%global appLoc serverName; %let compiled_apploc=/Public/app/dc; %let appLoc=%sysfunc(coalescec(&appLoc,&compiled_apploc)); %let sasjs_clickmeservice=clickme; %let syscc=0; options ps=max nonotes nosgen nomprint nomlogic nosource2 nosource noquotelenmax; /* user supplied build vars */ /* user supplied build vars end */ /* system macro dependencies for build process */ %macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1) , errds=work.mp_abort_errds , mode=REGULAR )/*/STORE SOURCE*/; %global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode; %local fref fid i; %if not(%eval(%unquote(&iftrue))) %then %return; %put NOTE: /// mp_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; %if %symexist(_SYSINCLUDEFILEDEVICE) /* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %then %do; %if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do; data &errds; iftrue='1=1'; length mac $100 msg $5000; mac=symget('mac'); msg=symget('msg'); run; data _null_; abort cancel FILE; run; %return; %end; %end; /* Web App Context */ %if %symexist(_PROGRAM) or %superq(SYSPROCESSNAME) = %str(Compute Server) or &mode=INCLUDE %then %do; options obs=max replace mprint; %if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do; options nosyntaxcheck; %end; %if &mode=INCLUDE %then %do; %if %sysfunc(exist(&errds))=1 %then %do; data _null_; set &errds; call symputx('iftrue',iftrue,'l'); call symputx('mac',mac,'l'); call symputx('msg',msg,'l'); putlog (_all_)(=); run; %if (&iftrue)=0 %then %return; %end; %else %do; %put &sysmacroname: No include errors found; %return; %end; %end; /* extract log errs / warns, if exist */ %local logloc logline; %global logmsg; /* capture global messages */ %if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG; %else %let logloc=%qsysfunc(getoption(LOG)); proc printto log=log;run; %let logline=0; %if %length(&logloc)>0 %then %do; data _null_; infile &logloc lrecl=5000; input; putlog _infile_; i=1; retain logonce 0; if ( _infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR" ) and logonce=0 then do; call symputx('logline',_n_); logonce+1; end; run; /* capture log including lines BEFORE the err */ %if &logline>0 %then %do; data _null_; infile &logloc lrecl=5000; input; i=1; stoploop=0; if _n_ ge &logline-15 and stoploop=0 then do until (i>22); call symputx('logmsg',catx('\n',symget('logmsg'),_infile_)); input; i+1; stoploop=1; end; if stoploop=1 then stop; run; %end; %end; %if %symexist(SYS_JES_JOB_URI) %then %do; /* setup webout for Viya */ options nobomfile; %if "X&SYS_JES_JOB_URI.X"="XX" %then %do; filename _webout temp lrecl=999999 mod; %end; %else %do; filename _webout filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json" lrecl=999999 mod; %end; %end; %else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do; options nobomfile; /* set up http header for SASjs Server */ %let fid=%sysfunc(fopen(&fref,A)); %if &fid=0 %then %do; %put %str(ERR)OR: %sysfunc(sysmsg()); %return; %end; %let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json))); %let rc=%sysfunc(fwrite(&fid)); %let rc=%sysfunc(fclose(&fid)); %let rc=%sysfunc(filename(&fref)); %end; /* send response in SASjs JSON format */ data _null_; file _webout mod lrecl=32000 encoding='utf-8'; length msg syswarningtext syserrortext $32767 mode $10 ; sasdatetime=datetime(); msg=symget('msg'); %if &logline>0 %then %do; msg=cats(msg,'\n\nLog Extract:\n',symget('logmsg')); %end; /* escape the escapes */ msg=tranwrd(msg,'\','\\'); /* escape the quotes */ msg=tranwrd(msg,'"','\"'); /* ditch the CRLFs as chrome complains */ msg=compress(msg,,'kw'); /* quote without quoting the quotes (which are escaped instead) */ msg=cats('"',msg,'"'); if symexist('_debug') then debug=quote(trim(symget('_debug'))); else debug='""'; if symget('sasjsprocessmode')='Stored Program' then mode='SASJS'; if mode ne 'SASJS' then put '>>weboutBEGIN<<'; put '{"SYSDATE" : "' "&SYSDATE" '"'; put ',"SYSTIME" : "' "&SYSTIME" '"'; put ',"sasjsAbort" : [{'; put ' "MSG":' msg ; put ' ,"MAC": "' "&mac" '"}]'; put ",""SYSUSERID"" : ""&sysuserid"" "; put ',"_DEBUG":' debug ; if symexist('_metauser') then do; _METAUSER=quote(trim(symget('_METAUSER'))); put ",""_METAUSER"": " _METAUSER; _METAPERSON=quote(trim(symget('_METAPERSON'))); put ',"_METAPERSON": ' _METAPERSON; end; if symexist('SYS_JES_JOB_URI') then do; SYS_JES_JOB_URI=quote(trim(symget('SYS_JES_JOB_URI'))); put ',"SYS_JES_JOB_URI": ' SYS_JES_JOB_URI; end; _PROGRAM=quote(trim(resolve(symget('_PROGRAM')))); put ',"_PROGRAM" : ' _PROGRAM ; put ",""SYSCC"" : ""&syscc"" "; syserrortext=cats(symget('syserrortext')); if findc(syserrortext,'"\'!!'0A0D09000E0F010210111A'x) then do; syserrortext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syserrortext) )))))))))))))!!'"'; end; else syserrortext=cats('"',syserrortext,'"'); put ',"SYSERRORTEXT" : ' syserrortext; put ",""SYSHOSTNAME"" : ""&syshostname"" "; put ",""SYSJOBID"" : ""&sysjobid"" "; put ",""SYSSCPL"" : ""&sysscpl"" "; put ",""SYSSITE"" : ""&syssite"" "; sysvlong=quote(trim(symget('sysvlong'))); put ',"SYSVLONG" : ' sysvlong; syswarningtext=cats(symget('syswarningtext')); if findc(syswarningtext,'"\'!!'0A0D09000E0F010210111A'x) then do; syswarningtext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syswarningtext) )))))))))))))!!'"'; end; else syswarningtext=cats('"',syswarningtext,'"'); put ",""SYSWARNINGTEXT"" : " syswarningtext; put ',"END_DTTM" : "' "%sysfunc(datetime(),E8601DT26.6)" '" '; put "}" ; if mode ne 'SASJS' then put '>>weboutEND<<'; run; %put _all_; %if "&sysprocessmode " = "SAS Stored Process Server " %then %do; data _null_; putlog 'stpsrvset program err and syscc'; rc=stpsrvset('program error', 0); call symputx("syscc",0,"g"); run; %if &sysscp=WIN and 1=0 /* deprecating this logic until we figure out a consistent abort */ and "%substr(%str(&sysvlong ),1,8)"="9.04.01M" and "%substr(%str(&sysvlong ),9,1)">"5" %then %do; /* skip approach (below) does not work in windows m6+ envs */ endsas; %end; %else %do; /** * endsas kills 9.4m3 deployments by orphaning multibridges. * Abort variants are ungraceful (non zero return code) * This approach lets SAS run silently until the end :-) * Caution - fails when called within a %include within a macro * Use mp_include() to handle this. */ filename skip temp; data _null_; file skip; put '%macro skip();'; comment '%mend skip; -> fix lint '; put '%macro skippy();'; comment '%mend skippy; -> fix lint '; run; %inc skip; %end; %end; %else %if "&sysprocessmode " = "SAS Compute Server " %then %do; /* endsas kills the session making it harder to fetch results */ data _null_; syswarningtext=symget('syswarningtext'); syserrortext=symget('syserrortext'); abort_msg=symget('msg'); syscc=symget('syscc'); sysuserid=symget('sysuserid'); iftrue=symget('iftrue'); put (_all_)(/=); call symputx('syscc',0); abort cancel nolist; run; %end; %else %do; %abort cancel; %end; %end; %else %do; %put _all_; %abort cancel; %end; %mend mp_abort; /** @endcond */ %macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767); %local rc fname; %if &prefix=0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %end; %else %do; %local x len; %let len=%eval(8-%length(&prefix)); %let x=0; %do x=0 %to &maxtries; %let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len); %if %sysfunc(fileref(&fname)) > 0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %return; %end; %end; %put unable to find available fileref after &maxtries attempts; %end; %mend mf_getuniquefileref; %macro mf_getuniquelibref(prefix=mclib,maxtries=1000); %local x; %if ( %length(&prefix) gt 7 ) %then %do; %put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.; 0 %return; %end; %else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do; %put %str(ERR)OR: Invalid prefix (&prefix); 0 %return; %end; /* Set maxtries equal to '10 to the power of [# unused characters] - 1' */ %let maxtries=%eval(10**(8-%length(&prefix))-1); %do x = 0 %to &maxtries; %if %sysfunc(libref(&prefix&x)) ne 0 %then %do; &prefix&x %return; %end; %let x = %eval(&x + 1); %end; %put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries; %put %str(ERR)OR- Try reducing the prefix or deleting some libraries!; 0 %mend mf_getuniquelibref; %macro mf_isblank(param )/*/STORE SOURCE*/; %sysevalf(%superq(param)=,boolean) %mend mf_isblank; %macro mf_mval(var); %if %symexist(&var) %then %do; %superq(&var) %end; %mend mf_mval; %macro mf_trimstr(basestr,trimstr); %local baselen trimlen trimval; /* return if basestr is shorter than trimstr (or 0) */ %let baselen=%length(%superq(basestr)); %let trimlen=%length(%superq(trimstr)); %if &baselen < &trimlen or &baselen=0 %then %return; /* obtain the characters from the end of basestr */ %let trimval=%qsubstr(%superq(basestr) ,%length(%superq(basestr))-&trimlen+1 ,&trimlen); /* compare and if matching, chop it off! */ %if %superq(basestr)=%superq(trimstr) %then %do; %return; %end; %else %if %superq(trimval)=%superq(trimstr) %then %do; %qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen) %end; %else %do; &basestr %end; %mend mf_trimstr; %macro mf_getplatform(switch )/*/STORE SOURCE*/; %local a b c; %if &switch.NONE=NONE %then %do; %if %symexist(sasjsprocessmode) %then %do; %if &sasjsprocessmode=Stored Program %then %do; SASJS %return; %end; %end; %if %symexist(sysprocessmode) %then %do; %if "&sysprocessmode"="SAS Object Server" or "&sysprocessmode"= "SAS Compute Server" %then %do; SASVIYA %end; %else %if "&sysprocessmode"="SAS Stored Process Server" or "&sysprocessmode"="SAS Workspace Server" %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if %symexist(_metaport) or %symexist(_metauser) %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if &switch=SASSTUDIO %then %do; /* return the version of SAS Studio else 0 */ %if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do; %let a=%mf_mval(_CLIENTVERSION); %let b=%scan(&a,1,.); %if %eval(&b >2) %then %do; &b %end; %else 0; %end; %else 0; %end; %else %if &switch=VIYARESTAPI %then %do; %mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/) %end; %mend mf_getplatform; %macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1) )/des='ungraceful abort' /*STORE SOURCE*/; %if not(%eval(%unquote(&iftrue))) %then %return; %put NOTE: /// mf_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; %abort; %mend mf_abort; /** @endcond */ %macro mfv_existfolder(path )/*/STORE SOURCE*/; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot enter mfv_existfolder.sas with syscc=&syscc ) %local fref rc; %let fref=%mf_getuniquefileref(); %if %sysfunc(filename(fref,,filesrvc,folderPath="&path"))=0 %then %do; 1 %let rc=%sysfunc(filename(fref)); %end; %else %do; 0 %let syscc=0; %end; %mend mfv_existfolder; %macro mv_createfolder(path= ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,mdebug=0 ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %if %mfv_existfolder(&path)=1 %then %do; %put &sysmacroname: &path already exists; %return; %end; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) options noquotelenmax; %local subfolder_cnt; /* determine the number of subfolders */ %let subfolder_cnt=%sysfunc(countw(&path,/)); %local href; /* resource address (none for root) */ %let href="/folders/folders?parentFolderUri=/folders/folders/none"; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); %local x newpath subfolder; %do x=1 %to &subfolder_cnt; %let subfolder=%scan(&path,&x,%str(/)); %let newpath=&newpath/&subfolder; %local fname1; %let fname1=%mf_getuniquefileref(); %put &sysmacroname checking to see if &newpath exists; proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&newpath"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; %mp_abort( iftrue=( &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 404 ) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %if &mdebug=1 %then %do; %put &sysmacroname following check to see if &newpath exists:; %put _local_; data _null_; set &fname1; input; putlog _infile_; run; %end; %if &SYS_PROCHTTP_STATUS_CODE=200 %then %do; %*put &sysmacroname &newpath exists so grab the follow on link ; data _null_; set &libref1..links; if rel='createChild' then call symputx('href',quote(cats("&base_uri",href)),'l'); run; %end; %else %if &SYS_PROCHTTP_STATUS_CODE=404 %then %do; %put &sysmacroname &newpath not found - creating it now; %local fname2; %let fname2=%mf_getuniquefileref(); data _null_; length json $1000; json=cats("'" ,'{"name":' ,quote(trim(symget('subfolder'))) ,',"description":' ,quote("&subfolder, created by &sysmacroname") ,',"type":"folder"}' ,"'" ); call symputx('json',json,'l'); run; proc http method='POST' in=&json out=&fname2 &oauth_bearer url=%unquote(%superq(href)); headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; 'Content-Type'='application/vnd.sas.content.folder+json' 'Accept'='application/vnd.sas.content.folder+json'; run; %put &=SYS_PROCHTTP_STATUS_CODE; %put &=SYS_PROCHTTP_STATUS_PHRASE; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 201) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %local libref2; %let libref2=%mf_getuniquelibref(); libname &libref2 JSON fileref=&fname2; %put &sysmacroname &newpath now created. Grabbing the follow on link ; data _null_; set &libref2..links; if rel='createChild' then do; call symputx('href',quote(cats("&base_uri",href)),'l'); &dbg put (_all_)(=); end; run; libname &libref2 clear; filename &fname2 clear; %end; filename &fname1 clear; libname &libref1 clear; %end; %mend mv_createfolder; %macro mv_deletejes(path= ,name= ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ); %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%mf_isblank(&name)=1) ,mac=&sysmacroname ,msg=%str(name value must be provided) ) %mp_abort(iftrue=(%length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); %put &sysmacroname: fetching details for &path ; %local fname1; %let fname1=%mf_getuniquefileref(); proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&path"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %if &SYS_PROCHTTP_STATUS_CODE=404 %then %do; %put &sysmacroname: Folder &path NOT FOUND - nothing to delete!; %return; %end; %else %if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %do; /*data _null_;infile &fname1;input;putlog _infile_;run;*/ %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %put &sysmacroname: grab the follow on link ; %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; data _null_; set &libref1..links; if rel='members' then call symputx('mref',quote("&base_uri"!!trim(href)),'l'); run; /* get the children */ %local fname1a; %let fname1a=%mf_getuniquefileref(); proc http method='GET' out=&fname1a &oauth_bearer url=%unquote(%superq(mref)); %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %put &=SYS_PROCHTTP_STATUS_CODE; %local libref1a; %let libref1a=%mf_getuniquelibref(); libname &libref1a JSON fileref=&fname1a; %local uri found; %let found=0; %put Getting object uri from &libref1a..items; data _null_; length contenttype name $1000; set &libref1a..items; if contenttype='jobDefinition' and upcase(name)="%upcase(&name)" then do; call symputx('uri',cats("&base_uri",uri),'l'); call symputx('found',1,'l'); end; run; %if &found=0 %then %do; %put NOTE:;%put NOTE- &sysmacroname: &path/&name NOT FOUND;%put NOTE- ; %return; %end; proc http method="DELETE" url="&uri" &oauth_bearer; headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; "Accept"="*/*";/**/ run; %if &SYS_PROCHTTP_STATUS_CODE ne 204 %then %do; data _null_; infile &fname2; input; putlog _infile_;run; %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %else %put &sysmacroname: &path/&name successfully deleted; /* clear refs */ filename &fname1 clear; libname &libref1 clear; filename &fname1a clear; libname &libref1a clear; %mend mv_deletejes; %macro mp_base64copy( inref=0, outref=0, action=ENCODE )/*/STORE SOURCE*/; %let inref=%upcase(&inref); %let outref=%upcase(&outref); %let action=%upcase(&action); %local infound outfound; %let infound=0; %let outfound=0; data _null_; set sashelp.vextfl(where=(fileref="&inref" or fileref="&outref")); if fileref="&inref" then call symputx('infound',1,'l'); if fileref="&outref" then call symputx('outfound',1,'l'); run; %mp_abort(iftrue= (&infound=0) ,mac=&sysmacroname ,msg=%str(INREF &inref NOT FOUND!) ) %mp_abort(iftrue= (&outref=0) ,mac=&sysmacroname ,msg=%str(OUTREF NOT PROVIDED!) ) %mp_abort(iftrue= (&action ne ENCODE and &action ne DECODE) ,mac=&sysmacroname ,msg=%str(Invalid action! Should be ENCODE OR DECODE) ) %if &outfound=0 %then %do; filename &outref temp lrecl=2097088; %end; %if &action=ENCODE %then %do; data _null_; length b64 $ 76 line $ 57; retain line ""; infile &inref recfm=F lrecl= 1 end=eof; input @1 stream $char1.; file &outref recfm=N; substr(line,(_N_-(CEIL(_N_/57)-1)*57),1) = byte(rank(stream)); if mod(_N_,57)=0 or EOF then do; if eof then b64=put(trim(line),$base64X76.); else b64=put(line, $base64X76.); put b64 + (-1) @; line=""; end; run; %end; %else %if &action=DECODE %then %do; data _null_; length filein 8 fileout 8; filein = fopen("&inref",'I',4,'B'); fileout = fopen("&outref",'O',3,'B'); char= '20'x; do while(fread(filein)=0); length raw $4; do i=1 to 4; rc=fget(filein,char,1); substr(raw,i,1)=char; end; rc = fput(fileout,input(raw,$base64X4.)); rc = fwrite(fileout); end; rc = fclose(filein); rc = fclose(fileout); run; %end; %mend mp_base64copy; %macro mp_binarycopy( inloc= /* full path and filename of the object to be copied */ ,outloc= /* full path and filename of object to be created */ ,inref=____in /* override default to use own filerefs */ ,outref=____out /* override default to use own filerefs */ ,mode=CREATE ,iftrue=%str(1=1) )/*/STORE SOURCE*/; %local mod; %if not(%eval(%unquote(&iftrue))) %then %return; %if &mode=APPEND %then %let mod=mod; /* these IN and OUT filerefs can point to anything */ %if &inref = ____in %then %do; filename &inref &inloc lrecl=1048576 ; %end; %if &outref=____out %then %do; filename &outref &outloc lrecl=1048576 &mod; %end; /* copy the file byte-for-byte */ data _null_; infile &inref lrecl=1 recfm=n; file &outref &mod recfm=n; input sourcechar $char1. @@; format sourcechar hex2.; put sourcechar char1. @@; run; %if &inref = ____in %then %do; filename &inref clear; %end; %if &outref=____out %then %do; filename &outref clear; %end; %mend mp_binarycopy; %macro mf_getuniquename(prefix=MC); &prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix)) %mend mf_getuniquename; /* system macro dependencies for build process end*/ /* system macros for build process */ %macro mv_createwebservice(path= ,name= ,desc=Created by the mv_createwebservice.sas macro ,precode= ,code=ft15f001 ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,replace=YES ,adapter=sasjs ,mdebug=0 ,contextname= ,debug=0 /* @TODO - Deprecate */ ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; /* initial validation checking */ %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%mf_isblank(&name)=1) ,mac=&sysmacroname ,msg=%str(name value must be provided) ) options noquotelenmax; * remove any trailing slash ; %if "%substr(&path,%length(&path),1)" = "/" %then %let path=%substr(&path,1,%length(&path)-1); /* ensure folder exists */ %put &sysmacroname: Path &path being checked / created; %mv_createfolder(path=&path) %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); /* fetching folder details for provided path */ %local fname1; %let fname1=%mf_getuniquefileref(); proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&path"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %if &mdebug=1 %then %do; data _null_; infile &fname1; input; putlog _infile_; run; %end; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) /* path exists. Grab follow on link to check members */ %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; data _null_; set &libref1..links; if rel='members' then call symputx('membercheck',quote("&base_uri"!!trim(href)),'l'); else if rel='self' then call symputx('parentFolderUri',href,'l'); run; data _null_; set &libref1..root; call symputx('folderid',id,'l'); run; %local fname2; %let fname2=%mf_getuniquefileref(); proc http method='GET' out=&fname2 &oauth_bearer url=%unquote(%superq(membercheck)); headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; 'Accept'='application/vnd.sas.collection+json' 'Accept-Language'='string'; %if &mdebug=1 %then %do; debug level = 3; %end; run; /*data _null_;infile &fname2;input;putlog _infile_;run;*/ %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %if %upcase(&replace)=YES %then %do; %mv_deletejes(path=&path, name=&name) %end; %else %do; /* check that job does not already exist in that folder */ %local libref2; %let libref2=%mf_getuniquelibref(); libname &libref2 JSON fileref=&fname2; %local exists; %let exists=0; data _null_; set &libref2..items; if contenttype='jobDefinition' and upcase(name)="%upcase(&name)" then call symputx('exists',1,'l'); run; %mp_abort(iftrue=(&exists=1) ,mac=&sysmacroname ,msg=%str(Job &name already exists in &path) ) libname &libref2 clear; %end; /* set up the body of the request to create the service */ %local fname3; %let fname3=%mf_getuniquefileref(); data _null_; file &fname3 TERMSTR=' '; length string $32767; string=cats('{"version": 0,"name":"' ,"&name" ,'","type":"Compute","parameters":[{"name":"_addjesbeginendmacros"' ,',"type":"CHARACTER","defaultValue":"false"}'); context=quote(cats(symget('contextname'))); if context ne '""' then do; string=cats(string,',{"version": 1,"name": "_contextName","defaultValue":' ,context,',"type":"CHARACTER","label":"Context Name","required": false}'); end; string=cats(string,'],"code":"'); put string; run; /** * Add webout macro * These put statements are auto generated - to change the macro, change the * source (mv_webout) and run `build.py` */ filename &adapter temp lrecl=3000; data _null_; file &adapter; put "/* Created on %sysfunc(datetime(),datetime19.) by &sysuserid */"; /* WEBOUT BEGIN */ put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y '; put ' ,engine=DATASTEP '; put ' ,missing=NULL '; put ' ,showmeta=N '; put ' ,maxobs=MAX '; put ')/*/STORE SOURCE*/; '; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval '; put ' tmpds1 tmpds2 tmpds3 tmpds4; '; put '%let numcols=0; '; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;); '; put ' '; put '%if &action=OPEN %then %do; '; put ' options nobomfile; '; put ' data _null_;file &jref encoding=''utf-8'' lrecl=200; '; put ' put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"''; '; put ' run; '; put '%end; '; put '%else %if (&action=ARR or &action=OBJ) %then %do; '; put ' /* force variable names to always be uppercase in the JSON */ '; put ' options validvarname=upcase; '; put ' /* To avoid issues with _webout on EBI - such as encoding diffs and truncation '; put ' (https://support.sas.com/kb/49/325.html) we use temporary files */ '; put ' filename _sjs1 temp lrecl=200 ; '; put ' data _null_; file _sjs1 encoding=''utf-8''; '; put ' put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":"; '; put ' run; '; put ' /* now write to _webout 1 char at a time */ '; put ' data _null_; '; put ' infile _sjs1 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs1 clear; '; put ' '; put ' /* grab col defs */ '; put ' proc contents noprint data=&ds '; put ' out=_data_(keep=name type length format formatl formatd varnum label); '; put ' run; '; put ' %let colinfo=%scan(&syslast,2,.); '; put ' proc sort data=&colinfo; '; put ' by varnum; '; put ' run; '; put ' /* move meta to mac vars */ '; put ' data &colinfo; '; put ' if _n_=1 then call symputx(''numcols'',nobs,''l''); '; put ' set &colinfo end=last nobs=nobs; '; put ' name=upcase(name); '; put ' /* fix formats */ '; put ' if type=2 or type=6 then do; '; put ' typelong=''char''; '; put ' length fmt $49.; '; put ' if format='''' then fmt=cats(''$'',length,''.''); '; put ' else if formatl=0 then fmt=cats(format,''.''); '; put ' else fmt=cats(format,formatl,''.''); '; put ' end; '; put ' else do; '; put ' typelong=''num''; '; put ' if format='''' then fmt=''best.''; '; put ' else if formatl=0 then fmt=cats(format,''.''); '; put ' else if formatd=0 then fmt=cats(format,formatl,''.''); '; put ' else fmt=cats(format,formatl,''.'',formatd); '; put ' end; '; put ' /* 32 char unique name */ '; put ' newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27); '; put ' '; put ' call symputx(cats(''name'',_n_),name,''l''); '; put ' call symputx(cats(''newname'',_n_),newname,''l''); '; put ' call symputx(cats(''length'',_n_),length,''l''); '; put ' call symputx(cats(''fmt'',_n_),fmt,''l''); '; put ' call symputx(cats(''type'',_n_),type,''l''); '; put ' call symputx(cats(''typelong'',_n_),typelong,''l''); '; put ' call symputx(cats(''label'',_n_),coalescec(label,name),''l''); '; put ' /* overwritten when fmt=Y and a custom format exists in catalog */ '; put ' if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l''); '; put ' else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l''); '; put ' run; '; put ' '; put ' %let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' proc sql; '; put ' select count(*) into: lastobs from &ds; '; put ' %if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs)); '; put ' '; put ' %if &engine=PROCJSON %then %do; '; put ' %if &missing=STRING %then %do; '; put ' %put &sysmacroname: Special Missings not supported in proc json.; '; put ' %put &sysmacroname: Switching to DATASTEP engine; '; put ' %goto datastep; '; put ' %end; '; put ' data &tempds; '; put ' set &ds; '; put ' &stmt_obs; '; put ' %if &fmt=N %then format _numeric_ best32.;; '; put ' /* PRETTY is necessary to avoid line truncation in large files */ '; put ' filename _sjs2 temp lrecl=131068 encoding=''utf-8''; '; put ' proc json out=_sjs2 pretty '; put ' %if &action=ARR %then nokeys ; '; put ' ;export &tempds / nosastags fmtnumeric; '; put ' run; '; put ' /* send back to webout */ '; put ' data _null_; '; put ' infile _sjs2 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs2 clear; '; put ' %end; '; put ' %else %if &engine=DATASTEP %then %do; '; put ' %datastep: '; put ' %if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1 '; put ' %then %do; '; put ' %put &sysmacroname: &ds NOT FOUND!!!; '; put ' %return; '; put ' %end; '; put ' '; put ' %if &fmt=Y %then %do; '; put ' /** '; put ' * Extract format definitions '; put ' * First, by getting library locations from dictionary.formats '; put ' * Then, by exporting the width using proc format '; put ' * Cannot use maxw from sashelp.vformat as not always populated '; put ' * Cannot use fmtinfo() as not supported in all flavours '; put ' */ '; put ' %let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' %let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' %let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' %let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' proc sql noprint; '; put ' create table &tmpds1 as '; put ' select cats(libname,''.'',memname) as FMTCAT, '; put ' FMTNAME '; put ' from dictionary.formats '; put ' where fmttype=''F'' and libname is not null '; put ' and fmtname in (select format from &colinfo where format is not null) '; put ' order by 1; '; put ' create table &tmpds2( '; put ' FMTNAME char(32), '; put ' LENGTH num '; put ' ); '; put ' %local catlist cat fmtlist i; '; put ' select distinct fmtcat into: catlist separated by '' '' from &tmpds1; '; put ' %do i=1 %to %sysfunc(countw(&catlist,%str( ))); '; put ' %let cat=%scan(&catlist,&i,%str( )); '; put ' proc sql; '; put ' select distinct fmtname into: fmtlist separated by '' '' '; put ' from &tmpds1 where fmtcat="&cat"; '; put ' proc format lib=&cat cntlout=&tmpds3(keep=fmtname length); '; put ' select &fmtlist; '; put ' run; '; put ' proc sql; '; put ' insert into &tmpds2 select distinct fmtname,length from &tmpds3; '; put ' %end; '; put ' '; put ' proc sql; '; put ' create table &tmpds4 as '; put ' select a.*, b.length as MAXW '; put ' from &colinfo a '; put ' left join &tmpds2 b '; put ' on cats(a.format)=cats(upcase(b.fmtname)) '; put ' order by a.varnum; '; put ' data _null_; '; put ' set &tmpds4; '; put ' if not missing(maxw); '; put ' call symputx( '; put ' cats(''fmtlen'',_n_), '; put ' /* vars need extra padding due to JSON escaping of special chars */ '; put ' min(32767,ceil((max(length,maxw)+10)*1.5)) '; put ' ,''l'' '; put ' ); '; put ' run; '; put ' '; put ' /* configure varlenchk - as we are explicitly shortening the variables */ '; put ' %let optval=%sysfunc(getoption(varlenchk)); '; put ' options varlenchk=NOWARN; '; put ' data _data_(compress=char); '; put ' /* shorten the new vars */ '; put ' length '; put ' %do i=1 %to &numcols; '; put ' &&name&i $&&fmtlen&i '; put ' %end; '; put ' ; '; put ' /* rename on entry */ '; put ' set &ds(rename=( '; put ' %do i=1 %to &numcols; '; put ' &&name&i=&&newname&i '; put ' %end; '; put ' )); '; put ' &stmt_obs; '; put ' '; put ' drop '; put ' %do i=1 %to &numcols; '; put ' &&newname&i '; put ' %end; '; put ' ; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=num %then %do; '; put ' &&name&i=cats(put(&&newname&i,&&fmt&i)); '; put ' %end; '; put ' %else %do; '; put ' &&name&i=put(&&newname&i,&&fmt&i); '; put ' %end; '; put ' %end; '; put ' if _error_ then do; '; put ' call symputx(''syscc'',1012); '; put ' stop; '; put ' end; '; put ' run; '; put ' %let fmtds=&syslast; '; put ' options varlenchk=&optval; '; put ' %end; '; put ' '; put ' proc format; /* credit yabwon for special null removal */ '; put ' value bart (default=40) '; put ' %if &missing=NULL %then %do; '; put ' ._ - .z = null '; put ' %end; '; put ' %else %do; '; put ' ._ = [quote()] '; put ' . = null '; put ' .a - .z = [quote()] '; put ' %end; '; put ' other = [best.]; '; put ' '; put ' data &tempds; '; put ' attrib _all_ label=''''; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; put ' length &&name&i $&&fmtlen&i...; '; put ' format &&name&i $&&fmtlen&i...; '; put ' %end; '; put ' %end; '; put ' %if &fmt=Y %then %do; '; put ' set &fmtds; '; put ' %end; '; put ' %else %do; '; put ' set &ds; '; put ' %end; '; put ' &stmt_obs; '; put ' format _numeric_ bart.; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; put ' if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do; '; put ' &&name&i=''"''!!trim( '; put ' prxchange(''s/"/\\"/'',-1, /* double quote */ '; put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ '; put ' prxchange(''s/\x0D/\r/'',-1, /* carriage return */ '; put ' prxchange(''s/\x09/\\t/'',-1, /* tab */ '; put ' prxchange(''s/\x00/\\u0000/'',-1, /* NUL */ '; put ' prxchange(''s/\x0E/\\u000E/'',-1, /* SS */ '; put ' prxchange(''s/\x0F/\\u000F/'',-1, /* SF */ '; put ' prxchange(''s/\x01/\\u0001/'',-1, /* SOH */ '; put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ '; put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ '; put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ '; put ' prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */ '; put ' prxchange(''s/\\/\\\\/'',-1,&&name&i) '; put ' )))))))))))))!!''"''; '; put ' end; '; put ' else &&name&i=quote(cats(&&name&i)); '; put ' %end; '; put ' %end; '; put ' run; '; put ' '; put ' filename _sjs3 temp lrecl=131068 ; '; put ' data _null_; '; put ' file _sjs3 encoding=''utf-8''; '; put ' if _n_=1 then put "["; '; put ' set &tempds; '; put ' if _n_>1 then put "," @; put '; put ' %if &action=ARR %then "[" ; %else "{" ; '; put ' %do i=1 %to &numcols; '; put ' %if &i>1 %then "," ; '; put ' %if &action=OBJ %then """&&name&i"":" ; '; put ' "&&name&i"n /* name literal for reserved variable names */ '; put ' %end; '; put ' %if &action=ARR %then "]" ; %else "}" ; ; '; put ' '; put ' /* close out the table */ '; put ' data _null_; '; put ' file _sjs3 mod encoding=''utf-8''; '; put ' put '']''; '; put ' run; '; put ' data _null_; '; put ' infile _sjs3 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs3 clear; '; put ' %end; '; put ' '; put ' proc sql; '; put ' drop table &colinfo, &tempds; '; put ' '; put ' %if %substr(&showmeta,1,1)=Y %then %do; '; put ' filename _sjs4 temp lrecl=131068 encoding=''utf-8''; '; put ' data _null_; '; put ' file _sjs4; '; put ' length label $350; '; put ' put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{"; '; put ' do i=1 to &numcols; '; put ' name=quote(trim(symget(cats(''name'',i)))); '; put ' format=quote(trim(symget(cats(''fmt'',i)))); '; put ' label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i))))); '; put ' length=quote(trim(symget(cats(''length'',i)))); '; put ' type=quote(trim(symget(cats(''typelong'',i)))); '; put ' if i>1 then put "," @@; '; put ' put name '':{"format":'' format '',"label":'' label '; put ' '',"length":'' length '',"type":'' type ''}''; '; put ' end; '; put ' put ''}}''; '; put ' run; '; put ' /* send back to webout */ '; put ' data _null_; '; put ' infile _sjs4 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs4 clear; '; put ' %end; '; put '%end; '; put ' '; put '%else %if &action=CLOSE %then %do; '; put ' data _null_; file &jref encoding=''utf-8'' mod ; '; put ' put "}"; '; put ' run; '; put '%end; '; put '%mend mp_jsonout; '; put ' '; put '%macro mf_getuser( '; put ')/*/STORE SOURCE*/; '; put ' %local user; '; put ' '; put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; '; put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; '; put ' %let user=&SYS_COMPUTE_SESSION_OWNER; '; put ' %end; '; put ' %else %if %symexist(_metaperson) %then %do; '; put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; '; put ' /* sometimes SAS will add @domain extension - remove for consistency */ '; put ' /* but be sure to quote in case of usernames with commas */ '; put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); '; put ' %end; '; put ' %else %let user=&sysuserid; '; put ' '; put ' %quote(&user) '; put ' '; put '%mend mf_getuser; '; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL '; put ' ,showmeta=N,maxobs=MAX,workobs=0 '; put '); '; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name '; put ' sasjs_tables SYS_JES_JOB_URI; '; put '%if %index("&_debug",log) %then %let _debug=131; '; put ' '; put '%local i tempds table; '; put '%let action=%upcase(&action); '; put ' '; put '%if &action=FETCH %then %do; '; put ' %if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do; '; put ' options mprint notes mprintnest; '; put ' %end; '; put ' '; put ' %if not %symexist(_webin_fileuri1) %then %do; '; put ' %let _webin_file_count=%eval(&_webin_file_count+0); '; put ' %let _webin_fileuri1=&_webin_fileuri; '; put ' %let _webin_name1=&_webin_name; '; put ' %end; '; put ' '; put ' /* if the sasjs_tables param is passed, we expect param based upload */ '; put ' %if %length(&sasjs_tables.X)>1 %then %do; '; put ' '; put ' /* convert data from macro variables to datasets */ '; put ' %do i=1 %to %sysfunc(countw(&sasjs_tables)); '; put ' %let table=%scan(&sasjs_tables,&i,%str( )); '; put ' %if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1; '; put ' data _null_; '; put ' file "%sysfunc(pathname(work))/&table..csv" recfm=n; '; put ' retain nrflg 0; '; put ' length line $32767; '; put ' do i=1 to &&sasjs&i.data0; '; put ' if &&sasjs&i.data0=1 then line=symget("sasjs&i.data"); '; put ' else line=symget(cats("sasjs&i.data",i)); '; put ' if i=1 and substr(line,1,7)=''%nrstr('' then do; '; put ' nrflg=1; '; put ' line=substr(line,8); '; put ' end; '; put ' if i=&&sasjs&i.data0 and nrflg=1 then do; '; put ' line=substr(line,1,length(line)-1); '; put ' end; '; put ' put line +(-1) @; '; put ' end; '; put ' run; '; put ' data _null_; '; put ' infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ; '; put ' input; '; put ' if _n_=1 then call symputx(''input_statement'',_infile_); '; put ' list; '; put ' data work.&table; '; put ' infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd '; put ' termstr=crlf; '; put ' input &input_statement; '; put ' run; '; put ' %end; '; put ' %end; '; put ' %else %do i=1 %to &_webin_file_count; '; put ' /* read in any files that are sent */ '; put ' /* this part needs refactoring for wide files */ '; put ' filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; '; put ' data _null_; '; put ' infile indata termstr=crlf lrecl=32767; '; put ' input; '; put ' if _n_=1 then call symputx(''input_statement'',_infile_); '; put ' %if %str(&_debug) ge 131 %then %do; '; put ' if _n_<20 then putlog _infile_; '; put ' else stop; '; put ' %end; '; put ' %else %do; '; put ' stop; '; put ' %end; '; put ' run; '; put ' data &&_webin_name&i; '; put ' infile indata firstobs=2 dsd termstr=crlf ; '; put ' input &input_statement; '; put ' run; '; put ' %let sasjs_tables=&sasjs_tables &&_webin_name&i; '; put ' %end; '; put '%end; '; put '%else %if &action=OPEN %then %do; '; put ' /* setup webout */ '; put ' OPTIONS NOBOMFILE; '; put ' %if "X&SYS_JES_JOB_URI.X"="XX" %then %do; '; put ' filename _webout temp lrecl=999999 mod; '; put ' %end; '; put ' %else %do; '; put ' filename _webout filesrvc parenturi="&SYS_JES_JOB_URI" '; put ' name="_webout.json" lrecl=999999 mod; '; put ' %end; '; put ' '; put ' /* setup temp ref */ '; put ' %if %upcase(&fref) ne _WEBOUT %then %do; '; put ' filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---''; '; put ' %end; '; put ' '; put ' /* setup json */ '; put ' data _null_;file &fref; '; put ' put ''{"SYSDATE" : "'' "&SYSDATE" ''"''; '; put ' put '',"SYSTIME" : "'' "&SYSTIME" ''"''; '; put ' run; '; put '%end; '; put '%else %if &action=ARR or &action=OBJ %then %do; '; put ' %mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref '; put ' ,engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs '; put ' ) '; put '%end; '; put '%else %if &action=CLOSE %then %do; '; put ' %if %str(&workobs) > 0 %then %do; '; put ' /* send back first XX records of each work table for debugging */ '; put ' data;run;%let tempds=%scan(&syslast,2,.); '; put ' ods output Members=&tempds; '; put ' proc datasets library=WORK memtype=data; '; put ' %local wtcnt;%let wtcnt=0; '; put ' data _null_; '; put ' set &tempds; '; put ' if not (upcase(name) =:"DATA"); /* ignore temp datasets */ '; put ' i+1; '; put ' call symputx(cats(''wt'',i),name,''l''); '; put ' call symputx(''wtcnt'',i,''l''); '; put ' data _null_; file &fref mod; put ",""WORK"":{"; '; put ' %do i=1 %to &wtcnt; '; put ' %let wt=&&wt&i; '; put ' data _null_; file &fref mod; '; put ' dsid=open("WORK.&wt",''is''); '; put ' nlobs=attrn(dsid,''NLOBS''); '; put ' nvars=attrn(dsid,''NVARS''); '; put ' rc=close(dsid); '; put ' if &i>1 then put '',''@; '; put ' put " ""&wt"" : {"; '; put ' put ''"nlobs":'' nlobs; '; put ' put '',"nvars":'' nvars; '; put ' %mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y '; put ' ,maxobs=&workobs '; put ' ) '; put ' data _null_; file &fref mod;put "}"; '; put ' %end; '; put ' data _null_; file &fref mod;put "}";run; '; put ' %end; '; put ' '; put ' /* close off json */ '; put ' data _null_;file &fref mod; '; put ' length SYSPROCESSNAME syserrortext syswarningtext autoexec $512; '; put ' put ",""_DEBUG"" : ""&_debug"" "; '; put ' _PROGRAM=quote(trim(resolve(symget(''_PROGRAM'')))); '; put ' put '',"_PROGRAM" : '' _PROGRAM ; '; put ' autoexec=quote(urlencode(trim(getoption(''autoexec'')))); '; put ' put '',"AUTOEXEC" : '' autoexec; '; put ' put ",""MF_GETUSER"" : ""%mf_getuser()"" "; '; put ' SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI'')))); '; put ' put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ; '; put ' put ",""SYSJOBID"" : ""&sysjobid"" "; '; put ' put ",""SYSCC"" : ""&syscc"" "; '; put ' syserrortext=cats(symget(''syserrortext'')); '; put ' if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do; '; put ' syserrortext=''"''!!trim( '; put ' prxchange(''s/"/\\"/'',-1, /* double quote */ '; put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ '; put ' prxchange(''s/\x0D/\r/'',-1, /* carriage return */ '; put ' prxchange(''s/\x09/\\t/'',-1, /* tab */ '; put ' prxchange(''s/\x00/\\u0000/'',-1, /* NUL */ '; put ' prxchange(''s/\x0E/\\u000E/'',-1, /* SS */ '; put ' prxchange(''s/\x0F/\\u000F/'',-1, /* SF */ '; put ' prxchange(''s/\x01/\\u0001/'',-1, /* SOH */ '; put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ '; put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ '; put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ '; put ' prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */ '; put ' prxchange(''s/\\/\\\\/'',-1,syserrortext) '; put ' )))))))))))))!!''"''; '; put ' end; '; put ' else syserrortext=cats(''"'',syserrortext,''"''); '; put ' put '',"SYSERRORTEXT" : '' syserrortext; '; put ' put ",""SYSHOSTNAME"" : ""&syshostname"" "; '; put ' put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" "; '; put ' put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" "; '; put ' SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME))); '; put ' put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME; '; put ' put ",""SYSJOBID"" : ""&sysjobid"" "; '; put ' put ",""SYSSCPL"" : ""&sysscpl"" "; '; put ' put ",""SYSSITE"" : ""&syssite"" "; '; put ' put ",""SYSUSERID"" : ""&sysuserid"" "; '; put ' sysvlong=quote(trim(symget(''sysvlong''))); '; put ' put '',"SYSVLONG" : '' sysvlong; '; put ' syswarningtext=cats(symget(''syswarningtext'')); '; put ' if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do; '; put ' syswarningtext=''"''!!trim( '; put ' prxchange(''s/"/\\"/'',-1, /* double quote */ '; put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ '; put ' prxchange(''s/\x0D/\r/'',-1, /* carriage return */ '; put ' prxchange(''s/\x09/\\t/'',-1, /* tab */ '; put ' prxchange(''s/\x00/\\u0000/'',-1, /* NUL */ '; put ' prxchange(''s/\x0E/\\u000E/'',-1, /* SS */ '; put ' prxchange(''s/\x0F/\\u000F/'',-1, /* SF */ '; put ' prxchange(''s/\x01/\\u0001/'',-1, /* SOH */ '; put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ '; put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ '; put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ '; put ' prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */ '; put ' prxchange(''s/\\/\\\\/'',-1,syswarningtext) '; put ' )))))))))))))!!''"''; '; put ' end; '; put ' else syswarningtext=cats(''"'',syswarningtext,''"''); '; put ' put '',"SYSWARNINGTEXT" : '' syswarningtext; '; put ' put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" ''; '; put ' length memsize $32; '; put ' memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)"; '; put ' memsize=quote(cats(memsize)); '; put ' put '',"MEMSIZE" : '' memsize; '; put ' put "}"; '; put ' '; put ' %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; '; put ' data _null_; rc=fcopy("&fref","_webout");run; '; put ' %end; '; put ' '; put '%end; '; put ' '; put '%mend mv_webout; '; /* WEBOUT END */ put '/* if calling viya service with _job param, _program will conflict */'; put '/* so it is provided by SASjs instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put ' '; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO'; put ' ,maxobs=MAX'; put ');'; put ' %mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt,missing=&missing'; put ' ,showmeta=&showmeta,maxobs=&maxobs'; put ' )'; put '%mend;'; run; /* insert the code, escaping double quotes and carriage returns */ %&dbg.put &sysmacroname: Creating final input file; %local x fref freflist; %let freflist= &adapter &precode &code ; %do x=1 %to %sysfunc(countw(&freflist)); %let fref=%scan(&freflist,&x); %&dbg.put &sysmacroname: adding &fref fileref; data _null_; length filein 8 fileid 8; filein = fopen("&fref","I",1,"B"); fileid = fopen("&fname3","A",1,"B"); rec = "20"x; do while(fread(filein)=0); rc = fget(filein,rec,1); if rec='"' then do; /* DOUBLE QUOTE */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'"');rc =fwrite(fileid); end; else if rec='0A'x then do; /* LF */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'n');rc =fwrite(fileid); end; else if rec='0D'x then do; /* CR */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'r');rc =fwrite(fileid); end; else if rec='09'x then do; /* TAB */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'t');rc =fwrite(fileid); end; else if rec='5C'x then do; /* BACKSLASH */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'\');rc =fwrite(fileid); end; else if rec='01'x then do; /* Unprintable */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'u');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'1');rc =fwrite(fileid); end; else if rec='07'x then do; /* Bell Char */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'u');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'7');rc =fwrite(fileid); end; else if rec='1B'x then do; /* escape char */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'u');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'1');rc =fwrite(fileid); rc =fput(fileid,'B');rc =fwrite(fileid); end; else do; rc =fput(fileid,rec); rc =fwrite(fileid); end; end; rc=fclose(filein); rc=fclose(fileid); run; %end; /* finish off the body of the code file loaded to JES */ data _null_; file &fname3 mod TERMSTR=' '; put '"}'; run; %if &mdebug=1 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; %put &sysmacroname: input about to be POSTed; data _null_;infile &fname3;input;putlog _infile_;run; %end; %&dbg.put &sysmacroname: Creating the actual service!; %local fname4; %let fname4=%mf_getuniquefileref(); proc http method='POST' in=&fname3 out=&fname4 &oauth_bearer url="&base_uri/jobDefinitions/definitions?parentFolderUri=&parentFolderUri"; headers 'Content-Type'='application/vnd.sas.job.definition+json' %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; "Accept"="application/vnd.sas.job.definition+json"; %if &mdebug=1 %then %do; debug level = 3; %end; run; %if &mdebug=1 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; %put &sysmacroname: output from POSTing job definition; data _null_;infile &fname4;input;putlog _infile_;run; %end; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 201) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) /* get the url so we can give a helpful log message */ %local url; data _null_; if symexist('_baseurl') then do; url=symget('_baseurl'); if subpad(url,length(url)-9,9)='SASStudio' then url=substr(url,1,length(url)-11); else url="&systcpiphostname"; end; else url="&systcpiphostname"; call symputx('url',url); run; %if &mdebug=1 %then %do; %put &sysmacroname exit vars:; %put _local_; %end; %else %do; /* clear refs */ filename &fname1 clear; filename &fname2 clear; filename &fname3 clear; filename &fname4 clear; filename &adapter clear; libname &libref1 clear; %end; %put &sysmacroname: Job &name successfully created in &path; %put &sysmacroname:; %put &sysmacroname: Check it out here:; %put &sysmacroname:;%put; %put &url/SASJobExecution?_PROGRAM=&path/&name;%put; %put &sysmacroname:; %put &sysmacroname:; %mend mv_createwebservice; /** @file @brief Creates a file in SAS Drive @details Creates a file in SAS Drive and adds the appropriate content type. If the parent folder does not exist, it is created. Usage: filename myfile temp; data _null_; file myfile; put 'something'; run; %mv_createfile(path=/Public/temp,name=newfile.txt,inref=myfile) @param [in] path= The parent folder in which to create the file @param [in] name= The name of the file to be created @param [in] inref= The fileref pointing to the file to be uploaded @param [in] intype= (BINARY) The type of the input data. Valid values: @li BINARY File is copied byte for byte using the mp_binarycopy.sas macro. @li BASE64 File will be first decoded using the mp_base64.sas macro, then loaded byte by byte to SAS Drive. @param [in] contentdisp= (inline) Content Disposition. Example values: @li inline @li attachment @param [in] ctype= (0) Set a default HTTP Content-Type header to be returned with the file when the content is retrieved from the Files service. @param [in] access_token_var= The global macro variable to contain the access token, if using authorization_code grant type. @param [in] grant_type= (sas_services) Valid values are: @li password @li authorization_code @li sas_services @param [in] mdebug= (0) Set to 1 to enable DEBUG messages @version VIYA V.03.05 @author Allan Bowe, source: https://github.com/sasjs/core

SAS Macros

@li mf_getuniquefileref.sas @li mf_isblank.sas @li mp_abort.sas @li mp_base64copy.sas @li mp_binarycopy.sas @li mv_createfolder.sas **/ %macro mv_createfile(path= ,name= ,inref= ,intype=BINARY ,contentdisp=inline ,ctype=0 ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,mdebug=0 ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1 or %length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%mf_isblank(&name)=1 or %length(&name)=1) ,mac=&sysmacroname ,msg=%str(name value with length >1 must be provided) ) /* create folder if it does not already exist */ %mv_createfolder(path=&path ,access_token_var=&access_token_var ,grant_type=&grant_type ,mdebug=&mdebug ) /* create file with relevant options */ %local fref; %let fref=%mf_getuniquefileref(); filename &fref filesrvc folderPath="&path" filename="&name" cdisp="&contentdisp" %if "&ctype" ne "0" %then %do; ctype="&ctype" %end; lrecl=1048544; %if &intype=BINARY %then %do; %mp_binarycopy(inref=&inref, outref=&fref) %end; %else %if &intype=BASE64 %then %do; %mp_base64copy(inref=&inref, outref=&fref, action=DECODE) %end; filename &fref clear; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); %put &sysmacroname: File &name successfully created in &path; %put &sysmacroname:;%put; %put &base_uri/SASJobExecution?_file=&path/&name;%put; %put &sysmacroname:; %mend mv_createfile; /** @file @brief Performs a text substitution on a file @details Performs a find and replace on a file, either in place or to a new file. Can be used on files where lines are longer than 32767. Works by reading in the file byte by byte, then marking the beginning and end of each matched string, before finally doing the replace. Full credit for this highly efficient and syntactically satisfying SAS logic goes to [Bartosz Jabłoński](https://www.linkedin.com/in/yabwon), founder of the [SAS Packages](https://github.com/yabwon/SAS_PACKAGES) framework. Usage: %let file="%sysfunc(pathname(work))/file.txt"; %let str=replace/me; %let rep=with/this; data _null_; file &file; put 'blahblah'; put "blahblah&str.blah"; put 'blahblahblah'; run; %mp_replace(&file, findvar=str, replacevar=rep) data _null_; infile &file; input; list; run; Note - if you are running a version of SAS that will allow the io package in LUA, you can also use this macro: mp_gsubfile.sas @param [in] infile The QUOTED path to the file on which to perform the substitution @param [in] findvar= Macro variable NAME containing the string to search for @param [in] replacevar= Macro variable NAME containing the replacement string @param [out] outfile= (0) Optional QUOTED path to the adjusted output file (to avoid overwriting the first file).

SAS Macros

@li mf_getuniquefileref.sas @li mf_getuniquename.sas

Related Macros

@li mp_chop.sas @li mp_gsubfile.sas @li mp_replace.test.sas @version 9.4 @author Bartosz Jabłoński @author Allan Bowe **/ %macro mp_replace(infile, findvar=, replacevar=, outfile=0 )/*/STORE SOURCE*/; %local inref dttm ds1; %let inref=%mf_getuniquefileref(); %let outref=%mf_getuniquefileref(); %if &outfile=0 %then %let outfile=&infile; %let ds1=%mf_getuniquename(prefix=allchars); %let ds2=%mf_getuniquename(prefix=startmark); /* START */ %let dttm=%sysfunc(datetime()); filename &inref &infile lrecl=1 recfm=n; data &ds1; infile &inref; input sourcechar $char1. @@; format sourcechar hex2.; run; data &ds2; /* set find string to length in bytes to cover trailing spaces */ length string $ %length(%superq(&findvar)); string =symget("&findvar"); drop string; firstchar=char(string,1); findlen=lengthm(string); /* <- for trailing bytes */ do _N_=1 to nobs; set &ds1 nobs=nobs point=_N_; if sourcechar=firstchar then do; pos=1; s=0; do point=_N_ to min(_N_ + findlen -1,nobs); set &ds1 point=point; if sourcechar=char(string, pos) then s + 1; else goto _leave_; pos+1; end; _leave_: if s=findlen then do; START =_N_; _N_ =_N_+ s - 1; STOP =_N_; output; end; end; end; stop; keep START STOP; run; data &ds1; declare hash HS(dataset:"&ds2(keep=start)"); HS.defineKey("start"); HS.defineDone(); declare hash HE(dataset:"&ds2(keep=stop)"); HE.defineKey("stop"); HE.defineDone(); do until(eof); set &ds1 end=eof curobs =n; start = ^HS.check(key:n); stop = ^HE.check(key:n); length strt $ 1; strt =put(start,best. -L); retain out 1; if out then output; if start then out=0; if stop then out=1; end; stop; keep sourcechar strt; run; filename &outref &outfile recfm=n; data _null_; length replace $ %length(%superq(&replacevar)); replace=symget("&replacevar"); file &outref; do until(eof); set &ds1 end=eof; if strt ="1" then put replace char.; else put sourcechar char1.; end; stop; run; /* END */ %put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run; %mend mp_replace; /* system macros for build process end */ %macro mf_mval(var); %if %symexist(&var) %then %do; %superq(&var) %end; %mend mf_mval; %macro mf_trimstr(basestr,trimstr); %local baselen trimlen trimval; /* return if basestr is shorter than trimstr (or 0) */ %let baselen=%length(%superq(basestr)); %let trimlen=%length(%superq(trimstr)); %if &baselen < &trimlen or &baselen=0 %then %return; /* obtain the characters from the end of basestr */ %let trimval=%qsubstr(%superq(basestr) ,%length(%superq(basestr))-&trimlen+1 ,&trimlen); /* compare and if matching, chop it off! */ %if %superq(basestr)=%superq(trimstr) %then %do; %return; %end; %else %if %superq(trimval)=%superq(trimstr) %then %do; %qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen) %end; %else %do; &basestr %end; %mend mf_trimstr; %macro mf_getplatform(switch )/*/STORE SOURCE*/; %local a b c; %if &switch.NONE=NONE %then %do; %if %symexist(sasjsprocessmode) %then %do; %if &sasjsprocessmode=Stored Program %then %do; SASJS %return; %end; %end; %if %symexist(sysprocessmode) %then %do; %if "&sysprocessmode"="SAS Object Server" or "&sysprocessmode"= "SAS Compute Server" %then %do; SASVIYA %end; %else %if "&sysprocessmode"="SAS Stored Process Server" or "&sysprocessmode"="SAS Workspace Server" %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if %symexist(_metaport) or %symexist(_metauser) %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if &switch=SASSTUDIO %then %do; /* return the version of SAS Studio else 0 */ %if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do; %let a=%mf_mval(_CLIENTVERSION); %let b=%scan(&a,1,.); %if %eval(&b >2) %then %do; &b %end; %else 0; %end; %else 0; %end; %else %if &switch=VIYARESTAPI %then %do; %mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/) %end; %mend mf_getplatform; %macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767); %local rc fname; %if &prefix=0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %end; %else %do; %local x len; %let len=%eval(8-%length(&prefix)); %let x=0; %do x=0 %to &maxtries; %let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len); %if %sysfunc(fileref(&fname)) > 0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %return; %end; %end; %put unable to find available fileref after &maxtries attempts; %end; %mend mf_getuniquefileref; %macro mf_getuniquename(prefix=MC); &prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix)) %mend mf_getuniquename; %macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1) , errds=work.mp_abort_errds , mode=REGULAR )/*/STORE SOURCE*/; %global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode; %local fref fid i; %if not(%eval(%unquote(&iftrue))) %then %return; %put NOTE: /// mp_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; %if %symexist(_SYSINCLUDEFILEDEVICE) /* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %then %do; %if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do; data &errds; iftrue='1=1'; length mac $100 msg $5000; mac=symget('mac'); msg=symget('msg'); run; data _null_; abort cancel FILE; run; %return; %end; %end; /* Web App Context */ %if %symexist(_PROGRAM) or %superq(SYSPROCESSNAME) = %str(Compute Server) or &mode=INCLUDE %then %do; options obs=max replace mprint; %if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do; options nosyntaxcheck; %end; %if &mode=INCLUDE %then %do; %if %sysfunc(exist(&errds))=1 %then %do; data _null_; set &errds; call symputx('iftrue',iftrue,'l'); call symputx('mac',mac,'l'); call symputx('msg',msg,'l'); putlog (_all_)(=); run; %if (&iftrue)=0 %then %return; %end; %else %do; %put &sysmacroname: No include errors found; %return; %end; %end; /* extract log errs / warns, if exist */ %local logloc logline; %global logmsg; /* capture global messages */ %if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG; %else %let logloc=%qsysfunc(getoption(LOG)); proc printto log=log;run; %let logline=0; %if %length(&logloc)>0 %then %do; data _null_; infile &logloc lrecl=5000; input; putlog _infile_; i=1; retain logonce 0; if ( _infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR" ) and logonce=0 then do; call symputx('logline',_n_); logonce+1; end; run; /* capture log including lines BEFORE the err */ %if &logline>0 %then %do; data _null_; infile &logloc lrecl=5000; input; i=1; stoploop=0; if _n_ ge &logline-15 and stoploop=0 then do until (i>22); call symputx('logmsg',catx('\n',symget('logmsg'),_infile_)); input; i+1; stoploop=1; end; if stoploop=1 then stop; run; %end; %end; %if %symexist(SYS_JES_JOB_URI) %then %do; /* setup webout for Viya */ options nobomfile; %if "X&SYS_JES_JOB_URI.X"="XX" %then %do; filename _webout temp lrecl=999999 mod; %end; %else %do; filename _webout filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json" lrecl=999999 mod; %end; %end; %else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do; options nobomfile; /* set up http header for SASjs Server */ %let fid=%sysfunc(fopen(&fref,A)); %if &fid=0 %then %do; %put %str(ERR)OR: %sysfunc(sysmsg()); %return; %end; %let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json))); %let rc=%sysfunc(fwrite(&fid)); %let rc=%sysfunc(fclose(&fid)); %let rc=%sysfunc(filename(&fref)); %end; /* send response in SASjs JSON format */ data _null_; file _webout mod lrecl=32000 encoding='utf-8'; length msg syswarningtext syserrortext $32767 mode $10 ; sasdatetime=datetime(); msg=symget('msg'); %if &logline>0 %then %do; msg=cats(msg,'\n\nLog Extract:\n',symget('logmsg')); %end; /* escape the escapes */ msg=tranwrd(msg,'\','\\'); /* escape the quotes */ msg=tranwrd(msg,'"','\"'); /* ditch the CRLFs as chrome complains */ msg=compress(msg,,'kw'); /* quote without quoting the quotes (which are escaped instead) */ msg=cats('"',msg,'"'); if symexist('_debug') then debug=quote(trim(symget('_debug'))); else debug='""'; if symget('sasjsprocessmode')='Stored Program' then mode='SASJS'; if mode ne 'SASJS' then put '>>weboutBEGIN<<'; put '{"SYSDATE" : "' "&SYSDATE" '"'; put ',"SYSTIME" : "' "&SYSTIME" '"'; put ',"sasjsAbort" : [{'; put ' "MSG":' msg ; put ' ,"MAC": "' "&mac" '"}]'; put ",""SYSUSERID"" : ""&sysuserid"" "; put ',"_DEBUG":' debug ; if symexist('_metauser') then do; _METAUSER=quote(trim(symget('_METAUSER'))); put ",""_METAUSER"": " _METAUSER; _METAPERSON=quote(trim(symget('_METAPERSON'))); put ',"_METAPERSON": ' _METAPERSON; end; if symexist('SYS_JES_JOB_URI') then do; SYS_JES_JOB_URI=quote(trim(symget('SYS_JES_JOB_URI'))); put ',"SYS_JES_JOB_URI": ' SYS_JES_JOB_URI; end; _PROGRAM=quote(trim(resolve(symget('_PROGRAM')))); put ',"_PROGRAM" : ' _PROGRAM ; put ",""SYSCC"" : ""&syscc"" "; syserrortext=cats(symget('syserrortext')); if findc(syserrortext,'"\'!!'0A0D09000E0F010210111A'x) then do; syserrortext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syserrortext) )))))))))))))!!'"'; end; else syserrortext=cats('"',syserrortext,'"'); put ',"SYSERRORTEXT" : ' syserrortext; put ",""SYSHOSTNAME"" : ""&syshostname"" "; put ",""SYSJOBID"" : ""&sysjobid"" "; put ",""SYSSCPL"" : ""&sysscpl"" "; put ",""SYSSITE"" : ""&syssite"" "; sysvlong=quote(trim(symget('sysvlong'))); put ',"SYSVLONG" : ' sysvlong; syswarningtext=cats(symget('syswarningtext')); if findc(syswarningtext,'"\'!!'0A0D09000E0F010210111A'x) then do; syswarningtext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syswarningtext) )))))))))))))!!'"'; end; else syswarningtext=cats('"',syswarningtext,'"'); put ",""SYSWARNINGTEXT"" : " syswarningtext; put ',"END_DTTM" : "' "%sysfunc(datetime(),E8601DT26.6)" '" '; put "}" ; if mode ne 'SASJS' then put '>>weboutEND<<'; run; %put _all_; %if "&sysprocessmode " = "SAS Stored Process Server " %then %do; data _null_; putlog 'stpsrvset program err and syscc'; rc=stpsrvset('program error', 0); call symputx("syscc",0,"g"); run; %if &sysscp=WIN and 1=0 /* deprecating this logic until we figure out a consistent abort */ and "%substr(%str(&sysvlong ),1,8)"="9.04.01M" and "%substr(%str(&sysvlong ),9,1)">"5" %then %do; /* skip approach (below) does not work in windows m6+ envs */ endsas; %end; %else %do; /** * endsas kills 9.4m3 deployments by orphaning multibridges. * Abort variants are ungraceful (non zero return code) * This approach lets SAS run silently until the end :-) * Caution - fails when called within a %include within a macro * Use mp_include() to handle this. */ filename skip temp; data _null_; file skip; put '%macro skip();'; comment '%mend skip; -> fix lint '; put '%macro skippy();'; comment '%mend skippy; -> fix lint '; run; %inc skip; %end; %end; %else %if "&sysprocessmode " = "SAS Compute Server " %then %do; /* endsas kills the session making it harder to fetch results */ data _null_; syswarningtext=symget('syswarningtext'); syserrortext=symget('syserrortext'); abort_msg=symget('msg'); syscc=symget('syscc'); sysuserid=symget('sysuserid'); iftrue=symget('iftrue'); put (_all_)(/=); call symputx('syscc',0); abort cancel nolist; run; %end; %else %do; %abort cancel; %end; %end; %else %do; %put _all_; %abort cancel; %end; %mend mp_abort; /** @endcond */ %macro mp_binarycopy( inloc= /* full path and filename of the object to be copied */ ,outloc= /* full path and filename of object to be created */ ,inref=____in /* override default to use own filerefs */ ,outref=____out /* override default to use own filerefs */ ,mode=CREATE ,iftrue=%str(1=1) )/*/STORE SOURCE*/; %local mod; %if not(%eval(%unquote(&iftrue))) %then %return; %if &mode=APPEND %then %let mod=mod; /* these IN and OUT filerefs can point to anything */ %if &inref = ____in %then %do; filename &inref &inloc lrecl=1048576 ; %end; %if &outref=____out %then %do; filename &outref &outloc lrecl=1048576 &mod; %end; /* copy the file byte-for-byte */ data _null_; infile &inref lrecl=1 recfm=n; file &outref &mod recfm=n; input sourcechar $char1. @@; format sourcechar hex2.; put sourcechar char1. @@; run; %if &inref = ____in %then %do; filename &inref clear; %end; %if &outref=____out %then %do; filename &outref clear; %end; %mend mp_binarycopy; %macro mp_chop(infile, matchvar=, matchpoint=START, keep=FIRST, offset=0, mdebug=0, outfile=0 )/*/STORE SOURCE*/; %local fref0 dttm ds1 outref; %let fref0=%mf_getuniquefileref(); %let ds1=%mf_getuniquename(prefix=allchars); %let ds2=%mf_getuniquename(prefix=startmark); %if &outfile=0 %then %let outfile=&infile; %mp_abort(iftrue= (%length(%superq(&matchvar))=0) ,mac=mp_chop.sas ,msg=%str(&matchvar is an empty variable) ) /* START */ %let dttm=%sysfunc(datetime()); filename &fref0 &infile lrecl=1 recfm=n; /* create dataset with one char per row */ data &ds1; infile &fref0; input sourcechar $char1. @@; format sourcechar hex2.; run; /* get start & stop position of first matchvar string (one row, two vars) */ data &ds2; /* set find string to length in bytes to cover trailing spaces */ length string $ %length(%superq(&matchvar)); string =symget("&matchvar"); drop string; firstchar=char(string,1); findlen=lengthm(string); /* <- for trailing bytes */ do _N_=1 to nobs; set &ds1 nobs=nobs point=_N_; if sourcechar=firstchar then do; pos=1; s=0; do point=_N_ to min(_N_ + findlen -1,nobs); set &ds1 point=point; if sourcechar=char(string, pos) then s + 1; else goto _leave_; pos+1; end; _leave_: if s=findlen then do; START =_N_; _N_ =_N_+ s - 1; STOP =_N_; output; /* matched! */ stop; end; end; end; stop; keep START STOP; run; %local split; %let split=0; data _null_; set &ds2; if "&matchpoint"='START' then do; if "&keep"='FIRST' then mp=start; else if "&keep"='LAST' then mp=start-1; end; else if "&matchpoint"='END' then do; if "&keep"='FIRST' then mp=stop+1; else if "&keep"='LAST' then mp=stop; end; split=mp+&offset; call symputx('split',split,'l'); %if &mdebug=1 %then %do; put (_all_)(=); %put &=offset; %end; run; %if &split=0 %then %do; %put &sysmacroname: No match found in &infile for string %superq(&matchvar); %return; %end; data _null_; file &outfile recfm=n; set &ds1; %if &keep=FIRST %then %do; if _n_ ge &split then stop; %end; %else %do; if _n_ gt &split; %end; put sourcechar char1.; run; %if &mdebug=0 %then %do; filename &fref0 clear; %end; %else %do; data _null_; infile &outfile lrecl=32767; input; list; if _n_>200 then stop; run; %end; /* END */ %put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run; %mend mp_chop; %macro mcf_init(func )/*/STORE SOURCE*/; %if not (%symexist(SASJS_PREFIX)) %then %do; %global SASJS_PREFIX; %let SASJS_PREFIX=SASJS; %end; %let func=%upcase(&func); /* the / character is just a seperator */ %global &sasjs_prefix._FUNCTIONS; %if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do; 1 %return; %end; %else %do; %let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/; 0 %end; %mend mcf_init; %macro mcf_getfmttype(wrap=NO ,insert_cmplib=DEPRECATED ,lib=WORK ,cat=SASJS ,pkg=UTILS )/*/STORE SOURCE*/; %local i var cmpval found; %if %mcf_init(mcf_getfmttype)=1 %then %return; %if &wrap=YES %then %do; proc fcmp outlib=&lib..&cat..&pkg; %end; function mcf_getfmttype(fmtnm $) $8; if substr(fmtnm,1,1)='$' then return('CHAR'); else do; /* extract NAME */ length fmt $32; fmt=scan(fmtnm,1,'.'); do while ( substr(fmt,length(fmt),1) in ('1','2','3','4','5','6','7','8','9','0') ); if length(fmt)=1 then fmt='W'; else fmt=substr(fmt,1,length(fmt)-1); end; /* apply lookups */ if cats(fmt) in ('DATETIME','B8601DN','B8601DN','B8601DT','B8601DT' ,'B8601DZ','B8601DZ','DATEAMPM','DTDATE','DTMONYY','DTWKDATX','DTYEAR' ,'DTYYQC','E8601DN','E8601DN','E8601DT','E8601DT','E8601DZ','E8601DZ') then return('DATETIME'); else if fmt in ('DATE','YYMMDD','B8601DA','B8601DA','DAY','DDMMYY' ,'DDMMYYB','DDMMYYC','DDMMYYD','DDMMYYN','DDMMYYP','DDMMYYS','DDMMYYx' ,'DOWNAME','E8601DA','E8601DA','JULDAY','JULIAN','MMDDYY','MMDDYYB' ,'MMDDYYC','MMDDYYD','MMDDYYN','MMDDYYP','MMDDYYS','MMDDYYx','MMYY' ,'MMYYC','MMYYD','MMYYN','MMYYP','MMYYS','MMYYx','MONNAME','MONTH' ,'MONYY','PDJULG','PDJULI','QTR','QTRR','WEEKDATE','WEEKDATX','WEEKDAY' ,'WEEKU','WEEKV','WEEKW','WORDDATE','WORDDATX','YEAR','YYMM','YYMMC' ,'YYMMD','YYMMDDB','YYMMDDC','YYMMDDD','YYMMDDN','YYMMDDP','YYMMDDS' ,'YYMMDDx','YYMMN','YYMMP','YYMMS','YYMMx','YYMON','YYQ','YYQC','YYQD' ,'YYQN','YYQP','YYQR','YYQRC','YYQRD','YYQRN','YYQRP','YYQRS','YYQRx' ,'YYQS','YYQx','YYQZ') then return('DATE'); else if fmt in ('TIME','B8601LZ','B8601LZ','B8601TM','B8601TM','B8601TZ' ,'B8601TZ','E8601LZ','E8601LZ','E8601TM','E8601TM','E8601TZ','E8601TZ' ,'HHMM','HOUR','MMSS','TIMEAMPM','TOD') then return('TIME'); else return('NUM'); end; endsub; %if &wrap=YES %then %do; quit; %end; /* insert the CMPLIB if not already there */ %let cmpval=%sysfunc(getoption(cmplib)); %let found=0; %do i=1 %to %sysfunc(countw(&cmpval,%str( %(%)))); %let var=%scan(&cmpval,&i,%str( %(%))); %if &var=&lib..&cat %then %let found=1; %end; %if &found=0 %then %do; options insert=(CMPLIB=(&lib..&cat)); %end; %mend mcf_getfmttype; %macro mf_getVarFormat(libds /* two level ds name */ , var /* variable name from which to return the format */ , force=0 )/*/STORE SOURCE*/; %local dsid vnum vformat rc vlen vtype; /* Open dataset */ %let dsid = %sysfunc(open(&libds)); %if &dsid > 0 %then %do; /* Get variable number */ %let vnum = %sysfunc(varnum(&dsid, &var)); /* Get variable format */ %if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum)); %else %do; %put NOTE: Variable &var does not exist in &libds; %let rc = %sysfunc(close(&dsid)); %return; %end; %end; %else %do; %put &sysmacroname: dataset &libds not opened! (rc=&dsid); %put &sysmacroname: %sysfunc(sysmsg()); %return; %end; /* supply a default if no format available */ %if %length(&vformat)<2 & &force=1 %then %do; %let vlen = %sysfunc(varlen(&dsid, &vnum)); %let vtype = %sysfunc(vartype(&dsid, &vnum.)); %if &vtype=C %then %let vformat=$&vlen..; %else %let vformat=best.; %end; /* Close dataset */ %let rc = %sysfunc(close(&dsid)); /* Return variable format */ &vformat %mend mf_getVarFormat; %macro mf_getvarlist(libds ,dlm=%str( ) ,quote=no ,typefilter=A )/*/STORE SOURCE*/; /* declare local vars */ %local outvar dsid nvars x rc dlm q var vtype; /* credit Rowland Hale - byte34 is double quote, 39 is single quote */ %if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34)); %else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39)); /* open dataset in macro */ %let dsid=%sysfunc(open(&libds)); %if &dsid %then %do; %let nvars=%sysfunc(attrn(&dsid,NVARS)); %if &nvars>0 %then %do; /* add variables with supplied delimeter */ %do x=1 %to &nvars; /* get variable type */ %let vtype=%sysfunc(vartype(&dsid,&x)); %if &vtype=&typefilter or &typefilter=A %then %do; %let var=&q.%sysfunc(varname(&dsid,&x))&q.; %if &var=&q&q %then %do; %put &sysmacroname: Empty column found in &libds!; %let var=&q. &q.; %end; %if %quote(&outvar)=%quote() %then %let outvar=&var; %else %let outvar=&outvar.&dlm.&var.; %end; %end; %end; %let rc=%sysfunc(close(&dsid)); %end; %else %do; %put &sysmacroname: Unable to open &libds (rc=&dsid); %put &sysmacroname: SYSMSG= %sysfunc(sysmsg()); %let rc=%sysfunc(close(&dsid)); %end; %do;%unquote(&outvar)%end; %mend mf_getvarlist; %macro mf_getvartype(libds /* two level name */ , var /* variable name from which to return the type */ )/*/STORE SOURCE*/; %local dsid vnum vtype rc; /* Open dataset */ %let dsid = %sysfunc(open(&libds)); %if &dsid. > 0 %then %do; /* Get variable number */ %let vnum = %sysfunc(varnum(&dsid, &var)); /* Get variable type (C/N) */ %if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.)); %else %do; %put NOTE: Variable &var does not exist in &libds; %let vtype = %str( ); %end; %end; %else %do; %put &sysmacroname: dataset &libds not opened! (rc=&dsid); %put &sysmacroname: %sysfunc(sysmsg()); %return; %end; /* Close dataset */ %let rc = %sysfunc(close(&dsid)); /* Return variable type */ &vtype %mend mf_getvartype; %macro mp_ds2csv(ds ,dlm=COMMA ,outref=0 ,outfile= ,outencoding=0 ,headerformat=LABEL ,termstr=CRLF )/*/STORE SOURCE*/; %local outloc delim i varlist var vcnt vat dsv vcom vmiss fmttype vfmt; %if not %sysfunc(exist(&ds)) %then %do; %put %str(WARN)ING: &ds does not exist; %return; %end; %if %index(&ds,.)=0 %then %let ds=WORK.&ds; %if &outencoding=0 %then %let outencoding=; %else %let outencoding=encoding=&outencoding; %if &outref=0 %then %let outloc=&outfile; %else %let outloc=&outref; %if &headerformat=SASJS %then %do; %let delim=","; %let termstr=CRLF; %mcf_getfmttype(wrap=YES) %end; %else %if &dlm=COMMA %then %let delim=","; %else %let delim=";"; /* credit to mjsq - https://stackoverflow.com/a/55642267 */ /* first get headers */ data _null_; file &outloc &outencoding lrecl=32767 termstr=&termstr; length header $ 2000 varnm vfmt $32 dlm $1 fmttype $8; call missing(of _all_); dsid=open("&ds.","i"); num=attrn(dsid,"nvars"); dlm=&delim; do i=1 to num; varnm=upcase(varname(dsid,i)); if i=num then dlm=''; %if &headerformat=NAME %then %do; header=cats(varnm,dlm); %end; %else %if &headerformat=LABEL %then %do; header = cats(coalescec(varlabel(dsid,i),varnm),dlm); %end; %else %if &headerformat=SASJS %then %do; if vartype(dsid,i)='C' then header=cats(varnm,':$char',varlen(dsid,i),'.'); else do; vfmt=coalescec(varfmt(dsid,i),'0'); fmttype=mcf_getfmttype(vfmt); if fmttype='DATE' then header=cats(varnm,':date9.'); else if fmttype='DATETIME' then header=cats(varnm,':E8601DT26.6'); else if fmttype='TIME' then header=cats(varnm,':TIME12.'); else header=cats(varnm,':best.'); end; %end; %else %do; %put &sysmacroname: Invalid headerformat value (&headerformat); %return; %end; put header @; end; rc=close(dsid); run; %let varlist=%mf_getvarlist(&ds); %let vcnt=%sysfunc(countw(&varlist)); /** * The $quote modifier (without a width) will take the length from the variable * and increase by two. However this will lead to truncation where the value * contains double quotes (which are doubled up). To get around this, scan the * data to see the max number of double quotes, so that the appropriate width * can be applied in the subsequent step. */ data _null_; set &ds end=last; %do i=1 %to &vcnt; %let var=%scan(&varlist,&i); %if %mf_getvartype(&ds,&var)=C %then %do; %let dsv1=%mf_getuniquename(prefix=csvcol1_); %let dsv2=%mf_getuniquename(prefix=csvcol2_); retain &dsv1 0; &dsv2=length(&var)+countc(&var,'"'); if &dsv2>&dsv1 then &dsv1=&dsv2; if last then call symputx( "vlen&i" /* should be no shorter than varlen, and no longer than 32767 */ ,cats('$quote',min(&dsv1+2,32767),'.') ,'l' ); %end; %end; %let vat=@; %let vcom=&delim; %let vmiss=%mf_getuniquename(prefix=csvcol3_); /* next, export data */ data _null_; set &ds.; file &outloc mod dlm=&delim dsd &outencoding lrecl=32767 termstr=&termstr; if _n_=1 then &vmiss=' '; %do i=1 %to &vcnt; %let var=%scan(&varlist,&i); %if &i=&vcnt %then %do; %let vat=; %let vcom=; %end; %if %mf_getvartype(&ds,&var)=N %then %do; %if &headerformat = SASJS %then %do; %let vcom=&delim; %let fmttype=%sysfunc(mcf_getfmttype(%mf_getvarformat(&ds,&var)0)); %if &fmttype=DATE %then %let vfmt=DATE9.; %else %if &fmttype=DATETIME %then %let vfmt=E8601DT26.6; %else %if &fmttype=TIME %then %let vfmt=TIME12.; %else %do; %let vfmt=; %let vcom=; %end; %end; %else %let vcom=; /* must use period - in order to work in both 9.4 and Viya 3.5 */ if missing(&var) and &var ne %sysfunc(getoption(MISSING)) then do; &vmiss=cats('.',&var); put &vmiss &vat; end; else put &var &vfmt &vcom &vat; %end; %else %do; %if &i ne &vcnt %then %let vcom=&delim; put &var &&vlen&i &vcom &vat; %end; %end; run; %mend mp_ds2csv; %macro ms_runstp(pgm ,debug=131 ,inputparams=_null_ ,inputfiles=_null_ ,outref=outweb ,outlogds=_null_ ,mdebug=0 ); %local dbg mainref authref boundary; %let mainref=%mf_getuniquefileref(); %let authref=%mf_getuniquefileref(); %let boundary=%mf_getuniquename(); %if &inputparams=0 %then %let inputparams=_null_; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %mp_abort(iftrue=("&pgm"="") ,mac=&sysmacroname ,msg=%str(Program not provided) ) /* avoid sending bom marker to API */ %local optval; %let optval=%sysfunc(getoption(bomfile)); options nobomfile; /* add params */ data _null_; file &mainref termstr=crlf lrecl=32767 mod; length line $1000 name $32 value $32767; if _n_=1 then call missing(of _all_); set &inputparams; put "--&boundary"; line=cats('Content-Disposition: form-data; name="',name,'"'); put line; put ; put value; run; /* parse input file list */ %local webcount; %let webcount=0; data _null_; set &inputfiles end=last; length fileref $8 name $32 filename $256; call symputx(cats('webref',_n_),fileref,'l'); call symputx(cats('webname',_n_),name,'l'); call symputx(cats('webfilename',_n_),filename,'l'); if last then do; call symputx('webcount',_n_); call missing(of _all_); end; run; /* write out the input files */ %local i; %do i=1 %to &webcount; data _null_; file &mainref termstr=crlf lrecl=32767 mod; infile &&webref&i lrecl=32767; if _n_ = 1 then do; length line $32767; line=cats( 'Content-Disposition: form-data; name="' ,"&&webname&i" ,'"; filename="' ,"&&webfilename&i" ,'"' ); put "--&boundary"; put line; put "Content-Type: text/plain"; put ; end; input; put _infile_; /* add the actual file to be sent */ run; %end; data _null_; file &mainref termstr=crlf mod; put "--&boundary--"; run; data _null_; file &authref lrecl=1000; infile "&_sasjs_tokenfile" lrecl=1000; input; if _n_=1 then put "Content-Type: multipart/form-data; boundary=&boundary"; put _infile_; run; %if &mdebug=1 %then %do; data _null_; infile &authref; input; put _infile_; data _null_; infile &mainref; input; put _infile_; run; %end; %local resp_path; %let resp_path=%sysfunc(pathname(work))/%mf_getuniquename(); filename &outref "&resp_path" lrecl=32767; /* prepare request*/ proc http method='POST' headerin=&authref in=&mainref out=&outref url="&_sasjs_apiserverurl.&_sasjs_apipath?_program=&pgm%str(&)_debug=131"; %if &mdebug=1 %then %do; debug level=2; %end; run; %if (&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201) or &mdebug=1 %then %do; data _null_;infile &outref;input;putlog _infile_;run; %end; %mp_abort( iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) /* reset options */ options &optval; %if &outlogds ne _null_ or &mdebug=1 %then %do; %local matchstr chopout; %let matchstr=SASJS_LOGS_SEPARATOR_163ee17b6ff24f028928972d80a26784; %let chopout=%sysfunc(pathname(work))/%mf_getuniquename(prefix=chop); %mp_chop("&resp_path" ,matchvar=matchstr ,keep=LAST ,matchpoint=END ,outfile="&chopout" ,mdebug=&mdebug ) data &outlogds; infile "&chopout" lrecl=2000; length line $2000; line=_infile_; %if &mdebug=1 %then %do; putlog line=; %end; run; %end; %if &mdebug=1 %then %do; %put &sysmacroname exit vars:; %put _local_; %end; %else %do; /* clear refs */ filename &authref; filename &mainref; %end; %mend ms_runstp; %macro ms_testservice(program, inputfiles=0, inputdatasets=0, inputparams=0, debug=0, mdebug=0, outlib=0, outref=0, outlogds=_null_ )/*/STORE SOURCE*/; %local dbg i var ds1 fref1 chopout1 chopout2; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; /* convert inputdatasets to filerefs */ %if "&inputdatasets" ne "0" %then %do; %if %quote(&inputfiles)=0 %then %let inputfiles=; %do i=1 %to %sysfunc(countw(&inputdatasets,%str( ))); %let var=%scan(&inputdatasets,&i,%str( )); %local dsref&i; %let dsref&i=%mf_getuniquefileref(); %mp_ds2csv(&var,outref=&&dsref&i,headerformat=SASJS) %let inputfiles=&inputfiles &&dsref&i:%scan(&var,-1,.); %end; %end; /* parse the filerefs - convert to a dataset */ %let ds1=%mf_getuniquename(); data &ds1; length fileref $8 name $32 filename $256 var $300; if "&inputfiles" ne "0" then do; webcount=countw("&inputfiles"); do i=1 to webcount; var=scan("&inputfiles",i,' '); fileref=scan(var,1,':'); name=scan(var,2,':'); filename=cats(name,'.csv'); output; end; end; run; /* execute the STP */ %let fref1=%mf_getuniquefileref(); %ms_runstp(&program ,debug=&debug ,inputparams=&inputparams ,inputfiles=&ds1 ,outref=&fref1 ,mdebug=&mdebug ,outlogds=&outlogds ) /* chop out JSON section */ %local matchstr chopout; %let matchstr=SASJS_LOGS_SEPARATOR_163ee17b6ff24f028928972d80a26784; %let chopout=%sysfunc(pathname(work))/%mf_getuniquename(prefix=chop); %mp_chop("%sysfunc(pathname(&fref1,F))" ,matchvar=matchstr ,keep=FIRST ,matchpoint=START ,offset=-1 ,outfile="&chopout" ,mdebug=&mdebug ) %if &outlib ne 0 %then %do; libname &outlib json "&chopout"; %end; %if &outref ne 0 %then %do; filename &outref "&chopout"; %end; %if &mdebug=0 %then %do; filename &webref clear; filename &fref1 clear; %end; %else %do; %put &sysmacroname exit vars:; %put _local_; %end; %mend ms_testservice; %macro mf_existfileref(fref )/*/STORE SOURCE*/; %local rc; %let rc=%sysfunc(fileref(&fref)); %if &rc=0 %then %do; 1 %end; %else %if &rc<0 %then %do; %put &sysmacroname: Fileref &fref exists but the underlying file does not; 1 %end; %else %do; 0 %end; %mend mf_existfileref; %macro mv_getjobresult(uri=0 ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,mdebug=0 ,result=WEBOUT_JSON ,outref=0 ,outlib=0 ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) /* validation in datastep for better character safety */ %local errmsg errflg; data _null_; uri=symget('uri'); if length(uri)<12 then do; call symputx('errflg',1); call symputx('errmsg',"URI is invalid (too short) - '&uri'",'l'); end; if scan(uri,-1)='state' or scan(uri,1) ne 'jobExecution' then do; call symputx('errflg',1); call symputx('errmsg', "URI should be in format /jobExecution/jobs/$$$$UUID$$$$" !!" but is actually like: &uri",'l'); end; run; %mp_abort(iftrue=(&errflg=1) ,mac=&sysmacroname ,msg=%str(&errmsg) ) %if &outref ne 0 and %mf_existfileref(&outref) ne 1 %then %do; filename &outref temp; %end; options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); /* fetch job info */ %local fname1; %let fname1=%mf_getuniquefileref(); proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri&uri"; headers "Accept"="application/json" %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; ; run; %if &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; data _null_;infile &fname1;input;putlog _infile_;run; %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %if &mdebug=1 %then %do; data _null_; infile &fname1 lrecl=32767; input; putlog _infile_; run; %end; /* extract results link */ %local lib1 resuri; %let lib1=%mf_getuniquelibref(); libname &lib1 JSON fileref=&fname1; data _null_; set &lib1..results; call symputx('resuri',_&result,'l'); &dbg putlog "&sysmacroname results: " (_all_)(=); run; %mp_abort(iftrue=("&resuri"=".") ,mac=&sysmacroname ,msg=%str(Variable _&result did not exist in the response json) ) /* extract results */ %local fname2; %let fname2=%mf_getuniquefileref(); proc http method='GET' out=&fname2 &oauth_bearer url="&base_uri&resuri/content?limit=10000"; headers "Accept"="application/json" %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; ; run; %if &mdebug=1 %then %do; /* send one char at a time as the json can be very wide */ data _null_; infile &fname2 recfm=n; input char $char1. ; putlog char $char1. @; run; %end; %if &outref ne 0 %then %do; filename &outref temp; %mp_binarycopy(inref=&fname2,outref=&outref) %end; %if &outlib ne 0 %then %do; libname &outlib JSON fileref=&fname2; %end; %if &mdebug=0 %then %do; filename &fname1 clear; filename &fname2 clear; libname &lib1 clear; %end; %else %do; %put &sysmacroname exit vars:; %put _local_; %end; %mend mv_getjobresult; %macro mf_getattrn( libds ,attr )/*/STORE SOURCE*/; %local dsid rc; %let dsid=%sysfunc(open(&libds,is)); %if &dsid = 0 %then %do; %put %str(WARN)ING: Cannot open %trim(&libds), system message below; %put %sysfunc(sysmsg()); -1 %end; %else %do; %sysfunc(attrn(&dsid,&attr)) %let rc=%sysfunc(close(&dsid)); %end; %mend mf_getattrn; %macro mf_nobs(libds )/*/STORE SOURCE*/; %mf_getattrn(&libds,NLOBS) %mend mf_nobs; %macro mf_existvarlist(libds, varlist )/*/STORE SOURCE*/; %if %str(&libds)=%str() or %str(&varlist)=%str() %then %do; %mf_abort(msg=No value provided to libds(&libds) or varlist (&varlist)! ,mac=mf_existvarlist.sas) %end; %local dsid rc i var found; %let dsid=%sysfunc(open(&libds,is)); %if &dsid=0 %then %do; %put %str(WARN)ING: unable to open &libds in mf_existvarlist (&dsid); %end; %if %sysfunc(attrn(&dsid,NVARS))=0 %then %do; %put MF_EXISTVARLIST: No variables in &libds ; 0 %return; %end; %else %do i=1 %to %sysfunc(countw(&varlist)); %let var=%scan(&varlist,&i); %if %sysfunc(varnum(&dsid,&var))=0 %then %do; %let found=&found &var; %end; %end; %let rc=%sysfunc(close(&dsid)); %if %str(&found)=%str() %then %do; 1 %end; %else %do; 0 %put Vars not found: &found; %end; %mend mf_existvarlist; /** @endcond */ %macro mf_getuniquelibref(prefix=mclib,maxtries=1000); %local x; %if ( %length(&prefix) gt 7 ) %then %do; %put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.; 0 %return; %end; %else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do; %put %str(ERR)OR: Invalid prefix (&prefix); 0 %return; %end; /* Set maxtries equal to '10 to the power of [# unused characters] - 1' */ %let maxtries=%eval(10**(8-%length(&prefix))-1); %do x = 0 %to &maxtries; %if %sysfunc(libref(&prefix&x)) ne 0 %then %do; &prefix&x %return; %end; %let x = %eval(&x + 1); %end; %put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries; %put %str(ERR)OR- Try reducing the prefix or deleting some libraries!; 0 %mend mf_getuniquelibref; /** @cond */ %macro mf_existvar(libds /* 2 part dataset name */ , var /* variable name */ )/*/STORE SOURCE*/; %local dsid rc; %let dsid=%sysfunc(open(&libds,is)); %if &dsid=0 %then %do; %put %sysfunc(sysmsg()); 0 %end; %else %if %length(&var)=0 %then %do; 0 %let rc=%sysfunc(close(&dsid)); %end; %else %do; %sysfunc(varnum(&dsid,&var)) %let rc=%sysfunc(close(&dsid)); %end; %mend mf_existvar; /** @endcond */ %macro mv_getjoblog(uri=0,outref=0 ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,mdebug=0 ); %local dbg libref1 libref2 loglocation fname1 fname2; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) /* validation in datastep for better character safety */ %local errmsg errflg; data _null_; uri=symget('uri'); if length(uri)<12 then do; call symputx('errflg',1); call symputx('errmsg',"URI is invalid (too short) - '&uri'",'l'); end; if scan(uri,-1)='state' or scan(uri,1) ne 'jobExecution' then do; call symputx('errflg',1); call symputx('errmsg', "URI should be in format /jobExecution/jobs/$$$$UUID$$$$" !!" but is actually like:"!!uri,'l'); end; run; %mp_abort(iftrue=(&errflg=1) ,mac=&sysmacroname ,msg=%str(&errmsg) ) %mp_abort(iftrue=(&outref=0) ,mac=&sysmacroname ,msg=%str(Output fileref should be provided) ) %if %mf_existfileref(&outref) ne 1 %then %do; filename &outref temp; %end; options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); /* prepare request*/ %let fname1=%mf_getuniquefileref(); %let fname2=%mf_getuniquefileref(); proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri&uri"; headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; ; run; %if &mdebug=1 %then %do; %put &sysmacroname: fetching log loc from &uri; data _null_;infile &fname1;input;putlog _infile_;run; %end; %if &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; data _null_;infile &fname1;input;putlog _infile_;run; %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; data _null_; set &libref1..root; call symputx('loglocation',loglocation,'l'); run; /* validate log path*/ %let errflg=1; %let errmsg=No loglocation entry in &fname1 fileref; data _null_; uri=symget('loglocation'); if length(uri)<12 then do; call symputx('errflg',1); call symputx('errmsg',"URI is invalid (too short) - '&uri'",'l'); end; else if (scan(uri,1,'/') ne 'compute' or scan(uri,2,'/') ne 'sessions') and (scan(uri,1,'/') ne 'files' or scan(uri,2,'/') ne 'files') then do; call symputx('errflg',1); call symputx('errmsg', "URI should be in format /compute/sessions/$$$$UUID$$$$/jobs/$$$$UUID$$$$" !!" or /files/files/$$$$UUID$$$$" !!" but is actually like:"!!uri,'l'); end; else do; call symputx('errflg',0,'l'); call symputx('logloc',uri,'l'); end; run; %mp_abort(iftrue=(%str(&errflg)=1) ,mac=&sysmacroname ,msg=%str(&errmsg) ) /* we have a log uri - now fetch the log */ %&dbg.put &sysmacroname: querying &base_uri&logloc/content; proc http method='GET' out=&fname2 &oauth_bearer url="&base_uri&logloc/content?limit=10000"; headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; ; run; %if &mdebug=1 %then %do; %put &sysmacroname: fetching log content from &base_uri&logloc/content; data _null_;infile &fname2;input;putlog _infile_;run; %end; %if &SYS_PROCHTTP_STATUS_CODE=400 %then %do; /* fetch log from parent session */ %let logloc=%substr(&logloc,1,%index(&logloc,%str(/jobs/))-1); %&dbg.put &sysmacroname: Now querying &base_uri&logloc/log/content; proc http method='GET' out=&fname2 &oauth_bearer url="&base_uri&logloc/log/content?limit=10000"; headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; ; run; %if &mdebug=1 %then %do; %put &sysmacroname: fetching log content from &base_uri&logloc/log/content; data _null_;infile &fname2;input;putlog _infile_;run; %end; %end; %if &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; %if &mdebug ne 1 %then %do; /* have already output above */ data _null_;infile &fname2;input;putlog _infile_;run; %end; %mp_abort(mac=&sysmacroname ,msg=%str(logfetch: &SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %let libref2=%mf_getuniquelibref(); libname &libref2 JSON fileref=&fname2; data _null_; file &outref mod; if _n_=1 then do; put "/** SASJS Viya Job Log Extract start: &uri **/"; end; set &libref2..items end=last; %if &mdebug=1 %then %do; putlog line; %end; put line; if last then do; put "/** SASJS Viya Job Log Extract end: &uri **/"; end; run; %if &mdebug=0 %then %do; filename &fname1 clear; filename &fname2 clear; libname &libref1 clear; libname &libref2 clear; %end; %else %do; %put &sysmacroname exit vars:; %put _local_; %end; %mend mv_getjoblog; %macro mv_jobwaitfor(action ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,inds=0 ,outds=work.mv_jobwaitfor ,outref=0 ,raise_err=0 ,mdebug=0 ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=("&inds"="0") ,mac=&sysmacroname ,msg=%str(input dataset not provided) ) %mp_abort(iftrue=(%mf_existvar(&inds,uri)=0) ,mac=&sysmacroname ,msg=%str(The URI variable was not found in the input dataset(&inds)) ) %mp_abort(iftrue=(%mf_existvar(&inds,_program)=0) ,mac=&sysmacroname ,msg=%str(The _PROGRAM variable was not found in the input dataset(&inds)) ) %if %mf_nobs(&inds)=0 %then %do; %put NOTE: Zero observations in &inds, &sysmacroname will now exit; %return; %end; options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); data _null_; length jobparams $32767; set &inds end=last; call symputx(cats('joburi',_n_),substr(uri,1,55),'l'); call symputx(cats('jobname',_n_),_program,'l'); call symputx(cats('jobparams',_n_),jobparams,'l'); if last then call symputx('uricnt',_n_,'l'); run; %local runcnt; %if &action=ALL %then %let runcnt=&uricnt; %else %if &action=ANY %then %let runcnt=1; %else %let runcnt=&uricnt; %local fname0 ; %let fname0=%mf_getuniquefileref(); data &outds; format _program uri $128. state $32. stateDetails $32. timestamp datetime19. jobparams $32767.; call missing (of _all_); stop; run; %local i; %do i=1 %to &uricnt; %if "&&joburi&i" ne "0" %then %do; proc http method='GET' out=&fname0 &oauth_bearer url="&base_uri/&&joburi&i"; headers "Accept"="application/json" %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; ; run; %if &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; data _null_;infile &fname0;input;putlog _infile_;run; %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %let status=notset; %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 json fileref=&fname0; data _null_; length state stateDetails $32; set &libref1..root; call symputx('status',state,'l'); call symputx('stateDetails',stateDetails,'l'); run; libname &libref1 clear; %if &status=completed or &status=failed or &status=canceled %then %do; %local plainuri; %let plainuri=%substr(&&joburi&i,1,55); proc sql; insert into &outds set _program="&&jobname&i", uri="&plainuri", state="&status", stateDetails=symget("stateDetails"), timestamp=datetime(), jobparams=symget("jobparams&i"); %let joburi&i=0; /* do not re-check */ /* fetch log */ %if %str(&outref) ne 0 %then %do; %mv_getjoblog(uri=&plainuri,outref=&outref,mdebug=&mdebug) %end; %end; %else %if &status=idle or &status=pending or &status=running %then %do; data _null_; call sleep(1,1); run; %end; %else %do; %mp_abort(mac=&sysmacroname ,msg=%str(status &status not expected!!) ) %end; %if (&raise_err) %then %do; %if (&status = canceled or &status = failed or %length(&stateDetails)>0) %then %do; %if ("&stateDetails" = "%str(war)ning") %then %let SYSCC=4; %else %let SYSCC=5; %put %str(ERR)OR: Job &&jobname&i. did not complete. &stateDetails; %return; %end; %end; %end; %if &i=&uricnt %then %do; %local goback; %let goback=0; proc sql noprint; select count(*) into:goback from &outds; %if &goback lt &runcnt %then %let i=0; %end; %end; %if &mdebug=1 %then %do; %put &sysmacroname exit vars:; %put _local_; %end; %else %do; /* clear refs */ filename &fname0 clear; %end; %mend mv_jobwaitfor; %macro mf_isblank(param )/*/STORE SOURCE*/; %sysevalf(%superq(param)=,boolean) %mend mf_isblank; %macro mv_getfoldermembers(root=/ ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,outds=mv_getfolders ); %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %if %mf_isblank(&root)=1 %then %let root=/; options noquotelenmax; /* request the client details */ %local fname1 libref1; %let fname1=%mf_getuniquefileref(); %let libref1=%mf_getuniquelibref(); %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); %if "&root"="/" %then %do; /* if root just list root folders */ proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/rootFolders?limit=1000"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; libname &libref1 JSON fileref=&fname1; data &outds; set &libref1..items; run; %end; %else %do; /* first get parent folder id */ proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&root"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; /*data _null_;infile &fname1;input;putlog _infile_;run;*/ libname &libref1 JSON fileref=&fname1; /* now get the followon link to list members */ %local href cnt; %let cnt=0; data _null_; length rel href $512; call missing(rel,href); set &libref1..links; if rel='members' then do; url=cats("'","&base_uri",href,"?limit=10000'"); call symputx('href',url,'l'); call symputx('cnt',1,'l'); end; run; %if &cnt=0 %then %do; %put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-; %return; %end; %local fname2 libref2; %let fname2=%mf_getuniquefileref(); %let libref2=%mf_getuniquelibref(); proc http method='GET' out=&fname2 &oauth_bearer url=%unquote(%superq(href)); %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; libname &libref2 JSON fileref=&fname2; data &outds; length id $36 name $128 uri $64 type $32 description $256; if _n_=1 then call missing (of _all_); set &libref2..items; run; filename &fname2 clear; libname &libref2 clear; %end; /* clear refs */ filename &fname1 clear; libname &libref1 clear; %mend mv_getfoldermembers; %macro mv_jobexecute(path=0 ,name=0 ,contextName=SAS Job Execution compute context ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,paramstring=0 ,outds=work.mv_jobexecute ,mdebug=0 ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=("&path"="0") ,mac=&sysmacroname ,msg=%str(Path not provided) ) %mp_abort(iftrue=("&name"="0") ,mac=&sysmacroname ,msg=%str(Job Name not provided) ) options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); data;run; %local foldermembers; %let foldermembers=&syslast; %mv_getfoldermembers(root=&path ,access_token_var=&access_token_var ,grant_type=&grant_type ,outds=&foldermembers ) %local joburi; %let joburi=0; data _null_; length name uri $512; call missing(name,uri); set &foldermembers; if name="&name" and uri=:'/jobDefinitions/definitions' then call symputx('joburi',uri); run; %mp_abort(iftrue=("&joburi"="0") ,mac=&sysmacroname ,msg=%str(Job &path/&name not found) ) /* prepare request*/ %local fname0 fname1; %let fname0=%mf_getuniquefileref(); %let fname1=%mf_getuniquefileref(); data _null_; file &fname0; length joburi contextname $128 paramstring $32765; joburi=quote(trim(symget('joburi'))); contextname=quote(trim(symget('contextname'))); _program=quote("&path/&name"); paramstring=symget('paramstring'); put '{"jobDefinitionUri":' joburi ; put ' ,"arguments":{"_contextName":' contextname; put ' ,"_program":' _program; if paramstring ne "0" then do; put ' ,' paramstring; end; put '}}'; run; proc http method='POST' in=&fname0 out=&fname1 &oauth_bearer url="&base_uri/jobExecution/jobs"; headers "Content-Type"="application/vnd.sas.job.execution.job.request+json" "Accept"="application/vnd.sas.job.execution.job+json" %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; ; run; %if &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; data _null_;infile &fname0;input;putlog _infile_;run; data _null_;infile &fname1;input;putlog _infile_;run; %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %local libref; %let libref=%mf_getuniquelibref(); libname &libref JSON fileref=&fname1; data &outds; set &libref..links; _program="&path/&name"; run; %if &mdebug=1 %then %do; %put &sysmacroname exit vars:; %put _local_; %end; %else %do; /* clear refs */ filename &fname0 clear; filename &fname1 clear; libname &libref; %end; %mend mv_jobexecute; %macro mv_jobflow(inds=0,outds=work.mv_jobflow ,maxconcurrency=8 ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,outref=0 ,raise_err=0 ,mdebug=0 ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %put inds vars:; data _null_; set &inds; putlog (_all_)(=); run; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=("&inds"="0") ,mac=&sysmacroname ,msg=%str(Input dataset was not provided) ) %mp_abort(iftrue=(%mf_existVarList(&inds,_PROGRAM)=0) ,mac=&sysmacroname ,msg=%str(The _PROGRAM column must exist on input dataset &inds) ) %mp_abort(iftrue=(&maxconcurrency<1) ,mac=&sysmacroname ,msg=%str(The maxconcurrency variable should be a positive integer) ) /* set defaults if not provided */ %if %mf_existVarList(&inds,_CONTEXTNAME FLOW_ID)=0 %then %do; data &inds; %if %mf_existvarList(&inds,_CONTEXTNAME)=0 %then %do; length _CONTEXTNAME $128; retain _CONTEXTNAME "SAS Job Execution compute context"; %end; %if %mf_existvarList(&inds,FLOW_ID)=0 %then %do; retain FLOW_ID 0; %end; set &inds; &dbg. putlog (_all_)(=); run; %end; %local missings; proc sql noprint; select count(*) into: missings from &inds where flow_id is null or _program is null; %mp_abort(iftrue=(&missings>0) ,mac=&sysmacroname ,msg=%str(input dataset has &missings missing values for FLOW_ID or _PROGRAM) ) %if %mf_nobs(&inds)=0 %then %do; %put No observations in &inds! Leaving macro &sysmacroname; %return; %end; /* ensure output table is available */ data &outds;run; proc sql; drop table &outds; options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); /* get flows */ proc sort data=&inds; by flow_id; run; data _null_; set &inds (keep=flow_id) end=last; by flow_id; if last.flow_id then do; cnt+1; call symputx(cats('flow',cnt),flow_id,'l'); end; if last then call symputx('flowcnt',cnt,'l'); run; /* prepare temporary datasets and frefs */ %local fid jid jds jjson jdsapp jdsrunning jdswaitfor jfref; data;run;%let jds=&syslast; data;run;%let jjson=&syslast; data;run;%let jdsapp=&syslast; data;run;%let jdsrunning=&syslast; data;run;%let jdswaitfor=&syslast; %let jfref=%mf_getuniquefileref(); /* start loop */ %do fid=1 %to &flowcnt; %if not ( &raise_err and &syscc ) %then %do; %put preparing job attributes for flow &&flow&fid; %local jds jcnt; data &jds(drop=_contextName _program); set &inds(where=(flow_id=&&flow&fid)); if _contextName='' then _contextName="SAS Job Execution compute context"; call symputx(cats('job',_n_),_program,'l'); call symputx(cats('context',_n_),_contextName,'l'); call symputx('jcnt',_n_,'l'); &dbg. if _n_= 1 then putlog "Loop &fid"; &dbg. putlog (_all_)(=); run; %put exporting job variables in json format; %do jid=1 %to &jcnt; data &jjson; set &jds; if _n_=&jid then do; output; stop; end; run; proc json out=&jfref; export &jjson / nosastags fmtnumeric; run; data _null_; infile &jfref lrecl=32767; input; jparams=cats('jparams',symget('jid')); call symputx(jparams,substr(_infile_,3,length(_infile_)-4)); run; %local jobuid&jid; %let jobuid&jid=0; /* used in next loop */ %end; %local concurrency completed; %let concurrency=0; %let completed=0; proc sql; drop table &jdsrunning; %do jid=1 %to &jcnt; /** * now we can execute the jobs up to the maxconcurrency setting */ %if "&&job&jid" ne "0" %then %do; /* this var is zero if job finished */ /* check to see if the job finished in the previous round */ %if %sysfunc(exist(&outds))=1 %then %do; %local jobcheck; %let jobcheck=0; proc sql noprint; select count(*) into: jobcheck from &outds where uuid="&&jobuid&jid"; %if &jobcheck>0 %then %do; %put &&job&jid in flow &fid with uid &&jobuid&jid completed!; %let job&jid=0; %end; %end; /* check if job was triggered and, if so, if we have enough slots to run? */ %if ("&&jobuid&jid"="0") and (&concurrency<&maxconcurrency) %then %do; /* But only start if no issues detected so far */ %if not ( &raise_err and &syscc ) %then %do; %local jobname jobpath; %let jobname=%scan(&&job&jid,-1,/); %let jobpath= %substr(&&job&jid,1,%length(&&job&jid)-%length(&jobname)-1); %put executing &jobpath/&jobname with paramstring &&jparams&jid; %mv_jobexecute(path=&jobpath ,name=&jobname ,paramstring=%superq(jparams&jid) ,outds=&jdsapp ,contextname=&&context&jid ) data &jdsapp; format jobparams $32767.; set &jdsapp(where=(method='GET' and rel='state')); jobparams=symget("jparams&jid"); /* uri here has the /state suffix */ uuid=scan(uri,-2,'/'); call symputx("jobuid&jid",uuid,'l'); run; proc append base=&jdsrunning data=&jdsapp; run; %let concurrency=%eval(&concurrency+1); /* sleep one second after every request to smooth the impact */ data _null_; call sleep(1,1); run; %end; %else %do; /* Job was skipped due to problems */ %put jobid &&job&jid in flow &fid skipped due to SYSCC (&syscc); %let completed = %eval(&completed+1); %let job&jid=0; /* Indicate job has finished */ %end; %end; %end; %if &jid=&jcnt %then %do; /* we are at the end of the loop - check which jobs have finished */ %mv_jobwaitfor(ANY,inds=&jdsrunning,outds=&jdswaitfor,outref=&outref ,raise_err=&raise_err,mdebug=&mdebug) %local done; %let done=%mf_nobs(&jdswaitfor); %if &done>0 %then %do; %let completed=%eval(&completed+&done); %let concurrency=%eval(&concurrency-&done); data &jdsapp; set &jdswaitfor; flow_id=&&flow&fid; uuid=scan(uri,-1,'/'); run; proc append base=&outds data=&jdsapp; run; %end; proc sql; delete from &jdsrunning where uuid in (select uuid from &outds where state in ('canceled','completed','failed') ); /* loop again if jobs are left */ %if &completed < &jcnt %then %do; %let jid=0; %put looping flow &fid again; %put &completed of &jcnt jobs completed, &concurrency jobs running; %end; %end; %end; %end; %else %do; %put Flow &&flow&fid skipped due to SYSCC (&syscc); %end; /* back up and execute the next flow */ %end; %if &mdebug=1 %then %do; %put &sysmacroname exit vars:; %put _local_; %end; %mend mv_jobflow; %macro mx_testservice(program, inputfiles=0, inputdatasets=0, inputparams=0, debug=log, mdebug=0, outlib=0, outref=0, viyaresult=WEBOUT_JSON, viyacontext=SAS Job Execution compute context ); %local dbg pcnt fref1 fref2 webref webrefpath i webcount var platform; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; /* sanitise inputparams */ %let pcnt=0; %if &inputparams ne 0 %then %do; data _null_; set &inputparams; if not nvalid(name,'v7') then putlog (_all_)(=); else if name in ( 'program','inputfiles','inputparams','debug','outlib','outref' ) then putlog (_all_)(=); else do; x+1; call symputx(name,quote(cats(value)),'l'); call symputx(cats('pval',x),name,'l'); call symputx('pcnt',x,'l'); end; run; %mp_abort(iftrue= (%mf_nobs(&inputparams) ne &pcnt) ,mac=&sysmacroname ,msg=%str(Invalid values in &inputparams) ) %end; /* convert inputdatasets to filerefs */ %if "&inputdatasets" ne "0" %then %do; %if %quote(&inputfiles)=0 %then %let inputfiles=; %do i=1 %to %sysfunc(countw(&inputdatasets,%str( ))); %let var=%scan(&inputdatasets,&i,%str( )); %local dsref&i; %let dsref&i=%mf_getuniquefileref(); %mp_ds2csv(&var,outref=&&dsref&i,headerformat=SASJS) %let inputfiles=&inputfiles &&dsref&i:%scan(&var,-1,.); %end; %end; %let platform=%mf_getplatform(); %let fref1=%mf_getuniquefileref(); %let fref2=%mf_getuniquefileref(); %let webref=%mf_getuniquefileref(); %let webrefpath=%sysfunc(pathname(work))/%mf_getuniquename(); /* mp_chop requires a physical path as input */ filename &webref "&webrefpath"; %if &platform=SASMETA %then %do; /* parse the input files */ %if %quote(&inputfiles) ne 0 %then %do; %let webcount=%sysfunc(countw(&inputfiles)); %put &=webcount; %do i=1 %to &webcount; %let var=%scan(&inputfiles,&i,%str( )); %local webfref&i webname&i; %let webref&i=%scan(&var,1,%str(:)); %let webname&i=%scan(&var,2,%str(:)); %put webref&i=&&webref&i; %put webname&i=&&webname&i; %end; %end; %else %let webcount=0; proc stp program="&program"; inputparam _program="&program" %do i=1 %to &webcount; %if &webcount=1 %then %do; _webin_fileref="&&webref&i" _webin_name="&&webname&i" %end; %else %do; _webin_fileref&i="&&webref&i" _webin_name&i="&&webname&i" %end; %end; _webin_file_count="&webcount" _debug="&debug" %do i=1 %to &pcnt; /* resolve name only, proc stp fetches value */ &&pval&i=&&&&&&pval&i %end; ; %do i=1 %to &webcount; inputfile &&webref&i; %end; outputfile _webout=&webref; run; data _null_; infile &webref; file &fref1; input; length line $10000; if index(_infile_,'>>weboutBEGIN<<') then do; line=tranwrd(_infile_,'>>weboutBEGIN<<',''); put line; end; else if index(_infile_,'>>weboutEND<<') then do; line=tranwrd(_infile_,'>>weboutEND<<',''); put line; stop; end; else put _infile_; run; data _null_; infile &fref1; input; put _infile_; run; %if &outlib ne 0 %then %do; libname &outlib json (&fref1); %end; %if &outref ne 0 %then %do; filename &outref temp; %mp_binarycopy(inref=&webref,outref=&outref) %end; %end; %else %if &platform=SASVIYA %then %do; /* prepare inputparams */ %local ds1; %let ds1=%mf_getuniquename(); %if "&inputparams" ne "0" %then %do; proc transpose data=&inputparams out=&ds1; id name; var value; run; %end; %else %do; data &ds1;run; %end; /* parse the input files - convert to sasjs params */ %local webcount i var sasjs_tables; %if %quote(&inputfiles) ne 0 %then %do; %let webcount=%sysfunc(countw(&inputfiles)); %put &=webcount; %do i=1 %to &webcount; %let var=%scan(&inputfiles,&i,%str( )); %local webfref&i webname&i sasjs&i.data; %let webref&i=%scan(&var,1,%str(:)); %let webname&i=%scan(&var,2,%str(:)); %put webref&i=&&webref&i; %put webname&i=&&webname&i; %let sasjs_tables=&sasjs_tables &&webname&i; data _null_; infile &&webref&i lrecl=32767; input; if _n_=1 then call symputx("sasjs&i.data",_infile_); else call symputx( "sasjs&i.data",cats(symget("sasjs&i.data"),'0D0A'x,_infile_) ); putlog "&sysmacroname infile: " _infile_; run; data &ds1; set &ds1; length sasjs&i.data $32767 sasjs_tables $1000; sasjs&i.data=symget("sasjs&i.data"); sasjs_tables=symget("sasjs_tables"); run; %end; %end; %else %let webcount=0; data &ds1; retain _program "&program"; retain _contextname "&viyacontext"; set &ds1; putlog "&sysmacroname inputparams:"; putlog (_all_)(=); run; %mv_jobflow(inds=&ds1 ,maxconcurrency=1 ,outds=work.results ,outref=&fref1 ,mdebug=&mdebug ) /* show the log */ data _null_; infile &fref1; input; putlog _infile_; run; /* get the uri to fetch results */ data _null_; set work.results; call symputx('uri',uri); putlog "&sysmacroname: fetching results for " uri; run; /* fetch results from webout.json */ %mv_getjobresult(uri=&uri, result=&viyaresult, outref=&outref, outlib=&outlib, mdebug=&mdebug ) %end; %else %if &platform=SASJS %then %do; %ms_testservice(&program ,inputfiles=&inputfiles ,inputdatasets=&inputdatasets ,inputparams=&inputparams ,debug=&debug ,mdebug=&mdebug ,outlib=&outlib ,outref=&outref ) %end; %else %do; %put %str(ERR)OR: Unrecognised platform: &platform; %end; %if &mdebug=0 %then %do; filename &fref1 clear; %if &platform ne SASJS %then %do; filename &fref2 clear; filename &webref clear; %end; %end; %else %do; %put &sysmacroname exit vars:; %put _local_; %end; %mend mx_testservice; * BuildInit start; /** @file buildinitviya.sas @brief initialisation for viya build program **/ options nonotes nomprint; * BuildInit end; %let path=services; %let filename=clickme.html; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8dGl0bGU+RGF0YSBDb250cm9sbGVyPC90aXRsZT4KICAgIDwhLS0gPGJhc2UgaHJlZj0iLyI+IC0tPgoKICAgIDwhLS0gbWV0YSB0YWdzIC0tPgogICAgPG1ldGEgbmFtZT0iZGVzY3Jp'@; put 'cHRpb24iIGNvbnRlbnQ9IkNhcHR1cmUsIFJldmlldywgYW5kIEFwcHJvdmUiPgogICAgPG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IkRhdGEgQ29udHJvbGxlciBmb3IgU0FTwq4iPgogICAgPG1ldGEgaXRlbXByb3A9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJDYXB0dXJlLCBSZXZp'@; put 'ZXcsIGFuZCBBcHByb3ZlIj4KICAgIDxtZXRhIGl0ZW1wcm9wPSJpbWFnZSIgY29udGVudD0iaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvL2ltZy9kY19iZ19Bc3NldC01QDJ4LnBuZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwOi8vZGVtby5kYXRh'@; put 'Y29udHJvbGxlci5pbyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkRhdGEgQ29udHJvbGxlciBmb3IgU0FTwq4iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9u'@; put 'IiBjb250ZW50PSJDYXB0dXJlLCBSZXZpZXcsIGFuZCBBcHByb3ZlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvL2ltZy9kY19iZ19Bc3NldC01QDJ4LnBuZyI+CgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQi'@; put 'IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+CiAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iL1NBU0pvYkV4ZWN1'@; put 'dGlvbj9fRklMRT0vUHVibGljL2FwcC9kYy9zZXJ2aWNlcy93ZWIvaW1hZ2VzL2Zhdmljb24uaWNvIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGMvc2VydmljZXMvd2ViL3N0eWxlcy41OWRjMTE5NDdiODMxNDNj'@; put 'LmNzcyI+PC9oZWFkPgoKICA8IS0tCiAgICAjIyBTQVNKUyBBZGFwdGVyIGNvbmZpZyBkZXRhaWxzICMjCgogICAgKiBhcHBMb2M6IFRoZSBsb2NhdGlvbiBpbiBtZXRhZGF0YSBvciBTQVMgZHJpdmUgd2hlcmUgREMgd2lsbCBiZSBkZXBsb3llZAogICAgKiBzZXJ2ZXJUeXBlOiBlaXRoZXIg'@; put 'U0FTOSwgU0FTVklZQSBvciBTQVNKUwogICAgKiBsb2dpbk1lY2hhbmlzbTogVXNlICdEZWZhdWx0JyBmb3IgcmVndWxhciAodXNlci9wYXNzKSBsb2dpbnMsIG9yICdSZWRpcmVjdGVkJyBmb3IgMkZBL1NTTwogICAgKiBkZWJ1ZzogV2hldGhlciB0byBlbmFibGUgZGVidWcgb24gc3RhcnR1'@; put 'cAoKICAgICMjIFZpeWEgb25seSBzZXR0aW5ncyAjIwogICAgKiBhZG1pbkdyb3VwOiBUaGlzIGdyb3VwIHdpbGwgaGF2ZSB1bnJlc3RyaWN0ZWQgYWNjZXNzIChWaXlhIE9ubHkpCiAgICAqIGRjUGF0aDogVGhlIHBoeXNpY2FsIGxvY2F0aW9uIGluIHdoaWNoIHRvIGRlcGxveSB0aGUgc3Rh'@; put 'Z2luZyBhcmVhIChWaXlhIG9ubHkpCiAgICAqIHVzZUNvbXB1dGVBcGk6IENvbm5lY3Rpb24gbWV0aG9kIChWaXlhIG9ubHkpCiAgICAqIGNvbnRleHROYW1lOiBDb21wdXRlIENvbnRleHQgKFZpeWEgb25seSkKCiAgLS0+CgogIDxib2R5IGNsYXNzPSJtLTAiPjxzYXNqcyBzZXJ2ZXJ1cmw9'@; put 'IiIgYXBwbG9jPSIvUHVibGljL2FwcC9kYyIgc2VydmVydHlwZT0iU0FTVklZQSIgbG9naW5tZWNoYW5pc209IkRlZmF1bHQiIGRlYnVnPSJmYWxzZSIgdXNlY29tcHV0ZWFwaT0idHJ1ZSIgY29udGV4dG5hbWU9IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIgYWRtaW5ncm91'@; put 'cD0ic2VjLXNhczktcHJkLWludC1zYXNwbGF0Zm9ybS0zMDAxMTRzYXNqcyIgZGNwYXRoPSIvdG1wL2RjIiBob3RsaWNlbmNla2V5PSJub24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlvbiI+CiAgPC9zYXNqcz4KCiAgCiAgICA8bXktYXBwPjwvbXktYXBwPgogIDxzY3JpcHQgc3JjPSIvU0FT'@; put 'Sm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjL3NlcnZpY2VzL3dlYi9ydW50aW1lLmMzMTZhYzUxZDU5NjY3MTMuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGMvc2VydmljZXMvd2ViL3Bv'@; put 'bHlmaWxscy44N2RiYmQzZmFhYmVkNTEzLmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjL3NlcnZpY2VzL3dlYi9zY3JpcHRzLjg5YTg5NDdhMDI2NmM0N2EuanMiIGRlZmVyPSIiPjwvc2NyaXB0Pjxz'@; put 'Y3JpcHQgc3JjPSIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjL3NlcnZpY2VzL3dlYi9tYWluLjJjMWRkNWI0YTg5NjI4MTIuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+CgoKICAgIDwhLS0gCiAgICAgIFRvIHByZXZlbnQgcmVkaXJlY3RzIC8gcHJlc2VydmUgdGhl'@; put 'IFVSTCB3aGVuIHN0cmVhbWluZyAKICAgICAgSFRNTCBmcm9tIFZpeWEsIHdlIHJlY29tbWVuZCB1c2luZyB0aGUgX2RlYnVnPTIgcGFyYW1ldGVyCiAgICAgIHdoaWNoIHdpbGwgc2VydmUgdGhlIGNvbnRlbnQgaW4gYW4gaWZyYW1lLiAgVGhlIGZvbGxvd2luZyAKICAgICAgY29kZSB3aWxs'@; put 'IHRoZW4gbW9kaWZ5IHRoZSBwYXJlbnQgaWZyYW1lIHRvIHNlcnZlIHRoZSBjb250ZW50CiAgICAgIGluIGZ1bGwgc2NyZWVuLgogICAgLS0+CiAgICA8c2NyaXB0PgogICAgaWYgKHdpbmRvdy5mcmFtZUVsZW1lbnQpewogICAgICB3aW5kb3cuZnJhbWVFbGVtZW50LnN0eWxlPSJoZWlnaHQ6'@; put 'MTAwJTt3aWR0aDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlIjsKICAgICAgd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFsbG93ZnVsbHNjcmVlbiIsIiIpCiAgICAgIHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJmcmFtZWJvcmRlciIsIjAiKQogICAgICB3aW5k'@; put 'b3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWFyZ2luaGVpZ2h0IiwiMCIpCiAgICAgIHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXJnaW53aWR0aCIsIjAiKQogICAgICB3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2Nyb2xsaW5nIiwiYXV0byIp'@; put 'CiAgICAgIHdpbmRvdy5mb2N1cygpCiAgICB9CiAgICA8L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let path=services/admin; %let service=exportconfig; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_ds2cards(base_ds, tgt_ds='; put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; put ',maxobs=max'; put ',random_sample=NO'; put ',showlog=YES'; put ',outencoding='; put ',append=NO'; put ')/*/STORE SOURCE*/;'; put '%local i setds nvars;'; put '%if not %sysfunc(exist(&base_ds)) %then %do;'; put '%put %str(WARN)ING: &base_ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; put '%else %let append=mod;'; put '/* get varcount */'; put '%let nvars=0;'; put 'proc sql noprint;'; put 'select count(*) into: nvars from dictionary.columns'; put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; put '%if &nvars=0 %then %do;'; put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; put '%return;'; put '%end;'; put '/* get indexes */'; put 'proc sort'; put 'data=sashelp.vindex('; put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; put ')'; put 'out=_data_;'; put 'by indxname indxpos;'; put 'run;'; put '%local indexes;'; put 'data _null_;'; put 'set &syslast end=last;'; put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; put 'by indxname indxpos;'; put 'length vars $32767 nom uni $8;'; put 'retain vars;'; put 'if first.indxname then do;'; put 'idxcnt+1;'; put 'nom='''';'; put 'uni='''';'; put 'vars=name;'; put 'end;'; put 'else vars=catx('' '',vars,name);'; put 'if last.indxname then do;'; put 'if nomiss=''yes'' then nom=''/nomiss'';'; put 'if unique=''yes'' then uni=''/unique'';'; put 'call symputx(''indexes'''; put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; put ',''l'');'; put 'end;'; put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; put 'run;'; put 'data;run;'; put '%let setds=&syslast;'; put 'proc sql'; put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; put 'outobs=&maxobs;'; put '%end;'; put ';'; put 'create table &setds as select * from &base_ds'; put '%if &random_sample=YES %then %do;'; put 'order by ranuni(42)'; put '%end;'; put ';'; put 'reset outobs=max;'; put 'create table datalines1 as'; put 'select name,type,length,varnum,format,label from dictionary.columns'; put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; put '/**'; put 'Due to long decimals cannot use best. format'; put 'So - use bestd. format and then use character functions to strip trailing'; put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; put 'note2err when there are missings.'; put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; put ',put(VARIABLE,best32.)'; put ',substrn(put(VARIABLE,bestd32.),1'; put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; put '**/'; put 'data datalines_2;'; put 'format dataline $32000.;'; put 'set datalines1 (where=(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; put 'if type=''num'' then dataline='; put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; put ',put('',name,'',best32.-l)'; put ',substrn(put('',name,'',bestd32.-l),1'; put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; put '/**'; put '* binary data must be converted, to store in text format. It is identified'; put '* by the presence of the $HEX keyword in the format.'; put '*/'; put 'else if upcase(format)=:''$HEX'' then'; put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; put '/**'; put '* There is no easy way to store line breaks in a cards file.'; put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; put '* Removing all nonprintables with kw (keep writeable)'; put '*/'; put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; put 'run;'; put 'proc sql noprint;'; put 'select dataline into: datalines separated by '','' from datalines_2;'; put '%local'; put 'process_dttm_flg'; put 'valid_from_dttm_flg'; put 'valid_to_dttm_flg'; put ';'; put '%let process_dttm_flg = N;'; put '%let valid_from_dttm_flg = N;'; put '%let valid_to_dttm_flg = N;'; put 'data _null_;'; put 'set datalines1 ;'; put '/* build attrib statement */'; put 'if type=''char'' then type2=''$'';'; put 'if strip(format) ne '''' then format2=cats(''format='',format);'; put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; put 'str1=catx('' '',(put(name,$33.)||''length='')'; put ',put(cats(type2,length),$7.)||format2,label2);'; put '/* Build input statement */'; put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; put 'else if type=''char'' then type3='':$char.'';'; put 'str2=put(name,$33.)||type3;'; put 'if(upcase(name) = "PROCESSED_DTTM") then'; put 'call symputx("process_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_FROM_DTTM") then'; put 'call symputx("valid_from_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_TO_DTTM") then'; put 'call symputx("valid_to_dttm_flg", "Y", "L");'; put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; put ', ifc(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; put 'run;'; put 'data _null_;'; put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; put 'length __attrib $32767;'; put 'if _n_=1 then do;'; put 'put ''/**'';'; put 'put '' @file'';'; put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; put 'put " Source: https://github.com/sasjs/core";'; put 'put '' @cond '';'; put 'put ''**/'';'; put 'put "data &tgt_ds &indexes;";'; put 'put "attrib ";'; put '%do i = 1 %to &nvars;'; put '__attrib=symget("attrib_stmt_&i");'; put 'put __attrib;'; put '%end;'; put 'put ";";'; put '%if &process_dttm_flg. eq Y %then %do;'; put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; put '%end;'; put '%if &valid_from_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_FROM_DTTM &low_date;'';'; put '%end;'; put '%if &valid_to_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_TO_DTTM &high_date;'';'; put '%end;'; put 'if __nobs=0 then do;'; put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; put 'put ''stop;'';'; put 'put ''run;'';'; put 'end;'; put 'else do;'; put 'put "infile cards dsd;";'; put 'put "input ";'; put '%do i = 1 %to &nvars.;'; put '%if(%length(&&input_stmt_&i..)) %then'; put 'put " &&input_stmt_&i..";'; put ';'; put '%end;'; put 'put ";";'; put 'put ''missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'';'; put 'put "datalines4;";'; put 'end;'; put 'end;'; put 'set &setds end=__lastobs nobs=__nobs;'; put '/* remove all formats for write purposes - some have long underlying decimals */'; put 'format _numeric_ best30.29;'; put 'length __dataline $32767;'; put '__dataline=catq(''cqtmb'',&datalines);'; put 'put __dataline;'; put 'if __lastobs then do;'; put 'put '';;;;'';'; put 'put ''run;'';'; put 'put ''/** @endcond **/'';'; put 'stop;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &setds;'; put 'quit;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &cards_file lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: CARDS FILE SAVED IN:;'; put '%put NOTE-;%put NOTE-;'; put '%put NOTE- %sysfunc(dequote(&cards_file.));'; put '%put NOTE-;%put NOTE-;'; put '%mend mp_ds2cards;'; put '/** @endcond **/'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Downloads zip file of DC customer configurations'; put '@details Zip contains several excel files, containing the customer specific'; put '(non-DC) configurations. Useful when migrating to a new instance of'; put 'Data Controller.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_nobs.sas'; put '@li mp_ds2cards.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_streamfile.sas'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let work=%sysfunc(pathname(work));'; put '/* excel does not work in all envs */'; put '%let mime=application/vnd.ms-excel;'; put '%let dbms=EXCEL;'; put '%let mime=application/csv;'; put '%let dbms=CSV;'; put '%let ext=csv;'; put '%macro conditional_export(ds);'; put '%if %mf_nobs(&ds)>0 %then %do;'; put 'PROC EXPORT DATA= &ds OUTFILE= "&work/&ds..&ext"'; put 'DBMS=&dbms REPLACE;'; put 'RUN;'; put 'ods package(ProdOutput) add file="&work/&ds..&ext" mimetype="&mime";'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%nrstr(syscc=&syscc after &ds prep)'; put ')'; put '%mend conditional_export;'; put 'ods package(ProdOutput) open nopf;'; put 'data MPE_ALERTS;'; put 'set &mpelib..MPE_ALERTS;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_ALERTS)'; put 'data MPE_COLUMN_LEVEL_SECURITY;'; put 'set &mpelib..MPE_COLUMN_LEVEL_SECURITY;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'where also CLS_LIBREF ne "&mpelib";'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_COLUMN_LEVEL_SECURITY)'; put 'data MPE_CONFIG;'; put 'set &mpelib..MPE_CONFIG;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_CONFIG)'; put 'data MPE_DATADICTIONARY;'; put 'set &mpelib..MPE_DATADICTIONARY;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'if DD_SOURCE=:"&mpelib" then do;'; put '/* nothing */'; put 'end;'; put 'else output;'; put 'run;'; put '%conditional_export(MPE_DATADICTIONARY)'; put 'data MPE_EMAILS;'; put 'set &mpelib..MPE_EMAILS;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_EMAILS)'; put 'data MPE_EXCEL_CONFIG;'; put 'set &mpelib..MPE_EXCEL_CONFIG;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_EXCEL_CONFIG)'; put 'data MPE_GROUPS;'; put 'set &mpelib..MPE_GROUPS;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_GROUPS)'; put 'data MPE_ROW_LEVEL_SECURITY;'; put 'set &mpelib..MPE_ROW_LEVEL_SECURITY;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_ROW_LEVEL_SECURITY)'; put 'data MPE_SECURITY;'; put 'set &mpelib..MPE_SECURITY;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_SECURITY)'; put 'data MPE_SELECTBOX;'; put 'set &mpelib..MPE_SELECTBOX;'; put 'where &dc_dttmtfmt. le ver_to_dttm;'; put 'where also select_lib ne "&mpelib";'; put 'drop ver_: selectbox_rk;'; put 'run;'; put '%conditional_export(MPE_SELECTBOX)'; put 'data MPE_TABLES;'; put 'set &mpelib..MPE_TABLES;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'where also LIBREF ne "&mpelib";'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_TABLES)'; put 'data MPE_VALIDATIONS;'; put 'set &mpelib..MPE_VALIDATIONS;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'where also BASE_LIB ne "&mpelib";'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_VALIDATIONS)'; put '/* finish up zip file */'; put 'ods package(ProdOutput) publish archive properties'; put '(archive_name="DCBACKUP.zip" archive_path="&work");'; put 'ods package(ProdOutput) close;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%nrstr(syscc=&syscc after zip prep)'; put ')'; put '/* now serve zip file to client */'; put '%mp_streamfile(contenttype=ZIP'; put ',inloc=%str(&work/DCBACKUP.zip)'; put ',outname=DCBACKUP.zip'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=exportdb; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_existfileref(fref'; put ')/*/STORE SOURCE*/;'; put '%local rc;'; put '%let rc=%sysfunc(fileref(&fref));'; put '%if &rc=0 %then %do;'; put '1'; put '%end;'; put '%else %if &rc<0 %then %do;'; put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; put '1'; put '%end;'; put '%else %do;'; put '0'; put '%end;'; put '%mend mf_existfileref;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; put ',applydttm=NO'; put ')/*/STORE SOURCE*/;'; put '/* check fileref is assigned */'; put '%if %mf_existfileref(&fref)=0 %then %do;'; put 'filename &fref temp ;'; put '%end;'; put '%if %length(&libref)=0 %then %let libref=WORK;'; put '%let flavour=%upcase(&flavour);'; put 'proc sql noprint;'; put 'create table _data_ as'; put 'select * from dictionary.tables'; put 'where upcase(libname)="%upcase(&libref)"'; put 'and memtype=''DATA'' /* views not currently supported */'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local tabinfo; %let tabinfo=&syslast;'; put 'create table _data_ as'; put 'select * from dictionary.columns'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local colinfo; %let colinfo=&syslast;'; put '%local dsnlist;'; put 'select distinct upcase(memname) into: dsnlist'; put 'separated by '' '''; put 'from &syslast'; put ';'; put 'create table _data_ as'; put 'select * from dictionary.indexes'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put 'order by idxusage, indxname, indxpos'; put ';'; put '%local idxinfo; %let idxinfo=&syslast;'; put '/* Extract all Primary Key and Unique data constraints */'; put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; put '%local colconst; %let colconst=&syslast;'; put '%macro addConst();'; put '%global constraints_used;'; put 'data _null_;'; put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; put 'set &colconst('; put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; put ') end=last;'; put 'file &fref mod;'; put 'by constraint_type constraint_name;'; put 'retain constraints_used;'; put 'constraint_name_orig=constraint_name;'; put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; put 'else ctype=strip(constraint_type);'; put '%if &flavour=TSQL %then %do;'; put 'column_name=catt(''['',column_name,'']'');'; put 'constraint_name=catt(''['',constraint_name,'']'');'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'column_name=catt(''"'',column_name,''"'');'; put 'constraint_name=catt(''"'',constraint_name,''"'');'; put '%end;'; put 'if first.constraint_name then do;'; put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; put 'put '' '' column_name;'; put 'end;'; put 'else put '' ,'' column_name;'; put 'if last.constraint_name then do;'; put 'put " )";'; put 'call symput(''constraints_used'',strip(constraints_used));'; put 'end;'; put 'run;'; put '%put &=constraints_used;'; put '%mend addConst;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; put 'run;'; put '%local x curds;'; put '%if &flavour=SAS %then %do;'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; put 'put "proc sql;";'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'length lab $1024 typ $20;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table &libref..&curds(";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view &libref..&curds(";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'if length(format)>1 then fmt=" format="!!cats(format);'; put 'if length(label)>1 then'; put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; put 'if notnull=''yes'' then notnul='' not null'';'; put 'if type=''char'' then typ=cats(''char('',length,'')'');'; put 'else if length ne 8 then typ=''num length=''!!cats(length);'; put 'else typ=''num'';'; put 'put name typ fmt notnul lab;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '/* ds=cats(libname,''.'',memname); */'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; put 'put '' '' name ;'; put 'end;'; put 'else put '' ,'' name ;'; put '*else put '' ,'' name ;'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '/*'; put 'ods output IntegrityConstraints=ic;'; put 'proc contents data=testali out2=info;'; put 'run;'; put '*/'; put '%end;'; put '%end;'; put '%else %if &flavour=TSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table [&schema].[&curds](";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view [&schema].[&curds](";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; put '%end;'; put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; put 'else fmt=cats(''[varchar](max)'');'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put 'put "[" name +(-1) "]" fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '*ds=cats(libname,''.'',memname);'; put 'if first.indxname then do;'; put '/* add nonclustered in case of multiple unique indexes */'; put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; put 'put '' ['' name +(-1) '']'';'; put 'end;'; put 'else put '' ,['' name +(-1) '']'';'; put 'if last.indxname then do;'; put 'put '' )'';'; put 'end;'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'put '')'';'; put 'put ''GO'';'; put 'run;'; put '/* add extended properties for labels */'; put 'data _null_;'; put 'file &fref mod;'; put 'length nm $64 lab $1024;'; put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; put 'put '' '';'; put 'put "EXEC sys.sp_addextendedproperty ";'; put 'put " @name=N''MS_Description'',@value=" lab ;'; put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; put 'if last then put ''GO'';'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put 'data _null_;'; put 'file &fref mod;'; put 'put "CREATE SCHEMA &schema;";'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put '%local curdsvarcount;'; put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; put '%if &curdsvarcount>1600 %then %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; put 'put "/* Postgres cannot create tables with over 1600 vars */";'; put 'put "/* No DDL will be generated for this table";'; put 'run;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'length fmt $32;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "CREATE TABLE &schema..&curds (";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "CREATE VIEW &schema..&curds (";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; put '%end;'; put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put '/* quote column names in case they represent reserved words */'; put 'name2=quote(trim(name));'; put 'put name2 fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; put 'put '' "'' name +(-1) ''"'' ;'; put 'end;'; put 'else put '' ,"'' name +(-1) ''"'';'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '%end;'; put '%end;'; put '%end;'; put '%if %upcase(&showlog)=YES %then %do;'; put 'options ps=max;'; put 'data _null_;'; put 'infile &fref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mend mp_getddl;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mp_ds2inserts(ds, outref=0,schema=0,outds=0,flavour=SAS,maxobs=max'; put ',applydttm=YES'; put ')/*/STORE SOURCE*/;'; put '%if not %sysfunc(exist(&ds)) %then %do;'; put '%put %str(WAR)NING: &ds does not exist;'; put '%return;'; put '%end;'; put '%if not %sysfunc(exist(&ds)) %then %do;'; put '%put %str(WAR)NING: &ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; put '%let flavour=%upcase(&flavour);'; put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; put '%put %str(WAR)NING: &flavour is not supported;'; put '%return;'; put '%end;'; put '%if &outref=0 %then %do;'; put '%put %str(WAR)NING: Please provide a fileref;'; put '%return;'; put '%end;'; put '%if %mf_existfileref(&outref)=0 %then %do;'; put 'filename &outref temp lrecl=66000;'; put '%end;'; put '%if &schema=0 %then %let schema=;'; put '%else %let schema=&schema..;'; put '%if &outds=0 %then %let outds=%scan(&ds,2,.);'; put '%local nobs;'; put 'proc sql noprint;'; put 'select count(*) into: nobs TRIMMED from &ds;'; put '%if &nobs=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'put "/* No rows found in &ds */";'; put 'run;'; put '%end;'; put '%local vars;'; put '%let vars=%mf_getvarcount(&ds);'; put '%if &vars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'put "/* No columns found in &schema.&ds */";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &vars>1600 and &flavour=PGSQL %then %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* &schema.&ds contains &vars vars */";'; put 'put "/* Postgres cannot handle tables with over 1600 vars */";'; put 'put "/* No inserts will be generated for this table */";'; put 'run;'; put '%return;'; put '%end;'; put '%local varlist varlistcomma;'; put '%let varlist=%mf_getvarlist(&ds);'; put '%let varlistcomma=%mf_getvarlist(&ds,dlm=%str(,),quote=double);'; put '/* next, export data */'; put 'data _null_;'; put 'file &outref mod ;'; put 'if _n_=1 then put "/* &schema.&outds (&nobs rows, &vars columns) */";'; put 'set &ds;'; put '%if &maxobs ne max %then %do;'; put 'if _n_>&maxobs then stop;'; put '%end;'; put 'length _____str $32767;'; put 'call missing(_____str);'; put 'format _numeric_ best.;'; put 'format _character_ ;'; put '%local i comma var vtype vfmt;'; put '%do i=1 %to %sysfunc(countw(&varlist));'; put '%let var=%scan(&varlist,&i);'; put '%let vtype=%mf_getvartype(&ds,&var);'; put '%let vfmt=%upcase(%mf_getvarformat(&ds,&var,force=1));'; put '%if &i=1 %then %do;'; put '%if &flavour=SAS %then %do;'; put 'put "insert into &schema.&outds set ";'; put 'put " &var="@;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put '_____str=cats('; put '"INSERT INTO &schema.&outds ("'; put ',symget(''varlistcomma'')'; put ',") VALUES ("'; put ');'; put 'put _____str;'; put 'put " "@;'; put '%end;'; put '%end;'; put '%else %do;'; put '%if &flavour=SAS %then %do;'; put 'put " ,&var="@;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'put " ,"@;'; put '%end;'; put '%end;'; put '%if &vtype=N %then %do;'; put '%if &flavour=SAS %then %do;'; put 'put &var;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'if missing(&var) then put ''NULL'';'; put '%if &applydttm=YES and "%substr(&vfmt.xxxxxxxx,1,8)"="DATETIME"'; put '%then %do;'; put 'else put "TIMESTAMP ''" &var E8601DT25.6 "''";'; put '%end;'; put '%else %do;'; put 'else put &var;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '_____str="''"!!trim(tranwrd(&var,"''","''''"))!!"''";'; put 'put _____str;'; put '%end;'; put '%end;'; put '%if &flavour=SAS %then %do;'; put 'put '';'';'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'put '');'';'; put '%end;'; put 'if _n_=&nobs then put /;'; put 'run;'; put '%mend mp_ds2inserts;'; put '%macro mp_lib2inserts(lib'; put ',flavour=SAS'; put ',outref=0'; put ',schema=0'; put ',maxobs=max'; put ',applydttm=YES'; put ')/*/STORE SOURCE*/;'; put '/* Find the tables */'; put '%local x ds memlist;'; put 'proc sql noprint;'; put 'select distinct lowcase(memname)'; put 'into: memlist'; put 'separated by '' '''; put 'from dictionary.tables'; put 'where upcase(libname)="%upcase(&lib)"'; put 'and memtype=''DATA''; /* exclude views */'; put '%let flavour=%upcase(&flavour);'; put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; put '%put %str(WAR)NING: &flavour is not supported;'; put '%return;'; put '%end;'; put '/* create the inserts */'; put '%do x=1 %to %sysfunc(countw(&memlist));'; put '%let ds=%scan(&memlist,&x);'; put '%mp_ds2inserts(&lib..&ds'; put ',outref=&outref'; put ',schema=&schema'; put ',outds=&ds'; put ',flavour=&flavour'; put ',maxobs=&maxobs'; put ',applydttm=&applydttm'; put ')'; put '%end;'; put '%mend mp_lib2inserts;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Exports the data controller library in DB specific DDL'; put '@details If user is in the administrator group, they can call this'; put 'service directly adding the following URL params:'; put '@li &flavour= (only PGSQL supported at this time)'; put '@li &schema= (optional, if target schema is needed)'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mp_abort.sas'; put '@li mp_getddl.sas'; put '@li mp_lib2inserts.sas'; put '@li mp_streamfile.sas'; put '@li mpe_getgroups.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%global flavour schema;'; put '/* if no flavour is specified, default to SAS */'; put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; put '/* if no schema var provided, DC Libref is used */'; put '%let schema=%sysfunc(coalescec(&schema,&dc_libref));'; put '/* check user is in admin group */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; put 'data work.admins;'; put 'set work.usergroups;'; put 'put (_all_)(=);'; put 'run;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into:cnt'; put 'from usergroups'; put 'where groupname="&mpeadmins";'; put '%put &=cnt;'; put '%mp_abort(iftrue= (&cnt=0)'; put ',mac=&_program'; put ',msg=%str(The &DC_LIBREF library can only be exported by &mpeadmins members)'; put ')'; put '%mp_getddl(&DC_LIBREF'; put ',flavour=&flavour'; put ',schema=&schema'; put ',applydttm=YES'; put ',fref=tmpref'; put ')'; put '%mp_lib2inserts(&DC_LIBREF,flavour=&flavour,schema=&schema, outref=tmpref)'; put '%mp_streamfile(contenttype=TEXT'; put ',inref=tmpref'; put ',outname=&dc_libref..ddl'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=makedata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_increment(macro_name,incr=1);'; put '/* iterate the value */'; put '%let ¯o_name=%eval(&&¯o_name+&incr);'; put '/* return the value */'; put '&&¯o_name'; put '%mend mf_increment;'; put '%macro mpe_makedata(lib=,mpeadmins=,path=);'; put '%if &syscc ne 0 %then %do;'; put '%put syscc=&syscc exiting &sysmacroname;'; put '%return;'; put '%end;'; put 'proc sql;'; put 'insert into &lib..mpe_alerts set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',alert_event=''*ALL*'''; put ',alert_lib=''*ALL*'''; put ',alert_ds=''*ALL*'''; put ',alert_user="&sysuserid";'; put 'insert into &lib..mpe_column_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',CLS_SCOPE=''EDIT'''; put ',CLS_GROUP=''AllUsers'''; put ',CLS_LIBREF="&lib"'; put ',CLS_TABLE=''MPE_LOCKANYTABLE'''; put ',CLS_VARIABLE_NM=''LOCK_STATUS_CD'''; put ',CLS_ACTIVE=1'; put ',CLS_HIDE=0;'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_EMAIL_ALERTS"'; put ',var_value=''NO'''; put ',var_active=1'; put ',var_desc=''YES or NO to enable email alerts. Note - this requires email '''; put '!!''options to be preconfigured! They can be configured in the '''; put '!!''settings stp if needed.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_VIEWLIB_CHECK"'; put ',var_value=''NO'''; put ',var_active=1'; put ',var_desc='; put '''Set to YES to enable library validity checking in viewLibs service.'''; put '!!'' Note: this can make the service very slow if there are lots of '''; put '!!''external libraries. If enabled, this removes empty libraries from '''; put '!!''the viewer library dropdown. To switch off, set to NO.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_MACROS"'; put ',var_value=cats(symget(''path''),"/dc_macros")'; put ',var_active=1'; put ',var_desc=''Location of underlying macros - EUC feature.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_MAXOBS_WEBEDIT"'; put ',var_value="100"'; put ',var_active=1'; put ',var_desc=''This sets the maximum number of observations that can be loaded'''; put '!!'' into the browser for editing in the EDIT screen. A higher number'''; put '!!'' will require a decent browser (ie, not IE) and more memory on the'''; put '!!'' client side.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_RESTRICT_VIEWER"'; put ',var_value="NO"'; put ',var_active=1'; put ',var_desc=''YES will restrict the list of libraries and tables in VIEWER to'''; put '!!'' those explicitly set to VIEW in the MPE_SECURITY table. Default=NO.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_RESTRICT_EDITRECORD"'; put ',var_value="NO"'; put ',var_active=1'; put ',var_desc=''Setting YES will prevent the EDIT RECORD dialog appearing in the'''; put '!!'' EDIT screen by removing the "Edit Row" option in the right click menu'''; put '!!'', and the "ADD RECORD" button in the bottom left. Default=NO.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC_CATALOG"'; put ',var_name="DC_IGNORELIBS"'; put ',var_value="|MAPSSAS|MAPS|"'; put ',var_active=1'; put ',var_desc=''Pipe seperated list of librefs (uppercase) to be ignored when'''; put '!!'' running the Data Catalog refresh process. This can enable a clean'''; put '!!'' run when invalid librefs are returned by the mpe_refreshlibs macro.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_LOCALE"'; put ',var_value="SYSTEM"'; put ',var_active=1'; put ',var_desc=''Set to a locale (such as en_gb or en_be) to override the system'''; put '!!'' value (which can be driven from the browser settings). This is '''; put '!!''useful when importing ambiguous dates from CSV or Excel (eg 1/2/20 vs '''; put '!!''2/1/20) as DC uses the anydtdtm informats for import. Default=SYSTEM.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BULKLOAD"'; put ',var_value="YES"'; put ',var_active=0'; put ',var_desc=''Set to YES to enable BULKLOAD=YES in redshift'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_BUCKET"'; put ',var_value="''your-aws-bucket/Exchange''"'; put ',var_active=0'; put ',var_desc=''Set to the (quoted) value of the AWS bucket to'''; put '!!'' use for s3 uploads in redshift'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_AWS_CREDENTIALS_FILE"'; put ',var_value="''/path/to/your/aws/s3/.credentials''"'; put ',var_active=0'; put ',var_desc=''Set to the (quoted) value of the AWS creds file'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_REGION"'; put ',var_value="''eu-west-1''"'; put ',var_active=0'; put ',var_desc=''Set to the (quoted) AWS region in use'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_COMPRESS"'; put ',var_value="YES"'; put ',var_active=0'; put ',var_desc=''Set to YES to perform compression ahead of the COPY command'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_USE_SSL"'; put ',var_value="YES"'; put ',var_active=0'; put ',var_desc=''Set to YES to use SSL encryption'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC_REVIEW"'; put ',var_name="HISTORY_ROWS"'; put ',var_value=''100'''; put ',var_active=1'; put ',var_desc=''Number of rows (or additional rows) to return in the HISTORY '''; put '!!''page'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_LICENCE_KEY"'; put ',var_value='' '''; put ',var_active=1'; put ',var_desc=''Licence Key'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_ACTIVATION_KEY"'; put ',var_value='' '''; put ',var_active=1'; put ',var_desc=''Activation Key'';'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''LIBRARY'''; put ',DD_SOURCE="&lib"'; put ',DD_SHORTDESC="Data Controller Control Tables"'; put ',DD_LONGDESC="# The Data Controller Library"'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''TABLE'''; put ',DD_SOURCE="&lib..MPE_TABLES"'; put ',DD_SHORTDESC="Configuration of new tables for Data Controller"'; put ',DD_LONGDESC="# MPE_TABLES - adding new tabels to Data Controller"'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''COLUMN'''; put ',DD_SOURCE="&lib..MPE_TABLES.DSN"'; put ',DD_SHORTDESC="Dataset Name to be edited"'; put ',DD_LONGDESC="_DSN_ - must be UPCASE"'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''DIRECTORY'''; put ',DD_SOURCE="/some/directory"'; put ',DD_SHORTDESC="Directory for some purpose"'; put ',DD_LONGDESC="This directory is great. It''s great directory.'; put 'It trumps all other directories."'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''TABLE'''; put ',DD_SOURCE="&lib"'; put ',DD_SHORTDESC="Transaction table for capturing Data Controller users"'; put ',DD_LONGDESC="After a user accepts the Data Controller EULA they are "'; put '!!"registered as a user in this table."'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''COLUMN'''; put ',DD_SOURCE="&lib..MPE_CONFIG.VAR_ACTIVE"'; put ',DD_SHORTDESC="Set to 1 to make an option active"'; put ',DD_LONGDESC="This value is used as a filter by data controller whenever "'; put '!!"querying for option settings."'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/**'; put '* mpe_xlmap_info'; put '*/'; put 'insert into &lib..mpe_xlmap_info set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_description=''Basel 3 Key Metrics report'''; put ',XLMAP_TARGETLIBDS="&lib..MPE_XLMAP_DATA";'; put '/**'; put '* mpe_xlmap_rules'; put '*/'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:a'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:b'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:b'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:c'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:c'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:d'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:d'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:e'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:e'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:f'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:f'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[1]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/b'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[2]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/c'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[3]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/d'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[4]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/e'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[5]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/f'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[6]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1a/e'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[1]C[5]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1a/f'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[1]C[6]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''ABSOLUTE D10'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/b'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''ABSOLUTE E10'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/c'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[6]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/d'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[8]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/e'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[9]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/f'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[10]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''ABSOLUTE H11'''; put ',xlmap_finish=''RELATIVE R[0]C[1]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:3'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''RELATIVE R[12]C[4]'''; put ',xlmap_finish=''ABSOLUTE I13'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-CR2'''; put ',xlmap_range_id=''CR2-sec1'''; put ',xlmap_sheet=''CR2'''; put ',xlmap_start=''ABSOLUTE D8'''; put ',xlmap_finish=''BLANKROW'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-CR2'''; put ',xlmap_range_id=''CR2-sec2'''; put ',xlmap_sheet=''CR2'''; put ',xlmap_start=''ABSOLUTE D18'''; put ',xlmap_finish=''LASTDOWN'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''SAMPLE'''; put ',xlmap_range_id=''header'''; put ',xlmap_sheet=''/1'''; put ',xlmap_start=''ABSOLUTE B3'''; put ',xlmap_finish=''ABSOLUTE B8'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''SAMPLE'''; put ',xlmap_range_id=''data'''; put ',xlmap_sheet=''/1'''; put ',xlmap_start=''ABSOLUTE B13'''; put ',xlmap_finish=''ABSOLUTE E16'';'; put '/**'; put '* MPE_GROUPS'; put '*/'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="dc-admin"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="allbow"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="dc-admin"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="dctestuser1"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="dc-admin"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="mihmed"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="sec-sas9-prd-ext-sasplatform-300115datacontroller"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="DCTest"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/**'; put '* MPE_ROW_LEVEL_SECURITY'; put '*/'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=1'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_GROUPS"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''GROUP_NAME'''; put ',RLS_OPERATOR_NM=''NE'''; put ',RLS_RAW_VALUE="''-1''"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=2'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib"'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''RLS_RK'''; put ',RLS_OPERATOR_NM=''>'''; put ',RLS_RAW_VALUE=''0'''; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=3'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''DC Demo Group'''; put ',RLS_LIBREF="&lib"'; put ',RLS_TABLE="MPE_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''ACCESS_LEVEL'''; put ',RLS_OPERATOR_NM=''NE'''; put ',RLS_RAW_VALUE="''N/A''"'; put ',RLS_ACTIVE=1;'; put '/**'; put '* MPE_SECURITY'; put '*/'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="dc-admin"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="dc-admin"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/* mpe_selectbox */'; put '%let rk=1;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=&rk'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_LOCKANYTABLE"'; put ',base_column="LOCK_STATUS_CD"'; put ',selectbox_value=''LOCKED'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_LOCKANYTABLE"'; put ',base_column="LOCK_STATUS_CD"'; put ',selectbox_value=''UNLOCKED'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''EDIT'''; put ',selectbox_order=0'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''APPROVE'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''VIEW'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''SIGNOFF'''; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''UPDATE'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''REPLACE'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''TXTEMPORAL'''; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''BITEMPORAL'''; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''FORMAT_CAT'''; put ',selectbox_order=5'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''*ALL*'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''SUBMITTED'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''APPROVED'''; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''REJECTED'''; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value=''Option 1'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value=''Option 2'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value=''Option 3'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value="This is a long option. This option is very long. "'; put '!!"It is optional, though."'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="CASE"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="MINVAL"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="MAXVAL"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="HARDSELECT"'; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="SOFTSELECT"'; put ',selectbox_order=5'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="NOTNULL"'; put ',selectbox_order=6'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="DSN"'; put ',selectbox_value="SOME_DATASET"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="DSN"'; put ',selectbox_value="EXAMPLE"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="COLUMN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="TABLE"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="LIBRARY"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="CATALOG"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="FORMAT"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="LIBREF"'; put ',selectbox_value=''*ALL*'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''AUDIT'''; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="HARDSELECT_HOOK"'; put ',selectbox_order=7'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="SOFTSELECT_HOOK"'; put ',selectbox_order=7'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SCOPE"'; put ',selectbox_value="ALL"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SCOPE"'; put ',selectbox_value="EDIT"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SCOPE"'; put ',selectbox_value="VIEW"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_GROUP_LOGIC"'; put ',selectbox_value="AND"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_GROUP_LOGIC"'; put ',selectbox_value="OR"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SUBGROUP_LOGIC"'; put ',selectbox_value="AND"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SUBGROUP_LOGIC"'; put ',selectbox_value="OR"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="="'; put ',selectbox_order=0'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value=">"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="<"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="<="'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value=">="'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="BETWEEN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="IN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="NOT IN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="NE"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="CONTAINS"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_EXCEL_CONFIG"'; put ',base_column="XL_RULE"'; put ',selectbox_value="FORMULA"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_ACTIVE"'; put ',selectbox_value="1"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_ACTIVE"'; put ',selectbox_value="0"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_ACTIVE"'; put ',selectbox_value="1"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_ACTIVE"'; put ',selectbox_value="0"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_SCOPE"'; put ',selectbox_value="EDIT"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_SCOPE"'; put ',selectbox_value="VIEW"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_SCOPE"'; put ',selectbox_value="ALL"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_HIDE"'; put ',selectbox_value="0"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_HIDE"'; put ',selectbox_value="1"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put '/**'; put '* MPE_TABLES'; put '*/'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_COLUMN_LEVEL_SECURITY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',buskey=''CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM'''; put ',notes=''Docs: https://docs.datacontroller.io/column-level-security'''; put ',post_edit_hook=''services/hooks/mpe_column_level_security_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_XLMAP_INFO'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',buskey=''XLMAP_ID'''; put ',notes=''Docs: https://docs.datacontroller.io/complex-excel-uploads'''; put ',post_edit_hook=''services/hooks/mpe_xlmap_info_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_XLMAP_RULES'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',buskey=''XLMAP_ID XLMAP_RANGE_ID'''; put ',notes=''Docs: https://docs.datacontroller.io/complex-excel-uploads'''; put ',post_edit_hook=''services/hooks/mpe_xlmap_rules_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_XLMAP_DATA'''; put ',num_of_approvals_required=1'; put ',loadtype=''UPDATE'''; put ',buskey=''LOAD_REF XLMAP_ID XLMAP_RANGE_ID ROW_NO COL_NO'''; put ',notes=''Docs: https://docs.datacontroller.io/complex-excel-uploads'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_LOCKANYTABLE'''; put ',num_of_approvals_required=1'; put ',loadtype=''UPDATE'''; put ',buskey=''LOCK_LIB LOCK_DS'''; put ',notes=''This table may be edited when a process failed and left a lock'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_TABLES'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''LIBREF DSN'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',notes=''This entry allows the MP Editor to edit itself!'''; put ',post_edit_hook=''services/hooks/mpe_tables_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_SECURITY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''LIBREF DSN ACCESS_LEVEL SAS_GROUP'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',notes=''Determines which groups can view/edit/approve which tables'''; put ',post_edit_hook=''services/hooks/mpe_security_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_SELECTBOX'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''SELECTBOX_RK'''; put ',var_txfrom=''VER_FROM_DTTM'''; put ',var_txto=''VER_TO_DTTM'''; put ',notes=''Can configure dropdowns for the front end'''; put ',rk_underlying=''SELECT_LIB SELECT_DS BASE_COLUMN SELECTBOX_VALUE'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_X_TEST'''; put ',num_of_approvals_required=1'; put ',loadtype=''UPDATE'''; put ',buskey=''PRIMARY_KEY_FIELD'''; put ',notes=''Test table for controller'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_EMAILS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''USER_NAME'''; put ',notes=''Primary Emails Table (backup is metadata)'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_CONFIG'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''VAR_SCOPE VAR_NAME'''; put ',notes=''Configuration variables for Data Controller'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_ALERTS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''ALERT_EVENT ALERT_LIB ALERT_DS ALERT_USER'''; put ',notes=''Configuration for alert email events'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_GROUPS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''GROUP_NAME USER_NAME'''; put ',notes=''Configuration for additional groups within Data Controller'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_VALIDATIONS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''BASE_LIB BASE_DS BASE_COL RULE_TYPE'''; put ',notes=''Configuration of data quality rules in Editor component'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',post_edit_hook=''services/hooks/mpe_validations_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_DATADICTIONARY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''DD_TYPE DD_SOURCE'''; put ',notes=''Configuration of data dictionary'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_EXCEL_CONFIG'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''XL_LIBREF XL_TABLE XL_COLUMN'''; put ',notes=''Configuration of the excel import rules'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_ROW_LEVEL_SECURITY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''RLS_RK'''; put ',notes=''Configuration of Row Level Security'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',rk_underlying=''RLS_SCOPE RLS_GROUP RLS_LIBREF RLS_TABLE RLS_GROUP_LOGIC '''; put '!!''RLS_SUBGROUP_LOGIC RLS_SUBGROUP_ID RLS_VARIABLE_NM RLS_OPERATOR_NM '''; put '!!''RLS_RAW_VALUE '''; put ',post_edit_hook=''services/hooks/mpe_row_level_security_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_X_CATALOG-FC'''; put ',num_of_approvals_required=1'; put ',loadtype=''FORMAT_CAT'''; put ',buskey=''TYPE FMTNAME FMTROW'''; put ',notes=''Sample Format Catalog'''; put ';'; put '/* mpe_validations */'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_SCOPE"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_LIBREF"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_TABLE"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_TABLE"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_VARIABLE_NM"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_VARIABLE_NM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_ACTIVE"'; put ',rule_type=''MAXVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_HIDE"'; put ',rule_type=''MAXVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_GROUP"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/sas_groups"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ALERTS"'; put ',base_col="ALERT_LIB"'; put ',rule_type=''HARDSELECT_HOOK'''; put ',rule_value="services/validations/mpe_alerts.alert_lib"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_XLMAP_INFO"'; put ',base_col="XLMAP_ID"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_XLMAP_RULES"'; put ',base_col="XLMAP_ID"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="LIBREF"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="DSN"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="LIBREF"'; put ',rule_type=''NOTNULL'''; put ',rule_value='' '''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="DSN"'; put ',rule_type=''NOTNULL'''; put ',rule_value='' '''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="NUM_OF_APPROVALS_REQUIRED"'; put ',rule_type=''MINVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="BUSKEY"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="BUSKEY"'; put ',rule_type=''NOTNULL'''; put ',rule_value=" "'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXFROM"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXTO"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSFROM"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSTO"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="LIBREF"'; put ',rule_type=''CASE'''; put ',rule_value="UPCASE"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_PROCESSED"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="LIBREF"'; put ',rule_type=''HARDSELECT'''; put ',rule_value="&lib..MPE_TABLES.LIBREF"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="DSN"'; put ',rule_type=''CASE'''; put ',rule_value="UPCASE"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="DSN"'; put ',rule_type=''SOFTSELECT'''; put ',rule_value="&lib..MPE_TABLES.DSN"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="SAS_GROUP"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/sas_groups"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="BASE_LIB"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="BASE_DS"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="BASE_COL"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="RULE_ACTIVE"'; put ',rule_type=''MINVAL'''; put ',rule_value="0"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="RULE_ACTIVE"'; put ',rule_type=''MAXVAL'''; put ',rule_value="1"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_TABLE"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_COLUMN"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="DSN"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/mpe_tables.dsn"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXFROM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXTO"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSFROM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSTO"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_PROCESSED"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SELECTBOX"'; put ',base_col="SELECT_LIB"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SELECTBOX"'; put ',base_col="SELECT_DS"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SELECTBOX"'; put ',base_col="BASE_COLUMN"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_GROUP"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/sas_groups"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_TABLE"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_SUBGROUP_ID"'; put ',rule_type=''MINVAL'''; put ',rule_value=''0'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_VARIABLE_NM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/* test softselect on numeric var (should be ordered numerically) */'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_X_TEST"'; put ',base_col="SOME_BESTNUM"'; put ',rule_type=''SOFTSELECT'''; put ',rule_value="&lib..MPE_X_TEST.SOME_BESTNUM"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_X_TEST"'; put ',base_col="SOME_NUM"'; put ',rule_type=''HARDSELECT_HOOK'''; put ',rule_value="services/validations/mpe_x_test.some_num"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_ACTIVE"'; put ',rule_type=''MINVAL'''; put ',rule_value=''0'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_ACTIVE"'; put ',rule_type=''MAXVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_XLMAP_INFO"'; put ',base_col="XLMAP_ID"'; put ',rule_type=''SOFTSELECT'''; put ',rule_value="&lib..MPE_XLMAP_RULES.XLMAP_ID"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/**'; put '* MPE_X_TEST'; put '*/'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=0'; put ',some_char=''this is dummy data'''; put ',some_dropdown=''Option 1'''; put ',some_num=42'; put ',some_date=42'; put ',some_datetime=42'; put ',some_time=42'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=1'; put ',some_char=''more dummy data'''; put ',some_dropdown=''Option 2'''; put ',some_num=42'; put ',some_date=42'; put ',some_datetime=42'; put ',some_time=422'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=2'; put ',some_char=''even more dummy data'''; put ',some_dropdown=''Option 3'''; put ',some_num=42'; put ',some_date=42'; put ',some_datetime=42'; put ',some_time=142'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=3'; put ',some_char=repeat(''It was a dark and stormy night. The wind was blowing'''; put '!!'' a gale! The captain said to his mate - mate, tell us a tale. And'''; put '!!'' this, is the tale he told: '',3)'; put ',some_dropdown=''Option 2'''; put ',some_num=1613.001'; put ',some_date=423'; put ',some_datetime=423'; put ',some_time=44'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=4'; put ',some_char=''if you can fill the unforgiving minute'''; put ',some_dropdown=''Option 1'''; put ',some_num=1613.001123456'; put ',some_date=4231'; put ',some_datetime=423123123'; put ',some_time=412'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put '%do x=10 %to 500;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=10&x'; put ',some_char="&x bottles of beer on the wall"'; put ',some_dropdown=''Option 1'''; put ',some_num=ranuni(0)'; put ',some_date=round(ranuni(0)*1000,1)'; put ',some_datetime=round(ranuni(0)*50000,1)'; put ',some_time=round(ranuni(0)*100,1)'; put ',some_shortnum=round(ranuni(0)*100,1)'; put ',some_bestnum=round(ranuni(0)*100,1);'; put '%end;'; put '/* https://support.sas.com/resources/papers/proceedings/proceedings/sugi27/p056-27.pdf */'; put 'proc format library=&lib..mpe_x_catalog;'; put 'value otdate'; put '.Z = ''Some Zs'''; put '.N = ''Some 9s'''; put 'other = [date9.]'; put ';'; put 'invalue disc'; put '''ABC'' = 0.20'; put '''DEF'' = 0.25'; put '''XYZ'' = 0.00'; put 'other = 0.00'; put ';'; put 'invalue indate'; put '''00000000'' = .Z'; put '''99999999'' = .N'; put 'other = [yymmdd8.]'; put ';'; put 'value age(multilabel)'; put '20 - 29 = ''20 - 29'''; put '30 - 39 = ''30 - 39'''; put '40 - 49 = ''40 - 49'''; put '50 - 59 = ''50 - 59'''; put '60 - high = ''60 +++'''; put '20 - 35 = ''20 - 35'''; put '36 - 55 = ''36 - 55'''; put '55 - high = ''55 +++'''; put ';'; put '/* https://libguides.library.kent.edu/SAS/UserDefinedFormats */'; put 'VALUE $GENDERLABEL'; put '"M" = "Male"'; put '"F" = "Female"'; put ';'; put 'VALUE LIKERT_SEVEN'; put '1 = "Strongly Disagree"'; put '2 = "Disagree"'; put '3 = "Slightly Disagree"'; put '4 = "Neither Agree nor Disagree"'; put '5 = "Slightly Agree"'; put '6 = "Agree"'; put '7 = "Strongly Agree"'; put ';'; put 'VALUE LIKERT7_ELEVEN'; put '1,2,3 = "Disagree"'; put '4 = "Neither Agree nor Disagree"'; put '5,6,7 = "Agree"'; put ';'; put 'VALUE LIKERT7_SISTERS'; put '1-3 = "Disagree"'; put '4 = "Neither Agree nor Disagree"'; put '5-7 = "Agree"'; put ';'; put 'VALUE INCOME'; put 'LOW -< 20000 = "Low"'; put '20000 -< 60000 = "Middle"'; put '60000 - HIGH = "High"'; put ';'; put 'VALUE RACE'; put '1 = "White"'; put '2 = "Black"'; put 'OTHER = "Other"'; put ';'; put 'VALUE GENDERCODE'; put '0 = ''Male'''; put '1 = ''Female'';'; put 'VALUE ATHLETECODE'; put '0 = ''Non-athlete'''; put '1 = ''Athlete'';'; put 'VALUE SMOKINGCODE'; put '0 = ''Nonsmoker'''; put '1 = ''Past smoker'''; put '2 = ''Current smoker'';'; put '/* https://documentation.sas.com/doc/en/pgmsascdc/v_017/proc/p1upn25lbfo6mkn1wncu4dyh9q91.htm */'; put 'value $state'; put '''Delaware''=''DE'''; put '''Florida''=''FL'''; put '''Ohio''=''OH'';'; put 'value MYfmt'; put '/* Format dates prior to 31DEC2011 using only a year. */'; put 'low-''31DEC2011''d=[year4.]'; put '/* Format 2012 dates using the month and year. */'; put '''01jan2012''d-''31DEC12''d=[monyy7.]'; put '/* Format dates 01JAN2013 and beyond using the day, month, and year. */'; put '''01JAN2013''d-high=[date9.]'; put '/* Catch missing values. */'; put 'other=''n/a'';'; put 'value newfmt .=''N/A'' other=[12.1];'; put '/* https://www.lexjansen.com/nesug/nesug08/cc/cc14.pdf */'; put 'value $genderml (multilabel)'; put '''1''=''Male'''; put '''2''=''Female'''; put '''1'',''2'','' ''=''Total people'';'; put 'value agemla (multilabel)'; put '1-4=''Preschool'''; put '1-18=''Children'''; put '19-120=''Adults'';'; put 'value agemlb (multilabel)'; put '19-120=''Adults'''; put '1-18=''Children'''; put '1-4=''Preschool'';'; put 'value agemlc (multilabel notsorted)'; put '19-120=''Adults'''; put '1-18=''Children'''; put '1-4=''Preschool'';'; put '%mend mpe_makedata;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mpe_makedatamodel(lib=);'; put '%if &syscc ne 0 %then %do;'; put '%put syscc=&syscc exiting &sysmacroname;'; put '%return;'; put '%end;'; put '%local notnull;'; put '%if %mf_existfeature(COLCONSTRAINTS)=1 %then %let notnull=not null;'; put '%put &=notnull;'; put 'proc sql;'; put 'create table &lib..mpe_alerts('; put 'tx_from num format=datetime19.3,'; put 'alert_event char(20),'; put 'alert_lib char(8),'; put 'alert_ds char(32),'; put 'alert_user char(100) ,'; put 'tx_to num ¬null format=datetime19.3'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_alerts;'; put 'index create'; put 'pk_mpealerts=(tx_from alert_event alert_lib alert_ds alert_user)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_audit('; put 'load_ref char(36) label=''unique load reference'','; put 'libref char(8) label=''Library Reference (8 chars)'','; put 'dsn char(32) label=''Dataset Name (32 chars)'','; put 'key_hash char(32) label='; put '''MD5 Hash of primary key values (pipe seperated)'','; put 'tgtvar_nm char(32) label=''Target variable name (32 chars)'','; put 'move_type char(1) label=''Either (A)ppended, (D)eleted or (M)odified'','; put 'processed_dttm num format=E8601DT26.6 label=''Processed at timestamp'','; put 'is_pk num label=''Is Primary Key Field? (1/0)'','; put 'is_diff num label='; put '''Did value change? (1/0/-1). Always -1 for appends and deletes.'','; put 'tgtvar_type char(1) label=''Either (C)haracter or (N)umeric'','; put 'oldval_num num format=best32. label=''Old (numeric) value'','; put 'newval_num num format=best32. label=''New (numeric) value'','; put 'oldval_char char(32765) label=''Old (character) value'','; put 'newval_char char(32765) label=''New (character) value'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_audit;'; put 'index create'; put 'pk_mpe_audit=(load_ref libref dsn key_hash tgtvar_nm)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_column_level_security('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'CLS_SCOPE char(4) ¬null,'; put 'CLS_GROUP char(64) ¬null,'; put 'CLS_LIBREF char(8) ¬null,'; put 'CLS_TABLE char(32) ¬null,'; put 'CLS_VARIABLE_NM char(32) ¬null,'; put 'CLS_ACTIVE num ¬null,'; put 'CLS_HIDE num'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_column_level_security;'; put 'index create'; put 'pk_mpe_column_level_security='; put '(tx_to CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_config('; put 'tx_from num ¬null format=datetime19.3'; put ',tx_to num ¬null format=datetime19.3'; put ',var_scope varchar(10) ¬null'; put ',var_name varchar(32) ¬null'; put ',var_value varchar(5000)'; put ',var_active num'; put ',var_desc varchar(300)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_config;'; put 'index create'; put 'pk_mpe_config=(tx_to var_scope var_name)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_libs('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Ref'','; put 'engine char(32) label=''Library Engine'','; put 'libname char(256) format=$256. label=''Library Name'','; put 'paths char(8192) label=''Library Paths'','; put 'perms char(500) label=''Library Permissions (if BASE)'','; put 'owners char(500) label=''Library Owners (if BASE)'','; put 'schemas char(500) label=''Library Schemas (if DB)'','; put 'libid char(17) label=''LibraryId'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_libs;'; put 'index create'; put 'pk_mpe_datacatalog_libs=(libref tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_TABS('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'dsn char(64) label=''Member Name'','; put 'memtype char(8) label=''Member Type'','; put 'dbms_memtype char(32) label=''DBMS Member Type'','; put 'memlabel char(512) label=''Data Set Label'','; put 'typemem char(8) label=''Data Set Type'','; put 'nvar num label=''Number of Variables'','; put 'compress char(8) label=''Compression Routine'','; put 'pk_fields char(512)'; put 'label=''Primary Key Fields (identified by being in a constraint that is both Unique and Not Null)'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_TABS;'; put 'index create'; put 'pk_mpe_datacatalog_TABS=(libref dsn tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_vars('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'dsn char(64) label=''Table Name'','; put 'name char(64) label=''Column Name'','; put 'memtype char(8) label=''Member Type'','; put 'type char(16) label=''Column Type'','; put 'length num label=''Column Length'','; put 'varnum num label=''Column Number in Table'','; put 'label char(512) label=''Column Label'','; put 'format char(49) label=''Column Format'','; put 'idxusage char(9) label=''Column Index Type'','; put 'notnull char(3) label=''Not NULL?'','; put 'pk_ind num label=''Primary Key Indicator (1=Primary Key field)'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_vars;'; put 'index create'; put 'pk_mpe_datacatalog_vars=(libref dsn name tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datastatus_libs('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'libsize num format=SIZEKMG. label=''Size of library'','; put 'table_cnt num label=''Number of Tables'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datastatus_libs;'; put 'index create'; put 'pk_mpe_datastatus_libs=(libref tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datastatus_tabs('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'dsn char(64) label=''Member Name'','; put 'filesize num format=SIZEKMG. label=''Size of file'','; put 'crdate num format=DATETIME. informat=DATETIME. label=''Date Created'','; put 'modate num format=DATETIME. informat=DATETIME. label=''Date Modified'','; put 'nobs num label=''Number of Physical (Actual, inc. deleted) Observations'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datastatus_tabs;'; put 'index create'; put 'pk_mpe_datastatus_tabs=(libref dsn tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datadictionary'; put '('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'DD_TYPE char(16),'; put 'DD_SOURCE char(1024),'; put 'DD_SHORTDESC char(256),'; put 'DD_LONGDESC char(32767),'; put 'DD_OWNER char(128),'; put 'DD_RESPONSIBLE char(128),'; put 'DD_SENSITIVITY char(64)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datadictionary;'; put 'index create'; put 'pk_mpe_datadictionary=(tx_to dd_type dd_source)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_dataloads('; put 'libref varchar(8) ¬null,'; put 'dsn varchar(32) ¬null,'; put 'etlsource varchar(100) ¬null,'; put 'loadtype varchar(20) ¬null,'; put 'changed_records int,'; put 'new_records int,'; put 'deleted_records int,'; put 'duration num,'; put 'user_nm varchar(50) ¬null,'; put 'processed_dttm num format=datetime19.3,'; put 'mac_ver varchar(5)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_dataloads;'; put 'index create'; put 'pk_mpe_dataloads=(processed_dttm libref dsn etlsource)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_emails('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'user_name char(50) ¬null,'; put 'user_displayname char(100),'; put 'user_email char(100) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_emails;'; put 'index create'; put 'pk_mpe_emails=(tx_to user_name)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_excel_config('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'xl_libref char(8),'; put 'xl_table char(32),'; put 'xl_column char(32),'; put 'xl_rule char(32),'; put 'xl_active num'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_excel_config;'; put 'index create'; put 'pk_mpe_excel_config=(tx_to xl_libref xl_table xl_column)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..MPE_XLMAP_DATA('; put 'LOAD_REF char(32) ¬null,'; put 'XLMAP_ID char(32) ¬null,'; put 'XLMAP_RANGE_ID char(32) ¬null,'; put 'ROW_NO num ¬null,'; put 'COL_NO num ¬null,'; put 'VALUE_TXT char(4000)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify MPE_XLMAP_DATA;'; put 'index create'; put 'pk_MPE_XLMAP_DATA=(load_ref xlmap_id xlmap_range_id row_no col_no)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_xlmap_info('; put 'tx_from num ¬null,'; put 'tx_to num ¬null,'; put 'XLMAP_ID char(32) ¬null,'; put 'XLMAP_DESCRIPTION char(1000) ¬null,'; put 'XLMAP_TARGETLIBDS char(41) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_xlmap_info;'; put 'index create'; put 'pk_mpe_xlmap_info=(tx_to xlmap_id)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_xlmap_rules('; put 'tx_from num ¬null,'; put 'tx_to num ¬null,'; put 'XLMAP_ID char(32) ¬null,'; put 'XLMAP_RANGE_ID char(32) ¬null,'; put 'XLMAP_SHEET char(32) ¬null,'; put 'XLMAP_START char(1000) ¬null,'; put 'XLMAP_FINISH char(1000)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_xlmap_rules;'; put 'index create'; put 'pk_mpe_xlmap_rules=(tx_to xlmap_id xlmap_range_id)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_filteranytable('; put 'filter_rk num ¬null,'; put 'filter_hash char(32) ¬null,'; put 'filter_table char(41) ¬null,'; put 'processed_dttm num ¬null format=datetime19.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_filteranytable;'; put 'index create filter_rk /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_filtersource('; put 'filter_hash char(32) ¬null,'; put 'filter_line num ¬null,'; put 'group_logic char(3) ¬null,'; put 'subgroup_logic char(3) ¬null,'; put 'subgroup_id num ¬null,'; put 'variable_nm varchar(32) ¬null,'; put 'operator_nm varchar(12) ¬null,'; put 'raw_value varchar(4000) ¬null,'; put 'processed_dttm num ¬null format=datetime19.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_filtersource;'; put 'index create'; put 'pk_mpe_filtersource=(filter_hash filter_line)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_groups('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'group_name char(100) ¬null,'; put 'user_name char(50) ¬null,'; put 'group_desc char(256)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_groups;'; put 'index create'; put 'pk_mpe_groups=(tx_to group_name user_name)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_lineage_cols'; put '('; put 'col_id char(32),'; put 'direction char(1),'; put 'sourcecoluri char(256),'; put 'map_type char(256),'; put 'map_transform char(256),'; put 'jobname char(256),'; put 'sourcetablename char(256),'; put 'sourcecolname char(256),'; put 'targettablename char(256),'; put 'targetcolname char(256),'; put 'targetcoluri char(256),'; put 'Derived_Rule char(500),'; put 'level int,'; put 'modified_dttm num format=datetime19.3,'; put 'modified_by char(64)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_lineage_cols;'; put 'index create'; put 'pk_mpe_lineage_cols=(col_id direction sourcecoluri targetcoluri map_type map_transform)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..MPE_LINEAGE_TABS'; put '('; put 'tx_from num ¬null format=datetime19.3,'; put 'jobid char(17),'; put 'srctableid char(17),'; put 'tgttableid char(17),'; put 'jobname char(128),'; put 'srctabletype char(16),'; put 'srctablename char(64),'; put 'srclibref char(8),'; put 'tgttabletype char(16),'; put 'tgttablename char(64),'; put 'tgtlibref char(8),'; put 'tx_to num ¬null format=datetime19.3'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_lineage_tabs;'; put 'index create'; put 'pk_mpe_lineage_tabs=(tx_to jobid srctableid tgttableid)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_loads('; put 'csv_dir char(255),'; put 'user_nm char(50) ,'; put 'status char(15) ,'; put 'duration num ,'; put 'processed_dttm num format=datetime19.3,'; put 'reason_txt char(2048) ,'; put 'approvals char(64)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_loads;'; put 'index create csv_dir /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_lockanytable('; put 'lock_lib varchar(8) ¬null ,'; put 'lock_ds varchar(32) ¬null,'; put 'lock_status_cd varchar(10) ¬null,'; put 'lock_user_nm varchar(100) ¬null ,'; put 'lock_ref varchar(200),'; put 'lock_pid varchar(10),'; put 'lock_start_dttm num format=E8601DT26.6,'; put 'lock_end_dttm num format=E8601DT26.6'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_lockanytable;'; put 'index create'; put 'pk_mpe_lockanytable=(lock_lib lock_ds)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_maxkeyvalues('; put 'keytable varchar(41) label=''Base table in libref.dataset format'','; put 'keycolumn char(32) format=$32.'; put 'label=''The Surrogate / Retained key field containing the key values.'','; put 'max_key num label='; put '''Integer value representing current max RK or SK value in the KEYTABLE'','; put 'processed_dttm num format=E8601DT26.6'; put 'label=''Datetime this value was last updated'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_maxkeyvalues;'; put 'index create keytable /nomiss unique;'; put 'quit;'; put '/* no PK defined as it is a transaction table */'; put 'proc sql;'; put 'create table &lib..mpe_requests('; put 'request_dttm num ¬null format=datetime19.,'; put 'request_user char(64) ¬null,'; put 'request_service char(64) ¬null,'; put 'request_params char(128)'; put ');'; put 'proc sql;'; put 'create table &lib..mpe_review('; put 'table_id varchar(32) ¬null,'; put 'reviewed_by_nm varchar(100) ¬null,'; put 'base_table varchar(41) ¬null,'; put 'review_status_id varchar(10) ¬null,'; put 'reviewed_on_dttm num ¬null format=datetime19.3,'; put 'review_reason_txt varchar(400)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_review;'; put 'index create'; put 'pk_mpe_review=(table_id reviewed_by_nm)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_row_level_security('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'RLS_RK num ¬null,'; put 'RLS_SCOPE char(8) ¬null,'; put 'RLS_GROUP char(128) ¬null,'; put 'RLS_LIBREF char(8) ¬null,'; put 'RLS_TABLE char(32) ¬null,'; put 'RLS_GROUP_LOGIC char(3) ¬null,'; put 'RLS_SUBGROUP_LOGIC char(3) ¬null,'; put 'RLS_SUBGROUP_ID num ¬null,'; put 'RLS_VARIABLE_NM varchar(32) ¬null,'; put 'RLS_OPERATOR_NM varchar(12) ¬null,'; put 'RLS_RAW_VALUE varchar(4000) ¬null,'; put 'RLS_ACTIVE num ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_row_level_security;'; put 'index create'; put 'pk_mpe_row_level_security=(tx_to RLS_RK)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_security('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'libref char(8) ¬null,'; put 'dsn char(32) ¬null,'; put 'access_level char(10) ¬null,'; put 'sas_group char(100) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_security;'; put 'index create'; put 'pk_mpe_security=(tx_to libref dsn access_level sas_group)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_selectbox('; put 'ver_from_dttm num ¬null format=datetime19.3,/* timestamp for versioning*/'; put 'ver_to_dttm num ¬null format=datetime19.3, /* timestamp for versioning */'; put 'selectbox_rk num ¬null, /* surrogate key */'; put 'select_lib varchar(17) ¬null, /* libref (big enough for uri)*/'; put 'select_ds varchar(32) ¬null,'; put 'base_column varchar(36) ¬null, /* variable name against which to apply selectbox */'; put 'selectbox_value varchar(500) ¬null, /* selectbox value */'; put 'selectbox_order num , /* optional ordering (1 comes before 2) */'; put 'selectbox_type varchar(32) /* column type (blank for default, else'; put 'sas or js to indicate relevant system functions)*/'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_selectbox;'; put 'index create'; put 'pk_mpe_selectbox=(ver_to_dttm selectbox_rk)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_signoffs('; put 'tech_from_dttm num ¬null format=datetime19.3,'; put 'tech_to_dttm num ¬null format=datetime19.3,'; put 'signoff_table varchar(50) ¬null,'; put 'signoff_section_rk num ¬null,'; put 'signoff_version_rk num ¬null,'; put 'signoff_name varchar(100) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_signoffs;'; put 'index create'; put 'pk_mpe_signoffs=(tech_to_dttm signoff_table signoff_section_rk)'; put '/nomiss unique;'; put 'quit;'; put '/* mpe_submit */'; put 'proc sql;'; put 'create table &lib..mpe_submit('; put 'table_id varchar(32) ¬null,'; put 'submit_status_cd varchar(10) ¬null,'; put 'base_lib char(8) ¬null,'; put 'base_ds char(32) ¬null,'; put 'submitted_by_nm varchar(100) ¬null,'; put 'submitted_on_dttm num ¬null format=datetime19.3,'; put 'submitted_reason_txt varchar(400),'; put 'input_obs num,'; put 'input_vars num,'; put 'num_of_approvals_required num ¬null ,'; put 'num_of_approvals_remaining num ¬null ,'; put 'reviewed_by_nm char(100),'; put 'reviewed_on_dttm num'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_submit;'; put 'index create table_id /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_tables('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'libref char(8) ¬null,'; put 'dsn char(32) ¬null,'; put 'num_of_approvals_required int,'; put 'loadtype char(12) ,'; put 'buskey char(1000) ,'; put 'var_txfrom char(32) ,'; put 'var_txto char(32) ,'; put 'var_busfrom char(32) ,'; put 'var_busto char(32) ,'; put 'var_processed char(32) ,'; put 'close_vars varchar(500),'; put 'pre_edit_hook char(200),'; put 'post_edit_hook char(200),'; put 'pre_approve_hook char(200) ,'; put 'post_approve_hook char(200) ,'; put 'signoff_cols varchar(500),'; put 'signoff_hook varchar(200),'; put 'notes char(1000) ,'; put 'rk_underlying char(1000) ,'; put 'audit_libds char(41)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_tables;'; put 'index create'; put 'pk_mpe_tables=(tx_to libref dsn)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_users('; put 'user_id char(50) ¬null,'; put 'last_seen_dt num ¬null format=date9.,'; put 'registered_dt num ¬null format=date9.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_users;'; put 'index create user_id /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..MPE_VALIDATIONS'; put '('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'BASE_LIB varchar(8),'; put 'BASE_DS varchar(32),'; put 'BASE_COL varchar(32),'; put 'RULE_TYPE varchar(32),'; put 'RULE_VALUE varchar(128),'; put 'RULE_ACTIVE num ,'; put 'TX_TO num ¬null format=datetime19.3'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_validations;'; put 'index create'; put 'pk_mpe_validations=(tx_from base_lib base_ds base_col rule_type)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_x_test('; put 'primary_key_field num ¬null,'; put 'some_char char(32767) ,'; put 'some_dropdown char(128),'; put 'some_num num ,'; put 'some_date num format=date9.,'; put 'some_datetime num format=datetime19. informat=ANYDTDTM19.,'; put 'some_time num format=time8.,'; put 'some_shortnum num length=4,'; put 'some_bestnum num format=best.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_x_test;'; put 'index create primary_key_field /nomiss unique;'; put 'quit;'; put '%mend mpe_makedatamodel;'; put '%macro mpe_makesampledata(outlib=);'; put '%if &syscc ne 0 %then %do;'; put '%put syscc=&syscc exiting &sysmacroname;'; put '%return;'; put '%end;'; put '%if &syssite ne 70221618 and &syssite ne 70253615 %then %do;'; put '%put syssite=&syssite, exiting &sysmacroname;'; put '%return;'; put '%end;'; put 'data &outlib..class(index=(name /unique));'; put 'set sashelp.class;'; put 'run;'; put 'data &outlib..cars(index=(carspk=(make model drivetrain) /unique));'; put 'set sashelp.cars;'; put 'run;'; put 'data &outlib..springs(index=(springspk=(name area latitude) /unique));'; put 'set sashelp.springs;'; put 'run;'; put 'data &outlib..fmt_checks;;'; put 'pk=1; E8601DA=date();'; put 'format E8601DA E8601DA10.;'; put 'run;'; put 'data append;'; put 'if 0 then set &dc_libref..mpe_tables;'; put 'TX_FROM=0;'; put 'TX_TO=''31DEC9999:23:59:59''dt;'; put 'LIBREF=%upcase("&outlib");'; put 'LOADTYPE=''UPDATE'';'; put 'NUM_OF_APPROVALS_REQUIRED=1;'; put 'DSN=''SPRINGS''; BUSKEY=''NAME AREA LATITUDE''; output;'; put 'DSN=''CARS''; BUSKEY=''MAKE MODEL DRIVETRAIN''; output;'; put 'DSN=''CLASS''; BUSKEY=''NAME''; output;'; put 'DSN=''FMT_CHECKS''; BUSKEY=''PK''; output;'; put 'run;'; put 'proc append base=&dc_libref..MPE_TABLES data=&syslast;'; put 'run;'; put '/**'; put '* DC data extra'; put '*/'; put '%local lib;'; put '%let lib=&dc_libref;'; put 'proc sql;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=4'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_TABLES"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''NUM_OF_APPROVALS_REQUIRED'''; put ',RLS_OPERATOR_NM=''>'''; put ',RLS_RAW_VALUE=''0'''; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=5'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=6'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=7'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=2'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=8'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=3'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=9'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=4'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=10'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=5'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=11'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=6'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=12'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=7'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=13'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=5'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=14'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=6'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=15'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=7'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=2'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=16'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=8'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=3'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=17'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=9'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=4'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=18'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=10'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=5'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=19'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=6'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=20'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=7'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put '/** create excel config */'; put 'insert into &lib..MPE_EXCEL_CONFIG set'; put 'tx_from=0'; put ',xl_libref="&lib"'; put ',xl_table="MPE_DATADICTIONARY"'; put ',xl_column="DD_LONGDESC"'; put ',xl_rule="FORMULA"'; put ',xl_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/** mpe_security table */'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="303001.DataController"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="303001.DataController"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'data append;'; put 'if 0 then set &dc_libref..mpe_tables;'; put 'TX_FROM=0;'; put 'TX_TO=''31DEC9999:23:59:59''dt;'; put 'LIBREF=%upcase("&dc_libref");'; put 'LOADTYPE=''UPDATE'';'; put 'NUM_OF_APPROVALS_REQUIRED=1;'; put 'DSN=''MPE_USERS''; BUSKEY=''USER_ID''; output;'; put 'run;'; put 'proc append base=&dc_libref..MPE_TABLES data=&syslast;'; put 'run;'; put '%mend mpe_makesampledata;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_deletejes(path='; put ',name='; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=(%mf_isblank(&path)=1)'; put ',mac=&sysmacroname'; put ',msg=%str(path value must be provided)'; put ')'; put '%mp_abort(iftrue=(%mf_isblank(&name)=1)'; put ',mac=&sysmacroname'; put ',msg=%str(name value must be provided)'; put ')'; put '%mp_abort(iftrue=(%length(&path)=1)'; put ',mac=&sysmacroname'; put ',msg=%str(path value must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%put &sysmacroname: fetching details for &path ;'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&path";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put &sysmacroname: Folder &path NOT FOUND - nothing to delete!;'; put '%return;'; put '%end;'; put '%else %if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %do;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put '%put &sysmacroname: grab the follow on link ;'; put '%local libref1;'; put '%let libref1=%mf_getuniquelibref();'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data _null_;'; put 'set &libref1..links;'; put 'if rel=''members'' then call symputx(''mref'',quote("&base_uri"!!trim(href)),''l'');'; put 'run;'; put '/* get the children */'; put '%local fname1a;'; put '%let fname1a=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1a &oauth_bearer'; put 'url=%unquote(%superq(mref));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '%put &=SYS_PROCHTTP_STATUS_CODE;'; put '%local libref1a;'; put '%let libref1a=%mf_getuniquelibref();'; put 'libname &libref1a JSON fileref=&fname1a;'; put '%local uri found;'; put '%let found=0;'; put '%put Getting object uri from &libref1a..items;'; put 'data _null_;'; put 'length contenttype name $1000;'; put 'set &libref1a..items;'; put 'if contenttype=''jobDefinition'' and upcase(name)="%upcase(&name)" then do;'; put 'call symputx(''uri'',cats("&base_uri",uri),''l'');'; put 'call symputx(''found'',1,''l'');'; put 'end;'; put 'run;'; put '%if &found=0 %then %do;'; put '%put NOTE:;%put NOTE- &sysmacroname: &path/&name NOT FOUND;%put NOTE- ;'; put '%return;'; put '%end;'; put 'proc http method="DELETE" url="&uri" &oauth_bearer;'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="*/*";/**/'; put 'run;'; put '%if &SYS_PROCHTTP_STATUS_CODE ne 204 %then %do;'; put 'data _null_; infile &fname2; input; putlog _infile_;run;'; put '%mp_abort(mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put '%else %put &sysmacroname: &path/&name successfully deleted;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put 'filename &fname1a clear;'; put 'libname &libref1a clear;'; put '%mend mv_deletejes;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief self destructing setup service'; put '@details Will create the database and perform config activities'; put '

SAS Macros

'; put '@li mf_getapploc.sas'; put '@li mf_mkdir.sas'; put '@li mf_trimstr.sas'; put '@li mpe_getvars.sas'; put '@li mpe_makedata.sas'; put '@li mpe_makedatamodel.sas'; put '@li mpe_makesampledata.sas'; put '@li mv_deletejes.sas'; put '@version 3.5'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global dcpath ADMIN ;'; put '%webout(FETCH)'; put '/* enable vars to be passed as url params */'; put '%let exist=%sysfunc(exist(work.fromjs));'; put '%let inds=%sysfunc(ifc(&exist=1,fromjs,_null_));'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''dcpath'',dcpath);'; put 'call symputx(''ADMIN'',ADMIN);'; put 'run;'; put 'options noquotelenmax;'; put '%let dclib=%upcase(VIYA%substr(%sysevalf(%sysfunc(datetime())/60),3,4));'; put '%let dclibname=Data Controller (&dclib);'; put '%let DC_LIBREF=&dclib;'; put '%let work=%sysfunc(pathname(work));'; put '%let dcpath=%mf_trimstr(&dcpath,/)/&dclib;'; put '%put &=sysuserid;'; put '%put &=dcpath;'; put '%put &=admin;'; put '%mf_mkdir(&dcpath)'; put '%mf_mkdir(&dcpath/secret)'; put '%mf_mkdir(&dcpath/dc_staging)'; put 'libname &dclib "&dcpath";'; put '%global admin;'; put '%let admin=%sysfunc(coalescec(&admin,All Users));'; put '%mpe_makedatamodel(lib=&dclib)'; put '%mpe_makedata(lib=&dclib,mpeadmins=&admin,path=%str(&dcpath))'; put '/* sample data library */'; put '%mf_mkdir(&dcpath/dc_demo)'; put 'libname dcdemo "&dcpath/dc_demo";'; put '%mpe_makesampledata(outlib=DCDEMO)'; put '/* the DC precode is stored in the root of the project */'; put '%let root=%mf_getapploc(&_program)/services;'; put '%put &=root;'; put 'filename jobout filesrvc folderpath="&root";'; put 'data _null_;'; put 'file jobout(''settings.sas'');'; put 'put ''/* these values are ignored if DC_LIBREF was declared in autoexec */'';'; put 'put '' '';'; put 'put ''%global DC_LIBREF dc_admin_group dc_staging_area ;'';'; put 'put ''/* This library (libref) contains the control datasets for DC */'';'; put 'put ''/* If a different libref must be used, configure it below */'';'; put 'put ''%let DC_LIBREF='' "&dclib;";'; put 'put '' '';'; put 'put "libname &dclib ''&dcpath'' ;";'; put 'put '' '';'; put 'put ''/* This group has unrestricted access to Data Controller */'';'; put 'put ''%let dc_admin_group='' "&admin;";'; put 'put '' '';'; put 'put ''/* This physical location is used for staging data and audit history */'';'; put 'put ''%let dc_staging_area='' "&dcpath/dc_staging;";'; put 'put '' '';'; put 'if &syssite in (70221618,70253615) then do;'; put 'put "libname dcdemo ''&dcpath/dc_demo'';";'; put 'end;'; put 'run;'; put '/* create demo data'; put 'cas dcsession;'; put 'caslib _all_ assign;'; put 'caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic GLOBAL;'; put 'proc casutil;'; put 'LOAD DATA=dcdemo.cars'; put 'CASOUT="cars"'; put 'OUTCASLIB="casmusic" PROMOTE ;'; put 'run;'; put '*/'; put '/*'; put 'cas mysess;'; put 'caslib _all_ assign;'; put 'data casmusic.artists(promote=yes);'; put 'length name varchar(30);'; put 'do tracks=1 to 100;'; put 'name=''Phil Collins''!!cats(tracks);'; put 'output;'; put 'end;'; put 'run;'; put '*/'; put '/*'; put '%let url=http://millionsongdataset.com/sites/default/files/AdditionalFiles%trim('; put ')/unique_tracks.txt;'; put 'filename test url "&url" lrecl=3000 ;'; put 'proc sql;'; put 'drop table casmusic.tunes;'; put 'data tracks;'; put 'infile test dlmstr='''' dsd end=lastobs;'; put 'input track_id:$32. song_id:$32. artist_nm:$128. title:$256.;'; put 'output;'; put 'if lastobs then do;'; put 'track_id=''dummyrecords'';'; put 'title=''none'';'; put 'artist_nm=''none'';'; put 'do x=1 to 4000000;'; put 'drop x;'; put 'song_id=cats(x);'; put 'output;'; put 'end;'; put 'stop;'; put 'end;'; put 'run;'; put 'proc casutil;'; put 'LOAD DATA=tracks'; put 'CASOUT="tunes"'; put 'OUTCASLIB="casmusic" PROMOTE ;'; put 'run;'; put '/*'; put 'data append;'; put 'if 0 then set &dclib..MPE_TABLES;'; put 'libref="CASMUSIC";'; put 'dsn=''TUNES'';'; put 'num_of_approvals_required=1;'; put 'loadtype=''UPDATE'';'; put 'buskey=''TRACK_ID SONG_ID'';'; put 'tx_from=0;'; put 'tx_to=''31DEC9999:23:59:59''dt;'; put 'output;'; put 'dsn=''ARTISTS'';'; put 'buskey=''NAME'';'; put 'output;'; put 'run;'; put 'proc append base=&dclib..MPE_tABLES data=append;'; put 'run;'; put '*/'; put '%mp_abort(iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Err during DB build)'; put ')'; put '%webout(OPEN)'; put 'data result;'; put 'dclib="&dclib";'; put 'admingroup="&admin";'; put 'dcpath="&dcpath";'; put 'run;'; put '%webout(OBJ,result)'; put '%webout(CLOSE)'; put '%mv_deletejes(path=&root/admin, name=makedata)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=refreshcatalog; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##BITEMP_&base_dsn;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data bitemp5a_lkp (keep=&md5_col);'; put 'set bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[##BITEMP_&base_dsn];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs(lib=0);'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data libs0;'; put 'set mm_getlibs;'; put 'by libraryref;'; put '%if &lib ne 0 %then %do;'; put 'where upcase(libraryref)="%upcase(&lib)";'; put '%end;'; put 'if "%mf_getplatform()"="SASMETA" then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sql;'; put 'create table libs1 as'; put 'select distinct libname'; put ',engine'; put ',path'; put ',level'; put ',sysname'; put ',sysvalue'; put 'from dictionary.libnames'; put 'order by libname, level,engine,path;'; put 'data libs2;'; put 'set libs1;'; put 'length tran $1024;'; put 'if missing(sysname) then sysname=''Missing'';'; put 'select(sysname);'; put 'when(''Access Permission'') tran=''Permissions'';'; put 'when(''Owner Name'') tran=''Owner'';'; put 'when(''Schema/Owner'') tran=''schema'';'; put 'otherwise tran=sysname;'; put 'end;'; put 'run;'; put 'proc transpose data=libs2 out=libs3;'; put 'by libname level engine path;'; put 'var sysvalue;'; put 'id tran;'; put 'run;'; put 'data libs4(rename=(libname=libref));'; put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; put 'if _n_=1 then call missing (of _all_);'; put 'set libs3;'; put 'by libname;'; put 'if engine=''V9'' then engine=''BASE'';'; put 'if first.libname then do;'; put 'retain paths perms owners schemas;'; put 'paths=''(''!!quote(trim(path));'; put 'perms=permissions;'; put 'owners=owner;'; put 'schemas=schema;'; put 'end;'; put 'else do;'; put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; put 'perms=trim(perms)!!'',''!!trim(permissions);'; put 'owners=trim(owners)!!'',''!!trim(owner);'; put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; put 'end;'; put 'if last.libname then do;'; put 'paths=trim(paths)!!'')'';'; put 'schemas=cats(schemas);'; put 'output;'; put 'end;'; put 'keep libname engine paths perms owners schemas;'; put 'run;'; put 'proc sql;'; put 'create table libs5 as'; put 'select a.libref'; put ',coalescec(b.engine,a.engine) as engine length=32'; put ',b.libraryname as libname'; put ',a.paths'; put ',a.perms'; put ',a.owners'; put ',a.schemas'; put ',b.libraryid as libid'; put 'from libs4 a'; put 'left join libs0 b'; put 'on upcase(a.libref)=upcase(b.libraryref)'; put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; put ',''MAPSGFK'');'; put '%bitemporal_dataloader(base_lib=&dc_libref'; put ',base_dsn=MPE_DATACATALOG_LIBS'; put ',append_dsn=libs5'; put ',PK=LIBREF'; put ',etlsource=&_program'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&dc_libref'; put ')'; put '%mend mpe_refreshlibs;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mpe_refreshtables(lib,ds=#all);'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%local engine; %let engine=%mf_getengine(&lib);'; put '%local schema; %let schema=%mf_getschema(&lib);'; put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; put 'proc sql;'; put 'create table cols as'; put 'select libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put ',upcase(name) as name'; put ',type'; put ',length'; put ',varnum'; put ',label'; put ',format'; put ',idxusage'; put ',notnull'; put 'from dictionary.columns'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; put ')'; put '%if &engine=SQLSVR %then %do;'; put 'proc sql;'; put 'connect using &lib;'; put 'create table work.indexes as'; put 'select * from connection to &lib('; put 'select'; put 's.name as SchemaName,'; put 't.name as memname,'; put 'tc.name as name,'; put 'ic.key_ordinal as KeyOrderNr'; put 'from'; put 'sys.schemas s'; put 'inner join sys.tables t on s.schema_id=t.schema_id'; put 'inner join sys.indexes i on t.object_id=i.object_id'; put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; put 'and i.index_id=ic.index_id'; put 'inner join sys.columns tc on ic.object_id=tc.object_id'; put 'and ic.column_id=tc.column_id'; put 'where i.is_primary_key=1'; put 'and s.name=%str(%'')&schema%str(%'')'; put 'order by t.name, ic.key_ordinal ;'; put ');disconnect from &lib;'; put 'create table finalcols as'; put 'select a.*'; put ',case when b.name is not null then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.indexes b'; put 'on a.dsn=b.memname'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn;'; put '%end;'; put '%else %do;'; put '%local dsn;'; put '%if &ds = #ALL %then %let dsn=;'; put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; put '/* extract cols that are clearly primary keys */'; put 'proc sql;'; put 'create table work.pk4sure as'; put 'select libref'; put ',table_name'; put ',constraint_name'; put ',constraint_order'; put ',column_name as name'; put 'from work.constraints'; put 'where constraint_type=''PRIMARY'''; put 'order by 1,2,3,4;'; put '/* extract unique constraints where every col is also NOT NULL */'; put 'proc sql;'; put 'create table work.sum as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',count(a.column_name) as unq_cnt'; put ',count(b.column_name) as nul_cnt'; put 'from work.constraints(where=(constraint_type =''UNIQUE'')) a'; put 'left join work.constraints(where=(constraint_type =''NOT NULL'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.column_name=b.column_name'; put 'group by 1,2,3'; put 'having unq_cnt=nul_cnt;'; put '/* extract cols from the relevant unique constraints */'; put 'create table work.pkdefault as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',b.constraint_order'; put ',b.column_name as name'; put 'from work.sum a'; put 'left join work.constraints(where=(constraint_type =''UNIQUE'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.constraint_name=b.constraint_name'; put 'order by 1,2,3,4;'; put '/* extract cols from the relevant unique INDEXES */'; put 'create table work.pkfromindex as'; put 'select libname as libref'; put ',memname as table_name'; put ',indxname as constraint_name'; put ',indxpos as constraint_order'; put ',name'; put 'from dictionary.indexes'; put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put 'order by 1,2,3,4;'; put '/* create one table */'; put 'data work.finalpks;'; put 'set pkdefault pk4sure pkfromindex;'; put 'pk_ind=1;'; put '/* if there are multiple unique constraints, take the first */'; put 'by libref table_name constraint_name;'; put 'retain keepme;'; put 'if first.table_name then keepme=1;'; put 'if first.constraint_name and not first.table_name then keepme=0;'; put 'if keepme=1;'; put 'run;'; put '/* join back to starting table */'; put 'proc sql;'; put 'create table finalcols as'; put 'select a.*'; put ',b.constraint_order'; put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.finalpks b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.table_name'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn,constraint_order;'; put '%end;'; put '/* load columns */'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_vars'; put ',append_dsn=finalcols'; put ',PK=LIBREF DSN NAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF DSN'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '/* prepare tables */'; put 'proc sql;'; put 'create table work.tabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; put ',dbms_memtype'; put '%end;'; put '%else %do;'; put ',''n/a'' as dbms_memtype format=$32.'; put '%end;'; put ',typemem'; put ',memlabel'; put ',nvar'; put ',compress'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put 'data tabs2;'; put 'set finalcols;'; put 'length pk_fields $512;'; put 'retain pk_fields;'; put 'by libref dsn;'; put 'if first.dsn then pk_fields='''';'; put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; put 'if last.dsn then output;'; put 'run;'; put 'proc sql;'; put 'create table work.finaltabs as'; put 'select a.libref'; put ',a.dsn'; put ',a.memtype'; put ',a.dbms_memtype'; put ',a.typemem'; put ',a.memlabel'; put ',a.nvar'; put ',a.compress'; put ',b.pk_fields'; put 'from work.tabs a'; put 'left join work.tabs2 b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_tabs'; put ',append_dsn=finaltabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '/* prepare table frequently changing attributes */'; put 'proc sql;'; put '%if &engine=SQLSVR %then %do;'; put 'connect using &lib;'; put 'create table work.attrs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; put 'FROM sys.tables ;'; put ');'; put 'create table work.nobs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; put ',A.Name, AVG(B.rows) AS ''RowCount'''; put 'FROM sys.objects A'; put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; put 'WHERE A.type = ''U'''; put 'GROUP BY A.schema_id, A.Name'; put ');'; put 'disconnect from &lib;'; put 'create table statustabs as select'; put 'a.libref'; put ',a.dsn'; put ',b.create_date as crdate'; put ',b.modify_date as modate'; put ',. as filesize'; put ',c.RowCount as nobs'; put 'from work.tabs a'; put 'left join work.attrs(where=(schema="&schema")) b'; put 'on upcase(a.dsn)=upcase(b.name)'; put 'left join work.nobs(where=(schema="&schema")) c'; put 'on upcase(a.dsn)=upcase(c.name);'; put '%end;'; put '%else %do;'; put 'create table statustabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',crdate'; put ',modate'; put ',filesize'; put ',nobs'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%end;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_tabs'; put ',append_dsn=statustabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '%if &ds = #ALL %then %do;'; put 'proc sql;'; put 'create table statuslibs as select'; put 'libref'; put ',sum(filesize) as libsize'; put ',count(*) as table_cnt'; put 'from statustabs'; put 'group by 1;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_libs'; put ',append_dsn=statuslibs'; put ',PK=LIBREF'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put ')'; put '%end;'; put '%mend mpe_refreshtables;'; put '%macro dc_refreshcatalog();'; put '%mpe_refreshlibs()'; put 'filename executor catalog ''work.code.code.source'';'; put 'data libraries;'; put 'set &mpelib..mpe_datacatalog_libs;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'file executor;'; put 'str=cats(''%mpe_refreshtables('',libref,'')'');'; put 'put str;'; put 'putlog str;'; put 'run;'; put '%inc executor;'; put '%mend dc_refreshcatalog;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file refreshcatalog.sas'; put '@brief Refreshes the library data catalog'; put '@details A library may be passed in a LIBREF url param.'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li dc_refreshcatalog.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global libref;'; put '%mpeinit()'; put '%dc_refreshcatalog(&libref)'; put 'data _null_;'; put 'file _webout;'; put 'put ''

Catalog Refresh Complete

'';'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=refreshlibs; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##BITEMP_&base_dsn;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data bitemp5a_lkp (keep=&md5_col);'; put 'set bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[##BITEMP_&base_dsn];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs(lib=0);'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data libs0;'; put 'set mm_getlibs;'; put 'by libraryref;'; put '%if &lib ne 0 %then %do;'; put 'where upcase(libraryref)="%upcase(&lib)";'; put '%end;'; put 'if "%mf_getplatform()"="SASMETA" then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sql;'; put 'create table libs1 as'; put 'select distinct libname'; put ',engine'; put ',path'; put ',level'; put ',sysname'; put ',sysvalue'; put 'from dictionary.libnames'; put 'order by libname, level,engine,path;'; put 'data libs2;'; put 'set libs1;'; put 'length tran $1024;'; put 'if missing(sysname) then sysname=''Missing'';'; put 'select(sysname);'; put 'when(''Access Permission'') tran=''Permissions'';'; put 'when(''Owner Name'') tran=''Owner'';'; put 'when(''Schema/Owner'') tran=''schema'';'; put 'otherwise tran=sysname;'; put 'end;'; put 'run;'; put 'proc transpose data=libs2 out=libs3;'; put 'by libname level engine path;'; put 'var sysvalue;'; put 'id tran;'; put 'run;'; put 'data libs4(rename=(libname=libref));'; put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; put 'if _n_=1 then call missing (of _all_);'; put 'set libs3;'; put 'by libname;'; put 'if engine=''V9'' then engine=''BASE'';'; put 'if first.libname then do;'; put 'retain paths perms owners schemas;'; put 'paths=''(''!!quote(trim(path));'; put 'perms=permissions;'; put 'owners=owner;'; put 'schemas=schema;'; put 'end;'; put 'else do;'; put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; put 'perms=trim(perms)!!'',''!!trim(permissions);'; put 'owners=trim(owners)!!'',''!!trim(owner);'; put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; put 'end;'; put 'if last.libname then do;'; put 'paths=trim(paths)!!'')'';'; put 'schemas=cats(schemas);'; put 'output;'; put 'end;'; put 'keep libname engine paths perms owners schemas;'; put 'run;'; put 'proc sql;'; put 'create table libs5 as'; put 'select a.libref'; put ',coalescec(b.engine,a.engine) as engine length=32'; put ',b.libraryname as libname'; put ',a.paths'; put ',a.perms'; put ',a.owners'; put ',a.schemas'; put ',b.libraryid as libid'; put 'from libs4 a'; put 'left join libs0 b'; put 'on upcase(a.libref)=upcase(b.libraryref)'; put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; put ',''MAPSGFK'');'; put '%bitemporal_dataloader(base_lib=&dc_libref'; put ',base_dsn=MPE_DATACATALOG_LIBS'; put ',append_dsn=libs5'; put ',PK=LIBREF'; put ',etlsource=&_program'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&dc_libref'; put ')'; put '%mend mpe_refreshlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file refreshlibs.sas'; put '@brief Refreshes the library data catalog'; put '@details'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li mpe_refreshlibs.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mpe_refreshlibs()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=registerkey; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##BITEMP_&base_dsn;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data bitemp5a_lkp (keep=&md5_col);'; put 'set bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[##BITEMP_&base_dsn];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Register a new licence key'; put '@details'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li bitemporal_dataloader.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '@test'; put 'echo ''{"keyupload":[{"activation_key":"slfdjasfda;dslf","licence_key":"asdfasdlfkajsfdas"}]}''>in.json'; put 'sasjs request admin/registerkey -d in.json'; put '**/'; put '%mpeinit()'; put '/* determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%global admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from groups where groupname="&mpeadmins";'; put '%mp_abort(iftrue= (&admin_check = 0)'; put ',mac=%str(&_program)'; put ',msg=%str(Only members of &mpeadmins may register a key)'; put ')'; put '%global licencekey activation_key;'; put 'data _null_;'; put 'set work.keyupload;'; put 'call symputx(''activation_key'',activation_key);'; put 'call symputx(''licencekey'',licence_key);'; put 'call symputx(''activlen'',length(activation_key));'; put 'call symputx(''liclen'',length(licence_key));'; put 'run;'; put '%mp_abort(iftrue= (&activlen< 10)'; put ',mac=%str(&_program)'; put ',msg=%str(Invalid activation_key)'; put ')'; put '%mp_abort(iftrue= (&liclen < 10)'; put ',mac=%str(&_program)'; put ',msg=%str(Invalid licencekey)'; put ')'; put 'data work.loadme;'; put 'if 0 then set &mpelib..mpe_config;'; put 'VAR_SCOPE=''DC'';'; put 'VAR_NAME=''DC_ACTIVATION_KEY'';'; put 'VAR_VALUE=symget(''activation_key'');'; put 'VAR_ACTIVE=1;'; put 'output;'; put 'VAR_NAME=''DC_LICENCE_KEY'';'; put 'VAR_VALUE=symget(''licencekey'');'; put 'VAR_ACTIVE=1;'; put 'output;'; put 'keep VAR_: ;'; put 'run;'; put '%bitemporal_dataloader('; put 'tech_from=tx_from'; put ',tech_to = tx_to'; put ',base_lib=&mpelib'; put ',base_dsn=mpe_config'; put ',append_lib=WORK'; put ',append_dsn=loadme'; put ',PK= VAR_SCOPE VAR_NAME'; put ',ETLSOURCE=%str(&_program STP)'; put ',LOADTYPE=TXTEMPORAL'; put ',dclib=&mpelib'; put ')'; put 'data work.return;'; put 'msg=''SUCCESS'';'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,return)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/approvers; %let service=getapprovals; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getapprovals.sas'; put '@brief Returns a list of staged data items that need to be approved'; put '@details'; put '

SAS Macros

'; put '@li mpe_getgroups.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* determine users group membership */'; put '%let user=%mf_getuser();'; put '%mpe_getgroups(user=&user,outds=work.groups)'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put 'proc sql noprint;'; put 'create table out1 (rename=(SUBMITTED_ON_DTTM1=SUBMITTED_ON_DTTM)) as'; put 'select table_id'; put ',submit_status_cd as REVIEW_STATUS_ID'; put ',SUBMITTED_BY_NM'; put ',cats(base_lib,''.'',base_ds) as base_table'; put ',put(submitted_on_dttm,yymmddhhmmss.) as SUBMITTED_ON_DTTM1'; put ',submitted_on_dttm as SUBMITTED_ON_DTTM2'; put ',submitted_reason_txt'; put ',num_of_approvals_required'; put ',num_of_approvals_remaining'; put ',base_lib as libref'; put ',base_ds as dsn'; put 'from &mpelib..mpe_submit (where=(submit_status_cd=''SUBMITTED''))'; put '/* filter out any submits for which approval is already made */'; put 'where table_id not in ('; put 'select table_id from &mpelib..mpe_review where submitted_by_nm="&user"'; put ');'; put '%macro getapprovals();'; put '%local admin_check;'; put 'select count(*) into: admin_check'; put 'from groups'; put 'where groupname="&mpeadmins"'; put 'or groupname in ('; put 'select sas_group from &mpelib..mpe_security'; put 'where libref=''*ALL*'''; put 'and &dc_dttmtfmt. lt tx_to'; put 'and access_level in (''APPROVE'')'; put ');'; put '%if &admin_check >0 %then %do;'; put 'create table fromSAS as'; put 'select distinct * from out1'; put 'order by SUBMITTED_ON_DTTM2 desc;'; put '%end;'; put '%else %do;'; put 'create table fromSAS as'; put 'select distinct a.*'; put 'from out1 a'; put 'inner join &mpelib..mpe_security b'; put 'on a.libref=b.libref'; put 'and (a.dsn=b.dsn or b.dsn=''*ALL*'')'; put 'and &dc_dttmtfmt. lt b.tx_to'; put 'and b.ACCESS_LEVEL =''APPROVE'''; put 'and b.SAS_GROUP in (select groupname from work.groups)'; put 'order by SUBMITTED_ON_DTTM2 desc;'; put '%end;'; put '%mend getapprovals;'; put '%getapprovals()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=gethistory; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Returns the list of previously approved / rejected items.'; put '@details History is taken from MPE_SUBMIT (where status_cd ne ''SUBMITTED'') and'; put 'filtered according to the groups in MPE_SECURITY (unless the user is in the'; put 'DC admin group).'; put '

SAS Macros

'; put '@li mpe_getvars.sas'; put '@li mpe_getgroups.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '

Service Inputs

'; put '
BROWSERPARAMS
'; put 'The following variables MAY be provided from frontend (HIST can also be set'; put 'in MPE_CONFIG):'; put '@li HIST - number of records to return'; put '@li STARTROW - the starting row (default is 1)'; put '

Service Outputs

'; put '
FROMSAS
'; put 'This table is returned, starting from &STARTROW for &HIST rows (ordered'; put 'descending on SUBMITTED datetime)'; put '@li TABLE_ID'; put '@li BASE_TABLE'; put '@li SUBMITTED'; put '@li SUBMITTED_REASON_TXT'; put '@li SUBMITTER'; put '@li REVIEWED'; put '@li STATUS'; put '@li REVIEWED_ON_DTTM'; put '@li APPROVER'; put '
HISTPARAMS
'; put '@li HIST - rows returned'; put '@li STARTROW - starting row used'; put '@li NOBS - Number of observations (rows) available'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* hard coded HIST value */'; put '%let hist=40;'; put '%let startrow=1;'; put '/* load parameters from frontend (HIST and STARTROW) */'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC_REVIEW"'; put 'and var_name=''HISTORY_ROWS'''; put 'and &dc_dttmtfmt. lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(''hist'',var_value,''G'');'; put 'putlog ''mpe_config: '' var_name "=" var_value;'; put 'run;'; put '/* load parameters (override HIST again if provided) */'; put '%mpe_getvars(BrowserParams, BrowserParams)'; put '/* determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '/* check to see if the user is an admin, or has *ALL* access rights */'; put '%let authcheck=0;'; put 'proc sql noprint;'; put 'create table work.authcheck'; put 'as select *'; put 'from usergroups'; put 'where upcase(groupname)="%upcase(&mpeadmins)"'; put 'or upcase(groupname) in ('; put 'select upcase(sas_group) from &mpelib..mpe_security'; put 'where libref=''*ALL*'' and &dc_dttmtfmt. lt tx_to'; put ');'; put 'select count(*) into: authcheck from &syslast;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after auth check)'; put ')'; put '/* now get the previous &hist records from mpe_submit */'; put 'proc sql;'; put 'create view work.submits as'; put 'select distinct a.TABLE_ID'; put ',cats(a.base_lib,''.'',a.base_ds) as base_table'; put ',put(a.SUBMITTED_ON_DTTM,yymmddhhmmss.) as submitted'; put ',a.submitted_reason_txt'; put ',a.submitted_by_nm as submitter'; put ',put(a.REVIEWED_ON_DTTM,yymmddhhmmss.) as REVIEWED'; put ',a.submit_status_cd as status'; put ',a.reviewed_on_dttm'; put ',a.reviewed_by_nm as approver'; put 'from &mpelib..mpe_submit(where=(submit_status_cd ne ''SUBMITTED'')) a'; put '%macro gethistory();'; put '%if &authcheck=0 %then %do;'; put '/* filter for allowed items */'; put 'left join &mpelib..mpe_security(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.base_lib=b.libref'; put 'and (a.base_ds=b.dsn or b.dsn=''*ALL*'')'; put 'where upcase(b.SAS_GROUP) in (select upcase(groupname) from work.usergroups)'; put 'and b.access_level in (''VIEW'',''AUDIT'',''EDIT'',''APPROVE'')'; put '%end;'; put '%mend gethistory;'; put '%gethistory()'; put 'order by a.submitted_on_dttm desc;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after fetching submits)'; put ')'; put 'data work.fromsas;'; put 'set work.submits;'; put 'if _n_ ge &startrow;'; put 'n+1;'; put 'if n>&hist then stop;'; put 'drop n;'; put 'run;'; put 'proc sql noprint;'; put 'select count(*) into: nobs from work.submits;'; put 'data work.histparams;'; put 'hist=&hist;'; put 'startrow=&startrow;'; put 'nobs=&nobs;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(OBJ,histparams)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=rejection; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Removes a staged data package from approval screen'; put '@details'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_getvarlist.sas'; put '@li mf_verifymacvars.sas'; put '@li mp_abort.sas'; put '@li mp_lockanytable.sas'; put '@li mpe_accesscheck.sas'; put '@li mpe_alerts.sas'; put '@li mpe_getvars.sas'; put '@li removecolsfromwork.sas'; put '

Service Outputs

'; put '
fromsas
'; put '@li TABLE_ID'; put '@li SUBMITTED_REASON_TXT'; put '@li RESPONSE'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global STP_ACTION TABLE STP_REASON;'; put '%mpeinit()'; put '%mpe_getvars(BrowserParams, BrowserParams)'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '/* get current status and base table */'; put 'data _null_;'; put 'set &mpelib..mpe_submit(where=(TABLE_ID="&TABLE"));'; put 'call symputx(''BASE_TABLE'',cats(base_lib,''.'',base_ds));'; put 'call symputx(''submit_status_cd'',submit_status_cd);'; put 'run;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: base_table)'; put ')'; put '%mp_abort('; put 'iftrue=(%quote(&submit_status_cd)=%quote(REJECTED))'; put ',mac=&_program'; put ',msg=%str(&table is already rejected!)'; put ')'; put '%mp_abort(iftrue= (&syscc ge 4)'; put ',mac=&_program'; put ',msg=%str(Issue on setup)'; put ')'; put '/**'; put '* determine if user is authorised to reject table'; put '*/'; put '%let user=%mf_getuser();'; put '%global authcheck; %let authcheck=0;'; put '%mpe_accesscheck(&base_table,outds=authAPP,user=&user,access_level=APPROVE)'; put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; put '%mp_abort(iftrue= (&authcheck=0)'; put ',mac=&_program..sas'; put ',msg=%str(User &user does not have APPROVE rights on &base_table and is not'; put 'in the &mpeadmins group)'; put ')'; put '/* update the control table to show table as rejected (and why) */'; put '%let now=%sysfunc(datetime());'; put 'data work.reject;'; put 'if 0 then set &mpelib..mpe_review;'; put 'TABLE_ID="&table";'; put 'BASE_TABLE="&base_table";'; put 'REVIEW_STATUS_ID="REJECTED";'; put 'REVIEWED_BY_NM="&user";'; put 'REVIEWED_ON_DTTM=&now;'; put 'REVIEW_REASON_TXT=symget(''STP_REASON'');'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_review,ref=%str(&table rejection),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base=&mpelib..mpe_review data=work.reject;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_review,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table rejection),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc sql;'; put 'update &mpelib..mpe_submit'; put 'set submit_status_cd=''REJECTED'','; put 'num_of_approvals_remaining=0,'; put 'reviewed_by_nm="&user",'; put 'reviewed_on_dttm=&now'; put 'where table_id="&table";'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc AFTER update...)'; put ')'; put '%mpe_alerts(alert_event=REJECTED'; put ', alert_lib=%scan(&BASE_TABLE,1,.)'; put ', alert_ds=%scan(&BASE_TABLE,2,.)'; put ', dsid=&TABLE'; put ')'; put 'data fromSAS;'; put 'RESPONSE=''SUCCESS!'';'; put 'set REJECT;'; put 'run;'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/auditors; %let service=getauditfile; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getauditfile.sas'; put '@brief Downloads a zip file containing audit info.'; put '@details The staging location from the &mpelocapprovals location'; put 'is zipped and returned as a file download. A user can only request the'; put 'audit pack if they have EDIT or APPROVE rights on the target table.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_verifymacvars.sas'; put '@li mpe_accesscheck.sas'; put '@li mp_abort.sas'; put '@li mp_dirlist.sas'; put '@li mp_binarycopy.sas'; put '@li mf_getattrn.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'options mprint;'; put '/* security checks */'; put '%let user=%mf_getuser();'; put 'proc sql noprint;'; put 'select cats(base_lib,''.'',base_ds) into: libds'; put 'from &mpelib..mpe_submit'; put 'where table_id="&table";'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(libds table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: libds table)'; put ')'; put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT);'; put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE);'; put '%mp_abort('; put 'iftrue=('; put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; put ')'; put ',mac=mpestp_audit'; put ',msg=%str(&user not authorised to download audit data for &table)'; put ')'; put 'ods package(ProdOutput) open nopf;'; put 'options notes source2 mprint;'; put '%let table=%unquote(&table);'; put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE);'; put 'data _null_;'; put 'set dirs;'; put 'retain str1'; put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; put 'call execute(cats(str1,filename,str2));'; put 'run;'; put '%let archive_path=%sysfunc(pathname(work));'; put 'ods package(ProdOutput) publish archive properties'; put '(archive_name= "&table..zip" archive_path="&archive_path");'; put 'ods package(ProdOutput) close;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%nrstr(syscc=&syscc)'; put ')'; put '/* now serve zip file to client */'; put '%mp_streamfile(contenttype=ZIP'; put ',inloc=%str(&archive_path/&table..zip)'; put ',outname=&table..zip'; put ')'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getdiffs; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getdiffs.sas'; put '@brief Retrieves the diff file for viewing'; put '@details'; put '

SAS Macros

'; put '@li mpe_getvars.sas'; put '@li mpe_accesscheck.sas'; put '@li mf_getattrn.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mpe_getvars(BrowserParams, BrowserParams);'; put '/* security checks */'; put '%let user=%mf_getuser();'; put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT)'; put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE)'; put '%macro mpestp_diffs();'; put '%if %mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; put '%then %do;'; put '%mp_abort(msg=%str('; put '&user not authorised to download diffs data for &stp_table)'; put ',mac=mpestp_diffs.sas);'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '/* stream diffs csv to client */'; put '%mp_streamfile(contenttype=EXCEL'; put ',inloc=%str(&mpelocapprovals/&TABLE/&STP_DIFFS_CSV)'; put ',outname=&STP_DIFFS_CSV'; put ')'; put '%mend mpestp_diffs;'; put '%mpestp_diffs()'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getstagetable; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getstagetable.sas'; put '@brief Retrieves the actual table that is being sent for update'; put '@details'; put '

SAS Macros

'; put '@li mf_getvalue.sas'; put '@li mp_abort.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let table_id=%mf_getvalue(work.iwant,table_id);'; put 'libname loc "&mpelocapprovals/&table_id";'; put 'data stagetable;'; put 'set loc.&table_id;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,stagetable,missing=STRING)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=postdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##BITEMP_&base_dsn;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data bitemp5a_lkp (keep=&md5_col);'; put 'set bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[##BITEMP_&base_dsn];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mp_md5(cvars=,nvars=);'; put '%local i var sep;'; put 'put(md5('; put '%do i=1 %to %sysfunc(countw(&cvars));'; put '%let var=%scan(&cvars,&i,%str( ));'; put '&sep put(md5(trim(&var)),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '%do i=1 %to %sysfunc(countw(&nvars));'; put '%let var=%scan(&nvars,&i,%str( ));'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put '&sep put(md5(trim(put(ifn(missing(&var),&var,&var*1),binary64.))),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '),$hex32.)'; put '%mend mp_md5;'; put '%macro mp_loadformat(libcat,libds'; put ',loadtarget=NO'; put ',auditlibds=0'; put ',locklibds=0'; put ',delete_col=_____DELETE__THIS__RECORD_____'; put ',outds_add=0'; put ',outds_del=0'; put ',outds_mod=0'; put ',mdebug=0'; put ');'; put '/* set up local macro variables and temporary tables (with a prefix) */'; put '%local err msg prefix dslist i var fmtlist ibufsize;'; put '%let dslist=base_fmts template inlibds ds1 stagedata storediffs del1 del2;'; put '%if &outds_add=0 %then %let dslist=&dslist outds_add;'; put '%if &outds_del=0 %then %let dslist=&dslist outds_del;'; put '%if &outds_mod=0 %then %let dslist=&dslist outds_mod;'; put '%let prefix=%substr(%mf_getuniquename(),1,21);'; put '%do i=1 %to %sysfunc(countw(&dslist));'; put '%let var=%scan(&dslist,&i);'; put '%local &var;'; put '%let &var=%upcase(&prefix._&var);'; put '%end;'; put '/* in DC, format catalogs maybe specified in the libds with a -FC extension */'; put '%let libcat=%scan(&libcat,1,-);'; put '/* perform input validations */'; put '%mp_abort('; put 'iftrue=(%mf_existds(&libds)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(&libds could not be found)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_existvar(&libds,FMTROW)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(FMTROW not found in &libds)'; put ')'; put '%let err=0;'; put '%let msg=0;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'value=upcase(value);'; put 'if &mdebug=0 then put name ''='' value;'; put 'if name=:''LOAD'' and value not in (''YES'',''NO'') then do;'; put 'call symputx(''msg'',"invalid value for "!!name!!":"!!value);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'else if name=''LIBCAT'' then do;'; put 'if exist(value,''CATALOG'') le 0 then do;'; put 'call symputx(''msg'',"Unable to open catalog: "!!value);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if (name=:''OUTDS'' or name in (''DELETE_COL'',''LOCKLIBDS'',''AUDITLIBDS''))'; put 'and missing(value) then do;'; put 'call symputx(''msg'',"missing value in var: "!!name);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'set &libds;'; put 'if missing(fmtrow) then do;'; put 'call symputx(''msg'',"missing fmtrow in format: "!!FMTNAME);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'run;'; put '%mp_abort('; put 'iftrue=(&err ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(&msg)'; put ')'; put '%local cnt;'; put 'proc sql noprint;'; put 'select count(distinct catx(''|'',type,fmtname,fmtrow)) into: cnt from &libds;'; put '%mp_abort('; put 'iftrue=(&cnt ne %mf_nobs(&libds))'; put ',mac=&sysmacroname'; put ',msg=%str(Non-unique primary key on &libds)'; put ')'; put '/**'; put '* First, extract only relevant formats from the catalog'; put '*/'; put 'proc sql noprint;'; put 'select distinct'; put 'case'; put 'when type=''N'' then upcase(fmtname)'; put 'when type=''C'' then cats(''$'',upcase(fmtname))'; put 'when type=''I'' then cats(''@'',upcase(fmtname))'; put 'when type=''J'' then cats(''@$'',upcase(fmtname))'; put 'else "&sysmacroname:UNHANDLED"'; put 'end'; put 'into: fmtlist separated by '' '''; put 'from &libds;'; put '%mp_cntlout(libcat=&libcat,fmtlist=&fmtlist,cntlout=&base_fmts)'; put '/* get a hash of the row */'; put '%local cvars nvars;'; put '%let cvars=TYPE FMTNAME START END LABEL PREFIX FILL SEXCL EEXCL HLO DECSEP'; put 'DIG3SEP DATATYPE LANGUAGE;'; put '%let nvars=FMTROW MIN MAX DEFAULT LENGTH FUZZ MULT NOEDIT;'; put 'data &base_fmts/note2err;'; put 'set &base_fmts;'; put 'fmthash=%mp_md5(cvars=&cvars, nvars=&nvars);'; put 'run;'; put '/**'; put '* Ensure input table and base_formats have consistent lengths and types'; put '*/'; put 'data &inlibds/nonote2err;'; put 'length &delete_col $3 FMTROW 8 start end label $32767;'; put 'if 0 then set &base_fmts;'; put 'set &libds;'; put 'by type fmtname notsorted;'; put 'if &delete_col='''' then &delete_col=''No'';'; put 'fmtname=upcase(fmtname);'; put 'type=upcase(type);'; put 'if missing(type) then do;'; put 'if substr(fmtname,1,1)=''@'' then do;'; put 'if substr(fmtname,2,1)=''$'' then type=''J'';'; put 'else type=''I'';'; put 'end;'; put 'else do;'; put 'if substr(fmtname,1,1)=''$'' then type=''C'';'; put 'else type=''N'';'; put 'end;'; put 'end;'; put 'if type in (''N'',''I'') then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put 'fmthash=%mp_md5(cvars=&cvars, nvars=&nvars);'; put 'run;'; put '/**'; put '* Identify new records'; put '*/'; put 'proc sql;'; put 'create table &outds_add(drop=&delete_col) as'; put 'select a.*'; put 'from &inlibds a'; put 'left join &base_fmts b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where b.fmtname is null'; put 'and upcase(a.&delete_col) ne "YES"'; put 'order by type, fmtname, fmtrow;'; put '/**'; put '* Identify modified records'; put '*/'; put 'create table &outds_mod (drop=&delete_col) as'; put 'select a.*'; put 'from &inlibds a'; put 'inner join &base_fmts b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where upcase(a.&delete_col) ne "YES"'; put 'and a.fmthash ne b.fmthash'; put 'order by type, fmtname, fmtrow;'; put '/**'; put '* Identify deleted records'; put '*/'; put 'create table &outds_del(drop=&delete_col) as'; put 'select a.*'; put 'from &inlibds a'; put 'inner join &base_fmts b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where upcase(a.&delete_col)="YES"'; put 'order by type, fmtname, fmtrow;'; put '/**'; put '* Identify fully deleted formats (where every record is removed)'; put '* These require to be explicitly deleted in proc format'; put '* del1 - identify _partial_ deletes'; put '* del2 - exclude these, and also formats that come with _additions_'; put '*/'; put 'create table &del1 as'; put 'select a.*'; put 'from &base_fmts a'; put 'left join &outds_del b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where b.fmtrow is null;'; put 'create table &del2 as'; put 'select * from &outds_del'; put 'where cats(type,fmtname) not in (select cats(type,fmtname) from &outds_add)'; put 'and cats(type,fmtname) not in (select cats(type,fmtname) from &del1);'; put '%mp_abort('; put 'iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(SYSCC=&syscc prior to load prep)'; put ')'; put '%if &loadtarget=YES %then %do;'; put '/* new records plus base records that are not deleted or modified */'; put 'data &ds1;'; put 'merge &base_fmts(in=base)'; put '&outds_mod(in=mod)'; put '&outds_add(in=add)'; put '&outds_del(in=del);'; put 'if not del and not mod;'; put 'by type fmtname fmtrow;'; put 'run;'; put '/* add back the modified records */'; put 'data &stagedata;'; put 'set &ds1 &outds_mod;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put '%end;'; put '/* mp abort needs to run outside of conditional blocks */'; put '%mp_abort('; put 'iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(SYSCC=&syscc prior to actual load)'; put ')'; put '%if &loadtarget=YES %then %do;'; put '%if %mf_nobs(&stagedata)=0 and %mf_nobs(&del2)=0 %then %do;'; put '%put There are no changes to load in &libcat!;'; put '%return;'; put '%end;'; put '%if &locklibds ne 0 %then %do;'; put '/* prevent parallel updates */'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&libcat,1,.)'; put ',ds=%scan(&libcat,2,.)-FC'; put ',ref=MP_LOADFORMAT commencing format load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '/* do the actual load */'; put 'proc format lib=&libcat cntlin=&stagedata;'; put 'run;'; put '/* apply any full deletes */'; put '%if %mf_nobs(&del2)>0 %then %do;'; put '%local delfmtlist;'; put 'proc sql noprint;'; put 'select distinct case when type=''N'' then cats(fmtname,''.FORMAT'')'; put 'when type=''C'' then cats(fmtname,''.FORMATC'')'; put 'when type=''J'' then cats(fmtname,''.INFMTC'')'; put 'when type=''I'' then cats(fmtname,''.INFMT'')'; put 'else cats(fmtname,''.BADENTRY!!!'') end'; put 'into: delfmtlist'; put 'separated by '' '''; put 'from &del2;'; put 'proc catalog catalog=&libcat;'; put 'delete &delfmtlist;'; put 'quit;'; put '%end;'; put '%if &locklibds ne 0 %then %do;'; put '/* unlock the table */'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&libcat,1,.)'; put ',ds=%scan(&libcat,2,.)-FC'; put ',ref=MP_LOADFORMAT completed format load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '/* track the changes */'; put '%if &auditlibds ne 0 %then %do;'; put '%if &locklibds ne 0 %then %do;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&auditlibds,1,.)'; put ',ds=%scan(&auditlibds,2,.)'; put ',ref=MP_LOADFORMAT commencing audit table load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '%mp_storediffs(&libcat-FC'; put ',&base_fmts'; put ',TYPE FMTNAME FMTROW'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=&storediffs'; put ',mdebug=&mdebug'; put ')'; put 'proc append base=&auditlibds data=&storediffs;'; put 'run;'; put '%if &locklibds ne 0 %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&auditlibds,1,.)'; put ',ds=%scan(&auditlibds,2,.)'; put ',ref=MP_LOADFORMAT commencing audit table load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '%end;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(SYSCC=&syscc after load)'; put ')'; put '%if &mdebug=0 %then %do;'; put 'proc datasets lib=work;'; put 'delete &prefix:;'; put 'run;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%mend mp_loadformat;'; put '%macro mpe_targetloader(libds= /* library.dataset to LOAD (target) */'; put ',now= %sysfunc(datetime()) /* static processed timestamp */'; put ',etlsource= /* process from whence the data came */'; put ',STAGING_DS= STAGING_DS /* name of staging (work) dataset which should'; put 'be appended into the target. */'; put ',LOADTARGET=NO /* set to yes to actually load the target */'; put ',CLOSE_VARS= /* provide close vars to override defaults */'; put ',dclib=NOTPROVIDED'; put ',mdebug=0'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '%local lib ds nobs;'; put '/**'; put '* if a format catalog (suffix "-FC") we assume the catalog has already been'; put '* created by the calling program with a libds of work.fmtextract'; put '*/'; put '%let orig_lib=%upcase(%scan(&libds,1,.));'; put '%let orig_ds=%upcase(%scan(&libds,2,.));'; put '%let orig_libds=&libds;'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%let lib=WORK;'; put '%let ds=FMTEXTRACT;'; put '%let libds=&lib..&ds;'; put '%end;'; put '%else %do;'; put '%let lib=&orig_lib;'; put '%let ds=&orig_ds;'; put '%end;'; put '%mp_abort(iftrue= (&dclib=NOTPROVIDED)'; put ',mac=&sysmacroname'; put ',msg=%str(dclib=NOTPROVIDED)'; put ')'; put '/* get table attributes */'; put '%let nobs=0;'; put 'data work.sumo_config;'; put 'set &mpelib..mpe_tables;'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="&orig_lib"'; put 'and dsn="&orig_ds";'; put 'call symputx(''LOADTYPE'',loadtype,''l'');'; put 'call symputx(''BUSKEY'',buskey,''l'');'; put 'call symputx(''VAR_TXFROM'',var_txfrom,''l'');'; put 'call symputx(''VAR_TXTO'',var_txto,''l'');'; put 'call symputx(''VAR_BUSFROM'',var_busfrom,''l'');'; put 'call symputx(''VAR_BUSTO'',var_busto,''l'');'; put 'call symputx(''VAR_PROCESSED'',VAR_PROCESSED,''l'');'; put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING,''l'');'; put '%if %length(&CLOSE_VARS)=0 %then %do;'; put 'call symputx(''CLOSE_VARS'',CLOSE_VARS,''l'');'; put '%end;'; put 'call symputx(''nobs'',_n_,''l'');'; put 'if missing(AUDIT_LIBDS) then AUDIT_LIBDS="&dclib..MPE_AUDIT";'; put 'call symputx(''AUDIT_LIBDS'',AUDIT_LIBDS,''l'');'; put 'put (_all_)(=);'; put 'run;'; put '/* check if table is actually configured to load */'; put '%if &nobs ne 1 %then %do;'; put 'proc sql;'; put 'insert into &mpelib..mpe_loads'; put 'set USER_NM="%mf_getuser()"'; put ',STATUS=''FAILED (BAD DS)'''; put ',CSV_DIR=symget(''ETLSOURCE'')'; put ',PROCESSED_DTTM=&now;'; put '%end;'; put '%mp_abort(iftrue= (&nobs=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Table not registered in &mpelib..mpe_tables)'; put ')'; put '%mp_abort(iftrue= (&nobs>1)'; put ',mac=&sysmacroname'; put ',msg=%str(Something is very wrong with the PK in &mpelib..mpe_tables)'; put ')'; put '%if &LOADTYPE=TXTEMPORAL %then %do;'; put '%bitemporal_dataloader(bus_from=,bus_to= /* explicitly empty*/'; put ',tech_from=&VAR_TXFROM'; put ',tech_to = &VAR_TXTO'; put ',base_lib=&lib'; put ',base_dsn=&ds'; put ',append_lib=WORK'; put ',append_dsn=&STAGING_DS'; put ',high_date=''31DEC9999:23:59:59''dt'; put ',PK= &buskey'; put ',ETLSOURCE=&ETLSOURCE'; put ',LOADTYPE=&loadtype'; put ',RK_UNDERLYING=&RK_UNDERLYING'; put ',LOADTARGET=&LOADTARGET'; put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; put ',CLOSE_VARS=&CLOSE_VARS'; put ',processed=&VAR_PROCESSED'; put ',dclib=&dclib'; put ',outds_audit=&AUDIT_LIBDS'; put ')'; put '%end;'; put '%else %if &loadtype=REPLACE %then %do;'; put '%if &LOADTARGET=YES %then %do;'; put '%mp_lockanytable(LOCK,lib=&lib,ds=&ds,ref=%str(&etlsource),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put 'data WORK.&STAGING_DS;'; put 'set WORK.&STAGING_DS;'; put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; put '&VAR_PROCESSED = &now;'; put '%end;'; put 'drop _____DELETE__THIS__RECORD_____;'; put 'run;'; put 'proc sql; delete * from &libds;'; put 'proc append base=&libds data=WORK.&STAGING_DS force nowarn;run;'; put '%mp_lockanytable(UNLOCK,lib=&lib,ds=&ds,ctl_ds=&dclib..mpe_lockanytable)'; put '%end;'; put '%else %do;'; put '/* is full replace so treat all staged records as new in diff screen */'; put 'data work.outds_mod work.outds_add ;'; put 'set work.&staging_ds;'; put 'output work.outds_add;'; put 'run;'; put '/* previous table will be considered fully deleted */'; put 'data work.outds_del;'; put 'set &lib..&ds;'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '%bitemporal_dataloader(bus_from=,bus_to='; put ',tech_from= ,tech_to = /* explicitly empty*/'; put ',base_lib=&lib'; put ',base_dsn=&ds'; put ',append_lib=WORK'; put ',append_dsn=&STAGING_DS'; put ',high_date=''31DEC9999:23:59:59''dt'; put ',PK= &buskey'; put ',ETLSOURCE=%superq(etlsource)'; put ',LOADTYPE=UPDATE'; put ',RK_UNDERLYING=&RK_UNDERLYING'; put ',LOADTARGET=&LOADTARGET'; put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; put ',processed=&VAR_PROCESSED'; put ',dclib=&dclib'; put ',outds_audit=&AUDIT_LIBDS'; put ')'; put '%end;'; put '%else %if &loadtype=FORMAT_CAT %then %do;'; put '/**'; put '* run mp_formatload'; put '* inputs:'; put '* - LOADTARGET'; put '* - CATALOG'; put '* - STAGEDATA'; put '* - LOADAUDIT'; put '* outputs:'; put '* work.outds_add'; put '* work.outds_del'; put '* work.outds_mod'; put '*/'; put '%mp_loadformat(&orig_libds'; put ',&staging_ds'; put ',loadtarget=&LOADTARGET'; put ',auditlibds=&AUDIT_LIBDS'; put ',locklibds=&dclib..mpe_lockanytable'; put ',delete_col=_____DELETE__THIS__RECORD_____'; put ',outds_add=outds_add'; put ',outds_del=outds_del'; put ',outds_mod=outds_mod'; put ',mdebug=&mdebug'; put ')'; put '%end;'; put '%else %if &loadtype=BITEMPORAL %then %do;'; put '%bitemporal_dataloader(bus_from=&VAR_BUSFROM,bus_to=&VAR_BUSTO'; put ',tech_from=&VAR_TXFROM'; put ',tech_to = &VAR_TXTO'; put ',base_lib=&lib'; put ',base_dsn=&ds'; put ',append_lib=WORK'; put ',append_dsn=&STAGING_DS'; put ',high_date=''31DEC9999:23:59:59''dt'; put ',PK= &buskey'; put ',ETLSOURCE=%superq(etlsource)'; put ',LOADTYPE=BITEMPORAL'; put ',RK_UNDERLYING=&RK_UNDERLYING'; put ',LOADTARGET=&LOADTARGET'; put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; put ',CLOSE_VARS=&CLOSE_VARS'; put ',processed=&VAR_PROCESSED'; put ',dclib=&dclib'; put ',outds_audit=&AUDIT_LIBDS'; put ')'; put '%end;'; put '%else %do;'; put '%put WARNING: LOADTYPE &LOADTYPE not supported;'; put '%let syscc=4;'; put '%mp_abort(msg=LOADTYPE &LOADTYPE not supported,mac=mpe_targetloader.sas)'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc exiting MPE_TARGETLOADER macro)'; put ')'; put '%mend mpe_targetloader;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file postdata.sas'; put '@brief Either returns the file diffs or actually loads the data to target'; put '@details Before loading the target, a check is made against the time the'; put 'target was last updated (backend) and the time the DIFF was generated'; put '(frontend). If the target was updated whilst the DIFF was on the screen,'; put 'then the provided diff may have been incorrect and so a new DIFF should be'; put 'generated and approved before load.'; put 'Only 100 rows (of each DIFF type) are displayed on the DIFF screen.'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|ACTION:$char10.|TABLE:$char32.|DIFFTIME:$char29.|'; put '|---|---|---|'; put '|SHOW_DIFFS|DC20220208T142124517_124703_1184|"Tue, 08 Feb 2022 14:23:05 GMT"|'; put '

SAS Macros

'; put '@li bitemporal_dataloader.sas'; put '@li dc_assignlib.sas'; put '@li mf_existds.sas'; put '@li mf_existvar.sas'; put '@li mf_getattrn.sas'; put '@li mf_getengine.sas'; put '@li mf_getquotedstr.sas'; put '@li mf_getuniquelibref.sas'; put '@li mf_getuser.sas'; put '@li mf_getvarlist.sas'; put '@li mf_nobs.sas'; put '@li mf_verifymacvars.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_lockanytable.sas'; put '@li mpe_accesscheck.sas'; put '@li mpe_alerts.sas'; put '@li mpe_runhook.sas'; put '@li mpe_targetloader.sas'; put '@li removecolsfromwork.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '/* this could be a config setting if required */'; put '%let maxdiff=100;'; put '%mpeinit()'; put '/* load parameters */'; put 'data _null_;'; put 'set work.sascontroltable;'; put 'call symputx(''ACTION'',ACTION);'; put 'call symputx(''LOAD_REF'',TABLE);'; put '/* DIFFTIME is when the DIFF was generated on the frontend */'; put 'call symputx(''DIFFTIME'',DIFFTIME);'; put 'run;'; put '%global action is_err err_msg msg;'; put '%let is_err=0;'; put '%let user=%mf_getuser();'; put '%let sastime=%sysfunc(datetime());'; put 'data sastime;'; put 'dt_sastime=&sastime;'; put 'run;'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'picture flatdate other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; put 'RUN;'; put '/* SHOW_DIFFS works by getting the temp tables from the bitemporal loader */'; put '/* so we share much of the logic from the actual load process */'; put '%let isfmtcat=0;'; put 'data APPROVE1;'; put 'set &mpelib..mpe_submit;'; put 'where TABLE_ID="&LOAD_REF";'; put '/* fetch mpe_submit data */'; put 'libds=cats(base_lib,''.'',base_ds);'; put 'REVIEWED_ON=put(reviewed_on_dttm,datetime19.);'; put 'call symputx(''REVIEW_STATUS_ID'',submit_status_cd,''l'');'; put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED);'; put 'call symputx(''num_of_approvals_remaining'',num_of_approvals_remaining);'; put '/* other stuff that''s useful to do in data step */'; put 'call symputx(''orig_libds'',libds);'; put 'call symputx(''libds'',libds);'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'call symputx(''isfmtcat'',1);'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'putlog (_all_)(=);'; put '/* convert provided string DIFFTIME back to a numeric SAS datetime */'; put 'if "&action" ne "SHOW_DIFFS" then do;'; put 'call symputx(''DIFFTIME'',input(symget(''DIFFTIME''),anydtdtm18.));'; put 'end;'; put 'length difftime $32;'; put 'DIFFTIME=put(&sastime,datetime19.2);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&isfmtcat=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(difftime orig_libds libds load_ref)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: difftime orig_libds libds load_ref)'; put ')'; put '/* security checks */'; put '%mpe_accesscheck(&orig_libds,outds=authEDIT,user=&user,access_level=EDIT)'; put '%mpe_accesscheck(&orig_libds,outds=authAPP,user=&user,access_level=APPROVE)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc Before entering postdata macro)'; put ')'; put '%mp_abort('; put 'iftrue=('; put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; put ')'; put ',mac=&_program'; put ',msg=%str(&user not authorised to view approval screen for &orig_libds)'; put ')'; put '%macro quickmacro(inds,outds);'; put 'data &outds ;'; put '%if %length(&VAR_BUSFROM)>0 %then %do;'; put 'format &VAR_BUSFROM &VAR_BUSTO yymmddhhmmss.;'; put '%end;'; put 'if 0 then set &emptybasetable;'; put 'set &inds;'; put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; put 'drop &var_txfrom &var_txto;'; put '%end;'; put '%if %mf_existvar(&inds,_____DELETE__THIS__RECORD_____) %then %do;'; put 'drop _____DELETE__THIS__RECORD_____;'; put '%end;'; put '%if %mf_existvar(&inds,&VAR_PROCESSED) %then %do;'; put 'drop &VAR_PROCESSED;'; put '%end;'; put 'run;'; put '%mend quickmacro;'; put '%macro postdata();'; put '%if %quote(&REVIEW_STATUS_ID)=%quote(REJECTED)'; put 'or %quote(&REVIEW_STATUS_ID)=%quote(APPROVED) %then'; put '%do;'; put 'data params; set approve1; run;'; put '%webout(OPEN)'; put '%webout(OBJ,PARAMS)'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if &action=APPROVE_TABLE %then %do;'; put '/* check user is authorised to approve table */'; put '/* user could be an editor but not an approver */'; put '%mp_abort(iftrue= (%mf_getattrn(work.authAPP,NLOBS)=0)'; put ',mac=&_program'; put ',msg=%str(&user may not APPROVE changes)'; put ')'; put '/* see if this user has already submitted an approval */'; put '%let prev_upload_check=1;'; put 'proc sql;'; put 'select count(*) into: prev_upload_check from &mpelib..mpe_review'; put 'where TABLE_ID="&LOAD_REF" and REVIEWED_BY_NM="&user"'; put 'and REVIEW_STATUS_ID ne "SUBMITTED";'; put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; put '%if &authcheck=0 or &prev_upload_check=1 %then %do;'; put '%put WARNING: authcheck=&authcheck prev_upload_check=&prev_upload_check;'; put 'data apPARAMS;'; put 'AUTHORISED=&authcheck;'; put 'PREV_UPLOAD_CHECK=&prev_upload_check;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,apPARAMS);'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '/* now check if table has been updated since DIFF screen shown */'; put '%local fmt_tm usernm last_load etlsource;'; put '%let last_load=0;'; put 'proc sql noprint;'; put 'select max(processed_dttm) format=16.2 into: last_load'; put 'from &mpelib..mpe_dataloads'; put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)";'; put 'select processed_dttm format=datetime19., user_nm, etlsource'; put 'into: fmt_tm, :usernm, :etlsource'; put 'from &mpelib..mpe_dataloads'; put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)"'; put 'and processed_dttm=&last_load;'; put '%put TIMECHECK: &last_load>&difftime;'; put '%if %sysevalf(&last_load>&difftime,boolean)=1 %then %do;'; put '%let is_err=1;'; put '%let err_msg=&orig_libds was updated in batch %trim(&etlsource'; put ') by %trim(&usernm) on &fmt_tm - please refresh the page!!;'; put '%return;'; put '%end;'; put '%if &syscc ne 0 %then %do;'; put '%let is_err=1;'; put '%let err_msg=syscc=&syscc before logchange;'; put '%return;'; put '%end;'; put '/* upload about to commence so ensure logs */'; put 'options notes mprint source2;'; put '%local oldloc;'; put '%if %symexist(SYSPRINTTOLOG) %then %let oldloc=&SYSPRINTTOLOG;'; put '%else %let oldloc=%qsysfunc(getoption(LOG));'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto'; put 'log="&mpelocapprovals/&LOAD_REF/approval.log";'; put 'run;'; put 'data _null_;'; put 'if _n_=1 then do;'; put 'length oldloc $1000;'; put 'oldloc=symget(''oldloc'');'; put 'putlog "****** redirected:" oldloc " *****";'; put 'end;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc printto'; put 'log="&mpelocapprovals/&LOAD_REF/approval.log";'; put 'run;'; put '%end;'; put '%if &syscc ne 0 %then %do;'; put '%let is_err=1;'; put '%let err_msg=syscc=&syscc after logchange;'; put '%return;'; put '%end;'; put '%end;'; put '/**'; put '* upload the actual table'; put '*/'; put '%local libref ds;'; put '%let libref=%scan(&orig_libds,1,.);'; put '%let ds=%scan(&orig_libds,2,.);'; put 'proc sql noprint;'; put 'select PRE_APPROVE_HOOK, POST_APPROVE_HOOK, LOADTYPE, var_txfrom, var_txto'; put ',BUSKEY, VAR_BUSFROM, VAR_BUSTO'; put ',AUDIT_LIBDS, NOTES, coalesce(NUM_OF_APPROVALS_REQUIRED,1)'; put ',VAR_PROCESSED'; put 'into: PRE_APPROVE_HOOK, :POST_APPROVE_HOOK, :LOADTYPE,:var_txfrom,:var_txto'; put ',:BUSKEY,:VAR_BUSFROM,:VAR_BUSTO'; put ',:AUDIT_LIBDS, :TABLE_DESC, :NUM_OF_APPROVALS_REQUIRED_TOT'; put ',:VAR_PROCESSED'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="&libref"'; put 'and dsn="&ds";'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mpelocapprovals orig_libds)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: mpelocapprovals orig_libds)'; put ')'; put '/* get dataset from approvals location (has same name as load_ref) */'; put '%let tmplib=%mf_getuniquelibref();'; put 'libname &tmplib "&mpelocapprovals/&LOAD_REF";'; put 'data STAGING_DS;'; put 'set &tmplib..&LOAD_REF;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc before preapprove)'; put ')'; put '%dc_assignlib(WRITE,&libref)'; put '/* run pre-approve hook - occurs both BEFORE _and_ AFTER the diff */'; put '%mpe_runhook(PRE_APPROVE_HOOK)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc after preapprove)'; put ')'; put '%if &num_of_approvals_remaining>1 and &action=APPROVE_TABLE %then %do;'; put '/* append to mpe_review table */'; put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; put 'data work.append_review;'; put 'if 0 then set &mpelib..mpe_review;'; put 'TABLE_ID="&LOAD_REF";'; put 'BASE_TABLE="&orig_libds";'; put 'REVIEW_STATUS_ID="APPROVED";'; put 'REVIEWED_BY_NM="&user";'; put 'REVIEWED_ON_DTTM=&sastime;'; put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_review,ref=%str(&LOAD_REF Approval),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base=&mpelib..mpe_review data=work.append_review;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_review,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* update mpe_submit table */'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_submit,ref=%str(&LOAD_REF Approval),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc sql;'; put 'update &mpelib..mpe_submit'; put 'set num_of_approvals_remaining=&num_of_approvals_remaining-1,'; put 'reviewed_by_nm="&user",'; put 'reviewed_on_dttm=&sastime'; put 'where table_id="&LOAD_REF";'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'data apReqd;'; put 'AUTHORISED=1;'; put 'ALREADY_UPDATED=0;'; put 'ALREADY_UPDATED_DTTM=.;'; put 'set approve1; /* js will test for NUM_OF_APPROVALS_REQUIRED */'; put 'run;'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,apReqd);'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc entering TARGETLOADER)'; put ')'; put '%mpe_targetloader(libds=&orig_libds'; put ',now= &sastime'; put ',etlsource=&LOAD_REF'; put ',STAGING_DS=STAGING_DS'; put ',dclib=&mpelib'; put '%if &action=APPROVE_TABLE %then %do;'; put ',LOADTARGET=YES'; put '%end;'; put '%else %do;'; put ',LOADTARGET=NO'; put '%end;'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%if %mf_getattrn(STAGING_DS,NLOBS)=0 %then %do;'; put '/* empty dataset! */'; put 'data out;'; put 'set STAGING_DS;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc entering SHOWDIFFS)'; put ')'; put '%if &action=SHOW_DIFFS %then %do;'; put '/**'; put '* Now prepare the SHOW DIFFS (approve) screen'; put '*/'; put '/*To create the CURRENT diffs, we compare with the ACTUAL data. But first'; put 'need to find out what version TIME to query it for.. */'; put 'proc sql noprint;'; put 'select max(processed_dttm)-1 format=datetime19. into: tstamp'; put 'from &mpelib..mpe_dataloads'; put 'where libref="&libref" and dsn="&ds" and ETLSOURCE="&LOAD_REF";'; put 'quit;'; put '%if &tstamp=. %then %let tstamp=%sysfunc(datetime(),datetime19.);'; put '/**'; put '* now create the DIFFS dataset'; put '* If using a database, then utilise pass through!'; put '* Create a temporary table inside the database for joins..'; put '*/'; put 'options mprint;'; put '%let engine_type=%mf_getEngine(%scan(&libds,1,.));'; put '%put &libds engine type = &engine_type;'; put '%local inner_table ;'; put '%if &engine_type=OLEDB %then %do;'; put '/* generate a unique ID for the temporary table */'; put 'data _null_;'; put 'call symputx(''UNIQUE_REF'''; put ',cats(round(datetime(),1)'; put ',''_'''; put ',round(ranuni(0)*100000,1)'; put ')'; put ',''l'''; put ');'; put 'run;'; put '%let inner_table=&libref.."##DIFF_&UNIQUE_REF"n;'; put 'proc sql;'; put 'create table &inner_table as'; put 'select * from work.outds_mod;'; put '%end;'; put '%else %let inner_table=work.outds_mod;'; put 'proc sql;'; put 'create view work.originals2 as'; put 'select b.*'; put 'from &inner_table a'; put 'inner join &libds'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '(where=("&tstamp"dt < &VAR_TXTO))'; put '%end;'; put 'b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&buskey));'; put '%let idx_val=%scan(&buskey,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; put ';'; put 'create view bitemp5c_updates2 as'; put 'select * from work.outds_mod'; put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; put ';'; put 'data; set &libds;stop;run;'; put '%let emptybasetable=&syslast;'; put 'options varlenchk=nowarn; /* for small numerics (<8) */'; put '%quickmacro(work.outds_del,deleted)'; put '%quickmacro(work.outds_add,new)'; put '%quickmacro(bitemp5c_updates2,updates)'; put '%quickmacro(originals2,originals)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc in quickmacro)'; put ')'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=work.updates'; put 'out=cols (keep=name type length varnum format);'; put 'run;'; put 'proc sort data=cols out=cols(drop=varnum); by varnum;run;'; put 'data cols; set cols; name=upcase(name);run;'; put '%let tempDIFFS_CSV=tempDiffs_%trim('; put '%sysfunc(datetime(),flatdate.)).csv;'; put '/**'; put '* Store temp tables so we have a record of diffs'; put '* do not change this libname or table name as it is used in some'; put '* post approve hooks'; put '*/'; put 'data TEMPDIFFS (compress=no) /* for realistic file size */;'; put 'length _____status $10;'; put 'set work.deleted (in=_____del)'; put 'work.new(in=_____new)'; put 'work.updates (in=_____upd)'; put 'work.originals2 (in=_____orig);'; put 'if _____del then _____status=''DELETED '';'; put 'else if _____new then _____status=''NEW'';'; put 'else if _____upd then _____status=''UPDATED'';'; put 'else if _____orig then _____status=''ORIGINAL'';'; put 'run;'; put 'proc export data=TEMPDIFFS dbms=csv replace'; put 'outfile="&mpelocapprovals/&LOAD_REF/&tempDIFFS_CSV" ;'; put 'run;'; put 'proc sql noprint;'; put 'select filesize format=sizekmg10.1, filesize as filesize_raw'; put 'into: filesize,:filesize_raw'; put 'from dictionary.tables'; put 'where libname=''WORK'' and memtype=''DATA'' and memname=''TEMPDIFFS'';'; put 'data params;'; put 'set approve1;'; put 'DIFFS_CSV="&tempDIFFS_CSV";'; put 'FILESIZE="&filesize";'; put 'FILESIZE_RAW=&filesize_raw;'; put 'if %mf_nobs(work.originals)>&maxdiff'; put 'or %mf_nobs(work.new)>&maxdiff'; put 'or %mf_nobs(work.deleted)>&maxdiff'; put 'or %mf_nobs(work.updates)>&maxdiff'; put 'then TRUNCATED="YES";'; put 'else TRUNCATED="NO";'; put 'NUM_ADDED=%mf_getattrn(work.new,NLOBS);'; put 'NUM_DELETED=%mf_getattrn(work.deleted,NLOBS);'; put 'NUM_UPDATED=%mf_getattrn(work.updates,NLOBS);'; put 'SUBMITTED_ON=put(submitted_on_dttm,datetime19.);'; put '%if %mf_getattrn(work.authAPP,NLOBS)>0 %then %do;'; put 'ISAPPROVER=''YES'';'; put '%end;'; put '%else %do;'; put 'ISAPPROVER=''NO'';'; put '%end;'; put 'run;'; put '/*'; put '* The PRE_APPROVE_HOOK may have applied custom formats to the staged table.'; put '* To ensure consistency in the DIFF screen, we should apply the same formats'; put '* to the base table. Limit rows at the same time.'; put '*/'; put 'data work.originals;'; put 'if 0 then set deleted new updates;'; put 'set work.originals;'; put 'if _n_>&maxdiff then stop;'; put 'run;'; put '/* get additional submits against the same base table */'; put 'proc sort data=&mpelib..mpe_submit(where=('; put 'submit_status_cd=''SUBMITTED'''; put 'and cats(base_lib,''.'',base_ds)="&orig_libds"'; put 'and table_id ne "&LOAD_REF"'; put ')) out=submits;'; put 'by descending submitted_on_dttm;'; put 'run;'; put '/* filter last 10 */'; put 'data submits;'; put 'set submits;'; put 'if _n_>10 then stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc SHOWDIFFS prior to streamout)'; put ')'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,params)'; put '%webout(OBJ,cols)'; put '%webout(OBJ,submits)'; put '%webout(OBJ,deleted,fmt=N,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,new,fmt=N,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,updates,fmt=N,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,ORIGINALS,fmt=N,missing=STRING)'; put '/* need same for formatted view */'; put '%webout(OBJ,deleted,dslabel=fmt_deleted,fmt=Y,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,new,dslabel=fmt_new,fmt=Y,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,updates,dslabel=fmt_updates,fmt=Y,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,originals,dslabel=fmt_ORIGINALS,fmt=Y,missing=STRING)'; put '%webout(CLOSE)'; put '%if &engine_type=OLEDB %then %do;'; put 'proc sql; /* needs to be dropped AFTER view execution */'; put 'drop table &inner_table;'; put '%end;'; put '%return;'; put '%end;'; put '%if &action=APPROVE_TABLE %then %do;'; put '%approve:'; put '/**'; put '* store temp tables so we have a record of diffs'; put '* do not change this libname or table name as it is used in some'; put '* post approve hooks'; put '* for REPLACE loads, temp tables not made, so make them'; put '*/'; put '%if &LOADTYPE=REPLACE %then %do;'; put 'data work.outds_add; run;'; put 'data work.outds_mod; run;'; put 'data work.outds_del; run;'; put '%end;'; put 'libname approve "&mpelocapprovals/&LOAD_REF";'; put 'data; set &libds;stop;run;'; put '%let emptybasetable=&syslast;'; put 'data approve.ActualDiffs;'; put 'length _____STATUS_____ $10;'; put 'if 0 then set &emptybasetable;'; put 'set work.outds_del (in=_____del)'; put 'work.outds_add (in=_____new)'; put 'work.outds_mod (in=_____upd);'; put 'if _____del then _____STATUS_____=''DELETED'';'; put 'else if _____new then _____STATUS_____=''NEW'';'; put 'else if _____upd then _____STATUS_____=''UPDATED'';'; put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; put 'drop &var_txfrom &var_txto;'; put '%end;'; put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; put 'drop &VAR_PROCESSED;'; put '%end;'; put 'run;'; put 'proc export data=approve.ActualDiffs'; put 'outfile="&mpelocapprovals/&LOAD_REF/ActualDiffs.csv"'; put 'dbms=csv'; put 'replace;'; put 'run;'; put '/* update the control table to show table as approved */'; put '/* append to mpe_review table */'; put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; put 'data work.append_review;'; put 'if 0 then set &mpelib..mpe_review;'; put 'TABLE_ID="&LOAD_REF";'; put 'BASE_TABLE="&orig_libds";'; put 'REVIEW_STATUS_ID="APPROVED";'; put 'REVIEWED_BY_NM="&user";'; put 'REVIEWED_ON_DTTM=&sastime;'; put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_review,ref=%str(&LOAD_REF Approval),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base=&mpelib..mpe_review data=work.append_review;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_review,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* update mpe_submit table */'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_submit,ref=%str(&LOAD_REF Approval in auditors/postdata),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc sql;'; put 'update &mpelib..mpe_submit'; put 'set submit_status_cd=''APPROVED'','; put 'num_of_approvals_remaining=&num_of_approvals_remaining-1,'; put 'reviewed_by_nm="&user",'; put 'reviewed_on_dttm=&sastime'; put 'where table_id="&LOAD_REF";'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* run post-approve hook */'; put '%mpe_runhook(POST_APPROVE_HOOK)'; put 'data apPARAMS;'; put 'AUTHORISED=1;'; put 'ALREADY_UPDATED=0;'; put 'ALREADY_UPDATED_DTTM=.;'; put 'DIFFTIME="&difftime";'; put 'if &syscc=0 then RESPONSE=''SUCCESS!'';'; put 'else response="SYSCC=&syscc.";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program 582'; put ',msg=%superq(msg)'; put ')'; put '%mpe_alerts(alert_event=APPROVED'; put ', alert_lib=&libref'; put ', alert_ds=&ds'; put ', dsid=&LOAD_REF'; put ')'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,apPARAMS)'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '%mend postdata;'; put '%postdata()'; put '%mp_abort(mode=INCLUDE)'; put '%mp_abort(iftrue= (&is_err=1)'; put ',mac=&_program'; put ',msg=%superq(err_msg)'; put ')'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/editors; %let service=getdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; put ',mode=VIEW'; put ',groupds=work.groups'; put ',clsds=work.clsview'; put ',outds=CLSVIEW'; put ',outmeta=work.cls_rules'; put ');'; put '%local col_list is_admin;'; put '/* filter for the appropriate rules */'; put 'proc sql;'; put 'create table &outmeta as'; put 'select CLS_VARIABLE_NM,'; put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; put 'from &clsds'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and CLS_SCOPE in ("&mode",''ALL'')'; put 'and CLS_ACTIVE=1'; put '%if &mode=VIEW %then %do;'; put 'and CLS_HIDE ne 1'; put '%end;'; put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; put 'and CLS_LIBREF="%upcase(&tgtlib)"'; put 'and CLS_TABLE="%upcase(&tgtds)"'; put 'group by CLS_VARIABLE_NM;'; put '%let is_admin=0;'; put 'proc sql;'; put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; put '%put &sysmacroname: &=is_admin;'; put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; put '%put &sysmacroname: no CLS rules to apply;'; put '%put &=is_admin;'; put '/* copy using append for speed */'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '/* ensure CLS_RULES is empty in case of admin */'; put 'data &outmeta;'; put 'set &outmeta;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &mode=VIEW %then %do;'; put '/* just send back the relevant columns */'; put '%let col_list=0;'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=0;'; put '%if &col_list=0 %then %do;'; put '/*'; put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; put 'explicitly show. Therefore we assume all columns are to be shown except'; put 'those that are explicitly hidden.'; put '*/'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=1;'; put 'data &outds;'; put 'set &inds;'; put 'drop &col_list;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds;'; put 'set &inds;'; put 'keep &col_list;'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &mode=EDIT %then %do;'; put '/*'; put 'In this case we pass all columns and the frontend will filter out the'; put 'ones that are not allowed to be edited.'; put '*/'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: invalid mode - &mode!;'; put '%abort;'; put '%end;'; put '%mend mpe_columnlevelsecurity;'; put '%macro mp_dsmeta(libds,outds=work.dsmeta);'; put '%local ds1 ds2;'; put 'data;run; %let ds1=&syslast;'; put 'data;run; %let ds2=&syslast;'; put '/* setup the ODS capture */'; put 'ods output attributes=&ds1 enginehost=&ds2;'; put '/* export the metadata */'; put 'proc contents data=&libds;'; put 'run;'; put '/* load it into a single table */'; put 'data &outds (keep=ods_table name value);'; put 'length ods_table $10 name label2 label1 label $100'; put 'value cvalue cvalue1 cvalue2 $1000'; put 'nvalue nvalue1 nvalue2 8;'; put 'if _n_=1 then call missing (of _all_);'; put '* putlog (_all_)(=);'; put 'set &ds1 (in=atrs) &ds2 (in=eng);'; put 'if atrs then do;'; put 'ods_table=''ATTRIBUTES'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'if label2 ne '''' then do;'; put 'name=label2;'; put 'value=coalescec(cvalue2,put(nvalue2,best.));'; put 'output;'; put 'end;'; put 'end;'; put 'else if eng then do;'; put 'ods_table=''ENGINEHOST'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &ds1, &ds2;'; put '%mend mp_dsmeta;'; put '%macro mpe_dsmeta(libds, outds=dsmeta);'; put '%local ddsd ddld notes lenstmt;'; put '%let lenstmt=length ods_table $18 name $100 value $1000;'; put '%let libds=%upcase(&libds);'; put '%mp_dsmeta(&libds, outds=&outds)'; put 'data _null_;'; put 'set &mpelib..mpe_datadictionary;'; put 'where &dc_dttmtfmt < tx_to & dd_source=%upcase("&libds") & dd_type=''TABLE'';'; put 'call symputx(''ddsd'',dd_shortdesc,''l'');'; put 'call symputx(''ddld'',dd_longdesc,''l'');'; put 'run;'; put 'data &outds;'; put '&lenstmt;'; put 'if last then do;'; put 'ODS_TABLE=''MPE_DATADICTIONARY'';'; put 'NAME=''DD_SHORTDESC'';'; put 'VALUE="&ddsd";'; put 'output;'; put 'NAME=''DD_LONGDESC'';'; put 'VALUE="&ddld";'; put 'output;'; put 'end;'; put 'set &outds end=last;'; put 'output;'; put 'run;'; put 'data _data_;'; put 'set &mpelib..mpe_tables;'; put 'where libref="%scan(&libds,1,.)"'; put '& dsn="%scan(&libds,2,.)"'; put '& &dc_dttmtfmt 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mv_getgroupmembers(group'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroupmembers'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups/&group/members?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: Group &group not found!!;'; put 'data &outds;'; put 'length id name $43;'; put 'call missing(of _all_);'; put 'run;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let libref1=%mf_getuniquelibref();'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'length id name $43;'; put 'set &libref1..items;'; put 'run;'; put 'libname &libref1 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put '%mend mv_getgroupmembers;'; put '%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);'; put '%mv_getgroupmembers(%str(&group),outds=&outds)'; put 'data &outds ;'; put 'length membername $64;'; put 'set &outds(rename=(name=MemberName));'; put 'run;'; put '%mend dc_getgroupmembers;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mp_getcols(ds, outds=work.cols);'; put '%local dropds;'; put 'proc contents noprint data=&ds'; put 'out=_data_ (keep=name type length label varnum format:);'; put 'run;'; put '%let dropds=&syslast;'; put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; put 'set &dropds(rename=(format=fmtname type=type2));'; put 'name=upcase(name);'; put 'if type2=2 then do;'; put 'length format $49.;'; put 'if fmtname='''' then format=cats(''$'',length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else format=cats(fmtname,formatl,''.'');'; put 'type=''C'';'; put 'ddtype=''CHARACTER'';'; put 'end;'; put 'else do;'; put 'if fmtname='''' then format=cats(length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; put 'else format=cats(fmtname,formatl,''.'',formatd);'; put 'type=''N'';'; put 'if format=:''DATETIME'' or format=:''E8601DT'' then ddtype=''DATETIME'';'; put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; put 'or format=:''MONYY'''; put 'then ddtype=''DATE'';'; put 'else if format=:''TIME'' then ddtype=''TIME'';'; put 'else ddtype=''NUMERIC'';'; put 'end;'; put 'if label='''' then label=name;'; put 'run;'; put 'proc sql;'; put 'drop table &dropds;'; put '%mend mp_getcols;'; put '%macro mcf_init(func'; put ')/*/STORE SOURCE*/;'; put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; put '%global SASJS_PREFIX;'; put '%let SASJS_PREFIX=SASJS;'; put '%end;'; put '%let func=%upcase(&func);'; put '/* the / character is just a seperator */'; put '%global &sasjs_prefix._FUNCTIONS;'; put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; put '1'; put '%return;'; put '%end;'; put '%else %do;'; put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; put '0'; put '%end;'; put '%mend mcf_init;'; put '%macro mcf_length(wrap=NO'; put ',insert_cmplib=DEPRECATED'; put ',lib=WORK'; put ',cat=SASJS'; put ',pkg=UTILS'; put ')/*/STORE SOURCE*/;'; put '%local i var cmpval found;'; put '%if %mcf_init(mcf_length)=1 %then %return;'; put '%if &wrap=YES %then %do;'; put 'proc fcmp outlib=&lib..&cat..&pkg;'; put '%end;'; put 'function mcf_length(var);'; put 'if var=. then len=0;'; put 'else if missing(var) or trunc(var,3)=var then len=3;'; put 'else if trunc(var,4)=var then len=4;'; put 'else if trunc(var,5)=var then len=5;'; put 'else if trunc(var,6)=var then len=6;'; put 'else if trunc(var,7)=var then len=7;'; put 'else len=8;'; put 'return(len);'; put 'endsub;'; put '%if &wrap=YES %then %do;'; put 'quit;'; put '%end;'; put '/* insert the CMPLIB if not already there */'; put '%let cmpval=%sysfunc(getoption(cmplib));'; put '%let found=0;'; put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; put '%let var=%scan(&cmpval,&i,%str( %(%)));'; put '%if &var=&lib..&cat %then %let found=1;'; put '%end;'; put '%if &found=0 %then %do;'; put 'options insert=(CMPLIB=(&lib..&cat));'; put '%end;'; put '%mend mcf_length;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mp_getmaxvarlengths('; put 'libds'; put ',num2char=NO'; put ',outds=work.mp_getmaxvarlengths'; put ')/*/STORE SOURCE*/;'; put '%local vars prefix x var fmt srcds;'; put '%let vars=%mf_getvarlist(libds=&libds);'; put '%let prefix=%substr(%mf_getuniquename(),1,25);'; put '%let num2char=%upcase(&num2char);'; put '%if &num2char=NO %then %do;'; put '/* compile length function for numeric fields */'; put '%mcf_length(wrap=YES, insert_cmplib=YES)'; put '%end;'; put '%if &num2char=NO'; put 'and ("%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5")'; put 'and %mf_getvarcount(&libds,typefilter=N) gt 0'; put '%then %do;'; put '/* custom functions not supported in summary operations */'; put '%let srcds=%mf_getuniquename();'; put 'data &srcds/view=&srcds;'; put 'set &libds;'; put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; put '%let var=%scan(&vars,&x);'; put '%if %mf_getvartype(&libds,&var)=N %then %do;'; put '&prefix.&x=mcf_length(&var);'; put '%end;'; put '%end;'; put 'run;'; put '%end;'; put '%else %let srcds=&libds;'; put 'proc sql;'; put 'create table &outds (rename=('; put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; put '&prefix.&x=%scan(&vars,&x)'; put '%end;'; put '))'; put 'as select'; put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; put '%let var=%scan(&vars,&x);'; put '%if &x>1 %then ,;'; put '%if %mf_getvartype(&libds,&var)=C %then %do;'; put 'max(lengthn(&var)) as &prefix.&x'; put '%end;'; put '%else %if &num2char=YES %then %do;'; put '%let fmt=%mf_getvarformat(&libds,&var);'; put '%put fmt=&fmt;'; put '%if %str(&fmt)=%str() %then %do;'; put 'max(lengthn(cats(&var))) as &prefix.&x'; put '%end;'; put '%else %do;'; put 'max(lengthn(put(&var,&fmt))) as &prefix.&x'; put '%end;'; put '%end;'; put '%else %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then %do;'; put 'max(&prefix.&x) as &prefix.&x'; put '%end;'; put '%else %do;'; put 'max(mcf_length(&var)) as &prefix.&x'; put '%end;'; put '%end;'; put '%end;'; put 'from &srcds;'; put 'proc transpose data=&outds'; put 'out=&outds(rename=(_name_=NAME COL1=MAXLEN));'; put 'run;'; put '%mend mp_getmaxvarlengths;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getdata.sas'; put '@brief Returns a dataset to the editor front end'; put '@details'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|LIBDS:$41.|FILTER_RK:$5.|'; put '|---|---|'; put '|DC258467.MPE_X_TEST|-1|'; put '

Service Outputs

'; put '
sasdata
'; put '
sasparams
'; put 'Contains info on the request. One row is returned.'; put '@li CLS_FLG - set to 0 if there are no CLS rules (everything editable)'; put 'else set to 1 (CLS rules exist)'; put '@li ISMAP - set to 1 if the target DS is an excel map target, else 0'; put '
approvers
'; put '
dqrules
'; put '
dqdata
'; put '
cols
'; put 'Contains column level attributes.'; put '@li NAME - column name'; put '@li VARNUM - variable position. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li LABEL - variable label. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li FMTNAME - derived format name. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li DDTYPE - derived dropdown type. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li CLS_RULE - values include:'; put '- EDIT - the column is editable'; put '- READ - the column should be readonly'; put '- HIDE - the column should be hidden'; put '@li memlabel'; put '@li desc- augmented with MPE_DATADICTIONARY if exists, else label'; put '@li longdesc - from MPE_DATADICTIONARY'; put '
maxvarlengths
'; put '
xl_rules
'; put '
query
'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_getgroupmembers.sas'; put '@li mf_existvar.sas'; put '@li mf_getattrn.sas'; put '@li mf_getvarlist.sas'; put '@li mf_existds.sas'; put '@li mf_getquotedstr.sas'; put '@li mf_getuser.sas'; put '@li mf_nobs.sas'; put '@li mf_verifymacvars.sas'; put '@li mf_wordsinstr1butnotstr2.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_getcols.sas'; put '@li mp_getmaxvarlengths.sas'; put '@li mp_validatecol.sas'; put '@li mpe_accesscheck.sas'; put '@li mpe_columnlevelsecurity.sas'; put '@li mpe_dsmeta.sas'; put '@li mpe_getlabels.sas'; put '@li mpe_filtermaster.sas'; put '@li mpe_runhook.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/**'; put '* Validate inputs'; put '*/'; put 'data work.intest;'; put 'length filter_rk 8;'; put 'set work.SASCONTROLTABLE;'; put '/* validate filter_rk */'; put 'if filter_rk le 0 then filter_rk=-1;'; put 'call symputx(''orig_libds'',upcase(libds));'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'is_fmt=1;'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put '/* validate libds */'; put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; put 'if is_libds=0 then do;'; put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; put 'stop;'; put 'end;'; put 'else do;'; put 'call symputx(''filter_rk'',filter_rk);'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; put ',mac=&_program'; put ',msg=%str(Some err with service inputs)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(libds filter_rk)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: libds filter_rk)'; put ')'; put '/* export format catalog */'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* stream back meta info, further calls will return col metadata and actual data'; put '*/'; put '%let libref=%upcase(%scan(&libds,1,.));'; put '%let dsn=%upcase(%scan(&libds,2,.));'; put '%dc_assignlib(WRITE,&libref)'; put '/**'; put '* First check user has access permission to edit the table'; put '*/'; put '%put checking access;'; put '%let user=%mf_getuser();'; put '%mpe_accesscheck(&orig_libds,outds=mw_auth,user=&user,access_level=EDIT)'; put '%mp_abort(iftrue= (%mf_getattrn(work.mw_auth,NLOBS)=0)'; put ',mac=mpestp_getdata.sas'; put ',msg=&user is not authorised to edit &orig_libds %trim('; put ')in the &mpelib..MPE_SECURITY table'; put ')'; put '%mp_abort(iftrue= ( %mf_existds(libds=&libds) ne 1)'; put ',mac=mpestp_getdata.sas'; put ',msg=dataset &libds does not exist!!'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc at line 60 )'; put ')'; put '%global loadtype var_txfrom var_txto var_processed filter_text pk coltype'; put 'sortpk;'; put '%put getting table attributes;'; put 'proc sql noprint;'; put 'select upcase(loadtype)'; put ',var_txfrom,var_txto'; put ',var_busfrom,var_busto'; put ',var_processed,rk_underlying,buskey'; put ',coalesce(rk_underlying,buskey)'; put ',pre_edit_hook'; put ',case when missing(rk_underlying) then buskey else rk_underlying end'; put 'into: loadtype,:var_txfrom,:var_txto'; put ',:var_busfrom ,:var_busto'; put ',:var_processed,:rk_underlying,:buskey, :sortPK, :pre_edit_hook,:pk'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. lt TX_TO'; put 'and upcase(dsn)="%scan(&orig_libds,2,.)"'; put 'and upcase(libref)="%scan(&orig_libds,1,.)";'; put '%put preparing filter query:;'; put '%mpe_filtermaster(EDIT,&orig_libds,'; put 'dclib=&mpelib,'; put 'filter_rk=&filter_rk,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%macro mpestp_getdata();'; put '%if not %symexist(DC_MAXOBS_WEBEDIT) %then %do;'; put '%put NOTE:;%put NOTE- DC_MAXOBS_WEBEDIT not found!;'; put '%put NOTE- Please add to &mpelib..MPE_CONFIG table;'; put '%put NOTE-;%put NOTE-;'; put '%global DC_MAXOBS_WEBEDIT;'; put '%let DC_MAXOBS_WEBEDIT=500;'; put '%end;'; put '/* for tables which use RKs/SKs then we just expose the business key to'; put 'users - this lets uploads be sent to multiple environments (with'; put 'potentially different RK/SK values for the same business key).'; put 'Note that the config table has the RK column in the buskey field in'; put 'this scenario. */'; put '%if %length(&rk_underlying)>0 %then %let drop_rk=&buskey;'; put '%else %let drop_rk=;'; put '/* always remove the PROCESSED_DTTM column, if it exists */'; put '%if %length(&var_processed)=0 %then %do;'; put '%if %mf_existvar(&libds,PROCESSED_DTTM)>0 %then'; put '%let var_processed=PROCESSED_DTTM;'; put '%end;'; put '/**'; put '* Now get the slice of the actual table'; put '*/'; put 'options obs=10000;'; put '%if &loadtype=BITEMPORAL %then %do;'; put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk );'; put '_____DELETE__THIS__RECORD_____="No";'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put 'proc sort data=out;'; put 'by &pk &var_busfrom;'; put 'run;'; put 'data out;'; put 'set out;'; put 'by &pk &var_busfrom;'; put 'if last.%scan(&pk,-1);'; put 'run;'; put '%end;'; put '%else %do;'; put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk);'; put '_____DELETE__THIS__RECORD_____="No";'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put '%end;'; put 'options obs=max;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Issue with filtering (line 165) )'; put ')'; put 'options obs=&DC_MAXOBS_WEBEDIT;'; put '%let sortpk=%sysfunc(coalescec(&sortpk &var_busfrom,_ALL_));'; put 'proc sort data=work.out; by &sortPK; run;'; put 'options obs=max;'; put '%mpe_runhook(PRE_EDIT_HOOK)'; put '%let obscnt=%mf_getattrn(work.out,NLOBS);'; put '%mp_abort(iftrue=(&obscnt>&DC_MAXOBS_WEBEDIT)'; put ',mac=&_program'; put ',msg=Table is too big (&obscnt rows) - please filter and try again!'; put ')'; put '/* order delete var and pk fields at start of table */'; put '%let sourcevars=%mf_wordsInStr1ButNotStr2('; put 'Str1=%mf_getvarlist(work.out)'; put ',Str2= _____DELETE__THIS__RECORD_____ &pk'; put ');'; put '%put sourcevars=&sourcevars;'; put 'data outdata;'; put '/* delete & pk fields come first */'; put 'attrib _____DELETE__THIS__RECORD_____ &pk label='''';'; put '/* keep remaining variable order */'; put '%if %length(&sourcevars)>0 %then %do;'; put 'attrib &sourcevars label='''';'; put '%end;'; put '_____DELETE__THIS__RECORD_____="No ";'; put '%if %mf_nobs(work.out)=0 %then %do;'; put '/* send empty row if empty table to help with hot rendering */'; put 'output;'; put '%end;'; put 'set work.out ;'; put 'run;'; put '/* get list of variables and their formats */'; put 'proc contents noprint data=outdata'; put 'out=vars(keep=name type length varnum format: label);'; put 'run;'; put 'proc sort;'; put 'by varnum;'; put 'run;'; put 'data vars3(keep=name type length format label pk varnum ctrloptions formatd);'; put 'set vars(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put '/* not interested in transaction or processing dates'; put '(append table must be supplied without them) */'; put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED");'; put 'if type2=2 or type2=6 then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else format=cats(format2,formatl,''.'');'; put 'type=''char'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if upcase(format2)=''DATETIME'' and formatl=0 then format=''DATETIME.'';'; put 'else format=cats(format2,formatl,''.'',formatd);'; put 'type=''num'';'; put 'end;'; put 'if name in ('''',%upcase(%mf_getQuotedStr(&pk,dlm=%str(,),quote=S)))'; put 'then PK=''YES'';'; put 'length ctrlOptions $500;'; put 'if name="_____DELETE__THIS__RECORD_____" then ctrlOptions=''["No","Yes"]'';'; put 'else ctrlOptions='''';'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc at 242 (vars3 step) in &_program \n'; put '%superq(syserrortext)'; put ')'; put ')'; put '%global jsdttmvars jsdtvars jstmvars;'; put 'data _null_;'; put 'set vars3 end=last;'; put 'if _n_>1 then comma='','';'; put 'length coltype $500.;'; put 'format=upcase(format);'; put 'coltype=cats(comma,''{"data":"'',name,''"'');'; put 'if ctrlOptions ne '''' then'; put 'colType=cats(coltype,'',"type":"dropdown","source":'',ctrlOptions,"}");'; put 'else if type=''num'' then do;'; put 'if format=:''DATETIME'' or format=:''E8601DT'' then do;'; put 'colType=cats(coltype'; put ','',"type":"date","dateFormat":"YYYY-MM-DD HH:mm:ss"'''; put ','',"correctFormat":"true"}'');'; put '/* build var list to reformat datetimes in javascript format */'; put 'call symput(''jsdttmvars'',symget(''jsdttmvars'')!!'' ''!!name);'; put 'end;'; put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; put 'or format=:''MONYY'''; put 'then do;'; put '/* see bottom of file for more date formats!! */'; put '/* also when updating, update stagedata.sas and mp_getcols.sas'; put 'and mpe_loader.sas */'; put 'colType=cats(coltype,'',"type":"date","dateFormat":"YYYY-MM-DD"'''; put '/*colType=cats(coltype,'',"type":"date","dateFormat":"MM/DD/YYYY"''*/'; put ','',"correctFormat":"true"}'');'; put '/* build var list to reformat as javascript dates */'; put 'call symput(''jsdtvars'',symget(''jsdtvars'')!!'' ''!!name);'; put 'end;'; put 'else if format=:''TIME'' or format=:''HHMM'' then do;'; put 'colType=cats(coltype,'',"type":"time","timeFormat":"HH:mm:ss"'''; put ','',"correctFormat":"true"}'');'; put '/* build var list to reformat as javascript times */'; put 'call symput(''jstmvars'',symget(''jstmvars'')!!'' ''!!name);'; put 'end;'; put 'else do;'; put '/* is standard numeric but need to ascertain precision */'; put 'retain base ''000000000000000000'';'; put 'if formatd>0 then numFormat=cats(''.'',substr(base,1,formatd));'; put 'colType=cats(coltype,'',"type":"numeric","format":"0'',numFormat,''"}'');'; put 'end;'; put 'end;'; put 'else colType=cats(coltype,''}'');'; put 'length concatcoltype $32767;'; put 'retain concatcoltype;'; put 'concatcoltype=cats(concatcoltype,coltype);'; put 'if last then call symputx(''colType'',strip(concatcoltype),''g'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc at 283 (null step) in &_program)'; put ')'; put 'PROC FORMAT;'; put 'picture yymmddThhmmss (default=28) other=''%0Y-%0m-%0d %0H:%0M:%0s'''; put '(datatype=datetime);'; put 'picture JSyymmdd other=''%0Y-%0m-%0d'' (datatype=date);'; put 'picture JShhmmss (default=16) other=''%0H:%0M:%0s'' (datatype=time);'; put 'RUN;'; put '/* before we send the data, need to rebuild all date & datetime vars as char*/'; put '%let finalvars=%mf_getvarlist(work.outdata);'; put 'data sasdata;'; put '/* set formats & col order ahead of rename+import */'; put 'informat &finalvars ;'; put '/* read dataset and rename date / datetime vars as necessary */'; put 'set outdata'; put '%if %length(&jsdttmvars&jsdtvars&jstmvars)>0 %then %do;'; put '(rename=('; put '%local dtvarnum dtvar tmvar;'; put '/* temp datetime vars end in _____ */'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; put '%let dtvar=%scan(&jsdttmvars ,&dtvarnum);'; put '&dtvar=_____&dtvarnum._____'; put '%end;'; put '/* temp date vars do not end in _____ */'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; put '%let dtvar=%scan( &jsdtvars,&dtvarnum);'; put '&dtvar=_____&dtvarnum'; put '%end;'; put '/* temp time vars end in ___tm */'; put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; put '%let tmvar=%scan( &jstmvars,&tmvarnum);'; put '&tmvar=_____&tmvarnum.___tm'; put '%end;'; put '))'; put '%end;'; put ';'; put '%if %length(&jsdttmvars)>0 %then %do ;'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; put '%let dtvar=%scan(&jsdttmvars,&dtvarnum);'; put '&dtvar=cats(put(_____&dtvarnum._____,yymmddThhmmss28.));'; put 'if &dtvar="ERROR" then call missing(&dtvar);'; put 'drop _____&dtvarnum._____;'; put '%end;'; put '%end;'; put '%if %length(&jsdtvars)>0 %then %do;'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; put '%let dtvar=%scan(&jsdtvars,&dtvarnum);'; put '&dtvar=cats(put(_____&dtvarnum,JSyymmdd.));'; put 'if &dtvar="ERROR" then call missing(&dtvar);'; put 'drop _____&dtvarnum;'; put '%end;'; put '%end;'; put '%if %length(&jstmvars)>0 %then %do;'; put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; put '%let tmvar=%scan(&jstmvars,&tmvarnum);'; put '&tmvar=cats(put(_____&tmvarnum.___tm,JShhmmss14.));'; put 'if &tmvar="ERROR" then call missing(&tmvar);'; put 'drop _____&tmvarnum.___tm;'; put '%end;'; put '%end;'; put 'output;'; put 'run;'; put '/* get the relevant approvers for the drop down */'; put '%put getting approvers;'; put '%local sas_groups sas_i sas_group;'; put 'proc sql noprint;'; put 'select distinct sas_Group into: sas_groups separated by "|"'; put 'from &mpelib..mpe_security'; put 'where libref="%scan(&orig_libds,1,.)"'; put 'and dsn="%scan(&orig_libds,2,.)"'; put 'and access_level=''APPROVE'''; put 'and &dc_dttmtfmt. lt TX_TO;'; put '%if %length(&sas_groups)=0 %then %do;'; put '%dc_getgroupmembers(&dc_admin_group,outds=work.access1)'; put '%end;'; put '%else %do sas_i=1 %to %sysfunc(countw(&sas_groups,%str(|)));'; put '%let sas_group=%scan(&sas_Groups,&sas_i,%str(|));'; put '%dc_getgroupmembers(&sas_group,outds=work.temp&sas_i)'; put 'proc append base=work.access1 data=work.temp&sas_i;run;'; put '%end;'; put '%mend mpestp_getdata;'; put '%mpestp_getdata()'; put '%mp_abort(mode=INCLUDE)'; put '/* extract column level security rules */'; put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.sasdata'; put ',mode=EDIT'; put ',clsds=&mpelib..mpe_column_level_security'; put ',groupds=work.groups /* was created in mpe_filtermaster */'; put ',outds=work.sasdata1'; put ',outmeta=work.cls_rules'; put ')'; put '/* get labels */'; put '%mpe_getlabels(COLUMNS,sasdata1,outds=spec)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc extracting spec info)'; put ')'; put '/* extract col info */'; put '%mp_getcols(&libds, outds=cols1)'; put '/* join with cls rules */'; put 'proc sql;'; put 'create table work.cols as'; put 'select a.NAME'; put ',a.VARNUM'; put ',a.LABEL'; put ',a.FMTNAME'; put ',a.DDTYPE'; put ',case b.cls_hide'; put 'when 1 then ''HIDE'''; put 'when 0 then ''EDIT'''; put 'else ''READ'' end as CLS_RULE'; put ',c.memlabel'; put ',c.desc'; put ',c.longdesc'; put 'from work.cols1 a'; put 'left join work.cls_rules b'; put 'on a.NAME=b.CLS_VARIABLE_NM'; put 'left join work.spec c'; put 'on a.NAME=c.NAME;'; put 'proc sql;'; put 'create table approvers as select distinct membername as personname'; put ',membername as email, membername as userid'; put 'from work.access1;'; put '/*'; put 'create table access3 as select b.userid,b.email'; put 'from access2 a'; put ',support.users b'; put 'where a.personname=b.userid'; put 'and a.personname ne "%mf_getuser()"'; put 'and %sysfunc(datetime()) lt b.tx_to_dttm'; put 'order by 1;'; put '*/'; put 'data _null_;'; put 'infile filtref end=eof;'; put 'input;'; put 'length filter_text $32767;'; put 'retain filter_text;'; put 'filter_text=catx('' '',filter_text,_infile_);'; put 'if eof then do;'; put 'if cats(filter_text)=''1=1'' then filter_text='''';'; put 'call symputx(''filter_text'',filter_text);'; put 'end;'; put 'run;'; put '%put params;'; put '%let ismap=0;'; put 'proc sql noprint;'; put 'select count(*) into: ismap from &mpelib..mpe_xlmap_info'; put 'where XLMAP_TARGETLIBDS="&orig_libds" and &dc_dttmtfmt. le TX_TO;'; put 'data sasparams;'; put 'length colHeaders $20000 filter_text $32767;'; put 'colHeaders=cats(upcase("%mf_getvarlist(sasdata1,dlm=%str(,))"));'; put 'pkCnt=countw("&pk");'; put 'pk="&pk";'; put 'dtvars=compbl("&jsdtvars");'; put 'dttmvars=compbl("&jsdttmvars");'; put 'tmvars=compbl("&jstmvars");'; put 'length coltype $32000;'; put 'coltype=symget(''coltype'');'; put 'loadtype=symget(''loadtype'');'; put 'if trim(symget(''rk_underlying'')) ne '''' then rk_flag=1;'; put 'else rk_flag=0;'; put 'filter_text=symget(''filter_text'');'; put 'if %mf_nobs(work.cls_rules)=0 then cls_flag=0;'; put 'else cls_flag=1;'; put 'put (_all_)(=);'; put 'if "&orig_libds"="&mpelib..MPE_XLMAP_DATA" or &ismap ne 0 then ismap=1;'; put 'else ismap=0;'; put 'run;'; put '/* Extract validation DQ Rules */'; put 'proc sort data=&mpelib..mpe_validations'; put '(where=(&dc_dttmtfmt. le TX_TO'; put 'and BASE_LIB="%scan(&orig_libds,1,.)" and BASE_DS="%scan(&orig_libds,2,.)"'; put 'and rule_active=1))'; put 'out=dqrules (keep=base_col rule_type rule_value);'; put 'by base_col rule_type rule_value;'; put 'run;'; put '/* merge with NOTNULL constraints in the physical table */'; put 'proc sql;'; put 'create table _data_ as'; put 'select * from dqrules'; put 'union'; put 'select upcase(name) as base_col'; put ',''NOTNULL'' as rule_type'; put ','''' as rule_value'; put 'from dictionary.columns'; put 'where upcase(libname)="%scan(&orig_libds,1,.)"'; put 'and upcase(memname)="%scan(&orig_libds,2,.)"'; put 'and upcase(name) in (select name from vars3)'; put 'and notnull=''yes'''; put 'order by 1,2,3;'; put 'data dqrules;'; put 'set &syslast;'; put 'by base_col rule_type rule_value;'; put 'if last.rule_type;'; put 'if rule_type in (''HARDSELECT'',''SOFTSELECT'') and countw(rule_value)=3 then'; put 'do;'; put 'retain x 0; x+1;'; put 'call symputx(cats(''source'',x),rule_value);'; put '%let sourcecnt=0;'; put 'call symputx(''sourcecnt'',x);'; put 'call symputx(cats(''base_col'',x),base_col);'; put 'end;'; put 'run;'; put 'proc sql;'; put 'create table dqdata as'; put 'select distinct base_column as base_col length=32'; put ',upcase(base_column) as rule_value length=74 /* deprecated */'; put ',selectbox_value as rule_data length=1000'; put ',selectbox_order'; put 'from &mpelib..mpe_selectbox'; put 'where &dc_dttmtfmt. lt ver_to_dttm'; put 'and select_lib="%scan(&orig_libds,1,.)"'; put 'and select_ds="%scan(&orig_libds,2,.)";'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc during DQ rule validation)'; put ')'; put '/* extract selectbox data */'; put '%macro dq_selects();'; put '%local x source lib ds col;'; put '%do x=1 %to &sourcecnt;'; put '%let source=&&source&x;'; put '%let lib=%scan(&source,1,.);'; put '%let ds=%scan(&source,2,.);'; put '%let col=%scan(&source,3,.);'; put '%put &=source;'; put '%put &=lib;'; put '%dc_assignlib(READ,&lib)'; put 'proc sql;'; put 'create table dqdata&x as'; put 'select distinct "&&base_col&x" as base_col length=32'; put ',"&source" as rule_value length=74'; put ',cats(&col) as rule_data length=1000'; put ',&col as tmp_order'; put 'from &lib..&ds'; put 'order by tmp_order;'; put '/* ensure both numerics and char vals are ordered correctly */'; put 'data work.dqdata&x (drop=tmp_order);'; put 'set work.dqdata&x;'; put 'selectbox_order=_n_;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc when selecting &&base_col&x from &orig_libds)'; put ')'; put 'proc append base=dqdata data=dqdata&x;run;'; put 'proc sql; drop table dqdata&x;'; put '%end;'; put '%mend dq_selects;'; put '%dq_selects()'; put 'proc sort data=dqdata;'; put '/* order by selectbox_order then the value */'; put 'by base_col selectbox_order rule_data;'; put 'run;'; put '%mp_getmaxvarlengths(work.sasdata1,outds=maxvarlengths)'; put 'data maxvarlengths;'; put 'set maxvarlengths;'; put 'if name=''_____DELETE__THIS__RECORD_____'' then mAXLEN=3;'; put 'run;'; put 'data xl_rules;'; put 'set &mpelib..mpe_excel_config;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(xl_libref)="%scan(&orig_libds,1,.)";'; put 'where also upcase(xl_table)="%scan(&orig_libds,2,.)";'; put 'where also xl_active=1;'; put 'keep xl_column xl_rule;'; put 'run;'; put '%mpe_dsmeta(&libds, outds=dsmeta)'; put '/* send to the client */'; put '%webout(OPEN)'; put '%webout(OBJ,approvers)'; put '%webout(OBJ,cols)'; put '%webout(OBJ,dqdata)'; put '%webout(OBJ,dqrules)'; put '%webout(OBJ,dsmeta)'; put '%webout(OBJ,maxvarlengths)'; put '%webout(OBJ,query)'; put '%webout(OBJ,sasdata1,fmt=N,missing=STRING,showmeta=YES,dslabel=sasdata)'; put '%webout(OBJ,sasparams)'; put '%webout(OBJ,xl_rules)'; put '%webout(CLOSE)'; put '/*'; put '$N8601Bw'; put '$N8601BAw'; put '$N8601Ew'; put '$N8601EAw'; put '$N8601EHw'; put '$N8601EXw'; put '$N8601Hw'; put '$N8601Xw'; put 'B8601DAw'; put 'B8601DNw'; put 'B8601DTw'; put 'B8601DZw'; put 'B8601LZw'; put 'B8601TMw'; put 'B8601TZw'; put 'DATEw'; put 'DATEAMPMw'; put 'DATETIMEw'; put 'DAYw'; put 'DDMMYYw'; put 'DDMMYYxw'; put 'DOWNAMEw'; put 'DTDATEw'; put 'DTMONYYw'; put 'DTWKDATXw'; put 'DTYEARw'; put 'DTYYQCw'; put 'E8601DAw'; put 'E8601DNw'; put 'E8601DTw'; put 'E8601DZw'; put 'E8601LZw'; put 'E8601TMw'; put 'E8601TZw'; put 'HHMMw'; put 'HOURw'; put 'JULDAYw'; put 'JULIANw'; put 'MMDDYYw'; put 'MMDDYYxw'; put 'MMSSw'; put 'MMYYw'; put 'MMYYxw'; put 'MONNAMEw'; put 'MONTHw'; put 'MONYYw'; put 'PDJULGw'; put 'PDJULIw'; put 'QTRw'; put 'QTRRw'; put 'TIMEw'; put 'TIMEAMPMw'; put 'TODw'; put 'WEEKDATEw'; put 'WEEKDATXw'; put 'WEEKDAYw'; put 'WEEKUw'; put 'WEEKVw'; put 'WEEKWw'; put 'WORDDATEw'; put 'WORDDATXw'; put 'YEARw'; put 'YYMMw'; put 'YYMMxw'; put 'YYMMDDw'; put 'YYMMDDxw'; put 'YYMONw'; put 'YYQw'; put 'YYQxw'; put 'YYQRw'; put 'YYQRxw'; put '$N8601BAw'; put '$N8601Ew'; put '$N8601EAw'; put '$N8601EHw'; put '$N8601EXw'; put '$N8601Hw'; put '$N8601Xw'; put 'B8601DAw'; put 'B8601DNw'; put 'B8601DTw'; put 'B8601DZw'; put 'B8601LZw'; put 'B8601TMw'; put 'B8601TZw'; put 'E8601DAw'; put 'E8601DNw'; put 'E8601DTw'; put 'E8601DZw'; put 'E8601LZw'; put 'E8601TMw'; put 'E8601TZw'; put '*/'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getdynamiccolvals; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getdynamiccolvals.sas'; put '@brief Provide dynamic list of values according to a SAS program or service'; put '@details Configuration is made in the MPE_VALIDATIONS table, the dropdown'; put 'can be either a SOFTSELECT_HOOK or HARDSELECT_HOOK.'; put 'Results are sent in ARRAY format for efficiency.'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|LIBDS:$41.|VARIABLE_NM:$32.|'; put '|---|---|'; put '|DC258467.MPE_SECURITY|SAS_GROUP|'; put '
SOURCE_ROW
'; put 'This contains the raw values from the source table.'; put '

Service Outputs

'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_getservicecode.sas'; put '@li mf_nobs.sas'; put '@li mp_abort.sas'; put '@li mp_include.sas'; put '@li mp_validatecol.sas'; put '@li mf_getapploc.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/**'; put '* Validate inputs'; put '*/'; put '%let err_msg=;'; put 'data work.intest;'; put 'set work.SASCONTROLTABLE;'; put '/* validate libds */'; put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; put '/* validate varname */'; put 'is_name=nvalid(variable_nm,''v7'');'; put 'putlog (_all_)(=);'; put 'if is_libds ne 1 then do;'; put 'msg=''ERR''!!''OR: Invalid libds:''!!libds;'; put 'call symputx(''err_msg'',msg);'; put 'stop;'; put 'end;'; put 'else if is_name ne 1 then do;'; put 'msg=''ERR''!!''OR: Invalid name:''!!variable_nm;'; put 'call symputx(''err_msg'',msg);'; put 'stop;'; put 'end;'; put 'else do;'; put 'call symputx(''variable_nm'',variable_nm);'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc after reading work.sascontroltable)'; put ')'; put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; put ',mac=&_program'; put ',msg=%str(&err_msg)'; put ')'; put '%dc_assignlib(READ,%scan(&libds,1,.))'; put '/* ensure that work.dynamic_extended_values exists */'; put 'data work.dynamic_extended_values;'; put 'run;'; put '/**'; put '* Get the code to execute'; put '*/'; put 'data work.codetest;'; put 'set &mpelib..MPE_VALIDATIONS;'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and base_lib="%scan(&libds,1,.)"'; put 'and base_ds="%scan(&libds,2,.)"'; put 'and base_col="&variable_nm"'; put 'and RULE_TYPE in (''HARDSELECT_HOOK'',''SOFTSELECT_HOOK'')'; put 'and RULE_ACTIVE=1;'; put 'putlog (_all_)(=);'; put 'if length(rule_value)>1 then do;'; put 'call symputx(''pgmloc'',rule_value);'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'output;'; put 'stop;'; put 'end;'; put 'else stop;'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.codetest)=0)'; put ',mac=&_program'; put ',msg=%str(Hook not found in &mpelib..mpe_validations for &libds..&variable_nm)'; put ')'; put '%macro getdynamiccolvals();'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '%mend getdynamiccolvals;'; put '%getdynamiccolvals()'; put '/* execute the dynamic code */'; put '%mp_include(sascode)'; put '%mp_abort(mode=INCLUDE)'; put '/* ensure that the DISPLAY_INDEX variable exists */'; put 'data work.dynamic_values;'; put 'length DISPLAY_INDEX 8 DISPLAY_VALUE $32767;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.dynamic_values;'; put 'display_index=coalesce(display_index,_n_);'; put 'keep DISPLAY_INDEX DISPLAY_VALUE RAW_VALUE;'; put 'run;'; put '/* ensure that work.dynamic_extended_values exists with correct types */'; put 'data work.dynamic_extended_values;'; put 'length DISPLAY_INDEX 8 EXTRA_COL_NAME $32 DISPLAY_VALUE $5000 DISPLAY_TYPE $1'; put 'RAW_VALUE_NUM 8 RAW_VALUE_CHAR $5000 FORCED_VALUE 8;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.dynamic_extended_values;'; put 'run;'; put '%webout(OPEN)'; put '%webout(ARR,dynamic_values,fmt=N)'; put '%webout(ARR,dynamic_extended_values,fmt=N)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getlog; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getlog.sas'; put '@brief Downloads the submission, useful if there is an error'; put '@details'; put '

SAS Macros

'; put '@li mf_verifymacvars.sas'; put '@li mf_getuser.sas'; put '@li mp_abort.sas'; put '@li mp_dirlist.sas'; put '@li mp_binarycopy.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: table)'; put ')'; put '/* security checks */'; put '%let user=%mf_getuser();'; put '%let check_access=0;'; put 'proc sql noprint;'; put 'select count(*) into: check_access from &mpelib..mpe_loads'; put 'where csv_dir="&table" and user_nm="&user";'; put '%mp_abort(iftrue= (&check_access=0 )'; put ',msg=%str(&user not authorised to download audit data for &table)'; put ',mac=mpestp_getlog.sas'; put ')'; put 'ods package(ProdOutput) open nopf;'; put 'options notes source2 mprint;'; put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE)'; put 'data _null_;'; put 'set dirs;'; put 'if scan(filename,-1,''.'') not in (''sas7bdat'',''wpd'');'; put 'retain str1'; put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; put 'call execute(cats(str1,filename,str2));'; put 'run;'; put '%let archive_path=%sysfunc(pathname(work));'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'ods package(ProdOutput) publish archive properties'; put '(archive_name= "&table..zip" archive_path="&archive_path");'; put 'ods package(ProdOutput) close;'; put '/* now serve zip file to client */'; put '%mp_streamfile(contenttype=ZIP'; put ',inloc=%str(&archive_path/&table..zip)'; put ',outname=&table..zip'; put ')'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getsubmits; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getsubmits.sas'; put '@brief Returns a list of staged data items that need to be approved'; put '@details'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put 'proc sql noprint;'; put 'create table work.fromsas (rename=(SUBMITTED_ON=SUBMITTED_ON_DTTM)) as'; put 'select table_id'; put ',cats(base_lib,''.'',base_ds) as base_table'; put ',input_vars'; put ',input_obs'; put ',submitted_by_nm'; put ',submitted_reason_txt'; put ',''DEPRECATED'' as approve_group'; put ',submit_status_cd as review_status_id'; put ',reviewed_by_nm'; put ',reviewed_on_dttm'; put ',cats(put(SUBMITTED_ON_DTTM,yymmddhhmmss.)) as SUBMITTED_ON'; put 'from &mpelib..mpe_submit'; put 'where submitted_by_nm="%mf_getuser()" and submit_status_cd=''SUBMITTED'''; put 'order by submitted_on_dttm desc;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getxlmaps; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getxlmaps.sas'; put '@brief Returns a list of rules and other info for a specific xlmap_id'; put '

Service Inputs

'; put '
getxlmaps_in
'; put '|XLMAP_ID|'; put '|---|'; put '|Sample|'; put '

Service Outputs

'; put '
xlmaprules
'; put 'Filtered output of the dc.MPE_XLMAP_RULES table'; put '|XLMAP_ID|XLMAP_RANGE_ID|XLMAP_SHEET|XLMAP_START|XLMAP_FINISH|'; put '|---|---|---|---|---|'; put '|Sample|Range1|Sheet1|ABSOLUTE A1| |'; put '|Sample|Range2|Sheet1|RELATIVE R[2]C[2]|ABSOLUTE H11|'; put '
xlmapinfo
'; put 'Extra info for a map id'; put '|TARGET_DS|'; put '|---|'; put '|DCXXX.MPE_XLMAP_DATA|'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'data _null_;'; put 'set work.getxlmaps_in;'; put 'putlog (_all_)(=);'; put 'call symputx(''xlmap_id'',xlmap_id);'; put 'run;'; put 'proc sql noprint;'; put 'create table work.xlmaprules as'; put 'select xlmap_id'; put ',XLMAP_RANGE_ID'; put ',XLMAP_SHEET'; put ',XLMAP_START'; put ',XLMAP_FINISH'; put 'from &mpelib..MPE_XLMAP_RULES'; put 'where &dc_dttmtfmt. lt tx_to and xlmap_id="&xlmap_id"'; put 'order by xlmap_sheet, xlmap_range_id;'; put '%global target_ds;'; put 'select XLMAP_TARGETLIBDS into: target_ds'; put 'from &mpelib..MPE_XLMAP_INFO'; put 'where &dc_dttmtfmt. lt tx_to and xlmap_id="&xlmap_id";'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'data work.xlmapinfo;'; put 'target_ds=coalescec("&target_ds","&mpelib..MPE_XLMAP_DATA");'; put 'output;'; put 'stop;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,xlmaprules)'; put '%webout(OBJ,xlmapinfo)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=loadfile; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mpe_xlmapvalidate(mperef,inds,dclib,tgtds);'; put '%local ismap;'; put 'proc sql noprint;'; put 'select count(*) into: ismap'; put 'from &dclib..mpe_xlmap_info'; put 'where XLMAP_TARGETLIBDS="&tgtds" and &dc_dttmtfmt. le TX_TO ;'; put '%if "&tgtds"="&dclib..MPE_XLMAP_DATA" or &ismap>0 %then %do;'; put 'data &inds;'; put 'set &inds;'; put 'LOAD_REF="&mperef";'; put 'run;'; put '%end;'; put '%mend mpe_xlmapvalidate;'; put '%macro mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=%sysfunc(datetime())'; put ',approvals='; put ',mperef='; put ',reason_txt='; put ',mac=mpe_loadfail.sas'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads'; put 'set STATUS=symget(''status'')'; put ', duration=&dur'; put ', processed_dttm=&dc_dttmtfmt.'; put ', approvals = symget(''approvals'')'; put ', reason_txt= symget(''reason_txt'')'; put 'where CSV_DIR="&mperef";'; put '%let syscc=666;'; put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; put '%mend mpe_loadfail;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro mpe_loader('; put 'mperef= /* name of subfolder containing the staged data */'; put ',mDebug=0 /* set to 1 for development or debugging */'; put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; put ',approver= /* allows a userid to be provided for direct approval email */'; put ',url= /* optional - url for debugging */'; put ',dlm=%str(,)'; put ',termstr=crlf'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '%put entered mpe_loader from &=_program;'; put '%put &=url;'; put '%put &=termstr;'; put '%put &=dlm;'; put '/* determine full path to CSV directory */'; put '%local now;'; put '%let now=&dc_dttmtfmt;'; put '%put &=now;'; put '/**'; put '* get full path to package (only subdirectory passed through)'; put '*/'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing: mperef mpelocapprovals)'; put ')'; put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; put '/* exit if package has already been uploaded */'; put '%local check;'; put 'proc sql noprint;'; put 'select count(*) into: check'; put 'from &mpelib..mpe_loads'; put 'where csv_dir="&mperef";'; put '%if &check %then %do;'; put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; put ',mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* get CSV directory contents */'; put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; put 'data WORK.csvs;'; put 'set WORK.getfiles;'; put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; put 'lib=upcase(scan(filename,1,''.''));'; put 'ds=upcase(scan(filename,2,''.''));'; put 'output;'; put 'end;'; put 'run;'; put '/* get table attributes */'; put 'proc sql noprint;'; put 'create table WORK.sumo_tables as'; put 'select a.filename, b.*'; put 'from WORK.csvs a'; put 'left join &mpelib..mpe_tables b'; put 'on a.lib=b.libref'; put 'and a.ds=b.dsn'; put 'where b.tx_from le &now'; put 'and &now lt b.tx_to;'; put '/* define user as meta user if available */'; put '%local user;'; put '%let user=%mf_getuser();'; put '/* check if there is actually a table to load */'; put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; put '%let msg=Table not registered in &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=&msg'; put ',now=&now'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put 'proc sql;'; put 'insert into &mpelib..mpe_loads'; put 'set USER_NM="&user"'; put ',STATUS=''IN PROGRESS'''; put ',CSV_dir="&mperef"'; put ',PROCESSED_DTTM=&now;'; put '/* import CSV */'; put '%let droplist=;'; put '%let attrib=;'; put '%let droplist=;'; put '%let libref=;'; put '%let DS=;'; put '/* get table info */'; put 'data _null_;'; put 'set sumo_tables;'; put 'libds=upcase(cats(libref,''.'',dsn));'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'is_fmt=1;'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'call symputx(''libds'',libds);'; put 'call symputx(''FNAME'',filename);'; put 'call symputx(''LIBREF'',libref);'; put 'call symputx(''DS'',dsn);'; put 'call symputx(''LOADTYPE'',loadtype);'; put 'call symputx(''BUSKEY'',buskey);'; put 'call symputx(''VAR_TXFROM'',var_txfrom);'; put 'call symputx(''VAR_TXTO'',var_txto);'; put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; put 'call symputx(''VAR_BUSTO'',var_busto);'; put 'call symputx(''VAR_PROCESSED'',var_processed);'; put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; put 'call symputx(''NOTES'',NOTES);'; put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; put 'put (_all_)(=);'; put 'stop;'; put 'run;'; put '%if %length(&ds)=0 %then %do;'; put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* export format catalog */'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* user must have EDIT access to load a table */'; put '%mpe_accesscheck(&orig_libds'; put ',outds=work.sumo_access'; put ',user=&user'; put ',access_level=EDIT )'; put '%put exiting accesscheck;'; put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; put '%mpe_loadfail('; put 'status=UNAUTHORISED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; put '/* get the variables from the CSV */'; put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; put 'input;'; put 'length infile $32767;'; put 'infile=compress(_infile_,''"'',);'; put 'infile=compress(infile,"''",);'; put 'format name $32.;'; put 'putlog ''received vars: '' infile;'; put 'call symputx(''received_vars'',infile,''l'');'; put 'do varnum=1 to countw(infile,"&dlm");'; put '/* keep writeable chars */'; put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; put 'end;'; put 'stop;'; put 'run;'; put '%put received_vars = &received_vars;'; put '%dc_assignlib(WRITE,&libref)'; put '/* get list of variables and their formats */'; put 'proc contents noprint data=&libds'; put 'out=vars(keep=name type length varnum format:);'; put 'run;'; put 'data vars(keep=name type length varnum format);'; put 'set vars(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put 'format2=upcase(format2);'; put '/* not interested in transaction or processing dates'; put '(append table must be supplied without them) */'; put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; put ',"_____DELETE__THIS__RECORD_____");'; put 'if type2 in (2,6) then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else format=cats(format2,max(formatl,length),''.'');'; put 'type=''char'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if format2=:''DATETIME'' or format2=:''E8601DT'' then do;'; put 'format=''DATETIME19.'';'; put 'end;'; put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; put 'then do;'; put 'format=''DATE9.'';'; put 'end;'; put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; put '/*'; put 'else if format2=:''DATETIME'' or format2=:''DATE'' or format2=:''DDMMYY'''; put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'' then do;'; put '*date or datetime format so use original ;'; put 'dsid=open("&libref..&ds");'; put 'vnum=varnum(dsid,name);'; put 'format=varfmt(dsid,vnum);'; put 'dsid=close(dsid);'; put 'end;'; put '*/'; put 'else do;'; put 'if formatl=0 then formatl=length;'; put 'format=cats(format2,formatl,''.'',formatd);'; put 'end;'; put 'type=''num'';'; put 'end;'; put 'put (_all_)(=);'; put 'run;'; put '/* build attrib statement */'; put 'data vars_attrib;'; put 'length attrib_statement $32767 type2 $20;'; put 'set vars end=lastobs;'; put 'retain attrib_statement;'; put 'if type=''char'' then type2=''$'';'; put 'str1=catx('' '',name,''length='',cats(type2,length));'; put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; put 'run;'; put '/* build input statement - first get vars in right order'; put 'and join with target formats*/'; put 'proc sql noprint;'; put 'create table vars_csv2 as'; put 'select b.*'; put 'from vars_csv1 a'; put 'left join vars_attrib b'; put 'on a.name=b.name'; put 'order by a.varnum;'; put '/* make sure that the variables we are importing, actually'; put 'exist on the target table */'; put '/** edit - extra variables are now simply ignored'; put '%local very_bad_vars;'; put 'select name into: very_bad_vars separated by '' '''; put 'from vars_csv1'; put 'where name not in (select name from vars)'; put 'and name ne "_____DELETE__THIS__RECORD_____";'; put '%if %length(&very_bad_vars) > 0 %then %do;'; put '%let msg=%str(WARNING: The following vars are not defined in %trim('; put ')&libref..&ds, yet they exist in &csv_dir/&ds..csv: &very_bad_vars);'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '**/'; put '/* now build input statement */'; put 'data final_check;'; put 'set vars_csv2 end=lastobs;'; put 'length input_statement $32767 type2 $20 droplist $32767;'; put 'retain input_statement droplist;'; put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; put 'if name in (''QUOTE_DTTM'') then do;'; put 'name=cats(name,''2'');'; put 'droplist=catx('' '',trim(droplist),name);'; put 'type2=''$20.'';/* converted below */'; put 'end;'; put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; put 'else if name='''' then do;/* additional vars in input data */'; put 'name=''_____DELETE__THIS__VARIABLE_____'';'; put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; put 'type2=''$1.'';'; put 'end;'; put 'else type2=''best32.'';'; put '* else type2=cats(length,''.'');'; put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; put 'if lastobs then do;'; put 'call symputx(''INPUT'', input_statement,''L'');'; put 'if trim(droplist) ne '''' then'; put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; put 'end;'; put 'run;'; put '%let mpeloadstop=0;'; put 'data work.STAGING_DS;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; put 'attrib &attrib ;'; put 'if _n_=1 then call missing (of _all_);'; put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; put '%end;'; put 'if _error_ ne 0 then do;'; put 'putlog _infile_;'; put 'call symputx(''mpeloadstop'',_n_);'; put 'stop;'; put 'end;'; put '/* remove all blank rows */'; put 'if compress(cats(of _all_),''.'')='' '' then delete;'; put 'run;'; put '%if &mpeloadstop>0 %then %do;'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put '%put redirecting log output to capture return message;'; put '%put currentloc=&logloc;'; put 'filename tmp temp;'; put 'proc printto log=tmp;run;'; put 'data _null_;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; put 'missover termstr=&termstr;'; put 'attrib &attrib ;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; put '%then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put 'if _error_ then stop;'; put 'run;'; put '/* get log back */'; put 'proc printto log=&logloc;run;'; put 'data _null_; infile tmp; input; putlog _infile_;run;'; put '/* scan log for invalid data warning */'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; put 'msg1=_infile_;'; put 'input;'; put 'msg2=_infile_;'; put 'input;'; put 'msg3=_infile_;'; put 'input;'; put 'msg4=_infile_;'; put 'input;'; put 'msg5=_infile_;'; put 'url=symget(''url'');'; put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; put 'call symputx(''msg'',msg);'; put 'stop;'; put 'end;'; put 'run;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* check that the table is unique on PK */'; put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; put '%local duplist;'; put 'data _null_;'; put 'set work.mpe_dups;'; put '%do i=1 %to %sysfunc(countw(&pk));'; put '%let iWord=%scan(&pk,&i);'; put 'call symputx(''duplist'',symget(''duplist'')!!'; put '" &iWord="!!cats(&iWord));'; put '%end;'; put 'run;'; put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; put ')(&pk) \n Please remove the duplicates and try again. %trim('; put ')\n &duplist \n ;'; put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%if &syscc gt 4 %then %do;'; put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* If a Complex Excel Upload, needs to have the load ref added to the table */'; put '%mpe_xlmapvalidate(&mperef,work.staging_ds,&mpelib,&orig_libds)'; put '/* Run the Post Edit Hook prior to creation of staging folder */'; put '%mpe_runhook(POST_EDIT_HOOK)'; put '/* stop if err */'; put '%if &syscc gt 4 %then %do;'; put '%let msg=ERR in post edit hook (&post_edit_hook);'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/**'; put '* send to approve process'; put '*/'; put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; put '/* send dataset to approvals subfolder with same name as subfolder */'; put 'libname approval "&mpelocapprovals/&mperef";'; put 'data approval.&mperef;'; put 'set work.staging_ds;'; put 'run;'; put 'proc export data=approval.&mperef'; put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; put 'dbms=csv'; put 'replace;'; put 'run;'; put '/* update the control dataset with relevant info */'; put 'data append_app;'; put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; put 'call missing (of _all_);'; put 'TABLE_ID="&mperef";'; put 'submit_status_cd=''SUBMITTED'';'; put 'submitted_by_nm="%mf_getuser()";'; put 'base_lib="&libref";'; put 'base_ds="&ds";'; put 'submitted_on_dttm=&now;'; put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; put 'reviewed_by_nm='''';'; put 'reviewed_on_dttm=.;'; put 'run;'; put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; put 'ref=%str(&mperef update in &_program),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base= &mpelib..mpe_submit data=append_app;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* send email to REVIEW members */'; put '%put sending mpe_alerts;'; put '%mpe_alerts(alert_event=SUBMITTED'; put ', alert_lib=&libref'; put ', alert_ds=&ds'; put ', dsid=&mperef'; put ')'; put '/* DISABLE EMAIL FOR NOW'; put '%let b2=REASON: %quote(&submitted_reason_txt);'; put '%local URLNOTES;'; put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; put '%let b3=%str(Click to review / approve: )%trim('; put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; put '%let b4=%str(Reference ID: &mperef);'; put '*/'; put '%put mpe_loader finishing up with syscc=&syscc;'; put '%if &syscc le 4 %then %do;'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'putlog ''Updating mpe_loads with the following query:'';'; put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; put 'putlog " , duration=" dur;'; put 'putlog " , processed_dttm=" now;'; put 'putlog " , approvals = ''&libref..&ds''";'; put 'putlog " where CSV_DIR=''&mperef'';";'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; put ', duration=&dur'; put ', processed_dttm=&now'; put ', approvals = "&libref..&ds"'; put 'where CSV_DIR="&mperef";'; put '%end;'; put '%else %do;'; put '%mpe_loadfail('; put 'status="FAILED - &syscc"'; put ',now=&now'; put ',approvals=&libref..&ds'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '%mend mpe_loader;'; put '%macro mp_cleancsv(in=NOTPROVIDED,out=NOTPROVIDED,qchar=''22''x);'; put '%if "&in"="NOTPROVIDED" or "&out"="NOTPROVIDED" %then %do;'; put '%put %str(ERR)OR: Please provide valid input (&in) & output (&out) locations;'; put '%return;'; put '%end;'; put '/* presence of a period(.) indicates a physical location */'; put '%if %index(&in,.) %then %let in="&in";'; put '%if %index(&out,.) %then %let out="&out";'; put '/**'; put '* convert all cr and crlf within quotes to lf'; put '* convert all other cr or lf to crlf'; put '*/'; put 'data _null_;'; put 'infile &in recfm=n ;'; put 'file &out recfm=n;'; put 'retain isq iscrlf 0 qchar &qchar;'; put 'input inchar $char1. ;'; put 'if inchar=qchar then isq = mod(isq+1,2);'; put 'if isq then do;'; put '/* inside a quote change cr and crlf to lf */'; put 'if inchar=''0D''x then do;'; put 'put ''0A''x;'; put 'input inchar $char1.;'; put 'if inchar ne ''0A''x then do;'; put 'put inchar $char1.;'; put 'if inchar=qchar then isq = mod(isq+1,2);'; put 'end;'; put 'end;'; put 'else put inchar $char1.;'; put 'end;'; put 'else do;'; put '/* outside a quote, change cr and lf to crlf */'; put 'if inchar=''0D''x then do;'; put 'crblank:'; put 'put ''0D0A''x;'; put 'input inchar $char1.;'; put 'if inchar=''0D''x then do;'; put '/* multiple CR indicates CR formatted file with blank lines */'; put 'goto crblank;'; put 'end;'; put 'else if inchar ne ''0A''x then do;'; put 'put inchar $char1.;'; put 'if inchar=qchar then isq = mod(isq+1,2);'; put 'end;'; put 'end;'; put 'else if inchar=''0A''x then put ''0D0A''x;'; put 'else put inchar $char1.;'; put 'end;'; put 'run;'; put '%mend mp_cleancsv;'; put '/** @endcond */'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file loadfile.sas'; put '@brief Loads a file'; put '@details'; put '

SAS Macros

'; put '@li mddl_sas_cntlout.sas'; put '@li mp_abort.sas'; put '@li mf_getplatform.sas'; put '@li mf_getuser.sas'; put '@li mf_getvarlist.sas'; put '@li mf_mkdir.sas'; put '@li mf_verifymacvars.sas'; put '@li mf_wordsinstr1butnotstr2.sas'; put '@li dc_assignlib.sas'; put '@li mpe_getgroups.sas'; put '@li mp_lockfilecheck.sas'; put '@li mpe_loader.sas'; put '@li mp_cleancsv.sas'; put '@li mp_binarycopy.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global table dlm;'; put '%mpeinit(fetch=NO)'; put '%global _WEBIN_FILENAME1 _WEBIN_FILENAME2'; put '_WEBIN_FILEREF _WEBIN_FILEREF1 _WEBIN_FILEREF2;'; put '%macro load();'; put '%if %mf_getplatform()=SASVIYA %then %do;'; put '%global _webin_fileuri _webin_fileuri1 _webin_fileuri2;'; put '%let _webin_fileuri1=%sysfunc(coalescec(&_webin_fileuri1,&_webin_fileuri));'; put '%if "&_webin_fileuri1" ne "" %then %do;'; put '%put &=_webin_fileuri1;'; put 'filename sjfref1 filesrvc "&_webin_fileuri1";'; put '%let _WEBIN_FILEREF1=sjfref1;'; put '%end;'; put '%if "&_webin_fileuri2" ne "" %then %do;'; put '%put &=_webin_fileuri2;'; put 'filename sjfref2 filesrvc "&_webin_fileuri2";'; put '%let _WEBIN_FILEREF2=sjfref2;'; put '%end;'; put '%end;'; put '%mend load;'; put '%load()'; put '%let _WEBIN_FILENAME1=%sysfunc(coalescec(&_WEBIN_FILENAME1,&_WEBIN_FILENAME));'; put '%let _WEBIN_FILEREF1=%sysfunc(coalescec(&_WEBIN_FILEREF1,&_WEBIN_FILEREF));'; put '%let abort=0;'; put '/* we do not know if the excel file will be first or second fileref */'; put 'data _null_;'; put 'ext1=upcase(scan(symget(''_WEBIN_FILENAME1''),-1,''.''));'; put 'ext2=upcase(scan(symget(''_WEBIN_FILENAME2''),-1,''.''));'; put 'if ext1=''CSV'' then do;'; put 'csvname=symget(''_WEBIN_FILENAME1'');'; put 'csvref=symget(''_WEBIN_FILEREF1'');'; put 'xlsname=symget(''_WEBIN_FILENAME2'');'; put 'xlsref=symget(''_WEBIN_FILEREF2'');'; put 'end;'; put 'else if ext2=''CSV'' then do;'; put 'csvname=symget(''_WEBIN_FILENAME2'');'; put 'csvref=symget(''_WEBIN_FILEREF2'');'; put 'xlsname=symget(''_WEBIN_FILENAME1'');'; put 'xlsref=symget(''_WEBIN_FILEREF1'');'; put 'end;'; put 'else call symputx(''abort'',1);'; put 'call symputx(''csvname'',csvname);'; put 'call symputx(''csvref'',csvref);'; put 'call symputx(''xlsname'',xlsname);'; put 'call symputx(''xlsref'',coalescec(xlsref,''0''));'; put 'run;'; put '%mp_abort(iftrue= (&abort=1)'; put ',mac=&_program'; put ',msg=%str(File "&csvname" or "&xlsname" must be a CSV!'; put '(Comma separated with .csv extension))'; put ')'; put '%let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: table)'; put ')'; put '%let table=%upcase(%trim(&table));'; put '/* load parameters */'; put 'data _null_;'; put 'libds=upcase(symget(''table''));'; put 'call symputx(''orig_libds'',libds);'; put 'call symputx(''orig_lib'',scan(libds,1,''.''));'; put 'call symputx(''orig_ds'',scan(libds,2,''.''));'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; put 'is_fmt=1;'; put 'end;'; put 'else call symputx(''libds'',libds);'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put 'run;'; put '/* check that the user has the requisite access */'; put '%mpe_getgroups(user=&user,outds=groups)'; put 'proc sql;'; put 'create table accesscheck as'; put 'select * from groups'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="EDIT"'; put 'and ('; put '(libref="&orig_lib" and dsn="&orig_ds")'; put 'or (libref="&orig_lib" and dsn="*ALL*")'; put 'or (libref="*ALL*" and dsn="*ALL*")'; put 'or (libref="*ALL*" and dsn="&orig_ds")'; put '));'; put '%let nobs=;'; put 'select count(*) into: nobs from &syslast;'; put '%mp_abort(iftrue= (&nobs=0)'; put ',mac=&sysmacroname'; put ',msg=%str(&user not authorised to load &orig_libds per &mpelib..mpe_security)'; put ')'; put '%dc_assignlib(WRITE,&orig_lib)'; put '%mp_abort(iftrue= (&syscc ge 4)'; put ',mac=loadfile'; put ',msg=%str(Issue assigning library &orig_lib)'; put ')'; put '%global txfrom txto processed rk;'; put 'data _null_;'; put 'set &mpelib..MPE_TABLES;'; put 'where libref="&orig_lib" and dsn="&orig_ds";'; put 'call symputx(''txfrom'',var_txfrom);'; put 'call symputx(''txto'',var_txto);'; put 'call symputx(''processed'',var_processed);'; put 'if not missing(RK_UNDERLYING) then call symputx(''rk'',buskey);'; put 'run;'; put '%mp_lockfilecheck(libds=&orig_libds)'; put 'data compare;'; put 'set &libds(drop=&txfrom &txto &processed &rk);'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc line 80)'; put ')'; put '/* get line terminator, assume it''s the first cr, lf, or crlf */'; put 'data _null_;'; put 'length text $32767 term $4;'; put 'call missing (of _all_);'; put 'fid=fopen("&csvref",''I'',32767,''b'');'; put 'rc=fread(fid);'; put 'rc2=fget(fid,text,32767);'; put 'cr=find(text,''0D''x );'; put 'lf=find(text,''0A''x );'; put 'crlf=find(text,''0D0A''x);'; put 'rc=fclose(fid);'; put 'if crlf>0 & cr0 & crlf0 & cr>0 & lf0 then term=''LF'';'; put 'else term=''CR'';'; put 'call symputx(''termstr'',term);'; put 'run;'; put 'data _null_;'; put 'infile &csvref lrecl=32000 dsd termstr=&termstr;'; put 'input;'; put 'length incols_unsorted $32000 dlm $1;'; put 'incols_unsorted=compress(upcase(_infile_),"''"!!''"'');'; put '/* dlm has length 1 so will be the first non alpha / digit char */'; put '/* expectation is that there will not be any crazy characters in first col! */'; put 'dlm=compress(incols_unsorted,''_ '',''ad'');'; put 'incols_unsorted=compress(incols_unsorted,dlm!!''_'',''kado'');'; put 'incols_unsorted=tranwrd(incols_unsorted,dlm,'' '');'; put 'call symputx(''incols_unsorted'',incols_unsorted);'; put 'call symputx(''dlm'',dlm);'; put 'putlog incols_unsorted=;'; put 'putlog dlm=;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc line 99)'; put ')'; put '%let basecols=%upcase(%mf_getvarlist(work.compare,dlm=%str( )));'; put '%let missing_cols=%trim('; put '%mf_wordsInStr1ButNotStr2('; put 'Str1=&basecols'; put ',Str2=&incols_unsorted'; put '));'; put '%let msg='; put 'Expected cols: &basecols'; put '
Received cols: &incols_unsorted'; put '
Missing cols: &missing_cols'; put ';'; put '%mp_abort(iftrue= (%length(%trim(&missing_cols)) > 1 or &syscc ne 0)'; put ',mac=mpestp_loadfile.sas'; put ',msg=%superq(msg)'; put ')'; put '%let msg=0;'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; put 'RUN;'; put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; put '/* Create package folder and redirect the log */'; put '%let dir=&mpelocapprovals/&mperef;'; put '%mf_mkdir(&dir)'; put '/* clean embedded line breaks and force CRLF line endings */'; put '%mp_cleancsv(in=&csvref, out=&dir/&orig_libds..csv)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(issue in mp_cleancsv)'; put ')'; put '%put; %put; %put log is being redirected;'; put '%let url=_program=%substr(&_program'; put ',1,%length(&_program)-8)getlog%nrstr(&)table=&mperef;'; put '%put to retrieve, visit this url:; %put;%put;'; put '%put &url;'; put '%put;'; put '/* proc printto log="&dir/weblog.txt";run; */'; put 'libname approve "&dir";'; put 'options mprint;'; put '%put &=mperef;'; put '%put &=termstr;'; put '%put &=dlm;'; put '%mpe_loader(mperef=&mperef'; put ',submitted_reason_txt=%quote(File upload: %superq(csvname))'; put ',dlm=%superq(dlm)'; put ',url=%superq(url)'; put ',termstr=CRLF'; put ',dc_dttmtfmt=&dc_dttmtfmt'; put ')'; put '%mp_abort(mode=INCLUDE)'; put '%mp_abort('; put 'iftrue= (%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error)) ne 0)'; put ',mac=&_program'; put ',msg=%nrstr(Problem occurred in &sysmacroname (mf_abort.error file found))'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mpestp_loadfile.sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename outref "&dir/BKP_&xlsname";'; put '%mp_binarycopy(iftrue=("&xlsref" ne "0"),inref=&xlsref,outref=outref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc when backing up source file &xlsname)'; put ')'; put 'data sasparams;'; put 'STATUS=''SUCCESS'';'; put 'DSID="&mperef";'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,sasparams)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=stagedata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mpe_xlmapvalidate(mperef,inds,dclib,tgtds);'; put '%local ismap;'; put 'proc sql noprint;'; put 'select count(*) into: ismap'; put 'from &dclib..mpe_xlmap_info'; put 'where XLMAP_TARGETLIBDS="&tgtds" and &dc_dttmtfmt. le TX_TO ;'; put '%if "&tgtds"="&dclib..MPE_XLMAP_DATA" or &ismap>0 %then %do;'; put 'data &inds;'; put 'set &inds;'; put 'LOAD_REF="&mperef";'; put 'run;'; put '%end;'; put '%mend mpe_xlmapvalidate;'; put '%macro mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=%sysfunc(datetime())'; put ',approvals='; put ',mperef='; put ',reason_txt='; put ',mac=mpe_loadfail.sas'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads'; put 'set STATUS=symget(''status'')'; put ', duration=&dur'; put ', processed_dttm=&dc_dttmtfmt.'; put ', approvals = symget(''approvals'')'; put ', reason_txt= symget(''reason_txt'')'; put 'where CSV_DIR="&mperef";'; put '%let syscc=666;'; put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; put '%mend mpe_loadfail;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro mpe_loader('; put 'mperef= /* name of subfolder containing the staged data */'; put ',mDebug=0 /* set to 1 for development or debugging */'; put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; put ',approver= /* allows a userid to be provided for direct approval email */'; put ',url= /* optional - url for debugging */'; put ',dlm=%str(,)'; put ',termstr=crlf'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '%put entered mpe_loader from &=_program;'; put '%put &=url;'; put '%put &=termstr;'; put '%put &=dlm;'; put '/* determine full path to CSV directory */'; put '%local now;'; put '%let now=&dc_dttmtfmt;'; put '%put &=now;'; put '/**'; put '* get full path to package (only subdirectory passed through)'; put '*/'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing: mperef mpelocapprovals)'; put ')'; put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; put '/* exit if package has already been uploaded */'; put '%local check;'; put 'proc sql noprint;'; put 'select count(*) into: check'; put 'from &mpelib..mpe_loads'; put 'where csv_dir="&mperef";'; put '%if &check %then %do;'; put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; put ',mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* get CSV directory contents */'; put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; put 'data WORK.csvs;'; put 'set WORK.getfiles;'; put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; put 'lib=upcase(scan(filename,1,''.''));'; put 'ds=upcase(scan(filename,2,''.''));'; put 'output;'; put 'end;'; put 'run;'; put '/* get table attributes */'; put 'proc sql noprint;'; put 'create table WORK.sumo_tables as'; put 'select a.filename, b.*'; put 'from WORK.csvs a'; put 'left join &mpelib..mpe_tables b'; put 'on a.lib=b.libref'; put 'and a.ds=b.dsn'; put 'where b.tx_from le &now'; put 'and &now lt b.tx_to;'; put '/* define user as meta user if available */'; put '%local user;'; put '%let user=%mf_getuser();'; put '/* check if there is actually a table to load */'; put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; put '%let msg=Table not registered in &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=&msg'; put ',now=&now'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put 'proc sql;'; put 'insert into &mpelib..mpe_loads'; put 'set USER_NM="&user"'; put ',STATUS=''IN PROGRESS'''; put ',CSV_dir="&mperef"'; put ',PROCESSED_DTTM=&now;'; put '/* import CSV */'; put '%let droplist=;'; put '%let attrib=;'; put '%let droplist=;'; put '%let libref=;'; put '%let DS=;'; put '/* get table info */'; put 'data _null_;'; put 'set sumo_tables;'; put 'libds=upcase(cats(libref,''.'',dsn));'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'is_fmt=1;'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'call symputx(''libds'',libds);'; put 'call symputx(''FNAME'',filename);'; put 'call symputx(''LIBREF'',libref);'; put 'call symputx(''DS'',dsn);'; put 'call symputx(''LOADTYPE'',loadtype);'; put 'call symputx(''BUSKEY'',buskey);'; put 'call symputx(''VAR_TXFROM'',var_txfrom);'; put 'call symputx(''VAR_TXTO'',var_txto);'; put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; put 'call symputx(''VAR_BUSTO'',var_busto);'; put 'call symputx(''VAR_PROCESSED'',var_processed);'; put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; put 'call symputx(''NOTES'',NOTES);'; put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; put 'put (_all_)(=);'; put 'stop;'; put 'run;'; put '%if %length(&ds)=0 %then %do;'; put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* export format catalog */'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* user must have EDIT access to load a table */'; put '%mpe_accesscheck(&orig_libds'; put ',outds=work.sumo_access'; put ',user=&user'; put ',access_level=EDIT )'; put '%put exiting accesscheck;'; put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; put '%mpe_loadfail('; put 'status=UNAUTHORISED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; put '/* get the variables from the CSV */'; put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; put 'input;'; put 'length infile $32767;'; put 'infile=compress(_infile_,''"'',);'; put 'infile=compress(infile,"''",);'; put 'format name $32.;'; put 'putlog ''received vars: '' infile;'; put 'call symputx(''received_vars'',infile,''l'');'; put 'do varnum=1 to countw(infile,"&dlm");'; put '/* keep writeable chars */'; put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; put 'end;'; put 'stop;'; put 'run;'; put '%put received_vars = &received_vars;'; put '%dc_assignlib(WRITE,&libref)'; put '/* get list of variables and their formats */'; put 'proc contents noprint data=&libds'; put 'out=vars(keep=name type length varnum format:);'; put 'run;'; put 'data vars(keep=name type length varnum format);'; put 'set vars(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put 'format2=upcase(format2);'; put '/* not interested in transaction or processing dates'; put '(append table must be supplied without them) */'; put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; put ',"_____DELETE__THIS__RECORD_____");'; put 'if type2 in (2,6) then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else format=cats(format2,max(formatl,length),''.'');'; put 'type=''char'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if format2=:''DATETIME'' or format2=:''E8601DT'' then do;'; put 'format=''DATETIME19.'';'; put 'end;'; put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; put 'then do;'; put 'format=''DATE9.'';'; put 'end;'; put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; put '/*'; put 'else if format2=:''DATETIME'' or format2=:''DATE'' or format2=:''DDMMYY'''; put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'' then do;'; put '*date or datetime format so use original ;'; put 'dsid=open("&libref..&ds");'; put 'vnum=varnum(dsid,name);'; put 'format=varfmt(dsid,vnum);'; put 'dsid=close(dsid);'; put 'end;'; put '*/'; put 'else do;'; put 'if formatl=0 then formatl=length;'; put 'format=cats(format2,formatl,''.'',formatd);'; put 'end;'; put 'type=''num'';'; put 'end;'; put 'put (_all_)(=);'; put 'run;'; put '/* build attrib statement */'; put 'data vars_attrib;'; put 'length attrib_statement $32767 type2 $20;'; put 'set vars end=lastobs;'; put 'retain attrib_statement;'; put 'if type=''char'' then type2=''$'';'; put 'str1=catx('' '',name,''length='',cats(type2,length));'; put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; put 'run;'; put '/* build input statement - first get vars in right order'; put 'and join with target formats*/'; put 'proc sql noprint;'; put 'create table vars_csv2 as'; put 'select b.*'; put 'from vars_csv1 a'; put 'left join vars_attrib b'; put 'on a.name=b.name'; put 'order by a.varnum;'; put '/* make sure that the variables we are importing, actually'; put 'exist on the target table */'; put '/** edit - extra variables are now simply ignored'; put '%local very_bad_vars;'; put 'select name into: very_bad_vars separated by '' '''; put 'from vars_csv1'; put 'where name not in (select name from vars)'; put 'and name ne "_____DELETE__THIS__RECORD_____";'; put '%if %length(&very_bad_vars) > 0 %then %do;'; put '%let msg=%str(WARNING: The following vars are not defined in %trim('; put ')&libref..&ds, yet they exist in &csv_dir/&ds..csv: &very_bad_vars);'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '**/'; put '/* now build input statement */'; put 'data final_check;'; put 'set vars_csv2 end=lastobs;'; put 'length input_statement $32767 type2 $20 droplist $32767;'; put 'retain input_statement droplist;'; put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; put 'if name in (''QUOTE_DTTM'') then do;'; put 'name=cats(name,''2'');'; put 'droplist=catx('' '',trim(droplist),name);'; put 'type2=''$20.'';/* converted below */'; put 'end;'; put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; put 'else if name='''' then do;/* additional vars in input data */'; put 'name=''_____DELETE__THIS__VARIABLE_____'';'; put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; put 'type2=''$1.'';'; put 'end;'; put 'else type2=''best32.'';'; put '* else type2=cats(length,''.'');'; put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; put 'if lastobs then do;'; put 'call symputx(''INPUT'', input_statement,''L'');'; put 'if trim(droplist) ne '''' then'; put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; put 'end;'; put 'run;'; put '%let mpeloadstop=0;'; put 'data work.STAGING_DS;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; put 'attrib &attrib ;'; put 'if _n_=1 then call missing (of _all_);'; put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; put '%end;'; put 'if _error_ ne 0 then do;'; put 'putlog _infile_;'; put 'call symputx(''mpeloadstop'',_n_);'; put 'stop;'; put 'end;'; put '/* remove all blank rows */'; put 'if compress(cats(of _all_),''.'')='' '' then delete;'; put 'run;'; put '%if &mpeloadstop>0 %then %do;'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put '%put redirecting log output to capture return message;'; put '%put currentloc=&logloc;'; put 'filename tmp temp;'; put 'proc printto log=tmp;run;'; put 'data _null_;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; put 'missover termstr=&termstr;'; put 'attrib &attrib ;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; put '%then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put 'if _error_ then stop;'; put 'run;'; put '/* get log back */'; put 'proc printto log=&logloc;run;'; put 'data _null_; infile tmp; input; putlog _infile_;run;'; put '/* scan log for invalid data warning */'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; put 'msg1=_infile_;'; put 'input;'; put 'msg2=_infile_;'; put 'input;'; put 'msg3=_infile_;'; put 'input;'; put 'msg4=_infile_;'; put 'input;'; put 'msg5=_infile_;'; put 'url=symget(''url'');'; put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; put 'call symputx(''msg'',msg);'; put 'stop;'; put 'end;'; put 'run;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* check that the table is unique on PK */'; put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; put '%local duplist;'; put 'data _null_;'; put 'set work.mpe_dups;'; put '%do i=1 %to %sysfunc(countw(&pk));'; put '%let iWord=%scan(&pk,&i);'; put 'call symputx(''duplist'',symget(''duplist'')!!'; put '" &iWord="!!cats(&iWord));'; put '%end;'; put 'run;'; put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; put ')(&pk) \n Please remove the duplicates and try again. %trim('; put ')\n &duplist \n ;'; put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%if &syscc gt 4 %then %do;'; put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* If a Complex Excel Upload, needs to have the load ref added to the table */'; put '%mpe_xlmapvalidate(&mperef,work.staging_ds,&mpelib,&orig_libds)'; put '/* Run the Post Edit Hook prior to creation of staging folder */'; put '%mpe_runhook(POST_EDIT_HOOK)'; put '/* stop if err */'; put '%if &syscc gt 4 %then %do;'; put '%let msg=ERR in post edit hook (&post_edit_hook);'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/**'; put '* send to approve process'; put '*/'; put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; put '/* send dataset to approvals subfolder with same name as subfolder */'; put 'libname approval "&mpelocapprovals/&mperef";'; put 'data approval.&mperef;'; put 'set work.staging_ds;'; put 'run;'; put 'proc export data=approval.&mperef'; put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; put 'dbms=csv'; put 'replace;'; put 'run;'; put '/* update the control dataset with relevant info */'; put 'data append_app;'; put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; put 'call missing (of _all_);'; put 'TABLE_ID="&mperef";'; put 'submit_status_cd=''SUBMITTED'';'; put 'submitted_by_nm="%mf_getuser()";'; put 'base_lib="&libref";'; put 'base_ds="&ds";'; put 'submitted_on_dttm=&now;'; put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; put 'reviewed_by_nm='''';'; put 'reviewed_on_dttm=.;'; put 'run;'; put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; put 'ref=%str(&mperef update in &_program),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base= &mpelib..mpe_submit data=append_app;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* send email to REVIEW members */'; put '%put sending mpe_alerts;'; put '%mpe_alerts(alert_event=SUBMITTED'; put ', alert_lib=&libref'; put ', alert_ds=&ds'; put ', dsid=&mperef'; put ')'; put '/* DISABLE EMAIL FOR NOW'; put '%let b2=REASON: %quote(&submitted_reason_txt);'; put '%local URLNOTES;'; put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; put '%let b3=%str(Click to review / approve: )%trim('; put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; put '%let b4=%str(Reference ID: &mperef);'; put '*/'; put '%put mpe_loader finishing up with syscc=&syscc;'; put '%if &syscc le 4 %then %do;'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'putlog ''Updating mpe_loads with the following query:'';'; put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; put 'putlog " , duration=" dur;'; put 'putlog " , processed_dttm=" now;'; put 'putlog " , approvals = ''&libref..&ds''";'; put 'putlog " where CSV_DIR=''&mperef'';";'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; put ', duration=&dur'; put ', processed_dttm=&now'; put ', approvals = "&libref..&ds"'; put 'where CSV_DIR="&mperef";'; put '%end;'; put '%else %do;'; put '%mpe_loadfail('; put 'status="FAILED - &syscc"'; put ',now=&now'; put ',approvals=&libref..&ds'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '%mend mpe_loader;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mpe_filtermaster(mode,libds,'; put 'dclib=,'; put 'filter_rk=-1,'; put 'outref=0,'; put 'outds=work.query'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%let mode=%upcase(&mode);'; put '%let libds=%upcase(&libds);'; put '%mp_abort(iftrue= ('; put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid MODE: &mode)'; put ')'; put '%mp_abort(iftrue= (&outref = 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Please provide a fileref!)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename &outref temp;'; put '/* ensure outputs exist */'; put 'data _null_;'; put 'file &outref;'; put 'put '' '';'; put 'run;'; put 'data &outds;'; put 'set &dclib..mpe_filtersource;'; put 'stop;'; put 'run;'; put '/**'; put '* Deal with FILTER_RK first'; put '*/'; put '%if &filter_rk gt 0 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''( ''@@;'; put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; put 'call symputx(''filter_hash'',filter_hash,''l'');'; put 'run;'; put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; put 'by filter_line;'; put 'run;'; put '%mp_filtergenerate(&outds,outref=&outref)'; put '%end;'; put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; put '%local varfrom varto;'; put '%let varfrom=0;'; put 'proc sql;'; put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; put 'from &dclib..MPE_TABLES'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; put '%put &=varfrom;'; put '%put &=varto;'; put '/**'; put '* Check if the date variables were mentioned in the query'; put '* This is a trigger for serving a historical view instead of current'; put '* we skip this part when checking an ULOAD as there are no date vars'; put '*/'; put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; put '%local validityvars;'; put 'proc sql;'; put 'select count(*) into: validityvars'; put 'from &outds'; put 'where variable_nm in ("&varfrom","&varto");'; put '%if &validityvars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'length filter_text $32767;'; put 'varfrom=symget(''varfrom'');'; put 'varto=symget(''varto'');'; put 'filter_text=catx('' '','; put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; put ');'; put 'if &filter_rk > 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mcf_init(func'; put ')/*/STORE SOURCE*/;'; put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; put '%global SASJS_PREFIX;'; put '%let SASJS_PREFIX=SASJS;'; put '%end;'; put '%let func=%upcase(&func);'; put '/* the / character is just a seperator */'; put '%global &sasjs_prefix._FUNCTIONS;'; put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; put '1'; put '%return;'; put '%end;'; put '%else %do;'; put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; put '0'; put '%end;'; put '%mend mcf_init;'; put '%macro mcf_getfmttype(wrap=NO'; put ',insert_cmplib=DEPRECATED'; put ',lib=WORK'; put ',cat=SASJS'; put ',pkg=UTILS'; put ')/*/STORE SOURCE*/;'; put '%local i var cmpval found;'; put '%if %mcf_init(mcf_getfmttype)=1 %then %return;'; put '%if &wrap=YES %then %do;'; put 'proc fcmp outlib=&lib..&cat..&pkg;'; put '%end;'; put 'function mcf_getfmttype(fmtnm $) $8;'; put 'if substr(fmtnm,1,1)=''$'' then return(''CHAR'');'; put 'else do;'; put '/* extract NAME */'; put 'length fmt $32;'; put 'fmt=scan(fmtnm,1,''.'');'; put 'do while ('; put 'substr(fmt,length(fmt),1) in (''1'',''2'',''3'',''4'',''5'',''6'',''7'',''8'',''9'',''0'')'; put ');'; put 'if length(fmt)=1 then fmt=''W'';'; put 'else fmt=substr(fmt,1,length(fmt)-1);'; put 'end;'; put '/* apply lookups */'; put 'if cats(fmt) in (''DATETIME'',''B8601DN'',''B8601DN'',''B8601DT'',''B8601DT'''; put ',''B8601DZ'',''B8601DZ'',''DATEAMPM'',''DTDATE'',''DTMONYY'',''DTWKDATX'',''DTYEAR'''; put ',''DTYYQC'',''E8601DN'',''E8601DN'',''E8601DT'',''E8601DT'',''E8601DZ'',''E8601DZ'')'; put 'then return(''DATETIME'');'; put 'else if fmt in (''DATE'',''YYMMDD'',''B8601DA'',''B8601DA'',''DAY'',''DDMMYY'''; put ',''DDMMYYB'',''DDMMYYC'',''DDMMYYD'',''DDMMYYN'',''DDMMYYP'',''DDMMYYS'',''DDMMYYx'''; put ',''DOWNAME'',''E8601DA'',''E8601DA'',''JULDAY'',''JULIAN'',''MMDDYY'',''MMDDYYB'''; put ',''MMDDYYC'',''MMDDYYD'',''MMDDYYN'',''MMDDYYP'',''MMDDYYS'',''MMDDYYx'',''MMYY'''; put ',''MMYYC'',''MMYYD'',''MMYYN'',''MMYYP'',''MMYYS'',''MMYYx'',''MONNAME'',''MONTH'''; put ',''MONYY'',''PDJULG'',''PDJULI'',''QTR'',''QTRR'',''WEEKDATE'',''WEEKDATX'',''WEEKDAY'''; put ',''WEEKU'',''WEEKV'',''WEEKW'',''WORDDATE'',''WORDDATX'',''YEAR'',''YYMM'',''YYMMC'''; put ',''YYMMD'',''YYMMDDB'',''YYMMDDC'',''YYMMDDD'',''YYMMDDN'',''YYMMDDP'',''YYMMDDS'''; put ',''YYMMDDx'',''YYMMN'',''YYMMP'',''YYMMS'',''YYMMx'',''YYMON'',''YYQ'',''YYQC'',''YYQD'''; put ',''YYQN'',''YYQP'',''YYQR'',''YYQRC'',''YYQRD'',''YYQRN'',''YYQRP'',''YYQRS'',''YYQRx'''; put ',''YYQS'',''YYQx'',''YYQZ'') then return(''DATE'');'; put 'else if fmt in (''TIME'',''B8601LZ'',''B8601LZ'',''B8601TM'',''B8601TM'',''B8601TZ'''; put ',''B8601TZ'',''E8601LZ'',''E8601LZ'',''E8601TM'',''E8601TM'',''E8601TZ'',''E8601TZ'''; put ',''HHMM'',''HOUR'',''MMSS'',''TIMEAMPM'',''TOD'') then return(''TIME'');'; put 'else return(''NUM'');'; put 'end;'; put 'endsub;'; put '%if &wrap=YES %then %do;'; put 'quit;'; put '%end;'; put '/* insert the CMPLIB if not already there */'; put '%let cmpval=%sysfunc(getoption(cmplib));'; put '%let found=0;'; put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; put '%let var=%scan(&cmpval,&i,%str( %(%)));'; put '%if &var=&lib..&cat %then %let found=1;'; put '%end;'; put '%if &found=0 %then %do;'; put 'options insert=(CMPLIB=(&lib..&cat));'; put '%end;'; put '%mend mcf_getfmttype;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mp_ds2csv(ds'; put ',dlm=COMMA'; put ',outref=0'; put ',outfile='; put ',outencoding=0'; put ',headerformat=LABEL'; put ',termstr=CRLF'; put ')/*/STORE SOURCE*/;'; put '%local outloc delim i varlist var vcnt vat dsv vcom vmiss fmttype vfmt;'; put '%if not %sysfunc(exist(&ds)) %then %do;'; put '%put %str(WARN)ING: &ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; put '%if &outencoding=0 %then %let outencoding=;'; put '%else %let outencoding=encoding=&outencoding;'; put '%if &outref=0 %then %let outloc=&outfile;'; put '%else %let outloc=&outref;'; put '%if &headerformat=SASJS %then %do;'; put '%let delim=",";'; put '%let termstr=CRLF;'; put '%mcf_getfmttype(wrap=YES)'; put '%end;'; put '%else %if &dlm=COMMA %then %let delim=",";'; put '%else %let delim=";";'; put '/* credit to mjsq - https://stackoverflow.com/a/55642267 */'; put '/* first get headers */'; put 'data _null_;'; put 'file &outloc &outencoding lrecl=32767 termstr=&termstr;'; put 'length header $ 2000 varnm vfmt $32 dlm $1 fmttype $8;'; put 'call missing(of _all_);'; put 'dsid=open("&ds.","i");'; put 'num=attrn(dsid,"nvars");'; put 'dlm=&delim;'; put 'do i=1 to num;'; put 'varnm=upcase(varname(dsid,i));'; put 'if i=num then dlm='''';'; put '%if &headerformat=NAME %then %do;'; put 'header=cats(varnm,dlm);'; put '%end;'; put '%else %if &headerformat=LABEL %then %do;'; put 'header = cats(coalescec(varlabel(dsid,i),varnm),dlm);'; put '%end;'; put '%else %if &headerformat=SASJS %then %do;'; put 'if vartype(dsid,i)=''C'' then header=cats(varnm,'':$char'',varlen(dsid,i),''.'');'; put 'else do;'; put 'vfmt=coalescec(varfmt(dsid,i),''0'');'; put 'fmttype=mcf_getfmttype(vfmt);'; put 'if fmttype=''DATE'' then header=cats(varnm,'':date9.'');'; put 'else if fmttype=''DATETIME'' then header=cats(varnm,'':E8601DT26.6'');'; put 'else if fmttype=''TIME'' then header=cats(varnm,'':TIME12.'');'; put 'else header=cats(varnm,'':best.'');'; put 'end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Invalid headerformat value (&headerformat);'; put '%return;'; put '%end;'; put 'put header @;'; put 'end;'; put 'rc=close(dsid);'; put 'run;'; put '%let varlist=%mf_getvarlist(&ds);'; put '%let vcnt=%sysfunc(countw(&varlist));'; put '/**'; put '* The $quote modifier (without a width) will take the length from the variable'; put '* and increase by two. However this will lead to truncation where the value'; put '* contains double quotes (which are doubled up). To get around this, scan the'; put '* data to see the max number of double quotes, so that the appropriate width'; put '* can be applied in the subsequent step.'; put '*/'; put 'data _null_;'; put 'set &ds end=last;'; put '%do i=1 %to &vcnt;'; put '%let var=%scan(&varlist,&i);'; put '%if %mf_getvartype(&ds,&var)=C %then %do;'; put '%let dsv1=%mf_getuniquename(prefix=csvcol1_);'; put '%let dsv2=%mf_getuniquename(prefix=csvcol2_);'; put 'retain &dsv1 0;'; put '&dsv2=length(&var)+countc(&var,''"'');'; put 'if &dsv2>&dsv1 then &dsv1=&dsv2;'; put 'if last then call symputx('; put '"vlen&i"'; put '/* should be no shorter than varlen, and no longer than 32767 */'; put ',cats(''$quote'',min(&dsv1+2,32767),''.'')'; put ',''l'''; put ');'; put '%end;'; put '%end;'; put '%let vat=@;'; put '%let vcom=&delim;'; put '%let vmiss=%mf_getuniquename(prefix=csvcol3_);'; put '/* next, export data */'; put 'data _null_;'; put 'set &ds.;'; put 'file &outloc mod dlm=&delim dsd &outencoding lrecl=32767 termstr=&termstr;'; put 'if _n_=1 then &vmiss='' '';'; put '%do i=1 %to &vcnt;'; put '%let var=%scan(&varlist,&i);'; put '%if &i=&vcnt %then %do;'; put '%let vat=;'; put '%let vcom=;'; put '%end;'; put '%if %mf_getvartype(&ds,&var)=N %then %do;'; put '%if &headerformat = SASJS %then %do;'; put '%let vcom=&delim;'; put '%let fmttype=%sysfunc(mcf_getfmttype(%mf_getvarformat(&ds,&var)0));'; put '%if &fmttype=DATE %then %let vfmt=DATE9.;'; put '%else %if &fmttype=DATETIME %then %let vfmt=E8601DT26.6;'; put '%else %if &fmttype=TIME %then %let vfmt=TIME12.;'; put '%else %do;'; put '%let vfmt=;'; put '%let vcom=;'; put '%end;'; put '%end;'; put '%else %let vcom=;'; put '/* must use period - in order to work in both 9.4 and Viya 3.5 */'; put 'if missing(&var) and &var ne %sysfunc(getoption(MISSING)) then do;'; put '&vmiss=cats(''.'',&var);'; put 'put &vmiss &vat;'; put 'end;'; put 'else put &var &vfmt &vcom &vat;'; put '%end;'; put '%else %do;'; put '%if &i ne &vcnt %then %let vcom=&delim;'; put 'put &var &&vlen&i &vcom &vat;'; put '%end;'; put '%end;'; put 'run;'; put '%mend mp_ds2csv;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Sends a changeset to staging area'; put '@details This is the service that is called when submitting a new edit.'; put '

Service Inputs

'; put '
jsdata
'; put 'This is the staged data table, plus an _____DELETE__THIS__RECORD_____ column'; put '
SASControlTable
'; put '|ACTION:$char4.|MESSAGE:$char1.|LIBDS:$char19.|'; put '|---|---|---|'; put '|LOAD|User-Provided message|LIBREF.DATASET_NAME|'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_nobs.sas'; put '@li dc_assignlib.sas'; put '@li mf_verifymacvars.sas'; put '@li mf_mkdir.sas'; put '@li mf_getuniquefileref.sas'; put '@li mpe_loader.sas'; put '@li mpe_filtermaster.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_cntlout.sas'; put '@li mp_ds2csv.sas'; put '@li mf_getplatform.sas'; put '@li removecolsfromwork.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%global approver; %let approver=;'; put '%global libref; %let libref=;'; put '%global dsn; %let dsn=;'; put '%global user; %let user=;'; put '%let user=%mf_getuser();'; put '/* load parameters */'; put 'data _null_;'; put 'set work.sascontroltable;'; put 'call symputx(''action'',action);'; put 'call symputx(''message'',message);'; put 'libds=upcase(libds);'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'is_fmt=1;'; put 'end;'; put 'else call symputx(''libds'',libds);'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* stream back meta info, further jquery calls will return col metadata and'; put 'actual data */'; put '%let libref=%upcase(%scan(&libds,1,.));'; put '%let dsn=%upcase(%scan(&libds,2,.));'; put '%dc_assignlib(WRITE,&libref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc - unable to assign library &libref)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mpelocapprovals libds)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: mpelocapprovals libds)'; put ')'; put '%put Verify that the upload does not violate Row Level Security checks:;'; put '%mpe_filtermaster(ULOAD,&libds,'; put 'dclib=&mpelib,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc during filtering process)'; put ')'; put '/* prepare inverse query */'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'infile filtref end=eof;'; put 'file &tempref;'; put 'if _n_=1 then put ''where not('';'; put 'input;'; put 'put _infile_;'; put 'if eof then put '')'';'; put 'run;'; put '/* apply the query */'; put 'data work.badrecords;'; put 'set work.jsdata;'; put '%inc &tempref/source2;;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.badrecords)>0)'; put ',mac=&_program'; put ',msg=%str('; put 'Security Problem - %mf_nobs(work.badrecords) unauthorised records submitted'; put ')'; put ')'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; put 'RUN;'; put '/**'; put '* Create package folder and redirect the log'; put '*/'; put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; put '/* get web url */'; put '%global url;'; put '%let url=localhost/SASStoredProcess;'; put '%let platform=%mf_getplatform();'; put '%put &=platform;'; put 'data _null_;'; put 'length url $128;'; put '%macro stagedata();'; put '%if &platform=SASVIYA %then %do;'; put 'if symexist(''_baseurl'') then do;'; put 'url=symget(''_baseurl'');'; put 'if subpad(url,length(url)-9,9)=''SASStudio'''; put 'then url=substr(url,1,length(url)-11);'; put 'else url="&systcpiphostname/SASJobExecution";'; put 'end;'; put 'else url="&systcpiphostname/SASJobExecution";'; put '%end;'; put '%else %if &platform=SASMETA %then %do;'; put 'rc=METADATA_GETURI("Stored Process Web App",url);'; put '%end;'; put '%mend stagedata;'; put '%stagedata()'; put 'call symputx(''url'',url);'; put 'putlog url=;'; put 'run;'; put '/* Create package folder */'; put '%let dir=&mpelocapprovals/&mperef;'; put '%mf_mkdir(&dir)'; put '/* redirect the log */'; put '%put; %put; %put log is being redirected;'; put '%put to retrieve, visit this url:; %put;%put;'; put '%let url=&url?_program=%substr(&_program'; put ',1,%length(&_program)-9)getlog%str(&)table=&mperef;'; put '%put &url;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to log redirection)'; put ')'; put 'proc printto log="&dir/weblog.txt";run;'; put 'options notes mprint;'; put 'libname approve "&dir";'; put '/* take copy of webin file */'; put 'data _null_;'; put 'if symexist(''_WEBIN_FILEREF1'') then ref=symget(''_WEBIN_FILEREF1'');'; put 'else if symexist(''sasjs_tables'') then ref=''0ref''; /* no fileref created */'; put 'else ref=''indata1'';'; put 'call symputx(''ref'',ref);'; put 'putlog ref=;'; put 'run;'; put '%mp_binarycopy(inref=&ref,outloc="&dir/_WEBIN_FILEREF1.txt",iftrue=&ref ne 0ref)'; put '/* take copy of macvars */'; put 'data _null_;'; put 'file "&dir/macvars.sas";'; put 'set sashelp.vmacro;'; put 'where scope=''GLOBAL'';'; put 'put ''%let '' name ''='' value '';'';'; put 'run;'; put 'data approve.jsdset;'; put 'length _____DELETE__THIS__RECORD_____ $3;'; put 'set jsdata;'; put 'run;'; put '/**'; put '* mf_getvarXXX functions will fail if the target is locked - so take a copy'; put '* and reference that (this will also explicitly throw the lock situation)'; put '*/'; put '%let dscopy=work.dscopy;'; put 'data &dscopy;'; put 'set &libds;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Issue getting lock on &libds)'; put ')'; put '%mp_ds2csv(approve.jsdset'; put ',dlm=COMMA'; put ',outfile="&dir/&orig_libds..csv"'; put ',outencoding="UTF-8"'; put ',headerformat=NAME'; put ',termstr=CRLF'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc when writing the CSV)'; put ')'; put '%mpe_loader(mperef=&mperef'; put ',submitted_reason_txt=%superq(message)'; put ',approver=%quote(%trim(&approver))'; put ',url=%superq(url)'; put ',dc_dttmtfmt=&dc_dttmtfmt'; put ')'; put '%mp_abort(mode=INCLUDE)'; put '%mp_abort('; put 'iftrue=(%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error))=1)'; put ',mac=&_program..sas'; put ',msg=%str(mf_abort.error=1)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '/* send relevant SUCCESS values */'; put 'data sasparams;'; put 'STATUS=''SUCCESS'';'; put 'DSID="&mperef";'; put 'url="&url";'; put 'run;'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,sasparams)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/hooks; %let service=mpe_column_level_security_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_COLUMN_LEVEL_SECURITY table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks the incoming column_level_security settings to ensure'; put 'each individual filter is valid'; put '**/'; put '/* check scope values and ensure uppercasing */'; put '%let errflag=0;'; put '%let errmsg=;'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put 'cls_scope=upcase(cls_scope);'; put 'CLS_LIBREF=upcase(CLS_LIBREF);'; put 'cls_table=upcase(CLS_TABLE);'; put 'CLS_VARIABLE_NM=upcase(CLS_VARIABLE_NM);'; put 'if cls_scope not in (''ALL'',''VIEW'',''EDIT'') then do;'; put 'call symputx(''errflag'',1);'; put 'call symputx(''errmsg'',"Invalid scope: "!!cls_scope);'; put 'stop;'; put 'end;'; put 'if cls_hide<1 then cls_hide=0;'; put 'else cls_hide=1;'; put 'if CLS_ACTIVE<1 then CLS_ACTIVE=0;'; put 'else CLS_ACTIVE=1;'; put 'run;'; put '%mp_abort(iftrue=(&errflag=1)'; put ',mac=mpe_column_level_security_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_row_level_security_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; put ')'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'infile &inref end=eof;'; put 'if _n_=1 then do;'; put 'put "proc sql;";'; put 'put "validate select * from &targetds";'; put 'put "where " ;'; put 'end;'; put 'input;'; put 'put _infile_;'; put 'putlog _infile_;'; put 'if eof then put ";quit;";'; put 'run;'; put '%inc &fref1;'; put 'data &outds;'; put 'if &sqlrc or &syscc or &syserr then do;'; put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; put 'output;'; put 'end;'; put 'else stop;'; put 'run;'; put 'filename &fref1 clear;'; put '%if %mf_nobs(&outds)>0 %then %do;'; put '%if &abort=YES %then %do;'; put 'data _null_;'; put 'set &outds;'; put 'call symputx(''REASON_CD'',reason_cd,''l'');'; put 'stop;'; put 'run;'; put '%mp_abort('; put 'mac=&sysmacroname,'; put 'msg=%str(Filter validation issues.)'; put ')'; put '%end;'; put '%let syscc=1008;'; put '%end;'; put '%mend mp_filtervalidate;'; put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put '/* Validate input column */'; put '%local vtype;'; put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; put 'mac=&sysmacroname,'; put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; put ')'; put '%if &vtype ne C %then %do;'; put '%put &sysmacroname: RAW_VALUE must be character;'; put '%let syscc=42;'; put '%return;'; put '%end;'; put '/**'; put '* Sanitise the values based on valid value lists, then strip out'; put '* quotes, commas, periods and spaces.'; put '*/'; put '%local reason_cd nobs;'; put '%let nobs=0;'; put 'data &outds;'; put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; put 'set &inds end=last;'; put 'length reason_cd $4032 vtype vtype2 $1 vnum dsid 8 tmp $4000;'; put 'drop tmp;'; put '/* quick check to ensure column exists */'; put 'if upcase(VARIABLE_NM) not in'; put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; put 'then do;'; put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; put 'putlog REASON_CD= VARIABLE_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'return;'; put 'end;'; put '/* need to open the dataset to get the column type */'; put 'retain dsid;'; put 'if _n_=1 then dsid=open("&targetds","i");'; put 'if dsid>0 then do;'; put 'vnum=varnum(dsid,VARIABLE_NM);'; put 'if vnum<1 then do;'; put '/* should not happen as was also tested for above */'; put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Could not open &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'stop;'; put 'end;'; put '/* closed list checks */'; put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; put 'putlog REASON_CD= GROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; put 'putlog REASON_CD= SUBGROUP_ID=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if OPERATOR_NM not in'; put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; put 'then do;'; put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; put 'putlog REASON_CD= OPERATOR_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put '/* special missing logic */'; put 'if vtype=''N'' & OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'') then do;'; put 'if cats(upcase(raw_value)) in ('; put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; put ')'; put 'then do;'; put '/* valid numeric - exit data step loop */'; put 'return;'; put 'end;'; put 'else if subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'end;'; put '/* special logic */'; put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; put 'else do;'; put 'if substr(raw_value,1,1) ne ''('''; put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; put 'then do;'; put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; put 'end;'; put '/* we now have a comma seperated list of values */'; put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; put 'tmp=scan(raw_value1,i,'','');'; put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; put 'if OPERATOR_NM =''BETWEEN'' and subpad(upcase(tmp),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put '/* is not valid syntax for IN or NOT IN */'; put 'vnum=varnum(dsid,subpad(tmp,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'REASON_CD=''Non Numeric value provided'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'return;'; put 'end;'; put 'end;'; put 'else raw_value1=raw_value;'; put '/* remove nested literals eg '''' */'; put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; put '/* now match string literals (always single quotes) */'; put 'raw_value2=raw_value1;'; put 'regex = prxparse("s/(\'').*?(\'')//");'; put 'call prxchange(regex,-1,raw_value2);'; put '/* remove commas and periods*/'; put 'raw_value3=compress(raw_value2,'',.'');'; put '/* output records that contain values other than digits and spaces */'; put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; put 'if vtype=''C'' and subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Char Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog (_all_)(=);'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'endstep:'; put 'if last then rc=close(dsid);'; put 'run;'; put 'data _null_;'; put 'set &outds end=last;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; put 'mac=&sysmacroname,'; put 'msg=%str(Data issue: %superq(reason_cd))'; put ')'; put '%if &nobs>0 %then %do;'; put '%let syscc=1008;'; put '%return;'; put '%end;'; put '/**'; put '* syntax checking passed but it does not mean the filter is valid'; put '* for that we can run a proc sql validate query'; put '*/'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put '%mp_filtergenerate(&inds,outref=&fref1)'; put '/* this macro will also set syscc to 1008 if any issues found */'; put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; put '%mend mp_filtercheck;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_ROW_LEVEL_SECURITY table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks the incoming row_level_security settings to ensure'; put 'each individual filter is'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mp_filtercheck.sas'; put '

Related Macros

'; put '@li mpe_loader.sas'; put '**/'; put '/* ignore scope and group for validation */'; put 'proc sql;'; put 'create table work.batches as'; put 'select distinct upcase(rls_libref) as rls_libref,'; put 'upcase(rls_table) as rls_table,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from work.staging_ds'; put 'where rls_active=1'; put 'order by rls_libref, rls_table;'; put '%let cnt=0;'; put 'data _null_;'; put 'set work.batches;'; put 'by rls_libref rls_table;'; put 'putlog (_all_)(=);'; put 'if last.rls_table then do;'; put 'x+1;'; put 'call symputx(cats(''libds'',x),cats(rls_libref,''.'',rls_table));'; put 'call symputx(''cnt'',x);'; put 'end;'; put 'run;'; put '%macro quickloop();'; put '%do i=1 %to &cnt;'; put 'data work.inds&i;'; put 'set work.batches;'; put 'if cats(rls_libref,''.'',rls_table)="&&libds&i";'; put 'keep group_logic subgroup_logic subgroup_id variable_nm operator_nm'; put 'raw_value;'; put 'run;'; put '%dc_assignlib(READ,%scan(&&libds&i,1,.))'; put '%mp_filtercheck(work.inds&i'; put ',targetds=&&libds&i'; put ',outds=work.badrecords'; put ',abort=YES'; put ')'; put '%end;'; put '%mend quickloop;'; put '%quickloop()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_security_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_SECURITY table'; put '@details Post edit hooks provide additional backend validation against'; put 'user-sourced data. The incoming dataset is always `work.staging_ds` and this'; put 'file is included from the mpe_loader.sas macro.'; put 'Available (at runtime) macro variables:'; put '@li DC_LIBREF - The DC control library for your site'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put '**/'; put '/* ensure upcase and check access level values*/'; put '%let errval=0;'; put '%let errmsg=;'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put 'LIBREF=upcase(LIBREF);'; put 'DSN=upcase(DSN);'; put 'ACCESS_LEVEL=upcase(ACCESS_LEVEL);'; put 'if ACCESS_LEVEL not in (''EDIT'',''APPROVE'',''VIEW'',''SIGNOFF'',''AUDIT'') then do;'; put 'putlog "ERR" +(-1) "OR: invalid ACCESS_LEVEL - " access_level;'; put 'call symputx(''errval'',1);'; put 'call symputx(''errmsg'',"Invalid ACCESS_LEVEL: "!!access_level);'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=(&errval=1)'; put ',mac=mpe_security_postedit.sas'; put ',msg=%str(&errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_tables_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_TABLES table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks MPE_TABLES to ensure modified / added records are'; put 'valid. If a non-default AUDIT_LIBDS is being used, there is also a check'; put 'to ensure that this table already exists.'; put '**/'; put '%let errmsg=;'; put '%let errflag=0;'; put '/* ensure uppercasing */'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put 'LIBREF=upcase(LIBREF);'; put 'DSN=upcase(DSN);'; put 'loadtype=upcase(loadtype);'; put 'buskey=upcase(buskey);'; put 'var_txfrom=upcase(var_txfrom);'; put 'var_txto=upcase(var_txto);'; put 'var_busfrom=upcase(var_busfrom);'; put 'var_busto=upcase(var_busto);'; put 'var_processed=upcase(var_processed);'; put 'close_vars=upcase(close_vars);'; put 'audit_libds=upcase(audit_libds);'; put 'rk_underlying=upcase(rk_underlying);'; put '/* check for valid loadtype */'; put 'if LOADTYPE not in (''UPDATE'',''TXTEMPORAL'',''FORMAT_CAT'',''BITEMPORAL'',''REPLACE'')'; put 'then do;'; put 'call symputx(''errmsg'',"Invalid LOADTYPE: "!!LOADTYPE);'; put 'call symputx(''errflag'',1);'; put 'end;'; put '/* force correct BUSKEY and DSN when loading format catalogs */'; put 'if LOADTYPE=''FORMAT_CAT'' then do;'; put 'BUSKEY=''TYPE FMTNAME FMTROW'';'; put 'DSN=scan(dsn,1,''-'')!!''-FC'';'; put 'end;'; put '/* convert tabs into spaces */'; put 'buskey=translate(buskey," ","09"x);'; put 'rk_underlying=translate(rk_underlying," ","09"x);'; put 'run;'; put '%mp_abort(iftrue=(&errflag=1)'; put ',mac=mpe_tables_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '/* get distinct list of audit libs */'; put 'proc sql;'; put 'create table work.liblist as'; put 'select distinct audit_libds'; put 'from work.staging_ds'; put 'where audit_libds not in ('''',''0'', "&dc_libref..MPE_AUDIT")'; put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; put '/* assign the libs */'; put 'data _null_;'; put 'set work.liblist;'; put 'call symputx(cats(''lib'',_n_),audit_libds);'; put 'libref=scan(audit_libds,1,''.'');'; put 'call execute(''%dc_assignlib(WRITE,''!!libref!!'')'');'; put 'run;'; put '/* check the audit tables exist */'; put 'data _null_;'; put 'set work.liblist;'; put 'if exist(audit_libds,"DATA")=0 then do;'; put 'call symputx(''errmsg'','; put '"Audit Table "!!audit_libds!!" does not exist, or could not be assigned."'; put ');'; put 'call symputx(''errflag'',1);'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=(&errflag=1)'; put ',mac=mpe_tables_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_validations_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_VALIDATIONS table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks the incoming mpe_validations settings to ensure'; put 'there are no columns that have both HARDSELECT_HOOK and SOFTSELECT_HOOK.'; put '

SAS Macros

'; put '@li mf_nobs.sas'; put '

Related Macros

'; put '@li mpe_loader.sas'; put '**/'; put '/** check to avoid a colum having both HARDSELECT_HOOK and SOFTSELECT_HOOK */'; put '/* need to merge with base table in the case of a single row being added */'; put '%global src_list1 src_list2;'; put '%let src_list1='''';'; put 'proc sql noprint;'; put 'create table work.check1 as'; put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; put ',rule_type'; put 'from work.staging_ds'; put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; put 'select distinct cats(source) into: src_list1 separated by '','''; put 'from work.check1;'; put 'create table work.check2 as'; put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; put ',rule_type'; put 'from &DC_LIBREF..MPE_VALIDATIONS'; put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; put 'and &dc_dttmtfmt. lt tx_to'; put 'and catx(''.'',base_lib,base_ds,base_col) in (&src_list1);'; put 'create table work.check3 as'; put 'select * from work.check1'; put 'union'; put 'select * from work.check2;'; put 'create table work.validation_checker as'; put 'select source'; put ',count(*) as cnt'; put 'from work.check3'; put 'group by 1'; put 'having cnt>1;'; put 'select distinct source into: src_list2 from work.validation_checker;'; put 'data _null_;'; put 'set work.validation_checker;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.validation_checker)>0)'; put ',mac=mpe_validations_postedit'; put ',msg=%str(The following vars have duplicate HOOKS: &src_list2)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_xlmap_info_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_XLMAP_INFO table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put '

SAS Macros

'; put '@li mf_existds.sas'; put '@li mf_getvarlist.sas'; put '@li mf_wordsinstr1butnotstr2.sas'; put '@li dc_assignlib.sas'; put '@li mp_validatecol.sas'; put '**/'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put '/* apply the first excel map to all cells */'; put 'length tgtds $41;'; put 'retain tgtds;'; put 'drop tgtds is_libds;'; put 'if _n_=1 then do;'; put 'if missing(XLMAP_TARGETLIBDS) then tgtds="&dc_libref..MPE_XLMAP_DATA";'; put 'else tgtds=upcase(XLMAP_TARGETLIBDS);'; put '%mp_validatecol(XLMAP_TARGETLIBDS,LIBDS,is_libds)'; put 'call symputx(''tgtds'',tgtds);'; put 'call symputx(''is_libds'',is_libds);'; put 'end;'; put 'XLMAP_TARGETLIBDS=tgtds;'; put 'run;'; put '%mp_abort(iftrue=(&is_libds ne 1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=Invalid target dataset (&tgtds)'; put ')'; put '/**'; put '* make sure that the supplied target dataset exists and'; put '* has the necessary columns'; put '*/'; put '%dc_assignlib(READ,%scan(&tgtds,1,.))'; put '%mp_abort(iftrue=(%mf_existds(libds=&tgtds) ne 1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=Target dataset (&tgtds) could not be opened'; put ')'; put '%let tgtvars=%upcase(%mf_getvarlist(&tgtds));'; put '%let srcvars=%upcase(%mf_getvarlist(&dc_libref..MPE_XLMAP_DATA));'; put '%let badvars1=%mf_wordsInStr1ButNotStr2(Str1=&srcvars,Str2=&tgtvars);'; put '%let badvars2=%mf_wordsInStr1ButNotStr2(Str1=&tgtvars,Str2=&srcvars);'; put '%mp_abort(iftrue=(%length(&badvars1.X)>1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=%str(Target dataset (&tgtds) has missing vars: &badvars1)'; put ')'; put '%mp_abort(iftrue=(%length(&badvars2.X)>1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=%str(Target dataset (&tgtds) has unrecognised vars: &badvars2)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_xlmap_rules_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_XLMAP_RULES table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put '**/'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put '/* ensure uppercasing */'; put 'XLMAP_ID=upcase(XLMAP_ID);'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=sample_xlmap_data_postapprove; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Sample XLMAP Data hook program (sample_xlmap_data_postapprove)'; put '@details This hook script should NOT be modified in place, as the changes'; put 'would be lost in your next Data Controller deployment.'; put 'Instead, create a copy of this hook script and place it OUTSIDE the'; put 'Data Controller metadata folder.'; put 'Available macro variables:'; put '@li LOAD_REF - The Load Reference (unique upload id)'; put '@li ORIG_LIBDS - The target library.dataset that was just loaded'; put '**/'; put 'data _null_;'; put 'set work.staging_ds;'; put 'putlog ''load ref is in the staged data: '' load_ref;'; put 'stop;'; put 'run;'; put '%put the unique identifier (LOAD_REF) is also a macro variable: &LOAD_REF;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=sample_xlmap_data_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Sample XLMAP Data hook program'; put '@details This hook script should NOT be modified in place, as the changes'; put 'would be lost in your next Data Controller deployment.'; put 'Instead, create a copy of this hook script and place it OUTSIDE the'; put 'Data Controller metadata folder.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The target dataset being loaded'; put '**/'; put '%let abort=0;'; put '%let errmsg=;'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put 'length errmsg $1000;'; put 'drop err:;'; put '/* KM1 validations */'; put 'if XLMAP_ID=''BASEL-KM1'' then do;'; put 'if XLMAP_RANGE_ID=''KM1:a'' & input(value_txt,8.)<100 then do;'; put 'errmsg=''Should be greater than 100'';'; put 'err=1;'; put 'end;'; put 'end;'; put '/* CR2 Validations */'; put 'if XLMAP_ID=''BASEL-CR2'' then do;'; put 'if XLMAP_RANGE_ID=''CR2-sec1'' & row_no=3 & input(value_txt,8.)>0 then do;'; put 'errmsg=''Should be negative'';'; put 'err=1;'; put 'end;'; put 'end;'; put '/* publish error message */'; put 'if err=1 then do;'; put 'errmsg=catx('' '',xlmap_range_id,'':'',value_txt,''->'',errmsg);'; put 'call symputx(''errmsg'',errmsg);'; put 'call symputx(''abort'',1);'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=(&abort ne 0)'; put ',mac=xlmap_data_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/public; %let service=getchangeinfo; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getchangeinfo.sas'; put '@brief Returns the details for an approval diff'; put '@details'; put '

SAS Macros

'; put '@li mf_getengine.sas'; put '@li dc_assignlib.sas'; put '@li mp_abort.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let table=;'; put 'data _null_;'; put 'set SASControlTable;'; put 'call symputx(''table'',table);'; put 'run;'; put '%dc_assignlib(WRITE,%scan(&table,1,.))'; put '%let max_ver_dttm=0;'; put 'data APPROVE1;'; put 'set &mpelib..mpe_submit'; put '(rename=(SUBMITTED_ON_DTTM=submitted_on REVIEWED_ON_DTTM=REVIEWED_ON));'; put 'where TABLE_ID="&TABLE";'; put 'TABLE_NM=cats(base_lib,''.'',base_ds);'; put 'BASE_TABLE=table_nm;'; put 'call symputx(''base_lib'',base_lib);'; put 'REVIEWED_ON_DTTM=put(reviewed_on,datetime19.);'; put 'SUBMITTED_ON_DTTM=put(submitted_on,datetime19.);'; put 'run;'; put 'data jsParams;'; put 'set approve1;'; put 'LIB_ENGINE="%mf_getEngine(&base_lib)";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,jsParams)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getcols; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getcols.sas'; put '@brief Retrieves column info to enable population of dropdowns'; put '@details'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getvalue.sas'; put '@li mp_abort.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let ds=%mf_getvalue(work.iwant,libds);'; put '%dc_assignlib(READ,%scan(&ds,1,.))'; put 'proc contents noprint data=&ds'; put 'out=droplist1 (keep=name type length label varnum format:);'; put 'run;'; put 'data cols(keep=name type length varnum format label);'; put 'set droplist1(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put 'if type2=2 then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else if formatl=0 then format=cats(format2,''.'');'; put 'else format=cats(format2,formatl,''.'');'; put 'type=''C'';'; put 'ddtype=''CHARACTER'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if formatl=0 then format=cats(format2,''.'');'; put 'else if formatd=0 then format=cats(format2,formatl,''.'');'; put 'else format=cats(format2,formatl,''.'',formatd);'; put 'type=''N'';'; put 'if format=:''DATETIME'' then ddtype=''DATETIME'';'; put 'else if format=:''DATE'' then ddtype=''DATE'';'; put 'else if format=:''TIME'' then ddtype=''TIME'';'; put 'else ddtype=''NUMERIC'';'; put 'end;'; put 'if label='''' then label=name;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,cols)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getcolvals; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; put ')'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'infile &inref end=eof;'; put 'if _n_=1 then do;'; put 'put "proc sql;";'; put 'put "validate select * from &targetds";'; put 'put "where " ;'; put 'end;'; put 'input;'; put 'put _infile_;'; put 'putlog _infile_;'; put 'if eof then put ";quit;";'; put 'run;'; put '%inc &fref1;'; put 'data &outds;'; put 'if &sqlrc or &syscc or &syserr then do;'; put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; put 'output;'; put 'end;'; put 'else stop;'; put 'run;'; put 'filename &fref1 clear;'; put '%if %mf_nobs(&outds)>0 %then %do;'; put '%if &abort=YES %then %do;'; put 'data _null_;'; put 'set &outds;'; put 'call symputx(''REASON_CD'',reason_cd,''l'');'; put 'stop;'; put 'run;'; put '%mp_abort('; put 'mac=&sysmacroname,'; put 'msg=%str(Filter validation issues.)'; put ')'; put '%end;'; put '%let syscc=1008;'; put '%end;'; put '%mend mp_filtervalidate;'; put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put '/* Validate input column */'; put '%local vtype;'; put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; put 'mac=&sysmacroname,'; put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; put ')'; put '%if &vtype ne C %then %do;'; put '%put &sysmacroname: RAW_VALUE must be character;'; put '%let syscc=42;'; put '%return;'; put '%end;'; put '/**'; put '* Sanitise the values based on valid value lists, then strip out'; put '* quotes, commas, periods and spaces.'; put '*/'; put '%local reason_cd nobs;'; put '%let nobs=0;'; put 'data &outds;'; put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; put 'set &inds end=last;'; put 'length reason_cd $4032 vtype vtype2 $1 vnum dsid 8 tmp $4000;'; put 'drop tmp;'; put '/* quick check to ensure column exists */'; put 'if upcase(VARIABLE_NM) not in'; put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; put 'then do;'; put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; put 'putlog REASON_CD= VARIABLE_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'return;'; put 'end;'; put '/* need to open the dataset to get the column type */'; put 'retain dsid;'; put 'if _n_=1 then dsid=open("&targetds","i");'; put 'if dsid>0 then do;'; put 'vnum=varnum(dsid,VARIABLE_NM);'; put 'if vnum<1 then do;'; put '/* should not happen as was also tested for above */'; put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Could not open &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'stop;'; put 'end;'; put '/* closed list checks */'; put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; put 'putlog REASON_CD= GROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; put 'putlog REASON_CD= SUBGROUP_ID=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if OPERATOR_NM not in'; put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; put 'then do;'; put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; put 'putlog REASON_CD= OPERATOR_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put '/* special missing logic */'; put 'if vtype=''N'' & OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'') then do;'; put 'if cats(upcase(raw_value)) in ('; put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; put ')'; put 'then do;'; put '/* valid numeric - exit data step loop */'; put 'return;'; put 'end;'; put 'else if subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'end;'; put '/* special logic */'; put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; put 'else do;'; put 'if substr(raw_value,1,1) ne ''('''; put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; put 'then do;'; put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; put 'end;'; put '/* we now have a comma seperated list of values */'; put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; put 'tmp=scan(raw_value1,i,'','');'; put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; put 'if OPERATOR_NM =''BETWEEN'' and subpad(upcase(tmp),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put '/* is not valid syntax for IN or NOT IN */'; put 'vnum=varnum(dsid,subpad(tmp,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'REASON_CD=''Non Numeric value provided'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'return;'; put 'end;'; put 'end;'; put 'else raw_value1=raw_value;'; put '/* remove nested literals eg '''' */'; put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; put '/* now match string literals (always single quotes) */'; put 'raw_value2=raw_value1;'; put 'regex = prxparse("s/(\'').*?(\'')//");'; put 'call prxchange(regex,-1,raw_value2);'; put '/* remove commas and periods*/'; put 'raw_value3=compress(raw_value2,'',.'');'; put '/* output records that contain values other than digits and spaces */'; put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; put 'if vtype=''C'' and subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Char Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog (_all_)(=);'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'endstep:'; put 'if last then rc=close(dsid);'; put 'run;'; put 'data _null_;'; put 'set &outds end=last;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; put 'mac=&sysmacroname,'; put 'msg=%str(Data issue: %superq(reason_cd))'; put ')'; put '%if &nobs>0 %then %do;'; put '%let syscc=1008;'; put '%return;'; put '%end;'; put '/**'; put '* syntax checking passed but it does not mean the filter is valid'; put '* for that we can run a proc sql validate query'; put '*/'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put '%mp_filtergenerate(&inds,outref=&fref1)'; put '/* this macro will also set syscc to 1008 if any issues found */'; put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; put '%mend mp_filtercheck;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Retrieves column info to enable population of dropdowns'; put '@details An optional filterquery may be provided, if so then it is validated'; put 'and then used to filter the subsequent results.'; put '

Service Inputs

'; put '
IWANT
'; put 'The STARTROW and ROWS variables are used to fetch additional values beyond'; put 'the initial default (4000).'; put '|libds:$19.|col:$9.|STARTROW:8.|ROWS:8.|'; put '|---|---|---|---|'; put '|DC258467.MPE_X_TEST|SOME_TIME|4001|1000'; put '
FILTERQUERY
'; put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; put '|---|---|---|---|---|---|'; put '|AND|AND|1|SOME_BESTNUM|>|1|'; put '|AND|AND|1|SOME_TIME|=|77333|'; put '

Service Outputs

'; put '
VALS
'; put 'The type of this column actually depends on the underlying column type, so it can change'; put '|FORMATTED|UNFORMATTED|'; put '|---|---|'; put '|$44.00|44|'; put '
META
'; put '|COLUMN:$32.|SASFORMAT:$32.|STARTROW:8.|ROWS:8.|'; put '|---|---|---|---|'; put '|COL_NAME|DOLLAR8.2|4001|1000'; put '

SAS Macros

'; put '@li mf_existds.sas'; put '@li mf_getvalue.sas'; put '@li mf_verifymacvars.sas'; put '@li dc_assignlib.sas'; put '@li mf_getvarformat.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_filtercheck.sas'; put '@li mp_filtergenerate.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd.'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* input table may or may not exist */'; put 'data work.initvars;'; put 'length GROUP_LOGIC $3 SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $32767;'; put 'call missing(of _all_);'; put 'stop;'; put 'data work.filterquery;'; put 'set %sysfunc(ifc('; put '%mf_existds(work.filterquery)=1'; put ',work.filterquery'; put ',work.initvars'; put '));'; put 'run;'; put '/* print data for debugging */'; put 'data _null_;'; put 'set work.iwant;'; put 'put (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set work.filterquery;'; put 'put (_all_)(=);'; put 'run;'; put '%let libds=%mf_getvalue(work.iwant,libds);'; put '%let col2=%mf_getvalue(work.iwant,col);'; put '%let is_fmt=0;'; put '%let startrow=1;'; put '%let rows=4000;'; put '%put &=libds;'; put '%put &=col2;'; put '%mp_abort(iftrue= (%mf_verifymacvars(libds col2)=0)'; put ',mac=&_program..sas'; put ',msg=%str(Missing inputs from iwant. Libds=&libds col=&col2 )'; put ')'; put '%dc_assignlib(WRITE,%scan(&libds,1,.))'; put 'data _null_;'; put 'call missing(startrow,rows);'; put 'set work.iwant;'; put '/* check if the request is for a format catalog */'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'call symputx(''libds'',''work.fmtextract'');'; put 'is_fmt=1;'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'call symputx(''startrow'',coalesce(startrow,&startrow));'; put 'call symputx(''rows'',coalesce(rows,&rows));'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/**'; put '* Validate the filter query'; put '*/'; put '%mp_filtercheck(work.filterquery,targetds=&libds,abort=YES)'; put '/**'; put '* Prepare the query'; put '*/'; put '%mp_filtergenerate(work.filterquery,outref=myfilter)'; put '/* cannot %inc in a sql where clause, only data step, so - use a view */'; put 'data work.vw_vals/view=work.vw_vals;'; put 'set &libds;'; put 'where %inc myfilter;;'; put 'run;'; put 'proc sql;'; put 'create view work.vw_vals_sorted as'; put 'select distinct'; put 'put(&col2,%mf_getVarFormat(&libds,&col2,force=1)) as formatted,'; put '&col2 as unformatted'; put 'from work.vw_vals;'; put '/* restrict num of output values */'; put 'data work.vals;'; put 'set work.vw_vals_sorted;'; put 'if _n_ ge &startrow;'; put 'x+1;'; put 'if x>&rows then stop;'; put 'drop x;'; put 'run;'; put 'data vals;'; put '/* ensure empty value if table is empty, for dropdowns */'; put 'if nobs=0 then output;'; put 'set vals nobs=nobs;'; put 'format unformatted ;'; put 'output;'; put 'run;'; put 'proc sql noprint;'; put 'select count(*) into: nobs from work.vw_vals_sorted;'; put 'data meta;'; put 'column="&col2";'; put 'sasformat="%mf_getVarFormat(&libds,&col2)";'; put 'startrow=&startrow;'; put 'rows=&rows;'; put 'nobs=&nobs;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,vals,missing=STRING,showmeta=YES)'; put '%webout(OBJ,meta)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getddl; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_existfileref(fref'; put ')/*/STORE SOURCE*/;'; put '%local rc;'; put '%let rc=%sysfunc(fileref(&fref));'; put '%if &rc=0 %then %do;'; put '1'; put '%end;'; put '%else %if &rc<0 %then %do;'; put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; put '1'; put '%end;'; put '%else %do;'; put '0'; put '%end;'; put '%mend mf_existfileref;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; put ',applydttm=NO'; put ')/*/STORE SOURCE*/;'; put '/* check fileref is assigned */'; put '%if %mf_existfileref(&fref)=0 %then %do;'; put 'filename &fref temp ;'; put '%end;'; put '%if %length(&libref)=0 %then %let libref=WORK;'; put '%let flavour=%upcase(&flavour);'; put 'proc sql noprint;'; put 'create table _data_ as'; put 'select * from dictionary.tables'; put 'where upcase(libname)="%upcase(&libref)"'; put 'and memtype=''DATA'' /* views not currently supported */'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local tabinfo; %let tabinfo=&syslast;'; put 'create table _data_ as'; put 'select * from dictionary.columns'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local colinfo; %let colinfo=&syslast;'; put '%local dsnlist;'; put 'select distinct upcase(memname) into: dsnlist'; put 'separated by '' '''; put 'from &syslast'; put ';'; put 'create table _data_ as'; put 'select * from dictionary.indexes'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put 'order by idxusage, indxname, indxpos'; put ';'; put '%local idxinfo; %let idxinfo=&syslast;'; put '/* Extract all Primary Key and Unique data constraints */'; put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; put '%local colconst; %let colconst=&syslast;'; put '%macro addConst();'; put '%global constraints_used;'; put 'data _null_;'; put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; put 'set &colconst('; put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; put ') end=last;'; put 'file &fref mod;'; put 'by constraint_type constraint_name;'; put 'retain constraints_used;'; put 'constraint_name_orig=constraint_name;'; put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; put 'else ctype=strip(constraint_type);'; put '%if &flavour=TSQL %then %do;'; put 'column_name=catt(''['',column_name,'']'');'; put 'constraint_name=catt(''['',constraint_name,'']'');'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'column_name=catt(''"'',column_name,''"'');'; put 'constraint_name=catt(''"'',constraint_name,''"'');'; put '%end;'; put 'if first.constraint_name then do;'; put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; put 'put '' '' column_name;'; put 'end;'; put 'else put '' ,'' column_name;'; put 'if last.constraint_name then do;'; put 'put " )";'; put 'call symput(''constraints_used'',strip(constraints_used));'; put 'end;'; put 'run;'; put '%put &=constraints_used;'; put '%mend addConst;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; put 'run;'; put '%local x curds;'; put '%if &flavour=SAS %then %do;'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; put 'put "proc sql;";'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'length lab $1024 typ $20;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table &libref..&curds(";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view &libref..&curds(";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'if length(format)>1 then fmt=" format="!!cats(format);'; put 'if length(label)>1 then'; put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; put 'if notnull=''yes'' then notnul='' not null'';'; put 'if type=''char'' then typ=cats(''char('',length,'')'');'; put 'else if length ne 8 then typ=''num length=''!!cats(length);'; put 'else typ=''num'';'; put 'put name typ fmt notnul lab;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '/* ds=cats(libname,''.'',memname); */'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; put 'put '' '' name ;'; put 'end;'; put 'else put '' ,'' name ;'; put '*else put '' ,'' name ;'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '/*'; put 'ods output IntegrityConstraints=ic;'; put 'proc contents data=testali out2=info;'; put 'run;'; put '*/'; put '%end;'; put '%end;'; put '%else %if &flavour=TSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table [&schema].[&curds](";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view [&schema].[&curds](";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; put '%end;'; put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; put 'else fmt=cats(''[varchar](max)'');'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put 'put "[" name +(-1) "]" fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '*ds=cats(libname,''.'',memname);'; put 'if first.indxname then do;'; put '/* add nonclustered in case of multiple unique indexes */'; put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; put 'put '' ['' name +(-1) '']'';'; put 'end;'; put 'else put '' ,['' name +(-1) '']'';'; put 'if last.indxname then do;'; put 'put '' )'';'; put 'end;'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'put '')'';'; put 'put ''GO'';'; put 'run;'; put '/* add extended properties for labels */'; put 'data _null_;'; put 'file &fref mod;'; put 'length nm $64 lab $1024;'; put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; put 'put '' '';'; put 'put "EXEC sys.sp_addextendedproperty ";'; put 'put " @name=N''MS_Description'',@value=" lab ;'; put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; put 'if last then put ''GO'';'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put 'data _null_;'; put 'file &fref mod;'; put 'put "CREATE SCHEMA &schema;";'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put '%local curdsvarcount;'; put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; put '%if &curdsvarcount>1600 %then %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; put 'put "/* Postgres cannot create tables with over 1600 vars */";'; put 'put "/* No DDL will be generated for this table";'; put 'run;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'length fmt $32;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "CREATE TABLE &schema..&curds (";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "CREATE VIEW &schema..&curds (";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; put '%end;'; put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put '/* quote column names in case they represent reserved words */'; put 'name2=quote(trim(name));'; put 'put name2 fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; put 'put '' "'' name +(-1) ''"'' ;'; put 'end;'; put 'else put '' ,"'' name +(-1) ''"'';'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '%end;'; put '%end;'; put '%end;'; put '%if %upcase(&showlog)=YES %then %do;'; put 'options ps=max;'; put 'data _null_;'; put 'infile &fref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mend mp_getddl;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Download DDL for a table or entire library in a particular flavour.'; put '@details'; put '

SAS Macros

'; put '@li mddl_sas_cntlout.sas'; put '@li dc_assignlib.sas'; put '@li mf_existds.sas'; put '@li mp_abort.sas'; put '@li mp_getddl.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global libref ds flavour;'; put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; put '%mpeinit()'; put '%dc_assignlib(READ,&libref)'; put 'data _null_;'; put '/* check if the request is for a format catalog */'; put 'ds=symget(''ds'');'; put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; put 'ds=scan(ds,1,''-'');'; put 'libds=cats(symget(''libref''),''.'',ds);'; put 'putlog "Format Catalog Captured";'; put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; put 'call symputx(''libref'',''work'');'; put 'call symputx(''ds'',''fmtextract'');'; put 'end;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=("exist&ds" ne "exist" and %mf_existds(libds=&libref..&ds)<1)'; put ',mac=&_program'; put ',msg=%str(Dataset &libref..&ds was not found)'; put ')'; put '%let tmploc=%sysfunc(pathname(work))/temp.txt;'; put 'filename tmp "&tmploc";'; put '%mp_getddl(&libref,&ds,flavour=&flavour, fref=tmp, applydttm=YES)'; put '%mp_streamfile(contenttype=TEXT'; put ',inloc=%str(&tmploc)'; put ',outname=&libref._&ds..ddl'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getgroups; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getgroups(access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroups'; put ');'; put '%local oauth_bearer base_uri fname1 libref1;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '/* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getgroups;'; put '%macro dc_getgroups(outds=mm_getgroups);'; put '%mv_getgroups(outds=&outds)'; put 'proc sort'; put 'data=&outds(rename=(id=groupuri name=groupname description=groupdesc))'; put 'out=&outds (keep=groupuri groupname groupdesc);'; put 'by groupname;'; put 'run;'; put '%mend dc_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getgroups.sas'; put '@brief List all SAS Groups'; put '@details Gets a list of all SAS Groups. Runs without mpeinit() so that it'; put 'can be available to the sasjs/server configurator'; put '

SAS Macros

'; put '@li dc_getgroups.sas'; put '

Data Outputs

'; put '
groups
'; put '|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|'; put '|---|---|---|'; put '|`SomeGroup `|`A group `|`1`|'; put '|`Another Group`|`this is a different group`|`2`|'; put '|`admin`|`Administrators `|`3`|'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%dc_getgroups(outds=groups)'; put '%webout(OPEN)'; put '%webout(OBJ,groups)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getrawdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mpe_filtermaster(mode,libds,'; put 'dclib=,'; put 'filter_rk=-1,'; put 'outref=0,'; put 'outds=work.query'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%let mode=%upcase(&mode);'; put '%let libds=%upcase(&libds);'; put '%mp_abort(iftrue= ('; put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid MODE: &mode)'; put ')'; put '%mp_abort(iftrue= (&outref = 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Please provide a fileref!)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename &outref temp;'; put '/* ensure outputs exist */'; put 'data _null_;'; put 'file &outref;'; put 'put '' '';'; put 'run;'; put 'data &outds;'; put 'set &dclib..mpe_filtersource;'; put 'stop;'; put 'run;'; put '/**'; put '* Deal with FILTER_RK first'; put '*/'; put '%if &filter_rk gt 0 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''( ''@@;'; put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; put 'call symputx(''filter_hash'',filter_hash,''l'');'; put 'run;'; put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; put 'by filter_line;'; put 'run;'; put '%mp_filtergenerate(&outds,outref=&outref)'; put '%end;'; put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; put '%local varfrom varto;'; put '%let varfrom=0;'; put 'proc sql;'; put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; put 'from &dclib..MPE_TABLES'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; put '%put &=varfrom;'; put '%put &=varto;'; put '/**'; put '* Check if the date variables were mentioned in the query'; put '* This is a trigger for serving a historical view instead of current'; put '* we skip this part when checking an ULOAD as there are no date vars'; put '*/'; put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; put '%local validityvars;'; put 'proc sql;'; put 'select count(*) into: validityvars'; put 'from &outds'; put 'where variable_nm in ("&varfrom","&varto");'; put '%if &validityvars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'length filter_text $32767;'; put 'varfrom=symget(''varfrom'');'; put 'varto=symget(''varto'');'; put 'filter_text=catx('' '','; put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; put ');'; put 'if &filter_rk > 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mp_ds2cards(base_ds, tgt_ds='; put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; put ',maxobs=max'; put ',random_sample=NO'; put ',showlog=YES'; put ',outencoding='; put ',append=NO'; put ')/*/STORE SOURCE*/;'; put '%local i setds nvars;'; put '%if not %sysfunc(exist(&base_ds)) %then %do;'; put '%put %str(WARN)ING: &base_ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; put '%else %let append=mod;'; put '/* get varcount */'; put '%let nvars=0;'; put 'proc sql noprint;'; put 'select count(*) into: nvars from dictionary.columns'; put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; put '%if &nvars=0 %then %do;'; put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; put '%return;'; put '%end;'; put '/* get indexes */'; put 'proc sort'; put 'data=sashelp.vindex('; put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; put ')'; put 'out=_data_;'; put 'by indxname indxpos;'; put 'run;'; put '%local indexes;'; put 'data _null_;'; put 'set &syslast end=last;'; put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; put 'by indxname indxpos;'; put 'length vars $32767 nom uni $8;'; put 'retain vars;'; put 'if first.indxname then do;'; put 'idxcnt+1;'; put 'nom='''';'; put 'uni='''';'; put 'vars=name;'; put 'end;'; put 'else vars=catx('' '',vars,name);'; put 'if last.indxname then do;'; put 'if nomiss=''yes'' then nom=''/nomiss'';'; put 'if unique=''yes'' then uni=''/unique'';'; put 'call symputx(''indexes'''; put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; put ',''l'');'; put 'end;'; put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; put 'run;'; put 'data;run;'; put '%let setds=&syslast;'; put 'proc sql'; put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; put 'outobs=&maxobs;'; put '%end;'; put ';'; put 'create table &setds as select * from &base_ds'; put '%if &random_sample=YES %then %do;'; put 'order by ranuni(42)'; put '%end;'; put ';'; put 'reset outobs=max;'; put 'create table datalines1 as'; put 'select name,type,length,varnum,format,label from dictionary.columns'; put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; put '/**'; put 'Due to long decimals cannot use best. format'; put 'So - use bestd. format and then use character functions to strip trailing'; put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; put 'note2err when there are missings.'; put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; put ',put(VARIABLE,best32.)'; put ',substrn(put(VARIABLE,bestd32.),1'; put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; put '**/'; put 'data datalines_2;'; put 'format dataline $32000.;'; put 'set datalines1 (where=(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; put 'if type=''num'' then dataline='; put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; put ',put('',name,'',best32.-l)'; put ',substrn(put('',name,'',bestd32.-l),1'; put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; put '/**'; put '* binary data must be converted, to store in text format. It is identified'; put '* by the presence of the $HEX keyword in the format.'; put '*/'; put 'else if upcase(format)=:''$HEX'' then'; put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; put '/**'; put '* There is no easy way to store line breaks in a cards file.'; put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; put '* Removing all nonprintables with kw (keep writeable)'; put '*/'; put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; put 'run;'; put 'proc sql noprint;'; put 'select dataline into: datalines separated by '','' from datalines_2;'; put '%local'; put 'process_dttm_flg'; put 'valid_from_dttm_flg'; put 'valid_to_dttm_flg'; put ';'; put '%let process_dttm_flg = N;'; put '%let valid_from_dttm_flg = N;'; put '%let valid_to_dttm_flg = N;'; put 'data _null_;'; put 'set datalines1 ;'; put '/* build attrib statement */'; put 'if type=''char'' then type2=''$'';'; put 'if strip(format) ne '''' then format2=cats(''format='',format);'; put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; put 'str1=catx('' '',(put(name,$33.)||''length='')'; put ',put(cats(type2,length),$7.)||format2,label2);'; put '/* Build input statement */'; put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; put 'else if type=''char'' then type3='':$char.'';'; put 'str2=put(name,$33.)||type3;'; put 'if(upcase(name) = "PROCESSED_DTTM") then'; put 'call symputx("process_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_FROM_DTTM") then'; put 'call symputx("valid_from_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_TO_DTTM") then'; put 'call symputx("valid_to_dttm_flg", "Y", "L");'; put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; put ', ifc(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; put 'run;'; put 'data _null_;'; put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; put 'length __attrib $32767;'; put 'if _n_=1 then do;'; put 'put ''/**'';'; put 'put '' @file'';'; put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; put 'put " Source: https://github.com/sasjs/core";'; put 'put '' @cond '';'; put 'put ''**/'';'; put 'put "data &tgt_ds &indexes;";'; put 'put "attrib ";'; put '%do i = 1 %to &nvars;'; put '__attrib=symget("attrib_stmt_&i");'; put 'put __attrib;'; put '%end;'; put 'put ";";'; put '%if &process_dttm_flg. eq Y %then %do;'; put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; put '%end;'; put '%if &valid_from_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_FROM_DTTM &low_date;'';'; put '%end;'; put '%if &valid_to_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_TO_DTTM &high_date;'';'; put '%end;'; put 'if __nobs=0 then do;'; put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; put 'put ''stop;'';'; put 'put ''run;'';'; put 'end;'; put 'else do;'; put 'put "infile cards dsd;";'; put 'put "input ";'; put '%do i = 1 %to &nvars.;'; put '%if(%length(&&input_stmt_&i..)) %then'; put 'put " &&input_stmt_&i..";'; put ';'; put '%end;'; put 'put ";";'; put 'put ''missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'';'; put 'put "datalines4;";'; put 'end;'; put 'end;'; put 'set &setds end=__lastobs nobs=__nobs;'; put '/* remove all formats for write purposes - some have long underlying decimals */'; put 'format _numeric_ best30.29;'; put 'length __dataline $32767;'; put '__dataline=catq(''cqtmb'',&datalines);'; put 'put __dataline;'; put 'if __lastobs then do;'; put 'put '';;;;'';'; put 'put ''run;'';'; put 'put ''/** @endcond **/'';'; put 'stop;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &setds;'; put 'quit;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &cards_file lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: CARDS FILE SAVED IN:;'; put '%put NOTE-;%put NOTE-;'; put '%put NOTE- %sysfunc(dequote(&cards_file.));'; put '%put NOTE-;%put NOTE-;'; put '%mend mp_ds2cards;'; put '/** @endcond **/'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Downloads data in a variety of formats'; put '@details To enable direct download, this service runs in a dedicated stream'; put 'as a GET request using URL parameters as inputs.'; put 'The inputs are:'; put '@li table - the libds of the table to be downloaded'; put '@li type - either SAS, CSV, EXCEL, MARKDOWN, WEBCSV or WEBTAB'; put '@li filter - the filter RK if used'; put '

SAS Macros

'; put '@li mf_verifymacvars.sas'; put '@li mf_getuser.sas'; put '@li mf_existfeature.sas'; put '@li dc_assignlib.sas'; put '@li mp_ds2cards.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_cntlout.sas'; put '@li mp_streamfile.sas'; put '@li mpe_filtermaster.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global table type filter ds format is_fmt txfrom txto;'; put '%mpeinit()'; put '%let user=%mf_getuser();'; put '%let is_fmt=0;'; put '%mp_abort(iftrue= (%mf_verifymacvars(type table)=0)'; put ',mac=&_program..sas'; put ',msg=%str(Invalid inputs: type table)'; put ')'; put '%let libds=%upcase(&table); /* actual source */'; put '%let table=%upcase(&table); /* used as label for fmt catalogs */'; put '%let lib=%scan(&table,1,.);'; put '%let ds=%scan(&table,2,.);'; put '%dc_assignlib(READ,&lib)'; put 'data _null_;'; put 'set &mpelib..MPE_TABLES;'; put 'where upcase(libref)="&lib" and upcase(dsn)="&ds";'; put '/* if a TXTEMPORAL table then filter as such */'; put 'call symputx(''txfrom'',var_txfrom);'; put 'call symputx(''txto'',var_txto);'; put 'ds=symget(''ds'');'; put 'is_fmt=0;'; put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; put 'ds=scan(ds,1,''-'');'; put 'table=cats("&lib..",ds);'; put 'putlog "Format Catalog Captured";'; put 'is_fmt=1;'; put 'call symputx(''libds'',''work.fmtextract'');'; put 'call symputx(''table'',table);'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&table'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '%put preparing query;'; put '%mpe_filtermaster(DLOAD,&libds,'; put 'dclib=&mpelib,'; put 'filter_rk=&filter,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%put printing generated filterquery:;'; put 'data _null_;'; put 'infile filtref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put 'options obs=200000;/* stop limit */'; put 'data staged(drop=&txfrom &txto);'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put 'options obs=max;'; put 'options validvarname=upcase;'; put '%macro mpestp_getrawdata();'; put '%local outfile;'; put '%if &type=SAS %then %do;'; put '%let outfile=%sysfunc(pathname(work))/&table..sas;'; put '%mp_ds2cards(base_ds=staged'; put ', tgt_ds=&table'; put ', cards_file= "&outfile"'; put ', maxobs=100000)'; put '%let ext=sas;'; put '%let mimetype=text;'; put '%end;'; put '%else %if &type=CSV or (&type=EXCEL and %mf_existfeature(EXPORTXLS) ne 1)'; put '/* cannot proc export excel if PC Files is not licensed */'; put '%then %do;'; put '%let outfile=%sysfunc(pathname(work))/&table..csv;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= "&outfile"'; put 'DBMS=csv REPLACE;'; put 'RUN;'; put '%let ext=csv;'; put '%let mimetype=csv;'; put '%end;'; put '%else %if &type=EXCEL %then %do;'; put '%let ext=xlsx;'; put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= "&outfile"'; put 'DBMS=xlsx ;'; put 'RUN;'; put '%let mimetype=XLSX;'; put '%end;'; put '%else %if &type=MARKDOWN %then %do;'; put '%let ext=md;'; put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; put 'filename mdref "&outfile" lrecl=32767;'; put '%mp_ds2md(staged,outref=mdref,showlog=NO)'; put '%let mimetype=MARKDOWN;'; put '%end;'; put '%else %if &type=WEBCSV %then %do;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= _webout'; put 'DBMS=csv REPLACE;'; put 'RUN;'; put '/* don''t set headers */'; put '%return;'; put '%end;'; put '%else %if &type=WEBTAB %then %do;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= _webout'; put 'DBMS=tab REPLACE;'; put 'RUN;'; put '/* don''t set headers */'; put '%return;'; put '%end;'; put '%else %do;'; put '%mp_abort(msg=type &type not supported,mac=mpestp_getrawdata.sas);'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%mp_streamfile(contenttype=&mimetype'; put ',inloc=%str(&outfile)'; put ',outname=&table..&ext'; put ')'; put '%mend mpestp_getrawdata;'; put '%mpestp_getrawdata()'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=refreshlibinfo; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##BITEMP_&base_dsn;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data bitemp5a_lkp (keep=&md5_col);'; put 'set bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[##BITEMP_&base_dsn];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs(lib=0);'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data libs0;'; put 'set mm_getlibs;'; put 'by libraryref;'; put '%if &lib ne 0 %then %do;'; put 'where upcase(libraryref)="%upcase(&lib)";'; put '%end;'; put 'if "%mf_getplatform()"="SASMETA" then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sql;'; put 'create table libs1 as'; put 'select distinct libname'; put ',engine'; put ',path'; put ',level'; put ',sysname'; put ',sysvalue'; put 'from dictionary.libnames'; put 'order by libname, level,engine,path;'; put 'data libs2;'; put 'set libs1;'; put 'length tran $1024;'; put 'if missing(sysname) then sysname=''Missing'';'; put 'select(sysname);'; put 'when(''Access Permission'') tran=''Permissions'';'; put 'when(''Owner Name'') tran=''Owner'';'; put 'when(''Schema/Owner'') tran=''schema'';'; put 'otherwise tran=sysname;'; put 'end;'; put 'run;'; put 'proc transpose data=libs2 out=libs3;'; put 'by libname level engine path;'; put 'var sysvalue;'; put 'id tran;'; put 'run;'; put 'data libs4(rename=(libname=libref));'; put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; put 'if _n_=1 then call missing (of _all_);'; put 'set libs3;'; put 'by libname;'; put 'if engine=''V9'' then engine=''BASE'';'; put 'if first.libname then do;'; put 'retain paths perms owners schemas;'; put 'paths=''(''!!quote(trim(path));'; put 'perms=permissions;'; put 'owners=owner;'; put 'schemas=schema;'; put 'end;'; put 'else do;'; put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; put 'perms=trim(perms)!!'',''!!trim(permissions);'; put 'owners=trim(owners)!!'',''!!trim(owner);'; put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; put 'end;'; put 'if last.libname then do;'; put 'paths=trim(paths)!!'')'';'; put 'schemas=cats(schemas);'; put 'output;'; put 'end;'; put 'keep libname engine paths perms owners schemas;'; put 'run;'; put 'proc sql;'; put 'create table libs5 as'; put 'select a.libref'; put ',coalescec(b.engine,a.engine) as engine length=32'; put ',b.libraryname as libname'; put ',a.paths'; put ',a.perms'; put ',a.owners'; put ',a.schemas'; put ',b.libraryid as libid'; put 'from libs4 a'; put 'left join libs0 b'; put 'on upcase(a.libref)=upcase(b.libraryref)'; put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; put ',''MAPSGFK'');'; put '%bitemporal_dataloader(base_lib=&dc_libref'; put ',base_dsn=MPE_DATACATALOG_LIBS'; put ',append_dsn=libs5'; put ',PK=LIBREF'; put ',etlsource=&_program'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&dc_libref'; put ')'; put '%mend mpe_refreshlibs;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mpe_refreshtables(lib,ds=#all);'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%local engine; %let engine=%mf_getengine(&lib);'; put '%local schema; %let schema=%mf_getschema(&lib);'; put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; put 'proc sql;'; put 'create table cols as'; put 'select libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put ',upcase(name) as name'; put ',type'; put ',length'; put ',varnum'; put ',label'; put ',format'; put ',idxusage'; put ',notnull'; put 'from dictionary.columns'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; put ')'; put '%if &engine=SQLSVR %then %do;'; put 'proc sql;'; put 'connect using &lib;'; put 'create table work.indexes as'; put 'select * from connection to &lib('; put 'select'; put 's.name as SchemaName,'; put 't.name as memname,'; put 'tc.name as name,'; put 'ic.key_ordinal as KeyOrderNr'; put 'from'; put 'sys.schemas s'; put 'inner join sys.tables t on s.schema_id=t.schema_id'; put 'inner join sys.indexes i on t.object_id=i.object_id'; put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; put 'and i.index_id=ic.index_id'; put 'inner join sys.columns tc on ic.object_id=tc.object_id'; put 'and ic.column_id=tc.column_id'; put 'where i.is_primary_key=1'; put 'and s.name=%str(%'')&schema%str(%'')'; put 'order by t.name, ic.key_ordinal ;'; put ');disconnect from &lib;'; put 'create table finalcols as'; put 'select a.*'; put ',case when b.name is not null then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.indexes b'; put 'on a.dsn=b.memname'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn;'; put '%end;'; put '%else %do;'; put '%local dsn;'; put '%if &ds = #ALL %then %let dsn=;'; put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; put '/* extract cols that are clearly primary keys */'; put 'proc sql;'; put 'create table work.pk4sure as'; put 'select libref'; put ',table_name'; put ',constraint_name'; put ',constraint_order'; put ',column_name as name'; put 'from work.constraints'; put 'where constraint_type=''PRIMARY'''; put 'order by 1,2,3,4;'; put '/* extract unique constraints where every col is also NOT NULL */'; put 'proc sql;'; put 'create table work.sum as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',count(a.column_name) as unq_cnt'; put ',count(b.column_name) as nul_cnt'; put 'from work.constraints(where=(constraint_type =''UNIQUE'')) a'; put 'left join work.constraints(where=(constraint_type =''NOT NULL'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.column_name=b.column_name'; put 'group by 1,2,3'; put 'having unq_cnt=nul_cnt;'; put '/* extract cols from the relevant unique constraints */'; put 'create table work.pkdefault as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',b.constraint_order'; put ',b.column_name as name'; put 'from work.sum a'; put 'left join work.constraints(where=(constraint_type =''UNIQUE'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.constraint_name=b.constraint_name'; put 'order by 1,2,3,4;'; put '/* extract cols from the relevant unique INDEXES */'; put 'create table work.pkfromindex as'; put 'select libname as libref'; put ',memname as table_name'; put ',indxname as constraint_name'; put ',indxpos as constraint_order'; put ',name'; put 'from dictionary.indexes'; put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put 'order by 1,2,3,4;'; put '/* create one table */'; put 'data work.finalpks;'; put 'set pkdefault pk4sure pkfromindex;'; put 'pk_ind=1;'; put '/* if there are multiple unique constraints, take the first */'; put 'by libref table_name constraint_name;'; put 'retain keepme;'; put 'if first.table_name then keepme=1;'; put 'if first.constraint_name and not first.table_name then keepme=0;'; put 'if keepme=1;'; put 'run;'; put '/* join back to starting table */'; put 'proc sql;'; put 'create table finalcols as'; put 'select a.*'; put ',b.constraint_order'; put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.finalpks b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.table_name'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn,constraint_order;'; put '%end;'; put '/* load columns */'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_vars'; put ',append_dsn=finalcols'; put ',PK=LIBREF DSN NAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF DSN'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '/* prepare tables */'; put 'proc sql;'; put 'create table work.tabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; put ',dbms_memtype'; put '%end;'; put '%else %do;'; put ',''n/a'' as dbms_memtype format=$32.'; put '%end;'; put ',typemem'; put ',memlabel'; put ',nvar'; put ',compress'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put 'data tabs2;'; put 'set finalcols;'; put 'length pk_fields $512;'; put 'retain pk_fields;'; put 'by libref dsn;'; put 'if first.dsn then pk_fields='''';'; put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; put 'if last.dsn then output;'; put 'run;'; put 'proc sql;'; put 'create table work.finaltabs as'; put 'select a.libref'; put ',a.dsn'; put ',a.memtype'; put ',a.dbms_memtype'; put ',a.typemem'; put ',a.memlabel'; put ',a.nvar'; put ',a.compress'; put ',b.pk_fields'; put 'from work.tabs a'; put 'left join work.tabs2 b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_tabs'; put ',append_dsn=finaltabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '/* prepare table frequently changing attributes */'; put 'proc sql;'; put '%if &engine=SQLSVR %then %do;'; put 'connect using &lib;'; put 'create table work.attrs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; put 'FROM sys.tables ;'; put ');'; put 'create table work.nobs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; put ',A.Name, AVG(B.rows) AS ''RowCount'''; put 'FROM sys.objects A'; put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; put 'WHERE A.type = ''U'''; put 'GROUP BY A.schema_id, A.Name'; put ');'; put 'disconnect from &lib;'; put 'create table statustabs as select'; put 'a.libref'; put ',a.dsn'; put ',b.create_date as crdate'; put ',b.modify_date as modate'; put ',. as filesize'; put ',c.RowCount as nobs'; put 'from work.tabs a'; put 'left join work.attrs(where=(schema="&schema")) b'; put 'on upcase(a.dsn)=upcase(b.name)'; put 'left join work.nobs(where=(schema="&schema")) c'; put 'on upcase(a.dsn)=upcase(c.name);'; put '%end;'; put '%else %do;'; put 'create table statustabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',crdate'; put ',modate'; put ',filesize'; put ',nobs'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%end;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_tabs'; put ',append_dsn=statustabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '%if &ds = #ALL %then %do;'; put 'proc sql;'; put 'create table statuslibs as select'; put 'libref'; put ',sum(filesize) as libsize'; put ',count(*) as table_cnt'; put 'from statustabs'; put 'group by 1;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_libs'; put ',append_dsn=statuslibs'; put ',PK=LIBREF'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put ')'; put '%end;'; put '%mend mpe_refreshtables;'; put '%macro dc_refreshcatalog();'; put '%mpe_refreshlibs()'; put 'filename executor catalog ''work.code.code.source'';'; put 'data libraries;'; put 'set &mpelib..mpe_datacatalog_libs;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'file executor;'; put 'str=cats(''%mpe_refreshtables('',libref,'')'');'; put 'put str;'; put 'putlog str;'; put 'run;'; put '%inc executor;'; put '%mend dc_refreshcatalog;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file refreshlibinfo.sas'; put '@brief Refresh the Data Catalog for a particular library'; put '@details When showing library info in the VIEW menu, the data is taken from'; put 'the Data Catalog tables. These may be empty or outdated, and so this service'; put 'allows end users to run a refresh of the data.'; put '

Service Inputs

'; put '
lib2refresh
'; put 'Should contain the libref to be refreshed.'; put '|libref:$8.|'; put '|---|'; put '|SOMELIB|'; put '

Service Outputs

'; put '
libinfo
'; put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; put '|---|---|---|---|---|---|---|---|---|'; put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_refreshcatalog.sas'; put '@li mp_abort.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%webout(FETCH)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc Problem on startup)'; put ')'; put '%let libref=;'; put 'data _null_;'; put 'set work.lib2refresh;'; put 'call symputx(''libref'',libref);'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc Problem with inputs - was lib2refresh object sent?)'; put ')'; put '%dc_assignlib(WRITE,&libref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc after lib assignment)'; put ')'; put '%dc_refreshcatalog(&libref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc Problem when running the catalog refresh)'; put ')'; put '/* get libinfo */'; put 'proc sql;'; put 'create table work.libinfo as'; put 'select a.engine,'; put 'a.libname,'; put 'a.paths,'; put 'a.perms,'; put 'a.owners,'; put 'a.schemas,'; put 'a.libid,'; put 'b.libsize,'; put 'b.table_cnt'; put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'inner join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.libref=b.libref'; put 'where a.libref="&libref";'; put '%webout(OPEN)'; put '%webout(OBJ,libinfo)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=registeruser; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file registeruser.sas'; put '@brief Registers a new user in Data Controller'; put '@details New users are logged after accepting EULA terms.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let userid=%mf_getuser();'; put '/* confirm the user is not registered */'; put '%let isRegistered=0;'; put 'proc sql noprint;'; put 'select count(*) into: isregistered'; put 'from &mpelib..mpe_users'; put 'where user_id="&userid";'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; put ')'; put '%mp_abort(iftrue= (&isregistered > 0)'; put ',mac=&_program..sas'; put ',msg=%str(User &userid is already registered on &mpelib..mpe_users!)'; put ')'; put 'data work.append;'; put 'if 0 then set &mpelib..mpe_users;'; put 'user_id=symget(''userid'');'; put 'registered_dt=today();'; put 'last_seen_dt=today();'; put 'run;'; put 'proc append base=&mpelib..mpe_users data=work.append;'; put '%let isRegistered=0;'; put 'proc sql noprint;'; put 'select count(*) into: isregistered'; put 'from &mpelib..mpe_users'; put 'where user_id="&userid";'; put '%mp_abort(iftrue= (&syscc ne 0 or &isregistered ne 1)'; put ',mac=&_program..sas'; put ',msg=%str(Problem appending to &mpelib..mpe_users table)'; put ')'; put 'data work.return;'; put 'msg=''SUCCESS'';'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,return)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=startupservice; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file startupservice.sas'; put '@brief List the libraries and tables the mp-editor user can access'; put '@details If user is in a control group (&mpeadmins, configured in mpeinit.sas)'; put 'then they have access to all libraries / tables. Otherwise a join is made'; put 'to the &mpelib..mpe_security table.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Issue on startup in startupService)'; put ')'; put '%let userid=%mf_getuser();'; put '%put userid is &userid;'; put '%mpe_getgroups(user=&userid,outds=groups)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Issue with Groups syscc=&syscc for user &userid)'; put ')'; put '/* check if user is an admin */'; put '%let admin_check=0;'; put 'proc sql noprint;'; put 'select count(*) into: admin_check'; put 'from groups'; put 'where groupname="&mpeadmins";'; put '/* check if user is registered or not */'; put '%let isRegistered=0;'; put 'select count(*) into: isregistered'; put 'from &mpelib..mpe_users'; put 'where user_id="&userid";'; put '/* get number of registered users */'; put '%let registerCount=0;'; put 'select count(*) into: registercount'; put 'from &mpelib..mpe_users'; put 'where last_seen_dt>%sysfunc(today())-365;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; put ')'; put '%global dc_restrict_editrecord;'; put 'data work.globvars;'; put 'dclib="&mpelib";'; put 'sas9lineage_enabled=1;'; put 'isadmin=&admin_check;'; put 'isregistered=&isregistered;'; put 'registercount=®isterCount;'; put 'dc_admin_group="&mpeadmins";'; put '/* fetched from mpe_config in dc_getsettings */'; put 'licence_key="&dc_licence_key";'; put 'activation_key="&dc_activation_key";'; put 'dc_restrict_editrecord="&dc_restrict_editrecord";'; put 'run;'; put '%macro mstp_mpeditorstartup();'; put 'data _null_;'; put 'putlog "entering &sysmacroname";'; put 'run;'; put 'proc sql noprint;'; put '/* update last seen, if seen */'; put '%if &isregistered>0 %then %do;'; put 'update &mpelib..mpe_users'; put 'set last_seen_dt=%sysfunc(today())'; put 'where user_id="&userid";'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem updating &mpelib..mpe_users table)'; put ')'; put '%local all_cnt;'; put 'select count(*) into: all_cnt'; put 'from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and ACCESS_LEVEL in (''EDIT'')'; put 'and libref=''*ALL*'''; put 'and SAS_GROUP in (select groupname from groups);'; put '%if &admin_check >0 or &all_cnt>0 %then %do;'; put 'create table sasDatasets as'; put 'select distinct libref, dsn'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. lt tx_to'; put 'order by 1;'; put '%end;'; put '%else %do;'; put 'create table sasDatasets as'; put 'select distinct a.libref,a.dsn'; put 'from &mpelib..mpe_tables a'; put 'left join &mpelib..mpe_security b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn'; put 'where &dc_dttmtfmt. lt a.tx_to'; put 'and &dc_dttmtfmt. lt b.tx_to'; put 'and b.ACCESS_LEVEL in (''EDIT'')'; put 'and b.SAS_GROUP in (select groupname from groups)'; put 'order by 1;'; put '%end;'; put '%mend mstp_mpeditorstartup;'; put '%mstp_mpeditorstartup()'; put 'create table saslibs as'; put 'select distinct libref'; put 'from &syslast;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(issue with security validation)'; put ')'; put 'proc sql;'; put 'create table work.xlmaps as'; put 'select distinct a.XLMAP_ID'; put ',b.XLMAP_DESCRIPTION'; put ',coalescec(b.XLMAP_TARGETLIBDS,"&mpelib..MPE_XLMAP_DATA")'; put 'as XLMAP_TARGETLIBDS'; put 'from &mpelib..MPE_XLMAP_RULES a'; put 'left join &mpelib..MPE_XLMAP_INFO(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.XLMAP_ID=b.XLMAP_ID'; put 'where &dc_dttmtfmt. lt a.tx_to;'; put '/* we don''t want the XLMAP target datasets to be directly editable */'; put 'delete from sasdatasets'; put 'where cats(libref,''.'',dsn) in (select XLMAP_TARGETLIBDS from xlmaps);'; put '%webout(OPEN)'; put '%webout(OBJ,sasDatasets)'; put '%webout(OBJ,saslibs)'; put '%webout(OBJ,globvars)'; put '%webout(ARR,xlmaps)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tokenauth; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mv_tokenauth(inds=mv_registerclient'; put ',outds=mv_tokenauth'; put ',client_id=someclient'; put ',client_secret=somesecret'; put ',grant_type=authorization_code'; put ',code='; put ',user='; put ',pass='; put ',access_token_var=ACCESS_TOKEN'; put ',refresh_token_var=REFRESH_TOKEN'; put ',base_uri=#NOTSET#'; put ');'; put '%global &access_token_var &refresh_token_var;'; put '%local fref1 fref2 libref;'; put '/* test the validity of inputs */'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_existds(&inds) %then %do;'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''client_id'',client_id,''l'');'; put 'call symputx(''client_secret'',client_secret,''l'');'; put 'if not missing(auth_code) then call symputx(''code'',auth_code,''l'');'; put 'run;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type=authorization_code and %str(&code)=%str())'; put ',mac=&sysmacroname'; put ',msg=%str(Authorization code required)'; put ')'; put '%mp_abort(iftrue=('; put '&grant_type=password and (%str(&user)=%str() or %str(&pass)=%str()))'; put ',mac=&sysmacroname'; put ',msg=%str(username / password required)'; put ')'; put '/* prepare appropriate grant type */'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'if "&grant_type"=''authorization_code'' then string=cats('; put '''grant_type=authorization_code&code='',symget(''code''));'; put 'else string=cats(''grant_type=password&username='',symget(''user'')'; put ',''&password='',symget(pass));'; put 'call symputx(''grantstring'',cats("''",string,"''"));'; put 'run;'; put '/*data _null_;infile &fref1;input;put _infile_;run;*/'; put '/**'; put '* Request access token'; put '*/'; put '%if &base_uri=#NOTSET# %then %let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%let fref2=%mf_getuniquefileref();'; put 'proc http method=''POST'' in=&grantstring out=&fref2'; put 'url="&base_uri/SASLogon/oauth/token"'; put 'WEBUSERNAME="&client_id"'; put 'WEBPASSWORD="&client_secret"'; put 'AUTH_BASIC;'; put 'headers "Accept"="application/json"'; put '"Content-Type"="application/x-www-form-urlencoded";'; put 'run;'; put '/*data _null_;infile &fref2;input;put _infile_;run;*/'; put '/**'; put '* Extract access / refresh tokens'; put '*/'; put '%let libref=%mf_getuniquelibref();'; put 'libname &libref JSON fileref=&fref2;'; put '/* extract the tokens */'; put 'data &outds;'; put 'set &libref..root;'; put 'call symputx("&access_token_var",access_token);'; put 'call symputx("&refresh_token_var",refresh_token);'; put 'run;'; put 'libname &libref clear;'; put 'filename &fref1 clear;'; put 'filename &fref2 clear;'; put '%mend mv_tokenauth;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file tokenauth.sas'; put '@brief Get initial tokens using an auth code - DEPRECATED'; put '

SAS Macros

'; put '@li mv_tokenauth.sas'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%webout(FETCH)'; put 'data _null_;'; put 'set work.fromjs;'; put 'call symputx(''viyasettings'',viyasettings);'; put 'call symputx(''client_id'',client_id);'; put 'call symputx(''auth_code'',auth_code);'; put 'run;'; put 'data authme;'; put '/* get client info from special location */'; put 'infile "&viyasettings" dsd;'; put 'input client_secret:$100.;'; put 'client_id="&client_id";'; put 'auth_code="&auth_code";'; put 'run;'; put '/* get tokens */'; put '%mv_tokenauth(inds=authme, outds=fromSAS(keep=access_token refresh_token))'; put '/* send back to frontend */'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tokenrefresh; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mv_tokenrefresh(inds=mv_registerclient'; put ',outds=mv_tokenrefresh'; put ',client_id=someclient'; put ',client_secret=somesecret'; put ',grant_type=authorization_code'; put ',user='; put ',pass='; put ',access_token_var=ACCESS_TOKEN'; put ',refresh_token_var=REFRESH_TOKEN'; put ');'; put '%global &access_token_var &refresh_token_var;'; put 'options noquotelenmax;'; put '%local fref1 libref;'; put '/* test the validity of inputs */'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort('; put 'iftrue=(&grant_type=password and (%str(&user)=%str() or %str(&pass)=%str()))'; put ',mac=&sysmacroname'; put ',msg=%str(username / password required)'; put ')'; put '%if %mf_existds(&inds) %then %do;'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''client_id'',client_id,''l'');'; put 'call symputx(''client_secret'',client_secret,''l'');'; put 'call symputx("&refresh_token_var",&refresh_token_var,''l'');'; put 'run;'; put '%end;'; put '%mp_abort(iftrue=(%str(&client_id)=%str() or %str(&client_secret)=%str())'; put ',mac=&sysmacroname'; put ',msg=%str(client / secret must both be provided)'; put ')'; put '/**'; put '* Request access token'; put '*/'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%let fref1=%mf_getuniquefileref();'; put 'proc http method=''POST'''; put 'in="grant_type=refresh_token%nrstr(&)refresh_token=&&&refresh_token_var"'; put 'out=&fref1'; put 'url="&base_uri/SASLogon/oauth/token"'; put 'WEBUSERNAME="&client_id"'; put 'WEBPASSWORD="&client_secret"'; put 'AUTH_BASIC;'; put 'headers "Accept"="application/json"'; put '"Content-Type"="application/x-www-form-urlencoded";'; put 'run;'; put '/*data _null_;infile &fref1;input;put _infile_;run;*/'; put '/**'; put '* Extract access / refresh tokens'; put '*/'; put '%let libref=%mf_getuniquelibref();'; put 'libname &libref JSON fileref=&fref1;'; put '/* extract the token */'; put 'data &outds;'; put 'set &libref..root;'; put 'call symputx("&access_token_var",access_token);'; put 'call symputx("&refresh_token_var",refresh_token);'; put 'run;'; put 'libname &libref clear;'; put 'filename &fref1 clear;'; put '%mend mv_tokenrefresh;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file tokenauth.sas'; put '@brief Get initial tokens using an auth code - DEPRECATED'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li mv_tokenrefresh.sas'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%webout(FETCH)'; put 'data _null_;'; put 'set work.fromjs;'; put 'call symputx(''viyasettings'',viyasettings);'; put 'call symputx(''client_id'',client_id);'; put 'call symputx(''refresh_token'',refresh_token);'; put 'run;'; put 'data authme;'; put '/* get client info from special location */'; put 'infile "&viyasettings" dsd;'; put 'input client_secret:$100.;'; put 'client_id="&client_id";'; put 'refresh_token="&refresh_token";'; put 'run;'; put '/* get tokens */'; put '%mv_tokenrefresh(inds=authme, outds=fromSAS(keep=refresh_token access_token))'; put '/* send back to frontend */'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=validatefilter; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_islibds(libds'; put ')/*/STORE SOURCE*/;'; put '%local regex;'; put '%let regex=%sysfunc(prxparse(%str(/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i)));'; put '%sysfunc(prxmatch(®ex,&libds))'; put '%mend mf_islibds;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; put ')'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'infile &inref end=eof;'; put 'if _n_=1 then do;'; put 'put "proc sql;";'; put 'put "validate select * from &targetds";'; put 'put "where " ;'; put 'end;'; put 'input;'; put 'put _infile_;'; put 'putlog _infile_;'; put 'if eof then put ";quit;";'; put 'run;'; put '%inc &fref1;'; put 'data &outds;'; put 'if &sqlrc or &syscc or &syserr then do;'; put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; put 'output;'; put 'end;'; put 'else stop;'; put 'run;'; put 'filename &fref1 clear;'; put '%if %mf_nobs(&outds)>0 %then %do;'; put '%if &abort=YES %then %do;'; put 'data _null_;'; put 'set &outds;'; put 'call symputx(''REASON_CD'',reason_cd,''l'');'; put 'stop;'; put 'run;'; put '%mp_abort('; put 'mac=&sysmacroname,'; put 'msg=%str(Filter validation issues.)'; put ')'; put '%end;'; put '%let syscc=1008;'; put '%end;'; put '%mend mp_filtervalidate;'; put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put '/* Validate input column */'; put '%local vtype;'; put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; put 'mac=&sysmacroname,'; put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; put ')'; put '%if &vtype ne C %then %do;'; put '%put &sysmacroname: RAW_VALUE must be character;'; put '%let syscc=42;'; put '%return;'; put '%end;'; put '/**'; put '* Sanitise the values based on valid value lists, then strip out'; put '* quotes, commas, periods and spaces.'; put '*/'; put '%local reason_cd nobs;'; put '%let nobs=0;'; put 'data &outds;'; put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; put 'set &inds end=last;'; put 'length reason_cd $4032 vtype vtype2 $1 vnum dsid 8 tmp $4000;'; put 'drop tmp;'; put '/* quick check to ensure column exists */'; put 'if upcase(VARIABLE_NM) not in'; put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; put 'then do;'; put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; put 'putlog REASON_CD= VARIABLE_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'return;'; put 'end;'; put '/* need to open the dataset to get the column type */'; put 'retain dsid;'; put 'if _n_=1 then dsid=open("&targetds","i");'; put 'if dsid>0 then do;'; put 'vnum=varnum(dsid,VARIABLE_NM);'; put 'if vnum<1 then do;'; put '/* should not happen as was also tested for above */'; put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Could not open &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'stop;'; put 'end;'; put '/* closed list checks */'; put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; put 'putlog REASON_CD= GROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; put 'putlog REASON_CD= SUBGROUP_ID=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if OPERATOR_NM not in'; put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; put 'then do;'; put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; put 'putlog REASON_CD= OPERATOR_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put '/* special missing logic */'; put 'if vtype=''N'' & OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'') then do;'; put 'if cats(upcase(raw_value)) in ('; put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; put ')'; put 'then do;'; put '/* valid numeric - exit data step loop */'; put 'return;'; put 'end;'; put 'else if subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'end;'; put '/* special logic */'; put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; put 'else do;'; put 'if substr(raw_value,1,1) ne ''('''; put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; put 'then do;'; put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; put 'end;'; put '/* we now have a comma seperated list of values */'; put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; put 'tmp=scan(raw_value1,i,'','');'; put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; put 'if OPERATOR_NM =''BETWEEN'' and subpad(upcase(tmp),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put '/* is not valid syntax for IN or NOT IN */'; put 'vnum=varnum(dsid,subpad(tmp,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'REASON_CD=''Non Numeric value provided'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'return;'; put 'end;'; put 'end;'; put 'else raw_value1=raw_value;'; put '/* remove nested literals eg '''' */'; put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; put '/* now match string literals (always single quotes) */'; put 'raw_value2=raw_value1;'; put 'regex = prxparse("s/(\'').*?(\'')//");'; put 'call prxchange(regex,-1,raw_value2);'; put '/* remove commas and periods*/'; put 'raw_value3=compress(raw_value2,'',.'');'; put '/* output records that contain values other than digits and spaces */'; put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; put 'if vtype=''C'' and subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Char Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog (_all_)(=);'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'endstep:'; put 'if last then rc=close(dsid);'; put 'run;'; put 'data _null_;'; put 'set &outds end=last;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; put 'mac=&sysmacroname,'; put 'msg=%str(Data issue: %superq(reason_cd))'; put ')'; put '%if &nobs>0 %then %do;'; put '%let syscc=1008;'; put '%return;'; put '%end;'; put '/**'; put '* syntax checking passed but it does not mean the filter is valid'; put '* for that we can run a proc sql validate query'; put '*/'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put '%mp_filtergenerate(&inds,outref=&fref1)'; put '/* this macro will also set syscc to 1008 if any issues found */'; put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; put '%mend mp_filtercheck;'; put '%macro mp_md5(cvars=,nvars=);'; put '%local i var sep;'; put 'put(md5('; put '%do i=1 %to %sysfunc(countw(&cvars));'; put '%let var=%scan(&cvars,&i,%str( ));'; put '&sep put(md5(trim(&var)),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '%do i=1 %to %sysfunc(countw(&nvars));'; put '%let var=%scan(&nvars,&i,%str( ));'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put '&sep put(md5(trim(put(ifn(missing(&var),&var,&var*1),binary64.))),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '),$hex32.)'; put '%mend mp_md5;'; put '%macro mp_hashdataset('; put 'libds,'; put 'outds=work._data_,'; put 'salt=,'; put 'iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local keyvar /* roll up the md5 */'; put 'prevkeyvar /* retain prev record md5 */'; put 'lastvar /* last var in input ds */'; put 'cvars nvars;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '/* avoid naming conflict for hash key vars */'; put '%let keyvar=%mf_getuniquename();'; put '%let prevkeyvar=%mf_getuniquename();'; put '%let lastvar=%mf_getuniquename();'; put '%if %mf_getattrn(&libds,NLOBS)=0 %then %do;'; put 'data &outds;'; put 'length hashkey $32;'; put 'hashkey=put(md5("&salt"),$hex32.);'; put 'output;'; put 'stop;'; put 'run;'; put '%put &sysmacroname: Dataset &libds is empty, or is not a dataset;'; put '%put &sysmacroname: hashkey of &outds is based on salt (&salt) only;'; put '%end;'; put '%else %if %mf_getattrn(&libds,NLOBS)<0 %then %do;'; put '%put %str(ERR)OR: Dataset &libds is not a dataset;'; put '%end;'; put '%else %do;'; put 'data &outds(rename=(&keyvar=hashkey) keep=&keyvar)'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put 'length &prevkeyvar &keyvar $32;'; put 'retain &prevkeyvar;'; put 'if _n_=1 then &prevkeyvar=put(md5("&salt"),$hex32.);'; put 'set &libds end=&lastvar;'; put '/* hash should include previous row */'; put '&keyvar=%mp_md5('; put 'cvars=%mf_getvarlist(&libds,typefilter=C) &prevkeyvar,'; put 'nvars=%mf_getvarlist(&libds,typefilter=N)'; put ');'; put '&prevkeyvar=&keyvar;'; put 'if &lastvar then output;'; put 'run;'; put '%end;'; put '%mend mp_hashdataset;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '%macro mp_filterstore(libds=,'; put 'queryds=work.filterquery,'; put 'filter_summary=PERM.FILTER_SUMMARY,'; put 'filter_detail=PERM.FILTER_DETAIL,'; put 'lock_table=PERM.LOCK_TABLE,'; put 'maxkeytable=PERM.MAXKEYTABLE,'; put 'outresult=work.result,'; put 'outquery=work.query,'; put 'mdebug=1'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local ds0 ds1 ds2 ds3 ds4 filter_hash orig_libds;'; put '%let libds=%upcase(&libds);'; put '%let orig_libds=&libds;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mp_filterstore'; put ',msg=%str(syscc=&syscc on macro entry)'; put ')'; put '%mp_abort(iftrue= (%mf_islibds(&filter_summary)=0)'; put ',mac=mp_filterstore'; put ',msg=%str(Invalid filter_summary value: &filter_summary)'; put ')'; put '%mp_abort(iftrue= (%mf_islibds(&filter_detail)=0)'; put ',mac=mp_filterstore'; put ',msg=%str(Invalid filter_detail value: &filter_detail)'; put ')'; put '%mp_abort(iftrue= (%mf_islibds(&lock_table)=0)'; put ',mac=mp_filterstore'; put ',msg=%str(Invalid lock_table value: &lock_table)'; put ')'; put '/**'; put '* validate query'; put '* use format catalog export, if a format'; put '*/'; put '%if "%substr(&libds,%length(&libds)-2,3)"="-FC" %then %do;'; put '%let libds=%scan(&libds,1,-); /* chop off -FC extension */'; put '%let ds0=%mf_getuniquename(prefix=fmtds_);'; put '%let libds=&ds0;'; put '/*'; put 'There is no need to export the entire format catalog here - the validations'; put 'are done against the data model, not the data values. So we can simply'; put 'hardcode the structure based on the cntlout dataset.'; put '*/'; put '%mddl_sas_cntlout(libds=&ds0)'; put '%end;'; put '%mp_filtercheck(&queryds,targetds=&libds,abort=YES)'; put '/* hash the result */'; put '%let ds1=%mf_getuniquename(prefix=hashds);'; put '%mp_hashdataset(&queryds,outds=&ds1,salt=&orig_libds)'; put '%let filter_hash=%upcase(%mf_getvalue(&ds1,hashkey));'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'putlog "filter_hash=&filter_hash";'; put 'set &ds1;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '/* check if data already exists for this hash */'; put 'data &outresult;'; put 'set &filter_summary;'; put 'where filter_hash="&filter_hash";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mp_filterstore'; put ',msg=%str(syscc=&syscc after hash check)'; put ')'; put '%mp_abort(iftrue= ("&filter_hash "=" ")'; put ',mac=mp_filterstore'; put ',msg=%str(problem with filter_hash generation)'; put ')'; put '%if %mf_nobs(&outresult)=0 %then %do;'; put '/* first update summary table */'; put '%let ds3=%mf_getuniquename(prefix=filtersum);'; put 'data work.&ds3;'; put 'if 0 then set &filter_summary;'; put 'filter_table="&orig_libds";'; put 'filter_hash="&filter_hash";'; put 'PROCESSED_DTTM=%sysfunc(datetime());'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=%scan(&filter_summary,1,.)'; put ',ds=%scan(&filter_summary,2,.)'; put ',ref=MP_FILTERSTORE summary update - &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put '%let ds4=%mf_getuniquename(prefix=filtersumappend);'; put '%mp_retainedkey('; put 'base_lib=%scan(&filter_summary,1,.)'; put ',base_dsn=%scan(&filter_summary,2,.)'; put ',append_lib=work'; put ',append_dsn=&ds3'; put ',retained_key=filter_rk'; put ',business_key=filter_hash'; put ',maxkeytable=&maxkeytable'; put ',locktable=&lock_table'; put ',outds=work.&ds4'; put ')'; put 'proc append base=&filter_summary data=&ds4;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=%scan(&filter_summary,1,.)'; put ',ds=%scan(&filter_summary,2,.)'; put ',ref=MP_FILTERSTORE summary update - &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put '%if &syscc ne 0 %then %do;'; put 'data _null_;'; put 'set &ds4;'; put 'putlog (_all_)(=);'; put 'run;'; put '%goto err;'; put '%end;'; put 'data &outresult;'; put 'set &filter_summary;'; put 'where filter_hash="&filter_hash";'; put 'run;'; put '/* Next, update detail table */'; put '%let ds2=%mf_getuniquename(prefix=filterdetail);'; put 'data &ds2;'; put 'if 0 then set &filter_detail;'; put 'set &queryds;'; put 'format filter_hash $hex32. filter_line 8.;'; put 'filter_hash="&filter_hash";'; put 'filter_line=_n_;'; put 'PROCESSED_DTTM=%sysfunc(datetime());'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=%scan(&filter_detail,1,.)'; put ',ds=%scan(&filter_detail,2,.)'; put ',ref=MP_FILTERSTORE update - &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put 'proc append base=&filter_detail data=&ds2;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=%scan(&filter_detail,1,.)'; put ',ds=%scan(&filter_detail,2,.)'; put ',ref=MP_FILTERSTORE detail update &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put '%if &syscc ne 0 %then %do;'; put 'data _null_;'; put 'set &ds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%goto err;'; put '%end;'; put '%end;'; put 'proc sort data=&filter_detail(where=(filter_hash="&filter_hash")) out=&outquery;'; put 'by filter_line;'; put 'run;'; put '%err:'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mp_filterstore'; put ',msg=%str(syscc=&syscc on macro exit)'; put ')'; put '%mend mp_filterstore;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Validates a filter clause before it gets hashified, returns the RK'; put '@details Used to generate a FILTER_RK from an input query dataset.'; put 'Raw values are stored in dc.mpe_filtersource and the meta values are stored'; put 'in dc.mpe_filteranytable'; put '

Service Inputs

'; put '
IWANT
'; put '|FILTER_TABLE:$41.|'; put '|---|'; put '|DC258467.MPE_X_TEST|'; put '
FILTERQUERY
'; put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; put '|---|---|---|---|---|---|'; put '|AND|AND|1|SOME_BESTNUM|>|1|'; put '|AND|AND|1|SOME_TIME|=|77333|'; put '

Service Outputs

'; put '
result
'; put '@li FILTER_HASH'; put '@li FILTER_RK'; put '@li FILTER_TABLE'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getvalue.sas'; put '@li mp_filterstore.sas'; put '@li removecolsfromwork.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let ds=%upcase(%mf_getvalue(work.iwant,filter_table));'; put '%dc_assignlib(WRITE,%scan(&ds,1,.))'; put '%mp_filterstore('; put 'libds=&ds,'; put 'queryds=work.filterquery,'; put 'filter_summary=&dc_libref..mpe_filteranytable,'; put 'filter_detail=&dc_libref..mpe_filtersource,'; put 'lock_table=&dc_libref..mpe_lockanytable,'; put 'maxkeytable=&dc_libref..mpe_maxkeyvalues,'; put 'outresult=work.result,'; put 'outquery=work.query, /* not used */'; put 'mdebug=1'; put ')'; put '%removecolsfromwork(___TMP___MD5)'; put 'proc sql;'; put 'alter table work.result drop PROCESSED_DTTM;'; put '%webout(OPEN)'; put '%webout(OBJ,result)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; put ',mode=VIEW'; put ',groupds=work.groups'; put ',clsds=work.clsview'; put ',outds=CLSVIEW'; put ',outmeta=work.cls_rules'; put ');'; put '%local col_list is_admin;'; put '/* filter for the appropriate rules */'; put 'proc sql;'; put 'create table &outmeta as'; put 'select CLS_VARIABLE_NM,'; put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; put 'from &clsds'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and CLS_SCOPE in ("&mode",''ALL'')'; put 'and CLS_ACTIVE=1'; put '%if &mode=VIEW %then %do;'; put 'and CLS_HIDE ne 1'; put '%end;'; put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; put 'and CLS_LIBREF="%upcase(&tgtlib)"'; put 'and CLS_TABLE="%upcase(&tgtds)"'; put 'group by CLS_VARIABLE_NM;'; put '%let is_admin=0;'; put 'proc sql;'; put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; put '%put &sysmacroname: &=is_admin;'; put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; put '%put &sysmacroname: no CLS rules to apply;'; put '%put &=is_admin;'; put '/* copy using append for speed */'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '/* ensure CLS_RULES is empty in case of admin */'; put 'data &outmeta;'; put 'set &outmeta;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &mode=VIEW %then %do;'; put '/* just send back the relevant columns */'; put '%let col_list=0;'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=0;'; put '%if &col_list=0 %then %do;'; put '/*'; put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; put 'explicitly show. Therefore we assume all columns are to be shown except'; put 'those that are explicitly hidden.'; put '*/'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=1;'; put 'data &outds;'; put 'set &inds;'; put 'drop &col_list;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds;'; put 'set &inds;'; put 'keep &col_list;'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &mode=EDIT %then %do;'; put '/*'; put 'In this case we pass all columns and the frontend will filter out the'; put 'ones that are not allowed to be edited.'; put '*/'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: invalid mode - &mode!;'; put '%abort;'; put '%end;'; put '%mend mpe_columnlevelsecurity;'; put '%macro mp_dsmeta(libds,outds=work.dsmeta);'; put '%local ds1 ds2;'; put 'data;run; %let ds1=&syslast;'; put 'data;run; %let ds2=&syslast;'; put '/* setup the ODS capture */'; put 'ods output attributes=&ds1 enginehost=&ds2;'; put '/* export the metadata */'; put 'proc contents data=&libds;'; put 'run;'; put '/* load it into a single table */'; put 'data &outds (keep=ods_table name value);'; put 'length ods_table $10 name label2 label1 label $100'; put 'value cvalue cvalue1 cvalue2 $1000'; put 'nvalue nvalue1 nvalue2 8;'; put 'if _n_=1 then call missing (of _all_);'; put '* putlog (_all_)(=);'; put 'set &ds1 (in=atrs) &ds2 (in=eng);'; put 'if atrs then do;'; put 'ods_table=''ATTRIBUTES'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'if label2 ne '''' then do;'; put 'name=label2;'; put 'value=coalescec(cvalue2,put(nvalue2,best.));'; put 'output;'; put 'end;'; put 'end;'; put 'else if eng then do;'; put 'ods_table=''ENGINEHOST'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &ds1, &ds2;'; put '%mend mp_dsmeta;'; put '%macro mpe_dsmeta(libds, outds=dsmeta);'; put '%local ddsd ddld notes lenstmt;'; put '%let lenstmt=length ods_table $18 name $100 value $1000;'; put '%let libds=%upcase(&libds);'; put '%mp_dsmeta(&libds, outds=&outds)'; put 'data _null_;'; put 'set &mpelib..mpe_datadictionary;'; put 'where &dc_dttmtfmt < tx_to & dd_source=%upcase("&libds") & dd_type=''TABLE'';'; put 'call symputx(''ddsd'',dd_shortdesc,''l'');'; put 'call symputx(''ddld'',dd_longdesc,''l'');'; put 'run;'; put 'data &outds;'; put '&lenstmt;'; put 'if last then do;'; put 'ODS_TABLE=''MPE_DATADICTIONARY'';'; put 'NAME=''DD_SHORTDESC'';'; put 'VALUE="&ddsd";'; put 'output;'; put 'NAME=''DD_LONGDESC'';'; put 'VALUE="&ddld";'; put 'output;'; put 'end;'; put 'set &outds end=last;'; put 'output;'; put 'run;'; put 'data _data_;'; put 'set &mpelib..mpe_tables;'; put 'where libref="%scan(&libds,1,.)"'; put '& dsn="%scan(&libds,2,.)"'; put '& &dc_dttmtfmt 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mpe_filtermaster(mode,libds,'; put 'dclib=,'; put 'filter_rk=-1,'; put 'outref=0,'; put 'outds=work.query'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%let mode=%upcase(&mode);'; put '%let libds=%upcase(&libds);'; put '%mp_abort(iftrue= ('; put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid MODE: &mode)'; put ')'; put '%mp_abort(iftrue= (&outref = 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Please provide a fileref!)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename &outref temp;'; put '/* ensure outputs exist */'; put 'data _null_;'; put 'file &outref;'; put 'put '' '';'; put 'run;'; put 'data &outds;'; put 'set &dclib..mpe_filtersource;'; put 'stop;'; put 'run;'; put '/**'; put '* Deal with FILTER_RK first'; put '*/'; put '%if &filter_rk gt 0 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''( ''@@;'; put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; put 'call symputx(''filter_hash'',filter_hash,''l'');'; put 'run;'; put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; put 'by filter_line;'; put 'run;'; put '%mp_filtergenerate(&outds,outref=&outref)'; put '%end;'; put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; put '%local varfrom varto;'; put '%let varfrom=0;'; put 'proc sql;'; put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; put 'from &dclib..MPE_TABLES'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; put '%put &=varfrom;'; put '%put &=varto;'; put '/**'; put '* Check if the date variables were mentioned in the query'; put '* This is a trigger for serving a historical view instead of current'; put '* we skip this part when checking an ULOAD as there are no date vars'; put '*/'; put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; put '%local validityvars;'; put 'proc sql;'; put 'select count(*) into: validityvars'; put 'from &outds'; put 'where variable_nm in ("&varfrom","&varto");'; put '%if &validityvars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'length filter_text $32767;'; put 'varfrom=symget(''varfrom'');'; put 'varto=symget(''varto'');'; put 'filter_text=catx('' '','; put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; put ');'; put 'if &filter_rk > 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro dc_createdataset(libds=mm_getlibs);'; put 'data viewdata;'; put 'var1=''Table'';'; put 'var2="&libds";'; put 'var3="does not exist!";'; put 'run;'; put '%mend dc_createdataset;'; put '%macro dc_gettableid(libref='; put ',ds='; put ',outds=);'; put 'data &outds;'; put 'tableuri='''';'; put 'tablename="&ds";'; put 'run;'; put '%mend dc_gettableid;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mp_getcols(ds, outds=work.cols);'; put '%local dropds;'; put 'proc contents noprint data=&ds'; put 'out=_data_ (keep=name type length label varnum format:);'; put 'run;'; put '%let dropds=&syslast;'; put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; put 'set &dropds(rename=(format=fmtname type=type2));'; put 'name=upcase(name);'; put 'if type2=2 then do;'; put 'length format $49.;'; put 'if fmtname='''' then format=cats(''$'',length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else format=cats(fmtname,formatl,''.'');'; put 'type=''C'';'; put 'ddtype=''CHARACTER'';'; put 'end;'; put 'else do;'; put 'if fmtname='''' then format=cats(length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; put 'else format=cats(fmtname,formatl,''.'',formatd);'; put 'type=''N'';'; put 'if format=:''DATETIME'' or format=:''E8601DT'' then ddtype=''DATETIME'';'; put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; put 'or format=:''MONYY'''; put 'then ddtype=''DATE'';'; put 'else if format=:''TIME'' then ddtype=''TIME'';'; put 'else ddtype=''NUMERIC'';'; put 'end;'; put 'if label='''' then label=name;'; put 'run;'; put 'proc sql;'; put 'drop table &dropds;'; put '%mend mp_getcols;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mp_getpk('; put 'lib,'; put 'ds=0,'; put 'outds=work.mp_getpk,'; put 'mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local engine schema ds1 ds2 ds3 dsn tabs1 tabs2 sum pk4sure pkdefault finalpks'; put 'pkfromindex;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let engine=%mf_getengine(&lib);'; put '%let schema=%mf_getschema(&lib);'; put '%let ds1=%mf_getuniquename(prefix=getpk_ds1);'; put '%let ds2=%mf_getuniquename(prefix=getpk_ds2);'; put '%let ds3=%mf_getuniquename(prefix=getpk_ds3);'; put '%let tabs1=%mf_getuniquename(prefix=getpk_tabs1);'; put '%let tabs2=%mf_getuniquename(prefix=getpk_tabs2);'; put '%let sum=%mf_getuniquename(prefix=getpk_sum);'; put '%let pk4sure=%mf_getuniquename(prefix=getpk_pk4sure);'; put '%let pkdefault=%mf_getuniquename(prefix=getpk_pkdefault);'; put '%let pkfromindex=%mf_getuniquename(prefix=getpk_pkfromindex);'; put '%let finalpks=%mf_getuniquename(prefix=getpk_finalpks);'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put 'proc sql;'; put 'create table &ds1 as'; put 'select libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put ',upcase(name) as name'; put ',type'; put ',length'; put ',varnum'; put ',label'; put ',format'; put ',idxusage'; put ',notnull'; put 'from dictionary.columns'; put 'where upcase(libname)="&lib"'; put '%if &ds ne 0 %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%if &engine=SQLSVR %then %do;'; put 'proc sql;'; put 'connect using &lib;'; put 'create table work.&ds2 as'; put 'select * from connection to &lib('; put 'select'; put 's.name as SchemaName,'; put 't.name as memname,'; put 'tc.name as name,'; put 'ic.key_ordinal as KeyOrderNr'; put 'from'; put 'sys.schemas s'; put 'inner join sys.tables t on s.schema_id=t.schema_id'; put 'inner join sys.indexes i on t.object_id=i.object_id'; put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; put 'and i.index_id=ic.index_id'; put 'inner join sys.columns tc on ic.object_id=tc.object_id'; put 'and ic.column_id=tc.column_id'; put 'where i.is_primary_key=1'; put 'and s.name=%str(%'')&schema%str(%'')'; put 'order by t.name, ic.key_ordinal ;'; put ');disconnect from &lib;'; put 'create table &ds3 as'; put 'select a.*'; put ',case when b.name is not null then 1 else 0 end as pk_ind'; put 'from work.&ds1 a'; put 'left join work.&ds2 b'; put 'on a.dsn=b.memname'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn;'; put '%end;'; put '%else %do;'; put '%if &ds = 0 %then %let dsn=;'; put '/* get all constraints, in constraint order*/'; put '%mp_getconstraints(lib=&lib,ds=&dsn,outds=work.&ds2)'; put '/* extract cols that are clearly primary keys */'; put 'proc sql;'; put 'create table &pk4sure as'; put 'select libref'; put ',table_name'; put ',constraint_name'; put ',constraint_order'; put ',column_name as name'; put 'from work.&ds2'; put 'where constraint_type=''PRIMARY'''; put 'order by 1,2,3,4;'; put '/* extract unique constraints where every col is also NOT NULL */'; put 'proc sql;'; put 'create table &sum as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',count(a.column_name) as unq_cnt'; put ',count(b.column_name) as nul_cnt'; put 'from work.&ds2(where=(constraint_type =''UNIQUE'')) a'; put 'left join work.&ds2(where=(constraint_type =''NOT NULL'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.column_name=b.column_name'; put 'group by 1,2,3'; put 'having unq_cnt=nul_cnt;'; put '/* extract cols from the relevant unique constraints */'; put 'create table &pkdefault as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',b.constraint_order'; put ',b.column_name as name'; put 'from &sum a'; put 'left join &ds2(where=(constraint_type =''UNIQUE'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.constraint_name=b.constraint_name'; put 'order by 1,2,3,4;'; put '/* extract cols from the relevant unique INDEXES */'; put 'create table &pkfromindex as'; put 'select libname as libref'; put ',memname as table_name'; put ',indxname as constraint_name'; put ',indxpos as constraint_order'; put ',name'; put 'from dictionary.indexes'; put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; put '%if &ds ne 0 %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put 'order by 1,2,3,4;'; put '/* create one table */'; put 'data &finalpks;'; put 'set &pkdefault &pk4sure &pkfromindex;'; put 'pk_ind=1;'; put '/* if there are multiple unique constraints, take the first */'; put 'by libref table_name constraint_name;'; put 'retain keepme;'; put 'if first.table_name then keepme=1;'; put 'if first.constraint_name and not first.table_name then keepme=0;'; put 'if keepme=1;'; put 'run;'; put '/* join back to starting table */'; put 'proc sql;'; put 'create table &ds3 as'; put 'select a.*'; put ',b.constraint_order'; put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; put 'from work.&ds1 a'; put 'left join work.&finalpks b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.table_name'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn,constraint_order;'; put '%end;'; put '/* prepare tables */'; put 'proc sql;'; put 'create table work.&tabs1 as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; put ',dbms_memtype'; put '%end;'; put '%else %do;'; put ',''n/a'' as dbms_memtype format=$32.'; put '%end;'; put ',typemem'; put ',memlabel'; put ',nvar'; put ',compress'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne 0 %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put 'data &tabs2;'; put 'set &ds3;'; put 'length pk_fields $512;'; put 'retain pk_fields;'; put 'by libref dsn constraint_order;'; put 'if first.dsn then pk_fields='''';'; put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; put 'if last.dsn then output;'; put 'run;'; put 'proc sql;'; put 'create table &outds as'; put 'select a.libref'; put ',a.dsn'; put ',a.memtype'; put ',a.dbms_memtype'; put ',a.typemem'; put ',a.memlabel'; put ',a.nvar'; put ',a.compress'; put ',b.pk_fields'; put 'from work.&tabs1 a'; put 'left join work.&tabs2 b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn;'; put '/* tidy up */'; put '%mp_dropmembers('; put '&ds1 &ds2 &ds3 &dsn &tabs1 &tabs2 &sum &pk4sure &pkdefault &finalpks,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getpk;'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mp_searchdata(lib='; put ',ds='; put ',string= /* the query will use a contains (?) operator */'; put ',numval= /* numeric must match exactly */'; put ',outloc=0'; put ',outlib=MPSEARCH'; put ',outobs=-1'; put ',filter_text=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local table_list table table_num table colnum col start_tm check_tm vars type'; put 'coltype;'; put '%put process began at %sysfunc(datetime(),datetime19.);'; put '%if &syscc ge 4 %then %do;'; put '%put %str(WAR)NING: SYSCC=&syscc on macro entry;'; put '%return;'; put '%end;'; put '%if &string = %then %let type=N;'; put '%else %let type=C;'; put '%if "&outloc"="0" %then %do;'; put '%let outloc=%sysfunc(pathname(work))/%mf_getuniquename();'; put '%end;'; put '%mf_mkdir(&outloc)'; put 'libname &outlib "&outloc";'; put '/* get the list of tables in the library */'; put 'proc sql noprint;'; put 'select distinct memname into: table_list separated by '' '''; put 'from dictionary.tables'; put 'where upcase(libname)="%upcase(&lib)"'; put '%if &ds ne %then %do;'; put 'and upcase(memname)=%upcase("&ds")'; put '%end;'; put ';'; put '/* check that we have something to check */'; put '%if %length(&table_list)=0 %then %put library &lib contains no tables!;'; put '/* loop through each table */'; put '%else %do table_num=1 %to %sysfunc(countw(&table_list,%str( )));'; put '%let table=%scan(&table_list,&table_num,%str( ));'; put '%let vars=%mf_getvarlist(&lib..&table);'; put '%if %length(&vars)=0 %then %do;'; put '%put NO COLUMNS IN &lib..&table! This will be skipped.;'; put '%end;'; put '%else %do;'; put '%let check_tm=%sysfunc(datetime());'; put '/* prep input */'; put 'data &outlib..&table;'; put 'set &lib..&table;'; put 'where %unquote(&filter_text) and ( 0'; put '/* loop through columns */'; put '%do colnum=1 %to %sysfunc(countw(&vars,%str( )));'; put '%let col=%scan(&vars,&colnum,%str( ));'; put '%let coltype=%mf_getvartype(&lib..&table,&col);'; put '%if &type=C and &coltype=C %then %do;'; put '/* if a char column, see if it contains the string */'; put 'or ("&col"n ? "&string")'; put '%end;'; put '%else %if &type=N and &coltype=N %then %do;'; put '/* if numeric match exactly */'; put 'or ("&col"n = &numval)'; put '%end;'; put '%end;'; put ');'; put '%if &outobs>-1 %then %do;'; put 'if _n_ > &outobs then stop;'; put '%end;'; put 'run;'; put '%put Search query for &table took'; put '%sysevalf(%sysfunc(datetime())-&check_tm) seconds;'; put '%if &syscc ne 0 %then %do;'; put '%put %str(ERR)ROR: SYSCC=&syscc when processing &lib..&table;'; put '%return;'; put '%end;'; put '%if %mf_nobs(&outlib..&table)=0 %then %do;'; put 'proc sql;'; put 'drop table &outlib..&table;'; put '%end;'; put '%end;'; put '%end;'; put '%put process finished at %sysfunc(datetime(),datetime19.);'; put '%mend mp_searchdata;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewdata.sas'; put '@brief Provide the raw view of the data'; put '@details Pass a LIBDS and FILTER_RK to return a dataset for viewing.'; put 'VIEW datasets include all columns / rows (unlike EDIT, which are filtered'; put 'for current records and don''t include the SCD2 etc cols).'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|LIBDS:$41.|FILTER_RK:$5.|SEARCHTYPE:$4|SEARCHVAL:$1000'; put '|---|---|---|---'; put '|DC258467.MPE_X_TEST|-1|CHAR|Some String|'; put '

Service Outputs

'; put '
cols
'; put '@li DDTYPE'; put '@li FORMAT'; put '@li LABEL'; put '@li LENGTH'; put '@li NAME'; put '@li TYPE'; put '@li VARNUM'; put '
sasparams
'; put '@li FILTER_TEXT'; put '@li NOBS'; put '@li PK_FIELDS - string seperated list of primary key fields, if they exist'; put '@li TABLENAME'; put '@li TABLEURI'; put '@li VARS'; put '
viewdata
'; put 'The raw data from the target table.'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_createdataset.sas'; put '@li dc_gettableid.sas'; put '@li mf_existds.sas'; put '@li mf_getvarcount.sas'; put '@li mf_nobs.sas'; put '@li mf_verifymacvars.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_getcols.sas'; put '@li mp_getpk.sas'; put '@li mp_jsonout.sas'; put '@li mp_searchdata.sas'; put '@li mp_validatecol.sas'; put '@li mpe_columnlevelsecurity.sas'; put '@li mpe_dsmeta.sas'; put '@li mpe_filtermaster.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* configure macvars */'; put '%global LIBDS FILTER_RK SEARCHVAL SEARCHTYPE FMT_IND;'; put '%let maxrows=250;'; put '/* avoid code injection */'; put '%let FMT_IND=0;'; put '%let SEARCHTYPE=;'; put '%let SEARCHVAL=;'; put '%let FILTER_RK=;'; put '%let LIBDS=;'; put '/**'; put '* Validate inputs'; put '*/'; put 'data work.intest;'; put 'length libds $41 filter_rk 8. searchval $100 searchtype $4;'; put 'set work.SASCONTROLTABLE;'; put '/* validate filter_rk */'; put 'if filter_rk le 0 then filter_rk=-1;'; put '/* check if the request is for a format catalog */'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'call symputx(''fmt_ind'',1);'; put 'end;'; put 'putlog (_all_)(=);'; put '/* validate libds */'; put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; put 'if searchtype in (''CHAR'',''NUM'') then do;'; put 'searchval=tranwrd(searchval,''%'','''');'; put 'searchval=tranwrd(searchval,''&'','''');'; put 'searchval=tranwrd(searchval,'';'','''');'; put 'searchval=tranwrd(searchval,''"'','''');'; put 'call symputx(''searchtype'',searchtype);'; put 'call symputx(''searchval'',searchval);'; put 'end;'; put 'else if searchtype not in ('''',''NONE'') then do;'; put 'putlog ''ERR'' ''OR: Invalid searchtype:'' searchtype;'; put 'stop;'; put 'end;'; put 'if is_libds=0 then do;'; put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; put 'stop;'; put 'end;'; put 'else do;'; put 'call symputx(''filter_rk'',filter_rk);'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (%mf_verifymacvars(libds filter_rk fmt_ind)=0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem with macro inputs)'; put ')'; put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; put ',mac=&_program'; put ',msg=%str(Some err with service inputs)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '/**'; put '* assign the Library'; put '*/'; put '%dc_assignlib(READ,%scan(&LIBDS,1,.))'; put '/* abort if looking for a format and the catalog doesn''t exist */'; put '%mp_abort(iftrue= (&fmt_ind=1 and %sysfunc(exist(&libds,CATALOG))=0)'; put ',mac=&_program..sas'; put ',msg=%str(Catalog &libds does not exist!)'; put ')'; put '/**'; put 'check if dataset can actually be opened - as library may exist but it may not'; put 'be possible to assign, and even if it can, the physical table may not exist'; put '**/'; put 'data _null_;'; put 'if &fmt_ind=0 then do;'; put 'dsid=open("&libds");'; put 'rc=close(dsid);'; put 'end;'; put 'else dsid=42;'; put 'call symputx(''existds'',dsid,''l'');'; put 'putlog ''dataset exists check:'' dsid;'; put 'run;'; put '/**'; put '* get the data'; put '*/'; put '%global dsobs;'; put '%let dsobs=0;'; put '%macro x();'; put '%if &existds>0 %then %do;'; put '%if &fmt_ind=1 %then %do;'; put '/* export format and point the libds to the output table from here on */'; put '%mp_cntlout('; put 'libcat=&libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '%let libds=WORK.FMTEXTRACT;'; put 'proc datasets lib=work noprint;'; put 'modify FMTEXTRACT;'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%end;'; put 'proc sql noprint;'; put 'select count(*) into: dsobs from &libds;'; put '%put preparing query;'; put '%mpe_filtermaster(VIEW,&libds,'; put 'dclib=&mpelib,'; put 'filter_rk=&filter_rk,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%put printing generated filterquery:;'; put 'data _null_;'; put 'infile filtref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &searchtype=NONE or "%trim(&searchtype) " = " " %then %do;'; put '/* get row count */'; put 'filename rows temp;'; put 'data _null_;'; put 'file rows;'; put 'infile filtref end=eof;'; put 'input;'; put 'if _n_=1 then do;'; put 'put ''proc sql;'';'; put 'put "select count(*) into: dsobs from &libds where";'; put 'end;'; put 'put _infile_;'; put 'if eof then put '';'';'; put 'run;'; put 'data _null_;'; put 'infile rows;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%inc rows;'; put '/* send actual data, filtered and row-capped */'; put 'data work.viewdata;'; put 'set &libds;'; put 'where %inc filtref;;'; put 'if _n_>&maxrows then stop;'; put 'run;'; put '%if %mf_nobs(work.viewdata)=0 %then %do;'; put 'data work.viewdata;'; put '/* send empty row if empty table to help with hot rendering */'; put 'output;'; put 'set work.viewdata;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data work.vwsearch/view=work.vwsearch;'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put '%if %upcase(&searchtype)=CHAR %then %do;'; put '%mp_searchdata(lib=work'; put ',ds=vwsearch'; put ',string=%superq(searchval)'; put ',outobs=&maxrows'; put ')'; put '%end;'; put '%else %if %upcase(&searchtype)=NUM %then %do;'; put '%mp_searchdata(lib=work'; put ',ds=vwsearch'; put ',numval=%superq(searchval)'; put ',outobs=&maxrows'; put ')'; put '%end;'; put '%if %mf_existds(libds=MPSEARCH.vwsearch) %then %do;'; put '%let dsobs=%mf_nobs(MPSEARCH.vwsearch);'; put 'data viewdata;'; put 'set MPSEARCH.vwsearch;'; put 'if _n_<&maxrows;'; put 'run;'; put '%end;'; put '%else %do;'; put '%let dsobs=0;'; put 'data viewdata;'; put 'set &libds;'; put 'stop;'; put 'run;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '/* physical table is not accessible so create from metatadata definition */'; put '%dc_createdataset(libds=&libds,outds=viewdata)'; put 'data viewData;'; put 'output;'; put 'set viewdata;'; put 'run;'; put '/* make filtref / work.query / work.groups to avoid downstream issues */'; put 'filename filtref temp;'; put 'data work.query;'; put 'file filtref;'; put 'x=0;'; put 'put x;'; put 'run;'; put 'data work.groups;'; put 'length groupuri groupname $32 groupdesc $128 ;'; put 'call missing (of _all_);'; put 'output;'; put 'stop;'; put 'run;'; put '%end;'; put '%mend x; %x()'; put '/* apply column level security */'; put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.viewdata'; put ',mode=VIEW'; put ',clsds=&mpelib..mpe_column_level_security'; put ',groupds=work.groups /* was created in mpe_filtermaster */'; put ',outds=work.viewdata2'; put ',outmeta=work.cls_rules'; put ')'; put '/* get table uri (if sas 9) to enable linking direct to lineage */'; put '%dc_gettableid(libref=%scan(&libds,1,.)'; put ',ds=%scan(&libds,2,.)'; put ',outds=work.parambase'; put ')'; put 'data _null_;'; put 'infile filtref end=eof;'; put 'input;'; put 'length filter_text $32767;'; put 'retain filter_text;'; put 'filter_text=catx('' '',filter_text,_infile_);'; put 'if eof then do;'; put 'if cats(filter_text)=''1=1'' then filter_text='''';'; put 'call symputx(''filter_text'',filter_text);'; put 'end;'; put 'run;'; put '%mp_getpk(%scan(&libds,1,.), ds=%scan(&libds,2,.), outds=work.pk_fields)'; put '%let pk_fields=;'; put 'data _null_;'; put 'set work.pk_fields;'; put 'call symputx(''pk_fields'',pk_fields);'; put 'run;'; put 'data work.sasparams;'; put 'set work.parambase;'; put 'format FILTER_TEXT $32767.;'; put 'FILTER_TEXT=symget(''FILTER_TEXT'');'; put 'length PK_FIELDS $512;'; put 'PK_FIELDS=symget(''PK_FIELDS'');'; put 'nobs=&dsobs;'; put 'vars=%mf_getvarcount(viewdata);'; put 'maxrows=&maxrows;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%mp_getcols(&libds, outds=cols)'; put '%mpe_dsmeta(&libds, outds=dsmeta)'; put '%webout(OPEN)'; put '%webout(OBJ,cls_rules)'; put '%webout(OBJ,cols)'; put '%webout(OBJ,dsmeta)'; put '%webout(OBJ,query)'; put '%webout(OBJ,sasparams)'; put '%webout(OBJ,viewData2,fmt=Y,missing=STRING,showmeta=YES,dslabel=viewdata)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewlibarray; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; put 'sasjs_tables;'; put '%local i tempds jsonengine;'; put '/* see https://github.com/sasjs/core/issues/41 */'; put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; put '%else %let jsonengine=DATASTEP;'; put '%if &action=FETCH %then %do;'; put '%if %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '/* now read in the data */'; put '%do i=1 %to &_webin_file_count;'; put '%if &_webin_file_count=1 %then %do;'; put '%let _webin_fileref1=&_webin_fileref;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put 'data _null_;'; put 'infile &&_webin_fileref&i termstr=crlf;'; put 'input;'; put 'call symputx(''input_statement'',_infile_);'; put 'putlog "&&_webin_name&i input statement: " _infile_;'; put 'stop;'; put 'data &&_webin_name&i;'; put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; put 'input &input_statement;'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put '%end;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* fix encoding */'; put 'OPTIONS NOBOMFILE;'; put '/**'; put '* check xengine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put 'data _null_;'; put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; put 'if xengine=''STREAM'' then do;'; put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; put 'end;'; put 'run;'; put '/* setup json */'; put 'data _null_;file &fref encoding=''utf-8'';'; put '%if %str(&_debug) ge 131 %then %do;'; put 'put ''>>weboutBEGIN<<'';'; put '%end;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '/* To avoid issues with _webout on EBI we use a temporary file */'; put 'filename _sjsref temp lrecl=131068;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* if debug mode, send back first XX records of each work table also */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put "}";'; put '%end;'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put "}";'; put 'run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file _sjsref mod encoding=''utf-8'';'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}" @;'; put '%if %str(&_debug) ge 131 %then %do;'; put 'put ''>>weboutEND<<'';'; put '%end;'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjsref lrecl=1 recfm=n;'; put 'file &fref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjsref clear;'; put '%end;'; put '%mend mm_webout;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewlibarray.sas'; put '@brief List the libraries for view access'; put '@details'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mm_webout.sas'; put '@li mf_existds.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let keepvars=libraryref libraryname;'; put 'data _null_;'; put 'length keepvars $32;'; put 'set %sysfunc(ifc(%mf_existds(iwant),iwant,_null_));'; put 'call symputx(''keepvars'',keepvars);'; put 'run;'; put '/**'; put '* get full list of libraries'; put '*/'; put '%dc_getlibs(outds=work.mm_getLibs)'; put '/* get security groups */'; put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; put '/* get security settings */'; put 'data sec;'; put 'set &mpelib..mpe_security;'; put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; put 'run;'; put '/* check for any matching groups */'; put 'proc sql noprint;'; put 'create table matches as'; put 'select * from sec'; put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; put 'select count(*) into: securitygroupscount from matches;'; put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; put '%put securitygroupscount=&securitygroupscount;'; put '%put ALL_CNT=&ALL_CNT;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%macro mpestp_viewlibs();'; put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; put '/* scenario 1 - user is in admin group, hence can view all libraries */'; put 'proc sql noprint;'; put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; put '%if &scenario1>0 %then %do;'; put '%put user in admin group (scenario1=&scenario1);'; put '%return;'; put '%end;'; put '/* scenario 2 - viewer unrestricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put '%return;'; put '%end;'; put '/* scenario 3 - an *ALL* libref is listed */'; put '%if &all_cnt>0 %then %do;'; put '%put all_cnt=&all_cnt;'; put '%return;'; put '%end;'; put '/* scenario 4 - specific librefs listed */'; put '%if &securitygroupscount>0 %then %do;'; put '%put scenario 4;'; put '%put securitygroupscount=&securitygroupscount;'; put 'proc sql;'; put 'delete from mm_getLibs'; put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; put '%return;'; put '%end;'; put '/* viewer restricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (1=1)'; put ',mac=&_program..sas'; put ',msg=%str(unhandled security logic error!)'; put ')'; put '%mend mpestp_viewlibs;'; put '%mpestp_viewlibs()'; put '%global dc_viewlib_check;'; put '/**'; put '* deal with invalid and duplicate library definitions'; put '*/'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'by libraryref;'; put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; put '*/'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sort data=mm_getlibs (keep=&keepvars);'; put 'by libraryname;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%mm_webout(OPEN)'; put '%mm_webout(ARR, mm_getLibs)'; put '%mm_webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewlibs; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewlibs.sas'; put '@brief List the libraries for view access'; put '@details'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/**'; put '* get full list of libraries'; put '*/'; put '%dc_getlibs(outds=work.mm_getLibs)'; put '/* get security groups */'; put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; put '/* get security settings */'; put 'data sec;'; put 'set &mpelib..mpe_security;'; put 'where &dc_dttmtfmt.lt tx_to and ACCESS_LEVEL=''VIEW'';'; put 'run;'; put '/* check for any matching groups */'; put 'proc sql noprint;'; put 'create table matches as'; put 'select * from sec'; put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; put 'select count(*) into: securitygroupscount from matches;'; put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; put '%put securitygroupscount=&securitygroupscount;'; put '%put ALL_CNT=&ALL_CNT;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%macro mpestp_viewlibs();'; put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; put '/* scenario 1 - user is in admin group, hence can view all libraries */'; put 'proc sql noprint;'; put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; put '%if &scenario1>0 %then %do;'; put '%put user in admin group (scenario1=&scenario1);'; put '%return;'; put '%end;'; put '/* scenario 2 - viewer unrestricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put '%return;'; put '%end;'; put '/* scenario 3 - an *ALL* libref is listed */'; put '%if &all_cnt>0 %then %do;'; put '%put all_cnt=&all_cnt;'; put '%return;'; put '%end;'; put '/* scenario 4 - specific librefs listed */'; put '%if &securitygroupscount>0 %then %do;'; put '%put scenario 4;'; put '%put securitygroupscount=&securitygroupscount;'; put 'proc sql;'; put 'delete from mm_getLibs'; put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; put '%return;'; put '%end;'; put '/* viewer restricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (1=1)'; put ',mac=&_program..sas'; put ',msg=%str(unhandled security logic err!)'; put ')'; put '%mend mpestp_viewlibs;'; put '%mpestp_viewlibs()'; put '%global dc_viewlib_check;'; put '/**'; put '* deal with invalid and duplicate library definitions'; put '*/'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'by libraryref;'; put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; put '*/'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sort data=mm_getlibs out=saslibs;'; put 'by libraryname;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,saslibs)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewtables; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewtables.sas'; put '@brief List the tables and format catalogs the user can view'; put '@details Provide a library and get list of tables and catalogs. Also return'; put 'the libinfo details.'; put '

Service Inputs

'; put '
SASControlTable
'; put 'Just one input - MPLIB (the libref to get tables and info for)'; put '|MPLIB:$char8.|'; put '|---|'; put '|SOMELIB|'; put '

Service Outputs

'; put '
work.mptables
'; put '|MEMNAME:$char32.|'; put '|---|'; put '|DS1|'; put '|DS2|'; put '|DS3|'; put 'etc'; put '
work.libinfo
'; put 'If attributes are empty, they don''t need to be shown on screen.'; put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; put '|---|---|---|---|---|---|---|---|---|'; put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mpe_getvars.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%global MPLIB;'; put '/* load parameters */'; put '%mpe_getvars(SASControlTable, SASControlTable)'; put '/**'; put '* assign the Library'; put '*/'; put '%put &=MPLIB;'; put '%dc_assignlib(READ,&MPLIB)'; put '%mp_abort(iftrue= (&syscc ne 0 )'; put ',mac=&_program..sas'; put ',msg=%str(Unable to assign &mplib library)'; put ')'; put '/**'; put '* get the tables'; put '*/'; put 'data members; /* empty table */'; put 'name='''';'; put 'memtype='''';'; put 'run;'; put 'ods output Members=Members;'; put 'proc datasets library=&mplib ;'; put 'quit;'; put '/* cannot avoid the proc datasets warn!ng for an empty lib */'; put '/* nolist means no output and nowarn has no effect */'; put '%put &=syscc;'; put 'data _null_;'; put 'if "&syscc" ne "0" then do;'; put 'putlog "Library &mplib is empty, setting syscc to zero";'; put 'call symputx(''syscc'',0);'; put 'end;'; put 'run;'; put '%put &=syscc;'; put 'proc sql;'; put 'create table work.mptables as'; put 'select distinct case when memtype=''CATALOG'' then cats(name,''-FC'')'; put 'else name end as memname'; put 'from members;'; put '/* get security groups */'; put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; put '/* get security settings */'; put 'data sec;'; put 'set &mpelib..mpe_security;'; put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; put 'where also libref in (''*ALL*'',"%upcase(&mplib)");'; put 'run;'; put '/* check for any matching groups */'; put 'proc sql noprint;'; put 'create table matches as'; put 'select * from sec'; put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; put 'select count(*) into: securitygroupscount from matches;'; put 'select count(*) into: ALL_CNT from matches'; put 'where libref=''*ALL*'''; put 'or (libref="&mplib" and dsn=''*ALL*'');'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%macro mpestp_viewtables();'; put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; put '/* scenario 1 - user is in admin group, hence can view all libraries */'; put 'proc sql noprint;'; put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; put '%if &scenario1>0 %then %return;'; put '/* scenario 2 - viewer unrestricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %return;'; put '/* scenario 3 - an *ALL* libref or DSN is listed */'; put '%if &all_cnt>0 %then %return;'; put '/* scenario 4 - specific tables listed */'; put '%if &securitygroupscount>0 %then %do;'; put 'proc sql;'; put 'delete from mptables'; put 'where upcase(memname) not in (select upcase(dsn) from sec);'; put '%return;'; put '%end;'; put '/* viewer restricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; put 'data mptables;'; put 'set mptables;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (1=1)'; put ',mac=&_program..sas'; put ',msg=%str(unhandled security logic error!)'; put ')'; put '%mend mpestp_viewtables;'; put '%mpestp_viewtables()'; put '/* get libinfo */'; put 'proc sql;'; put 'create table work.libinfo as'; put 'select a.engine,'; put 'a.libname,'; put 'a.paths,'; put 'a.perms,'; put 'a.owners,'; put 'a.schemas,'; put 'a.libid,'; put 'coalesce(b.libsize,0) as libsize,'; put 'coalesce(b.table_cnt,0) as table_cnt'; put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.libref=b.libref'; put 'where a.libref="&MPLIB";'; put '%webout(OPEN)'; put '%webout(OBJ,mptables)'; put '%webout(OBJ,libinfo)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/validations; %let service=columns_in_libds; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for table columns'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Inputs

'; put '
work.sourcerow
'; put 'Has source table structure.'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getuniquename.sas'; put '@li mp_abort.sas'; put '@li mp_validatecol.sas'; put '**/'; put '/* send back the raw and formatted values */'; put '%let tgtlibds=0;'; put '%let varlibds=%mf_getuniquename();'; put '%let vartgtlibds=%mf_getuniquename();'; put '%let var_is_libds=%mf_getuniquename();'; put 'data _null_;'; put 'length xl_libref base_lib select_lib rls_libref cls_libref libref $8'; put 'xl_table base_ds select_ds rls_table cls_table dsn $32;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.source_row;'; put '&varlibds=symget(''libds'');'; put 'if &varlibds="&mpelib..MPE_EXCEL_CONFIG"'; put 'then &vartgtlibds=cats(xl_libref,''.'',xl_table);'; put 'else if &varlibds="&mpelib..MPE_VALIDATIONS"'; put 'then &vartgtlibds=cats(BASE_LIB,''.'',BASE_DS);'; put 'else if &varlibds="&mpelib..MPE_SELECTBOX"'; put 'then &vartgtlibds=cats(select_lib,''.'',select_ds);'; put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; put 'then &vartgtlibds=cats(RLS_LIBREF,''.'',RLS_TABLE);'; put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; put 'then &vartgtlibds=cats(CLS_LIBREF,''.'',CLS_TABLE);'; put 'else if &varlibds="&mpelib..MPE_TABLES"'; put 'then &vartgtlibds=cats(LIBREF,''.'',DSN);'; put '/* validate libds */'; put '%mp_validatecol(&vartgtlibds,LIBDS,&var_is_libds)'; put 'if &var_is_libds=1 then call symputx(''tgtlibds'',&vartgtlibds);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= ("&tgtlibds" ="0" )'; put ',mac=&_program..sas'; put ',msg=%str(Unable to extract libds vars from &libds inputs for &variable_nm)'; put ')'; put '%dc_assignlib(READ,%scan(&tgtlibds,1,.))'; put 'proc contents noprint data=&tgtlibds'; put 'out=work.DYNAMIC_VALUES (keep=name rename=(name=display_value) );'; put 'run;'; put 'data work.DYNAMIC_VALUES;'; put 'set work.DYNAMIC_VALUES;'; put 'raw_value=upcase(display_value);'; put 'format raw_value;'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=libraries_all; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put '/**'; put '* get full list of libraries'; put '*/'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct libraryname as display_value,'; put 'upcase(libraryref) as raw_value'; put 'from work.mm_getLibs'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=libraries_editable; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for editable libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '**/'; put '/* send back the raw and formatted values */'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct libref as display_value,'; put 'upcase(libref) as raw_value'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. < tx_to'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_alerts.alert_lib; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief fetch extended values for alert_lib'; put '@details Fetches libraries from mpe_tables, creates extended values for'; put 'alert_ds, and marks "*ALL*" as the forced (default) value.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'Output should be a single table called "work.dynamic_values" in the format'; put 'below. display_value should always be character, raw_value is unformatted'; put 'character/numeric.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put 'The FORCED_VALUE column can be used to force an extended value to be selected'; put 'by default when a particular value is chosen.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; put '|---|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put '%mp_abort(iftrue= ("%upcase(&libds)" ne "&DC_LIBREF..MPE_ALERTS" )'; put ',mac=&_program'; put ',msg=%str('; put 'Invalid validation, expected MPE_ALERTS.ALERT_LIB, got %superq(libds)'; put ')'; put ')'; put 'proc sql;'; put 'create table work.source as'; put 'select libref,dsn'; put 'from &DC_LIBREF..MPE_TABLES'; put 'where tx_to > &dc_dttmtfmt.'; put 'order by 1,2;'; put 'data work.DYNAMIC_VALUES (keep=display_index raw_value display_value);'; put 'set work.source end=last;'; put 'by libref;'; put 'if last.libref then do;'; put 'display_index+1;'; put 'raw_value=libref;'; put 'display_value=libref;'; put 'output;'; put 'end;'; put 'if last then do;'; put 'display_index+1;'; put 'raw_value=''*ALL*'';'; put 'display_value=''*ALL*'';'; put 'output;'; put 'end;'; put 'run;'; put 'data work.dynamic_extended_values(keep=display_index extra_col_name display_type'; put 'display_value RAW_VALUE_CHAR raw_value_num forced_value);'; put 'set work.source end=last;'; put 'by libref dsn;'; put 'retain extra_col_name ''ALERT_DS'';'; put 'retain display_type ''C'';'; put 'retain raw_value_num .;'; put 'raw_value_char=dsn;'; put 'display_value=dsn;'; put 'forced_value=0;'; put 'if first.libref then display_index+1;'; put 'if last.libref then do;'; put 'display_value=''*ALL*'';'; put 'raw_value_char=''*ALL*'';'; put 'forced_value=1;'; put 'output;'; put 'end;'; put 'else output;'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_tables.dsn; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief fetch extended values for DSN'; put '@details Fetches datasets in a library, and ALSO fetches a list of numeric'; put 'vars for each dataset for use in adjacent columns (such as VAR_PROCESSED,'; put 'TX_TO etc).'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'Output should be a single table called "work.dynamic_values" in the format'; put 'below. display_value should always be character, raw_value is unformatted'; put 'character/numeric.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put 'The FORCED_VALUE column can be used to force an extended value to be selected'; put 'by default when a particular value is chosen.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; put '|---|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put '/* send back the raw and formatted values */'; put '%let tgtlib=0;'; put '%let varlibds=%mf_getuniquename();'; put '%let vartgtlib=%mf_getuniquename();'; put '%let var_is_lib=%mf_getuniquename();'; put 'data _null_;'; put 'length &varlibds $41 &vartgtlib $8;'; put 'set work.source_row;'; put '&varlibds=upcase(symget(''libds''));'; put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; put 'else putlog "something unexpected happened";'; put '/* validate name */'; put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; put 'call symputx(''vartgtlib'',&vartgtlib);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; put ',mac=&_program..sas'; put ',msg=%str(Invalid library - %superq(vartgtlib))'; put ',errds=work.dc_error_response'; put ')'; put '%dc_assignlib(READ,&tgtlib)'; put 'proc sql;'; put 'create table work.source as'; put 'select upcase(memname) as memname'; put ',upcase(name) as name'; put ',type'; put 'from dictionary.columns'; put 'where libname="&TGTLIB"'; put 'and memtype=''DATA'';'; put 'create table work.members as'; put 'select distinct memname as display_value'; put 'from work.source;'; put 'data work.DYNAMIC_VALUES;'; put 'set work.members;'; put 'raw_value=display_value;'; put 'display_index=_n_;'; put 'run;'; put 'proc sql;'; put 'create table work.dynamic_extended_values as'; put 'select a.display_index'; put ',b.name as display_value'; put ',"C" as display_type'; put ',b.name as RAW_VALUE_CHAR'; put ',. as RAW_VALUE_NUM'; put 'from work.dynamic_values a'; put 'left join work.source b'; put 'on a.display_value=b.memname'; put 'where b.type=''num'';'; put 'data work.dynamic_extended_values;'; put 'set work.DYNAMIC_EXTENDED_VALUES;'; put 'extra_col_name=''VAR_PROCESSED'';output;'; put 'extra_col_name=''VAR_TXFROM'';output;'; put 'extra_col_name=''VAR_TXTO'';output;'; put 'extra_col_name=''VAR_BUSFROM'';output;'; put 'extra_col_name=''VAR_BUSTO'';output;'; put 'run;'; put '/* set some force flags */'; put 'data work.dynamic_extended_values;'; put 'set work.DYNAMIC_EXTENDED_VALUES;'; put 'forced_value=0;'; put 'if extra_col_name=''VAR_TXFROM'' & raw_value_char=''TX_FROM'' then forced_value=1;'; put 'if extra_col_name=''VAR_TXTO'' & raw_value_char=''TX_TO'' then forced_value=1;'; put 'run;'; put 'proc sort;'; put 'by extra_col_name display_index;'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_x_test.some_num; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'Output should be a single table called "work.dynamic_values" in the format'; put 'below. display_value should always be character, raw_value is unformatted'; put 'character/numeric.'; put '|DISPLAY_VALUE:$|RAW_VALUE:??|'; put '|---|---|'; put '|$44.00|44|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct cats(some_num) as display_value,'; put 'some_num as raw_value'; put 'from &libds'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=sas_groups; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getgroups(access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroups'; put ');'; put '%local oauth_bearer base_uri fname1 libref1;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '/* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getgroups;'; put '%macro dc_getgroups(outds=mm_getgroups);'; put '%mv_getgroups(outds=&outds)'; put 'proc sort'; put 'data=&outds(rename=(id=groupuri name=groupname description=groupdesc))'; put 'out=&outds (keep=groupuri groupname groupdesc);'; put 'by groupname;'; put 'run;'; put '%mend dc_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief validating the mpe_security.sas_group column'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_getgroups.sas'; put '**/'; put '%dc_getgroups(outds=groups)'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct groupname as display_value,'; put 'groupname as raw_value'; put 'from work.groups'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tables_all; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for tables in a library'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '**/'; put '/* send back the raw and formatted values */'; put '%let tgtlib=0;'; put '%let varlibds=%mf_getuniquename();'; put '%let vartgtlib=%mf_getuniquename();'; put '%let var_is_lib=%mf_getuniquename();'; put 'data _null_;'; put 'length &varlibds $41 &vartgtlib $8 libref $8 rls_libref $8;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.source_row;'; put '&varlibds=upcase(symget(''libds''));'; put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; put 'then &vartgtlib=RLS_LIBREF;'; put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; put 'then &vartgtlib=CLS_LIBREF;'; put '/* validate name */'; put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; put 'call symputx(''vartgtlib'',&vartgtlib);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; put ',mac=&_program..sas'; put ',msg=%str(Invalid library - %superq(vartgtlib))'; put ',errds=work.dc_error_response'; put ')'; put '%dc_assignlib(READ,&tgtlib)'; put 'data members; /* empty table */'; put 'name='' '';'; put 'run;'; put 'ods output Members=Members;'; put 'proc datasets library=&tgtlib ;'; put 'run;'; put '/* send back the raw and formatted values */'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct name as display_value,'; put 'upcase(name) as raw_value'; put 'from work.members'; put 'where MemType=''DATA'''; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tables_editable; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for editable libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Inputs

'; put '
work.source_row
'; put '|libref:$8|'; put '|somelib|'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5|` `|'; put '|1|DISCOUNT_RT|"40%"|N|0.4|` `|'; put '|1|DISCOUNT_RT|"30%"|N|0.3|` `|'; put '|1|CURRENCY_SYMBOL|"GBP"|C|` `|"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C|` `|"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5|` `|'; put '|2|DISCOUNT_RT|"40%"|N|0.4|` `|'; put '|2|CURRENCY_SYMBOL|"EUR"|C|` `|"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C|` `|"HKD"|'; put '**/'; put '/* send back the raw and formatted values */'; put 'data _null_;'; put 'var=symget(''variable_nm'');'; put 'libds=symget(''libds'');'; put 'if libds="&mpelib..MPE_EXCEL_CONFIG" and var=''XL_TABLE'' then do;'; put 'call symputx(''srccol'',''XL_LIBREF'');'; put 'end;'; put 'else call symputx(''srccol'',''libref'');'; put 'run;'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct dsn as display_value,'; put 'upcase(dsn) as raw_value'; put 'from &mpelib..mpe_tables'; put '(where=(&dc_dttmtfmt. < tx_to))'; put 'where libref in (select &srccol from work.source_row)'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/viya_users; %let service=usergroupsbymember; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file usergroupsbymember.sas'; put '@brief List the groups a member is in'; put '@details Runs without \%mpeinit() - this enables the dropdown to be populated'; put 'during configuration, when the settings service does not yet exist.'; put '

SAS Macros

'; put '@li mv_getusergroups.sas'; put '@li mf_getuser.sas'; put '@version 3.4'; put '@author 4GL Apps Ltd'; put '**/'; put '%mv_getusergroups(%mf_getuser(),outds=groups)'; put 'proc sort data=groups(rename=(id=uri name=groupname providerid=groupdesc))'; put 'out=groups;'; put 'by groupname;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,groups)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=usermembers; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusers(outds=work.mv_getusers'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users?limit=10000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var"'; put '"Accept"="application/json";'; put '%end;'; put '%else %do;'; put 'headers "Accept"="application/json";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusers;'; put '%macro dc_getusers(outds=mm_getlibs);'; put '%mv_getusers(outds=&outds)'; put 'proc sort data=&outds(rename=(id=uri)) out=&outds(keep=uri name);'; put 'by name;'; put 'run;'; put '%mend dc_getusers;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file usermembers.sas'; put '@brief List all SAS users'; put '@details Gets a list of all SAS users'; put '

SAS Macros

'; put '@li dc_getusers.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%dc_getusers(outds=users)'; put '%webout(OPEN)'; put '%webout(OBJ,users)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=usermembersbygroup; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put 'dc_licence_key /* extracted in dc_getsettings */'; put 'dc_activation_key /* extracted in dc_getsettings */'; put 'dc_locale /* extracted in dc_getsettings */'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getgroupmembers(group'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroupmembers'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups/&group/members?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: Group &group not found!!;'; put 'data &outds;'; put 'length id name $43;'; put 'call missing(of _all_);'; put 'run;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let libref1=%mf_getuniquelibref();'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'length id name $43;'; put 'set &libref1..items;'; put 'run;'; put 'libname &libref1 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put '%mend mv_getgroupmembers;'; put '%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);'; put '%mv_getgroupmembers(%str(&group),outds=&outds)'; put 'data &outds ;'; put 'length membername $64;'; put 'set &outds(rename=(name=MemberName));'; put 'run;'; put '%mend dc_getgroupmembers;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file usermembersbygroup.sas'; put '@brief List the members of a group'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@li dc_getgroupmembers.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'data _null_;'; put 'set iwant;'; put 'call symputx(''groupid'',groupid);'; put 'run;'; put '%dc_getgroupmembers(%str(&groupid),outds=sasMembers)'; put 'proc sort data=sasMembers;'; put 'by membername;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,sasMembers)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/web; %let filename=favicon.ico; filename filecode temp lrecl=96132; data _null_; file filecode; put 'iVBORw0KGgoAAAANSUhEUgAAApgAAAJ6CAYAAACMvTJAAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CFOnSe0c62AhJgFAiJAQVO7Ko4FpQEQFR0RUQRdcCyKIidmUR7P1hQWVlXSzYUHmTArq+dt49Z/75cufeO9+d3JkzA4CiNSsnJwtVAiCbnyeICvBmJiQmMUmP'@; put 'AAY0AB0YAiUWW5jjFRkZCqCM9X+XdzcAIu6vWopj/ev4fxVlDlfIBgCJhDiFI2RnQ3wYAFydnSPIA4DQBfUGc/NyxHgIYlUBJAgAERfjNClWF+MUKZ4ksYmJ8oHYEwAylcUSpAGgIObNzGenwTgKYo7WfA6PD3E1xO7sdBYH4nsQT8rOngOxIhli05Tv4qT9LWbKeEwWK20cS3ORCNmXJ8zJYs3/'@; put 'P5fjf0t2lmhsDn3YqOmCwChxznDd6jPnhIgxFeJ2fkp4BMQqEJ/ncST2YnwnXRQYK7MfZAt94JoBBgAo4LB8QyDWgpghyoz1kmFblkDiC+3RcF5eUIwMpwjmRMnio/n8rPBQWZyV6dygMVzDFfpFj9mk8vyDIIaVhh4uSI+Jl/JET+fz4sIhVoC4R5gZHSLzfVCQ7hM+ZiMQRYk5G0L8NlXgHyW1'@; put 'wdSzhWN5YVZslmQuWAuYZ156TKDUF0vgChNCxzhwuL5+Ug4Yh8uPlXHDYHV5R8l8i3OyImX2WA03KyBKus7YAWF+9JjvlTxYYNJ1wB5lsIIjZXO9y8mLjJFyw1EQCnyAL2ACEWwpYA7IALzuwZZB+Es64g9YQADSABdYyjRjHvGSET78RoMC8CdEXCAc9/OWjHJBPtR/GddKv5YgVTKaL/HIBE8h'@; put 'zsY1cXfcFQ+FX0/YbHEn3HnMj6k4NivRj+hLDCT6E83GebAh6yzYBID3b3QhsOfC7MRc+GM5fItHeEroJTwiXCf0EW6DOPBEEkVmNZtXKPiBOROEgT4YzV+WXcr32eHGkLU97o27Qf6QO87ANYElPgVm4oV7wNzsofZ7hqJxbt/W8sf5xKy/z0emVzBXsJexSBn/Z3zGrX6M4vPdGnFgH/KjJbYS'@; put 'O4Sdw05iF7B2rAUwsRNYK9aFHRPj8Up4IqmEsdmiJNwyYRzemI11o/WA9ecf5mbJ5hevlzCPOy9PvBl85uTMF/DS0vOYXvA05jKD+GyrSUxbaxsnAMRnu/ToeMOQnNkI4+I3XW4HAM4lUJn2TccyAODoUwDo777pDF7Dcl8HwLEetkiQL9WJj2NAABSgCHeFBtABBsAU5mMLHIAr8AR+IBhEgBiQ'@; put 'CGbBFU8H2ZDzXLAQLAPFoBSsA5tAJdgGdoJ6sA8cBC2gHZwEZ8El0AOug7uwLvrBCzAE3oERBEFICA2hIxqILmKEWCC2iBPijvghoUgUkogkI2kIHxEhC5HlSClShlQiO5AG5FfkKHISuYD0IreRh8gA8hr5hGIoFVVFtVFjdDLqhHqhIWgMOhNNQ3PRArQIXYNWoLXoXrQZPYleQq+jfegLdBgD'@; put 'mDzGwPQwS8wJ88EisCQsFRNgi7ESrByrxZqwNvg/X8X6sEHsI07E6TgTt4S1GYjH4mw8F1+Mr8Yr8Xq8GT+NX8Uf4kP4VwKNoEWwILgQgggJhDTCXEIxoZywm3CEcAbum37COyKRyCCaEB3hvkwkZhAXEFcTtxL3EzuIvcTHxGESiaRBsiC5kSJILFIeqZi0hbSXdIJ0hdRP+kCWJ+uSbcn+5CQy'@; put 'n1xILifvIR8nXyE/I4/IKckZybnIRchx5ObLrZXbJdcmd1muX26EokwxobhRYigZlGWUCkoT5QzlHuWNvLy8vryz/DR5nvxS+Qr5A/Ln5R/Kf6SqUM2pPtQZVBF1DbWO2kG9TX1Do9GMaZ60JFoebQ2tgXaK9oD2QYGuYKUQpMBRWKJQpdCscEXhpaKcopGil+IsxQLFcsVDipcVB5XklIyVfJRY'@; put 'SouVqpSOKt1UGlamK9soRyhnK69W3qN8Qfm5CknFWMVPhaNSpLJT5ZTKYzpGN6D70Nn05fRd9DP0flWiqolqkGqGaqnqPtVu1SE1FbUpanFq89Sq1I6p9TEwhjEjiJHFWMs4yLjB+DRBe4LXBO6EVROaJlyZ8F59orqnOle9RH2/+nX1TxpMDT+NTI31Gi0a9zVxTXPNaZpzNWs0z2gOTlSd6DqR'@; put 'PbFk4sGJd7RQLXOtKK0FWju1urSGtXW0A7RztLdon9Ie1GHoeOpk6GzUOa4zoEvXddfl6W7UPaH7B1ON6cXMYlYwTzOH9LT0AvVEejv0uvVG9E30Y/UL9ffr3zegGDgZpBpsNOg0GDLUNQwzXGjYaHjHSM7IySjdaLPROaP3xibG8cYrjFuMn5uomwSZFJg0mtwzpZl6mOaa1ppeMyOaOZllmm01'@; put '6zFHze3N082rzC9boBYOFjyLrRa9kwiTnCfxJ9VOumlJtfSyzLdstHxoxbAKtSq0arF6OdlwctLk9ZPPTf5qbW+dZb3L+q6Nik2wTaFNm81rW3Nbtm2V7TU7mp2/3RK7VrtXUyymcKfUTLllT7cPs19h32n/xcHRQeDQ5DDgaOiY7FjteNNJ1SnSabXTeWeCs7fzEud2548uDi55Lgdd/nK1dM10'@; put '3eP6fKrJVO7UXVMfu+m7sdx2uPW5M92T3be793noebA8aj0eeRp4cjx3ez7zMvPK8Nrr9dLb2lvgfcT7vY+LzyKfDl/MN8C3xLfbT8Uv1q/S74G/vn+af6P/UIB9wIKAjkBCYEjg+sCbQdpB7KCGoKFgx+BFwadDqCHRIZUhj0LNQwWhbWFoWHDYhrB74Ubh/PCWCBARFLEh4n6kSWRu5G/TiNMi'@; put 'p1VNexplE7Uw6lw0PXp29J7odzHeMWtj7saaxopiO+MU42bENcS9j/eNL4vvS5icsCjhUqJmIi+xNYmUFJe0O2l4ut/0TdP7Z9jPKJ5xY6bJzHkzL8zSnJU169hsxdms2YeSCcnxyXuSP7MiWLWs4ZSglOqUIbYPezP7BceTs5EzwHXjlnGfpbqllqU+T3NL25A2kO6RXp4+yPPhVfJeZQRmbMt4'@; put 'nxmRWZc5mhWftT+bnJ2cfZSvws/kn56jM2fenN4ci5zinL5cl9xNuUOCEMFuISKcKWzNU4XXnC6Rqegn0cN89/yq/A9z4+Yemqc8jz+va775/FXznxX4F/yyAF/AXtC5UG/hsoUPF3kt2rEYWZyyuHOJwZKiJf1LA5bWL6Msy1z2e6F1YVnh2+Xxy9uKtIuWFj3+KeCnxmKFYkHxzRWuK7atxFfy'@; put 'Vnavslu1ZdXXEk7JxVLr0vLSz6vZqy/+bPNzxc+ja1LXdK91WFuzjriOv+7Geo/19WXKZQVljzeEbWjeyNxYsvHtptmbLpRPKd+2mbJZtLmvIrSidYvhlnVbPlemV16v8q7aX61Vvar6/VbO1is1njVN27S3lW77tJ23/daOgB3Ntca15TuJO/N3Pt0Vt+vcL06/NOzW3F26+0sdv66vPqr+dINj'@; put 'Q8MerT1rG9FGUePA3hl7e/b57mttsmzasZ+xv/QAOCA68Mevyb/eOBhysPOQ06Gmw0aHq4/Qj5Q0I83zm4da0lv6WhNbe48GH+1sc2078pvVb3Xteu1Vx9SOrT1OOV50fPREwYnhjpyOwZNpJx93zu68eyrh1LXT0053nwk5c/6s/9lT57zOnTjvdr79gsuFoxedLrZccrjU3GXfdeR3+9+PdDt0'@; put 'N192vNza49zT1ju19/gVjysnr/pePXst6Nql6+HXe2/E3rh1c8bNvlucW89vZ91+dSf/zsjdpfcI90ruK90vf6D1oPYfZv/Y3+fQd+yh78OuR9GP7j5mP37xRPjkc3/RU9rT8me6zxqe2z5vH/Af6Plj+h/9L3JejAwW/6n8Z/VL05eH//L8q2soYaj/leDV6OvVbzTe1L2d8rZzOHL4wbvsdyPv'@; put 'Sz5ofKj/6PTx3Kf4T89G5n4mfa74Yval7WvI13uj2aOjOSwBS3IVwGBDU1MBeF0HAC0R3h16AKAoSN9eEkGk70UJAv8JS99nEnEAoM4TgNilAITCO0oNbEYQU2EvvnrHeALUzm68yUSYamcrjUWFLxjCh9HRN9oAkNoA+CIYHR3ZOjr6ZRckexuAjlzpm08sRHi/324mRt2XRobAD/JPCotuA2JA'@; put 'n4YAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y'@; put 'Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2NDwvZXhpZjpQaXhlbFhEaW1lbnNp'@; put 'b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MzQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KSHKtHgAAABxpRE9UAAAAAgAAAAAAAAE9AAAAKAAAAT0AAAE9AACKlRxL/UIAAEAASURB'@; put 'VHgB7L0HgNxmeqb5FVChIzuRTTZzzlESRUVSFCUqzIwmjyZnx71zWO96b89h7b31ede+27O9DjOe8eSo0USlURxpGESKYhBzzqFJdrNzqADg3g/FoppUk6zuQlWjUC+kZmXgx/OjUC++GFq25v2OcCEBEiABEiABEiABEiABjwiEKDA9IsnVkAAJkAAJkAAJkAAJuAQoMHkgkAAJkAAJkAAJkAAJ'@; put 'eEqAAtNTnFwZCZAACZAACZAACZAABSaPARIgARIgARIgARIgAU8JUGB6ipMrIwESIAESIAESIAESoMDkMUACJEACJEACJEACJOApAQpMT3FyZSRAAiRAAiRAAiRAAhSYPAZIgARIgARIgARIgAQ8JUCB6SlOrowESIAESIAESIAESIACk8cACZAACZAACZAACZCApwQoMD3FyZWRAAmQAAmQAAmQ'@; put 'AAlQYPIYIAESIAESIAESIAES8JQABaanOLkyEiABEiABEiABEiABCkweAyRAAiRAAiRAAiRAAp4SoMD0FCdXRgIkQAIkQAIkQAIkQIHJY4AESIAESIAESIAESMBTAhSYnuLkykiABEiABEiABEiABCgweQyQAAmQAAmQAAmQAAl4SoAC01OcXBkJkAAJkAAJkAAJkAAFJo8BEiABEiABEiABEiAB'@; put 'TwlQYHqKkysjARIgARIgARIgARKgwOQxQAIkQAIkQAIkQAIk4CkBCkxPcXJlJEACJEACJEACJEACFJg8BkiABAJBwHEcMc2QmGFbwtGQhCM27ockEnMkHBOJRHGL52OVtlRW2VJW5UhZpT7W53G/PCTRCkdC+O+GC162EiL9vY4k4yGJ9+OvRx+HpKcTt90hSeA5Ky6SSuI+3qvvTyUMsZL4DJ6z'@; put 'UrqFm2znhoPgiyRAAiTgbwIUmP6eH46OBEgAOiwCsRgpE4mVO64grKjCfQjDimo8rtDnRaJ4LVrmuILSjAhEo4hpiBhh/BkG/iDp8E9IHLHtNFbbdtw70KaiAhUvZbdgTFgdVog7+r/7l34yvQUR27Lxh1tszMF2kokQBCfEJv5SEKb9EKAJiNI4/vp7DOntdiBUcb/r8nN9+j5DUimIXt0AFxIg'@; put 'ARIoIgIUmEU0WRwqCQSVQCjkSLlaFGFBrKh1ZFSDI1U16fsV+jwEZQRWyDCskZGwIWYEMi6juSAKIeH0H1ckqk7URUXdFb145U76tYL9e3mMeuPeNdJPGHqL/43LAlXHo0N0LAeC0oYYtcVSyyj+etU62mVId4dIT7uBPzwHS2lPZ0iSeN1x0uvUdXAhARIgAb8QoMD0y0xwHCQQeAJqXRRYHW2p'@; put 'qheprrelpt6RStxW1YorLqNwU0diEJBwdeuiVkUHwtG1NEIwXjY8ptVYUHmltSesrek7KkYzQlRFqA2LZjKekr5uQ/p6HAhPU7pbRbouhaSzNS1A1U2fhBv+pu7+oDLkfpEACYw4AQrMEZ8CDoAEgkfAhFtahaRaIkc12lI7xpHqBkuqa+DOhkUyVhZ24yPThkeISFju1PLoCsmRsjYWyzRcNlhe'@; put 'EZ5m2hKq2Ky4Lf39DuJARbph6Wxvgei8gFv86WMVpY59eQXFsr8cJwmQQFESoMAsymnjoEnAHwTUwhhBvGNlLayREJH14yAqxzpSOxqJNDVIoIFFUt3Zqh4zlkiKyDzOnWpHuN3VABxCgpMbD4r7qbiFWE+Izg5HOi4Y0nbelLaLAvEJiydc7bZF0ZnHWeGqSaAkCVBgluS0c6dJYHgEDI2VRGJN'@; put 'TaMjDeNtaWiCoMT9asRLRitMJNVArMAsqRZJ5LjAJElz5PBIe/wpFZwqPDE/IVg89b4FV3tfry29bQ7EpiGtZwy51GxAgGrSEWM7PZ4Bro4ESo4ABWbJTTl3mASyJ2AY6tqGmISQHD0RgnICXN6Imyyv1jJABvQjxCSECvQkxWT2WP3zTgjO8GXRqZbPVMKCGx1WTrjW284ZcvEUROc5uNcvocQS'@; put 'Xev+mTeOhASKgAAFZhFMEodIAoUiYJrpDO6GCbY0TlFBaSMZR7O7w9AfaTe3pdnZapmkcbJQ01K47ailE4LTtXSmIxtgzbSksw1CExbOC8dD0noWVk4kFdmWW6ipcGPjlkiABIqKAAVmUU0XB0sC3hIIwUJZhfjJMRMdaZzqyGgIylGjYaGshB/VdXUjfk/FJF3d3oIvprUNtHIiL70PgrPrkrgu'@; put '9fPHDWk5bbgC1EHNTy4kQAIkkCFAgZkhwVsSKAkC6cLkGj85biqslPirHWMj49uE5QqSEiIhpVXIr9QDKgko3MmhEMBxEtaC9e41iNbptKTjvMgFuNObj4Wk5YyJgvHIVqeFeyhU+V4SCBwBCszATSl3iASuJqBWyuo6WCinODJ+puXGUlbVaXccLVmD0jZaIogWyquh8VH2BNTCibR1vUDRxCHN'@; put 'VG89G5LmI6ach0u9HQlEzFLPHiffSQJBIUCBGZSZ5H6QwAACZlhLBjkybrolTbNsqUctysoaFKeE21sLdWscJWMoBwDjXW8IZGI4VXAiaSgO6+YlZKU3Q2g2HzZh3Uz3aUekpzfb41pIgAR8S4AC07dTw4GRwNAIRNFGsX6CJRNm2tI0A7UoUT6orNx0M73VskQr5dB48t0eEBhg3Uyh/WUnug2p'@; put 'G/2Mis0T6l6H0GSrSw9AcxUk4D8CFJj+mxOOiASyIqBFzmNlIg0oHzRxliXjYamsGYNWi1HUMITrW3ta00qZFUq+qRAEoCU1O91AAXgLsb49bbacg8g8cwCudIhOt8sQxWYhZoLbIIGCEKDALAhmboQEvCNgRhwZo5bKOY4rLGsaL4tKTdDR6uZMrvAONteUNwIG3OgmxKbmlHWh2PuF4yKnDkJs'@; put 'InaztwebpdjMG3uumAQKQYACsxCUuQ0SyJGAgfqUdYipnDQbwnK2dtBBi8YyJOlQVOZIlh/3A4EQxKYmCmlocNclWDaPGXJ6ryHnjpuS6NMRMmbTD/PEMZDAUAhQYA6FFt9LAgUkoIXNq2odCEpLpsyH1XKSjXaMSNWl+7uAs8BNFZpAxrJpIcRDOwqdOWjIyX3oKoRC71aCQrPQ88HtkcBwCVBg'@; put 'DpccP0cCeSDgxlWWizRNs2TyAhtlhWypqjHh9XYQUwnzDssJ5YE6V+lLAtCSrtiEZTMZt6UFpY9O7Ydlc78p7RCejkWx6ct546BI4DIBCkweCiTgAwLqAteC51MX2jJhnpYVciQcNhBTCWnpNvr2wSA5BBIYKQLQkvp9EPzf3+Wg7JHI8V2mnD1sSH+vCk2KzZGaGm6XBK5HgALzemT4PAnkmYBa'@; put 'K8sqHNSpdGTGopQ0ThOpqEIcGuIqLSbr5Jk+V1+sBNxe6UgO0koJHS0O3OchObHHlEvokW7Rqlms08pxB5AABWYAJ5W75G8C2lmnZowjUxdZMnW+JbVjUboF5VtYq9Lf88bR+Y+Aljwy4UKP99pyHiWPju40ELMZln7NQqdV038TxhGVFAEKzJKabu7sSBIIwQ3eiESdOStSMnEmrJfV6SxwWitH'@; put 'cla47UAQ0ILul62a7RccOYEMdHWht51nT/RAzC93oigJUGAW5bRx0MVCwE3agRt84hxbZt1iSeNkR6IxxlYWy/xxnMVHIGPV7O9x5PiekBzZhtqap/RijnGaxTebHHExE6DALObZ49j9S0BLDNU4Mg1u8BnLbNSwRH5CyJBkEgGWLITu33njyAJDQGM1IxFD4nFLLsB9fnir6RZyj/fCeR6i2AzM'@; put 'RHNHfEuAAtO3U8OBFSMBrV1ZN9aWGbfYMm2hJdUNJmIrbbG1xBAXEiCBwhOAlowgA11LfV06J3L4LVOOvRWSng6kpDNOs/DzwS2WDAEKzJKZau5oPglo4s6YyYivvM2SSXNtZIObkoSwZImhfFLnuklgaARc9znEZmeL5cZoHt5uSPsFjdOkRXNoJPluErg5AQrMmzPiO0jgugS0fuW4GZbMXY4W'@; put 'jkjciZWjtV0S9VNYEP26zPgCCYw0AW1NqVbNnk5LTqJT0MHNprSgU5BjU2iO9Nxw+8EhQIEZnLnknhSQgAlhOXGOJXPusKVpqiXhSJjxlQXkz02RgCcEEKcZRZxmX68lZw+FZP8bYTl/3EAtWgpNT/hyJSVNgAKzpKefOz9UAmbYlsnoCz5vhSVjpkBYmhSWQ2XI95OA7whonGYUYS1ICDp7JCQH'@; put 'NoflDLoEUWj6bqY4oCIiQIFZRJPFoY4cgbSwtGXuClvGTnXcLFRN3mFG+MjNCbdMAp4TUKEZMSWVTKEdZVj2bwrJ6QNI1KNF03PUXGHwCVBgBn+OuYc5EDBNWyaiN/j8OwcIS42x5EICJBBcApeFpjZBaD4Wkn2vG3IKQpMWzeBOOffMewIUmN4z5RoDQECTdybOtGT+PbaMmwaLpbZypLAMwMxy'@; put 'F0hgCAQgNMOwaFpWSs4dMmXvJkPOHqbQHAJBvrWECVBglvDkc9ffSUDbOTZNsWXePSlkhdtu8k6KxdHfCYrPkEApEbgsNNV1fvqQIfs3huUckoHYHaiUDgLu61AJUGAOlRjfH0gCBupY1jfZsuDelEyeq+0cEfBPYRnIueZOkcCwCVx2nSeQDHTqQEj2rtfyRrBosrzRsJHyg8ElQIEZ3LnlnmVB'@; put 'QDvGVY+GsLwrJdOWoEB6BepYJtjOMQt0fAsJlC4BnDeiyDrv67FRsF1kz+th6WDB9tI9HrjngxKgwBwUC58MPgFHyqscmYNyQ3NQJL26lgXSgz/n3EMS8JjA5Tqa3SjYfuhNuM5RR7OnHeqTLSg9Bs3VFSMBCsxinDWOOScCkYgjU5elZCEywxuaDLZ0zIkmP0wCJJDpDNR20ZZ9KG10ZFtY+ntD'@; put 'bjkz0iGBUiVAgVmqM1+C+62Z4ePR1nHRKiTyTLPdbo52yilBEtxlEiCBfBAw0ILSRAvKCydt2bXOlFP7kIGeUosmFxIoPQIUmKU35yW3x6GQIzWNtixamZRpC1F2BLFTKY2z5EICJEACeSBgov2kbdtyen9Idr8Wlovoc85EoDyA5ip9TYAC09fTw8HlQsBxHKmoEpm9IiXz7rCkahQTeHLhyc+S'@; put 'AAkMgQAMl9oVqK/PkiNbDdm70ZSuNgMroEVzCBT51iImQIFZxJPHoV+fgBl2ZPI8SxbfZ8no8Yak0JHDsegOvz4xvkICJJAXApcTgdouWrJnvSFHtkckmaDIzAtrrtRXBCgwfTUdHEyuBNQdXj/OlsWrbZk83xIjZCAGiq0dc+XKz5MACeRGQOMz9e/sEZGdvzJZqD03nPx0ERCgwCyCSeIQb05A'@; put '3eFllSJz1R1+J93hNyfGd5AACYwEAY0B10Lth+E2370+LN1tas2kRXMk5oLbzC8BCsz88uXaC0DAzQ5HW8clq1Mybgrd4QVAzk2QAAnkQgChmFHEZ7Zd0GxzuM13hMVKUmTmgpSf9R8BCkz/zQlHlDUBR6rqHJQdSsmspbaYUbjDk3SHZ42PbyQBEhhRAuoy125iJw/Abf5KBG0nQ+I4FJojOinc'@; put 'uGcEKDA9Q8kVFZKAGbZl6mJYLZHEUz/WcF1OwhyeQk4Bt0UCJOARgXAM2eZdlux93ZR9aDuZ6KPI9AgtVzOCBCgwRxA+Nz10Anq1XzPGkqX3Q2AugrUSotJmdvjQQfITJEACviKg3YDCpoHkH1t2vBRmEpCvZoeDGQ4BCszhUONnRoSAiRaPs27RTjwpqalnTcsRmQRulARIIK8EwijSHo/bcvAN'@; put 'Q/agG1BPl8GWk3klzpXniwAFZr7Icr2eEXBLD421ZemDFmpbwmhpO7RaekaXKyIBEvAdgcu1M5vRcnL7iyhpdNTEOY9uc9/NEwd0QwIUmDfEwxe9IKACMYzC52ZYxIg6KMiRPlGqUEyhT6+N7Ekrpd7ud55ATbx/1rIUYi1TSOgJSxLlPbiQAAmQQCkQ0JaTyYQjBzZnrJmaFPTO82QpsOA+Fh8B'@; put 'CszimzMfj9iRylr0/R5tS22j9v9Glne1LVG0aywrg7iEiztk4A/Fz1VLhhBCaaHDTjIBl1CfSH9XSLo6DOlqEem4COGJ1xfcjVjL+bBYYq/ZicfHU8+hkQAJ5IfAZWvmeVgzt72I2Myj6GtOa2Z+WHOtnhKgwPQUZ+mtLFpmy+iJtjTNsGTsFJFRDSh4XoVg9bD23H3bne0meOMf93YAJvdaXPUm'@; put '7hiGxhrph0SSKQslh9DLN3a5E8+1HxywDt4lgaESuMoIdPmBeyzqiq7cuclaBx7PKPR/ZRn4/JUneYcEciOg1sxEwpYDGw3ZtT4i8d5sD9TctstPk8BwCVBgDpdcCX/OMEUap6RkynxbJs52pLpeRAPTNZs7pRndcH3nurg60/0n1zXx80En4P7MwsqjC65R8A9a8qlKTBvK3edV/zn6HyIsbJjG'@; put 'bbQPtS0cs3jBsWEtx3Fr41at5LbWIbzJIaxGeC3w795ie2qZN3S7JuqxYhAGLrBC+J5oOEh6fFilrlPH4W7THVD6q6KPb7I9dyf4DwngGIvgXHv2iCNbnzel5TSOYRy3XEjAjwQoMP04Kz4dU7TclikLLZl9K6yW421YFxETicLmdF37dMICMqy0QIN4U8GoVu6McIQosyAWk8i41RjeOGoHpuIh'@; put '3DrS3yuoJYjQix48j+cSsPYk+/FcHJ9BSEYqhYuhBGJ/ITjVUu4gBsO9LsI67SzCfF2LOwSkKkYznB6bhoBEEGdsRnDBFcNfFBb4Mlj08RetwB/CRGIVCBep1Pvpx5EY4pNjKhqwDl0PVuxqTR2PCmGNDdGteHDRll4T/w0CAW032d9tyVu/NhGfaeJYxpeCCwn4jAAFps8mxI/DiZZZKA9ky5wV'@; put 'ttShqLmNHzsLFqCbWXn8uC8ck38JuJ5qWGhMtQhqhxNXQDoQhRCREId9PRCOiNPt6dA/Q3o7Q9Lbhdjd7hAEZVpAppAwZkNspmMt/Luvhlo8kfgWU6FZrqJTpHwUYpjxV1GTvtX7KkzLIEo1VCQMAeooJFcEqwUWd9L/+3dHObK8EdDviH5XTuwTWDPD0n4RIhPHAxcS8AsBCky/zIQPx6Fuv2mL'@; put 'LVm80paG8WrtUdciz2A+nKqiGlLGZayu5BBEU0ZIxvtTEodY7IFw7LhgSMclke4WU7rbVVymrZBqqfS7ePRqMtRiG47ZUo4kuSokz2kC3Sgk0FXX6WMbVRVgES2DyID1U5lk3P9q7aTL3atZ8P96IugC1H7Rkm0vmHJyH3qaozIHFxLwAwEKTD/Mgu/G4Ej9OFtueTAlk7TuJMZnJyksfTdNRTCg'@; put 'a8WkKp8UEhXUha2WyI6WkLRdCEknqgZ0tqhVEglecYMC6SZzayL+s0ItnhCdtWNQsWEc/hosiE9YPKu1aoOJUAKITjgaUrgwFFg7+Q2+CdQiflljfh3EU+zdZMquX6HtJC7IWM6oiCc0IEOnwAzIRHq1GyHDlnl32LL4viR+wMKIacsiIM2rjXM9RU/AFZSXW95p/VONdezvtaX7kiFtEJGtZwxp'@; put 'P49yVK1wa+NH0GK5FQ/nPO1uV+tmLRoT1EN06m3NaJEKiM4o3OyaAOVgTjR2VWt/UXR6iH+kV4UvXxSxmWeQAPTmLw0kAJm4UKM1c6SnpZS3T4FZyrM/YN/VvlGF2K/lj6ZkxmK1euAZjfHiQgI3IKA/X24smFuWynETbrphheyAiGyBmLx0FsKyGS7ubtNNqLnBqvhSPgjAYhxDfGdVHcJcmhxp'@; put 'QEmxBngnqhs07lNj+C7HVKuVk4IzHzNQ8HVqAlBvpy1bXzLk2A4YCRCXzIUERoIABeZIUPfbNmFpapxky13vs6RhgiZL0Grptynyy3jcn6rLFkoNntQMbo2RbD0bkgsnDdwidhLxk5rRzcWfBExkv1fUWq6Fc8zkdEUIbYxQVmWIaaqrFRZOCk5/Tl6WozLwHdXv5wG4zHfAZd6L5Di6zLOEx7d5'@; put 'RoAC0zOUxbkidWNORj3LOx9LIYsVLkvEx3EhgYEEtCyQCg+9TSEWt6fTkfZzITl33ICoRBzlRRMlgSgoBzIrpvuamF4Jt7paOMdMsWTMZEfqxtjIXtc5h4XTrRnKGM5imlN3rJjXjMt8y7Ome/FHl3nRzWJRD5gCs6inL7fBa5b4zFtTcsejlphRLe9Cl3huRIPxaVcqagZzGDFc+K+/N+VaJZsh'@; put 'KM8fxw/VGS0PRItIMGb7nXuhFk51qY+BV6NpOiycuK2qD0GspJOG1LqpyUNcioOAusy72y2UMorI8d3aGY0Xg8Uxc8U/SgrM4p/DYe2BistZt1ly57tR90UD/xlvOSyOQfmQ/uRkYiltCAi1UraeCsmZo6Y0Hwu55YLQvZNLCRKIlaeThZpm2DJuakrqmxC/WYEsdZg+U3pQMHbT90eFusy1g9Tu'@; put '9cgyfzWM2rIUmb6ftAAMkAIzAJM41F3IWC7veg9+HLR+HmKuuJQegbSoRNwdalFqUldXqy0X4fI+fcB04ym722mlLL2j4sZ7rO0xR9U7Mg6WzfGzYN2cYKM4PDoQIYQilaTYvDG9EX4VhoQIkvGO77Vly7Nh6URlB1TuH+FBcfNBJkCBGeTZHWTfNOZyygJb7v1gUgwUaKblchBIAX7KFZUaUwn3'@; put 't4rKbojKc8cMOX3QkIsn0vXzArz73DVPCaTrcI6basnEOY6MRfxmZQ36sFNsekrZ65VpYfbWs7Zsetp0Q14c9jL3GjHXd5kABWYpHQoQl2MnOXL/J+MoXaLB+7RclsL0uzaKyzGV6v7uaHPkAuIpT+6FqDxJUVkKx0Ah9rGyxpax0yyZNEBsapKQRTd6IfAPaRtmxEAdWlveRPefI1vDaP9LS+aQ'@; put 'APLNWRGgwMwKU/G/SZM1RiFTdM2nU1LXxGzx4p/Rm++BZgebl+tTakzlRZQROr43JM2Iq+zthOLkQgJ5IqDF3sfPdCA2kzJ6CiydVZowph3BkCCUp21ytUMjoDHX2jJr16uGvPVahMk/Q8PHd2dBgAIzC0hBeEsk4sg9H0rI9KUG61wGYUKvsw9qhwjBRWmERRL9trSeFjm535BT6FHc2UpReR1s'@; put 'fDpPBDQkR/unT5pny+R5joxusiVcpt4TaBvNRs/TdrnaLAnghBFBlvnhbSJvPIMLz27GXWdJjm/LggAFZhaQiv0tIdOWBXdZcvu7UMeQrR+LfToHHX/GWmkjYauzzZYz+005tgexVqdZlmRQYHyy4ARMXOSOmaB1d5Myaa4j1Sh9pNnNllo1qTQLPh8DNxhB7/rmo7Zs+ElE2tHSFZepA1/mfRIY'@; put 'FgEKzGFhK6IPwYIwZoIlD34uhStVZowX0czddKjuzwAyQzVZK9HjyPlTgjp3ppsF3oc6lVxIwK8EyqscmTgrJVMWatwm2lmWw6qJJHRaNUduxsJI/ulssWT9T8Ny/miYon/kpiIwW6bADMxUDr4jkZgtqz+eRJYnyojQejk4pCJ7VqWjgSB9/QXoanfkNKyVR3cY0oI2jbZFYVlk01nSwzVwAVyH'@; put 'UkfTITQnzUvJqAaEd+CiyUL3IFo1C39o6MVqsldkMzr/HN1hMvmn8FMQqC1SYAZqOq/eGa13Oef2FHqMj6xr3LW0wRWmrQa1OPOVnrj4BdGOIDZu1bXLgKyr5+/aR2k3eLq8UOsZR47tNOUEMsF72hlbeS0rPi4+AuXVSAqabcm0pZY0TtbYwLTQZCH3ws6lm/yD8/FbSP7ZieQfXrQWln+QtkaB'@; put 'GaTZHLAvmjVejbIhj/xGQirqDHEKXJJIxZDGV2kP6wQsp71d6GHdJRLvgTu3HyIT/0XLbYlWog9ytYi6zGJlKJeB2owpWC8oNtOT6Ypz6EcD2eCJXlvOomblkW2mnD0CS0OcwnLAIc+7ASGgsZpjJ1syY5lmoltSUYMMdD0lqFUzIPvo+93AiScCL8nezSJvPhfmucb3E+bPAVJg+nNech6Vdty4'@; put 'ZU1SlqyBEOlHcFOBFrVShiEq4wjcbzkpcuYQivmi1WBHiymJPtWNKpkGLhCWldodxIbVAnFZs21pQK3OCrSiS+oPCgRnKS5pYQkZDpHe22nLqQMhOYx6dRdP4ce2NJGU4mFQ0vusrQ3rxzkybbElUxdaUtOAbwXc5yx1VKDDQkUm4jKP77Ll9V9EpKdjgPepQEPgZoqbAAVmcc/fdUbvSM0YRx7+'@; put 'Yhw9g2G9VPdznhcVRG7xXojZ0/sMObAFYghFvG1YHoayqFu/fpwtM5ba+FFBTFY9+uZCrMKPPpTVFO17XWEJayXSsdDKzcHJPR0L1XaB1sqinVQOPGcClTXIPl+QkpmwajaMS3tH3OzznNfMFdyMgJthfsyWdU9GkATknqFu9hG+TgIuAQrMAB4Iar1ctiYlS9dI3q2XerpRo6QmnTQfdWT7S2Fp'@; put 'PmbmThXB/zWwas5HeaXpt8KVHkW5HRWaAV2Uo7rBVUZ3XLDlyM6wHNsRkq42D1gGlBl3q/QIxMrh5UAy0Jxb0Ad9CrwlmhCk9TRL4/pzxCZcM8zbmm1Z/yQMB2dwscse5iM2F8W0YQrMYpqtLMaqbqVR9Y489IW4VNZCsOTRxeyKS7hwraQjezaasvs1uLUT3lraQtBX49F+btnaFOKyUCQ+obVM'@; put 'sgBRJG95W1g6cqlZ5Og2Q44ieae3y1uORYKDwySBrAhEoojPnO3I7FuTMm6agXhBB0ITkecBOjdkBaKAbzJxkd+DGrsbfhqRs4fx20KRWUD6xbkpCszinLfrjjoE6+U8ZI7ficzxfMZeqjBy4wO7bdn8VERO7EHrmDwtmrBUhQxTFZmzb0FGvPrdi9yY6fKDxVLFcutZWw4hcefErrD0IQmKCwmQ'@; put 'QHYEwrgAHTsrKfOWO9I0UxNThCWOskM3rHe5ZYz6HNn48wjCdygyhwWxhD5EgRmwydYr+wc/l5CxU/LnUk6LS0O6ECO4Di6TC4i1LMQSiTmy8J6ULL7Pgi7DKIowLvOKsASwtnMQltvVFW5SWBbiAOI2AkvAxClonCs0YdmcEZKwCk26zvMy36EwEq0SjmxGdvmhNzXDnxfFeQEdgJVSYAZgEq/s'@; put 'Ar7nTXAnP/iZZLrTVx7cRa5Aglu865LIaz8KSwuymgu5hCO2zLvDklvWQmSqi6ZIfGLuKRgGyzCslpfOQ1hu1eSdMFzh7iuFRMhtkUBgCajQbJqZkrk4RzRNh9AMo8YuXeeez7dbKxO/L9teNGT3BnT9YYMHzxkHYYUUmEGYxcv7oMk9t61NyKL7EKuYh9JEaZEUkjg6Pbz6A4+SeYbBXy2Zi1al'@; put 'ZMkqxF1pzUyfL1q6yYSw7O2y5ehbpuxFvGp3G2MsfT5tHF4REzAhLLXkmZ4nxkxCTQZciGot4DxccxcxpRyHjgQrFfQ7Xg7JW1qQPcWL5RyJBu7jFJgBmtJYmSUPfTEp9eO1Vpz3p1I9fdhwTb/+c1MOb8tfzGU2UxKrsGXFuyyZdStiTX3aAjPdeQc1QeO2nNwVkj2vh+XSucJafLNhyfeQQFAJ'@; put 'RMscmb4UFs3bbZQ/Q0KihtWoRTOoO1zo/cKPQhgVRHb9GtbMFyIIS6DILPQU+Hl7FJh+np2hjA1lfRon2bIW8ZfaQcfrM6ieNkKwwh14QwUmApxGfEG2fIMjqz8BQT32cku5ER9TegCZLkY2Et5PHxbZs27krL0+QcJhkMCIEiivsmX2cr0gtd2C7W63MDg/KDQ9mBb8OLhdf14X2fJcRFJJikwP'@; put 'qAZiFRSYgZhGzei2ZeGdltz+Hu+zx93TBdwhbRcceenrUent9od7V0MCJs+zZeWH8xdzOpTDw+UEcW+A1cWTtuzeGJaTu7XYPE+4Q+HI95JAvgiMakAMN86TM2DVjKFbmK3dwqgyc8eNU5x2/dm/yZE3nmVrydyBBmMNFJjBmEe4KRy590MJmbbEkJTHLmOVR45hyIYfm3IEGc9+WlxX+buTMusW'@; put 'xJ16vN9D2U+NszTQIrPrki374Qo/iHqWiT5/CPGh7AffSwKlQGDMJEsWrrRkEmppmoj2YSKQN7OuXX8ObxWUMUJN5DjPf95QLd61UGAW79xdNfIyxCQ+8hsJGdWIgHYEs3u1uLY3WOTOHxd58ZuIsUn566QRQmjA2Cm23A9XebgMoy1w6SI3zhLCsr/fkWNvhWT3+jBEpr8YeXUscD0kECQCBs4d'@; put 'k+dbsuDelDSiiYPN+ExPptcVmdsui8x+ngs9gVqkK6HALNKJu3rY6N893pFH0XvcQI0yLwOLXIEJAfX6Tw05uHVkE3uu3ue3H8XKbbnjMe1THCqYFVO5uKU6oDDPHbaRRRlFq0yeTN+eFd4jgeIgEMX5Y/ZtllvaaFQd6gfTbZ7zxKnIPLLNkQ0/o7s8Z5hFvAIKzCKevMzQ1Yo3ZYElqz9uuW0b'@; put 'M8/neqsiyoGA0oLqv/xKFMXA/SmgDJQkmTTHklWPIxazAO3LXHc4Ep60Z7iWHDoM4Z1iiY5cDzd+ngRGlEDNGJQ1WpmSqQttiURRiYP1M3OaD4rMnPAF4sMUmAGYRk12WXhPUpY/Cgueh/Uv01Y6Qw7vcGT9kzHfktIad1V1jqz9VEJqkFGuPwz5WDLZ4cm4yBG4wzU7vJPu8Hyg5jpJYMQITJqL'@; put 'bmGrbGmcorGZ6ba0+TmjjNguFmzDaXe5g8ojYUnQXV4w7n7ZEAWmX2Yih3FoUeHbH0nK/Hu8F5haSXfTz0NyYIs/3eMZbNFyR5aDwdzbvXeTu2ECMN5qEs/FkyHZ/kpIzhz0N48MF96SAAkMnYC6zefekZL5K2wpH4WLVi3STpU5dJD4BEXmsLAF4kMUmAGYxnxlkKuwSsL1++I3TLl4yt+CykQW'@; put '/exbLcRi2ggT8K67jxsmgKDWODLCD2wOyT5kiMd5JR6Abw13gQRuTqBhvCVL70vJxHmGhEIoacQi7TeHNsg7IuUmzp+2bPqF1sn0Z6jVIMPmUzkSoMDMEaAfPq7i6sFPJ9CDFwXHE96IK1dY4Z+eDkH8ZUx6OvUZ/y4hw5GmGYhD/VjKLTviVaKTusW15/mR7SjT9DM/FJj37xxwZCQQRAImQpBm'@; put 'LLPQgjclo+qRbc4koGFNcxiJP26dzKcgMhmzPiyGxfYhCsxim7FBxhuOWvIIWkQ2TEif/AZ5y5CfcuWkFldvRoLPV6OS8HtNMyQ61Y+F0P5sQmKVGL1H5YpcgYn2mEd3hGT9T6JD5sgPkAAJBINAzWhLFt+fkukLQ6ggwd7mQ55VnJbDUVP2rNeOPyhyb9GSOWSGRfYBCswim7DBhhstt+ThL6Bl'@; put 'YlM6Vmiw9wz1ubTAFGk5HYLA1B6zfj8ZaOtIS9Z+JiWV9agF6lGiT8aCeQy9xNc9SYE51OOI7yeBIBHAmUVm3AKhiSLtNag5TGvmEGf3ssjc+Qp6l78chsh0f2mGuBK+vVgIUGAWy0zdYJz5FJitZ0Py3Ff8V2D9nTjSAvOhz6akoo4C8518+AwJkIBXBKrrbVn6QDJtzUR4DmMzh0BWRWbEkG0v'@; put 'iux8LUKROQR0xfZWCsxim7FBxps/gRmSjouOPPuvcJH7PrGFFsxBDg0+RQIkkCcCV6yZqzU2M31Ry0zzLGFDZJpmCH3LDdm7KQyBTktmluSK6m0UmEU1XYMPNl8CU6ty9HVrDGZMutp87iJHDGbDOEce+EweYjA1yectkQ0/8W8t0MGPDD5LAiSQbwJaoP2WB5MyZb6BhECtmwmLZr43GoT1I8Zf'@; put 'az9pjcwj2xGTaVNkBmFaB+4DBeZAGkV6Pxyx5aEvJNx+ul6X6LFwZfnSt01pPubvMkVXssg/jixyExPp0Rk+HYOJ7MctjrzxNGMwi/QrwmGTQF4JaC3iObdrbGZKyqohNFGgndbMmyPXdrsWGrCt+7EpJ/eYbsWOm3+K7ygWAhSYxTJTNxinlim6/xMJmTjHuzJFujm9ngxBrb3xnCN7N/hbXLl1'@; put 'MG9LyZ2PiaQS1g1oDe2ltMA0ZNevUWD9ZZYpGho9vpsESotA42RLbllrSdN0GDJZziiryTfCaI7R68jL3w/LeRgyKMyzwlYUb6LALIppuvEgzbAtd70/JbNvy0MnH/TcPrHbkVe/72/3sHbeWPHuJIqtG5KMeyswbduQN5833CLrN54JvkoCJFDqBMoqHFl8XxIWTUdMXJM62gWo1KHcZP9NJP30'@; put 'tNnyyncj0nIO4VgIS+JS/AQoMIt/DtHC0JFb1iRlyQMQmH0eiiuw0RNjb6fIc/8WlZ52f8Zh6ul7VH06/rKmwdte5GrBTCZM2fjTkBzf4+8wgQAcytwFEggMgelLUrLsAQvnJu1pjrMUVeYN59aMGnLprCO/+m5YOi6hc5LrQ7vhR/iizwlQYPp8grIZnsYfzkKbxHs+6EjKQ+udbjvjJt/8TLpN'@; put 'YjbjKfR7NP5p6iLd/xRin7zduu5/b6/Iq9+NysXT/hTY3u4x10YCJOAVgbqxttz2CFpNzoLItBGX6U2jNa+G57v1hGOmnDtky69+GJH+bp5vfTdBQxwQBeYQgfnx7WplGzvNkgeRQe31VZ8KLMH3XAuuP/81f/aRjVU6svKDCZmEfsGexl9i121kp3deMOSFb0alr8ul4cdDgGMiARLwKYFIzJYl'@; put '91sy73Y77TJnP/MbzlQELSWPbLdlw0+jCHfiOfeGsHz+IgWmzycom+G5LuJaWx75rYSUVyGD0aM2iZlt61fcMQy4iQ05vM1fbmIND5g4x5b7HkcqojvQzKhzv1XhrijPHRZ5+btltD7kjpRrIIGSJTBjqSXLHkxIdQ1a+mopI7rMr3ssqMjc/ZojW55nIfbrQiqCFygwi2CSshmilip68DNJGTfD'@; put '20xy3bar26C22lF0/UXEYvb1+sd1UV5ly6rHUzJ+BrLHk976n1RgOo4m94Rkyy+ZQZ7Nccj3kAAJXJ9Aw3hL7niXJWOm4dzCLPPrg8K5N4wE0zeeDcme11mI/fqg/P0KBaa/5yfr0bmJPmhdtmSNt4k+mQGoyDTwhd+9AVeVz/ojozwctWXeHYhxethGLTVvxaXutwpMK2nKhp8bcmynFtfkQgIk'@; put 'QAK5ESivcuTWB1Poaa4mTC3Mnk6mzG2twft0CIXY1Rv36x+H5cQu1sgsxhmmwCzGWRtkzCHECk6cY8n9n7TcvriDvCXnp1RwpZBEs+7JMIrijqyr3EBi09jplqx+3JJIOU7QiGvyclFB7YBpT1tIXvhWVLpa/WO19XI/uS4SIIHCE9DEzPl3oTA7yhnFyrQwuwY6cbmWgNbI7O9B0s93Y3L+JM7K'@; put 'LF90LSJfP6bA9PX0ZD84BwE9laMcefS34lJZmz5hZf/p7N6poktwVdndgbqYyKpu1XplI7FA+NWORtzlR1NS16SdIPJjvdST2ckDIq99P4pYTHfvR2JvuU0SIIGAEpg8z5LbHk1KTR0MmWrJpMp8x0xr+aL2Zlte/nYU5Ys0jZXn4ndA8ukTFJg+nZjhDEvL9dz5GAr8rvC24PrAsehXOwRvcds5'@; put 'kVd+UHjLnpvQVOPI3R/WuMuQp1njV+0ndtS2UGD9BS3PxPjLgWx4nwRIwDsC9eNtxGUmpXEqXMJsMTkoWC1fdOZAunxRwkc5AIMOlk9eIUCBeQVF8d9RN/mkuSlZrW7yVP72xxWZcF20nhH59RMR6WgplCXTkaoanIzfl5IpKEnkZceed9BS9zgKy7/4rYh0Fmz/3jEKPkECJFACBCqqHVkOkTlt'@; put 'gVox2cd8sCnXzPK9G2wk/kTFStGKORgjvz1Hgem3GclxPLEKWx76XELqx6OjDVqU5WvRr7eB9l7t523Z+POInD+e5yQYCL66RojLxyzXcplPcZnOHg/Jsd0hWfcjf/dgz9f8cr0kQAKFJRCGB2oJkn8WrHDgJWLyzzvo40dHW0puedqQPZuQ9GNRZL6Dkc+eoMD02YTkOhzNJl9wT0pufxQtDvs9'@; put 'bmtzzeD06x0yQxJHp5vtr5hycLOZl1hF3afxsyxZjo4YdY1m3tzimd1TgZlE9vj6Hxlycn+ehXNmo7wlARIoeQIaS6/JP8vWpCQaS2dR589MUHy4NbNcDSevPmHK6f0oX8TYeF9PIgWmr6dn6IPTGMWaelse/iKKro/KT7LPwFG515D40odMQ07stuWtVyJyqdkbl7nuSwVKeiy4OyVz7rQliqtX'@; put 'C7Xj8rm41kts4PzxEILK/dm5KJ/7z3WTAAmMPIGpC1NoMWlJFRI3NfGHyT9vz4lmlne3O27ST1uza+Z4+0Xe8xUBCkxfTYc3g1GL37I1SVmqNTHzbMXMjFi/5uq+6Oly0OZLO/6Y0o4Wi8NZ9Cq+rMKRKYttmb/CkoYmxFuqsPS4Q9FgY1OBaVumbHo6JIe2jmwppsHGx+dIgARKg8DYqZabtFk7'@; put 'BpZMnBMpMt+ed7dn+REk/XwPPct7hvc78/baeC9fBCgw80V2BNebtmI6sGLGC2LFzOxq2poJoYmC7D2djpw7EoJV05ALJw3p6775SSActqWmEYlK82yZutCS+rFoqYazaj5jSTNj19u3rZfIkEcZpmT85mMe+HneJwESIAEvCdQi7vzO9yZk7FT1RjH5ZyBbTfrZ97otm59m0s9ALn66T4Hpp9nw'@; put 'cCxqxVy4MinLHy6cFTMz/IzQDEdM16Xd02FLx0VDLp0LSRcys/s6ULBdswDxv1oqK5EZXoOr9PpxKRk1Wp8Lu20fbY+Lp2fGd71bFZippCGvo3PP0Z20Xl6PE58nARIoHAGtb3zH+xIyeTbiD1Esk5bMy+xxvlZjxuanUEpuM+IxbTzBxVcEKDB9NR3eDqa8yhLtT94wAbGLeShGns1o3a88EoFM'@; put 'xGkauNWAdW3/lWlboaLObQmG522M0RrwWjbr9+o9Og5VvCf2oVPRE7giZoaiV2i5HhIggRwJxModuf3daC+5BP4piswrNPW3I5VAPOZ30pVMKL6voPHFHQpMX0xDfgahdTG1U8R9H0VdTFV0qu64vIOAaktNRuzvFjem5+JpZo6/AxKfIAESGFEC4YgttzyclHnLNXQH53Sez935cDv9nLNQsxiN'@; put 'P+AhY6efET1Mr9o4BeZVOIL3QLv7rHg3Tkp3Ft5VXiw03dhLx0SpJUd2vca6l8UybxwnCZQaAQM9zJfej1qZKx107WWtzMz8azzmke22rPsxvE9J1x2VeYm3I0iAAnME4Rdi05p9WFVrywOfTko9srFHylVeiH0dzjZccYl/zh5Cz3G0vkwmeHIaDkd+hgRIoHAEFt+XlCWrIDKRGCn4n8ZMEc0s'@; put '3/KsyO4NiMdkiFPhDsYbbIkC8wZwgvKSiqix0xCP+cmkGFHtd8vTkc6tKyXhbepsDcmr349I23lmjQflmOd+kEDQCWh94KWrUxBW2FOKTLSWAwa0SH75e2FpPqxF2IN+BPh//ygw/T9HnowwBNfK3Nu1rpqNDG6ejTLiMtlnyIZfaJF4Zo17cqBxJSRAAgUjMHdFSm590JJwGdQUGreVuqbSWszt'@; put 'zZfjMdsQj6nWFS4jRoACc8TQF37DWrrotoeSsmgV4zH1vGPbhux4OSS71kUKPxncIgmQAAl4QGDO7SoyUxIp05Oam87pwVqLdxUaj3l4q8j6n2iZPHqlRnImKTBHkv4IbDuCTMS7PpCSmbeUrshMX9Qasvf1kLz5HFwpaWf5CMwGN0kCJEACuROYudSSWx9NSlk5RabS1MzyTfBM7d9ssj5m7ofX'@; put 'sNdAgTlsdMX7wRiKm9/zwbhMXWRKsg9+lRJaXHEZMuTgmyJbnkGvcS34zoUESIAEipzADIjM2ygy3VkMoeZyot+Wl74ZlYunYcXUOnRcCk6AArPgyEd+g5pZXlntyL0fTMnEBbBklojIzIjLA2868uYzUYrLkT8UOQISIAEPCajIXA6RGaMlU8KwYjYftVGEPSpxxNpzKTwBCszCM/fNFssqtM9t'@; put 'SqYvhciMBzdC3L121fMLYi73bArJjhfRipKWS98chxwICZCAdwRmL08i1t6WSAwpPyWezxkpN2XnKyJbcc63WbrIu4MsyzVRYGYJKqhvi8RsWf4ICrHfYUhS20lqq8YALSouQ2G4S/pCsvNVCMz1iMlhzGWAZpi7QgIkcC2B2Uj8Wb4W2eWlLjLxA6C/Aa+gdNHpAzj301V+7aGS18cUmHnFWxwr'@; put '1+4QC1ehptp9Fgr3hlBLLBgiU13i2v+8sxVXsC+F5fhOtoAsjiOSoyQBEsiVwLw7U3LLAxCZ0dK2ZBooXdRxwZEXvhGWbpYuyvWwGtLnKTCHhCu4b9a+5VPmw5r5rqRUN5iS6i/e5B+9YtWiuyEDMTiHHXkDmeKXmikug3v0cs9IgAQGI7BoJTr+rEZWtVnavcu1dNH+zQ4yyyMoXeT+QgyGi895'@; put 'TIAC02Ogxb06R2pGO67LfMoCwy3IXmxdf9JWS0P6ey3Z97oJl3gY7R8Z4F3cxyVHTwIkMFwCy9YkZNFKXHCjd3nJdrdRTYmfgQ1PhuUoPFmOTZE53ONpKJ+jwBwKrRJ5rxlG158Vliy6NylVdWFJFEECkJ4uNNZS/zt7xJEdr4Tl/HFaLUvkkOVukgAJXIeAeqdueyQl8+/Q0KfSFZka/tVzyZbn'@; put 'vxaTjrb0b8V1kPFpjwhQYHoEMnirgTVzjCOL0et2+gJLzBgyrxP+yzR3hSXiLA0jJK3NNoqnm3JsO7PEg3c8co9IgASGSyAMo8GK9yTRYANrcEpXZKqr/BDK1G34aZhdfoZ7MA3hcxSYQ4BVim/Vq9+maZYsXGlJ0wyRMAKmkz4QmpkEHu01237RQmuwiBzaZkpfN10fpXiccp9JgARuTEArhtzz'@; put 'vqRMXghfsVOiMZn4eTDg2Fr3o4gc22mgXTB/L2581OT2KgVmbvxK5tMqNCfMsmT27ZaMn25LWRWshChrVMiMc/dUAGtlOJyOD209I3J0uylHdyPmsptxliVzMHJHSYAEhkWgrMqWVR+GsQDncG24UYoxma6rvB2u8q/SVT6sg2gIH6LAHAIsvhUEIDRHN9kybYktk+ZYSAoKiQmrppWyxbIQ4+Nx'@; put 'hSO1VGrbL9PUq01HutstaT4CNzhEZfNRCM0khSWPSxIgARLIlsCoBlvuezwpdeP0E6UpMtVVfnCLIxt/Rld5tsfNcN5HgTkcavyMSyBaZsvYqRYsm46MnWbLqDpHohVht7CtWjZtXB6rKMxGdLrWSRWTiKXUP42p1Of6+1LS0x5y+8meOWzKeYjK3i733ZwFEiABEiCBYRAYM9GSe2DJHFWvzTWy'@; put 'OkUPYys+/oj7WyPy6ydMOb4rzALseZoqCsw8gS211ZphW2qRFNQwERbOCZogZEtljQXBaUg0elkwuuLxajKIN0c4kCOWbUsi4UiyV2ClDElHiyGXzhnSciYkXbifiFNUXk2OjwYSMFDzNAwrNy5RUI5FZHRDndy+dKHMnzVDImHt3uSxaX3gxod5Xy+++uNxaWvvlIuX2uVSe4f719HZJV3dvdLb'@; put '1y/JVGqYa+fHSODGBCbMSSEmMyWxKnxncCz67xty4/Hn+mq6ALstL349Kl34zdF4fi7eEqDA9JYn13aFAKyZZSLlVY7EKhGzWRnCYwdJQmqlvPwmCMsEit4m+0TiPSE3QaevN4Qi76GSO9ldwcY7VwhEI2EpLyuTyspyqa6skKqKChlVXSU1+jeqSirdx5VSWV4uFeVlUlYWc+PK9ODR12trRiG0'@; put 'wt+lqvRHTf/S8XC4wEomXdHZB3HZ1dMrnV09V4Rna1uHtLa1u4K0HSK0o6tb+vrj8BLgKo0LCQyDwOzbknLHY9o8N23GLDWRqa7yXevQ6Q3NOCz2Kh/GEXTjj1Bg3pgPXyUBEsgDARVV5RCEVRCOdRCC9bU1Mrq+VhrqavBXi/t1MqqqQioqyt33RSMRicViCJ1IX53orYqyjLjK3Opzum7L0ixZ'@; put 'jS8rrp9MHbsuun96X28z9zP7k0gkICz7pfuyAG3r6JQWWEBbLrXJxdY2aYEIVSGqVlAK0DwcvAFb5a1rE7J4FTzliKMvrm+LBxOhXzdo6xe/G0bXN3WVe7BOruIKAQrMKyh4hwRIwEsCGRFZW1Mto+vqZFxjgzSNHSONcF+Paah3LZGjqiulDMIxIx71MyoWM38qqgaKRy/HV6zrGihC1UKrj/U2'@; put 'I0DjcLurAO3p7RMVn2r5PH+xVc5daHFvVYy2dXTABU/rZ7EeA16O2zRtuftDSZmxBImUSVyYebnyIliXGTXQlMOWl78VlXhfxr1WBAMvgiFSYBbBJHGIJOB3AmWxqGt5HNc4WiY2jXX/xo8bA2FZ67q1K2GJjMAKqWIoIxoHWhn1OS7eEFDGmb+MAM1YfJV5b1+fdHR2w9XeIc0trdJ8oVVOnjmH'@; put '2xbXEtoJ17sm6HEpHQLlFbas/lRSGicjJh4JmqU2+2G4yrc866C1cERsuso9O/ApMD1DyRWRQPAJqHDReMfG0fUyeUKTTJ3YJFMmjod1crTUw9VdVVWJOqXqakq7p1NIUsncp4j0x/Ghc6iCU8Vnxv2uVmIVnl0Qly2weJ5tviAnIDpVeJ7BfbWCJhJJf+wAR5EXAnWNttz/qbhU1cKKV2JJP1q5'@; put 'JN6L2phfj0lbs/rNmfDjxUFGgekFRa6DBAJKQOuPumJyfJPMnj5Fpk+ZKBOaGiEma9z4SBUoKk7UMpZxawcUReB3KyM8M+JTH+sFQndPj7S0tsups81y7NQZOXryNIRnsys6dd65BIfARGSWr/xQSsIxSCyYMUvJkqkJP4e3ObL+J0j4YX1lTw5qCkxPMHIlJBAMAhoPqa7tGRCSc2ZMdW/Hjhnt'@; put 'urnVMqkiUkWH3tIiGYw5v9leqODMiE691Uz3ru4eOXseVs7T52T/4WNy5Php93F/PHGz1fF1nxOYf1dSlj+KQWqinM/H6unw1GgJ4+2vfxCRE3s0iZBWzFz5UmDmSpCfJ4EiJhBBKaAmuLfnzJgmC+bMkOmTJ7iJOFWVle5eqYUqY50s4t3k0D0mkBGc6mbXRa2c5xHLqdbNvYeOysGjJ1yLZzLJ'@; put 'Op4eo8/76mC4lrseS8isFYiXLrGkH+1K13rGkRe/EZG+Hib85HqwUWDmSpCfJ4EiIqDCoHZUtcycOkkWz5sl82ZPlwnjGmGhrHYTQzLWSbVQciGBbAnocaV/auXWpau7G3GcF+UAhObOvQdcwdmK7HUmD2VLdGTfF9Okn4+lZNx0xFKXWNKPusrffF5k12vw2DDhJ6cDkQIzJ3z8MAn4n0AYVqYJ'@; put 'yOxWQblo7iyZOW2SWyZIxQAtlP6fv2Ic4UALpx5jrajRefj4KXkLYvOtvYeQOHQeoRaM3/Tz3NaNtWXNpxNSOQomzRJK+rmS8PNvSPi5oG5yusqHe5xSYA6XHD9HAj4moGWDpk+eKEsXznWF5dRJ49HdZpQbN6lWSv3R50IChSKgrvRM1rq2wjx64rRs27VPtu/e72aqsyVmoWZiaNuZujAl934w'@; put 'JYZGQpRQ0o9aMQ9uEdn4M1OsFF3lQztq3n43BebbLHiPBIqagCbozJo2WW5dPF+WQVhORLZ3BdopDkzMKeod5OADQSDjStcsdY3d1AShzdt3ytad+5AodJEXPz6b5VseTMqS+9DwoJQ6/cBoqVn0L34nLOeOoOwaI4aGdVRSYA4LGz9EAv4gEIGbW62Ty5culOVL5rs1KcvRm1stlGqpZKa3P+aJ'@; put 'oxicQEZs6u0ltLfUBKGNW3a41k3ttc5l5AmEI7bc9/GkTJoFT7lVOkXYw+jwc/awIy9/JyLJOK2YwzkSKTCHQ42fIYERJKCWH+3ZfRsslXctXyrzZk1HT+9KisoRnBNuOncC6kLPlMI6fe68vLF9l6x/Y7scO3lG6ELPnW8ua6hpQDzm5+JSXQOhVULxmNpGcsOThhzcmk5ey4VhKX6WArMUZ537'@; put 'XJQE1Fo5fcoEuXfFrXLHrYtRXmiMux+ZzO+i3CkOmgQGIaBCU/+0beXOvQflVxvfkB1aevCmAABAAElEQVR7DqDbUP8g7+ZThSAwBfGYKy/HY5ZKJ1EjHJL2CyLPfCkKKyaTfYZ6nFFgDpUY308CBSagsZWL5s6UB1beIUsXzHWLnmuxaybqFHgiuLmCE1DXufaw1+P9CLLQX9nwhmx88y25hD7q'@; put 'XApPYPkjSVl4T2nFY2rCz6anRfasixQeeJFvkQKzyCeQww8ugfKyGJJ15snDq+9yywvFIDT1h5Y1KoM759yzwQloWIgKTV1Oo2WlCs3XXn9TzrdcYpzx4Mjy8mwkBlf5JxOoj4ki7CVSHzNkhqS305an/6VM+rpoxRzKgUWBORRafC8JFIBALBqFpXKOvOuBlbJ4/mxR17gKSybsFAA+N+F7Auo6'@; put '13jNc8g4f3n9ZvkVxKYKTV54FWbqRk+w5IFPpSRaoZnWpZH0E4UVc8erIm8+RyvmUI4yCsyh0OJ7SSCPBMJh0+39/dja1XLnbUtEhSaFZR6Bc9VFTWCg0Hz+1Q2u2Gxto+u8EJM6D/3Kby+hfuUh5DYlEf77zJcj0tGSbo9aCM7Fvg0KzGKfQY6/6AmoZXJ0fa08ev+9cIffLXW1NXSFF/2scgcK'@; put 'RSAjNI8cPylPvfCabHhzh/T09hVq8yW5nZDhyH2PJ2XKotLpV65WzL2bHNn402hJzvlwdpoCczjU+BkS8IiAWimXLZwjH3r3Wpk/e4Zbu5LJOx7B5WpKikAU3yX97mzduVd+9PQLbv9ztqPM3yEwCqWLHkQryap6xCWWQOkihAHj+HLkuX+NSus5WjGzObIoMLOhxPeQQB4INNTVymNr75NH7r9H'@; put 'KivKJZFI5GErXCUJlA4BTQZSodmGLPNfvPCq/Oz5X0k8zu9Vvo6AGUstufsDqZKJxYzETDm83ZbXfhjLF9JArZcCM1DTyZ0pBgKaoDAbLR0//eHH3CQetbrQalkMM8cxFguBTN9zzTT/9pNPSfPF1mIZelGNEw5yuefDSZmxVLPKLW1XHuhFrZgw1srzX4vIhRO0Yt5ssikwb0aIr5OAhwQ0kWfV'@; put 'HbfJJz7wLhnXOBrWlbiHa+eqSIAEMgTUmqmlvbR+5pe+9YTsP3xMUriY4+Itgeo6uMo/m5Tqeqy3BFzlasU8tsuSV74DK6YqTi7XJUCBeV00fIEEvCUQi0Vlzd23y+c/9n7R4umaIc6FBEggvwRUZGqf8y9/50nZtHUn207mAfeMZXCVvw+uctgwS8GKCWUJK2ZYmo/Tinmjw4kC80Z0+BoJeERA'@; put 'i6Z/8NEH5MPvWYuL3hBd4h5x5WpIIBsCWqS9vz8uX/nuk/Iq3ObxBC/usuGW7XtUWN77kYRMX2KUhKs8gh7lJ/Y78vI3Y4EX1NkeA4O9jwJzMCp8jgQ8JFBRXiYff/+j8v5H1rhZ4iwI7SFcrooEsiSg5YwS8Bp8+Vs/ktc2UWRmiS3rt2lW+drPJaRyFNzGQS/Ajl1EF1N5/uthOXcknDWjUnsj'@; put 'BWapzTj3t6AEVFx+BFbLjzz2sJslzm48BcXPjZHAVQRUZKol8x++9j26y68i482DOSuScud7oC8R6xp0V3kmFvNlxGKqV4rLOwlQYL6TCZ8hAU8IaI3Lh+67S37jEx9029jRcukJVq6EBHIioO7yVsRk/o9//JocOHJcLNvOaX388NsETBRgX/2JhEyYg+dQMzLIIjOtKRGL+XVTmo/Rivn2UfD2'@; put 'PQrMt1nwHgl4RkDLpGgB9T/+3c+5CT0sQ+QZWq6IBHImoIk/ew8ekb/556/LBfQx5+IdgdETkVX+qYREyrVXOayZ3q3ad2tSK+bRncgo/y6tmINNDgXmYFT4HAnkSGDsmAb5T//uczJ35nSWIsqRJT9OAvkgUF5eLk+i48/3fvqs9Pah0TQXzwgsezApS1c5Ylt2oAUmksk13FR++dWIXDzFjPJr'@; put 'DyAKzGuJ8DEJ5EhAM8Y/gIzxT37w3Yj34g9Xjjj5cRLICwEDWRra5ee//f1XZM+Bw3SVe0g5Vo6En8/HpX4cFBgiEIJuxTy41ZZ1P2J3n2sPIQrMa4nwMQnkQECDvSdPaJK/+KPfltH1dW7WeA6r40dJgATySKCsrEx+jYzyf/za96WrpzePWyq9VU9ZmJKVH7bFgMIMssDUWEwb8abPfDkql5pp'@; put 'xRx4pFNgDqTB+ySQI4EyFFPX/uKf++j7ab3MkSU/TgL5JqAXhFoT8//6/74s+w4dpRXTQ+BaG3PVRxMydVHwa2NGy0zZvcGRTb+Iekiw+FdFgVn8c8g98BGBuppqxF5+Hj3G5zD20kfzwqGQwPUIaCzmD372nDzx1POMxbwepGE+39DkyJrPxKVME36wjqBaMkOoiRnvE3nmX6LS1YYHXFwCFJg8'@; put 'EEjAIwIa0zVz6kS4x39XKivK3dJEHq2aqyEBEsgTgSjKie3ef0j++n99Vdo7u/O0ldJd7S0PJGXJaiT8pILtKlcr5raXHNn2Iq2YmaOdAjNDgrckkCOBCIo43718qfzRb3+GsZc5suTHSaBQBLSkWHtnl/zZ3/yTnDxzDlnBQbWzFYro1dupqHTkQST81DZqsGJwa2MaZkh6Omx56p9i0t9LK6Ye'@; put 'BRSYV38X+IgEhk1AC6u/a8298kUUVo/H48NeDz9IAiRQOAIah5lMpeSvkE2+e/9hSaELDRdvCcy+LSV3vg/p5AEvW6RWzA0/Fdm3KeItwCJdGwVmkU4ch+0/Am6Cz0Or5XOPv48JPv6bHo6IBK5LQK2Y/x2dfd7YsQveBwrM64Ia5gtmxJEHUHy9aTriMAPc4ccMh6TlnC3PfqlMrJRGnZb2QoFZ'@; put '2vPPvfeQQBm6g7z7wZXyeWSQ04LpIViuigTySEAtmPr31//r3+TNnXsoMPPEeuJsC1nlKQmbwXWTK7pw1JCXv2PIiT1sH0mBmacvE1dbegSi6HG86s7b5A9+45OSSCRKDwD3mASKkIAm5/X3x+Wv/kELrh9hqaI8zaHa81Z9NB74skUqME/td+SFb0TdC5c84SyK1VJgFsU0cZDFQMDED9WCOTPk'@; put 'T3//NyUajTBZoBgmjWMseQLqHr/Y2iZ//rf/JGeaL5Q8j3wCGDPJQp9yWDHLkEgV1FwqKGkH4abPfSUqLWdKO9mHAjOf3yauu+QINI6ulz/7g9+UaZMnSjKZLLn95w6TQLERiCG05c0du+X/+fK3pLOLZYryPX93PpaQ2XdgK8ngli1i4fX0UUSBme9vE9dfUgQqysvkU+hB/n70Iu/rQ+VdLiRA'@; put 'Ar4moO0iv/KdJ+WZl9ehqw9DW/I9WTVjbHnoiwkB9sAWXw8ZIenrseVplCzq7SpdKyYFZr6/TVx/SRFQN/nCuTPlT2HF1LqYrKlXUtPPnS0yAmF8R1svtclf/M8vy4nTZ/l9LdD8LX8oKQtXBrv4uloxX/+5yJ6NpVuyiAKzQF8obqZ0CFRXVcjvfPojsvruFSxXVDrTzj0tQgLaJvJHaBH5fbSK'@; put '7O3rL8I9KM4hV9fBivmFuFSMMiSEwvZBDMc0IyG5eNqW576MkkVWaZYsosAszu8nR+1jAgZKnsydNc1N9qmqrMDJhXX1fDxdHFqJEtAWkafPNst/Q4H1U7jlUlgCyx5MytL7gm3F1LqYz3/DlLOHSrNkEQVmYb9T3FqJENCi6+9F0fXPfOS9rIlZInPO3SweApnal//wb9+TdZu3SYIJeQWfvMpa'@; put 'Wx6GFbOyJrhWzEjMlEPbbPn1E7GC8/XDBikw/TALHEMgCdSOqpbf+8LH5a7ly5jwE8gZ5k4VKwFN7PnZcy/Lt3/8NF3jIziJSx9IyLL70KI8oC0kQ8jviSPX8+l/jkh3uzmCpEdm0xSYI8OdWy0BAmolmTCuUf74dz8rM6dNoSWzBOacu+h/Ahp3ueGN7fKPX/++tHV0+n/AAR5hZQ2smF/shxXT'@; put 'DGwsppvs8zSSfdaVXrJPSQnMD73rAdmyY4+cOHMuwF9Z7pqfCGhW+ewZU+SPfuszMh5iky0k/TQ7HEupEVBxuX33Pvm7f/22nG+5VGq778v9dWMxVyEWM6BWTDfZ55TIs/8axT6WVrJPyQjM8WPHyD/+1X+Wvv6EfPvJp+T51zayJIUvTzfBG1QYnULmzZ4uv//FT8j4sRSZwZth7lExEFC3+Ft7'@; put '9ovGXZ670MLzv08mzc0o/3xCKmpQFzOgDX4MeMd/+bWINB8tLTd5yQhMtV5+8RMfcntEa+2z19/cIV//4c/k9Dm2BvPJeSbQw3AtmdOnyP+OmMypkybQkhno2ebO+YmAhqqouNy09S350reekOaLrX4aHscCAssfRl3Me4ObUa5u8r0bHdn482hJzXdJCEztNfs3f/IHKB0z3RWYOsN6wmlta5fv'@; put 'wJr53K82lHxT+pI66vO0sxH0152xJCnHdoYR2P3O7g36Qzd5wjhYMj8pc2dOc49FFmLP02RwtSQAAnru17/nX90Az9XTcqm9Y9BzvXaXKa+25eJJU6xUabkx/XCg1IL/WmSUl5WHAtndxzBD0ttpyy/+MSb9ve/8bfDDHORjDCUhMOfOnCr//f/8A5ffwB90PfGoNXPd5q3yjSd+LufOt+SDMddZ'@; put 'AgQM05GJsyy58wO2rH/ClDOHr+8Kmdg0Vj72vkdk5R23um461sksgQOEu1hwApFIBCFRcbeQ+lMvvubev94glqxOyrRFlrz6g6i0X1CBSZF5PVb5ev6u9yZk1gqsPaA9yrVk0Ws/FDm8vXSSfUpCYH7+8ffKR977yHVLxag1s6X1knznx8/IL3Glq5YmLiQwFAKxCkfu/WBCpi4wZd8blqz/cfSG'@; put 'x9Go6ip5cOUd8oFH1khdbQ2tmUOBzfeSwA0I6Pk7Fou5RdS/8t0fyzYk9aRS1292ECt35IHP9kvT1LDseMWRt16NSDLO34AbIM7LS6MnWbL2UykJwxMUxNY+4aghJ/fa8tK3UBOzRDRG4AWmFrz+u7/8Y5kAq1EqlbruF2OgNfPrP/gZ43SuS4ovXEsghMj0xsmWrPl0SiJRuEK6Q/Lq90y5eOr6'@; put 'VkxdRzhsytwZ0+Tx9z4kSxfMdVd7o2P02u3yMQmQwNUE1GqpHoFNW3fKE2gBefTkmZsm88y9PSnLH4U7PWJLd6sjL34rIh0t6sakyLyabn4fqXdx9ccSMmURuKfswGlM1ZSJhCPP/EtMOltLw00eeIF5y6J58pf/4XdvKC4Hfm20jEXzhYuuNfOldZsGvsT7JDAogUjMkYX3pOSWtTgvxtVSEpKj'@; put 'O0TW/ySKk+TNf6SqqyplzT0r5D1rV0lT4xj3WKXbfFDUfJIEBiWQMRBo68cfP/uSrEedy55eVLi+yVJWKXL/J/pl9ER8a2E4MyKGbPyZATcmYjGTN//u3mT1fHmIBCbOsWTVRy0JG8ETmIrCrYn5FGpiri8NN3ngBea/++zj+OFefV33+GDHv8ZlGqhfqLGZas1kvbTBKPG5DIGySlvu+2hKmmYI'@; put 'fpRs1/uRiBsQmIac2pddD1rtXz5pQpO8a829surO20RFZxLt62zbzmyGtyRAAtcQ0PO09hS/1NYhr76+RZ59ZZ2cbb54U6tlZjWL79N+2BCXhoXPwKuAOLkj20U2/cIcNFEv8zne5oeAiVj2Bz6TkHHTMRm4Vse/gVrCkZCcO+7IL/81lpXxodh3PtACs6qyHO7x/ySNo+tdt8lQJ0utmWebL8Ca'@; put '+bS8suGNoX6c7y8FAjB71DXa8iBOiuXVhjj2ZZsljB8Xz4TkV99DokFX9u6QCC5utDD7u9aslOVLF0hlRQWFZikcR9zHIRFQYanu8O6eXrf80DMvr5MjJ07dMNby2g2MnoALQ7hkK0bhO+uEXDGj2b7tLY689I0oWvtl/729dt18PHwCs29NyR3vx4V6EAuv43fBxm/Ecyi63nr2xiFUwyfon08G'@; put 'WmDeccsi+bM//O0rpYmGg12tmRo0/hqujr/xw1/IxUttw1kNPxNQAiE3e9yW1R9PYA9x9rh8yZ2O4Tbk4JtqDYkM+Wo1Go3Iwjkz5dH775FlCPMoRyIaLZoBPYi4W1kTyLjCu7p75I0du+S5V9bL4WOnJAFr/1AWDWu57/G4NM3UsjiOa710P2+EJNXryAvfjkjrGVwwQnhyKSyBWLm2j0xIbaOq'@; put 'McxNYTef962pm/zN5wUJZcF3kwdaYGrnlEfuv3dI7vHrHV1qzTxx+qzbBUjje7iQgBIwI47Mvg1X3O9xXPf4QCoqMq2UIVtfCsm+jcM7mcSQpDYf9VvXrrpLNJ5Ys89VaDJGcyBp3g8yAb3A1wt9FZda7WPz9l3y8vrNrrBM3iBx83pMVFAufzQpc+9QcZl2jV95r6snHSTpReXUIQjMEmvtd4XD'@; put 'CN9ZtgahC6uhL5GwFTSBaYZD8G7Z8uyXymDNdA+4Eaadv80HVmBWV1W42eNjGobnHh8MuZ7kUjjgX8HJ7Xs/fRaF2jsGexufKyECboLPyqTc8kBIkv1Xl0JxTx34p79fZPPTYTmOAuzDXdR1PnPaJFl91+1yx62LZXR9nRufqVnnA2u7Dnf9/BwJ+I1Axg2ucch6cb9u8zY3eefc+Yti5RCbvOje'@; put 'pCy5X4uwXyMuLwMwIADW/ciU47tZdH2kjgktvP4QCq/HKnARAIUZKJGJ3wS1y/7yKzFUGgl2GEZgBaYX7vHBvlx6Na1B5afOnHM7Q6zfQmvmYJxK5blImQ1xaSGLHPWB3Qzyq/fcFZk4h/ShdNHrPzfl1P7hi0xds7acHNc4Wu5evtT907aTGoumQpNWzavZ81HxERhorezs6pY9Bw7LrzdtRS3L'@; put '/aKPc13m3YlqD2uQpQwXuSB/bjDhYmom+c8NObLNlBQzyXNFPqzP60XzqscTMn0JrMioYTrYPA1rxT75kLrJt73oyLaXgt06MrAC8w/gHn/YI/f4YMdkxpr5MkoZfe+nz7ktyAZ7H58LNoEoijQvfwTuttthwRxEYOreuyIT8dx9+H3c8kxEju3yJri7sqJcFs+b5XYEWjh31lVWTWafB/u4C9re'@; put 'qftbL5QSiYScPnferWP5OnqHHz911vUa5bq/Wqt28aqULFrliBmGsryOuNTtqMDc9DTip7ewVFGu3HP5/CQtWfQxS8xQ8EoWqZu85QxqYn45hjAA9xciF1S+/WwgBab+8P79fx1+9ni2s5WxZh4/dcatm7nxTRQ/5FJSBKIISF/xrhTiMK8vMBWInkJCSCCI9zuy5dmwHNkRfjuxIEdiGavmbUvm'@; put 'y+1LF7lZ6FWVlVdc6BSbOQLmx/NCIJOwo8fnRcRW7oCV8nUUSN8Nq6XWsNTzqxeLdupZtjYps2+FuzWEMJYbiEvdHgWmF9RzX0cYhe8f+kJSGiYgy/8mc5b71gq8Bj20YaV9FuWKWpBMFtQlkALztsXz5S9QXF2TIQqxqDVTg83Vmvn9n/2S1sxCQPfJNrIVmDpc9+cS5xKtkXkAVa/2rotIf583'@; put 'P6IZHBqrOWVik9yK74AmBU2fPFGqUFNTf8TVhU43eoYUbwtNQAXjwLhKTdjZd/g4ROVbsnv/YWnr6HSPUy/HpaWIboWHYfy0ECxFsIRl4WulwPRyBnJb16KVCbl1LdKyApjs42aT/xLZ5L8aXgJobmQL8+lACszf+fRH5L0P3+9J9ni205CxZh5FLTbtab5p285sP8r3FTGBoQjMzG4asGTqD93p'@; put 'QyI70fc4X4HeGbG5ZMEcWTp/jkyfMtHte67HaiZmkwlCmVnhbT4I6LGmF+DuRTgu+NVSue/QMXlz5x5XVLZeakclmixU3xAHZ6B82PRFKVn2kC1V1TBaarmbLDdDgTlE2Hl8+6gGLVkUlzJN9sF2spzCPI7Iu1WbKLp+/pgtz32lDPvlraHBu1HmtqbACcwYEnD+7i//o0wcP879Ec0Nz9A/rXFE'@; put 'ccQRaZvJH8CaqVflXIJLYDgCU2ngd9d1mfd02LL39bAc3prfziFhxLiNbqiTeTOnydKFc2X29CkydkyDVKD8llo3VXDqLQVncI/VQuxZxkqp7m+1Vvb29sq5Cy2umNwOF/jBo8elvbM7r8dZ3ThbFt6bkinz1d0N3+oQO8JQYBbiSMluG3o+uu+jCZmq/ckDVnhdfwOslCNPfykq7Re8icvPjmrh'@; put '3hU4gTl/9nT56//8++4JbKR+LAdaM7/15FPyxvbdhZtRbqmgBIYrMHWQes0aQucQB7XQzp90ZPc6U84eNGHR0Vfyu1SUl8nUieNl7qxpbp1NzUYfXV8rZSjoPtCdPlLfofzuPdfuFYFrBaWGJV1qa5ejJ8+4sZR7Dx51Swz19ce92uR11xOrcGTWLRYS7lJS3aAu8eytlgNXSoE5kMbI35+yICUr'@; put 'P2KLgeDZIFkwlay6yTf+AuFSG4LpJg+cwPzEBx6VT33osYK6x6/3FXStmfGEvPDaRvnhL57HlXvX9d7K54uUQKTMkVsfTMmCuwcvU5TNbumVrLaoS8RD6F0usm+TKRdOGp4lOdxsDCoStID7ZFj9Z02fLLOnTZGpk8ZLQ10N4jer3I9r7KYKT1o5b0Yz2K9nBKW6vNVCqVnfbe0dyPy+ANf3UcRU'@; put 'HpWjJ85IB851+XB9D0YXxlKZNC8lc++0ZNxkvAPfJ0fF5WBvzuI5CswsIBXwLVGUglM3ee1YnBMD1tknHDXk5P50a1LXrVVAroXYVKAEptp9/vbP/73MnTm9YAk+N5ukjDXz8LETbt3MLW/tudlH+HoREUjXwYRL7h7numWKst0dFZpm2EA5IwdFnpEIhDIpl86NTIZheVlMxo8d48Ztzpw62b0d'@; put 'B5e6CtFYLOZ6CCg6s53Z4nxfRkxm3N26Fz09PUhi7HRLCR08clwOHjvpWijbO7pyKn4+HEIGSg81TrNlHoTlxFmOhBHTZqdyt3JRYA5nNvL7mdseTsqiex1P5je/Ix3a2kM4vff3iTzzTzHp7lAFE6wlUAJzEiww/++f/xEKoaP3c7YR3QWaz0yNt2fRO/eJp17wpGhwgYbOzdyAgJcCM7MZTQIK'@; put 'oU5ab7stpw5qPb6wtJ5GweHMG0bgVksh1cOiqaJTrZuanT5p/FjEcY6WqsoKt/mADku/d5nuQmrt5OJ/AiokrxWTOo+9fX2uJbL5QivqUZ6RIydOywk0mGhGTKWWERqpc6y2ehwz2YErPCkT54VEyxDZiGXz6pRPgem/Y7ZxkiUPfDYpEfSpGMnzYD7IRGDF/NX3DTmaQ6e3fIzLi3UGSmA+uuZe'@; put '+b0vfMIX7vHBJidjzTx09IR880e/kG274A/lUtQE8iEwFYhey2rdTG1b19dty2kIzcNbDblwIoxSQ/5ApolDtTXVEJ2NSKobK9MQx6kCtHF0HZ4fJeWI51RXqgqRgcIz89gfe1E6o8iISL3NWCV1LtTN3dvX77q6my+2yqmzzXLyjP6dkwstl6Srp9cNjRhpUobhyNgptsxCjOXEWSJllegknsyu'@; put '9NBQxk6BORRahXmvzv3azyVk7FTIy4DVxNQ4zP2bHVn/k+B19QmUwPyT3/ui3LPiVvR+RvNnHy9qzexH0Pvzl2MzvWiB5uPdDfTQ8iUwB0JzXefoLpLAYX3huCOHUKT9LARn3OMamgO3Odz7Kl40gaihrtYVm01oazmhqdFtbzkG/dNrRlVJGVzs6mbX92bEprrb9T5jPIdHXlnqonGRumQEZOZ5'@; put 'tSr3wSLpCkm4s1U4nm9pdV3dZ5svuI870IqxHzHjflsiMVvGz7JlJhJ4xk8NSaRMs2+9F5aZ/TZhUdryTEj2bcbFHFtFZrCM+O2ilUnUxNT42mC1jtT4+84WR57655gkE8FykwdGYNYgNuzv/usfuz9sxVBMWk/8+iOrcUxf/+HPZMeeAyP+BeYAhk6gEAIzMyrVEBqjaSHQvf2cI0d3m3Jyjykd'@; put 'LSMTp5kZVza3eryXxaJSO6ra/Y5qiaTG0fVuqSTNXq+HxVNd7eUQp2r5VIGUEUeZ5KKMyz1zq4I0yEtm/3UfM8JRb/VPX8u8nrFCqiVSs7XV4qgXrS2oMdlyqc0Vjxdb2+QiHmvyTWd3jy8skjebu+p6W6bMtWTKEktGNxk49vMrLDPjCcdMefM5ZPa+jl7kCf9/tzLjDvpt3Vh09vl8XKLlOBEG'@; put '7KuvrUyf+2oUyZ3BKlcUGIG5fMkC+S9/9Du+Se7J9svuWjPjcXnucmxmF07+XIqHQCEFZoaKXuMaEJp6UurucKT5aMhNCmo+HpaED62amXHf6DaGuOnKigokEVVKHcTmOMR2ahZ7fe0o192uF5DaAlato5qApK73KGreZsTWwHVnrKAZATpQkGaeG/j+wZ4b+PpQ7mdE37WfGSgIM2Ix81zm8cDP'@; put '6Jj1QlnL/miXsP7+hPQn4q4FsqurxxWJrSgHpHV222CRbEPiTXtnp3R190ovPDhxH1oiB+7f9e5HY46MnmzL9IUpWC0dqarViEsk76gr/Hof8vh5V2D+MiR7NxoUmB6zzWV1eiRoHOb4GfCRB9BNvgVdfd4KWFefwAjML3zs/fLh9zzk2/jLG32x9IdGfyw1NpPWzBuR8t9rIyEwMxRcZwoMLOEw'@; put 'LC1wGbZfQJmj/SGUvQhJ+9mwpHwSq5kZby63KsJUhKq4VAtnNdpfVsPiWVUFUYpSSlUQn3rfFaF4PSNEowhH0e9WBIxUlCorXZcmLelt5k+/g3o/I/oGik59buAy8DV9Xh8PFLV6P/Onr6UwESoSUyoY9RaP47ioVGujuqTVbd0HUaiJM92wPnbjtqcHf3Bp62N9Xl+PJ5KucLQCljylZYZqYZ2a'@; put 'NM+SSbNTUjcOc4VwNHWDj4SQoMAceLT76/78u5Ny+yPBc5NruaLThxx54d9w4F9zvvHXDAxtNIEQmJps8D/+5Pdljo/KEw1tGtLvVmumZm4+89Kv5cfPvoQfF9Qv4OJrAmmBaaFM0fDrYHqxg65VE3GayAtC2QtbWs+F5PQ+Q84eNqT9IkoUW1eLJC+26fd1qDDUdpkqKvU2ghRUFZb6PVOxqm54'@; put 'FaDu87hv4P1agSKzpD+f/mzmpG+hm4i6ogfWeFQxmYD40+fSVseUKyRVTCaT6fsqKlVgaiykPqf3rxWqme2Wwi2mREY1WjIB1qjxc2wZPR5JO2gHiOiPglorB2NNgTkYFX88VzvalrVfSCDBCzoMx0qhrNr53ntN6OzvseVpxGH2dAYnLCMQAnPCuEb5n//lPyCmMVr0J233Rw0/egcQm/nNJ34u'@; put 'b+09mO9jm+vPgUAELr0lq5KyZE1Ikv3+MBnqBbDGamoqerzHgtg05MzBkJw7Epa2i5p5W3piM4cp5kc9IqDflfomW5qmOzJ+puVaLcsrTJyzCxNbme1uUGBmS6rw70u7yRNwk2PbASy6/tK3EFe/LzhxmIEQmA+uvEP+/W99xvfZ40P5OqpbT62Z2gHoyadfHMpH+d4CEtAfzcWrUrJ0DSyYPhGY'@; put 'A3dfC/maprp+ITZh2VSBqTGb546giPtZXDX3BudqeeB+8/7IE4CxGDGUSNCZ5EBUWtKI2pVV9WiPF0NNV3i/1Rqst35bKDD9NiNXj2cB3OTLH4X1El6BoFgwdQ+1XNHO1xx549nglCsKhMD8w9/8pKxddXegBKYecGFYMl9EKaO//+p33dgwfY6Lvwj4XWAOpKV2SwNudBWdVkqk+5JaN9EH/Sha'@; put 'U54ypas13a5y4Gd4nwSyJaDHVeUoGzGUtluvcgySdWrHiJRXIeMdFzl2ErGqKiqzXeEIvY8Cc4TAZ7lZtYKv/SyyycuC5Ykx0YnqwklHnv0SOqW5lZCzBOLjtxW9wFS3+N/9xX9EoedxbnyTj1kPeWgaj/S3//w12bRt15A/yw8UhkAxCcyBRNxTM+qvhdWVDh9lf78tXZccaT1jysVTIbdzUOcl'@; put 'uP3jeJ0LCQxCIBKxpbJORMvHjJlkS8MEW0aNTgvKsApKnMDUSjkSiTqDDDfrpygws0Y1Im8Moej6Q59Lyli0CRVEJfn9giVbSOplSiYcNw6z81IwzrtFLzBnTp0kf/Onf+hmgAYpaF5jMc+jq8b/8X//vVuKJNuDlO8rLIFiFZjXUnKtmxCb2jlIY5v6+yzp7RBkpqvgNORSc0g6kKXe14NEjBJM'@; put 'GLqWV6k9Nk0HiRW21DSK1I+33VjKukZHKmsdtGpEghQuVhyrOAXltXNJgXktEf89Xnp/0g1LCpqbPIIarK98PyTH3kLR1wAsRS8w3/3ASvnfPv/xoixPdKPjx0TW67pNW+Vv/+UbN3obXxthAkERmNdi1KvpEESDxm+qjcCCe7OvB3U320XamtPCU0VnF660412oF+iP/KZrd4OPh0HAjDhSUenA'@; put 'GgkX91gISlgoa/Cn1spyFLlWV55mkLkxlBCVmqQTpIUC0/+zOXZKSh74TEq0GkGQDj+Nw9y93pZNT8X8PwlZjLDoBeYf/+5nZfXdKwIXf2mgbMo/ff378sJrr2cxjXzLSBEIqsC8lqdKCoHW1DI/IbVyQlWkIDrjKK3RC4HZAfd6J8ohdeBPYzl7ukIS70bXIQrPa1H65rEBq2SsDFbIOojJBgdi'@; put '0pEaiMpR9RCYNfoa6oWqmMTVhpPCRYbW38T/QfpBH2wyKDAHo+Kv5yJRRx7+YhzxvojvxbkoKMdkJg7zuf+fvesAkKo6u2fq9mVhadKLgKggCAFEaVKEqMRobFEsPxr9TTEaY/1jS6ImakSCYk9ETSxYwQIiUhRQmoICgvTey9Zpb/7zvWUImIXd2ZnZeffufbq8KW/uu/fcO/PO+8r5ns6gI8n+'@; put '1XUW8HH2RmmCKaLLj933ezRv2kS7+EvRwLzzobHYuIXmIrM5FoG6QjArmwD750/4x0FLp1g9o3Svh4KWrcVZVuShm53Ec7cbxXtJPPe6+Jxu9mLGGpW5qRXJUHb5kNlShoDA62WsZEZuFHkFTMKhS1tIZB5JZC6JZQWRpP4nM7tFi0+skTHLpFy1dblwxwOwIZjxoJW+Y08bGUKnXiSXCiSOVRcl'@; put '+b6yYBfjMP38vVQ/DlNpgqlr/KVUFFm6fBXueeTJCqtBdVenOa7WEajLBPNoYNuUkf8cQTxJVSxaM0XKKcj6AeXllEg6IJZOkHSSgPJx7HmAcZ6BUrpgwxWE52jnMa/bxkXGP1rIzAIyKD6dXc9Cdj7lgbjPpUs7u4DPs/leLv8yaYEWFQFexYRISka3JBJC3NwGzEMIGIJ5CApHP2jNcqIDLuJN'@; put 'alQvuSKp6jPtJephLlNfD1Npgnn24H749ejL9Iu/9HjxxqQpeOnNyY7+gpvOAYZgxrcKbIMl/7H1Oe1/SJLYhCTo8TrBKjcspxikXFIp7ISiAPfltHiW0Q1fStIpj4OyLwHCAR7HYyMhciT+CWkSd64OmwzD440yy59/JI9+ksPMbBJJEsUsWiOz+ZdLi2RmHl3ZfD2DsZHiNpQkATevSzaJFFxp'@; put 'JRZhIEnAERZpiGTVq8MQzKoxcsIRObx5GnFNObLzeNMka90JnUpCHyQOc/H0KBZOUV8PU2mCefN1ozC0f1/t4i/FRfXHMU+bKj5J+LKmugkhmKcMDOOUMyusc6k+n+7t2/SQ/0hWslw13EJC+X/sdYtEyWKN6jCJU9gmli6EKe0RJNkM0TIaLHfzMd30tJAG5LVyPqbUUohup3CQf6xiJMdLNSPL'@; put 'kox4WvKoCRqReCe2Lao60YNZ8rYqRXXjoFi3znb3sxmGT9N6K8/lsdQ4j3I8/GNiqNTY9rIapawbL//8GSSG3EsspJe6fhlZFnx8LNZGv7zG432Mg/SQPHp9UkedbUs9UG5CqKOMixQrpC1YLiRdl6tsGhe6IZhpBD/OUw+5IoDmHfghfgl0Wfpiwdy8ysJHz2dU/KbEiYmTDleWYEr9cYm/bNOy'@; put 'uXbxl9t27MKtfx6DomKaaczmaAQqapFbrEUuRMZktNTWZNkU6yDREtIlm9t+zndihFRelAMlN4XMS3JU5B8hZBYJakQIWUTqtHMvx9jvSz3sCqJm8T2JKY0eg2TKRY2foLWRpxViKScUQsm+CMEUUul2W/Zzed8jfeSf/X6MLB68Mh66QNp9kc4c7JP9gP2wXzH/pBoBQzBTjXDy2u/SP4Qew+Sm'@; put 'UB83ufw2lBywMOmJDOUrrSlLMFtSWP3Ru2+GlFTUSf9S5IlmzV2AR556MXnfQtNSyhAwBDNl0Ka04UOe9IMPSPsqyOhhZz10zGGvHevhD62HRzw/+OSI147VmHkvbQgYgpk26OM+cdM2EQweRbkihpJocwNm34O68OFzXmxfz7tShTdlCeaAPj1w269G0w1G35dGm8gTPfvyREyeNkujUek7FEMw'@; put '9Z1bM7K6iYAhmOrMu4SUDL8myJKkZGW8e9OFZEoc5udvA8vnMZ5G4U1ZgnntZefjgrOHaZXgIzFcpWXluPvhJ/D9uo0KL6u603VDMOvOXJuR1g0EDMFUa54HXBxA2y5URtBIrkiS9VYuiGL2RLUTfZQlmA/e8Rt0PbETs0gZua/JJgRz3cbNuOPBsSgr18syq8kU/dcw/FlR/GhECCf0krrdJgbz'@; put 'vwAyLxgEFEPA6/dg/ocuLJ/rsZPCFOt+netu59NC6H22XnGYHhaz2L05iklPZVYk8Ck6q0oSzHp5uXj8/ttQvyCfgfkVwfCK4n9EtyX+8pPZ8/D4c68c8bp54lwE/HTR9D47jI49DcF07iyZnhkEqo+AaIXOm+zGyvkeW22g+p80R6YDgYYtwxh2ZYRqC/q4yEUpIlAaweTxWSzPa0eIpwPahM+p'@; put 'JME8sWM7PHjHjXZyj04JPqY8ZMLrudYbEILZ55wwOvQwBLPWwTcnNAikAAFDMFMAagqbrIjDDDAOk7IMGsVhyjqc+k9KFq2kFIWim5IEU0eB9Vj85f/9dRzWrN+k6HKqe932Z0dxxnkhtGEMUDhoXOR1bwWYEeuGgCGY6s3ogEuCaHMy+61RHKYk+sybBHzzmbqJPkoSzBuvuQzDB52hlcC6ib9U'@; put '70dNemwIpprzZnptEDgaAoZgHg0Z577e5Ywwegyni1wjPUxJ9Fm1MIpZb6ib6KMcwfRQVfmvf7gJndq3ZVk5lvLQZBP3uOhfPvr0BE1GVDeGYRPMn8rds9tYMOvGlJtRao6AIZjqTfBx7cMYfFmElbP0icOURJ+ddGZ+8JSfxR/UjMNUjmAW1q9nJ/jk5eZol+Dz3CsT8d7Umep9u+twjyX+p+95'@; put 'EbTtKqUIjYu8Di8FM3RNEDAEU72JzM5jXfJrA8gpYF1yTeIwJdGnvJgVfcZnoPQA40sV3JQjmCd1bI8H77zRJpc6JfgEgyHc99hTWLZyjYLLqO522ZYpGh7GCb1Zi9zIFNXdhWBGrg0CQjDnvOPG94tNFrkqk0oVTAy5OohmbSm1XvG/Kl0/ej9ptJTQuY+eZ0WfdWpW9FGOYOqY4OOm23/rjp24'@; put '7U9jsL+o+OgLzrzjOAR8GVF0HRhGtzNJMMuNBdNxE2Q6ZBCIEwE3XZOzJ3qwbikJZlhN12ScQ9bicNEjPvmMKKywpVVFn5lvuLBqgZqZ5MoRzBuuvBgjzxqkVQUfIZiLli7D/Y89o1VddS1+taoYhMcfRaeeYfQ517jIq4DKvG0QUAMBcsqZr3qx8TsPrIghmGpMGnB89zBOv4C62Jplki+ZGcWX'@; put 'H6iZ6KMcwdSxgo+XAusTJ0/Fi29Qk8BsSiHgZlB5i44WBl7KilKKBmIrBbjprEEglQiQT4aZOzp9At2SGzy84TcEM5VwJ7PtwuYRnHVVCF41uVilUHj9bmxYbmHahMxK33f6i0oRzLycbIy5/1Y0KmyACOUItNlcbjz61D/x2ZeLtRlSnRmIK4rCJhaGXhWEP4eB2BYDgMxmEDAIKImAy+NCyd4o'@; put 'Ba79OLBbyKUhmKpMpCRcjvhFAPUK+TusSaKPm+tx306WjHwyQ8mqUkoRzLYtm+ORu2+mFIHcWepzIS8pLYMIrK/buEWV77Lp52EIZDGD8czLgmjc0s2YLX1Klx42RPPQIFAnEJAEn62rgRl0kZeXqJm5WycmqpJBCicYdgUTfTryTd7o68AQmOODQAB4/wk/ivaptx6VIpin9+yGu377CwJOxDXZ'@; put 'JEts/aYtuOPBsSgtK9dkVHVrGL5MCz2GRnDSGSbRp27NvBmtbgiIuPXS2cDiaR6qQqh3QddtPuIdT8/hQXTpR36pUaKPWDE/et6DbWvVS/RRimBe+pPhuPLi87RK8PEw/nLO/MV4aNwL8X6XzPEOQUDiMFt3ttDvYgZvGQOmQ2bFdMMgED8C4iKf9ZoH65eZBJ/40Uv/Jzr0CKPvT/VL9Jn5OjPJ'@; put 'FxqCmdIV9rvrRmFI/75alYj0eLx4/b2P8PJb76cUO9N46hAQ10y9BhYGM8C8XqGLmac6OGdSh5dp2SDgRASEXBbtAab904v9eyjYbeIvnThNx+xT41YRDL0yDK9XDxe5DFZqki+eHsXCKeplLyljwRQpn7/e9Vuc0KGdViUiwQSfvz39ImZ/seiYXxzzprMR8GVY1MKMoOsAI7ju7JkyvTMIVI6A'@; put 'jxfyZZ8DC6bSPV5u3OOVo+TsV7Pzo/gxE32y85mexft8HW71JWxj9WILM17LcDb4lfROGYKZn5eLscwgb1C/QKsMcom7/MNfn8CaDSw6ajZlEXDx16xxS1oxR1EmQxQljKtc2bk0Ha+DCDCZwmKEy7SXvdixnu5xy2SPq7gK3O4oho8OoFEr9p6/wToQTEk827HBYk3yTOXGowzBbN3iODx69+9o'@; put '+vZqk0EuCT5bd+zCrX/8G4pKSlX8Pps+H4aAP9tCn7ND6NDDbcpGHoaLeWgQcDoCYiVasySKOW97ESgz1kunz9ex+tf/oiDancLikeGIcoSssnFJkk8RpbMmM5M8oJhlXRmC2bt7F9x98/UIBilorckmcktffbsC9zwyXhvSrMnU1GgYYsVs0pqSRZeH4MvgD5zRxKwRjuZDBoFaRcDNuOkwxdVf'@; put '8WLrGje/t8Z6Wav4J/lk3QeHcMogWi+pla2DBVOkisIh0cIUbVa1apIrQzBHDhuIG666RKsMcjcJ5kfTP8P4Ca8n+StmmksXAiJZdOqQCE6mVIapTZ6uWTDnNQhUHwE79nIukyg+8iFYbshl9ZFz5pHtu1WUjHRZ+tQkFyvmlBc8vAFSK5NcGYJ5/agLcd6IwVoRTJEoeu6ViXhv6kxnflNNr2qA'@; put 'QBT5hYzFvCKEgoZGeL0GAJqPGARqDQG3102rkIXpL/uwb4e4xg3BrDXwU3Sixi0PZpL79Mok//RVMNnHlyLUUtOsMgTznpuvQ+9TT9FKZD1CF+pD457Dgq+XpWZ2TatpQcDWxTw5gv4XhCtcNDr4adKCpDmpQSCFCJBLCp2c/ZYX67/xsAqXIZcpRLvWms6tz0Sfa8qRnVshNKXDz69IFc2fEsXX'@; put '09WSKlKCYEpijyT4tG/TUiuJIikRKRV8Nm7ZVmtfPnOi2kHAli0aEkbXfi6T8FM7kJuzGATiQkASe5bMAr76xFTtiQs4hx/s9Vn48bVBFDQlwdSkJrkQzGVzLcx5Ry2pIiUIZv16+Xjsvt+jQUE9bSSKJIN809btuP2BMSguKXP4V9Z0ryYIZLNG+ek/C6JVJ7mARWrShPmMQcAgkAIEhFyu+9bC'@; put '3Ld9KC02WeMpgDh9TZJUDtWsJrnX78b65VF8MsEQzKQvrNbNKVF07y3wMilGqqbosIlw/JLlK3H3w09qMyYd5iWpY2BWeUFDCwMuCaGwmQfhoCGZScXXNGYQqAECQi63r4tg1kRm5e4St7hxjdcARkd/pO/IIDr0Zhc1qUnu8bqwa4tFqSLRwlRnvSphwTy1S2fcd8sNCIepJaHJJgk+02bNxdjn'@; put '/6XJiMwwKkNApIsatrDQ/8IQ8iXpJ2QU2CvDybxmEKgNBLx+D/ZstTDrDS/2bhODRW2c1ZyjthE4ZVAI3QfrI1UkWeTFey28R6miYJk6UkVKEMxhA07DzdddqVcGOWuQ/+vt9/Hqux/V9nfPnK+WEZDqEo1bR9DvggjyCt3GklnL+JvTGQQEgRi5/OwtD3ZvFnKpjiXIzGB8CBzfPYTTz+fdgyZS'@; put 'RS5qtQbKK8TWi/epE9KhBMH8+U9H4IoLf6IVwXTRRT72uVcw/fMv4/vmmKOVRMAuJdkqgr4kmQWNXIgEjSVTyYk0nVYSAdstznJ7c5gxvne7sVwqOYlxdLpZ+zDOvCwCj0cTqSK5F6LqzPvP+LF7i7FgxrEUqj70N6N/jh8P7q8VwQyFwvjT488wDnNV1QCYI7RAQEhmg+Oi6H9RGPWbMDzIkEwt'@; put '5tUMwsEI8MIs5HLjCgvzJnkZc2m0Lh08W0nrWoPGFoaOLkdGFudbkzAIDzVbP37Rg00rDcFM2kKRhu5lichep3bVSgOzqLgEdz40lpnkO5KKlWnM6QjQXU5LZo/hFpq1ZbUficnU5AfQ6cib/tUtBMSt6GHs2spFUSya4kPJAcrWSN09s2mPQBYVPEZcG0BugVsrqaJP/02x9a/UEVt3vIvcQ1fy'@; put 'o/f8Dse3ba2NBqb8yG3dvhO3PfA4DhQVa/9lNwP8IQKs9tMwiu7UyWzfBRDBfVO3/IcYmecGgZojINYeqd+8ZIYb384RBQd14tZqPmrzyRgCumphzpsUxTefqSO27niCmZuTjTHUwGzcsFArDczvVq+jBfPv2owp9sU2++ojIHfZJ54W5p8Fb4bJMK8+cuZIg8DRERDNwOK9UXw13Y3vF3thRYzV'@; put '8uho6fmOzPiQ/wmgWRu6hyr+V36gIrb+9Ywo5n9oCGbSJrNRYX2bYObm5DAhTI/ECJEomjv/Kzw47vmk4WQaSj8CYm1v0awJ2rZqjhlzFlSrQ76MKFqfFEG3MyOsYe6i1cW4zKsFnDnIIPADBFx0h4tLfOv3Liyc5sbOjW56Bqoml16vB5kZfpSUlhtN4h9gqvLTARcH0LaLC9GIpUUUkhDMFV9E'@; put '8dlbhmAmbV22a9UCD//hJv5w6COy7vX58MG0WRg/4fWk4WQaSj8CebS2//LqS9H1xI544PFn8c1331erU5L8U9jcQrfBEbTsJO5yJgxGTGBmtcAzBxkEiICHVstwuYXl8zx0ibtRVlS9RIiC/Dxcf8WFOOH4tviUih6vT5qKsvKAwVQDBHqfG0LnPvw91URs3cc1vvYbC9NfyVRmdhzvIu92Uif8'@; put '8dZf6SWyTg3MV96ajNfem6LMQjEdPTYCcgN0Conlnb++Bn6/D6vXbcBD417A9l17jv3Bw97NzLHQqVfEdpln5Rlr5mHQmIcGgUoRsBN5pMrJJuDrT1l+d5WXxQyqtlpKYxILf93lP8MIKpR4mBAk1dXGv/gapsycg2AwVOn5zIvqIKCb2LrX58bWtRY+eCZDmWQ1xxPMAX164HZetMvLy9VZ2VX0'@; put 'VFzk41jBZyor+ZhNDwTycrN5sboQg/v1sdeqXKwWLlmGR5+eQNdb9WvNu6nb1riVha5nhtGsHbGhIdNYM/VYI2YUyUVArJahsiizxF1Y9pkXxfuEWFaPXEpPenU7GTdeezmyMyvqO2dkZGD5ytWUj3sWe/cfSG5nTWu1jkCnPmGcdq5YMCNauMilXORuVqGaJOUiFSkS4HiCOXLYANxw1aVaaWBK'@; put '1vDDT/4DXyxeWutfOnPC5CMglpDj27TEPZTTys/LtRO35DVxcn8yex6efmkiQnGWOc3IjuL4U5kA1NdCfn0XPy9M07jNkz97pkXVEHDzQis0cttaF5bMcnPvqbbVMjZWuSEUb8MJHXgXd7BepHxng6EQ7vvbU1ixai3VHfSI+Y+Nua7t23Zl9bQLI3BpUs1HykUe2BXFJJaLDCmiiuB4gjnqgnNw'@; put 'Gf/KyqpvBXL6FykQDOLuh5/EyjXrnd5V079qIJDh97MQQD9ce9kFR2i1ygXL4sXrnQ8/wUtvvh93AoHEZtZrZOFkksy23SIUjBbpFZMEVI0pMYdoiIC4w70kl/sZdbJirgurFnkRKK2+xTIGiZcepNGXnIezBp0BNnnE99LP7/LY517GjLkLEDBu8hhkSu5bdIxgwCVheDWp5uPmYi0psjD5yQyU'@; put 'Fashu+V4gvnLqy7GucMGaUUwi0tKcceDjxuRdSV/tv6702K1vImutt6VFAMQkhlmFuMbk6bUOObW66sQZz/xDAvN20fh8Zn4zP+eBfOKtgjwwuojsSwttrBmCTNp57ntijw1cRN6GSt9+QVn85oykHGXzDI/aL2MYZeZmYm3PpjGGPn3UVqmT1hWbHx1ad+oZQRDrwzDx99PHXw/dj3yAOuRj/Mz'@; put 'HMQQzKSs5VtvuAqDTu+tTQymEI7tO3eTYI7Fnn37k4KRaSS9CDRv2hj33fK/aNKoYaXJaBKPKdaQf7/9Ad7+aHqNOyuSRs07RHBCHwtNGKfpYdC3sWjWGE7zQacjQOuij2s8QJ63aQWwfK4HOze7a6xrGSOXI88aRMslQ1h+QC4FDonDXPj1t3j4qRdNEQynr48q+lef5SKHjQ6wXKSYqas4WIG3'@; put 'uWS59hmDSQvmvp3VU0lI97Acb8G8/5Yb0JPB2IGAHtIRQjA3bN6G2x8YY+6Q0736k3B+uWh16dwBd914LV0xR5fSknkPMdj8dVoyJ07+uNKLW3W748uwKGdkoSMzzpu2isJtiGZ1oTPHqYDAQYtlIGhh80oXvvvCg+3r44+zPHyoonV5+fnnYCQtl+JqrIxcyvHiPhcDwL2PPmk8TIcDqODj3PoW'@; put 'hl8TQHZuRcyu8hyTBJMLFx8+68fOTYZgJrwk5aL88P/dhM4d21M2Iphwe05oQKxZK75fa6r4OGEyktAHv89LC3sv/Gb0ZVWuUZl7SfZ5mfGYk6bOSDiJQCyazWjR7HCqhaZto8jIFHc83UFGQzMJM2uaqG0ERCjdy78A9Sw3r3Tju/nuhImljCGLWeJXXTQSwwaeweQgfj8qsVzGxirXnHAkgj+N'@; put 'eQZLl69K+Dsaa9fsax+B7FxaMK8pR34Djzb1yOXm6KMXvHZiW+0jGv8ZHW3B9FOQXMpEtmrRTJs65EIyFi1dbmcqxj9d5hNOQ0AuXucNPxNXXDiyWmEcMv+lFHKe/PEMWjKn0XWe+I2Tx2ehUXOgffewbdnMLmB8DnOBwhQY1sE15LQ5N/1JLgKSFS4ZsqX7o9hIV/iqhR7s3kKLZVhMNolt9evl'@; put '4xfUuuzbsxuJJSu6HINcxs7k43XnEbrIP/9ycdzqD7E2zD79CPgzoxhOF3lBE1owOe/KWzAJqdfrxscT3Nj4nTf9AFejB44mmLE65EeLbavG+Bx3iGhgzp63AA+Pf9FxfTMdih+B7KxMJg2cg/N/PKTaiWhCMoOhMGbOnW8nE+zdXxT/iSv5hJtZ53mFFlqdGEGbkyw0aFbxg2SsmpWAZV5KLwK0'@; put 'xEhGuFSt2rvTwoZvPFi7xI19u6pX3rE6nZfY6F//z6U4sdPxjF2jFmI1yKW0K3GYT00QwfW5DM1K/AawOn01xyQfAY/HwohfhNDguCgJph732r4MDz55xYV1Sw3BTHjFyN3nY/f+Hg3q17O1BRNu0AENCMGc8unneOKfrzqgN6YLiSKQk52F0Zeeb8sUxSOlJSRTJIwWUYz9pTcnY93GLYl25YjP'@; put '+/xRNG1DsnlSGMd1iCJfrJo0CEWMC/0InMyTWkSA68/jcdNaCQTKLGynjuXapR5sWulBeYn0I3GLZWw0XTt3pFfhXHRq36bSxLvYcZXtJZP8H6+9g/emfIpyQzArg0iJ19zuKM66OojGbcguNXHmSD3yT19zYTUlulTYHG3BbNqoEI/ddyvESmRpInorQeQig/GP195VYX2YPlaBQG5OFq4fddGh'@; put 'Cj5VHH7E2xLvJURz3aYteHniZHz51TdHvJ+MJzwFsvMYo9neQuvOEVYJiiKnHpOR+J8hm8lA2LRRFQLi/pYqJKJ4sG8H6N7zYMO3buzZVvOM8KOdUxLthvY/DRecPQSNGzaokWEiKyuLcdKT8eb7/eqQVQAACklJREFUH5u65EcDWoHX5bdvyNUBNBOCqYkF08vqVQunulgW1afADPCWsfvgnxJ6'@; put 'Z24tmzWlBfMWO7Ovuu4NZ47kP73ysA75y29OYjbx1P+8aB4pi4AQTCkROYQXtZqWM5Wbjn0HiuzEn/c/mR1Xacl4gJM7+uwCSh21i6A5s9AbtSTZzHezri3jNY1lMx4ozbHHQoDrSZIRhFTSM40DuyPYtoakcrkbO9Z5bNkhublK9taEBokLzxmK/n16IjPDXyNyKX0SgvnqOx/aig9GCzPZs1S7'@; put '7Q0eFUCLjjwnq6A5lujEAYkQzK8/BUmmP45Ppe9QRxPMDm1b4S93/da28mhDMEkmnv/Xm3h3yoz0zbo5c9IQSAbBlM54aHkRQfZFS5fh37y4rV63MWl9rKwhqRKUW2DZ7qPmrHjRRMhmfTf7IVpr4krXxKdU2eDNa8lHgHzRS/e3i+tHLJVFrLazbb0bm1eIxJCLLnAhlMknlbGB/KjbSbjkJyNw'@; put 'PK8ZDLZMyOMlLvIXX3+Xv9GfGgtmDGBF9wMvDaL1yew8Ex51IJhy07ZmCTDztQwlZsTRBPNkBmf/+fZfJ/Rj4bRZcPMKPu6Ff+HjWfOc1jXTnxogkCyCKacWq44QzW07dtmC7J/M/iIpWeZVDotkMzsnioYUb2/GSkGN20RQ0BDwM6Bc4kSNK71KBOveAeSKHlopXbzgybotL4ngwE4Xtq0jqfze'@; put 'hV3U6Qva1X1TRyoF9IYNCmxtyyH9ToPUFw9TBizRzcRgJoqgcz7f/6IA2nVlMhlvmHUhmGtJMGcYgpn4Iut+8gm4//e/TMqPRuK9SVIL/DF+7JmXMGvewiQ1aJpJJwLJJJixcdjWTIqyL6Q1U0TZv1u9LvZWyvfiKfDz5rheEwvHtWGiEN3pDZqSgNZjcgbzhKK0bobpbhKXk9nqEALkieL2lnhK'@; put 'qYITCkVQvBfYs9Vtk8rt61gjfIe4xLlIamHz0RPUp0dXnD9iMNq1aZmw1fLwLksW+fP/fgvvT5vNJB89CnwcPr669LjfzwJo300fginfvx0bLXzwdJYS0+hoC2afU7vgDzddX6WAtRJIH+xkhBfmR8b/A/MWLVWp26avR0EgFQRTTiVWIYnN3L13H6ZSLmXKjM+xa8++o/QidS+LKz0730LDFrCz'@; put '0huyvm+9hlFk5njZR8Y1GcKZOvDT2TJ5oodrMGahDAdIKA+4sG8bbOukuL33bmcZx1LpZGqtlD+EoWO71rb27I9Y4U10aEOh0A8PSei5EMzxL76GqbOMTFFCQDrgw6f/JIjje3F98oZdh1tiqUe+b3sU747LdAC6VXfB0QSzX+9Tcedvrq1x8kTVw6/9IyS27YG/P2eLrdf+2c0Zk41AqghmrJ9i'@; put 'zSSTw9oNmyjOPhOfz/8qrSVG3R5qbTaIorA566G3tlDYzEJ+IQlnNqtliIWToZtyExUVC6cOv+ixidB5z+tvzN3NKEqGJEVRXkZCua/CKrlroxs7t7hwYAflhMTtHa1dQhmD/rgmDTGc1XjOPP1HqF9Qz/ZspSI23xDMGOLq7/UkmBYJprFgJrw6B/btidt/dU21BawTPmEtNBAMhvDnsc9iCcuQ'@; put 'mU19BEQH80pW8Rl51qCUrlOpLiJlJpetXE2iOctOBgpwLaV7k8x0qfnboFnUzkovpKhxfkOL9X9JWvwkx5JwIUlDQjjlz2zpReAwy6SQSU4Ps7ojKD0AFO12UTqI8ZMkk/tpnSzex9Km1BlPRcZ3PCA0KqxPUtkLQ/r1QdPGDW3B9Iikp6doMwQzRcCmoVkdCeaebRYmPWEIZsLL6dyhA3DDVZdo'@; put 'ZcGUyhD3/m0865GvSxgf00D6ERCCOepn59ouu3iE1mvS85jbXMSfly5fSbf5HCz6ZjlDSNJPNGPjEbd5JhOG6jVm0hDJZgNaOAv4OKcea6XnuCuqt5DViGtdEojEWmYsnTH0krinkdGOmZREHJJKWTuSrBUoJZlk4ajivR6SSdDl7aE2pcu2VgbL5fzpsU5WNnLRsTyjV3ebWIpknWzJSOKp7FyH'@; put 'v2YI5uFoqP1YO4LJ73HRnijeGmNc5AmvzCt44b7kvBEs16VPoLUEjd/76HgmbqxPGB/TQPoRqE2CGRutkAWxaArR/Pa7VbYigdS3Lym103Zjhzlm76FbPTu/wrJZ0ISkk0lD+SxpmZ3PsnzZJJ5ZjOdkb+08T0M8qz9vBE3WAjkk5YEq9hJOYZFIBmmVDLA6TvEBNy2TJJI7hUhWWClLi2iZtH9S'@; put 'BXXnbVLiUbxX/Xv3QDM+lq02iGUMCUMwY0iov9eNYNozwq/thLsNwUx4dV5+/tn4Of90IZhyMSgpLcVdf3mCpQE3J4yPaSD9CKSDYMZGHSOaYQawr1q7HjPmzMcXi5di526m9zp8q7B0WsirD+QyhrOAiUOSPJRNd3tWLvd5kuQkuoq0wNnedYnrFI97RXyn7Wy3/3H4QBPpnhBHfl4C+2WuxRIp'@; put 'Gdzyori2g4EwiSRd3NSYLGECTvFexknSzX1gF5/TvV28HwiVixtcWnH25vV60LFtawxifGUvJu80LGxgy9PVJrGMIWQIZgwJ9fdaEkxOy4R7DMFMeHVeP+pCnDtsoDZZ5IZgJrwkHNdAOgnm4WCIRVPI19YdO/ElFQpmfbEQq9dvpls0dbFqh58/WY/dZJMZWYzrbGAhpwB2QlEuqw/JX1ZexXte'@; put '/rb6M4SAMsbTdv/y7CSf4nIXd7vtdudLkmh0iIMeepCsntawnQp+KIZGEsWKJzZpFPIozJH/S1ejtEJGKA4dDFh2HKSQyDJaHktJJEuYfFMkfxQzL9vvRlkp3d+2/KM0qtZWkJ+HHl07YwCr73Tu0A45Odl2Vng6SwMbgqnWGjpWb3UkmPLdePm+7GMN2zHvOTqL/LZfXo1+dJMkW4YiXegbgpku'@; put '5FN3XqcQzNgIRdpI6puXlJRiBfUzP/tyERZ/s0IJq2ZsDEfbe9wWvJkuZqxbdpxnZh5Y6lIsnizvl2sxxlNc7i5kZFjw8zi3Nwo3S/b6xBIqBE6EPIWQygliXIxsTnhpbLMpaex5bB978/B97PPc07Z46B2bOMozeUnalsdCfvmogjQKcZQ/un2ZQBMKuEgiKVROklhezOxtksgyurbLikgoiyus'@; put 'k4EyN49hW9Z/ziPNqrpl+P2suNMSfXt2Q8+uJ+I4usE9nBv5nU9FVni8OBmCGS9izj1eN4JpyxTtoEzR340FM+FVd9sNJJh9DMFMGEjTQMoQcBrBjA005j6XC/b2nbuxdMUqzF3wFZYzuexAEZmLphsdwjap9Aqx9FnwMdnSz8fezCh8/E32ZXDPMr4iJu/xR1k5ifGs3FeQUVZSYla820twyAxt'@; put 'PkqSam+yO8jvLBI9SyyGfC4Z8lZIpH1IGENCHGlN5D4UdiMc4D7oIpEkiWR4bDggRNFCJFiRnS1xkHK8fPZQ4/JQw02sza2aH4ceXTrbLvC2rVsgmzW/xcKeDjf4sSA2BPNY6Kj1npYEc7s6MkX/DwAA///r8VITAABAAElEQVTsXQd8FNX2/rZl0xMSSkLovXcBBUSKgNg7dkXF8tRn74o+n/7V'@; put 'J4oFsIMdO4KCFEFA6b33HkpIAklI22z5nzNhNcQkpGyZuXvmR5jd2Zk7937nzsw3p5q6DrrUA50uj919C/r17o6ioiKd9rBq3TKZTMjNy8NTr4zDnv2pVTtY9tYlAlGREbjhigtxybCByM/P12UfLRYLbDYbHHQdHTpyFBu2bMfS1euxbdc+ZGXn6LLPeuqUx/P3LZKvYVkqh4DNakXD+kno2rEN'@; put 'undqh6YNUxAXGwO32w2n04mSuFauxcDsZbfbMX7SZMxeuASFhY7AnFTO4hcEzrrUgVY9TPA4Xfj7KvbLqQLSqMlswvEjbvz0TkRAzlfTk5iEYNYUwsofLwSz8lgZZU8jEMySWFrpoc9/TDaPpKVj07adWLl+M7Zs3430Y8d1+9AvOQb5rF8EIiPC0aRhfXTt0Aad27VGo5QkxMbEaPOKSSWTS70v'@; put 'YWFheOvDz/H74hUodKih3NA75v7q39lXFaJZJyKYLrc6BPMwEcxxQjBrPGdEg1ljCKUBPyNgNIJZEg6vZtPlciE94xh2k1Z93aZt2Eikc//Bw8gvKCy5u3wWBP6BgNlsRp3EWmjVtDE6t2+NNi2aoH69OoiIiADPK/4zAqksOTDW9o/94DMsWLJKexEr+Zt8NhYCqhFMs8WEQzs9mDkx3BCCEA1m'@; put 'AMUkGswAgh2gUxmZYJaEiIkCP1h5yc8vQOrhNGzfvZfM6TvIlL4XR9IzyKzpKnmIfA5RBGKjozTTd8e2LdG2RVM0bZSChFrx4BcWJpRGd2kqJpifE8FcKQTT4HN84PWFaNiaBuH2KKHBtFhN2L0O+P1ruyEko2uC+fg9I9G3ZzfD37C8M0EIphcJddaqEMzSEuGHLBMG1j5l5+QQ4TyKrTt3Y8uO'@; put 'Pdi5dz+Oph9DEZk8ZVEfAZ7jKUl10apZY7Rv3QLNGqeQ1jIBEeHhf/lTGk1LWZHUhGBWhI5xfmMf33NvdCClFfVZIYK5YzWw8DshmDWeiQ/dcQMG9OmlHMF8+tVx2L1PgnxqPEF00ICqBLMktKzdZLLp1VDlnMjFwSNp2LF7P5FOIpx79iMtI1NM6iVBM/Bn1lAmk5mbCWXblqyhbKCZwSPJ7M0v'@; put 'yayhZE2lqosQTDUkazYRwbzFgaSmFN5Drr8qBPlYw8xYPRdYPTvMEELStQbzRorOHXHJeRTJp44vWKHDgefGTNA0QYaYIdLJChEIBYJZGoCShJO1BCeIcGZQgNCeAweJbB7Ajj37cODgERyjCHWViUhpXIz4nSO9E2vFUTBOMmkmG6Bl00ZaYE5iQi1NQ8lj4uAc/guVRQimGpI2W9wYdqsTtRu4'@; put 'QVxTCYJps1uwdAawYX6xO5PeJaVrgnndZcNx3WUXqEUwKe3Fc68LwdT7hVHZ/oUiwSyNDWu1WLvJ0em8sIaL0x8dPpqB/amHsWvfAeyjNWs9s7JPiGm9NIAB+m61WlArNlbTTnKkd/MmDdGI0ghxkA6nD2L58QsDk8lQfjEQghmgCenn01htHgy/vRDxSSYimGr4YIaFWzB3sgm7Vhffa/0MYY2b'@; put '1zXBHHHxMNx45UVKEUwOlPjvm+9jLUXrymJ8BIRgli3DklpO3oOtEGxaT888rkWoc5T6vtRDREIzadsx5FFgkV7zIpY9Qv1uZRyjoyJRKy4WKcl10TC5Hho1SKZ1EmonxFPaoGhwKh5emEjyn0o+lDWVjBDMmiKoj+PDI9wYQgSzVh2zMj6YNjKRz/nCjL0bhGDWeJYN6tsTj9w9UrcJrKszQCfl'@; put '43pl3EdYsXZTdQ6XY3SGgBDMyguEtZys7WRNGa9ZU8YR68ezs8nEnqVFrh+k6PVDaRk4cOgwjmXlaMQzlLVpFaHLGsmoyEjEk/axXp0ELT0Qpwhi/8m6tRO07fw7486LkMmK0Pz7N56f/5swCYtXrBVt+9+wGO5TZCyZyG8rRHS8WRkNJkeRz/7EigPbiq9pvQtF1xrMc87qgcfvuU0pgumBCWPe'@; put 'nYQ/l6/R+9yQ/lUCASGYlQCpgl2YaHq1nbzmPyaeeVTxKic3D8eJZLJ/J6dJOkLazqOUrzPzeJZmgj+Rl48CcjlRlYCaCRu7PQycvDyOkpXXio9BnYQEjUzWq5NI60QkkJYymoJyOKLba+JmDaaXTIpWuILJV85PrMEc894n+HPZGklTVA5GRtgcm1hMMMMjyUROHVYhyMdMlXx+/ciKw3uEYNZ4'@; put 'Dp7ZvTOevn8UHBQYo8piogfo2A+oSsSi5aoMKaTHIQTTP+Jnoukln17iyWdi4sTm9gJKAp9P66ycE5pfJ6+PZ2VrWk/2/8wmczyb5HM1Ekr7ExFl4soWhGCag1mbGGazajlHw4k88vyJJi0jm7TjYqKIRMaRaTuGtI+x2nf2jeR9IohkhlMJQ68WmIkjj4fXPB4hkr6bh2Ii9x2WwWwpIcmNoSML'@; put 'YQsneqkCu2SWTOmWfnk/DBkHhWDWeG717NIBzz54pzJpihgQC5lf3vn4S8yav7jG+EgDwUdACGZwZFCagHrJqJdwMeniYCPO2lBU5NQIJn9mX08Hlf/LLyjQCCoTVS4HWEBklbfzvk4isbzmsAD2mebPbs8/SxxyBLaNyKJ2bpOZ/Bpt8G5j8sg1re20LSLcjgj+TNtY08i/8TZtX/rdTv6QrH3k'@; put 'MXmXkuPwEkghkV50/LsWgulffAPVer0mLgy+wUnXlhoBPmTQoPuRBz+PD0NWuhDMGs+jTu1a4b+P3qOUCYwJ5qTJU/DDjN9qjI80EHwEhGAGXwYV9cBL2pgEekko7+/dXvJzSQLn/exdl3cObpMX77rkZz7We7xXa1p6XXIfrSH5L+gICMEMugh80oGGrV045xonOB+mEgpMMo8X5rkwbUI4co//'@; put '/TLqE7D81IiufTA50e8rT92v3by9N2o/4RCwZi0WKyb/NB1f/kjJrGQxPAJMMDlf68XDBirlK2x4wcgABIFqIlBMMKUWeTXh081hLbq60OcyKgjALiS66VX1O8L+l7nZRDDHhaMgTwhm9ZE8eWRjSq3x+uiHNb8jVQgmm8J+mjkPH375Q43xkQaCjwD7zo0ccQnOG9iP/AILgt8h6YEgIAjUCAFO'@; put '4fQ2uTHN+3OZ5j5Ro8bk4KAh0LZPEXqdR+6X5PKiBMG0mJCV4cbP4+wocgjBrPHESq5XG2Ofe0TzZVKFYLKJfM6CxXjroy9rjI80EHwEoqMicOcNV2FQv95CMIMvDumBIFBjBNh3dsInX2MW3acLKThMFmMi0PXcInTpT0FwFNinAsHkFEUZB4Fp5IPp8RS75uhdMro2kXNSYNZgciSl13dJ74Ce'@; put 'rn9MMBctW42Xx318ul3ldwMgwATzjuuvxOCzzxSCaQB5SRcFgdMhwATzwy++xy+/LdSCxE63v/yuTwTOutiBlj05MkYNDabVZkbqTjd+/dB+is+3PtEv7pWuCSZXnHjjuYeplFmCMoE+HFywZsMWKhf57l8BAHqeINK3ihEQglkxPvKrIGA0BMIp0n/S11M0VyZObyWLMRE4Z0QhGndkgqmGBpPr'@; put 'kO9a78K8L8INIxBdE0zO+zb2+Ueo3Fk9LeebYVCtoKNMMLfv2ovHX3pTS4dSwa7ykwEQEBO5AYQkXRQEqoBAREQEvvjhZ3z/yxwtrVUVDpVddYKAiYziw251oG4TMo5ThjEVTORch3zTYg8WTSku86oTqCvshq4JJnsZjP3Po2jepBHloiuqcCBG+ZHTmaRSObzHXxpLiaDzjNJt6Wc5CMRSFZV7'@; put 'Rl6Dvj27aQnAy9lNNgsCgoBBEGCCOXnKdHwzbZYQTIPIrHQ3w+xEMG8vQHxddcpEMsFcTdkNV86ylR6ubr/rmmAyai89fi86t2+jTDUfJphHMzLx1CvvIC09U7cTQzpWOQRioiM1H0wJ8qkcXrKXIKB3BESDqXcJnb5/UXFEMKkOeVQc5b/lfLSnP0T3ezDBXDwV2PinEEyfCeup+25D317dlQqg'@; put '4GoiTDD37E/1GU7SUHAQ4DRFt15zKYYN6KvUHA0OmnJWQSD4CLAP5kTywZxK6eTEBzP48qhOD5QrE0kgMMGc+6UJu9ZaqwNJUI7RvQbz37ddp+UYzM/PDwpA/jgpl5574c33sX7zdn80L20GEIFIqhF93aXDcfkFQyTRegBxl1MJAv5CwJumaOb8RVr5UH+dR9r1HwIprVwYQFV8LGY1tJeMFKcp'@; put 'mjXJgtTtQjB9NnNuufpiXH3xeWo9vKlu8evvfYKFS1f5DCdpKDgIcF3pi4acg1tGXCoazOCIQM4qCPgUAYvFglfHT8SSleskENOnyAausZbdXDiLq/gokgMTHJDipjrk74ch86Ax6pCztHWvwbxs+CCMojyDKmkwORcm51mbOut3loEsBkbARrLs07MrHr7zJmUC0QwsDum6IFAjBDjLR0FhIZ4f'@; put '8y627txD/IRCkGUxHAJdBjjQZRDFkitSxcdEZSId+S5MHW+cOuQ8aXRPMAf26YlH/zVSKYLJ5SK/+3k2PvmWPHZlMTQCFnogtWnZFM8+cAfsVGJOlYpThhaKdF4QqCYCfG9OPXxEI5iH0tKr2YocFmwE+lxciBY9qZyiIknWzVQmMueYm+qQ2+EoMEaZSJ4DuieYZ3Ruj9EP3aWUdog1mPMXLceY'@; put '9z4N9nUo568hAkwo69VJxHM0RxulJCs1T2sIjRwuCBgOAfa/XLpqHd744HNk55wwXP+lw4QA3ZMH3+hASiv6TGZlFSLI2f/yaKobv5AG06PZy40had0TzJZNG+HVpx/QSiOpoh2Saj7GuDgq28sYiiT/1y3XoP+ZPcQPs7KgyX6CgA4R4Ajyz7//GT9Mn4P8gkId9lC6dDoEbGFunHebA/FJ6qQo'@; put 'soaZsW+TG3M+M04VH5aT7glmct3aeIOq+UTQha9KPXLOhbn3wEGtmo/cxE53u9D/72FhNgzpfxbuvulqSbauf3FJDwWBMhHg+zL7XL7wxntYv2WHMuWJyxyswhuj492UZL0QkdFEMGmcKmgwi6v4uKmKj91QktM9wVSxHrkkWzfUNXLazrI8mzSoj/88cjfiYmPkwXRaxGQHQUB/CISRD/XWnbvx'@; put '0lsfIj3zuP46KD2qFAJ1G7lw7o1OWG1qmMd50Ewwl88A1v5unCTr3G/dE0x2un599ENo1rihUv5tHKk4+rUJ2EZ1yWUxPgJsJueSkWf3FjO58aUpIwhFBMQ8robUm3Z2ot/lbqrg41ZCe8lSYYI5bzKwc7UQTJ/PUtYM9ejcQSnzI/keY8y7n2DRijU+x0saDDwCVsqd17t7Jzxy181aJLkq/sKB'@; put 'R1LOKAgEHgHOfclBPc+9/i527tkv2SACLwKfnVG1FEUMDEeRz/zYgkO7jJNknfutew0md/KBUddj6Dl9lUpVxJHkH335PX6a+TsPURYFEIgn8/hjlFKrc/vWSr0MKSAaGYIgUCECXH/859nztRKRuXnqVI2rcNCK/tj3CkpR1NUMjyIpisgDC04nJVkfH4asdOMkWefpZQiCeeMVF+Lay85XjmBO'@; put '/20B3v30W0Uv89AbFidd70tJ1x8YdYMWkCZazNCbAzJi4yHAWT2YVD5P2svt5LLkpjQ3shgTAbPJg3NHOpDUhGRIOfJVkKSZkqznZrsx9R07CvONkwOTZ5AhCOawAX1w/+03KEUw+aa2ct0m/IciFmVRBwEO8vn3rdfizB5dJGWROmKVkSiMAGsvv5n6Kyb/9Cvy8gsUHqn6Q4uMdmMopSiKSVAn'@; put 'RRHnwEw74MH0CXYizBwXb5zFEARTxWTrTDD37E+VVEXGuVYq1VNvZZ8n770NMdFRElFeKdRkJ0EgOAhw5Piefal46e0PqYJPWnA6IWf1GQKJ9V0YeksRrGE+azLoDdnsFuxc68bvXxkrRREDZwiC2bRRCl575kGwI7ZKZses7Bw88fLbOHTkaNAnsXTAdwiE28Nw0ZBzcPPVl4gvpu9glZYEAZ8i'@; put 'wC/5bA7nYMulq9ajyOn0afvSWOARaNqJIsivUC+CfM1cN1bMFILplxmVEB+Lsc8/ivi4WKU0Qi6XWzORr9u8zS+4SaPBQyAuJhr3UHWffr27K+XaETxE5cyCgG8R4LREP/wyG1/8OF1M476FNmitdR1UhM4DyPfS5VLC/5KB5BRFC74zYdtyY0WQc98NocG0Wi2UC/Nh5XJhmkkj++6n32DG3D9Y'@; put 'FrIohAAnX29Yvx4evfsWbd4WUt5TWQQBQUAfCLDf5bLV6zGWao5nHs/SR6ekFzVGoP8IB5p0oGZIeaNCgA8DYuEURZOsOLjDWBHk3HdDEEzu6OgH70Cvbp2VMjlyEvmfZs7Fh1/+yEOURTEE2B+zXavmeOjOG1EnMQEOh0OxEcpwBAHjIWC327F73wG8Om4i9h08rJTblfGk4bseW60erURkQjIR'@; put 'G2KXKhBMTlFU5OAURXZkZxorgpwlaxiCeecNV+KS8wYpZW5kH6BV6zdr6TF8d5lJS3pCgLXv3Tq0xX0UWc4uHkVFRXrqnvRFEAgpBJhcss/7axMmaVXUuPa4LGogEJdIAT63FSE8kogNDUkFgskJ1rPTPZhGBLPIYawIcp5VhiGYHDRx980jlCKYbEZNPXQEj744VsvDpsZlLqMojQDnx+zZtYPm'@; put 'k8mR5UIySyMk3wUB/yPA5DItPUMzi6/fskMpf37/o6f/MzRs7UL/a12wUAJMFcglI24NMyN1u5uq+ITrXwBl9NAwBJMf0KMfvEs5MyMn+H361XcoZdHBMsQjm1RBgEkml5K8+6arEU11y50SsaqKaGUcBkCAyeVBSkP01kdfYuO2nUIuDSCzqnax09lF6DZEvQCfjYs8WPyTMfMuGYZgNk5Jxmuj'@; put 'HwI/qFVKVQSTmdJkTMIfy1ZX9XqS/Q2GAJvLu3dsh/tuuw5cVlJ8Mg0mQOmuIRHgaPFde/fjzQ+/0OqMi1nckGI8bafPvqoQzTqZKIJcHQ0mR5D/SSEam5fYTjt+Pe5gGIIZEx2ppSriYAkXpSBQZeHcnt9Mm4nPv/9FlSHJOCpAgOV9Vo/OuIVyZNarkygkswKs5CdBoCYIsAsSay5Xk5/7BMrW'@; put 'cYDckZRSTtQEHMWOtdrcOI8q+NRSKMCHRcRVfGZOtFAEufFSFHH/DUMw+Wbx8pP/Roc2LZV6KHOqomWr1uHFtz5kecgSAgiwJrND6xa49ZpL0bxJI20+y4MvBAQvQwwYAvwix0GUs+Yvwmff/aylIuJniCxqIlCrrhtDbimEPYpkrIgDJk9Xx8kI8hwDRpDzTDMMweTO3k+mxaED+ipV45lvevxm'@; put '/ZgE+rCIQ2bhh1+TBvVx/eXnU/qtTppPplsiWkNG/jJQ/yFgs9lQSCnBfp49H19NmYGCQkkP5j+09dFyk44unH2li9ITqWMe5/yXmUc9+GWcnZ4Pxnw5MhTBvHz4YNx+/RVKRZLz5ZlfUIhnKNBn594D+rhapRcBQyAhPg6XDhuA88/tjzB6MEqEecCglxMpiAD7W3Iwz+SfZuDP5WukQo+CMi5r'@; put 'SN2HOdCpH+B2qkMwuQb57vUuzP3CmBHkLCdDEcwzOrfHcw/frZSJXBMCabPe+fhLzFm4tKxrR7YpjkBkRDj5ZXbBiIuHoX5SXTGZKy5vGZ7vEfCaxNnf8vMffsGOPfuV8tX3PWLqtMi6vcE3FyKlOVnH3R5VLORaichVczxYNduYEeQ8wwxFMBsk18WYZx/SHLdV8lnjij5sznnv8+/UuepDcSRU'@; put 'PiIyGrBHeHAsrWpVF7jqT7MmDXHVhUPQm0zmvEgqo1CcRDLmqiLAgTw5J3K1e+jPcxbgWFZ2VZtATIIbucdNcLuNaYqs8oAVOiAixo3htxciKt5MJnJ1CCZrMOd+YSItpjEDfHiKGYpghtvDMPY/jyIlqZ5SD1/2x9uwZTue/d94KqEqlSWMeu8LI2LZY0gREhsAcz+zIje7aiSTx82J2Af17YlL'@; put 'hg2kKPPaWmlUlV6mjCpb6bf+EGCtJf9t3LpTM4nzPdRR5KxyR9v3caLbQDc2Lzdh7TwrigqFZFYZxCAeUL+FCwOvddJcUIdccoCP00n+l+/acbyKyoogiuIfpzYUweTeP/fQXVQVpaNSNck50CfzeBae+L+3cORoxj+EJBv0j4DZ7EG9JnSju8EJm82CPRtclL+MyntV42FlpYdmk4b1cRn5HPfu'@; put '1lHT2EvOTP3PAelhYBDg+yVrLdMzMjF97h+YMXchjmefqNbJG7Zxos9lbkREe5B/woM5E8OQfpie7h4hmdUCNAgHdepPCdbPVSvB+t8lIsOoRGTVFRVBEEOZpzQcwbzl6otx9cXnKRfo4yLfkVfHf4xlqzeUKSjZqG8EwiLc6HVBEVp1N8Pp4DytFmxe5sGK6bZqm93YN5P9ji85byBaNWtC7biV'@; put '0tzrW6LSOz0iEBZGD1yqgrVk5VpM+XUe+Vruo2uienmR4+q4cc7VDsTVI1MeGY6sZJJcORvY8IcVzmq8GOoRL9X7xNadQdc50LAdjdSljgaTS0Tu2+TGnM+MG+DDc89wBLP/mT3w+D23KpWqiAXBpp5vplLCdXJQl8VgCJDvZWKyB+fe5IA9kipJ0MsCmzjcHnJ9WACsmmOj79XTiPANNCE+FoP7'@; put '9cYwStHFQUAcaa5SsQGDSVu6GwQEOPUQL9t27sGUmfOwYu3GGkWIs580V35JbmEq9tuj3IlmqxkZB9zk9xZWLfeWIMAS8qeMiPJg6KgCxNZSy/+SK/gYPcCHJ6fhCGbTRil47ZkHNUKmkm8a+2FyBOTzb7wn1SYMdtu02jxo09uFnsM9J7WXxQNgTulykVznmLDxz5qV+mKCmlS3Ns4lojmQfDTZ'@; put 'P1OIpsEminS3yghwACS/fO/Zn4qZvy/C74uWIyuneuZw78nZV6/XRQ607EYXKOdN9Cbm1r56MO/LMKTuNFPJweq9FHrPI2v/I5DczIVB16vlf8mo2UiDOecLM/ZuMG6AD4/DcAQzItyOt//7OOrWTlRKi8MEIi09A0++/DbSM4+zbGQxCAL2SA/6XlGExm1NpxJM7j+5z7C5bdVvZDJfXPObhZnm'@; put 'SXK9OhQI1EsjmnwdsOlc8mcaZLJINyuFAGss+aV7/8HD+G3hEsz7cznSjx2v8cs32RfQdYgLHfuQTZzs4n+Ry5O94sjdNfM8WPc75aQVM3mlZBXMnTqdTf6XQ9Tyv2TFRFGRGz9PsCM73RJMeGt8bsMRTB7x8w/fhTO6qBXow+MSP0xGwWiLh1KckJnmZgeiEujxRX5AJRdNB8Ik00Ekc45vSCa3'@; put 'z0SzLtUyH3DWGejfuzsaplARXlqYaKqk2dcGJf+FBAL8ks3EkufvvtRDRCqX4ffFK7QXbp/MaWq30wAnugwgbmly/YNcMsgWmxkHd3ow/ysbCvKMG1wRChOG58TgG4rQoDXdcxXKf8n1xzMPE8EcH05KNGNr0Q1JMG+68kJcc+n5ygX6sDno22mz8Ol300Lh/qDEGE0UPZ7cnMw0lCbDxC+bp/JL'@; put 'bYx/k0yQZsSKdQss1fbJLAu0WnGx6EWZFdg/uVWzRoiKitKStYufZlloyTa9IcCaSiaW/HK0ffc+zP1jKRZTEM+xrBzfdZXISEfSdnUeaILFSuSynGxwJirPl5flxsyJrD3iK9fYD3jfAai/liJjPTjvtgIl819uX+XBgm+Mm2DdO1sMSTDP6tEZT99/h1KpilggfKNdv3k7Rr8m+TC9E1Tva4vV'@; put 'jRZdPTjrUhdcZNYob/GSTDf7ZM4in8wlpKkpf/fymqlwu53yxLZp3gRnk0azW8e2mp8mv+Vzwnapc14hdPJjgBFgbaXXvzIrOwfrNm/TzOBrN22tUfBOWcMwUxBex/5OdDqH7rEWijin666M98DiQ+lCdVMqzTmfW5G2x1LtDBBl9UO2+RaBhq1d6H+ti/J1qFMekhHiAJ9FP5mwaVHNXap8i3jV'@; put 'WzMkwUyhSNoxox9COOVC84nppOq4+e2IbHJgf+Llt6ie7lG/nUMa9h0C1jA3OvR1o/sQD/lsnT5diuZfU2imFEaUDmU+JXX2Q44zflFJIK1m907t0Lt7J7Rp0RRxsTHatSJk03eyl5aqjgAH7Hi1lexfuWTlOixasQZ7ySRe3XRDFfXCaiWfy3OL0LY36SLNREQq8VLHOQgXfGulXLZmuA1uoqwI'@; put 'G6P/1p2KWnTq71Gq/jgrzPkZMeNDG9L2Gtv/kueXIQmm1WrB66MfRrPGDdULbqDZNfaDzzB/8UqjX/8h0X+b3Y0ug1zodDb5P1aCYDIoZrNJ863ZtdaDNXMpJUqWpt/0C16sJapfrzbl0+ygEc4WTRsimkzootn0C9zSaBkIMKnkechz7iglR2dt5eIVa7GeKu+cyM0v4wjfbLJTbtqe5zvRvAsH'@; put 'i/8zoKe8s7Af5uKpZmxfaSGrhP+uzfLOL9tPjwAXthhyi4OKW7D/ZQUa6dM3pas9+NnALho/jbejUAEfYEMSTJ4RD4y6HkP691EvHybdiGfO+wPjJn2tq4kvnSkbAVs4lYccWoR2Z5oqTTC5JQ7S8dDfIQooWDXbivRU/7+t2mxWNEiuh64d2qAHJXBv3rgBYmNiNPM5+2uKz2bZMpatVUOAzd9e'@; put 'v0p2zcik6O+tO/dqfpVMKtMzjlFMRrlG6qqdrJy942q7Nc1lk/acl7by5JKbY4K55Gczti0XglkOvEHfXKuuG0NHFiKM8g6TB0T5Lg9B72nVOqAlWN9CFaU+sVftQJ3ubViCef7gs3HvyGuVC/ThmzPnfHvqlXeQm+e/t3udzkfDdUur4HO+C616VF6D6R0kiVozhxyn6qBrfrNhz3qOWg2MxoSt'@; put 'AClJ9dClfSt069AWzZs0REKteC34iIMtmBio5n7ixV3WvkeACaVXU8llTdMzj2Hz9t1YRbl9N2zdoZFKF82pQCz1W7rQdZATtVPoWiqZ57KSJxeCWUmggrhb6zOc6H0xMUt6Mfbvq0pgB8n+lytm0vNgbs3yJge21+WfzbAEs2XTRnj16Qe0B6JqD0IHPeD/QwnXN27dWb7k5BddIFBMMJ1EMKum'@; put 'wfR2numkyWJGYQGwdRkF//xhJdNIYEimtw9c+7x2YjzatWxGwUHtNJ/NOom1wGX5mGiK36YXKVl7EeAXYS+h5G3ZFKiTejgNm7bv0kzg23fto/rgOQF9SbGRP3TrXi6yJrgRGUfc0lm90oFCML1S1u/6bCrx2awjydhFL8L67WaVe8YpimZNsiJ1u/8tWlXuXDUOMCzB5DrNY59/hKqb1FHOtGe1'@; put '2vDlDz/jq59+rYZI5ZBAIlBTguntK/vesH7n8A56e51HEaz7gnODYeIQExWJFvQC16ltK7Rv3RwN69fTTOn8G5NNNqWr9lLnlYOsy0agNKHMy8ujwhCZVAt8PzZs2YEtO3cj9VAanDQ3grEkJLvQ+RwXGrbhSHEK/CiVj7YqfRKCWRW0Ar+vVh7y9kLEUt5hE7laqEIwNf/LEx5MfYdysOYG5/7v'@; put 'a2kalmAyEE/eexv6UUqWggJS/yi0sGZg3aZtkq7IADL1FcHkoWomcyKaudkeqvpjIR8wKxwFgdVmloacTenJ9BLHkegdiGy2ataYqmglIDIyUttVzOmlEVPju9fkzfciXphQHqUKYzuJUG7ZsZt8KvfgwKEjPk8pVFX0wuweNOvGWksX4hIo3oMTbteQcQjBrKoUArt/wzYunHONi4qkqaW9ZP/L'@; put 'A9s9mPUR5b/kh4ECi6EJ5mXDB2HU9Vcq54fJ84r9L5+kdEX7Ug8rMM3UHYIvCSajVGwyJ20mqTMP7TRpSdmP7NbP2yxbDlij2apZE3Ro0wKNqYIQm9O9hNNrTpe8m8aZ86ydZELJkd78mWV3Ijf3Lw0lm7u37dqDg0eOBp1QlkQ1qYkL7fu6kNKyWGvJVbRqyC215oVglkRZf597nU9pp84iWTvV'@; put 'Ipia/+Vsyiwyx/gJ1r2zxtAEsy1pVV5+6n7NXKeayc5MmoP3P/8Ov8xZ4JWVrHWIgK8JpneI/AKrmUxygZ2rKG/mUgtyj+uvdF0x4UzSgoT4emzSsD7qJiYgOjpKIy18XXpJp2rXqFdWRlp7yaRXQ8l9ZwtQ5vEsHEpLx+59qUQm92prNoGzP7jelthE8rXs7USLTh6Ex3Bi9JprLUuOUQhmSTT0'@; put '9Zn9bIfdVoRaSR6loscZZfa//HWiBYd2GD/BunfWGJpgRoTb8eZ/HlXSD5NNU0tXrcOLb33olZWsdYiARjAvoCjy7lWPIq/McLR0RsQrjx/xYAuZzXett1A6JP0RTe9YwsJsqFc7USOazRo1IOLZgPJw1kV8XAyiTprVhXR60fLvmkkkE0rWTPJnxj0/Px9czCGNUgVxvW/2odx74KBW2CEnN0/T'@; put 'Xvq3V9VvPTLGg+bdnGjZ3YXYRHoD46I8NbWHl9EdIZhlgKKTTay1HnorJ74k4ZO62hcaaz0MjZUJuTluTHvHjgIF8l96MTU0weRBPH7PSKrBfIZyfpg8No7CfOKlN3H4KOWxkUWXCIRFUB7MYWSy6VW9KPLKDIrN5mYreRyRf9nh3cCmJfSWu81KmsHKHB3cfZjgcNBQvTqJaNygvkY8G6UkIalO'@; put 'bdSKj0VEePhfSbg5eIjNs/wn2s7KyY3x9f55Tdz8nbXGOSdywWUYj6RnYP/BIxqh5PVh0lTydn+Qs8r1ump7Rca40aQjlWQlX8uEJL4aSGPpI3N4WT0RglkWKvrYxgE+nSkFVQt6ybCRxk/TXuujazXqBftf7t/swexP1ch/6QXD8ATz/EH9cO+t1ynph2kircP4iZMxa8Fir7xkrTMEbOFUJnIw'@; put '+4L5R4NZcrjEGyg1jJmqVwEHd5JGc4mV/DSZePJD1zgLEyA2rdemvJv1k+qgQf0kNKDyr/Xr1aFcnHGIJfM6+3R6A0zKIp6hREC9BJLXjIlXM8kYFBYWIr+gEMezsin35HHNzM3BN4fSjpJWMo1M39na78aZHX/3NCrOgyYdqBJPNzcS6nHcAxMK//vdCcH8WwZ6/dSwjZPK8zqRkMzJ8DmrhV57'@; put 'Wrl+sf/lkp+pfPBCNfJfekdteILJ1Ug4HybfeFV76FjItPXnslV4ZdxEr7xkrTMEmGB2G8z1yCtXi9wX3WeiyfWSnQ4mmiZsW2GmtfGrjjBxioqMQEJ8HFUcqktazkQkE+nkqHXeVkw8I2Cn/Jxcz9q7lNR68j2Av3sXvd4TmCx5Fx43L7z2/nl/Y3LtJZEnKJL7GBHGjGNZWgAOm7bTqPRiJn1n'@; put 'a0dBIU0IBRau0tK0swuNO7gQz6bwABFLL3RCML1I6HsdGU3azMFFaNHVQ1aQk764+u5y2b3jKU5a+V8+CEP6fv0EdJbd2aptNTzBDKPyd2889ygaNUjWzEJVG76+9+aH0DHSTIiZXL9yCgbB9KLBHMVCpvMiCnJI28vBQFbs32pSooatd4zetY3SJcWQZjMuNgbx9JdIms7aCbU04plApva4mGiq'@; put 'sR6paUbt9jCNhPJLJ5uNy3r59JJQ75rPw2S0NCEt/d3bn5IEkbfxd++2kp+95LHkcUwavflEC6nqDRPD/PwCMIHMzsklbWSOdt0zkeTgG/7LIr/JE+QjydrK8vrkPYcR11abB3WbuNG8E0eFU6L0WNLMk1YqGJHCQjCNNYMatXORNpMCf+oZU5vJyoKsdPK/HGeHs0i//vXVmRWGJ5g86H/dfDUu'@; put 'HDJASTM5R5OPm/gVZs0XM3l1Jri/jwkmwfSOzUs02Ucz85AHezZasWeDGdnpat2svOMta82kjgOMIux2RETYERURoRFSJp2sFY0mk3tUZLj2OZyCA8PD7LDbbRoRDSNtKNdp54pGxSZoYu6kU7CSO4LJVBwcU/qcHipB6C196KJqIpxgnMkqE8aiIqdGGjkC2+Eo0ohhHkVq5xGJ5PRjubn5Gplk'@; put 'H8lcCrrJzy/U9udjVSSPpbHzfuexxtYGGrV2olEHN+o0AKw2E1xkBueqA8GyegrB9ErIOOsICgDrOqgIzbu66aXSWL6ZbB7fstSDP35QJz2Rd+YoQTD79eqGJyjpOpuSVFtYA7J8zQYtmjyUHj5GkaMeCKYXK6ZFHAxkMnm0ZO0HdwB7N9hweI856AnbvX3U41ozS5/UQHJiea8Gkgkn/8YE3ruw'@; put 'rxd/dxKpZELJf05nMbnk65MDZ+Q69aJV9poDNeo2pcCd9i4kkdYyKo4NhEQKivzvX1l2j07dKgTzVDyM9I3dKrqR2TwhyQJnoTHqlNvsFvw+2YSda9RJT+SdM0oQTA4WGEvpitiEVtLk5R2k0des6eCk6weoFJss+kJATwTTi4zGh0h5yWTJSdqgY4c9ZDrnKEULfSYzUnCq+Xm7J+sQRMBO2RZq'@; put 'N3ShUVsXkpt6EFObEruzHzGR82BqK8sShRDMslAxzrbIWNJmDihCs+7km0kujXqONOeXVUcBmcfH23HiuFr+lzxjlCCYPJD/PnoPunZsSyYpNRzdeUzehYN9Pv7yB0yZOc+7SdY6QUCPBLMkNEw2zTYKHqEPBfkeZBwksrnFgoM7zMhKM14EesmxyWd9I2CPcCMxxU31wd1IIlIZVxfkisAmcDJ/'@; put 'kwY4WCbw06EmBPN0CBnjd9aQdzuXk7LrV5tppXtz6g43Zn4cbgxQq9hLZQjm5cMH4XZFy0aymW795u0YPWYCaZ9E/VTFOe7X3fVOMEsOnt+WOSiI1/m5bvLXBFIp+vwwpTo6dpi0SYo5mJccu3wODAIRFNlbhzSV9VuRprIxaSrrkC8rkUoPkUq3jkllSXSEYJZEw9ifo0ib2UWLNGfXFv/mT60O'@; put 'Uux/uWw6sG7+31kxqtOOXo9RhmC2aNJQS1fEZExFHyiONH1uzHhs3blXr3MpJPtlJIJZUkAUu0IBLcVks7DAQ9pMN47s4zJlZqQftCA/m/ZmJiqLIFABAmZ6aEcnUIBOIw9SWri0dXQtrh5E2nHKbmAUUllyiEIwS6KhxuemlJ2g60AH4pOscOnFN5Nur8xVZnB6ogPqmcd55ihDMNkhf8zoh9GM'@; put '8mJyChDVFk638t3Ps/HJt1NVG5qhx2NUglkSdKaRHBzE6TI4gvdElgfHDgKHiXCm7aUUGkctcOQL2SyJWSh/DrNT4vPk4rRCyRSsUyuJ0grF0MsKvdyzzy/8WGUnELgLwQwEyoE/Byfu7zLIQXkzi9+d/VkNqjKj49rjmQfd+PldO1km1cz4oQzBZIHeft1luPz8IUqmK+LIVq7Q8diLY7VUJ5WZ'@; put 'wLKP/xFQgWCWREmjkScDhEDaqaJCIpzHgczDZqRRNPpRIp45aRby5xTCWRI3lT9brGTqTiBC2chNuSpJS9mAtJbxQFg4WYuYT5LpW2+BOjWRhxDMmqCn/2ObdXGSNpOS+NelF6IgajPZPL5uoQfLflYvPZF3FihFMLt2aIP/PPIvJTWYLDBO5THm3Un4c/kar/xkHWQEVCOYpeFkGmkizSb7bvIM'@; put '1Agnmc+z0kxITyXfTfrLPEI+nTkSnV4aO6N+t1DS8xgikAn1XahHhDKhvgfxtT2wRxancOJyjW6Daykrko0QzIrQUeO36HjOm+lAsy5cICE4vpmswZz1iQWp29RLT+SdJUoRTK5vPPb5R5BUt46SwTBSOtI7bfWzVp1glkZa01sS4SxOQu6hlzkPCvJIy5lJVaeOmJBxqDhgiJO8F+ZSbkOPaDpL'@; put 'Y6i372GUQiiW/CgTUzxIbOBCYhJpKBPdlLDeqr1c/OVLqdewbx8DKgTTx4DqtDn2f+TE7F0GOlErwNpMdkfKyXRReqJwSlOkpnmcxa4UweQB3XfrtRg+6GwlzeQ8vmzKifn0K+9g/8HD/FWWICMQagSzNNwafaT7o4UTktMbOXmta1rO/FwP+XJyKiQyrx+yaBrP7Ayg8ASlDJFECKVhDNh3WxgR'@; put 'R4qsja9DZDKZfCmJVMbVoWTnsVQJyU6CpHxWXkLJeYRChFOegr8QzFPgUP5LTLwbXSmdUdPOpM2kGR8I30xOrr51uRt/fG9XGl/lCGbvbp3wzAN3KJkPk2eixWLFVz/+gq9++lXpiWmUwYU6wSxLTsVaTpqrFKruJZ1OqtLCpDM/x4wcIprHj5roz4wT6SbkZpnIp7PYn6+s9mRb1RFgGYRFeqim'@; put 'txtxiUQoiUzWqgf67CKCaUJ4JLk9aBk3in0oA/FQrfoognOEEMzg4B7Ms7I2s0U3NzqfQ5HmdSnS3OHfKkC2MDN++9xCZX3VjB73ylI5ghkbE423qKpPAlX3UTFnJKdh2rX3AJ5+9R0J9vHO4iCuhWBWDnyNdNJ/mj/nyfRIXDvdUeBCYR75cJ4gjecxC9VPNyE7kzSeR4E88vUszJP8nBUhzJmk'@; put '7EQkwyn/ZEwtN9X2Jo0k/XFQTjRpZsKjiWhGUI112pG1kRyQw2QyVLWTFWHp/U0IpheJ0FvzNcR5M5uTNpMvEn+8eJnJSpCbQ9Hj4+z00q2ueZxnj3IEkwf14KgbcG7/s1BQUMBflVs42Oe18ROxaOVa5cZmtAEJwayZxDTiSf5IXGnIfJJ4sjahiKI7CylSvZh8msjcToTzGK/NRDxNyMuh30gj'@; put '6ijg1Eqc+7Zm/dDz0VarmyK2vRpJUO1uIo/0IGQzd2QcmbxjSCNJfpQ2ikq1EJDs9soPRibwHv5TGBt/yE0Ipj9QNU6bfP9p1d2FzuSbGZtIwYs+1mayeXz7ag8WfK1u9LhX2koSzL49u+LJ+25HYWGhd5xKrS2U83PZ6vV48a0PtUStSg3OYIMRgukfgWnEk8gSE08T/ceaT20b3fxdFFjkKKIA'@; put 'o0JaEwktIC1nYS4R0BO8JvJJnwv5cz7V+c2jYCN6z3QXAUVURZbJqJuy6gR7sVg84GhtK7lg2aiIhz2SNY2kcYwCIqI8RBpZKwnKL0mfo9ywhpOPZDiRSDKtWdnXlTWSRBw5kTlxSPogRNJXMhWC6Sskjd1OLAW6dSVtZpOOxb6ZnDnBFwtfw3O/NGP3enWjx704KUkwVTeTc07M/IJCPENm8h17'@; put '9ntlKesgICAEMwig0ynZNMz/kccIrTk2hQNUtI9ah1hz52QtHqXUcRK5dDrY1E5rqsHgJKLppHdPRyFpP3k7fS+i7S6NgNJvRRTo4mLNKFei0WgtkTn6TqTW42Zyx6cgOwKd30JKiGLjs4c0sNDIn4nyRtro2WGmtSXMQ8EznOaJCCSRSSsF2dh4bad9iFjy8RZaM2nkVFCsgSxun87ABJLZsLbm'@; put 'UwqJ1ITr5/+EYPoZYEM1z76ZLnQf4iKXE7NmWalJ90PJPM44KUkweWD333Ydhg7oq6yZnCv7TJ05Dx98+QMPV5YgISAEM0jAV/K0XiLKuzN385I3vtFrX0qQUt6n3OUkuWPS99dCTZj5BNzUaRbtMI0rMkktboSTlGufuNHif6dpRX4OBAJCMAOBsrHOEVvbhZ7nFaFRe28J1OJruKqj0Mzjq8g8'@; put '/o365nHGRlmC2bNLB4x+6C5lo8lZe3I0IxNP/N9bSM+kUiuyBAUBJpjdB7vQvi9pwchvUBZBQBAwNgJCMI0tP3/1ni0VrXq5tLyZ0XGWat3vrSfN43tCwDzOclCWYEaE2/EmRZOrmnSdhWcmm9ykb6bgxxlz+assQUCA/eJ60Jtt216mat1wgtBlOaUgIAhUgIAQzArAkZ8oUwNpM4cVoXEHCgA6'@; put 'WdWqMrBo5vFsF6a+E07+4ezbo/6iLMFk0Y26/nJcNvxcZZOuF6cs2o+nKPF6Xr6aEfN6vwQ5MKPXBS6KOhQNpt5lJf0TBCqDgBDMyqAU2vuwNrPNmS50HcB5ZSvnm8m1x7cspeTqP6idXL3kzFCaYHZo3QIvPn4v+cazc3z1fCZKgqXLz2Qqf/ujLzH3z2W67J7qndII5vlOtOohGkzVZS3jCw0E'@; put 'hGCGhpx9Mcr4ui6yYDnRuK2ZggApo8NJ/+qy2uZ5NfsTEw5spai+EFmUJphWSuczZvRDaN6kEYqKKIRUwYVTFq3btA3PjZlAUbPiAxhoEQvBDDTicj5BwL8ICMH0L76qte7VZnYZ6KK0YmVrM7n2+PEMN34ZF07p0ioRFagISEoTTJbR1RcNxS0jLlXWTM5jdNFb0yvvfITlazfyV1kCiIAQzACC'@; put 'LacSBAKAgBDMAICs4Clq1SvWZjZq809tJpvH1/7uxvIZoWMeZxErTzAb1k/StJhhlHROVTM5+2IuX7MBL739UXHePAUvXr0OSQimXiUj/RIEqoeAEMzq4SZHEaEyedD2TCdVAXIjMvqkNvOkwvLXD2xI26927fHSc0B5gskDfo7SFfXs2lHZyj48Rgdlin7xzQ+wbvM2/ipLgBAQghkgoOU0gkCA'@; put 'EBCCGSCgFT5NfD0neg53oSFpMznH7eE9Tkx/P7y4UIPC4y49tJAgmOec2QOP3XOrsknXWahW0tDOX7Qcr737SWkZy3c/IhBGNaB7Dneg9Rll+9748dTStCAgCPgBASGYfgA1BJs0m0mb2ceJHkM8WDXHhPXzQye4xyvukCCYMVGRGEs5MeskJsClaCAMJ14vKHRQsM94bNmxxytfWfsZAZud69W6'@; put '0LGfpCnyM9TSvCAQEASYYC6aYsbO1RatbGhATionURaBhCQXCnJNyMsJjdyXJQUZEgSTBzzqOsqJeb66OTF5jBYqH7lwyQr8b4JoMRmPQCxcW7rdWW70GEa1r6WSTyAgl3MIAn5FgCN+F3xnwd71lEj7ZC16v55QGhcEFEUgZAhm6+aN8fKT95MTLiUVUDQnJo8tv6AQz78+QbSYAbpgLVYPmnZy'@; put 'oe/lLridiuZaDRCWchpBIOgIcECGy4PfvrLh4A5LyPnMBR1/6YBSCIQMweT7xouP34fO7VsrW5+cZ6ZoMQN7fXLUYFITFwbd4ITZSucWjhlYAcjZBAFfImA2wZHrwZxPwpB+mJ4aHn5yyCIICALVQSBkCCaDc+7ZvfHgHTcpHewjWszqXAbVP4a14XGJHgy6yYHYRNKOk/ZDFkFAEDAmAmwezzxC'@; put 'GsxJYcgNQZ85Y0pNeq1XBEKKYMZER2Hs848oHezDE421mH8sXan5YqrqDqCnC8oe6cZZlzrRtIMJTodUU9KTbKQvgkBVELDZLdi+0oMlv1jhyAu9oIyqYCX7CgKnQyCkCCaDMfLqi3HVxecpXdmHx+mg0pj/pbyY6zdv56+y+BEBi82DNj1d6HWhBPr4EWZpWhDwOwKWMDMWUwT59lUU4FMk5nG/'@; put 'Ay4nUBqBkCOYjRsk47VnHoLNZlU22IdnLNcoX0GlIzn5usvtVnoSB3twFFuFhBQXhtzogC2CtB5UulMWQUAQMBgC5H9ZmOsm/0s7MsT/0mDCk+7qEYGQI5gshGfuH4Uze3RRurIPj5NrlL82YSKWrFrPX2XxIwL2SA/6XuZA4/ZmMZP7EWdpWhDwFwJWMo/vWushDaYVhfliHvcXztJu6CAQkgTz'@; put 'jC7tMfrBu1BEZmSVF9Zibtq2E6PHTCAy7VB5qEEfm8XiQeOObvS7oogCfYLeHemAICAIVBUBskTM/9qK/VstlHJMzONVhU/2FwRKIxCSBNNGQTD/e+YBtGjaWHmSSYk/MX7SZMxesKS07OW7jxGIjHVj4DUO1GlsJv8tcUvwMbzSnCDgNwSsYRak7nBj4WQb8nJFe+k3oKXhkEIgJAkmS/j8Qf1w'@; put '763XKR/sYzabsS/1MJ58+S3knMgNqckd6MFarG406+JGn0vccLuEYAYafzmfIFAtBEhZyfrKBd9YsXczaS+lek+1YJSDBIHSCIQswYyNicYbzz2sfMoiFrjVasNn303FN9NmlZa/fPcxAhFRbpx9VRFSWokvpo+hleYEAb8gwKmJdorvpV+wlUZDG4GQJZgs9puuvBDXXHq+8lpMTr6ecSwLz7z6'@; put 'Dg4eORraM97PozebqbJPMzcGjHDCaqdCIBJR7mfEpXlBoPoImCixegFV7vntUxsyDpops4j4XlYfTTlSEDgVgZAmmMn1auP10Q8jMiICbsVT+VhtNsya9yfenvjVqTNAvvkcAZvdg479i9B1oAlFhRLx43OApUFBwBcIEJdkF6Jl083YulzyXvoCUmlDECiJQEgTTAbivpHXYPjg/iGhxSygSPKX'@; put '3voQ6zZvKzkH5LMfEIiIJlP5lU40aC0k0w/wSpOCQI0RsIVbsHWZmwimDQ5JS1RjPKUBQaA0AiFPMFs0aYhXnn4AFnqTVb2sIqctWrtxK14Y+75W6af0ZJDvvkNAS76e7EL/EUVUq5yiyp0S9OM7dKUlQaBmCHDOy8O73FhAaYlysswU5COm8ZohKkcLAv9EIOQJJkPyxL234uzePVBQUPBPhBTb'@; put 'YiIizWmLZs1frNjI9Dcck8WNBi0oAfvlRbBHmig6VSr86E9K0qNQQ8BqM+NYugfzJ1tx7JCFFAuhhoCMVxAIDAJCMAnnTm1b4oVH79E0mKprMTng58jRDDxNAT9HM44FZpaF8FksVg+atHfiTEpdZLFR0I+QzBCeDTL0YCNgIXJ54hhpLr+x4eh+M/nei+Yy2DKR86uLgBBMki2Trucfugs9unRQ'@; put 'vnwkT2ULJZr/Zc4CvPfZt+rObB2NzGLzoHlnJ3qeLyRTR2KRroQYAkwuc7Pc+PMHGw7uJJcoIZchNgNkuIFGQAjmScTP6EzlI4lkql4+kofLhJoDfl586wOs37w90HMuJM/HJLMFkcwzLnBTXlKIuTwkZ4EMOlgIcKWe7AyXRi4P7xFyGSw5yHlDCwEhmCflzUE+/33sHnRu3yY0tJgn65Q///q7'@; put 'yC8oDK1ZH6TRcqWf5p3d6HkB5cgkbYpU+wmSIOS0IYUAJ1LPPOzBoh8sSCOzuOS6DCnxy2CDiIAQzBLg9+7WEc88cCccDkeJrep+tFismPTNFPww/Td1B6mzkZktHrTs7kS3QW6Ex5ikZrnO5CPdUQsBTkV0aJcHi6dYcDxNAnrUkq6MRu8ICMEsISGr1YIXH7sXHdq0DAmSyabyrJwTGP2/8dhz'@; put '4GAJJOSjPxFgc3mDVk50H+ZBfG3A6ZAURv7EW9oOQQTMXCLXjN0bgGU/W8n3koN5JKAnBGeCDDmICAjBLAV+nzO64Mn7bg8JgslDt5JD4OIVa/DK+ElwuaTqTKnp4LevXFIyMcWF7kPdSGkOFHGeTOGZfsNbGg4dBMxU/pErs21facWKmRYUFRDblEUQEAQCjoAQzFKQh5oWk4cvuTFLTYIAfo2O'@; put 'd1NZSSdadKfgH4skZA8g9HIqBRGwhJlReAJY+7sZO1bRZ6nQo6CUZUhGQUAIZhmSCqWIch4+1+NNS8/E6DHjcfDw0TIQkU3+RMAW7kbTjm50PseF2AQqLVlEqkxJ/uxPyKVt1RAwm8gaY0LaXmD1b1SlZze/rIlJXDUxy3iMhYAQzDLkxRHlLzz6L3Tp0DYkIsoZAqvNhoVLVmDMu5/CReYlWQKL'@; put 'AJvMayW50GWACw3aerRUUm6nsMzASkHOZkQEOL+lk17Ktq0wY9NCK7KPc+FHIZdGlKX0WS0EhGCWI89uHdviOcqLGUp+iZqpfCKVkVwgZSTLmRZ+32yPcKNZFxfa9/EgjgKAioqIZLqFaPodeDmB4RAwkdbSQlrLzEMerJ1nwf6tRDQd4m9pOEFKh5VFQAhmOaLlCOvRD9yBXt07h0SNcoaBTeVc'@; put 'PnL0a+ORejitHGRks78RMJkouryeG+37utCknRu2CDL3idnc37BL+0ZBgJSTNtJaFuR5yM8S2LTIhpxjrLEUraVRRCj9DA0EhGBWIOd2rZrhxcfv025bqtco98LApvIlWlT5RDidElXuxSUYa05nVL+5Cx36uFGvKZnNSWOjEc1gdEbOKQjoAAE2h7sp2wWXetz4hw1H9oB8LUVrqQPRSBcEgX8g'@; put 'IATzH5CcuuGRu27GzJmaHAAAQABJREFUwL69QkaLyaM3U5Wfj778HlNnzT8VDPkWFATCIjxo0tGFNj1dqF3fRJVI+KEqfrJBEYacNCgImMkUbqYXrIyDbmxabMXeDRY4CkRjGRRhyEkFgUoiIATzNEA1bpCM/z3zIOxhYVputdPsrsTP7B5wIjcPXEZy++59SozJ6INgDXpUjAdNO7nQsqcbCfWI'@; put 'aBLHFKJpdMlK/ytCgHNaMrnMJo+drStN2LnKgtxsCuGhe5QsgoAgoG8EhGBWQj533nAlLjlvEPLz8yuxtxq7WEiLuXHrTrww9j3k5ReoMSglRuFBRAzQrFNx7syEJB4Umc5ZoymxQEpIWAYBCt4xw2QBso+Sn+VqM3autiCHosPhEWIp80MQMAoCQjArIanaCfF447lHERcbHVJR5Vzl5/tfZlO9'@; put '8qmVQEl2CSQCHmKTkdFAo/YutOjGpnOP9lB2cmojiToPpCjkXL5CgLgjl3fk96TjR4hYrjFhzzoK4DlOG4RY+gplaUcQCBgCQjArCfWVF5yLW6+9PKS0mGyGKipy4vX3P8PilWsriZTsFmgErHY3GrR0o0VXCgZq5kF4uAlOF1FQ+pNFENA7Ahy8xknSucBAxgFg51rysdxoQT5V5JHIcL1LT/on'@; put 'CJSPgBDM8rE55ZeoyAi8Pvph1E+qS9HVzlN+U/kLpy46cjQDz1LqosNp6SoP1fBjs1jdVN/cg+aURzOltQextdikCJqvYj43vHBVGwBrK6k0KsgMXpDjQepOE3atMVMFHqodXihmcNXELeMJTQSEYFZB7sMG9MF9t14XMtV9vNCwqXzZ6vV4ZdxEOIqKvJtlrVMEOI9mVJwbjdpRUFAHJ5FOyhto'@; put '59J5HkrxIlpNnYotJLploqAdK/3xS8+xI8C+TRbs3WTG8aNkGncJsQyJSSCDDBkEhGBWQdSsxXzm/jvQqV2rkCOZFosVX02ZTn8zqoCY7BpsBDiXZr1GLjSmWucpLUirSbXOObErk02P+GoGWzwhcX4mlRb6Y2169nEPDpO2cs96M9UNp1RDoq0MiTkggwxNBIRgVkHubC7mEpJP/fv2kEq+zhCx'@; put 'P2aho4hqlX+CZWs2VAE12VUXCJBWMzIKSGnlQsN2LiQ14mh0Cz3zPaRNoie/kE1diEmVTvxFKulOmZvlwtH9ZuzbbMYhSpCel03aSlGkqyJqGYcgUC4CQjDLhabsH8JsVvzr5hEYOqBvSAX8MBqcuoj9MJ8bMwEHjxwtGyDZqnsETGb2z3Sjfis3GrYmv80GoIh0fuh7RLOpe+nptIOkoORE6Fwb'@; put 'nPOz5ma7SUNpxoHt5Fe5g/LqZvH8op1kEQQEgZBBQAhmNUTdKCUJLz52X8ilLWKo2B9z5bpN5I/5MfILCquBnhyiJwTMFjabE9lsSWUpW7hQpwFpOkmzCdJ4aj6brNkUbZOeRKafvnD0N5m+TRSrwyVMsylPZdpe4OAOC47sNp3UVAqp1I/ApCeCQGAREIJZDbytVgsuGz4YI0dcGnJaTIaLSeZP'@; put 'M+fhgy++l4oa1Zg/ej2ENZvRpNms19iDlJaUW5PIZkw8aaVsxVopTn0kpnS9Si8A/SKuaCFSyZV12JG3MNeJYxScc2SviUilGZmpFhTkcT+EVAZAGnIKQUD3CAjBrKaI4mNjMPrBO9GqeRM4HI5qtmLMw9gfk5VaEyZNxqwFS4w5COl1xQiQBjM8Akio70Jy8+JAobh6QEQUVVgh/uBxUfoj1m6K'@; put '72bFOBr5V5Izm721co3sg13gQm4O56okUrnHqhHLLCKYbon+NrKUpe+CgN8QEIJZTWjNdMPt1a0THvvXLVoL7L8WSguTzByqV/7yOx9pJSVDaeyhOFY2pcfU8mh5Nus1cSGxvhuxtSlQKNKqmdO1uuic3J2vg9C6FNSZDkQoWUNpIg0lX9/OQiKUWR5kHjHj6D6O+jbheJoZhfm0o2gp1ZG7jEQQ'@; put '8BMCQjBrACwH/Nw78lqc2/+skDSVc9DP/oOH8Z833tOSsdcASjnUYAhY2Jye6CENp5v8NilQiEpVxhHhDI8ivzwbabWIaHIlIRcFfIiWU4fC9WonmVCSDyWXYszPd5LfpAnHDpmQTlrK9FQzsohcFhQU/67DUYR8l2z0DLKH2RAVGYnwsDDY6LM3RJ/f85xUia2ALGx5efnII0G6tAsy5GETAAKE'@; put 'gBDMGgLdILkeBfzcg4Ra8SFV4ccLG/tjrli7Aa+OnyRBP15QQnBtJpN6RCyRzLpEOpPcSEj2IJ4+R9E2O5nVuRQgazfZtM7k0y3BQ4GbJV7NJAXkEJ8kBTOVZSTtZP4JD7IzyHfysBkZRCozD1JKoWNmFGkeP6yllEVPCERGhCO5Xh00bVgfjVOStapyibXiEBsTjXA7kUubjYKuLKf4xTtdLi1n'@; put 'M6eYyzmRi6MZx5B6OA17DxzCngMHkXoojdLPhZaLl55kqnpfhGDWUMKsxbtgcD/ceePV9KbPr/qht1jpxjZ9zgK8+9m3xSbS0INARlwGAnRpIDKWTOl1PKhFZDO+jovM6rQt3kWaTjPCqLoQ+/hpxJMt66zxZLWLmNnLQPM0m5gPklmb85lzDkr6qBENFwFamOdEfq4ZJ46xiZs0lEQos2idTd8d'@; put 'eZKT8jTIBvXnlKQ66NS2FTrSX/PGDVA7IR6RpK3U/ODpOuGyxcXXT7F7Cn/m30ou/J3/OI+z94/3O0GEMy0jE1t27Maq9ZuxadtOHMvKKXmofBYEaoSAEMwawVd8MFf4efLe29CVkrAXFoZm6h6z2YJJ30zBjzPm+gBRaUJVBLiMpT2CUiGRZpPJZkxtIqAUuR5di4hnHJnYIz2w2oGwMCs9FAkF'@; put 'IpyauZ3LqdNDkasPMQcNOT/Pk5yBrdmshmRizqZtjWjQJlehm4Jw3CjIp0TmWUBOOnCctJM5FISTfYzzUrJPJTdyKvng5mTRFwJ1EmuhZ5cO6Nm1I1o0aYha8XGanIuoTK/b7dauA1/0mOcOK0hY8+kiTWdaegY2bNmBhUtXYc2mrRS8KmWBfYFzKLchBNMH0ucLtW2Lpnj+4bvpwWjTbgI+aNZQ'@; put 'TTAGRU6XVulnyap1huq7dFYPCHioXjpgJ4IZGcPkk9ZUTz2GSGcEE0+qQsS/hdE+VkqbZAujaHZW19GiEVEioExENULqjWw/SUY1Qso7/vWBv+hgOcn1NNqnMcdi4sg9I2WTRiR5SNqYyHeuyEF/RBId+R7SSBKJzLTgxHHgRCYlMifTdl6OCQW5bP7mFoRIMgpGWfjlqW3LZhjS/0x07dAGdWsn'@; put 'aqSSM5Twb4FYmGyGkR8nE9mde/bhtz+WYQGRzeNZ2VpfAtEHOYdaCAjB9JE8beSLOOKSYbjusgtCMuCHYWTzy5GjGXiNyklu27XXR8hKM4IA0SUKKgqz0194MdEMjy4OKIqIdmvEMyKKfqO/cCagtI+VYh2sNjcsYTwvKfDISuZBzh+vqf0IUeJff1Ew/nCSyBWv6H/vM927Pp0QvI1p7RZ/0f7X'@; put 'iGNx+381xc0T+eWAC05m73KaKFE5iEB6UFRABJL+ColA5hFZzD9Bf2S1zM+hYBtaF1AEtyOfgze49eLznK5r8rt+EeAX887tWmH4oH4aseRgHTZ7s0YxmAsTTSace/enYubvizB74RLNhzOYfZJzGw8BIZg+lBnnxnz2wTvQunnTkMuN6YWRSebOPfvx2nuf4OBhKSfpxUXWgUKATOyUUslMWk6L'@; put '1Wtu98BC5NQWRppPIp62cLdmhrfa6Hfaj9dc4pD3N1PWJYvVreV+5Ie/2UwklROLk2n/L9JZciisPiUNk5MIosftLbdJJmviBy4igW4nkUH6c1EchYO0j07vmrSMHFtRVGAm0zURy0Iz7c8+deyTKsSxJMSqfm7VrDEuHjqA0t11RGREhPbMCJS2srKYchAnm9B37d2Pb6fNwvwlK0PSQldZvGS/'@; put 'UxEQgnkqHjX6xuSqS/vWeOb+UZpJQW83ixoNrgoHm+nNd82GLXjj/c9wPFucxqsAnewqCAgCiiOQQD6VlwwbgHPPPlOLAGeTtN6fFUwyeVm+ZgM++24adu8/qPs+Kz6NDDE8IZg+FhObym+66kJcccHQkDWVs+aHTZELl67EOxO/QkGhpMHw8TST5gQBQcCACPTs0h7XX34hmlFEOJvBOWjHSEsE'@; put 'aVozMo/h66kz8ctvCzQ3DyP1X/oaWASEYPoBb35Dff7hu+gm0jBkTeVMMjnWYua8P/DR5B/J9BdcnyI/iFmaFAQEAUGgUgjEREXi6ouHYSgV5QgnR2H2szTqwr6Z/Dd/8Qp8TPf29EyKNJNFECgDASGYZYBS001cRrJbp7Z46r7bQ9pUziTTRSzzh+mz8cUP02sKqxwvCAgCgoDhEGhCidFvu/Yy'@; put 'dGrXmvx03YbTWpYHOOfj3LZzN97++Cts371PTOblARXC24Vg+kn4xabyi8hUPiRkTeUMLfulchWJz7+fhqmz5vsJbWlWEBAEBAH9IdCzaweMvPoSpFDFNyNrLctD1m63I/PYcYz/5GssXbWeFArGMvmXNy7Z7hsEhGD6BscyW0mIj6WAH4oqb9E0ZBOwMzCsyWQ/zI+/+hGzFiwuEyvZKAgIAoKA'@; put 'SggMpZyWN1x5EeKolKOK5NIrK44053KT73/+nZY7M9gplrz9knXwERCC6UcZsPauU9uWeJqiylmjaTSHbl9Cw1icyM3TyklypQhZBAFBQBBQFYFLKP3QNZcO12qEh8J9n30yWXv5yTc/YdpsDv4Rn3tV53ZVxiUEsypoVWNfq9WCERcNw/VXXBjSpnKGjknm8ewTGEeR5cso3YUsgoAgIAiohsDl'@; put 'wwdT0Y3zEGYLLaUC39/ZWvXBF99j+tw/hGSqNrGrMR4hmNUAraqHRHOt8vu4Vnk7FBQUVPVwpfbnmxBHHY6bNBmr1m9WamwyGEFAEAhtBM6nijw3XXWxRi71ntvSH5Li+zuXbB1P9/d5fy6HUzSZ/oDZMG0KwQyAqPitrkWThnjuobsQEx0V8m92bE5JS8/E2A8+x4atOwIgATmFICAICAL+RaBf'@; put 'r26468arqCpPeEhHVPP93UGBnS+P+wir1m3WCKd/kZfW9YqAEMwASYYvuvMG9MFdN10NI1Ru8Dcs/KZ7mOqWv/3Rl0Iy/Q22tC8ICAJ+RaBdq2Z4cNSNqJNYK6R97b0gc+WfoxmZ+M/r72HPAan648Ul1NZCMAMocbs9DPfecg0GU4mw/Pz8AJ5Zn6cSkqlPuUivBAFBoPII1E1MwKP/uhktmzYW'@; put 'clkCtvDwcGzYvA0vvvWhlAwugUsofRSCGWBp162dgP88fDcapiSHbJWfkpALySyJhnwWBAQBIyHAQZysNDj7zB4wUcdD0e+yInlxMvYfZ8yhFHVT4KCa67KEFgJCMAMsbyZUXdq31oJ+Qj11kRd6L8l8hypCrN+y3btZ1oKAICAI6BqB4QP74pYRl1IaOouQyzIkxfEH/Pfau59g0fI1koi9DIxU'@; put '3iQEMwjS5bdeTmVxM1V4CPWoci/8TDKPUODP2x99QSRTAn+8uMhaEBAE9IlAY7JCPUHZQZLqJAq5rEBE7I+ZevgInnl1nBbcWcGu8pNiCAjBDJJAOdLw4TtvwllndBV/zJMy8EaXc9kxSWEUpIkppxUEBIHTImCloM37br1WM41zffFgLawd5Psm//HCL+q8eE31XEGIk557v2s/BuE/MZUHAXQd'@; put 'nFIIZhCFkJJUF6MfvBP1ac2R5bJAu1FmUG3bdz/9FktXrxdIBAFBQBDQHQK9u3XCv2+7nir12ALeNyaVYWFh2nlzc3ORcSxLyy3M981cDh71gPplR1xsNNjnPyEuFvHxcZqp2ks4A91p7jPnxHxuzARs3Loz6IQ30OMP1fMJwQyi5M100XXr1BZP3Hsb+I04FEqKVQZufhs/np2jVYSQspKVQUz2'@; put 'EQQEgUAhEBFux1P/vh0d2rREILWXrJ1kYpmbl4ct23dr1dA2Uh7hQ2npyMsvu4BHGJmnE2rFUYR7I3Tt0Aad27VGUt3aGsELtFKDo8qXrFyLl9/5WKtdHih5yXmCh4AQzOBhr52Z/TEvO2+Q5igu/ph/C4Nvply7/NNvp2Hm/EV//yCfBAFBQBAIIgID+5yBO2+8OqDVeuykkTxB2so/l63Gr78v'@; put 'ws49+6tVJacWaTP7nNGFUuX1RvMmjTSCHKi64azF5OW/b74vCdiDOH8DeWohmIFEu5xzhVN+TPbnGdi3t/hjlsCISWZ+QSG+mjIdP838vcQv8lEQEAQEgcAjwNrLp/89Cu1aN2dHR793wOtfuYzchb6dNgvbdu2tFrEs3dEoKl88qG9PXDx0IJLr1UFhYWHpXfzyXbSYfoFVt40KwdSJaGonxGul'@; put 'JJs1bhiwi10nQ6+wG0wyi5wuTPn1NyKav4Z8mc0KwZIfBQFBwK8IsPbvnluuRUR4mN/9CNkczlacyT/NwIy5f6LADySQ4wBGjrgEvbp3hpPiAPwdDMRaTK5V/ixFlG/cJr6Yfp2sOmhcCKYOhMBd4AuvXctmmm8P1ytnZ2xZihFgkukmZcHM3//AJ99M1bSago0gIAgIAoFEwEL3oYfvugm9u3Wm'@; put '0/pXe8km8dRDR/DuZ99g7aZt9Dxw+W2o7P9/1UVDtdR57LLl71iAiIgITJs1j3zsf5Dk636Tqj4aFoKpDzloveAb2MC+vXDvyGu0i9zfb5M6Gvppu8IE3ET4LFq+Gu999p2UHjstYrKDICAI+BKBZo0a4On7b0cCRWT7897M5HL3vgMY+8Hnmq8la/wCsZxLfpm3XnMZRaD7VzvLZv9Minh/7KU3'@; put 'ceRoRiCGJucIEgJCMIMEfHmn5eo+119+Pq6++DzxxywFEpNMM92c1m7coqUxSj2cVmoP+SoICAKCgH8QuPLCIRhB92WL2eQ3gllMLlPx+vufEslM9bs2sTRS/Xp1IxeAEVqaI39qMnmcbxKB/u2PpT7xKS09DvmuDwSEYOpDDqf0gh3JOQl7n57dhGSegkzxFyuR8J1792MCJWTfunNvGXvIJkFA'@; put 'EBAEfIcAp/th7WXHtq38FtzDFW/SqJrZa+9OwtYde4JWVvG8AX1w+/VXgNPo+UtTy8E+fyxdqZWQLHRIDmjfzVR9tSQEU1/y+Ks3nCD32QfugAT9/AXJKR+YZPLN+IMvvseSVetO+U2+CAKCgCDgSwSaNUohgnkHmcdj/UK6ioMZnZpZfOmq9RTYGFwf/Fsp8OcSSp/nr1gANpMfy8rGoy+8rpUI'@; put '9qWspC39ICAEUz+yOKUnbA5u3byJFvQTHxvjtwv9lJMa7AvfpHLz8im6fAamzZ7vlxu/wSCR7goCgoAfEBg+qB9uufoS2CgIxh9aPTYZfzN1Jr6ZNrPcpOl+GFa5TXIp46dPJpP3V55M1tj+39sfUvL1dUHT1pYLgPzgEwSEYPoERv80wkE/Z/borJnLmXD60yfGPyPwf6v85u9yufHLbwvw5Y/T'@; put 'JcLc/5DLGQSBkEPg/tuvR/8ze/jFPM7kchOl7HmFKtwczTymG2zbtmiKZ6mUMbts+YNUc33yb6b+qhXTCLbGVjegK9YRIZg6FyinjbhoyDm47drL4XA4/HKh6xyC03ZPizA3mbF8zQa89/m3OJqhn5v0aTsvOwgCgoCuEeCk5Oyu1KpZY5/3k+9dHCM+5t1PNFcff6Yjqk7n77zxSgwfdDZcfjDZ'@; put 'M7Feu3Ernn99AuX4dFSne3KMzhEQgqlzAXH32MH81msuxcXDBkrQTzny4hs1m8x37NmH9ymN0eYdu8vZUzYLAoKAIFB5BBqlJBHBvBOJVNPb1wuTrKXkQ/4GRVRn55zwdfM1bq9Bcl28+Ph9iIuJ9rlyg+/XGZSu6NEX3tCV5rbGoEkDfyEgBPMvKPT9gd+iH7rjRpx1RlchmRWIioN/+KbFCdnn'@; put 'LVpewZ7ykyAgCAgCp0egZ9cOuP/2GxDpY1NxseXFhP9NmEQkM/iBPeUh8a+br8bQAX19rsXk8bvcbjz18ltaNhB/mOHLG5NsDwwCQjADg7NPzlInoRaevO82tKGKPwUFBT5pU8VG+M24kNwJps76nXx8ZmmfVRynjEkQEAT8j8CF5/bHTVddDKvF7FMtHge57KJ0ay+88b6uNXidKDXTMw+MovFb'@; put 'fA42l8N8+Z2PqIDGGgn08Tm6wW9QCGbwZVDpHvAbX+MGyRTdNwrJ9epoPpmVPjjEduTgHyrAiaWr12Hi5Ck4lJYeYgjIcAUBQcAXCNxM5JJJpsXHBJNLJn7/y2x88cMvuogcLw8rDvJ5iczkzRo38HmgKWPwwRff4aeZ8/xaDrO8scl2/yIgBNO/+Pq8dSZOHdq0wBP33IroqEhJX1QBwl6/zL0H'@; put 'DuKjr37E6g1bKthbfhIEBAFB4J8I+COC3Gsef21CcXCP3qOo777pKgwb2M/nZnKOJP/u51mY9PVPQc/9+U/Jy5aaIiAEs6YIBuF4b/qiB0fdCI4y91eesiAMzS+nZL/ME7l5Wo45NptzWiNZBAFBQBA4HQJMBB/71y3o1bXj6Xat0u+sKOCgnudff5eqkh3wqem9Sh2p5M5D+5+Ju2+5Bm6Xq5JH'@; put 'VG431mDOnPcHxk2aDEdRcJPLV67HsldVEBCCWRW0dLQv+xlySa9RVNKL82OKg3TFwuEbOqcDWUjlyT79dpqkMqoYLvlVEBAECAF+gX/qvtvRuX1rcrjx3cL+l3v3H8Tzb7yrVSTzXcv+aalD6xZaqiabzerTE3DJyAWLV2i116VkpE+h1UVjQjB1IYbqdYJvflddOBTXX36B5MisBIQlTeYfk1/m'@; put 'qvWbK3GU7CIICAKhioA9jGuQjyK3pJY+TbLO6Yk2bNmOl976EMezc3QPb0pSXfzfE/chJjrKp31lHJavXo+XKNCnUHJh+hRbPTQmBFMPUqhBH2xk/h1JdWMvHT5Y0hdVEkc2meecyNWizH+cMVeizCuJm+wmCIQaAlwycTRVs/F1knUmVivXbaQURZ/oMv9laTnXrZ2AFx+7B3USE3xqLWMcVq3b'@; put 'hBfefF8IZmnQFfguBFMBIfJb9j0jr8G5Z58lJLOS8mSTOWs0V6zdiE/IZM6BQLIIAoKAIFASAbs9DKMpyXqblk19aiL3Eqv/UQWfLANoMGsnxGsaTH8QzOVrSIP5tmgwS847VT4LwVREkjEUUf7AqBskEXsV5cm+UEeOZuCrKTPw28Ilmp9mFZuQ3QUBQUBRBNhC9PT9t6Mj5YL0pQ8m53/cvH0X'@; put '/jv2fUOYyJPqJGoEs1Z8nE81mJoP5hLywXzvU7IkFSk6i0J3WEIwFZJ9QnwsHqRqPz06dxBNZhXkyiZzThOycMlKfE456aSWeRXAk10FAYURYEvHE/eMpHtqe5+Oku85Bw+n4bkxEwyRo7c55cB84dF7wDkxfblwFPnsBYvw9kdfShS5L4HVSVtCMHUiCF91oy75yDxKaTXaU9SfVPupPKolA4C+'@; put '/HEGFq1YU/mDZU9BQBBQFgEu0duvV3fS3PkuvRkT1/yCQox+bTy279oLt4dzXOh36d2tIx65eyTMvlTj0nA5D+aUGb/hwy9/kDyY+hV/tXsmBLPa0On3wOR6temt+za0bNZYSGYVxcSaBQeZamaTufzrn37FsazsKrYguwsCgoBKCIy67nKtFreF2JUv08GxmfzNDz/H74tWkPZO3+bhay4ehmsu'@; put 'PZ9yCPs2VyVrMCdO/hHfT58jlXxUumhOjkUIpoJC5SE1rJ9ECYJHonmThkIyqyhj1mYy0dxFCZC//PEXLFm1vootyO6CgCCgCgJXnD8YIy4Z7vNa5Ox/OGPuQnDKNC4EodeF74fPUi3ybh3b+bxUJGMwhgKd5v25TGqR63UC1KBfQjBrAJ6eD+WbQtOG9TWS2TAlmVJAFOq5u7rsG5NMdjyf9+dS'@; put 'qgI0S3wzdSkl6ZQg4F8EzjmzB+666Wpwtg5fajD5/nLoyFGMHjOe1un+HUQNWq9fr44W4BMbE12DVv55KD+jGM/nxryL9ZQTlAuGyKIWAkIw1ZLnKaPhC5idsx+5+xZNoykk8xR4KvWFfaX478DBI/h66q+YT1Un9O0tValhyU6CgCBQSQRaNG2Ep/99O+J8TLD49Gwmf4vN5HRf0WsU9aXnDcTN'@; put 'V1/i8zKRfF/lfMSPvTgWqRTwJIt6CAjBVE+mp4yISWbLpg3x+D23ol6d2lrFn1N2kC+VQoBLc7roDXvR8jVaTfO9Bw5V6jjZSRAQBIyLQDSlf7vsvEE4b2BfhFNOTF8vnA9z3aateGXcRF36e3Oi+f9S9Di7Wvlaw8gp4rbt2oOnXn5bC3jyNbbSXvAREIIZfBn4vQdMMts0b0KazJuFZNYQbb4p'@; put 'pqVnYurMeZg5f5HcGGuIpxwuCOgVgTMoNdHVFNzSiu6dbpfLp+bxkmPml9e3KE3PAkqTprdgn6HnnIW7bx7hc+0lj58DfGb9/ifemThZd+MuKR/5XH0EhGBWHztDHamRzBZEMu+6GUl164hPZg2kxw8EKgOETVt3kNl8JlZv2FKD1uRQQUAQ0BMCyeRzePnwQeh/5hla3sciP0d480vr7n2pePGt'@; put 'D3A4TT++mLXiYvDfx+5Fg+R6Ptdesrw5wOftj76gF/XFFJ3u0tMUkL74CAEhmD4C0gjNFJPMpnjozhtRv15dIZk1FBo/GPLyC8gvczl+/HUuJU4+WsMW5XBBQBAIFgJsAh/crzcuGnIO6ifV1UiPr83C5Y2NydZPZBX57LtpyM3LL2+3gG6/44Yrcf7gs+GiIhS+XvhZxOngnnz5LeykbB2+DJ7y'@; put 'dV+lveojIASz+tgZ8ki+sDm6/FFKYdRIostrLEN2VOdoUNY88APitz+W6uYBUePBSQOCQIgg0LVDG1x5wRB0aNtSKwnp9AOpqghKvi9z8OA4MhfrwVTet2dXPHD7DbBYzH4hf/xyvp38L59+dZzcLyuaGAb/TQimwQVYne4Xk8wUPEo+mY0bpkiezOqAWOoYNpubiGxuofrC3/08G8vWbPDLjbnU'@; put 'aeWrICAI1ACBFNJUXkbmcK7UExUZEdQgSH5Rzco5gf+Nn4gNW3cGzWzcjDKPcNR8Yq14v5jGWVzsfzl5ynR88cN0qeBTg/mr90OFYOpdQn7sH2swH77zJs2JPT9fH2YZPw43IE3zmzk76i9ZuQ5TyGy+jcrAySIICAL6QoBzOg45u7dmAq5D5XXZBzBQ5vCKkOC0RVyj/PX3PtXuHZy5IpBLUt3a'@; put 'ePLeW9G0UQOqrON70ziPxautfZa0lxvIj13M44GUcGDPJQQzsHjr7mwNkutqppD2bVpCSKbvxMMPimzSRsylChU/z1mgJVT2XevSkiAgCFQHgTCbVdNWXjz0HDRrXJx6R28BJpy6KPXQEYybNJkSkO8ImCYzqU4i+effhDYtmvqNXLLM+N64eftOqsM+Qczj1ZnEBjpGCKaBhOWvrtatnYB/33Yd'@; put 'undqLyTThyB7/TPT0jMwY96flJJjEY5n5/jwDNKUICAIVAYB1pp169hWy2nZoU0L8i20wN/R4ZXpV3n7MAk7npWtlZFcuHSV39P4cEGO+269Tst36W9c2Dz+3qffYBq9ePtLS1oerrI9sAgIwQws3ro8G5so2N/m3pHX4KwzuiIvT791cXUJ4Gk6xQ8zJpv7KDn7dKo9zFpNjj6XRRAQBPyPAGvk'@; put 'WGPZs2tHSpZuD6qfZVVGyz6ZTjLd/zr3D3z3yxxkHDtelcMrvW+fM7rgtmsvA7sK+Jtc8r2QX7Ife/ENXZfHrDR4smOFCAjBrBCe0PoxNjoKo66/AoPPPlML/BHfGN/Knx8YnD9z/aZtmtl85bpNVB7O4duTSGuCgCCgIcABPJefPxhMoGKiow2Zlo01r2wy37V3P76dNguLVqz1mTYzsVacptEd'@; put 'RlWKbHRvCoSrQGRkJH6cPgcfffWjBPeEwHUqBDMEhFyVIUaE23HzVRfjQsoF5yDyIySzKuhVbl8OBOK6wxu2bMMvcxZizcatPntoVK4HspcgoC4C7EvI+SwH9OlJRSVqa2ZYPQTw1ARxNpmzOZmDYmaQRnPV+s3VtoJwAvVzzjoDwwb0BZNwbjcQ93m24uQXFODJ/3sbu/enBuScNcFcjq05AkIw'@; put 'a46hci3w2+wIKpF21UVDtchKo9+c9Sgg1kywRrOw0IF1m7dppvO1G7cJ0dSjsKRPhkCAfckHEakcROSSiSXftwKhlQsUOHzP8BLNfamHsHzNRo1o7j1wENkncivsRgxZp5pRZPgZXdqhV7dOSKZqbkwqA+kDydrLKTNYezlF7nMVSkudH4VgqiNLn46EfWXOH9QPI0dcojnEB/JG5NOB6LyxkkRz'@; put '/Zbt+HXeH1R6cquYznUuN+mefhDg0o79e3fXtHKskeNF9fsVW0H4Hl1YWIj0zGOaP+Pho+nIPJ5N7k2FGgZ2qkwUHxuDFMoUUp8wYj97NrczNoHGh/vKWTWefPltMDmWJTQQEIIZGnKu1igtZNLoRzfuO6lkWHRUpN8dwKvVSUUOYqJZbDp3YPO2XZj5+59YSWYwvZSNUwRmGYZCCDCZPOesHhqx'@; put 'DIZGTg9Q8n3Dm63C+9lr7ubv/Jk1uUwog6nN5cjxT7+dim+mzaS+SN1xPcydQPRBCGYgUDbwOfjm1ZHSejww6gbUrZ1oSEd5I8HPDwU2nbtcbkq0vAe/LVyCxZS0nSt8yCIICAJAEyp1O6hvL3A5Q458DrSpV2RQNQTYrM9BSs/+bzyOUeolWUIHASGYoSPrao+USQ+XD7v/tuvRslljyZVZbST/'@; put 'v73zfI7qStP4u2NQzhEhDBJCEogcTDAGG9tg43EoxxnP7Hpqy7sftnb/jN2q/bjhw1ZN7Uxt7YTd8YzHM2MccMAYE2whkEgiCOWcc8Sw+z6HObjBwghJ3X3vPc+tajrQ995zfu9t9dPvecPMd7RC84Z6IBqaWgW18L746pR0dPfO/CB8JwkEhABWU0qKlpnkna0b1kqGZkDDIxdNr1xA0IZ1GsaL'@; put 'qmf453//mcaMnhf8PePmDgEKTHdsPeeZ5moQ/d//9eumntyEZgPapZg5H5gH+E4CWDrHhoLtKFNy+ESFegRaPNHa7jsHzv8kgTkSQFWLdatKNHFnm7lHi0fUamTi4RzBRmh3LI2jLNHP//cPLEsUIeZeOg0Fppes4YOxJCclyJs/fFH2PbaTf+gjbC8EyuM2qIWKkXn+2bGT2kquZtblSiI8fJ6O'@; put 'BGZMICMtVbZvXmeSd0qKCiRGf2RBWPJH7YwRRv2NSCiq1rJK//Rv/8ml8ahbIzoDoMCMDndfn3WBipwfaAmjV5/bxwzzKFgScbEmIUhLHNVqbBOWz788fVY6uXweBWvwlPNFANf1siV5snvbJtNRDJnPWGJFggqF5XxRjsxxEEeOH8L/+K8/lcu1jbRfZLB77iwUmJ4ziT8GhJioPTsf0hZjL2uX'@; put 'jETftF/zB92ZjzJ0+RzFl7/4qlIuXq1Te1yb+UH4ThKIIoHEhHiz/L17+yZzn67eS8RWRrqUThQRBOrU+KGASMt/+ekvzI/f65rFzs1NAhSYbtp9XmaNPyRlxcvlH7SH+bIli017yXk5MA9y3wSsVxOdMmrqGk2sZnnlOSYF3TdJ7hAJArhel2h9xh2b18vDWzYYzyWyjRlfGQn64TsHPM740ftf'@; put 'v/mDvPPhIZYkCh9qXxyZAtMXZvL2IFGP7u/eeE22bFjDHuZRNpXNPscwenr75Iz2PT92ssp4NYdHxqI8Op7edQKpmqSzrqxEdm3dJKtLiwTeSiTsQFhy8zcB/O3Bj4Tfaq3LX779HpN6/G3OeRk9Bea8YORBUIj9J68+L89o9x+WD/HG9QAvEf7gT2pP+aaWdm0rV21iNeubWk0vdG+MkqMIOoFY'@; put 'vQaLly+V7dqicMv61bJYf5AijpveyuBYHuISST1/PHhIfs5WkMEx7BxnQoE5R4Dc/RsCyHB+af/j2sP8aUF5EXolvmET7UdYtoJ9RkZHTYmjijMXpOJstbZt62AtwWgbJ4Dnx7W2dPEi7X29Wm9rTB3d+Lg4xlYG0NY2POft9z5Wz+UB/ngNoI1nOyUKzNmS437TElio2YPwUrz5oxclf1Eu4zKn'@; put 'pRS9F+0SOr4UhjTLs1braZZrAeTK85ektaOLYjN6pvH9mSEqES6zcc1K2bZxrRRpc4ZkXRK3rQqZCe57E39rAsgWh31//c778rbWu2QbyG8hcvoFCkynzR+eyUO8oNzI32qG+ca1q0x7SX65hIf1XI4KO+ELAqJzcGhI6nTpHJnolXprae+SKcbFzQWvE/suWABRmWtE5ZZ1ZVJUsERSU1JMWRpk'@; put 'gbMgenAvAyyJoxTRz/7nHa3JWy7MFg+urWc7MwrM2ZLjfvckkJaSLD984WnZ//gjAjHDsiP3RBa1N4SKTSyjN2rM5pnqy3K2ukaFZ4surTNBKGrG8diJEf6CqhEbVpeaskLLl+ZLin7W8SOSotJjxgrDcPCDFB16rtQ2yH/892/kYk0961yGgXMQDkmBGQQrengOsTELtV7mVvmrV56T9NQU4830'@; put '8HA5NCVgl9Gx5DkxOSntunR+8Wq9VOkyek19k3T39tNb4diVgs46JZqos76s1GR/L87NkURN7LMJffRUunFBIJYbtv74yAn51e/fk76BITcmzlnOigAF5qywcaf7IYCi7KXa7u1vfvyyrNK6mZMqWrhkfj8Eo/temyAEMdE/MGgSg85pq8pqFZ0NzW0yNDwS3QHy7PNOICE+TutU5srKFYXqpSw2'@; put 'STpZGemmxiGuAybwzTtyTx8QPzZRkaJOO4f9SksQoXMYl8Q9bTJPDI4C0xNmcGMQGWkp8uOXvi97d++41QLOjZkHZ5Z2KR33KH/Uo97MOk0UunClVi6p4Gxp75TRsfHgTNiRmcTGxkhuVoZ6KZfJ6pIiLSu0TPJyssxSKBBg6RvCkptbBPA5R6xlX/+AfHj4mLz70efqtRw0f7/dIsHZzoYABeZs'@; put 'qHGfWROI0SXzx3XJ/A1dMk/jkvmsOXplR3g2kCiEDV2E+voHpb65VfsPN5iOQk2t7TI4PEqPtVcM9udxwEOZl5NtknJWFhWqhzJf8rT3d3JSkhEP9FJ6zGARHo71WGLF4mj5aTnw8RFpauvg5zjCdvD76Sgw/W5BH44fS+YrCpfKm6+/KGtXlZg+5ozh8qEhpxmyFZyI40QoBL6g2rp65KrGbiJL'@; put 'vUFv3X39MjY+Mc3efCkcBFA6LC012Sx5o3QQPntL8/MkOyNN4ygTbwlKeCkZuhIOC/jjmPBWIhwGn93O7h45Vl6psZZfSqP+SOR14Q8bem2UFJhes4hD40HbuFef2yfPPrnb/GGb0iVXbsEiAMFpb/CKjY6NSa96OVvUG4JMdXg72zp7pKun14hOfpHNzf5IqkvRz9Vi9UYi03u5CkoUPM9SMYkV'@; put 'AwgIbHbJm7znxtvPe0NIhopK1MW9VFsvxyvOyFenz0n/IBN4/GxfL4ydAtMLVnB4DPCubN+8Tt7QNpMP6hfhhC6z8ksvuBcEvtSs4MSXG0TnmIrOAf1y69J4zpa2TmlW8Qnh2dM3IAODwybWM7hEZjczMExNTpTM9DRT3BwFzvH5yc/LEZQHS9UbkjLwWQJj3LhKMDvWft4LnzdsVkziusFj3PC3'@; put 'Fj/2EENddeGS3i7rj71u/v31s8E9NnYKTI8ZxMXh4I/d4twsLWX0vDyydaP5AwcPCzc3CIR++UF0YsPyOmpvDmqGeo8uqXd290q7LrV39fSZ5/0qPPH/ExOTckNFVBA3FDFP0HqDKUk3hWROVros0sSb3KxMyc3OlJzMdI2ZTDRJGBAOEJP43EBIUkwG8YqYfk74/MAzjR8ReGw3++Niauqaad84'@; put 'rPVtkaCDzxKqP9Q2NEurCkoUSw/dz+7PexKYKwEKzLkS5P7zRgCZrHt3bTfF2TPUMwORwc1dAhCbuEE8WeGJL1FcF4jhHFHP59DQiC7lDZsvzl7NdMVjLO2hdBIE6PjklHk/vmS9IkQhHGNUEMSqhzEx4aaATE1JUs9jinokU029WNwjbhLL3YkqMuM1KcfGx1nhYIUknnNzkwCuCfyo+Ojz43Li'@; put 'lJYOun7jz2IRnusbxvs/rj/CEJoyqp8ZfA64kUCkCFBgRoo0zzMjAkgAQtzYT157QTZpm0kbKzajnfkmZwhAcMLrYsUnnkNoWfEFETqpX6ao14iySRMqNEfHx81jPMeXLrLecQ8vKEouTU5eM+0xv1YRaz2B+JK+doc3HefAeRcuXCDf+4ub48DjGL3hCx/38XFxEqcdb+JURCYkxBmRiMxteCQT'@; put '9Tn+Hx1xIDLNvnqPY2Kz8wgVkPRIOnNpz2iiuPZRPqi1o9MUPD9WXsXWrjMixzdFkgAFZiRp81wzJgDPzvef2CUv7n/CxJPRmzljdHyjEsAXsF32s2IUz60n1ApSC8uKOjy3wi70Mf4/dMOxIAjtOUIf4zX7OvbBYysQ7zx26HlDj8/HJHA3AigLhmvq2MlKFZfvm5jlO6/Pu+3L10kgkgQoMCNJ'@; put 'm+e6LwK2A9BfvvKs9j1eSW/mfdHjm+eLQKhYDD0mv9RDafBxJAjEqee7V2OS33r3Izl4+LjxvEfivDwHCcyGAAXmbKhxn4gSSNKex888/oi89MyTJiaN3syI4ufJSIAEokwAHnJ4Lk9WnZNf/O6A1De1slVjlG3C09+bAAXmvRnxHR4gcMub+bJ6M9esNBmTiJPjRgIkQAJBJoBYSzQseOeDQ/Le'@; put 'p0dM3HCQ58u5BYcABWZwbOnETJAosV+9mS+rNzM9LdVkCHOp0gnTc5Ik4BQBeCzhuTx19oL88u0D2g2rmV5Lp64A/0+WAtP/NnRuBt/TAPdCzTR//YX9pkg7ACBbmBsJkAAJ+J0AYn7htUSs5e8/+FQ+OHSUXku/G9XR8VNgOmr4IEwbbfEe2/GQaTe5RLuYIDbTZusGYX6cAwmQgFsEUOYKW3nl'@; put 'OVN+CAXRr2vhfG4k4EcCFJh+tBrHfIsAfu0v0q4mLz3zhOx5eKvWHIw3QvPWG/iABEiABDxOwHotO7Rb1VvvHpRPj37FougetxmHd28CFJj3ZsR3+IAAuqOsLyuRHzz/tKxZWcwkIB/YjEMkARIQ0zN+SkN8Dh8/KW+/94kWT+8yxfbJhgT8ToAC0+8W5PhvI4CSRvse3SEvPLVHcrRnM5bNmQR0'@; put 'GyI+IQES8AABJPBgSbymrkF+/c4HmsxT/a2uUR4YJodAArMmQIE5a3Tc0asE0KUlf1GOvPLsXtm1daO27IvjsrlXjcVxkYBjBOxy+ODQsBz4+HN5V2+DwyOOUeB0XSBAgemClR2d481l81J57bl9Ztkcnkxmmzt6MXDaJOABAjHacx71e8urzstbfzoodY0tTOLxgF04hPAQoMAMD1ce1UME4uNi'@; put 'Zc/OrfLi048Lss0hMq9fv+6hEXIoJEACQSZgl8PrGpvlt9rm8XjFGUHcJTcSCDIBCswgW5dzu0UAy1JZGWny3N5HNUbzYUlNSWZ85i06fEACJBAOAnY5HJ14Dnzyuda0PCb9g0PhOBWPSQKeI0CB6TmTcEDhJICWkwVL8403c+dDG0xB46mpKSYChRM6j00CDhJAsXQkGR4trzQF0xu1puUNDdPh'@; put 'RgKuEKDAdMXSnOdtBBCfuVbLGaF+5vqyUtOSDUKTGwmQAAnMhYAtln7uUo387sBHcqb6isZdMiRnLky5rz8JUGD6024c9TwRiNEyIfBkPv/UY1JaVGg6ATERaJ7g8jAk4BAB2zsc3Xf++OEh+fzLCpmY5I9Why4BTvUOAhSYdwDhUzcJoH7mozu2yLNP7pZlSxazULublwFnTQL3TcAm8KALz4ef'@; put 'HZWDh4/LgJYg4kYCrhOgwHT9CuD8byOQnpoiTzyyTZ7es1Py83JNSRGUFeFGAiRAAqEEUG8XZYcGNGnnM+3CgySe9s4exnOHQuJjpwlQYDptfk5+OgI243yfdgTau3uH5GZnUWhOB4qvkYCDBGxm+MjomCbwnJZ3PzosjS3trGfp4LXAKX83AQrM7+bD/3WYAL5IcjLTZa8KTXg1F+VkU2g6fD1w'@; put '6m4TwN8DeCzHxyfkq8pzRljW1DfJ16yp6/aFwdnflQAF5l3R8D9I4CYBKzSf3L1dnty1nUKTFwYJOETACstJrTJx6swF+ZN6LC9cqWOzBoeuAU51dgQoMGfHjXs5SOAboQmP5lYjNNERiDGaDl4MnHLgCYQKy9NnqzXG8oig9BBLDgXe9JzgPBGgwJwnkDyMOwTwxZOVniZ7VGTCo7lEk4HQ55x1'@; put 'NN25BjjT4BLA5xtF0ie0SDo8lhCW5y9fpbAMrsk5szARoMAME1ge1g0CyDrftW2jaT9Z8GC+ILOUnYHcsD1nGSwCNit8VJN3KtRj+f6nX0h1TS2FZbDMzNlEkAAFZgRh81TBJADvJepoPrxlvXo0d8jKFQWCbh4o2H7jxo1gTpqzIoGAELB1LIeGRzR556wc/Oy4XKptYIxlQOzLaUSPAAVm9Njz'@; put 'zAEkgM5A68qKZf+eXeY+KTHRCE3EanIjARLwDgF03sGtp7dPjlWckU+OnJD6plaWG/KOiTgSnxOgwPS5ATl8bxJY8MADUlTwoInR3L5prWRlZhiPCNtQetNeHJUbBBBfidUF3Le0dcjhExV6OykdXb1cbXDjEuAsI0iAAjOCsHkq9wjgiyw3O1N2b98sj27fIgUPLjYQIDSxtM6NBEgg/AQQXwlh'@; put 'iZWEK3UNcuhouRyvqJL+QbZ0DD99nsFVAhSYrlqe8444gcSEeNm8dpU8pW0oVxYVSEJCApfPI24FntAlAnYZfHhkVM5drJFPvvhSKs9fMhniLnHgXEkgGgQoMKNBned0mkBsbIwKzEL1am6SzevKJCcr03gz6dV0+rLg5OeJAFYNICzhtezo6jaeyiNfnpbahmbGV84TYx6GBGZCgAJzJpT4HhII'@; put 'A4Hv6Rdhji6fb9u4VnY+tEGKC5dKXFwcvZphYM1DBp8AssEhLPFDrb6pRfuEV8mhY+W6DD7EcJTgm58z9CABCkwPGoVDco9AnBZ2XlVcaEodbVm/2ng1QQFdgljqyL3rgTOeGYHQpJ3+gSE5e/GyHD5+UjvuXJUx7RnOjQRIIHoEKDCjx55nJoFvEcCyXmZ6qmzSWM1Htm6UUo3VTE5KMskJEJtM'@; put 'DPoWMr7gIAFbuxL9wesbW8wy+IlTZ6W9q4f1Kx28HjhlbxKgwPSmXTgqEpCFutyHrHMsoW9ZXybLtFMQPJ0QmsiGpdjkReISAfz4whI4tq6eXjl97qIcO1kl1VdqNWlnyiUUnCsJ+IIABaYvzMRBuk4gThODykqKZOvGNbJpzSrJy82+FW/GIu6uXx3Bnb8VlVgKHxwalktX61VUVkrV+cvSp7GV'@; put 'DB8Jru05M/8ToMD0vw05A4cI4Is2JSnRiE0UcF+7qtjEa2LJEMkNFJsOXQwBnarNAsc1PTI6KnWNrVJedU4qqi5Ia2cXe4MH1O6cVvAIUGAGz6ackSME4N1JS0mSNSuLZeuGNbK6dIVkZ6aLFZvw7nAZ3ZGLwefTDBWV45qc09jSJhVnL0jFmQuaEd4mU/rjiRsJkIC/CFBg+steHC0JTEsAYjM9'@; put 'NUU9m8tNbc3VupyODkIxMTEmZpMJQtNi44tRJGCXv3E/Nj4uTS3tJq7y1NlqqW1slskpisoomoenJoE5E6DAnDNCHoAEvEXALqOXriiQDWWluoxeIvmLsiU+Pt7ErLH0kbfs5dJo4F3HDaJyeGREvZOtGk95SSovXDa1KykqXboaONegE6DADLqFOT/nCSTEx0nh0nxZp0JzfVmJLM3PkzT1dkKI'@; put 'MiPd+csjrABwjUFQIvsb8cEoen61vkmqLlySM9VXpLW9S65pVQRuJEACwSNAgRk8m3JGJHBXAviyz8vJMvU1N6wplZLCZZoklGG8mxAAuDF28674+B8zIGC9lLjH0nen1qa8VNtglr+v1DVKT28/WzbOgCPfQgJ+J0CB6XcLcvwkMAcCSYkJUrBksSYIFZlbgdbaRCwnPE4QmlZ0zuEU3DXgBEJj'@; put 'KXG99PYPmCSdcxdrtEZlndQ3t7KrTsCvAU6PBKYjQIE5HRW+RgIOEnhA4+Iy0lJl+bIlJlmoWL2bDy7OlXR9Dd4oKzjp4XTw4giZMq4FKyohKFGfsqW9Uy6rlxJFz6/WN0vfwCC9lCHM+JAEXCRAgemi1TlnEpgBAQjOLC17VKjdhFYVL5cVBUuN4ExNSZZY7SgUKjjxmFvwCCCG0opJ3CNmF4Ky'@; put 'raNLrmgsJQqfI+O7s7uPNViDZ37OiATmRIACc074uDMJuEMAghPicmn+IikuXGo8nVhSz8pIk8SEBJM0hLqbNkudNTj9dW1YMQkhCS8ltomJCeONhIfyakOz1NQ1mWzvnn71UKr3khsJkAAJ3I0ABebdyPB1EiCBexJAhnp2ZoYs1yx1LK0jnjMvN0sLwCdLgopOiBV4NyE6ITjp6bwn0oi84U4x'@; put 'ieeTk5MyNDyifb77pKm1QwVlk/FOtnV0y8jYOG0XEcvwJCQQHAIUmMGxJWdCAlEnAKGSlBhv2lcuW5JnBCc8nrlZmaY0UrK2uUQCEcSm9XZSeIbPbLCHFZM2dhK8xzW7e3h0zIjJ5rYOaWhuM4k5EJMoJfQ1vZPhMwqPTAKOEKDAdMTQnCYJRJNAfFysZKanaomkbI3jXCRL8nLU05ltWlumJCdJ'@; put 'ghaBh/DEFhrbCTGEzd6bJ/znNgJWROLeikg8BjN4JYdHRmVA4yY7u3tNMg4EZasKSTyHx/I642dv48knJEAC80OAAnN+OPIoJEAC90kAIigxId6URUJbS9wW6/I6vJ2LsrM03jNJ63PGSZwmFEE4WdEEAYobBJRdcg+qAMWc7YZwg9AbXrcicnxiUkbHxjRecsh4Jds6u6S9s0c6e3qlW+tODg6N'@; put 'sJ+3Bcl7EiCBiBCgwIwIZp6EBEjgfgjEag/1m+IzWT2faZKtxeCzNZkIZZTS01KMKE1U8QkBivei5zrEV6ggs0IU57VC1N7bsURSmIaODefHeO09/g83+xpex9gQu3rt2jX1RE7JmIpItFccGBzWWpOD0t7VLT19A0ZEwkMJEQmhGck5mQnwHxIgARKYhgAF5jRQ+BIJkIC3CSzU5XQkGOGGzPZU'@; put 'XWZPSU785rHGeiLeEyIV74EXFPvExcbIAwu0daF6RO1ysvUKWvEZej+dWMP/W0FoKVnxaAUi7u178H57g2DEkvS1qWvGo4je2xMqHkc1iQZdbxAXiWVrCEbcQzTi8Yi+Pqr/Pz4xZUSnPS/vSYAESMCrBCgwvWoZjosESGBeCCxcuMCIy9iYhcbTiXsIzjiNC41diNcW3hSqRqQmmQx4/D/EaXJS'@; put 'wm1jwGspKlzhKYQAvKFeRgjJGzf+T8Xh6E2hqGJxSOMecYNAnND3jmu5nyn1REJM4jY5NSVTt0TmlJb8YR3R20DzCQmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQ'@; put 'AAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfs'@; put 'wdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4i+ZHtw4AAADdSURBVAAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAF'@; put 'prfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8J/D97oVzdCcK8fgAAAABJRU5ErkJggg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=index.html; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5EYXRhIENvbnRyb2xsZXI8L3RpdGxlPgogICAgPCEtLSA8YmFzZSBocmVmPSIvIj4gLS0+CgogICAgPCEtLSBtZXRhIHRhZ3MgLS0+CiAgICA8bWV0YSBuYW1lPSJk'@; put 'ZXNjcmlwdGlvbiIgY29udGVudD0iQ2FwdHVyZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSIvPgogICAgPG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IkRhdGEgQ29udHJvbGxlciBmb3IgU0FTwq4iLz4KICAgIDxtZXRhIGl0ZW1wcm9wPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQ2FwdHVy'@; put 'ZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSIvPgogICAgPG1ldGEgaXRlbXByb3A9ImltYWdlIiBjb250ZW50PSJodHRwczovL2RvY3MuZGF0YWNvbnRyb2xsZXIuaW8vaW1nL2RjX2JnX0Fzc2V0LTVAMngucG5nIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwOi8v'@; put 'ZGVtby5kYXRhY29udHJvbGxlci5pbyIvPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiLz4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iRGF0YSBDb250cm9sbGVyIGZvciBTQVPCriIvPgogICAgPG1ldGEgcHJvcGVydHk9Im9n'@; put 'OmRlc2NyaXB0aW9uIiBjb250ZW50PSJDYXB0dXJlLCBSZXZpZXcsIGFuZCBBcHByb3ZlIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pby9pbWcvZGNfYmdfQXNzZXQtNUAyeC5wbmciLz4KCiAgICA8bWV0YSBu'@; put 'YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIvPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhy'@; put 'ZWY9ImltYWdlcy9mYXZpY29uLmljbyIvPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzLjU5ZGMxMTk0N2I4MzE0M2MuY3NzIj48L2hlYWQ+CgogIDwhLS0KICAgICMjIFNBU0pTIEFkYXB0ZXIgY29uZmlnIGRldGFpbHMgIyMKCiAgICAqIGFwcExvYzogVGhlIGxvY2F0'@; put 'aW9uIGluIG1ldGFkYXRhIG9yIFNBUyBkcml2ZSB3aGVyZSBEQyB3aWxsIGJlIGRlcGxveWVkCiAgICAqIHNlcnZlclR5cGU6IGVpdGhlciBTQVM5LCBTQVNWSVlBIG9yIFNBU0pTCiAgICAqIGxvZ2luTWVjaGFuaXNtOiBVc2UgJ0RlZmF1bHQnIGZvciByZWd1bGFyICh1c2VyL3Bhc3MpIGxv'@; put 'Z2lucywgb3IgJ1JlZGlyZWN0ZWQnIGZvciAyRkEvU1NPCiAgICAqIGRlYnVnOiBXaGV0aGVyIHRvIGVuYWJsZSBkZWJ1ZyBvbiBzdGFydHVwCgogICAgIyMgVml5YSBvbmx5IHNldHRpbmdzICMjCiAgICAqIGFkbWluR3JvdXA6IFRoaXMgZ3JvdXAgd2lsbCBoYXZlIHVucmVzdHJpY3RlZCBh'@; put 'Y2Nlc3MgKFZpeWEgT25seSkKICAgICogZGNQYXRoOiBUaGUgcGh5c2ljYWwgbG9jYXRpb24gaW4gd2hpY2ggdG8gZGVwbG95IHRoZSBzdGFnaW5nIGFyZWEgKFZpeWEgb25seSkKICAgICogdXNlQ29tcHV0ZUFwaTogQ29ubmVjdGlvbiBtZXRob2QgKFZpeWEgb25seSkKICAgICogY29udGV4'@; put 'dE5hbWU6IENvbXB1dGUgQ29udGV4dCAoVml5YSBvbmx5KQoKICAtLT4KCiAgPHNhc2pzIHNlcnZlcnVybD0iIiBhcHBsb2M9Ii9QdWJsaWMvYXBwL2RjIiBzZXJ2ZXJ0eXBlPSJTQVNKUyIgbG9naW5tZWNoYW5pc209IkRlZmF1bHQiIGRlYnVnPSJmYWxzZSIgdXNlY29tcHV0ZWFwaT0idHJ1'@; put 'ZSIgY29udGV4dG5hbWU9IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIgYWRtaW5ncm91cD0ic2VjLXNhczktcHJkLWludC1zYXNwbGF0Zm9ybS0zMDAxMTRzYXNqcyIgZGNwYXRoPSIvdG1wL2RjIiBob3RsaWNlbmNla2V5PSJub24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlv'@; put 'biI+CiAgPC9zYXNqcz4KCiAgPGJvZHkgY2xhc3M9Im0tMCI+CiAgICA8bXktYXBwPjwvbXktYXBwPgogIDxzY3JpcHQgc3JjPSJydW50aW1lLmMzMTZhYzUxZDU5NjY3MTMuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9InBvbHlmaWxscy44N2RiYmQzZmFhYmVkNTEz'@; put 'LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJzY3JpcHRzLjg5YTg5NDdhMDI2NmM0N2EuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJtYWluLjJjMWRkNWI0YTg5NjI4MTIuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PC9ib2R5Pgo8L2h0bWw+Cg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=main.2c1dd5b4a8962812.js; filename filecode temp lrecl=11451676; data _null_; file filecode; put 'KHNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W10pLnB1c2goW1sxNzldLHs3NDA5MjpmdW5jdGlvbihhdCl7YXQuZXhwb3J0cz1mdW5jdGlvbihJZSl7dmFyIEY9e307ZnVuY3Rpb24gYWUoeCl7aWYoRlt4XSlyZXR1cm4g'@; put 'Rlt4XS5leHBvcnRzO3ZhciBtPUZbeF09e2k6eCxsOiExLGV4cG9ydHM6e319O3JldHVybiBJZVt4XS5jYWxsKG0uZXhwb3J0cyxtLG0uZXhwb3J0cyxhZSksbS5sPSEwLG0uZXhwb3J0c31yZXR1cm4gYWUubT1JZSxhZS5jPUYsYWUuZD1mdW5jdGlvbih4LG0sbGUpe2FlLm8oeCxtKXx8T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KHgsbSx7ZW51bWVyYWJsZTohMCxnZXQ6bGV9KX0sYWUucj1mdW5jdGlvbih4KXt0eXBlb2YgU3ltYm9sPCJ1IiYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoeCxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSks'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KHgsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxhZS50PWZ1bmN0aW9uKHgsbSl7aWYoMSZtJiYoeD1hZSh4KSksOCZtfHw0Jm0mJiJvYmplY3QiPT10eXBlb2YgeCYmeCYmeC5fX2VzTW9kdWxlKXJldHVybiB4O3ZhciBsZT1PYmplY3QuY3JlYXRlKG51'@; put 'bGwpO2lmKGFlLnIobGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsZSwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6eH0pLDImbSYmInN0cmluZyIhPXR5cGVvZiB4KWZvcih2YXIgTSBpbiB4KWFlLmQobGUsTSxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0uYmluZChudWxsLE0pKTty'@; put 'ZXR1cm4gbGV9LGFlLm49ZnVuY3Rpb24oeCl7dmFyIG09eCYmeC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIHguZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4geH07cmV0dXJuIGFlLmQobSwiYSIsbSksbX0sYWUubz1mdW5jdGlvbih4LG0pe3JldHVybiBPYmplY3QucHJvdG90eXBl'@; put 'Lmhhc093blByb3BlcnR5LmNhbGwoeCxtKX0sYWUucD0iIixhZShhZS5zPSIuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyIpfSh7Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBpLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5k'@; put 'ICovZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxGLkNsYXJpdHlJY29uc0FwaT12b2lkIDA7dmFyIHg9YWUoCi8qISAuL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyICovCiIuL3Byb2pl'@; put 'Y3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLG09e30sbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBNKCl7fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTSwiaW5zdGFuY2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTS5zaW5nbGVJbnN0YW5jZXx8'@; put 'KE0uc2luZ2xlSW5zdGFuY2U9bmV3IE0pLE0uc2luZ2xlSW5zdGFuY2V9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksTS5wcm90b3R5cGUudmFsaWRhdGVOYW1lPWZ1bmN0aW9uKE8pe2lmKDA9PT1PLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlNoYXBlIG5hbWUgb3IgYWxpYXMg'@; put 'bXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmchIik7aWYoL1xzLy50ZXN0KE8pKXRocm93IG5ldyBFcnJvcigiU2hhcGUgbmFtZSBvciBhbGlhcyBtdXN0IG5vdCBjb250YWluIGFueSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMhIik7cmV0dXJuITB9LE0ucHJvdG90eXBlLm5vcm1hbGl6ZVNoYXBl'@; put 'TmFtZT1mdW5jdGlvbihPKXtyZXR1cm4gTy50b0xvd2VyQ2FzZSgpfSxNLnByb3RvdHlwZS5zZXRJY29uVGVtcGxhdGU9ZnVuY3Rpb24oTyxSKXt2YXIgej1SLnRyaW0oKTt0aGlzLnZhbGlkYXRlTmFtZShPKSYmKE89dGhpcy5ub3JtYWxpemVTaGFwZU5hbWUoTyksbVtPXSYmZGVsZXRlIG1b'@; put 'T10sbVtPXT16LHguU2hhcGVUZW1wbGF0ZU9ic2VydmVyLmluc3RhbmNlLmVtaXRDaGFuZ2VzKE8seikpfSxNLnByb3RvdHlwZS5zZXRJY29uQWxpYXNlcz1mdW5jdGlvbihPLFIseil7Zm9yKHZhciBLPTAsST16O0s8SS5sZW5ndGg7SysrKXt2YXIgaz1JW0tdO3RoaXMudmFsaWRhdGVOYW1l'@; put 'KGspJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoTyxrLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT1tSXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX19LE0ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXtpZigib2JqZWN0IiE9dHlwZW9mIE8pdGhyb3cgbmV3IEVycm9yKCdUaGUg'@; put 'YXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxuICAgICAgICAgICAgICAgIHsgInNoYXBlLW5hbWUiOiAic2hhcGUtdGVtcGxhdGUiIH0nKTtmb3IodmFyIFIgaW4gTylPLmhhc093blByb3BlcnR5KFIpJiZ0aGlzLnNl'@; put 'dEljb25UZW1wbGF0ZShSLE9bUl0pfSxNLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oTyl7cmV0dXJuISFtW3RoaXMubm9ybWFsaXplU2hhcGVOYW1lKE8pXX0sTS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKE8pe2lmKCFPKXJldHVybiBtO2lmKCJzdHJpbmciIT10eXBlb2YgTyl0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJPbmx5IHN0cmluZyBhcmd1bWVudCBpcyBhbGxvd2VkIGluIHRoaXMgbWV0aG9kLiIpO3JldHVybiBtW3RoaXMubm9ybWFsaXplU2hhcGVOYW1lKE8pXX0sTS5wcm90b3R5cGUuYWxpYXM9ZnVuY3Rpb24oTyl7aWYoIm9iamVjdCIhPXR5cGVvZiBPKXRocm93IG5ldyBFcnJv'@; put 'cignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBmb2xsb3dpbmcgcGF0dGVybjpcbiAgICAgICAgICAgICAgICB7ICJzaGFwZS1uYW1lIjogWyJhbGlhcy1uYW1lIiwgLi4uXSB9Jyk7Zm9yKHZhciBSIGluIE8paWYoTy5oYXNPd25Qcm9wZXJ0'@; put 'eShSKSl7aWYoIW0uaGFzT3duUHJvcGVydHkoUikpdGhyb3cgbmV3IEVycm9yKCdBbiBpY29uICInK1IrIlwiIHlvdSBhcmUgdHJ5aW5nIHRvIHNldCBhbGlhc2VzIHRvIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIENsYXJpdHkgSWNvbnMgc2V0cyEiKTt0aGlzLnNldEljb25BbGlhc2VzKG0sUixP'@; put 'W1JdKX19LE19KCk7Ri5DbGFyaXR5SWNvbnNBcGk9bGV9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2pl'@; put 'Y3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihJZSxGLGFlKXsidXNlIHN0'@; put 'cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEYuQ2xhcml0eUljb25FbGVtZW50PXZvaWQgMDt2YXIgeD1hZSgKLyohIC4vY2xyLWljb25zLWFwaSAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLG09YWUoCi8q'@; put 'ISAuL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLGxlPTAsTT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7TS5jbGFzc05hbWU9ImlzLW9mZi1zY3JlZW4iO3ZhciBP'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIEhUTUxFbGVtZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gUigpe3ZhciB6PU8uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB6LmNsckljb25VbmlxSWQ9Il9jbHJfaWNvbl8iK2xlLGxlKyssen0ib2JqZWN0Ij09dHlwZW9mIFJlZmxl'@; put 'Y3QmJihPPWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KEhUTUxFbGVtZW50LGFyZ3VtZW50cyx0aGlzLmNvbnN0cnVjdG9yKX0pLEYuQ2xhcml0eUljb25FbGVtZW50PVIsUi5vYnNlcnZlZEF0dHJpYnV0ZXM9WyJzaGFwZSIsInNpemUiLCJ0aXRsZSJdLChSLnByb3RvdHlw'@; put 'ZT1PYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpSfX0pKS5jb25zdHJ1Y3Rvcj1SLFIucHJvdG90eXBlLl9hcHBlbmRDdXN0b21UaXRsZT1mdW5jdGlvbigpe3ZhciB6PU0uY2xvbmVOb2Rl'@; put 'KCExKTt6LmlkPXRoaXMuY2xySWNvblVuaXFJZCx6LnRleHRDb250ZW50PXRoaXMuY3VycmVudFRpdGxlQXR0clZhbCx0aGlzLmFwcGVuZENoaWxkKHopfSxSLnByb3RvdHlwZS5fc2V0SWNvblNpemU9ZnVuY3Rpb24oeil7IU51bWJlcih6KXx8TnVtYmVyKHopPDA/KHRoaXMuc3R5bGUud2lk'@; put 'dGg9bnVsbCx0aGlzLnN0eWxlLmhlaWdodD1udWxsKToodGhpcy5zdHlsZS53aWR0aD16KyJweCIsdGhpcy5zdHlsZS5oZWlnaHQ9eisicHgiKX0sUi5wcm90b3R5cGUuX25vcm1hbGl6ZVNoYXBlPWZ1bmN0aW9uKHope3JldHVybiB6LnNwbGl0KC9ccy8pWzBdLnRvTG93ZXJDYXNlKCl9LFIu'@; put 'cHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpKXt2YXIgSz10aGlzLmdldEF0dHJpYnV0ZSgi'@; put 'c2l6ZSIpO3RoaXMuY3VycmVudFNpemVBdHRyVmFsIT09SyYmKHRoaXMuY3VycmVudFNpemVBdHRyVmFsPUssdGhpcy5fc2V0SWNvblNpemUoSykpfWlmKHRoaXMuaGFzQXR0cmlidXRlKCJzaGFwZSIpKXt2YXIgST10aGlzLl9ub3JtYWxpemVTaGFwZSh0aGlzLmdldEF0dHJpYnV0ZSgic2hh'@; put 'cGUiKSk7aWYodGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbj1tLlNoYXBlVGVtcGxhdGVPYnNlcnZlci5pbnN0YW5jZS5zdWJzY3JpYmVUbyhJLGZ1bmN0aW9uKGope3ouX2luamVjdFRlbXBsYXRlKGopfSksdGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsPUksIXguQ2xhcml0eUljb25z'@; put 'QXBpLmluc3RhbmNlLmhhcyh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpKXJldHVybiB2b2lkIHRoaXMuX2luamVjdEVycm9yVGVtcGxhdGUoKTt2YXIgaz14LkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5nZXQodGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKTtpZihrPT09dGhpcy5jdXJyZW50'@; put 'U2hhcGVUZW1wbGF0ZSlyZXR1cm47dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZT1rfWlmKHRoaXMuaGFzQXR0cmlidXRlKCJ0aXRsZSIpKXt2YXIgRT10aGlzLmdldEF0dHJpYnV0ZSgidGl0bGUiKTtpZih0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwhPT1FJiYodGhpcy5jdXJyZW50VGl0bGVB'@; put 'dHRyVmFsPUUpLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpcmV0dXJufXRoaXMuX2luamVjdFRlbXBsYXRlKCl9LFIucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbih6LEssSSl7dmFyIGs9dGhpcztpZigic2l6ZSI9PT16JiZ0aGlzLl9zZXRJY29uU2l6ZShJ'@; put 'KSwic2hhcGUiPT09eil7aWYodGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsPXRoaXMuX25vcm1hbGl6ZVNoYXBlKEkpLHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24mJih0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uKCksdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlv'@; put 'bj1tLlNoYXBlVGVtcGxhdGVPYnNlcnZlci5pbnN0YW5jZS5zdWJzY3JpYmVUbyh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwsZnVuY3Rpb24oRSl7ay5faW5qZWN0VGVtcGxhdGUoRSl9KSksIXguQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmhhcyh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwp'@; put 'KXJldHVybiB2b2lkIHRoaXMuX2luamVjdEVycm9yVGVtcGxhdGUoKTt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPXguQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfSJ0aXRsZSI9PT16JiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPUks'@; put 'IXRoaXMuY3VycmVudFNoYXBlQXR0clZhbCl8fHRoaXMuX2luamVjdFRlbXBsYXRlKCl9LFIucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7dGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpfSxS'@; put 'LnByb3RvdHlwZS5fc2V0QXJpYUxhYmVsbGVkQnk9ZnVuY3Rpb24oKXt2YXIgej10aGlzLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IiksST10aGlzLnF1ZXJ5U2VsZWN0b3IoInN2ZyIpfHx0aGlzO3o/eiYmei5pbmRleE9mKHRoaXMuY2xySWNvblVuaXFJZCk8MCYmSS5zZXRBdHRy'@; put 'aWJ1dGUoImFyaWEtbGFiZWxsZWRieSIseisiICIrdGhpcy5jbHJJY29uVW5pcUlkKTpJLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5Iix0aGlzLmNsckljb25VbmlxSWQpfSxSLnByb3RvdHlwZS5faW5qZWN0VGVtcGxhdGU9ZnVuY3Rpb24oeil7eiYmeiE9PXRoaXMuY3VycmVudFNo'@; put 'YXBlVGVtcGxhdGUmJih0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPXopLHRoaXMuaW5uZXJIVE1MPXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUsdGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsJiYodGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkoKSx0aGlzLl9hcHBlbmRDdXN0b21UaXRsZSgpKX0s'@; put 'Ui5wcm90b3R5cGUuX2luamVjdEVycm9yVGVtcGxhdGU9ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPXguQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCgiZXJyb3IiKSx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRz'@; put 'IjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8q'@; put 'ISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRi5DbGFyaXR5SWNvbnM9dm9pZCAwO3ZhciB4PWFlKAovKiEgLi9jbHItaWNvbnMtYXBpICovCiIu'@; put 'L3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBpLnRzIiksbT1hZSgKLyohIC4vY2xyLWljb25zLWVsZW1lbnQgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1lbGVtZW50LnRzIiksbGU9YWUoCi8qISAuL3NoYXBlcy9jb3JlLXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9p'@; put 'Y29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIiksTT14LkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZTtGLkNsYXJpdHlJY29ucz1NLE0uYWRkKGxlLkNvcmVTaGFwZXMpLHR5cGVvZiB3aW5kb3c8InUiJiYod2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKXx8KHdpbmRv'@; put 'dy5DbGFyaXR5SWNvbnM9TSksY3VzdG9tRWxlbWVudHMuZ2V0KCJjbHItaWNvbiIpfHxjdXN0b21FbGVtZW50cy5kZWZpbmUoImNsci1pY29uIixtLkNsYXJpdHlJY29uRWxlbWVudCkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIjoKLyohKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRi5Db3JlU2hhcGVzPUYuQ2xyU2hhcGVBcnJvdz1GLkNs'@; put 'clNoYXBlU3RlcEZvcndhcmQyPUYuQ2xyU2hhcGVFeWVIaWRlPUYuQ2xyU2hhcGVFeWU9Ri5DbHJTaGFwZUV2ZW50PUYuQ2xyU2hhcGVDYWxlbmRhcj1GLkNsclNoYXBlQW5nbGVEb3VibGU9Ri5DbHJTaGFwZVZpZXdDb2x1bW5zPUYuQ2xyU2hhcGVTZWFyY2g9Ri5DbHJTaGFwZVZtQnVnPUYu'@; put 'Q2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPUYuQ2xyU2hhcGVGaWx0ZXJHcmlkPUYuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPUYuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWw9Ri5DbHJTaGFwZUNsb3VkPUYuQ2xyU2hhcGVJbWFnZT1GLkNsclNoYXBlQmVsbD1GLkNsclNoYXBlRm9sZGVy'@; put 'T3Blbj1GLkNsclNoYXBlRm9sZGVyPUYuQ2xyU2hhcGVBbmdsZT1GLkNsclNoYXBlVXNlcj1GLkNsclNoYXBlQmFycz1GLkNsclNoYXBlSGVscEluZm89Ri5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD1GLkNsclNoYXBlRXJyb3JTdGFuZGFyZD1GLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPUYu'@; put 'Q2xyU2hhcGVJbmZvU3RhbmRhcmQ9Ri5DbHJTaGFwZUluZm9DaXJjbGU9Ri5DbHJTaGFwZUNoZWNrQ2lyY2xlPUYuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT1GLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT1GLkNsclNoYXBlVGltZXM9Ri5DbHJTaGFwZUNoZWNrPUYuQ2xyU2hhcGVD'@; put 'b2c9Ri5DbHJTaGFwZUhvbWU9Ri5DbHJTaGFwZVVua25vd25TdGF0dXM9dm9pZCAwO3ZhciB4PWFlKAovKiEgLi4vdXRpbHMvZGVzY3JpcHRvci1jb25maWcgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksbT1hZSgKLyohIC4uL3V0aWxzL3N2'@; put 'Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO0YuQ2xyU2hhcGVVbmtub3duU3RhdHVzPSgwLG0uY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4'@; put 'PSIxNy41OCIgY3k9IjI2LjIzIiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI0LjcsMTNhNS4xOCw1LjE4LDAsMCwwLTIuMTYtMy41Niw3LjI2LDcuMjYsMCwwLDAtNS43MS0xLjA5QTExLjM0'@; put 'LDExLjM0LDAsMCwwLDEyLDEwLjQ0LDEsMSwwLDEsMCwxMy4yNiwxMmE5LjMyLDkuMzIsMCwwLDEsMy45NC0xLjcyLDUuMjksNS4yOSwwLDAsMSw0LjE2Ljc0LDMuMjEsMy4yMSwwLDAsMSwxLjM1LDIuMTljLjMzLDIuNjktMy4xOSwzLjc1LTUuMzIsNC4xNGwtLjgyLjE1djQuMzZhMSwxLDAs'@; put 'MCwwLDIsMFYxOS4xN0MyNC42MSwxNy43OSwyNC44OCwxNC40MSwyNC43LDEzWiIvPicpLEYuQ2xyU2hhcGVIb21lPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuNzEsMTcuMjlsLTE1LTE1YTEsMSwwLDAs'@; put 'MC0xLjQxLDBsLTE1LDE1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTgsNC40MSwzMi4yOSwxOC43MWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMzJoLTVWMjJIMTNW'@; put 'MzJIOFYxOEw2LDIwVjMyYTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NmwtMi0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywxOWExLDEsMCwwLDEtLjcxLS4yOUwxOCw0'@; put 'LjQxLDMuNzEsMTguNzFhMSwxLDAsMCwxLTEuNDEtMS40MWwxNS0xNWExLDEsMCwwLDEsMS40MSwwbDE1LDE1QTEsMSwwLDAsMSwzMywxOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTgsNy43OSw2LDE5Ljgz'@; put 'VjMyYTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NloiLz4nKSxGLkNsclNoYXBlQ29nPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTguMSwxMWMtMy45LDAtNywzLjEtNyw3'@; put 'czMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdTMjIsMTEsMTguMSwxMXogTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMi44LDAsNSwyLjIsNSw1UzIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMiIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjYtMS41bDEuNC0yLjZjMC4zLTAuNiwwLjItMS40LTAuMy0xLjlsLTIuNC0yLjRjLTAuNS0wLjUtMS4zLTAuNi0xLjktMC4zbC0yLjYsMS40bC0xLjUtMC42bC0wLjktMi44QzIxLDIuNSwyMC40LDIsMTkuNywyaC0zLjRj'@; put 'LTAuNywwLTEuMywwLjUtMS40LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwx'@; put 'NS42LDIsMTYuM3YzLjRjMCwwLjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4x'@; put 'aDMuNGMwLjcsMCwxLjMtMC41LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwx'@; put 'NS42LDMzLjUsMTQuOSwzMi44LDE0Ljd6IE0zMiwxOS40bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0x'@; put 'LjEtMy42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmww'@; put 'LjMtMC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNUwyMSw3LjdjMC43LDAuMiwxLjQsMC41LDIuMSwwLjlsMC41LDAuM2wzLjMtMS44bDIsMmwtMS44LDMuM2wwLjMsMC41YzAuNCwwLjcsMC43'@; put 'LDEuNCwwLjksMi4xbDAuMSwwLjVsMy42LDEuMVYxOS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjEsMThjMCwzLjksMy4xLDcsNyw3YzMuOSwwLDctMy4xLDctN3Mt'@; put 'My4xLTctNy03QzE0LjIsMTEsMTEuMSwxNC4xLDExLjEsMTh6IE0yMy4xLDE4YzAsMi44LTIuMiw1LTUsNWMtMi44LDAtNS0yLjItNS01czIuMi01LDUtNUMyMC45LDEzLDIzLjEsMTUuMiwyMy4xLDE4eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjEtMC4zYy0wLjgsMC0xLjYtMC4yLTIuNC0wLjRjMC4zLDAuNiwwLjYsMS4zLDAuOCwxLjlsMC4xLDAuNWwzLjYsMS4xdjIuOGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwx'@; put 'LjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEu'@; put 'OC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAu'@; put 'MkwxNi42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS4zLDAuNSwxLjksMC44Yy0wLjMtMC44LTAuNC0xLjYtMC40LTIuNWwtMC40LTAuMmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4z'@; put 'LTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFs'@; put 'MC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwy'@; put 'LjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy43LDE1LjRoLTUuM3YwLjFsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwt'@; put 'MC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAu'@; put 'Mi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy40bDEuNC0yLjNsLTAuNi0yQzIxLDIuNCwyMC40LDIsMTkuNywyaC0zLjRjLTAuNywwLTEuMywwLjUt'@; put 'MS40LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42LDIsMTYuM3YzLjRj'@; put 'MCwwLjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMuNGMwLjcsMCwxLjMt'@; put 'MC41LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNiwzMy45LDE1LjcsMzMu'@; put 'NywxNS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTguMSwyM2MtMi44LDAtNS0yLjItNS01czIuMi01LDUtNWMwLjIsMCwwLjUsMCwwLjcsMC4xYy0wLjItMC42LTAu'@; put 'My0xLjMtMC4yLTJoLTAuNWMtMy45LDAtNywzLjEtNyw3YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdjMC0wLjktMC4yLTEuOC0wLjUtMi42aC0yLjJjMC41LDAuOCwwLjcsMS42LDAuNywyLjVDMjMuMSwyMC44LDIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAu'@; put 'NSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNTcs'@; put 'MTUuNzJsLTMuMzUtMWExMS42NSwxMS42NSwwLDAsMC0uOTUtMi4zM2wxLjY0LTMuMDdhLjYxLjYxLDAsMCwwLS4xMS0uNzJMMjcuNDEsNi4yYS42MS42MSwwLDAsMC0uNzItLjExTDIzLjY0LDcuNzJhMTEuNjIsMTEuNjIsMCwwLDAtMi4zNi0xbC0xLTMuMzFBLjYxLjYxLDAsMCwwLDE5LjY5'@; put 'LDNIMTYuMzFhLjYxLjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEs'@; put 'MCwwLDAtLjQzLjU4djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0'@; put 'bDEsMy4zN2EuNjEuNjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYz'@; put 'LDExLjYzLDAsMCwwLC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaTTE4LDIzLjVBNS41LDUuNSwwLDEsMSwyMy41LDE4LDUuNSw1LjUsMCwwLDEsMTgsMjMuNVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTIuMTIsMTIuMTIsMCwwLDAtLjQ3LTEuMzIsNy40OSw3LjQ5LDAsMCwxLTYuMTQtNi4xNiwxMS44MiwxMS44MiwwLDAsMC0xLjMzLS40OGwtMS0zLjMxQS42'@; put 'MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3'@; put 'bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDEx'@; put 'LjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcy'@; put 'bC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMi41NywxNS43MiwzMS41LDE1LjRIMjIuODVBNS41LDUuNSwwLDEsMSwxOCwxMi41YTUuNTMsNS41MywwLDAsMSwuNjUsMEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwyLjA5LTMuNjItLjg2LTIuODNBLjYxLjYxLDAsMCwwLDE5LjY5LDNIMTYuMzFh'@; put 'LjYxLjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCwwLDAtLjQz'@; put 'LjU4djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEsMy4zN2Eu'@; put 'NjEuNjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDExLjYzLDAs'@; put 'MCwwLC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVy'@; put 'dCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLEYuQ2xyU2hhcGVDaGVjaz0oMCxtLmNsckljb25TVkcpKCc8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTEzLjcyLDI3LjY5LDMuMjksMTcuMjdhMSwxLDAsMCwxLDEuNDEtMS40MWw5LDlMMzEuMjksNy4yOWExLDEsMCwwLDEsMS40MSwxLjQxWiIvPicpLEYuQ2xyU2hhcGVUaW1lcz0oMCxtLmNsckljb25TVkcp'@; put 'KCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LjQxLDE4bDguMjktOC4yOWExLDEsMCwwLDAtMS40MS0xLjQxTDE4LDE2LjU5LDkuNzEsOC4yOUExLDEsMCwwLDAsOC4yOSw5LjcxTDE2LjU5LDE4LDguMjksMjYuMjlhMSwxLDAsMSwwLDEu'@; put 'NDEsMS40MUwxOCwxOS40MWw4LjI5LDguMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz4nKSxGLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIxLjMyYTEu'@; put 'MywxLjMsMCwwLDAsMS4zLTEuM1YxNGExLjMsMS4zLDAsMSwwLTIuNiwwdjZBMS4zLDEuMywwLDAsMCwxOCwyMS4zMloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMTcuOTUiIGN5PSIyNC4yNyIgcj0i'@; put 'MS41Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0'@; put 'LTQuNDNabS0xLjc4LDEuOTRhMSwxLDAsMCwxLS44Ni40OUg4LjIxYTEsMSwwLDAsMS0uODgtMS40OEwxNy4wNyw4LjU1YTEsMSwwLDAsMSwxLjc2LDBsOS43NCwxNy45NEExLDEsMCwwLDEsMjguNTUsMjcuNDhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjMzLDI1LjU0LDIwLjU5LDcuNmEzLDMsMCwwLDAtNS4yNywwTDUuNTcsMjUuNTRBMywzLDAsMCwwLDguMjEsMzBIMjcuNjlhMywzLDAsMCwwLDIuNjQtNC40M1pNMTYuNDYsMTIuNzRhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40'@; put 'OSwwLDEsMS0zLDBaTTE4LDI2LjI1YTEuNzIsMS43MiwwLDEsMSwxLjcyLTEuNzJBMS43MiwxLjcyLDAsMCwxLDE4LDI2LjI1WiIvPicpLEYuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg'@; put 'ZD0iTTE4LDIwLjA3YTEuMywxLjMsMCwwLDEtMS4zLTEuM3YtNmExLjMsMS4zLDAsMSwxLDIuNiwwdjZBMS4zLDEuMywwLDAsMSwxOCwyMC4wN1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTcuOTUi'@; put 'IGN5PSIyMy4wMiIgcj0iMS41Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTEuNDksNmExLjQ5LDEuNDksMCwwLDEsMywwdjYuODlhMS40'@; put 'OSwxLjQ5LDAsMSwxLTMsMFpNMTgsMjUuNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNS41WiIvPicpLEYuQ2xyU2hhcGVDaGVja0NpcmNsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i'@; put 'TTE2LjM0LDIzLjc0bC01LTVhMSwxLDAsMCwxLDEuNDEtMS40MWwzLjU5LDMuNTksNi43OC02Ljc4YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDE4QTEyLDEyLDAsMSwx'@; put 'LDE4LDYsMTIsMTIsMCwwLDEsMzAsMThabS00Ljc3LTIuMTZhMS40LDEuNCwwLDAsMC0yLTJsLTYuNzcsNi43N0wxMywxNy4xNmExLjQsMS40LDAsMCwwLTIsMmw1LjQ1LDUuNDVaIi8+JyksRi5DbHJTaGFwZUluZm9DaXJjbGU9KDAsbS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgIGN4PSIxNy45MyIgY3k9IjExLjkiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAgZD0iTTIxLDIzSDE5VjE1SDE2YTEsMSwwLDAsMCwwLDJo'@; put 'MXY2SDE1YTEsMSwwLDEsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCww'@; put 'LDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMiw1LjE1YTIsMiwwLDEsMSwyLDJBMiwy'@; put 'LDAsMCwxLDE1LjksMTEuMTVaTTIzLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMSwxLDAtMmgyVjE3SDE2YTEsMSwwLDAsMSwwLTJoNHY4aDJBMSwxLDAsMCwxLDIzLDI0WiIvPicpLEYuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9KDAsbS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE3Ljk3IiBjeT0iMTAuNDUiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjEsMjVIMTlWMTQuMUgxNmExLDEsMCwwLDAsMCwy'@; put 'aDFWMjVIMTVhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwx'@; put 'NCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWm0tLjEsNS4yOGEyLDIsMCwxLDEt'@; put 'MiwyQTIsMiwwLDAsMSwxNy45LDcuMzhabTMuNiwyMS4yNWgtN2ExLjQsMS40LDAsMSwxLDAtMi44aDIuMXYtOS4ySDE1YTEuNCwxLjQsMCwxLDEsMC0yLjhoNC40djEyaDIuMWExLjQsMS40LDAsMSwxLDAsMi44WiIvPicpLEYuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQ9KDAsbS5jbHJJY29u'@; put 'U1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOCwxMi4xYTEsMSwwLDAsMC0xLjQxLDBMMTUuNDksMjMuMTVsLTYtNkExLDEsMCwwLDAsOCwxOC41M0wxNS40OSwyNiwyOCwxMy41MkExLDEsMCwwLDAsMjgsMTIuMVoiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOC40NSwxMi42MywxNS4zMSwyNS43Niw3LjU1LDE4YTEuNCwxLjQsMCwwLDEsMi0ybDUuNzgsNS43OEwyNi40NywxMC42NWEx'@; put 'LjQsMS40LDAsMSwxLDIsMloiLz4nKSxGLkNsclNoYXBlRXJyb3JTdGFuZGFyZD0oMCxtLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWk0xNi42LDguOGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI4LjZhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjguNloiLz4n'@; put 'KSxGLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPSgwLG0uY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxOCIgY3k9IjI2LjA2IiByPSIxLjMzIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMi42MWExLDEsMCwwLDEtMS0xdi0xMmExLDEsMCwxLDEsMiwwdjEyQTEsMSwwLDAsMSwxOCwyMi42MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIg'@; put 'ZD0iTTE1LjA2MjA3ODIsMS42ODExOTYgQzE1LjYyOTg4MTksMC42NDkyNjYzNTUgMTYuNzEwOTA5MSwwLjAxMDIyMTkzOTYgMTcuODg1LDAuMDEwMjIxOTM5NiBDMTkuMDU5MDkwOSwwLjAxMDIyMTkzOTYgMjAuMTQwMTE4MSwwLjY0OTI2NjM1NSAyMC43MDg2NDMzLDEuNjgyNTIxMjkgTDM0'@; put 'LjU5ODY0NCwyNy4yNDI1MjI1IEMzNS4xNDA3NzQ2LDI4LjI0MDEzOTcgMzUuMTE3NDM0NSwyOS40NDk1MzczIDM0LjUzNzIxNjEsMzAuNDI1NDk0MyBDMzMuOTU2OTk3NywzMS40MDE0NTE0IDMyLjkwNTY3MSwzMS45OTk2OTg0IDMxLjc3LDMyIEw0LjAyMjM5MzIzLDMxLjk5OTc0OTIgQzIu'@; put 'ODc0MDkwMDksMzIuMDI1NDY5OSAxLjc5OTAyODQzLDMxLjQzNzU3NTMgMS4yMDEwNjMzNSwzMC40NTY5MTI2IEMwLjYwMzA5ODI2NSwyOS40NzYyNDk5IDAuNTcyNzc3ODk5LDI4LjI1MTMxNzkgMS4xMjIwNzgxOCwyNy4yNDExOTYgTDE1LjA2MjA3ODIsMS42ODExOTYgWiBNMi44Nzg1MDc2'@; put 'NywyOC4xOTc3MjgyIEMyLjY3MDYwOTY2LDI4LjU4MDAzNzYgMi42ODIwOTc1LDI5LjA0NDE0MjMgMi45MDg2NTU3LDI5LjQxNTY5NzcgQzMuMTM1MjEzOSwyOS43ODcyNTMyIDMuNTQyNTM1NCwzMC4wMDk5OTU5IDQsMzAgTDMxLjc2OTczNDQsMzAgQzMyLjE5OTkxOTEsMjkuOTk5ODg1OCAz'@; put 'Mi41OTgyNDc4LDI5Ljc3MzIyMDggMzIuODE4MDgyMSwyOS40MDM0NDgyIEMzMy4wMzc5MTY0LDI5LjAzMzY3NTcgMzMuMDQ2NzU5NSwyOC41NzU0NTY3IDMyLjg0MTM1NjcsMjguMTk3NDc4NyBMMTguOTUzODczOSwyLjY0MjA4MTk1IEMxOC43Mzk0MjM2LDIuMjUyMzQ0MzYgMTguMzI5ODQx'@; put 'OSwyLjAxMDIyMTk0IDE3Ljg4NSwyLjAxMDIyMTk0IEMxNy40NDA2ODg5LDIuMDEwMjIxOTQgMTcuMDMxNTUzOCwyLjI1MTc2NjkyIDE2LjgxNjg5NDYsMi42NDA2ODc1MyBMMi44Nzg1MDc2NywyOC4xOTc3MjgyIFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuNiwyOS4yMSwyMC43MSwzLjY1YTMuMjIsMy4yMiwwLDAsMC01LjY2LDBMMS4xNywyOS4yMUEzLjIyLDMuMjIsMCwwLDAsNCwzNEgzMS43N2EzLjIyLDMuMjIsMCwwLDAsMi44My00Ljc1Wk0xNi42LDEwYTEuNCwxLjQsMCwwLDEsMi44LDB2'@; put 'MTJhMS40LDEuNCwwLDAsMS0yLjgsMFpNMTgsMjkuODVhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjkuODVaIi8+JyksRi5DbHJTaGFwZUhlbHBJbmZvPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4zOSwyNS40NWExLDEsMCwwLDAtMS4zOC4yOWMtMS40'@; put 'MSwyLjE2LTQsNC44MS02LjMxLDUuN3MtNC4xMi41Ny00Ljg0LDBjLS4zMS0uMjctMS4xMi0xLS40My0zLjQ5LjQ2LTEuNjYsMy4zMi05LjQ4LDQtMTEuMzhsLTIuMTguMjhjLS42OSwxLjg2LTMuMjksOC44NC0zLjc2LDEwLjU4LS42OCwyLjQ5LS4zNCw0LjMsMS4wOSw1LjU2QTUuNTksNS41'@; put 'OSwwLDAsMCwxNSwzNGE5LjUzLDkuNTMsMCwwLDAsMy40NS0uN2MyLjc5LTEuMDksNS43Mi00LjEyLDcuMjYtNi40N0ExLDEsMCwwLDAsMjUuMzksMjUuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS4z'@; put 'LDExYTQuNSw0LjUsMCwxLDAtNC41LTQuNUE0LjUsNC41LDAsMCwwLDE5LjMsMTFabTAtN2EyLjUsMi41LDAsMSwxLTIuNSwyLjVBMi41LDIuNSwwLDAsMSwxOS4zLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0xMS44MSwxNWMuMDYsMCw2LjI3LS44Miw3LjczLTEsLjY1LS4xLDEuMTQsMCwxLjMuMTVzLjIxLjgtLjA3LDEuNjhjLS42MSwxLjg2LTMuNjksMTEtNC41OSwxMy43MWE4LDgsMCwwLDAsMS4yOS0uMzgsNy4zMiw3LjMyLDAsMCwwLDEuMTUtLjZDMTkuODUsMjUsMjIuMTUsMTguMSwyMi42'@; put 'NywxNi41MnMuMzktMi43OC0uMy0zLjZhMy4xNiwzLjE2LDAsMCwwLTMuMDgtLjgzYy0xLjQzLjE1LTcuNDcuOTQtNy43MywxYTEsMSwwLDAsMCwuMjYsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjAu'@; put 'NzUiIGN5PSI2IiByPSI0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0Ljg0LDI2LjIzYTEsMSwwLDAsMC0xLjQuMjksMTYuNiwxNi42LDAsMCwxLTMuNTEsMy43N2MtLjMzLjI1LTEuNTYsMS4yLTIuMDgsMS0uMzYt'@; put 'LjExLS4xNS0uODItLjA4LTEuMTJsLjUzLTEuNTdjLjIyLS42NCw0LjA1LTEyLDQuNDctMTMuMy42Mi0xLjkuMzUtMy43Ny0yLjQ4LTMuMzItLjc3LjA4LTguNTgsMS4wOS04LjcyLDEuMWExLDEsMCwwLDAsLjEzLDJzMy0uMzksMy4zMy0uNDJhLjg4Ljg4LDAsMCwxLC44NS40NCwyLjQ3LDIu'@; put 'NDcsMCwwLDEtLjA3LDEuNzFjLS4yNiwxLTQuMzcsMTIuNTgtNC41LDEzLjI1YTIuNzgsMi43OCwwLDAsMCwxLjE4LDMsNSw1LDAsMCwwLDMuMDguODNoMGE4LjUzLDguNTMsMCwwLDAsMy4wOS0uNjJjMi40OS0xLDUuMDktMy42Niw2LjQ2LTUuNzVBMSwxLDAsMCwwLDI0Ljg0LDI2LjIzWiIg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlQmFycz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDI5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEs'@; put 'MCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTlINGExLDEsMCwwLDEsMC0ySDMyYTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMiw5SDRBMSwxLDAsMCwxLDQsN0gzMmExLDEsMCwwLDEsMCwyWiIvPicpLEYuQ2xyU2hhcGVVc2VyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwxLDAtNy03QTcsNywwLDAsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEt'@; put 'NSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5'@; put 'YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3'@; put 'YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMjAsMTQuNmE1LDUsMCwxLDEsMS4yNC04LjQybDEtMS43NkE3LDcsMCwxLDAsMTgs'@; put 'MTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgs'@; put 'MTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4x'@; put 'NiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNywwLDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3Wk0xOCw1YTUsNSwwLDEsMS01LDVBNSw1LDAsMCwxLDE4LDVaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWkt'@; put 'YmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQuNTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYx'@; put 'LDI0LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTAiIHI9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEs'@; put 'MjQuNTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLjE2LTUuNDdBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4x'@; put 'NFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41'@; put 'LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcs'@; put 'NywwLDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxGLkNsclNoYXBlQW5nbGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS41MiwyMi41'@; put 'MiwxOCwxMC42LDYuNDgsMjIuNTJhMS43LDEuNywwLDAsMCwyLjQ1LDIuMzZMMTgsMTUuNDlsOS4wOCw5LjM5YTEuNywxLjcsMCwwLDAsMi40NS0yLjM2WiIvPicpLEYuQ2xyU2hhcGVGb2xkZXI9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVptMCwyMEg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwy'@; put 'LjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIu'@; put 'NjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTFhNy41LDcuNSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41'@; put 'WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMCwxNS40VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4x'@; put 'MSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRl'@; put 'ZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVpNNiwxMVY3aDYuNDlsMi43Miw0'@; put 'WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDks'@; put 'NUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1p'@; put 'LWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjMuMTMsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMu'@; put 'MjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+'@; put 'JyksRi5DbHJTaGFwZUZvbGRlck9wZW49KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41Miwx'@; put 'LDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCww'@; put 'LDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45bDMuODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAs'@; put 'MCwxLTEuMjktMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45'@; put 'bDMuODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLS4zTDI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0aDkuNDJBMy42NywzLjY3LDAsMCwx'@; put 'LDE5LDEzLjU2YTMuNjMsMy42MywwLDAsMS0uMjYtLjU2SDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40Mkwx'@; put 'NC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xYTEuNjgsMS42OCwwLDAsMCwuMDctLjMyQTMuNjcsMy42NywwLDAsMSwzMy42OCwxNS40WiIvPlxuICAg'@; put 'ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0'@; put 'Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIu'@; put 'NTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMmEyLDIsMCwwLDAtMi0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1'@; put 'LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40'@; put 'SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwx'@; put 'OSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCww'@; put 'LDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhB'@; put 'MS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zNS4zMiwxMy43NEExLjcx'@; put 'LDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoOC41MmE3LjQ5LDcuNDksMCwwLDEtMS4zMS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEy'@; put 'LjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxGLkNsclNoYXBlQmVsbD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjUxLDI3Ljgz'@; put 'QTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNUExMC44MSwxMC44MSwwLDAsMCwxOS4yMSw0LjRWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYz'@; put 'LDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzLDEsMSwwLDAsMC0uMzQuNzV2MS4zNmExLDEsMCwwLDAsMSwxaDI3LjhhMSwxLDAsMCwwLDEtMVYyOC41OEExLDEsMCwwLDAsMzIuNTEsMjcuODNaTTUuMTMsMjguOTRhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0'@; put 'LjI0LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNWE4Ljc0LDguNzQsMCwxLDEsMTcuNDcsMHY0Ljk0YTE0LjI0LDE0LjI0LDAsMCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEt'@; put 'LWJhZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBk'@; put 'PSJNMzIuNTEsMjcuODNBMTQuNCwxNC40LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5LDcuNDQsNy40NCwwLDAsMS0yLjI0LS44NCw4Ljg5LDguODksMCwwLDEsLjQsMi42NHY0Ljk0YTE0LjI0LDE0LjI0'@; put 'LDAsMCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNINS4xM2ExNi4xNywxNi4xNywwLDAsMCwyLjQ0LTMsMTQuMjQsMTQuMjQsMCwwLDAsMS42NS01Ljg1VjE1LjE1QTguOCw4LjgsMCwwLDEsMTgsNi4zMWE4LjYxLDguNjEsMCwwLDEsNC43NiwxLjQ0QTcuNDksNy40OSww'@; put 'LDAsMSwyMi41LDZjMC0uMjEsMC0uNDIsMC0uNjNhMTAuNTgsMTAuNTgsMCwwLDAtMy4zMi0xVjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwx'@; put 'LTIuNDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjg1LDI4LjEzbC0uMzQtLjNBMTQuMzcsMTQuMzcsMCwwLDEsMzAsMjQuOWEx'@; put 'Mi42MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40'@; put 'LDAsMCwxLTIuNDcsMi45M2wtLjM0LjN2Mi44MkgzMi44NVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTUuMzIsMzJhMi42NSwyLjY1LDAsMCwwLDUuMjUsMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5QTcuNSw3LjUsMCwwLDEs'@; put 'MjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU3LDEwLjU3LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3'@; put 'LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEYuQ2xyU2hhcGVJbWFnZT0oMCxt'@; put 'LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsMzBWNkgzMlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNOC45MiwxNGEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjkyLDE0Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcuMzMsMTEsMS42LDEuNiwwLDAsMSw4LjkyLDkuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTIyLjc4LDE1LjM3bC01LjQsNS40LTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUtOC40NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxQTEsMSwwLDAsMCwyMi43OCwxNS4zN1oiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTMsMTFhMywzLDAsMSwwLTMsM0EzLDMsMCwwLDAsMTEuOTMsMTFabS00LjYsMGExLjYsMS42LDAsMSwxLDEuNiwxLjZBMS42LDEuNiwwLDAsMSw3LjMzLDExWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuMzgsMjAuNzdsLTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUt'@; put 'OC40NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxYTEsMSwwLDAsMC0xLjQxLDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYzMEg0VjZIMjIuNWE3LjQ5LDcuNDksMCww'@; put 'LDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgz'@; put 'MmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwx'@; put 'LjQxLDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEy'@; put 'LjM0QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSww'@; put 'TDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQg'@; put 'Y2xyLWktYmFkZ2UiLz4nKSxGLkNsclNoYXBlQ2xvdWQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzM0gxMC42MkM1LjY3LDMzLDEsMjguMTksMSwyMy4xYTEwLDEwLDAsMCwxLDgtOS43NSwxMC4x'@; put 'OSwxMC4xOSwwLDAsMSwyMC4zMywxLjA2QTEwLjA3LDEwLjA3LDAsMCwxLDI5LDE2LjY2YTguMjksOC4yOSwwLDAsMSw2LDhDMzUsMjkuMSwzMS4zMywzMywyNy4xNCwzM1pNMTkuMDksNi4yM2E4LjI0LDguMjQsMCwwLDAtOC4xOSw4bDAsLjg3LS44Ni4xQTcuOTQsNy45NCwwLDAsMCwzLDIz'@; put 'LjFjMCw0LDMuNzcsNy45LDcuNjIsNy45SDI3LjE0QzMwLjIxLDMxLDMzLDI4LDMzLDI0LjY1YTYuMzEsNi4zMSwwLDAsMC01LjM3LTYuMjZsLTEuMTgtLjE4LjM5LTEuMTNBOC4xOCw4LjE4LDAsMCwwLDE5LjA5LDYuMjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjksMTYuNjZhMTAuMDcsMTAuMDcsMCwwLDAsLjI1LTIuMjRjMC0uMzMsMC0uNjUsMC0xYTcuNDUsNy40NSwwLDAsMS0yLjEtLjU0LDgsOCwwLDAsMS0uMyw0LjE2bC0uMzksMS4xMywxLjE4LjE4YTYu'@; put 'MzEsNi4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdhOC4yNCw4LjI0LDAsMCwxLDguMTktOEE4LjEzLDguMTMsMCwwLDEsMjIuNTgs'@; put 'N2E3LjUzLDcuNTMsMCwwLDEtLjA4LTEsNy41MSw3LjUxLDAsMCwxLC4wOS0xLjEyQTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2'@; put 'LTMuOSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNCwxMC4xNCwwLDAsMCwuMi0xLjNoLTJhOC4yOCw4LjI4LDAsMCwxLS4zNywxLjcybC0uMzksMS4xMywxLjE4LjE4'@; put 'YTYuMzEsNi4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdBOC4xNiw4LjE2LDAsMCwxLDIxLDYuNDdsMS0xLjhBMTAuMTksMTAuMTks'@; put 'MCwwLDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2LTMuOSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1'@; put 'LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzYsMTAsMTAsMCwwLDAsMSwyMy4xQzEsMjgu'@; put 'MTksNS42MiwzMywxMC41NywzM0gyNy4wOUMzMS4yOCwzMywzNSwyOS4xLDM1LDI0LjY1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5'@; put 'LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ0LDcuNDQsMCwwLDEtNi42LTguNThBMTAuMTMsMTAuMTMsMCwwLDAsMTksNC4yMywxMC4yNiwxMC4yNiwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMs'@; put 'MTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9'@; put 'IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNSwxMC4xNSwwLDAsMCwuMi0xLjI2aC03QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5'@; put 'bDMtNS4yMUExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs'@; put 'MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLEYuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWw9KDAsbS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg'@; put 'ICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAv'@; put 'PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEYuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPSgwLG0uY2xySWNvblNWRyko'@; put 'JzxjaXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNp'@; put 'cmNsZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxGLkNsclNoYXBlRmlsdGVyR3JpZD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCww'@; put 'LDAtLjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjha'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTgsMTF2MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2Ni44OWEuNS41LDAsMCwwLC4yOC40NWwzLjk1LDEuNDFhLjUuNSww'@; put 'LDAsMCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAsMCwuMTUtLjM1VjExWiIvPicpLEYuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xIiBkPSJNMTUsMjUuODZsMiwxVjIwLjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdMMTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCww'@; put 'LTEsMXYxYTEuNDYsMS40NiwwLDAsMCwuNDIsMUwxNSwyMC42OFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCww'@; put 'LDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0'@; put 'LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVs'@; put 'My45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxGLkNsclNoYXBlVm1CdWc9KDAsbS5jbHJJY29uU1ZHKSgnPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiByeD0iMyIg'@; put 'ZmlsbD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC4xNSIgc3R5bGU9Imlzb2xhdGlvbjppc29sYXRlIi8+PHBhdGggZD0iTTMuNzksMTQuODNhMS4wOSwxLjA5LDAsMCwwLTEuNDctLjU2LDEuMDksMS4wOSwwLDAsMC0uNTQsMS40OWwyLjQ3LDUuNGMuMzkuODUuOCwxLjI5LDEuNTcsMS4yOVM3LDIy'@; put 'LDcuMzksMjEuMTZsMi4xNy00Ljc3YS4zMy4zMywwLDAsMSwuMzEtLjIuMzUuMzUsMCwwLDEsLjM1LjM1djQuNjFhMS4xNSwxLjE1LDAsMCwwLDEuMTQsMS4zLDEuMTcsMS4xNywwLDAsMCwxLjE3LTEuM1YxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEu'@; put 'MTgsMS4ydjMuNzdhMS4xNywxLjE3LDAsMSwwLDIuMzIsMFYxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEuMTgsMS4ydjMuNzdhMS4xNiwxLjE2LDAsMSwwLDIuMzEsMFYxNi44NmEyLjY5LDIuNjksMCwwLDAtMi43OC0yLjY5LDMuNTcsMy41NywwLDAs'@; put 'MC0yLjQ3LDEuMDUsMi43NSwyLjc1LDAsMCwwLTIuMzgtMS4wNUEzLjkzLDMuOTMsMCwwLDAsMTIsMTUuMjJhMi44MiwyLjgyLDAsMCwwLTIuMDgtMS4wNUEyLjU1LDIuNTUsMCwwLDAsNy40LDE1Ljg5TDUuODIsMTkuNjNsLTItNC44IiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTMzLDE0'@; put 'LjE4QTEuMTQsMS4xNCwwLDAsMCwzMS45LDE1bC0xLjE5LDMuNzNMMjkuNSwxNS4wNWExLjE4LDEuMTgsMCwwLDAtMS4xNS0uODdoLS4xYTEuMiwxLjIsMCwwLDAtMS4xNS44N2wtMS4xOSwzLjcxLTEuMTgtMy43MWExLjE1LDEuMTUsMCwwLDAtMS4xMS0uODcsMS4wOCwxLjA4LDAsMCwwLTEu'@; put 'MTIsMS4wNywxLjY4LDEuNjgsMCwwLDAsLjEuNTRsMiw1LjdhMS4yNywxLjI3LDAsMCwwLDEuMjcsMSwxLjI0LDEuMjQsMCwwLDAsMS4yLS45M2wxLjItMy42NCwxLjIsMy42NGExLjI1LDEuMjUsMCwwLDAsMS4yNi45M0ExLjI3LDEuMjcsMCwwLDAsMzIsMjEuNUwzNCwxNS43M2ExLjc3LDEu'@; put 'NzcsMCwwLDAsLjA4LS40OEExLjA3LDEuMDcsMCwwLDAsMzMsMTQuMThaIiBmaWxsPSIjZmZmZmZmIi8+JyksRi5DbHJTaGFwZVNlYXJjaD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjMzLDUuMDVBMTAu'@; put 'OTUsMTAuOTUsMCwxLDEsNS4zOSwxNiwxMSwxMSwwLDAsMSwxNi4zMyw1LjA1bTAtMi4wNWExMywxMywwLDEsMCwxMywxMywxMywxMywwLDAsMC0xMy0xM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM1'@; put 'LDMzLjI5bC03LjM3LTcuNDItMS40MiwxLjQxLDcuMzcsNy40MkExLDEsMCwxLDAsMzUsMzMuMjlaIi8+JyksRi5DbHJTaGFwZVZpZXdDb2x1bW5zPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsNUg1QTIs'@; put 'MiwwLDAsMCwzLDdWMjlhMiwyLDAsMCwwLDIsMkgzMWEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMxLDVaTTEzLDI5SDVWN2g4Wm0xMCwwSDE1VjdoOFoiLz4nKSxGLkNsclNoYXBlQW5nbGVEb3VibGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOSwxOS40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCw4LjgzLDcuNzEsMTkuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCw2LDI5LjcxLDE3LjcxQTEsMSwwLDAsMSwyOSwxOS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDMwLjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDE5LjgzLDcuNzEsMzAuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCwxNywyOS43MSwyOC43MUExLDEsMCwwLDEsMjksMzAuNDFaIi8+JyksRi5DbHJTaGFwZUNhbGVuZGFyPSgw'@; put 'LG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuMjUsNkgyOVY4aDNWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEu'@; put 'NzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjIwIiB5'@; put 'PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0'@; put 'PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC05IiB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIHg9IjIwIiB5'@; put 'PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiBk'@; put 'PSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE2IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgy'@; put 'OC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSI4IiB5PSIxNCIgd2lkdGg9'@; put 'IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1i'@; put 'YWRnZWQiIHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTki'@; put 'IHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEyLS1iYWRnZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEzLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdo'@; put 'dD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNS0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMu'@; put 'NjgsMTUuNEgzMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgeD0iMTQi'@; put 'IHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC02LS1hbGVydGVkIiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgeD0iMjYiIHk9IjE5IiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0ZWQiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xMC0tYWxlcnRlZCIgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cG9seWdvbiBw'@; put 'b2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB'@; put 'MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0z'@; put 'Mi4yNSw2aC00VjlhMi4yLDIuMiwwLDEsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCww'@; put 'LDAsMCwzMi4yNSw2Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2'@; put 'VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh'@; put 'ZGdlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41'@; put 'LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTEwLDI2'@; put 'SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEwSDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUEx'@; put 'Ljc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTYsNUgyNlYyNGgyWm0wLTVIMjZWMTloMloiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs'@; put 'MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLEYuQ2xyU2hhcGVFdmVudD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjE3LDI1Ljg2LDEwLjgxLDIwLjVhMSwxLDAsMCwxLDEuNDEtMS40MUwxNi4xNywy'@; put 'M2w4LjY0LTguNjRhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5'@; put 'QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xMCwxMGEx'@; put 'LDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAs'@; put 'MCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAtMS40MS0xLjQxTDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEs'@; put 'MzIsMTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0i'@; put 'TTEwLjgxLDIwLjVsNS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMCwuMjMtLjQxSDIzLjhMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUu'@; put 'NEgzMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv'@; put 'PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMyLjI1LDZoLTRWOWEy'@; put 'LjIsMi4yLDAsMCwxLTQuNCwwVjZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZa'@; put 'TTI1Ljk0LDE2LjU4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9'@; put 'Ik0zMy42OCwxNS40SDI2LjNhMS4zNCwxLjM0LDAsMCwxLS4zNiwxLjE4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4LDctN2gtMUEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZo'@; put 'LTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0z'@; put 'LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJh'@; put 'ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4'@; put 'LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wm0tNC4wNiwzLjA4LTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzhMMjQsMTQuNjZhMS4zNiwxLjM2LDAsMSwxLDEuOTMsMS45M1oiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksRi5DbHJTaGFwZUV5ZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4y'@; put 'My05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44'@; put 'LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDksMTEuMTdBNi44Niw2Ljg2LDAsMSwwLDI1LDE4'@; put 'LDYuODYsNi44NiwwLDAsMCwxOC4wOSwxMS4xN1ptMCwxMS43MkE0Ljg2LDQuODYsMCwxLDEsMjMsMTgsNC44Nyw0Ljg3LDAsMCwxLDE4LjA5LDIyLjg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42Miwx'@; put 'Ny41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjks'@; put 'OC4xNy04LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTguMDkiIGN5PSIxOC4wMyIgcj0i'@; put 'Ni44NiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLEYuQ2xyU2hhcGVFeWVIaWRlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4xOSwyMC40QTYuNzgsNi43OCwwLDAsMCwyNS42MiwxOGE2Ljg2LDYuODYsMCwwLDAtNi44Ni02Ljg2LDYuNzksNi43'@; put 'OSwwLDAsMC0yLjM3LjQzTDE4LDEzLjIzYTQuNzgsNC43OCwwLDAsMSwuNzQtLjA2QTQuODcsNC44NywwLDAsMSwyMy42MiwxOGE0Ljc5LDQuNzksMCwwLDEtLjA2Ljc0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zNC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwxMGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40Miwx'@; put 'LjQyYTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40'@; put 'OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm05Ljc1LDkuNzUsNi42NSw2LjY1YTQuODEsNC44MSwwLDAsMS0yLjUuNzJBNC44Nyw0Ljg3LDAsMCwxLDEzLjksMTgsNC44MSw0LjgxLDAsMCwxLDE0LjYy'@; put 'LDE1LjUzWm0tMS40NS0xLjQ1YTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4zNywxMS4xN0E2Ljc5LDYuNzksMCwwLDAsMTYsMTEuNmw4LjgsOC44QTYuNzgsNi43OCwwLDAsMCwyNS4yMywxOCw2Ljg2LDYuODYsMCwwLDAsMTguMzcsMTEuMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4'@; put 'LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5'@; put 'LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm04LjMsOC4zYTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSww'@; put 'LDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLEYuQ2xyU2hhcGVTdGVwRm9yd2FyZDI9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0i'@; put 'TTcuMDgsNi41MmExLjY4LDEuNjgsMCwwLDAsMCwyLjRMMTYuNTEsMTgsNy4xMiwyNy4wOGExLjcsMS43LDAsMCwwLDIuMzYsMi40NGgwTDIxLjQsMTgsOS40OCw2LjQ3QTEuNjksMS42OSwwLDAsMCw3LjA4LDYuNTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MSIgLz48cGF0aCBkPSJNMjYuNDksNWExLjcsMS43LDAsMCwwLTEuNywxLjdWMjkuM2ExLjcsMS43LDAsMCwwLDMuNCwwVjYuN0ExLjcsMS43LDAsMCwwLDI2LjQ5LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlQXJyb3c9KDAs'@; put 'bS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LjY2LDE1LjYxLDE4LDYsOC4zNCwxNS42MUExLDEsMCwxLDAsOS43NSwxN0wxNyw5LjgxVjI4Ljk0YTEsMSwwLDEsMCwyLDBWOS44MUwyNi4yNSwxN2ExLDEsMCwwLDAsMS40MS0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiLz4nKSxGLkNvcmVTaGFwZXM9eyJ1bmtub3duLXN0YXR1cyI6Ri5DbHJTaGFwZVVua25vd25TdGF0dXMsaG9tZTpGLkNsclNoYXBlSG9tZSxjb2c6Ri5DbHJTaGFwZUNvZyxjaGVjazpGLkNsclNoYXBlQ2hlY2ssdGltZXM6Ri5DbHJTaGFwZVRpbWVzLCJleGNsYW1hdGlv'@; put 'bi10cmlhbmdsZSI6Ri5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGUsImV4Y2xhbWF0aW9uLWNpcmNsZSI6Ri5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlLCJjaGVjay1jaXJjbGUiOkYuQ2xyU2hhcGVDaGVja0NpcmNsZSwiaW5mby1jaXJjbGUiOkYuQ2xyU2hhcGVJbmZvQ2lyY2xlLCJp'@; put 'bmZvLXN0YW5kYXJkIjpGLkNsclNoYXBlSW5mb1N0YW5kYXJkLCJzdWNjZXNzLXN0YW5kYXJkIjpGLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkLCJlcnJvci1zdGFuZGFyZCI6Ri5DbHJTaGFwZUVycm9yU3RhbmRhcmQsIndhcm5pbmctc3RhbmRhcmQiOkYuQ2xyU2hhcGVXYXJuaW5nU3RhbmRh'@; put 'cmQsImhlbHAtaW5mbyI6Ri5DbHJTaGFwZUhlbHBJbmZvLGJhcnM6Ri5DbHJTaGFwZUJhcnMsdXNlcjpGLkNsclNoYXBlVXNlcixhbmdsZTpGLkNsclNoYXBlQW5nbGUsZm9sZGVyOkYuQ2xyU2hhcGVGb2xkZXIsImZvbGRlci1vcGVuIjpGLkNsclNoYXBlRm9sZGVyT3BlbixiZWxsOkYuQ2xy'@; put 'U2hhcGVCZWxsLGltYWdlOkYuQ2xyU2hhcGVJbWFnZSxjbG91ZDpGLkNsclNoYXBlQ2xvdWQsImVsbGlwc2lzLWhvcml6b250YWwiOkYuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWwsImVsbGlwc2lzLXZlcnRpY2FsIjpGLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbCwiZmlsdGVyLWdyaWQi'@; put 'OkYuQ2xyU2hhcGVGaWx0ZXJHcmlkLCJmaWx0ZXItZ3JpZC1jaXJjbGUiOkYuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlLCJ2bS1idWciOkYuQ2xyU2hhcGVWbUJ1ZyxzZWFyY2g6Ri5DbHJTaGFwZVNlYXJjaCwidmlldy1jb2x1bW5zIjpGLkNsclNoYXBlVmlld0NvbHVtbnMsImFuZ2xlLWRv'@; put 'dWJsZSI6Ri5DbHJTaGFwZUFuZ2xlRG91YmxlLGNhbGVuZGFyOkYuQ2xyU2hhcGVDYWxlbmRhcixldmVudDpGLkNsclNoYXBlRXZlbnQsZXllOkYuQ2xyU2hhcGVFeWUsImV5ZS1oaWRlIjpGLkNsclNoYXBlRXllSGlkZSwic3RlcC1mb3J3YXJkLTIiOkYuQ2xyU2hhcGVTdGVwRm9yd2FyZDIs'@; put 'YXJyb3c6Ri5DbHJTaGFwZUFycm93fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJob3VzZSIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMuaG9tZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsInNldHRpbmdzIiwoMCx4LmRlc2Ny'@; put 'aXB0b3JDb25maWcpKEYuQ29yZVNoYXBlcy5jb2cpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJzdWNjZXNzIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29yZVNoYXBlcy5jaGVjaykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsImNsb3NlIiwo'@; put 'MCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29yZVNoYXBlcy50aW1lcykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsIndhcm5pbmciLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdKSksT2JqZWN0LmRlZmluZVBy'@; put 'b3BlcnR5KEYuQ29yZVNoYXBlcywiZXJyb3IiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsImluZm8iLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVz'@; put 'WyJpbmZvLWNpcmNsZSJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuQ29yZVNoYXBlcywibWVudSIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMuYmFycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsImF2YXRhciIsKDAseC5kZXNjcmlwdG9yQ29u'@; put 'ZmlnKShGLkNvcmVTaGFwZXMudXNlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsImNhcmV0IiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29yZVNoYXBlcy5hbmdsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsImRpcmVjdG9yeSIsKDAseC5k'@; put 'ZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMuZm9sZGVyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuQ29yZVNoYXBlcywibm90aWZpY2F0aW9uIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29yZVNoYXBlcy5iZWxsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuQ29yZVNoYXBl'@; put 'cywiY29sbGFwc2UiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVzWyJhbmdsZS1kb3VibGUiXSkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'Ki8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxGLmRlc2NyaXB0b3JDb25maWc9dm9pZCAwLEYuZGVzY3JpcHRvckNvbmZpZz1mdW5jdGlv'@; put 'biB4KG0pe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTptfX19LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihJZSxGLGFlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEYuU2hhcGVUZW1wbGF0ZU9ic2VydmVyPUYuY2hh'@; put 'bmdlSGFuZGxlckNhbGxiYWNrcz12b2lkIDAsRi5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXt9O3ZhciB4PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbSgpe3RoaXMuY2FsbGJhY2tzPUYuY2hhbmdlSGFuZGxlckNhbGxiYWNrc31yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG0sImluc3RhbmNl'@; put 'Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG0uc2luZ2xlSW5zdGFuY2V8fChtLnNpbmdsZUluc3RhbmNlPW5ldyBtKSxtLnNpbmdsZUluc3RhbmNlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG0ucHJvdG90eXBlLnN1YnNjcmliZVRvPWZ1bmN0aW9uKGxlLE0pe3ZhciBPPXRo'@; put 'aXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2xlXT8tMT09PXRoaXMuY2FsbGJhY2tzW2xlXS5pbmRleE9mKE0pJiZ0aGlzLmNhbGxiYWNrc1tsZV0ucHVzaChNKTp0aGlzLmNhbGxiYWNrc1tsZV09W01dLGZ1bmN0aW9uKCl7dmFyIFI9Ty5jYWxsYmFja3NbbGVdLmluZGV4T2YoTSk7Ty5jYWxs'@; put 'YmFja3NbbGVdLnNwbGljZShSLDEpLDA9PT1PLmNhbGxiYWNrc1tsZV0ubGVuZ3RoJiZkZWxldGUgTy5jYWxsYmFja3NbbGVdfX0sbS5wcm90b3R5cGUuZW1pdENoYW5nZXM9ZnVuY3Rpb24obGUsTSl7dGhpcy5jYWxsYmFja3NbbGVdJiZ0aGlzLmNhbGxiYWNrc1tsZV0ubWFwKGZ1bmN0aW9u'@; put 'KE8pe08oTSl9KX0sbX0oKTtGLlNoYXBlVGVtcGxhdGVPYnNlcnZlcj14fSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICAg'@; put 'ICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRz'@; put 'IGZvdW5kICovZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxGLmNsckljb25TVkc9dm9pZCAwO0YuY2xySWNvblNWRz1mdW5jdGlvbiBNKE8pe3ZhciBSPSIiO3JldHVybiBPLmluZGV4T2YoIi0t'@; put 'YmFkZ2VkIik+LTEmJihSKz0iY2FuLWJhZGdlICIpLE8uaW5kZXhPZigiLS1hbGVydGVkIik+LTEmJihSKz0iY2FuLWFsZXJ0ICIpLE8uaW5kZXhPZigiY2xyLWktc29saWQiKT4tMSYmKFIrPSJoYXMtc29saWQgIiksKFI/JzxzdmcgdmVyc2lvbj0iMS4xIiBjbGFzcz0iJytSKyciIHZpZXdC'@; put 'b3g9IjAgMCAzNiAzNiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6'@; put 'JzxzdmcgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNh'@; put 'YmxlPSJmYWxzZSIgcm9sZT0iaW1nIj4nKStPKyI8L3N2Zz4ifX19KX0sMzQyMDk6ZnVuY3Rpb24oYXQpe2F0LmV4cG9ydHM9ZnVuY3Rpb24oSWUpe3ZhciBGPXt9O2Z1bmN0aW9uIGFlKHgpe2lmKEZbeF0pcmV0dXJuIEZbeF0uZXhwb3J0czt2YXIgbT1GW3hdPXtpOngsbDohMSxleHBvcnRz'@; put 'Ont9fTtyZXR1cm4gSWVbeF0uY2FsbChtLmV4cG9ydHMsbSxtLmV4cG9ydHMsYWUpLG0ubD0hMCxtLmV4cG9ydHN9cmV0dXJuIGFlLm09SWUsYWUuYz1GLGFlLmQ9ZnVuY3Rpb24oeCxtLGxlKXthZS5vKHgsbSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LG0se2VudW1lcmFibGU6ITAsZ2V0'@; put 'OmxlfSl9LGFlLnI9ZnVuY3Rpb24oeCl7dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCJfX2VzTW9kdWxlIix7dmFs'@; put 'dWU6ITB9KX0sYWUudD1mdW5jdGlvbih4LG0pe2lmKDEmbSYmKHg9YWUoeCkpLDgmbXx8NCZtJiYib2JqZWN0Ij09dHlwZW9mIHgmJngmJnguX19lc01vZHVsZSlyZXR1cm4geDt2YXIgbGU9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihhZS5yKGxlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobGUs'@; put 'ImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnh9KSwyJm0mJiJzdHJpbmciIT10eXBlb2YgeClmb3IodmFyIE0gaW4geClhZS5kKGxlLE0sZnVuY3Rpb24oTyl7cmV0dXJuIHhbT119LmJpbmQobnVsbCxNKSk7cmV0dXJuIGxlfSxhZS5uPWZ1bmN0aW9uKHgpe3ZhciBtPXgmJnguX19l'@; put 'c01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB4LmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHh9O3JldHVybiBhZS5kKG0sImEiLG0pLG19LGFlLm89ZnVuY3Rpb24oeCxtKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHgsbSl9LGFlLnA9IiIsYWUoYWUu'@; put 'cz0iLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiKX0oeyIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvYWxsLXNoYXBlcy50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAg'@; put 'ICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvYWxsLXNoYXBlcy50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihJ'@; put 'ZSxGLGFlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEYuQWxsU2hhcGVzPXZvaWQgMDt2YXIgeD1hZSgKLyohIC4vY2hhcnQtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRz'@; put 'IiksbT1hZSgKLyohIC4vY29tbWVyY2Utc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIiksbGU9YWUoCi8qISAuL2NvcmUtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxNPWFlKAov'@; put 'KiEgLi9lc3NlbnRpYWwtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvZXNzZW50aWFsLXNoYXBlcy50cyIpLE89YWUoCi8qISAuL21lZGlhLXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyIpLFI9YWUoCi8qISAuL3Nv'@; put 'Y2lhbC1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9zb2NpYWwtc2hhcGVzLnRzIiksej1hZSgKLyohIC4vdGVjaG5vbG9neS1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZWNobm9sb2d5LXNoYXBlcy50cyIpLEs9YWUoCi8qISAuL3RleHQt'@; put 'ZWRpdC1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZXh0LWVkaXQtc2hhcGVzLnRzIiksST1hZSgKLyohIC4vdHJhdmVsLXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RyYXZlbC1zaGFwZXMudHMiKSxrPVtsZS5Db3JlU2hhcGVzLG0uQ29t'@; put 'bWVyY2VTaGFwZXMsTS5Fc3NlbnRpYWxTaGFwZXMsTy5NZWRpYVNoYXBlcyxSLlNvY2lhbFNoYXBlcyx6LlRlY2hub2xvZ3lTaGFwZXMsSS5UcmF2ZWxTaGFwZXMseC5DaGFydFNoYXBlcyxLLlRleHRFZGl0U2hhcGVzXSxFPXt9O0YuQWxsU2hhcGVzPUU7Zm9yKHZhciBqPTAsVj1rO2o8Vi5s'@; put 'ZW5ndGg7aisrKXt2YXIgQj1WW2pdO2Zvcih2YXIgWSBpbiBCKUIuaGFzT3duUHJvcGVydHkoWSkmJihFW1ldPUJbWV0pfXR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChFKX0sIi4vcHJvamVj'@; put 'dHMvaWNvbnMvc3JjL3NoYXBlcy9jaGFydC1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzICoq'@; put 'KiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGLCJfX2Vz'@; put 'TW9kdWxlIix7dmFsdWU6ITB9KSxGLkNoYXJ0U2hhcGVzPUYuQ2xyU2hhcGVCZWxsQ3VydmU9Ri5DbHJTaGFwZVRpY2tDaGFydD1GLkNsclNoYXBlU2NhdHRlclBsb3Q9Ri5DbHJTaGFwZVBpZUNoYXJ0PUYuQ2xyU2hhcGVMaW5lQ2hhcnQ9Ri5DbHJTaGFwZUhlYXRNYXA9Ri5DbHJTaGFwZUdy'@; put 'aWRDaGFydD1GLkNsclNoYXBlQ3VydmVDaGFydD1GLkNsclNoYXBlQ2xvdWRDaGFydD1GLkNsclNoYXBlQnViYmxlQ2hhcnQ9Ri5DbHJTaGFwZUJveFBsb3Q9Ri5DbHJTaGFwZUJhckNoYXJ0PUYuQ2xyU2hhcGVBeGlzQ2hhcnQ9dm9pZCAwO3ZhciB4PWFlKAovKiEgLi4vdXRpbHMvZGVzY3Jp'@; put 'cHRvci1jb25maWcgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksbT1hZSgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO0YuQ2xyU2hh'@; put 'cGVBeGlzQ2hhcnQ9KDAsbS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMz'@; put 'LjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3'@; put 'LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1'@; put 'IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIg'@; put 'NS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0'@; put 'LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4y'@; put 'MiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBM'@; put 'IDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSA2LjAw'@; put 'NyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkg'@; put 'MTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1'@; put 'IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjgu'@; put 'MyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMx'@; put 'IDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYg'@; put 'TCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBj'@; put 'bHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2'@; put 'IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVy'@; put 'dGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43'@; put 'OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4'@; put 'LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwg'@; put 'MzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPicpLEYu'@; put 'Q2xyU2hhcGVCYXJDaGFydD0oMCxtLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpN'@; put 'NCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBMIDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8'@; put 'cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMyAxNiBMIDI5IDE2'@; put 'IEwgMjkgMjYgTCAyNy40IDI2IEwgMjcuNCAxNy42IEwgMjQuNiAxNy42IEwgMjQuNiAyNiBMIDIzIDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9'@; put 'Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcg'@; put 'MTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBM'@; put 'IDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMy'@; put 'IDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYg'@; put 'MjYgTCA3IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUg'@; put 'MjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9'@; put 'IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3'@; put 'IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2'@; put 'IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9'@; put 'IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIg'@; put 'NS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBM'@; put 'IDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAy'@; put 'NiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAy'@; put 'MyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAy'@; put 'Ni44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQu'@; put 'ODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3'@; put 'LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDcgMjYgTCAxMyAyNiBMIDEzIDEwIEwgNyAxMCBaIE0gMTUgMjYgTCAyMSAyNiBMIDIxIDE5IEwgMTUgMTkgWiBNIDIzIDI2IEwgMjkgMjYg'@; put 'TCAyOSAxNiBMIDIzIDE2IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIu'@; put 'OTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQg'@; put 'TCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxGLkNsclNoYXBlQm94UGxvdD0oMCxtLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1'@; put 'SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTIgTCAxNyAxMiBMIDE3IDI2IEwgNyAyNiBMIDcgMTIgWiBNIDguNiAyNC40IEwgMTUuNCAyNC40'@; put 'IEwgMTUuNCAxOC44IEwgOC42IDE4LjggTCA4LjYgMjQuNCBaIE0gMTUuNCAxMy42IEwgOC42IDEzLjYgTCA4LjYgMTcuMiBMIDE1LjQgMTcuMiBMIDE1LjQgMTMuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5'@; put 'IDI0IEwgMjkgMjQgTCAyOSAxMCBMIDE5IDEwIEwgMTkgMjQgWiBNIDIwLjYgMTEuNiBMIDI3LjQgMTEuNiBMIDI3LjQgMTcuMiBMIDIwLjYgMTcuMiBMIDIwLjYgMTEuNiBaIE0gMjcuNCAyMi40IEwgMjAuNiAyMi40IEwgMjAuNiAxOC44IEwgMjcuNCAxOC44IEwgMjcuNCAyMi40IFoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMw'@; put 'LjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0'@; put 'IFogTSAxOSAyNCBMIDI5IDI0IEwgMjkgMTAgTCAxOSAxMCBaIE0gMjEgMTIgTCAyNyAxMiBMIDI3IDE3IEwgMjEgMTcgWiBNIDI3IDIyIEwgMjEgMjIgTCAyMSAxOSBMIDI3IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIg'@; put 'MjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYg'@; put 'TCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgMTAgTCAyMy43MjggMTAgQyAyNC4xMDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIwLjYgMTEuNiBMIDIwLjYgMTcuMiBMIDI3LjQgMTcuMiBMIDI3LjQgMTIuOTg3IEMgMjcuOTA5IDEz'@; put 'LjE3NyAyOC40NDUgMTMuMzEzIDI5IDEzLjM4NyBMIDI5IDI0IEwgMTkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTguOCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5c'@; put 'biAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMi4zMTIgNi44MTcgMjIuNzMyIDguNTY2IDIzLjYz'@; put 'MyAxMCBMIDE5IDEwIEwgMTkgMjQgTCAyOSAyNCBMIDI5IDEzLjQyNyBDIDI5LjEwMyAxMy40NCAyOS4yMDYgMTMuNDUxIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDcgMjYgTCAxNyAyNiBMIDE3IDEyIEwgNyAx'@; put 'MiBaIE0gOSAxOSBMIDE1IDE5IEwgMTUgMjQgTCA5IDI0IFogTSAxNSAxNyBMIDkgMTcgTCA5IDE0IEwgMTUgMTQgWiBNIDIxIDEyIEwgMjUuNDcyIDEyIEMgMjUuOTQgMTIuMzUyIDI2LjQ1MiAxMi42NSAyNyAxMi44ODUgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEg'@; put 'MTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl'@; put 'cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwg'@; put 'NCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQg'@; put 'MTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAyNCBMIDE5IDI0IEwgMTkgMTUuMzQ1IEMg'@; put 'MTkuMDIxIDE1LjM0OCAyMC42IDE1LjM2IDIwLjYgMTUuMzYgTCAyMC42IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDE1LjM2IEwgMjkgMTUuMzU3IEwgMjkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTguOCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBMIDI3LjQgMTguOCBaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAy'@; put 'MS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0'@; put 'LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxl'@; put 'cnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE5LjAyOCAxMCBMIDE5IDEwIEwgMTkgMTAuMDQ4IEwgMTcuNjI1IDEyLjM5NSBD'@; put 'IDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAxOSAyNCBMIDI5IDI0IEwgMjkgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAx'@; put 'NCBMIDE1IDE0IFogTSAyNyAxNyBMIDIxIDE3IEwgMjEgMTUuMzU3IEwgMjcgMTUuMzU3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xy'@; put 'LWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAz'@; put 'NS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksRi5DbHJTaGFwZUJ1YmJsZUNoYXJ0PSgwLG0u'@; put 'Y2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1'@; put 'IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4z'@; put 'NDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAxNi42IDI0LjYgMTcuMjI3IDI0LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3'@; put 'LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBD'@; put 'IDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAx'@; put 'My40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIxIDIzIEMgMjEgMjQuNjU3IDE5LjY1NyAyNiAxOCAyNiBDIDE2LjM0MyAyNiAxNSAyNC42NTcgMTUg'@; put 'MjMgQyAxNSAyMS4zNDMgMTYuMzQzIDIwIDE4IDIwIEMgMTkuNjU3IDIwIDIxIDIxLjM0MyAyMSAyMyBaIE0gMTggMjEuNiBDIDE3LjIyNyAyMS42IDE2LjYgMjIuMjI3IDE2LjYgMjMgQyAxNi42IDIzLjc3MyAxNy4yMjcgMjQuNCAxOCAyNC40IEMgMTguNzczIDI0LjQgMTkuNCAyMy43NzMg'@; put 'MTkuNCAyMyBDIDE5LjQgMjIuMjI3IDE4Ljc3MyAyMS42IDE4IDIxLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0'@; put 'IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2'@; put 'LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAy'@; put 'OSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+'@; put 'XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAy'@; put 'Mi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBa'@; put 'Ij48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcgMjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIxIDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAxNi42IEMgMjUuMjI3IDE2'@; put 'LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIyNyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTkuNCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBa'@; put 'IE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1'@; put 'NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAy'@; put 'MS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgcng9IjMiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4'@; put 'PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMw'@; put 'LjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEu'@; put 'NzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3'@; put 'IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAx'@; put 'OCAyMCBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBM'@; put 'IDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAxNSBDIDI3LjY1NyAxNSAyOSAxNi4z'@; put 'NDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMgMjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMgMTYuNiAyNiAxNi42IFoiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAx'@; put 'MSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDEx'@; put 'LjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIz'@; put 'IEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5'@; put 'LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4'@; put 'NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAy'@; put 'MS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNC41NzkgMTUuMzU3IEMgMjMuNjM5IDE1Ljg2MyAyMyAxNi44NTcgMjMgMTggQyAyMyAx'@; put 'OS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2Ljg1NyAyOC4zNjEgMTUuODYzIDI3LjQyMSAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDExIDEwIEMgOC43OTEgMTAgNyAxMS43OTEgNyAxNCBDIDcgMTYuMjA5IDguNzkxIDE4IDExIDE4IEMg'@; put 'MTMuMjA5IDE4IDE1IDE2LjIwOSAxNSAxNCBDIDE1IDExLjc5MSAxMy4yMDkgMTAgMTEgMTAgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1'@; put 'NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAy'@; put 'Mi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjku'@; put 'MDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksRi5DbHJTaGFwZUNsb3VkQ2hhcnQ9KDAsbS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0'@; put 'QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAx'@; put 'NS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEwLjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1'@; put 'OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAxNy43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjgg'@; put 'MjIgWiBNIDI1IDIwLjYgQyAyNC4yMjcgMjAuNiAyMy42IDIxLjIyNyAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI3IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNyAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEw'@; put 'NSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEu'@; put 'ODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAxMS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1'@; put 'IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41'@; put 'NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDQg'@; put 'MzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIwLjk3MSAxMS4yNDMgQyAyMy4zMTQgMTMuNTg2IDIyLjM2NCAxOC4zMzUgMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMx'@; put 'NCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjg3OSA5Ljg0OSAxOC42MjggOC45IDIwLjk3MSAxMS4yNDMgWiBNIDExLjYzNiAxNC42MzcgQyA4LjgyNCAxNy40NDkgNy44NzUgMjEuMDU4IDkuNTE1IDIyLjY5OCBDIDExLjE1NSAy'@; put 'NC4zMzggMTQuNzY0IDIzLjM4OSAxNy41NzYgMjAuNTc3IEMgMjAuMzg4IDE3Ljc2NSAyMS4zMzggMTQuMTU2IDE5LjY5NyAxMi41MTYgQyAxOC4wNTcgMTAuODc2IDE0LjQ0OCAxMS44MjUgMTEuNjM2IDE0LjYzNyBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1'@; put 'IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iNyI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+'@; put 'XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIu'@; put 'ODk1IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIz'@; put 'Ljk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMi4zNjQgMTguMzM1IDIzLjMxNCAxMy41ODYgMjAuOTcxIDExLjI0MyBDIDE4LjYyOCA4LjkgMTMuODc5IDkuODQ5IDEwLjM2NCAxMy4zNjQgWiBNIDI1IDE5IEMgMjMuMzQzIDE5IDIyIDIwLjM0MyAy'@; put 'MiAyMiBDIDIyIDIzLjY1NyAyMy4zNDMgMjUgMjUgMjUgQyAyNi42NTcgMjUgMjggMjMuNjU3IDI4IDIyIEMgMjggMjAuMzQzIDI2LjY1NyAxOSAyNSAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQg'@; put 'Y2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44'@; put 'OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1'@; put 'LjM2NCAxMC41ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMuMzY0IEMgMTMuMDQ5IDEwLjY3OSAxNi40NTMgOS40OTIgMTguOTU2IDEwLjEyNCBMIDE4LjAwOCAxMS43NDEgQyAxNi4xOCAxMS41MTggMTMuNjk1IDEyLjU3OCAxMS42'@; put 'MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDE5LjIyOCAxOC45MjUgMjAuMjM3IDE2Ljk5OCAyMC40NTYgMTUuMzU3IEwgMjIuMjIgMTUuMzU3IEMgMjIuMDA2IDE3'@; put 'LjQ3NyAyMC44MzggMTkuODYxIDE4Ljg0OSAyMS44NDkgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUg'@; put 'MjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40'@; put 'IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQg'@; put 'MTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQg'@; put 'WiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAy'@; put 'Ljg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMTguOTU2IDEwLjEyNCBDIDE2LjQ1MyA5LjQ5MiAxMy4wNDkgMTAuNjc5IDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkg'@; put 'QyAyMC44MzggMTkuODYxIDIyLjAwNiAxNy40NzcgMjIuMjIgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42'@; put 'NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45Mjgg'@; put 'MjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5'@; put 'LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEYuQ2xyU2hhcGVDdXJ2ZUNoYXJ0PSgwLG0uY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1'@; put 'IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9w'@; put 'YXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2'@; put 'LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1'@; put 'LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAx'@; put 'NC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEw'@; put 'NSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAu'@; put 'OTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45'@; put 'NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAxNiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAy'@; put 'Mi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAg'@; put 'PHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcu'@; put 'ODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1'@; put 'LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDEx'@; put 'LjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWkt'@; put 'YmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5'@; put 'NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMyAxMiBDIDE0Ljgx'@; put 'NyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0'@; put 'IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAxNiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2'@; put 'IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2'@; put 'IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4y'@; put 'IDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAy'@; put 'OS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4y'@; put 'MDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUg'@; put 'MjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0'@; put 'OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAy'@; put 'IDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE3LjQ3NiAxMi42MTIgMTcuMzc5IDEyLjg0MyAxNy4zMyAxMy4wNzcgQyAxNy4yNjIgMTIuOTQ4IDE3LjE5MiAxMi44MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5'@; put 'NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBMIDEzIDEyIEMgMTQuODE3IDEyIDE1LjY3NCAxMy40OTkgMTcuMDM5IDE4LjI3NSBDIDE3LjgxMyAyMC45ODQgMTguMjAxIDIyLjExOCAxOC44ODIgMjMuMzA5IEMgMTku'@; put 'ODcgMjUuMDM4IDIxLjIwNSAyNiAyMyAyNiBMIDI5IDI2IEMgMjkuNTUyIDI2IDMwIDI1LjU1MiAzMCAyNSBDIDMwIDI0LjQ0OCAyOS41NTIgMjQgMjkgMjQgTCAyMyAyNCBDIDIxLjE4MyAyNCAyMC4zMjYgMjIuNTAxIDE4Ljk2MiAxNy43MjUgQyAxOC42NCAxNi41OTggMTguMzg1IDE1Ljc0'@; put 'NCAxOC4xNDcgMTUuMDQ0IEMgMTguNDA3IDE1LjIxNSAxOC43MTcgMTUuMzI2IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMz'@; put 'LjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4n'@; put 'KSxGLkNsclNoYXBlR3JpZENoYXJ0PSgwLG0uY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwx'@; put 'NSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiwxN0gyMWEyLDIsMCwwLDEtMi0yVjhhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDE3Wk0yMSw4djdIMzJWOFoi'@; put 'Lz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMTUgMTcgTCA0IDE3IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBDIDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4g'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDMyIDYgQyAzMy4xMDUgNiAzNCA2Ljg5NSAzNCA4IEwgMzQgMTUg'@; put 'QyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBD'@; put 'IDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAxNyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwg'@; put 'MTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMS1hbGVydGVkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'LWFsZXJ0ZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDIwLjAxNCAxNyAxOS4xOTUgMTYuMjg3IDE5LjAzIDE1LjM0OCBDIDE5LjA0MSAxNS4zNDkgMTkuMDUzIDE1LjM1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzMuOTY4IDE1'@; put 'LjM1NyBDIDMzLjggMTYuMjkyIDMyLjk4MyAxNyAzMiAxNyBaIE0gMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAyMS4zNzIgNiBMIDE5IDEwLjA0OCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtYWxlcnRlZCIg'@; put 'ZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC1hbGVydGVkIiBk'@; put 'PSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVk'@; put 'IGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4w'@; put 'MzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYuMTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUg'@; put 'MTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4z'@; put 'NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAxNS4zNTcgQyAzMy44IDE2LjI5MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIv'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3'@; put 'IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkg'@; put 'MjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt'@; put 'cGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAw'@; put 'NCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMTkuODk1IDE3IDE5IDE2LjEwNSAxOSAxNSBMIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjIuNTkgNiBDIDIyLjU5IDYuMDE5IDIyLjU5IDYuMDM3IDIy'@; put 'LjU5IDYuMDU2IEMgMjIuNTkgNi43MjkgMjIuNjggNy4zODEgMjIuODQ4IDggTCAyMSA4IEwgMjEgMTUgTCAzMiAxNSBMIDMyIDEzLjE3NSBDIDMyLjcxNyAxMi45NzIgMzMuMzg5IDEyLjY2NCAzNCAxMi4yNjkgTCAzNCAxNSBDIDM0IDE2LjEwNSAzMy4xMDUgMTcgMzIgMTcgWiIvPlxuICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTMyLDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8'@; put 'Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIg'@; put 'ZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQgNiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2'@; put 'LjA1NiBDIDIyLjU5IDEwLjE0MSAyNS45MDEgMTMuNDUyIDI5Ljk4NiAxMy40NTIgQyAzMS40NjYgMTMuNDUyIDMyLjg0NCAxMy4wMTggMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAyOCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTkuODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1'@; put 'IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAz'@; put 'MiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2'@; put 'IiByPSI1Ii8+JyksRi5DbHJTaGFwZUhlYXRNYXA9KDAsbS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMx'@; put 'IDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDI4IDEwIEwgMjggMjYgTCA4IDI2IFogTSA5LjYg'@; put 'MjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDI2IDExLjYgTCAyMS45IDExLjYgTCAyMS45IDE3LjIgTCAy'@; put 'NiAxNy4yIFogTSAxNS43IDExLjYgTCAxNS43IDE3LjIgTCAyMC4zIDE3LjIgTCAyMC4zIDExLjYgWiBNIDE1LjcgMjQgTCAyMC4zIDI0IEwgMjAuMyAxOC44IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4z'@; put 'MzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+'@; put 'XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDIzLjcyOCAxMCBDIDI0LjEwNSAxMC41OTYgMjQuNTY0IDExLjEzNSAyNS4wOSAxMS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBMIDI2IDEyLjI4NyBDIDI2LjYxMSAxMi42NzkgMjcuMjg0IDEyLjk4MyAyOCAxMy4xODIgTCAyOCAy'@; put 'NiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAxMS42IEwgMTUuNyAx'@; put 'Ny4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1LjcgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9'@; put 'Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBa'@; put 'Ij48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDE5LjAyOCAxMCBMIDE4LjA5MSAxMS42IEwgMTUuNyAxMS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxNS4zNTcgTCAyMS45IDE1LjM1NyBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxNS4zNTcgTCAyOCAxNS4zNTcg'@; put 'TCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAyNCBMIDIw'@; put 'LjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIyLS1h'@; put 'bGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2'@; put 'OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQg'@; put 'NyBaIE0gOCAyNiBMIDI4IDI2IEwgMjggMTAgTCA4IDEwIFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAy'@; put 'NiAxMiBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEwIDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAz'@; put 'NCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwg'@; put 'MjggMTMuMjMyIEMgMjguNDIxIDEzLjM0NSAyOC44NTkgMTMuNDIyIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwIDE5IEwgMTQgMTkgTCAxNCAyNCBMIDEwIDI0IFogTSAyMiAyNCBMIDIyIDE5IEwgMjYgMTkg'@; put 'TCAyNiAyNCBaIE0gMjAgMTkgTCAyMCAyNCBMIDE2IDI0IEwgMTYgMTkgWiBNIDI2IDE3IEwgMjIgMTcgTCAyMiAxMiBMIDI1LjU4NCAxMiBDIDI1LjcxOSAxMi4xIDI1Ljg1OCAxMi4xOTYgMjYgMTIuMjg3IFogTSAyMCAxMiBMIDIwIDE3IEwgMTYgMTcgTCAxNiAxMiBaIE0gMTQgMTIgTCAx'@; put 'NCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAg'@; put 'TCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3'@; put 'IEwgMjIgMTUuMzU3IEwgMjYgMTUuMzU3IFogTSAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgTCAxNy44NTYgMTIgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3'@; put 'IEwgMjAgMTUuMzU3IFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAx'@; put 'MS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDEx'@; put 'LjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEYuQ2xyU2hhcGVMaW5lQ2hhcnQ9KDAsbS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBa'@; put 'IE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUuMjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMw'@; put 'LjQxNCAxNC40MzYgMjIuMzA4IDI1LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcG9seWdvbj5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIg'@; put 'NyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk2IDMzLjEwNSA1IDMyIDUgWiBNIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42MiAyMC42NCBMIDYgMTku'@; put 'MDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuNjUgMTMgTCAzMS4zNSAxNC4yOCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMy'@; put 'IDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMx'@; put 'IEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUuMjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAy'@; put 'MS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BvbHlnb24+XG4gIDxjaXJjbGUgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzAu'@; put 'MzIgMTMuNDggTCAzMS4zOCAxNC4yOCBMIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuMzEgMTMuNDYgQyAyNS4wNSAxMy4xIDIxLjk2OSA5LjIz'@; put 'MyAyMi41NyA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgMTIuMzQgQyAzMi44OTUgMTMuMDM2IDMxLjYyNiAxMy40MjkgMzAuMzIgMTMuNDggWiI+PC9w'@; put 'YXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMy'@; put 'IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUuNjIgMTUuMjIyIEwgOS42MDIgMjMuOTY4IEwgNS41NSAyMC4zODQgTCA2LjYxIDE5LjE4NiBMIDkuMzA4IDIxLjU3MiBMIDE1LjYzNCAxMi4zOCBMIDIyLjM4NCAyMi4zOTUgTCAyNy43MTcgMTUuMzQ4IEwg'@; put 'MjkuNzI0IDE1LjM0OCBMIDIyLjMwOCAyNS4xNDUgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFs'@; put 'ZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5'@; put 'IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUg'@; put 'MTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjcuNDUyIDE1LjM1NyBMIDIyLjM4IDIyLjA2IEwgMTUuNjMgMTIgTCA5LjI4IDIxLjI4IEwgNi43NSAxOS4wNCBMIDUu'@; put 'NDIgMjAuNTMgTCA5LjY1IDI0LjI4IEwgMTUuNjEgMTUuNTYgTCAyMi4yOCAyNS41IEwgMjkuOTU5IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQi'@; put 'IGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEu'@; put 'OTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksRi5DbHJTaGFwZVBpZUNoYXJ0PSgwLG0uY2xySWNvblNWRyko'@; put 'J1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQg'@; put 'NyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMgMjUgMjMu'@; put 'NDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMuMjYxIDIz'@; put 'LjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42'@; put 'IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg'@; put 'MzEgQyAzMiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBD'@; put 'IDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkgOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBM'@; put 'IDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMy'@; put 'IDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBM'@; put 'IDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1LjQgMjAuNCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQg'@; put 'MjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4x'@; put 'OTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMg'@; put 'MzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAz'@; put 'Mi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4'@; put 'IDkgMTkgOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAy'@; put 'OSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEyLjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcgMjcgWiBN'@; put 'IDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAxMC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI3IDE3IEwgMTkgMTcgTCAxOSAxNS4zNDUgQyAxOS4wMjEgMTUuMzQ4IDE5LjA0MyAxNS4zNDkgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAx'@; put 'IDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNi44MzEgMTUuMzU3IEMgMjYuOTQyIDE1Ljg4NyAyNyAxNi40MzcgMjcgMTcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2'@; put 'IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1'@; put 'NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAy'@; put 'IDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuODA3IDEzLjU4MyAxNy41NzEgMTUuMTk3IDE5IDE1LjM0NSBMIDE5IDE3IEwgMjcgMTcgQyAyNyAxNi40MzcgMjYuOTQyIDE1Ljg4NyAyNi44MzEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBM'@; put 'IDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1h'@; put 'bGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2'@; put 'OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEYuQ2xyU2hhcGVTY2F0dGVy'@; put 'UGxvdD0oMCxtLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMx'@; put 'IDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjEx'@; put 'MSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5'@; put 'MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBD'@; put 'IDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9'@; put 'Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcg'@; put 'MTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBD'@; put 'IDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIv'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAy'@; put 'Ny41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41'@; put 'ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45'@; put 'MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMx'@; put 'IDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45'@; put 'NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAu'@; put 'OTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAx'@; put 'NC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIE0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44'@; put 'MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4'@; put 'LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMg'@; put 'MTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiBNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42Mzcg'@; put 'MjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4z'@; put 'NzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAy'@; put 'Mi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYu'@; put 'NjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4z'@; put 'NCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1'@; put 'LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYg'@; put 'MTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEz'@; put 'OSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNIDE1LjE3'@; put 'NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAy'@; put 'NC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIg'@; put 'MjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUg'@; put 'MjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUu'@; put 'NDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4'@; put 'MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIv'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAy'@; put 'Ljg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUu'@; put 'OCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAx'@; put 'My45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5'@; put 'IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42'@; put 'MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIw'@; put 'Ljc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4w'@; put 'ODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIg'@; put 'MjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUu'@; put 'NTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5'@; put 'MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBj'@; put 'eT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIg'@; put 'NS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0g'@; put 'OS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42'@; put 'NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4w'@; put 'NjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAx'@; put 'OS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYz'@; put 'NiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQu'@; put 'ODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQu'@; put 'MDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAy'@; put 'Ny45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41'@; put 'OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMu'@; put 'MDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAx'@; put 'Ny42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUu'@; put 'OCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAx'@; put 'My45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5'@; put 'IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42'@; put 'MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIw'@; put 'Ljc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4w'@; put 'ODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIg'@; put 'MjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUu'@; put 'NTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5'@; put 'MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44'@; put 'NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1'@; put 'IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiBmaWxsLW9wYWNpdHk9IjAiLz4nKSxG'@; put 'LkNsclNoYXBlVGlja0NoYXJ0PSgwLG0uY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIg'@; put 'MzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2IDI1IEwgOCAy'@; put 'NSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40'@; put 'NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAz'@; put 'MSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMg'@; put 'MjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIv'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUg'@; put 'MjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIg'@; put 'WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIw'@; put 'IDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxjaXJjbGUg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0'@; put 'IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDgg'@; put 'QyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAy'@; put 'MyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBM'@; put 'IDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl'@; put 'cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBM'@; put 'IDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQg'@; put 'MTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUg'@; put 'TCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMg'@; put 'MjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEw'@; put 'IDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQg'@; put 'MTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4w'@; put 'MDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxGLkNsclNoYXBlQmVsbEN1cnZlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywyOUgzQTEsMSwwLDEsMSwzLDI3SDMzQTEsMSwwLDEsMSwzMywyOVoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywyNWgtLjYyYTguMTEsOC4xMSwwLDAsMS04LTYuNjdDMjMuNjIsMTQuNDQsMjEuODksNy45NCwxOCw3Ljk0cy01LjY5LDYuNTEtNi4zOCwxMC4zOWE4LjExLDguMTEsMCwwLDEtOCw2LjY1SDNhMSwxLDAs'@; put 'MSwxLDAtMmguNkE2LjExLDYuMTEsMCwwLDAsOS42LDE4YzEuNDEtNy44OCw0LjMtMTIsOC4zNS0xMnM2LjkzLDQuMTYsOC4zMywxMmE2LjExLDYuMTEsMCwwLDAsNiw1SDMzYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxG'@; put 'LkNoYXJ0U2hhcGVzPXsiYXhpcy1jaGFydCI6Ri5DbHJTaGFwZUF4aXNDaGFydCwiYmFyLWNoYXJ0IjpGLkNsclNoYXBlQmFyQ2hhcnQsImJ1YmJsZS1jaGFydCI6Ri5DbHJTaGFwZUJ1YmJsZUNoYXJ0LCJjbG91ZC1jaGFydCI6Ri5DbHJTaGFwZUNsb3VkQ2hhcnQsImN1cnZlLWNoYXJ0IjpG'@; put 'LkNsclNoYXBlQ3VydmVDaGFydCwiZ3JpZC1jaGFydCI6Ri5DbHJTaGFwZUdyaWRDaGFydCwibGluZS1jaGFydCI6Ri5DbHJTaGFwZUxpbmVDaGFydCwicGllLWNoYXJ0IjpGLkNsclNoYXBlUGllQ2hhcnQsInRpY2stY2hhcnQiOkYuQ2xyU2hhcGVUaWNrQ2hhcnQsInNjYXR0ZXItcGxvdCI6'@; put 'Ri5DbHJTaGFwZVNjYXR0ZXJQbG90LCJib3gtcGxvdCI6Ri5DbHJTaGFwZUJveFBsb3QsImhlYXQtbWFwIjpGLkNsclNoYXBlSGVhdE1hcCwiYmVsbC1jdXJ2ZSI6Ri5DbHJTaGFwZUJlbGxDdXJ2ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuQ2hhcnRTaGFwZXMsImFuYWx5dGljcyIsKDAs'@; put 'eC5kZXNjcmlwdG9yQ29uZmlnKShGLkNoYXJ0U2hhcGVzWyJsaW5lLWNoYXJ0Il0pKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoRi5DaGFydFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25z'@; put 'L3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvbW1lcmNlLXNoYXBlcy50cyAq'@; put 'KiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRiwi'@; put 'X19lc01vZHVsZSIse3ZhbHVlOiEwfSksRi5Db21tZXJjZVNoYXBlcz1GLkNsclNoYXBlRmFjdG9yeT1GLkNsclNoYXBlRW1wbG95ZWU9Ri5DbHJTaGFwZUVtcGxveWVlR3JvdXA9Ri5DbHJTaGFwZVJ1YmxlPUYuQ2xyU2hhcGVQZXNvPUYuQ2xyU2hhcGVDb2luQmFnPUYuQ2xyU2hhcGVCaXRj'@; put 'b2luPUYuQ2xyU2hhcGVZZW49Ri5DbHJTaGFwZVdvbj1GLkNsclNoYXBlUnVwZWU9Ri5DbHJTaGFwZVBvdW5kPUYuQ2xyU2hhcGVFQ2hlY2s9Ri5DbHJTaGFwZURvbGxhckJpbGw9Ri5DbHJTaGFwZUJhbms9Ri5DbHJTaGFwZUNyZWRpdENhcmQ9Ri5DbHJTaGFwZURvbGxhcj1GLkNsclNoYXBl'@; put 'RXVybz1GLkNsclNoYXBlU3RvcmU9Ri5DbHJTaGFwZVdhbGxldD1GLkNsclNoYXBlU2hvcHBpbmdDYXJ0PUYuQ2xyU2hhcGVQaWdneUJhbms9Ri5DbHJTaGFwZVNob3BwaW5nQmFnPUYuQ2xyU2hhcGVDYWxjdWxhdG9yPXZvaWQgMDt2YXIgeD1hZSgKLyohIC4uL3V0aWxzL2Rlc2NyaXB0b3It'@; put 'Y29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLG09YWUoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtGLkNsclNoYXBlQ2Fs'@; put 'Y3VsYXRvcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk04LDMyVjRIMjhWMzJa'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDhIMjUuNjdWNkgxMWExLDEsMCwwLDAtMSwxdjQuNjdoMloiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0zIiBwb2ludHM9IjEyIDE2IDEwIDE2IDEwIDE4IDE0IDE4IDE0IDE0IDEyIDE0IDEyIDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNCAxNiAyMiAxNiAyMiAxOCAyNiAxOCAyNiAx'@; put 'NCAyNCAxNCAyNCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHBvaW50cz0iMTggMTYgMTYgMTYgMTYgMTggMjAgMTggMjAgMTQgMTggMTQgMTggMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBwb2ludHM9IjEyIDIyIDEwIDIyIDEwIDI0IDE0IDI0IDE0IDIwIDEyIDIwIDEyIDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgcG9pbnRzPSIyNCAy'@; put 'MiAyMiAyMiAyMiAyNCAyNiAyNCAyNiAyMCAyNCAyMCAyNCAyMiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHBvaW50cz0iMTggMjIgMTYgMjIgMTYgMjQgMjAgMjQgMjAgMjAgMTggMjAgMTggMjIiLz5cbiAgICAg'@; put 'ICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiBwb2ludHM9IjEyIDI4IDEwIDI4IDEwIDMwIDE0IDMwIDE0IDI2IDEyIDI2IDEyIDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMTAiIHBvaW50cz0iMjQgMjggMjIgMjggMjIgMzAgMjYgMzAgMjYgMjYgMjQgMjYgMjQgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgcG9pbnRzPSIxOCAyOCAxNiAyOCAxNiAzMCAyMCAzMCAy'@; put 'MCAyNiAxOCAyNiAxOCAyOCIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMiwyOEgxMFYy'@; put 'NmgyWm0wLTZIMTBWMjBoMlptMC02SDEwVjE0aDJabTcsMTJIMTdWMjZoMlptMC02SDE3VjIwaDJabTAtNkgxN1YxNGgyWm03LDEySDI0VjI2aDJabTAtNkgyNFYyMGgyWm0wLTZIMjRWMTRoMlptMC03SDEwVjVIMjZaIi8+JyksRi5DbHJTaGFwZVNob3BwaW5nQmFnPSgwLG0uY2xySWNvblNW'@; put 'RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjUsMTJWOS4wNWE3LDcsMCwxLDAtMTQsMHY3YTEsMSwwLDAsMCwyLDBWMTRoOFYxMkgxM1Y5LjA1YTUsNSwwLDEsMSwxMCwwVjE2YTEsMSwwLDEsMCwyLDBWMTRoNVYzMkg2VjE0SDlWMTJI'@; put 'NFYzMi4wOUExLjkxLDEuOTEsMCwwLDAsNS45MSwzNEgzMC4wOUExLjkxLDEuOTEsMCwwLDAsMzIsMzIuMDlWMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTMsOS4yMmE1LDUsMCwxLDEsMTAsMFYxMmgyVjkuMjJh'@; put 'Nyw3LDAsMSwwLTE0LDBWMTJoMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNSwxMnYzLjFhMSwxLDAsMSwxLTIsMFYxMkgxM3YzLjFhMSwxLDAsMCwxLTIsMFYxMkg0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAs'@; put 'MCwwLDItMlYxMloiLz4nKSxGLkNsclNoYXBlUGlnZ3lCYW5rPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNzIsMTAuNDdhMTEuNjUsMTEuNjUsMCwwLDAtNi4zMS41MkEuOC44LDAsMSwwLDE0LDEyLjQ4'@; put 'LDEwLjExLDEwLjExLDAsMCwxLDE5LjQ0LDEyYS44LjgsMCwxLDAsLjI4LTEuNTdaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjUuMzgiIGN5PSIxNi43MSIgcj0iMS4zNiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zNS41MSwxOC42M2ExLDEsMCwwLDAtLjg0LS40NCwzLjQyLDMuNDIsMCwwLDEtMi4wOS0xLjEyLDE3LjM1LDE3LjM1LDAsMCwxLTIuNjMtMy43OGwyLjg4LTQuNUExLjg5LDEuODksMCwwLDAsMzMsN2Ex'@; put 'Ljc3LDEuNzcsMCwwLDAtMS4zMy0xLDEwLjEyLDEwLjEyLDAsMCwwLTUuMzkuNzUsMTIuNzIsMTIuNzIsMCwwLDAtMi43MiwxLjYzLDE2Ljk0LDE2Ljk0LDAsMCwwLTUuMTYtMS4zOUMxMS4zMSw2LjMsNC44MywxMC45LDQsMTdINGEyLjU2LDIuNTYsMCwwLDEtMS4zOC0xLjUzLDEuODEsMS44'@; put 'MSwwLDAsMSwuMTQtMS40LDEuMTksMS4xOSwwLDAsMSwuNDMtLjQzLDEuMDgsMS4wOCwwLDAsMC0xLjEyLTEuODVBMy4zMSwzLjMxLDAsMCwwLC45MSwxM2E0LDQsMCwwLDAtLjMzLDMuMDhBNC43Niw0Ljc2LDAsMCwwLDMsMTguOTVsLjkyLjQ2YTE3LjU4LDE3LjU4LDAsMCwwLDEuODIsN2wu'@; put 'MTcuMzhBMjMsMjMsMCwwLDAsOS4yLDMxLjg4YTEsMSwwLDAsMCwuNzUuMzRoNC41MmExLDEsMCwwLDAsLjkyLTEuMzhMMTUsMjkuOTRsMS4xOC4xM2EyMC4zMywyMC4zMywwLDAsMCw0LDBjLjM3LjYuNzcsMS4yLDEuMjEsMS43OWExLDEsMCwwLDAsLjguNDFoNC4zNGExLDEsMCwwLDAsLjky'@; put 'LTEuMzljLS4xNy0uNC0uMzQtLjgzLS40Ny0xLjItLjE4LS41My0uMzItMS0uNDMtMS40NUExMy4xOCwxMy4xOCwwLDAsMCwyOS41NiwyNmExMi41LDEyLjUsMCwwLDAsMywwLDEsMSwwLDAsMCwuNzgtLjYybDIuMjYtNS44MUExLDEsMCwwLDAsMzUuNTEsMTguNjNabS0zLjc4LDUuNDRhMTEu'@; put 'MzcsMTEuMzcsMCwwLDEtMi4zNS0uMTFoMGE4LjIsOC4yLDAsMCwxLTIuNTMtLjg3LDEsMSwwLDAsMC0uOTMsMS43NywxMS43MiwxMS43MiwwLDAsMCwxLjI5LjU4LDgsOCwwLDAsMS0xLjgsMS4xNmwtMS4wNi40OHMuNDksMi4xOS44MiwzLjE2SDIyLjc5Yy0uMjQtLjM0LTEuNDUtMi4zNi0x'@; put 'LjQ1LTIuMzZsLS42Ny4wOWExOC41MywxOC41MywwLDAsMS00LjI1LjEyYy0uNjYtLjA2LTEuNzYtLjItMi42Mi0uMzVsLTEuNTUtLjI3cy42MywyLjQzLjc1LDIuNzR2MEgxMC40MkEyMC41NywyMC41NywwLDAsMSw3Ljc2LDI2bC0uMTgtLjM5QTE0LjYyLDE0LjYyLDAsMCwxLDYsMTcuNDhj'@; put 'LjU0LTUuMTksNi4xMi05LjExLDEyLjE5LTguNTRhMTUuNDcsMTUuNDcsMCwwLDEsNS4wOCwxLjQ4bC42Mi4yOS41LS40N0ExMC4yOSwxMC4yOSwwLDAsMSwyNyw4LjU0YTguMjUsOC4yNSwwLDAsMSw0LS42NWwtMy4zOCw1LjI5LjI1LjVoMGEyMS4xNiwyMS4xNiwwLDAsMCwzLjMxLDQuODQs'@; put 'Ni40OSw2LjQ5LDAsMCwwLDIuMTQsMS4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNSwxOC44N0E1LjgzLDUuODMsMCwwLDEsMzMsMTcuNjFhMjEuNjMsMjEuNjMsMCwwLDEtMy4yOS00Ljg0bDMuMzktNS4yOWEu'@; put 'OS45LDAsMCwwLS41NC0xLjM4LDkuNjcsOS42NywwLDAsMC01LjEzLjcyLDEyLDEyLDAsMCwwLTMuMTMsMkExNy4zNywxNy4zNywwLDAsMCwxOC42LDcuMTVDMTEuOCw2LjUyLDUuMjcsMTAuOSw0LjU0LDE3bC0uMTQtLjA3QTIuNzYsMi43NiwwLDAsMSwyLjksMTUuMjlhMiwyLDAsMCwxLC4x'@; put 'NS0xLjU1LDEuMzIsMS4zMiwwLDAsMSwuNDctLjQ4LDEuMDgsMS4wOCwwLDEsMC0xLjEyLTEuODUsMy40NSwzLjQ1LDAsMCwwLTEuMjMsMS4yNUE0LjE2LDQuMTYsMCwwLDAsLjg0LDE1LjlhNSw1LDAsMCwwLDIuNTcsM2wxLC41NGExOC42MiwxOC42MiwwLDAsMCwyLDcuMywyMywyMywwLDAs'@; put 'MCwzLDQuNzksMSwxLDAsMCwwLC44LjM4aDMuNjFhLjUyLjUyLDAsMCwwLC40LS43NUwxNCwzMC4zOGExMSwxMSwwLDAsMS0uMzMtMS4xOGMuOTEuMTYsMi4wOC4zMSwyLjg3LjM4YTIwLjA3LDIwLjA3LDAsMCwwLDMuMTIsMGMuMzkuNy43OSwxLjMzLDEuMTUsMS44NWEuOTMuOTMsMCwwLDAs'@; put 'Ljc3LjQxaDMuMTFhLjY1LjY1LDAsMCwwLC42MS0uODVjLS4yMy0uNzQtLjUzLTEuNzUtLjcxLTIuMzdhMTUuOSwxNS45LDAsMCwwLDMuNzUtMS43NmMuMTYtLjExLjMyLS4yNi40OC0uMzlhMTMuNzcsMTMuNzcsMCwwLDEtMi40Mi0xLC44LjgsMCwwLDEsLjc0LTEuNDIsMTEuNjQsMTEuNjQs'@; put 'MCwwLDAsMy4xOCwxLjEsMTMuMzEsMTMuMzEsMCwwLDAsMi42OC4xMiwxLDEsMCwwLDAsLjktLjY2bDEuNzMtNC40NEExLDEsMCwwLDAsMzUsMTguODdaTTEzLjc5LDExLjU5YS44Ni44NiwwLDAsMS0uMy4wNS44NS44NSwwLDAsMS0uMy0xLjY0LDEyLjQxLDEyLjQxLDAsMCwxLDYuNjktLjU1'@; put 'Ljg1Ljg1LDAsMSwxLS4zLDEuNjdBMTAuNzUsMTAuNzUsMCwwLDAsMTMuNzksMTEuNTlabTEyLjUyLDYuMTJhMS40NCwxLjQ0LDAsMSwxLDEuNDQtMS40NEExLjQ0LDEuNDQsMCwwLDEsMjYuMzIsMTcuNzJaIi8+JyksRi5DbHJTaGFwZVNob3BwaW5nQ2FydD0oMCxtLmNsckljb25TVkcpKCc8'@; put 'Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjA4LDUuMzdBMSwxLDAsMCwwLDMyLjMxLDVIMTEuNDlsLjY1LDJIMzFMMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5LDE0LjVM'@; put 'OS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDMuMTctMTRBMSwxLDAsMCwwLDMzLjA4LDUu'@; put 'MzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAv'@; put 'PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwLjcxIDcgMjEuODcgNSAxMS40'@; put 'OSA1IDEyLjE0IDcgMjAuNzEgNyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTUsMTUuNCwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42'@; put 'MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xM2ExLDEs'@; put 'MCwwLDAsMS0uNzhsMS4wOS00LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4y'@; put 'OCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIx'@; put 'My4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTcsN2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDExLjQ5bC42NSwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVsLS40MiwwTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4xM0EyLjY2'@; put 'LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjU3LTYuOTFBNy41MSw3LjUxLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+'@; put 'XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p'@; put 'LXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xLDYuMzlBMSwxLDAsMCwwLDMyLjMxLDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0uMTMuMTNB'@; put 'Mi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMy4yLTEzQTEsMSwwLDAsMCwzMy4xLDYuMzlaIiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI2LjUi'@; put 'IGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDkuMjFMOC43Niw0LjU3YTEsMSww'@; put 'LDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYt'@; put 'MWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuMTktNC44NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu'@; put 'MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxj'@; put 'aXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0LjQ3TDku'@; put 'OTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjcxLTdBNy40OSw3LjQ5LDAsMCwxLDMwLDEz'@; put 'LjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1p'@; put 'LWJhZGdlIiAvPicpLEYuQ2xyU2hhcGVXYWxsZXQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgzMVY5YTEsMSwwLDAsMC0xLTFINmExLDEsMCwwLDEtMS0uODJWNi44MkExLDEsMCwwLDEsNiw2SDI5'@; put 'LjU4YTEsMSwwLDAsMCwwLTJINkEzLDMsMCwwLDAsMyw3YTMuMDgsMy4wOCwwLDAsMCwwLC4zNlYyNy45M0E0LjEsNC4xLDAsMCwwLDcuMTMsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNWgxYTEsMSwwLDAsMCwxLTFWMTZBMSwxLDAsMCwwLDMyLDE1Wk0yOSwzMEg3LjEzQTIuMTEsMi4xMSwwLDAs'@; put 'MSw1LDI3LjkzVjkuODhBMy4xMSwzLjExLDAsMCwwLDYsMTBIMjl2NUgyMmE1LDUsMCwwLDAsMCwxMGg3Wm0yLTdIMjJhMywzLDAsMCwxLDAtNkgzMVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMy4wMSIg'@; put 'Y3k9IjIwIiByPSIxLjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi45NCwxNEgzMVY5YTEsMSwwLDAsMC0xLTFINkExLDEsMCwwLDEsNSw3SDVWN0ExLDEsMCwwLDEsNiw2SDI5LjZhMSwxLDAsMSwwLDAtMkg2QTIu'@; put 'OTQsMi45NCwwLDAsMCwzLDYuODh2MjFBNC4xMyw0LjEzLDAsMCwwLDcuMTUsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNmgxLjk0YS45My45MywwLDAsMCwxLS45MXYtMTBBMS4wOCwxLjA4LDAsMCwwLDMyLjk0LDE0Wk0zMiwyNGwtOC41OCwwYTMuODcsMy44NywwLDAsMS0zLjczLTQsMy44Nywz'@; put 'Ljg3LDAsMCwxLDMuNzMtNEwzMiwxNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjI0LjA0IiBjeT0iMTkuOTIiIHI9IjEuNSIvPicpLEYuQ2xyU2hhcGVTdG9yZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAsMCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwuNDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQuNzIsMCww'@; put 'LDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdBMiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0zMCwxOC4xM0EyLjY4LDIuNjgsMCww'@; put 'LDEsMjcuODIsMTdMMjcsMTUuODgsMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OCwyMC4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDE1LDE1Ljg4LDE0LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OCw4LjE4LDE3QTIuNjgsMi42OCwwLDAs'@; put 'MSw2LDE4LjEzYTIuNjQsMi42NCwwLDAsMS0yLS44OFYxNC4xN0w4LjA4LDZIMjcuOTJMMzIsMTQuMTZ2LjY3bDAsMi4zOUEyLjY3LDIuNjcsMCwwLDEsMzAsMTguMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjgs'@; put 'MzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAsMjcuOTIs'@; put 'NEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIsMCwwLDAtLjIxLjl2My4wOGEyLDIsMCwwLDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAsMCw2LDAs'@; put 'NC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0uNTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMTUsMTQuNHYxLjUyTDE0LjE4LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OFYxNC40TDExLjU5LDZIMTZabTEy'@; put 'LDEuNDhMMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OGwwLDBWMTQuNEwyMCw2aDQuNDVMMjcsMTQuNFoiLz4nKSxGLkNsclNoYXBlRXVybz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i'@; put 'TTMxLjQ4LDI4LjQ5YTEsMSwwLDAsMC0xLjM4LS4zMkExMiwxMiwwLDAsMSwxMi40NSwyMkgyNC4xNmExLDEsMCwwLDAsMC0ySDExLjkzYTExLjE2LDExLjE2LDAsMCwxLDAtNEgyNC4xNmExLDEsMCwwLDAsMC0ySDEyLjQ1QTEyLDEyLDAsMCwxLDMwLjA2LDcuOGExLDEsMCwwLDAsMS4wNi0x'@; put 'LjdBMTQsMTQsMCwwLDAsMTAuMzQsMTRIMy41NGExLDEsMCwxLDAsMCwySDkuOTFhMTQsMTQsMCwwLDAtLjE2LDIsMTQsMTQsMCwwLDAsLjE2LDJIMy41NGExLDEsMCwxLDAsMCwyaDYuOGExNCwxNCwwLDAsMCwyMC44Myw3Ljg3QTEsMSwwLDAsMCwzMS40OCwyOC40OVoiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNDIsMjUuMTZBMTAuODgsMTAuODgsMCwwLDEsOS4yMywyMUg1Ljg0YTEsMSwwLDAsMSwwLTJoM2MwLS4zNS0uMDUtLjcx'@; put 'LS4wNS0xLjA3czAtLjYzLDAtLjkzaC0zYTEsMSwwLDAsMSwwLTJIOS4xOUExMC44NiwxMC44NiwwLDAsMSwyNS4zOCw4LjY5YTEuMjUsMS4yNSwwLDAsMS0xLjMyLDIuMTJBOC4zNiw4LjM2LDAsMCwwLDExLjgyLDE1aDkuMzZhMSwxLDAsMCwxLDAsMkgxMS4zM2E3LjcyLDcuNzIsMCwwLDAs'@; put 'MCwyaDkuODJhMSwxLDAsMCwxLDAsMkgxMS44N2E4LjM2LDguMzYsMCwwLDAsMTIuMjIsNCwxLjI1LDEuMjUsMCwxLDEsMS4zMywyLjEyWiIvPicpLEYuQ2xyU2hhcGVEb2xsYXI9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIGQ9Ik0yNiwyMS4xNWE2LjkxLDYuOTEsMCwwLDAtNC4zOC0zLjMyQTI2LDI2LDAsMCwwLDE5LDE3LjE5VjguMTJBMTAuMDUsMTAuMDUsMCwwLDEsMjMuODYsMTBhMSwxLDAsMCwwLDEuMzMtMS41QTExLjc1LDExLjc1LDAsMCwwLDE5LDYuMVYzYTEsMSwwLDAsMC0yLDBWNmMtNC40LjEt'@; put 'Ni44MywyLjI5LTcuNTcsNC4xOEE1LjU2LDUuNTYsMCwwLDAsMTEuNjYsMTcsMTMuMiwxMy4yLDAsMCwwLDE3LDE4Ljg0VjI4YTEyLjMsMTIuMywwLDAsMS03LjE0LTIuNzRBMSwxLDAsMSwwLDguNDksMjYuNywxNC4wOSwxNC4wOSwwLDAsMCwxNywzMHYzYTEsMSwwLDAsMCwyLDBWMzBjMi44'@; put 'Mi0uMTksNi4wNy0xLjA5LDcuMy00Ljc2QTUuMzMsNS4zMywwLDAsMCwyNiwyMS4xNVpNMTIuNzksMTUuMzJhMy41NywzLjU3LDAsMCwxLTEuNDktNC4zOUMxMS40MSwxMC42MywxMi41Myw4LjEyLDE3LDh2OC44QTEwLjcsMTAuNywwLDAsMSwxMi43OSwxNS4zMlpNMjQuNCwyNC41NmMtLjcy'@; put 'LDIuMTQtMi4zMiwzLjE3LTUuNCwzLjRWMTkuMjNjLjY0LjE0LDEuMy4zLDIsLjUxYTUsNSwwLDAsMSwzLjE5LDIuMzJBMy4zNCwzLjM0LDAsMCwxLDI0LjQsMjQuNTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxuICAgICAg'@; put 'ICAgICAgICAgIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNjUsMjEuNTljLTEsMy0zLjYxLDMuODQtNS45LDR2MmExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjcuNTlBMTEuNDcsMTEuNDcsMCwwLDEsMTEsMjVhMS4yNSwxLjI1LDAsMSwxLDEuNzEtMS44'@; put 'Myw5LjExLDkuMTEsMCwwLDAsNC41NSwxLjk0VjE4LjgzYTkuNjMsOS42MywwLDAsMS0zLjczLTEuNDEsNC44LDQuOCwwLDAsMS0xLjkxLTUuODRjLjU5LTEuNTEsMi40Mi0zLjIzLDUuNjQtMy41MVY2LjI1YTEuMjUsMS4yNSwwLDAsMSwyLjUsMFY4LjExYTkuNjcsOS42NywwLDAsMSw0Ljks'@; put 'MkExLjI1LDEuMjUsMCwwLDEsMjMsMTEuOTVhNy4xNCw3LjE0LDAsMCwwLTMuMjQtMS4zMXY2LjEzYy42LjEzLDEuMjQuMjcsMS45MS40OGE1Ljg1LDUuODUsMCwwLDEsMy42OSwyLjgyQTQuNjQsNC42NCwwLDAsMSwyNS42NSwyMy41OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC45MiwxOS42NGMtLjQtLjEyLS43OS0uMjItMS4xNy0uM3Y1Ljc2YzItLjIsMy4wNy0uOSwzLjUzLTIuM2EyLjE1LDIuMTUsMCwwLDAtLjE1LTEuNThBMy40OSwzLjQ5LDAsMCwwLDIwLjkyLDE5LjY0WiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTEzLjk0LDEyLjQ4YTIuMzEsMi4zMSwwLDAsMCwxLDIuODcsNi41Myw2LjUzLDAsMCwwLDIuMzIuOTJWMTAuNTVDMTUuMTYsMTAuOCwxNC4xOSwxMS44NCwxMy45NCwxMi40OFoiLz4nKSxGLkNsclNo'@; put 'YXBlQ3JlZGl0Q2FyZD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMiwwLDEySDRMNCw4Wk00LDI4VjI0SDMydjRaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjMiIHdpZHRoPSIyMiIgaGVpZ2h0PSIzMCIgcng9IjAuOTYiIHJ5PSIwLjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikgcm90YXRlKDkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBz'@; put 'dHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwy'@; put 'LDAsMCwwLDMyLDZabTAsMThINFYyMEgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZUJhbms9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMuNSwxMy41NiwxOCw1LjIzbDE0LjUsOC4zM2ExLDEsMCwwLDAsMS0xLjczTDE4LDIu'@; put 'OTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1'@; put 'SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4aDMuMjFM'@; put 'MTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgyOFYxNy42'@; put 'M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwxLDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0iMjYiIGhl'@; put 'aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjIuNzcsOEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwxLDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVBMy41MSwzLjUx'@; put 'LDAsMCwxLDIwLDE0SDV2MkgzMVYxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDYsOS43NGwuNjgtMS4xNy0xLjQ5LS44NWEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44'@; put 'NmgzLjIxbDMuOS0yLjI0LDEuMS42M0MxOS4zOSw5Ljg5LDE5LjQyLDkuODEsMTkuNDYsOS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMDUsNS4yNSwxOCwyLjkyLDIu'@; put 'NSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjEuMDUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs'@; put 'MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTMuNSwxMy41Niw1LDEyLjY4VjE2SDMxVjEyLjcxbDEuNDguODVhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWk0xNy44NSw3LjExYS44LjgsMCwwLDEsLjgsMEwyNS4zNywxMUgyMi4xNWwtMy45LTIuMjRMMTQuMzUsMTFI'@; put 'MTEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1LjE1QTEu'@; put 'MTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAsMCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjg1LDI3'@; put 'SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYzSDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4xNSwwLDAs'@; put 'MCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzksMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0bDYuNzItMy44'@; put 'NmEuOC44LDAsMCwxLC44LDBsNSwyLjg3QTcuNDUsNy40NSwwLDAsMSwyMi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0w1LDEyLjY4VjE2SDMxVjEzLjQyQTcuNTMsNy41MywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwxMy4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi44NSwy'@; put 'N0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEuMTUsMCww'@; put 'LDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNWEzLjUxLDMuNTEsMCwwLDEtMy01LjI2bC4xNC0uMjQtMS4zNS0uNzhMMTQuMzUsMTFIMTEuMTRsNi43Mi0z'@; put 'Ljg2YS44LjgsMCwwLDEsLjgsMGwxLjc1LDEsMS42NS0yLjg2TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYxNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxGLkNsclNoYXBlRG9sbGFyQmlsbD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJh'@; put 'MiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCw2YTQuMjUsNC4yNSwwLDAsMS0zLjktNEgzMlptMCwxLjYydjQuODNBNS44Nyw1Ljg3LDAsMCwwLDI2LjQ5LDI2aC0xN0E1Ljg3LDUuODcsMCwwLDAsNCwyMC40NFYxNS42QTUuODcsNS44NywwLDAsMCw5LjUxLDEwaDE3QTUuODcs'@; put 'NS44NywwLDAsMCwzMiwxNS42Wk03LjksMTBBNC4yNSw0LjI1LDAsMCwxLDQsMTRWMTBaTTQsMjIuMDZBNC4yNSw0LjI1LDAsMCwxLDcuOSwyNkg0Wk0yOC4xLDI2QTQuMjUsNC4yNSwwLDAsMSwzMiwyMi4wNlYyNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTAuODVjLTMuNDcsMC02LjMsMy4yMS02LjMsNy4xNXMyLjgzLDcuMTUsNi4zLDcuMTUsNi4zLTMuMjEsNi4zLTcuMTVTMjEuNDcsMTAuODUsMTgsMTAuODVabTAsMTIuNjljLTIuNTksMC00LjctMi40OS00LjctNS41NXMyLjExLTUuNTUs'@; put 'NC43LTUuNTUsNC43LDIuNDksNC43LDUuNTVTMjAuNTksMjMuNTUsMTgsMjMuNTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs'@; put 'Mi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk00LDI2VjIxLjE1QTUuMTgsNS4xOCwwLDAsMSw4Ljc5LDI2Wk00LDE0Ljg1VjEwSDguNzlBNS4xOCw1LjE4LDAsMCwxLDQsMTQuODVaTTE4LDI1LjE1Yy0zLjQ3LDAtNi4zLTMuMjEtNi4zLTcuMTVzMi44My03LjE1LDYuMy03LjE1LDYuMywzLjIxLDYu'@; put 'Myw3LjE1UzIxLjQ3LDI1LjE1LDE4LDI1LjE1Wk0zMiwyNkgyNy4yNUE1LjE4LDUuMTgsMCwwLDEsMzIsMjEuMTVabTAtMTEuMTVBNS4xOCw1LjE4LDAsMCwxLDI3LjI1LDEwSDMyWiIvPlxuICAgICAgICAgICAgPGVsbGlwc2UgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MiIgY3g9IjE4IiBjeT0iMTgiIHJ4PSI0IiByeT0iNC43MiIvPicpLEYuQ2xyU2hhcGVFQ2hlY2s9KDAsbS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjE1IiBoZWlnaHQ9IjIiLz5cbiAg'@; put 'ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMCIgeT0iMjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTM0'@; put 'LDhIMTIuOTNhOC4zNSw4LjM1LDAsMCwxLC43OSwySDMzVjI2SDNWMTkuOWE3LjgzLDcuODMsMCwwLDEtMi0xLjM0VjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTQiIGQ9Ik02LjU3LDE4LjY4YTYuMTcsNi4xNywwLDAsMCw0LjMyLTEuNTksMS4yLDEuMiwwLDAsMCwuMzYtLjg0LDEuMDgsMS4wOCwwLDAsMC0xLjA5LTEuMTEsMSwxLDAsMCwwLS43MS4yNSw0LjMyLDQuMzIsMCwwLDEtMi44NCwxLDMuMzUsMy4zNSwwLDAsMS0z'@; put 'LjQ2LTNoNy41M0ExLjI5LDEuMjksMCwwLDAsMTIsMTIuMDYsNS42OCw1LjY4LDAsMCwwLDYuMjcsNi4xNCw2LDYsMCwwLDAsLjQsMTIuNHYwQTYsNiwwLDAsMCw2LjU3LDE4LjY4Wk02LjI1LDguMzljMS44MiwwLDIuODcsMS4zOSwzLDMuMTZIMy4xM0MzLjM4LDkuNjksNC41Niw4LjM5LDYu'@; put 'MjUsOC4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCw4SDEyLjkxYTguNjEsOC42MSwwLDAsMSwxLjIsNC4zOSw4LDgsMCwwLDEtNy43OCw4LjI3QTcuNTEsNy41MSwwLDAsMSwxLDE4LjQxVjI3YTEsMSwwLDAs'@; put 'MCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4Wk0zMSwyM0gyMFYyMUgzMVptMC01SDE2VjE2SDMxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYuNTcsMTguNjhBNiw2LDAsMCwxLC40LDEyLjQ0'@; put 'djBBNiw2LDAsMCwxLDYuMjcsNi4xNCw1LjY4LDUuNjgsMCwwLDEsMTIsMTIuMDZhMS4yOSwxLjI5LDAsMCwxLTEuMywxLjMySDMuMTVhMy4zNSwzLjM1LDAsMCwwLDMuNDYsMyw0LjMyLDQuMzIsMCwwLDAsMi44NC0xLDEsMSwwLDAsMSwuNzEtLjI1LDEuMDgsMS4wOCwwLDAsMSwxLjA5LDEu'@; put 'MTEsMS4yLDEuMiwwLDAsMS0uMzYuODRBNi4xNyw2LjE3LDAsMCwxLDYuNTcsMTguNjhaTTkuMywxMS41NWMtLjE4LTEuNzctMS4yMy0zLjE2LTMtMy4xNnMtMi44NywxLjMtMy4xMiwzLjE2WiIvPicpLEYuQ2xyU2hhcGVQb3VuZD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjksMzBIMTMuNEE4LjQ1LDguNDUsMCwwLDAsMTUsMjQuNjVWMjFoNC4zMWExLDEsMCwwLDAsMC0ySDE1VjExLjMxQTUuMjQsNS4yNCwwLDAsMSwyMC4yMSw2LDUuMTksNS4xOSwwLDAsMSwyNCw3LjczYTEsMSwwLDAsMCwx'@; put 'LjQ4LTEuMzVBNy4xOSw3LjE5LDAsMCwwLDEzLDExLjMxVjE5SDguNzJhMSwxLDAsMSwwLDAsMkgxM3YzLjY1QzEzLDI5LjM4LDEwLjEyLDMwLDEwLDMwYTEsMSwwLDAsMCwuMTcsMkgyNy45YTEsMSwwLDEsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LjUsMjUuOTJIMTEuNzRhMS4yNSwxLjI1LDAsMCwxLS4yMi0yLjQ4Yy4xNSwwLDEuNzItLjQ5LDEuNzItMy41NFYxOWgtMi41YTEsMSwwLDAsMSwwLTJoMi41VjExLjg4YTUu'@; put 'ODUsNS44NSwwLDAsMSw1LjcyLTYsNS42Myw1LjYzLDAsMCwxLDQuMjEsMS45NEExLjI1LDEuMjUsMCwxLDEsMjEuMyw5LjUxLDMuMDgsMy4wOCwwLDAsMCwxOSw4LjQyYTMuMzUsMy4zNSwwLDAsMC0zLjIyLDMuNDZWMTdoM2ExLDEsMCwwLDEsMCwyaC0zdjIuOUE3LjY1LDcuNjUsMCwwLDEs'@; put 'MTUsMjUuNDJIMjQuNWExLjI1LDEuMjUsMCwwLDEsMCwyLjVaIi8+JyksRi5DbHJTaGFwZVJ1cGVlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsOEgyNC4xNEE3LjUyLDcuNTIsMCwwLDAsMjIuNiw2SDI4'@; put 'YTEsMSwwLDAsMCwwLTJIMTBhMSwxLDAsMCwwLDAsMmg3LjU1YTUuNDIsNS40MiwwLDAsMSw0LjIsMkgxMGExLDEsMCwwLDAsMCwySDIyLjc5QTUuNTQsNS41NCwwLDAsMSwyMywxMS41MSw1LjQ4LDUuNDgsMCwwLDEsMTcuNTUsMTdIMTEuMTRhMSwxLDAsMCwwLS43NSwxLjY2TDIyLjA2LDMy'@; put 'YTEsMSwwLDEsMCwxLjUtMS4zMkwxMy4zNSwxOWg0LjIxYTcuNTEsNy41MSwwLDAsMCw3LjMtOUgyOGExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYs'@; put 'MTYsMCwwLDAsMTgsMlptNS44OCw5SDI2YTEsMSwwLDAsMSwwLDJIMjQuMjZjMCwuMDYsMCwuMTIsMCwuMTlhNi4wOSw2LjA5LDAsMCwxLTYsNi4yaC0ybDYuODIsOC4wNmExLjI1LDEuMjUsMCwwLDEtMS45MSwxLjYyTDEyLjYzLDE4Ljk0YTEuMjUsMS4yNSwwLDAsMSwxLTIuMDZoNC43MWEz'@; put 'LjU5LDMuNTksMCwwLDAsMy40OC0zLjY5YzAtLjA3LDAtLjEzLDAtLjJoLTlhMSwxLDAsMCwxLDAtMmg4LjMyYTMuNDEsMy40MSwwLDAsMC0yLjc4LTEuNUgxMi43NWExLjI1LDEuMjUsMCwwLDEsMC0yLjVIMjZhMSwxLDAsMCwxLDAsMkgyMi42OEE2LjIzLDYuMjMsMCwwLDEsMjMuODgsMTFa'@; put 'Ii8+JyksRi5DbHJTaGFwZVdvbj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE4SDI4Ljc1bC41LTJIMzNhMSwxLDAsMCwwLDAtMkgyOS43NGwyLjE3LTguNzZBMSwxLDAsMCwwLDMwLDQuNzZMMjcuNjgs'@; put 'MTRIMjEuMzFMMTksNC43NmExLDEsMCwwLDAtMS45NCwwTDE0Ljc5LDE0SDguNDJMNi4xMyw0Ljc2YTEsMSwwLDAsMC0xLjk0LjQ4TDYuMzYsMTRIM2ExLDEsMCwwLDAsMCwySDYuODVsLjUsMkgzYTEsMSwwLDAsMCwwLDJINy44NGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMTUuMzYs'@; put 'MjBoNS4zOGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMjguMjUsMjBIMzNhMSwxLDAsMCwwLDAtMlptLTUuODItMi0uNSwySDIyLjNsLS41LTJaTTE4LDkuMTYsMTkuMjUsMTRoLTIuNFpNOC45MSwxNmg1LjM4bC0uNSwySDkuNDFaTTExLjYsMjYuODQsOS45MSwyMEgxMy4zWk0xNS44'@; put 'NSwxOGwuNS0yaDMuMzlsLjUsMlptOC42NCw4Ljg0TDIyLjgsMjBoMy4zOVoiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHBvaW50cz0iMTcuNzQgMTYgMTcuMjIgMTggMTguODUgMTggMTguMzIgMTYgMTcuNzQgMTYiLz5c'@; put 'biAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHBvaW50cz0iMTEuOTQgMTggMTQuNjMgMTggMTUuMTYgMTYgMTEuNDEgMTYgMTEuOTQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTMiIHBvaW50cz0iMTMuMjkgMjMuMSAxNC4xIDIwIDEyLjQ3IDIwIDEzLjI5IDIzLjEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHBvaW50cz0iMjEuNDQgMTggMjQuMTMgMTggMjQuNjYgMTYgMjAuOTEg'@; put 'MTYgMjEuNDQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIHBvaW50cz0iMjIuNzggMjMuMSAyMy42IDIwIDIxLjk3IDIwIDIyLjc4IDIzLjEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LDIwSDI2LjE5TDI0LDI4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMMTkuMzgsMjBIMTYuNjlsLTIuMTksOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDkuODgsMjBI'@; put 'N2ExLDEsMCwwLDEsMC0ySDkuMzVsLS41My0ySDdhMSwxLDAsMCwxLDAtMkg4LjNsLTEtMy42OGExLjI1LDEuMjUsMCwwLDEsMi40Mi0uNjRMMTAuODgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40MiwwTDIwLjM4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1LDAsMCwx'@; put 'LDIuNDIuNjRsLTEsMy42OEgyOWExLDEsMCwwLDEsMCwySDI3LjI0bC0uNTMsMkgyOWExLDEsMCwwLDEsMCwyWiIvPicpLEYuQ2xyU2hhcGVZZW49KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4zNCw0LjU1'@; put 'YTEsMSwwLDEsMC0xLjY3LTEuMUwxOCwxOC4yMyw4LjMzLDMuNDVhMSwxLDAsMCwwLTEuNjcsMS4xTDE3LDIwLjM1VjIyLjJIMTJhLjguOCwwLDAsMCwwLDEuNmg1djIuNEgxMmEuOC44LDAsMCwwLDAsMS42aDVWMzJhMSwxLDAsMCwwLDIsMFYyNy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYy'@; put 'My44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMC4zNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMDcsNy45MUwxOS43NCwyMEgyMmExLDEs'@; put 'MCwwLDEsMCwySDE5LjI1djJIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYyLjc1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNkgxNGExLDEsMCwxLDEsMC0yaDIuNzVWMjJIMTRhMSwxLDAsMSwxLDAtMmgyLjI2TDkuOTMsOS45MWExLjI1LDEuMjUsMCwxLDEsMi4xMi0xLjMzTDE4LDE4LjA4bDUu'@; put 'OTUtOS40OWExLjI1LDEuMjUsMCwxLDEsMi4xMiwxLjMzWiIvPicpLEYuQ2xyU2hhcGVCaXRjb2luPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC4xMSwxNi44OEE1LjQ5LDUuNDksMCwwLDAsMjEsN1Y0YTEsMSwwLDAsMC0yLDBWN0gxNlY0YTEsMSwwLDAsMC0yLDBWN0gxMWExLDEs'@; put 'MCwwLDAtMSwxVjI4YTEsMSwwLDAsMCwxLDFoM3YzYTEsMSwwLDAsMCwyLDBWMjloM3YzYTEsMSwwLDAsMCwyLDBWMjloLjA4QTYuMDcsNi4wNywwLDAsMCwyNywyMi44MXYtLjYyQTYuMjUsNi4yNSwwLDAsMCwyNC4xMSwxNi44OFpNMTIsOWg4LjY5YTMuNTksMy41OSwwLDAsMSwzLjQzLDIu'@; put 'MzZBMy41MSwzLjUxLDAsMCwxLDIwLjc5LDE2SDEyWk0yNSwyMi44MUE0LjA4LDQuMDgsMCwwLDEsMjEuMDYsMjdIMTJWMThoOS4wNkE0LjA4LDQuMDgsMCwwLDEsMjUsMjIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0yMS4xOCwxOC40N0gxNC41djZoNi42OGEyLjcsMi43LDAsMCwwLDIuNjMtMi43N3YtLjQ4QTIuNzEsMi43MSwwLDAsMCwyMS4xOCwxOC40N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsMTMuNzVh'@; put 'Mi4yNCwyLjI0LDAsMCwwLTIuMjMtMi4yNUgxNC41VjE2aDYuM0EyLjIyLDIuMjIsMCwwLDAsMjMsMTMuNzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAs'@; put 'MTgsMlptOC4zMSwxOS43M0E1LjIyLDUuMjIsMCwwLDEsMjEuMTgsMjdIMjF2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTd2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTMuMjVBMS4yNSwxLjI1LDAsMCwxLDEyLDI1Ljc1VjE3LjIzaDB2LTdBMS4yNSwxLjI1LDAsMCwxLDEzLjI1LDlIMTVWNy4wN2Ex'@; put 'LDEsMCwwLDEsMiwwVjloMlY3LjA3YTEsMSwwLDAsMSwyLDBWOWE0LjcyLDQuNzIsMCwwLDEsMy4yLDgsNS4zMSw1LjMxLDAsMCwxLDIuMTEsNC4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksRi5DbHJTaGFwZUNvaW5CYWc9KDAsbS5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggZD0iTTIxLjYsMjlhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjIuNTQsMjRoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAs'@; put 'MCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIsMzJIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNywz'@; put 'MmgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy43LDI4aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjc0LDI2YTI4LDI4LDAsMCwwLTIuODItMTAuMTJBMjAuMjQsMjAuMjQsMCwwLDAsMjQuNiw4LjcxTDI3LDMuNDJhMSwxLDAsMCwwLS4wNy0xQTEsMSwwLDAsMCwyNi4xMywySDkuOGExLDEsMCwwLDAtLjkxLDEuNDJsMi40NSw1LjMxYTIwLjMz'@; put 'LDIwLjMzLDAsMCwwLTYuMjgsNy4xNWMtMi4xNSw0LTIuODIsOC44OS0zLDEyLjI4YTMuNiwzLjYsMCwwLDAsMSwyLjcxQTMuNzksMy43OSwwLDAsMCw1LjgsMzEuOTRIMTJWMzBINS43MmExLjY4LDEuNjgsMCwwLDEtMS4yMS0uNTIsMS42MiwxLjYyLDAsMCwxLS40NS0xLjIzYy4xNC0yLjYx'@; put 'LjY5LTcuNTgsMi43Ni0xMS40NUExOCwxOCwwLDAsMSwxMy4wOCwxMGgxYTMwLjgxLDMwLjgxLDAsMCwwLTEuODcsMi45MiwyMi43OCwyMi43OCwwLDAsMC0xLjQ3LDMuMzRsMS4zNy45MmEyNCwyNCwwLDAsMSwxLjQ5LTMuNDdBMjkuMSwyOS4xLDAsMCwxLDE2LjA1LDEwaDFhMjEuNDUsMjEu'@; put 'NDUsMCwwLDEsMS40MSw1LDIyLjU0LDIyLjU0LDAsMCwxLC4zMiwzLjg2bDEuNTgtMS4xMWEyNC4xNSwyNC4xNSwwLDAsMC0uMzItM0EyNC44MiwyNC44MiwwLDAsMCwxOC43NiwxMGguNzhsLjkxLTJIMTMuMjFMMTEuMzYsNEgyNC41N2wtMi41LDUuNDdhOS45Myw5LjkzLDAsMCwxLDEuMjMu'@; put 'NzgsMTguNjMsMTguNjMsMCwwLDEsNS44Niw2LjU3QTI2LjU5LDI2LjU5LDAsMCwxLDMxLjczLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgPHBhdGggZD0iTTI0Ljg5LDI2aDcuODZjLS42Ni04LjcxLTQuNDEtMTQuMTItOS4yMi0xNy4z'@; put 'MkwyNS43MiwzLjlhMSwxLDAsMCwwLS45MS0xLjRIMTEuMWExLDEsMCwwLDAtLjkxLDEuNGwxLjIsMi42SDIxLjUxbC0uOSwySDE4Ljc2QTI0LjksMjQuOSwwLDAsMSwyMCwxMy4xOWEyNC40OSwyNC40OSwwLDAsMSwuMzIsM2wtMS41OCwxLjExYTIyLjU0LDIyLjU0LDAsMCwwLS4zMi0zLjg2'@; put 'QTIxLjc0LDIxLjc0LDAsMCwwLDE3LDguNWgtMWEyOC4yMiwyOC4yMiwwLDAsMC0yLjQ4LDMuNywyMy45MSwyMy45MSwwLDAsMC0xLjQ5LDMuNDZsLTEuMzctLjkxYTIyLjc4LDIyLjc4LDAsMCwxLDEuNDctMy4zNEEzMC44MSwzMC44MSwwLDAsMSwxNC4wNSw4LjVIMTIuM2wuMDguMTdDNy4w'@; put 'OCwxMi4yLDMuMDUsMTguNCwzLjA1LDI4Ljc1QTEuNjUsMS42NSwwLDAsMCw0LjYxLDMwLjVoOEEyLjY3LDIuNjcsMCwwLDEsMTQuMjEsMjZhMi42NywyLjY3LDAsMCwxLS4zNy0xLjM0LDIuNywyLjcsMCwwLDEsMi43LTIuN2g2YTIuNywyLjcsMCwwLDEsMi43LDIuN0EyLjYzLDIuNjMsMCww'@; put 'LDEsMjQuODksMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS42LDI4LjVhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjguNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTIiIC8+PHBhdGggZD0iTTIyLjU0LDIzLjVoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwzMS41SDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIuNywzMS41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNywyNy41aC03YTEsMSwwLDAsMCwwLDJo'@; put 'N2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxGLkNsclNoYXBlUGVzbz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTMuMkgyNy44OUE2LjgxLDYuODEsMCwwLDAsMjgsMTJhNy44NSw3Ljg1LDAsMCwwLS4xLTEuMTlo'@; put 'Mi45M2EuOC44LDAsMCwwLDAtMS42SDI3LjQ2QTguNDQsOC40NCwwLDAsMCwxOS41Nyw0SDExYTEsMSwwLDAsMC0xLDFWOS4ySDdhLjguOCwwLDAsMCwwLDEuNmgzdjIuNEg3YS44LjgsMCwwLDAsMCwxLjZoM1YzMWExLDEsMCwwLDAsMiwwVjIwaDcuNTdhOC40NSw4LjQ1LDAsMCwwLDcuODkt'@; put 'NS4ySDMxYS44LjgsMCwwLDAsMC0xLjZaTTEyLDZoNy41N2E2LjUxLDYuNTEsMCwwLDEsNS42OCwzLjJIMTJabTAsNC44SDI1Ljg3YTUuNiw1LjYsMCwwLDEsMCwyLjRIMTJaTTE5LjU3LDE4SDEyVjE0LjhIMjUuMjVBNi41MSw2LjUxLDAsMCwxLDE5LjU3LDE4WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4LDEzLjhWMTZoOS40NWE1LjI2LDUuMjYsMCwwLDAsLjA4LS44OSw0LjcyLDQuNzIsMCwwLDAtLjItMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4'@; put 'LDE5LjdoNS4xOWE0LjI4LDQuMjgsMCwwLDAsMy41LTEuOUgxNC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LjM3LDEwLjUxSDE0LjE4VjEyaDguMzdBNC4yMSw0LjIxLDAsMCwwLDE5LjM3LDEwLjUxWiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNjcsMmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxNy42NywyWm0xMC41LDE1LjhIMjUuN2E2Ljg3LDYuODcsMCwwLDEtNi4zMyw0LjRIMTQuMTh2Ni41NGExLjI1LDEuMjUsMCwxLDEtMi41LDBWMTcuOEg4Ljc2'@; put 'YS45LjksMCwxLDEsMC0xLjhoMi45MlYxMy44SDguNzZhLjkuOSwwLDEsMSwwLTEuOGgyLjkyVjkuMjZBMS4yNSwxLjI1LDAsMCwxLDEyLjkzLDhoNi40NGE2Ljg0LDYuODQsMCwwLDEsNi4xNSw0aDIuNjVhLjkuOSwwLDAsMSwwLDEuOEgyNi4wOWE2LjkxLDYuOTEsMCwwLDEsLjEyLDEuMyw2'@; put 'LjgsNi44LDAsMCwxLS4wNi45aDJhLjkuOSwwLDAsMSwwLDEuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksRi5DbHJTaGFwZVJ1YmxlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC41NywyMEE4LjIzLDguMjMsMCwwLDAsMjksMTJhOC4yMyw4'@; put 'LjIzLDAsMCwwLTguNDMtOEgxMmExLDEsMCwwLDAtMSwxVjE4SDlhMSwxLDAsMCwwLDAsMmgydjJIOWExLDEsMCwwLDAsMCwyaDJ2N2ExLDEsMCwwLDAsMiwwVjI0aDlhMSwxLDAsMCwwLDAtMkgxM1YyMFpNMTMsNmg3LjU3QTYuMjQsNi4yNCwwLDAsMSwyNywxMmE2LjIzLDYuMjMsMCwwLDEt'@; put 'Ni40Myw2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIwLjc1LDkuMjVIMTV2OC44MWg1Ljc5YTQuNjYsNC42NiwwLDAsMCw0Ljg2LTQuNEE0LjY1LDQuNjUsMCwwLDAsMjAuNzUsOS4yNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMi43NSwxOC41NkgxNVYyMmg4LjI5YTEsMSwwLDAsMSwwLDJIMTV2NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjRIMTEuMjVhMSwxLDAsMCwxLDAtMmgxLjIxVjIw'@; put 'LjU2SDExLjI1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNWgxLjIxVjhhMS4yNSwxLjI1LDAsMCwxLDEuMjUtMS4yNWg3YTcuMTQsNy4xNCwwLDAsMSw3LjM2LDYuOUE3LjE1LDcuMTUsMCwwLDEsMjAuNzUsMjAuNTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicp'@; put 'LEYuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCwwLDAsMTgu'@; put 'NDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0'@; put 'LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS45MSwxNy42NWEyMC42LDIwLjYsMCwwLDAtMTMsMkExLjc3LDEuNzcsMCwwLDAsOCwyMS4yNXYzLjU2YTEsMSwwLDAsMCwyLDBWMjEuMzhh'@; put 'MTguOTIsMTguOTIsMCwwLDEsMTItMS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMywyMkgyNi4zVjIwLjUyYTEsMSwwLDAsMC0yLDBWMjJIMTdhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAs'@; put 'MCwxLTFWMjNBMSwxLDAsMCwwLDMzLDIyWk0zMiwzMkgxOFYyNGg2LjN2LjQxYTEsMSwwLDAsMCwyLDBWMjRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIyMS44MSIgeT0iMjcuNDIiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEu'@; put 'NCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEwLjg0LDEyLjI0YTE4LDE4LDAsMCwwLTcuOTUsMkExLjY3LDEuNjcsMCwwLDAsMiwxNS43MXYzLjFhMSwxLDAsMCwwLDIsMHYtMi45YTE2LDE2LDAsMCwxLDcuNTgtMS42N0E3LjI4'@; put 'LDcuMjgsMCwwLDEsMTAuODQsMTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzMuMTEsMTQuMjNhMTcuOCwxNy44LDAsMCwwLTcuMTItMiw3LjQ2LDcuNDYsMCwwLDEtLjczLDJBMTUuODksMTUuODksMCwwLDEsMzIsMTUu'@; put 'OTF2Mi45YTEsMSwwLDEsMCwyLDB2LTMuMUExLjY3LDEuNjcsMCwwLDAsMzMuMTEsMTQuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cGF0aCBkPSJNMTAuNjYsMTAuNjFjMC0uMjMsMC0uNDUsMC0uNjdhMy4wNywzLjA3LDAsMCwxLC41NC02'@; put 'LjExLDMuMTUsMy4xNSwwLDAsMSwyLjIuODksOC4xNiw4LjE2LDAsMCwxLDEuNy0xLjA4LDUuMTMsNS4xMywwLDAsMC05LDMuMjcsNS4xLDUuMSwwLDAsMCw0LjcsNUE3LjQyLDcuNDIsMCwwLDEsMTAuNjYsMTAuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'OCIvPlxuICA8cGF0aCBkPSJNMjQuNzcsMS44M2E1LjE3LDUuMTcsMCwwLDAtMy42OSwxLjU1LDcuODcsNy44NywwLDAsMSwxLjksMSwzLjE0LDMuMTQsMCwwLDEsNC45MywyLjUyLDMuMDksMy4wOSwwLDAsMS0xLjc5LDIuNzcsNy4xNCw3LjE0LDAsMCwxLC4wNi45Myw3Ljg4LDcuODgsMCww'@; put 'LDEtLjEsMS4yLDUuMSw1LjEsMCwwLDAsMy44My00LjlBNS4xMiw1LjEyLDAsMCwwLDI0Ljc3LDEuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICBcbiAgPGVsbGlwc2UgY3g9IjE4IiBjeT0iMTEuMjgiIHJ4PSI0Ljc2IiByeT0iNC43IiBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xMC43OCwxMS43NWMuMTYsMCwuMzIsMCwuNDgsMCwwLS4xNSwwLS4yOCwwLS40M2E2LjcsNi43LDAsMCwxLDMuNzUtNiw0LjYyLDQuNjIsMCwxLDAtNC4yMSw2LjQ2WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjQuNzYsMTEuMjhjMCwuMTUsMCwuMjgsMCwuNDMuMTYsMCwuMzIsMCwuNDgsMEE0LjU4LDQuNTgsMCwxLDAsMjEsNS4yOSw2LjcsNi43LDAsMCwxLDI0Ljc2LDExLjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjIuMjksMTYuNDVhMjEuNDUsMjEuNDUsMCwwLDEsNS43MSwyLDIuNzEsMi43MSwwLDAsMSwuNjguNTNIMzRWMTUuNTZhLjcyLjcyLDAsMCwwLS4zOC0uNjQsMTgsMTgsMCwwLDAtOC40LTIuMDVsLS42NiwwQTYuNjYsNi42NiwwLDAsMSwyMi4yOSwx'@; put 'Ni40NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTYuNTMsMjAuOTJBMi43NiwyLjc2LDAsMCwxLDgsMTguNDdhMjEuNDUsMjEuNDUsMCwwLDEsNS43MS0yLDYuNjYsNi42NiwwLDAsMS0yLjI3LTMuNTVsLS42NiwwYTE4LDE4LDAsMCww'@; put 'LTguNCwyLjA1LjcyLjcyLDAsMCwwLS4zOC42NFYyMkg2LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIyMS40NiIgeT0iMjYuNjkiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzIuODEsMjEuMjZIMjUuOTR2LTFhMSwxLDAsMCwwLTIsMHYxSDIyVjE4LjQzQTIwLjE3LDIwLjE3LDAsMCwwLDE4LDE4YTE5LjI3LDE5LjI3LDAsMCwwLTkuMDYsMi4yMi43Ni43NiwwLDAsMC0uNDEuNjh2NS42MWg3LjExdjYuMDlhMSwxLDAsMCww'@; put 'LDEsMUgzMi44MWExLDEsMCwwLDAsMS0xVjIyLjI2QTEsMSwwLDAsMCwzMi44MSwyMS4yNlptLTEsMTAuMzZIMTcuNjRWMjMuMjZoNi4zdi45MWExLDEsMCwwLDAsMiwwdi0uOTFoNS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciLz4nKSxGLkNsclNoYXBlRW1w'@; put 'bG95ZWU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LjQzLDE2LjY5YTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE2LjQzLDE2LjY5Wm0wLTExLjkyYTUsNSwwLDEsMCw1LDVBNSw1LDAsMCwwLDE2LjQzLDQuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMSIvPlxuICA8cGF0aCBkPSJNMjIsMTcuOUEyNS40MSwyNS40MSwwLDAsMCw1Ljg4LDE5LjU3YTQuMDYsNC4wNiwwLDAsMC0yLjMxLDMuNjhWMjkuMmExLDEsMCwxLDAsMiwwVjIzLjI1YTIsMiwwLDAsMSwxLjE2LTEuODYsMjIuOTEsMjIuOTEsMCwwLDEsOS43LTIuMTEsMjMuNTgsMjMu'@; put 'NTgsMCwwLDEsNS41Ny42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIyLjE0IiB5PSIyNy40MSIgd2lkdGg9IjYuMTQiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxu'@; put 'ICA8cGF0aCBkPSJNMzMuMTcsMjEuNDdIMjh2Mmg0LjE3djguMzdIMThWMjMuNDdoNi4zdi40MmExLDEsMCwwLDAsMiwwVjIwYTEsMSwwLDAsMC0yLDB2MS40N0gxN2ExLDEsMCwwLDAtMSwxVjMyLjg0YTEsMSwwLDAsMCwxLDFIMzMuMTdhMSwxLDAsMCwwLDEtMVYyMi40N0ExLDEsMCwwLDAs'@; put 'MzMuMTcsMjEuNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICBcbiAgPGNpcmNsZSBjeD0iMTYuODYiIGN5PSI5LjczIiByPSI2LjQ2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIxIiB5PSIy'@; put 'OCIgd2lkdGg9IjciIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xNSwzMHYzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM2ExLDEsMCwwLDAtMS0xSDI2VjIwLjUzYTEsMSwwLDAsMC0yLDBWMjJIMjJW'@; put 'MTguNDJBMzIuMTIsMzIuMTIsMCwwLDAsMTYuODYsMThhMjYsMjYsMCwwLDAtMTEsMi4zOSwzLjI4LDMuMjgsMCwwLDAtMS44OCwzVjMwWm0xNywySDE3VjI0aDd2LjQyYTEsMSwwLDAsMCwyLDBWMjRoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxGLkNs'@; put 'clNoYXBlRmFjdG9yeT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNDcsNy4zN2ExLDEsMCwwLDAtMSwuMDZMMjMsMTMuNzdWOC4yNmExLDEsMCwwLDAtMS42NC0uNzdMMTMuNDgsMTRIMTBWNC42MmExLDEsMCwwLDAtLjc4LTFsLTQtLjlhMSwxLDAsMCwwLS44NS4yQTEsMSwwLDAs'@; put 'MCw0LDMuNzNWMTRIM2ExLDEsMCwwLDAtMSwxVjMxYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY4LjI2QTEsMSwwLDAsMCwzMy40Nyw3LjM3Wk02LDVsMiwuNDRWMTRINlpNMzIsMzBINFYxNmg5LjgzYTEsMSwwLDAsMCwuNjQtLjIzTDIxLDEwLjM3djUuMjhhMSwxLDAsMCwwLDEu'@; put 'NTYuODNMMzIsMTAuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI2IiB5PSIxNy45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0i'@; put 'NiIgeT0iMjEuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjI1Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NCIvPlxuICA8cmVjdCB4PSIxOSIgeT0iMTguOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHJlY3QgeD0iMjMiIHk9IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjI3IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjI0Ljk5IiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zMi40NSw4LjQ0LDIyLDE1LjNWOS41MWExLDEsMCwwLDAtMS42My0uNzhMMTQuMDcsMTRIMTBWNC4wNkw0LDIuNzFWMTRIMlYzMWExLDEsMCwwLDAs'@; put 'MSwxSDMzYTEsMSwwLDAsMCwxLTFWOS4yN0ExLDEsMCwwLDAsMzIuNDUsOC40NFpNMTQsMjlINlYyN2g4Wm0wLTRINlYyM2g4Wm0wLTRINlYxOWg4Wm04LDhIMjBWMjZoMlptMC02SDIwVjIwaDJabTQsNkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptNCw2SDI4VjI2aDJabTAtNkgyOFYyMGgyWiIg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEYuQ29tbWVyY2VTaGFwZXM9e2NhbGN1bGF0b3I6Ri5DbHJTaGFwZUNhbGN1bGF0b3IsInBpZ2d5LWJhbmsiOkYuQ2xyU2hhcGVQaWdneUJhbmssInNob3BwaW5nLWJhZyI6Ri5DbHJTaGFwZVNob3BwaW5nQmFnLCJz'@; put 'aG9wcGluZy1jYXJ0IjpGLkNsclNoYXBlU2hvcHBpbmdDYXJ0LHdhbGxldDpGLkNsclNoYXBlV2FsbGV0LHN0b3JlOkYuQ2xyU2hhcGVTdG9yZSxldXJvOkYuQ2xyU2hhcGVFdXJvLGRvbGxhcjpGLkNsclNoYXBlRG9sbGFyLHBlc286Ri5DbHJTaGFwZVBlc28sImNyZWRpdC1jYXJkIjpGLkNs'@; put 'clNoYXBlQ3JlZGl0Q2FyZCxiYW5rOkYuQ2xyU2hhcGVCYW5rLCJkb2xsYXItYmlsbCI6Ri5DbHJTaGFwZURvbGxhckJpbGwsImUtY2hlY2siOkYuQ2xyU2hhcGVFQ2hlY2sscG91bmQ6Ri5DbHJTaGFwZVBvdW5kLHJ1cGVlOkYuQ2xyU2hhcGVSdXBlZSx3b246Ri5DbHJTaGFwZVdvbix5ZW46'@; put 'Ri5DbHJTaGFwZVllbixiaXRjb2luOkYuQ2xyU2hhcGVCaXRjb2luLHJ1YmxlOkYuQ2xyU2hhcGVSdWJsZSwiY29pbi1iYWciOkYuQ2xyU2hhcGVDb2luQmFnLCJlbXBsb3llZS1ncm91cCI6Ri5DbHJTaGFwZUVtcGxveWVlR3JvdXAsZW1wbG95ZWU6Ri5DbHJTaGFwZUVtcGxveWVlLGZhY3Rv'@; put 'cnk6Ri5DbHJTaGFwZUZhY3Rvcnl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvbW1lcmNlU2hhcGVzLCJzYXZpbmdzIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29tbWVyY2VTaGFwZXNbInBpZ2d5LWJhbmsiXSkpLHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVy'@; put 'dHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChGLkNvbW1lcmNlU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpc'@; put 'CiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMg'@; put 'Zm91bmQgKi9mdW5jdGlvbihJZSxGLGFlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEYuQ29yZVNoYXBlcz1GLkNsclNoYXBlQXJyb3c9Ri5DbHJTaGFwZVN0ZXBGb3J3YXJkMj1GLkNsclNoYXBlRXllSGlkZT1GLkNsclNo'@; put 'YXBlRXllPUYuQ2xyU2hhcGVFdmVudD1GLkNsclNoYXBlQ2FsZW5kYXI9Ri5DbHJTaGFwZUFuZ2xlRG91YmxlPUYuQ2xyU2hhcGVWaWV3Q29sdW1ucz1GLkNsclNoYXBlU2VhcmNoPUYuQ2xyU2hhcGVWbUJ1Zz1GLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT1GLkNsclNoYXBlRmlsdGVyR3Jp'@; put 'ZD1GLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD1GLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsPUYuQ2xyU2hhcGVDbG91ZD1GLkNsclNoYXBlSW1hZ2U9Ri5DbHJTaGFwZUJlbGw9Ri5DbHJTaGFwZUZvbGRlck9wZW49Ri5DbHJTaGFwZUZvbGRlcj1GLkNsclNoYXBlQW5nbGU9Ri5DbHJT'@; put 'aGFwZVVzZXI9Ri5DbHJTaGFwZUJhcnM9Ri5DbHJTaGFwZUhlbHBJbmZvPUYuQ2xyU2hhcGVXYXJuaW5nU3RhbmRhcmQ9Ri5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9Ri5DbHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZD1GLkNsclNoYXBlSW5mb1N0YW5kYXJkPUYuQ2xyU2hhcGVJbmZvQ2lyY2xlPUYu'@; put 'Q2xyU2hhcGVDaGVja0NpcmNsZT1GLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9Ri5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9Ri5DbHJTaGFwZVRpbWVzPUYuQ2xyU2hhcGVDaGVjaz1GLkNsclNoYXBlQ29nPUYuQ2xyU2hhcGVIb21lPUYuQ2xyU2hhcGVVbmtub3duU3RhdHVzPXZv'@; put 'aWQgMDt2YXIgeD1hZSgKLyohIC4uL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLG09YWUoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRp'@; put 'bHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtGLkNsclNoYXBlVW5rbm93blN0YXR1cz0oMCxtLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4z'@; put 'Miw5LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjksMCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywx'@; put 'M1oiLz4nKSxGLkNsclNoYXBlSG9tZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEs'@; put 'MzIuMjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIs'@; put 'MiwwLDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwx'@; put 'LDAsMCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMsMTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJW'@; put 'MTkuNzZaIi8+JyksRi5DbHJTaGFwZUNvZz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0x'@; put 'OC4xLDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEu'@; put 'NWwxLjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4z'@; put 'LTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFs'@; put 'MC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwy'@; put 'LjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwy'@; put 'OC4zLDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41'@; put 'LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwx'@; put 'LjQtMC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwx'@; put 'OGMwLDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44'@; put 'LDE0LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0w'@; put 'LjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4x'@; put 'LTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUs'@; put 'MS45LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVsLTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3'@; put 'LjlDNSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIu'@; put 'NCwyLjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0w'@; put 'LjUsMC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4x'@; put 'bDMuNiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0w'@; put 'LjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMu'@; put 'MiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUu'@; put 'MkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIu'@; put 'NmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMs'@; put 'MS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEs'@; put 'Nyw3LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0xLjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAu'@; put 'NC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42'@; put 'NC0zLjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQxLDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDEx'@; put 'LjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywx'@; put 'YTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAs'@; put 'MCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40'@; put 'My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i'@; put 'YWRnZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEyLjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQz'@; put 'bC0xLDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCww'@; put 'LDAsLjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNo'@; put 'My4zOGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0x'@; put 'YS42MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy'@; put 'LWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40'@; put 'SDIyLjg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUzLDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCww'@; put 'LTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDEx'@; put 'LjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQz'@; put 'bDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYu'@; put 'MzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwy'@; put 'Mi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxGLkNsclNoYXBlQ2hlY2s9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IGQ9Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSwwLDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxGLkNsclNoYXBlVGltZXM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEu'@; put 'NDFaIi8+JyksRi5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2'@; put 'QTEuMywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEs'@; put 'MCwwLDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3'@; put 'LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0x'@; put 'LjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nKSxGLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAs'@; put 'MCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEu'@; put 'MywwLDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgsMjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEu'@; put 'NzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nKSxGLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCww'@; put 'LDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwz'@; put 'LjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQs'@; put 'MCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLEYuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLG0uY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMi'@; put 'IGN5PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEs'@; put 'MSwwLDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0yaDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxGLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLG0uY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIg'@; put 'Y3k9IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEu'@; put 'NCwwLDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxGLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'IiBkPSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksRi5DbHJTaGFwZUVycm9yU3RhbmRh'@; put 'cmQ9KDAsbS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MiIgZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEyYTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQs'@; put 'MTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAs'@; put 'MCwwLDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksRi5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxtLmNsckljb25TVkcp'@; put 'KCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwx'@; put 'LDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2'@; put 'MzU1IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1'@; put 'LjExNzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMwLjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEu'@; put 'MjAxMDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUsMjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3'@; put 'NSwyOS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBD'@; put 'MzMuMDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUsMjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwy'@; put 'LjAxMDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAxNi44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEs'@; put 'My42NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcsMjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwx'@; put 'LDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1WiIvPicpLEYuQ2xyU2hhcGVIZWxwSW5mbz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEt'@; put 'LjI3LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzItOS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0x'@; put 'LjA5LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCwwLDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4z'@; put 'LDExWm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIuNSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0'@; put 'LDAsMS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4'@; put 'LS44M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEsMCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0x'@; put 'Miw0LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0zLjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4y'@; put 'NWEyLjc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAsMCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+Jyks'@; put 'Ri5DbHJTaGFwZUJhcnM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0'@; put 'LDdIMzJhMSwxLDAsMCwxLDAsMloiLz4nKSxGLkNsclNoYXBlVXNlcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pN'@; put 'MjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0'@; put 'VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCww'@; put 'LDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'Mi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUy'@; put 'YTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAs'@; put 'MCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYt'@; put 'NkExLjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcs'@; put 'NywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1i'@; put 'YWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksRi5DbHJTaGFwZUFuZ2xlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2'@; put 'TDE4LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCwwLDIuNDUtMi4zNloiLz4nKSxGLkNsclNoYXBlRm9sZGVyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiww'@; put 'LDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEt'@; put 'MS4yOS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBk'@; put 'PSJNMzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlh'@; put 'MiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgs'@; put 'MS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgx'@; put 'Ni40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s'@; put 'aWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAs'@; put 'MCwwLDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs'@; put 'MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBk'@; put 'PSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcy'@; put 'LDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEYuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLG0uY2xySWNvblNWRykoJzxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCww'@; put 'LDAsLjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMu'@; put 'NzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43'@; put 'MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDks'@; put 'NUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs'@; put 'ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5'@; put 'LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdW'@; put 'MjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl'@; put 'cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0'@; put 'WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYu'@; put 'NDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQs'@; put 'MS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAs'@; put 'MCwxLS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEy'@; put 'LjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y'@; put 'OCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0y'@; put 'LjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAs'@; put 'NS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBj'@; put 'eD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksRi5DbHJTaGFwZUJlbGw9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0x'@; put 'LjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45Mywx'@; put 'LDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAs'@; put 'MSwxLDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAs'@; put 'MCwwLDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgs'@; put 'MzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYz'@; put 'LDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUu'@; put 'MTNhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAs'@; put 'MCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwx'@; put 'LDFoMjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSwwLDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIg'@; put 'cj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgx'@; put 'LDAsMCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAg'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'LS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJN'@; put 'MzIuODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNywwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0z'@; put 'LjMyLTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxGLkNsclNoYXBlSW1hZ2U9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2'@; put 'VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCww'@; put 'LDAsOC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAs'@; put 'MCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEt'@; put 'LWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSww'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMy'@; put 'YTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywz'@; put 'LDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEs'@; put 'MS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p'@; put 'LXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksRi5DbHJTaGFwZUNsb3VkPSgwLG0uY2xySWNv'@; put 'blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwy'@; put 'OSwxNi42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywy'@; put 'OCwzMywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl'@; put 'ZCIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3'@; put 'LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDkt'@; put 'MS4xMkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEwLjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5c'@; put 'biAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMx'@; put 'LDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0'@; put 'LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHIt'@; put 'aS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwz'@; put 'NSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42'@; put 'NSwwLTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4y'@; put 'OSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCww'@; put 'LDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxGLkNsclNoYXBlRWxsaXBz'@; put 'aXNIb3Jpem9udGFsPSgwLG0uY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIx'@; put 'OCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIg'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxGLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxtLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEi'@; put 'IHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4g'@; put 'ICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+'@; put 'JyksRi5DbHJTaGFwZUZpbHRlckdyaWQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAs'@; put 'MC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4x'@; put 'Mi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxGLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5'@; put 'LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCww'@; put 'LDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+JyksRi5DbHJTaGFwZVZtQnVnPSgwLG0uY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRp'@; put 'b246aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0LjgzYTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1'@; put 'LjM1LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSwwLDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4x'@; put 'NSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45Mywz'@; put 'LjkzLDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAsMC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUs'@; put 'MTUuMDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0uMWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4y'@; put 'NywwLDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEuMi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIg'@; put 'ZmlsbD0iI2ZmZmZmZiIvPicpLEYuQ2xyU2hhcGVTZWFyY2g9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4w'@; put 'NW0wLTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMsMCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAs'@; put 'MSwwLDM1LDMzLjI5WiIvPicpLEYuQ2xyU2hhcGVWaWV3Q29sdW1ucz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDIt'@; put 'MlY3QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFptMTAsMEgxNVY3aDhaIi8+JyksRi5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43'@; put 'MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWEx'@; put 'LDEsMCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMwLjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLEYuQ2xyU2hhcGVDYWxlbmRhcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1'@; put 'LDZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5'@; put 'IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIy'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEw'@; put 'YTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwx'@; put 'LDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1'@; put 'LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQt'@; put 'LWJhZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh'@; put 'ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIx'@; put 'OSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJl'@; put 'Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWkt'@; put 'YmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwy'@; put 'LDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9Ijgi'@; put 'IHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAg'@; put 'ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC05LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdo'@; put 'dD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCww'@; put 'LDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4y'@; put 'LDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVI'@; put 'OFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwx'@; put 'LDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDks'@; put 'M1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgt'@; put 'NEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRo'@; put 'MlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMu'@; put 'NjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJa'@; put 'bTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1h'@; put 'bGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxGLkNsclNoYXBlRXZlbnQ9'@; put 'KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAg'@; put 'ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAs'@; put 'MCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAs'@; put 'MTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEs'@; put 'MjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0t'@; put 'YmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJW'@; put 'MzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEs'@; put 'MSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAs'@; put 'LjIzLS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYg'@; put 'MTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFW'@; put 'MzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQi'@; put 'IGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwx'@; put 'LTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcu'@; put 'OCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiww'@; put 'LDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0x'@; put 'VjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwt'@; put 'OS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAs'@; put 'MCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMs'@; put 'MTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41'@; put 'QTcuNSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMu'@; put 'NVptLTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEYuQ2xyU2hhcGVFeWU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4'@; put 'bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQy'@; put 'LDI2LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0'@; put 'Ljg2LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwxOC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywy'@; put 'LDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjgu'@; put 'NTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi'@; put 'Lz4nKSxGLkNsclNoYXBlRXllSGlkZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0'@; put 'LS4wNkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2'@; put 'LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCww'@; put 'LDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1'@; put 'bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgu'@; put 'MzcsMTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5'@; put 'LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTku'@; put 'OTMsMTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIz'@; put 'LDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2Ex'@; put 'Ny4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxGLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcu'@; put 'MTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43'@; put 'VjI5LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZUFycm93PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDgu'@; put 'MzQsMTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksRi5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0'@; put 'dXMiOkYuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6Ri5DbHJTaGFwZUhvbWUsY29nOkYuQ2xyU2hhcGVDb2csY2hlY2s6Ri5DbHJTaGFwZUNoZWNrLHRpbWVzOkYuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOkYuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJl'@; put 'eGNsYW1hdGlvbi1jaXJjbGUiOkYuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpGLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpGLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6Ri5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vz'@; put 'cy1zdGFuZGFyZCI6Ri5DbHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZCwiZXJyb3Itc3RhbmRhcmQiOkYuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpGLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOkYuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOkYuQ2xy'@; put 'U2hhcGVCYXJzLHVzZXI6Ri5DbHJTaGFwZVVzZXIsYW5nbGU6Ri5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpGLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6Ri5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpGLkNsclNoYXBlQmVsbCxpbWFnZTpGLkNsclNoYXBlSW1hZ2UsY2xvdWQ6Ri5DbHJT'@; put 'aGFwZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpGLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6Ri5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpGLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpG'@; put 'LkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVnIjpGLkNsclNoYXBlVm1CdWcsc2VhcmNoOkYuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6Ri5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOkYuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpGLkNsclNo'@; put 'YXBlQ2FsZW5kYXIsZXZlbnQ6Ri5DbHJTaGFwZUV2ZW50LGV5ZTpGLkNsclNoYXBlRXllLCJleWUtaGlkZSI6Ri5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpGLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OkYuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KEYuQ29yZVNoYXBlcywiaG91c2UiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmlu'@; put 'ZVByb3BlcnR5KEYuQ29yZVNoYXBlcywic3VjY2VzcyIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJjbG9zZSIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMudGltZXMpKSxP'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJ3YXJuaW5nIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsImVycm9yIiwoMCx4LmRlc2NyaXB0b3JD'@; put 'b25maWcpKEYuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJpbmZvIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNv'@; put 'cmVTaGFwZXMsIm1lbnUiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkoRi5Db3JlU2hhcGVzLCJjYXJldCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsIm5vdGlmaWNhdGlvbiIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuQ29yZVNo'@; put 'YXBlc1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJv'@; put 'amVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEll'@; put 'LEYsYWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRi5DbHJTaGFwZUxvZ291dD1GLkNsclNoYXBlTG9naW49Ri5DbHJTaGFwZUhlbHA9Ri5DbHJTaGFwZUNvcHk9Ri5DbHJTaGFwZUNoaWxkQXJyb3c9Ri5DbHJTaGFwZUNp'@; put 'cmNsZUFycm93PUYuQ2xyU2hhcGVBbGFybUNsb2NrPUYuQ2xyU2hhcGVDbG9jaz1GLkNsclNoYXBlSGlzdG9yeT1GLkNsclNoYXBlVGFncz1GLkNsclNoYXBlVGFnPUYuQ2xyU2hhcGVUcmFzaD1GLkNsclNoYXBlVGltZXNDaXJjbGU9Ri5DbHJTaGFwZUJhbj1GLkNsclNoYXBlUGx1c0NpcmNs'@; put 'ZT1GLkNsclNoYXBlTWludXNDaXJjbGU9Ri5DbHJTaGFwZU1pbnVzPUYuQ2xyU2hhcGVQbHVzPUYuQ2xyU2hhcGVGaWxlPUYuQ2xyU2hhcGVQaW49Ri5DbHJTaGFwZUZpbHRlcj1GLkNsclNoYXBlUG9wT3V0PUYuQ2xyU2hhcGVVc2Vycz1GLkNsclNoYXBlVW5sb2NrPUYuQ2xyU2hhcGVMb2Nr'@; put 'PUYuQ2xyU2hhcGVVcGxvYWQ9Ri5DbHJTaGFwZURvd25sb2FkPUYuQ2xyU2hhcGVMaWdodGJ1bGI9Ri5DbHJTaGFwZVZpZXdDYXJkcz1GLkNsclNoYXBlVmlld0xpc3Q9Ri5DbHJTaGFwZVN5bmM9Ri5DbHJTaGFwZVJlZnJlc2g9Ri5DbHJTaGFwZU5vdGU9Ri5DbHJTaGFwZVBlbmNpbD1GLkNs'@; put 'clNoYXBlVGhlcm1vbWV0ZXI9Ri5DbHJTaGFwZUJ1Zz1GLkNsclNoYXBlU2Npc3NvcnM9Ri5DbHJTaGFwZUFzdGVyaXNrPUYuQ2xyU2hhcGVCb29rPUYuQ2xyU2hhcGVPYmplY3RzPUYuQ2xyU2hhcGVSZXNpemU9Ri5DbHJTaGFwZUN1cnNvckhhbmRDbGljaz1GLkNsclNoYXBlQ3Vyc29ySGFu'@; put 'ZD1GLkNsclNoYXBlQ3Vyc29yQXJyb3c9Ri5DbHJTaGFwZUdyaWRWaWV3PUYuQ2xyU2hhcGVCdWJibGVFeGNsYW1hdGlvbj1GLkNsclNoYXBlTmV3PUYuQ2xyU2hhcGVBbGFybU9mZj1GLkNsclNoYXBlUGluYm9hcmQ9Ri5DbHJTaGFwZUFkZFRleHQ9dm9pZCAwLEYuQ2xyU2hhcGVDbG9uZT1G'@; put 'LkNsclNoYXBlQ3Vyc29yTW92ZT1GLkNsclNoYXBlV2FuZD1GLkNsclNoYXBlU3VuPUYuQ2xyU2hhcGVNb29uPUYuQ2xyU2hhcGVGaWx0ZXIyPUYuQ2xyU2hhcGVEcmFnSGFuZGxlPUYuQ2xyU2hhcGVDb3B5VG9DbGlwYm9hcmQ9Ri5DbHJTaGFwZUNvbG9yUGlja2VyPUYuQ2xyU2hhcGVCcmll'@; put 'ZmNhc2U9Ri5DbHJTaGFwZUV4cGFuZENhcmQ9Ri5DbHJTaGFwZUNvbGxhcHNlQ2FyZD1GLkNsclNoYXBlU29ydEJ5PUYuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Mj1GLkNsclNoYXBlQWNjZXNzaWJpbGl0eTE9Ri5DbHJTaGFwZVNocmluaz1GLkNsclNoYXBlUGFwZXJjbGlwPUYuQ2xyU2hhcGVG'@; put 'aWxlR3JvdXA9Ri5DbHJTaGFwZVJlcGVhdD1GLkNsclNoYXBlSWRCYWRnZT1GLkNsclNoYXBlQmFsYW5jZT1GLkNsclNoYXBlT3JnYW5pemF0aW9uPUYuQ2xyU2hhcGVOb0FjY2Vzcz1GLkNsclNoYXBlSG91cmdsYXNzPUYuQ2xyU2hhcGVGbGFtZT1GLkNsclNoYXBlVGFyZ2V0PUYuQ2xyU2hh'@; put 'cGVCdWxsc2V5ZT1GLkNsclNoYXBlV3JlbmNoPUYuQ2xyU2hhcGVCb2x0PUYuQ2xyU2hhcGVMaWJyYXJ5PUYuQ2xyU2hhcGVLZXk9Ri5DbHJTaGFwZVpvb21PdXQ9Ri5DbHJTaGFwZVpvb21Jbj1GLkNsclNoYXBlV2luZG93UmVzdG9yZT1GLkNsclNoYXBlV2luZG93TWluPUYuQ2xyU2hhcGVX'@; put 'aW5kb3dNYXg9Ri5DbHJTaGFwZVdpbmRvd0Nsb3NlPUYuQ2xyU2hhcGVUb29scz1GLkNsclNoYXBlU3dpdGNoPUYuQ2xyU2hhcGVUd29XYXlBcnJvd3M9Ri5DbHJTaGFwZUZpbGVTZXR0aW5ncz1GLkNsclNoYXBlU2Nyb2xsPUYuQ2xyU2hhcGVVbmRvPUYuQ2xyU2hhcGVSZWRvPUYuQ2xyU2hh'@; put 'cGVMaXN0PUYuQ2xyU2hhcGVGaXJld2FsbD1GLkNsclNoYXBlQ2xpcGJvYXJkPUYuQ2xyU2hhcGVTbGlkZXI9Ri5DbHJTaGFwZVdvcmxkPUYuQ2xyU2hhcGVQcmludGVyPXZvaWQgMCxGLkVzc2VudGlhbFNoYXBlcz1GLkNsclNoYXBlQ29sb3JQYWxldHRlPUYuQ2xyU2hhcGVGaXJzdEFpZD1G'@; put 'LkNsclNoYXBlQmV0YT1GLkNsclNoYXBlRG90Q2lyY2xlPUYuQ2xyU2hhcGVDaXJjbGU9Ri5DbHJTaGFwZUNyb3NzaGFpcnM9Ri5DbHJTaGFwZVZvbHVtZT1GLkNsclNoYXBlVGFibGU9Ri5DbHJTaGFwZVNub3dmbGFrZT1GLkNsclNoYXBlRnVlbD1GLkNsclNoYXBlRm9ybT1GLkNsclNoYXBl'@; put 'RmlzaD1GLkNsclNoYXBlVHJlZT1GLkNsclNoYXBlUmVjeWNsZT1GLkNsclNoYXBlRmlsdGVyT2ZmPUYuQ2xyU2hhcGVGaWxlWmlwPUYuQ2xyU2hhcGVDdXJzb3JIYW5kT3Blbj1GLkNsclNoYXBlQ3Vyc29ySGFuZEdyYWI9Ri5DbHJTaGFwZVRyZWVWaWV3PUYuQ2xyU2hhcGVQb3J0cmFpdD1G'@; put 'LkNsclNoYXBlUGFzdGU9Ri5DbHJTaGFwZUxhbmRzY2FwZT1GLkNsclNoYXBlRXJhc2VyPUYuQ2xyU2hhcGVEcmFnSGFuZGxlQ29ybmVyPUYuQ2xyU2hhcGVEZXRhaWxzPXZvaWQgMDt2YXIgeD1hZSgKLyohIC4uL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25z'@; put 'L3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLG09YWUoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxsZT1hZSgKLyohIC4vY29yZS1zaGFwZXMgKi8KIi4vcHJvamVjdHMv'@; put 'aWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpO0YuQ2xyU2hhcGVBZGRUZXh0PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsMjFIMTNhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMiwxNmExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwwLTJIMTNBMSwxLDAsMCwwLDEyLDE2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNywyN0gxM2ExLDEsMCwwLDAsMCwySDI3YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE1Ljg5LDlhMSwxLDAsMCwwLTEtMUgxMFYz'@; put 'LjIxYTEsMSwwLDAsMC0yLDBWOEgyLjg5YTEsMSwwLDAsMCwwLDJIOHY1LjIxYTEsMSwwLDAsMCwyLDBWMTBoNC44OUExLDEsMCwwLDAsMTUuODksOVoiLz4nKSxGLkNsclNoYXBlUGluYm9hcmQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIGQ9Ik0zMCwzMCw2LDMwLDYsNkgyMlY0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMz'@; put 'LjU3LDkuMzNsLTctN2ExLDEsMCwwLDAtMS40MSwxLjQxbDcsN2ExLDEsMCwxLDAsMS40MS0xLjQxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMi4xLDExLjE5bC43LjVMMjYuNDYsOCwyNSw2LjU2LDIyLjUx'@; put 'LDkuMTNjLTItLjg3LTQuMzUuMTQtNS45MiwxLjY4bC0uNzIuNzEsMy41NCwzLjU0LTMuNjcsMy42NywxLjQxLDEuNDEsMy42Ny0zLjY3TDI0LjM3LDIwbC43MS0uNzJjMS41NC0xLjU3LDIuNTUtMy45MiwxLjY4LTUuOTNsMi41NC0yLjU3TDI3Ljg4LDkuMzgsMjQuMjEsMTMuMWwuNDkuNjlj'@; put 'Ljc2LDEsLjI1LDIuMzctLjQxLDMuMzNMMTguNzcsMTEuNkMxOS44NCwxMC44NiwyMS4xNSwxMC41LDIyLjEsMTEuMTlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsMzAsNiwzMCw2LDZIMjJWNEg2QTIsMiwwLDAs'@; put 'MCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0SDMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMzLjU3LDkuMzNsLTctN2ExLDEsMCwwLDAtMS40MSwxLjQxbDEuMzgsMS4zOC00LDRjLTIt'@; put 'Ljg3LTQuMzUuMTQtNS45MiwxLjY4bC0uNzIuNzEsMy41NCwzLjU0LTMuNjcsMy42NywxLjQxLDEuNDEsMy42Ny0zLjY3TDI0LjM3LDIwbC43MS0uNzJjMS41NC0xLjU3LDIuNTUtMy45MSwxLjY4LTUuOTJsNC00LDEuMzgsMS4zOGExLDEsMCwxLDAsMS40MS0xLjQxWiIvPicpLEYuQ2xyU2hh'@; put 'cGVBbGFybU9mZj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40'@; put 'NywzLjg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNS4zMywyMS41NGEuOS45LDAsMCwwLS40MS0xLjJsLTMuMi0xLjU2TDI0Ljg5LDIyQS44OS44OSwwLDAsMCwyNS4zMywyMS41NFoiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsOC42YS45LjksMCwwLDAtLjkuOXY0LjZsMS44LDEuODFWOS41QS45LjksMCwwLDAsMTgsOC42WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTQiIGQ9Ik0xMS40MiwzLjQzYTUuOCw1LjgsMCwwLDAtNS44MS0uODFMOC4zLDUuMzJBMTYsMTYsMCwwLDEsMTEuNDIsMy40M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMTgsNGExMy45'@; put 'MSwxMy45MSwwLDAsMC04LjMsMi43NWwxLjQyLDEuNDNBMTIsMTIsMCwwLDEsMjcuODIsMjQuOWwxLjQyLDEuNDNBMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMS41Niw0LjIxLDIu'@; put 'NzMsNS4zOGE1LjcsNS43LDAsMCwwLC42Nyw2LjFBMTUuNzgsMTUuNzgsMCwwLDEsNS40Niw4LjEyTDYuODgsOS41NUExMy45NCwxMy45NCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjg5LDEzLjg5LDAsMCwwLDE2LjgsMGw0LjE0'@; put 'LDQuMTVMMzIsMzEuOSwzLDIuOFpNMjUsMjcuNzJBMTEuODksMTEuODksMCwwLDEsMTgsMzAsMTIsMTIsMCwwLDEsNiwxOGExMS44OSwxMS44OSwwLDAsMSwyLjI5LTdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzEu'@; put 'NDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4yLDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTEuNDIsMy40M2E1'@; put 'LjgsNS44LDAsMCwwLTUuNzctLjgyTDguMzMsNS4zQTE2LDE2LDAsMCwxLDExLjQyLDMuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuOTIsMjEuOTRsNC4zNCw0LjM2QTE0LDE0LDAsMCwwLDkuNzUsNi43M0wx'@; put 'NywxNFY5LjY5YTEsMSwwLDAsMSwyLDBWMTZsMi4zMywyLjM0TDI1LDIwLjFhMSwxLDAsMCwxLC40NywxLjMzQTEsMSwwLDAsMSwyNC45MiwyMS45NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xLjYxLDQuMjEsMi43'@; put 'Myw1LjM0YTUuNzMsNS43MywwLDAsMCwuNjcsNi4xNUExNS44OCwxNS44OCwwLDAsMSw1LjQ4LDguMUw2LjkxLDkuNTJBMTMuOTQsMTMuOTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy44OSwxMy44OSwwLDAsMCwxNi44MywwbDQu'@; put 'MTYsNC4xN0wzMiwzMS45LDMsMi44WiIvPicpLEYuQ2xyU2hhcGVOZXc9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNC41OSwyM2wtNC4wOC01LDQtNC45YTEuODIsMS44MiwwLDAsMCwuMjMtMS45NEExLjkz'@; put 'LDEuOTMsMCwwLDAsMzIuOTQsMTBoLTMxQTEuOTEsMS45MSwwLDAsMCwwLDExLjg4VjI0LjEzQTEuOTEsMS45MSwwLDAsMCwxLjk0LDI2SDMzLjA1YTEuOTMsMS45MywwLDAsMCwxLjc3LTEuMDlBMS44MiwxLjgyLDAsMCwwLDM0LjU5LDIzWk0yLDI0VjEySDMyLjc4bC00Ljg0LDUuOTNMMzIu'@; put 'ODUsMjRaIi8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHBvaW50cz0iOS4zOSAxOS4zNSA2LjEzIDE1IDUgMTUgNSAyMS4xOCA2LjEzIDIxLjE4IDYuMTMgMTYuODQgOS4zOSAyMS4xOCAxMC41MSAyMS4xOCAxMC41'@; put 'MSAxNSA5LjM5IDE1IDkuMzkgMTkuMzUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgcG9pbnRzPSIxMi4xOCAyMS4xOCAxNi44NCAyMS4xOCAxNi44NCAyMC4xNiAxMy4zMSAyMC4xNiAxMy4zMSAxOC41NSAxNi41'@; put 'IDE4LjU1IDE2LjUgMTcuNTIgMTMuMzEgMTcuNTIgMTMuMzEgMTYuMDMgMTYuODQgMTYuMDMgMTYuODQgMTUgMTIuMTggMTUgMTIuMTggMjEuMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNC41'@; put 'MiAxOS40MyAyMy4wNiAxNSAyMS44NCAxNSAyMC4zNyAxOS40MyAxOS4wNSAxNSAxNy44MiAxNSAxOS43OCAyMS4xOCAyMC44OSAyMS4xOCAyMi40NSAxNi41OSAyNCAyMS4xOCAyNS4xMyAyMS4xOCAyNy4wOCAxNSAyNS44NSAxNSAyNC41MiAxOS40MyIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjExLDI0LjQ5bC0zLjkyLTYuNjIsMy44OC02LjM1QTEsMSwwLDAsMCwzMy4yMiwxMEgyYTIsMiwwLDAsMC0yLDJWMjRhMiwyLDAsMCwwLDIsMkgzMy4yNUExLDEsMCwwLDAsMzQuMTEsMjQuNDlabS0yMy42LTMu'@; put 'MzFIOS4zOUw2LjEzLDE2Ljg0djQuMzVINVYxNUg2LjEzbDMuMjcsNC4zNVYxNWgxLjEyWk0xNi44NCwxNkgxMy4zMXYxLjQ5aDMuMnYxaC0zLjJ2MS42MWgzLjUzdjFIMTIuMThWMTVoNC42NVptOC4yOSw1LjE2SDI0bC0xLjU1LTQuNTlMMjAuOSwyMS4xOEgxOS43OGwtMi02LjE4SDE5bDEu'@; put 'MzIsNC40M0wyMS44NCwxNWgxLjIybDEuNDYsNC40M0wyNS44NSwxNWgxLjIzWiIvPicpLEYuQ2xyU2hhcGVCdWJibGVFeGNsYW1hdGlvbj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIuNWMtOC44Miww'@; put 'LTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgsMi41Wk0yOC4yOSwyNC42MWExLDEsMCwwLDAtLjMyLjczbDAsNS4z'@; put 'NC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0xMiwxNCw1LjM4LDE0LDEyQTExLjA4LDExLjA4LDAsMCwxLDI4LjI5LDI0LjYxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC42M2ExLDEsMCwwLDAsMS0xVjguNDhhMSwxLDAsMSwwLTIsMFYxOS42MUExLDEsMCwwLDAsMTgsMjAuNjNaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0zIiBjeD0iMTgiIGN5PSIyNC4wNCIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUz'@; put 'LDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgsMi41Wk0xNi45Myw5LjEzYTEuNDEsMS40MSwwLDEsMSwyLjgxLDBWMTguOWExLjQxLDEuNDEsMCwxLDEtMi44MSwwWm0xLjQxLDE3LjM1YTEuODcsMS44NywwLDEs'@; put 'MSwxLjg3LTEuODdBMS44NywxLjg3LDAsMCwxLDE4LjM0LDI2LjQ3WiIvPicpLEYuQ2xyU2hhcGVHcmlkVmlldz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE0LDRINkEyLDIsMCwwLDAsNCw2djhhMiwyLDAs'@; put 'MCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMTQsNFpNNiwxNFY2aDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAsNEgyMmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMmg4YTIs'@; put 'MiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFpNMjIsMTRWNmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0LDIwSDZhMiwyLDAsMCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0y'@; put 'VjIyQTIsMiwwLDAsMCwxNCwyMFpNNiwzMFYyMmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLDIwSDIyYTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYyMkEyLDIs'@; put 'MCwwLDAsMzAsMjBaTTIyLDMwVjIyaDh2OFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHg9IjQiIHk9IjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiB4PSIyMCIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIHg9IjQiIHk9IjIwIiB3aWR0aD0iMTIi'@; put 'IGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgeD0iMjAiIHk9IjIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIvPicpLEYuQ2xyU2hhcGVDdXJzb3JBcnJvdz0o'@; put 'MCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE0LjU4LDMyLjMxYTEsMSwwLDAsMS0uOTQtLjY1TDQsNS42NUExLDEsMCwwLDEsNS4yNSw0LjM3bDI2LDkuNjhhMSwxLDAsMCwxLS4wNSwxLjg5bC04LjM2LDIuNTcs'@; put 'OC4zLDguM2ExLDEsMCwwLDEsMCwxLjQxbC0zLjI2LDMuMjZhMSwxLDAsMCwxLS43MS4yOWgwYTEsMSwwLDAsMS0uNzEtLjI5bC04LjMzLTguMzMtMi42LDguNDVhMSwxLDAsMCwxLS45My43MVptMy4wOS0xMmExLDEsMCwwLDEsLjcxLjI5bDguNzksOC43OUwyOSwyNy41MWwtOC43Ni04Ljc2'@; put 'YTEsMSwwLDAsMSwuNDEtMS42Nmw3LjEzLTIuMkw2LjYsN2w3Ljg5LDIxLjJMMTYuNzEsMjFhMSwxLDAsMCwxLC43MS0uNjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjksMTIuMzYsMy44OCwzQTEsMSwwLDAsMCwy'@; put 'LjU5LDQuMjhMMTIsMjkuNDRhMSwxLDAsMCwwLDEuODktLjA1bDIuNjktOC43NSw5LjEyLDguOWExLDEsMCwwLDAsMS40MSwwbDIuMzUtMi4zNWExLDEsMCwwLDAsMC0xLjQxbC05LjA5LTguODZMMjksMTQuMjVBMSwxLDAsMCwwLDI5LDEyLjM2WiIvPicpLEYuQ2xyU2hhcGVDdXJzb3JIYW5k'@; put 'PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuNzQsMTUuMTlhMTMuNjYsMTMuNjYsMCwwLDAtNi44Ny0zLjgzQTI2LDI2LDAsMCwwLDE4LDEwLjU4VjUuMjhBMy40LDMuNCwwLDAsMCwxNC41LDIsMy40LDMu'@; put 'NCwwLDAsMCwxMSw1LjI4djEwTDkuNCwxMy43YTMuNzcsMy43NywwLDAsMC01LjI4LDBBMy42NywzLjY3LDAsMCwwLDMsMTYuMzNhMy42LDMuNiwwLDAsMCwxLDIuNTZsNC42Niw1LjUyYTExLjUzLDExLjUzLDAsMCwwLDEuNDMsNCwxMC4xMiwxMC4xMiwwLDAsMCwyLDIuNTR2MS45MmExLjA3'@; put 'LDEuMDcsMCwwLDAsMSwxLjA4SDI3YTEuMDcsMS4wNywwLDAsMCwxLTEuMDh2LTIuN2ExMi44MSwxMi44MSwwLDAsMCwzLTguMzZ2LTZBMSwxLDAsMCwwLDMwLjc0LDE1LjE5Wk0yOSwyMS44NmExMC43MiwxMC43MiwwLDAsMS0yLjYsNy4yNiwxLjExLDEuMTEsMCwwLDAtLjQuNzJWMzJIMTQu'@; put 'MTRWMzAuNTJhMSwxLDAsMCwwLS40NC0uODMsNy4yNiw3LjI2LDAsMCwxLTEuODItMi4yMyw5LjE0LDkuMTQsMCwwLDEtMS4yLTMuNTIsMSwxLDAsMCwwLS4yMy0uNTlMNS41MywxNy41M2ExLjcsMS43LDAsMCwxLDAtMi40MiwxLjc2LDEuNzYsMCwwLDEsMi40NywwbDMsM3YzLjE0bDItMVY1'@; put 'LjI4QTEuNDIsMS40MiwwLDAsMSwxNC41LDQsMS40MiwxLjQyLDAsMCwxLDE2LDUuMjh2MTEuOGwyLC40M1YxMi41OWEyNC4yNywyNC4yNywwLDAsMSwyLjUxLjE4VjE4bDEuNi4zNVYxM2MuNDEuMDguODMuMTcsMS4yNi4yOGExNC44OCwxNC44OCwwLDAsMSwxLjUzLjQ5djUuMTVsMS42LjM1'@; put 'VjE0LjVBMTEuMDYsMTEuMDYsMCwwLDEsMjksMTYuMjNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjguNjksMTQuMzN2NC44M2wtMi0uNDNWMTMuMjRhMTYuMTksMTYuMTksMCwwLDAtMi4zMy0uODR2NS44MmwtMi0u'@; put 'NDNWMTJjLTEuMS0uMTgtMi4xOC0uMy0zLjA4LS4zNnY1LjUxbC0yLS40M1YxMS40OGgwVjQuMzRhMi41MywyLjUzLDAsMCwwLTIuNi0yLjQzLDIuNTMsMi41MywwLDAsMC0yLjYsMi40M1YxNy4yN2gwdjIuNTlsLTIsMVYxNS42TDcuNzUsMTMuMjFhMi44MywyLjgzLDAsMCwwLTQsMCwyLjkz'@; put 'LDIuOTMsMCwwLDAsMCw0LjA5bDYsNy4xYTEwLjgyLDEwLjgyLDAsMCwwLDEuMzksNC4yMiw4LjQyLDguNDIsMCwwLDAsMi4yMSwyLjczdjIuNTZIMjcuNzlWMzAuNjJhMTIuNTQsMTIuNTQsMCwwLDAsMy04LjV2LTZBMTAsMTAsMCwwLDAsMjguNjksMTQuMzNaIi8+JyksRi5DbHJTaGFwZUN1'@; put 'cnNvckhhbmRDbGljaz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLjQsMTcuNmMtMS44LTEuOS00LjItMy4yLTYuNy0zLjdjLTEuMS0wLjMtMi4yLTAuNS0zLjMtMC42YzIuOC0zLjMsMi4zLTguMy0xLTEx'@; put 'LjFzLTguMy0yLjMtMTEuMSwxcy0yLjMsOC4zLDEsMTEuMVxuICAgICAgICAgICAgICAgICAgICBjMC42LDAuNSwxLjIsMC45LDEuOCwxLjF2Mi4ybC0xLjYtMS41Yy0xLjQtMS40LTMuNy0xLjQtNS4yLDBjLTEuNCwxLjQtMS41LDMuNi0wLjEsNWw0LjYsNS40YzAuMiwxLjQsMC43LDIuNywx'@; put 'LjQsMy45XG4gICAgICAgICAgICAgICAgICAgIGMwLjUsMC45LDEuMiwxLjgsMS45LDIuNXYxLjljMCwwLjYsMC40LDEsMSwxaDEzLjZjMC41LDAsMS0wLjUsMS0xdi0yLjZjMS45LTIuMywyLjktNS4yLDIuOS04LjF2LTUuOFxuICAgICAgICAgICAgICAgICAgICBDMzAuNywxNy45LDMwLjYs'@; put 'MTcuNywzMC40LDE3LjZ6IE04LjQsOC4yYzAtMy4zLDIuNy01LjksNi01LjhjMy4zLDAsNS45LDIuNyw1LjgsNmMwLDEuOC0wLjgsMy40LTIuMiw0LjVWNy45XG4gICAgICAgICAgICAgICAgICAgIGMtMC4xLTEuOC0xLjYtMy4yLTMuNC0zLjJjLTEuOC0wLjEtMy40LDEuNC0zLjQsMy4ydjUu'@; put 'MkM5LjUsMTIuMSw4LjUsMTAuMiw4LjQsOC4yTDguNCw4LjJ6IE0yOC43LDI0YzAuMSwyLjYtMC44LDUuMS0yLjUsNy4xXG4gICAgICAgICAgICAgICAgICAgIGMtMC4yLDAuMi0wLjQsMC40LTAuNCwwLjd2Mi4xSDE0LjJ2LTEuNGMwLTAuMy0wLjItMC42LTAuNC0wLjhjLTAuNy0wLjYtMS4z'@; put 'LTEuMy0xLjgtMi4yYy0wLjYtMS0xLTIuMi0xLjItMy40XG4gICAgICAgICAgICAgICAgICAgIGMwLTAuMi0wLjEtMC40LTAuMi0wLjZsLTQuOC01LjdjLTAuMy0wLjMtMC41LTAuNy0wLjUtMS4yYzAtMC40LDAuMi0wLjksMC41LTEuMmMwLjctMC42LDEuNy0wLjYsMi40LDBsMi45LDIuOXYz'@; put 'bDEuOS0xVjcuOVxuICAgICAgICAgICAgICAgICAgICBjMC4xLTAuNywwLjctMS4zLDEuNS0xLjJjMC43LDAsMS40LDAuNSwxLjQsMS4ydjExLjVsMiwwLjR2LTQuNmMwLjEtMC4xLDAuMi0wLjEsMC4zLTAuMmMwLjcsMCwxLjQsMC4xLDIuMSwwLjJ2NS4xbDEuNiwwLjN2LTUuMlxuICAgICAg'@; put 'ICAgICAgICAgICAgICBsMS4yLDAuM2MwLjUsMC4xLDEsMC4zLDEuNSwwLjV2NWwxLjYsMC4zdi00LjZjMC45LDAuNCwxLjcsMSwyLjQsMS43TDI4LjcsMjR6Ii8+JyksRi5DbHJTaGFwZVJlc2l6ZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIgZD0iTTE5LDRhMSwxLDAsMCwwLDAsMmg5LjU5bC05LjI1LDkuMjVhMSwxLDAsMSwwLDEuNDEsMS40MUwzMCw3LjQxVjE3YTEsMSwwLDAsMCwyLDBWNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'IiBkPSJNNCwxOWExLDEsMCwwLDEsMiwwdjkuNTlsOS4yNS05LjI1YTEsMSwwLDEsMSwxLjQxLDEuNDFMNy40MSwzMEgxN2ExLDEsMCwwLDEsMCwySDRaIi8+JyksRi5DbHJTaGFwZU9iamVjdHM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIGQ9Ik0xNi4wOCwxNC45YTEwLjQxLDEwLjQxLDAsMCwxLDEuODctLjcxbC00LTEwLjc3YTIsMiwwLDAsMC0zLjc1LDBMMiwyNS4yNkEyLDIsMCwwLDAsMy45MiwyOGg2Ljk0YTEwLDEwLDAsMCwxLS41Mi0ySDMuOTJMMTIuMDYsNC4xMloiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsOUgyMmEyLDIsMCwwLDAtMiwydjIuODVjLjIzLDAsLjQ2LDAsLjY5LDBBMTAuNTEsMTAuNTEsMCwwLDEsMjIsMTMuOVYxMUgzMlYyMUgzMC42NWExMC40MiwxMC40MiwwLDAsMSwuNDUsMkgzMmEy'@; put 'LDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMiw5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMC42OSwxNS44MWE4LjUsOC41LDAsMSwwLDguNSw4LjVBOC41MSw4LjUxLDAsMCwwLDIwLjY5LDE1LjgxWm0w'@; put 'LDE1YTYuNSw2LjUsMCwxLDEsNi41LTYuNUE2LjUxLDYuNTEsMCwwLDEsMjAuNjksMzAuODFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTAuNjUsMjQuNDRhOS41MSw5LjUxLDAsMCwxLDcuMDYtOS4xN0wxMywzYTEs'@; put 'MSwwLDAsMC0xLjg3LDBMMi4wNywyNi41NkExLDEsMCwwLDAsMywyNy45Mmg4LjMyQTkuNDQsOS40NCwwLDAsMSwxMC42NSwyNC40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMiwxMEgyMGExLDEsMCwwLDAtMSwx'@; put 'djRhOS40Myw5LjQzLDAsMCwxLDEwLjYzLDlIMzJhMSwxLDAsMCwwLDEtMVYxMUExLDEsMCwwLDAsMzIsMTBaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGN4PSIyMC4xNSIgY3k9IjI0LjQ0IiByPSI3LjUiLz4nKSxGLkNs'@; put 'clNoYXBlQm9vaz0oMCxtLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMTAiIHk9IjUuMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEuNTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0yIiBkPSJNMjksOEg5Ljg2QTEuODksMS44OSwwLDAsMSw4LDYsMiwyLDAsMCwxLDkuODYsNEgyOWExLDEsMCwwLDAsMC0ySDkuODZBNCw0LDAsMCwwLDYsNmE0LjE0LDQuMTQsMCwwLDAsMCwuNDksMSwxLDAsMCwwLDAsLjI0VjMwYTQsNCwwLDAsMCwzLjg2LDRIMjlh'@; put 'MSwxLDAsMCwwLDEtMVY5LjI1czAtLjA2LDAtLjA5LDAtLjA2LDAtLjA5QTEuMDcsMS4wNywwLDAsMCwyOSw4Wk0yOCwzMkg5Ljg2QTIsMiwwLDAsMSw4LDMwVjkuNTVBMy42MywzLjYzLDAsMCwwLDkuODYsMTBIMjhaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0xIiB4PSIxMCIgeT0iNS4yIiB3aWR0aD0iMTgiIGhlaWdodD0iMS41NSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI5LDhIOS44NkExLjg5LDEuODksMCwwLDEsOCw2LDIsMiwwLDAsMSw5'@; put 'Ljg2LDRIMjlhMSwxLDAsMSwwLDAtMkg5Ljg2QTQsNCwwLDAsMCw2LDZhNC4xNCw0LjE0LDAsMCwwLDAsLjQ5LDEsMSwwLDAsMCwwLC4yNFYzMGE0LDQsMCwwLDAsMy44Niw0SDI5YTEsMSwwLDAsMCwxLTFWOS4yNXMwLS4wNiwwLS4wOSwwLS4wNiwwLS4wOUExLjA3LDEuMDcsMCwwLDAsMjks'@; put 'OFoiLz4nKSxGLkNsclNoYXBlQXN0ZXJpc2s9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOC44OSwyMC45MWwtNS0yLjkxLDQuODctMi44NmEzLjExLDMuMTEsMCwwLDAsMS4xNC0xLjA4LDMsMywwLDAsMC00'@; put 'LjA5LTQuMTVMMjEsMTIuNzZWN2EzLDMsMCwwLDAtNiwwdjUuNzZMMTAuMTUsOS45MWEzLDMsMCwxLDAtMyw1LjE4bDUsMi45MUw3LjIsMjAuODZhMy4xMSwzLjExLDAsMCwwLTEuMTQsMS4wOCwzLDMsMCwwLDAsNC4wOSw0LjE0TDE1LDIzLjI0VjI4LjlhMywzLDAsMCwwLDIsMi45NEEzLDMs'@; put 'MCwwLDAsMjEsMjlWMjMuMjRsNC44NSwyLjg1YTMsMywwLDEsMCwzLTUuMThaTTI4LjI0LDI0YTEsMSwwLDAsMS0xLjM3LjM2TDE5LDE5Ljc1VjI5YTEsMSwwLDAsMS0yLDBWMTkuNzVMOS4xMywyNC4zNmExLDEsMCwwLDEtMS0xLjcyTDE2LDE4bC03LjktNC42NGExLDEsMCwxLDEsMS0xLjcy'@; put 'TDE3LDE2LjI1VjdhMSwxLDAsMCwxLDIsMHY5LjI1bDcuODctNC42MmExLDEsMCwwLDEsMSwxLjcyTDIwLDE4bDcuOSw0LjY0QTEsMSwwLDAsMSwyOC4yNCwyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOC44OSwy'@; put 'MC45MWwtNS0yLjkxLDQuODctMi44NmEzLjExLDMuMTEsMCwwLDAsMS4xNC0xLjA4LDMsMywwLDAsMC00LjA5LTQuMTVMMjEsMTIuNzZWN2EzLDMsMCwwLDAtNiwwdjUuNzZMMTAuMTUsOS45MWEzLDMsMCwxLDAtMyw1LjE4bDUsMi45MUw3LjIsMjAuODZhMy4xMSwzLjExLDAsMCwwLTEuMTQs'@; put 'MS4wOCwzLDMsMCwwLDAsNC4wOSw0LjE0TDE1LDIzLjI0VjI4LjlhMywzLDAsMCwwLDIsMi45NEEzLDMsMCwwLDAsMjEsMjlWMjMuMjRsNC44NSwyLjg1YTMsMywwLDEsMCwzLTUuMThaIi8+JyksRi5DbHJTaGFwZVNjaXNzb3JzPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgZD0iTTI0LjA2LDE4LjE4bDkuNjEtOC43N2ExLDEsMCwwLDAtLjA5LTEuNTVsLTIuMjQtMS42YTMuNTcsMy41NywwLDAsMC00LjI4LjEyTDE1Ljg4LDE1LjNsLTMuMjYtMi41MmE1LjQ1LDUuNDUsMCwxLDAtMSwx'@; put 'Ljc3bDIuNjIsMkwxMCwyMGE1LjQ4LDUuNDgsMCwxLDAsMS41OSwxLjI5TDI4LjMsNy45NGExLjU3LDEuNTcsMCwwLDEsMS44OC0uMDVsMS4yMy44OEwyMS4xLDE4LjE5bDEwLjMxLDkuNC0xLjIzLjg4YTEuNTcsMS41NywwLDAsMS0xLjg4LS4wNWwtOS44MS03Ljg1TDE3LDIxLjkzbDEwLjA2'@; put 'LDhhMy41NywzLjU3LDAsMCwwLDQuMjkuMTJsMi4yNC0xLjZhMSwxLDAsMCwwLC4wOS0xLjU1Wk03LjQ1LDE0LjU0YTMuNDYsMy40NiwwLDEsMSwzLjQ1LTMuNDZBMy40NiwzLjQ2LDAsMCwxLDcuNDUsMTQuNTRabTAsMTMuNzJBMy40NiwzLjQ2LDAsMSwxLDEwLjksMjQuOCwzLjQ2LDMuNDYs'@; put 'MCwwLDEsNy40NSwyOC4yNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMy44MSw4LjEzLDMxLjYzLDYuNDhhMS45MiwxLjkyLDAsMCwwLTIuMzYsMEwxMCwyMi4wNmE1LjQ2LDUuNDYsMCwxLDAsMiwxLjgxbDMuOS0z'@; put 'LjEyTDI5LjI3LDMxLjUyYTEuOTIsMS45MiwwLDAsMCwyLjM2LDBsMi4xOC0xLjY0TDIwLjk0LDE5Wk03LjQ1LDI5Ljc1YTIuODYsMi44NiwwLDEsMSwyLjg2LTIuODZBMi44NywyLjg3LDAsMCwxLDcuNDUsMjkuNzVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTQuMywxNS4yNCwxMiwxMy4zOGE1LjQ2LDUuNDYsMCwxLDAtMiwxLjgxTDEyLjE2LDE3Wm0tNi44NS0yYTIuODYsMi44NiwwLDEsMSwyLjg2LTIuODZBMi44NiwyLjg2LDAsMCwxLDcuNDUsMTMuMjNaIi8+JyksRi5DbHJTaGFwZUJ1Zz0oMCxtLmNs'@; put 'ckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMjMuNTYiIGN5PSIxNy43NCIgcj0iMS45NSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjIy'@; put 'LjQyIiBjeT0iMjUuODgiIHI9IjEuNTgiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGN4PSIxMi44NiIgY3k9IjE3Ljc0IiByPSIxLjk1Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC00IiBjeD0iMTMuOTkiIGN5PSIyNS44OCIgcj0iMS41OCIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0zMC44MywyMEgyOWExOS4yOSwxOS4yOSwwLDAsMC0xLjE4LTUuNzNsMS40'@; put 'Ni0uNzlhMSwxLDAsMCwwLS45NS0xLjc2bC0zLDEuNjRBMTcuNjUsMTcuNjUsMCwwLDEsMjcsMjAuNzJDMjcsMjcsMjMuOCwzMS4yMywxOC44LDMxLjYyVjE1SDE3LjJWMzEuNjJDMTIuMjIsMzEuMjEsOSwyNyw5LDIwLjcyYTE3Ljc0LDE3Ljc0LDAsMCwxLDEuNzMtNy4zNEw3LjcsMTEuNzJh'@; put 'MSwxLDAsMCwwLS45NSwxLjc2bDEuNS44QTE5LjM4LDE5LjM4LDAsMCwwLDcuMDcsMjBINS4xN2ExLDEsMCwwLDAsMCwySDcuMWExNC42MiwxNC42MiwwLDAsMCwxLjY2LDYuMTdMNi44NywyOS40OUExLDEsMCwxLDAsOCwzMS4xMmwxLjg0LTEuMjlBMTAuMzgsMTAuMzgsMCwwLDAsMTgsMzMu'@; put 'NjZhMTAuMzgsMTAuMzgsMCwwLDAsOC4xNC0zLjgxTDI4LDMxLjEyYTEsMSwwLDEsMCwxLjE1LTEuNjRsLTEuODYtMS4zQTE0LjYxLDE0LjYxLDAsMCwwLDI4Ljk0LDIyaDEuODlhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC02IiBkPSJNMTEuNTEsNS4zNmExLjY3LDEuNjcsMCwwLDAsMS4wNy0uNTFBMy4yMSwzLjIxLDAsMCwxLDEzLjc2LDZhMTYuMzgsMTYuMzgsMCwwLDAtMi42NSwyLjg5LDIsMiwwLDAsMCwxLjYxLDMuMTlIMjMuMzJBMiwyLDAsMCwwLDI1LjEsMTFhMiwyLDAsMCwwLS4x'@; put 'Ny0yLjFBMTYuMzQsMTYuMzQsMCwwLDAsMjIuMjUsNmEzLjIxLDMuMjEsMCwwLDEsMS4xNy0xLjExQTEuNjgsMS42OCwwLDEsMCwyMywzLjI3LDQuNzcsNC43NywwLDAsMCwyMSw1YTUuODEsNS44MSwwLDAsMC0yLjkzLTEsNS44Myw1LjgzLDAsMCwwLTMsMUE0Ljc3LDQuNzcsMCwwLDAsMTMs'@; put 'My4yN2ExLjY4LDEuNjgsMCwxLDAtMS40OSwyLjA5Wk0xOCw2LjA3YzEuNDUsMCwzLjUzLDEuNTcsNS4zMSw0aDBsLTEwLjYsMEMxNC40OSw3LjYzLDE2LjU2LDYuMDcsMTgsNi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi'@; put 'IGQ9Ik0zMC44MywyMEgyOWExOS4yOSwxOS4yOSwwLDAsMC0xLjE4LTUuNzNsMS40Ni0uNzlhMSwxLDAsMCwwLS45NS0xLjc2bC0zLDEuMjhIMTAuNzhMNy43LDExLjcyYTEsMSwwLDAsMC0uOTUsMS43NmwxLjUuOEExOS4zOCwxOS4zOCwwLDAsMCw3LjA3LDIwSDUuMTdhMSwxLDAsMCwwLDAs'@; put 'Mkg3LjFhMTQuNjIsMTQuNjIsMCwwLDAsMS42Niw2LjE3TDYuODcsMjkuNDlBMSwxLDAsMSwwLDgsMzEuMTJsMS44NC0xLjI5QTEwLjI5LDEwLjI5LDAsMCwwLDE3LDMzLjZWMTVoMlYzMy42YTEwLjI5LDEwLjI5LDAsMCwwLDcuMTYtMy43NUwyOCwzMS4xMmExLDEsMCwxLDAsMS4xNS0xLjY0'@; put 'bC0xLjg2LTEuM0ExNC42MSwxNC42MSwwLDAsMCwyOC45NCwyMmgxLjg5YTEsMSwwLDAsMCwwLTJaTTEwLjkxLDE3Ljc0YTEuOTUsMS45NSwwLDEsMSwxLjk1LDEuOTVBMS45NSwxLjk1LDAsMCwxLDEwLjkxLDE3Ljc0Wk0xNCwyNy40NmExLjU4LDEuNTgsMCwxLDEsMS41OC0xLjU4QTEuNTgs'@; put 'MS41OCwwLDAsMSwxNCwyNy40NlptOC40MywwQTEuNTgsMS41OCwwLDEsMSwyNCwyNS44OCwxLjU4LDEuNTgsMCwwLDEsMjIuNDIsMjcuNDZabTEuMTMtNy43N2ExLjk1LDEuOTUsMCwxLDEsMS45NS0xLjk1QTEuOTUsMS45NSwwLDAsMSwyMy41NiwxOS42OVoiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMS4yMyw1LjI2YTEuNjcsMS42NywwLDAsMCwuNTQtLjMyLDUuOSw1LjksMCwwLDEsLjg5LjU4LDcuNDQsNy40NCwwLDAsMSwuOTUuOTRBMTguNDgsMTguNDgsMCwwLDAsMTAuNzksOS43Yy0uNC41Ny4wOSwx'@; put 'LjI4Ljg2LDEuMjhIMjQuNDRjLjc3LDAsMS4yNi0uNzEuODYtMS4yOGExOC4zOCwxOC4zOCwwLDAsMC0yLjg4LTMuMjgsNy4yOCw3LjI4LDAsMCwxLC45MS0uOSw1LjksNS45LDAsMCwxLC44OS0uNTgsMS42OSwxLjY5LDAsMSwwLS41Ni0xLjUxLDcuNDksNy40OSwwLDAsMC0xLjMyLjgzLDku'@; put 'MDYsOS4wNiwwLDAsMC0xLjE5LDEuMThBNS44NSw1Ljg1LDAsMCwwLDE4LDQuM2E1LjkxLDUuOTEsMCwwLDAtMy4xNywxLjE5LDkuMiw5LjIsMCwwLDAtMS4yMi0xLjIxLDcuNDksNy40OSwwLDAsMC0xLjMyLS44MywxLjY4LDEuNjgsMCwxLDAtMS4xMSwxLjgzWiIvPicpLEYuQ2xyU2hhcGVU'@; put 'aGVybW9tZXRlcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LDIzLjE3VjExLjQ2SDE3VjIzLjJhMywzLDAsMSwwLDIsMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYsMTVhMSwxLDAsMCwwLDAtMkgyMy45MlYxMUgyNmExLDEsMCwwLDAsMC0ySDIzLjkyVjhhNiw2LDAsMCwwLTEyLDBWMjAuODFhOCw4LDAsMSwwLDEyLS4yVjE5SDI2YTEsMSwwLDAsMCwwLTJIMjMuOTJWMTVaTTI0LDI2YTYsNiwwLDEsMS0xMC4z'@; put 'Ni00LjEybC4yNy0uMjlWOGE0LDQsMCwwLDEsOCwwVjIxLjQ0bC4zLjI5QTYsNiwwLDAsMSwyNCwyNloiLz4nKSxGLkNsclNoYXBlUGVuY2lsPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuODcsOC4zMiwy'@; put 'OCwyLjQyYTIuMDcsMi4wNywwLDAsMC0yLjkyLDBMNC4yNywyMy4ybC0xLjksOC4yYTIuMDYsMi4wNiwwLDAsMCwyLDIuNSwyLjE0LDIuMTQsMCwwLDAsLjQzLDBMMTMuMDksMzIsMzMuODcsMTEuMjRBMi4wNywyLjA3LDAsMCwwLDMzLjg3LDguMzJaTTEyLjA5LDMwLjIsNC4zMiwzMS44M2wx'@; put 'Ljc3LTcuNjJMMjEuNjYsOC43bDYsNlpNMjksMTMuMjVsLTYtNiwzLjQ4LTMuNDYsNS45LDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTQuMjIsMjMuMmwtMS45LDguMmEyLjA2LDIuMDYsMCwwLDAsMiwyLjUs'@; put 'Mi4xNCwyLjE0LDAsMCwwLC40MywwTDEzLDMyLDI4Ljg0LDE2LjIyLDIwLDcuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODIsOC4zMmwtNS45LTUuOWEyLjA3LDIuMDcsMCwwLDAtMi45MiwwTDIxLjcy'@; put 'LDUuN2w4LjgzLDguODMsMy4yOC0zLjI4QTIuMDcsMi4wNywwLDAsMCwzMy44Miw4LjMyWiIvPicpLEYuQ2xyU2hhcGVOb3RlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCwzMEg2VjhIMTkuMjJsMi0ySDZBMiwyLDAsMCwwLDQsOFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAs'@; put 'MCwyLTJWMTVsLTIsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjUzLDUuODQsMzAuMTYsMi40N2ExLjYxLDEuNjEsMCwwLDAtMi4yOCwwTDE0LjE3LDE2LjI2bC0xLjExLDQuODFBMS42MSwxLjYxLDAs'@; put 'MCwwLDE0LjYzLDIzLDEuNjksMS42OSwwLDAsMCwxNSwyM2w0Ljg1LTEuMDdMMzMuNTMsOC4xMkExLjYxLDEuNjEsMCwwLDAsMzMuNTMsNS44NFpNMTguODEsMjAuMDhsLTMuNjYuODFMMTYsMTcuMjYsMjYuMzIsNi44N2wyLjgyLDIuODJaTTMwLjI3LDguNTYsMjcuNDUsNS43NCwyOSw0LjE2'@; put 'LDMxLjg0LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMyw2LjQsMjkuMywyLjdhMS43MSwxLjcxLDAsMCwwLTIuMzYsMEwyMy42NSw2SDZBMiwyLDAsMCwwLDQsOFYzMGEyLDIsMCwwLDAsMiwySDI4YTIs'@; put 'MiwwLDAsMCwyLTJWMTEuNzZsMy0zQTEuNjcsMS42NywwLDAsMCwzMyw2LjRaTTE4LjgzLDIwLjEzbC00LjE5LjkzLDEtNC4xNSw5LjU1LTkuNTcsMy4yMywzLjIzWk0yOS41LDkuNDMsMjYuMjcsNi4ybDEuODUtMS44NSwzLjIzLDMuMjNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVSZWZyZXNoPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjIuNCwxMS42NWExLjA5LDEuMDksMCwwLDAsMS4wOSwxLjA5SDM0LjQzVjEuODFhMS4wOSwxLjA5LDAs'@; put 'MSwwLTIuMTksMFY4Ljk1YTE2LjQxLDE2LjQxLDAsMSwwLDEuNDcsMTUuODYsMS4xMiwxLjEyLDAsMCwwLTIuMDUtLjksMTQuMTgsMTQuMTgsMCwxLDEtMS4wNS0xMy4zNkgyMy41QTEuMDksMS4wOSwwLDAsMCwyMi40LDExLjY1WiIvPicpLEYuQ2xyU2hhcGVTeW5jPSgwLG0uY2xySWNvblNW'@; put 'RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuODQsMTUuNzJhMSwxLDAsMSwwLTIsLjI5QTEzLjE1LDEzLjE1LDAsMCwxLDMxLDE3Ljk0LDEzLDEzLDAsMCwxLDguNywyN2g1LjM2YTEsMSwwLDAsMCwwLTJoLTl2OWExLDEsMCwxLDAs'@; put 'MiwwVjI4LjJBMTUsMTUsMCwwLDAsMzIuODQsMTUuNzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC4wNiwxQTEuMDUsMS4wNSwwLDAsMCwyOSwyVjcuODNBMTQuOTQsMTQuOTQsMCwwLDAsMywxNy45'@; put 'NGExNS4xNiwxNS4xNiwwLDAsMCwuMiwyLjQ4LDEsMSwwLDAsMCwxLC44NGguMTZhMSwxLDAsMCwwLC44Mi0xLjE1QTEzLjIzLDEzLjIzLDAsMCwxLDUsMTcuOTRhMTMsMTMsMCwwLDEsMTMtMTNBMTIuODcsMTIuODcsMCwwLDEsMjcuNDQsOUgyMi4wNmExLDEsMCwwLDAsMCwySDMxVjJBMSwx'@; put 'LDAsMCwwLDMwLjA2LDFaIi8+JyksRi5DbHJTaGFwZVZpZXdMaXN0PSgwLG0uY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIyIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik03LDEwSDMxYTEsMSwwLDAsMCwwLTJIN2ExLDEsMCwwLDAsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyIiB5PSIx'@; put 'NCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzEsMTRIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjIiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9Ik0zMSwyMEg3YTEsMSwwLDAsMCww'@; put 'LDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iMiIgeT0iMjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgZD0iTTMxLDI2SDdhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPicpLEYuQ2xyU2hhcGVWaWV3Q2FyZHM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9'@; put 'Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiwx'@; put 'N0gyMWEyLDIsMCwwLDEtMi0yVjhhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDE3Wk0yMSw4djdIMzJWOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE1LDMwSDRh'@; put 'MiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMyLDMwSDIxYTIs'@; put 'MiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPicpLEYuQ2xyU2hhcGVMaWdodGJ1bGI9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDIuMjVhMTEsMTEsMCwwLDAtMTEsMTEsMTAuNjgs'@; put 'MTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoMkExOC4xNywxOC4xNywwLDAsMCwxMywyMi40NGExOC40NiwxOC40NiwwLDAsMC0yLjIyLTMuOTIsMTUuNzksMTUuNzksMCwwLDEt'@; put 'MS0xLjU0QTguNjQsOC42NCwwLDAsMSw5LDEzLjIzYTksOSwwLDAsMSwxOC4wNywwQTguNjQsOC42NCwwLDAsMSwyNi4yMSwxN2ExNS43OSwxNS43OSwwLDAsMS0xLDEuNTRBMTguNDYsMTguNDYsMCwwLDAsMjMsMjIuNDRhMTguMTcsMTguMTcsMCwwLDAtLjcxLDQuNzFoMmExNi4xOSwxNi4x'@; put 'OSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjgsMTAuNjgsMCwwLDAsMS00LjYzQTExLDExLDAsMCwwLDE4LDIuMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTE4LjYzLDE1LjUxYS44LjgsMCwwLDAtMS4xMywwbC0zLDMsMi44NiwzLjEzdjUuNTRIMTlWMjFsLTIuMjQtMi40NSwxLjg5LTEuODlBLjguOCwwLDAsMCwxOC42MywxNS41MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSww'@; put 'LDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjMyLDEwLjg5bC0yLjczLDIuNzNhLjguOCwwLDAsMCwxLjEzLDEuMTNMMTguNDUsMTJhLjguOCwwLDEsMC0xLjEz'@; put 'LTEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDI3LjE1VjIxbC0yLjI0LTIuNDUsMS44OS0xLjg5YS44LjgsMCwwLDAtMS4xMy0xLjEzbC0zLDMsMi44NiwzLjEzdjUuNTRaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0xNS43MiwxNC43NSwxOC40NSwxMmEuOC44LDAsMSwwLTEuMTMtMS4xM2wtMi43MywyLjczYS44LjgsMCwwLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMjcsMTIuODhjMCwuMTIsMCwuMjMsMCwuMzVBOC42NCw4LjY0LDAsMCwxLDI2LjIxLDE3YTE1Ljc5LDE1Ljc5LDAsMCwxLTEsMS41NEExOC40NiwxOC40NiwwLDAsMCwyMywyMi40NGExOC4xNywxOC4xNywwLDAsMC0uNzEsNC43MWgyYTE2LjE5LDE2LjE5LDAsMCwx'@; put 'LC41OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42MywxMC42MywwLDAsMCwxLTQuNDNBNy40NSw3LjQ1LDAsMCwxLDI3LDEyLjg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNzEsMjcuMTVBMTguMTcsMTguMTcsMCwwLDAsMTMsMjIuNDRhMTguNDYsMTguNDYsMCwwLDAtMi4yMi0zLjkyLDE1Ljc5LDE1Ljc5LDAsMCwxLTEtMS41NEE4LjY0LDguNjQsMCwwLDEsOSwxMy4yMyw5LDksMCwwLDEsMjIuNTMsNS40N2E3LjQ1'@; put 'LDcuNDUsMCwwLDEsLjQzLTIsMTEsMTEsMCwwLDAtMTYsOS44LDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44Ljgs'@; put 'MCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMi4yNWExMSwxMSwwLDAsMC0xMSwxMSwxMC42OCwxMC42OCwwLDAsMCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAs'@; put 'MCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNGg1LjY5VjIxLjYxbC0yLjg2LTMuMTMsMy0zYS44LjgsMCwwLDEsMS4xMywxLjEzbC0xLjg5LDEuODlMMTksMjF2Ni4xN0gyNC4zYTE2LjE5LDE2LjE5LDAsMCwxLC41OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSww'@; put 'LDAsMCwyOCwxNy44NmExMC42OCwxMC42OCwwLDAsMCwxLTQuNjNBMTEsMTEsMCwwLDAsMTgsMi4yNVpNMTguNDUsMTJsLTIuNzMsMi43M2EuOC44LDAsMSwxLTEuMTMtMS4xM2wyLjczLTIuNzNBLjguOCwwLDEsMSwxOC40NSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2QTcuNDcsNy40NywwLDAsMSwyMywz'@; put 'LjQ0YTExLDExLDAsMCwwLTE2LDkuOCwxMC42OCwxMC42OCwwLDAsMCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNGg1LjY5VjIxLjYxbC0yLjg2LTMuMTMsMy0zYS44LjgsMCwwLDEsMS4xMywxLjEz'@; put 'bC0xLjg5LDEuODlMMTksMjF2Ni4xN0gyNC4zYTE2LjE5LDE2LjE5LDAsMCwxLC41OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42MywxMC42MywwLDAsMCwxLTQuNDNBNy41LDcuNSwwLDAsMSwyMi41LDZabS00LDYtMi43MywyLjczYS44Ljgs'@; put 'MCwxLDEtMS4xMy0xLjEzbDIuNzMtMi43M0EuOC44LDAsMSwxLDE4LjQ1LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxGLkNsclNoYXBlRG93bmxvYWQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJI'@; put 'MzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDgu'@; put 'ODEsMTcuNDZhMSwxLDAsMSwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDI1LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2'@; put 'YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEsMSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmExLDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4y'@; put 'OCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksRi5DbHJTaGFwZVVwbG9hZD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAg'@; put 'ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNOC44MSwxNSwxNyw2LjgzVjI3LjQ4YTEsMSwwLDAsMCwyLDBWNi44M0wyNy4xOSwxNWExLDEsMCwwLDAsMS40MS0xLjQxTDE4LDMsNy4zOSwxMy42MUExLDEsMCwxLDAsOC44'@; put 'MSwxNVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMxLDMxSDVjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMjZjMC42LDAsMS0wLjQsMS0xUzMxLjYsMzEsMzEsMzF6'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik04LjgsMTVMMTcsNi44djIwLjZjMCwwLjYsMC40LDEsMSwxczEtMC40LDEtMVY2LjhMMjAuMSw4bDEtMS44TDE4LDNMNy40LDEz'@; put 'LjZDNywxNCw2LjksMTQuNiw3LjIsMTVzMSwwLjUsMS40LDAuMUM4LjcsMTUuMSw4LjgsMTUuMSw4LjgsMTV6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9'@; put 'Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEs'@; put 'MjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNOC44MSwxNSwxNyw2LjgzVjI3LjQ4YTEsMSwwLDAsMCwyLDBWNi44M0wyNy4xOSwxNWExLDEsMCwwLDAsMS40MS0xLjQxTDE4LDMsNy4zOSwxMy42MUExLDEsMCwxLDAsOC44MSwx'@; put 'NVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEYuQ2xyU2hhcGVMb2NrPSgwLG0uY2xySWNvblNWRykoJzxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTguMDksMjAuNTlBMi40MSwyLjQxLDAsMCwwLDE3LDI1LjE0VjI4aDJWMjUuMjNhMi40MSwyLjQxLDAsMCwwLS45MS00LjY0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYsMTVWMTAuNzJhOC4yLDguMiwwLDAsMC04LTguMzYsOC4yLDguMiwwLDAsMC04LDguMzZWMTVIN1YzMmEyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMTVaTTEyLDEwLjcyYTYuMiw2LjIsMCwwLDEsNi02LjM2LDYuMiw2LjIs'@; put 'MCwwLDEsNiw2LjM2VjE1SDEyWk05LDMyVjE3SDI3VjMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNiwxNVYxMC43MmE4LjIsOC4yLDAsMCwwLTgtOC4zNiw4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUg3VjMy'@; put 'YTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYxNVpNMTksMjUuMjNWMjhIMTdWMjUuMTRhMi40LDIuNCwwLDEsMSwyLC4wOVpNMjQsMTVIMTJWMTAuNzJhNi4yLDYuMiwwLDAsMSw2LTYuMzYsNi4yLDYuMiwwLDAsMSw2LDYuMzZaIi8+JyksRi5DbHJTaGFwZVVubG9jaz0oMCxtLmNs'@; put 'ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTEyLDI1LjE0VjI4aDJWMjUuMjNhMi40MiwyLjQyLDAsMSwwLTItLjA5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiBkPSJNMjYsMmE4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUgyVjMyYTIsMiwwLDAsMCwyLDJIMjJhMiwyLDAsMCwwLDItMlYxNUgyMFYxMC4zNkE2LjIsNi4yLDAsMCwxLDI2LDRhNi4yLDYuMiwwLDAsMSw2LDYuMzZ2Ni44M2ExLDEsMCwwLDAsMiwwVjEwLjM2QTguMiw4LjIs'@; put 'MCwwLDAsMjYsMlpNMjIsMTdWMzJINFYxN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMmE4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUgyVjMyYTIsMiwwLDAsMCwyLDJIMjJhMiwyLDAsMCwwLDItMlYxNUgy'@; put 'MFYxMC4zNkE2LjIsNi4yLDAsMCwxLDI2LDRhNi4yLDYuMiwwLDAsMSw2LDYuMzZ2Ni44M2ExLDEsMCwwLDAsMiwwVjEwLjM2QTguMiw4LjIsMCwwLDAsMjYsMlpNMTQsMjUuMjNWMjhIMTJWMjUuMTRhMi40LDIuNCwwLDEsMSwyLC4wOVoiLz4nKSxGLkNsclNoYXBlVXNlcnM9KDAsbS5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNy45LDE3LjNjMi43LDAsNC44LTIuMiw0LjgtNC45YzAtMi43LTIuMi00LjgtNC45LTQuOGMtMi43LDAtNC44LDIuMi00LjgsNC44QzEzLDE1LjEsMTUuMiwxNy4zLDE3LjksMTcu'@; put 'M3ogTTE3LjgsOS42QzE3LjksOS42LDE3LjksOS42LDE3LjgsOS42YzEuNiwwLDIuOSwxLjMsMi45LDIuOXMtMS4zLDIuOC0yLjksMi44Yy0xLjYsMC0yLjgtMS4zLTIuOC0yLjhDMTUsMTAuOSwxNi4zLDkuNiwxNy44LDkuNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjcsMTYuN2MtMS45LTEuNy00LjQtMi42LTctMi41Yy0wLjMsMC0wLjUsMC0wLjgsMGMtMC4yLDAuOC0wLjUsMS41LTAuOSwyLjFjMC42LTAuMSwxLjEtMC4xLDEuNy0wLjFjMS45LTAuMSwzLjgsMC41LDUuMywxLjZWMjVo'@; put 'MnYtOEwzMi43LDE2Ljd6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMy40LDcuOGMwLjUtMS4yLDEuOS0xLjgsMy4yLTEuM2MxLjIsMC41LDEuOCwxLjksMS4zLDMuMmMtMC40LDAuOS0xLjMsMS41LTIu'@; put 'MiwxLjVjLTAuMiwwLTAuNSwwLTAuNy0wLjFjMC4xLDAuNSwwLjEsMSwwLjEsMS40YzAsMC4yLDAsMC40LDAsMC42YzAuMiwwLDAuNCwwLjEsMC42LDAuMWMyLjUsMCw0LjUtMiw0LjUtNC40YzAtMi41LTItNC41LTQuNC00LjVjLTEuNiwwLTMsMC44LTMuOCwyLjJDMjIuNSw2LjgsMjMsNy4y'@; put 'LDIzLjQsNy44eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTIsMTYuNGMtMC40LTAuNi0wLjctMS4zLTAuOS0yLjFjLTAuMywwLTAuNSwwLTAuOCwwYy0yLjYtMC4xLTUuMSwwLjgtNywyLjRMMywxN3Y4'@; put 'aDJ2LTcuMmMxLjYtMS4xLDMuNC0xLjcsNS4zLTEuNkMxMC45LDE2LjIsMTEuNSwxNi4zLDEyLDE2LjR6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xMC4zLDEzLjFjMC4yLDAsMC40LDAsMC42LTAuMWMw'@; put 'LTAuMiwwLTAuNCwwLTAuNmMwLTAuNSwwLTEsMC4xLTEuNGMtMC4yLDAuMS0wLjUsMC4xLTAuNywwLjFjLTEuMywwLTIuNC0xLjEtMi40LTIuNGMwLTEuMywxLjEtMi40LDIuNC0yLjRjMSwwLDEuOSwwLjYsMi4zLDEuNWMwLjQtMC41LDEtMSwxLjUtMS40Yy0xLjMtMi4xLTQtMi44LTYuMS0x'@; put 'LjVjLTIuMSwxLjMtMi44LDQtMS41LDYuMUM3LjMsMTIuMyw4LjcsMTMuMSwxMC4zLDEzLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9Ik0yNi4xLDIyLjdsLTAuMi0wLjNjLTItMi4yLTQuOC0zLjUtNy44'@; put 'LTMuNGMtMy0wLjEtNS45LDEuMi03LjksMy40TDEwLDIyLjd2Ny42YzAsMC45LDAuNywxLjcsMS43LDEuN2MwLDAsMCwwLDAsMGgxMi44YzAuOSwwLDEuNy0wLjgsMS43LTEuN2MwLDAsMCwwLDAsMFYyMi43eiBNMjQuMSwzMEgxMnYtNi42YzEuNi0xLjYsMy44LTIuNCw2LjEtMi40YzIuMi0w'@; put 'LjEsNC40LDAuOCw2LDIuNFYzMHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTExLjA5LDE0LjU3Yy4xLDAsLjIsMCwuMzEsMGE2LjQzLDYuNDMsMCwwLDEsLjA5LTIsMi4w'@; put 'OSwyLjA5LDAsMSwxLDEuNDctMyw2LjU4LDYuNTgsMCwwLDEsMS41NS0xLjMxLDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0x'@; put 'MywxOC4xNGE2LjUzLDYuNTMsMCwwLDEtMS4yOC0yLjJsLS42MywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY3aDJWMTkuNTFhNyw3LDAsMCwxLDQuNjctMS42QTguMDksOC4wOSwwLDAsMSwxMywxOC4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTMxLjM1LDE4LjQyQTguNTksOC41OSwwLDAsMCwyNSwxNS45MWMtLjMyLDAtLjYsMC0uOS4wNmE2LjUzLDYuNTMsMCwwLDEtMS4zNSwyLjI1QTcuOSw3LjksMCwwLDEsMjUsMTcuOTFhNi45NCw2'@; put 'Ljk0LDAsMCwxLDQuNjQsMS41OHY2LjI3aDJWMTguN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LjEsMTkuNzNBOS42OSw5LjY5LDAsMCwwLDExLDIyLjQ3bC0uMjUu'@; put 'Mjh2Ny4zM2ExLjU3LDEuNTcsMCwwLDAsMS42MSwxLjU0SDIzLjgzYTEuNTcsMS41NywwLDAsMCwxLjYxLTEuNTRWMjIuNzNsLS4yNS0uMjhBOS41OCw5LjU4LDAsMCwwLDE4LjEsMTkuNzNabTUuMzMsOS44OEgxMi43M1YyMy41NWE4LjA4LDguMDgsMCwwLDEsNS4zNy0xLjgyLDgsOCwwLDAs'@; put 'MSw1LjMzLDEuOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgZD0iTTIwLjI4LDE0LjI3YTIuNDYsMi40NiwwLDEsMS0yLjQyLTIuODksMi40NCwyLjQ0LDAsMCwxLDEsLjI0LDMu'@; put 'NjcsMy42NywwLDAsMSwuNDMtMiw0LjQxLDQuNDEsMCwwLDAtMS40OC0uMjdBNC40Nyw0LjQ3LDAsMSwwLDIyLjE0LDE1LDMuNjksMy42OSwwLDAsMSwyMC4yOCwxNC4yN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI3LjE4LjhsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzRhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjM5LjhBMS4yOCwxLjI4LDAsMCwwLDI3LjE4LjhaIi8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTEuMDksMTQuNTdjLjEsMCwuMiwwLC4zMSwwYTYuNDMsNi40MywwLDAsMSwuMDktMiwyLjA5LDIuMDksMCwxLDEsMS40Ny0zLDYuNTgsNi41OCwwLDAsMSwxLjU1LTEuMzEs'@; put 'NC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xMywxOC4xNGE2LjUzLDYuNTMsMCwwLDEtMS4yOC0yLjJsLS42MywwYTguNjcsOC42'@; put 'NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY3aDJWMTkuNTFhNyw3LDAsMCwxLDQuNjctMS42QTguMDksOC4wOSwwLDAsMSwxMywxOC4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQi'@; put 'IGQ9Ik0zMS4zNSwxOC40MkE4LjU5LDguNTksMCwwLDAsMjUsMTUuOTFjLS4zMiwwLS42LDAtLjkuMDZhNi41Myw2LjUzLDAsMCwxLTEuMzUsMi4yNUE3LjksNy45LDAsMCwxLDI1LDE3LjkxYTYuOTQsNi45NCwwLDAsMSw0LjY0LDEuNTh2Ni4yN2gyVjE4LjdaIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMTcuODYsMTguM2E0LjQ3LDQuNDcsMCwxLDAtNC40Ny00LjQ3QTQuNDcsNC40NywwLDAsMCwxNy44NiwxOC4zWm0wLTYuOTNhMi40NywyLjQ3LDAsMSwxLTIuNDcs'@; put 'Mi40N0EyLjQ3LDIuNDcsMCwwLDEsMTcuODYsMTEuMzdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiBkPSJNMTguMSwxOS43M0E5LjY5LDkuNjksMCwwLDAsMTEsMjIuNDdsLS4yNS4y'@; put 'OHY3LjMzYTEuNTcsMS41NywwLDAsMCwxLjYxLDEuNTRIMjMuODNhMS41NywxLjU3LDAsMCwwLDEuNjEtMS41NFYyMi43M2wtLjI1LS4yOEE5LjU4LDkuNTgsMCwwLDAsMTguMSwxOS43M1ptNS4zMyw5Ljg4SDEyLjczVjIzLjU1YTguMDgsOC4wOCwwLDAsMSw1LjM3LTEuODIsOCw4LDAsMCwx'@; put 'LDUuMzMsMS44WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgZD0iTTI2LjM3LDEyYTIsMiwwLDAsMS0yLjA5LjQyLDYuNTMsNi41MywwLDAsMSwuMTUsMS4zOCw2LjU5LDYuNTksMCww'@; put 'LDEsMCwuNjgsNCw0LDAsMCwwLC41Ny4wNiw0LjA4LDQuMDgsMCwwLDAsMy4zLTEuN0E3LjQ1LDcuNDUsMCwwLDEsMjYuMzcsMTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiBkPSJN'@; put 'MjIuOTUsNi45M2E0LjE2LDQuMTYsMCwwLDAtMS40NywxLjQ0QTYuNTksNi41OSwwLDAsMSwyMyw5Ljc3YTIuMSwyLjEsMCwwLDEsLjU5LS44M0E3LjQ0LDcuNDQsMCwwLDEsMjIuOTUsNi45M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwLjMzIiBjeT0iNS42NyIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42'@; put 'Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2LjU5LDYuNTksMCwwLDEsMTIsMTYuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMiIgZD0iTTMxLjM0LDE4LjYzYTguNjcsOC42NywwLDAsMC02LjQzLTIuNTIsMTAuNDcsMTAuNDcsMCwwLDAtMS4wOS4wNiw2LjU5LDYuNTksMCwwLDEtMiwyLjQ1LDEwLjkxLDEwLjkxLDAsMCwxLDUsM2wuMjUuMjguNTQuNjJ2NC43MWgzLjk0VjE4LjkxWiIvPlxuICAgICAgICAg'@; put 'ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xMS4xLDE0LjE5Yy4xMSwwLC4yLDAsLjMxLDBhNi40NSw2LjQ1LDAsMCwxLDMuMTEtNi4yOSw0LjA5LDQuMDksMCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC40MywxMy40NGE2LjU0LDYuNTQsMCwwLDEsMCwuNjksNC4wOSw0LjA5LDAsMCwwLC41OC4wNWguMTlBNC4wOSw0LjA5LDAsMSwwLDIxLjQ3LDgsNi41Myw2LjUzLDAsMCwxLDI0LjQzLDEzLjQ0WiIvPlxuICAgICAg'@; put 'ICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgY3g9IjE3Ljg3IiBjeT0iMTMuNDUiIHI9IjQuNDciLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02IiBkPSJNMTguMTEsMjAu'@; put 'M0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wyNS4yLDIzQTkuNTgsOS41OCwwLDAsMCwxOC4xMSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2'@; put 'LjU5LDYuNTksMCwwLDEsMTIsMTYuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLjM0LDE4LjYzYTguNjcsOC42NywwLDAsMC02LjQzLTIuNTIsMTAuNDcsMTAuNDcsMCww'@; put 'LDAtMS4wOS4wNiw2LjU5LDYuNTksMCwwLDEtMiwyLjQ1LDEwLjkxLDEwLjkxLDAsMCwxLDUsM2wuMjUuMjguNTQuNjJ2NC43MWgzLjk0VjE4LjkxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0'@; put 'ZWQiIGQ9Ik0xMS4xLDE0LjE5Yy4xMSwwLC4yLDAsLjMxLDBhNi40NSw2LjQ1LDAsMCwxLDMuMTEtNi4yOSw0LjA5LDQuMDksMCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFs'@; put 'ZXJ0ZWQiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNBOS41OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAg'@; put 'ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCIgZD0iTTE3Ljg3LDE3LjkyYTQuNDYsNC40NiwwLDAsMCw0LTIuNTRBMy42NywzLjY3LDAsMCwxLDE5LDkuODlsLjM1LS42MUE0LjQyLDQuNDIsMCwwLDAsMTcuODcs'@; put 'OWE0LjQ3LDQuNDcsMCwxLDAsMCw4LjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4y'@; put 'MywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTEyLDE2'@; put 'LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTgsNi41OCwwLDAsMSwxMiwxNi4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLjM0LDE4LjYzYTguNjcsOC42NywwLDAsMC02LjQzLTIuNTIsMTAuNDcsMTAuNDcsMCwwLDAtMS4wOS4wNiw2LjU5LDYuNTksMCwwLDEtMiwyLjQ1LDEwLjkxLDEwLjkxLDAsMCwxLDUsM2wuMjUuMjgu'@; put 'NTQuNjJ2NC43MWgzLjk0VjE4LjkxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4w'@; put 'OSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBjeD0iMTcuODciIGN5PSIxMy40NSIgcj0iNC40NyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIiBkPSJNMTguMTEsMjAuM0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wy'@; put 'NS4yLDIzQTkuNTgsOS41OCwwLDAsMCwxOC4xMSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNi0tYmFkZ2VkIiBkPSJNMjQuNDMsMTMuNDRhNi41NCw2LjU0LDAsMCwxLDAsLjY5LDQuMDksNC4wOSww'@; put 'LDAsMCwuNTguMDVoLjE5YTQuMDUsNC4wNSwwLDAsMCwyLjUyLTEsNy41LDcuNSwwLDAsMS01LjE0LTYuMzJBNC4xMyw0LjEzLDAsMCwwLDIxLjQ3LDgsNi41Myw2LjUzLDAsMCwxLDI0LjQzLDEzLjQ0WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1i'@; put 'YWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxGLkNsclNoYXBlUG9wT3V0PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcsMzNI'@; put 'NWEyLDIsMCwwLDEtMi0yVjlBMiwyLDAsMCwxLDUsN0gxNVY5SDVWMzFIMjdWMjFoMlYzMUEyLDIsMCwwLDEsMjcsMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzYTEsMSwwLDAsMCwwLDJIMjku'@; put 'NTlMMTUuNzQsMTguODVhMSwxLDAsMSwwLDEuNDEsMS40MUwzMSw2LjQxVjE4YTEsMSwwLDAsMCwyLDBWM1oiLz4nKSxGLkNsclNoYXBlRmlsdGVyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNEgzQTEs'@; put 'MSwwLDAsMCwyLDVWNi42N2ExLjc5LDEuNzksMCwwLDAsLjUzLDEuMjdMMTQsMTkuNTh2MTAuMmwyLC43NlYxOWExLDEsMCwwLDAtLjI5LS43MUw0LDYuNTlWNkgzMnYuNjFMMjAuMzMsMTguMjlBMSwxLDAsMCwwLDIwLDE5bDAsMTMuMjFMMjIsMzNWMTkuNUwzMy40Nyw4QTEuODEsMS44MSww'@; put 'LDAsMCwzNCw2LjdWNUExLDEsMCwwLDAsMzMsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjIsMzNWMTkuNUwzMy40Nyw4QTEuODEsMS44MSwwLDAsMCwzNCw2LjdWNWExLDEsMCwwLDAtMS0xSDNBMSwxLDAs'@; put 'MCwwLDIsNVY2LjY3YTEuNzksMS43OSwwLDAsMCwuNTMsMS4yN0wxNCwxOS41OHYxMC4yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy40OCw0aC0zMUEuNTIuNTIsMCwwLDAsMiw0LjUyVjYuMjRhMS4zMywxLjMzLDAsMCwwLC4zOS45NWwxMiwxMnYxMGw3LjI1LDMuNjFWMTku'@; put 'MTdsMTItMTJBMS4zNSwxLjM1LDAsMCwwLDM0LDYuMjZWNC41MkEuNTIuNTIsMCwwLDAsMzMuNDgsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZVBpbj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE2LjU5YTEsMSwwLDAsMS0uNzEtLjI5TDE5LjcsMy43MWExLDEsMCwwLDEsMS40MS0xLjQxTDMzLjcxLDE0Ljg5QTEsMSwwLDAsMSwzMywxNi41OVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LjUyLDE1LjU2bC0xLjQxLTEuNDEtNy4yLDcuMmExLDEsMCwwLDAtLjI1LDEsOSw5LDAsMCwxLTEuNTMsOC4wOUw1LjU4LDE3Ljg3YTksOSwwLDAsMSw4LjA5LTEuNTMsMSwxLDAsMCwwLDEtLjI1bDcuMi03LjJMMjAuNDQsNy40OGwtNi43OSw2Ljc5'@; put 'QTEwLjk0LDEwLjk0LDAsMCwwLDMuNDEsMTcuMTFhMSwxLDAsMCwwLDAsMS40Mmw2LjMzLDYuMzNMMi4yOSwzMi4yOWExLDEsMCwxLDAsMS40MSwxLjQxbDcuNDQtNy40NCw2LjMzLDYuMzNhMSwxLDAsMCwwLC43MS4yOWgwYTEsMSwwLDAsMCwuNzEtLjMsMTEsMTEsMCwwLDAsMi44NC0xMC4y'@; put 'NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTYuNzFhMSwxLDAsMCwxLS43MS0uMjlMMTkuNywzLjgyYTEsMSwwLDAsMSwxLjQxLTEuNDFMMzMuNzEsMTVBMSwxLDAsMCwxLDMzLDE2LjcxWiIvPlxuICAg'@; put 'ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC40NCw3LjU5bC02Ljc5LDYuNzlBMTAuOTQsMTAuOTQsMCwwLDAsMy40MSwxNy4yMmExLDEsMCwwLDAsMCwxLjQyTDkuNzMsMjUsMi4yOSwzMi40MWExLDEsMCwxLDAsMS40MSwx'@; put 'LjQxbDcuNDQtNy40NCw2LjMzLDYuMzNhMSwxLDAsMCwwLC43MS4yOWgwYTEsMSwwLDAsMCwuNzEtLjMsMTEsMTEsMCwwLDAsMi44NC0xMC4yNGw2Ljc5LTYuNzlaIi8+JyksRi5DbHJTaGFwZUZpbGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiIGQ9Ik0yMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTEuOTJabS0uMywyLjQ5LDYsNS45aC02Wk04LDMwVjZIMjB2OGg4VjMwWiIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTIxLjU5LDEyLjM5VjYuNDlsMS4wNywxYTcuMzEsNy4zMSwwLDAsMSwwLTIuODJMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUu'@; put 'OTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjEzLjVhNy40NSw3LjQ1LDAsMCwxLTMuOTEtMS4xMVpNMjgsMzBIOFY2SDIwdjhoOFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjgsMTUu'@; put 'NFYzMEg4VjZIMjBWOC4yNWwyLjI1LTMuOUwyMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCww'@; put 'LDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEu'@; put 'ODgsMCwwLDAsMzAsMzAuMDlWMTEuOTJaTTIxLDEzVjUuODRMMjguMywxM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTI3LjI1LDEzSDIxVjUuODRsMS42NCwxLjZhNy4yNSw3LjI1'@; put 'LDAsMCwxLDAtMi43NEwyMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjcuMjUsMTNaIi8+XG4gICAgICAgICAgICAgICAgPGNp'@; put 'cmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEt'@; put 'LWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjRjLTIsMC0zLjctMS42LTMuNy0zLjZjMC0wLjcsMC4yLTEuMywwLjUtMS45bDMuMi01LjVMMjEuOSw0SDcuOEM2LjgsNCw2LDQuOSw2LDUuOXYyNC4yYzAsMSwwLjgsMS45LDEuOCwxLjloMjAuM2MxLDAsMS44LTAuOSwxLjgtMS45VjE1LjRIMjIuMnoi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJo'@; put 'MTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPicpLEYuQ2xyU2hhcGVQbHVzPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMTdIMTlWNmExLDEsMCwxLDAtMiwwVjE3SDZhMSwxLDAsMCwwLTEsMSwuOTEuOTEsMCwwLDAsMSwuOTRIMTdWMzBhMSwxLDAsMSwwLDIsMFYxOUgzMGExLDEsMCwwLDAsMS0xQTEsMSwwLDAsMCwzMCwxN1oiLz4nKSxGLkNsclNo'@; put 'YXBlTWludXM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDE3SDEwYTEsMSwwLDAsMCwwLDJIMjZhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVNaW51c0NpcmNsZT0oMCxtLmNsckljb25TVkcp'@; put 'KCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MjQsMTdIMTJhMSwxLDAsMCwwLDAsMkgyNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LDE3LjVIMTJhMS41'@; put 'LDEuNSwwLDAsMSwwLTNIMjRhMS41LDEuNSwwLDAsMSwwLDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVQbHVzQ2lyY2xlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi4xNywxN0gxOVY5LjgzYTEsMSwwLDAsMC0yLDBWMTdI'@; put 'OS44M2ExLDEsMCwwLDAsMCwySDE3djcuMTdhMSwxLDAsMCwwLDIsMFYxOWg3LjE3YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCww'@; put 'LDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMThBMTYsMTYsMCwxLDEsMTgsMiwxNiwxNiwwLDAsMSwzNCwxOFptLTgu'@; put 'NDEtMS41SDE5LjVWMTAuNDFhMS41LDEuNSwwLDAsMC0zLDBWMTYuNUgxMC40MWExLjUsMS41LDAsMCwwLDAsM0gxNi41djYuMDlhMS41LDEuNSwwLDAsMCwzLDBWMTkuNWg2LjA5YTEuNSwxLjUsMCwwLDAsMC0zWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicp'@; put 'LEYuQ2xyU2hhcGVCYW49KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTQsMThBMTMuOTMsMTMuOTMsMCwwLDEsNy40Myw4Ljg1TDI3LjE1'@; put 'LDI4LjU3QTE0LDE0LDAsMCwxLDQsMThabTI0LjU3LDkuMTVMOC44NSw3LjQzQTE0LDE0LDAsMCwxLDI4LjU3LDI3LjE1WiIvPicpLEYuQ2xyU2hhcGVUaW1lc0NpcmNsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'ZD0iTTE5LjYxLDE4bDQuODYtNC44NmExLDEsMCwwLDAtMS40MS0xLjQxTDE4LjIsMTYuNTRsLTQuODktNC44OWExLDEsMCwwLDAtMS40MSwxLjQxTDE2Ljc4LDE4LDEyLDIyLjcyYTEsMSwwLDEsMCwxLjQxLDEuNDFsNC43Ny00Ljc3LDQuNzQsNC43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIv'@; put 'PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm04LDIyLjFhMS40LDEuNCwwLDAsMS0yLDJsLTYtNkwxMiwyNi4xMmExLjQsMS40LDAsMSwxLTItMkwxNiwxOC4w'@; put 'OCw5LjgzLDExLjg2YTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE2LjFsNi4xNy02LjE3YTEuNCwxLjQsMCwxLDEsMiwyTDIwLDE4LjA4WiIvPicpLEYuQ2xyU2hhcGVUcmFzaD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'ZD0iTTI3LjE0LDM0SDguODZBMi45MywyLjkzLDAsMCwxLDYsMzFWMTEuMjNIOFYzMWEuOTMuOTMsMCwwLDAsLjg2LDFIMjcuMTRBLjkzLjkzLDAsMCwwLDI4LDMxVjExLjIzaDJWMzFBMi45MywyLjkzLDAsMCwxLDI3LjE0LDM0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuNzgsOUg1QTEsMSwwLDAsMSw1LDdIMzAuNzhhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMjEiIHk9IjEz'@; put 'IiB3aWR0aD0iMiIgaGVpZ2h0PSIxNSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjE1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMyw1Ljg2SDIxLjFWNEgxNC45VjUuODZIMTNWNGEyLDIsMCwwLDEsMS45LTJoNi4yQTIsMiwwLDAsMSwyMyw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi'@; put 'IGQ9Ik02LDlWMzFhMi45MywyLjkzLDAsMCwwLDIuODYsM0gyNy4wOUEyLjkzLDIuOTMsMCwwLDAsMzAsMzFWOVptOSwyMEgxM1YxNGgyWm04LDBIMjFWMTRoMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzAu'@; put 'NzMsNUgyM1Y0QTIsMiwwLDAsMCwyMSwyaC02LjJBMiwyLDAsMCwwLDEzLDRWNUg1QTEsMSwwLDEsMCw1LDdIMzAuNzNhMSwxLDAsMCwwLDAtMloiLz4nKSxGLkNsclNoYXBlVGFnPSgwLG0uY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjEwLjUyIiBjeT0iMTAuNTIiIHI9IjEuNDMiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCww'@; put 'LDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk0yMC42MiwzMC41Miw2LDE1LjkxVjZoOS45MmwxNC42LDE0LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEwLjUyIiBjeT0iMTAuNTIi'@; put 'IHI9IjEuNDMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMmwtMy44LTMuOEgyNS4zMWw1LjIyLDUuMjItOS45LDkuOUw2LDE1LjkxVjZoOS45MmwzLjQxLDMuNDEs'@; put 'MS0xLjc4LTMtM0EyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEwLjUyIiBjeT0iMTAuNTIiIHI9IjEuNDMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTku'@; put 'OUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNMjAuNjIsMzAuNTIsNiwxNS45MVY2aDkuOTJsMTQuNiwxNC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwy'@; put 'LDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC40NiwxNS43M0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksMTAuMjJsMS40My0yLjQ3TDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0'@; put 'LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlhMiwyLDAsMCwwLDAtMi44M1pNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0t'@; put 'YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuNDdsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuNDdBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuNDdaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwx'@; put 'NC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2LjMzIiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEYuQ2xyU2hhcGVUYWdzPSgwLG0uY2xySWNvblNWRykoJzxw'@; put 'YXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNy44MSIgY3k9IjExLjE0IiByPSIxLjMzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41OEEx'@; put 'LjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTE3LjI2LDI5'@; put 'LjY5LDMuNjksMTYuMTVWN2g5LjFMMjYuMzcsMjAuNDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNy44MSIgY3k9IjExLjE0IiByPSIxLjMzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMx'@; put 'LjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk0xNy4yNiwyOS42OSwzLjY5LDE2LjE1VjdoOS4xTDI2LjM3LDIwLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1i'@; put 'YWRnZSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNy44MSIgY3k9IjExLjE0IiByPSIxLjMzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDI0LDE1LjRI'@; put 'MjIuMjNBMy42NSwzLjY1LDAsMCwxLDIxLDE1LjE5bDUuMzMsNS4yOS05LjExLDkuMjFMMy42OSwxNi4xNVY3aDkuMWw2LDUuOTRhMy42OCwzLjY4LDAsMCwxLC4xLTIuNjlMMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5'@; put 'LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuODMsNi44LDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMTkuNzksOC42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0zMy4xNiwxOS4xMywyOS40MywxNS40SDI2LjY1bDUuMSw1TDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0t'@; put 'YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMs'@; put 'MS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMu'@; put 'NjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEw'@; put 'LDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4'@; put 'LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcsMTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwxLjczLDEuNzMsMCwwLDEsNi42Nywx'@; put 'MS43MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2Ex'@; put 'LjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMC44Myw2LjgsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwxOS43OSw4LjZaIiBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMjkuNDMsMTUuNEgyNi42NWw1LjEsNUwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjcz'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDI0LDE1LjRIMjIuMjNhMy42NywzLjY3LDAsMCwxLTMuMzYtNS4xNUwxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEy'@; put 'LjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEs'@; put 'MSw4LjQsMTAsMS43MywxLjczLDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNI'@; put 'MzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+JyksRi5DbHJTaGFwZUhpc3Rvcnk9KDAs'@; put 'bS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDkuODNhMSwxLDAsMCwwLTEsMXY4LjcybDUuOSw0QTEsMSwwLDAsMCwyNCwyMS44OGwtNS0zLjM5VjEwLjgzQTEsMSwwLDAsMCwxOCw5LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LjA5LDE2LjA5LDAsMCwwLDQsMTAuMjZWNS4yYTEsMSwwLDAsMC0yLDBWMTRoOC44YTEsMSwwLDAsMCwwLTJINS4zNUExNCwxNCwwLDEsMSw4LjU4LDI4LjM1YTEsMSwwLDAsMC0xLjM1LDEuNDhBMTYsMTYsMCwxLDAsMTgsMloiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksRi5DbHJTaGFwZUNsb2NrPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjkyLDE4LjRWMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTcuOTRBOS45NCw5Ljk0LDAsMCwxLDIzLjQxLDkuNTlsLjg1LTEuMzZhMTEuNTUsMTEuNTUsMCwxLDAtOC41MywyMUwxNiwyNy43QTEwLDEwLDAsMCwxLDgsMTcuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjkyLDEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2bC01LTMuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQ0LDcuNDQsMCwwLDEtMS45MS41OCwxNC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDQsNy40NCwwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw2LjM4YTExLjU2LDExLjU2LDAsMCwwLTIuMjcsMjIuODlMMTYsMjcuN2ExMCwxMCwwLDEsMSw3LjM5LTE4LjFoMGE3LjQ1LDcuNDUsMCwwLDEtLjc4LTIuMjNBMTEuNDUsMTEuNDUsMCww'@; put 'LDAsMTgsNi4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00'@; put 'LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NmwtNS0zLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEt'@; put 'LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43NywxNS4zOWgtMkExNCwxNCwwLDEsMSwyMi4wOSw0LjYxbDEtMS43NkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwzMy43NywxNS4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsOGE5LjgxLDkuODEsMCwwLDEsMiwuMjNsLjg1LTEuNDZhMTEuNTUsMTEuNTUsMCwxLDAtNS4xMywyMi41MkwxNiwyNy43QTEwLDEwLDAsMCwxLDE4LDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44'@; put 'NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTYuMiwyMS4xOGExLDEsMCww'@; put 'LDEtMS4zOS4yOGwtNS45LTRWMTAuNzVhMSwxLDAsMCwxLDIsMFYxOC40bDUsMy4zOUExLDEsMCwwLDEsMjQuMiwyMy4xOFpNMjMuODUsOC4yM2ExMS4zOSwxMS4zOSwwLDEsMC04LjU0LDIwLjgzTDE1LDMwLjYzYTEzLDEzLDAsMSwxLDkuNy0yMy43N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MUE3LjQ4LDcuNDgsMCwwLDEsMjIuNjgsNy42MywxMS4yNCwxMS4yNCwwLDAsMCwxOCw2LjZhMTEuMzksMTEuMzksMCwwLDAtMi42OSwyMi40N0wxNSwzMC42M0ExMywxMywwLDAsMSwxOCw1YTEy'@; put 'LjgxLDEyLjgxLDAsMCwxLDQuNTEuODIsNy40Niw3LjQ2LDAsMCwxLC42OC0yLjk0LDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1pNMjQuMiwyMy4xOGExLDEsMCwwLDEtMS4zOS4yOGwtNS45LTRWMTAuNzVhMSwxLDAsMCwxLDIsMFYxOC40bDUsMy4zOUExLDEsMCwwLDEsMjQuMiwyMy4x'@; put 'OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJh'@; put 'ZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMTUuMzlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2YzAtLjA5LS4wOS0uMTgtLjEzLS4yN1YxOC40bDUsMy4zOWExLDEsMCwwLDEtMS4xMSwxLjY2bC01LjktNFYxMC43NWExLDEsMCwwLDEsMS45MS0uNDFBMy42NSwz'@; put 'LjY1LDAsMCwxLDE5LDkuODlMMjAuNzQsN0ExMS4xOSwxMS4xOSwwLDAsMCwxOCw2LjZhMTEuMzksMTEuMzksMCwwLDAtMi42OSwyMi40N0wxNSwzMC42M0ExMywxMywwLDAsMSwxOCw1YTEyLjgsMTIuOCwwLDAsMSwzLjU3LjUxbDEuNTMtMi42NkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww'@; put 'LDAsMCwzMy43NywxNS4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCww'@; put 'LDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxGLkNsclNoYXBlQWxhcm1DbG9jaz0oMCxtLmNsckljb25TVkcpKCc8'@; put 'cGF0aCBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4yLDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE2'@; put 'LjQsNC4wOUExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFMMjgsMjcuNzhBMTQsMTQsMCwwLDAsMTYuNCw0LjA5Wk0xOS41OCwy'@; put 'OS45QTEyLDEyLDAsMSwxLDI5LjkyLDE5LjU2LDEyLDEyLDAsMCwxLDE5LjU4LDI5LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjkyLDIwLjM0bC02LjA2LTNWOS41YS45LjksMCwwLDAtMS44LDB2OUwy'@; put 'NC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwx'@; put 'Ni4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44Niw5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45LjksMCwxLDAsLjc5LTEu'@; put 'NjJsLTYuMDYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMjcuNzhBMTMuODgsMTMuODgsMCwwLDAsMzEuNzcsMTUuNGgtMmExMi4wNywxMi4wNywwLDEsMS04LjY3LTls'@; put 'MS0xLjhhMTQsMTQsMCwwLDAtMTQsMjMuMjdMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4'@; put 'LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMjcuNzhBMTMuODgsMTMuODgsMCwwLDAsMzEuNzcsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTks'@; put 'MTMuNTZMMTksMTMuNHYzLjc4TDI1LDIwLjFhMSwxLDAsMSwxLS44NywxLjhMMTcsMTguNDRWOS42OWExLDEsMCwwLDEsMiwwVjEwTDE5LDkuODlsMy01LjI4YTE0LDE0LDAsMCwwLTE0LDIzLjI3TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAs'@; put 'MCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu'@; put 'MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjgsMjcuNzhhMTMuODksMTMuODksMCwwLDAsMy4yMS0xNC4zOUE3LjQ2LDcuNDYsMCwwLDEsMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTEtMS4yMUExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjks'@; put 'MTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFabS0yLjUyLTYuMzVhMSwxLDAsMCwxLTEuMzMuNDdMMTcsMTguNDRWOS42OWExLDEsMCwwLDEsMiwwdjcuNUwyNSwyMC4xQTEsMSwwLDAsMSwyNS40OSwyMS40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0t'@; put 'YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTE4Ljg2LDkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MmwtNi4wNi0zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjgsMjcuNzhhMTMuODksMTMuODksMCwwLDAsMy4yMS0xNC4zOSw3LDcsMCwwLDEtMi4xMS4wNUExMiwxMiwwLDEsMSwyMi41Niw2LjksNy41NCw3LjU0LDAsMCwxLDIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjExLTEuMjFBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEs'@; put 'MSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl'@; put 'IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4'@; put 'LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3'@; put 'LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNEExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2'@; put 'YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFMMjgsMjcuNzhBMTQsMTQsMCwwLDAsMTgsNFptNy40NywxNy40M2ExLDEsMCwwLDEtMS4zMy40N0wxNywxOC40NFY5LjY5YTEsMSwwLDAsMSwyLDB2Ny41TDI1LDIwLjFBMSwxLDAsMCwxLDI1'@; put 'LjQ5LDIxLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLEYuQ2xyU2hhcGVDaXJjbGVBcnJvdz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMy'@; put 'LDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4wOCw4LjI2bC03LjYxLDcuNjFhMSwxLDAsMSwwLDEuNDEsMS40MUwxNywxMi4xOHYxNWExLDEsMCwwLDAsMiwwVjEybDUu'@; put 'MjgsNS4yOGExLDEsMCwxLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTgsMTUuNTdhMS40MywxLjQzLDAsMCwxLTIs'@; put 'MEwxOS40LDEzVjI3LjE0YTEuNCwxLjQsMCwwLDEtMi44LDB2LTE0bC00LjQzLDQuNDNhMS40LDEuNCwwLDAsMS0yLTJMMTguMDgsNy43LDI2LDE1LjU5QTEuNCwxLjQsMCwwLDEsMjYsMTcuNTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksRi5DbHJTaGFw'@; put 'ZUNoaWxkQXJyb3c9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjgyLDE1LjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQxTDI3LjIsMjFIOVYzLjc4YTEsMSwwLDEsMC0yLDBWMjFhMiwyLDAsMCwwLDIsMkgyNy4xNWwtMy43NCwzLjc1YTEsMSwwLDAsMCwwLDEuNDEs'@; put 'MSwxLDAsMCwwLC43LjI5LDEsMSwwLDAsMCwuNzEtLjI5TDMxLDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZUNvcHk9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjUsN2gtMTlBMS41LDEuNSwwLDAsMCw5LDguNXYy'@; put 'NEExLjUsMS41LDAsMCwwLDEwLjUsMzRoMTlBMS41LDEuNSwwLDAsMCwzMSwzMi41VjguNUExLjUsMS41LDAsMCwwLDI5LjUsN1pNMjksMzJIMTFWOUgyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMy41'@; put 'QTEuNSwxLjUsMCwwLDAsMjQuNSwySDUuNUExLjUsMS41LDAsMCwwLDQsMy41djI0QTEuNSwxLjUsMCwwLDAsNS41LDI5SDZWNEgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcsMy41NkExLjU2LDEuNTYs'@; put 'MCwwLDAsMjUuNDMsMkg1LjU3QTEuNTYsMS41NiwwLDAsMCw0LDMuNTZWMjguNDRBMS41NiwxLjU2LDAsMCwwLDUuNTcsMzBoLjUyVjQuMDdIMjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSI2IiB3aWR0aD0i'@; put 'MjMiIGhlaWdodD0iMjgiIHJ4PSIxLjUiIHJ5PSIxLjUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxGLkNsclNoYXBlSGVscD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMw'@; put 'QTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4yOSw4LjkyYTcuMzgsNy4zOCwwLDAsMC01LjcyLDIuNTcsMSwxLDAsMCwwLS4zMi43MS45Mi45'@; put 'MiwwLDAsMCwuOTUuOTIsMS4wOCwxLjA4LDAsMCwwLC43MS0uMjksNS43LDUuNywwLDAsMSw0LjMzLTJjMi4zNiwwLDMuODMsMS41MiwzLjgzLDMuNDF2LjA1YzAsMi4yMS0xLjc2LDMuNDQtNC41NCwzLjY1YS44LjgsMCwwLDAtLjc2LjkyczAsMi4zMiwwLDIuNzVhMSwxLDAsMCwwLDEsLjlo'@; put 'LjExYTEsMSwwLDAsMCwuOS0xVjE5LjQ1YzMtLjQyLDUuNDMtMiw1LjQzLTUuMjh2LS4wNUMyNC4xOCwxMS4xMiwyMS44NCw4LjkyLDE4LjI5LDguOTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTcuNzgi'@; put 'IGN5PSIyNi4yIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjE4LDE0LjE3di0uMDVjMC0zLTIuMzQtNS4yLTUuODgtNS4yYTcuMzgsNy4zOCwwLDAsMC01LjcyLDIuNTcsMSwxLDAsMCwwLS4z'@; put 'Mi43MS45Mi45MiwwLDAsMCwuOTUuOTIsMS4wOCwxLjA4LDAsMCwwLC43MS0uMjksNS43LDUuNywwLDAsMSw0LjMzLTJjMi4zNiwwLDMuODMsMS41MiwzLjgzLDMuNDF2LjA1YzAsMi4yMS0xLjc2LDMuNDQtNC41NCwzLjY1YS44LjgsMCwwLDAtLjc2LjkyczAsMi4zMiwwLDIuNzVhMSwxLDAs'@; put 'MCwwLDEsLjloLjExYTEsMSwwLDAsMCwuOS0xVjE5LjQ1QzIxLjc1LDE5LDI0LjE4LDE3LjQ1LDI0LjE4LDE0LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy43OCIgY3k9'@; put 'IjI2LjIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDMsNy40MywwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40'@; put 'NCw3LjQ0LDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQ5LDcuNDksMCwwLDEtOS45My05LjkzLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1ptLTE1LjM0LDE1YTEu'@; put 'NjUsMS42NSwwLDEsMSwxLjY1LTEuNjVBMS42NSwxLjY1LDAsMCwxLDE3Ljc4LDI3Ljg1Wm0xLjM3LTguMDZ2MS43MmExLjM3LDEuMzcsMCwwLDEtMS4zLDEuMzZoLS4xMWExLjM0LDEuMzQsMCwwLDEtMS4zOS0xLjNjMC0uNDQsMC0yLjc2LDAtMi43NmExLjE5LDEuMTksMCwwLDEsMS4xMi0x'@; put 'LjMxYzEuNTctLjEyLDQuMTgtLjcsNC4xOC0zLjI1LDAtMS44My0xLjQxLTMuMDctMy40My0zLjA3YTUuMzEsNS4zMSwwLDAsMC00LDEuOTIsMS4zNiwxLjM2LDAsMCwxLTIuMzUtLjksMS40MywxLjQzLDAsMCwxLC40My0xLDcuNzcsNy43NywwLDAsMSw2LTIuNjljMy43LDAsNi4yOCwyLjMs'@; put 'Ni4yOCw1LjZDMjQuNTgsMTcuMTYsMjIuNjEsMTkuMiwxOS4xNSwxOS43OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0t'@; put 'YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0tLjIyLDI1Ljg1YTEuNjUsMS42NSwwLDEsMSwxLjY1LTEuNjVBMS42NSwxLjY1LDAsMCwx'@; put 'LDE3Ljc4LDI3Ljg1Wm0xLjM3LTguMDZ2MS43MmExLjM3LDEuMzcsMCwwLDEtMS4zLDEuMzZoLS4xMWExLjM0LDEuMzQsMCwwLDEtMS4zOS0xLjNjMC0uNDQsMC0yLjc2LDAtMi43NmExLjE5LDEuMTksMCwwLDEsMS4xMi0xLjMxYzEuNTctLjEyLDQuMTgtLjcsNC4xOC0zLjI1LDAtMS44My0x'@; put 'LjQxLTMuMDctMy40My0zLjA3YTUuMzEsNS4zMSwwLDAsMC00LDEuOTIsMS4zNiwxLjM2LDAsMCwxLTIuMzUtLjksMS40MywxLjQzLDAsMCwxLC40My0xLDcuNzcsNy43NywwLDAsMSw2LTIuNjljMy43LDAsNi4yOCwyLjMsNi4yOCw1LjZDMjQuNTgsMTcuMTYsMjIuNjEsMTkuMiwxOS4xNSwx'@; put 'OS43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxGLkNsclNoYXBlTG9naW49KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDRIMTJhMiwyLDAsMCwwLTIsMkgyOFYzMEgxMlYyMC4ySDEwVjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDIt'@; put 'MlY2QTIsMiwwLDAsMCwyOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuMTIsMTguNDZhMSwxLDAsMSwwLDEuNDEsMS40MWw1Ljc5LTUuNzlMMTYuNTQsOC4yOWExLDEsMCwwLDAtMS40MSwxLjQxTDE4'@; put 'LjUsMTNINGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFIMTguNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDRIMTJhMiwyLDAsMCwwLTIsMnY3aDguNUwxNS4xMiw5LjcxYTEsMSwwLDAsMSwxLjQx'@; put 'LTEuNDFsNS43OSw1Ljc5LTUuNzksNS43OWExLDEsMCwwLDEtMS40MS0xLjQxTDE4LjUsMTVIMTBWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDI4LDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTEwLDEzSDRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVMb2dvdXQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTcsNkgyM3Y5LjhoMlY2YTIsMiwwLDAsMC0y'@; put 'LTJIN0EyLDIsMCwwLDAsNSw2VjMwYTIsMiwwLDAsMCwyLDJIMjNhMiwyLDAsMCwwLDItMkg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4xNiwxNy4yOGExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjEzLDIy'@; put 'SDE1LjYzYTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWgxNC41bC0zLjM4LDMuNDZhMSwxLDAsMSwwLDEuNDEsMS40MUwzNCwyMy4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsNEg3QTIsMiwwLDAs'@; put 'MCw1LDZWMzBhMiwyLDAsMCwwLDIsMkgyM2EyLDIsMCwwLDAsMi0yVjI0SDE1LjYzYTEsMSwwLDAsMS0xLTEsMSwxLDAsMCwxLDEtMUgyNVY2QTIsMiwwLDAsMCwyMyw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4'@; put 'LjE2LDE3LjI4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTMsMjJIMjV2Mmg1LjEzbC0zLjM4LDMuNDZhMSwxLDAsMSwwLDEuNDEsMS40MUwzNCwyMy4wN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxGLkNsclNoYXBlUHJpbnRlcj0oMCxtLmNsckljb25T'@; put 'VkcpKCc8cGF0aCBkPSJNMjksOUgyN1Y1SDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1VjEzYTIsMiwwLDAsMSwyLTJIMjlhMiwyLDAsMCwxLDIsMnY5SDI5LjA4VjI0SDMzVjEzQTQsNCwwLDAsMCwyOSw5Wk0yNSw5SDExVjdIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhhMSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAtMlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAg'@; put 'ICAgICAgPHJlY3QgeD0iMjciIHk9IjEzLjA0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhhMSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAt'@; put 'MlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40IDMxIDIyLjA5IDI5LjA4IDIyLjA5IDI5LjA4IDI0IDMzIDI0IDMzIDE1LjQg'@; put 'MzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEzYTIsMiwwLDAsMSwyLTJIMTguNjRBMy42NSwzLjY1LDAsMCwxLDE5LDkuODlMMTkuNTQsOUgxMVY3aDkuNzFsMS4x'@; put 'My0ySDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwy'@; put 'Mi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgxMVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjci'@; put 'IHk9IjEzLjA0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxMi44OGE3LjQ1LDcuNDUsMCwwLDEtMiwuNTV2OC42NkgyOS4wOFYyNEgzM1Yx'@; put 'M0MzMywxMywzMywxMi45MywzMywxMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTNhMiwyLDAsMCwxLDItMkgyNC40MmE3LjUsNy41LDAsMCwxLTEuMjctMkgxMVY3SDIy'@; put 'LjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjU0LDcuNTQsMCwwLDEsLjA3LTFIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksOUgyN1Y1SDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZW'@; put 'MTNBNCw0LDAsMCwwLDI5LDlaTTI1LDI0djZIMTFWMTlIMjVaTTI1LDlIMTFWN0gyNVptNCw2SDI3VjEzaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwx'@; put 'OS41NCw5SDExVjdoOS43MWwxLjEzLTJIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxNS40Wk0yNSwyNHY2SDExVjE5SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0t'@; put 'YWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDEyLjg4YTcuMyw3LjMsMCwwLDEtNCwuNTVWMTVIMjdWMTNoLjMyYTcuNTIsNy41MiwwLDAsMS00LjE4LTRIMTFWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41NCw3LjU0LDAsMCwxLC4wNy0x'@; put 'SDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZWMTNDMzMsMTMsMzMsMTIuOTMsMzMsMTIuODhaTTI1LDI0djZIMTFWMTlIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i'@; put 'MzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEYuQ2xyU2hhcGVXb3JsZD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTQsMThhMTkuMzgsMTkuMzgsMCwwLDAtLjQzLTRo'@; put 'My42YTEyLjMsMTIuMywwLDAsMC0uNjctMS42SDI1LjY5QTE5LjcyLDE5LjcyLDAsMCwwLDIyLjgsNi41M2ExMi4zLDEyLjMsMCwwLDAtMi41NS0uNzYsMTcuODMsMTcuODMsMCwwLDEsMy44OSw2LjU5SDE4Ljc1VjUuNmMtLjI1LDAtLjUxLDAtLjc3LDBzLS40OSwwLS43MywwdjYuNzdIMTEu'@; put 'ODZhMTcuODMsMTcuODMsMCwwLDEsMy45LTYuNiwxMi4yOCwxMi4yOCwwLDAsMC0yLjU0Ljc1LDE5LjcyLDE5LjcyLDAsMCwwLTIuOTEsNS44NUg2Ljk0QTEyLjMsMTIuMywwLDAsMCw2LjI2LDE0SDkuODlhMTkuMzgsMTkuMzgsMCwwLDAtLjQzLDQsMTkuNjcsMTkuNjcsMCwwLDAsLjUsNC4z'@; put 'N0g2LjQyQTEyLjM0LDEyLjM0LDAsMCwwLDcuMTYsMjRoMy4yM2ExOS4zMiwxOS4zMiwwLDAsMCwyLjY5LDUuMzYsMTIuMjgsMTIuMjgsMCwwLDAsMi42MS43OUExNy45MSwxNy45MSwwLDAsMSwxMiwyNGg1LjI2djYuMzRjLjI0LDAsLjQ5LDAsLjczLDBzLjUxLDAsLjc3LDBWMjRIMjRhMTcu'@; put 'OSwxNy45LDAsMCwxLTMuNyw2LjE1LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjItLjgxQTE5LjMyLDE5LjMyLDAsMCwwLDI1LjYxLDI0aDMuMmExMi4zNCwxMi4zNCwwLDAsMCwuNzQtMS42SDI2QTE5LjY3LDE5LjY3LDAsMCwwLDI2LjU0LDE4Wm0tOS4yOSw0LjM3SDExLjUxYTE3LjY5LDE3LjY5'@; put 'LDAsMCwxLS4wOS04LjRoNS44M1ptNy4yNCwwSDE4Ljc1VjE0aDUuODNBMTguMjEsMTguMjEsMCwwLDEsMjUsMTgsMTguMTIsMTguMTIsMCwwLDEsMjQuNDksMjIuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFh'@; put 'Ny40NCw3LjQ0LDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQzLDcuNDMsMCwwLDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuMjUsNS43N2ExNy44MywxNy44MywwLDAsMSwzLjg5LDYuNTlIMTguNzVWNS42Yy0uMjUsMC0uNTEsMC0uNzcsMHMtLjQ5LDAtLjczLDB2Ni43N0gxMS44NmExNy44MywxNy44MywwLDAsMSwzLjktNi42LDEyLjI4LDEyLjI4LDAsMCwwLTIuNTQu'@; put 'NzUsMTkuNzIsMTkuNzIsMCwwLDAtMi45MSw1Ljg1SDYuOTRBMTIuMywxMi4zLDAsMCwwLDYuMjYsMTRIOS44OWExOS4zOCwxOS4zOCwwLDAsMC0uNDMsNCwxOS42NywxOS42NywwLDAsMCwuNSw0LjM3SDYuNDJBMTIuMzQsMTIuMzQsMCwwLDAsNy4xNiwyNGgzLjIzYTE5LjMyLDE5LjMyLDAs'@; put 'MCwwLDIuNjksNS4zNiwxMi4yOCwxMi4yOCwwLDAsMCwyLjYxLjc5QTE3LjkxLDE3LjkxLDAsMCwxLDEyLDI0aDUuMjZ2Ni4zNGMuMjQsMCwuNDksMCwuNzMsMHMuNTEsMCwuNzcsMFYyNEgyNGExNy45LDE3LjksMCwwLDEtMy43LDYuMTUsMTIuMjgsMTIuMjgsMCwwLDAsMi42Mi0uODFBMTku'@; put 'MzIsMTkuMzIsMCwwLDAsMjUuNjEsMjRoMy4yYTEyLjM0LDEyLjM0LDAsMCwwLC43NC0xLjZIMjZhMTkuNjcsMTkuNjcsMCwwLDAsLjUtNC4zNywxOS4zOCwxOS4zOCwwLDAsMC0uNDMtNGgzLjZjLS4wNi0uMTctLjEyLS4zMy0uMTktLjQ5YTcuNDUsNy40NSwwLDAsMS0zLjQ3LTEuMTFoLS4z'@; put 'NmMwLS4xMS0uMDgtLjIxLS4xMS0uMzJhNy40OCw3LjQ4LDAsMCwxLTMuMDYtNS42MkExMi40MSwxMi40MSwwLDAsMCwyMC4yNSw1Ljc3Wm0tMywxNi41OUgxMS41MWExNy42OSwxNy42OSwwLDAsMS0uMDktOC40aDUuODNaTTI1LDE4YTE4LjEyLDE4LjEyLDAsMCwxLS41NSw0LjM3SDE4Ljc1'@; put 'VjE0aDUuODNBMTguMjEsMTguMjEsMCwwLDEsMjUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMDUsMThhMjAuNDYsMjAuNDYsMCwwLDAsLjYyLDQuOTNoNi40OFYxMy40NUgxMC41OEEyMC41NSwyMC41NSwwLDAsMCwxMC4wNSwxOFoiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44NSwxMy40NXY5LjQ4aDYuNDhBMjAuNDYsMjAuNDYsMCwwLDAsMjYsMThhMjAuNTUsMjAuNTUsMCwwLDAtLjUyLTQuNTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0zMC4yMiwyNC43MUgyNi42YTIxLjgsMjEuOCwwLDAsMS0zLDYsMTMuODYsMTMuODYsMCwwLDEtMywuOTIsMjAuMjEsMjAuMjEsMCwwLDAsNC4xOC02Ljk0SDE4Ljg2djcuMTVj'@; put 'LS4yOSwwLS41NywwLS44Niwwcy0uNTUsMC0uODMsMFYyNC43MUgxMS4yMmEyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LDYuOTUsMTMuODYsMTMuODYsMCwwLDEtMi45NC0uOSwyMS44LDIxLjgsMCwwLDEtMy02LjA1SDUuNzhhMTMuOTQsMTMuOTQsMCwwLDEtLjgzLTEuODFoNEEyMi4yLDIyLjIs'@; put 'MCwwLDEsOC4zNywxOGEyMS44OCwyMS44OCwwLDAsMSwuNDgtNC41NUg0Ljc2YTEzLjg4LDEzLjg4LDAsMCwxLC43Ni0xLjgxSDkuMzNBMjIuMjYsMjIuMjYsMCwwLDEsMTIuNjEsNWExMy44NiwxMy44NiwwLDAsMSwyLjg3LS44NCwyMC4xMywyMC4xMywwLDAsMC00LjQsNy40NWg2LjA5VjRj'@; put 'LjI4LDAsLjU1LDAsLjgzLDBzLjU4LDAsLjg2LDB2Ny42NGg2LjA5YTIwLjEzLDIwLjEzLDAsMCwwLTQuMzktNy40NEExMy44OSwxMy44OSwwLDAsMSwyMy40Myw1YTIyLjI2LDIyLjI2LDAsMCwxLDMuMjcsNi41OWgzLjc3YTEzLjg5LDEzLjg5LDAsMCwxLC43NiwxLjgxSDI3LjE3QTIxLjg4'@; put 'LDIxLjg4LDAsMCwxLDI3LjY2LDE4YTIyLjIsMjIuMiwwLDAsMS0uNTcsNC45M2g0QTEzLjk0LDEzLjk0LDAsMCwxLDMwLjIyLDI0LjcxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjA1LDE4YTIwLjQ2LDIwLjQ2'@; put 'LDAsMCwwLC42Miw0LjkzaDYuNDhWMTMuNDVIMTAuNThBMjAuNTUsMjAuNTUsMCwwLDAsMTAuMDUsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg1LDIyLjk0aDYuNDhBMjAuNDYs'@; put 'MjAuNDYsMCwwLDAsMjYsMThhMjAuNTUsMjAuNTUsMCwwLDAtLjUyLTQuNTVIMTguODVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjku'@; put 'NTh2MEgzMWE2Ljc3LDYuNzcsMCwwLDEtMi4wNywwaC0xLjhBMjEuODgsMjEuODgsMCwwLDEsMjcuNjYsMThhMjIuMiwyMi4yLDAsMCwxLS41Nyw0LjkzaDRhMTMuOTQsMTMuOTQsMCwwLDEtLjgzLDEuODFIMjYuNmEyMS44LDIxLjgsMCwwLDEtMyw2LDEzLjg2LDEzLjg2LDAsMCwxLTMsLjky'@; put 'LDIwLjIxLDIwLjIxLDAsMCwwLDQuMTgtNi45NEgxOC44NnY3LjE1Yy0uMjksMC0uNTcsMC0uODYsMHMtLjU1LDAtLjgzLDBWMjQuNzFIMTEuMjJhMjAuMjEsMjAuMjEsMCwwLDAsNC4xOCw2Ljk1LDEzLjg2LDEzLjg2LDAsMCwxLTIuOTQtLjksMjEuOCwyMS44LDAsMCwxLTMtNi4wNUg1Ljc4'@; put 'YTEzLjk0LDEzLjk0LDAsMCwxLS44My0xLjgxaDRBMjIuMiwyMi4yLDAsMCwxLDguMzcsMThhMjEuODgsMjEuODgsMCwwLDEsLjQ4LTQuNTVINC43NmExMy44OCwxMy44OCwwLDAsMSwuNzYtMS44MUg5LjMzQTIyLjI2LDIyLjI2LDAsMCwxLDEyLjYxLDVhMTMuODYsMTMuODYsMCwwLDEsMi44'@; put 'Ny0uODQsMjAuMTMsMjAuMTMsMCwwLDAtNC40LDcuNDVoNi4wOVY0Yy4yOCwwLC41NSwwLC44Mywwcy41OCwwLC44NiwwdjcuNjRoNi4wOWwwLS4xM2E3LjQ3LDcuNDcsMCwwLDEtMi4zNi00Ljc2LDIwLjM3LDIwLjM3LDAsMCwwLTItMi41NSwxNC4yMywxNC4yMywwLDAsMSwyLjA2LjU2LDcu'@; put 'NDQsNy40NCwwLDAsMSwuNTctMS44NiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEYuQ2xyU2hhcGVTbGlkZXI9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEyLjM3QTQsNCwwLDAsMCw5LDguNDhWNUExLDEsMCwxLDAsNyw1VjguNDhhNCw0LDAsMCwwLDAsNy43'@; put 'OFYzMWExLDEsMCwxLDAsMiwwVjE2LjI2QTQsNCwwLDAsMCwxMiwxMi4zN1ptLTQsMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSw4LDE0LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE1LjgzYTQsNCww'@; put 'LDAsMC0zLTMuODlWNWExLDEsMCwxLDAtMiwwdjYuOTRhNCw0LDAsMCwwLDAsNy43OFYzMWExLDEsMCwxLDAsMiwwVjE5LjcyQTQsNCwwLDAsMCwzMiwxNS44M1ptLTQsMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyOCwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMjQuNWE0LDQsMCwwLDAtMy0zLjg5VjVhMSwxLDAsMSwwLTIsMFYyMC42MWE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSwwLDEsMCwyLDBWMjguMzlBNCw0LDAsMCwwLDIyLDI0LjVabS00LDJhMiwyLDAsMSwxLDItMkEyLDIs'@; put 'MCwwLDEsMTgsMjYuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTksOS4yOVY1QTEsMSwwLDEsMCw3LDVWOS4zYTMuMjIsMy4yMiwwLDAsMCwwLDYuMTFWMzFhMSwxLDAsMSwwLDIsMFYxNS40M0EzLjIyLDMu'@; put 'MjIsMCwwLDAsOSw5LjI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDIxLjQ1VjVhMSwxLDAsMSwwLTIsMFYyMS40N2EzLjIyLDMuMjIsMCwwLDAsMCw2LjExVjMxYTEsMSwwLDEsMCwyLDBWMjcuNmEzLjIyLDMu'@; put 'MjIsMCwwLDAsMC02LjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDEyLjc1VjVhMSwxLDAsMSwwLTIsMHY3Ljc2YTMuMjIsMy4yMiwwLDAsMCwwLDYuMTFWMzFhMSwxLDAsMSwwLDIsMFYxOC44OWEzLjIyLDMu'@; put 'MjIsMCwwLDAsMC02LjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLEYuQ2xyU2hhcGVDbGlwYm9hcmQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjI5LDVIMjdWN2gyVjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMx'@; put 'QTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjYuNjlBMS43LDEuNywwLDAsMCwyOS4yOSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNy4zM0EyLjM0LDIu'@; put 'MzQsMCwwLDAsMjMuNjcsNUgyMS44N2E0LDQsMCwwLDAtNy43NSwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExSDI2Wk0yNCw5SDEyVjcuMzNBLjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEsNCwwVjdoMy42N2EuMzMuMzMsMCwwLDEsLjMzLjMzWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEx'@; put 'IiB5PSIxOCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIyIiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNCIgd2lkdGg9IjE0IiBoZWlnaHQ9'@; put 'IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxOCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIy'@; put 'NiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xMyw5SDEyVjcuMzNBLjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEsNCww'@; put 'VjdoMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uN2E0LDQsMCwwLDAtNy43NSwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExSDI0LjQyQTcuNSw3LjUsMCwwLDEsMjMuMTMsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YzMkg3VjdIOVY1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNyww'@; put 'LDAsMCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4yOSw1SDIyLjE3YTQuNDUsNC40NSwwLDAsMC00LjExLTNBNC40Niw0LjQ2LDAsMCwwLDE0LDVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5'@; put 'VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjYuNjlBMS43LDEuNywwLDAsMCwyOS4yOSw1Wm0tMTgsM2ExLDEsMCwwLDEsMS0xaDMuNDRWNi4zMWEyLjMxLDIuMzEsMCwxLDEsNC42MywwVjdoMy40NGExLDEsMCwwLDEsMSwxdjJIMTEu'@; put 'MzFaTTI1LDI4SDExVjI2SDI1Wm0wLTRIMTFWMjJIMjVabTAtNEgxMVYxOEgyNVptMC00SDExVjE0SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDksNy40OSwwLDAsMSwyMy42NiwxMEgxMS4z'@; put 'MVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMxYTIuMzEsMi4zMSwwLDEsMSw0LjYzLDBWN2gyLjE5YTcuNTQsNy41NCwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFoLS40YTQuNDUsNC40NSwwLDAsMC00LjExLTNBNC40Niw0LjQ2LDAsMCwwLDE0LDVIN0ExLjc1LDEuNzUsMCww'@; put 'LDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjEzLjQzQTcuNTIsNy41MiwwLDAsMSwzMCwxMy41Wk0yNSwyOEgxMVYyNkgyNVptMC00SDExVjIySDI1Wm0wLTRIMTFWMThIMjVabTAtNEgxMVYxNEgyNVoiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+Jyks'@; put 'Ri5DbHJTaGFwZUZpcmV3YWxsPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCw4SDMydjUuMDhIMjMuOHYtNEgyMnY0SDE0di00SDEydjRINFptMCw3SDMy'@; put 'djYuMDhIMjguOTJWMTYuMjdIMjd2NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMnY1LjY4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0LjgxSDRWMTVIMjAuNThhMy41OCwzLjU4LDAsMCwxLTEuNzYtMS45MkgxNHYtNEgxMnY0SDRWOEgyMC4xNGwxLjE1LTJINEEy'@; put 'LDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi40NS0uNDJIMjMuOFYxMC4yMmE3LjUsNy41LDAsMCwxLS42My0xLjE0SDIydjRIMTR2LTRIMTJ2NEg0VjhI'@; put 'MjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTQsMTVIMzJ2Ni4wOEgyOC45MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45'@; put 'VjE2LjI3SDd2NC44MUg0Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi'@; put 'IHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwy'@; put 'LDAsMCwwLDMyLDZaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYxNmgydjRoOFYxNmgydjRoM1ptMC04SDRWMTJoOFY4aDJ2NGg4VjhoMnY0aDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDRWMTJoOFY4aDJ2NGg0LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5TDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFpNMTQsMjhI'@; put 'MTJWMjRoMlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDEx'@; put 'QTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0'@; put 'IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjEyaDEuNTFBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMTRI'@; put 'NFYxMmg4VjhoMnY0aDhWOGguNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWk0xNCwyOEgxMlYyNGgyWm0xMCwwSDIyVjI0aDJabTgtNkg0VjIwSDdW'@; put 'MTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEYuQ2xyU2hhcGVMaXN0PSgwLG0uY2xySWNvblNWRykoJzxyZWN0IHg9IjE1IiB5PSI4IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg'@; put 'ICAgIDxyZWN0IHg9IjE1IiB5PSIxMiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTYiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjIwIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNCIgd2lkdGg9'@; put 'IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAg'@; put 'ICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjQiIHdp'@; put 'ZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlptMCwz'@; put 'MEg4VjRIMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTIiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh'@; put 'ZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjIwIiB3aWR0aD0i'@; put 'OSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjQiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx'@; put 'MSIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIC8+XG4gICAg'@; put 'ICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSw4djJoOC42NmE3LjQ1LDcuNDUsMCwwLDEtLjg5'@; put 'LTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWNEgyMi43OGE3LjQ1LDcuNDUsMCwwLDEsLjg4LTJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwy'@; put 'LDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0x'@; put 'MywyNkgxMVYyNGgyWm0wLTRIMTFWMjBoMlptMC00SDExVjE2aDJabTAtNEgxMVYxMmgyWm0wLTRIMTFWOGgyWk0yNSwyNkgxNVYyNEgyNVptMC00SDE1VjIwSDI1Wm0wLTRIMTVWMTZIMjVabTAtNEgxNVYxMkgyNVptMC00SDE1VjhIMjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjY2LDEwSDE1VjhoNy43OGE3LjQyLDcuNDIsMCwwLDEsLjg5LTZIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyMy42NiwxMFpNMTMsMjZI'@; put 'MTFWMjRoMlptMC00SDExVjIwaDJabTAtNEgxMVYxNmgyWm0wLTRIMTFWMTJoMlptMC00SDExVjhoMlpNMjUsMjZIMTVWMjRIMjVabTAtNEgxNVYyMEgyNVptMC00SDE1VjE2SDI1Wm0wLTRIMTVWMTJIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt'@; put 'LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEYuQ2xyU2hhcGVSZWRvPSgwLG0uY2xySWNvblNWRykoJzxwYXRo'@; put 'IGQ9Ik0yNCw0LjIyYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS41Niw1LjQ5aC0xM0ExMSwxMSwwLDAsMCwxMC4wNywzMiwxLDEsMCwwLDAsMTEsMzAuMThhOSw5LDAsMCwxLTUtOCw5LjA4LDkuMDgsMCwwLDEsOS4xMy05aDEzbC01LjU0LDUuNDhBMSwxLDAsMCwwLDI0LDIwbDgtNy45MVoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVVbmRvPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC44NywxMS4xNGgtMTNsNS41Ni01LjQ5QTEsMSwwLDAsMCwxMiw0LjIyTDQsMTIuMTMsMTIsMjBhMSwxLDAsMCwwLDEuNDEtMS40'@; put 'Mkw3Ljg2LDEzLjE0aDEzYTkuMDgsOS4wOCwwLDAsMSw5LjEzLDksOSw5LDAsMCwxLTUsOEExLDEsMCwwLDAsMjUuOTMsMzJhMTEsMTEsMCwwLDAtNS4wNi0yMC44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVTY3JvbGw9KDAs'@; put 'bS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDExLjEyVjYuNThhNC41LDQuNSwwLDAsMC00LjUtNC41aC0xNkE0LjUsNC41LDAsMCwwLDksNi41OHYyM2EyLjUsMi41LDAsMSwxLTUsMFYyNkg3LjE5VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAs'@; put 'NC41LTQuNVYxMy4xM2gtMlYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRabS00LjUtN0EyLjUsMi41LDAsMCwxLDMyLDYuNThWOS4xMkgxOFY2LjU4YTQuNDgsNC40OCwwLDAsMC0uNzYt'@; put 'Mi41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMDgsMTUuNFYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSww'@; put 'djQuNTRoMi42MUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OWwuNDQtLjc2SDE4VjYuNThhNC40OCw0LjQ4LDAsMCwwLS43Ni0yLjVIMjIuNGwxLjE1LTJIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OHYyM2EyLjUsMi41LDAsMSwxLTUsMFYyNkg3LjE5VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAs'@; put 'Ni41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs'@; put 'MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtMS45Mi0uMjZ2MTYuM2EyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRoOC41NGE3LjUsNy41LDAsMCwxLTEuMzUtMkgxOFY2LjU4'@; put 'YTQuNDgsNC40OCwwLDAsMC0uNzYtMi41aDUuNTJhNy40NCw3LjQ0LDAsMCwxLC44Ni0ySDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZINy4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjV2'@; put 'LTE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk'@; put 'Z2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDExLjEyVjYuNThhNC41LDQuNSwwLDAsMC00LjUtNC41aC0xNkE0LjUsNC41LDAsMCwwLDksNi41OFYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTMu'@; put 'MTNoLTJWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4wOCwx'@; put 'NS40VjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGgyLjYxQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5bDQuNTEtNy44SDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41'@; put 'LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4'@; put 'LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtMS45Mi0uMjZ2MTYuM2EyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRoOC41NGE3LjQ2LDcuNDYsMCwwLDEtLjkyLTlIMTMu'@; put 'NUE0LjUsNC41LDAsMCwwLDksNi41OFYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjV2LTE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl'@; put 'IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxGLkNsclNoYXBlRmlsZVNldHRpbmdzPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEu'@; put 'MTYsMCwwLDAtLjcxLTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjktLjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGEx'@; put 'LjE1LDEuMTUsMCwwLDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEuODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0'@; put 'LDcuNjQsMCwwLDAtLjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMsMS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiww'@; put 'LDAsMCwxLjM3LjIxbDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQy'@; put 'LTEuNGExLjE2LDEuMTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQuMjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIx'@; put 'LDYuMjEsMCwwLDEtMS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0yLjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMu'@; put 'MDhsLjEzLS40MWE1Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0xLjg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTIt'@; put 'MSwxLDEtMSwxLjg5LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQu'@; put 'MDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjQ5LDMxSDZW'@; put 'NUgyNnY3Ljg5YTMuMiwzLjIsMCwwLDEsMiwxLjcyVjVhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNi4yM2wtMS4xLTEuMDhBMy4xMSwzLjExLDAsMCwxLDE0LjQ5LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQuMDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0uNzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCww'@; put 'LS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSwwLDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCww'@; put 'LS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAsMCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAsMC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44Mywx'@; put 'LjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIxLDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcuMjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmEx'@; put 'LjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEuMTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYsMS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCww'@; put 'LDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAsMS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEt'@; put 'MS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwxOCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQxYTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4y'@; put 'Myw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEsMCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEuODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjEuODdMMjMsM0g2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNi4yM2wtMS4xLTEuMDhBMy4xMSwzLjExLDAsMCwxLDE0LjQ5'@; put 'LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4'@; put 'LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2'@; put 'LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzdsLTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43NmE3Ljg0LDcuODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4x'@; put 'NSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0xLjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGExLjE2LDEuMTYsMCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3'@; put 'LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4xNiwwLDAsMCwuMjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCww'@; put 'LDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiwwLDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4yOWwxLjUuNzlhMS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0x'@; put 'LjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4xMVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwxLjE5bC0uMjEuMzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2'@; put 'LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwtLjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwxLDE4LjE3LDI2TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4'@; put 'bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCwwLDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEyQTYuMjEsNi4yMSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEs'@; put 'MSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAs'@; put 'NC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwyNC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTE0LjQ5LDMxSDZWNUgyMy4wOGE2Ljk0LDYuOTQsMCwwLDEsLjYtMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNi4yM2wtMS4xLTEuMDhBMy4xMSwzLjExLDAsMCwxLDE0LjQ5LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjMzVjEyLjcxYTcsNywwLDAsMS0yLTF2MS44OEEzLjIsMy4yLDAsMCwxLDI4LDE1LjMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0t'@; put 'YmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjU1LDMxSDZWNUgy'@; put 'NnY4Ljc4YTIuMzcsMi4zNywwLDAsMSwyLDEuNTdWNWEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwyMy40N2wtMi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCww'@; put 'LDAtLjM2LS4yNWgtMmEuMzcuMzcsMCwwLDAtLjM1LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0u'@; put 'MjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJh'@; put 'LjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTJhNyw3LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVW'@; put 'MjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0LDIzLjQ3Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMu'@; put 'NTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxQTcsNywwLDAsMCwyNi42OSwxOGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3'@; put 'LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3LDAsMCwwLS42MSwxLjQ0bC0yLC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3LDAsMCww'@; put 'LC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2'@; put 'bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCwwLC41OC0xLjM5bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNywwLDAsMCwz'@; put 'My41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjU1'@; put 'LDMxSDZWNUgyMS44N0wyMywzSDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt'@; put 'cGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMzMuNTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxQTcsNywwLDAsMCwyNi42OSwxOGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJh'@; put 'LjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3LDAsMCwwLS42MSwxLjQ0bC0yLC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3'@; put 'LDAsMCwwLC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwu'@; put 'MzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCwwLC41OC0xLjM5bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNyww'@; put 'LDAsMCwzMy41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x'@; put 'NS41NSwzMUg2VjVIMjMuMDhhNi45NCw2Ljk0LDAsMCwxLC42LTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIg'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS4zNlYxMi43MWE3LDcsMCwwLDEtMi0xdjJBMi4zNywyLjM3LDAsMCwxLDI4LDE1LjM2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIC8+JyksRi5DbHJTaGFwZVR3b1dheUFycm93'@; put 'cz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMuNDMsMTYuODNBMSwxLDAsMCwwLDIyLDE4LjI0TDI1LjcyLDIySDcuODNhMSwxLDAsMCwwLDAsMkgyNS43MkwyMiwyNy43YTEsMSwwLDEsMCwxLjQyLDEuNDFMMjkuNTMsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy4yNCwxOC40NWExLDEsMCwwLDAsLjcxLTEuNzFMMTAuMjQsMTNIMjguMTJhMSwxLDAsMCwwLDAtMkgxMC4yNGwzLjcxLTMuNzNhMSwxLDAsMCwwLTEuNDItMS40MUw2LjQyLDEybDYuMTEsNi4xNEExLDEsMCwwLDAsMTMu'@; put 'MjQsMTguNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlU3dpdGNoPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik01LjcxLDE0SDIwLjkyVjEySDUuNzFMOS40Miw4LjI3QTEsMSwwLDEsMCw4LDYuODZMMS44OSwxMyw4LDE5'@; put 'LjE0YTEsMSwwLDEsMCwxLjQyLTEuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEyIiB3aWR0aD0iMyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuOTIsMTcuODZhMSwxLDAsMCwwLTEuNDIsMS40MUwzMC4y'@; put 'MSwyM0gxNXYySDMwLjIxTDI2LjUsMjguNzRhMSwxLDAsMSwwLDEuNDIsMS40TDM0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMCIgeT0iMjMiIHdpZHRoPSIzIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEYuQ2xyU2hhcGVUb29scz0oMCxtLmNsckljb25T'@; put 'VkcpKCc8cGF0aCBkPSJNMjAsMTRIMTZhMSwxLDAsMCwwLTEsMXY2YTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE1QTEsMSwwLDAsMCwyMCwxNFptLS40LDYuNkgxNi40VjE1LjRoMy4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMzMuNzEsMTIuMzgsMjkuNjIsOC4yOUExLDEsMCwwLDAsMjguOTIsOGgtNVY2LjA1QTIsMiwwLDAsMCwyMiw0SDEzLjg0QTEuOTIsMS45MiwwLDAsMCwxMiw2LjA1VjhINy4wOGExLDEsMCwwLDAtLjcxLjI5TDIuMjksMTIuMzhhMSwxLDAsMCwwLS4yOS43MVYy'@; put 'OGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTMuMDhBMSwxLDAsMCwwLDMzLjcxLDEyLjM4Wk0xNCw2aDhWOEgxNFpNMzIsMTdIMjJ2MS45M0gzMlYyOEg0VjE4LjkzSDE0VjE3SDRWMTMuNUw3LjUsMTBoMjFMMzIsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYuNCIgeT0iMTUuNCIgd2lkdGg9IjMuMiIgaGVpZ2h0PSI1LjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsMjFhMSwxLDAsMCwxLTEsMUgx'@; put 'NmExLDEsMCwwLDEtMS0xVjE5SDJ2OWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTlIMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjcxLDEyLjM4LDI5LjYyLDguMjlBMSwxLDAsMCwwLDI4Ljky'@; put 'LDhoLTVWNi4wNUEyLDIsMCwwLDAsMjIsNEgxMy44NEExLjkyLDEuOTIsMCwwLDAsMTIsNi4wNVY4SDcuMDhhMSwxLDAsMCwwLS43MS4yOUwyLjI5LDEyLjM4YTEsMSwwLDAsMC0uMjkuNzFWMTdIMTVWMTVhMSwxLDAsMCwxLDEtMWg0YTEsMSwwLDAsMSwxLDF2MkgzNFYxMy4wOEExLDEsMCww'@; put 'LDAsMzMuNzEsMTIuMzhaTTIyLDhIMTRWNmg4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlV2luZG93Q2xvc2U9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LjQxLDE4bDcuMjktNy4yOWExLDEsMCwwLDAtMS40MS0xLjQxTDE4'@; put 'LDE2LjU5LDEwLjcxLDkuMjlhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxOCw5LjI5LDI1LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsNy4yOSw3LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4n'@; put 'KSxGLkNsclNoYXBlV2luZG93TWF4PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy44OSw5aC0yMGEyLDIsMCwwLDAtMiwyVjI1YTIsMiwwLDAsMCwyLDJoMjBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMjcuODksOVptLTIwLDE2VjExaDIwVjI1WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZVdpbmRvd01pbj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsMjdIOWExLDEsMCwwLDEsMC0ySDI3YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'Lz4nKSxGLkNsclNoYXBlV2luZG93UmVzdG9yZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsOEgxNGEyLDIsMCwwLDAtMiwydjJoMlYxMEgyOFYyMEgyNnYyaDJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMjgsOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDE0SDhhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTZBMiwyLDAsMCwwLDIyLDE0Wk04LDI2VjE2SDIyVjI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTIiIC8+JyksRi5DbHJTaGFwZVpvb21Jbj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTYsNEExMiwxMiwwLDEsMCwyOCwxNiwxMiwxMiwwLDAsMCwxNiw0Wm0wLDIxLjkxQTEwLDEwLDAsMSwxLDI2LDE2LDEwLDEwLDAsMCwxLDE2LDI1LjkxWiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzEsMjkuNjlsLTUuMTctNS4xN0ExMy42OCwxMy42OCwwLDAsMSwyNS4xNSwyNmw1LjE1LDUuMTVhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDE1SDE3VjExYTEsMSwwLDAsMC0yLDB2NEgxMWExLDEsMCwwLDAsMCwyaDR2NGExLDEsMCwwLDAsMiwwVjE3aDRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAv'@; put 'PicpLEYuQ2xyU2hhcGVab29tT3V0PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNiw0QTEyLDEyLDAsMSwwLDI4LDE2LDEyLDEyLDAsMCwwLDE2LDRabTAsMjEuOTFBMTAsMTAsMCwxLDEsMjYsMTYsMTAsMTAsMCwwLDEsMTYsMjUuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS43MSwyOS42OWwtNS4xNy01LjE3QTEzLjY4LDEzLjY4LDAsMCwxLDI1LjE1LDI2bDUuMTUsNS4xNWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMTVIMTJhMSwxLDAsMCwwLDAsMmg4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlS2V5PSgwLG0uY2xySWNvblNWRykoJzxyZWN0IHg9IjYuMzMi'@; put 'IHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjMuMzUsMTYuOGwuNjMtLjYzQTUsNSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0uNEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcu'@; put 'NDVaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0zLTNMMTQsMjMuMzFhMywzLDAsMCwxLTQuMjQsMEw0LjUsMThhMywzLDAsMCwxLDAtNC4yNGw4LjU2LTguNTZhMywzLDAsMCwxLDQuMjQsMGw1LjI2LDUuMjZhMywzLDAsMCwxLDAsNC4yNGwtMiwyTDMyLDI4'@; put 'LjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykg'@; put 'cm90YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M2E1LDUsMCwwLDAsLjYzLS43N0gyMi4yM2wtLjI5LDBMMjAuNTIsMTYuOCwzMiwy'@; put 'OC4yOFYzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBMMjAuMSw4LjA2bDEtMS43OUwxOC43MSwzLjg0YTUsNSwwLDAsMC03'@; put 'LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVy'@; put 'dGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEiIHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMjEg'@; put 'MTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzUsMTYuOGwuNjMtLjYzQTUsNSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4w'@; put 'NywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0uNEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0zLTNMMTQsMjMuMzFhMywz'@; put 'LDAsMCwxLTQuMjQsMEw0LjUsMThhMywzLDAsMCwxLDAtNC4yNGw4LjU2LTguNTZhMywzLDAsMCwxLDQuMjQsMGw1LjI2LDUuMjZhMywzLDAsMCwxLDAsNC4yNGwtMiwyTDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk'@; put 'IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM4LDE2Ljc3bC42LS42QTUs'@; put 'NSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUu'@; put 'NjRhMSwxLDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEsMSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjgu'@; put 'MjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM4LDE2Ljc3bC42LS42YTUsNSwwLDAsMCwuNjMtLjc3SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDIuMDktMy42MkwxOC43MSwzLjg0YTUsNSwwLDAs'@; put 'MC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEsMCwwLDEtMS40MSwwbC0uNC0uNGExLDEsMCww'@; put 'LDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu'@; put 'MTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNkE1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwz'@; put 'LjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFM'@; put 'MTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxGLkNsclNoYXBlTGlicmFyeT0oMCxtLmNsckljb25T'@; put 'VkcpKCc8cGF0aCBkPSJNMzMuNDgsMjkuNjMsMjYuNzQsMTEuODJhMiwyLDAsMCwwLTIuNTgtMS4xNkwyMSwxMS44NVY4LjkyQTEuOTIsMS45MiwwLDAsMCwxOS4wOCw3SDE0VjQuOTJBMS45MiwxLjkyLDAsMCwwLDEyLjA4LDNINUEyLDIsMCwwLDAsMyw1VjMyYTEsMSwwLDAsMCwxLDFIMjBh'@; put 'MSwxLDAsMCwwLDEtMVYxOS4yN2w1LDEzLjIxYTEsMSwwLDAsMCwxLjI5LjU4bDUuNjEtMi4xNGExLDEsMCwwLDAsLjU4LTEuMjlaTTEyLDguODNWMzFINVY1aDdaTTE5LDMxSDE0VjloNVptOC41MS0uMjVMMjEuMTMsMTMuOTJsMy43NC0xLjQyLDYuMzksMTYuODNaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi43NSwzSDUuMjVBMS4xNSwxLjE1LDAsMCwwLDQsNFYzM0gxNFY0QTEuMTUsMS4xNSwwLDAsMCwxMi43NSwzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43NywzMS4wOWwtNi45NC0xOC4zYTEsMSwwLDAsMC0xLjI5LS41OEwyMiwxMy41OVY5YTEsMSwwLDAsMC0xLTFIMTZWMzNoNlYxNC42OUwyOC45MywzM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksRi5DbHJT'@; put 'aGFwZUJvbHQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUyLDM0aC0zYTEsMSwwLDAsMS0uODgtMS40NEwxMi41NSwyMUg2YTEsMSwwLDAsMS0uODUtMS41NGwxMC42OC0xN0ExLDEsMCwwLDEsMTYuNjQsMkgzMC4wN2ExLDEsMCwwLDEsLjc3LDEuNjlMMjEuNzgsMTRoNS4zOGEx'@; put 'LDEsMCwwLDEsLjczLDEuNjZsLTE2LjYzLDE4QTEsMSwwLDAsMSwxMC41MiwzNFpNOS4xOCwzMmguOTFMMjQuODYsMTZIMTkuNTlhMSwxLDAsMCwxLS43Ny0xLjY5TDI3Ljg4LDRIMTcuMTlMNy43NywxOUgxNC4yYTEsMSwwLDAsMSwuODgsMS40NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjgsMi4yOUEuNDkuNDksMCwwLDAsMzAuMzUsMkgxNi40MmEuNS41LDAsMCwwLS40Mi4yM2wtMTAuNzEsMTdBLjQ5LjQ5LDAsMCwwLDUuNywyMGg3LjY3TDYuNiwzMy4yNWEuNTIuNTIsMCwwLDAsLjQ2Ljc1'@; put 'aDNhLjUuNSwwLDAsMCwuMzctLjE2TDI4LDE0Ljg1YS41LjUsMCwwLDAtLjM3LS44NUgyMC44OUwzMC43MiwyLjgyQS40OS40OSwwLDAsMCwzMC44LDIuMjlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVXcmVuY2g9KDAsbS5jbHJJY29u'@; put 'U1ZHKSgnPHBhdGggZD0iTTMzLjE4LDI2LjExLDIwLjM1LDEzLjI4QTkuMjgsOS4yOCwwLDAsMCw3LjU0LDIuNzlsLTEuMzQuNTksNS4zOCw1LjM4TDguNzYsMTEuNTksMy4zOCw2LjIxLDIuNzksNy41NEE5LjI3LDkuMjcsMCwwLDAsMTMuMjgsMjAuMzVMMjYuMTEsMzMuMThhMiwyLDAsMCww'@; put 'LDIuODMsMGw0LjI0LTQuMjRBMiwyLDAsMCwwLDMzLjE4LDI2LjExWm0tNS42Niw1LjY2TDEzLjg4LDE4LjEybC0uNTcuMTZhNy4yNyw3LjI3LDAsMCwxLTkuMzEtNyw3LjIsNy4yLDAsMCwxLC4xNS0xLjQ4bDQuNjEsNC42MSw1LjY2LTUuNjZMOS44MSw0LjE1YTcuMjcsNy4yNywwLDAsMSw4'@; put 'LjQ3LDkuMTZsLS4xNi41N0wzMS43NywyNy41M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjcuMTMiIGN5PSIyNy4wOSIgcj0iMS4zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTEuMjEgMjcuMTIpIHJv'@; put 'dGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43MywyNy43MiwxOS42NywxMy42NmE4Ljc5LDguNzksMCwwLDAtMTItMTAuNUwxMyw4LjUzLDguNTMsMTMsMy4xNiw3LjY3YTguNzksOC43OSww'@; put 'LDAsMCwxMC41LDEyTDI3LjcyLDMzLjczYTEuMDcsMS4wNywwLDAsMCwxLjUsMGw0LjUxLTQuNTFBMS4wNywxLjA3LDAsMCwwLDMzLjczLDI3LjcyWk0yOSwyOWExLjM4LDEuMzgsMCwxLDEsMC0yQTEuMzgsMS4zOCwwLDAsMSwyOSwyOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZUJ1bGxzZXllPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyYTE1LjkyLDE1LjkyLDAsMCwwLTQuMjUuNTlsLjc3LDEuODZhMTQuMDcsMTQuMDcsMCwxLDEtMTAsMTBsLTEuODYtLjc4QTE2LDE2LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LjQ1LDE1LjdhMTAuODEsMTAuODEsMCwxLDAsOC4zLTguMjZMMTYuMzcsOUE5LjI0LDkuMjQsMCwxLDEsOSwxNi4zMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIyLjA5YTQuMDgsNC4wOCwwLDAsMS00LTMuNjhsLTEuNjMtLjY4YzAsLjA5LDAsLjE4LDAsLjI3QTUuNjksNS42OSwwLDEsMCwxOCwxMi4zMWgtLjI0TDE4LjQzLDE0QTQuMDcsNC4wNywwLDAsMSwxOCwyMi4wOVoiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguMiwxMy4zNGEuNS41LDAsMCwwLC4zNS4xNUgxMi4ybDUuMzcsNS4zN0ExLDEsMCwwLDAsMTksMTcuNDRMMTMuNTMsMTJWOC41MWEuNS41LDAsMCwwLS4xNS0uMzVMNy43OSwy'@; put 'LjU3YS41LjUsMCwwLDAtLjg1LjM1djRIM2EuNS41LDAsMCwwLS4zNS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDE4Ljg1YTEsMSwwLDAsMS0xLjQxLDBsLTMtM0E0LDQsMCwwLDAsMTMuOTEsMTgs'@; put 'NC4wOSw0LjA5LDAsMSwwLDE4LDEzLjkxYTQsNCwwLDAsMC0yLC41NWwzLDNBMSwxLDAsMCwxLDE5LDE4Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyYTE1LjkyLDE1LjkyLDAsMCwwLTQuMjUuNTlsMS42'@; put 'LDMuODlBMTEuODksMTEuODksMCwxLDEsNi40OSwxNS4zTDIuNjEsMTMuNjhBMTYsMTYsMCwxLDAsMTgsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxNS45NEExMC4xNywxMC4xNywwLDEsMCwxNiw4bDEuNjks'@; put 'NC4xMS4zMSwwQTUuODgsNS44OCwwLDEsMSwxMi4xMiwxOGMwLS4xMiwwLS4yMywwLS4zNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC4yLDEzLjM0YS41LjUsMCwwLDAsLjM1LjE1SDEyLjJsMi4zNSwyLjM1QTQu'@; put 'MDksNC4wOSwwLDAsMSwxNiwxNC40NkwxMy41MywxMlY4LjUxYS41LjUsMCwwLDAtLjE1LS4zNUw3Ljc5LDIuNTdhLjUuNSwwLDAsMC0uODUuMzV2NEgzYS41LjUsMCwwLDAtLjM1Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxGLkNsclNoYXBlVGFy'@; put 'Z2V0PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw3LjJBMTAuOCwxMC44LDAsMSwwLDI4LjgsMTgsMTAuODEsMTAuODEsMCwwLDAsMTgsNy4yWm0wLDIwQTkuMiw5LjIsMCwxLDEsMjcuMiwxOCw5LjIxLDkuMjEsMCwwLDEsMTgsMjcuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEyLjMxQTUuNjksNS42OSwwLDEsMCwyMy42OSwxOCw1LjY5LDUuNjksMCwwLDAsMTgsMTIuMzFabTAsOS43N0E0LjA5LDQuMDksMCwxLDEsMjIuMDksMTgsNC4wOSw0LjA5LDAsMCwxLDE4LDIyLjA5WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSI0LjA5IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDcuODNBMTAuMTcsMTAuMTcs'@; put 'MCwxLDAsMjguMTcsMTgsMTAuMTgsMTAuMTgsMCwwLDAsMTgsNy44M1ptMCwxNkE1Ljg4LDUuODgsMCwxLDEsMjMuODgsMTgsNS44OCw1Ljg4LDAsMCwxLDE4LDIzLjg4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x'@; put 'OCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMjcuODNBMTEuODMsMTEuODMsMCwxLDEsMjkuODMsMTgsMTEuODUsMTEuODUsMCwwLDEsMTgsMjkuODNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEYuQ2xyU2hhcGVGbGFtZT0o'@; put 'MCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMywxNi42NmMtMS4xOS0yLjA5LTcuOTQtMTQuMTUtNy45NC0xNC4xNWExLDEsMCwwLDAtMS43NSwwbC02LDEwLjY0LTMtNS4yOGExLDEsMCwwLDAtMS43NSwwUzUuNCwxNy43OCw0LjQyLDE5LjVBOS4zLDkuMywwLDAsMCwzLDI0LjYxQzMs'@; put 'MjkuNzIsNS44NiwzNCwxMS42NywzNEgyMi40OEMyOC4yOCwzNCwzMywyOSwzMywyMi43OEExMS4xMywxMS4xMywwLDAsMCwzMS4zLDE2LjY2Wk0yMi40OCwzMkgxMS43N0M4LjEzLDMyLDUsMjguNjYsNSwyNC42MWE3LjQzLDcuNDMsMCwwLDEsMS4xNi00LjEzYy43My0xLjI5LDQuMDUtNy4y'@; put 'MSw1LjY1LTEwLjA3bDMsNS4yOGExLDEsMCwwLDAsLjg3LjUxaDBhMSwxLDAsMCwwLC44Ny0uNTFMMjIuNDksNWMxLjg2LDMuMzMsNi4xNSwxMSw3LjA3LDEyLjZBOS4yNCw5LjI0LDAsMCwxLDMxLDIyLjc4QzMxLDI3Ljg3LDI3LjE4LDMyLDIyLjQ4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUuNzUsMjEuNzNjLS42NS0xLjE2LTQuMzgtNy44MS00LjM4LTcuODFhLjguOCwwLDAsMC0xLjQsMGwtNC4yLDcuNDgtMS41OS0yLjQ5YS44LjgsMCwwLDAtMS4zNSwwTDkuMzcsMjQuMzVhNC4zNSw0'@; put 'LjM1LDAsMCwwLS44MiwyLjYsNC40OSw0LjQ5LDAsMCwwLC41LDJIMTFhMywzLDAsMCwxLS44My0yLDIuNzgsMi43OCwwLDAsMSwuNTYtMS43M2wyLjgtNC4zOCwxLjY2LDIuNmEuOC44LDAsMCwwLDEuNDEtLjEyLDcuODIsNy44MiwwLDAsMSwuNC0uOEwyMC42NywxNmwzLjY5LDYuNTdhNC44'@; put 'Myw0LjgzLDAsMCwxLC43NywyLjcxQTUsNSwwLDAsMSwyMy40NiwyOWgyLjEzYTYuNjgsNi42OCwwLDAsMCwxLjE0LTMuNzQsNi40NSw2LjQ1LDAsMCwwLTEtMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MzEuMywxNi4zMmMtMS4xOS0yLjA5LTcuOTQtMTQuMTUtNy45NC0xNC4xNWExLDEsMCwwLDAtMS43NSwwbC02LDEwLjY0LTMtNS4yOGExLDEsMCwwLDAtMS43NSwwUzUuNCwxNy40Myw0LjQyLDE5LjE1QTkuMyw5LjMsMCwwLDAsMywyNC4yNmMwLDUuMTEsMy44OCw5LjY1LDguNjcsOS43NEgy'@; put 'Mi40OEMyOC4yOCwzNCwzMywyOC42MiwzMywyMi40NEExMS4xMywxMS4xMywwLDAsMCwzMS4zLDE2LjMyWk0yMS40OCwzMkgxNC41NEE0LjY4LDQuNjgsMCwwLDEsMTAsMjcuNDFhMy45MSwzLjkxLDAsMCwxLC43NS0yLjM0bDMuMzUtNS4yMWEuNS41LDAsMCwxLC44NCwwbDEuNzgsMi43Nyww'@; put 'LS4wOGMuNjMtMS4xMSw0LjIzLTcuNDgsNC4yMy03LjQ4YS41LjUsMCwwLDEsLjg3LDBzMy42LDYuMzgsNC4yMyw3LjQ4QTUuODMsNS44MywwLDAsMSwyNywyNS43NkMyNywzMiwyMi4xLDMyLDIxLjQ4LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxG'@; put 'LkNsclNoYXBlSG91cmdsYXNzPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkgyNlYyNC45MWE2LjY3LDYuNjcsMCwwLDAtMi42OS01LjMzbC0xLjI4LTFBNi4zNiw2LjM2LDAsMCwwLDIxLDE4aDBhNi4yOSw2LjI5LDAsMCwwLDEtLjYybDEuMjgtMUE2LjY3LDYuNjcsMCwwLDAs'@; put 'MjYsMTEuMDlWNGgzYTEsMSwwLDAsMCwwLTJIN0ExLDEsMCwwLDAsNyw0aDN2Ny4wOWE2LjY3LDYuNjcsMCwwLDAsMi42OSw1LjMzbDEuMjgsMUE2LjM2LDYuMzYsMCwwLDAsMTUsMThoMGE2LjI3LDYuMjcsMCwwLDAtMSwuNjJsLTEuMjgsMUE2LjY3LDYuNjcsMCwwLDAsMTAsMjQuOTFWMzJI'@; put 'N2ExLDEsMCwwLDAsMCwySDI5YTEsMSwwLDAsMCwwLTJaTTEyLDI0LjkxYTQuNjYsNC42NiwwLDAsMSwxLjg4LTMuNzJsMS4yOC0xYTQuNjYsNC42NiwwLDAsMSwxLjE4LS42MywxLDEsMCwwLDAsLjY1LS45NFYxNy4zM2ExLDEsMCwwLDAtLjY1LS45NCw0LjY3LDQuNjcsMCwwLDEtMS4xOS0u'@; put 'NjNsLTEuMjgtMUE0LjY2LDQuNjYsMCwwLDEsMTIsMTEuMDlWNEgyNHY3LjA5YTQuNjYsNC42NiwwLDAsMS0xLjg4LDMuNzJsLTEuMjgsMWgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2MS4zNGExLDEsMCwwLDAsLjY1Ljk0LDQuNjcsNC42NywwLDAsMSwxLjE5'@; put 'LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwzMkgyNlYyNC45MWE2LjY3LDYuNjcsMCwwLDAtMi42OS01LjMzbC0xLjI4LTFBNi4z'@; put 'Niw2LjM2LDAsMCwwLDIxLDE4aDBhNi4yOSw2LjI5LDAsMCwwLDEtLjYybDEuMjgtMWE2LjY0LDYuNjQsMCwwLDAsMS4wOS0xSDIyLjIzYTMuNjQsMy42NCwwLDAsMS0uNzgtLjA5bC0uNjIuNDZoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAs'@; put 'MCwwLC42NS45NCw0LjY3LDQuNjcsMCwwLDEsMS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyVjI0LjkxYTQuNjYsNC42NiwwLDAsMSwxLjg4LTMuNzJsMS4yOC0xYTQuNjYsNC42NiwwLDAsMSwxLjE4LS42MywxLDEsMCwwLDAsLjY1LS45NFYxNy4zM2ExLDEs'@; put 'MCwwLDAtLjY1LS45NCw0LjY3LDQuNjcsMCwwLDEtMS4xOS0uNjNsLTEuMjgtMUE0LjY2LDQuNjYsMCwwLDEsMTIsMTEuMDlWNEgyMi40NUwyMy42LDJIN0ExLDEsMCwwLDAsNyw0aDN2Ny4wOWE2LjY3LDYuNjcsMCwwLDAsMi42OSw1LjMzbDEuMjgsMUE2LjM2LDYuMzYsMCwwLDAsMTUsMTho'@; put 'MGE2LjI3LDYuMjcsMCwwLDAtMSwuNjJsLTEuMjgsMUE2LjY3LDYuNjcsMCwwLDAsMTAsMjQuOTFWMzJIN2ExLDEsMCwwLDAsMCwySDI5YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwzMkgyNlYyNC45MWE2LjY3LDYuNjcsMCwwLDAtMi42OS01LjMzbC0xLjI4LTFBNi4zNiw2LjM2LDAsMCwwLDIxLDE4aDBhNi4yOSw2LjI5LDAsMCwwLDEtLjYybDEu'@; put 'MjgtMWE2LjY4LDYuNjgsMCwwLDAsMi41Ny00LjE2QTcuNTMsNy41MywwLDAsMSwyNCwxMC40OXYuNjFhNC42Niw0LjY2LDAsMCwxLTEuODgsMy43MmwtMS4yOCwxaDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMsMSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0'@; put 'LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwxQTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMlYyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMsMSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42NS0uOTQsNC42'@; put 'Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OS0ySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wxLjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBh'@; put 'Ni4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFBNi42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAg'@; put 'ICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuNjcsNGgyMmExLDEsMCwwLDAsMC0yaC0yMmExLDEsMCwx'@; put 'LDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41NSwxNS42N0E2LjA3LDYuMDcsMCwwLDAsMjUsMTEuMTJWNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQuNTUsMTEuNDgsMTEuNDgsMCwwLDAsMi45MSwxLjcydjEuMTZhMTEuNDgsMTEuNDgsMCwwLDAtMi45MSwxLjcyLDYuMDcsNi4w'@; put 'NywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MmE2LjA3LDYuMDcsMCwwLDAtMi40NS00LjU1LDExLjQ4LDExLjQ4LDAsMCwwLTIuOTEtMS43MlYxNy4zOUExMS40OCwxMS40OCwwLDAsMCwyMi41NSwxNS42N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0SDIyLjQ1'@; put 'TDIzLjYsMkg2LjY3YTEsMSwwLDEsMCwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjUxLDIwLjI3YTYuMDcsNi4wNywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MmE2'@; put 'LjA3LDYuMDcsMCwwLDAtMi40NS00LjU1LDExLjQ4LDExLjQ4LDAsMCwwLTIuOTEtMS43MlYxNy4zOWExMS40OCwxMS40OCwwLDAsMCwyLjkxLTEuNzJsLjMtLjI3aC0uNjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQu'@; put 'NTUsMTEuNDgsMTEuNDgsMCwwLDAsMi45MSwxLjcydjEuMTZBMTEuNDgsMTEuNDgsMCwwLDAsMTIuNTEsMjAuMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEu'@; put 'MTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWkt'@; put 'YWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuNjcs'@; put 'NEgyMi43OGE3LjQ1LDcuNDUsMCwwLDEsLjg5LTJoLTE3YTEsMSwwLDEsMCwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41NSwyMC4yN2ExMS40OCwxMS40OCwwLDAsMC0yLjkx'@; put 'LTEuNzJWMTcuMzlhMTEuNDgsMTEuNDgsMCwwLDAsMi45MS0xLjcyQTYuMjUsNi4yNSwwLDAsMCwyNSwxMS41NSw3LjQ3LDcuNDcsMCwwLDEsMjIuNSw2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwxMS40OCwxMS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNmExMS40OCwx'@; put 'MS40OCwwLDAsMC0yLjkxLDEuNzIsNi4wNyw2LjA3LDAsMCwwLTIuNDUsNC41NXY1LjEySDI1VjI0LjgyQTYuMDcsNi4wNywwLDAsMCwyMi41NSwyMC4yN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNp'@; put 'cmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksRi5DbHJTaGFwZU5vQWNjZXNzPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0'@; put 'LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy4xNSwxNUg4Ljg1QTEuODUsMS44NSwwLDAsMCw3'@; put 'LDE2Ljg1djIuMjlBMS44NSwxLjg1LDAsMCwwLDguODUsMjFIMjcuMTVBMS44NSwxLjg1LDAsMCwwLDI5LDE5LjE1VjE2Ljg1QTEuODUsMS44NSwwLDAsMCwyNy4xNSwxNVptLjI1LDQuMTVhLjI1LjI1LDAsMCwxLS4yNS4yNUg4Ljg1YS4yNS4yNSwwLDAsMS0uMjUtLjI1VjE2Ljg1YS4yNS4y'@; put 'NSwwLDAsMSwuMjUtLjI1SDI3LjE1YS4yNS4yNSwwLDAsMSwuMjUuMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LjE1LDIwSDYu'@; put 'ODVBLjg1Ljg1LDAsMCwxLDYsMTkuMTVWMTYuODVBLjg1Ljg1LDAsMCwxLDYuODUsMTZIMjkuMTVhLjg1Ljg1LDAsMCwxLC44NS44NXYyLjI5QS44NS44NSwwLDAsMSwyOS4xNSwyMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZU9yZ2Fu'@; put 'aXphdGlvbj0oMCxtLmNsckljb25TVkcpKCc8cG9seWdvbiBwb2ludHM9IjkuOCAxOC44IDI2LjIgMTguOCAyNi4yIDIxLjg4IDI3LjggMjEuODggMjcuOCAxNy4yIDE4LjggMTcuMiAxOC44IDE0IDE3LjIgMTQgMTcuMiAxNy4yIDguMiAxNy4yIDguMiAyMS44OCA5LjggMjEuODggOS44IDE4'@; put 'LjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LDIzSDRhMiwyLDAsMCwwLTIsMnY2YTIsMiwwLDAsMCwyLDJIMTRhMiwyLDAsMCwwLDItMlYyNUEyLDIsMCwwLDAsMTQsMjNaTTQsMzFWMjVIMTR2NloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDIzSDIyYTIsMiwwLDAsMC0yLDJ2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjVBMiwyLDAsMCwwLDMyLDIzWk0yMiwzMVYyNUgzMnY2WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMsMTNIMjNhMiwyLDAsMCwwLDItMlY1YTIsMiwwLDAsMC0yLTJIMTNhMiwyLDAsMCwwLTIsMnY2QTIsMiwwLDAsMCwxMywxM1ptMC04SDIzdjZIMTNaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOS44IDE4LjggMjYuMiAxOC44IDI2LjIgMjEuODggMjcuOCAyMS44OCAyNy44IDE3LjIgMTguOCAxNy4yIDE4LjggMTQgMTcuMiAxNCAxNy4yIDE3LjIgOC4yIDE3LjIgOC4yIDIx'@; put 'Ljg4IDkuOCAyMS44OCA5LjggMTguOCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjIzIiB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIwIiB5PSIyMyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjEwIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMyIgd2lkdGg9IjE0'@; put 'IiBoZWlnaHQ9IjEwIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksRi5DbHJTaGFwZUJhbGFuY2U9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LDMzSDEyYTEsMSwwLDAsMSwwLTJIMjRhMSwxLDAsMCwxLDAsMloiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIyLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTI4LDdIOEExLDEsMCwwLDEsOCw1SDI4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi45MywyNC43OWE3LjIzLDcuMjMsMCwwLDEtNS44MS0yLjg5bC0uNi0uOCwxLjU5LTEuMjEu'@; put 'Ni44YTUuMjgsNS4yOCwwLDAsMCw4LjQyLDBsLjYtLjgsMS41OSwxLjIxLS42LjhBNy4yMyw3LjIzLDAsMCwxLDI2LjkzLDI0Ljc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNTEsMTkuMjVhLjguOCww'@; put 'LDAsMS0uNzMtLjQ4TDI2LjkzLDEyLjJsLTIuODUsNi41N2EuOC44LDAsMCwxLTEuNDctLjY0TDI2LjIsOS44N2EuODMuODMsMCwwLDEsMS40NywwbDMuNTgsOC4yNmEuOC44LDAsMCwxLS43MywxLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNOS42OCwyNC43OUE3LjIzLDcuMjMsMCwwLDEsMy44OCwyMS45bC0uNi0uOEw0Ljg2LDE5LjlsLjYuOGE1LjI4LDUuMjgsMCwwLDAsOC40MiwwbC42LS44LDEuNTksMS4yMS0uNi44QTcuMjMsNy4yMywwLDAsMSw5LjY4LDI0Ljc5WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuMjYsMTkuMjVhLjguOCwwLDAsMS0uNzMtLjQ4TDkuNjgsMTIuMiw2Ljg0LDE4Ljc3YS44LjgsMCwwLDEtMS40Ny0uNjRMOC45NSw5Ljg3YS44My44MywwLDAsMSwxLjQ3LDBMMTQsMTgu'@; put 'MTNhLjguOCwwLDAsMS0uNzMsMS4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPicpLEYuQ2xyU2hhcGVJZEJhZGdlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAs'@; put 'MCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiww'@; put 'LDAsMC0yLDJ2N2g4Wk0yMCw5SDE2VjRoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMwVjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAs'@; put 'MCwwLDEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBoMS42VjI3Ljg3QTguMzMsOC4zMywwLDAsMSwxOCwyNS4yOWE4LjMzLDguMzMsMCwwLDEsNi40LDIuNTlWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0yOCw2SDI0VjhoNFYzMkg4VjhoNFY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjgsNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0wLTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0EyLjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMzLDAsMCwxLDYuNCwyLjU5VjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4y'@; put 'Ni0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksOS44OSwxOS41Niw5SDE2VjRoNFY4'@; put 'LjI0bDItMy40NlY0YTIsMiwwLDAsMC0yLTJIMTZhMiwyLDAsMCwwLTIsMnY3aDQuNjRBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y'@; put 'OCwxNS40VjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYu'@; put 'ODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUt'@; put 'LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjJhNC4yMyw0LjIzLDAsMSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiw0YTIsMiwwLDAsMC0yLTJIMTZhMiwyLDAsMCwwLTIsMnY3aDhaTTIwLDlIMTZWNGg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBoMS42VjI3Ljg3QTguMzMsOC4zMywwLDAsMSwxOCwyNS4yOWE4LjMzLDguMzMsMCwwLDEsNi40LDIuNTlWMzBIMjZWMjcuN2Ex'@; put 'LjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJW'@; put 'MzJIOFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAg'@; put 'ICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNy43NyIgcj0iNC4yMyIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSw0YTIsMiwwLDAsMC0yLTJIMTdhMiwyLDAsMCwwLTIsMnY2aDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEw'@; put 'LjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTI4LDZIMjNWOGg1VjMySDhWOGg1VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwyOCw2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xOSw5Ljg5LDIxLDYuNVY0YTIsMiwwLDAsMC0yLTJIMTdhMiwyLDAsMCwwLTIsMnY2aDRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNy43NyIgcj0iNC4y'@; put 'MyIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAs'@; put 'MCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS40VjMySDhWOGg1VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAs'@; put 'MCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEEx'@; put 'LjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgi'@; put 'IGN5PSIxNy43NyIgcj0iNC4yMyIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1i'@; put 'YWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwx'@; put 'MC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWOGg1VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41'@; put 'QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksRi5DbHJTaGFwZVJlcGVhdD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMTQuMTVBMy4xNywzLjE3LDAsMCwxLDkuMTcsMTFIMjguNGwtNC4y'@; put 'OCw0LjU0YTEsMSwwLDEsMCwxLjQ2LDEuMzdMMzIuMDksMTAsMjUuNTgsMy4wOWExLDEsMCwxLDAtMS40NiwxLjM3TDI4LjQsOUg5LjE3QTUuMTcsNS4xNywwLDAsMCw0LDE0LjE1djYuMWwyLTIuMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMiIgZD0iTTMwLDIxLjg1QTMuMTcsMy4xNywwLDAsMSwyNi44MywyNUg3LjZsNC4yOC00LjU0YTEsMSwwLDEsMC0xLjQ2LTEuMzdMMy45MSwyNmw2LjUxLDYuOTFhMSwxLDAsMSwwLDEuNDYtMS4zN0w3LjYsMjdIMjYuODNBNS4xNyw1LjE3LDAsMCwwLDMyLDIxLjg1di02'@; put 'LjFsLTIsMi4xMloiLz4nKSxGLkNsclNoYXBlRmlsZUdyb3VwPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsMzRIMTNhMSwxLDAsMCwxLTEtMVYxMWExLDEsMCwwLDEsMS0xSDMxYTEsMSwwLDAsMSwxLDFW'@; put 'MzNBMSwxLDAsMCwxLDMxLDM0Wk0xNCwzMkgzMFYxMkgxNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIxNiIgeT0iMTYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTYiIHk9IjIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE2IiB5PSIyNCIgd2lkdGg9IjEyIiBoZWln'@; put 'aHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNNiwyNFY0SDI0VjNhMSwxLDAsMCwwLTEtMUg1QTEsMSwwLDAsMCw0LDNWMjVhMSwxLDAsMCwwLDEsMUg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9Ik0xMCwyOFY4SDI4VjdhMSwxLDAsMCwwLTEtMUg5QTEsMSwwLDAsMCw4LDdWMjlhMSwxLDAsMCwwLDEsMWgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg'@; put 'ZD0iTTMxLDEwSDEzYTEsMSwwLDAsMC0xLDFWMzNhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMS0xVjExQTEsMSwwLDAsMCwzMSwxMFpNMjgsMjZIMTZWMjRIMjhabTAtNEgxNlYyMEgyOFptMC00SDE2VjE2SDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYsMjRWNEgyNFYzYTEsMSwwLDAsMC0xLTFINUExLDEsMCwwLDAsNCwzVjI1YTEsMSwwLDAsMCwxLDFINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xMCwyOFY4SDI4Vjdh'@; put 'MSwxLDAsMCwwLTEtMUg5QTEsMSwwLDAsMCw4LDdWMjlhMSwxLDAsMCwwLDEsMWgxWiIvPicpLEYuQ2xyU2hhcGVQYXBlcmNsaXA9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjQyLDMyLjZBNi4zLDYuMyww'@; put 'LDAsMSw0LDMwLjc5bC0uMTMtLjEzQTYuMiw2LjIsMCwwLDEsMiwyNi4yMiw2Ljc3LDYuNzcsMCwwLDEsNCwyMS40TDE5LjUsNi4wN2E4LjY3LDguNjcsMCwwLDEsMTIuMTUtLjM1QTgsOCwwLDAsMSwzNCwxMS40NGE5LDksMCwwLDEtMi43LDYuMzZMMTcuMzcsMzEuNkExLDEsMCwxLDEsMTYs'@; put 'MzAuMThMMjkuODksMTYuMzhBNyw3LDAsMCwwLDMyLDExLjQ0YTYsNiwwLDAsMC0xLjc2LTQuMyw2LjY3LDYuNjcsMCwwLDAtOS4zNC4zNUw1LjQ1LDIyLjgyQTQuNzgsNC43OCwwLDAsMCw0LDI2LjIyYTQuMjEsNC4yMSwwLDAsMCwxLjI0LDNsLjEzLjEzYTQuNjQsNC42NCwwLDAsMCw2LjUt'@; put 'LjIxTDI1LjIyLDE1Ljk0QTIuNywyLjcsMCwwLDAsMjYsMTRhMi4zNSwyLjM1LDAsMCwwLS42OS0xLjY4LDIuNjEsMi42MSwwLDAsMC0zLjY2LjEzbC05LjIsOS4xMmExLDEsMCwxLDEtMS40MS0xLjQyTDIwLjI4LDExYTQuNjIsNC42MiwwLDAsMSw2LjQ4LS4xM0E0LjMzLDQuMzMsMCwwLDEs'@; put 'MjgsMTRhNC42OCw0LjY4LDAsMCwxLTEuNDEsMy4zNEwxMy4yOCwzMC41OEE2LjkxLDYuOTEsMCwwLDEsOC40MiwzMi42WiIvPicpLEYuQ2xyU2hhcGVTaHJpbms9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0z'@; put 'MiwxNUgyMi40MWw5LjI1LTkuMjVhMSwxLDAsMCwwLTEuNDEtMS40MUwyMSwxMy41OVY0YTEsMSwwLDAsMC0yLDBWMTdIMzJhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNNCwxOWExLDEs'@; put 'MCwwLDAsMCwyaDkuNTlMNC4zMywzMC4yNWExLDEsMCwxLDAsMS40MSwxLjQxTDE1LDIyLjQxVjMyYTEsMSwwLDAsMCwyLDBWMTlaIi8+JyksRi5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC40NCwzMS45NGE3LjMxLDcuMzEsMCwwLDEtNS43'@; put 'LTExLjg4TDcuMzIsMTguNjRhOS4zLDkuMywwLDAsMCwxMy4xLDEzLjExTDE5LDMwLjMzQTcuMjksNy4yOSwwLDAsMSwxNC40NCwzMS45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LjM2LDEuNjdhNC4x'@; put 'Miw0LjEyLDAsMSwwLDQuMTEsNC4xMUE0LjEyLDQuMTIsMCwwLDAsMjUuMzYsMS42N1ptMCw2LjIzYTIuMTIsMi4xMiwwLDEsMSwyLjExLTIuMTJBMi4xMiwyLjEyLDAsMCwxLDI1LjM2LDcuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTI2LjU2LDE4LjE4aC01YTEsMSwwLDAsMC0uMjQuMDVsMy4wOS0zLjU1YTIuODMsMi44MywwLDAsMC0uNjktNC4zM2wtOC00LjZhMSwxLDAsMCwwLTEuMTIuMDhMOS44Myw5LjU4QTEsMSwwLDAsMCw5LjY2LDExYTEsMSwwLDAsMCwuNzkuMzgsMSwxLDAsMCwwLC42'@; put 'MS0uMjFsNC4yNy0zLjM0LDMuMTEsMS43Ny01LjA4LDUuNzhoMGE5LjI4LDkuMjgsMCwwLDAtNC41MywxLjgzbDEuNDMsMS40M0E3LjMsNy4zLDAsMCwxLDIwLjQyLDI4LjgxbDEuNDIsMS40M2E5LjI3LDkuMjcsMCwwLDAsLjc3LTEwLjA2aDIuODJsLS43Nyw2LjUxYTEsMSwwLDAsMCwuODgs'@; put 'MS4xMWguMTJhMSwxLDAsMCwwLDEtLjg4bC45LTcuNjJhMSwxLDAsMCwwLS4yNS0uNzhBMSwxLDAsMCwwLDI2LjU2LDE4LjE4Wm0tNi4zNy03LjU2LDIuNTIsMS40NmEuNzkuNzksMCwwLDEsLjQuNTkuODEuODEsMCwwLDEtLjIuNjlMMTkuNzUsMTdBOS4xNyw5LjE3LDAsMCwwLDE2LDE1LjQ1'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzcsMzEuOTRhNy4zMSw3LjMxLDAsMCwxLTUuNy0xMS44OEw3LjY1LDE4LjY0YTkuMyw5LjMsMCwwLDAsMTMuMSwxMy4xMWwtMS40Mi0xLjQyQTcuMjksNy4y'@; put 'OSwwLDAsMSwxNC43NywzMS45NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNjUsMi4xYTMuMTIsMy4xMiwwLDEsMCwzLjExLDMuMTJBMy4xMiwzLjEyLDAsMCwwLDI2LjY1LDIuMVoiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODEsMTguMThIMjEuNDdxLS4zMS0uMzMtLjY2LS42M2w0LjM4LTQuODZhMi4xNCwyLjE0LDAsMCwwLS41My0zLjI3TDIwLjksNy4yM2wwLDBMMTcuMDUsNS4wN2ExLDEsMCwwLDAtMS4xMS4wOEwx'@; put 'MS4xNSw4LjlhMSwxLDAsMCwwLDEuMjMsMS41OGw0LjI3LTMuMzQsMi44NywxLjYzTDEzLjYsMTUuMzlhOS4zMyw5LjMzLDAsMCwwLTQuNDQsMS44MmwxLjQyLDEuNDNBNy4zLDcuMywwLDAsMSwyMC43NSwyOC44MWwxLjQzLDEuNDNBOS4yNyw5LjI3LDAsMCwwLDIzLDIwLjE4aDIuNzRsLS43'@; put 'Nyw2LjUxYTEsMSwwLDAsMCwuODcsMS4xMWguMTJhMSwxLDAsMCwwLDEtLjg4bC45LTcuNjJhMSwxLDAsMCwwLS4yNS0uNzhBMSwxLDAsMCwwLDI2LjgxLDE4LjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlQWNjZXNzaWJpbGl0eTI9'@; put 'KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjA2LDExaC0yNGExLDEsMCwxLDAsMCwySDE0djkuNjVzMCwwLDAsMGwtMy43NSwxMGExLDEsMCwwLDAsLjU4LDEuMjksMS4xMywxLjEzLDAsMCwwLC4zNi4wNiwxLDEsMCwwLDAsLjkzLS42NUwxNS42MiwyNGg0Ljc2bDMuNTIsOS4zNWEx'@; put 'LDEsMCwwLDAsLjkzLjY1LDEuMTMsMS4xMywwLDAsMCwuMzYtLjA2LDEsMSwwLDAsMCwuNTgtMS4yOUwyMiwyMi42OHMwLDAsMCwwVjEzaDguMDZhMSwxLDAsMSwwLDAtMlpNMjAsMjJIMTZWMTNoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTE4LDEwYTQsNCwwLDEsMC00LTRBNCw0LDAsMCwwLDE4LDEwWm0wLTZhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTcu'@; put 'OTYiIGN5PSI1IiByPSIzIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEwSDZhMSwxLDAsMCwwLDAsMmg4djguMzZzMCwwLDAsMEwxMC4xMSwzMy4xN2ExLDEsMCwwLDAsLjY2LDEuMjUsMS41NSwxLjU1LDAsMCww'@; put 'LC4yOSwwLDEsMSwwLDAsMCwxLS43MWwzLjI5LTEwLjg0aDUuMzhMMjQsMzMuNzVhMSwxLDAsMCwwLDEsLjcxLDEuNTUsMS41NSwwLDAsMCwuMjksMCwxLDEsMCwwLDAsLjY2LTEuMjVMMjIsMjAuNHMwLDAsMCwwVjEyaDhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZVNvcnRCeT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjguNTQsMTNINy40NmExLDEsMCwwLDEsMC0ySDI4LjU0YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0yMS4xNywxOUg3LjQ2YTEsMSwwLDAsMSwwLTJIMjEuMTdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjc0LDI1SDcuNDZhMSwxLDAsMCwxLDAt'@; put 'Mmg2LjI4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlQ29sbGFwc2VDYXJkPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywyMUgzYTEsMSwwLDAsMC0xLDF2NmExLDEsMCwwLDAsMSwxSDMzYTEs'@; put 'MSwwLDAsMCwxLTFWMjJBMSwxLDAsMCwwLDMzLDIxWm0tMSw2SDRWMjNIMzJaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMC4yMmw1LjY1LTUuNjVhLjgxLjgxLDAsMCwwLDAtMS4xNC44LjgsMCwwLDAt'@; put 'MS4xMywwTDE4LDE4bC00LjUyLTQuNTJhLjguOCwwLDAsMC0xLjEzLDAsLjgxLjgxLDAsMCwwLDAsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE0LjIybDUuNjUtNS42NWEuODEuODEsMCwwLDAs'@; put 'MC0xLjE0LjguOCwwLDAsMC0xLjEzLDBMMTgsMTIsMTMuNDgsNy40M2EuOC44LDAsMCwwLTEuMTMsMCwuODEuODEsMCwwLDAsMCwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIyMiIgd2lkdGg9'@; put 'IjMyIiBoZWlnaHQ9IjgiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMC43bC01Ljc5LTUuNzlhMSwxLDAsMCwxLDAtMS40MSwxLDEsMCwwLDEsMS40MSwwTDE4LDE3Ljg3bDQuMzgtNC4z'@; put 'N2ExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE0LjUsMTIuMjEsOC43MWExLDEsMCwwLDEsMC0xLjQyLDEsMSwwLDAsMSwxLjQxLDBMMTgsMTEuNjds'@; put 'NC4zOC00LjM4YTEsMSwwLDAsMSwxLjQxLDAsMSwxLDAsMCwxLDAsMS40MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksRi5DbHJTaGFwZUV4cGFuZENhcmQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDZIM0ExLDEsMCwwLDAsMiw3VjI5YTEs'@; put 'MSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCwzMyw2Wk0zMiwyOEg0VjhIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjQ4LDE1Ljg2LDE4LDExLjM0bDQuNTIsNC41MmEuNzcu'@; put 'NzcsMCwwLDAsLjU2LjI0LjgxLjgxLDAsMCwwLC41Ny0xLjM3TDE4LDkuMDhsLTUuNjUsNS42NWEuOC44LDAsMSwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNDgsMjEuODYsMTgsMTcu'@; put 'MzRsNC41Miw0LjUyYS43Ny43NywwLDAsMCwuNTYuMjQuODEuODEsMCwwLDAsLjU3LTEuMzdMMTgsMTUuMDhsLTUuNjUsNS42NWEuOC44LDAsMSwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MzMsNkgzQTEsMSwwLDAsMCwyLDdWMjlhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDMzLDZaTTIzLjc5LDIxLjQxYTEsMSwwLDAsMS0xLjQxLDBMMTgsMTdsLTQuMzgsNC4zOGExLDEsMCwwLDEtMS40MSwwLDEsMSwwLDAsMSwwLTEuNDJMMTgsMTQuMiwyMy43'@; put 'OSwyMEExLDEsMCwwLDEsMjMuNzksMjEuNDFabTAtNi4yYTEsMSwwLDAsMS0xLjQxLDBMMTgsMTAuODNsLTQuMzgsNC4zOGExLDEsMCwwLDEtMS40MSwwLDEsMSwwLDAsMSwwLTEuNDJMMTgsOGw1Ljc5LDUuNzlBMSwxLDAsMCwxLDIzLjc5LDE1LjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxGLkNsclNoYXBlQnJpZWZjYXNlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiwyOGEwLDAsMCwwLDEsMCwwSDRWMjEuMzJhNy4xLDcuMSwwLDAsMS0yLTEuNDNWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5Ljg5YTYuNzQs'@; put 'Ni43NCwwLDAsMS0yLDEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yNSwyMi40YTEsMSwwLDAsMCwxLTFWMTUuOTRIMjRWMThIMTR2MkgyNHYxLjRBMSwxLDAsMCwwLDI1LDIyLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0zMyw2SDI0VjQuMzhBMi40MiwyLjQyLDAsMCwwLDIxLjU1LDJoLTcuMUEyLjQyLDIuNDIsMCwwLDAsMTIsNC4zOFY2SDNBMSwxLDAsMCwwLDIsN3Y4YTUsNSwwLDAsMCw1LDVoM3YxLjRhMSwxLDAsMCwwLDIsMFYxNS45NEgxMFYx'@; put 'OEg3YTMsMywwLDAsMS0zLTNWOEgzMnY3YTMsMywwLDAsMS0zLDNIMjh2MmgxYTUsNSwwLDAsMCw1LTVWN0ExLDEsMCwwLDAsMzMsNlpNMjIsNkgxNFY0LjQzQS40NS40NSwwLDAsMSwxNC40NSw0aDcuMTFhLjQzLjQzLDAsMCwxLC40NC40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLDE4QTQuMDYsNC4wNiwwLDAsMCwzNCwxNFY2SDI0VjQuNDNBMi40NCwyLjQ0LDAsMCwwLDIxLjU1LDJoLTcuMUEyLjQ0LDIuNDQsMCwwLDAsMTIsNC40M1Y2SDJ2OEE0LjA2LDQuMDYsMCwwLDAsNi4wNSwxOGg0VjE1LjkyaDJ2NS43'@; put 'YTEsMSwwLDEsMS0yLDBWMjAuMDZINi4wNkE2LjA2LDYuMDYsMCwwLDEsMiwxOC40OXY5LjQ1YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOC40OWE2LDYsMCwwLDEtNC4wNiwxLjU3SDI4VjE4Wk0xNCw0LjQzQS40NS40NSwwLDAsMSwxNC40NSw0aDcuMWEuNDUuNDUsMCwwLDEs'@; put 'LjQ1LjQzVjZIMTRaTTI2LDIxLjYyYTEsMSwwLDEsMS0yLDBWMjAuMDZIMTRWMThIMjRWMTUuOTJoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZUNvbG9yUGlja2VyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywxMC4wNWE1'@; put 'LjA3LDUuMDcsMCwwLDAsLjEtNy4xN0E1LjA2LDUuMDYsMCwwLDAsMjYsM0wyMC43OCw4LjE1YTIuMTMsMi4xMywwLDAsMS0zLDBsLS42Ny0uNjdMMTUuNzIsOC45MiwyNy4wOCwyMC4yOGwxLjQyLTEuNDItLjY3LS42N2EyLjEzLDIuMTMsMCwwLDEsMC0zWk0yNi40NCwxMy44YTQuMDcsNC4w'@; put 'NywwLDAsMC0xLjA4LDEuOTJsLTUuMDgtNS4wOEE0LjA3LDQuMDcsMCwwLDAsMjIuMiw5LjU2bDUuMTYtNS4xN2EzLjA5LDMuMDksMCwwLDEsNC4zNS0uMSwzLjA5LDMuMDksMCwwLDEtLjEsNC4zNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBh'@; put 'dGggZD0iTTcuMywzMS41MWEyLDIsMCwxLDEtMi44My0yLjgzTDE4LjU4LDE0LjU3bC0xLjQyLTEuNDFMMy4wNSwyNy4yN2E0LDQsMCwwLDAtLjY4LDQuOEwuODksMzMuNTVBMSwxLDAsMCwwLC44OSwzNWExLDEsMCwwLDAsMS40MiwwbDEuNDMtMS40NGEzLjkzLDMuOTMsMCwwLDAsMi4wOS42'@; put 'LDQuMDYsNC4wNiwwLDAsMCwyLjg4LTEuMkwyMi44MiwxOC44MSwyMS40MSwxNy40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMzMuNzMsMi4xMWE0LjA5LDQuMDksMCwwLDAtNS43Ni4xTDIyLjgxLDcuMzhhMy4xMywzLjEzLDAs'@; put 'MCwxLTQuMy4xMUwxNy4wOSw4LjkxLDI3LDE4Ljc5bDEuNDItMS40MkEzLjE4LDMuMTgsMCwwLDEsMjguNDYsMTNsNS4xNy01LjE3QTQuMDgsNC4wOCwwLDAsMCwzMy43MywyLjExWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yMi4xOCwx'@; put 'Ni43OSw3LjQ2LDMxLjUxYTIsMiwwLDEsMS0yLjgyLTIuODNMMTkuMzUsMTRsLTEuNDEtMS40MUwzLjIyLDI3LjI3YTQsNCwwLDAsMC0uNjgsNC44TDEuMDYsMzMuNTVhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsMS40MSwwbDEuNDQtMS40NGEzLjkzLDMuOTMsMCwwLDAsMi4wOS42LDQu'@; put 'MDYsNC4wNiwwLDAsMCwyLjg4LTEuMkwyMy42LDE4LjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMi42LDRIMjEuNTVhMy44OSwzLjg5LDAsMCwwLTcu'@; put 'MzEsMEgxMy40QTIuNDEsMi40MSwwLDAsMCwxMSw2LjRWMTBIMjVWNi40QTIuNDEsMi40MSwwLDAsMCwyMi42LDRaTTIzLDhIMTNWNi4yNUEuMjUuMjUsMCwwLDEsMTMuMjUsNmgyLjY5bC4xMi0xLjExQTEuMjQsMS4yNCwwLDAsMSwxNi42MSw0YTIsMiwwLDAsMSwzLjE1LDEuMThsLjA5Ljg0'@; put 'aDIuOWEuMjUuMjUsMCwwLDEsLjI1LjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuMjUsMTguMDZIMjEuMzNsMi44NC0yLjgzYTEsMSwwLDEsMC0xLjQyLTEuNDJMMTcuNSwxOS4wNmw1LjI1LDUuMjVhMSwxLDAsMCwwLC43'@; put 'MS4yOSwxLDEsMCwwLDAsLjcxLTEuN2wtMi44NC0yLjg0SDMzLjI1YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0yOSwxNmgyVjYuNjhBMS42NiwxLjY2LDAsMCwwLDI5LjM1LDVIMjcuMDhWN0gyOVoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTI5LDMxSDdWN0g5VjVINi42NEExLjY2LDEuNjYsMCwwLDAsNSw2LjY3VjMxLjMyQTEuNjYsMS42NiwwLDAsMCw2LjY1LDMzSDI5LjM2QTEuNjYsMS42NiwwLDAsMCwzMSwzMS4zM1YyMi4wNkgy'@; put 'OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLEYuQ2xyU2hhcGVEcmFnSGFuZGxlPSgwLG0uY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjE1IiBjeT0iMTIiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IC8+PGNpcmNsZSBjeD0iMTUiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxjaXJjbGUg'@; put 'Y3g9IjIxIiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMjEiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48Y2lyY2xlIGN4PSIxNSIgY3k9'@; put 'IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEYuQ2xyU2hhcGVGaWx0ZXIyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywxMUgzYTEsMSwwLDAsMCwwLDJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTI4LDE3SDhhMSwxLDAsMCwwLDAsMkgyOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMjMsMjNIMTNhMSwxLDAsMCwwLDAsMkgyM2Ex'@; put 'LDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksRi5DbHJTaGFwZU1vb249KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDI3LjE5YTEsMSwwLDAsMC0xLS41NmMtLjI4LDAtLjU2LDAtLjg1LDBBMTEsMTEsMCwwLDEsMjQu'@; put 'OTIsNS42MWExLDEsMCwwLDAsLjYxLTEsMSwxLDAsMCwwLS42Ny0uOTEsMTQuNywxNC43LDAsMCwwLTUtLjg3LDE1LjEyLDE1LjEyLDAsMCwwLDAsMzAuMjQsMTQuNzgsMTQuNzgsMCwwLDAsMTEtNC44MUExLDEsMCwwLDAsMzEsMjcuMTlaTTE5Ljg5LDMxLjEyYTEzLjEyLDEzLjEyLDAsMCwx'@; put 'LDAtMjYuMjQsMTEuODEsMTEuODEsMCwwLDEsMiwuMTYsMTMsMTMsMCwwLDAsNS43MiwyMy41M0ExMi43NSwxMi43NSwwLDAsMSwxOS44OSwzMS4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTI5LjIsMjYuNzJBMTIuMDcsMTIu'@; put 'MDcsMCwwLDEsMjIuOSw0LjQ0LDEzLjY4LDEzLjY4LDAsMCwwLDE5LjQ5LDRhMTQsMTQsMCwwLDAsMCwyOCwxMy44MiwxMy44MiwwLDAsMCwxMC45LTUuMzRBMTEuNzEsMTEuNzEsMCwwLDEsMjkuMiwyNi43MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+Jyks'@; put 'Ri5DbHJTaGFwZVN1bj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsNi4zMWExLDEsMCwwLDAsMS0xVjEuOTFhMSwxLDAsMCwwLTIsMHYzLjRBMSwxLDAsMCwwLDE4LDYuMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0x'@; put 'OCwyOS42OWExLDEsMCwwLDAtMSwxdjMuNGExLDEsMCwwLDAsMiwwdi0zLjRBMSwxLDAsMCwwLDE4LDI5LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNOC4zMiw5Ljc0QTEsMSwwLDAsMCw5LDEwYTEsMSwwLDAsMCwuNzEtLjI5'@; put 'LDEsMSwwLDAsMCwwLTEuNDJMNy4zMyw1LjkyQTEsMSwwLDAsMCw1LjkyLDcuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjcuNjgsMjYuMjZhMSwxLDAsMSwwLTEuNDIsMS40MmwyLjQxLDIuNGExLDEsMCwwLDAsLjcxLjMsMSwx'@; put 'LDAsMCwwLC43LS4zLDEsMSwwLDAsMCwwLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNNi4zMSwxOGExLDEsMCwwLDAtMS0xSDEuOTFhMSwxLDAsMCwwLDAsMmgzLjRBMSwxLDAsMCwwLDYuMzEsMThaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzQuMDksMTdoLTMuNGExLDEsMCwxLDAsMCwyaDMuNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTguMzIsMjYuMjZsLTIuNCwyLjQx'@; put 'YTEsMSwwLDAsMCwuNywxLjcxLDEsMSwwLDAsMCwuNzEtLjNsMi40MS0yLjRhMSwxLDAsMSwwLTEuNDItMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0yNywxMGExLDEsMCwwLDAsLjcxLS4yOWwyLjQtMi40MWExLDEsMCwwLDAs'@; put 'MC0xLjQxLDEsMSwwLDAsMC0xLjQxLDBsLTIuNDEsMi40YTEsMSwwLDAsMCwwLDEuNDJBMSwxLDAsMCwwLDI3LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+PHBhdGggZD0iTTE4LjEzLDcuNzVhMTAuMTMsMTAuMTMsMCwxLDAsMTAsMTAuMTNBMTAu'@; put 'MDgsMTAuMDgsMCwwLDAsMTguMTMsNy43NVptMCwxOC4yNWE4LjEzLDguMTMsMCwxLDEsOC04LjEyQTguMDgsOC4wOCwwLDAsMSwxOC4xMywyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPjxwYXRoIGQ9Ik0xOCw2LjQyYTEsMSwwLDAsMCwxLTFWMS45'@; put 'MWExLDEsMCwwLDAtMiwwVjUuNDJBMSwxLDAsMCwwLDE4LDYuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyOS41OGExLDEsMCwwLDAtMSwxdjMuNTFhMSwxLDAsMCwwLDIsMFYzMC41OEExLDEsMCwwLDAsMTgsMjkuNThaIiBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik04LjQsOS44MUExLDEsMCwwLDAsOS44MSw4LjRMNy4zMyw1LjkyQTEsMSwwLDAsMCw1LjkyLDcuMzNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNy42LDI2'@; put 'LjE5YTEsMSwwLDAsMC0xLjQxLDEuNDFsMi40OCwyLjQ4YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LjQyLDE4YTEsMSwwLDAsMC0xLTFIMS45MWExLDEsMCwwLDAsMCwySDUuNDJBMSwxLDAsMCwwLDYu'@; put 'NDIsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zNC4wOSwxN0gzMC41OGExLDEsMCwwLDAsMCwyaDMuNTFhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+PHBhdGggZD0iTTguNCwy'@; put 'Ni4xOSw1LjkyLDI4LjY3YTEsMSwwLDAsMCwxLjQxLDEuNDFMOS44MSwyNy42QTEsMSwwLDAsMCw4LjQsMjYuMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC03IiAvPjxwYXRoIGQ9Ik0yNy42LDkuODFsMi40OC0yLjQ4YTEsMSwwLDAsMC0xLjQxLTEuNDFMMjYuMTks'@; put 'OC40QTEsMSwwLDAsMCwyNy42LDkuODFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04IiAvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjEwIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC05IiAvPicpLEYuQ2xyU2hhcGVXYW5kPSgwLG0uY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQuMSw0LDMxLjcxLDEuNmExLjgzLDEuODMsMCwwLDAtMS4zMS0uNTRoMGEyLjA1LDIuMDUsMCwwLDAtMS40NS42MkwxLjc2LDI5LjIzQTIsMiwwLDAsMCwxLjY4LDMybDIuNCwy'@; put 'LjQzQTEuODMsMS44MywwLDAsMCw1LjM5LDM1aDBhMi4wNSwyLjA1LDAsMCwwLDEuNDUtLjYyTDM0LDYuNzlBMiwyLDAsMCwwLDM0LjEsNFpNNS40MiwzMi45MywzLjE2LDMwLjY1aDBMMjQuMTEsOS40M2wyLjI1LDIuMjhaTTMyLjYxLDUuMzlsLTUuMTIsNS4xOEwyNS4yNCw4LjI5bDUuMTMt'@; put 'NS4yLDIuMjUsMi4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIuNTMsMjAuNDdsMi4wOS0yLjA5YS44LjgsMCwwLDAtMS4xMy0xLjEzbC0yLjA5LDIuMDktMi4wOS0yLjA5YS44LjgsMCwwLDAtMS4xMywx'@; put 'LjEzbDIuMDksMi4wOS0yLjA5LDIuMDlhLjguOCwwLDAsMCwxLjEzLDEuMTNsMi4wOS0yLjA5LDIuMDksMi4wOWEuOC44LDAsMCwwLDEuMTMtMS4xM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTQuNzgsNi41'@; put 'MWEuOC44LDAsMCwwLDEuMTMsMEwxNy40LDVsMS40OSwxLjQ5QS44LjgsMCwwLDAsMjAsNS4zOEwxOC41NCwzLjg5LDIwLDIuNGEuOC44LDAsMCwwLTEuMTMtMS4xM0wxNy40LDIuNzYsMTUuOTEsMS4yN0EuOC44LDAsMSwwLDE0Ljc4LDIuNGwxLjQ5LDEuNDlMMTQuNzgsNS4zOEEuOC44LDAs'@; put 'MCwwLDE0Ljc4LDYuNTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTguMzMsMTUuMjZhLjguOCwwLDAsMCwxLjEzLDBsMS4xNi0xLjE2LDEuMTYsMS4xNmEuOC44LDAsMSwwLDEuMTMtMS4xM0wxMS43NiwxM2wx'@; put 'LjE2LTEuMTZhLjguOCwwLDEsMC0xLjEzLTEuMTNsLTEuMTYsMS4xNkw5LjQ2LDEwLjY4YS44LjgsMCwxLDAtMS4xMywxLjEzTDkuNDksMTMsOC4zMywxNC4xM0EuOC44LDAsMCwwLDguMzMsMTUuMjZaIi8+JyksRi5DbHJTaGFwZUN1cnNvck1vdmU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGgg'@; put 'ZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQyLDAsMSwxLDAsMCwwLDAsMS40MUwzMC4xNCwxN0gxOVY1Ljg2bDIuNjksMi43YTEsMSwwLDAsMCwxLjQxLDAsMSwxLDAsMCwwLDAtMS40MkwxOCwyLDEyLjg5LDcuMTVhMSwxLDAsMCwwLS4yOS43MSwxLDEsMCwwLDAsMS43MS43TDE3LDUu'@; put 'ODZWMTdINS44NmwyLjctMi42OWExLDEsMCwwLDAsMC0xLjQxLDEsMSwwLDAsMC0xLjQyLDBMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjctMS43MUw1Ljg2LDE5SDE3VjMwLjE0bC0yLjY5LTIuN2ExLDEsMCwwLDAtMS43MS43LDEsMSwwLDAsMCwuMjkuNzFM'@; put 'MTgsMzRsNS4xMS01LjE0YTEsMSwwLDAsMCwwLTEuNDIsMSwxLDAsMCwwLTEuNDEsMEwxOSwzMC4xNFYxOUgzMC4xNGwtMi43LDIuNjlhMSwxLDAsMCwwLC43LDEuNzEsMSwxLDAsMCwwLC43MS0uMjlMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'Lz4nKSxGLkNsclNoYXBlQ2xvbmU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsNkgyMnY0aDJWNmEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNlYyMmEyLDIsMCwwLDAsMiwyaDRWMjJINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxw'@; put 'YXRoIGQ9Ik0zMCwxMkgxNGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEEyLDIsMCwwLDAsMzAsMTJabTAsMThIMTRWMTRIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cG9seWdvbiBwb2ludHM9IjIx'@; put 'IDI4IDIzIDI4IDIzIDIzIDI4IDIzIDI4IDIxIDIzIDIxIDIzIDE2IDIxIDE2IDIxIDIxIDE2IDIxIDE2IDIzIDIxIDIzIDIxIDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQsMTBWNmEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCww'@; put 'LDQsNlYyMmEyLDIsMCwwLDAsMiwyaDRWMTJhMiwyLDAsMCwxLDItMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLDEySDE0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0QTIsMiwwLDAsMCwz'@; put 'MCwxMlpNMjgsMjNIMjN2NUgyMVYyM0gxNlYyMWg1VjE2aDJ2NWg1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlRGV0YWlscz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCww'@; put 'LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTksMTRIMjdhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNOSwxOEgyN2ExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik05LDIySDE5YTEsMSwwLDAsMCwwLTJIOWExLDEsMCww'@; put 'LDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xOSwyMkg5YTEsMSwwLDAsMSwwLTJIMTlhMSwx'@; put 'LDAsMCwxLDAsMlptOC00SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWm0wLTRIOWExLDEsMCwwLDEsMC0ySDI3YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVEcmFnSGFuZGxlQ29ybmVyPSgwLG0u'@; put 'Y2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjEyIiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg'@; put 'Lz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMTIiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBj'@; put 'eD0iMjQiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEYuQ2xyU2hhcGVFcmFzZXI9'@; put 'KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM1LjYyLDEyYTIuODIsMi44MiwwLDAsMC0uODQtMkwyNy40OSwyLjY1YTIuOSwyLjksMCwwLDAtNCwwTDIuODMsMjMuMjhhMi44NCwyLjg0LDAsMCwwLDAsNEw3LjUzLDMySDNhMSwxLDAsMCwwLDAsMkgyOGExLDEsMCwwLDAsMC0ySDE2Ljc0'@; put 'bDE4LTE4QTIuODIsMi44MiwwLDAsMCwzNS42MiwxMlpNMTMuOTEsMzJIMTAuMzZMNC4yNSwyNS44OWEuODQuODQsMCwwLDEsMC0xLjE5bDUuNTEtNS41Miw4LjQ5LDguNDhaTTMzLjM3LDEyLjU0LDE5LjY2LDI2LjI1bC04LjQ4LTguNDksMTMuNy0xMy43YS44Ni44NiwwLDAsMSwxLjE5LDBs'@; put 'Ny4zLDcuMjlhLjg2Ljg2LDAsMCwxLC4yNS42QS44Mi44MiwwLDAsMSwzMy4zNywxMi41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOCwzMkgxNS4zM0wxOSwyOC4zN2wtOS45LTkuOUwzLjU0LDI0YTEuODMsMS44MywwLDAsMCww'@; put 'LDIuNkw5LDMySDNhMSwxLDAsMCwwLDAsMkgyOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzQuMDgsMTAuNjVsLTcuMy03LjNhMS44MywxLjgzLDAsMCwwLTIuNiwwTDEwLjQ3LDE3LjA2bDkuOSw5LjlMMzQuMDgs'@; put 'MTMuMjVBMS44NSwxLjg1LDAsMCwwLDM0LjA4LDEwLjY1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlTGFuZHNjYXBlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwy'@; put 'SDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlptMCwyMkg0VjhIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyMmEuODIuODIsMCwwLDAsLjU1LS4yMS44LjgsMCwwLDAsMC0xLjEzTDcuODMsMTguOEgyOC4xN2wt'@; put 'MS43MiwxLjg2YS44LjgsMCwwLDAsMCwxLjEzQS44Mi44MiwwLDAsMCwyNywyMmEuNzguNzgsMCwwLDAsLjU4LS4yNkwzMS4wOSwxOGwtMy40Ny0zLjc0YS43OS43OSwwLDAsMC0xLjEzLDAsLjguOCwwLDAsMCwwLDEuMTNsMS43MiwxLjg2SDcuODNsMS43Mi0xLjg2YS44LjgsMCwwLDAsMC0x'@; put 'LjEzLjc5Ljc5LDAsMCwwLTEuMTMsMEw0LjkxLDE4bDMuNDcsMy43NEEuNzguNzgsMCwwLDAsOSwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs'@; put 'MCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMjcuNzcsMjEuODhhMSwxLDAsMCwxLS43My4zMiwxLDEsMCwwLDEtLjY4LS4yNywxLDEsMCwwLDEtLjA2LTEuNDFMMjcuNzEsMTlIOC4yOUw5LjcsMjAuNTJhMSwxLDAsMCwxLS4wNiwxLjQxQTEsMSwwLDAsMSw5LDIyLjJhMSwxLDAsMCwxLS43My0u'@; put 'MzJMNC42NCwxOGwzLjU5LTMuODhBMSwxLDAsMCwxLDkuNywxNS40OEw4LjI5LDE3SDI3LjcxTDI2LjMsMTUuNDhhMSwxLDAsMCwxLDEuNDctMS4zNkwzMS4zNiwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZVBhc3RlPSgwLG0uY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0zMCwxMkgyNnYyaDR2MmgyVjE0QTIsMiwwLDAsMCwzMCwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxyZWN0IHg9IjMwIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMwSDI4djJoMmEyLDIsMCwwLDAsMi0yVjI2SDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LDIyVjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJh'@; put 'MiwyLDAsMCwwLDIsMkgyMkEyLDIsMCwwLDAsMjQsMjJaTTYsNkgyMlYyMkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHJlY3QgeD0iMjAiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMTQsMjZIMTJ2NGEyLDIsMCwwLDAsMiwyaDRWMzBIMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMzAsMTJIMjZ2Mmg0djJoMlYxNEEyLDIsMCwwLDAsMzAsMTJaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxyZWN0IHg9IjMwIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMzBIMjh2MmgyYTIsMiwwLDAsMCwyLTJWMjZIMzBaIiBjbGFzcz0iY2xy'@; put 'LWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxyZWN0IHg9IjIwIiB5PSIzMCIgd2lkdGg9IjYiIGhlaWdodD0i'@; put 'MiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMTQsMjZIMTJ2NGEyLDIsMCwwLDAsMiwyaDRWMzBIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02IiAvPicpLEYuQ2xyU2hhcGVQb3J0cmFpdD0oMCxtLmNsckljb25T'@; put 'VkcpKCc8cGF0aCBkPSJNMTUuMzQsMjYuNDVhLjguOCwwLDAsMC0xLjEzLDAsLjc5Ljc5LDAsMCwwLDAsMS4xM0wxOCwzMS4wOWwzLjc0LTMuNDdhLjc5Ljc5LDAsMCwwLC4wNS0xLjEzLjguOCwwLDAsMC0xLjEzLDBMMTguOCwyOC4xN1Y3LjgzbDEuODYsMS43MmEuOC44LDAsMSwwLDEuMDgt'@; put 'MS4xN0wxOCw0LjkxLDE0LjI2LDguMzhhLjc5Ljc5LDAsMCwwLDAsMS4xMy44LjgsMCwwLDAsMS4xMywwTDE3LjIsNy44M1YyOC4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCww'@; put 'LDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlptMCwzMEg4VjRIMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0y'@; put 'VjRBMiwyLDAsMCwwLDI4LDJaTTIwLjUyLDI2LjNhMSwxLDAsMCwxLDEuMzYsMS40N0wxOCwzMS4zNmwtMy44OC0zLjU5YTEsMSwwLDAsMSwxLjM2LTEuNDdMMTcsMjcuNzFWOC4yOUwxNS40OCw5LjdhMSwxLDAsMCwxLTEuMzYtMS40N0wxOCw0LjY0bDMuODgsMy41OWExLDEsMCwwLDEsLjA1'@; put 'LDEuNDEsMSwxLDAsMCwxLS43My4zMiwxLDEsMCwwLDEtLjY4LS4yNkwxOSw4LjI5VjI3LjcxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxGLkNsclNoYXBlVHJlZVZpZXc9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDMySDExYTEsMSwwLDAs'@; put 'MS0xLTFWMjdhMSwxLDAsMCwxLDEtMWg0YTEsMSwwLDAsMSwxLDF2NEExLDEsMCwwLDEsMTUsMzJabS0zLTJoMlYyOEgxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxNkgxMWExLDEsMCwwLDAtMSwxdjEuMkg1LjhWMTJIN2Ex'@; put 'LDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDcsNkgzQTEsMSwwLDAsMCwyLDd2NGExLDEsMCwwLDAsMSwxSDQuMlYyOS44aDYuMzZhLjguOCwwLDAsMCwwLTEuNkg1LjhWMTkuOEgxMFYyMWExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxN0ExLDEsMCwwLDAsMTUsMTZaTTQsOEg2djJI'@; put 'NFpNMTQsMjBIMTJWMThoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zNCw5YTEsMSwwLDAsMC0xLTFIMTB2MkgzM0ExLDEsMCwwLDAsMzQsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxw'@; put 'YXRoIGQ9Ik0zMywxOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzMsMjhIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi'@; put 'IC8+PHJlY3QgeD0iMTAiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgcnk9IjEiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE1LDE2SDExYTEsMSwwLDAsMC0xLDF2MS4ySDUuOFYxMkg3YTEsMSwwLDAsMCwxLTFWN0ExLDEs'@; put 'MCwwLDAsNyw2SDNBMSwxLDAsMCwwLDIsN3Y0YTEsMSwwLDAsMCwxLDFINC4yVjI5LjhIMTFhLjguOCwwLDEsMCwwLTEuNkg1LjhWMTkuOEgxMFYyMWExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxN0ExLDEsMCwwLDAsMTUsMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMyw4SDEwdjJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLDE4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTQiIC8+PHBhdGggZD0iTTMzLDI4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksRi5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC4wOSw5Ljc0YTQsNCwwLDAs'@; put 'MC0xLjE2LjE5Yy0uMTktMS4yNC0xLjU1LTIuMTgtMy4yNy0yLjE4QTQsNCwwLDAsMCwyMi4xMyw4LDMuMzcsMy4zNywwLDAsMCwxOSw2LjNhMy40NSwzLjQ1LDAsMCwwLTIuODcsMS4zMiwzLjY1LDMuNjUsMCwwLDAtMS44OS0uNTFBMy4wNSwzLjA1LDAsMCwwLDExLDkuODl2LjkxYy0xLjA2'@; put 'LjQtNC4xMSwxLjgtNC45MSw0Ljg0cy4zNCw4LDIuNjksMTEuNzhhMjUuMjEsMjUuMjEsMCwwLDAsNS45LDYuNDEuOS45LDAsMCwwLC41My4xN0gyNS41NWEuOTIuOTIsMCwwLDAsLjU1LS4xOSwxMy4xMywxMy4xMywwLDAsMCwzLjc1LTYuMTNBMjUuOCwyNS44LDAsMCwwLDMxLjQxLDE4di01'@; put 'LjVBMy4wOCwzLjA4LDAsMCwwLDI4LjA5LDkuNzRaTTI5LjYxLDE4YTI0LDI0LDAsMCwxLTEuNDcsOS4xNUExMi40NiwxMi40NiwwLDAsMSwyNS4yLDMyLjJIMTUuNDdhMjMuNzUsMjMuNzUsMCwwLDEtNS4yLTUuNzJjLTIuMzctMy44Ni0zLTguMjMtMi40OC0xMC4zOUE1LjcsNS43LDAsMCwx'@; put 'LDExLDEyLjc2djcuNjVhLjkuOSwwLDAsMCwxLjgsMFY5Ljg5YzAtLjQ3LjU5LTEsMS40Ni0xczEuNDkuNTIsMS40OSwxdjUuNzJoMS44VjguODFjMC0uMjguNTgtLjcxLDEuNDYtLjcxczEuNTMuNDgsMS41My43NXY2Ljg5aDEuOFYxMGwuMTctLjEyYTIuMSwyLjEsMCwwLDEsMS4xOC0uMzJj'@; put 'LjkzLDAsMS41LjQ0LDEuNS42OGwwLDYuNUgyN1YxMS44N2ExLjkxLDEuOTEsMCwwLDEsMS4xMi0uMzNjLjg2LDAsMS41Mi41MSwxLjUyLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZUN1cnNvckhhbmRPcGVuPSgwLG0uY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0zMS40Niw4LjU3QTMuMTEsMy4xMSwwLDAsMCwyNyw1Ljc1YTMuMTksMy4xOSwwLDAsMC00LjY2LTIuNjQsMy4yOSwzLjI5LDAsMCwwLTYuNDItLjc2LDMuMjMsMy4yMywwLDAsMC0xLjY2LS40NkEzLjI3LDMuMjcsMCwwLDAsMTEsNS4xOFYxNy44NGMtMS4y'@; put 'OC0xLjYtMi41My0zLjE4LTIuNzItMy40NUEzLjE5LDMuMTksMCwwLDAsNS41NiwxMi45YTMuMzcsMy4zNywwLDAsMC0zLjQ3LDMuNDhDMi4xOCwxOC4xOCw1LjY2LDI0LjU0LDgsMjhjMy41NCw1LjI0LDYuOTIsNiw3LjA3LDZsLjE4LDBIMjUuNTlhLjkyLjkyLDAsMCwwLC41NS0uMTksMTMu'@; put 'MTMsMTMuMTMsMCwwLDAsMy43NS02LjEzYzEtMy4wOSwxLjUzLTcuNTMsMS41OC0xMy41NlpNMjguMTgsMjcuMTJhMTIuNDYsMTIuNDYsMCwwLDEtMi45NCw1LjA4SDE1LjMzYy0uNDctLjE0LTMuMDctMS4xLTUuODctNS4yNVMzLjk0LDE3LjI3LDMuODksMTYuMjlhMS41LDEuNSwwLDAsMSwu'@; put 'NDUtMS4xMywxLjUyLDEuNTIsMCwwLDEsMS4xNC0uNDYsMS40MywxLjQzLDAsMCwxLDEuMzIuNzFjLjI5LjQzLDIuMzYsMywzLjU3LDQuNTNMMTIuOCwxOC4zVjUuMThhMS40OCwxLjQ4LDAsMSwxLDIuOTUsMFYxNi4zMmgxLjh2LTEzYTEuNTEsMS41MSwwLDAsMSwzLDBWMTYuNDVoMS44VjZh'@; put 'MS40MywxLjQzLDAsMSwxLDIuODUsMFYxNy40NEgyN1Y4LjU0YTEuMzMsMS4zMywwLDAsMSwyLjY1LDB2NS41NUMyOS42MiwyMCwyOS4xNCwyNC4yMSwyOC4xOCwyNy4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVGaWxlWmlw'@; put 'PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMCwzMC4yVjEybC04LjEtNy45SDcuOEM2LjgsNC4xLDYsNC45LDYsNmMwLDAsMCwwLDAsMHYyNC4yYzAsMSwwLjcsMS44LDEuNywxLjhjMCwwLDAuMSwwLDAuMSwwaDIwLjNcblx0XHRjMSwwLDEuOC0wLjcsMS44LTEuN0MzMCwzMC4zLDMw'@; put 'LDMwLjIsMzAsMzAuMnogTTIyLDYuNmw1LjYsNS40SDIyVjYuNnogTTI4LDMwSDcuOUw4LDZoMTJ2OGg4VjMweiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTEyLDI0YzAsMS43LDEuMywzLDMsM3MzLTEuMywzLTN2LTRoLTZWMjR6IE0x'@; put 'My40LDI0di0yLjZoMy4yVjI0YzAuMSwwLjktMC42LDEuNy0xLjUsMS43Yy0wLjksMC4xLTEuNy0wLjYtMS43LTEuNVxuXHRcdEMxMy40LDI0LjIsMTMuNCwyNC4xLDEzLjQsMjR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTguMiw5'@; put 'YzAtMC42LTAuNC0xLTEtMUgxNXYyaDIuMkMxNy44LDEwLDE4LjIsOS42LDE4LjIsOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMi43LDEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxSDE1di0ySDEyLjd6IiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMTcuMiwxNGMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgxNXYySDE3LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMTEuNywxNWMwLDAuNiwwLjQs'@; put 'MSwxLDFIMTV2LTJoLTIuM0MxMi4yLDE0LDExLjcsMTQuNCwxMS43LDE1eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE3LjIsMThjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMTV2MkgxNy4yeiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTE1LDI1LjZjMC45LDAsMS42LTAuNywxLjYtMS42di0yLjZoLTMuMlYyNEMxMy40LDI0LjksMTQuMSwyNS42LDE1LDI1LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS45'@; put 'LDRINy44QzYuOCw0LDYsNC45LDYsNS45djI0LjJjMCwxLDAuOCwxLjksMS44LDEuOWgyMC4zYzEsMCwxLjgtMC45LDEuOC0xLjlWMTEuOUwyMS45LDR6IE0xOCwyNGMwLDEuNy0xLjMsMy0zLDNcblx0XHRzLTMtMS4zLTMtM3YtNGg2VjI0eiBNMTcuMiwxMmMwLjYsMCwxLDAuNCwxLDFzLTAu'@; put 'NCwxLTEsMUgxNXYyaDIuMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMUgxNXYtMmgtMi4yYy0wLjYsMC0xLTAuNC0xLTFcblx0XHRzMC40LTEsMS0xSDE1di0yaC0yLjJjLTAuNiwwLTEtMC40LTEtMXMwLjQtMSwxLTFIMTVWOGgyLjJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2'@; put 'MkgxNy4yeiBNMjEuOSwxMlY2LjVsNS43LDUuNUgyMS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlRmlsdGVyT2ZmPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCw2LjRDMzQsNS42LDMzLjMsNSwzMi41LDVIMTAuM2wyLDJI'@; put 'MzJ2MC42bC05LjYsOS42bDEuNCwxLjRMMzMuNCw5QzMzLjgsOC42LDM0LDguMSwzNCw3LjZWNi41QzM0LDYuNSwzNCw2LjQsMzQsNi40eiJcblx0XHQgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIuNywzbDIsMmgtMUMyLjksNC45LDIu'@; put 'MSw1LjUsMiw2LjN2MS4xYzAsMC41LDAuMiwxLDAuNiwxLjRMMTQsMjAuMnYxMC4zbDEuOSwwLjhWMTkuNEw0LDcuNVY3aDIuN0wyMCwyMC4zdjEyLjlsMiwwLjhcblx0XHRjMCwwLDAsMCwwLTAuMVYyMi4zbDEwLjEsMTAuMWwxLjQtMS40TDQuMSwxLjZMMi43LDN6IiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjMuOSwxOC42TDEwLjMsNS4xaDIyLjJDMzMuMyw1LDM0LDUuNiwzNCw2LjRjMCwwLDAsMCwwLDAuMXYxLjFjMCwwLjUtMC4yLDEtMC42LDEuNEwyMy45LDE4LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMy41LDMxTDQuMSwxLjZMMi42LDNsMi4xLDIuMUgzLjVDMi43LDUsMiw1LjYsMiw2LjRjMCwwLDAsMCwwLDAuMXYxLjFjMCwwLjUsMC4yLDEsMC42LDEuNEwxNCwyMC41djEwLjFsOCwzLjRWMjIuNFxuXHRsMTAuMSwxMC4xTDMzLjUsMzF6IiBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVSZWN5Y2xlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjQsMTcuNGMwLjIsMC4xLDAuMywwLjEsMC41LDAuMWMwLjIsMCwwLjQtMC4xLDAuNS0wLjFsNy00LjFjMC4zLTAuMiwwLjUtMC41LDAu'@; put 'NS0wLjljMC0wLjQtMC4yLTAuNy0wLjUtMC45TDExLjksMTBcblx0XHRMMTQsNi4yYzAuNC0wLjcsMS0xLjMsMS43LTEuN2MyLTEuMSw0LjUtMC4zLDUuNiwxLjdjMC4zLDAuNSwwLjksMC42LDEuNCwwLjNjMCwwLDAsMCwwLjEsMGMwLjQtMC4zLDAuNS0wLjksMC4zLTEuM1xuXHRcdGMtMC42'@; put 'LTEtMS40LTEuOS0yLjQtMi40Yy0zLTEuNi02LjctMC42LTguMywyLjRMOS42LDkuOWMtMC4zLDAuNS0wLjEsMS4xLDAuMywxLjRsMiwxLjJsLTQsMi40VjguMmMwLTAuNi0wLjQtMS0xLTFcblx0XHRDNi40LDcuMyw2LDcuNyw2LDguM3Y4LjNDNiwxNi45LDYuMiwxNy4yLDYuNCwxNy40eiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjEsMjFsLTMuNS02LjJjLTAuMS0wLjItMC40LTAuNC0wLjYtMC41Yy0wLjMtMC4xLTAuNSwwLTAuOCwwLjFsLTIuMiwxLjNWMTFsNS41LDMuM2MwLjEsMCwwLjEsMC4xLDAuMiwwLjFcblx0'@; put 'XHRjMC41LDAuMiwxLjEsMCwxLjMtMC41YzAuMi0wLjUsMC0xLjEtMC41LTEuM2wtNy00LjJjLTAuMy0wLjItMC43LTAuMi0xLDBDMjMuMSw4LjUsMjMsOC44LDIzLDkuMnY4LjNjMCwwLjQsMC4xLDAuOCwwLjQsMVxuXHRcdGMwLjMsMC4yLDAuNywwLjIsMSwwbDIuOS0xLjdsMyw1LjNjMC43'@; put 'LDEuMywwLjcsMi44LDAsNC4xYy0wLjYsMS4yLTEuOSwxLjktMy4yLDEuOWgtMC45Yy0wLjUsMC0xLjIsMC40LTEuMiwxXG5cdFx0YzAuMSwwLjYsMC42LDEsMS4yLDFoMC45YzIuMSwwLDQtMS4xLDUtMi45QzMzLjIsMjUuMiwzMy4yLDIyLjksMzIuMSwyMXoiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMi40LDI4LjJsLTctNC4yYy0wLjMtMC4yLTAuNy0wLjItMSwwYy0wLjMsMC4yLTAuNCwwLjUtMC40LDAuOXYzLjNIOS4xYy0xLjUtMC4xLTIuOS0wLjktMy42LTIuM1xuXHRcdGMtMC44LTEuNC0wLjgtMy4yLDAtNC42YzAu'@; put 'My0wLjUsMC4xLTEuMS0wLjQtMS40Yy0wLjUtMC4zLTEuMS0wLjEtMS40LDAuNGMtMS4yLDIuMS0xLjEsNC42LDAuMSw2LjZDNC45LDI4LjgsNywzMCw5LjIsMzBIMTVcblx0XHRjMC42LDAsMS0wLjQsMS0xdi0yLjRsNCwyLjRsLTUuNiwzLjNjLTAuMywwLjItMC41LDAuNS0wLjUsMC45YzAs'@; put 'MC42LDAuNSwxLDEsMWMwLjIsMCwwLjMtMC4xLDAuNS0wLjJsNy00LjJcblx0XHRjMC4yLTAuMSwwLjMtMC4yLDAuNC0wLjRDMjMuMSwyOSwyMi45LDI4LjQsMjIuNCwyOC4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIwLjgsMy4x'@; put 'Yy0zLTEuNi02LjctMC42LTguNCwyLjRsLTIuMiwzLjhsLTItMS4xQzguMiw4LDgsOCw3LjksOEM3LjQsOCw3LDguNCw3LDguOXY3LjJjMCwwLjMsMC4xLDAuNiwwLjQsMC44XG5cdFx0YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMiwwLDAuMywwLDAuNC0wLjFsNi4zLTMuNmMwLjMtMC4y'@; put 'LDAuNC0wLjQsMC40LTAuOGMwLTAuMy0wLjItMC42LTAuNC0wLjhMMTIsMTAuM2wyLjItMy44XG5cdFx0YzAuNC0wLjcsMS0xLjMsMS43LTEuN2MyLTEuMSw0LjUtMC4zLDUuNiwxLjdjMC4zLDAuNSwwLjksMC42LDEuNCwwLjRjMC41LTAuMywwLjYtMC45LDAuNC0xLjRDMjIuNiw0LjUsMjEu'@; put 'OCwzLjYsMjAuOCwzLjF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4yLDIxLjFsLTMtNS4zbDIuMy0xLjNjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhjMC0wLjMtMC4yLTAuNi0wLjQtMC44bC02LjItMy42Yy0wLjEtMC4xLTAuMy0wLjEt'@; put 'MC40LTAuMVxuXHRcdGMtMC41LDAtMC45LDAuNC0wLjksMC45djcuMmMwLDAuMywwLjIsMC42LDAuNCwwLjhjMC4xLDAuMSwwLjMsMC4xLDAuNCwwLjFjMC4yLDAsMC4zLTAuMSwwLjQtMC4xbDIuMi0xLjNsMyw1LjNcblx0XHRjMC43LDEuMiwwLjcsMi44LDAsNGMtMC43LDEuMi0xLjksMS45'@; put 'LTMuMiwxLjloLTAuOWMtMC42LDAtMSwwLjQtMSwxYzAsMC42LDAuNCwxLDEsMWgwLjljMi4xLDAsNC0xLjEsNS0zXG5cdFx0QzMzLjIsMjUuMywzMy4yLDIzLDMyLjIsMjEuMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIxLjcsMjguNGwt'@; put 'Ni4yLTMuNmMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFjLTAuNSwwLTAuOSwwLjQtMC45LDAuOXYyLjZIOS4zYy0xLjUsMC0yLjktMC44LTMuNi0yLjFcblx0XHRjLTAuOC0xLjQtMC44LTMuMSwwLTQuNWMwLjMtMC41LDAuMS0xLjEtMC40LTEuNGMtMC41LTAuMy0xLjEtMC4xLTEuNCwwLjRj'@; put 'LTEuMiwyLTEuMiw0LjUsMCw2LjVjMS4xLDEuOSwzLjEsMy4xLDUuNCwzLjFoNC44djIuNlxuXHRcdGMwLDAuMywwLjIsMC42LDAuNCwwLjhjMC4xLDAuMSwwLjMsMC4xLDAuNCwwLjFjMC4xLDAsMC4zLDAsMC40LTAuMWw2LjMtMy42YzAuMy0wLjIsMC40LTAuNCwwLjQtMC44XG5cdFx0QzIy'@; put 'LjEsMjguOCwyMS45LDI4LjUsMjEuNywyOC40eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlVHJlZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNiwxMS43QzI5LjIsNS44LDI0LDEuNywxOCwxLjdjLTcuMiwwLTEzLDUuOC0x'@; put 'MywxM2MwLDYuOCw1LjMsMTIuNCwxMiwxMi45djVjMCwwLjYsMC40LDEsMSwxczEtMC40LDEtMXYtNXYtMlYyMlxuXHRjMCwwLDAsMCwwLTAuMXYtMy42bDQuNy00LjdjMC40LTAuNCwwLjQtMSwwLTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxOSwxNS42di0zbC0zLjMtMy4zYy0wLjQtMC40'@; put 'LTEtMC40LTEuNCwwXG5cdGMtMC40LDAuNC0wLjQsMSwwLDEuNGwyLjcsMi43djYuMmwtMy44LTMuOGMtMC40LTAuNC0xLTAuNC0xLjQsMGMtMC40LDAuNC0wLjQsMSwwLDEuNGw1LjIsNS4ydjMuMmMtNS42LTAuNS0xMC01LjItMTAtMTAuOVxuXHRjMC02LjEsNC45LTExLDExLTExczExLDQu'@; put 'OSwxMSwxMWMwLDQuOS0zLjMsOS4yLTgsMTAuNnYyLjFDMjgsMjUuNywzMi4zLDE4LjcsMzAuNiwxMS43eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJDMTAuOCwxLjcsNC44LDcuMyw0LjUsMTQuNUM0LjIsMjEuNyw5LjgsMjcu'@; put 'NywxNywyOHYtNS4ybC01LjItNS4yYy0wLjQtMC40LTAuNC0xLDAtMS40YzAuNC0wLjQsMS0wLjQsMS40LDBcblx0YzAsMCwwLDAsMCwwbDMuOCwzLjh2LTYuMmwtMi43LTIuN2MtMC40LTAuNC0wLjQtMSwwLTEuNGMwLjQtMC40LDEtMC40LDEuNCwwYzAsMCwwLDAsMCwwbDMuMywzLjN2M2wz'@; put 'LjMtMy4zYzAuNC0wLjQsMS0wLjQsMS40LDBcblx0YzAsMCwwLDAsMCwwYzAuNCwwLjQsMC40LDEsMCwxLjRMMTksMTguOFYyOGM3LjItMC4zLDEyLjgtNi4zLDEyLjUtMTMuNVMyNS4yLDEuNywxOCwyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBk'@; put 'PSJNMTgsMjhjLTAuMywwLTAuNiwwLTEsMHY1YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTF2LTVDMTguNywyOCwxOC4zLDI4LDE4LDI4eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlRmlzaD0oMCxtLmNsckljb25TVkcpKCc8Y2lyY2xl'@; put 'IGN4PSIxMS40OSIgY3k9IjE3LjUiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLjQ4LDkuMjlhMSwxLDAsMCwwLTEsMGMtMy4zNywyLTUuOTEsNS44MS02LjksNy40NUwyNC44NSwxOHMtMSwxLjYyLTEsMS42MmMtMS43'@; put 'NiwyLjQ5LTUuMSw2LjM2LTguNzksNi4zNi00LjY1LDAtOC43NS02LjE1LTkuODQtNy45NCwxLjA5LTEuNzksNS4xOC03Ljk0LDkuODQtNy45NCwzLjU0LDAsNi43NywzLjU4LDguNTgsNi4wN2wuMjgtLjQ4cy4zNi0uNTEuOTMtMS4yNUMyMi43MiwxMS42NCwxOS4xOCw4LjA2LDE1LDguMDZj'@; put 'LTYuNTksMC0xMS42Nyw5LjA3LTExLjg4LDkuNDZMMi44OSwxOGwuMjcuNDhjLjIxLjM5LDUuMjksOS40NiwxMS44OCw5LjQ2LDUuMDYsMCw5LjIyLTUuMzQsMTEtOEMyNiwyMCwyNy4xOCwxOCwyNy4xOCwxOGgwbC4wNy0uMTFhMTguMDYsMTguMDYsMCwwLDEsMS44OC0yLjc1czAsMCwwLDBh'@; put 'MjAuMzEsMjAuMzEsMCwwLDEsMi44Ni0zVjIzLjg4YTIwLjkzLDIwLjkzLDAsMCwxLTMuNjEtNGwtLjE2LjI2aDBsLTEsMS41OWExOC43NCwxOC43NCwwLDAsMCw1LjIxLDQuOTUsMSwxLDAsMCwwLC41LjE0LDEuMTMsMS4xMywwLDAsMCwuNS0uMTMsMSwxLDAsMCwwLC41LS44N1YxMC4xNkEx'@; put 'LDEsMCwwLDAsMzMuNDgsOS4yOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVGb3JtPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMSwxMkg3YTEsMSwwLDAsMS0xLTFWN0ExLDEsMCwwLDEsNyw2SDIxYTEsMSwwLDAsMSwx'@; put 'LDF2NEExLDEsMCwwLDEsMjEsMTJaTTgsMTBIMjBWNy45NEg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLDE0LjA4SDdhMSwxLDAsMCwwLTEsMVYxOWExLDEsMCwwLDAsMSwxSDE4LjM2TDIyLDE2LjNWMTUuMDhBMSwxLDAsMCww'@; put 'LDIxLDE0LjA4Wk0yMCwxOEg4VjE2SDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTExLjA2LDMxLjUxdi0uMDZsLjMyLTEuMzlINFY0aDIwVjE0LjI1TDI2LDEyLjM2VjNhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDNWMzFh'@; put 'MSwxLDAsMCwwLDEsMWg4QTMuNDQsMy40NCwwLDAsMSwxMS4wNiwzMS41MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxOS4xN2wtLjc4Ljc5QTEsMSwwLDAsMCwyMiwxOS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LDI2Ljk0YTEsMSwwLDAsMCwxLDFoNC44NGwuMy0xLjMuMTMtLjU1LDAtLjA1SDhWMjRoNi4zNGwyLTJIN2ExLDEsMCwwLDAtMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMz'@; put 'LjQ5LDE2LjY3LDMwLjEyLDEzLjNhMS42MSwxLjYxLDAsMCwwLTIuMjgsMGgwTDE0LjEzLDI3LjA5LDEzLDMxLjlhMS42MSwxLjYxLDAsMCwwLDEuMjYsMS45LDEuNTUsMS41NSwwLDAsMCwuMzEsMCwxLjE1LDEuMTUsMCwwLDAsLjM3LDBsNC44NS0xLjA3TDMzLjQ5LDE5YTEuNiwxLjYsMCww'@; put 'LDAsMC0yLjI3Wk0xOC43NywzMC45MWwtMy42Ni44MUwxNiwyOC4wOSwyNi4yOCwxNy43bDIuODIsMi44MlpNMzAuMjMsMTkuMzlsLTIuODItMi44MkwyOSwxNWwyLjg0LDIuODRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxGLkNsclNoYXBlRnVl'@; put 'bD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuMTIsMzRINS45QTIuODEsMi44MSwwLDAsMSwzLDMxLjE5VjQuODZBMi45LDIuOSwwLDAsMSw2LDIuMDdIMjAuMjJBMi43MiwyLjcyLDAsMCwxLDIzLDQuODZWMzEuMTlBMi44MiwyLjgyLDAsMCwxLDIwLjEyLDM0Wk01LjksNEEuODcu'@; put 'ODcsMCwwLDAsNSw0Ljg2VjMxLjE5YS44Ny44NywwLDAsMCwuODcuODdIMjAuMTJhLjk0Ljk0LDAsMCwwLC45NS0uODdWNC44NkEuOTQuOTQsMCwwLDAsMjAuMTIsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOS41MywzNEEzLjUs'@; put 'My41LDAsMCwxLDI2LDMwLjVWMjNhMiwyLDAsMCwwLTItMkgyMi41N2ExLDEsMCwwLDEsMC0ySDI0YTQsNCwwLDAsMSw0LDRWMzAuNWExLjUsMS41LDAsMCwwLDMsMFYxNy4zbC0zLjEzLTdBMi4yOSwyLjI5LDAsMCwwLDI1LjgsOWgtLjczYTEsMSwwLDEsMSwwLTJoLjczYTQuMyw0LjMsMCww'@; put 'LDEsMy45MywyLjU1bDMuMjEsNy4xNmExLDEsMCwwLDEsLjA5LjQxVjMwLjVBMy41LDMuNSwwLDAsMSwyOS41MywzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOCw5SDhBMSwxLDAsMSwxLDgsN0gxOGExLDEsMCwwLDEsMCwyWiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE4LDEzSDhBMSwxLDAsMSwxLDgsMTFIMThBMSwxLDAsMSwxLDE4LDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI1LDEyLjA4YTEs'@; put 'MSwwLDAsMS0xLTF2LTZhMSwxLDAsMCwxLDIsMHY2QTEsMSwwLDAsMSwyNSwxMi4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPicpLEYuQ2xyU2hhcGVTbm93Zmxha2U9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LjA1LDMzLjYxYTEsMSww'@; put 'LDAsMS0xLTFWMy4zN2ExLDEsMCwxLDEsMS45NSwwVjMyLjYzQTEsMSwwLDAsMSwxOC4wNSwzMy42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOC4wNiwxMC4wNywxNC41Miw2LjU0YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAsMCwx'@; put 'LDEuNDEsMGwyLjEzLDIuMTIsMi4xMi0yLjEyYTEsMSwwLDAsMSwxLjQxLDAsMSwxLDAsMCwxLDAsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMC44NSwzMS4xN2ExLDEsMCwwLDEtLjctLjI5TDE4LDI4Ljc2LDE1LjksMzAu'@; put 'ODhhMSwxLDAsMCwxLTEuNDEsMCwxLDEsMCwwLDEsMC0xLjQyTDE4LDI1LjkzbDMuNTQsMy41M2ExLDEsMCwwLDEsMCwxLjQyQTEsMSwwLDAsMSwyMC44NSwzMS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC45MiwyNi41YTEs'@; put 'MSwwLDAsMS0uNS0uMTNsLTI2LTE1QTEsMSwwLDAsMSw0LjA3LDEwYTEsMSwwLDAsMSwxLjM3LS4zNmwyNiwxNWExLDEsMCwwLDEtLjUsMS44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LDE1LjM3YTEsMSwwLDAsMS0uMjYtMmwy'@; put 'LjktLjc4TDcuODQsOS43M2ExLDEsMCwxLDEsMS45My0uNTJMMTEuMDcsMTQsNi4yNCwxNS4zM0EuODIuODIsMCwwLDEsNiwxNS4zN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0yNy4wNSwyNy41NGExLDEsMCwwLDEtMS0uNzVMMjQu'@; put 'OCwyMmw0LjgyLTEuM2ExLDEsMCwxLDEsLjUyLDEuOTNsLTIuOS43OC43OCwyLjlhMSwxLDAsMCwxLS43MSwxLjIyQS43NS43NSwwLDAsMSwyNy4wNSwyNy41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik00Ljk0LDI2LjVhMSwxLDAs'@; put 'MCwxLS41LTEuODdsMjYtMTVhMSwxLDAsMCwxLDEuMzYuMzYsMSwxLDAsMCwxLS4zNiwxLjM3bC0yNiwxNUExLDEsMCwwLDEsNC45NCwyNi41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTguODEsMjcuNTRhLjc1Ljc1LDAsMCwxLS4y'@; put 'NiwwLDEsMSwwLDAsMS0uNzEtMS4yMmwuNzgtMi45LTIuOS0uNzhBMSwxLDAsMCwxLDUsMjEuMzhhMSwxLDAsMCwxLDEuMjMtLjcxTDExLjA3LDIybC0xLjMsNC44MkExLDEsMCwwLDEsOC44MSwyNy41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxw'@; put 'YXRoIGQ9Ik0yOS44OCwxNS4zN2EuODIuODIsMCwwLDEtLjI2LDBMMjQuOCwxNGwxLjI5LTQuODNBMSwxLDAsMSwxLDI4LDkuNzNsLS43OCwyLjg5LDIuOS43OGExLDEsMCwwLDEtLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz4nKSxGLkNsclNo'@; put 'YXBlVGFibGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTgsMzRhMSwxLDAsMCwxLTEtMVYyLjkyYTEsMSwwLDAsMSwyLDBWMzNBMSwxLDAsMCwxLDgsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTcsMzMuOTJhMSwxLDAs'@; put 'MCwxLTEtMVY5LjFhMSwxLDAsMSwxLDIsMFYzMi45MkExLDEsMCwwLDEsMTcsMzMuOTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjYsMzRhMSwxLDAsMCwxLTEtMVY5YTEsMSwwLDAsMSwyLDBWMzNBMSwxLDAsMCwxLDI2LDM0WiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLjExLDE4aC0yNWExLDEsMCwxLDEsMC0yaDI1YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzMuMSwyNi45'@; put 'NEg4LjFBMSwxLDAsMSwxLDguMSwyNWgyNWExLDEsMCwxLDEsMCwxLjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLDguOTJIM0ExLDEsMCwxLDEsMyw3SDMzYTEsMSwwLDEsMSwwLDEuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxGLkNsclNoYXBlVm9sdW1lPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS44OCwzMkgxMmE0LDQsMCwwLDEtNC00VjExLjQ2TDIuMzEsNS43N2ExLDEsMCwwLDEtLjIyLTEuMDlBMSwxLDAsMCwxLDMsNC4wNkgyOC44NmExLDEsMCww'@; put 'LDEsMSwxVjI4QTQsNCwwLDAsMSwyNS44OCwzMlpNNS40Myw2bDQuMjgsNC4zNGEuNzUuNzUsMCwwLDEsLjIxLjYzdjE3QTIuMTMsMi4xMywwLDAsMCwxMiwzMEgyNS44OEEyLjEsMi4xLDAsMCwwLDI4LDI4VjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'Lz48cGF0aCBkPSJNMzMsMTZhMSwxLDAsMCwxLTEtMVY2SDI4Ljg2YS45Mi45MiwwLDAsMS0xLS45LDEsMSwwLDAsMSwxLTFIMzNhMSwxLDAsMCwxLDEsMVYxNUExLDEsMCwwLDEsMzMsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJN'@; put 'MjQsMTFIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LDE1SDIxYTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yNCwxOUgxOGExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjQsMjdIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwy'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTI0LDIzSDIxQTEsMSwwLDEsMSwyMSwyMUgyNEExLDEsMCwxLDEsMjQsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz4nKSxGLkNsclNoYXBlQ3Jv'@; put 'c3NoYWlycz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjlBMTEsMTEsMCwxLDEsMjksMTgsMTEsMTEsMCwwLDEsMTgsMjlaTTE4LDlhOSw5LDAsMSwwLDksOUE5LDksMCwwLDAsMTgsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo'@; put 'IGQ9Ik0xOCwyM2E1LDUsMCwxLDEsNS01QTUsNSwwLDAsMSwxOCwyM1ptMC04YTMsMywwLDEsMCwzLDNBMywzLDAsMCwwLDE4LDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LDlhMSwxLDAsMCwxLTEtMVYyLjhhMSwxLDAsMCwx'@; put 'LDIsMFY4QTEsMSwwLDAsMSwxOCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE4LDM0YTEsMSwwLDAsMS0xLTFWMjhhMSwxLDAsMCwxLDIsMHY1QTEsMSwwLDAsMSwxOCwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik04LDE5SDMuMTdhMSwxLDAsMCwxLDAtMkg4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuMSwxOUgyOGExLDEsMCwwLDEsMC0yaDUuMWExLDEsMCwwLDEsMCwy'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksRi5DbHJTaGFwZUNpcmNsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQs'@; put 'MTQsMCwwLDAsMTgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksRi5DbHJT'@; put 'aGFwZURvdENpcmNsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTFhNyw3LDAsMSwxLTcsNyw3LDcsMCwwLDEsNy03IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCww'@; put 'LDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVCZXRhPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjIxLDE0LjA3aDNhMS42MSwxLjYx'@; put 'LDAsMCwxLDEuODEsMS41LDEuNDQsMS40NCwwLDAsMS0uODQsMS4zNCwxLjY3LDEuNjcsMCwwLDEsMS4xLDEuNTMsMS43NSwxLjc1LDAsMCwxLTIsMS42M0g3LjIxWm0yLjcxLDIuNDJjLjQ4LDAsLjgyLS4yOC44Mi0uNjdzLS4zNC0uNjUtLjgyLS42NUg4LjQ5djEuMzJabS4yLDIuNDhhLjc1'@; put 'Ljc1LDAsMSwwLDAtMS40N0g4LjQ5VjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE0LjU1LDE1LjIzdjEuMmgzdjEuMTZoLTN2MS4zMmgzLjMzdjEuMTZIMTMuMjZ2LTZoNC42MnYxLjE2WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIwLjQxLDE1LjIzSDE4LjU0VjE0LjA3aDV2MS4xNkgyMS43djQuODRIMjAuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjgsMTkuMTJIMjUuMzJsLS4z'@; put 'OC45NUgyMy41bDIuNDQtNmgxLjQ0bDIuNDUsNkgyOC4zOFpNMjcuNTUsMThsLS44OS0yLjE5TDI1Ljc3LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTguMDYsMzBhLjg0Ljg0LDAsMCwxLS4zOC0uMDhBMSwxLDAsMCwxLDcu'@; put 'MDYsMjlWMjVoLTRhMSwxLDAsMCwxLTEtMVYxMGExLDEsMCwwLDEsMS0xaDMwYTEsMSwwLDAsMSwxLDFWMjRhMSwxLDAsMCwxLTEsMUgxMy40OEw4Ljc3LDI5LjcxQTEsMSwwLDAsMSw4LjA2LDMwWm0tNC03aDRhMSwxLDAsMCwxLDEsMXYyLjU5bDMuMy0zLjNhMSwxLDAsMCwxLC43LS4yOWgx'@; put 'OVYxMWgtMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuXG4gIDxwb2x5Z29uIHBvaW50cz0iMjUuOCwxOCAyNy41LDE4IDI2LjcsMTUuOCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuXHQ8cGF0aCBkPSJNMTAuNCwx'@; put 'Ny41Yy0wLjEsMC0wLjIsMC0wLjMsMEg4LjVWMTlsMS42LDBjMC40LDAuMSwwLjgtMC4yLDAuOS0wLjZDMTEuMSwxOCwxMC44LDE3LjYsMTAuNCwxNy41eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuXHQ8cGF0aCBkPSJNMTAuNywxNS44YzAtMC40LTAuMy0w'@; put 'LjctMC44LTAuN0g4LjV2MS4zaDEuNEMxMC40LDE2LjUsMTAuNywxNi4yLDEwLjcsMTUuOHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cblx0PHBhdGggZD0iTTMzLjEsOWgtMzBjLTAuNiwwLTEsMC40LTEsMXYxNGMwLDAuNiwwLjQsMSwxLDFoNHY0YzAsMC40'@; put 'LDAuMiwwLjgsMC42LDAuOUM3LjgsMzAsNy45LDMwLDguMSwzMGMwLjMsMCwwLjUtMC4xLDAuNy0wLjNcblx0XHRsNC43LTQuN2gxOS42YzAuNiwwLDEtMC40LDEtMVYxMEMzNC4xLDkuNCwzMy42LDksMzMuMSw5eiBNMTAuNCwyMC4xYy0wLjEsMC0wLjEsMC0wLjIsMEg3LjJ2LTZoM2MwLjkt'@; put 'MC4xLDEuNywwLjUsMS44LDEuNFxuXHRcdGMwLDAsMCwwLjEsMCwwLjFjMCwwLjYtMC4zLDEuMS0wLjgsMS4zYzAuNiwwLjIsMS4xLDAuOCwxLjEsMS41QzEyLjIsMTkuNCwxMS40LDIwLjEsMTAuNCwyMC4xeiBNMTcuOSwxNS4yaC0zLjN2MS4yaDN2MS4yaC0zdjEuM1xuXHRcdGgzLjN2MS4y'@; put 'aC00LjZ2LTZoNC42VjE1LjJ6IE0yMS43LDIwLjFoLTEuM3YtNC44aC0xLjl2LTEuMmg1djEuMmgtMS44VjIwLjF6IE0yOC40LDIwLjFsLTAuNC0xaC0yLjdsLTAuNCwxaC0xLjRsMi40LTZoMS40bDIuNSw2XG5cdFx0SDI4LjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC00Ii8+XG4nKSxGLkNsclNoYXBlRmlyc3RBaWQ9KDAsbS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDIzLjkxVjQuNUEyLjUsMi41LDAsMCwwLDIxLjQxLDJoLTdhMi41LDIuNSwwLDAsMC0yLjUsMi41VjZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwy'@; put 'LDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xMy45MSw0LjVhLjUuNSwwLDAsMSwuNS0uNWg3YS41LjUsMCwwLDEsLjUuNVY2aC04Wk00LDI4VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjAuMTUsMjUuMkgx'@; put 'Ni43NGExLjMsMS4zLDAsMCwxLTEuMy0xLjNWMjEuMmgtMi43YTEuMywxLjMsMCwwLDEtMS4zLTEuM1YxNi41YTEuMywxLjMsMCwwLDEsMS4zLTEuM2gyLjdWMTIuNWExLjMsMS4zLDAsMCwxLDEuMy0xLjNoMy40MWExLjMsMS4zLDAsMCwxLDEuMjksMS4zdjIuN2gyLjcxYTEuMywxLjMsMCww'@; put 'LDEsMS4yOSwxLjN2My40YTEuMywxLjMsMCwwLDEtMS4yOSwxLjNIMjEuNDR2Mi43QTEuMywxLjMsMCwwLDEsMjAuMTUsMjUuMlpNMTcsMjMuNmgyLjgxdi00aDRWMTYuOGgtNHYtNEgxN3Y0SDEzdjIuOGg0Wm03LjExLTYuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yIi8+XG5cbiAgPHBhdGggZD0iTTMyLDZIMjMuOTFWNC41QTIuNSwyLjUsMCwwLDAsMjEuNDEsMmgtN2EyLjUsMi41LDAsMCwwLTIuNSwyLjVWNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEzLjkxLDQu'@; put 'NWEuNS41LDAsMCwxLC41LS41aDdhLjUuNSwwLDAsMSwuNS41VjZoLThaTTI0LjY0LDE5LjlhLjUuNSwwLDAsMS0uNS41aC0zLjV2My41YS41LjUsMCwwLDEtLjUuNWgtMy40YS41LjUsMCwwLDEtLjUtLjVWMjAuNGgtMy41YS41LjUsMCwwLDEtLjUtLjVWMTYuNWEuNS41LDAsMCwxLC41LS41'@; put 'aDMuNVYxMi41YS41LjUsMCwwLDEsLjUtLjVoMy40YS41LjUsMCwwLDEsLjUuNVYxNmgzLjVhLjUuNSwwLDAsMSwuNS41WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAnKSxGLkNsclNoYXBlQ29sb3JQYWxldHRlPSgwLG0uY2xySWNvblNWRykoJzxwYXRo'@; put 'IGQ9Ik0yMS41NCwyMy4wNWEzLjIyLDMuMjIsMCwwLDEtMy0xLjc3QTMuMDUsMy4wNSwwLDAsMSwxOC41LDE5YTMuNzQsMy43NCwwLDAsMSwxLjk1LTIuMDZBMy40LDMuNCwwLDAsMSwyNSwxOC4zYTMsMywwLDAsMSwuMDgsMi4zMiwzLjY5LDMuNjksMCwwLDEtMiwyLjA3QTMuODUsMy44NSww'@; put 'LDAsMSwyMS41NCwyMy4wNVptLjU0LTQuOTFhMi40MSwyLjQxLDAsMCwwLTEsLjIxaDBBMi4xMywyLjEzLDAsMCwwLDIwLDE5LjUxYTEuMzcsMS4zNywwLDAsMCwwLDEuMDksMS44MSwxLjgxLDAsMCwwLDIuNDUuNjMsMi4xLDIuMSwwLDAsMCwxLjEyLTEuMTUsMS40LDEuNCwwLDAsMCwwLTEu'@; put 'MUExLjU5LDEuNTksMCwwLDAsMjIuMDgsMTguMTRabS0xLjI5LS41MmgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE2LjE5LDMzLjg3QTEzLjcyLDEzLjcyLDAsMCwxLDYuNCwzMCwxMy44NiwxMy44NiwwLDAsMSwyLDIwYzAt'@; put 'NC40LDItOC44NCw1LjY4LTEyLjVhMTguMiwxOC4yLDAsMCwxLDEzLjEtNS4zN2guMTJjMy4zMywwLDYuODUsMS40OSw3LjI0LDQuNzMuMjEsMS43Ny0uNTksMy40Ny0xLjI5LDUtLjU1LDEuMTctMS4xMSwyLjM5LS43MiwyLjgxczEsLjEyLDIuMDktLjJhNi4yNyw2LjI3LDAsMCwxLDMuMzgt'@; put 'LjM2LDMsMywwLDAsMSwxLjg3LDEuNTZjLjk0LDEuODMuNDcsNC42Ny0uMjMsNi41NGgwQTE3LjM4LDE3LjM4LDAsMCwxLDI5LDI4Ljc0LDE5LjQzLDE5LjQzLDAsMCwxLDE2LjE5LDMzLjg3Wk0yMC43OCw0LjE2QTE2LjIyLDE2LjIyLDAsMCwwLDkuMDksOUM1Ljc5LDEyLjIzLDQsMTYuMTYs'@; put 'NCwyMEExMS45MiwxMS45MiwwLDAsMCw3LjgsMjguNmM1LjM4LDUuMjUsMTQuNjIsMy41NSwxOS44Ny0xLjMzYTE1LjUyLDE1LjUyLDAsMCwwLDMuNy01Ljc1aDBjLjctMS45Ljg0LTMuOTIuMzItNC45MmExLDEsMCwwLDAtLjYxLS41NSw0Ljg2LDQuODYsMCwwLDAtMi4yOS4zNWMtMS4zMS4z'@; put 'OS0zLC44OS00LjEyLS4zNS0xLjMyLTEuNC0uNDYtMy4yNS4zNy01YTcuOTMsNy45MywwLDAsMCwxLjExLTMuOWMtLjI0LTItMi44MS0yLjk1LTUuMjYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMy44NywyNi42NUEyLjU5'@; put 'LDIuNTksMCwwLDAsMjIuMzUsMjVMMjIsMjQuOWwtLjQ2LDEuNTMuMTYsMGExLDEsMCwwLDEsLjYuNjFjLjE3LjYtLjQxLDEuMzEtMS4yNiwxLjU1cy0xLjcxLS4wNy0xLjg4LS42NmwtMS41NC40M2gwYTIuODMsMi44MywwLDAsMCwyLjg0LDEuOTEsNCw0LDAsMCwwLDEtLjE0QTMsMywwLDAs'@; put 'MCwyMy44NywyNi42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0xNS4wNywyNS41OWgwYTIuNzMsMi43MywwLDAsMC0yLjI0LTEuODRsLS4yNywxLjU4YTEuMTIsMS4xMiwwLDAsMSwxLC43Yy4xNy41OS0uNDEsMS4zLTEuMjYs'@; put 'MS41NEExLjkyLDEuOTIsMCwwLDEsMTEsMjcuNTJhMSwxLDAsMCwxLS42LS42MXMwLS4wOSwwLS4xM2wtMS41OC4xNmEyLDIsMCwwLDAsLjA2LjQxQTIuNTksMi41OSwwLDAsMCwxMC4zNywyOWEzLjM2LDMuMzYsMCwwLDAsMS4zMS4yNSwzLjcsMy43LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwx'@; put 'NS4wNywyNS41OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xMC43OCwxOS4xN2EyLjU5LDIuNTksMCwwLDAtMS41Mi0xLjY1LDIuOTEsMi45MSwwLDAsMC0uNS0uMTZsLS4zNywxLjU2YTEuMjEsMS4yMSwwLDAsMSwuMjUuMDgs'@; put 'MSwxLDAsMCwxLC42LjZjLjE3LjYtLjQxLDEuMzEtMS4yNiwxLjU1cy0xLjcxLS4wNi0xLjg4LS42NmEuODYuODYsMCwwLDEsMC0uMzlsLTEuNTYtLjM0YTIuNCwyLjQsMCwwLDAsMCwxLjE2QTIuODMsMi44MywwLDAsMCw3LjQsMjIuODNhNCw0LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwxMC43'@; put 'OCwxOS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMy40NSwxMS40YTIuNTksMi41OSwwLDAsMC0xLjUyLTEuNjUsMS4xNywxLjE3LDAsMCwwLS4yLS4wNmwtLjUyLDEuNTFhLjM4LjM4LDAsMCwxLC4xLDAsMSwxLDAsMCwx'@; put 'LC42LjZjLjE3LjYtLjQxLDEuMzEtMS4yNiwxLjU1YTIuMDYsMi4wNiwwLDAsMS0xLjI4LS4wNSwxLDEsMCwwLDEtLjYtLjYxLjg1Ljg1LDAsMCwxLDAtLjMybC0xLjU4LS4xOWEyLjMsMi4zLDAsMCwwLC4wNi45NEEyLjU2LDIuNTYsMCwwLDAsOC43NSwxNC44YTMuMzcsMy4zNywwLDAsMCwx'@; put 'LjMxLjI2LDQsNCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTMuNDUsMTEuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gIDxwYXRoIGQ9Ik0yMSw2Ljc4YTIuNTYsMi41NiwwLDAsMC0xLjUyLTEuNjVsLS4zLS4xTDE4LjcsNi41NmwuMTUsMGExLDEs'@; put 'MCwwLDEsLjYuNjFjLjE3LjYtLjQxLDEuMy0xLjI2LDEuNTRzLTEuNzEtLjA2LTEuODgtLjY1YS45LjksMCwwLDEsLjA2LS41OEwxNC44OSw2LjlhMi40NywyLjQ3LDAsMCwwLS4xMiwxLjYzLDIuODQsMi44NCwwLDAsMCwyLjg0LDEuOTEsMy41OCwzLjU4LDAsMCwwLDEtLjE1QTMsMywwLDAs'@; put 'MCwyMSw2Ljc4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cblxuICA8cGF0aCBkPSJNMzIuMjMsMTQuODljLTIuMS0uNTYtNC45MywxLjgtNi4zNC4zLTEuNzEtMS44MiwyLjI3LTUuNTMsMS44Ni04LjkyLS4zMy0yLjc4LTMuNTEtNC4wOC02LjY2LTQu'@; put 'MUExOC41LDE4LjUsMCwwLDAsNy43NCw3LjU5Yy02LjY0LDYuNTktOC4wNywxNi0xLjM3LDIyLjQ4LDYuMjEsNiwxNi42MSw0LjIzLDIyLjY3LTEuNGExNy43MywxNy43MywwLDAsMCw0LjIyLTYuNTRDMzQuMzQsMTkuMjMsMzQuNDQsMTUuNDksMzIuMjMsMTQuODlaTTkuNCwxMC41N2EyLjIz'@; put 'LDIuMjMsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgxLDIuNTNBMi4yMiwyLjIyLDAsMCwxLDcuNTksMTMuMSwyLjIzLDIuMjMsMCwwLDEsOS40LDEwLjU3Wk01LjA3LDIwLjgyYTIuMjIsMi4yMiwwLDAsMSwxLjgyLTIuNTNBMi4yMiwyLjIyLDAsMCwxLDkuNzUsMTkuNSwy'@; put 'LjIzLDIuMjMsMCwwLDEsNy45NCwyMiwyLjI0LDIuMjQsMCwwLDEsNS4wNywyMC44MlptNyw4LjMzYTIuMjIsMi4yMiwwLDAsMS0yLjg3LTEuMjFBMi4yMywyLjIzLDAsMCwxLDExLDI1LjQxYTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDEyLDI5LjE1Wk0xNSw4'@; put 'LjI2YTIuMjMsMi4yMywwLDAsMSwxLjgxLTIuNTMsMi4yNCwyLjI0LDAsMCwxLDIuODcsMS4yMSwyLjIyLDIuMjIsMCwwLDEtMS44MiwyLjUzQTIuMjEsMi4yMSwwLDAsMSwxNSw4LjI2Wm01LjgyLDIyLjE5YTIuMjIsMi4yMiwwLDAsMS0yLjg3LTEuMjEsMi4yMywyLjIzLDAsMCwxLDEuODEt'@; put 'Mi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxQTIuMjIsMi4yMiwwLDAsMSwyMC43OCwzMC40NVptNS0xMC40NmEzLjIsMy4yLDAsMCwxLTEuNjksMS43NiwzLjUzLDMuNTMsMCwwLDEtMS40LjMsMi43OCwyLjc4LDAsMCwxLTIuNTYtMS41LDIuNDksMi40OSwwLDAsMS0uMDctMiwzLjIs'@; put 'My4yLDAsMCwxLDEuNjktMS43NiwzLDMsMCwwLDEsNCwxLjJBMi41NCwyLjU0LDAsMCwxLDI1Ljc5LDIwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEYuRXNzZW50aWFsU2hhcGVzPXsiYWRkLXRleHQiOkYuQ2xyU2hhcGVBZGRUZXh0LCJhbGFybS1vZmYi'@; put 'OkYuQ2xyU2hhcGVBbGFybU9mZixwaW5ib2FyZDpGLkNsclNoYXBlUGluYm9hcmQsbmV3OkYuQ2xyU2hhcGVOZXcsImJ1YmJsZS1leGNsYW1hdGlvbiI6Ri5DbHJTaGFwZUJ1YmJsZUV4Y2xhbWF0aW9uLCJncmlkLXZpZXciOkYuQ2xyU2hhcGVHcmlkVmlldywiY3Vyc29yLWFycm93IjpGLkNs'@; put 'clNoYXBlQ3Vyc29yQXJyb3csImN1cnNvci1oYW5kIjpGLkNsclNoYXBlQ3Vyc29ySGFuZCwiY3Vyc29yLWhhbmQtY2xpY2siOkYuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2ssImN1cnNvci1oYW5kLWdyYWIiOkYuQ2xyU2hhcGVDdXJzb3JIYW5kR3JhYiwiY3Vyc29yLWhhbmQtb3BlbiI6Ri5D'@; put 'bHJTaGFwZUN1cnNvckhhbmRPcGVuLCJjdXJzb3ItbW92ZSI6Ri5DbHJTaGFwZUN1cnNvck1vdmUsImZpcnN0LWFpZCI6Ri5DbHJTaGFwZUZpcnN0QWlkLHJlc2l6ZTpGLkNsclNoYXBlUmVzaXplLG9iamVjdHM6Ri5DbHJTaGFwZU9iamVjdHMsYm9vazpGLkNsclNoYXBlQm9vayxhc3Rlcmlz'@; put 'azpGLkNsclNoYXBlQXN0ZXJpc2ssYnVnOkYuQ2xyU2hhcGVCdWcsc2Npc3NvcnM6Ri5DbHJTaGFwZVNjaXNzb3JzLHRoZXJtb21ldGVyOkYuQ2xyU2hhcGVUaGVybW9tZXRlcixwZW5jaWw6Ri5DbHJTaGFwZVBlbmNpbCxub3RlOkYuQ2xyU2hhcGVOb3RlLHJlZnJlc2g6Ri5DbHJTaGFwZVJl'@; put 'ZnJlc2gsc3luYzpGLkNsclNoYXBlU3luYywidmlldy1saXN0IjpGLkNsclNoYXBlVmlld0xpc3QsInZpZXctY2FyZHMiOkYuQ2xyU2hhcGVWaWV3Q2FyZHMsInRyZWUtdmlldyI6Ri5DbHJTaGFwZVRyZWVWaWV3LGxpZ2h0YnVsYjpGLkNsclNoYXBlTGlnaHRidWxiLGRvd25sb2FkOkYuQ2xy'@; put 'U2hhcGVEb3dubG9hZCx1cGxvYWQ6Ri5DbHJTaGFwZVVwbG9hZCxsb2NrOkYuQ2xyU2hhcGVMb2NrLHVubG9jazpGLkNsclNoYXBlVW5sb2NrLHVzZXJzOkYuQ2xyU2hhcGVVc2VycywicG9wLW91dCI6Ri5DbHJTaGFwZVBvcE91dCxmaWx0ZXI6Ri5DbHJTaGFwZUZpbHRlcixwaW46Ri5DbHJT'@; put 'aGFwZVBpbixmaWxlOkYuQ2xyU2hhcGVGaWxlLHBsdXM6Ri5DbHJTaGFwZVBsdXMsbWludXM6Ri5DbHJTaGFwZU1pbnVzLCJtaW51cy1jaXJjbGUiOkYuQ2xyU2hhcGVNaW51c0NpcmNsZSwicGx1cy1jaXJjbGUiOkYuQ2xyU2hhcGVQbHVzQ2lyY2xlLGJhbjpGLkNsclNoYXBlQmFuLCJ0aW1l'@; put 'cy1jaXJjbGUiOkYuQ2xyU2hhcGVUaW1lc0NpcmNsZSx0cmFzaDpGLkNsclNoYXBlVHJhc2gsY2lyY2xlOkYuQ2xyU2hhcGVDaXJjbGUsdGFnOkYuQ2xyU2hhcGVUYWcsdGFnczpGLkNsclNoYXBlVGFncyxoaXN0b3J5OkYuQ2xyU2hhcGVIaXN0b3J5LGNsb2NrOkYuQ2xyU2hhcGVDbG9jaywi'@; put 'YWxhcm0tY2xvY2siOkYuQ2xyU2hhcGVBbGFybUNsb2NrLGFycm93OmxlLkNsclNoYXBlQXJyb3csImNpcmNsZS1hcnJvdyI6Ri5DbHJTaGFwZUNpcmNsZUFycm93LCJjaGlsZC1hcnJvdyI6Ri5DbHJTaGFwZUNoaWxkQXJyb3csY29weTpGLkNsclNoYXBlQ29weSxoZWxwOkYuQ2xyU2hhcGVI'@; put 'ZWxwLGxvZ2luOkYuQ2xyU2hhcGVMb2dpbixsb2dvdXQ6Ri5DbHJTaGFwZUxvZ291dCxwcmludGVyOkYuQ2xyU2hhcGVQcmludGVyLHdvcmxkOkYuQ2xyU2hhcGVXb3JsZCxzbGlkZXI6Ri5DbHJTaGFwZVNsaWRlcixjbGlwYm9hcmQ6Ri5DbHJTaGFwZUNsaXBib2FyZCxmaXJld2FsbDpGLkNs'@; put 'clNoYXBlRmlyZXdhbGwsbGlzdDpGLkNsclNoYXBlTGlzdCxyZWRvOkYuQ2xyU2hhcGVSZWRvLHVuZG86Ri5DbHJTaGFwZVVuZG8sc2Nyb2xsOkYuQ2xyU2hhcGVTY3JvbGwsImZpbGUtc2V0dGluZ3MiOkYuQ2xyU2hhcGVGaWxlU2V0dGluZ3MsInR3by13YXktYXJyb3dzIjpGLkNsclNoYXBl'@; put 'VHdvV2F5QXJyb3dzLHN3aXRjaDpGLkNsclNoYXBlU3dpdGNoLHRvb2xzOkYuQ2xyU2hhcGVUb29scywid2luZG93LWNsb3NlIjpGLkNsclNoYXBlV2luZG93Q2xvc2UsIndpbmRvdy1tYXgiOkYuQ2xyU2hhcGVXaW5kb3dNYXgsIndpbmRvdy1taW4iOkYuQ2xyU2hhcGVXaW5kb3dNaW4sIndp'@; put 'bmRvdy1yZXN0b3JlIjpGLkNsclNoYXBlV2luZG93UmVzdG9yZSwiem9vbS1pbiI6Ri5DbHJTaGFwZVpvb21Jbiwiem9vbS1vdXQiOkYuQ2xyU2hhcGVab29tT3V0LGtleTpGLkNsclNoYXBlS2V5LGxpYnJhcnk6Ri5DbHJTaGFwZUxpYnJhcnksYm9sdDpGLkNsclNoYXBlQm9sdCx3cmVuY2g6'@; put 'Ri5DbHJTaGFwZVdyZW5jaCxidWxsc2V5ZTpGLkNsclNoYXBlQnVsbHNleWUsdGFyZ2V0OkYuQ2xyU2hhcGVUYXJnZXQsZmxhbWU6Ri5DbHJTaGFwZUZsYW1lLGhvdXJnbGFzczpGLkNsclNoYXBlSG91cmdsYXNzLCJuby1hY2Nlc3MiOkYuQ2xyU2hhcGVOb0FjY2Vzcyxvcmdhbml6YXRpb246'@; put 'Ri5DbHJTaGFwZU9yZ2FuaXphdGlvbixiYWxhbmNlOkYuQ2xyU2hhcGVCYWxhbmNlLCJpZC1iYWRnZSI6Ri5DbHJTaGFwZUlkQmFkZ2UscmVwZWF0OkYuQ2xyU2hhcGVSZXBlYXQsImZpbGUtZ3JvdXAiOkYuQ2xyU2hhcGVGaWxlR3JvdXAscGFwZXJjbGlwOkYuQ2xyU2hhcGVQYXBlcmNsaXAs'@; put 'c2hyaW5rOkYuQ2xyU2hhcGVTaHJpbmssImFjY2Vzc2liaWxpdHktMSI6Ri5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxLCJhY2Nlc3NpYmlsaXR5LTIiOkYuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Miwic29ydC1ieSI6Ri5DbHJTaGFwZVNvcnRCeSwiY29sbGFwc2UtY2FyZCI6Ri5DbHJTaGFwZUNv'@; put 'bGxhcHNlQ2FyZCwiZXhwYW5kLWNhcmQiOkYuQ2xyU2hhcGVFeHBhbmRDYXJkLGJyaWVmY2FzZTpGLkNsclNoYXBlQnJpZWZjYXNlLCJjb2xvci1waWNrZXIiOkYuQ2xyU2hhcGVDb2xvclBpY2tlciwiY29weS10by1jbGlwYm9hcmQiOkYuQ2xyU2hhcGVDb3B5VG9DbGlwYm9hcmQsImZpbHRl'@; put 'ci0yIjpGLkNsclNoYXBlRmlsdGVyMiwiZHJhZy1oYW5kbGUiOkYuQ2xyU2hhcGVEcmFnSGFuZGxlLG1vb246Ri5DbHJTaGFwZU1vb24sc3VuOkYuQ2xyU2hhcGVTdW4sd2FuZDpGLkNsclNoYXBlV2FuZCxjbG9uZTpGLkNsclNoYXBlQ2xvbmUsZGV0YWlsczpGLkNsclNoYXBlRGV0YWlscywi'@; put 'ZHJhZy1oYW5kbGUtY29ybmVyIjpGLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcixlcmFzZXI6Ri5DbHJTaGFwZUVyYXNlcixsYW5kc2NhcGU6Ri5DbHJTaGFwZUxhbmRzY2FwZSxwYXN0ZTpGLkNsclNoYXBlUGFzdGUscG9ydHJhaXQ6Ri5DbHJTaGFwZVBvcnRyYWl0LCJmaWxlLXppcCI6Ri5D'@; put 'bHJTaGFwZUZpbGVaaXAsImZpbHRlci1vZmYiOkYuQ2xyU2hhcGVGaWx0ZXJPZmYscmVjeWNsZTpGLkNsclNoYXBlUmVjeWNsZSx0cmVlOkYuQ2xyU2hhcGVUcmVlLGZpc2g6Ri5DbHJTaGFwZUZpc2gsZm9ybTpGLkNsclNoYXBlRm9ybSxmdWVsOkYuQ2xyU2hhcGVGdWVsLHNub3dmbGFrZTpG'@; put 'LkNsclNoYXBlU25vd2ZsYWtlLHRhYmxlOkYuQ2xyU2hhcGVUYWJsZSwiZG90LWNpcmNsZSI6Ri5DbHJTaGFwZURvdENpcmNsZSx2b2x1bWU6Ri5DbHJTaGFwZVZvbHVtZSxjcm9zc2hhaXJzOkYuQ2xyU2hhcGVDcm9zc2hhaXJzLGJldGE6Ri5DbHJTaGFwZUJldGEsImNvbG9yLXBhbGV0dGUi'@; put 'OkYuQ2xyU2hhcGVDb2xvclBhbGV0dGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkVzc2VudGlhbFNoYXBlcywiZWRpdCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlcy5wZW5jaWwpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsIm5v'@; put 'dGUtZWRpdCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlcy5ub3RlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuRXNzZW50aWFsU2hhcGVzLCJncm91cCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlcy51c2VycykpLE9iamVjdC5kZWZp'@; put 'bmVQcm9wZXJ0eShGLkVzc2VudGlhbFNoYXBlcywiZG9jdW1lbnQiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Fc3NlbnRpYWxTaGFwZXMuZmlsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkVzc2VudGlhbFNoYXBlcywiYWRkIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuRXNzZW50'@; put 'aWFsU2hhcGVzLnBsdXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsImNhbmNlbCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlcy5iYW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsInJlbW92ZSIsKDAs'@; put 'eC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlc1sidGltZXMtY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsInNpZ24taW4iLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Fc3NlbnRpYWxTaGFwZXMubG9naW4pKSxPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsInNpZ24tb3V0IiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuRXNzZW50aWFsU2hhcGVzLmxvZ291dCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkVzc2VudGlhbFNoYXBlcywibGlnaHRuaW5nIiwoMCx4LmRlc2NyaXB0b3JDb25maWcp'@; put 'KEYuRXNzZW50aWFsU2hhcGVzLmJvbHQpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsImZsb3ctY2hhcnQiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Fc3NlbnRpYWxTaGFwZXMub3JnYW5pemF0aW9uKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuRXNzZW50'@; put 'aWFsU2hhcGVzLCJhbGVydCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlc1siYnViYmxlLWV4Y2xhbWF0aW9uIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsInBpbm5lZCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlh'@; put 'bFNoYXBlcy5waW5ib2FyZCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVudCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMs'@; put 'ImF0dGFjaG1lbnQiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5Fc3NlbnRpYWxTaGFwZXMucGFwZXJjbGlwKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuRXNzZW50aWFsU2hhcGVzLCJyZXNpemUtZG93biIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlcy5zaHJp'@; put 'bmspKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS11cCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLkVzc2VudGlhbFNoYXBlcy5yZXNpemUpKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYm'@; put 'd2luZG93LkNsYXJpdHlJY29ucy5hZGQoRi5Fc3NlbnRpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAg'@; put 'ICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9tZWRpYS1zaGFwZXMudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlv'@; put 'bihJZSxGLGFlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEYuTWVkaWFTaGFwZXM9Ri5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlPUYuQ2xyU2hhcGVNaWNyb3Bob25lPUYuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9Ri5DbHJTaGFw'@; put 'ZVJlcGxheU9uZT1GLkNsclNoYXBlUmVwbGF5QWxsPUYuQ2xyU2hhcGVJbWFnZUdhbGxlcnk9Ri5DbHJTaGFwZU11c2ljTm90ZT1GLkNsclNoYXBlRmlsbVN0cmlwPUYuQ2xyU2hhcGVIZWFkcGhvbmVzPUYuQ2xyU2hhcGVWb2x1bWVNdXRlPUYuQ2xyU2hhcGVWb2x1bWVVcD1GLkNsclNoYXBl'@; put 'Vm9sdW1lRG93bj1GLkNsclNoYXBlU2h1ZmZsZT1GLkNsclNoYXBlVmlkZW9DYW1lcmE9Ri5DbHJTaGFwZUNhbWVyYT1GLkNsclNoYXBlRmFzdEZvcndhcmQ9Ri5DbHJTaGFwZVJld2luZD1GLkNsclNoYXBlUG93ZXI9Ri5DbHJTaGFwZVN0b3A9Ri5DbHJTaGFwZVN0ZXBGb3J3YXJkPUYuQ2xy'@; put 'U2hhcGVQYXVzZT1GLkNsclNoYXBlUGxheT12b2lkIDA7dmFyIHg9YWUoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtGLkNsclNoYXBlUGxheT0oMCx4LmNsckljb25TVkcpKCc8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguMDcsMzEuNkEyLjA3LDIuMDcsMCwwLDEsNiwyOS41M1Y2LjMyQTIuMDcsMi4wNywwLDAsMSw5LDQuNDdMMzIuMjEsMTYuMDhhMi4wNywyLjA3LDAsMCwxLDAsMy43TDksMzEuMzhBMi4wNiwyLjA2LDAs'@; put 'MCwxLDguMDcsMzEuNlptMC0yNS4zNEw4LDYuMzJWMjkuNTNsLjEuMDZMMzEuMzEsMThhLjA2LjA2LDAsMCwwLDAtLjA2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4xNiwxNi4wOCw4Ljk0LDQuNDdBMi4w'@; put 'NywyLjA3LDAsMCwwLDYsNi4zMlYyOS41M2EyLjA2LDIuMDYsMCwwLDAsMywxLjg1TDMyLjE2LDE5Ljc3YTIuMDcsMi4wNywwLDAsMCwwLTMuN1oiLz4nKSxGLkNsclNoYXBlUGF1c2U9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEiIGQ9Ik0xMi45MywzMkg2LjA3QTIuMDcsMi4wNywwLDAsMSw0LDI5LjkzVjYuMDdBMi4wNywyLjA3LDAsMCwxLDYuMDcsNGg2Ljg3QTIuMDcsMi4wNywwLDAsMSwxNSw2LjA3VjI5LjkzQTIuMDcsMi4wNywwLDAsMSwxMi45MywzMlpNMTMsNkg2VjMwaDdaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOS45MywzMkgyMy4wN0EyLjA3LDIuMDcsMCwwLDEsMjEsMjkuOTNWNi4wN0EyLjA3LDIuMDcsMCwwLDEsMjMuMDcsNGg2Ljg3QTIuMDcsMi4wNywwLDAsMSwzMiw2LjA3VjI5LjkzQTIu'@; put 'MDcsMi4wNywwLDAsMSwyOS45MywzMlpNMzAsNkgyM1YzMGg3WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHg9IjMuOTUiIHk9IjQiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyOCIgcng9IjIuMDciIHJ5PSIyLjA3Ii8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgeD0iMjAuOTUiIHk9IjQiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyOCIgcng9IjIuMDciIHJ5PSIyLjA3Ii8+JyksRi5DbHJTaGFwZVN0ZXBGb3J3YXJkPSgwLHguY2xySWNvblNWRykoJzxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNNSwzMi4yM2EyLDIsMCwwLDEtMi0yVjUuNzdBMiwyLDAsMCwxLDYuMTcsNC4xNEwyMy4yMywxNi4zOGEyLDIsMCwwLDEsMCwzLjI1aDBMNi4xNywzMS44NkEyLDIsMCwwLDEsNSwzMi4yM1pNNSw1Ljc3'@; put 'VjMwLjIzTDIyLjA3LDE4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzEsMzJIMjhhMiwyLDAsMCwxLTItMlY2YTIsMiwwLDAsMSwyLTJoM2EyLDIsMCwwLDEsMiwyVjMwQTIsMiwwLDAsMSwzMSwzMlpN'@; put 'MjgsNlYzMGgzVjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTUsMzEuOWEyLDIsMCwwLDEtMi0yVjUuNDRBMiwyLDAsMCwxLDYuMTIsMy44MUwyMy4xOCwxNmEyLDIsMCwwLDEsMCwzLjI1aDBMNi4xMiwzMS41'@; put 'MkEyLDIsMCwwLDEsNSwzMS45WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjI1Ljk1IiB5PSIzLjY3IiB3aWR0aD0iNyIgaGVpZ2h0PSIyOCIgcng9IjIiIHJ5PSIyIi8+JyksRi5DbHJTaGFwZVN0b3A9KDAseC5j'@; put 'bHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCwzMkg2YTIsMiwwLDAsMS0yLTJWNkEyLDIsMCwwLDEsNiw0SDMwYTIsMiwwLDAsMSwyLDJWMzBBMiwyLDAsMCwxLDMwLDMyWk02LDZWMzBIMzBWNloiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSIzLjk2IiB5PSI0IiB3aWR0aD0iMjcuOTkiIGhlaWdodD0iMjgiIHJ4PSIyIiByeT0iMiIvPicpLEYuQ2xyU2hhcGVQb3dlcj0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIxYTEsMSwwLDAsMS0xLTFWNGExLDEsMCwwLDEsMiwwVjIwQTEsMSwwLDAsMSwxOCwyMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4'@; put 'LDM0LjE1YTE1LDE1LDAsMCwxLTcuNTItMjgsMSwxLDAsMCwxLDEsMS43MywxMywxMywwLDEsMCwxMywwLDEsMSwwLDEsMSwxLTEuNzMsMTUsMTUsMCwwLDEtNy41MiwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE4LDIxYTEsMSwwLDAsMCwxLTFWNGExLDEsMCwwLDAtMiwwVjIwQTEsMSwwLDAsMCwxOCwyMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRl'@; put 'ZCIgZD0iTTMyLjUxLDE1LjRIMzAuNDRhMTMsMTMsMCwxLDEtMTktNy41LDEsMSwwLDAsMC0xLTEuNzNBMTUsMTUsMCwxLDAsMzMsMTkuMTUsMTQuOSwxNC45LDAsMCwwLDMyLjUxLDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwyMWExLDEsMCwwLDEtMS0xVjRhMSwxLDAsMCwxLDIsMFYyMEExLDEsMCwwLDEsMTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzAsMTMuNWwtLjMxLDBBMTMsMTMsMCwxLDEsMTEuNDgsNy45YTEsMSwwLDAsMC0xLTEuNzMsMTUsMTUsMCwxLDAsMjEuMzEsNy4xQTcuNDksNy40OSwwLDAsMSwzMCwxMy41'@; put 'WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptLjA2LDE3LjY4YTEuMjgsMS4yOCwwLDAsMS0xLjI5LTEuMjhWOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwVjE4LjRBMS4yOCwxLjI4LDAsMCwxLDE4LjA2LDE5LjY4Wk0x'@; put 'OCwyNy43OUE5Ljg4LDkuODgsMCwwLDEsMTIuMTcsOS44NWExLjQsMS40LDAsMCwxLDEuOTQuMzEsMS4zNywxLjM3LDAsMCwxLS4zMSwxLjkyLDcuMTgsNy4xOCwwLDEsMCwxMS40Myw1LjgsNy4wNyw3LjA3LDAsMCwwLTMtNS43NkExLjM3LDEuMzcsMCwwLDEsMjIsMTAuMmExLjQsMS40LDAs'@; put 'MCwxLDEuOTQtLjI5QTkuODgsOS44OCwwLDAsMSwxOCwyNy43OVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNGgtNkE5LjcsOS43LDAsMCwxLDI4LDE3Ljg5YTEw'@; put 'LDEwLDAsMSwxLTE1LjgzLTgsMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDgsNy4wOCwwLDAsMC0uNDUtMi40OUgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTR2NC40YTEuMjksMS4yOSwwLDAs'@; put 'MS0yLjU4LDBWOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwdi43MWwzLjc2LTYuNTFBMTYsMTYsMCwxLDAsMzQsMThhMTYsMTYsMCwwLDAtLjIzLTIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0t'@; put 'YWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMy41Ny0uOUE5LjgzLDkuODMsMCwwLDEsMjgsMTcuODlhMTAsMTAsMCwxLDEtMTUuODMtOCwxLjQsMS40LDAsMCwxLDEuOTQuMzEsMS4zNywx'@; put 'LjM3LDAsMCwxLS4zMSwxLjkyLDcuMTgsNy4xOCwwLDEsMCwxMS40Myw1LjgsNy4wNyw3LjA3LDAsMCwwLTMtNS43NkExLjM3LDEuMzcsMCwwLDEsMjIsMTAuMmExLjM4LDEuMzgsMCwwLDEsMS41Mi0uNDksNy40NSw3LjQ1LDAsMCwxLS4zLTYuODMsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5'@; put 'LjkzQTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk0xNi43Nyw4LjY1YTEuMjksMS4yOSwwLDAsMSwyLjU4LDBWMTguNGExLjI5LDEuMjksMCwwLDEtMi41OCwwWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y'@; put 'LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxGLkNsclNoYXBlUmV3aW5kPSgwLHguY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuMDksMzEuNThsLTE1LjMyLTEyYTIsMiwwLDAs'@; put 'MSwwLTMuMTVsMTUuMzItMTJhMS45MywxLjkzLDAsMCwxLDIuMDYtLjIyQTEuNzcsMS43NywwLDAsMSwyMCw2djYuN0wzMC44Myw0LjQyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkEyLDIsMCwwLDEsMzQsNlYzMGEyLDIsMCwwLDEtMS4xMSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4y'@; put 'MkwyMCwyMy4zMVYzMGExLjc3LDEuNzcsMCwwLDEtLjg1LDEuNzksMS45NCwxLjk0LDAsMCwxLTIuMDYtLjIyWk0zMiwzMGwuMDYtMjRMMTgsMTYuOFY2TDMsMTgsMTgsMzBWMTkuMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi'@; put 'IGQ9Ik0xNi45MiwzMS41OCwxLjYsMTkuNTdhMiwyLDAsMCwxLDAtMy4xNWwxNS4zMi0xMkExLjkzLDEuOTMsMCwwLDEsMTksNC4yLDEuODksMS44OSwwLDAsMSwyMCw2djYuN0wzMC42Niw0LjQyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkEyLDIsMCwwLDEsMzMuODMsNlYzMGEyLDIsMCww'@; put 'LDEtMS4xMSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMkwyMCwyMy4zMVYzMGExLjg5LDEuODksMCwwLDEtMSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMloiLz4nKSxGLkNsclNoYXBlRmFzdEZvcndhcmQ9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNy43NywzMS45MmEyLDIsMCwwLDEtLjg2LS4yQTEuODEsMS44MSwwLDAsMSwxNiwyOS45M3YtNi43TDUuMjQsMzEuNWExLjk0LDEuOTQsMCwwLDEtMi4wNi4yMiwyLDIsMCwwLDEtMS4xMS0xLjc5di0yNEEyLDIsMCwwLDEsMy4xOCw0'@; put 'LjEyYTEuOTMsMS45MywwLDAsMSwyLjA2LjIyTDE2LDEyLjYxVjUuOTFhMS44MSwxLjgxLDAsMCwxLC45MS0xLjc5QTEuOTMsMS45MywwLDAsMSwxOSw0LjM0bDE1LjMyLDEyYTIsMiwwLDAsMSwwLDMuMTVMMTksMzEuNUEyLDIsMCwwLDEsMTcuNzcsMzEuOTJabTAtMTIuOFYyOS45M2wxNS4y'@; put 'Ni0xMi0xNS4zMi0xMiwuMDYsMTAuODFMNCw1LjkxdjI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE3LjcxLDMyYTIsMiwwLDAsMS0uODYtLjJBMS43NywxLjc3LDAsMCwxLDE2LDMwdi02LjdMNS4xNywzMS41OGEx'@; put 'Ljk0LDEuOTQsMCwwLDEtMi4wNi4yMkEyLDIsMCwwLDEsMiwzMFY2QTIsMiwwLDAsMSwzLjExLDQuMmExLjkzLDEuOTMsMCwwLDEsMi4wNi4yMkwxNiwxMi42OVY2YTEuNzcsMS43NywwLDAsMSwuODUtMS43OSwxLjkzLDEuOTMsMCwwLDEsMi4wNi4yMmwxNS4zMiwxMmEyLDIsMCwwLDEsMCwz'@; put 'LjE1bC0xNS4zMiwxMkEyLDIsMCwwLDEsMTcuNzEsMzJaIi8+JyksRi5DbHJTaGFwZUNhbWVyYT0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsOEgyNC43TDIzLjY0LDUuMjhBMiwyLDAsMCwwLDIxLjc4LDRIMTQuMjJhMiwyLDAsMCwwLTEuODcsMS4yOEwxMS4zLDhINGEyLDIsMCww'@; put 'LDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCwyMkg0VjEwaDguNjdsMS41NS00aDcuNTZsMS41NSw0SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik05LDE5YTksOSwwLDEsMCw5LTlBOSw5LDAsMCwwLDksMTlabTE2LjQsMEE3LjQsNy40LDAsMSwxLDE4LDExLjYsNy40MSw3LjQxLDAsMCwxLDI1LjQsMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuMzcs'@; put 'MTIuODNhLjguOCwwLDAsMC0uOC0uOEg2LjE3YS44LjgsMCwwLDAsMCwxLjZoMi40QS44LjgsMCwwLDAsOS4zNywxMi44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuMzQsMTlhNS41Nyw1LjU3LDAsMCww'@; put 'LDMuMjQsNWwuODUtMS4zN2E0LDQsMCwxLDEsNC4xMS02LjYxbC44Ni0xLjM4QTUuNTYsNS41NiwwLDAsMCwxMi4zNCwxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsOEgyNC43TDIzLjY0LDUuMjhBMiwy'@; put 'LDAsMCwwLDIxLjc4LDRIMTQuMjJhMiwyLDAsMCwwLTEuODcsMS4yOEwxMS4zLDhINGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFpNNi4xNywxMy42M2EuOC44LDAsMCwxLDAtMS42aDIuNGEuOC44LDAsMCwxLDAsMS42'@; put 'Wk0xOCwyOGE5LDksMCwxLDEsOS05QTksOSwwLDAsMSwxOCwyOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS4xMSwxOS4wNmE3LjA3LDcuMDcsMCwwLDAsNC4xMSw2LjQxbDEuMDktMS43NGE1LDUsMCwxLDEsNS4y'@; put 'Mi04LjM5bDEuMDktMS43NmE3LjA2LDcuMDYsMCwwLDAtMTEuNTEsNS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxGLkNsclNoYXBlVmlkZW9DYW1lcmE9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIGQ9Ik0zNCwxMC4zNGEyLjExLDIuMTEsMCwwLDAtMS4xNi0xLjksMiwyLDAsMCwwLTIuMTMuMTVMMjYsMTEuNlY4YTIsMiwwLDAsMC0yLTJINmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjRhMiwyLDAsMCwwLDItMlYyNC40bDQuNjQsM2EyLjA3LDIuMDcs'@; put 'MCwwLDAsMi4yLjJBMi4xMSwyLjExLDAsMCwwLDM0LDI1LjY2Wk0zMS45MywyNS43N2MtLjA2LDAtLjExLDAtLjE5LS4wNkwyNCwyMC43N1YyOEg2YTIsMiwwLDAsMS0yLTJWMTBBMiwyLDAsMCwxLDYsOEgyNHY3LjIzbDcuOC01YS4xMS4xMSwwLDAsMSwuMTMsMCwuMTEuMTEsMCwwLDEsLjA3'@; put 'LjExVjI1LjY2QS4xMS4xMSwwLDAsMSwzMS45MywyNS43N1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zLDkuMzUsMjYsMTIuOVY4YTIsMiwwLDAsMC0yLTJINmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0'@; put 'LDRIMjRhMiwyLDAsMCwwLDItMlYyMy4wOGw2LjMsMy41NUExLjEsMS4xLDAsMCwwLDM0LDI1Ljc3VjEwLjJBMS4xLDEuMSwwLDAsMCwzMi4zLDkuMzVaIi8+JyksRi5DbHJTaGFwZVNodWZmbGU9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIGQ9Ik0yMS42MSwxMWg4LjYybC0zLjMsMy4zYTEsMSwwLDEsMCwxLjQxLDEuNDJMMzQsMTAuMDhsLS43MS0uNzFoMEwyOC4zNCw0LjQzYTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTEsOUgyMWExLDEsMCwwLDAtLjg2LjVMMTcuNSwxNC4wOWwxLjE2LDJaIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTExLjA3LDI1LjA3SDNhMSwxLDAsMCwwLDAsMmg4LjY1YTEsMSwwLDAsMCwuODYtLjVMMTUuMTgsMjIsMTQsMjBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTI4LjM0LDIwLjE3YTEsMSwwLDAsMC0xLjQxLDEuNDJsMy41LDMuNUgyMS42MUwxMi41MSw5LjUzYTEsMSwwLDAsMC0uODYtLjVIM2ExLDEsMCwxLDAsMCwyaDguMDdsOS4xLDE1LjU1YTEsMSwwLDAsMCwuODYuNUgyOS45bC0zLDNhMSwx'@; put 'LDAsMCwwLDEuNDEsMS40Mmw0Ljk1LTQuOTRoMGwuNzEtLjcxWiIvPicpLEYuQ2xyU2hhcGVWb2x1bWVEb3duPSgwLHguY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMTFhMSwxLDAsMCwxLS41NC0xLjg1'@; put 'LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43M0E4LjIxLDguMjEsMCwwLDEsMjMuOTQsMjUsMSwxLDAsMCwxLDIzLjQxLDI1LjExWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwz'@; put 'MmEyLDIsMCwwLDEtMS40Mi0uNTlMOS4xNCwyNEg0YTIsMiwwLDAsMS0yLTJWMTRhMiwyLDAsMCwxLDItMkg5LjIybDcuMzMtNy40MUEyLDIsMCwwLDEsMjAsNlYzMGEyLDIsMCwwLDEtMS4yNCwxLjg1QTIsMiwwLDAsMSwxOCwzMlpNNCwxNHY4SDkuNTZhMSwxLDAsMCwxLC43MS4yOEwxOCwz'@; put 'MFY2bC03LjY1LDcuNjhhMSwxLDAsMCwxLS43MS4zWk0xOCw2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjExYTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSww'@; put 'LDEsMSwxLTEuNzNBOC4yMSw4LjIxLDAsMCwxLDIzLjk0LDI1LDEsMSwwLDAsMSwyMy40MSwyNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xOC4zNCwzLjg3LDksMTJIM2ExLDEsMCwwLDAtMSwxVjIzYTEsMSww'@; put 'LDAsMCwxLDFIOC44M2w5LjUxLDguM0ExLDEsMCwwLDAsMjAsMzEuNTVWNC42MkExLDEsMCwwLDAsMTguMzQsMy44N1oiLz4nKSxGLkNsclNoYXBlVm9sdW1lVXA9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0y'@; put 'My40MSwyNS4yNWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczLDguMjEsOC4yMSwwLDAsMSwuMjQsMTQuMDZBMSwxLDAsMCwxLDIzLjQxLDI1LjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNS42MiwzMS4xOGExLDEsMCwwLDEtLjQ1LTEuODlBMTIuNDQsMTIuNDQsMCwwLDAsMjUsNi44OWExLDEsMCwxLDEsLjg3LTEuOCwxNC40NCwxNC40NCwwLDAsMSwuMjQsMjZBMSwxLDAsMCwxLDI1LjYyLDMxLjE4WiIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzMi4wNmEyLDIsMCwwLDEtMS40Mi0uNTlMOS4xNCwyNEg0YTIsMiwwLDAsMS0yLTJWMTRhMiwyLDAsMCwxLDItMkg5LjIybDcuMzMtNy4zOUEyLDIsMCwwLDEsMjAsNnYyNGEyLDIsMCwwLDEt'@; put 'MS4yNCwxLjg1QTIsMiwwLDAsMSwxOCwzMi4wNlpNNCwxNHY4SDkuNTZhMSwxLDAsMCwxLC43MS4zTDE4LDMwLjA2VjZMMTAuMzUsMTMuN2ExLDEsMCwwLDEtLjcxLjNaTTE4LDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBk'@; put 'PSJNMjMuNDEsMjUuMjVhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43Myw4LjIxLDguMjEsMCwwLDEsLjI0LDE0LjA2QTEsMSwwLDAsMSwyMy40MSwyNS4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNS42MiwzMS4xOGExLDEsMCwwLDEtLjQ1LTEuODlBMTIuNDQsMTIuNDQsMCwwLDAsMjUsNi44OWExLDEsMCwxLDEsLjg3LTEuOCwxNC40NCwxNC40NCwwLDAsMSwuMjQsMjZBMSwxLDAsMCwxLDI1LjYyLDMxLjE4WiIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTE4LjMzLDQsOS4wNywxMmgtNmExLDEsMCwwLDAtMSwxdjkuOTJhMSwxLDAsMCwwLDEsMUg4Ljg4bDkuNDYsOC4yNEExLDEsMCwwLDAsMjAsMzEuNDNWNC43MkExLDEsMCwwLDAsMTguMzMsNFoiLz4nKSxG'@; put 'LkNsclNoYXBlVm9sdW1lTXV0ZT0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMuNjEsNi40MSw5LjE5LDEySDRhMiwyLDAsMCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJIOS4xNGw3LjQxLDcuNDdBMiwyLDAsMCww'@; put 'LDE4LDMyYTIsMiwwLDAsMCwuNzYtLjE1QTIsMiwwLDAsMCwyMCwzMFYyMi43N2w1Ljg5LDUuODljLS4yNS4xNS0uNDkuMjktLjc1LjQyYTEsMSwwLDAsMCwuOSwxLjc5LDE0LjQsMTQuNCwwLDAsMCwxLjMxLS43NWwyLjI4LDIuMjhMMzEsMzEsNSw1Wk0xOCwzMGwtNy43My03Ljc3QTEsMSww'@; put 'LDAsMCw5LjU2LDIySDRWMTRIOS42NGExLDEsMCwwLDAsLjcxLS4zbC4yNi0uMjZMMTgsMjAuODFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI0Ljg5LDYuNjlBMTIuNDIsMTIuNDIsMCwwLDEsMjksMjYuMWwx'@; put 'LjQyLDEuNDJBMTQuNDIsMTQuNDIsMCwwLDAsMjUuNzYsNC44OGExLDEsMCwxLDAtLjg3LDEuOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjIuNjksMTIuNjJBNi4yNyw2LjI3LDAsMCwxLDI1LjgsMThhNi4x'@; put 'Nyw2LjE3LDAsMCwxLTEuMjQsMy43MUwyNiwyMy4xM0E4LjE1LDguMTUsMCwwLDAsMjcuOCwxOGE4LjI4LDguMjgsMCwwLDAtNC4xLTcuMTEsMSwxLDAsMSwwLTEsMS43M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBk'@; put 'PSJNMTgsNnY5LjE1bDIsMlY2YTIsMiwwLDAsMC0zLjQyLTEuNDFMMTIsOS4xN2wxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjQuODcsNi42OUExMi40MiwxMi40MiwwLDAsMSwyOC43NSwyNi4zbDEu'@; put 'NDIsMS40MkExNC40MywxNC40MywwLDAsMCwyNS43NCw0Ljg4YTEsMSwwLDAsMC0uODcsMS44WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI3LjMsMjcuNjdoMGwtMy44NC0zLjg0LS41Ny0uNTdoMEw0LjYzLDUsMy4y'@; put 'MSw2LjQxLDguOCwxMkgzYTEsMSwwLDAsMC0xLDFWMjNhMSwxLDAsMCwwLDEsMUg4LjgzbDkuNTEsOC4zQTEsMSwwLDAsMCwyMCwzMS41NVYyMy4ybDUuNTksNS41OWMtLjE3LjEtLjM0LjItLjUxLjI5YTEsMSwwLDAsMCwuOSwxLjc5Yy4zNy0uMTkuNzItLjQsMS4wOC0uNjJsMi4xNCwyLjE0'@; put 'TDMwLjYxLDMxbC0zLjI1LTMuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjIuNjksMTIuNjJBNi4yNyw2LjI3LDAsMCwxLDI1LjgsMThhNi4xNyw2LjE3LDAsMCwxLTEuNDIsMy45MmwxLjQyLDEuNDJhOC4xNiw4'@; put 'LjE2LDAsMCwwLDItNS4zNCw4LjI4LDguMjgsMCwwLDAtNC4xLTcuMTEsMSwxLDAsMSwwLTEsMS43M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yMCw0LjYyYTEsMSwwLDAsMC0xLjY2LS43NWwtNi40Miw1LjZMMjAs'@; put 'MTcuNTRaIi8+JyksRi5DbHJTaGFwZUhlYWRwaG9uZXM9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwzQTE0LjI3LDE0LjI3LDAsMCwwLDQsMTcuNVYzMUg5LjJBMi43NCwyLjc0LDAsMCwwLDEyLDI4LjMz'@; put 'VjIxLjY3QTIuNzQsMi43NCwwLDAsMCw5LjIsMTlINlYxNy41QTEyLjI3LDEyLjI3LDAsMCwxLDE4LDUsMTIuMjcsMTIuMjcsMCwwLDEsMzAsMTcuNVYxOUgyNi44QTIuNzQsMi43NCwwLDAsMCwyNCwyMS42N3Y2LjY3QTIuNzQsMi43NCwwLDAsMCwyNi44LDMxSDMyVjE3LjVBMTQuMjcsMTQu'@; put 'MjcsMCwwLDAsMTgsM1pNOS4yLDIxYS43NS43NSwwLDAsMSwuOC42N3Y2LjY3YS43NS43NSwwLDAsMS0uOC42N0g2VjIxWk0yNiwyOC4zM1YyMS42N2EuNzUuNzUsMCwwLDEsLjgtLjY3SDMwdjhIMjYuOEEuNzUuNzUsMCwwLDEsMjYsMjguMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsM0ExNC4yNywxNC4yNywwLDAsMCw0LDE3LjVWMzFIOC4yQTEuNzQsMS43NCwwLDAsMCwxMCwyOS4zM1YyMi42N0ExLjc0LDEuNzQsMCwwLDAsOC4yLDIxSDZWMTcuNUExMi4yNywxMi4yNywwLDAsMSwxOCw1LDEyLjI3'@; put 'LDEyLjI3LDAsMCwxLDMwLDE3LjVWMjFIMjcuOEExLjc0LDEuNzQsMCwwLDAsMjYsMjIuNjd2Ni42N0ExLjc0LDEuNzQsMCwwLDAsMjcuOCwzMUgzMlYxNy41QTE0LjI3LDE0LjI3LDAsMCwwLDE4LDNaIi8+JyksRi5DbHJTaGFwZUZpbG1TdHJpcD0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wm0wLDI2SDZWNkgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTQuNiwyMy4wN2ExLjI5LDEuMjksMCwwLDAsMS4yNC4wOWw4LjczLTRhMS4zLDEuMywwLDAsMCwwLTIuMzdoMGwtOC43My00QTEuMywxLjMsMCwwLDAsMTQsMTR2OEExLjI5LDEuMjksMCwwLDAsMTQuNiwyMy4wN1ptMS04LjZM'@; put 'MjMuMzEsMTgsMTUuNiwyMS41MVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI4IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNCIgeD0iMTQiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyMCIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjI2IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iOCIgeT0iMjYiIHdpZHRo'@; put 'PSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIxNCIgeT0iMjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC05IiB4PSIyMCIgeT0iMjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTIwLDdoMnYzSDIwWk0xNCw3aDJ2M0gxNFpNMTAsMjlIOFYyNmgyWm0wLTE5'@; put 'SDhWN2gyWm02LDE5SDE0VjI2aDJabTYsMEgyMFYyNmgyWm0zLjE2LTEwLjE2TDE1LjM5LDIzLjJBMSwxLDAsMCwxLDE0LDIyLjI4VjEzLjU3YTEsMSwwLDAsMSwxLjQxLS45MUwyNS4xNiwxN0ExLDEsMCwwLDEsMjUuMTYsMTguODRaTTI4LDI5SDI2VjI2aDJabTAtMTlIMjZWN2gyWiIvPicp'@; put 'LEYuQ2xyU2hhcGVNdXNpY05vdGU9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiXG4gICAgICAgICAgICAgICAgZD0iTTMxLjY4LDYuMTZjLTEuOTItMy4zLTEwLjYtNC0xMS41OC00LjA5TDE5LDJWMjIuMzRhNS44OSw1'@; put 'Ljg5LDAsMCwwLS44Mi0uNTYsOC4zMyw4LjMzLDAsMCwwLTYuNTMtLjQxQzcuNTcsMjIuNyw0LjkyLDI2LjUsNS43OCwyOS44NGE1LjMzLDUuMzMsMCwwLDAsMi42NiwzLjMyLDcuNDgsNy40OCwwLDAsMCwzLjYxLjg4QTkuNTQsOS41NCwwLDAsMCwxNSwzMy41N2MzLjY3LTEuMTgsNi4xNy00'@; put 'LjMzLDYuMDYtNy4zNlY5LjM0YTI5LjE0LDI5LjE0LDAsMCwxLDYuNTUsMS40MywxLDEsMCwxLDAsLjcyLTEuODdBMzEuMzcsMzEuMzcsMCwwLDAsMjEsNy4zM1Y0LjE3YzMuMzMuMzYsOCwxLjM4LDguOTIsMywyLDMuNDEtMi4zMyw3LjM2LTIuMzcsNy40YTEsMSwwLDAsMCwxLjMzLDEuNDlD'@; put 'MjkuMTUsMTUuODUsMzQuNSwxMSwzMS42OCw2LjE2Wk0xNC4zNSwzMS42N2E2LjQzLDYuNDMsMCwwLDEtNS0uMjYsMy4zMSwzLjMxLDAsMCwxLTEuNjktMi4wN2MtLjYtMi4zMywxLjQ1LTUuMDUsNC41OC02LjA2YTcuNTIsNy41MiwwLDAsMSwyLjMtLjM3LDUuNTIsNS41MiwwLDAsMSwyLjY1'@; put 'LjYyLDMuMzEsMy4zMSwwLDAsMSwxLjY5LDIuMDdDMTkuNTQsMjcuOTQsMTcuNDksMzAuNjYsMTQuMzUsMzEuNjdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMS42OCw2LjE2Yy0xLjky'@; put 'LTMuMy0xMC42LTQtMTEuNTgtNC4wOUwxOSwyVjIyLjI5YTUuODgsNS44OCwwLDAsMC0uODEtLjU1LDguMzMsOC4zMywwLDAsMC02LjUzLS40MWMtNC4xMiwxLjMzLTYuNzcsNS4xMy01LjkxLDguNDdhNS4zMyw1LjMzLDAsMCwwLDIuNjYsMy4zMiw3LjQ4LDcuNDgsMCwwLDAsMy42MS44OEE5'@; put 'LjU0LDkuNTQsMCwwLDAsMTUsMzMuNTJjMy43LTEuMTksNi4yLTQuMzcsNi4wNi03LjQyLDAsMCwwLDAsMCwwVjguNDljMSwuMTIsMi4zNy4zMywzLjgyLjY0YTExLjE3LDExLjE3LDAsMCwxLDQuMDYsMS40NmMxLC42Ni4zOCwxLjkuMzMsMmExMS44LDExLjgsMCwwLDEtMS42NiwyLDEsMSww'@; put 'LDAsMCwxLjMzLDEuNDlDMjkuMTUsMTUuODUsMzQuNSwxMSwzMS42OCw2LjE2WiIvPicpLEYuQ2xyU2hhcGVJbWFnZUdhbGxlcnk9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMu'@; put 'ODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMzIsMzBINFYxMkgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik04LjU2LDE5LjQ1YTMsMywwLDEsMC0zLTNB'@; put 'MywzLDAsMCwwLDguNTYsMTkuNDVabTAtNC42QTEuNiwxLjYsMCwxLDEsNywxNi40NSwxLjYsMS42LDAsMCwxLDguNTYsMTQuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNNy45LDI4bDYtNiwzLjE4LDMuMThMMTQuMjYsMjhoMmw3'@; put 'LjQ2LTcuNDZMMzAsMjYuNzd2LTJMMjQuMiwxOWEuNzEuNzEsMCwwLDAtMSwwbC01LjE2LDUuMTZMMTQuMzcsMjAuNWEuNzEuNzEsMCwwLDAtMSwwTDUuOTIsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSww'@; put 'LDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFoMFY0aDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0yNmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwxLDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwxLDAsMCwwLTEtMWgtMjZhMSwx'@; put 'LDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwz'@; put 'MC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTguNTYsMTMuNDVhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC41NiwxMy40NVpNMzAsMjhoLTI0bDcuNDYtNy40N2EuNzEuNzEsMCwwLDEsMSwwbDMuNjgsMy42OEwyMy4yMSwxOWEuNzEuNzEsMCwwLDEsMSwwTDMwLDI0Ljc5'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlUmVwbGF5QWxsPSgwLHguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNy40NiwyNi4yMmExLjQsMS40LDAsMCwwLDEtLjQybDUuNTktNS41NmExLjQzLDEuNDMsMCwwLDAsLjQyLTEsMS40Niwx'@; put 'LjQ2LDAsMCwwLS40Mi0xbC01LjU5LTUuNTZhMS40MywxLjQzLDAsMCwwLTIuNDQsMVYyNC43OWExLjQxLDEuNDEsMCwwLDAsLjg4LDEuMzJBMS41NCwxLjU0LDAsMCwwLDE3LjQ2LDI2LjIyWm0uMTYtMTIuMTYsNS4xOSw1LjE2LTUuMTksNS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOC4wNiw1aC02LjdsMi45Mi0yLjY0QTEsMSwwLDAsMCwxMi45NC44OEw3LjMyLDYsMTIuOTQsMTFhMSwxLDAsMCwwLC42Ny4yNiwxLDEsMCwwLDAsLjc0LS4zMywxLDEsMCwwLDAtLjA3LTEuNDJMMTEuNDYsN2g2LjZBMTEuNzgsMTEu'@; put 'NzgsMCwxLDEsNy43MSwyNC40MSwxLDEsMCwwLDAsNiwyNS4zNiwxMy43OCwxMy43OCwwLDEsMCwxOC4wNiw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZVJlcGxheU9uZT0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTks'@; put 'MjcuMjdhMSwxLDAsMCwwLDEtMVYxNGExLDEsMCwwLDAtMS0xSDE5YTMuOCwzLjgsMCwwLDAtMS4xLjIzbC0yLC42MmEuOTIuOTIsMCwwLDAtLjcyLjg2Ljg4Ljg4LDAsMCwwLC44OC44NiwxLjQ2LDEuNDYsMCwwLDAsLjQzLS4wOEwxOCwxNS4wN3YxMS4yQTEsMSwwLDAsMCwxOSwyNy4yN1oi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOC4wNiw1aC02LjdsMi45Mi0yLjY0QTEsMSwwLDAsMCwxMi45NC44OEw3LjMyLDYsMTIuOTQsMTFhMSwxLDAsMCwwLC42Ny4yNiwxLDEsMCwwLDAsLjc0LS4zMywxLDEsMCwwLDAtLjA3LTEu'@; put 'NDJMMTEuNDYsN2g2LjZBMTEuNzgsMTEuNzgsMCwxLDEsNy43MSwyNC40MSwxLDEsMCwwLDAsNiwyNS4zNiwxMy43OCwxMy43OCwwLDEsMCwxOC4wNiw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZVZpZGVvR2FsbGVyeT0oMCx4'@; put 'LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIuMTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwxMS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk0zMiwzMEg0VjEy'@; put 'SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9'@; put 'Ik0zMi4xMiw3VjdhMSwxLDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTIuODIsMjYuNzlhMS43NCwxLjc0LDAsMCwwLC45My4yOCwxLjY4LDEuNjgsMCwwLDAsLjY5LS4x'@; put 'NWw5Ljc3LTQuMzZhMS42OSwxLjY5LDAsMCwwLDAtMy4xTDE0LjQ0LDE1LjFhMS43LDEuNywwLDAsMC0yLjM5LDEuNTV2OC43MkExLjcsMS43LDAsMCwwLDEyLjgyLDI2Ljc5Wm0uNjMtMTAuMTRhLjI5LjI5LDAsMCwxLC4xNC0uMjUuMy4zLDAsMCwxLC4xNiwwLC4yNy4yNywwLDAsMSwuMTIs'@; put 'MGw5Ljc3LDQuMzVhLjI5LjI5LDAsMCwxLC4xOC4yOC4yOC4yOCwwLDAsMS0uMTguMjdsLTkuNzcsNC4zNmEuMjguMjgsMCwwLDEtLjI4LDAsLjMxLjMxLDAsMCwxLS4xNC0uMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIuMTIs'@; put 'MTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwxMS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk0yNC4xOCwyMS44M2wtOS43Nyw0LjM2QTEsMSwwLDAsMSwxMywyNS4y'@; put 'OFYxNi41NmExLDEsMCwwLDEsMS40MS0uOTFMMjQuMTgsMjBBMSwxLDAsMCwxLDI0LjE4LDIxLjgzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFoMFY0aDI0WiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlTWljcm9waG9uZT0o'@; put 'MCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjRjMy45LDAsNy0zLjEsNy03VjljMC0zLjktMy4xLTctNy03cy03LDMuMS03LDd2OEMxMSwyMC45LDE0LjEsMjQsMTgsMjR6IE0xMyw5YzAtMi44LDIuMi01LDUtNXM1LDIuMiw1LDV2OFxuXHRcdGMwLDIuOC0yLjIsNS01LDVzLTUtMi4y'@; put 'LTUtNVY5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLDE3aC0yYzAsNS41LTQuNSwxMC0xMCwxMFM4LDIyLjUsOCwxN0g2YzAsNi4zLDQuOCwxMS40LDExLDExLjlWMzJoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMw'@; put 'LjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtMy4xQzI1LjIsMjguNCwzMCwyMy4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LDI0YzMuOSwwLDctMy4xLDctN1Y5YzAtMy45LTMuMS03LTctN3MtNywz'@; put 'LjEtNyw3djhDMTEsMjAuOSwxNC4xLDI0LDE4LDI0eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTdoLTJjMCw1LjUtNC41LDEwLTEwLDEwUzgsMjIuNSw4LDE3SDZjMCw2LjMsNC44LDExLjQsMTEsMTEuOVYzMmgtM2MtMC42LDAtMSww'@; put 'LjQtMSwxczAuNCwxLDEsMWg4YzAuNiwwLDEtMC40LDEtMVxuXHRcdHMtMC40LTEtMS0xaC0zdi0zLjFDMjUuMiwyOC40LDMwLDIzLjMsMzAsMTd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVNaWNyb3Bob25lTXV0ZT0oMCx4LmNscklj'@; put 'b25TVkcpKCc8cGF0aCBkPSJNMzAsMTdoLTJjMCwxLjgtMC41LDMuNS0xLjQsNWwxLjUsMS41QzI5LjMsMjEuNSwyOS45LDE5LjMsMzAsMTd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsNGMyLjgsMCw1LDIuMiw1LDV2OGMwLDAu'@; put 'NC0wLjEsMC44LTAuMiwxLjJsMS42LDEuNmMwLjQtMC45LDAuNi0xLjgsMC42LTIuOFY5YzAtMy45LTMuMi03LTcuMS02Ljlcblx0XHRjLTIuOSwwLTUuNiwxLjktNi41LDQuN0wxMyw4LjNDMTMuNSw1LjksMTUuNiw0LjIsMTgsNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNS4yLDI2LjZsNi45LDYuOWwxLjQtMS40TDQsMi42TDIuNiw0bDguNCw4LjRWMTdjMCwzLjksMy4xLDcsNyw3YzEuMywwLDIuNS0wLjMsMy42LTFsMi4yLDIuMkMyMi4xLDI2LjQsMjAuMSwyNywxOCwyN1xuXHRcdGMtNS40LDAuMi05LjgtNC4xLTEw'@; put 'LTkuNGMwLTAuMiwwLTAuNCwwLTAuNkg2YzAuMSw2LjIsNC44LDExLjQsMTEsMTJ2M2gtM2MtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWg4YzAuNiwwLDEtMC40LDEtMVxuXHRcdHMtMC40LTEtMS0xaC0zdi0zQzIxLjIsMjguOCwyMy40LDI4LDI1LjIsMjYuNnogTTEzLjgsMTkuN0MxMy4z'@; put 'LDE4LjksMTMsMTgsMTMsMTd2LTIuNmw3LjEsNy4xQzE3LjksMjIuNSwxNS4yLDIxLjgsMTMuOCwxOS43eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLDE3aC0yYzAsMS44LTAuNSwzLjUtMS40LDVsMS41LDEuNUMyOS4zLDIxLjUs'@; put 'MjkuOSwxOS4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMjUsMTdWOWMwLTMuOS0zLjItNy03LjEtNi45Yy0yLjksMC01LjYsMS45LTYuNSw0LjdsMTMsMTNDMjQuOCwxOC45LDI1LDE3LjksMjUsMTd6IiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNS4yLDI2LjZsNi45LDYuOWwxLjQtMS40TDQsMi42TDIuNiw0bDguNCw4LjRWMTdjMCwzLjksMy4xLDcsNyw3YzEuMywwLDIuNS0wLjMsMy42LTFsMi4yLDIuMkMyMi4xLDI2LjQsMjAuMSwyNywxOCwyN1xuXHRcdGMtNS40'@; put 'LDAuMi05LjgtNC4xLTEwLTkuNGMwLTAuMiwwLTAuNCwwLTAuNkg2YzAuMSw2LjIsNC44LDExLjQsMTEsMTJ2M2gtM2MtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWg4YzAuNiwwLDEtMC40LDEtMVxuXHRcdHMtMC40LTEtMS0xaC0zdi0zQzIxLjIsMjguOCwyMy40LDI4LDI1LjIsMjYuNnoi'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksRi5NZWRpYVNoYXBlcz17cGxheTpGLkNsclNoYXBlUGxheSxwYXVzZTpGLkNsclNoYXBlUGF1c2UsInN0ZXAtZm9yd2FyZCI6Ri5DbHJTaGFwZVN0ZXBGb3J3YXJkLHN0b3A6Ri5DbHJTaGFwZVN0b3AscG93ZXI6'@; put 'Ri5DbHJTaGFwZVBvd2VyLHJld2luZDpGLkNsclNoYXBlUmV3aW5kLCJmYXN0LWZvcndhcmQiOkYuQ2xyU2hhcGVGYXN0Rm9yd2FyZCxjYW1lcmE6Ri5DbHJTaGFwZUNhbWVyYSwidmlkZW8tY2FtZXJhIjpGLkNsclNoYXBlVmlkZW9DYW1lcmEsc2h1ZmZsZTpGLkNsclNoYXBlU2h1ZmZsZSwi'@; put 'dm9sdW1lLXVwIjpGLkNsclNoYXBlVm9sdW1lVXAsInZvbHVtZS1kb3duIjpGLkNsclNoYXBlVm9sdW1lRG93biwidm9sdW1lLW11dGUiOkYuQ2xyU2hhcGVWb2x1bWVNdXRlLGhlYWRwaG9uZXM6Ri5DbHJTaGFwZUhlYWRwaG9uZXMsImZpbG0tc3RyaXAiOkYuQ2xyU2hhcGVGaWxtU3RyaXAs'@; put 'Im11c2ljLW5vdGUiOkYuQ2xyU2hhcGVNdXNpY05vdGUsImltYWdlLWdhbGxlcnkiOkYuQ2xyU2hhcGVJbWFnZUdhbGxlcnksInJlcGxheS1hbGwiOkYuQ2xyU2hhcGVSZXBsYXlBbGwsInJlcGxheS1vbmUiOkYuQ2xyU2hhcGVSZXBsYXlPbmUsInZpZGVvLWdhbGxlcnkiOkYuQ2xyU2hhcGVW'@; put 'aWRlb0dhbGxlcnksbWljcm9waG9uZTpGLkNsclNoYXBlTWljcm9waG9uZSwibWljcm9waG9uZS1tdXRlIjpGLkNsclNoYXBlTWljcm9waG9uZU11dGV9LHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25z'@; put 'LmFkZChGLk1lZGlhU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9zb2NpYWwtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNv'@; put 'bnMvc3JjL3NoYXBlcy9zb2NpYWwtc2hhcGVzLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3Ry'@; put 'aWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRi5Tb2NpYWxTaGFwZXM9Ri5DbHJTaGFwZUhhc2h0YWc9Ri5DbHJTaGFwZUNyb3duPUYuQ2xyU2hhcGVUaHVtYnNEb3duPUYuQ2xyU2hhcGVUaHVtYnNVcD1GLkNsclNoYXBlU2FkRmFjZT1GLkNs'@; put 'clNoYXBlTmV1dHJhbEZhY2U9Ri5DbHJTaGFwZUhhcHB5RmFjZT1GLkNsclNoYXBlUGljdHVyZT1GLkNsclNoYXBlQ2hhdEJ1YmJsZT1GLkNsclNoYXBlVGFsa0J1YmJsZXM9Ri5DbHJTaGFwZUhlYXJ0QnJva2VuPUYuQ2xyU2hhcGVIZWFydD1GLkNsclNoYXBlSW5ib3g9Ri5DbHJTaGFwZUZs'@; put 'YWc9Ri5DbHJTaGFwZVRhc2tzPUYuQ2xyU2hhcGVFbnZlbG9wZT1GLkNsclNoYXBlQm9va21hcms9Ri5DbHJTaGFwZUhhbGZTdGFyPUYuQ2xyU2hhcGVTdGFyPUYuQ2xyU2hhcGVTaGFyZT12b2lkIDA7dmFyIHg9YWUoCi8qISAuLi91dGlscy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoiLi9wcm9q'@; put 'ZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxtPWFlKAovKiEgLi4vdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksbGU9YWUoCi8qISAuL2NvcmUtc2hhcGVzICovCiIu'@; put 'L3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKTtGLkNsclNoYXBlU2hhcmU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQs'@; put 'MTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVptMC0yMGEzLDMsMCwxLDEtMywzQTMs'@; put 'MywwLDAsMSwyNy41Myw0Wk03LDIxYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDcsMjFaTTI3LjUzLDMyYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDI3LjUzLDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0y'@; put 'Ny41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1'@; put 'LDAsMSwwLDUtNVoiLz4nKSxGLkNsclNoYXBlU3Rhcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjE5LDM0YTIuMjIsMi4yMiwwLDAsMS0xLjI0LS4zOGwtNy40Ni01YS4yMi4yMiwwLDAsMC0uMjUsMGwt'@; put 'Ny40Niw1QTIuMjIsMi4yMiwwLDAsMSw3LjQsMzEuMjFsMi40NS04LjY0YS4yMy4yMywwLDAsMC0uMDgtLjI0TDIuNzEsMTYuNzhhMi4yMiwyLjIyLDAsMCwxLDEuMjktNGw5LS4zNGEuMjMuMjMsMCwwLDAsLjItLjE1bDMuMS04LjQzYTIuMjIsMi4yMiwwLDAsMSw0LjE3LDBsMy4xLDguNDNh'@; put 'LjIzLjIzLDAsMCwwLC4yLjE1bDksLjM0YTIuMjIsMi4yMiwwLDAsMSwxLjI5LDRMMjcsMjIuMzNhLjIyLjIyLDAsMCwwLS4wOC4yNGwyLjQ1LDguNjRBMi4yMywyLjIzLDAsMCwxLDI3LjE5LDM0Wm0tOC44Mi03LjQyQTIuMjEsMi4yMSwwLDAsMSwxOS42LDI3bDcuNDYsNWEuMjIuMjIsMCww'@; put 'LDAsLjM0LS4yNWwtMi40NS04LjY0YTIuMjEsMi4yMSwwLDAsMSwuNzctMi4zNWw3LjA2LTUuNTVhLjIyLjIyLDAsMCwwLS4xMy0uNGwtOS0uMzRhMi4yMiwyLjIyLDAsMCwxLTItMS40NmwtMy4xLTguNDNhLjIyLjIyLDAsMCwwLS40MiwwTDE1LjA2LDEzYTIuMjIsMi4yMiwwLDAsMS0yLDEu'@; put 'NDZsLTksLjM0YS4yMi4yMiwwLDAsMC0uMTMuNEwxMSwyMC43NmEyLjIyLDIuMjIsMCwwLDEsLjc3LDIuMzVMOS4zMywzMS43NWEuMjEuMjEsMCwwLDAsLjA4LjI0LjIuMiwwLDAsMCwuMjYsMGw3LjQ2LTVBMi4yMiwyLjIyLDAsMCwxLDE4LjM2LDI2LjYyWiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIsMCwwLDAtMS4yOS00bC05LS4zNGEuMjMuMjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEt'@; put 'LjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4zNSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAsMy4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIs'@; put 'MCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0WiIvPicpLEYuQ2xyU2hhcGVIYWxmU3Rhcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAs'@; put 'MC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBsLTMuMSw4LjQzYS4yMy4yMywwLDAsMS0uMi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIyLjIyLDAsMCwxLC4wOC4yNEw3LjM1LDMx'@; put 'LjIxQTIuMjMsMi4yMywwLDAsMCw5LjQ5LDM0YTIuMjIsMi4yMiwwLDAsMCwxLjI0LS4zOGw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIyLDIuMjIsMCwwLDAsMy4zOC0yLjQ1bC0yLjQ1LTguNjRhLjIzLjIzLDAsMCwxLC4wOC0uMjRaTTE4LjMzLDI2LjYyaDBhMi4yMSwy'@; put 'LjIxLDAsMCwwLTEuMjQuMzhMOS42MiwzMmEuMjIuMjIsMCwwLDEtLjM0LS4yNWwyLjQ1LTguNjRBMi4yMSwyLjIxLDAsMCwwLDExLDIwLjc2TDMuOSwxNS4yMWEuMjIuMjIsMCwwLDEsLjEzLS40bDktLjM0QTIuMjIsMi4yMiwwLDAsMCwxNSwxM2wzLjEtOC40M2EuMi4yLDAsMCwxLC4yMS0u'@; put 'MTVoMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIyLDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcs'@; put 'MGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41NWEuMjMuMjMsMCwwLDEsLjA4LjI0TDcuMzUsMzEuMjFhMi4yMiwyLjIyLDAsMCwwLDMuMzgsMi40NWw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIs'@; put 'Mi4yLDAsMCwwLDIuNTUsMCwyLjIsMi4yLDAsMCwwLC44My0yLjRsLTIuNDUtOC42NGEuMjIuMjIsMCwwLDEsLjA4LS4yNFpNMjQuOSwyMy4xMWwyLjQ1LDguNjRBLjIyLjIyLDAsMCwxLDI3LDMybC03LjQ2LTVhMi4yMSwyLjIxLDAsMCwwLTEuMjQtLjM4aDBWNC40NGgwYS4yLjIsMCwwLDEs'@; put 'LjIxLjE1TDIxLjYyLDEzYTIuMjIsMi4yMiwwLDAsMCwyLDEuNDZsOSwuMzRhLjIyLjIyLDAsMCwxLC4xMy40bC03LjA2LDUuNTVBMi4yMSwyLjIxLDAsMCwwLDI0LjksMjMuMTFaIi8+JyksRi5DbHJTaGFwZUJvb2ttYXJrPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMzRhMiwyLDAsMCwxLTEuNDEtLjU4TDE4LDI2LjgybC02LjU0LDYuNTJBMiwyLDAsMCwxLDgsMzEuOTNWNGEyLDIsMCwwLDEsMi0ySDI2YTIsMiwwLDAsMSwyLDJWMzJhMiwyLDAsMCwxLTIsMlptMC0yaDBWNEgxMFYzMS45M0wx'@; put 'OCwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMkgxMEEyLDIsMCwwLDAsOCw0VjMxLjkzYTIsMiwwLDAsMCwzLjQyLDEuNDFsNi41NC02LjUyLDYuNjMsNi42QTIsMiwwLDAsMCwyOCwzMlY0QTIsMiww'@; put 'LDAsMCwyNiwyWiIvPicpLEYuQ2xyU2hhcGVFbnZlbG9wZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIs'@; put 'MiwwLDAsMCwzMiw2Wk0zMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5YTIsMiwwLDAsMCwyLjgyLDBMMzIsOS4yMXYxNy41bC03LjM2LTcuMzYtMS40MSwxLjQxWk01LjMxLDhIMzAuMzhMMTcuODQsMjAuNDdaIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMDhWMjYuNzFsLTcuMzYtNy4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEy'@; put 'LDIsMCwwLDAsMi44MiwwbDguODMtOC43OGE3LjQ0LDcuNDQsMCwwLDEtMi0uODVsLTguMjYsOC4yMUw1LjMxLDhIMjIuODFhNy40OSw3LjQ5LDAsMCwxLS4zMS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMkE3LjQ1LDcuNDUsMCwwLDEs'@; put 'MzIsMTMuMDhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuODYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjI2SDMyVjI2LjcxbC03LjM2LTcuMzYtMS40MSwxLjQxTDMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCww'@; put 'LDIuODIsMGw2LjY2LTYuNjNIMjMuMDhsLTUuMjQsNS4yMUw1LjMxLDhIMjAuMDZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAg'@; put 'ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zMyw2YTIsMiwwLDAsMC0uNDEsMGgtMjhhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODEsNy4zOSwxOS4yNSwyMS44OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzMuODEsNy4zOVpNNS4zLDI4SDMuOTFWMjYuNTdsNy4y'@; put 'Ny03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNiwxMi4zNEE3LjQ5LDcu'@; put 'NDksMCwwLDEsMjIuNSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI5'@; put 'bC04LjcxLDguNjhhMiwyLDAsMCwxLTIuODIsMEwyLDcuNWEyLDIsMCwwLDAtLjA3LjVWMjhhMiwyLDAsMCwwLDIsMmgyOGEyLDIsMCwwLDAsMi0yVjEyLjM5QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMw'@; put 'LjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjUuNzdsLTYuNTIsNi40OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiww'@; put 'LDAsMCwyLTJWMTUuMzhaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFsLTcuMjktNy4yMywxLjQxLTEuNDEsNy4yNyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yMi45NCwxNS40aC0uN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksRi5DbHJT'@; put 'aGFwZVRhc2tzPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuMjksMzRINi43MUExLjcsMS43LDAsMCwxLDUsMzIuMzFWNi42OUExLjc1LDEuNzUsMCwwLDEsNyw1SDlWN0g3VjMySDI5VjdIMjdWNWgyLjI1'@; put 'QTEuNywxLjcsMCwwLDEsMzEsNi42OVYzMi4zMUExLjcsMS43LDAsMCwxLDI5LjI5LDM0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuNjYsMjUuNzYsMTEuMywyMC40QTEsMSwwLDAsMSwxMi43Miwx'@; put 'OWwzLjk0LDMuOTQsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNiwxMUgxMFY3LjMzQTIuMzQsMi4zNCwwLDAsMSwxMi4zMyw1aDEuNzlhNCw0LDAs'@; put 'MCwxLDcuNzUsMGgxLjc5QTIuMzQsMi4zNCwwLDAsMSwyNiw3LjMzWk0xMiw5SDI0VjcuMzNBLjMzLjMzLDAsMCwwLDIzLjY3LDdIMjBWNmEyLDIsMCwwLDAtNCwwVjdIMTIuMzNhLjMzLjMzLDAsMCwwLS4zMy4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LDkuODksMTkuNTYsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aC43MWwxLjE2LTJhNCw0LDAsMCwwLTcuNzQsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAs'@; put 'MTAsNy4zM1YxMWg4LjY0QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjQuMTksMTUuNGwtNy41Myw3LjUzTDEyLjcyLDE5QTEs'@; put 'MSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMCwuMi0uMzFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNS40VjMySDdWN0g5'@; put 'VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMi43MiwxOUExLDEsMCwwLDAsMTEuMywyMC40bDUuMzYsNS4zNkwyNi43MSwxNS43MWExLDEsMCwwLDAtMS40MS0xLjQxbC04LjY0LDguNjRaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIs'@; put 'Ny41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIzLjEzLDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAs'@; put 'MCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjkuMjksNC45NWgtNy4yYTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWNi42NEEx'@; put 'LjcsMS43LDAsMCwwLDI5LjI5LDQuOTVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAsMSwxLDFWOS44SDExLjI1Wm0xNC41Miw5LjIzLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwz'@; put 'LjI2LDcuMTQtNy4xNGExLjQsMS40LDAsMSwxLDIsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjUuODgsMTUuNGExLjM4LDEuMzgsMCwwLDEtLjExLDEuODFsLTkuMTIsOS4x'@; put 'Mi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDctN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwwLS4wOUgxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2guNDJMMjIsNC43NmE0LjMsNC4zLDAsMCwwLTgu'@; put 'MDkuMTlIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0'@; put 'aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS02LjQ2LTMuN0gxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gyLjI2YTcuNTMs'@; put 'Ny41MywwLDAsMS0uMDctMSw3LjUzLDcuNTMsMCwwLDEsLjA4LTEuMDVoLS41YTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTMuNDNBNy41Miw3'@; put 'LjUyLDAsMCwxLDMwLDEzLjVabS00LjIzLDMuNzEtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwzLjI2LDMuMjYsNy4xNC03LjE0YTEuNCwxLjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy'@; put 'LWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxGLkNsclNoYXBlRmxhZz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMzRhMSwxLDAsMCwxLTEt'@; put 'MVYzQTEsMSwwLDAsMSw3LDNWMzNBMSwxLDAsMCwxLDYsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC41NSwzLjgyYTEsMSwwLDAsMC0xLDAsMTQuOSwxNC45LDAsMCwxLTYuMTMsMS4xNiwxMy4x'@; put 'MSwxMy4xMSwwLDAsMS01LjE4LTEuNDksMTIuNzgsMTIuNzgsMCwwLDAtNS0xLjQ1QTEwLjg2LDEwLjg2LDAsMCwwLDksMi44NVY1LjA4QTguOCw4LjgsMCwwLDEsMTMuMjUsNGExMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjZBMTguNzUsMTguNzUs'@; put 'MCwwLDAsMjksNi4xMlYxOC45NWExNi4xNiwxNi4xNiwwLDAsMS01LjU4LjkzLDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OSwxMi43OCwxMi43OCwwLDAsMC01LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwxNy43OVYyMGE4LjgsOC44LDAsMCwxLDQuMjUtMS4wOCwxMS4yMiwxMS4yMiww'@; put 'LDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjYsMTYuNzksMTYuNzksMCwwLDAsNy0xLjM3LDEsMSwwLDAsMCwuNTUtLjg5VjQuNjdBMSwxLDAsMCwwLDMwLjU1LDMuODJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMSIgZD0iTTUuOTIsMmExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsNS45MiwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC41LDMuODJhMSwxLDAsMCwwLTEsMCwx'@; put 'NC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OUExMi43OCwxMi43OCwwLDAsMCwxMy4yLDIsMTAuODYsMTAuODYsMCwwLDAsOSwyLjg1VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0'@; put 'Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEsMCwwLDAsMzAuNSwzLjgyWiIvPicpLEYuQ2xyU2hhcGVJbmJveD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMjMsMTMuMDlhMSwxLDAsMCwwLDAsMS40MUwx'@; put 'OCwyMC4zbDUuNzktNS43OWExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDE2LjQ3VjJBMSwxLDAsMCwwLDE4LDFhMSwxLDAsMCwwLTEsMXYxNC41bC0zLjM4LTMuMzhBMSwxLDAsMCwwLDEyLjIzLDEzLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41LDVIMjJWN2g3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAuNzcsMGwtLjEtLjg5SDdWN2g3VjVINi41QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjYu'@; put 'NUExLjUsMS41LDAsMCwwLDI5LjUsNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQx'@; put 'TDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEsMCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4zOEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YyMUgyMy42MWwtLjEuODlhNS40Miw1LjQyLDAsMCwxLTEwLjc3LDBsLS4xLS44OUg3VjdoN1Y1SDYuNUExLjUsMS41LDAsMCwwLDUsNi41djI1QTEuNSwxLjUsMCwwLDAs'@; put 'Ni41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk'@; put 'Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEYuQ2xyU2hhcGVIZWFydD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJN'@; put 'MTgsMzIuNDNhMSwxLDAsMCwxLS42MS0uMjFDMTEuODMsMjcuOSw4LDI0LjE4LDUuMzIsMjAuNTEsMS45LDE1LjgyLDEuMTIsMTEuNDksMyw3LjY0YzEuMzQtMi43NSw1LjE5LTUsOS42OS0zLjY5QTkuODcsOS44NywwLDAsMSwxOCw3LjcyYTkuODcsOS44NywwLDAsMSw1LjMxLTMuNzdjNC40'@; put 'OS0xLjI5LDguMzUuOTQsOS42OSwzLjY5LDEuODgsMy44NSwxLjEsOC4xOC0yLjMyLDEyLjg3QzI4LDI0LjE4LDI0LjE3LDI3LjksMTguNjEsMzIuMjJBMSwxLDAsMCwxLDE4LDMyLjQzWk0xMC4xMyw1LjU4QTUuOSw1LjksMCwwLDAsNC44LDguNTFjLTEuNTUsMy4xOC0uODUsNi43MiwyLjE0'@; put 'LDEwLjgxQTU3LjEzLDU3LjEzLDAsMCwwLDE4LDMwLjE2LDU3LjEzLDU3LjEzLDAsMCwwLDI5LjA2LDE5LjMzYzMtNC4xLDMuNjktNy42NCwyLjE0LTEwLjgxLTEtMi00LTMuNTktNy4zNC0yLjY1YTgsOCwwLDAsMC00Ljk0LDQuMiwxLDEsMCwwLDEtMS44NSwwLDcuOTMsNy45MywwLDAsMC00'@; put 'Ljk0LTQuMkE3LjMxLDcuMzEsMCwwLDAsMTAuMTMsNS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUE5Ljg3LDkuODcsMCwwLDAsMTgsNy43MmE5'@; put 'Ljg3LDkuODcsMCwwLDAtNS4zMS0zLjc3QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEs'@; put 'MTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxGLkNsclNoYXBlSGVhcnRCcm9rZW49KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjA5LTUtOS42OS0zLjY5YTkuODcsOS44'@; put 'NywwLDAsMC02LDQuODQsMTguOSwxOC45LDAsMCwwLTIuMjMsNS4zM2w1LjI4LDIuMzQtNC42LDQuMzcsMy40OSw0LjEsMS41Mi0xLjNMMTguNTQsMjFsNS40LTUuMTNMMTcuNTgsMTNBMTYuMjMsMTYuMjMsMCwwLDEsMTkuNzUsOC45YTcuNjgsNy42OCwwLDAsMSw0LjExLTNjMy4zNC0uODks'@; put 'Ni4zNC42LDcuMzQsMi42NSwxLjU1LDMuMTguODUsNi43Mi0yLjE0LDEwLjgxQTU3LjE2LDU3LjE2LDAsMCwxLDE4LDMwLjE2LDU3LjE2LDU3LjE2LDAsMCwxLDYuOTQsMTkuMzNjLTMtNC4xLTMuNjktNy42NC0yLjE0LTEwLjgxYTUuOSw1LjksMCwwLDEsNS4zMy0yLjkzLDcuMzEsNy4zMSww'@; put 'LDAsMSwyLC4yOSw3LjcsNy43LDAsMCwxLDMuMzgsMmwuMTUtLjNhMTAuNjYsMTAuNjYsMCwwLDEsMS0xLjQxLDkuNjQsOS42NCwwLDAsMC0zLjk0LTIuMjJDOC4yLDIuNjYsNC4zNCw0Ljg5LDMsNy42NGMtMS44OCwzLjg1LTEuMSw4LjE4LDIuMzIsMTIuODdDOCwyNC4xOCwxMS44MywyNy45'@; put 'LDE3LjM5LDMyLjIyYTEsMSwwLDAsMCwxLjIzLDBjNS41NS00LjMxLDkuMzktOCwxMi4wNy0xMS43MUMzNC4xLDE1LjgyLDM0Ljg4LDExLjQ5LDMzLDcuNjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDcu'@; put 'NjRjLTEuMzQtMi43NS01LjItNS05LjY5LTMuNjlBMTEuNTUsMTEuNTUsMCwwLDAsMTguMTksNy41YTE2Ljg5LDE2Ljg5LDAsMCwwLTIuNDgsNC41NkwyMi4yNywxNSwxNi43LDIwLjI2LDE5LDIzbC0xLjU3LDEuMzQtMy42LTQuMjIsNC43NC00LjUxLTUuNDQtMi40MWExOS40OSwxOS40OSww'@; put 'LDAsMSwyLjMtNS41LDE0Ljc3LDE0Ljc3LDAsMCwxLDEuMDYtMS41NGwuMDYsMGE5LjY2LDkuNjYsMCwwLDAtMy44OS0yLjE4QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwx'@; put 'LDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxGLkNsclNoYXBlVGFsa0J1YmJsZXM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGgg'@; put 'ZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEz'@; put 'VjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlW'@; put 'N0EzLDMsMCwwLDAsMzEsNFpNMzIsMjIuOTQsMjguNSwyMC4yMWExLDEsMCwwLDAtLjYxLS4yMUgxNGExLDEsMCwwLDEtMS0xVjdhMSwxLDAsMCwxLDEtMUgzMUExLjEsMS4xLDAsMCwxLDMyLDcuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3'@; put 'LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2OS43MkwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0x'@; put 'LTFWN2ExLDEsMCwwLDEsMS0xSDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1i'@; put 'YWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTlWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCwwLDEtLjFMOC43MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMTRBNiw2LDAsMCwxLDgsMTlaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjdBMywzLDAsMCwwLDMxLDRaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMsMywwLDAsMC0zLDNWMzJhMSwxLDAsMCwwLC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYs'@; put 'MCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVs'@; put 'NC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjEyLjM3QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0i'@; put 'NiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxGLkNsclNoYXBlQ2hhdEJ1YmJsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0'@; put 'LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAt'@; put 'LjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMDgsMTEuMDgsMCwwLDEsMjguMjksMjQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0yNSwxNS41SDExYTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjc1LDIwLjVoLTcuNWExLDEsMCwwLDAsMCwyaDcuNWExLDEs'@; put 'MCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuMjgsMTIuNUgyNC43MmExLDEsMCwwLDAsMC0ySDExLjI4YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4zOCwxMi42OWE3LjQzLDcuNDMsMCwwLDEtMS44OS42NkExMC4zNSwxMC4zNSwwLDAsMSwzMiwxNi41YTExLjA4LDExLjA4LDAsMCwxLTMuNzEsOC4xMSwxLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwx'@; put 'LDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0xMmExNiwxNiwwLDAsMSw0LjU1LjY2QTcuNDQsNy40NCwwLDAsMSwyMywzLjIyYTE4LDE4LDAsMCwwLTUtLjcyYy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2'@; put 'LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0ExMi4zMiwxMi4zMiwwLDAsMCwzMy4zOCwxMi42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh'@; put 'ZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSwxNS41YTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC4yNSwy'@; put 'MC41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjgsMTEuNWExLDEsMCwwLDAsMSwxSDI0LjcyYTEsMSwwLDAsMCwu'@; put 'ODMtLjQ3QTcuNTMsNy41MywwLDAsMSwyNCwxMC41SDExLjI4QTEsMSwwLDAsMCwxMC4yOCwxMS41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUz'@; put 'LDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgsMi41Wm04LDE0YTEsMSwwLDAsMS0xLDFIMTFhMSwxLDAsMCwxLDAtMkgyNUExLDEsMCwwLDEsMjYsMTYuNVptLTMuMjUsNWExLDEsMCwwLDEtMSwxaC03LjVhMSwx'@; put 'LDAsMCwxLDAtMmg3LjVBMSwxLDAsMCwxLDIyLjc1LDIxLjVabS0xMi40Ny0xMGExLDEsMCwwLDEsMS0xSDI0LjcyYTEsMSwwLDAsMSwwLDJIMTEuMjhBMSwxLDAsMCwxLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTMwLDEzLjI1YTcuNDYsNy40NiwwLDAsMS00LjM1LTEuNCwxLDEsMCwwLDEtLjkzLjY1SDExLjI4YTEsMSwwLDAsMSwwLTJIMjQuMkE3LjQ2LDcuNDYsMCwwLDEsMjMsMy4yYTE4LDE4LDAsMCwwLTUtLjdjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgs'@; put 'MTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3LDEyLjM0LDEyLjM0LDAsMCwwLS42OC00QTcuNDYsNy40NiwwLDAsMSwzMCwxMy4yNVpNMjEuNzUsMjIuNWgtNy41YTEsMSwwLDAsMSwwLTJoNy41YTEsMSwwLDAs'@; put 'MSwwLDJabTMuMjUtNUgxMWExLDEsMCwwLDEsMC0ySDI1YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNS43NSIgcj0iNSIgIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEYuQ2xyU2hhcGVQaWN0dXJlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEy'@; put 'LDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywx'@; put 'MSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2'@; put 'LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAsMCwwLDIyLjc4LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAt'@; put 'MywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42LDAsMCwxLDcuMzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4z'@; put 'OCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwz'@; put 'MiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1i'@; put 'YWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45'@; put 'bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z'@; put 'MCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYu'@; put 'MDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwxLjQxLDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEYuQ2xyU2hhcGVIYXBweUZhY2U9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs'@; put 'MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC44OSIgY3k9IjEzLjg5IiByPSIyIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMDUiIGN5PSIxMy44OSIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4xMywy'@; put 'OC4yMWE4LjY3LDguNjcsMCwwLDAsOC4yNi02SDkuODdBOC42Nyw4LjY3LDAsMCwwLDE4LjEzLDI4LjIxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCww'@; put 'LDE4LDJaTTguODksMTMuODlhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsOC44OSwxMy44OVptOS4yNCwxNC4zMmE4LjY3LDguNjcsMCwwLDEtOC4yNi02SDI2LjM4QTguNjcsOC42NywwLDAsMSwxOC4xMywyOC4yMVptNi45My0xMi4zMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyNS4wNSwx'@; put 'NS44OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxGLkNsclNoYXBlTmV1dHJhbEZhY2U9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjA1LDIyLjA2aC0xMmExLDEsMCwwLDAsMCwyaDEyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm03LjA1LDIxLjA2YTEsMSwwLDAsMS0xLDFoLTEyYTEsMSwwLDAsMSwwLTJoMTJBMSwxLDAsMCwxLDI1'@; put 'LjA1LDIzLjA2Wk0yNywxNC4yOGExLjgsMS44LDAsMSwxLTEuOC0xLjhBMS44LDEuOCwwLDAsMSwyNywxNC4yOFptLTE1LjgsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjE2LDE2LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIv'@; put 'PicpLEYuQ2xyU2hhcGVTYWRGYWNlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMTYiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEuNDEiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjE2LDIwYTksOSwwLDAsMC03LjMzLDMuNzgsMSwxLDAsMSwwLDEuNjMsMS4xNiw3LDcsMCwwLDEsMTEuMzEtLjEzLDEsMSwwLDAsMCwxLjYtMS4yQTksOSwwLDAsMCwxOC4x'@; put 'NiwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm05LDEyLjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0'@; put 'LjI4Wm0tMTUuNTUsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjQxLDE2LjA4Wm0xNCw3LjUzYTEsMSwwLDAsMS0xLjYsMS4yLDcsNywwLDAsMC0xMS4zMS4xMywxLDEsMCwxLDEtMS42My0xLjE2LDksOSwwLDAsMSwxNC41NC0uMTdaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksRi5DbHJTaGFwZVRodW1ic1VwPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwyNmMtMi45MiwxLjgyLTcuMyw0LTkuMzcsNGgtNmExNi42OCwxNi42OCwwLDAsMS0zLjMxLTYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsNCwxNmg5VjZh'@; put 'Mi4wNSwyLjA1LDAsMCwxLDEuMjYtMS42OWMuNzcsMiwyLjYyLDYuNTcsNC4yMyw4LjcyQTExLjM5LDExLjM5LDAsMCwwLDI0LDE2LjkxVjE0Ljc4YTkuMTMsOS4xMywwLDAsMS0zLjkxLTNjLTEuODgtMi41MS00LjI5LTkuMTEtNC4zMS05LjE3QTEsMSwwLDAsMCwxNC41OSwyQzEzLjI1LDIu'@; put 'MzgsMTEsMy42LDExLDZ2OEgzYTEsMSwwLDAsMC0xLDEsMjksMjksMCwwLDAsMS40LDkuNjJjMS44OSw1LjQsNC4xLDcuMTQsNC4yLDcuMjJhMSwxLDAsMCwwLC42MS4yMWg2LjQyYzIuNDMsMCw2LjU1LTIsOS4zNy0zLjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMzFIMjdhMSwxLDAsMCwxLTEtMVYxNGExLDEsMCwwLDEsMS0xaDdabS02LTJoNFYxNUgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYz'@; put 'LDEyLjEyQzE3LjUxLDkuMjgsMTQuODgsMiwxNC44OCwyUzEyLDIuODMsMTIsNS4yNVYxNUgyLjIzYTI5LjQ2LDI5LjQ2LDAsMCwwLDEuNDQsOS43NEM1LjYxLDMwLjI3LDcuOCwzMiw3LjgsMzJoNi44NkMxNi45LDMyLDIxLDMwLjA2LDI0LDI4LjMxVjE1LjUxQTEwLjg0LDEwLjg0LDAsMCwx'@; put 'LDE5LjYzLDEyLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNywxM2ExLDEsMCwwLDAtMSwxVjMwYTEsMSwwLDAsMCwxLDFoN1YxM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+'@; put 'JyksRi5DbHJTaGFwZVRodW1ic0Rvd249KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEwYzIuOTItMS44Miw3LjMtNCw5LjM3LTRoNmExNi42OCwxNi42OCwwLDAsMSwzLjMxLDYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsMzIsMjBIMjNWMzBhMi4wNSwyLjA1LDAsMCwxLTEuMjYsMS42'@; put 'OWMtLjc3LTItMi42Mi02LjU3LTQuMjMtOC43MkExMS4zOSwxMS4zOSwwLDAsMCwxMiwxOS4wOXYyLjEzYTkuMTMsOS4xMywwLDAsMSwzLjkxLDNjMS44OCwyLjUxLDQuMjksOS4xMSw0LjMxLDkuMTdhMSwxLDAsMCwwLDEuMTkuNjNDMjIuNzUsMzMuNjIsMjUsMzIuNCwyNSwzMFYyMmg4YTEs'@; put 'MSwwLDAsMCwxLTEsMjksMjksMCwwLDAtMS40LTkuNjJjLTEuODktNS40LTQuMS03LjE0LTQuMi03LjIyQTEsMSwwLDAsMCwyNy43OSw0SDIxLjM3QzE4Ljk0LDQsMTQuODMsNiwxMiw3LjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMiw1SDlhMSwxLDAsMCwxLDEsMVYyMmExLDEsMCwwLDEtMSwxSDJaTTgsN0g0VjIxSDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi4zNywyMy44NGMyLjEyLDIuODQsNC43Niwx'@; put 'MC4wNyw0Ljc2LDEwLjA3UzI0LDMzLjEzLDI0LDMwLjcxVjIxaDkuNzdhMjkuNDYsMjkuNDYsMCwwLDAtMS40NC05Ljc0QzMwLjM5LDUuNjgsMjguMiw0LDI4LjIsNEgyMS4zNUMxOS4xLDQsMTUsNS45LDEyLDcuNjV2MTIuOEExMC44NCwxMC44NCwwLDAsMSwxNi4zNywyMy44NFoiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwyM2ExLDEsMCwwLDAsMS0xVjZBMSwxLDAsMCwwLDksNUgyVjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlQ3Jvd249KDAs'@; put 'bS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik00LDEzLjMzQTEuMzksMS4zOSwwLDEsMCwyLjYsMTQuNzIsMS4zOSwxLjM5LDAsMCwwLDQsMTMuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuODEsMTUuODRhMjAuMzUs'@; put 'MjAuMzUsMCwwLDAtNC41OCwxLjQzLDIyLjcsMjIuNywwLDAsMC0zLjQ4LDIuMUExNy42OSwxNy42OSwwLDAsMSwyMiwxNi41N2E0Ny42NSw0Ny42NSwwLDAsMS0yLjgtNy42OSwxLDEsMCwwLDAtMS0uNzQsMSwxLDAsMCwwLTEsLjc0LDQ2LjcxLDQ2LjcxLDAsMCwxLTIuOCw3LjY5LDE3LDE3'@; put 'LDAsMCwxLTEuNzYsMi44LDIyLjcsMjIuNywwLDAsMC0zLjQ4LTIuMSwyMC42NiwyMC42NiwwLDAsMC00LjU4LTEuNDMsMSwxLDAsMCwwLTEsLjM5LDEsMSwwLDAsMC0uMDksMS4wNUE1MC4xMyw1MC4xMywwLDAsMSw3LjgyLDMxLjE3YTEsMSwwLDAsMCwxLC44M0gyNy42MmExLDEsMCwwLDAs'@; put 'MS0uODMsNTAuMTUsNTAuMTUsMCwwLDEsNC4yNi0xMy44OSwxLDEsMCwwLDAtLjA5LTEuMDVBMSwxLDAsMCwwLDMxLjgxLDE1Ljg0Wk0yNi43OSwzMEg5LjY0YTU1LjY2LDU1LjY2LDAsMCwwLTMuNC0xMS43MSwxNS43NSwxNS43NSwwLDAsMSwyLjA5Ljc4LDIwLDIwLDAsMCwxLDMuODUsMi40'@; put 'NSwxLDEsMCwwLDAsMS4zOS0uMDksMTkuMjgsMTkuMjgsMCwwLDAsMi42Ny00LDQzLjQ2LDQzLjQ2LDAsMCwwLDItNC44OSw0MS43NCw0MS43NCwwLDAsMCwyLDQuODksMTkuOTIsMTkuOTIsMCwwLDAsMi42Niw0LDEsMSwwLDAsMCwxLjQuMDksMTkuMjEsMTkuMjEsMCwwLDEsMy44NS0yLjQ1'@; put 'LDE0Ljc3LDE0Ljc3LDAsMCwxLDIuMDktLjc4QTU1LjA3LDU1LjA3LDAsMCwwLDI2Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE4LjIyLDYuMzlBMS4zOSwxLjM5LDAsMSwwLDE2Ljg0LDUsMS4zOSwxLjM5LDAsMCwwLDE4LjIyLDYuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0'@; put 'aCBkPSJNMTguMjMsMjYuMzRhMS4xMSwxLjExLDAsMSwwLDEuMSwxLjFBMS4xLDEuMSwwLDAsMCwxOC4yMywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMi41OCwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUEx'@; put 'LjEsMS4xLDAsMCwwLDEyLjU4LDI2LjM0WiIvPjxwYXRoIGQ9Ik0yMy44OSwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDIzLjg5LDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cblxuICA8cGF0aCBkPSJNMi42'@; put 'LDExLjkzQTEuNCwxLjQsMCwxLDAsNCwxMy4zMywxLjQsMS40LDAsMCwwLDIuNiwxMS45M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYuODQsNSwxLjM5LDEuMzksMCwwLDAsMTguMjIsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjYzLDE2'@; put 'LjFBMTguNjEsMTguNjEsMCwwLDAsMjgsMTcuMzRhMjEuNTcsMjEuNTcsMCwwLDAtNCwyLjQ5LDE5LjIsMTkuMiwwLDAsMS0yLjI2LTMuNDksNDguOTIsNDguOTIsMCwwLDEtMi41Mi02LjU4LDEsMSwwLDAsMC0xLS43MWgwYTEsMSwwLDAsMC0xLC43MSw0OC40Miw0OC40MiwwLDAsMS0yLjUy'@; put 'LDYuNTgsMTguNjksMTguNjksMCwwLDEtMi4yNiwzLjQ4LDIyLjgxLDIyLjgxLDAsMCwwLTQtMi40OEExOC44MywxOC44MywwLDAsMCw0LjksMTYuMWExLDEsMCwwLDAtMSwuMzMsMSwxLDAsMCwwLS4xMywxLjA3LDU1LjksNTUuOSwwLDAsMSw0LDEzLjUsMSwxLDAsMCwwLDEsLjgzaDE5YTEs'@; put 'MSwwLDAsMCwxLS44Myw1NS45LDU1LjksMCwwLDEsNC0xMy41LDEsMSwwLDAsMC0uMTMtMS4wN0ExLDEsMCwwLDAsMzEuNjMsMTYuMVpNMTEuMDgsMjguNTVhMS4xMSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwxMS4wOCwyOC41NVptNy4xNSwwYTEuMTEsMS4xMSwwLDAs'@; put 'MSwwLTIuMjEsMS4xMSwxLjExLDAsMCwxLDAsMi4yMVptNy4xNiwwYTEuMTEsMS4xMSwwLDEsMSwxLjEtMS4xMUExLjExLDEuMTEsMCwwLDEsMjUuMzksMjguNTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gICcpLEYuQ2xyU2hhcGVIYXNodGFnPSgwLG0u'@; put 'Y2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsMTJIMjUuMzRsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwyMy4zLDEySDE1LjExbDEuNTUtNy43NGExLDEsMCwwLDAtMi0uMzlMMTMuMDcsMTJINmExLDEsMCwwLDAsMCwyaDYuNjdsLTEuNiw4SDRhMSwxLDAsMCwwLDAsMmg2LjY2TDku'@; put 'MTEsMzEuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjY4LjY4LDAsMCwwLC4yLDAsMSwxLDAsMCwwLDEtLjhMMTIuNywyNGg4LjE5bC0xLjU1LDcuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjYyLjYyLDAsMCwwLC4xOSwwLDEsMSwwLDAsMCwxLS44TDIyLjkzLDI0SDMwYTEsMSwwLDAsMCwwLTJIMjMu'@; put 'MzNsMS42MS04SDMyYTEsMSwwLDAsMCwwLTJaTTIxLjI5LDIySDEzLjFsMS42MS04SDIyLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMS44NywxMEgyNi4zMmwxLTQuODNBMSwxLDAsMCwwLDI2LjM1LDRoLTJhMSwxLDAs'@; put 'MCwwLTEsLjc4TDIyLjMzLDEwaC01LjRsMS00LjgzQTEsMSwwLDAsMCwxNyw0SDE1YTEsMSwwLDAsMC0xLC43OEwxMywxMEg3YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJoNS41NUwxMC41LDIyaC02YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJI'@; put 'OS42OGwtMSw0LjgzYTEsMSwwLDAsMCwxLDEuMTdoMmExLDEsMCwwLDAsLjk1LS43OEwxMy42NywyNmg1LjRsLTEsNC44M0ExLDEsMCwwLDAsMTksMzJoMmExLDEsMCwwLDAsMS0uNzhMMjMuMDUsMjZoNmExLDEsMCwwLDAsMS0uOGwuNC0yYTEsMSwwLDAsMC0xLTEuMkgyMy44N2wxLjYzLTho'@; put 'NmExLDEsMCwwLDAsMS0uOGwuNDEtMkExLDEsMCwwLDAsMzEuODcsMTBabS0xMiwxMmgtNS40bDEuNjQtOGg1LjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLEYuU29jaWFsU2hhcGVzPXtjcm93bjpGLkNsclNoYXBlQ3Jvd24sc2hhcmU6Ri5DbHJT'@; put 'aGFwZVNoYXJlLHN0YXI6Ri5DbHJTaGFwZVN0YXIsImhhbGYtc3RhciI6Ri5DbHJTaGFwZUhhbGZTdGFyLGJvb2ttYXJrOkYuQ2xyU2hhcGVCb29rbWFyayxlbnZlbG9wZTpGLkNsclNoYXBlRW52ZWxvcGUsY2FsZW5kYXI6bGUuQ2xyU2hhcGVDYWxlbmRhcixldmVudDpsZS5DbHJTaGFwZUV2'@; put 'ZW50LHRhc2tzOkYuQ2xyU2hhcGVUYXNrcyxmbGFnOkYuQ2xyU2hhcGVGbGFnLGluYm94OkYuQ2xyU2hhcGVJbmJveCxoYXNodGFnOkYuQ2xyU2hhcGVIYXNodGFnLGhlYXJ0OkYuQ2xyU2hhcGVIZWFydCwiaGVhcnQtYnJva2VuIjpGLkNsclNoYXBlSGVhcnRCcm9rZW4sInRhbGstYnViYmxl'@; put 'cyI6Ri5DbHJTaGFwZVRhbGtCdWJibGVzLCJjaGF0LWJ1YmJsZSI6Ri5DbHJTaGFwZUNoYXRCdWJibGUscGljdHVyZTpGLkNsclNoYXBlUGljdHVyZSwiaGFwcHktZmFjZSI6Ri5DbHJTaGFwZUhhcHB5RmFjZSwibmV1dHJhbC1mYWNlIjpGLkNsclNoYXBlTmV1dHJhbEZhY2UsInNhZC1mYWNl'@; put 'IjpGLkNsclNoYXBlU2FkRmFjZSwidGh1bWJzLXVwIjpGLkNsclNoYXBlVGh1bWJzVXAsInRodW1icy1kb3duIjpGLkNsclNoYXBlVGh1bWJzRG93bn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuU29jaWFsU2hhcGVzLCJmYXZvcml0ZSIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLlNvY2lh'@; put 'bFNoYXBlcy5zdGFyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuU29jaWFsU2hhcGVzLCJlbWFpbCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLlNvY2lhbFNoYXBlcy5lbnZlbG9wZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLlNvY2lhbFNoYXBlcywiZGF0ZSIsKDAseC5kZXNjcmlw'@; put 'dG9yQ29uZmlnKShGLlNvY2lhbFNoYXBlcy5jYWxlbmRhcikpLHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChGLlNvY2lhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMv'@; put 'dGVjaG5vbG9neS1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZWNobm9sb2d5LXNoYXBlcy50cyAqKiohCiAg'@; put 'ICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGLCJfX2Vz'@; put 'TW9kdWxlIix7dmFsdWU6ITB9KSxGLkNsclNoYXBlVk1XQXBwPUYuQ2xyU2hhcGVWTT1GLkNsclNoYXBlUm91dGVyPUYuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPUYuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9Ri5DbHJTaGFwZU5ldHdvcmtHbG9iZT1GLkNsclNoYXBlVGFibGV0PUYuQ2xyU2hh'@; put 'cGVNb2JpbGU9Ri5DbHJTaGFwZUJhdHRlcnk9Ri5DbHJTaGFwZUFwcGxpY2F0aW9uPUYuQ2xyU2hhcGVDb2RlPUYuQ2xyU2hhcGVUZXJtaW5hbD1GLkNsclNoYXBlRGlzcGxheT1GLkNsclNoYXBlQ29tcHV0ZXI9Ri5DbHJTaGFwZUZsb3BweT1GLkNsclNoYXBlUGx1Z2luPUYuQ2xyU2hhcGVE'@; put 'b3dubG9hZENsb3VkPUYuQ2xyU2hhcGVVcGxvYWRDbG91ZD1GLkNsclNoYXBlRXhwb3J0PUYuQ2xyU2hhcGVJbXBvcnQ9Ri5DbHJTaGFwZVNoaWVsZFg9Ri5DbHJTaGFwZVNoaWVsZD1GLkNsclNoYXBlU2hpZWxkQ2hlY2s9Ri5DbHJTaGFwZVJlc291cmNlUG9vbD1GLkNsclNoYXBlRGF0YUNs'@; put 'dXN0ZXI9Ri5DbHJTaGFwZU1lbW9yeT1GLkNsclNoYXBlQ1BVPUYuQ2xyU2hhcGVCdWlsZGluZz1GLkNsclNoYXBlQXBwbGljYXRpb25zPUYuQ2xyU2hhcGVDbHVzdGVyPUYuQ2xyU2hhcGVTdG9yYWdlPUYuQ2xyU2hhcGVIb3N0PUYuQ2xyU2hhcGVEYXNoYm9hcmQ9Ri5DbHJTaGFwZU1vdXNl'@; put 'PUYuQ2xyU2hhcGVLZXlib2FyZD1GLkNsclNoYXBlRGV2aWNlcz1GLkNsclNoYXBlQmFja3VwPUYuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlPUYuQ2xyU2hhcGVIYXJkRGlzaz1GLkNsclNoYXBlUmFja1NlcnZlcj1GLkNsclNoYXBlV2lmaT1GLkNsclNoYXBlQnVuZGxlPUYuQ2xyU2hhcGVCbG9j'@; put 'a3NHcm91cD1GLkNsclNoYXBlQmxvY2s9Ri5DbHJTaGFwZUxheWVycz1GLkNsclNoYXBlVW5pbnN0YWxsPUYuQ2xyU2hhcGVJbnN0YWxsPUYuQ2xyU2hhcGVOb1dpZmk9Ri5DbHJTaGFwZVBob25lSGFuZHNldD1GLkNsclNoYXBlUnVsZXJQZW5jaWw9dm9pZCAwLEYuVGVjaG5vbG9neVNoYXBl'@; put 'cz1GLkNsclNoYXBlRmlsZVNoYXJlMj1GLkNsclNoYXBlQ2lDZD1GLkNsclNoYXBlQW5pbWF0aW9uPUYuQ2xyU2hhcGVUYXBlRHJpdmU9Ri5DbHJTaGFwZU1lZGlhQ2hhbmdlcj1GLkNsckNvbnRyb2xMdW49Ri5DbHJTaGFwZVBvZD1GLkNsclNoYXBlTm9kZT1GLkNsclNoYXBlTmFtZXNwYWNl'@; put 'PUYuQ2xyU2hhcGVOb2Rlcz1GLkNsclNoYXBlTm9kZUdyb3VwPUYuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj1GLkNsclNoYXBlSG9zdEdyb3VwPUYuQ2xyU2hhcGVTcXVpZD1GLkNsclNoYXBlQ2FwYWNpdG9yPUYuQ2xyU2hhcGVSZXNpc3Rvcj1GLkNsclNoYXBlSW5kdWN0b3I9Ri5DbHJTaGFw'@; put 'ZVJhZGFyPUYuQ2xyU2hhcGVVc2I9Ri5DbHJTaGFwZVFyQ29kZT1GLkNsclNoYXBlRmlsZVNoYXJlPUYuQ2xyU2hhcGVDb250YWluZXJWb2x1bWU9Ri5DbHJTaGFwZUNvbnRhaW5lcj1GLkNsclNoYXBlQ2REdmQ9Ri5DbHJTaGFwZUJhckNvZGU9Ri5DbHJTaGFwZUF0b209Ri5DbHJTaGFwZUFz'@; put 'c2lnblVzZXI9Ri5DbHJTaGFwZVByb2Nlc3NPblZNPUYuQ2xyU2hhcGVCbHVldG9vdGhPZmY9Ri5DbHJTaGFwZUJsdWV0b290aD1GLkNsclNoYXBlU1NEPUYuQ2xyU2hhcGVOVk1lPUYuQ2xyU2hhcGVIYXJkRHJpdmVEaXNrcz1GLkNsclNoYXBlSGFyZERyaXZlPUYuQ2xyU2hhcGVBZG1pbmlz'@; put 'dHJhdG9yPUYuQ2xyU2hhcGVGbGFzaz1GLkNsclNoYXBlSGVsaXg9Ri5DbHJTaGFwZURlcGxveT1GLkNsclNoYXBlQ2xvdWRUcmFmZmljPUYuQ2xyU2hhcGVDbG91ZFNjYWxlPUYuQ2xyU2hhcGVDbG91ZE5ldHdvcms9Ri5DbHJTaGFwZVVubGluaz1GLkNsclNoYXBlTGluaz1GLkNsclNoYXBl'@; put 'RGlzY29ubmVjdD1GLkNsclNoYXBlQ29ubmVjdD1GLkNsclNoYXBlVW5hcmNoaXZlPUYuQ2xyU2hhcGVBcmNoaXZlPUYuQ2xyU2hhcGVDZXJ0aWZpY2F0ZT12b2lkIDA7dmFyIHg9YWUoCi8qISAuLi91dGlscy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRp'@; put 'bHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxtPWFlKAovKiEgLi4vdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7Ri5DbHJTaGFwZVJ1bGVyUGVuY2lsPSgwLG0uY2xySWNvblNWRykoJzxwb2x5Z29u'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBwb2ludHM9IjkgMTcuNDEgOSAyNyAxOC41OSAyNyAxNi41OSAyNSAxMSAyNSAxMSAxOS40MSA5IDE3LjQxIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMiIgZD0iTTM0Ljg3LDMyLjI5LDMyLDI5LjM4VjMySDRWMjcuODVINnYtMS42SDRWMTkuNkg2VjE4SDRWMTEuNkg2VjEwSDRWNC40MUwxOS45NCwyMC4yNlYxNy40NEwzLjcxLDEuMjlBMSwxLDAsMCwwLDIsMlYzM2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVoi'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjQsMzBoNGEyLDIsMCwwLDAsMi0yVjguN0wyNy43LDQuNDdhMiwyLDAsMCwwLTEuNzYtMWgwYTIsMiwwLDAsMC0xLjc2LDEuMDhMMjIsOC43MlYyOEEyLDIsMCwwLDAs'@; put 'MjQsMzBaTTI0LDkuMmwxLjk0LTMuNzdMMjgsOS4yMVYyNEgyNFptMCwxNi40M2g0djIuNDRIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuODcsMzIuMjEsMzAsMjcuMzdWOC43NUwyNy43LDQuNTJhMiwyLDAs'@; put 'MCwwLTMuNTQsMEwyMiw4Ljc2VjE5LjQxTDMuNzEsMS4yMUExLDEsMCwwLDAsMiwxLjkyVjEwSDQuMTd2MS42SDJWMThINC4xN3YxLjZIMnY2LjY1SDQuMTd2MS42SDJ2NS4wN2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVpNMTAsMjZWMTYuOTRMMTkuMDcsMjZabTE4'@; put 'LDIuMTFIMjRWMjUuNjhoNFptMC00SDI0VjkuMjVsMS45NC0zLjc3TDI4LDkuMjZaIi8+XG4nKSxGLkNsclNoYXBlUGhvbmVIYW5kc2V0PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuNzMsMzUuNDRhNC43'@; put 'Miw0LjcyLDAsMCwxLTEtLjExLDMzLjkxLDMzLjkxLDAsMCwxLTE2LjYyLTguNzUsMzIuNzEsMzIuNzEsMCwwLDEtOS0xNi4yNUE0LjU4LDQuNTgsMCwwLDEsMi40Niw2LjA1bDQtMy44NUEyLDIsMCwwLDEsOCwxLjY2YTIsMiwwLDAsMSwxLjQ1Ljg3bDUsNy4zOWExLjYsMS42LDAsMCwxLS4x'@; put 'MSwxLjlsLTIuNTEsM2ExOC45NCwxOC45NCwwLDAsMCw0LjE3LDUuODloMGExOS4yNiwxOS4yNiwwLDAsMCw2LjA3LDQuMDlsMy4xMS0yLjQ3YTEuNjQsMS42NCwwLDAsMSwxLjg2LS4xMmw3LjU1LDQuODhBMiwyLDAsMCwxLDM1LDMwLjJsLTMuOSwzLjg2QTQuNzQsNC43NCwwLDAsMSwyNy43'@; put 'MywzNS40NFpNNy44NCwzLjY0bC00LDMuODVhMi41NCwyLjU0LDAsMCwwLS43NSwyLjQsMzAuNywzMC43LDAsMCwwLDguNDEsMTUuMjYsMzEuOSwzMS45LDAsMCwwLDE1LjY0LDguMjMsMi43NSwyLjc1LDAsMCwwLDIuNS0uNzRsMy45LTMuODYtNy4yOS00LjcxLTMuMzQsMi42NmExLDEsMCww'@; put 'LDEtLjkyLjE3LDIwLjA2LDIwLjA2LDAsMCwxLTcuMzYtNC43NWgwYTE5LjQ5LDE5LjQ5LDAsMCwxLTQuODctNy4yQTEsMSwwLDAsMSwxMCwxNGwyLjctMy4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4yMiwy'@; put 'MC42NGEyMC4zNywyMC4zNywwLDAsMCw3LjQsNC43OWwzLjc3LTNhLjY3LjY3LDAsMCwxLC43NiwwbDcsNC41MWEyLDIsMCwwLDEsLjMzLDMuMThsLTMuMjgsMy4yNGE0LDQsMCwwLDEtMy42MywxLjA3LDM1LjA5LDM1LjA5LDAsMCwxLTE3LjE1LTlBMzMuNzksMzMuNzksMCwwLDEsMS4xNSw4'@; put 'LjZhMy43OCwzLjc4LDAsMCwxLDEuMS0zLjU1bDMuNC0zLjI4YTIsMiwwLDAsMSwzLjEyLjMyTDEzLjQzLDlhLjYzLjYzLDAsMCwxLDAsLjc1bC0zLjA3LDMuNjlBMTkuNzUsMTkuNzUsMCwwLDAsMTUuMjIsMjAuNjRaIi8+XG4nKSxGLkNsclNoYXBlTm9XaWZpPSgwLG0uY2xySWNvblNWRyko'@; put 'JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuNDJhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMjQuNDJabTAsNmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwzMC40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYuMjEsMjEuODVhMSwxLDAsMCwwLS4yMy0xLjQsMTMuNTYsMTMuNTYsMCwwLDAtNS0yLjIzbDMuODcsMy44N0ExLDEsMCwwLDAsMjYuMjEsMjEuODVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDEwLjcyYTIwLjg4LDIwLjg4LDAsMCwwLTQuMTYuNDNsMS43NCwxLjc0YTE5LDE5LDAsMCwxLDIuNDItLjE3QTE4Ljc2LDE4Ljc2LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAs'@; put 'MTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMzLjU1LDguMkEyOC4xMSwyOC4xMSwwLDAsMCw4LjExLDUuMzZMOS42OSw2LjkzQTI2LDI2LDAsMCwxLDMyLjQ1LDkuODdhMSwxLDAsMCwwLDEu'@; put 'MS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xLjg0LDQuNzUsNC4yNyw3LjE4Yy0uNjIuMzQtMS4yMy43LTEuODMsMS4xQTEsMSwwLDEsMCwzLjU2LDkuOTRDNC4yNiw5LjQ3LDUsOSw1Ljc0LDguNjVs'@; put 'My44NywzLjg3QTIwLjU5LDIwLjU5LDAsMCwwLDYuMjMsMTQuNCwxLDEsMCwwLDAsNy4zNiwxNmExOC44MiwxOC44MiwwLDAsMSwzLjc3LTJsNC4xNiw0LjE2QTEzLjUxLDEzLjUxLDAsMCwwLDEwLDIwLjU1YTEsMSwwLDAsMCwxLjE4LDEuNjFBMTEuNTIsMTEuNTIsMCwwLDEsMTcsMjBsMTAu'@; put 'OCwxMC44LDEuNDEtMS40MS0yNi0yNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjkuNTQiIHI9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTIiIGQ9Ik0yOS4xOCwxNy43MWwuMTEtLjE3YTEuNTEsMS41MSwwLDAsMC0uNDctMi4xQTIwLjU3LDIwLjU3LDAsMCwwLDE4LDEyLjM3Yy0uNTYsMC0xLjExLDAtMS42NS4wN2wzLjIxLDMuMjFhMTcuNDEsMTcuNDEsMCwwLDEsNy42LDIuNTJBMS40OSwxLjQ5LDAsMCwwLDI5LjE4LDE3'@; put 'LjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMyLjc2LDkuMzhBMjcuOSwyNy45LDAsMCwwLDEwLjE4LDYuMjdMMTIuODEsOC45QTI0LjY4LDI0LjY4LDAsMCwxLDMxLjEsMTIuMTJhMS40OSwxLjQ5LDAsMCwwLDIt'@; put 'LjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMyw0Ljc1bDMuMSwzLjFBMjcuMjgsMjcuMjgsMCwwLDAsMy4xOCw5LjQyYTEuNTEsMS41MSwwLDAsMC0u'@; put 'NDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY5LDI0LjY5LDAsMCwxLDMuNjctMS45bDMuMTQsMy4xNGEyMC42MywyMC42MywwLDAsMC00LjUzLDIuMDksMS41MSwxLjUxLDAsMCwwLS40NiwyLjFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NkExNy40NiwxNy40'@; put 'NiwwLDAsMSwxNC4yNSwxNmwzLjYsMy42YTEzLjM5LDEzLjM5LDAsMCwwLTYuNzksMS45MywxLjUsMS41LDAsMCwwLS40NiwyLjA5bC4xLjE2YTEuNTIsMS41MiwwLDAsMCwyLjA2LjQ0LDEwLjIsMTAuMiwwLDAsMSw5LS43TDI5LDMwLjc1bDEuNDEtMS40MS0yNi0yNloiLz5cbicpLEYuQ2xy'@; put 'U2hhcGVJbnN0YWxsPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBh'@; put 'MiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEwLjMsMTguODdsNyw2Ljg5YTEsMSwwLDAsMCwxLjQsMGw3'@; put 'LTYuODlhMSwxLDAsMCwwLTEuNC0xLjQzTDE5LDIyLjY1VjRhMSwxLDAsMCwwLTIsMFYyMi42NWwtNS4zLTUuMjFhMSwxLDAsMCwwLTEuNCwxLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2Vk'@; put 'IiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+PHBhdGggZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEs'@; put 'MCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAs'@; put 'MCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUs'@; put 'MS4xNFoiLz5cbicpLEYuQ2xyU2hhcGVVbmluc3RhbGw9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43'@; put 'LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCww'@; put 'LDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUu'@; put 'MjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEz'@; put 'LjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMjksMjYuNzJhMSwxLDAsMCwwLDEuNDEsMEwxOCwyMS40OWw1LjMsNS4yM0ExLDEsMCwwLDAsMjQuNywyNS4zbC01LjI4LTUuMjEsNC43NS00LjY5SDIyLjIzYTMuNjUsMy42NSwwLDAsMS0uODEtLjFMMTgsMTgu'@; put 'NjhsLTUuMy01LjIzYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS4yOCw1LjIxTDExLjMsMjUuM0ExLDEsMCwwLDAsMTEuMjksMjYuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMx'@; put 'LDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLEYuQ2xyU2hh'@; put 'cGVMYXllcnM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWEx'@; put 'LDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVpNNS4zNCwxMi4xNmwxMi42Niw2LDEyLjY2LTZMMTgsNi4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjYuMTZhMSwxLDAs'@; put 'MCwxLS40My0uMUwyLjU3LDE5YTEsMSwwLDEsMSwuODUtMS44MUwxOCwyNC4wNmwxNC41Ny02Ljg5QTEsMSwwLDEsMSwzMy40MywxOWwtMTUsNy4wOUExLDEsMCwwLDEsMTgsMjYuMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLC44NS0xLjgxTDE4LDMwbDE0LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVoiLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xOCwyNi4xNmExLDEsMCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSww'@; put 'LDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOCwzMi4wN2ExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwuODUtMS44MUwxOCwzMGwxNC41Ny02Ljg5YTEsMSwwLDEsMSwuODUs'@; put 'MS44MUwxOC40MywzMkExLDEsMCwwLDEsMTgsMzIuMDdaIi8+XG4nKSxGLkNsclNoYXBlQmxvY2s9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQyLDkuMDlsLTEzLTZhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmEx'@; put 'LDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTBBMSwxLDAsMCwwLDMxLjQyLDkuMDlaTTE4LDUuMSwyOC42MSwxMCwxOCwxNC45LDcuMzksMTBaTTYsMTEuNTZsMTEsNS4wOHYxNC44TDYsMjYuMzZaTTE5LDMxLjQ0VjE2LjY0bDExLTUuMDh2MTQuOFoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjUzVjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDIuNTctMS4xOWEzLjY3LDMuNjcsMCwwLDEtMi4xMS0xLjIyTDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsMy4wOCwxLjQyLDEtMS43NEwx'@; put 'OC40MiwzLjA5YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEsMCwwLDAsLjU4LjkxbDEzLDZhMSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjE1LjUzWk0xNywzMS40NCw2LDI2LjM2VjExLjU2bDExLDUuMDhaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NywxLjI2bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkySDMzLjdhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkyTDI5LjA4LDEuMjZBMS4yOCwx'@; put 'LjI4LDAsMCwwLDI2Ljg3LDEuMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3'@; put 'LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmEx'@; put 'LDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDMxLjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAg'@; put 'ICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMt'@; put 'NmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsMTQuOSw3LjM5LDEwLDE4LDUuMSwyOC42MSwxMFpNMzAsMjYu'@; put 'MzYsMTksMzEuNDRWMTYuNjRsMTEtNS4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuMzh2MTFMMTksMzEuNDRWMTYuNjRsMi43OS0xLjI5YTMuNjgsMy42OCwwLDAsMS0yLjI1LTEuMTZMMTgsMTQuOSw3'@; put 'LjM5LDEwLDE4LDUuMWwzLDEuMzksMS0xLjc1TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTIsMjEuMTMsMTFhMS4yNywxLjI3LDAsMCwwLDEuMSwxLjkxSDMzLjY4QTEuMjcsMS4yNywwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjEyQTEuMjgsMS4yOCwwLDAs'@; put 'MCwyNi44NSwxLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEt'@; put 'Mi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0'@; put 'LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksRi5DbHJTaGFwZUJsb2Nrc0dyb3VwPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0z'@; put 'LjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBs'@; put 'Ny41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yLjgxLjkxTDI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1Wk0xOC4xLDQuMDhsNS4xMSwyLjM1TDE4LjEsOC43OCwxMyw2LjQzWk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIy'@; put 'LDUuNDksMTkuNjdabTYuNSwxMS40OS02LjUsMy02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhaTTExLjYsMTUuNTdoMFY4bDYuMDgsMi44YTEsMSwwLDAsMCwuODQsMEwyNC42LDh2Ny41OGgwbC02LjUsM1pNMzIuMTEsMjguODFsLTYuNSwzLTYuNTEtM1Yy'@; put 'MS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3aC0ydjBsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCww'@; put 'bC4yNC0uMTFhNC4xNyw0LjE3LDAsMCwxLC4yOS0uNjVsMS4zMy0yLjMxLTIuMjgsMUwxMyw2LjQzbDUuMS0yLjM1LDMuNDcsMS42LDEtMS43M0wxOC41LDIuMDhhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTgu'@; put 'OTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEw'@; put 'LjYsMjIsNS40OSwxOS42N1ptMCwxNC40OS02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTE1LTE0LjQ4LDUuMTEsMi4zNUwyNS42MSwyMiwyMC41LDE5LjY3Wm0wLDE0LjQ5LTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRs'@; put 'Ni4wOC0yLjgsMCw3LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4x'@; put 'LTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWMTIuN2E3LjU4'@; put 'LDcuNTgsMCwwLDEtMi0xLjUxdjQuMzlsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwTDIzLDguNzJhNy4wNSw3LjA1LDAsMCwxLS40Ny0ybC00LjQ3LDJMMTMsNi40M2w1LjEtMi4zNSw0LjQ0LDJzMC0uMDYsMC0uMDlhNy41NSw3LjU1LDAsMCwxLC4yNy0ybC00LjMt'@; put 'MmExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0z'@; put 'LjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAuNiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4x'@; put 'MSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4'@; put 'PSIzMC4wMyIgY3k9IjYuMDMiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1'@; put 'YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41'@; put 'LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1LDUuMTEsMi4zNVptLTEtNi40NC02LjQ0LDNWMTAuODdhMSwxLDAsMCwwLC4zNS0uMDhMMjQuNiw4djcuNThaTTE4LjEsNC4wOGw1LjExLDIu'@; put 'MzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptNi41LDExLjQ5LTYuNSwzaDBWMjQuMTFoMEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhabTE1LDAtNi40NiwzVjI0LjExQTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N3YwaC0ydjBsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOGwuMTQtLjA2QTMuMjMsMy4yMywwLDAsMSwxOSwxMGwxLjI4LTIuMjItMi4xNCwxTDEz'@; put 'LDYuNDNsNS4xLTIuMzUsMy4zOSwxLjU2LDEtMS43My00LTEuODNhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4'@; put 'LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yOCwuOTEsNS4xMS0yLjM2LDUuMTEsMi4zNUwxMC42LDIyWk0xMC42LDMxLjhWMjQuMTFBMS4wOCwxLjA4LDAsMCwwLDExLDI0bDYu'@; put 'MDgtMi44LDAsNy42Wm05LjktMTIuMTMsNS4xMS0yLjM1LDUuMTEsMi4zNUwyNS42MSwyMlpNMjUuNjQsMzEuOFYyNC4xMUEuODkuODksMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAv'@; put 'PlxuPHBhdGggZD0iTTI2Ljg5LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjcsMTNIMzMuNzJhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjEsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODksMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N1YxMi42OWE3LjY2LDcuNjYsMCwwLDEtMi0xLjQ3djQuMzRsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOEwyMyw4LjczYTcuNjUsNy42NSwwLDAs'@; put 'MS0uNDgtMmwtNC40MiwyTDEzLDYuNDNsNS4xLTIuMzUsNC4zOCwyVjZhNy41NSw3LjU1LDAsMCwxLC4yNy0yTDE4LjUsMi4wOGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwu'@; put 'NTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYs'@; put 'MzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0xMi4xMyw1LjExLTIuMzUsNS4xMSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk'@; put 'Z2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuPGNpcmNsZSBjeD0iMjkuOTgiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxGLkNsclNoYXBlQnVuZGxlPSgwLG0uY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwu'@; put 'ODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWk01LDEyLjEzLDE2LDE3LjRWMzEuNDZMNSwyNi4y'@; put 'Wk0xOCwzMS40NVYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEs'@; put 'MSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEy'@; put 'LjkxWm0xLDE1LjhWMTcuMzZsMTMtNi4yOXYxNC4xWiIvPlxuJyksRi5DbHJTaGFwZVdpZmk9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy41NSw4LjJhMjguMSwyOC4xLDAsMCwwLTMxLjExLjA4QTEsMSww'@; put 'LDEsMCwzLjU2LDkuOTRhMjYuMTEsMjYuMTEsMCwwLDEsMjguODktLjA3LDEsMSwwLDAsMCwxLjEtMS42N1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTguMDUsMTAuNzJBMjAuNzQsMjAuNzQsMCwwLDAsNi4y'@; put 'MywxNC40LDEsMSwwLDAsMCw3LjM2LDE2LDE4Ljg1LDE4Ljg1LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MyIgZD0iTTE4LjA1LDE3LjlhMTMuNTEsMTMuNTEsMCwwLDAtOCwyLjY0LDEsMSwwLDAsMCwxLjE4LDEuNjEsMTEuNTYsMTEuNTYsMCwwLDEsMTMuNjItLjA4QTEsMSwwLDEsMCwyNiwyMC40NiwxMy41MiwxMy41MiwwLDAsMCwxOC4wNSwxNy45WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCwyNC40MmE0LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLjc2LDkuMzhhMjcuODcsMjcuODcsMCwwLDAtMjkuNTcsMCwxLjUxLDEuNTEsMCwwLDAt'@; put 'LjQ4LDIuMTFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NiwyNC42OCwyNC42OCwwLDAsMSwyNi4yNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwzMi43Niw5LjM4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI4LjgyLDE1LjQ0YTIwLjU5LDIwLjU5LDAsMCwwLTIxLjcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDE3LjQsMTcuNCwwLDAsMSwxOC4zNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3'@; put 'QTEuNTEsMS41MSwwLDAsMCwyOC44MiwxNS40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC44OCwyMS40OWExMy40MSwxMy40MSwwLDAsMC0xMy44MiwwLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41'@; put 'MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMjcsMTAuMjcsMCwwLDEsMTAuNDIsMCwxLjUyLDEuNTIsMCwwLDAsMi4wNi0uNDVsLjEtLjE2QTEuNDksMS40OSwwLDAsMCwyNC44OCwyMS40OVoiLz5cbicpLEYuQ2xyU2hhcGVSYWNrU2VydmVyPSgwLG0uY2xySWNvblNWRykoJzxyZWN0IGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0t'@; put 'YWxlcnRlZCIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LjY0LDExQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTB2MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgzMlYyMUg0VjE1SDIwLjU4QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41Nkg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEy'@; put 'LDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTQsMjlWMjNIMzJ2NloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4x'@; put 'MywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5c'@; put 'biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTAiIHk9IjE3IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIx'@; put 'NCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0xMCwxMUgyNHYtLjUxQTcuNDgsNy40OCwwLDAsMSwyMy4xMyw5SDEwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi42OC0uNUg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlh'@; put 'MiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjZINFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1i'@; put 'YWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTAiIHk9IjkiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9'@; put 'IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDdIMzJ2Nkg0Wm0wLDhIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNiIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTksOS44OSwxOS41Niw5SDEwVjdIMjAuNzFsMS43My0zSDRBMiwyLDAsMCwwLDIsNnY2SDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5Wk04LDlINlY3SDhaIi8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMnY4SDM0VjE1LjM4Wk04LDE5SDZWMTdIOFptMTYsMEgxMFYxN0gyNFoiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x'@; put 'NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMiwxNHY4SDM0VjE0Wm02LDVINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjQ5LDcuNDksMCwwLDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2djZIMjUuNTFBNy41Miw3LjUyLDAsMCwxLDIzLjEzLDlaTTgs'@; put 'OUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDIySDM0VjE0SDJabTgtNUgyNHYySDEwWk02LDE3SDh2Mkg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2djZIMzRWNkEyLDIsMCwwLDAsMzIs'@; put 'NFpNOCw5SDZWN0g4Wk0yNCw5SDEwVjdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4n'@; put 'KSxGLkNsclNoYXBlSGFyZERpc2s9KDAsbS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt'@; put 'LWFsZXJ0ZWQiIGQ9Ik0zNCwyMS4wOGwtMS40LTUuNjhIMzAuNTFsMS40OSw2VjI5SDRWMjEuNDRMNy4wNiw5aDEyLjVsMS4xNS0ySDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFB'@; put 'MSwxLDAsMCwwLDM0LDIxLjA4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz'@; put 'My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjAiIHdp'@; put 'ZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzQsMjEuMDgsMzIsMTMuMjFhNy40OSw3LjQ5LDAsMCwxLTIsLjI5bDIsNy45NFYyOUg0VjIxLjQ0TDcuMDYsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4wNkEyLDIsMCwwLDAsNS4x'@; put 'Myw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQt'@; put 'LWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNCwyMS4wOCwzMC44Niw4LjQzQTIsMiwwLDAsMCwyOC45NCw3SDcuMDZBMiwyLDAsMCwwLDUu'@; put 'MTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4Wk00LDI5VjIxLjQ0TDcuMDYsOUgyOC45M0wzMiwyMS40NFYyOVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzIuNTgsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs'@; put 'MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLDEzLjIxQTcuNDcsNy40NywwLDAsMSwyMi41Nyw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAg'@; put 'PGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjg2'@; put 'LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBIMzMuNzFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMiwyMnY3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt'@; put 'MlYyMlptMjgsNUgyNlYyNWg0WiIvPlxuJyksRi5DbHJTaGFwZUJhY2t1cFJlc3RvcmU9KDAsbS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdo'@; put 'dD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMTlhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMxLjU4LDE1LjRIMjkuNDZjMSwyLjg1LDIuMzEsNi4zNywyLjU0LDcuMDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjks'@; put 'MS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xMiwzNCwyMiwzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUt'@; put 'LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1i'@; put 'YWRnZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVh'@; put 'MSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIuMTYsMTEuNjEsOC41QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2Vk'@; put 'IiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2Mmg3Ljk1QzMwLDE2Ljk0LDMxLjcyLDIxLjY1LDMyLDIyLjQ4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIMTVWMTJINy4wN2ExLjkyLDEuOTIs'@; put 'MCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjIuMzNDMzQsMjIuMSwzNCwyMiwzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg'@; put 'ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTEzLDkuOTIsMTcs'@; put 'NlYxOWExLDEsMCwxLDAsMiwwVjZsNCwzLjk1QTEsMSwwLDEsMCwyNC4zOCw4LjVMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLjg0LDEzLjM3'@; put 'QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIs'@; put 'MiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwy'@; put 'SDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEu'@; put 'NzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyMi4yM0EzLjYyLDMuNjIsMCwwLDEsMjEsMTUuMTZW'@; put 'MThhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgzMy45M0MzMy43OSwyMS40OSwzMy4yOCwyMC4wNywzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1h'@; put 'bGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0'@; put 'WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTEzLDkuOTIsMTcsNlYxOGExLDEsMCwxLDAsMiwwVjZsNCwzLjk1YTEsMSwwLDAsMCwuNzEuMjlsLjExLDBhNy40Niw3LjQ2LDAsMCwxLTEuMjUtMy41MkwxOCwyLjE2LDExLjYxLDguNUExLDEs'@; put 'MCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2NmEzLDMs'@; put 'MCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDMzLjkzQzMzLjc3LDIxLjQzLDMzLjE1LDE5LjcsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYy'@; put 'NFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45'@; put 'LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMsMzMuMTQsMTkuNjksMzAuODQsMTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSww'@; put 'LDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbicpLEYuQ2xyU2hhcGVCYWNrdXA9KDAsbS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdo'@; put 'dD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOCwxOS44NGw0LjQ3LTQuNDRoLS4yM2EzLjY3LDMuNjcsMCwwLDEtMi0uNjFMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00'@; put 'LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIy'@; put 'LjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1'@; put 'LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww'@; put 'LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9'@; put 'IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uMjQsMS4zaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBI'@; put 'NFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3'@; put 'LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIlxu'@; put 'ICAgICAgICAgICAgICAgIGQ9Ik0zMC44NCwxMy4zN0ExLjk0LDEuOTQsMCwwLDAsMjguOTMsMTJIMjYuNTVhMywzLDAsMCwxLS4xNCwyaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAs'@; put 'MS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTYuNTgsMjEuMjYsMTAuMiwxNC45MUEzLDMsMCwwLDEsOS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw0SDI2VjI2aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNS0uNTEtLjY1LTEuOTMtMi4zNS02LjZIMjUuM2wtNS44OSw1Ljg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'NC0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjQsMy42NCwwLDAsMS0yLS42MUwxOSwxNlY0YTEsMSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEu'@; put 'NDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42'@; put 'OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoi'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNy0uNTctLjc5LTIuMy0zLjA2LTguNTVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNSw3LjQ2LDcuNDYsMCwwLDEtMy4z'@; put 'NS0uOCwzLDMsMCwwLDEtLjg2LDIuMjFsLTYuMzgsNi4zNVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTkuNDEsMjEuMjZsLS43NC43NEgzMy45M2MtLjE3LS41Ny0uNzktMi4zMS0zLjA5LTguNjNBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDI2LjU1YTMsMywwLDAsMS0uNzYsMi45MloiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xNi41OCwyMS4yNiwxMC4yLDE0LjkxQTMsMywwLDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbicpLEYuQ2xyU2hhcGVEZXZpY2VzPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyNkgyNFYxNVpNMjQsMzBWMjcuNmg4VjMwWiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMCwyMkg0VjZIMjh2NWgyVjZhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMkgyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAsMjZIOWExLDEsMCwwLDAsMCwySDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDEzSDI0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAs'@; put 'MCwyLTJWMTVBMiwyLDAsMCwwLDMyLDEzWm0wLDJWMjhIMjRWMTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjgsNEg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMmg4djJIOS4zMkExLjIsMS4yLDAsMCww'@; put 'LDgsMjdhMS4yLDEuMiwwLDAsMCwxLjMyLDFIMTkuOTJ2LS4zN0gyMFYyMkg0VjZIMjh2NWgyVjZBMiwyLDAsMCwwLDI4LDRaIi8+XG4nKSxGLkNsclNoYXBlS2V5Ym9hcmQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMThINFYxMEgzMloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI3IiB5'@; put 'PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjExIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE1IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjE5IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAg'@; put 'ICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjIzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjI3IiB5'@; put 'PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMTEiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAg'@; put 'ICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxOSIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgeD0iMjMi'@; put 'IHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI3IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiB4PSIyNyIgeT0iMjIiIHdpZHRoPSIxLjk0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgeD0iNyIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi'@; put 'Lz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTEuMTMiIHk9IjIyIiB3aWR0aD0iMTMuNzUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFpNMTksMTNoMnYySDE5Wm0wLDRoMnYySDE5Wm0tNC00aDJ2MkgxNVptMCw0aDJ2MkgxNVptLTQtNGgydjJIMTFaTTksMjRIN1YyMkg5Wm0wLTVIN1Yx'@; put 'N0g5Wm0wLTRIN1YxM0g5Wm0yLDJoMnYySDExWm0xMy44OCw3SDExLjEzVjIySDI0Ljg4Wk0yNSwxOUgyM1YxN2gyWm0wLTRIMjNWMTNoMlptMy45NCw5SDI3VjIyaDEuOTRaTTI5LDE5SDI3VjE3aDJabTAtNEgyN1YxM2gyWiIvPlxuJyksRi5DbHJTaGFwZU1vdXNlPSgwLG0uY2xySWNvblNW'@; put 'RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMzRBMTAsMTAsMCwwLDEsOCwyNFYxMmExMCwxMCwwLDAsMSwyMCwwVjI0QTEwLDEwLDAsMCwxLDE4LDM0Wk0xOCw0YTgsOCwwLDAsMC04LDhWMjRhOCw4LDAsMCwwLDE2LDBWMTJBOCw4'@; put 'LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDE1YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDIsMHY0QTEsMSwwLDAsMSwxOCwxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTEwLDEwLDAsMCwwLDgsMTJWMjRhMTAsMTAsMCwwLDAsMjAsMFYxMkExMCwxMCwwLDAsMCwxOCwyWm0xLjMsMTEuNDRhMS4zLDEuMywwLDAsMS0yLjYsMFYxMGExLjMsMS4zLDAsMCwxLDIuNiwwWiIvPlxuJyksRi5D'@; put 'bHJTaGFwZURhc2hib2FyZD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI1LjE4LDEyLjMybC01LjkxLDUuODFhMywzLDAsMSwwLDEuNDEsMS40Mmw1LjkyLTUuODFaIi8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTExLjM0LDI1LjVINi42NmExNC40MywxNC40MywwLDAsMS0z'@; put 'LjExLTcuODRIN3YtMkgzLjU1QTE0LjQxLDE0LjQxLDAsMCwxLDcsMTEuMjlsMi40NSwyLjQ1LDEuNDEtMS40MUw4LjQzLDkuODdBMTQuNDEsMTQuNDEsMCwwLDEsMTcsNi4yOXYzLjVoMlY2LjNhMTQuNDcsMTQuNDcsMCwwLDEsMTMuNCwxMy42MUgyOC45MnYyaDMuNTNBMTQuNDMsMTQuNDMs'@; put 'MCwwLDEsMjkuMzQsMjkuNzVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUuODUsMTguNjlhMywzLDAsMSwwLDQuODMuODVsNS45Mi01LjgxLTEuNDEtMS40MS01LjkxLDUu'@; put 'ODFBMywzLDAsMCwwLDE1Ljg1LDE4LjY5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjU4LDEzYTcuNDUsNy40NSwwLDAsMS0yLjA2LjQ0LDE0LjQsMTQuNCwwLDAsMSwx'@; put 'LjkzLDYuNDNIMjguOTJ2MmgzLjUzYTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEsNy44NEg2LjY2YTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAs'@; put 'MSwxNyw2LjI5djMuNWgyVjYuM0ExNC40MSwxNC40MSwwLDAsMSwyMi41OCw3YTcuNTIsNy41MiwwLDAsMS0uMDgtMSw3LjUyLDcuNTIsMCwwLDEsLjA5LTEuMDlBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNloi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTguNiw5LjQ4LTUuOTIsNS44MWEzLDMsMCwxLDEtMS40MS0xLjQybDUuOTEtNS44MVptLTIzLDYuMTdIN3Yy'@; put 'SDMuNTZjMC0uMzktLjA1LS43Ny0uMDUtMS4xN1MzLjUzLDIwLjE4LDMuNTUsMTkuOVptNC44OC0xMCwyLjQ2LDIuNDZMOS40NywxMy43NCw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N1pNMTksOS43OUgxN1Y2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1Wk0zMi40'@; put 'OSwyMC43NGMwLC4zOSwwLC43OS0uMDUsMS4xN0gyOC45MnYtMmgzLjUzQzMyLjQ3LDIwLjE4LDMyLjQ5LDIwLjQ2LDMyLjQ5LDIwLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJN'@; put 'MzIuNTgsMTNhNy40Niw3LjQ2LDAsMCwxLTEwLTguMTJBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNlpNMTcsNi4yOWMuMzIsMCwuNjMsMCwxLDBzLjcsMCwxLC4wNXYzLjVIMTdaTTcsMjEuOTFIMy41NmMwLS4z'@; put 'OS0uMDUtLjc3LS4wNS0xLjE3czAtLjU2LDAtLjgzSDdabTIuNTEtOC4xNkw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N2wyLjQ2LDIuNDZabTEwLjYyLDkuMTlhMywzLDAsMSwxLS44Mi00LjgxbDUuOTEtNS44MSwxLjQxLDEuNDEtNS45Miw1LjgxQTMsMywwLDAsMSwyMC4w'@; put 'OSwyMi45M1ptMTIuMzUtMUgyOC45MnYtMmgzLjUzYzAsLjI4LDAsLjU1LDAsLjgzUzMyLjQ3LDIxLjUyLDMyLjQ0LDIxLjkxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFk'@; put 'Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbicpLEYuQ2xyU2hhcGVIb3N0PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuM2EyLjQ4LDIuNDgsMCwxLDAsMi40OCwyLjQ3QTIuNDgsMi40OCwwLDAs'@; put 'MCwxOCwyNC4zWm0wLDMuNmExLjEzLDEuMTMsMCwxLDEsMS4xMy0xLjEyQTEuMTMsMS4xMywwLDAsMSwxOCwyNy45WiIvPjxyZWN0IHg9IjEzLjUiIHk9IjIwLjciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjY1LDMuNkgxMC4zNUExLjM1LDEuMzUsMCwwLDAsOSw0Ljk1VjMyLjRIMjdWNC45NUExLjM1LDEuMzUsMCwwLDAsMjUuNjUsMy42Wm0tLjQ1LDI3SDEwLjhWNS40SDI1LjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjEyLjYiIHk9IjcuMiIgd2lkdGg9IjEwLjgiIGhlaWdodD0iMS40NCIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi42IiB5PSIxMC44IiB3aWR0'@; put 'aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41'@; put 'LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjEzIiB5PSIyMSIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVk'@; put 'IiBwb2ludHM9IjIxLjMsNiAxMiw2IDEyLDcuNiAyMC40LDcuNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTIsMTEuNmg2LjZjMC0wLjYsMC4yLTEuMSwwLjQtMS42aC03'@; put 'VjExLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yNiwxNS40VjMySDEwVjRoMTIuNWwxLjEtMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTUuNEgyNnoiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4y'@; put 'aDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJz'@; put 'MC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIxMyIgeT0iMjEiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0yNCwxMC41Yy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNUgxMnYxLjZoMTJWMTAuNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xMiw2djEuNmgxMC43Yy0wLjEtMC41LTAuMi0xLjEtMC4yLTEuNkgxMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0yNiwxMi4zVjMySDEwVjRoMTIuOGMwLjItMC43LDAuNS0xLjQsMC45LTJIOS41QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjJDMjcuMywxMywyNi42LDEyLjcsMjYsMTIuM3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi41LDJoLTE3QzguNywy'@; put 'LDgsMi43LDgsMy41VjM0aDIwVjMuNUMyOCwyLjcsMjcuMywyLDI2LjUsMnogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnogTTI0LDExLjZIMTJWMTBo'@; put 'MTJWMTEuNnogTTI0LDcuNkgxMlY2aDEyVjcuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjNjLTIsMC0zLjctMS42LTMuNy0zLjdIMTJWMTBoNi45YzAtMC4xLDAuMS0wLjIsMC4xLTAuMmwxLjItMi4ySDEyVjZoOS4ybDIuMy00aC0xNEM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS4zSDIy'@; put 'LjJ6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6IE0yMywyMi42SDEzVjIxaDEwVjIyLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxbC01Ljcs'@; put 'OS45Yy0wLjMsMC42LTAuMSwxLjQsMC41LDEuN2MwLjIsMC4xLDAuNCwwLjIsMC42LDAuMmgxMS40YzAuNywwLDEuMy0wLjYsMS4zLTEuM2MwLTAuMi0wLjEtMC40LTAuMi0wLjZMMjkuMSwxYy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuNywyNywwLjgsMjYuOSwxeiIvPlxuICAg'@; put 'ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjQsMTAuM3YxLjJIMTJWMTBoMTEuOGMtMC41LTAuNy0wLjgtMS41LTEtMi40SDEyVjZoMTAuNWMwLDAsMC0wLjEsMC0wLjFjMC0xLjQsMC40LTIuNywx'@; put 'LjEtMy45SDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxMy4xQzI2LjQsMTIuNiwyNSwxMS43LDI0LDEwLjN6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6TTIzLDIyLjZIMTNWMjFoMTBW'@; put 'MjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk'@; put 'Z2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI1LjkiIHI9IjUiLz5cbicpLEYuQ2xyU2hhcGVTdG9yYWdlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMs'@; put 'Ni42OWgwYy0uMTgtMy40MS05LjQ3LTQuMzMtMTUtNC4zM1MzLDMuMjksMyw2Ljc4VjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1Y2Ljc4czAsMCwwLDBTMzMsNi43LDMzLDYuNjlabS0yLDcuNTZjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwz'@; put 'Ny40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzIsNDMuMzIsMCwwLDAsMTgsMTguN2M0LDAsOS45My0uNDgsMTMtMnY1LjE3Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMiw0My4zMiwwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40'@; put 'OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdWNi44MkM1LjMsNiwxMCw0LjM2LDE4LDQuMzZjNy43NywwLDEyLjQ2LDEuNTMsMTMsMi4zNy0uNTIuODctNS4yMSwyLjM5LTEzLDIuMzlBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUz'@; put 'LDQzLjUzLDAsMCwwLDExLDEuMjdjNCwwLDkuOTMtLjQ4LDEzLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOS41MSw5LjA5LDE4LDkuMTFBMzcuNiwzNy42LDAsMCwx'@; put 'LDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdoLjYxQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjguODMs'@; put 'MTUuNEEzOC4zNywzOC4zNywwLDAsMSwxOCwxNi43LDM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUuMzR2Mi4wOEE0My4zMyw0My4zMywwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1'@; put 'YTQzLjMzLDQzLjMzLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUuODYtNS4wOCwyLjQ1LTEzLDIuNDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmMxLjUsMCwyLjg5LjA2LDQuMTUuMTZsMS4xLTEuOWMtMS44Ni0uMTgtMy43LS4y'@; put 'Ni01LjI1LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzdi0xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxl'@; put 'cnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjcsNTQuODIsNTQuODIsMCwwLDAsNi4yLS4zNiw3LjUsNy41LDAsMCwxLTEuMTMtMS44OGMtMS41LjE1LTMuMi4yNC01'@; put 'LjA3LjI0QTM3LjYsMzcuNiwwLDAsMSw3LDcuNzZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDN2LjgyYy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUs'@; put 'MzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xN2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0u'@; put 'NDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3VjYuODJDNS4zLDYsMTAsNC4zNiwxOCw0LjM2YzEuNywwLDMuMjUuMDgsNC42NC4yYTcuNDQsNy40NCwwLDAsMSwuNjctMS45NGMtMS44OC0uMTgtMy43NS0uMjYtNS4zMS0uMjYtNS41NywwLTE1'@; put 'LC45My0xNSw0LjQzVjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1YxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NFY4LjU5Yy0uNDMs'@; put 'Mi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEuNTFDMjYsMTAuNTMsMzIuNTIsOC43OSwzMyw2LjYxaDBDMzIuOCwzLjIsMjMuNTIsMi4yOCwxOCwyLjI4UzMsMy4yMSwzLDYuNzFWMjkuMjljMCwzLjQ5LDkuNDMs'@; put 'NC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQt'@; put 'MTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE3LjkxLDIw'@; put 'LjI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yYTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxYzYuOSwwLDEyLjctMS4yNywxNC41MS0zSDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjU1LTIuNzVoLS43N0EzOS40LDM5LjQsMCwwLDEsNi4yNSwxMVY5YTM5LjQsMzkuNCwwLDAsMCwx'@; put 'MS42NiwxLjUxaC44MkEzLjY0LDMuNjQsMCwwLDEsMTksOS43NWw0LjE3LTcuMjJjLTEuODUtLjE4LTMuNjgtLjI1LTUuMjEtLjI1LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYs'@; put 'MjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0QzMyLjU3LDE4LjUzLDI2LDIwLjI4LDE3LjkxLDIwLjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAs'@; put 'MCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NHYtMS42YTcuNDcsNy40NywwLDAsMS03LjM4LS44'@; put 'LDQ4LjMsNDguMywwLDAsMS03LjcxLjU5QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEuNTEsNTEsNTEsMCwwLDAsNi0uMzQsNy40Niw3LjQ2LDAsMCwxLS41OS03LjY1Yy0xLjg3LS4xOC0zLjczLS4yNi01LjI4LS4yNi01LjU3LDAtMTUsLjkzLTE1'@; put 'LDQuNDNWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4w'@; put 'OVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuJyksRi5DbHJTaGFwZUNsdXN0ZXI9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjM2LDhIMjcuNXYySDMxVjMwSDI3LjV2MkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+PGVs'@; put 'bGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEEx'@; put 'LjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMjQsMzBIMTJWNkgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxMEg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdWMzJIOC41VjMwSDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPjxl'@; put 'bGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5bC4zOS0uNjhIMTMuNXYxLjZoNS4xN0Ez'@; put 'LjY1LDMuNjUsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMzBIMTJWNmg5LjI5bDEuMTUtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYz'@; put 'MkgyNlYxNS40SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAzMCAyNy41IDMwIDI3LjUgMzIgMzMgMzIgMzMgMTUuNCAzMSAxNS40IiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwx'@; put 'LjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMs'@; put 'OS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTI0LDEwLjQ5VjMwSDEyVjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzBIMjcuNXYySDMzVjEyLjg3QTcuNDUsNy40NSwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zNiw4SDI3LjVWMzJIMzNWOS42N0ExLjY1LDEuNjUsMCwwLDAs'@; put 'MzEuMzYsOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgy'@; put 'M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxl'@; put 'cnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuNSIgeT0iMTUuNCIgd2lkdGg9IjUuNSIgaGVpZ2h0PSIxNi42IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZhMy42'@; put 'OCwzLjY4LDAsMCwxLS4zMS0zSDEzVjloNi41NmwyLjg5LTVIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaTTE4LDI3Ljc5QTEuNzksMS43OSwwLDEsMSwxOS44MSwyNiwxLjgsMS44LDAsMCwxLDE4LDI3Ljc5'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4w'@; put 'NiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAs'@; put 'MCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy40'@; put 'OSw3LjQ5LDAsMCwxLDIyLjUsNlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi41LS40NFYzMkgzM1YxMi44N0E3LjQ3LDcuNDcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz'@; put 'MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVBcHBsaWNhdGlvbnM9KDAsbS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQg'@; put 'MTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDQgMzAgOCAyNiA4IDI2IDEwIDMyIDEwIDMyIDQgMzAgNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0'@; put 'IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUgMzAgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cG9s'@; put 'eWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkg'@; put 'MzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIv'@; put 'PlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgOCAxNSA4'@; put 'IDE1IDEwIDIxIDEwIDIxIDQgMTkgNCAxOSA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMTkgMTUgMTkgMTUgMjEgMjEgMjEgMjEgMTUgMTkgMTUgMTkgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAg'@; put 'ICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDMwIDE1IDMwIDE1'@; put 'IDMyIDIxIDMyIDIxIDI2IDE5IDI2IDE5IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQgY2xyLWkt'@; put 'YmFkZ2UiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCA4IDQgOCA0IDEwIDEwIDEwIDEwIDQgOCA0IDggOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0i'@; put 'OCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAx'@; put 'NSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTUgMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFs'@; put 'ZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdv'@; put 'biBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDhIMTV2Mmg0TDE5LDkuODksMjEsNi41'@; put 'VjRIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43'@; put 'OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWln'@; put 'aHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0'@; put 'IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5c'@; put 'biAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVp'@; put 'Z2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9'@; put 'IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJl'@; put 'Y3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAg'@; put 'ICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMTBoNEwxOSw5Ljg5LDIxLDYuNVY0SDE1WiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEu'@; put 'MjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgeD0iNCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAg'@; put 'ICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksRi5DbHJTaGFwZUJ1aWxkaW5nPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS44'@; put 'OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0gyMlY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxOS44OCwzWk0yMCwzMUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVj'@; put 'dCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAg'@; put 'ICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1i'@; put 'YWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIy'@; put 'IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2'@; put 'IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiLz5cbiAgICAg'@; put 'ICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4'@; put 'LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzVjMxSDIz'@; put 'djJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMjAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIv'@; put 'PlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdo'@; put 'dD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9'@; put 'IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAg'@; put 'ICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'MS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIg'@; put 'd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEzLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy'@; put 'dGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAg'@; put 'ICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCww'@; put 'LDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJWOC4yNGwyLTMuNDFBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjE1LjM4YTMuNjgsMy42OCwwLDAsMS0yLS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40IDMxIDMxIDIzIDMxIDIzIDMzIDMzIDMzIDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4'@; put 'LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw4SDIyVjMzSDMzVjEwQTIsMiwwLDAsMCwzMSw4Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBI'@; put 'MjhWMjNoMlptMC01SDI4VjE4aDJabTAtNUgyOFYxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWNS4xMkEyLjEyLDIuMTIs'@; put 'MCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgy'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWMTQuNjRhMy42NywzLjY3LDAsMCwxLTEtNC43NmwxLTEuNjVWNS4xMkEyLjEyLDIu'@; put 'MTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVW'@; put 'OGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRsLS4yMywwVjMzSDMzVjE1LjRaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm00LDVIMjhWMjNoMlptMC01SDI4'@; put 'VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDEx'@; put 'TDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0'@; put 'LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0w'@; put 'LTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTVIMjhWMTMuMjJBNy41LDcuNSwwLDAsMSwyMi43OCw4SDIyVjMz'@; put 'SDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAg'@; put 'ICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjN2Mmg4VjMxSDIzdjJIMzNWMTBBMiwyLDAsMCww'@; put 'LDMxLDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2'@; put 'VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAg'@; put 'ICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9'@; put 'IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIvPlxuICAg'@; put 'ICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdp'@; put 'ZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiLz5c'@; put 'biAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE3Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIy'@; put 'MyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIwIi8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVDUFU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjA4LDIzLjA3aC0xMXYxLjVIMjMuODNhLjc1Ljc1LDAsMCwwLC43'@; put 'NS0uNzVWMTEuMzNoLTEuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwxOC4xNWEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWOC4xQTIuMSwyLjEsMCwwLDAs'@; put 'MjcuOSw2SDI2LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAs'@; put 'MS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMw'@; put 'LDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNFpNMjgsMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjcuOWEuMS4xLDAsMCwxLC4xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjA2LDI0LjU3SDIzLjgzYS43NS43NSwwLDAsMCwuNzUtLjc1VjExLjMzaC0xLjVWMjMuMDdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI4VjI3LjlhLjEuMSwwLDAsMS0uMS4xSDguMWEuMS4xLDAsMCwxLS4xLS4xVjguMUEuMS4xLDAsMCwxLDguMSw4SDIyLjc4YTcuNDksNy40OSww'@; put 'LDAsMS0uMjgtMkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSww'@; put 'LDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwx'@; put 'LDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0t'@; put 'YmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjE1LjRIMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhoMTJsMS4x'@; put 'NS0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZI'@; put 'NlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEu'@; put 'NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTUuNGgtMS41djcuNjdoLTExWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwx'@; put 'LjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYx'@; put 'NS40SDI1djguNDFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjE1LjRoLS43N0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4x'@; put 'VjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMw'@; put 'aDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMt'@; put 'LWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ2LDcuNDYsMCwwLDEtNS0xLjkyVjIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgxLjQyQTcu'@; put 'NDYsNy40NiwwLDAsMSwyMi41LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhh'@; put 'LjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIu'@; put 'MmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y'@; put 'LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4LjE1YS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40'@; put 'VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIu'@; put 'MSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40'@; put 'Wk0yNSwyMy44MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTFoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksRi5DbHJTaGFwZU1lbW9yeT0oMCxtLmNsckljb25TVkcpKCc8cmVjdCB4PSI4IiB5PSIxMiIgd2lkdGg9IjQi'@; put 'IGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAg'@; put 'ICAgIDxyZWN0IHg9IjI0IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw3SDRBMiwyLDAsMCwwLDIsOXY0SDRWOUgzMnY0aDJWOUEyLDIsMCwwLDAsMzIsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTksMTMuNTZBMy42NiwzLjY2LDAsMCwxLDE4LjU3LDEySDE2djhoNFYxNC42NEEzLjY3LDMuNjcsMCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgeD0iMjQiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjQuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMTkuNTZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOXY0'@; put 'SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx'@; put 'MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0'@; put 'PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyQTcuNDYsNy40NiwwLDAsMSwyNS41MSwx'@; put 'MkgyNHY4aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMjMuMTNhNy40NSw3LjQ1LDAsMCwxLS41NS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMzQsMTNWOWEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN0gzMlYxM1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFptOCwwSDI0VjEyaDRa'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdWMTUuMDdIMjhWMjBIMjRWMTUuMDdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjMxVjIwSDE2VjEyaDIuNjFBMy42OCwzLjY4LDAsMCwxLDE5LDkuNTVMMjAu'@; put 'NTIsN0g0QTIsMiwwLDAsMCwyLDl2NEg0djRIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1SDE5VjI5SDMyYTIsMiwwLDAsMCwyLTJWMTdaTTEyLDIwSDhWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yNi44NS44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNi44QTEuMjgsMS4yOCwwLDAsMCwyNi44NS44WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjEzLjIyYTcuMzMsNy4zMywwLDAsMS00LDBWMjBIMjRWMTJoMS41MWE3LjQ4LDcuNDgsMCwwLDEtMi45NC01SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJI'@; put 'MTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUi'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVEYXRhQ2x1c3Rlcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcu'@; put 'OTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMzIsNy4yNywzMiw3LjkxVjE4LjI0YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQu'@; put 'MDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUy'@; put 'LTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x'@; put 'OCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDks'@; put 'MTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2'@; put 'LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDE4LjI0VjcuOTFjMC0uNjUsMi4wOS0xLjg0LDUuNS0xLjg0UzE1LDcuMjcsMTUsNy45MVY5LjdhMTguNzUsMTguNzUsMCwwLDEsMi0uMlY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0'@; put 'Ljc3LDIxLjY3LDcuOSwyMlYyMEM1LjQ2LDE5LjY4LDQsMTguNzgsNCwxOC4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuNjUsMTguNTJjLS44NSwxLTMuNDIsMi02LjY1'@; put 'LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEy'@; put 'Ljc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOGwuNzUsMGEzLjY5LDMuNjksMCwwLDEtLjA4LTJsLS42NiwwYy00LjkzLDAtOC42NSwxLjg4LTgu'@; put 'NjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMTUuNGgtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0x'@; put 'Ljc1LjYzLTMsMS42OC0zLDMuMTJWOS41bC4yNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjIuODRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJj'@; put 'My4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNI'@; put 'MzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUu'@; put 'NDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIs'@; put 'NC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVptNi42NSw3LjY3Yy0uODUsMS0zLjQyLDItNi42NSwyQTE0LjQ5LDE0LjQ5LDAsMCwxLDE0LDIwdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYs'@; put 'MTIuNzYsMCwwLDAsNi42NS0xLjU2djMuMTJjLS44NSwxLTMuNDIsMi02LjY1LDJhMTQuNDksMTQuNDksMCwwLDEtNC0uNTN2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2Mi4yOWMwLC45NS0yLjY1LDIuMzgtNi42NSwyLjM4cy02LjY1'@; put 'LTEuNDMtNi42NS0yLjM4VjE1LjIzYzAtLjk1LDIuNjUtMi4zOCw2LjY1LTIuMzhzNi42NSwxLjQzLDYuNjUsMi4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDcuOTFjMC0u'@; put 'MzMuNTUtLjgsMS41NC0xLjE4LDAtLjI0LDAtLjQ4LDAtLjczYTcuNTIsNy41MiwwLDAsMSwuMTQtMS40MUMyMC41NSw1LjE5LDE5LDYuMywxOSw3LjkxVjkuNWExOC43NSwxOC43NSwwLDAsMSwyLC4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'My0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2NWMwLC41NC0xLjQ2LDEuNDQtMy45LDEuNzN2MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1di01LjlBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTI2LjUsNC4wOEMyMi43Nyw0LjA4LDE5LDUuNCwxOSw3LjkxVjkuNDhjNS4zLjI2LDksMi42LDksNS43NnY2LjdsLjA1LjA2YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAs'@; put 'MCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEu'@; put 'MTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMsMTAuODUsMTgsMTAuODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQt'@; put 'Ny41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjM5LTIuN2wtLjY2LDBjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43'@; put 'NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjIzLDguNjMtMy4yM1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1'@; put 'LTEuMTEsOC42My0zLjExVjE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDQuOGMtMS43NS42My0zLDEuNjgtMywzLjEy'@; put 'VjkuNDhsLjI3LDBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOHY2LjUzbC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs'@; put 'MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDkuNDhWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIs'@; put 'Ny45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJMOCwyMS45M3YtNi43QzgsMTIuMDgsMTEuNyw5Ljc0LDE3LDkuNDhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1'@; put 'Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4y'@; put 'MSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2ExNi43NywxNi43NywwLDAsMS02LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwx'@; put 'MC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTQtMS40QzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS40OGExNS4zMywxNS4zMywwLDAs'@; put 'MSw1LDFBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI3LjM1LDEzYTQsNCwwLDAsMSwuNywyLjIzdjYu'@; put 'N2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxMi4zM0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNDlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljk5IiBy'@; put 'PSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxGLkNsclNoYXBlUmVzb3VyY2VQb29sPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxLjczYTE0LDE0LDAsMCwx'@; put 'LC4yMiwxLjZIMTcuNDlMOC4zLDI4LjA3QTE0LDE0LDAsMCwxLDIyLjA5LDQuNjJsMS0xLjc2QTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2LDAsMCwwLS4yMy0yLjYxWk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4w'@; put 'NiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAs'@; put 'MCwwLDE4LDJaTTQsMThhMTQsMTQsMCwwLDEsMjcuOTUtMUgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsNCwxOFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yLDEzLjRhMTMuOTEsMTMuOTEsMCwwLDEsLjc1LDMuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuNjEsNC44YTcuNDMsNy40MywwLDAsMSwuNTgtMS45MiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDku'@; put 'OTNBNy40Myw3LjQzLDAsMCwxLDMxLjIsMTMuNFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguNTcsMzAuOUExNiwxNiwwLDAsMCwzMy45NSwxOUgx'@; put 'OC40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN0ExNiwxNiwwLDEsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN2ExNS45MSwxNS45MSwwLDAsMC0uODQtNC4xOCw3'@; put 'LjQ5LDcuNDksMCwwLDEtOS45Mi05Ljk0QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE2LDE2LDAsMCwwLS4xOC0xLjYxSDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDQuMDYtN0ExNiwxNiwwLDAsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy'@; put 'LWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRa'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVTaGllbGRDaGVjaz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYu'@; put 'NjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUu'@; put 'MDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQs'@; put 'NDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuODgsMTYuODdhMSwxLDAsMCwwLTEuNDEsMS40MWw2LDZMMjYuNCwxMy43N0ExLDEsMCwwLDAsMjUsMTIuMzNsLTkuNDcsOS4x'@; put 'OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwz'@; put 'LjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVptLTQuNTcsNi42NUwxNS41MSwyNC45LDkuMTksMTguNTdhMS40LDEuNCww'@; put 'LDAsMSwyLTJMMTUuNTQsMjEsMjQuNzMsMTJhMS40LDEuNCwwLDEsMSwyLDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVTaGllbGQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43'@; put 'OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQs'@; put 'MCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44'@; put 'MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjR2LjUzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3'@; put 'LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTNjMSwuNjQsMi4yLDEuMjcsMy40MywxLjg5bDEtMS43NGE0MS4xLDQxLjEsMCwwLDEtMy44OS0yLjE4TDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0'@; put 'Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41djIuNDNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4'@; put 'LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0Ni4xOSw0Ni4xOSwwLDAsMCw0LjUxLDIuNDJjMC0uMSwwLS4xOSwwLS4yOWE3LjQ5LDcuNDksMCwwLDEsLjIzLTEuODMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0'@; put 'My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMu'@; put 'NjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40Myw0'@; put 'YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUs'@; put 'MTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCww'@; put 'LDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40Nyww'@; put 'LDAsMS03LjI3LTkuMzMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMu'@; put 'MTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksRi5DbHJTaGFwZVNoaWVsZFg9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUs'@; put 'MCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1'@; put 'VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMw'@; put 'LDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjgxLDEwLjc5LDE4LDE1LjYxbC00LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxN2wtNC44MSw0LjgxYTEsMSwwLDEsMCwxLjQxLDEu'@; put 'NDFMMTgsMTguNDNsNC44MSw0LjgxYTEsMSwwLDAsMCwxLjQxLTEuNDFMMTkuNDEsMTdsNC44MS00LjgxYTEsMSwwLDAsMC0xLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43'@; put 'OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4x'@; put 'MmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTI0LjUxLDIxLjU1YTEuNCwxLjQsMCwwLDEtMiwyTDE4LDE5bC00LjUzLDQuNTNhMS40MywxLjQzLDAsMCwxLTIsMCwxLjQsMS40LDAsMCwxLDAtMkwxNiwxN2wtNC41My00LjUzYTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE1bDQu'@; put 'NTMtNC41M2ExLjQsMS40LDAsMCwxLDIsMkwyMCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksRi5DbHJTaGFwZUltcG9ydD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxNC44N0w4LDEwLjg2VjE1aDJWMTMuNjFoNy42'@; put 'MVY2SDI4VjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDI4LDRaTTE2LDEySDEwdi0uMzJMMTUuNyw2SDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4y'@; put 'OGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEsMS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQs'@; put 'MjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42'@; put 'MVY2aDMuNjhsMS4xNS0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2SDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDEx'@; put 'QTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFs'@; put 'ZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMEg4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjE1aDJabTAtMS45MkwxNS43LDZIMTZ2NkgxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42'@; put 'OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxNC44'@; put 'N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x'@; put 'NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhh'@; put 'MSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0t'@; put 'YmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVFeHBvcnQ9KDAsbS5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDI0djguMzhoMlY2YTIsMiwwLDAsMC0yLTJIMTAuODdMNCwxMC44N1YzMGEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJINlptMC0xLjkyTDExLjY5LDZIMTJ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs'@; put 'ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNmg3LjY4bDEuMTUtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4w'@; put 'NiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQx'@; put 'TDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMTIuMzRh'@; put 'Ny41Myw3LjUzLDAsMCwxLTItMS44NXYzLjg5aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMC44N0w0'@; put 'LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIg'@; put 'cj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAs'@; put 'MCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEu'@; put 'NDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMxLjE2LDIx'@; put 'SDI2djJoNS4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzUsMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjE1LjRIMjIuMjNB'@; put 'My42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEu'@; put 'NDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjEyLjM0QTcuNDYsNy40NiwwLDAsMSwyMi43OCw0SDEwLjg3TDQsMTAuODZWMzBh'@; put 'MiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYtLjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAi'@; put 'IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxGLkNsclNoYXBlVXBsb2FkQ2xvdWQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEs'@; put 'MC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5Ljc0LDkuNzQsMCwwLDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMs'@; put 'OC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAsMSwwLC44bC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAuMTRsLTUtNS01LDVhMSwxLDAsMCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDIxLjg1QTEsMSwwLDAsMCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4y'@; put 'OCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUu'@; put 'NCw4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4'@; put 'LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDIxdjJoNS4zOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x'@; put 'NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUt'@; put 'NSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwyLjU3LDIuNTdBMSwxLDAsMCwwLDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCw0LjU0LTE0LjU2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwx'@; put 'MC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNzQsOS43NCwwLDAsMCwxLjYsMTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42Niw3LjY2LDAsMCwxLDMuNiwxOC4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyks'@; put 'Ri5DbHJTaGFwZURvd25sb2FkQ2xvdWQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5LjY1LDkuNjUsMCwwLDAsMTAuODksMjhhMywzLDAsMCwx'@; put 'LDAtMkE3LjY1LDcuNjUsMCwwLDEsMTEsMTAuNzRsLjY3LDAsLjIzLS42M2E4LjQzLDguNDMsMCwwLDEsOC01LjQsOC4yNiw4LjI2LDAsMCwxLDguNDUsOCw3Ljc1LDcuNzUsMCwwLDEsMCwuOGwtLjA4LjcyLjY1LjNBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4y'@; put 'OGE4LDgsMCwwLDAsMy45My0xNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdB'@; put 'MSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSww'@; put 'LDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg3'@; put 'LDQuNjlhOC44MSw4LjgxLDAsMCwxLDIsLjI1bDEtMS44YTEwLjgsMTAuOCwwLDAsMC0zLjA3LS40NSwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTgu'@; put 'NDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSww'@; put 'LDJoMS4yOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42'@; put 'OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSww'@; put 'LDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCw0LjU0LTE0LjYxWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAg'@; put 'ICAgICAnKSxGLkNsclNoYXBlUGx1Z2luPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS44MSwxNkgyOVY4LjgzYTIsMiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAs'@; put 'MCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2Wm0yLjQxLDdBMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYy'@; put 'NUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoOFYxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEs'@; put 'MzIuMjIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjgxLDE2SDI5di0uNkgyN1YxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjMsMywzLDAsMCwxLDMwLDI0'@; put 'SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoLjY2TDIxLDYuNTlBNS4xMiw1LjEyLDAsMCwwLDE2LjUx'@; put 'LDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4x'@; put 'NSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4'@; put 'LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEs'@; put 'MTZIMjlWMTMuNDNhNy40NSw3LjQ1LDAsMCwxLTItLjU1VjE4aDIuODFBMy4xMywzLjEzLDAsMCwxLDMzLDIwLjY5LDMsMywwLDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNo'@; put 'OVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2g0LjA2YTcuNDQsNy40NCwwLDAsMS0uNTEtMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEz'@; put 'LjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWOC44M2EyLDIsMCwwLDAtMi0ySDIxQTUuMTQsNS4xNCwwLDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1'@; put 'LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgy'@; put 'OXYtLjZIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEsNi41OUE1LjEyLDUuMTIsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwy'@; put 'M0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0'@; put 'aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy41LDcuNSwwLDAsMS02LjQ1LTYuNTlIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4x'@; put 'MywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksRi5DbHJTaGFw'@; put 'ZUZsb3BweT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuMzYsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjguNzhaTTI1LDMwSDExVjIySDI1Wm01LDBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2'@; put 'NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJIMTJWNkgyNi41MUwzMCw5LjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAs'@; put 'MCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0xLjY4bC0uNDMtLjNIMTJWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwz'@; put 'MCwxMy41Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMmg3LjM1YTMuNTQsMy41NCwwLDAsMS0uNzctMkgxMlY2aDku'@; put 'MjlsMS4xNS0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjUsMzBIMTFWMjJIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy4zNiw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSww'@; put 'LDAsMSwyNiwyMS41Wk0yNCwxNEgxMmEyLDIsMCwwLDEtMi0yVjZoMnY2SDI2QTIsMiwwLDAsMSwyNCwxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDYsNy40NiwwLDAsMS00LTEuMThBMiwyLDAs'@; put 'MCwxLDI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjUuNTRhNy40NSw3LjQ1LDAsMCwxLTIuNzYtOEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUs'@; put 'MCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZoNi41OEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMi40NSw0SDZB'@; put 'MiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0t'@; put 'YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAnKSxGLkNsclNoYXBlQ29tcHV0ZXI9KDAsbS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjYgMjIuODggOS42IDEwLjYgMjQuNCAxMC42IDI1Ljk4IDkgOCA5IDgg'@; put 'MjIuODggOS42IDIyLjg4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYsN0gzMFYyM2gyVjYuNUExLjUsMS41LDAsMCwwLDMwLjUsNUg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2'@; put 'LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4z'@; put 'NGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjYsMjIuODhWMTAuNmg5LjE0QTMuNjQsMy42NCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIOFYyMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDIwLjcxbDEuMTUtMkg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxyZWN0IHg9IjMwIiB5PSIxNS40IiB3aWR0aD0iMiIgaGVpZ2h0PSI3LjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCww'@; put 'LDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0'@; put 'LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4wNy0xSDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZW'@; put 'N0gyMi41N0E3LjUyLDcuNTIsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYyM2gyVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUg4VjIyLjg4SDkuNlYxMC42SDI0LjA4QTcuNDksNy40OSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjlWMjRoM1Y3LjU3QTEuNTQsMS41NCwwLDAsMCwzMC41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0yMy44MSwyNmMtLjM1LjktLjk0LDEuNS0xLjYxLDEuNUgxMy43NGMtLjY4LDAtMS4yNi0uNi0xLjYxLTEuNUgxdjEuNzVBMi40NSwyLjQ1LDAsMCwwLDMuNiwzMEgzMi40QTIuNDUsMi40NSwwLDAsMCwzNSwyNy43NVYyNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI5IiB5PSIxNS40IiB3aWR0aD0iMyIgaGVpZ2h0PSI4LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik03LDEwSDE5TDE5LDkuODksMjEuMjksNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB'@; put 'MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEwSDIzLjY2QTcuNDYsNy40NiwwLDAsMSwyMi41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJhNy4xNCw3LjE0LDAsMCwxLTMsLjJWMjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl'@; put 'IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVEaXNwbGF5PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwx'@; put 'LjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzIsMjVINFY1SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxw'@; put 'b2x5Z29uIHBvaW50cz0iNy43IDguNzYgMjguMTMgOC43NiAyOS45NCA3LjE2IDYuMSA3LjE2IDYuMSAyMyA3LjcgMjMgNy43IDguNzYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwz'@; put 'LjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCww'@; put 'LDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4x'@; put 'NywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyNUg0VjVIMjEuODdMMjMsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTUu'@; put 'MzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgMjMgNy43IDguNzYgMTkuNyA4Ljc2IDIwLjYyIDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x'@; put 'NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUy'@; put 'VjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwy'@; put 'NiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuMSwyM0g3LjdWOC43NkgyM2E3LjQ0LDcuNDQsMCwwLDEtLjQzLTEuNkg2LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYyNUg0VjVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCww'@; put 'LDAsMzQsMjUuNVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwx'@; put 'LDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwz'@; put 'LjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzEsMjEuODNINVY3SDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAs'@; put 'MS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5Ljk0YTEsMSwwLDEsMCwwLDJIMjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVy'@; put 'dGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMXY2LjQzSDVWN0gyMC43MUwyMywzSDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t'@; put 'YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs'@; put 'MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYx'@; put 'LDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwx'@; put 'My40M3Y4LjQxSDVWN0gyMi41N2E3LjI5LDcuMjksMCwwLDEsLjU1LTRIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDQsNy40NCwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEYu'@; put 'Q2xyU2hhcGVUZXJtaW5hbD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMlY5LjJINFpNNCwyOVYxMC44SDMyVjI5WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDE1'@; put 'LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9'@; put 'IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCAxMy43OSAxOC44IDcgMjEuOTEgNyAy'@; put 'NC4xMSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOUg0VjEwLjhIMTguNjhBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwx'@; put 'LjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEu'@; put 'MTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNs'@; put 'ci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjIzIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQu'@; put 'MTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMjlI'@; put 'NFYxMC44SDI0LjI0YTcuNTEsNy41MSwwLDAsMS0xLTEuNkg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwx'@; put 'My4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJh'@; put 'ZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNi44LDE1LjgxVjEzLjE3bDEwLDQuNTl2Mi4wOGwtMTAsNC41OVYyMS43OGw2LjUx'@; put 'LTNaTTIzLjQsMjUuNEgxN1YyM2g2LjRaTTQsOS4yVjdIMzJWOS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bC40LS42OUg0VjdIMjAuNzFs'@; put 'MS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE2LjgsMTkuODNsLTEwLDQuNTlWMjEuNzhsNi41MS0zLTYuNTEtM1YxMy4xN2wxMCw0LjU5Wm02LjYsNS41N0gxN1YyM2g2LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44'@; put 'NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNi43OC00LjNINFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0u'@; put 'MDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYu'@; put 'Niw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y'@; put 'LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVDb2RlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0x'@; put 'LjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwz'@; put 'LjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAsMC0xLjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsOS44M2EuOS45LDAsMCwwLTEuMDkuNjZMMTUu'@; put 'NDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhsMy40NC0xMy44MUEuOS45LDAsMCwwLDE5Ljk0LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwx'@; put 'Mi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTYsMTEuNjIsMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhMMTkuNzMsMTQuNGEzLjU5LDMuNTksMCwwLDEtMS4xNi0yLjc5WiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTItMS4zOEgyNC42NGwzLjI0LDIuMjEtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCww'@; put 'LTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu'@; put 'NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCww'@; put 'LDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0t'@; put 'YmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjIxLDE2Ljc4bC02LjUzLTQuNDVBMSwxLDAsMSwwLDIyLjU1LDE0bDUuMzIsMy42My01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCw5LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45'@; put 'LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksRi5DbHJTaGFwZUFwcGxpY2F0aW9uPSgwLG0uY2xySWNvblNWRykoJzxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMyIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsNkgzMnY0LjJINFpNNCwzMFYxMS44SDMyVjMw'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRabTAsNi4ySDRWNkgzMloiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lk'@; put 'dGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAn'@; put 'KSxGLkNsclNoYXBlQmF0dGVyeT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNTksMTEuNzdhMSwxLDAsMCwwLTEuNzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4xMiw0SDIzVjMuNThBMS41OCwxLjU4LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44'@; put 'OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWNS44OEExLjg4LDEuODgsMCwwLDAsMjUuMTIsNFpNMjUsMzJIMTFWNmg0VjRoNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5LDEwLjU5YTEsMSwwLDAsMCwxLjc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDE1LjRWMzJIMTFWNmg0VjRoNlY2aC4yOGwxLjY0LTIuODVBMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMu'@; put 'NThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAv'@; put 'PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0x'@; put 'LjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0zLjUzLTcuMDgsNi4zOCwxLjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDEx'@; put 'LjU4VjMySDExVjZoNFY0aDZWNkgyMi41QTcuNDcsNy40NywwLDAsMSwyMywzLjM4LDEuNTcsMS41NywwLDAsMCwyMS40MiwySDE0LjU4QTEuNTgsMS41OCwwLDAsMCwxMywzLjU4VjRIMTAuODhBMS44OCwxLjg4LDAsMCwwLDksNS44OFYzMi4xMkExLjg4LDEuODgsMCwwLDAsMTAuODgsMzRI'@; put 'MjUuMTJBMS44OCwxLjg4LDAsMCwwLDI3LDMyLjEyVjEyLjg3QTcuNSw3LjUsMCwwLDEsMjUsMTEuNThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNFYyLjYyQS42LjYsMCww'@; put 'LDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NHYtMjhBMS4wOSwxLjA5LDAsMCwwLDI2LDRaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEy'@; put 'LjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAs'@; put 'MCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42NiwzLjY2LDAsMCwxLDIwLjU1LDE1bDIuNzYsNC43OUwxNi45LDE4LjdsMy4zNiw2LjczYTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmwuMDkuMTVBMy42NiwzLjY2'@; put 'LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjJWMi42MkEuNi42LDAsMCwwLDIxLjQyLDJIMTQuNThhLjYuNiwwLDAsMC0uNTguNjJWNEgxMEExLjA5LDEuMDksMCwwLDAsOSw1LjA3djI4QTEsMSwwLDAsMCwxMCwzNEgyNmExLDEsMCwwLDAsMS0uOTRWMTIuODdB'@; put 'Ny41LDcuNSwwLDAsMSwyMi41LDZaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt'@; put 'cGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVNb2JpbGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTEsNkgyNVYyNEgxMVpt'@; put 'MCwyNFYyNkgyNXY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTksMzBIMTdWMjhoMlptLTgtNFY2SDI1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5c'@; put 'biAgICAgICAgJyksRi5DbHJTaGFwZVRhYmxldD0oMCxtLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNyIgeT0iMjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEy'@; put 'LDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwzMCwyWm0wLDJWMjYuMzhINlY0Wk02LDMyVjI4SDMwdjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z'@; put 'MCwySDZBMiwyLDAsMCwwLDQsNFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMzAsMlpNMTksMzJIMTdWMzBoMlpNNiwyOFY0SDMwVjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksRi5DbHJTaGFw'@; put 'ZU5ldHdvcmtHbG9iZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJh'@; put 'MTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWm0wLDJhMTIsMTIsMCwwLDEsOC40NCwzLjQ4YzAsLjMzLDAsLjY2LDAsMUExOC41MSwxOC41MSwwLDAsMCwxNCw4LjUzYTIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBj'@; put 'LS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS45MiwxMS45MiwwLDAsMSwxNy43NSw0Wm0tMyw1Ljg3QTE3LDE3LDAsMCwxLDI1LjkyLDEwYTE2LjksMTYuOSwwLDAsMS0zLjExLDcsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42'@; put 'M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3Wm0tNC0zLjZjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2'@; put 'LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4y'@; put 'Ny44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQz'@; put 'LDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4Wm02LjUxLTguOWEyLjMzLDIuMzMsMCwwLDAtLjMzLTEuMTksMTguNCwxOC40LDAsMCwwLDMuMzktNy4zN3EuNzUuMzUsMS40'@; put 'OC43OGExMiwxMiwwLDAsMSwuNDIsOC4yQTE2LDE2LDAsMCwxLDI0LjI3LDE5LjExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRoLTJjMCwuMiwwLC40LDAsLjYxYTEyLDEyLDAsMCwxLS41MywzLjUyLDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4z'@; put 'MywwLDAsMC0uMzMtMS4xOSwxOC44NywxOC44NywwLDAsMCwxLjYyLTIuNTJIMjMuODNhMTcuMjksMTcuMjksMCwwLDEtMSwxLjU0LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43'@; put 'N0ExNy4wOCwxNy4wOCwwLDAsMSwxOS41Niw5bC44Ny0xLjUxYTE4LjU5LDE4LjU5LDAsMCwwLTYuMzksMSwyLjMzLDIuMzMsMCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuODgsMTEuODgsMCwwLDEsMjIsNC43OUwy'@; put 'MywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDAsMCwzMS43NiwxNkMzMS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFptLTIxLTkuMTNjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCww'@; put 'LTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODks'@; put 'Mi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45'@; put 'MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4y'@; put 'OCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCww'@; put 'LDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTVsLS41MSwwYTExLjkxLDExLjkxLDAsMCwxLS4yNSw2LDE2LDE2LDAs'@; put 'MCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC41OSwxOC41OSwwLDAsMCwyLjc4LTUuMTgsNy40OSw3LjQ5LDAsMCwxLTEuMzEtLjgyLDE3LDE3LDAsMCwxLTIuNjEsNSwyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQu'@; put 'OTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzcsMTcsMTcsMCwwLDEsOC41My0uNjIsNy40Myw3LjQzLDAsMCwxLS41Ni0xLjU5QTE4LjU2LDE4LjU2LDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0u'@; put 'MTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDIyLjU3LDVhNy40NSw3LjQ1LDAsMCwxLC41My0yQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00Wk0xMC43Niw2LjI3YzAsLjIxLjA2LjQzLjEuNjQuMDkuNDQu'@; put 'MjEuODcuMzMsMS4zYTIuMjgsMi4yOCwwLDAsMC0xLjEsMi4yNUExOC4zMiwxOC4zMiwwLDAsMCw1LjksMTQuMjIsMTIsMTIsMCwwLDEsMTAuNzYsNi4yN1ptMCwxNS43MUEyLjM0LDIuMzQsMCwwLDAsOS4yLDIzLjc0bC0uNjQsMEExMS45NCwxMS45NCwwLDAsMSw1LjgsMTYuOTJsLjExLS4x'@; put 'OWExNi45LDE2LjksMCwwLDEsNC44MS00Ljg5LDIuMzEsMi4zMSwwLDAsMCwyLjI4LjYzLDE3LjUzLDE3LjUzLDAsMCwwLDUuMzUsNS42NWMuNDEuMjcuODMuNTIsMS4yNS43NkEyLjMyLDIuMzIsMCwwLDAsMTkuNzgsMjBhMTYuOTQsMTYuOTQsMCwwLDEtNi4yLDMuMTFBMi4zNCwyLjM0LDAs'@; put 'MCwwLDEwLjc2LDIyWm03LDZhMTEuOTIsMTEuOTIsMCwwLDEtNS44MS0xLjUxbC4yOC0uMDZhMi4zNCwyLjM0LDAsMCwwLDEuNTctMS43OSwxOC40MywxOC40MywwLDAsMCw3LTMuNSwyLjI5LDIuMjksMCwwLDAsMy0uNjIsMTcuNDEsMTcuNDEsMCwwLDAsNC4zMi41NmwuNTMsMEExMiwxMiww'@; put 'LDAsMSwxNy43NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x'@; put 'NC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUuMjNjLjM0LjIzLjY5LjQzLDEsLjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNi45LDE2LjksMCwwLDAsMy4xMS03QTE3LDE3LDAsMCwwLDE0LjcyLDkuODdaIiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWk0yOC4xLDIxLjA5YTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjks'@; put 'Mi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIs'@; put 'Mi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43'@; put 'NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCww'@; put 'LDEsMTQsOC41M2ExOC41MSwxOC41MSwwLDAsMSwxMi4xMS0uMDdjMC0uMzIsMC0uNjUsMC0xaDBhMTIsMTIsMCwwLDEsMi42MiwzLjg1aDBxLS43My0uNDMtMS40OC0uNzhhMTguNCwxOC40LDAsMCwxLTMuMzksNy4zNywyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwu'@; put 'NDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRIMjUuNTZhMTguODcsMTguODcsMCwwLDEtMS42MiwyLjUyLDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAs'@; put 'MS0uNjEsMS41M0gyOC4xYTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMz'@; put 'LDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01'@; put 'LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41'@; put 'OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41OSwxOC41OSwwLDAsMSw2LjM5LTFMMjMsM0ExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBBMTQsMTQsMCwwLDAsMzEuNzYsMTZDMzEuNzYsMTUu'@; put 'OCwzMS43NCwxNS42LDMxLjczLDE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI2LDExLjY0YTE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4y'@; put 'OCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE3LjI5LDE3LjI5LDAsMCwwLDEtMS41NGgtMS42QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlhMTcuMDgsMTcuMDgsMCwwLDAtNC44NC44OCwyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwx'@; put 'LjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNSwxMy4zNWE3LjU0LDcuNTQsMCwwLDEtMS41LjE1LDcuNDYsNy40NiwwLDAsMS0zLjI4LS43NiwxOC41OSwxOC41OSwwLDAsMS0yLjc4LDUuMTgsMi4zMywyLjMzLDAsMCwx'@; put 'LC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUzSDI4LjFhMTcuNDEsMTcuNDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4w'@; put 'NmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYuOTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdh'@; put 'Mi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEyLDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMyww'@; put 'LS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwxLjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU2LDE4LjU2LDAsMCwxLDguNjUtLjg3LDcuNDUsNy40NSwwLDAsMSwuNDEtNC41OUExNCwxNCwwLDAs'@; put 'MCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBhMTQsMTQsMCwxLDAsMjcuNjgtNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzIsOS44N2EyLjI1LDIuMjUsMCwwLDEt'@; put 'LjQ3LDEuNzcsMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4LDIuMjgsMCwwLDEsMi41OC0uNTcsMTcsMTcsMCwwLDAsMi42MS01LDcuNTIsNy41MiwwLDAsMS0yLjE2LTIuNjdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0t'@; put 'YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEYuQ2xy'@; put 'U2hhcGVOZXR3b3JrU2V0dGluZ3M9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjg1LDI3LjQ0YTIuMjksMi4yOSwwLDAsMCwxLjc0LTEuNjhjLjU0LS4xNCwxLjA2LS4zMiwxLjU5LS41MXYtMS4yYTIuNzcsMi43NywwLDAsMSwuMDYtLjUxLDE3LjQ0LDE3LjQ0LDAsMCwxLTEuODIu'@; put 'NjIsMi4yOCwyLjI4LDAsMCwwLTQuMjguNjNsLS40NSwwaDBhMTEuOTMsMTEuOTMsMCwwLDEtMi44OC03LjI3LDE3Ljc5LDE3Ljc5LDAsMCwxLDUtNC43MiwyLjIzLDIuMjMsMCwwLDAsMi4yOS41NiwxOC41MiwxOC41MiwwLDAsMCw0LjQ3LDUsMi43NCwyLjc0LDAsMCwxLC4yMS0uMjRsLjk1'@; put 'LS45MWExNi45LDE2LjksMCwwLDEtNC4zNS00Ljc5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4yYzAtLjA3LDAtLjE0LDAtLjIyQTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNGwuMTksMGgxLjU2YTE5LDE5LDAsMCwwLC45MS0yLjcyYy40My4xOS44'@; put 'NC40MSwxLjI2LjY0YTExLjk0LDExLjk0LDAsMCwxLDEsNC4wOWwwLDBBMi43NywyLjc3LDAsMCwxLDMwLDE2YTIuNzMsMi43MywwLDAsMSwuNjguMUExNCwxNCwwLDEsMCwxNi4wOCwzMWEyLjcyLDIuNzIsMCwwLDEsMC0yQTExLjkzLDExLjkzLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1'@; put 'YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAs'@; put 'MCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTI1LDIxLjE5QTMuODQsMy44NCwwLDEsMCwyOC44OCwyNSwzLjg3LDMuODcsMCwwLDAsMjUsMjEuMTlabTAsNi4wOEEyLjI0LDIuMjQsMCwxLDEsMjcuMjgsMjUsMi4yNiwyLjI2LDAsMCwxLDI1LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMTcsMjQuMTRhMS4xNCwxLjE0LDAsMCwwLS43LTEuMWwtMS41Ni0uNDZxLS4xMS0uMzItLjI2LS42M2wuNzItMS4zM2ExLjE0LDEuMTQsMCwwLDAtLjIxLTEuMzRsLTEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAtMS4zNC0uMmwtMS4zNC43'@; put 'MWE3LjI4LDcuMjgsMCwwLDAtLjY3LS4yOEwyNywxNi43MWExLjE0LDEuMTQsMCwwLDAtMS4wOC0uNzZIMjRhMS4xNCwxLjE0LDAsMCwwLTEuMDguOGwtLjQ0LDEuNDNhNy4zMiw3LjMyLDAsMCwwLS42OC4yOGwtMS4zMi0uN2ExLjE0LDEuMTQsMCwwLDAtMS4zMy4xOWwtMS4zNywxLjMxYTEu'@; put 'MTQsMS4xNCwwLDAsMC0uMjEsMS4zNWwuNywxLjI4cS0uMTYuMzItLjI4LjY1TDE2LjU4LDIzYTEuMTMsMS4xMywwLDAsMC0uODEsMS4wOXYxLjg3QTEuMTQsMS4xNCwwLDAsMCwxNi41OSwyN2wxLjQ3LjQ0cS4xMi4zMi4yOC42NGwtLjcyLDEuMzVhMS4xNCwxLjE0LDAsMCwwLC4yLDEuMzVs'@; put 'MS4zNCwxLjMyYTEuMTQsMS4xNCwwLDAsMCwxLjM0LjJsMS4zNy0uNzJxLjMxLjE0LjYzLjI2bC40NCwxLjQ3YTEuMTQsMS4xNCwwLDAsMCwxLjA5LjhoMS45QTEuMTQsMS4xNCwwLDAsMCwyNywzMy4zMWwuNDQtMS40N2MuMjEtLjA3LjQyLS4xNi42Mi0uMjVsMS4zOC43M2ExLjE0LDEuMTQs'@; put 'MCwwLDAsMS4zMy0uMmwxLjM0LTEuMzJhMS4xNCwxLjE0LDAsMCwwLC4yMS0xLjM1bC0uNzMtMS4zNHEuMTQtLjMuMjUtLjZsMS41LS40NEExLjEzLDEuMTMsMCwwLDAsMzQuMTcsMjZabS0xLjYsMS41LTIsLjU4LS4xMi40MkE1LjU1LDUuNTUsMCwwLDEsMzAsMjcuNzNsLS4yMS4zOCwxLDEu'@; put 'NzktLjg2Ljg0LTEuODItMS0uMzcuMmE1Ljc4LDUuNzgsMCwwLDEtMS4xMi40NmwtLjQyLjEyLS41OSwySDI0LjM4bC0uNTktMS45NS0uNDItLjEyQTUuODYsNS44NiwwLDAsMSwyMi4yNCwzMGwtLjM3LS4yLTEuODEsMS0uODYtLjg1LDEtMS44Mi0uMjItLjM4YTUuNiw1LjYsMCwwLDEtLjQ5'@; put 'LTEuMTNsLS4xMy0uNDEtMS45NS0uNThWMjQuNDJsMS45NC0uNTguMTItLjQxYTUuNTMsNS41MywwLDAsMSwuNDktMS4xNGwuMjItLjM5LTEtMS43My44Ny0uODQsMS43Ny45NC4zOC0uMjFhNS44LDUuOCwwLDAsMSwxLjE3LS40OWwuNDEtLjEyLjU5LTEuOTFoMS4yM2wuNTgsMS45LjQxLjEy'@; put 'YTUuNzksNS43OSwwLDAsMSwxLjE2LjQ4bC4zOC4yMSwxLjgtLjk1Ljg2Ljg1LTEsMS43Ny4yMS4zOGE1LjUzLDUuNTMsMCwwLDEsLjQ3LDEuMTNsLjEyLjQyLDEuOTMuNTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0zNCwyMy42MywzMiwyM2E3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjksMTcuODZhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMWE3LDcsMCwwLDAtMS40My0uNjFsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4z'@; put 'Ny4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxTDIwLDE3LjhhLjM3LjM3LDAsMCwwLS40NC4wN0wxOCwxOS4zMWEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LDcsMCwwLDAsMTguMzUsMjNsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCww'@; put 'LDAsLjI2LjM1bDIsLjYxQTcsNywwLDAsMCwxOSwyOC4zN2wtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NGwxLjQ1LDEuNDVhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwu'@; put 'MzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhBNyw3LDAsMCwwLDMxLjk1LDI3bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjI0QS4zNy4zNywwLDAsMCwzNCwy'@; put 'My42M1ptLTguODMsNC43MkEzLjMzLDMuMzMsMCwxLDEsMjguNTMsMjUsMy4zMywzLjMzLDAsMCwxLDI1LjE5LDI4LjM0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44NSwyNy40NGEyLjI5LDIuMjksMCwwLDAs'@; put 'MS43NC0xLjY4LDE5LjcxLDE5LjcxLDAsMCwwLDEuODktLjZWMjMuOTVhMiwyLDAsMCwxLC4wOS0uNTUsMTcuNDIsMTcuNDIsMCwwLDEtMi4xNy43OCwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEs'@; put 'NS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNjUsNS4wOSwxLjkzLDEuOTMsMCwwLDEsLjIzLS4zMmwuODktLjg3YTE2Ljg5LDE2Ljg5LDAsMCwxLTQuNDktNC44OSwyLjI3LDIuMjcsMCwwLDAsLjM1LTEuMmMwLS4wNywwLS4xNCwwLS4yMkExNy42'@; put 'OSwxNy42OSwwLDAsMSwyNSwxMWExNy40OSwxNy40OSwwLDAsMS0xLjE1LDMuMzUsMS45NCwxLjk0LDAsMCwxLC4zMS0uMDVoMS40NWExOS4wNiwxOS4wNiwwLDAsMCwuOS0yLjdjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTMsMTEuOTMsMCwwLDEsMSw0LjYzbDEtLjUxYTIsMiwwLDAsMSwu'@; put 'OTItLjIzaC4wOEExNCwxNCwwLDEsMCwxNi40NCwzMWExLjk0LDEuOTQsMCwwLDEsLjEyLTEuNDZsLjI4LS41M2gtLjA3QTExLjkxLDExLjkxLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCww'@; put 'LDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwx'@; put 'OS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMC43'@; put 'OCw4LjQxQTIsMiwwLDAsMCwyOC44Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1pNMzIsMjdINFYxOS4wNkw3LjEzLDlIMjgu'@; put 'ODdMMzIsMTkuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVj'@; put 'dCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9'@; put 'IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0'@; put 'IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMywxNS40SDMwLjg2TDMyLDE5LjA2'@; put 'VjI3SDRWMTkuMDZMNy4xMyw5SDE5LjU2bDEuMTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEu'@; put 'MjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyLjEyIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1i'@; put 'YWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIi'@; put 'IHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40N2wtMS42NS01LjMyYTcuNDksNy40OSwwLDAsMS0yLC4zM0wzMiwxOS4wNlYyN0g0VjE5LjA2TDcuMTMsOWgxNmE3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCww'@; put 'LS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5'@; put 'PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAs'@; put 'NS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFW'@; put 'MjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMTNBMiwyLDAs'@; put 'MCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFW'@; put 'MjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu'@; put 'MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0zMi4yNiwxMy4xNUE3LjQ5LDcuNDksMCwwLDEsMjIuNTcsN0g3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNmEyLDIsMCwwLDAtLjA5LS41OVpNOC45MiwyNUg3'@; put 'LjEyVjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMEgyMi4xVjIyaDEuOFptNSwwSDI3LjFWMjJoMS44Wk0zMSwxOS40SDVWMThIMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAg'@; put 'ICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlUm91dGVyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwx'@; put 'NC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwxLDAsMCwwLDIsMFYyNWwyLjY5LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40MUwxNywyNXY3LjY5YTEsMSwwLDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zOCwxNS40SDI4LjU0TDMwLjE1LDE3SDIyLjQ2YTEsMSwwLDEsMCwwLDJoNy42OWwtMi43MSwyLjY5YTEsMSwwLDAsMCwxLjQxLDEuNDJMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC44N2wxLjE1LTEuMTYtLjEtLjE1QTMuNjgsMy42OCwwLDAsMSwxOSwxMFYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40'@; put 'MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0'@; put 'Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuODdsNS4xMS01LjE0'@; put 'YTEsMSwwLDEsMC0xLjQyLTEuNDFMMTksMTFWMy4zM2ExLDEsMCwwLDAtMiwwVjExTDE0LjMxLDguMzJhMSwxLDAsMSwwLTEuNDIsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWExLDEsMCwwLDAsMiwwVjI1bDIuNjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMTgsMS42N2ExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOCwxLjY3Wk0xMy44Niw5LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1'@; put 'LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44LjgsMCwwLDEtMS4xMywwTDUsMTcuNjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEw'@; put 'LjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjkuNGEuOC44LDAsMCwxLTEuNiwwVjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44'@; put 'LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjdsLTIuMi0yLjE0YS44LjgsMCwxLDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44'@; put 'MiwxNS4zOUgyOC42OEwzMSwxNy42N2wtNC4xOSw0LjA5YS44LjgsMCwxLDEtMS4xMi0xLjE0bDIuMi0yLjE1SDIxLjYzYS44LjgsMCwwLDEsMC0xLjZoNi4yN2wtMS41LTEuNDdIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTMtMS41MUwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDEsMSwxNSw5'@; put 'LjkybDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2NC40OUEzLjY1LDMuNjUsMCwwLDEsMTksOS44OWw0LjIyLTcuMzFBMTYsMTYsMCwxLDAsMzQsMTcuNjcsMTYsMTYsMCwwLDAsMzMuODIsMTUuMzlabS0yMy41LDYuMzVhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQu'@; put 'MDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEuNkg4LjExbDIuMiwyLjE1QS44LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUs'@; put 'MjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAsMSwyMi4xNCwyNS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwy'@; put 'MS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHIt'@; put 'aS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4yMiwxMi43NkE3LjQ5LDcuNDksMCwwLDEsMjMuMzIsMi42YTE2LDE2LDAsMSwwLDkuOSwxMC4xN1pNMTMuODYsOS45MmEuOC44LDAsMCwxLDEuMTMsMGwyLjIxLDIuMTlWNS45M2EuOC44LDAsMCwxLDEuNiwwdjYuMThMMjEs'@; put 'OS45MmEuOC44LDAsMSwxLDEuMTMsMS4xNEwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDAsMSwxMy44Niw5LjkyWk0xMC4zMiwyMS43NGEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAs'@; put 'MS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2EuOC44LDAsMCwxLTEuMTMsMEwxOC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAs'@; put 'MCwxLDIyLjE0LDI1LjQxWm00LjY3LTMuNjZhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIuMTVIMjEuNjNhLjguOCwwLDAsMSwwLTEuNmg2LjI3bC0yLjItMi4xNGEuOC44LDAsMSwxLDEuMTItMS4xNEwzMSwxNy42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVWTT0oMCxtLmNs'@; put 'ckljb25TVkcpKCc8cGF0aCBkPSJNMTEsNUgyNVY4aDJWNWEyLDIsMCwwLDAtMi0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBIMTd2Mmg4djZoMlYxMmgz'@; put 'VjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOGg4YTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLDVIMjEuODdMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djYuODVoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAv'@; put 'PlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjE1LjQiIHdpZHRoPSIxLjk5IiBoZWlnaHQ9IjIuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNFYyNkgy'@; put 'MlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMTB2MmgxLjU3QTMuNjcsMy42NywwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLDVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVoMFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40'@; put 'OSwwLDAsMSwzMCwxMy41Wk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMmg4djZoMlYxMi44N0E3'@; put 'LjUyLDcuNTIsMCwwLDEsMjMuNjYsMTBIMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDI3VjVhMiwyLDAsMCwwLTItMkgxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxNy4xOWEyLDIsMCwwLDAtMiwydjEuNEgyMEEzLjYsMy42LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAs'@; put 'MCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEyQTIsMiwwLDAsMCwzMCwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42aDIuNzJMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4xOSwxMGEyLDIs'@; put 'MCwwLDAtMiwydjEuNEgxOUEzLjY4LDMuNjgsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjIxLDE1LjRBMy41NSwzLjU1LDAsMCwxLDIzLjYsMTd2OEgyMlYx'@; put 'N2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAs'@; put 'MCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDIyLjlBNy40NSw3LjQ1LDAsMCwxLDIz'@; put 'LjEzLDNIMTFBMiwyLDAsMCwwLDksNXY4LjRoNC41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDE3LjE5YTIsMiwwLDAsMC0y'@; put 'LDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIs'@; put 'MiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0t'@; put 'YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlVk1XQXBwPSgwLG0uY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIg'@; put 'MjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMTQgNiAxNCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMCA0IDIwIDggMjIgOCAyMiA2IDMwIDYgMzAgMTQgMjggMTQgMjggMTYgMzIgMTYgMzIgNCAyMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIx'@; put 'MSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02'@; put 'IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI4IDIyIDMwIDIyIDMwIDMwIDIyIDMwIDIyIDI4IDIwIDI4IDIwIDMyIDMyIDMyIDMyIDIwIDI4IDIwIDI4IDIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE0IDYgMTQgNiA2IDE0IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxl'@; put 'cnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRo'@; put 'PSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmwwLS4xVjE3aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRl'@; put 'ZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIuNDUgNCAyMCA0IDIwIDggMjAuMTQgOCAyMi40NSA0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIx'@; put 'NS40IiB3aWR0aD0iNCIgaGVpZ2h0PSIwLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4'@; put 'QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29u'@; put 'IHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50'@; put 'cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0'@; put 'IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJh'@; put 'ZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDZoLjVhNy40OSw3LjQ5'@; put 'LDAsMCwxLC4yOC0ySDIwVjhoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjE0SDI4djJoNFYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxMS41OGE3LjUzLDcuNTMsMCwwLDEtLjU4LS41OEgxOXY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlQ2VydGlmaWNh'@; put 'dGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhINFY4SDMybDAsOC41NmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxVjhBMiwyLDAsMCwwLDMyLDZaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2'@; put 'IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQt'@; put 'MTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0i'@; put 'MS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYs'@; put 'Ni4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIN3YxLjZIMTkuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjEuMTZhOC40MSw4'@; put 'LjQxLDAsMCwxLDIsMS44MXYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTls'@; put 'LjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEEx'@; put 'LjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9Ijci'@; put 'IHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIxNiIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAu'@; put 'NjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2My4zNGE4LjQxLDgu'@; put 'NDEsMCwwLDEsMiwxLjgxdi02QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI4VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0y'@; put 'SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0TDIwLjQxLDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1'@; put 'IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDMwSDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMzJhMiwyLDAsMCwxLDIsMlYxOC4zN2E4LjM0'@; put 'LDguMzQsMCwwLDAtMTMuNDksOS43OWwtLjkzLDEuMTRaTTcsMTJ2MS42SDI0VjEyWm0wLDUuNkgxOFYxNkg3Wm0wLDdIMTdWMjNIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNTlhNi4zNyw2LjM3'@; put 'LDAsMSwwLTEwLjc3LDQuNTlsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdBNi4zNCw2LjM0LDAsMCwwLDMzLjgzLDIzLjU5Wm0tMTAuNzQsMGE0LjM3LDQuMzcsMCwxLDEsNC4zNyw0LjMxQTQuMzUs'@; put 'NC4zNSwwLDAsMSwyMy4xLDIzLjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2'@; put 'LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCwwLDAsMzMuODMsMjMuNTlabS0xMC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy'@; put 'LWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMjkuMjVhOC4zNiw4LjM2LDAsMCwxLDQuNzUsM3YtM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTkuMDcsMTMuNkg3VjEySDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5TDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRBOC4zNCw4LjM0LDAsMCwxLDI1LjY2LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAs'@; put 'MCwxLDE5LjA3LDEzLjZaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww'@; put 'LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjcuNDYsMTcuMjNhNi4zNiw2LjM2LDAsMCwwLTQuNCwxMWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN2E2LjM2LDYuMzYsMCwwLDAtNC40LTExWm0wLDEwLjY4YTQuMzEsNC4z'@; put 'MSwwLDEsMSw0LjM3LTQuMzFBNC4zNSw0LjM1LDAsMCwxLDI3LjQ2LDI3LjkxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg0QTIsMiww'@; put 'LDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQsMCwwLDEsMzQsMTguMzd2LTZBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThabTYtNEg3VjEySDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksRi5DbHJT'@; put 'aGFwZUFyY2hpdmU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x'@; put 'NCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwxOEg2VjE0aDRhMywzLDAsMCwxLS42OC0xLjg3czAtLjA5LDAt'@; put 'LjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNBMywzLDAsMCwxLDI2LDE0aDR2NEgyMmwtMiwySDMyVjEz'@; put 'LjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00'@; put 'LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQxLDIwLjYsMTgsMjJsLTEuNDEtMS40TDE2LDIwSDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0y'@; put 'VjIwSDIwWk0yMiwyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCwwLDEsMjIsMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNhMywzLDAsMCwx'@; put 'LS44OCwyLjEyTDIyLDE4SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yLDE0LjI1YTMsMywwLDAsMS0uODgtMi4xMnMwLS4wOSwwLS4xM0g1LjVBMS41LDEu'@; put 'NSwwLDAsMCw0LDEzLjVWMThIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE5LjE4bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTEuNDFsLTQsMy45NVYzYTEsMSwwLDEsMC0yLDB2MTIuNGwtNC0zLjk1YTEs'@; put 'MSwwLDAsMC0xLjQxLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlVW5hcmNoaXZlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkg3VjIySDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAs'@; put 'Mi0yVjIySDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQsMjRhMSwxLDAsMCwwLDEsMWg2YTEsMSwwLDAsMCwwLTJIMTVBMSwxLDAsMCwwLDE0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMThINlYxNGg5VjEySDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNS43OEEzLDMsMCwwLDEsMTUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0zMC41LDEySDIxdjJoOXY0SDIxYTMsMywwLDAsMS0uNzgsMkgzMlYxMy41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDkuNTUsMTcsNS42'@; put 'VjE4YTEsMSwwLDEsMCwyLDBWNS42bDQsMy45NWExLDEsMCwxLDAsMS40MS0xLjQyTDE4LDEuNzgsMTEuNjEsOC4xM0ExLDEsMCwwLDAsMTMsOS41NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxYTMs'@; put 'MywwLDAsMS0yLjIyLTFINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBIMjAuMjFBMywzLDAsMCwxLDE4LDIxWm00LDNhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwwLDEsMC0yaDZBMSwxLDAsMCwxLDIyLDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMkg1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2NkgzMlYxMy41QTEuNSwxLjUs'@; put 'MCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEs'@; put 'MSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz5cbiAgICAgICAgJyksRi5DbHJTaGFwZUNvbm5lY3Q9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDI4LjIzQTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxNC4xNWE2LjI1LDYu'@; put 'MjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMjJhNi4yMiw2LjIyLDAsMCwwLDYuMjItNUgzNFpNMTcuMDgsMjJIMTQuMTVhNC4xNyw0LjE3LDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00aDIuOTRaTTIyLDIySDE5VjE0aDNhNC4xNyw0'@; put 'LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjIsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiww'@; put 'LDAsMCw2LjIyLDVIMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjIzLDE3QTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxOVYyNGgzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLTVIMzRWMTdaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlRGlzY29ubmVjdD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTcsNkE2LjIxLDYuMjEsMCwwLDAsNiwxMUgyLjEzdjJINmE2LjIzLDYuMjMsMCwwLDAsNi4yMSw1SDE3VjZaTTE1LjEsMTZI'@; put 'MTIuMTdhNC4yLDQuMiwwLDAsMS00LjMxLTQsNC4xNyw0LjE3LDAsMCwxLDQuMzEtNEgxNS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTIsMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgx'@; put 'OXYySDE0YTEsMSwwLDEsMCwwLDJoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNzZabS0xMCw1SDIxVjIwaDIuOTRhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjMuOTQsMjhaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiw2YTYuMjEsNi4yMSwwLDAsMC02LjIxLDVIMnYySDUuODNBNi4yMyw2LjIzLDAsMCwwLDEyLDE4SDE3VjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc5LDIzSDMwLjE0YTYuMjUsNi4yNSwwLDAsMC02LjIxLTVIMTl2MkgxNGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAs'@; put 'Ni4yMi01aDMuNjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlTGluaz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNiwyNC4zMmwtMi40NiwyLjQ0YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwx'@; put 'LDAtNS41NWw0LjY5LTQuNjVhNCw0LDAsMCwxLDUuNjIsMCwzLjg2LDMuODYsMCwwLDEsMSwxLjcxQTIsMiwwLDAsMCwyMS4xLDE4bDEuMjktMS4yOGE1Ljg5LDUuODksMCwwLDAtMS4xNS0xLjYyLDYsNiwwLDAsMC04LjQ0LDBMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2'@; put 'LDAsMCwwLDguNDQsMGwzLjY1LTMuNjJjLS4xNywwLS4zMywwLS41LDBBOCw4LDAsMCwxLDE3LjYsMjQuMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42MSw3LjgyYTYsNiwwLDAsMC04LjQ0LDBsLTMu'@; put 'NjUsMy42MmMuMTcsMCwuMzMsMCwuNDksMGgwYTgsOCwwLDAsMSwyLjEuMjhsMi40Ni0yLjQ0YTQsNCwwLDAsMSw1LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC42OSw0LjY1YTQsNCwwLDAsMS01LjYyLDAsMy44NiwzLjg2LDAsMCwxLTEtMS43MSwyLDIsMCwwLDAtLjI4LjIzbC0x'@; put 'LjI5LDEuMjhhNS44OSw1Ljg5LDAsMCwwLDEuMTUsMS42Miw2LDYsMCwwLDAsOC40NCwwbDQuNjktNC42NWE1LjkyLDUuOTIsMCwwLDAsMC04LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVVbmxpbms9KDAs'@; put 'bS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsNSwzLjU5LDYuNDFsOSw5TDguMSwxOS43OWE1LjkxLDUuOTEsMCwwLDAsMCw4LjM5LDYsNiwwLDAsMCw4LjQ0LDBMMjEsMjMuNzhsOC42Myw4LjYzTDMxLDMxWk0xNS4xMywyNi43NmE0LDQsMCwwLDEtNS42MiwwLDMuOTIsMy45MiwwLDAsMSww'@; put 'LTUuNTVMMTQsMTYuNzlsNS41OCw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNTMsOS4yMmE0LDQsMCwwLDEsNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLDUuNTVsLTQuNzksNC43NkwyMy43OCwy'@; put 'MWw0Ljc5LTQuNzZhNS45Miw1LjkyLDAsMCwwLDAtOC4zOSw2LDYsMCwwLDAtOC40NCwwbC00Ljc2LDQuNzRMMTYuNzgsMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksRi5DbHJTaGFwZUNsb3VkTmV0d29yaz0oMCxtLmNscklj'@; put 'b25TVkcpKCc8cGF0aCBkPSJNMzAuNzEsMTUuMTh2LTFBMTEuMjgsMTEuMjgsMCwwLDAsMTkuNTYsMi44M2gtLjExYTExLjI4LDExLjI4LDAsMCwwLTExLDguOTMsNy40Nyw3LjQ3LDAsMCwwLDAsMTQuOTRIMjkuMTNhNS44Niw1Ljg2LDAsMCwwLDEuNTgtMTEuNTJaTTI5LjEzLDI0LjdIOC40'@; put 'NmE1LjQ3LDUuNDcsMCwxLDEsMC0xMC45NGgxLjY5bC4xMS0uODdhOS4yNyw5LjI3LDAsMCwxLDE4LjQ1LDEuM3YxLjI4YzAsLjA5LDAsLjE4LDAsLjI3bC0uMDcsMS4xNS45NC4xMWEzLjg2LDMuODYsMCwwLDEtLjQzLDcuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41OCwzMS4xOEgxOC44NXYtMi40aC0ydjIuNEg2LjA4YTEsMSwwLDAsMCwwLDJoMjMuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEYu'@; put 'Q2xyU2hhcGVDbG91ZFNjYWxlPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjMyLDExLjExSDcuODRMOCwxMC4yNEE3LjE5LDcuMTksMCwwLDEsMTUuMDcsNGguMDdhNy4xNSw3LjE1LDAsMCwxLDQuNzEsMS44MywxMS4xLDExLjEsMCwwLDEsMy4wOS42NEE5LjE4LDkuMTgsMCwwLDAs'@; put 'MTUuMTYsMmgtLjA5QTkuMiw5LjIsMCwwLDAsNi4xMyw5LjExLDYuMTUsNi4xNSwwLDAsMCwyLjMzLDE5Ljk1LDguMDksOC4wOSwwLDAsMSwzLDE3LjcxYTQuMTIsNC4xMiwwLDAsMS0uODEtMi40NEE0LjE2LDQuMTYsMCwwLDEsNi4zMiwxMS4xMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjQsMTYuOTFoMS41MkwxMiwxNmE3LjE5LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjE3LDcuMTcsMCwwLDEsNS43LDIuOTIsMTEuMDUsMTEuMDUsMCwwLDEsMi43Mi43Nyw5LjIsOS4yLDAsMCwwLTgu'@; put 'NC01LjY5aC0uMDlhOS4yLDkuMiwwLDAsMC04Ljk0LDcuMTIsNi4xNSw2LjE1LDAsMCwwLTMuNjQsMTEsOC4xMSw4LjExLDAsMCwxLC43OS0yLDQuMTQsNC4xNCwwLDAsMSwzLTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0zMi40MiwyNC40N3YtLjYyYTkuMTgsOS4xOCwwLDAsMC0xOC4xMy0yLjE2QTYuMTYsNi4xNiwwLDAsMCwxNC40OCwzNEgzMWE0Ljg4LDQuODgsMCwwLDAsMS40Ni05LjUzWk0zMSwzMkgxNC40OGE0LjE2LDQuMTYsMCwxLDEsMC04LjMySDE2bC4xMS0uODdhNy4xOSw3LjE5LDAs'@; put 'MCwxLDcuMTItNi4yNWguMDdhNy4yMSw3LjIxLDAsMCwxLDcuMTIsNy4yNXYxYzAsLjA3LDAsLjEzLDAsLjJsLS4wNywxLjExLjk0LjExQTIuODgsMi44OCwwLDAsMSwzMSwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAnKSxGLkNs'@; put 'clNoYXBlQ2xvdWRUcmFmZmljPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwyMC44MmEuODguODgsMCwwLDAtLjg4LS44OEgyMC43NWwxLjEtMS4xQS44OC44OCwwLDAsMCwyMC42LDE3LjZsLTMuMjEsMy4yMkwyMC42LDI0YS44OC44OCwwLDEsMCwxLjI1LTEuMjRMMjAuNzYs'@; put 'MjEuN2g0LjlBLjg4Ljg4LDAsMCwwLDI2LjU0LDIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjcsMjEuN2EuODguODgsMCwxLDAsMC0xLjc2aC0uNThhLjg4Ljg4LDAsMSwwLDAsMS43NloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIxLDIwaC0uMDZhLjg1Ljg1LDAsMCwwLS44NS44OC45MS45MSwwLDAsMCwuOTEuODguODguODgsMCwxLDAsMC0xLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuNTksMTFhLjg4Ljg4LDAsMCwwLTEuMjUsMS4yNGwxLjEsMS4xSDI3LjUzYS44OC44OCwwLDEsMCwwLDEuNzZoNC45bC0xLjA5LDEuMDlhLjg4Ljg4LDAsMCwwLDEuMjUsMS4yNGwzLjIxLTMuMjJaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC41LDE1LjA3YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuOSwxNC4yN2EuODUuODUsMCwwLDAtLjg1LS44OEgyMWEuODguODgsMCwxLDAsMCwxLjc2QS45MS45MSwwLDAsMCwyMS45LDE0LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMzAuMzYsMjMuNjVjMCwuMTMsMCwuMjYsMCwuMzlhMy43NywzLjc3LDAsMCwxLTMuNjIsMy44OUg3LjI4YTUuMzIsNS4zMiwwLDAsMS01LjEzLTUuNDhBNS4zMiw1LjMyLDAsMCwxLDcuMjgsMTdIOC45MUw5LDE2LjEyYTguOTIsOC45MiwwLDAsMSw4LjYyLThoLjA4YTgu'@; put 'NDksOC40OSwwLDAsMSw2LjU2LDMuMjloMi4zN2ExMC41NSwxMC41NSwwLDAsMC04LjkxLTUuMjVoLS4xMUExMC44MiwxMC44MiwwLDAsMCw3LjIyLDE1YTcuMjgsNy4yOCwwLDAsMC03LDcuNDMsNy4yNyw3LjI3LDAsMCwwLDcuMDgsNy40M0gyNi43N0E1LjcyLDUuNzIsMCwwLDAsMzIuMzUs'@; put 'MjRhMy43NywzLjc3LDAsMCwwLDAtLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVEZXBsb3k9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMiIgZD0iTTExLjU0LDEwLjczbC05LDUuMTdhMSwxLDAsMCwwLS41Ljg3djExYTEsMSwwLDAsMCwuNS44N2w5LDUuMTVhMSwxLDAsMCwwLDEsMGw5LTUuMTVhMSwxLDAsMCwwLC41LS44N3YtMTFhMSwxLDAsMCwwLS41LS44N2wtOS01LjE3QTEsMSwwLDAsMCwxMS41NCwxMC43M1pN'@; put 'MTEsMzEuMDhsLTctNFYxOC40NGw3LDRaTTEyLDIxLDQuODEsMTYuODcsMTIsMTIuNzhsNy4yMSw0LjEyWm04LDYuMDktNyw0VjIyLjQ0bDctNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAs'@; put 'MCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTIuNDYsMTAuNzNhMSwx'@; put 'LDAsMCwwLTEsMGwtOC42OCw1TDEyLDIxbDkuMTktNS4yNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDI3LjczYTEsMSwwLDAsMCwuNS44N0wxMSwzMy40NnYtMTFMMiwxNy4yOFoiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xMywzMy40Nmw4LjUtNC44NmExLDEsMCwwLDAsLjUtLjg3VjE3LjI5bC05LDUuMTVaIi8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVIZWxpeD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODgsMTMuMDdhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUuNzNhLjkuOSwwLDEsMSwxLDEuNTJMOS4zNywxMi45MkEuOS45LDAsMCwxLDguODgsMTMuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEzLjI1LDE1LjExYS45LjksMCwwLDEtLjQ5LTEuNjZMMTgsMTAuMDhhLjkuOSwwLDEsMSwxLDEuNTJMMTMuNzQsMTVBLjkuOSwwLDAsMSwxMy4yNSwxNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTkuNzIsMzAuMjNhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUuNzNhLjkuOSwwLDAsMSwxLDEuNTJMMjAuMiwzMC4wOUEuOS45LDAsMCwxLDE5LjcyLDMwLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOC45MiwyNS45NGEuOS45LDAsMCwxLS40OS0xLjY2bDUuMjUtMy4zN2EuOS45LDAsMSwxLDEsMS41MUwxOS40LDI1LjhBLjg5Ljg5LDAsMCwxLDE4LjkyLDI1Ljk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMS41Niw1LjY5YTMuNTksMy41OSwwLDAsMSwuMTUsMy41M0wxOC44MywxNWgyLjI1bDIuNDMtNC44N2E1LjYxLDUuNjEsMCwwLDAtNS04LjE0SDEzLjI2bC0xLDJoNi4yMkEzLjYxLDMuNjEsMCwwLDEsMjEuNTYsNS42OVoiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuOTEsMjAuNzhBNS41Myw1LjUzLDAsMCwwLDI3LjY2LDE3SDkuMzFhMy41NCwzLjU0LDAsMCwxLTMuNTYtMy42NywzLjYxLDMuNjEsMCwwLDEsLjQyLTEuNTRsNC4yNi04LjQ5YTEsMSww'@; put 'LDEsMC0xLjc5LS45TDQuNCwxMC44NEE1LjY3LDUuNjcsMCwwLDAsNCwxNS4yMiw1LjUzLDUuNTMsMCwwLDAsOS4yOCwxOWg3LjZsLTMuNDQsNi44N2E1LjY0LDUuNjQsMCwwLDAsMS41LDYuOTJBNS4zOCw1LjM4LDAsMCwwLDE4LjQxLDM0aDUuMjVsMS0ySDE4LjQzYTMuNTgsMy41OCwwLDAs'@; put 'MS0zLjIyLTUuMjFMMTkuMTEsMTloOC41NGEzLjQyLDMuNDIsMCwwLDEsMi4xNS43MSwzLjU3LDMuNTcsMCwwLDEsMSw0LjQzbC00LjEyLDguMjJhMSwxLDAsMSwwLDEuNzkuOWw0LjA2LTguMUE1LjY3LDUuNjcsMCwwLDAsMzIuOTEsMjAuNzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTkuNjNBNS41NSw1LjU1LDAsMCwwLDI3LjQyLDE3SDEwLjA2YTQuMzYsNC4zNiwwLDAsMS0zLjY3LTIsNC4wNyw0LjA3LDAsMCwxLS4xOS00LjEzbDMuNjItNywxLjQyLDEuNjMtMi43NCw1LjMsOC44NC01LjY2'@; put 'YS45MS45MSwwLDAsMSwxLDEuNTNMNy44NCwxMy4zOGEyLjEzLDIuMTMsMCwwLDAsLjI0LjUyLDIuMjgsMi4yOCwwLDAsMCwxLjY1LDFMMTguMTEsOS41YS45MS45MSwwLDAsMSwxLDEuNTJMMTMsMTQuOTRIMjAuOGwyLjQxLTQuODJhNS42LDUuNiwwLDAsMC01LTguMTJIOWExLDEsMCwwLDAt'@; put 'LjkuNTZMMy44OCwxMC44OWE1LjYsNS42LDAsMCwwLDUsOC4xMmg3LjY1bC0zLjQzLDYuODdhNS42LDUuNiwwLDAsMCw1LDguMTJoOS4yOGExLDEsMCwwLDAsLjkzLS42NWw0LjE0LTguMjRBNS41OCw1LjU4LDAsMCwwLDMyLjE2LDE5LjYzWk0xNy43NSwyNS41N0EuOTEuOTEsMCwwLDEsMTgs'@; put 'MjQuMzFsNi0zLjg4QS45MS45MSwwLDEsMSwyNSwyMmwtNiwzLjg4YS45MS45MSwwLDAsMS0xLjI2LS4yN1pNMjksMjQuMzRsLTksNS43OGEuOTEuOTEsMCwxLDEtMS0xLjUzbDktNS43OGEuOTEuOTEsMCwxLDEsMSwxLjUzWiIvPlxuICAgICAgICAnKSxGLkNsclNoYXBlRmxhc2s9KDAsbS5j'@; put 'bHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQzLDI3LjI4LDIzLDE0Ljg0VjRoMWExLDEsMCwwLDAsMC0ySDEyYTEsMSwwLDAsMCwwLDJoMVYxNC44NEw0LjUxLDI3LjM2QTQuMjksNC4yOSwwLDAsMCw1LDMyLjgsNC4zOCw0LjM4LDAsMCwwLDguMTUsMzRIMjhhNC4yNCw0LjI0LDAsMCwwLDMu'@; put 'NDItNi43MlpNMjkuODUsMzFhMi42MiwyLjYyLDAsMCwxLTIsMUg4YTIuMiwyLjIsMCwwLDEtMi4wNi0xLjQxLDIuNjgsMi42OCwwLDAsMSwuMjktMi4xN2wzLTQuNDQsMTQsMC0xLjMxLTJIMTAuNTdMMTUsMTUuNDZWNGg2VjE1LjQ2bDguODQsMTMuMDVBMi4yMywyLjIzLDAsMCwxLDI5Ljg1'@; put 'LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDksMjcuNCwyMywxNC45NFY0aDFhMSwxLDAsMCwwLDAtMkgxMi4wOGExLDEsMCwwLDAsMCwySDEzVjE0Ljk0TDQuNTgsMjcuMzFhNC4zMSw0LjMxLDAs'@; put 'MCwwLS43OCwzQTQuMjMsNC4yMywwLDAsMCw4LDM0SDI3Ljg2QTQuMzYsNC4zNiwwLDAsMCwzMSwzMi44LDQuMjMsNC4yMywwLDAsMCwzMS40OSwyNy40Wk0xNSwxNS40OVY0aDZWMTUuNDlMMjYuMTUsMjNIOS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+'@; put 'XG4gICAgICAgICcpLEYuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42OCwxNC44MWE2Ljc2LDYuNzYsMCwxLDEsNi43Ni02Ljc1QTYuNzcsNi43NywwLDAsMSwxNC42OCwxNC44MVptMC0xMS41MWE0Ljc2LDQuNzYsMCwxLDAsNC43Niw0Ljc2'@; put 'QTQuNzYsNC43NiwwLDAsMCwxNC42OCwzLjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40MiwzMS42OEEyLjE0LDIuMTQsMCwwLDEsMTUuOCwzMEg0VjI0LjIyYTE0LjgxLDE0LjgxLDAsMCwxLDExLjA5'@; put 'LTQuNjhsLjcyLDBhMi4yLDIuMiwwLDAsMSwuNjItMS44NWwuMTItLjExYy0uNDcsMC0xLS4wNi0xLjQ2LS4wNkExNi40NywxNi40NywwLDAsMCwyLjIsMjMuMjZhMSwxLDAsMCwwLS4yLjZWMzBhMiwyLDAsMCwwLDIsMkgxNi43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODcsMTYuMjlhLjM3LjM3LDAsMCwxLC4xNSwwLC40Mi40MiwwLDAsMC0uMTUsMFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwy'@; put 'My4zMmwtMi0uNjFhNy4yMSw3LjIxLDAsMCwwLS41OC0xLjQxbDEtMS44NkEuMzguMzgsMCwwLDAsMzIsMTlsLTEuNDUtMS40NWEuMzYuMzYsMCwwLDAtLjQ0LS4wN2wtMS44NCwxYTcuMTUsNy4xNSwwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM2LjM2LDAsMCwwLS4zNi0uMjRIMjMuODJhLjM2'@; put 'LjM2LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNmwtMS44Mi0xYS4zNS4zNSwwLDAsMC0uNDMuMDdMMTcuNjksMTlhLjM4LjM4LDAsMCwwLS4wNi40NGwxLDEuODJBNi43Nyw2Ljc3LDAsMCwwLDE4LDIyLjY5bC0yLC42YS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNUEuMzUu'@; put 'MzUsMCwwLDAsMTYsMjZsMiwuNjFhNyw3LDAsMCwwLC42LDEuNDFsLTEsMS45MWEuMzYuMzYsMCwwLDAsLjA2LjQzbDEuNDUsMS40NWEuMzguMzgsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA5LDcuMDksMCwwLDAsMS40LjU3bC42LDJhLjM4LjM4LDAsMCwwLC4zNS4yNmgyLjA1YS4zNy4zNyww'@; put 'LDAsMCwuMzUtLjI2bC42MS0yLjA1YTYuOTIsNi45MiwwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM2LjM2LDAsMCwwLC40My0uMDdMMzIsMzAuNEEuMzUuMzUsMCwwLDAsMzIsMzBsLTEtMS44OGE3LDcsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM2LjM2LDAsMCwwLC4yNi0uMzVWMjMuNjdBLjM2'@; put 'LjM2LDAsMCwwLDMzLjY4LDIzLjMyWk0yNC44NSwyOGEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjMzQTMuMzQsMy4zNCwwLDAsMSwyNC44NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTQuNjciIGN5'@; put 'PSI4LjMiIHI9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTYuNDQsMzEuODJhMi4xNSwyLjE1LDAsMCwxLS4zOC0yLjU1bC41My0xLTEuMDktLjMzQTIuMTQsMi4xNCwwLDAsMSwxNCwyNS44NFYyMy43OWEyLjE2'@; put 'LDIuMTYsMCwwLDEsMS41My0yLjA3bDEuMDktLjMzLS41Mi0xYTIuMTcsMi4xNywwLDAsMSwuMzUtMi41MiwxOC45MiwxOC45MiwwLDAsMC0yLjMyLS4xNkExNS41OCwxNS41OCwwLDAsMCwyLDIzLjA3djcuNzVhMSwxLDAsMCwwLDEsMUgxNi40NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNywyMy40NmwtMi0uNmE2LjczLDYuNzMsMCwwLDAtLjU4LTEuNDJsMS0xLjg2YS4zNS4zNSwwLDAsMC0uMDctLjQzbC0xLjQ1LTEuNDZhLjM4LjM4LDAsMCwwLS40My0uMDdsLTEuODUsMWE3Ljc0LDcuNzQsMCww'@; put 'LDAtMS40My0uNmwtLjYxLTJhLjM4LjM4LDAsMCwwLS4zNi0uMjVIMjMuODRhLjM4LjM4LDAsMCwwLS4zNS4yNmwtLjYsMmE2Ljg1LDYuODUsMCwwLDAtMS40NS42MWwtMS44MS0xYS4zOC4zOCwwLDAsMC0uNDQuMDZsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LjI0'@; put 'LDcuMjQsMCwwLDAsMTgsMjIuODNsLTIsLjYxYS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNWEuMzYuMzYsMCwwLDAsLjI2LjM1bDIsLjYxYTcuMjksNy4yOSwwLDAsMCwuNiwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LjE2LDMyYS4zOC4zOCwwLDAsMCwuNDQuMDZsMS44Ny0x'@; put 'YTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMi4wNWEuMzguMzgsMCwwLDAsLjM2LjI2aDIuMDVhLjM4LjM4LDAsMCwwLC4zNS0uMjZsLjYtMi4wNWE2LjY4LDYuNjgsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zOC4zOCwwLDAsMCwuNDQtLjA2TDMyLDMwLjU1YS4zOC4zOCwwLDAsMCwuMDYt'@; put 'LjQ0bC0xLTEuODhhNi45Miw2LjkyLDAsMCwwLC41Ny0xLjM4bDItLjYxYS4zOS4zOSwwLDAsMCwuMjctLjM1VjIzLjgyQS40LjQsMCwwLDAsMzMuNywyMy40NlptLTguODMsNC43MmEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjM0QTMuMzQsMy4zNCwwLDAsMSwyNC44NywyOC4xOFoiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICcpLEYuQ2xyU2hhcGVIYXJkRHJpdmU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDhhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y'@; put 'Wk0zMiwyOEg0VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4g'@; put 'ICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS44OCwxOC4wOGEzLjU5'@; put 'LDMuNTksMCwxLDAsMy41OS0zLjU5LDMuODQsMy44NCwwLDAsMC0uOTEuMTNMMTUsMTYuMTZhMi4wOCwyLjA4LDAsMCwxLC41LS4wNywyLDIsMCwxLDEtMiwyLDEuNjQsMS42NCwwLDAsMSwuMDgtLjVMMTIsMTcuMTZBMy41MywzLjUzLDAsMCwwLDExLjg4LDE4LjA4WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNDcsMjUuNzNhNy42Niw3LjY2LDAsMCwxLTcuNjUtNy42NSw3LjU1LDcuNTUsMCwwLDEsLjI3LTJMNi41NCwxNS43YTkuMjQsOS4yNCwwLDAsMCwxNy44LDQuOTVIMjIuNjZBNy42NCw3'@; put 'LjY0LDAsMCwxLDE1LjQ3LDI1LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMjIsMTcuODNhLjguOCwwLDAsMC0uOC0uOEgyNC42NmE5LjI2LDkuMjYsMCwwLDAtOS4xOS04LjIsOS4zNiw5LjM2LDAs'@; put 'MCwwLTIuMzguMzJsLjQyLDEuNTRhNy44Niw3Ljg2LDAsMCwxLDItLjI2QTcuNjYsNy42NiwwLDAsMSwyMywxN0gyMC45MmEuOC44LDAsMCwwLDAsMS42aDYuNUEuOC44LDAsMCwwLDI4LjIyLDE3LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEyLDE3LjE2bDEuNTQuNDJhMS42NCwxLjY0LDAsMCwwLS4wOC41LDIsMiwwLDEsMCwyLTIsMi4wOCwyLjA4LDAsMCwwLS41'@; put 'LjA3bC0uNDEtMS41NGEzLjg0LDMuODQsMCwwLDEsLjkxLS4xMywzLjU5LDMuNTksMCwxLDEtMy41OSwzLjU5QTMuNTMsMy41MywwLDAsMSwxMiwxNy4xNlpNNS4zMSw4QTEuMjUsMS4yNSwwLDEsMSw0LjA2LDkuMjUsMS4yNSwxLjI1LDAsMCwxLDUuMzEsOFptMCwyMC4wNmExLjI1LDEuMjUs'@; put 'MCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSw1LjMxLDI4LjA2Wm0xMC4xNi0uNzNBOS4yMiw5LjIyLDAsMCwxLDYuNTQsMTUuN2wxLjU1LjQxYTcuNTUsNy41NSwwLDAsMC0uMjcsMiw3LjY0LDcuNjQsMCwwLDAsMTQuODQsMi41N2gxLjY4QTkuMjUsOS4yNSwwLDAsMSwxNS40Nywy'@; put 'Ny4zM1ptMTItOC43aC02LjVhLjguOCwwLDAsMSwwLTEuNkgyM2E3LjY2LDcuNjYsMCwwLDAtNy41Ny02LjYsNy44Niw3Ljg2LDAsMCwwLTIsLjI2bC0uNDItMS41NGE5LjM2LDkuMzYsMCwwLDEsMi4zOC0uMzJBOS4yNiw5LjI2LDAsMCwxLDI0LjY2LDE3aDIuNzZhLjguOCwwLDAsMSwwLDEu'@; put 'NlptMy4zOSw5LjQzYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDI4LjA2Wm0wLTE3LjU2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDEwLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC0xIiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlSGFyZERyaXZlRGlza3M9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDUuNzRBMS43NCwxLjc0LDAsMCwwLDI0LjI2LDRIMy43NEExLjc0LDEuNzQsMCwwLDAsMiw1Ljc0VjIwLjI2QTEuNzQsMS43NCwwLDAsMCwzLjc0LDIySDRW'@; put 'NkgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2'@; put 'SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMkgxMS43NEExLjc0LDEuNzQsMCwwLDAsMTAsMTMuNzRWMjguMjZBMS43NCwxLjc0LDAsMCwwLDExLjc0LDMwSDMyLjI2QTEuNzQsMS43'@; put 'NCwwLDAsMCwzNCwyOC4yNlYxMy43NEExLjc0LDEuNzQsMCwwLDAsMzIuMjYsMTJaTTMyLDI4SDEyVjE0SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMjMuNjhhMi42NCwyLjY0LDAsMSwwLTIu'@; put 'Ny0yLjYzQTIuNjcsMi42NywwLDAsMCwxOS45NCwyMy42OFptMC0zLjg3YTEuMjQsMS4yNCwwLDEsMS0xLjI5LDEuMjRBMS4yNywxLjI3LDAsMCwxLDE5Ljk0LDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMTkuOTQsMTYuMjJhNC45Myw0LjkzLDAsMCwxLDQuOTUsNC4zNUgyMy43MVYyMmg0LjQxYS43LjcsMCwwLDAsMC0xLjRIMjYuMzFhNi4zMyw2LjMzLDAsMCwwLTYuMzctNS43NSw2LjU4LDYuNTgsMCwwLDAtMS40OC4xN2wuMzUsMS4zN0E0LjczLDQuNzMsMCwwLDEsMTkuOTQsMTYuMjJa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwyNy4yN2E2LjQyLDYuNDIsMCwwLDAsNS42Ny0zLjM1SDIzLjkzYTUsNSwwLDAsMS00LDEuOTUsNC45MSw0LjkxLDAsMCwxLTUtNC44Miw1LjE2LDUuMTYs'@; put 'MCwwLDEsLjA4LS43OUwxMy42MywyMGE3LDcsMCwwLDAtLjA5LDFBNi4zMiw2LjMyLDAsMCwwLDE5Ljk0LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQu'@; put 'MjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCwwLDMuNzQsMjJINFY2SDI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCw5Ljc0QTEuNzQsMS43NCwwLDAsMCwyOC4y'@; put 'Niw4SDcuNzRBMS43NCwxLjc0LDAsMCwwLDYsOS43NFYyNC4yNkExLjc0LDEuNzQsMCwwLDAsNy43NCwyNkg4VjEwSDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MiwyMi42QTEuNTUsMS41NSwwLDEsMCwx'@; put 'OCwyMS4wNSwxLjYsMS42LDAsMCwwLDE5LjYyLDIyLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEu'@; put 'NzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCwwLDAsMCwzMi4yNiwxMlpNMTkuNjIsMTcuNzRhMy4zMSwzLjMxLDAsMSwxLTMuMzgsMy4zMUEzLjM1LDMuMzUsMCwwLDEsMTkuNjIsMTcuNzRabTAsMTEuMTNhNy45NCw3Ljk0LDAsMCwxLTgtNy44'@; put 'Miw3LjgzLDcuODMsMCwwLDEsLjExLTEuMjlsMS43NS4zYTUuMzYsNS4zNiwwLDAsMC0uMTEsMSw2LjE4LDYuMTgsMCwwLDAsNi4yOCw2LjA2LDYuMzUsNi4zNSwwLDAsMCw1LTIuNDZoMi4xQTguMDYsOC4wNiwwLDAsMSwxOS42MiwyOC44N1pNMjkuODksMjIuMkgyNC4zNlYyMC40NGgxLjQ4'@; put 'QTYuMTksNi4xOSwwLDAsMCwxOS42MiwxNWE2LjQ4LDYuNDgsMCwwLDAtMS40MS4xNmwtLjQ1LTEuN2E4LjE2LDguMTYsMCwwLDEsMS44Ni0uMjIsOCw4LDAsMCwxLDgsNy4yMWgyLjI2YS44OC44OCwwLDAsMSwwLDEuNzZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00'@; put 'IiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlTlZNZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsMjJWMTRhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkgyNUEyLDIsMCwwLDAsMjcsMjJaTTExLDE0SDI1djhIMTFaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI1LjAxIiB5PSI2'@; put 'IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LjgsOEgxNi44N1Y2aC0xMUw3Ljc4LDQuMDhhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDIsNyw2LjM3'@; put 'LDExLjRhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuNjEsMjQuNjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQyTDMwLjEsMjhI'@; put 'MTl2MkgzMC4ybC0yLDJhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsLjcuMjksMSwxLDAsMCwwLC43MS0uMjlMMzQsMjkuMDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSIyOCIgd2lkdGg9IjQi'@; put 'IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSIyOCIgd2lkdGg9IjEuOTciIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAg'@; put 'ICAgICcpLEYuQ2xyU2hhcGVTU0Q9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDE4LjYyYzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJzLS41MywxLjA5LTEuNTUsMS4wOWE0LDQsMCwwLDEt'@; put 'Mi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MnMtMS4xNS0yLjA1LTIuODctMi40NGMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDEwLDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMUE0LjU4'@; put 'LDQuNTgsMCwwLDAsMTAsMTMuNjljLTEuNzQsMC0zLDEuMDUtMywyLjQ5UzguMjYsMTguMjIsMTAsMTguNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44MywyMC45M2E0LDQsMCwwLDEtMi43MS0xLjEx'@; put 'bC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MlMxOS43MywxNy42NSwxOCwxNy4yNmMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDE3LjQ4LDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMWE0LjU2LDQuNTYs'@; put 'MCwwLDAtMy4xMi0xLjE1Yy0xLjczLDAtMywxLjA1LTMsMi40OXMxLjE5LDIsMi44OSwyLjQ0YzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJTMTguODUsMjAuOTMsMTcuODMsMjAuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0yOS45LDE4YzAtMi40MS0xLjkyLTQuMTItNC42NC00LjEyaC0yLjl2OC4yNGgyLjlDMjgsMjIuMDgsMjkuOSwyMC4zNywyOS45LDE4Wm0tNi0yLjc2aDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk01LjIxLDhBMS4yNSwxLjI1LDAsMSwxLDQsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4yMSw4Wm0w'@; put 'LDIwYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMjEsMjhabTUuMDYtNS43OGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIu'@; put 'ODktLjg5LTIuODktMi40NHMxLjIyLTIuNDksMy0yLjQ5YTQuNTgsNC41OCwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFBMy42OCwzLjY4LDAsMCwwLDEwLDE1YTEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRT'@; put 'MTIuMjQsMjIuMjIsMTAuMjcsMjIuMjJabTcuNTEsMGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIzLTIuNDksMy0yLjQ5'@; put 'YTQuNTYsNC41NiwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFhMy42OCwzLjY4LDAsMCwwLTIuMzctMSwxLjI1LDEuMjUsMCwwLDAtMS4zOSwxLjA4YzAsLjY3LjYxLjkxLDEuOTIsMS4yMSwxLjcyLjM5LDIuODcuOTQsMi44NywyLjQ0UzE5Ljc1LDIyLjIyLDE3Ljc4LDIyLjIyWm00LjU4LS4x'@; put 'NFYxMy44NGgyLjljMi43MiwwLDQuNjQsMS43MSw0LjY0LDQuMTJTMjgsMjIuMDgsMjUuMjYsMjIuMDhaTTMwLjY5LDI4YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjY5LDI4Wm0wLTE3LjVhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUs'@; put 'MCwwLDEsMzAuNjksMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMTUuMmgxLjU2YTIuNzcsMi43NywwLDEsMSwwLDUuNTNIMjMuODZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC0yIiAvPlxuICAgICAgICAnKSxGLkNsclNoYXBlQmx1ZXRvb3RoPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi42NCwyNS4yNywxOSwxNy41MywxOSwzLDI1LjIxLDkuNGwtNS42NSw1Ljc5TDIxLDE2LjYybDUuNjgtNS44MmEyLDIsMCwwLDAsMC0yLjc4TDIwLjQ4LDEuN0EyLjA4'@; put 'LDIuMDgsMCwwLDAsMTguODUsMSwyLDIsMCwwLDAsMTcsM1YxNS4zOEwxMC4wNSw4LjI3QTEsMSwwLDAsMCw4LjYyLDkuNjZMMTYuNzksMTgsOS4wNiwyNmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzM2EyLjA3LDIuMDcsMCww'@; put 'LDAsLjcxLDEuNjJBMiwyLDAsMCwwLDE5LDM1YTEuOTQsMS45NCwwLDAsMCwxLjQyLS42bDYuMjMtNi4zOEEyLDIsMCwwLDAsMjYuNjQsMjUuMjdaTTE5LDMzLjA1VjIwLjI5bDYuMjEsNi4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICA8cGF0'@; put 'aCBkPSJNMjYuNTIsMjQuNTJsLTUuNjUtNS44My0xLjQ2LTEuNXYtMTJMMjMuNzksOS43bC0zLjYsMy43MSwyLjI0LDIuMjksNC4wOS00LjIyYTIuNTQsMi41NCwwLDAsMCwwLTMuNTZMMjAuNTcsMS43OEEyLjU0LDIuNTQsMCwwLDAsMTYuMiwzLjU1VjEzLjg2bC01LjUzLTUuN2ExLjYsMS42'@; put 'LDAsMSwwLTIuMywyLjIzTDE1Ljc1LDE4bC03LDcuMTlhMS42LDEuNiwwLDAsMCwwLDIuMjYsMS42MywxLjYzLDAsMCwwLDEuMTIuNDUsMS41OCwxLjU4LDAsMCwwLDEuMTUtLjQ5bDUuMTEtNS4yN1YzMi40NWEyLjUzLDIuNTMsMCwwLDAsMS41OSwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUu'@; put 'MTksMi41NiwyLjU2LDAsMCwwLDEuODMtLjc3bDUuOTUtNi4xNUEyLjU0LDIuNTQsMCwwLDAsMjYuNTIsMjQuNTJaTTE5LjQsMzAuODNWMjEuNzdsNC4zOSw0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxGLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPSgw'@; put 'LG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwzLDI1LjIyLDkuNGwtNS42Niw1LjhMMjEsMTYuNjNsNS42OC01LjgzYTIsMiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIsMiwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzdjExLjRsMiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuNzcsNSwzLjM2LDYuNDIsMTUuODksMTksOS4wNiwyNmExLDEsMCwwLDAsLjcxLDEuNywxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzMi45NGEyLjA4LDIuMDgsMCwwLDAsLjcxLDEuNjNBMiwyLDAsMCwwLDE5LDM1YTIsMiwwLDAs'@; put 'MCwxLjQyLS42bDUuNDEtNS41NCwzLjU0LDMuNTNMMzAuNzcsMzFaTTE5LDMzLjA1di0xMWw1LjQxLDUuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzEsNS4xNywyMy43LDkuN2wtMy41OSwzLjcxLDIuMjQsMi4yOSw0LjA5'@; put 'LTQuMjJhMi41NiwyLjU2LDAsMCwwLDAtMy41NmwtNi02LjE0YTIuNTEsMi41MSwwLDAsMC0yLjc3LS41OSwyLjU0LDIuNTQsMCwwLDAtMS42LDIuMzZ2MTBsMy4yMSwzLjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC41LDUsMy4wOSw2'@; put 'LjQyLDE1LjE3LDE4LjUxLDguNywyNS4xOUExLjYsMS42LDAsMCwwLDkuODUsMjcuOSwxLjU3LDEuNTcsMCwwLDAsMTEsMjcuNDFsNS4xMS01LjI3VjMyLjQ1YTIuNTQsMi41NCwwLDAsMCwxLjYsMi4zNiwyLjQ0LDIuNDQsMCwwLDAsLjk1LjE5LDIuNTUsMi41NSwwLDAsMCwxLjgyLS43N2w1'@; put 'LjEyLTUuMjksMy40OSwzLjQ4TDMwLjUsMzFaTTE5LjgxLDMwLjgzVjIyLjY1bDQsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZVByb2Nlc3NPblZNPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40OSwyNi4yOGExLDEsMCww'@; put 'LDAtMS4yLS43bC0yLjQ5LjY3YTE0LjIzLDE0LjIzLDAsMCwwLDIuNC02Ljc1QTE0LjQ4LDE0LjQ4LDAsMCwwLDI3LjM3LDcuMzUsMSwxLDAsMCwwLDI2LDcuNDRhMSwxLDAsMCwwLC4wOSwxLjQxLDEyLjQ1LDEyLjQ1LDAsMCwxLDQuMTYsMTAuNDYsMTIuMTksMTIuMTksMCwwLDEtMiw1Ljc0'@; put 'TDI4LDIyLjU0YTEsMSwwLDEsMC0xLjk1LjE2bC41LDYuNDQsNi4yNS0xLjY2QTEsMSwwLDAsMCwzMy40OSwyNi4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjMxLDE3LjA4YTEuMDYsMS4wNiwwLDAsMCwuNDQuMTYsMSwxLDAs'@; put 'MCwwLDEuMTItLjg1QTEyLjIxLDEyLjIxLDAsMCwxLDE4LjY5LDUuODRMMTYuNDUsNy4zN2ExLDEsMCwwLDAsLjQ3LDEuNzlBMSwxLDAsMCwwLDE3LjU2LDlsNS4zMy0zLjY2TDE4LjMzLjc2YTEsMSwwLDEsMC0xLjM5LDEuMzhsMS43LDEuN0ExNC4yLDE0LjIsMCwwLDAsMy44OSwxNi4xMiwx'@; put 'LDEsMCwwLDAsNC4zMSwxNy4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMS43MywyOS45M2ExMiwxMiwwLDAsMS00Ljg0LjUxLDEyLjMsMTIuMywwLDAsMS05LjU3LTYuM2wyLjQ5LjkzYTEsMSwwLDAsMCwuNjktMS44NGwtNC41'@; put 'OS0xLjdoMEw0LjQ0LDIxLDMuMzMsMjcuMzVhMSwxLDAsMCwwLC43OSwxLjEzbC4xNywwYTEsMSwwLDAsMCwxLS44MWwuNDItMi40YTE0LjMsMTQuMywwLDAsMCwxMSw3LjE0LDEzLjkxLDEzLjkxLDAsMCwwLDUuNjMtLjYsMSwxLDAsMCwwLS42LTEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxM0gxNGExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTRBMSwxLDAsMCwwLDIyLDEzWm0tMSw4SDE1VjE1aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NCIgLz4nKSxGLkNsclNoYXBlQXNzaWduVXNlcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNy40Niw3LjQ2LDAsMSwwLTcuNDUtNy40NkE3LjQ2LDcuNDYsMCwwLDAsMTgsMTdaTTE4LDQuMDdhNS40Niw1LjQ2LDAsMSwxLTUuNDUsNS40NUE1LjQ2LDUuNDYsMCwwLDEsMTgs'@; put 'NC4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDMxLjg5VjI1Ljc3YTE2LjEzLDE2LjEzLDAsMCwxLDEyLTUsMTYuNjEsMTYuNjEsMCwwLDEsOC43MSwyLjMzbDEuMzUtMS41MUExOC41MywxOC41MywwLDAsMCwxOCwxOC43NCwx'@; put 'Ny43LDE3LjcsMCwwLDAsNC4yMSwyNC44YTEsMSwwLDAsMC0uMjEuNnY2LjQ5QTIuMDYsMi4wNiwwLDAsMCw2LDM0SDE4LjM5bC0xLjktMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMS44OSwzMCwzMkgyNi44NWwtMS44LDJI'@; put 'MzBhMi4wNiwyLjA2LDAsMCwwLDItMi4wN1YyNi4ybC0yLDIuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzQuNzYsMTguNjJhMSwxLDAsMCwwLTEuNDEuMDhsLTExLjYyLDEzLTUuMi01LjU5QTEsMSwwLDAsMCwxNS4xMiwyNmEx'@; put 'LDEsMCwwLDAtLjA2LDEuNDJsNi42OSw3LjJMMzQuODQsMjBBMSwxLDAsMCwwLDM0Ljc2LDE4LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxMC4zNiIgcj0iNi44MSIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjYuNjVhMi44LDIuOCwwLDAsMSw0Ljg1LTEuOEwyMC43MSwyOWw2Ljg0LTcuNjNBMTYuODEsMTYuODEsMCwwLDAsMTgsMTguNTUsMTYuMTMsMTYuMTMsMCwwLDAsNS41LDI0YTEsMSwwLDAsMC0uMi42MVYzMGEyLDIsMCwwLDAsMS45'@; put 'NCwyaDguNTdsLTMuMDctMy4zQTIuODEsMi44MSwwLDAsMSwxMiwyNi42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI4Ljc2LDMyYTIsMiwwLDAsMCwxLjk0LTJWMjYuMjRMMjUuNTcsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy43NywxOC42MmExLDEsMCwwLDAtMS40Mi4wOGwtMTEuNjIsMTMtNS4yLTUuNTlBMSwxLDAsMCwwLDE0LjEyLDI2YTEsMSwwLDAsMCwwLDEuNDJsNi42OCw3LjJMMzMuODQsMjBBMSwxLDAsMCwwLDMzLjc3LDE4LjYyWiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxGLkNsclNoYXBlQXRvbT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTQuMDVhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMTQuMDVabTAsNi40NGEyLjQyLDIuNDIsMCwxLDEsMi40Mi0yLjQyQTIuNDIsMi40MiwwLDAs'@; put 'MSwxOCwyMC40OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNC4yMywxMS43MWEzOS4xNCwzOS4xNCwwLDAsMC00LjU3LTMuOTIsMjIuODYsMjIuODYsMCwwLDEsMy40OC0xLjcyYy4zMi0uMTIuNjItLjIxLjkyLS4zYTIuMjgsMi4y'@; put 'OCwwLDAsMCwzLjgxLS40NiwzLjMxLDMuMzEsMCwwLDEsMS45Mi44NGMxLjE5LDEuMTksMS4yMiwzLjU5LjEsNi41OC40OS42NS45NCwxLjMxLDEuMzUsMiwuMTctLjQuMzUtLjc5LjQ5LTEuMTgsMS40Ny0zLjg1LDEuMjgtNy0uNTMtOC43OGE1LjI5LDUuMjksMCwwLDAtMy4zMy0xLjQ0LDIu'@; put 'MjksMi4yOSwwLDAsMC00LjMxLjU0Yy0uMzcuMTEtLjc0LjIyLTEuMTMuMzdhMjUuNzksMjUuNzksMCwwLDAtNC41NywyLjM1QTI2LjIxLDI2LjIxLDAsMCwwLDEzLjI4LDQuMmMtMy44NS0xLjQ2LTctMS4yOC04Ljc3LjUzQzIuODUsNi40LDIuNTgsOS4xNywzLjY4LDEyLjU5YTIuMjgsMi4y'@; put 'OCwwLDAsMCwxLjU5LDMuNjdjLjMyLjYxLjY3LDEuMjIsMS4wNiwxLjgyQTI1LjU0LDI1LjU0LDAsMCwwLDQsMjIuNjZjLTEuNDcsMy44NC0xLjI4LDcsLjUzLDguNzdhNS42Myw1LjYzLDAsMCwwLDQuMTIsMS41MSwxMy4zNCwxMy4zNCwwLDAsMCw0LjY1LTEsMjYuMjEsMjYuMjEsMCwwLDAs'@; put 'NC41OC0yLjM1QTI1Ljc5LDI1Ljc5LDAsMCwwLDIyLjQzLDMyYTE0LjE2LDE0LjE2LDAsMCwwLDMuNjUuOUEyLjMsMi4zLDAsMCwwLDMwLjQ2LDMyYTQuNTUsNC41NSwwLDAsMCwuNzQtLjU3YzEuODEtMS44MSwyLTQuOTMuNTMtOC43N0EzMi42OCwzMi42OCwwLDAsMCwyNC4yMywxMS43MVpN'@; put 'MTIuNTcsMzAuMDljLTMsMS4xNS01LjQ1LDEuMTMtNi42NS0uMDhzLTEuMjMtMy42Mi0uMDctNi42NGEyMi43NywyMi43NywwLDAsMSwxLjcxLTMuNDgsNDAuMTksNDAuMTksMCwwLDAsMy45Miw0LjU2Yy40My40My44Ny44NSwxLjMxLDEuMjVxLjktLjQ2LDEuODMtMS4wNWMtLjU4LS41Mi0x'@; put 'LjE2LTEtMS43Mi0xLjYxYTM0LDM0LDAsMCwxLTUuNzQtNy40N0EyLjI5LDIuMjksMCwwLDAsNS41LDExLjY5aDBjLS43NS0yLjUtLjYyLTQuNDkuNDMtNS41NGEzLjcyLDMuNzIsMCwwLDEsMi43Mi0uOTIsMTEuNCwxMS40LDAsMCwxLDMuOTMuODQsMjIuODYsMjIuODYsMCwwLDEsMy40OCwx'@; put 'LjcyLDM5LjE0LDM5LjE0LDAsMCwwLTQuNTcsMy45MmMtLjQ0LjQ0LS44Ny45LTEuMjksMS4zNmEyMC4yNywyMC4yNywwLDAsMCwxLDEuODVjLjU0LS42MSwxLjA5LTEuMjEsMS42OC0xLjhhMzYuMzMsMzYuMzMsMCwwLDEsNS00LjE3LDM2Ljg4LDM2Ljg4LDAsMCwxLDQuOTUsNC4xNywzNi4y'@; put 'NiwzNi4yNiwwLDAsMSw0LjE3LDUsMzcsMzcsMCwwLDEtNC4xNyw1QTMwLjY4LDMwLjY4LDAsMCwxLDEyLjU3LDMwLjA5Wk0yOS43OSwzMGwtLjE2LjEzYTIuMjcsMi4yNywwLDAsMC0zLjUuNzIsMTIuNTcsMTIuNTcsMCwwLDEtMy0uNzcsMjIsMjIsMCwwLDEtMy40OC0xLjcyLDM5LjE0LDM5'@; put 'LjE0LDAsMCwwLDQuNTctMy45MiwzOC4yNiwzOC4yNiwwLDAsMCwzLjkyLTQuNTYsMjIuODgsMjIuODgsMCwwLDEsMS43MiwzLjQ4QzMxLDI2LjM5LDMxLDI4LjgxLDI5Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LjIz'@; put 'LDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LTEuNzJjLjMyLS4xMi42Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1'@; put 'Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03LS41My04Ljc4YTUuMjksNS4yOSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVB'@; put 'MjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTNDMi44NSw2LjQsMi41OCw5LjE3LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40'@; put 'NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0LDEzLjM0LDAsMCwwLDQuNjUtMSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCww'@; put 'LDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41My04Ljc3QTMyLjY4LDMyLjY4LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAs'@; put 'MCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1LDEuMzEsMS4yNXEuOS0uNDYsMS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIu'@; put 'NS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQsMCwwLDEsMy45My44NCwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCww'@; put 'LDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1LTQuMTcsMzYuODgsMzYuODgsMCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5'@; put 'Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAsMS0zLS43NywyMiwyMiwwLDAsMS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMu'@; put 'NDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE3Ljk5IiBjeT0iMTguMDciIHI9IjMuMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuNjYgMy4xMSkgcm90YXRlKC05LjIyKSIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlQmFyQ29kZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSw3QTEsMSwwLDAsMCw0LDhWMzBhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSw3QTEsMSwwLDAsMCw4LDhWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAs'@; put 'MCwyLDBWOEExLDEsMCwwLDAsMTMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxNyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDIxLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAs'@; put 'MCwyLDBWOEExLDEsMCwwLDAsMjUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyOSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTMzLDdhMSwxLDAsMCwwLTEsMVYzMGExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDMzLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz4nKSxGLkNsclNoYXBlQ2REdmQ9KDAsbS5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi4zMywxOGE0LjQ2LDQuNDYs'@; put 'MCwxLDAtNC40NSw0LjQ2QTQuNDYsNC40NiwwLDAsMCwyMi4zMywxOFpNMTcuODgsMjAuOUEyLjg2LDIuODYsMCwxLDEsMjAuNzMsMTgsMi44NiwyLjg2LDAsMCwxLDE3Ljg4LDIwLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTcu'@; put 'ODgsNy40M0gxOFY1Ljg0aC0uMTJBMTIuMjEsMTIuMjEsMCwwLDAsNS42OCwxNy43NWgxLjZBMTAuNjEsMTAuNjEsMCwwLDEsMTcuODgsNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4wOCwxOEgyOC40OXYwQTEwLjYxLDEw'@; put 'LjYxLDAsMCwxLDE4LjI1LDI4LjYzdjEuNkExMi4yMiwxMi4yMiwwLDAsMCwzMC4wOSwxOFMzMC4wOCwxOCwzMC4wOCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxMVY5LjQ0aC0uMTJhOC42Miw4LjYyLDAsMCwwLTguNiw4'@; put 'LjMyaDEuNmE3LDcsMCwwLDEsNy02LjcyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE4LjI1LDI1djEuNkE4LjYxLDguNjEsMCwwLDAsMjYuNDgsMTh2MGgtMS42djBBNyw3LDAsMCwxLDE4LjI1LDI1WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE4LjE3LDEuOTJhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTguMTcsMS45MlpNMjYuMjMsMThoMS41NGE5LjYxLDkuNjEsMCwwLDEtOS42LDkuNTNIMThWMjZoLjE3QTguMDcsOC4wNywwLDAsMCwyNi4yMywx'@; put 'OFpNNi4wNSwxOEg0LjQ1di0uMDhBMTMuNzIsMTMuNzIsMCwwLDEsMTgsNC4yMXYxLjZBMTIuMTMsMTIuMTMsMCwwLDAsNi4wNSwxNy45MlptNC4wNSwwSDguNTZ2LS4wOEE5LjYxLDkuNjEsMCwwLDEsMTgsOC4zMlY5Ljg2YTguMDcsOC4wNywwLDAsMC03LjksOC4wNlptNC4zMi0uMDhhMy43'@; put 'NSwzLjc1LDAsMSwxLDMuNzUsMy43NUEzLjc1LDMuNzUsMCwwLDEsMTQuNDIsMTcuOTJabTMuNzUsMTMuNzFIMThWMzBoLjE3QTEyLjEzLDEyLjEzLDAsMCwwLDMwLjI4LDE4aDEuNkExMy43MywxMy43MywwLDAsMSwxOC4xNywzMS42M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEiIC8+JyksRi5DbHJTaGFwZUNvbnRhaW5lcj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMzBINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjI4QTIsMiwwLDAsMSwzMiwzMFpNNCw4VjI4SDMyVjhaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSw5LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJN'@; put 'MTQuOTIsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44LjgsMCwwLDEsMTQuOTIsMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44Ljgs'@; put 'MCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwyMSwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI3LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDI3LDI1LjNaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTkuNjMsMjQuMjNhLjc5Ljc5LDAsMCwxLS44MS43N0EuNzkuNzksMCww'@; put 'LDEsOCwyNC4yM1YxMS43N0EuNzkuNzksMCwwLDEsOC44MiwxMWEuNzkuNzksMCwwLDEsLjgxLjc3Wm02LDBhLjc5Ljc5LDAsMCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4yMSwwYS43OS43OSww'@; put 'LDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgxLS43Ny43OS43OSwwLDAsMSwuODIuNzdabTYuMTIsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEs'@; put 'LjgyLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxGLkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDE3LjU4YTMyLjM1LDMyLjM1LDAsMCwwLDYuMy45Miw0LjEzLDQuMTMsMCwwLDEsLjkyLTEuMzcs'@; put 'MzAuOTQsMzAuOTQsMCwwLDEtNy4yMi0xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMjhWOC4xOWMuMzQtLjc2LDQuMzEtMi4xMSwxMS0yLjExczEwLjY3LDEuMzUsMTEsMnYuM2MtLjgyLjc5LTQuNTgsMi4wNS0xMS4xMSwyLjA1'@; put 'QTMzLjQ4LDMzLjQ4LDAsMCwxLDgsOS40NHYxLjQ0YTM1LjYsMzUuNiwwLDAsMCw4Ljg5LDFjNC4yOSwwLDguOC0uNTgsMTEuMTEtMS44MnY1LjA3YTUuMyw1LjMsMCwwLDEtMS44MS44OEgzMFY4LjEyYzAtMy4xOS04LjE3LTQtMTMtNHMtMTMsLjg1LTEzLDRWMjhDNCwzMC42Myw5LjM5LDMx'@; put 'LjY4LDE0LDMyVjMwQzkuMTMsMjkuNjYsNi4yOCwyOC42Miw2LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTgsMjQuMjhhMzEuMywzMS4zLDAsMCwwLDYsLjg5di0xLjRhMjguOTMsMjguOTMsMCwwLDEtNi0uOTNaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yMSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwwLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDIxLDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsMjEu'@; put 'ODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAsMCwyNSwyMS44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40'@; put 'LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwz'@; put 'MlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LDIxLjgyYS43LjcsMCwwLDAtLjcuN1YzMGEuNy43LDAsMSwwLDEuNCwwVjIyLjUyQS43LjcsMCwwLDAsMjUsMjEuODJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAt'@; put 'LjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxNkgyOFY4LjEyYzAtMS42OC01LjM4LTMtMTItM1M0LDYuNDQsNCw4LjEyVjI4YzAsMS41LDQuMzMs'@; put 'Mi43NSwxMCwzVjI1LjIyYTI5LjE3LDI5LjE3LDAsMCwxLTgtMS4yOVYyMi40NGwuMjQuMUEyNi42MywyNi42MywwLDAsMCwxNCwyMy44MlYyMGE0LDQsMCwwLDEsLjI5LTEuNDdBMjkuMTksMjkuMTksMCwwLDEsNiwxNy4yM1YxNS43NWwuMjQuMDlhMjksMjksMCwwLDAsOSwxLjMyaDBBNCw0'@; put 'LDAsMCwxLDE4LDE2Wk02LDEwLjU0VjkuMDVsLjI0LjA5QTMwLjEyLDMwLjEyLDAsMCwwLDE2LDEwLjQ3LDI4LjMzLDI4LjMzLDAsMCwwLDI2LDkuMDV2MS41YTMyLjUzLDMyLjUzLDAsMCwxLTEwLDEuMzJBMzIuNDQsMzIuNDQsMCwwLDEsNiwxMC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTUiIC8+JyksRi5DbHJTaGFwZUZpbGVTaGFyZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFB'@; put 'MiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOTEsMjIuNDhhMi4wNiwyLjA2LDAs'@; put 'MCwwLTEuNDQuNjJsLTUuNzItMi42NlYyMGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4wNi0yLjk0LDIuMTIsMi4xMiwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNhMi4wOSwyLjA5LDAsMSwwLDIu'@; put 'MDgtMi4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAs'@; put 'MCwzMCw5Wk02LDdoNi40OWwyLjcyLDRINlpNMjEuOTQsMjYuNjRhMi4wOSwyLjA5LDAsMCwxLTIuMTEtMi4wNmwwLS4zLTUuNjctMi42Ni0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMDgsMi4wOCwwLDEsMSwuNTgsMS40NkwxNC43NSwyMHYuNDds'@; put 'NS43MiwyLjY2YTIuMDcsMi4wNywwLDEsMSwxLjQ3LDMuNTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVRckNvZGU9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNiw0QTEuNiwxLjYsMCwwLDAsNCw1LjZWMTJoOFY0Wk0xMCwx'@; put 'MEg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LDMwLjRBMS42LDEuNiwwLDAsMCw1LjYsMzJIMTJWMjRINFpNNiwyNmg0djRINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRo'@; put 'IGQ9Ik0yNCwzMmg2LjRBMS42LDEuNiwwLDAsMCwzMiwzMC40VjI0SDI0Wm0yLTZoNHY0SDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQsNEgyNHY4aDhWNS42QTEuNiwxLjYsMCwwLDAsMzAuNCw0Wk0zMCwxMEgyNlY2aDRa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwIDEwIDIwIDggMTYgOCAxNiAxMiAxOCAxMiAxOCAxMCAyMCAxMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTIiIHk9'@; put 'IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwb2x5Z29u'@; put 'IHBvaW50cz0iMjAgNiAyMCA4IDIyIDggMjIgNCAxNCA0IDE0IDggMTYgOCAxNiA2IDIwIDYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxyZWN0IHg9IjQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSI0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtOSIgLz48cG9seWdvbiBwb2ludHM9IjEyIDE2IDEyIDE4IDEwIDE4IDEwIDE0IDggMTQgOCAxOCA2IDE4IDYgMjAgNCAyMCA0IDIyIDggMjIgOCAyMCAxMCAyMCAxMCAyMiAxMiAyMiAxMiAyMCAxNCAyMCAxNCAxNiAxMiAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTYgMjIgMTYgMjIgMTggMjQgMTggMjQgMTYgMjYgMTYgMjYgMTQgMjIgMTQgMjIgMTAgMjAgMTAgMjAgMTIgMTggMTIgMTggMTQgMjAgMTQgMjAgMTYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xMSIgLz48cG9seWdvbiBwb2ludHM9IjE4IDMwIDE0IDMwIDE0IDMyIDIyIDMyIDIyIDMwIDIwIDMwIDIwIDI4IDE4IDI4IDE4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMiAyMCAyMiAxOCAyMCAx'@; put 'OCAyMCAxNiAxOCAxNiAxOCAxOCAxNiAxOCAxNiAyMCAxOCAyMCAxOCAyMiAyMCAyMiAyMCAyMCAyMiAyMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiAvPjxyZWN0IHg9IjMwIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiAvPjxyZWN0IHg9IjIyIiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiAvPjxwb2x5Z29uIHBvaW50cz0iMzAgMTQgMjggMTQgMjggMTYgMjYgMTYgMjYgMTgg'@; put 'MjggMTggMjggMjAgMzAgMjAgMzAgMTggMzIgMTggMzIgMTYgMzAgMTYgMzAgMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgLz48cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xNyIgLz48cG9seWdvbiBwb2ludHM9IjE0IDI4IDE2IDI4IDE2IDI2IDE4IDI2IDE4IDI0IDE2IDI0IDE2IDIwIDE0IDIwIDE0IDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTgiIC8+JyksRi5DbHJTaGFwZVVzYj0oMCxtLmNsckljb25T'@; put 'VkcpKCc8cGF0aCBkPSJNMTQuMjksMTEuNGExLjQ5LDEuNDksMCwwLDEsMS4yOC0uNzJoMWEyLjg5LDIuODksMCwwLDAsMi43NSwyLjA5LDMsMywwLDAsMCwwLTUuOTEsMi45LDIuOSwwLDAsMC0yLjY3LDEuODJIMTUuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42NmwtMyw0LjgzaDIuMzZabTUt'@; put 'Mi45NEExLjM2LDEuMzYsMCwxLDEsMTgsOS44MSwxLjMyLDEuMzIsMCwwLDEsMTkuMzMsOC40NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4zLDE3LjM3bC02LjExLTMuNjZhLjcuNywwLDAsMC0uNywwLC43MS43MSwwLDAsMC0u'@; put 'MzYuNjFWMTdINi45MmEyLjMzLDIuMzMsMCwwLDEsLjMyLDEuMTcsMi40NywyLjQ3LDAsMSwxLTIuNDctMi40NiwyLjM3LDIuMzcsMCwwLDEsMS4xNS4zbC45My0xLjc2QTQuNDQsNC40NCwwLDEsMCw5LjE1LDE5aDMuNThsNC4xNyw2LjY1YTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMS42NnYx'@; put 'LjI4YS43OS43OSwwLDAsMCwuOC43OWg0LjQ5YS43OS43OSwwLDAsMCwuOC0uNzl2LTQuNGEuNzkuNzksMCwwLDAtLjgtLjhIMjIuMzRhLjguOCwwLDAsMC0uOC44djEuMTJIMTkuODhhMS41MSwxLjUxLDAsMCwxLTEuMjgtLjcyTDE1LjA5LDE5aDEydjIuNjZhLjY5LjY5LDAsMCwwLC4zNi42'@; put 'MS42Ny42NywwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDYuMTEtMy42NmEuNjkuNjksMCwwLDAsLjM0LS42QS43MS43MSwwLDAsMCwzNC4zLDE3LjM3Wk0yMy4xNCwyNUgyNnYyLjhIMjMuMTRabTUuMzktNC41NlYxNS41NWw0LDIuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQuNzIsMTcuMzdsLTUuNTEtMy4zMWEuNzEuNzEsMCwwLDAtMS4wNy42VjE3SDExLjc3bDMuNTItNS42YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxLjY0YTIuNDEsMi40MSwwLDAsMCwyLjI1LDEuNjEsMi40OCwyLjQ4LDAsMCww'@; put 'LDAtNC45NSwyLjM4LDIuMzgsMCwwLDAtMi4xMywxLjM0SDE2LjU3YTMuNDksMy40OSwwLDAsMC0zLDEuNjZMOS40MSwxN0g4YTMuNDYsMy40NiwwLDEsMCwuMDgsMmg1LjY0bDQuMTUsNi42MmEzLjQ5LDMuNDksMCwwLDAsMywxLjY2aDIuNTl2LjkyaDQuNFYyMy44aC00LjR2MS40OEgyMC44'@; put 'OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTYuMTEsMTloMTJ2Mi4yOGEuNy43LDAsMCwwLC4zNi42MS43Mi43MiwwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDUuNTItMy4zMWEuNy43LDAsMCwwLDAtMS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgLz4nKSxGLkNsclNoYXBlUmFkYXI9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDE4YzAsNy43LTYuMywxNC0xNCwxNGMtNy43LDAtMTQtNi4zLTE0LTE0QzQsMTAuNiw5LjcsNC41LDE3LjEsNHYzLjdjLTUuNywwLjUtOS45LDUuNS05LjQsMTEuMnM1LjUsOS45LDExLjIsOS40'@; put 'XG5cdGM1LjMtMC41LDkuNC00LjksOS40LTEwLjNoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zcy04LjMtMy43LTguMy04LjNjMC00LjIsMy4xLTcuOCw3LjMtOC4zdjQuNGMtMS44LDAuNC0zLjEsMi0zLjEsMy45XG5cdGMwLDIuMiwxLjgsNCw0LDRzNC0xLjgsNC00YzAtMS44LTEuMy0zLjQt'@; put 'My0zLjhWMi4xQzE4LjYsMiwxOC4zLDIsMTgsMkM5LjIsMiwyLDkuMiwyLDE4czcuMiwxNiwxNiwxNnMxNi03LjIsMTYtMTZIMzJ6IE0yMCwxOFxuXHRjMCwxLjEtMC45LDItMiwycy0yLTAuOS0yLTJzMC45LTIsMi0yUzIwLDE2LjksMjAsMTh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIsMThjMCw3LjctNi4yLDE0LTE0LDE0UzQsMjUuOCw0LDE4YzAtNy40LDUuNy0xMy41LDEzLjEtMTR2My43Yy01LjcsMC41LTkuOCw1LjUtOS4zLDExLjJzNS41LDkuOCwxMS4yLDkuM1xuXHRcdGM1LjMtMC41LDkuMy00LjksOS4zLTEw'@; put 'LjJoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zUzkuNywyMi42LDkuNywxOGMwLTQuMiwzLjItNy44LDcuMy04LjJ2NC40Yy0yLjEsMC42LTMuNCwyLjctMi45LDQuOVxuXHRcdGMwLjYsMi4xLDIuNywzLjQsNC45LDIuOWMyLjEtMC42LDMuNC0yLjcsMi45LTQuOWMtMC40LTEuNC0xLjUtMi41'@; put 'LTIuOS0yLjlWMmMtMC40LDAtMC43LDAtMS4xLDBjLTguOCwwLTE2LDcuMi0xNiwxNlxuXHRcdGMwLDguOCw3LjIsMTYsMTYsMTZzMTYtNy4yLDE2LTE2YzAsMCwwLDAsMCwwSDMyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxGLkNsclNoYXBlSW5kdWN0'@; put 'b3I9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjMxLDI1LjgxYy0xLjc1LDAtMy0yLjQ5LTMtNmExMi43OSwxMi43OSwwLDAsMSwxLjcyLTYuNywyLjU3LDIuNTcsMCwwLDAtMy43OSwwQTEyLjc5LDEyLjc5LDAsMCwxLDIxLDE5Ljc2YzAsMy41Ni0xLjIzLDYtMyw2cy0zLTIuNDkt'@; put 'My02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDAsMTIuNzksMTIuNzksMCwwLDEsMS43Miw2LjdjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuODgsMTIuODgsMCwwLDEsMS43MS02LjcsMi43LDIuNywwLDAsMC0xLjg5LS44N0M3LjEs'@; put 'MTIuMTksNS42OSwxMy43LDUsMTZsLS4yMy43SDJhMSwxLDAsMCwxLDAtMkgzLjI5YzEuMS0yLjgzLDMuMDYtNC41NSw1LjI0LTQuNTVhNC42Nyw0LjY3LDAsMCwxLDMuMTYsMS4zMiw0LjYyLDQuNjIsMCwwLDEsMy4xNS0xLjMyQTQuNjUsNC42NSwwLDAsMSwxOCwxMS41MWE0LjQzLDQuNDMs'@; put 'MCwwLDEsNi4zMSwwLDQuNjcsNC42NywwLDAsMSwzLjE2LTEuMzJjMi4xOCwwLDQuMTQsMS43Miw1LjI0LDQuNTVIMzRhMSwxLDAsMCwxLDAsMkgzMS4yOGwtLjIzLS43Yy0uNzQtMi4zNC0yLjE1LTMuODUtMy41OC0zLjg1YTIuNywyLjcsMCwwLDAtMS44OS44NywxMi44OCwxMi44OCwwLDAs'@; put 'MSwxLjcxLDYuN0MyNy4yOSwyMy4zMiwyNi4wNywyNS44MSwyNC4zMSwyNS44MVpNMTgsMTQuOTNhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTgsMTQuOTNabTYuMzEsMGExMS43MSwxMS43'@; put 'MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwyNC4zMSwxNC45M1ptLTEyLjYyLDBhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEu'@; put 'NzEsMCwwLDAsMTEuNjksMTQuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxGLkNsclNoYXBlUmVzaXN0b3I9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjQzLDI2LjM0aDBBMS40NywxLjQ3LDAsMCwxLDI4LDI1LjIyTDI0Ljg2LDEz'@; put 'LjE1LDIxLjc0LDI1LjIyYTEuNDksMS40OSwwLDAsMS0xLjQ1LDEuMTJoMGExLjQ5LDEuNDksMCwwLDEtMS40Ni0xLjEyTDE1LjcxLDEzLjE1LDEyLjYsMjUuMjJhMS41MSwxLjUxLDAsMCwxLTIuOTEsMEw2LjU3LDEzLjE1LDUuMjIsMTguMzdIMmExLDEsMCwwLDEsMC0ySDMuNjdsMS40NS01'@; put 'LjU5QTEuNDgsMS40OCwwLDAsMSw2LjU3LDkuNjZoMEExLjQ3LDEuNDcsMCwwLDEsOCwxMC43OGwzLjEyLDEyLjA3LDMuMTItMTIuMDdhMS40OSwxLjQ5LDAsMCwxLDEuNDUtMS4xMmgwYTEuNDksMS40OSwwLDAsMSwxLjQ2LDEuMTJsMy4xMiwxMi4wNywzLjEyLTEyLjA3YTEuNSwxLjUsMCww'@; put 'LDEsMi45LDBsMy4xMiwxMi4wNywxLjM1LTUuMjJIMzRhMSwxLDAsMCwxLDAsMkgzMi4zM2wtMS40NSw1LjU5QTEuNDgsMS40OCwwLDAsMSwyOS40MywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVDYXBhY2l0b3I9KDAs'@; put 'bS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWExLDEsMCwxLDEsMiwwVjMzLjA2QTEsMSwwLDAsMSwxNSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwzNC4wNmExLDEsMCww'@; put 'LDEtMS0xVjMuMTVhMSwxLDAsMSwxLDIsMFYzMy4wNkExLDEsMCwwLDEsMjEsMzQuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuNDYsMTlIM2ExLDEsMCwwLDEsMC0ySDE0LjQ2YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMTlIMjEuNTRhMSwxLDAsMCwxLDAtMkgzM2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksRi5DbHJTaGFwZVNxdWlkPSgwLG0uY2xySWNv'@; put 'blNWRykoJzxwYXRoIGQ9Ik0xOCw3YTEsMSwwLDAsMS0xLTFWMy4xOWExLDEsMCwwLDEsMiwwVjZBMSwxLDAsMCwxLDE4LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYzMGExLDEsMCwwLDEsMiww'@; put 'djNBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuNDEsMThsMS43OC0xLjc3YTEsMSwwLDEsMC0xLjQyLTEuNDJMNiwxNi41OSw0LjIzLDE0LjgxYTEsMSwwLDEsMC0xLjQyLDEuNDJMNC41OSwxOCwyLjgx'@; put 'LDE5Ljc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUw2LDE5LjQxbDEuNzcsMS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBk'@; put 'PSJNNiwxMy43NmwuMzYtLjM2YTMsMywwLDAsMSwyLjExLS44OCwxMSwxMSwwLDAsMSwxOSwwLDMsMywwLDAsMSwyLjEyLjg4bC4zNi4zNi4yLS4yYTEzLDEzLDAsMCwwLTI0LjQsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMCwy'@; put 'Mi4yNGwtLjM2LjM2YTMsMywwLDAsMS0yLjEyLjg4LDExLDExLDAsMCwxLTE5LDAsMywzLDAsMCwxLTIuMTItLjg4TDYsMjIuMjRsLS4yLjJhMTMsMTMsMCwwLDAsMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQxLDE4'@; put 'bDEuNzgtMS43N2ExLDEsMCwwLDAtMS40Mi0xLjQyTDMwLDE2LjU5bC0xLjc3LTEuNzhhMSwxLDAsMSwwLTEuNDIsMS40MkwyOC41OSwxOGwtMS43OCwxLjc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMCwxOS40MWwxLjc3LDEuNzhhMSwx'@; put 'LDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksRi5DbHJTaGFwZUhvc3RHcm91cD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuMDgsMzRoLTE0QTEuMDgsMS4wOCwwLDAsMSw2LDMzVjEy'@; put 'YTEuMDgsMS4wOCwwLDAsMSwxLjA4LTEuMDhoMTRBMS4wOCwxLjA4LDAsMCwxLDIyLjE2LDEyVjMzQTEuMDgsMS4wOCwwLDAsMSwyMS4wOCwzNFpNOC4xNiwzMS44OEgyMFYxM0g4LjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cmVjdCB4PSIx'@; put 'MC4wOCIgeT0iMTQuOTYiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNi4xLDI3LjgxaC0yVjloLTEyVjdoMTNhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLjA4LDIzaC0yVjVoLTExVjNoMTJhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjEzLjA4IiB5PSIyNy44OCIgd2lkdGg9IjIiIGhlaWdodD0iMi4xNiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG5cbjxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4wOCwzMSBMMS4wOCwzMSBDMC41MTM0MjcxOTcsMzEuMDAxNTU2NCAwLjA0MTk2NjM3NjUsMzAuNTY1MDE4NiAwLDMwIEww'@; put 'LDkgQzAsOC40MDM1MzI0NyAwLjQ4MzUzMjQ3LDcuOTIgMS4wOCw3LjkyIEwxNS4wOCw3LjkyIEMxNS42NzY0Njc1LDcuOTIgMTYuMTYsOC40MDM1MzI0NyAxNi4xNiw5IEwxNi4xNiwzMCBDMTYuMTE4MDMzNiwzMC41NjUwMTg2IDE1LjY0NjU3MjgsMzEuMDAxNTU2NCAxNS4wOCwzMSBaIE00'@; put 'LjA4LDExLjk2IEw0LjA4LDEzLjk2IEwxMi4wOCwxMy45NiBMMTIuMDgsMTEuOTYgTDQuMDgsMTEuOTYgWiBNNy4wOCwyNC44OCBMNy4wOCwyNy4wNCBMOS4wOCwyNy4wNCBMOS4wOCwyNC44OCBMNy4wOCwyNC44OCBaIiAvPlxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMiIgZD0iTTIwLjEsMjQuODEgTDE4LjEsMjQuODEgTDE4LjEsNiBMNi4xLDYgTDYuMSw0IEwxOS4xLDQgQzE5LjY1MjI4NDcsNCAyMC4xLDQuNDQ3NzE1MjUgMjAuMSw1IEwyMC4xLDI0LjgxIFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0z'@; put 'IiBkPSJNMjQuMDgsMjAgTDIyLjA4LDIwIEwyMi4wOCwyIEwxMS4wOCwyIEwxMS4wOCwwIEwyMy4wOCwwIEMyMy42MzIyODQ3LDAgMjQuMDgsMC40NDc3MTUyNSAyNC4wOCwxIEwyNC4wOCwyMCBaIiAvPicpLEYuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj0oMCxtLmNsckljb25TVkcpKCc8cGF0'@; put 'aCBkPSJNNi4wNiwzMGExLDEsMCwwLDEtMS0xVjhoLTJhMSwxLDAsMCwxLDAtMmg0VjI5QTEsMSwwLDAsMSw2LjA2LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMwLjA2LDI3aC0yNVY5aDI1YTMsMywwLDAsMSwzLDNWMjRB'@; put 'MywzLDAsMCwxLDMwLjA2LDI3Wm0tMjMtMmgyM2ExLDEsMCwwLDAsMS0xVjEyYTEsMSwwLDAsMC0xLTFoLTIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjIuMDYiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyMi4wNiIgeT0iMTQiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOS4wNiwyMmgtOFYyMGg3VjE0aDJ2'@; put 'N0ExLDEsMCwwLDEsMTkuMDYsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPicpLEYuQ2xyU2hhcGVOb2RlR3JvdXA9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDIxLjU4bC00Ljk0LTIuODNWMTMuMDlhMSwxLDAsMCwwLS41MS0uODdM'@; put 'MjIuNjQsOS4xYTEsMSwwLDAsMC0xLDBMMTYuMiwxMi4yMmExLDEsMCwwLDAtLjUxLjg3djUuNjZsLTQuOTQsMi44M2ExLDEsMCwwLDAtLjUuODd2Ni4yNGExLDEsMCwwLDAsLjUuODZsNS40NSwzLjEyYTEsMSwwLDAsMCwxLDBsNC45NS0yLjgzLDQuOTUsMi44M2ExLDEsMCwwLDAsLjUuMTQs'@; put 'MSwxLDAsMCwwLC40OS0uMTRsNS40NS0zLjEyYTEsMSwwLDAsMCwuNS0uODZWMjIuNDVBMSwxLDAsMCwwLDMzLjUzLDIxLjU4Wk0yMi4xNCwxMS4xMmw0LjQ1LDIuNTVWMTlsLTQuNDYsMi41Ni00LjQ0LTIuNlYxMy42N1pNMTYuNjksMzAuNjVsLTQuNDQtMi41NFYyM2w0LjY4LTIuNjgsNC40'@; put 'LDIuNTdWMjhaTTMyLDI4LjExbC00LjQ0LDIuNTRMMjIuOTMsMjhWMjIuOTNsNC40Ni0yLjU3TDMyLDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcsMjcuNDNhMSwxLDAsMCwxLTEtMVYxOS45QTEsMSwwLDAsMSw2LjUsMTls'@; put 'NC45NS0yLjgzVjEwLjU0YTEsMSwwLDAsMSwuNS0uODdsNS4yMS0zYTEsMSwwLDAsMSwxLjM3LjM3LDEsMSwwLDAsMS0uMzgsMS4zN2wtNC43LDIuNjh2NS42NmExLDEsMCwwLDEtLjUxLjg3TDgsMjAuNDh2NS45NUExLDEsMCwwLDEsNywyNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zLDI1LjA1YTEsMSwwLDAsMS0xLTFWMTcuNTNhMSwxLDAsMCwxLC41LS44Nmw1LTIuODRWOC4xN0ExLDEsMCwwLDEsOCw3LjMxbDUuMjUtM2ExLDEsMCwwLDEsMSwxLjc0TDkuNDUsOC43NXY1LjY2YTEsMSwwLDAsMS0uNTEuODdM'@; put 'NCwxOC4xMXY1Ljk0QTEsMSwwLDAsMSwzLDI1LjA1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxGLkNsclNoYXBlTm9kZXM9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUsMzQuMjksMiwyOS4zOVYxOS41OGw4LjUtNC45LDguNSw0Ljl2'@; put 'OS44MVpNNCwyOC4yMywxMC41LDMyLDE3LDI4LjIzVjIwLjc0TDEwLjUsMTcsNCwyMC43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yNS41LDM0LjI5LDE3LDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk0xOSwy'@; put 'OC4yMywyNS41LDMyLDMyLDI4LjIzVjIwLjc0TDI1LjUsMTcsMTksMjAuNzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTgsMjEuMzJsLTguNS00LjlWNi42MUwxOCwxLjcxbDguNSw0Ljl2OS44MVptLTYuNS02LjA2TDE4LDE5'@; put 'bDYuNS0zLjc1VjcuNzdMMTgsNCwxMS41LDcuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLEYuQ2xyU2hhcGVOYW1lc3BhY2U9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDQuMThhMSwxLDAsMSwwLTEsMS43M2w2LDMuNDdWMjYuNjJs'@; put 'LTYsMy40N2ExLDEsMCwwLDAtLjM3LDEuMzYsMSwxLDAsMCwwLDEuMzcuMzdsNy00LjA1VjguMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNOS42OCwyOS45LDQsMjYuNjJWOS4zOEw5LjY4LDYuMWExLDEsMCwxLDAtMS0xLjcz'@; put 'TDIsOC4yM1YyNy43N2w2LjY4LDMuODZhMSwxLDAsMCwwLDEuMzctLjM3QTEsMSwwLDAsMCw5LjY4LDI5LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTAsMTJWMjRhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjEy'@; put 'YTIsMiwwLDAsMC0yLTJIMTJBMiwyLDAsMCwwLDEwLDEyWm03LDB2NUgxMlYxMlptLTUsN2g1djVIMTJabTcsNVYxOWg1djVabTUtN0gxOVYxMmg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxGLkNsclNoYXBlTm9kZT0oMCxtLmNsckljb25TVkcp'@; put 'KCc8cGF0aCBkPSJNMTgsMzAuNjYsNywyNC4zM1YxMS42N0wxOCw1LjM0bDExLDYuMzNWMjQuMzNaTTksMjMuMThsOSw1LjE3LDktNS4xN1YxMi44MkwxOCw3LjY1LDksMTIuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLEYuQ2xyU2hhcGVQb2Q9'@; put 'KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDMySDEwYTYsNiwwLDAsMS02LTZWMTBhNiw2LDAsMCwxLDYtNkgyNmE2LDYsMCwwLDEsNiw2VjI2QTYsNiwwLDAsMSwyNiwzMlpNMTAsNmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjZhNCw0LDAsMCwwLDQtNFYxMGE0LDQs'@; put 'MCwwLDAtNC00WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTI2LjU2LDE1SDE1LjQ0QTEuNDMsMS40MywwLDAsMCwxNCwxNi40NHY4LjEyQTEuNDMsMS40MywwLDAsMCwxNS40NCwyNkgyNi41NkExLjQzLDEuNDMsMCwwLDAsMjgs'@; put 'MjQuNTZWMTYuNDRBMS40MywxLjQzLDAsMCwwLDI2LjU2LDE1Wk0yNiwyNEgxNlYxN0gyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMi40LDE5SDEwVjEySDIwdjEuNGgydi0yQTEuNDMsMS40MywwLDAsMCwyMC41NiwxMEg5'@; put 'LjQ0QTEuNDMsMS40MywwLDAsMCw4LDExLjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDkuNDQsMjFoM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksRi5DbHJDb250cm9sTHVuPSgwLG0uY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNOCwyNC41OWEy'@; put 'NS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4czkuMS0uNDUs'@; put 'MTItMS44OHY1LjExYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEsOCwxNi4zM1YxOGE0MC44Niw0MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlY4aDBzMCwwLDAtLjA3YzAtMy4zNS04LjgtNC4yNS0xNC00LjI1UzQsNC41'@; put 'OCw0LDcuOTN2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWk0xOCw1LjY4YzcuMTUsMCwxMS41MywxLjQ0LDEyLDIuMjUtLjQ2LjgxLTQuODQsMi4yNS0xMiwyLjI1UzYuMzEsOC42OSw2LDhDNi4zMSw3LjE4LDEwLjcx'@; put 'LDUuNjgsMTgsNS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRs'@; put 'LTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGgg'@; put 'ZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAsMCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0xOCwxNy41NEEzNC44'@; put 'MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40NiwwLDkuMTMtLjQ1LDEyLTEuOTF2My4yM2gyVjEzLjIyYTcuMzIsNy4zMiwwLDAsMS0yLC4yOHYxLjkxQzI5LjA5LDE2LjIzLDI1LDE3LjU0LDE4LDE3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik02LDI3LjUzVjEwLjNjMi45LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhhNDcuNjYsNDcuNjYsMCwwLDAsNy4wOS0uNTIsNy40NSw3LjQ1LDAsMCwxLTEuNTEtMS44LDQ3LjQsNDcuNCwwLDAsMS01'@; put 'LjU4LjMyQzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjY2LDAsMy4xNi4wOCw0LjUxLjIxYTcuNTYsNy41NiwwLDAsMSwuMjktMmMtMS43LS4xNy0zLjM4LS4yNC00LjgtLjI0LTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0'@; put 'LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTgsMjQuNTlhMjUuNSwyNS41LDAsMCwwLDIuNzUuNTlsMS4yMS0xLjQxYTI0LjEzLDI0LjEzLDAsMCwxLTQtLjgzWiIvPjxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40'@; put 'MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5c'@; put 'biAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgs'@; put 'MTIsMS44OGguNTlhMy41OSwzLjU5LDAsMCwxLC4zMi0ySDE4QzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjIyLDAsMi4zNS4wNSwzLjQxLjEybDEuMS0xLjkxYy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMiwwLTE0LC45LTE0LDQuMjV2'@; put 'MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTgsMTYuMzNWMThhNDAuODYsNDAu'@; put 'ODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTUuNEgzMGMtLjkxLjgyLTUsMi4xMy0xMiwyLjEzQTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRl'@; put 'ZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzIuMDks'@; put 'MjFIMzJWMTcuMzJjLTEuOSwyLjkzLTEwLjQ2LDMuMy0xNCwzLjNBNDIuNDMsNDIuNDMsMCwwLDEsOCwxOS41NlYxNy44OEE0MC41OSw0MC41OSwwLDAsMCwxOCwxOWM1LDAsMTMuMi0uODIsMTQtMy44MlYxMC43MmMtMi4yMSwzLjM2LTEwLjQ5LDMuNDYtMTQsMy40NkE0Mi4xMiw0Mi4xMiww'@; put 'LDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRjNSwwLDEzLjI4LS44MywxNC0zLjg4VjcuODNoMGMtLjE5LTMuMjctOC44NC00LjE1LTE0LTQuMTVTNC4yMSw0LjU2LDQsNy44M0g0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3'@; put 'YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRhMjUuNzksMjUuNzksMCwwLDAsMy40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45'@; put 'MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgydi0yYTcuMzQsNy4z'@; put 'NCwwLDAsMS00LjEyLDAsMzkuNDcsMzkuNDcsMCwwLDEtOS44OCwxQTQyLjEyLDQyLjEyLDAsMCwxLDgsMTMuMTFWMTFhNDAuNTksNDAuNTksMCwwLDAsMTAsMS4xNCw0Ny43Niw0Ny43NiwwLDAsMCw3LjA5LS41MkE3LjQ1LDcuNDUsMCwwLDEsMjIuOCwzLjkyYy0xLjctLjE3LTMuMzgtLjI0'@; put 'LTQuOC0uMjQtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMuMyw3LjYzLDMuODRsMi44NCwzLC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4y'@; put 'NCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCwwLDEtMSwxSDE1LjkyTDExLjQsMjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+'@; put 'XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4'@; put 'LDE5YzQuODUsMCwxMi44LS43OSwxMy45MS0zLjYySDIyLjIzYTMuNjgsMy42OCwwLDAsMS0yLjczLTEuMjNIMThBNDIuMTIsNDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0aC41OWEzLjYxLDMuNjEsMCwwLDEsLjQ2LTIuMjlsMy40Ni02Yy0xLjYtLjE1'@; put 'LTMuMTctLjIxLTQuNTEtLjIxLTUuMTQsMC0xMy43OS44OC0xNCw0LjE1SDR2MTkuN2MwLDIuMTYsMy42NCwzLjMsNy42MywzLjg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwz'@; put 'LjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDksMzJhMSwxLDAsMCwxLTEsMUgxNS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y'@; put 'LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1h'@; put 'bGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxGLkNsclNoYXBlTWVkaWFDaGFuZ2VyPSgwLG0uY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAs'@; put 'MCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wk02LDMwVjZIMzBWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBo'@; put 'ZWlnaHQ9IjIiLz48cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMjcuMjIsMTBIMjB2NGEuOC44LDAsMSwwLDEuNTksMFYxMS42aDUuNjNh'@; put 'LjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVj'@; put 'dCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9'@; put 'IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4'@; put 'LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4'@; put 'LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMCwxNGEuOC44LDAsMSwwLDEuNTksMFYxMS42SDI1QTcuNzQsNy43NCwwLDAsMSwyMy42NiwxMEgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgPHBh'@; put 'dGggZD0iTTMwLDEzLjVoMFYzMEg2VjZIMjIuNVY2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3'@; put 'LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'Mi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIy'@; put 'IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhl'@; put 'aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTQiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC02LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9Ijgu'@; put 'MTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjYiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDZWNkgyMS4yN2wxLjE4LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwy'@; put 'LTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFM'@; put 'MjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAs'@; put 'MiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4Ljgx'@; put 'VjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWm0wLTZIMjBWMTBoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cblxuICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNC0xLjE2VjE0'@; put 'SDIwVjEwaDMuNjZBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmE3LjM3LDcuMzcsMCwwLDEsLjI4LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJB'@; put 'Ny4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRo'@; put 'IGQ9Ik0yMi4yMywxNS40YTMuNjgsMy42OCwwLDAsMS0zLjE4LTUuNTFMMjIuNDUsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0xNywyOEg4'@; put 'LjgxVjI2SDE3Wm0wLTRIOC44MVYyMkgxN1ptMC00SDguODFWMThIMTdabTAtNEg4LjgxVjE0SDE3Wm0wLTRIOC44MVYxMEgxN1pNMjIsMjRIMjBWMjJoMlptMC00SDIwVjE4aDJabTQsNEgyNFYyMmgyWm0wLTRIMjRWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcpLEYuQ2xyU2hhcGVUYXBlRHJpdmU9KDAsbS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiww'@; put 'LDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEzLjMzLDEzLjM1YTQuNTIsNC41MiwwLDEsMCw0LjUzLDQuNTJBNC41Myw0LjUzLDAsMCwwLDEzLjMzLDEzLjM1'@; put 'Wm0wLDcuNDRhMi45MiwyLjkyLDAsMSwxLDIuOTMtMi45MkEyLjkyLDIuOTIsMCwwLDEsMTMuMzMsMjAuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNjIsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTIsNC41MkE0LjUz'@; put 'LDQuNTMsMCwwLDAsMjMuNjIsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45Mi0yLjkyQTIuOTIsMi45MiwwLDAsMSwyMy42MiwyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik02LDExVjIzLjU1SDhWMTJIMjku'@; put 'MzRWMTBIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG5cbiAgPHBhdGggZD0iTTguODEsMTcuODdhNC41Myw0LjUzLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsOC44MSwxNy44N1ptNy40NSwwQTIuOTMsMi45'@; put 'MywwLDEsMSwxMy4zMywxNSwyLjkzLDIuOTMsMCwwLDEsMTYuMjYsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE5LjEsMTcuODdhNC41Miw0LjUyLDAsMSwwLDQuNTItNC41MkE0LjUzLDQu'@; put 'NTMsMCwwLDAsMTkuMSwxNy44N1ptNy40NCwwQTIuOTIsMi45MiwwLDEsMSwyMy42MiwxNSwyLjkyLDIuOTIsMCwwLDEsMjYuNTQsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLDEzLjIy'@; put 'VjI4SDRWOEgyMi43OGE3LjM3LDcuMzcsMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjY1LDcuNjUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyNS41MWE3LjY2LDcuNjYsMCwwLDEtMS44NS0ySDdBMSwxLDAsMCwwLDYsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBj'@; put 'eD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4Ljgx'@; put 'LDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAsMSwxNi4yNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik03LDEwYTEsMSwwLDAsMC0xLDFW'@; put 'MjMuNTVIOFYxMkgxOC41N0EzLjcsMy43LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMjhINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhW'@; put 'MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTIyLjA5LDE1LjM5YTMuNjUsMy42NSwwLDAsMS0xLjgtLjU1LDQuNTEsNC41MSww'@; put 'LDEsMCw3LjExLjU2SDI1LjE3YTIuOTIsMi45MiwwLDEsMS0zLjA4LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywx'@; put 'M0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMy'@; put 'LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0zMCwyNEg2VjEySDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1'@; put 'LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjc5LDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDIzLjc5LDIzWm0wLTdhMiwyLDAs'@; put 'MSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5cbiAgPHBhdGggZD0iTTEyLjIxLDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDEyLjIxLDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTIuMjEsMTZa'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxMy41VjI0SDZWMTJIMjUuNTFhNy40OSw3LjQ5LDAsMCwxLTMtNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDksNy40'@; put 'OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHIt'@; put 'aS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik03LjIsMThhNSw1LDAsMSwwLDUtNUE1LDUsMCwwLDAsNy4yLDE4Wm03LDBhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTQuMjIsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4g'@; put 'IDxwYXRoIGQ9Ik0xOC43OCwxOGE1LDUsMCwxLDAsOS4yNy0yLjZIMjIuMjNhMy43MSwzLjcxLDAsMCwxLTIuMTctLjcxQTUsNSwwLDAsMCwxOC43OCwxOFptNS0yYTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMFYyNEg2VjEySDE4LjU3YTMuNjUsMy42NSwwLDAsMSwuNDgtMi4xMUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAs'@; put 'MCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxGLkNsclNoYXBlQW5pbWF0aW9uPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC4xNiwzMS43MWE0LjQsNC40LDAsMCwx'@; put 'LTQuNjQtMUE0LjM0LDQuMzQsMCwwLDEsNC4yMywyNy42YTQuNDEsNC40MSwwLDAsMSwuMTgtMS4yLDExLjYxLDExLjYxLDAsMCwxLTEtMi41Niw2LjQsNi40LDAsMCwwLDkuMzMsOC42M0ExMS41NSwxMS41NSwwLDAsMSwxMC4xNiwzMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MSwyNy42OGE3LjYxLDcuNjEsMCwwLDEtOS4wOC0xLjI2LDcuNTgsNy41OCwwLDAsMS0xLjI3LTkuMDYsMTQuMjYsMTQuMjYsMCwwLDEtLjM3LTIuODUsOS41OCw5LjU4LDAsMCwwLC4yMiwxMy4zMyw5LjYzLDkuNjMsMCwwLDAs'@; put 'MTMuMzUuMjJBMTQuNDYsMTQuNDYsMCwwLDEsMTguNDEsMjcuNjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNjYsMjYuMjFhMTIuMSwxMi4xLDAsMSwxLDguNTctMy41NGgwQTEyLjExLDEyLjExLDAsMCwxLDIxLjY2LDI2'@; put 'LjIxWk0yMS42Niw0QTEwLjExLDEwLjExLDAsMCwwLDExLjU0LDE0LjExYTEwLDEwLDAsMCwwLDMsNy4xNCwxMC4xMiwxMC4xMiwwLDAsMCwxNC4zMSwwQTEwLjExLDEwLjExLDAsMCwwLDIxLjY2LDRabTcuODYsMThoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0zIi8+XG4gIFxuICA8cGF0aCBkPSJNMy41LDIzLjc3YTYuNDEsNi40MSwwLDAsMCw5LjMzLDguNjdBMTEuNjUsMTEuNjUsMCwwLDEsMy41LDIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy42OCwxNC41M2E5LjYsOS42LDAs'@; put 'MCwwLDEzLjQsMTMuN0ExNC4xMSwxNC4xMSwwLDAsMSw3LjY4LDE0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNzgsMkExMi4xMiwxMi4xMiwwLDEsMSw5LjY2LDE0LjE1LDEyLjEyLDEyLjEyLDAsMCwxLDIxLjc4LDIiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgJyksRi5DbHJTaGFwZUNpQ2Q9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjUzLDE5LjgxYTcuNDUsNy40NSwwLDAsMS0xLjY1LS4xOCwxMC40OCwxMC40OCwwLDAsMSwuNzIsMi4xM2MuMywwLC42MSwwLC45'@; put 'MywwYTkuNTIsOS41MiwwLDAsMCwzLS40OWwtLjkzLTEuODFBNy42Nyw3LjY3LDAsMCwxLDIzLjUzLDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjM2LDE3Ljg3LDE4LDE3LjQ5YTcuNCw3LjQsMCwwLDEtMi4yLTUu'@; put 'OTIsNy4zMSw3LjMxLDAsMCwxLDEuNTQtNEwxNy4yNiw5QTEsMSwwLDAsMCwxOC4xNywxMGguMDlhMSwxLDAsMCwwLDEtLjkxTDE5LjYsNWExLDEsMCwwLDAtLjI5LS43OUExLDEsMCwwLDAsMTguNTIsNGwtNC4wOS4zNWExLDEsMCwwLDAsLjE3LDJsMS4yOS0uMTFhOS40NSw5LjQ1LDAsMCww'@; put 'LTIuMDUsNS4zMiw5LjI4LDkuMjgsMCwwLDAsMi42Nyw3LjI2bC4zMS4zN2E3LjMzLDcuMzMsMCwwLDEsMi4wNiw0LjkxLDcuMzksNy4zOSwwLDAsMS0uMjYsMi40N2wxLjguOTFhOC43Niw4Ljc2LDAsMCwwLC40NS0zLjUxQTkuMjgsOS4yOCwwLDAsMCwxOC4zNiwxNy44N1oiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi40LDE3LjkxLDMxLjE5LDE4QTkuNjUsOS42NSwwLDAsMCwyMy41MywyLjQ1YTkuMzMsOS4zMywwLDAsMC0zLC40OWwuOTEsMS44YTcuNjcsNy42NywwLDAsMSw5Ljc2LDcuMzksNy41OCw3LjU4LDAs'@; put 'MCwxLTEuNjUsNC43MmwuMS0xLjU0YTEsMSwwLDEsMC0yLS4xM2wtLjI4LDQuMDhhMSwxLDAsMCwwLC4zMS43OC45NC45NCwwLDAsMCwuNjkuMjhoLjFsNC4wOC0uNDJhMSwxLDAsMCwwLC45LTEuMUExLDEsMCwwLDAsMzIuNCwxNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik00LjA3LDIwLjQ0aC4wOGw0LjA5LS4zNWExLDEsMCwxLDAtLjE3LTJsLTEuMzkuMTJhNy42Myw3LjYzLDAsMCwxLDQuNTItMS40OSw3LjksNy45LDAsMCwxLDEuNjMuMTgsMTAuMjMsMTAuMjMsMCwwLDEtLjcxLTIuMTNjLS4zLDAtLjYxLDAt'@; put 'LjkyLDBhOS42Niw5LjY2LDAsMCwwLTUuOSwybC4xMi0xLjMxYTEsMSwwLDAsMC0uOTItMS4wOCwxLDEsMCwwLDAtMS4wOC45MWwtLjM1LDQuMDhhMSwxLDAsMCwwLDEsMS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC40'@; put 'MiwyOC4yM2wtNC4wOS4yN2ExLDEsMCwwLDAsLjEzLDJMMTYsMzAuMzlhNy43MSw3LjcxLDAsMCwxLTEyLjU0LTYsNy42LDcuNiwwLDAsMSwuMjktMkwyLDIxLjQ2YTkuNTksOS41OSwwLDAsMC0uNDcsMi45NUE5LjcsOS43LDAsMCwwLDE3LjE5LDMybC0uMTIsMS4xOGExLDEsMCwwLDAsLjg5'@; put 'LDEuMWguMTFhMSwxLDAsMCwwLDEtLjlsLjQyLTQuMDZhMSwxLDAsMCwwLTEuMDYtMS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxGLkNsclNoYXBlRmlsZVNoYXJlMj0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEg3LjgzQTEuODks'@; put 'MS44OSwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OSwxLjg5LDAsMCwwLDcuODMsMzJIMjguMTdBMS44NywxLjg3LDAsMCwwLDMwLDMwLjA5VjlaTTI0LDUuNzgsMjguMiwxMEgyNFpNOCwzMFY2SDIydjZoNlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+'@; put 'XG4gIDxwYXRoIGQ9Ik0yMiwyMS44MWEyLjExLDIuMTEsMCwwLDAtMS40NC42MmwtNS43Mi0yLjY2di0uNDRsNS42Ni0yLjY1YTIuMDgsMi4wOCwwLDEsMCwuMDYtMi45NGgwYTIuMTQsMi4xNCwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVs'@; put 'LjA4LS4wOCw1LjY3LDIuNjZ2LjNBMi4wOSwyLjA5LDAsMSwwLDIyLDIxLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0yNSw0LjA2SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNlYzMC4xNWExLjg5LDEuODksMCwwLDAs'@; put 'MS44MywxLjkxSDI4LjE3QTEuODcsMS44NywwLDAsMCwzMCwzMC4xNVY5Wk0yMiwyNmEyLjA5LDIuMDksMCwwLDEtMi4xLTIuMDh2LS4zTDE0LjI3LDIxbC0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMTQsMi4xNCwwLDAsMSwuNjQtMS40OGgwYTIu'@; put 'MDgsMi4wOCwwLDEsMS0uMDYsMi45NGwtNS42NiwyLjY1di40NGw1LjcyLDIuNjZBMi4xMSwyLjExLDAsMCwxLDIyLDIxLjgxbDAsMEEyLjA5LDIuMDksMCwwLDEsMjIsMjZabTItMTZWNS44NGw0LjIsNC4yMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxG'@; put 'LlRlY2hub2xvZ3lTaGFwZXM9eyJydWxlci1wZW5jaWwiOkYuQ2xyU2hhcGVSdWxlclBlbmNpbCwicGhvbmUtaGFuZHNldCI6Ri5DbHJTaGFwZVBob25lSGFuZHNldCwibm8td2lmaSI6Ri5DbHJTaGFwZU5vV2lmaSxpbnN0YWxsOkYuQ2xyU2hhcGVJbnN0YWxsLHVuaW5zdGFsbDpGLkNsclNo'@; put 'YXBlVW5pbnN0YWxsLGxheWVyczpGLkNsclNoYXBlTGF5ZXJzLGJsb2NrOkYuQ2xyU2hhcGVCbG9jaywiYmxvY2tzLWdyb3VwIjpGLkNsclNoYXBlQmxvY2tzR3JvdXAsYnVuZGxlOkYuQ2xyU2hhcGVCdW5kbGUsd2lmaTpGLkNsclNoYXBlV2lmaSwicmFjay1zZXJ2ZXIiOkYuQ2xyU2hhcGVS'@; put 'YWNrU2VydmVyLCJoYXJkLWRpc2siOkYuQ2xyU2hhcGVIYXJkRGlzaywiYmFja3VwLXJlc3RvcmUiOkYuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlLGJhY2t1cDpGLkNsclNoYXBlQmFja3VwLGRldmljZXM6Ri5DbHJTaGFwZURldmljZXMsa2V5Ym9hcmQ6Ri5DbHJTaGFwZUtleWJvYXJkLG1vdXNl'@; put 'OkYuQ2xyU2hhcGVNb3VzZSxkYXNoYm9hcmQ6Ri5DbHJTaGFwZURhc2hib2FyZCxob3N0OkYuQ2xyU2hhcGVIb3N0LHN0b3JhZ2U6Ri5DbHJTaGFwZVN0b3JhZ2UsY2x1c3RlcjpGLkNsclNoYXBlQ2x1c3RlcixhcHBsaWNhdGlvbnM6Ri5DbHJTaGFwZUFwcGxpY2F0aW9ucyxidWlsZGluZzpG'@; put 'LkNsclNoYXBlQnVpbGRpbmcsY3B1OkYuQ2xyU2hhcGVDUFUsbWVtb3J5OkYuQ2xyU2hhcGVNZW1vcnksImRhdGEtY2x1c3RlciI6Ri5DbHJTaGFwZURhdGFDbHVzdGVyLCJyZXNvdXJjZS1wb29sIjpGLkNsclNoYXBlUmVzb3VyY2VQb29sLHNoaWVsZDpGLkNsclNoYXBlU2hpZWxkLCJzaGll'@; put 'bGQtY2hlY2siOkYuQ2xyU2hhcGVTaGllbGRDaGVjaywic2hpZWxkLXgiOkYuQ2xyU2hhcGVTaGllbGRYLGltcG9ydDpGLkNsclNoYXBlSW1wb3J0LGV4cG9ydDpGLkNsclNoYXBlRXhwb3J0LCJ1cGxvYWQtY2xvdWQiOkYuQ2xyU2hhcGVVcGxvYWRDbG91ZCwiZG93bmxvYWQtY2xvdWQiOkYu'@; put 'Q2xyU2hhcGVEb3dubG9hZENsb3VkLHBsdWdpbjpGLkNsclNoYXBlUGx1Z2luLGZsb3BweTpGLkNsclNoYXBlRmxvcHB5LGNvbXB1dGVyOkYuQ2xyU2hhcGVDb21wdXRlcixkaXNwbGF5OkYuQ2xyU2hhcGVEaXNwbGF5LHRlcm1pbmFsOkYuQ2xyU2hhcGVUZXJtaW5hbCxjb2RlOkYuQ2xyU2hh'@; put 'cGVDb2RlLGFwcGxpY2F0aW9uOkYuQ2xyU2hhcGVBcHBsaWNhdGlvbixiYXR0ZXJ5OkYuQ2xyU2hhcGVCYXR0ZXJ5LG1vYmlsZTpGLkNsclNoYXBlTW9iaWxlLHRhYmxldDpGLkNsclNoYXBlVGFibGV0LCJuZXR3b3JrLWdsb2JlIjpGLkNsclNoYXBlTmV0d29ya0dsb2JlLCJuZXR3b3JrLXNl'@; put 'dHRpbmdzIjpGLkNsclNoYXBlTmV0d29ya1NldHRpbmdzLCJuZXR3b3JrLXN3aXRjaCI6Ri5DbHJTaGFwZU5ldHdvcmtTd2l0Y2gscm91dGVyOkYuQ2xyU2hhcGVSb3V0ZXIsdm06Ri5DbHJTaGFwZVZNLCJ2bXctYXBwIjpGLkNsclNoYXBlVk1XQXBwLGNlcnRpZmljYXRlOkYuQ2xyU2hhcGVD'@; put 'ZXJ0aWZpY2F0ZSxhcmNoaXZlOkYuQ2xyU2hhcGVBcmNoaXZlLHVuYXJjaGl2ZTpGLkNsclNoYXBlVW5hcmNoaXZlLGNvbm5lY3Q6Ri5DbHJTaGFwZUNvbm5lY3QsZGlzY29ubmVjdDpGLkNsclNoYXBlRGlzY29ubmVjdCxsaW5rOkYuQ2xyU2hhcGVMaW5rLHVubGluazpGLkNsclNoYXBlVW5s'@; put 'aW5rLCJjbG91ZC1uZXR3b3JrIjpGLkNsclNoYXBlQ2xvdWROZXR3b3JrLCJjbG91ZC1zY2FsZSI6Ri5DbHJTaGFwZUNsb3VkU2NhbGUsImNsb3VkLXRyYWZmaWMiOkYuQ2xyU2hhcGVDbG91ZFRyYWZmaWMsImNvbnRyb2wtbHVuIjpGLkNsckNvbnRyb2xMdW4sZGVwbG95OkYuQ2xyU2hhcGVE'@; put 'ZXBsb3ksaGVsaXg6Ri5DbHJTaGFwZUhlbGl4LGZsYXNrOkYuQ2xyU2hhcGVGbGFzayxhZG1pbmlzdHJhdG9yOkYuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yLCJoYXJkLWRyaXZlIjpGLkNsclNoYXBlSGFyZERyaXZlLCJoYXJkLWRyaXZlLWRpc2tzIjpGLkNsclNoYXBlSGFyZERyaXZlRGlza3Ms'@; put 'bnZtZTpGLkNsclNoYXBlTlZNZSxzc2Q6Ri5DbHJTaGFwZVNTRCxibHVldG9vdGg6Ri5DbHJTaGFwZUJsdWV0b290aCwiYmx1ZXRvb3RoLW9mZiI6Ri5DbHJTaGFwZUJsdWV0b290aE9mZiwicHJvY2Vzcy1vbi12bSI6Ri5DbHJTaGFwZVByb2Nlc3NPblZNLCJhc3NpZ24tdXNlciI6Ri5DbHJT'@; put 'aGFwZUFzc2lnblVzZXIsYXRvbTpGLkNsclNoYXBlQXRvbSwiYmFyLWNvZGUiOkYuQ2xyU2hhcGVCYXJDb2RlLCJjZC1kdmQiOkYuQ2xyU2hhcGVDZER2ZCxjb250YWluZXI6Ri5DbHJTaGFwZUNvbnRhaW5lciwiY29udGFpbmVyLXZvbHVtZSI6Ri5DbHJTaGFwZUNvbnRhaW5lclZvbHVtZSwi'@; put 'ZmlsZS1zaGFyZSI6Ri5DbHJTaGFwZUZpbGVTaGFyZSwicXItY29kZSI6Ri5DbHJTaGFwZVFyQ29kZSx1c2I6Ri5DbHJTaGFwZVVzYixyYWRhcjpGLkNsclNoYXBlUmFkYXIsY2FwYWNpdG9yOkYuQ2xyU2hhcGVDYXBhY2l0b3Isc3F1aWQ6Ri5DbHJTaGFwZVNxdWlkLGluZHVjdG9yOkYuQ2xy'@; put 'U2hhcGVJbmR1Y3RvcixyZXNpc3RvcjpGLkNsclNoYXBlUmVzaXN0b3IsImhvc3QtZ3JvdXAiOkYuQ2xyU2hhcGVIb3N0R3JvdXAsInN0b3JhZ2UtYWRhcHRlciI6Ri5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyLCJub2RlLWdyb3VwIjpGLkNsclNoYXBlTm9kZUdyb3VwLG5vZGVzOkYuQ2xyU2hh'@; put 'cGVOb2RlcyxuYW1lc3BhY2U6Ri5DbHJTaGFwZU5hbWVzcGFjZSxub2RlOkYuQ2xyU2hhcGVOb2RlLHBvZDpGLkNsclNoYXBlUG9kLCJtZWRpYS1jaGFuZ2VyIjpGLkNsclNoYXBlTWVkaWFDaGFuZ2VyLCJ0YXBlLWRyaXZlIjpGLkNsclNoYXBlVGFwZURyaXZlLGFuaW1hdGlvbjpGLkNsclNo'@; put 'YXBlQW5pbWF0aW9uLCJjaS1jZCI6Ri5DbHJTaGFwZUNpQ2QsImZpbGUtc2hhcmUtMiI6Ri5DbHJTaGFwZUZpbGVTaGFyZTJ9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLlRlY2hub2xvZ3lTaGFwZXMsInNlcnZlciIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLlRlY2hub2xvZ3lTaGFwZXMu'@; put 'aG9zdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLlRlY2hub2xvZ3lTaGFwZXMsImNvbW1hbmQiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5UZWNobm9sb2d5U2hhcGVzLnRlcm1pbmFsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuVGVjaG5vbG9neVNoYXBlcywibW9iaWxlLXBob25l'@; put 'IiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuVGVjaG5vbG9neVNoYXBlcy5tb2JpbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRi5UZWNobm9sb2d5U2hhcGVzLCJsaWNlbnNlIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuVGVjaG5vbG9neVNoYXBlcy5jZXJ0aWZpY2F0ZSkpLE9iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShGLlRlY2hub2xvZ3lTaGFwZXMsImRpc2Nvbm5lY3RlZCIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLlRlY2hub2xvZ3lTaGFwZXNbIm5vLXdpZmkiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLlRlY2hub2xvZ3lTaGFwZXMsInJlY2VpdmVyIiwoMCx4LmRl'@; put 'c2NyaXB0b3JDb25maWcpKEYuVGVjaG5vbG9neVNoYXBlc1sicGhvbmUtaGFuZHNldCJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuVGVjaG5vbG9neVNoYXBlcywiZGVzaWduIiwoMCx4LmRlc2NyaXB0b3JDb25maWcpKEYuVGVjaG5vbG9neVNoYXBlc1sicnVsZXItcGVuY2lsIl0pKSxP'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoRi5UZWNobm9sb2d5U2hhcGVzLCJkbmEiLCgwLHguZGVzY3JpcHRvckNvbmZpZykoRi5UZWNobm9sb2d5U2hhcGVzLmhlbGl4KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuVGVjaG5vbG9neVNoYXBlcywiZm9sZGVyLXNoYXJlIiwoMCx4LmRlc2NyaXB0'@; put 'b3JDb25maWcpKEYuVGVjaG5vbG9neVNoYXBlc1siZmlsZS1zaGFyZSJdKSksdHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKEYuVGVjaG5vbG9neVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25z'@; put 'L3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50'@; put 'cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihJZSxGLGFlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEYuVGV4dEVkaXRTaGFwZXM9Ri5DbHJTaGFwZVN1cGVyc2NyaXB0PUYuQ2xyU2hhcGVTdWJzY3JpcHQ9Ri5DbHJTaGFwZVN0cmlrZXRocm91Z2g9Ri5DbHJTaGFwZUluZGVudD1GLkNsclNoYXBlT3V0ZGVudD1GLkNsclNoYXBlSGlnaGxpZ2h0'@; put 'ZXI9Ri5DbHJTaGFwZVRleHRDb2xvcj1GLkNsclNoYXBlTGFuZ3VhZ2U9Ri5DbHJTaGFwZUFsaWduVG9wPUYuQ2xyU2hhcGVBbGlnbk1pZGRsZT1GLkNsclNoYXBlQWxpZ25Cb3R0b209Ri5DbHJTaGFwZVVuZGVybGluZT1GLkNsclNoYXBlVGV4dD1GLkNsclNoYXBlQWxpZ25SaWdodFRleHQ9'@; put 'Ri5DbHJTaGFwZUJsb2NrUXVvdGU9Ri5DbHJTaGFwZVBhaW50Um9sbGVyPUYuQ2xyU2hhcGVOdW1iZXJMaXN0PUYuQ2xyU2hhcGVBbGlnbkxlZnRUZXh0PUYuQ2xyU2hhcGVKdXN0aWZ5VGV4dD1GLkNsclNoYXBlSXRhbGljPUYuQ2xyU2hhcGVBbGlnblJpZ2h0PUYuQ2xyU2hhcGVBbGlnbkxl'@; put 'ZnQ9Ri5DbHJTaGFwZUFsaWduQ2VudGVyPUYuQ2xyU2hhcGVGb250U2l6ZT1GLkNsclNoYXBlQ2hlY2tib3hMaXN0PUYuQ2xyU2hhcGVDZW50ZXJUZXh0PUYuQ2xyU2hhcGVCdWxsZXRMaXN0PUYuQ2xyU2hhcGVCb2xkPXZvaWQgMDt2YXIgeD1hZSgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2Vu'@; put 'ZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO0YuQ2xyU2hhcGVCb2xkPSgwLHguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMi40MywxNy41NGE0LjY3LDQuNjcsMCwwLDAsMi44LTQuMzd2LS4wNmE0LjQzLDQuNDMsMCwwLDAtMS4z'@; put 'MS0zLjI1LDcuMDksNy4wOSwwLDAsMC01LjEzLTEuNzNoLTdBMS43MSwxLjcxLDAsMCwwLDEwLDkuODZWMjZhMS43MiwxLjcyLDAsMCwwLDEuNzQsMS43NGg3LjMzYzQuMzcsMCw3LjI1LTEuODgsNy4yNS01LjM4VjIyLjNDMjYuMzIsMTkuNjQsMjQuNzMsMTguMzIsMjIuNDMsMTcuNTRaTTEz'@; put 'LjY4LDExLjRoNC41NGMyLDAsMy4xNS44OSwzLjE1LDIuMzN2LjA2YzAsMS42OC0xLjM2LDIuNDktMy4zOCwyLjQ5SDEzLjY4Wk0yMi4zNywyMmMwLDEuNTktMS4zMSwyLjQzLTMuNDYsMi40M0gxMy42OFYxOS42Mmg1YzIuNDksMCwzLjY5Ljg4LDMuNjksMi4zN1oiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVCdWxsZXRMaXN0PSgwLHguY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjUuMjEiIGN5PSI5LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSI1'@; put 'LjIxIiBjeT0iMTcuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxjaXJjbGUgY3g9IjUuMjEiIGN5PSIyNS4xNyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMyLjQyLDlh'@; put 'MSwxLDAsMCwwLTEtMUgxMHYySDMxLjQyQTEsMSwwLDAsMCwzMi40Miw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMxLjQyLDE2SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMS40MiwyNEgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxGLkNsclNoYXBlQ2VudGVyVGV4dD0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuODgs'@; put 'OEg1LjEyYTEuMSwxLjEsMCwwLDAsMCwyLjJIMzAuODhhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNS41LDE2LjJhMS4xLDEuMSwwLDEsMCwwLTIuMmgtMTVhMS4xLDEuMSwwLDEsMCwwLDIuMloi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMC4yNSwyMEg1Ljc1YTEuMSwxLjEsMCwwLDAsMCwyLjJoMjQuNWExLjEsMS4xLDAsMCwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBh'@; put 'dGggZD0iTTI0Ljg4LDI2SDExLjEyYTEuMSwxLjEsMCwxLDAsMCwyLjJIMjQuODhhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLEYuQ2xyU2hhcGVDaGVja2JveExpc3Q9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGgg'@; put 'ZD0iTTMxLjQzLDE2SDEwdjJIMzEuNDNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMS40MywyNEgxMHYySDMxLjQzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMiIgLz48cGF0aCBkPSJNMTUuNDUsMTBoMTZhMSwxLDAsMCwwLDAtMmgtMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNSwzLjQyYTEuMDksMS4wOSwwLDAsMC0xLjU1LDBMNy44OSwxMS40OCw0LjUxLDcuODRBMS4x'@; put 'LDEuMSwwLDEsMCwyLjksOS4zNGw0Ljk0LDUuM0wxNy41LDVBMS4xLDEuMSwwLDAsMCwxNy41LDMuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxGLkNsclNoYXBlRm9udFNpemU9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLDkuMDhB'@; put 'MS4xMywxLjEzLDAsMCwwLDE5Ljg2LDhINC42MmExLjEsMS4xLDAsMSwwLDAsMi4xOUgxMVYyN2ExLjA5LDEuMDksMCwwLDAsMi4xNywwVjEwLjE5aDYuNjlBMS4xNCwxLjE0LDAsMCwwLDIxLDkuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0'@; put 'aCBkPSJNMzAuNjcsMTVIMjEuMTVhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMjVWMjYuNWExLjA5LDEuMDksMCwwLDAsMi4xNywwVjE3LjIzaDMuNTRhMS4xLDEuMSwwLDEsMCwwLTIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBl'@; put 'QWxpZ25DZW50ZXI9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDIwSDE5VjE2aDZhMSwxLDAsMCwwLDEtMVY3YTEsMSwwLDAsMC0xLTFIMTlWMmExLDEsMCwwLDAtMiwwVjZIMTFhMSwxLDAsMCwwLTEsMXY4YTEsMSwwLDAsMCwxLDFoNnY0SDVhMSwxLDAsMCwwLTEsMXY4YTEsMSww'@; put 'LDAsMCwxLDFIMTd2NGExLDEsMCwwLDAsMiwwVjMwSDMxYTEsMSwwLDAsMCwxLTFWMjFBMSwxLDAsMCwwLDMxLDIwWk0xMiwxNFY4SDI0djZaTTMwLDI4SDZWMjJIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxGLkNsclNoYXBlQWxpZ25MZWZ0'@; put 'PSgwLHguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik01LDFBMSwxLDAsMCwwLDQsMlYzNGExLDEsMCwwLDAsMiwwVjJBMSwxLDAsMCwwLDUsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMSwyMEg4VjMwSDMxYTEsMSwwLDAsMCwxLTFW'@; put 'MjFBMSwxLDAsMCwwLDMxLDIwWm0tMSw4SDEwVjIySDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LDE1VjdhMSwxLDAsMCwwLTEtMUg4VjE2SDIzQTEsMSwwLDAsMCwyNCwxNVptLTItMUgxMFY4SDIyWiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksRi5DbHJTaGFwZUFsaWduUmlnaHQ9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDFhMSwxLDAsMCwwLTEsMVYzNGExLDEsMCwwLDAsMiwwVjJBMSwxLDAsMCwwLDMxLDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNCwyMXY4YTEsMSwwLDAsMCwxLDFIMjhWMjBINUExLDEsMCwwLDAsNCwyMVptMiwxSDI2djZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMiw3djhhMSwxLDAsMCwwLDEsMUgy'@; put 'OFY2SDEzQTEsMSwwLDAsMCwxMiw3Wm0yLDFIMjZ2NkgxNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEYuQ2xyU2hhcGVJdGFsaWM9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjQyLDhIMTcuMWExLjEsMS4xLDAsMSwwLDAsMi4xOWgy'@; put 'LjEzTDEzLjExLDI1LjU1SDEwLjQ3YTEuMSwxLjEsMCwxLDAsMCwyLjE5SDE3LjhhMS4xLDEuMSwwLDEsMCwwLTIuMTlIMTUuNTFsNi4xMy0xNS4zNmgyLjc4YTEuMSwxLjEsMCwxLDAsMC0yLjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksRi5D'@; put 'bHJTaGFwZUp1c3RpZnlUZXh0PSgwLHguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LDEwLjJIMzEuNzVhMS4xLDEuMSwwLDEsMCwwLTIuMkg2YTEuMSwxLjEsMCwxLDAsMCwyLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEuNzUs'@; put 'MTRINmExLjEsMS4xLDAsMSwwLDAsMi4ySDMxLjc1YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzEuMTIsMjBINi42MmExLjEsMS4xLDAsMSwwLDAsMi4yaDI0LjVhMS4xLDEuMSwwLDEsMCwwLTIu'@; put 'MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC40NSwyNS44M0g2LjZhMS4xLDEuMSwwLDAsMCwwLDIuMkgzMC40NWExLjEsMS4xLDAsMCwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQi'@; put 'IC8+JyksRi5DbHJTaGFwZUFsaWduTGVmdFRleHQ9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjI1LDI2SDZ2Mi4ySDIwLjI1YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgsMjBINnYy'@; put 'LjJIMjhBMS4xLDEuMSwwLDAsMCwyOCwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMi42LDE1LjFBMS4xLDEuMSwwLDAsMCwyMS41LDE0SDZ2Mi4ySDIxLjVBMS4xLDEuMSwwLDAsMCwyMi42LDE1LjFaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjkuMjUsOEg2djIuMkgyOS4yNWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksRi5DbHJTaGFwZU51bWJlckxpc3Q9KDAseC5jbHJJY29u'@; put 'U1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI1LjQ2IDcuNDEgNS40NiAxMS41NiA2LjY1IDExLjU2IDYuNjUgNi4wNSA1LjcgNi4wNSA0LjA1IDcuMTYgNC41MiA4IDUuNDYgNy40MSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTUuNTcsMTQu'@; put 'ODJhLjc2Ljc2LDAsMCwxLC44My43M2MwLC4zOC0uMjEuNzQtLjg3LDEuMjdsLTIsMS41N3YxSDcuNjdWMTguMjhINS4zM2wxLS43N2MxLS43LDEuMjgtMS4yNywxLjI4LTJhMS44MywxLjgzLDAsMCwwLTItMS43NiwyLjYzLDIuNjMsMCwwLDAtMi4xNCwxLjA4bC43Ni43M0ExLjc1LDEuNzUs'@; put 'MCwwLDEsNS41NywxNC44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik02LjU2LDI0LjY0YTEuMzIsMS4zMiwwLDAsMCwxLTEuMjdjMC0uODctLjc4LTEuNTEtMi0xLjUxYTIuNjEsMi42MSwwLDAsMC0yLjEsMWwuNjkuNzJhMS43OCwx'@; put 'Ljc4LDAsMCwxLDEuMy0uNjRjLjU0LDAsLjkyLjI2LjkyLjY2cy0uMzYuNjItMSwuNjJINC43OXYxaC42NGMuNzQsMCwxLjA3LjIxLDEuMDcuNjNzLS4zNS42OC0xLC42OGEyLDIsMCwwLDEtMS40Ni0uNjVsLS43Ljc4YTIuODUsMi44NSwwLDAsMCwyLjIxLjkzYzEuMjksMCwyLjEzLS42OSwy'@; put 'LjEzLTEuNjRBMS4zMywxLjMzLDAsMCwwLDYuNTYsMjQuNjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNDIsOWExLDEsMCwwLDAtMS0xSDEwdjJIMzEuNDJBMSwxLDAsMCwwLDMyLjQyLDlaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzEuNDIsMTZIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQyLDI0SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEYuQ2xyU2hhcGVQYWludFJvbGxlcj0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTBWNGEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNHY2YTIsMiwwLDAsMCwyLDJIMjlBMiwyLDAsMCwwLDMx'@; put 'LDEwWk02LDRIMjl2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDZIMzJ2Ni4yOUwxOC43LDE2LjU0YTEsMSwwLDAsMC0uNywxVjE5SDE2VjMzYTIsMiwwLDAsMCwyLDJoMmEyLDIsMCwwLDAsMi0yVjE5SDIwdi0uNzNMMzMu'@; put 'MywxNGExLDEsMCwwLDAsLjctMVY3QTEsMSwwLDAsMCwzMyw2Wk0yMCwzM0gxOFYyMWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHJlY3QgeD0iNCIgeT0iMiIgd2lkdGg9IjI3IiBoZWlnaHQ9IjEwIiByeD0iMSIgcnk9IjEiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDZIMzJ2Ni4yNEwxOC43MSwxNi40NWExLDEsMCwwLDAtLjcxLDFWMTlIMTZWMzRhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTlIMjB2LS44MkwzMy4yOSwxNEExLDEsMCwwLDAsMzQsMTNWN0ExLDEsMCww'@; put 'LDAsMzMsNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZUJsb2NrUXVvdGU9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTExLjg2LDE2LjU1YTQuMzEsNC4zMSwwLDAsMC0yLjExLjU2LDE0LjQ0LDE0LjQ0LDAsMCwxLDQuMzYtNiwx'@; put 'LjEsMS4xLDAsMCwwLTEuNC0xLjdjLTQsMy4yNS01Ljc4LDcuNzUtNS43OCwxMC41NEE1LjA4LDUuMDgsMCwwLDAsMTAsMjQuNThhNC40LDQuNCwwLDAsMCwxLjg4LjQ0LDQuMjQsNC4yNCwwLDEsMCwwLTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'Lz48cGF0aCBkPSJNMjMsMTYuNTVhNC4yOSw0LjI5LDAsMCwwLTIuMTEuNTYsMTQuNSwxNC41LDAsMCwxLDQuMzUtNiwxLjEsMS4xLDAsMSwwLTEuMzktMS43Yy00LDMuMjUtNS43OCw3Ljc1LTUuNzgsMTAuNTRhNS4wOCw1LjA4LDAsMCwwLDMsNC42MUE0LjM3LDQuMzcsMCwwLDAsMjMsMjVh'@; put 'NC4yNCw0LjI0LDAsMSwwLDAtOC40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVBbGlnblJpZ2h0VGV4dD0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuNjUsMjcuMWExLjEsMS4xLDAsMCwwLDEuMSwxLjFIMzBWMjZI'@; put 'MTUuNzVBMS4xLDEuMSwwLDAsMCwxNC42NSwyNy4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYuOSwyMS4xQTEuMSwxLjEsMCwwLDAsOCwyMi4ySDMwVjIwSDhBMS4xLDEuMSwwLDAsMCw2LjksMjEuMVoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMy40LDE1LjFhMS4xLDEuMSwwLDAsMCwxLjEsMS4xSDMwVjE0SDE0LjVBMS4xLDEuMSwwLDAsMCwxMy40LDE1LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJN'@; put 'Ni43NSw4YTEuMSwxLjEsMCwxLDAsMCwyLjJIMzBWOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLEYuQ2xyU2hhcGVUZXh0PSgwLHguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMi4xOSw4Ljg0YTEuNDUsMS40NSwwLDAsMC0xLjQtMWgtLjEyYTEu'@; put 'NDYsMS40NiwwLDAsMC0xLjQyLDFMMS4xNCwyNi41NmExLjI5LDEuMjksMCwwLDAtLjE0LjU5LDEsMSwwLDAsMCwxLDEsMS4xMiwxLjEyLDAsMCwwLDEuMDgtLjc3bDIuMDgtNC42NWgxMWwyLjA4LDQuNTlhMS4yNCwxLjI0LDAsMCwwLDEuMTIuODMsMS4wOCwxLjA4LDAsMCwwLDEuMDgtMS4w'@; put 'OCwxLjY0LDEuNjQsMCwwLDAtLjE0LS41N1pNNi4wOCwyMC43MWw0LjU5LTEwLjIyLDQuNiwxMC4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4yNCwxNC43OEE2LjM1LDYuMzUsMCwwLDAsMjcuNiwxMy4yYTExLjM2LDExLjM2'@; put 'LDAsMCwwLTQuNywxLDEsMSwwLDAsMC0uNTguODksMSwxLDAsMCwwLC45NC45MiwxLjIzLDEuMjMsMCwwLDAsLjM5LS4wOCw4Ljg3LDguODcsMCwwLDEsMy43Mi0uODFjMi43LDAsNC4yOCwxLjMzLDQuMjgsMy45MnYuNWExNS4yOSwxNS4yOSwwLDAsMC00LjQyLS42MWMtMy42NCwwLTYuMTQs'@; put 'MS42MS02LjE0LDQuNjR2LjA1YzAsMi45NSwyLjcsNC40OCw1LjM3LDQuNDhhNi4yOSw2LjI5LDAsMCwwLDUuMTktMi40OFYyNi45YTEsMSwwLDAsMCwxLDEsMSwxLDAsMCwwLDEtMS4wNlYxOUE1LjcxLDUuNzEsMCwwLDAsMzIuMjQsMTQuNzhabS0uNTYsNy43YzAsMi4yOC0yLjE3LDMuODkt'@; put 'NC44MSwzLjg5LTEuOTQsMC0zLjYxLTEuMDYtMy42MS0yLjg2di0uMDZjMC0xLjgsMS41LTMsNC4yLTNhMTUuMiwxNS4yLDAsMCwxLDQuMjIuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxGLkNsclNoYXBlVW5kZXJsaW5lPSgwLHguY2xySWNv'@; put 'blNWRykoJzxwYXRoIGQ9Ik0xOCwyOC4xN2M1LjA4LDAsOC40OC0zLjA4LDguNDgtOVY4LjU0YTEuMTUsMS4xNSwwLDEsMC0yLjMsMHYxMC44YzAsNC40NC0yLjM4LDYuNzEtNi4xMyw2Ljcxcy02LjIxLTIuNDctNi4yMS02Ljg1VjguNTRhMS4xNSwxLjE1LDAsMSwwLTIuMywwdjEwLjhDOS41'@; put 'MywyNS4wOSwxMywyOC4xNywxOCwyOC4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMSwzMEg1YTEuMTEsMS4xMSwwLDAsMCwwLDIuMjFIMzFBMS4xMSwxLjExLDAsMCwwLDMxLDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZUFsaWduQm90dG9tPSgwLHguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwzMEgyYTEsMSwwLDAsMCwwLDJIMzRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo'@; put 'IGQ9Ik0xNiw1YTEsMSwwLDAsMC0xLTFIN0ExLDEsMCwwLDAsNiw1VjI4SDE2Wk0xNCwyNkg4VjZoNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwxM2ExLDEsMCwwLDAtMS0xSDIxYTEsMSwwLDAsMC0xLDFWMjhIMzBaTTI4LDI2'@; put 'SDIyVjE0aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlQWxpZ25NaWRkbGU9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDMwVjExYTEsMSwwLDAsMC0xLTFIMjFhMSwxLDAsMCwwLTEsMXY2SDE2VjVhMSwxLDAs'@; put 'MCwwLTEtMUg3QTEsMSwwLDAsMCw2LDVWMTdIMmExLDEsMCwwLDAsMCwySDZWMzFhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTloNHY2YTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xVjE5aDRhMSwxLDAsMCwwLDAtMlpNMTQsMzBIOFY2aDZabTE0LTZIMjJWMTJoNloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEYuQ2xyU2hhcGVBbGlnblRvcD0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsNEgyQTEsMSwwLDAsMCwyLDZIMzRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDMxYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xVjhINlpNOCwxMGg2VjMwSDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAsMjNhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwx'@; put 'LTFWOEgyMFptMi0xM2g2VjIySDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksRi5DbHJTaGFwZUxhbmd1YWdlPSgwLHguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMCwzSDE0djVoMlY1aDE0YzAuNiwwLDEsMC40LDEsMXYxMWMwLDAuNi0wLjQs'@; put 'MS0xLDFIMTd2N2gtNS4zTDgsMjcuOVYyNUg1Yy0wLjYsMC0xLTAuNC0xLTFWMTNjMC0wLjYsMC40LTEsMS0xaDEzdi0ySDVcblx0XHRjLTEuNywwLTMsMS4zLTMsM3YxMWMwLDEuNywxLjMsMywzLDNoMXY1LjFsNi4zLTUuMUgxOXYtN2gxMWMxLjcsMCwzLTEuMywzLTNWNkMzMyw0LjMsMzEu'@; put 'NywzLDMwLDN6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNi4yLDIyLjloMi40bDAuNi0xLjZoMy4xbDAuNiwxLjZoMi40TDExLjksMTRIOS41TDYuMiwyMi45eiBNMTAuNywxNi41bDEsMy4xaC0yTDEwLjcsMTYuNXoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMCwxN2MxLjEsMCwyLjYtMC4zLDQtMWMxLjQsMC43LDMsMSw0LDF2LTJjMCwwLTEsMC0yLjEtMC40YzEuMi0xLjIsMi4xLTMsMi4xLTUuNlY4aC0zVjZoLTJ2MmgtM3YyaDUuOVxuXHRcdGMtMC4yLDEuOC0x'@; put 'LDIuOS0xLjksMy42Yy0wLjYtMC41LTEuMi0xLjItMS42LTIuMWgtMi4xYzAuNCwxLjMsMSwyLjMsMS44LDMuMUMyMS4xLDE1LDIwLjIsMTUsMjAsMTVWMTd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cG9seWdvbiBwb2ludHM9IjExLDE2LjUgMTAs'@; put 'MTkuNiAxMiwxOS42IDExLDE2LjUgXHQiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLjMsM2gtMTZ2NWg0djJoLTEzYy0xLjcsMC0zLDEuMy0zLDN2MTFjMCwxLjcsMS4zLDMsMywzaDF2NS4xbDYuMy01LjFoNi43di03aDExYzEuNywwLDMt'@; put 'MS4zLDMtM1Y2XG5cdFx0QzMzLjMsNC4zLDMyLDMsMzAuMywzeiBNMTMuMSwyMi45bC0wLjUtMS42SDkuNWwtMC42LDEuNkg2LjVMOS44LDE0aDIuNGwzLjMsOC45TDEzLjEsMjIuOXogTTI4LjMsMTV2MmMtMS4zLDAtMi43LTAuNC0zLjktMVxuXHRcdGMtMS4yLDAuNi0yLjYsMC45LTQsMWwt'@; put 'MC4xLTJjMC43LDAsMS40LTAuMSwyLjEtMC4zYy0wLjktMC45LTEuNS0yLTEuOC0zLjJoMi4xYzAuMywwLjksMC45LDEuNiwxLjYsMi4yYzEuMS0wLjksMS44LTIuMiwxLjktMy43XG5cdFx0aC02VjhoM1Y2aDJ2MmgzLjNsMC4xLDFjMC4xLDIuMS0wLjcsNC4yLTIuMiw1LjdDMjcuMSwxNC45'@; put 'LDI3LjcsMTUsMjguMywxNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksRi5DbHJTaGFwZVRleHRDb2xvcj0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTkuNDcsMy44NGExLjQ1LDEuNDUsMCwwLDAtMS40LTFIMThhMS40NSwxLjQ1LDAsMCwwLTEu'@; put 'NDIsMUw4LjQyLDIxLjU2YTEuMzUsMS4zNSwwLDAsMC0uMTQuNTksMSwxLDAsMCwwLDEsMSwxLjExLDEuMTEsMCwwLDAsMS4wOC0uNzdsMi4wOC00LjY1aDExbDIuMDgsNC41OWExLjI0LDEuMjQsMCwwLDAsMS4xMi44MywxLjA4LDEuMDgsMCwwLDAsMS4wOC0xLjA4LDEuNTksMS41OSwwLDAs'@; put 'MC0uMTQtLjU3Wk0xMy4zNiwxNS43MSwxOCw1LjQ5bDQuNiwxMC4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjQuMDYiIHk9IjI1IiB3aWR0aD0iMjgiIGhlaWdodD0iOCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPicpLEYuQ2xyU2hhcGVIaWdobGlnaHRlcj0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUuODIsMjYuMDZhMSwxLDAsMCwxLS43MS0uMjlMOC42NywxOS4zM2ExLDEsMCwwLDEtLjI5LS43MSwxLDEsMCwwLDEsLjI5LS43MUwyMywzLjU0'@; put 'YTUuNTUsNS41NSwwLDEsMSw3Ljg1LDcuODZMMTYuNTMsMjUuNzdBMSwxLDAsMCwxLDE1LjgyLDI2LjA2Wm0tNS03LjQ0LDUsNUwyOS40OCwxMGEzLjU0LDMuNTQsMCwwLDAsMC01LDMuNjMsMy42MywwLDAsMC01LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MSIvPlxuICA8cGF0aCBkPSJNMTAuMzgsMjguMjhBMSwxLDAsMCwxLDkuNjcsMjhMNi40NSwyNC43N2ExLDEsMCwwLDEtLjIyLTEuMDlsMi4yMi01LjQ0YTEsMSwwLDAsMSwxLjYzLS4zM2w2LjQ1LDYuNDRBMSwxLDAsMCwxLDE2LjIsMjZsLTUuNDQsMi4yMkExLjMzLDEuMzMsMCwwLDEsMTAu'@; put 'MzgsMjguMjhaTTguMzMsMjMuODJsMi4yOSwyLjI4LDMuNDMtMS40TDkuNzQsMjAuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNOC45NCwzMGgtNWExLDEsMCwwLDEtLjg0LTEuNTVsMy4yMi00Ljk0YTEsMSwwLDAsMSwxLjU1'@; put 'LS4xNmwzLjIxLDMuMjJhMSwxLDAsMCwxLC4wNiwxLjM1TDkuNywyOS42NEExLDEsMCwwLDEsOC45NCwzMFpNNS43OCwyOEg4LjQ3TDksMjcuMzRsLTEuNy0xLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIzLjA2IiB5PSIzMSIg'@; put 'd2lkdGg9IjMwIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+JyksRi5DbHJTaGFwZU91dGRlbnQ9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjA2LDloLTI2YTEsMSwwLDEsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE5'@; put 'aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjRoLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyOWgtMjZhMSwxLDAsMCwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTkuNTYsMjIuNTRhMSwxLDAsMCwxLS43LS4z'@; put 'TDQuNjEsMThsNC4yNS00LjI0YTEsMSwwLDAsMSwxLjQxLDEuNDFMNy40NCwxOGwyLjgzLDIuODNhMSwxLDAsMCwxLS43MSwxLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz4nKSxGLkNsclNoYXBlSW5kZW50PSgwLHguY2xySWNvblNWRykoJzxwYXRo'@; put 'IGQ9Ik0zMS4wNiw5aC0yNmExLDEsMCwxLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTRoLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxOWgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI0aC0xN2Ex'@; put 'LDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjloLTI2YTEsMSwwLDAsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik01LjU2LDIyLjU0YTEsMSwwLDAsMS0uNy0xLjcxTDcuNjgsMTgsNC44NiwxNS4xN2ExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBMMTAuNTEsMTgsNi4yNywyMi4yNEExLDEsMCwwLDEsNS41NiwyMi41NFoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+JyksRi5DbHJTaGFwZVN0cmlrZXRocm91Z2g9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjg4LDE5LjkyaC0zMGExLDEsMCwxLDEsMC0yaDMwYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy4yNywxNS44NmExMi45LDEyLjksMCwwLDEsMS4yOS0uNTJBNS42OSw1LjY5LDAsMCwxLDEwLjM5LDE1YTMuMTgsMy4xOCwwLDAsMSwyLjc1LDEuMTFBNC40NCw0LjQ0LDAsMCwxLDE0LDE4Ljg1di40OWExMy44MywxMy44MywwLDAsMC00'@; put 'LjI5LS43NCw2LjE5LDYuMTksMCwwLDAtMi41OS41NEE1LDUsMCwwLDAsNS44MSwyMEgxNS44OFYxOC44NWE1LjY3LDUuNjcsMCwwLDAtMS4zNy00LDUuMTYsNS4xNiwwLDAsMC00LTEuNDksMTAsMTAsMCwwLDAtMy45MS44OC44Ny44NywwLDAsMC0uNDQsMS4xOEEuODQuODQsMCwwLDAsNy4y'@; put 'NywxNS44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMSwyMGE1Ljk0LDUuOTQsMCwwLDEsLjU0LTIuMzEsNC4zNSw0LjM1LDAsMCwxLDEuNTgtMS44Myw0LjI3LDQuMjcsMCwwLDEsNC41OSwwLDQuNDcsNC40NywwLDAsMSwx'@; put 'LjU3LDEuODNBNi4xMiw2LjEyLDAsMCwxLDI5Ljg1LDIwaDJhNy43Myw3LjczLDAsMCwwLS43OC0zLjE5LDYsNiwwLDAsMC0yLjE4LTIuNDUsNS43NCw1Ljc0LDAsMCwwLTMuMS0uODgsNS4zOSw1LjM5LDAsMCwwLTIuOC43Myw1LjU1LDUuNTUsMCwwLDAtMiwyLjA1VjEwYS44Ny44NywwLDAs'@; put 'MC0uODYtLjg2SDIwYS44Ny44NywwLDAsMC0uODYuODZWMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjkuNjcsMjJhNS42MSw1LjYxLDAsMCwxLS4zNiwxLjA3LDQuNDcsNC40NywwLDAsMS0xLjU3LDEuODUsNC4zMiw0LjMy'@; put 'LDAsMCwxLTQuNTksMCw0LjM1LDQuMzUsMCwwLDEtMS41OC0xLjg1QTUuNjQsNS42NCwwLDAsMSwyMS4yLDIySDE5LjA5djQuMTNBLjg3Ljg3LDAsMCwwLDIwLDI3aC4yYS44Ny44NywwLDAsMCwuODYtLjg2VjI0LjUxYTUuNTgsNS41OCwwLDAsMCwyLDIuMDYsNS40OCw1LjQ4LDAsMCwwLDIu'@; put 'OC43Miw1LjY2LDUuNjYsMCwwLDAsMy4xLS44OEE1Ljg4LDUuODgsMCwwLDAsMzEuMDksMjQsNy4wOSw3LjA5LDAsMCwwLDMxLjczLDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTE0LDIydi43NmEzLjM0LDMuMzQsMCwwLDEt'@; put 'MS42MiwyLDUuMzQsNS4zNCwwLDAsMS0yLjY5LjcyLDMuNzgsMy43OCwwLDAsMS0yLjM2LS43LDIuMjQsMi4yNCwwLDAsMS0uOTQtMS45LDIuMjksMi4yOSwwLDAsMSwuMi0uOTFINC42MmE0LDQsMCwwLDAtLjEzLDEsMy44MywzLjgzLDAsMCwwLDEuMzUsMy4wNkE1LjE1LDUuMTUsMCwwLDAs'@; put 'OS4zMSwyNy4yLDYsNiwwLDAsMCwxMiwyNi41N2E0LjYyLDQuNjIsMCwwLDAsMi0xLjc0VjI2YS44Ni44NiwwLDAsMCwuODYuODZIMTVhLjg2Ljg2LDAsMCwwLC44Ni0uODZWMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPicpLEYuQ2xyU2hhcGVTdWJz'@; put 'Y3JpcHQ9KDAseC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjU1LDE4bDYuOCw4LjZhMS4xNywxLjE3LDAsMCwxLS45MiwxLjloMGExLjE3LDEuMTcsMCwwLDEtLjkyLS40NEwxMywxOS45MSw2LjYsMjhhMS4xNywxLjE3LDAsMCwxLS45Mi40NGgwYTEuMTcsMS4xNywwLDAsMS0uOTItMS45'@; put 'TDExLjU1LDE4bC02LjgtOC42YTEuMTcsMS4xNywwLDAsMSwuOTItMS45aDBBMS4xNywxLjE3LDAsMCwxLDYuNjMsOGw2LjQ0LDguMTNMMTkuNSw4YTEuMTcsMS4xNywwLDAsMSwuOTItLjQ0aDBhMS4xNywxLjE3LDAsMCwxLC45MiwxLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjMsMzEuOCwyNy40OSwyOGE5LjksOS45LDAsMCwwLDEuODgtMi4wNUEzLjQ0LDMuNDQsMCwwLDAsMzAsMjRhMi4zNSwyLjM1LDAsMCwwLS4zNS0xLjI3LDIuNDQsMi40NCwwLDAsMC0xLS44NCwyLjksMi45LDAsMCwwLTEuMjYtLjI4LDMu'@; put 'MzYsMy4zNiwwLDAsMC0xLjgzLjUsNS42NCw1LjY0LDAsMCwwLTEuNDgsMS40MmwtMS0uODFhNS4xMSw1LjExLDAsMCwxLDQuMzYtMi4zNyw0LjM1LDQuMzUsMCwwLDEsMiwuNDUsMy40MywzLjQzLDAsMCwxLDIsMy4xOCw0LjQ1LDQuNDUsMCwwLDEtLjY4LDIuMzUsMTAuOSwxMC45LDAsMCwx'@; put 'LTIuMjQsMi40NmwtMy4yNCwyLjgxSDMxLjVWMzNIMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPicpLEYuQ2xyU2hhcGVTdXBlcnNjcmlwdD0oMCx4LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuNDMsMThsNi43OSw4LjZhMS4xNywxLjE3LDAsMCwx'@; put 'LS45MiwxLjloMGExLjE3LDEuMTcsMCwwLDEtLjkyLS40NGwtNi40NC04LjEzTDYuNDcsMjhhMS4xNywxLjE3LDAsMCwxLS45Mi40NGgwYTEuMTcsMS4xNywwLDAsMS0uOTItMS45TDExLjQzLDE4bC02LjgtOC42YTEuMTcsMS4xNywwLDAsMSwuOTItMS45aDBBMS4yLDEuMiwwLDAsMSw2LjUx'@; put 'LDhsNi40Myw4LjEzTDE5LjM4LDhhMS4xNywxLjE3LDAsMCwxLC45Mi0uNDRoMGExLjE3LDEuMTcsMCwwLDEsLjkyLDEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMi44NSwxNC40N2w0LjUxLTMuODVhOS4zNyw5LjM3LDAs'@; put 'MCwwLDEuODgtMiwzLjQzLDMuNDMsMCwwLDAsLjU5LTEuODYsMi4yNywyLjI3LDAsMCwwLS4zNi0xLjI3LDIuMzgsMi4zOCwwLDAsMC0uOTUtLjgzLDIuNzcsMi43NywwLDAsMC0xLjI2LS4yOSwzLjM5LDMuMzksMCwwLDAtMS44My41LDUuODMsNS44MywwLDAsMC0xLjQ5LDEuNDJsLTEtLjgx'@; put 'YTUuMTIsNS4xMiwwLDAsMSw0LjM2LTIuMzcsNC4zNiw0LjM2LDAsMCwxLDIsLjQ1LDMuNDcsMy40NywwLDAsMSwyLDMuMThBNC40NCw0LjQ0LDAsMCwxLDMwLjU4LDlhMTEuMTQsMTEuMTQsMCwwLDEtMi4yNCwyLjQ2TDI1LjEsMTQuMzFoNi4yOHYxLjMzSDIyLjg1WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxGLlRleHRFZGl0U2hhcGVzPXtib2xkOkYuQ2xyU2hhcGVCb2xkLCJidWxsZXQtbGlzdCI6Ri5DbHJTaGFwZUJ1bGxldExpc3QsImNoZWNrYm94LWxpc3QiOkYuQ2xyU2hhcGVDaGVja2JveExpc3QsIm51bWJlci1saXN0IjpGLkNs'@; put 'clNoYXBlTnVtYmVyTGlzdCwiZm9udC1zaXplIjpGLkNsclNoYXBlRm9udFNpemUsaXRhbGljOkYuQ2xyU2hhcGVJdGFsaWMsImp1c3RpZnktdGV4dCI6Ri5DbHJTaGFwZUp1c3RpZnlUZXh0LCJjZW50ZXItdGV4dCI6Ri5DbHJTaGFwZUNlbnRlclRleHQsImFsaWduLWxlZnQtdGV4dCI6Ri5D'@; put 'bHJTaGFwZUFsaWduTGVmdFRleHQsImFsaWduLXJpZ2h0LXRleHQiOkYuQ2xyU2hhcGVBbGlnblJpZ2h0VGV4dCwicGFpbnQtcm9sbGVyIjpGLkNsclNoYXBlUGFpbnRSb2xsZXIsImJsb2NrLXF1b3RlIjpGLkNsclNoYXBlQmxvY2tRdW90ZSx0ZXh0OkYuQ2xyU2hhcGVUZXh0LHVuZGVybGlu'@; put 'ZTpGLkNsclNoYXBlVW5kZXJsaW5lLCJhbGlnbi1jZW50ZXIiOkYuQ2xyU2hhcGVBbGlnbkNlbnRlciwiYWxpZ24tbGVmdCI6Ri5DbHJTaGFwZUFsaWduTGVmdCwiYWxpZ24tcmlnaHQiOkYuQ2xyU2hhcGVBbGlnblJpZ2h0LCJhbGlnbi1ib3R0b20iOkYuQ2xyU2hhcGVBbGlnbkJvdHRvbSwi'@; put 'YWxpZ24tbWlkZGxlIjpGLkNsclNoYXBlQWxpZ25NaWRkbGUsImFsaWduLXRvcCI6Ri5DbHJTaGFwZUFsaWduVG9wLGxhbmd1YWdlOkYuQ2xyU2hhcGVMYW5ndWFnZSwidGV4dC1jb2xvciI6Ri5DbHJTaGFwZVRleHRDb2xvcixoaWdobGlnaHRlcjpGLkNsclNoYXBlSGlnaGxpZ2h0ZXIsaW5k'@; put 'ZW50OkYuQ2xyU2hhcGVJbmRlbnQsb3V0ZGVudDpGLkNsclNoYXBlT3V0ZGVudCxzdHJpa2V0aHJvdWdoOkYuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoLHN1YnNjcmlwdDpGLkNsclNoYXBlU3Vic2NyaXB0LHN1cGVyc2NyaXB0OkYuQ2xyU2hhcGVTdXBlcnNjcmlwdH0sdHlwZW9mIHdpbmRvdzwi'@; put 'dSImJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKEYuVGV4dEVkaXRTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RyYXZlbC1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RyYXZlbC1zaGFwZXMudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxGLlRyYXZlbFNoYXBlcz1GLkNsclNoYXBlT25Ib2xpZGF5PUYuQ2xyU2hhcGVU'@; put 'cmFpbGVyPUYuQ2xyU2hhcGVGZXJyeT1GLkNsclNoYXBlQ2FyYXZhbj1GLkNsclNoYXBlQ2FtcGVydmFuPUYuQ2xyU2hhcGVCb2F0PUYuQ2xyU2hhcGVCaWN5Y2xlPUYuQ2xyU2hhcGVNYXBNYXJrZXI9Ri5DbHJTaGFwZUNvbXBhc3M9Ri5DbHJTaGFwZU1hcD1GLkNsclNoYXBlQ2FyPUYuQ2xy'@; put 'U2hhcGVBaXJwbGFuZT1GLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciB4PWFlKAovKiEgLi4vdXRpbHMvZGVzY3JpcHRvci1jb25maWcgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksbT1hZSgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJh'@; put 'dG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO0YuQ2xyU2hhcGVUcnVjaz0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCww'@; put 'LTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMTkuN2E2LjQ1LDYuNDUsMCwwLDEsMS41Ni0uMmMuMTUsMCwuMjksMCwuNDQsMFYxNGg0YTIsMiwwLDAsMSwyLDJ2MUgyOHYyaDR2NUgyOS42YTQuNTQsNC41NCwwLDAsMC04LjM0LDBIMTQuNDNhNC41LDQuNSww'@; put 'LDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDksNC40OSwwLDAsMCw4LjkyLDBIMzNhMSwxLDAsMCwwLDEtMVYxNkE0LDQsMCwwLDAsMzAsMTJaTTEwLjI2LDI4YTIuMzgsMi4zOCwwLDEsMSwwLTQuNzUsMi4zOCwyLjM4LDAsMSwxLDAsNC43NVptMTUuMTcs'@; put 'MGEyLjM4LDIuMzgsMCwxLDEsMi41LTIuMzdBMi40NCwyLjQ0LDAsMCwxLDI1LjQzLDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwx'@; put 'LDAsMCwwLDEsMUg0VjhIMjRWMjEuNDlBNC40NSw0LjQ1LDAsMCwwLDIxLjI1LDI0SDE0LjQzYTQuNSw0LjUsMCwwLDAtNC4xNy0yLjc2QTQuMzgsNC4zOCwwLDEsMCwxNC43MiwyNkgyMWE0LjQ4LDQuNDgsMCwwLDAsOC45MSwwSDM0VjE2QTQsNCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4z'@; put 'OCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgsMCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDIsMjhaTTMyLDE3SDI2VjE0aDRhMiwyLDAsMCwxLDIsMloiLz4nKSxGLkNsclNoYXBlQWlycGxhbmU9KDAsbS5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS43Nyw4LjE2YTIuNDMsMi40MywwLDAsMC0xLjktMkwyOCw0Ljg3YTQuNSw0LjUsMCwwLDAtMy42NS43OUw3LDE4LjMsMi4xNCwxOC4xQTEuODYsMS44NiwwLDAsMCwuOTEsMjEu'@; put 'NDFsNSwzLjkzYy42LjczLDEsLjU5LDEwLjkzLTQuODJsLjkzLDkuNDJhMS4zNiwxLjM2LDAsMCwwLC44NSwxLjE4LDEuNDMsMS40MywwLDAsMCwuNTQuMSwxLjU0LDEuNTQsMCwwLDAsMS0uNDFsMi4zOS0yLjE4YTEuNTIsMS41MiwwLDAsMCwuNDYtLjgzTDI1LjIsMTUuOWMzLjU3LTIsNi45'@; put 'NS0zLjg4LDkuMzYtNS4yNUEyLjQzLDIuNDMsMCwwLDAsMzUuNzcsOC4xNlptLTIuMi43NWMtMi41LDEuNDItNiwzLjQxLTkuNzYsNS40N2wtLjQxLjIzTDIxLjA3LDI3LjI4bC0xLjQ3LDEuMzRMMTguNSwxNy4zMiwxNy4xNywxOEMxMCwyMiw3LjYxLDIzLjE2LDYuNzksMjMuNTJsLTQuMy0z'@; put 'LjQxLDUuMDguMjIsMTgtMTMuMDZhMi41MSwyLjUxLDAsMCwxLDItLjQ1bDUuODUsMS4yNmEuNDMuNDMsMCwwLDEsLjM1LjM3QS40Mi40MiwwLDAsMSwzMy41Nyw4LjkxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9'@; put 'Ik03LDEyLjU0bDMuNTYsMSwxLjY0LTEuMTktNC0xLjE2TDEwLDEwLjA5bDUuNDctLjE2LDIuMy0xLjY3TDEwLDguNWExLjI1LDEuMjUsMCwwLDAtLjcuMTdMNi42NywxMC4yQTEuMjgsMS4yOCwwLDAsMCw3LDEyLjU0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYuMjUsMTEuNSwxMiwxMy4xNmw2LjMyLTQuNTktOS4wNy4yNkEuNTIuNTIsMCwwLDAsOSw4LjkxTDYuMTMsMTAuNTZBLjUxLjUxLDAsMCwwLDYuMjUsMTEuNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTIiIGQ9Ik0zNC41Miw2LjM2LDI4LjIyLDVhMy43OCwzLjc4LDAsMCwwLTMuMDcuNjdMNi4xMiwxOS41bC00LjU3LS4yYTEuMjUsMS4yNSwwLDAsMC0uODMsMi4yMmw0LjQ1LDMuNTNhLjU1LjU1LDAsMCwwLC41My4wOWMxLjI3LS40OSw2LTMsMTEuNTktNi4wN2wxLjEyLDEx'@; put 'LjUxYS41NS41NSwwLDAsMCwuOS4zN2wyLjUtMi4wOGEuNzYuNzYsMCwwLDAsLjI2LS40NWwyLjM3LTEzLjI5YzQtMi4yMiw3LjgyLTQuMzcsMTAuNTEtNS44OUExLjU1LDEuNTUsMCwwLDAsMzQuNTIsNi4zNloiLz4nKSxGLkNsclNoYXBlQ2FyPSgwLG0uY2xySWNvblNWRykoJzxyZWN0IGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LjQ1LDE0LjE3QTIyLjEs'@; put 'MjIuMSwwLDAsMCwxOS4zOCw3YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40Ny0uMTQuOTItLjIsMS4zNkE0LDQsMCwwLDAsMiwxOHY2LjEzYTIsMiwwLDAsMCwyLDJWMjBINFYxOGEyLDIsMCwwLDEsMi0ySDI0LjczQTcuMjgsNy4yOCwwLDAsMSwz'@; put 'MiwyMy4yN1YyNGgtMmE0LjUzLDQuNTMsMCwxLDAsLjMzLDJIMzJhMiwyLDAsMCwwLDItMnYtLjczQTkuMjgsOS4yOCwwLDAsMCwyNi40NSwxNC4xN1pNMTEsMTRINi45M2MwLS4zMS4wOS0uNjMuMTUtMUE2LjUyLDYuNTIsMCwwLDEsMTEsOGgwWm0yLDBWNy41OGE4LjE3LDguMTcsMCwwLDEs'@; put 'NS4zNiwxLjE2QTE5LDE5LDAsMCwxLDIzLjksMTRaTTI1LjgsMjguMzhhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjUuOCwyOC4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0'@; put 'LjE3LDI0YTQuNTMsNC41MywwLDEsMCwuMzMsMmg1LjNjMC0uMDgsMC0uMTcsMC0uMjVBNiw2LDAsMCwxLDIwLDI0Wk0xMCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMCwyOC4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYuODcsMTQuMjhBMjIuMzYsMjIuMzYsMCwwLDAsMTkuNjUsNi45YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40OS0uMTUsMS0uMjEsMS40aC0xQTIuNTksMi41OSwwLDAsMCwyLDE2LjU5djguNTVh'@; put 'Ljg2Ljg2LDAsMCwwLC44Ni44Nkg0LjU5YzAtLjEzLDAtLjI2LDAtLjM5YTUuNzcsNS43NywwLDAsMSw3LjcxLTUuNDVsLTEsMWE0LjU2LDQuNTYsMCwwLDAtNC4zNCwxLjU4LDMsMywwLDAsMC0uNjMuOTNBNC41LDQuNSwwLDEsMCwxNC44MiwyNmg1LjQ4YzAtLjEzLDAtLjI2LDAtLjM5QTUu'@; put 'NzcsNS43NywwLDAsMSwyOCwyMC4xNmwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDMwLjUzLDI2aDIuNjFhLjg2Ljg2LDAsMCwwLC44Ni0uODZWMjMuMzZBOS4zOSw5LjM5LDAsMCwwLDI2Ljg3LDE0LjI4Wk0xMiwxNEg4YzAt'@; put 'LjM1LjEtLjcxLjE2LTEuMDdhNi41Miw2LjUyLDAsMCwxLDMuODctNWgwWk0xMC4zNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMC4zNiwyOC4zNlpNMTksMTlIMTZWMTdoM1ptLTYtNVY3LjQ3YTguMTYsOC4xNiwwLDAsMSw1LjQsMS4xNUExOS4xNSwxOS4x'@; put 'NSwwLDAsMSwyNCwxNFpNMjYuMDYsMjguMzZhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjYuMDYsMjguMzZaIi8+JyksRi5DbHJTaGFwZU1hcD0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i'@; put 'TTMzLjU5LDYuMTlBMSwxLDAsMCwwLDMyLjcsNkwyMy4wOSw5LDEzLjQ2LDQuMTFhMSwxLDAsMCwwLS44NCwwTDIuNjIsOC4yQTEsMSwwLDAsMCwyLDkuMTNWMjkuNjFhMSwxLDAsMCwwLDEuMzguOTJMMTMsMjYuNThsOS41OSw0LjkyYTEsMSwwLDAsMCwuNDYuMTEsMSwxLDAsMCwwLC4zLDBs'@; put 'MTAtMy4xMmExLDEsMCwwLDAsLjctMVY3QTEsMSwwLDAsMCwzMy41OSw2LjE5Wk0zMiwyNi43NWwtOC4zMiwyLjZWMjcuMDZoLTEuNnYybC04LjQtNC4zMVYyMy4wNmgtMS42djEuNzJMNCwyOC4xMVY5Ljc5bDguMDgtMy4zM1Y4LjgxaDEuNlY2LjQ3bDguNCw0LjN2Mi4xaDEuNlYxMUwzMiw4'@; put 'LjM2WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMi4wOCIgeT0iMTUuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMi4wOCIgeT0iMjEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi4wOCIgeT0iMTEuMDYiIHdpZHRoPSIx'@; put 'LjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMi4wOCIgeT0iMTcuMTMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy43NSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMy4zMSw3LjM1LDI1LDkuOTRWMTRIMjNWMTAuMjlMMTQsNS42OFY5SDEyVjUuMjdsLTkuNjcsNEEuNTMuNTMsMCwwLDAsMiw5Ljc1VjMwLjQ1YS41My41MywwLDAsMCwuNzQuNDlMMTIsMjcuMTJWMjNoMnY0LjUzbDksNC42MVYy'@; put 'OGgydjMuNzlsOC42My0yLjdhLjUzLjUzLDAsMCwwLC4zNy0uNTFWNy44NkEuNTMuNTMsMCwwLDAsMzMuMzEsNy4zNVpNMTQsMjFIMTJWMTdoMlptMC02SDEyVjExaDJaTTI1LDI2SDIzVjIyaDJabTAtNkgyM1YxNmgyWiIvPicpLEYuQ2xyU2hhcGVDb21wYXNzPSgwLG0uY2xySWNvblNWRyko'@; put 'JzxwYXRoIGQ9Ik0yMC44MiwxNS4zMWgwTDEwLjQ2LDljLS40Ni0uMjYtMS4xMS4zNy0uODYuODRsNi4xNSwxMC41NiwxMC41Niw2LjE1YS42Ni42NiwwLDAsMCwuODQtLjg2Wm0tNCw0LDMtMyw0LjU1LDcuNDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTEsMjkuOTVWMjkuNTNIMTd2Mi40MkExNCwxNCwwLDAsMSw0LjA1LDE5SDYuNDdWMTdINC4wNUExNCwxNCwwLDAsMSwxNyw0LjA1VjYuNDdoMlY0LjA1QTE0LDE0LDAsMCwx'@; put 'LDMxLjk1LDE3SDI5LjUzdjJoMi40MkExNCwxNCwwLDAsMSwxOSwzMS45NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNNi40NywxOUg0'@; put 'LjA1YzAtLjMzLS4wNS0uNjYtLjA1LTFzMC0uNjcuMDUtMUg2LjQ3Wk0xNyw0LjA1Yy4zMywwLC42Ni0uMDUsMS0uMDVzLjY3LDAsMSwuMDVWNi40N0gxN1ptMiwyNy45Yy0uMzMsMC0uNjYuMDUtMSwuMDVzLS42NywwLTEtLjA1VjI5LjUzaDJabTgtNS41OGEuNTkuNTksMCwwLDEtLjY5LjE2'@; put 'TDE1Ljc1LDIwLjM4LDkuNiw5LjgyYy0uMjUtLjQ3LjM5LTEuMS44Ni0uODRsMTAuMzcsNi4zM2gwbDYuMzMsMTAuMzdBLjU5LjU5LDAsMCwxLDI3LDI2LjM3Wk0yOS41MywxOVYxN2gyLjQyYzAsLjMzLjA1LjY2LjA1LDFzMCwuNjctLjA1LDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNi43NyAxOS4zNSAyNC4zNSAyMy43NyAxOS44IDE2LjMzIDE2Ljc3IDE5LjM1IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVNYXBNYXJrZXI9KDAsbS5j'@; put 'bHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMuNzMsMCwxLDEsMy43My0zLjczQTMuNzMsMy43'@; put 'MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYx'@; put 'LDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAsMCwxOCwyWk0yMy41OSwyNGwtLjM2LjUzYy0xLjcyLDIuNTgtNCw1LjQ3LTUuMjMsNi45'@; put 'LTEuMTgtMS40My0zLjUxLTQuMzItNS4yMy02LjlMMTIuNDIsMjRjLTEuNzctMi42NC00LjItNi4yNS00LjItMTAuMzFhOS43OCw5Ljc4LDAsMSwxLDE5LjU2LDBDMjcuNzgsMTcuNzksMjUuMzYsMjEuNCwyMy41OSwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMuNzMsMCwxLDEsMy43My0zLjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4x'@; put 'N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OWE3LjQ5LDcuNDksMCwwLDEtMi0uMzNjMCwuMTksMCwuMzgsMCwuNTcsMCw0LjA2LTIuNDIsNy42Ny00LjE5'@; put 'LDEwLjMxbC0uMzYuNTNjLTEuNzIsMi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMUE5Ljc3LDkuNzcsMCwwLDEsMjIuNTYsNS4wOWE3LjQ1LDcuNDUsMCwwLDEsLjUyLTJBMTEuNzUs'@; put 'MTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43'@; put 'OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAg'@; put 'ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTExLjc5LDExLjc5LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDExLjQzbC4zNS41MmE5OS42MSw5OS42MSwwLDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5'@; put 'OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1LDQuNTMtMTEuNDJBMTEuNzksMTEuNzksMCwwLDAsMTgsMlptMCwxN2E2LjU2LDYuNTYsMCwxLDEsNi41Ni02LjU2QTYuNTYsNi41NiwwLDAsMSwxOCwxOVoiLz5cbiAgICAgICAgICAgICAgICA8Y2ly'@; put 'Y2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40'@; put 'OUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzgsMTFhNi41OCw2LjU4LDAsMSwxLTEuNjEtMyw3LjQyLDcuNDIsMCwwLDEsLjMxLTQuODRBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwu'@; put 'NzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk'@; put 'Z2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIxMi40NCIgcj0iMy43MyIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9'@; put 'IjYiIHI9IjUiLz4nKSxGLkNsclNoYXBlQmljeWNsZT0oMCxtLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOC41LDI5LjY1QTYuNTEsNi41MSwwLDAsMSwyLDIzLjE1YTYuMzksNi4zOSwwLDAsMSw2LjUtNi4zNkE2LjM5LDYuMzksMCwwLDEsMTUsMjMuMTUsNi41MSw2LjUxLDAsMCwxLDguNSwy'@; put 'OS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDguNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNy41LDI5LjY1YTYuNTEsNi41MSwwLDAsMS02LjUtNi41LDYuNSw2LjUsMCwwLDEs'@; put 'MTMsMEE2LjUxLDYuNTEsMCwwLDEsMjcuNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDI3LjUsMTguNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTksMjQuNjZIOGExLDEsMCwwLDEt'@; put 'Ljg5LTEuNDVsNS0xMCwxLjc4LjlMOS42MiwyMi43M0gxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxyZWN0IHg9IjEzIiB5PSIxMi42OCIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuOTEiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC00IiAvPjxwYXRoIGQ9Ik0yOCwyNC42NmExLDEsMCwwLDEtLjk0LS42NkwyMi4yOSwxMC42NkgyMGExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLS45M2gzYS45NC45NCwwLDAsMSwuOTQuNmw1LDE0YTEsMSwwLDAsMS0uNiwxLjI3QTEsMSwwLDAsMSwyOCwyNC42NloiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMywxNC42NmExLDEsMCwwLDEtLjcxLS4yOWwtMS43LTEuNzFIOGExLDEsMCwwLDEtMS0xLC45NC45NCwwLDAsMSwxLTFoM2ExLjA4LDEuMDgsMCwwLDEsLjc1LjI3bDIsMmExLDEsMCwwLDEsMCwxLjQxQTEs'@; put 'MSwwLDAsMSwxMywxNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNSwyMS45Yy0wLjItMi0xLjItMy44LTIuOS00LjlsLTIuNSw0LjlIMTV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRo'@; put 'IGQ9Ik03LjIsMjMuNGMtMC4yLTAuMy0wLjItMC43LDAtMWwzLjItNi4zYy0wLjYtMC4yLTEuMi0wLjItMS44LTAuMkM1LDE1LjksMiwxOC44LDIsMjIuNGMwLDMuNiwyLjksNi41LDYuNSw2LjVcblx0YzMsMCw1LjYtMi4xLDYuMy01SDhDNy43LDIzLjksNy4zLDIzLjcsNy4yLDIzLjR6IiBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOSwyMS45aC00YzAsMC4yLDAsMC4zLDAsMC41YzAsMC41LTAuMSwxLTAuMiwxLjVIMTlWMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjUs'@; put 'MTUuOWMtMC4zLDAtMC42LDAtMC45LDAuMWwyLjQsNi42YzAuMiwwLjUtMC4xLDEuMS0wLjYsMS4zYy0wLjEsMC0wLjIsMC4xLTAuMywwLjFjLTAuNCwwLTAuOC0wLjMtMC45LTAuN2wtMi40LTYuN1xuXHRjLTMuMiwxLjYtNC41LDUuNS0zLDguN2MxLjYsMy4yLDUuNSw0LjUsOC43LDNjMy4y'@; put 'LTEuNiw0LjUtNS41LDMtOC43QzMyLjIsMTcuMywzMCwxNS45LDI3LjUsMTUuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTI0LjcsMTYuN2MwLjYtMC4zLDEuMy0wLjUsMS45LTAuNmwtMi43LTcuNEMyMy44LDguMiwyMy40LDgsMjMsNy45'@; put 'aC0zYy0wLjYsMC0xLDAuNS0xLDEuMWMwLDAuNSwwLjQsMC45LDEsMC45XG5cdGMwLDAsMCwwLDAsMGgyLjNsMC43LDJoLTkuNmwtMS43LTEuN0MxMS41LDEwLjEsMTEuMywxMCwxMSwxMEg4Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIuNmwxLjIsMS4ybC0xLjUsM1xuXHRjMC42LDAu'@; put 'MiwxLjMsMC41LDEuOCwwLjhsMS42LTMuMmgxMEwyNC43LDE2Ljd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLEYuQ2xyU2hhcGVCb2F0PSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4xLDI3LjFDMjgsMjcsMjYuOSwyNy40LDI2LDI4LjJjLTEu'@; put 'MSwxLjEtMi45LDEuMS00LjEsMGMtMS0wLjctMi4xLTEuMS0zLjMtMS4xYy0xLjItMC4xLTIuNCwwLjMtMy4zLDEuMVxuXHRcdEMxNC43LDI4LjcsMTQsMjksMTMuMiwyOXMtMS41LTAuMy0yLjEtMC44Yy0xLTAuOC0yLjItMS4yLTMuNC0xLjJzLTIuNCwwLjQtMy40LDEuMkMzLjcsMjguNywy'@; put 'LjgsMjksMiwyOXYyXG5cdFx0YzEuMywwLjEsMi42LTAuMywzLjYtMS4yQzYuMiwyOS4zLDcuMSwyOSw3LjksMjljMC43LDAsMS41LDAuMywyLjEsMC44YzEuOCwxLjYsNC42LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOFxuXHRcdGMwLjcsMCwxLjQsMC4zLDIsMC44YzEuOSwx'@; put 'LjYsNC42LDEuNiw2LjUsMGMwLjUtMC41LDEuMy0wLjgsMi0wLjhjMC43LDAsMS40LDAuMywxLjksMC44YzAuOSwwLjcsMS45LDEuMSwzLDEuMnYtMlxuXHRcdGMtMSwwLTEuMi0wLjQtMS43LTAuOEMzMS40LDI3LjUsMzAuMywyNy4xLDI5LjEsMjcuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDIzYzAtMC42LDAuNS0xLDEuMS0xSDMybC0zLjUsMy4xaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yYzAuNy0wLjgsMC42LTIuMS0wLjItMi44XG5cdFx0QzMzLDIwLjIsMzIuNiwyMCwzMi4xLDIw'@; put 'aC0yNWMtMS43LDAtMywxLjMtMywzdjMuMmMwLjUtMC41LDEuMi0wLjgsMS45LTEuMVYyM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik04LjksMTlIMTV2LTcuOGMwLTAuNi0wLjMtMS4yLTAuOC0xLjZDMTMuMyw4LjksMTIsOS4xLDEx'@; put 'LjQsMTBsLTQuMSw1LjljLTAuNCwwLjYtMC40LDEuNC0wLjEsMi4xQzcuNSwxOC42LDguMiwxOSw4LjksMTlcblx0XHR6IE0xMy4xLDExLjJMMTMsMTdIOC45TDEzLjEsMTEuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNiwxOGMw'@; put 'LjQtMC42LDAuNC0xLjQsMC0yTDE5LjcsNS42Yy0wLjQtMC42LTEtMS0xLjctMWMtMS4xLDAtMiwwLjktMiwyVjE5aDguM0MyNSwxOSwyNS43LDE4LjYsMjYsMTh6IE0xNy45LDYuNlxuXHRcdGw2LjQsMTAuNWgtNi40VjYuNnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC00IiAvPjxwYXRoIGQ9Ik0zNCwzMWMtMS4xLTAuMS0yLjEtMC41LTMtMS4yYy0wLjUtMC41LTEuMi0wLjgtMi0wLjhjLTAuNywwLTEuNSwwLjMtMiwwLjhjLTAuOSwwLjgtMiwxLjEtMy4xLDEuMWMtMS4yLDAtMi40LTAuNC0zLjMtMS4xXG5cdGMtMS4yLTEuMS0zLTEuMS00LjEsMGMt'@; put 'MC45LDAuOC0yLjEsMS4yLTMuNCwxLjJjLTEuMiwwLTIuMy0wLjQtMy4yLTEuMmMtMC42LTAuNS0xLjMtMC44LTItMC44Yy0wLjgsMC0xLjcsMC4zLTIuMywwLjhcblx0Yy0xLDAuOC0yLjMsMS4yLTMuNSwxLjFWMjljMC44LDAsMS43LTAuMywyLjMtMC45YzEtMC44LDIuMi0xLjIsMy40LTEu'@; put 'MWMxLjIsMCwyLjQsMC40LDMuMywxLjJjMS4yLDEuMSwzLDEuMSw0LjIsMFxuXHRjMS45LTEuNiw0LjctMS42LDYuNSwwYzEuMiwxLjEsMywxLjEsNC4xLDBjMC45LTAuOCwyLjEtMS4yLDMuMy0xLjJjMS4xLDAsMi4yLDAuNCwzLDEuMkMzMi44LDI4LjcsMzMsMjksMzQsMjlMMzQsMzF6IiBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjEsMjYuMmMwLjYtMC41LDEuMi0wLjgsMS45LTFWMjNjMC0wLjYsMC40LTEuMSwxLTEuMWgyNUwyOC40LDI1aDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yXG5cdGMwLjct'@; put 'MC45LDAuNS0yLjEtMC40LTIuOEMzMi45LDIwLjEsMzIuNCwyMCwzMiwyMEg3Yy0xLjcsMC0zLDEuMy0zLDNMNC4xLDI2LjJMNC4xLDI2LjJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC45LDE4LjlIOC45Yy0xLjEsMC0yLTAuOS0yLTJj'@; put 'MC0wLjQsMC4xLTAuOCwwLjQtMS4ybDQuMS01LjhjMC42LTAuOSwxLjktMS4xLDIuOC0wLjVjMC41LDAuNCwwLjgsMSwwLjgsMS42VjE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNC4zLDE4LjlIMTZWNi40YzAtMS4xLDAuOS0yLDIt'@; put 'MmMwLjcsMCwxLjMsMC40LDEuNywxTDI2LDE1LjhjMC42LDEsMC4yLDIuMi0wLjcsMi43QzI1LDE4LjcsMjQuNiwxOC44LDI0LjMsMTguOVxuXHRMMjQuMywxOC45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxGLkNsclNoYXBlQ2FtcGVydmFuPSgwLG0u'@; put 'Y2xySWNvblNWRykoJzxwYXRoIGQ9Ik05LjUsMjRDOS41LDI0LDkuNSwyNCw5LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVjMCwwLDAsMCwwLDBDNiwyOS40LDcuNiwzMSw5LjUsMzFjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzExLjQsMjQsOS41LDI0eiBNOS41LDI5QzguNywyOSw4'@; put 'LDI4LjMsOCwyNy41UzguNywyNiw5LjUsMjZzMS41LDAuNywxLjUsMS41UzEwLjMsMjksOS41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIzLjUsMjRDMjMuNSwyNCwyMy41LDI0LDIzLjUsMjRjLTEuOSwwLTMuNSwxLjYtMy41'@; put 'LDMuNWMwLDAsMCwwLDAsMGMwLDEuOSwxLjUsMy41LDMuNSwzLjVjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzI1LjQsMjQsMjMuNSwyNHogTTIzLjUsMjljLTAuOCwwLTEuNS0wLjctMS41LTEuNXMwLjctMS41LDEuNS0xLjVzMS41LDAuNywxLjUsMS41UzI0LjMsMjksMjMuNSwyOXoi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMywyMC4xVjIwaC0wLjFsLTMuNS01LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4zVjkuN0MzMiw3LjEsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjksMC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMs'@; put 'MS4zLTMsM1xuXHRcdHYxN2gyVjExYzAtMC42LDAuNC0xLDEtMWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI0djloNy44XG5cdFx0bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwx'@; put 'aC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wzMywyMC4xeiBNMjYsMjB2LTVoMS41bDMuMSw1SDI2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3QgeD0iMTkiIHk9IjkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAsMjIgMjIsMjIgMjIsMTMgMTUsMTMgMTUsMjggMTcsMjggMTcsMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik02LDIwaDd2LTdINlYy'@; put 'MHogTTgsMTVoM3YzSDhWMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOS41LDI0QzcuNiwyNCw2LDI1LjYsNiwyNy41UzcuNiwzMSw5LjUsMzFjMCwwLDAsMCwwLDBjMS45LDAsMy41LTEuNiwzLjUtMy41YzAsMCwwLTAuMSwwLTAu'@; put 'MUMxMywyNS41LDExLjQsMjQsOS41LDI0eiJcblx0XHQgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIyMy41IiBjeT0iMjcuNSIgcj0iMy41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOS41'@; put 'LDE0LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4yVjkuN2MwLDAsMCwwLDAtMC4xQzMyLDcsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjksMC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM3YxN1xuXHRcdGgyVjExYzAtMC42LDAuNC0xLDEtMWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40'@; put 'LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI3aC0zdjloNy44XG5cdFx0bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wyOS41LDE0LjV6IiBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0zIiAvPjxyZWN0IHg9IjE5IiB5PSI5IiB3aWR0aD0iNy45IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCwyMiAyMS45LDIyIDIxLjksMTMgMTUsMTMgMTUsMjggMTYuOSwyOCAx'@; put 'Ni45LDE1IDIwLDE1IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxyZWN0IHg9IjYiIHk9IjEzIiB3aWR0aD0iNi45IiBoZWlnaHQ9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+JyksRi5DbHJTaGFwZUNhcmF2YW49KDAs'@; put 'bS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEzLjUsMjFDMTEsMjEsOSwyMyw5LDI1LjVzMiw0LjUsNC41LDQuNWMyLjUsMCw0LjUtMiw0LjUtNC41QzE4LDIzLDE2LDIxLDEzLjUsMjF6IE0xMy41LDI4Yy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVcblx0XHRzMS4xLTIuNSwyLjUtMi41czIuNSwx'@; put 'LjEsMi41LDIuNVMxNC45LDI4LDEzLjUsMjh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUtMS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywy'@; put 'LDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRcdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiwwLjksMC41bDQuMiw3LjVjMC4xLDAuMSwwLjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJoLTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRc'@; put 'dGMwLjYsMCwxLTAuNCwxLTFTMzMuNiwyNCwzMywyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxMkg3djZoOVYxMnogTTE0LDE2SDl2LTJoNVYxNnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z'@; put 'IiAvPjxwYXRoIGQ9Ik0xMy41LDMwQzExLDMwLDksMjgsOSwyNS41czItNC41LDQuNS00LjVzNC41LDIsNC41LDQuNUMxOCwyOCwxNiwzMCwxMy41LDMweiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEt'@; put 'MS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUtMS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRjLTAuNiwwLTEtMC40LTEtMVY5YzAtMC42LDAuNC0xLDEtMWgxOC44YzAuNCwwLDAuNywwLjIsMC45LDAuNWw0LjIsNy41YzAuMSww'@; put 'LjEsMC4xLDAuMywwLjEsMC41VjI0aC00VjEyaC03djhoMnYtNmgzdjEwaC0zdjJoMTNcblx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMTYsMThIN3YtNmg5VjE4eiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxGLkNsclNoYXBlRmVycnk9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDI1LjFjLTEuMiwwLTIuMywwLjQtMy4zLDEuMWMwLDAsMCwwLDAsMGMtMS4xLDEuMS0zLDEuMS00LjEsMGMtMC45LTAuOC0yLjEtMS4yLTMuMy0x'@; put 'LjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMlxuXHRcdGMtMS4yLDEuMS0zLDEuMS00LjIsMEMxMCwyNS40LDguOCwyNSw3LjYsMjVjLTEuMiwwLTIuNCwwLjQtMy40LDEuMUMzLjYsMjYuNywyLjgsMjcsMiwyN3YyYzEuMywwLjEsMi41LTAuNCwzLjQtMS4yXG5cdFx0QzYuMSwyNy4zLDYuOSwy'@; put 'Nyw3LjcsMjdjMC44LDAsMS41LDAuMywyLjEsMC44YzEuOSwxLjYsNC43LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhcblx0XHRjMS45LDEuNiw0LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4zLTAuOCwyLTAuOGMwLjcsMCwxLjUsMC4zLDIs'@; put 'MC44YzAuOSwwLjcsMiwxLjEsMy4xLDEuMnYtMS45Yy0wLjcsMC0xLjQtMC4zLTEuOS0wLjlcblx0XHRDMzEuMywyNS40LDMwLjEsMjUsMjksMjUuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjksMjMuMlYyMEgzMmwtMy41LDNo'@; put 'MC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC41LTAuNiwwLjUtMS40LDAuMi0yLjFjLTAuNC0wLjctMS0xLTEuOC0xaC00LjRcblx0XHRMMjIuNSwxMUgxN2MtMS43LDAtMywxLjMtMywzaC0yVjguMUg2djYuMWMtMS4yLDAuNC0yLDEuNS0yLDIuOHYxLjFWMjB2'@; put 'NC4zbDAuMS0wLjFDNC42LDIzLjcsNS4yLDIzLjQsNS45LDIzLjJ6IE04LDEwaDJ2NEg4VjEwelxuXHRcdCBNNiwxN2MwLTAuNiwwLjQtMSwxLTFoOXYtMmMwLTAuNiwwLjQtMSwxLTFoNWwwLjYsMUgxOHYyaDUuOGwxLjIsMi4xSDZWMTd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjguMiwyNWMtMS4yLDAtMi40LDAuNC0zLjMsMS4yYy0xLjIsMS4xLTMsMS4xLTQuMSwwYy0xLjktMS42LTQuNi0xLjYtNi41LDBjLTEuMiwxLjEtMi45LDEuMS00LjEsMFxuXHRcdGMtMC45LTAuOC0yLTEuMi0zLjItMS4yYy0xLjIsMC0yLjMs'@; put 'MC40LTMuMiwxLjJDMy40LDI2LjcsMi43LDI3LDIsMjd2MmMxLjEtMC4xLDIuMi0wLjUsMy4xLTEuMkM1LjYsMjcuMyw2LjMsMjcsNywyN1xuXHRcdGMwLjcsMCwxLjUsMC4zLDIsMC44YzEuOSwxLjYsNC43LDEuNiw2LjYsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4z'@; put 'LDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwXG5cdFx0YzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNiwwLjMsMi4xLDAuOGMwLjksMC44LDIuMiwxLjMsMy40LDEuMnYtMmMtMC44LDAtMS42LTAuMy0yLjItMC44QzMwLjcsMjUuNCwyOS41LDI1LDI4LjIsMjV6IiBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjgsMjMuMnYtMy4zaDI2LjFMMjguNCwyM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4xLTAuMmMwLjctMC45LDAuNS0yLjEtMC40LTIuOGMtMC4zLTAuMy0wLjgtMC40LTEuMi0wLjRc'@; put 'blx0XHRoLTQuMWwtNS40LTdoLTUuNWMtMS43LDAtMywxLjMtMywzaC0yVjhINnY2LjJjLTEuMiwwLjQtMi4xLDEuNS0yLjEsMi44bDAsNy4ybDAuMSwwQzQuNSwyMy43LDUuMSwyMy40LDUuOCwyMy4yeiBNMTcuOSwxNGg0LjJcblx0XHRsMS40LDJoLTUuN1YxNHogTTcuOSwxMGgydjRoLTJW'@; put 'MTB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVUcmFpbGVyPSgwLG0uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01LjgsMi42LTUuOCw1LjhzMi42LDUuOCw1LjgsNS44czUuOC0yLjYsNS44LTUuOFMxOC4yLDE5'@; put 'LjIsMTUsMTkuMnogTTE1LDI5LjJjLTIuMywwLTQuMi0xLjktNC4yLTQuMlxuXHRcdHMxLjktNC4yLDQuMi00LjJzNC4yLDEuOSw0LjIsNC4yUzE3LjMsMjkuMiwxNSwyOS4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHJlY3QgeD0iMTQiIHk9IjI0'@; put 'IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOUgydjEzLjFjMCwwLDAsMCwwLDBDMiwyNC4zLDMuNywyNiw1LjksMjZIN3YtMkg1LjljLTEsMC0xLjgtMC44LTEuOS0xLjlWMTVoMjJ2Ny4xYzAs'@; put 'MS0wLjgsMS44LTEuOSwxLjlIMjN2MmgxLjFcblx0XHRjMCwwLDAsMCwwLDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiBNMjYsMTNINHYtMmgyMlYxM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAv'@; put 'PjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgtMS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEuOUgyM3YyaDEuMVxuXHRjMCwwLDAsMCwwLDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjEx'@; put 'aDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTkuMmMtMy4yLDAtNS44LDIuNi01LjgsNS44czIuNiw1LjgsNS44LDUuOHM1LjgtMi42LDUuOC01LjhsMCwwQzIwLjgsMjEuOCwxOC4y'@; put 'LDE5LjIsMTUsMTkuMnogTTE2LDI2aC0ydi0yaDJWMjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEYuQ2xyU2hhcGVPbkhvbGlkYXk9KDAsbS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LjA4LDIuMzRjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgs'@; put 'MTQsMTYsMTRBMTcuOTEsMTcuOTEsMCwwLDAsMjMsMjkuNjZsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zLDEsMSwwLDAsMCwuMTYtLjU0VjI1LjYxYTEzLDEzLDAsMCwwLDQtOS4yN0MzNC4wOCw4LjYyLDI2LjksMi4zNCwxOC4wOCwyLjM0Wk0yOC4zNywyNC40NWExLDEsMCwwLDAtLjMy'@; put 'LjczdjUuMzRsLTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMSwxNiwxNiwwLDAsMS00Ljc2LjcyYy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMSwxMS4xLDAsMCwxLDI4LjM3LDI0LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjEsMTUuODIsMzEsMTUuNjcsMjguNSwxMy40NGEzLjI1LDMuMjUsMCwwLDAtMi4zOS0uODRsLTUuMzguMzQtMy41OS0zYS44MS44MSwwLDAsMC0uNTItLjE5SDEzLjU2YS43OC43OCwwLDAsMC0uNjkuNC43Ny43NywwLDAsMCwwLC43'@; put 'OWwxLjM2LDIuNDQtNC43MS4yOSwxLjMxLDEuNTIsMTUuMzktMWExLjY1LDEuNjUsMCwwLDEsMS4yMi40M2wyLjM2LDIuMTNhLjExLjExLDAsMCwxLDAsLjA3YzAsLjA2LS4wOS4wNS0uMS4wNkgyMS44MmwtLjM1LjM3LTUuMTksNS41M0gxNC42NGwyLjczLTUuOUg4LjU0TDcuMTMsMTQuMTYs'@; put 'Ni41MSwxM2EuOC44LDAsMCwwLTEtLjJBLjgxLjgxLDAsMCwwLDUuMiwxMy45bDIsMy45NGExLjIxLDEuMjEsMCwwLDAsMS4wOC42NWg2LjU3bC0xLjk0LDQuMThBMS4yLDEuMiwwLDAsMCwxMywyMy44M2ExLjIyLDEuMjIsMCwwLDAsMSwuNTZoMi40M2ExLjE3LDEuMTcsMCwwLDAsLjg4LS4z'@; put 'OWw1LjE4LTUuNTFoNy4xNmExLjY1LDEuNjUsMCwwLDAsMS41Mi0uOTFBMS43NCwxLjc0LDAsMCwwLDMxLjEsMTUuODJaTTE0LjkyLDExLjMxaDEuNDFsMi4wOSwxLjc3TDE2LDEzLjIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRo'@; put 'IGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTcuOTEsMTcuOTEsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zQTEsMSwwLDAsMCwzMCwzMi41VjI1Ljc3YTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwx'@; put 'OCwyLjVaTTI5Ljg0LDE4SDIxLjUxYS40Mi40MiwwLDAsMC0uMy4xM2wtNS4zLDUuNjRhLjM5LjM5LDAsMCwxLS4yOS4xM0gxMy4xOWEuNDEuNDEsMCwwLDEtLjM3LS41OGwyLjQ3LTUuMzJINy40NmEuNDIuNDIsMCwwLDEtLjM2LS4yMmwtMi43LTVINi4yNGEuNTMuNTMsMCwwLDEsLjM5LjE4'@; put 'bDEuNTYsMS42OWEuMzguMzgsMCwwLDAsLjMzLjE0bDYuMTgtLjM4LTItMy41NWgyLjg5YS40Ny40NywwLDAsMSwuMzEuMTFMMTkuNjMsMTRsNi42OS0uMzVhMi40NCwyLjQ0LDAsMCwxLDEuODEuNjNsMi40NywyLjIzQS45Mi45MiwwLDAsMSwyOS44NCwxOFoiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksRi5UcmF2ZWxTaGFwZXM9e3RydWNrOkYuQ2xyU2hhcGVUcnVjayxhaXJwbGFuZTpGLkNsclNoYXBlQWlycGxhbmUsY2FyOkYuQ2xyU2hhcGVDYXIsbWFwOkYuQ2xyU2hhcGVNYXAsY29tcGFzczpGLkNsclNoYXBlQ29tcGFzcywibWFwLW1h'@; put 'cmtlciI6Ri5DbHJTaGFwZU1hcE1hcmtlcixiaWN5Y2xlOkYuQ2xyU2hhcGVCaWN5Y2xlLGJvYXQ6Ri5DbHJTaGFwZUJvYXQsY2FtcGVydmFuOkYuQ2xyU2hhcGVDYW1wZXJ2YW4sY2FyYXZhbjpGLkNsclNoYXBlQ2FyYXZhbixmZXJyeTpGLkNsclNoYXBlRmVycnksdHJhaWxlcjpGLkNsclNo'@; put 'YXBlVHJhaWxlciwib24taG9saWRheSI6Ri5DbHJTaGFwZU9uSG9saWRheX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEYuVHJhdmVsU2hhcGVzLCJwbGFuZSIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLlRyYXZlbFNoYXBlcy5haXJwbGFuZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLlRy'@; put 'YXZlbFNoYXBlcywiYXV0byIsKDAseC5kZXNjcmlwdG9yQ29uZmlnKShGLlRyYXZlbFNoYXBlcy5jYXIpKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoRi5UcmF2ZWxTaGFwZXMpfSwiLi9w'@; put 'cm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3Jp'@; put 'cHRvci1jb25maWcudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO09iamVjdC5k'@; put 'ZWZpbmVQcm9wZXJ0eShGLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxGLmRlc2NyaXB0b3JDb25maWc9dm9pZCAwLEYuZGVzY3JpcHRvckNvbmZpZz1mdW5jdGlvbiB4KG0pe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTptfX19LCIuL3By'@; put 'b2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFn'@; put 'LWdlbmVyYXRvci50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihJZSxGLGFlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEYuY2xySWNvblNWRz12b2lkIDA7Ri5jbHJJY29uU1ZHPWZ1bmN0aW9uIE0oTyl7dmFyIFI9IiI7cmV0dXJuIE8uaW5kZXhPZigiLS1iYWRnZWQiKT4tMSYmKFIrPSJjYW4tYmFkZ2UgIiksTy5pbmRleE9mKCItLWFsZXJ0'@; put 'ZWQiKT4tMSYmKFIrPSJjYW4tYWxlcnQgIiksTy5pbmRleE9mKCJjbHItaS1zb2xpZCIpPi0xJiYoUis9Imhhcy1zb2xpZCAiKSwoUj8nPHN2ZyB2ZXJzaW9uPSIxLjEiIGNsYXNzPSInK1IrJyIgdmlld0JveD0iMCAwIDM2IDM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0'@; put 'IlxuICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGZvY3VzYWJsZT0iZmFsc2UiIHJvbGU9ImltZyI+JzonPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzNiAzNiIgcHJlc2VydmVB'@; put 'c3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPicpK08rIjwvc3ZnPiJ9fX0pfSw4MjAyNToo'@; put 'YXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPXt9O0YucihhZSksRi5kKGFlLHthcnJheUF2ZzooKT0+UkVlLGFycmF5RWFjaDooKT0+RG4sYXJyYXlGaWx0ZXI6KCk9Pl8xLGFycmF5RmxhdHRlbjooKT0+WGVlLGFycmF5TWFwOigpPT5jcyxhcnJheU1heDooKT0+SUVlLGFycmF5TWlu'@; put 'OigpPT5MRWUsYXJyYXlSZWR1Y2U6KCk9PkFsLGFycmF5U3VtOigpPT5LZWUsYXJyYXlVbmlxdWU6KCk9PnJOLGV4dGVuZEFycmF5OigpPT5uTixnZXREaWZmZXJlbmNlT2ZBcnJheXM6KCk9PmlOLGdldEludGVyc2VjdGlvbk9mQXJyYXlzOigpPT5PRWUsZ2V0VW5pb25PZkFycmF5czooKT0+'@; put 'UEVlLHBpdm90OigpPT5LYixzdHJpbmdUb0FycmF5OigpPT5vTix0bzJkQXJyYXk6KCk9PnFlZX0pO3ZhciB4PXt9O0Yucih4KSxGLmQoeCx7X2luamVjdFByb2R1Y3RJbmZvOigpPT5ydGUsaXNEZWZpbmVkOigpPT5LaSxpc0VtcHR5OigpPT5nYyxpc1JlZ0V4cDooKT0+SmVlLGlzVW5kZWZp'@; put 'bmVkOigpPT5MYSxzdHJpbmdpZnk6KCk9Pl9sfSk7dmFyIG09e307Ri5yKG0pLEYuZChtLHtlcXVhbHNJZ25vcmVDYXNlOigpPT5WRWUsaXNQZXJjZW50VmFsdWU6KCk9PmxOLHJhbmRvbVN0cmluZzooKT0+YU4sc2FuaXRpemU6KCk9PnJrLHN0cmlwVGFnczooKT0+dU4sc3Vic3RpdHV0ZToo'@; put 'KT0+Y04sdG9VcHBlckNhc2VGaXJzdDooKT0+YnV9KTt2YXIgbGU9e307Ri5yKGxlKSxGLmQobGUse0hUTUxfQ0hBUkFDVEVSUzooKT0+bHRlLGFkZENsYXNzOigpPT5waSxhZGRFdmVudDooKT0+ekVlLGNsZWFyVGV4dFNlbGVjdGlvbjooKT0+Zk4sY2xvc2VzdDooKT0+TnAsY2xvc2VzdERv'@; put 'd246KCk9PnR5LGVtcHR5OigpPT5nMixmYXN0SW5uZXJIVE1MOigpPT5nZyxmYXN0SW5uZXJUZXh0OigpPT5qcCxnZXRDYXJldFBvc2l0aW9uOigpPT5oTixnZXRDb21wdXRlZFN0eWxlOigpPT56cCxnZXRDc3NUcmFuc2Zvcm06KCk9PllFZSxnZXRGcmFtZUVsZW1lbnQ6KCk9Pm90ZSxnZXRQ'@; put 'YXJlbnQ6KCk9Pml0ZSxnZXRQYXJlbnRXaW5kb3c6KCk9PmV5LGdldFNjcm9sbExlZnQ6KCk9PmlrLGdldFNjcm9sbFRvcDooKT0+bnksZ2V0U2Nyb2xsYWJsZUVsZW1lbnQ6KCk9PnJ5LGdldFNjcm9sbGJhcldpZHRoOigpPT5MYyxnZXRTZWxlY3Rpb25FbmRQb3NpdGlvbjooKT0+Y3RlLGdl'@; put 'dFNlbGVjdGlvblRleHQ6KCk9PnV0ZSxnZXRTdHlsZTooKT0+bjcsZ2V0VHJpbW1pbmdDb250YWluZXI6KCk9PnZnLGdldFdpbmRvd1Njcm9sbExlZnQ6KCk9Pm1nLGdldFdpbmRvd1Njcm9sbFRvcDooKT0+dDcsaGFzQWNjZXNzVG9QYXJlbnRXaW5kb3c6KCk9PkJFZSxoYXNDbGFzczooKT0+'@; put 'Qm8saGFzSG9yaXpvbnRhbFNjcm9sbGJhcjooKT0+aHRlLGhhc1ZlcnRpY2FsU2Nyb2xsYmFyOigpPT5kdGUsaW5kZXg6KCk9PnN0ZSxpbm5lckhlaWdodDooKT0+amYsaW5uZXJXaWR0aDooKT0+aXksaXNDaGlsZE9mOigpPT5WcCxpc0RldGFjaGVkOigpPT5nTixpc0lucHV0OigpPT5heSxp'@; put 'c091dHNpZGVJbnB1dDooKT0+c2ssaXNWaXNpYmxlOigpPT5lNyxtYXRjaGVzQ1NTUnVsZXM6KCk9PmpFZSxvYnNlcnZlVmlzaWJpbGl0eUNoYW5nZU9uY2U6KCk9PnB0ZSxvZmZzZXQ6KCk9PktsLG91dGVySGVpZ2h0OigpPT5hbCxvdXRlcldpZHRoOigpPT53YSxvdmVybGF5Q29udGFpbnNF'@; put 'bGVtZW50OigpPT5CcCxyZW1vdmVDbGFzczooKT0+V28scmVtb3ZlRXZlbnQ6KCk9PlVFZSxyZW1vdmVUZXh0Tm9kZXM6KCk9PmROLHJlc2V0Q3NzVHJhbnNmb3JtOigpPT5zeSxzZWxlY3RFbGVtZW50SWZBbGxvd2VkOigpPT5mdGUsc2V0Q2FyZXRQb3NpdGlvbjooKT0+b3ksc2V0T3Zlcmxh'@; put 'eVBvc2l0aW9uOigpPT5va30pO3ZhciBNPXt9O0YucihNKSxGLmQoTSx7Y3Vycnk6KCk9Pm10ZSxjdXJyeVJpZ2h0OigpPT4kRWUsZGVib3VuY2U6KCk9Pm1OLGZhc3RDYWxsOigpPT5hayxpc0Z1bmN0aW9uOigpPT5SYSxwYXJ0aWFsOigpPT52TixwaXBlOigpPT5HRWUsdGhyb3R0bGU6KCk9'@; put 'Pmd0ZSx0aHJvdHRsZUFmdGVySGl0czooKT0+V0VlfSk7dmFyIE89e307Ri5yKE8pLEYuZChPLHtjbG9uZTooKT0+V3UsY3JlYXRlT2JqZWN0UHJvcExpc3RlbmVyOigpPT5fZyxkZWVwQ2xvbmU6KCk9Pnl1LGRlZXBFeHRlbmQ6KCk9Pmx5LGRlZXBPYmplY3RTaXplOigpPT51ayxkZWZpbmVH'@; put 'ZXR0ZXI6KCk9PmZoLGR1Y2tTY2hlbWE6KCk9PnI3LGV4dGVuZDooKT0+WGwsZ2V0UHJvcGVydHk6KCk9PnZ0ZSxoYXNPd25Qcm9wZXJ0eTooKT0+YmwsaW5oZXJpdDooKT0+emYsaXNPYmplY3Q6KCk9PnVzLGlzT2JqZWN0RXF1YWw6KCk9PmxrLG1peGluOigpPT5UYSxvYmplY3RFYWNoOigp'@; put 'PT5kcyxzZXRQcm9wZXJ0eTooKT0+Y2t9KTt2YXIgUj17fTtGLnIoUiksRi5kKFIse2lzQ2hyb21lOigpPT5fTixpc0Nocm9tZVdlYktpdDooKT0+eXRlLGlzRWRnZTooKT0+Q3RlLGlzRWRnZVdlYktpdDooKT0+S0VlLGlzRmlyZWZveDooKT0+ZGssaXNGaXJlZm94V2ViS2l0OigpPT53dGUs'@; put 'aXNJT1M6KCk9PmJOLGlzSXBhZE9TOigpPT55Tixpc0xpbnV4T1M6KCk9PlhFZSxpc01hY09TOigpPT5oayxpc01vYmlsZUJyb3dzZXI6KCk9Pm0yLGlzU2FmYXJpOigpPT5xRWUsaXNXaW5kb3dzT1M6KCk9PndOLHNldEJyb3dzZXJNZXRhOigpPT5fdGUsc2V0UGxhdGZvcm1NZXRhOigpPT5i'@; put 'dGV9KTt2YXIgej17fTtGLnIoeiksRi5kKHose0tFWV9DT0RFUzooKT0+Y28saXNDdHJsS2V5OigpPT5RRWUsaXNDdHJsTWV0YUtleTooKT0+TXRlLGlzRnVuY3Rpb25LZXk6KCk9PkNOLGlzS2V5OigpPT5vNyxpc1ByaW50YWJsZUNoYXI6KCk9PlN0ZX0pO3ZhciBLPXt9O0YucihLKSxGLmQo'@; put 'Syx7aXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6KCk9PmJnLGlzTGVmdENsaWNrOigpPT5mayxpc1JpZ2h0Q2xpY2s6KCk9PlVwLHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjooKT0+djJ9KTt2YXIgST17fTtGLnIoSSksRi5kKEkse19kYXRhVG9IVE1MOigpPT5ETixodG1sVG9Hcmlk'@; put 'U2V0dGluZ3M6KCk9Pkl0ZSxpbnN0YW5jZVRvSFRNTDooKT0+VE59KTt2YXIgaz17fTtGLnIoayksRi5kKGsse2lzTnVtZXJpYzooKT0+R3UsaXNOdW1lcmljTGlrZTooKT0+THRlLHJhbmdlRWFjaDooKT0+dm8scmFuZ2VFYWNoUmV2ZXJzZTooKT0+dmssdmFsdWVBY2NvcmRpbmdQZXJjZW50'@; put 'OigpPT5JTn0pO3ZhciBFPXt9O0YucihFKSxGLmQoRSx7Y2FuY2VsQW5pbWF0aW9uRnJhbWU6KCk9PmR5LGdldENvbXBhcmlzb25GdW5jdGlvbjooKT0+TnRlLGlzVG91Y2hTdXBwb3J0ZWQ6KCk9PkhOLHJlcXVlc3RBbmltYXRpb25GcmFtZTooKT0+eWt9KTt2YXIgaj17fTtGLnIoaiksRi5k'@; put 'KGose2NvdW50Rmlyc3RSb3dLZXlzOigpPT5sVixjcmVhdGVFbXB0eVNwcmVhZHNoZWV0RGF0YTooKT0+bVRlLGNyZWF0ZVNwcmVhZHNoZWV0RGF0YTooKT0+cFRlLGNyZWF0ZVNwcmVhZHNoZWV0T2JqZWN0RGF0YTooKT0+Z1RlLGRhdGFSb3dUb0NoYW5nZXNBcnJheTooKT0+YVYsaXNBcnJh'@; put 'eU9mQXJyYXlzOigpPT5wbmUsaXNBcnJheU9mT2JqZWN0czooKT0+Z25lLHNwcmVhZHNoZWV0Q29sdW1uSW5kZXg6KCk9PmZUZSxzcHJlYWRzaGVldENvbHVtbkxhYmVsOigpPT5Na30pO3ZhciBWPXt9O0YucihWKSxGLmQoVix7Q09OVEVYVE1FTlVfSVRFTVNfQUREX0NPTU1FTlQ6KCk9Pk5W'@; put 'LENPTlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVDooKT0+elYsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX0JPVFRPTTooKT0+cVYsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX0NFTlRFUjooKT0+WlYsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX0pVU1RJRlk6KCk9PldWLENP'@; put 'TlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVF9MRUZUOigpPT5VVixDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfTUlERExFOigpPT4kVixDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfUklHSFQ6KCk9PllWLENPTlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVF9UT1A6KCk9PkdWLENPTlRF'@; put 'WFRNRU5VX0lURU1TX0JPUkRFUlM6KCk9PktWLENPTlRFWFRNRU5VX0lURU1TX0JPUkRFUlNfQk9UVE9NOigpPT5RVixDT05URVhUTUVOVV9JVEVNU19CT1JERVJTX0xFRlQ6KCk9PmVCLENPTlRFWFRNRU5VX0lURU1TX0JPUkRFUlNfUklHSFQ6KCk9PkpWLENPTlRFWFRNRU5VX0lURU1TX0JP'@; put 'UkRFUlNfVE9QOigpPT5YVixDT05URVhUTUVOVV9JVEVNU19DTEVBUl9DT0xVTU46KCk9PkFWLENPTlRFWFRNRU5VX0lURU1TX0NPUFk6KCk9PlRWLENPTlRFWFRNRU5VX0lURU1TX0NPUFlfQ09MVU1OX0hFQURFUlNfT05MWTooKT0+TFYsQ09OVEVYVE1FTlVfSVRFTVNfQ09QWV9XSVRIX0NP'@; put 'TFVNTl9HUk9VUF9IRUFERVJTOigpPT5JVixDT05URVhUTUVOVV9JVEVNU19DT1BZX1dJVEhfQ09MVU1OX0hFQURFUlM6KCk9PkRWLENPTlRFWFRNRU5VX0lURU1TX0NVVDooKT0+UlYsQ09OVEVYVE1FTlVfSVRFTVNfRURJVF9DT01NRU5UOigpPT5WVixDT05URVhUTUVOVV9JVEVNU19GUkVF'@; put 'WkVfQ09MVU1OOigpPT5PVixDT05URVhUTUVOVV9JVEVNU19ISURFX0NPTFVNTjooKT0+aUIsQ09OVEVYVE1FTlVfSVRFTVNfSElERV9ST1c6KCk9PnNCLENPTlRFWFRNRU5VX0lURU1TX0lOU0VSVF9MRUZUOigpPT53VixDT05URVhUTUVOVV9JVEVNU19JTlNFUlRfUklHSFQ6KCk9PkNWLENP'@; put 'TlRFWFRNRU5VX0lURU1TX01FUkdFX0NFTExTOigpPT5GVixDT05URVhUTUVOVV9JVEVNU19ORVNURURfUk9XU19ERVRBQ0hfQ0hJTEQ6KCk9PnJCLENPTlRFWFRNRU5VX0lURU1TX05FU1RFRF9ST1dTX0lOU0VSVF9DSElMRDooKT0+bkIsQ09OVEVYVE1FTlVfSVRFTVNfTk9fSVRFTVM6KCk9'@; put 'Pl9WLENPTlRFWFRNRU5VX0lURU1TX1JFQURfT05MWTooKT0+a1YsQ09OVEVYVE1FTlVfSVRFTVNfUkVBRF9PTkxZX0NPTU1FTlQ6KCk9PmpWLENPTlRFWFRNRU5VX0lURU1TX1JFRE86KCk9PkVWLENPTlRFWFRNRU5VX0lURU1TX1JFTU9WRV9CT1JERVJTOigpPT50QixDT05URVhUTUVOVV9J'@; put 'VEVNU19SRU1PVkVfQ09MVU1OOigpPT5NVixDT05URVhUTUVOVV9JVEVNU19SRU1PVkVfQ09NTUVOVDooKT0+QlYsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX1JPVzooKT0+U1YsQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0FCT1ZFOigpPT5iVixDT05URVhUTUVOVV9JVEVNU19ST1dfQkVMT1c6'@; put 'KCk9PnlWLENPTlRFWFRNRU5VX0lURU1TX1NIT1dfQ09MVU1OOigpPT5vQixDT05URVhUTUVOVV9JVEVNU19TSE9XX1JPVzooKT0+YUIsQ09OVEVYVE1FTlVfSVRFTVNfVU5ETzooKT0+eFYsQ09OVEVYVE1FTlVfSVRFTVNfVU5GUkVFWkVfQ09MVU1OOigpPT5QVixDT05URVhUTUVOVV9JVEVN'@; put 'U19VTk1FUkdFX0NFTExTOigpPT5IVixDT05URVhUX01FTlVfSVRFTVNfTkFNRVNQQUNFOigpPT5FbmUsRklMVEVSU19CVVRUT05TX0NBTkNFTDooKT0+UkIsRklMVEVSU19CVVRUT05TX0NMRUFSOigpPT5JQixGSUxURVJTX0JVVFRPTlNfT0s6KCk9PkxCLEZJTFRFUlNfQlVUVE9OU19QTEFD'@; put 'RUhPTERFUl9TRUFSQ0g6KCk9Pk9CLEZJTFRFUlNfQlVUVE9OU19QTEFDRUhPTERFUl9TRUNPTkRfVkFMVUU6KCk9PkZCLEZJTFRFUlNfQlVUVE9OU19QTEFDRUhPTERFUl9WQUxVRTooKT0+UEIsRklMVEVSU19CVVRUT05TX1NFTEVDVF9BTEw6KCk9PkRCLEZJTFRFUlNfQ09ORElUSU9OU19B'@; put 'RlRFUjooKT0+Q0IsRklMVEVSU19DT05ESVRJT05TX0JFRk9SRTooKT0+U0IsRklMVEVSU19DT05ESVRJT05TX0JFR0lOU19XSVRIOigpPT5oQixGSUxURVJTX0NPTkRJVElPTlNfQkVUV0VFTjooKT0+eUIsRklMVEVSU19DT05ESVRJT05TX0JZX1ZBTFVFOigpPT5qVGUsRklMVEVSU19DT05E'@; put 'SVRJT05TX0NPTlRBSU5TOigpPT5wQixGSUxURVJTX0NPTkRJVElPTlNfRU1QVFk6KCk9PmxCLEZJTFRFUlNfQ09ORElUSU9OU19FTkRTX1dJVEg6KCk9PmZCLEZJTFRFUlNfQ09ORElUSU9OU19FUVVBTDooKT0+dUIsRklMVEVSU19DT05ESVRJT05TX0dSRUFURVJfVEhBTjooKT0+bUIsRklM'@; put 'VEVSU19DT05ESVRJT05TX0dSRUFURVJfVEhBTl9PUl9FUVVBTDooKT0+dkIsRklMVEVSU19DT05ESVRJT05TX0xFU1NfVEhBTjooKT0+X0IsRklMVEVSU19DT05ESVRJT05TX0xFU1NfVEhBTl9PUl9FUVVBTDooKT0+YkIsRklMVEVSU19DT05ESVRJT05TX05BTUVTUEFDRTooKT0+eWwsRklM'@; put 'VEVSU19DT05ESVRJT05TX05PTkU6KCk9PkxrLEZJTFRFUlNfQ09ORElUSU9OU19OT1RfQkVUV0VFTjooKT0+d0IsRklMVEVSU19DT05ESVRJT05TX05PVF9DT05UQUlOOigpPT5nQixGSUxURVJTX0NPTkRJVElPTlNfTk9UX0VNUFRZOigpPT5jQixGSUxURVJTX0NPTkRJVElPTlNfTk9UX0VR'@; put 'VUFMOigpPT5kQixGSUxURVJTX0NPTkRJVElPTlNfVE9EQVk6KCk9Pk1CLEZJTFRFUlNfQ09ORElUSU9OU19UT01PUlJPVzooKT0+eEIsRklMVEVSU19DT05ESVRJT05TX1lFU1RFUkRBWTooKT0+RUIsRklMVEVSU19ESVZTX0ZJTFRFUl9CWV9DT05ESVRJT046KCk9PmtCLEZJTFRFUlNfRElW'@; put 'U19GSUxURVJfQllfVkFMVUU6KCk9PkFCLEZJTFRFUlNfTEFCRUxTX0NPTkpVTkNUSU9OOigpPT5UQixGSUxURVJTX0xBQkVMU19ESVNKVU5DVElPTjooKT0+UmssRklMVEVSU19OQU1FU1BBQ0U6KCk9PiR1LEZJTFRFUlNfVkFMVUVTX0JMQU5LX0NFTExTOigpPT5Pa30pO3ZhciBCPXt9O2Z1'@; put 'bmN0aW9uIFkoYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGN9ZnVuY3Rpb24gWChjKXtjb25zdCBhPWMoZD0+e0Vycm9yLmNhbGwoZCksZC5zdGFjaz0obmV3IEVycm9yKS5zdGFja30pO3JldHVybiBhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksYS5wcm90'@; put 'b3R5cGUuY29uc3RydWN0b3I9YSxhfUYucihCKSxGLmQoQix7Z2V0Tm9ybWFsaXplZERhdGU6KCk9PmRyZX0pO2NvbnN0IFU9WChjPT5mdW5jdGlvbihhKXtjKHRoaXMpLHRoaXMubWVzc2FnZT1hP2Ake2EubGVuZ3RofSBlcnJvcnMgb2NjdXJyZWQgZHVyaW5nIHVuc3Vic2NyaXB0aW9uOlxu'@; put 'JHthLm1hcCgoZCxoKT0+YCR7aCsxfSkgJHtkLnRvU3RyaW5nKCl9YCkuam9pbigiXG4gICIpfWA6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1hfSk7ZnVuY3Rpb24gcShjLGwpe2lmKGMpe2NvbnN0IGE9Yy5pbmRleE9mKGwpOzA8PWEmJmMuc3BsaWNl'@; put 'KGEsMSl9fWNsYXNzIGVle2NvbnN0cnVjdG9yKGwpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWwsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXVuc3Vic2NyaWJlKCl7bGV0IGw7aWYoIXRoaXMuY2xvc2VkKXt0aGlzLmNsb3NlZD0hMDtj'@; put 'b25zdHtfcGFyZW50YWdlOmF9PXRoaXM7aWYoYSlpZih0aGlzLl9wYXJlbnRhZ2U9bnVsbCxBcnJheS5pc0FycmF5KGEpKWZvcihjb25zdCBmIG9mIGEpZi5yZW1vdmUodGhpcyk7ZWxzZSBhLnJlbW92ZSh0aGlzKTtjb25zdHtpbml0aWFsVGVhcmRvd246ZH09dGhpcztpZihZKGQpKXRyeXtk'@; put 'KCl9Y2F0Y2goZil7bD1mIGluc3RhbmNlb2YgVT9mLmVycm9yczpbZl19Y29uc3R7X2ZpbmFsaXplcnM6aH09dGhpcztpZihoKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7Zm9yKGNvbnN0IGYgb2YgaCl0cnl7c2UoZil9Y2F0Y2goXyl7bD1sPz9bXSxfIGluc3RhbmNlb2YgVT9sPVsuLi5sLC4u'@; put 'Ll8uZXJyb3JzXTpsLnB1c2goXyl9fWlmKGwpdGhyb3cgbmV3IFUobCl9fWFkZChsKXt2YXIgYTtpZihsJiZsIT09dGhpcylpZih0aGlzLmNsb3NlZClzZShsKTtlbHNle2lmKGwgaW5zdGFuY2VvZiBlZSl7aWYobC5jbG9zZWR8fGwuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47bC5fYWRkUGFy'@; put 'ZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPW51bGwhPT0oYT10aGlzLl9maW5hbGl6ZXJzKSYmdm9pZCAwIT09YT9hOltdKS5wdXNoKGwpfX1faGFzUGFyZW50KGwpe2NvbnN0e19wYXJlbnRhZ2U6YX09dGhpcztyZXR1cm4gYT09PWx8fEFycmF5LmlzQXJyYXkoYSkmJmEuaW5jbHVkZXMo'@; put 'bCl9X2FkZFBhcmVudChsKXtjb25zdHtfcGFyZW50YWdlOmF9PXRoaXM7dGhpcy5fcGFyZW50YWdlPUFycmF5LmlzQXJyYXkoYSk/KGEucHVzaChsKSxhKTphP1thLGxdOmx9X3JlbW92ZVBhcmVudChsKXtjb25zdHtfcGFyZW50YWdlOmF9PXRoaXM7YT09PWw/dGhpcy5fcGFyZW50YWdlPW51'@; put 'bGw6QXJyYXkuaXNBcnJheShhKSYmcShhLGwpfXJlbW92ZShsKXtjb25zdHtfZmluYWxpemVyczphfT10aGlzO2EmJnEoYSxsKSxsIGluc3RhbmNlb2YgZWUmJmwuX3JlbW92ZVBhcmVudCh0aGlzKX19ZWUuRU1QVFk9KCgpPT57Y29uc3QgYz1uZXcgZWU7cmV0dXJuIGMuY2xvc2VkPSEwLGN9'@; put 'KSgpO2NvbnN0IHRlPWVlLkVNUFRZO2Z1bmN0aW9uIG9lKGMpe3JldHVybiBjIGluc3RhbmNlb2YgZWV8fGMmJiJjbG9zZWQiaW4gYyYmWShjLnJlbW92ZSkmJlkoYy5hZGQpJiZZKGMudW5zdWJzY3JpYmUpfWZ1bmN0aW9uIHNlKGMpe1koYyk/YygpOmMudW5zdWJzY3JpYmUoKX1jb25zdCBo'@; put 'ZT17b25VbmhhbmRsZWRFcnJvcjpudWxsLG9uU3RvcHBlZE5vdGlmaWNhdGlvbjpudWxsLFByb21pc2U6dm9pZCAwLHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6ITEsdXNlRGVwcmVjYXRlZE5leHRDb250ZXh0OiExfSx1ZT17c2V0VGltZW91dChjLGwsLi4uYSl7Y29u'@; put 'c3R7ZGVsZWdhdGU6ZH09dWU7cmV0dXJuIGQ/LnNldFRpbWVvdXQ/ZC5zZXRUaW1lb3V0KGMsbCwuLi5hKTpzZXRUaW1lb3V0KGMsbCwuLi5hKX0sY2xlYXJUaW1lb3V0KGMpe2NvbnN0e2RlbGVnYXRlOmx9PXVlO3JldHVybihsPy5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkoYyl9LGRl'@; put 'bGVnYXRlOnZvaWQgMH07ZnVuY3Rpb24gY2UoYyl7dWUuc2V0VGltZW91dCgoKT0+e2NvbnN0e29uVW5oYW5kbGVkRXJyb3I6bH09aGU7aWYoIWwpdGhyb3cgYztsKGMpfSl9ZnVuY3Rpb24gRygpe31jb25zdCBiPU4oIkMiLHZvaWQgMCx2b2lkIDApO2Z1bmN0aW9uIE4oYyxsLGEpe3JldHVy'@; put 'bntraW5kOmMsdmFsdWU6bCxlcnJvcjphfX1sZXQgZz1udWxsO2Z1bmN0aW9uIEMoYyl7aWYoaGUudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7Y29uc3QgbD0hZztpZihsJiYoZz17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLGMoKSxsKXtjb25zdHtlcnJvclRo'@; put 'cm93bjphLGVycm9yOmR9PWc7aWYoZz1udWxsLGEpdGhyb3cgZH19ZWxzZSBjKCl9Y2xhc3MgdiBleHRlbmRzIGVle2NvbnN0cnVjdG9yKGwpe3N1cGVyKCksdGhpcy5pc1N0b3BwZWQ9ITEsbD8odGhpcy5kZXN0aW5hdGlvbj1sLG9lKGwpJiZsLmFkZCh0aGlzKSk6dGhpcy5kZXN0aW5hdGlv'@; put 'bj1MZX1zdGF0aWMgY3JlYXRlKGwsYSxkKXtyZXR1cm4gbmV3IG5lKGwsYSxkKX1uZXh0KGwpe3RoaXMuaXNTdG9wcGVkP3hlKGZ1bmN0aW9uIEgoYyl7cmV0dXJuIE4oIk4iLGMsdm9pZCAwKX0obCksdGhpcyk6dGhpcy5fbmV4dChsKX1lcnJvcihsKXt0aGlzLmlzU3RvcHBlZD94ZShmdW5j'@; put 'dGlvbiBEKGMpe3JldHVybiBOKCJFIix2b2lkIDAsYyl9KGwpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihsKSl9Y29tcGxldGUoKXt0aGlzLmlzU3RvcHBlZD94ZShiLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX11bnN1YnNjcmliZSgp'@; put 'e3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsc3VwZXIudW5zdWJzY3JpYmUoKSx0aGlzLmRlc3RpbmF0aW9uPW51bGwpfV9uZXh0KGwpe3RoaXMuZGVzdGluYXRpb24ubmV4dChsKX1fZXJyb3IobCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3IobCl9ZmluYWxseXt0aGlzLnVu'@; put 'c3Vic2NyaWJlKCl9fV9jb21wbGV0ZSgpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fX1jb25zdCBwPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2Z1bmN0aW9uIHcoYyxsKXtyZXR1cm4gcC5jYWxsKGMsbCl9Y2xhc3MgSntjb25z'@; put 'dHJ1Y3RvcihsKXt0aGlzLnBhcnRpYWxPYnNlcnZlcj1sfW5leHQobCl7Y29uc3R7cGFydGlhbE9ic2VydmVyOmF9PXRoaXM7aWYoYS5uZXh0KXRyeXthLm5leHQobCl9Y2F0Y2goZCl7ZGUoZCl9fWVycm9yKGwpe2NvbnN0e3BhcnRpYWxPYnNlcnZlcjphfT10aGlzO2lmKGEuZXJyb3IpdHJ5'@; put 'e2EuZXJyb3IobCl9Y2F0Y2goZCl7ZGUoZCl9ZWxzZSBkZShsKX1jb21wbGV0ZSgpe2NvbnN0e3BhcnRpYWxPYnNlcnZlcjpsfT10aGlzO2lmKGwuY29tcGxldGUpdHJ5e2wuY29tcGxldGUoKX1jYXRjaChhKXtkZShhKX19fWNsYXNzIG5lIGV4dGVuZHMgdntjb25zdHJ1Y3RvcihsLGEsZCl7'@; put 'bGV0IGg7aWYoc3VwZXIoKSxZKGwpfHwhbCloPXtuZXh0Omw/P3ZvaWQgMCxlcnJvcjphPz92b2lkIDAsY29tcGxldGU6ZD8/dm9pZCAwfTtlbHNle2xldCBmO3RoaXMmJmhlLnVzZURlcHJlY2F0ZWROZXh0Q29udGV4dD8oZj1PYmplY3QuY3JlYXRlKGwpLGYudW5zdWJzY3JpYmU9KCk9PnRo'@; put 'aXMudW5zdWJzY3JpYmUoKSxoPXtuZXh0OmwubmV4dCYmdyhsLm5leHQsZiksZXJyb3I6bC5lcnJvciYmdyhsLmVycm9yLGYpLGNvbXBsZXRlOmwuY29tcGxldGUmJncobC5jb21wbGV0ZSxmKX0pOmg9bH10aGlzLmRlc3RpbmF0aW9uPW5ldyBKKGgpfX1mdW5jdGlvbiBkZShjKXtoZS51c2VE'@; put 'ZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP2Z1bmN0aW9uIFMoYyl7aGUudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmZyYmKGcuZXJyb3JUaHJvd249ITAsZy5lcnJvcj1jKX0oYyk6Y2UoYyl9ZnVuY3Rpb24geGUoYyxsKXtjb25zdHtvblN0b3BwZWRO'@; put 'b3RpZmljYXRpb246YX09aGU7YSYmdWUuc2V0VGltZW91dCgoKT0+YShjLGwpKX1jb25zdCBMZT17Y2xvc2VkOiEwLG5leHQ6RyxlcnJvcjpmdW5jdGlvbiBmZShjKXt0aHJvdyBjfSxjb21wbGV0ZTpHfSxGZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8'@; put 'IkBAb2JzZXJ2YWJsZSI7ZnVuY3Rpb24gT2UoYyl7cmV0dXJuIGN9ZnVuY3Rpb24gV2UoYyl7cmV0dXJuIDA9PT1jLmxlbmd0aD9PZToxPT09Yy5sZW5ndGg/Y1swXTpmdW5jdGlvbihhKXtyZXR1cm4gYy5yZWR1Y2UoKGQsaCk9PmgoZCksYSl9fWxldCBLZT0oKCk9PntjbGFzcyBje2NvbnN0'@; put 'cnVjdG9yKGEpe2EmJih0aGlzLl9zdWJzY3JpYmU9YSl9bGlmdChhKXtjb25zdCBkPW5ldyBjO3JldHVybiBkLnNvdXJjZT10aGlzLGQub3BlcmF0b3I9YSxkfXN1YnNjcmliZShhLGQsaCl7Y29uc3QgZj1mdW5jdGlvbiBsdChjKXtyZXR1cm4gYyYmYyBpbnN0YW5jZW9mIHZ8fGZ1bmN0aW9u'@; put 'IFFlKGMpe3JldHVybiBjJiZZKGMubmV4dCkmJlkoYy5lcnJvcikmJlkoYy5jb21wbGV0ZSl9KGMpJiZvZShjKX0oYSk/YTpuZXcgbmUoYSxkLGgpO3JldHVybiBDKCgpPT57Y29uc3R7b3BlcmF0b3I6Xyxzb3VyY2U6VH09dGhpcztmLmFkZChfP18uY2FsbChmLFQpOlQ/dGhpcy5fc3Vic2Ny'@; put 'aWJlKGYpOnRoaXMuX3RyeVN1YnNjcmliZShmKSl9KSxmfV90cnlTdWJzY3JpYmUoYSl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUoYSl9Y2F0Y2goZCl7YS5lcnJvcihkKX19Zm9yRWFjaChhLGQpe3JldHVybiBuZXcoZD1ZZShkKSkoKGgsZik9Pntjb25zdCBfPW5ldyBuZSh7bmV4dDpU'@; put 'PT57dHJ5e2EoVCl9Y2F0Y2goVyl7ZihXKSxfLnVuc3Vic2NyaWJlKCl9fSxlcnJvcjpmLGNvbXBsZXRlOmh9KTt0aGlzLnN1YnNjcmliZShfKX0pfV9zdWJzY3JpYmUoYSl7dmFyIGQ7cmV0dXJuIG51bGw9PT0oZD10aGlzLnNvdXJjZSl8fHZvaWQgMD09PWQ/dm9pZCAwOmQuc3Vic2NyaWJl'@; put 'KGEpfVtGZV0oKXtyZXR1cm4gdGhpc31waXBlKC4uLmEpe3JldHVybiBXZShhKSh0aGlzKX10b1Byb21pc2UoYSl7cmV0dXJuIG5ldyhhPVllKGEpKSgoZCxoKT0+e2xldCBmO3RoaXMuc3Vic2NyaWJlKF89PmY9XyxfPT5oKF8pLCgpPT5kKGYpKX0pfX1yZXR1cm4gYy5jcmVhdGU9bD0+bmV3'@; put 'IGMobCksY30pKCk7ZnVuY3Rpb24gWWUoYyl7dmFyIGw7cmV0dXJuIG51bGwhPT0obD1jPz9oZS5Qcm9taXNlKSYmdm9pZCAwIT09bD9sOlByb21pc2V9Y29uc3QgUGU9WChjPT5mdW5jdGlvbigpe2ModGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNz'@; put 'YWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0pO2xldCBiZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgS2V7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuY2xvc2VkPSExLHRoaXMuY3VycmVudE9ic2VydmVycz1udWxsLHRoaXMub2JzZXJ2ZXJzPVtdLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMu'@; put 'aGFzRXJyb3I9ITEsdGhpcy50aHJvd25FcnJvcj1udWxsfWxpZnQoYSl7Y29uc3QgZD1uZXcgQWUodGhpcyx0aGlzKTtyZXR1cm4gZC5vcGVyYXRvcj1hLGR9X3Rocm93SWZDbG9zZWQoKXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgUGV9bmV4dChhKXtDKCgpPT57aWYodGhpcy5fdGhyb3dJ'@; put 'ZkNsb3NlZCgpLCF0aGlzLmlzU3RvcHBlZCl7dGhpcy5jdXJyZW50T2JzZXJ2ZXJzfHwodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPUFycmF5LmZyb20odGhpcy5vYnNlcnZlcnMpKTtmb3IoY29uc3QgZCBvZiB0aGlzLmN1cnJlbnRPYnNlcnZlcnMpZC5uZXh0KGEpfX0pfWVycm9yKGEpe0MoKCk9'@; put 'PntpZih0aGlzLl90aHJvd0lmQ2xvc2VkKCksIXRoaXMuaXNTdG9wcGVkKXt0aGlzLmhhc0Vycm9yPXRoaXMuaXNTdG9wcGVkPSEwLHRoaXMudGhyb3duRXJyb3I9YTtjb25zdHtvYnNlcnZlcnM6ZH09dGhpcztmb3IoO2QubGVuZ3RoOylkLnNoaWZ0KCkuZXJyb3IoYSl9fSl9Y29tcGxldGUo'@; put 'KXtDKCgpPT57aWYodGhpcy5fdGhyb3dJZkNsb3NlZCgpLCF0aGlzLmlzU3RvcHBlZCl7dGhpcy5pc1N0b3BwZWQ9ITA7Y29uc3R7b2JzZXJ2ZXJzOmF9PXRoaXM7Zm9yKDthLmxlbmd0aDspYS5zaGlmdCgpLmNvbXBsZXRlKCl9fSl9dW5zdWJzY3JpYmUoKXt0aGlzLmlzU3RvcHBlZD10aGlz'@; put 'LmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbH1nZXQgb2JzZXJ2ZWQoKXt2YXIgYTtyZXR1cm4obnVsbD09PShhPXRoaXMub2JzZXJ2ZXJzKXx8dm9pZCAwPT09YT92b2lkIDA6YS5sZW5ndGgpPjB9X3RyeVN1YnNjcmliZShhKXtyZXR1cm4gdGhp'@; put 'cy5fdGhyb3dJZkNsb3NlZCgpLHN1cGVyLl90cnlTdWJzY3JpYmUoYSl9X3N1YnNjcmliZShhKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoYSksdGhpcy5faW5uZXJTdWJzY3JpYmUoYSl9X2lubmVyU3Vic2NyaWJlKGEpe2NvbnN0'@; put 'e2hhc0Vycm9yOmQsaXNTdG9wcGVkOmgsb2JzZXJ2ZXJzOmZ9PXRoaXM7cmV0dXJuIGR8fGg/dGU6KHRoaXMuY3VycmVudE9ic2VydmVycz1udWxsLGYucHVzaChhKSxuZXcgZWUoKCk9Pnt0aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCxxKGYsYSl9KSl9X2NoZWNrRmluYWxpemVkU3RhdHVz'@; put 'ZXMoYSl7Y29uc3R7aGFzRXJyb3I6ZCx0aHJvd25FcnJvcjpoLGlzU3RvcHBlZDpmfT10aGlzO2Q/YS5lcnJvcihoKTpmJiZhLmNvbXBsZXRlKCl9YXNPYnNlcnZhYmxlKCl7Y29uc3QgYT1uZXcgS2U7cmV0dXJuIGEuc291cmNlPXRoaXMsYX19cmV0dXJuIGMuY3JlYXRlPShsLGEpPT5uZXcg'@; put 'QWUobCxhKSxjfSkoKTtjbGFzcyBBZSBleHRlbmRzIGJle2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIoKSx0aGlzLmRlc3RpbmF0aW9uPWwsdGhpcy5zb3VyY2U9YX1uZXh0KGwpe3ZhciBhLGQ7bnVsbD09PShkPW51bGw9PT0oYT10aGlzLmRlc3RpbmF0aW9uKXx8dm9pZCAwPT09YT92b2lkIDA6'@; put 'YS5uZXh0KXx8dm9pZCAwPT09ZHx8ZC5jYWxsKGEsbCl9ZXJyb3IobCl7dmFyIGEsZDtudWxsPT09KGQ9bnVsbD09PShhPXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmVycm9yKXx8dm9pZCAwPT09ZHx8ZC5jYWxsKGEsbCl9Y29tcGxldGUoKXt2YXIgbCxhO251bGw9'@; put 'PT0oYT1udWxsPT09KGw9dGhpcy5kZXN0aW5hdGlvbil8fHZvaWQgMD09PWw/dm9pZCAwOmwuY29tcGxldGUpfHx2b2lkIDA9PT1hfHxhLmNhbGwobCl9X3N1YnNjcmliZShsKXt2YXIgYSxkO3JldHVybiBudWxsIT09KGQ9bnVsbD09PShhPXRoaXMuc291cmNlKXx8dm9pZCAwPT09YT92b2lk'@; put 'IDA6YS5zdWJzY3JpYmUobCkpJiZ2b2lkIDAhPT1kP2Q6dGV9fWNsYXNzIFRlIGV4dGVuZHMgYmV7Y29uc3RydWN0b3IobCl7c3VwZXIoKSx0aGlzLl92YWx1ZT1sfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9X3N1YnNjcmliZShsKXtjb25zdCBhPXN1cGVyLl9zdWJzY3Jp'@; put 'YmUobCk7cmV0dXJuIWEuY2xvc2VkJiZsLm5leHQodGhpcy5fdmFsdWUpLGF9Z2V0VmFsdWUoKXtjb25zdHtoYXNFcnJvcjpsLHRocm93bkVycm9yOmEsX3ZhbHVlOmR9PXRoaXM7aWYobCl0aHJvdyBhO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksZH1uZXh0KGwpe3N1cGVyLm5leHQo'@; put 'dGhpcy5fdmFsdWU9bCl9fWZ1bmN0aW9uIHFlKGMpe3JldHVybiBZKGM/LmxpZnQpfWZ1bmN0aW9uIFhlKGMpe3JldHVybiBsPT57aWYocWUobCkpcmV0dXJuIGwubGlmdChmdW5jdGlvbihhKXt0cnl7cmV0dXJuIGMoYSx0aGlzKX1jYXRjaChkKXt0aGlzLmVycm9yKGQpfX0pO3Rocm93IG5l'@; put 'dyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIil9fWZ1bmN0aW9uIFVlKGMsbCxhLGQsaCl7cmV0dXJuIG5ldyBodChjLGwsYSxkLGgpfWNsYXNzIGh0IGV4dGVuZHMgdntjb25zdHJ1Y3RvcihsLGEsZCxoLGYsXyl7c3VwZXIobCksdGhpcy5vbkZp'@; put 'bmFsaXplPWYsdGhpcy5zaG91bGRVbnN1YnNjcmliZT1fLHRoaXMuX25leHQ9YT9mdW5jdGlvbihUKXt0cnl7YShUKX1jYXRjaChXKXtsLmVycm9yKFcpfX06c3VwZXIuX25leHQsdGhpcy5fZXJyb3I9aD9mdW5jdGlvbihUKXt0cnl7aChUKX1jYXRjaChXKXtsLmVycm9yKFcpfWZpbmFsbHl7'@; put 'dGhpcy51bnN1YnNjcmliZSgpfX06c3VwZXIuX2Vycm9yLHRoaXMuX2NvbXBsZXRlPWQ/ZnVuY3Rpb24oKXt0cnl7ZCgpfWNhdGNoKFQpe2wuZXJyb3IoVCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTpzdXBlci5fY29tcGxldGV9dW5zdWJzY3JpYmUoKXt2YXIgbDtpZighdGhpcy5z'@; put 'aG91bGRVbnN1YnNjcmliZXx8dGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKXtjb25zdHtjbG9zZWQ6YX09dGhpcztzdXBlci51bnN1YnNjcmliZSgpLCFhJiYobnVsbD09PShsPXRoaXMub25GaW5hbGl6ZSl8fHZvaWQgMD09PWx8fGwuY2FsbCh0aGlzKSl9fX1mdW5jdGlvbiBNZShjLGwpe3Jl'@; put 'dHVybiBYZSgoYSxkKT0+e2xldCBoPTA7YS5zdWJzY3JpYmUoVWUoZCxmPT57ZC5uZXh0KGMuY2FsbChsLGYsaCsrKSl9KSl9KX1mdW5jdGlvbiBNdChjLGwsYSxkKXt2YXIgXyxoPWFyZ3VtZW50cy5sZW5ndGgsZj1oPDM/bDpudWxsPT09ZD9kPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny'@; put 'aXB0b3IobCxhKTpkO2lmKCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpZj1SZWZsZWN0LmRlY29yYXRlKGMsbCxhLGQpO2Vsc2UgZm9yKHZhciBUPWMubGVuZ3RoLTE7VD49MDtULS0pKF89Y1tUXSkmJihmPShoPDM/XyhmKTpo'@; put 'PjM/XyhsLGEsZik6XyhsLGEpKXx8Zik7cmV0dXJuIGg+MyYmZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsYSxmKSxmfWZ1bmN0aW9uIF90KGMpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgX3Q/KHRoaXMudj1jLHRoaXMpOm5ldyBfdChjKX1mdW5jdGlvbiBydChjKXtpZighU3ltYm9sLmFz'@; put 'eW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGEsbD1jW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtyZXR1cm4gbD9sLmNhbGwoYyk6KGM9ZnVuY3Rpb24gZnQoYyl7dmFyIGw9ImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLGE9bCYmY1tsXSxkPTA7aWYoYSlyZXR1cm4gYS5jYWxsKGMpO2lmKGMmJiJudW1iZXIiPT10eXBlb2YgYy5sZW5ndGgpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gYyYmZD49Yy5sZW5ndGgmJihjPXZvaWQgMCkse3ZhbHVlOmMmJmNbZCsr'@; put 'XSxkb25lOiFjfX19O3Rocm93IG5ldyBUeXBlRXJyb3IobD8iT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iOiJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIil9KGMpLGE9e30sZCgibmV4dCIpLGQoInRocm93IiksZCgicmV0dXJuIiksYVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpc30sYSk7ZnVuY3Rpb24gZChmKXthW2ZdPWNbZl0mJmZ1bmN0aW9uKF8pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihULFcpeyFmdW5jdGlvbiBoKGYsXyxULFcpe1Byb21pc2UucmVzb2x2ZShXKS50aGVuKGZ1bmN0aW9uKGllKXtmKHt2YWx1ZTppZSxk'@; put 'b25lOlR9KX0sXyl9KFQsVywoXz1jW2ZdKF8pKS5kb25lLF8udmFsdWUpfSl9fX0iZnVuY3Rpb24iPT10eXBlb2YgU3VwcHJlc3NlZEVycm9yJiZTdXBwcmVzc2VkRXJyb3I7Y29uc3QgUm49Yz0+YyYmIm51bWJlciI9PXR5cGVvZiBjLmxlbmd0aCYmImZ1bmN0aW9uIiE9dHlwZW9mIGM7ZnVu'@; put 'Y3Rpb24gJHQoYyl7cmV0dXJuIFkoYz8udGhlbil9ZnVuY3Rpb24gRm4oYyl7cmV0dXJuIFkoY1tGZV0pfWZ1bmN0aW9uIG5pKGMpe3JldHVybiBTeW1ib2wuYXN5bmNJdGVyYXRvciYmWShjPy5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKX1mdW5jdGlvbiBsbihjKXtyZXR1cm4gbmV3IFR5cGVF'@; put 'cnJvcihgWW91IHByb3ZpZGVkICR7bnVsbCE9PWMmJiJvYmplY3QiPT10eXBlb2YgYz8iYW4gaW52YWxpZCBvYmplY3QiOmAnJHtjfSdgfSB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwg'@; put 'QXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLmApfWNvbnN0IHFyPWZ1bmN0aW9uIGpuKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5pdGVyYXRvcjoiQEBpdGVyYXRvciJ9KCk7ZnVuY3Rpb24gZ2koYyl7cmV0dXJuIFko'@; put 'Yz8uW3FyXSl9ZnVuY3Rpb24geHIoYyl7cmV0dXJuIGZ1bmN0aW9uIE50KGMsbCxhKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGgsZD1hLmFwcGx5KGMsbHx8W10pLGY9W107'@; put 'cmV0dXJuIGg9e30sXygibmV4dCIpLF8oInRocm93IiksXygicmV0dXJuIiksaFtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30saDtmdW5jdGlvbiBfKEVlKXtkW0VlXSYmKGhbRWVdPWZ1bmN0aW9uKFplKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o'@; put 'aXQsZXQpe2YucHVzaChbRWUsWmUsaXQsZXRdKT4xfHxUKEVlLFplKX0pfSl9ZnVuY3Rpb24gVChFZSxaZSl7dHJ5eyFmdW5jdGlvbiBXKEVlKXtFZS52YWx1ZSBpbnN0YW5jZW9mIF90P1Byb21pc2UucmVzb2x2ZShFZS52YWx1ZS52KS50aGVuKGllLHBlKTp3ZShmWzBdWzJdLEVlKX0oZFtF'@; put 'ZV0oWmUpKX1jYXRjaChpdCl7d2UoZlswXVszXSxpdCl9fWZ1bmN0aW9uIGllKEVlKXtUKCJuZXh0IixFZSl9ZnVuY3Rpb24gcGUoRWUpe1QoInRocm93IixFZSl9ZnVuY3Rpb24gd2UoRWUsWmUpe0VlKFplKSxmLnNoaWZ0KCksZi5sZW5ndGgmJlQoZlswXVswXSxmWzBdWzFdKX19KHRoaXMs'@; put 'YXJndW1lbnRzLGZ1bmN0aW9uKigpe2NvbnN0IGE9Yy5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtjb25zdHt2YWx1ZTpkLGRvbmU6aH09eWllbGQgX3QoYS5yZWFkKCkpO2lmKGgpcmV0dXJuIHlpZWxkIF90KHZvaWQgMCk7eWllbGQgeWllbGQgX3QoZCl9fWZpbmFsbHl7YS5yZWxlYXNlTG9j'@; put 'aygpfX0pfWZ1bmN0aW9uIFVpKGMpe3JldHVybiBZKGM/LmdldFJlYWRlcil9ZnVuY3Rpb24gS3IoYyl7aWYoYyBpbnN0YW5jZW9mIEtlKXJldHVybiBjO2lmKG51bGwhPWMpe2lmKEZuKGMpKXJldHVybiBmdW5jdGlvbiBubyhjKXtyZXR1cm4gbmV3IEtlKGw9Pntjb25zdCBhPWNbRmVdKCk7'@; put 'aWYoWShhLnN1YnNjcmliZSkpcmV0dXJuIGEuc3Vic2NyaWJlKGwpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIil9KX0oYyk7aWYoUm4oYykpcmV0dXJuIGZ1bmN0aW9uIEhyKGMpe3Jl'@; put 'dHVybiBuZXcgS2UobD0+e2ZvcihsZXQgYT0wO2E8Yy5sZW5ndGgmJiFsLmNsb3NlZDthKyspbC5uZXh0KGNbYV0pO2wuY29tcGxldGUoKX0pfShjKTtpZigkdChjKSlyZXR1cm4gZnVuY3Rpb24gcWkoYyl7cmV0dXJuIG5ldyBLZShsPT57Yy50aGVuKGE9PntsLmNsb3NlZHx8KGwubmV4dChh'@; put 'KSxsLmNvbXBsZXRlKCkpfSxhPT5sLmVycm9yKGEpKS50aGVuKG51bGwsY2UpfSl9KGMpO2lmKG5pKGMpKXJldHVybiBhbyhjKTtpZihnaShjKSlyZXR1cm4gZnVuY3Rpb24gSmkoYyl7cmV0dXJuIG5ldyBLZShsPT57Zm9yKGNvbnN0IGEgb2YgYylpZihsLm5leHQoYSksbC5jbG9zZWQpcmV0'@; put 'dXJuO2wuY29tcGxldGUoKX0pfShjKTtpZihVaShjKSlyZXR1cm4gZnVuY3Rpb24gcm8oYyl7cmV0dXJuIGFvKHhyKGMpKX0oYyl9dGhyb3cgbG4oYyl9ZnVuY3Rpb24gYW8oYyl7cmV0dXJuIG5ldyBLZShsPT57KGZ1bmN0aW9uIGlvKGMsbCl7dmFyIGEsZCxoLGY7cmV0dXJuIGZ1bmN0aW9u'@; put 'IFduKGMsbCxhLGQpe3JldHVybiBuZXcoYXx8KGE9UHJvbWlzZSkpKGZ1bmN0aW9uKGYsXyl7ZnVuY3Rpb24gVChwZSl7dHJ5e2llKGQubmV4dChwZSkpfWNhdGNoKHdlKXtfKHdlKX19ZnVuY3Rpb24gVyhwZSl7dHJ5e2llKGQudGhyb3cocGUpKX1jYXRjaCh3ZSl7Xyh3ZSl9fWZ1bmN0aW9u'@; put 'IGllKHBlKXtwZS5kb25lP2YocGUudmFsdWUpOmZ1bmN0aW9uIGgoZil7cmV0dXJuIGYgaW5zdGFuY2VvZiBhP2Y6bmV3IGEoZnVuY3Rpb24oXyl7XyhmKX0pfShwZS52YWx1ZSkudGhlbihULFcpfWllKChkPWQuYXBwbHkoYyxsfHxbXSkpLm5leHQoKSl9KX0odGhpcyx2b2lkIDAsdm9pZCAw'@; put 'LGZ1bmN0aW9uKigpe3RyeXtmb3IoYT1ydChjKTshKGQ9eWllbGQgYS5uZXh0KCkpLmRvbmU7KWlmKGwubmV4dChkLnZhbHVlKSxsLmNsb3NlZClyZXR1cm59Y2F0Y2goXyl7aD17ZXJyb3I6X319ZmluYWxseXt0cnl7ZCYmIWQuZG9uZSYmKGY9YS5yZXR1cm4pJiYoeWllbGQgZi5jYWxsKGEp'@; put 'KX1maW5hbGx5e2lmKGgpdGhyb3cgaC5lcnJvcn19bC5jb21wbGV0ZSgpfSl9KShjLGwpLmNhdGNoKGE9PmwuZXJyb3IoYSkpfSl9ZnVuY3Rpb24gR2koYyxsLGEsZD0wLGg9ITEpe2NvbnN0IGY9bC5zY2hlZHVsZShmdW5jdGlvbigpe2EoKSxoP2MuYWRkKHRoaXMuc2NoZWR1bGUobnVsbCxk'@; put 'KSk6dGhpcy51bnN1YnNjcmliZSgpfSxkKTtpZihjLmFkZChmKSwhaClyZXR1cm4gZn1mdW5jdGlvbiB5cihjLGwsYT0xLzApe3JldHVybiBZKGwpP3lyKChkLGgpPT5NZSgoZixfKT0+bChkLGYsaCxfKSkoS3IoYyhkLGgpKSksYSk6KCJudW1iZXIiPT10eXBlb2YgbCYmKGE9bCksWGUoKGQs'@; put 'aCk9PmZ1bmN0aW9uIGhvKGMsbCxhLGQsaCxmLF8sVCl7Y29uc3QgVz1bXTtsZXQgaWU9MCxwZT0wLHdlPSExO2NvbnN0IEVlPSgpPT57d2UmJiFXLmxlbmd0aCYmIWllJiZsLmNvbXBsZXRlKCl9LFplPWV0PT5pZTxkP2l0KGV0KTpXLnB1c2goZXQpLGl0PWV0PT57ZiYmbC5uZXh0KGV0KSxp'@; put 'ZSsrO2xldCB5dD0hMTtLcihhKGV0LHBlKyspKS5zdWJzY3JpYmUoVWUobCxFdD0+e2g/LihFdCksZj9aZShFdCk6bC5uZXh0KEV0KX0sKCk9Pnt5dD0hMH0sdm9pZCAwLCgpPT57aWYoeXQpdHJ5e2ZvcihpZS0tO1cubGVuZ3RoJiZpZTxkOyl7Y29uc3QgRXQ9Vy5zaGlmdCgpO18/R2kobCxf'@; put 'LCgpPT5pdChFdCkpOml0KEV0KX1FZSgpfWNhdGNoKEV0KXtsLmVycm9yKEV0KX19KSl9O3JldHVybiBjLnN1YnNjcmliZShVZShsLFplLCgpPT57d2U9ITAsRWUoKX0pKSwoKT0+e1Q/LigpfX0oZCxoLGMsYSkpKX1mdW5jdGlvbiBQaShjPTEvMCl7cmV0dXJuIHlyKE9lLGMpfWNvbnN0IExv'@; put 'PW5ldyBLZShjPT5jLmNvbXBsZXRlKCkpO2Z1bmN0aW9uIFJjKGMpe3JldHVybiBjJiZZKGMuc2NoZWR1bGUpfWZ1bmN0aW9uIHVsKGMpe3JldHVybiBjW2MubGVuZ3RoLTFdfWZ1bmN0aW9uIE9jKGMpe3JldHVybiBZKHVsKGMpKT9jLnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBOMChjKXtyZXR1'@; put 'cm4gUmModWwoYykpP2MucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIGsyKGMsbD0wKXtyZXR1cm4gWGUoKGEsZCk9PnthLnN1YnNjcmliZShVZShkLGg9PkdpKGQsYywoKT0+ZC5uZXh0KGgpLGwpLCgpPT5HaShkLGMsKCk9PmQuY29tcGxldGUoKSxsKSxoPT5HaShkLGMsKCk9PmQuZXJyb3IoaCks'@; put 'bCkpKX0pfWZ1bmN0aW9uIGUwKGMsbD0wKXtyZXR1cm4gWGUoKGEsZCk9PntkLmFkZChjLnNjaGVkdWxlKCgpPT5hLnN1YnNjcmliZShkKSxsKSl9KX1mdW5jdGlvbiBBMihjLGwpe2lmKCFjKXRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IEtl'@; put 'KGE9PntHaShhLGwsKCk9Pntjb25zdCBkPWNbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7R2koYSxsLCgpPT57ZC5uZXh0KCkudGhlbihoPT57aC5kb25lP2EuY29tcGxldGUoKTphLm5leHQoaC52YWx1ZSl9KX0sMCwhMCl9KX0pfWZ1bmN0aW9uIGVhKGMsbCl7cmV0dXJuIGw/ZnVuY3Rpb24g'@; put 'UGgoYyxsKXtpZihudWxsIT1jKXtpZihGbihjKSlyZXR1cm4gZnVuY3Rpb24geHUoYyxsKXtyZXR1cm4gS3IoYykucGlwZShlMChsKSxrMihsKSl9KGMsbCk7aWYoUm4oYykpcmV0dXJuIGZ1bmN0aW9uIFBhKGMsbCl7cmV0dXJuIG5ldyBLZShhPT57bGV0IGQ9MDtyZXR1cm4gbC5zY2hlZHVs'@; put 'ZShmdW5jdGlvbigpe2Q9PT1jLmxlbmd0aD9hLmNvbXBsZXRlKCk6KGEubmV4dChjW2QrK10pLGEuY2xvc2VkfHx0aGlzLnNjaGVkdWxlKCkpfSl9KX0oYyxsKTtpZigkdChjKSlyZXR1cm4gZnVuY3Rpb24gZnMoYyxsKXtyZXR1cm4gS3IoYykucGlwZShlMChsKSxrMihsKSl9KGMsbCk7aWYo'@; put 'bmkoYykpcmV0dXJuIEEyKGMsbCk7aWYoZ2koYykpcmV0dXJuIGZ1bmN0aW9uIFNyKGMsbCl7cmV0dXJuIG5ldyBLZShhPT57bGV0IGQ7cmV0dXJuIEdpKGEsbCwoKT0+e2Q9Y1txcl0oKSxHaShhLGwsKCk9PntsZXQgaCxmO3RyeXsoe3ZhbHVlOmgsZG9uZTpmfT1kLm5leHQoKSl9Y2F0Y2go'@; put 'Xyl7cmV0dXJuIHZvaWQgYS5lcnJvcihfKX1mP2EuY29tcGxldGUoKTphLm5leHQoaCl9LDAsITApfSksKCk9PlkoZD8ucmV0dXJuKSYmZC5yZXR1cm4oKX0pfShjLGwpO2lmKFVpKGMpKXJldHVybiBmdW5jdGlvbiBhMyhjLGwpe3JldHVybiBBMih4cihjKSxsKX0oYyxsKX10aHJvdyBsbihj'@; put 'KX0oYyxsKTpLcihjKX1mdW5jdGlvbiBpcyguLi5jKXtjb25zdCBsPU4wKGMpLGE9ZnVuY3Rpb24gczMoYyxsKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHVsKGMpP2MucG9wKCk6bH0oYywxLzApLGQ9YztyZXR1cm4gZC5sZW5ndGg/MT09PWQubGVuZ3RoP0tyKGRbMF0pOlBpKGEpKGVhKGQs'@; put 'bCkpOkxvfWZ1bmN0aW9uIFdpKC4uLmMpe3JldHVybiBlYShjLE4wKGMpKX1mdW5jdGlvbiAkYShjPXt9KXtjb25zdHtjb25uZWN0b3I6bD0oKCk9Pm5ldyBiZSkscmVzZXRPbkVycm9yOmE9ITAscmVzZXRPbkNvbXBsZXRlOmQ9ITAscmVzZXRPblJlZkNvdW50WmVybzpoPSEwfT1jO3JldHVy'@; put 'biBmPT57bGV0IF8sVCxXLGllPTAscGU9ITEsd2U9ITE7Y29uc3QgRWU9KCk9PntUPy51bnN1YnNjcmliZSgpLFQ9dm9pZCAwfSxaZT0oKT0+e0VlKCksXz1XPXZvaWQgMCxwZT13ZT0hMX0saXQ9KCk9Pntjb25zdCBldD1fO1plKCksZXQ/LnVuc3Vic2NyaWJlKCl9O3JldHVybiBYZSgoZXQs'@; put 'eXQpPT57aWUrKywhd2UmJiFwZSYmRWUoKTtjb25zdCBFdD1XPVc/P2woKTt5dC5hZGQoKCk9PntpZS0tLDA9PT1pZSYmIXdlJiYhcGUmJihUPXQwKGl0LGgpKX0pLEV0LnN1YnNjcmliZSh5dCksIV8mJmllPjAmJihfPW5ldyBuZSh7bmV4dDpTdD0+RXQubmV4dChTdCksZXJyb3I6U3Q9Pnt3'@; put 'ZT0hMCxFZSgpLFQ9dDAoWmUsYSxTdCksRXQuZXJyb3IoU3QpfSxjb21wbGV0ZTooKT0+e3BlPSEwLEVlKCksVD10MChaZSxkKSxFdC5jb21wbGV0ZSgpfX0pLEtyKGV0KS5zdWJzY3JpYmUoXykpfSkoZil9fWZ1bmN0aW9uIHQwKGMsbCwuLi5hKXtpZighMD09PWwpcmV0dXJuIHZvaWQgYygp'@; put 'O2lmKCExPT09bClyZXR1cm47Y29uc3QgZD1uZXcgbmUoe25leHQ6KCk9PntkLnVuc3Vic2NyaWJlKCksYygpfX0pO3JldHVybiBLcihsKC4uLmEpKS5zdWJzY3JpYmUoZCl9ZnVuY3Rpb24gU2EoYyxsKXtyZXR1cm4gWGUoKGEsZCk9PntsZXQgaD1udWxsLGY9MCxfPSExO2NvbnN0IFQ9KCk9'@; put 'Pl8mJiFoJiZkLmNvbXBsZXRlKCk7YS5zdWJzY3JpYmUoVWUoZCxXPT57aD8udW5zdWJzY3JpYmUoKTtsZXQgaWU9MDtjb25zdCBwZT1mKys7S3IoYyhXLHBlKSkuc3Vic2NyaWJlKGg9VWUoZCx3ZT0+ZC5uZXh0KGw/bChXLHdlLHBlLGllKyspOndlKSwoKT0+e2g9bnVsbCxUKCl9KSl9LCgp'@; put 'PT57Xz0hMCxUKCl9KSl9KX1mdW5jdGlvbiBFdShjLGwpe3JldHVybiBjPT09bH1mdW5jdGlvbiBBcyhjKXtmb3IobGV0IGwgaW4gYylpZihjW2xdPT09QXMpcmV0dXJuIGw7dGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIHJlbmFtZWQgcHJvcGVydHkgb24gdGFyZ2V0IG9iamVjdC4iKX1m'@; put 'dW5jdGlvbiBuMChjLGwpe2Zvcihjb25zdCBhIGluIGwpbC5oYXNPd25Qcm9wZXJ0eShhKSYmIWMuaGFzT3duUHJvcGVydHkoYSkmJihjW2FdPWxbYV0pfWZ1bmN0aW9uIHFhKGMpe2lmKCJzdHJpbmciPT10eXBlb2YgYylyZXR1cm4gYztpZihBcnJheS5pc0FycmF5KGMpKXJldHVybiJbIitj'@; put 'Lm1hcChxYSkuam9pbigiLCAiKSsiXSI7aWYobnVsbD09YylyZXR1cm4iIitjO2lmKGMub3ZlcnJpZGRlbk5hbWUpcmV0dXJuYCR7Yy5vdmVycmlkZGVuTmFtZX1gO2lmKGMubmFtZSlyZXR1cm5gJHtjLm5hbWV9YDtjb25zdCBsPWMudG9TdHJpbmcoKTtpZihudWxsPT1sKXJldHVybiIiK2w7'@; put 'Y29uc3QgYT1sLmluZGV4T2YoIlxuIik7cmV0dXJuLTE9PT1hP2w6bC5zdWJzdHJpbmcoMCxhKX1mdW5jdGlvbiBfYyhjLGwpe3JldHVybiBudWxsPT1jfHwiIj09PWM/bnVsbD09PWw/IiI6bDpudWxsPT1sfHwiIj09PWw/YzpjKyIgIitsfWNvbnN0IEhoPUFzKHtfX2ZvcndhcmRfcmVmX186'@; put 'QXN9KTtmdW5jdGlvbiBJcyhjKXtyZXR1cm4gYy5fX2ZvcndhcmRfcmVmX189SXMsYy50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBxYSh0aGlzKCkpfSxjfWZ1bmN0aW9uIGJvKGMpe3JldHVybiByMChjKT9jKCk6Y31mdW5jdGlvbiByMChjKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'YyYmYy5oYXNPd25Qcm9wZXJ0eShIaCkmJmMuX19mb3J3YXJkX3JlZl9fPT09SXN9ZnVuY3Rpb24gVDIoYyl7cmV0dXJuIGMmJiEhYy5cdTAyNzVwcm92aWRlcnN9Y29uc3QgbDM9Imh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MiO2NsYXNzIEFyIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0'@; put 'b3IobCxhKXtzdXBlcihmdW5jdGlvbiBiYyhjLGwpe3JldHVybmBORzAke01hdGguYWJzKGMpfSR7bD8iOiAiK2w6IiJ9YH0obCxhKSksdGhpcy5jb2RlPWx9fWZ1bmN0aW9uIGtvKGMpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYz9jOm51bGw9PWM/IiI6U3RyaW5nKGMpfWZ1bmN0aW9uIFFp'@; put 'KGMsbCl7dGhyb3cgbmV3IEFyKC0yMDEsITEpfWZ1bmN0aW9uIHByKGMsbCl7bnVsbD09YyYmZnVuY3Rpb24gSG8oYyxsLGEsZCl7dGhyb3cgbmV3IEVycm9yKGBBU1NFUlRJT04gRVJST1I6ICR7Y31gKyhudWxsPT1kPyIiOmAgW0V4cGVjdGVkPT4gJHthfSAke2R9ICR7bH0gPD1BY3R1YWxd'@; put 'YCkpfShsLGMsbnVsbCwiIT0iKX1mdW5jdGlvbiBocihjKXtyZXR1cm57dG9rZW46Yy50b2tlbixwcm92aWRlZEluOmMucHJvdmlkZWRJbnx8bnVsbCxmYWN0b3J5OmMuZmFjdG9yeSx2YWx1ZTp2b2lkIDB9fWZ1bmN0aW9uIG1pKGMpe3JldHVybntwcm92aWRlcnM6Yy5wcm92aWRlcnN8fFtd'@; put 'LGltcG9ydHM6Yy5pbXBvcnRzfHxbXX19ZnVuY3Rpb24geGQoYyl7cmV0dXJuIEIwKGMsYzMpfHxCMChjLE5zKX1mdW5jdGlvbiBCMChjLGwpe3JldHVybiBjLmhhc093blByb3BlcnR5KGwpP2NbbF06bnVsbH1mdW5jdGlvbiBubShjKXtyZXR1cm4gYyYmKGMuaGFzT3duUHJvcGVydHkoamgp'@; put 'fHxjLmhhc093blByb3BlcnR5KEs3KSk/Y1tqaF06bnVsbH1jb25zdCBjMz1Bcyh7XHUwMjc1cHJvdjpBc30pLGpoPUFzKHtcdTAyNzVpbmo6QXN9KSxOcz1Bcyh7bmdJbmplY3RhYmxlRGVmOkFzfSksSzc9QXMoe25nSW5qZWN0b3JEZWY6QXN9KTt2YXIgbnM9ZnVuY3Rpb24oYyl7cmV0dXJu'@; put 'IGNbYy5EZWZhdWx0PTBdPSJEZWZhdWx0IixjW2MuSG9zdD0xXT0iSG9zdCIsY1tjLlNlbGY9Ml09IlNlbGYiLGNbYy5Ta2lwU2VsZj00XT0iU2tpcFNlbGYiLGNbYy5PcHRpb25hbD04XT0iT3B0aW9uYWwiLGN9KG5zfHx7fSk7bGV0IGg0O2Z1bmN0aW9uIGRpKGMpe2NvbnN0IGw9aDQ7cmV0'@; put 'dXJuIGg0PWMsbH1mdW5jdGlvbiBXcyhjLGwsYSl7Y29uc3QgZD14ZChjKTtyZXR1cm4gZCYmInJvb3QiPT1kLnByb3ZpZGVkSW4/dm9pZCAwPT09ZC52YWx1ZT9kLnZhbHVlPWQuZmFjdG9yeSgpOmQudmFsdWU6YSZucy5PcHRpb25hbD9udWxsOnZvaWQgMCE9PWw/bDp2b2lkIFFpKHFhKGMp'@; put 'KX1jb25zdCBPaT0oKCk9PnR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpc3x8dHlwZW9mIGdsb2JhbDwidSImJmdsb2JhbHx8dHlwZW9mIHdpbmRvdzwidSImJndpbmRvd3x8dHlwZW9mIHNlbGY8InUiJiZ0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNl'@; put 'b2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYpKCksczA9e30sazE9Il9fTkdfRElfRkxBR19fIixrdT0ibmdUZW1wVG9rZW5QYXRoIixyYz0vXG4vZ20sb209Il9fc291cmNlIjtsZXQga2Q7ZnVuY3Rpb24gQTEoYyl7Y29uc3QgbD1rZDtyZXR1cm4ga2Q9YyxsfWZ1bmN0aW9uIFg3KGMsbD1u'@; put 'cy5EZWZhdWx0KXtpZih2b2lkIDA9PT1rZCl0aHJvdyBuZXcgQXIoLTIwMywhMSk7cmV0dXJuIG51bGw9PT1rZD9XcyhjLHZvaWQgMCxsKTprZC5nZXQoYyxsJm5zLk9wdGlvbmFsP251bGw6dm9pZCAwLGwpfWZ1bmN0aW9uIGFyKGMsbD1ucy5EZWZhdWx0KXtyZXR1cm4oZnVuY3Rpb24gc3Mo'@; put 'KXtyZXR1cm4gaDR9KCl8fFg3KShibyhjKSxsKX1mdW5jdGlvbiBGaShjLGw9bnMuRGVmYXVsdCl7cmV0dXJuIGFyKGMsYTAobCkpfWZ1bmN0aW9uIGEwKGMpe3JldHVybiB0eXBlb2YgYz4idSJ8fCJudW1iZXIiPT10eXBlb2YgYz9jOjB8KGMub3B0aW9uYWwmJjgpfChjLmhvc3QmJjEpfChj'@; put 'LnNlbGYmJjIpfChjLnNraXBTZWxmJiY0KX1mdW5jdGlvbiBLYyhjKXtjb25zdCBsPVtdO2ZvcihsZXQgYT0wO2E8Yy5sZW5ndGg7YSsrKXtjb25zdCBkPWJvKGNbYV0pO2lmKEFycmF5LmlzQXJyYXkoZCkpe2lmKDA9PT1kLmxlbmd0aCl0aHJvdyBuZXcgQXIoOTAwLCExKTtsZXQgaCxmPW5z'@; put 'LkRlZmF1bHQ7Zm9yKGxldCBfPTA7XzxkLmxlbmd0aDtfKyspe2NvbnN0IFQ9ZFtfXSxXPXNtKFQpOyJudW1iZXIiPT10eXBlb2YgVz8tMT09PVc/aD1ULnRva2VuOmZ8PVc6aD1UfWwucHVzaChhcihoLGYpKX1lbHNlIGwucHVzaChhcihkKSl9cmV0dXJuIGx9ZnVuY3Rpb24gemgoYyxsKXty'@; put 'ZXR1cm4gY1trMV09bCxjLnByb3RvdHlwZVtrMV09bCxjfWZ1bmN0aW9uIHNtKGMpe3JldHVybiBjW2sxXX1mdW5jdGlvbiBkdShjKXtyZXR1cm57dG9TdHJpbmc6Y30udG9TdHJpbmcoKX12YXIgVDE9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5PblB1c2g9MF09Ik9uUHVzaCIsY1tjLkRlZmF1'@; put 'bHQ9MV09IkRlZmF1bHQiLGN9KFQxfHx7fSksUGM9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5FbXVsYXRlZD0wXT0iRW11bGF0ZWQiLGNbYy5Ob25lPTJdPSJOb25lIixjW2MuU2hhZG93RG9tPTNdPSJTaGFkb3dEb20iLGN9KFBjfHx7fSk7Y29uc3QgWGM9e30sU3M9W10sVGQ9QXMoe1x1MDI3'@; put 'NWNtcDpBc30pLFVoPUFzKHtcdTAyNzVkaXI6QXN9KSxKYz1Bcyh7XHUwMjc1cGlwZTpBc30pLEQxPUFzKHtcdTAyNzVtb2Q6QXN9KSxsMD1Bcyh7XHUwMjc1ZmFjOkFzfSksWmg9QXMoe19fTkdfRUxFTUVOVF9JRF9fOkFzfSksbWE9QXMoe19fTkdfRU5WX0lEX186QXN9KTtmdW5jdGlvbiBG'@; put 'YyhjLGwsYSl7bGV0IGQ9Yy5sZW5ndGg7Zm9yKDs7KXtjb25zdCBoPWMuaW5kZXhPZihsLGEpO2lmKC0xPT09aClyZXR1cm4gaDtpZigwPT09aHx8Yy5jaGFyQ29kZUF0KGgtMSk8PTMyKXtjb25zdCBmPWwubGVuZ3RoO2lmKGgrZj09PWR8fGMuY2hhckNvZGVBdChoK2YpPD0zMilyZXR1cm4g'@; put 'aH1hPWgrMX19ZnVuY3Rpb24gRGQoYyxsLGEpe2xldCBkPTA7Zm9yKDtkPGEubGVuZ3RoOyl7Y29uc3QgaD1hW2RdO2lmKCJudW1iZXIiPT10eXBlb2YgaCl7aWYoMCE9PWgpYnJlYWs7ZCsrO2NvbnN0IGY9YVtkKytdLF89YVtkKytdLFQ9YVtkKytdO2Muc2V0QXR0cmlidXRlKGwsXyxULGYp'@; put 'fWVsc2V7Y29uc3QgZj1oLF89YVsrK2RdO2Y0KGYpP2Muc2V0UHJvcGVydHkobCxmLF8pOmMuc2V0QXR0cmlidXRlKGwsZixfKSxkKyt9fXJldHVybiBkfWZ1bmN0aW9uIFIyKGMpe3JldHVybiAzPT09Y3x8ND09PWN8fDY9PT1jfWZ1bmN0aW9uIGY0KGMpe3JldHVybiA2ND09PWMuY2hhckNv'@; put 'ZGVBdCgwKX1mdW5jdGlvbiBZaChjLGwpe2lmKG51bGwhPT1sJiYwIT09bC5sZW5ndGgpaWYobnVsbD09PWN8fDA9PT1jLmxlbmd0aCljPWwuc2xpY2UoKTtlbHNle2xldCBhPS0xO2ZvcihsZXQgZD0wO2Q8bC5sZW5ndGg7ZCsrKXtjb25zdCBoPWxbZF07Im51bWJlciI9PXR5cGVvZiBoP2E9'@; put 'aDowPT09YXx8cDQoYyxhLGgsbnVsbCwtMT09PWF8fDI9PT1hP2xbKytkXTpudWxsKX19cmV0dXJuIGN9ZnVuY3Rpb24gcDQoYyxsLGEsZCxoKXtsZXQgZj0wLF89Yy5sZW5ndGg7aWYoLTE9PT1sKV89LTE7ZWxzZSBmb3IoO2Y8Yy5sZW5ndGg7KXtjb25zdCBUPWNbZisrXTtpZigibnVtYmVy'@; put 'Ij09dHlwZW9mIFQpe2lmKFQ9PT1sKXtfPS0xO2JyZWFrfWlmKFQ+bCl7Xz1mLTE7YnJlYWt9fX1mb3IoO2Y8Yy5sZW5ndGg7KXtjb25zdCBUPWNbZl07aWYoIm51bWJlciI9PXR5cGVvZiBUKWJyZWFrO2lmKFQ9PT1hKXtpZihudWxsPT09ZClyZXR1cm4gdm9pZChudWxsIT09aCYmKGNbZisx'@; put 'XT1oKSk7aWYoZD09PWNbZisxXSlyZXR1cm4gdm9pZChjW2YrMl09aCl9ZisrLG51bGwhPT1kJiZmKyssbnVsbCE9PWgmJmYrK30tMSE9PV8mJihjLnNwbGljZShfLDAsbCksZj1fKzEpLGMuc3BsaWNlKGYrKywwLGEpLG51bGwhPT1kJiZjLnNwbGljZShmKyssMCxkKSxudWxsIT09aCYmYy5z'@; put 'cGxpY2UoZisrLDAsaCl9Y29uc3QgZzQ9Im5nLXRlbXBsYXRlIjtmdW5jdGlvbiBKNyhjLGwsYSl7bGV0IGQ9MCxoPSEwO2Zvcig7ZDxjLmxlbmd0aDspe2xldCBmPWNbZCsrXTtpZigic3RyaW5nIj09dHlwZW9mIGYmJmgpe2NvbnN0IF89Y1tkKytdO2lmKGEmJiJjbGFzcyI9PT1mJiYtMSE9'@; put 'PUZjKF8udG9Mb3dlckNhc2UoKSxsLDApKXJldHVybiEwfWVsc2V7aWYoMT09PWYpe2Zvcig7ZDxjLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZihmPWNbZCsrXSk7KWlmKGYudG9Mb3dlckNhc2UoKT09PWwpcmV0dXJuITA7cmV0dXJuITF9Im51bWJlciI9PXR5cGVvZiBmJiYoaD0hMSl9fXJl'@; put 'dHVybiExfWZ1bmN0aW9uIHUzKGMpe3JldHVybiA0PT09Yy50eXBlJiZjLnZhbHVlIT09ZzR9ZnVuY3Rpb24gTWEoYyxsLGEpe3JldHVybiBsPT09KDQhPT1jLnR5cGV8fGE/Yy52YWx1ZTpnNCl9ZnVuY3Rpb24gYzAoYyxsLGEpe2xldCBkPTQ7Y29uc3QgaD1jLmF0dHJzfHxbXSxmPWZ1bmN0'@; put 'aW9uIFE3KGMpe2ZvcihsZXQgbD0wO2w8Yy5sZW5ndGg7bCsrKWlmKFIyKGNbbF0pKXJldHVybiBsO3JldHVybiBjLmxlbmd0aH0oaCk7bGV0IF89ITE7Zm9yKGxldCBUPTA7VDxsLmxlbmd0aDtUKyspe2NvbnN0IFc9bFtUXTtpZigibnVtYmVyIiE9dHlwZW9mIFcpe2lmKCFfKWlmKDQmZCl7'@; put 'aWYoZD0yfDEmZCwiIiE9PVcmJiFNYShjLFcsYSl8fCIiPT09VyYmMT09PWwubGVuZ3RoKXtpZihIYyhkKSlyZXR1cm4hMTtfPSEwfX1lbHNle2NvbnN0IGllPTgmZD9XOmxbKytUXTtpZig4JmQmJm51bGwhPT1jLmF0dHJzKXtpZighSjcoYy5hdHRycyxpZSxhKSl7aWYoSGMoZCkpcmV0dXJu'@; put 'ITE7Xz0hMH1jb250aW51ZX1jb25zdCB3ZT1kMyg4JmQ/ImNsYXNzIjpXLGgsdTMoYyksYSk7aWYoLTE9PT13ZSl7aWYoSGMoZCkpcmV0dXJuITE7Xz0hMDtjb250aW51ZX1pZigiIiE9PWllKXtsZXQgRWU7RWU9d2U+Zj8iIjpoW3dlKzFdLnRvTG93ZXJDYXNlKCk7Y29uc3QgWmU9OCZkP0Vl'@; put 'Om51bGw7aWYoWmUmJi0xIT09RmMoWmUsaWUsMCl8fDImZCYmaWUhPT1FZSl7aWYoSGMoZCkpcmV0dXJuITE7Xz0hMH19fX1lbHNle2lmKCFfJiYhSGMoZCkmJiFIYyhXKSlyZXR1cm4hMTtpZihfJiZIYyhXKSljb250aW51ZTtfPSExLGQ9V3wxJmR9fXJldHVybiBIYyhkKXx8X31mdW5jdGlv'@; put 'biBIYyhjKXtyZXR1cm4gMD09KDEmYyl9ZnVuY3Rpb24gZDMoYyxsLGEsZCl7aWYobnVsbD09PWwpcmV0dXJuLTE7bGV0IGg9MDtpZihkfHwhYSl7bGV0IGY9ITE7Zm9yKDtoPGwubGVuZ3RoOyl7Y29uc3QgXz1sW2hdO2lmKF89PT1jKXJldHVybiBoO2lmKDM9PT1ffHw2PT09XylmPSEwO2Vs'@; put 'c2V7aWYoMT09PV98fDI9PT1fKXtsZXQgVD1sWysraF07Zm9yKDsic3RyaW5nIj09dHlwZW9mIFQ7KVQ9bFsrK2hdO2NvbnRpbnVlfWlmKDQ9PT1fKWJyZWFrO2lmKDA9PT1fKXtoKz00O2NvbnRpbnVlfX1oKz1mPzE6Mn1yZXR1cm4tMX1yZXR1cm4gZnVuY3Rpb24gZTkoYyxsKXtsZXQgYT1j'@; put 'LmluZGV4T2YoNCk7aWYoYT4tMSlmb3IoYSsrO2E8Yy5sZW5ndGg7KXtjb25zdCBkPWNbYV07aWYoIm51bWJlciI9PXR5cGVvZiBkKXJldHVybi0xO2lmKGQ9PT1sKXJldHVybiBhO2ErK31yZXR1cm4tMX0obCxjKX1mdW5jdGlvbiBtNChjLGwsYT0hMSl7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0'@; put 'aDtkKyspaWYoYzAoYyxsW2RdLGEpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHY0KGMsbCl7ZTpmb3IobGV0IGE9MDthPGwubGVuZ3RoO2ErKyl7Y29uc3QgZD1sW2FdO2lmKGMubGVuZ3RoPT09ZC5sZW5ndGgpe2ZvcihsZXQgaD0wO2g8Yy5sZW5ndGg7aCsrKWlmKGNbaF0hPT1kW2hd'@; put 'KWNvbnRpbnVlIGU7cmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIGRsKGMsbCl7cmV0dXJuIGM/Ijpub3QoIitsLnRyaW0oKSsiKSI6bH1mdW5jdGlvbiBhbShjKXtsZXQgbD1jWzBdLGE9MSxkPTIsaD0iIixmPSExO2Zvcig7YTxjLmxlbmd0aDspe2xldCBfPWNbYV07aWYoInN0cmluZyI9'@; put 'PXR5cGVvZiBfKWlmKDImZCl7Y29uc3QgVD1jWysrYV07aCs9IlsiK18rKFQubGVuZ3RoPjA/Jz0iJytUKyciJzoiIikrIl0ifWVsc2UgOCZkP2grPSIuIitfOjQmZCYmKGgrPSIgIitfKTtlbHNlIiIhPT1oJiYhSGMoXykmJihsKz1kbChmLGgpLGg9IiIpLGQ9XyxmPWZ8fCFIYyhkKTthKyt9'@; put 'cmV0dXJuIiIhPT1oJiYobCs9ZGwoZixoKSksbH1mdW5jdGlvbiB3cihjKXtyZXR1cm4gZHUoKCk9Pntjb25zdCBsPUM0KGMpLGE9ey4uLmwsZGVjbHM6Yy5kZWNscyx2YXJzOmMudmFycyx0ZW1wbGF0ZTpjLnRlbXBsYXRlLGNvbnN0czpjLmNvbnN0c3x8bnVsbCxuZ0NvbnRlbnRTZWxlY3Rv'@; put 'cnM6Yy5uZ0NvbnRlbnRTZWxlY3RvcnMsb25QdXNoOmMuY2hhbmdlRGV0ZWN0aW9uPT09VDEuT25QdXNoLGRpcmVjdGl2ZURlZnM6bnVsbCxwaXBlRGVmczpudWxsLGRlcGVuZGVuY2llczpsLnN0YW5kYWxvbmUmJmMuZGVwZW5kZW5jaWVzfHxudWxsLGdldFN0YW5kYWxvbmVJbmplY3Rvcjpu'@; put 'dWxsLHNpZ25hbHM6Yy5zaWduYWxzPz8hMSxkYXRhOmMuZGF0YXx8e30sZW5jYXBzdWxhdGlvbjpjLmVuY2Fwc3VsYXRpb258fFBjLkVtdWxhdGVkLHN0eWxlczpjLnN0eWxlc3x8U3MsXzpudWxsLHNjaGVtYXM6Yy5zY2hlbWFzfHxudWxsLHRWaWV3Om51bGwsaWQ6IiJ9O2NtKGEpO2NvbnN0'@; put 'IGQ9Yy5kZXBlbmRlbmNpZXM7cmV0dXJuIGEuZGlyZWN0aXZlRGVmcz1mMyhkLCExKSxhLnBpcGVEZWZzPWYzKGQsITApLGEuaWQ9ZnVuY3Rpb24gcjkoYyl7bGV0IGw9MDtjb25zdCBhPVtjLnNlbGVjdG9ycyxjLm5nQ29udGVudFNlbGVjdG9ycyxjLmhvc3RWYXJzLGMuaG9zdEF0dHJzLGMu'@; put 'Y29uc3RzLGMudmFycyxjLmRlY2xzLGMuZW5jYXBzdWxhdGlvbixjLnN0YW5kYWxvbmUsYy5zaWduYWxzLGMuZXhwb3J0QXMsSlNPTi5zdHJpbmdpZnkoYy5pbnB1dHMpLEpTT04uc3RyaW5naWZ5KGMub3V0cHV0cyksT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYy50eXBlLnByb3RvdHlw'@; put 'ZSksISFjLmNvbnRlbnRRdWVyaWVzLCEhYy52aWV3UXVlcnldLmpvaW4oInwiKTtmb3IoY29uc3QgaCBvZiBhKWw9TWF0aC5pbXVsKDMxLGwpK2guY2hhckNvZGVBdCgwKTw8MDtyZXR1cm4gbCs9MjE0NzQ4MzY0OCwiYyIrbH0oYSksYX0pfWZ1bmN0aW9uIHk0KGMpe3JldHVybiBRbyhjKXx8'@; put 'S2EoYyl9ZnVuY3Rpb24gbG0oYyl7cmV0dXJuIG51bGwhPT1jfWZ1bmN0aW9uIHZpKGMpe3JldHVybiBkdSgoKT0+KHt0eXBlOmMudHlwZSxib290c3RyYXA6Yy5ib290c3RyYXB8fFNzLGRlY2xhcmF0aW9uczpjLmRlY2xhcmF0aW9uc3x8U3MsaW1wb3J0czpjLmltcG9ydHN8fFNzLGV4cG9y'@; put 'dHM6Yy5leHBvcnRzfHxTcyx0cmFuc2l0aXZlQ29tcGlsZVNjb3BlczpudWxsLHNjaGVtYXM6Yy5zY2hlbWFzfHxudWxsLGlkOmMuaWR8fG51bGx9KSl9ZnVuY3Rpb24gaDMoYyxsKXtpZihudWxsPT1jKXJldHVybiBYYztjb25zdCBhPXt9O2Zvcihjb25zdCBkIGluIGMpaWYoYy5oYXNPd25Q'@; put 'cm9wZXJ0eShkKSl7bGV0IGg9Y1tkXSxmPWg7QXJyYXkuaXNBcnJheShoKSYmKGY9aFsxXSxoPWhbMF0pLGFbaF09ZCxsJiYobFtoXT1mKX1yZXR1cm4gYX1mdW5jdGlvbiBDcihjKXtyZXR1cm4gZHUoKCk9Pntjb25zdCBsPUM0KGMpO3JldHVybiBjbShsKSxsfSl9ZnVuY3Rpb24gTmEoYyl7'@; put 'cmV0dXJue3R5cGU6Yy50eXBlLG5hbWU6Yy5uYW1lLGZhY3Rvcnk6bnVsbCxwdXJlOiExIT09Yy5wdXJlLHN0YW5kYWxvbmU6ITA9PT1jLnN0YW5kYWxvbmUsb25EZXN0cm95OmMudHlwZS5wcm90b3R5cGUubmdPbkRlc3Ryb3l8fG51bGx9fWZ1bmN0aW9uIFFvKGMpe3JldHVybiBjW1RkXXx8'@; put 'bnVsbH1mdW5jdGlvbiBLYShjKXtyZXR1cm4gY1tVaF18fG51bGx9ZnVuY3Rpb24gT2woYyl7cmV0dXJuIGNbSmNdfHxudWxsfWZ1bmN0aW9uIE5jKGMsbCl7Y29uc3QgYT1jW0QxXXx8bnVsbDtpZighYSYmITA9PT1sKXRocm93IG5ldyBFcnJvcihgVHlwZSAke3FhKGMpfSBkb2VzIG5vdCBo'@; put 'YXZlICdcdTAyNzVtb2QnIHByb3BlcnR5LmApO3JldHVybiBhfWZ1bmN0aW9uIEM0KGMpe2NvbnN0IGw9e307cmV0dXJue3R5cGU6Yy50eXBlLHByb3ZpZGVyc1Jlc29sdmVyOm51bGwsZmFjdG9yeTpudWxsLGhvc3RCaW5kaW5nczpjLmhvc3RCaW5kaW5nc3x8bnVsbCxob3N0VmFyczpjLmhv'@; put 'c3RWYXJzfHwwLGhvc3RBdHRyczpjLmhvc3RBdHRyc3x8bnVsbCxjb250ZW50UXVlcmllczpjLmNvbnRlbnRRdWVyaWVzfHxudWxsLGRlY2xhcmVkSW5wdXRzOmwsaW5wdXRUcmFuc2Zvcm1zOm51bGwsaW5wdXRDb25maWc6Yy5pbnB1dHN8fFhjLGV4cG9ydEFzOmMuZXhwb3J0QXN8fG51bGws'@; put 'c3RhbmRhbG9uZTohMD09PWMuc3RhbmRhbG9uZSxzaWduYWxzOiEwPT09Yy5zaWduYWxzLHNlbGVjdG9yczpjLnNlbGVjdG9yc3x8U3Msdmlld1F1ZXJ5OmMudmlld1F1ZXJ5fHxudWxsLGZlYXR1cmVzOmMuZmVhdHVyZXN8fG51bGwsc2V0SW5wdXQ6bnVsbCxmaW5kSG9zdERpcmVjdGl2ZURl'@; put 'ZnM6bnVsbCxob3N0RGlyZWN0aXZlczpudWxsLGlucHV0czpoMyhjLmlucHV0cyxsKSxvdXRwdXRzOmgzKGMub3V0cHV0cyl9fWZ1bmN0aW9uIGNtKGMpe2MuZmVhdHVyZXM/LmZvckVhY2gobD0+bChjKSl9ZnVuY3Rpb24gZjMoYyxsKXtpZighYylyZXR1cm4gbnVsbDtjb25zdCBhPWw/T2w6'@; put 'eTQ7cmV0dXJuKCk9PigiZnVuY3Rpb24iPT10eXBlb2YgYz9jKCk6YykubWFwKGQ9PmEoZCkpLmZpbHRlcihsbSl9Y29uc3QgSGk9MCxCaT0xLERvPTIsdWE9MyxYYT00LEkxPTUsem89NixUdT03LFZhPTgsTGQ9OSxMMT0xMCxWbz0xMSxHaD0xMixTND0xMyxQbD0xNCxKYT0xNSxPMj0xNixQ'@; put 'Mj0xNyxodT0xOCwkaD0xOSxSMT0yMCxPMT0yMSx1MD0yMixwMz0yMyxnMz0yNCxwcz0yNSxNND0xLHVtPTIsZDA9NyxIMj05LGljPTExO2Z1bmN0aW9uIFNjKGMpe3JldHVybiBBcnJheS5pc0FycmF5KGMpJiYib2JqZWN0Ij09dHlwZW9mIGNbTTRdfWZ1bmN0aW9uIG9jKGMpe3JldHVybiBB'@; put 'cnJheS5pc0FycmF5KGMpJiYhMD09PWNbTTRdfWZ1bmN0aW9uIE9kKGMpe3JldHVybiAwIT0oNCZjLmZsYWdzKX1mdW5jdGlvbiBQMShjKXtyZXR1cm4gYy5jb21wb25lbnRPZmZzZXQ+LTF9ZnVuY3Rpb24gcWgoYyl7cmV0dXJuIDE9PSgxJmMuZmxhZ3MpfWZ1bmN0aW9uIFFjKGMpe3JldHVy'@; put 'biEhYy50ZW1wbGF0ZX1mdW5jdGlvbiB4NChjKXtyZXR1cm4gMCE9KDUxMiZjW0RvXSl9ZnVuY3Rpb24gSDEoYyxsKXtyZXR1cm4gYy5oYXNPd25Qcm9wZXJ0eShsMCk/Y1tsMF06bnVsbH1sZXQgSGQ9T2kuV2Vha1JlZj8/Y2xhc3MgajB7Y29uc3RydWN0b3IobCl7dGhpcy5yZWY9bH1kZXJl'@; put 'Zigpe3JldHVybiB0aGlzLnJlZn19LG1tPTAsRHU9bnVsbCxtMz0hMTtmdW5jdGlvbiBmbChjKXtjb25zdCBsPUR1O3JldHVybiBEdT1jLGx9Y2xhc3MgdjN7Y29uc3RydWN0b3IoKXt0aGlzLmlkPW1tKyssdGhpcy5yZWY9ZnVuY3Rpb24gTjIoYyl7cmV0dXJuIG5ldyBIZChjKX0odGhpcyks'@; put 'dGhpcy5wcm9kdWNlcnM9bmV3IE1hcCx0aGlzLmNvbnN1bWVycz1uZXcgTWFwLHRoaXMudHJhY2tpbmdWZXJzaW9uPTAsdGhpcy52YWx1ZVZlcnNpb249MH1jb25zdW1lclBvbGxQcm9kdWNlcnNGb3JDaGFuZ2UoKXtmb3IoY29uc3RbbCxhXW9mIHRoaXMucHJvZHVjZXJzKXtjb25zdCBkPWEu'@; put 'cHJvZHVjZXJOb2RlLmRlcmVmKCk7aWYobnVsbCE9ZCYmYS5hdFRyYWNraW5nVmVyc2lvbj09PXRoaXMudHJhY2tpbmdWZXJzaW9uKXtpZihkLnByb2R1Y2VyUG9sbFN0YXR1cyhhLnNlZW5WYWx1ZVZlcnNpb24pKXJldHVybiEwfWVsc2UgdGhpcy5wcm9kdWNlcnMuZGVsZXRlKGwpLGQ/LmNv'@; put 'bnN1bWVycy5kZWxldGUodGhpcy5pZCl9cmV0dXJuITF9cHJvZHVjZXJNYXlIYXZlQ2hhbmdlZCgpe2NvbnN0IGw9bTM7bTM9ITA7dHJ5e2Zvcihjb25zdFthLGRdb2YgdGhpcy5jb25zdW1lcnMpe2NvbnN0IGg9ZC5jb25zdW1lck5vZGUuZGVyZWYoKTtudWxsIT1oJiZoLnRyYWNraW5nVmVy'@; put 'c2lvbj09PWQuYXRUcmFja2luZ1ZlcnNpb24/aC5vbkNvbnN1bWVyRGVwZW5kZW5jeU1heUhhdmVDaGFuZ2VkKCk6KHRoaXMuY29uc3VtZXJzLmRlbGV0ZShhKSxoPy5wcm9kdWNlcnMuZGVsZXRlKHRoaXMuaWQpKX19ZmluYWxseXttMz1sfX1wcm9kdWNlckFjY2Vzc2VkKCl7aWYobTMpdGhy'@; put 'b3cgbmV3IEVycm9yKCIiKTtpZihudWxsPT09RHUpcmV0dXJuO2xldCBsPUR1LnByb2R1Y2Vycy5nZXQodGhpcy5pZCk7dm9pZCAwPT09bD8obD17Y29uc3VtZXJOb2RlOkR1LnJlZixwcm9kdWNlck5vZGU6dGhpcy5yZWYsc2VlblZhbHVlVmVyc2lvbjp0aGlzLnZhbHVlVmVyc2lvbixhdFRy'@; put 'YWNraW5nVmVyc2lvbjpEdS50cmFja2luZ1ZlcnNpb259LER1LnByb2R1Y2Vycy5zZXQodGhpcy5pZCxsKSx0aGlzLmNvbnN1bWVycy5zZXQoRHUuaWQsbCkpOihsLnNlZW5WYWx1ZVZlcnNpb249dGhpcy52YWx1ZVZlcnNpb24sbC5hdFRyYWNraW5nVmVyc2lvbj1EdS50cmFja2luZ1ZlcnNp'@; put 'b24pfWdldCBoYXNQcm9kdWNlcnMoKXtyZXR1cm4gdGhpcy5wcm9kdWNlcnMuc2l6ZT4wfWdldCBwcm9kdWNlclVwZGF0ZXNBbGxvd2VkKCl7cmV0dXJuITEhPT1EdT8uY29uc3VtZXJBbGxvd1NpZ25hbFdyaXRlc31wcm9kdWNlclBvbGxTdGF0dXMobCl7cmV0dXJuIHRoaXMudmFsdWVWZXJz'@; put 'aW9uIT09bHx8KHRoaXMub25Qcm9kdWNlclVwZGF0ZVZhbHVlVmVyc2lvbigpLHRoaXMudmFsdWVWZXJzaW9uIT09bCl9fWxldCBMdT1udWxsO2Z1bmN0aW9uIEtoKGMpe2NvbnN0IGw9ZmwobnVsbCk7dHJ5e3JldHVybiBjKCl9ZmluYWxseXtmbChsKX19Y29uc3QgVTA9KCk9Pnt9O2NsYXNz'@; put 'IF9tIGV4dGVuZHMgdjN7Y29uc3RydWN0b3IobCxhLGQpe3N1cGVyKCksdGhpcy53YXRjaD1sLHRoaXMuc2NoZWR1bGU9YSx0aGlzLmRpcnR5PSExLHRoaXMuY2xlYW51cEZuPVUwLHRoaXMucmVnaXN0ZXJPbkNsZWFudXA9aD0+e3RoaXMuY2xlYW51cEZuPWh9LHRoaXMuY29uc3VtZXJBbGxv'@; put 'd1NpZ25hbFdyaXRlcz1kfW5vdGlmeSgpe3RoaXMuZGlydHl8fHRoaXMuc2NoZWR1bGUodGhpcyksdGhpcy5kaXJ0eT0hMH1vbkNvbnN1bWVyRGVwZW5kZW5jeU1heUhhdmVDaGFuZ2VkKCl7dGhpcy5ub3RpZnkoKX1vblByb2R1Y2VyVXBkYXRlVmFsdWVWZXJzaW9uKCl7fXJ1bigpe2lmKHRo'@; put 'aXMuZGlydHk9ITEsMCE9PXRoaXMudHJhY2tpbmdWZXJzaW9uJiYhdGhpcy5jb25zdW1lclBvbGxQcm9kdWNlcnNGb3JDaGFuZ2UoKSlyZXR1cm47Y29uc3QgbD1mbCh0aGlzKTt0aGlzLnRyYWNraW5nVmVyc2lvbisrO3RyeXt0aGlzLmNsZWFudXBGbigpLHRoaXMuY2xlYW51cEZuPVUwLHRo'@; put 'aXMud2F0Y2godGhpcy5yZWdpc3Rlck9uQ2xlYW51cCl9ZmluYWxseXtmbChsKX19Y2xlYW51cCgpe3RoaXMuY2xlYW51cEZuKCl9fWNsYXNzIG05e2NvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLnByZXZpb3VzVmFsdWU9bCx0aGlzLmN1cnJlbnRWYWx1ZT1hLHRoaXMuZmlyc3RDaGFuZ2U9ZH1p'@; put 'c0ZpcnN0Q2hhbmdlKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGFuZ2V9fWZ1bmN0aW9uIHZhKCl7cmV0dXJuIFQ0fWZ1bmN0aW9uIFQ0KGMpe3JldHVybiBjLnR5cGUucHJvdG90eXBlLm5nT25DaGFuZ2VzJiYoYy5zZXRJbnB1dD1fOSksdjl9ZnVuY3Rpb24gdjkoKXtjb25zdCBjPWJtKHRoaXMp'@; put 'LGw9Yz8uY3VycmVudDtpZihsKXtjb25zdCBhPWMucHJldmlvdXM7aWYoYT09PVhjKWMucHJldmlvdXM9bDtlbHNlIGZvcihsZXQgZCBpbiBsKWFbZF09bFtkXTtjLmN1cnJlbnQ9bnVsbCx0aGlzLm5nT25DaGFuZ2VzKGwpfX1mdW5jdGlvbiBfOShjLGwsYSxkKXtjb25zdCBoPXRoaXMuZGVj'@; put 'bGFyZWRJbnB1dHNbYV0sZj1ibShjKXx8ZnVuY3Rpb24gWjAoYyxsKXtyZXR1cm4gY1tIbF09bH0oYyx7cHJldmlvdXM6WGMsY3VycmVudDpudWxsfSksXz1mLmN1cnJlbnR8fChmLmN1cnJlbnQ9e30pLFQ9Zi5wcmV2aW91cyxXPVRbaF07X1toXT1uZXcgbTkoVyYmVy5jdXJyZW50VmFsdWUs'@; put 'bCxUPT09WGMpLGNbZF09bH12YS5uZ0luaGVyaXQ9ITA7Y29uc3QgSGw9Il9fbmdTaW1wbGVDaGFuZ2VzX18iO2Z1bmN0aW9uIGJtKGMpe3JldHVybiBjW0hsXXx8bnVsbH1jb25zdCBoMD1mdW5jdGlvbihjLGwsYSl7fTtmdW5jdGlvbiBfYShjKXtmb3IoO0FycmF5LmlzQXJyYXkoYyk7KWM9'@; put 'Y1tIaV07cmV0dXJuIGN9ZnVuY3Rpb24gWTAoYyxsKXtyZXR1cm4gX2EobFtjXSl9ZnVuY3Rpb24gTmwoYyxsKXtyZXR1cm4gX2EobFtjLmluZGV4XSl9ZnVuY3Rpb24ga2UoYyxsKXtyZXR1cm4gYy5kYXRhW2xdfWZ1bmN0aW9uICRlKGMsbCl7cmV0dXJuIGNbbF19ZnVuY3Rpb24gbXQoYyxs'@; put 'KXtjb25zdCBhPWxbY107cmV0dXJuIFNjKGEpP2E6YVtIaV19ZnVuY3Rpb24gRHIoYyxsKXtyZXR1cm4gbnVsbD09bD9udWxsOmNbbF19ZnVuY3Rpb24geW8oYyl7Y1tQMl09MH1mdW5jdGlvbiBlcyhjKXsxMDI0JmNbRG9dfHwoY1tEb118PTEwMjQsc2MoYywxKSl9ZnVuY3Rpb24genMoYyl7'@; put 'MTAyNCZjW0RvXSYmKGNbRG9dJj0tMTAyNSxzYyhjLC0xKSl9ZnVuY3Rpb24gc2MoYyxsKXtsZXQgYT1jW3VhXTtpZihudWxsPT09YSlyZXR1cm47YVtJMV0rPWw7bGV0IGQ9YTtmb3IoYT1hW3VhXTtudWxsIT09YSYmKDE9PT1sJiYxPT09ZFtJMV18fC0xPT09bCYmMD09PWRbSTFdKTspYVtJ'@; put 'MV0rPWwsZD1hLGE9YVt1YV19Y29uc3QgUG89e2xGcmFtZTpadyhudWxsKSxiaW5kaW5nc0VuYWJsZWQ6ITAsc2tpcEh5ZHJhdGlvblJvb3RUTm9kZTpudWxsfTtmdW5jdGlvbiBQdygpe3JldHVybiBQby5iaW5kaW5nc0VuYWJsZWR9ZnVuY3Rpb24gdzMoKXtyZXR1cm4gbnVsbCE9PVBvLnNr'@; put 'aXBIeWRyYXRpb25Sb290VE5vZGV9ZnVuY3Rpb24gWHIoKXtyZXR1cm4gUG8ubEZyYW1lLmxWaWV3fWZ1bmN0aW9uIFRzKCl7cmV0dXJuIFBvLmxGcmFtZS50Vmlld31mdW5jdGlvbiBCdChjKXtyZXR1cm4gUG8ubEZyYW1lLmNvbnRleHRMVmlldz1jLGNbVmFdfWZ1bmN0aW9uIGp0KGMpe3Jl'@; put 'dHVybiBQby5sRnJhbWUuY29udGV4dExWaWV3PW51bGwsY31mdW5jdGlvbiBNYygpe2xldCBjPUZ3KCk7Zm9yKDtudWxsIT09YyYmNjQ9PT1jLnR5cGU7KWM9Yy5wYXJlbnQ7cmV0dXJuIGN9ZnVuY3Rpb24gRncoKXtyZXR1cm4gUG8ubEZyYW1lLmN1cnJlbnRUTm9kZX1mdW5jdGlvbiBOMShj'@; put 'LGwpe2NvbnN0IGE9UG8ubEZyYW1lO2EuY3VycmVudFROb2RlPWMsYS5pc1BhcmVudD1sfWZ1bmN0aW9uIGI5KCl7cmV0dXJuIFBvLmxGcmFtZS5pc1BhcmVudH1mdW5jdGlvbiBDbSgpe1BvLmxGcmFtZS5pc1BhcmVudD0hMX1mdW5jdGlvbiBWYygpe2NvbnN0IGM9UG8ubEZyYW1lO2xldCBs'@; put 'PWMuYmluZGluZ1Jvb3RJbmRleDtyZXR1cm4tMT09PWwmJihsPWMuYmluZGluZ1Jvb3RJbmRleD1jLnRWaWV3LmJpbmRpbmdTdGFydEluZGV4KSxsfWZ1bmN0aW9uIE5kKCl7cmV0dXJuIFBvLmxGcmFtZS5iaW5kaW5nSW5kZXh9ZnVuY3Rpb24gQzMoKXtyZXR1cm4gUG8ubEZyYW1lLmJpbmRp'@; put 'bmdJbmRleCsrfWZ1bmN0aW9uIFYxKGMpe2NvbnN0IGw9UG8ubEZyYW1lLGE9bC5iaW5kaW5nSW5kZXg7cmV0dXJuIGwuYmluZGluZ0luZGV4PWwuYmluZGluZ0luZGV4K2MsYX1mdW5jdGlvbiBLVChjLGwpe2NvbnN0IGE9UG8ubEZyYW1lO2EuYmluZGluZ0luZGV4PWEuYmluZGluZ1Jvb3RJ'@; put 'bmRleD1jLFNtKGwpfWZ1bmN0aW9uIFNtKGMpe1BvLmxGcmFtZS5jdXJyZW50RGlyZWN0aXZlSW5kZXg9Y31mdW5jdGlvbiB3OShjKXtjb25zdCBsPVBvLmxGcmFtZS5jdXJyZW50RGlyZWN0aXZlSW5kZXg7cmV0dXJuLTE9PT1sP251bGw6Y1tsXX1mdW5jdGlvbiBCdygpe3JldHVybiBQby5s'@; put 'RnJhbWUuY3VycmVudFF1ZXJ5SW5kZXh9ZnVuY3Rpb24gQzkoYyl7UG8ubEZyYW1lLmN1cnJlbnRRdWVyeUluZGV4PWN9ZnVuY3Rpb24gancoYyl7Y29uc3QgbD1jW0JpXTtyZXR1cm4gMj09PWwudHlwZT9sLmRlY2xUTm9kZToxPT09bC50eXBlP2Nbem9dOm51bGx9ZnVuY3Rpb24gencoYyxs'@; put 'LGEpe2lmKGEmbnMuU2tpcFNlbGYpe2xldCBoPWwsZj1jO2Zvcig7IShoPWgucGFyZW50LG51bGwhPT1ofHxhJm5zLkhvc3R8fChoPWp3KGYpLG51bGw9PT1ofHwoZj1mW1BsXSwxMCZoLnR5cGUpKSk7KTtpZihudWxsPT09aClyZXR1cm4hMTtsPWgsYz1mfWNvbnN0IGQ9UG8ubEZyYW1lPVV3'@; put 'KCk7cmV0dXJuIGQuY3VycmVudFROb2RlPWwsZC5sVmlldz1jLCEwfWZ1bmN0aW9uIFM5KGMpe2NvbnN0IGw9VXcoKSxhPWNbQmldO1BvLmxGcmFtZT1sLGwuY3VycmVudFROb2RlPWEuZmlyc3RDaGlsZCxsLmxWaWV3PWMsbC50Vmlldz1hLGwuY29udGV4dExWaWV3PWMsbC5iaW5kaW5nSW5k'@; put 'ZXg9YS5iaW5kaW5nU3RhcnRJbmRleCxsLmluSTE4bj0hMX1mdW5jdGlvbiBVdygpe2NvbnN0IGM9UG8ubEZyYW1lLGw9bnVsbD09PWM/bnVsbDpjLmNoaWxkO3JldHVybiBudWxsPT09bD9adyhjKTpsfWZ1bmN0aW9uIFp3KGMpe2NvbnN0IGw9e2N1cnJlbnRUTm9kZTpudWxsLGlzUGFyZW50'@; put 'OiEwLGxWaWV3Om51bGwsdFZpZXc6bnVsbCxzZWxlY3RlZEluZGV4Oi0xLGNvbnRleHRMVmlldzpudWxsLGVsZW1lbnREZXB0aENvdW50OjAsY3VycmVudE5hbWVzcGFjZTpudWxsLGN1cnJlbnREaXJlY3RpdmVJbmRleDotMSxiaW5kaW5nUm9vdEluZGV4Oi0xLGJpbmRpbmdJbmRleDotMSxj'@; put 'dXJyZW50UXVlcnlJbmRleDowLHBhcmVudDpjLGNoaWxkOm51bGwsaW5JMThuOiExfTtyZXR1cm4gbnVsbCE9PWMmJihjLmNoaWxkPWwpLGx9ZnVuY3Rpb24gWXcoKXtjb25zdCBjPVBvLmxGcmFtZTtyZXR1cm4gUG8ubEZyYW1lPWMucGFyZW50LGMuY3VycmVudFROb2RlPW51bGwsYy5sVmll'@; put 'dz1udWxsLGN9Y29uc3QgV3c9WXc7ZnVuY3Rpb24gTW0oKXtjb25zdCBjPVl3KCk7Yy5pc1BhcmVudD0hMCxjLnRWaWV3PW51bGwsYy5zZWxlY3RlZEluZGV4PS0xLGMuY29udGV4dExWaWV3PW51bGwsYy5lbGVtZW50RGVwdGhDb3VudD0wLGMuY3VycmVudERpcmVjdGl2ZUluZGV4PS0xLGMu'@; put 'Y3VycmVudE5hbWVzcGFjZT1udWxsLGMuYmluZGluZ1Jvb3RJbmRleD0tMSxjLmJpbmRpbmdJbmRleD0tMSxjLmN1cnJlbnRRdWVyeUluZGV4PTB9ZnVuY3Rpb24gZXUoKXtyZXR1cm4gUG8ubEZyYW1lLnNlbGVjdGVkSW5kZXh9ZnVuY3Rpb24gWGgoYyl7UG8ubEZyYW1lLnNlbGVjdGVkSW5k'@; put 'ZXg9Y31mdW5jdGlvbiBRYSgpe2NvbnN0IGM9UG8ubEZyYW1lO3JldHVybiBrZShjLnRWaWV3LGMuc2VsZWN0ZWRJbmRleCl9bGV0ICR3PSEwO2Z1bmN0aW9uIHhtKCl7cmV0dXJuICR3fWZ1bmN0aW9uIFZkKGMpeyR3PWN9ZnVuY3Rpb24gRW0oYyxsKXtmb3IobGV0IGE9bC5kaXJlY3RpdmVT'@; put 'dGFydCxkPWwuZGlyZWN0aXZlRW5kO2E8ZDthKyspe2NvbnN0IGY9Yy5kYXRhW2FdLnR5cGUucHJvdG90eXBlLHtuZ0FmdGVyQ29udGVudEluaXQ6XyxuZ0FmdGVyQ29udGVudENoZWNrZWQ6VCxuZ0FmdGVyVmlld0luaXQ6VyxuZ0FmdGVyVmlld0NoZWNrZWQ6aWUsbmdPbkRlc3Ryb3k6cGV9'@; put 'PWY7XyYmKGMuY29udGVudEhvb2tzPz89W10pLnB1c2goLWEsXyksVCYmKChjLmNvbnRlbnRIb29rcz8/PVtdKS5wdXNoKGEsVCksKGMuY29udGVudENoZWNrSG9va3M/Pz1bXSkucHVzaChhLFQpKSxXJiYoYy52aWV3SG9va3M/Pz1bXSkucHVzaCgtYSxXKSxpZSYmKChjLnZpZXdIb29rcz8/'@; put 'PVtdKS5wdXNoKGEsaWUpLChjLnZpZXdDaGVja0hvb2tzPz89W10pLnB1c2goYSxpZSkpLG51bGwhPXBlJiYoYy5kZXN0cm95SG9va3M/Pz1bXSkucHVzaChhLHBlKX19ZnVuY3Rpb24ga20oYyxsLGEpe3F3KGMsbCwzLGEpfWZ1bmN0aW9uIEFtKGMsbCxhLGQpeygzJmNbRG9dKT09PWEmJnF3'@; put 'KGMsbCxhLGQpfWZ1bmN0aW9uIE05KGMsbCl7bGV0IGE9Y1tEb107KDMmYSk9PT1sJiYoYSY9ODE5MSxhKz0xLGNbRG9dPWEpfWZ1bmN0aW9uIHF3KGMsbCxhLGQpe2NvbnN0IGY9ZD8/LTEsXz1sLmxlbmd0aC0xO2xldCBUPTA7Zm9yKGxldCBXPXZvaWQgMCE9PWQ/NjU1MzUmY1tQMl06MDtX'@; put 'PF87VysrKWlmKCJudW1iZXIiPT10eXBlb2YgbFtXKzFdKXtpZihUPWxbV10sbnVsbCE9ZCYmVD49ZClicmVha31lbHNlIGxbV108MCYmKGNbUDJdKz02NTUzNiksKFQ8Znx8LTE9PWYpJiYoaUQoYyxhLGwsVyksY1tQMl09KDQyOTQ5MDE3NjAmY1tQMl0pK1crMiksVysrfWZ1bmN0aW9uIEt3'@; put 'KGMsbCl7aDAoNCxjLGwpO2NvbnN0IGE9ZmwobnVsbCk7dHJ5e2wuY2FsbChjKX1maW5hbGx5e2ZsKGEpLGgwKDUsYyxsKX19ZnVuY3Rpb24gaUQoYyxsLGEsZCl7Y29uc3QgaD1hW2RdPDAsZj1hW2QrMV0sVD1jW2g/LWFbZF06YVtkXV07aD9jW0RvXT4+MTM8Y1tQMl0+PjE2JiYoMyZjW0Rv'@; put 'XSk9PT1sJiYoY1tEb10rPTgxOTIsS3coVCxmKSk6S3coVCxmKX1jb25zdCBTMz0tMTtjbGFzcyBSNHtjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5mYWN0b3J5PWwsdGhpcy5yZXNvbHZpbmc9ITEsdGhpcy5jYW5TZWVWaWV3UHJvdmlkZXJzPWEsdGhpcy5pbmplY3RJbXBsPWR9fWZ1bmN0aW9u'@; put 'IFh3KGMpe3JldHVybiBjIT09UzN9ZnVuY3Rpb24gQjIoYyl7cmV0dXJuIDMyNzY3JmN9ZnVuY3Rpb24gTTMoYyxsKXtsZXQgYT1mdW5jdGlvbiBFOShjKXtyZXR1cm4gYz4+MTZ9KGMpLGQ9bDtmb3IoO2E+MDspZD1kW1BsXSxhLS07cmV0dXJuIGR9bGV0IE80PSEwO2Z1bmN0aW9uIEIxKGMp'@; put 'e2NvbnN0IGw9TzQ7cmV0dXJuIE80PWMsbH1jb25zdCBUbT0yNTUsSnc9NTtsZXQgRG09MDtjb25zdCBqMT17fTtmdW5jdGlvbiBJbShjLGwpe2NvbnN0IGE9UXcoYyxsKTtpZigtMSE9PWEpcmV0dXJuIGE7Y29uc3QgZD1sW0JpXTtkLmZpcnN0Q3JlYXRlUGFzcyYmKGMuaW5qZWN0b3JJbmRl'@; put 'eD1sLmxlbmd0aCxKaChkLmRhdGEsYyksSmgobCxudWxsKSxKaChkLmJsdWVwcmludCxudWxsKSk7Y29uc3QgaD1BOShjLGwpLGY9Yy5pbmplY3RvckluZGV4O2lmKFh3KGgpKXtjb25zdCBfPUIyKGgpLFQ9TTMoaCxsKSxXPVRbQmldLmRhdGE7Zm9yKGxldCBpZT0wO2llPDg7aWUrKylsW2Yr'@; put 'aWVdPVRbXytpZV18V1tfK2llXX1yZXR1cm4gbFtmKzhdPWgsZn1mdW5jdGlvbiBKaChjLGwpe2MucHVzaCgwLDAsMCwwLDAsMCwwLDAsbCl9ZnVuY3Rpb24gUXcoYyxsKXtyZXR1cm4tMT09PWMuaW5qZWN0b3JJbmRleHx8Yy5wYXJlbnQmJmMucGFyZW50LmluamVjdG9ySW5kZXg9PT1jLmlu'@; put 'amVjdG9ySW5kZXh8fG51bGw9PT1sW2MuaW5qZWN0b3JJbmRleCs4XT8tMTpjLmluamVjdG9ySW5kZXh9ZnVuY3Rpb24gQTkoYyxsKXtpZihjLnBhcmVudCYmLTEhPT1jLnBhcmVudC5pbmplY3RvckluZGV4KXJldHVybiBjLnBhcmVudC5pbmplY3RvckluZGV4O2xldCBhPTAsZD1udWxsLGg9'@; put 'bDtmb3IoO251bGwhPT1oOyl7aWYoZD1zQyhoKSxudWxsPT09ZClyZXR1cm4gUzM7aWYoYSsrLGg9aFtQbF0sLTEhPT1kLmluamVjdG9ySW5kZXgpcmV0dXJuIGQuaW5qZWN0b3JJbmRleHxhPDwxNn1yZXR1cm4gUzN9ZnVuY3Rpb24gVDkoYyxsLGEpeyFmdW5jdGlvbiBrOShjLGwsYSl7bGV0'@; put 'IGQ7InN0cmluZyI9PXR5cGVvZiBhP2Q9YS5jaGFyQ29kZUF0KDApfHwwOmEuaGFzT3duUHJvcGVydHkoWmgpJiYoZD1hW1poXSksbnVsbD09ZCYmKGQ9YVtaaF09RG0rKyk7Y29uc3QgaD1kJlRtO2wuZGF0YVtjKyhoPj5KdyldfD0xPDxofShjLGwsYSl9ZnVuY3Rpb24gZUMoYyxsLGEpe2lm'@; put 'KGEmbnMuT3B0aW9uYWx8fHZvaWQgMCE9PWMpcmV0dXJuIGM7UWkoKX1mdW5jdGlvbiB0QyhjLGwsYSxkKXtpZihhJm5zLk9wdGlvbmFsJiZ2b2lkIDA9PT1kJiYoZD1udWxsKSwhKGEmKG5zLlNlbGZ8bnMuSG9zdCkpKXtjb25zdCBoPWNbTGRdLGY9ZGkodm9pZCAwKTt0cnl7cmV0dXJuIGg/'@; put 'aC5nZXQobCxkLGEmbnMuT3B0aW9uYWwpOldzKGwsZCxhJm5zLk9wdGlvbmFsKX1maW5hbGx5e2RpKGYpfX1yZXR1cm4gZUMoZCwwLGEpfWZ1bmN0aW9uIG5DKGMsbCxhLGQ9bnMuRGVmYXVsdCxoKXtpZihudWxsIT09Yyl7aWYoMjA0OCZsW0RvXSYmIShkJm5zLlNlbGYpKXtjb25zdCBfPWZ1'@; put 'bmN0aW9uIGREKGMsbCxhLGQsaCl7bGV0IGY9YyxfPWw7Zm9yKDtudWxsIT09ZiYmbnVsbCE9PV8mJjIwNDgmX1tEb10mJiEoNTEyJl9bRG9dKTspe2NvbnN0IFQ9ckMoZixfLGEsZHxucy5TZWxmLGoxKTtpZihUIT09ajEpcmV0dXJuIFQ7bGV0IFc9Zi5wYXJlbnQ7aWYoIVcpe2NvbnN0IGll'@; put 'PV9bUjFdO2lmKGllKXtjb25zdCBwZT1pZS5nZXQoYSxqMSxkKTtpZihwZSE9PWoxKXJldHVybiBwZX1XPXNDKF8pLF89X1tQbF19Zj1XfXJldHVybiBofShjLGwsYSxkLGoxKTtpZihfIT09ajEpcmV0dXJuIF99Y29uc3QgZj1yQyhjLGwsYSxkLGoxKTtpZihmIT09ajEpcmV0dXJuIGZ9cmV0'@; put 'dXJuIHRDKGwsYSxkLGgpfWZ1bmN0aW9uIHJDKGMsbCxhLGQsaCl7Y29uc3QgZj1mdW5jdGlvbiBjRChjKXtpZigic3RyaW5nIj09dHlwZW9mIGMpcmV0dXJuIGMuY2hhckNvZGVBdCgwKXx8MDtjb25zdCBsPWMuaGFzT3duUHJvcGVydHkoWmgpP2NbWmhdOnZvaWQgMDtyZXR1cm4ibnVtYmVy'@; put 'Ij09dHlwZW9mIGw/bD49MD9sJlRtOnVEOmx9KGEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBmKXtpZighencobCxjLGQpKXJldHVybiBkJm5zLkhvc3Q/ZUMoaCwwLGQpOnRDKGwsYSxkLGgpO3RyeXtjb25zdCBfPWYoZCk7aWYobnVsbCE9X3x8ZCZucy5PcHRpb25hbClyZXR1cm4gXztRaSgp'@; put 'fWZpbmFsbHl7V3coKX19ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGYpe2xldCBfPW51bGwsVD1RdyhjLGwpLFc9UzMsaWU9ZCZucy5Ib3N0P2xbSmFdW3pvXTpudWxsO2ZvcigoLTE9PT1UfHxkJm5zLlNraXBTZWxmKSYmKFc9LTE9PT1UP0E5KGMsbCk6bFtUKzhdLFchPT1TMyYmb0MoZCwh'@; put 'MSk/KF89bFtCaV0sVD1CMihXKSxsPU0zKFcsbCkpOlQ9LTEpOy0xIT09VDspe2NvbnN0IHBlPWxbQmldO2lmKGlDKGYsVCxwZS5kYXRhKSl7Y29uc3Qgd2U9bEQoVCxsLGEsXyxkLGllKTtpZih3ZSE9PWoxKXJldHVybiB3ZX1XPWxbVCs4XSxXIT09UzMmJm9DKGQsbFtCaV0uZGF0YVtUKzhd'@; put 'PT09aWUpJiZpQyhmLFQsbCk/KF89cGUsVD1CMihXKSxsPU0zKFcsbCkpOlQ9LTF9fXJldHVybiBofWZ1bmN0aW9uIGxEKGMsbCxhLGQsaCxmKXtjb25zdCBfPWxbQmldLFQ9Xy5kYXRhW2MrOF0scGU9TG0oVCxfLGEsbnVsbD09ZD9QMShUKSYmTzQ6ZCE9XyYmMCE9KDMmVC50eXBlKSxoJm5z'@; put 'Lkhvc3QmJmY9PT1UKTtyZXR1cm4gbnVsbCE9PXBlP1FoKGwsXyxwZSxUKTpqMX1mdW5jdGlvbiBMbShjLGwsYSxkLGgpe2NvbnN0IGY9Yy5wcm92aWRlckluZGV4ZXMsXz1sLmRhdGEsVD0xMDQ4NTc1JmYsVz1jLmRpcmVjdGl2ZVN0YXJ0LHBlPWY+PjIwLEVlPWg/VCtwZTpjLmRpcmVjdGl2'@; put 'ZUVuZDtmb3IobGV0IFplPWQ/VDpUK3BlO1plPEVlO1plKyspe2NvbnN0IGl0PV9bWmVdO2lmKFplPFcmJmE9PT1pdHx8WmU+PVcmJml0LnR5cGU9PT1hKXJldHVybiBaZX1pZihoKXtjb25zdCBaZT1fW1ddO2lmKFplJiZRYyhaZSkmJlplLnR5cGU9PT1hKXJldHVybiBXfXJldHVybiBudWxs'@; put 'fWZ1bmN0aW9uIFFoKGMsbCxhLGQpe2xldCBoPWNbYV07Y29uc3QgZj1sLmRhdGE7aWYoZnVuY3Rpb24gb0QoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBSNH0oaCkpe2NvbnN0IF89aDtfLnJlc29sdmluZyYmZnVuY3Rpb24gbzAoYyxsKXtjb25zdCBhPWw/YC4gRGVwZW5kZW5jeSBwYXRoOiAk'@; put 'e2wuam9pbigiID4gIil9ID4gJHtjfWA6IiI7dGhyb3cgbmV3IEFyKC0yMDAsYENpcmN1bGFyIGRlcGVuZGVuY3kgaW4gREkgZGV0ZWN0ZWQgZm9yICR7Y30ke2F9YCl9KGZ1bmN0aW9uIENzKGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjP2MubmFtZXx8Yy50b1N0cmluZygpOiJvYmpl'@; put 'Y3QiPT10eXBlb2YgYyYmbnVsbCE9YyYmImZ1bmN0aW9uIj09dHlwZW9mIGMudHlwZT9jLnR5cGUubmFtZXx8Yy50eXBlLnRvU3RyaW5nKCk6a28oYyl9KGZbYV0pKTtjb25zdCBUPUIxKF8uY2FuU2VlVmlld1Byb3ZpZGVycyk7Xy5yZXNvbHZpbmc9ITA7Y29uc3QgVz1fLmluamVjdEltcGw/'@; put 'ZGkoXy5pbmplY3RJbXBsKTpudWxsO3p3KGMsZCxucy5EZWZhdWx0KTt0cnl7aD1jW2FdPV8uZmFjdG9yeSh2b2lkIDAsZixjLGQpLGwuZmlyc3RDcmVhdGVQYXNzJiZhPj1kLmRpcmVjdGl2ZVN0YXJ0JiZmdW5jdGlvbiByRChjLGwsYSl7Y29uc3R7bmdPbkNoYW5nZXM6ZCxuZ09uSW5pdDpo'@; put 'LG5nRG9DaGVjazpmfT1sLnR5cGUucHJvdG90eXBlO2lmKGQpe2NvbnN0IF89VDQobCk7KGEucHJlT3JkZXJIb29rcz8/PVtdKS5wdXNoKGMsXyksKGEucHJlT3JkZXJDaGVja0hvb2tzPz89W10pLnB1c2goYyxfKX1oJiYoYS5wcmVPcmRlckhvb2tzPz89W10pLnB1c2goMC1jLGgpLGYmJigo'@; put 'YS5wcmVPcmRlckhvb2tzPz89W10pLnB1c2goYyxmKSwoYS5wcmVPcmRlckNoZWNrSG9va3M/Pz1bXSkucHVzaChjLGYpKX0oYSxmW2FdLGwpfWZpbmFsbHl7bnVsbCE9PVcmJmRpKFcpLEIxKFQpLF8ucmVzb2x2aW5nPSExLFd3KCl9fXJldHVybiBofWZ1bmN0aW9uIGlDKGMsbCxhKXtyZXR1'@; put 'cm4hIShhW2wrKGM+Pkp3KV0mMTw8Yyl9ZnVuY3Rpb24gb0MoYyxsKXtyZXR1cm4hKGMmbnMuU2VsZnx8YyZucy5Ib3N0JiZsKX1jbGFzcyB4M3tjb25zdHJ1Y3RvcihsLGEpe3RoaXMuX3ROb2RlPWwsdGhpcy5fbFZpZXc9YX1nZXQobCxhLGQpe3JldHVybiBuQyh0aGlzLl90Tm9kZSx0aGlz'@; put 'Ll9sVmlldyxsLGEwKGQpLGEpfX1mdW5jdGlvbiB1RCgpe3JldHVybiBuZXcgeDMoTWMoKSxYcigpKX1mdW5jdGlvbiB4YShjKXtyZXR1cm4gZHUoKCk9Pntjb25zdCBsPWMucHJvdG90eXBlLmNvbnN0cnVjdG9yLGE9bFtsMF18fEcwKGwpLGQ9T2JqZWN0LnByb3RvdHlwZTtsZXQgaD1PYmpl'@; put 'Y3QuZ2V0UHJvdG90eXBlT2YoYy5wcm90b3R5cGUpLmNvbnN0cnVjdG9yO2Zvcig7aCYmaCE9PWQ7KXtjb25zdCBmPWhbbDBdfHxHMChoKTtpZihmJiZmIT09YSlyZXR1cm4gZjtoPU9iamVjdC5nZXRQcm90b3R5cGVPZihoKX1yZXR1cm4gZj0+bmV3IGZ9KX1mdW5jdGlvbiBHMChjKXtyZXR1'@; put 'cm4gcjAoYyk/KCk9Pntjb25zdCBsPUcwKGJvKGMpKTtyZXR1cm4gbCYmbCgpfTpIMShjKX1mdW5jdGlvbiBzQyhjKXtjb25zdCBsPWNbQmldLGE9bC50eXBlO3JldHVybiAyPT09YT9sLmRlY2xUTm9kZToxPT09YT9jW3pvXTpudWxsfWZ1bmN0aW9uIFA0KGMpe3JldHVybiBmdW5jdGlvbiBE'@; put 'OShjLGwpe2lmKCJjbGFzcyI9PT1sKXJldHVybiBjLmNsYXNzZXM7aWYoInN0eWxlIj09PWwpcmV0dXJuIGMuc3R5bGVzO2NvbnN0IGE9Yy5hdHRycztpZihhKXtjb25zdCBkPWEubGVuZ3RoO2xldCBoPTA7Zm9yKDtoPGQ7KXtjb25zdCBmPWFbaF07aWYoUjIoZikpYnJlYWs7aWYoMD09PWYp'@; put 'aCs9MjtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZilmb3IoaCsrO2g8ZCYmInN0cmluZyI9PXR5cGVvZiBhW2hdOyloKys7ZWxzZXtpZihmPT09bClyZXR1cm4gYVtoKzFdO2grPTJ9fX1yZXR1cm4gbnVsbH0oTWMoKSxjKX1jb25zdCBrMz0iX19wYXJhbWV0ZXJzX18iO2Z1bmN0aW9uIFQz'@; put 'KGMsbCxhKXtyZXR1cm4gZHUoKCk9Pntjb25zdCBkPWZ1bmN0aW9uIFJtKGMpe3JldHVybiBmdW5jdGlvbiguLi5hKXtpZihjKXtjb25zdCBkPWMoLi4uYSk7Zm9yKGNvbnN0IGggaW4gZCl0aGlzW2hdPWRbaF19fX0obCk7ZnVuY3Rpb24gaCguLi5mKXtpZih0aGlzIGluc3RhbmNlb2YgaCly'@; put 'ZXR1cm4gZC5hcHBseSh0aGlzLGYpLHRoaXM7Y29uc3QgXz1uZXcgaCguLi5mKTtyZXR1cm4gVC5hbm5vdGF0aW9uPV8sVDtmdW5jdGlvbiBUKFcsaWUscGUpe2NvbnN0IHdlPVcuaGFzT3duUHJvcGVydHkoazMpP1dbazNdOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLGszLHt2YWx1ZTpbXX0p'@; put 'W2szXTtmb3IoO3dlLmxlbmd0aDw9cGU7KXdlLnB1c2gobnVsbCk7cmV0dXJuKHdlW3BlXT13ZVtwZV18fFtdKS5wdXNoKF8pLFd9fXJldHVybiBhJiYoaC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhLnByb3RvdHlwZSkpLGgucHJvdG90eXBlLm5nTWV0YWRhdGFOYW1lPWMsaC5hbm5vdGF0'@; put 'aW9uQ2xzPWgsaH0pfWNvbnN0IE9tPUZ1bmN0aW9uO2Z1bmN0aW9uIEY0KGMsbCl7Yy5mb3JFYWNoKGE9PkFycmF5LmlzQXJyYXkoYSk/RjQoYSxsKTpsKGEpKX1mdW5jdGlvbiAkMChjLGwsYSl7bD49Yy5sZW5ndGg/Yy5wdXNoKGEpOmMuc3BsaWNlKGwsMCxhKX1mdW5jdGlvbiBQbShjLGwp'@; put 'e3JldHVybiBsPj1jLmxlbmd0aC0xP2MucG9wKCk6Yy5zcGxpY2UobCwxKVswXX1mdW5jdGlvbiBCZChjLGwpe2NvbnN0IGE9W107Zm9yKGxldCBkPTA7ZDxjO2QrKylhLnB1c2gobCk7cmV0dXJuIGF9ZnVuY3Rpb24geGMoYyxsLGEpe2xldCBkPWpkKGMsbCk7cmV0dXJuIGQ+PTA/Y1sxfGRd'@; put 'PWE6KGQ9fmQsZnVuY3Rpb24gbUQoYyxsLGEsZCl7bGV0IGg9Yy5sZW5ndGg7aWYoaD09bCljLnB1c2goYSxkKTtlbHNlIGlmKDE9PT1oKWMucHVzaChkLGNbMF0pLGNbMF09YTtlbHNle2ZvcihoLS0sYy5wdXNoKGNbaC0xXSxjW2hdKTtoPmw7KWNbaF09Y1toLTJdLGgtLTtjW2xdPWEsY1ts'@; put 'KzFdPWR9fShjLGQsbCxhKSksZH1mdW5jdGlvbiB0ZihjLGwpe2NvbnN0IGE9amQoYyxsKTtpZihhPj0wKXJldHVybiBjWzF8YV19ZnVuY3Rpb24gamQoYyxsKXtyZXR1cm4gZnVuY3Rpb24gdkQoYyxsLGEpe2xldCBkPTAsaD1jLmxlbmd0aD4+YTtmb3IoO2ghPT1kOyl7Y29uc3QgZj1kKyho'@; put 'LWQ+PjEpLF89Y1tmPDxhXTtpZihsPT09XylyZXR1cm4gZjw8YTtfPmw/aD1mOmQ9ZisxfXJldHVybn4oaDw8YSl9KGMsbCwxKX1jb25zdCB6Mj16aChUMygiT3B0aW9uYWwiKSw4KSxnMD16aChUMygiU2tpcFNlbGYiKSw0KTtmdW5jdGlvbiBZbShjKXtyZXR1cm4gMTI4PT0oMTI4JmMuZmxh'@; put 'Z3MpfXZhciBZMj1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLkltcG9ydGFudD0xXT0iSW1wb3J0YW50IixjW2MuRGFzaENhc2U9Ml09IkRhc2hDYXNlIixjfShZMnx8e30pO2NvbnN0IGtEPS9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2csQUQ9Lyg8fD4pLyxXbT0iXHUyMDBiJDFcdTIwMGIi'@; put 'O2NvbnN0IEg5PW5ldyBNYXA7bGV0IE45PTA7Y29uc3QgQjk9Il9fbmdDb250ZXh0X18iO2Z1bmN0aW9uIEJjKGMsbCl7U2MobCk/KGNbQjldPWxbJGhdLGZ1bmN0aW9uIGo0KGMpe0g5LnNldChjWyRoXSxjKX0obCkpOmNbQjldPWx9bGV0IGo5O2Z1bmN0aW9uIHo5KGMsbCl7cmV0dXJuIGo5'@; put 'KGMsbCl9ZnVuY3Rpb24gWjQoYyl7Y29uc3QgbD1jW3VhXTtyZXR1cm4gb2MobCk/bFt1YV06bH1mdW5jdGlvbiBDQyhjKXtyZXR1cm4gR20oY1tHaF0pfWZ1bmN0aW9uIFNDKGMpe3JldHVybiBHbShjW1hhXSl9ZnVuY3Rpb24gR20oYyl7Zm9yKDtudWxsIT09YyYmIW9jKGMpOyljPWNbWGFd'@; put 'O3JldHVybiBjfWZ1bmN0aW9uIHJmKGMsbCxhLGQsaCl7aWYobnVsbCE9ZCl7bGV0IGYsXz0hMTtvYyhkKT9mPWQ6U2MoZCkmJihfPSEwLGQ9ZFtIaV0pO2NvbnN0IFQ9X2EoZCk7MD09PWMmJm51bGwhPT1hP251bGw9PWg/RzIobCxhLFQpOlkxKGwsYSxULGh8fG51bGwsITApOjE9PT1jJiZu'@; put 'dWxsIT09YT9ZMShsLGEsVCxofHxudWxsLCEwKToyPT09Yz9mdW5jdGlvbiB0NihjLGwsYSl7Y29uc3QgZD1IMyhjLGwpO2QmJmZ1bmN0aW9uIE91KGMsbCxhLGQpe2MucmVtb3ZlQ2hpbGQobCxhLGQpfShjLGQsbCxhKX0obCxULF8pOjM9PT1jJiZsLmRlc3Ryb3lOb2RlKFQpLG51bGwhPWYm'@; put 'JmZ1bmN0aW9uIExDKGMsbCxhLGQsaCl7Y29uc3QgZj1hW2QwXTtmIT09X2EoYSkmJnJmKGwsYyxkLGYsaCk7Zm9yKGxldCBUPWljO1Q8YS5sZW5ndGg7VCsrKXtjb25zdCBXPWFbVF07RzQoV1tCaV0sVyxjLGwsZCxmKX19KGwsYyxmLGEsaCl9fWZ1bmN0aW9uIFU5KGMsbCl7cmV0dXJuIGMu'@; put 'Y3JlYXRlQ29tbWVudChmdW5jdGlvbiBCNChjKXtyZXR1cm4gYy5yZXBsYWNlKGtELGw9PmwucmVwbGFjZShBRCxXbSkpfShsKSl9ZnVuY3Rpb24gcW0oYyxsLGEpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQobCxhKX1mdW5jdGlvbiB4QyhjLGwpe2NvbnN0IGE9Y1tIMl0sZD1hLmluZGV4T2Yo'@; put 'bCk7enMobCksYS5zcGxpY2UoZCwxKX1mdW5jdGlvbiBzZihjLGwpe2lmKGMubGVuZ3RoPD1pYylyZXR1cm47Y29uc3QgYT1pYytsLGQ9Y1thXTtpZihkKXtjb25zdCBoPWRbTzJdO251bGwhPT1oJiZoIT09YyYmeEMoaCxkKSxsPjAmJihjW2EtMV1bWGFdPWRbWGFdKTtjb25zdCBmPVBtKGMs'@; put 'aWMrbCk7IWZ1bmN0aW9uIEJEKGMsbCl7RzQoYyxsLGxbVm9dLDIsbnVsbCxudWxsKSxsW0hpXT1udWxsLGxbem9dPW51bGx9KGRbQmldLGQpO2NvbnN0IF89ZltodV07bnVsbCE9PV8mJl8uZGV0YWNoVmlldyhmW0JpXSksZFt1YV09bnVsbCxkW1hhXT1udWxsLGRbRG9dJj0tMTI5fXJldHVy'@; put 'biBkfWZ1bmN0aW9uIEttKGMsbCl7aWYoISgyNTYmbFtEb10pKXtjb25zdCBhPWxbVm9dO2xbcDNdPy5kZXN0cm95KCksbFtnM10/LmRlc3Ryb3koKSxhLmRlc3Ryb3lOb2RlJiZHNChjLGwsYSwzLG51bGwsbnVsbCksZnVuY3Rpb24gVUQoYyl7bGV0IGw9Y1tHaF07aWYoIWwpcmV0dXJuIFht'@; put 'KGNbQmldLGMpO2Zvcig7bDspe2xldCBhPW51bGw7aWYoU2MobCkpYT1sW0doXTtlbHNle2NvbnN0IGQ9bFtpY107ZCYmKGE9ZCl9aWYoIWEpe2Zvcig7bCYmIWxbWGFdJiZsIT09YzspU2MobCkmJlhtKGxbQmldLGwpLGw9bFt1YV07bnVsbD09PWwmJihsPWMpLFNjKGwpJiZYbShsW0JpXSxs'@; put 'KSxhPWwmJmxbWGFdfWw9YX19KGwpfX1mdW5jdGlvbiBYbShjLGwpe2lmKCEoMjU2JmxbRG9dKSl7bFtEb10mPS0xMjksbFtEb118PTI1NixmdW5jdGlvbiBrQyhjLGwpe2xldCBhO2lmKG51bGwhPWMmJm51bGwhPShhPWMuZGVzdHJveUhvb2tzKSlmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2Qr'@; put 'PTIpe2NvbnN0IGg9bFthW2RdXTtpZighKGggaW5zdGFuY2VvZiBSNCkpe2NvbnN0IGY9YVtkKzFdO2lmKEFycmF5LmlzQXJyYXkoZikpZm9yKGxldCBfPTA7XzxmLmxlbmd0aDtfKz0yKXtjb25zdCBUPWhbZltfXV0sVz1mW18rMV07aDAoNCxULFcpO3RyeXtXLmNhbGwoVCl9ZmluYWxseXto'@; put 'MCg1LFQsVyl9fWVsc2V7aDAoNCxoLGYpO3RyeXtmLmNhbGwoaCl9ZmluYWxseXtoMCg1LGgsZil9fX19fShjLGwpLGZ1bmN0aW9uIEVDKGMsbCl7Y29uc3QgYT1jLmNsZWFudXAsZD1sW1R1XTtpZihudWxsIT09YSlmb3IobGV0IGY9MDtmPGEubGVuZ3RoLTE7Zis9MilpZigic3RyaW5nIj09'@; put 'dHlwZW9mIGFbZl0pe2NvbnN0IF89YVtmKzNdO18+PTA/ZFtfXSgpOmRbLV9dLnVuc3Vic2NyaWJlKCksZis9Mn1lbHNlIGFbZl0uY2FsbChkW2FbZisxXV0pO251bGwhPT1kJiYobFtUdV09bnVsbCk7Y29uc3QgaD1sW08xXTtpZihudWxsIT09aCl7bFtPMV09bnVsbDtmb3IobGV0IGY9MDtm'@; put 'PGgubGVuZ3RoO2YrKykoMCxoW2ZdKSgpfX0oYyxsKSwxPT09bFtCaV0udHlwZSYmbFtWb10uZGVzdHJveSgpO2NvbnN0IGE9bFtPMl07aWYobnVsbCE9PWEmJm9jKGxbdWFdKSl7YSE9PWxbdWFdJiZ4QyhhLGwpO2NvbnN0IGQ9bFtodV07bnVsbCE9PWQmJmQuZGV0YWNoVmlldyhjKX0hZnVu'@; put 'Y3Rpb24gVEQoYyl7SDkuZGVsZXRlKGNbJGhdKX0obCl9fWZ1bmN0aW9uIEYzKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gWTQoYyxsLGEpe2xldCBkPWw7Zm9yKDtudWxsIT09ZCYmNDAmZC50eXBlOylkPShsPWQpLnBhcmVudDtpZihudWxsPT09ZClyZXR1cm4gYVtIaV07e2NvbnN0e2NvbXBv'@; put 'bmVudE9mZnNldDpofT1kO2lmKGg+LTEpe2NvbnN0e2VuY2Fwc3VsYXRpb246Zn09Yy5kYXRhW2QuZGlyZWN0aXZlU3RhcnQraF07aWYoZj09PVBjLk5vbmV8fGY9PT1QYy5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gTmwoZCxhKX19KGMsbC5wYXJlbnQsYSl9ZnVuY3Rpb24gWTEoYyxs'@; put 'LGEsZCxoKXtjLmluc2VydEJlZm9yZShsLGEsZCxoKX1mdW5jdGlvbiBHMihjLGwsYSl7Yy5hcHBlbmRDaGlsZChsLGEpfWZ1bmN0aW9uIEptKGMsbCxhLGQsaCl7bnVsbCE9PWQ/WTEoYyxsLGEsZCxoKTpHMihjLGwsYSl9ZnVuY3Rpb24gSDMoYyxsKXtyZXR1cm4gYy5wYXJlbnROb2RlKGwp'@; put 'fWZ1bmN0aW9uIFcxKGMsbCxhKXtyZXR1cm4gVEMoYyxsLGEpfWxldCBRbSwkNCxHOSxuNixUQz1mdW5jdGlvbiBBQyhjLGwsYSl7cmV0dXJuIDQwJmMudHlwZT9ObChjLGEpOm51bGx9O2Z1bmN0aW9uIGU2KGMsbCxhLGQpe2NvbnN0IGg9RjMoYyxkLGwpLGY9bFtWb10sVD1XMShkLnBhcmVu'@; put 'dHx8bFt6b10sZCxsKTtpZihudWxsIT1oKWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCBXPTA7VzxhLmxlbmd0aDtXKyspSm0oZixoLGFbV10sVCwhMSk7ZWxzZSBKbShmLGgsYSxULCExKTt2b2lkIDAhPT1RbSYmUW0oZixkLGwsYSxoKX1mdW5jdGlvbiBXNChjLGwpe2lmKG51bGwhPT1s'@; put 'KXtjb25zdCBhPWwudHlwZTtpZigzJmEpcmV0dXJuIE5sKGwsYyk7aWYoNCZhKXJldHVybiBZOSgtMSxjW2wuaW5kZXhdKTtpZig4JmEpe2NvbnN0IGQ9bC5jaGlsZDtpZihudWxsIT09ZClyZXR1cm4gVzQoYyxkKTt7Y29uc3QgaD1jW2wuaW5kZXhdO3JldHVybiBvYyhoKT9ZOSgtMSxoKTpf'@; put 'YShoKX19aWYoMzImYSlyZXR1cm4gejkobCxjKSgpfHxfYShjW2wuaW5kZXhdKTt7Y29uc3QgZD1EQyhjLGwpO3JldHVybiBudWxsIT09ZD9BcnJheS5pc0FycmF5KGQpP2RbMF06VzQoWjQoY1tKYV0pLGQpOlc0KGMsbC5uZXh0KX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gREMoYyxsKXtyZXR1'@; put 'cm4gbnVsbCE9PWw/Y1tKYV1bem9dLnByb2plY3Rpb25bbC5wcm9qZWN0aW9uXTpudWxsfWZ1bmN0aW9uIFk5KGMsbCl7Y29uc3QgYT1pYytjKzE7aWYoYTxsLmxlbmd0aCl7Y29uc3QgZD1sW2FdLGg9ZFtCaV0uZmlyc3RDaGlsZDtpZihudWxsIT09aClyZXR1cm4gVzQoZCxoKX1yZXR1cm4g'@; put 'bFtkMF19ZnVuY3Rpb24gVzkoYyxsLGEsZCxoLGYsXyl7Zm9yKDtudWxsIT1hOyl7Y29uc3QgVD1kW2EuaW5kZXhdLFc9YS50eXBlO2lmKF8mJjA9PT1sJiYoVCYmQmMoX2EoVCksZCksYS5mbGFnc3w9MiksMzIhPSgzMiZhLmZsYWdzKSlpZig4JlcpVzkoYyxsLGEuY2hpbGQsZCxoLGYsITEp'@; put 'LHJmKGwsYyxoLFQsZik7ZWxzZSBpZigzMiZXKXtjb25zdCBpZT16OShhLGQpO2xldCBwZTtmb3IoO3BlPWllKCk7KXJmKGwsYyxoLHBlLGYpO3JmKGwsYyxoLFQsZil9ZWxzZSAxNiZXP1dEKGMsbCxkLGEsaCxmKTpyZihsLGMsaCxULGYpO2E9Xz9hLnByb2plY3Rpb25OZXh0OmEubmV4dH19'@; put 'ZnVuY3Rpb24gRzQoYyxsLGEsZCxoLGYpe1c5KGEsZCxjLmZpcnN0Q2hpbGQsbCxoLGYsITEpfWZ1bmN0aW9uIFdEKGMsbCxhLGQsaCxmKXtjb25zdCBfPWFbSmFdLFc9X1t6b10ucHJvamVjdGlvbltkLnByb2plY3Rpb25dO2lmKEFycmF5LmlzQXJyYXkoVykpZm9yKGxldCBpZT0wO2llPFcu'@; put 'bGVuZ3RoO2llKyspcmYobCxjLGgsV1tpZV0sZik7ZWxzZXtsZXQgaWU9Vztjb25zdCBwZT1fW3VhXTtZbShkKSYmKGllLmZsYWdzfD0xMjgpLFc5KGMsbCxpZSxwZSxoLGYsITApfX1mdW5jdGlvbiBSQyhjLGwsYSl7IiI9PT1hP2MucmVtb3ZlQXR0cmlidXRlKGwsImNsYXNzIik6Yy5zZXRB'@; put 'dHRyaWJ1dGUobCwiY2xhc3MiLGEpfWZ1bmN0aW9uIE9DKGMsbCxhKXtjb25zdHttZXJnZWRBdHRyczpkLGNsYXNzZXM6aCxzdHlsZXM6Zn09YTtudWxsIT09ZCYmRGQoYyxsLGQpLG51bGwhPT1oJiZSQyhjLGwsaCksbnVsbCE9PWYmJmZ1bmN0aW9uIEdEKGMsbCxhKXtjLnNldEF0dHJpYnV0'@; put 'ZShsLCJzdHlsZSIsYSl9KGMsbCxmKX1mdW5jdGlvbiBOMyhjKXtyZXR1cm4gZnVuY3Rpb24gcTQoKXtpZih2b2lkIDA9PT0kNCYmKCQ0PW51bGwsT2kudHJ1c3RlZFR5cGVzKSl0cnl7JDQ9T2kudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciIse2NyZWF0ZUhUTUw6Yz0+Yyxj'@; put 'cmVhdGVTY3JpcHQ6Yz0+YyxjcmVhdGVTY3JpcHRVUkw6Yz0+Y30pfWNhdGNoe31yZXR1cm4gJDR9KCk/LmNyZWF0ZUhUTUwoYyl8fGN9ZnVuY3Rpb24gSzQoKXtpZih2b2lkIDAhPT1HOSlyZXR1cm4gRzk7aWYodHlwZW9mIGRvY3VtZW50PCJ1IilyZXR1cm4gZG9jdW1lbnQ7dGhyb3cgbmV3'@; put 'IEFyKDIxMCwhMSl9ZnVuY3Rpb24gJDkoKXtpZih2b2lkIDA9PT1uNiYmKG42PW51bGwsT2kudHJ1c3RlZFR5cGVzKSl0cnl7bjY9T2kudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciN1bnNhZmUtYnlwYXNzIix7Y3JlYXRlSFRNTDpjPT5jLGNyZWF0ZVNjcmlwdDpjPT5jLGNy'@; put 'ZWF0ZVNjcmlwdFVSTDpjPT5jfSl9Y2F0Y2h7fXJldHVybiBuNn1mdW5jdGlvbiBIQyhjKXtyZXR1cm4gJDkoKT8uY3JlYXRlSFRNTChjKXx8Y31mdW5jdGlvbiBWQyhjKXtyZXR1cm4gJDkoKT8uY3JlYXRlU2NyaXB0VVJMKGMpfHxjfWNsYXNzIEJDe2NvbnN0cnVjdG9yKGwpe3RoaXMuY2hh'@; put 'bmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eT1sfXRvU3RyaW5nKCl7cmV0dXJuYFNhZmVWYWx1ZSBtdXN0IHVzZSBbcHJvcGVydHldPWJpbmRpbmc6ICR7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5fSAoc2VlICR7bDN9KWB9fWZ1bmN0aW9uICQy'@; put 'KGMpe3JldHVybiBjIGluc3RhbmNlb2YgQkM/Yy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5OmN9ZnVuY3Rpb24gWDQoYyxsKXtjb25zdCBhPWZ1bmN0aW9uIHRJKGMpe3JldHVybiBjIGluc3RhbmNlb2YgQkMmJmMuZ2V0VHlwZU5hbWUoKXx8bnVsbH0oYyk7aWYobnVs'@; put 'bCE9YSYmYSE9PWwpe2lmKCJSZXNvdXJjZVVSTCI9PT1hJiYiVVJMIj09PWwpcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKGBSZXF1aXJlZCBhIHNhZmUgJHtsfSwgZ290IGEgJHthfSAoc2VlICR7bDN9KWApfXJldHVybiBhPT09bH1jbGFzcyBxOXtjb25zdHJ1Y3RvcihsKXt0aGlzLmluZXJ0'@; put 'RG9jdW1lbnRIZWxwZXI9bH1nZXRJbmVydEJvZHlFbGVtZW50KGwpe2w9Ijxib2R5PjxyZW1vdmU+PC9yZW1vdmU+IitsO3RyeXtjb25zdCBhPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKE4zKGwpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09YT90aGlz'@; put 'LmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudChsKTooYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpLGEpfWNhdGNoe3JldHVybiBudWxsfX19Y2xhc3MgSzl7Y29uc3RydWN0b3IobCl7dGhpcy5kZWZhdWx0RG9jPWwsdGhpcy5pbmVydERvY3VtZW50PXRoaXMuZGVm'@; put 'YXVsdERvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInNhbml0aXphdGlvbi1pbmVydCIpfWdldEluZXJ0Qm9keUVsZW1lbnQobCl7Y29uc3QgYT10aGlzLmluZXJ0RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gYS5pbm5lckhUTUw9TjMobCks'@; put 'YX19Y29uc3Qgbkk9L14oPyFqYXZhc2NyaXB0OikoPzpbYS16MC05Ky4tXSs6fFteJjpcLz8jXSooPzpbXC8/I118JCkpL2k7ZnVuY3Rpb24gWDkoYyl7cmV0dXJuKGM9U3RyaW5nKGMpKS5tYXRjaChuSSk/YzoidW5zYWZlOiIrY31mdW5jdGlvbiBHMShjKXtjb25zdCBsPXt9O2Zvcihjb25z'@; put 'dCBhIG9mIGMuc3BsaXQoIiwiKSlsW2FdPSEwO3JldHVybiBsfWZ1bmN0aW9uIEJhKC4uLmMpe2NvbnN0IGw9e307Zm9yKGNvbnN0IGEgb2YgYylmb3IoY29uc3QgZCBpbiBhKWEuaGFzT3duUHJvcGVydHkoZCkmJihsW2RdPSEwKTtyZXR1cm4gbH1jb25zdCBaZD1HMSgiYXJlYSxicixjb2ws'@; put 'aHIsaW1nLHdiciIpLEo5PUcxKCJjb2xncm91cCxkZCxkdCxsaSxwLHRib2R5LHRkLHRmb290LHRoLHRoZWFkLHRyIiksUTk9RzEoInJwLHJ0IiksZXY9QmEoWmQsQmEoSjksRzEoImFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxibG9ja3F1b3RlLGNhcHRpb24sY2VudGVyLGRlbCxkZXRhaWxzLGRp'@; put 'YWxvZyxkaXIsZGl2LGRsLGZpZ3VyZSxmaWdjYXB0aW9uLGZvb3RlcixoMSxoMixoMyxoNCxoNSxoNixoZWFkZXIsaGdyb3VwLGhyLGlucyxtYWluLG1hcCxtZW51LG5hdixvbCxwcmUsc2VjdGlvbixzdW1tYXJ5LHRhYmxlLHVsIikpLEJhKFE5LEcxKCJhLGFiYnIsYWNyb255bSxhdWRpbyxi'@; put 'LGJkaSxiZG8sYmlnLGJyLGNpdGUsY29kZSxkZWwsZGZuLGVtLGZvbnQsaSxpbWcsaW5zLGtiZCxsYWJlbCxtYXAsbWFyayxwaWN0dXJlLHEscnVieSxycCxydCxzLHNhbXAsc21hbGwsc291cmNlLHNwYW4sc3RyaWtlLHN0cm9uZyxzdWIsc3VwLHRpbWUsdHJhY2ssdHQsdSx2YXIsdmlkZW8i'@; put 'KSksQmEoUTksSjkpKSx0dj1HMSgiYmFja2dyb3VuZCxjaXRlLGhyZWYsaXRlbXR5cGUsbG9uZ2Rlc2MscG9zdGVyLHNyYyx4bGluazpocmVmIiksekM9QmEodHYsRzEoImFiYnIsYWNjZXNza2V5LGFsaWduLGFsdCxhdXRvcGxheSxheGlzLGJnY29sb3IsYm9yZGVyLGNlbGxwYWRkaW5nLGNl'@; put 'bGxzcGFjaW5nLGNsYXNzLGNsZWFyLGNvbG9yLGNvbHMsY29sc3Bhbixjb21wYWN0LGNvbnRyb2xzLGNvb3JkcyxkYXRldGltZSxkZWZhdWx0LGRpcixkb3dubG9hZCxmYWNlLGhlYWRlcnMsaGVpZ2h0LGhpZGRlbixocmVmbGFuZyxoc3BhY2UsaXNtYXAsaXRlbXNjb3BlLGl0ZW1wcm9wLGtp'@; put 'bmQsbGFiZWwsbGFuZyxsYW5ndWFnZSxsb29wLG1lZGlhLG11dGVkLG5vaHJlZixub3dyYXAsb3BlbixwcmVsb2FkLHJlbCxyZXYscm9sZSxyb3dzLHJvd3NwYW4scnVsZXMsc2NvcGUsc2Nyb2xsaW5nLHNoYXBlLHNpemUsc2l6ZXMsc3BhbixzcmNsYW5nLHNyY3NldCxzdGFydCxzdW1tYXJ5'@; put 'LHRhYmluZGV4LHRhcmdldCx0aXRsZSx0cmFuc2xhdGUsdHlwZSx1c2VtYXAsdmFsaWduLHZhbHVlLHZzcGFjZSx3aWR0aCIpLEcxKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQsYXJpYS1hdG9taWMsYXJpYS1hdXRvY29tcGxldGUsYXJpYS1idXN5LGFyaWEtY2hlY2tlZCxhcmlhLWNvbGNvdW50'@; put 'LGFyaWEtY29saW5kZXgsYXJpYS1jb2xzcGFuLGFyaWEtY29udHJvbHMsYXJpYS1jdXJyZW50LGFyaWEtZGVzY3JpYmVkYnksYXJpYS1kZXRhaWxzLGFyaWEtZGlzYWJsZWQsYXJpYS1kcm9wZWZmZWN0LGFyaWEtZXJyb3JtZXNzYWdlLGFyaWEtZXhwYW5kZWQsYXJpYS1mbG93dG8sYXJpYS1n'@; put 'cmFiYmVkLGFyaWEtaGFzcG9wdXAsYXJpYS1oaWRkZW4sYXJpYS1pbnZhbGlkLGFyaWEta2V5c2hvcnRjdXRzLGFyaWEtbGFiZWwsYXJpYS1sYWJlbGxlZGJ5LGFyaWEtbGV2ZWwsYXJpYS1saXZlLGFyaWEtbW9kYWwsYXJpYS1tdWx0aWxpbmUsYXJpYS1tdWx0aXNlbGVjdGFibGUsYXJpYS1v'@; put 'cmllbnRhdGlvbixhcmlhLW93bnMsYXJpYS1wbGFjZWhvbGRlcixhcmlhLXBvc2luc2V0LGFyaWEtcHJlc3NlZCxhcmlhLXJlYWRvbmx5LGFyaWEtcmVsZXZhbnQsYXJpYS1yZXF1aXJlZCxhcmlhLXJvbGVkZXNjcmlwdGlvbixhcmlhLXJvd2NvdW50LGFyaWEtcm93aW5kZXgsYXJpYS1yb3dz'@; put 'cGFuLGFyaWEtc2VsZWN0ZWQsYXJpYS1zZXRzaXplLGFyaWEtc29ydCxhcmlhLXZhbHVlbWF4LGFyaWEtdmFsdWVtaW4sYXJpYS12YWx1ZW5vdyxhcmlhLXZhbHVldGV4dCIpKSxpST1HMSgic2NyaXB0LHN0eWxlLHRlbXBsYXRlIik7Y2xhc3Mgb0l7Y29uc3RydWN0b3IoKXt0aGlzLnNhbml0'@; put 'aXplZFNvbWV0aGluZz0hMSx0aGlzLmJ1Zj1bXX1zYW5pdGl6ZUNoaWxkcmVuKGwpe2xldCBhPWwuZmlyc3RDaGlsZCxkPSEwO2Zvcig7YTspaWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFP2Q9dGhpcy5zdGFydEVsZW1lbnQoYSk6YS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RF'@; put 'P3RoaXMuY2hhcnMoYS5ub2RlVmFsdWUpOnRoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwLGQmJmEuZmlyc3RDaGlsZClhPWEuZmlyc3RDaGlsZDtlbHNlIGZvcig7YTspe2Eubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdGhpcy5lbmRFbGVtZW50KGEpO2xldCBoPXRoaXMuY2hlY2tD'@; put 'bG9iYmVyZWRFbGVtZW50KGEsYS5uZXh0U2libGluZyk7aWYoaCl7YT1oO2JyZWFrfWE9dGhpcy5jaGVja0Nsb2JiZXJlZEVsZW1lbnQoYSxhLnBhcmVudE5vZGUpfXJldHVybiB0aGlzLmJ1Zi5qb2luKCIiKX1zdGFydEVsZW1lbnQobCl7Y29uc3QgYT1sLm5vZGVOYW1lLnRvTG93ZXJDYXNl'@; put 'KCk7aWYoIWV2Lmhhc093blByb3BlcnR5KGEpKXJldHVybiB0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMCwhaUkuaGFzT3duUHJvcGVydHkoYSk7dGhpcy5idWYucHVzaCgiPCIpLHRoaXMuYnVmLnB1c2goYSk7Y29uc3QgZD1sLmF0dHJpYnV0ZXM7Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDto'@; put 'Kyspe2NvbnN0IGY9ZC5pdGVtKGgpLF89Zi5uYW1lLFQ9Xy50b0xvd2VyQ2FzZSgpO2lmKCF6Qy5oYXNPd25Qcm9wZXJ0eShUKSl7dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITA7Y29udGludWV9bGV0IFc9Zi52YWx1ZTt0dltUXSYmKFc9WDkoVykpLHRoaXMuYnVmLnB1c2goIiAiLF8sJz0i'@; put 'JyxVQyhXKSwnIicpfXJldHVybiB0aGlzLmJ1Zi5wdXNoKCI+IiksITB9ZW5kRWxlbWVudChsKXtjb25zdCBhPWwubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtldi5oYXNPd25Qcm9wZXJ0eShhKSYmIVpkLmhhc093blByb3BlcnR5KGEpJiYodGhpcy5idWYucHVzaCgiPC8iKSx0aGlzLmJ1Zi5w'@; put 'dXNoKGEpLHRoaXMuYnVmLnB1c2goIj4iKSl9Y2hhcnMobCl7dGhpcy5idWYucHVzaChVQyhsKSl9Y2hlY2tDbG9iYmVyZWRFbGVtZW50KGwsYSl7aWYoYSYmKGwuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpPT09Tm9kZS5E'@; put 'T0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc2FuaXRpemUgaHRtbCBiZWNhdXNlIHRoZSBlbGVtZW50IGlzIGNsb2JiZXJlZDogJHtsLm91dGVySFRNTH1gKTtyZXR1cm4gYX19Y29uc3Qgc0k9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAt'@; put 'XHVERkZGXS9nLGFJPS8oW15cIy1+IHwhXSkvZztmdW5jdGlvbiBVQyhjKXtyZXR1cm4gYy5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZShzSSxmdW5jdGlvbihsKXtyZXR1cm4iJiMiKygxMDI0KihsLmNoYXJDb2RlQXQoMCktNTUyOTYpKyhsLmNoYXJDb2RlQXQoMSktNTYzMjApKzY1'@; put 'NTM2KSsiOyJ9KS5yZXBsYWNlKGFJLGZ1bmN0aW9uKGwpe3JldHVybiImIyIrbC5jaGFyQ29kZUF0KDApKyI7In0pLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpfWxldCByNjtmdW5jdGlvbiBudihjKXtyZXR1cm4iY29udGVudCJpbiBjJiZmdW5jdGlvbiBjSShj'@; put 'KXtyZXR1cm4gYy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiYiVEVNUExBVEUiPT09Yy5ub2RlTmFtZX0oYyk/Yy5jb250ZW50Om51bGx9dmFyIFYzPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuTk9ORT0wXT0iTk9ORSIsY1tjLkhUTUw9MV09IkhUTUwiLGNbYy5TVFlMRT0yXT0iU1RZ'@; put 'TEUiLGNbYy5TQ1JJUFQ9M109IlNDUklQVCIsY1tjLlVSTD00XT0iVVJMIixjW2MuUkVTT1VSQ0VfVVJMPTVdPSJSRVNPVVJDRV9VUkwiLGN9KFYzfHx7fSk7ZnVuY3Rpb24gcTIoYyl7Y29uc3QgbD1KNCgpO3JldHVybiBsP0hDKGwuc2FuaXRpemUoVjMuSFRNTCxjKXx8IiIpOlg0KGMsIkhU'@; put 'TUwiKT9IQygkMihjKSk6ZnVuY3Rpb24gbEkoYyxsKXtsZXQgYT1udWxsO3RyeXtyNj1yNnx8ZnVuY3Rpb24gYWYoYyl7Y29uc3QgbD1uZXcgSzkoYyk7cmV0dXJuIGZ1bmN0aW9uIGpDKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoTjMoIiIp'@; put 'LCJ0ZXh0L2h0bWwiKX1jYXRjaHtyZXR1cm4hMX19KCk/bmV3IHE5KGwpOmx9KGMpO2xldCBkPWw/U3RyaW5nKGwpOiIiO2E9cjYuZ2V0SW5lcnRCb2R5RWxlbWVudChkKTtsZXQgaD01LGY9ZDtkb3tpZigwPT09aCl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBzYW5pdGl6ZSBodG1sIGJl'@; put 'Y2F1c2UgdGhlIGlucHV0IGlzIHVuc3RhYmxlIik7aC0tLGQ9ZixmPWEuaW5uZXJIVE1MLGE9cjYuZ2V0SW5lcnRCb2R5RWxlbWVudChkKX13aGlsZShkIT09Zik7cmV0dXJuIE4zKChuZXcgb0kpLnNhbml0aXplQ2hpbGRyZW4obnYoYSl8fGEpKX1maW5hbGx5e2lmKGEpe2NvbnN0IGQ9bnYo'@; put 'YSl8fGE7Zm9yKDtkLmZpcnN0Q2hpbGQ7KWQucmVtb3ZlQ2hpbGQoZC5maXJzdENoaWxkKX19fShLNCgpLGtvKGMpKX1mdW5jdGlvbiBydihjKXtjb25zdCBsPUo0KCk7cmV0dXJuIGw/bC5zYW5pdGl6ZShWMy5VUkwsYyl8fCIiOlg0KGMsIlVSTCIpPyQyKGMpOlg5KGtvKGMpKX1mdW5jdGlv'@; put 'biBaQyhjKXtjb25zdCBsPUo0KCk7aWYobClyZXR1cm4gVkMobC5zYW5pdGl6ZShWMy5SRVNPVVJDRV9VUkwsYyl8fCIiKTtpZihYNChjLCJSZXNvdXJjZVVSTCIpKXJldHVybiBWQygkMihjKSk7dGhyb3cgbmV3IEFyKDkwNCwhMSl9ZnVuY3Rpb24gSjQoKXtjb25zdCBjPVhyKCk7cmV0dXJu'@; put 'IGMmJmNbTDFdLnNhbml0aXplcn1jbGFzcyBTaXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuX2Rlc2M9bCx0aGlzLm5nTWV0YWRhdGFOYW1lPSJJbmplY3Rpb25Ub2tlbiIsdGhpcy5cdTAyNzVwcm92PXZvaWQgMCwibnVtYmVyIj09dHlwZW9mIGE/dGhpcy5fX05HX0VMRU1FTlRfSURfXz1hOnZv'@; put 'aWQgMCE9PWEmJih0aGlzLlx1MDI3NXByb3Y9aHIoe3Rva2VuOnRoaXMscHJvdmlkZWRJbjphLnByb3ZpZGVkSW58fCJyb290IixmYWN0b3J5OmEuZmFjdG9yeX0pKX1nZXQgbXVsdGkoKXtyZXR1cm4gdGhpc310b1N0cmluZygpe3JldHVybmBJbmplY3Rpb25Ub2tlbiAke3RoaXMuX2Rlc2N9'@; put 'YH19Y29uc3QgUTQ9bmV3IFNpKCJFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiIpLFdDPW5ldyBTaSgiSU5KRUNUT1IiLC0xKSxHQz1uZXcgU2koIklOSkVDVE9SX0RFRl9UWVBFUyIpO2NsYXNzICRDe2dldChsLGE9czApe2lmKGE9PT1zMCl7Y29uc3QgZD1uZXcgRXJyb3IoYE51bGxJbmplY3Rv'@; put 'ckVycm9yOiBObyBwcm92aWRlciBmb3IgJHtxYShsKX0hYCk7dGhyb3cgZC5uYW1lPSJOdWxsSW5qZWN0b3JFcnJvciIsZH1yZXR1cm4gYX19ZnVuY3Rpb24gZ0koLi4uYyl7cmV0dXJue1x1MDI3NXByb3ZpZGVyczpxQygwLGMpLFx1MDI3NWZyb21OZ01vZHVsZTohMH19ZnVuY3Rpb24gcUMo'@; put 'YywuLi5sKXtjb25zdCBhPVtdLGQ9bmV3IFNldDtsZXQgaDtyZXR1cm4gRjQobCxmPT57Y29uc3QgXz1mO292KF8sYSxbXSxkKSYmKGh8fD1bXSxoLnB1c2goXykpfSksdm9pZCAwIT09aCYmS0MoaCxhKSxhfWZ1bmN0aW9uIEtDKGMsbCl7Zm9yKGxldCBhPTA7YTxjLmxlbmd0aDthKyspe2Nv'@; put 'bnN0e3Byb3ZpZGVyczpofT1jW2FdO3N2KGgsZj0+e2wucHVzaChmKX0pfX1mdW5jdGlvbiBvdihjLGwsYSxkKXtpZighKGM9Ym8oYykpKXJldHVybiExO2xldCBoPW51bGwsZj1ubShjKTtjb25zdCBfPSFmJiZRbyhjKTtpZihmfHxfKXtpZihfJiYhXy5zdGFuZGFsb25lKXJldHVybiExO2g9'@; put 'Y31lbHNle2NvbnN0IFc9Yy5uZ01vZHVsZTtpZihmPW5tKFcpLCFmKXJldHVybiExO2g9V31jb25zdCBUPWQuaGFzKGgpO2lmKF8pe2lmKFQpcmV0dXJuITE7aWYoZC5hZGQoaCksXy5kZXBlbmRlbmNpZXMpe2NvbnN0IFc9ImZ1bmN0aW9uIj09dHlwZW9mIF8uZGVwZW5kZW5jaWVzP18uZGVw'@; put 'ZW5kZW5jaWVzKCk6Xy5kZXBlbmRlbmNpZXM7Zm9yKGNvbnN0IGllIG9mIFcpb3YoaWUsbCxhLGQpfX1lbHNle2lmKCFmKXJldHVybiExO3tpZihudWxsIT1mLmltcG9ydHMmJiFUKXtsZXQgaWU7ZC5hZGQoaCk7dHJ5e0Y0KGYuaW1wb3J0cyxwZT0+e292KHBlLGwsYSxkKSYmKGllfHw9W10s'@; put 'aWUucHVzaChwZSkpfSl9ZmluYWxseXt9dm9pZCAwIT09aWUmJktDKGllLGwpfWlmKCFUKXtjb25zdCBpZT1IMShoKXx8KCgpPT5uZXcgaCk7bC5wdXNoKHtwcm92aWRlOmgsdXNlRmFjdG9yeTppZSxkZXBzOlNzfSx7cHJvdmlkZTpHQyx1c2VWYWx1ZTpoLG11bHRpOiEwfSx7cHJvdmlkZTpR'@; put 'NCx1c2VWYWx1ZTooKT0+YXIoaCksbXVsdGk6ITB9KX1jb25zdCBXPWYucHJvdmlkZXJzO251bGw9PVd8fFR8fHN2KFcscGU9PntsLnB1c2gocGUpfSl9fXJldHVybiBoIT09YyYmdm9pZCAwIT09Yy5wcm92aWRlcnN9ZnVuY3Rpb24gc3YoYyxsKXtmb3IobGV0IGEgb2YgYylUMihhKSYmKGE9'@; put 'YS5cdTAyNzVwcm92aWRlcnMpLEFycmF5LmlzQXJyYXkoYSk/c3YoYSxsKTpsKGEpfWNvbnN0IG1JPUFzKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpBc30pO2Z1bmN0aW9uIGF2KGMpe3JldHVybiBudWxsIT09YyYmIm9iamVjdCI9PXR5cGVvZiBjJiZtSSBpbiBjfWZ1bmN0aW9uIGxmKGMp'@; put 'e3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjfWNvbnN0IHQ1PW5ldyBTaSgiU2V0IEluamVjdG9yIHNjb3BlLiIpLG82PXt9LHZJPXt9O2xldCBsdjtmdW5jdGlvbiBzNigpe3JldHVybiB2b2lkIDA9PT1sdiYmKGx2PW5ldyAkQyksbHZ9Y2xhc3MgcTB7fWNsYXNzIGN2IGV4dGVuZHMgcTB7'@; put 'Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIoKSx0aGlzLnBhcmVudD1hLHRoaXMuc291cmNlPWQsdGhpcy5zY29wZXM9aCx0aGlzLnJlY29yZHM9bmV3IE1hcCx0aGlzLl9uZ09uRGVzdHJveUhvb2tzPW5ldyBTZXQsdGhp'@; put 'cy5fb25EZXN0cm95SG9va3M9W10sdGhpcy5fZGVzdHJveWVkPSExLGR2KGwsXz0+dGhpcy5wcm9jZXNzUHJvdmlkZXIoXykpLHRoaXMucmVjb3Jkcy5zZXQoV0MsQjModm9pZCAwLHRoaXMpKSxoLmhhcygiZW52aXJvbm1lbnQiKSYmdGhpcy5yZWNvcmRzLnNldChxMCxCMyh2b2lkIDAsdGhp'@; put 'cykpO2NvbnN0IGY9dGhpcy5yZWNvcmRzLmdldCh0NSk7bnVsbCE9ZiYmInN0cmluZyI9PXR5cGVvZiBmLnZhbHVlJiZ0aGlzLnNjb3Blcy5hZGQoZi52YWx1ZSksdGhpcy5pbmplY3RvckRlZlR5cGVzPW5ldyBTZXQodGhpcy5nZXQoR0MubXVsdGksU3MsbnMuU2VsZikpfWRlc3Ryb3koKXt0'@; put 'aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpLHRoaXMuX2Rlc3Ryb3llZD0hMDt0cnl7Zm9yKGNvbnN0IGEgb2YgdGhpcy5fbmdPbkRlc3Ryb3lIb29rcylhLm5nT25EZXN0cm95KCk7Y29uc3QgbD10aGlzLl9vbkRlc3Ryb3lIb29rczt0aGlzLl9vbkRlc3Ryb3lIb29rcz1bXTtmb3IoY29uc3Qg'@; put 'YSBvZiBsKWEoKX1maW5hbGx5e3RoaXMucmVjb3Jkcy5jbGVhcigpLHRoaXMuX25nT25EZXN0cm95SG9va3MuY2xlYXIoKSx0aGlzLmluamVjdG9yRGVmVHlwZXMuY2xlYXIoKX19b25EZXN0cm95KGwpe3JldHVybiB0aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpLHRoaXMuX29uRGVzdHJveUhv'@; put 'b2tzLnB1c2gobCksKCk9PnRoaXMucmVtb3ZlT25EZXN0cm95KGwpfXJ1bkluQ29udGV4dChsKXt0aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpO2NvbnN0IGE9QTEodGhpcyksZD1kaSh2b2lkIDApO3RyeXtyZXR1cm4gbCgpfWZpbmFsbHl7QTEoYSksZGkoZCl9fWdldChsLGE9czAsZD1ucy5E'@; put 'ZWZhdWx0KXtpZih0aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpLGwuaGFzT3duUHJvcGVydHkobWEpKXJldHVybiBsW21hXSh0aGlzKTtkPWEwKGQpO2NvbnN0IGg9QTEodGhpcyksZj1kaSh2b2lkIDApO3RyeXtpZighKGQmbnMuU2tpcFNlbGYpKXtsZXQgVD10aGlzLnJlY29yZHMuZ2V0KGwp'@; put 'O2lmKHZvaWQgMD09PVQpe2NvbnN0IFc9ZnVuY3Rpb24gQ0koYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGN8fCJvYmplY3QiPT10eXBlb2YgYyYmYyBpbnN0YW5jZW9mIFNpfShsKSYmeGQobCk7VD1XJiZ0aGlzLmluamVjdGFibGVEZWZJblNjb3BlKFcpP0IzKHV2KGwpLG82KTpudWxs'@; put 'LHRoaXMucmVjb3Jkcy5zZXQobCxUKX1pZihudWxsIT1UKXJldHVybiB0aGlzLmh5ZHJhdGUobCxUKX1yZXR1cm4oZCZucy5TZWxmP3M2KCk6dGhpcy5wYXJlbnQpLmdldChsLGE9ZCZucy5PcHRpb25hbCYmYT09PXMwP251bGw6YSl9Y2F0Y2goXyl7aWYoIk51bGxJbmplY3RvckVycm9yIj09'@; put 'PV8ubmFtZSl7aWYoKF9ba3VdPV9ba3VdfHxbXSkudW5zaGlmdChxYShsKSksaCl0aHJvdyBfO3JldHVybiBmdW5jdGlvbiBBdShjLGwsYSxkKXtjb25zdCBoPWNba3VdO3Rocm93IGxbb21dJiZoLnVuc2hpZnQobFtvbV0pLGMubWVzc2FnZT1mdW5jdGlvbiBBZChjLGwsYSxkPW51bGwpe2M9'@; put 'YyYmIlxuIj09PWMuY2hhckF0KDApJiYiXHUwMjc1Ij09Yy5jaGFyQXQoMSk/Yy5zbGljZSgyKTpjO2xldCBoPXFhKGwpO2lmKEFycmF5LmlzQXJyYXkobCkpaD1sLm1hcChxYSkuam9pbigiIC0+ICIpO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiBsKXtsZXQgZj1bXTtmb3IobGV0IF8gaW4g'@; put 'bClpZihsLmhhc093blByb3BlcnR5KF8pKXtsZXQgVD1sW19dO2YucHVzaChfKyI6IisoInN0cmluZyI9PXR5cGVvZiBUP0pTT04uc3RyaW5naWZ5KFQpOnFhKFQpKSl9aD1geyR7Zi5qb2luKCIsICIpfX1gfXJldHVybmAke2F9JHtkPyIoIitkKyIpIjoiIn1bJHtofV06ICR7Yy5yZXBsYWNl'@; put 'KHJjLCJcbiAgIil9YH0oIlxuIitjLm1lc3NhZ2UsaCxhLGQpLGMubmdUb2tlblBhdGg9aCxjW2t1XT1udWxsLGN9KF8sbCwiUjNJbmplY3RvckVycm9yIix0aGlzLnNvdXJjZSl9dGhyb3cgX31maW5hbGx5e2RpKGYpLEExKGgpfX1yZXNvbHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKXtjb25z'@; put 'dCBsPUExKHRoaXMpLGE9ZGkodm9pZCAwKTt0cnl7Y29uc3QgZD10aGlzLmdldChRNC5tdWx0aSxTcyxucy5TZWxmKTtmb3IoY29uc3QgaCBvZiBkKWgoKX1maW5hbGx5e0ExKGwpLGRpKGEpfX10b1N0cmluZygpe2NvbnN0IGw9W10sYT10aGlzLnJlY29yZHM7Zm9yKGNvbnN0IGQgb2YgYS5r'@; put 'ZXlzKCkpbC5wdXNoKHFhKGQpKTtyZXR1cm5gUjNJbmplY3Rvclske2wuam9pbigiLCAiKX1dYH1hc3NlcnROb3REZXN0cm95ZWQoKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IEFyKDIwNSwhMSl9cHJvY2Vzc1Byb3ZpZGVyKGwpe2xldCBhPWxmKGw9Ym8obCkpP2w6Ym8obCYmbC5w'@; put 'cm92aWRlKTtjb25zdCBkPWZ1bmN0aW9uIGJJKGMpe3JldHVybiBhdihjKT9CMyh2b2lkIDAsYy51c2VWYWx1ZSk6QjMoUUMoYyksbzYpfShsKTtpZihsZihsKXx8ITAhPT1sLm11bHRpKXRoaXMucmVjb3Jkcy5nZXQoYSk7ZWxzZXtsZXQgaD10aGlzLnJlY29yZHMuZ2V0KGEpO2h8fChoPUIz'@; put 'KHZvaWQgMCxvNiwhMCksaC5mYWN0b3J5PSgpPT5LYyhoLm11bHRpKSx0aGlzLnJlY29yZHMuc2V0KGEsaCkpLGE9bCxoLm11bHRpLnB1c2gobCl9dGhpcy5yZWNvcmRzLnNldChhLGQpfWh5ZHJhdGUobCxhKXtyZXR1cm4gYS52YWx1ZT09PW82JiYoYS52YWx1ZT12SSxhLnZhbHVlPWEuZmFj'@; put 'dG9yeSgpKSwib2JqZWN0Ij09dHlwZW9mIGEudmFsdWUmJmEudmFsdWUmJmZ1bmN0aW9uIHdJKGMpe3JldHVybiBudWxsIT09YyYmIm9iamVjdCI9PXR5cGVvZiBjJiYiZnVuY3Rpb24iPT10eXBlb2YgYy5uZ09uRGVzdHJveX0oYS52YWx1ZSkmJnRoaXMuX25nT25EZXN0cm95SG9va3MuYWRk'@; put 'KGEudmFsdWUpLGEudmFsdWV9aW5qZWN0YWJsZURlZkluU2NvcGUobCl7aWYoIWwucHJvdmlkZWRJbilyZXR1cm4hMTtjb25zdCBhPWJvKGwucHJvdmlkZWRJbik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhPyJhbnkiPT09YXx8dGhpcy5zY29wZXMuaGFzKGEpOnRoaXMuaW5qZWN0b3JEZWZU'@; put 'eXBlcy5oYXMoYSl9cmVtb3ZlT25EZXN0cm95KGwpe2NvbnN0IGE9dGhpcy5fb25EZXN0cm95SG9va3MuaW5kZXhPZihsKTstMSE9PWEmJnRoaXMuX29uRGVzdHJveUhvb2tzLnNwbGljZShhLDEpfX1mdW5jdGlvbiB1dihjKXtjb25zdCBsPXhkKGMpLGE9bnVsbCE9PWw/bC5mYWN0b3J5Okgx'@; put 'KGMpO2lmKG51bGwhPT1hKXJldHVybiBhO2lmKGMgaW5zdGFuY2VvZiBTaSl0aHJvdyBuZXcgQXIoMjA0LCExKTtpZihjIGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuIGZ1bmN0aW9uIF9JKGMpe2NvbnN0IGw9Yy5sZW5ndGg7aWYobD4wKXRocm93IEJkKGwsIj8iKSxuZXcgQXIoMjA0LCEx'@; put 'KTtjb25zdCBhPWZ1bmN0aW9uIEhzKGMpe3JldHVybiBjJiYoY1tjM118fGNbTnNdKXx8bnVsbH0oYyk7cmV0dXJuIG51bGwhPT1hPygpPT5hLmZhY3RvcnkoYyk6KCk9Pm5ldyBjfShjKTt0aHJvdyBuZXcgQXIoMjA0LCExKX1mdW5jdGlvbiBRQyhjLGwsYSl7bGV0IGQ7aWYobGYoYykpe2Nv'@; put 'bnN0IGg9Ym8oYyk7cmV0dXJuIEgxKGgpfHx1dihoKX1pZihhdihjKSlkPSgpPT5ibyhjLnVzZVZhbHVlKTtlbHNlIGlmKGZ1bmN0aW9uIEpDKGMpe3JldHVybiEoIWN8fCFjLnVzZUZhY3RvcnkpfShjKSlkPSgpPT5jLnVzZUZhY3RvcnkoLi4uS2MoYy5kZXBzfHxbXSkpO2Vsc2UgaWYoZnVu'@; put 'Y3Rpb24gWEMoYyl7cmV0dXJuISghY3x8IWMudXNlRXhpc3RpbmcpfShjKSlkPSgpPT5hcihibyhjLnVzZUV4aXN0aW5nKSk7ZWxzZXtjb25zdCBoPWJvKGMmJihjLnVzZUNsYXNzfHxjLnByb3ZpZGUpKTtpZighZnVuY3Rpb24geUkoYyl7cmV0dXJuISFjLmRlcHN9KGMpKXJldHVybiBIMSho'@; put 'KXx8dXYoaCk7ZD0oKT0+bmV3IGgoLi4uS2MoYy5kZXBzKSl9cmV0dXJuIGR9ZnVuY3Rpb24gQjMoYyxsLGE9ITEpe3JldHVybntmYWN0b3J5OmMsdmFsdWU6bCxtdWx0aTphP1tdOnZvaWQgMH19ZnVuY3Rpb24gZHYoYyxsKXtmb3IoY29uc3QgYSBvZiBjKUFycmF5LmlzQXJyYXkoYSk/ZHYo'@; put 'YSxsKTphJiZUMihhKT9kdihhLlx1MDI3NXByb3ZpZGVycyxsKTpsKGEpfWNvbnN0IGE2PW5ldyBTaSgiQXBwSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5TSX0pLFNJPSJuZyIsZVM9bmV3IFNpKCJQbGF0Zm9ybSBJbml0aWFsaXplciIpLEdzPW5ldyBTaSgiUGxhdGZvcm0g'@; put 'SUQiLHtwcm92aWRlZEluOiJwbGF0Zm9ybSIsZmFjdG9yeTooKT0+InVua25vd24ifSksdFM9bmV3IFNpKCJBbmltYXRpb25Nb2R1bGVUeXBlIiksbDY9bmV3IFNpKCJDU1Agbm9uY2UiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5LNCgpLmJvZHk/LnF1ZXJ5U2VsZWN0b3IoIltu'@; put 'Z0NzcE5vbmNlXSIpPy5nZXRBdHRyaWJ1dGUoIm5nQ3NwTm9uY2UiKXx8bnVsbH0pO2xldCByUz0oYyxsKT0+bnVsbDtmdW5jdGlvbiBvUyhjLGwpe3JldHVybiByUyhjLGwpfWNsYXNzIGxTe31jbGFzcyBjU3t9Y2xhc3MgWjN7cmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkobCl7dGhyb3cgZnVu'@; put 'Y3Rpb24geXYoYyl7Y29uc3QgbD1FcnJvcihgTm8gY29tcG9uZW50IGZhY3RvcnkgZm91bmQgZm9yICR7cWEoYyl9LmApO3JldHVybiBsLm5nQ29tcG9uZW50PWMsbH0obCl9fWxldCBLMD0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5OVUxMPW5ldyBaMyxjfSkoKTtmdW5jdGlvbiB3digpe3Jl'@; put 'dHVybiBZZChNYygpLFhyKCkpfWZ1bmN0aW9uIFlkKGMsbCl7cmV0dXJuIG5ldyBOaShObChjLGwpKX1sZXQgTmk9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5hdGl2ZUVsZW1lbnQ9YX19cmV0dXJuIGMuX19OR19FTEVNRU5UX0lEX189d3YsY30pKCk7ZnVuY3Rpb24gZGYo'@; put 'Yyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBOaT9jLm5hdGl2ZUVsZW1lbnQ6Y31jbGFzcyBZM3t9bGV0IEZvPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmRlc3Ryb3lOb2RlPW51bGx9fXJldHVybiBjLl9fTkdfRUxFTUVOVF9JRF9fPSgpPT5mdW5jdGlvbiBndSgpe2NvbnN0IGM9'@; put 'WHIoKSxhPW10KE1jKCkuaW5kZXgsYyk7cmV0dXJuKFNjKGEpP2E6YylbVm9dfSgpLGN9KSgpLHA2PSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+bnVsbH0pLGN9KSgpO2NsYXNzIHM1e2NvbnN0cnVj'@; put 'dG9yKGwpe3RoaXMuZnVsbD1sLHRoaXMubWFqb3I9bC5zcGxpdCgiLiIpWzBdLHRoaXMubWlub3I9bC5zcGxpdCgiLiIpWzFdLHRoaXMucGF0Y2g9bC5zcGxpdCgiLiIpLnNsaWNlKDIpLmpvaW4oIi4iKX19Y29uc3QgQUk9bmV3IHM1KCIxNi4xLjciKSxDdj17fTtmdW5jdGlvbiBhNShjKXtm'@; put 'b3IoO2M7KXtjW0RvXXw9NjQ7Y29uc3QgbD1aNChjKTtpZih4NChjKSYmIWwpcmV0dXJuIGM7Yz1sfXJldHVybiBudWxsfWZ1bmN0aW9uIFN2KGMpe3JldHVybiBjLm5nT3JpZ2luYWxFcnJvcn1jbGFzcyBoZntjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvbnNvbGU9Y29uc29sZX1oYW5kbGVFcnJv'@; put 'cihsKXtjb25zdCBhPXRoaXMuX2ZpbmRPcmlnaW5hbEVycm9yKGwpO3RoaXMuX2NvbnNvbGUuZXJyb3IoIkVSUk9SIixsKSxhJiZ0aGlzLl9jb25zb2xlLmVycm9yKCJPUklHSU5BTCBFUlJPUiIsYSl9X2ZpbmRPcmlnaW5hbEVycm9yKGwpe2xldCBhPWwmJlN2KGwpO2Zvcig7YSYmU3YoYSk7'@; put 'KWE9U3YoYSk7cmV0dXJuIGF8fG51bGx9fWNvbnN0IHh2PW5ldyBTaSgiIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+ITF9KTtmdW5jdGlvbiBtNihjKXtyZXR1cm4gYy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGZmKGMpe3JldHVybiBjLm93bmVyRG9jdW1l'@; put 'bnR9ZnVuY3Rpb24gRXYoYyl7cmV0dXJuIGMub3duZXJEb2N1bWVudC5ib2R5fWZ1bmN0aW9uIFdkKGMpe3JldHVybiBjIGluc3RhbmNlb2YgRnVuY3Rpb24/YygpOmN9Y2xhc3MgdjYgZXh0ZW5kcyB2M3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb25zdW1lckFs'@; put 'bG93U2lnbmFsV3JpdGVzPSExLHRoaXMuX2xWaWV3PW51bGx9c2V0IGxWaWV3KGwpe3RoaXMuX2xWaWV3PWx9b25Db25zdW1lckRlcGVuZGVuY3lNYXlIYXZlQ2hhbmdlZCgpe2E1KHRoaXMuX2xWaWV3KX1vblByb2R1Y2VyVXBkYXRlVmFsdWVWZXJzaW9uKCl7fWdldCBoYXNSZWFkQVNpZ25h'@; put 'bCgpe3JldHVybiB0aGlzLmhhc1Byb2R1Y2Vyc31ydW5JbkNvbnRleHQobCxhLGQpe2NvbnN0IGg9ZmwodGhpcyk7dGhpcy50cmFja2luZ1ZlcnNpb24rKzt0cnl7bChhLGQpfWZpbmFsbHl7ZmwoaCl9fWRlc3Ryb3koKXt0aGlzLnRyYWNraW5nVmVyc2lvbisrfX1sZXQgXzY9bnVsbDtmdW5j'@; put 'dGlvbiBtUygpe3JldHVybiBfNj8/PW5ldyB2NixfNn1mdW5jdGlvbiB2UyhjLGwpe3JldHVybiBjW2xdPz9tUygpfWZ1bmN0aW9uIF9TKGMsbCl7Y29uc3QgYT1tUygpO2EuaGFzUmVhZEFTaWduYWwmJihjW2xdPV82LGEubFZpZXc9YyxfNj1uZXcgdjYpfWNvbnN0IFpvPXt9O2Z1bmN0aW9u'@; put 'IENlKGMpe2t2KFRzKCksWHIoKSxldSgpK2MsITEpfWZ1bmN0aW9uIGt2KGMsbCxhLGQpe2lmKCFkKWlmKDM9PSgzJmxbRG9dKSl7Y29uc3QgZj1jLnByZU9yZGVyQ2hlY2tIb29rcztudWxsIT09ZiYma20obCxmLGEpfWVsc2V7Y29uc3QgZj1jLnByZU9yZGVySG9va3M7bnVsbCE9PWYmJkFt'@; put 'KGwsZiwwLGEpfVhoKGEpfWZ1bmN0aW9uIEF2KGMsbD1udWxsLGE9bnVsbCxkKXtjb25zdCBoPVR2KGMsbCxhLGQpO3JldHVybiBoLnJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpLGh9ZnVuY3Rpb24gVHYoYyxsPW51bGwsYT1udWxsLGQsaD1uZXcgU2V0KXtjb25zdCBmPVthfHxTcyxn'@; put 'SShjKV07cmV0dXJuIGQ9ZHx8KCJvYmplY3QiPT10eXBlb2YgYz92b2lkIDA6cWEoYykpLG5ldyBjdihmLGx8fHM2KCksZHx8bnVsbCxoKX1sZXQgRWE9KCgpPT57Y2xhc3MgY3tzdGF0aWMgY3JlYXRlKGEsZCl7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gQXYoe25hbWU6IiJ9LGQsYSwi'@; put 'Iik7e2NvbnN0IGg9YS5uYW1lPz8iIjtyZXR1cm4gQXYoe25hbWU6aH0sYS5wYXJlbnQsYS5wcm92aWRlcnMsaCl9fX1yZXR1cm4gYy5USFJPV19JRl9OT1RfRk9VTkQ9czAsYy5OVUxMPW5ldyAkQyxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMscHJvdmlkZWRJbjoiYW55IixmYWN0b3J5Oigp'@; put 'PT5hcihXQyl9KSxjLl9fTkdfRUxFTUVOVF9JRF9fPS0xLGN9KSgpO2Z1bmN0aW9uIHR0KGMsbD1ucy5EZWZhdWx0KXtjb25zdCBhPVhyKCk7cmV0dXJuIG51bGw9PT1hP2FyKGMsbCk6bkMoTWMoKSxhLGJvKGMpLGwpfWZ1bmN0aW9uIGI2KGMsbCxhLGQsaCxmLF8sVCxXLGllLHBlKXtjb25z'@; put 'dCB3ZT1sLmJsdWVwcmludC5zbGljZSgpO3JldHVybiB3ZVtIaV09aCx3ZVtEb109MTQwfGQsKG51bGwhPT1pZXx8YyYmMjA0OCZjW0RvXSkmJih3ZVtEb118PTIwNDgpLHlvKHdlKSx3ZVt1YV09d2VbUGxdPWMsd2VbVmFdPWEsd2VbTDFdPV98fGMmJmNbTDFdLHdlW1ZvXT1UfHxjJiZjW1Zv'@; put 'XSx3ZVtMZF09V3x8YyYmY1tMZF18fG51bGwsd2Vbem9dPWYsd2VbJGhdPWZ1bmN0aW9uIFcyKCl7cmV0dXJuIE45Kyt9KCksd2VbdTBdPXBlLHdlW1IxXT1pZSx3ZVtKYV09Mj09bC50eXBlP2NbSmFdOndlLHdlfWZ1bmN0aW9uIEczKGMsbCxhLGQsaCl7bGV0IGY9Yy5kYXRhW2xdO2lmKG51'@; put 'bGw9PT1mKWY9ZnVuY3Rpb24gRHYoYyxsLGEsZCxoKXtjb25zdCBmPUZ3KCksXz1iOSgpLFc9Yy5kYXRhW2xdPWZ1bmN0aW9uIHc2KGMsbCxhLGQsaCxmKXtsZXQgXz1sP2wuaW5qZWN0b3JJbmRleDotMSxUPTA7cmV0dXJuIHczKCkmJihUfD0xMjgpLHt0eXBlOmEsaW5kZXg6ZCxpbnNlcnRC'@; put 'ZWZvcmVJbmRleDpudWxsLGluamVjdG9ySW5kZXg6XyxkaXJlY3RpdmVTdGFydDotMSxkaXJlY3RpdmVFbmQ6LTEsZGlyZWN0aXZlU3R5bGluZ0xhc3Q6LTEsY29tcG9uZW50T2Zmc2V0Oi0xLHByb3BlcnR5QmluZGluZ3M6bnVsbCxmbGFnczpULHByb3ZpZGVySW5kZXhlczowLHZhbHVlOmgs'@; put 'YXR0cnM6ZixtZXJnZWRBdHRyczpudWxsLGxvY2FsTmFtZXM6bnVsbCxpbml0aWFsSW5wdXRzOnZvaWQgMCxpbnB1dHM6bnVsbCxvdXRwdXRzOm51bGwsdFZpZXc6bnVsbCxuZXh0Om51bGwscHJldjpudWxsLHByb2plY3Rpb25OZXh0Om51bGwsY2hpbGQ6bnVsbCxwYXJlbnQ6bCxwcm9qZWN0'@; put 'aW9uOm51bGwsc3R5bGVzOm51bGwsc3R5bGVzV2l0aG91dEhvc3Q6bnVsbCxyZXNpZHVhbFN0eWxlczp2b2lkIDAsY2xhc3NlczpudWxsLGNsYXNzZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsQ2xhc3Nlczp2b2lkIDAsY2xhc3NCaW5kaW5nczowLHN0eWxlQmluZGluZ3M6MH19KDAsXz9m'@; put 'OmYmJmYucGFyZW50LGEsbCxkLGgpO3JldHVybiBudWxsPT09Yy5maXJzdENoaWxkJiYoYy5maXJzdENoaWxkPVcpLG51bGwhPT1mJiYoXz9udWxsPT1mLmNoaWxkJiZudWxsIT09Vy5wYXJlbnQmJihmLmNoaWxkPVcpOm51bGw9PT1mLm5leHQmJihmLm5leHQ9VyxXLnByZXY9ZikpLFd9KGMs'@; put 'bCxhLGQsaCksZnVuY3Rpb24gcVQoKXtyZXR1cm4gUG8ubEZyYW1lLmluSTE4bn0oKSYmKGYuZmxhZ3N8PTMyKTtlbHNlIGlmKDY0JmYudHlwZSl7Zi50eXBlPWEsZi52YWx1ZT1kLGYuYXR0cnM9aDtjb25zdCBfPWZ1bmN0aW9uIEw0KCl7Y29uc3QgYz1Qby5sRnJhbWUsbD1jLmN1cnJlbnRU'@; put 'Tm9kZTtyZXR1cm4gYy5pc1BhcmVudD9sOmwucGFyZW50fSgpO2YuaW5qZWN0b3JJbmRleD1udWxsPT09Xz8tMTpfLmluamVjdG9ySW5kZXh9cmV0dXJuIE4xKGYsITApLGZ9ZnVuY3Rpb24gbDUoYyxsLGEsZCl7aWYoMD09PWEpcmV0dXJuLTE7Y29uc3QgaD1sLmxlbmd0aDtmb3IobGV0IGY9'@; put 'MDtmPGE7ZisrKWwucHVzaChkKSxjLmJsdWVwcmludC5wdXNoKGQpLGMuZGF0YS5wdXNoKG51bGwpO3JldHVybiBofWZ1bmN0aW9uIEVTKGMsbCxhLGQsaCl7Y29uc3QgZj12UyhsLHAzKSxfPWV1KCksVD0yJmQ7dHJ5e2lmKFhoKC0xKSxUJiZsLmxlbmd0aD5wcyYma3YoYyxsLHBzLCExKSxo'@; put 'MChUPzI6MCxoKSxUKWYucnVuSW5Db250ZXh0KGEsZCxoKTtlbHNle2NvbnN0IGllPWZsKG51bGwpO3RyeXthKGQsaCl9ZmluYWxseXtmbChpZSl9fX1maW5hbGx5e1QmJm51bGw9PT1sW3AzXSYmX1MobCxwMyksWGgoXyksaDAoVD8zOjEsaCl9fWZ1bmN0aW9uIEl2KGMsbCxhKXtpZihPZChs'@; put 'KSl7Y29uc3QgZD1mbChudWxsKTt0cnl7Y29uc3QgZj1sLmRpcmVjdGl2ZUVuZDtmb3IobGV0IF89bC5kaXJlY3RpdmVTdGFydDtfPGY7XysrKXtjb25zdCBUPWMuZGF0YVtfXTtULmNvbnRlbnRRdWVyaWVzJiZULmNvbnRlbnRRdWVyaWVzKDEsYVtfXSxfKX19ZmluYWxseXtmbChkKX19fWZ1'@; put 'bmN0aW9uIEx2KGMsbCxhKXtQdygpJiYoZnVuY3Rpb24gWUkoYyxsLGEsZCl7Y29uc3QgaD1hLmRpcmVjdGl2ZVN0YXJ0LGY9YS5kaXJlY3RpdmVFbmQ7UDEoYSkmJmZ1bmN0aW9uIEpJKGMsbCxhKXtjb25zdCBkPU5sKGwsYyksaD1rUyhhKTtsZXQgXz0xNjthLnNpZ25hbHM/Xz00MDk2OmEu'@; put 'b25QdXNoJiYoXz02NCk7Y29uc3QgVD1TNihjLGI2KGMsaCxudWxsLF8sZCxsLG51bGwsY1tMMV0ucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKGQsYSksbnVsbCxudWxsLG51bGwpKTtjW2wuaW5kZXhdPVR9KGwsYSxjLmRhdGFbaCthLmNvbXBvbmVudE9mZnNldF0pLGMuZmlyc3RD'@; put 'cmVhdGVQYXNzfHxJbShhLGwpLEJjKGQsbCk7Y29uc3QgXz1hLmluaXRpYWxJbnB1dHM7Zm9yKGxldCBUPWg7VDxmO1QrKyl7Y29uc3QgVz1jLmRhdGFbVF0saWU9UWgobCxjLFQsYSk7QmMoaWUsbCksbnVsbCE9PV8mJlFJKDAsVC1oLGllLFcsMCxfKSxRYyhXKSYmKG10KGEuaW5kZXgsbClb'@; put 'VmFdPVFoKGwsYyxULGEpKX19KGMsbCxhLE5sKGEsbCkpLDY0PT0oNjQmYS5mbGFncykmJlJTKGMsbCxhKSl9ZnVuY3Rpb24geTYoYyxsLGE9Tmwpe2NvbnN0IGQ9bC5sb2NhbE5hbWVzO2lmKG51bGwhPT1kKXtsZXQgaD1sLmluZGV4KzE7Zm9yKGxldCBmPTA7ZjxkLmxlbmd0aDtmKz0yKXtj'@; put 'b25zdCBfPWRbZisxXSxUPS0xPT09Xz9hKGwsYyk6Y1tfXTtjW2grK109VH19fWZ1bmN0aW9uIGtTKGMpe2NvbnN0IGw9Yy50VmlldztyZXR1cm4gbnVsbD09PWx8fGwuaW5jb21wbGV0ZUZpcnN0UGFzcz9jLnRWaWV3PSQzKDEsbnVsbCxjLnRlbXBsYXRlLGMuZGVjbHMsYy52YXJzLGMuZGly'@; put 'ZWN0aXZlRGVmcyxjLnBpcGVEZWZzLGMudmlld1F1ZXJ5LGMuc2NoZW1hcyxjLmNvbnN0cyxjLmlkKTpsfWZ1bmN0aW9uICQzKGMsbCxhLGQsaCxmLF8sVCxXLGllLHBlKXtjb25zdCB3ZT1wcytkLEVlPXdlK2gsWmU9ZnVuY3Rpb24gQVMoYyxsKXtjb25zdCBhPVtdO2ZvcihsZXQgZD0wO2Q8'@; put 'bDtkKyspYS5wdXNoKGQ8Yz9udWxsOlpvKTtyZXR1cm4gYX0od2UsRWUpLGl0PSJmdW5jdGlvbiI9PXR5cGVvZiBpZT9pZSgpOmllO3JldHVybiBaZVtCaV09e3R5cGU6YyxibHVlcHJpbnQ6WmUsdGVtcGxhdGU6YSxxdWVyaWVzOm51bGwsdmlld1F1ZXJ5OlQsZGVjbFROb2RlOmwsZGF0YTpa'@; put 'ZS5zbGljZSgpLmZpbGwobnVsbCx3ZSksYmluZGluZ1N0YXJ0SW5kZXg6d2UsZXhwYW5kb1N0YXJ0SW5kZXg6RWUsaG9zdEJpbmRpbmdPcENvZGVzOm51bGwsZmlyc3RDcmVhdGVQYXNzOiEwLGZpcnN0VXBkYXRlUGFzczohMCxzdGF0aWNWaWV3UXVlcmllczohMSxzdGF0aWNDb250ZW50UXVl'@; put 'cmllczohMSxwcmVPcmRlckhvb2tzOm51bGwscHJlT3JkZXJDaGVja0hvb2tzOm51bGwsY29udGVudEhvb2tzOm51bGwsY29udGVudENoZWNrSG9va3M6bnVsbCx2aWV3SG9va3M6bnVsbCx2aWV3Q2hlY2tIb29rczpudWxsLGRlc3Ryb3lIb29rczpudWxsLGNsZWFudXA6bnVsbCxjb250ZW50'@; put 'UXVlcmllczpudWxsLGNvbXBvbmVudHM6bnVsbCxkaXJlY3RpdmVSZWdpc3RyeToiZnVuY3Rpb24iPT10eXBlb2YgZj9mKCk6ZixwaXBlUmVnaXN0cnk6ImZ1bmN0aW9uIj09dHlwZW9mIF8/XygpOl8sZmlyc3RDaGlsZDpudWxsLHNjaGVtYXM6Vyxjb25zdHM6aXQsaW5jb21wbGV0ZUZpcnN0'@; put 'UGFzczohMSxzc3JJZDpwZX19bGV0IFJ2PWM9Pm51bGw7ZnVuY3Rpb24gcGYoYyxsLGEsZCl7Zm9yKGxldCBoIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShoKSl7YT1udWxsPT09YT97fTphO2NvbnN0IGY9Y1toXTtudWxsPT09ZD9DNihhLGwsaCxmKTpkLmhhc093blByb3BlcnR5KGgpJiZD'@; put 'NihhLGwsZFtoXSxmKX1yZXR1cm4gYX1mdW5jdGlvbiBDNihjLGwsYSxkKXtjLmhhc093blByb3BlcnR5KGEpP2NbYV0ucHVzaChsLGQpOmNbYV09W2wsZF19ZnVuY3Rpb24gUHUoYyxsLGEsZCxoLGYsXyxUKXtjb25zdCBXPU5sKGwsYSk7bGV0IHBlLGllPWwuaW5wdXRzOyFUJiZudWxsIT1p'@; put 'ZSYmKHBlPWllW2RdKT8oTnYoYyxhLHBlLGQsaCksUDEobCkmJmZ1bmN0aW9uIGpJKGMsbCl7Y29uc3QgYT1tdChsLGMpOzE2JmFbRG9dfHwoYVtEb118PTY0KX0oYSxsLmluZGV4KSk6MyZsLnR5cGUmJihkPWZ1bmN0aW9uIExTKGMpe3JldHVybiJjbGFzcyI9PT1jPyJjbGFzc05hbWUiOiJm'@; put 'b3IiPT09Yz8iaHRtbEZvciI6ImZvcm1hY3Rpb24iPT09Yz8iZm9ybUFjdGlvbiI6ImlubmVySHRtbCI9PT1jPyJpbm5lckhUTUwiOiJyZWFkb25seSI9PT1jPyJyZWFkT25seSI6InRhYmluZGV4Ij09PWM/InRhYkluZGV4IjpjfShkKSxoPW51bGwhPV8/XyhoLGwudmFsdWV8fCIiLGQpOmgs'@; put 'Zi5zZXRQcm9wZXJ0eShXLGQsaCkpfWZ1bmN0aW9uIE92KGMsbCxhLGQpe2lmKFB3KCkpe2NvbnN0IGg9bnVsbD09PWQ/bnVsbDp7IiI6LTF9LGY9ZnVuY3Rpb24gR0koYyxsKXtjb25zdCBhPWMuZGlyZWN0aXZlUmVnaXN0cnk7bGV0IGQ9bnVsbCxoPW51bGw7aWYoYSlmb3IobGV0IGY9MDtm'@; put 'PGEubGVuZ3RoO2YrKyl7Y29uc3QgXz1hW2ZdO2lmKG00KGwsXy5zZWxlY3RvcnMsITEpKWlmKGR8fChkPVtdKSxRYyhfKSlpZihudWxsIT09Xy5maW5kSG9zdERpcmVjdGl2ZURlZnMpe2NvbnN0IFQ9W107aD1ofHxuZXcgTWFwLF8uZmluZEhvc3REaXJlY3RpdmVEZWZzKF8sVCxoKSxkLnVu'@; put 'c2hpZnQoLi4uVCxfKSxQdihjLGwsVC5sZW5ndGgpfWVsc2UgZC51bnNoaWZ0KF8pLFB2KGMsbCwwKTtlbHNlIGg9aHx8bmV3IE1hcCxfLmZpbmRIb3N0RGlyZWN0aXZlRGVmcz8uKF8sZCxoKSxkLnB1c2goXyl9cmV0dXJuIG51bGw9PT1kP251bGw6W2QsaF19KGMsYSk7bGV0IF8sVDtudWxs'@; put 'PT09Zj9fPVQ9bnVsbDpbXyxUXT1mLG51bGwhPT1fJiZjNShjLGwsYSxfLGgsVCksaCYmZnVuY3Rpb24gJEkoYyxsLGEpe2lmKGwpe2NvbnN0IGQ9Yy5sb2NhbE5hbWVzPVtdO2ZvcihsZXQgaD0wO2g8bC5sZW5ndGg7aCs9Mil7Y29uc3QgZj1hW2xbaCsxXV07aWYobnVsbD09Zil0aHJvdyBu'@; put 'ZXcgQXIoLTMwMSwhMSk7ZC5wdXNoKGxbaF0sZil9fX0oYSxkLGgpfWEubWVyZ2VkQXR0cnM9WWgoYS5tZXJnZWRBdHRycyxhLmF0dHJzKX1mdW5jdGlvbiBjNShjLGwsYSxkLGgsZil7Zm9yKGxldCBpZT0wO2llPGQubGVuZ3RoO2llKyspVDkoSW0oYSxsKSxjLGRbaWVdLnR5cGUpOyFmdW5j'@; put 'dGlvbiBLSShjLGwsYSl7Yy5mbGFnc3w9MSxjLmRpcmVjdGl2ZVN0YXJ0PWwsYy5kaXJlY3RpdmVFbmQ9bCthLGMucHJvdmlkZXJJbmRleGVzPWx9KGEsYy5kYXRhLmxlbmd0aCxkLmxlbmd0aCk7Zm9yKGxldCBpZT0wO2llPGQubGVuZ3RoO2llKyspe2NvbnN0IHBlPWRbaWVdO3BlLnByb3Zp'@; put 'ZGVyc1Jlc29sdmVyJiZwZS5wcm92aWRlcnNSZXNvbHZlcihwZSl9bGV0IF89ITEsVD0hMSxXPWw1KGMsbCxkLmxlbmd0aCxudWxsKTtmb3IobGV0IGllPTA7aWU8ZC5sZW5ndGg7aWUrKyl7Y29uc3QgcGU9ZFtpZV07YS5tZXJnZWRBdHRycz1ZaChhLm1lcmdlZEF0dHJzLHBlLmhvc3RBdHRy'@; put 'cyksWEkoYyxhLGwsVyxwZSkscUkoVyxwZSxoKSxudWxsIT09cGUuY29udGVudFF1ZXJpZXMmJihhLmZsYWdzfD00KSwobnVsbCE9PXBlLmhvc3RCaW5kaW5nc3x8bnVsbCE9PXBlLmhvc3RBdHRyc3x8MCE9PXBlLmhvc3RWYXJzKSYmKGEuZmxhZ3N8PTY0KTtjb25zdCB3ZT1wZS50eXBlLnBy'@; put 'b3RvdHlwZTshXyYmKHdlLm5nT25DaGFuZ2VzfHx3ZS5uZ09uSW5pdHx8d2UubmdEb0NoZWNrKSYmKChjLnByZU9yZGVySG9va3M/Pz1bXSkucHVzaChhLmluZGV4KSxfPSEwKSwhVCYmKHdlLm5nT25DaGFuZ2VzfHx3ZS5uZ0RvQ2hlY2spJiYoKGMucHJlT3JkZXJDaGVja0hvb2tzPz89W10p'@; put 'LnB1c2goYS5pbmRleCksVD0hMCksVysrfSFmdW5jdGlvbiBCSShjLGwsYSl7Y29uc3QgaD1sLmRpcmVjdGl2ZUVuZCxmPWMuZGF0YSxfPWwuYXR0cnMsVD1bXTtsZXQgVz1udWxsLGllPW51bGw7Zm9yKGxldCBwZT1sLmRpcmVjdGl2ZVN0YXJ0O3BlPGg7cGUrKyl7Y29uc3Qgd2U9ZltwZV0s'@; put 'RWU9YT9hLmdldCh3ZSk6bnVsbCxpdD1FZT9FZS5vdXRwdXRzOm51bGw7Vz1wZih3ZS5pbnB1dHMscGUsVyxFZT9FZS5pbnB1dHM6bnVsbCksaWU9cGYod2Uub3V0cHV0cyxwZSxpZSxpdCk7Y29uc3QgZXQ9bnVsbD09PVd8fG51bGw9PT1ffHx1MyhsKT9udWxsOmVMKFcscGUsXyk7VC5wdXNo'@; put 'KGV0KX1udWxsIT09VyYmKFcuaGFzT3duUHJvcGVydHkoImNsYXNzIikmJihsLmZsYWdzfD04KSxXLmhhc093blByb3BlcnR5KCJzdHlsZSIpJiYobC5mbGFnc3w9MTYpKSxsLmluaXRpYWxJbnB1dHM9VCxsLmlucHV0cz1XLGwub3V0cHV0cz1pZX0oYyxhLGYpfWZ1bmN0aW9uIFJTKGMsbCxh'@; put 'KXtjb25zdCBkPWEuZGlyZWN0aXZlU3RhcnQsaD1hLmRpcmVjdGl2ZUVuZCxmPWEuaW5kZXgsXz1mdW5jdGlvbiBWdygpe3JldHVybiBQby5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4fSgpO3RyeXtYaChmKTtmb3IobGV0IFQ9ZDtUPGg7VCsrKXtjb25zdCBXPWMuZGF0YVtUXSxpZT1s'@; put 'W1RdO1NtKFQpLChudWxsIT09Vy5ob3N0QmluZGluZ3N8fDAhPT1XLmhvc3RWYXJzfHxudWxsIT09Vy5ob3N0QXR0cnMpJiZXSShXLGllKX19ZmluYWxseXtYaCgtMSksU20oXyl9fWZ1bmN0aW9uIFdJKGMsbCl7bnVsbCE9PWMuaG9zdEJpbmRpbmdzJiZjLmhvc3RCaW5kaW5ncygxLGwpfWZ1'@; put 'bmN0aW9uIFB2KGMsbCxhKXtsLmNvbXBvbmVudE9mZnNldD1hLChjLmNvbXBvbmVudHM/Pz1bXSkucHVzaChsLmluZGV4KX1mdW5jdGlvbiBxSShjLGwsYSl7aWYoYSl7aWYobC5leHBvcnRBcylmb3IobGV0IGQ9MDtkPGwuZXhwb3J0QXMubGVuZ3RoO2QrKylhW2wuZXhwb3J0QXNbZF1dPWM7'@; put 'UWMobCkmJihhWyIiXT1jKX19ZnVuY3Rpb24gWEkoYyxsLGEsZCxoKXtjLmRhdGFbZF09aDtjb25zdCBmPWguZmFjdG9yeXx8KGguZmFjdG9yeT1IMShoLnR5cGUpKSxfPW5ldyBSNChmLFFjKGgpLHR0KTtjLmJsdWVwcmludFtkXT1fLGFbZF09XyxmdW5jdGlvbiBVSShjLGwsYSxkLGgpe2Nv'@; put 'bnN0IGY9aC5ob3N0QmluZGluZ3M7aWYoZil7bGV0IF89Yy5ob3N0QmluZGluZ09wQ29kZXM7bnVsbD09PV8mJihfPWMuaG9zdEJpbmRpbmdPcENvZGVzPVtdKTtjb25zdCBUPX5sLmluZGV4OyhmdW5jdGlvbiBaSShjKXtsZXQgbD1jLmxlbmd0aDtmb3IoO2w+MDspe2NvbnN0IGE9Y1stLWxd'@; put 'O2lmKCJudW1iZXIiPT10eXBlb2YgYSYmYTwwKXJldHVybiBhfXJldHVybiAwfSkoXykhPVQmJl8ucHVzaChUKSxfLnB1c2goYSxkLGYpfX0oYyxsLGQsbDUoYyxhLGguaG9zdFZhcnMsWm8pLGgpfWZ1bmN0aW9uICQxKGMsbCxhLGQsaCxmKXtjb25zdCBfPU5sKGMsbCk7IWZ1bmN0aW9uIEZ2'@; put 'KGMsbCxhLGQsaCxmLF8pe2lmKG51bGw9PWYpYy5yZW1vdmVBdHRyaWJ1dGUobCxoLGEpO2Vsc2V7Y29uc3QgVD1udWxsPT1fP2tvKGYpOl8oZixkfHwiIixoKTtjLnNldEF0dHJpYnV0ZShsLGgsVCxhKX19KGxbVm9dLF8sZixjLnZhbHVlLGEsZCxoKX1mdW5jdGlvbiBRSShjLGwsYSxkLGgs'@; put 'Zil7Y29uc3QgXz1mW2xdO2lmKG51bGwhPT1fKWZvcihsZXQgVD0wO1Q8Xy5sZW5ndGg7KU9TKGQsYSxfW1QrK10sX1tUKytdLF9bVCsrXSl9ZnVuY3Rpb24gT1MoYyxsLGEsZCxoKXtjb25zdCBmPWZsKG51bGwpO3RyeXtjb25zdCBfPWMuaW5wdXRUcmFuc2Zvcm1zO251bGwhPT1fJiZfLmhh'@; put 'c093blByb3BlcnR5KGQpJiYoaD1fW2RdLmNhbGwobCxoKSksbnVsbCE9PWMuc2V0SW5wdXQ/Yy5zZXRJbnB1dChsLGgsYSxkKTpsW2RdPWh9ZmluYWxseXtmbChmKX19ZnVuY3Rpb24gZUwoYyxsLGEpe2xldCBkPW51bGwsaD0wO2Zvcig7aDxhLmxlbmd0aDspe2NvbnN0IGY9YVtoXTtpZigw'@; put 'IT09ZilpZig1IT09Zil7aWYoIm51bWJlciI9PXR5cGVvZiBmKWJyZWFrO2lmKGMuaGFzT3duUHJvcGVydHkoZikpe251bGw9PT1kJiYoZD1bXSk7Y29uc3QgXz1jW2ZdO2ZvcihsZXQgVD0wO1Q8Xy5sZW5ndGg7VCs9MilpZihfW1RdPT09bCl7ZC5wdXNoKGYsX1tUKzFdLGFbaCsxXSk7YnJl'@; put 'YWt9fWgrPTJ9ZWxzZSBoKz0yO2Vsc2UgaCs9NH1yZXR1cm4gZH1mdW5jdGlvbiBQUyhjLGwsYSxkKXtyZXR1cm5bYywhMCwhMSxsLG51bGwsMCxkLGEsbnVsbCxudWxsLG51bGxdfWZ1bmN0aW9uIEZTKGMsbCl7Y29uc3QgYT1jLmNvbnRlbnRRdWVyaWVzO2lmKG51bGwhPT1hKWZvcihsZXQg'@; put 'ZD0wO2Q8YS5sZW5ndGg7ZCs9Mil7Y29uc3QgZj1hW2QrMV07aWYoLTEhPT1mKXtjb25zdCBfPWMuZGF0YVtmXTtDOShhW2RdKSxfLmNvbnRlbnRRdWVyaWVzKDIsbFtmXSxmKX19fWZ1bmN0aW9uIFM2KGMsbCl7cmV0dXJuIGNbR2hdP2NbUzRdW1hhXT1sOmNbR2hdPWwsY1tTNF09bCxsfWZ1'@; put 'bmN0aW9uIEh2KGMsbCxhKXtDOSgwKTtjb25zdCBkPWZsKG51bGwpO3RyeXtsKGMsYSl9ZmluYWxseXtmbChkKX19ZnVuY3Rpb24gSFMoYyl7cmV0dXJuIGNbVHVdfHwoY1tUdV09W10pfWZ1bmN0aW9uIE5TKGMpe3JldHVybiBjLmNsZWFudXB8fChjLmNsZWFudXA9W10pfWZ1bmN0aW9uIFZT'@; put 'KGMsbCxhKXtyZXR1cm4obnVsbD09PWN8fFFjKGMpKSYmKGE9ZnVuY3Rpb24gSTQoYyl7Zm9yKDtBcnJheS5pc0FycmF5KGMpOyl7aWYoIm9iamVjdCI9PXR5cGVvZiBjW000XSlyZXR1cm4gYztjPWNbSGldfXJldHVybiBudWxsfShhW2wuaW5kZXhdKSksYVtWb119ZnVuY3Rpb24gQlMoYyxs'@; put 'KXtjb25zdCBhPWNbTGRdLGQ9YT9hLmdldChoZixudWxsKTpudWxsO2QmJmQuaGFuZGxlRXJyb3IobCl9ZnVuY3Rpb24gTnYoYyxsLGEsZCxoKXtmb3IobGV0IGY9MDtmPGEubGVuZ3RoOyl7Y29uc3QgXz1hW2YrK10sVD1hW2YrK107T1MoYy5kYXRhW19dLGxbX10sZCxULGgpfX1mdW5jdGlv'@; put 'biBHZChjLGwsYSl7Y29uc3QgZD1ZMChsLGMpOyFmdW5jdGlvbiBNQyhjLGwsYSl7Yy5zZXRWYWx1ZShsLGEpfShjW1ZvXSxkLGEpfWZ1bmN0aW9uIHRMKGMsbCl7Y29uc3QgYT1tdChsLGMpLGQ9YVtCaV07IWZ1bmN0aW9uIG5MKGMsbCl7Zm9yKGxldCBhPWwubGVuZ3RoO2E8Yy5ibHVlcHJp'@; put 'bnQubGVuZ3RoO2ErKylsLnB1c2goYy5ibHVlcHJpbnRbYV0pfShkLGEpO2NvbnN0IGg9YVtIaV07bnVsbCE9PWgmJm51bGw9PT1hW3UwXSYmKGFbdTBdPW9TKGgsYVtMZF0pKSxWdihkLGEsYVtWYV0pfWZ1bmN0aW9uIFZ2KGMsbCxhKXtTOShsKTt0cnl7Y29uc3QgZD1jLnZpZXdRdWVyeTtu'@; put 'dWxsIT09ZCYmSHYoMSxkLGEpO2NvbnN0IGg9Yy50ZW1wbGF0ZTtudWxsIT09aCYmRVMoYyxsLGgsMSxhKSxjLmZpcnN0Q3JlYXRlUGFzcyYmKGMuZmlyc3RDcmVhdGVQYXNzPSExKSxjLnN0YXRpY0NvbnRlbnRRdWVyaWVzJiZGUyhjLGwpLGMuc3RhdGljVmlld1F1ZXJpZXMmJkh2KDIsYy52'@; put 'aWV3UXVlcnksYSk7Y29uc3QgZj1jLmNvbXBvbmVudHM7bnVsbCE9PWYmJmZ1bmN0aW9uIGpTKGMsbCl7Zm9yKGxldCBhPTA7YTxsLmxlbmd0aDthKyspdEwoYyxsW2FdKX0obCxmKX1jYXRjaChkKXt0aHJvdyBjLmZpcnN0Q3JlYXRlUGFzcyYmKGMuaW5jb21wbGV0ZUZpcnN0UGFzcz0hMCxj'@; put 'LmZpcnN0Q3JlYXRlUGFzcz0hMSksZH1maW5hbGx5e2xbRG9dJj0tNSxNbSgpfX1sZXQgelM9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuYWxsPW5ldyBTZXQsdGhpcy5xdWV1ZT1uZXcgTWFwfWNyZWF0ZShhLGQsaCl7Y29uc3QgZj10eXBlb2YgWm9uZT4idSI/bnVsbDpab25l'@; put 'LmN1cnJlbnQsXz1uZXcgX20oYSxpZT0+e3RoaXMuYWxsLmhhcyhpZSkmJnRoaXMucXVldWUuc2V0KGllLGYpfSxoKTtsZXQgVDt0aGlzLmFsbC5hZGQoXyksXy5ub3RpZnkoKTtjb25zdCBXPSgpPT57Xy5jbGVhbnVwKCksVD8uKCksdGhpcy5hbGwuZGVsZXRlKF8pLHRoaXMucXVldWUuZGVs'@; put 'ZXRlKF8pfTtyZXR1cm4gVD1kPy5vbkRlc3Ryb3koVykse2Rlc3Ryb3k6V319Zmx1c2goKXtpZigwIT09dGhpcy5xdWV1ZS5zaXplKWZvcihjb25zdFthLGRdb2YgdGhpcy5xdWV1ZSl0aGlzLnF1ZXVlLmRlbGV0ZShhKSxkP2QucnVuKCgpPT5hLnJ1bigpKTphLnJ1bigpfWdldCBpc1F1ZXVl'@; put 'RW1wdHkoKXtyZXR1cm4gMD09PXRoaXMucXVldWUuc2l6ZX19cmV0dXJuIGMuXHUwMjc1cHJvdj1ocih7dG9rZW46Yyxwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5uZXcgY30pLGN9KSgpO2Z1bmN0aW9uIE02KGMsbCxhKXtsZXQgZD1hP2Muc3R5bGVzOm51bGwsaD1hP2MuY2xhc3Nl'@; put 'czpudWxsLGY9MDtpZihudWxsIT09bClmb3IobGV0IF89MDtfPGwubGVuZ3RoO18rKyl7Y29uc3QgVD1sW19dOyJudW1iZXIiPT10eXBlb2YgVD9mPVQ6MT09Zj9oPV9jKGgsVCk6Mj09ZiYmKGQ9X2MoZCxUKyI6ICIrbFsrK19dKyI7IikpfWE/Yy5zdHlsZXM9ZDpjLnN0eWxlc1dpdGhvdXRI'@; put 'b3N0PWQsYT9jLmNsYXNzZXM9aDpjLmNsYXNzZXNXaXRob3V0SG9zdD1ofWZ1bmN0aW9uIHU1KGMsbCxhLGQsaD0hMSl7Zm9yKDtudWxsIT09YTspe2NvbnN0IGY9bFthLmluZGV4XTtpZihudWxsIT09ZiYmZC5wdXNoKF9hKGYpKSxvYyhmKSl7Zm9yKGxldCBUPWljO1Q8Zi5sZW5ndGg7VCsr'@; put 'KXtjb25zdCBXPWZbVF0saWU9V1tCaV0uZmlyc3RDaGlsZDtudWxsIT09aWUmJnU1KFdbQmldLFcsaWUsZCl9ZltkMF0hPT1mW0hpXSYmZC5wdXNoKGZbZDBdKX1jb25zdCBfPWEudHlwZTtpZig4Jl8pdTUoYyxsLGEuY2hpbGQsZCk7ZWxzZSBpZigzMiZfKXtjb25zdCBUPXo5KGEsbCk7bGV0'@; put 'IFc7Zm9yKDtXPVQoKTspZC5wdXNoKFcpfWVsc2UgaWYoMTYmXyl7Y29uc3QgVD1EQyhsLGEpO2lmKEFycmF5LmlzQXJyYXkoVCkpZC5wdXNoKC4uLlQpO2Vsc2V7Y29uc3QgVz1aNChsW0phXSk7dTUoV1tCaV0sVyxULGQsITApfX1hPWg/YS5wcm9qZWN0aW9uTmV4dDphLm5leHR9cmV0dXJu'@; put 'IGR9ZnVuY3Rpb24geDYoYyxsLGEsZD0hMCl7Y29uc3QgaD1sW0wxXS5yZW5kZXJlckZhY3Rvcnk7aC5iZWdpbiYmaC5iZWdpbigpO3RyeXtVUyhjLGwsYy50ZW1wbGF0ZSxhKX1jYXRjaChfKXt0aHJvdyBkJiZCUyhsLF8pLF99ZmluYWxseXtoLmVuZCYmaC5lbmQoKSxsW0wxXS5lZmZlY3RN'@; put 'YW5hZ2VyPy5mbHVzaCgpfX1mdW5jdGlvbiBVUyhjLGwsYSxkKXtjb25zdCBoPWxbRG9dO2lmKDI1NiE9KDI1NiZoKSl7bFtMMV0uZWZmZWN0TWFuYWdlcj8uZmx1c2goKSxTOShsKTt0cnl7eW8obCksZnVuY3Rpb24gTncoYyl7cmV0dXJuIFBvLmxGcmFtZS5iaW5kaW5nSW5kZXg9Y30oYy5i'@; put 'aW5kaW5nU3RhcnRJbmRleCksbnVsbCE9PWEmJkVTKGMsbCxhLDIsZCk7Y29uc3QgXz0zPT0oMyZoKTtpZihfKXtjb25zdCBpZT1jLnByZU9yZGVyQ2hlY2tIb29rcztudWxsIT09aWUmJmttKGwsaWUsbnVsbCl9ZWxzZXtjb25zdCBpZT1jLnByZU9yZGVySG9va3M7bnVsbCE9PWllJiZBbShs'@; put 'LGllLDAsbnVsbCksTTkobCwwKX1pZihmdW5jdGlvbiBhTChjKXtmb3IobGV0IGw9Q0MoYyk7bnVsbCE9PWw7bD1TQyhsKSl7aWYoIWxbdW1dKWNvbnRpbnVlO2NvbnN0IGE9bFtIMl07Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2VzKGFbZF0pfX19KGwpLFpTKGwsMiksbnVsbCE9PWMu'@; put 'Y29udGVudFF1ZXJpZXMmJkZTKGMsbCksXyl7Y29uc3QgaWU9Yy5jb250ZW50Q2hlY2tIb29rcztudWxsIT09aWUmJmttKGwsaWUpfWVsc2V7Y29uc3QgaWU9Yy5jb250ZW50SG9va3M7bnVsbCE9PWllJiZBbShsLGllLDEpLE05KGwsMSl9IWZ1bmN0aW9uIHhTKGMsbCl7Y29uc3QgYT1jLmhv'@; put 'c3RCaW5kaW5nT3BDb2RlcztpZihudWxsPT09YSlyZXR1cm47Y29uc3QgZD12UyhsLGczKTt0cnl7Zm9yKGxldCBoPTA7aDxhLmxlbmd0aDtoKyspe2NvbnN0IGY9YVtoXTtpZihmPDApWGgofmYpO2Vsc2V7Y29uc3QgXz1mLFQ9YVsrK2hdLFc9YVsrK2hdO0tUKFQsXyksZC5ydW5JbkNvbnRl'@; put 'eHQoVywyLGxbX10pfX19ZmluYWxseXtudWxsPT09bFtnM10mJl9TKGwsZzMpLFhoKC0xKX19KGMsbCk7Y29uc3QgVD1jLmNvbXBvbmVudHM7bnVsbCE9PVQmJldTKGwsVCwwKTtjb25zdCBXPWMudmlld1F1ZXJ5O2lmKG51bGwhPT1XJiZIdigyLFcsZCksXyl7Y29uc3QgaWU9Yy52aWV3Q2hl'@; put 'Y2tIb29rcztudWxsIT09aWUmJmttKGwsaWUpfWVsc2V7Y29uc3QgaWU9Yy52aWV3SG9va3M7bnVsbCE9PWllJiZBbShsLGllLDIpLE05KGwsMil9ITA9PT1jLmZpcnN0VXBkYXRlUGFzcyYmKGMuZmlyc3RVcGRhdGVQYXNzPSExKSxsW0RvXSY9LTczLHpzKGwpfWZpbmFsbHl7TW0oKX19fWZ1'@; put 'bmN0aW9uIFpTKGMsbCl7Zm9yKGxldCBhPUNDKGMpO251bGwhPT1hO2E9U0MoYSkpZm9yKGxldCBkPWljO2Q8YS5sZW5ndGg7ZCsrKVlTKGFbZF0sbCl9ZnVuY3Rpb24gbEwoYyxsLGEpe1lTKG10KGwsYyksYSl9ZnVuY3Rpb24gWVMoYyxsKXtpZighZnVuY3Rpb24gR3QoYyl7cmV0dXJuIDEy'@; put 'OD09KDEyOCZjW0RvXSl9KGMpKXJldHVybjtjb25zdCBhPWNbQmldO2lmKDgwJmNbRG9dJiYwPT09bHx8MTAyNCZjW0RvXXx8Mj09PWwpVVMoYSxjLGEudGVtcGxhdGUsY1tWYV0pO2Vsc2UgaWYoY1tJMV0+MCl7WlMoYywxKTtjb25zdCBoPWNbQmldLmNvbXBvbmVudHM7bnVsbCE9PWgmJldT'@; put 'KGMsaCwxKX19ZnVuY3Rpb24gV1MoYyxsLGEpe2ZvcihsZXQgZD0wO2Q8bC5sZW5ndGg7ZCsrKWxMKGMsbFtkXSxhKX1jbGFzcyBkNXtnZXQgcm9vdE5vZGVzKCl7Y29uc3QgbD10aGlzLl9sVmlldyxhPWxbQmldO3JldHVybiB1NShhLGwsYS5maXJzdENoaWxkLFtdKX1jb25zdHJ1Y3Rvcihs'@; put 'LGEpe3RoaXMuX2xWaWV3PWwsdGhpcy5fY2RSZWZJbmplY3RpbmdWaWV3PWEsdGhpcy5fYXBwUmVmPW51bGwsdGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9Z2V0IGNvbnRleHQoKXtyZXR1cm4gdGhpcy5fbFZpZXdbVmFdfXNldCBjb250ZXh0KGwpe3RoaXMuX2xWaWV3W1ZhXT1s'@; put 'fWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gMjU2PT0oMjU2JnRoaXMuX2xWaWV3W0RvXSl9ZGVzdHJveSgpe2lmKHRoaXMuX2FwcFJlZil0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyh0aGlzKTtlbHNlIGlmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXtjb25zdCBsPXRoaXMuX2xWaWV3'@; put 'W3VhXTtpZihvYyhsKSl7Y29uc3QgYT1sWzhdLGQ9YT9hLmluZGV4T2YodGhpcyk6LTE7ZD4tMSYmKHNmKGwsZCksUG0oYSxkKSl9dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9S20odGhpcy5fbFZpZXdbQmldLHRoaXMuX2xWaWV3KX1vbkRlc3Ryb3kobCl7IWZ1bmN0aW9uIGYw'@; put 'KGMsbCl7aWYoMjU2PT0oMjU2JmNbRG9dKSl0aHJvdyBuZXcgQXIoOTExLCExKTtudWxsPT09Y1tPMV0mJihjW08xXT1bXSksY1tPMV0ucHVzaChsKX0odGhpcy5fbFZpZXcsbCl9bWFya0ZvckNoZWNrKCl7YTUodGhpcy5fY2RSZWZJbmplY3RpbmdWaWV3fHx0aGlzLl9sVmlldyl9ZGV0YWNo'@; put 'KCl7dGhpcy5fbFZpZXdbRG9dJj0tMTI5fXJlYXR0YWNoKCl7dGhpcy5fbFZpZXdbRG9dfD0xMjh9ZGV0ZWN0Q2hhbmdlcygpe3g2KHRoaXMuX2xWaWV3W0JpXSx0aGlzLl9sVmlldyx0aGlzLmNvbnRleHQpfWNoZWNrTm9DaGFuZ2VzKCl7fWF0dGFjaFRvVmlld0NvbnRhaW5lclJlZigpe2lm'@; put 'KHRoaXMuX2FwcFJlZil0aHJvdyBuZXcgQXIoOTAyLCExKTt0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMH1kZXRhY2hGcm9tQXBwUmVmKCl7dGhpcy5fYXBwUmVmPW51bGwsZnVuY3Rpb24gekQoYyxsKXtHNChjLGwsbFtWb10sMixudWxsLG51bGwpfSh0aGlzLl9sVmlld1tCaV0s'@; put 'dGhpcy5fbFZpZXcpfWF0dGFjaFRvQXBwUmVmKGwpe2lmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXRocm93IG5ldyBBcig5MDIsITEpO3RoaXMuX2FwcFJlZj1sfX1jbGFzcyBjTCBleHRlbmRzIGQ1e2NvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLHRoaXMuX3ZpZXc9bH1kZXRlY3RD'@; put 'aGFuZ2VzKCl7Y29uc3QgbD10aGlzLl92aWV3O3g2KGxbQmldLGwsbFtWYV0sITEpfWNoZWNrTm9DaGFuZ2VzKCl7fWdldCBjb250ZXh0KCl7cmV0dXJuIG51bGx9fWNsYXNzIEdTIGV4dGVuZHMgSzB7Y29uc3RydWN0b3IobCl7c3VwZXIoKSx0aGlzLm5nTW9kdWxlPWx9cmVzb2x2ZUNvbXBv'@; put 'bmVudEZhY3RvcnkobCl7Y29uc3QgYT1RbyhsKTtyZXR1cm4gbmV3IGg1KGEsdGhpcy5uZ01vZHVsZSl9fWZ1bmN0aW9uICRTKGMpe2NvbnN0IGw9W107Zm9yKGxldCBhIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShhKSYmbC5wdXNoKHtwcm9wTmFtZTpjW2FdLHRlbXBsYXRlTmFtZTphfSk7cmV0'@; put 'dXJuIGx9Y2xhc3MgZEx7Y29uc3RydWN0b3IobCxhKXt0aGlzLmluamVjdG9yPWwsdGhpcy5wYXJlbnRJbmplY3Rvcj1hfWdldChsLGEsZCl7ZD1hMChkKTtjb25zdCBoPXRoaXMuaW5qZWN0b3IuZ2V0KGwsQ3YsZCk7cmV0dXJuIGghPT1Ddnx8YT09PUN2P2g6dGhpcy5wYXJlbnRJbmplY3Rv'@; put 'ci5nZXQobCxhLGQpfX1jbGFzcyBoNSBleHRlbmRzIGNTe2dldCBpbnB1dHMoKXtjb25zdCBsPXRoaXMuY29tcG9uZW50RGVmLGE9bC5pbnB1dFRyYW5zZm9ybXMsZD0kUyhsLmlucHV0cyk7aWYobnVsbCE9PWEpZm9yKGNvbnN0IGggb2YgZClhLmhhc093blByb3BlcnR5KGgucHJvcE5hbWUp'@; put 'JiYoaC50cmFuc2Zvcm09YVtoLnByb3BOYW1lXSk7cmV0dXJuIGR9Z2V0IG91dHB1dHMoKXtyZXR1cm4gJFModGhpcy5jb21wb25lbnREZWYub3V0cHV0cyl9Y29uc3RydWN0b3IobCxhKXtzdXBlcigpLHRoaXMuY29tcG9uZW50RGVmPWwsdGhpcy5uZ01vZHVsZT1hLHRoaXMuY29tcG9uZW50'@; put 'VHlwZT1sLnR5cGUsdGhpcy5zZWxlY3Rvcj1mdW5jdGlvbiB0OShjKXtyZXR1cm4gYy5tYXAoYW0pLmpvaW4oIiwiKX0obC5zZWxlY3RvcnMpLHRoaXMubmdDb250ZW50U2VsZWN0b3JzPWwubmdDb250ZW50U2VsZWN0b3JzP2wubmdDb250ZW50U2VsZWN0b3JzOltdLHRoaXMuaXNCb3VuZFRv'@; put 'TW9kdWxlPSEhYX1jcmVhdGUobCxhLGQsaCl7bGV0IGY9KGg9aHx8dGhpcy5uZ01vZHVsZSlpbnN0YW5jZW9mIHEwP2g6aD8uaW5qZWN0b3I7ZiYmbnVsbCE9PXRoaXMuY29tcG9uZW50RGVmLmdldFN0YW5kYWxvbmVJbmplY3RvciYmKGY9dGhpcy5jb21wb25lbnREZWYuZ2V0U3RhbmRhbG9u'@; put 'ZUluamVjdG9yKGYpfHxmKTtjb25zdCBfPWY/bmV3IGRMKGwsZik6bCxUPV8uZ2V0KFkzLG51bGwpO2lmKG51bGw9PT1UKXRocm93IG5ldyBBcig0MDcsITEpO2NvbnN0IHBlPXtyZW5kZXJlckZhY3Rvcnk6VCxzYW5pdGl6ZXI6Xy5nZXQocDYsbnVsbCksZWZmZWN0TWFuYWdlcjpfLmdldCh6'@; put 'UyxudWxsKX0sd2U9VC5jcmVhdGVSZW5kZXJlcihudWxsLHRoaXMuY29tcG9uZW50RGVmKSxFZT10aGlzLmNvbXBvbmVudERlZi5zZWxlY3RvcnNbMF1bMF18fCJkaXYiLFplPWQ/ZnVuY3Rpb24gVFMoYyxsLGEsZCl7Y29uc3QgZj1kLmdldCh4diwhMSl8fGE9PT1QYy5TaGFkb3dEb20sXz1j'@; put 'LnNlbGVjdFJvb3RFbGVtZW50KGwsZik7cmV0dXJuIGZ1bmN0aW9uIE5JKGMpe1J2KGMpfShfKSxffSh3ZSxkLHRoaXMuY29tcG9uZW50RGVmLmVuY2Fwc3VsYXRpb24sXyk6cW0od2UsRWUsZnVuY3Rpb24gdUwoYyl7Y29uc3QgbD1jLnRvTG93ZXJDYXNlKCk7cmV0dXJuInN2ZyI9PT1sPyJz'@; put 'dmciOiJtYXRoIj09PWw/Im1hdGgiOm51bGx9KEVlKSkseXQ9dGhpcy5jb21wb25lbnREZWYuc2lnbmFscz80NjA4OnRoaXMuY29tcG9uZW50RGVmLm9uUHVzaD81NzY6NTI4LEV0PSQzKDAsbnVsbCxudWxsLDEsMCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCksU3Q9YjYobnVsbCxF'@; put 'dCxudWxsLHl0LG51bGwsbnVsbCxwZSx3ZSxfLG51bGwsbnVsbCk7bGV0IEp0LG5uO1M5KFN0KTt0cnl7Y29uc3Qgdm49dGhpcy5jb21wb25lbnREZWY7bGV0IE5uLGNyPW51bGw7dm4uZmluZEhvc3REaXJlY3RpdmVEZWZzPyhObj1bXSxjcj1uZXcgTWFwLHZuLmZpbmRIb3N0RGlyZWN0aXZl'@; put 'RGVmcyh2bixObixjciksTm4ucHVzaCh2bikpOk5uPVt2bl07Y29uc3QgSXI9ZnVuY3Rpb24gcVMoYyxsKXtjb25zdCBhPWNbQmldLGQ9cHM7cmV0dXJuIGNbZF09bCxHMyhhLGQsMiwiI2hvc3QiLG51bGwpfShTdCxaZSksRWk9ZnVuY3Rpb24gZkwoYyxsLGEsZCxoLGYsXyl7Y29uc3QgVD1o'@; put 'W0JpXTshZnVuY3Rpb24gcEwoYyxsLGEsZCl7Zm9yKGNvbnN0IGggb2YgYylsLm1lcmdlZEF0dHJzPVloKGwubWVyZ2VkQXR0cnMsaC5ob3N0QXR0cnMpO251bGwhPT1sLm1lcmdlZEF0dHJzJiYoTTYobCxsLm1lcmdlZEF0dHJzLCEwKSxudWxsIT09YSYmT0MoZCxhLGwpKX0oZCxjLGwsXyk7'@; put 'bGV0IFc9bnVsbDtudWxsIT09bCYmKFc9b1MobCxoW0xkXSkpO2NvbnN0IGllPWYucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKGwsYSk7bGV0IHBlPTE2O2Euc2lnbmFscz9wZT00MDk2OmEub25QdXNoJiYocGU9NjQpO2NvbnN0IHdlPWI2KGgsa1MoYSksbnVsbCxwZSxoW2MuaW5k'@; put 'ZXhdLGMsZixpZSxudWxsLG51bGwsVyk7cmV0dXJuIFQuZmlyc3RDcmVhdGVQYXNzJiZQdihULGMsZC5sZW5ndGgtMSksUzYoaCx3ZSksaFtjLmluZGV4XT13ZX0oSXIsWmUsdm4sTm4sU3QscGUsd2UpO25uPWtlKEV0LHBzKSxaZSYmZnVuY3Rpb24gbUwoYyxsLGEsZCl7aWYoZClEZChjLGEs'@; put 'WyJuZy12ZXJzaW9uIixBSS5mdWxsXSk7ZWxzZXtjb25zdHthdHRyczpoLGNsYXNzZXM6Zn09ZnVuY3Rpb24gXzQoYyl7Y29uc3QgbD1bXSxhPVtdO2xldCBkPTEsaD0yO2Zvcig7ZDxjLmxlbmd0aDspe2xldCBmPWNbZF07aWYoInN0cmluZyI9PXR5cGVvZiBmKTI9PT1oPyIiIT09ZiYmbC5w'@; put 'dXNoKGYsY1srK2RdKTo4PT09aCYmYS5wdXNoKGYpO2Vsc2V7aWYoIUhjKGgpKWJyZWFrO2g9Zn1kKyt9cmV0dXJue2F0dHJzOmwsY2xhc3NlczphfX0obC5zZWxlY3RvcnNbMF0pO2gmJkRkKGMsYSxoKSxmJiZmLmxlbmd0aD4wJiZSQyhjLGEsZi5qb2luKCIgIikpfX0od2Usdm4sWmUsZCks'@; put 'dm9pZCAwIT09YSYmZnVuY3Rpb24gdkwoYyxsLGEpe2NvbnN0IGQ9Yy5wcm9qZWN0aW9uPVtdO2ZvcihsZXQgaD0wO2g8bC5sZW5ndGg7aCsrKXtjb25zdCBmPWFbaF07ZC5wdXNoKG51bGwhPWY/QXJyYXkuZnJvbShmKTpudWxsKX19KG5uLHRoaXMubmdDb250ZW50U2VsZWN0b3JzLGEpLEp0'@; put 'PWZ1bmN0aW9uIGdMKGMsbCxhLGQsaCxmKXtjb25zdCBfPU1jKCksVD1oW0JpXSxXPU5sKF8saCk7YzUoVCxoLF8sYSxudWxsLGQpO2ZvcihsZXQgcGU9MDtwZTxhLmxlbmd0aDtwZSsrKUJjKFFoKGgsVCxfLmRpcmVjdGl2ZVN0YXJ0K3BlLF8pLGgpO1JTKFQsaCxfKSxXJiZCYyhXLGgpO2Nv'@; put 'bnN0IGllPVFoKGgsVCxfLmRpcmVjdGl2ZVN0YXJ0K18uY29tcG9uZW50T2Zmc2V0LF8pO2lmKGNbVmFdPWhbVmFdPWllLG51bGwhPT1mKWZvcihjb25zdCBwZSBvZiBmKXBlKGllLGwpO3JldHVybiBJdihULF8sYyksaWV9KEVpLHZuLE5uLGNyLFN0LFtfTF0pLFZ2KEV0LFN0LG51bGwpfWZp'@; put 'bmFsbHl7TW0oKX1yZXR1cm4gbmV3IGhMKHRoaXMuY29tcG9uZW50VHlwZSxKdCxZZChubixTdCksU3Qsbm4pfX1jbGFzcyBoTCBleHRlbmRzIGxTe2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7c3VwZXIoKSx0aGlzLmxvY2F0aW9uPWQsdGhpcy5fcm9vdExWaWV3PWgsdGhpcy5fdE5vZGU9Zix0'@; put 'aGlzLnByZXZpb3VzSW5wdXRWYWx1ZXM9bnVsbCx0aGlzLmluc3RhbmNlPWEsdGhpcy5ob3N0Vmlldz10aGlzLmNoYW5nZURldGVjdG9yUmVmPW5ldyBjTChoKSx0aGlzLmNvbXBvbmVudFR5cGU9bH1zZXRJbnB1dChsLGEpe2NvbnN0IGQ9dGhpcy5fdE5vZGUuaW5wdXRzO2xldCBoO2lmKG51'@; put 'bGwhPT1kJiYoaD1kW2xdKSl7aWYodGhpcy5wcmV2aW91c0lucHV0VmFsdWVzPz89bmV3IE1hcCx0aGlzLnByZXZpb3VzSW5wdXRWYWx1ZXMuaGFzKGwpJiZPYmplY3QuaXModGhpcy5wcmV2aW91c0lucHV0VmFsdWVzLmdldChsKSxhKSlyZXR1cm47Y29uc3QgZj10aGlzLl9yb290TFZpZXc7'@; put 'TnYoZltCaV0sZixoLGwsYSksdGhpcy5wcmV2aW91c0lucHV0VmFsdWVzLnNldChsLGEpLGE1KG10KHRoaXMuX3ROb2RlLmluZGV4LGYpKX19Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyB4Myh0aGlzLl90Tm9kZSx0aGlzLl9yb290TFZpZXcpfWRlc3Ryb3koKXt0aGlzLmhvc3RWaWV3LmRl'@; put 'c3Ryb3koKX1vbkRlc3Ryb3kobCl7dGhpcy5ob3N0Vmlldy5vbkRlc3Ryb3kobCl9fWZ1bmN0aW9uIF9MKCl7Y29uc3QgYz1NYygpO0VtKFhyKClbQmldLGMpfWZ1bmN0aW9uIGVvKGMpe2xldCBsPWZ1bmN0aW9uIEtTKGMpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoYy5wcm90b3R5'@; put 'cGUpLmNvbnN0cnVjdG9yfShjLnR5cGUpLGE9ITA7Y29uc3QgZD1bY107Zm9yKDtsOyl7bGV0IGg7aWYoUWMoYykpaD1sLlx1MDI3NWNtcHx8bC5cdTAyNzVkaXI7ZWxzZXtpZihsLlx1MDI3NWNtcCl0aHJvdyBuZXcgQXIoOTAzLCExKTtoPWwuXHUwMjc1ZGlyfWlmKGgpe2lmKGEpe2QucHVz'@; put 'aChoKTtjb25zdCBfPWM7Xy5pbnB1dHM9RTYoYy5pbnB1dHMpLF8uaW5wdXRUcmFuc2Zvcm1zPUU2KGMuaW5wdXRUcmFuc2Zvcm1zKSxfLmRlY2xhcmVkSW5wdXRzPUU2KGMuZGVjbGFyZWRJbnB1dHMpLF8ub3V0cHV0cz1FNihjLm91dHB1dHMpO2NvbnN0IFQ9aC5ob3N0QmluZGluZ3M7VCYm'@; put 'd0woYyxUKTtjb25zdCBXPWgudmlld1F1ZXJ5LGllPWguY29udGVudFF1ZXJpZXM7aWYoVyYmYkwoYyxXKSxpZSYmeUwoYyxpZSksbjAoYy5pbnB1dHMsaC5pbnB1dHMpLG4wKGMuZGVjbGFyZWRJbnB1dHMsaC5kZWNsYXJlZElucHV0cyksbjAoYy5vdXRwdXRzLGgub3V0cHV0cyksbnVsbCE9'@; put 'PWguaW5wdXRUcmFuc2Zvcm1zJiYobnVsbD09PV8uaW5wdXRUcmFuc2Zvcm1zJiYoXy5pbnB1dFRyYW5zZm9ybXM9e30pLG4wKF8uaW5wdXRUcmFuc2Zvcm1zLGguaW5wdXRUcmFuc2Zvcm1zKSksUWMoaCkmJmguZGF0YS5hbmltYXRpb24pe2NvbnN0IHBlPWMuZGF0YTtwZS5hbmltYXRpb249'@; put 'KHBlLmFuaW1hdGlvbnx8W10pLmNvbmNhdChoLmRhdGEuYW5pbWF0aW9uKX19Y29uc3QgZj1oLmZlYXR1cmVzO2lmKGYpZm9yKGxldCBfPTA7XzxmLmxlbmd0aDtfKyspe2NvbnN0IFQ9ZltfXTtUJiZULm5nSW5oZXJpdCYmVChjKSxUPT09ZW8mJihhPSExKX19bD1PYmplY3QuZ2V0UHJvdG90'@; put 'eXBlT2YobCl9IWZ1bmN0aW9uIEJ2KGMpe2xldCBsPTAsYT1udWxsO2ZvcihsZXQgZD1jLmxlbmd0aC0xO2Q+PTA7ZC0tKXtjb25zdCBoPWNbZF07aC5ob3N0VmFycz1sKz1oLmhvc3RWYXJzLGguaG9zdEF0dHJzPVloKGguaG9zdEF0dHJzLGE9WWgoYSxoLmhvc3RBdHRycykpfX0oZCl9ZnVu'@; put 'Y3Rpb24gRTYoYyl7cmV0dXJuIGM9PT1YYz97fTpjPT09U3M/W106Y31mdW5jdGlvbiBiTChjLGwpe2NvbnN0IGE9Yy52aWV3UXVlcnk7Yy52aWV3UXVlcnk9YT8oZCxoKT0+e2woZCxoKSxhKGQsaCl9Omx9ZnVuY3Rpb24geUwoYyxsKXtjb25zdCBhPWMuY29udGVudFF1ZXJpZXM7Yy5jb250'@; put 'ZW50UXVlcmllcz1hPyhkLGgsZik9PntsKGQsaCxmKSxhKGQsaCxmKX06bH1mdW5jdGlvbiB3TChjLGwpe2NvbnN0IGE9Yy5ob3N0QmluZGluZ3M7Yy5ob3N0QmluZGluZ3M9YT8oZCxoKT0+e2woZCxoKSxhKGQsaCl9Omx9ZnVuY3Rpb24gZU0oYyl7Y29uc3QgbD1jLmlucHV0Q29uZmlnLGE9'@; put 'e307Zm9yKGNvbnN0IGQgaW4gbClpZihsLmhhc093blByb3BlcnR5KGQpKXtjb25zdCBoPWxbZF07QXJyYXkuaXNBcnJheShoKSYmaFsyXSYmKGFbZF09aFsyXSl9Yy5pbnB1dFRyYW5zZm9ybXM9YX1mdW5jdGlvbiBrNihjKXtyZXR1cm4hIUE2KGMpJiYoQXJyYXkuaXNBcnJheShjKXx8IShj'@; put 'IGluc3RhbmNlb2YgTWFwKSYmU3ltYm9sLml0ZXJhdG9yIGluIGMpfWZ1bmN0aW9uIEE2KGMpe3JldHVybiBudWxsIT09YyYmKCJmdW5jdGlvbiI9PXR5cGVvZiBjfHwib2JqZWN0Ij09dHlwZW9mIGMpfWZ1bmN0aW9uIHExKGMsbCxhKXtyZXR1cm4gY1tsXT1hfWZ1bmN0aW9uIGpjKGMsbCxh'@; put 'KXtyZXR1cm4hT2JqZWN0LmlzKGNbbF0sYSkmJihjW2xdPWEsITApfWZ1bmN0aW9uIGdmKGMsbCxhLGQpe2NvbnN0IGg9amMoYyxsLGEpO3JldHVybiBqYyhjLGwrMSxkKXx8aH1mdW5jdGlvbiBUNihjLGwsYSxkLGgpe2NvbnN0IGY9Z2YoYyxsLGEsZCk7cmV0dXJuIGpjKGMsbCsyLGgpfHxm'@; put 'fWZ1bmN0aW9uIG0wKGMsbCxhLGQsaCxmKXtjb25zdCBfPWdmKGMsbCxhLGQpO3JldHVybiBnZihjLGwrMixoLGYpfHxffWZ1bmN0aW9uIFRyKGMsbCxhLGQpe2NvbnN0IGg9WHIoKTtyZXR1cm4gamMoaCxDMygpLGwpJiYoVHMoKSwkMShRYSgpLGgsYyxsLGEsZCkpLFRyfWZ1bmN0aW9uIEsz'@; put 'KGMsbCxhLGQpe3JldHVybiBqYyhjLEMzKCksYSk/bCtrbyhhKStkOlpvfWZ1bmN0aW9uIEplKGMsbCxhLGQsaCxmLF8sVCl7Y29uc3QgVz1YcigpLGllPVRzKCkscGU9Yytwcyx3ZT1pZS5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gV0woYyxsLGEsZCxoLGYsXyxULFcpe2NvbnN0IGllPWwu'@; put 'Y29uc3RzLHBlPUczKGwsYyw0LF98fG51bGwsRHIoaWUsVCkpO092KGwsYSxwZSxEcihpZSxXKSksRW0obCxwZSk7Y29uc3Qgd2U9cGUudFZpZXc9JDMoMixwZSxkLGgsZixsLmRpcmVjdGl2ZVJlZ2lzdHJ5LGwucGlwZVJlZ2lzdHJ5LG51bGwsbC5zY2hlbWFzLGllLG51bGwpO3JldHVybiBu'@; put 'dWxsIT09bC5xdWVyaWVzJiYobC5xdWVyaWVzLnRlbXBsYXRlKGwscGUpLHdlLnF1ZXJpZXM9bC5xdWVyaWVzLmVtYmVkZGVkVFZpZXcocGUpKSxwZX0ocGUsaWUsVyxsLGEsZCxoLGYsXyk6aWUuZGF0YVtwZV07TjEod2UsITEpO2NvbnN0IEVlPUt2KGllLFcsd2UsYyk7eG0oKSYmZTYoaWUs'@; put 'VyxFZSx3ZSksQmMoRWUsVyksUzYoVyxXW3BlXT1QUyhFZSxXLEVlLHdlKSkscWgod2UpJiZMdihpZSxXLHdlKSxudWxsIT1fJiZ5NihXLHdlLFQpfWxldCBLdj1mdW5jdGlvbiBYdihjLGwsYSxkKXtyZXR1cm4gVmQoITApLGxbVm9dLmNyZWF0ZUNvbW1lbnQoIiIpfTtmdW5jdGlvbiAkaShj'@; put 'KXtyZXR1cm4gJGUoZnVuY3Rpb24gJFQoKXtyZXR1cm4gUG8ubEZyYW1lLmNvbnRleHRMVmlld30oKSxwcytjKX1mdW5jdGlvbiBSZShjLGwsYSl7Y29uc3QgZD1YcigpO3JldHVybiBqYyhkLEMzKCksbCkmJlB1KFRzKCksUWEoKSxkLGMsbCxkW1ZvXSxhLCExKSxSZX1mdW5jdGlvbiBKdihj'@; put 'LGwsYSxkLGgpe2NvbnN0IF89aD8iY2xhc3MiOiJzdHlsZSI7TnYoYyxhLGwuaW5wdXRzW19dLF8sZCl9ZnVuY3Rpb24gbWUoYyxsLGEsZCl7Y29uc3QgaD1YcigpLGY9VHMoKSxfPXBzK2MsVD1oW1ZvXSxXPWYuZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uIHVNKGMsbCxhLGQsaCxmKXtjb25z'@; put 'dCBfPWwuY29uc3RzLFc9RzMobCxjLDIsZCxEcihfLGgpKTtyZXR1cm4gT3YobCxhLFcsRHIoXyxmKSksbnVsbCE9PVcuYXR0cnMmJk02KFcsVy5hdHRycywhMSksbnVsbCE9PVcubWVyZ2VkQXR0cnMmJk02KFcsVy5tZXJnZWRBdHRycywhMCksbnVsbCE9PWwucXVlcmllcyYmbC5xdWVyaWVz'@; put 'LmVsZW1lbnRTdGFydChsLFcpLFd9KF8sZixoLGwsYSxkKTpmLmRhdGFbX10saWU9ZE0oZixoLFcsVCxsLGMpO2hbX109aWU7Y29uc3QgcGU9cWgoVyk7cmV0dXJuIE4xKFcsITApLE9DKFQsaWUsVyksMzIhPSgzMiZXLmZsYWdzKSYmeG0oKSYmZTYoZixoLGllLFcpLDA9PT1mdW5jdGlvbiBC'@; put 'VCgpe3JldHVybiBQby5sRnJhbWUuZWxlbWVudERlcHRoQ291bnR9KCkmJkJjKGllLGgpLGZ1bmN0aW9uIGpUKCl7UG8ubEZyYW1lLmVsZW1lbnREZXB0aENvdW50Kyt9KCkscGUmJihMdihmLGgsVyksSXYoZixXLGgpKSxudWxsIT09ZCYmeTYoaCxXKSxtZX1mdW5jdGlvbiB5ZSgpe2xldCBj'@; put 'PU1jKCk7YjkoKT9DbSgpOihjPWMucGFyZW50LE4xKGMsITEpKTtjb25zdCBsPWM7KGZ1bmN0aW9uIFVUKGMpe3JldHVybiBQby5za2lwSHlkcmF0aW9uUm9vdFROb2RlPT09Y30pKGwpJiZmdW5jdGlvbiBHVCgpe1BvLnNraXBIeWRyYXRpb25Sb290VE5vZGU9bnVsbH0oKSxmdW5jdGlvbiB6'@; put 'VCgpe1BvLmxGcmFtZS5lbGVtZW50RGVwdGhDb3VudC0tfSgpO2NvbnN0IGE9VHMoKTtyZXR1cm4gYS5maXJzdENyZWF0ZVBhc3MmJihFbShhLGMpLE9kKGMpJiZhLnF1ZXJpZXMuZWxlbWVudEVuZChjKSksbnVsbCE9bC5jbGFzc2VzV2l0aG91dEhvc3QmJmZ1bmN0aW9uIHNEKGMpe3JldHVy'@; put 'biAwIT0oOCZjLmZsYWdzKX0obCkmJkp2KGEsbCxYcigpLGwuY2xhc3Nlc1dpdGhvdXRIb3N0LCEwKSxudWxsIT1sLnN0eWxlc1dpdGhvdXRIb3N0JiZmdW5jdGlvbiBhRChjKXtyZXR1cm4gMCE9KDE2JmMuZmxhZ3MpfShsKSYmSnYoYSxsLFhyKCksbC5zdHlsZXNXaXRob3V0SG9zdCwhMSks'@; put 'eWV9ZnVuY3Rpb24gcXQoYyxsLGEsZCl7cmV0dXJuIG1lKGMsbCxhLGQpLHllKCkscXR9bGV0IGRNPShjLGwsYSxkLGgsZik9PihWZCghMCkscW0oZCxoLGZ1bmN0aW9uIEd3KCl7cmV0dXJuIFBvLmxGcmFtZS5jdXJyZW50TmFtZXNwYWNlfSgpKSk7ZnVuY3Rpb24gVnIoYyxsLGEpe2NvbnN0'@; put 'IGQ9WHIoKSxoPVRzKCksZj1jK3BzLF89aC5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gUXYoYyxsLGEsZCxoKXtjb25zdCBmPWwuY29uc3RzLF89RHIoZixkKSxUPUczKGwsYyw4LCJuZy1jb250YWluZXIiLF8pO3JldHVybiBudWxsIT09XyYmTTYoVCxfLCEwKSxPdihsLGEsVCxEcihmLGgp'@; put 'KSxudWxsIT09bC5xdWVyaWVzJiZsLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGwsVCksVH0oZixoLGQsbCxhKTpoLmRhdGFbZl07TjEoXywhMCk7Y29uc3QgVD1mTShoLGQsXyxjKTtyZXR1cm4gZFtmXT1ULHhtKCkmJmU2KGgsZCxULF8pLEJjKFQsZCkscWgoXykmJihMdihoLGQsXyksSXYoaCxf'@; put 'LGQpKSxudWxsIT1hJiZ5NihkLF8pLFZyfWZ1bmN0aW9uIHpyKCl7bGV0IGM9TWMoKTtjb25zdCBsPVRzKCk7cmV0dXJuIGI5KCk/Q20oKTooYz1jLnBhcmVudCxOMShjLCExKSksbC5maXJzdENyZWF0ZVBhc3MmJihFbShsLGMpLE9kKGMpJiZsLnF1ZXJpZXMuZWxlbWVudEVuZChjKSksenJ9'@; put 'ZnVuY3Rpb24gamEoYyxsLGEpe3JldHVybiBWcihjLGwsYSksenIoKSxqYX1sZXQgZk09KGMsbCxhLGQpPT4oVmQoITApLFU5KGxbVm9dLCIiKSk7ZnVuY3Rpb24gVm4oKXtyZXR1cm4gWHIoKX1mdW5jdGlvbiB2NShjKXtyZXR1cm4hIWMmJiJmdW5jdGlvbiI9PXR5cGVvZiBjLnRoZW59ZnVu'@; put 'Y3Rpb24gcE0oYyl7cmV0dXJuISFjJiYiZnVuY3Rpb24iPT10eXBlb2YgYy5zdWJzY3JpYmV9ZnVuY3Rpb24geHQoYyxsLGEsZCl7Y29uc3QgaD1YcigpLGY9VHMoKSxfPU1jKCk7cmV0dXJuIGdNKGYsaCxoW1ZvXSxfLGMsbCxkKSx4dH1mdW5jdGlvbiBlXyhjLGwpe2NvbnN0IGE9TWMoKSxk'@; put 'PVhyKCksaD1UcygpO3JldHVybiBnTShoLGQsVlModzkoaC5kYXRhKSxhLGQpLGEsYyxsKSxlX31mdW5jdGlvbiBnTShjLGwsYSxkLGgsZixfKXtjb25zdCBUPXFoKGQpLGllPWMuZmlyc3RDcmVhdGVQYXNzJiZOUyhjKSxwZT1sW1ZhXSx3ZT1IUyhsKTtsZXQgRWU9ITA7aWYoMyZkLnR5cGV8'@; put 'fF8pe2NvbnN0IGV0PU5sKGQsbCkseXQ9Xz9fKGV0KTpldCxFdD13ZS5sZW5ndGgsU3Q9Xz9ubj0+XyhfYShubltkLmluZGV4XSkpOmQuaW5kZXg7bGV0IEp0PW51bGw7aWYoIV8mJlQmJihKdD1mdW5jdGlvbiBYTChjLGwsYSxkKXtjb25zdCBoPWMuY2xlYW51cDtpZihudWxsIT1oKWZvcihs'@; put 'ZXQgZj0wO2Y8aC5sZW5ndGgtMTtmKz0yKXtjb25zdCBfPWhbZl07aWYoXz09PWEmJmhbZisxXT09PWQpe2NvbnN0IFQ9bFtUdV0sVz1oW2YrMl07cmV0dXJuIFQubGVuZ3RoPlc/VFtXXTpudWxsfSJzdHJpbmciPT10eXBlb2YgXyYmKGYrPTIpfXJldHVybiBudWxsfShjLGwsaCxkLmluZGV4'@; put 'KSksbnVsbCE9PUp0KShKdC5fX25nTGFzdExpc3RlbmVyRm5fX3x8SnQpLl9fbmdOZXh0TGlzdGVuZXJGbl9fPWYsSnQuX19uZ0xhc3RMaXN0ZW5lckZuX189ZixFZT0hMTtlbHNle2Y9dk0oZCxsLHBlLGYsITEpO2NvbnN0IG5uPWEubGlzdGVuKHl0LGgsZik7d2UucHVzaChmLG5uKSxpZSYm'@; put 'aWUucHVzaChoLFN0LEV0LEV0KzEpfX1lbHNlIGY9dk0oZCxsLHBlLGYsITEpO2NvbnN0IFplPWQub3V0cHV0cztsZXQgaXQ7aWYoRWUmJm51bGwhPT1aZSYmKGl0PVplW2hdKSl7Y29uc3QgZXQ9aXQubGVuZ3RoO2lmKGV0KWZvcihsZXQgeXQ9MDt5dDxldDt5dCs9Mil7Y29uc3Qgdm49bFtp'@; put 'dFt5dF1dW2l0W3l0KzFdXS5zdWJzY3JpYmUoZiksTm49d2UubGVuZ3RoO3dlLnB1c2goZix2biksaWUmJmllLnB1c2goaCxkLmluZGV4LE5uLC0oTm4rMSkpfX19ZnVuY3Rpb24gbU0oYyxsLGEsZCl7dHJ5e3JldHVybiBoMCg2LGwsYSksITEhPT1hKGQpfWNhdGNoKGgpe3JldHVybiBCUyhj'@; put 'LGgpLCExfWZpbmFsbHl7aDAoNyxsLGEpfX1mdW5jdGlvbiB2TShjLGwsYSxkLGgpe3JldHVybiBmdW5jdGlvbiBmKF8pe2lmKF89PT1GdW5jdGlvbilyZXR1cm4gZDthNShjLmNvbXBvbmVudE9mZnNldD4tMT9tdChjLmluZGV4LGwpOmwpO2xldCBXPW1NKGwsYSxkLF8pLGllPWYuX19uZ05l'@; put 'eHRMaXN0ZW5lckZuX187Zm9yKDtpZTspVz1tTShsLGEsaWUsXykmJlcsaWU9aWUuX19uZ05leHRMaXN0ZW5lckZuX187cmV0dXJuIGgmJiExPT09VyYmXy5wcmV2ZW50RGVmYXVsdCgpLFd9fWZ1bmN0aW9uIFZlKGM9MSl7cmV0dXJuIGZ1bmN0aW9uIFhUKGMpe3JldHVybihQby5sRnJhbWUu'@; put 'Y29udGV4dExWaWV3PWZ1bmN0aW9uIEpUKGMsbCl7Zm9yKDtjPjA7KWw9bFtQbF0sYy0tO3JldHVybiBsfShjLFBvLmxGcmFtZS5jb250ZXh0TFZpZXcpKVtWYV19KGMpfWZ1bmN0aW9uIEpMKGMsbCl7bGV0IGE9bnVsbDtjb25zdCBkPWZ1bmN0aW9uIFdoKGMpe2NvbnN0IGw9Yy5hdHRycztp'@; put 'ZihudWxsIT1sKXtjb25zdCBhPWwuaW5kZXhPZig1KTtpZighKDEmYSkpcmV0dXJuIGxbYSsxXX1yZXR1cm4gbnVsbH0oYyk7Zm9yKGxldCBoPTA7aDxsLmxlbmd0aDtoKyspe2NvbnN0IGY9bFtoXTtpZigiKiIhPT1mKXtpZihudWxsPT09ZD9tNChjLGYsITApOnY0KGQsZikpcmV0dXJuIGh9'@; put 'ZWxzZSBhPWh9cmV0dXJuIGF9ZnVuY3Rpb24gQWkoYyl7Y29uc3QgbD1YcigpW0phXVt6b107aWYoIWwucHJvamVjdGlvbil7Y29uc3QgZD1sLnByb2plY3Rpb249QmQoYz9jLmxlbmd0aDoxLG51bGwpLGg9ZC5zbGljZSgpO2xldCBmPWwuY2hpbGQ7Zm9yKDtudWxsIT09Zjspe2NvbnN0IF89'@; put 'Yz9KTChmLGMpOjA7bnVsbCE9PV8mJihoW19dP2hbX10ucHJvamVjdGlvbk5leHQ9ZjpkW19dPWYsaFtfXT1mKSxmPWYubmV4dH19fWZ1bmN0aW9uIGtyKGMsbD0wLGEpe2NvbnN0IGQ9WHIoKSxoPVRzKCksZj1HMyhoLHBzK2MsMTYsbnVsbCxhfHxudWxsKTtudWxsPT09Zi5wcm9qZWN0aW9u'@; put 'JiYoZi5wcm9qZWN0aW9uPWwpLENtKCksKCFkW3UwXXx8dzMoKSkmJjMyIT0oMzImZi5mbGFncykmJmZ1bmN0aW9uIFlEKGMsbCxhKXtXRChsW1ZvXSwwLGwsYSxGMyhjLGEsbCksVzEoYS5wYXJlbnR8fGxbem9dLGEsbCkpfShoLGQsZil9ZnVuY3Rpb24gRWMoYyxsLGEpe3JldHVybiBYMihj'@; put 'LCIiLGwsIiIsYSksRWN9ZnVuY3Rpb24gWDIoYyxsLGEsZCxoKXtjb25zdCBmPVhyKCksXz1LMyhmLGwsYSxkKTtyZXR1cm4gXyE9PVpvJiZQdShUcygpLFFhKCksZixjLF8sZltWb10saCwhMSksWDJ9ZnVuY3Rpb24gYjUoYyxsKXtyZXR1cm4gYzw8MTd8bDw8Mn1mdW5jdGlvbiBYMChjKXty'@; put 'ZXR1cm4gYz4+MTcmMzI3Njd9ZnVuY3Rpb24gdF8oYyl7cmV0dXJuIDJ8Y31mdW5jdGlvbiBKMChjKXtyZXR1cm4oMTMxMDY4JmMpPj4yfWZ1bmN0aW9uIG5fKGMsbCl7cmV0dXJuLTEzMTA2OSZjfGw8PDJ9ZnVuY3Rpb24gcl8oYyl7cmV0dXJuIDF8Y31mdW5jdGlvbiBNTShjLGwsYSxkLGgp'@; put 'e2NvbnN0IGY9Y1thKzFdLF89bnVsbD09PWw7bGV0IFQ9ZD9YMChmKTpKMChmKSxXPSExO2Zvcig7MCE9PVQmJighMT09PVd8fF8pOyl7Y29uc3QgcGU9Y1tUKzFdO25SKGNbVF0sbCkmJihXPSEwLGNbVCsxXT1kP3JfKHBlKTp0XyhwZSkpLFQ9ZD9YMChwZSk6SjAocGUpfVcmJihjW2ErMV09'@; put 'ZD90XyhmKTpyXyhmKSl9ZnVuY3Rpb24gblIoYyxsKXtyZXR1cm4gbnVsbD09PWN8fG51bGw9PWx8fChBcnJheS5pc0FycmF5KGMpP2NbMV06Yyk9PT1sfHwhKCFBcnJheS5pc0FycmF5KGMpfHwic3RyaW5nIiE9dHlwZW9mIGwpJiZqZChjLGwpPj0wfWNvbnN0IEJsPXt0ZXh0RW5kOjAsa2V5'@; put 'OjAsa2V5RW5kOjAsdmFsdWU6MCx2YWx1ZUVuZDowfTtmdW5jdGlvbiB4TShjKXtyZXR1cm4gYy5zdWJzdHJpbmcoQmwua2V5LEJsLmtleUVuZCl9ZnVuY3Rpb24gRU0oYyxsKXtjb25zdCBhPUJsLnRleHRFbmQ7cmV0dXJuIGE9PT1sPy0xOihsPUJsLmtleUVuZD1mdW5jdGlvbiBzUihjLGws'@; put 'YSl7Zm9yKDtsPGEmJmMuY2hhckNvZGVBdChsKT4zMjspbCsrO3JldHVybiBsfShjLEJsLmtleT1sLGEpLHZmKGMsbCxhKSl9ZnVuY3Rpb24gdmYoYyxsLGEpe2Zvcig7bDxhJiZjLmNoYXJDb2RlQXQobCk8PTMyOylsKys7cmV0dXJuIGx9ZnVuY3Rpb24gSHUoYyxsLGEpe3JldHVybiB2MChj'@; put 'LGwsYSwhMSksSHV9ZnVuY3Rpb24gZHIoYyxsKXtyZXR1cm4gdjAoYyxsLG51bGwsITApLGRyfWZ1bmN0aW9uIEsxKGMsbCl7Zm9yKGxldCBhPWZ1bmN0aW9uIGlSKGMpe3JldHVybiBmdW5jdGlvbiBGdShjKXtCbC5rZXk9MCxCbC5rZXlFbmQ9MCxCbC52YWx1ZT0wLEJsLnZhbHVlRW5kPTAs'@; put 'QmwudGV4dEVuZD1jLmxlbmd0aH0oYyksRU0oYyx2ZihjLDAsQmwudGV4dEVuZCkpfShsKTthPj0wO2E9RU0obCxhKSl4YyhjLHhNKGwpLCEwKX1mdW5jdGlvbiB2MChjLGwsYSxkKXtjb25zdCBoPVhyKCksZj1UcygpLF89VjEoMik7Zi5maXJzdFVwZGF0ZVBhc3MmJlgxKGYsYyxfLGQpLGwh'@; put 'PT1abyYmamMoaCxfLGwpJiZjXyhmLGYuZGF0YVtldSgpXSxoLGhbVm9dLGMsaFtfKzFdPWZ1bmN0aW9uIExNKGMsbCl7cmV0dXJuIG51bGw9PWN8fCIiPT09Y3x8KCJzdHJpbmciPT10eXBlb2YgbD9jKz1sOiJvYmplY3QiPT10eXBlb2YgYyYmKGM9cWEoJDIoYykpKSksY30obCxhKSxkLF8p'@; put 'fWZ1bmN0aW9uIERNKGMsbCl7cmV0dXJuIGw+PWMuZXhwYW5kb1N0YXJ0SW5kZXh9ZnVuY3Rpb24gWDEoYyxsLGEsZCl7Y29uc3QgaD1jLmRhdGE7aWYobnVsbD09PWhbYSsxXSl7Y29uc3QgZj1oW2V1KCldLF89RE0oYyxhKTt1XyhmLGQpJiZudWxsPT09bCYmIV8mJihsPSExKSxsPWZ1bmN0'@; put 'aW9uIGxSKGMsbCxhLGQpe2NvbnN0IGg9dzkoYyk7bGV0IGY9ZD9sLnJlc2lkdWFsQ2xhc3NlczpsLnJlc2lkdWFsU3R5bGVzO2lmKG51bGw9PT1oKTA9PT0oZD9sLmNsYXNzQmluZGluZ3M6bC5zdHlsZUJpbmRpbmdzKSYmKGE9eTUoYT1sXyhudWxsLGMsbCxhLGQpLGwuYXR0cnMsZCksZj1u'@; put 'dWxsKTtlbHNle2NvbnN0IF89bC5kaXJlY3RpdmVTdHlsaW5nTGFzdDtpZigtMT09PV98fGNbX10hPT1oKWlmKGE9bF8oaCxjLGwsYSxkKSxudWxsPT09Zil7bGV0IFc9ZnVuY3Rpb24gY1IoYyxsLGEpe2NvbnN0IGQ9YT9sLmNsYXNzQmluZGluZ3M6bC5zdHlsZUJpbmRpbmdzO2lmKDAhPT1K'@; put 'MChkKSlyZXR1cm4gY1tYMChkKV19KGMsbCxkKTt2b2lkIDAhPT1XJiZBcnJheS5pc0FycmF5KFcpJiYoVz1sXyhudWxsLGMsbCxXWzFdLGQpLFc9eTUoVyxsLmF0dHJzLGQpLGZ1bmN0aW9uIHVSKGMsbCxhLGQpe2NbWDAoYT9sLmNsYXNzQmluZGluZ3M6bC5zdHlsZUJpbmRpbmdzKV09ZH0o'@; put 'YyxsLGQsVykpfWVsc2UgZj1mdW5jdGlvbiBkUihjLGwsYSl7bGV0IGQ7Y29uc3QgaD1sLmRpcmVjdGl2ZUVuZDtmb3IobGV0IGY9MStsLmRpcmVjdGl2ZVN0eWxpbmdMYXN0O2Y8aDtmKyspZD15NShkLGNbZl0uaG9zdEF0dHJzLGEpO3JldHVybiB5NShkLGwuYXR0cnMsYSl9KGMsbCxkKX1y'@; put 'ZXR1cm4gdm9pZCAwIT09ZiYmKGQ/bC5yZXNpZHVhbENsYXNzZXM9ZjpsLnJlc2lkdWFsU3R5bGVzPWYpLGF9KGgsZixsLGQpLGZ1bmN0aW9uIGVSKGMsbCxhLGQsaCxmKXtsZXQgXz1mP2wuY2xhc3NCaW5kaW5nczpsLnN0eWxlQmluZGluZ3MsVD1YMChfKSxXPUowKF8pO2NbZF09YTtsZXQg'@; put 'cGUsaWU9ITE7aWYoQXJyYXkuaXNBcnJheShhKT8ocGU9YVsxXSwobnVsbD09PXBlfHxqZChhLHBlKT4wKSYmKGllPSEwKSk6cGU9YSxoKWlmKDAhPT1XKXtjb25zdCBFZT1YMChjW1QrMV0pO2NbZCsxXT1iNShFZSxUKSwwIT09RWUmJihjW0VlKzFdPW5fKGNbRWUrMV0sZCkpLGNbVCsxXT1m'@; put 'dW5jdGlvbiBDaShjLGwpe3JldHVybiAxMzEwNzEmY3xsPDwxN30oY1tUKzFdLGQpfWVsc2UgY1tkKzFdPWI1KFQsMCksMCE9PVQmJihjW1QrMV09bl8oY1tUKzFdLGQpKSxUPWQ7ZWxzZSBjW2QrMV09YjUoVywwKSwwPT09VD9UPWQ6Y1tXKzFdPW5fKGNbVysxXSxkKSxXPWQ7aWUmJihjW2Qr'@; put 'MV09dF8oY1tkKzFdKSksTU0oYyxwZSxkLCEwKSxNTShjLHBlLGQsITEpLGZ1bmN0aW9uIHRSKGMsbCxhLGQsaCl7Y29uc3QgZj1oP2MucmVzaWR1YWxDbGFzc2VzOmMucmVzaWR1YWxTdHlsZXM7bnVsbCE9ZiYmInN0cmluZyI9PXR5cGVvZiBsJiZqZChmLGwpPj0wJiYoYVtkKzFdPXJfKGFb'@; put 'ZCsxXSkpfShsLHBlLGMsZCxmKSxfPWI1KFQsVyksZj9sLmNsYXNzQmluZGluZ3M9XzpsLnN0eWxlQmluZGluZ3M9X30oaCxmLGwsYSxfLGQpfX1mdW5jdGlvbiBsXyhjLGwsYSxkLGgpe2xldCBmPW51bGw7Y29uc3QgXz1hLmRpcmVjdGl2ZUVuZDtsZXQgVD1hLmRpcmVjdGl2ZVN0eWxpbmdM'@; put 'YXN0O2ZvcigtMT09PVQ/VD1hLmRpcmVjdGl2ZVN0YXJ0OlQrKztUPF8mJihmPWxbVF0sZD15NShkLGYuaG9zdEF0dHJzLGgpLGYhPT1jKTspVCsrO3JldHVybiBudWxsIT09YyYmKGEuZGlyZWN0aXZlU3R5bGluZ0xhc3Q9VCksZH1mdW5jdGlvbiB5NShjLGwsYSl7Y29uc3QgZD1hPzE6Mjts'@; put 'ZXQgaD0tMTtpZihudWxsIT09bClmb3IobGV0IGY9MDtmPGwubGVuZ3RoO2YrKyl7Y29uc3QgXz1sW2ZdOyJudW1iZXIiPT10eXBlb2YgXz9oPV86aD09PWQmJihBcnJheS5pc0FycmF5KGMpfHwoYz12b2lkIDA9PT1jP1tdOlsiIixjXSkseGMoYyxfLCEhYXx8bFsrK2ZdKSl9cmV0dXJuIHZv'@; put 'aWQgMD09PWM/bnVsbDpjfWZ1bmN0aW9uIGNfKGMsbCxhLGQsaCxmLF8sVCl7aWYoISgzJmwudHlwZSkpcmV0dXJuO2NvbnN0IFc9Yy5kYXRhLGllPVdbVCsxXSxwZT1mdW5jdGlvbiBRTChjKXtyZXR1cm4gMT09KDEmYyl9KGllKT9lbChXLGwsYSxoLEowKGllKSxfKTp2b2lkIDA7SjEocGUp'@; put 'fHwoSjEoZil8fGZ1bmN0aW9uIFNNKGMpe3JldHVybiAyPT0oMiZjKX0oaWUpJiYoZj1lbChXLG51bGwsYSxoLFQsXykpLGZ1bmN0aW9uIElaKGMsbCxhLGQsaCl7aWYobCloP2MuYWRkQ2xhc3MoYSxkKTpjLnJlbW92ZUNsYXNzKGEsZCk7ZWxzZXtsZXQgZj0tMT09PWQuaW5kZXhPZigiLSIp'@; put 'P3ZvaWQgMDpZMi5EYXNoQ2FzZTtudWxsPT1oP2MucmVtb3ZlU3R5bGUoYSxkLGYpOigic3RyaW5nIj09dHlwZW9mIGgmJmguZW5kc1dpdGgoIiFpbXBvcnRhbnQiKSYmKGg9aC5zbGljZSgwLC0xMCksZnw9WTIuSW1wb3J0YW50KSxjLnNldFN0eWxlKGEsZCxoLGYpKX19KGQsXyxZMChldSgp'@; put 'LGEpLGgsZikpfWZ1bmN0aW9uIGVsKGMsbCxhLGQsaCxmKXtjb25zdCBfPW51bGw9PT1sO2xldCBUO2Zvcig7aD4wOyl7Y29uc3QgVz1jW2hdLGllPUFycmF5LmlzQXJyYXkoVykscGU9aWU/V1sxXTpXLHdlPW51bGw9PT1wZTtsZXQgRWU9YVtoKzFdO0VlPT09Wm8mJihFZT13ZT9Tczp2b2lk'@; put 'IDApO2xldCBaZT13ZT90ZihFZSxkKTpwZT09PWQ/RWU6dm9pZCAwO2lmKGllJiYhSjEoWmUpJiYoWmU9dGYoVyxkKSksSjEoWmUpJiYoVD1aZSxfKSlyZXR1cm4gVDtjb25zdCBpdD1jW2grMV07aD1fP1gwKGl0KTpKMChpdCl9aWYobnVsbCE9PWwpe2xldCBXPWY/bC5yZXNpZHVhbENsYXNz'@; put 'ZXM6bC5yZXNpZHVhbFN0eWxlcztudWxsIT1XJiYoVD10ZihXLGQpKX1yZXR1cm4gVH1mdW5jdGlvbiBKMShjKXtyZXR1cm4gdm9pZCAwIT09Y31mdW5jdGlvbiB1XyhjLGwpe3JldHVybiAwIT0oYy5mbGFncyYobD84OjE2KSl9ZnVuY3Rpb24gTmUoYyxsPSIiKXtjb25zdCBhPVhyKCksZD1U'@; put 'cygpLGg9YytwcyxmPWQuZmlyc3RDcmVhdGVQYXNzP0czKGQsaCwxLGwsbnVsbCk6ZC5kYXRhW2hdLF89ZF8oZCxhLGYsbCxjKTthW2hdPV8seG0oKSYmZTYoZCxhLF8sZiksTjEoZiwhMSl9bGV0IGRfPShjLGwsYSxkLGgpPT4oVmQoITApLGZ1bmN0aW9uICRtKGMsbCl7cmV0dXJuIGMuY3Jl'@; put 'YXRlVGV4dChsKX0obFtWb10sZCkpO2Z1bmN0aW9uIG9yKGMpe3JldHVybiBncigiIixjLCIiKSxvcn1mdW5jdGlvbiBncihjLGwsYSl7Y29uc3QgZD1YcigpLGg9SzMoZCxjLGwsYSk7cmV0dXJuIGghPT1abyYmR2QoZCxldSgpLGgpLGdyfWZ1bmN0aW9uIHpjKGMsbCxhLGQsaCl7Y29uc3Qg'@; put 'Zj1YcigpLF89ZnVuY3Rpb24gWDMoYyxsLGEsZCxoLGYpe2NvbnN0IFQ9Z2YoYyxOZCgpLGEsaCk7cmV0dXJuIFYxKDIpLFQ/bCtrbyhhKStkK2tvKGgpK2Y6Wm99KGYsYyxsLGEsZCxoKTtyZXR1cm4gXyE9PVpvJiZHZChmLGV1KCksXyksemN9ZnVuY3Rpb24gYjAoYyxsLGEsZCxoLGYsXyl7'@; put 'Y29uc3QgVD1YcigpLFc9ZnVuY3Rpb24gSjMoYyxsLGEsZCxoLGYsXyxUKXtjb25zdCBpZT1UNihjLE5kKCksYSxoLF8pO3JldHVybiBWMSgzKSxpZT9sK2tvKGEpK2Qra28oaCkrZitrbyhfKStUOlpvfShULGMsbCxhLGQsaCxmLF8pO3JldHVybiBXIT09Wm8mJkdkKFQsZXUoKSxXKSxiMH1m'@; put 'dW5jdGlvbiB3NShjLGwsYSxkLGgsZixfLFQsVyl7Y29uc3QgaWU9WHIoKSxwZT1mdW5jdGlvbiBRMyhjLGwsYSxkLGgsZixfLFQsVyxpZSl7Y29uc3Qgd2U9bTAoYyxOZCgpLGEsaCxfLFcpO3JldHVybiBWMSg0KSx3ZT9sK2tvKGEpK2Qra28oaCkrZitrbyhfKStUK2tvKFcpK2llOlpvfShp'@; put 'ZSxjLGwsYSxkLGgsZixfLFQsVyk7cmV0dXJuIHBlIT09Wm8mJkdkKGllLGV1KCkscGUpLHc1fWZ1bmN0aW9uIEZNKGMsbCxhKXshZnVuY3Rpb24gXzAoYyxsLGEsZCl7Y29uc3QgaD1UcygpLGY9VjEoMik7aC5maXJzdFVwZGF0ZVBhc3MmJlgxKGgsbnVsbCxmLGQpO2NvbnN0IF89WHIoKTtp'@; put 'ZihhIT09Wm8mJmpjKF8sZixhKSl7Y29uc3QgVD1oLmRhdGFbZXUoKV07aWYodV8oVCxkKSYmIURNKGgsZikpe2xldCBXPWQ/VC5jbGFzc2VzV2l0aG91dEhvc3Q6VC5zdHlsZXNXaXRob3V0SG9zdDtudWxsIT09VyYmKGE9X2MoVyxhfHwiIikpLEp2KGgsVCxfLGEsZCl9ZWxzZSFmdW5jdGlv'@; put 'biBhYyhjLGwsYSxkLGgsZixfLFQpe2g9PT1abyYmKGg9U3MpO2xldCBXPTAsaWU9MCxwZT0wPGgubGVuZ3RoP2hbMF06bnVsbCx3ZT0wPGYubGVuZ3RoP2ZbMF06bnVsbDtmb3IoO251bGwhPT1wZXx8bnVsbCE9PXdlOyl7Y29uc3QgRWU9VzxoLmxlbmd0aD9oW1crMV06dm9pZCAwLFplPWll'@; put 'PGYubGVuZ3RoP2ZbaWUrMV06dm9pZCAwO2xldCBldCxpdD1udWxsO3BlPT09d2U/KFcrPTIsaWUrPTIsRWUhPT1aZSYmKGl0PXdlLGV0PVplKSk6bnVsbD09PXdlfHxudWxsIT09cGUmJnBlPHdlPyhXKz0yLGl0PXBlKTooaWUrPTIsaXQ9d2UsZXQ9WmUpLG51bGwhPT1pdCYmY18oYyxsLGEs'@; put 'ZCxpdCxldCxfLFQpLHBlPVc8aC5sZW5ndGg/aFtXXTpudWxsLHdlPWllPGYubGVuZ3RoP2ZbaWVdOm51bGx9fShoLFQsXyxfW1ZvXSxfW2YrMV0sX1tmKzFdPWZ1bmN0aW9uIGhSKGMsbCxhKXtpZihudWxsPT1hfHwiIj09PWEpcmV0dXJuIFNzO2NvbnN0IGQ9W10saD0kMihhKTtpZihBcnJh'@; put 'eS5pc0FycmF5KGgpKWZvcihsZXQgZj0wO2Y8aC5sZW5ndGg7ZisrKWMoZCxoW2ZdLCEwKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgaClmb3IoY29uc3QgZiBpbiBoKWguaGFzT3duUHJvcGVydHkoZikmJmMoZCxmLGhbZl0pO2Vsc2Uic3RyaW5nIj09dHlwZW9mIGgmJmwoZCxoKTtyZXR1'@; put 'cm4gZH0oYyxsLGEpLGQsZil9fSh4YyxLMSxLMyhYcigpLGMsbCxhKSwhMCl9ZnVuY3Rpb24gdDEoYyxsLGEpe2NvbnN0IGQ9WHIoKTtyZXR1cm4gamMoZCxDMygpLGwpJiZQdShUcygpLFFhKCksZCxjLGwsZFtWb10sYSwhMCksdDF9ZnVuY3Rpb24gUzUoYyxsLGEpe2NvbnN0IGQ9WHIoKTtp'@; put 'ZihqYyhkLEMzKCksbCkpe2NvbnN0IGY9VHMoKSxfPVFhKCk7UHUoZixfLGQsYyxsLFZTKHc5KGYuZGF0YSksXyxkKSxhLCEwKX1yZXR1cm4gUzV9Y29uc3QgYmY9dm9pZCAwO3ZhciBINj1bImVuIixbWyJhIiwicCJdLFsiQU0iLCJQTSJdLGJmXSxbWyJBTSIsIlBNIl0sYmYsYmZdLFtbIlMi'@; put 'LCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwi'@; put 'VGgiLCJGciIsIlNhIl1dLGJmLFtbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sWyJKYW51YXJ5IiwiRmVicnVhcnki'@; put 'LCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdXSxiZixbWyJCIiwiQSJdLFsiQkMiLCJBRCJdLFsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl1dLDAsWzYsMF0sWyJNL2Qv'@; put 'eXkiLCJNTU0gZCwgeSIsIk1NTU0gZCwgeSIsIkVFRUUsIE1NTU0gZCwgeSJdLFsiaDptbSBhIiwiaDptbTpzcyBhIiwiaDptbTpzcyBhIHoiLCJoOm1tOnNzIGEgenp6eiJdLFsiezF9LCB7MH0iLGJmLCJ7MX0gJ2F0JyB7MH0iLGJmXSxbIi4iLCIsIiwiOyIsIiUiLCIrIiwiLSIsIkUiLCJc'@; put 'eGQ3IiwiXHUyMDMwIiwiXHUyMjFlIiwiTmFOIiwiOiJdLFsiIywjIzAuIyMjIiwiIywjIzAlIiwiXHhhNCMsIyMwLjAwIiwiI0UwIl0sIlVTRCIsIiQiLCJVUyBEb2xsYXIiLHt9LCJsdHIiLGZ1bmN0aW9uIHpNKGMpe2NvbnN0IGE9TWF0aC5mbG9vcihNYXRoLmFicyhjKSksZD1jLnRvU3Ry'@; put 'aW5nKCkucmVwbGFjZSgvXlteLl0qXC4/LywiIikubGVuZ3RoO3JldHVybiAxPT09YSYmMD09PWQ/MTo1fV07bGV0ICRkPXt9O2Z1bmN0aW9uIGpsKGMpe2NvbnN0IGw9ZnVuY3Rpb24gRVIoYyl7cmV0dXJuIGMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKX0oYyk7bGV0IGE9X18o'@; put 'bCk7aWYoYSlyZXR1cm4gYTtjb25zdCBkPWwuc3BsaXQoIi0iKVswXTtpZihhPV9fKGQpLGEpcmV0dXJuIGE7aWYoImVuIj09PWQpcmV0dXJuIEg2O3Rocm93IG5ldyBBcig3MDEsITEpfWZ1bmN0aW9uIF9fKGMpe3JldHVybiBjIGluICRkfHwoJGRbY109T2kubmcmJk9pLm5nLmNvbW1vbiYm'@; put 'T2kubmcuY29tbW9uLmxvY2FsZXMmJk9pLm5nLmNvbW1vbi5sb2NhbGVzW2NdKSwkZFtjXX12YXIgcW89ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5Mb2NhbGVJZD0wXT0iTG9jYWxlSWQiLGNbYy5EYXlQZXJpb2RzRm9ybWF0PTFdPSJEYXlQZXJpb2RzRm9ybWF0IixjW2MuRGF5UGVyaW9kc1N0'@; put 'YW5kYWxvbmU9Ml09IkRheVBlcmlvZHNTdGFuZGFsb25lIixjW2MuRGF5c0Zvcm1hdD0zXT0iRGF5c0Zvcm1hdCIsY1tjLkRheXNTdGFuZGFsb25lPTRdPSJEYXlzU3RhbmRhbG9uZSIsY1tjLk1vbnRoc0Zvcm1hdD01XT0iTW9udGhzRm9ybWF0IixjW2MuTW9udGhzU3RhbmRhbG9uZT02XT0i'@; put 'TW9udGhzU3RhbmRhbG9uZSIsY1tjLkVyYXM9N109IkVyYXMiLGNbYy5GaXJzdERheU9mV2Vlaz04XT0iRmlyc3REYXlPZldlZWsiLGNbYy5XZWVrZW5kUmFuZ2U9OV09IldlZWtlbmRSYW5nZSIsY1tjLkRhdGVGb3JtYXQ9MTBdPSJEYXRlRm9ybWF0IixjW2MuVGltZUZvcm1hdD0xMV09IlRp'@; put 'bWVGb3JtYXQiLGNbYy5EYXRlVGltZUZvcm1hdD0xMl09IkRhdGVUaW1lRm9ybWF0IixjW2MuTnVtYmVyU3ltYm9scz0xM109Ik51bWJlclN5bWJvbHMiLGNbYy5OdW1iZXJGb3JtYXRzPTE0XT0iTnVtYmVyRm9ybWF0cyIsY1tjLkN1cnJlbmN5Q29kZT0xNV09IkN1cnJlbmN5Q29kZSIsY1tj'@; put 'LkN1cnJlbmN5U3ltYm9sPTE2XT0iQ3VycmVuY3lTeW1ib2wiLGNbYy5DdXJyZW5jeU5hbWU9MTddPSJDdXJyZW5jeU5hbWUiLGNbYy5DdXJyZW5jaWVzPTE4XT0iQ3VycmVuY2llcyIsY1tjLkRpcmVjdGlvbmFsaXR5PTE5XT0iRGlyZWN0aW9uYWxpdHkiLGNbYy5QbHVyYWxDYXNlPTIwXT0i'@; put 'UGx1cmFsQ2FzZSIsY1tjLkV4dHJhRGF0YT0yMV09IkV4dHJhRGF0YSIsY30ocW98fHt9KTtjb25zdCBpcD0iZW4tVVMiO2xldCByZT1pcDtmdW5jdGlvbiBacihjLGwsYSxkLGgpe2lmKGM9Ym8oYyksQXJyYXkuaXNBcnJheShjKSlmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrKylacihjW2Zd'@; put 'LGwsYSxkLGgpO2Vsc2V7Y29uc3QgZj1UcygpLF89WHIoKTtsZXQgVD1sZihjKT9jOmJvKGMucHJvdmlkZSksVz1RQyhjKTtjb25zdCBpZT1NYygpLHBlPTEwNDg1NzUmaWUucHJvdmlkZXJJbmRleGVzLHdlPWllLmRpcmVjdGl2ZVN0YXJ0LEVlPWllLnByb3ZpZGVySW5kZXhlcz4+MjA7aWYo'@; put 'bGYoYyl8fCFjLm11bHRpKXtjb25zdCBaZT1uZXcgUjQoVyxoLHR0KSxpdD1jaShULGwsaD9wZTpwZStFZSx3ZSk7LTE9PT1pdD8oVDkoSW0oaWUsXyksZixUKSxMcihmLGMsbC5sZW5ndGgpLGwucHVzaChUKSxpZS5kaXJlY3RpdmVTdGFydCsrLGllLmRpcmVjdGl2ZUVuZCsrLGgmJihpZS5w'@; put 'cm92aWRlckluZGV4ZXMrPTEwNDg1NzYpLGEucHVzaChaZSksXy5wdXNoKFplKSk6KGFbaXRdPVplLF9baXRdPVplKX1lbHNle2NvbnN0IFplPWNpKFQsbCxwZStFZSx3ZSksaXQ9Y2koVCxsLHBlLHBlK0VlKSx5dD1pdD49MCYmYVtpdF07aWYoaCYmIXl0fHwhaCYmIShaZT49MCYmYVtaZV0p'@; put 'KXtUOShJbShpZSxfKSxmLFQpO2NvbnN0IEV0PWZ1bmN0aW9uIFVvKGMsbCxhLGQsaCl7Y29uc3QgZj1uZXcgUjQoYyxhLHR0KTtyZXR1cm4gZi5tdWx0aT1bXSxmLmluZGV4PWwsZi5jb21wb25lbnRQcm92aWRlcnM9MCxNaShmLGgsZCYmIWEpLGZ9KGg/cG86Q28sYS5sZW5ndGgsaCxkLFcp'@; put 'OyFoJiZ5dCYmKGFbaXRdLnByb3ZpZGVyRmFjdG9yeT1FdCksTHIoZixjLGwubGVuZ3RoLDApLGwucHVzaChUKSxpZS5kaXJlY3RpdmVTdGFydCsrLGllLmRpcmVjdGl2ZUVuZCsrLGgmJihpZS5wcm92aWRlckluZGV4ZXMrPTEwNDg1NzYpLGEucHVzaChFdCksXy5wdXNoKEV0KX1lbHNlIExy'@; put 'KGYsYyxaZT4tMT9aZTppdCxNaShhW2g/aXQ6WmVdLFcsIWgmJmQpKTshaCYmZCYmeXQmJmFbaXRdLmNvbXBvbmVudFByb3ZpZGVycysrfX19ZnVuY3Rpb24gTHIoYyxsLGEsZCl7Y29uc3QgaD1sZihsKSxmPWZ1bmN0aW9uIGU1KGMpe3JldHVybiEhYy51c2VDbGFzc30obCk7aWYoaHx8Zil7'@; put 'Y29uc3QgVz0oZj9ibyhsLnVzZUNsYXNzKTpsKS5wcm90b3R5cGUubmdPbkRlc3Ryb3k7aWYoVyl7Y29uc3QgaWU9Yy5kZXN0cm95SG9va3N8fChjLmRlc3Ryb3lIb29rcz1bXSk7aWYoIWgmJmwubXVsdGkpe2NvbnN0IHBlPWllLmluZGV4T2YoYSk7LTE9PT1wZT9pZS5wdXNoKGEsW2QsV10p'@; put 'OmllW3BlKzFdLnB1c2goZCxXKX1lbHNlIGllLnB1c2goYSxXKX19fWZ1bmN0aW9uIE1pKGMsbCxhKXtyZXR1cm4gYSYmYy5jb21wb25lbnRQcm92aWRlcnMrKyxjLm11bHRpLnB1c2gobCktMX1mdW5jdGlvbiBjaShjLGwsYSxkKXtmb3IobGV0IGg9YTtoPGQ7aCsrKWlmKGxbaF09PT1jKXJl'@; put 'dHVybiBoO3JldHVybi0xfWZ1bmN0aW9uIENvKGMsbCxhLGQpe3JldHVybiBWaSh0aGlzLm11bHRpLFtdKX1mdW5jdGlvbiBwbyhjLGwsYSxkKXtjb25zdCBoPXRoaXMubXVsdGk7bGV0IGY7aWYodGhpcy5wcm92aWRlckZhY3Rvcnkpe2NvbnN0IF89dGhpcy5wcm92aWRlckZhY3RvcnkuY29t'@; put 'cG9uZW50UHJvdmlkZXJzLFQ9UWgoYSxhW0JpXSx0aGlzLnByb3ZpZGVyRmFjdG9yeS5pbmRleCxkKTtmPVQuc2xpY2UoMCxfKSxWaShoLGYpO2ZvcihsZXQgVz1fO1c8VC5sZW5ndGg7VysrKWYucHVzaChUW1ddKX1lbHNlIGY9W10sVmkoaCxmKTtyZXR1cm4gZn1mdW5jdGlvbiBWaShjLGwp'@; put 'e2ZvcihsZXQgYT0wO2E8Yy5sZW5ndGg7YSsrKWwucHVzaCgoMCxjW2FdKSgpKTtyZXR1cm4gbH1mdW5jdGlvbiB0aShjLGw9W10pe3JldHVybiBhPT57YS5wcm92aWRlcnNSZXNvbHZlcj0oZCxoKT0+ZnVuY3Rpb24gYnIoYyxsLGEpe2NvbnN0IGQ9VHMoKTtpZihkLmZpcnN0Q3JlYXRlUGFz'@; put 'cyl7Y29uc3QgaD1RYyhjKTtacihhLGQuZGF0YSxkLmJsdWVwcmludCxoLCEwKSxacihsLGQuZGF0YSxkLmJsdWVwcmludCxoLCExKX19KGQsaD9oKGMpOmMsbCl9fWNsYXNzIFVse31jbGFzcyBjY3t9Y2xhc3Mgd2YgZXh0ZW5kcyBVbHtjb25zdHJ1Y3RvcihsLGEsZCl7c3VwZXIoKSx0aGlz'@; put 'Ll9wYXJlbnQ9YSx0aGlzLl9ib290c3RyYXBDb21wb25lbnRzPVtdLHRoaXMuZGVzdHJveUNicz1bXSx0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj1uZXcgR1ModGhpcyk7Y29uc3QgaD1OYyhsKTt0aGlzLl9ib290c3RyYXBDb21wb25lbnRzPVdkKGguYm9vdHN0cmFwKSx0aGlzLl9y'@; put 'M0luamVjdG9yPVR2KGwsYSxbe3Byb3ZpZGU6VWwsdXNlVmFsdWU6dGhpc30se3Byb3ZpZGU6SzAsdXNlVmFsdWU6dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ9LC4uLmRdLHFhKGwpLG5ldyBTZXQoWyJlbnZpcm9ubWVudCJdKSksdGhpcy5fcjNJbmplY3Rvci5yZXNvbHZlSW5qZWN0'@; put 'b3JJbml0aWFsaXplcnMoKSx0aGlzLmluc3RhbmNlPXRoaXMuX3IzSW5qZWN0b3IuZ2V0KGwpfWdldCBpbmplY3Rvcigpe3JldHVybiB0aGlzLl9yM0luamVjdG9yfWRlc3Ryb3koKXtjb25zdCBsPXRoaXMuX3IzSW5qZWN0b3I7IWwuZGVzdHJveWVkJiZsLmRlc3Ryb3koKSx0aGlzLmRlc3Ry'@; put 'b3lDYnMuZm9yRWFjaChhPT5hKCkpLHRoaXMuZGVzdHJveUNicz1udWxsfW9uRGVzdHJveShsKXt0aGlzLmRlc3Ryb3lDYnMucHVzaChsKX19Y2xhc3MgcWQgZXh0ZW5kcyBjY3tjb25zdHJ1Y3RvcihsKXtzdXBlcigpLHRoaXMubW9kdWxlVHlwZT1sfWNyZWF0ZShsKXtyZXR1cm4gbmV3IHdm'@; put 'KHRoaXMubW9kdWxlVHlwZSxsLFtdKX19Y2xhc3MgUTEgZXh0ZW5kcyBVbHtjb25zdHJ1Y3RvcihsKXtzdXBlcigpLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBHUyh0aGlzKSx0aGlzLmluc3RhbmNlPW51bGw7Y29uc3QgYT1uZXcgY3YoWy4uLmwucHJvdmlkZXJzLHtwcm92'@; put 'aWRlOlVsLHVzZVZhbHVlOnRoaXN9LHtwcm92aWRlOkswLHVzZVZhbHVlOnRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfV0sbC5wYXJlbnR8fHM2KCksbC5kZWJ1Z05hbWUsbmV3IFNldChbImVudmlyb25tZW50Il0pKTt0aGlzLmluamVjdG9yPWEsbC5ydW5FbnZpcm9ubWVudEluaXRp'@; put 'YWxpemVycyYmYS5yZXNvbHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKX1kZXN0cm95KCl7dGhpcy5pbmplY3Rvci5kZXN0cm95KCl9b25EZXN0cm95KGwpe3RoaXMuaW5qZWN0b3Iub25EZXN0cm95KGwpfX1mdW5jdGlvbiBBUihjLGwsYT1udWxsKXtyZXR1cm4gbmV3IFExKHtwcm92aWRlcnM6'@; put 'YyxwYXJlbnQ6bCxkZWJ1Z05hbWU6YSxydW5FbnZpcm9ubWVudEluaXRpYWxpemVyczohMH0pLmluamVjdG9yfWxldCB4bGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9pbmplY3Rvcj1hLHRoaXMuY2FjaGVkSW5qZWN0b3JzPW5ldyBNYXB9Z2V0T3JDcmVhdGVTdGFuZGFs'@; put 'b25lSW5qZWN0b3IoYSl7aWYoIWEuc3RhbmRhbG9uZSlyZXR1cm4gbnVsbDtpZighdGhpcy5jYWNoZWRJbmplY3RvcnMuaGFzKGEpKXtjb25zdCBkPXFDKDAsYS50eXBlKSxoPWQubGVuZ3RoPjA/QVIoW2RdLHRoaXMuX2luamVjdG9yLGBTdGFuZGFsb25lWyR7YS50eXBlLm5hbWV9XWApOm51'@; put 'bGw7dGhpcy5jYWNoZWRJbmplY3RvcnMuc2V0KGEsaCl9cmV0dXJuIHRoaXMuY2FjaGVkSW5qZWN0b3JzLmdldChhKX1uZ09uRGVzdHJveSgpe3RyeXtmb3IoY29uc3QgYSBvZiB0aGlzLmNhY2hlZEluamVjdG9ycy52YWx1ZXMoKSludWxsIT09YSYmYS5kZXN0cm95KCl9ZmluYWxseXt0aGlz'@; put 'LmNhY2hlZEluamVjdG9ycy5jbGVhcigpfX19cmV0dXJuIGMuXHUwMjc1cHJvdj1ocih7dG9rZW46Yyxwcm92aWRlZEluOiJlbnZpcm9ubWVudCIsZmFjdG9yeTooKT0+bmV3IGMoYXIocTApKX0pLGN9KSgpO2Z1bmN0aW9uIHBZKGMpe2MuZ2V0U3RhbmRhbG9uZUluamVjdG9yPWw9PmwuZ2V0'@; put 'KHhsZSkuZ2V0T3JDcmVhdGVTdGFuZGFsb25lSW5qZWN0b3IoYyl9ZnVuY3Rpb24gJHMoYyxsLGEpe2NvbnN0IGQ9VmMoKStjLGg9WHIoKTtyZXR1cm4gaFtkXT09PVpvP3ExKGgsZCxhP2wuY2FsbChhKTpsKCkpOmZ1bmN0aW9uIGY1KGMsbCl7cmV0dXJuIGNbbF19KGgsZCl9ZnVuY3Rpb24g'@; put 'SjIoYyxsLGEsZCl7cmV0dXJuIHdZKFhyKCksVmMoKSxjLGwsYSxkKX1mdW5jdGlvbiBRMihjLGwsYSxkLGgpe3JldHVybiBDWShYcigpLFZjKCksYyxsLGEsZCxoKX1mdW5jdGlvbiB5XyhjLGwsYSxkLGgsZil7cmV0dXJuIFNZKFhyKCksVmMoKSxjLGwsYSxkLGgsZil9ZnVuY3Rpb24gV00o'@; put 'YyxsLGEsZCxoLGYsXyl7cmV0dXJuIGZ1bmN0aW9uIE1ZKGMsbCxhLGQsaCxmLF8sVCxXKXtjb25zdCBpZT1sK2E7cmV0dXJuIG0wKGMsaWUsaCxmLF8sVCk/cTEoYyxpZSs0LFc/ZC5jYWxsKFcsaCxmLF8sVCk6ZChoLGYsXyxUKSk6d18oYyxpZSs0KX0oWHIoKSxWYygpLGMsbCxhLGQsaCxm'@; put 'LF8pfWZ1bmN0aW9uIHdfKGMsbCl7Y29uc3QgYT1jW2xdO3JldHVybiBhPT09Wm8/dm9pZCAwOmF9ZnVuY3Rpb24gd1koYyxsLGEsZCxoLGYpe2NvbnN0IF89bCthO3JldHVybiBqYyhjLF8saCk/cTEoYyxfKzEsZj9kLmNhbGwoZixoKTpkKGgpKTp3XyhjLF8rMSl9ZnVuY3Rpb24gQ1koYyxs'@; put 'LGEsZCxoLGYsXyl7Y29uc3QgVD1sK2E7cmV0dXJuIGdmKGMsVCxoLGYpP3ExKGMsVCsyLF8/ZC5jYWxsKF8saCxmKTpkKGgsZikpOndfKGMsVCsyKX1mdW5jdGlvbiBTWShjLGwsYSxkLGgsZixfLFQpe2NvbnN0IFc9bCthO3JldHVybiBUNihjLFcsaCxmLF8pP3ExKGMsVyszLFQ/ZC5jYWxs'@; put 'KFQsaCxmLF8pOmQoaCxmLF8pKTp3XyhjLFcrMyl9ZnVuY3Rpb24gYmEoYyxsKXtjb25zdCBhPVRzKCk7bGV0IGQ7Y29uc3QgaD1jK3BzO2EuZmlyc3RDcmVhdGVQYXNzPyhkPWZ1bmN0aW9uIFZsZShjLGwpe2lmKGwpZm9yKGxldCBhPWwubGVuZ3RoLTE7YT49MDthLS0pe2NvbnN0IGQ9bFth'@; put 'XTtpZihjPT09ZC5uYW1lKXJldHVybiBkfX0obCxhLnBpcGVSZWdpc3RyeSksYS5kYXRhW2hdPWQsZC5vbkRlc3Ryb3kmJihhLmRlc3Ryb3lIb29rcz8/PVtdKS5wdXNoKGgsZC5vbkRlc3Ryb3kpKTpkPWEuZGF0YVtoXTtjb25zdCBmPWQuZmFjdG9yeXx8KGQuZmFjdG9yeT1IMShkLnR5cGUp'@; put 'KSxfPWRpKHR0KTt0cnl7Y29uc3QgVD1CMSghMSksVz1mKCk7cmV0dXJuIEIxKFQpLGZ1bmN0aW9uIEdMKGMsbCxhLGQpe2E+PWMuZGF0YS5sZW5ndGgmJihjLmRhdGFbYV09bnVsbCxjLmJsdWVwcmludFthXT1udWxsKSxsW2FdPWR9KGEsWHIoKSxoLFcpLFd9ZmluYWxseXtkaShfKX19ZnVu'@; put 'Y3Rpb24gWmwoYyxsLGEpe2NvbnN0IGQ9YytwcyxoPVhyKCksZj0kZShoLGQpO3JldHVybiBDXyhoLGQpP3dZKGgsVmMoKSxsLGYudHJhbnNmb3JtLGEsZik6Zi50cmFuc2Zvcm0oYSl9ZnVuY3Rpb24gTTUoYyxsLGEsZCl7Y29uc3QgaD1jK3BzLGY9WHIoKSxfPSRlKGYsaCk7cmV0dXJuIENf'@; put 'KGYsaCk/Q1koZixWYygpLGwsXy50cmFuc2Zvcm0sYSxkLF8pOl8udHJhbnNmb3JtKGEsZCl9ZnVuY3Rpb24gRFIoYyxsLGEsZCxoKXtjb25zdCBmPWMrcHMsXz1YcigpLFQ9JGUoXyxmKTtyZXR1cm4gQ18oXyxmKT9TWShfLFZjKCksbCxULnRyYW5zZm9ybSxhLGQsaCxUKTpULnRyYW5zZm9y'@; put 'bShhLGQsaCl9ZnVuY3Rpb24gQ18oYyxsKXtyZXR1cm4gY1tCaV0uZGF0YVtsXS5wdXJlfWZ1bmN0aW9uIElSKGMpe3JldHVybiBsPT57c2V0VGltZW91dChjLHZvaWQgMCxsKX19Y29uc3QgRXI9Y2xhc3MgemxlIGV4dGVuZHMgYmV7Y29uc3RydWN0b3IobD0hMSl7c3VwZXIoKSx0aGlzLl9f'@; put 'aXNBc3luYz1sfWVtaXQobCl7c3VwZXIubmV4dChsKX1zdWJzY3JpYmUobCxhLGQpe2xldCBoPWwsZj1hfHwoKCk9Pm51bGwpLF89ZDtpZihsJiYib2JqZWN0Ij09dHlwZW9mIGwpe2NvbnN0IFc9bDtoPVcubmV4dD8uYmluZChXKSxmPVcuZXJyb3I/LmJpbmQoVyksXz1XLmNvbXBsZXRlPy5i'@; put 'aW5kKFcpfXRoaXMuX19pc0FzeW5jJiYoZj1JUihmKSxoJiYoaD1JUihoKSksXyYmKF89SVIoXykpKTtjb25zdCBUPXN1cGVyLnN1YnNjcmliZSh7bmV4dDpoLGVycm9yOmYsY29tcGxldGU6X30pO3JldHVybiBsIGluc3RhbmNlb2YgZWUmJmwuYWRkKFQpLFR9fTtmdW5jdGlvbiBVbGUoKXty'@; put 'ZXR1cm4gdGhpcy5fcmVzdWx0c1tTeW1ib2wuaXRlcmF0b3JdKCl9Y2xhc3MgZWh7Z2V0IGNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY2hhbmdlc3x8KHRoaXMuX2NoYW5nZXM9bmV3IEVyKX1jb25zdHJ1Y3RvcihsPSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT1sLHRoaXMuZGly'@; put 'dHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtjb25zdCBhPWVoLnByb3RvdHlwZTthW1N5bWJvbC5pdGVyYXRvcl18fChhW1N5bWJv'@; put 'bC5pdGVyYXRvcl09VWxlKX1nZXQobCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHNbbF19bWFwKGwpe3JldHVybiB0aGlzLl9yZXN1bHRzLm1hcChsKX1maWx0ZXIobCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMuZmlsdGVyKGwpfWZpbmQobCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMuZmluZChsKX1yZWR1'@; put 'Y2UobCxhKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5yZWR1Y2UobCxhKX1mb3JFYWNoKGwpe3RoaXMuX3Jlc3VsdHMuZm9yRWFjaChsKX1zb21lKGwpe3JldHVybiB0aGlzLl9yZXN1bHRzLnNvbWUobCl9dG9BcnJheSgpe3JldHVybiB0aGlzLl9yZXN1bHRzLnNsaWNlKCl9dG9TdHJpbmcoKXty'@; put 'ZXR1cm4gdGhpcy5fcmVzdWx0cy50b1N0cmluZygpfXJlc2V0KGwsYSl7Y29uc3QgZD10aGlzO2QuZGlydHk9ITE7Y29uc3QgaD1mdW5jdGlvbiBwMChjKXtyZXR1cm4gYy5mbGF0KE51bWJlci5QT1NJVElWRV9JTkZJTklUWSl9KGwpOyh0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9IWZ1bmN0aW9u'@; put 'IHoxKGMsbCxhKXtpZihjLmxlbmd0aCE9PWwubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXtsZXQgaD1jW2RdLGY9bFtkXTtpZihhJiYoaD1hKGgpLGY9YShmKSksZiE9PWgpcmV0dXJuITF9cmV0dXJuITB9KGQuX3Jlc3VsdHMsaCxhKSkmJihkLl9yZXN1bHRz'@; put 'PWgsZC5sZW5ndGg9aC5sZW5ndGgsZC5sYXN0PWhbdGhpcy5sZW5ndGgtMV0sZC5maXJzdD1oWzBdKX1ub3RpZnlPbkNoYW5nZXMoKXt0aGlzLl9jaGFuZ2VzJiYodGhpcy5fY2hhbmdlc0RldGVjdGVkfHwhdGhpcy5fZW1pdERpc3RpbmN0Q2hhbmdlc09ubHkpJiZ0aGlzLl9jaGFuZ2VzLmVt'@; put 'aXQodGhpcyl9c2V0RGlydHkoKXt0aGlzLmRpcnR5PSEwfWRlc3Ryb3koKXt0aGlzLmNoYW5nZXMuY29tcGxldGUoKSx0aGlzLmNoYW5nZXMudW5zdWJzY3JpYmUoKX19bGV0IHphPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLl9fTkdfRUxFTUVOVF9JRF9fPVdsZSxjfSkoKTtjb25zdCBabGU9'@; put 'emEsWWxlPWNsYXNzIGV4dGVuZHMgWmxle2NvbnN0cnVjdG9yKGwsYSxkKXtzdXBlcigpLHRoaXMuX2RlY2xhcmF0aW9uTFZpZXc9bCx0aGlzLl9kZWNsYXJhdGlvblRDb250YWluZXI9YSx0aGlzLmVsZW1lbnRSZWY9ZH1nZXQgc3NySWQoKXtyZXR1cm4gdGhpcy5fZGVjbGFyYXRpb25UQ29u'@; put 'dGFpbmVyLnRWaWV3Py5zc3JJZHx8bnVsbH1jcmVhdGVFbWJlZGRlZFZpZXcobCxhKXtyZXR1cm4gdGhpcy5jcmVhdGVFbWJlZGRlZFZpZXdJbXBsKGwsYSxudWxsKX1jcmVhdGVFbWJlZGRlZFZpZXdJbXBsKGwsYSxkKXtjb25zdCBfPXRoaXMuX2RlY2xhcmF0aW9uVENvbnRhaW5lci50Vmll'@; put 'dyxUPWI2KHRoaXMuX2RlY2xhcmF0aW9uTFZpZXcsXyxsLDQwOTYmdGhpcy5fZGVjbGFyYXRpb25MVmlld1tEb10/NDA5NjoxNixudWxsLF8uZGVjbFROb2RlLG51bGwsbnVsbCxudWxsLGF8fG51bGwsZHx8bnVsbCk7VFtPMl09dGhpcy5fZGVjbGFyYXRpb25MVmlld1t0aGlzLl9kZWNsYXJh'@; put 'dGlvblRDb250YWluZXIuaW5kZXhdO2NvbnN0IGllPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbaHVdO3JldHVybiBudWxsIT09aWUmJihUW2h1XT1pZS5jcmVhdGVFbWJlZGRlZFZpZXcoXykpLFZ2KF8sVCxsKSxuZXcgZDUoVCl9fTtmdW5jdGlvbiBXbGUoKXtyZXR1cm4gR00oTWMoKSxYcigp'@; put 'KX1mdW5jdGlvbiBHTShjLGwpe3JldHVybiA0JmMudHlwZT9uZXcgWWxlKGwsYyxZZChjLGwpKTpudWxsfWxldCBhcz0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5fX05HX0VMRU1FTlRfSURfXz1RbGUsY30pKCk7ZnVuY3Rpb24gUWxlKCl7cmV0dXJuIElZKE1jKCksWHIoKSl9Y29uc3QgZWNl'@; put 'PWFzLFRZPWNsYXNzIGV4dGVuZHMgZWNle2NvbnN0cnVjdG9yKGwsYSxkKXtzdXBlcigpLHRoaXMuX2xDb250YWluZXI9bCx0aGlzLl9ob3N0VE5vZGU9YSx0aGlzLl9ob3N0TFZpZXc9ZH1nZXQgZWxlbWVudCgpe3JldHVybiBZZCh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KX1n'@; put 'ZXQgaW5qZWN0b3IoKXtyZXR1cm4gbmV3IHgzKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9ob3N0TFZpZXcpfWdldCBwYXJlbnRJbmplY3Rvcigpe2NvbnN0IGw9QTkodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyk7aWYoWHcobCkpe2NvbnN0IGE9TTMobCx0aGlzLl9ob3N0TFZpZXcp'@; put 'LGQ9QjIobCk7cmV0dXJuIG5ldyB4MyhhW0JpXS5kYXRhW2QrOF0sYSl9cmV0dXJuIG5ldyB4MyhudWxsLHRoaXMuX2hvc3RMVmlldyl9Y2xlYXIoKXtmb3IoO3RoaXMubGVuZ3RoPjA7KXRoaXMucmVtb3ZlKHRoaXMubGVuZ3RoLTEpfWdldChsKXtjb25zdCBhPURZKHRoaXMuX2xDb250YWlu'@; put 'ZXIpO3JldHVybiBudWxsIT09YSYmYVtsXXx8bnVsbH1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2xDb250YWluZXIubGVuZ3RoLWljfWNyZWF0ZUVtYmVkZGVkVmlldyhsLGEsZCl7bGV0IGgsZjsibnVtYmVyIj09dHlwZW9mIGQ/aD1kOm51bGwhPWQmJihoPWQuaW5kZXgsZj1kLmluamVj'@; put 'dG9yKTtjb25zdCBUPWwuY3JlYXRlRW1iZWRkZWRWaWV3SW1wbChhfHx7fSxmLG51bGwpO3JldHVybiB0aGlzLmluc2VydEltcGwoVCxoLGZhbHNlKSxUfWNyZWF0ZUNvbXBvbmVudChsLGEsZCxoLGYpe2NvbnN0IF89bCYmIWZ1bmN0aW9uIGVmKGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBjfShsKTtsZXQgVDtpZihfKVQ9YTtlbHNle2NvbnN0IGV0PWF8fHt9O1Q9ZXQuaW5kZXgsZD1ldC5pbmplY3RvcixoPWV0LnByb2plY3RhYmxlTm9kZXMsZj1ldC5lbnZpcm9ubWVudEluamVjdG9yfHxldC5uZ01vZHVsZVJlZn1jb25zdCBXPV8/bDpuZXcgaDUoUW8obCkpLGllPWR8fHRo'@; put 'aXMucGFyZW50SW5qZWN0b3I7aWYoIWYmJm51bGw9PVcubmdNb2R1bGUpe2NvbnN0IHl0PShfP2llOnRoaXMucGFyZW50SW5qZWN0b3IpLmdldChxMCxudWxsKTt5dCYmKGY9eXQpfVFvKFcuY29tcG9uZW50VHlwZT8/e30pO2NvbnN0IFplPVcuY3JlYXRlKGllLGgsbnVsbCxmKTtyZXR1cm4g'@; put 'dGhpcy5pbnNlcnRJbXBsKFplLmhvc3RWaWV3LFQsZmFsc2UpLFplfWluc2VydChsLGEpe3JldHVybiB0aGlzLmluc2VydEltcGwobCxhLCExKX1pbnNlcnRJbXBsKGwsYSxkKXtjb25zdCBoPWwuX2xWaWV3LGY9aFtCaV07aWYoZnVuY3Rpb24gVW4oYyl7cmV0dXJuIG9jKGNbdWFdKX0oaCkp'@; put 'e2NvbnN0IFc9dGhpcy5pbmRleE9mKGwpO2lmKC0xIT09Vyl0aGlzLmRldGFjaChXKTtlbHNle2NvbnN0IGllPWhbdWFdLHBlPW5ldyBUWShpZSxpZVt6b10saWVbdWFdKTtwZS5kZXRhY2gocGUuaW5kZXhPZihsKSl9fWNvbnN0IF89dGhpcy5fYWRqdXN0SW5kZXgoYSksVD10aGlzLl9sQ29u'@; put 'dGFpbmVyO2lmKGZ1bmN0aW9uIGRhKGMsbCxhLGQpe2NvbnN0IGg9aWMrZCxmPWEubGVuZ3RoO2Q+MCYmKGFbaC0xXVtYYV09bCksZDxmLWljPyhsW1hhXT1hW2hdLCQwKGEsaWMrZCxsKSk6KGEucHVzaChsKSxsW1hhXT1udWxsKSxsW3VhXT1hO2NvbnN0IF89bFtPMl07bnVsbCE9PV8mJmEh'@; put 'PT1fJiZmdW5jdGlvbiBEWihjLGwpe2NvbnN0IGE9Y1tIMl07bFtKYV0hPT1sW3VhXVt1YV1bSmFdJiYoY1t1bV09ITApLG51bGw9PT1hP2NbSDJdPVtsXTphLnB1c2gobCl9KF8sbCk7Y29uc3QgVD1sW2h1XTtudWxsIT09VCYmVC5pbnNlcnRWaWV3KGMpLGxbRG9dfD0xMjh9KGYsaCxULF8p'@; put 'LCFkKXtjb25zdCBXPVk5KF8sVCksaWU9aFtWb10scGU9SDMoaWUsVFtkMF0pO251bGwhPT1wZSYmZnVuY3Rpb24gakQoYyxsLGEsZCxoLGYpe2RbSGldPWgsZFt6b109bCxHNChjLGQsYSwxLGgsZil9KGYsVFt6b10saWUsaCxwZSxXKX1yZXR1cm4gbC5hdHRhY2hUb1ZpZXdDb250YWluZXJS'@; put 'ZWYoKSwkMChSUihUKSxfLGwpLGx9bW92ZShsLGEpe3JldHVybiB0aGlzLmluc2VydChsLGEpfWluZGV4T2YobCl7Y29uc3QgYT1EWSh0aGlzLl9sQ29udGFpbmVyKTtyZXR1cm4gbnVsbCE9PWE/YS5pbmRleE9mKGwpOi0xfXJlbW92ZShsKXtjb25zdCBhPXRoaXMuX2FkanVzdEluZGV4KGws'@; put 'LTEpLGQ9c2YodGhpcy5fbENvbnRhaW5lcixhKTtkJiYoUG0oUlIodGhpcy5fbENvbnRhaW5lciksYSksS20oZFtCaV0sZCkpfWRldGFjaChsKXtjb25zdCBhPXRoaXMuX2FkanVzdEluZGV4KGwsLTEpLGQ9c2YodGhpcy5fbENvbnRhaW5lcixhKTtyZXR1cm4gZCYmbnVsbCE9UG0oUlIodGhp'@; put 'cy5fbENvbnRhaW5lciksYSk/bmV3IGQ1KGQpOm51bGx9X2FkanVzdEluZGV4KGwsYT0wKXtyZXR1cm4gbD8/dGhpcy5sZW5ndGgrYX19O2Z1bmN0aW9uIERZKGMpe3JldHVybiBjWzhdfWZ1bmN0aW9uIFJSKGMpe3JldHVybiBjWzhdfHwoY1s4XT1bXSl9ZnVuY3Rpb24gSVkoYyxsKXtsZXQg'@; put 'YTtjb25zdCBkPWxbYy5pbmRleF07cmV0dXJuIG9jKGQpP2E9ZDooYT1QUyhkLGwsbnVsbCxjKSxsW2MuaW5kZXhdPWEsUzYobCxhKSksTFkoYSxsLGMsZCksbmV3IFRZKGEsYyxsKX1sZXQgTFk9ZnVuY3Rpb24gUlkoYyxsLGEsZCl7aWYoY1tkMF0pcmV0dXJuO2xldCBoO2g9OCZhLnR5cGU/'@; put 'X2EoZCk6ZnVuY3Rpb24gdGNlKGMsbCl7Y29uc3QgYT1jW1ZvXSxkPWEuY3JlYXRlQ29tbWVudCgiIiksaD1ObChsLGMpO3JldHVybiBZMShhLEgzKGEsaCksZCxmdW5jdGlvbiBaRChjLGwpe3JldHVybiBjLm5leHRTaWJsaW5nKGwpfShhLGgpLCExKSxkfShsLGEpLGNbZDBdPWh9O2NsYXNz'@; put 'IE9Se2NvbnN0cnVjdG9yKGwpe3RoaXMucXVlcnlMaXN0PWwsdGhpcy5tYXRjaGVzPW51bGx9Y2xvbmUoKXtyZXR1cm4gbmV3IE9SKHRoaXMucXVlcnlMaXN0KX1zZXREaXJ0eSgpe3RoaXMucXVlcnlMaXN0LnNldERpcnR5KCl9fWNsYXNzIFBSe2NvbnN0cnVjdG9yKGw9W10pe3RoaXMucXVl'@; put 'cmllcz1sfWNyZWF0ZUVtYmVkZGVkVmlldyhsKXtjb25zdCBhPWwucXVlcmllcztpZihudWxsIT09YSl7Y29uc3QgZD1udWxsIT09bC5jb250ZW50UXVlcmllcz9sLmNvbnRlbnRRdWVyaWVzWzBdOmEubGVuZ3RoLGg9W107Zm9yKGxldCBmPTA7ZjxkO2YrKyl7Y29uc3QgXz1hLmdldEJ5SW5k'@; put 'ZXgoZik7aC5wdXNoKHRoaXMucXVlcmllc1tfLmluZGV4SW5EZWNsYXJhdGlvblZpZXddLmNsb25lKCkpfXJldHVybiBuZXcgUFIoaCl9cmV0dXJuIG51bGx9aW5zZXJ0VmlldyhsKXt0aGlzLmRpcnR5UXVlcmllc1dpdGhNYXRjaGVzKGwpfWRldGFjaFZpZXcobCl7dGhpcy5kaXJ0eVF1ZXJp'@; put 'ZXNXaXRoTWF0Y2hlcyhsKX1kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyhsKXtmb3IobGV0IGE9MDthPHRoaXMucXVlcmllcy5sZW5ndGg7YSsrKW51bGwhPT1OWShsLGEpLm1hdGNoZXMmJnRoaXMucXVlcmllc1thXS5zZXREaXJ0eSgpfX1jbGFzcyBPWXtjb25zdHJ1Y3RvcihsLGEsZD1udWxs'@; put 'KXt0aGlzLnByZWRpY2F0ZT1sLHRoaXMuZmxhZ3M9YSx0aGlzLnJlYWQ9ZH19Y2xhc3MgRlJ7Y29uc3RydWN0b3IobD1bXSl7dGhpcy5xdWVyaWVzPWx9ZWxlbWVudFN0YXJ0KGwsYSl7Zm9yKGxldCBkPTA7ZDx0aGlzLnF1ZXJpZXMubGVuZ3RoO2QrKyl0aGlzLnF1ZXJpZXNbZF0uZWxlbWVu'@; put 'dFN0YXJ0KGwsYSl9ZWxlbWVudEVuZChsKXtmb3IobGV0IGE9MDthPHRoaXMucXVlcmllcy5sZW5ndGg7YSsrKXRoaXMucXVlcmllc1thXS5lbGVtZW50RW5kKGwpfWVtYmVkZGVkVFZpZXcobCl7bGV0IGE9bnVsbDtmb3IobGV0IGQ9MDtkPHRoaXMubGVuZ3RoO2QrKyl7Y29uc3QgaD1udWxs'@; put 'IT09YT9hLmxlbmd0aDowLGY9dGhpcy5nZXRCeUluZGV4KGQpLmVtYmVkZGVkVFZpZXcobCxoKTtmJiYoZi5pbmRleEluRGVjbGFyYXRpb25WaWV3PWQsbnVsbCE9PWE/YS5wdXNoKGYpOmE9W2ZdKX1yZXR1cm4gbnVsbCE9PWE/bmV3IEZSKGEpOm51bGx9dGVtcGxhdGUobCxhKXtmb3IobGV0'@; put 'IGQ9MDtkPHRoaXMucXVlcmllcy5sZW5ndGg7ZCsrKXRoaXMucXVlcmllc1tkXS50ZW1wbGF0ZShsLGEpfWdldEJ5SW5kZXgobCl7cmV0dXJuIHRoaXMucXVlcmllc1tsXX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMucXVlcmllcy5sZW5ndGh9dHJhY2sobCl7dGhpcy5xdWVyaWVzLnB1c2go'@; put 'bCl9fWNsYXNzIEhSe2NvbnN0cnVjdG9yKGwsYT0tMSl7dGhpcy5tZXRhZGF0YT1sLHRoaXMubWF0Y2hlcz1udWxsLHRoaXMuaW5kZXhJbkRlY2xhcmF0aW9uVmlldz0tMSx0aGlzLmNyb3NzZXNOZ1RlbXBsYXRlPSExLHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSEwLHRoaXMuX2RlY2xhcmF0'@; put 'aW9uTm9kZUluZGV4PWF9ZWxlbWVudFN0YXJ0KGwsYSl7dGhpcy5pc0FwcGx5aW5nVG9Ob2RlKGEpJiZ0aGlzLm1hdGNoVE5vZGUobCxhKX1lbGVtZW50RW5kKGwpe3RoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4PT09bC5pbmRleCYmKHRoaXMuX2FwcGxpZXNUb05leHROb2RlPSExKX10ZW1w'@; put 'bGF0ZShsLGEpe3RoaXMuZWxlbWVudFN0YXJ0KGwsYSl9ZW1iZWRkZWRUVmlldyhsLGEpe3JldHVybiB0aGlzLmlzQXBwbHlpbmdUb05vZGUobCk/KHRoaXMuY3Jvc3Nlc05nVGVtcGxhdGU9ITAsdGhpcy5hZGRNYXRjaCgtbC5pbmRleCxhKSxuZXcgSFIodGhpcy5tZXRhZGF0YSkpOm51bGx9'@; put 'aXNBcHBseWluZ1RvTm9kZShsKXtpZih0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZSYmMSE9KDEmdGhpcy5tZXRhZGF0YS5mbGFncykpe2NvbnN0IGE9dGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg7bGV0IGQ9bC5wYXJlbnQ7Zm9yKDtudWxsIT09ZCYmOCZkLnR5cGUmJmQuaW5kZXghPT1hOylk'@; put 'PWQucGFyZW50O3JldHVybiBhPT09KG51bGwhPT1kP2QuaW5kZXg6LTEpfXJldHVybiB0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZX1tYXRjaFROb2RlKGwsYSl7Y29uc3QgZD10aGlzLm1ldGFkYXRhLnByZWRpY2F0ZTtpZihBcnJheS5pc0FycmF5KGQpKWZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7'@; put 'aCsrKXtjb25zdCBmPWRbaF07dGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24obCxhLGljZShhLGYpKSx0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihsLGEsTG0oYSxsLGYsITEsITEpKX1lbHNlIGQ9PT16YT80JmEudHlwZSYmdGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24o'@; put 'bCxhLC0xKTp0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihsLGEsTG0oYSxsLGQsITEsITEpKX1tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24obCxhLGQpe2lmKG51bGwhPT1kKXtjb25zdCBoPXRoaXMubWV0YWRhdGEucmVhZDtpZihudWxsIT09aClpZihoPT09Tml8fGg9PT1hc3x8aD09'@; put 'PXphJiY0JmEudHlwZSl0aGlzLmFkZE1hdGNoKGEuaW5kZXgsLTIpO2Vsc2V7Y29uc3QgZj1MbShhLGwsaCwhMSwhMSk7bnVsbCE9PWYmJnRoaXMuYWRkTWF0Y2goYS5pbmRleCxmKX1lbHNlIHRoaXMuYWRkTWF0Y2goYS5pbmRleCxkKX19YWRkTWF0Y2gobCxhKXtudWxsPT09dGhpcy5tYXRj'@; put 'aGVzP3RoaXMubWF0Y2hlcz1bbCxhXTp0aGlzLm1hdGNoZXMucHVzaChsLGEpfX1mdW5jdGlvbiBpY2UoYyxsKXtjb25zdCBhPWMubG9jYWxOYW1lcztpZihudWxsIT09YSlmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrPTIpaWYoYVtkXT09PWwpcmV0dXJuIGFbZCsxXTtyZXR1cm4gbnVsbH1m'@; put 'dW5jdGlvbiBzY2UoYyxsLGEsZCl7cmV0dXJuLTE9PT1hP2Z1bmN0aW9uIG9jZShjLGwpe3JldHVybiAxMSZjLnR5cGU/WWQoYyxsKTo0JmMudHlwZT9HTShjLGwpOm51bGx9KGwsYyk6LTI9PT1hP2Z1bmN0aW9uIGFjZShjLGwsYSl7cmV0dXJuIGE9PT1OaT9ZZChsLGMpOmE9PT16YT9HTShs'@; put 'LGMpOmE9PT1hcz9JWShsLGMpOnZvaWQgMH0oYyxsLGQpOlFoKGMsY1tCaV0sYSxsKX1mdW5jdGlvbiBQWShjLGwsYSxkKXtjb25zdCBoPWxbaHVdLnF1ZXJpZXNbZF07aWYobnVsbD09PWgubWF0Y2hlcyl7Y29uc3QgZj1jLmRhdGEsXz1hLm1hdGNoZXMsVD1bXTtmb3IobGV0IFc9MDtXPF8u'@; put 'bGVuZ3RoO1crPTIpe2NvbnN0IGllPV9bV107VC5wdXNoKGllPDA/bnVsbDpzY2UobCxmW2llXSxfW1crMV0sYS5tZXRhZGF0YS5yZWFkKSl9aC5tYXRjaGVzPVR9cmV0dXJuIGgubWF0Y2hlc31mdW5jdGlvbiBOUihjLGwsYSxkKXtjb25zdCBoPWMucXVlcmllcy5nZXRCeUluZGV4KGEpLGY9'@; put 'aC5tYXRjaGVzO2lmKG51bGwhPT1mKXtjb25zdCBfPVBZKGMsbCxoLGEpO2ZvcihsZXQgVD0wO1Q8Zi5sZW5ndGg7VCs9Mil7Y29uc3QgVz1mW1RdO2lmKFc+MClkLnB1c2goX1tULzJdKTtlbHNle2NvbnN0IGllPWZbVCsxXSxwZT1sWy1XXTtmb3IobGV0IHdlPWljO3dlPHBlLmxlbmd0aDt3'@; put 'ZSsrKXtjb25zdCBFZT1wZVt3ZV07RWVbTzJdPT09RWVbdWFdJiZOUihFZVtCaV0sRWUsaWUsZCl9aWYobnVsbCE9PXBlW0gyXSl7Y29uc3Qgd2U9cGVbSDJdO2ZvcihsZXQgRWU9MDtFZTx3ZS5sZW5ndGg7RWUrKyl7Y29uc3QgWmU9d2VbRWVdO05SKFplW0JpXSxaZSxpZSxkKX19fX19cmV0'@; put 'dXJuIGR9ZnVuY3Rpb24gYWkoYyl7Y29uc3QgbD1YcigpLGE9VHMoKSxkPUJ3KCk7QzkoZCsxKTtjb25zdCBoPU5ZKGEsZCk7aWYoYy5kaXJ0eSYmZnVuY3Rpb24gTHQoYyl7cmV0dXJuIDQ9PSg0JmNbRG9dKX0obCk9PT0oMj09KDImaC5tZXRhZGF0YS5mbGFncykpKXtpZihudWxsPT09aC5t'@; put 'YXRjaGVzKWMucmVzZXQoW10pO2Vsc2V7Y29uc3QgZj1oLmNyb3NzZXNOZ1RlbXBsYXRlP05SKGEsbCxkLFtdKTpQWShhLGwsaCxkKTtjLnJlc2V0KGYsZGYpLGMubm90aWZ5T25DaGFuZ2VzKCl9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gUm8oYyxsLGEpe2NvbnN0IGQ9VHMoKTtkLmZp'@; put 'cnN0Q3JlYXRlUGFzcyYmKEhZKGQsbmV3IE9ZKGMsbCxhKSwtMSksMj09KDImbCkmJihkLnN0YXRpY1ZpZXdRdWVyaWVzPSEwKSksRlkoZCxYcigpLGwpfWZ1bmN0aW9uIElvKGMsbCxhLGQpe2NvbnN0IGg9VHMoKTtpZihoLmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgZj1NYygpO0hZKGgsbmV3'@; put 'IE9ZKGwsYSxkKSxmLmluZGV4KSxmdW5jdGlvbiBjY2UoYyxsKXtjb25zdCBhPWMuY29udGVudFF1ZXJpZXN8fChjLmNvbnRlbnRRdWVyaWVzPVtdKTtsIT09KGEubGVuZ3RoP2FbYS5sZW5ndGgtMV06LTEpJiZhLnB1c2goYy5xdWVyaWVzLmxlbmd0aC0xLGwpfShoLGMpLDI9PSgyJmEpJiYo'@; put 'aC5zdGF0aWNDb250ZW50UXVlcmllcz0hMCl9RlkoaCxYcigpLGEpfWZ1bmN0aW9uIGxpKCl7cmV0dXJuIGZ1bmN0aW9uIGxjZShjLGwpe3JldHVybiBjW2h1XS5xdWVyaWVzW2xdLnF1ZXJ5TGlzdH0oWHIoKSxCdygpKX1mdW5jdGlvbiBGWShjLGwsYSl7Y29uc3QgZD1uZXcgZWgoND09KDQm'@; put 'YSkpOyhmdW5jdGlvbiBWSShjLGwsYSxkKXtjb25zdCBoPUhTKGwpO2gucHVzaChhKSxjLmZpcnN0Q3JlYXRlUGFzcyYmTlMoYykucHVzaChkLGgubGVuZ3RoLTEpfSkoYyxsLGQsZC5kZXN0cm95KSxudWxsPT09bFtodV0mJihsW2h1XT1uZXcgUFIpLGxbaHVdLnF1ZXJpZXMucHVzaChuZXcg'@; put 'T1IoZCkpfWZ1bmN0aW9uIEhZKGMsbCxhKXtudWxsPT09Yy5xdWVyaWVzJiYoYy5xdWVyaWVzPW5ldyBGUiksYy5xdWVyaWVzLnRyYWNrKG5ldyBIUihsLGEpKX1mdW5jdGlvbiBOWShjLGwpe3JldHVybiBjLnF1ZXJpZXMuZ2V0QnlJbmRleChsKX1mdW5jdGlvbiBrYyhjLGwpe3JldHVybiBH'@; put 'TShjLGwpfWNvbnN0IFpSPW5ldyBTaSgiQXBwbGljYXRpb24gSW5pdGlhbGl6ZXIiKTtsZXQgWVI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5kb25lPSExLHRoaXMuZG9uZVByb21pc2U9bmV3IFByb21pc2UoKGEsZCk9Pnt0aGlzLnJlc29s'@; put 'dmU9YSx0aGlzLnJlamVjdD1kfSksdGhpcy5hcHBJbml0cz1GaShaUix7b3B0aW9uYWw6ITB9KT8/W119cnVuSW5pdGlhbGl6ZXJzKCl7aWYodGhpcy5pbml0aWFsaXplZClyZXR1cm47Y29uc3QgYT1bXTtmb3IoY29uc3QgaCBvZiB0aGlzLmFwcEluaXRzKXtjb25zdCBmPWgoKTtpZih2NShm'@; put 'KSlhLnB1c2goZik7ZWxzZSBpZihwTShmKSl7Y29uc3QgXz1uZXcgUHJvbWlzZSgoVCxXKT0+e2Yuc3Vic2NyaWJlKHtjb21wbGV0ZTpULGVycm9yOld9KX0pO2EucHVzaChfKX19Y29uc3QgZD0oKT0+e3RoaXMuZG9uZT0hMCx0aGlzLnJlc29sdmUoKX07UHJvbWlzZS5hbGwoYSkudGhlbigo'@; put 'KT0+e2QoKX0pLmNhdGNoKGg9Pnt0aGlzLnJlamVjdChoKX0pLDA9PT1hLmxlbmd0aCYmZCgpLHRoaXMuaW5pdGlhbGl6ZWQ9ITB9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3'@; put 'NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpLHRXPSgoKT0+e2NsYXNzIGN7bG9nKGEpe2NvbnNvbGUubG9nKGEpfXdhcm4oYSl7Y29uc29sZS53YXJuKGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tl'@; put 'bjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicGxhdGZvcm0ifSksY30pKCk7Y29uc3QgS2Q9bmV3IFNpKCJMb2NhbGVJZCIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PkZpKEtkLG5zLk9wdGlvbmFsfG5zLlNraXBTZWxmKXx8ZnVuY3Rpb24gRGNlKCl7cmV0dXJu'@; put 'IHR5cGVvZiAkbG9jYWxpemU8InUiJiYkbG9jYWxpemUubG9jYWxlfHxpcH0oKX0pO2xldCBxTT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy50YXNrSWQ9MCx0aGlzLnBlbmRpbmdUYXNrcz1uZXcgU2V0LHRoaXMuaGFzUGVuZGluZ1Rhc2tzPW5ldyBUZSghMSl9YWRkKCl7dGhp'@; put 'cy5oYXNQZW5kaW5nVGFza3MubmV4dCghMCk7Y29uc3QgYT10aGlzLnRhc2tJZCsrO3JldHVybiB0aGlzLnBlbmRpbmdUYXNrcy5hZGQoYSksYX1yZW1vdmUoYSl7dGhpcy5wZW5kaW5nVGFza3MuZGVsZXRlKGEpLDA9PT10aGlzLnBlbmRpbmdUYXNrcy5zaXplJiZ0aGlzLmhhc1BlbmRpbmdU'@; put 'YXNrcy5uZXh0KCExKX1uZ09uRGVzdHJveSgpe3RoaXMucGVuZGluZ1Rhc2tzLmNsZWFyKCksdGhpcy5oYXNQZW5kaW5nVGFza3MubmV4dCghMSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9y'@; put 'eTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpO2NsYXNzIFJjZXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMubmdNb2R1bGVGYWN0b3J5PWwsdGhpcy5jb21wb25lbnRGYWN0b3JpZXM9YX19bGV0IG5XPSgoKT0+e2NsYXNzIGN7Y29tcGlsZU1vZHVsZVN5bmMoYSl7cmV0dXJu'@; put 'IG5ldyBxZChhKX1jb21waWxlTW9kdWxlQXN5bmMoYSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGEpKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoYSl7Y29uc3QgZD10aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGEpLGY9V2QoTmMoYSku'@; put 'ZGVjbGFyYXRpb25zKS5yZWR1Y2UoKF8sVCk9Pntjb25zdCBXPVFvKFQpO3JldHVybiBXJiZfLnB1c2gobmV3IGg1KFcpKSxffSxbXSk7cmV0dXJuIG5ldyBSY2UoZCxmKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jKGEpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5j'@; put 'b21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoYSkpfWNsZWFyQ2FjaGUoKXt9Y2xlYXJDYWNoZUZvcihhKXt9Z2V0TW9kdWxlSWQoYSl7fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rv'@; put 'cnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtmdW5jdGlvbiBvVyguLi5jKXt9Y2xhc3MgTm97Y29uc3RydWN0b3Ioe2VuYWJsZUxvbmdTdGFja1RyYWNlOmw9ITEsc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjphPSExLHNob3VsZENvYWxlc2NlUnVu'@; put 'Q2hhbmdlRGV0ZWN0aW9uOmQ9ITF9KXtpZih0aGlzLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPSExLHRoaXMuaGFzUGVuZGluZ01pY3JvdGFza3M9ITEsdGhpcy5pc1N0YWJsZT0hMCx0aGlzLm9uVW5zdGFibGU9bmV3IEVyKCExKSx0aGlzLm9uTWljcm90YXNrRW1wdHk9bmV3IEVyKCExKSx0aGlz'@; put 'Lm9uU3RhYmxlPW5ldyBFcighMSksdGhpcy5vbkVycm9yPW5ldyBFcighMSksdHlwZW9mIFpvbmU+InUiKXRocm93IG5ldyBBcig5MDgsITEpO1pvbmUuYXNzZXJ0Wm9uZVBhdGNoZWQoKTtjb25zdCBoPXRoaXM7aC5fbmVzdGluZz0wLGguX291dGVyPWguX2lubmVyPVpvbmUuY3VycmVudCxa'@; put 'b25lLlRhc2tUcmFja2luZ1pvbmVTcGVjJiYoaC5faW5uZXI9aC5faW5uZXIuZm9yayhuZXcgWm9uZS5UYXNrVHJhY2tpbmdab25lU3BlYykpLGwmJlpvbmUubG9uZ1N0YWNrVHJhY2Vab25lU3BlYyYmKGguX2lubmVyPWguX2lubmVyLmZvcmsoWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVj'@; put 'KSksaC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9uPSFkJiZhLGguc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb249ZCxoLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxoLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZT1mdW5jdGlvbiBGY2UoKXtjb25z'@; put 'dCBjPSJmdW5jdGlvbiI9PXR5cGVvZiBPaS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7bGV0IGw9T2lbYz8icmVxdWVzdEFuaW1hdGlvbkZyYW1lIjoic2V0VGltZW91dCJdLGE9T2lbYz8iY2FuY2VsQW5pbWF0aW9uRnJhbWUiOiJjbGVhclRpbWVvdXQiXTtpZih0eXBlb2YgWm9uZTwidSImJmwm'@; put 'JmEpe2NvbnN0IGQ9bFtab25lLl9fc3ltYm9sX18oIk9yaWdpbmFsRGVsZWdhdGUiKV07ZCYmKGw9ZCk7Y29uc3QgaD1hW1pvbmUuX19zeW1ib2xfXygiT3JpZ2luYWxEZWxlZ2F0ZSIpXTtoJiYoYT1oKX1yZXR1cm57bmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lOmwsbmF0aXZlQ2FuY2Vs'@; put 'QW5pbWF0aW9uRnJhbWU6YX19KCkubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lLGZ1bmN0aW9uIFZjZShjKXtjb25zdCBsPSgpPT57IWZ1bmN0aW9uIE5jZShjKXtjLmlzQ2hlY2tTdGFibGVSdW5uaW5nfHwtMSE9PWMubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkfHwoYy5sYXN0UmVx'@; put 'dWVzdEFuaW1hdGlvbkZyYW1lSWQ9Yy5uYXRpdmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWUuY2FsbChPaSwoKT0+e2MuZmFrZVRvcEV2ZW50VGFza3x8KGMuZmFrZVRvcEV2ZW50VGFzaz1ab25lLnJvb3Quc2NoZWR1bGVFdmVudFRhc2soImZha2VUb3BFdmVudFRhc2siLCgpPT57Yy5sYXN0UmVx'@; put 'dWVzdEFuaW1hdGlvbkZyYW1lSWQ9LTEsR1IoYyksYy5pc0NoZWNrU3RhYmxlUnVubmluZz0hMCxXUihjKSxjLmlzQ2hlY2tTdGFibGVSdW5uaW5nPSExfSx2b2lkIDAsKCk9Pnt9LCgpPT57fSkpLGMuZmFrZVRvcEV2ZW50VGFzay5pbnZva2UoKX0pLEdSKGMpKX0oYyl9O2MuX2lubmVyPWMu'@; put 'X2lubmVyLmZvcmsoe25hbWU6ImFuZ3VsYXIiLHByb3BlcnRpZXM6e2lzQW5ndWxhclpvbmU6ITB9LG9uSW52b2tlVGFzazooYSxkLGgsZixfLFQpPT57dHJ5e3JldHVybiBzVyhjKSxhLmludm9rZVRhc2soaCxmLF8sVCl9ZmluYWxseXsoYy5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0'@; put 'ZWN0aW9uJiYiZXZlbnRUYXNrIj09PWYudHlwZXx8Yy5zaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbikmJmwoKSxhVyhjKX19LG9uSW52b2tlOihhLGQsaCxmLF8sVCxXKT0+e3RyeXtyZXR1cm4gc1coYyksYS5pbnZva2UoaCxmLF8sVCxXKX1maW5hbGx5e2Muc2hvdWxkQ29hbGVz'@; put 'Y2VSdW5DaGFuZ2VEZXRlY3Rpb24mJmwoKSxhVyhjKX19LG9uSGFzVGFzazooYSxkLGgsZik9PnthLmhhc1Rhc2soaCxmKSxkPT09aCYmKCJtaWNyb1Rhc2siPT1mLmNoYW5nZT8oYy5faGFzUGVuZGluZ01pY3JvdGFza3M9Zi5taWNyb1Rhc2ssR1IoYyksV1IoYykpOiJtYWNyb1Rhc2siPT1m'@; put 'LmNoYW5nZSYmKGMuaGFzUGVuZGluZ01hY3JvdGFza3M9Zi5tYWNyb1Rhc2spKX0sb25IYW5kbGVFcnJvcjooYSxkLGgsZik9PihhLmhhbmRsZUVycm9yKGgsZiksYy5ydW5PdXRzaWRlQW5ndWxhcigoKT0+Yy5vbkVycm9yLmVtaXQoZikpLCExKX0pfShoKX1zdGF0aWMgaXNJbkFuZ3VsYXJa'@; put 'b25lKCl7cmV0dXJuIHR5cGVvZiBab25lPCJ1IiYmITA9PT1ab25lLmN1cnJlbnQuZ2V0KCJpc0FuZ3VsYXJab25lIil9c3RhdGljIGFzc2VydEluQW5ndWxhclpvbmUoKXtpZighTm8uaXNJbkFuZ3VsYXJab25lKCkpdGhyb3cgbmV3IEFyKDkwOSwhMSl9c3RhdGljIGFzc2VydE5vdEluQW5n'@; put 'dWxhclpvbmUoKXtpZihOby5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgQXIoOTA5LCExKX1ydW4obCxhLGQpe3JldHVybiB0aGlzLl9pbm5lci5ydW4obCxhLGQpfXJ1blRhc2sobCxhLGQsaCl7Y29uc3QgZj10aGlzLl9pbm5lcixfPWYuc2NoZWR1bGVFdmVudFRhc2soIk5nWm9uZUV2'@; put 'ZW50OiAiK2gsbCxIY2Usb1csb1cpO3RyeXtyZXR1cm4gZi5ydW5UYXNrKF8sYSxkKX1maW5hbGx5e2YuY2FuY2VsVGFzayhfKX19cnVuR3VhcmRlZChsLGEsZCl7cmV0dXJuIHRoaXMuX2lubmVyLnJ1bkd1YXJkZWQobCxhLGQpfXJ1bk91dHNpZGVBbmd1bGFyKGwpe3JldHVybiB0aGlzLl9v'@; put 'dXRlci5ydW4obCl9fWNvbnN0IEhjZT17fTtmdW5jdGlvbiBXUihjKXtpZigwPT1jLl9uZXN0aW5nJiYhYy5oYXNQZW5kaW5nTWljcm90YXNrcyYmIWMuaXNTdGFibGUpdHJ5e2MuX25lc3RpbmcrKyxjLm9uTWljcm90YXNrRW1wdHkuZW1pdChudWxsKX1maW5hbGx5e2lmKGMuX25lc3Rpbmct'@; put 'LSwhYy5oYXNQZW5kaW5nTWljcm90YXNrcyl0cnl7Yy5ydW5PdXRzaWRlQW5ndWxhcigoKT0+Yy5vblN0YWJsZS5lbWl0KG51bGwpKX1maW5hbGx5e2MuaXNTdGFibGU9ITB9fX1mdW5jdGlvbiBHUihjKXtjLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSEhKGMuX2hhc1BlbmRpbmdNaWNyb3Rhc2tz'@; put 'fHwoYy5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9ufHxjLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmLTEhPT1jLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCl9ZnVuY3Rpb24gc1coYyl7Yy5fbmVzdGluZysrLGMuaXNTdGFibGUmJihjLmlzU3RhYmxl'@; put 'PSExLGMub25VbnN0YWJsZS5lbWl0KG51bGwpKX1mdW5jdGlvbiBhVyhjKXtjLl9uZXN0aW5nLS0sV1IoYyl9Y2xhc3MgQmNle2NvbnN0cnVjdG9yKCl7dGhpcy5oYXNQZW5kaW5nTWljcm90YXNrcz0hMSx0aGlzLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPSExLHRoaXMuaXNTdGFibGU9ITAsdGhp'@; put 'cy5vblVuc3RhYmxlPW5ldyBFcix0aGlzLm9uTWljcm90YXNrRW1wdHk9bmV3IEVyLHRoaXMub25TdGFibGU9bmV3IEVyLHRoaXMub25FcnJvcj1uZXcgRXJ9cnVuKGwsYSxkKXtyZXR1cm4gbC5hcHBseShhLGQpfXJ1bkd1YXJkZWQobCxhLGQpe3JldHVybiBsLmFwcGx5KGEsZCl9cnVuT3V0'@; put 'c2lkZUFuZ3VsYXIobCl7cmV0dXJuIGwoKX1ydW5UYXNrKGwsYSxkLGgpe3JldHVybiBsLmFwcGx5KGEsZCl9fWNvbnN0IGxXPW5ldyBTaSgiIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpjV30pO2Z1bmN0aW9uIGNXKCl7Y29uc3QgYz1GaShObyk7bGV0IGw9ITA7cmV0dXJuIGlzKG5l'@; put 'dyBLZShoPT57bD1jLmlzU3RhYmxlJiYhYy5oYXNQZW5kaW5nTWFjcm90YXNrcyYmIWMuaGFzUGVuZGluZ01pY3JvdGFza3MsYy5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2gubmV4dChsKSxoLmNvbXBsZXRlKCl9KX0pLG5ldyBLZShoPT57bGV0IGY7Yy5ydW5PdXRzaWRlQW5ndWxhcigoKT0+'@; put 'e2Y9Yy5vblN0YWJsZS5zdWJzY3JpYmUoKCk9PntOby5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCkscXVldWVNaWNyb3Rhc2soKCk9PnshbCYmIWMuaGFzUGVuZGluZ01hY3JvdGFza3MmJiFjLmhhc1BlbmRpbmdNaWNyb3Rhc2tzJiYobD0hMCxoLm5leHQoITApKX0pfSl9KTtjb25zdCBfPWMu'@; put 'b25VbnN0YWJsZS5zdWJzY3JpYmUoKCk9PntOby5hc3NlcnRJbkFuZ3VsYXJab25lKCksbCYmKGw9ITEsYy5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2gubmV4dCghMSl9KSl9KTtyZXR1cm4oKT0+e2YudW5zdWJzY3JpYmUoKSxfLnVuc3Vic2NyaWJlKCl9fSkucGlwZSgkYSgpKSl9Y29uc3Qg'@; put 'dVc9bmV3IFNpKCIiKSxLTT1uZXcgU2koIiIpO2xldCBLUiwkUj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9uZ1pvbmU9YSx0aGlzLnJlZ2lzdHJ5PWQsdGhpcy5fcGVuZGluZ0NvdW50PTAsdGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX2RpZFdvcms9ITEsdGhp'@; put 'cy5fY2FsbGJhY2tzPVtdLHRoaXMudGFza1RyYWNraW5nWm9uZT1udWxsLEtSfHwoZnVuY3Rpb24gamNlKGMpe0tSPWN9KGgpLGguYWRkVG9XaW5kb3coZCkpLHRoaXMuX3dhdGNoQW5ndWxhckV2ZW50cygpLGEucnVuKCgpPT57dGhpcy50YXNrVHJhY2tpbmdab25lPXR5cGVvZiBab25lPiJ1'@; put 'Ij9udWxsOlpvbmUuY3VycmVudC5nZXQoIlRhc2tUcmFja2luZ1pvbmUiKX0pfV93YXRjaEFuZ3VsYXJFdmVudHMoKXt0aGlzLl9uZ1pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX2lzWm9uZVN0YWJsZT0hMX19KSx0aGlzLl9uZ1pv'@; put 'bmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFibGUuc3Vic2NyaWJlKHtuZXh0OigpPT57Tm8uYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLHF1ZXVlTWljcm90YXNrKCgpPT57dGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHko'@; put 'KX0pfX0pfSl9aW5jcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRpbmdDb3VudCs9MSx0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX3BlbmRpbmdDb3VudH1kZWNyZWFzZVBlbmRpbmdSZXF1ZXN0Q291bnQoKXtpZih0aGlzLl9wZW5kaW5nQ291bnQtPTEsdGhpcy5f'@; put 'cGVuZGluZ0NvdW50PDApdGhyb3cgbmV3IEVycm9yKCJwZW5kaW5nIGFzeW5jIHJlcXVlc3RzIGJlbG93IHplcm8iKTtyZXR1cm4gdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpLHRoaXMuX3BlbmRpbmdDb3VudH1pc1N0YWJsZSgpe3JldHVybiB0aGlzLl9pc1pvbmVTdGFibGUmJjA9PT10'@; put 'aGlzLl9wZW5kaW5nQ291bnQmJiF0aGlzLl9uZ1pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N9X3J1bkNhbGxiYWNrc0lmUmVhZHkoKXtpZih0aGlzLmlzU3RhYmxlKCkpcXVldWVNaWNyb3Rhc2soKCk9Pntmb3IoOzAhPT10aGlzLl9jYWxsYmFja3MubGVuZ3RoOyl7bGV0IGE9dGhpcy5fY2Fs'@; put 'bGJhY2tzLnBvcCgpO2NsZWFyVGltZW91dChhLnRpbWVvdXRJZCksYS5kb25lQ2IodGhpcy5fZGlkV29yayl9dGhpcy5fZGlkV29yaz0hMX0pO2Vsc2V7bGV0IGE9dGhpcy5nZXRQZW5kaW5nVGFza3MoKTt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzLmZpbHRlcihkPT4hZC51cGRh'@; put 'dGVDYnx8IWQudXBkYXRlQ2IoYSl8fChjbGVhclRpbWVvdXQoZC50aW1lb3V0SWQpLCExKSksdGhpcy5fZGlkV29yaz0hMH19Z2V0UGVuZGluZ1Rhc2tzKCl7cmV0dXJuIHRoaXMudGFza1RyYWNraW5nWm9uZT90aGlzLnRhc2tUcmFja2luZ1pvbmUubWFjcm9UYXNrcy5tYXAoYT0+KHtzb3Vy'@; put 'Y2U6YS5zb3VyY2UsY3JlYXRpb25Mb2NhdGlvbjphLmNyZWF0aW9uTG9jYXRpb24sZGF0YTphLmRhdGF9KSk6W119YWRkQ2FsbGJhY2soYSxkLGgpe2xldCBmPS0xO2QmJmQ+MCYmKGY9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKF89Pl8u'@; put 'dGltZW91dElkIT09ZiksYSh0aGlzLl9kaWRXb3JrLHRoaXMuZ2V0UGVuZGluZ1Rhc2tzKCkpfSxkKSksdGhpcy5fY2FsbGJhY2tzLnB1c2goe2RvbmVDYjphLHRpbWVvdXRJZDpmLHVwZGF0ZUNiOmh9KX13aGVuU3RhYmxlKGEsZCxoKXtpZihoJiYhdGhpcy50YXNrVHJhY2tpbmdab25lKXRo'@; put 'cm93IG5ldyBFcnJvcignVGFzayB0cmFja2luZyB6b25lIGlzIHJlcXVpcmVkIHdoZW4gcGFzc2luZyBhbiB1cGRhdGUgY2FsbGJhY2sgdG8gd2hlblN0YWJsZSgpLiBJcyAiem9uZS5qcy9wbHVnaW5zL3Rhc2stdHJhY2tpbmciIGxvYWRlZD8nKTt0aGlzLmFkZENhbGxiYWNrKGEsZCxoKSx0'@; put 'aGlzLl9ydW5DYWxsYmFja3NJZlJlYWR5KCl9Z2V0UGVuZGluZ1JlcXVlc3RDb3VudCgpe3JldHVybiB0aGlzLl9wZW5kaW5nQ291bnR9cmVnaXN0ZXJBcHBsaWNhdGlvbihhKXt0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyQXBwbGljYXRpb24oYSx0aGlzKX11bnJlZ2lzdGVyQXBwbGljYXRpb24o'@; put 'YSl7dGhpcy5yZWdpc3RyeS51bnJlZ2lzdGVyQXBwbGljYXRpb24oYSl9ZmluZFByb3ZpZGVycyhhLGQsaCl7cmV0dXJuW119fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKE5vKSxhcihxUiksYXIoS00pKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tl'@; put 'bjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxxUj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fYXBwbGljYXRpb25zPW5ldyBNYXB9cmVnaXN0ZXJBcHBsaWNhdGlvbihhLGQpe3RoaXMuX2FwcGxpY2F0aW9ucy5zZXQoYSxkKX11bnJlZ2lzdGVyQXBwbGljYXRpb24o'@; put 'YSl7dGhpcy5fYXBwbGljYXRpb25zLmRlbGV0ZShhKX11bnJlZ2lzdGVyQWxsQXBwbGljYXRpb25zKCl7dGhpcy5fYXBwbGljYXRpb25zLmNsZWFyKCl9Z2V0VGVzdGFiaWxpdHkoYSl7cmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9ucy5nZXQoYSl8fG51bGx9Z2V0QWxsVGVzdGFiaWxpdGllcygp'@; put 'e3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2FwcGxpY2F0aW9ucy52YWx1ZXMoKSl9Z2V0QWxsUm9vdEVsZW1lbnRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLmtleXMoKSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKGEsZD0hMCl7cmV0dXJuIEtSPy5maW5kVGVzdGFi'@; put 'aWxpdHlJblRyZWUodGhpcyxhLGQpPz9udWxsfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicGxhdGZvcm0ifSksY30pKCksc3A9bnVsbDtjb25z'@; put 'dCBkVz1uZXcgU2koIkFsbG93TXVsdGlwbGVUb2tlbiIpLFhSPW5ldyBTaSgiUGxhdGZvcm1EZXN0cm95TGlzdGVuZXJzIiksSlI9bmV3IFNpKCJhcHBCb290c3RyYXBMaXN0ZW5lciIpO2NsYXNzIGZXe2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5uYW1lPWwsdGhpcy50b2tlbj1hfX1mdW5jdGlv'@; put 'biBnVyhjLGwsYT1bXSl7Y29uc3QgZD1gUGxhdGZvcm06ICR7bH1gLGg9bmV3IFNpKGQpO3JldHVybihmPVtdKT0+e2xldCBfPVFSKCk7aWYoIV98fF8uaW5qZWN0b3IuZ2V0KGRXLCExKSl7Y29uc3QgVD1bLi4uYSwuLi5mLHtwcm92aWRlOmgsdXNlVmFsdWU6ITB9XTtjP2MoVCk6ZnVuY3Rp'@; put 'b24gWmNlKGMpe2lmKHNwJiYhc3AuZ2V0KGRXLCExKSl0aHJvdyBuZXcgQXIoNDAwLCExKTsoZnVuY3Rpb24gaFcoKXshZnVuY3Rpb24gZjkoYyl7THU9Y30oKCk9Pnt0aHJvdyBuZXcgQXIoNjAwLCExKX0pfSkoKSxzcD1jO2NvbnN0IGw9Yy5nZXQodlcpOyhmdW5jdGlvbiBwVyhjKXtjLmdl'@; put 'dChlUyxudWxsKT8uZm9yRWFjaChhPT5hKCkpfSkoYyl9KGZ1bmN0aW9uIG1XKGM9W10sbCl7cmV0dXJuIEVhLmNyZWF0ZSh7bmFtZTpsLHByb3ZpZGVyczpbe3Byb3ZpZGU6dDUsdXNlVmFsdWU6InBsYXRmb3JtIn0se3Byb3ZpZGU6WFIsdXNlVmFsdWU6bmV3IFNldChbKCk9PnNwPW51bGxd'@; put 'KX0sLi4uY119KX0oVCxkKSl9cmV0dXJuIGZ1bmN0aW9uIFdjZShjKXtjb25zdCBsPVFSKCk7aWYoIWwpdGhyb3cgbmV3IEFyKDQwMSwhMSk7cmV0dXJuIGx9KCl9fWZ1bmN0aW9uIFFSKCl7cmV0dXJuIHNwPy5nZXQodlcpPz9udWxsfWxldCB2Vz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9y'@; put 'KGEpe3RoaXMuX2luamVjdG9yPWEsdGhpcy5fbW9kdWxlcz1bXSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzPVtdLHRoaXMuX2Rlc3Ryb3llZD0hMX1ib290c3RyYXBNb2R1bGVGYWN0b3J5KGEsZCl7Y29uc3QgaD1mdW5jdGlvbiBHY2UoYz0iem9uZS5qcyIsbCl7cmV0dXJuIm5vb3AiPT09Yz9u'@; put 'ZXcgQmNlOiJ6b25lLmpzIj09PWM/bmV3IE5vKGwpOmN9KGQ/Lm5nWm9uZSxmdW5jdGlvbiBfVyhjKXtyZXR1cm57ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6ITEsc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjpjPy5ldmVudENvYWxlc2Npbmc/PyExLHNob3VsZENvYWxlc2NlUnVu'@; put 'Q2hhbmdlRGV0ZWN0aW9uOmM/LnJ1bkNvYWxlc2Npbmc/PyExfX0oe2V2ZW50Q29hbGVzY2luZzpkPy5uZ1pvbmVFdmVudENvYWxlc2NpbmcscnVuQ29hbGVzY2luZzpkPy5uZ1pvbmVSdW5Db2FsZXNjaW5nfSkpO3JldHVybiBoLnJ1bigoKT0+e2NvbnN0IGY9ZnVuY3Rpb24gYl8oYyxsLGEp'@; put 'e3JldHVybiBuZXcgd2YoYyxsLGEpfShhLm1vZHVsZVR5cGUsdGhpcy5pbmplY3RvcixmdW5jdGlvbiBTVyhjKXtyZXR1cm5be3Byb3ZpZGU6Tm8sdXNlRmFjdG9yeTpjfSx7cHJvdmlkZTpRNCxtdWx0aTohMCx1c2VGYWN0b3J5OigpPT57Y29uc3QgbD1GaShxY2Use29wdGlvbmFsOiEwfSk7'@; put 'cmV0dXJuKCk9PmwuaW5pdGlhbGl6ZSgpfX0se3Byb3ZpZGU6Q1csdXNlRmFjdG9yeTokY2V9LHtwcm92aWRlOmxXLHVzZUZhY3Rvcnk6Y1d9XX0oKCk9PmgpKSxfPWYuaW5qZWN0b3IuZ2V0KGhmLG51bGwpO3JldHVybiBoLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57Y29uc3QgVD1oLm9uRXJy'@; put 'b3Iuc3Vic2NyaWJlKHtuZXh0Olc9PntfLmhhbmRsZUVycm9yKFcpfX0pO2Yub25EZXN0cm95KCgpPT57WE0odGhpcy5fbW9kdWxlcyxmKSxULnVuc3Vic2NyaWJlKCl9KX0pLGZ1bmN0aW9uIGJXKGMsbCxhKXt0cnl7Y29uc3QgZD1hKCk7cmV0dXJuIHY1KGQpP2QuY2F0Y2goaD0+e3Rocm93'@; put 'IGwucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmMuaGFuZGxlRXJyb3IoaCkpLGh9KTpkfWNhdGNoKGQpe3Rocm93IGwucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmMuaGFuZGxlRXJyb3IoZCkpLGR9fShfLGgsKCk9Pntjb25zdCBUPWYuaW5qZWN0b3IuZ2V0KFlSKTtyZXR1cm4gVC5ydW5Jbml0aWFs'@; put 'aXplcnMoKSxULmRvbmVQcm9taXNlLnRoZW4oKCk9PihmdW5jdGlvbiBnZShjKXtwcihjLCJFeHBlY3RlZCBsb2NhbGVJZCB0byBiZSBkZWZpbmVkIiksInN0cmluZyI9PXR5cGVvZiBjJiYocmU9Yy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpKX0oZi5pbmplY3Rvci5nZXQoS2Qs'@; put 'aXApfHxpcCksdGhpcy5fbW9kdWxlRG9Cb290c3RyYXAoZiksZikpfSl9KX1ib290c3RyYXBNb2R1bGUoYSxkPVtdKXtjb25zdCBoPXlXKHt9LGQpO3JldHVybiBmdW5jdGlvbiB6Y2UoYyxsLGEpe2NvbnN0IGQ9bmV3IHFkKGEpO3JldHVybiBQcm9taXNlLnJlc29sdmUoZCl9KDAsMCxhKS50'@; put 'aGVuKGY9PnRoaXMuYm9vdHN0cmFwTW9kdWxlRmFjdG9yeShmLGgpKX1fbW9kdWxlRG9Cb290c3RyYXAoYSl7Y29uc3QgZD1hLmluamVjdG9yLmdldCh4NSk7aWYoYS5fYm9vdHN0cmFwQ29tcG9uZW50cy5sZW5ndGg+MClhLl9ib290c3RyYXBDb21wb25lbnRzLmZvckVhY2goaD0+ZC5ib290'@; put 'c3RyYXAoaCkpO2Vsc2V7aWYoIWEuaW5zdGFuY2UubmdEb0Jvb3RzdHJhcCl0aHJvdyBuZXcgQXIoLTQwMywhMSk7YS5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKGQpfXRoaXMuX21vZHVsZXMucHVzaChhKX1vbkRlc3Ryb3koYSl7dGhpcy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKGEpfWdldCBp'@; put 'bmplY3Rvcigpe3JldHVybiB0aGlzLl9pbmplY3Rvcn1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBBcig0MDQsITEpO3RoaXMuX21vZHVsZXMuc2xpY2UoKS5mb3JFYWNoKGQ9PmQuZGVzdHJveSgpKSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzLmZvckVhY2goZD0+ZCgp'@; put 'KTtjb25zdCBhPXRoaXMuX2luamVjdG9yLmdldChYUixudWxsKTthJiYoYS5mb3JFYWNoKGQ9PmQoKSksYS5jbGVhcigpKSx0aGlzLl9kZXN0cm95ZWQ9ITB9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1'@; put 'cm4gbmV3KGF8fGMpKGFyKEVhKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGN9KSgpO2Z1bmN0aW9uIHlXKGMsbCl7cmV0dXJuIEFycmF5LmlzQXJyYXkobCk/bC5yZWR1Y2UoeVcsYyk6ey4uLmMsLi4ubH19'@; put 'bGV0IHg1PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9ib290c3RyYXBMaXN0ZW5lcnM9W10sdGhpcy5fcnVubmluZ1RpY2s9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnM9W10sdGhpcy5fdmlld3M9W10sdGhpcy5pbnRlcm5hbEVycm9ySGFu'@; put 'ZGxlcj1GaShDVyksdGhpcy56b25lSXNTdGFibGU9RmkobFcpLHRoaXMuY29tcG9uZW50VHlwZXM9W10sdGhpcy5jb21wb25lbnRzPVtdLHRoaXMuaXNTdGFibGU9RmkocU0pLmhhc1BlbmRpbmdUYXNrcy5waXBlKFNhKGE9PmE/V2koITEpOnRoaXMuem9uZUlzU3RhYmxlKSxmdW5jdGlvbiBG'@; put 'aChjLGw9T2Upe3JldHVybiBjPWM/P0V1LFhlKChhLGQpPT57bGV0IGgsZj0hMDthLnN1YnNjcmliZShVZShkLF89Pntjb25zdCBUPWwoXyk7KGZ8fCFjKGgsVCkpJiYoZj0hMSxoPVQsZC5uZXh0KF8pKX0pKX0pfSgpLCRhKCkpLHRoaXMuX2luamVjdG9yPUZpKHEwKX1nZXQgZGVzdHJveWVk'@; put 'KCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZH1nZXQgaW5qZWN0b3IoKXtyZXR1cm4gdGhpcy5faW5qZWN0b3J9Ym9vdHN0cmFwKGEsZCl7Y29uc3QgaD1hIGluc3RhbmNlb2YgY1M7aWYoIXRoaXMuX2luamVjdG9yLmdldChZUikuZG9uZSl0aHJvdyFoJiZmdW5jdGlvbiBJZChjKXtjb25zdCBs'@; put 'PVFvKGMpfHxLYShjKXx8T2woYyk7cmV0dXJuIG51bGwhPT1sJiZsLnN0YW5kYWxvbmV9KGEpLG5ldyBBcig0MDUsITEpO2xldCBfO189aD9hOnRoaXMuX2luamVjdG9yLmdldChLMCkucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoYSksdGhpcy5jb21wb25lbnRUeXBlcy5wdXNoKF8uY29tcG9u'@; put 'ZW50VHlwZSk7Y29uc3QgVD1mdW5jdGlvbiBVY2UoYyl7cmV0dXJuIGMuaXNCb3VuZFRvTW9kdWxlfShfKT92b2lkIDA6dGhpcy5faW5qZWN0b3IuZ2V0KFVsKSxpZT1fLmNyZWF0ZShFYS5OVUxMLFtdLGR8fF8uc2VsZWN0b3IsVCkscGU9aWUubG9jYXRpb24ubmF0aXZlRWxlbWVudCx3ZT1p'@; put 'ZS5pbmplY3Rvci5nZXQodVcsbnVsbCk7cmV0dXJuIHdlPy5yZWdpc3RlckFwcGxpY2F0aW9uKHBlKSxpZS5vbkRlc3Ryb3koKCk9Pnt0aGlzLmRldGFjaFZpZXcoaWUuaG9zdFZpZXcpLFhNKHRoaXMuY29tcG9uZW50cyxpZSksd2U/LnVucmVnaXN0ZXJBcHBsaWNhdGlvbihwZSl9KSx0aGlz'@; put 'Ll9sb2FkQ29tcG9uZW50KGllKSxpZX10aWNrKCl7aWYodGhpcy5fcnVubmluZ1RpY2spdGhyb3cgbmV3IEFyKDEwMSwhMSk7dHJ5e3RoaXMuX3J1bm5pbmdUaWNrPSEwO2ZvcihsZXQgYSBvZiB0aGlzLl92aWV3cylhLmRldGVjdENoYW5nZXMoKX1jYXRjaChhKXt0aGlzLmludGVybmFsRXJy'@; put 'b3JIYW5kbGVyKGEpfWZpbmFsbHl7dGhpcy5fcnVubmluZ1RpY2s9ITF9fWF0dGFjaFZpZXcoYSl7Y29uc3QgZD1hO3RoaXMuX3ZpZXdzLnB1c2goZCksZC5hdHRhY2hUb0FwcFJlZih0aGlzKX1kZXRhY2hWaWV3KGEpe2NvbnN0IGQ9YTtYTSh0aGlzLl92aWV3cyxkKSxkLmRldGFjaEZyb21B'@; put 'cHBSZWYoKX1fbG9hZENvbXBvbmVudChhKXt0aGlzLmF0dGFjaFZpZXcoYS5ob3N0VmlldyksdGhpcy50aWNrKCksdGhpcy5jb21wb25lbnRzLnB1c2goYSk7Y29uc3QgZD10aGlzLl9pbmplY3Rvci5nZXQoSlIsW10pO2QucHVzaCguLi50aGlzLl9ib290c3RyYXBMaXN0ZW5lcnMpLGQuZm9y'@; put 'RWFjaChoPT5oKGEpKX1uZ09uRGVzdHJveSgpe2lmKCF0aGlzLl9kZXN0cm95ZWQpdHJ5e3RoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaChhPT5hKCkpLHRoaXMuX3ZpZXdzLnNsaWNlKCkuZm9yRWFjaChhPT5hLmRlc3Ryb3koKSl9ZmluYWxseXt0aGlzLl9kZXN0cm95ZWQ9ITAsdGhp'@; put 'cy5fdmlld3M9W10sdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnM9W119fW9uRGVzdHJveShhKXtyZXR1cm4gdGhpcy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKGEpLCgpPT5YTSh0aGlzLl9kZXN0cm95TGlzdGVuZXJzLGEpfWRlc3Ryb3koKXtpZih0'@; put 'aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IEFyKDQwNiwhMSk7Y29uc3QgYT10aGlzLl9pbmplY3RvcjthLmRlc3Ryb3kmJiFhLmRlc3Ryb3llZCYmYS5kZXN0cm95KCl9Z2V0IHZpZXdDb3VudCgpe3JldHVybiB0aGlzLl92aWV3cy5sZW5ndGh9d2FybklmRGVzdHJveWVkKCl7fX1yZXR1cm4g'@; put 'Yy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtmdW5jdGlvbiBYTShjLGwpe2NvbnN0IGE9Yy5pbmRleE9mKGwpO2E+LTEmJmMuc3BsaWNl'@; put 'KGEsMSl9Y29uc3QgQ1c9bmV3IFNpKCIiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5GaShoZikuaGFuZGxlRXJyb3IuYmluZCh2b2lkIDApfSk7ZnVuY3Rpb24gJGNlKCl7Y29uc3QgYz1GaShObyksbD1GaShoZik7cmV0dXJuIGE9PmMucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pmwu'@; put 'aGFuZGxlRXJyb3IoYSkpfWxldCBxY2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuem9uZT1GaShObyksdGhpcy5hcHBsaWNhdGlvblJlZj1GaSh4NSl9aW5pdGlhbGl6ZSgpe3RoaXMuX29uTWljcm90YXNrRW1wdHlTdWJzY3JpcHRpb258fCh0aGlzLl9vbk1pY3JvdGFza0Vt'@; put 'cHR5U3Vic2NyaXB0aW9uPXRoaXMuem9uZS5vbk1pY3JvdGFza0VtcHR5LnN1YnNjcmliZSh7bmV4dDooKT0+e3RoaXMuem9uZS5ydW4oKCk9Pnt0aGlzLmFwcGxpY2F0aW9uUmVmLnRpY2soKX0pfX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX29uTWljcm90YXNrRW1wdHlTdWJzY3JpcHRpb24/'@; put 'LnVuc3Vic2NyaWJlKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpO2xldCBVYT0oKCk9PntjbGFzcyBje31yZXR1cm4g'@; put 'Yy5fX05HX0VMRU1FTlRfSURfXz1YY2UsY30pKCk7ZnVuY3Rpb24gWGNlKGMpe3JldHVybiBmdW5jdGlvbiBKY2UoYyxsLGEpe2lmKFAxKGMpJiYhYSl7Y29uc3QgZD1tdChjLmluZGV4LGwpO3JldHVybiBuZXcgZDUoZCxkKX1yZXR1cm4gNDcmYy50eXBlP25ldyBkNShsW0phXSxsKTpudWxs'@; put 'fShNYygpLFhyKCksMTY9PSgxNiZjKSl9Y2xhc3Mga1d7Y29uc3RydWN0b3IoKXt9c3VwcG9ydHMobCl7cmV0dXJuIGs2KGwpfWNyZWF0ZShsKXtyZXR1cm4gbmV3IGl1ZShsKX19Y29uc3QgcnVlPShjLGwpPT5sO2NsYXNzIGl1ZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmxlbmd0aD0wLHRoaXMu'@; put 'X2xpbmtlZFJlY29yZHM9bnVsbCx0aGlzLl91bmxpbmtlZFJlY29yZHM9bnVsbCx0aGlzLl9wcmV2aW91c0l0SGVhZD1udWxsLHRoaXMuX2l0SGVhZD1udWxsLHRoaXMuX2l0VGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9bnVsbCx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGwsdGhpcy5f'@; put 'bW92ZXNIZWFkPW51bGwsdGhpcy5fbW92ZXNUYWlsPW51bGwsdGhpcy5fcmVtb3ZhbHNIZWFkPW51bGwsdGhpcy5fcmVtb3ZhbHNUYWlsPW51bGwsdGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbCx0aGlzLl90cmFja0J5Rm49bHx8'@; put 'cnVlfWZvckVhY2hJdGVtKGwpe2xldCBhO2ZvcihhPXRoaXMuX2l0SGVhZDtudWxsIT09YTthPWEuX25leHQpbChhKX1mb3JFYWNoT3BlcmF0aW9uKGwpe2xldCBhPXRoaXMuX2l0SGVhZCxkPXRoaXMuX3JlbW92YWxzSGVhZCxoPTAsZj1udWxsO2Zvcig7YXx8ZDspe2NvbnN0IF89IWR8fGEm'@; put 'JmEuY3VycmVudEluZGV4PFRXKGQsaCxmKT9hOmQsVD1UVyhfLGgsZiksVz1fLmN1cnJlbnRJbmRleDtpZihfPT09ZCloLS0sZD1kLl9uZXh0UmVtb3ZlZDtlbHNlIGlmKGE9YS5fbmV4dCxudWxsPT1fLnByZXZpb3VzSW5kZXgpaCsrO2Vsc2V7Znx8KGY9W10pO2NvbnN0IGllPVQtaCxwZT1X'@; put 'LWg7aWYoaWUhPXBlKXtmb3IobGV0IEVlPTA7RWU8aWU7RWUrKyl7Y29uc3QgWmU9RWU8Zi5sZW5ndGg/ZltFZV06ZltFZV09MCxpdD1aZStFZTtwZTw9aXQmJml0PGllJiYoZltFZV09WmUrMSl9ZltfLnByZXZpb3VzSW5kZXhdPXBlLWllfX1UIT09VyYmbChfLFQsVyl9fWZvckVhY2hQcmV2'@; put 'aW91c0l0ZW0obCl7bGV0IGE7Zm9yKGE9dGhpcy5fcHJldmlvdXNJdEhlYWQ7bnVsbCE9PWE7YT1hLl9uZXh0UHJldmlvdXMpbChhKX1mb3JFYWNoQWRkZWRJdGVtKGwpe2xldCBhO2ZvcihhPXRoaXMuX2FkZGl0aW9uc0hlYWQ7bnVsbCE9PWE7YT1hLl9uZXh0QWRkZWQpbChhKX1mb3JFYWNo'@; put 'TW92ZWRJdGVtKGwpe2xldCBhO2ZvcihhPXRoaXMuX21vdmVzSGVhZDtudWxsIT09YTthPWEuX25leHRNb3ZlZClsKGEpfWZvckVhY2hSZW1vdmVkSXRlbShsKXtsZXQgYTtmb3IoYT10aGlzLl9yZW1vdmFsc0hlYWQ7bnVsbCE9PWE7YT1hLl9uZXh0UmVtb3ZlZClsKGEpfWZvckVhY2hJZGVu'@; put 'dGl0eUNoYW5nZShsKXtsZXQgYTtmb3IoYT10aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkO251bGwhPT1hO2E9YS5fbmV4dElkZW50aXR5Q2hhbmdlKWwoYSl9ZGlmZihsKXtpZihudWxsPT1sJiYobD1bXSksIWs2KGwpKXRocm93IG5ldyBBcig5MDAsITEpO3JldHVybiB0aGlzLmNoZWNrKGwp'@; put 'P3RoaXM6bnVsbH1vbkRlc3Ryb3koKXt9Y2hlY2sobCl7dGhpcy5fcmVzZXQoKTtsZXQgaCxmLF8sYT10aGlzLl9pdEhlYWQsZD0hMTtpZihBcnJheS5pc0FycmF5KGwpKXt0aGlzLmxlbmd0aD1sLmxlbmd0aDtmb3IobGV0IFQ9MDtUPHRoaXMubGVuZ3RoO1QrKylmPWxbVF0sXz10aGlzLl90'@; put 'cmFja0J5Rm4oVCxmKSxudWxsIT09YSYmT2JqZWN0LmlzKGEudHJhY2tCeUlkLF8pPyhkJiYoYT10aGlzLl92ZXJpZnlSZWluc2VydGlvbihhLGYsXyxUKSksT2JqZWN0LmlzKGEuaXRlbSxmKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UoYSxmKSk6KGE9dGhpcy5fbWlzbWF0Y2goYSxmLF8s'@; put 'VCksZD0hMCksYT1hLl9uZXh0fWVsc2UgaD0wLGZ1bmN0aW9uIEFMKGMsbCl7aWYoQXJyYXkuaXNBcnJheShjKSlmb3IobGV0IGE9MDthPGMubGVuZ3RoO2ErKylsKGNbYV0pO2Vsc2V7Y29uc3QgYT1jW1N5bWJvbC5pdGVyYXRvcl0oKTtsZXQgZDtmb3IoOyEoZD1hLm5leHQoKSkuZG9uZTsp'@; put 'bChkLnZhbHVlKX19KGwsVD0+e189dGhpcy5fdHJhY2tCeUZuKGgsVCksbnVsbCE9PWEmJk9iamVjdC5pcyhhLnRyYWNrQnlJZCxfKT8oZCYmKGE9dGhpcy5fdmVyaWZ5UmVpbnNlcnRpb24oYSxULF8saCkpLE9iamVjdC5pcyhhLml0ZW0sVCl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGEs'@; put 'VCkpOihhPXRoaXMuX21pc21hdGNoKGEsVCxfLGgpLGQ9ITApLGE9YS5fbmV4dCxoKyt9KSx0aGlzLmxlbmd0aD1oO3JldHVybiB0aGlzLl90cnVuY2F0ZShhKSx0aGlzLmNvbGxlY3Rpb249bCx0aGlzLmlzRGlydHl9Z2V0IGlzRGlydHkoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2FkZGl0aW9u'@; put 'c0hlYWR8fG51bGwhPT10aGlzLl9tb3Zlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR8fG51bGwhPT10aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkfV9yZXNldCgpe2lmKHRoaXMuaXNEaXJ0eSl7bGV0IGw7Zm9yKGw9dGhpcy5fcHJldmlvdXNJdEhlYWQ9dGhpcy5faXRIZWFkO251'@; put 'bGwhPT1sO2w9bC5fbmV4dClsLl9uZXh0UHJldmlvdXM9bC5fbmV4dDtmb3IobD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1sO2w9bC5fbmV4dEFkZGVkKWwucHJldmlvdXNJbmRleD1sLmN1cnJlbnRJbmRleDtmb3IodGhpcy5fYWRkaXRpb25zSGVhZD10aGlzLl9hZGRpdGlvbnNUYWls'@; put 'PW51bGwsbD10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWw7bD1sLl9uZXh0TW92ZWQpbC5wcmV2aW91c0luZGV4PWwuY3VycmVudEluZGV4O3RoaXMuX21vdmVzSGVhZD10aGlzLl9tb3Zlc1RhaWw9bnVsbCx0aGlzLl9yZW1vdmFsc0hlYWQ9dGhpcy5fcmVtb3ZhbHNUYWlsPW51bGwsdGhpcy5f'@; put 'aWRlbnRpdHlDaGFuZ2VzSGVhZD10aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGx9fV9taXNtYXRjaChsLGEsZCxoKXtsZXQgZjtyZXR1cm4gbnVsbD09PWw/Zj10aGlzLl9pdFRhaWw6KGY9bC5fcHJldix0aGlzLl9yZW1vdmUobCkpLG51bGwhPT0obD1udWxsPT09dGhpcy5fdW5saW5r'@; put 'ZWRSZWNvcmRzP251bGw6dGhpcy5fdW5saW5rZWRSZWNvcmRzLmdldChkLG51bGwpKT8oT2JqZWN0LmlzKGwuaXRlbSxhKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UobCxhKSx0aGlzLl9yZWluc2VydEFmdGVyKGwsZixoKSk6bnVsbCE9PShsPW51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRz'@; put 'P251bGw6dGhpcy5fbGlua2VkUmVjb3Jkcy5nZXQoZCxoKSk/KE9iamVjdC5pcyhsLml0ZW0sYSl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGwsYSksdGhpcy5fbW92ZUFmdGVyKGwsZixoKSk6bD10aGlzLl9hZGRBZnRlcihuZXcgb3VlKGEsZCksZixoKSxsfV92ZXJpZnlSZWluc2VydGlv'@; put 'bihsLGEsZCxoKXtsZXQgZj1udWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzP251bGw6dGhpcy5fdW5saW5rZWRSZWNvcmRzLmdldChkLG51bGwpO3JldHVybiBudWxsIT09Zj9sPXRoaXMuX3JlaW5zZXJ0QWZ0ZXIoZixsLl9wcmV2LGgpOmwuY3VycmVudEluZGV4IT1oJiYobC5jdXJyZW50'@; put 'SW5kZXg9aCx0aGlzLl9hZGRUb01vdmVzKGwsaCkpLGx9X3RydW5jYXRlKGwpe2Zvcig7bnVsbCE9PWw7KXtjb25zdCBhPWwuX25leHQ7dGhpcy5fYWRkVG9SZW1vdmFscyh0aGlzLl91bmxpbmsobCkpLGw9YX1udWxsIT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiZ0aGlzLl91bmxpbmtlZFJl'@; put 'Y29yZHMuY2xlYXIoKSxudWxsIT09dGhpcy5fYWRkaXRpb25zVGFpbCYmKHRoaXMuX2FkZGl0aW9uc1RhaWwuX25leHRBZGRlZD1udWxsKSxudWxsIT09dGhpcy5fbW92ZXNUYWlsJiYodGhpcy5fbW92ZXNUYWlsLl9uZXh0TW92ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2l0VGFpbCYmKHRoaXMu'@; put 'X2l0VGFpbC5fbmV4dD1udWxsKSxudWxsIT09dGhpcy5fcmVtb3ZhbHNUYWlsJiYodGhpcy5fcmVtb3ZhbHNUYWlsLl9uZXh0UmVtb3ZlZD1udWxsKSxudWxsIT09dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbCYmKHRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwuX25leHRJZGVudGl0eUNoYW5n'@; put 'ZT1udWxsKX1fcmVpbnNlcnRBZnRlcihsLGEsZCl7bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLnJlbW92ZShsKTtjb25zdCBoPWwuX3ByZXZSZW1vdmVkLGY9bC5fbmV4dFJlbW92ZWQ7cmV0dXJuIG51bGw9PT1oP3RoaXMuX3JlbW92YWxzSGVh'@; put 'ZD1mOmguX25leHRSZW1vdmVkPWYsbnVsbD09PWY/dGhpcy5fcmVtb3ZhbHNUYWlsPWg6Zi5fcHJldlJlbW92ZWQ9aCx0aGlzLl9pbnNlcnRBZnRlcihsLGEsZCksdGhpcy5fYWRkVG9Nb3ZlcyhsLGQpLGx9X21vdmVBZnRlcihsLGEsZCl7cmV0dXJuIHRoaXMuX3VubGluayhsKSx0aGlzLl9p'@; put 'bnNlcnRBZnRlcihsLGEsZCksdGhpcy5fYWRkVG9Nb3ZlcyhsLGQpLGx9X2FkZEFmdGVyKGwsYSxkKXtyZXR1cm4gdGhpcy5faW5zZXJ0QWZ0ZXIobCxhLGQpLHRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbD09PXRoaXMuX2FkZGl0aW9uc1RhaWw/dGhpcy5fYWRkaXRpb25zSGVhZD1sOnRoaXMu'@; put 'X2FkZGl0aW9uc1RhaWwuX25leHRBZGRlZD1sLGx9X2luc2VydEFmdGVyKGwsYSxkKXtjb25zdCBoPW51bGw9PT1hP3RoaXMuX2l0SGVhZDphLl9uZXh0O3JldHVybiBsLl9uZXh0PWgsbC5fcHJldj1hLG51bGw9PT1oP3RoaXMuX2l0VGFpbD1sOmguX3ByZXY9bCxudWxsPT09YT90aGlzLl9p'@; put 'dEhlYWQ9bDphLl9uZXh0PWwsbnVsbD09PXRoaXMuX2xpbmtlZFJlY29yZHMmJih0aGlzLl9saW5rZWRSZWNvcmRzPW5ldyBBVyksdGhpcy5fbGlua2VkUmVjb3Jkcy5wdXQobCksbC5jdXJyZW50SW5kZXg9ZCxsfV9yZW1vdmUobCl7cmV0dXJuIHRoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5f'@; put 'dW5saW5rKGwpKX1fdW5saW5rKGwpe251bGwhPT10aGlzLl9saW5rZWRSZWNvcmRzJiZ0aGlzLl9saW5rZWRSZWNvcmRzLnJlbW92ZShsKTtjb25zdCBhPWwuX3ByZXYsZD1sLl9uZXh0O3JldHVybiBudWxsPT09YT90aGlzLl9pdEhlYWQ9ZDphLl9uZXh0PWQsbnVsbD09PWQ/dGhpcy5faXRU'@; put 'YWlsPWE6ZC5fcHJldj1hLGx9X2FkZFRvTW92ZXMobCxhKXtyZXR1cm4gbC5wcmV2aW91c0luZGV4PT09YXx8KHRoaXMuX21vdmVzVGFpbD1udWxsPT09dGhpcy5fbW92ZXNUYWlsP3RoaXMuX21vdmVzSGVhZD1sOnRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPWwpLGx9X2FkZFRvUmVtb3Zh'@; put 'bHMobCl7cmV0dXJuIG51bGw9PT10aGlzLl91bmxpbmtlZFJlY29yZHMmJih0aGlzLl91bmxpbmtlZFJlY29yZHM9bmV3IEFXKSx0aGlzLl91bmxpbmtlZFJlY29yZHMucHV0KGwpLGwuY3VycmVudEluZGV4PW51bGwsbC5fbmV4dFJlbW92ZWQ9bnVsbCxudWxsPT09dGhpcy5fcmVtb3ZhbHNU'@; put 'YWlsPyh0aGlzLl9yZW1vdmFsc1RhaWw9dGhpcy5fcmVtb3ZhbHNIZWFkPWwsbC5fcHJldlJlbW92ZWQ9bnVsbCk6KGwuX3ByZXZSZW1vdmVkPXRoaXMuX3JlbW92YWxzVGFpbCx0aGlzLl9yZW1vdmFsc1RhaWw9dGhpcy5fcmVtb3ZhbHNUYWlsLl9uZXh0UmVtb3ZlZD1sKSxsfV9hZGRJZGVu'@; put 'dGl0eUNoYW5nZShsLGEpe3JldHVybiBsLml0ZW09YSx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGw9PT10aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsP3RoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bDp0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9'@; put 'bCxsfX1jbGFzcyBvdWV7Y29uc3RydWN0b3IobCxhKXt0aGlzLml0ZW09bCx0aGlzLnRyYWNrQnlJZD1hLHRoaXMuY3VycmVudEluZGV4PW51bGwsdGhpcy5wcmV2aW91c0luZGV4PW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHQ9bnVsbCx0'@; put 'aGlzLl9wcmV2RHVwPW51bGwsdGhpcy5fbmV4dER1cD1udWxsLHRoaXMuX3ByZXZSZW1vdmVkPW51bGwsdGhpcy5fbmV4dFJlbW92ZWQ9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0TW92ZWQ9bnVsbCx0aGlzLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbH19Y2xhc3Mgc3Vl'@; put 'e2NvbnN0cnVjdG9yKCl7dGhpcy5faGVhZD1udWxsLHRoaXMuX3RhaWw9bnVsbH1hZGQobCl7bnVsbD09PXRoaXMuX2hlYWQ/KHRoaXMuX2hlYWQ9dGhpcy5fdGFpbD1sLGwuX25leHREdXA9bnVsbCxsLl9wcmV2RHVwPW51bGwpOih0aGlzLl90YWlsLl9uZXh0RHVwPWwsbC5fcHJldkR1cD10'@; put 'aGlzLl90YWlsLGwuX25leHREdXA9bnVsbCx0aGlzLl90YWlsPWwpfWdldChsLGEpe2xldCBkO2ZvcihkPXRoaXMuX2hlYWQ7bnVsbCE9PWQ7ZD1kLl9uZXh0RHVwKWlmKChudWxsPT09YXx8YTw9ZC5jdXJyZW50SW5kZXgpJiZPYmplY3QuaXMoZC50cmFja0J5SWQsbCkpcmV0dXJuIGQ7cmV0'@; put 'dXJuIG51bGx9cmVtb3ZlKGwpe2NvbnN0IGE9bC5fcHJldkR1cCxkPWwuX25leHREdXA7cmV0dXJuIG51bGw9PT1hP3RoaXMuX2hlYWQ9ZDphLl9uZXh0RHVwPWQsbnVsbD09PWQ/dGhpcy5fdGFpbD1hOmQuX3ByZXZEdXA9YSxudWxsPT09dGhpcy5faGVhZH19Y2xhc3MgQVd7Y29uc3RydWN0'@; put 'b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXB1dChsKXtjb25zdCBhPWwudHJhY2tCeUlkO2xldCBkPXRoaXMubWFwLmdldChhKTtkfHwoZD1uZXcgc3VlLHRoaXMubWFwLnNldChhLGQpKSxkLmFkZChsKX1nZXQobCxhKXtjb25zdCBoPXRoaXMubWFwLmdldChsKTtyZXR1cm4gaD9oLmdldChsLGEp'@; put 'Om51bGx9cmVtb3ZlKGwpe2NvbnN0IGE9bC50cmFja0J5SWQ7cmV0dXJuIHRoaXMubWFwLmdldChhKS5yZW1vdmUobCkmJnRoaXMubWFwLmRlbGV0ZShhKSxsfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLm1hcC5zaXplfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19ZnVuY3Rpb24g'@; put 'VFcoYyxsLGEpe2NvbnN0IGQ9Yy5wcmV2aW91c0luZGV4O2lmKG51bGw9PT1kKXJldHVybiBkO2xldCBoPTA7cmV0dXJuIGEmJmQ8YS5sZW5ndGgmJihoPWFbZF0pLGQrbCtofWNsYXNzIERXe2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKGwpe3JldHVybiBsIGluc3RhbmNlb2YgTWFwfHxBNihs'@; put 'KX1jcmVhdGUoKXtyZXR1cm4gbmV3IGF1ZX19Y2xhc3MgYXVle2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcgTWFwLHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGws'@; put 'dGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNI'@; put 'ZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0obCl7bGV0IGE7Zm9yKGE9dGhpcy5fbWFwSGVhZDtudWxsIT09YTthPWEuX25leHQpbChhKX1mb3JFYWNoUHJldmlvdXNJdGVtKGwpe2xldCBhO2ZvcihhPXRoaXMuX3By'@; put 'ZXZpb3VzTWFwSGVhZDtudWxsIT09YTthPWEuX25leHRQcmV2aW91cylsKGEpfWZvckVhY2hDaGFuZ2VkSXRlbShsKXtsZXQgYTtmb3IoYT10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09YTthPWEuX25leHRDaGFuZ2VkKWwoYSl9Zm9yRWFjaEFkZGVkSXRlbShsKXtsZXQgYTtmb3IoYT10aGlz'@; put 'Ll9hZGRpdGlvbnNIZWFkO251bGwhPT1hO2E9YS5fbmV4dEFkZGVkKWwoYSl9Zm9yRWFjaFJlbW92ZWRJdGVtKGwpe2xldCBhO2ZvcihhPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09YTthPWEuX25leHRSZW1vdmVkKWwoYSl9ZGlmZihsKXtpZihsKXtpZighKGwgaW5zdGFuY2VvZiBNYXB8'@; put 'fEE2KGwpKSl0aHJvdyBuZXcgQXIoOTAwLCExKX1lbHNlIGw9bmV3IE1hcDtyZXR1cm4gdGhpcy5jaGVjayhsKT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKGwpe3RoaXMuX3Jlc2V0KCk7bGV0IGE9dGhpcy5fbWFwSGVhZDtpZih0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX2Zv'@; put 'ckVhY2gobCwoZCxoKT0+e2lmKGEmJmEua2V5PT09aCl0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhhLGQpLHRoaXMuX2FwcGVuZEFmdGVyPWEsYT1hLl9uZXh0O2Vsc2V7Y29uc3QgZj10aGlzLl9nZXRPckNyZWF0ZVJlY29yZEZvcktleShoLGQpO2E9dGhpcy5faW5zZXJ0QmVmb3JlT3JBcHBl'@; put 'bmQoYSxmKX19KSxhKXthLl9wcmV2JiYoYS5fcHJldi5fbmV4dD1udWxsKSx0aGlzLl9yZW1vdmFsc0hlYWQ9YTtmb3IobGV0IGQ9YTtudWxsIT09ZDtkPWQuX25leHRSZW1vdmVkKWQ9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1udWxsKSx0aGlzLl9yZWNvcmRzLmRlbGV0ZShk'@; put 'LmtleSksZC5fbmV4dFJlbW92ZWQ9ZC5fbmV4dCxkLnByZXZpb3VzVmFsdWU9ZC5jdXJyZW50VmFsdWUsZC5jdXJyZW50VmFsdWU9bnVsbCxkLl9wcmV2PW51bGwsZC5fbmV4dD1udWxsfXJldHVybiB0aGlzLl9jaGFuZ2VzVGFpbCYmKHRoaXMuX2NoYW5nZXNUYWlsLl9uZXh0Q2hhbmdlZD1u'@; put 'dWxsKSx0aGlzLl9hZGRpdGlvbnNUYWlsJiYodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPW51bGwpLHRoaXMuaXNEaXJ0eX1faW5zZXJ0QmVmb3JlT3JBcHBlbmQobCxhKXtpZihsKXtjb25zdCBkPWwuX3ByZXY7cmV0dXJuIGEuX25leHQ9bCxhLl9wcmV2PWQsbC5fcHJldj1hLGQm'@; put 'JihkLl9uZXh0PWEpLGw9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1hKSx0aGlzLl9hcHBlbmRBZnRlcj1sLGx9cmV0dXJuIHRoaXMuX2FwcGVuZEFmdGVyPyh0aGlzLl9hcHBlbmRBZnRlci5fbmV4dD1hLGEuX3ByZXY9dGhpcy5fYXBwZW5kQWZ0ZXIpOnRoaXMuX21hcEhlYWQ9'@; put 'YSx0aGlzLl9hcHBlbmRBZnRlcj1hLG51bGx9X2dldE9yQ3JlYXRlUmVjb3JkRm9yS2V5KGwsYSl7aWYodGhpcy5fcmVjb3Jkcy5oYXMobCkpe2NvbnN0IGg9dGhpcy5fcmVjb3Jkcy5nZXQobCk7dGhpcy5fbWF5YmVBZGRUb0NoYW5nZXMoaCxhKTtjb25zdCBmPWguX3ByZXYsXz1oLl9uZXh0'@; put 'O3JldHVybiBmJiYoZi5fbmV4dD1fKSxfJiYoXy5fcHJldj1mKSxoLl9uZXh0PW51bGwsaC5fcHJldj1udWxsLGh9Y29uc3QgZD1uZXcgbHVlKGwpO3JldHVybiB0aGlzLl9yZWNvcmRzLnNldChsLGQpLGQuY3VycmVudFZhbHVlPWEsdGhpcy5fYWRkVG9BZGRpdGlvbnMoZCksZH1fcmVzZXQo'@; put 'KXtpZih0aGlzLmlzRGlydHkpe2xldCBsO2Zvcih0aGlzLl9wcmV2aW91c01hcEhlYWQ9dGhpcy5fbWFwSGVhZCxsPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09bDtsPWwuX25leHQpbC5fbmV4dFByZXZpb3VzPWwuX25leHQ7Zm9yKGw9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PWw7'@; put 'bD1sLl9uZXh0Q2hhbmdlZClsLnByZXZpb3VzVmFsdWU9bC5jdXJyZW50VmFsdWU7Zm9yKGw9dGhpcy5fYWRkaXRpb25zSGVhZDtudWxsIT1sO2w9bC5fbmV4dEFkZGVkKWwucHJldmlvdXNWYWx1ZT1sLmN1cnJlbnRWYWx1ZTt0aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1u'@; put 'dWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsfX1fbWF5YmVBZGRUb0NoYW5nZXMobCxhKXtPYmplY3QuaXMoYSxsLmN1cnJlbnRWYWx1ZSl8fChsLnByZXZpb3VzVmFsdWU9bC5jdXJyZW50VmFsdWUsbC5jdXJy'@; put 'ZW50VmFsdWU9YSx0aGlzLl9hZGRUb0NoYW5nZXMobCkpfV9hZGRUb0FkZGl0aW9ucyhsKXtudWxsPT09dGhpcy5fYWRkaXRpb25zSGVhZD90aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bDoodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPWwsdGhpcy5fYWRk'@; put 'aXRpb25zVGFpbD1sKX1fYWRkVG9DaGFuZ2VzKGwpe251bGw9PT10aGlzLl9jaGFuZ2VzSGVhZD90aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1sOih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9bCx0aGlzLl9jaGFuZ2VzVGFpbD1sKX1fZm9yRWFjaChsLGEpe2wg'@; put 'aW5zdGFuY2VvZiBNYXA/bC5mb3JFYWNoKGEpOk9iamVjdC5rZXlzKGwpLmZvckVhY2goZD0+YShsW2RdLGQpKX19Y2xhc3MgbHVle2NvbnN0cnVjdG9yKGwpe3RoaXMua2V5PWwsdGhpcy5wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5jdXJyZW50VmFsdWU9bnVsbCx0aGlzLl9uZXh0UHJldmlv'@; put 'dXM9bnVsbCx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHRBZGRlZD1udWxsLHRoaXMuX25leHRSZW1vdmVkPW51bGwsdGhpcy5fbmV4dENoYW5nZWQ9bnVsbH19ZnVuY3Rpb24gSVcoKXtyZXR1cm4gbmV3IHo2KFtuZXcga1ddKX1sZXQgejY9KCgpPT57Y2xhc3Mg'@; put 'Y3tjb25zdHJ1Y3RvcihhKXt0aGlzLmZhY3Rvcmllcz1hfXN0YXRpYyBjcmVhdGUoYSxkKXtpZihudWxsIT1kKXtjb25zdCBoPWQuZmFjdG9yaWVzLnNsaWNlKCk7YT1hLmNvbmNhdChoKX1yZXR1cm4gbmV3IGMoYSl9c3RhdGljIGV4dGVuZChhKXtyZXR1cm57cHJvdmlkZTpjLHVzZUZhY3Rv'@; put 'cnk6ZD0+Yy5jcmVhdGUoYSxkfHxJVygpKSxkZXBzOltbYyxuZXcgZzAsbmV3IHoyXV19fWZpbmQoYSl7Y29uc3QgZD10aGlzLmZhY3Rvcmllcy5maW5kKGg9Pmguc3VwcG9ydHMoYSkpO2lmKG51bGwhPWQpcmV0dXJuIGQ7dGhyb3cgbmV3IEFyKDkwMSwhMSl9fXJldHVybiBjLlx1MDI3NXBy'@; put 'b3Y9aHIoe3Rva2VuOmMscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpJV30pLGN9KSgpO2Z1bmN0aW9uIExXKCl7cmV0dXJuIG5ldyBNXyhbbmV3IERXXSl9bGV0IE1fPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5mYWN0b3JpZXM9YX1zdGF0aWMgY3JlYXRlKGEsZCl7aWYo'@; put 'ZCl7Y29uc3QgaD1kLmZhY3Rvcmllcy5zbGljZSgpO2E9YS5jb25jYXQoaCl9cmV0dXJuIG5ldyBjKGEpfXN0YXRpYyBleHRlbmQoYSl7cmV0dXJue3Byb3ZpZGU6Yyx1c2VGYWN0b3J5OmQ9PmMuY3JlYXRlKGEsZHx8TFcoKSksZGVwczpbW2MsbmV3IGcwLG5ldyB6Ml1dfX1maW5kKGEpe2Nv'@; put 'bnN0IGQ9dGhpcy5mYWN0b3JpZXMuZmluZChoPT5oLnN1cHBvcnRzKGEpKTtpZihkKXJldHVybiBkO3Rocm93IG5ldyBBcig5MDEsITEpfX1yZXR1cm4gYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6TFd9KSxjfSkoKTtjb25zdCBkdWU9Z1cobnVs'@; put 'bCwiY29yZSIsW10pO2xldCBodWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKHg1KSl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7fSksY30pKCk7ZnVuY3Rp'@; put 'b24gVTYoYyl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgYz9jOm51bGwhPWMmJiJmYWxzZSIhPT1jfWxldCBzTz1udWxsO2Z1bmN0aW9uIGFwKCl7cmV0dXJuIHNPfWNsYXNzIE11ZXt9Y29uc3QgTHM9bmV3IFNpKCJEb2N1bWVudFRva2VuIik7bGV0IGFPPSgoKT0+e2NsYXNzIGN7aGlzdG9y'@; put 'eUdvKGEpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBGaShFdWUpfSxwcm92aWRlZEluOiJw'@; put 'bGF0Zm9ybSJ9KSxjfSkoKTtjb25zdCB4dWU9bmV3IFNpKCJMb2NhdGlvbiBJbml0aWFsaXplZCIpO2xldCBFdWU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGFPe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl9kb2M9RmkoTHMpLHRoaXMuX2xvY2F0aW9uPXdpbmRvdy5sb2NhdGlvbix0aGlz'@; put 'Ll9oaXN0b3J5PXdpbmRvdy5oaXN0b3J5fWdldEJhc2VIcmVmRnJvbURPTSgpe3JldHVybiBhcCgpLmdldEJhc2VIcmVmKHRoaXMuX2RvYyl9b25Qb3BTdGF0ZShhKXtjb25zdCBkPWFwKCkuZ2V0R2xvYmFsRXZlbnRUYXJnZXQodGhpcy5fZG9jLCJ3aW5kb3ciKTtyZXR1cm4gZC5hZGRFdmVu'@; put 'dExpc3RlbmVyKCJwb3BzdGF0ZSIsYSwhMSksKCk9PmQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGEpfW9uSGFzaENoYW5nZShhKXtjb25zdCBkPWFwKCkuZ2V0R2xvYmFsRXZlbnRUYXJnZXQodGhpcy5fZG9jLCJ3aW5kb3ciKTtyZXR1cm4gZC5hZGRFdmVudExpc3RlbmVyKCJo'@; put 'YXNoY2hhbmdlIixhLCExKSwoKT0+ZC5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixhKX1nZXQgaHJlZigpe3JldHVybiB0aGlzLl9sb2NhdGlvbi5ocmVmfWdldCBwcm90b2NvbCgpe3JldHVybiB0aGlzLl9sb2NhdGlvbi5wcm90b2NvbH1nZXQgaG9zdG5hbWUoKXtyZXR1cm4g'@; put 'dGhpcy5fbG9jYXRpb24uaG9zdG5hbWV9Z2V0IHBvcnQoKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24ucG9ydH1nZXQgcGF0aG5hbWUoKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24ucGF0aG5hbWV9Z2V0IHNlYXJjaCgpe3JldHVybiB0aGlzLl9sb2NhdGlvbi5zZWFyY2h9Z2V0IGhhc2goKXtyZXR1'@; put 'cm4gdGhpcy5fbG9jYXRpb24uaGFzaH1zZXQgcGF0aG5hbWUoYSl7dGhpcy5fbG9jYXRpb24ucGF0aG5hbWU9YX1wdXNoU3RhdGUoYSxkLGgpe3RoaXMuX2hpc3RvcnkucHVzaFN0YXRlKGEsZCxoKX1yZXBsYWNlU3RhdGUoYSxkLGgpe3RoaXMuX2hpc3RvcnkucmVwbGFjZVN0YXRlKGEsZCxo'@; put 'KX1mb3J3YXJkKCl7dGhpcy5faGlzdG9yeS5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX2hpc3RvcnkuYmFjaygpfWhpc3RvcnlHbyhhPTApe3RoaXMuX2hpc3RvcnkuZ28oYSl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5faGlzdG9yeS5zdGF0ZX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBjfSxwcm92aWRlZEluOiJwbGF0Zm9ybSJ9KSxjfSkoKTtmdW5jdGlvbiBsTyhjLGwpe2lmKDA9PWMubGVuZ3RoKXJldHVybiBsO2lmKDA9PWwubGVuZ3Ro'@; put 'KXJldHVybiBjO2xldCBhPTA7cmV0dXJuIGMuZW5kc1dpdGgoIi8iKSYmYSsrLGwuc3RhcnRzV2l0aCgiLyIpJiZhKyssMj09YT9jK2wuc3Vic3RyaW5nKDEpOjE9PWE/YytsOmMrIi8iK2x9ZnVuY3Rpb24gVlcoYyl7Y29uc3QgbD1jLm1hdGNoKC8jfFw/fCQvKSxhPWwmJmwuaW5kZXh8fGMu'@; put 'bGVuZ3RoO3JldHVybiBjLnNsaWNlKDAsYS0oIi8iPT09Y1thLTFdPzE6MCkpK2Muc2xpY2UoYSl9ZnVuY3Rpb24gQ2YoYyl7cmV0dXJuIGMmJiI/IiE9PWNbMF0/Ij8iK2M6Y31sZXQgazU9KCgpPT57Y2xhc3MgY3toaXN0b3J5R28oYSl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50'@; put 'ZWQiKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIEZpKGpXKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtjb25zdCBCVz1uZXcgU2koImFwcEJhc2VI'@; put 'cmVmIik7bGV0IGpXPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBrNXtjb25zdHJ1Y3RvcihhLGQpe3N1cGVyKCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1hLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLHRoaXMuX2Jhc2VIcmVmPWQ/P3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uZ2V0QmFzZUhy'@; put 'ZWZGcm9tRE9NKCk/P0ZpKExzKS5sb2NhdGlvbj8ub3JpZ2luPz8iIn1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUoYSl7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucHVz'@; put 'aCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUoYSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UoYSkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXByZXBhcmVFeHRlcm5hbFVybChhKXtyZXR1cm4gbE8odGhpcy5fYmFzZUhyZWYsYSl9'@; put 'cGF0aChhPSExKXtjb25zdCBkPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWUrQ2YodGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5zZWFyY2gpLGg9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5oYXNoO3JldHVybiBoJiZhP2Ake2R9JHtofWA6ZH1wdXNoU3RhdGUoYSxkLGgsZil7Y29uc3Qg'@; put 'Xz10aGlzLnByZXBhcmVFeHRlcm5hbFVybChoK0NmKGYpKTt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnB1c2hTdGF0ZShhLGQsXyl9cmVwbGFjZVN0YXRlKGEsZCxoLGYpe2NvbnN0IF89dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwoaCtDZihmKSk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBs'@; put 'YWNlU3RhdGUoYSxkLF8pfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRTdGF0ZSgpfWhpc3RvcnlHbyhhPTApe3Ro'@; put 'aXMuX3BsYXRmb3JtTG9jYXRpb24uaGlzdG9yeUdvPy4oYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKGFPKSxhcihCVyw4KSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3Qi'@; put 'fSksY30pKCksa3VlPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBrNXtjb25zdHJ1Y3RvcihhLGQpe3N1cGVyKCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1hLHRoaXMuX2Jhc2VIcmVmPSIiLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLG51bGwhPWQmJih0aGlzLl9iYXNlSHJlZj1kKX1uZ09u'@; put 'RGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUoYSl7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUoYSksdGhpcy5f'@; put 'cGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UoYSkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXBhdGgoYT0hMSl7bGV0IGQ9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5oYXNoO3JldHVybiBudWxsPT1kJiYoZD0iIyIpLGQubGVuZ3RoPjA/ZC5zdWJzdHJpbmcoMSk6'@; put 'ZH1wcmVwYXJlRXh0ZXJuYWxVcmwoYSl7Y29uc3QgZD1sTyh0aGlzLl9iYXNlSHJlZixhKTtyZXR1cm4gZC5sZW5ndGg+MD8iIyIrZDpkfXB1c2hTdGF0ZShhLGQsaCxmKXtsZXQgXz10aGlzLnByZXBhcmVFeHRlcm5hbFVybChoK0NmKGYpKTswPT1fLmxlbmd0aCYmKF89dGhpcy5fcGxhdGZv'@; put 'cm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wdXNoU3RhdGUoYSxkLF8pfXJlcGxhY2VTdGF0ZShhLGQsaCxmKXtsZXQgXz10aGlzLnByZXBhcmVFeHRlcm5hbFVybChoK0NmKGYpKTswPT1fLmxlbmd0aCYmKF89dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRo'@; put 'bmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUoYSxkLF8pfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2Nh'@; put 'dGlvbi5nZXRTdGF0ZSgpfWhpc3RvcnlHbyhhPTApe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGlzdG9yeUdvPy4oYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKGFPKSxhcihCVyw4KSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0'@; put 'b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksSmQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9zdWJqZWN0PW5ldyBFcix0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnM9W10sdGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fbG9jYXRpb25TdHJhdGVneT1hO2Nv'@; put 'bnN0IGQ9dGhpcy5fbG9jYXRpb25TdHJhdGVneS5nZXRCYXNlSHJlZigpO3RoaXMuX2Jhc2VQYXRoPWZ1bmN0aW9uIER1ZShjKXtpZihuZXcgUmVnRXhwKCJeKGh0dHBzPzopPy8vIikudGVzdChjKSl7Y29uc3RbLGFdPWMuc3BsaXQoL1wvXC9bXlwvXSsvKTtyZXR1cm4gYX1yZXR1cm4gY30o'@; put 'VlcoelcoZCkpKSx0aGlzLl9sb2NhdGlvblN0cmF0ZWd5Lm9uUG9wU3RhdGUoaD0+e3RoaXMuX3N1YmplY3QuZW1pdCh7dXJsOnRoaXMucGF0aCghMCkscG9wOiEwLHN0YXRlOmguc3RhdGUsdHlwZTpoLnR5cGV9KX0pfW5nT25EZXN0cm95KCl7dGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9u'@; put 'Py51bnN1YnNjcmliZSgpLHRoaXMuX3VybENoYW5nZUxpc3RlbmVycz1bXX1wYXRoKGE9ITEpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSh0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnBhdGgoYSkpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kuZ2V0U3RhdGUoKX1pc0N1'@; put 'cnJlbnRQYXRoRXF1YWxUbyhhLGQ9IiIpe3JldHVybiB0aGlzLnBhdGgoKT09dGhpcy5ub3JtYWxpemUoYStDZihkKSl9bm9ybWFsaXplKGEpe3JldHVybiBjLnN0cmlwVHJhaWxpbmdTbGFzaChmdW5jdGlvbiBUdWUoYyxsKXtpZighY3x8IWwuc3RhcnRzV2l0aChjKSlyZXR1cm4gbDtjb25z'@; put 'dCBhPWwuc3Vic3RyaW5nKGMubGVuZ3RoKTtyZXR1cm4iIj09PWF8fFsiLyIsIjsiLCI/IiwiIyJdLmluY2x1ZGVzKGFbMF0pP2E6bH0odGhpcy5fYmFzZVBhdGgselcoYSkpKX1wcmVwYXJlRXh0ZXJuYWxVcmwoYSl7cmV0dXJuIGEmJiIvIiE9PWFbMF0mJihhPSIvIithKSx0aGlzLl9sb2Nh'@; put 'dGlvblN0cmF0ZWd5LnByZXBhcmVFeHRlcm5hbFVybChhKX1nbyhhLGQ9IiIsaD1udWxsKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnB1c2hTdGF0ZShoLCIiLGEsZCksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGErQ2YoZCkpLGgpfXJl'@; put 'cGxhY2VTdGF0ZShhLGQ9IiIsaD1udWxsKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnJlcGxhY2VTdGF0ZShoLCIiLGEsZCksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGErQ2YoZCkpLGgpfWZvcndhcmQoKXt0aGlzLl9sb2NhdGlvblN0'@; put 'cmF0ZWd5LmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fbG9jYXRpb25TdHJhdGVneS5iYWNrKCl9aGlzdG9yeUdvKGE9MCl7dGhpcy5fbG9jYXRpb25TdHJhdGVneS5oaXN0b3J5R28/LihhKX1vblVybENoYW5nZShhKXtyZXR1cm4gdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzLnB1c2goYSksdGhp'@; put 'cy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9ufHwodGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uPXRoaXMuc3Vic2NyaWJlKGQ9Pnt0aGlzLl9ub3RpZnlVcmxDaGFuZ2VMaXN0ZW5lcnMoZC51cmwsZC5zdGF0ZSl9KSksKCk9Pntjb25zdCBkPXRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5pbmRl'@; put 'eE9mKGEpO3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5zcGxpY2UoZCwxKSwwPT09dGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzLmxlbmd0aCYmKHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLl91cmxDaGFuZ2VTdWJzY3JpcHRpb249bnVsbCl9fV9ub3Rp'@; put 'ZnlVcmxDaGFuZ2VMaXN0ZW5lcnMoYT0iIixkKXt0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnMuZm9yRWFjaChoPT5oKGEsZCkpfXN1YnNjcmliZShhLGQsaCl7cmV0dXJuIHRoaXMuX3N1YmplY3Quc3Vic2NyaWJlKHtuZXh0OmEsZXJyb3I6ZCxjb21wbGV0ZTpofSl9fXJldHVybiBjLm5vcm1h'@; put 'bGl6ZVF1ZXJ5UGFyYW1zPUNmLGMuam9pbldpdGhTbGFzaD1sTyxjLnN0cmlwVHJhaWxpbmdTbGFzaD1WVyxjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKGs1KSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1'@; put 'bmN0aW9uIEF1ZSgpe3JldHVybiBuZXcgSmQoYXIoazUpKX0oKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtmdW5jdGlvbiB6VyhjKXtyZXR1cm4gYy5yZXBsYWNlKC9cL2luZGV4Lmh0bWwkLywiIil9dmFyIEFjPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuRm9ybWF0PTBdPSJGb3JtYXQi'@; put 'LGNbYy5TdGFuZGFsb25lPTFdPSJTdGFuZGFsb25lIixjfShBY3x8e30pLG5hPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuTmFycm93PTBdPSJOYXJyb3ciLGNbYy5BYmJyZXZpYXRlZD0xXT0iQWJicmV2aWF0ZWQiLGNbYy5XaWRlPTJdPSJXaWRlIixjW2MuU2hvcnQ9M109IlNob3J0IixjfShu'@; put 'YXx8e30pLHkwPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuU2hvcnQ9MF09IlNob3J0IixjW2MuTWVkaXVtPTFdPSJNZWRpdW0iLGNbYy5Mb25nPTJdPSJMb25nIixjW2MuRnVsbD0zXT0iRnVsbCIsY30oeTB8fHt9KTtmdW5jdGlvbiBjTyhjLGwsYSl7Y29uc3QgZD1qbChjKSxmPXRkKFtkW3Fv'@; put 'LkRheXNGb3JtYXRdLGRbcW8uRGF5c1N0YW5kYWxvbmVdXSxsKTtyZXR1cm4gdGQoZixhKX1mdW5jdGlvbiB1TyhjLGwsYSl7Y29uc3QgZD1qbChjKSxmPXRkKFtkW3FvLk1vbnRoc0Zvcm1hdF0sZFtxby5Nb250aHNTdGFuZGFsb25lXV0sbCk7cmV0dXJuIHRkKGYsYSl9ZnVuY3Rpb24gdGQo'@; put 'YyxsKXtmb3IobGV0IGE9bDthPi0xO2EtLSlpZih0eXBlb2YgY1thXTwidSIpcmV0dXJuIGNbYV07dGhyb3cgbmV3IEVycm9yKCJMb2NhbGUgZGF0YSBBUEk6IGxvY2FsZSBkYXRhIHVuZGVmaW5lZCIpfWZ1bmN0aW9uIFhXKGMsbCl7bD1lbmNvZGVVUklDb21wb25lbnQobCk7Zm9yKGNvbnN0'@; put 'IGEgb2YgYy5zcGxpdCgiOyIpKXtjb25zdCBkPWEuaW5kZXhPZigiPSIpLFtoLGZdPS0xPT1kP1thLCIiXTpbYS5zbGljZSgwLGQpLGEuc2xpY2UoZCsxKV07aWYoaC50cmltKCk9PT1sKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZil9cmV0dXJuIG51bGx9Y29uc3QgeU89L1xzKy8sSlc9'@; put 'W107bGV0IGRjPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5faXRlcmFibGVEaWZmZXJzPWEsdGhpcy5fa2V5VmFsdWVEaWZmZXJzPWQsdGhpcy5fbmdFbD1oLHRoaXMuX3JlbmRlcmVyPWYsdGhpcy5pbml0aWFsQ2xhc3Nlcz1KVyx0aGlzLnN0YXRlTWFwPW5ldyBN'@; put 'YXB9c2V0IGtsYXNzKGEpe3RoaXMuaW5pdGlhbENsYXNzZXM9bnVsbCE9YT9hLnRyaW0oKS5zcGxpdCh5Tyk6Sld9c2V0IG5nQ2xhc3MoYSl7dGhpcy5yYXdDbGFzcz0ic3RyaW5nIj09dHlwZW9mIGE/YS50cmltKCkuc3BsaXQoeU8pOmF9bmdEb0NoZWNrKCl7Zm9yKGNvbnN0IGQgb2YgdGhp'@; put 'cy5pbml0aWFsQ2xhc3Nlcyl0aGlzLl91cGRhdGVTdGF0ZShkLCEwKTtjb25zdCBhPXRoaXMucmF3Q2xhc3M7aWYoQXJyYXkuaXNBcnJheShhKXx8YSBpbnN0YW5jZW9mIFNldClmb3IoY29uc3QgZCBvZiBhKXRoaXMuX3VwZGF0ZVN0YXRlKGQsITApO2Vsc2UgaWYobnVsbCE9YSlmb3IoY29u'@; put 'c3QgZCBvZiBPYmplY3Qua2V5cyhhKSl0aGlzLl91cGRhdGVTdGF0ZShkLCEhYVtkXSk7dGhpcy5fYXBwbHlTdGF0ZURpZmYoKX1fdXBkYXRlU3RhdGUoYSxkKXtjb25zdCBoPXRoaXMuc3RhdGVNYXAuZ2V0KGEpO3ZvaWQgMCE9PWg/KGguZW5hYmxlZCE9PWQmJihoLmNoYW5nZWQ9ITAsaC5l'@; put 'bmFibGVkPWQpLGgudG91Y2hlZD0hMCk6dGhpcy5zdGF0ZU1hcC5zZXQoYSx7ZW5hYmxlZDpkLGNoYW5nZWQ6ITAsdG91Y2hlZDohMH0pfV9hcHBseVN0YXRlRGlmZigpe2Zvcihjb25zdCBhIG9mIHRoaXMuc3RhdGVNYXApe2NvbnN0IGQ9YVswXSxoPWFbMV07aC5jaGFuZ2VkPyh0aGlzLl90'@; put 'b2dnbGVDbGFzcyhkLGguZW5hYmxlZCksaC5jaGFuZ2VkPSExKTpoLnRvdWNoZWR8fChoLmVuYWJsZWQmJnRoaXMuX3RvZ2dsZUNsYXNzKGQsITEpLHRoaXMuc3RhdGVNYXAuZGVsZXRlKGQpKSxoLnRvdWNoZWQ9ITF9fV90b2dnbGVDbGFzcyhhLGQpeyhhPWEudHJpbSgpKS5sZW5ndGg+MCYm'@; put 'YS5zcGxpdCh5TykuZm9yRWFjaChoPT57ZD90aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQsaCk6dGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LGgpfSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihh'@; put 'KXtyZXR1cm4gbmV3KGF8fGMpKHR0KHo2KSx0dChNXyksdHQoTmkpLHR0KEZvKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsIm5nQ2xhc3MiLCIiXV0saW5wdXRzOntrbGFzczpbImNsYXNzIiwia2xhc3MiXSxuZ0NsYXNzOiJuZ0NsYXNzIn0sc3RhbmRhbG9uZToh'@; put 'MH0pLGN9KSgpO2NsYXNzIGcwZXtjb25zdHJ1Y3RvcihsLGEsZCxoKXt0aGlzLiRpbXBsaWNpdD1sLHRoaXMubmdGb3JPZj1hLHRoaXMuaW5kZXg9ZCx0aGlzLmNvdW50PWh9Z2V0IGZpcnN0KCl7cmV0dXJuIDA9PT10aGlzLmluZGV4fWdldCBsYXN0KCl7cmV0dXJuIHRoaXMuaW5kZXg9PT10'@; put 'aGlzLmNvdW50LTF9Z2V0IGV2ZW4oKXtyZXR1cm4gdGhpcy5pbmRleCUyPT0wfWdldCBvZGQoKXtyZXR1cm4hdGhpcy5ldmVufX1sZXQgeHM9KCgpPT57Y2xhc3MgY3tzZXQgbmdGb3JPZihhKXt0aGlzLl9uZ0Zvck9mPWEsdGhpcy5fbmdGb3JPZkRpcnR5PSEwfXNldCBuZ0ZvclRyYWNrQnko'@; put 'YSl7dGhpcy5fdHJhY2tCeUZuPWF9Z2V0IG5nRm9yVHJhY2tCeSgpe3JldHVybiB0aGlzLl90cmFja0J5Rm59Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuX3ZpZXdDb250YWluZXI9YSx0aGlzLl90ZW1wbGF0ZT1kLHRoaXMuX2RpZmZlcnM9aCx0aGlzLl9uZ0Zvck9mPW51bGwsdGhpcy5fbmdG'@; put 'b3JPZkRpcnR5PSEwLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ0ZvclRlbXBsYXRlKGEpe2EmJih0aGlzLl90ZW1wbGF0ZT1hKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9uZ0Zvck9mRGlydHkpe3RoaXMuX25nRm9yT2ZEaXJ0eT0hMTtjb25zdCBhPXRoaXMuX25nRm9yT2Y7IXRoaXMuX2RpZmZl'@; put 'ciYmYSYmKHRoaXMuX2RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoYSkuY3JlYXRlKHRoaXMubmdGb3JUcmFja0J5KSl9aWYodGhpcy5fZGlmZmVyKXtjb25zdCBhPXRoaXMuX2RpZmZlci5kaWZmKHRoaXMuX25nRm9yT2YpO2EmJnRoaXMuX2FwcGx5Q2hhbmdlcyhhKX19X2FwcGx5Q2hhbmdl'@; put 'cyhhKXtjb25zdCBkPXRoaXMuX3ZpZXdDb250YWluZXI7YS5mb3JFYWNoT3BlcmF0aW9uKChoLGYsXyk9PntpZihudWxsPT1oLnByZXZpb3VzSW5kZXgpZC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGUsbmV3IGcwZShoLml0ZW0sdGhpcy5fbmdGb3JPZiwtMSwtMSksbnVsbD09'@; put 'PV8/dm9pZCAwOl8pO2Vsc2UgaWYobnVsbD09XylkLnJlbW92ZShudWxsPT09Zj92b2lkIDA6Zik7ZWxzZSBpZihudWxsIT09Zil7Y29uc3QgVD1kLmdldChmKTtkLm1vdmUoVCxfKSxlRyhULGgpfX0pO2ZvcihsZXQgaD0wLGY9ZC5sZW5ndGg7aDxmO2grKyl7Y29uc3QgVD1kLmdldChoKS5j'@; put 'b250ZXh0O1QuaW5kZXg9aCxULmNvdW50PWYsVC5uZ0Zvck9mPXRoaXMuX25nRm9yT2Z9YS5mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoaD0+e2VHKGQuZ2V0KGguY3VycmVudEluZGV4KSxoKX0pfXN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKGEsZCl7cmV0dXJuITB9fXJldHVybiBjLlx1'@; put 'MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGFzKSx0dCh6YSksdHQoejYpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwibmdGb3IiLCIiLCJuZ0Zvck9mIiwiIl1dLGlucHV0czp7bmdGb3JPZjoibmdGb3JPZiIsbmdGb3JUcmFja0J5OiJu'@; put 'Z0ZvclRyYWNrQnkiLG5nRm9yVGVtcGxhdGU6Im5nRm9yVGVtcGxhdGUifSxzdGFuZGFsb25lOiEwfSksY30pKCk7ZnVuY3Rpb24gZUcoYyxsKXtjLmNvbnRleHQuJGltcGxpY2l0PWwuaXRlbX1sZXQgWmk9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuX3ZpZXdDb250YWlu'@; put 'ZXI9YSx0aGlzLl9jb250ZXh0PW5ldyBtMGUsdGhpcy5fdGhlblRlbXBsYXRlUmVmPW51bGwsdGhpcy5fZWxzZVRlbXBsYXRlUmVmPW51bGwsdGhpcy5fdGhlblZpZXdSZWY9bnVsbCx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj1kfXNldCBuZ0lmKGEpe3Ro'@; put 'aXMuX2NvbnRleHQuJGltcGxpY2l0PXRoaXMuX2NvbnRleHQubmdJZj1hLHRoaXMuX3VwZGF0ZVZpZXcoKX1zZXQgbmdJZlRoZW4oYSl7dEcoIm5nSWZUaGVuIixhKSx0aGlzLl90aGVuVGVtcGxhdGVSZWY9YSx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX3VwZGF0ZVZpZXcoKX1zZXQg'@; put 'bmdJZkVsc2UoYSl7dEcoIm5nSWZFbHNlIixhKSx0aGlzLl9lbHNlVGVtcGxhdGVSZWY9YSx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3VwZGF0ZVZpZXcoKX1fdXBkYXRlVmlldygpe3RoaXMuX2NvbnRleHQuJGltcGxpY2l0P3RoaXMuX3RoZW5WaWV3UmVmfHwodGhpcy5fdmlld0Nv'@; put 'bnRhaW5lci5jbGVhcigpLHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdGhlblRlbXBsYXRlUmVmJiYodGhpcy5fdGhlblZpZXdSZWY9dGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGhlblRlbXBsYXRlUmVmLHRoaXMuX2NvbnRleHQpKSk6dGhpcy5f'@; put 'ZWxzZVZpZXdSZWZ8fCh0aGlzLl92aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5fdGhlblZpZXdSZWY9bnVsbCx0aGlzLl9lbHNlVGVtcGxhdGVSZWYmJih0aGlzLl9lbHNlVmlld1JlZj10aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9lbHNlVGVtcGxhdGVS'@; put 'ZWYsdGhpcy5fY29udGV4dCkpKX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChhLGQpe3JldHVybiEwfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChhcyksdHQoemEpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1si'@; put 'IiwibmdJZiIsIiJdXSxpbnB1dHM6e25nSWY6Im5nSWYiLG5nSWZUaGVuOiJuZ0lmVGhlbiIsbmdJZkVsc2U6Im5nSWZFbHNlIn0sc3RhbmRhbG9uZTohMH0pLGN9KSgpO2NsYXNzIG0wZXtjb25zdHJ1Y3Rvcigpe3RoaXMuJGltcGxpY2l0PW51bGwsdGhpcy5uZ0lmPW51bGx9fWZ1bmN0aW9u'@; put 'IHRHKGMsbCl7aWYobCYmIWwuY3JlYXRlRW1iZWRkZWRWaWV3KXRocm93IG5ldyBFcnJvcihgJHtjfSBtdXN0IGJlIGEgVGVtcGxhdGVSZWYsIGJ1dCByZWNlaXZlZCAnJHtxYShsKX0nLmApfWNsYXNzIHdPe2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5fdmlld0NvbnRhaW5lclJlZj1sLHRoaXMu'@; put 'X3RlbXBsYXRlUmVmPWEsdGhpcy5fY3JlYXRlZD0hMX1jcmVhdGUoKXt0aGlzLl9jcmVhdGVkPSEwLHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlUmVmKX1kZXN0cm95KCl7dGhpcy5fY3JlYXRlZD0hMSx0aGlzLl92aWV3Q29udGFpbmVy'@; put 'UmVmLmNsZWFyKCl9ZW5mb3JjZVN0YXRlKGwpe2wmJiF0aGlzLl9jcmVhdGVkP3RoaXMuY3JlYXRlKCk6IWwmJnRoaXMuX2NyZWF0ZWQmJnRoaXMuZGVzdHJveSgpfX1sZXQgbmQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2RlZmF1bHRWaWV3cz1bXSx0aGlzLl9kZWZhdWx0'@; put 'VXNlZD0hMSx0aGlzLl9jYXNlQ291bnQ9MCx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExfXNldCBuZ1N3aXRjaChhKXt0aGlzLl9uZ1N3aXRjaD1hLDA9PT10aGlzLl9jYXNlQ291bnQmJnRoaXMuX3VwZGF0ZURlZmF1bHRDYXNlcyghMCl9X2Fk'@; put 'ZENhc2UoKXtyZXR1cm4gdGhpcy5fY2FzZUNvdW50Kyt9X2FkZERlZmF1bHQoYSl7dGhpcy5fZGVmYXVsdFZpZXdzLnB1c2goYSl9X21hdGNoQ2FzZShhKXtjb25zdCBkPWE9PXRoaXMuX25nU3dpdGNoO3JldHVybiB0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPXRoaXMuX2xhc3RDYXNlc01hdGNo'@; put 'ZWR8fGQsdGhpcy5fbGFzdENhc2VDaGVja0luZGV4KyssdGhpcy5fbGFzdENhc2VDaGVja0luZGV4PT09dGhpcy5fY2FzZUNvdW50JiYodGhpcy5fdXBkYXRlRGVmYXVsdENhc2VzKCF0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkKSx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0'@; put 'Q2FzZXNNYXRjaGVkPSExKSxkfV91cGRhdGVEZWZhdWx0Q2FzZXMoYSl7aWYodGhpcy5fZGVmYXVsdFZpZXdzLmxlbmd0aD4wJiZhIT09dGhpcy5fZGVmYXVsdFVzZWQpe3RoaXMuX2RlZmF1bHRVc2VkPWE7Zm9yKGNvbnN0IGQgb2YgdGhpcy5fZGVmYXVsdFZpZXdzKWQuZW5mb3JjZVN0YXRl'@; put 'KGEpfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsIm5nU3dpdGNoIiwiIl1dLGlucHV0czp7bmdTd2l0Y2g6Im5nU3dpdGNoIn0sc3RhbmRhbG9uZTohMH0pLGN9KSgpLHRoPSgo'@; put 'KT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMubmdTd2l0Y2g9aCxoLl9hZGRDYXNlKCksdGhpcy5fdmlldz1uZXcgd08oYSxkKX1uZ0RvQ2hlY2soKXt0aGlzLl92aWV3LmVuZm9yY2VTdGF0ZSh0aGlzLm5nU3dpdGNoLl9tYXRjaENhc2UodGhpcy5uZ1N3aXRjaENhc2UpKX19'@; put 'cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYXMpLHR0KHphKSx0dChuZCw5KSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsIm5nU3dpdGNoQ2FzZSIsIiJdXSxpbnB1dHM6e25nU3dpdGNoQ2FzZToibmdTd2l0Y2hDYXNl'@; put 'In0sc3RhbmRhbG9uZTohMH0pLGN9KSgpLHJHPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuX25nRWw9YSx0aGlzLl9kaWZmZXJzPWQsdGhpcy5fcmVuZGVyZXI9aCx0aGlzLl9uZ1N0eWxlPW51bGwsdGhpcy5fZGlmZmVyPW51bGx9c2V0IG5nU3R5bGUoYSl7dGhpcy5f'@; put 'bmdTdHlsZT1hLCF0aGlzLl9kaWZmZXImJmEmJih0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKGEpLmNyZWF0ZSgpKX1uZ0RvQ2hlY2soKXtpZih0aGlzLl9kaWZmZXIpe2NvbnN0IGE9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fbmdTdHlsZSk7YSYmdGhpcy5fYXBwbHlDaGFuZ2Vz'@; put 'KGEpfX1fc2V0U3R5bGUoYSxkKXtjb25zdFtoLGZdPWEuc3BsaXQoIi4iKSxfPS0xPT09aC5pbmRleE9mKCItIik/dm9pZCAwOlkyLkRhc2hDYXNlO251bGwhPWQ/dGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LGgsZj9gJHtkfSR7Zn1gOmQsXyk6dGhp'@; put 'cy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LGgsXyl9X2FwcGx5Q2hhbmdlcyhhKXthLmZvckVhY2hSZW1vdmVkSXRlbShkPT50aGlzLl9zZXRTdHlsZShkLmtleSxudWxsKSksYS5mb3JFYWNoQWRkZWRJdGVtKGQ9PnRoaXMuX3NldFN0eWxlKGQua2V5'@; put 'LGQuY3VycmVudFZhbHVlKSksYS5mb3JFYWNoQ2hhbmdlZEl0ZW0oZD0+dGhpcy5fc2V0U3R5bGUoZC5rZXksZC5jdXJyZW50VmFsdWUpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpLHR0KE1fKSx0dChGbykpfSxjLlx1MDI3NWRpcj1D'@; put 'cih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJuZ1N0eWxlIiwiIl1dLGlucHV0czp7bmdTdHlsZToibmdTdHlsZSJ9LHN0YW5kYWxvbmU6ITB9KSxjfSkoKSxyZD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuX3ZpZXdDb250YWluZXJSZWY9YSx0aGlzLl92aWV3UmVmPW51bGws'@; put 'dGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dD1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldD1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldEluamVjdG9yPW51bGx9bmdPbkNoYW5nZXMoYSl7aWYoYS5uZ1RlbXBsYXRlT3V0bGV0fHxhLm5nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcil7Y29u'@; put 'c3QgZD10aGlzLl92aWV3Q29udGFpbmVyUmVmO2lmKHRoaXMuX3ZpZXdSZWYmJmQucmVtb3ZlKGQuaW5kZXhPZih0aGlzLl92aWV3UmVmKSksdGhpcy5uZ1RlbXBsYXRlT3V0bGV0KXtjb25zdHtuZ1RlbXBsYXRlT3V0bGV0OmgsbmdUZW1wbGF0ZU91dGxldENvbnRleHQ6ZixuZ1RlbXBsYXRl'@; put 'T3V0bGV0SW5qZWN0b3I6X309dGhpczt0aGlzLl92aWV3UmVmPWQuY3JlYXRlRW1iZWRkZWRWaWV3KGgsZixfP3tpbmplY3RvcjpffTp2b2lkIDApfWVsc2UgdGhpcy5fdmlld1JlZj1udWxsfWVsc2UgdGhpcy5fdmlld1JlZiYmYS5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCYmdGhpcy5uZ1Rl'@; put 'bXBsYXRlT3V0bGV0Q29udGV4dCYmKHRoaXMuX3ZpZXdSZWYuY29udGV4dD10aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYXMpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6'@; put 'W1siIiwibmdUZW1wbGF0ZU91dGxldCIsIiJdXSxpbnB1dHM6e25nVGVtcGxhdGVPdXRsZXRDb250ZXh0OiJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsbmdUZW1wbGF0ZU91dGxldDoibmdUZW1wbGF0ZU91dGxldCIsbmdUZW1wbGF0ZU91dGxldEluamVjdG9yOiJuZ1RlbXBsYXRlT3V0bGV0'@; put 'SW5qZWN0b3IifSxzdGFuZGFsb25lOiEwLGZlYXR1cmVzOlt2YV19KSxjfSkoKTtjbGFzcyBiMGV7Y3JlYXRlU3Vic2NyaXB0aW9uKGwsYSl7cmV0dXJuIEtoKCgpPT5sLnN1YnNjcmliZSh7bmV4dDphLGVycm9yOmQ9Pnt0aHJvdyBkfX0pKX1kaXNwb3NlKGwpe0toKCgpPT5sLnVuc3Vic2Ny'@; put 'aWJlKCkpfX1jbGFzcyB5MGV7Y3JlYXRlU3Vic2NyaXB0aW9uKGwsYSl7cmV0dXJuIGwudGhlbihhLGQ9Pnt0aHJvdyBkfSl9ZGlzcG9zZShsKXt9fWNvbnN0IHcwZT1uZXcgeTBlLEMwZT1uZXcgYjBlO2xldCB1eD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuX2xhdGVzdFZh'@; put 'bHVlPW51bGwsdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fb2JqPW51bGwsdGhpcy5fc3RyYXRlZ3k9bnVsbCx0aGlzLl9yZWY9YX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnNjcmlwdGlvbiYmdGhpcy5fZGlzcG9zZSgpLHRoaXMuX3JlZj1udWxsfXRyYW5zZm9ybShhKXtyZXR1cm4g'@; put 'dGhpcy5fb2JqP2EhPT10aGlzLl9vYmo/KHRoaXMuX2Rpc3Bvc2UoKSx0aGlzLnRyYW5zZm9ybShhKSk6dGhpcy5fbGF0ZXN0VmFsdWU6KGEmJnRoaXMuX3N1YnNjcmliZShhKSx0aGlzLl9sYXRlc3RWYWx1ZSl9X3N1YnNjcmliZShhKXt0aGlzLl9vYmo9YSx0aGlzLl9zdHJhdGVneT10aGlz'@; put 'Ll9zZWxlY3RTdHJhdGVneShhKSx0aGlzLl9zdWJzY3JpcHRpb249dGhpcy5fc3RyYXRlZ3kuY3JlYXRlU3Vic2NyaXB0aW9uKGEsZD0+dGhpcy5fdXBkYXRlTGF0ZXN0VmFsdWUoYSxkKSl9X3NlbGVjdFN0cmF0ZWd5KGEpe2lmKHY1KGEpKXJldHVybiB3MGU7aWYocE0oYSkpcmV0dXJuIEMw'@; put 'ZTt0aHJvdyBmdW5jdGlvbiBlMihjLGwpe3JldHVybiBuZXcgQXIoMjEwMCwhMSl9KCl9X2Rpc3Bvc2UoKXt0aGlzLl9zdHJhdGVneS5kaXNwb3NlKHRoaXMuX3N1YnNjcmlwdGlvbiksdGhpcy5fbGF0ZXN0VmFsdWU9bnVsbCx0aGlzLl9zdWJzY3JpcHRpb249bnVsbCx0aGlzLl9vYmo9bnVs'@; put 'bH1fdXBkYXRlTGF0ZXN0VmFsdWUoYSxkKXthPT09dGhpcy5fb2JqJiYodGhpcy5fbGF0ZXN0VmFsdWU9ZCx0aGlzLl9yZWYubWFya0ZvckNoZWNrKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChVYSwxNikpfSxjLlx1MDI3NXBpcGU9TmEo'@; put 'e25hbWU6ImFzeW5jIix0eXBlOmMscHVyZTohMSxzdGFuZGFsb25lOiEwfSksY30pKCksaUc9KCgpPT57Y2xhc3MgY3t0cmFuc2Zvcm0oYSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGEsbnVsbCwyKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMu'@; put 'XHUwMjc1cGlwZT1OYSh7bmFtZToianNvbiIsdHlwZTpjLHB1cmU6ITEsc3RhbmRhbG9uZTohMH0pLGN9KSgpLGR4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5kaWZmZXJzPWEsdGhpcy5rZXlWYWx1ZXM9W10sdGhpcy5jb21wYXJlRm49b0d9dHJhbnNmb3JtKGEsZD1vRyl7'@; put 'aWYoIWF8fCEoYSBpbnN0YW5jZW9mIE1hcCkmJiJvYmplY3QiIT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0aGlzLmRpZmZlcnx8KHRoaXMuZGlmZmVyPXRoaXMuZGlmZmVycy5maW5kKGEpLmNyZWF0ZSgpKTtjb25zdCBoPXRoaXMuZGlmZmVyLmRpZmYoYSksZj1kIT09dGhpcy5jb21wYXJlRm47'@; put 'cmV0dXJuIGgmJih0aGlzLmtleVZhbHVlcz1bXSxoLmZvckVhY2hJdGVtKF89Pnt0aGlzLmtleVZhbHVlcy5wdXNoKGZ1bmN0aW9uIE8wZShjLGwpe3JldHVybntrZXk6Yyx2YWx1ZTpsfX0oXy5rZXksXy5jdXJyZW50VmFsdWUpKX0pKSwoaHx8ZikmJih0aGlzLmtleVZhbHVlcy5zb3J0KGQp'@; put 'LHRoaXMuY29tcGFyZUZuPWQpLHRoaXMua2V5VmFsdWVzfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChNXywxNikpfSxjLlx1MDI3NXBpcGU9TmEoe25hbWU6ImtleXZhbHVlIix0eXBlOmMscHVyZTohMSxzdGFuZGFsb25lOiEwfSksY30pKCk7'@; put 'ZnVuY3Rpb24gb0coYyxsKXtjb25zdCBhPWMua2V5LGQ9bC5rZXk7aWYoYT09PWQpcmV0dXJuIDA7aWYodm9pZCAwPT09YSlyZXR1cm4gMTtpZih2b2lkIDA9PT1kKXJldHVybi0xO2lmKG51bGw9PT1hKXJldHVybiAxO2lmKG51bGw9PT1kKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2Yg'@; put 'YSYmInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBhPGQ/LTE6MTtpZigibnVtYmVyIj09dHlwZW9mIGEmJiJudW1iZXIiPT10eXBlb2YgZClyZXR1cm4gYS1kO2lmKCJib29sZWFuIj09dHlwZW9mIGEmJiJib29sZWFuIj09dHlwZW9mIGQpcmV0dXJuIGE8ZD8tMToxO2NvbnN0IGg9U3RyaW5n'@; put 'KGEpLGY9U3RyaW5nKGQpO3JldHVybiBoPT1mPzA6aDxmPy0xOjF9bGV0IG9vPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe30pLGN9KSgpO2NvbnN0'@; put 'IHNHPSJicm93c2VyIjtmdW5jdGlvbiBScyhjKXtyZXR1cm4gYz09PXNHfWZ1bmN0aW9uIGFHKGMpe3JldHVybiJzZXJ2ZXIiPT09Y31sZXQgajBlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+bmV3'@; put 'IHowZShhcihMcyksd2luZG93KX0pLGN9KSgpO2NsYXNzIHowZXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuZG9jdW1lbnQ9bCx0aGlzLndpbmRvdz1hLHRoaXMub2Zmc2V0PSgpPT5bMCwwXX1zZXRPZmZzZXQobCl7dGhpcy5vZmZzZXQ9QXJyYXkuaXNBcnJheShsKT8oKT0+bDpsfWdldFNjcm9s'@; put 'bFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKT9bdGhpcy53aW5kb3cucGFnZVhPZmZzZXQsdGhpcy53aW5kb3cucGFnZVlPZmZzZXRdOlswLDBdfXNjcm9sbFRvUG9zaXRpb24obCl7dGhpcy5zdXBwb3J0c1Njcm9sbGluZygpJiZ0aGlzLndpbmRvdy5zY3JvbGxU'@; put 'byhsWzBdLGxbMV0pfXNjcm9sbFRvQW5jaG9yKGwpe2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuO2NvbnN0IGE9ZnVuY3Rpb24gVTBlKGMsbCl7Y29uc3QgYT1jLmdldEVsZW1lbnRCeUlkKGwpfHxjLmdldEVsZW1lbnRzQnlOYW1lKGwpWzBdO2lmKGEpcmV0dXJuIGE7aWYo'@; put 'ImZ1bmN0aW9uIj09dHlwZW9mIGMuY3JlYXRlVHJlZVdhbGtlciYmYy5ib2R5JiYiZnVuY3Rpb24iPT10eXBlb2YgYy5ib2R5LmF0dGFjaFNoYWRvdyl7Y29uc3QgZD1jLmNyZWF0ZVRyZWVXYWxrZXIoYy5ib2R5LE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UKTtsZXQgaD1kLmN1cnJlbnROb2Rl'@; put 'O2Zvcig7aDspe2NvbnN0IGY9aC5zaGFkb3dSb290O2lmKGYpe2NvbnN0IF89Zi5nZXRFbGVtZW50QnlJZChsKXx8Zi5xdWVyeVNlbGVjdG9yKGBbbmFtZT0iJHtsfSJdYCk7aWYoXylyZXR1cm4gX31oPWQubmV4dE5vZGUoKX19cmV0dXJuIG51bGx9KHRoaXMuZG9jdW1lbnQsbCk7YSYmKHRo'@; put 'aXMuc2Nyb2xsVG9FbGVtZW50KGEpLGEuZm9jdXMoKSl9c2V0SGlzdG9yeVNjcm9sbFJlc3RvcmF0aW9uKGwpe2lmKHRoaXMuc3VwcG9ydFNjcm9sbFJlc3RvcmF0aW9uKCkpe2NvbnN0IGE9dGhpcy53aW5kb3cuaGlzdG9yeTthJiZhLnNjcm9sbFJlc3RvcmF0aW9uJiYoYS5zY3JvbGxSZXN0'@; put 'b3JhdGlvbj1sKX19c2Nyb2xsVG9FbGVtZW50KGwpe2NvbnN0IGE9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPWEubGVmdCt0aGlzLndpbmRvdy5wYWdlWE9mZnNldCxoPWEudG9wK3RoaXMud2luZG93LnBhZ2VZT2Zmc2V0LGY9dGhpcy5vZmZzZXQoKTt0aGlzLndpbmRvdy5zY3JvbGxU'@; put 'byhkLWZbMF0saC1mWzFdKX1zdXBwb3J0U2Nyb2xsUmVzdG9yYXRpb24oKXt0cnl7aWYoIXRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKSlyZXR1cm4hMTtjb25zdCBsPWxHKHRoaXMud2luZG93Lmhpc3RvcnkpfHxsRyhPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcy53aW5kb3cuaGlzdG9yeSkp'@; put 'O3JldHVybiEoIWx8fCFsLndyaXRhYmxlJiYhbC5zZXQpfWNhdGNoe3JldHVybiExfX1zdXBwb3J0c1Njcm9sbGluZygpe3RyeXtyZXR1cm4hIXRoaXMud2luZG93JiYhIXRoaXMud2luZG93LnNjcm9sbFRvJiYicGFnZVhPZmZzZXQiaW4gdGhpcy53aW5kb3d9Y2F0Y2h7cmV0dXJuITF9fX1m'@; put 'dW5jdGlvbiBsRyhjKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJzY3JvbGxSZXN0b3JhdGlvbiIpfWNsYXNzIGNHe31jbGFzcyBoMWUgZXh0ZW5kcyBNdWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc3VwcG9ydHNET01FdmVudHM9'@; put 'ITB9fWNsYXNzIEVPIGV4dGVuZHMgaDFle3N0YXRpYyBtYWtlQ3VycmVudCgpeyFmdW5jdGlvbiBTdWUoYyl7c098fChzTz1jKX0obmV3IEVPKX1vbkFuZENhbmNlbChsLGEsZCl7cmV0dXJuIGwuYWRkRXZlbnRMaXN0ZW5lcihhLGQpLCgpPT57bC5yZW1vdmVFdmVudExpc3RlbmVyKGEsZCl9'@; put 'fWRpc3BhdGNoRXZlbnQobCxhKXtsLmRpc3BhdGNoRXZlbnQoYSl9cmVtb3ZlKGwpe2wucGFyZW50Tm9kZSYmbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpfWNyZWF0ZUVsZW1lbnQobCxhKXtyZXR1cm4oYT1hfHx0aGlzLmdldERlZmF1bHREb2N1bWVudCgpKS5jcmVhdGVFbGVtZW50KGwp'@; put 'fWNyZWF0ZUh0bWxEb2N1bWVudCgpe3JldHVybiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoImZha2VUaXRsZSIpfWdldERlZmF1bHREb2N1bWVudCgpe3JldHVybiBkb2N1bWVudH1pc0VsZW1lbnROb2RlKGwpe3JldHVybiBsLm5vZGVUeXBlPT09Tm9kZS5F'@; put 'TEVNRU5UX05PREV9aXNTaGFkb3dSb290KGwpe3JldHVybiBsIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudH1nZXRHbG9iYWxFdmVudFRhcmdldChsLGEpe3JldHVybiJ3aW5kb3ciPT09YT93aW5kb3c6ImRvY3VtZW50Ij09PWE/bDoiYm9keSI9PT1hP2wuYm9keTpudWxsfWdldEJhc2VI'@; put 'cmVmKGwpe2NvbnN0IGE9ZnVuY3Rpb24gZjFlKCl7cmV0dXJuIFRfPVRffHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJiYXNlIiksVF8/VF8uZ2V0QXR0cmlidXRlKCJocmVmIik6bnVsbH0oKTtyZXR1cm4gbnVsbD09YT9udWxsOmZ1bmN0aW9uIHAxZShjKXtweD1weHx8ZG9jdW1lbnQuY3Jl'@; put 'YXRlRWxlbWVudCgiYSIpLHB4LnNldEF0dHJpYnV0ZSgiaHJlZiIsYyk7Y29uc3QgbD1weC5wYXRobmFtZTtyZXR1cm4iLyI9PT1sLmNoYXJBdCgwKT9sOmAvJHtsfWB9KGEpfXJlc2V0QmFzZUVsZW1lbnQoKXtUXz1udWxsfWdldFVzZXJBZ2VudCgpe3JldHVybiB3aW5kb3cubmF2aWdhdG9y'@; put 'LnVzZXJBZ2VudH1nZXRDb29raWUobCl7cmV0dXJuIFhXKGRvY3VtZW50LmNvb2tpZSxsKX19bGV0IHB4LFRfPW51bGwsbTFlPSgoKT0+e2NsYXNzIGN7YnVpbGQoKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhh'@; put 'fHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKTtjb25zdCBrTz1uZXcgU2koIkV2ZW50TWFuYWdlclBsdWdpbnMiKTtsZXQgcEc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuX3pvbmU9ZCx0aGlzLl9ldmVudE5hbWVU'@; put 'b1BsdWdpbj1uZXcgTWFwLGEuZm9yRWFjaChoPT57aC5tYW5hZ2VyPXRoaXN9KSx0aGlzLl9wbHVnaW5zPWEuc2xpY2UoKS5yZXZlcnNlKCl9YWRkRXZlbnRMaXN0ZW5lcihhLGQsaCl7cmV0dXJuIHRoaXMuX2ZpbmRQbHVnaW5Gb3IoZCkuYWRkRXZlbnRMaXN0ZW5lcihhLGQsaCl9Z2V0Wm9u'@; put 'ZSgpe3JldHVybiB0aGlzLl96b25lfV9maW5kUGx1Z2luRm9yKGEpe2xldCBkPXRoaXMuX2V2ZW50TmFtZVRvUGx1Z2luLmdldChhKTtpZihkKXJldHVybiBkO2lmKGQ9dGhpcy5fcGx1Z2lucy5maW5kKGY9PmYuc3VwcG9ydHMoYSkpLCFkKXRocm93IG5ldyBBcig1MTAxLCExKTtyZXR1cm4g'@; put 'dGhpcy5fZXZlbnROYW1lVG9QbHVnaW4uc2V0KGEsZCksZH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoa08pLGFyKE5vKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3MgZ0d7Y29u'@; put 'c3RydWN0b3IobCl7dGhpcy5fZG9jPWx9fWNvbnN0IEFPPSJuZy1hcHAtaWQiO2xldCBtRz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGY9e30pe3RoaXMuZG9jPWEsdGhpcy5hcHBJZD1kLHRoaXMubm9uY2U9aCx0aGlzLnBsYXRmb3JtSWQ9Zix0aGlzLnN0eWxlUmVmPW5ldyBN'@; put 'YXAsdGhpcy5ob3N0Tm9kZXM9bmV3IFNldCx0aGlzLnN0eWxlTm9kZXNJbkRPTT10aGlzLmNvbGxlY3RTZXJ2ZXJSZW5kZXJlZFN0eWxlcygpLHRoaXMucGxhdGZvcm1Jc1NlcnZlcj1hRyhmKSx0aGlzLnJlc2V0SG9zdE5vZGVzKCl9YWRkU3R5bGVzKGEpe2Zvcihjb25zdCBkIG9mIGEpMT09'@; put 'PXRoaXMuY2hhbmdlVXNhZ2VDb3VudChkLDEpJiZ0aGlzLm9uU3R5bGVBZGRlZChkKX1yZW1vdmVTdHlsZXMoYSl7Zm9yKGNvbnN0IGQgb2YgYSl0aGlzLmNoYW5nZVVzYWdlQ291bnQoZCwtMSk8PTAmJnRoaXMub25TdHlsZVJlbW92ZWQoZCl9bmdPbkRlc3Ryb3koKXtjb25zdCBhPXRoaXMu'@; put 'c3R5bGVOb2Rlc0luRE9NO2EmJihhLmZvckVhY2goZD0+ZC5yZW1vdmUoKSksYS5jbGVhcigpKTtmb3IoY29uc3QgZCBvZiB0aGlzLmdldEFsbFN0eWxlcygpKXRoaXMub25TdHlsZVJlbW92ZWQoZCk7dGhpcy5yZXNldEhvc3ROb2RlcygpfWFkZEhvc3QoYSl7dGhpcy5ob3N0Tm9kZXMuYWRk'@; put 'KGEpO2Zvcihjb25zdCBkIG9mIHRoaXMuZ2V0QWxsU3R5bGVzKCkpdGhpcy5hZGRTdHlsZVRvSG9zdChhLGQpfXJlbW92ZUhvc3QoYSl7dGhpcy5ob3N0Tm9kZXMuZGVsZXRlKGEpfWdldEFsbFN0eWxlcygpe3JldHVybiB0aGlzLnN0eWxlUmVmLmtleXMoKX1vblN0eWxlQWRkZWQoYSl7Zm9y'@; put 'KGNvbnN0IGQgb2YgdGhpcy5ob3N0Tm9kZXMpdGhpcy5hZGRTdHlsZVRvSG9zdChkLGEpfW9uU3R5bGVSZW1vdmVkKGEpe2NvbnN0IGQ9dGhpcy5zdHlsZVJlZjtkLmdldChhKT8uZWxlbWVudHM/LmZvckVhY2goaD0+aC5yZW1vdmUoKSksZC5kZWxldGUoYSl9Y29sbGVjdFNlcnZlclJlbmRl'@; put 'cmVkU3R5bGVzKCl7Y29uc3QgYT10aGlzLmRvYy5oZWFkPy5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZVske0FPfT0iJHt0aGlzLmFwcElkfSJdYCk7aWYoYT8ubGVuZ3RoKXtjb25zdCBkPW5ldyBNYXA7cmV0dXJuIGEuZm9yRWFjaChoPT57bnVsbCE9aC50ZXh0Q29udGVudCYmZC5zZXQoaC50'@; put 'ZXh0Q29udGVudCxoKX0pLGR9cmV0dXJuIG51bGx9Y2hhbmdlVXNhZ2VDb3VudChhLGQpe2NvbnN0IGg9dGhpcy5zdHlsZVJlZjtpZihoLmhhcyhhKSl7Y29uc3QgZj1oLmdldChhKTtyZXR1cm4gZi51c2FnZSs9ZCxmLnVzYWdlfXJldHVybiBoLnNldChhLHt1c2FnZTpkLGVsZW1lbnRzOltd'@; put 'fSksZH1nZXRTdHlsZUVsZW1lbnQoYSxkKXtjb25zdCBoPXRoaXMuc3R5bGVOb2Rlc0luRE9NLGY9aD8uZ2V0KGQpO2lmKGY/LnBhcmVudE5vZGU9PT1hKXJldHVybiBoLmRlbGV0ZShkKSxmLnJlbW92ZUF0dHJpYnV0ZShBTyksZjt7Y29uc3QgXz10aGlzLmRvYy5jcmVhdGVFbGVtZW50KCJz'@; put 'dHlsZSIpO3JldHVybiB0aGlzLm5vbmNlJiZfLnNldEF0dHJpYnV0ZSgibm9uY2UiLHRoaXMubm9uY2UpLF8udGV4dENvbnRlbnQ9ZCx0aGlzLnBsYXRmb3JtSXNTZXJ2ZXImJl8uc2V0QXR0cmlidXRlKEFPLHRoaXMuYXBwSWQpLF99fWFkZFN0eWxlVG9Ib3N0KGEsZCl7Y29uc3QgaD10aGlz'@; put 'LmdldFN0eWxlRWxlbWVudChhLGQpO2EuYXBwZW5kQ2hpbGQoaCk7Y29uc3QgZj10aGlzLnN0eWxlUmVmLF89Zi5nZXQoZCk/LmVsZW1lbnRzO18/Xy5wdXNoKGgpOmYuc2V0KGQse2VsZW1lbnRzOltoXSx1c2FnZToxfSl9cmVzZXRIb3N0Tm9kZXMoKXtjb25zdCBhPXRoaXMuaG9zdE5vZGVz'@; put 'O2EuY2xlYXIoKSxhLmFkZCh0aGlzLmRvYy5oZWFkKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoTHMpLGFyKGE2KSxhcihsNiw4KSxhcihHcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgp'@; put 'O2NvbnN0IFRPPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxu'@; put 'czoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aE1MLyJ9LERPPS8lQ09NUCUvZyx5MWU9bmV3IFNpKCJSZW1vdmVTdHlsZXNPbkNvbXBEZXN0cm95Iix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+ITF9KTtmdW5j'@; put 'dGlvbiBfRyhjLGwpe3JldHVybiBsLm1hcChhPT5hLnJlcGxhY2UoRE8sYykpfWxldCBJTz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyxULFcsaWU9bnVsbCl7dGhpcy5ldmVudE1hbmFnZXI9YSx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9ZCx0aGlzLmFwcElkPWgsdGhpcy5y'@; put 'ZW1vdmVTdHlsZXNPbkNvbXBEZXN0cm95PWYsdGhpcy5kb2M9Xyx0aGlzLnBsYXRmb3JtSWQ9VCx0aGlzLm5nWm9uZT1XLHRoaXMubm9uY2U9aWUsdGhpcy5yZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5wbGF0Zm9ybUlzU2VydmVyPWFHKFQpLHRoaXMuZGVmYXVsdFJlbmRlcmVyPW5l'@; put 'dyBMTyhhLF8sVyx0aGlzLnBsYXRmb3JtSXNTZXJ2ZXIpfWNyZWF0ZVJlbmRlcmVyKGEsZCl7aWYoIWF8fCFkKXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjt0aGlzLnBsYXRmb3JtSXNTZXJ2ZXImJmQuZW5jYXBzdWxhdGlvbj09PVBjLlNoYWRvd0RvbSYmKGQ9ey4uLmQsZW5jYXBzdWxh'@; put 'dGlvbjpQYy5FbXVsYXRlZH0pO2NvbnN0IGg9dGhpcy5nZXRPckNyZWF0ZVJlbmRlcmVyKGEsZCk7cmV0dXJuIGggaW5zdGFuY2VvZiB5Rz9oLmFwcGx5VG9Ib3N0KGEpOmggaW5zdGFuY2VvZiBSTyYmaC5hcHBseVN0eWxlcygpLGh9Z2V0T3JDcmVhdGVSZW5kZXJlcihhLGQpe2NvbnN0IGg9'@; put 'dGhpcy5yZW5kZXJlckJ5Q29tcElkO2xldCBmPWguZ2V0KGQuaWQpO2lmKCFmKXtjb25zdCBfPXRoaXMuZG9jLFQ9dGhpcy5uZ1pvbmUsVz10aGlzLmV2ZW50TWFuYWdlcixpZT10aGlzLnNoYXJlZFN0eWxlc0hvc3QscGU9dGhpcy5yZW1vdmVTdHlsZXNPbkNvbXBEZXN0cm95LHdlPXRoaXMu'@; put 'cGxhdGZvcm1Jc1NlcnZlcjtzd2l0Y2goZC5lbmNhcHN1bGF0aW9uKXtjYXNlIFBjLkVtdWxhdGVkOmY9bmV3IHlHKFcsaWUsZCx0aGlzLmFwcElkLHBlLF8sVCx3ZSk7YnJlYWs7Y2FzZSBQYy5TaGFkb3dEb206cmV0dXJuIG5ldyBNMWUoVyxpZSxhLGQsXyxULHRoaXMubm9uY2Usd2UpO2Rl'@; put 'ZmF1bHQ6Zj1uZXcgUk8oVyxpZSxkLHBlLF8sVCx3ZSl9aC5zZXQoZC5pZCxmKX1yZXR1cm4gZn1uZ09uRGVzdHJveSgpe3RoaXMucmVuZGVyZXJCeUNvbXBJZC5jbGVhcigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihwRyksYXIobUcpLGFy'@; put 'KGE2KSxhcih5MWUpLGFyKExzKSxhcihHcyksYXIoTm8pLGFyKGw2KSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3MgTE97Y29uc3RydWN0b3IobCxhLGQsaCl7dGhpcy5ldmVudE1hbmFnZXI9bCx0aGlzLmRvYz1hLHRoaXMubmda'@; put 'b25lPWQsdGhpcy5wbGF0Zm9ybUlzU2VydmVyPWgsdGhpcy5kYXRhPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5kZXN0cm95Tm9kZT1udWxsfWRlc3Ryb3koKXt9Y3JlYXRlRWxlbWVudChsLGEpe3JldHVybiBhP3RoaXMuZG9jLmNyZWF0ZUVsZW1lbnROUyhUT1thXXx8YSxsKTp0aGlzLmRv'@; put 'Yy5jcmVhdGVFbGVtZW50KGwpfWNyZWF0ZUNvbW1lbnQobCl7cmV0dXJuIHRoaXMuZG9jLmNyZWF0ZUNvbW1lbnQobCl9Y3JlYXRlVGV4dChsKXtyZXR1cm4gdGhpcy5kb2MuY3JlYXRlVGV4dE5vZGUobCl9YXBwZW5kQ2hpbGQobCxhKXsoYkcobCk/bC5jb250ZW50OmwpLmFwcGVuZENoaWxk'@; put 'KGEpfWluc2VydEJlZm9yZShsLGEsZCl7bCYmKGJHKGwpP2wuY29udGVudDpsKS5pbnNlcnRCZWZvcmUoYSxkKX1yZW1vdmVDaGlsZChsLGEpe2wmJmwucmVtb3ZlQ2hpbGQoYSl9c2VsZWN0Um9vdEVsZW1lbnQobCxhKXtsZXQgZD0ic3RyaW5nIj09dHlwZW9mIGw/dGhpcy5kb2MucXVlcnlT'@; put 'ZWxlY3RvcihsKTpsO2lmKCFkKXRocm93IG5ldyBBcigtNTEwNCwhMSk7cmV0dXJuIGF8fChkLnRleHRDb250ZW50PSIiKSxkfXBhcmVudE5vZGUobCl7cmV0dXJuIGwucGFyZW50Tm9kZX1uZXh0U2libGluZyhsKXtyZXR1cm4gbC5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUobCxhLGQsaCl7'@; put 'aWYoaCl7YT1oKyI6IithO2NvbnN0IGY9VE9baF07Zj9sLnNldEF0dHJpYnV0ZU5TKGYsYSxkKTpsLnNldEF0dHJpYnV0ZShhLGQpfWVsc2UgbC5zZXRBdHRyaWJ1dGUoYSxkKX1yZW1vdmVBdHRyaWJ1dGUobCxhLGQpe2lmKGQpe2NvbnN0IGg9VE9bZF07aD9sLnJlbW92ZUF0dHJpYnV0ZU5T'@; put 'KGgsYSk6bC5yZW1vdmVBdHRyaWJ1dGUoYCR7ZH06JHthfWApfWVsc2UgbC5yZW1vdmVBdHRyaWJ1dGUoYSl9YWRkQ2xhc3MobCxhKXtsLmNsYXNzTGlzdC5hZGQoYSl9cmVtb3ZlQ2xhc3MobCxhKXtsLmNsYXNzTGlzdC5yZW1vdmUoYSl9c2V0U3R5bGUobCxhLGQsaCl7aCYoWTIuRGFzaENh'@; put 'c2V8WTIuSW1wb3J0YW50KT9sLnN0eWxlLnNldFByb3BlcnR5KGEsZCxoJlkyLkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6bC5zdHlsZVthXT1kfXJlbW92ZVN0eWxlKGwsYSxkKXtkJlkyLkRhc2hDYXNlP2wuc3R5bGUucmVtb3ZlUHJvcGVydHkoYSk6bC5zdHlsZVthXT0iIn1zZXRQcm9w'@; put 'ZXJ0eShsLGEsZCl7bFthXT1kfXNldFZhbHVlKGwsYSl7bC5ub2RlVmFsdWU9YX1saXN0ZW4obCxhLGQpe2lmKCJzdHJpbmciPT10eXBlb2YgbCYmIShsPWFwKCkuZ2V0R2xvYmFsRXZlbnRUYXJnZXQodGhpcy5kb2MsbCkpKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdGFy'@; put 'Z2V0ICR7bH0gZm9yIGV2ZW50ICR7YX1gKTtyZXR1cm4gdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLGEsdGhpcy5kZWNvcmF0ZVByZXZlbnREZWZhdWx0KGQpKX1kZWNvcmF0ZVByZXZlbnREZWZhdWx0KGwpe3JldHVybiBhPT57aWYoIl9fbmdVbndyYXBfXyI9PT1hKXJl'@; put 'dHVybiBsOyExPT09KHRoaXMucGxhdGZvcm1Jc1NlcnZlcj90aGlzLm5nWm9uZS5ydW5HdWFyZGVkKCgpPT5sKGEpKTpsKGEpKSYmYS5wcmV2ZW50RGVmYXVsdCgpfX19ZnVuY3Rpb24gYkcoYyl7cmV0dXJuIlRFTVBMQVRFIj09PWMudGFnTmFtZSYmdm9pZCAwIT09Yy5jb250ZW50fWNsYXNz'@; put 'IE0xZSBleHRlbmRzIExPe2NvbnN0cnVjdG9yKGwsYSxkLGgsZixfLFQsVyl7c3VwZXIobCxmLF8sVyksdGhpcy5zaGFyZWRTdHlsZXNIb3N0PWEsdGhpcy5ob3N0RWw9ZCx0aGlzLnNoYWRvd1Jvb3Q9ZC5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSksdGhpcy5zaGFyZWRTdHlsZXNIb3N0'@; put 'LmFkZEhvc3QodGhpcy5zaGFkb3dSb290KTtjb25zdCBpZT1fRyhoLmlkLGguc3R5bGVzKTtmb3IoY29uc3QgcGUgb2YgaWUpe2NvbnN0IHdlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7VCYmd2Uuc2V0QXR0cmlidXRlKCJub25jZSIsVCksd2UudGV4dENvbnRlbnQ9cGUsdGhp'@; put 'cy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHdlKX19bm9kZU9yU2hhZG93Um9vdChsKXtyZXR1cm4gbD09PXRoaXMuaG9zdEVsP3RoaXMuc2hhZG93Um9vdDpsfWFwcGVuZENoaWxkKGwsYSl7cmV0dXJuIHN1cGVyLmFwcGVuZENoaWxkKHRoaXMubm9kZU9yU2hhZG93Um9vdChsKSxhKX1pbnNl'@; put 'cnRCZWZvcmUobCxhLGQpe3JldHVybiBzdXBlci5pbnNlcnRCZWZvcmUodGhpcy5ub2RlT3JTaGFkb3dSb290KGwpLGEsZCl9cmVtb3ZlQ2hpbGQobCxhKXtyZXR1cm4gc3VwZXIucmVtb3ZlQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290KGwpLGEpfXBhcmVudE5vZGUobCl7cmV0dXJuIHRo'@; put 'aXMubm9kZU9yU2hhZG93Um9vdChzdXBlci5wYXJlbnROb2RlKHRoaXMubm9kZU9yU2hhZG93Um9vdChsKSkpfWRlc3Ryb3koKXt0aGlzLnNoYXJlZFN0eWxlc0hvc3QucmVtb3ZlSG9zdCh0aGlzLnNoYWRvd1Jvb3QpfX1jbGFzcyBSTyBleHRlbmRzIExPe2NvbnN0cnVjdG9yKGwsYSxkLGgs'@; put 'ZixfLFQsVyl7c3VwZXIobCxmLF8sVCksdGhpcy5zaGFyZWRTdHlsZXNIb3N0PWEsdGhpcy5yZW1vdmVTdHlsZXNPbkNvbXBEZXN0cm95PWgsdGhpcy5zdHlsZXM9Vz9fRyhXLGQuc3R5bGVzKTpkLnN0eWxlc31hcHBseVN0eWxlcygpe3RoaXMuc2hhcmVkU3R5bGVzSG9zdC5hZGRTdHlsZXMo'@; put 'dGhpcy5zdHlsZXMpfWRlc3Ryb3koKXt0aGlzLnJlbW92ZVN0eWxlc09uQ29tcERlc3Ryb3kmJnRoaXMuc2hhcmVkU3R5bGVzSG9zdC5yZW1vdmVTdHlsZXModGhpcy5zdHlsZXMpfX1jbGFzcyB5RyBleHRlbmRzIFJPe2NvbnN0cnVjdG9yKGwsYSxkLGgsZixfLFQsVyl7Y29uc3QgaWU9aCsi'@; put 'LSIrZC5pZDtzdXBlcihsLGEsZCxmLF8sVCxXLGllKSx0aGlzLmNvbnRlbnRBdHRyPWZ1bmN0aW9uIHcxZShjKXtyZXR1cm4iX25nY29udGVudC0lQ09NUCUiLnJlcGxhY2UoRE8sYyl9KGllKSx0aGlzLmhvc3RBdHRyPWZ1bmN0aW9uIEMxZShjKXtyZXR1cm4iX25naG9zdC0lQ09NUCUiLnJl'@; put 'cGxhY2UoRE8sYyl9KGllKX1hcHBseVRvSG9zdChsKXt0aGlzLmFwcGx5U3R5bGVzKCksdGhpcy5zZXRBdHRyaWJ1dGUobCx0aGlzLmhvc3RBdHRyLCIiKX1jcmVhdGVFbGVtZW50KGwsYSl7Y29uc3QgZD1zdXBlci5jcmVhdGVFbGVtZW50KGwsYSk7cmV0dXJuIHN1cGVyLnNldEF0dHJpYnV0'@; put 'ZShkLHRoaXMuY29udGVudEF0dHIsIiIpLGR9fWxldCB4MWU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGdHe2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXN1cHBvcnRzKGEpe3JldHVybiEwfWFkZEV2ZW50TGlzdGVuZXIoYSxkLGgpe3JldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoZCxoLCExKSwo'@; put 'KT0+dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGEsZCxoKX1yZW1vdmVFdmVudExpc3RlbmVyKGEsZCxoKXtyZXR1cm4gYS5yZW1vdmVFdmVudExpc3RlbmVyKGQsaCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKExzKSl9LGMuXHUwMjc1cHJv'@; put 'dj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y29uc3Qgd0c9WyJhbHQiLCJjb250cm9sIiwibWV0YSIsInNoaWZ0Il0sRTFlPXsiXGIiOiJCYWNrc3BhY2UiLCJcdCI6IlRhYiIsIlx4N2YiOiJEZWxldGUiLCJceDFiIjoiRXNjYXBlIixEZWw6IkRlbGV0ZSIsRXNj'@; put 'OiJFc2NhcGUiLExlZnQ6IkFycm93TGVmdCIsUmlnaHQ6IkFycm93UmlnaHQiLFVwOiJBcnJvd1VwIixEb3duOiJBcnJvd0Rvd24iLE1lbnU6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLFdpbjoiT1MifSxrMWU9e2FsdDpjPT5jLmFsdEtleSxjb250cm9sOmM9PmMuY3RybEtl'@; put 'eSxtZXRhOmM9PmMubWV0YUtleSxzaGlmdDpjPT5jLnNoaWZ0S2V5fTtsZXQgQTFlPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBnR3tjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1zdXBwb3J0cyhhKXtyZXR1cm4gbnVsbCE9Yy5wYXJzZUV2ZW50TmFtZShhKX1hZGRFdmVudExpc3RlbmVyKGEsZCxo'@; put 'KXtjb25zdCBmPWMucGFyc2VFdmVudE5hbWUoZCksXz1jLmV2ZW50Q2FsbGJhY2soZi5mdWxsS2V5LGgsdGhpcy5tYW5hZ2VyLmdldFpvbmUoKSk7cmV0dXJuIHRoaXMubWFuYWdlci5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmFwKCkub25BbmRDYW5jZWwoYSxmLmRvbUV2ZW50'@; put 'TmFtZSxfKSl9c3RhdGljIHBhcnNlRXZlbnROYW1lKGEpe2NvbnN0IGQ9YS50b0xvd2VyQ2FzZSgpLnNwbGl0KCIuIiksaD1kLnNoaWZ0KCk7aWYoMD09PWQubGVuZ3RofHwia2V5ZG93biIhPT1oJiYia2V5dXAiIT09aClyZXR1cm4gbnVsbDtjb25zdCBmPWMuX25vcm1hbGl6ZUtleShkLnBv'@; put 'cCgpKTtsZXQgXz0iIixUPWQuaW5kZXhPZigiY29kZSIpO2lmKFQ+LTEmJihkLnNwbGljZShULDEpLF89ImNvZGUuIiksd0cuZm9yRWFjaChpZT0+e2NvbnN0IHBlPWQuaW5kZXhPZihpZSk7cGU+LTEmJihkLnNwbGljZShwZSwxKSxfKz1pZSsiLiIpfSksXys9ZiwwIT1kLmxlbmd0aHx8MD09'@; put 'PWYubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IFc9e307cmV0dXJuIFcuZG9tRXZlbnROYW1lPWgsVy5mdWxsS2V5PV8sV31zdGF0aWMgbWF0Y2hFdmVudEZ1bGxLZXlDb2RlKGEsZCl7bGV0IGg9RTFlW2Eua2V5XXx8YS5rZXksZj0iIjtyZXR1cm4gZC5pbmRleE9mKCJjb2RlLiIpPi0xJiYo'@; put 'aD1hLmNvZGUsZj0iY29kZS4iKSwhKG51bGw9PWh8fCFoKSYmKGg9aC50b0xvd2VyQ2FzZSgpLCIgIj09PWg/aD0ic3BhY2UiOiIuIj09PWgmJihoPSJkb3QiKSx3Ry5mb3JFYWNoKF89PntfIT09aCYmKDAsazFlW19dKShhKSYmKGYrPV8rIi4iKX0pLGYrPWgsZj09PWQpfXN0YXRpYyBldmVu'@; put 'dENhbGxiYWNrKGEsZCxoKXtyZXR1cm4gZj0+e2MubWF0Y2hFdmVudEZ1bGxLZXlDb2RlKGYsYSkmJmgucnVuR3VhcmRlZCgoKT0+ZChmKSl9fXN0YXRpYyBfbm9ybWFsaXplS2V5KGEpe3JldHVybiJlc2MiPT09YT8iZXNjYXBlIjphfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7'@; put 'cmV0dXJuIG5ldyhhfHxjKShhcihMcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2NvbnN0IFNHPVt7cHJvdmlkZTpHcyx1c2VWYWx1ZTpzR30se3Byb3ZpZGU6ZVMsdXNlVmFsdWU6ZnVuY3Rpb24gVDFlKCl7RU8ubWFrZUN1cnJlbnQo'@; put 'KX0sbXVsdGk6ITB9LHtwcm92aWRlOkxzLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gSTFlKCl7cmV0dXJuIGZ1bmN0aW9uIEZDKGMpe0c5PWN9KGRvY3VtZW50KSxkb2N1bWVudH0sZGVwczpbXX1dLEwxZT1nVyhkdWUsImJyb3dzZXIiLFNHKSxSMWU9bmV3IFNpKCIiKSxNRz1be3Byb3ZpZGU6S00s'@; put 'dXNlQ2xhc3M6Y2xhc3MgZzFle2FkZFRvV2luZG93KGwpe09pLmdldEFuZ3VsYXJUZXN0YWJpbGl0eT0oZCxoPSEwKT0+e2NvbnN0IGY9bC5maW5kVGVzdGFiaWxpdHlJblRyZWUoZCxoKTtpZihudWxsPT1mKXRocm93IG5ldyBBcig1MTAzLCExKTtyZXR1cm4gZn0sT2kuZ2V0QWxsQW5ndWxh'@; put 'clRlc3RhYmlsaXRpZXM9KCk9PmwuZ2V0QWxsVGVzdGFiaWxpdGllcygpLE9pLmdldEFsbEFuZ3VsYXJSb290RWxlbWVudHM9KCk9PmwuZ2V0QWxsUm9vdEVsZW1lbnRzKCksT2kuZnJhbWV3b3JrU3RhYmlsaXplcnN8fChPaS5mcmFtZXdvcmtTdGFiaWxpemVycz1bXSksT2kuZnJhbWV3b3Jr'@; put 'U3RhYmlsaXplcnMucHVzaChkPT57Y29uc3QgaD1PaS5nZXRBbGxBbmd1bGFyVGVzdGFiaWxpdGllcygpO2xldCBmPWgubGVuZ3RoLF89ITE7Y29uc3QgVD1mdW5jdGlvbihXKXtfPV98fFcsZi0tLDA9PWYmJmQoXyl9O2guZm9yRWFjaChXPT57Vy53aGVuU3RhYmxlKFQpfSl9KX1maW5kVGVz'@; put 'dGFiaWxpdHlJblRyZWUobCxhLGQpe3JldHVybiBudWxsPT1hP251bGw6bC5nZXRUZXN0YWJpbGl0eShhKT8/KGQ/YXAoKS5pc1NoYWRvd1Jvb3QoYSk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUobCxhLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKGwsYS5wYXJlbnRF'@; put 'bGVtZW50LCEwKTpudWxsKX19LGRlcHM6W119LHtwcm92aWRlOnVXLHVzZUNsYXNzOiRSLGRlcHM6W05vLHFSLEtNXX0se3Byb3ZpZGU6JFIsdXNlQ2xhc3M6JFIsZGVwczpbTm8scVIsS01dfV0seEc9W3twcm92aWRlOnQ1LHVzZVZhbHVlOiJyb290In0se3Byb3ZpZGU6aGYsdXNlRmFjdG9y'@; put 'eTpmdW5jdGlvbiBEMWUoKXtyZXR1cm4gbmV3IGhmfSxkZXBzOltdfSx7cHJvdmlkZTprTyx1c2VDbGFzczp4MWUsbXVsdGk6ITAsZGVwczpbTHMsTm8sR3NdfSx7cHJvdmlkZTprTyx1c2VDbGFzczpBMWUsbXVsdGk6ITAsZGVwczpbTHNdfSxJTyxtRyxwRyx7cHJvdmlkZTpZMyx1c2VFeGlz'@; put 'dGluZzpJT30se3Byb3ZpZGU6Y0csdXNlQ2xhc3M6bTFlLGRlcHM6W119LFtdXTtsZXQgRUc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt9c3RhdGljIHdpdGhTZXJ2ZXJUcmFuc2l0aW9uKGEpe3JldHVybntuZ01vZHVsZTpjLHByb3ZpZGVyczpbe3Byb3ZpZGU6YTYsdXNlVmFsdWU6'@; put 'YS5hcHBJZH1dfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoUjFlLDEyKSl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7cHJvdmlkZXJzOlsuLi54RywuLi5NR10saW1wb3J0czpbb28saHVlXX0pLGN9KSgpLGtH'@; put 'PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5fZG9jPWF9Z2V0VGl0bGUoKXtyZXR1cm4gdGhpcy5fZG9jLnRpdGxlfXNldFRpdGxlKGEpe3RoaXMuX2RvYy50aXRsZT1hfHwiIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoTHMp'@; put 'KX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6ZnVuY3Rpb24oYSl7bGV0IGQ9bnVsbDtyZXR1cm4gZD1hP25ldyBhOmZ1bmN0aW9uIFAxZSgpe3JldHVybiBuZXcga0coYXIoTHMpKX0oKSxkfSxwcm92aWRlZEluOiJyb290In0pLGN9KSgpO3R5cGVvZiB3aW5kb3c8InUiJiZ3'@; put 'aW5kb3c7Rig3NDA5MiksRigzNDIwOSk7Y29uc3QgUE89e2ZpbHRlcjp7Y29sczpbXSx2YWxzOltdLGdyb3VwTG9naWM6IiIsd2hlcmVDbGF1c2U6IiIsbGliZHM6IiIsY2xhdXNlczpbXSxxdWVyeTpbXX19LEduPXtyb290UGFyYW06IiIsZGNMaWI6IiIseGxtYXBzOltdLGVkaXRvcjp7c3Rh'@; put 'cnR1cFNldDohMSx0cmVlTm9kZUxpYnJhcmllczpbXSxsaWJzQW5kVGFibGVzOltdLGxpYnJhcmllczpbXSxsaWJyYXJ5OiIiLHRhYmxlOiIiLGZpbHRlcjp7Y29sczpbXSx2YWxzOltdLGdyb3VwTG9naWM6IiIsd2hlcmVDbGF1c2U6IiIsbGliZHM6IiIsY2xhdXNlczpbXSxxdWVyeTpbXX19'@; put 'LHZpZXdlcjp7c3RhcnR1cFNldDohMSx0YWJsZXNTZXQ6ITEsbGlicmFyaWVzOltdLHRhYmxlczpudWxsLGxpYnJhcnk6IiIsdGFibGU6IiIsbGliaW5mbzpbXSxsaWJyYXJpZXNTZWFyY2g6IiIsZmlsdGVyOntjb2xzOltdLHZhbHM6W10sZ3JvdXBMb2dpYzoiIix3aGVyZUNsYXVzZToiIixs'@; put 'aWJkczoiIixjbGF1c2VzOltdLHF1ZXJ5OltdfSxjdXJyZW50U2VsZWN0aW9uOiIifSx2aWV3Ym94ZXM6e30sbGluZWFnZTp7bGlicmFyeUxpc3Q6W10sdGFibGVzTGlzdDpbXSxjb2x1bW5zTGlzdDpbXSxsaWJyYXJpZXNTZWFyY2g6IiIsbGliOiIiLHRhYmxlOiIiLGNvbHVtbjoiIixjdXJy'@; put 'ZW50TGluZWFnZVBhdGhMaWJUYWJsZToiIixjdXJyZW50TGluZWFnZVBhdGhDb2x1bW46IiJ9LG1ldGFkYXRhOnttZXRhRGF0YUxpc3Q6dm9pZCAwLG1ldGFEYXRhU2VhcmNoOiIiLG1ldGFPYmplY3RMaXN0OltdLG1ldGFPYmplY3RTZWFyY2g6IiIsbWV0YVJlcG9zaXRvcmllczp2b2lkIDAs'@; put 'c2VsZWN0ZWRSZXBvc2l0b3J5OiIifSx2aXlhQXBpOntjb2xsZWN0aW9uc0xpc3Q6dm9pZCAwLGNvbGxlY3Rpb25zU2VhcmNoOiIiLHNlbGVjdGVkUmVwb3NpdG9yeToiIn0sdXNlcm5hdjp7dXNlckxpc3Q6dm9pZCAwLHVzZXJTZWFyY2g6IiIsZ3JvdXBMaXN0OnZvaWQgMCxncm91cFNlYXJj'@; put 'aDoiIixyb2xlTGlzdDp2b2lkIDAscm9sZVNlYXJjaDoiIn0sb3BlcmF0b3JzOntudW1PcGVyYXRvcnM6WyI9IiwiPCIsIj4iLCI8PSIsIj49IiwiQkVUV0VFTiIsIklOIiwiTk9UIElOIiwiTkUiXSxjaGFyT3BlcmF0b3JzOlsiPSIsIjwiLCI+IiwiPD0iLCI+PSIsIkNPTlRBSU5TIiwiSU4i'@; put 'LCJOT1QgSU4iLCJORSJdfX07dmFyIEtvPUYoMTY2NzYpLElHPUYubihLbyk7ZnVuY3Rpb24gTEcoYyxsLGEsZCxoLGYsXyl7dHJ5e3ZhciBUPWNbZl0oXyksVz1ULnZhbHVlfWNhdGNoKGllKXtyZXR1cm4gdm9pZCBhKGllKX1ULmRvbmU/bChXKTpQcm9taXNlLnJlc29sdmUoVykudGhlbihk'@; put 'LGgpfWZ1bmN0aW9uIGZpKGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBsPXRoaXMsYT1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsaCl7dmFyIGY9Yy5hcHBseShsLGEpO2Z1bmN0aW9uIF8oVyl7TEcoZixkLGgsXyxULCJuZXh0IixXKX1mdW5jdGlvbiBUKFcpe0xH'@; put 'KGYsZCxoLF8sVCwidGhyb3ciLFcpfV8odm9pZCAwKX0pfX1mdW5jdGlvbiBGTyhjKXtyZXR1cm4hIWMmJihjIGluc3RhbmNlb2YgS2V8fFkoYy5saWZ0KSYmWShjLnN1YnNjcmliZSkpfWNvbnN0e2lzQXJyYXk6QjFlfT1BcnJheSx7Z2V0UHJvdG90eXBlT2Y6ajFlLHByb3RvdHlwZTp6MWUs'@; put 'a2V5czpVMWV9PU9iamVjdDtmdW5jdGlvbiBSRyhjKXtpZigxPT09Yy5sZW5ndGgpe2NvbnN0IGw9Y1swXTtpZihCMWUobCkpcmV0dXJue2FyZ3M6bCxrZXlzOm51bGx9O2lmKGZ1bmN0aW9uIFoxZShjKXtyZXR1cm4gYyYmIm9iamVjdCI9PXR5cGVvZiBjJiZqMWUoYyk9PT16MWV9KGwpKXtj'@; put 'b25zdCBhPVUxZShsKTtyZXR1cm57YXJnczphLm1hcChkPT5sW2RdKSxrZXlzOmF9fX1yZXR1cm57YXJnczpjLGtleXM6bnVsbH19Y29uc3R7aXNBcnJheTpZMWV9PUFycmF5O2Z1bmN0aW9uIEhPKGMpe3JldHVybiBNZShsPT5mdW5jdGlvbiBXMWUoYyxsKXtyZXR1cm4gWTFlKGwpP2MoLi4u'@; put 'bCk6YyhsKX0oYyxsKSl9ZnVuY3Rpb24gT0coYyxsKXtyZXR1cm4gYy5yZWR1Y2UoKGEsZCxoKT0+KGFbZF09bFtoXSxhKSx7fSl9ZnVuY3Rpb24gWTYoLi4uYyl7Y29uc3QgbD1OMChjKSxhPU9jKGMpLHthcmdzOmQsa2V5czpofT1SRyhjKTtpZigwPT09ZC5sZW5ndGgpcmV0dXJuIGVhKFtd'@; put 'LGwpO2NvbnN0IGY9bmV3IEtlKGZ1bmN0aW9uIEcxZShjLGwsYT1PZSl7cmV0dXJuIGQ9PntQRyhsLCgpPT57Y29uc3R7bGVuZ3RoOmh9PWMsZj1uZXcgQXJyYXkoaCk7bGV0IF89aCxUPWg7Zm9yKGxldCBXPTA7VzxoO1crKylQRyhsLCgpPT57Y29uc3QgaWU9ZWEoY1tXXSxsKTtsZXQgcGU9'@; put 'ITE7aWUuc3Vic2NyaWJlKFVlKGQsd2U9PntmW1ddPXdlLHBlfHwocGU9ITAsVC0tKSxUfHxkLm5leHQoYShmLnNsaWNlKCkpKX0sKCk9PnstLV98fGQuY29tcGxldGUoKX0pKX0sZCl9LGQpfX0oZCxsLGg/Xz0+T0coaCxfKTpPZSkpO3JldHVybiBhP2YucGlwZShITyhhKSk6Zn1mdW5jdGlv'@; put 'biBQRyhjLGwsYSl7Yz9HaShhLGMsbCk6bCgpfWNvbnN0IGd4PVgoYz0+ZnVuY3Rpb24oKXtjKHRoaXMpLHRoaXMubmFtZT0iRW1wdHlFcnJvciIsdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSJ9KTtmdW5jdGlvbiBteCguLi5jKXtyZXR1cm4gZnVuY3Rpb24gJDFlKCl7'@; put 'cmV0dXJuIFBpKDEpfSgpKGVhKGMsTjAoYykpKX1mdW5jdGlvbiBGRyhjKXtyZXR1cm4gbmV3IEtlKGw9PntLcihjKCkpLnN1YnNjcmliZShsKX0pfWZ1bmN0aW9uIERfKGMsbCl7Y29uc3QgYT1ZKGMpP2M6KCk9PmMsZD1oPT5oLmVycm9yKGEoKSk7cmV0dXJuIG5ldyBLZShsP2g9Pmwuc2No'@; put 'ZWR1bGUoZCwwLGgpOmQpfWZ1bmN0aW9uIE5PKCl7cmV0dXJuIFhlKChjLGwpPT57bGV0IGE9bnVsbDtjLl9yZWZDb3VudCsrO2NvbnN0IGQ9VWUobCx2b2lkIDAsdm9pZCAwLHZvaWQgMCwoKT0+e2lmKCFjfHxjLl9yZWZDb3VudDw9MHx8MDwtLWMuX3JlZkNvdW50KXJldHVybiB2b2lkKGE9'@; put 'bnVsbCk7Y29uc3QgaD1jLl9jb25uZWN0aW9uLGY9YTthPW51bGwsaCYmKCFmfHxoPT09ZikmJmgudW5zdWJzY3JpYmUoKSxsLnVuc3Vic2NyaWJlKCl9KTtjLnN1YnNjcmliZShkKSxkLmNsb3NlZHx8KGE9Yy5jb25uZWN0KCkpfSl9Y2xhc3MgSEcgZXh0ZW5kcyBLZXtjb25zdHJ1Y3Rvcihs'@; put 'LGEpe3N1cGVyKCksdGhpcy5zb3VyY2U9bCx0aGlzLnN1YmplY3RGYWN0b3J5PWEsdGhpcy5fc3ViamVjdD1udWxsLHRoaXMuX3JlZkNvdW50PTAsdGhpcy5fY29ubmVjdGlvbj1udWxsLHFlKGwpJiYodGhpcy5saWZ0PWwubGlmdCl9X3N1YnNjcmliZShsKXtyZXR1cm4gdGhpcy5nZXRTdWJq'@; put 'ZWN0KCkuc3Vic2NyaWJlKGwpfWdldFN1YmplY3QoKXtjb25zdCBsPXRoaXMuX3N1YmplY3Q7cmV0dXJuKCFsfHxsLmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhpcy5fc3ViamVjdH1fdGVhcmRvd24oKXt0aGlzLl9yZWZDb3VudD0wO2NvbnN0'@; put 'e19jb25uZWN0aW9uOmx9PXRoaXM7dGhpcy5fc3ViamVjdD10aGlzLl9jb25uZWN0aW9uPW51bGwsbD8udW5zdWJzY3JpYmUoKX1jb25uZWN0KCl7bGV0IGw9dGhpcy5fY29ubmVjdGlvbjtpZighbCl7bD10aGlzLl9jb25uZWN0aW9uPW5ldyBlZTtjb25zdCBhPXRoaXMuZ2V0U3ViamVjdCgp'@; put 'O2wuYWRkKHRoaXMuc291cmNlLnN1YnNjcmliZShVZShhLHZvaWQgMCwoKT0+e3RoaXMuX3RlYXJkb3duKCksYS5jb21wbGV0ZSgpfSxkPT57dGhpcy5fdGVhcmRvd24oKSxhLmVycm9yKGQpfSwoKT0+dGhpcy5fdGVhcmRvd24oKSkpKSxsLmNsb3NlZCYmKHRoaXMuX2Nvbm5lY3Rpb249bnVs'@; put 'bCxsPWVlLkVNUFRZKX1yZXR1cm4gbH1yZWZDb3VudCgpe3JldHVybiBOTygpKHRoaXMpfX1mdW5jdGlvbiBpZChjKXtyZXR1cm4gYzw9MD8oKT0+TG86WGUoKGwsYSk9PntsZXQgZD0wO2wuc3Vic2NyaWJlKFVlKGEsaD0+eysrZDw9YyYmKGEubmV4dChoKSxjPD1kJiZhLmNvbXBsZXRlKCkp'@; put 'fSkpfSl9ZnVuY3Rpb24gY3AoLi4uYyl7Y29uc3QgbD1OMChjKTtyZXR1cm4gWGUoKGEsZCk9PnsobD9teChjLGEsbCk6bXgoYyxhKSkuc3Vic2NyaWJlKGQpfSl9ZnVuY3Rpb24gSWEoYyxsKXtyZXR1cm4gWGUoKGEsZCk9PntsZXQgaD0wO2Euc3Vic2NyaWJlKFVlKGQsZj0+Yy5jYWxsKGws'@; put 'ZixoKyspJiZkLm5leHQoZikpKX0pfWZ1bmN0aW9uIHZ4KGMpe3JldHVybiBYZSgobCxhKT0+e2xldCBkPSExO2wuc3Vic2NyaWJlKFVlKGEsaD0+e2Q9ITAsYS5uZXh0KGgpfSwoKT0+e2R8fGEubmV4dChjKSxhLmNvbXBsZXRlKCl9KSl9KX1mdW5jdGlvbiBORyhjPXExZSl7cmV0dXJuIFhl'@; put 'KChsLGEpPT57bGV0IGQ9ITE7bC5zdWJzY3JpYmUoVWUoYSxoPT57ZD0hMCxhLm5leHQoaCl9LCgpPT5kP2EuY29tcGxldGUoKTphLmVycm9yKGMoKSkpKX0pfWZ1bmN0aW9uIHExZSgpe3JldHVybiBuZXcgZ3h9ZnVuY3Rpb24gdXAoYyxsKXtjb25zdCBhPWFyZ3VtZW50cy5sZW5ndGg+PTI7'@; put 'cmV0dXJuIGQ9PmQucGlwZShjP0lhKChoLGYpPT5jKGgsZixkKSk6T2UsaWQoMSksYT92eChsKTpORygoKT0+bmV3IGd4KSl9ZnVuY3Rpb24gVzYoYyxsKXtyZXR1cm4gWShsKT95cihjLGwsMSk6eXIoYywxKX1mdW5jdGlvbiBVYyhjLGwsYSl7Y29uc3QgZD1ZKGMpfHxsfHxhP3tuZXh0OmMs'@; put 'ZXJyb3I6bCxjb21wbGV0ZTphfTpjO3JldHVybiBkP1hlKChoLGYpPT57dmFyIF87bnVsbD09PShfPWQuc3Vic2NyaWJlKXx8dm9pZCAwPT09X3x8Xy5jYWxsKGQpO2xldCBUPSEwO2guc3Vic2NyaWJlKFVlKGYsVz0+e3ZhciBpZTtudWxsPT09KGllPWQubmV4dCl8fHZvaWQgMD09PWllfHxp'@; put 'ZS5jYWxsKGQsVyksZi5uZXh0KFcpfSwoKT0+e3ZhciBXO1Q9ITEsbnVsbD09PShXPWQuY29tcGxldGUpfHx2b2lkIDA9PT1XfHxXLmNhbGwoZCksZi5jb21wbGV0ZSgpfSxXPT57dmFyIGllO1Q9ITEsbnVsbD09PShpZT1kLmVycm9yKXx8dm9pZCAwPT09aWV8fGllLmNhbGwoZCxXKSxmLmVy'@; put 'cm9yKFcpfSwoKT0+e3ZhciBXLGllO1QmJihudWxsPT09KFc9ZC51bnN1YnNjcmliZSl8fHZvaWQgMD09PVd8fFcuY2FsbChkKSksbnVsbD09PShpZT1kLmZpbmFsaXplKXx8dm9pZCAwPT09aWV8fGllLmNhbGwoZCl9KSl9KTpPZX1mdW5jdGlvbiBBNShjKXtyZXR1cm4gWGUoKGwsYSk9Pnts'@; put 'ZXQgZixkPW51bGwsaD0hMTtkPWwuc3Vic2NyaWJlKFVlKGEsdm9pZCAwLHZvaWQgMCxfPT57Zj1LcihjKF8sQTUoYykobCkpKSxkPyhkLnVuc3Vic2NyaWJlKCksZD1udWxsLGYuc3Vic2NyaWJlKGEpKTpoPSEwfSkpLGgmJihkLnVuc3Vic2NyaWJlKCksZD1udWxsLGYuc3Vic2NyaWJlKGEp'@; put 'KX0pfWZ1bmN0aW9uIFZPKGMpe3JldHVybiBjPD0wPygpPT5MbzpYZSgobCxhKT0+e2xldCBkPVtdO2wuc3Vic2NyaWJlKFVlKGEsaD0+e2QucHVzaChoKSxjPGQubGVuZ3RoJiZkLnNoaWZ0KCl9LCgpPT57Zm9yKGNvbnN0IGggb2YgZClhLm5leHQoaCk7YS5jb21wbGV0ZSgpfSx2b2lkIDAs'@; put 'KCk9PntkPW51bGx9KSl9KX1mdW5jdGlvbiBJXyhjKXtyZXR1cm4gWGUoKGwsYSk9Pnt0cnl7bC5zdWJzY3JpYmUoYSl9ZmluYWxseXthLmFkZChjKX19KX1jb25zdCBscz0icHJpbWFyeSIsTF89U3ltYm9sKCJSb3V0ZVRpdGxlIik7Y2xhc3MgUTFle2NvbnN0cnVjdG9yKGwpe3RoaXMucGFy'@; put 'YW1zPWx8fHt9fWhhcyhsKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMucGFyYW1zLGwpfWdldChsKXtpZih0aGlzLmhhcyhsKSl7Y29uc3QgYT10aGlzLnBhcmFtc1tsXTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hWzBdOmF9cmV0dXJuIG51bGx9'@; put 'Z2V0QWxsKGwpe2lmKHRoaXMuaGFzKGwpKXtjb25zdCBhPXRoaXMucGFyYW1zW2xdO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6W2FdfXJldHVybltdfWdldCBrZXlzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucGFyYW1zKX19ZnVuY3Rpb24gRzYoYyl7cmV0dXJuIG5ldyBRMWUoYyl9'@; put 'ZnVuY3Rpb24gZWRlKGMsbCxhKXtjb25zdCBkPWEucGF0aC5zcGxpdCgiLyIpO2lmKGQubGVuZ3RoPmMubGVuZ3RofHwiZnVsbCI9PT1hLnBhdGhNYXRjaCYmKGwuaGFzQ2hpbGRyZW4oKXx8ZC5sZW5ndGg8Yy5sZW5ndGgpKXJldHVybiBudWxsO2NvbnN0IGg9e307Zm9yKGxldCBmPTA7Zjxk'@; put 'Lmxlbmd0aDtmKyspe2NvbnN0IF89ZFtmXSxUPWNbZl07aWYoXy5zdGFydHNXaXRoKCI6IikpaFtfLnN1YnN0cmluZygxKV09VDtlbHNlIGlmKF8hPT1ULnBhdGgpcmV0dXJuIG51bGx9cmV0dXJue2NvbnN1bWVkOmMuc2xpY2UoMCxkLmxlbmd0aCkscG9zUGFyYW1zOmh9fWZ1bmN0aW9uIHJo'@; put 'KGMsbCl7Y29uc3QgYT1jP09iamVjdC5rZXlzKGMpOnZvaWQgMCxkPWw/T2JqZWN0LmtleXMobCk6dm9pZCAwO2lmKCFhfHwhZHx8YS5sZW5ndGghPWQubGVuZ3RoKXJldHVybiExO2xldCBoO2ZvcihsZXQgZj0wO2Y8YS5sZW5ndGg7ZisrKWlmKGg9YVtmXSwhQkcoY1toXSxsW2hdKSlyZXR1'@; put 'cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCRyhjLGwpe2lmKEFycmF5LmlzQXJyYXkoYykmJkFycmF5LmlzQXJyYXkobCkpe2lmKGMubGVuZ3RoIT09bC5sZW5ndGgpcmV0dXJuITE7Y29uc3QgYT1bLi4uY10uc29ydCgpLGQ9Wy4uLmxdLnNvcnQoKTtyZXR1cm4gYS5ldmVyeSgoaCxmKT0+ZFtm'@; put 'XT09PWgpfXJldHVybiBjPT09bH1mdW5jdGlvbiBqRyhjKXtyZXR1cm4gYy5sZW5ndGg+MD9jW2MubGVuZ3RoLTFdOm51bGx9ZnVuY3Rpb24gZHAoYyl7cmV0dXJuIEZPKGMpP2M6djUoYyk/ZWEoUHJvbWlzZS5yZXNvbHZlKGMpKTpXaShjKX1jb25zdCBuZGU9e2V4YWN0OmZ1bmN0aW9uIFpH'@; put 'KGMsbCxhKXtpZighVDUoYy5zZWdtZW50cyxsLnNlZ21lbnRzKXx8IV94KGMuc2VnbWVudHMsbC5zZWdtZW50cyxhKXx8Yy5udW1iZXJPZkNoaWxkcmVuIT09bC5udW1iZXJPZkNoaWxkcmVuKXJldHVybiExO2Zvcihjb25zdCBkIGluIGwuY2hpbGRyZW4paWYoIWMuY2hpbGRyZW5bZF18fCFa'@; put 'RyhjLmNoaWxkcmVuW2RdLGwuY2hpbGRyZW5bZF0sYSkpcmV0dXJuITE7cmV0dXJuITB9LHN1YnNldDpZR30sekc9e2V4YWN0OmZ1bmN0aW9uIHJkZShjLGwpe3JldHVybiByaChjLGwpfSxzdWJzZXQ6ZnVuY3Rpb24gaWRlKGMsbCl7cmV0dXJuIE9iamVjdC5rZXlzKGwpLmxlbmd0aDw9T2Jq'@; put 'ZWN0LmtleXMoYykubGVuZ3RoJiZPYmplY3Qua2V5cyhsKS5ldmVyeShhPT5CRyhjW2FdLGxbYV0pKX0saWdub3JlZDooKT0+ITB9O2Z1bmN0aW9uIFVHKGMsbCxhKXtyZXR1cm4gbmRlW2EucGF0aHNdKGMucm9vdCxsLnJvb3QsYS5tYXRyaXhQYXJhbXMpJiZ6R1thLnF1ZXJ5UGFyYW1zXShj'@; put 'LnF1ZXJ5UGFyYW1zLGwucXVlcnlQYXJhbXMpJiYhKCJleGFjdCI9PT1hLmZyYWdtZW50JiZjLmZyYWdtZW50IT09bC5mcmFnbWVudCl9ZnVuY3Rpb24gWUcoYyxsLGEpe3JldHVybiBXRyhjLGwsbC5zZWdtZW50cyxhKX1mdW5jdGlvbiBXRyhjLGwsYSxkKXtpZihjLnNlZ21lbnRzLmxlbmd0'@; put 'aD5hLmxlbmd0aCl7Y29uc3QgaD1jLnNlZ21lbnRzLnNsaWNlKDAsYS5sZW5ndGgpO3JldHVybiEoIVQ1KGgsYSl8fGwuaGFzQ2hpbGRyZW4oKXx8IV94KGgsYSxkKSl9aWYoYy5zZWdtZW50cy5sZW5ndGg9PT1hLmxlbmd0aCl7aWYoIVQ1KGMuc2VnbWVudHMsYSl8fCFfeChjLnNlZ21lbnRz'@; put 'LGEsZCkpcmV0dXJuITE7Zm9yKGNvbnN0IGggaW4gbC5jaGlsZHJlbilpZighYy5jaGlsZHJlbltoXXx8IVlHKGMuY2hpbGRyZW5baF0sbC5jaGlsZHJlbltoXSxkKSlyZXR1cm4hMTtyZXR1cm4hMH17Y29uc3QgaD1hLnNsaWNlKDAsYy5zZWdtZW50cy5sZW5ndGgpLGY9YS5zbGljZShjLnNl'@; put 'Z21lbnRzLmxlbmd0aCk7cmV0dXJuISEoVDUoYy5zZWdtZW50cyxoKSYmX3goYy5zZWdtZW50cyxoLGQpJiZjLmNoaWxkcmVuW2xzXSkmJldHKGMuY2hpbGRyZW5bbHNdLGwsZixkKX19ZnVuY3Rpb24gX3goYyxsLGEpe3JldHVybiBsLmV2ZXJ5KChkLGgpPT56R1thXShjW2hdLnBhcmFtZXRl'@; put 'cnMsZC5wYXJhbWV0ZXJzKSl9Y2xhc3MgJDZ7Y29uc3RydWN0b3IobD1uZXcgeWEoW10se30pLGE9e30sZD1udWxsKXt0aGlzLnJvb3Q9bCx0aGlzLnF1ZXJ5UGFyYW1zPWEsdGhpcy5mcmFnbWVudD1kfWdldCBxdWVyeVBhcmFtTWFwKCl7cmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1NYXB8fCh0'@; put 'aGlzLl9xdWVyeVBhcmFtTWFwPUc2KHRoaXMucXVlcnlQYXJhbXMpKSx0aGlzLl9xdWVyeVBhcmFtTWFwfXRvU3RyaW5nKCl7cmV0dXJuIGFkZS5zZXJpYWxpemUodGhpcyl9fWNsYXNzIHlhe2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5zZWdtZW50cz1sLHRoaXMuY2hpbGRyZW49YSx0aGlzLnBh'@; put 'cmVudD1udWxsLE9iamVjdC52YWx1ZXMoYSkuZm9yRWFjaChkPT5kLnBhcmVudD10aGlzKX1oYXNDaGlsZHJlbigpe3JldHVybiB0aGlzLm51bWJlck9mQ2hpbGRyZW4+MH1nZXQgbnVtYmVyT2ZDaGlsZHJlbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoaWxkcmVuKS5sZW5ndGh9dG9T'@; put 'dHJpbmcoKXtyZXR1cm4gYngodGhpcyl9fWNsYXNzIFJfe2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5wYXRoPWwsdGhpcy5wYXJhbWV0ZXJzPWF9Z2V0IHBhcmFtZXRlck1hcCgpe3JldHVybiB0aGlzLl9wYXJhbWV0ZXJNYXB8fCh0aGlzLl9wYXJhbWV0ZXJNYXA9RzYodGhpcy5wYXJhbWV0ZXJz'@; put 'KSksdGhpcy5fcGFyYW1ldGVyTWFwfXRvU3RyaW5nKCl7cmV0dXJuIHFHKHRoaXMpfX1mdW5jdGlvbiBUNShjLGwpe3JldHVybiBjLmxlbmd0aD09PWwubGVuZ3RoJiZjLmV2ZXJ5KChhLGQpPT5hLnBhdGg9PT1sW2RdLnBhdGgpfWxldCBPXz0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEJPfSxwcm92aWRlZEluOiJyb290In0pLGN9KSgpO2NsYXNzIEJPe3BhcnNlKGwpe2NvbnN0IGE9bmV3IF9kZShsKTtyZXR1cm4g'@; put 'bmV3ICQ2KGEucGFyc2VSb290U2VnbWVudCgpLGEucGFyc2VRdWVyeVBhcmFtcygpLGEucGFyc2VGcmFnbWVudCgpKX1zZXJpYWxpemUobCl7Y29uc3QgYT1gLyR7UF8obC5yb290LCEwKX1gLGQ9ZnVuY3Rpb24gdWRlKGMpe2NvbnN0IGw9T2JqZWN0LmtleXMoYykubWFwKGE9Pntjb25zdCBk'@; put 'PWNbYV07cmV0dXJuIEFycmF5LmlzQXJyYXkoZCk/ZC5tYXAoaD0+YCR7eXgoYSl9PSR7eXgoaCl9YCkuam9pbigiJiIpOmAke3l4KGEpfT0ke3l4KGQpfWB9KS5maWx0ZXIoYT0+ISFhKTtyZXR1cm4gbC5sZW5ndGg/YD8ke2wuam9pbigiJiIpfWA6IiJ9KGwucXVlcnlQYXJhbXMpO3JldHVy'@; put 'bmAke2F9JHtkfSR7InN0cmluZyI9PXR5cGVvZiBsLmZyYWdtZW50P2AjJHtmdW5jdGlvbiBsZGUoYyl7cmV0dXJuIGVuY29kZVVSSShjKX0obC5mcmFnbWVudCl9YDoiIn1gfX1jb25zdCBhZGU9bmV3IEJPO2Z1bmN0aW9uIGJ4KGMpe3JldHVybiBjLnNlZ21lbnRzLm1hcChsPT5xRyhsKSku'@; put 'am9pbigiLyIpfWZ1bmN0aW9uIFBfKGMsbCl7aWYoIWMuaGFzQ2hpbGRyZW4oKSlyZXR1cm4gYngoYyk7aWYobCl7Y29uc3QgYT1jLmNoaWxkcmVuW2xzXT9QXyhjLmNoaWxkcmVuW2xzXSwhMSk6IiIsZD1bXTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYy5jaGlsZHJlbikuZm9yRWFjaCgoW2gs'@; put 'Zl0pPT57aCE9PWxzJiZkLnB1c2goYCR7aH06JHtQXyhmLCExKX1gKX0pLGQubGVuZ3RoPjA/YCR7YX0oJHtkLmpvaW4oIi8vIil9KWA6YX17Y29uc3QgYT1mdW5jdGlvbiBzZGUoYyxsKXtsZXQgYT1bXTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYy5jaGlsZHJlbikuZm9yRWFjaCgoW2QsaF0p'@; put 'PT57ZD09PWxzJiYoYT1hLmNvbmNhdChsKGgsZCkpKX0pLE9iamVjdC5lbnRyaWVzKGMuY2hpbGRyZW4pLmZvckVhY2goKFtkLGhdKT0+e2QhPT1scyYmKGE9YS5jb25jYXQobChoLGQpKSl9KSxhfShjLChkLGgpPT5oPT09bHM/W1BfKGMuY2hpbGRyZW5bbHNdLCExKV06W2Ake2h9OiR7UF8o'@; put 'ZCwhMSl9YF0pO3JldHVybiAxPT09T2JqZWN0LmtleXMoYy5jaGlsZHJlbikubGVuZ3RoJiZudWxsIT1jLmNoaWxkcmVuW2xzXT9gJHtieChjKX0vJHthWzBdfWA6YCR7YngoYyl9Lygke2Euam9pbigiLy8iKX0pYH19ZnVuY3Rpb24gR0coYyl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChj'@; put 'KS5yZXBsYWNlKC8lNDAvZywiQCIpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIil9ZnVuY3Rpb24geXgoYyl7cmV0dXJuIEdHKGMpLnJlcGxhY2UoLyUzQi9naSwiOyIpfWZ1bmN0aW9uIGpPKGMpe3JldHVybiBHRyhjKS5yZXBs'@; put 'YWNlKC9cKC9nLCIlMjgiKS5yZXBsYWNlKC9cKS9nLCIlMjkiKS5yZXBsYWNlKC8lMjYvZ2ksIiYiKX1mdW5jdGlvbiB3eChjKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGMpfWZ1bmN0aW9uICRHKGMpe3JldHVybiB3eChjLnJlcGxhY2UoL1wrL2csIiUyMCIpKX1mdW5jdGlvbiBxRyhj'@; put 'KXtyZXR1cm5gJHtqTyhjLnBhdGgpfSR7ZnVuY3Rpb24gY2RlKGMpe3JldHVybiBPYmplY3Qua2V5cyhjKS5tYXAobD0+YDske2pPKGwpfT0ke2pPKGNbbF0pfWApLmpvaW4oIiIpfShjLnBhcmFtZXRlcnMpfWB9Y29uc3QgZGRlPS9eW15cLygpPzsjXSsvO2Z1bmN0aW9uIHpPKGMpe2NvbnN0'@; put 'IGw9Yy5tYXRjaChkZGUpO3JldHVybiBsP2xbMF06IiJ9Y29uc3QgaGRlPS9eW15cLygpPzs9I10rLyxwZGU9L15bXj0/JiNdKy8sbWRlPS9eW14mI10rLztjbGFzcyBfZGV7Y29uc3RydWN0b3IobCl7dGhpcy51cmw9bCx0aGlzLnJlbWFpbmluZz1sfXBhcnNlUm9vdFNlZ21lbnQoKXtyZXR1'@; put 'cm4gdGhpcy5jb25zdW1lT3B0aW9uYWwoIi8iKSwiIj09PXRoaXMucmVtYWluaW5nfHx0aGlzLnBlZWtTdGFydHNXaXRoKCI/Iil8fHRoaXMucGVla1N0YXJ0c1dpdGgoIiMiKT9uZXcgeWEoW10se30pOm5ldyB5YShbXSx0aGlzLnBhcnNlQ2hpbGRyZW4oKSl9cGFyc2VRdWVyeVBhcmFtcygp'@; put 'e2NvbnN0IGw9e307aWYodGhpcy5jb25zdW1lT3B0aW9uYWwoIj8iKSlkb3t0aGlzLnBhcnNlUXVlcnlQYXJhbShsKX13aGlsZSh0aGlzLmNvbnN1bWVPcHRpb25hbCgiJiIpKTtyZXR1cm4gbH1wYXJzZUZyYWdtZW50KCl7cmV0dXJuIHRoaXMuY29uc3VtZU9wdGlvbmFsKCIjIik/ZGVjb2Rl'@; put 'VVJJQ29tcG9uZW50KHRoaXMucmVtYWluaW5nKTpudWxsfXBhcnNlQ2hpbGRyZW4oKXtpZigiIj09PXRoaXMucmVtYWluaW5nKXJldHVybnt9O3RoaXMuY29uc3VtZU9wdGlvbmFsKCIvIik7Y29uc3QgbD1bXTtmb3IodGhpcy5wZWVrU3RhcnRzV2l0aCgiKCIpfHxsLnB1c2godGhpcy5wYXJz'@; put 'ZVNlZ21lbnQoKSk7dGhpcy5wZWVrU3RhcnRzV2l0aCgiLyIpJiYhdGhpcy5wZWVrU3RhcnRzV2l0aCgiLy8iKSYmIXRoaXMucGVla1N0YXJ0c1dpdGgoIi8oIik7KXRoaXMuY2FwdHVyZSgiLyIpLGwucHVzaCh0aGlzLnBhcnNlU2VnbWVudCgpKTtsZXQgYT17fTt0aGlzLnBlZWtTdGFydHNX'@; put 'aXRoKCIvKCIpJiYodGhpcy5jYXB0dXJlKCIvIiksYT10aGlzLnBhcnNlUGFyZW5zKCEwKSk7bGV0IGQ9e307cmV0dXJuIHRoaXMucGVla1N0YXJ0c1dpdGgoIigiKSYmKGQ9dGhpcy5wYXJzZVBhcmVucyghMSkpLChsLmxlbmd0aD4wfHxPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCkmJihkW2xz'@; put 'XT1uZXcgeWEobCxhKSksZH1wYXJzZVNlZ21lbnQoKXtjb25zdCBsPXpPKHRoaXMucmVtYWluaW5nKTtpZigiIj09PWwmJnRoaXMucGVla1N0YXJ0c1dpdGgoIjsiKSl0aHJvdyBuZXcgQXIoNDAwOSwhMSk7cmV0dXJuIHRoaXMuY2FwdHVyZShsKSxuZXcgUl8od3gobCksdGhpcy5wYXJzZU1h'@; put 'dHJpeFBhcmFtcygpKX1wYXJzZU1hdHJpeFBhcmFtcygpe2NvbnN0IGw9e307Zm9yKDt0aGlzLmNvbnN1bWVPcHRpb25hbCgiOyIpOyl0aGlzLnBhcnNlUGFyYW0obCk7cmV0dXJuIGx9cGFyc2VQYXJhbShsKXtjb25zdCBhPWZ1bmN0aW9uIGZkZShjKXtjb25zdCBsPWMubWF0Y2goaGRlKTty'@; put 'ZXR1cm4gbD9sWzBdOiIifSh0aGlzLnJlbWFpbmluZyk7aWYoIWEpcmV0dXJuO3RoaXMuY2FwdHVyZShhKTtsZXQgZD0iIjtpZih0aGlzLmNvbnN1bWVPcHRpb25hbCgiPSIpKXtjb25zdCBoPXpPKHRoaXMucmVtYWluaW5nKTtoJiYoZD1oLHRoaXMuY2FwdHVyZShkKSl9bFt3eChhKV09d3go'@; put 'ZCl9cGFyc2VRdWVyeVBhcmFtKGwpe2NvbnN0IGE9ZnVuY3Rpb24gZ2RlKGMpe2NvbnN0IGw9Yy5tYXRjaChwZGUpO3JldHVybiBsP2xbMF06IiJ9KHRoaXMucmVtYWluaW5nKTtpZighYSlyZXR1cm47dGhpcy5jYXB0dXJlKGEpO2xldCBkPSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9'@; put 'Iikpe2NvbnN0IF89ZnVuY3Rpb24gdmRlKGMpe2NvbnN0IGw9Yy5tYXRjaChtZGUpO3JldHVybiBsP2xbMF06IiJ9KHRoaXMucmVtYWluaW5nKTtfJiYoZD1fLHRoaXMuY2FwdHVyZShkKSl9Y29uc3QgaD0kRyhhKSxmPSRHKGQpO2lmKGwuaGFzT3duUHJvcGVydHkoaCkpe2xldCBfPWxbaF07'@; put 'QXJyYXkuaXNBcnJheShfKXx8KF89W19dLGxbaF09XyksXy5wdXNoKGYpfWVsc2UgbFtoXT1mfXBhcnNlUGFyZW5zKGwpe2NvbnN0IGE9e307Zm9yKHRoaXMuY2FwdHVyZSgiKCIpOyF0aGlzLmNvbnN1bWVPcHRpb25hbCgiKSIpJiZ0aGlzLnJlbWFpbmluZy5sZW5ndGg+MDspe2NvbnN0IGQ9'@; put 'ek8odGhpcy5yZW1haW5pbmcpLGg9dGhpcy5yZW1haW5pbmdbZC5sZW5ndGhdO2lmKCIvIiE9PWgmJiIpIiE9PWgmJiI7IiE9PWgpdGhyb3cgbmV3IEFyKDQwMTAsITEpO2xldCBmO2QuaW5kZXhPZigiOiIpPi0xPyhmPWQuc2xpY2UoMCxkLmluZGV4T2YoIjoiKSksdGhpcy5jYXB0dXJlKGYp'@; put 'LHRoaXMuY2FwdHVyZSgiOiIpKTpsJiYoZj1scyk7Y29uc3QgXz10aGlzLnBhcnNlQ2hpbGRyZW4oKTthW2ZdPTE9PT1PYmplY3Qua2V5cyhfKS5sZW5ndGg/X1tsc106bmV3IHlhKFtdLF8pLHRoaXMuY29uc3VtZU9wdGlvbmFsKCIvLyIpfXJldHVybiBhfXBlZWtTdGFydHNXaXRoKGwpe3Jl'@; put 'dHVybiB0aGlzLnJlbWFpbmluZy5zdGFydHNXaXRoKGwpfWNvbnN1bWVPcHRpb25hbChsKXtyZXR1cm4hIXRoaXMucGVla1N0YXJ0c1dpdGgobCkmJih0aGlzLnJlbWFpbmluZz10aGlzLnJlbWFpbmluZy5zdWJzdHJpbmcobC5sZW5ndGgpLCEwKX1jYXB0dXJlKGwpe2lmKCF0aGlzLmNvbnN1'@; put 'bWVPcHRpb25hbChsKSl0aHJvdyBuZXcgQXIoNDAxMSwhMSl9fWZ1bmN0aW9uIEtHKGMpe3JldHVybiBjLnNlZ21lbnRzLmxlbmd0aD4wP25ldyB5YShbXSx7W2xzXTpjfSk6Y31mdW5jdGlvbiBYRyhjKXtjb25zdCBsPXt9O2Zvcihjb25zdCBkIG9mIE9iamVjdC5rZXlzKGMuY2hpbGRyZW4p'@; put 'KXtjb25zdCBmPVhHKGMuY2hpbGRyZW5bZF0pO2lmKGQ9PT1scyYmMD09PWYuc2VnbWVudHMubGVuZ3RoJiZmLmhhc0NoaWxkcmVuKCkpZm9yKGNvbnN0W18sVF1vZiBPYmplY3QuZW50cmllcyhmLmNoaWxkcmVuKSlsW19dPVQ7ZWxzZShmLnNlZ21lbnRzLmxlbmd0aD4wfHxmLmhhc0NoaWxk'@; put 'cmVuKCkpJiYobFtkXT1mKX1yZXR1cm4gZnVuY3Rpb24gYmRlKGMpe2lmKDE9PT1jLm51bWJlck9mQ2hpbGRyZW4mJmMuY2hpbGRyZW5bbHNdKXtjb25zdCBsPWMuY2hpbGRyZW5bbHNdO3JldHVybiBuZXcgeWEoYy5zZWdtZW50cy5jb25jYXQobC5zZWdtZW50cyksbC5jaGlsZHJlbil9cmV0'@; put 'dXJuIGN9KG5ldyB5YShjLnNlZ21lbnRzLGwpKX1mdW5jdGlvbiBENShjKXtyZXR1cm4gYyBpbnN0YW5jZW9mICQ2fWZ1bmN0aW9uIEpHKGMpe2xldCBsO2NvbnN0IGg9S0coZnVuY3Rpb24gYShmKXtjb25zdCBfPXt9O2Zvcihjb25zdCBXIG9mIGYuY2hpbGRyZW4pe2NvbnN0IGllPWEoVyk7'@; put 'X1tXLm91dGxldF09aWV9Y29uc3QgVD1uZXcgeWEoZi51cmwsXyk7cmV0dXJuIGY9PT1jJiYobD1UKSxUfShjLnJvb3QpKTtyZXR1cm4gbD8/aH1mdW5jdGlvbiBRRyhjLGwsYSxkKXtsZXQgaD1jO2Zvcig7aC5wYXJlbnQ7KWg9aC5wYXJlbnQ7aWYoMD09PWwubGVuZ3RoKXJldHVybiBVTyho'@; put 'LGgsaCxhLGQpO2NvbnN0IGY9ZnVuY3Rpb24gd2RlKGMpe2lmKCJzdHJpbmciPT10eXBlb2YgY1swXSYmMT09PWMubGVuZ3RoJiYiLyI9PT1jWzBdKXJldHVybiBuZXcgdCQoITAsMCxjKTtsZXQgbD0wLGE9ITE7Y29uc3QgZD1jLnJlZHVjZSgoaCxmLF8pPT57aWYoIm9iamVjdCI9PXR5cGVv'@; put 'ZiBmJiZudWxsIT1mKXtpZihmLm91dGxldHMpe2NvbnN0IFQ9e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKGYub3V0bGV0cykuZm9yRWFjaCgoW1csaWVdKT0+e1RbV109InN0cmluZyI9PXR5cGVvZiBpZT9pZS5zcGxpdCgiLyIpOmllfSksWy4uLmgse291dGxldHM6VH1dfWlmKGYuc2VnbWVu'@; put 'dFBhdGgpcmV0dXJuWy4uLmgsZi5zZWdtZW50UGF0aF19cmV0dXJuInN0cmluZyIhPXR5cGVvZiBmP1suLi5oLGZdOjA9PT1fPyhmLnNwbGl0KCIvIikuZm9yRWFjaCgoVCxXKT0+ezA9PVcmJiIuIj09PVR8fCgwPT1XJiYiIj09PVQ/YT0hMDoiLi4iPT09VD9sKys6IiIhPVQmJmgucHVzaChU'@; put 'KSl9KSxoKTpbLi4uaCxmXX0sW10pO3JldHVybiBuZXcgdCQoYSxsLGQpfShsKTtpZihmLnRvUm9vdCgpKXJldHVybiBVTyhoLGgsbmV3IHlhKFtdLHt9KSxhLGQpO2NvbnN0IF89ZnVuY3Rpb24gQ2RlKGMsbCxhKXtpZihjLmlzQWJzb2x1dGUpcmV0dXJuIG5ldyBTeChsLCEwLDApO2lmKCFh'@; put 'KXJldHVybiBuZXcgU3gobCwhMSxOYU4pO2lmKG51bGw9PT1hLnBhcmVudClyZXR1cm4gbmV3IFN4KGEsITAsMCk7Y29uc3QgZD1DeChjLmNvbW1hbmRzWzBdKT8wOjE7cmV0dXJuIGZ1bmN0aW9uIFNkZShjLGwsYSl7bGV0IGQ9YyxoPWwsZj1hO2Zvcig7Zj5oOyl7aWYoZi09aCxkPWQucGFy'@; put 'ZW50LCFkKXRocm93IG5ldyBBcig0MDA1LCExKTtoPWQuc2VnbWVudHMubGVuZ3RofXJldHVybiBuZXcgU3goZCwhMSxoLWYpfShhLGEuc2VnbWVudHMubGVuZ3RoLTErZCxjLm51bWJlck9mRG91YmxlRG90cyl9KGYsaCxjKSxUPV8ucHJvY2Vzc0NoaWxkcmVuP0hfKF8uc2VnbWVudEdyb3Vw'@; put 'LF8uaW5kZXgsZi5jb21tYW5kcyk6biQoXy5zZWdtZW50R3JvdXAsXy5pbmRleCxmLmNvbW1hbmRzKTtyZXR1cm4gVU8oaCxfLnNlZ21lbnRHcm91cCxULGEsZCl9ZnVuY3Rpb24gQ3goYyl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBjJiZudWxsIT1jJiYhYy5vdXRsZXRzJiYhYy5zZWdtZW50'@; put 'UGF0aH1mdW5jdGlvbiBGXyhjKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGMmJm51bGwhPWMmJmMub3V0bGV0c31mdW5jdGlvbiBVTyhjLGwsYSxkLGgpe2xldCBfLGY9e307ZCYmT2JqZWN0LmVudHJpZXMoZCkuZm9yRWFjaCgoW1csaWVdKT0+e2ZbV109QXJyYXkuaXNBcnJheShpZSk/aWUu'@; put 'bWFwKHBlPT5gJHtwZX1gKTpgJHtpZX1gfSksXz1jPT09bD9hOmUkKGMsbCxhKTtjb25zdCBUPUtHKFhHKF8pKTtyZXR1cm4gbmV3ICQ2KFQsZixoKX1mdW5jdGlvbiBlJChjLGwsYSl7Y29uc3QgZD17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYy5jaGlsZHJlbikuZm9yRWFjaCgoW2gsZl0p'@; put 'PT57ZFtoXT1mPT09bD9hOmUkKGYsbCxhKX0pLG5ldyB5YShjLnNlZ21lbnRzLGQpfWNsYXNzIHQke2NvbnN0cnVjdG9yKGwsYSxkKXtpZih0aGlzLmlzQWJzb2x1dGU9bCx0aGlzLm51bWJlck9mRG91YmxlRG90cz1hLHRoaXMuY29tbWFuZHM9ZCxsJiZkLmxlbmd0aD4wJiZDeChkWzBdKSl0'@; put 'aHJvdyBuZXcgQXIoNDAwMywhMSk7Y29uc3QgaD1kLmZpbmQoRl8pO2lmKGgmJmghPT1qRyhkKSl0aHJvdyBuZXcgQXIoNDAwNCwhMSl9dG9Sb290KCl7cmV0dXJuIHRoaXMuaXNBYnNvbHV0ZSYmMT09PXRoaXMuY29tbWFuZHMubGVuZ3RoJiYiLyI9PXRoaXMuY29tbWFuZHNbMF19fWNsYXNz'@; put 'IFN4e2NvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLnNlZ21lbnRHcm91cD1sLHRoaXMucHJvY2Vzc0NoaWxkcmVuPWEsdGhpcy5pbmRleD1kfX1mdW5jdGlvbiBuJChjLGwsYSl7aWYoY3x8KGM9bmV3IHlhKFtdLHt9KSksMD09PWMuc2VnbWVudHMubGVuZ3RoJiZjLmhhc0NoaWxkcmVuKCkpcmV0'@; put 'dXJuIEhfKGMsbCxhKTtjb25zdCBkPWZ1bmN0aW9uIHhkZShjLGwsYSl7bGV0IGQ9MCxoPWw7Y29uc3QgZj17bWF0Y2g6ITEscGF0aEluZGV4OjAsY29tbWFuZEluZGV4OjB9O2Zvcig7aDxjLnNlZ21lbnRzLmxlbmd0aDspe2lmKGQ+PWEubGVuZ3RoKXJldHVybiBmO2NvbnN0IF89Yy5zZWdt'@; put 'ZW50c1toXSxUPWFbZF07aWYoRl8oVCkpYnJlYWs7Y29uc3QgVz1gJHtUfWAsaWU9ZDxhLmxlbmd0aC0xP2FbZCsxXTpudWxsO2lmKGg+MCYmdm9pZCAwPT09VylicmVhaztpZihXJiZpZSYmIm9iamVjdCI9PXR5cGVvZiBpZSYmdm9pZCAwPT09aWUub3V0bGV0cyl7aWYoIWkkKFcsaWUsXykp'@; put 'cmV0dXJuIGY7ZCs9Mn1lbHNle2lmKCFpJChXLHt9LF8pKXJldHVybiBmO2QrK31oKyt9cmV0dXJue21hdGNoOiEwLHBhdGhJbmRleDpoLGNvbW1hbmRJbmRleDpkfX0oYyxsLGEpLGg9YS5zbGljZShkLmNvbW1hbmRJbmRleCk7aWYoZC5tYXRjaCYmZC5wYXRoSW5kZXg8Yy5zZWdtZW50cy5s'@; put 'ZW5ndGgpe2NvbnN0IGY9bmV3IHlhKGMuc2VnbWVudHMuc2xpY2UoMCxkLnBhdGhJbmRleCkse30pO3JldHVybiBmLmNoaWxkcmVuW2xzXT1uZXcgeWEoYy5zZWdtZW50cy5zbGljZShkLnBhdGhJbmRleCksYy5jaGlsZHJlbiksSF8oZiwwLGgpfXJldHVybiBkLm1hdGNoJiYwPT09aC5sZW5n'@; put 'dGg/bmV3IHlhKGMuc2VnbWVudHMse30pOmQubWF0Y2gmJiFjLmhhc0NoaWxkcmVuKCk/Wk8oYyxsLGEpOmQubWF0Y2g/SF8oYywwLGgpOlpPKGMsbCxhKX1mdW5jdGlvbiBIXyhjLGwsYSl7aWYoMD09PWEubGVuZ3RoKXJldHVybiBuZXcgeWEoYy5zZWdtZW50cyx7fSk7e2NvbnN0IGQ9ZnVu'@; put 'Y3Rpb24gTWRlKGMpe3JldHVybiBGXyhjWzBdKT9jWzBdLm91dGxldHM6e1tsc106Y319KGEpLGg9e307aWYoIWRbbHNdJiZjLmNoaWxkcmVuW2xzXSYmMT09PWMubnVtYmVyT2ZDaGlsZHJlbiYmMD09PWMuY2hpbGRyZW5bbHNdLnNlZ21lbnRzLmxlbmd0aCl7Y29uc3QgZj1IXyhjLmNoaWxk'@; put 'cmVuW2xzXSxsLGEpO3JldHVybiBuZXcgeWEoYy5zZWdtZW50cyxmLmNoaWxkcmVuKX1yZXR1cm4gT2JqZWN0LmVudHJpZXMoZCkuZm9yRWFjaCgoW2YsX10pPT57InN0cmluZyI9PXR5cGVvZiBfJiYoXz1bX10pLG51bGwhPT1fJiYoaFtmXT1uJChjLmNoaWxkcmVuW2ZdLGwsXykpfSksT2Jq'@; put 'ZWN0LmVudHJpZXMoYy5jaGlsZHJlbikuZm9yRWFjaCgoW2YsX10pPT57dm9pZCAwPT09ZFtmXSYmKGhbZl09Xyl9KSxuZXcgeWEoYy5zZWdtZW50cyxoKX19ZnVuY3Rpb24gWk8oYyxsLGEpe2NvbnN0IGQ9Yy5zZWdtZW50cy5zbGljZSgwLGwpO2xldCBoPTA7Zm9yKDtoPGEubGVuZ3RoOyl7'@; put 'Y29uc3QgZj1hW2hdO2lmKEZfKGYpKXtjb25zdCBXPUVkZShmLm91dGxldHMpO3JldHVybiBuZXcgeWEoZCxXKX1pZigwPT09aCYmQ3goYVswXSkpe2QucHVzaChuZXcgUl8oYy5zZWdtZW50c1tsXS5wYXRoLHIkKGFbMF0pKSksaCsrO2NvbnRpbnVlfWNvbnN0IF89Rl8oZik/Zi5vdXRsZXRz'@; put 'W2xzXTpgJHtmfWAsVD1oPGEubGVuZ3RoLTE/YVtoKzFdOm51bGw7XyYmVCYmQ3goVCk/KGQucHVzaChuZXcgUl8oXyxyJChUKSkpLGgrPTIpOihkLnB1c2gobmV3IFJfKF8se30pKSxoKyspfXJldHVybiBuZXcgeWEoZCx7fSl9ZnVuY3Rpb24gRWRlKGMpe2NvbnN0IGw9e307cmV0dXJuIE9i'@; put 'amVjdC5lbnRyaWVzKGMpLmZvckVhY2goKFthLGRdKT0+eyJzdHJpbmciPT10eXBlb2YgZCYmKGQ9W2RdKSxudWxsIT09ZCYmKGxbYV09Wk8obmV3IHlhKFtdLHt9KSwwLGQpKX0pLGx9ZnVuY3Rpb24gciQoYyl7Y29uc3QgbD17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYykuZm9yRWFjaCgo'@; put 'W2EsZF0pPT5sW2FdPWAke2R9YCksbH1mdW5jdGlvbiBpJChjLGwsYSl7cmV0dXJuIGM9PWEucGF0aCYmcmgobCxhLnBhcmFtZXRlcnMpfWNvbnN0IE5fPSJpbXBlcmF0aXZlIjtjbGFzcyBpaHtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuaWQ9bCx0aGlzLnVybD1hfX1jbGFzcyBZTyBleHRlbmRz'@; put 'IGloe2NvbnN0cnVjdG9yKGwsYSxkPSJpbXBlcmF0aXZlIixoPW51bGwpe3N1cGVyKGwsYSksdGhpcy50eXBlPTAsdGhpcy5uYXZpZ2F0aW9uVHJpZ2dlcj1kLHRoaXMucmVzdG9yZWRTdGF0ZT1ofXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25TdGFydChpZDogJHt0aGlzLmlkfSwgdXJs'@; put 'OiAnJHt0aGlzLnVybH0nKWB9fWNsYXNzIGhwIGV4dGVuZHMgaWh7Y29uc3RydWN0b3IobCxhLGQpe3N1cGVyKGwsYSksdGhpcy51cmxBZnRlclJlZGlyZWN0cz1kLHRoaXMudHlwZT0xfXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25FbmQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhp'@; put 'cy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9JylgfX1jbGFzcyBNeCBleHRlbmRzIGloe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSksdGhpcy5yZWFzb249ZCx0aGlzLmNvZGU9aCx0aGlzLnR5cGU9Mn10b1N0cmluZygpe3JldHVy'@; put 'bmBOYXZpZ2F0aW9uQ2FuY2VsKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScpYH19Y2xhc3MgVl8gZXh0ZW5kcyBpaHtjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEpLHRoaXMucmVhc29uPWQsdGhpcy5jb2RlPWgsdGhpcy50eXBlPTE2fX1jbGFzcyBXTyBleHRlbmRz'@; put 'IGloe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSksdGhpcy5lcnJvcj1kLHRoaXMudGFyZ2V0PWgsdGhpcy50eXBlPTN9dG9TdHJpbmcoKXtyZXR1cm5gTmF2aWdhdGlvbkVycm9yKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIGVycm9yOiAke3RoaXMuZXJyb3J9'@; put 'KWB9fWNsYXNzIGtkZSBleHRlbmRzIGloe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSksdGhpcy51cmxBZnRlclJlZGlyZWN0cz1kLHRoaXMuc3RhdGU9aCx0aGlzLnR5cGU9NH10b1N0cmluZygpe3JldHVybmBSb3V0ZXNSZWNvZ25pemVkKGlkOiAke3RoaXMuaWR9LCB1cmw6ICck'@; put 'e3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9KWB9fWNsYXNzIEFkZSBleHRlbmRzIGloe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSksdGhpcy51cmxBZnRlclJlZGlyZWN0cz1kLHRo'@; put 'aXMuc3RhdGU9aCx0aGlzLnR5cGU9N310b1N0cmluZygpe3JldHVybmBHdWFyZHNDaGVja1N0YXJ0KGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9KWB9'@; put 'fWNsYXNzIFRkZSBleHRlbmRzIGloe2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7c3VwZXIobCxhKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPWQsdGhpcy5zdGF0ZT1oLHRoaXMuc2hvdWxkQWN0aXZhdGU9Zix0aGlzLnR5cGU9OH10b1N0cmluZygpe3JldHVybmBHdWFyZHNDaGVja0VuZChpZDog'@; put 'JHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nLCB1cmxBZnRlclJlZGlyZWN0czogJyR7dGhpcy51cmxBZnRlclJlZGlyZWN0c30nLCBzdGF0ZTogJHt0aGlzLnN0YXRlfSwgc2hvdWxkQWN0aXZhdGU6ICR7dGhpcy5zaG91bGRBY3RpdmF0ZX0pYH19Y2xhc3MgRGRlIGV4dGVuZHMgaWh7'@; put 'Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPWQsdGhpcy5zdGF0ZT1oLHRoaXMudHlwZT01fXRvU3RyaW5nKCl7cmV0dXJuYFJlc29sdmVTdGFydChpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nLCB1cmxBZnRlclJlZGlyZWN0'@; put 'czogJyR7dGhpcy51cmxBZnRlclJlZGlyZWN0c30nLCBzdGF0ZTogJHt0aGlzLnN0YXRlfSlgfX1jbGFzcyBJZGUgZXh0ZW5kcyBpaHtjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEpLHRoaXMudXJsQWZ0ZXJSZWRpcmVjdHM9ZCx0aGlzLnN0YXRlPWgsdGhpcy50eXBlPTZ9dG9TdHJp'@; put 'bmcoKXtyZXR1cm5gUmVzb2x2ZUVuZChpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nLCB1cmxBZnRlclJlZGlyZWN0czogJyR7dGhpcy51cmxBZnRlclJlZGlyZWN0c30nLCBzdGF0ZTogJHt0aGlzLnN0YXRlfSlgfX1jbGFzcyBMZGV7Y29uc3RydWN0b3IobCl7dGhpcy5yb3V0'@; put 'ZT1sLHRoaXMudHlwZT05fXRvU3RyaW5nKCl7cmV0dXJuYFJvdXRlQ29uZmlnTG9hZFN0YXJ0KHBhdGg6ICR7dGhpcy5yb3V0ZS5wYXRofSlgfX1jbGFzcyBSZGV7Y29uc3RydWN0b3IobCl7dGhpcy5yb3V0ZT1sLHRoaXMudHlwZT0xMH10b1N0cmluZygpe3JldHVybmBSb3V0ZUNvbmZpZ0xv'@; put 'YWRFbmQocGF0aDogJHt0aGlzLnJvdXRlLnBhdGh9KWB9fWNsYXNzIE9kZXtjb25zdHJ1Y3RvcihsKXt0aGlzLnNuYXBzaG90PWwsdGhpcy50eXBlPTExfXRvU3RyaW5nKCl7cmV0dXJuYENoaWxkQWN0aXZhdGlvblN0YXJ0KHBhdGg6ICcke3RoaXMuc25hcHNob3Qucm91dGVDb25maWcmJnRo'@; put 'aXMuc25hcHNob3Qucm91dGVDb25maWcucGF0aHx8IiJ9JylgfX1jbGFzcyBQZGV7Y29uc3RydWN0b3IobCl7dGhpcy5zbmFwc2hvdD1sLHRoaXMudHlwZT0xMn10b1N0cmluZygpe3JldHVybmBDaGlsZEFjdGl2YXRpb25FbmQocGF0aDogJyR7dGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZyYm'@; put 'dGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRofHwiIn0nKWB9fWNsYXNzIEZkZXtjb25zdHJ1Y3RvcihsKXt0aGlzLnNuYXBzaG90PWwsdGhpcy50eXBlPTEzfXRvU3RyaW5nKCl7cmV0dXJuYEFjdGl2YXRpb25TdGFydChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0'@; put 'aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgSGRle2NvbnN0cnVjdG9yKGwpe3RoaXMuc25hcHNob3Q9bCx0aGlzLnR5cGU9MTR9dG9TdHJpbmcoKXtyZXR1cm5gQWN0aXZhdGlvbkVuZChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlz'@; put 'LnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgbyR7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMucm91dGVyRXZlbnQ9bCx0aGlzLnBvc2l0aW9uPWEsdGhpcy5hbmNob3I9ZCx0aGlzLnR5cGU9MTV9dG9TdHJpbmcoKXtyZXR1cm5gU2Nyb2xsKGFuY2hvcjogJyR7dGhp'@; put 'cy5hbmNob3J9JywgcG9zaXRpb246ICcke3RoaXMucG9zaXRpb24/YCR7dGhpcy5wb3NpdGlvblswXX0sICR7dGhpcy5wb3NpdGlvblsxXX1gOm51bGx9JylgfX1jbGFzcyBOZGV7Y29uc3RydWN0b3IoKXt0aGlzLm91dGxldD1udWxsLHRoaXMucm91dGU9bnVsbCx0aGlzLmluamVjdG9yPW51'@; put 'bGwsdGhpcy5jaGlsZHJlbj1uZXcgQl8sdGhpcy5hdHRhY2hSZWY9bnVsbH19bGV0IEJfPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmNvbnRleHRzPW5ldyBNYXB9b25DaGlsZE91dGxldENyZWF0ZWQoYSxkKXtjb25zdCBoPXRoaXMuZ2V0T3JDcmVhdGVDb250ZXh0KGEpO2gu'@; put 'b3V0bGV0PWQsdGhpcy5jb250ZXh0cy5zZXQoYSxoKX1vbkNoaWxkT3V0bGV0RGVzdHJveWVkKGEpe2NvbnN0IGQ9dGhpcy5nZXRDb250ZXh0KGEpO2QmJihkLm91dGxldD1udWxsLGQuYXR0YWNoUmVmPW51bGwpfW9uT3V0bGV0RGVhY3RpdmF0ZWQoKXtjb25zdCBhPXRoaXMuY29udGV4dHM7'@; put 'cmV0dXJuIHRoaXMuY29udGV4dHM9bmV3IE1hcCxhfW9uT3V0bGV0UmVBdHRhY2hlZChhKXt0aGlzLmNvbnRleHRzPWF9Z2V0T3JDcmVhdGVDb250ZXh0KGEpe2xldCBkPXRoaXMuZ2V0Q29udGV4dChhKTtyZXR1cm4gZHx8KGQ9bmV3IE5kZSx0aGlzLmNvbnRleHRzLnNldChhLGQpKSxkfWdl'@; put 'dENvbnRleHQoYSl7cmV0dXJuIHRoaXMuY29udGV4dHMuZ2V0KGEpfHxudWxsfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSko'@; put 'KTtjbGFzcyBzJHtjb25zdHJ1Y3RvcihsKXt0aGlzLl9yb290PWx9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdC52YWx1ZX1wYXJlbnQobCl7Y29uc3QgYT10aGlzLnBhdGhGcm9tUm9vdChsKTtyZXR1cm4gYS5sZW5ndGg+MT9hW2EubGVuZ3RoLTJdOm51bGx9Y2hpbGRyZW4obCl7Y29u'@; put 'c3QgYT1HTyhsLHRoaXMuX3Jvb3QpO3JldHVybiBhP2EuY2hpbGRyZW4ubWFwKGQ9PmQudmFsdWUpOltdfWZpcnN0Q2hpbGQobCl7Y29uc3QgYT1HTyhsLHRoaXMuX3Jvb3QpO3JldHVybiBhJiZhLmNoaWxkcmVuLmxlbmd0aD4wP2EuY2hpbGRyZW5bMF0udmFsdWU6bnVsbH1zaWJsaW5ncyhs'@; put 'KXtjb25zdCBhPSRPKGwsdGhpcy5fcm9vdCk7cmV0dXJuIGEubGVuZ3RoPDI/W106YVthLmxlbmd0aC0yXS5jaGlsZHJlbi5tYXAoaD0+aC52YWx1ZSkuZmlsdGVyKGg9PmghPT1sKX1wYXRoRnJvbVJvb3QobCl7cmV0dXJuICRPKGwsdGhpcy5fcm9vdCkubWFwKGE9PmEudmFsdWUpfX1mdW5j'@; put 'dGlvbiBHTyhjLGwpe2lmKGM9PT1sLnZhbHVlKXJldHVybiBsO2Zvcihjb25zdCBhIG9mIGwuY2hpbGRyZW4pe2NvbnN0IGQ9R08oYyxhKTtpZihkKXJldHVybiBkfXJldHVybiBudWxsfWZ1bmN0aW9uICRPKGMsbCl7aWYoYz09PWwudmFsdWUpcmV0dXJuW2xdO2Zvcihjb25zdCBhIG9mIGwu'@; put 'Y2hpbGRyZW4pe2NvbnN0IGQ9JE8oYyxhKTtpZihkLmxlbmd0aClyZXR1cm4gZC51bnNoaWZ0KGwpLGR9cmV0dXJuW119Y2xhc3MgeGZ7Y29uc3RydWN0b3IobCxhKXt0aGlzLnZhbHVlPWwsdGhpcy5jaGlsZHJlbj1hfXRvU3RyaW5nKCl7cmV0dXJuYFRyZWVOb2RlKCR7dGhpcy52YWx1ZX0p'@; put 'YH19ZnVuY3Rpb24gcTYoYyl7Y29uc3QgbD17fTtyZXR1cm4gYyYmYy5jaGlsZHJlbi5mb3JFYWNoKGE9PmxbYS52YWx1ZS5vdXRsZXRdPWEpLGx9Y2xhc3MgYSQgZXh0ZW5kcyBzJHtjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwpLHRoaXMuc25hcHNob3Q9YSxxTyh0aGlzLGwpfXRvU3RyaW5n'@; put 'KCl7cmV0dXJuIHRoaXMuc25hcHNob3QudG9TdHJpbmcoKX19ZnVuY3Rpb24gbCQoYyxsKXtjb25zdCBhPWZ1bmN0aW9uIFZkZShjLGwpe2NvbnN0IF89bmV3IHh4KFtdLHt9LHt9LCIiLHt9LGxzLGwsbnVsbCx7fSk7cmV0dXJuIG5ldyB1JCgiIixuZXcgeGYoXyxbXSkpfSgwLGwpLGQ9bmV3'@; put 'IFRlKFtuZXcgUl8oIiIse30pXSksaD1uZXcgVGUoe30pLGY9bmV3IFRlKHt9KSxfPW5ldyBUZSh7fSksVD1uZXcgVGUoIiIpLFc9bmV3IEdsKGQsaCxfLFQsZixscyxsLGEucm9vdCk7cmV0dXJuIFcuc25hcHNob3Q9YS5yb290LG5ldyBhJChuZXcgeGYoVyxbXSksYSl9Y2xhc3MgR2x7Y29u'@; put 'c3RydWN0b3IobCxhLGQsaCxmLF8sVCxXKXt0aGlzLnVybFN1YmplY3Q9bCx0aGlzLnBhcmFtc1N1YmplY3Q9YSx0aGlzLnF1ZXJ5UGFyYW1zU3ViamVjdD1kLHRoaXMuZnJhZ21lbnRTdWJqZWN0PWgsdGhpcy5kYXRhU3ViamVjdD1mLHRoaXMub3V0bGV0PV8sdGhpcy5jb21wb25lbnQ9VCx0'@; put 'aGlzLl9mdXR1cmVTbmFwc2hvdD1XLHRoaXMudGl0bGU9dGhpcy5kYXRhU3ViamVjdD8ucGlwZShNZShpZT0+aWVbTF9dKSk/P1dpKHZvaWQgMCksdGhpcy51cmw9bCx0aGlzLnBhcmFtcz1hLHRoaXMucXVlcnlQYXJhbXM9ZCx0aGlzLmZyYWdtZW50PWgsdGhpcy5kYXRhPWZ9Z2V0IHJvdXRl'@; put 'Q29uZmlnKCl7cmV0dXJuIHRoaXMuX2Z1dHVyZVNuYXBzaG90LnJvdXRlQ29uZmlnfWdldCByb290KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnJvb3R9Z2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5wYXJlbnQodGhpcyl9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4g'@; put 'dGhpcy5fcm91dGVyU3RhdGUuZmlyc3RDaGlsZCh0aGlzKX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUuY2hpbGRyZW4odGhpcyl9Z2V0IHBhdGhGcm9tUm9vdCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5wYXRoRnJvbVJvb3QodGhpcyl9Z2V0IHBhcmFtTWFw'@; put 'KCl7cmV0dXJuIHRoaXMuX3BhcmFtTWFwfHwodGhpcy5fcGFyYW1NYXA9dGhpcy5wYXJhbXMucGlwZShNZShsPT5HNihsKSkpKSx0aGlzLl9wYXJhbU1hcH1nZXQgcXVlcnlQYXJhbU1hcCgpe3JldHVybiB0aGlzLl9xdWVyeVBhcmFtTWFwfHwodGhpcy5fcXVlcnlQYXJhbU1hcD10aGlzLnF1'@; put 'ZXJ5UGFyYW1zLnBpcGUoTWUobD0+RzYobCkpKSksdGhpcy5fcXVlcnlQYXJhbU1hcH10b1N0cmluZygpe3JldHVybiB0aGlzLnNuYXBzaG90P3RoaXMuc25hcHNob3QudG9TdHJpbmcoKTpgRnV0dXJlKCR7dGhpcy5fZnV0dXJlU25hcHNob3R9KWB9fWZ1bmN0aW9uIGMkKGMsbD0iZW1wdHlP'@; put 'bmx5Iil7Y29uc3QgYT1jLnBhdGhGcm9tUm9vdDtsZXQgZD0wO2lmKCJhbHdheXMiIT09bClmb3IoZD1hLmxlbmd0aC0xO2Q+PTE7KXtjb25zdCBoPWFbZF0sZj1hW2QtMV07aWYoaC5yb3V0ZUNvbmZpZyYmIiI9PT1oLnJvdXRlQ29uZmlnLnBhdGgpZC0tO2Vsc2V7aWYoZi5jb21wb25lbnQp'@; put 'YnJlYWs7ZC0tfX1yZXR1cm4gZnVuY3Rpb24gQmRlKGMpe3JldHVybiBjLnJlZHVjZSgobCxhKT0+KHtwYXJhbXM6ey4uLmwucGFyYW1zLC4uLmEucGFyYW1zfSxkYXRhOnsuLi5sLmRhdGEsLi4uYS5kYXRhfSxyZXNvbHZlOnsuLi5hLmRhdGEsLi4ubC5yZXNvbHZlLC4uLmEucm91dGVDb25m'@; put 'aWc/LmRhdGEsLi4uYS5fcmVzb2x2ZWREYXRhfX0pLHtwYXJhbXM6e30sZGF0YTp7fSxyZXNvbHZlOnt9fSl9KGEuc2xpY2UoZCkpfWNsYXNzIHh4e2dldCB0aXRsZSgpe3JldHVybiB0aGlzLmRhdGE/LltMX119Y29uc3RydWN0b3IobCxhLGQsaCxmLF8sVCxXLGllKXt0aGlzLnVybD1sLHRo'@; put 'aXMucGFyYW1zPWEsdGhpcy5xdWVyeVBhcmFtcz1kLHRoaXMuZnJhZ21lbnQ9aCx0aGlzLmRhdGE9Zix0aGlzLm91dGxldD1fLHRoaXMuY29tcG9uZW50PVQsdGhpcy5yb3V0ZUNvbmZpZz1XLHRoaXMuX3Jlc29sdmU9aWV9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucm9v'@; put 'dH1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhcmVudCh0aGlzKX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5maXJzdENoaWxkKHRoaXMpfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5jaGlsZHJlbih0aGlz'@; put 'KX1nZXQgcGF0aEZyb21Sb290KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhdGhGcm9tUm9vdCh0aGlzKX1nZXQgcGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcGFyYW1NYXB8fCh0aGlzLl9wYXJhbU1hcD1HNih0aGlzLnBhcmFtcykpLHRoaXMuX3BhcmFtTWFwfWdldCBxdWVyeVBhcmFt'@; put 'TWFwKCl7cmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1NYXB8fCh0aGlzLl9xdWVyeVBhcmFtTWFwPUc2KHRoaXMucXVlcnlQYXJhbXMpKSx0aGlzLl9xdWVyeVBhcmFtTWFwfXRvU3RyaW5nKCl7cmV0dXJuYFJvdXRlKHVybDonJHt0aGlzLnVybC5tYXAoZD0+ZC50b1N0cmluZygpKS5qb2luKCIv'@; put 'Iil9JywgcGF0aDonJHt0aGlzLnJvdXRlQ29uZmlnP3RoaXMucm91dGVDb25maWcucGF0aDoiIn0nKWB9fWNsYXNzIHUkIGV4dGVuZHMgcyR7Y29uc3RydWN0b3IobCxhKXtzdXBlcihhKSx0aGlzLnVybD1sLHFPKHRoaXMsYSl9dG9TdHJpbmcoKXtyZXR1cm4gZCQodGhpcy5fcm9vdCl9fWZ1'@; put 'bmN0aW9uIHFPKGMsbCl7bC52YWx1ZS5fcm91dGVyU3RhdGU9YyxsLmNoaWxkcmVuLmZvckVhY2goYT0+cU8oYyxhKSl9ZnVuY3Rpb24gZCQoYyl7Y29uc3QgbD1jLmNoaWxkcmVuLmxlbmd0aD4wP2AgeyAke2MuY2hpbGRyZW4ubWFwKGQkKS5qb2luKCIsICIpfSB9IGA6IiI7cmV0dXJuYCR7'@; put 'Yy52YWx1ZX0ke2x9YH1mdW5jdGlvbiBLTyhjKXtpZihjLnNuYXBzaG90KXtjb25zdCBsPWMuc25hcHNob3QsYT1jLl9mdXR1cmVTbmFwc2hvdDtjLnNuYXBzaG90PWEscmgobC5xdWVyeVBhcmFtcyxhLnF1ZXJ5UGFyYW1zKXx8Yy5xdWVyeVBhcmFtc1N1YmplY3QubmV4dChhLnF1ZXJ5UGFy'@; put 'YW1zKSxsLmZyYWdtZW50IT09YS5mcmFnbWVudCYmYy5mcmFnbWVudFN1YmplY3QubmV4dChhLmZyYWdtZW50KSxyaChsLnBhcmFtcyxhLnBhcmFtcyl8fGMucGFyYW1zU3ViamVjdC5uZXh0KGEucGFyYW1zKSxmdW5jdGlvbiB0ZGUoYyxsKXtpZihjLmxlbmd0aCE9PWwubGVuZ3RoKXJldHVy'@; put 'biExO2ZvcihsZXQgYT0wO2E8Yy5sZW5ndGg7KythKWlmKCFyaChjW2FdLGxbYV0pKXJldHVybiExO3JldHVybiEwfShsLnVybCxhLnVybCl8fGMudXJsU3ViamVjdC5uZXh0KGEudXJsKSxyaChsLmRhdGEsYS5kYXRhKXx8Yy5kYXRhU3ViamVjdC5uZXh0KGEuZGF0YSl9ZWxzZSBjLnNuYXBz'@; put 'aG90PWMuX2Z1dHVyZVNuYXBzaG90LGMuZGF0YVN1YmplY3QubmV4dChjLl9mdXR1cmVTbmFwc2hvdC5kYXRhKX1mdW5jdGlvbiBYTyhjLGwpe2NvbnN0IGE9cmgoYy5wYXJhbXMsbC5wYXJhbXMpJiZmdW5jdGlvbiBvZGUoYyxsKXtyZXR1cm4gVDUoYyxsKSYmYy5ldmVyeSgoYSxkKT0+cmgo'@; put 'YS5wYXJhbWV0ZXJzLGxbZF0ucGFyYW1ldGVycykpfShjLnVybCxsLnVybCk7cmV0dXJuIGEmJiEoIWMucGFyZW50IT0hbC5wYXJlbnQpJiYoIWMucGFyZW50fHxYTyhjLnBhcmVudCxsLnBhcmVudCkpfWxldCBmcD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmF0ZWQ9'@; put 'bnVsbCx0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1udWxsLHRoaXMubmFtZT1scyx0aGlzLmFjdGl2YXRlRXZlbnRzPW5ldyBFcix0aGlzLmRlYWN0aXZhdGVFdmVudHM9bmV3IEVyLHRoaXMuYXR0YWNoRXZlbnRzPW5ldyBFcix0aGlzLmRldGFjaEV2ZW50cz1uZXcgRXIsdGhpcy5wYXJlbnRDb250'@; put 'ZXh0cz1GaShCXyksdGhpcy5sb2NhdGlvbj1GaShhcyksdGhpcy5jaGFuZ2VEZXRlY3Rvcj1GaShVYSksdGhpcy5lbnZpcm9ubWVudEluamVjdG9yPUZpKHEwKSx0aGlzLmlucHV0QmluZGVyPUZpKEV4LHtvcHRpb25hbDohMH0pLHRoaXMuc3VwcG9ydHNCaW5kaW5nVG9Db21wb25lbnRJbnB1'@; put 'dHM9ITB9Z2V0IGFjdGl2YXRlZENvbXBvbmVudFJlZigpe3JldHVybiB0aGlzLmFjdGl2YXRlZH1uZ09uQ2hhbmdlcyhhKXtpZihhLm5hbWUpe2NvbnN0e2ZpcnN0Q2hhbmdlOmQscHJldmlvdXNWYWx1ZTpofT1hLm5hbWU7aWYoZClyZXR1cm47dGhpcy5pc1RyYWNrZWRJblBhcmVudENvbnRl'@; put 'eHRzKGgpJiYodGhpcy5kZWFjdGl2YXRlKCksdGhpcy5wYXJlbnRDb250ZXh0cy5vbkNoaWxkT3V0bGV0RGVzdHJveWVkKGgpKSx0aGlzLmluaXRpYWxpemVPdXRsZXRXaXRoTmFtZSgpfX1uZ09uRGVzdHJveSgpe3RoaXMuaXNUcmFja2VkSW5QYXJlbnRDb250ZXh0cyh0aGlzLm5hbWUpJiZ0'@; put 'aGlzLnBhcmVudENvbnRleHRzLm9uQ2hpbGRPdXRsZXREZXN0cm95ZWQodGhpcy5uYW1lKSx0aGlzLmlucHV0QmluZGVyPy51bnN1YnNjcmliZUZyb21Sb3V0ZURhdGEodGhpcyl9aXNUcmFja2VkSW5QYXJlbnRDb250ZXh0cyhhKXtyZXR1cm4gdGhpcy5wYXJlbnRDb250ZXh0cy5nZXRDb250'@; put 'ZXh0KGEpPy5vdXRsZXQ9PT10aGlzfW5nT25Jbml0KCl7dGhpcy5pbml0aWFsaXplT3V0bGV0V2l0aE5hbWUoKX1pbml0aWFsaXplT3V0bGV0V2l0aE5hbWUoKXtpZih0aGlzLnBhcmVudENvbnRleHRzLm9uQ2hpbGRPdXRsZXRDcmVhdGVkKHRoaXMubmFtZSx0aGlzKSx0aGlzLmFjdGl2YXRl'@; put 'ZClyZXR1cm47Y29uc3QgYT10aGlzLnBhcmVudENvbnRleHRzLmdldENvbnRleHQodGhpcy5uYW1lKTthPy5yb3V0ZSYmKGEuYXR0YWNoUmVmP3RoaXMuYXR0YWNoKGEuYXR0YWNoUmVmLGEucm91dGUpOnRoaXMuYWN0aXZhdGVXaXRoKGEucm91dGUsYS5pbmplY3RvcikpfWdldCBpc0FjdGl2'@; put 'YXRlZCgpe3JldHVybiEhdGhpcy5hY3RpdmF0ZWR9Z2V0IGNvbXBvbmVudCgpe2lmKCF0aGlzLmFjdGl2YXRlZCl0aHJvdyBuZXcgQXIoNDAxMiwhMSk7cmV0dXJuIHRoaXMuYWN0aXZhdGVkLmluc3RhbmNlfWdldCBhY3RpdmF0ZWRSb3V0ZSgpe2lmKCF0aGlzLmFjdGl2YXRlZCl0aHJvdyBu'@; put 'ZXcgQXIoNDAxMiwhMSk7cmV0dXJuIHRoaXMuX2FjdGl2YXRlZFJvdXRlfWdldCBhY3RpdmF0ZWRSb3V0ZURhdGEoKXtyZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGU/dGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YTp7fX1kZXRhY2goKXtpZighdGhpcy5hY3RpdmF0ZWQpdGhy'@; put 'b3cgbmV3IEFyKDQwMTIsITEpO3RoaXMubG9jYXRpb24uZGV0YWNoKCk7Y29uc3QgYT10aGlzLmFjdGl2YXRlZDtyZXR1cm4gdGhpcy5hY3RpdmF0ZWQ9bnVsbCx0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1udWxsLHRoaXMuZGV0YWNoRXZlbnRzLmVtaXQoYS5pbnN0YW5jZSksYX1hdHRhY2goYSxk'@; put 'KXt0aGlzLmFjdGl2YXRlZD1hLHRoaXMuX2FjdGl2YXRlZFJvdXRlPWQsdGhpcy5sb2NhdGlvbi5pbnNlcnQoYS5ob3N0VmlldyksdGhpcy5pbnB1dEJpbmRlcj8uYmluZEFjdGl2YXRlZFJvdXRlVG9PdXRsZXRDb21wb25lbnQodGhpcyksdGhpcy5hdHRhY2hFdmVudHMuZW1pdChhLmluc3Rh'@; put 'bmNlKX1kZWFjdGl2YXRlKCl7aWYodGhpcy5hY3RpdmF0ZWQpe2NvbnN0IGE9dGhpcy5jb21wb25lbnQ7dGhpcy5hY3RpdmF0ZWQuZGVzdHJveSgpLHRoaXMuYWN0aXZhdGVkPW51bGwsdGhpcy5fYWN0aXZhdGVkUm91dGU9bnVsbCx0aGlzLmRlYWN0aXZhdGVFdmVudHMuZW1pdChhKX19YWN0'@; put 'aXZhdGVXaXRoKGEsZCl7aWYodGhpcy5pc0FjdGl2YXRlZCl0aHJvdyBuZXcgQXIoNDAxMywhMSk7dGhpcy5fYWN0aXZhdGVkUm91dGU9YTtjb25zdCBoPXRoaXMubG9jYXRpb24sXz1hLnNuYXBzaG90LmNvbXBvbmVudCxUPXRoaXMucGFyZW50Q29udGV4dHMuZ2V0T3JDcmVhdGVDb250ZXh0'@; put 'KHRoaXMubmFtZSkuY2hpbGRyZW4sVz1uZXcgamRlKGEsVCxoLmluamVjdG9yKTt0aGlzLmFjdGl2YXRlZD1oLmNyZWF0ZUNvbXBvbmVudChfLHtpbmRleDpoLmxlbmd0aCxpbmplY3RvcjpXLGVudmlyb25tZW50SW5qZWN0b3I6ZD8/dGhpcy5lbnZpcm9ubWVudEluamVjdG9yfSksdGhpcy5j'@; put 'aGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSx0aGlzLmlucHV0QmluZGVyPy5iaW5kQWN0aXZhdGVkUm91dGVUb091dGxldENvbXBvbmVudCh0aGlzKSx0aGlzLmFjdGl2YXRlRXZlbnRzLmVtaXQodGhpcy5hY3RpdmF0ZWQuaW5zdGFuY2UpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rp'@; put 'b24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1sicm91dGVyLW91dGxldCJdXSxpbnB1dHM6e25hbWU6Im5hbWUifSxvdXRwdXRzOnthY3RpdmF0ZUV2ZW50czoiYWN0aXZhdGUiLGRlYWN0aXZhdGVFdmVudHM6ImRlYWN0aXZhdGUiLGF0'@; put 'dGFjaEV2ZW50czoiYXR0YWNoIixkZXRhY2hFdmVudHM6ImRldGFjaCJ9LGV4cG9ydEFzOlsib3V0bGV0Il0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbdmFdfSksY30pKCk7Y2xhc3MgamRle2NvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLnJvdXRlPWwsdGhpcy5jaGlsZENvbnRleHRzPWEsdGhp'@; put 'cy5wYXJlbnQ9ZH1nZXQobCxhKXtyZXR1cm4gbD09PUdsP3RoaXMucm91dGU6bD09PUJfP3RoaXMuY2hpbGRDb250ZXh0czp0aGlzLnBhcmVudC5nZXQobCxhKX19Y29uc3QgRXg9bmV3IFNpKCIiKTtsZXQgaCQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMub3V0bGV0RGF0YVN1'@; put 'YnNjcmlwdGlvbnM9bmV3IE1hcH1iaW5kQWN0aXZhdGVkUm91dGVUb091dGxldENvbXBvbmVudChhKXt0aGlzLnVuc3Vic2NyaWJlRnJvbVJvdXRlRGF0YShhKSx0aGlzLnN1YnNjcmliZVRvUm91dGVEYXRhKGEpfXVuc3Vic2NyaWJlRnJvbVJvdXRlRGF0YShhKXt0aGlzLm91dGxldERhdGFT'@; put 'dWJzY3JpcHRpb25zLmdldChhKT8udW5zdWJzY3JpYmUoKSx0aGlzLm91dGxldERhdGFTdWJzY3JpcHRpb25zLmRlbGV0ZShhKX1zdWJzY3JpYmVUb1JvdXRlRGF0YShhKXtjb25zdHthY3RpdmF0ZWRSb3V0ZTpkfT1hLGg9WTYoW2QucXVlcnlQYXJhbXMsZC5wYXJhbXMsZC5kYXRhXSkucGlw'@; put 'ZShTYSgoW2YsXyxUXSxXKT0+KFQ9ey4uLmYsLi4uXywuLi5UfSwwPT09Vz9XaShUKTpQcm9taXNlLnJlc29sdmUoVCkpKSkuc3Vic2NyaWJlKGY9PntpZighYS5pc0FjdGl2YXRlZHx8IWEuYWN0aXZhdGVkQ29tcG9uZW50UmVmfHxhLmFjdGl2YXRlZFJvdXRlIT09ZHx8bnVsbD09PWQuY29t'@; put 'cG9uZW50KXJldHVybiB2b2lkIHRoaXMudW5zdWJzY3JpYmVGcm9tUm91dGVEYXRhKGEpO2NvbnN0IF89ZnVuY3Rpb24gQ3VlKGMpe2NvbnN0IGw9UW8oYyk7aWYoIWwpcmV0dXJuIG51bGw7Y29uc3QgYT1uZXcgaDUobCk7cmV0dXJue2dldCBzZWxlY3Rvcigpe3JldHVybiBhLnNlbGVjdG9y'@; put 'fSxnZXQgdHlwZSgpe3JldHVybiBhLmNvbXBvbmVudFR5cGV9LGdldCBpbnB1dHMoKXtyZXR1cm4gYS5pbnB1dHN9LGdldCBvdXRwdXRzKCl7cmV0dXJuIGEub3V0cHV0c30sZ2V0IG5nQ29udGVudFNlbGVjdG9ycygpe3JldHVybiBhLm5nQ29udGVudFNlbGVjdG9yc30sZ2V0IGlzU3RhbmRh'@; put 'bG9uZSgpe3JldHVybiBsLnN0YW5kYWxvbmV9LGdldCBpc1NpZ25hbCgpe3JldHVybiBsLnNpZ25hbHN9fX0oZC5jb21wb25lbnQpO2lmKF8pZm9yKGNvbnN0e3RlbXBsYXRlTmFtZTpUfW9mIF8uaW5wdXRzKWEuYWN0aXZhdGVkQ29tcG9uZW50UmVmLnNldElucHV0KFQsZltUXSk7ZWxzZSB0'@; put 'aGlzLnVuc3Vic2NyaWJlRnJvbVJvdXRlRGF0YShhKX0pO3RoaXMub3V0bGV0RGF0YVN1YnNjcmlwdGlvbnMuc2V0KGEsaCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZh'@; put 'Y30pLGN9KSgpO2Z1bmN0aW9uIGpfKGMsbCxhKXtpZihhJiZjLnNob3VsZFJldXNlUm91dGUobC52YWx1ZSxhLnZhbHVlLnNuYXBzaG90KSl7Y29uc3QgZD1hLnZhbHVlO2QuX2Z1dHVyZVNuYXBzaG90PWwudmFsdWU7Y29uc3QgaD1mdW5jdGlvbiBVZGUoYyxsLGEpe3JldHVybiBsLmNoaWxk'@; put 'cmVuLm1hcChkPT57Zm9yKGNvbnN0IGggb2YgYS5jaGlsZHJlbilpZihjLnNob3VsZFJldXNlUm91dGUoZC52YWx1ZSxoLnZhbHVlLnNuYXBzaG90KSlyZXR1cm4gal8oYyxkLGgpO3JldHVybiBqXyhjLGQpfSl9KGMsbCxhKTtyZXR1cm4gbmV3IHhmKGQsaCl9e2lmKGMuc2hvdWxkQXR0YWNo'@; put 'KGwudmFsdWUpKXtjb25zdCBmPWMucmV0cmlldmUobC52YWx1ZSk7aWYobnVsbCE9PWYpe2NvbnN0IF89Zi5yb3V0ZTtyZXR1cm4gXy52YWx1ZS5fZnV0dXJlU25hcHNob3Q9bC52YWx1ZSxfLmNoaWxkcmVuPWwuY2hpbGRyZW4ubWFwKFQ9PmpfKGMsVCkpLF99fWNvbnN0IGQ9ZnVuY3Rpb24g'@; put 'WmRlKGMpe3JldHVybiBuZXcgR2wobmV3IFRlKGMudXJsKSxuZXcgVGUoYy5wYXJhbXMpLG5ldyBUZShjLnF1ZXJ5UGFyYW1zKSxuZXcgVGUoYy5mcmFnbWVudCksbmV3IFRlKGMuZGF0YSksYy5vdXRsZXQsYy5jb21wb25lbnQsYyl9KGwudmFsdWUpLGg9bC5jaGlsZHJlbi5tYXAoZj0+al8o'@; put 'YyxmKSk7cmV0dXJuIG5ldyB4ZihkLGgpfX1jb25zdCBKTz0ibmdOYXZpZ2F0aW9uQ2FuY2VsaW5nRXJyb3IiO2Z1bmN0aW9uIGYkKGMsbCl7Y29uc3R7cmVkaXJlY3RUbzphLG5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM6ZH09RDUobCk/e3JlZGlyZWN0VG86bCxuYXZpZ2F0aW9uQmVoYXZp'@; put 'b3JPcHRpb25zOnZvaWQgMH06bCxoPXAkKCExLDAsbCk7cmV0dXJuIGgudXJsPWEsaC5uYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zPWQsaH1mdW5jdGlvbiBwJChjLGwsYSl7Y29uc3QgZD1uZXcgRXJyb3IoIk5hdmlnYXRpb25DYW5jZWxpbmdFcnJvcjogIisoY3x8IiIpKTtyZXR1cm4gZFtK'@; put 'T109ITAsZC5jYW5jZWxsYXRpb25Db2RlPWwsYSYmKGQudXJsPWEpLGR9ZnVuY3Rpb24gZyQoYyl7cmV0dXJuIG0kKGMpJiZENShjLnVybCl9ZnVuY3Rpb24gbSQoYyl7cmV0dXJuIGMmJmNbSk9dfWxldCB2JD0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7'@; put 'cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1sibmctY29tcG9uZW50Il1dLHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W3BZXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmcXQoMCwicm91dGVyLW91dGxldCIpfSxk'@; put 'ZXBlbmRlbmNpZXM6W2ZwXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTtmdW5jdGlvbiBRTyhjKXtjb25zdCBsPWMuY2hpbGRyZW4mJmMuY2hpbGRyZW4ubWFwKFFPKSxhPWw/ey4uLmMsY2hpbGRyZW46bH06ey4uLmN9O3JldHVybiFhLmNvbXBvbmVudCYmIWEubG9hZENvbXBvbmVudCYmKGx8'@; put 'fGEubG9hZENoaWxkcmVuKSYmYS5vdXRsZXQmJmEub3V0bGV0IT09bHMmJihhLmNvbXBvbmVudD12JCksYX1mdW5jdGlvbiB0MihjKXtyZXR1cm4gYy5vdXRsZXR8fGxzfWZ1bmN0aW9uIHpfKGMpe2lmKCFjKXJldHVybiBudWxsO2lmKGMucm91dGVDb25maWc/Ll9pbmplY3RvcilyZXR1cm4g'@; put 'Yy5yb3V0ZUNvbmZpZy5faW5qZWN0b3I7Zm9yKGxldCBsPWMucGFyZW50O2w7bD1sLnBhcmVudCl7Y29uc3QgYT1sLnJvdXRlQ29uZmlnO2lmKGE/Ll9sb2FkZWRJbmplY3RvcilyZXR1cm4gYS5fbG9hZGVkSW5qZWN0b3I7aWYoYT8uX2luamVjdG9yKXJldHVybiBhLl9pbmplY3Rvcn1yZXR1'@; put 'cm4gbnVsbH1jbGFzcyBYZGV7Y29uc3RydWN0b3IobCxhLGQsaCxmKXt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneT1sLHRoaXMuZnV0dXJlU3RhdGU9YSx0aGlzLmN1cnJTdGF0ZT1kLHRoaXMuZm9yd2FyZEV2ZW50PWgsdGhpcy5pbnB1dEJpbmRpbmdFbmFibGVkPWZ9YWN0aXZhdGUobCl7Y29u'@; put 'c3QgYT10aGlzLmZ1dHVyZVN0YXRlLl9yb290LGQ9dGhpcy5jdXJyU3RhdGU/dGhpcy5jdXJyU3RhdGUuX3Jvb3Q6bnVsbDt0aGlzLmRlYWN0aXZhdGVDaGlsZFJvdXRlcyhhLGQsbCksS08odGhpcy5mdXR1cmVTdGF0ZS5yb290KSx0aGlzLmFjdGl2YXRlQ2hpbGRSb3V0ZXMoYSxkLGwpfWRl'@; put 'YWN0aXZhdGVDaGlsZFJvdXRlcyhsLGEsZCl7Y29uc3QgaD1xNihhKTtsLmNoaWxkcmVuLmZvckVhY2goZj0+e2NvbnN0IF89Zi52YWx1ZS5vdXRsZXQ7dGhpcy5kZWFjdGl2YXRlUm91dGVzKGYsaFtfXSxkKSxkZWxldGUgaFtfXX0pLE9iamVjdC52YWx1ZXMoaCkuZm9yRWFjaChmPT57dGhp'@; put 'cy5kZWFjdGl2YXRlUm91dGVBbmRJdHNDaGlsZHJlbihmLGQpfSl9ZGVhY3RpdmF0ZVJvdXRlcyhsLGEsZCl7Y29uc3QgaD1sLnZhbHVlLGY9YT9hLnZhbHVlOm51bGw7aWYoaD09PWYpaWYoaC5jb21wb25lbnQpe2NvbnN0IF89ZC5nZXRDb250ZXh0KGgub3V0bGV0KTtfJiZ0aGlzLmRlYWN0'@; put 'aXZhdGVDaGlsZFJvdXRlcyhsLGEsXy5jaGlsZHJlbil9ZWxzZSB0aGlzLmRlYWN0aXZhdGVDaGlsZFJvdXRlcyhsLGEsZCk7ZWxzZSBmJiZ0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0NoaWxkcmVuKGEsZCl9ZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4obCxhKXtsLnZhbHVlLmNv'@; put 'bXBvbmVudCYmdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkRGV0YWNoKGwudmFsdWUuc25hcHNob3QpP3RoaXMuZGV0YWNoQW5kU3RvcmVSb3V0ZVN1YnRyZWUobCxhKTp0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZE91dGxldChsLGEpfWRldGFjaEFuZFN0b3JlUm91dGVTdWJ0cmVlKGws'@; put 'YSl7Y29uc3QgZD1hLmdldENvbnRleHQobC52YWx1ZS5vdXRsZXQpLGg9ZCYmbC52YWx1ZS5jb21wb25lbnQ/ZC5jaGlsZHJlbjphLGY9cTYobCk7Zm9yKGNvbnN0IF8gb2YgT2JqZWN0LmtleXMoZikpdGhpcy5kZWFjdGl2YXRlUm91dGVBbmRJdHNDaGlsZHJlbihmW19dLGgpO2lmKGQmJmQu'@; put 'b3V0bGV0KXtjb25zdCBfPWQub3V0bGV0LmRldGFjaCgpLFQ9ZC5jaGlsZHJlbi5vbk91dGxldERlYWN0aXZhdGVkKCk7dGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kuc3RvcmUobC52YWx1ZS5zbmFwc2hvdCx7Y29tcG9uZW50UmVmOl8scm91dGU6bCxjb250ZXh0czpUfSl9fWRlYWN0aXZhdGVS'@; put 'b3V0ZUFuZE91dGxldChsLGEpe2NvbnN0IGQ9YS5nZXRDb250ZXh0KGwudmFsdWUub3V0bGV0KSxoPWQmJmwudmFsdWUuY29tcG9uZW50P2QuY2hpbGRyZW46YSxmPXE2KGwpO2Zvcihjb25zdCBfIG9mIE9iamVjdC5rZXlzKGYpKXRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4o'@; put 'ZltfXSxoKTtkJiYoZC5vdXRsZXQmJihkLm91dGxldC5kZWFjdGl2YXRlKCksZC5jaGlsZHJlbi5vbk91dGxldERlYWN0aXZhdGVkKCkpLGQuYXR0YWNoUmVmPW51bGwsZC5yb3V0ZT1udWxsKX1hY3RpdmF0ZUNoaWxkUm91dGVzKGwsYSxkKXtjb25zdCBoPXE2KGEpO2wuY2hpbGRyZW4uZm9y'@; put 'RWFjaChmPT57dGhpcy5hY3RpdmF0ZVJvdXRlcyhmLGhbZi52YWx1ZS5vdXRsZXRdLGQpLHRoaXMuZm9yd2FyZEV2ZW50KG5ldyBIZGUoZi52YWx1ZS5zbmFwc2hvdCkpfSksbC5jaGlsZHJlbi5sZW5ndGgmJnRoaXMuZm9yd2FyZEV2ZW50KG5ldyBQZGUobC52YWx1ZS5zbmFwc2hvdCkpfWFj'@; put 'dGl2YXRlUm91dGVzKGwsYSxkKXtjb25zdCBoPWwudmFsdWUsZj1hP2EudmFsdWU6bnVsbDtpZihLTyhoKSxoPT09ZilpZihoLmNvbXBvbmVudCl7Y29uc3QgXz1kLmdldE9yQ3JlYXRlQ29udGV4dChoLm91dGxldCk7dGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGwsYSxfLmNoaWxkcmVuKX1l'@; put 'bHNlIHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhsLGEsZCk7ZWxzZSBpZihoLmNvbXBvbmVudCl7Y29uc3QgXz1kLmdldE9yQ3JlYXRlQ29udGV4dChoLm91dGxldCk7aWYodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkQXR0YWNoKGguc25hcHNob3QpKXtjb25zdCBUPXRoaXMucm91'@; put 'dGVSZXVzZVN0cmF0ZWd5LnJldHJpZXZlKGguc25hcHNob3QpO3RoaXMucm91dGVSZXVzZVN0cmF0ZWd5LnN0b3JlKGguc25hcHNob3QsbnVsbCksXy5jaGlsZHJlbi5vbk91dGxldFJlQXR0YWNoZWQoVC5jb250ZXh0cyksXy5hdHRhY2hSZWY9VC5jb21wb25lbnRSZWYsXy5yb3V0ZT1ULnJv'@; put 'dXRlLnZhbHVlLF8ub3V0bGV0JiZfLm91dGxldC5hdHRhY2goVC5jb21wb25lbnRSZWYsVC5yb3V0ZS52YWx1ZSksS08oVC5yb3V0ZS52YWx1ZSksdGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGwsbnVsbCxfLmNoaWxkcmVuKX1lbHNle2NvbnN0IFQ9el8oaC5zbmFwc2hvdCk7Xy5hdHRhY2hS'@; put 'ZWY9bnVsbCxfLnJvdXRlPWgsXy5pbmplY3Rvcj1ULF8ub3V0bGV0JiZfLm91dGxldC5hY3RpdmF0ZVdpdGgoaCxfLmluamVjdG9yKSx0aGlzLmFjdGl2YXRlQ2hpbGRSb3V0ZXMobCxudWxsLF8uY2hpbGRyZW4pfX1lbHNlIHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhsLG51bGwsZCl9fWNs'@; put 'YXNzIF8ke2NvbnN0cnVjdG9yKGwpe3RoaXMucGF0aD1sLHRoaXMucm91dGU9dGhpcy5wYXRoW3RoaXMucGF0aC5sZW5ndGgtMV19fWNsYXNzIGt4e2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5jb21wb25lbnQ9bCx0aGlzLnJvdXRlPWF9fWZ1bmN0aW9uIEpkZShjLGwsYSl7Y29uc3QgZD1jLl9y'@; put 'b290O3JldHVybiBVXyhkLGw/bC5fcm9vdDpudWxsLGEsW2QudmFsdWVdKX1mdW5jdGlvbiBLNihjLGwpe2NvbnN0IGE9U3ltYm9sKCksZD1sLmdldChjLGEpO3JldHVybiBkPT09YT8iZnVuY3Rpb24iIT10eXBlb2YgY3x8ZnVuY3Rpb24gcTcoYyl7cmV0dXJuIG51bGwhPT14ZChjKX0oYyk/'@; put 'bC5nZXQoYyk6YzpkfWZ1bmN0aW9uIFVfKGMsbCxhLGQsaD17Y2FuRGVhY3RpdmF0ZUNoZWNrczpbXSxjYW5BY3RpdmF0ZUNoZWNrczpbXX0pe2NvbnN0IGY9cTYobCk7cmV0dXJuIGMuY2hpbGRyZW4uZm9yRWFjaChfPT57KGZ1bmN0aW9uIGUyZShjLGwsYSxkLGg9e2NhbkRlYWN0aXZhdGVD'@; put 'aGVja3M6W10sY2FuQWN0aXZhdGVDaGVja3M6W119KXtjb25zdCBmPWMudmFsdWUsXz1sP2wudmFsdWU6bnVsbCxUPWE/YS5nZXRDb250ZXh0KGMudmFsdWUub3V0bGV0KTpudWxsO2lmKF8mJmYucm91dGVDb25maWc9PT1fLnJvdXRlQ29uZmlnKXtjb25zdCBXPWZ1bmN0aW9uIHQyZShjLGws'@; put 'YSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIGEoYyxsKTtzd2l0Y2goYSl7Y2FzZSJwYXRoUGFyYW1zQ2hhbmdlIjpyZXR1cm4hVDUoYy51cmwsbC51cmwpO2Nhc2UicGF0aFBhcmFtc09yUXVlcnlQYXJhbXNDaGFuZ2UiOnJldHVybiFUNShjLnVybCxsLnVybCl8fCFyaChjLnF1'@; put 'ZXJ5UGFyYW1zLGwucXVlcnlQYXJhbXMpO2Nhc2UiYWx3YXlzIjpyZXR1cm4hMDtjYXNlInBhcmFtc09yUXVlcnlQYXJhbXNDaGFuZ2UiOnJldHVybiFYTyhjLGwpfHwhcmgoYy5xdWVyeVBhcmFtcyxsLnF1ZXJ5UGFyYW1zKTtkZWZhdWx0OnJldHVybiFYTyhjLGwpfX0oXyxmLGYucm91dGVD'@; put 'b25maWcucnVuR3VhcmRzQW5kUmVzb2x2ZXJzKTtXP2guY2FuQWN0aXZhdGVDaGVja3MucHVzaChuZXcgXyQoZCkpOihmLmRhdGE9Xy5kYXRhLGYuX3Jlc29sdmVkRGF0YT1fLl9yZXNvbHZlZERhdGEpLFVfKGMsbCxmLmNvbXBvbmVudD9UP1QuY2hpbGRyZW46bnVsbDphLGQsaCksVyYmVCYm'@; put 'VC5vdXRsZXQmJlQub3V0bGV0LmlzQWN0aXZhdGVkJiZoLmNhbkRlYWN0aXZhdGVDaGVja3MucHVzaChuZXcga3goVC5vdXRsZXQuY29tcG9uZW50LF8pKX1lbHNlIF8mJlpfKGwsVCxoKSxoLmNhbkFjdGl2YXRlQ2hlY2tzLnB1c2gobmV3IF8kKGQpKSxVXyhjLG51bGwsZi5jb21wb25lbnQ/'@; put 'VD9ULmNoaWxkcmVuOm51bGw6YSxkLGgpfSkoXyxmW18udmFsdWUub3V0bGV0XSxhLGQuY29uY2F0KFtfLnZhbHVlXSksaCksZGVsZXRlIGZbXy52YWx1ZS5vdXRsZXRdfSksT2JqZWN0LmVudHJpZXMoZikuZm9yRWFjaCgoW18sVF0pPT5aXyhULGEuZ2V0Q29udGV4dChfKSxoKSksaH1mdW5j'@; put 'dGlvbiBaXyhjLGwsYSl7Y29uc3QgZD1xNihjKSxoPWMudmFsdWU7T2JqZWN0LmVudHJpZXMoZCkuZm9yRWFjaCgoW2YsX10pPT57Wl8oXyxoLmNvbXBvbmVudD9sP2wuY2hpbGRyZW4uZ2V0Q29udGV4dChmKTpudWxsOmwsYSl9KSxhLmNhbkRlYWN0aXZhdGVDaGVja3MucHVzaChuZXcga3go'@; put 'aC5jb21wb25lbnQmJmwmJmwub3V0bGV0JiZsLm91dGxldC5pc0FjdGl2YXRlZD9sLm91dGxldC5jb21wb25lbnQ6bnVsbCxoKSl9ZnVuY3Rpb24gWV8oYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGN9ZnVuY3Rpb24gYiQoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBneHx8IkVtcHR5RXJy'@; put 'b3IiPT09Yz8ubmFtZX1jb25zdCBBeD1TeW1ib2woIklOSVRJQUxfVkFMVUUiKTtmdW5jdGlvbiBYNigpe3JldHVybiBTYShjPT5ZNihjLm1hcChsPT5sLnBpcGUoaWQoMSksY3AoQXgpKSkpLnBpcGUoTWUobD0+e2Zvcihjb25zdCBhIG9mIGwpaWYoITAhPT1hKXtpZihhPT09QXgpcmV0dXJu'@; put 'IEF4O2lmKCExPT09YXx8YSBpbnN0YW5jZW9mICQ2KXJldHVybiBhfXJldHVybiEwfSksSWEobD0+bCE9PUF4KSxpZCgxKSkpfWZ1bmN0aW9uIHkkKGMpe3JldHVybiBmdW5jdGlvbiBqZSguLi5jKXtyZXR1cm4gV2UoYyl9KFVjKGw9PntpZihENShsKSl0aHJvdyBmJCgwLGwpfSksTWUobD0+'@; put 'ITA9PT1sKSl9Y2xhc3MgVHh7Y29uc3RydWN0b3IobCl7dGhpcy5zZWdtZW50R3JvdXA9bHx8bnVsbH19Y2xhc3MgdyR7Y29uc3RydWN0b3IobCl7dGhpcy51cmxUcmVlPWx9fWZ1bmN0aW9uIEo2KGMpe3JldHVybiBEXyhuZXcgVHgoYykpfWZ1bmN0aW9uIEMkKGMpe3JldHVybiBEXyhuZXcg'@; put 'dyQoYykpfWNsYXNzIHcyZXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMudXJsU2VyaWFsaXplcj1sLHRoaXMudXJsVHJlZT1hfW5vTWF0Y2hFcnJvcihsKXtyZXR1cm4gbmV3IEFyKDQwMDIsITEpfWxpbmVyYWxpemVTZWdtZW50cyhsLGEpe2xldCBkPVtdLGg9YS5yb290O2Zvcig7Oyl7aWYoZD1k'@; put 'LmNvbmNhdChoLnNlZ21lbnRzKSwwPT09aC5udW1iZXJPZkNoaWxkcmVuKXJldHVybiBXaShkKTtpZihoLm51bWJlck9mQ2hpbGRyZW4+MXx8IWguY2hpbGRyZW5bbHNdKXJldHVybiBEXyhuZXcgQXIoNGUzLCExKSk7aD1oLmNoaWxkcmVuW2xzXX19YXBwbHlSZWRpcmVjdENvbW1hbmRzKGws'@; put 'YSxkKXtyZXR1cm4gdGhpcy5hcHBseVJlZGlyZWN0Q3JlYXRlVXJsVHJlZShhLHRoaXMudXJsU2VyaWFsaXplci5wYXJzZShhKSxsLGQpfWFwcGx5UmVkaXJlY3RDcmVhdGVVcmxUcmVlKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAobCxhLnJvb3QsZCxoKTtyZXR1'@; put 'cm4gbmV3ICQ2KGYsdGhpcy5jcmVhdGVRdWVyeVBhcmFtcyhhLnF1ZXJ5UGFyYW1zLHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcyksYS5mcmFnbWVudCl9Y3JlYXRlUXVlcnlQYXJhbXMobCxhKXtjb25zdCBkPXt9O3JldHVybiBPYmplY3QuZW50cmllcyhsKS5mb3JFYWNoKChbaCxmXSk9Pntp'@; put 'Zigic3RyaW5nIj09dHlwZW9mIGYmJmYuc3RhcnRzV2l0aCgiOiIpKXtjb25zdCBUPWYuc3Vic3RyaW5nKDEpO2RbaF09YVtUXX1lbHNlIGRbaF09Zn0pLGR9Y3JlYXRlU2VnbWVudEdyb3VwKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5jcmVhdGVTZWdtZW50cyhsLGEuc2VnbWVudHMsZCxoKTts'@; put 'ZXQgXz17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYS5jaGlsZHJlbikuZm9yRWFjaCgoW1QsV10pPT57X1tUXT10aGlzLmNyZWF0ZVNlZ21lbnRHcm91cChsLFcsZCxoKX0pLG5ldyB5YShmLF8pfWNyZWF0ZVNlZ21lbnRzKGwsYSxkLGgpe3JldHVybiBhLm1hcChmPT5mLnBhdGguc3RhcnRz'@; put 'V2l0aCgiOiIpP3RoaXMuZmluZFBvc1BhcmFtKGwsZixoKTp0aGlzLmZpbmRPclJldHVybihmLGQpKX1maW5kUG9zUGFyYW0obCxhLGQpe2NvbnN0IGg9ZFthLnBhdGguc3Vic3RyaW5nKDEpXTtpZighaCl0aHJvdyBuZXcgQXIoNDAwMSwhMSk7cmV0dXJuIGh9ZmluZE9yUmV0dXJuKGwsYSl7'@; put 'bGV0IGQ9MDtmb3IoY29uc3QgaCBvZiBhKXtpZihoLnBhdGg9PT1sLnBhdGgpcmV0dXJuIGEuc3BsaWNlKGQpLGg7ZCsrfXJldHVybiBsfX1jb25zdCBlUD17bWF0Y2hlZDohMSxjb25zdW1lZFNlZ21lbnRzOltdLHJlbWFpbmluZ1NlZ21lbnRzOltdLHBhcmFtZXRlcnM6e30scG9zaXRpb25h'@; put 'bFBhcmFtU2VnbWVudHM6e319O2Z1bmN0aW9uIEMyZShjLGwsYSxkLGgpe2NvbnN0IGY9dFAoYyxsLGEpO3JldHVybiBmLm1hdGNoZWQ/KGQ9ZnVuY3Rpb24gWWRlKGMsbCl7cmV0dXJuIGMucHJvdmlkZXJzJiYhYy5faW5qZWN0b3ImJihjLl9pbmplY3Rvcj1BUihjLnByb3ZpZGVycyxsLGBS'@; put 'b3V0ZTogJHtjLnBhdGh9YCkpLGMuX2luamVjdG9yPz9sfShsLGQpLGZ1bmN0aW9uIF8yZShjLGwsYSxkKXtjb25zdCBoPWwuY2FuTWF0Y2g7cmV0dXJuIGgmJjAhPT1oLmxlbmd0aD9XaShoLm1hcChfPT57Y29uc3QgVD1LNihfLGMpO3JldHVybiBkcChmdW5jdGlvbiBhMmUoYyl7cmV0dXJu'@; put 'IGMmJllfKGMuY2FuTWF0Y2gpfShUKT9ULmNhbk1hdGNoKGwsYSk6Yy5ydW5JbkNvbnRleHQoKCk9PlQobCxhKSkpfSkpLnBpcGUoWDYoKSx5JCgpKTpXaSghMCl9KGQsbCxhKS5waXBlKE1lKF89PiEwPT09Xz9mOnsuLi5lUH0pKSk6V2koZil9ZnVuY3Rpb24gdFAoYyxsLGEpe2lmKCIiPT09'@; put 'bC5wYXRoKXJldHVybiJmdWxsIj09PWwucGF0aE1hdGNoJiYoYy5oYXNDaGlsZHJlbigpfHxhLmxlbmd0aD4wKT97Li4uZVB9OnttYXRjaGVkOiEwLGNvbnN1bWVkU2VnbWVudHM6W10scmVtYWluaW5nU2VnbWVudHM6YSxwYXJhbWV0ZXJzOnt9LHBvc2l0aW9uYWxQYXJhbVNlZ21lbnRzOnt9'@; put 'fTtjb25zdCBoPShsLm1hdGNoZXJ8fGVkZSkoYSxjLGwpO2lmKCFoKXJldHVybnsuLi5lUH07Y29uc3QgZj17fTtPYmplY3QuZW50cmllcyhoLnBvc1BhcmFtcz8/e30pLmZvckVhY2goKFtULFddKT0+e2ZbVF09Vy5wYXRofSk7Y29uc3QgXz1oLmNvbnN1bWVkLmxlbmd0aD4wP3suLi5mLC4u'@; put 'LmguY29uc3VtZWRbaC5jb25zdW1lZC5sZW5ndGgtMV0ucGFyYW1ldGVyc306ZjtyZXR1cm57bWF0Y2hlZDohMCxjb25zdW1lZFNlZ21lbnRzOmguY29uc3VtZWQscmVtYWluaW5nU2VnbWVudHM6YS5zbGljZShoLmNvbnN1bWVkLmxlbmd0aCkscGFyYW1ldGVyczpfLHBvc2l0aW9uYWxQYXJh'@; put 'bVNlZ21lbnRzOmgucG9zUGFyYW1zPz97fX19ZnVuY3Rpb24gUyQoYyxsLGEsZCl7cmV0dXJuIGEubGVuZ3RoPjAmJmZ1bmN0aW9uIHgyZShjLGwsYSl7cmV0dXJuIGEuc29tZShkPT5EeChjLGwsZCkmJnQyKGQpIT09bHMpfShjLGEsZCk/e3NlZ21lbnRHcm91cDpuZXcgeWEobCxNMmUoZCxu'@; put 'ZXcgeWEoYSxjLmNoaWxkcmVuKSkpLHNsaWNlZFNlZ21lbnRzOltdfTowPT09YS5sZW5ndGgmJmZ1bmN0aW9uIEUyZShjLGwsYSl7cmV0dXJuIGEuc29tZShkPT5EeChjLGwsZCkpfShjLGEsZCk/e3NlZ21lbnRHcm91cDpuZXcgeWEoYy5zZWdtZW50cyxTMmUoYywwLGEsZCxjLmNoaWxkcmVu'@; put 'KSksc2xpY2VkU2VnbWVudHM6YX06e3NlZ21lbnRHcm91cDpuZXcgeWEoYy5zZWdtZW50cyxjLmNoaWxkcmVuKSxzbGljZWRTZWdtZW50czphfX1mdW5jdGlvbiBTMmUoYyxsLGEsZCxoKXtjb25zdCBmPXt9O2Zvcihjb25zdCBfIG9mIGQpaWYoRHgoYyxhLF8pJiYhaFt0MihfKV0pe2NvbnN0'@; put 'IFQ9bmV3IHlhKFtdLHt9KTtmW3QyKF8pXT1UfXJldHVybnsuLi5oLC4uLmZ9fWZ1bmN0aW9uIE0yZShjLGwpe2NvbnN0IGE9e307YVtsc109bDtmb3IoY29uc3QgZCBvZiBjKWlmKCIiPT09ZC5wYXRoJiZ0MihkKSE9PWxzKXtjb25zdCBoPW5ldyB5YShbXSx7fSk7YVt0MihkKV09aH1yZXR1'@; put 'cm4gYX1mdW5jdGlvbiBEeChjLGwsYSl7cmV0dXJuKCEoYy5oYXNDaGlsZHJlbigpfHxsLmxlbmd0aD4wKXx8ImZ1bGwiIT09YS5wYXRoTWF0Y2gpJiYiIj09PWEucGF0aH1jbGFzcyBEMmV7Y29uc3RydWN0b3IobCxhLGQsaCxmLF8sVCl7dGhpcy5pbmplY3Rvcj1sLHRoaXMuY29uZmlnTG9h'@; put 'ZGVyPWEsdGhpcy5yb290Q29tcG9uZW50VHlwZT1kLHRoaXMuY29uZmlnPWgsdGhpcy51cmxUcmVlPWYsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PV8sdGhpcy51cmxTZXJpYWxpemVyPVQsdGhpcy5hbGxvd1JlZGlyZWN0cz0hMCx0aGlzLmFwcGx5UmVkaXJlY3RzPW5ldyB3MmUo'@; put 'dGhpcy51cmxTZXJpYWxpemVyLHRoaXMudXJsVHJlZSl9bm9NYXRjaEVycm9yKGwpe3JldHVybiBuZXcgQXIoNDAwMiwhMSl9cmVjb2duaXplKCl7Y29uc3QgbD1TJCh0aGlzLnVybFRyZWUucm9vdCxbXSxbXSx0aGlzLmNvbmZpZykuc2VnbWVudEdyb3VwO3JldHVybiB0aGlzLnByb2Nlc3NT'@; put 'ZWdtZW50R3JvdXAodGhpcy5pbmplY3Rvcix0aGlzLmNvbmZpZyxsLGxzKS5waXBlKEE1KGE9PntpZihhIGluc3RhbmNlb2YgdyQpcmV0dXJuIHRoaXMuYWxsb3dSZWRpcmVjdHM9ITEsdGhpcy51cmxUcmVlPWEudXJsVHJlZSx0aGlzLm1hdGNoKGEudXJsVHJlZSk7dGhyb3cgYSBpbnN0YW5j'@; put 'ZW9mIFR4P3RoaXMubm9NYXRjaEVycm9yKGEpOmF9KSxNZShhPT57Y29uc3QgZD1uZXcgeHgoW10sT2JqZWN0LmZyZWV6ZSh7fSksT2JqZWN0LmZyZWV6ZSh7Li4udGhpcy51cmxUcmVlLnF1ZXJ5UGFyYW1zfSksdGhpcy51cmxUcmVlLmZyYWdtZW50LHt9LGxzLHRoaXMucm9vdENvbXBvbmVu'@; put 'dFR5cGUsbnVsbCx7fSksaD1uZXcgeGYoZCxhKSxmPW5ldyB1JCgiIixoKSxfPWZ1bmN0aW9uIHlkZShjLGwsYT1udWxsLGQ9bnVsbCl7cmV0dXJuIFFHKEpHKGMpLGwsYSxkKX0oZCxbXSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMsdGhpcy51cmxUcmVlLmZyYWdtZW50KTtyZXR1cm4gXy5x'@; put 'dWVyeVBhcmFtcz10aGlzLnVybFRyZWUucXVlcnlQYXJhbXMsZi51cmw9dGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShfKSx0aGlzLmluaGVyaXRQYXJhbXNBbmREYXRhKGYuX3Jvb3QpLHtzdGF0ZTpmLHRyZWU6X319KSl9bWF0Y2gobCl7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRH'@; put 'cm91cCh0aGlzLmluamVjdG9yLHRoaXMuY29uZmlnLGwucm9vdCxscykucGlwZShBNShkPT57dGhyb3cgZCBpbnN0YW5jZW9mIFR4P3RoaXMubm9NYXRjaEVycm9yKGQpOmR9KSl9aW5oZXJpdFBhcmFtc0FuZERhdGEobCl7Y29uc3QgYT1sLnZhbHVlLGQ9YyQoYSx0aGlzLnBhcmFtc0luaGVy'@; put 'aXRhbmNlU3RyYXRlZ3kpO2EucGFyYW1zPU9iamVjdC5mcmVlemUoZC5wYXJhbXMpLGEuZGF0YT1PYmplY3QuZnJlZXplKGQuZGF0YSksbC5jaGlsZHJlbi5mb3JFYWNoKGg9PnRoaXMuaW5oZXJpdFBhcmFtc0FuZERhdGEoaCkpfXByb2Nlc3NTZWdtZW50R3JvdXAobCxhLGQsaCl7cmV0dXJu'@; put 'IDA9PT1kLnNlZ21lbnRzLmxlbmd0aCYmZC5oYXNDaGlsZHJlbigpP3RoaXMucHJvY2Vzc0NoaWxkcmVuKGwsYSxkKTp0aGlzLnByb2Nlc3NTZWdtZW50KGwsYSxkLGQuc2VnbWVudHMsaCwhMCl9cHJvY2Vzc0NoaWxkcmVuKGwsYSxkKXtjb25zdCBoPVtdO2Zvcihjb25zdCBmIG9mIE9iamVj'@; put 'dC5rZXlzKGQuY2hpbGRyZW4pKSJwcmltYXJ5Ij09PWY/aC51bnNoaWZ0KGYpOmgucHVzaChmKTtyZXR1cm4gZWEoaCkucGlwZShXNihmPT57Y29uc3QgXz1kLmNoaWxkcmVuW2ZdLFQ9ZnVuY3Rpb24gcWRlKGMsbCl7Y29uc3QgYT1jLmZpbHRlcihkPT50MihkKT09PWwpO3JldHVybiBhLnB1'@; put 'c2goLi4uYy5maWx0ZXIoZD0+dDIoZCkhPT1sKSksYX0oYSxmKTtyZXR1cm4gdGhpcy5wcm9jZXNzU2VnbWVudEdyb3VwKGwsVCxfLGYpfSksZnVuY3Rpb24gWDFlKGMsbCl7cmV0dXJuIFhlKGZ1bmN0aW9uIEsxZShjLGwsYSxkLGgpe3JldHVybihmLF8pPT57bGV0IFQ9YSxXPWwsaWU9MDtm'@; put 'LnN1YnNjcmliZShVZShfLHBlPT57Y29uc3Qgd2U9aWUrKztXPVQ/YyhXLHBlLHdlKTooVD0hMCxwZSksZCYmXy5uZXh0KFcpfSxoJiYoKCk9PntUJiZfLm5leHQoVyksXy5jb21wbGV0ZSgpfSkpKX19KGMsbCxhcmd1bWVudHMubGVuZ3RoPj0yLCEwKSl9KChmLF8pPT4oZi5wdXNoKC4uLl8p'@; put 'LGYpKSx2eChudWxsKSxmdW5jdGlvbiBKMWUoYyxsKXtjb25zdCBhPWFyZ3VtZW50cy5sZW5ndGg+PTI7cmV0dXJuIGQ9PmQucGlwZShjP0lhKChoLGYpPT5jKGgsZixkKSk6T2UsVk8oMSksYT92eChsKTpORygoKT0+bmV3IGd4KSl9KCkseXIoZj0+e2lmKG51bGw9PT1mKXJldHVybiBKNihk'@; put 'KTtjb25zdCBfPU0kKGYpO3JldHVybiBmdW5jdGlvbiBJMmUoYyl7Yy5zb3J0KChsLGEpPT5sLnZhbHVlLm91dGxldD09PWxzPy0xOmEudmFsdWUub3V0bGV0PT09bHM/MTpsLnZhbHVlLm91dGxldC5sb2NhbGVDb21wYXJlKGEudmFsdWUub3V0bGV0KSl9KF8pLFdpKF8pfSkpfXByb2Nlc3NT'@; put 'ZWdtZW50KGwsYSxkLGgsZixfKXtyZXR1cm4gZWEoYSkucGlwZShXNihUPT50aGlzLnByb2Nlc3NTZWdtZW50QWdhaW5zdFJvdXRlKFQuX2luamVjdG9yPz9sLGEsVCxkLGgsZixfKS5waXBlKEE1KFc9PntpZihXIGluc3RhbmNlb2YgVHgpcmV0dXJuIFdpKG51bGwpO3Rocm93IFd9KSkpLHVw'@; put 'KFQ9PiEhVCksQTUoVD0+e2lmKGIkKFQpKXJldHVybiBmdW5jdGlvbiBBMmUoYyxsLGEpe3JldHVybiAwPT09bC5sZW5ndGgmJiFjLmNoaWxkcmVuW2FdfShkLGgsZik/V2koW10pOko2KGQpO3Rocm93IFR9KSl9cHJvY2Vzc1NlZ21lbnRBZ2FpbnN0Um91dGUobCxhLGQsaCxmLF8sVCl7cmV0'@; put 'dXJuIGZ1bmN0aW9uIGsyZShjLGwsYSxkKXtyZXR1cm4hISh0MihjKT09PWR8fGQhPT1scyYmRHgobCxhLGMpKSYmKCIqKiI9PT1jLnBhdGh8fHRQKGwsYyxhKS5tYXRjaGVkKX0oZCxoLGYsXyk/dm9pZCAwPT09ZC5yZWRpcmVjdFRvP3RoaXMubWF0Y2hTZWdtZW50QWdhaW5zdFJvdXRlKGws'@; put 'aCxkLGYsXyxUKTpUJiZ0aGlzLmFsbG93UmVkaXJlY3RzP3RoaXMuZXhwYW5kU2VnbWVudEFnYWluc3RSb3V0ZVVzaW5nUmVkaXJlY3QobCxoLGEsZCxmLF8pOko2KGgpOko2KGgpfWV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGwsYSxkLGgsZixfKXtyZXR1cm4iKioi'@; put 'PT09aC5wYXRoP3RoaXMuZXhwYW5kV2lsZENhcmRXaXRoUGFyYW1zQWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChsLGQsaCxfKTp0aGlzLmV4cGFuZFJlZ3VsYXJTZWdtZW50QWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChsLGEsZCxoLGYsXyl9ZXhwYW5kV2lsZENhcmRXaXRoUGFyYW1zQWdh'@; put 'aW5zdFJvdXRlVXNpbmdSZWRpcmVjdChsLGEsZCxoKXtjb25zdCBmPXRoaXMuYXBwbHlSZWRpcmVjdHMuYXBwbHlSZWRpcmVjdENvbW1hbmRzKFtdLGQucmVkaXJlY3RUbyx7fSk7cmV0dXJuIGQucmVkaXJlY3RUby5zdGFydHNXaXRoKCIvIik/QyQoZik6dGhpcy5hcHBseVJlZGlyZWN0cy5s'@; put 'aW5lcmFsaXplU2VnbWVudHMoZCxmKS5waXBlKHlyKF89Pntjb25zdCBUPW5ldyB5YShfLHt9KTtyZXR1cm4gdGhpcy5wcm9jZXNzU2VnbWVudChsLGEsVCxfLGgsITEpfSkpfWV4cGFuZFJlZ3VsYXJTZWdtZW50QWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChsLGEsZCxoLGYsXyl7Y29uc3R7'@; put 'bWF0Y2hlZDpULGNvbnN1bWVkU2VnbWVudHM6VyxyZW1haW5pbmdTZWdtZW50czppZSxwb3NpdGlvbmFsUGFyYW1TZWdtZW50czpwZX09dFAoYSxoLGYpO2lmKCFUKXJldHVybiBKNihhKTtjb25zdCB3ZT10aGlzLmFwcGx5UmVkaXJlY3RzLmFwcGx5UmVkaXJlY3RDb21tYW5kcyhXLGgucmVk'@; put 'aXJlY3RUbyxwZSk7cmV0dXJuIGgucmVkaXJlY3RUby5zdGFydHNXaXRoKCIvIik/QyQod2UpOnRoaXMuYXBwbHlSZWRpcmVjdHMubGluZXJhbGl6ZVNlZ21lbnRzKGgsd2UpLnBpcGUoeXIoRWU9PnRoaXMucHJvY2Vzc1NlZ21lbnQobCxkLGEsRWUuY29uY2F0KGllKSxfLCExKSkpfW1hdGNo'@; put 'U2VnbWVudEFnYWluc3RSb3V0ZShsLGEsZCxoLGYsXyl7bGV0IFQ7aWYoIioqIj09PWQucGF0aCl7Y29uc3QgVz1oLmxlbmd0aD4wP2pHKGgpLnBhcmFtZXRlcnM6e307VD1XaSh7c25hcHNob3Q6bmV3IHh4KGgsVyxPYmplY3QuZnJlZXplKHsuLi50aGlzLnVybFRyZWUucXVlcnlQYXJhbXN9'@; put 'KSx0aGlzLnVybFRyZWUuZnJhZ21lbnQseCQoZCksdDIoZCksZC5jb21wb25lbnQ/P2QuX2xvYWRlZENvbXBvbmVudD8/bnVsbCxkLEUkKGQpKSxjb25zdW1lZFNlZ21lbnRzOltdLHJlbWFpbmluZ1NlZ21lbnRzOltdfSksYS5jaGlsZHJlbj17fX1lbHNlIFQ9QzJlKGEsZCxoLGwpLnBpcGUo'@; put 'TWUoKHttYXRjaGVkOlcsY29uc3VtZWRTZWdtZW50czppZSxyZW1haW5pbmdTZWdtZW50czpwZSxwYXJhbWV0ZXJzOndlfSk9Plc/e3NuYXBzaG90Om5ldyB4eChpZSx3ZSxPYmplY3QuZnJlZXplKHsuLi50aGlzLnVybFRyZWUucXVlcnlQYXJhbXN9KSx0aGlzLnVybFRyZWUuZnJhZ21lbnQs'@; put 'eCQoZCksdDIoZCksZC5jb21wb25lbnQ/P2QuX2xvYWRlZENvbXBvbmVudD8/bnVsbCxkLEUkKGQpKSxjb25zdW1lZFNlZ21lbnRzOmllLHJlbWFpbmluZ1NlZ21lbnRzOnBlfTpudWxsKSk7cmV0dXJuIFQucGlwZShTYShXPT5udWxsPT09Vz9KNihhKTp0aGlzLmdldENoaWxkQ29uZmlnKGw9'@; put 'ZC5faW5qZWN0b3I/P2wsZCxoKS5waXBlKFNhKCh7cm91dGVzOmllfSk9Pntjb25zdCBwZT1kLl9sb2FkZWRJbmplY3Rvcj8/bCx7c25hcHNob3Q6d2UsY29uc3VtZWRTZWdtZW50czpFZSxyZW1haW5pbmdTZWdtZW50czpaZX09Vyx7c2VnbWVudEdyb3VwOml0LHNsaWNlZFNlZ21lbnRzOmV0'@; put 'fT1TJChhLEVlLFplLGllKTtpZigwPT09ZXQubGVuZ3RoJiZpdC5oYXNDaGlsZHJlbigpKXJldHVybiB0aGlzLnByb2Nlc3NDaGlsZHJlbihwZSxpZSxpdCkucGlwZShNZShFdD0+bnVsbD09PUV0P251bGw6W25ldyB4Zih3ZSxFdCldKSk7aWYoMD09PWllLmxlbmd0aCYmMD09PWV0Lmxlbmd0'@; put 'aClyZXR1cm4gV2koW25ldyB4Zih3ZSxbXSldKTtjb25zdCB5dD10MihkKT09PWY7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnQocGUsaWUsaXQsZXQseXQ/bHM6ZiwhMCkucGlwZShNZShFdD0+W25ldyB4Zih3ZSxFdCldKSl9KSkpKX1nZXRDaGlsZENvbmZpZyhsLGEsZCl7cmV0dXJuIGEu'@; put 'Y2hpbGRyZW4/V2koe3JvdXRlczphLmNoaWxkcmVuLGluamVjdG9yOmx9KTphLmxvYWRDaGlsZHJlbj92b2lkIDAhPT1hLl9sb2FkZWRSb3V0ZXM/V2koe3JvdXRlczphLl9sb2FkZWRSb3V0ZXMsaW5qZWN0b3I6YS5fbG9hZGVkSW5qZWN0b3J9KTpmdW5jdGlvbiB2MmUoYyxsLGEsZCl7Y29u'@; put 'c3QgaD1sLmNhbkxvYWQ7cmV0dXJuIHZvaWQgMD09PWh8fDA9PT1oLmxlbmd0aD9XaSghMCk6V2koaC5tYXAoXz0+e2NvbnN0IFQ9SzYoXyxjKTtyZXR1cm4gZHAoZnVuY3Rpb24gcjJlKGMpe3JldHVybiBjJiZZXyhjLmNhbkxvYWQpfShUKT9ULmNhbkxvYWQobCxhKTpjLnJ1bkluQ29udGV4'@; put 'dCgoKT0+VChsLGEpKSl9KSkucGlwZShYNigpLHkkKCkpfShsLGEsZCkucGlwZSh5cihoPT5oP3RoaXMuY29uZmlnTG9hZGVyLmxvYWRDaGlsZHJlbihsLGEpLnBpcGUoVWMoZj0+e2EuX2xvYWRlZFJvdXRlcz1mLnJvdXRlcyxhLl9sb2FkZWRJbmplY3Rvcj1mLmluamVjdG9yfSkpOmZ1bmN0'@; put 'aW9uIHkyZShjKXtyZXR1cm4gRF8ocCQoITEsMykpfSgpKSk6V2koe3JvdXRlczpbXSxpbmplY3RvcjpsfSl9fWZ1bmN0aW9uIEwyZShjKXtjb25zdCBsPWMudmFsdWUucm91dGVDb25maWc7cmV0dXJuIGwmJiIiPT09bC5wYXRofWZ1bmN0aW9uIE0kKGMpe2NvbnN0IGw9W10sYT1uZXcgU2V0'@; put 'O2Zvcihjb25zdCBkIG9mIGMpe2lmKCFMMmUoZCkpe2wucHVzaChkKTtjb250aW51ZX1jb25zdCBoPWwuZmluZChmPT5kLnZhbHVlLnJvdXRlQ29uZmlnPT09Zi52YWx1ZS5yb3V0ZUNvbmZpZyk7dm9pZCAwIT09aD8oaC5jaGlsZHJlbi5wdXNoKC4uLmQuY2hpbGRyZW4pLGEuYWRkKGgpKTps'@; put 'LnB1c2goZCl9Zm9yKGNvbnN0IGQgb2YgYSl7Y29uc3QgaD1NJChkLmNoaWxkcmVuKTtsLnB1c2gobmV3IHhmKGQudmFsdWUsaCkpfXJldHVybiBsLmZpbHRlcihkPT4hYS5oYXMoZCkpfWZ1bmN0aW9uIHgkKGMpe3JldHVybiBjLmRhdGF8fHt9fWZ1bmN0aW9uIEUkKGMpe3JldHVybiBjLnJl'@; put 'c29sdmV8fHt9fWZ1bmN0aW9uIE8yZShjLGwpe3JldHVybiB5cihhPT57Y29uc3R7dGFyZ2V0U25hcHNob3Q6ZCxndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOmh9fT1hO2lmKCFoLmxlbmd0aClyZXR1cm4gV2koYSk7bGV0IGY9MDtyZXR1cm4gZWEoaCkucGlwZShXNihfPT5mdW5jdGlvbiBQ'@; put 'MmUoYyxsLGEsZCl7Y29uc3QgaD1jLnJvdXRlQ29uZmlnLGY9Yy5fcmVzb2x2ZTtyZXR1cm4gdm9pZCAwIT09aD8udGl0bGUmJiFrJChoKSYmKGZbTF9dPWgudGl0bGUpLGZ1bmN0aW9uIEYyZShjLGwsYSxkKXtjb25zdCBoPWZ1bmN0aW9uIEgyZShjKXtyZXR1cm5bLi4uT2JqZWN0LmtleXMo'@; put 'YyksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhjKV19KGMpO2lmKDA9PT1oLmxlbmd0aClyZXR1cm4gV2koe30pO2NvbnN0IGY9e307cmV0dXJuIGVhKGgpLnBpcGUoeXIoXz0+ZnVuY3Rpb24gTjJlKGMsbCxhLGQpe2NvbnN0IGg9el8obCk/P2QsZj1LNihjLGgpO3JldHVybiBk'@; put 'cChmLnJlc29sdmU/Zi5yZXNvbHZlKGwsYSk6aC5ydW5JbkNvbnRleHQoKCk9PmYobCxhKSkpfShjW19dLGwsYSxkKS5waXBlKHVwKCksVWMoVD0+e2ZbX109VH0pKSksVk8oMSksZnVuY3Rpb24gVkcoYyl7cmV0dXJuIE1lKCgpPT5jKX0oZiksQTUoXz0+YiQoXyk/TG86RF8oXykpKX0oZixj'@; put 'LGwsZCkucGlwZShNZShfPT4oYy5fcmVzb2x2ZWREYXRhPV8sYy5kYXRhPWMkKGMsYSkucmVzb2x2ZSxoJiZrJChoKSYmKGMuZGF0YVtMX109aC50aXRsZSksbnVsbCkpKX0oXy5yb3V0ZSxkLGMsbCkpLFVjKCgpPT5mKyspLFZPKDEpLHlyKF89PmY9PT1oLmxlbmd0aD9XaShhKTpMbykpfSl9'@; put 'ZnVuY3Rpb24gayQoYyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjLnRpdGxlfHxudWxsPT09Yy50aXRsZX1mdW5jdGlvbiBuUChjKXtyZXR1cm4gU2EobD0+e2NvbnN0IGE9YyhsKTtyZXR1cm4gYT9lYShhKS5waXBlKE1lKCgpPT5sKSk6V2kobCl9KX1jb25zdCBRNj1uZXcgU2koIlJPVVRF'@; put 'UyIpO2xldCByUD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5jb21wb25lbnRMb2FkZXJzPW5ldyBXZWFrTWFwLHRoaXMuY2hpbGRyZW5Mb2FkZXJzPW5ldyBXZWFrTWFwLHRoaXMuY29tcGlsZXI9RmkoblcpfWxvYWRDb21wb25lbnQoYSl7aWYodGhpcy5jb21wb25lbnRMb2Fk'@; put 'ZXJzLmdldChhKSlyZXR1cm4gdGhpcy5jb21wb25lbnRMb2FkZXJzLmdldChhKTtpZihhLl9sb2FkZWRDb21wb25lbnQpcmV0dXJuIFdpKGEuX2xvYWRlZENvbXBvbmVudCk7dGhpcy5vbkxvYWRTdGFydExpc3RlbmVyJiZ0aGlzLm9uTG9hZFN0YXJ0TGlzdGVuZXIoYSk7Y29uc3QgZD1kcChh'@; put 'LmxvYWRDb21wb25lbnQoKSkucGlwZShNZShBJCksVWMoZj0+e3RoaXMub25Mb2FkRW5kTGlzdGVuZXImJnRoaXMub25Mb2FkRW5kTGlzdGVuZXIoYSksYS5fbG9hZGVkQ29tcG9uZW50PWZ9KSxJXygoKT0+e3RoaXMuY29tcG9uZW50TG9hZGVycy5kZWxldGUoYSl9KSksaD1uZXcgSEcoZCwo'@; put 'KT0+bmV3IGJlKS5waXBlKE5PKCkpO3JldHVybiB0aGlzLmNvbXBvbmVudExvYWRlcnMuc2V0KGEsaCksaH1sb2FkQ2hpbGRyZW4oYSxkKXtpZih0aGlzLmNoaWxkcmVuTG9hZGVycy5nZXQoZCkpcmV0dXJuIHRoaXMuY2hpbGRyZW5Mb2FkZXJzLmdldChkKTtpZihkLl9sb2FkZWRSb3V0ZXMp'@; put 'cmV0dXJuIFdpKHtyb3V0ZXM6ZC5fbG9hZGVkUm91dGVzLGluamVjdG9yOmQuX2xvYWRlZEluamVjdG9yfSk7dGhpcy5vbkxvYWRTdGFydExpc3RlbmVyJiZ0aGlzLm9uTG9hZFN0YXJ0TGlzdGVuZXIoZCk7Y29uc3QgZj10aGlzLmxvYWRNb2R1bGVGYWN0b3J5T3JSb3V0ZXMoZC5sb2FkQ2hp'@; put 'bGRyZW4pLnBpcGUoTWUoVD0+e3RoaXMub25Mb2FkRW5kTGlzdGVuZXImJnRoaXMub25Mb2FkRW5kTGlzdGVuZXIoZCk7bGV0IFcsaWU7cmV0dXJuIEFycmF5LmlzQXJyYXkoVCk/aWU9VDooVz1ULmNyZWF0ZShhKS5pbmplY3RvcixpZT1XLmdldChRNixbXSxucy5TZWxmfG5zLk9wdGlvbmFs'@; put 'KS5mbGF0KCkpLHtyb3V0ZXM6aWUubWFwKFFPKSxpbmplY3RvcjpXfX0pLElfKCgpPT57dGhpcy5jaGlsZHJlbkxvYWRlcnMuZGVsZXRlKGQpfSkpLF89bmV3IEhHKGYsKCk9Pm5ldyBiZSkucGlwZShOTygpKTtyZXR1cm4gdGhpcy5jaGlsZHJlbkxvYWRlcnMuc2V0KGQsXyksX31sb2FkTW9k'@; put 'dWxlRmFjdG9yeU9yUm91dGVzKGEpe3JldHVybiBkcChhKCkpLnBpcGUoTWUoQSQpLHlyKGQ9PmQgaW5zdGFuY2VvZiBjY3x8QXJyYXkuaXNBcnJheShkKT9XaShkKTplYSh0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3luYyhkKSkpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7ZnVuY3Rpb24gQSQoYyl7cmV0dXJuIGZ1bmN0aW9uIFYyZShjKXtyZXR1cm4gYyYmIm9iamVjdCI9PXR5cGVvZiBjJiYiZGVm'@; put 'YXVsdCJpbiBjfShjKT9jLmRlZmF1bHQ6Y31sZXQgSXg9KCgpPT57Y2xhc3MgY3tnZXQgaGFzUmVxdWVzdGVkTmF2aWdhdGlvbigpe3JldHVybiAwIT09dGhpcy5uYXZpZ2F0aW9uSWR9Y29uc3RydWN0b3IoKXt0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPW51bGwsdGhpcy5sYXN0U3VjY2Vzc2Z1'@; put 'bE5hdmlnYXRpb249bnVsbCx0aGlzLmV2ZW50cz1uZXcgYmUsdGhpcy5jb25maWdMb2FkZXI9RmkoclApLHRoaXMuZW52aXJvbm1lbnRJbmplY3Rvcj1GaShxMCksdGhpcy51cmxTZXJpYWxpemVyPUZpKE9fKSx0aGlzLnJvb3RDb250ZXh0cz1GaShCXyksdGhpcy5pbnB1dEJpbmRpbmdFbmFi'@; put 'bGVkPW51bGwhPT1GaShFeCx7b3B0aW9uYWw6ITB9KSx0aGlzLm5hdmlnYXRpb25JZD0wLHRoaXMuYWZ0ZXJQcmVhY3RpdmF0aW9uPSgpPT5XaSh2b2lkIDApLHRoaXMucm9vdENvbXBvbmVudFR5cGU9bnVsbCx0aGlzLmNvbmZpZ0xvYWRlci5vbkxvYWRFbmRMaXN0ZW5lcj1oPT50aGlzLmV2'@; put 'ZW50cy5uZXh0KG5ldyBSZGUoaCkpLHRoaXMuY29uZmlnTG9hZGVyLm9uTG9hZFN0YXJ0TGlzdGVuZXI9aD0+dGhpcy5ldmVudHMubmV4dChuZXcgTGRlKGgpKX1jb21wbGV0ZSgpe3RoaXMudHJhbnNpdGlvbnM/LmNvbXBsZXRlKCl9aGFuZGxlTmF2aWdhdGlvblJlcXVlc3QoYSl7Y29uc3Qg'@; put 'ZD0rK3RoaXMubmF2aWdhdGlvbklkO3RoaXMudHJhbnNpdGlvbnM/Lm5leHQoey4uLnRoaXMudHJhbnNpdGlvbnMudmFsdWUsLi4uYSxpZDpkfSl9c2V0dXBOYXZpZ2F0aW9ucyhhKXtyZXR1cm4gdGhpcy50cmFuc2l0aW9ucz1uZXcgVGUoe2lkOjAsY3VycmVudFVybFRyZWU6YS5jdXJyZW50'@; put 'VXJsVHJlZSxjdXJyZW50UmF3VXJsOmEuY3VycmVudFVybFRyZWUsZXh0cmFjdGVkVXJsOmEudXJsSGFuZGxpbmdTdHJhdGVneS5leHRyYWN0KGEuY3VycmVudFVybFRyZWUpLHVybEFmdGVyUmVkaXJlY3RzOmEudXJsSGFuZGxpbmdTdHJhdGVneS5leHRyYWN0KGEuY3VycmVudFVybFRyZWUp'@; put 'LHJhd1VybDphLmN1cnJlbnRVcmxUcmVlLGV4dHJhczp7fSxyZXNvbHZlOm51bGwscmVqZWN0Om51bGwscHJvbWlzZTpQcm9taXNlLnJlc29sdmUoITApLHNvdXJjZTpOXyxyZXN0b3JlZFN0YXRlOm51bGwsY3VycmVudFNuYXBzaG90OmEucm91dGVyU3RhdGUuc25hcHNob3QsdGFyZ2V0U25h'@; put 'cHNob3Q6bnVsbCxjdXJyZW50Um91dGVyU3RhdGU6YS5yb3V0ZXJTdGF0ZSx0YXJnZXRSb3V0ZXJTdGF0ZTpudWxsLGd1YXJkczp7Y2FuQWN0aXZhdGVDaGVja3M6W10sY2FuRGVhY3RpdmF0ZUNoZWNrczpbXX0sZ3VhcmRzUmVzdWx0Om51bGx9KSx0aGlzLnRyYW5zaXRpb25zLnBpcGUoSWEo'@; put 'ZD0+MCE9PWQuaWQpLE1lKGQ9Pih7Li4uZCxleHRyYWN0ZWRVcmw6YS51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QoZC5yYXdVcmwpfSkpLFNhKGQ9PntsZXQgaD0hMSxmPSExO3JldHVybiBXaShkKS5waXBlKFVjKF89Pnt0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPXtpZDpfLmlkLGluaXRp'@; put 'YWxVcmw6Xy5yYXdVcmwsZXh0cmFjdGVkVXJsOl8uZXh0cmFjdGVkVXJsLHRyaWdnZXI6Xy5zb3VyY2UsZXh0cmFzOl8uZXh0cmFzLHByZXZpb3VzTmF2aWdhdGlvbjp0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj97Li4udGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb24scHJldmlv'@; put 'dXNOYXZpZ2F0aW9uOm51bGx9Om51bGx9fSksU2EoXz0+e2NvbnN0IFQ9YS5icm93c2VyVXJsVHJlZS50b1N0cmluZygpLFc9IWEubmF2aWdhdGVkfHxfLmV4dHJhY3RlZFVybC50b1N0cmluZygpIT09VHx8VCE9PWEuY3VycmVudFVybFRyZWUudG9TdHJpbmcoKTtpZighVyYmInJlbG9hZCIh'@; put 'PT0oXy5leHRyYXMub25TYW1lVXJsTmF2aWdhdGlvbj8/YS5vblNhbWVVcmxOYXZpZ2F0aW9uKSl7Y29uc3QgcGU9IiI7cmV0dXJuIHRoaXMuZXZlbnRzLm5leHQobmV3IFZfKF8uaWQsYS5zZXJpYWxpemVVcmwoZC5yYXdVcmwpLHBlLDApKSxhLnJhd1VybFRyZWU9Xy5yYXdVcmwsXy5yZXNv'@; put 'bHZlKG51bGwpLExvfWlmKGEudXJsSGFuZGxpbmdTdHJhdGVneS5zaG91bGRQcm9jZXNzVXJsKF8ucmF3VXJsKSlyZXR1cm4gVCQoXy5zb3VyY2UpJiYoYS5icm93c2VyVXJsVHJlZT1fLmV4dHJhY3RlZFVybCksV2koXykucGlwZShTYShwZT0+e2NvbnN0IHdlPXRoaXMudHJhbnNpdGlvbnM/'@; put 'LmdldFZhbHVlKCk7cmV0dXJuIHRoaXMuZXZlbnRzLm5leHQobmV3IFlPKHBlLmlkLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUocGUuZXh0cmFjdGVkVXJsKSxwZS5zb3VyY2UscGUucmVzdG9yZWRTdGF0ZSkpLHdlIT09dGhpcy50cmFuc2l0aW9ucz8uZ2V0VmFsdWUoKT9MbzpQcm9t'@; put 'aXNlLnJlc29sdmUocGUpfSksZnVuY3Rpb24gUjJlKGMsbCxhLGQsaCxmKXtyZXR1cm4geXIoXz0+ZnVuY3Rpb24gVDJlKGMsbCxhLGQsaCxmLF89ImVtcHR5T25seSIpe3JldHVybiBuZXcgRDJlKGMsbCxhLGQsaCxfLGYpLnJlY29nbml6ZSgpfShjLGwsYSxkLF8uZXh0cmFjdGVkVXJsLGgs'@; put 'ZikucGlwZShNZSgoe3N0YXRlOlQsdHJlZTpXfSk9Pih7Li4uXyx0YXJnZXRTbmFwc2hvdDpULHVybEFmdGVyUmVkaXJlY3RzOld9KSkpKX0odGhpcy5lbnZpcm9ubWVudEluamVjdG9yLHRoaXMuY29uZmlnTG9hZGVyLHRoaXMucm9vdENvbXBvbmVudFR5cGUsYS5jb25maWcsdGhpcy51cmxT'@; put 'ZXJpYWxpemVyLGEucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneSksVWMocGU9PntpZihkLnRhcmdldFNuYXBzaG90PXBlLnRhcmdldFNuYXBzaG90LGQudXJsQWZ0ZXJSZWRpcmVjdHM9cGUudXJsQWZ0ZXJSZWRpcmVjdHMsdGhpcy5jdXJyZW50TmF2aWdhdGlvbj17Li4udGhpcy5jdXJyZW50'@; put 'TmF2aWdhdGlvbixmaW5hbFVybDpwZS51cmxBZnRlclJlZGlyZWN0c30sImVhZ2VyIj09PWEudXJsVXBkYXRlU3RyYXRlZ3kpe2lmKCFwZS5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlKXtjb25zdCBFZT1hLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2UocGUudXJsQWZ0ZXJSZWRpcmVjdHMs'@; put 'cGUucmF3VXJsKTthLnNldEJyb3dzZXJVcmwoRWUscGUpfWEuYnJvd3NlclVybFRyZWU9cGUudXJsQWZ0ZXJSZWRpcmVjdHN9Y29uc3Qgd2U9bmV3IGtkZShwZS5pZCx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKHBlLmV4dHJhY3RlZFVybCksdGhpcy51cmxTZXJpYWxpemVyLnNlcmlh'@; put 'bGl6ZShwZS51cmxBZnRlclJlZGlyZWN0cykscGUudGFyZ2V0U25hcHNob3QpO3RoaXMuZXZlbnRzLm5leHQod2UpfSkpO2lmKFcmJmEudXJsSGFuZGxpbmdTdHJhdGVneS5zaG91bGRQcm9jZXNzVXJsKGEucmF3VXJsVHJlZSkpe2NvbnN0e2lkOnBlLGV4dHJhY3RlZFVybDp3ZSxzb3VyY2U6'@; put 'RWUscmVzdG9yZWRTdGF0ZTpaZSxleHRyYXM6aXR9PV8sZXQ9bmV3IFlPKHBlLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUod2UpLEVlLFplKTt0aGlzLmV2ZW50cy5uZXh0KGV0KTtjb25zdCB5dD1sJCgwLHRoaXMucm9vdENvbXBvbmVudFR5cGUpLnNuYXBzaG90O3JldHVybiBXaShk'@; put 'PXsuLi5fLHRhcmdldFNuYXBzaG90Onl0LHVybEFmdGVyUmVkaXJlY3RzOndlLGV4dHJhczp7Li4uaXQsc2tpcExvY2F0aW9uQ2hhbmdlOiExLHJlcGxhY2VVcmw6ITF9fSl9e2NvbnN0IHBlPSIiO3JldHVybiB0aGlzLmV2ZW50cy5uZXh0KG5ldyBWXyhfLmlkLGEuc2VyaWFsaXplVXJsKGQu'@; put 'ZXh0cmFjdGVkVXJsKSxwZSwxKSksYS5yYXdVcmxUcmVlPV8ucmF3VXJsLF8ucmVzb2x2ZShudWxsKSxMb319KSxVYyhfPT57Y29uc3QgVD1uZXcgQWRlKF8uaWQsdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShfLmV4dHJhY3RlZFVybCksdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6'@; put 'ZShfLnVybEFmdGVyUmVkaXJlY3RzKSxfLnRhcmdldFNuYXBzaG90KTt0aGlzLmV2ZW50cy5uZXh0KFQpfSksTWUoXz0+ZD17Li4uXyxndWFyZHM6SmRlKF8udGFyZ2V0U25hcHNob3QsXy5jdXJyZW50U25hcHNob3QsdGhpcy5yb290Q29udGV4dHMpfSksZnVuY3Rpb24gYzJlKGMsbCl7cmV0'@; put 'dXJuIHlyKGE9Pntjb25zdHt0YXJnZXRTbmFwc2hvdDpkLGN1cnJlbnRTbmFwc2hvdDpoLGd1YXJkczp7Y2FuQWN0aXZhdGVDaGVja3M6ZixjYW5EZWFjdGl2YXRlQ2hlY2tzOl99fT1hO3JldHVybiAwPT09Xy5sZW5ndGgmJjA9PT1mLmxlbmd0aD9XaSh7Li4uYSxndWFyZHNSZXN1bHQ6ITB9'@; put 'KTpmdW5jdGlvbiB1MmUoYyxsLGEsZCl7cmV0dXJuIGVhKGMpLnBpcGUoeXIoaD0+ZnVuY3Rpb24gbTJlKGMsbCxhLGQsaCl7Y29uc3QgZj1sJiZsLnJvdXRlQ29uZmlnP2wucm91dGVDb25maWcuY2FuRGVhY3RpdmF0ZTpudWxsO3JldHVybiBmJiYwIT09Zi5sZW5ndGg/V2koZi5tYXAoVD0+'@; put 'e2NvbnN0IFc9el8obCk/P2gsaWU9SzYoVCxXKTtyZXR1cm4gZHAoZnVuY3Rpb24gczJlKGMpe3JldHVybiBjJiZZXyhjLmNhbkRlYWN0aXZhdGUpfShpZSk/aWUuY2FuRGVhY3RpdmF0ZShjLGwsYSxkKTpXLnJ1bkluQ29udGV4dCgoKT0+aWUoYyxsLGEsZCkpKS5waXBlKHVwKCkpfSkpLnBp'@; put 'cGUoWDYoKSk6V2koITApfShoLmNvbXBvbmVudCxoLnJvdXRlLGEsbCxkKSksdXAoaD0+ITAhPT1oLCEwKSl9KF8sZCxoLGMpLnBpcGUoeXIoVD0+VCYmZnVuY3Rpb24gbjJlKGMpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGN9KFQpP2Z1bmN0aW9uIGQyZShjLGwsYSxkKXtyZXR1cm4gZWEo'@; put 'bCkucGlwZShXNihoPT5teChmdW5jdGlvbiBmMmUoYyxsKXtyZXR1cm4gbnVsbCE9PWMmJmwmJmwobmV3IE9kZShjKSksV2koITApfShoLnJvdXRlLnBhcmVudCxkKSxmdW5jdGlvbiBoMmUoYyxsKXtyZXR1cm4gbnVsbCE9PWMmJmwmJmwobmV3IEZkZShjKSksV2koITApfShoLnJvdXRlLGQp'@; put 'LGZ1bmN0aW9uIGcyZShjLGwsYSl7Y29uc3QgZD1sW2wubGVuZ3RoLTFdLGY9bC5zbGljZSgwLGwubGVuZ3RoLTEpLnJldmVyc2UoKS5tYXAoXz0+ZnVuY3Rpb24gUWRlKGMpe2NvbnN0IGw9Yy5yb3V0ZUNvbmZpZz9jLnJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQ6bnVsbDtyZXR1cm4g'@; put 'bCYmMCE9PWwubGVuZ3RoP3tub2RlOmMsZ3VhcmRzOmx9Om51bGx9KF8pKS5maWx0ZXIoXz0+bnVsbCE9PV8pLm1hcChfPT5GRygoKT0+V2koXy5ndWFyZHMubWFwKFc9Pntjb25zdCBpZT16XyhfLm5vZGUpPz9hLHBlPUs2KFcsaWUpO3JldHVybiBkcChmdW5jdGlvbiBvMmUoYyl7cmV0dXJu'@; put 'IGMmJllfKGMuY2FuQWN0aXZhdGVDaGlsZCl9KHBlKT9wZS5jYW5BY3RpdmF0ZUNoaWxkKGQsYyk6aWUucnVuSW5Db250ZXh0KCgpPT5wZShkLGMpKSkucGlwZSh1cCgpKX0pKS5waXBlKFg2KCkpKSk7cmV0dXJuIFdpKGYpLnBpcGUoWDYoKSl9KGMsaC5wYXRoLGEpLGZ1bmN0aW9uIHAyZShj'@; put 'LGwsYSl7Y29uc3QgZD1sLnJvdXRlQ29uZmlnP2wucm91dGVDb25maWcuY2FuQWN0aXZhdGU6bnVsbDtpZighZHx8MD09PWQubGVuZ3RoKXJldHVybiBXaSghMCk7Y29uc3QgaD1kLm1hcChmPT5GRygoKT0+e2NvbnN0IF89el8obCk/P2EsVD1LNihmLF8pO3JldHVybiBkcChmdW5jdGlvbiBp'@; put 'MmUoYyl7cmV0dXJuIGMmJllfKGMuY2FuQWN0aXZhdGUpfShUKT9ULmNhbkFjdGl2YXRlKGwsYyk6Xy5ydW5JbkNvbnRleHQoKCk9PlQobCxjKSkpLnBpcGUodXAoKSl9KSk7cmV0dXJuIFdpKGgpLnBpcGUoWDYoKSl9KGMsaC5yb3V0ZSxhKSkpLHVwKGg9PiEwIT09aCwhMCkpfShkLGYsYyxs'@; put 'KTpXaShUKSksTWUoVD0+KHsuLi5hLGd1YXJkc1Jlc3VsdDpUfSkpKX0pfSh0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXz0+dGhpcy5ldmVudHMubmV4dChfKSksVWMoXz0+e2lmKGQuZ3VhcmRzUmVzdWx0PV8uZ3VhcmRzUmVzdWx0LEQ1KF8uZ3VhcmRzUmVzdWx0KSl0aHJvdyBmJCgwLF8u'@; put 'Z3VhcmRzUmVzdWx0KTtjb25zdCBUPW5ldyBUZGUoXy5pZCx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKF8uZXh0cmFjdGVkVXJsKSx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKF8udXJsQWZ0ZXJSZWRpcmVjdHMpLF8udGFyZ2V0U25hcHNob3QsISFfLmd1YXJkc1Jlc3VsdCk7'@; put 'dGhpcy5ldmVudHMubmV4dChUKX0pLElhKF89PiEhXy5ndWFyZHNSZXN1bHR8fChhLnJlc3RvcmVIaXN0b3J5KF8pLHRoaXMuY2FuY2VsTmF2aWdhdGlvblRyYW5zaXRpb24oXywiIiwzKSwhMSkpLG5QKF89PntpZihfLmd1YXJkcy5jYW5BY3RpdmF0ZUNoZWNrcy5sZW5ndGgpcmV0dXJuIFdp'@; put 'KF8pLnBpcGUoVWMoVD0+e2NvbnN0IFc9bmV3IERkZShULmlkLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoVC5leHRyYWN0ZWRVcmwpLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoVC51cmxBZnRlclJlZGlyZWN0cyksVC50YXJnZXRTbmFwc2hvdCk7dGhpcy5ldmVudHMubmV4'@; put 'dChXKX0pLFNhKFQ9PntsZXQgVz0hMTtyZXR1cm4gV2koVCkucGlwZShPMmUoYS5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5LHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciksVWMoe25leHQ6KCk9Plc9ITAsY29tcGxldGU6KCk9PntXfHwoYS5yZXN0b3JlSGlzdG9yeShUKSx0aGlzLmNhbmNl'@; put 'bE5hdmlnYXRpb25UcmFuc2l0aW9uKFQsIiIsMikpfX0pKX0pLFVjKFQ9Pntjb25zdCBXPW5ldyBJZGUoVC5pZCx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKFQuZXh0cmFjdGVkVXJsKSx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKFQudXJsQWZ0ZXJSZWRpcmVjdHMpLFQudGFy'@; put 'Z2V0U25hcHNob3QpO3RoaXMuZXZlbnRzLm5leHQoVyl9KSl9KSxuUChfPT57Y29uc3QgVD1XPT57Y29uc3QgaWU9W107Vy5yb3V0ZUNvbmZpZz8ubG9hZENvbXBvbmVudCYmIVcucm91dGVDb25maWcuX2xvYWRlZENvbXBvbmVudCYmaWUucHVzaCh0aGlzLmNvbmZpZ0xvYWRlci5sb2FkQ29t'@; put 'cG9uZW50KFcucm91dGVDb25maWcpLnBpcGUoVWMocGU9PntXLmNvbXBvbmVudD1wZX0pLE1lKCgpPT57fSkpKTtmb3IoY29uc3QgcGUgb2YgVy5jaGlsZHJlbilpZS5wdXNoKC4uLlQocGUpKTtyZXR1cm4gaWV9O3JldHVybiBZNihUKF8udGFyZ2V0U25hcHNob3Qucm9vdCkpLnBpcGUodngo'@; put 'KSxpZCgxKSl9KSxuUCgoKT0+dGhpcy5hZnRlclByZWFjdGl2YXRpb24oKSksTWUoXz0+e2NvbnN0IFQ9ZnVuY3Rpb24gemRlKGMsbCxhKXtjb25zdCBkPWpfKGMsbC5fcm9vdCxhP2EuX3Jvb3Q6dm9pZCAwKTtyZXR1cm4gbmV3IGEkKGQsbCl9KGEucm91dGVSZXVzZVN0cmF0ZWd5LF8udGFy'@; put 'Z2V0U25hcHNob3QsXy5jdXJyZW50Um91dGVyU3RhdGUpO3JldHVybiBkPXsuLi5fLHRhcmdldFJvdXRlclN0YXRlOlR9fSksVWMoXz0+e2EuY3VycmVudFVybFRyZWU9Xy51cmxBZnRlclJlZGlyZWN0cyxhLnJhd1VybFRyZWU9YS51cmxIYW5kbGluZ1N0cmF0ZWd5Lm1lcmdlKF8udXJsQWZ0'@; put 'ZXJSZWRpcmVjdHMsXy5yYXdVcmwpLGEucm91dGVyU3RhdGU9Xy50YXJnZXRSb3V0ZXJTdGF0ZSwiZGVmZXJyZWQiPT09YS51cmxVcGRhdGVTdHJhdGVneSYmKF8uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZXx8YS5zZXRCcm93c2VyVXJsKGEucmF3VXJsVHJlZSxfKSxhLmJyb3dzZXJVcmxU'@; put 'cmVlPV8udXJsQWZ0ZXJSZWRpcmVjdHMpfSksKChjLGwsYSxkKT0+TWUoaD0+KG5ldyBYZGUobCxoLnRhcmdldFJvdXRlclN0YXRlLGguY3VycmVudFJvdXRlclN0YXRlLGEsZCkuYWN0aXZhdGUoYyksaCkpKSh0aGlzLnJvb3RDb250ZXh0cyxhLnJvdXRlUmV1c2VTdHJhdGVneSxfPT50aGlz'@; put 'LmV2ZW50cy5uZXh0KF8pLHRoaXMuaW5wdXRCaW5kaW5nRW5hYmxlZCksaWQoMSksVWMoe25leHQ6Xz0+e2g9ITAsdGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb249dGhpcy5jdXJyZW50TmF2aWdhdGlvbixhLm5hdmlnYXRlZD0hMCx0aGlzLmV2ZW50cy5uZXh0KG5ldyBocChfLmlkLHRo'@; put 'aXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoXy5leHRyYWN0ZWRVcmwpLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoYS5jdXJyZW50VXJsVHJlZSkpKSxhLnRpdGxlU3RyYXRlZ3k/LnVwZGF0ZVRpdGxlKF8udGFyZ2V0Um91dGVyU3RhdGUuc25hcHNob3QpLF8ucmVzb2x2ZSghMCl9'@; put 'LGNvbXBsZXRlOigpPT57aD0hMH19KSxJXygoKT0+e2h8fGZ8fHRoaXMuY2FuY2VsTmF2aWdhdGlvblRyYW5zaXRpb24oZCwiIiwxKSx0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPy5pZD09PWQuaWQmJih0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPW51bGwpfSksQTUoXz0+e2lmKGY9ITAsbSQoXykp'@; put 'e2ckKF8pfHwoYS5uYXZpZ2F0ZWQ9ITAsYS5yZXN0b3JlSGlzdG9yeShkLCEwKSk7Y29uc3QgVD1uZXcgTXgoZC5pZCx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKGQuZXh0cmFjdGVkVXJsKSxfLm1lc3NhZ2UsXy5jYW5jZWxsYXRpb25Db2RlKTtpZih0aGlzLmV2ZW50cy5uZXh0KFQp'@; put 'LGckKF8pKXtjb25zdCBXPWEudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZShfLnVybCxhLnJhd1VybFRyZWUpLGllPXtza2lwTG9jYXRpb25DaGFuZ2U6ZC5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlLHJlcGxhY2VVcmw6ImVhZ2VyIj09PWEudXJsVXBkYXRlU3RyYXRlZ3l8fFQkKGQuc291'@; put 'cmNlKX07YS5zY2hlZHVsZU5hdmlnYXRpb24oVyxOXyxudWxsLGllLHtyZXNvbHZlOmQucmVzb2x2ZSxyZWplY3Q6ZC5yZWplY3QscHJvbWlzZTpkLnByb21pc2V9KX1lbHNlIGQucmVzb2x2ZSghMSl9ZWxzZXthLnJlc3RvcmVIaXN0b3J5KGQsITApO2NvbnN0IFQ9bmV3IFdPKGQuaWQsdGhp'@; put 'cy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShkLmV4dHJhY3RlZFVybCksXyxkLnRhcmdldFNuYXBzaG90Pz92b2lkIDApO3RoaXMuZXZlbnRzLm5leHQoVCk7dHJ5e2QucmVzb2x2ZShhLmVycm9ySGFuZGxlcihfKSl9Y2F0Y2goVyl7ZC5yZWplY3QoVyl9fXJldHVybiBMb30pKX0pKX1jYW5j'@; put 'ZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbihhLGQsaCl7Y29uc3QgZj1uZXcgTXgoYS5pZCx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKGEuZXh0cmFjdGVkVXJsKSxkLGgpO3RoaXMuZXZlbnRzLm5leHQoZiksYS5yZXNvbHZlKCExKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7ZnVuY3Rpb24gVCQoYyl7cmV0dXJuIGMhPT1OX31sZXQgRCQ9KCgpPT57Y2xhc3MgY3tidWlsZFRpdGxlKGEpe2xldCBkLGg9YS5y'@; put 'b290O2Zvcig7dm9pZCAwIT09aDspZD10aGlzLmdldFJlc29sdmVkVGl0bGVGb3JSb3V0ZShoKT8/ZCxoPWguY2hpbGRyZW4uZmluZChmPT5mLm91dGxldD09PWxzKTtyZXR1cm4gZH1nZXRSZXNvbHZlZFRpdGxlRm9yUm91dGUoYSl7cmV0dXJuIGEuZGF0YVtMX119fXJldHVybiBjLlx1MDI3'@; put 'NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBGaShCMmUpfSxwcm92aWRlZEluOiJyb290In0pLGN9KSgpLEIyZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgRCR7Y29uc3RydWN0b3IoYSl7'@; put 'c3VwZXIoKSx0aGlzLnRpdGxlPWF9dXBkYXRlVGl0bGUoYSl7Y29uc3QgZD10aGlzLmJ1aWxkVGl0bGUoYSk7dm9pZCAwIT09ZCYmdGhpcy50aXRsZS5zZXRUaXRsZShkKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoa0cpKX0sYy5cdTAyNzVw'@; put 'cm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSxqMmU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIEZpKFUyZSl9LHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7Y2xhc3MgejJle3Nob3VsZERldGFjaChsKXtyZXR1cm4hMX1zdG9yZShsLGEpe31zaG91bGRBdHRhY2gobCl7cmV0dXJuITF9cmV0cmlldmUobCl7cmV0dXJuIG51bGx9c2hvdWxkUmV1c2VSb3V0ZShs'@; put 'LGEpe3JldHVybiBsLnJvdXRlQ29uZmlnPT09YS5yb3V0ZUNvbmZpZ319bGV0IFUyZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgejJle31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgbDtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuKGx8fChsPXhhKGMpKSkoZHx8Yyl9fSgpLGMu'@; put 'XHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7Y29uc3QgTHg9bmV3IFNpKCIiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT4oe30pfSk7bGV0IFoyZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVm'@; put 'YWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gRmkoWTJlKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSxZMmU9KCgpPT57Y2xhc3MgY3tzaG91bGRQcm9jZXNzVXJsKGEpe3JldHVybiEw'@; put 'fWV4dHJhY3QoYSl7cmV0dXJuIGF9bWVyZ2UoYSxkKXtyZXR1cm4gYX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7dmFy'@; put 'IFdfPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuQ09NUExFVEU9MF09IkNPTVBMRVRFIixjW2MuRkFJTEVEPTFdPSJGQUlMRUQiLGNbYy5SRURJUkVDVElORz0yXT0iUkVESVJFQ1RJTkciLGN9KFdffHx7fSk7ZnVuY3Rpb24gSSQoYyxsKXtjLmV2ZW50cy5waXBlKElhKGE9PmEgaW5zdGFuY2Vv'@; put 'ZiBocHx8YSBpbnN0YW5jZW9mIE14fHxhIGluc3RhbmNlb2YgV098fGEgaW5zdGFuY2VvZiBWXyksTWUoYT0+YSBpbnN0YW5jZW9mIGhwfHxhIGluc3RhbmNlb2YgVl8/V18uQ09NUExFVEU6YSBpbnN0YW5jZW9mIE14JiYoMD09PWEuY29kZXx8MT09PWEuY29kZSk/V18uUkVESVJFQ1RJTkc6'@; put 'V18uRkFJTEVEKSxJYShhPT5hIT09V18uUkVESVJFQ1RJTkcpLGlkKDEpKS5zdWJzY3JpYmUoKCk9PntsKCl9KX1mdW5jdGlvbiBXMmUoYyl7dGhyb3cgY31mdW5jdGlvbiBHMmUoYyxsLGEpe3JldHVybiBsLnBhcnNlKCIvIil9Y29uc3QgJDJlPXtwYXRoczoiZXhhY3QiLGZyYWdtZW50OiJp'@; put 'Z25vcmVkIixtYXRyaXhQYXJhbXM6Imlnbm9yZWQiLHF1ZXJ5UGFyYW1zOiJleGFjdCJ9LHEyZT17cGF0aHM6InN1YnNldCIsZnJhZ21lbnQ6Imlnbm9yZWQiLG1hdHJpeFBhcmFtczoiaWdub3JlZCIscXVlcnlQYXJhbXM6InN1YnNldCJ9O2xldCBEcz0oKCk9PntjbGFzcyBje2dldCBuYXZp'@; put 'Z2F0aW9uSWQoKXtyZXR1cm4gdGhpcy5uYXZpZ2F0aW9uVHJhbnNpdGlvbnMubmF2aWdhdGlvbklkfWdldCBicm93c2VyUGFnZUlkKCl7aWYoImNvbXB1dGVkIj09PXRoaXMuY2FuY2VsZWROYXZpZ2F0aW9uUmVzb2x1dGlvbilyZXR1cm4gdGhpcy5sb2NhdGlvbi5nZXRTdGF0ZSgpPy5cdTAy'@; put 'NzVyb3V0ZXJQYWdlSWR9Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucy5ldmVudHN9Y29uc3RydWN0b3IoKXt0aGlzLmRpc3Bvc2VkPSExLHRoaXMuY3VycmVudFBhZ2VJZD0wLHRoaXMuY29uc29sZT1GaSh0VyksdGhpcy5pc05nWm9uZUVuYWJsZWQ9ITEs'@; put 'dGhpcy5vcHRpb25zPUZpKEx4LHtvcHRpb25hbDohMH0pfHx7fSx0aGlzLnBlbmRpbmdUYXNrcz1GaShxTSksdGhpcy5lcnJvckhhbmRsZXI9dGhpcy5vcHRpb25zLmVycm9ySGFuZGxlcnx8VzJlLHRoaXMubWFsZm9ybWVkVXJpRXJyb3JIYW5kbGVyPXRoaXMub3B0aW9ucy5tYWxmb3JtZWRV'@; put 'cmlFcnJvckhhbmRsZXJ8fEcyZSx0aGlzLm5hdmlnYXRlZD0hMSx0aGlzLmxhc3RTdWNjZXNzZnVsSWQ9LTEsdGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5PUZpKFoyZSksdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3k9RmkoajJlKSx0aGlzLnRpdGxlU3RyYXRlZ3k9RmkoRCQpLHRoaXMub25TYW1l'@; put 'VXJsTmF2aWdhdGlvbj10aGlzLm9wdGlvbnMub25TYW1lVXJsTmF2aWdhdGlvbnx8Imlnbm9yZSIsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PXRoaXMub3B0aW9ucy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5fHwiZW1wdHlPbmx5Iix0aGlzLnVybFVwZGF0ZVN0cmF0ZWd5PXRo'@; put 'aXMub3B0aW9ucy51cmxVcGRhdGVTdHJhdGVneXx8ImRlZmVycmVkIix0aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb249dGhpcy5vcHRpb25zLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb258fCJyZXBsYWNlIix0aGlzLmNvbmZpZz1GaShRNix7b3B0aW9uYWw6ITB9KT8uZmxh'@; put 'dCgpPz9bXSx0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucz1GaShJeCksdGhpcy51cmxTZXJpYWxpemVyPUZpKE9fKSx0aGlzLmxvY2F0aW9uPUZpKEpkKSx0aGlzLmNvbXBvbmVudElucHV0QmluZGluZ0VuYWJsZWQ9ISFGaShFeCx7b3B0aW9uYWw6ITB9KSx0aGlzLmlzTmdab25lRW5hYmxl'@; put 'ZD1GaShObylpbnN0YW5jZW9mIE5vJiZOby5pc0luQW5ndWxhclpvbmUoKSx0aGlzLnJlc2V0Q29uZmlnKHRoaXMuY29uZmlnKSx0aGlzLmN1cnJlbnRVcmxUcmVlPW5ldyAkNix0aGlzLnJhd1VybFRyZWU9dGhpcy5jdXJyZW50VXJsVHJlZSx0aGlzLmJyb3dzZXJVcmxUcmVlPXRoaXMuY3Vy'@; put 'cmVudFVybFRyZWUsdGhpcy5yb3V0ZXJTdGF0ZT1sJCgwLG51bGwpLHRoaXMubmF2aWdhdGlvblRyYW5zaXRpb25zLnNldHVwTmF2aWdhdGlvbnModGhpcykuc3Vic2NyaWJlKGE9Pnt0aGlzLmxhc3RTdWNjZXNzZnVsSWQ9YS5pZCx0aGlzLmN1cnJlbnRQYWdlSWQ9dGhpcy5icm93c2VyUGFn'@; put 'ZUlkPz8wfSxhPT57dGhpcy5jb25zb2xlLndhcm4oYFVuaGFuZGxlZCBOYXZpZ2F0aW9uIEVycm9yOiAke2F9YCl9KX1yZXNldFJvb3RDb21wb25lbnRUeXBlKGEpe3RoaXMucm91dGVyU3RhdGUucm9vdC5jb21wb25lbnQ9YSx0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucy5yb290Q29tcG9u'@; put 'ZW50VHlwZT1hfWluaXRpYWxOYXZpZ2F0aW9uKCl7aWYodGhpcy5zZXRVcExvY2F0aW9uQ2hhbmdlTGlzdGVuZXIoKSwhdGhpcy5uYXZpZ2F0aW9uVHJhbnNpdGlvbnMuaGFzUmVxdWVzdGVkTmF2aWdhdGlvbil7Y29uc3QgYT10aGlzLmxvY2F0aW9uLmdldFN0YXRlKCk7dGhpcy5uYXZpZ2F0'@; put 'ZVRvU3luY1dpdGhCcm93c2VyKHRoaXMubG9jYXRpb24ucGF0aCghMCksTl8sYSl9fXNldFVwTG9jYXRpb25DaGFuZ2VMaXN0ZW5lcigpe3RoaXMubG9jYXRpb25TdWJzY3JpcHRpb258fCh0aGlzLmxvY2F0aW9uU3Vic2NyaXB0aW9uPXRoaXMubG9jYXRpb24uc3Vic2NyaWJlKGE9Pntjb25z'@; put 'dCBkPSJwb3BzdGF0ZSI9PT1hLnR5cGU/InBvcHN0YXRlIjoiaGFzaGNoYW5nZSI7InBvcHN0YXRlIj09PWQmJnNldFRpbWVvdXQoKCk9Pnt0aGlzLm5hdmlnYXRlVG9TeW5jV2l0aEJyb3dzZXIoYS51cmwsZCxhLnN0YXRlKX0sMCl9KSl9bmF2aWdhdGVUb1N5bmNXaXRoQnJvd3NlcihhLGQs'@; put 'aCl7Y29uc3QgZj17cmVwbGFjZVVybDohMH0sXz1oPy5uYXZpZ2F0aW9uSWQ/aDpudWxsO2lmKGgpe2NvbnN0IFc9ey4uLmh9O2RlbGV0ZSBXLm5hdmlnYXRpb25JZCxkZWxldGUgVy5cdTAyNzVyb3V0ZXJQYWdlSWQsMCE9PU9iamVjdC5rZXlzKFcpLmxlbmd0aCYmKGYuc3RhdGU9Vyl9Y29u'@; put 'c3QgVD10aGlzLnBhcnNlVXJsKGEpO3RoaXMuc2NoZWR1bGVOYXZpZ2F0aW9uKFQsZCxfLGYpfWdldCB1cmwoKXtyZXR1cm4gdGhpcy5zZXJpYWxpemVVcmwodGhpcy5jdXJyZW50VXJsVHJlZSl9Z2V0Q3VycmVudE5hdmlnYXRpb24oKXtyZXR1cm4gdGhpcy5uYXZpZ2F0aW9uVHJhbnNpdGlv'@; put 'bnMuY3VycmVudE5hdmlnYXRpb259Z2V0IGxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbigpe3JldHVybiB0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb259cmVzZXRDb25maWcoYSl7dGhpcy5jb25maWc9YS5tYXAoUU8pLHRoaXMubmF2aWdhdGVkPSEx'@; put 'LHRoaXMubGFzdFN1Y2Nlc3NmdWxJZD0tMX1uZ09uRGVzdHJveSgpe3RoaXMuZGlzcG9zZSgpfWRpc3Bvc2UoKXt0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucy5jb21wbGV0ZSgpLHRoaXMubG9jYXRpb25TdWJzY3JpcHRpb24mJih0aGlzLmxvY2F0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2Ny'@; put 'aWJlKCksdGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbj12b2lkIDApLHRoaXMuZGlzcG9zZWQ9ITB9Y3JlYXRlVXJsVHJlZShhLGQ9e30pe2NvbnN0e3JlbGF0aXZlVG86aCxxdWVyeVBhcmFtczpmLGZyYWdtZW50Ol8scXVlcnlQYXJhbXNIYW5kbGluZzpULHByZXNlcnZlRnJhZ21lbnQ6V309'@; put 'ZCxpZT1XP3RoaXMuY3VycmVudFVybFRyZWUuZnJhZ21lbnQ6XztsZXQgd2UscGU9bnVsbDtzd2l0Y2goVCl7Y2FzZSJtZXJnZSI6cGU9ey4uLnRoaXMuY3VycmVudFVybFRyZWUucXVlcnlQYXJhbXMsLi4uZn07YnJlYWs7Y2FzZSJwcmVzZXJ2ZSI6cGU9dGhpcy5jdXJyZW50VXJsVHJlZS5x'@; put 'dWVyeVBhcmFtczticmVhaztkZWZhdWx0OnBlPWZ8fG51bGx9bnVsbCE9PXBlJiYocGU9dGhpcy5yZW1vdmVFbXB0eVByb3BzKHBlKSk7dHJ5e3dlPUpHKGg/aC5zbmFwc2hvdDp0aGlzLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpfWNhdGNoeygic3RyaW5nIiE9dHlwZW9mIGFbMF18fCFh'@; put 'WzBdLnN0YXJ0c1dpdGgoIi8iKSkmJihhPVtdKSx3ZT10aGlzLmN1cnJlbnRVcmxUcmVlLnJvb3R9cmV0dXJuIFFHKHdlLGEscGUsaWU/P251bGwpfW5hdmlnYXRlQnlVcmwoYSxkPXtza2lwTG9jYXRpb25DaGFuZ2U6ITF9KXtjb25zdCBoPUQ1KGEpP2E6dGhpcy5wYXJzZVVybChhKSxmPXRo'@; put 'aXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZShoLHRoaXMucmF3VXJsVHJlZSk7cmV0dXJuIHRoaXMuc2NoZWR1bGVOYXZpZ2F0aW9uKGYsTl8sbnVsbCxkKX1uYXZpZ2F0ZShhLGQ9e3NraXBMb2NhdGlvbkNoYW5nZTohMX0pe3JldHVybiBmdW5jdGlvbiBLMmUoYyl7Zm9yKGxldCBsPTA7'@; put 'bDxjLmxlbmd0aDtsKyspaWYobnVsbD09Y1tsXSl0aHJvdyBuZXcgQXIoNDAwOCwhMSl9KGEpLHRoaXMubmF2aWdhdGVCeVVybCh0aGlzLmNyZWF0ZVVybFRyZWUoYSxkKSxkKX1zZXJpYWxpemVVcmwoYSl7cmV0dXJuIHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoYSl9cGFyc2VVcmwo'@; put 'YSl7bGV0IGQ7dHJ5e2Q9dGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKGEpfWNhdGNoKGgpe2Q9dGhpcy5tYWxmb3JtZWRVcmlFcnJvckhhbmRsZXIoaCx0aGlzLnVybFNlcmlhbGl6ZXIsYSl9cmV0dXJuIGR9aXNBY3RpdmUoYSxkKXtsZXQgaDtpZihoPSEwPT09ZD97Li4uJDJlfTohMT09PWQ/'@; put 'ey4uLnEyZX06ZCxENShhKSlyZXR1cm4gVUcodGhpcy5jdXJyZW50VXJsVHJlZSxhLGgpO2NvbnN0IGY9dGhpcy5wYXJzZVVybChhKTtyZXR1cm4gVUcodGhpcy5jdXJyZW50VXJsVHJlZSxmLGgpfXJlbW92ZUVtcHR5UHJvcHMoYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEpLnJlZHVjZSgoZCxo'@; put 'KT0+e2NvbnN0IGY9YVtoXTtyZXR1cm4gbnVsbCE9ZiYmKGRbaF09ZiksZH0se30pfXNjaGVkdWxlTmF2aWdhdGlvbihhLGQsaCxmLF8pe2lmKHRoaXMuZGlzcG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7bGV0IFQsVyxpZTtfPyhUPV8ucmVzb2x2ZSxXPV8ucmVqZWN0LGllPV8u'@; put 'cHJvbWlzZSk6aWU9bmV3IFByb21pc2UoKHdlLEVlKT0+e1Q9d2UsVz1FZX0pO2NvbnN0IHBlPXRoaXMucGVuZGluZ1Rhc2tzLmFkZCgpO3JldHVybiBJJCh0aGlzLCgpPT57cXVldWVNaWNyb3Rhc2soKCk9PnRoaXMucGVuZGluZ1Rhc2tzLnJlbW92ZShwZSkpfSksdGhpcy5uYXZpZ2F0aW9u'@; put 'VHJhbnNpdGlvbnMuaGFuZGxlTmF2aWdhdGlvblJlcXVlc3Qoe3NvdXJjZTpkLHJlc3RvcmVkU3RhdGU6aCxjdXJyZW50VXJsVHJlZTp0aGlzLmN1cnJlbnRVcmxUcmVlLGN1cnJlbnRSYXdVcmw6dGhpcy5jdXJyZW50VXJsVHJlZSxyYXdVcmw6YSxleHRyYXM6ZixyZXNvbHZlOlQscmVqZWN0'@; put 'OlcscHJvbWlzZTppZSxjdXJyZW50U25hcHNob3Q6dGhpcy5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCxjdXJyZW50Um91dGVyU3RhdGU6dGhpcy5yb3V0ZXJTdGF0ZX0pLGllLmNhdGNoKHdlPT5Qcm9taXNlLnJlamVjdCh3ZSkpfXNldEJyb3dzZXJVcmwoYSxkKXtjb25zdCBoPXRoaXMudXJsU2Vy'@; put 'aWFsaXplci5zZXJpYWxpemUoYSk7aWYodGhpcy5sb2NhdGlvbi5pc0N1cnJlbnRQYXRoRXF1YWxUbyhoKXx8ZC5leHRyYXMucmVwbGFjZVVybCl7Y29uc3QgXz17Li4uZC5leHRyYXMuc3RhdGUsLi4udGhpcy5nZW5lcmF0ZU5nUm91dGVyU3RhdGUoZC5pZCx0aGlzLmJyb3dzZXJQYWdlSWQp'@; put 'fTt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShoLCIiLF8pfWVsc2V7Y29uc3QgZj17Li4uZC5leHRyYXMuc3RhdGUsLi4udGhpcy5nZW5lcmF0ZU5nUm91dGVyU3RhdGUoZC5pZCwodGhpcy5icm93c2VyUGFnZUlkPz8wKSsxKX07dGhpcy5sb2NhdGlvbi5nbyhoLCIiLGYpfX1yZXN0b3Jl'@; put 'SGlzdG9yeShhLGQ9ITEpe2lmKCJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24pe2NvbnN0IGY9dGhpcy5jdXJyZW50UGFnZUlkLSh0aGlzLmJyb3dzZXJQYWdlSWQ/P3RoaXMuY3VycmVudFBhZ2VJZCk7MCE9PWY/dGhpcy5sb2NhdGlvbi5oaXN0b3J5R28o'@; put 'Zik6dGhpcy5jdXJyZW50VXJsVHJlZT09PXRoaXMuZ2V0Q3VycmVudE5hdmlnYXRpb24oKT8uZmluYWxVcmwmJjA9PT1mJiYodGhpcy5yZXNldFN0YXRlKGEpLHRoaXMuYnJvd3NlclVybFRyZWU9YS5jdXJyZW50VXJsVHJlZSx0aGlzLnJlc2V0VXJsVG9DdXJyZW50VXJsVHJlZSgpKX1lbHNl'@; put 'InJlcGxhY2UiPT09dGhpcy5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uJiYoZCYmdGhpcy5yZXNldFN0YXRlKGEpLHRoaXMucmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCkpfXJlc2V0U3RhdGUoYSl7dGhpcy5yb3V0ZXJTdGF0ZT1hLmN1cnJlbnRSb3V0ZXJTdGF0ZSx0aGlzLmN1cnJl'@; put 'bnRVcmxUcmVlPWEuY3VycmVudFVybFRyZWUsdGhpcy5yYXdVcmxUcmVlPXRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZSh0aGlzLmN1cnJlbnRVcmxUcmVlLGEucmF3VXJsKX1yZXNldFVybFRvQ3VycmVudFVybFRyZWUoKXt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLnVy'@; put 'bFNlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMucmF3VXJsVHJlZSksIiIsdGhpcy5nZW5lcmF0ZU5nUm91dGVyU3RhdGUodGhpcy5sYXN0U3VjY2Vzc2Z1bElkLHRoaXMuY3VycmVudFBhZ2VJZCkpfWdlbmVyYXRlTmdSb3V0ZXJTdGF0ZShhLGQpe3JldHVybiJjb21wdXRlZCI9PT10aGlzLmNh'@; put 'bmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24/e25hdmlnYXRpb25JZDphLFx1MDI3NXJvdXRlclBhZ2VJZDpkfTp7bmF2aWdhdGlvbklkOmF9fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6'@; put 'Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSxCdT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyxUKXt0aGlzLnJvdXRlcj1hLHRoaXMucm91dGU9ZCx0aGlzLnRhYkluZGV4QXR0cmlidXRlPWgsdGhpcy5yZW5kZXJlcj1mLHRoaXMuZWw9Xyx0aGlzLmxv'@; put 'Y2F0aW9uU3RyYXRlZ3k9VCx0aGlzLmhyZWY9bnVsbCx0aGlzLmNvbW1hbmRzPW51bGwsdGhpcy5vbkNoYW5nZXM9bmV3IGJlLHRoaXMucHJlc2VydmVGcmFnbWVudD0hMSx0aGlzLnNraXBMb2NhdGlvbkNoYW5nZT0hMSx0aGlzLnJlcGxhY2VVcmw9ITE7Y29uc3QgVz1fLm5hdGl2ZUVsZW1l'@; put 'bnQudGFnTmFtZT8udG9Mb3dlckNhc2UoKTt0aGlzLmlzQW5jaG9yRWxlbWVudD0iYSI9PT1XfHwiYXJlYSI9PT1XLHRoaXMuaXNBbmNob3JFbGVtZW50P3RoaXMuc3Vic2NyaXB0aW9uPWEuZXZlbnRzLnN1YnNjcmliZShpZT0+e2llIGluc3RhbmNlb2YgaHAmJnRoaXMudXBkYXRlSHJlZigp'@; put 'fSk6dGhpcy5zZXRUYWJJbmRleElmTm90T25OYXRpdmVFbCgiMCIpfXNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKGEpe251bGwhPXRoaXMudGFiSW5kZXhBdHRyaWJ1dGV8fHRoaXMuaXNBbmNob3JFbGVtZW50fHx0aGlzLmFwcGx5QXR0cmlidXRlVmFsdWUoInRhYmluZGV4IixhKX1uZ09u'@; put 'Q2hhbmdlcyhhKXt0aGlzLmlzQW5jaG9yRWxlbWVudCYmdGhpcy51cGRhdGVIcmVmKCksdGhpcy5vbkNoYW5nZXMubmV4dCh0aGlzKX1zZXQgcm91dGVyTGluayhhKXtudWxsIT1hPyh0aGlzLmNvbW1hbmRzPUFycmF5LmlzQXJyYXkoYSk/YTpbYV0sdGhpcy5zZXRUYWJJbmRleElmTm90T25O'@; put 'YXRpdmVFbCgiMCIpKToodGhpcy5jb21tYW5kcz1udWxsLHRoaXMuc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwobnVsbCkpfW9uQ2xpY2soYSxkLGgsZixfKXtyZXR1cm4hIShudWxsPT09dGhpcy51cmxUcmVlfHx0aGlzLmlzQW5jaG9yRWxlbWVudCYmKDAhPT1hfHxkfHxofHxmfHxffHwi'@; put 'c3RyaW5nIj09dHlwZW9mIHRoaXMudGFyZ2V0JiYiX3NlbGYiIT10aGlzLnRhcmdldCkpfHwodGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnVybFRyZWUse3NraXBMb2NhdGlvbkNoYW5nZTp0aGlzLnNraXBMb2NhdGlvbkNoYW5nZSxyZXBsYWNlVXJsOnRoaXMucmVwbGFjZVVybCxz'@; put 'dGF0ZTp0aGlzLnN0YXRlfSksIXRoaXMuaXNBbmNob3JFbGVtZW50KX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpfXVwZGF0ZUhyZWYoKXt0aGlzLmhyZWY9bnVsbCE9PXRoaXMudXJsVHJlZSYmdGhpcy5sb2NhdGlvblN0cmF0ZWd5P3RoaXMubG9jYXRp'@; put 'b25TdHJhdGVneT8ucHJlcGFyZUV4dGVybmFsVXJsKHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh0aGlzLnVybFRyZWUpKTpudWxsO2NvbnN0IGE9bnVsbD09PXRoaXMuaHJlZj9udWxsOmZ1bmN0aW9uIFlDKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gcEkoYyxsKXtyZXR1cm4ic3JjIj09PWwm'@; put 'JigiZW1iZWQiPT09Y3x8ImZyYW1lIj09PWN8fCJpZnJhbWUiPT09Y3x8Im1lZGlhIj09PWN8fCJzY3JpcHQiPT09Yyl8fCJocmVmIj09PWwmJigiYmFzZSI9PT1jfHwibGluayI9PT1jKT9aQzpydn0obCxhKShjKX0odGhpcy5ocmVmLHRoaXMuZWwubmF0aXZlRWxlbWVudC50YWdOYW1lLnRv'@; put 'TG93ZXJDYXNlKCksImhyZWYiKTt0aGlzLmFwcGx5QXR0cmlidXRlVmFsdWUoImhyZWYiLGEpfWFwcGx5QXR0cmlidXRlVmFsdWUoYSxkKXtjb25zdCBoPXRoaXMucmVuZGVyZXIsZj10aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7bnVsbCE9PWQ/aC5zZXRBdHRyaWJ1dGUoZixhLGQpOmgucmVtb3Zl'@; put 'QXR0cmlidXRlKGYsYSl9Z2V0IHVybFRyZWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29tbWFuZHM/bnVsbDp0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMuY29tbWFuZHMse3JlbGF0aXZlVG86dm9pZCAwIT09dGhpcy5yZWxhdGl2ZVRvP3RoaXMucmVsYXRpdmVUbzp0aGlzLnJvdXRl'@; put 'LHF1ZXJ5UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMsZnJhZ21lbnQ6dGhpcy5mcmFnbWVudCxxdWVyeVBhcmFtc0hhbmRsaW5nOnRoaXMucXVlcnlQYXJhbXNIYW5kbGluZyxwcmVzZXJ2ZUZyYWdtZW50OnRoaXMucHJlc2VydmVGcmFnbWVudH0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rp'@; put 'b24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChEcyksdHQoR2wpLFA0KCJ0YWJpbmRleCIpLHR0KEZvKSx0dChOaSksdHQoazUpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwicm91dGVyTGluayIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihh'@; put 'LGQpezEmYSYmeHQoImNsaWNrIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkNsaWNrKGYuYnV0dG9uLGYuY3RybEtleSxmLnNoaWZ0S2V5LGYuYWx0S2V5LGYubWV0YUtleSl9KSwyJmEmJlRyKCJ0YXJnZXQiLGQudGFyZ2V0KX0saW5wdXRzOnt0YXJnZXQ6InRhcmdldCIscXVlcnlQYXJhbXM6'@; put 'InF1ZXJ5UGFyYW1zIixmcmFnbWVudDoiZnJhZ21lbnQiLHF1ZXJ5UGFyYW1zSGFuZGxpbmc6InF1ZXJ5UGFyYW1zSGFuZGxpbmciLHN0YXRlOiJzdGF0ZSIscmVsYXRpdmVUbzoicmVsYXRpdmVUbyIscHJlc2VydmVGcmFnbWVudDpbInByZXNlcnZlRnJhZ21lbnQiLCJwcmVzZXJ2ZUZyYWdt'@; put 'ZW50IixVNl0sc2tpcExvY2F0aW9uQ2hhbmdlOlsic2tpcExvY2F0aW9uQ2hhbmdlIiwic2tpcExvY2F0aW9uQ2hhbmdlIixVNl0scmVwbGFjZVVybDpbInJlcGxhY2VVcmwiLCJyZXBsYWNlVXJsIixVNl0scm91dGVyTGluazoicm91dGVyTGluayJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6'@; put 'W2VNLHZhXX0pLGN9KSgpLEdfPSgoKT0+e2NsYXNzIGN7Z2V0IGlzQWN0aXZlKCl7cmV0dXJuIHRoaXMuX2lzQWN0aXZlfWNvbnN0cnVjdG9yKGEsZCxoLGYsXyl7dGhpcy5yb3V0ZXI9YSx0aGlzLmVsZW1lbnQ9ZCx0aGlzLnJlbmRlcmVyPWgsdGhpcy5jZHI9Zix0aGlzLmxpbms9Xyx0aGlz'@; put 'LmNsYXNzZXM9W10sdGhpcy5faXNBY3RpdmU9ITEsdGhpcy5yb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucz17ZXhhY3Q6ITF9LHRoaXMuaXNBY3RpdmVDaGFuZ2U9bmV3IEVyLHRoaXMucm91dGVyRXZlbnRzU3Vic2NyaXB0aW9uPWEuZXZlbnRzLnN1YnNjcmliZShUPT57VCBpbnN0YW5jZW9mIGhw'@; put 'JiZ0aGlzLnVwZGF0ZSgpfSl9bmdBZnRlckNvbnRlbnRJbml0KCl7V2kodGhpcy5saW5rcy5jaGFuZ2VzLFdpKG51bGwpKS5waXBlKFBpKCkpLnN1YnNjcmliZShhPT57dGhpcy51cGRhdGUoKSx0aGlzLnN1YnNjcmliZVRvRWFjaExpbmtPbkNoYW5nZXMoKX0pfXN1YnNjcmliZVRvRWFjaExp'@; put 'bmtPbkNoYW5nZXMoKXt0aGlzLmxpbmtJbnB1dENoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7Y29uc3QgYT1bLi4udGhpcy5saW5rcy50b0FycmF5KCksdGhpcy5saW5rXS5maWx0ZXIoZD0+ISFkKS5tYXAoZD0+ZC5vbkNoYW5nZXMpO3RoaXMubGlua0lucHV0Q2hhbmdlc1N1'@; put 'YnNjcmlwdGlvbj1lYShhKS5waXBlKFBpKCkpLnN1YnNjcmliZShkPT57dGhpcy5faXNBY3RpdmUhPT10aGlzLmlzTGlua0FjdGl2ZSh0aGlzLnJvdXRlcikoZCkmJnRoaXMudXBkYXRlKCl9KX1zZXQgcm91dGVyTGlua0FjdGl2ZShhKXtjb25zdCBkPUFycmF5LmlzQXJyYXkoYSk/YTphLnNw'@; put 'bGl0KCIgIik7dGhpcy5jbGFzc2VzPWQuZmlsdGVyKGg9PiEhaCl9bmdPbkNoYW5nZXMoYSl7dGhpcy51cGRhdGUoKX1uZ09uRGVzdHJveSgpe3RoaXMucm91dGVyRXZlbnRzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5saW5rSW5wdXRDaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1'@; put 'YnNjcmliZSgpfXVwZGF0ZSgpeyF0aGlzLmxpbmtzfHwhdGhpcy5yb3V0ZXIubmF2aWdhdGVkfHxxdWV1ZU1pY3JvdGFzaygoKT0+e2NvbnN0IGE9dGhpcy5oYXNBY3RpdmVMaW5rcygpO3RoaXMuX2lzQWN0aXZlIT09YSYmKHRoaXMuX2lzQWN0aXZlPWEsdGhpcy5jZHIubWFya0ZvckNoZWNr'@; put 'KCksdGhpcy5jbGFzc2VzLmZvckVhY2goZD0+e2E/dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxkKTp0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LGQpfSksYSYmdm9pZCAwIT09dGhpcy5hcmlhQ3Vy'@; put 'cmVudFdoZW5BY3RpdmU/dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsImFyaWEtY3VycmVudCIsdGhpcy5hcmlhQ3VycmVudFdoZW5BY3RpdmUudG9TdHJpbmcoKSk6dGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtZW50'@; put 'Lm5hdGl2ZUVsZW1lbnQsImFyaWEtY3VycmVudCIpLHRoaXMuaXNBY3RpdmVDaGFuZ2UuZW1pdChhKSl9KX1pc0xpbmtBY3RpdmUoYSl7Y29uc3QgZD1mdW5jdGlvbiBYMmUoYyl7cmV0dXJuISFjLnBhdGhzfSh0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zKT90aGlzLnJvdXRlckxpbmtB'@; put 'Y3RpdmVPcHRpb25zOnRoaXMucm91dGVyTGlua0FjdGl2ZU9wdGlvbnMuZXhhY3R8fCExO3JldHVybiBoPT4hIWgudXJsVHJlZSYmYS5pc0FjdGl2ZShoLnVybFRyZWUsZCl9aGFzQWN0aXZlTGlua3MoKXtjb25zdCBhPXRoaXMuaXNMaW5rQWN0aXZlKHRoaXMucm91dGVyKTtyZXR1cm4gdGhp'@; put 'cy5saW5rJiZhKHRoaXMubGluayl8fHRoaXMubGlua3Muc29tZShhKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoRHMpLHR0KE5pKSx0dChGbyksdHQoVWEpLHR0KEJ1LDgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1si'@; put 'Iiwicm91dGVyTGlua0FjdGl2ZSIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLEJ1LDUpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQubGlua3M9Zil9fSxpbnB1dHM6e3JvdXRlckxpbmtBY3RpdmVPcHRpb25zOiJyb3V0ZXJMaW5rQWN0aXZlT3B0'@; put 'aW9ucyIsYXJpYUN1cnJlbnRXaGVuQWN0aXZlOiJhcmlhQ3VycmVudFdoZW5BY3RpdmUiLHJvdXRlckxpbmtBY3RpdmU6InJvdXRlckxpbmtBY3RpdmUifSxvdXRwdXRzOntpc0FjdGl2ZUNoYW5nZToiaXNBY3RpdmVDaGFuZ2UifSxleHBvcnRBczpbInJvdXRlckxpbmtBY3RpdmUiXSxzdGFu'@; put 'ZGFsb25lOiEwLGZlYXR1cmVzOlt2YV19KSxjfSkoKTtjbGFzcyBMJHt9bGV0IEoyZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7dGhpcy5yb3V0ZXI9YSx0aGlzLmluamVjdG9yPWgsdGhpcy5wcmVsb2FkaW5nU3RyYXRlZ3k9Zix0aGlzLmxvYWRlcj1ffXNldFVwUHJl'@; put 'bG9hZGluZygpe3RoaXMuc3Vic2NyaXB0aW9uPXRoaXMucm91dGVyLmV2ZW50cy5waXBlKElhKGE9PmEgaW5zdGFuY2VvZiBocCksVzYoKCk9PnRoaXMucHJlbG9hZCgpKSkuc3Vic2NyaWJlKCgpPT57fSl9cHJlbG9hZCgpe3JldHVybiB0aGlzLnByb2Nlc3NSb3V0ZXModGhpcy5pbmplY3Rv'@; put 'cix0aGlzLnJvdXRlci5jb25maWcpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24mJnRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9cHJvY2Vzc1JvdXRlcyhhLGQpe2NvbnN0IGg9W107Zm9yKGNvbnN0IGYgb2YgZCl7Zi5wcm92aWRlcnMmJiFmLl9pbmplY3RvciYmKGYu'@; put 'X2luamVjdG9yPUFSKGYucHJvdmlkZXJzLGEsYFJvdXRlOiAke2YucGF0aH1gKSk7Y29uc3QgXz1mLl9pbmplY3Rvcj8/YSxUPWYuX2xvYWRlZEluamVjdG9yPz9fOyhmLmxvYWRDaGlsZHJlbiYmIWYuX2xvYWRlZFJvdXRlcyYmdm9pZCAwPT09Zi5jYW5Mb2FkfHxmLmxvYWRDb21wb25lbnQm'@; put 'JiFmLl9sb2FkZWRDb21wb25lbnQpJiZoLnB1c2godGhpcy5wcmVsb2FkQ29uZmlnKF8sZikpLChmLmNoaWxkcmVufHxmLl9sb2FkZWRSb3V0ZXMpJiZoLnB1c2godGhpcy5wcm9jZXNzUm91dGVzKFQsZi5jaGlsZHJlbj8/Zi5fbG9hZGVkUm91dGVzKSl9cmV0dXJuIGVhKGgpLnBpcGUoUGko'@; put 'KSl9cHJlbG9hZENvbmZpZyhhLGQpe3JldHVybiB0aGlzLnByZWxvYWRpbmdTdHJhdGVneS5wcmVsb2FkKGQsKCk9PntsZXQgaDtoPWQubG9hZENoaWxkcmVuJiZ2b2lkIDA9PT1kLmNhbkxvYWQ/dGhpcy5sb2FkZXIubG9hZENoaWxkcmVuKGEsZCk6V2kobnVsbCk7Y29uc3QgZj1oLnBpcGUo'@; put 'eXIoXz0+bnVsbD09PV8/V2kodm9pZCAwKTooZC5fbG9hZGVkUm91dGVzPV8ucm91dGVzLGQuX2xvYWRlZEluamVjdG9yPV8uaW5qZWN0b3IsdGhpcy5wcm9jZXNzUm91dGVzKF8uaW5qZWN0b3I/P2EsXy5yb3V0ZXMpKSkpO3JldHVybiBkLmxvYWRDb21wb25lbnQmJiFkLl9sb2FkZWRDb21w'@; put 'b25lbnQ/ZWEoW2YsdGhpcy5sb2FkZXIubG9hZENvbXBvbmVudChkKV0pLnBpcGUoUGkoKSk6Zn0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihEcyksYXIoblcpLGFyKHEwKSxhcihMJCksYXIoclApKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tl'@; put 'bjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtjb25zdCBpUD1uZXcgU2koIiIpO2xldCBSJD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXz17fSl7dGhpcy51cmxTZXJpYWxpemVyPWEsdGhpcy50cmFuc2l0aW9ucz1kLHRoaXMudmll'@; put 'd3BvcnRTY3JvbGxlcj1oLHRoaXMuem9uZT1mLHRoaXMub3B0aW9ucz1fLHRoaXMubGFzdElkPTAsdGhpcy5sYXN0U291cmNlPSJpbXBlcmF0aXZlIix0aGlzLnJlc3RvcmVkSWQ9MCx0aGlzLnN0b3JlPXt9LF8uc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbj1fLnNjcm9sbFBvc2l0aW9uUmVz'@; put 'dG9yYXRpb258fCJkaXNhYmxlZCIsXy5hbmNob3JTY3JvbGxpbmc9Xy5hbmNob3JTY3JvbGxpbmd8fCJkaXNhYmxlZCJ9aW5pdCgpeyJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNldEhpc3RvcnlTY3Jv'@; put 'bGxSZXN0b3JhdGlvbigibWFudWFsIiksdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249dGhpcy5jcmVhdGVTY3JvbGxFdmVudHMoKSx0aGlzLnNjcm9sbEV2ZW50c1N1YnNjcmlwdGlvbj10aGlzLmNvbnN1bWVTY3JvbGxFdmVudHMoKX1jcmVhdGVTY3JvbGxFdmVudHMoKXtyZXR1cm4g'@; put 'dGhpcy50cmFuc2l0aW9ucy5ldmVudHMuc3Vic2NyaWJlKGE9PnthIGluc3RhbmNlb2YgWU8/KHRoaXMuc3RvcmVbdGhpcy5sYXN0SWRdPXRoaXMudmlld3BvcnRTY3JvbGxlci5nZXRTY3JvbGxQb3NpdGlvbigpLHRoaXMubGFzdFNvdXJjZT1hLm5hdmlnYXRpb25UcmlnZ2VyLHRoaXMucmVz'@; put 'dG9yZWRJZD1hLnJlc3RvcmVkU3RhdGU/YS5yZXN0b3JlZFN0YXRlLm5hdmlnYXRpb25JZDowKTphIGluc3RhbmNlb2YgaHA/KHRoaXMubGFzdElkPWEuaWQsdGhpcy5zY2hlZHVsZVNjcm9sbEV2ZW50KGEsdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKGEudXJsQWZ0ZXJSZWRpcmVjdHMpLmZy'@; put 'YWdtZW50KSk6YSBpbnN0YW5jZW9mIFZfJiYwPT09YS5jb2RlJiYodGhpcy5sYXN0U291cmNlPXZvaWQgMCx0aGlzLnJlc3RvcmVkSWQ9MCx0aGlzLnNjaGVkdWxlU2Nyb2xsRXZlbnQoYSx0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UoYS51cmwpLmZyYWdtZW50KSl9KX1jb25zdW1lU2Nyb2xs'@; put 'RXZlbnRzKCl7cmV0dXJuIHRoaXMudHJhbnNpdGlvbnMuZXZlbnRzLnN1YnNjcmliZShhPT57YSBpbnN0YW5jZW9mIG8kJiYoYS5wb3NpdGlvbj8idG9wIj09PXRoaXMub3B0aW9ucy5zY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uP3RoaXMudmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0'@; put 'aW9uKFswLDBdKToiZW5hYmxlZCI9PT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oYS5wb3NpdGlvbik6YS5hbmNob3ImJiJlbmFibGVkIj09PXRoaXMub3B0aW9ucy5hbmNob3JTY3JvbGxpbmc/'@; put 'dGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvQW5jaG9yKGEuYW5jaG9yKToiZGlzYWJsZWQiIT09dGhpcy5vcHRpb25zLnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24mJnRoaXMudmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLDBdKSl9KX1zY2hlZHVsZVNjcm9sbEV2'@; put 'ZW50KGEsZCl7dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57c2V0VGltZW91dCgoKT0+e3RoaXMuem9uZS5ydW4oKCk9Pnt0aGlzLnRyYW5zaXRpb25zLmV2ZW50cy5uZXh0KG5ldyBvJChhLCJwb3BzdGF0ZSI9PT10aGlzLmxhc3RTb3VyY2U/dGhpcy5zdG9yZVt0aGlzLnJlc3Rv'@; put 'cmVkSWRdOm51bGwsZCkpfSl9LDApfSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJvdXRlckV2ZW50c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKSx0aGlzLnNjcm9sbEV2ZW50c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpeyFmdW5j'@; put 'dGlvbiBNUygpe3Rocm93IG5ldyBFcnJvcigiaW52YWxpZCIpfSgpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2Z1bmN0aW9uIEVmKGMsbCl7cmV0dXJue1x1MDI3NWtpbmQ6YyxcdTAyNzVwcm92aWRlcnM6bH19ZnVuY3Rpb24gUCQoKXtj'@; put 'b25zdCBjPUZpKEVhKTtyZXR1cm4gbD0+e2NvbnN0IGE9Yy5nZXQoeDUpO2lmKGwhPT1hLmNvbXBvbmVudHNbMF0pcmV0dXJuO2NvbnN0IGQ9Yy5nZXQoRHMpLGg9Yy5nZXQoRiQpOzE9PT1jLmdldChvUCkmJmQuaW5pdGlhbE5hdmlnYXRpb24oKSxjLmdldChIJCxudWxsLG5zLk9wdGlvbmFs'@; put 'KT8uc2V0VXBQcmVsb2FkaW5nKCksYy5nZXQoaVAsbnVsbCxucy5PcHRpb25hbCk/LmluaXQoKSxkLnJlc2V0Um9vdENvbXBvbmVudFR5cGUoYS5jb21wb25lbnRUeXBlc1swXSksaC5jbG9zZWR8fChoLm5leHQoKSxoLmNvbXBsZXRlKCksaC51bnN1YnNjcmliZSgpKX19Y29uc3QgRiQ9bmV3'@; put 'IFNpKCIiLHtmYWN0b3J5OigpPT5uZXcgYmV9KSxvUD1uZXcgU2koIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PjF9KSxIJD1uZXcgU2koIiIpO2Z1bmN0aW9uIG5oZShjKXtyZXR1cm4gRWYoMCxbe3Byb3ZpZGU6SCQsdXNlRXhpc3Rpbmc6SjJlfSx7cHJvdmlkZTpMJCx1c2VF'@; put 'eGlzdGluZzpjfV0pfWNvbnN0IE4kPW5ldyBTaSgiUk9VVEVSX0ZPUlJPT1RfR1VBUkQiKSxpaGU9W0pkLHtwcm92aWRlOk9fLHVzZUNsYXNzOkJPfSxEcyxCXyx7cHJvdmlkZTpHbCx1c2VGYWN0b3J5OmZ1bmN0aW9uIE8kKGMpe3JldHVybiBjLnJvdXRlclN0YXRlLnJvb3R9LGRlcHM6W0Rz'@; put 'XX0sclAsW11dO2Z1bmN0aW9uIG9oZSgpe3JldHVybiBuZXcgZlcoIlJvdXRlciIsRHMpfWxldCBoYz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe31zdGF0aWMgZm9yUm9vdChhLGQpe3JldHVybntuZ01vZHVsZTpjLHByb3ZpZGVyczpbaWhlLFtdLHtwcm92aWRlOlE2LG11bHRpOiEw'@; put 'LHVzZVZhbHVlOmF9LHtwcm92aWRlOk4kLHVzZUZhY3Rvcnk6Y2hlLGRlcHM6W1tEcyxuZXcgejIsbmV3IGcwXV19LHtwcm92aWRlOkx4LHVzZVZhbHVlOmR8fHt9fSxkPy51c2VIYXNoP3twcm92aWRlOms1LHVzZUNsYXNzOmt1ZX06e3Byb3ZpZGU6azUsdXNlQ2xhc3M6ald9LHtwcm92aWRl'@; put 'OmlQLHVzZUZhY3Rvcnk6KCk9Pntjb25zdCBjPUZpKGowZSksbD1GaShObyksYT1GaShMeCksZD1GaShJeCksaD1GaShPXyk7cmV0dXJuIGEuc2Nyb2xsT2Zmc2V0JiZjLnNldE9mZnNldChhLnNjcm9sbE9mZnNldCksbmV3IFIkKGgsZCxjLGwsYSl9fSxkPy5wcmVsb2FkaW5nU3RyYXRlZ3k/'@; put 'bmhlKGQucHJlbG9hZGluZ1N0cmF0ZWd5KS5cdTAyNzVwcm92aWRlcnM6W10se3Byb3ZpZGU6ZlcsbXVsdGk6ITAsdXNlRmFjdG9yeTpvaGV9LGQ/LmluaXRpYWxOYXZpZ2F0aW9uP3VoZShkKTpbXSxkPy5iaW5kVG9Db21wb25lbnRJbnB1dHM/RWYoOCxbaCQse3Byb3ZpZGU6RXgsdXNlRXhp'@; put 'c3Rpbmc6aCR9XSkuXHUwMjc1cHJvdmlkZXJzOltdLFt7cHJvdmlkZTpWJCx1c2VGYWN0b3J5OlAkfSx7cHJvdmlkZTpKUixtdWx0aTohMCx1c2VFeGlzdGluZzpWJH1dXX19c3RhdGljIGZvckNoaWxkKGEpe3JldHVybntuZ01vZHVsZTpjLHByb3ZpZGVyczpbe3Byb3ZpZGU6UTYsbXVsdGk6'@; put 'ITAsdXNlVmFsdWU6YX1dfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoTiQsOCkpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe30pLGN9KSgpO2Z1bmN0aW9uIGNoZShjKXtyZXR1cm4iZ3VhcmRlZCJ9ZnVuY3Rp'@; put 'b24gdWhlKGMpe3JldHVyblsiZGlzYWJsZWQiPT09Yy5pbml0aWFsTmF2aWdhdGlvbj9FZigzLFt7cHJvdmlkZTpaUixtdWx0aTohMCx1c2VGYWN0b3J5OigpPT57Y29uc3QgbD1GaShEcyk7cmV0dXJuKCk9PntsLnNldFVwTG9jYXRpb25DaGFuZ2VMaXN0ZW5lcigpfX19LHtwcm92aWRlOm9Q'@; put 'LHVzZVZhbHVlOjJ9XSkuXHUwMjc1cHJvdmlkZXJzOltdLCJlbmFibGVkQmxvY2tpbmciPT09Yy5pbml0aWFsTmF2aWdhdGlvbj9FZigyLFt7cHJvdmlkZTpvUCx1c2VWYWx1ZTowfSx7cHJvdmlkZTpaUixtdWx0aTohMCxkZXBzOltFYV0sdXNlRmFjdG9yeTpsPT57Y29uc3QgYT1sLmdldCh4'@; put 'dWUsUHJvbWlzZS5yZXNvbHZlKCkpO3JldHVybigpPT5hLnRoZW4oKCk9Pm5ldyBQcm9taXNlKGQ9Pntjb25zdCBoPWwuZ2V0KERzKSxmPWwuZ2V0KEYkKTtJJChoLCgpPT57ZCghMCl9KSxsLmdldChJeCkuYWZ0ZXJQcmVhY3RpdmF0aW9uPSgpPT4oZCghMCksZi5jbG9zZWQ/V2kodm9pZCAw'@; put 'KTpmKSxoLmluaXRpYWxOYXZpZ2F0aW9uKCl9KSl9fV0pLlx1MDI3NXByb3ZpZGVyczpbXV19Y29uc3QgViQ9bmV3IFNpKCIiKTt2YXIgQiQ9RigzNjA3MiksaGhlPUYoNjYzMDQpO2NvbnN0IHNQPXt1c2Vyc19hbGxvd2VkOjEsdmlld2VyX3Jvd3NfYWxsb3dlZDoxNSxlZGl0b3Jfcm93c19h'@; put 'bGxvd2VkOjE1LHN0YWdlX3Jvd3NfYWxsb3dlZDoxLzAsaGlzdG9yeV9yb3dzX2FsbG93ZWQ6MTUsc3VibWl0X3Jvd3NfbGltaXQ6NSx2aWV3Ym94X2xpbWl0OjEsbGluZWFnZV9kYWlseV9saW1pdDozLHRhYmxlc19pbl9saWJyYXJ5X2xpbWl0OjM1LHZpZXdib3g6ITAsZmlsZVVwbG9hZDoh'@; put 'MCxlZGl0UmVjb3JkOiEwLGFkZFJlY29yZDohMH07dmFyIG4xPWZ1bmN0aW9uKGMpe3JldHVybiBjW2Mudmlld2VyX3Jvd3NfYWxsb3dlZD0wXT0idmlld2VyX3Jvd3NfYWxsb3dlZCIsY1tjLmVkaXRvcl9yb3dzX2FsbG93ZWQ9MV09ImVkaXRvcl9yb3dzX2FsbG93ZWQiLGNbYy5zdGFnZV9y'@; put 'b3dzX2FsbG93ZWQ9Ml09InN0YWdlX3Jvd3NfYWxsb3dlZCIsY1tjLmhpc3Rvcnlfcm93c19hbGxvd2VkPTNdPSJoaXN0b3J5X3Jvd3NfYWxsb3dlZCIsY1tjLnN1Ym1pdF9yb3dzX2xpbWl0PTRdPSJzdWJtaXRfcm93c19saW1pdCIsY1tjLnRhYmxlc19pbl9saWJyYXJ5X2xpbWl0PTVdPSJ0'@; put 'YWJsZXNfaW5fbGlicmFyeV9saW1pdCIsY1tjLnZpZXdib3g9Nl09InZpZXdib3giLGNbYy52aWV3Ym94X2xpbWl0PTddPSJ2aWV3Ym94X2xpbWl0IixjW2MubGluZWFnZV9kYWlseV9saW1pdD04XT0ibGluZWFnZV9kYWlseV9saW1pdCIsY1tjLmZpbGVVcGxvYWQ9OV09ImZpbGVVcGxvYWQi'@; put 'LGNbYy5lZGl0UmVjb3JkPTEwXT0iZWRpdFJlY29yZCIsY1tjLmFkZFJlY29yZD0xMV09ImFkZFJlY29yZCIsY30objF8fHt9KSxyMT1GKDU2MzIxKSxqJD1GLm4ocjEpLFpjPUYoNzY3NzEpO2xldCBlOD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7fXNldERjQWRhcHRlclNldHRpbmdz'@; put 'KGEpe3RoaXMuZGNBZGFwdGVyU2V0dGluZ3M9YX1nZXREY0FkYXB0ZXJTZXR0aW5ncygpe3JldHVybiB0aGlzLmRjQWRhcHRlclNldHRpbmdzfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6'@; put 'Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSxhUD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy51c2VyQ2hhbmdlPW5ldyBiZX1zZXQgdXNlcihhKXt0aGlzLl91c2VyPWEsdGhpcy51c2VyQ2hhbmdlLm5leHQoYSl9Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy5f'@; put 'dXNlcn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksbFA9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuYWxlcnRzPW5ldyBiZX19cmV0dXJu'@; put 'IGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksdmw9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmFsZXJ0c1NlcnZpY2U9YSx0aGlzLm9uU2lkZWJhclRv'@; put 'Z2dsZT1uZXcgRXIsdGhpcy5vblN0YXJ0dXBEYXRhTG9hZGVkPW5ldyBFcix0aGlzLm9uU2hvd0Fib3J0TW9kYWw9bmV3IEVyLHRoaXMub25SZXF1ZXN0c01vZGFsT3Blbj1uZXcgRXIsdGhpcy5vbkRlbW9MaW1pdE1vZGFsU2hvdz1uZXcgRXIsdGhpcy52aWV3TGFzdFVybD1udWxsLHRoaXMu'@; put 'c2lkZWJhckNsb3NlTGltaXQ9MTI4MH1zaG93RGVtb0xpbWl0TW9kYWwoYSl7dGhpcy5vbkRlbW9MaW1pdE1vZGFsU2hvdy5lbWl0KGEpfXNob3dJbmZvTW9kYWwoYT0iSW5mbyIsZCl7dGhpcy5vblNob3dBYm9ydE1vZGFsLmVtaXQoe21vZGFsVGl0bGU6YSxtZXNzYWdlOmQsc2FzU2Vydmlj'@; put 'ZToiIixkZXRhaWxzOm51bGx9KX1zaG93QWJvcnRNb2RhbChhLGQsaCxmPXZvaWQgMCl7aHx8KGg9bnVsbCk7bGV0IF89e3Nhc1NlcnZpY2U6YSxtZXNzYWdlOmQsZGV0YWlsczpofTtmJiYoXy5tb2RhbFRpdGxlPWYpLHRoaXMub25TaG93QWJvcnRNb2RhbC5lbWl0KF8pfW9wZW5SZXF1ZXN0'@; put 'c01vZGFsKCl7dGhpcy5vblJlcXVlc3RzTW9kYWxPcGVuLmVtaXQoITApfWNhdGNoUmVzcG9uc2VFcnJvcihhLGQpe2xldCBoPSJTQVMgU2VydmljZSBlcnJvciBvY3VycmVkIjtpZihkLmVycm9yKXtsZXQgZjtoPWQuZXJyb3IubWVzc2FnZSxkLmVycm9yLmRldGFpbHMmJmQuZXJyb3IuZGV0'@; put 'YWlscy5sb2cmJihmPWQuZXJyb3IuZGV0YWlscy5sb2cpLCghaHx8aC50cmltKCkubGVuZ3RoPDEpJiYoaD0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCIpLHRoaXMuc2hvd0Fib3J0TW9kYWwoYSxoLHtMT0c6Zn0sIlJlcXVlc3QgZXJyb3IiKX1lbHNlIHRoaXMuc2hvd0Fib3J0TW9kYWwo'@; put 'YSxoKX10b2dnbGVTaWRlYmFyKCl7dGhpcy5vblNpZGViYXJUb2dnbGUuZW1pdCgpfWNsb3NlU2lkZWJhcigpe3dpbmRvdy5pbm5lcldpZHRoPHRoaXMuc2lkZWJhckNsb3NlTGltaXQmJnRoaXMub25TaWRlYmFyVG9nZ2xlLmVtaXQoe29wZW46ITF9KX1vcGVuU2lkZWJhcigpe3RoaXMub25T'@; put 'aWRlYmFyVG9nZ2xlLmVtaXQoe29wZW46ITB9KX1zdGFydHVwRGF0YUxvYWRlZCgpe3RoaXMub25TdGFydHVwRGF0YUxvYWRlZC5lbWl0KCl9ZGlzcGF0Y2hFdmVudChhKXtsZXQgZDsiZnVuY3Rpb24iPT10eXBlb2YgRXZlbnQ/ZD1uZXcgRXZlbnQoYSk6KGQ9ZG9jdW1lbnQuY3JlYXRlRXZl'@; put 'bnQoIkV2ZW50IiksZC5pbml0RXZlbnQoYSwhMCwhMCkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KGQpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihsUCkpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92'@; put 'aWRlZEluOiJyb290In0pLGN9KSgpO2NsYXNzIFJ4e31jbGFzcyBPeHt9Y2xhc3Mgb2h7Y29uc3RydWN0b3IobCl7dGhpcy5ub3JtYWxpemVkTmFtZXM9bmV3IE1hcCx0aGlzLmxhenlVcGRhdGU9bnVsbCxsPyJzdHJpbmciPT10eXBlb2YgbD90aGlzLmxhenlJbml0PSgpPT57dGhpcy5oZWFk'@; put 'ZXJzPW5ldyBNYXAsbC5zcGxpdCgiXG4iKS5mb3JFYWNoKGE9Pntjb25zdCBkPWEuaW5kZXhPZigiOiIpO2lmKGQ+MCl7Y29uc3QgaD1hLnNsaWNlKDAsZCksZj1oLnRvTG93ZXJDYXNlKCksXz1hLnNsaWNlKGQrMSkudHJpbSgpO3RoaXMubWF5YmVTZXROb3JtYWxpemVkTmFtZShoLGYpLHRo'@; put 'aXMuaGVhZGVycy5oYXMoZik/dGhpcy5oZWFkZXJzLmdldChmKS5wdXNoKF8pOnRoaXMuaGVhZGVycy5zZXQoZixbX10pfX0pfTp0eXBlb2YgSGVhZGVyczwidSImJmwgaW5zdGFuY2VvZiBIZWFkZXJzPyh0aGlzLmhlYWRlcnM9bmV3IE1hcCxsLmZvckVhY2goKGEsZCk9Pnt0aGlzLnNldEhl'@; put 'YWRlckVudHJpZXMoZCxhKX0pKTp0aGlzLmxhenlJbml0PSgpPT57dGhpcy5oZWFkZXJzPW5ldyBNYXAsT2JqZWN0LmVudHJpZXMobCkuZm9yRWFjaCgoW2EsZF0pPT57dGhpcy5zZXRIZWFkZXJFbnRyaWVzKGEsZCl9KX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKGwpe3JldHVybiB0aGlz'@; put 'LmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKGwudG9Mb3dlckNhc2UoKSl9Z2V0KGwpe3RoaXMuaW5pdCgpO2NvbnN0IGE9dGhpcy5oZWFkZXJzLmdldChsLnRvTG93ZXJDYXNlKCkpO3JldHVybiBhJiZhLmxlbmd0aD4wP2FbMF06bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5'@; put 'LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMudmFsdWVzKCkpfWdldEFsbChsKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmdldChsLnRvTG93ZXJDYXNlKCkpfHxudWxsfWFwcGVuZChsLGEpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOmwsdmFsdWU6YSxvcDoiYSJ9KX1zZXQo'@; put 'bCxhKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTpsLHZhbHVlOmEsb3A6InMifSl9ZGVsZXRlKGwsYSl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6bCx2YWx1ZTphLG9wOiJkIn0pfW1heWJlU2V0Tm9ybWFsaXplZE5hbWUobCxhKXt0aGlzLm5vcm1hbGl6ZWROYW1lcy5oYXMoYSl8fHRoaXMu'@; put 'bm9ybWFsaXplZE5hbWVzLnNldChhLGwpfWluaXQoKXt0aGlzLmxhenlJbml0JiYodGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIG9oP3RoaXMuY29weUZyb20odGhpcy5sYXp5SW5pdCk6dGhpcy5sYXp5SW5pdCgpLHRoaXMubGF6eUluaXQ9bnVsbCx0aGlzLmxhenlVcGRhdGUmJih0aGlzLmxh'@; put 'enlVcGRhdGUuZm9yRWFjaChsPT50aGlzLmFwcGx5VXBkYXRlKGwpKSx0aGlzLmxhenlVcGRhdGU9bnVsbCkpfWNvcHlGcm9tKGwpe2wuaW5pdCgpLEFycmF5LmZyb20obC5oZWFkZXJzLmtleXMoKSkuZm9yRWFjaChhPT57dGhpcy5oZWFkZXJzLnNldChhLGwuaGVhZGVycy5nZXQoYSkpLHRo'@; put 'aXMubm9ybWFsaXplZE5hbWVzLnNldChhLGwubm9ybWFsaXplZE5hbWVzLmdldChhKSl9KX1jbG9uZShsKXtjb25zdCBhPW5ldyBvaDtyZXR1cm4gYS5sYXp5SW5pdD10aGlzLmxhenlJbml0JiZ0aGlzLmxhenlJbml0IGluc3RhbmNlb2Ygb2g/dGhpcy5sYXp5SW5pdDp0aGlzLGEubGF6eVVw'@; put 'ZGF0ZT0odGhpcy5sYXp5VXBkYXRlfHxbXSkuY29uY2F0KFtsXSksYX1hcHBseVVwZGF0ZShsKXtjb25zdCBhPWwubmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChsLm9wKXtjYXNlImEiOmNhc2UicyI6bGV0IGQ9bC52YWx1ZTtpZigic3RyaW5nIj09dHlwZW9mIGQmJihkPVtkXSksMD09PWQu'@; put 'bGVuZ3RoKXJldHVybjt0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUobC5uYW1lLGEpO2NvbnN0IGg9KCJhIj09PWwub3A/dGhpcy5oZWFkZXJzLmdldChhKTp2b2lkIDApfHxbXTtoLnB1c2goLi4uZCksdGhpcy5oZWFkZXJzLnNldChhLGgpO2JyZWFrO2Nhc2UiZCI6Y29uc3QgZj1sLnZh'@; put 'bHVlO2lmKGYpe2xldCBfPXRoaXMuaGVhZGVycy5nZXQoYSk7aWYoIV8pcmV0dXJuO189Xy5maWx0ZXIoVD0+LTE9PT1mLmluZGV4T2YoVCkpLDA9PT1fLmxlbmd0aD8odGhpcy5oZWFkZXJzLmRlbGV0ZShhKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoYSkpOnRoaXMuaGVhZGVycy5z'@; put 'ZXQoYSxfKX1lbHNlIHRoaXMuaGVhZGVycy5kZWxldGUoYSksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGEpfX1zZXRIZWFkZXJFbnRyaWVzKGwsYSl7Y29uc3QgZD0oQXJyYXkuaXNBcnJheShhKT9hOlthXSkubWFwKGY9PmYudG9TdHJpbmcoKSksaD1sLnRvTG93ZXJDYXNlKCk7dGhp'@; put 'cy5oZWFkZXJzLnNldChoLGQpLHRoaXMubWF5YmVTZXROb3JtYWxpemVkTmFtZShsLGgpfWZvckVhY2gobCl7dGhpcy5pbml0KCksQXJyYXkuZnJvbSh0aGlzLm5vcm1hbGl6ZWROYW1lcy5rZXlzKCkpLmZvckVhY2goYT0+bCh0aGlzLm5vcm1hbGl6ZWROYW1lcy5nZXQoYSksdGhpcy5oZWFk'@; put 'ZXJzLmdldChhKSkpfX1jbGFzcyBmaGV7ZW5jb2RlS2V5KGwpe3JldHVybiB6JChsKX1lbmNvZGVWYWx1ZShsKXtyZXR1cm4geiQobCl9ZGVjb2RlS2V5KGwpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQobCl9ZGVjb2RlVmFsdWUobCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChsKX19'@; put 'Y29uc3QgZ2hlPS8lKFxkW2EtZjAtOV0pL2dpLG1oZT17NDA6IkAiLCIzQSI6IjoiLDI0OiIkIiwiMkMiOiIsIiwiM0IiOiI7IiwiM0QiOiI9IiwiM0YiOiI/IiwiMkYiOiIvIn07ZnVuY3Rpb24geiQoYyl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChjKS5yZXBsYWNlKGdoZSwobCxhKT0+'@; put 'bWhlW2FdPz9sKX1mdW5jdGlvbiBQeChjKXtyZXR1cm5gJHtjfWB9Y2xhc3MgcHB7Y29uc3RydWN0b3IobD17fSl7aWYodGhpcy51cGRhdGVzPW51bGwsdGhpcy5jbG9uZUZyb209bnVsbCx0aGlzLmVuY29kZXI9bC5lbmNvZGVyfHxuZXcgZmhlLGwuZnJvbVN0cmluZyl7aWYobC5mcm9tT2Jq'@; put 'ZWN0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNwZWNpZnkgYm90aCBmcm9tU3RyaW5nIGFuZCBmcm9tT2JqZWN0LiIpO3RoaXMubWFwPWZ1bmN0aW9uIHBoZShjLGwpe2NvbnN0IGE9bmV3IE1hcDtyZXR1cm4gYy5sZW5ndGg+MCYmYy5yZXBsYWNlKC9eXD8vLCIiKS5zcGxpdCgiJiIpLmZv'@; put 'ckVhY2goaD0+e2NvbnN0IGY9aC5pbmRleE9mKCI9IiksW18sVF09LTE9PWY/W2wuZGVjb2RlS2V5KGgpLCIiXTpbbC5kZWNvZGVLZXkoaC5zbGljZSgwLGYpKSxsLmRlY29kZVZhbHVlKGguc2xpY2UoZisxKSldLFc9YS5nZXQoXyl8fFtdO1cucHVzaChUKSxhLnNldChfLFcpfSksYX0obC5m'@; put 'cm9tU3RyaW5nLHRoaXMuZW5jb2Rlcil9ZWxzZSBsLmZyb21PYmplY3Q/KHRoaXMubWFwPW5ldyBNYXAsT2JqZWN0LmtleXMobC5mcm9tT2JqZWN0KS5mb3JFYWNoKGE9Pntjb25zdCBkPWwuZnJvbU9iamVjdFthXSxoPUFycmF5LmlzQXJyYXkoZCk/ZC5tYXAoUHgpOltQeChkKV07dGhpcy5t'@; put 'YXAuc2V0KGEsaCl9KSk6dGhpcy5tYXA9bnVsbH1oYXMobCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMubWFwLmhhcyhsKX1nZXQobCl7dGhpcy5pbml0KCk7Y29uc3QgYT10aGlzLm1hcC5nZXQobCk7cmV0dXJuIGE/YVswXTpudWxsfWdldEFsbChsKXtyZXR1cm4gdGhpcy5pbml0KCksdGhp'@; put 'cy5tYXAuZ2V0KGwpfHxudWxsfWtleXMoKXtyZXR1cm4gdGhpcy5pbml0KCksQXJyYXkuZnJvbSh0aGlzLm1hcC5rZXlzKCkpfWFwcGVuZChsLGEpe3JldHVybiB0aGlzLmNsb25lKHtwYXJhbTpsLHZhbHVlOmEsb3A6ImEifSl9YXBwZW5kQWxsKGwpe2NvbnN0IGE9W107cmV0dXJuIE9iamVj'@; put 'dC5rZXlzKGwpLmZvckVhY2goZD0+e2NvbnN0IGg9bFtkXTtBcnJheS5pc0FycmF5KGgpP2guZm9yRWFjaChmPT57YS5wdXNoKHtwYXJhbTpkLHZhbHVlOmYsb3A6ImEifSl9KTphLnB1c2goe3BhcmFtOmQsdmFsdWU6aCxvcDoiYSJ9KX0pLHRoaXMuY2xvbmUoYSl9c2V0KGwsYSl7cmV0dXJu'@; put 'IHRoaXMuY2xvbmUoe3BhcmFtOmwsdmFsdWU6YSxvcDoicyJ9KX1kZWxldGUobCxhKXtyZXR1cm4gdGhpcy5jbG9uZSh7cGFyYW06bCx2YWx1ZTphLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcChsPT57Y29uc3QgYT10aGlzLmVuY29kZXIu'@; put 'ZW5jb2RlS2V5KGwpO3JldHVybiB0aGlzLm1hcC5nZXQobCkubWFwKGQ9PmErIj0iK3RoaXMuZW5jb2Rlci5lbmNvZGVWYWx1ZShkKSkuam9pbigiJiIpfSkuZmlsdGVyKGw9PiIiIT09bCkuam9pbigiJiIpfWNsb25lKGwpe2NvbnN0IGE9bmV3IHBwKHtlbmNvZGVyOnRoaXMuZW5jb2Rlcn0p'@; put 'O3JldHVybiBhLmNsb25lRnJvbT10aGlzLmNsb25lRnJvbXx8dGhpcyxhLnVwZGF0ZXM9KHRoaXMudXBkYXRlc3x8W10pLmNvbmNhdChsKSxhfWluaXQoKXtudWxsPT09dGhpcy5tYXAmJih0aGlzLm1hcD1uZXcgTWFwKSxudWxsIT09dGhpcy5jbG9uZUZyb20mJih0aGlzLmNsb25lRnJvbS5p'@; put 'bml0KCksdGhpcy5jbG9uZUZyb20ua2V5cygpLmZvckVhY2gobD0+dGhpcy5tYXAuc2V0KGwsdGhpcy5jbG9uZUZyb20ubWFwLmdldChsKSkpLHRoaXMudXBkYXRlcy5mb3JFYWNoKGw9Pntzd2l0Y2gobC5vcCl7Y2FzZSJhIjpjYXNlInMiOmNvbnN0IGE9KCJhIj09PWwub3A/dGhpcy5tYXAu'@; put 'Z2V0KGwucGFyYW0pOnZvaWQgMCl8fFtdO2EucHVzaChQeChsLnZhbHVlKSksdGhpcy5tYXAuc2V0KGwucGFyYW0sYSk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT1sLnZhbHVlKXt0aGlzLm1hcC5kZWxldGUobC5wYXJhbSk7YnJlYWt9e2xldCBkPXRoaXMubWFwLmdldChsLnBhcmFtKXx8'@; put 'W107Y29uc3QgaD1kLmluZGV4T2YoUHgobC52YWx1ZSkpOy0xIT09aCYmZC5zcGxpY2UoaCwxKSxkLmxlbmd0aD4wP3RoaXMubWFwLnNldChsLnBhcmFtLGQpOnRoaXMubWFwLmRlbGV0ZShsLnBhcmFtKX19fSksdGhpcy5jbG9uZUZyb209dGhpcy51cGRhdGVzPW51bGwpfX1jbGFzcyB2aGV7'@; put 'Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXNldChsLGEpe3JldHVybiB0aGlzLm1hcC5zZXQobCxhKSx0aGlzfWdldChsKXtyZXR1cm4gdGhpcy5tYXAuaGFzKGwpfHx0aGlzLm1hcC5zZXQobCxsLmRlZmF1bHRWYWx1ZSgpKSx0aGlzLm1hcC5nZXQobCl9ZGVsZXRlKGwpe3JldHVy'@; put 'biB0aGlzLm1hcC5kZWxldGUobCksdGhpc31oYXMobCl7cmV0dXJuIHRoaXMubWFwLmhhcyhsKX1rZXlzKCl7cmV0dXJuIHRoaXMubWFwLmtleXMoKX19ZnVuY3Rpb24gVSQoYyl7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJmMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcn1mdW5jdGlv'@; put 'biBaJChjKXtyZXR1cm4gdHlwZW9mIEJsb2I8InUiJiZjIGluc3RhbmNlb2YgQmxvYn1mdW5jdGlvbiBZJChjKXtyZXR1cm4gdHlwZW9mIEZvcm1EYXRhPCJ1IiYmYyBpbnN0YW5jZW9mIEZvcm1EYXRhfWNsYXNzICRfe2NvbnN0cnVjdG9yKGwsYSxkLGgpe2xldCBmO2lmKHRoaXMudXJsPWEs'@; put 'dGhpcy5ib2R5PW51bGwsdGhpcy5yZXBvcnRQcm9ncmVzcz0hMSx0aGlzLndpdGhDcmVkZW50aWFscz0hMSx0aGlzLnJlc3BvbnNlVHlwZT0ianNvbiIsdGhpcy5tZXRob2Q9bC50b1VwcGVyQ2FzZSgpLGZ1bmN0aW9uIF9oZShjKXtzd2l0Y2goYyl7Y2FzZSJERUxFVEUiOmNhc2UiR0VUIjpj'@; put 'YXNlIkhFQUQiOmNhc2UiT1BUSU9OUyI6Y2FzZSJKU09OUCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KHRoaXMubWV0aG9kKXx8aD8odGhpcy5ib2R5PXZvaWQgMCE9PWQ/ZDpudWxsLGY9aCk6Zj1kLGYmJih0aGlzLnJlcG9ydFByb2dyZXNzPSEhZi5yZXBvcnRQcm9ncmVzcyx0aGlz'@; put 'LndpdGhDcmVkZW50aWFscz0hIWYud2l0aENyZWRlbnRpYWxzLGYucmVzcG9uc2VUeXBlJiYodGhpcy5yZXNwb25zZVR5cGU9Zi5yZXNwb25zZVR5cGUpLGYuaGVhZGVycyYmKHRoaXMuaGVhZGVycz1mLmhlYWRlcnMpLGYuY29udGV4dCYmKHRoaXMuY29udGV4dD1mLmNvbnRleHQpLGYucGFy'@; put 'YW1zJiYodGhpcy5wYXJhbXM9Zi5wYXJhbXMpKSx0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IG9oKSx0aGlzLmNvbnRleHR8fCh0aGlzLmNvbnRleHQ9bmV3IHZoZSksdGhpcy5wYXJhbXMpe2NvbnN0IF89dGhpcy5wYXJhbXMudG9TdHJpbmcoKTtpZigwPT09Xy5sZW5ndGgpdGhp'@; put 'cy51cmxXaXRoUGFyYW1zPWE7ZWxzZXtjb25zdCBUPWEuaW5kZXhPZigiPyIpO3RoaXMudXJsV2l0aFBhcmFtcz1hKygtMT09PVQ/Ij8iOlQ8YS5sZW5ndGgtMT8iJiI6IiIpK199fWVsc2UgdGhpcy5wYXJhbXM9bmV3IHBwLHRoaXMudXJsV2l0aFBhcmFtcz1hfXNlcmlhbGl6ZUJvZHkoKXty'@; put 'ZXR1cm4gbnVsbD09PXRoaXMuYm9keT9udWxsOlUkKHRoaXMuYm9keSl8fFokKHRoaXMuYm9keSl8fFkkKHRoaXMuYm9keSl8fGZ1bmN0aW9uIGJoZShjKXtyZXR1cm4gdHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSImJmMgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXN9KHRoaXMuYm9keSl8'@; put 'fCJzdHJpbmciPT10eXBlb2YgdGhpcy5ib2R5P3RoaXMuYm9keTp0aGlzLmJvZHkgaW5zdGFuY2VvZiBwcD90aGlzLmJvZHkudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8ImJvb2xlYW4iPT10eXBlb2YgdGhpcy5ib2R5fHxBcnJheS5pc0FycmF5KHRoaXMuYm9keSk/'@; put 'SlNPTi5zdHJpbmdpZnkodGhpcy5ib2R5KTp0aGlzLmJvZHkudG9TdHJpbmcoKX1kZXRlY3RDb250ZW50VHlwZUhlYWRlcigpe3JldHVybiBudWxsPT09dGhpcy5ib2R5fHxZJCh0aGlzLmJvZHkpP251bGw6WiQodGhpcy5ib2R5KT90aGlzLmJvZHkudHlwZXx8bnVsbDpVJCh0aGlzLmJvZHkp'@; put 'P251bGw6InN0cmluZyI9PXR5cGVvZiB0aGlzLmJvZHk/InRleHQvcGxhaW4iOnRoaXMuYm9keSBpbnN0YW5jZW9mIHBwPyJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCI6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmJvZHl8fCJudW1iZXIiPT10eXBlb2Yg'@; put 'dGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVvZiB0aGlzLmJvZHk/ImFwcGxpY2F0aW9uL2pzb24iOm51bGx9Y2xvbmUobD17fSl7Y29uc3QgYT1sLm1ldGhvZHx8dGhpcy5tZXRob2QsZD1sLnVybHx8dGhpcy51cmwsaD1sLnJlc3BvbnNlVHlwZXx8dGhpcy5yZXNwb25zZVR5cGUsZj12b2lk'@; put 'IDAhPT1sLmJvZHk/bC5ib2R5OnRoaXMuYm9keSxfPXZvaWQgMCE9PWwud2l0aENyZWRlbnRpYWxzP2wud2l0aENyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzLFQ9dm9pZCAwIT09bC5yZXBvcnRQcm9ncmVzcz9sLnJlcG9ydFByb2dyZXNzOnRoaXMucmVwb3J0UHJvZ3Jlc3M7bGV0'@; put 'IFc9bC5oZWFkZXJzfHx0aGlzLmhlYWRlcnMsaWU9bC5wYXJhbXN8fHRoaXMucGFyYW1zO2NvbnN0IHBlPWwuY29udGV4dD8/dGhpcy5jb250ZXh0O3JldHVybiB2b2lkIDAhPT1sLnNldEhlYWRlcnMmJihXPU9iamVjdC5rZXlzKGwuc2V0SGVhZGVycykucmVkdWNlKCh3ZSxFZSk9PndlLnNl'@; put 'dChFZSxsLnNldEhlYWRlcnNbRWVdKSxXKSksbC5zZXRQYXJhbXMmJihpZT1PYmplY3Qua2V5cyhsLnNldFBhcmFtcykucmVkdWNlKCh3ZSxFZSk9PndlLnNldChFZSxsLnNldFBhcmFtc1tFZV0pLGllKSksbmV3ICRfKGEsZCxmLHtwYXJhbXM6aWUsaGVhZGVyczpXLGNvbnRleHQ6cGUscmVw'@; put 'b3J0UHJvZ3Jlc3M6VCxyZXNwb25zZVR5cGU6aCx3aXRoQ3JlZGVudGlhbHM6X30pfX12YXIgdDg9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5TZW50PTBdPSJTZW50IixjW2MuVXBsb2FkUHJvZ3Jlc3M9MV09IlVwbG9hZFByb2dyZXNzIixjW2MuUmVzcG9uc2VIZWFkZXI9Ml09IlJlc3BvbnNl'@; put 'SGVhZGVyIixjW2MuRG93bmxvYWRQcm9ncmVzcz0zXT0iRG93bmxvYWRQcm9ncmVzcyIsY1tjLlJlc3BvbnNlPTRdPSJSZXNwb25zZSIsY1tjLlVzZXI9NV09IlVzZXIiLGN9KHQ4fHx7fSk7Y2xhc3MgY1B7Y29uc3RydWN0b3IobCxhPTIwMCxkPSJPSyIpe3RoaXMuaGVhZGVycz1sLmhlYWRl'@; put 'cnN8fG5ldyBvaCx0aGlzLnN0YXR1cz12b2lkIDAhPT1sLnN0YXR1cz9sLnN0YXR1czphLHRoaXMuc3RhdHVzVGV4dD1sLnN0YXR1c1RleHR8fGQsdGhpcy51cmw9bC51cmx8fG51bGwsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDB9fWNsYXNzIHVQIGV4dGVuZHMg'@; put 'Y1B7Y29uc3RydWN0b3IobD17fSl7c3VwZXIobCksdGhpcy50eXBlPXQ4LlJlc3BvbnNlSGVhZGVyfWNsb25lKGw9e30pe3JldHVybiBuZXcgdVAoe2hlYWRlcnM6bC5oZWFkZXJzfHx0aGlzLmhlYWRlcnMsc3RhdHVzOnZvaWQgMCE9PWwuc3RhdHVzP2wuc3RhdHVzOnRoaXMuc3RhdHVzLHN0'@; put 'YXR1c1RleHQ6bC5zdGF0dXNUZXh0fHx0aGlzLnN0YXR1c1RleHQsdXJsOmwudXJsfHx0aGlzLnVybHx8dm9pZCAwfSl9fWNsYXNzIG44IGV4dGVuZHMgY1B7Y29uc3RydWN0b3IobD17fSl7c3VwZXIobCksdGhpcy50eXBlPXQ4LlJlc3BvbnNlLHRoaXMuYm9keT12b2lkIDAhPT1sLmJvZHk/'@; put 'bC5ib2R5Om51bGx9Y2xvbmUobD17fSl7cmV0dXJuIG5ldyBuOCh7Ym9keTp2b2lkIDAhPT1sLmJvZHk/bC5ib2R5OnRoaXMuYm9keSxoZWFkZXJzOmwuaGVhZGVyc3x8dGhpcy5oZWFkZXJzLHN0YXR1czp2b2lkIDAhPT1sLnN0YXR1cz9sLnN0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0'@; put 'Omwuc3RhdHVzVGV4dHx8dGhpcy5zdGF0dXNUZXh0LHVybDpsLnVybHx8dGhpcy51cmx8fHZvaWQgMH0pfX1jbGFzcyBXJCBleHRlbmRzIGNQe2NvbnN0cnVjdG9yKGwpe3N1cGVyKGwsMCwiVW5rbm93biBFcnJvciIpLHRoaXMubmFtZT0iSHR0cEVycm9yUmVzcG9uc2UiLHRoaXMub2s9ITEs'@; put 'dGhpcy5tZXNzYWdlPXRoaXMuc3RhdHVzPj0yMDAmJnRoaXMuc3RhdHVzPDMwMD9gSHR0cCBmYWlsdXJlIGR1cmluZyBwYXJzaW5nIGZvciAke2wudXJsfHwiKHVua25vd24gdXJsKSJ9YDpgSHR0cCBmYWlsdXJlIHJlc3BvbnNlIGZvciAke2wudXJsfHwiKHVua25vd24gdXJsKSJ9OiAke2wu'@; put 'c3RhdHVzfSAke2wuc3RhdHVzVGV4dH1gLHRoaXMuZXJyb3I9bC5lcnJvcnx8bnVsbH19ZnVuY3Rpb24gZFAoYyxsKXtyZXR1cm57Ym9keTpsLGhlYWRlcnM6Yy5oZWFkZXJzLGNvbnRleHQ6Yy5jb250ZXh0LG9ic2VydmU6Yy5vYnNlcnZlLHBhcmFtczpjLnBhcmFtcyxyZXBvcnRQcm9ncmVz'@; put 'czpjLnJlcG9ydFByb2dyZXNzLHJlc3BvbnNlVHlwZTpjLnJlc3BvbnNlVHlwZSx3aXRoQ3JlZGVudGlhbHM6Yy53aXRoQ3JlZGVudGlhbHN9fWxldCBoUD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuaGFuZGxlcj1hfXJlcXVlc3QoYSxkLGg9e30pe2xldCBmO2lmKGEgaW5z'@; put 'dGFuY2VvZiAkXylmPWE7ZWxzZXtsZXQgVyxpZTtXPWguaGVhZGVycyBpbnN0YW5jZW9mIG9oP2guaGVhZGVyczpuZXcgb2goaC5oZWFkZXJzKSxoLnBhcmFtcyYmKGllPWgucGFyYW1zIGluc3RhbmNlb2YgcHA/aC5wYXJhbXM6bmV3IHBwKHtmcm9tT2JqZWN0OmgucGFyYW1zfSkpLGY9bmV3'@; put 'ICRfKGEsZCx2b2lkIDAhPT1oLmJvZHk/aC5ib2R5Om51bGwse2hlYWRlcnM6Vyxjb250ZXh0OmguY29udGV4dCxwYXJhbXM6aWUscmVwb3J0UHJvZ3Jlc3M6aC5yZXBvcnRQcm9ncmVzcyxyZXNwb25zZVR5cGU6aC5yZXNwb25zZVR5cGV8fCJqc29uIix3aXRoQ3JlZGVudGlhbHM6aC53aXRo'@; put 'Q3JlZGVudGlhbHN9KX1jb25zdCBfPVdpKGYpLnBpcGUoVzYoVz0+dGhpcy5oYW5kbGVyLmhhbmRsZShXKSkpO2lmKGEgaW5zdGFuY2VvZiAkX3x8ImV2ZW50cyI9PT1oLm9ic2VydmUpcmV0dXJuIF87Y29uc3QgVD1fLnBpcGUoSWEoVz0+VyBpbnN0YW5jZW9mIG44KSk7c3dpdGNoKGgub2Jz'@; put 'ZXJ2ZXx8ImJvZHkiKXtjYXNlImJvZHkiOnN3aXRjaChmLnJlc3BvbnNlVHlwZSl7Y2FzZSJhcnJheWJ1ZmZlciI6cmV0dXJuIFQucGlwZShNZShXPT57aWYobnVsbCE9PVcuYm9keSYmIShXLmJvZHkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBp'@; put 'cyBub3QgYW4gQXJyYXlCdWZmZXIuIik7cmV0dXJuIFcuYm9keX0pKTtjYXNlImJsb2IiOnJldHVybiBULnBpcGUoTWUoVz0+e2lmKG51bGwhPT1XLmJvZHkmJiEoVy5ib2R5IGluc3RhbmNlb2YgQmxvYikpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBCbG9iLiIpO3JldHVy'@; put 'biBXLmJvZHl9KSk7Y2FzZSJ0ZXh0IjpyZXR1cm4gVC5waXBlKE1lKFc9PntpZihudWxsIT09Vy5ib2R5JiYic3RyaW5nIiE9dHlwZW9mIFcuYm9keSl0aHJvdyBuZXcgRXJyb3IoIlJlc3BvbnNlIGlzIG5vdCBhIHN0cmluZy4iKTtyZXR1cm4gVy5ib2R5fSkpO2RlZmF1bHQ6cmV0dXJuIFQu'@; put 'cGlwZShNZShXPT5XLmJvZHkpKX1jYXNlInJlc3BvbnNlIjpyZXR1cm4gVDtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5yZWFjaGFibGU6IHVuaGFuZGxlZCBvYnNlcnZlIHR5cGUgJHtoLm9ic2VydmV9fWApfX1kZWxldGUoYSxkPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJERUxFVEUi'@; put 'LGEsZCl9Z2V0KGEsZD17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiR0VUIixhLGQpfWhlYWQoYSxkPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJIRUFEIixhLGQpfWpzb25wKGEsZCl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSlNPTlAiLGEse3BhcmFtczoobmV3IHBwKS5hcHBlbmQoZCwiSlNP'@; put 'TlBfQ0FMTEJBQ0siKSxvYnNlcnZlOiJib2R5IixyZXNwb25zZVR5cGU6Impzb24ifSl9b3B0aW9ucyhhLGQ9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIk9QVElPTlMiLGEsZCl9cGF0Y2goYSxkLGg9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIlBBVENIIixhLGRQKGgsZCkpfXBvc3QoYSxk'@; put 'LGg9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIlBPU1QiLGEsZFAoaCxkKSl9cHV0KGEsZCxoPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQVVQiLGEsZFAoaCxkKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKFJ4KSl9LGMuXHUwMjc1cHJv'@; put 'dj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7ZnVuY3Rpb24gcSQoYyxsKXtyZXR1cm4gbChjKX1mdW5jdGlvbiB3aGUoYyxsKXtyZXR1cm4oYSxkKT0+bC5pbnRlcmNlcHQoYSx7aGFuZGxlOmg9PmMoaCxkKX0pfWNvbnN0IFNoZT1uZXcgU2koIiIpLHFfPW5ldyBT'@; put 'aSgiIiksSyQ9bmV3IFNpKCIiKTtmdW5jdGlvbiBNaGUoKXtsZXQgYz1udWxsO3JldHVybihsLGEpPT57bnVsbD09PWMmJihjPShGaShTaGUse29wdGlvbmFsOiEwfSk/P1tdKS5yZWR1Y2VSaWdodCh3aGUscSQpKTtjb25zdCBkPUZpKHFNKSxoPWQuYWRkKCk7cmV0dXJuIGMobCxhKS5waXBl'@; put 'KElfKCgpPT5kLnJlbW92ZShoKSkpfX1sZXQgWCQ9KCgpPT57Y2xhc3MgYyBleHRlbmRzIFJ4e2NvbnN0cnVjdG9yKGEsZCl7c3VwZXIoKSx0aGlzLmJhY2tlbmQ9YSx0aGlzLmluamVjdG9yPWQsdGhpcy5jaGFpbj1udWxsLHRoaXMucGVuZGluZ1Rhc2tzPUZpKHFNKX1oYW5kbGUoYSl7aWYo'@; put 'bnVsbD09PXRoaXMuY2hhaW4pe2NvbnN0IGg9QXJyYXkuZnJvbShuZXcgU2V0KFsuLi50aGlzLmluamVjdG9yLmdldChxXyksLi4udGhpcy5pbmplY3Rvci5nZXQoSyQsW10pXSkpO3RoaXMuY2hhaW49aC5yZWR1Y2VSaWdodCgoZixfKT0+ZnVuY3Rpb24gQ2hlKGMsbCxhKXtyZXR1cm4oZCxo'@; put 'KT0+YS5ydW5JbkNvbnRleHQoKCk9PmwoZCxmPT5jKGYsaCkpKX0oZixfLHRoaXMuaW5qZWN0b3IpLHEkKX1jb25zdCBkPXRoaXMucGVuZGluZ1Rhc2tzLmFkZCgpO3JldHVybiB0aGlzLmNoYWluKGEsaD0+dGhpcy5iYWNrZW5kLmhhbmRsZShoKSkucGlwZShJXygoKT0+dGhpcy5wZW5kaW5n'@; put 'VGFza3MucmVtb3ZlKGQpKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKE94KSxhcihxMCkpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2NvbnN0IEFoZT0vXlwpXF1cfScsP1xuLztsZXQg'@; put 'USQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLnhockZhY3Rvcnk9YX1oYW5kbGUoYSl7aWYoIkpTT05QIj09PWEubWV0aG9kKXRocm93IG5ldyBBcigtMjgwMCwhMSk7Y29uc3QgZD10aGlzLnhockZhY3Rvcnk7cmV0dXJuKGQuXHUwMjc1bG9hZEltcGw/ZWEoZC5cdTAyNzVs'@; put 'b2FkSW1wbCgpKTpXaShudWxsKSkucGlwZShTYSgoKT0+bmV3IEtlKGY9Pntjb25zdCBfPWQuYnVpbGQoKTtpZihfLm9wZW4oYS5tZXRob2QsYS51cmxXaXRoUGFyYW1zKSxhLndpdGhDcmVkZW50aWFscyYmKF8ud2l0aENyZWRlbnRpYWxzPSEwKSxhLmhlYWRlcnMuZm9yRWFjaCgoZXQseXQp'@; put 'PT5fLnNldFJlcXVlc3RIZWFkZXIoZXQseXQuam9pbigiLCIpKSksYS5oZWFkZXJzLmhhcygiQWNjZXB0Iil8fF8uc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IiwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiksIWEuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpKXtjb25z'@; put 'dCBldD1hLmRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCk7bnVsbCE9PWV0JiZfLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsZXQpfWlmKGEucmVzcG9uc2VUeXBlKXtjb25zdCBldD1hLnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO18ucmVzcG9uc2VUeXBlPSJqc29uIiE9PWV0'@; put 'P2V0OiJ0ZXh0In1jb25zdCBUPWEuc2VyaWFsaXplQm9keSgpO2xldCBXPW51bGw7Y29uc3QgaWU9KCk9PntpZihudWxsIT09VylyZXR1cm4gVztjb25zdCBldD1fLnN0YXR1c1RleHR8fCJPSyIseXQ9bmV3IG9oKF8uZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEV0PWZ1bmN0aW9uIFRoZShj'@; put 'KXtyZXR1cm4icmVzcG9uc2VVUkwiaW4gYyYmYy5yZXNwb25zZVVSTD9jLnJlc3BvbnNlVVJMOi9eWC1SZXF1ZXN0LVVSTDovbS50ZXN0KGMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpP2MuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtUmVxdWVzdC1VUkwiKTpudWxsfShfKXx8YS51cmw7cmV0dXJu'@; put 'IFc9bmV3IHVQKHtoZWFkZXJzOnl0LHN0YXR1czpfLnN0YXR1cyxzdGF0dXNUZXh0OmV0LHVybDpFdH0pLFd9LHBlPSgpPT57bGV0e2hlYWRlcnM6ZXQsc3RhdHVzOnl0LHN0YXR1c1RleHQ6RXQsdXJsOlN0fT1pZSgpLEp0PW51bGw7MjA0IT09eXQmJihKdD10eXBlb2YgXy5yZXNwb25zZT4i'@; put 'dSI/Xy5yZXNwb25zZVRleHQ6Xy5yZXNwb25zZSksMD09PXl0JiYoeXQ9SnQ/MjAwOjApO2xldCBubj15dD49MjAwJiZ5dDwzMDA7aWYoImpzb24iPT09YS5yZXNwb25zZVR5cGUmJiJzdHJpbmciPT10eXBlb2YgSnQpe2NvbnN0IHZuPUp0O0p0PUp0LnJlcGxhY2UoQWhlLCIiKTt0cnl7SnQ9'@; put 'IiIhPT1KdD9KU09OLnBhcnNlKEp0KTpudWxsfWNhdGNoKE5uKXtKdD12bixubiYmKG5uPSExLEp0PXtlcnJvcjpObix0ZXh0Okp0fSl9fW5uPyhmLm5leHQobmV3IG44KHtib2R5Okp0LGhlYWRlcnM6ZXQsc3RhdHVzOnl0LHN0YXR1c1RleHQ6RXQsdXJsOlN0fHx2b2lkIDB9KSksZi5jb21w'@; put 'bGV0ZSgpKTpmLmVycm9yKG5ldyBXJCh7ZXJyb3I6SnQsaGVhZGVyczpldCxzdGF0dXM6eXQsc3RhdHVzVGV4dDpFdCx1cmw6U3R8fHZvaWQgMH0pKX0sd2U9ZXQ9Pntjb25zdHt1cmw6eXR9PWllKCksRXQ9bmV3IFckKHtlcnJvcjpldCxzdGF0dXM6Xy5zdGF0dXN8fDAsc3RhdHVzVGV4dDpf'@; put 'LnN0YXR1c1RleHR8fCJVbmtub3duIEVycm9yIix1cmw6eXR8fHZvaWQgMH0pO2YuZXJyb3IoRXQpfTtsZXQgRWU9ITE7Y29uc3QgWmU9ZXQ9PntFZXx8KGYubmV4dChpZSgpKSxFZT0hMCk7bGV0IHl0PXt0eXBlOnQ4LkRvd25sb2FkUHJvZ3Jlc3MsbG9hZGVkOmV0LmxvYWRlZH07ZXQubGVu'@; put 'Z3RoQ29tcHV0YWJsZSYmKHl0LnRvdGFsPWV0LnRvdGFsKSwidGV4dCI9PT1hLnJlc3BvbnNlVHlwZSYmXy5yZXNwb25zZVRleHQmJih5dC5wYXJ0aWFsVGV4dD1fLnJlc3BvbnNlVGV4dCksZi5uZXh0KHl0KX0saXQ9ZXQ9PntsZXQgeXQ9e3R5cGU6dDguVXBsb2FkUHJvZ3Jlc3MsbG9hZGVk'@; put 'OmV0LmxvYWRlZH07ZXQubGVuZ3RoQ29tcHV0YWJsZSYmKHl0LnRvdGFsPWV0LnRvdGFsKSxmLm5leHQoeXQpfTtyZXR1cm4gXy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixwZSksXy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsd2UpLF8uYWRkRXZlbnRMaXN0ZW5lcigidGltZW91dCIsd2Up'@; put 'LF8uYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHdlKSxhLnJlcG9ydFByb2dyZXNzJiYoXy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsWmUpLG51bGwhPT1UJiZfLnVwbG9hZCYmXy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGl0KSksXy5zZW5kKFQpLGYubmV4dCh7'@; put 'dHlwZTp0OC5TZW50fSksKCk9PntfLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIix3ZSksXy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsd2UpLF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIscGUpLF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGltZW91dCIsd2UpLGEucmVwb3J0'@; put 'UHJvZ3Jlc3MmJihfLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixaZSksbnVsbCE9PVQmJl8udXBsb2FkJiZfLnVwbG9hZC5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsaXQpKSxfLnJlYWR5U3RhdGUhPT1fLkRPTkUmJl8uYWJvcnQoKX19KSkpfX1yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihjRykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2NvbnN0IGZQPW5ldyBTaSgiWFNSRl9FTkFCTEVEIiksZXE9bmV3IFNpKCJYU1JGX0NPT0tJRV9OQU1FIix7cHJvdmlk'@; put 'ZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+IlhTUkYtVE9LRU4ifSksdHE9bmV3IFNpKCJYU1JGX0hFQURFUl9OQU1FIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+IlgtWFNSRi1UT0tFTiJ9KTtjbGFzcyBucXt9bGV0IExoZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxo'@; put 'KXt0aGlzLmRvYz1hLHRoaXMucGxhdGZvcm09ZCx0aGlzLmNvb2tpZU5hbWU9aCx0aGlzLmxhc3RDb29raWVTdHJpbmc9IiIsdGhpcy5sYXN0VG9rZW49bnVsbCx0aGlzLnBhcnNlQ291bnQ9MH1nZXRUb2tlbigpe2lmKCJzZXJ2ZXIiPT09dGhpcy5wbGF0Zm9ybSlyZXR1cm4gbnVsbDtjb25z'@; put 'dCBhPXRoaXMuZG9jLmNvb2tpZXx8IiI7cmV0dXJuIGEhPT10aGlzLmxhc3RDb29raWVTdHJpbmcmJih0aGlzLnBhcnNlQ291bnQrKyx0aGlzLmxhc3RUb2tlbj1YVyhhLHRoaXMuY29va2llTmFtZSksdGhpcy5sYXN0Q29va2llU3RyaW5nPWEpLHRoaXMubGFzdFRva2VufX1yZXR1cm4gYy5c'@; put 'dTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihMcyksYXIoR3MpLGFyKGVxKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7ZnVuY3Rpb24gUmhlKGMsbCl7Y29uc3QgYT1jLnVybC50b0xvd2VyQ2FzZSgpO2lmKCFG'@; put 'aShmUCl8fCJHRVQiPT09Yy5tZXRob2R8fCJIRUFEIj09PWMubWV0aG9kfHxhLnN0YXJ0c1dpdGgoImh0dHA6Ly8iKXx8YS5zdGFydHNXaXRoKCJodHRwczovLyIpKXJldHVybiBsKGMpO2NvbnN0IGQ9RmkobnEpLmdldFRva2VuKCksaD1GaSh0cSk7cmV0dXJuIG51bGwhPWQmJiFjLmhlYWRl'@; put 'cnMuaGFzKGgpJiYoYz1jLmNsb25lKHtoZWFkZXJzOmMuaGVhZGVycy5zZXQoaCxkKX0pKSxsKGMpfXZhciBncD1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLkludGVyY2VwdG9ycz0wXT0iSW50ZXJjZXB0b3JzIixjW2MuTGVnYWN5SW50ZXJjZXB0b3JzPTFdPSJMZWdhY3lJbnRlcmNlcHRvcnMi'@; put 'LGNbYy5DdXN0b21Yc3JmQ29uZmlndXJhdGlvbj0yXT0iQ3VzdG9tWHNyZkNvbmZpZ3VyYXRpb24iLGNbYy5Ob1hzcmZQcm90ZWN0aW9uPTNdPSJOb1hzcmZQcm90ZWN0aW9uIixjW2MuSnNvbnBTdXBwb3J0PTRdPSJKc29ucFN1cHBvcnQiLGNbYy5SZXF1ZXN0c01hZGVWaWFQYXJlbnQ9NV09'@; put 'IlJlcXVlc3RzTWFkZVZpYVBhcmVudCIsY1tjLkZldGNoPTZdPSJGZXRjaCIsY30oZ3B8fHt9KTtmdW5jdGlvbiBJNShjLGwpe3JldHVybntcdTAyNzVraW5kOmMsXHUwMjc1cHJvdmlkZXJzOmx9fWZ1bmN0aW9uIE9oZSguLi5jKXtjb25zdCBsPVtoUCxRJCxYJCx7cHJvdmlkZTpSeCx1c2VF'@; put 'eGlzdGluZzpYJH0se3Byb3ZpZGU6T3gsdXNlRXhpc3Rpbmc6USR9LHtwcm92aWRlOnFfLHVzZVZhbHVlOlJoZSxtdWx0aTohMH0se3Byb3ZpZGU6ZlAsdXNlVmFsdWU6ITB9LHtwcm92aWRlOm5xLHVzZUNsYXNzOkxoZX1dO2Zvcihjb25zdCBhIG9mIGMpbC5wdXNoKC4uLmEuXHUwMjc1cHJv'@; put 'dmlkZXJzKTtyZXR1cm4gZnVuY3Rpb24gaXYoYyl7cmV0dXJue1x1MDI3NXByb3ZpZGVyczpjfX0obCl9Y29uc3QgcnE9bmV3IFNpKCJMRUdBQ1lfSU5URVJDRVBUT1JfRk4iKTtsZXQgRmhlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3'@; put 'KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe3Byb3ZpZGVyczpbT2hlKEk1KGdwLkxlZ2FjeUludGVyY2VwdG9ycyxbe3Byb3ZpZGU6cnEsdXNlRmFjdG9yeTpNaGV9LHtwcm92aWRlOnFfLHVzZUV4aXN0aW5nOnJxLG11bHRpOiEwfV0pKV19KSxjfSko'@; put 'KSxpcT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5odHRwPWEsdGhpcy5hcHBTdG9yZVNlcnZpY2U9ZCx0aGlzLnVybD0iIix0aGlzLmRyaXZlVXJsPSIiLHRoaXMuaHR0cE9wdGlvbnM9e3dpdGhDcmVkZW50aWFsczohMH19c2V0dXAoKXtjb25zdCBhPXRoaXMuYXBwU3Rv'@; put 'cmVTZXJ2aWNlLmdldERjQWRhcHRlclNldHRpbmdzKCk7dGhpcy51cmw9YCR7YT8uc2VydmVyVXJsfHwiIn0vU0FTanNBcGlgLHRoaXMuZHJpdmVVcmw9YCR7dGhpcy51cmx9L2RyaXZlYH1nZXRTZXJ2ZXJJbmZvKCl7cmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmx9L2luZm9gKX1n'@; put 'ZXRGaWxlRnJvbURyaXZlKGEpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZpbGUvP19maWxlUGF0aD0ke2F9YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZShhKXtyZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmRyaXZlVXJs'@; put 'fS9mb2xkZXI/X2ZvbGRlclBhdGg9JHthfWAsdGhpcy5odHRwT3B0aW9ucyl9Z2V0RmlsZVRyZWVGcm9tRHJpdmUoKXtyZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmRyaXZlVXJsfS9maWxldHJlZWAsdGhpcy5odHRwT3B0aW9ucyl9Z2V0RmlsZUZyb21GaWxlVHJlZShhKXtyZXR1cm4g'@; put 'bmV3IFByb21pc2UoKGQsaCk9Pnt0aGlzLmdldEZpbGVUcmVlRnJvbURyaXZlKCkuc3Vic2NyaWJlKGY9Pntjb25zdCBUPXRoaXMuZmluZEluVHJlZShmLnRyZWUsYSk7ZChUKX0pfSl9ZmluZEluVHJlZShhLGQpe2lmKGEucmVsYXRpdmVQYXRoPT09ZClyZXR1cm4gYTtmb3IobGV0IGggb2Yg'@; put 'YS5jaGlsZHJlbil7Y29uc3QgZj10aGlzLmZpbmRJblRyZWUoaCxkKTtpZihmKXJldHVybiBmfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoaFApLGFyKGU4KSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFj'@; put 'LHByb3ZpZGVkSW46InJvb3QifSksY30pKCksb2E9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCl7dGhpcy5hcHBTdG9yZVNlcnZpY2U9YSx0aGlzLnVzZXJTZXJ2aWNlPWQsdGhpcy5ldmVudFNlcnZpY2U9aCx0aGlzLnNhc2pzU2VydmljZT1mLHRoaXMubG9nZ2VyU2Vy'@; put 'dmljZT1fLHRoaXMucm91dGVyPVQsdGhpcy5sb2FkU3RhcnR1cFNlcnZpY2VFbWl0dGVyPW5ldyBFcix0aGlzLmluY29ycmVjdFNpdGVJZEVtaXR0ZXI9bmV3IEVyLHRoaXMucmVxdWVzdFNpdGVJZEVtaXR0ZXI9bmV3IEVyLHRoaXMuc2FzanNBZGFwdGVyPW5ldyhqJCgpKSx0aGlzLmFwcExv'@; put 'Y0NoZWNrUGVuZGluZz0hMSx0aGlzLnNob3VsZExvZ2luPW5ldyBUZSghMSksdGhpcy5saWNlbnNlX3NpdGVfaWQ9bmV3IFRlKG51bGwpfXNhc1NlcnZpY2VJbml0KCl7aWYodGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygp'@; put 'LHRoaXMuc2FzanNTZXJ2aWNlLnNldHVwKCksdGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyl7c3dpdGNoKHRoaXMuc2FzanNBZGFwdGVyPW5ldyhqJCgpKSh0aGlzLmRjQWRhcHRlclNldHRpbmdzKSx0aGlzLmRjQWRhcHRlclNldHRpbmdzLnNlcnZlclR5cGUpe2Nhc2UgWmMuRC5TYXNWaXlhOnRo'@; put 'aXMuY2hlY2tWaXlhRGVwbG95KHRoaXMuZGNBZGFwdGVyU2V0dGluZ3MuYXBwTG9jfHwiIik7YnJlYWs7Y2FzZSBaYy5ELlNhczk6dGhpcy5sb2FkU3RhcnR1cFNlcnZpY2VFbWl0dGVyLmVtaXQoKTticmVhaztjYXNlIFpjLkQuU2FzanM6dGhpcy5jaGVja1Nhc2pzRGVwbG95KCl9IlJlZGly'@; put 'ZWN0ZWQiPT09dGhpcy5nZXRTYXNqc0NvbmZpZygpLmxvZ2luTWVjaGFuaXNtJiZ0aGlzLnNob3VsZExvZ2luLnN1YnNjcmliZShhPT57YSYmdGhpcy5zYXNqc0FkYXB0ZXIubG9nSW4oKS50aGVuKGQ9Pntjb25zb2xlLmxvZygicmVzIixkKX0pfSl9ZWxzZSB0aGlzLmV2ZW50U2VydmljZS5z'@; put 'aG93SW5mb01vZGFsKCJFcnJvciIsIkFkYXB0ZXIgc2V0dGluZ3MgKGluZGV4Lmh0bWwpIGFyZSBub3QgcHJlc2VudC4iKX1yZXF1ZXN0KGEsZCxoLGYpe3JldHVybiBmfHwoZj17fSksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZ1JlcXVlc3REYXRhKGE9InNlcnZpY2VzLyIrYSxkKSxuZXcgUHJv'@; put 'bWlzZSgoXyxUKT0+e3RoaXMuc2FzanNBZGFwdGVyLnJlcXVlc3QoYSxkLGgsKCk9Pnt0aGlzLnNob3VsZExvZ2luLm5leHQoITApfSkudGhlbihXPT57aWYoITE9PT1XLmxvZ2luJiYodGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKSxUKCExKSksIXRoaXMudXNlclNlcnZpY2UudXNlciYmVy5N'@; put 'Rl9HRVRVU0VSJiYodGhpcy51c2VyU2VydmljZS51c2VyPXt1c2VybmFtZTpXLk1GX0dFVFVTRVJ9KSxXLlNZU1NJVEUmJih0aGlzLnJlcXVlc3RTaXRlSWRFbWl0dGVyLmVtaXQoVy5TWVNTSVRFKSx0aGlzLmdldExpY2Vuc2VTaXRlSWQoKS5sZW5ndGg+MCYmKHRoaXMuZ2V0TGljZW5zZVNp'@; put 'dGVJZCgpLmluY2x1ZGVzKFcuU1lTU0lURSl8fHRoaXMuaW5jb3JyZWN0U2l0ZUlkRW1pdHRlci5lbWl0KFcuU1lTU0lURSkpKSw0MDQ9PT1XLnN0YXR1cyYmVCh7TUVTU0FHRTpXLmJvZHl8fCJTQVMgUmVzcG9uZGVkIHdpdGggZXJyb3IifSksdHlwZW9mIFcuc2FzanNBYm9ydDwidSIpe2Nv'@; put 'bnN0IGllPVcscGU9aWUuc2FzanNBYm9ydFswXS5NU0csd2U9aWUuc2FzanNBYm9ydFswXS5NQUM7aWYocGUuaW5jbHVkZXMoIkRhdGFfQ29udHJvbGxlcl9TZXR0aW5ncyhTdG9yZWRQcm9jZXNzKSBub3QgZm91bmQiKSlyZXR1cm4gdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2Fk'@; put 'ZWQoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95Iiksdm9pZCBUKHtlcnJvcjpwZX0pO2Y/LnN1cHByZXNzU3VjY2Vzc0Fib3J0TW9kYWx8fHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKGEucmVwbGFjZSgic2VydmljZXMvIiwiIikscGUse1NZU1dBUk5JTkdU'@; put 'RVhUOmllLlNZU1dBUk5JTkdURVhULFNZU0VSUk9SVEVYVDppZS5TWVNFUlJPUlRFWFQsTUFDOndlfSksVCh7ZXJyb3I6cGV9KX1fKFcpfSxXPT57aWYoY29uc29sZS5lcnJvcihXKSxXLmVycm9yKXtsZXQgcGUsaWU9Vy5lcnJvci5tZXNzYWdlO1cuZXJyb3IuZGV0YWlscyYmVy5lcnJvci5k'@; put 'ZXRhaWxzLmxvZyYmKHBlPVcuZXJyb3IuZGV0YWlscy5sb2cpLCghaWV8fGllLnRyaW0oKS5sZW5ndGg8MSkmJihpZT0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCIpLGY/LnN1cHByZXNzRXJyb3JBYm9ydE1vZGFsfHx0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChhLGllLHtM'@; put 'T0c6cGV9LCJSZXF1ZXN0IGVycm9yIiksVCh7ZXJyb3I6aWV9KX1UKFcpfSl9KX11cGxvYWRGaWxlKGEsZCxoKXtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIudXBsb2FkRmlsZShhLGQsaCl9bG9naW4oYSxkKXt2YXIgaD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtjb25zdCBmPWguZ2V0'@; put 'U2VydmVyVHlwZSgpPT09WmMuRC5TYXNqcz8iY2xpZW50SUQxIjp2b2lkIDA7cmV0dXJuIGguc2FzanNBZGFwdGVyLmxvZ0luKGEsZCxmKS50aGVuKF89PihfLmlzTG9nZ2VkSW4mJihoLnVzZXJTZXJ2aWNlLnVzZXI9e3VzZXJuYW1lOl8udXNlck5hbWV9LGguYXBwTG9jQ2hlY2tQZW5kaW5n'@; put 'JiYoaC5jaGVja1ZpeWFEZXBsb3koaC5kY0FkYXB0ZXJTZXR0aW5ncz8uYXBwTG9jfHwiIiksaC5hcHBMb2NDaGVja1BlbmRpbmc9ITEpKSxoLnNob3VsZExvZ2luLm5leHQoIV8uaXNMb2dnZWRJbiksXy5pc0xvZ2dlZEluKSxfPT4oY29uc29sZS5lcnJvcihfKSxoLnNob3VsZExvZ2luLm5l'@; put 'eHQoITApLCExKSkuY2F0Y2goXz0+KDQwMz09PV8mJmNvbnNvbGUuZXJyb3IoIkludmFsaWQgaG9zdCIpLCExKSl9KSgpfWdldExpY2Vuc2VTaXRlSWQoKXtyZXR1cm4gdGhpcy5saWNlbnNlX3NpdGVfaWQudmFsdWV8fFtdfXNldExpY2Vuc2VTaXRlSWQoYSl7dGhpcy5saWNlbnNlX3NpdGVf'@; put 'aWQubmV4dCgib2JqZWN0Ij09dHlwZW9mIGE/YTpbYV0pfWNoZWNrU2FzanNEZXBsb3koKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtjb25zdCBoPWAke2EuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDthLnNhc2pzU2VydmljZS5nZXRGb2xkZXJD'@; put 'b250ZW50c0Zyb21Ecml2ZShoKS5zdWJzY3JpYmUoZj0+e2YuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpPyhhLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLGEucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSk6KGEubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRl'@; put 'ci5lbWl0KCksYS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJkZXBsb3kiKSYmYS5yb3V0ZXIubmF2aWdhdGVCeVVybCgiLyIpKX0sZj0+e2YuZXJyb3IuaW5jbHVkZXMoIlVuYXV0aG9yaXplZCIpPyhhLnNob3VsZExvZ2luLm5leHQoITApLGEuc2hvdWxkTG9naW4uc3Vic2NyaWJlKF89PnshMT09'@; put 'PV8mJmxvY2F0aW9uLnJlbG9hZCgpfSkpOmYuZXJyb3IuaW5jbHVkZXMoIkZvbGRlciBkb2Vzbid0IGV4aXN0LiIpJiYoY29uc29sZS53YXJuKCJTQVNqcyBTQVMgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSxhLmV2ZW50U2VydmljZS5zdGFydHVw'@; put 'RGF0YUxvYWRlZCgpLGEucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSl9KX0pKCl9c2FzanNNYWtlZGF0YUNoZWNraW5nKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGQ9ZmkoZnVuY3Rpb24qKGgsZil7'@; put 'YS5jaGVja2luZ0ludGVydmFsPXNldEludGVydmFsKGZpKGZ1bmN0aW9uKigpe2Euc2FzanNNYWtlZGF0YVN1Y2Nlc3NmdWxsKCkudGhlbihfPT57XyYmKGNsZWFySW50ZXJ2YWwoYS5jaGVja2luZ0ludGVydmFsKSxoKF8pKX0pLmNhdGNoKF89PntjbGVhckludGVydmFsKGEuY2hlY2tpbmdJ'@; put 'bnRlcnZhbCksZihfKX0pfSksMWUzKX0pO3JldHVybiBmdW5jdGlvbihoLGYpe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpfSkoKX1zYXNqc01ha2VkYXRhU3VjY2Vzc2Z1bGwoKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtyZXR1cm4gbmV3IFByb21pc2Uo'@; put 'KGQsaCk9Pntjb25zdCBfPWAke2EuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDthLnNhc2pzU2VydmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZShfKS5zdWJzY3JpYmUoVD0+e1QuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpP2QoITEpOmQoITAp'@; put 'fSxUPT57VC5lcnJvci5pbmNsdWRlcygiRm9sZGVyIGRvZXNuJ3QgZXhpc3QuIikmJmgoKX0pfSl9KSgpfWNoZWNrVml5YURlcGxveShhKXt2YXIgZD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtsZXQgZj0hMTtmPXR5cGVvZiBkLnNhc2pzQWRhcHRlci5nZXRGb2xkZXI8InUiP3lpZWxk'@; put 'IGQuYXBwTG9jQ2hlY2soYSk6eWllbGQgZC5hcHBMb2NDaGVja1ByZUF4aW9zZEFkYXB0ZXIoYSksZiYmZC5sb2FkU3RhcnR1cFNlcnZpY2VFbWl0dGVyLmVtaXQoKX0pKCl9YXBwTG9jQ2hlY2soYSl7dmFyIGQ9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgaD1maShm'@; put 'dW5jdGlvbiooZixfKXtsZXQgVyxUPSExO3RyeXtXPXlpZWxkIGQuc2FzanNBZGFwdGVyLmdldEZvbGRlcihhKX1jYXRjaChpZSl7IkxvZ2luUmVxdWlyZWRFcnJvciI9PT1pZS5uYW1lPyhkLmFwcExvY0NoZWNrUGVuZGluZz0hMCxkLnNob3VsZExvZ2luLm5leHQoITApLGYoITEpKTpUPSEw'@; put 'fWlmKFQpcmV0dXJuIGNvbnNvbGUud2FybigiVml5YSBzZXJ2aWNlcyBhcmUgbm90IHByZXNlbnQgb24gdGhlIGN1cnJlbnQgYXBwTG9jLiIpLGQuZXZlbnRTZXJ2aWNlLnN0YXJ0dXBEYXRhTG9hZGVkKCksZC5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2RlcGxveSIpLGYoITEpO2YoITApfSk7'@; put 'cmV0dXJuIGZ1bmN0aW9uKGYsXyl7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSl9YXBwTG9jQ2hlY2tQcmVBeGlvc2RBZGFwdGVyKGEpe3JldHVybiBuZXcgUHJvbWlzZSgoZCxoKT0+e2xldCBfPSExO3JldHVybiBmZXRjaChgL2ZvbGRlcnMvZm9sZGVycy9AaXRlbT9wYXRo'@; put 'PSR7YX1gKS50aGVuKFQ9Pig0MDQ9PT1ULnN0YXR1cyYmKF89ITApLFQudGV4dCgpKSkudGhlbihUPT57aWYodGhpcy5pc0xvZ2luUmVxdWlyZWQoVCkpdGhpcy5hcHBMb2NDaGVja1BlbmRpbmc9ITAsdGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKTtlbHNle2lmKF8pcmV0dXJuIGNvbnNvbGUu'@; put 'd2FybigiVml5YSBzZXJ2aWNlcyBhcmUgbm90IHByZXNlbnQgb24gdGhlIGN1cnJlbnQgYXBwTG9jLiIpLHRoaXMuZXZlbnRTZXJ2aWNlLnN0YXJ0dXBEYXRhTG9hZGVkKCksdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2RlcGxveSIpLGQoITEpO2xldCBXPW51bGw7dHJ5e1c9SlNPTi5w'@; put 'YXJzZShUKX1jYXRjaHt9aWYoVyYmVy5odHRwU3RhdHVzQ29kZSYmNDA0PT09Vy5odHRwU3RhdHVzQ29kZSlyZXR1cm4gY29uc29sZS53YXJuKCJWaXlhIHNlcnZpY2VzIGFyZSBub3QgcHJlc2VudCBvbiB0aGUgY3VycmVudCBhcHBMb2MuIiksdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERh'@; put 'dGFMb2FkZWQoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IiksZCghMSk7ZCghMCl9fSkuY2F0Y2goVD0+e2QoITEpfSl9KX1pc0xvZ2luUmVxdWlyZWQoYSl7cmV0dXJuLzxmb3JtLithY3Rpb249IiguKkxvZ29uW14iXSopLio+L2dtLnRlc3QoYSl9bG9nb3V0KCl7dGhp'@; put 'cy5zYXNqc0FkYXB0ZXIubG9nT3V0KCkudGhlbigoKT0+e2xvY2F0aW9uLnJlbG9hZCgpfSl9Z2V0U2FzanNDb25maWcoKXtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25maWcoKX1nZXRTYXNSZXF1ZXN0cygpe3JldHVybiB0aGlzLnNhc2pzQWRhcHRlci5nZXRTYXNSZXF1'@; put 'ZXN0cygpfXNldERlYnVnU3RhdGUoYSl7dGhpcy5zYXNqc0FkYXB0ZXIuc2V0RGVidWdTdGF0ZShhKX1nZXRTYXNqc0luc3RhbmNlKCl7cmV0dXJuIHRoaXMuc2FzanNBZGFwdGVyfWdldFNlcnZlclR5cGUoKXtjb25zdCBhPXRoaXMuc2FzanNBZGFwdGVyLmdldFNhc2pzQ29uZmlnKCk7cmV0'@; put 'dXJuIGEuc2VydmVyVHlwZT9hLnNlcnZlclR5cGU6IlNBU1ZJWUEifWdldEV4ZWN1dGlvblBhdGgoKXtjb25zdCBhPXRoaXMuc2FzanNBZGFwdGVyLmdldFNhc2pzQ29uZmlnKCk7c3dpdGNoKGEuc2VydmVyVHlwZSl7Y2FzZSBaYy5ELlNhc1ZpeWE6cmV0dXJuIGEucGF0aFNBU1ZpeWE7Y2Fz'@; put 'ZSBaYy5ELlNhczk6cmV0dXJuIGEucGF0aFNBUzk7Y2FzZSBaYy5ELlNhc2pzOnJldHVybiBhLnBhdGhTQVNKU319fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKGU4KSxhcihhUCksYXIodmwpLGFyKGlxKSxhcih3MCksYXIoRHMpKX0sYy5cdTAy'@; put 'NzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSx3MD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuaW5qZWN0b3I9YX1sb2coYSxkKXt0aGlzLmluamVjdFNhc1NlcnZpY2UoKSx0aGlzLnNhc2pzQ29uZmlnPy5k'@; put 'ZWJ1ZyYmKGQ/Y29uc29sZS5sb2coYSxkKTpjb25zb2xlLmxvZyhhKSl9ZXJyb3IoYSxkKXtjb25zb2xlLmVycm9yKGEsZCl9bG9nUmVxdWVzdERhdGEoYSxkKXtpZih0aGlzLmxvZygiLS0tIEFkYXB0ZXIgUmVxdWVzdCBJbnB1dCAtLS0iKSx0aGlzLmxvZyhhKSxkKXtmb3IobGV0IGggb2Yg'@; put 'T2JqZWN0LmtleXMoZCkpdGhpcy5sb2coaCxkW2hdKTt0aGlzLmxvZygiLS0tLS0tIil9ZWxzZSB0aGlzLmxvZygibm8gZGF0YSBzZW50Iil9aW5qZWN0U2FzU2VydmljZSgpe2lmKCF0aGlzLnNhc2pzQ29uZmlnKXtjb25zdCBhPXRoaXMuaW5qZWN0b3IuZ2V0KG9hKTt0aGlzLnNhc2pzQ29u'@; put 'ZmlnPWEuZ2V0U2FzanNDb25maWcoKX19fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKEVhKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7Y29uc3Qgb3E9ZnVu'@; put 'Y3Rpb24gWmhlKGMsbCl7cmV0dXJuIGM9PT1sfHxjIT1jJiZsIT1sfSxIeD1mdW5jdGlvbiBZaGUoYyxsKXtmb3IodmFyIGE9Yy5sZW5ndGg7YS0tOylpZihvcShjW2FdWzBdLGwpKXJldHVybiBhO3JldHVybi0xfTt2YXIgR2hlPUFycmF5LnByb3RvdHlwZS5zcGxpY2U7ZnVuY3Rpb24gcjgo'@; put 'Yyl7dmFyIGw9LTEsYT1udWxsPT1jPzA6Yy5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2w8YTspe3ZhciBkPWNbbF07dGhpcy5zZXQoZFswXSxkWzFdKX19cjgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIHpoZSgpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LHI4LnByb3RvdHlw'@; put 'ZS5kZWxldGU9ZnVuY3Rpb24gJGhlKGMpe3ZhciBsPXRoaXMuX19kYXRhX18sYT1IeChsLGMpO3JldHVybiEoYTwwfHwoYT09bC5sZW5ndGgtMT9sLnBvcCgpOkdoZS5jYWxsKGwsYSwxKSwtLXRoaXMuc2l6ZSwwKSl9LHI4LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24gS2hlKGMpe3ZhciBsPXRo'@; put 'aXMuX19kYXRhX18sYT1IeChsLGMpO3JldHVybiBhPDA/dm9pZCAwOmxbYV1bMV19LHI4LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gSmhlKGMpe3JldHVybiBIeCh0aGlzLl9fZGF0YV9fLGMpPi0xfSxyOC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGVmZShjLGwpe3ZhciBhPXRoaXMuX19kYXRh'@; put 'X18sZD1IeChhLGMpO3JldHVybiBkPDA/KCsrdGhpcy5zaXplLGEucHVzaChbYyxsXSkpOmFbZF1bMV09bCx0aGlzfTtjb25zdCBOeD1yOCxzcT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWw7dmFyIGRmZT0ib2JqZWN0Ij09'@; put 'dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmO2NvbnN0IHNoPXNxfHxkZmV8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksbXA9c2guU3ltYm9sO3ZhciBhcT1PYmplY3QucHJvdG90eXBlLHBmZT1hcS5oYXNPd25Qcm9wZXJ0eSxnZmU9YXEudG9TdHJpbmcs'@; put 'S189bXA/bXAudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBiZmU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgbHE9bXA/bXAudG9TdHJpbmdUYWc6dm9pZCAwO2NvbnN0IGk4PWZ1bmN0aW9uIE1mZShjKXtyZXR1cm4gbnVsbD09Yz92b2lkIDA9PT1jPyJbb2JqZWN0IFVuZGVmaW5lZF0i'@; put 'OiJbb2JqZWN0IE51bGxdIjpscSYmbHEgaW4gT2JqZWN0KGMpP2Z1bmN0aW9uIG1mZShjKXt2YXIgbD1wZmUuY2FsbChjLEtfKSxhPWNbS19dO3RyeXtjW0tfXT12b2lkIDA7dmFyIGQ9ITB9Y2F0Y2h7fXZhciBoPWdmZS5jYWxsKGMpO3JldHVybiBkJiYobD9jW0tfXT1hOmRlbGV0ZSBjW0tf'@; put 'XSksaH0oYyk6ZnVuY3Rpb24geWZlKGMpe3JldHVybiBiZmUuY2FsbChjKX0oYyl9LFhfPWZ1bmN0aW9uIHhmZShjKXt2YXIgbD10eXBlb2YgYztyZXR1cm4gbnVsbCE9YyYmKCJvYmplY3QiPT1sfHwiZnVuY3Rpb24iPT1sKX0sY3E9ZnVuY3Rpb24gRGZlKGMpe2lmKCFYXyhjKSlyZXR1cm4h'@; put 'MTt2YXIgbD1pOChjKTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT1sfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1sfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PWx8fCJbb2JqZWN0IFByb3h5XSI9PWx9O3ZhciBjLElmZT1zaFsiX19jb3JlLWpzX3NoYXJlZF9fIl0sdXE9'@; put 'KGM9L1teLl0rJC8uZXhlYyhJZmUmJklmZS5rZXlzJiZJZmUua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK2M6IiI7dmFyIFBmZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7Y29uc3QgTDU9ZnVuY3Rpb24gRmZlKGMpe2lmKG51bGwhPWMpe3RyeXtyZXR1cm4gUGZl'@; put 'LmNhbGwoYyl9Y2F0Y2h7fXRyeXtyZXR1cm4gYysiIn1jYXRjaHt9fXJldHVybiIifTt2YXIgTmZlPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLFVmZT1SZWdFeHAoIl4iK0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVy'@; put 'dHkpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2NvbnN0IFlmZT1mdW5jdGlvbiBaZmUoYyl7cmV0dXJuISghWF8oYyl8fGZ1'@; put 'bmN0aW9uIExmZShjKXtyZXR1cm4hIXVxJiZ1cSBpbiBjfShjKSkmJihjcShjKT9VZmU6TmZlKS50ZXN0KEw1KGMpKX0sUjU9ZnVuY3Rpb24gJGZlKGMsbCl7dmFyIGE9ZnVuY3Rpb24gV2ZlKGMsbCl7cmV0dXJuIGM/LltsXX0oYyxsKTtyZXR1cm4gWWZlKGEpP2E6dm9pZCAwfSxKXz1SNShz'@; put 'aCwiTWFwIiksUV89UjUoT2JqZWN0LCJjcmVhdGUiKTt2YXIgcjNlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGEzZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG84KGMpe3ZhciBsPS0xLGE9bnVsbD09Yz8wOmMubGVuZ3RoO2Zvcih0aGlz'@; put 'LmNsZWFyKCk7KytsPGE7KXt2YXIgZD1jW2xdO3RoaXMuc2V0KGRbMF0sZFsxXSl9fW84LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBYZmUoKXt0aGlzLl9fZGF0YV9fPVFfP1FfKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxvOC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIFFmZShjKXt2YXIg'@; put 'bD10aGlzLmhhcyhjKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bY107cmV0dXJuIHRoaXMuc2l6ZS09bD8xOjAsbH0sbzgucHJvdG90eXBlLmdldD1mdW5jdGlvbiBpM2UoYyl7dmFyIGw9dGhpcy5fX2RhdGFfXztpZihRXyl7dmFyIGE9bFtjXTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmlu'@; put 'ZWRfXyI9PT1hP3ZvaWQgMDphfXJldHVybiByM2UuY2FsbChsLGMpP2xbY106dm9pZCAwfSxvOC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIGwzZShjKXt2YXIgbD10aGlzLl9fZGF0YV9fO3JldHVybiBRXz92b2lkIDAhPT1sW2NdOmEzZS5jYWxsKGwsYyl9LG84LnByb3RvdHlwZS5zZXQ9ZnVu'@; put 'Y3Rpb24gZDNlKGMsbCl7dmFyIGE9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhjKT8wOjEsYVtjXT1RXyYmdm9pZCAwPT09bD8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6bCx0aGlzfTtjb25zdCBkcT1vOCxWeD1mdW5jdGlvbiB2M2UoYyxsKXt2YXIgYT1j'@; put 'Ll9fZGF0YV9fO3JldHVybiBmdW5jdGlvbiBnM2UoYyl7dmFyIGw9dHlwZW9mIGM7cmV0dXJuInN0cmluZyI9PWx8fCJudW1iZXIiPT1sfHwic3ltYm9sIj09bHx8ImJvb2xlYW4iPT1sPyJfX3Byb3RvX18iIT09YzpudWxsPT09Y30obCk/YVsic3RyaW5nIj09dHlwZW9mIGw/InN0cmluZyI6'@; put 'Imhhc2giXTphLm1hcH07ZnVuY3Rpb24gczgoYyl7dmFyIGw9LTEsYT1udWxsPT1jPzA6Yy5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2w8YTspe3ZhciBkPWNbbF07dGhpcy5zZXQoZFswXSxkWzFdKX19czgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIGYzZSgpe3RoaXMuc2l6ZT0wLHRo'@; put 'aXMuX19kYXRhX189e2hhc2g6bmV3IGRxLG1hcDpuZXcoSl98fE54KSxzdHJpbmc6bmV3IGRxfX0sczgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBfM2UoYyl7dmFyIGw9VngodGhpcyxjKS5kZWxldGUoYyk7cmV0dXJuIHRoaXMuc2l6ZS09bD8xOjAsbH0sczgucHJvdG90eXBlLmdldD1m'@; put 'dW5jdGlvbiB5M2UoYyl7cmV0dXJuIFZ4KHRoaXMsYykuZ2V0KGMpfSxzOC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIEMzZShjKXtyZXR1cm4gVngodGhpcyxjKS5oYXMoYyl9LHM4LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24gTTNlKGMsbCl7dmFyIGE9VngodGhpcyxjKSxkPWEuc2l6ZTtyZXR1'@; put 'cm4gYS5zZXQoYyxsKSx0aGlzLnNpemUrPWEuc2l6ZT09ZD8wOjEsdGhpc307Y29uc3QgZ1A9czg7ZnVuY3Rpb24gYTgoYyl7dmFyIGw9dGhpcy5fX2RhdGFfXz1uZXcgTngoYyk7dGhpcy5zaXplPWwuc2l6ZX1hOC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gbmZlKCl7dGhpcy5fX2RhdGFf'@; put 'Xz1uZXcgTngsdGhpcy5zaXplPTB9LGE4LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gaWZlKGMpe3ZhciBsPXRoaXMuX19kYXRhX18sYT1sLmRlbGV0ZShjKTtyZXR1cm4gdGhpcy5zaXplPWwuc2l6ZSxhfSxhOC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIHNmZShjKXtyZXR1cm4gdGhpcy5f'@; put 'X2RhdGFfXy5nZXQoYyl9LGE4LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gbGZlKGMpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhjKX0sYTgucHJvdG90eXBlLnNldD1mdW5jdGlvbiBrM2UoYyxsKXt2YXIgYT10aGlzLl9fZGF0YV9fO2lmKGEgaW5zdGFuY2VvZiBOeCl7dmFyIGQ9YS5fX2Rh'@; put 'dGFfXztpZighSl98fGQubGVuZ3RoPDE5OSlyZXR1cm4gZC5wdXNoKFtjLGxdKSx0aGlzLnNpemU9KythLnNpemUsdGhpczthPXRoaXMuX19kYXRhX189bmV3IGdQKGQpfXJldHVybiBhLnNldChjLGwpLHRoaXMuc2l6ZT1hLnNpemUsdGhpc307Y29uc3QgVDNlPWE4O3ZhciBMM2U9ZnVuY3Rp'@; put 'b24oKXt0cnl7dmFyIGM9UjUoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiBjKHt9LCIiLHt9KSxjfWNhdGNoe319KCk7Y29uc3QgaHE9TDNlLGZxPWZ1bmN0aW9uIFIzZShjLGwsYSl7Il9fcHJvdG9fXyI9PWwmJmhxP2hxKGMsbCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6'@; put 'ITAsdmFsdWU6YSx3cml0YWJsZTohMH0pOmNbbF09YX07dmFyIFAzZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IHBxPWZ1bmN0aW9uIEYzZShjLGwsYSl7dmFyIGQ9Y1tsXTsoIVAzZS5jYWxsKGMsbCl8fCFvcShkLGEpfHx2b2lkIDA9PT1hJiYhKGwgaW4gYykpJiZm'@; put 'cShjLGwsYSl9LEJ4PWZ1bmN0aW9uIEgzZShjLGwsYSxkKXt2YXIgaD0hYTthfHwoYT17fSk7Zm9yKHZhciBmPS0xLF89bC5sZW5ndGg7KytmPF87KXt2YXIgVD1sW2ZdLFc9ZD9kKGFbVF0sY1tUXSxULGEsYyk6dm9pZCAwO3ZvaWQgMD09PVcmJihXPWNbVF0pLGg/ZnEoYSxULFcpOnBxKGEs'@; put 'VCxXKX1yZXR1cm4gYX0sbDg9ZnVuY3Rpb24gQjNlKGMpe3JldHVybiBudWxsIT1jJiYib2JqZWN0Ij09dHlwZW9mIGN9LGdxPWZ1bmN0aW9uIHozZShjKXtyZXR1cm4gbDgoYykmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT1pOChjKX07dmFyIG1xPU9iamVjdC5wcm90b3R5cGUsVTNlPW1xLmhh'@; put 'c093blByb3BlcnR5LFozZT1tcS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxZM2U9Z3EoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKT9ncTpmdW5jdGlvbihjKXtyZXR1cm4gbDgoYykmJlUzZS5jYWxsKGMsImNhbGxlZSIpJiYhWjNlLmNhbGwoYywiY2FsbGVlIil9O2NvbnN0IFczZT1Z'@; put 'M2UsYzg9QXJyYXkuaXNBcnJheTt2YXIgdnE9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxfcT12cSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLGJxPV9xJiZfcS5l'@; put 'eHBvcnRzPT09dnE/c2guQnVmZmVyOnZvaWQgMDtjb25zdCB5cT0oYnE/YnEuaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24gJDNlKCl7cmV0dXJuITF9O3ZhciBlcGU9L14oPzowfFsxLTldXGQqKSQvO2NvbnN0IG5wZT1mdW5jdGlvbiB0cGUoYyxsKXt2YXIgYT10eXBlb2YgYztyZXR1cm4h'@; put 'IShsPWw/PzkwMDcxOTkyNTQ3NDA5OTEpJiYoIm51bWJlciI9PWF8fCJzeW1ib2wiIT1hJiZlcGUudGVzdChjKSkmJmM+LTEmJmMlMT09MCYmYzxsfSx3cT1mdW5jdGlvbiBpcGUoYyl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBjJiZjPi0xJiZjJTE9PTAmJmM8PTkwMDcxOTkyNTQ3NDA5OTF9'@; put 'O3ZhciBubD17fTtubFsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09bmxbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPW5sWyJbb2JqZWN0IEludDhBcnJheV0iXT1ubFsiW29iamVjdCBJbnQxNkFycmF5XSJdPW5sWyJbb2JqZWN0IEludDMyQXJyYXldIl09bmxbIltvYmplY3QgVWludDhBcnJh'@; put 'eV0iXT1ubFsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1ubFsiW29iamVjdCBVaW50MTZBcnJheV0iXT1ubFsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxubFsiW29iamVjdCBBcmd1bWVudHNdIl09bmxbIltvYmplY3QgQXJyYXldIl09bmxbIltvYmplY3QgQXJyYXlCdWZmZXJd'@; put 'Il09bmxbIltvYmplY3QgQm9vbGVhbl0iXT1ubFsiW29iamVjdCBEYXRhVmlld10iXT1ubFsiW29iamVjdCBEYXRlXSJdPW5sWyJbb2JqZWN0IEVycm9yXSJdPW5sWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPW5sWyJbb2JqZWN0IE1hcF0iXT1ubFsiW29iamVjdCBOdW1iZXJdIl09bmxbIltvYmpl'@; put 'Y3QgT2JqZWN0XSJdPW5sWyJbb2JqZWN0IFJlZ0V4cF0iXT1ubFsiW29iamVjdCBTZXRdIl09bmxbIltvYmplY3QgU3RyaW5nXSJdPW5sWyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7Y29uc3QgbVA9ZnVuY3Rpb24gSXBlKGMpe3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gYyhsKX19O3ZhciBD'@; put 'cT0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLGViPUNxJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsdlA9ZWImJmViLmV4cG9ydHM9PT1DcSYmc3EucHJvY2Vzcztj'@; put 'b25zdCB1OD1mdW5jdGlvbigpe3RyeXtyZXR1cm4gZWImJmViLnJlcXVpcmUmJmViLnJlcXVpcmUoInV0aWwiKS50eXBlc3x8dlAmJnZQLmJpbmRpbmcmJnZQLmJpbmRpbmcoInV0aWwiKX1jYXRjaHt9fSgpO3ZhciBTcT11OCYmdTguaXNUeXBlZEFycmF5O2NvbnN0IFBwZT1TcT9tUChTcSk6'@; put 'ZnVuY3Rpb24gVHBlKGMpe3JldHVybiBsOChjKSYmd3EoYy5sZW5ndGgpJiYhIW5sW2k4KGMpXX07dmFyIEhwZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IE1xPWZ1bmN0aW9uIE5wZShjLGwpe3ZhciBhPWM4KGMpLGQ9IWEmJlczZShjKSxoPSFhJiYhZCYmeXEoYyks'@; put 'Zj0hYSYmIWQmJiFoJiZQcGUoYyksXz1hfHxkfHxofHxmLFQ9Xz9mdW5jdGlvbiBOM2UoYyxsKXtmb3IodmFyIGE9LTEsZD1BcnJheShjKTsrK2E8YzspZFthXT1sKGEpO3JldHVybiBkfShjLmxlbmd0aCxTdHJpbmcpOltdLFc9VC5sZW5ndGg7Zm9yKHZhciBpZSBpbiBjKShsfHxIcGUuY2Fs'@; put 'bChjLGllKSkmJighX3x8ISgibGVuZ3RoIj09aWV8fGgmJigib2Zmc2V0Ij09aWV8fCJwYXJlbnQiPT1pZSl8fGYmJigiYnVmZmVyIj09aWV8fCJieXRlTGVuZ3RoIj09aWV8fCJieXRlT2Zmc2V0Ij09aWUpfHxucGUoaWUsVykpKSYmVC5wdXNoKGllKTtyZXR1cm4gVH07dmFyIFZwZT1PYmpl'@; put 'Y3QucHJvdG90eXBlO2NvbnN0IF9QPWZ1bmN0aW9uIEJwZShjKXt2YXIgbD1jJiZjLmNvbnN0cnVjdG9yO3JldHVybiBjPT09KCJmdW5jdGlvbiI9PXR5cGVvZiBsJiZsLnByb3RvdHlwZXx8VnBlKX0seHE9ZnVuY3Rpb24ganBlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBjKGwo'@; put 'YSkpfX0sVXBlPXhxKE9iamVjdC5rZXlzLE9iamVjdCk7dmFyIFlwZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IEVxPWZ1bmN0aW9uICRwZShjKXtyZXR1cm4gbnVsbCE9YyYmd3EoYy5sZW5ndGgpJiYhY3EoYyl9LGJQPWZ1bmN0aW9uIHFwZShjKXtyZXR1cm4gRXEo'@; put 'Yyk/TXEoYyk6ZnVuY3Rpb24gV3BlKGMpe2lmKCFfUChjKSlyZXR1cm4gVXBlKGMpO3ZhciBsPVtdO2Zvcih2YXIgYSBpbiBPYmplY3QoYykpWXBlLmNhbGwoYyxhKSYmImNvbnN0cnVjdG9yIiE9YSYmbC5wdXNoKGEpO3JldHVybiBsfShjKX07dmFyIHQ0ZT1PYmplY3QucHJvdG90eXBlLmhh'@; put 'c093blByb3BlcnR5O2NvbnN0IHI0ZT1mdW5jdGlvbiBuNGUoYyl7aWYoIVhfKGMpKXJldHVybiBmdW5jdGlvbiBKcGUoYyl7dmFyIGw9W107aWYobnVsbCE9Yylmb3IodmFyIGEgaW4gT2JqZWN0KGMpKWwucHVzaChhKTtyZXR1cm4gbH0oYyk7dmFyIGw9X1AoYyksYT1bXTtmb3IodmFyIGQg'@; put 'aW4gYykiY29uc3RydWN0b3IiPT1kJiYobHx8IXQ0ZS5jYWxsKGMsZCkpfHxhLnB1c2goZCk7cmV0dXJuIGF9LHlQPWZ1bmN0aW9uIGk0ZShjKXtyZXR1cm4gRXEoYyk/TXEoYywhMCk6cjRlKGMpfTt2YXIga3E9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5u'@; put 'b2RlVHlwZSYmZXhwb3J0cyxBcT1rcSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLFRxPUFxJiZBcS5leHBvcnRzPT09a3E/c2guQnVmZmVyOnZvaWQgMCxEcT1UcT9UcS5hbGxvY1Vuc2FmZTp2b2lkIDA7Y29uc3QgSXE9ZnVuY3Rp'@; put 'b24gcDRlKCl7cmV0dXJuW119O3ZhciBtNGU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxMcT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLHY0ZT1McT9mdW5jdGlvbihjKXtyZXR1cm4gbnVsbD09Yz9bXTooYz1PYmplY3QoYyksZnVuY3Rpb24gaDRlKGMsbCl7'@; put 'Zm9yKHZhciBhPS0xLGQ9bnVsbD09Yz8wOmMubGVuZ3RoLGg9MCxmPVtdOysrYTxkOyl7dmFyIF89Y1thXTtsKF8sYSxjKSYmKGZbaCsrXT1fKX1yZXR1cm4gZn0oTHEoYyksZnVuY3Rpb24obCl7cmV0dXJuIG00ZS5jYWxsKGMsbCl9KSl9OklxO2NvbnN0IHdQPXY0ZSxScT1mdW5jdGlvbiB5'@; put 'NGUoYyxsKXtmb3IodmFyIGE9LTEsZD1sLmxlbmd0aCxoPWMubGVuZ3RoOysrYTxkOyljW2grYV09bFthXTtyZXR1cm4gY30sT3E9eHEoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCk7dmFyIFM0ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKGMpe2Zvcih2YXIg'@; put 'bD1bXTtjOylScShsLHdQKGMpKSxjPU9xKGMpO3JldHVybiBsfTpJcTtjb25zdCBQcT1TNGUsRnE9ZnVuY3Rpb24gRTRlKGMsbCxhKXt2YXIgZD1sKGMpO3JldHVybiBjOChjKT9kOlJxKGQsYShjKSl9LEE0ZT1mdW5jdGlvbiBrNGUoYyl7cmV0dXJuIEZxKGMsYlAsd1ApfSxENGU9ZnVuY3Rp'@; put 'b24gVDRlKGMpe3JldHVybiBGcShjLHlQLFBxKX0sQ1A9UjUoc2gsIkRhdGFWaWV3IiksU1A9UjUoc2gsIlByb21pc2UiKSxNUD1SNShzaCwiU2V0IikseFA9UjUoc2gsIldlYWtNYXAiKTt2YXIgSHE9IltvYmplY3QgTWFwXSIsTnE9IltvYmplY3QgUHJvbWlzZV0iLFZxPSJbb2JqZWN0IFNl'@; put 'dF0iLEJxPSJbb2JqZWN0IFdlYWtNYXBdIixqcT0iW29iamVjdCBEYXRhVmlld10iLEY0ZT1MNShDUCksSDRlPUw1KEpfKSxONGU9TDUoU1ApLFY0ZT1MNShNUCksQjRlPUw1KHhQKSxPNT1pODsoQ1AmJk81KG5ldyBDUChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9anF8fEpfJiZPNShuZXcgSl8p'@; put 'IT1IcXx8U1AmJk81KFNQLnJlc29sdmUoKSkhPU5xfHxNUCYmTzUobmV3IE1QKSE9VnF8fHhQJiZPNShuZXcgeFApIT1CcSkmJihPNT1mdW5jdGlvbihjKXt2YXIgbD1pOChjKSxhPSJbb2JqZWN0IE9iamVjdF0iPT1sP2MuY29uc3RydWN0b3I6dm9pZCAwLGQ9YT9MNShhKToiIjtpZihkKXN3'@; put 'aXRjaChkKXtjYXNlIEY0ZTpyZXR1cm4ganE7Y2FzZSBINGU6cmV0dXJuIEhxO2Nhc2UgTjRlOnJldHVybiBOcTtjYXNlIFY0ZTpyZXR1cm4gVnE7Y2FzZSBCNGU6cmV0dXJuIEJxfXJldHVybiBsfSk7Y29uc3QgRVA9TzU7dmFyIHo0ZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5'@; put 'O2NvbnN0IHpxPXNoLlVpbnQ4QXJyYXksa1A9ZnVuY3Rpb24gVzRlKGMpe3ZhciBsPW5ldyBjLmNvbnN0cnVjdG9yKGMuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyB6cShsKS5zZXQobmV3IHpxKGMpKSxsfTt2YXIgcTRlPS9cdyokLzt2YXIgVXE9bXA/bXAucHJvdG90eXBlOnZvaWQgMCxacT1V'@; put 'cT9VcS52YWx1ZU9mOnZvaWQgMDtjb25zdCBDNWU9ZnVuY3Rpb24gdzVlKGMsbCxhKXt2YXIgZD1jLmNvbnN0cnVjdG9yO3N3aXRjaChsKXtjYXNlIltvYmplY3QgQXJyYXlCdWZmZXJdIjpyZXR1cm4ga1AoYyk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJl'@; put 'dHVybiBuZXcgZCgrYyk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuIGZ1bmN0aW9uIEc0ZShjLGwpe3ZhciBhPWw/a1AoYy5idWZmZXIpOmMuYnVmZmVyO3JldHVybiBuZXcgYy5jb25zdHJ1Y3RvcihhLGMuYnl0ZU9mZnNldCxjLmJ5dGVMZW5ndGgpfShjLGEpO2Nhc2UiW29iamVj'@; put 'dCBGbG9hdDMyQXJyYXldIjpjYXNlIltvYmplY3QgRmxvYXQ2NEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDhBcnJheV0iOmNhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDMyQXJyYXldIjpjYXNlIltvYmplY3QgVWludDhBcnJheV0iOmNhc2UiW29iamVjdCBVaW50'@; put 'OENsYW1wZWRBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybiBmdW5jdGlvbiBlNWUoYyxsKXt2YXIgYT1sP2tQKGMuYnVmZmVyKTpjLmJ1ZmZlcjtyZXR1cm4gbmV3IGMuY29uc3RydWN0b3IoYSxjLmJ5dGVPZmZzZXQs'@; put 'Yy5sZW5ndGgpfShjLGEpO2Nhc2UiW29iamVjdCBNYXBdIjpjYXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyBkO2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyBkKGMpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4gZnVuY3Rpb24g'@; put 'SzRlKGMpe3ZhciBsPW5ldyBjLmNvbnN0cnVjdG9yKGMuc291cmNlLHE0ZS5leGVjKGMpKTtyZXR1cm4gbC5sYXN0SW5kZXg9Yy5sYXN0SW5kZXgsbH0oYyk7Y2FzZSJbb2JqZWN0IFN5bWJvbF0iOnJldHVybiBmdW5jdGlvbiBKNGUoYyl7cmV0dXJuIFpxP09iamVjdChacS5jYWxsKGMpKTp7'@; put 'fX0oYyl9fTt2YXIgWXE9T2JqZWN0LmNyZWF0ZSxTNWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBjKCl7fXJldHVybiBmdW5jdGlvbihsKXtpZighWF8obCkpcmV0dXJue307aWYoWXEpcmV0dXJuIFlxKGwpO2MucHJvdG90eXBlPWw7dmFyIGE9bmV3IGM7cmV0dXJuIGMucHJvdG90eXBlPXZvaWQg'@; put 'MCxhfX0oKTtjb25zdCBNNWU9UzVlO3ZhciBXcT11OCYmdTguaXNNYXA7Y29uc3QgSTVlPVdxP21QKFdxKTpmdW5jdGlvbiBBNWUoYyl7cmV0dXJuIGw4KGMpJiYiW29iamVjdCBNYXBdIj09RVAoYyl9O3ZhciBHcT11OCYmdTguaXNTZXQ7Y29uc3QgRjVlPUdxP21QKEdxKTpmdW5jdGlvbiBS'@; put 'NWUoYyl7cmV0dXJuIGw4KGMpJiYiW29iamVjdCBTZXRdIj09RVAoYyl9O3ZhciAkcT0iW29iamVjdCBBcmd1bWVudHNdIixxcT0iW29iamVjdCBGdW5jdGlvbl0iLEtxPSJbb2JqZWN0IE9iamVjdF0iLFlhPXt9O1lhWyRxXT1ZYVsiW29iamVjdCBBcnJheV0iXT1ZYVsiW29iamVjdCBBcnJh'@; put 'eUJ1ZmZlcl0iXT1ZYVsiW29iamVjdCBEYXRhVmlld10iXT1ZYVsiW29iamVjdCBCb29sZWFuXSJdPVlhWyJbb2JqZWN0IERhdGVdIl09WWFbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPVlhWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1ZYVsiW29iamVjdCBJbnQ4QXJyYXldIl09WWFbIltv'@; put 'YmplY3QgSW50MTZBcnJheV0iXT1ZYVsiW29iamVjdCBJbnQzMkFycmF5XSJdPVlhWyJbb2JqZWN0IE1hcF0iXT1ZYVsiW29iamVjdCBOdW1iZXJdIl09WWFbS3FdPVlhWyJbb2JqZWN0IFJlZ0V4cF0iXT1ZYVsiW29iamVjdCBTZXRdIl09WWFbIltvYmplY3QgU3RyaW5nXSJdPVlhWyJbb2Jq'@; put 'ZWN0IFN5bWJvbF0iXT1ZYVsiW29iamVjdCBVaW50OEFycmF5XSJdPVlhWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPVlhWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPVlhWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLFlhWyJbb2JqZWN0IEVycm9yXSJdPVlhW3FxXT1ZYVsiW29i'@; put 'amVjdCBXZWFrTWFwXSJdPSExO2NvbnN0IGNnZT1mdW5jdGlvbiBqeChjLGwsYSxkLGgsZil7dmFyIF8sVD0xJmwsVz0yJmwsaWU9NCZsO2lmKGEmJihfPWg/YShjLGQsaCxmKTphKGMpKSx2b2lkIDAhPT1fKXJldHVybiBfO2lmKCFYXyhjKSlyZXR1cm4gYzt2YXIgcGU9YzgoYyk7aWYocGUp'@; put 'e2lmKF89ZnVuY3Rpb24gVTRlKGMpe3ZhciBsPWMubGVuZ3RoLGE9bmV3IGMuY29uc3RydWN0b3IobCk7cmV0dXJuIGwmJiJzdHJpbmciPT10eXBlb2YgY1swXSYmejRlLmNhbGwoYywiaW5kZXgiKSYmKGEuaW5kZXg9Yy5pbmRleCxhLmlucHV0PWMuaW5wdXQpLGF9KGMpLCFUKXJldHVybiBm'@; put 'dW5jdGlvbiB1NGUoYyxsKXt2YXIgYT0tMSxkPWMubGVuZ3RoO2ZvcihsfHwobD1BcnJheShkKSk7KythPGQ7KWxbYV09Y1thXTtyZXR1cm4gbH0oYyxfKX1lbHNle3ZhciB3ZT1FUChjKSxFZT13ZT09cXF8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PXdlO2lmKHlxKGMpKXJldHVy'@; put 'biBmdW5jdGlvbiBsNGUoYyxsKXtpZihsKXJldHVybiBjLnNsaWNlKCk7dmFyIGE9Yy5sZW5ndGgsZD1EcT9EcShhKTpuZXcgYy5jb25zdHJ1Y3RvcihhKTtyZXR1cm4gYy5jb3B5KGQpLGR9KGMsVCk7aWYod2U9PUtxfHx3ZT09JHF8fEVlJiYhaCl7aWYoXz1XfHxFZT97fTpmdW5jdGlvbiB4'@; put 'NWUoYyl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGMuY29uc3RydWN0b3J8fF9QKGMpP3t9Ok01ZShPcShjKSl9KGMpLCFUKXJldHVybiBXP2Z1bmN0aW9uIE00ZShjLGwpe3JldHVybiBCeChjLFBxKGMpLGwpfShjLGZ1bmN0aW9uIG80ZShjLGwpe3JldHVybiBjJiZCeChsLHlQKGwpLGMp'@; put 'fShfLGMpKTpmdW5jdGlvbiBfNGUoYyxsKXtyZXR1cm4gQngoYyx3UChjKSxsKX0oYyxmdW5jdGlvbiBLcGUoYyxsKXtyZXR1cm4gYyYmQngobCxiUChsKSxjKX0oXyxjKSl9ZWxzZXtpZighWWFbd2VdKXJldHVybiBoP2M6e307Xz1DNWUoYyx3ZSxUKX19Znx8KGY9bmV3IFQzZSk7dmFyIFpl'@; put 'PWYuZ2V0KGMpO2lmKFplKXJldHVybiBaZTtmLnNldChjLF8pLEY1ZShjKT9jLmZvckVhY2goZnVuY3Rpb24oeXQpe18uYWRkKGp4KHl0LGwsYSx5dCxjLGYpKX0pOkk1ZShjKSYmYy5mb3JFYWNoKGZ1bmN0aW9uKHl0LEV0KXtfLnNldChFdCxqeCh5dCxsLGEsRXQsYyxmKSl9KTt2YXIgZXQ9'@; put 'cGU/dm9pZCAwOihpZT9XP0Q0ZTpBNGU6Vz95UDpiUCkoYyk7cmV0dXJuIGZ1bmN0aW9uIEQzZShjLGwpe2Zvcih2YXIgYT0tMSxkPW51bGw9PWM/MDpjLmxlbmd0aDsrK2E8ZCYmITEhPT1sKGNbYV0sYSxjKTspO30oZXR8fGMsZnVuY3Rpb24oeXQsRXQpe2V0JiYoeXQ9Y1tFdD15dF0pLHBx'@; put 'KF8sRXQsangoeXQsbCxhLEV0LGMsZikpfSksX30seng9ZnVuY3Rpb24gaGdlKGMpe3JldHVybiBjZ2UoYyw1KX07dmFyIGZnZT1GKDkyODczKTtsZXQgVGM9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2hvd25MaWJyYXJpZXM9NTAsdGhpcy5sb2FkTW9yZUNvdW50PTUwLHRo'@; put 'aXMuaXNNaWNyb3NvZnQ9ITEsdGhpcy5pc01pY3Jvc29mdD10aGlzLmlzSUVvckVER0UoKSxjb25zb2xlLmxvZygiSXMgSUUgb3IgRWRnZT8iLHRoaXMuaXNNaWNyb3NvZnQpfWNvbnZlcnRKc0RhdGVUb1Nhc0RhdGUoYSxkPSJkYXlzIil7bGV0IGgsZj0wO2g9YSBpbnN0YW5jZW9mIERhdGU/'@; put 'YTpuZXcgRGF0ZShhKSxmPW5ldyBEYXRlKERhdGUuVVRDKGguZ2V0RnVsbFllYXIoKSxoLmdldE1vbnRoKCksaC5nZXREYXRlKCksaC5nZXRIb3VycygpLGguZ2V0TWludXRlcygpLGguZ2V0U2Vjb25kcygpKSkudmFsdWVPZigpO2NvbnN0IFc9ZiszMTU2MTkyZTU7c3dpdGNoKGQpe2Nhc2Ui'@; put 'ZGF5cyI6e2xldCBpZT1XLzg2NGU1O3JldHVybiBpZT1NYXRoLmFicyhpZSksaWU9TWF0aC5mbG9vcihpZSksaWV9Y2FzZSJzZWNvbmRzIjpyZXR1cm4gVy8xZTN9cmV0dXJuIDB9Y29udmVydFNhc0RheXNUb0pzRGF0ZShhLGQ9ImRheXMiKXtpZigibnVtYmVyIiE9dHlwZW9mIGEmJihhPXBh'@; put 'cnNlRmxvYXQoYSkpLCJzZWNvbmRzIj09PWQpe2xldCBUPTFlMyphLTMxNTYxOTJlNTtyZXR1cm4gVCs9NjAqbmV3IERhdGUoVCkuZ2V0VGltZXpvbmVPZmZzZXQoKSoxZTMsbmV3IERhdGUoVCl9cmV0dXJuIG5ldyBEYXRlKDg2NGU1KmEtMzE1NjE5MmU1KX10cmVlT25GaWx0ZXIoYSxkKXts'@; put 'ZXQgaD1hLnNlYXJjaFN0cmluZz9hLnNlYXJjaFN0cmluZzoiIixmPWQuc3BsaXQoIi4iKVswXSxfPWQuc3BsaXQoIi4iKVsxXSxUPWYrIkFsbCI7YVtmXSYmKGFbVF18fChhW1RdPXRoaXMuZGVlcENsb25lKGFbZl0pKSxhW2ZdPXRoaXMuZGVlcENsb25lKGFbVF0pLGgubGVuZ3RoPjAmJihh'@; put 'W2ZdPWFbZl0uZmlsdGVyKF8/Vz0+V1tfXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGgudG9Mb3dlckNhc2UoKSk6Vz0+Vy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGgudG9Mb3dlckNhc2UoKSkpKSl9bGlicmFyeU9uRmlsdGVyKGEsZCxoKXtkLmxlbmd0aD4wP2EuZm9yRWFjaChmPT57Zlto'@; put 'XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGQudG9Mb3dlckNhc2UoKSk/KGYuaGlkZGVuPSExLGYuaW5Gb3JlZ3JvdW5kPSEwKTooZi5oaWRkZW49ITAsZi5pbkZvcmVncm91bmQ9ITEpfSk6KHRoaXMucmVzZXRBcnJheUZpbHRlcihhKSx0aGlzLmRpc3BsYXlMaWJyYXJpZXMoYSkpfWRpc3Bs'@; put 'YXlMaWJyYXJpZXMoYSxkKXtkP3RoaXMuc2hvd25MaWJyYXJpZXMrPXRoaXMubG9hZE1vcmVDb3VudDoodGhpcy5zaG93bkxpYnJhcmllcz01MCx0aGlzLnJlc2V0TGlicmFyeUZvcmVncm91bmQoYSkpO2ZvcihsZXQgaD0wO2g8YS5sZW5ndGgmJmghPT10aGlzLnNob3duTGlicmFyaWVzO2gr'@; put 'KylhW2hdLmluRm9yZWdyb3VuZD0hMH1yZXNldExpYnJhcnlGb3JlZ3JvdW5kKGEpe2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKWFbZF0uaW5Gb3JlZ3JvdW5kPSExfW1ldGFPYmplY3RPbkZpbHRlcihhLGQsaCl7ZC5sZW5ndGg+MD8odGhpcy5yZXNldEFycmF5RmlsdGVyKGEpLGEuZm9y'@; put 'RWFjaChmPT57ZltoXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGQudG9Mb3dlckNhc2UoKSl8fChmLmhpZGRlbj0hMCl9KSk6dGhpcy5yZXNldEFycmF5RmlsdGVyKGEpfXJlc2V0QXJyYXlGaWx0ZXIoYSl7YS5mb3JFYWNoKGQ9PntkLmhpZGRlbj0hMSxkLmluRm9yZWdyb3VuZCYmZGVsZXRl'@; put 'IGQuaW5Gb3JlZ3JvdW5kfSl9aXNJRW9yRURHRSgpe3ZhciBhPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O3JldHVybiBhLmluZGV4T2YoIk1TSUUgIik+MHx8KGEuaW5kZXhPZigiVHJpZGVudC8iKT4wPyhhLmluZGV4T2YoInJ2OiIpLCEwKTphLmluZGV4T2YoIkVkZ2UvIik+MCl9Y29u'@; put 'dmVydE9iamVjdHNUb0FycmF5KGEsZD0hMSl7cmV0dXJuIGQmJihhPXRoaXMuZGVlcENsb25lKGEpKSxhLm1hcChoPT5PYmplY3Qua2V5cyhoKS5tYXAoZj0+aFtmXSkpfWFkZExlYWRpbmdaZXJvKGEpe3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGE9YS50b1N0cmluZygpKSxhLmxlbmd0'@; put 'aDwyPyIwIithOmF9ZGVsZXRlS2V5c0FuZEhhc2goYSxkLGg9ITApe2NvbnN0IGY9aD90aGlzLmRlZXBDbG9uZShhKTphO2ZvcihsZXQgXyBvZiBkKWRlbGV0ZSBmW19dO3JldHVybiBmZ2UoSlNPTi5zdHJpbmdpZnkoZikpLnRvU3RyaW5nKCl9ZG93bmxvYWRUZXh0RmlsZShhLGQpe2NvbnN0'@; put 'IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2guc2V0QXR0cmlidXRlKCJocmVmIiwiZGF0YTp0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQoZCkpLGguc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsYSsiLnR4dCIpLGguc3R5bGUuZGlzcGxheT0ibm9u'@; put 'ZSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoKSxoLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChoKX1jb252ZXJ0QXJyYXlWYWx1ZXMoYSxkKXtpZihhLmxlbmd0aDwxKXJldHVybltdO3N3aXRjaChkKXtjYXNlIm51bWJlciI6cmV0dXJuIGEubWFwKGg9PjEqaCk7Y2Fz'@; put 'ZSJzdHJpbmciOnJldHVybiBhLnRvU3RyaW5nKCkuc3BsaXQoIiwiKX19ZGVib3VuY2VDYWxsKGEsZCl7Y2xlYXJUaW1lb3V0KHRoaXMuZGVib3VuY2VUaW1lb3V0KSx0aGlzLmRlYm91bmNlVGltZW91dD1zZXRUaW1lb3V0KGQsYSl9ZGVlcENsb25lKGEpe3JldHVybiB6eChhKX19cmV0dXJu'@; put 'IGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCksQzA9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCl7dGhpcy5sb2dn'@; put 'ZXJTZXJ2aWNlPWEsdGhpcy5hcHBTdG9yZVNlcnZpY2U9ZCx0aGlzLmV2ZW50U2VydmljZT1oLHRoaXMuc2FzU2VydmljZT1mLHRoaXMuaGVscGVyU2VydmljZT1fLHRoaXMucm91dGVyPVQsdGhpcy51c2VyQ291bnRMaW1pdGF0aW9uPSExLHRoaXMubGljZW5zZUtleURhdGE9bnVsbCx0aGlz'@; put 'Ll9saWNlbmNlU3RhdGU9c1AsdGhpcy5hbGxGZWF0dXJlc09uPXt2aWV3ZXJfcm93c19hbGxvd2VkOjEvMCxlZGl0b3Jfcm93c19hbGxvd2VkOjEvMCxzdGFnZV9yb3dzX2FsbG93ZWQ6MS8wLGhpc3Rvcnlfcm93c19hbGxvd2VkOjEvMCxzdWJtaXRfcm93c19saW1pdDoxLzAsdGFibGVzX2lu'@; put 'X2xpYnJhcnlfbGltaXQ6MS8wLHZpZXdib3hfbGltaXQ6MS8wLGxpbmVhZ2VfZGFpbHlfbGltaXQ6MS8wLHZpZXdib3g6ITAsZmlsZVVwbG9hZDohMCxlZGl0UmVjb3JkOiEwLGFkZFJlY29yZDohMH0sdGhpcy5mcmVlVGllckxpY2VuY2VEYXRhPXtkZW1vOiEwLGhvdF9saWNlbnNlX2tleTp0'@; put 'aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpPy5ob3RMaWNlbmNlS2V5LHVzZXJzX2FsbG93ZWQ6dGhpcy5fbGljZW5jZVN0YXRlLnVzZXJzX2FsbG93ZWR8fDEsdmFsaWRfdW50aWw6S28oKS5hZGQoMSwieWVhciIpLmZvcm1hdCgiWVlZWS1NTS1ERCIpLHNpdGVf'@; put 'aWQ6IiIsc2l0ZV9pZF9tdWx0aXBsZTpbXX0sdGhpcy5pc0FwcEFjdGl2YXRlZD1uZXcgVGUobnVsbCksdGhpcy5pc0FwcE92ZXJDYXBhY2l0eT1uZXcgVGUoITEpLHRoaXMuY3VycmVudFVzZXJDYW5SZWdpc3Rlcj1uZXcgVGUoITEpLHRoaXMuYXBwTG9ja2VkPW5ldyBUZSghMSksdGhpcy5s'@; put 'aWNlbnNlRXhwaXJlc0luRGF5cz1uZXcgVGUobnVsbCksdGhpcy5pc0FwcEZyZWVUaWVyPW5ldyBUZSghMSksdGhpcy5saWNlbmNlUHJvYmxlbT1uZXcgVGUobnVsbCksdGhpcy5ob3RfbGljZW5zZV9rZXk9bmV3IFRlKHZvaWQgMCksdGhpcy5saWNlbmNlU3RhdGU9bmV3IFRlKHRoaXMuX2xp'@; put 'Y2VuY2VTdGF0ZSksdGhpcy5zYXNTZXJ2aWNlLmluY29ycmVjdFNpdGVJZEVtaXR0ZXIuc3Vic2NyaWJlKFc9PntpZihudWxsIT09dGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZSYmIXRoaXMuaXNBcHBGcmVlVGllci52YWx1ZSl7Y29uc3QgaWU9YC9saWNlbnNpbmcva2V5P2Vycm9yPW1pc3Nt'@; put 'YXRjaCZtaXNzbWF0Y2hJZD0ke1d9JmZvcmNlPXRydWVgO3RoaXMubGljZW5jZVByb2JsZW0ubmV4dChpZSksdGhpcy5kZWFjdGl2YXRlQXBwKGllKX19KX1hY3RpdmF0aW9uKGEpe3ZhciBkPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2QuZnJlZVRpZXJMaWNlbmNlRGF0YS5ob3RfbGlj'@; put 'ZW5zZV9rZXk9ZC5hcHBTdG9yZVNlcnZpY2UuZ2V0RGNBZGFwdGVyU2V0dGluZ3MoKT8uaG90TGljZW5jZUtleSx5aWVsZCBkLnNldFN0YXJ0dXBzZXJ2aWNlUnVsZXMoYSkseWllbGQgZC5saWNlbnNpbmcoYS5nbG9idmFycyxhLlNZU1NJVEUpfSkoKX1zZXRTdGFydHVwc2VydmljZVJ1bGVz'@; put 'KGEpe3RoaXMuX2xpY2VuY2VTdGF0ZS5lZGl0UmVjb3JkPSJZRVMiIT09YS5nbG9idmFyc1swXS5EQ19SRVNUUklDVF9FRElUUkVDT1JEfWxpY2Vuc2luZyhhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2lmKCFhfHwhYVswXSl7Y29uc3QgXz0nRXJyb3IgZ2V0dGluZyAi'@; put 'R2xvYnZhcnMiIGZyb20gc3RhcnR1cHNlcnZpY2UgcmVzcG9uc2UuJztyZXR1cm4gY29uc29sZS5lcnJvcihfKSxoLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpLHZvaWQgaC5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2xpY2Vuc2luZy9rZXk/ZXJyb3I9aW52YWxpZCZkZXRhaWxzPSR7YnRvYShf'@; put 'KX1gKX1sZXQgZj1hWzBdO3JldHVybiB2b2lkIDA9PT1mLkxJQ0VOQ0VfS0VZfHx2b2lkIDA9PT1mLkFDVElWQVRJT05fS0VZfHxudWxsPT1mLlJFR0lTVEVSQ09VTlR8fG51bGw9PWYuSVNSRUdJU1RFUkVEPyhjb25zb2xlLmVycm9yKCJTb21lIG9mIGdsb2J2YXJzIGFyZSBub3QgcHJlc2Vu'@; put 'dCIpLGguaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdm9pZCBoLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJFcnJvciIsIlNvbWUgb2YgdGhlIGdsb2J2YXJzIGFyZSBub3QgcHJlc2VudCBpbiB0aGUgc3RhcnR1cHNlcnZpY2UiKSk6Zi5MSUNFTkNFX0tFWSYmZi5BQ1RJVkFUSU9OX0tF'@; put 'WT8oaC5saWNlbmNlS2V5PWYuTElDRU5DRV9LRVksaC5hY3RpdmF0aW9uS2V5PWYuQUNUSVZBVElPTl9LRVksdm9pZCh5aWVsZCBoLmRlY3J5cHRMaWNlbnNlS2V5KGYuTElDRU5DRV9LRVksZi5BQ1RJVkFUSU9OX0tFWSkudGhlbihmdW5jdGlvbigpe3ZhciBfPWZpKGZ1bmN0aW9uKihUKXt5'@; put 'aWVsZCBoLmFwcGxpY2F0aW9uQWN0aXZhdGlvbihULGYsZCl9KTtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIF8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxmdW5jdGlvbigpe3ZhciBfPWZpKGZ1bmN0aW9uKihUKXtjb25zdCBXPWBFcnJvciBkZWNyeXB0aW5nIGxpY2Vuc2Uga2V5LiAk'@; put 'e1R9YDtjb25zb2xlLmVycm9yKFcpO2NvbnN0IGllPWAvbGljZW5zaW5nL2tleT9lcnJvcj1pbnZhbGlkJmRldGFpbHM9JHtidG9hKFcpfSZmb3JjZT10cnVlYDtoLmxpY2VuY2VQcm9ibGVtLm5leHQoaWUpLGgucm91dGVyLm5hdmlnYXRlQnlVcmwoaWUpLHNldFRpbWVvdXQoKCk9PmguYXBw'@; put 'bGljYXRpb25BY3RpdmF0aW9uKGguZnJlZVRpZXJMaWNlbmNlRGF0YSxmLGQsITApKX0pO3JldHVybiBmdW5jdGlvbihUKXtyZXR1cm4gXy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSkpOnlpZWxkIGguYXBwbGljYXRpb25BY3RpdmF0aW9uKGguZnJlZVRpZXJMaWNlbmNlRGF0YSxmLGQp'@; put 'fSkoKX1hcHBsaWNhdGlvbkFjdGl2YXRpb24oYSxkLGgsZil7Znx8KGY9ITEpLHRoaXMuc2V0U2l0ZUlkKGEpLCFhLmRlbW8mJmQmJmgmJnRoaXMuaGFuZGxlU2l0ZUlkTWlzc21hdGNoKGEsZCxoLGYpO2xldCBfPXZvaWQgMCE9PWEuaG90X2xpY2Vuc2Vfa2V5P2EuaG90X2xpY2Vuc2Vfa2V5'@; put 'OnRoaXMuaG90X2xpY2Vuc2Vfa2V5LnZhbHVlO198fChfPXRoaXMuYXBwU3RvcmVTZXJ2aWNlLmdldERjQWRhcHRlclNldHRpbmdzKCk/LmhvdExpY2VuY2VLZXkpLHRoaXMuaG90X2xpY2Vuc2Vfa2V5Lm5leHQoXyksdGhpcy51c2VyQ291bnRMaW1pdGF0aW9uJiZ0aGlzLmhhbmRsZVVzZXJz'@; put 'QWxsb3dlZChhKSx0aGlzLmxpY2Vuc2VLZXlEYXRhPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoYSksd2luZG93LmFwcGluZm8oKTtjb25zdHtleHBpcnlfZGF0ZTpULGRheXNUb0V4cGlyeTpXfT10aGlzLmNhbGN1bGF0ZUV4cGlyeShhKTtpZih3aW5kb3cubGljZW5zZUV4cGlyZXNJ'@; put 'bj1XLHRoaXMubGljZW5zZUV4cGlyZXNJbkRheXMubmV4dChXKSxXPD0wKXJldHVybiBjb25zb2xlLmVycm9yKCJMaWNlbnNlIGtleSBoYXMgZXhwaXJlZCIpLHZvaWQoZCYmaCYmdGhpcy5oYW5kbGVFeHBpcnkoVCxkLGgsZikpO3RoaXMuaXNBcHBGcmVlVGllci5uZXh0KCEhYS5kZW1vKSxk'@; put 'JiZ0aGlzLmhhbmRsZVVzZXJSZWdpc3RyYXRpb24oYSxkLGYpLHRoaXMuZGVjb2RlTGljZW5jZUZlYXR1cmVzKGEpLHRoaXMubGljZW5jZVN0YXRlLm5leHQodGhpcy5fbGljZW5jZVN0YXRlKX1kZWNvZGVMaWNlbmNlRmVhdHVyZXMoYSl7aWYoIWEuZmVhdHVyZXMpe2lmKGEuZGVtbylyZXR1'@; put 'cm47cmV0dXJuIHZvaWQodGhpcy5fbGljZW5jZVN0YXRlPXRoaXMuYWxsRmVhdHVyZXNPbil9Y29uc3QgZD1hLmZlYXR1cmVzLnNwbGl0KCIsIik7dGhpcy5fbGljZW5jZVN0YXRlPXsuLi50aGlzLl9saWNlbmNlU3RhdGUsdmlld2VyX3Jvd3NfYWxsb3dlZDp0aGlzLnBhcnNlRmVhdHVyZVZh'@; put 'bHVlKGRbbjEudmlld2VyX3Jvd3NfYWxsb3dlZF0pLGVkaXRvcl9yb3dzX2FsbG93ZWQ6dGhpcy5wYXJzZUZlYXR1cmVWYWx1ZShkW24xLmVkaXRvcl9yb3dzX2FsbG93ZWRdKSxzdGFnZV9yb3dzX2FsbG93ZWQ6dGhpcy5wYXJzZUZlYXR1cmVWYWx1ZShkW24xLnN0YWdlX3Jvd3NfYWxsb3dl'@; put 'ZF0pLGhpc3Rvcnlfcm93c19hbGxvd2VkOnRoaXMucGFyc2VGZWF0dXJlVmFsdWUoZFtuMS5oaXN0b3J5X3Jvd3NfYWxsb3dlZF0pLHN1Ym1pdF9yb3dzX2xpbWl0OnRoaXMucGFyc2VGZWF0dXJlVmFsdWUoZFtuMS5zdWJtaXRfcm93c19saW1pdF0pLHRhYmxlc19pbl9saWJyYXJ5X2xpbWl0'@; put 'OnRoaXMucGFyc2VGZWF0dXJlVmFsdWUoZFtuMS50YWJsZXNfaW5fbGlicmFyeV9saW1pdF0pLHZpZXdib3hfbGltaXQ6dGhpcy5wYXJzZUZlYXR1cmVWYWx1ZShkW24xLnZpZXdib3hfbGltaXRdKSxsaW5lYWdlX2RhaWx5X2xpbWl0OnRoaXMucGFyc2VGZWF0dXJlVmFsdWUoZFtuMS5saW5l'@; put 'YWdlX2RhaWx5X2xpbWl0XSksdmlld2JveDp0aGlzLnBhcnNlRmVhdHVyZVRvZ2dsZShkW24xLnZpZXdib3hdKSxmaWxlVXBsb2FkOnRoaXMucGFyc2VGZWF0dXJlVG9nZ2xlKGRbbjEuZmlsZVVwbG9hZF0pLGVkaXRSZWNvcmQ6dGhpcy5wYXJzZUZlYXR1cmVUb2dnbGUoZFtuMS5lZGl0UmVj'@; put 'b3JkXSksYWRkUmVjb3JkOnRoaXMucGFyc2VGZWF0dXJlVG9nZ2xlKGRbbjEuYWRkUmVjb3JkXSl9LHRoaXMubG9nZ2VyU2VydmljZS5sb2coIkxpY2VuY2Ugc3RhdGU6Iix0aGlzLl9saWNlbmNlU3RhdGUpfXBhcnNlRmVhdHVyZVZhbHVlKGEpe3JldHVybiItIj09PWE/MS8wOnBhcnNlSW50'@; put 'KGEpfXBhcnNlRmVhdHVyZVRvZ2dsZShhKXtyZXR1cm4hIXBhcnNlSW50KGEpfWRlY3J5cHRMaWNlbnNlS2V5KGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZj1maShmdW5jdGlvbiooXyxUKXtpZighd2luZG93LmNyeXB0b3x8IXdpbmRvdy5jcnlw'@; put 'dG8uc3VidGxlKXRyeXtsZXQgRWU9YXRvYihhLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIikpO18oSlNPTi5wYXJzZShFZSkpfWNhdGNoKEVlKXtUKCJFcnJvciBwYXJzaW5nIGh0dHAgbGljZW5zZSBrZXkgZGF0YS4gIitFZSl9bGV0IGllLFc9eWllbGQgaC5iYXNlNjRUb0FycmF5QnVm'@; put 'ZmVyKGEpLmNhdGNoKEVlPT57VChFZSl9KTtjb25zdCBwZT15aWVsZCBoLmJhc2U2NFRvQXJyYXlCdWZmZXIoZCkuY2F0Y2goRWU9PntUKEVlKX0pO2lmKCFwZSlyZXR1cm4gdm9pZCBUKCJNaXNzaW5nIGFjdGl2YXRpb24ga2V5Iik7bGV0IHdlO2llPXBlO3RyeXt3ZT15aWVsZCB3aW5kb3cu'@; put 'Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInBrY3M4IixpZSx7bmFtZToiUlNBLU9BRVAiLGhhc2g6IlNIQS0yNTYifSwhMCxbImRlY3J5cHQiXSl9Y2F0Y2goRWUpe1QoIlVuYWJsZSB0byBpbXBvcnQgZGVjcnlwdGlvbiBrZXk6ICIrRWUpfWlmKHdlKWlmKFcpdHJ5e3dpbmRvdy5jcnlwdG8u'@; put 'c3VidGxlLmRlY3J5cHQoe25hbWU6IlJTQS1PQUVQIixoYXNoOntuYW1lOiJTSEEtMjU2In19LHdlLFcpLnRoZW4oRWU9PntsZXQgWmU9KG5ldyBoaGUuVGV4dERlY29kZXIpLmRlY29kZShFZSk7dHJ5e18oSlNPTi5wYXJzZShaZSkpfWNhdGNoKGl0KXtUKCJFcnJvciBwYXJzaW5nIGxpY2Vu'@; put 'c2Uga2V5IGRhdGEuICIraXQpfX0sRWU9PntUKEVlKX0pfWNhdGNoKEVlKXtUKEVlKX1lbHNlIFQoIkxpY2Vuc2Uga2V5IGJ5dGVzIG1pc3NpbmciKTtlbHNlIFQoIlVuYWJsZSB0byBpbXBvcnQgZGVjcnlwdGlvbiBrZXkiKX0pO3JldHVybiBmdW5jdGlvbihfLFQpe3JldHVybiBmLmFwcGx5'@; put 'KHRoaXMsYXJndW1lbnRzKX19KCkpfWdldEhvdExpY2Vuc2VLZXkoKXtyZXR1cm4gdGhpcy5ob3RfbGljZW5zZV9rZXkudmFsdWV9Z2V0TGljZW5zZUtleURhdGEoKXtyZXR1cm4gdGhpcy5saWNlbnNlS2V5RGF0YX1kZWFjdGl2YXRlQXBwKGEpe3RoaXMuX2xpY2VuY2VTdGF0ZT1zUCx0aGlz'@; put 'LmFwcGxpY2F0aW9uQWN0aXZhdGlvbih0aGlzLmZyZWVUaWVyTGljZW5jZURhdGEpLGEmJnRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYSl9Y2hlY2tMaW5lYWdlTGltaXQoYSl7aWYodGhpcy5saWNlbmNlU3RhdGUudmFsdWUubGluZWFnZV9kYWlseV9saW1pdD09PTEvMClyZXR1cm4hMTtj'@; put 'b25zdCBkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJsaW5lYWdlX3JlbmRlcnMiKSxoPUtvKCkudmFsdWVPZigpO2lmKCFkKXJldHVybiBhfHx0aGlzLnNldExpbmVhZ2VSZW5kZXIoaCwxKSwhMTtjb25zdCBmPXBhcnNlSW50KGQuc3BsaXQoIiwiKVswXSksXz1wYXJzZUludChkLnNwbGl0KCIs'@; put 'IilbMV0pO3JldHVybiBLbyhmKS5pc1NhbWUoS28oKSwiZGF5Iik/Xz49dGhpcy5saWNlbmNlU3RhdGUudmFsdWUubGluZWFnZV9kYWlseV9saW1pdHx8KGF8fHRoaXMuc2V0TGluZWFnZVJlbmRlcihoLF8rMSksITEpOihhfHx0aGlzLnNldExpbmVhZ2VSZW5kZXIoaCwxKSwhMSl9c2V0TGlu'@; put 'ZWFnZVJlbmRlcihhLGQpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJsaW5lYWdlX3JlbmRlcnMiLGAke2F9LCR7ZH1gKX1iYXNlNjRUb0FycmF5QnVmZmVyKGEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciBkPWZpKGZ1bmN0aW9uKihoLGYpe2goQiQuSihhKSl9KTtyZXR1cm4g'@; put 'ZnVuY3Rpb24oaCxmKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKX1hcnJheUJ1ZmZlclRvQmFzZTY0KGEpe3JldHVybiBuZXcgUHJvbWlzZSgoZCxoKT0+e2QoQiQuYyhhKSl9KX1zZXRTaXRlSWQoYSl7YS5zaXRlX2lkX211bHRpcGxlP3RoaXMuc2FzU2VydmljZS5zZXRM'@; put 'aWNlbnNlU2l0ZUlkKGEuc2l0ZV9pZF9tdWx0aXBsZSk6YS5zaXRlX2lkJiZ0aGlzLnNhc1NlcnZpY2Uuc2V0TGljZW5zZVNpdGVJZChhLnNpdGVfaWQpfWhhbmRsZVNpdGVJZE1pc3NtYXRjaChhLGQsaCxmKXtsZXQgXz0hMSxUPSExO2lmKCghYS5zaXRlX2lkfHxhLnNpdGVfaWQhPT1oKSYm'@; put 'KF89ITApLCghYS5zaXRlX2lkX211bHRpcGxlfHwhYS5zaXRlX2lkX211bHRpcGxlLmluY2x1ZGVzKGgpKSYmKFQ9ITApLF8mJlQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRoZSBrZXkgcHJvdmlkZWQgaXMgZm9yIGRpZmZlcmVudCBvcmdhbml6YXRpb24uIiksdm9pZCBzZXRUaW1lb3V0KCgp'@; put 'PT57Y29uc3QgVz0iL2xpY2Vuc2luZy9rZXk/ZXJyb3I9bWlzc21hdGNoJmZvcmNlPXRydWUiO3RoaXMubGljZW5jZVByb2JsZW0ubmV4dChXKSx0aGlzLl9saWNlbmNlU3RhdGU9c1AsdGhpcy5hcHBsaWNhdGlvbkFjdGl2YXRpb24odGhpcy5mcmVlVGllckxpY2VuY2VEYXRhLGQsaCwhMCks'@; put 'Znx8dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChXKX0pfWNhbGN1bGF0ZUV4cGlyeShhKXtsZXQgZD1LbyhhLnZhbGlkX3VudGlsLCJZWVlZLU1NLUREIikuc3RhcnRPZigiZGF5IiksaD1LbygpLnN0YXJ0T2YoImRheSIpLGY9ZC5kaWZmKGgsImRheXMiKTtyZXR1cm57ZXhwaXJ5X2RhdGU6'@; put 'ZCxkYXlzVG9FeHBpcnk6Zn19aGFuZGxlRXhwaXJ5KGEsZCxoLGYpe3NldFRpbWVvdXQoKCk9Pntjb25zdCBfPWAvbGljZW5zaW5nL2tleT9mb3JjZT10cnVlJmVycm9yPWV4cGlyZWQmZGV0YWlscz0ke2J0b2EoIkV4cGlyeSBkYXRlOiAiK2EuZm9ybWF0KCJERC9NTS9ZWVlZIikpfWA7dGhp'@; put 'cy5saWNlbmNlUHJvYmxlbS5uZXh0KF8pLHRoaXMuYXBwbGljYXRpb25BY3RpdmF0aW9uKHRoaXMuZnJlZVRpZXJMaWNlbmNlRGF0YSxkLGgsITApLGZ8fHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXyl9KX1oYW5kbGVVc2Vyc0FsbG93ZWQoYSl7YS5kZW1vJiZ2b2lkIDAhPT10aGlzLl9s'@; put 'aWNlbmNlU3RhdGUudXNlcnNfYWxsb3dlZCYmKGEudXNlcnNfYWxsb3dlZD1hLnVzZXJzX2FsbG93ZWQ+MD9hLnVzZXJzX2FsbG93ZWQ6dGhpcy5fbGljZW5jZVN0YXRlLnVzZXJzX2FsbG93ZWQpLHRoaXMuX2xpY2VuY2VTdGF0ZS51c2Vyc19hbGxvd2VkPWEudXNlcnNfYWxsb3dlZH1oYW5k'@; put 'bGVVc2VyUmVnaXN0cmF0aW9uKGEsZCxoKXtpZih0aGlzLnVzZXJDb3VudExpbWl0YXRpb24mJihkLlJFR0lTVEVSQ09VTlQ+YS51c2Vyc19hbGxvd2VkPyhjb25zb2xlLndhcm4oIkFwcCBoYXMgbW9yZSB1c2VycyByZWdpc3RlcmVkIHRoZW4gbGljZW5zZWQuIiksdGhpcy5pc0FwcE92ZXJD'@; put 'YXBhY2l0eS5uZXh0KCEwKSk6ZC5SRUdJU1RFUkNPVU5UPT09YS51c2Vyc19hbGxvd2VkJiZjb25zb2xlLndhcm4oIkFwcCBoYXMgaGl0IGxpbWl0IG9mIHVzZXJzIHJlZ2lzdGVyZWQuIikpLDEhPT1kLklTUkVHSVNURVJFRClyZXR1cm4gZC5SRUdJU1RFUkNPVU5UPGEudXNlcnNfYWxsb3dl'@; put 'ZHx8IXRoaXMudXNlckNvdW50TGltaXRhdGlvbj8oY29uc29sZS5sb2coIlVzZXIgY2FuIHJlZ2lzdGVyIiksdGhpcy5jdXJyZW50VXNlckNhblJlZ2lzdGVyLm5leHQoITApLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdm9pZChofHx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIv'@; put 'bGljZW5zaW5nL3JlZ2lzdGVyIikpKToodGhpcy5jdXJyZW50VXNlckNhblJlZ2lzdGVyLm5leHQoITEpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdm9pZChofHx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2xpbWl0IikpKTt0aGlzLmlzQXBwQWN0aXZhdGVk'@; put 'Lm5leHQoITApfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcih3MCksYXIoZTgpLGFyKHZsKSxhcihvYSksYXIoVGMpLGFyKERzKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3Qi'@; put 'fSksY30pKCksVXg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMubGljZW5jZVNlcnZpY2U9YSx0aGlzLmV2ZW50U2VydmljZT1kLHRoaXMuc2FzU2VydmljZT1oLHRoaXMubG9nZ2VyU2VydmljZT1mLHRoaXMucm91dGVyPV8sdGhpcy5zeXNzaXRlPW5ldyBUZShu'@; put 'dWxsKSx0aGlzLmVudmlyb25tZW50SW5mbz1udWxsLHRoaXMuc3Vic2NyaWJlKCksdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShUPT57VCBpbnN0YW5jZW9mIGhwJiYiL2RlcGxveSI9PT1ULnVybCYmdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKX0pfXNhc1NlcnZp'@; put 'Y2VJbml0KCl7dGhpcy5zYXNTZXJ2aWNlLnNhc1NlcnZpY2VJbml0KCl9c3Vic2NyaWJlKCl7dGhpcy5zYXNTZXJ2aWNlLmxvYWRTdGFydHVwU2VydmljZUVtaXR0ZXIuc3Vic2NyaWJlKCgpPT57dGhpcy5zdGFydFVwRGF0YSgpfSksdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3RTaXRlSWRFbWl0'@; put 'dGVyLnN1YnNjcmliZShhPT57dGhpcy5wYXRjaFN5c3NpdGUoYSl9KX1nZXRFbnZpcm9ubWVudEluZm8oKXtyZXR1cm4gdGhpcy5lbnZpcm9ubWVudEluZm99cGF0Y2hTeXNzaXRlKGEpe2xldCBkPXRoaXMuc3lzc2l0ZS5nZXRWYWx1ZSgpO2QmJihkLmluY2x1ZGVzKGEpfHwoZC5wdXNoKGEp'@; put 'LHRoaXMuc3lzc2l0ZS5uZXh0KGQpKSl9c3RhcnRVcERhdGEoKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtsZXQgZD0hMTt5aWVsZCBhLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3N0YXJ0dXBzZXJ2aWNlIixudWxsKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGg9ZmkoZnVu'@; put 'Y3Rpb24qKGYpe2Euc3lzc2l0ZS5uZXh0KFtmLlNZU1NJVEVdKTtsZXQgXz1bXTtpZigoIWYuZ2xvYnZhcnN8fGYuZ2xvYnZhcnMmJiFmLmdsb2J2YXJzWzBdKSYmXy5wdXNoKCJHbG9idmFycyIpLGYuc2FzZGF0YXNldHN8fF8ucHVzaCgiU2FzZGF0YXNldHMiKSxmLnNhc2xpYnN8fF8ucHVz'@; put 'aCgiU2FzbGlicyIpLGYueGxtYXBzfHxfLnB1c2goIlhMTWFwcyIpLF8ubGVuZ3RoPjApcmV0dXJuIGQ9ITAsYS5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3IiLGAke18uam9pbigiLCAiKX0gYXJlIG5vdCBwcmVzZW50IGluIHRoZSBzdGFydHVwc2VydmljZWApLHZvaWQgYS5s'@; put 'aWNlbmNlU2VydmljZS5pc0FwcEFjdGl2YXRlZC5uZXh0KCExKTthLmVudmlyb25tZW50SW5mbz17U1lTU0lURTpmLlNZU1NJVEUsU1lTU0NQTDpmLlNZU1NDUEwsU1lTVENQSVBIT1NUTkFNRTpmLlNZU1RDUElQSE9TVE5BTUUsU1lTVkxPTkc6Zi5TWVNWTE9ORyxNRU1TSVpFOmYuTUVNU0la'@; put 'RSxTWVNQUk9DRVNTTU9ERTpmLlNZU1BST0NFU1NNT0RFLFNZU0hPU1ROQU1FOmYuU1lTSE9TVE5BTUUsU1lTSE9TVElORk9MT05HOmYuU1lTSE9TVElORk9MT05HLFNZU0VOQ09ESU5HOmYuU1lTRU5DT0RJTkcsQVVUT0VYRUM6Zi5BVVRPRVhFQyxJU0FETUlOOmYuZ2xvYnZhcnNbMF0uSVNB'@; put 'RE1JTixEQ19BRE1JTl9HUk9VUDpmLmdsb2J2YXJzWzBdLkRDX0FETUlOX0dST1VQfTtsZXQgaWUscGUsVD1mLnNhc2RhdGFzZXRzLFc9e307Zm9yKGxldCBpdCBvZiBUKVdbaXQuTElCUkVGXXx8KFdbaXQuTElCUkVGXT1bXSksV1tpdC5MSUJSRUZdLnB1c2goaXQuRFNOKTtsZXQgd2U9SlNP'@; put 'Ti5wYXJzZShKU09OLnN0cmluZ2lmeShXKSksRWU9W107Zm9yKGxldCBpdCBvZiBPYmplY3Qua2V5cyh3ZSkpRWUucHVzaCh7TElCUkFSWVJFRjppdCx0YWJsZXM6d2VbaXRdfSk7bGV0IFplPUVlO2llPVcscGU9T2JqZWN0LmtleXMoVyksdm9pZCAwIT09aWUmJihHbi5lZGl0b3IubGlic0Fu'@; put 'ZFRhYmxlcz1pZSksR24ueGxtYXBzPWYueGxtYXBzLm1hcChpdD0+KHtpZDppdFswXSxkZXNjcmlwdGlvbjppdFsxXSx0YXJnZXREUzppdFsyXX0pKSxHbi5lZGl0b3IudHJlZU5vZGVMaWJyYXJpZXM9WmUsR24uZWRpdG9yLmxpYnJhcmllcz1wZSxHbi5lZGl0b3Iuc3RhcnR1cFNldD0hMCxH'@; put 'bi5kY0xpYj1mLmdsb2J2YXJzWzBdLkRDTElCLHlpZWxkIGEubGljZW5jZVNlcnZpY2UuYWN0aXZhdGlvbihmKX0pO3JldHVybiBmdW5jdGlvbihmKXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKS5jYXRjaChoPT57ZD0hMCxhLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFs'@; put 'KCJFcnJvciIsIlRoZXJlIGlzIGFuIGlzc3VlIHdpdGggc3RhcnR1cHNlcnZpY2UgcmVzcG9uc2UiKSxhLmxpY2VuY2VTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpfSksYS5sb2dnZXJTZXJ2aWNlLmxvZygiQWN0aXZhdGVkOiIsYS5saWNlbmNlU2VydmljZS5pc0FwcEFjdGl2YXRl'@; put 'ZC52YWx1ZSksZHx8KGEuZXZlbnRTZXJ2aWNlLnN0YXJ0dXBEYXRhTG9hZGVkKCksYS5saWNlbmNlU2VydmljZS5pc0FwcEFjdGl2YXRlZC52YWx1ZT9hLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpJiZhLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvaG9tZSIpOiFhLnJvdXRlci51'@; put 'cmwuaW5jbHVkZXMoImRlcGxveSIpJiYhYS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJsaWNlbnNpbmciKSYmYS5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9bWlzc2luZyZmb3JjZT10cnVlIikpfSkoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3Jl'@; put 'dHVybiBuZXcoYXx8YykoYXIoQzApLGFyKHZsKSxhcihvYSksYXIodzApLGFyKERzKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3MgcGdle2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5mbj1sLHRoaXMuc3Vic2NyaXB0aW9ucz1hfXVu'@; put 'c3Vic2NyaWJlKCl7Y29uc3QgbD10aGlzLnN1YnNjcmlwdGlvbnMuaW5kZXhPZih0aGlzKTstMSE9PWwmJnRoaXMuc3Vic2NyaXB0aW9ucy5zcGxpY2UobCwxKX19ZnVuY3Rpb24gdnAoYyl7cmV0dXJuIG51bGwhPWMmJiJvYmplY3QiPT10eXBlb2YgYyYmITA9PT1jWyJAQGZ1bmN0aW9uYWwv'@; put 'cGxhY2Vob2xkZXIiXX1mdW5jdGlvbiBrZihjKXtyZXR1cm4gZnVuY3Rpb24gbChhKXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGh8fHZwKGEpP2w6Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIGQ4KGMpe3JldHVybiBmdW5jdGlvbiBsKGEsZCl7c3dpdGNoKGFyZ3VtZW50'@; put 'cy5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbDtjYXNlIDE6cmV0dXJuIHZwKGEpP2w6a2YoZnVuY3Rpb24oaCl7cmV0dXJuIGMoYSxoKX0pO2RlZmF1bHQ6cmV0dXJuIHZwKGEpJiZ2cChkKT9sOnZwKGEpP2tmKGZ1bmN0aW9uKGgpe3JldHVybiBjKGgsZCl9KTp2cChkKT9rZihmdW5jdGlvbiho'@; put 'KXtyZXR1cm4gYyhhLGgpfSk6YyhhLGQpfX19Y29uc3QgWng9ZDgoZnVuY3Rpb24obCxhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGx8fG51bGwhPWEmJihhLmNvbnN0cnVjdG9yPT09bHx8Ik9iamVjdCI9PT1sLm5hbWUmJiJvYmplY3QiPT10eXBlb2YgYSl9KTtmdW5jdGlvbiBZeChjLGwpe3Jl'@; put 'dHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobCxjKX12YXIgWHE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztjb25zdCBKcT1mdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEFyZ3VtZW50c10iPT09WHEuY2FsbChhcmd1bWVudHMpP2Z1bmN0aW9uKGwpe3JldHVy'@; put 'biJbb2JqZWN0IEFyZ3VtZW50c10iPT09WHEuY2FsbChsKX06ZnVuY3Rpb24obCl7cmV0dXJuIFl4KCJjYWxsZWUiLGwpfX0oKSxfZ2U9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24obCl7cmV0dXJuIG51bGwhPWwmJmwubGVuZ3RoPj0wJiYiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3Rv'@; put 'dHlwZS50b1N0cmluZy5jYWxsKGwpfTtmdW5jdGlvbiBRcShjKXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjKX12YXIgd2dlPWtmKGZ1bmN0aW9uKGwpe3JldHVybiBudWxsIT1sJiYiZnVuY3Rpb24iPT10eXBlb2YgbFsiZmFudGFz'@; put 'eS1sYW5kL2VtcHR5Il0/bFsiZmFudGFzeS1sYW5kL2VtcHR5Il0oKTpudWxsIT1sJiZudWxsIT1sLmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgbC5jb25zdHJ1Y3RvclsiZmFudGFzeS1sYW5kL2VtcHR5Il0/bC5jb25zdHJ1Y3RvclsiZmFudGFzeS1sYW5kL2VtcHR5Il0oKTpu'@; put 'dWxsIT1sJiYiZnVuY3Rpb24iPT10eXBlb2YgbC5lbXB0eT9sLmVtcHR5KCk6bnVsbCE9bCYmbnVsbCE9bC5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIGwuY29uc3RydWN0b3IuZW1wdHk/bC5jb25zdHJ1Y3Rvci5lbXB0eSgpOl9nZShsKT9bXTpRcShsKT8iIjpmdW5jdGlvbiBi'@; put 'Z2UoYyl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYyl9KGwpP3t9OkpxKGwpP2Z1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKTpmdW5jdGlvbiB5Z2UoYyl7dmFyIGw9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGMp'@; put 'O3JldHVybiJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI9PT1sfHwiW29iamVjdCBJbnQ4QXJyYXldIj09PWx8fCJbb2JqZWN0IFVpbnQ4QXJyYXldIj09PWx8fCJbb2JqZWN0IEludDE2QXJyYXldIj09PWx8fCJbb2JqZWN0IFVpbnQxNkFycmF5XSI9PT1sfHwiW29iamVjdCBJbnQzMkFy'@; put 'cmF5XSI9PT1sfHwiW29iamVjdCBVaW50MzJBcnJheV0iPT09bHx8IltvYmplY3QgRmxvYXQzMkFycmF5XSI9PT1sfHwiW29iamVjdCBGbG9hdDY0QXJyYXldIj09PWx8fCJbb2JqZWN0IEJpZ0ludDY0QXJyYXldIj09PWx8fCJbb2JqZWN0IEJpZ1VpbnQ2NEFycmF5XSI9PT1sfShsKT9sLmNv'@; put 'bnN0cnVjdG9yLmZyb20oIiIpOnZvaWQgMH0pO2NvbnN0IENnZT13Z2U7ZnVuY3Rpb24gZUsoYyl7Zm9yKHZhciBhLGw9W107IShhPWMubmV4dCgpKS5kb25lOylsLnB1c2goYS52YWx1ZSk7cmV0dXJuIGx9ZnVuY3Rpb24gdEsoYyxsLGEpe2Zvcih2YXIgZD0wLGg9YS5sZW5ndGg7ZDxoOyl7'@; put 'aWYoYyhsLGFbZF0pKXJldHVybiEwO2QrPTF9cmV0dXJuITF9Y29uc3QgVFA9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24gTWdlKGMsbCl7cmV0dXJuIGM9PT1sPzAhPT1jfHwxL2M9PTEvbDpjIT1jJiZsIT1sfTt2YXIgeGdlPSF7dG9TdHJpbmc6bnVs'@; put 'bH0ucHJvcGVydHlJc0VudW1lcmFibGUoInRvU3RyaW5nIiksbks9WyJjb25zdHJ1Y3RvciIsInZhbHVlT2YiLCJpc1Byb3RvdHlwZU9mIiwidG9TdHJpbmciLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImhhc093blByb3BlcnR5IiwidG9Mb2NhbGVTdHJpbmciXSxySz1mdW5jdGlvbigpe3Jl'@; put 'dHVybiBhcmd1bWVudHMucHJvcGVydHlJc0VudW1lcmFibGUoImxlbmd0aCIpfSgpLEVnZT1mdW5jdGlvbihsLGEpe2Zvcih2YXIgZD0wO2Q8bC5sZW5ndGg7KXtpZihsW2RdPT09YSlyZXR1cm4hMDtkKz0xfXJldHVybiExfTtjb25zdCBpSz1rZigiZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0'@; put 'LmtleXN8fHJLP2Z1bmN0aW9uKGwpe2lmKE9iamVjdChsKSE9PWwpcmV0dXJuW107dmFyIGEsZCxoPVtdLGY9cksmJkpxKGwpO2ZvcihhIGluIGwpWXgoYSxsKSYmKCFmfHwibGVuZ3RoIiE9PWEpJiYoaFtoLmxlbmd0aF09YSk7aWYoeGdlKWZvcihkPW5LLmxlbmd0aC0xO2Q+PTA7KVl4KGE9'@; put 'bktbZF0sbCkmJiFFZ2UoaCxhKSYmKGhbaC5sZW5ndGhdPWEpLGQtPTE7cmV0dXJuIGh9OmZ1bmN0aW9uKGwpe3JldHVybiBPYmplY3QobCkhPT1sP1tdOk9iamVjdC5rZXlzKGwpfSksb0s9a2YoZnVuY3Rpb24obCl7cmV0dXJuIG51bGw9PT1sPyJOdWxsIjp2b2lkIDA9PT1sPyJVbmRlZmlu'@; put 'ZWQiOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChsKS5zbGljZSg4LC0xKX0pO2Z1bmN0aW9uIHNLKGMsbCxhLGQpe3ZhciBoPWVLKGMpO2Z1bmN0aW9uIF8oVCxXKXtyZXR1cm4gRFAoVCxXLGEuc2xpY2UoKSxkLnNsaWNlKCkpfXJldHVybiF0SyhmdW5jdGlvbihULFcpe3JldHVy'@; put 'biF0SyhfLFcsVCl9LGVLKGwpLGgpfWZ1bmN0aW9uIERQKGMsbCxhLGQpe2lmKFRQKGMsbCkpcmV0dXJuITA7dmFyIGg9b0soYyk7aWYoaCE9PW9LKGwpKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjWyJmYW50YXN5LWxhbmQvZXF1YWxzIl18fCJmdW5jdGlvbiI9PXR5cGVvZiBs'@; put 'WyJmYW50YXN5LWxhbmQvZXF1YWxzIl0pcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGNbImZhbnRhc3ktbGFuZC9lcXVhbHMiXSYmY1siZmFudGFzeS1sYW5kL2VxdWFscyJdKGwpJiYiZnVuY3Rpb24iPT10eXBlb2YgbFsiZmFudGFzeS1sYW5kL2VxdWFscyJdJiZsWyJmYW50YXN5LWxhbmQv'@; put 'ZXF1YWxzIl0oYyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGMuZXF1YWxzfHwiZnVuY3Rpb24iPT10eXBlb2YgbC5lcXVhbHMpcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGMuZXF1YWxzJiZjLmVxdWFscyhsKSYmImZ1bmN0aW9uIj09dHlwZW9mIGwuZXF1YWxzJiZsLmVxdWFscyhjKTtzd2l0'@; put 'Y2goaCl7Y2FzZSJBcmd1bWVudHMiOmNhc2UiQXJyYXkiOmNhc2UiT2JqZWN0IjppZigiZnVuY3Rpb24iPT10eXBlb2YgYy5jb25zdHJ1Y3RvciYmIlByb21pc2UiPT09ZnVuY3Rpb24gU2dlKGMpe3ZhciBsPVN0cmluZyhjKS5tYXRjaCgvXmZ1bmN0aW9uIChcdyopLyk7cmV0dXJuIG51bGw9'@; put 'PWw/IiI6bFsxXX0oYy5jb25zdHJ1Y3RvcikpcmV0dXJuIGM9PT1sO2JyZWFrO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjppZih0eXBlb2YgYyE9dHlwZW9mIGx8fCFUUChjLnZhbHVlT2YoKSxsLnZhbHVlT2YoKSkpcmV0dXJuITE7YnJlYWs7Y2FzZSJEYXRlIjpp'@; put 'ZighVFAoYy52YWx1ZU9mKCksbC52YWx1ZU9mKCkpKXJldHVybiExO2JyZWFrO2Nhc2UiRXJyb3IiOnJldHVybiBjLm5hbWU9PT1sLm5hbWUmJmMubWVzc2FnZT09PWwubWVzc2FnZTtjYXNlIlJlZ0V4cCI6aWYoYy5zb3VyY2UhPT1sLnNvdXJjZXx8Yy5nbG9iYWwhPT1sLmdsb2JhbHx8Yy5p'@; put 'Z25vcmVDYXNlIT09bC5pZ25vcmVDYXNlfHxjLm11bHRpbGluZSE9PWwubXVsdGlsaW5lfHxjLnN0aWNreSE9PWwuc3RpY2t5fHxjLnVuaWNvZGUhPT1sLnVuaWNvZGUpcmV0dXJuITF9Zm9yKHZhciBmPWEubGVuZ3RoLTE7Zj49MDspe2lmKGFbZl09PT1jKXJldHVybiBkW2ZdPT09bDtmLT0x'@; put 'fXN3aXRjaChoKXtjYXNlIk1hcCI6cmV0dXJuIGMuc2l6ZT09PWwuc2l6ZSYmc0soYy5lbnRyaWVzKCksbC5lbnRyaWVzKCksYS5jb25jYXQoW2NdKSxkLmNvbmNhdChbbF0pKTtjYXNlIlNldCI6cmV0dXJuIGMuc2l6ZT09PWwuc2l6ZSYmc0soYy52YWx1ZXMoKSxsLnZhbHVlcygpLGEuY29u'@; put 'Y2F0KFtjXSksZC5jb25jYXQoW2xdKSk7Y2FzZSJBcmd1bWVudHMiOmNhc2UiQXJyYXkiOmNhc2UiT2JqZWN0IjpjYXNlIkJvb2xlYW4iOmNhc2UiTnVtYmVyIjpjYXNlIlN0cmluZyI6Y2FzZSJEYXRlIjpjYXNlIkVycm9yIjpjYXNlIlJlZ0V4cCI6Y2FzZSJJbnQ4QXJyYXkiOmNhc2UiVWlu'@; put 'dDhBcnJheSI6Y2FzZSJVaW50OENsYW1wZWRBcnJheSI6Y2FzZSJJbnQxNkFycmF5IjpjYXNlIlVpbnQxNkFycmF5IjpjYXNlIkludDMyQXJyYXkiOmNhc2UiVWludDMyQXJyYXkiOmNhc2UiRmxvYXQzMkFycmF5IjpjYXNlIkZsb2F0NjRBcnJheSI6Y2FzZSJBcnJheUJ1ZmZlciI6YnJlYWs7'@; put 'ZGVmYXVsdDpyZXR1cm4hMX12YXIgXz1pSyhjKTtpZihfLmxlbmd0aCE9PWlLKGwpLmxlbmd0aClyZXR1cm4hMTt2YXIgVD1hLmNvbmNhdChbY10pLFc9ZC5jb25jYXQoW2xdKTtmb3IoZj1fLmxlbmd0aC0xO2Y+PTA7KXt2YXIgaWU9X1tmXTtpZighWXgoaWUsbCl8fCFEUChsW2llXSxjW2ll'@; put 'XSxULFcpKXJldHVybiExO2YtPTF9cmV0dXJuITB9Y29uc3QgRGdlPWQ4KGZ1bmN0aW9uKGwsYSl7cmV0dXJuIERQKGwsYSxbXSxbXSl9KSxhSz1rZihmdW5jdGlvbihsKXtyZXR1cm4gbnVsbCE9bCYmRGdlKGwsQ2dlKGwpKX0pO2Z1bmN0aW9uIHRiKGMpe3JldHVybiBudWxsPT1jfWZ1bmN0'@; put 'aW9uIF9wKGMpe3JldHVybiB0YihjKXx8YUsoYyl9ZnVuY3Rpb24gSVAoYyl7cmV0dXJuIFp4KFN0cmluZyxjKX1mdW5jdGlvbiBXeChjKXtyZXR1cm4gWngoT2JqZWN0LGMpfWZ1bmN0aW9uIGNLKGMpe3JldHVybiBaeChNYXAsYyl9ZnVuY3Rpb24gdUsoYyxsKXtyZXR1cm4gYyE9PWx9ZnVu'@; put 'Y3Rpb24gZEsoYyxsKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYyk9PT1KU09OLnN0cmluZ2lmeShsKX1mdW5jdGlvbiBoSyhjKXtjb25zdCBsPW5ldyBNYXA7Zm9yKGNvbnN0W2EsZF1vZiBjKWNLKGQpP2wuc2V0KGEsaEsoZCkpOmwuc2V0KGEsZCk7cmV0dXJuIGx9ZnVuY3Rpb24gSGdlKGMp'@; put 'e3N3aXRjaCghMCl7Y2FzZSBjSyhjKTpyZXR1cm4gaEsoYyk7Y2FzZSBXeChjKSYmIUFycmF5LmlzQXJyYXkoYyk6cmV0dXJuIFA1KHt9LGMpO2RlZmF1bHQ6cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYykpfX1mdW5jdGlvbiBQNSguLi5jKXtjb25zdCBsPXt9O3JldHVybiBj'@; put 'Lm1hcChhPT5XeChhKT97Li4uYX06e30pLmZvckVhY2goYT0+e09iamVjdC5rZXlzKGEpLmZvckVhY2goZD0+e2NvbnN0IGg9YVtkXTtsW2RdPUFycmF5LmlzQXJyYXkoaCk/QXJyYXkuZnJvbShoKTpXeChoKT9QNShsW2RdfHx7fSxoKTpofSl9KSxsfWZ1bmN0aW9uIHBLKGM9d2luZG93KXty'@; put 'ZXR1cm4hdGIoYyl9bGV0IEd4LGdLLExQLFJQO2Z1bmN0aW9uIG1LKGM9ITApe2lmKCFjfHwhR3gpe2NvbnN0IGw9ZG9jdW1lbnQmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIltuZy12ZXJzaW9uXSIpO0d4PWw/IiIrbC5nZXRBdHRyaWJ1dGUoIm5nLXZlcnNpb24iKTp2b2lkIDB9cmV0dXJu'@; put 'IEd4fWZ1bmN0aW9uIHpnZShjPSEwKXtyZXR1cm4gYyYmR3h8fChnSz13aW5kb3c/LmFuZ3VsYXI/LnZlcnNpb24/LmZ1bGwpLGdLfWZ1bmN0aW9uIHZLKGM9ITApe3JldHVybiBjJiZMUHx8KExQPXdpbmRvdz8uQ0RTPy5fcmVhY3Q/LnZlcnNpb24/d2luZG93LkNEUy5fcmVhY3QudmVyc2lv'@; put 'bjpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1yZWFjdHJvb3RdLCBbZGF0YS1yZWFjdGlkXSIpPyJ1bmtub3duIHZlcnNpb24iOnZvaWQgMCksTFB9ZnVuY3Rpb24gX0soYz0hMCl7aWYoIWN8fCFSUCl7Y29uc3QgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIik7bGV0IGE7'@; put 'Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspaWYobFtkXS5fX3Z1ZV9fKXthPWxbZF07YnJlYWt9UlA9YT8idW5rbm93biB2ZXJzaW9uIjp2b2lkIDB9cmV0dXJuIFJQfWZ1bmN0aW9uIEY1KGMpe3JldHVybiBjLnJlcGxhY2UoL1tBLVpdL2csbD0+Ii0iK2wudG9Mb3dlckNhc2UoKSl9ZnVu'@; put 'Y3Rpb24gd0soYyl7cmV0dXJuIGMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYy5zbGljZSgxKX1jb25zdCBxZ2U9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5zdXBwb3J0cz17anM6ITB9LCFkb2N1bWVudC5ib2R5Lmhhc0F0dHJpYnV0ZSgiY2RzLXN1cHBvcnRzIil8fCJuby1q'@; put 'cyI9PT1kb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgiY2RzLXN1cHBvcnRzIikpe2NvbnN0IGM9RjUoT2JqZWN0LmtleXModGhpcy5zdXBwb3J0cykucmVkdWNlKChsLGEpPT5gJHtsfSAke3RoaXMuc3VwcG9ydHNbYV0/YToibm8tIithfWAsIiIpKS50cmltKCk7ZG9jdW1lbnQuYm9keS5z'@; put 'ZXRBdHRyaWJ1dGUoImNkcy1zdXBwb3J0cyIsYyl9fX07ZnVuY3Rpb24gTUsoYyxsKXtzd2l0Y2goYyl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxOnJldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFy'@; put 'Z3VtZW50cyl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24oYSxkKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oYSxkLGgpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA0OnJldHVybiBmdW5jdGlvbihhLGQsaCxmKXty'@; put 'ZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNTpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZixfKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNjpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZixfLFQpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07'@; put 'Y2FzZSA3OnJldHVybiBmdW5jdGlvbihhLGQsaCxmLF8sVCxXKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgODpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZixfLFQsVyxpZSl7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDk6cmV0dXJuIGZ1bmN0aW9u'@; put 'KGEsZCxoLGYsXyxULFcsaWUscGUpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxMDpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZixfLFQsVyxpZSxwZSx3ZSl7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRmlyc3Qg'@; put 'YXJndW1lbnQgdG8gX2FyaXR5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciBubyBncmVhdGVyIHRoYW4gdGVuIil9fWZ1bmN0aW9uIHhLKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGQ9W10saD0wLGY9YyxfPTA7XzxsLmxlbmd0aHx8aDxhcmd1bWVudHMubGVuZ3Ro'@; put 'Oyl7dmFyIFQ7XzxsLmxlbmd0aCYmKCF2cChsW19dKXx8aD49YXJndW1lbnRzLmxlbmd0aCk/VD1sW19dOihUPWFyZ3VtZW50c1toXSxoKz0xKSxkW19dPVQsdnAoVCl8fChmLT0xKSxfKz0xfXJldHVybiBmPD0wP2EuYXBwbHkodGhpcyxkKTpNSyhmLHhLKGMsZCxhKSl9fWNvbnN0IEVLPWQ4'@; put 'KGZ1bmN0aW9uKGwsYSl7cmV0dXJuIDE9PT1sP2tmKGEpOk1LKGwseEsobCxbXSxhKSl9KSxYZ2U9TnVtYmVyLmlzSW50ZWdlcnx8ZnVuY3Rpb24obCl7cmV0dXJuIGw8PDA9PT1sfSxRZ2U9ZDgoZnVuY3Rpb24obCxhKXt2YXIgZD1sPDA/YS5sZW5ndGgrbDpsO3JldHVybiBRcShhKT9hLmNo'@; put 'YXJBdChkKTphW2RdfSksdG1lPWQ4KGZ1bmN0aW9uKGwsYSl7cmV0dXJuIGwubWFwKGZ1bmN0aW9uKGQpe2Zvcih2YXIgXyxoPWEsZj0wO2Y8ZC5sZW5ndGg7KXtpZihudWxsPT1oKXJldHVybjtoPVhnZShfPWRbZl0pP1FnZShfLGgpOmhbX10sZis9MX1yZXR1cm4gaH0pfSkscm1lPWQ4KGZ1'@; put 'bmN0aW9uKGwsYSl7cmV0dXJuIHRtZShbbF0sYSlbMF19KSxvbWU9RUsoMiwoYyxsKT0+dm9pZCAwIT09cm1lKGMsbCkpLGtLPW9tZSh7IkBAZnVuY3Rpb25hbC9wbGFjZWhvbGRlciI6ITB9LHdpbmRvdyk7Y2xhc3MgSDV7c3RhdGljIGxvZyguLi5sKXtGUCgpJiZQUCgpJiZjb25zb2xlLmxv'@; put 'ZyguLi5sKX1zdGF0aWMgd2FybiguLi5sKXtGUCgpJiZQUCgpJiZjb25zb2xlLndhcm4oLi4ubCl9c3RhdGljIGVycm9yKC4uLmwpe0ZQKCkmJlBQKCkmJmNvbnNvbGUuZXJyb3IoLi4ubCl9fWZ1bmN0aW9uIFBQKCl7cmV0dXJuIWtLKFsiamFzbWluZSJdKX1mdW5jdGlvbiBGUCgpe3JldHVy'@; put 'biF3aW5kb3cuQ0RTLmVudmlyb25tZW50LnByb2R1Y3Rpb259ZnVuY3Rpb24gQUsoKXtwSygpJiYod2luZG93LkNEUz13aW5kb3cuQ0RTfHx7X3ZlcnNpb246W10sX3JlYWN0Ont2ZXJzaW9uOnZvaWQgMH0sX3N1cHBvcnRzOnFnZS5zdXBwb3J0cyxfaXNTdGF0ZVByb3hpZWQ6ITEsX3N0YXRl'@; put 'Ontmb2N1c1RyYXBJdGVtczpbXSxsYXllckVsZW1lbnRzOltdLGkxOG5SZWdpc3RyeTp7fSxlbGVtZW50UmVnaXN0cnk6e30saWNvblJlZ2lzdHJ5Ont9LG1vdGlvblJlZ2lzdHJ5Ont9fSxlbnZpcm9ubWVudDp7cHJvZHVjdGlvbjohMX0sZ2V0RGV0YWlsczpUSyxsb2dEZXRhaWxzOmFtZX0s'@; put 'ZnVuY3Rpb24oKXtjb25zdCBjPSI2LjQuNiI7d2luZG93LkNEUy5fdmVyc2lvbi5pbmRleE9mKGMpPDAmJih3aW5kb3cuQ0RTLl92ZXJzaW9uLnB1c2goYyksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpPy5zZXRBdHRyaWJ1dGUoImNkcy12ZXJzaW9uIix3aW5kb3cuQ0RTLl92ZXJz'@; put 'aW9uLmpvaW4oIiAiKSkpLHdpbmRvdy5DRFMuX3ZlcnNpb24ubGVuZ3RoPjEmJkg1Lndhcm4oIlJ1bm5pbmcgbW9yZSB0aGFuIG9uZSB2ZXJzaW9uIG9mIENsYXJpdHkgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgaXNzdWVzLiBQbGVhc2UgZW5zdXJlIG9ubHkgb25lIHZlcnNpb24gaXMgbG9hZGVk'@; put 'LiIpfSgpLHdpbmRvdy5DRFMuX2lzU3RhdGVQcm94aWVkfHwod2luZG93LkNEUy5faXNTdGF0ZVByb3hpZWQ9ITAsd2luZG93LkNEUy5fc3RhdGU9bmV3IFByb3h5KHdpbmRvdy5DRFMuX3N0YXRlLHtzZXQ6KGMsbCxhKT0+e2NvbnN0IGQ9e2tleTpsLHByZXY6d2luZG93LkNEUy5fc3RhdGVb'@; put 'bF0sY3VycmVudDphfTtyZXR1cm4gY1tsXT1hLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJDRFNfU1RBVEVfVVBEQVRFIix7ZGV0YWlsOmR9KSksITB9fSkpKX1mdW5jdGlvbiBUSygpe3JldHVybnt2ZXJzaW9uczp3aW5kb3cuQ0RTLl92ZXJzaW9uLGVudmlyb25t'@; put 'ZW50OndpbmRvdy5DRFMuZW52aXJvbm1lbnQsdXNlckFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsc3VwcG9ydHM6d2luZG93LkNEUy5fc3VwcG9ydHMsYW5ndWxhclZlcnNpb246bUsoITEpLGFuZ3VsYXJKU1ZlcnNpb246emdlKCExKSxyZWFjdFZlcnNpb246dksoITEpLHZ1ZVZlcnNpb246'@; put 'X0soITEpLHN0YXRlOnsuLi53aW5kb3cuQ0RTLl9zdGF0ZSxpY29uUmVnaXN0cnk6T2JqZWN0LmtleXMod2luZG93LkNEUy5fc3RhdGUuaWNvblJlZ2lzdHJ5KSxtb3Rpb25SZWdpc3RyeTpPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5tb3Rpb25SZWdpc3RyeSksZm9jdXNUcmFwUmVn'@; put 'aXN0cnk6T2JqZWN0LmtleXMod2luZG93LkNEUy5fc3RhdGUuZm9jdXNUcmFwSXRlbXMubWFwKGM9PmMuZm9jdXNUcmFwSWQpKX19fWZ1bmN0aW9uIGFtZSgpe0g1LmxvZyhKU09OLnN0cmluZ2lmeShUSygpLG51bGwsMikpfWNvbnN0IEhQPW5ldyBjbGFzcyBnZ2V7Y29uc3RydWN0b3IoKXt0'@; put 'aGlzLnN1YnNjcmlwdGlvbnM9W119c3Vic2NyaWJlKGwpe2NvbnN0IGE9bmV3IHBnZShsLHRoaXMuc3Vic2NyaXB0aW9ucyk7cmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGEpLGF9ZW1pdChsKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLmZuKGwpKX10b0V2ZW50T2Jz'@; put 'ZXJ2YWJsZSgpe3JldHVybiB0aGlzfX07SFAubGlzdGVuZXI9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiQ0RTX1NUQVRFX1VQREFURSIsYz0+SFAuZW1pdChjLmRldGFpbCkpO2NsYXNzICRse3N0YXRpYyBnZXQgc3RhdGUoKXtyZXR1cm4gQUsoKSx3aW5kb3cuQ0RTLl9zdGF0ZX1zdGF0'@; put 'aWMgZ2V0VmFsdWUobCl7cmV0dXJuICRsLnN0YXRlW2xdfXN0YXRpYyBzZXRWYWx1ZShsLGEpeyRsLnN0YXRlW2xdPWF9c3RhdGljIGxvZygpe0g1LmxvZyhKU09OLnN0cmluZ2lmeSgkbC5zdGF0ZSxudWxsLDIpKX19JGwuc3RhdGVVcGRhdGVzPUhQLnRvRXZlbnRPYnNlcnZhYmxlKCk7Y29u'@; put 'c3QgbG1lPVsidW5rbm93biIse291dGxpbmU6JzxjaXJjbGUgY2xhc3M9ImNkcy1pbnRlcm5hbC1kb3QtMyIgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjbGFzcz0iY2RzLWludGVybmFsLWRvdC0yIiBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjbGFzcz0i'@; put 'Y2RzLWludGVybmFsLWRvdC0xIiBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIvPid9XTtjbGFzcyBWc3tzdGF0aWMgZ2V0IHJlZ2lzdHJ5KCl7cmV0dXJue3Vua25vd246bG1lWzFdLC4uLiRsLnN0YXRlLmljb25SZWdpc3RyeX19c3RhdGljIGFkZEljb25zKC4uLmwpeyRsLnN0YXRlLmljb25S'@; put 'ZWdpc3RyeT17Li4uJGwuc3RhdGUuaWNvblJlZ2lzdHJ5LC4uLk9iamVjdC5mcm9tRW50cmllcyhsLmZpbHRlcigoW2FdKT0+IVZzLnJlZ2lzdHJ5W2FdKSl9fXN0YXRpYyBhZGRBbGlhc2VzKC4uLmwpe2NvbnN0IGE9bC5maWx0ZXIoKFtkXSk9PlZzLnJlZ2lzdHJ5W2RdKS5mbGF0TWFwKChb'@; put 'ZCxoXSk9PmgubWFwKGY9PltmLFZzLnJlZ2lzdHJ5W2RdXSkpOyRsLnN0YXRlLmljb25SZWdpc3RyeT17Li4uJGwuc3RhdGUuaWNvblJlZ2lzdHJ5LC4uLk9iamVjdC5mcm9tRW50cmllcyhhKX19c3RhdGljIGdldEljb25OYW1lRnJvbVNoYXBlKGwpe3JldHVybiBsWzBdfX1jb25zdCBoOD1b'@; put 'ImFuZ2xlIix7b3V0bGluZTonPHBhdGggZD0iTTI5LjUyLDIyLjUyLDE4LDEwLjYsNi40OCwyMi41MmExLjcsMS43LDAsMCwwLDIuNDUsMi4zNkwxOCwxNS40OWw5LjA4LDkuMzlhMS43LDEuNywwLDAsMCwyLjQ1LTIuMzZaIi8+J31dLG8xPVsiZXhjbGFtYXRpb24tY2lyY2xlIix7b3V0bGlu'@; put 'ZTonPHBhdGggZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz48cGF0aCBkPSJNMTgsMjAuMDdhMS4zLDEuMywwLDAsMS0xLjMtMS4zdi02YTEuMywxLjMsMCwxLDEsMi42LDB2NkEx'@; put 'LjMsMS4zLDAsMCwxLDE4LDIwLjA3WiIvPjxjaXJjbGUgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40'@; put 'OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nfV0sczE9WyJjaGVjay1jaXJjbGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0wLDIyQTEw'@; put 'LDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPjxwYXRoIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwx'@; put 'OCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPid9XSxESz1bImVsbGlwc2lzLWhvcml6b250YWwiLHtvdXRsaW5lOic8Y2lyY2xlIGN4PSIzMS4xIiBjeT0i'@; put 'MTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiLz4nLG91dGxpbmVCYWRnZWQ6JzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+'@; put 'PGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIvPid9XSxuYj1bIndpbmRvdy1jbG9zZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOS40MSwxOGw3LjI5LTcuMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSwxMC43MSw5LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNTksMTgs'@; put 'OS4yOSwyNS4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDcuMjksNy4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPid9XSxjbWU9WyJldmVudCIse291dGxpbmU6JzxwYXRoIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42'@; put 'NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+PHBhdGggZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwx'@; put 'Ljc4LDAsMCwwLDMyLjI1LDZaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz48cmVjdCB4PSIx'@; put 'MyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz4nLG91dGxpbmVBbGVydGVkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTEwLjgxLDIwLjVsNS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSww'@; put 'LDAsMCwuMjMtLjQxSDIzLjhMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPjxwb2x5Z29uIHBvaW50cz0iMjEuMjkgNiAxMyA2IDEzIDggMjAuMTQgOCAyMS4yOSA2Ii8+PHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCww'@; put 'LDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+JyxvdXRsaW5lQmFkZ2VkOic8cGF0aCBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4x'@; put 'NywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYz'@; put 'MC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+PHBhdGggZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz4nLHNvbGlkOic8cGF0aCBkPSJN'@; put 'MTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPjxwYXRoIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQs'@; put 'MFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42'@; put 'Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPicsc29saWRBbGVydGVkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAs'@; put 'MTBaIi8+PHBhdGggZD0iTTMzLjY4LDE1LjRIMjYuM2ExLjM0LDEuMzQsMCwwLDEtLjM2LDEuMThsLTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzgsNy03aC0xQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIs'@; put 'MCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPicsc29saWRCYWRnZWQ6JzxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCww'@; put 'LDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgs'@; put 'MCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVabS00LjA2LDMuMDgtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPid9XSx1bWU9WyJjYWxlbmRh'@; put 'ciIse291dGxpbmU6JzxwYXRoIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2'@; put 'WiIvPjxyZWN0IHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0'@; put 'PSIyIi8+PHJlY3QgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiLz48cmVjdCB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBo'@; put 'ZWlnaHQ9IjIiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPjxyZWN0IHg9IjEzIiB5PSI2IiB3'@; put 'aWR0aD0iMTAiIGhlaWdodD0iMiIvPicsb3V0bGluZUFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1'@; put 'LjM4WiIvPjxyZWN0IHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhl'@; put 'aWdodD0iMiIvPjxyZWN0IHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cG9s'@; put 'eWdvbiBwb2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPicsb3V0bGluZUJhZGdlZDonPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwx'@; put 'Ljc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiLz48cmVjdCB4PSI4IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjIwIiB5PSIxNCIgd2lkdGg9IjIi'@; put 'IGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjE5IiB3aWR0aD0i'@; put 'MiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMjQiIHdpZHRo'@; put 'PSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAs'@; put 'MCwxLDIyLjUsNloiLz4nLHNvbGlkOic8cGF0aCBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEu'@; put 'NzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJa'@; put 'bTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCww'@; put 'LDAsMjYsMTBaIi8+Jyxzb2xpZEFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwz'@; put 'Ljc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01'@; put 'SDI2VjE5aDJaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPicsc29saWRCYWRnZWQ6JzxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0'@; put 'aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1'@; put 'LDAsMCwxLDMwLDEzLjVaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEwSDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVI'@; put 'MjZWMTRoMloiLz4nfV0sZG1lPVsiZXllLWhpZGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0'@; put 'LS4wNkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiLz48cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0u'@; put 'NDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiLz48cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwx'@; put 'OGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAs'@; put 'MSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiLz4nLHNvbGlkOic8cGF0aCBkPSJN'@; put 'MTguMzcsMTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIvPjxwYXRoIGQ9Ik0zNC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCww'@; put 'LDAtNS4yNC44NUwxNC44NCwxMGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQyYTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIvPjxwYXRoIGQ9Ik00Ljg3LDUuNzhs'@; put 'NC40Niw0LjQ2YTE5LjUyLDE5LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm04LjMsOC4zYTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42'@; put 'LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIvPid9XSxobWU9WyJleWUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEw'@; put 'UzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIs'@; put 'MzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiLz48cGF0aCBkPSJNMTguMDksMTEuMTdBNi44Niw2Ljg2LDAsMSwwLDI1LDE4LDYuODYsNi44NiwwLDAsMCwxOC4wOSwxMS4xN1ptMCwxMS43MkE0Ljg2LDQuODYsMCwxLDEsMjMsMTgsNC44Nyw0Ljg3LDAsMCwx'@; put 'LDE4LjA5LDIyLjg5WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zMy42MiwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0x'@; put 'Ny44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjksOC4xNy04LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIvPjxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiLz4nfV0s'@; put 'Zm1lPVsiZWxsaXBzaXMtdmVydGljYWwiLHtvdXRsaW5lOic8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiLz4nLG91dGxpbmVCYWRnZWQ6JzxjaXJjbGUgY3g9'@; put 'IjE4IiBjeT0iNC45IiByPSIyLjkiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIuOSIvPid9XSxwbWU9WyJ2aWV3LWNvbHVtbnMiLHtvdXRsaW5lOic8cGF0aCBkPSJNMzEsNUg1QTIsMiwwLDAsMCwzLDdWMjlhMiwyLDAs'@; put 'MCwwLDIsMkgzMWEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMxLDVaTTEzLDI5SDVWN2g4Wm0xMCwwSDE1VjdoOFoiLz4nfV0sZ21lPVsiYXJyb3ciLHtvdXRsaW5lOic8cGF0aCBkPSJNMjcuNjYsMTUuNjEsMTgsNiw4LjM0LDE1LjYxQTEsMSwwLDEsMCw5Ljc1LDE3TDE3LDkuODFWMjgu'@; put 'OTRhMSwxLDAsMSwwLDIsMFY5LjgxTDI2LjI1LDE3YTEsMSwwLDAsMCwxLjQxLTEuNDJaIi8+J31dLElLPVsidGltZXMiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTkuNDEsMThsOC4yOS04LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksOS43MSw4LjI5QTEsMSwwLDAsMCw4LjI5LDku'@; put 'NzFMMTYuNTksMTgsOC4yOSwyNi4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDguMjksOC4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPid9XSxtbWU9WyJzdGVwLWZvcndhcmQtMiIse291dGxpbmU6JzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2'@; put 'LjUxLDE4LDcuMTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIvPjxwYXRoIGQ9Ik0yNi40OSw1YTEuNywxLjcsMCwwLDAtMS43LDEuN1YyOS4zYTEuNywxLjcsMCwwLDAsMy40LDBWNi43QTEuNywx'@; put 'LjcsMCwwLDAsMjYuNDksNVoiLz4nfV0sTEs9WyJhbmdsZS1kb3VibGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFa'@; put 'Ii8+PHBhdGggZD0iTTI5LDMwLjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDE5LjgzLDcuNzEsMzAuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCwxNywyOS43MSwyOC43MUExLDEsMCwwLDEsMjksMzAuNDFaIi8+J31dLHZtZT1bImZpbHRlci1ncmlkLWNpcmNsZSIse291dGxpbmU6JzxwYXRo'@; put 'IGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFh'@; put 'MS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPjxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs'@; put 'MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz48cGF0aCBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40'@; put 'MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+J31dLF9tZT1bImZpbHRlci1ncmlkIix7b3V0bGluZTonPHBhdGggZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43TDEw'@; put 'LjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+Jyxzb2xpZDon'@; put 'PHBhdGggZD0iTTgsMTF2MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2Ni44OWEuNS41LDAsMCwwLC4yOC40NWwzLjk1LDEuNDFhLjUuNSwwLDAsMCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAs'@; put 'MCwuMTUtLjM1VjExWiIvPid9XSxSSz1bImluZm8tY2lyY2xlIix7b3V0bGluZTonPGNpcmNsZSBjeD0iMTcuOTMiIGN5PSIxMS45IiByPSIxLjQiLz48cGF0aCBkPSJNMjEsMjNIMTlWMTVIMTZhMSwxLDAsMCwwLDAsMmgxdjZIMTVhMSwxLDAsMSwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIi8+'@; put 'PHBhdGggZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMiw1LjE1YTIs'@; put 'MiwwLDEsMSwyLDJBMiwyLDAsMCwxLDE1LjksMTEuMTVaTTIzLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMSwxLDAtMmgyVjE3SDE2YTEsMSwwLDAsMSwwLTJoNHY4aDJBMSwxLDAsMCwxLDIzLDI0WiIvPid9XSxibWU9WyJleGNsYW1hdGlvbi10cmlhbmdsZSIse291dGxpbmU6JzxwYXRo'@; put 'IGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEuMywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+PGNpcmNsZSBjeD0iMTcuOTUiIGN5PSIyNC4yNyIgcj0iMS41Ii8+PHBhdGggZD0iTTMwLjMzLDI1LjU0LDIwLjU5LDcuNmEzLDMsMCww'@; put 'LDAtNS4yNywwTDUuNTcsMjUuNTRBMywzLDAsMCwwLDguMjEsMzBIMjcuNjlhMywzLDAsMCwwLDIuNjQtNC40M1ptLTEuNzgsMS45NGExLDEsMCwwLDEtLjg2LjQ5SDguMjFhMSwxLDAsMCwxLS44OC0xLjQ4TDE3LjA3LDguNTVhMSwxLDAsMCwxLDEuNzYsMGw5Ljc0LDE3Ljk0QTEsMSwwLDAs'@; put 'MSwyOC41NSwyNy40OFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWk0xNi40NiwxMi43NGExLjQ5LDEuNDksMCwwLDEsMywwdjYu'@; put 'ODlhMS40OSwxLjQ5LDAsMSwxLTMsMFpNMTgsMjYuMjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjYuMjVaIi8+J31dLHltZT1bImNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwz'@; put 'NFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFoiLz4nfV0sd21lPVsiZG90LWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOCwxMWE3LDcsMCwx'@; put 'LDEtNyw3LDcsNywwLDAsMSw3LTciLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz4nfV0sT0s9WyJlcnJvci1zdGFuZGFyZCIse291dGxpbmU6JzxjaXJjbGUgY3g9'@; put 'IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz48cGF0aCBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+PHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0'@; put 'LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4LDIuMWExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOCwyLjFaTTE2LjYsOC44YTEuNCwxLjQsMCwwLDEsMi44LDB2MTJhMS40LDEuNCwwLDAsMS0yLjgsMFpNMTgsMjguNmExLjgsMS44'@; put 'LDAsMSwxLDEuOC0xLjhBMS44LDEuOCwwLDAsMSwxOCwyOC42WiIvPid9XSxDbWU9WyJzdWNjZXNzLXN0YW5kYXJkIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwx'@; put 'OCwzMloiLz48cGF0aCBkPSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYs'@; put 'MCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+J31dO2NsYXNzIE1tZSBleHRlbmRzIGVle2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIoKX1zY2hlZHVsZShs'@; put 'LGE9MCl7cmV0dXJuIHRoaXN9fWNvbnN0ICR4PXtzZXRJbnRlcnZhbChjLGwsLi4uYSl7Y29uc3R7ZGVsZWdhdGU6ZH09JHg7cmV0dXJuIGQ/LnNldEludGVydmFsP2Quc2V0SW50ZXJ2YWwoYyxsLC4uLmEpOnNldEludGVydmFsKGMsbCwuLi5hKX0sY2xlYXJJbnRlcnZhbChjKXtjb25zdHtk'@; put 'ZWxlZ2F0ZTpsfT0keDtyZXR1cm4obD8uY2xlYXJJbnRlcnZhbHx8Y2xlYXJJbnRlcnZhbCkoYyl9LGRlbGVnYXRlOnZvaWQgMH07Y2xhc3MgTlAgZXh0ZW5kcyBNbWV7Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLGEpLHRoaXMuc2NoZWR1bGVyPWwsdGhpcy53b3JrPWEsdGhpcy5wZW5kaW5n'@; put 'PSExfXNjaGVkdWxlKGwsYT0wKXt2YXIgZDtpZih0aGlzLmNsb3NlZClyZXR1cm4gdGhpczt0aGlzLnN0YXRlPWw7Y29uc3QgaD10aGlzLmlkLGY9dGhpcy5zY2hlZHVsZXI7cmV0dXJuIG51bGwhPWgmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQoZixoLGEpKSx0aGlzLnBlbmRpbmc9'@; put 'ITAsdGhpcy5kZWxheT1hLHRoaXMuaWQ9bnVsbCE9PShkPXRoaXMuaWQpJiZ2b2lkIDAhPT1kP2Q6dGhpcy5yZXF1ZXN0QXN5bmNJZChmLHRoaXMuaWQsYSksdGhpc31yZXF1ZXN0QXN5bmNJZChsLGEsZD0wKXtyZXR1cm4gJHguc2V0SW50ZXJ2YWwobC5mbHVzaC5iaW5kKGwsdGhpcyksZCl9'@; put 'cmVjeWNsZUFzeW5jSWQobCxhLGQ9MCl7aWYobnVsbCE9ZCYmdGhpcy5kZWxheT09PWQmJiExPT09dGhpcy5wZW5kaW5nKXJldHVybiBhO251bGwhPWEmJiR4LmNsZWFySW50ZXJ2YWwoYSl9ZXhlY3V0ZShsLGEpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBh'@; put 'IGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7Y29uc3QgZD10aGlzLl9leGVjdXRlKGwsYSk7aWYoZClyZXR1cm4gZDshMT09PXRoaXMucGVuZGluZyYmbnVsbCE9dGhpcy5pZCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlcix0aGlzLmlkLG51'@; put 'bGwpKX1fZXhlY3V0ZShsLGEpe2xldCBoLGQ9ITE7dHJ5e3RoaXMud29yayhsKX1jYXRjaChmKXtkPSEwLGg9Znx8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYoZClyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLGh9dW5zdWJzY3JpYmUoKXtpZigh'@; put 'dGhpcy5jbG9zZWQpe2NvbnN0e2lkOmwsc2NoZWR1bGVyOmF9PXRoaXMse2FjdGlvbnM6ZH09YTt0aGlzLndvcms9dGhpcy5zdGF0ZT10aGlzLnNjaGVkdWxlcj1udWxsLHRoaXMucGVuZGluZz0hMSxxKGQsdGhpcyksbnVsbCE9bCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChhLGws'@; put 'bnVsbCkpLHRoaXMuZGVsYXk9bnVsbCxzdXBlci51bnN1YnNjcmliZSgpfX19Y29uc3QgVlA9e25vdzooKT0+KFZQLmRlbGVnYXRlfHxEYXRlKS5ub3coKSxkZWxlZ2F0ZTp2b2lkIDB9O2NsYXNzIHJie2NvbnN0cnVjdG9yKGwsYT1yYi5ub3cpe3RoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj1s'@; put 'LHRoaXMubm93PWF9c2NoZWR1bGUobCxhPTAsZCl7cmV0dXJuIG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxsKS5zY2hlZHVsZShkLGEpfX1yYi5ub3c9VlAubm93O2NsYXNzIEJQIGV4dGVuZHMgcmJ7Y29uc3RydWN0b3IobCxhPXJiLm5vdyl7c3VwZXIobCxhKSx0aGlzLmFj'@; put 'dGlvbnM9W10sdGhpcy5fYWN0aXZlPSExfWZsdXNoKGwpe2NvbnN0e2FjdGlvbnM6YX09dGhpcztpZih0aGlzLl9hY3RpdmUpcmV0dXJuIHZvaWQgYS5wdXNoKGwpO2xldCBkO3RoaXMuX2FjdGl2ZT0hMDtkb3tpZihkPWwuZXhlY3V0ZShsLnN0YXRlLGwuZGVsYXkpKWJyZWFrfXdoaWxlKGw9'@; put 'YS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsZCl7Zm9yKDtsPWEuc2hpZnQoKTspbC51bnN1YnNjcmliZSgpO3Rocm93IGR9fX1jb25zdCBpYj1uZXcgQlAoTlApLHhtZT1pYjtmdW5jdGlvbiBmOChjLGw9aWIpe3JldHVybiBYZSgoYSxkKT0+e2xldCBoPW51bGwsZj1udWxsLF89bnVs'@; put 'bDtjb25zdCBUPSgpPT57aWYoaCl7aC51bnN1YnNjcmliZSgpLGg9bnVsbDtjb25zdCBpZT1mO2Y9bnVsbCxkLm5leHQoaWUpfX07ZnVuY3Rpb24gVygpe2NvbnN0IGllPV8rYyxwZT1sLm5vdygpO2lmKHBlPGllKXJldHVybiBoPXRoaXMuc2NoZWR1bGUodm9pZCAwLGllLXBlKSx2b2lkIGQu'@; put 'YWRkKGgpO1QoKX1hLnN1YnNjcmliZShVZShkLGllPT57Zj1pZSxfPWwubm93KCksaHx8KGg9bC5zY2hlZHVsZShXLGMpLGQuYWRkKGgpKX0sKCk9PntUKCksZC5jb21wbGV0ZSgpfSx2b2lkIDAsKCk9PntmPWg9bnVsbH0pKX0pfWZ1bmN0aW9uIGFoKGMpe3JldHVybiBYZSgobCxhKT0+e0ty'@; put 'KGMpLnN1YnNjcmliZShVZShhLCgpPT5hLmNvbXBsZXRlKCksRykpLCFhLmNsb3NlZCYmbC5zdWJzY3JpYmUoYSl9KX1mdW5jdGlvbiBqUChjPTAsbCxhPXhtZSl7bGV0IGQ9LTE7cmV0dXJuIG51bGwhPWwmJihSYyhsKT9hPWw6ZD1sKSxuZXcgS2UoaD0+e2xldCBmPWZ1bmN0aW9uIGttZShj'@; put 'KXtyZXR1cm4gYyBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihjKX0oYyk/K2MtYS5ub3coKTpjO2Y8MCYmKGY9MCk7bGV0IF89MDtyZXR1cm4gYS5zY2hlZHVsZShmdW5jdGlvbigpe2guY2xvc2VkfHwoaC5uZXh0KF8rKyksMDw9ZD90aGlzLnNjaGVkdWxlKHZvaWQgMCxkKTpoLmNvbXBsZXRl'@; put 'KCkpfSxmKX0pfWNvbnN0IFRtZT1bImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiXSxEbWU9WyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLEltZT1bIm9uIiwib2ZmIl07ZnVuY3Rpb24gbjIoYyxsLGEsZCl7aWYoWShhKSYmKGQ9YSxhPXZvaWQgMCksZCly'@; put 'ZXR1cm4gbjIoYyxsLGEpLnBpcGUoSE8oZCkpO2NvbnN0W2gsZl09ZnVuY3Rpb24gT21lKGMpe3JldHVybiBZKGMuYWRkRXZlbnRMaXN0ZW5lcikmJlkoYy5yZW1vdmVFdmVudExpc3RlbmVyKX0oYyk/RG1lLm1hcChfPT5UPT5jW19dKGwsVCxhKSk6ZnVuY3Rpb24gTG1lKGMpe3JldHVybiBZ'@; put 'KGMuYWRkTGlzdGVuZXIpJiZZKGMucmVtb3ZlTGlzdGVuZXIpfShjKT9UbWUubWFwKEZLKGMsbCkpOmZ1bmN0aW9uIFJtZShjKXtyZXR1cm4gWShjLm9uKSYmWShjLm9mZil9KGMpP0ltZS5tYXAoRksoYyxsKSk6W107aWYoIWgmJlJuKGMpKXJldHVybiB5cihfPT5uMihfLGwsYSkpKEtyKGMp'@; put 'KTtpZighaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGV2ZW50IHRhcmdldCIpO3JldHVybiBuZXcgS2UoXz0+e2NvbnN0IFQ9KC4uLlcpPT5fLm5leHQoMTxXLmxlbmd0aD9XOldbMF0pO3JldHVybiBoKFQpLCgpPT5mKFQpfSl9ZnVuY3Rpb24gRksoYyxsKXtyZXR1cm4gYT0+ZD0+'@; put 'Y1thXShsLGQpfWNsYXNzIHF4IGV4dGVuZHMgYmV7Y29uc3RydWN0b3IobD0xLzAsYT0xLzAsZD1WUCl7c3VwZXIoKSx0aGlzLl9idWZmZXJTaXplPWwsdGhpcy5fd2luZG93VGltZT1hLHRoaXMuX3RpbWVzdGFtcFByb3ZpZGVyPWQsdGhpcy5fYnVmZmVyPVtdLHRoaXMuX2luZmluaXRlVGlt'@; put 'ZVdpbmRvdz0hMCx0aGlzLl9pbmZpbml0ZVRpbWVXaW5kb3c9YT09PTEvMCx0aGlzLl9idWZmZXJTaXplPU1hdGgubWF4KDEsbCksdGhpcy5fd2luZG93VGltZT1NYXRoLm1heCgxLGEpfW5leHQobCl7Y29uc3R7aXNTdG9wcGVkOmEsX2J1ZmZlcjpkLF9pbmZpbml0ZVRpbWVXaW5kb3c6aCxf'@; put 'dGltZXN0YW1wUHJvdmlkZXI6Zixfd2luZG93VGltZTpffT10aGlzO2F8fChkLnB1c2gobCksIWgmJmQucHVzaChmLm5vdygpK18pKSx0aGlzLl90cmltQnVmZmVyKCksc3VwZXIubmV4dChsKX1fc3Vic2NyaWJlKGwpe3RoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl90cmltQnVmZmVyKCk7'@; put 'Y29uc3QgYT10aGlzLl9pbm5lclN1YnNjcmliZShsKSx7X2luZmluaXRlVGltZVdpbmRvdzpkLF9idWZmZXI6aH09dGhpcyxmPWguc2xpY2UoKTtmb3IobGV0IF89MDtfPGYubGVuZ3RoJiYhbC5jbG9zZWQ7Xys9ZD8xOjIpbC5uZXh0KGZbX10pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXpl'@; put 'ZFN0YXR1c2VzKGwpLGF9X3RyaW1CdWZmZXIoKXtjb25zdHtfYnVmZmVyU2l6ZTpsLF90aW1lc3RhbXBQcm92aWRlcjphLF9idWZmZXI6ZCxfaW5maW5pdGVUaW1lV2luZG93Omh9PXRoaXMsZj0oaD8xOjIpKmw7aWYobDwxLzAmJmY8ZC5sZW5ndGgmJmQuc3BsaWNlKDAsZC5sZW5ndGgtZiks'@; put 'IWgpe2NvbnN0IF89YS5ub3coKTtsZXQgVD0wO2ZvcihsZXQgVz0xO1c8ZC5sZW5ndGgmJmRbV108PV87Vys9MilUPVc7VCYmZC5zcGxpY2UoMCxUKzEpfX19Y2xhc3MgSEt7fWNsYXNzIFBtZXt9Y29uc3QgQWY9IioiO2Z1bmN0aW9uIGExKGMsbCl7cmV0dXJue3R5cGU6NyxuYW1lOmMsZGVm'@; put 'aW5pdGlvbnM6bCxvcHRpb25zOnt9fX1mdW5jdGlvbiBydShjLGw9bnVsbCl7cmV0dXJue3R5cGU6NCxzdHlsZXM6bCx0aW1pbmdzOmN9fWZ1bmN0aW9uIE5LKGMsbD1udWxsKXtyZXR1cm57dHlwZToyLHN0ZXBzOmMsb3B0aW9uczpsfX1mdW5jdGlvbiBfcyhjKXtyZXR1cm57dHlwZTo2LHN0'@; put 'eWxlczpjLG9mZnNldDpudWxsfX1mdW5jdGlvbiBLeChjLGwsYSl7cmV0dXJue3R5cGU6MCxuYW1lOmMsc3R5bGVzOmwsb3B0aW9uczphfX1mdW5jdGlvbiBGbWUoYyl7cmV0dXJue3R5cGU6NSxzdGVwczpjfX1mdW5jdGlvbiBmYyhjLGwsYT1udWxsKXtyZXR1cm57dHlwZToxLGV4cHI6Yyxh'@; put 'bmltYXRpb246bCxvcHRpb25zOmF9fWNsYXNzIG9ie2NvbnN0cnVjdG9yKGw9MCxhPTApe3RoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uRG9uZUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnM9'@; put 'W10sdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fcG9zaXRpb249MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPWwrYX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRo'@; put 'aXMuX29uRG9uZUZucy5mb3JFYWNoKGw9PmwoKSksdGhpcy5fb25Eb25lRm5zPVtdKX1vblN0YXJ0KGwpe3RoaXMuX29yaWdpbmFsT25TdGFydEZucy5wdXNoKGwpLHRoaXMuX29uU3RhcnRGbnMucHVzaChsKX1vbkRvbmUobCl7dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnMucHVzaChsKSx0aGlz'@; put 'Ll9vbkRvbmVGbnMucHVzaChsKX1vbkRlc3Ryb3kobCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2gobCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWluaXQoKXt9cGxheSgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydCgpLHRoaXMudHJpZ2dlck1pY3JvdGFz'@; put 'aygpKSx0aGlzLl9zdGFydGVkPSEwfXRyaWdnZXJNaWNyb3Rhc2soKXtxdWV1ZU1pY3JvdGFzaygoKT0+dGhpcy5fb25GaW5pc2goKSl9X29uU3RhcnQoKXt0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2gobD0+bCgpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdfXBhdXNlKCl7fXJlc3RhcnQoKXt9Zmlu'@; put 'aXNoKCl7dGhpcy5fb25GaW5pc2goKX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuaGFzU3RhcnRlZCgpfHx0aGlzLl9vblN0YXJ0KCksdGhpcy5maW5pc2goKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRGVz'@; put 'dHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLl9zdGFydGVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX29uU3RhcnRGbnM9dGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zLHRoaXMuX29uRG9uZUZucz10aGlzLl9vcmlnaW5hbE9uRG9uZUZuc31zZXRQb3NpdGlvbihsKXt0aGlzLl9wb3NpdGlv'@; put 'bj10aGlzLnRvdGFsVGltZT9sKnRoaXMudG90YWxUaW1lOjF9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy50b3RhbFRpbWU/dGhpcy5fcG9zaXRpb24vdGhpcy50b3RhbFRpbWU6MX10cmlnZ2VyQ2FsbGJhY2sobCl7Y29uc3QgYT0ic3RhcnQiPT1sP3RoaXMuX29uU3RhcnRGbnM6dGhpcy5f'@; put 'b25Eb25lRm5zO2EuZm9yRWFjaChkPT5kKCkpLGEubGVuZ3RoPTB9fWNsYXNzIFZLe2NvbnN0cnVjdG9yKGwpe3RoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX29u'@; put 'RGVzdHJveUZucz1bXSx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPTAsdGhpcy5wbGF5ZXJzPWw7bGV0IGE9MCxkPTAsaD0wO2NvbnN0IGY9dGhpcy5wbGF5ZXJzLmxlbmd0aDswPT1mP3F1ZXVlTWljcm90YXNrKCgpPT50aGlzLl9vbkZpbmlzaCgpKTp0aGlzLnBsYXll'@; put 'cnMuZm9yRWFjaChfPT57Xy5vbkRvbmUoKCk9PnsrK2E9PWYmJnRoaXMuX29uRmluaXNoKCl9KSxfLm9uRGVzdHJveSgoKT0+eysrZD09ZiYmdGhpcy5fb25EZXN0cm95KCl9KSxfLm9uU3RhcnQoKCk9PnsrK2g9PWYmJnRoaXMuX29uU3RhcnQoKX0pfSksdGhpcy50b3RhbFRpbWU9dGhpcy5w'@; put 'bGF5ZXJzLnJlZHVjZSgoXyxUKT0+TWF0aC5tYXgoXyxULnRvdGFsVGltZSksMCl9X29uRmluaXNoKCl7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRG9uZUZucz1bXSl9aW5pdCgpe3RoaXMucGxheWVy'@; put 'cy5mb3JFYWNoKGw9PmwuaW5pdCgpKX1vblN0YXJ0KGwpe3RoaXMuX29uU3RhcnRGbnMucHVzaChsKX1fb25TdGFydCgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2gobD0+bCgpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdKX1vbkRv'@; put 'bmUobCl7dGhpcy5fb25Eb25lRm5zLnB1c2gobCl9b25EZXN0cm95KGwpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKGwpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1wbGF5KCl7dGhpcy5wYXJlbnRQbGF5ZXJ8fHRoaXMuaW5pdCgpLHRoaXMuX29uU3RhcnQoKSx0aGlzLnBs'@; put 'YXllcnMuZm9yRWFjaChsPT5sLnBsYXkoKSl9cGF1c2UoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLnBhdXNlKCkpfXJlc3RhcnQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLnJlc3RhcnQoKSl9ZmluaXNoKCl7dGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaChs'@; put 'PT5sLmZpbmlzaCgpKX1kZXN0cm95KCl7dGhpcy5fb25EZXN0cm95KCl9X29uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9vbkZpbmlzaCgpLHRoaXMucGxheWVycy5mb3JFYWNoKGw9PmwuZGVzdHJveSgpKSx0aGlzLl9vbkRlc3Ryb3lGbnMu'@; put 'Zm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLnJlc2V0KCkpLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKGwpe2NvbnN0IGE9bCp0aGlz'@; put 'LnRvdGFsVGltZTt0aGlzLnBsYXllcnMuZm9yRWFjaChkPT57Y29uc3QgaD1kLnRvdGFsVGltZT9NYXRoLm1pbigxLGEvZC50b3RhbFRpbWUpOjE7ZC5zZXRQb3NpdGlvbihoKX0pfWdldFBvc2l0aW9uKCl7Y29uc3QgbD10aGlzLnBsYXllcnMucmVkdWNlKChhLGQpPT5udWxsPT09YXx8ZC50'@; put 'b3RhbFRpbWU+YS50b3RhbFRpbWU/ZDphLG51bGwpO3JldHVybiBudWxsIT1sP2wuZ2V0UG9zaXRpb24oKTowfWJlZm9yZURlc3Ryb3koKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT57bC5iZWZvcmVEZXN0cm95JiZsLmJlZm9yZURlc3Ryb3koKX0pfXRyaWdnZXJDYWxsYmFjayhsKXtjb25z'@; put 'dCBhPSJzdGFydCI9PWw/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7YS5mb3JFYWNoKGQ9PmQoKSksYS5sZW5ndGg9MH19bGV0IEJLPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9yZW5kZXJlcj1hLHRoaXMuX2VsZW1lbnRSZWY9ZCx0aGlzLm9uQ2hhbmdl'@; put 'PWg9Pnt9LHRoaXMub25Ub3VjaGVkPSgpPT57fX1zZXRQcm9wZXJ0eShhLGQpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxhLGQpfXJlZ2lzdGVyT25Ub3VjaGVkKGEpe3RoaXMub25Ub3VjaGVkPWF9cmVnaXN0ZXJPbkNoYW5nZShh'@; put 'KXt0aGlzLm9uQ2hhbmdlPWF9c2V0RGlzYWJsZWRTdGF0ZShhKXt0aGlzLnNldFByb3BlcnR5KCJkaXNhYmxlZCIsYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEZvKSx0dChOaSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjfSksY30pKCks'@; put 'TjU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEJLe31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgbDtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuKGx8fChsPXhhKGMpKSkoZHx8Yyl9fSgpLGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsZmVhdHVyZXM6W2VvXX0pLGN9KSgpO2NvbnN0'@; put 'IGxoPW5ldyBTaSgiTmdWYWx1ZUFjY2Vzc29yIiksTm1lPXtwcm92aWRlOmxoLHVzZUV4aXN0aW5nOklzKCgpPT5TMCksbXVsdGk6ITB9O2xldCBTMD0oKCk9PntjbGFzcyBjIGV4dGVuZHMgTjV7d3JpdGVWYWx1ZShhKXt0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIixhKX19cmV0dXJuIGMu'@; put 'XHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD14YShjKSkpKGR8fGMpfX0oKSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5w'@; put 'dXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoImNoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25DaGFuZ2UoZi50YXJnZXQu'@; put 'Y2hlY2tlZCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gZC5vblRvdWNoZWQoKX0pfSxmZWF0dXJlczpbdGkoW05tZV0pLGVvXX0pLGN9KSgpO2NvbnN0IFZtZT17cHJvdmlkZTpsaCx1c2VFeGlzdGluZzpJcygoKT0+V2EpLG11bHRpOiEwfSxqbWU9bmV3IFNpKCJDb21wb3NpdGlvbkV2'@; put 'ZW50TW9kZSIpO2xldCBXYT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgQkt7Y29uc3RydWN0b3IoYSxkLGgpe3N1cGVyKGEsZCksdGhpcy5fY29tcG9zaXRpb25Nb2RlPWgsdGhpcy5fY29tcG9zaW5nPSExLG51bGw9PXRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmKHRoaXMuX2NvbXBvc2l0aW9uTW9k'@; put 'ZT0hZnVuY3Rpb24gQm1lKCl7Y29uc3QgYz1hcCgpP2FwKCkuZ2V0VXNlckFnZW50KCk6IiI7cmV0dXJuL2FuZHJvaWQgKFxkKykvLnRlc3QoYy50b0xvd2VyQ2FzZSgpKX0oKSl9d3JpdGVWYWx1ZShhKXt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIsYT8/IiIpfV9oYW5kbGVJbnB1dChhKXso'@; put 'IXRoaXMuX2NvbXBvc2l0aW9uTW9kZXx8dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYhdGhpcy5fY29tcG9zaW5nKSYmdGhpcy5vbkNoYW5nZShhKX1fY29tcG9zaXRpb25TdGFydCgpe3RoaXMuX2NvbXBvc2luZz0hMH1fY29tcG9zaXRpb25FbmQoYSl7dGhpcy5fY29tcG9zaW5nPSExLHRoaXMu'@; put 'X2NvbXBvc2l0aW9uTW9kZSYmdGhpcy5vbkNoYW5nZShhKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoRm8pLHR0KE5pKSx0dChqbWUsOCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJpbnB1dCIsImZvcm1Db250cm9s'@; put 'TmFtZSIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsIm5nTW9kZWwiLCIiLDMs'@; put 'InR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJuZ01vZGVsIiwiIl0sWyIiLCJuZ0RlZmF1bHRDb250cm9sIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoImlucHV0IixmdW5jdGlvbihmKXtyZXR1cm4gZC5faGFuZGxlSW5wdXQoZi50YXJnZXQudmFsdWUp'@; put 'fSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25Ub3VjaGVkKCl9KSgiY29tcG9zaXRpb25zdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4gZC5fY29tcG9zaXRpb25TdGFydCgpfSkoImNvbXBvc2l0aW9uZW5kIixmdW5jdGlvbihmKXtyZXR1cm4gZC5fY29tcG9zaXRpb25FbmQoZi50YXJn'@; put 'ZXQudmFsdWUpfSl9LGZlYXR1cmVzOlt0aShbVm1lXSksZW9dfSksY30pKCk7Y29uc3QgaXU9bmV3IFNpKCJOZ1ZhbGlkYXRvcnMiKSx5cD1uZXcgU2koIk5nQXN5bmNWYWxpZGF0b3JzIik7ZnVuY3Rpb24gS0soYyl7cmV0dXJuIG51bGwhPWN9ZnVuY3Rpb24gWEsoYyl7cmV0dXJuIHY1KGMp'@; put 'P2VhKGMpOmN9ZnVuY3Rpb24gSksoYyl7bGV0IGw9e307cmV0dXJuIGMuZm9yRWFjaChhPT57bD1udWxsIT1hP3suLi5sLC4uLmF9Omx9KSwwPT09T2JqZWN0LmtleXMobCkubGVuZ3RoP251bGw6bH1mdW5jdGlvbiBRSyhjLGwpe3JldHVybiBsLm1hcChhPT5hKGMpKX1mdW5jdGlvbiBlWChj'@; put 'KXtyZXR1cm4gYy5tYXAobD0+ZnVuY3Rpb24gVW1lKGMpe3JldHVybiFjLnZhbGlkYXRlfShsKT9sOmE9PmwudmFsaWRhdGUoYSkpfWZ1bmN0aW9uIFVQKGMpe3JldHVybiBudWxsIT1jP2Z1bmN0aW9uIHRYKGMpe2lmKCFjKXJldHVybiBudWxsO2NvbnN0IGw9Yy5maWx0ZXIoS0spO3JldHVy'@; put 'biAwPT1sLmxlbmd0aD9udWxsOmZ1bmN0aW9uKGEpe3JldHVybiBKSyhRSyhhLGwpKX19KGVYKGMpKTpudWxsfWZ1bmN0aW9uIFpQKGMpe3JldHVybiBudWxsIT1jP2Z1bmN0aW9uIG5YKGMpe2lmKCFjKXJldHVybiBudWxsO2NvbnN0IGw9Yy5maWx0ZXIoS0spO3JldHVybiAwPT1sLmxlbmd0'@; put 'aD9udWxsOmZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbiBIbWUoLi4uYyl7Y29uc3QgbD1PYyhjKSx7YXJnczphLGtleXM6ZH09UkcoYyksaD1uZXcgS2UoZj0+e2NvbnN0e2xlbmd0aDpffT1hO2lmKCFfKXJldHVybiB2b2lkIGYuY29tcGxldGUoKTtjb25zdCBUPW5ldyBBcnJheShfKTts'@; put 'ZXQgVz1fLGllPV87Zm9yKGxldCBwZT0wO3BlPF87cGUrKyl7bGV0IHdlPSExO0tyKGFbcGVdKS5zdWJzY3JpYmUoVWUoZixFZT0+e3dlfHwod2U9ITAsaWUtLSksVFtwZV09RWV9LCgpPT5XLS0sdm9pZCAwLCgpPT57KCFXfHwhd2UpJiYoaWV8fGYubmV4dChkP09HKGQsVCk6VCksZi5jb21w'@; put 'bGV0ZSgpKX0pKX19KTtyZXR1cm4gbD9oLnBpcGUoSE8obCkpOmh9KFFLKGEsbCkubWFwKFhLKSkucGlwZShNZShKSykpfX0oZVgoYykpOm51bGx9ZnVuY3Rpb24gclgoYyxsKXtyZXR1cm4gbnVsbD09PWM/W2xdOkFycmF5LmlzQXJyYXkoYyk/Wy4uLmMsbF06W2MsbF19ZnVuY3Rpb24gWVAo'@; put 'Yyl7cmV0dXJuIGM/QXJyYXkuaXNBcnJheShjKT9jOltjXTpbXX1mdW5jdGlvbiBKeChjLGwpe3JldHVybiBBcnJheS5pc0FycmF5KGMpP2MuaW5jbHVkZXMobCk6Yz09PWx9ZnVuY3Rpb24gc1goYyxsKXtjb25zdCBhPVlQKGwpO3JldHVybiBZUChjKS5mb3JFYWNoKGg9PntKeChhLGgpfHxh'@; put 'LnB1c2goaCl9KSxhfWZ1bmN0aW9uIGFYKGMsbCl7cmV0dXJuIFlQKGwpLmZpbHRlcihhPT4hSngoYyxhKSl9Y2xhc3MgbFh7Y29uc3RydWN0b3IoKXt0aGlzLl9yYXdWYWxpZGF0b3JzPVtdLHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1bXSx0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3M9W119'@; put 'Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudmFsdWU6bnVsbH1nZXQgdmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWxpZDpudWxsfWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuaW52YWxp'@; put 'ZDpudWxsfWdldCBwZW5kaW5nKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucGVuZGluZzpudWxsfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmRpc2FibGVkOm51bGx9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3Ro'@; put 'aXMuY29udHJvbC5lbmFibGVkOm51bGx9Z2V0IGVycm9ycygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVycm9yczpudWxsfWdldCBwcmlzdGluZSgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnByaXN0aW5lOm51bGx9Z2V0IGRpcnR5KCl7cmV0dXJuIHRo'@; put 'aXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlydHk6bnVsbH1nZXQgdG91Y2hlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnRvdWNoZWQ6bnVsbH1nZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuc3RhdHVzOm51bGx9Z2V0IHVudG91Y2hl'@; put 'ZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnVudG91Y2hlZDpudWxsfWdldCBzdGF0dXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlczpudWxsfWdldCB2YWx1ZUNoYW5nZXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3Ro'@; put 'aXMuY29udHJvbC52YWx1ZUNoYW5nZXM6bnVsbH1nZXQgcGF0aCgpe3JldHVybiBudWxsfV9zZXRWYWxpZGF0b3JzKGwpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9bHx8W10sdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbj1VUCh0aGlzLl9yYXdWYWxpZGF0b3JzKX1fc2V0QXN5bmNWYWxpZGF0b3Jz'@; put 'KGwpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1sfHxbXSx0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49WlAodGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzKX1nZXQgdmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm58fG51bGx9Z2V0IGFzeW5jVmFsaWRh'@; put 'dG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbnx8bnVsbH1fcmVnaXN0ZXJPbkRlc3Ryb3kobCl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLnB1c2gobCl9X2ludm9rZU9uRGVzdHJveUNhbGxiYWNrcygpe3RoaXMuX29uRGVzdHJveUNhbGxiYWNrcy5mb3JFYWNo'@; put 'KGw9PmwoKSksdGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzPVtdfXJlc2V0KGw9dm9pZCAwKXt0aGlzLmNvbnRyb2wmJnRoaXMuY29udHJvbC5yZXNldChsKX1oYXNFcnJvcihsLGEpe3JldHVybiEhdGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wuaGFzRXJyb3IobCxhKX1nZXRFcnJvcihsLGEp'@; put 'e3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmdldEVycm9yKGwsYSk6bnVsbH19Y2xhc3MganUgZXh0ZW5kcyBsWHtnZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiBudWxsfWdldCBwYXRoKCl7cmV0dXJuIG51bGx9fWNsYXNzIHp1IGV4dGVuZHMgbFh7Y29uc3RydWN0b3IoKXtz'@; put 'dXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3BhcmVudD1udWxsLHRoaXMubmFtZT1udWxsLHRoaXMudmFsdWVBY2Nlc3Nvcj1udWxsfX1jbGFzcyBjWHtjb25zdHJ1Y3RvcihsKXt0aGlzLl9jZD1sfWdldCBpc1RvdWNoZWQoKXtyZXR1cm4hIXRoaXMuX2NkPy5jb250cm9sPy50b3VjaGVkfWdl'@; put 'dCBpc1VudG91Y2hlZCgpe3JldHVybiEhdGhpcy5fY2Q/LmNvbnRyb2w/LnVudG91Y2hlZH1nZXQgaXNQcmlzdGluZSgpe3JldHVybiEhdGhpcy5fY2Q/LmNvbnRyb2w/LnByaXN0aW5lfWdldCBpc0RpcnR5KCl7cmV0dXJuISF0aGlzLl9jZD8uY29udHJvbD8uZGlydHl9Z2V0IGlzVmFsaWQo'@; put 'KXtyZXR1cm4hIXRoaXMuX2NkPy5jb250cm9sPy52YWxpZH1nZXQgaXNJbnZhbGlkKCl7cmV0dXJuISF0aGlzLl9jZD8uY29udHJvbD8uaW52YWxpZH1nZXQgaXNQZW5kaW5nKCl7cmV0dXJuISF0aGlzLl9jZD8uY29udHJvbD8ucGVuZGluZ31nZXQgaXNTdWJtaXR0ZWQoKXtyZXR1cm4hIXRo'@; put 'aXMuX2NkPy5zdWJtaXR0ZWR9fWxldCBCcz0oKCk9PntjbGFzcyBjIGV4dGVuZHMgY1h7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KHp1LDIpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3Rv'@; put 'cnM6W1siIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyIiLCJuZ01vZGVsIiwiIl0sWyIiLCJmb3JtQ29udHJvbCIsIiJdXSxob3N0VmFyczoxNCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJuZy11bnRvdWNoZWQiLGQuaXNVbnRvdWNoZWQpKCJuZy10b3VjaGVkIixkLmlz'@; put 'VG91Y2hlZCkoIm5nLXByaXN0aW5lIixkLmlzUHJpc3RpbmUpKCJuZy1kaXJ0eSIsZC5pc0RpcnR5KSgibmctdmFsaWQiLGQuaXNWYWxpZCkoIm5nLWludmFsaWQiLGQuaXNJbnZhbGlkKSgibmctcGVuZGluZyIsZC5pc1BlbmRpbmcpfSxmZWF0dXJlczpbZW9dfSksY30pKCksd3A9KCgpPT57'@; put 'Y2xhc3MgYyBleHRlbmRzIGNYe2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChqdSwxMCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJmb3JtR3JvdXBOYW1lIiwiIl0sWyIi'@; put 'LCJmb3JtQXJyYXlOYW1lIiwiIl0sWyIiLCJuZ01vZGVsR3JvdXAiLCIiXSxbIiIsImZvcm1Hcm91cCIsIiJdLFsiZm9ybSIsMywibmdOb0Zvcm0iLCIiXSxbIiIsIm5nRm9ybSIsIiJdXSxob3N0VmFyczoxNixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJuZy11bnRvdWNo'@; put 'ZWQiLGQuaXNVbnRvdWNoZWQpKCJuZy10b3VjaGVkIixkLmlzVG91Y2hlZCkoIm5nLXByaXN0aW5lIixkLmlzUHJpc3RpbmUpKCJuZy1kaXJ0eSIsZC5pc0RpcnR5KSgibmctdmFsaWQiLGQuaXNWYWxpZCkoIm5nLWludmFsaWQiLGQuaXNJbnZhbGlkKSgibmctcGVuZGluZyIsZC5pc1BlbmRp'@; put 'bmcpKCJuZy1zdWJtaXR0ZWQiLGQuaXNTdWJtaXR0ZWQpfSxmZWF0dXJlczpbZW9dfSksY30pKCk7Y29uc3Qgc2I9IlZBTElEIixlRT0iSU5WQUxJRCIscDg9IlBFTkRJTkciLGFiPSJESVNBQkxFRCI7ZnVuY3Rpb24gJFAoYyl7cmV0dXJuKHRFKGMpP2MudmFsaWRhdG9yczpjKXx8bnVsbH1m'@; put 'dW5jdGlvbiBxUChjLGwpe3JldHVybih0RShsKT9sLmFzeW5jVmFsaWRhdG9yczpjKXx8bnVsbH1mdW5jdGlvbiB0RShjKXtyZXR1cm4gbnVsbCE9YyYmIUFycmF5LmlzQXJyYXkoYykmJiJvYmplY3QiPT10eXBlb2YgY31jbGFzcyBmWHtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuX3BlbmRpbmdE'@; put 'aXJ0eT0hMSx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITEsdGhpcy5fcGVuZGluZ1RvdWNoZWQ9ITEsdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlPSgpPT57fSx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLnByaXN0aW5lPSEwLHRoaXMudG91Y2hlZD0hMSx0aGlzLl9vbkRpc2Fi'@; put 'bGVkQ2hhbmdlPVtdLHRoaXMuX2Fzc2lnblZhbGlkYXRvcnMobCksdGhpcy5fYXNzaWduQXN5bmNWYWxpZGF0b3JzKGEpfWdldCB2YWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbn1zZXQgdmFsaWRhdG9yKGwpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9dGhpcy5fY29t'@; put 'cG9zZWRWYWxpZGF0b3JGbj1sfWdldCBhc3luY1ZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm59c2V0IGFzeW5jVmFsaWRhdG9yKGwpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz10aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49bH1nZXQgcGFy'@; put 'ZW50KCl7cmV0dXJuIHRoaXMuX3BhcmVudH1nZXQgdmFsaWQoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT1zYn1nZXQgaW52YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PWVFfWdldCBwZW5kaW5nKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT1wOH1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5z'@; put 'dGF0dXM9PT1hYn1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLnN0YXR1cyE9PWFifWdldCBkaXJ0eSgpe3JldHVybiF0aGlzLnByaXN0aW5lfWdldCB1bnRvdWNoZWQoKXtyZXR1cm4hdGhpcy50b3VjaGVkfWdldCB1cGRhdGVPbigpe3JldHVybiB0aGlzLl91cGRhdGVPbj90aGlzLl91cGRh'@; put 'dGVPbjp0aGlzLnBhcmVudD90aGlzLnBhcmVudC51cGRhdGVPbjoiY2hhbmdlIn1zZXRWYWxpZGF0b3JzKGwpe3RoaXMuX2Fzc2lnblZhbGlkYXRvcnMobCl9c2V0QXN5bmNWYWxpZGF0b3JzKGwpe3RoaXMuX2Fzc2lnbkFzeW5jVmFsaWRhdG9ycyhsKX1hZGRWYWxpZGF0b3JzKGwpe3RoaXMu'@; put 'c2V0VmFsaWRhdG9ycyhzWChsLHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1hZGRBc3luY1ZhbGlkYXRvcnMobCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoc1gobCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKGwpe3RoaXMuc2V0VmFsaWRhdG9ycyhhWChsLHRo'@; put 'aXMuX3Jhd1ZhbGlkYXRvcnMpKX1yZW1vdmVBc3luY1ZhbGlkYXRvcnMobCl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoYVgobCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1oYXNWYWxpZGF0b3IobCl7cmV0dXJuIEp4KHRoaXMuX3Jhd1ZhbGlkYXRvcnMsbCl9aGFzQXN5bmNWYWxpZGF0'@; put 'b3IobCl7cmV0dXJuIEp4KHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyxsKX1jbGVhclZhbGlkYXRvcnMoKXt0aGlzLnZhbGlkYXRvcj1udWxsfWNsZWFyQXN5bmNWYWxpZGF0b3JzKCl7dGhpcy5hc3luY1ZhbGlkYXRvcj1udWxsfW1hcmtBc1RvdWNoZWQobD17fSl7dGhpcy50b3VjaGVkPSEw'@; put 'LHRoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNUb3VjaGVkKGwpfW1hcmtBbGxBc1RvdWNoZWQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoe29ubHlTZWxmOiEwfSksdGhpcy5fZm9yRWFjaENoaWxkKGw9PmwubWFya0FsbEFzVG91Y2hlZCgpKX1tYXJrQXNVbnRv'@; put 'dWNoZWQobD17fSl7dGhpcy50b3VjaGVkPSExLHRoaXMuX3BlbmRpbmdUb3VjaGVkPSExLHRoaXMuX2ZvckVhY2hDaGlsZChhPT57YS5tYXJrQXNVbnRvdWNoZWQoe29ubHlTZWxmOiEwfSl9KSx0aGlzLl9wYXJlbnQmJiFsLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQo'@; put 'bCl9bWFya0FzRGlydHkobD17fSl7dGhpcy5wcmlzdGluZT0hMSx0aGlzLl9wYXJlbnQmJiFsLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzRGlydHkobCl9bWFya0FzUHJpc3RpbmUobD17fSl7dGhpcy5wcmlzdGluZT0hMCx0aGlzLl9wZW5kaW5nRGlydHk9ITEsdGhpcy5fZm9yRWFj'@; put 'aENoaWxkKGE9PnthLm1hcmtBc1ByaXN0aW5lKHtvbmx5U2VsZjohMH0pfSksdGhpcy5fcGFyZW50JiYhbC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZShsKX1tYXJrQXNQZW5kaW5nKGw9e30pe3RoaXMuc3RhdHVzPXA4LCExIT09bC5lbWl0RXZlbnQmJnRoaXMuc3Rh'@; put 'dHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSx0aGlzLl9wYXJlbnQmJiFsLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzUGVuZGluZyhsKX1kaXNhYmxlKGw9e30pe2NvbnN0IGE9dGhpcy5fcGFyZW50TWFya2VkRGlydHkobC5vbmx5U2VsZik7dGhpcy5zdGF0dXM9YWIsdGhpcy5l'@; put 'cnJvcnM9bnVsbCx0aGlzLl9mb3JFYWNoQ2hpbGQoZD0+e2QuZGlzYWJsZSh7Li4ubCxvbmx5U2VsZjohMH0pfSksdGhpcy5fdXBkYXRlVmFsdWUoKSwhMSE9PWwuZW1pdEV2ZW50JiYodGhpcy52YWx1ZUNoYW5nZXMuZW1pdCh0aGlzLnZhbHVlKSx0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0'@; put 'aGlzLnN0YXR1cykpLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyh7Li4ubCxza2lwUHJpc3RpbmVDaGVjazphfSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKGQ9PmQoITApKX1lbmFibGUobD17fSl7Y29uc3QgYT10aGlzLl9wYXJlbnRNYXJrZWREaXJ0eShsLm9ubHlTZWxmKTt0aGlz'@; put 'LnN0YXR1cz1zYix0aGlzLl9mb3JFYWNoQ2hpbGQoZD0+e2QuZW5hYmxlKHsuLi5sLG9ubHlTZWxmOiEwfSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDpsLmVtaXRFdmVudH0pLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyh7Li4ubCxza2lwUHJp'@; put 'c3RpbmVDaGVjazphfSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKGQ9PmQoITEpKX1fdXBkYXRlQW5jZXN0b3JzKGwpe3RoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJih0aGlzLl9wYXJlbnQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShsKSxsLnNraXBQcmlzdGluZUNoZWNrfHx0'@; put 'aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKCksdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKCkpfXNldFBhcmVudChsKXt0aGlzLl9wYXJlbnQ9bH1nZXRSYXdWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkobD17fSl7dGhpcy5fc2V0SW5pdGlh'@; put 'bFN0YXR1cygpLHRoaXMuX3VwZGF0ZVZhbHVlKCksdGhpcy5lbmFibGVkJiYodGhpcy5fY2FuY2VsRXhpc3RpbmdTdWJzY3JpcHRpb24oKSx0aGlzLmVycm9ycz10aGlzLl9ydW5WYWxpZGF0b3IoKSx0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSwodGhpcy5zdGF0dXM9PT1z'@; put 'Ynx8dGhpcy5zdGF0dXM9PT1wOCkmJnRoaXMuX3J1bkFzeW5jVmFsaWRhdG9yKGwuZW1pdEV2ZW50KSksITEhPT1sLmVtaXRFdmVudCYmKHRoaXMudmFsdWVDaGFuZ2VzLmVtaXQodGhpcy52YWx1ZSksdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpKSx0aGlzLl9wYXJlbnQm'@; put 'JiFsLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShsKX1fdXBkYXRlVHJlZVZhbGlkaXR5KGw9e2VtaXRFdmVudDohMH0pe3RoaXMuX2ZvckVhY2hDaGlsZChhPT5hLl91cGRhdGVUcmVlVmFsaWRpdHkobCkpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0'@; put 'eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OmwuZW1pdEV2ZW50fSl9X3NldEluaXRpYWxTdGF0dXMoKXt0aGlzLnN0YXR1cz10aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/YWI6c2J9X3J1blZhbGlkYXRvcigpe3JldHVybiB0aGlzLnZhbGlkYXRvcj90aGlzLnZhbGlkYXRvcih0aGlzKTpu'@; put 'dWxsfV9ydW5Bc3luY1ZhbGlkYXRvcihsKXtpZih0aGlzLmFzeW5jVmFsaWRhdG9yKXt0aGlzLnN0YXR1cz1wOCx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITA7Y29uc3QgYT1YSyh0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJz'@; put 'Y3JpcHRpb249YS5zdWJzY3JpYmUoZD0+e3RoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLnNldEVycm9ycyhkLHtlbWl0RXZlbnQ6bH0pfSl9fV9jYW5jZWxFeGlzdGluZ1N1YnNjcmlwdGlvbigpe3RoaXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbiYmKHRo'@; put 'aXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSl9c2V0RXJyb3JzKGwsYT17fSl7dGhpcy5lcnJvcnM9bCx0aGlzLl91cGRhdGVDb250cm9sc0Vycm9ycyghMSE9PWEuZW1pdEV2ZW50KX1nZXQo'@; put 'bCl7bGV0IGE9bDtyZXR1cm4gbnVsbD09YXx8KEFycmF5LmlzQXJyYXkoYSl8fChhPWEuc3BsaXQoIi4iKSksMD09PWEubGVuZ3RoKT9udWxsOmEucmVkdWNlKChkLGgpPT5kJiZkLl9maW5kKGgpLHRoaXMpfWdldEVycm9yKGwsYSl7Y29uc3QgZD1hP3RoaXMuZ2V0KGEpOnRoaXM7cmV0dXJu'@; put 'IGQmJmQuZXJyb3JzP2QuZXJyb3JzW2xdOm51bGx9aGFzRXJyb3IobCxhKXtyZXR1cm4hIXRoaXMuZ2V0RXJyb3IobCxhKX1nZXQgcm9vdCgpe2xldCBsPXRoaXM7Zm9yKDtsLl9wYXJlbnQ7KWw9bC5fcGFyZW50O3JldHVybiBsfV91cGRhdGVDb250cm9sc0Vycm9ycyhsKXt0aGlzLnN0YXR1'@; put 'cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSxsJiZ0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cyksdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZUNvbnRyb2xzRXJyb3JzKGwpfV9pbml0T2JzZXJ2YWJsZXMoKXt0aGlzLnZhbHVlQ2hhbmdlcz1uZXcgRXIsdGhp'@; put 'cy5zdGF0dXNDaGFuZ2VzPW5ldyBFcn1fY2FsY3VsYXRlU3RhdHVzKCl7cmV0dXJuIHRoaXMuX2FsbENvbnRyb2xzRGlzYWJsZWQoKT9hYjp0aGlzLmVycm9ycz9lRTp0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3J8fHRoaXMuX2FueUNvbnRyb2xzSGF2ZVN0YXR1cyhwOCk/cDg6'@; put 'dGhpcy5fYW55Q29udHJvbHNIYXZlU3RhdHVzKGVFKT9lRTpzYn1fYW55Q29udHJvbHNIYXZlU3RhdHVzKGwpe3JldHVybiB0aGlzLl9hbnlDb250cm9scyhhPT5hLnN0YXR1cz09PWwpfV9hbnlDb250cm9sc0RpcnR5KCl7cmV0dXJuIHRoaXMuX2FueUNvbnRyb2xzKGw9PmwuZGlydHkpfV9h'@; put 'bnlDb250cm9sc1RvdWNoZWQoKXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMobD0+bC50b3VjaGVkKX1fdXBkYXRlUHJpc3RpbmUobD17fSl7dGhpcy5wcmlzdGluZT0hdGhpcy5fYW55Q29udHJvbHNEaXJ0eSgpLHRoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBk'@; put 'YXRlUHJpc3RpbmUobCl9X3VwZGF0ZVRvdWNoZWQobD17fSl7dGhpcy50b3VjaGVkPXRoaXMuX2FueUNvbnRyb2xzVG91Y2hlZCgpLHRoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBkYXRlVG91Y2hlZChsKX1fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UobCl7'@; put 'dGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlPWx9X3NldFVwZGF0ZVN0cmF0ZWd5KGwpe3RFKGwpJiZudWxsIT1sLnVwZGF0ZU9uJiYodGhpcy5fdXBkYXRlT249bC51cGRhdGVPbil9X3BhcmVudE1hcmtlZERpcnR5KGwpe3JldHVybiFsJiYhKCF0aGlzLl9wYXJlbnR8fCF0aGlzLl9wYXJlbnQu'@; put 'ZGlydHkpJiYhdGhpcy5fcGFyZW50Ll9hbnlDb250cm9sc0RpcnR5KCl9X2ZpbmQobCl7cmV0dXJuIG51bGx9X2Fzc2lnblZhbGlkYXRvcnMobCl7dGhpcy5fcmF3VmFsaWRhdG9ycz1BcnJheS5pc0FycmF5KGwpP2wuc2xpY2UoKTpsLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49ZnVuY3Rp'@; put 'b24gR21lKGMpe3JldHVybiBBcnJheS5pc0FycmF5KGMpP1VQKGMpOmN8fG51bGx9KHRoaXMuX3Jhd1ZhbGlkYXRvcnMpfV9hc3NpZ25Bc3luY1ZhbGlkYXRvcnMobCl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPUFycmF5LmlzQXJyYXkobCk/bC5zbGljZSgpOmwsdGhpcy5fY29tcG9zZWRB'@; put 'c3luY1ZhbGlkYXRvckZuPWZ1bmN0aW9uICRtZShjKXtyZXR1cm4gQXJyYXkuaXNBcnJheShjKT9aUChjKTpjfHxudWxsfSh0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfX1jbGFzcyBuRSBleHRlbmRzIGZYe2NvbnN0cnVjdG9yKGwsYSxkKXtzdXBlcigkUChhKSxxUChkLGEpKSx0aGlzLmNv'@; put 'bnRyb2xzPWwsdGhpcy5faW5pdE9ic2VydmFibGVzKCksdGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koYSksdGhpcy5fc2V0VXBDb250cm9scygpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pfXJlZ2lzdGVy'@; put 'Q29udHJvbChsLGEpe3JldHVybiB0aGlzLmNvbnRyb2xzW2xdP3RoaXMuY29udHJvbHNbbF06KHRoaXMuY29udHJvbHNbbF09YSxhLnNldFBhcmVudCh0aGlzKSxhLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpLGEpfWFkZENvbnRyb2wobCxh'@; put 'LGQ9e30pe3RoaXMucmVnaXN0ZXJDb250cm9sKGwsYSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZC5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1yZW1vdmVDb250cm9sKGwsYT17fSl7dGhpcy5jb250cm9sc1tsXSYmdGhpcy5jb250cm9s'@; put 'c1tsXS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCk9Pnt9KSxkZWxldGUgdGhpcy5jb250cm9sc1tsXSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDphLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfXNldENvbnRyb2wobCxhLGQ9e30p'@; put 'e3RoaXMuY29udHJvbHNbbF0mJnRoaXMuY29udHJvbHNbbF0uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgpPT57fSksZGVsZXRlIHRoaXMuY29udHJvbHNbbF0sYSYmdGhpcy5yZWdpc3RlckNvbnRyb2wobCxhKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpk'@; put 'LmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfWNvbnRhaW5zKGwpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGwpJiZ0aGlzLmNvbnRyb2xzW2xdLmVuYWJsZWR9c2V0VmFsdWUobCxhPXt9KXsoZnVuY3Rpb24gaFgoYyxsLGEpe2MuX2ZvckVhY2hD'@; put 'aGlsZCgoZCxoKT0+e2lmKHZvaWQgMD09PWFbaF0pdGhyb3cgbmV3IEFyKDEwMDIsIiIpfSl9KSh0aGlzLDAsbCksT2JqZWN0LmtleXMobCkuZm9yRWFjaChkPT57KGZ1bmN0aW9uIGRYKGMsbCxhKXtjb25zdCBkPWMuY29udHJvbHM7aWYoIShsP09iamVjdC5rZXlzKGQpOmQpLmxlbmd0aCl0'@; put 'aHJvdyBuZXcgQXIoMWUzLCIiKTtpZighZFthXSl0aHJvdyBuZXcgQXIoMTAwMSwiIil9KSh0aGlzLCEwLGQpLHRoaXMuY29udHJvbHNbZF0uc2V0VmFsdWUobFtkXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmEuZW1pdEV2ZW50fSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoYSl9'@; put 'cGF0Y2hWYWx1ZShsLGE9e30pe251bGwhPWwmJihPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGQ9Pntjb25zdCBoPXRoaXMuY29udHJvbHNbZF07aCYmaC5wYXRjaFZhbHVlKGxbZF0se29ubHlTZWxmOiEwLGVtaXRFdmVudDphLmVtaXRFdmVudH0pfSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlk'@; put 'aXR5KGEpKX1yZXNldChsPXt9LGE9e30pe3RoaXMuX2ZvckVhY2hDaGlsZCgoZCxoKT0+e2QucmVzZXQobFtoXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmEuZW1pdEV2ZW50fSl9KSx0aGlzLl91cGRhdGVQcmlzdGluZShhKSx0aGlzLl91cGRhdGVUb3VjaGVkKGEpLHRoaXMudXBkYXRlVmFs'@; put 'dWVBbmRWYWxpZGl0eShhKX1nZXRSYXdWYWx1ZSgpe3JldHVybiB0aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwobCxhLGQpPT4obFtkXT1hLmdldFJhd1ZhbHVlKCksbCkpfV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7bGV0IGw9dGhpcy5fcmVkdWNlQ2hpbGRyZW4oITEsKGEsZCk9PiEhZC5fc3lu'@; put 'Y1BlbmRpbmdDb250cm9scygpfHxhKTtyZXR1cm4gbCYmdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMH0pLGx9X2ZvckVhY2hDaGlsZChsKXtPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5mb3JFYWNoKGE9Pntjb25zdCBkPXRoaXMuY29udHJvbHNbYV07ZCYmbChk'@; put 'LGEpfSl9X3NldFVwQ29udHJvbHMoKXt0aGlzLl9mb3JFYWNoQ2hpbGQobD0+e2wuc2V0UGFyZW50KHRoaXMpLGwuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSl9KX1fdXBkYXRlVmFsdWUoKXt0aGlzLnZhbHVlPXRoaXMuX3JlZHVjZVZhbHVl'@; put 'KCl9X2FueUNvbnRyb2xzKGwpe2Zvcihjb25zdFthLGRdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jb250cm9scykpaWYodGhpcy5jb250YWlucyhhKSYmbChkKSlyZXR1cm4hMDtyZXR1cm4hMX1fcmVkdWNlVmFsdWUoKXtyZXR1cm4gdGhpcy5fcmVkdWNlQ2hpbGRyZW4oe30sKGEsZCxoKT0+'@; put 'KChkLmVuYWJsZWR8fHRoaXMuZGlzYWJsZWQpJiYoYVtoXT1kLnZhbHVlKSxhKSl9X3JlZHVjZUNoaWxkcmVuKGwsYSl7bGV0IGQ9bDtyZXR1cm4gdGhpcy5fZm9yRWFjaENoaWxkKChoLGYpPT57ZD1hKGQsaCxmKX0pLGR9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtmb3IoY29uc3QgbCBvZiBP'@; put 'YmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRyb2xzW2xdLmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmxlbmd0aD4wfHx0aGlzLmRpc2FibGVkfV9maW5kKGwpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5'@; put 'KGwpP3RoaXMuY29udHJvbHNbbF06bnVsbH19Y29uc3QgVjU9bmV3IFNpKCJDYWxsU2V0RGlzYWJsZWRTdGF0ZSIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PmxifSksbGI9ImFsd2F5cyI7ZnVuY3Rpb24gY2IoYyxsLGE9bGIpe0tQKGMsbCksbC52YWx1ZUFjY2Vzc29yLndyaXRl'@; put 'VmFsdWUoYy52YWx1ZSksKGMuZGlzYWJsZWR8fCJhbHdheXMiPT09YSkmJmwudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlPy4oYy5kaXNhYmxlZCksZnVuY3Rpb24gWG1lKGMsbCl7bC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoYT0+e2MuX3BlbmRpbmdWYWx1ZT1hLGMu'@; put 'X3BlbmRpbmdDaGFuZ2U9ITAsYy5fcGVuZGluZ0RpcnR5PSEwLCJjaGFuZ2UiPT09Yy51cGRhdGVPbiYmcFgoYyxsKX0pfShjLGwpLGZ1bmN0aW9uIFFtZShjLGwpe2NvbnN0IGE9KGQsaCk9PntsLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZShkKSxoJiZsLnZpZXdUb01vZGVsVXBkYXRlKGQp'@; put 'fTtjLnJlZ2lzdGVyT25DaGFuZ2UoYSksbC5fcmVnaXN0ZXJPbkRlc3Ryb3koKCk9PntjLl91bnJlZ2lzdGVyT25DaGFuZ2UoYSl9KX0oYyxsKSxmdW5jdGlvbiBKbWUoYyxsKXtsLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPblRvdWNoZWQoKCk9PntjLl9wZW5kaW5nVG91Y2hlZD0hMCwiYmx1'@; put 'ciI9PT1jLnVwZGF0ZU9uJiZjLl9wZW5kaW5nQ2hhbmdlJiZwWChjLGwpLCJzdWJtaXQiIT09Yy51cGRhdGVPbiYmYy5tYXJrQXNUb3VjaGVkKCl9KX0oYyxsKSxmdW5jdGlvbiBLbWUoYyxsKXtpZihsLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSl7Y29uc3QgYT1kPT57bC52YWx1'@; put 'ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUoZCl9O2MucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKGEpLGwuX3JlZ2lzdGVyT25EZXN0cm95KCgpPT57Yy5fdW5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UoYSl9KX19KGMsbCl9ZnVuY3Rpb24gb0UoYyxsKXtjLmZvckVhY2goYT0+e2EucmVn'@; put 'aXN0ZXJPblZhbGlkYXRvckNoYW5nZSYmYS5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGwpfSl9ZnVuY3Rpb24gS1AoYyxsKXtjb25zdCBhPWZ1bmN0aW9uIGlYKGMpe3JldHVybiBjLl9yYXdWYWxpZGF0b3JzfShjKTtudWxsIT09bC52YWxpZGF0b3I/Yy5zZXRWYWxpZGF0b3JzKHJYKGEs'@; put 'bC52YWxpZGF0b3IpKToiZnVuY3Rpb24iPT10eXBlb2YgYSYmYy5zZXRWYWxpZGF0b3JzKFthXSk7Y29uc3QgZD1mdW5jdGlvbiBvWChjKXtyZXR1cm4gYy5fcmF3QXN5bmNWYWxpZGF0b3JzfShjKTtudWxsIT09bC5hc3luY1ZhbGlkYXRvcj9jLnNldEFzeW5jVmFsaWRhdG9ycyhyWChkLGwu'@; put 'YXN5bmNWYWxpZGF0b3IpKToiZnVuY3Rpb24iPT10eXBlb2YgZCYmYy5zZXRBc3luY1ZhbGlkYXRvcnMoW2RdKTtjb25zdCBoPSgpPT5jLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtvRShsLl9yYXdWYWxpZGF0b3JzLGgpLG9FKGwuX3Jhd0FzeW5jVmFsaWRhdG9ycyxoKX1mdW5jdGlvbiBw'@; put 'WChjLGwpe2MuX3BlbmRpbmdEaXJ0eSYmYy5tYXJrQXNEaXJ0eSgpLGMuc2V0VmFsdWUoYy5fcGVuZGluZ1ZhbHVlLHtlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6ITF9KSxsLnZpZXdUb01vZGVsVXBkYXRlKGMuX3BlbmRpbmdWYWx1ZSksYy5fcGVuZGluZ0NoYW5nZT0hMX1jb25zdCBpNmU9e3By'@; put 'b3ZpZGU6anUsdXNlRXhpc3Rpbmc6SXMoKCk9PnIyKX0sdWI9KCgpPT5Qcm9taXNlLnJlc29sdmUoKSkoKTtsZXQgcjI9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGp1e2NvbnN0cnVjdG9yKGEsZCxoKXtzdXBlcigpLHRoaXMuY2FsbFNldERpc2FibGVkU3RhdGU9aCx0aGlzLnN1Ym1pdHRlZD0h'@; put 'MSx0aGlzLl9kaXJlY3RpdmVzPW5ldyBTZXQsdGhpcy5uZ1N1Ym1pdD1uZXcgRXIsdGhpcy5mb3JtPW5ldyBuRSh7fSxVUChhKSxaUChkKSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzfWdldCBjb250'@; put 'cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX1nZXQgcGF0aCgpe3JldHVybltdfWdldCBjb250cm9scygpe3JldHVybiB0aGlzLmZvcm0uY29udHJvbHN9YWRkQ29udHJvbChhKXt1Yi50aGVuKCgpPT57Y29uc3QgZD10aGlzLl9maW5kQ29udGFpbmVyKGEucGF0aCk7YS5jb250cm9sPWQucmVnaXN0'@; put 'ZXJDb250cm9sKGEubmFtZSxhLmNvbnRyb2wpLGNiKGEuY29udHJvbCxhLHRoaXMuY2FsbFNldERpc2FibGVkU3RhdGUpLGEuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KSx0aGlzLl9kaXJlY3RpdmVzLmFkZChhKX0pfWdldENvbnRyb2woYSl7cmV0dXJu'@; put 'IHRoaXMuZm9ybS5nZXQoYS5wYXRoKX1yZW1vdmVDb250cm9sKGEpe3ViLnRoZW4oKCk9Pntjb25zdCBkPXRoaXMuX2ZpbmRDb250YWluZXIoYS5wYXRoKTtkJiZkLnJlbW92ZUNvbnRyb2woYS5uYW1lKSx0aGlzLl9kaXJlY3RpdmVzLmRlbGV0ZShhKX0pfWFkZEZvcm1Hcm91cChhKXt1Yi50'@; put 'aGVuKCgpPT57Y29uc3QgZD10aGlzLl9maW5kQ29udGFpbmVyKGEucGF0aCksaD1uZXcgbkUoe30pOyhmdW5jdGlvbiBnWChjLGwpe0tQKGMsbCl9KShoLGEpLGQucmVnaXN0ZXJDb250cm9sKGEubmFtZSxoKSxoLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDohMX0pfSl9cmVt'@; put 'b3ZlRm9ybUdyb3VwKGEpe3ViLnRoZW4oKCk9Pntjb25zdCBkPXRoaXMuX2ZpbmRDb250YWluZXIoYS5wYXRoKTtkJiZkLnJlbW92ZUNvbnRyb2woYS5uYW1lKX0pfWdldEZvcm1Hcm91cChhKXtyZXR1cm4gdGhpcy5mb3JtLmdldChhLnBhdGgpfXVwZGF0ZU1vZGVsKGEsZCl7dWIudGhlbigo'@; put 'KT0+e3RoaXMuZm9ybS5nZXQoYS5wYXRoKS5zZXRWYWx1ZShkKX0pfXNldFZhbHVlKGEpe3RoaXMuY29udHJvbC5zZXRWYWx1ZShhKX1vblN1Ym1pdChhKXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsZnVuY3Rpb24gbVgoYyxsKXtjLl9zeW5jUGVuZGluZ0NvbnRyb2xzKCksbC5mb3JFYWNo'@; put 'KGE9Pntjb25zdCBkPWEuY29udHJvbDsic3VibWl0Ij09PWQudXBkYXRlT24mJmQuX3BlbmRpbmdDaGFuZ2UmJihhLnZpZXdUb01vZGVsVXBkYXRlKGQuX3BlbmRpbmdWYWx1ZSksZC5fcGVuZGluZ0NoYW5nZT0hMSl9KX0odGhpcy5mb3JtLHRoaXMuX2RpcmVjdGl2ZXMpLHRoaXMubmdTdWJt'@; put 'aXQuZW1pdChhKSwiZGlhbG9nIj09PWE/LnRhcmdldD8ubWV0aG9kfW9uUmVzZXQoKXt0aGlzLnJlc2V0Rm9ybSgpfXJlc2V0Rm9ybShhPXZvaWQgMCl7dGhpcy5mb3JtLnJlc2V0KGEpLHRoaXMuc3VibWl0dGVkPSExfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9'@; put 'dGhpcy5vcHRpb25zLnVwZGF0ZU9uJiYodGhpcy5mb3JtLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9maW5kQ29udGFpbmVyKGEpe3JldHVybiBhLnBvcCgpLGEubGVuZ3RoP3RoaXMuZm9ybS5nZXQoYSk6dGhpcy5mb3JtfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'YSl7cmV0dXJuIG5ldyhhfHxjKSh0dChpdSwxMCksdHQoeXAsMTApLHR0KFY1LDgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsImZvcm1Hcm91cCIsIiJdLFsibmctZm9ybSJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RCaW5k'@; put 'aW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoInN1Ym1pdCIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25TdWJtaXQoZil9KSgicmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25SZXNldCgpfSl9LGlucHV0czp7b3B0aW9uczpbIm5nRm9ybU9wdGlvbnMiLCJvcHRpb25zIl19LG91dHB1dHM6'@; put 'e25nU3VibWl0OiJuZ1N1Ym1pdCJ9LGV4cG9ydEFzOlsibmdGb3JtIl0sZmVhdHVyZXM6W3RpKFtpNmVdKSxlb119KSxjfSkoKTtmdW5jdGlvbiB2WChjLGwpe2NvbnN0IGE9Yy5pbmRleE9mKGwpO2E+LTEmJmMuc3BsaWNlKGEsMSl9ZnVuY3Rpb24gX1goYyl7cmV0dXJuIm9iamVjdCI9PXR5'@; put 'cGVvZiBjJiZudWxsIT09YyYmMj09PU9iamVjdC5rZXlzKGMpLmxlbmd0aCYmInZhbHVlImluIGMmJiJkaXNhYmxlZCJpbiBjfWNvbnN0IGVGPWNsYXNzIGV4dGVuZHMgZlh7Y29uc3RydWN0b3IobD1udWxsLGEsZCl7c3VwZXIoJFAoYSkscVAoZCxhKSksdGhpcy5kZWZhdWx0VmFsdWU9bnVs'@; put 'bCx0aGlzLl9vbkNoYW5nZT1bXSx0aGlzLl9wZW5kaW5nQ2hhbmdlPSExLHRoaXMuX2FwcGx5Rm9ybVN0YXRlKGwpLHRoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KGEpLHRoaXMuX2luaXRPYnNlcnZhYmxlcygpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2'@; put 'ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pLHRFKGEpJiYoYS5ub25OdWxsYWJsZXx8YS5pbml0aWFsVmFsdWVJc0RlZmF1bHQpJiYodGhpcy5kZWZhdWx0VmFsdWU9X1gobCk/bC52YWx1ZTpsKX1zZXRWYWx1ZShsLGE9e30pe3RoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPWwsdGhp'@; put 'cy5fb25DaGFuZ2UubGVuZ3RoJiYhMSE9PWEuZW1pdE1vZGVsVG9WaWV3Q2hhbmdlJiZ0aGlzLl9vbkNoYW5nZS5mb3JFYWNoKGQ9PmQodGhpcy52YWx1ZSwhMSE9PWEuZW1pdFZpZXdUb01vZGVsQ2hhbmdlKSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGEpfXBhdGNoVmFsdWUobCxh'@; put 'PXt9KXt0aGlzLnNldFZhbHVlKGwsYSl9cmVzZXQobD10aGlzLmRlZmF1bHRWYWx1ZSxhPXt9KXt0aGlzLl9hcHBseUZvcm1TdGF0ZShsKSx0aGlzLm1hcmtBc1ByaXN0aW5lKGEpLHRoaXMubWFya0FzVW50b3VjaGVkKGEpLHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSxhKSx0aGlzLl9wZW5k'@; put 'aW5nQ2hhbmdlPSExfV91cGRhdGVWYWx1ZSgpe31fYW55Q29udHJvbHMobCl7cmV0dXJuITF9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZH1yZWdpc3Rlck9uQ2hhbmdlKGwpe3RoaXMuX29uQ2hhbmdlLnB1c2gobCl9X3VucmVnaXN0ZXJPbkNoYW5nZShsKXt2'@; put 'WCh0aGlzLl9vbkNoYW5nZSxsKX1yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UobCl7dGhpcy5fb25EaXNhYmxlZENoYW5nZS5wdXNoKGwpfV91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShsKXt2WCh0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLGwpfV9mb3JFYWNoQ2hpbGQobCl7fV9zeW5jUGVu'@; put 'ZGluZ0NvbnRyb2xzKCl7cmV0dXJuISgic3VibWl0IiE9PXRoaXMudXBkYXRlT258fCh0aGlzLl9wZW5kaW5nRGlydHkmJnRoaXMubWFya0FzRGlydHkoKSx0aGlzLl9wZW5kaW5nVG91Y2hlZCYmdGhpcy5tYXJrQXNUb3VjaGVkKCksIXRoaXMuX3BlbmRpbmdDaGFuZ2UpfHwodGhpcy5zZXRW'@; put 'YWx1ZSh0aGlzLl9wZW5kaW5nVmFsdWUse29ubHlTZWxmOiEwLGVtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLDApKX1fYXBwbHlGb3JtU3RhdGUobCl7X1gobCk/KHRoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPWwudmFsdWUsbC5kaXNhYmxlZD90aGlzLmRpc2FibGUoe29ubHlTZWxm'@; put 'OiEwLGVtaXRFdmVudDohMX0pOnRoaXMuZW5hYmxlKHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ITF9KSk6dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9bH19LGE2ZT17cHJvdmlkZTp6dSx1c2VFeGlzdGluZzpJcygoKT0+T3MpfSx5WD0oKCk9PlByb21pc2UucmVzb2x2ZSgpKSgpO2xl'@; put 'dCBPcz0oKCk9PntjbGFzcyBjIGV4dGVuZHMgenV7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQpe3N1cGVyKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9Xyx0aGlzLmNhbGxTZXREaXNhYmxlZFN0YXRlPVQsdGhpcy5jb250cm9sPW5ldyBlRix0aGlzLl9yZWdpc3RlcmVkPSExLHRoaXMubmFt'@; put 'ZT0iIix0aGlzLnVwZGF0ZT1uZXcgRXIsdGhpcy5fcGFyZW50PWEsdGhpcy5fc2V0VmFsaWRhdG9ycyhkKSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMoaCksdGhpcy52YWx1ZUFjY2Vzc29yPWZ1bmN0aW9uIFFQKGMsbCl7aWYoIWwpcmV0dXJuIG51bGw7bGV0IGEsZCxoO3JldHVybiBBcnJh'@; put 'eS5pc0FycmF5KGwpLGwuZm9yRWFjaChmPT57Zi5jb25zdHJ1Y3Rvcj09PVdhP2E9ZjpmdW5jdGlvbiBuNmUoYyl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihjLmNvbnN0cnVjdG9yKT09PU41fShmKT9kPWY6aD1mfSksaHx8ZHx8YXx8bnVsbH0oMCxmKX1uZ09uQ2hhbmdlcyhhKXtp'@; put 'Zih0aGlzLl9jaGVja0ZvckVycm9ycygpLCF0aGlzLl9yZWdpc3RlcmVkfHwibmFtZSJpbiBhKXtpZih0aGlzLl9yZWdpc3RlcmVkJiYodGhpcy5fY2hlY2tOYW1lKCksdGhpcy5mb3JtRGlyZWN0aXZlKSl7Y29uc3QgZD1hLm5hbWUucHJldmlvdXNWYWx1ZTt0aGlzLmZvcm1EaXJlY3RpdmUu'@; put 'cmVtb3ZlQ29udHJvbCh7bmFtZTpkLHBhdGg6dGhpcy5fZ2V0UGF0aChkKX0pfXRoaXMuX3NldFVwQ29udHJvbCgpfSJpc0Rpc2FibGVkImluIGEmJnRoaXMuX3VwZGF0ZURpc2FibGVkKGEpLGZ1bmN0aW9uIEpQKGMsbCl7aWYoIWMuaGFzT3duUHJvcGVydHkoIm1vZGVsIikpcmV0dXJuITE7'@; put 'Y29uc3QgYT1jLm1vZGVsO3JldHVybiEhYS5pc0ZpcnN0Q2hhbmdlKCl8fCFPYmplY3QuaXMobCxhLmN1cnJlbnRWYWx1ZSl9KGEsdGhpcy52aWV3TW9kZWwpJiYodGhpcy5fdXBkYXRlVmFsdWUodGhpcy5tb2RlbCksdGhpcy52aWV3TW9kZWw9dGhpcy5tb2RlbCl9bmdPbkRlc3Ryb3koKXt0'@; put 'aGlzLmZvcm1EaXJlY3RpdmUmJnRoaXMuZm9ybURpcmVjdGl2ZS5yZW1vdmVDb250cm9sKHRoaXMpfWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuX2dldFBhdGgodGhpcy5uYW1lKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzLl9wYXJlbnQ/dGhpcy5fcGFyZW50LmZvcm1EaXJlY3Rp'@; put 'dmU6bnVsbH12aWV3VG9Nb2RlbFVwZGF0ZShhKXt0aGlzLnZpZXdNb2RlbD1hLHRoaXMudXBkYXRlLmVtaXQoYSl9X3NldFVwQ29udHJvbCgpe3RoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KCksdGhpcy5faXNTdGFuZGFsb25lKCk/dGhpcy5fc2V0VXBTdGFuZGFsb25lKCk6dGhpcy5mb3JtRGly'@; put 'ZWN0aXZlLmFkZENvbnRyb2wodGhpcyksdGhpcy5fcmVnaXN0ZXJlZD0hMH1fc2V0VXBkYXRlU3RyYXRlZ3koKXt0aGlzLm9wdGlvbnMmJm51bGwhPXRoaXMub3B0aW9ucy51cGRhdGVPbiYmKHRoaXMuY29udHJvbC5fdXBkYXRlT249dGhpcy5vcHRpb25zLnVwZGF0ZU9uKX1faXNTdGFuZGFs'@; put 'b25lKCl7cmV0dXJuIXRoaXMuX3BhcmVudHx8ISghdGhpcy5vcHRpb25zfHwhdGhpcy5vcHRpb25zLnN0YW5kYWxvbmUpfV9zZXRVcFN0YW5kYWxvbmUoKXtjYih0aGlzLmNvbnRyb2wsdGhpcyx0aGlzLmNhbGxTZXREaXNhYmxlZFN0YXRlKSx0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRW'@; put 'YWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2NoZWNrRm9yRXJyb3JzKCl7dGhpcy5faXNTdGFuZGFsb25lKCl8fHRoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuX2NoZWNrTmFtZSgpfV9jaGVja1BhcmVudFR5cGUoKXt9X2NoZWNrTmFtZSgpe3RoaXMub3B0aW9ucyYmdGhpcy5vcHRpb25z'@; put 'Lm5hbWUmJih0aGlzLm5hbWU9dGhpcy5vcHRpb25zLm5hbWUpLHRoaXMuX2lzU3RhbmRhbG9uZSgpfV91cGRhdGVWYWx1ZShhKXt5WC50aGVuKCgpPT57dGhpcy5jb250cm9sLnNldFZhbHVlKGEse2VtaXRWaWV3VG9Nb2RlbENoYW5nZTohMX0pLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPy5t'@; put 'YXJrRm9yQ2hlY2soKX0pfV91cGRhdGVEaXNhYmxlZChhKXtjb25zdCBkPWEuaXNEaXNhYmxlZC5jdXJyZW50VmFsdWUsaD0wIT09ZCYmVTYoZCk7eVgudGhlbigoKT0+e2gmJiF0aGlzLmNvbnRyb2wuZGlzYWJsZWQ/dGhpcy5jb250cm9sLmRpc2FibGUoKTohaCYmdGhpcy5jb250cm9sLmRp'@; put 'c2FibGVkJiZ0aGlzLmNvbnRyb2wuZW5hYmxlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY/Lm1hcmtGb3JDaGVjaygpfSl9X2dldFBhdGgoYSl7cmV0dXJuIHRoaXMuX3BhcmVudD9mdW5jdGlvbiByRShjLGwpe3JldHVyblsuLi5sLnBhdGgsY119KGEsdGhpcy5fcGFyZW50KTpbYV19fXJl'@; put 'dHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGp1LDkpLHR0KGl1LDEwKSx0dCh5cCwxMCksdHQobGgsMTApLHR0KFVhLDgpLHR0KFY1LDgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwibmdNb2RlbCIsIiIsMywiZm9ybUNv'@; put 'bnRyb2xOYW1lIiwiIiwzLCJmb3JtQ29udHJvbCIsIiJdXSxpbnB1dHM6e25hbWU6Im5hbWUiLGlzRGlzYWJsZWQ6WyJkaXNhYmxlZCIsImlzRGlzYWJsZWQiXSxtb2RlbDpbIm5nTW9kZWwiLCJtb2RlbCJdLG9wdGlvbnM6WyJuZ01vZGVsT3B0aW9ucyIsIm9wdGlvbnMiXX0sb3V0cHV0czp7'@; put 'dXBkYXRlOiJuZ01vZGVsQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ01vZGVsIl0sZmVhdHVyZXM6W3RpKFthNmVdKSxlbyx2YV19KSxjfSkoKSxDcD0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5'@; put 'cGU6YyxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsIm5nTmF0aXZlVmFsaWRhdGUiLCIiXV0saG9zdEF0dHJzOlsibm92YWxpZGF0ZSIsIiJdfSksY30pKCk7Y29uc3QgbDZlPXtwcm92aWRlOmxoLHVzZUV4aXN0aW5nOklzKCgpPT5hRSksbXVsdGk6ITB9O2xldCBhRT0o'@; put 'KCk9PntjbGFzcyBjIGV4dGVuZHMgTjV7d3JpdGVWYWx1ZShhKXt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIsYT8/IiIpfXJlZ2lzdGVyT25DaGFuZ2UoYSl7dGhpcy5vbkNoYW5nZT1kPT57YSgiIj09ZD9udWxsOnBhcnNlRmxvYXQoZCkpfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KCl7bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD14YShjKSkpKGR8fGMpfX0oKSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIs'@; put 'ImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoImlucHV0IixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkNoYW5nZShmLnRhcmdldC52YWx1ZSl9KSgiYmx1ciIsZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gZC5vblRvdWNoZWQoKX0pfSxmZWF0dXJlczpbdGkoW2w2ZV0pLGVvXX0pLGN9KSgpO2NvbnN0IGM2ZT17cHJvdmlkZTpsaCx1c2VFeGlzdGluZzpJcygoKT0+bEUpLG11bHRpOiEwfTtsZXQgd1g9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7fSksY30pKCksdTZlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9hY2Nlc3NvcnM9W119YWRkKGEsZCl7dGhpcy5fYWNjZXNzb3JzLnB1c2goW2EsZF0pfXJlbW92ZShh'@; put 'KXtmb3IobGV0IGQ9dGhpcy5fYWNjZXNzb3JzLmxlbmd0aC0xO2Q+PTA7LS1kKWlmKHRoaXMuX2FjY2Vzc29yc1tkXVsxXT09PWEpcmV0dXJuIHZvaWQgdGhpcy5fYWNjZXNzb3JzLnNwbGljZShkLDEpfXNlbGVjdChhKXt0aGlzLl9hY2Nlc3NvcnMuZm9yRWFjaChkPT57dGhpcy5faXNTYW1l'@; put 'R3JvdXAoZCxhKSYmZFsxXSE9PWEmJmRbMV0uZmlyZVVuY2hlY2soYS52YWx1ZSl9KX1faXNTYW1lR3JvdXAoYSxkKXtyZXR1cm4hIWFbMF0uY29udHJvbCYmYVswXS5fcGFyZW50PT09ZC5fY29udHJvbC5fcGFyZW50JiZhWzFdLm5hbWU9PT1kLm5hbWV9fXJldHVybiBjLlx1MDI3NWZhYz1m'@; put 'dW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOndYfSksY30pKCksbEU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIE41e2NvbnN0cnVjdG9yKGEsZCxoLGYpe3N1cGVyKGEsZCksdGhpcy5fcmVn'@; put 'aXN0cnk9aCx0aGlzLl9pbmplY3Rvcj1mLHRoaXMuc2V0RGlzYWJsZWRTdGF0ZUZpcmVkPSExLHRoaXMub25DaGFuZ2U9KCk9Pnt9LHRoaXMuY2FsbFNldERpc2FibGVkU3RhdGU9RmkoVjUse29wdGlvbmFsOiEwfSk/P2xifW5nT25Jbml0KCl7dGhpcy5fY29udHJvbD10aGlzLl9pbmplY3Rv'@; put 'ci5nZXQoenUpLHRoaXMuX2NoZWNrTmFtZSgpLHRoaXMuX3JlZ2lzdHJ5LmFkZCh0aGlzLl9jb250cm9sLHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy5fcmVnaXN0cnkucmVtb3ZlKHRoaXMpfXdyaXRlVmFsdWUoYSl7dGhpcy5fc3RhdGU9YT09PXRoaXMudmFsdWUsdGhpcy5zZXRQcm9wZXJ0'@; put 'eSgiY2hlY2tlZCIsdGhpcy5fc3RhdGUpfXJlZ2lzdGVyT25DaGFuZ2UoYSl7dGhpcy5fZm49YSx0aGlzLm9uQ2hhbmdlPSgpPT57YSh0aGlzLnZhbHVlKSx0aGlzLl9yZWdpc3RyeS5zZWxlY3QodGhpcyl9fXNldERpc2FibGVkU3RhdGUoYSl7KHRoaXMuc2V0RGlzYWJsZWRTdGF0ZUZpcmVk'@; put 'fHxhfHwid2hlbkRpc2FibGVkRm9yTGVnYWN5Q29kZSI9PT10aGlzLmNhbGxTZXREaXNhYmxlZFN0YXRlKSYmdGhpcy5zZXRQcm9wZXJ0eSgiZGlzYWJsZWQiLGEpLHRoaXMuc2V0RGlzYWJsZWRTdGF0ZUZpcmVkPSEwfWZpcmVVbmNoZWNrKGEpe3RoaXMud3JpdGVWYWx1ZShhKX1fY2hlY2tO'@; put 'YW1lKCl7IXRoaXMubmFtZSYmdGhpcy5mb3JtQ29udHJvbE5hbWUmJih0aGlzLm5hbWU9dGhpcy5mb3JtQ29udHJvbE5hbWUpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChGbyksdHQoTmkpLHR0KHU2ZSksdHQoRWEpKX0sYy5cdTAyNzVkaXI9'@; put 'Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsInJhZGlvIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsInJhZGlvIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVu'@; put 'Y3Rpb24oYSxkKXsxJmEmJnh0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25DaGFuZ2UoKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBkLm9uVG91Y2hlZCgpfSl9LGlucHV0czp7bmFtZToibmFtZSIsZm9ybUNvbnRyb2xOYW1lOiJmb3JtQ29udHJvbE5hbWUiLHZhbHVlOiJ2'@; put 'YWx1ZSJ9LGZlYXR1cmVzOlt0aShbYzZlXSksZW9dfSksY30pKCk7Y29uc3QgbkY9bmV3IFNpKCJOZ01vZGVsV2l0aEZvcm1Db250cm9sV2FybmluZyIpLHY2ZT17cHJvdmlkZTpsaCx1c2VFeGlzdGluZzpJcygoKT0+TTApLG11bHRpOiEwfTtmdW5jdGlvbiBFWChjLGwpe3JldHVybiBudWxs'@; put 'PT1jP2Ake2x9YDoobCYmIm9iamVjdCI9PXR5cGVvZiBsJiYobD0iT2JqZWN0IiksYCR7Y306ICR7bH1gLnNsaWNlKDAsNTApKX1sZXQgTTA9KCgpPT57Y2xhc3MgYyBleHRlbmRzIE41e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0'@; put 'aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKGEpe3RoaXMuX2NvbXBhcmVXaXRoPWF9d3JpdGVWYWx1ZShhKXt0aGlzLnZhbHVlPWE7Y29uc3QgaD1FWCh0aGlzLl9nZXRPcHRpb25JZChhKSxhKTt0aGlzLnNldFByb3BlcnR5KCJ2'@; put 'YWx1ZSIsaCl9cmVnaXN0ZXJPbkNoYW5nZShhKXt0aGlzLm9uQ2hhbmdlPWQ9Pnt0aGlzLnZhbHVlPXRoaXMuX2dldE9wdGlvblZhbHVlKGQpLGEodGhpcy52YWx1ZSl9fV9yZWdpc3Rlck9wdGlvbigpe3JldHVybih0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKX1fZ2V0T3B0aW9uSWQo'@; put 'YSl7Zm9yKGNvbnN0IGQgb2YgdGhpcy5fb3B0aW9uTWFwLmtleXMoKSlpZih0aGlzLl9jb21wYXJlV2l0aCh0aGlzLl9vcHRpb25NYXAuZ2V0KGQpLGEpKXJldHVybiBkO3JldHVybiBudWxsfV9nZXRPcHRpb25WYWx1ZShhKXtjb25zdCBkPWZ1bmN0aW9uIF82ZShjKXtyZXR1cm4gYy5zcGxp'@; put 'dCgiOiIpWzBdfShhKTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLmhhcyhkKT90aGlzLl9vcHRpb25NYXAuZ2V0KGQpOmF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBsO3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4obHx8KGw9eGEoYykpKShkfHxjKX19KCksYy5cdTAyNzVk'@; put 'aXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1sic2VsZWN0IiwiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwiZm9ybUNvbnRyb2wiLCIiLDMsIm11bHRpcGxlIiwiIl0sWyJzZWxlY3QiLCJuZ01vZGVsIiwiIiwzLCJtdWx0aXBsZSIsIiJdXSxob3N0Qmlu'@; put 'ZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJjaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uQ2hhbmdlKGYudGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBkLm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVh'@; put 'dHVyZXM6W3RpKFt2NmVdKSxlb119KSxjfSkoKSxsMT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9lbGVtZW50PWEsdGhpcy5fcmVuZGVyZXI9ZCx0aGlzLl9zZWxlY3Q9aCx0aGlzLl9zZWxlY3QmJih0aGlzLmlkPXRoaXMuX3NlbGVjdC5fcmVnaXN0ZXJPcHRpb24o'@; put 'KSl9c2V0IG5nVmFsdWUoYSl7bnVsbCE9dGhpcy5fc2VsZWN0JiYodGhpcy5fc2VsZWN0Ll9vcHRpb25NYXAuc2V0KHRoaXMuaWQsYSksdGhpcy5fc2V0RWxlbWVudFZhbHVlKEVYKHRoaXMuaWQsYSkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXNldCB2'@; put 'YWx1ZShhKXt0aGlzLl9zZXRFbGVtZW50VmFsdWUoYSksdGhpcy5fc2VsZWN0JiZ0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpfV9zZXRFbGVtZW50VmFsdWUoYSl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50'@; put 'LCJ2YWx1ZSIsYSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4g'@; put 'bmV3KGF8fGMpKHR0KE5pKSx0dChGbyksdHQoTTAsOSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJvcHRpb24iXV0saW5wdXRzOntuZ1ZhbHVlOiJuZ1ZhbHVlIix2YWx1ZToidmFsdWUifX0pLGN9KSgpO2NvbnN0IGI2ZT17cHJvdmlkZTpsaCx1c2VFeGlzdGluZzpJ'@; put 'cygoKT0+ZGIpLG11bHRpOiEwfTtmdW5jdGlvbiBrWChjLGwpe3JldHVybiBudWxsPT1jP2Ake2x9YDooInN0cmluZyI9PXR5cGVvZiBsJiYobD1gJyR7bH0nYCksbCYmIm9iamVjdCI9PXR5cGVvZiBsJiYobD0iT2JqZWN0IiksYCR7Y306ICR7bH1gLnNsaWNlKDAsNTApKX1sZXQgZGI9KCgp'@; put 'PT57Y2xhc3MgYyBleHRlbmRzIE41e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKGEpe3RoaXMuX2NvbXBhcmVXaXRoPWF9'@; put 'd3JpdGVWYWx1ZShhKXtsZXQgZDtpZih0aGlzLnZhbHVlPWEsQXJyYXkuaXNBcnJheShhKSl7Y29uc3QgaD1hLm1hcChmPT50aGlzLl9nZXRPcHRpb25JZChmKSk7ZD0oZixfKT0+e2YuX3NldFNlbGVjdGVkKGguaW5kZXhPZihfLnRvU3RyaW5nKCkpPi0xKX19ZWxzZSBkPShoLGYpPT57aC5f'@; put 'c2V0U2VsZWN0ZWQoITEpfTt0aGlzLl9vcHRpb25NYXAuZm9yRWFjaChkKX1yZWdpc3Rlck9uQ2hhbmdlKGEpe3RoaXMub25DaGFuZ2U9ZD0+e2NvbnN0IGg9W10sZj1kLnNlbGVjdGVkT3B0aW9ucztpZih2b2lkIDAhPT1mKXtjb25zdCBfPWY7Zm9yKGxldCBUPTA7VDxfLmxlbmd0aDtUKysp'@; put 'e2NvbnN0IGllPXRoaXMuX2dldE9wdGlvblZhbHVlKF9bVF0udmFsdWUpO2gucHVzaChpZSl9fWVsc2V7Y29uc3QgXz1kLm9wdGlvbnM7Zm9yKGxldCBUPTA7VDxfLmxlbmd0aDtUKyspe2NvbnN0IFc9X1tUXTtpZihXLnNlbGVjdGVkKXtjb25zdCBpZT10aGlzLl9nZXRPcHRpb25WYWx1ZShX'@; put 'LnZhbHVlKTtoLnB1c2goaWUpfX19dGhpcy52YWx1ZT1oLGEoaCl9fV9yZWdpc3Rlck9wdGlvbihhKXtjb25zdCBkPSh0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLnNldChkLGEpLGR9X2dldE9wdGlvbklkKGEpe2Zvcihjb25zdCBkIG9mIHRo'@; put 'aXMuX29wdGlvbk1hcC5rZXlzKCkpaWYodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChkKS5fdmFsdWUsYSkpcmV0dXJuIGQ7cmV0dXJuIG51bGx9X2dldE9wdGlvblZhbHVlKGEpe2NvbnN0IGQ9ZnVuY3Rpb24geTZlKGMpe3JldHVybiBjLnNwbGl0KCI6IilbMF19KGEp'@; put 'O3JldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKGQpP3RoaXMuX29wdGlvbk1hcC5nZXQoZCkuX3ZhbHVlOmF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBsO3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4obHx8KGw9eGEoYykpKShkfHxjKX19KCksYy5cdTAyNzVkaXI9Q3Io'@; put 'e3R5cGU6YyxzZWxlY3RvcnM6W1sic2VsZWN0IiwibXVsdGlwbGUiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwiZm9ybUNvbnRyb2wiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rp'@; put 'b24oYSxkKXsxJmEmJnh0KCJjaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uQ2hhbmdlKGYudGFyZ2V0KX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBkLm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W3RpKFtiNmVdKSxl'@; put 'b119KSxjfSkoKSxjMT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9lbGVtZW50PWEsdGhpcy5fcmVuZGVyZXI9ZCx0aGlzLl9zZWxlY3Q9aCx0aGlzLl9zZWxlY3QmJih0aGlzLmlkPXRoaXMuX3NlbGVjdC5fcmVnaXN0ZXJPcHRpb24odGhpcykpfXNldCBuZ1ZhbHVl'@; put 'KGEpe251bGwhPXRoaXMuX3NlbGVjdCYmKHRoaXMuX3ZhbHVlPWEsdGhpcy5fc2V0RWxlbWVudFZhbHVlKGtYKHRoaXMuaWQsYSkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXNldCB2YWx1ZShhKXt0aGlzLl9zZWxlY3Q/KHRoaXMuX3ZhbHVlPWEsdGhp'@; put 'cy5fc2V0RWxlbWVudFZhbHVlKGtYKHRoaXMuaWQsYSkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpOnRoaXMuX3NldEVsZW1lbnRWYWx1ZShhKX1fc2V0RWxlbWVudFZhbHVlKGEpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnQu'@; put 'bmF0aXZlRWxlbWVudCwidmFsdWUiLGEpfV9zZXRTZWxlY3RlZChhKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInNlbGVjdGVkIixhKX1uZ09uRGVzdHJveSgpe3RoaXMuX3NlbGVjdCYmKHRoaXMuX3NlbGVjdC5fb3B0aW9uTWFwLmRl'@; put 'bGV0ZSh0aGlzLmlkKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpLHR0KEZvKSx0dChkYiw5KSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3Jz'@; put 'OltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFsdWUiLHZhbHVlOiJ2YWx1ZSJ9fSksY30pKCksSFg9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWlu'@; put 'aj1taSh7aW1wb3J0czpbd1hdfSksY30pKCkscWw9KCgpPT57Y2xhc3MgY3tzdGF0aWMgd2l0aENvbmZpZyhhKXtyZXR1cm57bmdNb2R1bGU6Yyxwcm92aWRlcnM6W3twcm92aWRlOlY1LHVzZVZhbHVlOmEuY2FsbFNldERpc2FibGVkU3RhdGU/P2xifV19fX1yZXR1cm4gYy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltIWF19KSxjfSkoKSxENmU9KCgpPT57Y2xhc3MgY3tzdGF0aWMgd2l0aENvbmZpZyhhKXtyZXR1cm57bmdNb2R1bGU6Yyxwcm92aWRlcnM6W3twcm92'@; put 'aWRlOm5GLHVzZVZhbHVlOmEud2Fybk9uTmdNb2RlbFdpdGhGb3JtQ29udHJvbD8/ImFsd2F5cyJ9LHtwcm92aWRlOlY1LHVzZVZhbHVlOmEuY2FsbFNldERpc2FibGVkU3RhdGU/P2xifV19fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAy'@; put 'NzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltIWF19KSxjfSkoKTtmdW5jdGlvbiBJNmUoYyxsKXt0aGlzLnY9Yyx0aGlzLms9bH1mdW5jdGlvbiBkRShjKXt2YXIgbCxhO2Z1bmN0aW9uIGQoZixfKXt0cnl7dmFyIFQ9Y1tmXShfKSxXPVQudmFsdWUsaWU9VyBp'@; put 'bnN0YW5jZW9mIEk2ZTtQcm9taXNlLnJlc29sdmUoaWU/Vy52OlcpLnRoZW4oZnVuY3Rpb24ocGUpe2lmKGllKXt2YXIgd2U9InJldHVybiI9PT1mPyJyZXR1cm4iOiJuZXh0IjtpZighVy5rfHxwZS5kb25lKXJldHVybiBkKHdlLHBlKTtwZT1jW3dlXShwZSkudmFsdWV9aChULmRvbmU/InJl'@; put 'dHVybiI6Im5vcm1hbCIscGUpfSxmdW5jdGlvbihwZSl7ZCgidGhyb3ciLHBlKX0pfWNhdGNoKHBlKXtoKCJ0aHJvdyIscGUpfX1mdW5jdGlvbiBoKGYsXyl7c3dpdGNoKGYpe2Nhc2UicmV0dXJuIjpsLnJlc29sdmUoe3ZhbHVlOl8sZG9uZTohMH0pO2JyZWFrO2Nhc2UidGhyb3ciOmwucmVq'@; put 'ZWN0KF8pO2JyZWFrO2RlZmF1bHQ6bC5yZXNvbHZlKHt2YWx1ZTpfLGRvbmU6ITF9KX0obD1sLm5leHQpP2QobC5rZXksbC5hcmcpOmE9bnVsbH10aGlzLl9pbnZva2U9ZnVuY3Rpb24oZixfKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oVCxXKXt2YXIgaWU9e2tleTpmLGFyZzpfLHJl'@; put 'c29sdmU6VCxyZWplY3Q6VyxuZXh0Om51bGx9O2E/YT1hLm5leHQ9aWU6KGw9YT1pZSxkKGYsXykpfSl9LCJmdW5jdGlvbiIhPXR5cGVvZiBjLnJldHVybiYmKHRoaXMucmV0dXJuPXZvaWQgMCl9ZEUucHJvdG90eXBlWyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5hc3luY0l0'@; put 'ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZEUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuX2ludm9rZSgibmV4dCIsYyl9LGRFLnByb3RvdHlwZS50aHJvdz1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5faW52b2tlKCJ0'@; put 'aHJvdyIsYyl9LGRFLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuX2ludm9rZSgicmV0dXJuIixjKX07Y2xhc3MgaEV7c3RhdGljIGdldFRyYXBFbGVtZW50cygpe3JldHVyblsuLi4kbC5zdGF0ZS5mb2N1c1RyYXBJdGVtc119c3RhdGljIHNldFRyYXBFbGVtZW50'@; put 'cyhsKXtjb25zdCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImh0bWwiKTtudWxsIT09YSYmZnVuY3Rpb24gc0YoYywuLi5sKXtjJiZsLmZvckVhY2goKFthLGRdKT0+eyExPT09ZHx8bnVsbD09PWQ/Yy5yZW1vdmVBdHRyaWJ1dGUoYSk6Yy5zZXRBdHRyaWJ1dGUoYSxkKyIiKX0pfShhLFsi'@; put 'Y2RzLWZvY3VzLXRyYXAiLCEhbC5sZW5ndGgmJiIiXSksJGwuc3RhdGUuZm9jdXNUcmFwSXRlbXM9Wy4uLmxdfXN0YXRpYyByZW1vdmVUcmFwRWxlbWVudChsKXt0aGlzLmdldFRyYXBFbGVtZW50cygpLmxlbmd0aDwxfHx0aGlzLnNldFRyYXBFbGVtZW50cyhbLi4udGhpcy5nZXRUcmFwRWxl'@; put 'bWVudHMoKS5maWx0ZXIoYT0+YS5mb2N1c1RyYXBJZCE9PWwuZm9jdXNUcmFwSWQpXSl9c3RhdGljIHNldEN1cnJlbnQobCl7bD8uZm9jdXNUcmFwSWQmJnRoaXMuc2V0VHJhcEVsZW1lbnRzKFsuLi50aGlzLmdldFRyYXBFbGVtZW50cygpLmZpbHRlcihhPT5hLmZvY3VzVHJhcElkIT09bC5m'@; put 'b2N1c1RyYXBJZCksbF0pfXN0YXRpYyBhY3RpdmF0ZVByZXZpb3VzQ3VycmVudCgpe3RoaXMuc2V0VHJhcEVsZW1lbnRzKFsuLi50aGlzLmdldFRyYXBFbGVtZW50cygpXS5zbGljZSgwLC0xKSl9c3RhdGljIGdldEN1cnJlbnQoKXtyZXR1cm4gZnVuY3Rpb24gTDZlKGMpe3JldHVybiBjLmxl'@; put 'bmd0aD9jW2MubGVuZ3RoLTFdOnZvaWQgMH0odGhpcy5nZXRUcmFwRWxlbWVudHMoKSl8fG51bGx9fWNvbnN0IFU2ZT1FSygzLChjLGwsYSk9PnshZnVuY3Rpb24gc21lKGMsbCl7cmV0dXJuIGx8fChsPXdpbmRvdyYmd2luZG93LmN1c3RvbUVsZW1lbnRzKSwhbHx8ISFsLmdldChjKX0oYyl8'@; put 'fGZ1bmN0aW9uIFVnZSgpe3JldHVybiB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmPy5pbmNsdWRlcygibG9jYWxob3N0OjYwMDYiKX0oKT8oYS5kZWZpbmUoYyxsKSxBSygpLHdpbmRvdyYmIU9iamVjdC5rZXlzKHdpbmRvdy5DRFMuX3N0YXRlLmVsZW1lbnRSZWdpc3RyeSkuc29tZShkPT5kPT09'@; put 'YykmJih3aW5kb3cuQ0RTLl9zdGF0ZS5lbGVtZW50UmVnaXN0cnk9ey4uLndpbmRvdy5DRFMuX3N0YXRlLmVsZW1lbnRSZWdpc3RyeSxbY106e319KSk6SDUud2FybihjKyIgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIil9KTtmdW5jdGlvbiBWWChjLGwpe3BLKCkmJmtLKFsiY3VzdG9t'@; put 'RWxlbWVudHMiXSkmJlU2ZShjLGwsd2luZG93LmN1c3RvbUVsZW1lbnRzKX1sZXQgQlg9ITE7ZnVuY3Rpb24gWjZlKGMpe2lmKChjPU1hdGgudHJ1bmMoYyl8fDApPDAmJihjKz10aGlzLmxlbmd0aCksIShjPDB8fGM+PXRoaXMubGVuZ3RoKSlyZXR1cm4gdGhpc1tjXX1pZighQlgpe0JYPSEw'@; put 'O2NvbnN0IGM9UmVmbGVjdC5nZXRQcm90b3R5cGVPZihJbnQ4QXJyYXkpO2Zvcihjb25zdCBsIG9mW0FycmF5LFN0cmluZyxjXSlPYmplY3QuZGVmaW5lUHJvcGVydHkobC5wcm90b3R5cGUsImF0Iix7dmFsdWU6WjZlLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEw'@; put 'fSl9bGV0IGpYPSExLHpYPSExO2Z1bmN0aW9uIFVYKGMsbCxhKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUobCk/dGhpcy5nZXRBdHRyaWJ1dGUobCk6bnVsbH0s'@; put 'c2V0OmZ1bmN0aW9uKGQpe251bGwhPT1kP3RoaXMuc2V0QXR0cmlidXRlKGwsZCk6dGhpcy5yZW1vdmVBdHRyaWJ1dGUobCl9fSl9alh8fEVsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJyb2xlIil8fChVWChFbGVtZW50LnByb3RvdHlwZSwicm9sZSIsInJvbGUiKSxqWD0hMCks'@; put 'elh8fEVsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJhcmlhTGFiZWwiKXx8KHpYPSEwLFsiQWN0aXZlRGVzY2VuZGFudCIsIkF0b21pYyIsIkF1dG9Db21wbGV0ZSIsIkJ1c3kiLCJDaGVja2VkIiwiQ29sQ291bnQiLCJDb2xJbmRleCIsIkNvbFNwYW4iLCJDb250cm9scyIsIkN1'@; put 'cnJlbnQiLCJEZXNjcmliZWRCeSIsIkRldGFpbHMiLCJEaXNhYmxlZCIsIkVycm9yTWVzc2FnZSIsIkV4cGFuZGVkIiwiRmxvd1RvIiwiSGFzUG9wdXAiLCJIaWRkZW4iLCJJbnZhbGlkIiwiS2V5U2hvcnRjdXRzIiwiTGFiZWwiLCJMYWJlbGxlZEJ5IiwiTGV2ZWwiLCJMaXZlIiwiTW9kYWwi'@; put 'LCJNdWx0aUxpbmUiLCJNdWx0aVNlbGVjdGFibGUiLCJPcmllbnRhdGlvbiIsIk93bnMiLCJQbGFjZWhvbGRlciIsIlBvc0luU2V0IiwiUHJlc3NlZCIsIlJlYWRPbmx5IiwiUmVsZXZhbnQiLCJSZXF1aXJlZCIsIlJvbGVEZXNjcmlwdGlvbiIsIlJvd0NvdW50IiwiUm93SW5kZXgiLCJSb3dT'@; put 'cGFuIiwiU2VsZWN0ZWQiLCJTZXRTaXplIiwiU29ydCIsIlZhbHVlTWF4IiwiVmFsdWVNaW4iLCJWYWx1ZU5vdyIsIlZhbHVlVGV4dCJdLmZvckVhY2goYz0+VVgoRWxlbWVudC5wcm90b3R5cGUsImFyaWEtIitjLnRvTG93ZXJDYXNlKCksImFyaWEiK2MpKSk7Y29uc3QgZkU9d2luZG93LGFG'@; put 'PWZFLlNoYWRvd1Jvb3QmJih2b2lkIDA9PT1mRS5TaGFkeUNTU3x8ZkUuU2hhZHlDU1MubmF0aXZlU2hhZG93KSYmImFkb3B0ZWRTdHlsZVNoZWV0cyJpbiBEb2N1bWVudC5wcm90b3R5cGUmJiJyZXBsYWNlImluIENTU1N0eWxlU2hlZXQucHJvdG90eXBlLGxGPVN5bWJvbCgpLFpYPW5ldyBX'@; put 'ZWFrTWFwO2NsYXNzIFlYe2NvbnN0cnVjdG9yKGwsYSxkKXtpZih0aGlzLl8kY3NzUmVzdWx0JD0hMCxkIT09bEYpdGhyb3cgRXJyb3IoIkNTU1Jlc3VsdCBpcyBub3QgY29uc3RydWN0YWJsZS4gVXNlIGB1bnNhZmVDU1NgIG9yIGBjc3NgIGluc3RlYWQuIik7dGhpcy5jc3NUZXh0PWwsdGhp'@; put 'cy50PWF9Z2V0IHN0eWxlU2hlZXQoKXtsZXQgbD10aGlzLm87Y29uc3QgYT10aGlzLnQ7aWYoYUYmJnZvaWQgMD09PWwpe2NvbnN0IGQ9dm9pZCAwIT09YSYmMT09PWEubGVuZ3RoO2QmJihsPVpYLmdldChhKSksdm9pZCAwPT09bCYmKCh0aGlzLm89bD1uZXcgQ1NTU3R5bGVTaGVldCkucmVw'@; put 'bGFjZVN5bmModGhpcy5jc3NUZXh0KSxkJiZaWC5zZXQoYSxsKSl9cmV0dXJuIGx9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3NUZXh0fX1jb25zdCBjRj0oYywuLi5sKT0+e2NvbnN0IGE9MT09PWMubGVuZ3RoP2NbMF06bC5yZWR1Y2UoKGQsaCxmKT0+ZCsoXz0+e2lmKCEwPT09Xy5fJGNz'@; put 'c1Jlc3VsdCQpcmV0dXJuIF8uY3NzVGV4dDtpZigibnVtYmVyIj09dHlwZW9mIF8pcmV0dXJuIF87dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK18rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mg'@; put 'bm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoaCkrY1tmKzFdLGNbMF0pO3JldHVybiBuZXcgWVgoYSxjLGxGKX0sV1g9YUY/Yz0+YzpjPT5jIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD8obD0+e2xldCBhPSIiO2Zvcihjb25z'@; put 'dCBkIG9mIGwuY3NzUnVsZXMpYSs9ZC5jc3NUZXh0O3JldHVybihjPT5uZXcgWVgoInN0cmluZyI9PXR5cGVvZiBjP2M6YysiIix2b2lkIDAsbEYpKShhKX0pKGMpOmM7dmFyIHVGO2NvbnN0IHBFPXdpbmRvdyxHWD1wRS50cnVzdGVkVHlwZXMsRzZlPUdYP0dYLmVtcHR5U2NyaXB0OiIiLCRY'@; put 'PXBFLnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxkRj17dG9BdHRyaWJ1dGUoYyxsKXtzd2l0Y2gobCl7Y2FzZSBCb29sZWFuOmM9Yz9HNmU6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmM9bnVsbD09Yz9jOkpTT04uc3RyaW5naWZ5KGMpfXJldHVybiBjfSxmcm9t'@; put 'QXR0cmlidXRlKGMsbCl7bGV0IGE9Yztzd2l0Y2gobCl7Y2FzZSBCb29sZWFuOmE9bnVsbCE9PWM7YnJlYWs7Y2FzZSBOdW1iZXI6YT1udWxsPT09Yz9udWxsOk51bWJlcihjKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXthPUpTT04ucGFyc2UoYyl9Y2F0Y2h7YT1udWxsfX1y'@; put 'ZXR1cm4gYX19LHFYPShjLGwpPT5sIT09YyYmKGw9PWx8fGM9PWMpLGhGPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOmRGLHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpxWH0sZkY9ImZpbmFsaXplZCI7Y2xhc3MgZzggZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigp'@; put 'e3N1cGVyKCksdGhpcy5fJEVpPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITEsdGhpcy5oYXNVcGRhdGVkPSExLHRoaXMuXyRFbD1udWxsLHRoaXMudSgpfXN0YXRpYyBhZGRJbml0aWFsaXplcihsKXt2YXIgYTt0aGlzLmZpbmFsaXplKCksKG51bGwhPT0oYT10aGlzLmgpJiZ2b2lk'@; put 'IDAhPT1hP2E6dGhpcy5oPVtdKS5wdXNoKGwpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7dGhpcy5maW5hbGl6ZSgpO2NvbnN0IGw9W107cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRpZXMuZm9yRWFjaCgoYSxkKT0+e2NvbnN0IGg9dGhpcy5fJEVwKGQsYSk7dm9pZCAwIT09'@; put 'aCYmKHRoaXMuXyRFdi5zZXQoaCxkKSxsLnB1c2goaCkpfSksbH1zdGF0aWMgY3JlYXRlUHJvcGVydHkobCxhPWhGKXtpZihhLnN0YXRlJiYoYS5hdHRyaWJ1dGU9ITEpLHRoaXMuZmluYWxpemUoKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChsLGEpLCFhLm5vQWNjZXNzb3ImJiF0aGlz'@; put 'LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShsKSl7Y29uc3QgZD0ic3ltYm9sIj09dHlwZW9mIGw/U3ltYm9sKCk6Il9fIitsLGg9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IobCxkLGEpO3ZvaWQgMCE9PWgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnByb3RvdHlwZSxsLGgpfX1z'@; put 'dGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGwsYSxkKXtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbYV19LHNldChoKXtjb25zdCBmPXRoaXNbbF07dGhpc1thXT1oLHRoaXMucmVxdWVzdFVwZGF0ZShsLGYsZCl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0'@; put 'UHJvcGVydHlPcHRpb25zKGwpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChsKXx8aEZ9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShmRikpcmV0dXJuITE7dGhpc1tmRl09ITA7Y29uc3QgbD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7aWYo'@; put 'bC5maW5hbGl6ZSgpLHZvaWQgMCE9PWwuaCYmKHRoaXMuaD1bLi4ubC5oXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKGwuZWxlbWVudFByb3BlcnRpZXMpLHRoaXMuXyRFdj1uZXcgTWFwLHRoaXMuaGFzT3duUHJvcGVydHkoInByb3BlcnRpZXMiKSl7Y29uc3QgYT10aGlzLnBy'@; put 'b3BlcnRpZXMsZD1bLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYSksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKV07Zm9yKGNvbnN0IGggb2YgZCl0aGlzLmNyZWF0ZVByb3BlcnR5KGgsYVtoXSl9cmV0dXJuIHRoaXMuZWxlbWVudFN0eWxlcz10aGlzLmZpbmFsaXpl'@; put 'U3R5bGVzKHRoaXMuc3R5bGVzKSwhMH1zdGF0aWMgZmluYWxpemVTdHlsZXMobCl7Y29uc3QgYT1bXTtpZihBcnJheS5pc0FycmF5KGwpKXtjb25zdCBkPW5ldyBTZXQobC5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IoY29uc3QgaCBvZiBkKWEudW5zaGlmdChXWChoKSl9ZWxzZSB2b2lkIDAh'@; put 'PT1sJiZhLnB1c2goV1gobCkpO3JldHVybiBhfXN0YXRpYyBfJEVwKGwsYSl7Y29uc3QgZD1hLmF0dHJpYnV0ZTtyZXR1cm4hMT09PWQ/dm9pZCAwOiJzdHJpbmciPT10eXBlb2YgZD9kOiJzdHJpbmciPT10eXBlb2YgbD9sLnRvTG93ZXJDYXNlKCk6dm9pZCAwfXUoKXt2YXIgbDt0aGlzLl8k'@; put 'RV89bmV3IFByb21pc2UoYT0+dGhpcy5lbmFibGVVcGRhdGluZz1hKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8kRWcoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxudWxsPT09KGw9dGhpcy5jb25zdHJ1Y3Rvci5oKXx8dm9pZCAwPT09bHx8bC5mb3JFYWNoKGE9PmEodGhpcykpfWFkZENvbnRy'@; put 'b2xsZXIobCl7dmFyIGEsZDsobnVsbCE9PShhPXRoaXMuXyRFUykmJnZvaWQgMCE9PWE/YTp0aGlzLl8kRVM9W10pLnB1c2gobCksdm9pZCAwIT09dGhpcy5yZW5kZXJSb290JiZ0aGlzLmlzQ29ubmVjdGVkJiYobnVsbD09PShkPWwuaG9zdENvbm5lY3RlZCl8fHZvaWQgMD09PWR8fGQuY2Fs'@; put 'bChsKSl9cmVtb3ZlQ29udHJvbGxlcihsKXt2YXIgYTtudWxsPT09KGE9dGhpcy5fJEVTKXx8dm9pZCAwPT09YXx8YS5zcGxpY2UodGhpcy5fJEVTLmluZGV4T2YobCk+Pj4wLDEpfV8kRWcoKXt0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmZvckVhY2goKGwsYSk9Pnt0aGlz'@; put 'Lmhhc093blByb3BlcnR5KGEpJiYodGhpcy5fJEVpLnNldChhLHRoaXNbYV0pLGRlbGV0ZSB0aGlzW2FdKX0pfWNyZWF0ZVJlbmRlclJvb3QoKXt2YXIgbDtjb25zdCBhPW51bGwhPT0obD10aGlzLnNoYWRvd1Jvb3QpJiZ2b2lkIDAhPT1sP2w6dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25z'@; put 'dHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuKChjLGwpPT57YUY/Yy5hZG9wdGVkU3R5bGVTaGVldHM9bC5tYXAoYT0+YSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/YTphLnN0eWxlU2hlZXQpOmwuZm9yRWFjaChhPT57Y29uc3QgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz'@; put 'dHlsZSIpLGg9ZkUubGl0Tm9uY2U7dm9pZCAwIT09aCYmZC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixoKSxkLnRleHRDb250ZW50PWEuY3NzVGV4dCxjLmFwcGVuZENoaWxkKGQpfSl9KShhLHRoaXMuY29uc3RydWN0b3IuZWxlbWVudFN0eWxlcyksYX1jb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBs'@; put 'O3ZvaWQgMD09PXRoaXMucmVuZGVyUm9vdCYmKHRoaXMucmVuZGVyUm9vdD10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSksdGhpcy5lbmFibGVVcGRhdGluZyghMCksbnVsbD09PShsPXRoaXMuXyRFUyl8fHZvaWQgMD09PWx8fGwuZm9yRWFjaChhPT57dmFyIGQ7cmV0dXJuIG51bGw9PT0oZD1h'@; put 'Lmhvc3RDb25uZWN0ZWQpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLmNhbGwoYSl9KX1lbmFibGVVcGRhdGluZyhsKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgbDtudWxsPT09KGw9dGhpcy5fJEVTKXx8dm9pZCAwPT09bHx8bC5mb3JFYWNoKGE9Pnt2YXIgZDtyZXR1cm4gbnVsbD09PShk'@; put 'PWEuaG9zdERpc2Nvbm5lY3RlZCl8fHZvaWQgMD09PWQ/dm9pZCAwOmQuY2FsbChhKX0pfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhsLGEsZCl7dGhpcy5fJEFLKGwsZCl9XyRFTyhsLGEsZD1oRil7dmFyIGg7Y29uc3QgZj10aGlzLmNvbnN0cnVjdG9yLl8kRXAobCxkKTtpZih2b2lkIDAh'@; put 'PT1mJiYhMD09PWQucmVmbGVjdCl7Y29uc3QgXz0odm9pZCAwIT09KG51bGw9PT0oaD1kLmNvbnZlcnRlcil8fHZvaWQgMD09PWg/dm9pZCAwOmgudG9BdHRyaWJ1dGUpP2QuY29udmVydGVyOmRGKS50b0F0dHJpYnV0ZShhLGQudHlwZSk7dGhpcy5fJEVsPWwsbnVsbD09Xz90aGlzLnJlbW92'@; put 'ZUF0dHJpYnV0ZShmKTp0aGlzLnNldEF0dHJpYnV0ZShmLF8pLHRoaXMuXyRFbD1udWxsfX1fJEFLKGwsYSl7dmFyIGQ7Y29uc3QgaD10aGlzLmNvbnN0cnVjdG9yLGY9aC5fJEV2LmdldChsKTtpZih2b2lkIDAhPT1mJiZ0aGlzLl8kRWwhPT1mKXtjb25zdCBfPWguZ2V0UHJvcGVydHlPcHRp'@; put 'b25zKGYpLFQ9ImZ1bmN0aW9uIj09dHlwZW9mIF8uY29udmVydGVyP3tmcm9tQXR0cmlidXRlOl8uY29udmVydGVyfTp2b2lkIDAhPT0obnVsbD09PShkPV8uY29udmVydGVyKXx8dm9pZCAwPT09ZD92b2lkIDA6ZC5mcm9tQXR0cmlidXRlKT9fLmNvbnZlcnRlcjpkRjt0aGlzLl8kRWw9Zix0'@; put 'aGlzW2ZdPVQuZnJvbUF0dHJpYnV0ZShhLF8udHlwZSksdGhpcy5fJEVsPW51bGx9fXJlcXVlc3RVcGRhdGUobCxhLGQpe2xldCBoPSEwO3ZvaWQgMCE9PWwmJigoKGQ9ZHx8dGhpcy5jb25zdHJ1Y3Rvci5nZXRQcm9wZXJ0eU9wdGlvbnMobCkpLmhhc0NoYW5nZWR8fHFYKSh0aGlzW2xdLGEp'@; put 'Pyh0aGlzLl8kQUwuaGFzKGwpfHx0aGlzLl8kQUwuc2V0KGwsYSksITA9PT1kLnJlZmxlY3QmJnRoaXMuXyRFbCE9PWwmJih2b2lkIDA9PT10aGlzLl8kRUMmJih0aGlzLl8kRUM9bmV3IE1hcCksdGhpcy5fJEVDLnNldChsLGQpKSk6aD0hMSksIXRoaXMuaXNVcGRhdGVQZW5kaW5nJiZoJiYo'@; put 'dGhpcy5fJEVfPXRoaXMuXyRFaigpKX1fJEVqKCl7dmFyIGw9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7bC5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e3lpZWxkIGwuXyRFX31jYXRjaChkKXtQcm9taXNlLnJlamVjdChkKX1jb25zdCBhPWwuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gbnVs'@; put 'bCE9YSYmKHlpZWxkIGEpLCFsLmlzVXBkYXRlUGVuZGluZ30pKCl9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe3ZhciBsO2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47dGhpcy5fJEVpJiYodGhpcy5fJEVpLmZvckVh'@; put 'Y2goKGgsZik9PnRoaXNbZl09aCksdGhpcy5fJEVpPXZvaWQgMCk7bGV0IGE9ITE7Y29uc3QgZD10aGlzLl8kQUw7dHJ5e2E9dGhpcy5zaG91bGRVcGRhdGUoZCksYT8odGhpcy53aWxsVXBkYXRlKGQpLG51bGw9PT0obD10aGlzLl8kRVMpfHx2b2lkIDA9PT1sfHxsLmZvckVhY2goaD0+e3Zh'@; put 'ciBmO3JldHVybiBudWxsPT09KGY9aC5ob3N0VXBkYXRlKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi5jYWxsKGgpfSksdGhpcy51cGRhdGUoZCkpOnRoaXMuXyRFaygpfWNhdGNoKGgpe3Rocm93IGE9ITEsdGhpcy5fJEVrKCksaH1hJiZ0aGlzLl8kQUUoZCl9d2lsbFVwZGF0ZShsKXt9XyRBRShs'@; put 'KXt2YXIgYTtudWxsPT09KGE9dGhpcy5fJEVTKXx8dm9pZCAwPT09YXx8YS5mb3JFYWNoKGQ9Pnt2YXIgaDtyZXR1cm4gbnVsbD09PShoPWQuaG9zdFVwZGF0ZWQpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLmNhbGwoZCl9KSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhp'@; put 'cy5maXJzdFVwZGF0ZWQobCkpLHRoaXMudXBkYXRlZChsKX1fJEVrKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0'@; put 'aGlzLl8kRV99c2hvdWxkVXBkYXRlKGwpe3JldHVybiEwfXVwZGF0ZShsKXt2b2lkIDAhPT10aGlzLl8kRUMmJih0aGlzLl8kRUMuZm9yRWFjaCgoYSxkKT0+dGhpcy5fJEVPKGQsdGhpc1tkXSxhKSksdGhpcy5fJEVDPXZvaWQgMCksdGhpcy5fJEVrKCl9dXBkYXRlZChsKXt9Zmlyc3RVcGRh'@; put 'dGVkKGwpe319dmFyIHBGO2c4W2ZGXT0hMCxnOC5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwLGc4LmVsZW1lbnRTdHlsZXM9W10sZzguc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSwkWD8uKHtSZWFjdGl2ZUVsZW1lbnQ6Zzh9KSwobnVsbCE9PSh1Rj1wRS5yZWFjdGl2ZUVsZW1l'@; put 'bnRWZXJzaW9ucykmJnZvaWQgMCE9PXVGP3VGOnBFLnJlYWN0aXZlRWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIxLjYuMiIpO2NvbnN0IGdFPXdpbmRvdyxtOD1nRS50cnVzdGVkVHlwZXMsS1g9bTg/bTguY3JlYXRlUG9saWN5KCJsaXQtaHRtbCIse2NyZWF0ZUhUTUw6Yz0+Y30pOnZvaWQg'@; put 'MCxtRT0iJGxpdCQiLFRmPWBsaXQkJHsoTWF0aC5yYW5kb20oKSsiIikuc2xpY2UoOSl9JGAsZ0Y9Ij8iK1RmLCQ2ZT1gPCR7Z0Z9PmAsajU9ZG9jdW1lbnQsaGI9KCk9Pmo1LmNyZWF0ZUNvbW1lbnQoIiIpLGZiPWM9Pm51bGw9PT1jfHwib2JqZWN0IiE9dHlwZW9mIGMmJiJmdW5jdGlvbiIh'@; put 'PXR5cGVvZiBjLFhYPUFycmF5LmlzQXJyYXksbUY9IlsgXHRcblxmXHJdIixwYj0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxRWD0vLS0+L2csZUo9Lz4vZyx6NT1SZWdFeHAoYD58JHttRn0oPzooW15cXHMiJz49L10rKSgke21GfSo9JHtt'@; put 'Rn0qKD86W14gXHRcblxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSx0Sj0vJy9nLG5KPS8iL2cscko9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLGlKPWM9PihsLC4uLmEpPT4oe18kbGl0VHlwZSQ6YyxzdHJpbmdzOmwsdmFsdWVzOmF9KSx2Rj1pSigxKSxxNmU9'@; put 'aUooMiksdjg9U3ltYm9sLmZvcigibGl0LW5vQ2hhbmdlIiksRGM9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSxvSj1uZXcgV2Vha01hcCxVNT1qNS5jcmVhdGVUcmVlV2Fsa2VyKGo1LDEyOSxudWxsLCExKTtmdW5jdGlvbiBzSihjLGwpe2lmKCFBcnJheS5pc0FycmF5KGMpfHwhYy5oYXNP'@; put 'd25Qcm9wZXJ0eSgicmF3IikpdGhyb3cgRXJyb3IoImludmFsaWQgdGVtcGxhdGUgc3RyaW5ncyBhcnJheSIpO3JldHVybiB2b2lkIDAhPT1LWD9LWC5jcmVhdGVIVE1MKGwpOmx9Y2xhc3MgZ2J7Y29uc3RydWN0b3Ioe3N0cmluZ3M6bCxfJGxpdFR5cGUkOmF9LGQpe2xldCBoO3RoaXMucGFy'@; put 'dHM9W107bGV0IGY9MCxfPTA7Y29uc3QgVD1sLmxlbmd0aC0xLFc9dGhpcy5wYXJ0cyxbaWUscGVdPSgoYyxsKT0+e2NvbnN0IGE9Yy5sZW5ndGgtMSxkPVtdO2xldCBoLGY9Mj09PWw/Ijxzdmc+IjoiIixfPXBiO2ZvcihsZXQgVD0wO1Q8YTtUKyspe2NvbnN0IFc9Y1tUXTtsZXQgaWUscGUs'@; put 'd2U9LTEsRWU9MDtmb3IoO0VlPFcubGVuZ3RoJiYoXy5sYXN0SW5kZXg9RWUscGU9Xy5leGVjKFcpLG51bGwhPT1wZSk7KUVlPV8ubGFzdEluZGV4LF89PT1wYj8iIS0tIj09PXBlWzFdP189UVg6dm9pZCAwIT09cGVbMV0/Xz1lSjp2b2lkIDAhPT1wZVsyXT8ockoudGVzdChwZVsyXSkmJiho'@; put 'PVJlZ0V4cCgiPC8iK3BlWzJdLCJnIikpLF89ejUpOnZvaWQgMCE9PXBlWzNdJiYoXz16NSk6Xz09PXo1PyI+Ij09PXBlWzBdPyhfPWg/P3BiLHdlPS0xKTp2b2lkIDA9PT1wZVsxXT93ZT0tMjood2U9Xy5sYXN0SW5kZXgtcGVbMl0ubGVuZ3RoLGllPXBlWzFdLF89dm9pZCAwPT09cGVbM10/'@; put 'ejU6JyInPT09cGVbM10/bko6dEopOl89PT1uSnx8Xz09PXRKP189ejU6Xz09PVFYfHxfPT09ZUo/Xz1wYjooXz16NSxoPXZvaWQgMCk7Y29uc3QgWmU9Xz09PXo1JiZjW1QrMV0uc3RhcnRzV2l0aCgiLz4iKT8iICI6IiI7Zis9Xz09PXBiP1crJDZlOndlPj0wPyhkLnB1c2goaWUpLFcuc2xp'@; put 'Y2UoMCx3ZSkrbUUrVy5zbGljZSh3ZSkrVGYrWmUpOlcrVGYrKC0yPT09d2U/KGQucHVzaCh2b2lkIDApLFQpOlplKX1yZXR1cm5bc0ooYyxmKyhjW2FdfHwiPD8+IikrKDI9PT1sPyI8L3N2Zz4iOiIiKSksZF19KShsLGEpO2lmKHRoaXMuZWw9Z2IuY3JlYXRlRWxlbWVudChpZSxkKSxVNS5j'@; put 'dXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQsMj09PWEpe2NvbnN0IHdlPXRoaXMuZWwuY29udGVudCxFZT13ZS5maXJzdENoaWxkO0VlLnJlbW92ZSgpLHdlLmFwcGVuZCguLi5FZS5jaGlsZE5vZGVzKX1mb3IoO251bGwhPT0oaD1VNS5uZXh0Tm9kZSgpKSYmVy5sZW5ndGg8VDspe2lmKDE9'@; put 'PT1oLm5vZGVUeXBlKXtpZihoLmhhc0F0dHJpYnV0ZXMoKSl7Y29uc3Qgd2U9W107Zm9yKGNvbnN0IEVlIG9mIGguZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihFZS5lbmRzV2l0aChtRSl8fEVlLnN0YXJ0c1dpdGgoVGYpKXtjb25zdCBaZT1wZVtfKytdO2lmKHdlLnB1c2goRWUpLHZvaWQgMCE9'@; put 'PVplKXtjb25zdCBpdD1oLmdldEF0dHJpYnV0ZShaZS50b0xvd2VyQ2FzZSgpK21FKS5zcGxpdChUZiksZXQ9LyhbLj9AXSk/KC4qKS8uZXhlYyhaZSk7Vy5wdXNoKHt0eXBlOjEsaW5kZXg6ZixuYW1lOmV0WzJdLHN0cmluZ3M6aXQsY3RvcjoiLiI9PT1ldFsxXT9jSjoiPyI9PT1ldFsxXT91'@; put 'SjoiQCI9PT1ldFsxXT9kSjptYn0pfWVsc2UgVy5wdXNoKHt0eXBlOjYsaW5kZXg6Zn0pfWZvcihjb25zdCBFZSBvZiB3ZSloLnJlbW92ZUF0dHJpYnV0ZShFZSl9aWYockoudGVzdChoLnRhZ05hbWUpKXtjb25zdCB3ZT1oLnRleHRDb250ZW50LnNwbGl0KFRmKSxFZT13ZS5sZW5ndGgtMTtp'@; put 'ZihFZT4wKXtoLnRleHRDb250ZW50PW04P204LmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgWmU9MDtaZTxFZTtaZSsrKWguYXBwZW5kKHdlW1plXSxoYigpKSxVNS5uZXh0Tm9kZSgpLFcucHVzaCh7dHlwZToyLGluZGV4OisrZn0pO2guYXBwZW5kKHdlW0VlXSxoYigpKX19fWVsc2UgaWYoOD09'@; put 'PWgubm9kZVR5cGUpaWYoaC5kYXRhPT09Z0YpVy5wdXNoKHt0eXBlOjIsaW5kZXg6Zn0pO2Vsc2V7bGV0IHdlPS0xO2Zvcig7LTEhPT0od2U9aC5kYXRhLmluZGV4T2YoVGYsd2UrMSkpOylXLnB1c2goe3R5cGU6NyxpbmRleDpmfSksd2UrPVRmLmxlbmd0aC0xfWYrK319c3RhdGljIGNyZWF0'@; put 'ZUVsZW1lbnQobCxhKXtjb25zdCBkPWo1LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIGQuaW5uZXJIVE1MPWwsZH19ZnVuY3Rpb24gWjUoYyxsLGE9YyxkKXt2YXIgaCxmLF8sVDtpZihsPT09djgpcmV0dXJuIGw7bGV0IFc9dm9pZCAwIT09ZD9udWxsPT09KGg9YS5fJENvKXx8'@; put 'dm9pZCAwPT09aD92b2lkIDA6aFtkXTphLl8kQ2w7Y29uc3QgaWU9ZmIobCk/dm9pZCAwOmwuXyRsaXREaXJlY3RpdmUkO3JldHVybiBXPy5jb25zdHJ1Y3RvciE9PWllJiYobnVsbD09PShmPVc/Ll8kQU8pfHx2b2lkIDA9PT1mfHxmLmNhbGwoVywhMSksdm9pZCAwPT09aWU/Vz12b2lkIDA6'@; put 'KFc9bmV3IGllKGMpLFcuXyRBVChjLGEsZCkpLHZvaWQgMCE9PWQ/KG51bGwhPT0oXz0oVD1hKS5fJENvKSYmdm9pZCAwIT09Xz9fOlQuXyRDbz1bXSlbZF09VzphLl8kQ2w9Vyksdm9pZCAwIT09VyYmKGw9WjUoYyxXLl8kQVMoYyxsLnZhbHVlcyksVyxkKSksbH1jbGFzcyBsSntjb25zdHJ1'@; put 'Y3RvcihsLGEpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD1sLHRoaXMuXyRBTT1hfWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUobCl7dmFyIGE7Y29uc3R7ZWw6e2Nv'@; put 'bnRlbnQ6ZH0scGFydHM6aH09dGhpcy5fJEFELGY9KG51bGwhPT0oYT1sPy5jcmVhdGlvblNjb3BlKSYmdm9pZCAwIT09YT9hOmo1KS5pbXBvcnROb2RlKGQsITApO1U1LmN1cnJlbnROb2RlPWY7bGV0IF89VTUubmV4dE5vZGUoKSxUPTAsVz0wLGllPWhbMF07Zm9yKDt2b2lkIDAhPT1pZTsp'@; put 'e2lmKFQ9PT1pZS5pbmRleCl7bGV0IHBlOzI9PT1pZS50eXBlP3BlPW5ldyBfOChfLF8ubmV4dFNpYmxpbmcsdGhpcyxsKToxPT09aWUudHlwZT9wZT1uZXcgaWUuY3RvcihfLGllLm5hbWUsaWUuc3RyaW5ncyx0aGlzLGwpOjY9PT1pZS50eXBlJiYocGU9bmV3IGhKKF8sdGhpcyxsKSksdGhp'@; put 'cy5fJEFWLnB1c2gocGUpLGllPWhbKytXXX1UIT09aWU/LmluZGV4JiYoXz1VNS5uZXh0Tm9kZSgpLFQrKyl9cmV0dXJuIFU1LmN1cnJlbnROb2RlPWo1LGZ9dihsKXtsZXQgYT0wO2Zvcihjb25zdCBkIG9mIHRoaXMuXyRBVil2b2lkIDAhPT1kJiYodm9pZCAwIT09ZC5zdHJpbmdzPyhkLl8k'@; put 'QUkobCxkLGEpLGErPWQuc3RyaW5ncy5sZW5ndGgtMik6ZC5fJEFJKGxbYV0pKSxhKyt9fWNsYXNzIF84e2NvbnN0cnVjdG9yKGwsYSxkLGgpe3ZhciBmO3RoaXMudHlwZT0yLHRoaXMuXyRBSD1EYyx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBQT1sLHRoaXMuXyRBQj1hLHRoaXMuXyRBTT1k'@; put 'LHRoaXMub3B0aW9ucz1oLHRoaXMuXyRDcD1udWxsPT09KGY9aD8uaXNDb25uZWN0ZWQpfHx2b2lkIDA9PT1mfHxmfWdldCBfJEFVKCl7dmFyIGwsYTtyZXR1cm4gbnVsbCE9PShhPW51bGw9PT0obD10aGlzLl8kQU0pfHx2b2lkIDA9PT1sP3ZvaWQgMDpsLl8kQVUpJiZ2b2lkIDAhPT1hP2E6'@; put 'dGhpcy5fJENwfWdldCBwYXJlbnROb2RlKCl7bGV0IGw9dGhpcy5fJEFBLnBhcmVudE5vZGU7Y29uc3QgYT10aGlzLl8kQU07cmV0dXJuIHZvaWQgMCE9PWEmJjExPT09bD8ubm9kZVR5cGUmJihsPWEucGFyZW50Tm9kZSksbH1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQg'@; put 'ZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShsLGE9dGhpcyl7bD1aNSh0aGlzLGwsYSksZmIobCk/bD09PURjfHxudWxsPT1sfHwiIj09PWw/KHRoaXMuXyRBSCE9PURjJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9RGMpOmwhPT10aGlzLl8kQUgmJmwhPT12OCYmdGhpcy5fKGwpOnZv'@; put 'aWQgMCE9PWwuXyRsaXRUeXBlJD90aGlzLmcobCk6dm9pZCAwIT09bC5ub2RlVHlwZT90aGlzLiQobCk6KGM9PlhYKGMpfHwiZnVuY3Rpb24iPT10eXBlb2YgYz8uW1N5bWJvbC5pdGVyYXRvcl0pKGwpP3RoaXMuVChsKTp0aGlzLl8obCl9ayhsKXtyZXR1cm4gdGhpcy5fJEFBLnBhcmVudE5v'@; put 'ZGUuaW5zZXJ0QmVmb3JlKGwsdGhpcy5fJEFCKX0kKGwpe3RoaXMuXyRBSCE9PWwmJih0aGlzLl8kQVIoKSx0aGlzLl8kQUg9dGhpcy5rKGwpKX1fKGwpe3RoaXMuXyRBSCE9PURjJiZmYih0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPWw6dGhpcy4kKGo1LmNyZWF0ZVRl'@; put 'eHROb2RlKGwpKSx0aGlzLl8kQUg9bH1nKGwpe3ZhciBhO2NvbnN0e3ZhbHVlczpkLF8kbGl0VHlwZSQ6aH09bCxmPSJudW1iZXIiPT10eXBlb2YgaD90aGlzLl8kQUMobCk6KHZvaWQgMD09PWguZWwmJihoLmVsPWdiLmNyZWF0ZUVsZW1lbnQoc0ooaC5oLGguaFswXSksdGhpcy5vcHRpb25z'@; put 'KSksaCk7aWYoKG51bGw9PT0oYT10aGlzLl8kQUgpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLl8kQUQpPT09Zil0aGlzLl8kQUgudihkKTtlbHNle2NvbnN0IF89bmV3IGxKKGYsdGhpcyksVD1fLnUodGhpcy5vcHRpb25zKTtfLnYoZCksdGhpcy4kKFQpLHRoaXMuXyRBSD1ffX1fJEFDKGwpe2xl'@; put 'dCBhPW9KLmdldChsLnN0cmluZ3MpO3JldHVybiB2b2lkIDA9PT1hJiZvSi5zZXQobC5zdHJpbmdzLGE9bmV3IGdiKGwpKSxhfVQobCl7WFgodGhpcy5fJEFIKXx8KHRoaXMuXyRBSD1bXSx0aGlzLl8kQVIoKSk7Y29uc3QgYT10aGlzLl8kQUg7bGV0IGQsaD0wO2Zvcihjb25zdCBmIG9mIGwp'@; put 'aD09PWEubGVuZ3RoP2EucHVzaChkPW5ldyBfOCh0aGlzLmsoaGIoKSksdGhpcy5rKGhiKCkpLHRoaXMsdGhpcy5vcHRpb25zKSk6ZD1hW2hdLGQuXyRBSShmKSxoKys7aDxhLmxlbmd0aCYmKHRoaXMuXyRBUihkJiZkLl8kQUIubmV4dFNpYmxpbmcsaCksYS5sZW5ndGg9aCl9XyRBUihsPXRo'@; put 'aXMuXyRBQS5uZXh0U2libGluZyxhKXt2YXIgZDtmb3IobnVsbD09PShkPXRoaXMuXyRBUCl8fHZvaWQgMD09PWR8fGQuY2FsbCh0aGlzLCExLCEwLGEpO2wmJmwhPT10aGlzLl8kQUI7KXtjb25zdCBoPWwubmV4dFNpYmxpbmc7bC5yZW1vdmUoKSxsPWh9fXNldENvbm5lY3RlZChsKXt2YXIg'@; put 'YTt2b2lkIDA9PT10aGlzLl8kQU0mJih0aGlzLl8kQ3A9bCxudWxsPT09KGE9dGhpcy5fJEFQKXx8dm9pZCAwPT09YXx8YS5jYWxsKHRoaXMsbCkpfX1jbGFzcyBtYntjb25zdHJ1Y3RvcihsLGEsZCxoLGYpe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1EYyx0aGlzLl8kQU49dm9pZCAwLHRoaXMu'@; put 'ZWxlbWVudD1sLHRoaXMubmFtZT1hLHRoaXMuXyRBTT1oLHRoaXMub3B0aW9ucz1mLGQubGVuZ3RoPjJ8fCIiIT09ZFswXXx8IiIhPT1kWzFdPyh0aGlzLl8kQUg9QXJyYXkoZC5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9ZCk6dGhpcy5fJEFIPURjfWdldCB0YWdO'@; put 'YW1lKCl7cmV0dXJuIHRoaXMuZWxlbWVudC50YWdOYW1lfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkobCxhPXRoaXMsZCxoKXtjb25zdCBmPXRoaXMuc3RyaW5ncztsZXQgXz0hMTtpZih2b2lkIDA9PT1mKWw9WjUodGhpcyxsLGEsMCksXz0hZmIobCl8fGwhPT10aGlz'@; put 'Ll8kQUgmJmwhPT12OCxfJiYodGhpcy5fJEFIPWwpO2Vsc2V7Y29uc3QgVD1sO2xldCBXLGllO2ZvcihsPWZbMF0sVz0wO1c8Zi5sZW5ndGgtMTtXKyspaWU9WjUodGhpcyxUW2QrV10sYSxXKSxpZT09PXY4JiYoaWU9dGhpcy5fJEFIW1ddKSxffHwoXz0hZmIoaWUpfHxpZSE9PXRoaXMuXyRB'@; put 'SFtXXSksaWU9PT1EYz9sPURjOmwhPT1EYyYmKGwrPShpZT8/IiIpK2ZbVysxXSksdGhpcy5fJEFIW1ddPWllfV8mJiFoJiZ0aGlzLmoobCl9aihsKXtsPT09RGM/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5u'@; put 'YW1lLGw/PyIiKX19Y2xhc3MgY0ogZXh0ZW5kcyBtYntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTN9aihsKXt0aGlzLmVsZW1lbnRbdGhpcy5uYW1lXT1sPT09RGM/dm9pZCAwOmx9fWNvbnN0IEs2ZT1tOD9tOC5lbXB0eVNjcmlwdDoiIjtjbGFzcyB1SiBl'@; put 'eHRlbmRzIG1ie2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGwpe2wmJmwhPT1EYz90aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSxLNmUpOnRoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKX19Y2xhc3MgZEogZXh0'@; put 'ZW5kcyBtYntjb25zdHJ1Y3RvcihsLGEsZCxoLGYpe3N1cGVyKGwsYSxkLGgsZiksdGhpcy50eXBlPTV9XyRBSShsLGE9dGhpcyl7dmFyIGQ7aWYoKGw9bnVsbCE9PShkPVo1KHRoaXMsbCxhLDApKSYmdm9pZCAwIT09ZD9kOkRjKT09PXY4KXJldHVybjtjb25zdCBoPXRoaXMuXyRBSCxmPWw9'@; put 'PT1EYyYmaCE9PURjfHxsLmNhcHR1cmUhPT1oLmNhcHR1cmV8fGwub25jZSE9PWgub25jZXx8bC5wYXNzaXZlIT09aC5wYXNzaXZlLF89bCE9PURjJiYoaD09PURjfHxmKTtmJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxoKSxfJiZ0aGlzLmVsZW1l'@; put 'bnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxsKSx0aGlzLl8kQUg9bH1oYW5kbGVFdmVudChsKXt2YXIgYSxkOyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl8kQUg/dGhpcy5fJEFILmNhbGwobnVsbCE9PShkPW51bGw9PT0oYT10aGlzLm9wdGlvbnMpfHx2b2lkIDA9PT1hP3Zv'@; put 'aWQgMDphLmhvc3QpJiZ2b2lkIDAhPT1kP2Q6dGhpcy5lbGVtZW50LGwpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChsKX19Y2xhc3MgaEp7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuZWxlbWVudD1sLHRoaXMudHlwZT02LHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFNPWEsdGhpcy5vcHRpb25z'@; put 'PWR9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBSShsKXtaNSh0aGlzLGwpfX1jb25zdCBmSj1nRS5saXRIdG1sUG9seWZpbGxTdXBwb3J0O2ZKPy4oZ2IsXzgpLChudWxsIT09KHBGPWdFLmxpdEh0bWxWZXJzaW9ucykmJnZvaWQgMCE9PXBGP3BGOmdFLmxpdEh0bWxWZXJz'@; put 'aW9ucz1bXSkucHVzaCgiMi43LjUiKTtjb25zdCBwSj0oYyxsLGEpPT57dmFyIGQsaDtjb25zdCBmPW51bGwhPT0oZD1hPy5yZW5kZXJCZWZvcmUpJiZ2b2lkIDAhPT1kP2Q6bDtsZXQgXz1mLl8kbGl0UGFydCQ7aWYodm9pZCAwPT09Xyl7Y29uc3QgVD1udWxsIT09KGg9YT8ucmVuZGVyQmVm'@; put 'b3JlKSYmdm9pZCAwIT09aD9oOm51bGw7Zi5fJGxpdFBhcnQkPV89bmV3IF84KGwuaW5zZXJ0QmVmb3JlKGhiKCksVCksVCx2b2lkIDAsYT8/e30pfXJldHVybiBfLl8kQUkoYyksX307dmFyIF9GLGJGO2NsYXNzIGI4IGV4dGVuZHMgZzh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVu'@; put 'dHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXt2YXIgbCxhO2NvbnN0IGQ9c3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO3JldHVybiBudWxsIT09KGw9KGE9dGhpcy5yZW5kZXJPcHRpb25zKS5yZW5kZXJCZWZvcmUp'@; put 'JiZ2b2lkIDAhPT1sfHwoYS5yZW5kZXJCZWZvcmU9ZC5maXJzdENoaWxkKSxkfXVwZGF0ZShsKXtjb25zdCBhPXRoaXMucmVuZGVyKCk7dGhpcy5oYXNVcGRhdGVkfHwodGhpcy5yZW5kZXJPcHRpb25zLmlzQ29ubmVjdGVkPXRoaXMuaXNDb25uZWN0ZWQpLHN1cGVyLnVwZGF0ZShsKSx0aGlz'@; put 'Ll8kRG89cEooYSx0aGlzLnJlbmRlclJvb3QsdGhpcy5yZW5kZXJPcHRpb25zKX1jb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBsO3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksbnVsbD09PShsPXRoaXMuXyREbyl8fHZvaWQgMD09PWx8fGwuc2V0Q29ubmVjdGVkKCEwKX1kaXNjb25uZWN0ZWRD'@; put 'YWxsYmFjaygpe3ZhciBsO3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksbnVsbD09PShsPXRoaXMuXyREbyl8fHZvaWQgMD09PWx8fGwuc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gdjh9fWI4LmZpbmFsaXplZD0hMCxiOC5fJGxpdEVsZW1lbnQkPSEwLG51bGw9PT0oX0Y9'@; put 'Z2xvYmFsVGhpcy5saXRFbGVtZW50SHlkcmF0ZVN1cHBvcnQpfHx2b2lkIDA9PT1fRnx8X0YuY2FsbChnbG9iYWxUaGlzLHtMaXRFbGVtZW50OmI4fSk7Y29uc3QgZ0o9Z2xvYmFsVGhpcy5saXRFbGVtZW50UG9seWZpbGxTdXBwb3J0O2dKPy4oe0xpdEVsZW1lbnQ6Yjh9KSwobnVsbCE9PShi'@; put 'Rj1nbG9iYWxUaGlzLmxpdEVsZW1lbnRWZXJzaW9ucykmJnZvaWQgMCE9PWJGP2JGOmdsb2JhbFRoaXMubGl0RWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIzLjMuMiIpO2NvbnN0IG1KPWNGYEBjaGFyc2V0ICJVVEYtOCI7Omhvc3QsOnJvb3R7LS3OtDI6dmFyKC0tY2RzLWdsb2JhbC1sYXlv'@; put 'dXQtc3BhY2UteHhzLCBjYWxjKDQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60Mzp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14cywgY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDQ6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1sYXlvdXQtc3BhY2Utc20sIGNhbGMoMTIgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60NTp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS1tZCwgY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0tzrQ2OnZhcigtLWNk'@; put 'cy1nbG9iYWwtbGF5b3V0LXNwYWNlLWxnLCBjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDc6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteGwsIGNhbGMoMzIgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKX1bY2RzLWxh'@; put 'eW91dH49IndyYXA6bm9uZSJde2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2ZsZXgtZ3JvdzoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduOnNocmluayJde2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWlt'@; put 'cG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWl0ZW1zOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt3aWR0aDoxMDAlO21hcmdpbjowO21pbi1oZWlnaHQ6MH1bY2Rz'@; put 'LWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dH49dmVydGljYWxdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLXRleHRde3dpZHRoOmluaXRpYWwhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1b'@; put 'Y2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0'@; put 'fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2Vu'@; put 'dGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJvcmRlcjpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0'@; put 'cmV0Y2giXXtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGln'@; put 'bjpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1s'@; put 'YXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxh'@; put 'eW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJde21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXth'@; put 'bGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0'@; put 'OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF17d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSxbY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQq'@; put 'PSJhbGlnbjp0b3AiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde2Fs'@; put 'aWduLWl0ZW1zOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXth'@; put 'bGlnbi1pdGVtczpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0ib3JkZXI6cmV2ZXJzZSJde2Zs'@; put 'ZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2Fs'@; put 'aWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdLFtjZHMt'@; put 'bGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49dmVydGljYWxd'@; put 'PltjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMt'@; put 'bGF5b3V0Kj0iYWxpZ246cmlnaHQiXXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99W2Nkcy1sYXlvdXR+PWdyaWRde2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpzdGFydDthbGlnbi1j'@; put 'b250ZW50OnN0YXJ0O2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQodmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtZ3JpZC1jb2xzLDEyKSwxZnIpO3dpZHRoOjEwMCV9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPXJvd3Nde2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMTIsYXV0'@; put 'byl9W2Nkcy1sYXlvdXR+PWdyaWRdPltjZHMtbGF5b3V0Kj1yb3dde2FsaWduLXNlbGY6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde2FsaWduLWNvbnRlbnQ6c3RhcnR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdo'@; put 'dCJde2p1c3RpZnktY29udGVudDplbmR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17anVzdGlmeS1jb250ZW50OnN0YXJ0fVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1zdHJldGNoIl17anVzdGlmeS1pdGVtczpz'@; put 'dHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNoO2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRj'@; put 'aH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl17anVzdGlmeS1p'@; put 'dGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVy'@; put 'fTo6c2xvdHRlZChbY2RzLWxheW91dH49ImRpc3BsYXk6c2NyZWVuLXJlYWRlci1vbmx5Il0pLFtjZHMtbGF5b3V0fj0iZGlzcGxheTpzY3JlZW4tcmVhZGVyLW9ubHkiXXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7Y2xpcC1wYXRoOmlu'@; put 'c2V0KDUwJSk7cGFkZGluZzowO2JvcmRlcjowO2hlaWdodDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowO2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iZ2FwOm5vbmUiXXtnYXA6MH1bY2RzLWxheW91dCo9'@; put 'ImdhcDp4eHMiXXtnYXA6dmFyKC0tzrQyKX1bY2RzLWxheW91dCo9ImdhcDp4cyJde2dhcDp2YXIoLS3OtDMpfVtjZHMtbGF5b3V0Kj0iZ2FwOnNtIl17Z2FwOnZhcigtLc60NCl9W2Nkcy1sYXlvdXQqPSJnYXA6bWQiXXtnYXA6dmFyKC0tzrQ1KX1bY2RzLWxheW91dCo9ImdhcDpsZyJde2dh'@; put 'cDp2YXIoLS3OtDYpfVtjZHMtbGF5b3V0fj0icDpub25lIl17cGFkZGluZzowIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6eHhzIl17cGFkZGluZzp2YXIoLS3OtDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6eHMiXXtwYWRkaW5nOnZhcigtLc60MykhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0icDpzbSJde3BhZGRpbmc6dmFyKC0tzrQ0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOm1kIl17cGFkZGluZzp2YXIoLS3OtDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im06bWQiXXttYXJnaW46dmFyKC0tzrQ1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOmxnIl17cGFk'@; put 'ZGluZzp2YXIoLS3OtDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteTp4cyJde3BhZGRpbmctdG9wOnZhcigtLc60MykhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLc60MykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14OmxnIl17cGFkZGluZy1sZWZ0OnZhcigtLc60Nikh'@; put 'aW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tzrQ2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXk6bGciXXtwYWRkaW5nLXRvcDp2YXIoLS3OtDYpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS3OtDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbDptZCJde3BhZGRp'@; put 'bmctbGVmdDp2YXIoLS3OtDUpIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7W2Nkcy1sYXlvdXQqPSJnYXBAbWQ6bGciXXtnYXA6dmFyKC0tzrQ2KX1bY2RzLWxheW91dH49InBAbWQ6bGciXXtwYWRkaW5nOnZhcigtLc60NikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBt'@; put 'ZDp4bCJde21hcmdpbjp2YXIoLS3OtDcpIWltcG9ydGFudH19W2Nkcy1sYXlvdXR+PWZpbGxde3dpZHRoOjEwMCUhaW1wb3J0YW50fSosOmFmdGVyLDpiZWZvcmV7Ym94LXNpemluZzpib3JkZXItYm94fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpv'@; put 'bnRhbC1zdHJldGNoIl0+OjpzbG90dGVkKCopLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJdPjo6c2xvdHRlZCgqKSxbY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+OjpzbG90dGVkKCope2ZsZXgt'@; put 'Z3JvdzoxfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4t'@; put 'Ym90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRl'@; put 'cn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl0pe21hcmdpbi10b3A6'@; put 'YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246bGVmdCJdKSxbY2RzLWxheW91'@; put 'dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246bGVmdCJde21hcmdpbi1yaWdodDphdXRvfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVy'@; put 'dGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMt'@; put 'bGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6aG9yaXpvbnRhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp0b3AiXSl7bWFyZ2luLWJvdHRv'@; put 'bTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6'@; put 'cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRl'@; put 'ZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNh'@; put 'bF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206aG9yaXpvbnRhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6'@; put 'OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRp'@; put 'YSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLWNlbnRlciJdKXttYXJn'@; put 'aW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6aG9yaXpvbnRhbC1j'@; put 'ZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9'@; put 'ImFsaWduQG1kOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2Rz'@; put 'LWxheW91dCo9ImFsaWduQG1kOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNs'@; put 'b3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp2ZXJ0aWNhbC1jZW50ZXIiXSl7bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVy'@; put 'dGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmhvcml6b250YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBv'@; put 'cnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnJpZ2h0Il0pe21h'@; put 'cmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvfX1AbWVkaWEgKG1pbi13aWR0aDoxNDQwcHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5'@; put 'b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0'@; put 'ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChb'@; put 'Y2RzLWxheW91dCo9ImFsaWduQHhsOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZl'@; put 'cnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319W2Nkcy1sYXlvdXR+PWhv'@; put 'cml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFs'@; put 'XSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWlt'@; put 'cG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl0pe2FsaWduLXNl'@; put 'bGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il0p'@; put 'e21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5'@; put 'b3V0Kj0iYWxpZ25AeHM6dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91'@; put 'dCo9ImFsaWduQHhzOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dG9wIl0pe2FsaWduLXNlbGY6'@; put 'ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOnJpZ2h0Il0p'@; put 'e21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj1ob3Jp'@; put 'em9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRpY2FsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpv'@; put 'bnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpob3Jpem9udGFsLWNlbnRlciJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmln'@; put 'aHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnRvcCJdKXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmJv'@; put 'dHRvbSJdKXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5'@; put 'b3V0Kj0iYWxpZ25Ac206bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9u'@; put 'dGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRh'@; put 'bF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln'@; put 'bkBtZDp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5'@; put 'b3V0Kj0iYWxpZ25AbWQ6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDox'@; put 'MjAwcHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnZlcnRpY2FsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNl'@; put 'bnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpob3Jpem9udGFsLWNlbnRlciJdKXttYXJnaW4tbGVmdDph'@; put 'dXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnRvcCJdKXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChb'@; put 'Y2RzLWxheW91dCo9ImFsaWduQGxnOmJvdHRvbSJdKXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpv'@; put 'bnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRl'@; put 'ciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpjZW50ZXIi'@; put 'XSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpz'@; put 'bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6'@; put 'b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9y'@; put 'dGFudH19W2Nkcy10ZXh0XXtmb250LWZhbWlseTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNlcmlmKTttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfVtjZHMtdGV4dF1bY2RzLWxheW91dH49'@; put 'Z3JpZF06OmFmdGVyLFtjZHMtdGV4dF1bY2RzLWxheW91dH49Z3JpZF06OmJlZm9yZSxbY2RzLXRleHRdW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdOjphZnRlcixbY2RzLXRleHRdW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdOjpiZWZvcmUsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj12ZXJ0aWNh'@; put 'bF06OmFmdGVyLFtjZHMtdGV4dF1bY2RzLWxheW91dH49dmVydGljYWxdOjpiZWZvcmV7ZGlzcGxheTpub25lfVtjZHMtdGV4dCo9ZGlzcGxheV0sW2Nkcy10ZXh0Kj1zZWN0aW9uXSxbY2RzLXRleHQqPXN1YnNlY3Rpb25dLFtjZHMtdGV4dCo9dGl0bGVde2ZvbnQtZmFtaWx5OnZhcigtLWNk'@; put 'cy1nbG9iYWwtdHlwb2dyYXBoeS1oZWFkZXItZm9udC1mYW1pbHksICJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNlcmlmKTtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItNDAwLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTkw'@; put 'MCwjMjEzMzNiKSl9W2Nkcy10ZXh0Kj1ib2R5XSxbY2RzLXRleHQqPW1lc3NhZ2VdLFtjZHMtdGV4dCo9c2Vjb25kYXJ5XXtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItNTAwLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmxhY2ssIzAwMCkpfVtjZHMtdGV4dCo9aW5s'@; put 'aW5lXXt3aWR0aDphdXRvIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9W2Nkcy10ZXh0Kj1kaXNwbGF5XXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktZm9udC1zaXplLGNhbGMoNDAgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2Jh'@; put 'bC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktbGluZS1oZWlnaHQsMS4xZW0pO2xldHRlci1zcGFjaW5nOnZhcigt'@; put 'LWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWxldHRlci1zcGFjaW5nLC0uMDEyNWVtKX1bY2RzLXRleHQqPWRpc3BsYXldOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10'@; put 'eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktbGluZS1oZWlnaHQsMS4xZW0pIC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1kaXNwbGF5XTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNw'@; put 'bGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXRpdGxlXXtmb250LXNpemU6dmFyKC0t'@; put 'Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRpdGxlLWZvbnQtc2l6ZSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGluZS1oZWlnaHQsMS4xNjY2N2VtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGV0dGVyLXNwYWNpbmcsLS4wMDgzMzNlbSl9W2Nkcy10ZXh0Kj10aXRsZV06OmJlZm9yZXtjb250ZW50OiIiO2Rp'@; put 'c3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGluZS1oZWlnaHQsMS4xNjY2N2Vt'@; put 'KSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9dGl0bGVdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4x'@; put 'NDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwx'@; put 'LjE2NjY3ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zZWN0aW9uXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC1zaXplLGNhbGMoMjAgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2Vp'@; put 'Z2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQsMS4yZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBo'@; put 'eS1zZWN0aW9uLWxldHRlci1zcGFjaW5nLC0uMDFlbSl9W2Nkcy10ZXh0Kj1zZWN0aW9uXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdo'@; put 'dCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0LDEuMmVtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c2VjdGlvbl06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0'@; put 'aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5'@; put 'LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQsMS4yZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zdWJzZWN0aW9uXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LXN1YnNlY3Rpb24tZm9udC1zaXplLGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWlnaHQsMS4yNWVtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1sZXR0ZXItc3BhY2luZywtLjAxMjVlbSl9W2Nkcy10ZXh0Kj1zdWJzZWN0aW9uXTo6YmVmb3Jle2NvbnRlbnQ6IiI7'@; put 'ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0LDEu'@; put 'MjVlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25dOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAt'@; put 'aGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9u'@; put 'LWxpbmUtaGVpZ2h0LDEuMjVlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPWJvZHlde2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2VpZ2h0LDQwMCk7Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1i'@; put 'b2R5LWZvbnQtc2l6ZSxjYWxjKDE0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZywtLjAxNDI4NmVtKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5'@; put 'cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCwxLjQyODU3ZW0pfVtjZHMtdGV4dCo9Ym9keV06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWln'@; put 'aHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCwxLjQyODU3ZW0pIC0gMWVtKS8gMikpKi0xKSArIC4xZW0pfVtjZHMtdGV4dCo9Ym9keV06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDow'@; put 'O21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgt'@; put 'aGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktbGluZS1oZWlnaHQsMS40Mjg1N2VtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfWJvZHlbY2RzLXRleHQqPWJvZHldOjphZnRlcixib2R5W2Nkcy10ZXh0Kj1ib2R5XTo6YmVmb3Jle2Nv'@; put 'bnRlbnQ6bm9uZX1bY2RzLXRleHQqPW1lc3NhZ2Vde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1mb250LXNpemUsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBv'@; put 'Z3JhcGh5LW1lc3NhZ2UtZm9udC13ZWlnaHQsY2FsYyg0MDAgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxpbmUtaGVpZ2h0LDEuMjVlbSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2Rz'@; put 'LWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtbGV0dGVyLXNwYWNpbmcsLS4wMTI1ZW0pfVtjZHMtdGV4dCo9bWVzc2FnZV06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9n'@; put 'cmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1saW5lLWhlaWdodCwxLjI1ZW0pIC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1tZXNzYWdlXTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5'@; put 'OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1saW5lLWhlaWdodCwxLjI1ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnlde2ZvbnQtc2l6ZTp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSxjYWxjKDEzICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWln'@; put 'aHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1saW5lLWhlaWdodCwxLjIzMDc3ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcsLS4wMDc2OTJlbSl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnld'@; put 'OjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29u'@; put 'ZGFyeS1saW5lLWhlaWdodCwxLjIzMDc3ZW0pIC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnldOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2Jh'@; put 'bC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwt'@; put 'dHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQsMS4yMzA3N2VtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dH49bGlua117Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3IsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTcwMCwj'@; put 'MDA3OWFkKSkhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OmluaGVyaXQhaW1wb3J0YW50O2ZvbnQtc2l6ZTppbmhlcml0IWltcG9ydGFudH1bY2RzLXRleHR+PWxpbmtdOmZvY3Vze291dGxpbmU6dmFyKC0tY2RzLWFsaWFzLW9iamVj'@; put 'dC1pbnRlcmFjdGlvbi1vdXRsaW5lLEhpZ2hsaWdodCBzb2xpZCAycHgpO291dGxpbmUtb2Zmc2V0OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS1vZmZzZXQsMXB4KX1bY2RzLXRleHR+PWxpbmtdOmhvdmVye2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dy'@; put 'YXBoeS1saW5rLWNvbG9yLWhvdmVyLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDAsIzAwNjA4YSkpIWltcG9ydGFudH1bY2RzLXRleHR+PWxpbmtdOnZpc2l0ZWQ6bm90KFtjZHMtdGV4dH49c3RhdGljXSl7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29s'@; put 'b3ItdmlzaXRlZCx2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTYwMCwjM2I0MGNlKSkhaW1wb3J0YW50fVtjZHMtdGV4dH49bGlua106dmlzaXRlZDpub3QoW2Nkcy10ZXh0fj1zdGF0aWNdKTpob3Zlcntjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xv'@; put 'ci12aXNpdGVkLWhvdmVyLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItbGF2ZW5kZXItNzAwLCMyNDI5YzIpKSFpbXBvcnRhbnR9QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCl7W2Nkcy10ZXh0PWxpbmtdOmZvY3Vze291dGxpbmU6dmFyKC0tY2RzLWFsaWFzLW9iamVj'@; put 'dC1pbnRlcmFjdGlvbi1vdXRsaW5lLXdlYmtpdCw1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3IpfX1bY2RzLXRleHR+PWNvZGVde2NvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCwjZTAyMjAwKSk7Zm9udC1m'@; put 'YW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxLjFlbX1bY2RzLWRpdmlkZXJde2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCxjYWxjKDEgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO292ZXJmbG93OmhpZGRl'@; put 'bjtib3gtc2hhZG93OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNvbG9yLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTIwMCwjY2JkNGQ4KSkgMCAwIDAgdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwLGNhbGMoMSAqIDFyZW0gLyB2YXIo'@; put 'LS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgaW5zZXR9W2Nkcy10ZXh0fj1saWdodF17Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LWxpZ2h0LDMwMCkhaW1wb3J0YW50fVtjZHMtdGV4dH49anVzdGlmeV17dGV4dC1hbGlnbjpqdXN0aWZ5IWltcG9y'@; put 'dGFudH1bY2RzLXRleHR+PWxlZnRde3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1yaWdodF17dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1jZW50ZXJde3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH1bY2RzLXRleHR+PWxoZV17cGFkZGluZzou'@; put 'MDVweCAwfVtjZHMtdGV4dH49bGhlXTo6YmVmb3Jle2NvbnRlbnQ6IiI7bWFyZ2luLXRvcDotLjEyNGVtO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjB9W2Nkcy10ZXh0fj1saGVdOjphZnRlcntjb250ZW50OiIiO21hcmdpbi1ib3R0b206LS4yMjFlbTtkaXNwbGF5OmJsb2NrO2hlaWdodDowfVtj'@; put 'ZHMtdGV4dCo9aDJdLFtjZHMtdGV4dCo9aDNde2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1oZWFkZXItZm9udC1mYW1pbHksICJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNlcmlmKTtmb250LXNpemU6MS40cmVtO2ZvbnQtd2VpZ2h0OjIwMDtj'@; put 'b2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItNDAwKTtsaW5lLWhlaWdodDoxLjcxNDNlbTtsZXR0ZXItc3BhY2luZzotLjAxNzg1N2VtfVtjZHMtdGV4dCo9aDJdOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJv'@; put 'dHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygoMS43MTQzZW0gLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWgyXTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dp'@; put 'ZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFw'@; put 'aHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCgxLjcxNDNlbSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9aDNde2ZvbnQtc2l6ZToxLjFyZW07bGluZS1oZWlnaHQ6MS4wOTA5ZW07bGV0dGVyLXNwYWNpbmc6LS4wMTM2MzZlbX1bY2RzLXRleHQqPWgzXTo6YmVmb3Jl'@; put 'e2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKDEuMDkwOWVtIC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10'@; put 'ZXh0Kj1oM106OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkt'@; put 'YXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygoMS4wOTA5ZW0gLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX06aG9zdHthbGw6aW5pdGlhbDtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6aW5oZXJp'@; put 'dDtmb250LWZhbWlseTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNlcmlmKTtjb250YWluOmxheW91dDtib3gtc2l6aW5nOmJvcmRlci1ib3ghaW1wb3J0YW50Oy13ZWJraXQtYXBwZWFyYW5jZTpu'@; put 'b25lIWltcG9ydGFudH0qLDphZnRlciw6YmVmb3Jle2JveC1zaXppbmc6aW5oZXJpdCFpbXBvcnRhbnR9c2xvdHtmb250LWZhbWlseTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNlcmlmKTtkaXNw'@; put 'bGF5OmNvbnRlbnRzIWltcG9ydGFudH06OnNsb3R0ZWQoKil7Zm9udC1mYW1pbHk6aW5oZXJpdDtib3gtc2l6aW5nOmluaGVyaXR9OjpzbG90dGVkKCopOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItMjAwLHZhcigtLWNkcy1nbG9iYWwtY29s'@; put 'b3ItY29uc3RydWN0aW9uLTYwMCwjNGY2MTY5KSl9Omhvc3QoW19pcy1hbmNob3JdKSw6aG9zdChbcm9sZT1idXR0b25dKXtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9Omhvc3QoW19pcy1hbmNob3JdKSA6OnNsb3R0ZWQoKiksOmhvc3QoW3JvbGU9YnV0dG9uXSkgOjpzbG90dGVkKCope2N1'@; put 'cnNvcjpwb2ludGVyIWltcG9ydGFudH06aG9zdChbcm9sZT1idXR0b25dW2Rpc2FibGVkXSl7Y3Vyc29yOm5vdC1hbGxvd2VkIWltcG9ydGFudH06aG9zdChbcm9sZT1idXR0b25dW2Rpc2FibGVkXSkgOjpzbG90dGVkKCope2N1cnNvcjpub3QtYWxsb3dlZCFpbXBvcnRhbnQ7cG9pbnRlci1l'@; put 'dmVudHM6bm9uZX06aG9zdChbaGlkZGVuXSksW2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH06aG9zdChbaGlkZGVuKj1mYWxzZV0pe2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fTpob3N0KFtyb2xlPWRpYWxvZ11baGlkZGVuXSksOmhvc3QoW3JvbGU9ZGlhbG9nXVtoaWRkZW5dKSA6'@; put 'OnNsb3R0ZWQoKil7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50fTpob3N0KFtyb2xlPWRpYWxvZ11baGlkZGVuKj1mYWxzZV0pLDpob3N0KFtyb2xlPWRpYWxvZ11baGlkZGVuKj1mYWxzZV0pIDo6c2xvdHRlZCgqKXt2aXNpYmlsaXR5OnZpc2li'@; put 'bGUhaW1wb3J0YW50fTpob3N0KFtfZm9jdXNlZF0pIC5pbnB1dCw6aG9zdChbX2ZvY3VzZWRdKSBbZm9jdXNhYmxlXSw6aG9zdChbdGFiaW5kZXg9IjAiXTpmb2N1cyksOmhvc3QoW3RhYmluZGV4PSIwIl06Zm9jdXMpIFtmb2N1c2FibGVdLFt0YWJpbmRleD0iMCJdW2ZvY3VzYWJsZV06Zm9j'@; put 'dXN7b3V0bGluZTpIaWdobGlnaHQgc29saWQgMnB4O291dGxpbmU6NXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS1vZmZzZXQsMXB4KX1gO2Z1bmN0aW9uIHlGKGMpe3JldHVy'@; put 'bmBjYWxjKCgke2N9IC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkgKiAxcmVtKWB9Y29uc3QgdDhlPShjLGwpPT4ibWV0aG9kIj09PWwua2luZCYmbC5kZXNjcmlwdG9yJiYhKCJ2YWx1ZSJpbiBsLmRlc2NyaXB0b3IpP3suLi5sLGZpbmlzaGVyKGEpe2EuY3JlYXRlUHJvcGVydHkobC5rZXks'@; put 'Yyl9fTp7a2luZDoiZmllbGQiLGtleTpTeW1ib2woKSxwbGFjZW1lbnQ6Im93biIsZGVzY3JpcHRvcjp7fSxvcmlnaW5hbEtleTpsLmtleSxpbml0aWFsaXplcigpeyJmdW5jdGlvbiI9PXR5cGVvZiBsLmluaXRpYWxpemVyJiYodGhpc1tsLmtleV09bC5pbml0aWFsaXplci5jYWxsKHRoaXMp'@; put 'KX0sZmluaXNoZXIoYSl7YS5jcmVhdGVQcm9wZXJ0eShsLmtleSxjKX19LG44ZT0oYyxsLGEpPT57bC5jb25zdHJ1Y3Rvci5jcmVhdGVQcm9wZXJ0eShhLGMpfTtmdW5jdGlvbiB2SihjKXtyZXR1cm4obCxhKT0+dm9pZCAwIT09YT9uOGUoYyxsLGEpOnQ4ZShjLGwpfWZ1bmN0aW9uIF9KKGMs'@; put 'bCl7c3dpdGNoKGwmJmwudHlwZSl7Y2FzZSBBcnJheTpjYXNlIE9iamVjdDpyZXR1cm57cmVmbGVjdDohMSwuLi5sfTtjYXNlIFN0cmluZzpyZXR1cm57cmVmbGVjdDohMCxhdHRyaWJ1dGU6RjUoYyksY29udmVydGVyOnt0b0F0dHJpYnV0ZTphPT5hfHxudWxsfSwuLi5sfTtjYXNlIE51bWJl'@; put 'cjpyZXR1cm57cmVmbGVjdDohMCxhdHRyaWJ1dGU6RjUoYyksLi4ubH07Y2FzZSBCb29sZWFuOnJldHVybntyZWZsZWN0OiEwLGF0dHJpYnV0ZTpGNShjKSxjb252ZXJ0ZXI6e3RvQXR0cmlidXRlOmE9PmE/IiI6bnVsbCxmcm9tQXR0cmlidXRlOmE9PmZ1bmN0aW9uIHo2ZShjKXtyZXR1cm4g'@; put 'bnVsbCE9YyYmIiIrYyE9ImZhbHNlIn0oYSl9LC4uLmx9O2Nhc2UgRGF0ZTpyZXR1cm57cmVmbGVjdDohMSxjb252ZXJ0ZXI6e2Zyb21BdHRyaWJ1dGU6YT0+bmV3IERhdGUoYSl9LC4uLmx9O2RlZmF1bHQ6cmV0dXJuey4uLmx9fX1mdW5jdGlvbiBrbChjKXtyZXR1cm4obCxhKT0+KGM/LnJl'@; put 'cXVpcmVkJiZmdW5jdGlvbiByOGUoYyxsLGEpe2NvbnN0IGQ9Yy5maXJzdFVwZGF0ZWQ7Yy5maXJzdFVwZGF0ZWQ9ZnVuY3Rpb24oaCl7aWYoYSYmYS5yZXF1aXJlZCYmX3AodGhpc1tsXSkpe2NvbnN0IGY9YS5yZXF1aXJlZE1lc3NhZ2V8fGZ1bmN0aW9uKF89Indhcm5pbmciLFQsVyl7Y29u'@; put 'c3QgaWU9Vy50b0xvY2FsZUxvd2VyQ2FzZSgpO3JldHVybmAke3dLKF8pfTogJHtUfSBpcyByZXF1aXJlZCB0byB1c2UgJHtpZX0gY29tcG9uZW50LiBTZXQgdGhlIEpTIFByb3BlcnR5IG9yIEhUTUwgQXR0cmlidXRlLlxuXG5gKyhtSygpP2BBbmd1bGFyOiA8JHtpZX0gWyR7VH1dPSIuLi4i'@; put 'PjwvJHtpZX0+XG5gOiIiKSsoX0soKT9gVnVlOiA8JHtpZX0gOiR7VH09Ii4uLiI+PC8ke2llfT5cbmA6IiIpKyh2SygpP2BSZWFjdDogPCR7ZnVuY3Rpb24gWWdlKGMpe3JldHVybiB3SyhmdW5jdGlvbiBaZ2UoYyl7cmV0dXJuIGMuc3BsaXQoIi0iKS5tYXAoKGwsYSk9PmE/bC5jaGFyQXQo'@; put 'MCkudG9VcHBlckNhc2UoKStsLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCk6bCkuam9pbigiIil9KGMpKX0oaWUpfSAke3BlPVQscGUuc3RhcnRzV2l0aCgiYXJpYSIpP0Y1KHBlKTpwZX09ey4uLn0gLz5cbmA6IiIpK2BIVE1MOiA8JHtpZX0gJHtGNShUKX09Ii4uLiI+PC8ke2llfT5cbkphdmFT'@; put 'Y3JpcHQ6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyR7aWV9JykuJHtUfSA9ICcuLi4nO1xuXG5gO3ZhciBwZX0oYS5yZXF1aXJlZCxsLHRoaXMudGFnTmFtZSk7aWYoImVycm9yIj09PWEucmVxdWlyZWQpdGhyb3cgRXJyb3IoZik7SDUud2FybihmLHRoaXMpfWQmJmQuY2FsbCh0aGlzLGgp'@; put 'fX0obCxhLGMpLHZKKF9KKGEsYykpKGwsYSkpfWZ1bmN0aW9uIGJKKGMpe3JldHVybihsLGEpPT57Y29uc3QgZD1fSihhLGMpO3JldHVybiBkJiYoZC5yZWZsZWN0PSEhYz8ucmVmbGVjdCYmYy5yZWZsZWN0LGQucmVmbGVjdCYmIWM/LmF0dHJpYnV0ZSYmKGQuYXR0cmlidXRlPSJfIitGNShh'@; put 'KSkpLHZKKGQpKGwsYSl9fXZhciBjaCxzOGU9Y0ZgQGtleWZyYW1lcyBmYWRlSW5BbmRPdXR7MCUsdG97b3BhY2l0eTowfTc1JXtvcGFjaXR5OjF9fTpob3N0ey0tY29sb3I6Y3VycmVudENvbG9yO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcs'@; put 'Y2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYg'@; put 'KiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWFyZ2luOjA7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZpbGw6dmFyKC0tY29sb3Ip'@; put 'O2NvbG9yOnZhcigtLWNvbG9yKTtjb250YWluOnN0cmljdDtjdXJzb3I6aW5oZXJpdH1zdmd7ZGlzcGxheTpibG9ja306aG9zdChbc2l6ZSo9eHNdKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7d2lk'@; put 'dGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFy'@; put 'KC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW3NpemUqPXNtXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0'@; put 'aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZh'@; put 'cigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9bWRdKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05LGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO3dp'@; put 'ZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6'@; put 'dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05LGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpfTpob3N0KFtzaXplKj1sZ10pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExLGNhbGMoMzYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkp'@; put 'O3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExLGNhbGMoMzYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi13'@; put 'aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExLGNhbGMoMzYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpfTpob3N0KFtzaXplKj14bF0pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEyLGNhbGMoNDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNl'@; put 'LDIwKSkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIsY2FsYyg0OCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEyLGNhbGMoNDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkp'@; put 'O21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEyLGNhbGMoNDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpfTpob3N0KFtzaXplKj14eGxdKXtoZWlnaHQ6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEzLGNhbGMoNjQgKiAxcmVtIC8gdmFyKC0tY2Rz'@; put 'LWdsb2JhbC1iYXNlLDIwKSkpIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkpO3dpZHRoOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyxjYWxjKDY0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFz'@; put 'ZSwyMCkpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpKTttaW4taGVpZ2h0OmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyxjYWxjKDY0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkp'@; put 'KSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpKTttaW4td2lkdGg6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEzLGNhbGMoNjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpIC0gdmFy'@; put 'KC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkpfTpob3N0KFtzaXplKj1maXRdKXtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvO2NvbnRhaW46bGF5b3V0fTpob3N0KFtzdGF0dXM9c3VjY2Vzc10pey0tY29sb3I6dmFyKC0tY2Rz'@; put 'LWFsaWFzLXN0YXR1cy1zdWNjZXNzLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTcwMCwgIzQyODEwZSkpfTpob3N0KFtzdGF0dXM9ZGFuZ2VyXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlciwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCAjZTAy'@; put 'MjAwKSl9Omhvc3QoW3N0YXR1cz13YXJuaW5nXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyaywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS04MDAsICNhMzY1MDApKX06aG9zdChbc3RhdHVzPWluZm9dKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1z'@; put 'dGF0dXMtaW5mbywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTcwMCwgIzAwNzlhZCkpfTpob3N0KFtzdGF0dXM9bmV1dHJhbF0pey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDAsICM0ZjYx'@; put 'NjkpKX06aG9zdChbaW52ZXJzZV0pey0tY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwLCAjY2JkNGQ4KX06aG9zdChbZGlyZWN0aW9uPXVwXSl7dHJhbnNmb3JtOnJvdGF0ZSgwKX06aG9zdChbZGlyZWN0aW9uPWRvd25dKXt0cmFuc2Zvcm06cm90YXRlKDE4'@; put 'MGRlZyl9Omhvc3QoW2RpcmVjdGlvbj1yaWdodF0pe3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTpob3N0KFtkaXJlY3Rpb249bGVmdF0pe3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX06aG9zdChbZmxpcD1ob3Jpem9udGFsXSl7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3RhdGVYKDE4MGRlZyl9'@; put 'Omhvc3QoW2ZsaXA9dmVydGljYWxdKXt0cmFuc2Zvcm06c2NhbGUoLTEpIHJvdGF0ZVkoMTgwZGVnKX0uYWxlcnQsLmJhZGdle2ZpbGw6dmFyKC0tYmFkZ2UtY29sb3IsdmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCNlMDIyMDAp'@; put 'KSl9Omhvc3QoW2JhZGdlPXN1Y2Nlc3NdKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2VzcywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi03MDAsICM0MjgxMGUpKX06aG9zdChbYmFkZ2U9ZGFuZ2VyXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxp'@; put 'YXMtc3RhdHVzLWRhbmdlciwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCAjZTAyMjAwKSl9Omhvc3QoW2JhZGdlKj13YXJuaW5nXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyaywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS04'@; put 'MDAsICNhMzY1MDApKX06aG9zdChbYmFkZ2U9aW5oZXJpdF0pey0tYmFkZ2UtY29sb3I6Y3VycmVudENvbG9yfTpob3N0KFtiYWRnZT1pbmZvXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8sIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDAsICMwMDc5'@; put 'YWQpKX06aG9zdChbYmFkZ2U9bmV1dHJhbF0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDAsICM0ZjYxNjkpKX06aG9zdChbYmFkZ2U9aW5oZXJpdC10cmlhbmdsZV0pey0tYmFkZ2Ut'@; put 'Y29sb3I6Y3VycmVudENvbG9yfTpob3N0KFtiYWRnZV1baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCwgI2UwMjIwMCkpfTpob3N0KFtiYWRnZT1zdWNjZXNzXVtpbnZlcnNlXSl7LS1i'@; put 'YWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNzAwLCAjNDI4MTBlKSl9Omhvc3QoW2JhZGdlKj13YXJuaW5nXVtpbnZlcnNlXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmct'@; put 'ZGFyaywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS04MDAsICNhMzY1MDApKX06aG9zdChbYmFkZ2UqPWluaGVyaXRdW2ludmVyc2VdKXstLWJhZGdlLWNvbG9yOmN1cnJlbnRDb2xvcn06aG9zdChbYmFkZ2U9aW5mb11baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFs'@; put 'aWFzLXN0YXR1cy1pbmZvLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwLCAjMDA3OWFkKSl9LmNkcy1pbnRlcm5hbC1kb3QtMXthbmltYXRpb246ZmFkZUluQW5kT3V0IDEuOHMgZWFzZS1pbiAwcyBpbmZpbml0ZX0uY2RzLWludGVybmFsLWRvdC0ye2FuaW1hdGlvbjpmYWRlSW5B'@; put 'bmRPdXQgMS44cyBlYXNlLW91dCAuNDIycyBpbmZpbml0ZX0uY2RzLWludGVybmFsLWRvdC0ze2FuaW1hdGlvbjpmYWRlSW5BbmRPdXQgMS44cyBlYXNlLW91dCAuNjc1cyBpbmZpbml0ZX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pey5jZHMtaW50ZXJuYWwtZG90LTEsLmNkcy1p'@; put 'bnRlcm5hbC1kb3QtMiwuY2RzLWludGVybmFsLWRvdC0ze2FuaW1hdGlvbjpub25lfX1gO2Z1bmN0aW9uIHU4ZShjLGwpe2xldCBhPSIiO3N3aXRjaChmdW5jdGlvbiBhOGUoYyl7c3dpdGNoKCEwKXtjYXNlIF9wKGMpOnJldHVybiBjaC5OaWxTaXplVmFsdWU7Y2FzZSBmdW5jdGlvbiB5Sihj'@; put 'KXtyZXR1cm5bInh4cyIsInhzIiwic20iLCJtZCIsImxnIiwieGwiLCJ4eGwiXS5pbmRleE9mKGMpPi0xfShjKTpyZXR1cm4gY2guVmFsaWRTaXplU3RyaW5nO2Nhc2UgZnVuY3Rpb24gbEsoYyl7cmV0dXJuIElQKGMpJiYhYUsoYy50cmltKCkpJiYrYz09K2N9KGMpOnJldHVybiBjaC5WYWxp'@; put 'ZE51bWVyaWNTdHJpbmc7ZGVmYXVsdDpyZXR1cm4gY2guQmFkU2l6ZVZhbHVlfX0oZnVuY3Rpb24gbDhlKGMpe3JldHVybiBfcChjKT8iIjpmdW5jdGlvbiBXZ2UoYyxsLGE9IiIpe2NvbnN0IGQ9Yy5zcGxpdCgiICIpLGg9IiI9PT1hP2QuZmlsdGVyKGY9PmYhPT1sKTpkLm1hcChmPT5mPT09'@; put 'bD9hOmYpO3JldHVybiBoLmxlbmd0aD4wP2guam9pbigiICIpOiIifShjLCJmaXQiKX0obCkpKXtjYXNlIGNoLlZhbGlkTnVtZXJpY1N0cmluZzpyZXR1cm4gYT15RihwYXJzZUludChsKSksdm9pZCBmdW5jdGlvbiBRNmUoYywuLi5sKXtsLmZvckVhY2goKFthLGRdKT0+e2Muc3R5bGVbYV09'@; put 'ZH0pfShjLC4uLmZ1bmN0aW9uIGM4ZShjLGwpe3JldHVybiF0YihjKSYmYy5pbmRleE9mKCJmaXQiKT4tMT9bWyJ3aWR0aCIsImF1dG8iXSxbImhlaWdodCIsImF1dG8iXSxbIm1pbi13aWR0aCIsbF0sWyJtaW4taGVpZ2h0IixsXV06W1sid2lkdGgiLGxdLFsiaGVpZ2h0IixsXSxbIm1pbi13'@; put 'aWR0aCIsbF0sWyJtaW4taGVpZ2h0IixsXV19KGwsYSkpO2Nhc2UgY2guVmFsaWRTaXplU3RyaW5nOmNhc2UgY2guTmlsU2l6ZVZhbHVlOnJldHVybiB2b2lkIGZ1bmN0aW9uIGU4ZShjLC4uLmwpe2wuZm9yRWFjaChhPT57Yy5zdHlsZVthXT0iIn0pfShjLCJ3aWR0aCIsImhlaWdodCIsIm1p'@; put 'bi13aWR0aCIsIm1pbi1oZWlnaHQiKTtkZWZhdWx0OnJldHVybn19ZnVuY3Rpb24gd0YoYyl7cmV0dXJuIGMuYmFkZ2UmJigiaW5oZXJpdC10cmlhbmdsZSI9PT1jLmJhZGdlfHwid2FybmluZy10cmlhbmdsZSI9PT1jLmJhZGdlKX0hZnVuY3Rpb24oYyl7Yy5CYWRTaXplVmFsdWU9ImJhZC12'@; put 'YWx1ZSIsYy5WYWxpZFNpemVTdHJpbmc9InZhbHVlLWlzLXN0cmluZyIsYy5WYWxpZE51bWVyaWNTdHJpbmc9InZhbHVlLWlzLW51bWVyaWMiLGMuTmlsU2l6ZVZhbHVlPSJ2YWx1ZS1pcy1uaWwifShjaHx8KGNoPXt9KSk7Y2xhc3MgbzIgZXh0ZW5kcyBiOHtjb25zdHJ1Y3Rvcigpe3N1cGVy'@; put 'KC4uLmFyZ3VtZW50cyksdGhpcy5fc2hhcGU9InVua25vd24iLHRoaXMuc29saWQ9ITEsdGhpcy5pbnZlcnNlPSExfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuW21KLHM4ZV19Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuX3NoYXBlfXNldCBzaGFwZShsKXtpZihmdW5jdGlvbiBPZ2UoYyxs'@; put 'KXtyZXR1cm4hX3AoYykmJnVLKGMsbCl9KGwsdGhpcy5fc2hhcGUpKXtjb25zdCBhPXRoaXMuX3NoYXBlO3RoaXMuX3NoYXBlPWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCJzaGFwZSIsYSl9fWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX3NpemV9c2V0IHNpemUobCl7aWYoZnVuY3Rpb24gUmdlKGMs'@; put 'bCl7cmV0dXJuIGZ1bmN0aW9uIExnZShjKXtyZXR1cm4gWngoU3RyaW5nLGMpfHx0YihjKX0oYykmJnVLKGMsbCl9KGwsdGhpcy5fc2l6ZSkpe2NvbnN0IGE9dGhpcy5fc2l6ZTt0aGlzLl9zaXplPWwsdThlKHRoaXMsbCksdGhpcy5yZXF1ZXN0VXBkYXRlKCJzaXplIixhKX19dXBkYXRlZChs'@; put 'KXtpZihsLmhhcygiaW5uZXJPZmZzZXQiKSYmdGhpcy5pbm5lck9mZnNldD4wKXtjb25zdCBhPXlGKC0xKnRoaXMuaW5uZXJPZmZzZXQpLGQ9YGNhbGMoMTAwJSArICR7eUYoMip0aGlzLmlubmVyT2Zmc2V0KX0pYDt0aGlzLnN2Zy5zdHlsZS53aWR0aD1kLHRoaXMuc3ZnLnN0eWxlLmhlaWdo'@; put 'dD1kLHRoaXMuc3ZnLnN0eWxlLm1hcmdpbj1gJHthfSAwIDAgJHthfWB9fWZpcnN0VXBkYXRlZChsKXtpZihzdXBlci5maXJzdFVwZGF0ZWQobCksdGhpcy5pc0Nvbm5lY3RlZCl7bGV0IGE9InVua25vd24iO3RoaXMuc3Vic2NyaXB0aW9uPSRsLnN0YXRlVXBkYXRlcy5zdWJzY3JpYmUoZD0+'@; put 'eyJpY29uUmVnaXN0cnkiPT09ZC5rZXkmJlZzLnJlZ2lzdHJ5W3RoaXMuc2hhcGVdJiZhIT09dGhpcy5zaGFwZSYmKGE9dGhpcy5zaGFwZSx0aGlzLnJlcXVlc3RVcGRhdGUoInNoYXBlIikpfSl9fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0'@; put 'aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKX1yZW5kZXIoKXtyZXR1cm4gSVAoVnMucmVnaXN0cnlbdGhpcy5zaGFwZV0pP3ZGYDxzcGFuIC5pbm5lckhUTUw9IiR7VnMucmVnaXN0cnlbdGhpcy5zaGFwZV19Ij48L3NwYW4+YDpxNmVgPHN2ZyAuaW5uZXJIVE1MPSIke2Z1bmN0aW9u'@; put 'IGg4ZShjKXtjb25zdCBsPVZzLnJlZ2lzdHJ5W2Muc2hhcGVdPz9Wcy5yZWdpc3RyeS51bmtub3duO2xldCBhPWMuc29saWQmJmwuc29saWQ/bC5zb2xpZDpsLm91dGxpbmU7cmV0dXJuIGMuYmFkZ2UmJiF3RihjKSYmKGE9Yy5zb2xpZD9sLnNvbGlkQmFkZ2VkPz9hOmwub3V0bGluZUJhZGdl'@; put 'ZD8/YSksd0YoYykmJihhPWMuc29saWQ/bC5zb2xpZEFsZXJ0ZWQ/P2E6bC5vdXRsaW5lQWxlcnRlZD8/YSksYX0odGhpcykrZnVuY3Rpb24gZDhlKGMpe2xldCBsPSIiO3JldHVybiBjLmJhZGdlJiZ3RihjKT9sPSc8cGF0aCBkPSJNMjYuODUgMS4xNEwyMS4xMyAxMWExLjI4IDEuMjggMCAw'@; put 'MDEuMSAyaDExLjQ1YTEuMjggMS4yOCAwIDAwMS4xLTJsLTUuNzItOS44NmExLjI4IDEuMjggMCAwMC0yLjIxIDB6IiBjbGFzcz0iYWxlcnQiIC8+JzpjLmJhZGdlJiYobD0nPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iYmFkZ2UiIC8+JyksbH0odGhpcyl9IiB2aWV3Qm94'@; put 'PSIwIDAgMzYgMzYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiPjwvc3ZnPmB9fU10KFtrbCh7dHlwZTpTdHJpbmd9KV0sbzIucHJvdG90eXBlLCJzaGFwZSIsbnVsbCksTXQoW2tsKHt0eXBlOlN0cmluZ30pXSxvMi5wcm90b3R5cGUsInNp'@; put 'emUiLG51bGwpLE10KFtrbCh7dHlwZTpTdHJpbmd9KV0sbzIucHJvdG90eXBlLCJkaXJlY3Rpb24iLHZvaWQgMCksTXQoW2tsKHt0eXBlOlN0cmluZ30pXSxvMi5wcm90b3R5cGUsImZsaXAiLHZvaWQgMCksTXQoW2tsKHt0eXBlOkJvb2xlYW59KV0sbzIucHJvdG90eXBlLCJzb2xpZCIsdm9p'@; put 'ZCAwKSxNdChba2woe3R5cGU6U3RyaW5nfSldLG8yLnByb3RvdHlwZSwic3RhdHVzIix2b2lkIDApLE10KFtrbCh7dHlwZTpCb29sZWFufSldLG8yLnByb3RvdHlwZSwiaW52ZXJzZSIsdm9pZCAwKSxNdChba2woe3R5cGU6U3RyaW5nfSldLG8yLnByb3RvdHlwZSwiYmFkZ2UiLHZvaWQgMCks'@; put 'TXQoW2JKKHt0eXBlOk51bWJlcn0pXSxvMi5wcm90b3R5cGUsImlubmVyT2Zmc2V0Iix2b2lkIDApLE10KFtmdW5jdGlvbiBvOGUoYyxsKXtyZXR1cm4oKHtmaW5pc2hlcjpjLGRlc2NyaXB0b3I6bH0pPT4oYSxkKT0+e3ZhciBoO2lmKHZvaWQgMD09PWQpe2NvbnN0IGY9bnVsbCE9PShoPWEu'@; put 'b3JpZ2luYWxLZXkpJiZ2b2lkIDAhPT1oP2g6YS5rZXksXz1udWxsIT1sP3traW5kOiJtZXRob2QiLHBsYWNlbWVudDoicHJvdG90eXBlIixrZXk6ZixkZXNjcmlwdG9yOmwoYS5rZXkpfTp7Li4uYSxrZXk6Zn07cmV0dXJuIG51bGwhPWMmJihfLmZpbmlzaGVyPWZ1bmN0aW9uKFQpe2MoVCxm'@; put 'KX0pLF99e2NvbnN0IGY9YS5jb25zdHJ1Y3Rvcjt2b2lkIDAhPT1sJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxkLGwoZCkpLGM/LihmLGQpfX0pKHtkZXNjcmlwdG9yOmE9Pntjb25zdCBkPXtnZXQoKXt2YXIgaCxmO3JldHVybiBudWxsIT09KGY9bnVsbD09PShoPXRoaXMucmVuZGVyUm9v'@; put 'dCl8fHZvaWQgMD09PWg/dm9pZCAwOmgucXVlcnlTZWxlY3RvcihjKSkmJnZvaWQgMCE9PWY/ZjpudWxsfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH07aWYobCl7Y29uc3QgaD0ic3ltYm9sIj09dHlwZW9mIGE/U3ltYm9sKCk6Il9fIithO2QuZ2V0PWZ1bmN0aW9uKCl7dmFyIGYs'@; put 'XztyZXR1cm4gdm9pZCAwPT09dGhpc1toXSYmKHRoaXNbaF09bnVsbCE9PShfPW51bGw9PT0oZj10aGlzLnJlbmRlclJvb3QpfHx2b2lkIDA9PT1mP3ZvaWQgMDpmLnF1ZXJ5U2VsZWN0b3IoYykpJiZ2b2lkIDAhPT1fP186bnVsbCksdGhpc1toXX19cmV0dXJuIGR9fSl9KCJzdmciKV0sbzIu'@; put 'cHJvdG90eXBlLCJzdmciLHZvaWQgMCksVlgoImNkcy1pY29uIixvMik7Y2xhc3MgcDhle2NvbnN0cnVjdG9yKGwpe3RoaXMuaG9zdD1sLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RDb25uZWN0ZWQoKXt2YXIgbD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXt5aWVsZCBs'@; put 'Lmhvc3QudXBkYXRlQ29tcGxldGUsbC5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGE9PmwuZW11bGF0ZUFjdGl2ZShhKSksbC5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsYT0+bC5lbXVsYXRlQWN0aXZlKGEpKSxsLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigia2V5'@; put 'dXAiLCgpPT5sLmVtdWxhdGVJbmFjdGl2ZSgpKSxsLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmwuZW11bGF0ZUluYWN0aXZlKCkpLGwuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwoKT0+bC5lbXVsYXRlSW5hY3RpdmUoKSl9KSgpfWVtdWxhdGVBY3RpdmUobCl7'@; put 'dGhpcy5ob3N0LmRpc2FibGVkfHx0aGlzLmhvc3Q/LnNldEF0dHJpYnV0ZSgiY2RzLWFjdGl2ZSIsIiIpLCJTcGFjZSI9PT1sLmNvZGUmJmwudGFyZ2V0PT09dGhpcy5ob3N0JiZsLnByZXZlbnREZWZhdWx0KCl9ZW11bGF0ZUluYWN0aXZlKCl7dGhpcy5ob3N0LnJlbW92ZUF0dHJpYnV0ZSgi'@; put 'Y2RzLWFjdGl2ZSIpfX1jbGFzcyBtOGV7Y29uc3RydWN0b3IobCl7dGhpcy5ob3N0PWwsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdENvbm5lY3RlZCgpeyh0aGlzLmhvc3QuaGFzQXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIil8fHRoaXMuaG9zdC5hcmlhQ29udHJvbHMpJiYo'@; put 'dGhpcy5ob3N0LmFyaWFIYXNQb3B1cD0idHJ1ZSIsdGhpcy5ob3N0LmFyaWFFeHBhbmRlZD0iZmFsc2UiKX19Y2xhc3MgXzhle2NvbnN0cnVjdG9yKGwpe3RoaXMuaG9zdD1sLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7bnVsbCE9PXRoaXMuaG9zdC5kaXNh'@; put 'YmxlZCYmKHRoaXMuaG9zdC5hcmlhRGlzYWJsZWQ9dGhpcy5ob3N0LmRpc2FibGVkKSx0aGlzLmhvc3QucmVhZG9ubHkmJih0aGlzLmhvc3QuYXJpYURpc2FibGVkPW51bGwpfX1jbGFzcyB5OGV7Y29uc3RydWN0b3IobCl7dGhpcy5ob3N0PWwsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhp'@; put 'cyl9aG9zdFVwZGF0ZWQoKXtudWxsIT10aGlzLmhvc3QucHJlc3NlZCYmKHRoaXMuaG9zdC5hcmlhUHJlc3NlZD10aGlzLmhvc3QucHJlc3NlZD8idHJ1ZSI6ImZhbHNlIiksdGhpcy5ob3N0LnJlYWRvbmx5JiYodGhpcy5ob3N0LmFyaWFQcmVzc2VkPW51bGwpfX1jbGFzcyBDOGV7Y29uc3Ry'@; put 'dWN0b3IobCl7dGhpcy5ob3N0PWwsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdENvbm5lY3RlZCgpe3RoaXMuaG9zdC50YWJJbmRleD0wfWhvc3RVcGRhdGVkKCl7dGhpcy5ob3N0LnJvbGU9dGhpcy5ob3N0LnJlYWRvbmx5P251bGw6ImJ1dHRvbiIsdGhpcy5ob3N0LnRhYklu'@; put 'ZGV4PXRoaXMuaG9zdC5kaXNhYmxlZD8tMTowLHRoaXMuaG9zdC5yZWFkb25seSYmdGhpcy5ob3N0LnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKX19Y2xhc3MgTThle2NvbnN0cnVjdG9yKGwpe3RoaXMuaG9zdD1sLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWdldCBjdXJyZW50'@; put 'QW5jaG9yKCl7cmV0dXJuIkEiPT09dGhpcy5ob3N0LnBhcmVudEVsZW1lbnQ/LnRhZ05hbWU/dGhpcy5ob3N0LnBhcmVudEVsZW1lbnQ6bnVsbH1ob3N0Q29ubmVjdGVkKCl7dGhpcy5zZXRBbmNob3IoKX1ob3N0VXBkYXRlZCgpe3RoaXMuc2V0QW5jaG9yKCl9c2V0QW5jaG9yKCl7dGhpcy5j'@; put 'dXJyZW50QW5jaG9yJiZ0aGlzLmN1cnJlbnRBbmNob3IhPT10aGlzLnByZXZpb3VzQW5jaG9yJiYodGhpcy5wcmV2aW91c0FuY2hvcj10aGlzLmN1cnJlbnRBbmNob3IsdGhpcy5ob3N0LnJlYWRvbmx5PSEwLHRoaXMuY3VycmVudEFuY2hvci5zdHlsZS5saW5lSGVpZ2h0PSIwIix0aGlzLmN1'@; put 'cnJlbnRBbmNob3Iuc3R5bGUudGV4dERlY29yYXRpb249Im5vbmUiKX19Y29uc3QgQ0Y9Yz0+Yz8/RGM7ZnVuY3Rpb24gd0ooYyl7Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCl9Y29uc3QgU0Y9bmV3IE1hcChbWyJhcnJvdy1sZWZ0IiwiQXJyb3dMZWZ0Il0sWyJhcnJv'@; put 'dy1yaWdodCIsIkFycm93UmlnaHQiXSxbImFycm93LXVwIiwiQXJyb3dVcCJdLFsiYXJyb3ctZG93biIsIkFycm93RG93biJdLFsidGFiIiwiVGFiIl0sWyJlbnRlciIsIkVudGVyIl0sWyJlc2NhcGUiLCJFc2NhcGUiXSxbInNwYWNlIiwiICJdLFsiaG9tZSIsIkhvbWUiXSxbImVuZCIsIkVu'@; put 'ZCJdXSk7Y2xhc3MgRThle3N0YXRpYyBnZXQga2V5Y29kZXMoKXtyZXR1cm4gSGdlKFNGKX1zdGF0aWMgYWRkKGwsYSl7U0Yuc2V0KGwsYSl9c3RhdGljIGhhcyhsKXtyZXR1cm4gU0YuaGFzKGwpfXN0YXRpYyBnZXRDb2RlKGwsYT10aGlzLmtleWNvZGVzKXtyZXR1cm4gZnVuY3Rpb24gazhl'@; put 'KGMsbCl7cmV0dXJuIGwuZ2V0KGMpfHwiIn0obCxhKX19ZnVuY3Rpb24gTUYoYyxsKXtyZXR1cm4gRThlLmdldENvZGUobCk9PT1jLmtleX12YXIgdWg7IWZ1bmN0aW9uKGMpe2MuQXJyb3dVcD0iQXJyb3dVcCIsYy5BcnJvd0Rvd249IkFycm93RG93biIsYy5BcnJvd0xlZnQ9IkFycm93TGVm'@; put 'dCIsYy5BcnJvd1JpZ2h0PSJBcnJvd1JpZ2h0IixjLkVuZD0iRW5kIixjLkhvbWU9IkhvbWUiLGMuUGFnZVVwPSJQYWdlVXAiLGMuUGFnZURvd249IlBhZ2VEb3duIn0odWh8fCh1aD17fSkpO2NsYXNzIE84ZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmhvc3Q9bCx0aGlzLnRyaWdnZXJOYXRpdmVC'@; put 'dXR0b25CZWhhdmlvckhhbmRsZXI9dGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3IuYmluZCh0aGlzKSx0aGlzLmVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3JIYW5kbGVyPXRoaXMuZW11bGF0ZUtleUJvYXJkRXZlbnRCZWhhdmlvci5iaW5kKHRoaXMpLHRoaXMuaG9zdC5hZGRD'@; put 'b250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7dGhpcy5zZXRCdXR0b25UeXBlKCksdGhpcy5zZXR1cE5hdGl2ZUJ1dHRvbkJlaGF2aW9yKCl9c2V0QnV0dG9uVHlwZSgpeyF0aGlzLmhvc3QudHlwZSYmdGhpcy5ob3N0LmNsb3Nlc3QoImZvcm0iKSYmKHRoaXMuaG9zdC50eXBlPSJzdWJt'@; put 'aXQiKX1zZXR1cE5hdGl2ZUJ1dHRvbkJlaGF2aW9yKCl7dGhpcy5ob3N0LnJlYWRvbmx5fHx0aGlzLmhvc3QuZGlzYWJsZWQ/KHRoaXMuaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3JIYW5kbGVyKSx0aGlzLmhvc3QucmVt'@; put 'b3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuZW11bGF0ZUtleUJvYXJkRXZlbnRCZWhhdmlvckhhbmRsZXIpKToodGhpcy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLnRyaWdnZXJOYXRpdmVCdXR0b25CZWhhdmlvckhhbmRsZXIpLHRoaXMuaG9zdC5hZGRFdmVudExp'@; put 'c3RlbmVyKCJrZXl1cCIsdGhpcy5lbXVsYXRlS2V5Qm9hcmRFdmVudEJlaGF2aW9ySGFuZGxlcikpfWVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3IobCl7IWZ1bmN0aW9uIEE4ZShjLGwsYSl7Yy5maWx0ZXIoZD0+TUYobCxkKSkubGVuZ3RoPjAmJmEoKX0oWyJlbnRlciIsInNwYWNlIl0s'@; put 'bCwoKT0+eyJzdWJtaXQiPT09dGhpcy5ob3N0LnR5cGU/dGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3IobCk6dGhpcy5ob3N0LmNsaWNrKCksd0oobCl9KX10cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3IobCl7aWYodGhpcy5ob3N0LmRpc2FibGVkKXdKKGwpO2Vsc2UgaWYoIWwu'@; put 'ZGVmYXVsdFByZXZlbnRlZCl7Y29uc3QgYT1mdW5jdGlvbiBMOGUoYyxsLGEpe2NvbnN0IGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5hcHBlbmRDaGlsZChkKSxwSihjLGwse3JlbmRlckJlZm9yZTpkLC4uLmF9KTtjb25zdCBoPWQucHJldmlvdXNTaWJsaW5nO3JldHVybiBk'@; put 'LnJlbW92ZSgpLGh9KHZGYDxidXR0b24gYXJpYS1oaWRkZW49InRydWUiIHJvbGU9InByZXNlbnRhdGlvbiIgP2Rpc2FibGVkPSIke3RoaXMuaG9zdC5kaXNhYmxlZH0iIHRhYmluZGV4PSItMSIgc3R5bGU9ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQiIHZhbHVlPSIke0NGKHRoaXMuaG9zdC52'@; put 'YWx1ZSl9IiBuYW1lPSIke0NGKHRoaXMuaG9zdC5uYW1lKX0iIHR5cGU9IiR7Q0YodGhpcy5ob3N0LnR5cGUpfSI+PC9idXR0b24+YCx0aGlzLmhvc3QpO2E/LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoImNsaWNrIix7cmVsYXRlZFRhcmdldDp0aGlzLmhvc3QsY29tcG9zZWQ6ITB9'@; put 'KSksYT8ucmVtb3ZlKCl9fX1jbGFzcyBGOGV7Y29uc3RydWN0b3IobCl7dGhpcy5ob3N0PWwsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdFVwZGF0ZWQoKXtudWxsIT10aGlzLmhvc3QuZXhwYW5kZWQmJih0aGlzLmhvc3QuYXJpYUV4cGFuZGVkPXRoaXMuaG9zdC5leHBhbmRl'@; put 'ZD8idHJ1ZSI6ImZhbHNlIiksdGhpcy5ob3N0LnJlYWRvbmx5JiYodGhpcy5ob3N0LmFyaWFFeHBhbmRlZD1udWxsKX19bGV0IHMyPWNsYXNzIGV4dGVuZHMgYjh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2Rpc2FibGVkPSExfWdldCBkaXNhYmxlZCgpe3JldHVy'@; put 'biB0aGlzLl9kaXNhYmxlZH1zZXQgZGlzYWJsZWQoYyl7Y29uc3QgbD10aGlzLl9kaXNhYmxlZDt0aGlzLl9kaXNhYmxlZD1jLHRoaXMucmVxdWVzdFVwZGF0ZSgiZGlzYWJsZWQiLGwpfX07TXQoW2tsKHt0eXBlOkJvb2xlYW59KV0sczIucHJvdG90eXBlLCJwcmVzc2VkIix2b2lkIDApLE10'@; put 'KFtrbCh7dHlwZTpCb29sZWFufSldLHMyLnByb3RvdHlwZSwiZXhwYW5kZWQiLHZvaWQgMCksTXQoW2tsKHt0eXBlOkJvb2xlYW59KV0sczIucHJvdG90eXBlLCJyZWFkb25seSIsdm9pZCAwKSxNdChba2woe3R5cGU6U3RyaW5nfSldLHMyLnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKSxNdChb'@; put 'a2woe3R5cGU6U3RyaW5nfSldLHMyLnByb3RvdHlwZSwibmFtZSIsdm9pZCAwKSxNdChba2woe3R5cGU6U3RyaW5nfSldLHMyLnByb3RvdHlwZSwidmFsdWUiLHZvaWQgMCksTXQoW2tsKHt0eXBlOkJvb2xlYW59KV0sczIucHJvdG90eXBlLCJkaXNhYmxlZCIsbnVsbCksTXQoW2tsKHt0eXBl'@; put 'OlN0cmluZ30pXSxzMi5wcm90b3R5cGUsInBvcHVwIix2b2lkIDApLHMyPU10KFtmdW5jdGlvbiBmOGUoKXtyZXR1cm4gYz0+Yy5hZGRJbml0aWFsaXplcihsPT5uZXcgcDhlKGwpKX0oKSxmdW5jdGlvbiB3OGUoKXtyZXR1cm4gYz0+Yy5hZGRJbml0aWFsaXplcihsPT5uZXcgQzhlKGwpKX0o'@; put 'KSxmdW5jdGlvbiBiOGUoKXtyZXR1cm4gYz0+Yy5hZGRJbml0aWFsaXplcihsPT5uZXcgeThlKGwpKX0oKSxmdW5jdGlvbiBQOGUoKXtyZXR1cm4gYz0+Yy5hZGRJbml0aWFsaXplcihsPT5uZXcgRjhlKGwpKX0oKSxmdW5jdGlvbiB2OGUoKXtyZXR1cm4gYz0+Yy5hZGRJbml0aWFsaXplcihs'@; put 'PT5uZXcgXzhlKGwpKX0oKSxmdW5jdGlvbiBnOGUoKXtyZXR1cm4gYz0+Yy5hZGRJbml0aWFsaXplcihsPT5uZXcgbThlKGwpKX0oKSxmdW5jdGlvbiBSOGUoKXtyZXR1cm4gYz0+Yy5hZGRJbml0aWFsaXplcihsPT5uZXcgTzhlKGwpKX0oKSxmdW5jdGlvbiBTOGUoKXtyZXR1cm4gYz0+Yy5h'@; put 'ZGRJbml0aWFsaXplcihsPT5uZXcgTThlKGwpKX0oKV0sczIpO2NvbnN0IHZFPXthY3Rpb25zOntzb3J0OiJTb3J0IixleHBhbmQ6IkV4cGFuZCIsY2xvc2U6IkNsb3NlIixyZXNpemU6IlJlc2l6ZSIsZmlsdGVyOiJGaWx0ZXIifSxhbGVydDp7Y2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3Nl'@; put 'Iixsb2FkaW5nOiJMb2FkaW5nIixpbmZvOiJJbmZvIixzdWNjZXNzOiJTdWNjZXNzIix3YXJuaW5nOiJXYXJuaW5nIixkYW5nZXI6IkVycm9yIn0sZHJvcGRvd246e29wZW46Ik9wZW4ifSxmaWxlOnticm93c2U6ImJyb3dzZSIsZmlsZXM6ImZpbGVzIixyZW1vdmVGaWxlOiJyZW1vdmUgZmls'@; put 'ZSJ9LG1vZGFsOntjbG9zZUJ1dHRvbkFyaWFMYWJlbDoiQ2xvc2UgbW9kYWwiLGNvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIG1vZGFsIGNvbnRlbnQiLGNvbnRlbnRCb3g6IlNjcm9sbGFibGUgbW9kYWwgYm9keSIsY29udGVudEVuZDoiRW5kIG9mIG1vZGFsIGNvbnRlbnQifSxuYXZpZ2F0'@; put 'aW9uOntuYXZpZ2F0aW9uRWxlbWVudDoibmF2aWdhdGlvbiIsbmF2aWdhdGlvbkxhYmVsOiJuYXZpZ2F0aW9uIG1lbnUiLG5hdmlnYXRpb25BYnJpZGdlZFRleHQ6IlZpZXcgYWJyaWRnZWQgbWVudSIsbmF2aWdhdGlvblVuYWJyaWRnZWRUZXh0OiJWaWV3IHVuYWJyaWRnZWQgbWVudSJ9LG92'@; put 'ZXJsYXk6e2Nsb3NlQnV0dG9uQXJpYUxhYmVsOiJDbG9zZSBkaWFsb2ciLGNvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIGRpYWxvZyBjb250ZW50Iixjb250ZW50RW5kOiJFbmQgb2YgZGlhbG9nIGNvbnRlbnQifSxwb3B1cDp7Y2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIHBvcHVwIixj'@; put 'b250ZW50U3RhcnQ6IkJlZ2lubmluZyBvZiBwb3B1cCBjb250ZW50Iixjb250ZW50RW5kOiJFbmQgb2YgcG9wdXAgY29udGVudCJ9LHBhc3N3b3JkOntzaG93QnV0dG9uQXJpYUxhYmVsOiJTaG93IHBhc3N3b3JkIixoaWRlQnV0dG9uQXJpYUxhYmVsOiJIaWRlIHBhc3N3b3JkIn0scHJvZ3Jl'@; put 'c3M6e2xvYWRpbmc6IkxvYWRpbmciLGxvb3Bpbmc6IkxvYWRpbmcifSx0cmVldmlldzp7bG9hZGluZzoiTG9hZGluZyJ9LGdyaWQ6e3Jlc2l6ZUNvbHVtbjoiUmVzaXplIENvbHVtbiIsY2xvc2VEZXRhaWxzOiJDbG9zZSBEZXRhaWxzIixub0RhdGE6Ik5vIFJlc3VsdHMgRm91bmQiLHJvd0Rl'@; put 'dGFpbFN0YXJ0OiJTdGFydCBvZiByb3cgZGV0YWlscyIscm93RGV0YWlsRW5kOiJFbmQgb2Ygcm93IGRldGFpbHMiLGZvb3RlckVuZDoiRW5kIG9mIGdyaWQgcm93cyIsYWN0aW9uOiJBY3Rpb24iLGRyb3BUYXJnZXQ6IkRyb3AgSXRlbSIscGFnaW5hdGlvbjp7bGFiZWw6ImdyaWQgcGFnaW5h'@; put 'dGlvbiIsZmlyc3RQYWdlOiJnbyB0byBmaXJzdCBwYWdlIixwcmV2aW91c1BhZ2U6ImdvIHRvIHByZXZpb3VzIHBhZ2UiLG5leHRQYWdlOiJnbyB0byBuZXh0IHBhZ2UiLGxhc3RQYWdlOiJnbyB0byBsYXN0IHBhZ2UiLHBhZ2VTaXplOiJyb3dzIHBlciBwYWdlIixwYWdlOiJwYWdlIn19fTtj'@; put 'bGFzcyBZNXtzdGF0aWMgZ2V0IGtleXMoKXtyZXR1cm4gMD09PU9iamVjdC5rZXlzKCRsLnN0YXRlLmkxOG5SZWdpc3RyeSkubGVuZ3RoJiYoJGwuc3RhdGUuaTE4blJlZ2lzdHJ5PVA1KHZFLCRsLnN0YXRlLmkxOG5SZWdpc3RyeSkpLFA1KHZFLCRsLnN0YXRlLmkxOG5SZWdpc3RyeSl9c3Rh'@; put 'dGljIGZpbmRLZXkobCl7Y29uc3QgYT1ZNS5rZXlzO3JldHVybiBPYmplY3Qua2V5cyhhKS5maW5kKGQ9PmRLKGFbZF0sbCkpfXN0YXRpYyBnZXQobCl7cmV0dXJuIGwmJlk1LmtleXNbbF18fHt9fXN0YXRpYyByZXNldCgpeyRsLnN0YXRlLmkxOG5SZWdpc3RyeT1QNSh7fSx2RSl9c3RhdGlj'@; put 'IGh5ZHJhdGUobCxhKXtyZXR1cm4gSlNPTi5wYXJzZShmdW5jdGlvbiAkZ2UoYyxsLGEpe3JldHVybiBjLnJlcGxhY2UoL1wkXHsuKz9cfS9nLGQ9PmZ1bmN0aW9uIEZnZShjLGwsYT1gXCR7JHtjfX1gKXtyZXR1cm4gYy5zcGxpdCgiLiIpLnJlZHVjZSgoZCxoKT0+e3RyeXtjb25zdCBmPWRb'@; put 'aF07c3dpdGNoKCEwKXtjYXNlIG51bGw9PT1mOmNhc2UhMT09PWY6Y2FzZSIiPT09ZjpjYXNlIDA9PT1mOnJldHVybiBmO2RlZmF1bHQ6cmV0dXJuIGZ8fGF9fWNhdGNoe3JldHVybiBhfX0sbCl9KGQuc3Vic3RyKDIsZC5sZW5ndGgtMykudHJpbSgpLGwsYSkpfShKU09OLnN0cmluZ2lmeShs'@; put 'KSxhKSl9c3RhdGljIGxvY2FsaXplKGwpeyRsLnN0YXRlLmkxOG5SZWdpc3RyeT1QNSh2RSwkbC5zdGF0ZS5pMThuUmVnaXN0cnksbCl9fXZhciBCOGU9Y0ZgOmhvc3R7LS1pY29uLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNywgY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xv'@; put 'YmFsLWJhc2UsIDIwKSkpOy0taWNvbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LCBjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS13aWR0aDp2YXIoLS1pY29uLXdpZHRoKTstLWhlaWdodDp2YXIoLS1pY29uLXdpZHRoKTstLWN1cnNvcjpw'@; put 'b2ludGVyOy0tY29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTMwMCwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwLCAjMmQ0MDQ4KSk7LS1mb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0zLCBjYWxjKDEz'@; put 'ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS1iYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy0tcGFkZGluZzowOy0tb3V0bGluZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUsIEhpZ2hsaWdodCBzb2xpZCAycHgpOy0tb3V0bGluZS1vZmZz'@; put 'ZXQ6Y2FsYyh2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUtb2Zmc2V0LCAxcHgpICogLTEpO3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3V0bGluZTowIWltcG9ydGFudH06aG9zdChbcm9sZT1idXR0b25dKXtwb2ludGVyLWV2ZW50'@; put 'czppbml0aWFsO2N1cnNvcjp2YXIoLS1jdXJzb3IpIWltcG9ydGFudH06aG9zdChbc3RhdHVzPWFjdGl2ZV0pey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwLCAjMDA3OWFkKSl9OjpzbG90dGVkKFtzaGFwZT1jbG9z'@; put 'ZV0pLDo6c2xvdHRlZChbc2hhcGU9aW5mby1jaXJjbGVdKSw6OnNsb3R0ZWQoW3NoYXBlPXRpbWVzXSksOmhvc3QoW3NoYXBlPWNsb3NlXSksOmhvc3QoW3NoYXBlPWluZm8tY2lyY2xlXSl7LS1pY29uLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCwgY2FsYygxOCAqIDFyZW0gLyB2'@; put 'YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0taWNvbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04LCBjYWxjKDE4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSl9Omhvc3QoOmhvdmVyKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJh'@; put 'Y3Rpb24tY29sb3ItaG92ZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMDAsICMxYjJiMzIpKX06aG9zdCg6YWN0aXZlKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9y'@; put 'LWNvbnN0cnVjdGlvbi0xMDAwLCAjMWIyYjMyKSl9Omhvc3QoOmFjdGl2ZSkgLnByaXZhdGUtaG9zdHt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSxjYWxjKDEgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpLyAyKSl9Omhvc3Qo'@; put 'W2Rpc2FibGVkXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDAsICNhZWI4YmMpKX0ucHJpdmF0ZS1ob3N0ey0taWNvbi1jb2xvcjp2YXIoLS1jb2xvcik7YmFj'@; put 'a2dyb3VuZDp2YXIoLS1iYWNrZ3JvdW5kKTtwYWRkaW5nOnZhcigtLXBhZGRpbmcpO2NvbG9yOnZhcigtLWNvbG9yKTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplKTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOnZhcigt'@; put 'LXdpZHRoKTttaW4taGVpZ2h0OnZhcigtLWhlaWdodCl9OjpzbG90dGVkKGNkcy1pY29uKSxjZHMtaWNvbnt3aWR0aDp2YXIoLS1pY29uLXdpZHRoKTtoZWlnaHQ6dmFyKC0taWNvbi1oZWlnaHQpO3BvaW50ZXItZXZlbnRzOm5vbmV9OjpzbG90dGVkKGNkcy1pY29uOm5vdChbc3RhdHVzXSkp'@; put 'LGNkcy1pY29uey0tY29sb3I6dmFyKC0taWNvbi1jb2xvcil9Omhvc3QoW2Rpc2FibGVkXTphY3RpdmUpe3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50fS5wcml2YXRlLWhvc3Q6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDpjYWxjKC0xKnZhcigtLXdpZHRo'@; put 'KSAtIDEpO3RvcDpjYWxjKC0xKnZhcigtLWhlaWdodCkgLSAxKTt3aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXRvdWNoLXRhcmdldCxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtoZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVj'@; put 'dC1pbnRlcmFjdGlvbi10b3VjaC10YXJnZXQsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW2Rpc2FibGVkXSkgLnByaXZhdGUtaG9zdDo6YWZ0ZXJ7b3V0bGluZTowIWltcG9ydGFudH06aG9zdCg6Zm9jdXMpIC5wcml2YXRlLWhvc3Q6OmFmdGVy'@; put 'e291dGxpbmU6dmFyKC0tb3V0bGluZSk7b3V0bGluZS1vZmZzZXQ6dmFyKC0tb3V0bGluZS1vZmZzZXQpfUBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApezpob3N0KDpmb2N1cykgLnByaXZhdGUtaG9zdDo6YWZ0ZXJ7b3V0bGluZS1jb2xvcjotd2Via2l0LWZvY3Vz'@; put 'LXJpbmctY29sb3J9fWA7Y2xhc3MgVzUgZXh0ZW5kcyBzMntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pMThuPVk1LmtleXMuYWN0aW9ucyx0aGlzLmNkc0J1dHRvbkFjdGlvbj0hMH1yZW5kZXIoKXtyZXR1cm4gdkZgPGRpdiBjbGFzcz0icHJpdmF0ZS1ob3N0Ij48'@; put 'c2xvdD48Y2RzLWljb24gLnNoYXBlPSIke3RoaXMuc2hhcGU/dGhpcy5zaGFwZToiZWxsaXBzaXMtdmVydGljYWwifSIgLnNpemU9IiR7dGhpcy5pY29uU2l6ZX0iID9zb2xpZD0iJHt0aGlzLnByZXNzZWR8fHRoaXMuZXhwYW5kZWR9IiBpbm5lci1vZmZzZXQ9IiR7MX0iPjwvY2RzLWljb24+'@; put 'PC9zbG90PjwvZGl2PmB9dXBkYXRlZChsKXtzdXBlci51cGRhdGVkKGwpLHRoaXMuYXJpYUxhYmVsfHx0aGlzLnJlYWRvbmx5fHxINS53YXJuKCJBIGFyaWEtbGFiZWwgaXMgcmVxdWlyZWQgZm9yIGludGVyYWN0aXZlIGNkcy1idXR0b24tYWN0aW9uIHR5cGUiLHRoaXMpLGwuaGFzKCJyZWFk'@; put 'b25seSIpJiYodGhpcy5hcmlhSGlkZGVuPXRoaXMucmVhZG9ubHkmJiF0aGlzLmhhc0F0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpPyJ0cnVlIjpudWxsKX19VzUuc3R5bGVzPVttSixCOGVdLE10KFtrbCh7dHlwZTpTdHJpbmd9KV0sVzUucHJvdG90eXBlLCJzaGFwZSIsdm9pZCAwKSxNdChba2wo'@; put 'e3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sVzUucHJvdG90eXBlLCJhY3Rpb24iLHZvaWQgMCksTXQoW2tsKHt0eXBlOlN0cmluZ30pXSxXNS5wcm90b3R5cGUsImljb25TaXplIix2b2lkIDApLE10KFtmdW5jdGlvbiBIOGUoKXtyZXR1cm4oYyxsKT0+e2NvbnN0IGE9Yy5jb25uZWN0ZWRD'@; put 'YWxsYmFjayxkPWMuZGlzY29ubmVjdGVkQ2FsbGJhY2s7Yy5jb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe2MuX19pMThuU3ViPSRsLnN0YXRlVXBkYXRlcy5zdWJzY3JpYmUoZj0+eyJpMThuUmVnaXN0cnkiPT09Zi5rZXkmJnRoaXMucmVxdWVzdFVwZGF0ZShsKX0pLGEmJmEuYXBwbHko'@; put 'dGhpcyl9LGMuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXtjLl9faTE4blN1Yi51bnN1YnNjcmliZSgpLGQmJmQuYXBwbHkodGhpcyl9O2NvbnN0IGg9e2dldCgpe2NvbnN0IGY9UDUoWTUua2V5c1t0aGlzLl9faTE4bktleV0sdGhpcy5fX2kxOG58fHt9KTtyZXR1cm4gWTUuaHlk'@; put 'cmF0ZShmLHRoaXMpfSxzZXQoZil7Y29uc3QgXz1mdW5jdGlvbiBOOGUoYyxsKXtpZihfcChjKSl7bGV0IGE9e307aWYobC5oYXNBdHRyaWJ1dGUoImNkcy1pMThuIikpe2NvbnN0IGQ9bC5nZXRBdHRyaWJ1dGUoImNkcy1pMThuIikrIiI7aWYoX3AoZCkpYT17fTtlbHNlIHRyeXthPUpTT04u'@; put 'cGFyc2UoZCl9Y2F0Y2h7SDUud2FybigiQ2xhcml0eSBpMThuOiBJbnZhbGlkIEpTT04gcGFzc2VkIHRvIGNkcy1pMThuIiksYT17fX19cmV0dXJuIGF9cmV0dXJuIGN9KGYsdGhpcyksVD1mdW5jdGlvbiBWOGUoYyxsLGEsZCl7cmV0dXJuIF9wKGMpP2RLKGEsZCk/e3VwZGF0ZTohMX06e3Vw'@; put 'ZGF0ZTohMCx2YWx1ZXM6YX06Yz09PWw/e3VwZGF0ZTohMSx2YWx1ZXM6e319Ont1cGRhdGU6ITAsa2V5OmMsdmFsdWVzOnt9fX0oWTUuZmluZEtleShfKXx8IiIsdGhpcy5fX2kxOG5LZXksXyx0aGlzLl9faTE4bik7dm9pZCAwIT09VC5rZXkmJih0aGlzLl9faTE4bktleT1ULmtleSsiIiks'@; put 'dm9pZCAwIT09VC52YWx1ZXMmJih0aGlzLl9faTE4bj17Li4uVC52YWx1ZXN9KSwhMD09PVQudXBkYXRlJiZ0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnJlcXVlc3RVcGRhdGUobCl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfTtyZXR1cm4gdm9pZCAwIT09bD9mdW5jdGlvbihm'@; put 'LF8sVCl7Y29uc3QgVz1PYmplY3QuZGVmaW5lUHJvcGVydHkoXyxULGYpO3JldHVybiBrbCh7dHlwZTpPYmplY3QsYXR0cmlidXRlOiJjZHMtaTE4biJ9KShXLFQpfShoLGMsbCk6ZnVuY3Rpb24oZixfKXtjb25zdCBUPXtraW5kOiJtZXRob2QiLHBsYWNlbWVudDoicHJvdG90eXBlIixrZXk6'@; put 'Xy5rZXksZGVzY3JpcHRvcjpmfTtyZXR1cm4ga2woe3R5cGU6T2JqZWN0fSkoVCl9KGgsYyl9fSgpXSxXNS5wcm90b3R5cGUsImkxOG4iLHZvaWQgMCksTXQoW2JKKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6ImNkcy1idXR0b24tYWN0aW9uIn0pXSxXNS5wcm90b3R5cGUs'@; put 'ImNkc0J1dHRvbkFjdGlvbiIsdm9pZCAwKTtjbGFzcyBTSiBleHRlbmRzIFc1e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNoYXBlPSJjbG9zZSJ9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYXJpYUxhYmVsPXRoaXMu'@; put 'YXJpYUxhYmVsP3RoaXMuYXJpYUxhYmVsOnRoaXMuaTE4bi5jbG9zZX19TXQoW2tsKHt0eXBlOlN0cmluZ30pXSxTSi5wcm90b3R5cGUsInNoYXBlIix2b2lkIDApLFZYKCJjZHMtaW50ZXJuYWwtY2xvc2UtYnV0dG9uIixTSiksVnMuYWRkSWNvbnMoSUspLFZzLmFkZEFsaWFzZXMoWyJ0aW1l'@; put 'cyIsWyJjbG9zZSJdXSk7Y29uc3QgRW89WyIqIl07ZnVuY3Rpb24gejhlKGMsbCl7aWYoMSZjJiYoVnIoMCksTmUoMSksenIoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLG9yKGEuY29tbW9uU3RyaW5ncy5rZXlzLmRhbmdlcil9fWZ1bmN0aW9uIFU4ZShjLGwpe2lmKDEmYyYmKG1lKDAs'@; put 'ImRpdiIsMTQpLEplKDEsejhlLDIsMSwibmctY29udGFpbmVyIiwwKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQsZD1WZSgpO0NlKDEpLFJlKCJuZ0lmIixhLnN0YXR1cz09PWQuQWNjb3JkaW9uU3RhdHVzLkVycm9yKX19ZnVuY3Rpb24gWjhlKGMsbCl7aWYoMSZjJiYoVnIo'@; put 'MCksTmUoMSksenIoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLG9yKGEuY29tbW9uU3RyaW5ncy5rZXlzLmRhbmdlcil9fWZ1bmN0aW9uIFk4ZShjLGwpe2lmKDEmYyYmKFZyKDApLE5lKDEpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgxKSxvcihhLmNvbW1vblN0cmluZ3Mua2V5'@; put 'cy5zdWNjZXNzKX19ZnVuY3Rpb24gVzhlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwxNSkseHQoIkB0b2dnbGUuZG9uZSIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKCkuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLmNvbGxhcHNlUGFuZWxPbkFuaW1hdGlvbkRv'@; put 'bmUoaCkpfSksbWUoMSwiZGl2IiwxNiksa3IoMiwyKSx5ZSgpKCl9MiZjJiZSZSgiQHRvZ2dsZSIsdm9pZCAwKX1mdW5jdGlvbiBHOGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxKZSgxLFU4ZSwyLDEsImRpdiIsMSksbWUoMiwiZGl2IiwyKSgzLCJkaXYiLDMpKDQsImJ1dHRv'@; put 'biIsNCw1KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkudG9nZ2xlUGFuZWwoKSl9KSxiYSg2LCJhc3luYyIpLG1lKDcsInNwYW4iLDYpLEplKDgsWjhlLDIsMSwibmctY29udGFpbmVyIiwwKSxKZSg5LFk4ZSwyLDEsIm5nLWNvbnRhaW5lciIsMCkseWUoKSxt'@; put 'ZSgxMCwic3BhbiIsNykscXQoMTEsImNkcy1pY29uIiw4KSgxMiwic3BhbiIsOSkoMTMsImNkcy1pY29uIiwxMCkoMTQsImNkcy1pY29uIiwxMSkseWUoKSxrcigxNSksa3IoMTYsMSkseWUoKSgpLG1lKDE3LCJkaXYiLDEyKSxKZSgxOCxXOGUsMywxLCJkaXYiLDEzKSx5ZSgpKCksenIoKX1p'@; put 'ZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSgpO2xldCBoO0NlKDEpLFJlKCJuZ0lmIixhLnN0YXR1cyE9PWQuQWNjb3JkaW9uU3RhdHVzLkluYWN0aXZlKSxDZSgxKSxSZSgibmdDbGFzcyIsZC5nZXRQYW5lbFN0YXRlQ2xhc3NlcyhhKSksQ2UoMiksZHIoImNsci1hY2NvcmRpb24t'@; put 'aGVhZGVyLWhhcy1kZXNjcmlwdGlvbiIsKG51bGw9PShoPVpsKDYsMTYsZC5hY2NvcmRpb25EZXNjcmlwdGlvbi5jaGFuZ2VzKSk/bnVsbDpoLmxlbmd0aCl8fGQuYWNjb3JkaW9uRGVzY3JpcHRpb24ubGVuZ3RoKSxSZSgiaWQiLGQuZ2V0QWNjb3JkaW9uSGVhZGVySWQoYS50ZW1wbGF0ZUlk'@; put 'KSkoImRpc2FibGVkIixkLmlzQWNjb3JkaW9uJiZhLmRpc2FibGVkKSxUcigiYXJpYS1kaXNhYmxlZCIsIWQuaXNBY2NvcmRpb24mJmEuZGlzYWJsZWQpKCJhcmlhLWNvbnRyb2xzIixkLmdldEFjY29yZGlvbkNvbnRlbnRJZChhLnRlbXBsYXRlSWQpKSgiYXJpYS1leHBhbmRlZCIsYS5vcGVu'@; put 'KSxDZSg0KSxSZSgibmdJZiIsYS5zdGF0dXM9PT1kLkFjY29yZGlvblN0YXR1cy5FcnJvciksQ2UoMSksUmUoIm5nSWYiLGEuc3RhdHVzPT09ZC5BY2NvcmRpb25TdGF0dXMuQ29tcGxldGUpLENlKDgpLFJlKCJAc2tpcEluaXRpYWxSZW5kZXIiLHZvaWQgMCkoImlkIixkLmdldEFjY29yZGlv'@; put 'bkNvbnRlbnRJZChhLnRlbXBsYXRlSWQpKSxUcigiYXJpYS1oaWRkZW4iLCFhLm9wZW4pKCJhcmlhLWxhYmVsbGVkYnkiLGQuZ2V0QWNjb3JkaW9uSGVhZGVySWQoYS50ZW1wbGF0ZUlkKSksQ2UoMSksUmUoIm5nSWYiLGEub3Blbil9fWNvbnN0IE1KPVtbWyJjbHItYWNjb3JkaW9uLXRpdGxl'@; put 'Il0sWyJjbHItc3RlcC10aXRsZSJdXSxbWyJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uIl0sWyJjbHItc3RlcC1kZXNjcmlwdGlvbiJdXSwiKiJdLHhKPVsiY2xyLWFjY29yZGlvbi10aXRsZSwgY2xyLXN0ZXAtdGl0bGUiLCJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uLCBjbHItc3RlcC1k'@; put 'ZXNjcmlwdGlvbiIsIioiXSxnN2U9WyJjbHJMb2FkaW5nIiwiIl07ZnVuY3Rpb24gbTdlKGMsbCl7MSZjJiYobWUoMCwic3BhbiIpLHF0KDEsInNwYW4iLDIpLHllKCkpLDImYyYmKENlKDEpLFJlKCJAc3Bpbm5lciIsdm9pZCAwKSl9ZnVuY3Rpb24gdjdlKGMsbCl7aWYoMSZjKXtjb25zdCBh'@; put 'PVZuKCk7bWUoMCwic3BhbiIpKDEsInNwYW4iLDMpLHh0KCJAdmFsaWRhdGVkLmRvbmUiLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVybiBqdChoLmxvYWRpbmdTdGF0ZUNoYW5nZShoLmJ1dHRvblN0YXRlLkRFRkFVTFQpKX0pLHllKCkoKX0yJmMmJihDZSgxKSxSZSgiQHZh'@; put 'bGlkYXRlZCIsdm9pZCAwKSl9ZnVuY3Rpb24gXzdlKGMsbCl7MSZjJiYobWUoMCwic3BhbiIpLGtyKDEpLHllKCkpLDImYyYmUmUoIkBkZWZhdWx0QnV0dG9uIix2b2lkIDApfWZ1bmN0aW9uIGI3ZShjLGwpezEmYyYmcXQoMCwibGFiZWwiKX1jb25zdCB5N2U9W1tbIiIsImNsckNoZWNrYm94'@; put 'IiwiIl0sWyIiLCJjbHJUb2dnbGUiLCIiXV0sW1sibGFiZWwiXV1dLHc3ZT1bIltjbHJDaGVja2JveF0sW2NsclRvZ2dsZV0iLCJsYWJlbCJdO2Z1bmN0aW9uIEM3ZShjLGwpezEmYyYmcXQoMCwibGFiZWwiKX1mdW5jdGlvbiBTN2UoYyxsKXsxJmMmJmtyKDAsMixbIipuZ0lmIiwic2hvd0hl'@; put 'bHBlciJdKX1mdW5jdGlvbiBNN2UoYyxsKXsxJmMmJnF0KDAsImNkcy1pY29uIiw1KX1mdW5jdGlvbiB4N2UoYyxsKXsxJmMmJnF0KDAsImNkcy1pY29uIiw2KX1mdW5jdGlvbiBFN2UoYyxsKXsxJmMmJmtyKDAsMyxbIipuZ0lmIiwic2hvd0ludmFsaWQiXSl9ZnVuY3Rpb24gazdlKGMsbCl7'@; put 'MSZjJiZrcigwLDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCBBN2U9W1tbImxhYmVsIl1dLFtbImNsci1jaGVja2JveC13cmFwcGVyIl0sWyJjbHItdG9nZ2xlLXdyYXBwZXIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1j'@; put 'b250cm9sLXN1Y2Nlc3MiXV1dLFQ3ZT1bImxhYmVsIiwiY2xyLWNoZWNrYm94LXdyYXBwZXIsY2xyLXRvZ2dsZS13cmFwcGVyIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl0sRDdlPVsiY2xyS2V5Rm9jdXMiLCIiXTtmdW5j'@; put 'dGlvbiBQN2UoYyxsKXsxJmMmJnF0KDAsImxhYmVsIil9ZnVuY3Rpb24gRjdlKGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gSDdlKGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsNil9ZnVuY3Rpb24gTjdlKGMsbCl7MSZjJiZrcigwLDIsWyIqbmdJZiIsInNob3dIZWxw'@; put 'ZXIiXSl9ZnVuY3Rpb24gVjdlKGMsbCl7MSZjJiZrcigwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIEI3ZShjLGwpezEmYyYma3IoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9Y29uc3QgajdlPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJJbnB1dCIsIiJdXSxbWyJjbHIt'@; put 'Y29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sejdlPVsibGFiZWwiLCJbY2xySW5wdXRdIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl07ZnVuY3Rp'@; put 'b24gVTdlKGMsbCl7aWYoMSZjJiYobWUoMCwidGgiLDQpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtUcigiYXJpYS1sYWJlbCIsYS5kYXkpLENlKDEpLGdyKCIgIixhLm5hcnJvdywiICIpfX1mdW5jdGlvbiBaN2UoYyxsKXtpZigxJmMmJihtZSgwLCJ0ZCIsNykscXQo'@; put 'MSwiY2xyLWRheSIsOCkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLFJlKCJjbHJEYXlWaWV3IixhKX19ZnVuY3Rpb24gWTdlKGMsbCl7aWYoMSZjJiYobWUoMCwidHIiLDUpLEplKDEsWjdlLDIsMSwidGQiLDYpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtD'@; put 'ZSgxKSxSZSgibmdGb3JPZiIsYSl9fWZ1bmN0aW9uIFc3ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImJ1dHRvbiIsMSkseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuaW5kZXg7cmV0dXJuIGp0KFZlKCkuY2hhbmdlTW9udGgoZikpfSksTmUoMSkseWUoKX1p'@; put 'ZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4LGg9VmUoKTtkcigiaXMtc2VsZWN0ZWQiLGQ9PT1oLmNhbGVuZGFyTW9udGhJbmRleCksVHIoInRhYmluZGV4IixoLmdldFRhYkluZGV4KGQpKSxDZSgxKSxncigiICIsYSwiICIpfX1mdW5jdGlvbiBHN2UoYyxsKXtpZigxJmMp'@; put 'e2NvbnN0IGE9Vm4oKTttZSgwLCJidXR0b24iLDcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS5jaGFuZ2VZZWFyKGYpKX0pLE5lKDEpLHllKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoKTtkcigiaXMtc2Vs'@; put 'ZWN0ZWQiLGE9PT1kLmNhbGVuZGFyWWVhciksVHIoInRhYmluZGV4IixkLmdldFRhYkluZGV4KGEpKSxDZSgxKSxncigiICIsYSwiICIpfX1mdW5jdGlvbiAkN2UoYyxsKXsxJmMmJnF0KDAsImNsci1tb250aHBpY2tlciIpfWZ1bmN0aW9uIHE3ZShjLGwpezEmYyYmcXQoMCwiY2xyLXllYXJw'@; put 'aWNrZXIiKX1mdW5jdGlvbiBLN2UoYyxsKXsxJmMmJnF0KDAsImNsci1kYXlwaWNrZXIiKX1jb25zdCBYN2U9WyJhY3Rpb25CdXR0b24iXTtmdW5jdGlvbiBKN2UoYyxsKXsxJmMmJnF0KDAsImxhYmVsIil9ZnVuY3Rpb24gUTdlKGMsbCl7MSZjJiYobWUoMCwiYnV0dG9uIiw4LDkpLHF0KDIs'@; put 'ImNkcy1pY29uIiwxMCkseWUoKSksMiZjJiZSZSgiZGlzYWJsZWQiLFZlKCkuaXNJbnB1dERhdGVEaXNhYmxlZCl9ZnVuY3Rpb24gZTllKGMsbCl7MSZjJiZxdCgwLCJjbHItZGF0ZXBpY2tlci12aWV3LW1hbmFnZXIiLDExKX1mdW5jdGlvbiB0OWUoYyxsKXsxJmMmJnF0KDAsImNkcy1pY29u'@; put 'IiwxMil9ZnVuY3Rpb24gbjllKGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsMTMpfWZ1bmN0aW9uIHI5ZShjLGwpezEmYyYma3IoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIGk5ZShjLGwpezEmYyYma3IoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlv'@; put 'biBvOWUoYyxsKXsxJmMmJmtyKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IHM5ZT1bW1sibGFiZWwiXV0sW1siIiwiY2xyRGF0ZSIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0s'@; put 'YTllPVsibGFiZWwiLCJbY2xyRGF0ZV0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiBsOWUoYyxsKXsxJmMmJnF0KDAsImxhYmVsIil9Y29uc3QgYzllPVtbWyIiLCJjbHJSYWRpbyIsIiJdXSxbWyJsYWJl'@; put 'bCJdXV0sdTllPVsiW2NsclJhZGlvXSIsImxhYmVsIl07ZnVuY3Rpb24gZDllKGMsbCl7MSZjJiZxdCgwLCJsYWJlbCIpfWZ1bmN0aW9uIGg5ZShjLGwpezEmYyYma3IoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIGY5ZShjLGwpezEmYyYmcXQoMCwiY2RzLWljb24iLDUp'@; put 'fWZ1bmN0aW9uIHA5ZShjLGwpezEmYyYmcXQoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIGc5ZShjLGwpezEmYyYma3IoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBtOWUoYyxsKXsxJmMmJmtyKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IHY5ZT1bW1si'@; put 'bGFiZWwiXV0sW1siY2xyLXJhZGlvLXdyYXBwZXIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLF85ZT1bImxhYmVsIiwiY2xyLXJhZGlvLXdyYXBwZXIiLCJjbHItY29udHJvbC1oZWxwZXIiLCJj'@; put 'bHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiBiOWUoYyxsKXsxJmMmJnF0KDAsImxhYmVsIil9ZnVuY3Rpb24geTllKGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gdzllKGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsNil9ZnVu'@; put 'Y3Rpb24gQzllKGMsbCl7MSZjJiZrcigwLDIsWyIqbmdJZiIsInNob3dIZWxwZXIiXSl9ZnVuY3Rpb24gUzllKGMsbCl7MSZjJiZrcigwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIE05ZShjLGwpezEmYyYma3IoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9Y29uc3Qg'@; put 'eDllPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJTZWxlY3QiLCIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLEU5ZT1bImxhYmVsIiwiW2NsclNlbGVjdF0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJj'@; put 'bHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiBrOWUoYyxsKXsxJmMmJnF0KDAsImxhYmVsIil9ZnVuY3Rpb24gQTllKGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gVDllKGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsNil9ZnVu'@; put 'Y3Rpb24gRDllKGMsbCl7MSZjJiZrcigwLDIsWyIqbmdJZiIsInNob3dIZWxwZXIiXSl9ZnVuY3Rpb24gSTllKGMsbCl7MSZjJiZrcigwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIEw5ZShjLGwpezEmYyYma3IoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9Y29uc3Qg'@; put 'UjllPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJUZXh0YXJlYSIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sTzllPVsibGFiZWwiLCJbY2xyVGV4dGFyZWFdIiwiY2xyLWNvbnRyb2wtaGVscGVy'@; put 'IiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl0sUDllPVsiYW5jaG9yIl07ZnVuY3Rpb24gRjllKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw0KSgxLCJkaXYiLDUpKDIsImJ1dHRvbiIsNikscXQoMywiY2RzLWljb24iLDcpLHllKCkoKSxrcig0KSx5ZSgpKSwy'@; put 'JmMpe2NvbnN0IGE9VmUoKTtSZSgiaWQiLGEucG9wb3ZlcklkKSxUcigiYXJpYS1sYWJlbCIsYS5jb21tb25TdHJpbmdzLmtleXMuZGF0YWdyaWRGaWx0ZXJEaWFsb2dBcmlhTGFiZWwpLENlKDMpLFRyKCJ0aXRsZSIsYS5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpfX1jb25zdCBIOWU9WyJp'@; put 'bnB1dF9sb3ciXSxOOWU9WyJpbnB1dCJdLFY5ZT1bImNvbHVtblBvcnRhbCJdO2Z1bmN0aW9uIEI5ZShjLGwpezEmYyYma3IoMCl9Y29uc3QgajllPVsicmVzaXplVHJhY2tlciJdLHo5ZT1bImNvbHVtbkhhbmRsZSJdO2Z1bmN0aW9uIFU5ZShjLGwpezEmYyYmamEoMCl9ZnVuY3Rpb24gWjll'@; put 'KGMsbCl7MSZjJiZxdCgwLCJjZHMtaWNvbiIsMTApLDImYyYmVHIoImRpcmVjdGlvbiIsVmUoMikuc29ydERpcmVjdGlvbil9ZnVuY3Rpb24gWTllKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiw3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0'@; put 'KFZlKCkuc29ydCgpKX0pLEplKDEsVTllLDEsMCwibmctY29udGFpbmVyIiw4KSxKZSgyLFo5ZSwxLDEsImNkcy1pY29uIiw5KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpLGQ9JGkoNik7Q2UoMSksUmUoIm5nVGVtcGxhdGVPdXRsZXQiLGQpLENlKDEpLFJlKCJuZ0lmIixhLnNvcnREaXJl'@; put 'Y3Rpb24pfX1mdW5jdGlvbiBXOWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItZGctc3RyaW5nLWZpbHRlciIsMTEpLHh0KCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZmlsdGVyVmFsdWU9aCl9KSx5ZSgpfWlmKDIm'@; put 'Yyl7Y29uc3QgYT1WZSgpO1JlKCJjbHJGaWx0ZXJQbGFjZWhvbGRlciIsYS5maWx0ZXJTdHJpbmdQbGFjZWhvbGRlcikoImNsckRnU3RyaW5nRmlsdGVyIixhLnJlZ2lzdGVyZWQpKCJjbHJGaWx0ZXJWYWx1ZSIsYS5maWx0ZXJWYWx1ZSl9fWZ1bmN0aW9uIEc5ZShjLGwpe2lmKDEmYyl7Y29u'@; put 'c3QgYT1WbigpO21lKDAsImNsci1kZy1udW1lcmljLWZpbHRlciIsMTIpLHh0KCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZmlsdGVyVmFsdWU9aCl9KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpO1JlKCJjbHJGaWx0ZXJNYXhQbGFj'@; put 'ZWhvbGRlciIsYS5maWx0ZXJOdW1iZXJNYXhQbGFjZWhvbGRlcikoImNsckZpbHRlck1pblBsYWNlaG9sZGVyIixhLmZpbHRlck51bWJlck1pblBsYWNlaG9sZGVyKSgiY2xyRGdOdW1lcmljRmlsdGVyIixhLnJlZ2lzdGVyZWQpKCJjbHJGaWx0ZXJWYWx1ZSIsYS5maWx0ZXJWYWx1ZSl9fWZ1'@; put 'bmN0aW9uICQ5ZShjLGwpezEmYyYma3IoMCwxKX1mdW5jdGlvbiBxOWUoYyxsKXsxJmMmJmphKDApfWZ1bmN0aW9uIEs5ZShjLGwpe2lmKDEmYyYmKG1lKDAsInNwYW4iLDEzKSxKZSgxLHE5ZSwxLDAsIm5nLWNvbnRhaW5lciIsOCkseWUoKSksMiZjKXtWZSgpO2NvbnN0IGE9JGkoNik7Q2Uo'@; put 'MSksUmUoIm5nVGVtcGxhdGVPdXRsZXQiLGEpfX1mdW5jdGlvbiBYOWUoYyxsKXsxJmMmJnF0KDAsImNsci1kZy1jb2x1bW4tc2VwYXJhdG9yIil9Y29uc3QgSjllPVtbWyJjbHItZGctZmlsdGVyIl0sWyJjbHItZGctc3RyaW5nLWZpbHRlciJdLFsiY2xyLWRnLW51bWVyaWMtZmlsdGVyIl1d'@; put 'LCIqIl0sUTllPVsiY2xyLWRnLWZpbHRlciwgY2xyLWRnLXN0cmluZy1maWx0ZXIsIGNsci1kZy1udW1lcmljLWZpbHRlciIsIioiXTtmdW5jdGlvbiBldmUoYyxsKXsxJmMmJnF0KDAsImRpdiIsNCl9ZnVuY3Rpb24gdHZlKGMsbCl7MSZjJiZrcigwLDAsWyIqbmdJZiIsImVtcHR5RGF0YWdy'@; put 'aWQiXSl9ZnVuY3Rpb24gbnZlKGMsbCl7aWYoMSZjJiYoVnIoMCksbWUoMSwiYnV0dG9uIiwxKSxxdCgyLCJjZHMtaWNvbiIsMikseWUoKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgyKSxUcigidGl0bGUiLGEuY29tbW9uU3RyaW5ncy5rZXlzLmluZm8pfX1jb25zdCBydmU9WyJjZWxs'@; put 'UG9ydGFsIl07ZnVuY3Rpb24gaXZlKGMsbCl7MSZjJiZrcigwKX1jb25zdCBvdmU9WyJyb3dQb3J0YWwiXTtmdW5jdGlvbiBzdmUoYyxsKXsxJmMmJmtyKDApfWNvbnN0IGF2ZT1bImRldGFpbEJ1dHRvbiJdLGx2ZT1bInN0aWNreUNlbGxzIl0sY3ZlPVsic2Nyb2xsYWJsZUNlbGxzIl0sdXZl'@; put 'PVsiY2FsY3VsYXRlZENlbGxzIl07ZnVuY3Rpb24gZHZlKGMsbCl7fWZ1bmN0aW9uIGh2ZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsNyksSmUoMSxkdmUsMCwwLCJuZy10ZW1wbGF0ZSIsOCkseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpLGQ9JGkoNik7'@; put 'UmUoImNsckV4cGFuZFRyaWdnZXIiLGEuZXhwYW5kQW5pbWF0aW9uVHJpZ2dlciksQ2UoMSksUmUoIm5nVGVtcGxhdGVPdXRsZXQiLGQpfX1mdW5jdGlvbiBmdmUoYyxsKXt9ZnVuY3Rpb24gcHZlKGMsbCl7MSZjJiZKZSgwLGZ2ZSwwLDAsIm5nLXRlbXBsYXRlIiw4KSwyJmMmJihWZSgyKSxS'@; put 'ZSgibmdUZW1wbGF0ZU91dGxldCIsJGkoNikpKX1mdW5jdGlvbiBndmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDYpLHh0KCJtb3VzZWRvd24iLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLmNsZWFyUmFuZ2VzKGgpKX0pKCJjbGljayIsZnVuY3Rpb24o'@; put 'aCl7QnQoYSk7Y29uc3QgZj1WZSgpO3JldHVybiBqdChmLnNlbGVjdFJvdyghZi5zZWxlY3RlZCxoKSl9KSxKZSgxLGh2ZSwyLDIsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsMSksSmUoMixwdmUsMSwxLG51bGwsMikseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJ'@; put 'ZiIsYS5leHBhbmQuZXhwYW5kYWJsZSksQ2UoMSksUmUoIm5nSWYiLCFhLmV4cGFuZC5leHBhbmRhYmxlKX19ZnVuY3Rpb24gbXZlKGMsbCl7fWZ1bmN0aW9uIHZ2ZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsNyksSmUoMSxtdmUsMCwwLCJuZy10ZW1w'@; put 'bGF0ZSIsOCkseWUoKSksMiZjKXtjb25zdCBhPVZlKCksZD0kaSg2KTtSZSgiY2xyRXhwYW5kVHJpZ2dlciIsYS5leHBhbmRBbmltYXRpb25UcmlnZ2VyKSxDZSgxKSxSZSgibmdUZW1wbGF0ZU91dGxldCIsZCl9fWZ1bmN0aW9uIF92ZShjLGwpe31mdW5jdGlvbiBidmUoYyxsKXsxJmMmJkpl'@; put 'KDAsX3ZlLDAsMCwibmctdGVtcGxhdGUiLDgpLDImYyYmKFZlKCksUmUoIm5nVGVtcGxhdGVPdXRsZXQiLCRpKDYpKSl9ZnVuY3Rpb24geXZlKGMsbCl7MSZjJiZrcigwKX1jb25zdCBFSj1mdW5jdGlvbihjKXtyZXR1cm57ImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiOmN9fTtmdW5jdGlv'@; put 'biB3dmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDE5KSgxLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDIsImlucHV0IiwyMCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgyKS50b2dnbGUoaCkpfSkseWUoKSxtZSgzLCJs'@; put 'YWJlbCIsMjEpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmNsZWFyUmFuZ2VzKGgpKX0pLG1lKDQsInNwYW4iLDIyKSxOZSg1KSx5ZSgpKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgyKTtSZSgibmdDbGFzcyIsSjIoNyxFSiwhYS5jbHJEZ1NlbGVjdGFi'@; put 'bGUpKSxDZSgyKSxSZSgibmdNb2RlbCIsYS5zZWxlY3RlZCkoImlkIixhLmNoZWNrYm94SWQpKCJkaXNhYmxlZCIsIWEuY2xyRGdTZWxlY3RhYmxlfHxudWxsKSxUcigiYXJpYS1kaXNhYmxlZCIsIWEuY2xyRGdTZWxlY3RhYmxlfHxudWxsKSxDZSgxKSxSZSgiZm9yIixhLmNoZWNrYm94SWQp'@; put 'LENlKDIpLG9yKGEuY2xyRGdSb3dBcmlhTGFiZWx8fGEuY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdCl9fWZ1bmN0aW9uIEN2ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsMTkpKDEsImNsci1yYWRpby13cmFwcGVyIikoMiwiaW5wdXQiLDIzKSx4dCgibmdNb2RlbENo'@; put 'YW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPWgpfSkseWUoKSxtZSgzLCJsYWJlbCIsMjQpKDQsInNwYW4iLDIyKSxOZSg1KSx5ZSgpKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgyKTtSZSgibmdDbGFzcyIsSjIoMTAsRUos'@; put 'IWEuY2xyRGdTZWxlY3RhYmxlKSksQ2UoMiksUmUoImlkIixhLnJhZGlvSWQpKCJuYW1lIixhLnNlbGVjdGlvbi5pZCsiLXJhZGlvIikoInZhbHVlIixhLml0ZW0pKCJuZ01vZGVsIixhLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlKSgiY2hlY2tlZCIsYS5zZWxlY3Rpb24uY3VycmVudFNpbmds'@; put 'ZT09PWEuaXRlbSkoImRpc2FibGVkIiwhYS5jbHJEZ1NlbGVjdGFibGV8fG51bGwpLFRyKCJhcmlhLWRpc2FibGVkIiwhYS5jbHJEZ1NlbGVjdGFibGV8fG51bGwpLENlKDEpLFJlKCJmb3IiLGEucmFkaW9JZCksQ2UoMiksb3IoYS5jbHJEZ1Jvd0FyaWFMYWJlbHx8YS5jb21tb25TdHJpbmdz'@; put 'LmtleXMuc2VsZWN0KX19ZnVuY3Rpb24gU3ZlKGMsbCl7MSZjJiYobWUoMCwiZGl2IiwyNSksa3IoMSwyKSx5ZSgpKX1mdW5jdGlvbiBNdmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJidXR0b24iLDI5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZl'@; put 'KDQpLnRvZ2dsZUV4cGFuZCgpKX0pLHF0KDEsImNkcy1pY29uIiwzMCkseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoNCk7VHIoImFyaWEtZXhwYW5kZWQiLGEuZXhwYW5kLmV4cGFuZGVkKSgiYXJpYS1sYWJlbCIsYS5leHBhbmQuZXhwYW5kZWQ/YS5jbHJEZ0RldGFpbENsb3NlTGFiZWw6YS5j'@; put 'bHJEZ0RldGFpbE9wZW5MYWJlbCkoImFyaWEtY29udHJvbHMiLGEuZXhwYW5kYWJsZUlkKSxDZSgxKSxUcigiZGlyZWN0aW9uIixhLmV4cGFuZC5leHBhbmRlZD8iZG93biI6InJpZ2h0IikoInRpdGxlIixhLmV4cGFuZC5leHBhbmRlZD9hLmNvbW1vblN0cmluZ3Mua2V5cy5jb2xsYXBzZTph'@; put 'LmNvbW1vblN0cmluZ3Mua2V5cy5leHBhbmQpfX1mdW5jdGlvbiB4dmUoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItc3Bpbm5lciIsMzEpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSg0KTtDZSgxKSxvcihhLmNvbW1vblN0cmluZ3Mua2V5cy5sb2FkaW5nKX19ZnVuY3Rpb24gRXZlKGMs'@; put 'bCl7aWYoMSZjJiYoVnIoMCksSmUoMSxNdmUsMiw1LCJidXR0b24iLDI3KSxKZSgyLHh2ZSwyLDEsImNsci1zcGlubmVyIiwyOCksenIoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLFJlKCJuZ0lmIiwhYS5leHBhbmQubG9hZGluZyksQ2UoMSksUmUoIm5nSWYiLGEuZXhwYW5kLmxvYWRp'@; put 'bmcpfX1mdW5jdGlvbiBrdmUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDI2KSxKZSgxLEV2ZSwzLDIsIm5nLWNvbnRhaW5lciIsMikseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLFJlKCJuZ0lmIixhLmV4cGFuZC5leHBhbmRhYmxlKX19ZnVuY3Rpb24gQXZlKGMsbCl7aWYoMSZj'@; put 'KXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwzMikoMSwiYnV0dG9uIiwzMywzNCkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9JGkoMiksZj1WZSgyKTtyZXR1cm4ganQoZi5kZXRhaWxTZXJ2aWNlLnRvZ2dsZShmLml0ZW0saCkpfSkscXQoMywiY2RzLWljb24iLDM1KSx5'@; put 'ZSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLGRyKCJpcy1vcGVuIixhLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGEuaXRlbSkpLFRyKCJhcmlhLWxhYmVsIixhLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGEuaXRlbSk/YS5jbHJEZ0RldGFpbENsb3NlTGFiZWw6YS5jbHJEZ0Rl'@; put 'dGFpbE9wZW5MYWJlbCkoImFyaWEtZXhwYW5kZWQiLGEuZGV0YWlsU2VydmljZS5pc09wZW4pKCJhcmlhLWNvbnRyb2xzIixhLmRldGFpbFNlcnZpY2UuaWQpLENlKDIpLFRyKCJkaXJlY3Rpb24iLGEuZGV0YWlsU2VydmljZS5pc1Jvd09wZW4oYS5pdGVtKT8ibGVmdCI6InJpZ2h0IikoInRp'@; put 'dGxlIixhLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGEuaXRlbSk/YS5jb21tb25TdHJpbmdzLmtleXMuY2xvc2U6YS5jb21tb25TdHJpbmdzLmtleXMub3Blbil9fWZ1bmN0aW9uIFR2ZShjLGwpe31mdW5jdGlvbiBEdmUoYyxsKXsxJmMmJkplKDAsVHZlLDAsMCwibmctdGVtcGxhdGUiLDgp'@; put 'LDImYyYmKFZlKDIpLFJlKCJuZ1RlbXBsYXRlT3V0bGV0IiwkaSg0KSkpfWZ1bmN0aW9uIEl2ZShjLGwpe31mdW5jdGlvbiBMdmUoYyxsKXsxJmMmJkplKDAsSXZlLDAsMCwibmctdGVtcGxhdGUiLDgpLDImYyYmKFZlKDIpLFJlKCJuZ1RlbXBsYXRlT3V0bGV0IiwkaSg0KSkpfWNvbnN0IFJ2'@; put 'ZT1mdW5jdGlvbihjKXtyZXR1cm57ImlzLXJlcGxhY2VkIjpjfX07ZnVuY3Rpb24gT3ZlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw5KSgxLCJkaXYiLDEwKSxWcigyLG51bGwsMTEpLEplKDQsd3ZlLDYsOSwiZGl2IiwxMiksSmUoNSxDdmUsNiwxMiwiZGl2IiwxMiksSmUoNixTdmUsMiww'@; put 'LCJkaXYiLDEzKSxKZSg3LGt2ZSwyLDEsImRpdiIsMTQpLEplKDgsQXZlLDQsNywiZGl2IiwxNSksenIoKSx5ZSgpLG1lKDksImRpdiIsMTYpKDEwLCJkaXYiLDE3KSxrcigxMSwxKSxqYSgxMixudWxsLDE4KSx5ZSgpLEplKDE0LER2ZSwxLDEsbnVsbCwyKSxKZSgxNSxMdmUsMSwxLG51bGws'@; put 'MikseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtkcigiZGF0YWdyaWQtcm93LWRldGFpbC1vcGVuIixhLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGEuaXRlbSkpLFJlKCJpZCIsYS5pZCksQ2UoNCksUmUoIm5nSWYiLGEuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1hLlNFTEVDVElPTl9U'@; put 'WVBFLk11bHRpKSxDZSgxKSxSZSgibmdJZiIsYS5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PWEuU0VMRUNUSU9OX1RZUEUuU2luZ2xlKSxDZSgxKSxSZSgibmdJZiIsYS5yb3dBY3Rpb25TZXJ2aWNlLmhhc0FjdGlvbmFibGVSb3cpLENlKDEpLFJlKCJuZ0lmIixhLmdsb2JhbEV4cGFuZGFi'@; put 'bGUuaGFzRXhwYW5kYWJsZVJvdyksQ2UoMSksUmUoIm5nSWYiLGEuZGV0YWlsU2VydmljZS5lbmFibGVkKSxDZSgxKSxSZSgibmdDbGFzcyIsSjIoMTEsUnZlLGEucmVwbGFjZWQmJmEuZXhwYW5kZWQpKSxDZSg1KSxSZSgibmdJZiIsYS5yZXBsYWNlZCYmIWEuZXhwYW5kLmxvYWRpbmcpLENl'@; put 'KDEpLFJlKCJuZ0lmIiwhYS5yZXBsYWNlZCYmIWEuZXhwYW5kLmxvYWRpbmcpfX1jb25zdCBQdmU9W1tbImNsci1kZy1yb3ctZGV0YWlsIl1dLFtbImNsci1kZy1jZWxsIl1dLFtbImNsci1kZy1hY3Rpb24tb3ZlcmZsb3ciXV1dLEZ2ZT1bImNsci1kZy1yb3ctZGV0YWlsIiwiY2xyLWRnLWNl'@; put 'bGwiLCJjbHItZGctYWN0aW9uLW92ZXJmbG93Il0sSHZlPVsiZGF0YWdyaWRUYWJsZSJdLE52ZT1bInNjcm9sbGFibGVDb2x1bW5zIl0sVnZlPVsicHJvamVjdGVkRGlzcGxheUNvbHVtbnMiXSxCdmU9WyJwcm9qZWN0ZWRDYWxjdWxhdGlvbkNvbHVtbnMiXSxqdmU9WyJkaXNwbGF5ZWRSb3dz'@; put 'Il0senZlPVsiY2FsY3VsYXRpb25Sb3dzIl07ZnVuY3Rpb24gVXZlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwyNCkseHQoImtleWRvd24uc3BhY2UiLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoKTtyZXR1cm4gZi5hbGxTZWxlY3RlZD0hZi5hbGxTZWxlY3Rl'@; put 'ZCxqdChoLnByZXZlbnREZWZhdWx0KCkpfSksbWUoMSwiZGl2IiwyNSkoMiwiaW5wdXQiLDI2KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuYWxsU2VsZWN0ZWQ9aCl9KSx5ZSgpLG1lKDMsImxhYmVsIiwyNykoNCwic3BhbiIsMjgpLE5lKDUp'@; put 'LHllKCkoKSgpLHF0KDYsImRpdiIsMjkpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMiksUmUoImlkIixhLnNlbGVjdEFsbElkKSgibmdNb2RlbCIsYS5hbGxTZWxlY3RlZCksVHIoImFyaWEtbGFiZWwiLGEuY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdEFsbCksQ2UoMSksUmUoImZv'@; put 'ciIsYS5zZWxlY3RBbGxJZCksQ2UoMiksb3IoYS5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0QWxsKX19ZnVuY3Rpb24gWnZlKGMsbCl7MSZjJiYobWUoMCwiZGl2IiwzMCkscXQoMSwiZGl2IiwyOSkseWUoKSksMiZjJiZUcigiYXJpYS1sYWJlbCIsVmUoKS5jbHJEZ1NpbmdsZVNlbGVjdGlv'@; put 'bkFyaWFMYWJlbCl9ZnVuY3Rpb24gWXZlKGMsbCl7MSZjJiYobWUoMCwiZGl2IiwzMSkscXQoMSwiZGl2IiwyOSkseWUoKSksMiZjJiZUcigiYXJpYS1sYWJlbCIsVmUoKS5jbHJEZ1NpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwpfWZ1bmN0aW9uIFd2ZShjLGwpezEmYyYmKG1lKDAsImRpdiIs'@; put 'MzIpLHF0KDEsImRpdiIsMjkpLHllKCkpLDImYyYmVHIoImFyaWEtbGFiZWwiLFZlKCkuY2xyRGV0YWlsRXhwYW5kYWJsZUFyaWFMYWJlbCl9ZnVuY3Rpb24gR3ZlKGMsbCl7MSZjJiZxdCgwLCJjbHItZGctcGxhY2Vob2xkZXIiKX1mdW5jdGlvbiAkdmUoYyxsKXsxJmMmJihtZSgwLCJkaXYi'@; put 'LDMzKSgxLCJjbHItc3Bpbm5lciIsMzQpLE5lKDIsIkxvYWRpbmciKSx5ZSgpKCkpfWNvbnN0IHF2ZT1bW1siY2xyLWRnLWFjdGlvbi1iYXIiXV0sW1siY2xyLWRnLXBsYWNlaG9sZGVyIl1dLFtbImNsci1kZy1mb290ZXIiXV0sW1siIiwiY2xySWZEZXRhaWwiLCIiXSxbImNsci1kZy1kZXRh'@; put 'aWwiXV1dLEt2ZT1bImNsci1kZy1hY3Rpb24tYmFyIiwiY2xyLWRnLXBsYWNlaG9sZGVyIiwiY2xyLWRnLWZvb3RlciIsIltjbHJJZkRldGFpbF0sY2xyLWRnLWRldGFpbCJdLEp2ZT1bImFsbFNlbGVjdGVkIl07ZnVuY3Rpb24gUXZlKGMsbCl7aWYoMSZjJiYoVnIoMCksbWUoMSwiaDIiKSxO'@; put 'ZSgyKSx5ZSgpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgyKSxvcihhLmNvbW1vblN0cmluZ3Mua2V5cy5zaG93Q29sdW1ucyl9fWZ1bmN0aW9uIGVfZShjLGwpe31mdW5jdGlvbiB0X2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJsaSIpKDEsImNsci1jaGVja2JveC13'@; put 'cmFwcGVyIikoMiwiaW5wdXQiLDE0KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7Y29uc3QgXz1CdChhKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKDIpLnRvZ2dsZUNvbHVtblN0YXRlKF8sIWgpKX0pLHllKCksbWUoMywibGFiZWwiKSxKZSg0LGVfZSwwLDAsIm5nLXRlbXBsYXRl'@; put 'IiwxNSkseWUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoMik7Q2UoMiksUmUoImRpc2FibGVkIixkLmhhc09ubHlPbmVWaXNpYmxlQ29sdW1uJiYhYS5oaWRkZW4pKCJuZ01vZGVsIiwhYS5oaWRkZW4pLENlKDIpLFJlKCJuZ1RlbXBsYXRlT3V0bGV0IixhLnRpdGxl'@; put 'VGVtcGxhdGVSZWYpfX1mdW5jdGlvbiBuX2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iLDE2KSx4dCgiY2xyQWxsU2VsZWN0ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmFsbENvbHVtbnNTZWxlY3RlZCgp'@; put 'KX0pLE5lKDEpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLGdyKCIgIixhLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RBbGwsIiAiKX19ZnVuY3Rpb24gcl9lKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwyKSgxLCJkaXYiLDMpKDIsImRpdiIsNCw1KSxOZSg0KSx5ZSgpLEpl'@; put 'KDUsUXZlLDMsMSwibmctY29udGFpbmVyIiw2KSxrcig2KSxtZSg3LCJidXR0b24iLDcpLHF0KDgsImNkcy1pY29uIiw4KSxtZSg5LCJzcGFuIiw5KSxOZSgxMCkseWUoKSgpKCksbWUoMTEsInVsIiwxMCksSmUoMTIsdF9lLDUsMywibGkiLDExKSx5ZSgpLG1lKDEzLCJkaXYiLDEyKSxrcigx'@; put 'NCwxKSxKZSgxNSxuX2UsMiwxLCJjbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iLDEzKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO1JlKCJpZCIsYS5wb3BvdmVySWQpLFRyKCJhcmlhLWxhYmVsIixhLmNvbW1vblN0cmluZ3Mua2V5cy5zaG93Q29sdW1uc01lbnVEZXNjcmlwdGlvbiks'@; put 'Q2UoNCksb3IoYS5jb21tb25TdHJpbmdzLmtleXMuYWxsQ29sdW1uc1NlbGVjdGVkKSxDZSgxKSxSZSgibmdJZiIsIWEuY3VzdG9tVG9nZ2xlVGl0bGUpLENlKDIpLFRyKCJhcmlhLWxhYmVsIixhLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSksQ2UoMSksVHIoInRpdGxlIixhLmNvbW1vblN0'@; put 'cmluZ3Mua2V5cy5jbG9zZSksQ2UoMiksb3IoYS5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpLENlKDIpLFJlKCJuZ0Zvck9mIixhLmhpZGVhYmxlQ29sdW1uU3RhdGVzKSgibmdGb3JUcmFja0J5IixhLnRyYWNrQnlGbiksQ2UoMyksUmUoIm5nSWYiLCFhLmN1c3RvbVRvZ2dsZUJ1dHRvbil9'@; put 'fWNvbnN0IGlfZT1bW1siY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGUiXV0sW1siY2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uIl1dXSxvX2U9WyJjbHItZGctY29sdW1uLXRvZ2dsZS10aXRsZSIsImNsci1kZy1jb2x1bW4tdG9nZ2xlLWJ1dHRvbiJdO2Z1bmN0aW9uIGxfZShjLGwpe2lm'@; put 'KDEmYyYmKFZyKDApLG1lKDEsImRpdiIsMSkoMiwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDIpLHF0KDMsImlucHV0IiwzKSxtZSg0LCJsYWJlbCIpLE5lKDUpLHllKCksbWUoNiwic3BhbiIsNCksTmUoNykseWUoKSgpKCksenIoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoNSksb3IoYS5zZWxl'@; put 'Y3Rpb24uY3VycmVudC5sZW5ndGgpLENlKDIpLG9yKGEuY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdGVkUm93cyl9fWZ1bmN0aW9uIGNfZShjLGwpezEmYyYmcXQoMCwiY2xyLWRnLWNvbHVtbi10b2dnbGUiKX1mdW5jdGlvbiB1X2UoYyxsKXtpZigxJmMmJihWcigwKSxrcigxLDEpLEplKDIs'@; put 'Y19lLDEsMCwiY2xyLWRnLWNvbHVtbi10b2dnbGUiLDApLG1lKDMsImRpdiIsNSksa3IoNCwyKSx5ZSgpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDIpLFJlKCJuZ0lmIixhLmhhc0hpZGVhYmxlQ29sdW1ucyYmIWEudG9nZ2xlKX19Y29uc3QgZF9lPVtbWyJjbHItZGctcGFnaW5hdGlv'@; put 'biJdXSxbWyJjbHItZGctY29sdW1uLXRvZ2dsZSJdXSwiKiJdLGhfZT1bImNsci1kZy1wYWdpbmF0aW9uIiwiY2xyLWRnLWNvbHVtbi10b2dnbGUiLCIqIl07ZnVuY3Rpb24gZl9lKGMsbCl7aWYoMSZjJiYobWUoMCwib3B0aW9uIiwzKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1w'@; put 'bGljaXQ7UmUoIm5nVmFsdWUiLGEpLENlKDEpLG9yKGEpfX1jb25zdCBwX2U9WyJjdXJyZW50UGFnZUlucHV0Il07ZnVuY3Rpb24gZ19lKGMsbCl7MSZjJiYobWUoMCwiZGl2Iiw0KSxrcigxLDEpLHllKCkpfWZ1bmN0aW9uIG1fZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImlu'@; put 'cHV0IiwxNywxOCkseHQoImtleWRvd24uZW50ZXIiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgzKS51cGRhdGVDdXJyZW50UGFnZShoKSl9KSgiYmx1ciIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLnVwZGF0ZUN1cnJlbnRQYWdlKGgpKX0pLHllKCl9aWYoMiZj'@; put 'KXtjb25zdCBhPVZlKDMpO1JlKCJzaXplIixhLnBhZ2UubGFzdC50b1N0cmluZygpLmxlbmd0aCkoInZhbHVlIixhLnBhZ2UuY3VycmVudCksVHIoImFyaWEtbGFiZWwiLGEuY29tbW9uU3RyaW5ncy5rZXlzLmN1cnJlbnRQYWdlKX19ZnVuY3Rpb24gdl9lKGMsbCl7aWYoMSZjJiYobWUoMCwi'@; put 'c3BhbiIpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgxKSxvcihhLnBhZ2UuY3VycmVudCl9fWZ1bmN0aW9uIF9fZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsNSkoMSwiYnV0dG9uIiw2KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEp'@; put 'LGp0KFZlKDIpLnBhZ2UuY3VycmVudD0xKX0pLG1lKDIsInNwYW4iLDcpLE5lKDMpLHllKCkscXQoNCwiY2RzLWljb24iLDgpLHllKCksbWUoNSwiYnV0dG9uIiw5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4ganQoaC5wYWdlLmN1cnJlbnQ9aC5w'@; put 'YWdlLmN1cnJlbnQtMSl9KSxtZSg2LCJzcGFuIiw3KSxOZSg3KSx5ZSgpLHF0KDgsImNkcy1pY29uIiwxMCkseWUoKSxKZSg5LG1fZSwyLDMsImlucHV0IiwxMSksSmUoMTAsdl9lLDIsMSwibmctdGVtcGxhdGUiLG51bGwsMTIsa2MpLE5lKDEyLCIgXHhhMC9ceGEwIiksbWUoMTMsInNwYW4i'@; put 'KSxOZSgxNCkseWUoKSxtZSgxNSwiYnV0dG9uIiwxMykseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMik7cmV0dXJuIGp0KGgucGFnZS5jdXJyZW50PWgucGFnZS5jdXJyZW50KzEpfSksbWUoMTYsInNwYW4iLDcpLE5lKDE3KSx5ZSgpLHF0KDE4LCJjZHMtaWNvbiIs'@; put 'MTQpLHllKCksbWUoMTksImJ1dHRvbiIsMTUpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpO3JldHVybiBqdChoLnBhZ2UuY3VycmVudD1oLnBhZ2UubGFzdCl9KSxtZSgyMCwic3BhbiIsNyksTmUoMjEpLHllKCkscXQoMjIsImNkcy1pY29uIiwxNikseWUoKSgp'@; put 'fWlmKDImYyl7Y29uc3QgYT0kaSgxMSksZD1WZSgyKTtDZSgxKSxSZSgiZGlzYWJsZWQiLGQucGFnZS5jdXJyZW50PD0xKSxUcigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZmlyc3RQYWdlKSxDZSgyKSxvcihkLmNvbW1vblN0cmluZ3Mua2V5cy5maXJzdFBhZ2UpLENlKDIp'@; put 'LFJlKCJkaXNhYmxlZCIsZC5wYWdlLmN1cnJlbnQ8PTEpLFRyKCJhcmlhLWxhYmVsIixkLmNvbW1vblN0cmluZ3Mua2V5cy5wcmV2aW91c1BhZ2UpLENlKDIpLG9yKGQuY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksQ2UoMiksUmUoIm5nSWYiLCFkLmRpc2FibGVDdXJyZW50UGFn'@; put 'ZUlucHV0KSgibmdJZkVsc2UiLGEpLENlKDQpLFRyKCJhcmlhLWxhYmVsIixkLmNvbW1vblN0cmluZ3Mua2V5cy50b3RhbFBhZ2VzKSxDZSgxKSxvcihkLnBhZ2UubGFzdCksQ2UoMSksUmUoImRpc2FibGVkIixkLnBhZ2UuY3VycmVudD49ZC5wYWdlLmxhc3QpLFRyKCJhcmlhLWxhYmVsIixk'@; put 'LmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSksQ2UoMiksb3IoZC5jb21tb25TdHJpbmdzLmtleXMubmV4dFBhZ2UpLENlKDIpLFJlKCJkaXNhYmxlZCIsZC5wYWdlLmN1cnJlbnQ+PWQucGFnZS5sYXN0KSxUcigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMubGFzdFBhZ2Up'@; put 'LENlKDIpLG9yKGQuY29tbW9uU3RyaW5ncy5rZXlzLmxhc3RQYWdlKX19ZnVuY3Rpb24gYl9lKGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSxnX2UsMiwwLCJkaXYiLDEpLG1lKDIsImRpdiIsMiksa3IoMykseWUoKSxKZSg0LF9fZSwyMywxNiwiZGl2IiwzKSx6cigpKSwyJmMpe2NvbnN0IGE9'@; put 'VmUoKTtDZSgxKSxSZSgibmdJZiIsYS5fcGFnZVNpemVDb21wb25lbnQpLENlKDMpLFJlKCJuZ0lmIixhLnBhZ2UubGFzdD4xKX19ZnVuY3Rpb24geV9lKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7VnIoMCksbWUoMSwiZGl2IiwxOSksTmUoMikseWUoKSxtZSgzLCJkaXYiLDUpKDQsImJ1'@; put 'dHRvbiIsOSkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKTtyZXR1cm4ganQoaC5wYWdlLmN1cnJlbnQ9aC5wYWdlLmN1cnJlbnQtMSl9KSxtZSg1LCJzcGFuIiw3KSxOZSg2KSx5ZSgpLHF0KDcsImNkcy1pY29uIiwxMCkseWUoKSxtZSg4LCJzcGFuIiksTmUoOSks'@; put 'eWUoKSxtZSgxMCwiYnV0dG9uIiwxMykseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKTtyZXR1cm4ganQoaC5wYWdlLmN1cnJlbnQ9aC5wYWdlLmN1cnJlbnQrMSl9KSxtZSgxMSwic3BhbiIsNyksTmUoMTIpLHllKCkscXQoMTMsImNkcy1pY29uIiwxNCkseWUoKSgp'@; put 'LHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMiksYjAoIiAiLGEucGFnZS5maXJzdEl0ZW0rMSwiLSIsYS5wYWdlLmxhc3RJdGVtKzEsIiAvICIsYS5wYWdlLnRvdGFsSXRlbXMsIiAiKSxDZSgyKSxSZSgiZGlzYWJsZWQiLGEucGFnZS5jdXJyZW50PD0xKSxUcigiYXJpYS1sYWJlbCIs'@; put 'YS5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXNQYWdlKSxDZSgyKSxvcihhLmNvbW1vblN0cmluZ3Mua2V5cy5wcmV2aW91c1BhZ2UpLENlKDMpLG9yKGEucGFnZS5jdXJyZW50KSxDZSgxKSxSZSgiZGlzYWJsZWQiLGEucGFnZS5jdXJyZW50Pj1hLnBhZ2UubGFzdCksVHIoImFyaWEtbGFi'@; put 'ZWwiLGEuY29tbW9uU3RyaW5ncy5rZXlzLm5leHRQYWdlKSxDZSgyKSxvcihhLmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSl9fWNvbnN0IHdfZT1bIioiLFtbImNsci1kZy1wYWdlLXNpemUiXV1dLENfZT1bIioiLCJjbHItZGctcGFnZS1zaXplIl07ZnVuY3Rpb24gU19lKGMsbCl7MSZj'@; put 'JiZxdCgwLCJjZHMtaWNvbiIsNyksMiZjJiZUcigiZGlyZWN0aW9uIixWZSgpLmNhcmV0RGlyZWN0aW9uKX1mdW5jdGlvbiBNX2UoYyxsKXtpZigxJmMmJihtZSgwLCJzcGFuIiw4KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxvcihhLmNvbW1vblN0cmluZ3Mua2V5cy5z'@; put 'dGFja1ZpZXdDaGFuZ2VkKX19ZnVuY3Rpb24geF9lKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw5KSxrcigxLDIpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO0h1KCJoZWlnaHQiLGEuZXhwYW5kZWQ/ImF1dG8iOjApLFRyKCJpZCIsYS5nZXRTdGFja0NoaWxkcmVuSWQoKSkoImFyaWEtbGFi'@; put 'ZWxsZWRieSIsYS5sYWJlbGxlZEJ5SWQpfX1jb25zdCBFX2U9W1tbImNsci1zdGFjay1sYWJlbCJdXSwiKiIsW1siY2xyLXN0YWNrLWJsb2NrIl1dXSxrX2U9WyJjbHItc3RhY2stbGFiZWwiLCIqIiwiY2xyLXN0YWNrLWJsb2NrIl0sQV9lPVtbWyJjbHItc3RhY2staGVhZGVyIl1dLCIqIl0s'@; put 'VF9lPVsiY2xyLXN0YWNrLWhlYWRlciIsIioiXTtmdW5jdGlvbiBIX2UoYyxsKXsxJmMmJmphKDApfWZ1bmN0aW9uIE5fZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsSF9lLDEsMCwibmctY29udGFpbmVyIiwyKSx6cigpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSgyKTtDZSgx'@; put 'KSxSZSgibmdUZW1wbGF0ZU91dGxldCIsZC5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uLnRlbXBsYXRlKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLGQuZ2V0Q29udGV4dChhKSl9fWZ1bmN0aW9uIFZfZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsTl9lLDIsMiwibmctY29udGFpbmVy'@; put 'IiwxKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdGb3JPZiIsKG51bGw9PWEucGFyZW50P251bGw6YS5wYXJlbnQuY2hpbGRyZW4pfHxhLmNoaWxkcmVuKX19Y29uc3QgQl9lPVsiY29udGVudENvbnRhaW5lciJdO2Z1bmN0aW9uIGpfZShjLGwpe2lmKDEmYyl7Y29uc3Qg'@; put 'YT1WbigpO21lKDAsImJ1dHRvbiIsOSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLmV4cGFuZFNlcnZpY2UudG9nZ2xlKCkpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLmZvY3VzVHJlZU5vZGUoKSl9KSxxdCgxLCJjZHMtaWNv'@; put 'biIsMTApLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksVHIoImRpcmVjdGlvbiIsYS5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPyJkb3duIjoicmlnaHQiKX19ZnVuY3Rpb24gel9lKGMsbCl7MSZjJiYobWUoMCwiZGl2IiwxMSkscXQoMSwic3BhbiIsMTIpLHllKCkpfWZ1bmN0aW9u'@; put 'IFVfZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsMTMpKDEsImlucHV0IiwxNCkseHQoImNoYW5nZSIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKCk7cmV0dXJuIGp0KGguX21vZGVsLnRvZ2dsZVNlbGVjdGlvbihoLmZlYXR1cmVzU2VydmljZS5lYWdlcikpfSko'@; put 'ImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLmZvY3VzVHJlZU5vZGUoKSl9KSx5ZSgpLHF0KDIsImxhYmVsIiwxNSkseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxYMigiaWQiLCIiLGEubm9kZUlkLCItY2hlY2siKSxSZSgiY2hlY2tlZCIsYS5fbW9kZWwu'@; put 'c2VsZWN0ZWQudmFsdWU9PT1hLlNUQVRFUy5TRUxFQ1RFRCkoImluZGV0ZXJtaW5hdGUiLGEuX21vZGVsLnNlbGVjdGVkLnZhbHVlPT09YS5TVEFURVMuSU5ERVRFUk1JTkFURSksQ2UoMSksWDIoImZvciIsIiIsYS5ub2RlSWQsIi1jaGVjayIpfX1mdW5jdGlvbiBaX2UoYyxsKXsxJmMmJiht'@; put 'ZSgwLCJzcGFuIiksTmUoMSwiIHNlbGVjdGVkIikseWUoKSl9ZnVuY3Rpb24gWV9lKGMsbCl7MSZjJiYobWUoMCwic3BhbiIpLE5lKDEsIiB1bnNlbGVjdGVkIikseWUoKSl9ZnVuY3Rpb24gV19lKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwxNiksSmUoMSxaX2UsMiwwLCJzcGFuIiwxNyks'@; put 'SmUoMixZX2UsMiwwLCJzcGFuIiwxNykseWUoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksUmUoIm5nSWYiLGEuYXJpYVNlbGVjdGVkKSxDZSgxKSxSZSgibmdJZiIsIWEuYXJpYVNlbGVjdGVkKX19Y29uc3QgR19lPVsiKiIsW1siY2xyLXRyZWUtbm9kZSJdXSxbWyIiLCJjbHJJZkV4cGFu'@; put 'ZGVkIiwiIl1dXSwkX2U9WyIqIiwiY2xyLXRyZWUtbm9kZSIsIltjbHJJZkV4cGFuZGVkXSJdO2Z1bmN0aW9uIHFfZShjLGwpezEmYyYmcXQoMCwiY2xyLXJlY3Vyc2l2ZS1jaGlsZHJlbiIsMSksMiZjJiZSZSgiY2hpbGRyZW4iLFZlKCkuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbi5yb290'@; put 'KX1mdW5jdGlvbiBLX2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJidXR0b24iLDQpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMikuY2xvc2UoKSl9KSxxdCgxLCJjZHMtaWNvbiIsNSkseWUoKX0yJmMmJlRyKCJhcmlhLWxhYmVsIixWZSgyKS5j'@; put 'bHJDbG9zZUJ1dHRvbkFyaWFMYWJlbCl9ZnVuY3Rpb24gWF9lKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwxKSgxLCJkaXYiLDIpLGtyKDIpLHllKCksSmUoMyxLX2UsMiwxLCJidXR0b24iLDMpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO2RyKCJhbGVydC1oaWRkZW4iLGEuaGlkZGVuKSgi'@; put 'YWxlcnQtc20iLGEuaXNTbWFsbCkoImFsZXJ0LWFwcC1sZXZlbCIsYS5pc0FwcExldmVsKSxSZSgibmdDbGFzcyIsYS5hbGVydENsYXNzKSxDZSgzKSxSZSgibmdJZiIsYS5jbG9zYWJsZSl9fWZ1bmN0aW9uIEpfZShjLGwpezEmYyYmcXQoMCwiY2xyLWFsZXJ0cy1wYWdlciIsMSksMiZjJiZS'@; put 'ZSgiY2xyQ3VycmVudEFsZXJ0SW5kZXgiLFZlKCkuY3VycmVudEFsZXJ0SW5kZXgpfWNvbnN0IFFfZT1bW1siY2xyLWFsZXJ0Il1dXSxlYmU9WyJjbHItYWxlcnQiXTtmdW5jdGlvbiByYmUoYyxsKXsxJmMmJmtyKDApfWNvbnN0IGliZT1bInRhYkNvbnRlbnRQcm9qZWN0ZWRSZWYiXTtmdW5j'@; put 'dGlvbiBvYmUoYyxsKXtpZigxJmMmJihtZSgwLCJzZWN0aW9uIiwxKSxrcigxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtkcigiYWN0aXZlIixhLmFjdGl2ZSksUmUoImlkIixhLnRhYkNvbnRlbnRJZCkoImhpZGRlbiIsIWEuYWN0aXZlKSxUcigiYXJpYS1sYWJlbGxlZGJ5IixhLmFyaWFM'@; put 'YWJlbGxlZEJ5KSgiYXJpYS1oaWRkZW4iLCFhLmFjdGl2ZSl9fWNvbnN0IHNiZT1bInRhYkNvbnRlbnRWaWV3Q29udGFpbmVyIl07ZnVuY3Rpb24gYWJlKGMsbCl7aWYoMSZjJiYoVnIoMCksbWUoMSwibGkiLDQpLGphKDIsNSkseWUoKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGlj'@; put 'aXQ7Q2UoMiksUmUoIm5nVGVtcGxhdGVPdXRsZXQiLGEudGVtcGxhdGVSZWZDb250YWluZXIudGVtcGxhdGUpfX1mdW5jdGlvbiBsYmUoYyxsKXtpZigxJmMmJihWcigwKSxKZSgxLGFiZSwzLDEsIm5nLWNvbnRhaW5lciIsMiksenIoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUo'@; put 'KTtDZSgxKSxSZSgibmdJZiIsYS50YWJzSWQ9PT1kLnRhYnNJZCYmIWEuaW5PdmVyZmxvdyl9fWZ1bmN0aW9uIGNiZShjLGwpezEmYyYmamEoMCw1KSwyJmMmJlJlKCJuZ1RlbXBsYXRlT3V0bGV0IixWZSgpLiRpbXBsaWNpdC50ZW1wbGF0ZVJlZkNvbnRhaW5lci50ZW1wbGF0ZSl9ZnVuY3Rp'@; put 'b24gdWJlKGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSxjYmUsMSwxLCJuZy1jb250YWluZXIiLDEzKSx6cigpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSgzKTtDZSgxKSxSZSgibmdJZiIsYS50YWJzSWQ9PT1kLnRhYnNJZCYmYS5pbk92ZXJmbG93KX19ZnVuY3Rpb24gZGJlKGMs'@; put 'bCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRhYi1vdmVyZmxvdy1jb250ZW50IiwxMikseHQoImtleWRvd24uZXNjYXBlIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5jbG9zZU9uRXNjYXBlS2V5KCkpfSwwLGZmKSgiY2xpY2siLGZ1bmN0aW9uKGgpe0J0KGEp'@; put 'LFZlKCk7Y29uc3QgZj0kaSg0KTtyZXR1cm4ganQoVmUoKS5jbG9zZU9uT3V0c2lkZUNsaWNrKGgsZikpfSwhMSxmZikoImZvY3Vzb3V0IixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoMikuY2xvc2VPbkZvY3VzT3V0KGgpKX0pLEplKDEsdWJlLDIsMSwibmctY29udGFpbmVyIiwx'@; put 'KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1WZSgyKTtDZSgxKSxSZSgibmdGb3JPZiIsYS50YWJMaW5rRGlyZWN0aXZlcyl9fWZ1bmN0aW9uIGhiZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsImRpdiIsNikoMiwibGkiLDcpKDMsImJ1dHRvbiIsOCw5KSx4dCgibW91c2Vk'@; put 'b3duIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLl9tb3VzZWRvd249ITApfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLm9wZW5PdmVyZmxvd09uRm9jdXMoKSl9KSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkudG9nZ2xl'@; put 'T3ZlcmZsb3dPbkNsaWNrKCkpfSkscXQoNSwiY2RzLWljb24iLDEwKSx5ZSgpKCksSmUoNixkYmUsMiwxLCJjbHItdGFiLW92ZXJmbG93LWNvbnRlbnQiLDExKSx5ZSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksZHIoIm9wZW4iLGEudG9nZ2xlU2VydmljZS5vcGVuKSxDZSgy'@; put 'KSxkcigiYWN0aXZlIixhLmFjdGl2ZVRhYkluT3ZlcmZsb3cpKCJvcGVuIixhLnRvZ2dsZVNlcnZpY2Uub3BlbiksVHIoInRhYmluZGV4IixhLmFjdGl2ZVRhYkluT3ZlcmZsb3cmJiFhLnRvZ2dsZVNlcnZpY2Uub3Blbj8wOi0xKSgidGl0bGUiLGEuY29tbW9uU3RyaW5ncy5rZXlzLm1vcmUp'@; put 'LENlKDIpLFRyKCJ0aXRsZSIsYS5jb21tb25TdHJpbmdzLmtleXMubW9yZSksQ2UoMSksUmUoIm5nSWYiLGEudG9nZ2xlU2VydmljZS5vcGVuKX19ZnVuY3Rpb24gZmJlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiwzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIEJ0KGEpLGp0KFZlKCkudG9nZ2xlQnlCdXR0b24oKSl9KSxxdCgxLCJjZHMtaWNvbiIsNCkseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoKTtkcigib24tY29sbGFwc2UiLGEuY29sbGFwc2VkKSxUcigiYXJpYS1leHBhbmRlZCIsYS5hcmlhRXhwYW5kZWQpKCJhcmlhLWxhYmVsIixhLmNv'@; put 'bW1vblN0cmluZ3Mua2V5cy52ZXJ0aWNhbE5hdlRvZ2dsZSksQ2UoMSksVHIoImRpcmVjdGlvbiIsYS5jb2xsYXBzZWQ/InJpZ2h0IjoibGVmdCIpKCJ0aXRsZSIsYS5jb2xsYXBzZWQ/YS5jb21tb25TdHJpbmdzLmtleXMuZXhwYW5kOmEuY29tbW9uU3RyaW5ncy5rZXlzLmNvbGxhcHNlKX19'@; put 'ZnVuY3Rpb24gcGJlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiw1KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuY29sbGFwc2VkPSExKX0pLHllKCl9MiZjJiZUcigiYXJpYS1sYWJlbCIsVmUoKS5jb21tb25TdHJpbmdzLmtleXMu'@; put 'dmVydGljYWxOYXZUb2dnbGUpfWNvbnN0IHZiZT1bImNsclZlcnRpY2FsTmF2TGluayIsIiJdLF9iZT1bW1siIiwiY2xyVmVydGljYWxOYXZJY29uIiwiIl1dLCIqIl0sYmJlPVsiW2NsclZlcnRpY2FsTmF2SWNvbl0iLCIqIl07ZnVuY3Rpb24geWJlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZu'@; put 'KCk7bWUoMCwiYnV0dG9uIiwxMSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5jbG9zZSgpKX0pLHF0KDEsImNkcy1pY29uIiwxMikseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoMik7VHIoImFyaWEtbGFiZWwiLGEuY2xvc2VCdXR0b25BcmlhTGFiZWx8fGEu'@; put 'Y29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlKX19ZnVuY3Rpb24gd2JlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwxKSgxLCJkaXYiLDIpLHh0KCJAZmFkZURvd24uZG9uZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZmFkZURvbmUoaCkpfSksbWUoMiwi'@; put 'ZGl2IiwzKSxOZSgzKSx5ZSgpLG1lKDQsImRpdiIsNCksa3IoNSksbWUoNiwiZGl2Iiw1KSg3LCJkaXYiLDYpKDgsImRpdiIsNyksa3IoOSwxKSx5ZSgpLEplKDEwLHliZSwyLDEsImJ1dHRvbiIsOCkseWUoKSxtZSgxMSwiZGl2Iiw5KSxrcigxMiwyKSx5ZSgpLGtyKDEzLDMpLHllKCkoKSxt'@; put 'ZSgxNCwiZGl2IiwzKSxOZSgxNSkseWUoKSgpLG1lKDE2LCJkaXYiLDEwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVybiBqdChoLnN0YXRpY0JhY2tkcm9wfHxoLmNsb3NlKCkpfSkseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLGRyKCJt'@; put 'b2RhbC1zbSIsInNtIj09YS5zaXplKSgibW9kYWwtbGciLCJsZyI9PWEuc2l6ZSkoIm1vZGFsLXhsIiwieGwiPT1hLnNpemUpLFJlKCJAZmFkZURvd24iLGEuc2tpcEFuaW1hdGlvbiksVHIoImFyaWEtaGlkZGVuIiwhYS5fb3BlbikoImFyaWEtbGFiZWxsZWRieSIsYS5sYWJlbGxlZEJ5KSxD'@; put 'ZSgyKSxvcihhLmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRTdGFydCksQ2UoNSksRWMoImlkIixhLm1vZGFsSWQpLENlKDIpLFJlKCJuZ0lmIixhLmNsb3NhYmxlKSxDZSg1KSxvcihhLmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRFbmQpLENlKDEpLFJlKCJAZmFkZSIs'@; put 'dm9pZCAwKX19Y29uc3QgQ2JlPVtbWyIiLDgsIm1vZGFsLW5hdiJdXSxbWyIiLDgsIm1vZGFsLXRpdGxlIl1dLFtbIiIsOCwibW9kYWwtYm9keSJdXSxbWyIiLDgsIm1vZGFsLWZvb3RlciJdXV0sU2JlPVsiLm1vZGFsLW5hdiIsIi5tb2RhbC10aXRsZSIsIi5tb2RhbC1ib2R5IiwiLm1vZGFs'@; put 'LWZvb3RlciJdO2xldCBrYT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWljb24iXV19KSxjfSkoKSxxcz0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5c'@; put 'dTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2RzLWljb24iXV19KSxjfSkoKSxzYT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5c'@; put 'dTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9KSgpO2NsYXNzIHZie312YXIgVXU9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5ERUZBVUxUPTBdPSJERUZBVUxUIixjW2MuTE9BRElORz0xXT0iTE9BRElORyIsY1tjLlNVQ0NFU1M9Ml09IlNV'@; put 'Q0NFU1MiLGNbYy5FUlJPUj0zXT0iRVJST1IiLGN9KFV1fHx7fSk7bGV0IFp1PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5saXN0ZW5lcj1hLHRoaXMuX2xvYWRpbmdTdGF0ZT1VdS5ERUZBVUxUfWdldCBsb2FkaW5nU3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9hZGluZ1N0YXRl'@; put 'fXNldCBsb2FkaW5nU3RhdGUoYSl7ITA9PT1hP2E9VXUuTE9BRElORzphfHwoYT1VdS5ERUZBVUxUKSxhIT09dGhpcy5fbG9hZGluZ1N0YXRlJiYodGhpcy5fbG9hZGluZ1N0YXRlPWEsdGhpcy5saXN0ZW5lciYmdGhpcy5saXN0ZW5lci5sb2FkaW5nU3RhdGVDaGFuZ2UoYSkpfW5nT25EZXN0'@; put 'cm95KCl7dGhpcy5sb2FkaW5nU3RhdGU9VXUuREVGQVVMVH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQodmIsOCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJMb2FkaW5nIiwiIl1dLGlucHV0czp7bG9hZGlu'@; put 'Z1N0YXRlOlsiY2xyTG9hZGluZyIsImxvYWRpbmdTdGF0ZSJdfX0pLGN9KSgpLFl1PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmV4cGFuZGFibGU9MCx0aGlzLl9sb2FkaW5nPSExLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX2V4cGFuZENoYW5nZT1uZXcgYmV9Z2V0IGxvYWRp'@; put 'bmcoKXtyZXR1cm4gdGhpcy5fbG9hZGluZ31zZXQgbG9hZGluZyhhKXsoYT0hIWEpIT09dGhpcy5fbG9hZGluZyYmKHRoaXMuX2xvYWRpbmc9YSl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuX2V4cGFuZGVkfXNldCBleHBhbmRlZChhKXsoYT0hIWEpIT09dGhpcy5fZXhwYW5kZWQmJih0'@; put 'aGlzLl9leHBhbmRlZD1hLHRoaXMuX2V4cGFuZENoYW5nZS5uZXh0KGEpKX1nZXQgZXhwYW5kQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2V4cGFuZENoYW5nZS5hc09ic2VydmFibGUoKX10b2dnbGUoKXt0aGlzLmV4cGFuZGVkPSF0aGlzLl9leHBhbmRlZH1sb2FkaW5nU3RhdGVDaGFuZ2UoYSl7'@; put 'dGhpcy5sb2FkaW5nPWE9PT1VdS5MT0FESU5HfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxHYmU9MDtmdW5jdGlvbiBJYygpe3JldHVybiJjbHItaWQt'@; put 'IitHYmUrK31sZXQga0o9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24tZGVzY3JpcHRpb24iXSxbImNsci1zdGVwLWRlc2NyaXB0aW9u'@; put 'Il1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiY2xyLWFjY29yZGlvbi1kZXNjcmlwdGlvbiIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSgpLGtyKDApKX0sZW5j'@; put 'YXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksY30pKCk7dmFyIERmPWZ1bmN0aW9uKGMpe3JldHVybiBjLkluYWN0aXZlPSJpbmFjdGl2ZSIsYy5FcnJvcj0iZXJyb3IiLGMuQ29tcGxldGU9ImNvbXBsZXRlIixjfShEZnx8e30pO2NvbnN0IGEyPSIwLjJzIGVhc2UtaW4tb3V0Iiwk'@; put 'YmU9W2ExKCJza2lwSW5pdGlhbFJlbmRlciIsW2ZjKCI6ZW50ZXIiLFtdKV0pLGExKCJ0b2dnbGUiLFtmYygidm9pZCA9PiAqIixbX3Moe2Rpc3BsYXk6ImJsb2NrIixoZWlnaHQ6MH0pLHJ1KGEyLF9zKHtoZWlnaHQ6IioifSkpXSldKV0seEY9KGExKCJza2lwSW5pdGlhbFJlbmRlciIsW2Zj'@; put 'KCI6ZW50ZXIiLFtdKV0pLGExKCJ0b2dnbGUiLFtmYygidm9pZCA9PiAqIixbX3Moe2Rpc3BsYXk6ImJsb2NrIixoZWlnaHQ6MH0pLHJ1KGEyLF9zKHtoZWlnaHQ6IioifSkpXSksZmMoIiogPT4gdm9pZCIsW19zKHtkaXNwbGF5OiJibG9jayJ9KSxydShhMixfcyh7aGVpZ2h0OjAsZGlzcGxh'@; put 'eToibm9uZSJ9KSldKV0pLHtvcGVuOiJPcGVuIixjbG9zZToiQ2xvc2UiLHNob3c6IlNob3ciLGhpZGU6IkhpZGUiLGV4cGFuZDoiRXhwYW5kIixjb2xsYXBzZToiQ29sbGFwc2UiLG1vcmU6Ik1vcmUiLHNlbGVjdDoiU2VsZWN0IixzZWxlY3RBbGw6IlNlbGVjdCBBbGwiLHByZXZpb3VzOiJQ'@; put 'cmV2aW91cyIsbmV4dDoiTmV4dCIsY3VycmVudDoiSnVtcCB0byBjdXJyZW50IixpbmZvOiJJbmZvIixzdWNjZXNzOiJTdWNjZXNzIix3YXJuaW5nOiJXYXJuaW5nIixkYW5nZXI6IkVycm9yIixyb3dBY3Rpb25zOiJBdmFpbGFibGUgYWN0aW9ucyIscGlja0NvbHVtbnM6Ik1hbmFnZSBDb2x1'@; put 'bW5zIixzaG93Q29sdW1uczoiU2hvdyBDb2x1bW5zIixzb3J0Q29sdW1uOiJTb3J0IENvbHVtbiIsZmlyc3RQYWdlOiJGaXJzdCBQYWdlIixsYXN0UGFnZToiTGFzdCBQYWdlIixuZXh0UGFnZToiTmV4dCBQYWdlIixwcmV2aW91c1BhZ2U6IlByZXZpb3VzIFBhZ2UiLGN1cnJlbnRQYWdlOiJD'@; put 'dXJyZW50IFBhZ2UiLHRvdGFsUGFnZXM6IlRvdGFsIFBhZ2VzIixmaWx0ZXJJdGVtczoiRmlsdGVyIGl0ZW1zIixtaW5WYWx1ZToiTWluIHZhbHVlIixtYXhWYWx1ZToiTWF4IHZhbHVlIixtb2RhbENvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIE1vZGFsIENvbnRlbnQiLG1vZGFsQ29udGVu'@; put 'dEVuZDoiRW5kIG9mIE1vZGFsIENvbnRlbnQiLHNob3dDb2x1bW5zTWVudURlc2NyaXB0aW9uOiJTaG93IG9yIGhpZGUgY29sdW1ucyBtZW51IixhbGxDb2x1bW5zU2VsZWN0ZWQ6IkFsbCBjb2x1bW5zIHNlbGVjdGVkIixzaWducG9zdFRvZ2dsZToiU2lnbnBvc3QgVG9nZ2xlIixzaWducG9z'@; put 'dENsb3NlOiJTaWducG9zdCBDbG9zZSIsbG9hZGluZzoiTG9hZGluZyIsZGV0YWlsUGFuZVN0YXJ0OiJTdGFydCBvZiByb3cgZGV0YWlscyIsZGV0YWlsUGFuZUVuZDoiRW5kIG9mIHJvdyBkZXRhaWxzIixzaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw6IlNpbmdsZSBzZWxlY3Rpb24gaGVhZGVy'@; put 'IixzaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsOiJTaW5nbGUgYWN0aW9uYWJsZSBoZWFkZXIiLGRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWw6IlRvZ2dsZSBtb3JlIHJvdyBjb250ZW50IixkYXRhZ3JpZEZpbHRlckFyaWFMYWJlbDoiVG9nZ2xlIHtDT0xVTU59IGZpbHRlciIsZGF0YWdyaWRG'@; put 'aWx0ZXJEaWFsb2dBcmlhTGFiZWw6IkZpbHRlciBkaWFsb2ciLGNvbHVtblNlcGFyYXRvckFyaWFMYWJlbDoiQ29sdW1uIHJlc2l6ZSBoYW5kbGUiLGNvbHVtblNlcGFyYXRvckRlc2NyaXB0aW9uOiJVc2UgbGVmdCBvciByaWdodCBrZXkgdG8gcmVzaXplIHRoZSBjb2x1bW4iLGFsZXJ0Q2xv'@; put 'c2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIGFsZXJ0IixhbGVydE5leHRBbGVydEFyaWFMYWJlbDoiTmV4dCBhbGVydCBtZXNzYWdlLCB7Q1VSUkVOVH0gb2Yge0NPVU5UfSIsYWxlcnRQcmV2aW91c0FsZXJ0QXJpYUxhYmVsOiJQcmV2aW91cyBhbGVydCBtZXNzYWdlLCB7Q1VSUkVOVH0gb2Yg'@; put 'e0NPVU5UfSIsZGF0ZXBpY2tlckRpYWxvZ0xhYmVsOiJDaG9vc2UgZGF0ZSIsZGF0ZXBpY2tlclRvZ2dsZToiVG9nZ2xlIGRhdGVwaWNrZXIiLGRhdGVwaWNrZXJUb2dnbGVDaG9vc2VEYXRlTGFiZWw6IkNob29zZSBkYXRlIixkYXRlcGlja2VyVG9nZ2xlQ2hhbmdlRGF0ZUxhYmVsOiJDaGFu'@; put 'Z2UgZGF0ZSwge1NFTEVDVEVEX0RBVEV9IixkYXRlcGlja2VyUHJldmlvdXNNb250aDoiUHJldmlvdXMgbW9udGgiLGRhdGVwaWNrZXJDdXJyZW50TW9udGg6IkN1cnJlbnQgbW9udGgiLGRhdGVwaWNrZXJOZXh0TW9udGg6Ik5leHQgbW9udGgiLGRhdGVwaWNrZXJQcmV2aW91c0RlY2FkZToi'@; put 'UHJldmlvdXMgZGVjYWRlIixkYXRlcGlja2VyTmV4dERlY2FkZToiTmV4dCBkZWNhZGUiLGRhdGVwaWNrZXJDdXJyZW50RGVjYWRlOiJDdXJyZW50IGRlY2FkZSIsZGF0ZXBpY2tlclNlbGVjdE1vbnRoVGV4dDoiU2VsZWN0IG1vbnRoLCB0aGUgY3VycmVudCBtb250aCBpcyB7Q0FMRU5EQVJf'@; put 'TU9OVEh9IixkYXRlcGlja2VyU2VsZWN0WWVhclRleHQ6IlNlbGVjdCB5ZWFyLCB0aGUgY3VycmVudCB5ZWFyIGlzIHtDQUxFTkRBUl9ZRUFSfSIsZGF0ZXBpY2tlclNlbGVjdGVkTGFiZWw6IntGVUxMX0RBVEV9IC0gU2VsZWN0ZWQiLHN0YWNrVmlld0NoYW5nZWQ6IlZhbHVlIGNoYW5nZWQu'@; put 'IixyZXNwb25zaXZlTmF2VG9nZ2xlT3BlbjoiTmF2aWdhdGlvbiBtZW51IixyZXNwb25zaXZlTmF2VG9nZ2xlQ2xvc2U6Ik5hdmlnYXRpb24gbWVudSIscmVzcG9uc2l2ZU5hdk92ZXJmbG93T3BlbjoiTmF2aWdhdGlvbiBvdmVyZmxvdyBtZW51IixyZXNwb25zaXZlTmF2T3ZlcmZsb3dDbG9z'@; put 'ZToiTmF2aWdhdGlvbiBvdmVyZmxvdyBtZW51Iix2ZXJ0aWNhbE5hdkdyb3VwVG9nZ2xlOiJUb2dnbGUgdmVydGljYWwgbmF2aWdhdGlvbiBncm91cCIsdmVydGljYWxOYXZUb2dnbGU6IlRvZ2dsZSB2ZXJ0aWNhbCBuYXZpZ2F0aW9uIix0aW1lbGluZVN0ZXBOb3RTdGFydGVkOiJOb3Qgc3Rh'@; put 'cnRlZCIsdGltZWxpbmVTdGVwQ3VycmVudDoiQ3VycmVudCIsdGltZWxpbmVTdGVwU3VjY2VzczoiQ29tcGxldGVkIix0aW1lbGluZVN0ZXBFcnJvcjoiRXJyb3IiLHRpbWVsaW5lU3RlcFByb2Nlc3Npbmc6IkluIHByb2dyZXNzIixjb21ib2JveERlbGV0ZToiRGVsZXRlIHNlbGVjdGVkIG9w'@; put 'dGlvbiIsY29tYm9ib3hTZWFyY2hpbmc6J1NlYXJjaGluZyBmb3IgbWF0Y2hlcyBmb3IgIntJTlBVVH0iJyxjb21ib2JveFNlbGVjdGlvbjoiU2VsZWN0aW9uIixjb21ib2JveFNlbGVjdGVkOiJTZWxlY3RlZCIsY29tYm9ib3hOb1Jlc3VsdHM6Ik5vIHJlc3VsdHMiLGNvbWJvYm94T3Blbjoi'@; put 'U2hvdyBvcHRpb25zIixkYXRhZ3JpZEV4cGFuZGFibGVCZWdpbm5pbmdPZjoiQmVnaW5uaW5nIG9mIixkYXRhZ3JpZEV4cGFuZGFibGVFbmRPZjoiRW5kIG9mIixkYXRhZ3JpZEV4cGFuZGFibGVSb3dDb250ZW50OiJFeHBhbmRhYmxlIHJvdyBjb250ZW50IixkYXRhZ3JpZEV4cGFuZGFibGVS'@; put 'b3dzSGVscGVyVGV4dDoiU2NyZWVuIHJlYWRlciB0YWJsZSBjb21tYW5kcyBtYXkgbm90IHdvcmsgZm9yIHZpZXdpbmcgZXhwYW5kZWQgY29udGVudCwgcGxlYXNlIHVzZSB5b3VyIHNjcmVlbiByZWFkZXIncyBicm93c2UgbW9kZSB0byByZWFkIHRoZSBjb250ZW50IGV4cG9zZWQgYnkgdGhp'@; put 'cyBidXR0b24iLHdpemFyZFN0ZXBTdWNjZXNzOiJDb21wbGV0ZWQiLHdpemFyZFN0ZXBFcnJvcjoiRXJyb3IiLHdpemFyZFN0ZXBuYXZBcmlhTGFiZWw6IlN0ZXAgbmF2aWdhdGlvbiIscGFzc3dvcmRIaWRlOiJIaWRlIHBhc3N3b3JkIixwYXNzd29yZFNob3c6IlNob3cgcGFzc3dvcmQiLHNl'@; put 'bGVjdGVkUm93czoiU2VsZWN0ZWQgcm93cyJ9KTtsZXQgRXM9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3N0cmluZ3M9eEZ9Z2V0IGtleXMoKXtyZXR1cm4gdGhpcy5fc3RyaW5nc31sb2NhbGl6ZShhKXt0aGlzLl9zdHJpbmdzPXsuLi50aGlzLl9zdHJpbmdzLC4uLmF9fXBh'@; put 'cnNlKGEsZD17fSl7Y29uc3QgaD1PYmplY3Qua2V5cyhkKTtsZXQgZj1hO3JldHVybiBoLmxlbmd0aCYmaC5mb3JFYWNoKF89PntmPWYucmVwbGFjZShgeyR7X319YCxkW19dKX0pLGZ9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXBy'@; put 'b3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpO3ZhciBfYj1mdW5jdGlvbihjKXtyZXR1cm4gYy5EZWZhdWx0PSJkZWZhdWx0IixjLk11bHRpPSJtdWx0aSIsY30oX2J8fHt9KTtsZXQgS2JlPTA7Y2xhc3MgWGJle2NvbnN0cnVjdG9y'@; put 'KGwsYSl7dGhpcy5pZD1sLHRoaXMuYWNjb3JkaW9uSWQ9YSx0aGlzLnN0YXR1cz1EZi5JbmFjdGl2ZSx0aGlzLmluZGV4PW51bGwsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLm9wZW49ITEsdGhpcy50ZW1wbGF0ZUlkPWAke3RoaXMuaWR9LSR7dGhpcy5hY2NvcmRpb25JZH1gfX1jbGFzcyBBSntj'@; put 'b25zdHJ1Y3Rvcigpe3RoaXMuc3RyYXRlZ3k9X2IuRGVmYXVsdCx0aGlzLmFjY29yZGlvbkNvdW50PUtiZSsrLHRoaXMuX3BhbmVscz17fX1nZXQgcGFuZWxzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX3BhbmVscykubWFwKGw9PnRoaXMuX3BhbmVsc1tsXSl9c2V0U3RyYXRlZ3kobCl7'@; put 'dGhpcy5zdHJhdGVneT1sfXVwZGF0ZVBhbmVsT3JkZXIobCl7bC5mb3JFYWNoKChhLGQpPT50aGlzLl9wYW5lbHNbYV0uaW5kZXg9ZCksdGhpcy5yZW1vdmVPbGRQYW5lbHMobCl9YWRkUGFuZWwobCxhPSExKXt0aGlzLl9wYW5lbHNbbF09bmV3IFhiZShsLHRoaXMuYWNjb3JkaW9uQ291bnQp'@; put 'LHRoaXMuX3BhbmVsc1tsXS5vcGVuPWF9dG9nZ2xlUGFuZWwobCxhKXtjb25zdCBoPXZvaWQgMCE9PWE/YTohdGhpcy5fcGFuZWxzW2xdLm9wZW47aCYmdGhpcy5zdHJhdGVneT09PV9iLkRlZmF1bHQmJnRoaXMuY2xvc2VBbGxQYW5lbHMoKSx0aGlzLl9wYW5lbHNbbF0ub3Blbj1ofWRpc2Fi'@; put 'bGVQYW5lbChsLGEpe3RoaXMuX3BhbmVsc1tsXS5kaXNhYmxlZD1hfWNsb3NlQWxsUGFuZWxzKCl7dGhpcy5wYW5lbHMuZm9yRWFjaChsPT50aGlzLl9wYW5lbHNbbC5pZF0ub3Blbj0hMSl9cmVtb3ZlT2xkUGFuZWxzKGwpe3RoaXMucGFuZWxzLmZpbHRlcihhPT52b2lkIDA9PT1sLmZpbmQo'@; put 'ZD0+ZD09PWEuaWQpKS5mb3JFYWNoKGE9PmRlbGV0ZSB0aGlzLl9wYW5lbHNbYS5pZF0pfX1sZXQgYmI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuYWNjb3JkaW9uPW5ldyBBSix0aGlzLl9wYW5lbHNDaGFuZ2VzPW5ldyBUZSh0aGlzLmFjY29yZGlvbi5wYW5lbHMpfWdldFBh'@; put 'bmVsQ2hhbmdlcyhhKXtyZXR1cm4gdGhpcy5fcGFuZWxzQ2hhbmdlcy5waXBlKE1lKGQ9PmQuZmluZChoPT5oLmlkPT09YSkpKX1zZXRTdHJhdGVneShhKXt0aGlzLmFjY29yZGlvbi5zZXRTdHJhdGVneShhKX1hZGRQYW5lbChhLGQ9ITEpe3RoaXMuYWNjb3JkaW9uLmFkZFBhbmVsKGEsZCks'@; put 'dGhpcy5lbWl0VXBkYXRlZFBhbmVscygpfXRvZ2dsZVBhbmVsKGEsZCl7dGhpcy5hY2NvcmRpb24udG9nZ2xlUGFuZWwoYSxkKSx0aGlzLmVtaXRVcGRhdGVkUGFuZWxzKCl9ZGlzYWJsZVBhbmVsKGEsZCl7dGhpcy5hY2NvcmRpb24uZGlzYWJsZVBhbmVsKGEsZCksdGhpcy5lbWl0VXBkYXRl'@; put 'ZFBhbmVscygpfXVwZGF0ZVBhbmVsT3JkZXIoYSl7dGhpcy5hY2NvcmRpb24udXBkYXRlUGFuZWxPcmRlcihhKSx0aGlzLmVtaXRVcGRhdGVkUGFuZWxzKCl9ZW1pdFVwZGF0ZWRQYW5lbHMoKXt0aGlzLl9wYW5lbHNDaGFuZ2VzLm5leHQodGhpcy5hY2NvcmRpb24ucGFuZWxzKX19cmV0dXJu'@; put 'IGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksX0U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5jb21tb25TdHJpbmdzPWEsdGhpcy5hY2NvcmRp'@; put 'b25TZXJ2aWNlPWQsdGhpcy5pZkV4cGFuZFNlcnZpY2U9aCx0aGlzLmRpc2FibGVkPSExLHRoaXMucGFuZWxPcGVuPSExLHRoaXMucGFuZWxPcGVuQ2hhbmdlPW5ldyBFcix0aGlzLkFjY29yZGlvblN0YXR1cz1EZix0aGlzLmlzQWNjb3JkaW9uPSEwLHRoaXMuX2lkPUljKCl9Z2V0IGlkKCl7'@; put 'cmV0dXJuIHRoaXMuX2lkfXNldCBpZChhKXt0aGlzLl9pZD1hfW5nT25Jbml0KCl7dGhpcy5wYW5lbD10aGlzLmFjY29yZGlvblNlcnZpY2UuZ2V0UGFuZWxDaGFuZ2VzKHRoaXMuaWQpLnBpcGUoVWMoYT0+dGhpcy5lbWl0UGFuZWxDaGFuZ2UoYSkpKSx0aGlzLmFjY29yZGlvblNlcnZpY2Uu'@; put 'YWRkUGFuZWwodGhpcy5pZCx0aGlzLnBhbmVsT3BlbiksdGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQsdGhpcy5wYW5lbE9wZW4pLHRoaXMuYWNjb3JkaW9uU2VydmljZS5kaXNhYmxlUGFuZWwodGhpcy5pZCx0aGlzLmRpc2FibGVkKX1uZ09uQ2hhbmdlcyhhKXt0'@; put 'aGlzLnBhbmVsJiZhLnBhbmVsT3BlbiYmYS5wYW5lbE9wZW4uY3VycmVudFZhbHVlIT09YS5wYW5lbE9wZW4ucHJldmlvdXNWYWx1ZSYmdGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQsYS5wYW5lbE9wZW4uY3VycmVudFZhbHVlKSx0aGlzLnBhbmVsJiZhLmRpc2Fi'@; put 'bGVkJiZhLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSE9PWEuZGlzYWJsZWQucHJldmlvdXNWYWx1ZSYmdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmRpc2FibGVQYW5lbCh0aGlzLmlkLGEuZGlzYWJsZWQuY3VycmVudFZhbHVlKX10b2dnbGVQYW5lbCgpe3RoaXMuYWNjb3JkaW9uU2VydmljZS50b2dn'@; put 'bGVQYW5lbCh0aGlzLmlkKX1jb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKGEpe2Eub3Blbnx8KHRoaXMuaWZFeHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSExKX1nZXRQYW5lbFN0YXRlQ2xhc3NlcyhhKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1wYW5lbC0ke2Euc3RhdHVzfSAke2Eub3Blbj8i'@; put 'Y2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIjoiIn1gfWdldEFjY29yZGlvbkNvbnRlbnRJZChhKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1jb250ZW50LSR7YX0nYH1nZXRBY2NvcmRpb25IZWFkZXJJZChhKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1oZWFkZXItJHthfWB9ZW1pdFBhbmVsQ2hhbmdl'@; put 'KGEpe2Eub3BlbiE9PXRoaXMucGFuZWxPcGVuJiYodGhpcy5wYW5lbE9wZW5DaGFuZ2UuZW1pdChhLm9wZW4pLHRoaXMucGFuZWxPcGVuPWEub3BlbiksYS5vcGVuJiYodGhpcy5pZkV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9ITApfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0'@; put 'dXJuIG5ldyhhfHxjKSh0dChFcyksdHQoYmIpLHR0KFl1KSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24tcGFuZWwiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmSW8oaCxrSiw0KSwyJmEpe2xldCBmO2FpKGY9bGko'@; put 'KSkmJihkLmFjY29yZGlvbkRlc2NyaXB0aW9uPWYpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJjbHItYWNjb3JkaW9uLXBhbmVsIiwhMCl9LGlucHV0czp7ZGlzYWJsZWQ6WyJjbHJBY2NvcmRpb25QYW5lbERpc2FibGVkIiwiZGlzYWJsZWQiXSxw'@; put 'YW5lbE9wZW46WyJjbHJBY2NvcmRpb25QYW5lbE9wZW4iLCJwYW5lbE9wZW4iXX0sb3V0cHV0czp7cGFuZWxPcGVuQ2hhbmdlOiJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UifSxmZWF0dXJlczpbdGkoW1l1XSksdmFdLG5nQ29udGVudFNlbGVjdG9yczp4SixkZWNsczoyLHZhcnM6Myxj'@; put 'b25zdHM6W1s0LCJuZ0lmIl0sWyJhcmlhLWxpdmUiLCJhc3NlcnRpdmUiLCJjbGFzcyIsImNsci1zci1vbmx5Iiw0LCJuZ0lmIl0sWzMsIm5nQ2xhc3MiXSxbMSwiY2xyLWFjY29yZGlvbi1oZWFkZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbiIs'@; put 'MywiaWQiLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJoZWFkZXJCdXR0b24iLCIiXSxbMSwiY2xyLXNyLW9ubHkiXSxbMSwiY2xyLWFjY29yZGlvbi1zdGF0dXMiXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJyaWdodCIsMSwiY2xyLWFjY29yZGlvbi1hbmdsZSJdLFsxLCJjbHItYWNj'@; put 'b3JkaW9uLW51bWJlciJdLFsic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLDEsImNsci1hY2NvcmRpb24tZXJyb3ItaWNvbiJdLFsic3RhdHVzIiwic3VjY2VzcyIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwxLCJjbHItYWNjb3JkaW9uLWNvbXBsZXRlLWlj'@; put 'b24iXSxbInJvbGUiLCJyZWdpb24iLDEsImNsci1hY2NvcmRpb24tY29udGVudC1yZWdpb24iLDMsImlkIl0sWyJjbGFzcyIsImNsci1hY2NvcmRpb24tY29udGVudCIsNCwibmdJZiJdLFsiYXJpYS1saXZlIiwiYXNzZXJ0aXZlIiwxLCJjbHItc3Itb25seSJdLFsxLCJjbHItYWNjb3JkaW9u'@; put 'LWNvbnRlbnQiXSxbMSwiY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoTUopLEplKDAsRzhlLDE5LDE4LCJuZy1jb250YWluZXIiLDApLGJhKDEsImFzeW5jIikpLDImYSYmUmUoIm5nSWYiLFpsKDEsMSxkLnBhbmVsKSl9LGRl'@; put 'cGVuZGVuY2llczpbWmksZGMscXMsdXhdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246JGJlfSxjaGFuZ2VEZXRlY3Rpb246MH0pLGN9KSgpLFRKPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5hY2NvcmRpb25TZXJ2aWNlPWEsdGhpcy5tdWx0aVBhbmVsPSExLHRo'@; put 'aXMuc3Vic2NyaXB0aW9ucz1bXX1uZ09uSW5pdCgpe3RoaXMuc2V0QWNjb3JkaW9uU3RyYXRlZ3koKX1uZ09uQ2hhbmdlcyhhKXthLm11bHRpUGFuZWwuY3VycmVudFZhbHVlIT09YS5tdWx0aVBhbmVsLnByZXZpb3VzVmFsdWUmJnRoaXMuc2V0QWNjb3JkaW9uU3RyYXRlZ3koKX1uZ0FmdGVy'@; put 'Vmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRPTUNoYW5nZXMoKSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfXNldEFjY29yZGlvblN0cmF0ZWd5KCl7dGhpcy5hY2NvcmRpb25TZXJ2'@; put 'aWNlLnNldFN0cmF0ZWd5KHRoaXMubXVsdGlQYW5lbD9fYi5NdWx0aTpfYi5EZWZhdWx0KX1saXN0ZW5Gb3JET01DaGFuZ2VzKCl7cmV0dXJuIHRoaXMucGFuZWxzLmNoYW5nZXMucGlwZShjcCh0aGlzLnBhbmVscykpLnN1YnNjcmliZShhPT50aGlzLmFjY29yZGlvblNlcnZpY2UudXBkYXRl'@; put 'UGFuZWxPcmRlcihhLnRvQXJyYXkoKS5tYXAoZD0+ZC5pZCkpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYmIpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlvbiJdXSxjb250ZW50UXVlcmllczpm'@; put 'dW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLF9FLDUpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQucGFuZWxzPWYpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJjbHItYWNjb3JkaW9uIiwhMCl9LGlucHV0czp7bXVsdGlQYW5lbDpbImNsckFj'@; put 'Y29yZGlvbk11bHRpUGFuZWwiLCJtdWx0aVBhbmVsIl19LGZlYXR1cmVzOlt0aShbYmJdKSx2YV0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rp'@; put 'b246MH0pLGN9KSgpLERKPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uLWNvbnRlbnQiXSxbImNsci1zdGVwLWNvbnRlbnQiXV0sbmdD'@; put 'b250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGN9KSgpLElKPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihh'@; put 'KXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uLXRpdGxlIl0sWyJjbHItc3RlcC10aXRsZSJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImNsci1hY2NvcmRpb24tdGl0bGUi'@; put 'LCEwKX0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGN9KSgpLHk4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmRp'@; put 'c2FibGVDaG9jb2xhdGVDaGVjaz0hMSx0aGlzLl9jaG9jb2xhdGU9bmV3IGJlfWdldCBjaG9jb2xhdGUoKXtyZXR1cm4gdGhpcy5fY2hvY29sYXRlLmFzT2JzZXJ2YWJsZSgpfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe3RoaXMuZGlzYWJsZUNob2NvbGF0ZUNoZWNrfHx0aGlzLl9jaG9jb2xhdGUu'@; put 'bmV4dCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6Y30pLGN9KSgpLHc4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLnN1YnNjcmlwdGlvbj1kLmNob2NvbGF0ZS5zdWJzY3JpYmUoKCk9'@; put 'Pnt0aGlzLmxhdGVzdEZsYXZvciE9PXRoaXMuZmxhdm9yJiYoZC5kaXNhYmxlQ2hvY29sYXRlQ2hlY2s9ITAsYS5kZXRlY3RDaGFuZ2VzKCksZC5kaXNhYmxlQ2hvY29sYXRlQ2hlY2s9ITEpfSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5sYXRlc3RGbGF2b3I9dGhpcy5mbGF2b3J9'@; put 'bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChVYSksdHQoeTgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6Y30pLGN9KSgpLEVGPSgoKT0+e2NsYXNzIGMgZXh0ZW5k'@; put 'cyB5OHt9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD14YShjKSkpKGR8fGMpfX0oKSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uIl1dLGZlYXR1cmVzOltlb119KSxjfSko'@; put 'KSxMSj0oKCk9PntjbGFzcyBjIGV4dGVuZHMgdzh7Y29uc3RydWN0b3IoYSxkLGgpe2lmKCFkKXRocm93IG5ldyBFcnJvcigiY2xyLWFjY29yZGlvbi1wYW5lbCBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBjbHItYWNjb3JkaW9uIik7c3VwZXIoYSxkKSx0aGlzLmV4cGFuZD1ofWdl'@; put 'dCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5leHBhbmQuZXhwYW5kZWR9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KFVhKSx0dChFRiw4KSx0dChZdSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uLXBh'@; put 'bmVsIl1dLGZlYXR1cmVzOltlb119KSxjfSkoKSxSSj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7VnMuYWRkSWNvbnMoaDgsbzEsczEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1'@; put 'aW5qPW1pKHtpbXBvcnRzOltbb28sc2FdXX0pLGN9KSgpLG55ZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb28sc2EsUkpdLFJK'@; put 'XX0pLGN9KSgpO3ZhciB3bz1mdW5jdGlvbihjKXtyZXR1cm4gYy5BcnJvd0xlZnQ9IkFycm93TGVmdCIsYy5BcnJvd1VwPSJBcnJvd1VwIixjLkFycm93UmlnaHQ9IkFycm93UmlnaHQiLGMuQXJyb3dEb3duPSJBcnJvd0Rvd24iLGMuQmFja3NwYWNlPSJCYWNrc3BhY2UiLGMuVGFiPSJUYWIi'@; put 'LGMuRW50ZXI9IkVudGVyIixjLkVzY2FwZT0iRXNjYXBlIixjLlNwYWNlPSJTcGFjZSIsYy5TcGFjZWJhcj0iICIsYy5Ib21lPSJIb21lIixjLkVuZD0iRW5kIixjfSh3b3x8e30pLEc1PWZ1bmN0aW9uKGMpe3JldHVybiBjLkFycm93VXA9IlVwIixjLkFycm93RG93bj0iRG93biIsYy5BcnJv'@; put 'd1JpZ2h0PSJSaWdodCIsYy5BcnJvd0xlZnQ9IkxlZnQiLGMuU3BhY2U9IlNwYWNlYmFyIixjLkVzY2FwZT0iRXNjIixjfShHNXx8e30pO2Z1bmN0aW9uIGwyKGMpe3JldHVybiBjPT09d28uQXJyb3dVcHx8Yz09PUc1LkFycm93VXA/d28uQXJyb3dVcDpjPT09d28uQXJyb3dEb3dufHxjPT09'@; put 'RzUuQXJyb3dEb3duP3dvLkFycm93RG93bjpjPT09d28uQXJyb3dSaWdodHx8Yz09PUc1LkFycm93UmlnaHQ/d28uQXJyb3dSaWdodDpjPT09d28uQXJyb3dMZWZ0fHxjPT09RzUuQXJyb3dMZWZ0P3dvLkFycm93TGVmdDpjPT09d28uU3BhY2V8fGM9PT1HNS5TcGFjZT93by5TcGFjZTpjPT09'@; put 'd28uRXNjYXBlfHxjPT09RzUuRXNjYXBlP3dvLkVzY2FwZTpjfWZ1bmN0aW9uIFRGKGMpe2NvbnN0IGw9bDIoYy5rZXkpOyhsPT09d28uQXJyb3dVcHx8bD09PXdvLkFycm93RG93bnx8bD09PXdvLkFycm93TGVmdHx8bD09PXdvLkFycm93UmlnaHQpJiZjLnByZXZlbnREZWZhdWx0KCl9bGV0'@; put 'IEtzPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9vcGVuPSExLHRoaXMuX29wZW5DaGFuZ2U9bmV3IGJlLHRoaXMuX29wZW5FdmVudENoYW5nZT1uZXcgYmUsdGhpcy5fcG9wb3ZlckFsaWduZWQ9bmV3IGJlfWdldCBvcGVuQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX29wZW5DaGFu'@; put 'Z2UuYXNPYnNlcnZhYmxlKCl9Z2V0IG9wZW5FdmVudCgpe3JldHVybiB0aGlzLl9vcGVuRXZlbnR9c2V0IG9wZW5FdmVudChhKXt0aGlzLl9vcGVuRXZlbnQ9YSx0aGlzLl9vcGVuRXZlbnRDaGFuZ2UubmV4dChhKX1nZXQgb3Blbigpe3JldHVybiB0aGlzLl9vcGVufXNldCBvcGVuKGEpe3Ro'@; put 'aXMuX29wZW4hPT0oYT0hIWEpJiYodGhpcy5fb3Blbj1hLHRoaXMuX29wZW5DaGFuZ2UubmV4dChhKSl9Z2V0IG9yaWdpbmFsRXZlbnQoKXtyZXR1cm4gdGhpcy5fb3BlbkV2ZW50fWdldCBwb3BvdmVyQWxpZ25lZCgpe3JldHVybiB0aGlzLl9wb3BvdmVyQWxpZ25lZC5hc09ic2VydmFibGUo'@; put 'KX1nZXRFdmVudENoYW5nZSgpe3JldHVybiB0aGlzLl9vcGVuRXZlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9dG9nZ2xlV2l0aEV2ZW50KGEpe1RGKGEpLHRoaXMub3BlbkV2ZW50PWEsdGhpcy5vcGVuPSF0aGlzLm9wZW59cG9wb3ZlckFsaWduZWRFbWl0KGEpe3RoaXMuX3BvcG92ZXJBbGln'@; put 'bmVkLm5leHQoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLElmPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMucmVuZGVyZXI9'@; put 'YSx0aGlzLnNtYXJ0T3BlblNlcnZpY2U9ZCx0aGlzLmRvY3VtZW50PWgsdGhpcy5vdXRzaWRlQ2xpY2tDbG9zZT0hMCx0aGlzLnNjcm9sbFRvQ2xvc2U9ITAsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGQub3BlbkNoYW5nZS5zdWJzY3JpYmUoZj0+e2Y/'@; put 'KHRoaXMuYWRkRXNjYXBlTGlzdGVuZXIoKSx0aGlzLmFkZENsaWNrTGlzdGVuZXIoKSx0aGlzLmFkZFNjcm9sbExpc3RlbmVyKCkpOnRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKX0pLGQuZ2V0RXZlbnRDaGFuZ2UoKS5zdWJzY3JpYmUoZj0+e3RoaXMuaWdub3JlZEV2ZW50PWZ9KSl9'@; put 'bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpLHRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKX1hZGRTY3JvbGxMaXN0ZW5lcigpe3RoaXMuc2Nyb2xsVG9DbG9zZSYmKHRoaXMuZG9jdW1lbnRTY3JvbGxlcj1uMih0aGlzLmRv'@; put 'Y3VtZW50LCJzY3JvbGwiLHtjYXB0dXJlOiEwfSksdGhpcy5zY3JvbGxTdWJzY3JpcHRpb249dGhpcy5kb2N1bWVudFNjcm9sbGVyLnBpcGUoSWEodGhpcy50ZXN0Rm9yU21hcnRQb3BvdmVyQ29udGVudENvbnRhaW5lcikpLnN1YnNjcmliZSgoKT0+e3RoaXMuc21hcnRPcGVuU2VydmljZS5v'@; put 'cGVuPSExLHRoaXMuc2V0QW5jaG9yRm9jdXMoKX0pKX1yZW1vdmVTY3JvbGxMaXN0ZW5lcigpe3RoaXMuZG9jdW1lbnRTY3JvbGxlciYmKHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksZGVsZXRlIHRoaXMuZG9jdW1lbnRTY3JvbGxlcil9YWRkQ2xpY2tMaXN0ZW5lcigp'@; put 'e3RoaXMub3V0c2lkZUNsaWNrQ2xvc2UmJih0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcj10aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCJjbGljayIsYT0+e2E9PT10aGlzLmlnbm9yZWRFdmVudD9kZWxldGUgdGhpcy5pZ25vcmVkRXZlbnQ6KHRoaXMuc21hcnRPcGVuU2Vy'@; put 'dmljZS5vcGVuPSExLGEudGFyZ2V0LmZvY3VzKCkpfSkpfXJlbW92ZUNsaWNrTGlzdGVuZXIoKXt0aGlzLm91dHNpZGVDbGlja0Nsb3NlJiYoZGVsZXRlIHRoaXMuaWdub3JlZEV2ZW50LHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyJiYodGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIoKSxk'@; put 'ZWxldGUgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIpKX1hZGRFc2NhcGVMaXN0ZW5lcigpe3RoaXMuZXNjYXBlTGlzdGVuZXI9dGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwia2V5ZG93bi5lc2NhcGUiLCgpPT57dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW49ITEsdGhp'@; put 'cy5zZXRBbmNob3JGb2N1cygpfSl9cmVtb3ZlRXNjYXBlTGlzdGVuZXIoKXt0aGlzLmVzY2FwZUxpc3RlbmVyJiYodGhpcy5lc2NhcGVMaXN0ZW5lcigpLGRlbGV0ZSB0aGlzLmVzY2FwZUxpc3RlbmVyKX1zZXRDbG9zZUZvY3VzKCl7dGhpcy5jbG9zZUJ1dHRvblJlZi5uYXRpdmVFbGVtZW50'@; put 'LmZvY3VzKCl9c2V0QW5jaG9yRm9jdXMoKXt0aGlzLmFuY2hvckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9dGVzdEZvclNtYXJ0UG9wb3ZlckNvbnRlbnRDb250YWluZXIoYSl7bGV0IGQ9YS50YXJnZXQ7Zm9yKDtkLmNsYXNzTGlzdCYmImJvZHkiIT09ZC5wYXJlbnRFbGVtZW50'@; put 'LmxvY2FsTmFtZTspZD1kLnBhcmVudEVsZW1lbnQ7cmV0dXJuISFkLmNsYXNzTGlzdCYmIWQuY2xhc3NMaXN0LmNvbnRhaW5zKCJjbHItcG9wb3Zlci1jb250ZW50Iil9cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5yZW1vdmVDbGlj'@; put 'a0xpc3RlbmVyKCksdGhpcy5yZW1vdmVFc2NhcGVMaXN0ZW5lcigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihGbyksYXIoS3MpLGFyKExzKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCks'@; put 'd2I9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe2EuYW5jaG9yQnV0dG9uUmVmPWR9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KElmKSx0dChOaSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJQb3Bv'@; put 'dmVyQW5jaG9yIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiY2xyLWFuY2hvciIsITApfX0pLGN9KSgpLEZKPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuZWxlbWVudFJlZj1hLHRoaXMuc21hcnRFdmVudHNTZXJ2aWNl'@; put 'PWQsdGhpcy5zbWFydE9wZW5TZXJ2aWNlPWgsdGhpcy5jbG9zZUNoYW5nZT1uZXcgRXIsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGgub3BlbkNoYW5nZS5waXBlKElhKGY9PiFmKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5jbG9zZUNoYW5nZS5uZXh0KCl9'@; put 'KSl9aGFuZGxlQ2xpY2soYSl7dGhpcy5zbWFydE9wZW5TZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudChhKSx0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5zZXRBbmNob3JGb2N1cygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc21hcnRFdmVudHNTZXJ2aWNlLmNsb3NlQnV0dG9uUmVmPXRoaXMuZWxl'@; put 'bWVudFJlZix0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5zZXRDbG9zZUZvY3VzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChOaSks'@; put 'dHQoSWYpLHR0KEtzKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJDbG9zZUJ1dHRvbiIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoImNsaWNrIixmdW5jdGlvbihmKXtyZXR1cm4gZC5oYW5kbGVD'@; put 'bGljayhmKX0pLDImYSYmZHIoImNsci1zbWFydC1jbG9zZS1idXR0b24iLCEwKX0sb3V0cHV0czp7Y2xvc2VDaGFuZ2U6ImNsclBvcG92ZXJPbkNsb3NlQ2hhbmdlIn19KSxjfSkoKTt2YXIgdnU9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5WRVJUSUNBTD0wXT0iVkVSVElDQUwiLGNbYy5IT1JJ'@; put 'Wk9OVEFMPTFdPSJIT1JJWk9OVEFMIixjfSh2dXx8e30pLFBzPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuU1RBUlQ9MF09IlNUQVJUIixjW2MuQ0VOVEVSPS41XT0iQ0VOVEVSIixjW2MuRU5EPTFdPSJFTkQiLGN9KFBzfHx7fSksQ2I9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5CT1RUT009MF09'@; put 'IkJPVFRPTSIsY1tjLkxFRlQ9MV09IkxFRlQiLGNbYy5SSUdIVD0yXT0iUklHSFQiLGNbYy5UT1A9M109IlRPUCIsY30oQ2J8fHt9KTtjb25zdCBTcD1jPT4oey4uLmMsc2lkZTotMSpjLnNpZGV9KSxMZj0oYyxsKT0+e2NvbnN0IGE9Yy5jb250ZW50KyhsPy41Oi0uNSk7cmV0dXJuIGE8MHx8'@; put 'YT4xP2M6ey4uLmMsY29udGVudDphfX07ZnVuY3Rpb24gQzgoYyxsLGEpe3JldHVybiBkPT5sKGMoZCksYSl9ZnVuY3Rpb24gdTEoYyxsLGEpe2xldCBkPWwubGVmdCxoPWwudG9wO3N3aXRjaChjLmF4aXMrYy5zaWRlKXtjYXNlLTE6ZCs9SEooYyxsLGEpLGgtPWEuaGVpZ2h0O2JyZWFrO2Nh'@; put 'c2UgMTpkKz1ISihjLGwsYSksaCs9bC5oZWlnaHQ7YnJlYWs7Y2FzZSAwOmQtPWEud2lkdGgsaCs9TkooYyxsLGEpO2JyZWFrO2Nhc2UgMjpkKz1sLndpZHRoLGgrPU5KKGMsbCxhKX1yZXR1cm57eE9mZnNldDpkLHlPZmZzZXQ6aH19ZnVuY3Rpb24gSEooYyxsLGEpe2xldCBkPTA7c3dpdGNo'@; put 'KGMuYW5jaG9yKXtjYXNlIFBzLlNUQVJUOmJyZWFrO2Nhc2UgUHMuQ0VOVEVSOmQrPWwud2lkdGgvMjticmVhaztjYXNlIFBzLkVORDpkKz1sLndpZHRofXN3aXRjaChjLmNvbnRlbnQpe2Nhc2UgUHMuU1RBUlQ6YnJlYWs7Y2FzZSBQcy5DRU5URVI6ZC09YS53aWR0aC8yO2JyZWFrO2Nhc2Ug'@; put 'UHMuRU5EOmQtPWEud2lkdGh9cmV0dXJuIGR9ZnVuY3Rpb24gTkooYyxsLGEpe2xldCBkPTA7c3dpdGNoKGMuYW5jaG9yKXtjYXNlIFBzLlNUQVJUOmJyZWFrO2Nhc2UgUHMuQ0VOVEVSOmQrPWwuaGVpZ2h0LzI7YnJlYWs7Y2FzZSBQcy5FTkQ6ZCs9bC5oZWlnaHR9c3dpdGNoKGMuY29udGVu'@; put 'dCl7Y2FzZSBQcy5TVEFSVDpicmVhaztjYXNlIFBzLkNFTlRFUjpkLT1hLmhlaWdodC8yO2JyZWFrO2Nhc2UgUHMuRU5EOmQtPWEuaGVpZ2h0fXJldHVybiBkfWxldCBTOD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5ldmVudFNlcnZpY2U9YSx0aGlzLnBsYXRmb3JtSWQ9'@; put 'ZCx0aGlzLl9zaG91bGRSZWFsaWduPW5ldyBiZSx0aGlzLnNob3VsZFJlYWxpZ249dGhpcy5fc2hvdWxkUmVhbGlnbi5hc09ic2VydmFibGUoKX1yZWFsaWduKCl7dGhpcy5fc2hvdWxkUmVhbGlnbi5uZXh0KCl9YWxpZ25Db250ZW50KGEpe2lmKCFScyh0aGlzLnBsYXRmb3JtSWQpKXJldHVy'@; put 'bnt4T2Zmc2V0OjAseU9mZnNldDowfTt0aGlzLmN1cnJlbnRBbmNob3JDb29yZHM9dGhpcy5ldmVudFNlcnZpY2UuYW5jaG9yQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcz1hLmdldEJvdW5kaW5nQ2xpZW50'@; put 'UmVjdCgpLHRoaXMuY29udGVudE9mZnNldHM9dTEodGhpcy5wb3NpdGlvbix0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7Y29uc3QgZD1mdW5jdGlvbiBpeWUoYyxsKXtjb25zdCBhPVtdLGRfYm90dG9tPWMueU9mZnNldCtsLmhlaWdodCxkX2xl'@; put 'ZnQ9Yy54T2Zmc2V0LGRfcmlnaHQ9Yy54T2Zmc2V0K2wud2lkdGg7cmV0dXJuIGMueU9mZnNldD49MHx8YS5wdXNoKENiLlRPUCksZF9sZWZ0Pj0wfHxhLnB1c2goQ2IuTEVGVCksZF9ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRI'@; put 'ZWlnaHQpfHxhLnB1c2goQ2IuQk9UVE9NKSxkX3JpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl8fGEucHVzaChDYi5SSUdIVCksYX0odGhpcy5jb250ZW50T2Zmc2V0cyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKSxoPWQu'@; put 'cmVkdWNlKChmLF8pPT5mK18sMCk7cmV0dXJuIDE9PT1kLmxlbmd0aCYmdGhpcy5wb3NpdGlvbi5heGlzPT09dnUuVkVSVElDQUw/dGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNPbmVWaW9sYXRpb24oaCk6MT09PWQubGVuZ3RoJiZ0aGlzLnBvc2l0aW9uLmF4aXM9PT12dS5IT1JJWk9OVEFMP3Ro'@; put 'aXMuaGFuZGxlSG9yaXpvbnRhbEF4aXNPbmVWaW9sYXRpb24oaCk6Mj09PWQubGVuZ3RoJiZ0aGlzLnBvc2l0aW9uLmF4aXM9PT12dS5WRVJUSUNBTD90aGlzLmhhbmRsZVZlcnRpY2FsQXhpc1R3b1Zpb2xhdGlvbnMoaCk6Mj09PWQubGVuZ3RoJiZ0aGlzLnBvc2l0aW9uLmF4aXM9PT12dS5I'@; put 'T1JJWk9OVEFMJiZ0aGlzLmhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyhoKSx0aGlzLmNvbnRlbnRPZmZzZXRzfWhhbmRsZVZlcnRpY2FsQXhpc09uZVZpb2xhdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAwOmNhc2UgMzp0aGlzLmNvbnRlbnRPZmZzZXRzPXUxKFNwKHRoaXMucG9z'@; put 'aXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVhaztjYXNlIDE6dGhpcy5jb250ZW50T2Zmc2V0cz11MSh0aGlzLnBvc2l0aW9uLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKSx0aGlz'@; put 'LmNvbnRlbnRPZmZzZXRzLnhPZmZzZXQ8MCYmKHRoaXMuY29udGVudE9mZnNldHMueE9mZnNldD0xMCk7YnJlYWs7Y2FzZSAyOnRoaXMuY29udGVudE9mZnNldHM9dTEoTGYodGhpcy5wb3NpdGlvbiwhMCksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29y'@; put 'ZHMpfX1oYW5kbGVWZXJ0aWNhbEF4aXNUd29WaW9sYXRpb25zKGEpe3N3aXRjaChhKXtjYXNlIDU6e2NvbnN0IGQ9QzgoU3AsTGYsITApO3RoaXMuY29udGVudE9mZnNldHM9dTEoZCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENv'@; put 'b3Jkcyk7YnJlYWt9Y2FzZSA0Ontjb25zdCBkPUM4KFNwLExmLCExKTt0aGlzLmNvbnRlbnRPZmZzZXRzPXUxKGQodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFrfWNhc2UgMzpkZWZhdWx0OmJyZWFrO2Nhc2Ug'@; put 'Mjp7Y29uc3QgZD1DOChTcCxMZiwhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz11MShkKHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha31jYXNlIDE6e2NvbnN0IGQ9QzgoU3AsTGYsITEpO3RoaXMuY29udGVudE9m'@; put 'ZnNldHM9dTEoZCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWt9fX1oYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAxOmNhc2UgMjp0aGlzLmNvbnRlbnRPZmZzZXRz'@; put 'PXUxKFNwKHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVhaztjYXNlIDA6dGhpcy5jb250ZW50T2Zmc2V0cz11MShMZih0aGlzLnBvc2l0aW9uLCEwKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJy'@; put 'ZW50Q29udGVudENvb3Jkcyk7YnJlYWs7Y2FzZSAzOnRoaXMuY29udGVudE9mZnNldHM9dTEoTGYodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpfX1oYW5kbGVIb3Jpem9udGFsQXhpc1R3b1Zpb2xhdGlvbnMoYSl7c3dp'@; put 'dGNoKGEpe2Nhc2UgNTpjYXNlIDQ6e2NvbnN0IGQ9QzgoU3AsTGYsITEpO3RoaXMuY29udGVudE9mZnNldHM9dTEoZCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWt9Y2FzZSAzOmRlZmF1bHQ6YnJlYWs7Y2Fz'@; put 'ZSAyOmNhc2UgMTp7Y29uc3QgZD1DOChTcCxMZiwhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz11MShkKHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha319fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7'@; put 'cmV0dXJuIG5ldyhhfHxjKShhcihJZiksYXIoR3MpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxTYj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyxULFcpe3RoaXMuZG9jdW1lbnQ9YSx0aGlzLmNvbnRhaW5lcj1kLHRo'@; put 'aXMudGVtcGxhdGU9aCx0aGlzLnJlbmRlcmVyPWYsdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZT1fLHRoaXMuc21hcnRFdmVudHNTZXJ2aWNlPVQsdGhpcy5zbWFydE9wZW5TZXJ2aWNlPVcsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuPW51bGwsdGhp'@; put 'cy5zaG91bGRSZWFsaWduPSExLHRoaXMuY2hlY2tDb2xsZWN0b3I9bmV3IEVyfXNldCBvcGVuKGEpe3RoaXMuc21hcnRPcGVuU2VydmljZS5vcGVuPSEhYX1zZXQgY29udGVudEF0KGEpe3RoaXMuc21hcnRQb3NpdGlvblNlcnZpY2UucG9zaXRpb249YX1zZXQgb3V0c2lkZUNsaWNrQ2xvc2Uo'@; put 'YSl7dGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uub3V0c2lkZUNsaWNrQ2xvc2U9ISFhfXNldCBzY3JvbGxUb0Nsb3NlKGEpe3RoaXMuc21hcnRFdmVudHNTZXJ2aWNlLnNjcm9sbFRvQ2xvc2U9ISFhfW5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpe3RoaXMuc21hcnRPcGVuU2VydmljZS5vcGVuJiZ0'@; put 'aGlzLnZpZXcmJnRoaXMuc2hvdWxkUmVhbGlnbiYmdGhpcy5jaGVja0NvbGxlY3Rvci5lbWl0KCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGE9PnthP3RoaXMuYWRkQ29udGVudCgp'@; put 'OnRoaXMucmVtb3ZlQ29udGVudCgpfSksdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5zaG91bGRSZWFsaWduLnN1YnNjcmliZSgoKT0+e3RoaXMuc2hvdWxkUmVhbGlnbj0hMH0pLHRoaXMuY2hlY2tDb2xsZWN0b3IucGlwZShmOCgwKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5hbGlnbkNvbnRl'@; put 'bnQoKSx0aGlzLnNob3VsZFJlYWxpZ249ITEsdGhpcy52aWV3JiZ0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudmlldy5yb290Tm9kZXNbMF0sIm9wYWNpdHkiLCIxIil9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJlbW92ZUNvbnRlbnQoKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChh'@; put 'PT5hLnVuc3Vic2NyaWJlKCkpfWFkZENvbnRlbnQoKXt0aGlzLnZpZXc9dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO2NvbnN0W2FdPXRoaXMudmlldy5yb290Tm9kZXM7dGhpcy5zbWFydEV2ZW50c1NlcnZpY2UuY29udGVudFJlZj1hLHRoaXMucmVu'@; put 'ZGVyZXIuYWRkQ2xhc3MoYSwiY2xyLXBvcG92ZXItY29udGVudCIpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoYSwidG9wIiwiMHB4IiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShhLCJsZWZ0IiwiMHB4IiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShhLCJvcGFjaXR5IiwiMCIpLHRoaXMucmVt'@; put 'b3ZlQ2xpY2tMaXN0ZW5lckZuPXRoaXMucmVuZGVyZXIubGlzdGVuKGEsImNsaWNrIixkPT57dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5FdmVudD1kfSksdGhpcy52aWV3LnJvb3ROb2Rlcy5mb3JFYWNoKGQ9Pnt0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9k'@; put 'eSxkKX0pLHRoaXMuc2hvdWxkUmVhbGlnbj0hMH1yZW1vdmVDb250ZW50KCl7dGhpcy52aWV3JiYodGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm4mJih0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbigpLHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuPW51bGwpLHRoaXMudmlldy5yb290Tm9k'@; put 'ZXMuZm9yRWFjaChhPT50aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSxhKSksdGhpcy5jb250YWluZXIuY2xlYXIoKSxkZWxldGUgdGhpcy52aWV3KX1hbGlnbkNvbnRlbnQoKXtpZighdGhpcy52aWV3KXJldHVybjtjb25zdCBhPXRoaXMuc21hcnRQb3NpdGlv'@; put 'blNlcnZpY2UuYWxpZ25Db250ZW50KHRoaXMudmlldy5yb290Tm9kZXNbMF0pO3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwidG9wIixgJHthLnlPZmZzZXR9cHhgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudmlldy5yb290Tm9kZXNbMF0sImxl'@; put 'ZnQiLGAke2EueE9mZnNldH1weGApLHRoaXMuc21hcnRPcGVuU2VydmljZS5wb3BvdmVyQWxpZ25lZEVtaXQodGhpcy52aWV3LnJvb3ROb2Rlc1swXSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KExzKSx0dChhcyksdHQoemEpLHR0KEZvKSx0'@; put 'dChTOCksdHQoSWYpLHR0KEtzKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJDb250ZW50IiwiIl1dLGlucHV0czp7b3BlbjpbImNsclBvcG92ZXJDb250ZW50Iiwib3BlbiJdLGNvbnRlbnRBdDpbImNsclBvcG92ZXJDb250ZW50QXQiLCJjb250'@; put 'ZW50QXQiXSxvdXRzaWRlQ2xpY2tDbG9zZTpbImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsIm91dHNpZGVDbGlja0Nsb3NlIl0sc2Nyb2xsVG9DbG9zZTpbImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSIsInNjcm9sbFRvQ2xvc2UiXX19KSxjfSkoKSxNYj0o'@; put 'KCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuc21hcnRPcGVuU2VydmljZT1hLHRoaXMub3BlbkNsb3NlQ2hhbmdlPW5ldyBFcix0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2Ny'@; put 'aWJlKGQ9Pnt0aGlzLm9wZW5DbG9zZUNoYW5nZS5uZXh0KGQpfSkpfWhhbmRsZUNsaWNrKGEpe3RoaXMuc21hcnRPcGVuU2VydmljZS50b2dnbGVXaXRoRXZlbnQoYSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4g'@; put 'Yy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChLcykpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4'@; put 'dCgiY2xpY2siLGZ1bmN0aW9uKGYpe3JldHVybiBkLmhhbmRsZUNsaWNrKGYpfSksMiZhJiZkcigiY2xyLXNtYXJ0LW9wZW4tY2xvc2UiLCEwKX0sb3V0cHV0czp7b3BlbkNsb3NlQ2hhbmdlOiJjbHJQb3BvdmVyT3BlbkNsb3NlQ2hhbmdlIn19KSxjfSkoKSx4Yj0oKCk9PntjbGFzcyBje31y'@; put 'ZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbXV19KSxjfSkoKTt2YXIgZDE9ZnVuY3Rpb24oYyl7cmV0dXJuIGMuVVA9InVwIixjLkRPV049ImRvd24iLGMuTEVG'@; put 'VD0ibGVmdCIsYy5SSUdIVD0icmlnaHQiLGN9KGQxfHx7fSk7bGV0IEViPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5yZW5kZXJlcj1hLHRoaXMuX3VubGlzdGVuRnVuY3M9W119Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1yZXNldChhKXt0aGlzLl9jdXJy'@; put 'ZW50PWF9bGlzdGVuVG9BcnJvd0tleXMoYSl7dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGEsImtleWRvd24uYXJyb3d1cCIsKCk9PiF0aGlzLm1vdmUoZDEuVVApKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGEs'@; put 'ImtleWRvd24uYXJyb3dkb3duIiwoKT0+IXRoaXMubW92ZShkMS5ET1dOKSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihhLCJrZXlkb3duLmFycm93bGVmdCIsKCk9PiF0aGlzLm1vdmUoZDEuTEVGVCkpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2go'@; put 'dGhpcy5yZW5kZXJlci5saXN0ZW4oYSwia2V5ZG93bi5hcnJvd3JpZ2h0IiwoKT0+IXRoaXMubW92ZShkMS5SSUdIVCkpKX1yZWdpc3RlckNvbnRhaW5lcihhLGQ9IjAiKXt0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShhLCJ0YWJpbmRleCIsZCksdGhpcy5saXN0ZW5Ub0Fycm93S2V5cyhh'@; put 'KSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oYSwia2V5ZG93bi5zcGFjZSIsKCk9PiF0aGlzLmFjdGl2YXRlQ3VycmVudCgpKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGEsImtleWRvd24uZW50ZXIiLCgpPT4h'@; put 'dGhpcy5hY3RpdmF0ZUN1cnJlbnQoKSkpfW1vdmVUbyhhKXt2b2lkIDAhPT1hJiYodGhpcy5jdXJyZW50JiZ0aGlzLmN1cnJlbnQuYmx1cigpLGEuZm9jdXMoKSx0aGlzLl9jdXJyZW50PWEpfW1vdmUoYSl7bGV0IGQ9ITE7aWYodGhpcy5jdXJyZW50KXtjb25zdCBoPXRoaXMuY3VycmVudFth'@; put 'XTtoJiYoRk8oaCk/aDpXaShoKSkuc3Vic2NyaWJlKF89PntfJiYodGhpcy5tb3ZlVG8oXyksZD0hMCl9KX1yZXR1cm4gZH1hY3RpdmF0ZUN1cnJlbnQoKXtyZXR1cm4hKCF0aGlzLmN1cnJlbnR8fCF0aGlzLmN1cnJlbnQuYWN0aXZhdGV8fCh0aGlzLmN1cnJlbnQuYWN0aXZhdGUoKSwwKSl9'@; put 'ZGV0YWNoTGlzdGVuZXJzKCl7dGhpcy5fdW5saXN0ZW5GdW5jcy5mb3JFYWNoKGE9PmEoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKEZvKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7'@; put 'Y29uc3Qgako9e3Byb3ZpZGU6RWIsdXNlRmFjdG9yeTpmdW5jdGlvbiBveWUoYyxsKXtyZXR1cm4gY3x8bmV3IEViKGwpfSxkZXBzOltbbmV3IHoyLG5ldyBnMCxFYl0sRm9dfTt2YXIgb2Q9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5CRUZPUkU9LTFdPSJCRUZPUkUiLGNbYy5BRlRFUj0xXT0i'@; put 'QUZURVIiLGN9KG9kfHx7fSk7Y2xhc3MgeDB7fXgwWyJ0b3AtcmlnaHQiXT17YXhpczp2dS5WRVJUSUNBTCxzaWRlOm9kLkJFRk9SRSxhbmNob3I6UHMuRU5ELGNvbnRlbnQ6UHMuRU5EfSx4MFsidG9wLWxlZnQiXT17YXhpczp2dS5WRVJUSUNBTCxzaWRlOm9kLkJFRk9SRSxhbmNob3I6UHMu'@; put 'U1RBUlQsY29udGVudDpQcy5TVEFSVH0seDBbImJvdHRvbS1yaWdodCJdPXtheGlzOnZ1LlZFUlRJQ0FMLHNpZGU6b2QuQUZURVIsYW5jaG9yOlBzLkVORCxjb250ZW50OlBzLkVORH0seDBbImJvdHRvbS1sZWZ0Il09e2F4aXM6dnUuVkVSVElDQUwsc2lkZTpvZC5BRlRFUixhbmNob3I6UHMu'@; put 'U1RBUlQsY29udGVudDpQcy5TVEFSVH0seDBbInJpZ2h0LXRvcCJdPXtheGlzOnZ1LkhPUklaT05UQUwsc2lkZTpvZC5BRlRFUixhbmNob3I6UHMuQ0VOVEVSLGNvbnRlbnQ6UHMuRU5EfSx4MFsicmlnaHQtYm90dG9tIl09e2F4aXM6dnUuSE9SSVpPTlRBTCxzaWRlOm9kLkFGVEVSLGFuY2hv'@; put 'cjpQcy5TVEFSVCxjb250ZW50OlBzLlNUQVJUfSx4MFsibGVmdC10b3AiXT17YXhpczp2dS5IT1JJWk9OVEFMLHNpZGU6b2QuQkVGT1JFLGFuY2hvcjpQcy5DRU5URVIsY29udGVudDpQcy5FTkR9LHgwWyJsZWZ0LWJvdHRvbSJdPXtheGlzOnZ1LkhPUklaT05UQUwsc2lkZTpvZC5CRUZPUkUs'@; put 'YW5jaG9yOlBzLlNUQVJULGNvbnRlbnQ6UHMuU1RBUlR9O2NsYXNzIElGe3N0YXRpYyBsaW5rUGFyZW50KGwsYSxkKXtsLmZvckVhY2goaD0+aFtkXT1hKX1zdGF0aWMgbGlua1ZlcnRpY2FsKGwsYT0hMCl7bC5mb3JFYWNoKChkLGgpPT57aD4wJiYoZC51cD1sW2gtMV0pLGg8bC5sZW5ndGgt'@; put 'MSYmKGQuZG93bj1sW2grMV0pfSksYSYmbC5sZW5ndGg+MSYmKGxbMF0udXA9bFtsLmxlbmd0aC0xXSxsW2wubGVuZ3RoLTFdLmRvd249bFswXSl9fWxldCBoMT0oKCk9PntjbGFzcyBje3VzZXJEZWZpbmVkV2lkdGgoYSl7YS5jbGFzc0xpc3QuYWRkKCJkYXRhZ3JpZC1jZWxsLXdpZHRoLXpl'@; put 'cm8iKTtjb25zdCBkPXRoaXMuY2xpZW50UmVjdChhKS53aWR0aDtyZXR1cm4gYS5jbGFzc0xpc3QucmVtb3ZlKCJkYXRhZ3JpZC1jZWxsLXdpZHRoLXplcm8iKSxkfXNjcm9sbEJhcldpZHRoKGEpe3JldHVybiBhLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGh9c2Nyb2xsV2lkdGgoYSl7cmV0'@; put 'dXJuIGEuc2Nyb2xsV2lkdGh8fDB9Y29tcHV0ZWRIZWlnaHQoYSl7cmV0dXJuIHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoYSkuZ2V0UHJvcGVydHlWYWx1ZSgiaGVpZ2h0IiksMTApfWNsaWVudFJlY3QoYSl7Y29uc3QgZD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6'@; put 'cGFyc2VJbnQoZC50b3AsMTApLGJvdHRvbTpwYXJzZUludChkLmJvdHRvbSwxMCksbGVmdDpwYXJzZUludChkLmxlZnQsMTApLHJpZ2h0OnBhcnNlSW50KGQucmlnaHQsMTApLHdpZHRoOnBhcnNlSW50KGQud2lkdGgsMTApLGhlaWdodDpwYXJzZUludChkLmhlaWdodCwxMCl9fW1pbldpZHRo'@; put 'KGEpe3JldHVybiBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGEpLmdldFByb3BlcnR5VmFsdWUoIm1pbi13aWR0aCIpLDEwKX1mb2N1cyhhKXthLmZvY3VzKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2Vu'@; put 'OmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLGJFPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLmVsZW1lbnQ9YSx0aGlzLmRvbUFkYXB0ZXI9ZCx0aGlzLnN0YXJ0SGVpZ2h0PTB9Z2V0IGV4cGFuZEFuaW1hdGlvbigpe3JldHVybnt2YWx1ZTp0aGlzLmNsckV4cGFu'@; put 'ZFRyaWdnZXIscGFyYW1zOntzdGFydEhlaWdodDp0aGlzLnN0YXJ0SGVpZ2h0fX19YW5pbWF0aW9uRG9uZSgpe3RoaXMudXBkYXRlU3RhcnRIZWlnaHQoKX11cGRhdGVTdGFydEhlaWdodCgpe3RoaXMuc3RhcnRIZWlnaHQ9dGhpcy5kb21BZGFwdGVyLmNvbXB1dGVkSGVpZ2h0KHRoaXMuZWxl'@; put 'bWVudC5uYXRpdmVFbGVtZW50KXx8MH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpLHR0KGgxKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiJdXSxob3N0VmFyczoxLGhv'@; put 'c3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmZV8oIkBleHBhbmRBbmltYXRpb24uZG9uZSIsZnVuY3Rpb24oKXtyZXR1cm4gZC5hbmltYXRpb25Eb25lKCl9KSwyJmEmJlM1KCJAZXhwYW5kQW5pbWF0aW9uIixkLmV4cGFuZEFuaW1hdGlvbil9LGlucHV0czp7Y2xyRXhwYW5kVHJpZ2dl'@; put 'cjoiY2xyRXhwYW5kVHJpZ2dlciJ9LGZlYXR1cmVzOlt0aShbaDFdKV0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpibG9jaztvdmVy'@; put 'ZmxvdzpoaWRkZW59Il0sZGF0YTp7YW5pbWF0aW9uOlthMSgiZXhwYW5kQW5pbWF0aW9uIixbZmMoInRydWUgPD0+IGZhbHNlIixbX3Moe2hlaWdodDoie3tzdGFydEhlaWdodH19cHgifSkscnUoIjAuMnMgZWFzZS1pbi1vdXQiLF9zKHtoZWlnaHQ6IioifSkpXSldKV19fSksY30pKCksTEY9'@; put 'KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vXV19KSxjfSkoKSxzeWU9MDtjb25zdCB4OD1uZXcgU2koIklGX0FDVElWRV9JRCIp'@; put 'LGx5ZT17cHJvdmlkZTp4OCx1c2VGYWN0b3J5OmZ1bmN0aW9uIGF5ZSgpe3JldHVybisrc3llfX07bGV0ICQ1PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9jdXJyZW50Q2hhbmdlPW5ldyBiZX1nZXQgY3VycmVudENoYW5nZSgpe3JldHVybiB0aGlzLl9jdXJyZW50Q2hhbmdl'@; put 'LmFzT2JzZXJ2YWJsZSgpfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoYSl7dGhpcy5fY3VycmVudCE9PWEmJih0aGlzLl9jdXJyZW50PWEsdGhpcy5fY3VycmVudENoYW5nZS5uZXh0KGEpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3Jl'@; put 'dHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksRTg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLmlmQWN0aXZlU2VydmljZT1hLHRoaXMuaWQ9ZCx0aGlzLnRlbXBsYXRlPWgsdGhpcy5jb250'@; put 'YWluZXI9Zix0aGlzLmFjdGl2ZUNoYW5nZT1uZXcgRXIoITEpLHRoaXMud2FzQWN0aXZlPSExLHRoaXMuY2hlY2tBbmRVcGRhdGVWaWV3KGEuY3VycmVudCksdGhpcy5zdWJzY3JpcHRpb249dGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudENoYW5nZS5zdWJzY3JpYmUoXz0+e3RoaXMuY2hl'@; put 'Y2tBbmRVcGRhdGVWaWV3KF8pfSl9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1zZXQgYWN0aXZlKGEpe2EmJih0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PXRoaXMuaWQpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRp'@; put 'b24udW5zdWJzY3JpYmUoKX11cGRhdGVWaWV3KGEpe2E/dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpOnRoaXMuY29udGFpbmVyLmNsZWFyKCl9Y2hlY2tBbmRVcGRhdGVWaWV3KGEpe2NvbnN0IGQ9YT09PXRoaXMuaWQ7ZCE9PXRoaXMud2FzQWN0aXZl'@; put 'JiYodGhpcy51cGRhdGVWaWV3KGQpLHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQoZCksdGhpcy53YXNBY3RpdmU9ZCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KCQ1KSx0dCh4OCksdHQoemEpLHR0KGFzKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBl'@; put 'OmMsc2VsZWN0b3JzOltbIiIsImNscklmQWN0aXZlIiwiIl1dLGlucHV0czp7YWN0aXZlOlsiY2xySWZBY3RpdmUiLCJhY3RpdmUiXX0sb3V0cHV0czp7YWN0aXZlQ2hhbmdlOiJjbHJJZkFjdGl2ZUNoYW5nZSJ9fSksY30pKCksYzI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7'@; put 'dGhpcy50b2dnbGVTZXJ2aWNlPWEsdGhpcy50ZW1wbGF0ZT1kLHRoaXMuY29udGFpbmVyPWgsdGhpcy5vcGVuQ2hhbmdlPW5ldyBFcighMSksdGhpcy5zdWJzY3JpcHRpb249dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGY9Pnt0aGlzLnVwZGF0ZVZpZXcoZiksdGhp'@; put 'cy5vcGVuQ2hhbmdlLmVtaXQoZil9KX1nZXQgb3Blbigpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn1zZXQgb3BlbihhKXt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj1hfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX11cGRhdGVWaWV3KGEpe2E/'@; put 'dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpOnRoaXMuY29udGFpbmVyLmNsZWFyKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEtzKSx0dCh6YSksdHQoYXMpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6'@; put 'YyxzZWxlY3RvcnM6W1siIiwiY2xySWZPcGVuIiwiIl1dLGlucHV0czp7b3BlbjpbImNscklmT3BlbiIsIm9wZW4iXX0sb3V0cHV0czp7b3BlbkNoYW5nZToiY2xySWZPcGVuQ2hhbmdlIn19KSxjfSkoKSx6Sj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7dGhpcy50ZW1w'@; put 'bGF0ZT1hLHRoaXMuY29udGFpbmVyPWQsdGhpcy5lbD1oLHRoaXMucmVuZGVyZXI9Zix0aGlzLmV4cGFuZD1fLHRoaXMuZXhwYW5kZWRDaGFuZ2U9bmV3IEVyKCEwKSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLl9zdWJzY3JpcHRpb25zPVtdLHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChfLmV4'@; put 'cGFuZENoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnVwZGF0ZVZpZXcoKSx0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmQuZXhwYW5kZWQpfSkpfWdldCBleHBhbmRlZCgpe3JldHVybiB0aGlzLl9leHBhbmRlZH1zZXQgZXhwYW5kZWQoYSl7ImJvb2xlYW4iPT10eXBlb2Yg'@; put 'YSYmKHRoaXMuZXhwYW5kLmV4cGFuZGVkPWEsdGhpcy5fZXhwYW5kZWQ9YSl9bmdPbkluaXQoKXt0aGlzLmV4cGFuZC5leHBhbmRhYmxlKyssdGhpcy51cGRhdGVWaWV3KCl9bmdPbkRlc3Ryb3koKXt0aGlzLmV4cGFuZC5leHBhbmRhYmxlLS0sdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNo'@; put 'KGE9PmEudW5zdWJzY3JpYmUoKSl9dXBkYXRlVmlldygpe2lmKCF0aGlzLmV4cGFuZC5leHBhbmRlZHx8MD09PXRoaXMuY29udGFpbmVyLmxlbmd0aClpZih0aGlzLnRlbXBsYXRlKXRoaXMuZXhwYW5kLmV4cGFuZGVkP3RoaXMuY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRl'@; put 'bXBsYXRlKTp0aGlzLmNvbnRhaW5lci5jbGVhcigpO2Vsc2UgdHJ5e3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkaXNwbGF5Iix0aGlzLmV4cGFuZC5leHBhbmRlZD9udWxsOiJub25lIil9Y2F0Y2h7fX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGEpe3JldHVybiBuZXcoYXx8YykodHQoemEsOCksdHQoYXMpLHR0KE5pKSx0dChGbyksdHQoWXUpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xySWZFeHBhbmRlZCIsIiJdXSxpbnB1dHM6e2V4cGFuZGVkOlsiY2xySWZFeHBhbmRlZCIsImV4cGFuZGVkIl19'@; put 'LG91dHB1dHM6e2V4cGFuZGVkQ2hhbmdlOiJjbHJJZkV4cGFuZGVkQ2hhbmdlIn19KSxjfSkoKSxzZD0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtp'@; put 'bXBvcnRzOltbb29dXX0pLGN9KSgpO2NsYXNzIFJme2NvbnN0cnVjdG9yKGwpe3RoaXMuZHJhZ1Bvc2l0aW9uPWwuZHJhZ1Bvc2l0aW9uLHRoaXMuZ3JvdXA9bC5ncm91cCx0aGlzLmRyYWdEYXRhVHJhbnNmZXI9bC5kcmFnRGF0YVRyYW5zZmVyLHRoaXMuZHJvcFBvaW50UG9zaXRpb249bC5k'@; put 'cm9wUG9pbnRQb3NpdGlvbn19dmFyIEUwPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuRFJBR19TVEFSVD0wXT0iRFJBR19TVEFSVCIsY1tjLkRSQUdfTU9WRT0xXT0iRFJBR19NT1ZFIixjW2MuRFJBR19FTkQ9Ml09IkRSQUdfRU5EIixjW2MuRFJBR19FTlRFUj0zXT0iRFJBR19FTlRFUiIsY1tj'@; put 'LkRSQUdfTEVBVkU9NF09IkRSQUdfTEVBVkUiLGNbYy5EUk9QPTVdPSJEUk9QIixjfShFMHx8e30pO2xldCBVSj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5kcmFnU3RhcnQ9bmV3IGJlLHRoaXMuZHJhZ01vdmU9bmV3IGJlLHRoaXMuZHJhZ0VuZD1uZXcgYmUsdGhpcy5kcm9w'@; put 'PW5ldyBiZX1nZXQgZHJhZ1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5kcmFnU3RhcnQuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdNb3ZlZCgpe3JldHVybiB0aGlzLmRyYWdNb3ZlLmFzT2JzZXJ2YWJsZSgpfWdldCBkcmFnRW5kZWQoKXtyZXR1cm4gdGhpcy5kcmFnRW5kLmFzT2JzZXJ2YWJsZSgp'@; put 'fWdldCBkcm9wcGVkKCl7cmV0dXJuIHRoaXMuZHJvcC5hc09ic2VydmFibGUoKX1icm9hZGNhc3QoYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSBFMC5EUkFHX1NUQVJUOnRoaXMuZHJhZ1N0YXJ0Lm5leHQoYSk7YnJlYWs7Y2FzZSBFMC5EUkFHX01PVkU6dGhpcy5kcmFnTW92ZS5uZXh0KGEpO2Jy'@; put 'ZWFrO2Nhc2UgRTAuRFJBR19FTkQ6dGhpcy5kcmFnRW5kLm5leHQoYSk7YnJlYWs7Y2FzZSBFMC5EUk9QOnRoaXMuZHJvcC5uZXh0KGEpfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMu'@; put 'XHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCksa2I9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5uZ1pvbmU9YSx0aGlzLnJlbmRlcmVyPWQsdGhpcy5ldmVudEJ1cz1oLHRoaXMuZHJhZ1N0YXJ0RGVsYXk9MCx0aGlzLmhhc0RyYWdTdGFydGVkPSExLHRo'@; put 'aXMuZHJhZ1N0YXJ0PW5ldyBiZSx0aGlzLmRyYWdNb3ZlPW5ldyBiZSx0aGlzLmRyYWdFbmQ9bmV3IGJlLHRoaXMubGlzdGVuZXJzPVtdfWdldCBkcmFnU3RhcnRlZCgpe3JldHVybiB0aGlzLmRyYWdTdGFydC5hc09ic2VydmFibGUoKX1nZXQgZHJhZ01vdmVkKCl7cmV0dXJuIHRoaXMuZHJh'@; put 'Z01vdmUuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdFbmRlZCgpe3JldHVybiB0aGlzLmRyYWdFbmQuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdTdGFydFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdGlhbFBvc2l0aW9ufWF0dGFjaERyYWdMaXN0ZW5lcnMoYSl7dGhpcy5kcmFnZ2FibGVFbD1h'@; put 'LHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5jdXN0b21EcmFnRXZlbnQodGhpcy5kcmFnZ2FibGVFbCwibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwibW91c2V1cCIpKSx0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMuY3VzdG9tRHJhZ0V2ZW50KHRoaXMuZHJhZ2dhYmxlRWwsInRvdWNoc3RhcnQi'@; put 'LCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIpKX1kZXRhY2hEcmFnTGlzdGVuZXJzKCl7dGhpcy5saXN0ZW5lcnMmJnRoaXMubGlzdGVuZXJzLm1hcChhPT5hKCkpLHRoaXMubmVzdGVkTGlzdGVuZXJzJiZ0aGlzLm5lc3RlZExpc3RlbmVycy5tYXAoYT0+YSgpKSx0aGlzLmNoZWNrRHJhZ1N0YXJ0'@; put 'Qm91bmRhcnlMaXN0ZW5lciYmdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXIoKX1nZXROYXRpdmVFdmVudE9iamVjdChhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImNoYW5nZWRUb3VjaGVzIik/YS5jaGFuZ2VkVG91Y2hlc1swXTph'@; put 'fWN1c3RvbURyYWdFdmVudChhLGQsaCxmKXtyZXR1cm4gdGhpcy5yZW5kZXJlci5saXN0ZW4oYSxkLF89Pnt0aGlzLmluaXRpYWxQb3NpdGlvbj17cGFnZVg6dGhpcy5nZXROYXRpdmVFdmVudE9iamVjdChfKS5wYWdlWCxwYWdlWTp0aGlzLmdldE5hdGl2ZUV2ZW50T2JqZWN0KF8pLnBhZ2VZ'@; put 'fSx0aGlzLm5lc3RlZExpc3RlbmVycz1bXSx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMubmVzdGVkTGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oImRvY3VtZW50Iiwic2VsZWN0c3RhcnQiLFQ9PntULnByZXZlbnREZWZhdWx0KCksVC5zdG9wSW1t'@; put 'ZWRpYXRlUHJvcGFnYXRpb24oKX0pKSx0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnkoaCksdGhpcy5kcmFnU3RhcnREZWxheVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyJiZ0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0'@; put 'ZW5lcigpLHRoaXMuaGFzRHJhZ1N0YXJ0ZWQ9ITAsdGhpcy5icm9hZGNhc3QoXyxFMC5EUkFHX1NUQVJUKSx0aGlzLm5lc3RlZExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKCJkb2N1bWVudCIsaCxUPT57VC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLmhhc0Ry'@; put 'YWdTdGFydGVkJiZ0aGlzLmJyb2FkY2FzdChULEUwLkRSQUdfTU9WRSl9KSl9LHRoaXMuZHJhZ1N0YXJ0RGVsYXkpfSksdGhpcy5uZXN0ZWRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbigiZG9jdW1lbnQiLGYsVD0+e3RoaXMuaGFzRHJhZ1N0YXJ0ZWQmJih0aGlzLmhhc0Ry'@; put 'YWdTdGFydGVkPSExLHRoaXMuYnJvYWRjYXN0KFQsRTAuRFJBR19FTkQpKSxjbGVhclRpbWVvdXQodGhpcy5kcmFnU3RhcnREZWxheVRpbWVvdXQpLHRoaXMubmVzdGVkTGlzdGVuZXJzLm1hcChXPT5XKCkpLHRoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyJiZ0aGlzLmNoZWNr'@; put 'RHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lcigpfSkpfSl9Y2hlY2tEcmFnU3RhcnRCb3VuZGFyeShhKXt0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lcj10aGlzLnJlbmRlcmVyLmxpc3RlbigiZG9jdW1lbnQiLGEsZD0+e2NvbnN0IGg9TWF0aC5hYnModGhpcy5nZXROYXRpdmVF'@; put 'dmVudE9iamVjdChkKS5wYWdlWC10aGlzLmluaXRpYWxQb3NpdGlvbi5wYWdlWCksZj1NYXRoLmFicyh0aGlzLmdldE5hdGl2ZUV2ZW50T2JqZWN0KGQpLnBhZ2VZLXRoaXMuaW5pdGlhbFBvc2l0aW9uLnBhZ2VZKTsoaD4xfHxmPjEpJiYoY2xlYXJUaW1lb3V0KHRoaXMuZHJhZ1N0YXJ0RGVs'@; put 'YXlUaW1lb3V0KSx0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lciYmdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXIoKSl9KX1icm9hZGNhc3QoYSxkKXtjb25zdCBoPXRoaXMuZ2VuZXJhdGVEcmFnRXZlbnQoYSxkKTtzd2l0Y2goaC50eXBlKXtjYXNlIEUwLkRS'@; put 'QUdfU1RBUlQ6dGhpcy5kcmFnU3RhcnQubmV4dChoKTticmVhaztjYXNlIEUwLkRSQUdfTU9WRTp0aGlzLmRyYWdNb3ZlLm5leHQoaCk7YnJlYWs7Y2FzZSBFMC5EUkFHX0VORDp0aGlzLmRyYWdFbmQubmV4dChoKX1oLmdob3N0RWxlbWVudD10aGlzLmdob3N0RWxlbWVudCxoLmRyb3BQb2lu'@; put 'dFBvc2l0aW9uPXRoaXMuZHJvcFBvaW50UG9zaXRpb24sdGhpcy5ldmVudEJ1cy5icm9hZGNhc3QoaCl9Z2VuZXJhdGVEcmFnRXZlbnQoYSxkKXtjb25zdCBoPXRoaXMuZ2V0TmF0aXZlRXZlbnRPYmplY3QoYSk7cmV0dXJue3R5cGU6ZCxkcmFnUG9zaXRpb246e3BhZ2VYOmgucGFnZVgscGFn'@; put 'ZVk6aC5wYWdlWSxtb3ZlWDpoLnBhZ2VYLXRoaXMuaW5pdGlhbFBvc2l0aW9uLnBhZ2VYLG1vdmVZOmgucGFnZVktdGhpcy5pbml0aWFsUG9zaXRpb24ucGFnZVl9LGdyb3VwOnRoaXMuZ3JvdXAsZHJhZ0RhdGFUcmFuc2Zlcjp0aGlzLmRyYWdEYXRhVHJhbnNmZXIsZ2hvc3RFbGVtZW50OnRo'@; put 'aXMuZ2hvc3RFbGVtZW50fX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoTm8pLGFyKEZvKSxhcihVSikpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLFJGPSgoKT0+e2NsYXNzIGN7Y29uc3Ry'@; put 'dWN0b3IoYSl7dGhpcy5kb21BZGFwdGVyPWF9Z2V0IGhhc0RyYWdnYWJsZVN0YXRlKCl7cmV0dXJuISF0aGlzLnNuYXBzaG90RHJhZ0V2ZW50JiYhIXRoaXMuZHJhZ2dhYmxlRWxDbGllbnRSZWN0fWdldCBjbGllbnRSZWN0KCl7cmV0dXJuIHRoaXMuZHJhZ2dhYmxlRWxDbGllbnRSZWN0fWdl'@; put 'dCBkcmFnRXZlbnQoKXtyZXR1cm4gdGhpcy5zbmFwc2hvdERyYWdFdmVudH1jYXB0dXJlKGEsZCl7dGhpcy5kcmFnZ2FibGVFbENsaWVudFJlY3Q9dGhpcy5kb21BZGFwdGVyLmNsaWVudFJlY3QoYSksdGhpcy5zbmFwc2hvdERyYWdFdmVudD1kfWRpc2NhcmQoKXtkZWxldGUgdGhpcy5kcmFn'@; put 'Z2FibGVFbENsaWVudFJlY3QsZGVsZXRlIHRoaXMuc25hcHNob3REcmFnRXZlbnR9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKGgxKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksWko9KCgp'@; put 'PT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe2lmKHRoaXMuZWw9YSx0aGlzLmRyYWdFdmVudExpc3RlbmVyPWQsdGhpcy5kcmFnZ2FibGVTbmFwc2hvdD1oLHRoaXMucmVuZGVyZXI9Zix0aGlzLm5nWm9uZT1fLHRoaXMubGVhdmVBbmltQ29uZmlnPXt2YWx1ZTowLHBhcmFtczp7'@; put 'dG9wOiIwcHgiLGxlZnQ6IjBweCJ9fSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sIXRoaXMuZHJhZ0V2ZW50TGlzdGVuZXJ8fCF0aGlzLmRyYWdnYWJsZVNuYXBzaG90KXRocm93IG5ldyBFcnJvcigiVGhlIGNsci1kcmFnZ2FibGUtZ2hvc3QgY29tcG9uZW50IGNhbiBvbmx5IGJlIHVzZWQgaW5z'@; put 'aWRlIG9mIGEgY2xyRHJhZ2dhYmxlIGRpcmVjdGl2ZS4iKTt0aGlzLmRyYWdnYWJsZUdob3N0RWw9dGhpcy5lbC5uYXRpdmVFbGVtZW50LHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kcmFnZ2FibGVHaG9zdEVsLCJkcmFnZ2FibGUtZ2hvc3QiKSx0aGlzLmRyYWdFdmVudExpc3RlbmVy'@; put 'Lmdob3N0RWxlbWVudD10aGlzLmRyYWdnYWJsZUdob3N0RWwsdGhpcy5zZXREZWZhdWx0R2hvc3RTaXplKHRoaXMuZHJhZ2dhYmxlR2hvc3RFbCk7Y29uc3QgVD17dG9wOnRoaXMuZHJhZ2dhYmxlU25hcHNob3QuaGFzRHJhZ2dhYmxlU3RhdGU/dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5kcmFn'@; put 'RXZlbnQuZHJhZ1Bvc2l0aW9uLnBhZ2VZLXRoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC50b3A6MCxsZWZ0OnRoaXMuZHJhZ2dhYmxlU25hcHNob3QuaGFzRHJhZ2dhYmxlU3RhdGU/dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5kcmFnRXZlbnQuZHJhZ1Bvc2l0aW9uLnBhZ2VYLXRo'@; put 'aXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC5sZWZ0OjB9O2xldCBXPSExO3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ01vdmVkLnN1YnNjcmliZShpZT0+e1d8fCh0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRl'@; put 'P3RoaXMuYW5pbWF0ZVRvT25MZWF2ZShgJHt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QudG9wfXB4YCxgJHt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QubGVmdH1weGApOnRoaXMuYW5pbWF0ZVRvT25MZWF2ZShgJHt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRy'@; put 'YWdTdGFydFBvc2l0aW9uLnBhZ2VZfXB4YCxgJHt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydFBvc2l0aW9uLnBhZ2VZfXB4YCksVz0hMCk7Y29uc3QgcGU9dGhpcy5maW5kVG9wTGVmdFBvc2l0aW9uKGllLmRyYWdQb3NpdGlvbixUKTt0aGlzLnNldFBvc2l0aW9uU3R5bGUodGhp'@; put 'cy5kcmFnZ2FibGVHaG9zdEVsLHBlLnBhZ2VYLHBlLnBhZ2VZKSx0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyb3BQb2ludFBvc2l0aW9uPXRoaXMuZmluZERyb3BQb2ludFBvc2l0aW9uKHBlKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJz'@; put 'Y3JpYmUoKSl9c2V0RGVmYXVsdEdob3N0U2l6ZShhKXt0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlJiZ0aGlzLnNldFNpemVTdHlsZShhLHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC53aWR0aCx0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJl'@; put 'Y3QuaGVpZ2h0KX1hbmltYXRlVG9PbkxlYXZlKGEsZCl7dGhpcy5uZ1pvbmUucnVuKCgpPT57dGhpcy5sZWF2ZUFuaW1Db25maWc9e3ZhbHVlOjAscGFyYW1zOnt0b3A6YSxsZWZ0OmR9fX0pfWZpbmRUb3BMZWZ0UG9zaXRpb24oYSxkKXtyZXR1cm57cGFnZVg6YS5wYWdlWC1kLmxlZnQscGFn'@; put 'ZVk6YS5wYWdlWS1kLnRvcH19ZmluZERyb3BQb2ludFBvc2l0aW9uKGEpe3JldHVybiB0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlP3twYWdlWDphLnBhZ2VYK3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC53aWR0aC8yLHBhZ2VZOmEucGFnZVkrdGhp'@; put 'cy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LmhlaWdodC8yfTphfXNldFNpemVTdHlsZShhLGQsaCl7dGhpcy5yZW5kZXJlci5zZXRTdHlsZShhLCJ3aWR0aCIsYCR7ZH1weGApLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoYSwiaGVpZ2h0IixgJHtofXB4YCl9c2V0UG9zaXRpb25TdHls'@; put 'ZShhLGQsaCl7dGhpcy5yZW5kZXJlci5zZXRTdHlsZShhLCJsZWZ0IixgJHtkfXB4YCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShhLCJ0b3AiLGAke2h9cHhgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGEsInZpc2liaWxpdHkiLCJ2aXNpYmxlIil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KE5pKSx0dChrYiw4KSx0dChSRiw4KSx0dChGbyksdHQoTm8pKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRyYWdnYWJsZS1naG9zdCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezIm'@; put 'YSYmUzUoIkBsZWF2ZUFuaW1hdGlvbiIsZC5sZWF2ZUFuaW1Db25maWcpfSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSgpLGtyKDApKX0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbYTEoImxlYXZl'@; put 'QW5pbWF0aW9uIixbZmMoIjpsZWF2ZSIsW19zKHtsZWZ0OiIqIix0b3A6IioifSkscnUoIjAuMnMgZWFzZS1pbi1vdXQiLF9zKHt0b3A6Int7dG9wfX0iLGxlZnQ6Int7bGVmdH19In0pKV0pXSldfX0pLGN9KSgpLFlKPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe2lmKHRoaXMu'@; put 'dGVtcGxhdGU9YSx0aGlzLmNvbnRhaW5lcj1kLHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXI9aCx0aGlzLnN1YnNjcmlwdGlvbnM9W10sIXRoaXMuZHJhZ0V2ZW50TGlzdGVuZXJ8fCF0aGlzLmNvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIlRoZSAqY2xySWZEcmFnZ2VkIGRpcmVjdGl2ZSBjYW4g'@; put 'b25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsckRyYWdnYWJsZSBkaXJlY3RpdmUuIik7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnRlZC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50'@; put 'ZW1wbGF0ZSl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnRW5kZWQuc3Vic2NyaWJlKCgpPT57dGhpcy5jb250YWluZXIuY2xlYXIoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3Jp'@; put 'YmUoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KHphKSx0dChhcywxMiksdHQoa2IsOCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJJZkRyYWdnZWQiLCIiXV19KSxjfSkoKSxPRj0oKCk9PntjbGFzcyBj'@; put 'e2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lcj1hLHRoaXMucmVuZGVyZXI9ZH1nZXQgZGVmYXVsdEhhbmRsZUVsKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRIYW5kbGVFbH1zZXQgZGVmYXVsdEhhbmRsZUVsKGEpe3RoaXMuX2RlZmF1bHRIYW5kbGVFbD1hLHRoaXMuX2N1'@; put 'c3RvbUhhbmRsZUVsfHx0aGlzLm1ha2VFbGVtZW50SGFuZGxlKHRoaXMuX2RlZmF1bHRIYW5kbGVFbCl9Z2V0IGN1c3RvbUhhbmRsZUVsKCl7cmV0dXJuIHRoaXMuX2N1c3RvbUhhbmRsZUVsfXJlZ2lzdGVyQ3VzdG9tSGFuZGxlKGEpe3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZGV0YWNoRHJh'@; put 'Z0xpc3RlbmVycygpLHRoaXMuX2N1c3RvbUhhbmRsZUVsPWEsdGhpcy5tYWtlRWxlbWVudEhhbmRsZSh0aGlzLl9jdXN0b21IYW5kbGVFbCl9dW5yZWdpc3RlckN1c3RvbUhhbmRsZSgpe3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZGV0YWNoRHJhZ0xpc3RlbmVycygpLHRoaXMucmVuZGVyZXIu'@; put 'cmVtb3ZlQ2xhc3ModGhpcy5fY3VzdG9tSGFuZGxlRWwsImRyYWctaGFuZGxlIiksZGVsZXRlIHRoaXMuX2N1c3RvbUhhbmRsZUVsLHRoaXMuX2RlZmF1bHRIYW5kbGVFbCYmdGhpcy5tYWtlRWxlbWVudEhhbmRsZSh0aGlzLl9kZWZhdWx0SGFuZGxlRWwpfW1ha2VFbGVtZW50SGFuZGxlKGEp'@; put 'e3RoaXMuX2RlZmF1bHRIYW5kbGVFbCYmdGhpcy5fZGVmYXVsdEhhbmRsZUVsIT09YSYmdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9kZWZhdWx0SGFuZGxlRWwsImRyYWctaGFuZGxlIiksdGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5hdHRhY2hEcmFnTGlzdGVuZXJzKGEpLHRoaXMu'@; put 'cmVuZGVyZXIuYWRkQ2xhc3MoYSwiZHJhZy1oYW5kbGUiKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoa2IpLGFyKEZvKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksV0o9KCgpPT57Y2xh'@; put 'c3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLnJlbmRlcmVyPWF9ZW50ZXIoKXt0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksImluLWRyYWciKX1leGl0KCl7dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCJpbi1kcmFnIil9fXJldHVybiBjLlx1MDI3'@; put 'NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKEZvKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksR0o9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGllKXt0aGlzLmVsPWEsdGhpcy5kcmFnRXZl'@; put 'bnRMaXN0ZW5lcj1kLHRoaXMuZHJhZ0hhbmRsZVJlZ2lzdHJhcj1oLHRoaXMudmlld0NvbnRhaW5lclJlZj1mLHRoaXMuY2ZyPV8sdGhpcy5pbmplY3Rvcj1ULHRoaXMuZHJhZ2dhYmxlU25hcHNob3Q9Vyx0aGlzLmdsb2JhbERyYWdNb2RlPWllLHRoaXMuZHJhZ1N0YXJ0RW1pdHRlcj1uZXcg'@; put 'RXIsdGhpcy5kcmFnTW92ZUVtaXR0ZXI9bmV3IEVyLHRoaXMuZHJhZ0VuZEVtaXR0ZXI9bmV3IEVyLHRoaXMuZHJhZ09uPSExLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmRyYWdnYWJsZUVsPXRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLmNvbXBvbmVudEZhY3Rvcnk9dGhpcy5jZnIu'@; put 'cmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoWkopfXNldCBkYXRhVHJhbnNmZXIoYSl7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnRGF0YVRyYW5zZmVyPWF9c2V0IGdyb3VwKGEpe3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZ3JvdXA9YX1zZXQgZHJhZ1N0YXJ0RGVsYXkoYSl7Im51bWJlciI9'@; put 'PXR5cGVvZiBhP3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ1N0YXJ0RGVsYXk9YToic3RyaW5nIj09dHlwZW9mIGEmJih0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydERlbGF5PXBhcnNlSW50KGEsMTApfHwwKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmRyYWdIYW5kbGVS'@; put 'ZWdpc3RyYXIuZGVmYXVsdEhhbmRsZUVsPXRoaXMuZHJhZ2dhYmxlRWwsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnRlZC5zdWJzY3JpYmUoYT0+e3RoaXMuZ2xvYmFsRHJhZ01vZGUuZW50ZXIoKSx0aGlzLmRyYWdPbj0hMCx0aGlzLmN1'@; put 'c3RvbUdob3N0fHx0aGlzLmNyZWF0ZURlZmF1bHRHaG9zdChhKSx0aGlzLmRyYWdTdGFydEVtaXR0ZXIuZW1pdChuZXcgUmYoYSkpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ01vdmVkLnN1YnNjcmliZShhPT57dGhpcy5kcmFnTW92ZUVt'@; put 'aXR0ZXIuZW1pdChuZXcgUmYoYSkpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ0VuZGVkLnN1YnNjcmliZShhPT57dGhpcy5nbG9iYWxEcmFnTW9kZS5leGl0KCksdGhpcy5kcmFnT249ITEsdGhpcy5jdXN0b21HaG9zdHx8dGhpcy5kZXN0'@; put 'cm95RGVmYXVsdEdob3N0KCksdGhpcy5kcmFnRW5kRW1pdHRlci5lbWl0KG5ldyBSZihhKSl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpLHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZGV0YWNoRHJhZ0xpc3RlbmVycygpfWNy'@; put 'ZWF0ZURlZmF1bHRHaG9zdChhKXt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNhcHR1cmUodGhpcy5kcmFnZ2FibGVFbCxhKSx0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29tcG9uZW50RmFjdG9yeSwwLHRoaXMuaW5qZWN0b3IsW1t0aGlzLmRyYWdnYWJsZUVs'@; put 'LmNsb25lTm9kZSghMCldXSl9ZGVzdHJveURlZmF1bHRHaG9zdCgpe3RoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpLHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuZGlzY2FyZCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChOaSksdHQoa2Ip'@; put 'LHR0KE9GKSx0dChhcyksdHQoSzApLHR0KEVhKSx0dChSRiksdHQoV0opKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyRHJhZ2dhYmxlIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJklvKGgsWUosNSksMiZhKXtsZXQgZjth'@; put 'aShmPWxpKCkpJiYoZC5jdXN0b21HaG9zdD1mLmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiZHJhZ2dhYmxlIiwhMCkoImJlaW5nLWRyYWdnZWQiLGQuZHJhZ09uKX0saW5wdXRzOntkYXRhVHJhbnNmZXI6WyJjbHJEcmFnZ2FibGUiLCJk'@; put 'YXRhVHJhbnNmZXIiXSxncm91cDpbImNsckdyb3VwIiwiZ3JvdXAiXSxkcmFnU3RhcnREZWxheTpbImNsckRyYWdTdGFydERlbGF5IiwiZHJhZ1N0YXJ0RGVsYXkiXX0sb3V0cHV0czp7ZHJhZ1N0YXJ0RW1pdHRlcjoiY2xyRHJhZ1N0YXJ0IixkcmFnTW92ZUVtaXR0ZXI6ImNsckRyYWdNb3Zl'@; put 'IixkcmFnRW5kRW1pdHRlcjoiY2xyRHJhZ0VuZCJ9LGZlYXR1cmVzOlt0aShba2IsT0YsUkYsV0osaDFdKV19KSxjfSkoKSwkSj0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMu'@; put 'XHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9KSgpO2NvbnN0IHFKPW5ldyBTaSgiRk9DVVNfT05fVklFV19JTklUIiksdXllPXtwcm92aWRlOnFKLHVzZVZhbHVlOiEwfTtsZXQgUEY9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCl7dGhpcy5lbD1hLHRoaXMu'@; put 'cGxhdGZvcm1JZD1kLHRoaXMuZm9jdXNPblZpZXdJbml0PWgsdGhpcy5yZW5kZXJlcj1fLHRoaXMuZGlyZWN0Rm9jdXM9ITAsdGhpcy5kZXN0cm95JD1uZXcgYmUsdGhpcy5faXNFbmFibGVkPXRoaXMuZm9jdXNPblZpZXdJbml0LHRoaXMuZG9jdW1lbnQ9ZixULnJ1bk91dHNpZGVBbmd1bGFy'@; put 'KCgpPT5uMihhLm5hdGl2ZUVsZW1lbnQsImZvY3Vzb3V0IikucGlwZShhaCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5kaXJlY3RGb2N1c3x8KHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiKSx0aGlzLnJl'@; put 'bmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwib3V0bGluZSIsbnVsbCkpfSkpfXNldCBpc0VuYWJsZWQoYSl7dGhpcy5mb2N1c09uVmlld0luaXQmJiJib29sZWFuIj09dHlwZW9mIGEmJih0aGlzLl9pc0VuYWJsZWQ9YSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5mb2N1'@; put 'cygpfW5nT25EZXN0cm95KCl7dGhpcy5kZXN0cm95JC5uZXh0KCl9Zm9jdXMoKXtScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLl9pc0VuYWJsZWQmJnRoaXMuZG9jdW1lbnQmJnRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXRoaXMuZWwubmF0aXZlRWxlbWVudCYmKHRoaXMuZWwubmF0'@; put 'aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXRoaXMuZWwubmF0aXZlRWxlbWVudCYmKHRoaXMuZGlyZWN0Rm9jdXM9ITEsdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIsIi0xIiksdGhpcy5y'@; put 'ZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIm91dGxpbmUiLCJub25lIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCkpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpLHR0KEdzKSx0dChxSiksdHQoTHMp'@; put 'LHR0KEZvKSx0dChObykpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJGb2N1c09uVmlld0luaXQiLCIiXV0saW5wdXRzOntpc0VuYWJsZWQ6WyJjbHJGb2N1c09uVmlld0luaXQiLCJpc0VuYWJsZWQiXX19KSxjfSkoKSxxNT0oKCk9PntjbGFzcyBje31yZXR1'@; put 'cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtwcm92aWRlcnM6W3V5ZV0saW1wb3J0czpbW29vXV19KSxjfSkoKSxkeWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3By'@; put 'ZXZpb3VzRm9jdXNUcmFwcz1bXX1nZXQgY3VycmVudCgpe3JldHVybiB0aGlzLl9jdXJyZW50fXNldCBjdXJyZW50KGEpe3RoaXMuX3ByZXZpb3VzRm9jdXNUcmFwcy5wdXNoKHRoaXMuX2N1cnJlbnQpLHRoaXMuX2N1cnJlbnQ9YX1nZXQgbmJGb2N1c1RyYXBwZXJzKCl7cmV0dXJuIHRoaXMu'@; put 'X3ByZXZpb3VzRm9jdXNUcmFwcy5sZW5ndGh9YWN0aXZhdGVQcmV2aW91c1RyYXBwZXIoKXt0aGlzLl9jdXJyZW50PXRoaXMuX3ByZXZpb3VzRm9jdXNUcmFwcy5wb3AoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7'@; put 'dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCksTXA9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMuZWw9YSx0aGlzLmluamVjdG9yPWQsdGhpcy5mb2N1c1RyYXBzVHJhY2tlcj1oLHRoaXMucmVuZGVyZXI9Zix0aGlz'@; put 'LnBsYXRmb3JtSWQ9Xyx0aGlzLmxvY2FsRm9jdXNFc2NhcGVkPSExLHRoaXMuX2NvbmZpZz17c3RyaWN0OiEwfSx0aGlzLmRvY3VtZW50PXRoaXMuaW5qZWN0b3IuZ2V0KExzKSx0aGlzLmZvY3VzVHJhcHNUcmFja2VyLmN1cnJlbnQ9dGhpc31zZXQgY29uZmlnKGEpe3RoaXMuX2NvbmZpZz1P'@; put 'YmplY3QuYXNzaWduKHRoaXMuX2NvbmZpZywiIj09PWE/e306YSl9Z2V0IHBvdGVudGlhbGx5Rm9jdXNhYmxlRWxzKCl7cmV0dXJuWy4uLnRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaHJlZl06bm90KFt0YWJpbmRleD0iLTEiXSksIGJ1dHRvbjpub3QoW2Rpc2Fi'@; put 'bGVkXSk6bm90KFt0YWJpbmRleD0iLTEiXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSItMSJdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSItMSJdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBb'@; put 'Y29udGVudGVkaXRhYmxlPSJ0cnVlIl06bm90KFt0YWJpbmRleD0iLTEiXSksIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSkgJyldfW5nT25Jbml0KCl7UnModGhpcy5wbGF0Zm9ybUlkKSYmKHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwi'@; put 'dGFiaW5kZXgiLCItMSIpLHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpKX1uZ0FmdGVyVmlld0luaXQoKXtScyh0aGlzLnBsYXRmb3JtSWQpJiYodGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQ9dGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50LHRoaXMucGFyZW50RWxlbWVudD10aGlz'@; put 'LmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCksdGhpcy5hZGRSZWJvdW5kRWxzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnJlbW92ZVJlYm91bmRFbHMoKSx0aGlzLnNldFByZXZpb3VzRm9jdXMoKSx0aGlzLmZvY3VzVHJhcHNUcmFja2VyLmFjdGl2YXRlUHJldmlvdXNUcmFwcGVyKCl9'@; put 'b25Gb2N1c0luKGEpe2NvbnN0IGQ9dGhpcy5lbC5uYXRpdmVFbGVtZW50O3RoaXMuZm9jdXNUcmFwc1RyYWNrZXIuY3VycmVudCE9PXRoaXN8fCFScyh0aGlzLnBsYXRmb3JtSWQpfHx0aGlzLmxvY2FsRm9jdXNFc2NhcGVkfHxkLmNvbnRhaW5zKGEudGFyZ2V0KXx8KGEudGFyZ2V0PT09dGhp'@; put 'cy50b3BSZWJvdW5kRWwmJmQuY29udGFpbnMoYS5yZWxhdGVkVGFyZ2V0KT8odGhpcy5mb2N1c0xhc3RGb2N1c2FibGUoKSx0aGlzLmZvY3VzVHJhcEVsSWZPdXRzaWRlKCkpOmEudGFyZ2V0PT09dGhpcy5ib3R0b21SZWJvdW5kRWwmJmQuY29udGFpbnMoYS5yZWxhdGVkVGFyZ2V0KT8odGhp'@; put 'cy5mb2N1c0ZpcnN0Rm9jdXNhYmxlKCksdGhpcy5mb2N1c1RyYXBFbElmT3V0c2lkZSgpKTp0aGlzLl9jb25maWcuc3RyaWN0P3RoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpOnRoaXMubG9jYWxGb2N1c0VzY2FwZWQ9ITApfXNldFByZXZpb3VzRm9jdXMoKXt0aGlzLnByZXZpb3VzQWN0'@; put 'aXZlRWxlbWVudCYmdGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQuZm9jdXMmJnRoaXMucHJldmlvdXNBY3RpdmVFbGVtZW50LmZvY3VzKCl9Y3JlYXRlRm9jdXNhYmxlT2ZmU2NyZWVuRWwoKXtjb25zdCBhPXRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3JldHVybiB0aGlz'@; put 'LnJlbmRlcmVyLnNldEF0dHJpYnV0ZShhLCJ0YWJpbmRleCIsIjAiKSx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGEsIm9mZnNjcmVlbi1mb2N1cy1yZWJvdW5kZXIiKSxhfWFkZFJlYm91bmRFbHMoKXtpZihScyh0aGlzLnBsYXRmb3JtSWQpKXt0aGlzLnRvcFJlYm91bmRFbD10aGlzLmNyZWF0'@; put 'ZUZvY3VzYWJsZU9mZlNjcmVlbkVsKCksdGhpcy5ib3R0b21SZWJvdW5kRWw9dGhpcy5jcmVhdGVGb2N1c2FibGVPZmZTY3JlZW5FbCgpO2NvbnN0IGE9dGhpcy5lbC5uYXRpdmVFbGVtZW50O3RoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGEucGFyZW50RWxlbWVudCx0aGlzLnRvcFJlYm91'@; put 'bmRFbCxhKSxhLm5leHRTaWJsaW5nP3RoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGEucGFyZW50Tm9kZSx0aGlzLmJvdHRvbVJlYm91bmRFbCxhLm5leHRTaWJsaW5nKTp0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGEucGFyZW50Tm9kZSx0aGlzLmJvdHRvbVJlYm91bmRFbCl9fXJlbW92'@; put 'ZVJlYm91bmRFbHMoKXtScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRvcFJlYm91bmRFbCYmdGhpcy5ib3R0b21SZWJvdW5kRWwmJih0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy50b3BSZWJvdW5kRWwpLHRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmJv'@; put 'dHRvbVJlYm91bmRFbCksZGVsZXRlIHRoaXMudG9wUmVib3VuZEVsLGRlbGV0ZSB0aGlzLmJvdHRvbVJlYm91bmRFbCl9Zm9jdXNGaXJzdEZvY3VzYWJsZSgpe2ZvcihsZXQgYT0wO2E8dGhpcy5wb3RlbnRpYWxseUZvY3VzYWJsZUVscy5sZW5ndGgmJih0aGlzLmZpcnN0Rm9jdXNhYmxlRWw9'@; put 'dGhpcy5mb2N1c0VsZW1lbnQodGhpcy5wb3RlbnRpYWxseUZvY3VzYWJsZUVsc1thXSksIXRoaXMuZmlyc3RGb2N1c2FibGVFbCk7YSsrKTt9Zm9jdXNMYXN0Rm9jdXNhYmxlKCl7Zm9yKGxldCBhPXRoaXMucG90ZW50aWFsbHlGb2N1c2FibGVFbHMubGVuZ3RoLTE7YT49MCYmKHRoaXMubGFz'@; put 'dEZvY3VzYWJsZUVsPXRoaXMuZm9jdXNFbGVtZW50KHRoaXMucG90ZW50aWFsbHlGb2N1c2FibGVFbHNbYV0pLCF0aGlzLmxhc3RGb2N1c2FibGVFbCk7YS0tKTt9Zm9jdXNUcmFwRWxJZk91dHNpZGUoKXt0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxl'@; put 'bWVudCl8fHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpfWZvY3VzRWxlbWVudChhKXtyZXR1cm4gYSYmYS5mb2N1cyYmKGEuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YSk/YTpudWxsfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KSh0dChOaSksdHQoRWEpLHR0KGR5ZSksdHQoRm8pLHR0KEdzKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsckZvY3VzVHJhcCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJmb2N1c2luIixmdW5jdGlvbihmKXtyZXR1cm4gZC5v'@; put 'bkZvY3VzSW4oZil9LDAsZmYpfSxpbnB1dHM6e2NvbmZpZzpbImNsckZvY3VzVHJhcCIsImNvbmZpZyJdfX0pLGN9KSgpLHlFPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5c'@; put 'dTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvb11dfSksY30pKCksZnllPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl90ZXh0Q29udGVudENoYW5nZT1uZXcgYmV9Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuX3RleHRDb250ZW50fXNldCB0ZXh0Q29udGVudChhKXt0aGlz'@; put 'Ll90ZXh0Q29udGVudD1hLHRoaXMuX3RleHRDb250ZW50Q2hhbmdlLm5leHQoYSl9Z2V0IHRleHRDb250ZW50Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX3RleHRDb250ZW50Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxweWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7'@; put 'aW1wb3J0czpbW29vXV19KSxjfSkoKSxteWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLHNhLHhiXV19KSxjfSkoKSxkaD0o'@; put 'KCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5lbD1hLHRoaXMucmVuZGVyZXI9ZCx0aGlzLmNsckxvYWRpbmdDaGFuZ2U9bmV3IEVyKCExKSx0aGlzLmJ1dHRvblN0YXRlPVV1LHRoaXMuc3RhdGU9VXUuREVGQVVMVH1sb2FkaW5nU3RhdGVDaGFuZ2UoYSl7aWYoYSE9PXRoaXMu'@; put 'c3RhdGUpe3N3aXRjaCh0aGlzLnN0YXRlPWEsYSl7Y2FzZSBVdS5ERUZBVUxUOnRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ3aWR0aCIpLHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0cmFuc2Zvcm0iKSx0'@; put 'aGlzLmRpc2FibGVkfHx0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRpc2FibGVkIik7YnJlYWs7Y2FzZSBVdS5MT0FESU5HOnRoaXMuc2V0RXhwbGljaXRCdXR0b25XaWR0aCgpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRp'@; put 'dmVFbGVtZW50LCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGV6KDApIiksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkaXNhYmxlZCIsIiIpO2JyZWFrO2Nhc2UgVXUuU1VDQ0VTUzp0aGlzLnNldEV4cGxpY2l0QnV0dG9uV2lkdGgoKTticmVhaztjYXNl'@; put 'IFV1LkVSUk9SOnRoaXMubG9hZGluZ1N0YXRlQ2hhbmdlKFV1LkRFRkFVTFQpfXRoaXMuY2xyTG9hZGluZ0NoYW5nZS5lbWl0KGEpfX1zZXRFeHBsaWNpdEJ1dHRvbldpZHRoKCl7aWYodGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGll'@; put 'bnRSZWN0KXtjb25zdCBhPXRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPU1hdGgubWF4KDQyLGEud2lkdGgpO3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ3aWR0aCIsYCR7ZH1weGApfX19cmV0dXJuIGMuXHUwMjc1'@; put 'ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpLHR0KEZvKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImJ1dHRvbiIsImNsckxvYWRpbmciLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJkaXNhYmxl'@; put 'ZCIsZC5kaXNhYmxlZD8iIjpudWxsKX0saW5wdXRzOntkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntjbHJMb2FkaW5nQ2hhbmdlOiJjbHJMb2FkaW5nQ2hhbmdlIn0sZmVhdHVyZXM6W3RpKFt7cHJvdmlkZTp2Yix1c2VFeGlzdGluZzpjfV0pXSxhdHRyczpnN2UsbmdDb250ZW50U2Vs'@; put 'ZWN0b3JzOkVvLGRlY2xzOjQsdmFyczo0LGNvbnN0czpbWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIiwic3Bpbm5lci1jaGVjayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihh'@; put 'LGQpezEmYSYmKEFpKCksVnIoMCwwKSxKZSgxLG03ZSwyLDEsInNwYW4iLDEpLEplKDIsdjdlLDIsMSwic3BhbiIsMSksSmUoMyxfN2UsMiwxLCJzcGFuIiwxKSx6cigpKSwyJmEmJihSZSgibmdTd2l0Y2giLGQuc3RhdGUpLENlKDEpLFJlKCJuZ1N3aXRjaENhc2UiLGQuYnV0dG9uU3RhdGUu'@; put 'TE9BRElORyksQ2UoMSksUmUoIm5nU3dpdGNoQ2FzZSIsZC5idXR0b25TdGF0ZS5TVUNDRVNTKSxDZSgxKSxSZSgibmdTd2l0Y2hDYXNlIixkLmJ1dHRvblN0YXRlLkRFRkFVTFQpKX0sZGVwZW5kZW5jaWVzOltuZCx0aF0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbYTEoImRl'@; put 'ZmF1bHRCdXR0b24iLFtmYygiOmVudGVyIixbX3Moe29wYWNpdHk6MH0pLHJ1KCIyMDBtcyAxMDBtcyBlYXNlLWluIixfcyh7b3BhY2l0eToxfSkpXSksZmMoIjpsZWF2ZSIsW19zKHtvcGFjaXR5OjB9KV0pXSksYTEoInNwaW5uZXIiLFtmYygiOmVudGVyIixbX3Moe29wYWNpdHk6MH0pLHJ1'@; put 'KCIyMDBtcyAxMDBtcyBlYXNlLWluIixfcyh7b3BhY2l0eToxfSkpXSksZmMoIjpsZWF2ZSIsW19zKHtvcGFjaXR5OjF9KSxydSgiMTAwbXMgZWFzZS1vdXQiLF9zKHtvcGFjaXR5OjB9KSldKV0pLGExKCJ2YWxpZGF0ZWQiLFtmYygiOmVudGVyIixbcnUoIjYwMG1zIixGbWUoW19zKHt0cmFu'@; put 'c2Zvcm06InNjYWxlKDAsMCkiLG9mZnNldDowfSksX3Moe29wYWNpdHk6MSxvZmZzZXQ6LjJ9KSxfcyh7dHJhbnNmb3JtOiJzY2FsZSgxLjIsMS4yKSIsb2Zmc2V0Oi40fSksX3Moe3RyYW5zZm9ybToic2NhbGUoLjksLjkpIixvZmZzZXQ6LjZ9KSxfcyh7dHJhbnNmb3JtOiJzY2FsZSgxLDEp'@; put 'IixvZmZzZXQ6MX0pXSkpXSksZmMoIjpsZWF2ZSIsW19zKHtvcGFjaXR5OjF9KSxydSgiMTAwbXMgZWFzZS1vdXQiLF9zKHtvcGFjaXR5OjB9KSldKV0pXX19KSxjfSkoKSxfeWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9'@; put 'LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vXV19KSxjfSkoKSxieWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKERLKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMu'@; put 'XHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbX3llLG15ZV19KSxjfSkoKSx5eWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3Jz'@; put 'OltbIm5nLWNvbXBvbmVudCJdXSxkZWNsczowLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpe30sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksd0U9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZp'@; put 'KHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7fSksY30pKCksd3llPTAsYWQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPSJjbHItZm9ybS1jb250cm9sLSIrICsrd3llLHRoaXMuX2lkQ2hhbmdlPW5ldyBUZSh0aGlzLl9pZCl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lk'@; put 'fXNldCBpZChhKXt0aGlzLl9pZD1hLHRoaXMuX2lkQ2hhbmdlLm5leHQoYSl9Z2V0IGlkQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2lkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0'@; put 'b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxDeWU9MCxLNT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5faWQ9ImNsci1mb3JtLWNvbnRhaW5lci0iKyArK0N5ZSx0aGlzLl9pZENoYW5nZT1uZXcgVGUodGhpcy5faWQpfWdldCBpZCgpe3JldHVybiB0aGlzLl9p'@; put 'ZH1zZXQgaWQoYSl7dGhpcy5faWQ9YSx0aGlzLl9pZENoYW5nZS5uZXh0KGEpfWdldCBpZENoYW5nZSgpe3JldHVybiB0aGlzLl9pZENoYW5nZS5hc09ic2VydmFibGUoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7'@; put 'dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7bGV0IEZGPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLmNvbnRyb2xJZFNlcnZpY2U9YSx0aGlzLmNvbnRhaW5lcklkU2VydmljZT1kLHRoaXMuY29udHJvbElkU3VmZml4PSJhYnN0cmFjdCJ9Z2V0IGlkKCl7'@; put 'cmV0dXJuIHRoaXMuY29udGFpbmVySWRTZXJ2aWNlP2Ake3RoaXMuY29udGFpbmVySWRTZXJ2aWNlLmlkfS0ke3RoaXMuY29udHJvbElkU3VmZml4fWA6dGhpcy5jb250cm9sSWRTZXJ2aWNlP2Ake3RoaXMuY29udHJvbElkU2VydmljZS5pZH0tJHt0aGlzLmNvbnRyb2xJZFN1ZmZpeH1gOm51'@; put 'bGx9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGFkLDgpLHR0KEs1LDgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6Y30pLGN9KSgpLFN5ZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgRkZ7Y29uc3RydWN0b3IoYSxkKXtzdXBlcihhLGQpLHRoaXMu'@; put 'Y29udHJvbElkU2VydmljZT1hLHRoaXMuY29udGFpbmVySWRTZXJ2aWNlPWQsdGhpcy5jb250cm9sSWRTdWZmaXg9ImVycm9yIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYWQsOCksdHQoSzUsOCkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpj'@; put 'LHNlbGVjdG9yczpbWyJjbHItY29udHJvbC1lcnJvciJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKFRyKCJpZCIsZC5pZCksZHIoImNsci1zdWJ0ZXh0IiwhMCkpfSxmZWF0dXJlczpbZW9dLG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoxLHZhcnM6'@; put 'MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksa3IoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxIRj0oKCk9PntjbGFzcyBjIGV4dGVuZHMgRkZ7Y29uc3RydWN0b3IoYSxkKXtzdXBlcihhLGQpLHRoaXMuY29udHJvbElkU2VydmljZT1hLHRoaXMuY29udGFpbmVySWRT'@; put 'ZXJ2aWNlPWQsdGhpcy5jb250cm9sSWRTdWZmaXg9ImhlbHBlciJ9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGFkLDgpLHR0KEs1LDgpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWNvbnRyb2wtaGVscGVyIl1d'@; put 'LGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYoVHIoImlkIixkLmlkKSxkcigiY2xyLXN1YnRleHQiLCEwKSl9LGZlYXR1cmVzOltlb10sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWko'@; put 'KSxrcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGswPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9jb250cm9sQ2hhbmdlcz1uZXcgYmUsdGhpcy5faGVscGVycz1uZXcgYmV9Z2V0IGNvbnRyb2xDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NvbnRyb2xDaGFuZ2VzLmFz'@; put 'T2JzZXJ2YWJsZSgpfWdldCBoZWxwZXJzQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2hlbHBlcnMuYXNPYnNlcnZhYmxlKCl9c2V0Q29udHJvbChhKXt0aGlzLl9jb250cm9sQ2hhbmdlcy5uZXh0KGEpfXNldEhlbHBlcnMoYSl7dGhpcy5faGVscGVycy5uZXh0KGEpfX1yZXR1cm4gYy5cdTAyNzVm'@; put 'YWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKTt2YXIgQTA9ZnVuY3Rpb24oYyl7cmV0dXJuIGMuTk9ORT0iTk9ORSIsYy5WQUxJRD0iVkFMSUQiLGMuSU5WQUxJRD0iSU5WQUxJRCIsY30o'@; put 'QTB8fHt9KTtsZXQgbGQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5nQ29udHJvbFNlcnZpY2U9YSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5fc3RhdHVzQ2hhbmdlcz1uZXcgVGUoQTAuTk9ORSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5uZ0NvbnRyb2xT'@; put 'ZXJ2aWNlLmNvbnRyb2xDaGFuZ2VzLnN1YnNjcmliZShkPT57ZCYmKHRoaXMuY29udHJvbD1kLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMudHJpZ2dlclN0YXR1c0NoYW5nZSgpfSkpKX0pKX1nZXQgc3RhdHVz'@; put 'Q2hhbmdlcygpe3JldHVybiB0aGlzLl9zdGF0dXNDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX10cmlnZ2VyU3RhdHVzQ2hhbmdlKCl7aWYodGhpcy5jb250cm9sKXtjb25zdCBhPUEwW3Ro'@; put 'aXMuY29udHJvbC5zdGF0dXNdO3RoaXMuX3N0YXR1c0NoYW5nZXMubmV4dChbIlZBTElEIiwiSU5WQUxJRCJdLmluY2x1ZGVzKGEpP2E6QTAuTk9ORSl9fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihrMCkpfSxjLlx1MDI3NXByb3Y9aHIoe3Rv'@; put 'a2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO3ZhciBYNT1mdW5jdGlvbihjKXtyZXR1cm4gYy5WRVJUSUNBTD0idmVydGljYWwiLGMuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsYy5DT01QQUNUPSJjb21wYWN0IixjfShYNXx8e30pO2xldCBPZj0oKCk9PntjbGFzcyBje2NvbnN0'@; put 'cnVjdG9yKCl7dGhpcy5taW5MYWJlbFNpemU9MSx0aGlzLm1heExhYmVsU2l6ZT0xMix0aGlzLmxheW91dD1YNS5IT1JJWk9OVEFMLHRoaXMubGF5b3V0VmFsdWVzPU9iamVjdC5rZXlzKFg1KS5tYXAoYT0+WDVbYV0pLHRoaXMuX2xhYmVsU2l6ZT0yfWdldCBsYWJlbFNpemUoKXtyZXR1cm4g'@; put 'dGhpcy5fbGFiZWxTaXplfXNldCBsYWJlbFNpemUoYSl7dGhpcy5sYWJlbFNpemVJc1ZhbGlkKGEpJiYodGhpcy5fbGFiZWxTaXplPWEpfWdldCBsYXlvdXRDbGFzcygpe3JldHVybmBjbHItZm9ybS0ke3RoaXMubGF5b3V0fWB9aXNWZXJ0aWNhbCgpe3JldHVybiB0aGlzLmxheW91dD09PVg1'@; put 'LlZFUlRJQ0FMfWlzSG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLmxheW91dD09PVg1LkhPUklaT05UQUx9aXNDb21wYWN0KCl7cmV0dXJuIHRoaXMubGF5b3V0PT09WDUuQ09NUEFDVH1pc1ZhbGlkKGEpe3JldHVybiB0aGlzLmxheW91dFZhbHVlcy5pbmRleE9mKGEpPi0xfWxhYmVsU2l6ZUlz'@; put 'VmFsaWQoYSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYSkmJmE+PXRoaXMubWluTGFiZWxTaXplJiZhPD10aGlzLm1heExhYmVsU2l6ZX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMu'@; put 'XHUwMjc1ZmFjfSksY30pKCksVXM9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMuY29udHJvbElkU2VydmljZT1hLHRoaXMubGF5b3V0U2VydmljZT1kLHRoaXMubmdDb250cm9sU2VydmljZT1oLHRoaXMucmVuZGVyZXI9Zix0aGlzLmVsPV8sdGhpcy5lbmFibGVH'@; put 'cmlkPSEwLHRoaXMuc3Vic2NyaXB0aW9ucz1bXX1nZXQgbGFiZWxUZXh0KCl7cmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudCYmdGhpcy5lbC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50fW5nT25Jbml0KCl7KHRoaXMuY29udHJvbElkU2VydmljZXx8dGhpcy5uZ0NvbnRyb2xTZXJ2aWNl'@; put 'KSYmdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImNsci1jb250cm9sLWxhYmVsIiksdGhpcy5lbmFibGVHcmlkJiZ0aGlzLmxheW91dFNlcnZpY2UmJiF0aGlzLmxheW91dFNlcnZpY2UuaXNWZXJ0aWNhbCgpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQmJnRo'@; put 'aXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZigiY2xyLWNvbCIpPDAmJih0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiY2xyLWNvbC0xMiIpLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGBjbHItY29s'@; put 'LW1kLSR7dGhpcy5sYXlvdXRTZXJ2aWNlLmxhYmVsU2l6ZX1gKSksdGhpcy5jb250cm9sSWRTZXJ2aWNlJiYhdGhpcy5mb3JBdHRyJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWRDaGFuZ2Uuc3Vic2NyaWJlKGE9PnRoaXMuZm9yQXR0cj1hKSl9bmdP'@; put 'bkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfWRpc2FibGVHcmlkKCl7dGhpcy5lbmFibGVHcmlkPSExfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChhZCw4KSx0dChPZiw4KSx0dChrMCw4'@; put 'KSx0dChGbyksdHQoTmkpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1sibGFiZWwiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJmb3IiLGQuZm9yQXR0cil9LGlucHV0czp7Zm9yQXR0cjpbImZvciIsImZvckF0dHIiXX19KSxj'@; put 'fSkoKSxNeWU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEZGe2NvbnN0cnVjdG9yKGEsZCl7c3VwZXIoYSxkKSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9YSx0aGlzLmNvbnRhaW5lcklkU2VydmljZT1kLHRoaXMuY29udHJvbElkU3VmZml4PSJzdWNjZXNzIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1'@; put 'bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYWQsOCksdHQoSzUsOCkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYoVHIoImlkIixkLmlkKSxk'@; put 'cigiY2xyLXN1YnRleHQiLCEwKSl9LGZlYXR1cmVzOltlb10sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGNkPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0'@; put 'b3IoYSl7dGhpcy5sYXlvdXRTZXJ2aWNlPWEsdGhpcy5jbGFzc05hbWU9IiJ9Y29udHJvbENsYXNzKGE9QTAuTk9ORSxkPSExLGg9IiIpe2NvbnN0IGY9W3RoaXMuY2xhc3NOYW1lLGhdO3N3aXRjaChhKXtjYXNlIEEwLlZBTElEOmYucHVzaCgiY2xyLXN1Y2Nlc3MiKTticmVhaztjYXNlIEEw'@; put 'LklOVkFMSUQ6Zi5wdXNoKCJjbHItZXJyb3IiKX1yZXR1cm4gZCYmdGhpcy5sYXlvdXRTZXJ2aWNlJiYtMT09PXRoaXMuY2xhc3NOYW1lLmluZGV4T2YoImNsci1jb2wiKSYmZi5wdXNoKGBjbHItY29sLW1kLSR7dGhpcy5sYXlvdXRTZXJ2aWNlLm1heExhYmVsU2l6ZS10aGlzLmxheW91dFNl'@; put 'cnZpY2UubGFiZWxTaXplfSBjbHItY29sLTEyYCksZi5qb2luKCIgIikudHJpbSgpfWluaXRDb250cm9sQ2xhc3MoYSxkKXtkJiZkLmNsYXNzTmFtZSYmKHRoaXMuY2xhc3NOYW1lPWQuY2xhc3NOYW1lLGQuY2xhc3NOYW1lLnNwbGl0KCIgIikuZm9yRWFjaChmPT57Zi5zdGFydHNXaXRoKCJj'@; put 'bHItY29sIikmJmEucmVtb3ZlQ2xhc3MoZCxmKX0pKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoT2YsOCkpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLEE4PSgoKT0+e2NsYXNzIGN7Y29u'@; put 'c3RydWN0b3IoYSxkLGgsZil7dGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9YSx0aGlzLmxheW91dFNlcnZpY2U9ZCx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9aCx0aGlzLm5nQ29udHJvbFNlcnZpY2U9Zix0aGlzLl9keW5hbWljPSExLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1'@; put 'YnNjcmlwdGlvbnMucHVzaCh0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShfPT57dGhpcy5zdGF0ZT1fLHRoaXMudXBkYXRlSGVscGVycygpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubmdDb250cm9sU2VydmljZS5jb250cm9sQ2hh'@; put 'bmdlcy5zdWJzY3JpYmUoXz0+e3RoaXMuY29udHJvbD1ffSkpfWdldCBzaG93SGVscGVyKCl7cmV0dXJuISF0aGlzLmNvbnRyb2xIZWxwZXJDb21wb25lbnQmJighIXRoaXMuY29udHJvbEhlbHBlckNvbXBvbmVudCYmKCF0aGlzLnRvdWNoZWR8fHRoaXMuc3RhdGU9PT1BMC5OT05FKXx8IXRo'@; put 'aXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQmJnRoaXMuc3RhdGU9PT1BMC5WQUxJRHx8IXRoaXMuY29udHJvbEVycm9yQ29tcG9uZW50JiZ0aGlzLnN0YXRlPT09QTAuSU5WQUxJRCl9Z2V0IHNob3dWYWxpZCgpe3JldHVybiB0aGlzLnRvdWNoZWQmJnRoaXMuc3RhdGU9PT1BMC5WQUxJRCYm'@; put 'ISF0aGlzLmNvbnRyb2xTdWNjZXNzQ29tcG9uZW50fWdldCBzaG93SW52YWxpZCgpe3JldHVybiB0aGlzLnRvdWNoZWQmJnRoaXMuc3RhdGU9PT1BMC5JTlZBTElEJiYhIXRoaXMuY29udHJvbEVycm9yQ29tcG9uZW50fWdldCB0b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD8udG91Y2hl'@; put 'ZH1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnVwZGF0ZUhlbHBlcnMoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9Y29udHJvbENsYXNzKCl7cmV0dXJuIHRoaXMuY29udHJvbENsYXNzU2VydmljZS5jb250cm9sQ2xhc3Mo'@; put 'IXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQmJnRoaXMuc3RhdGU9PT1BMC5WQUxJRHx8IXRoaXMudG91Y2hlZD9BMC5OT05FOnRoaXMuc3RhdGUsdGhpcy5hZGRHcmlkKCkpfWFkZEdyaWQoKXtyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlJiYhdGhpcy5sYXlvdXRTZXJ2aWNlLmlzVmVy'@; put 'dGljYWwoKX11cGRhdGVIZWxwZXJzKCl7dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLm5nQ29udHJvbFNlcnZpY2Uuc2V0SGVscGVycyh7c2hvdzp0aGlzLnNob3dJbnZhbGlkfHx0aGlzLnNob3dIZWxwZXJ8fHRoaXMuc2hvd1ZhbGlkLHNob3dJbnZhbGlkOnRoaXMuc2hvd0ludmFsaWQs'@; put 'c2hvd0hlbHBlcjp0aGlzLnNob3dIZWxwZXIsc2hvd1ZhbGlkOnRoaXMuc2hvd1ZhbGlkfSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGxkKSx0dChPZiw4KSx0dChjZCksdHQoazApKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6Yyxjb250ZW50'@; put 'UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiYoSW8oaCxVcyw1KSxJbyhoLE15ZSw1KSxJbyhoLFN5ZSw1KSxJbyhoLEhGLDUpKSwyJmEpe2xldCBmO2FpKGY9bGkoKSkmJihkLmxhYmVsPWYuZmlyc3QpLGFpKGY9bGkoKSkmJihkLmNvbnRyb2xTdWNjZXNzQ29tcG9uZW50PWYuZmly'@; put 'c3QpLGFpKGY9bGkoKSkmJihkLmNvbnRyb2xFcnJvckNvbXBvbmVudD1mLmZpcnN0KSxhaShmPWxpKCkpJiYoZC5jb250cm9sSGVscGVyQ29tcG9uZW50PWYuZmlyc3QpfX19KSxjfSkoKTtjbGFzcyBDRXtjb25zdHJ1Y3RvcihsLGEsZD0wKXtpZih0aGlzLmluamVjdG9yPWEuaW5qZWN0b3Is'@; put 'IXRoaXMuaW5qZWN0b3IuZ2V0KGwsbnVsbCkpe2NvbnN0IGg9dGhpcy5pbmplY3Rvci5nZXQoSzApLGY9dGhpcy5pbmplY3Rvci5nZXQoTmkpO2EuY3JlYXRlQ29tcG9uZW50KGgucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoeXllKSk7Y29uc3QgXz1oLnJlc29sdmVDb21wb25lbnRGYWN0b3J5'@; put 'KGwpLFQ9W107VFtkXT1bZi5uYXRpdmVFbGVtZW50XTtjb25zdCBXPWEuY3JlYXRlQ29tcG9uZW50KF8sdm9pZCAwLHZvaWQgMCxUKTthLnJlbW92ZSgwKSxXLmluc3RhbmNlLl9keW5hbWljPSEwLHRoaXMuaW5qZWN0b3I9Vy5pbmplY3Rvcn19Z2V0KGwsYSl7cmV0dXJuIHRoaXMuaW5qZWN0'@; put 'b3IuZ2V0KGwsYSl9fWxldCBORj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fdG91Y2hlZD1uZXcgYmV9Z2V0IHRvdWNoZWRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fdG91Y2hlZC5hc09ic2VydmFibGUoKX1tYXJrQXNUb3VjaGVkKCl7dGhpcy5fdG91Y2hlZC5uZXh0KCl9fXJl'@; put 'dHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLFQ4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQpe3RoaXMudmNyPWEsdGhpcy53cmFwcGVy'@; put 'VHlwZT1kLHRoaXMubmdDb250cm9sPWYsdGhpcy5pbmRleD0wLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnJlbmRlcmVyPV8sdGhpcy5lbD1UO3RyeXt0aGlzLm5nQ29udHJvbFNlcnZpY2U9aC5nZXQoazApLHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPWguZ2V0KGxkKSx0aGlzLmNv'@; put 'bnRyb2xDbGFzc1NlcnZpY2U9aC5nZXQoY2QpLHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlPWguZ2V0KE5GKX1jYXRjaHt9dGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlJiZ0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2UuaW5pdENvbnRyb2xDbGFzcyhfLFQubmF0aXZlRWxlbWVudCksdGhpcy5tYXJr'@; put 'Q29udHJvbFNlcnZpY2UmJnRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlLnRvdWNoZWRDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5tYXJrQXNUb3VjaGVkKCl9KSksdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0'@; put 'aGlzLm5nQ29udHJvbFNlcnZpY2UuaGVscGVyc0NoYW5nZS5zdWJzY3JpYmUoVz0+e3RoaXMuc2V0QXJpYURlc2NyaWJlZEJ5KFcpfSkpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQoYSl7dGhpcy5faWQ9YSx0aGlzLmNvbnRyb2xJZFNlcnZpY2UmJih0aGlzLmNvbnRyb2xJZFNl'@; put 'cnZpY2UuaWQ9YSl9bmdPbkluaXQoKXt0aGlzLl9jb250YWluZXJJbmplY3Rvcj1uZXcgQ0UodGhpcy53cmFwcGVyVHlwZSx0aGlzLnZjcix0aGlzLmluZGV4KSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9dGhpcy5fY29udGFpbmVySW5qZWN0b3IuZ2V0KGFkKTt0cnl7dGhpcy5jb250YWluZXJJ'@; put 'ZFNlcnZpY2U9dGhpcy5fY29udGFpbmVySW5qZWN0b3IuZ2V0KEs1KX1jYXRjaHt9dGhpcy5faWQ/dGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkPXRoaXMuX2lkOnRoaXMuX2lkPXRoaXMuY29udHJvbElkU2VydmljZS5pZCx0aGlzLm5nQ29udHJvbFNlcnZpY2UmJnRoaXMubmdDb250cm9sU2Vy'@; put 'dmljZS5zZXRDb250cm9sKHRoaXMubmdDb250cm9sKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9dHJpZ2dlclZhbGlkYXRpb24oKXt0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZSYmdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZp'@; put 'Y2UudHJpZ2dlclN0YXR1c0NoYW5nZSgpfWdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihhLGQpe3RyeXtyZXR1cm4gdGhpcy5fY29udGFpbmVySW5qZWN0b3IuZ2V0KGEsZCl9Y2F0Y2h7cmV0dXJuIGR9fW1hcmtBc1RvdWNoZWQoKXt0aGlzLm5nQ29udHJvbC5jb250cm9sLm1hcmtBc1RvdWNo'@; put 'ZWQoKSx0aGlzLm5nQ29udHJvbC5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKX1zZXRBcmlhRGVzY3JpYmVkQnkoYSl7aWYoYS5zaG93KXtjb25zdCBkPXRoaXMuZ2V0QXJpYURlc2NyaWJlZEJ5SWQoYSk7aWYobnVsbCE9PWQpcmV0dXJuIHZvaWQgdGhpcy5yZW5kZXJlci5zZXRB'@; put 'dHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJhcmlhLWRlc2NyaWJlZGJ5IixkKX10aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImFyaWEtZGVzY3JpYmVkYnkiKX1nZXRBcmlhRGVzY3JpYmVkQnlJZChhKXtsZXQgZD0iaGVscGVyIjty'@; put 'ZXR1cm4gYS5zaG93SW52YWxpZD9kPSJlcnJvciI6YS5zaG93VmFsaWQmJihkPSJzdWNjZXNzIiksdGhpcy5jb250YWluZXJJZFNlcnZpY2U/dGhpcy5jb250YWluZXJJZFNlcnZpY2UuaWQuY29uY2F0KCItIixkKTp0aGlzLmNvbnRyb2xJZFNlcnZpY2U/dGhpcy5jb250cm9sSWRTZXJ2aWNl'@; put 'LmlkLmNvbmNhdCgiLSIsZCk6bnVsbH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYXMpLHR0KE9tKSx0dChFYSksdHQoenUpLHR0KEZvKSx0dChOaSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1'@; put 'bmN0aW9uKGEsZCl7MSZhJiZ4dCgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gZC50cmlnZ2VyVmFsaWRhdGlvbigpfSksMiZhJiZ0MSgiaWQiLGQuaWQpfSxpbnB1dHM6e2lkOiJpZCJ9fSksY30pKCksWEo9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMubGF5b3V0U2Vydmlj'@; put 'ZT1hLHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlPWR9c2V0IGxhYmVsU2l6ZShhKXtjb25zdCBkPXBhcnNlSW50KGEsMTApfHwyO3RoaXMubGF5b3V0U2VydmljZS5sYWJlbFNpemU9ZH1vbkZvcm1TdWJtaXQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoKX1tYXJrQXNUb3VjaGVkKCl7dGhpcy5tYXJr'@; put 'Q29udHJvbFNlcnZpY2UubWFya0FzVG91Y2hlZCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChPZiksdHQoTkYpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyRm9ybSIsIiJdXSxjb250ZW50UXVlcmllczpm'@; put 'dW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLFVzLDUpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQubGFiZWxzPWYpfX0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJzdWJtaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25Gb3JtU3VibWl0KCl9KSwy'@; put 'JmEmJmRyKCJjbHItZm9ybSIsITApKCJjbHItZm9ybS1ob3Jpem9udGFsIixkLmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkpKCJjbHItZm9ybS1jb21wYWN0IixkLmxheW91dFNlcnZpY2UuaXNDb21wYWN0KCkpfSxpbnB1dHM6e2xhYmVsU2l6ZTpbImNsckxhYmVsU2l6ZSIsImxhYmVs'@; put 'U2l6ZSJdfSxmZWF0dXJlczpbdGkoW09mLE5GXSldfSksY30pKCksWWM9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKG8xLHMxKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxj'@; put 'Llx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLHNhXV19KSxjfSkoKTtjb25zdCBWRj1uZXcgU2koIklTX1RPR0dMRSIpLEF5ZT17cHJvdmlkZTpWRix1c2VGYWN0b3J5OmZ1bmN0aW9uIGt5ZSgpe3JldHVybiBuZXcgVGUoITEpfX07bGV0IFQwPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3Io'@; put 'YSl7dGhpcy5fZHluYW1pYz0hMSx0aGlzLnRvZ2dsZT0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goYS5zdWJzY3JpYmUoZD0+e3RoaXMudG9nZ2xlPWR9KSl9bmdPbkluaXQoKXt0aGlzLmxhYmVsJiZ0aGlzLmxhYmVsLmRpc2FibGVHcmlkKCl9bmdP'@; put 'bkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChWRikpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItY2hlY2tib3gt'@; put 'd3JhcHBlciJdLFsiY2xyLXRvZ2dsZS13cmFwcGVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJklvKGgsVXMsNyksMiZhKXtsZXQgZjthaShmPWxpKCkpJiYoZC5sYWJlbD1mLmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7'@; put 'MiZhJiZkcigiY2xyLWNoZWNrYm94LXdyYXBwZXIiLCFkLnRvZ2dsZSkoImNsci10b2dnbGUtd3JhcHBlciIsZC50b2dnbGUpfSxmZWF0dXJlczpbdGkoW2FkLEF5ZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6dzdlLGRlY2xzOjMsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6'@; put 'ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSh5N2UpLGtyKDApLGtyKDEsMSksSmUoMixiN2UsMSwwLCJsYWJlbCIsMCkpLDImYSYmKENlKDIpLFJlKCJuZ0lmIiwhZC5sYWJlbCkpfSxkZXBlbmRlbmNpZXM6W1ppLFVzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxEMD0oKCk9PntjbGFzcyBjIGV4'@; put 'dGVuZHMgVDh7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQpe3N1cGVyKGEsVDAsZCxoLGYsXyksdGhpcy50b2dnbGU9VH1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCk7Y29uc3QgYT10aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihWRixudWxsKTthJiZudWxsIT09dGhpcy50b2dnbGUm'@; put 'JmEubmV4dCghMCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGFzKSx0dChFYSksdHQoenUsMTApLHR0KEZvKSx0dChOaSksUDQoImNsclRvZ2dsZSIpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyQ2hlY2ti'@; put 'b3giLCIiXSxbIiIsImNsclRvZ2dsZSIsIiJdXSxmZWF0dXJlczpbZW9dfSksY30pKCksRDg9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEE4e2NvbnN0cnVjdG9yKGEsZCxoLGYpe3N1cGVyKGYsYSxkLGgpLHRoaXMubGF5b3V0U2VydmljZT1hLHRoaXMuY29udHJvbENsYXNzU2VydmljZT1kLHRo'@; put 'aXMubmdDb250cm9sU2VydmljZT1oLHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPWYsdGhpcy5pbmxpbmU9ITF9Z2V0IGNscklubGluZSgpe3JldHVybiB0aGlzLmlubGluZX1zZXQgY2xySW5saW5lKGEpe3RoaXMuaW5saW5lPSJzdHJpbmciPT10eXBlb2YgYT8iZmFsc2UiIT09YTohIWF9'@; put 'bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zZXRBcmlhUm9sZXMoKX1zZXRBcmlhUm9sZXMoKXt0aGlzLnJvbGU9dGhpcy5jaGVja2JveGVzLmxlbmd0aD8iZ3JvdXAiOm51bGx9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KE9mLDgpLHR0KGNk'@; put 'KSx0dChrMCksdHQobGQpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWNoZWNrYm94LWNvbnRhaW5lciJdLFsiY2xyLXRvZ2dsZS1jb250YWluZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmSW8oaCxEMCw1KSwyJmEpe2xldCBm'@; put 'O2FpKGY9bGkoKSkmJihkLmNoZWNrYm94ZXM9Zil9fSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKFRyKCJyb2xlIixkLnJvbGUpLGRyKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PWQuY29udHJvbD9u'@; put 'dWxsOmQuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLGQuYWRkR3JpZCgpKSl9LGlucHV0czp7Y2xySW5saW5lOiJjbHJJbmxpbmUifSxmZWF0dXJlczpbdGkoW2xkLGswLGNkLEs1XSksZW9dLG5nQ29udGVudFNlbGVjdG9yczpUN2UsZGVjbHM6MTAsdmFyczo5LGNvbnN0czpbWzQsIm5n'@; put 'SWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsImNsci1zdWJ0ZXh0LXdyYXBwZXIiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlkZGVuIiwidHJ1'@; put 'ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJh'@; put 'cmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoQTdl'@; put 'KSxrcigwKSxKZSgxLEM3ZSwxLDAsImxhYmVsIiwwKSxtZSgyLCJkaXYiLDEpLGtyKDMsMSksbWUoNCwiZGl2IiwyKSxKZSg1LFM3ZSwxLDAsIm5nLWNvbnRlbnQiLDApLEplKDYsTTdlLDEsMCwiY2RzLWljb24iLDMpLEplKDcseDdlLDEsMCwiY2RzLWljb24iLDQpLEplKDgsRTdlLDEsMCwi'@; put 'bmctY29udGVudCIsMCksSmUoOSxrN2UsMSwwLCJuZy1jb250ZW50IiwwKSx5ZSgpKCkpLDImYSYmKENlKDEpLFJlKCJuZ0lmIiwhZC5sYWJlbCYmZC5hZGRHcmlkKCkpLENlKDEpLGRyKCJjbHItY29udHJvbC1pbmxpbmUiLGQuY2xySW5saW5lKSxSZSgibmdDbGFzcyIsZC5jb250cm9sQ2xh'@; put 'c3MoKSksQ2UoMyksUmUoIm5nSWYiLGQuc2hvd0hlbHBlciksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLENlKDEpLFJlKCJuZ0lmIixkLnNob3dWYWxpZCksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLENlKDEpLFJlKCJuZ0lmIixkLnNob3dWYWxpZCkpfSxkZXBlbmRl'@; put 'bmNpZXM6W1ppLFVzLGRjLHFzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxUeWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKG8xLHMxKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBl'@; put 'OmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLHNhLFljLHdFXSxZY119KSxjfSkoKTtmdW5jdGlvbiB1ZChjKXtyZXR1cm4gbnVsbCE9PWMmJigic3RyaW5nIj09dHlwZW9mIGM/Yy5sZW5ndGg+PTA6ImJvb2xlYW4iPT10eXBlb2YgYyYmYyl9bGV0IHUyPSgoKT0+e2NsYXNzIGN7'@; put 'Z2V0IHNwaW5uZXJDbGFzcygpe3JldHVybiEwfWdldCBpbmxpbmVDbGFzcygpe3JldHVybiB0aGlzLl9pbmxpbmV9c2V0IGNscklubGluZShhKXt0aGlzLl9pbmxpbmU9dWQoYSl9Z2V0IGludmVyc2VDbGFzcygpe3JldHVybiB0aGlzLl9pbnZlcnNlfXNldCBjbHJJbnZlcnNlKGEpe3RoaXMu'@; put 'X2ludmVyc2U9dWQoYSl9Z2V0IHNtYWxsQ2xhc3MoKXtyZXR1cm4gdGhpcy5fc21hbGx9c2V0IGNsclNtYWxsKGEpe3RoaXMuX3NtYWxsPXVkKGEpfWdldCBtZWRpdW1DbGFzcygpe3JldHVybiF0aGlzLl9zbWFsbCYmdGhpcy5fbWVkaXVtfXNldCBjbHJNZWRpdW0oYSl7dGhpcy5fbWVkaXVt'@; put 'PXVkKGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXNwaW5uZXIiXV0saG9zdFZhcnM6MTEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYoVHIoImFyaWEtYnVz'@; put 'eSIsITApLGRyKCJzcGlubmVyIixkLnNwaW5uZXJDbGFzcykoInNwaW5uZXItaW5saW5lIixkLmlubGluZUNsYXNzKSgic3Bpbm5lci1pbnZlcnNlIixkLmludmVyc2VDbGFzcykoInNwaW5uZXItc20iLGQuc21hbGxDbGFzcykoInNwaW5uZXItbWQiLGQubWVkaXVtQ2xhc3MpKX0saW5wdXRz'@; put 'OntjbHJJbmxpbmU6ImNscklubGluZSIsY2xySW52ZXJzZToiY2xySW52ZXJzZSIsY2xyU21hbGw6ImNsclNtYWxsIixjbHJNZWRpdW06ImNsck1lZGl1bSJ9LG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksa3Io'@; put 'MCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxBYj0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9KSgpO3ZhciB4'@; put 'cD1mdW5jdGlvbihjKXtyZXR1cm4gYy5WRVJUSUNBTD0idmVydGljYWwiLGMuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsYy5CT1RIPSJib3RoIixjfSh4cHx8e30pO2xldCBKSj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5lbGVtZW50UmVmPWEsdGhpcy5wbGF0Zm9ybUlk'@; put 'PWR9Z2V0IG5hdGl2ZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Zm9jdXMoKXtScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJu'@; put 'IG5ldyhhfHxjKSh0dChOaSksdHQoR3MpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyS2V5Rm9jdXNJdGVtIiwiIl1dfSksY30pKCksSTg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmVsZW1lbnRSZWY9YSx0aGlzLmRpcmVjdGlvbj14cC5W'@; put 'RVJUSUNBTCx0aGlzLmZvY3VzT25Mb2FkPSExLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmZvY3VzQ2hhbmdlPW5ldyBFcix0aGlzLl9jdXJyZW50PTB9Z2V0IGZvY3VzYWJsZUl0ZW1zKCl7cmV0dXJuIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zP3RoaXMuX2ZvY3VzYWJsZUl0ZW1zOnRoaXMu'@; put 'Y2xyS2V5Rm9jdXNJdGVtcz90aGlzLmNscktleUZvY3VzSXRlbXMudG9BcnJheSgpOltdfXNldCBmb2N1c2FibGVJdGVtcyhhKXtBcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aCYmKHRoaXMuX2ZvY3VzYWJsZUl0ZW1zPWEsdGhpcy5pbml0aWFsaXplRm9jdXMoKSl9Z2V0IG5hdGl2ZUVsZW1l'@; put 'bnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVudChhKXt0aGlzLl9jdXJyZW50IT09YSYmKHRoaXMuX2N1cnJlbnQ9YSl9Z2V0IGN1cnJlbnRJdGVtKCl7cmV0dXJuIHRoaXMuZm9jdXNh'@; put 'YmxlSXRlbXNbdGhpcy5fY3VycmVudF19Z2V0IGN1cnJlbnRJdGVtRWxlbWVudCgpe3JldHVybiB0aGlzLmN1cnJlbnRJdGVtLm5hdGl2ZUVsZW1lbnQ/dGhpcy5jdXJyZW50SXRlbS5uYXRpdmVFbGVtZW50OnRoaXMuY3VycmVudEl0ZW19bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zdWJz'@; put 'Y3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JJdGVtVXBkYXRlcygpKSx0aGlzLmluaXRpYWxpemVGb2N1cygpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1oYW5kbGVLZXlib2FyZEV2ZW50KGEpe2lmKHRoaXMuY3VycmVu'@; put 'dEl0ZW1FbGVtZW50IT09YS50YXJnZXQpe2NvbnN0IGQ9dGhpcy5nZXRJdGVtUG9zaXRpb24oYS50YXJnZXQpO3RoaXMucG9zaXRpb25JblJhbmdlKGQpJiYodGhpcy5jdXJyZW50PWQpfXRoaXMucHJldktleVByZXNzZWQoYSkmJnRoaXMuY3VycmVudEZvY3VzSXNOb3RGaXJzdEl0ZW0oKT90'@; put 'aGlzLm1vdmVUbyh0aGlzLmN1cnJlbnQtMSk6dGhpcy5uZXh0S2V5UHJlc3NlZChhKSYmdGhpcy5jdXJyZW50Rm9jdXNJc05vdExhc3RJdGVtKCk/dGhpcy5tb3ZlVG8odGhpcy5jdXJyZW50KzEpOmEuY29kZT09PXdvLkhvbWU/dGhpcy5tb3ZlVG8oMCk6YS5jb2RlPT09d28uRW5kJiZ0aGlz'@; put 'Lm1vdmVUbyh0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aC0xKSxURihhKX1zZXRDbGlja2VkSXRlbUN1cnJlbnQoYSl7Y29uc3QgZD10aGlzLmdldEl0ZW1Qb3NpdGlvbihhLnRhcmdldCk7ZD4tMSYmdGhpcy5tb3ZlVG8oZCl9Zm9jdXNDdXJyZW50KCl7dGhpcy5jdXJyZW50SXRlbS5mb2N1'@; put 'cygpLHRoaXMuZm9jdXNDaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KX1tb3ZlVG8oYSl7dGhpcy5wb3NpdGlvbkluUmFuZ2UoYSkmJih0aGlzLmN1cnJlbnQ9YSx0aGlzLmZvY3VzQ3VycmVudCgpKX1wb3NpdGlvbkluUmFuZ2UoYSl7cmV0dXJuIGE+PTAmJmE8dGhpcy5mb2N1c2FibGVJdGVt'@; put 'cy5sZW5ndGh9Y3VycmVudEZvY3VzSXNOb3RGaXJzdEl0ZW0oKXtyZXR1cm4gdGhpcy5fY3VycmVudC0xPj0wfWN1cnJlbnRGb2N1c0lzTm90TGFzdEl0ZW0oKXtyZXR1cm4gdGhpcy5fY3VycmVudCsxPHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RofWluaXRpYWxpemVGb2N1cygpe3RoaXMu'@; put 'Zm9jdXNhYmxlSXRlbXMmJnRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoJiYodGhpcy5fY3VycmVudD49dGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGgmJih0aGlzLl9jdXJyZW50PXRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoLTEpLHRoaXMuZm9jdXNPbkxvYWQmJih0aGlzLmN1cnJlbnRJ'@; put 'dGVtLmZvY3VzKCksdGhpcy5mb2N1c0NoYW5nZS5uZXh0KCkpKX1uZXh0S2V5UHJlc3NlZChhKXtjb25zdCBkPWwyKGEua2V5KTtzd2l0Y2godGhpcy5kaXJlY3Rpb24pe2Nhc2UgeHAuVkVSVElDQUw6cmV0dXJuIGQ9PT13by5BcnJvd0Rvd247Y2FzZSB4cC5IT1JJWk9OVEFMOnJldHVybiBk'@; put 'PT09d28uQXJyb3dSaWdodDtjYXNlIHhwLkJPVEg6cmV0dXJuIGQ9PT13by5BcnJvd0Rvd258fGQ9PT13by5BcnJvd1JpZ2h0O2RlZmF1bHQ6cmV0dXJuITF9fXByZXZLZXlQcmVzc2VkKGEpe2NvbnN0IGQ9bDIoYS5rZXkpO3N3aXRjaCh0aGlzLmRpcmVjdGlvbil7Y2FzZSB4cC5WRVJUSUNB'@; put 'TDpyZXR1cm4gZD09PXdvLkFycm93VXA7Y2FzZSB4cC5IT1JJWk9OVEFMOnJldHVybiBkPT09d28uQXJyb3dMZWZ0O2Nhc2UgeHAuQk9USDpyZXR1cm4gZD09PXdvLkFycm93VXB8fGQ9PT13by5BcnJvd0xlZnQ7ZGVmYXVsdDpyZXR1cm4hMX19Z2V0SXRlbVBvc2l0aW9uKGEpe3JldHVybiB0'@; put 'aGlzLl9mb2N1c2FibGVJdGVtcz90aGlzLmZvY3VzYWJsZUl0ZW1zLmluZGV4T2YoYSk6dGhpcy5mb2N1c2FibGVJdGVtcy5tYXAoZD0+ZC5uYXRpdmVFbGVtZW50KS5pbmRleE9mKGEpfWxpc3RlbkZvckl0ZW1VcGRhdGVzKCl7cmV0dXJuIHRoaXMuY2xyS2V5Rm9jdXNJdGVtcy5jaGFuZ2Vz'@; put 'LnN1YnNjcmliZSgoKT0+e3RoaXMuaW5pdGlhbGl6ZUZvY3VzKCl9KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyS2V5Rm9jdXMiLCIiXV0sY29udGVudFF1'@; put 'ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmSW8oaCxKSiw1KSwyJmEpe2xldCBmO2FpKGY9bGkoKSkmJihkLmNscktleUZvY3VzSXRlbXM9Zil9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJrZXlkb3duIixmdW5jdGlvbihmKXtyZXR1cm4gZC5oYW5kbGVLZXli'@; put 'b2FyZEV2ZW50KGYpfSkoImNsaWNrIixmdW5jdGlvbihmKXtyZXR1cm4gZC5zZXRDbGlja2VkSXRlbUN1cnJlbnQoZil9KX0saW5wdXRzOntkaXJlY3Rpb246WyJjbHJEaXJlY3Rpb24iLCJkaXJlY3Rpb24iXSxmb2N1c09uTG9hZDpbImNsckZvY3VzT25Mb2FkIiwiZm9jdXNPbkxvYWQiXSxm'@; put 'b2N1c2FibGVJdGVtczpbImNscktleUZvY3VzIiwiZm9jdXNhYmxlSXRlbXMiXX0sb3V0cHV0czp7Zm9jdXNDaGFuZ2U6ImNsckZvY3VzQ2hhbmdlIn0sYXR0cnM6RDdlLG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFp'@; put 'KCksa3IoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxCRj0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9KSgp'@; put 'O2NvbnN0IEw4PW5ldyBTaSgiUE9QT1ZFUl9IT1NUX0FOQ0hPUiIpO2NsYXNzIER5ZXtjb250YWluc0l0ZW0obCl7cmV0dXJuISF0aGlzLm1vZGVsJiZ0aGlzLm1vZGVsLmluY2x1ZGVzKGwpfXNlbGVjdChsKXt0aGlzLmFkZEl0ZW0obCl9dW5zZWxlY3QobCl7dGhpcy5yZW1vdmVJdGVtKGwp'@; put 'fWlzRW1wdHkoKXtyZXR1cm4hKHRoaXMubW9kZWwmJnRoaXMubW9kZWwubGVuZ3RoPjApfXBvcCgpe2xldCBsO3JldHVybiB0aGlzLm1vZGVsJiZ0aGlzLm1vZGVsLmxlbmd0aD4wJiYobD10aGlzLm1vZGVsW3RoaXMubW9kZWwubGVuZ3RoLTFdLHRoaXMucmVtb3ZlSXRlbShsKSksbH10b1N0'@; put 'cmluZyhsLGE9LTEpe2xldCBkPSIiO3JldHVybiB0aGlzLm1vZGVsJiYoYT4tMT90aGlzLm1vZGVsW2FdJiYoZCs9bCYmdGhpcy5tb2RlbFthXVtsXT90aGlzLm1vZGVsW2FdW2xdOnRoaXMubW9kZWxbYV0udG9TdHJpbmcoKSk6dGhpcy5tb2RlbC5mb3JFYWNoKGg9PntkKz1sJiZoW2xdP2hb'@; put 'bF06aC50b1N0cmluZygpLGQrPSIgIn0pKSxkLnRyaW0oKX1hZGRJdGVtKGwpe3RoaXMuY29udGFpbnNJdGVtKGwpfHwodGhpcy5tb2RlbD10aGlzLm1vZGVsfHxbXSx0aGlzLm1vZGVsLnB1c2gobCkpfXJlbW92ZUl0ZW0obCl7aWYobnVsbD09dGhpcy5tb2RlbClyZXR1cm47Y29uc3QgYT10'@; put 'aGlzLm1vZGVsLmluZGV4T2YobCk7YT4tMSYmdGhpcy5tb2RlbC5zcGxpY2UoYSwxKSwwPT09dGhpcy5tb2RlbC5sZW5ndGgmJih0aGlzLm1vZGVsPW51bGwpfX1jbGFzcyBJeWV7Y29udGFpbnNJdGVtKGwpe3JldHVybiB0aGlzLm1vZGVsPT09bH1zZWxlY3QobCl7dGhpcy5tb2RlbD1sfXVu'@; put 'c2VsZWN0KGwpe3RoaXMuY29udGFpbnNJdGVtKGwpJiYodGhpcy5tb2RlbD1udWxsKX1pc0VtcHR5KCl7cmV0dXJuIXRoaXMubW9kZWx9cG9wKCl7Y29uc3QgbD10aGlzLm1vZGVsO3JldHVybiB0aGlzLm1vZGVsPW51bGwsbH10b1N0cmluZyhsKXtyZXR1cm4gdGhpcy5tb2RlbD9sJiZ0aGlz'@; put 'Lm1vZGVsW2xdP3RoaXMubW9kZWxbbF06dGhpcy5tb2RlbC50b1N0cmluZygpOiIifX1jbGFzcyBTRXt9ZnVuY3Rpb24gUUooYyl7cmV0dXJuW2Mse3Byb3ZpZGU6U0UsdXNlRXhpc3Rpbmc6Y31dfWNsYXNzIEx5ZSBleHRlbmRzIEl5ZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50'@; put 'cyksdGhpcy5fZm9jdXNDaGFuZ2VkPW5ldyBUZShudWxsKX1nZXQgZm9jdXNDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2ZvY3VzQ2hhbmdlZC5hc09ic2VydmFibGUoKX1zZWxlY3QobCl7dGhpcy5tb2RlbCE9PWwmJih0aGlzLm1vZGVsPWwsdGhpcy5fZm9jdXNDaGFuZ2VkLm5leHQobCkpfX1s'@; put 'ZXQgUnllPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRpbmc9ITEsdGhpcy5fY3VycmVudElucHV0PSIiLHRoaXMuX2lucHV0Q2hhbmdlZD1uZXcgVGUoIiIpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQ9bmV3IHF4KDEpLHRoaXMuaW5wdXRDaGFuZ2VkPXRoaXMuX2lucHV0'@; put 'Q2hhbmdlZC5hc09ic2VydmFibGUoKX1nZXQgY3VycmVudElucHV0KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRJbnB1dH1zZXQgY3VycmVudElucHV0KGEpeyIiPT09YSYmIXRoaXMubXVsdGlzZWxlY3RhYmxlJiZ0aGlzLnNldFNlbGVjdGlvblZhbHVlKG51bGwpLHRoaXMuX2N1cnJlbnRJbnB1'@; put 'dD1hLHRoaXMuX2lucHV0Q2hhbmdlZC5uZXh0KGEpfWdldCBzZWxlY3Rpb25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQuYXNPYnNlcnZhYmxlKCl9Z2V0IG11bHRpc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsIGluc3RhbmNlb2YgRHllfXNl'@; put 'bGVjdChhKXtudWxsPT1hfHx0aGlzLnNlbGVjdGlvbk1vZGVsLmNvbnRhaW5zSXRlbShhKXx8KHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGEpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9dG9nZ2xlKGEpe251bGwhPWEmJih0aGlzLnNlbGVj'@; put 'dGlvbk1vZGVsLmNvbnRhaW5zSXRlbShhKT90aGlzLnNlbGVjdGlvbk1vZGVsLnVuc2VsZWN0KGEpOnRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGEpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9dW5zZWxlY3QoYSl7bnVsbD09YXx8IXRoaXMu'@; put 'c2VsZWN0aW9uTW9kZWwuY29udGFpbnNJdGVtKGEpfHwodGhpcy5zZWxlY3Rpb25Nb2RlbC51bnNlbGVjdChhKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLm5leHQodGhpcy5zZWxlY3Rpb25Nb2RlbCkpfXNldFNlbGVjdGlvblZhbHVlKGEpeyF0aGlzLnNlbGVjdGlvbk1vZGVsfHx0aGlzLnNl'@; put 'bGVjdGlvbk1vZGVsLm1vZGVsPT09YXx8IXRoaXMuc2VsZWN0aW9uTW9kZWwubW9kZWwmJiFhfHwodGhpcy5zZWxlY3Rpb25Nb2RlbC5tb2RlbD1hLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihh'@; put 'KXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO1FKKCgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy50b2dnbGVTZXJ2aWNlPWQsdGhpcy5zZWxlY3Rpb25TZXJ2aWNlPWgsdGhpcy5wbGF0'@; put 'Zm9ybUlkPWYsdGhpcy5wc2V1ZG9Gb2N1cz1uZXcgTHllLHRoaXMub3B0aW9uRGF0YT1bXSx0aGlzLmhhbmRsZUZvY3VzU3Vic2NyaXB0aW9uKCksdGhpcy5yZW5kZXJlcj1hLmNyZWF0ZVJlbmRlcmVyKG51bGwsbnVsbCl9Z2V0IHRyaWdnZXIoKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcn1zZXQg'@; put 'dHJpZ2dlcihhKXt0aGlzLl90cmlnZ2VyPWEsdGhpcy5hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGEpfWdldCBsaXN0Ym94KCl7cmV0dXJuIHRoaXMuX2xpc3Rib3h9c2V0IGxpc3Rib3goYSl7dGhpcy5fbGlzdGJveD1hLHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihhKX1nZXQgdGV4dElu'@; put 'cHV0KCl7cmV0dXJuIHRoaXMuX3RleHRJbnB1dH1zZXQgdGV4dElucHV0KGEpe3RoaXMuX3RleHRJbnB1dD1hLHRoaXMucmVuZGVyZXIubGlzdGVuKGEsImtleWRvd24iLGQ9PiF0aGlzLmhhbmRsZVRleHRJbnB1dChkKSksdGhpcy5hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGEpfWZvY3VzSW5w'@; put 'dXQoKXt0aGlzLnRleHRJbnB1dCYmUnModGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy50ZXh0SW5wdXQuZm9jdXMoKX1mb2N1c0ZpcnN0QWN0aXZlKCl7aWYodGhpcy5vcHRpb25EYXRhLmxlbmd0aD4wKWlmKHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpdGhp'@; put 'cy5wc2V1ZG9Gb2N1cy5zZWxlY3QodGhpcy5vcHRpb25EYXRhWzBdKTtlbHNle2xldCBhO2E9dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZT90aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWxbMF06dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVj'@; put 'dGlvbk1vZGVsLm1vZGVsO2NvbnN0IGQ9dGhpcy5vcHRpb25EYXRhLmZpbmQoaD0+aC52YWx1ZT09PWEpO3RoaXMucHNldWRvRm9jdXMuc2VsZWN0KGR8fHRoaXMub3B0aW9uRGF0YVswXSksdGhpcy5zY3JvbGxJbnRvU2VsZWN0ZWRNb2RlbCgiYXV0byIpfX1hZGRPcHRpb25WYWx1ZXMoYSl7'@; put 'dGhpcy5vcHRpb25EYXRhPWF9aGFuZGxlRm9jdXNTdWJzY3JpcHRpb24oKXt0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoYT0+e2F8fCh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsPW51bGwpfSl9bW92ZUZvY3VzVG8oYSl7bGV0IGQ9dGhpcy5vcHRpb25EYXRhLmZpbmRJ'@; put 'bmRleChoPT5oLmVxdWFscyh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsKSk7YT09PWQxLlVQPy0xPT09ZHx8MD09PWQ/ZD10aGlzLm9wdGlvbkRhdGEubGVuZ3RoLTE6ZC0tOmE9PT1kMS5ET1dOJiYoLTE9PT1kfHxkPT09dGhpcy5vcHRpb25EYXRhLmxlbmd0aC0xP2Q9MDpkKyspLHRoaXMucHNl'@; put 'dWRvRm9jdXMuc2VsZWN0KHRoaXMub3B0aW9uRGF0YVtkXSksdGhpcy5zY3JvbGxJbnRvU2VsZWN0ZWRNb2RlbCgpfW9wZW5BbmRNb3ZlVG8oYSl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4/dGhpcy5tb3ZlRm9jdXNUbyhhKToodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2UucGlwZShp'@; put 'ZCgxKSkuc3Vic2NyaWJlKGQ9PntkJiZ0aGlzLm1vdmVGb2N1c1RvKGEpfSksdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITApfWhhbmRsZVRleHRJbnB1dChhKXtsZXQgZD0hMTtjb25zdCBoPWwyKGEua2V5KTtpZihhKXN3aXRjaChoKXtjYXNlIHdvLkVudGVyOnRoaXMudG9nZ2xlU2Vydmlj'@; put 'ZS5vcGVuJiZ0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsJiYodGhpcy5zZWxlY3Rpb25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZT90aGlzLnNlbGVjdGlvblNlcnZpY2UudG9nZ2xlKHRoaXMucHNldWRvRm9jdXMubW9kZWwudmFsdWUpOnRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3QodGhpcy5w'@; put 'c2V1ZG9Gb2N1cy5tb2RlbC52YWx1ZSksZD0hMCk7YnJlYWs7Y2FzZSB3by5TcGFjZTp0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbnx8KHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSEwLGQ9ITApO2JyZWFrO2Nhc2Ugd28uQXJyb3dVcDp0aGlzLnByZXZlbnRWaWV3cG9ydFNjcm9sbGluZyhhKSx0'@; put 'aGlzLm9wZW5BbmRNb3ZlVG8oZDEuVVApLGQ9ITA7YnJlYWs7Y2FzZSB3by5BcnJvd0Rvd246dGhpcy5wcmV2ZW50Vmlld3BvcnRTY3JvbGxpbmcoYSksdGhpcy5vcGVuQW5kTW92ZVRvKGQxLkRPV04pLGQ9ITA7YnJlYWs7ZGVmYXVsdDphLmtleSE9PXdvLlRhYiYmKCF0aGlzLnNlbGVjdGlv'@; put 'blNlcnZpY2UubXVsdGlzZWxlY3RhYmxlfHxhLmtleSE9PXdvLkJhY2tzcGFjZSkmJmEua2V5IT09d28uRXNjYXBlJiYhdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJih0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMCl9cmV0dXJuIGR9c2Nyb2xsSW50b1NlbGVjdGVkTW9kZWwoYT0ic21vb3Ro'@; put 'Iil7dGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbCYmdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC5lbCYmdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC5lbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6YSxibG9jazoiY2VudGVyIixpbmxpbmU6Im5lYXJlc3QifSl9cHJldmVudFZpZXdwb3J0U2Nyb2xsaW5n'@; put 'KGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWFkZEZvY3VzT25CbHVyTGlzdGVuZXIoYSl7UnModGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5yZW5kZXJlci5saXN0ZW4oYSwiYmx1ciIsZD0+e3RoaXMuZm9jdXNPdXRPZkNvbXBvbmVudChkKSYmKHRo'@; put 'aXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMuY29tcG9uZW50Q2RSZWYmJnRoaXMuY29tcG9uZW50Q2RSZWYuZGV0ZWN0Q2hhbmdlcygpKX0pfWZvY3VzT3V0T2ZDb21wb25lbnQoYSl7Y29uc3QgZD1hLnJlbGF0ZWRUYXJnZXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuISh0'@; put 'aGlzLnRleHRJbnB1dC5jb250YWlucyhkKXx8dGhpcy50cmlnZ2VyLmNvbnRhaW5zKGQpfHx0aGlzLmxpc3Rib3guY29udGFpbnMoZCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihZMyksYXIoS3MpLGFyKFJ5ZSksYXIoR3MpKX0sYy5cdTAy'@; put 'NzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSk7bGV0IE95ZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7VnMuYWRkSWNvbnMobzEsczEsaDgsbmIpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAy'@; put 'NzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb28scWwsc2EsQkYsWWMsc2QseGIsQWJdLFljLHNkXX0pLGN9KSgpLGpGPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBBOHt9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGw7cmV0dXJuIGZ1bmN0aW9u'@; put 'KGQpe3JldHVybihsfHwobD14YShjKSkpKGR8fGMpfX0oKSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItaW5wdXQtY29udGFpbmVyIl1dLGhvc3RWYXJzOjYsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiY2xyLWZvcm0tY29udHJvbCIsITApKCJj'@; put 'bHItZm9ybS1jb250cm9sLWRpc2FibGVkIixudWxsPT1kLmNvbnRyb2w/bnVsbDpkLmNvbnRyb2wuZGlzYWJsZWQpKCJjbHItcm93IixkLmFkZEdyaWQoKSl9LGZlYXR1cmVzOlt0aShbbGQsazAsYWQsY2RdKSxlb10sbmdDb250ZW50U2VsZWN0b3JzOno3ZSxkZWNsczoxMCx2YXJzOjcsY29u'@; put 'c3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlk'@; put 'ZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJk'@; put 'YW5nZXIiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZh'@; put 'JiYoQWkoajdlKSxrcigwKSxKZSgxLFA3ZSwxLDAsImxhYmVsIiwwKSxtZSgyLCJkaXYiLDEpKDMsImRpdiIsMiksa3IoNCwxKSxKZSg1LEY3ZSwxLDAsImNkcy1pY29uIiwzKSxKZSg2LEg3ZSwxLDAsImNkcy1pY29uIiw0KSx5ZSgpLEplKDcsTjdlLDEsMCwibmctY29udGVudCIsMCksSmUo'@; put 'OCxWN2UsMSwwLCJuZy1jb250ZW50IiwwKSxKZSg5LEI3ZSwxLDAsIm5nLWNvbnRlbnQiLDApLHllKCkpLDImYSYmKENlKDEpLFJlKCJuZ0lmIiwhZC5sYWJlbCYmZC5hZGRHcmlkKCkpLENlKDEpLFJlKCJuZ0NsYXNzIixkLmNvbnRyb2xDbGFzcygpKSxDZSgzKSxSZSgibmdJZiIsZC5zaG93'@; put 'SW52YWxpZCksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd1ZhbGlkKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93SGVscGVyKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93SW52YWxpZCksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbWmksVXMsZGMscXNdLGVuY2Fwc3Vs'@; put 'YXRpb246Mn0pLGN9KSgpLGYxPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBUOHtjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3N1cGVyKGEsakYsZCxoLGYsXyksdGhpcy5pbmRleD0xfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChhcyksdHQoRWEpLHR0'@; put 'KHp1LDEwKSx0dChGbyksdHQoTmkpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xySW5wdXQiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJjbHItaW5wdXQiLCEwKX0sZmVhdHVyZXM6W2VvXX0pLGN9KSgpLGVR'@; put 'PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtWcy5hZGRJY29ucyhvMSxzMSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyxxbCxzYSxZY10sWWNd'@; put 'fSksY30pKCksekY9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZvY3VzZWQ9bmV3IFRlKCExKX1nZXQgZm9jdXNDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZm9jdXNlZC5hc09ic2VydmFibGUoKX1zZXQgZm9jdXNlZChhKXt0aGlzLl9mb2N1c2VkLm5leHQoYSl9fXJldHVybiBj'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLFB5ZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7VnMuYWRkSWNvbnMobzEsczEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb28sZVEsc2FdXX0pLGN9KSgpO2NvbnN0IEh5ZT0vZCsuK20rLit5Ky9pLE55ZT0vbSsuK2QrLit5Ky9pLFZ5ZT0vZCt8bSt8eSsvaSxCeWU9L1xk'@; put 'Ky9nLGp5ZT0vTW9iaS9pLHp5ZT0vXHUyMDBmL2csVUY9IllZWVkiLE1FPXtuYW1lOiJMSVRUTEVfRU5ESUFOIixmb3JtYXQ6WyJERCIsIk1NIixVRl19LFdGPXtuYW1lOiJNSURETEVfRU5ESUFOIixmb3JtYXQ6WyJNTSIsIkREIixVRl19LFV5ZT17bmFtZToiQklHX0VORElBTiIsZm9ybWF0'@; put 'OltVRiwiTU0iLCJERCJdfTtmdW5jdGlvbiBuUShjLGwpe3JldHVybiBuZXcgRGF0ZShjLGwrMSwwKS5nZXREYXRlKCl9Y2xhc3MgJHlle2NvbnN0cnVjdG9yKGwsYT0hMSxkPSExLGg9ITEsZj0hMSxfPSExKXt0aGlzLmRheU1vZGVsPWwsdGhpcy5pc1RvZGF5c0RhdGU9YSx0aGlzLmlzRXhj'@; put 'bHVkZWQ9ZCx0aGlzLmlzRGlzYWJsZWQ9aCx0aGlzLmlzU2VsZWN0ZWQ9Zix0aGlzLmlzRm9jdXNhYmxlPV99Z2V0IHRhYkluZGV4KCl7cmV0dXJuIHRoaXMuaXNGb2N1c2FibGU/MDotMX19Y2xhc3MgcDF7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMueWVhcj1sLHRoaXMubW9udGg9YSx0aGlz'@; put 'LmRhdGU9ZH1pc0VxdWFsKGwpe3JldHVybiEhbCYmdGhpcy55ZWFyPT09bC55ZWFyJiZ0aGlzLm1vbnRoPT09bC5tb250aCYmdGhpcy5kYXRlPT09bC5kYXRlfXRvRGF0ZSgpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRhdGUpfWluY3JlbWVudEJ5KGwpe2Nv'@; put 'bnN0IGE9bmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXRlK2wpO3JldHVybiBuZXcgcDEoYS5nZXRGdWxsWWVhcigpLGEuZ2V0TW9udGgoKSxhLmdldERhdGUoKSl9Y2xvbmUoKXtyZXR1cm4gbmV3IHAxKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF0ZSl9dG9Db21w'@; put 'YXJpc29uU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy55ZWFyfSR7dGhpcy5wYWQodGhpcy5tb250aCl9JHt0aGlzLnBhZCh0aGlzLmRhdGUpfWB9dG9EYXRlU3RyaW5nKCl7cmV0dXJuIHRoaXMudG9EYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9cGFkKGwpe3JldHVybiBsPDEwP2AwJHtsfWA6'@; put 'YCR7bH1gfX1jbGFzcyBxeWV7Y29uc3RydWN0b3IobCxhLGQsaCxmLF8pe3RoaXMuY2FsZW5kYXI9bCx0aGlzLnNlbGVjdGVkRGF5PWEsdGhpcy5mb2N1c2FibGVEYXk9ZCx0aGlzLnRvZGF5PWgsdGhpcy5maXJzdERheU9mV2Vlaz1mLHRoaXMuZXhjbHVkZWREYXRlcz1fLHRoaXMuY3Vyck1v'@; put 'bnRoRGF5Vmlld3M9W10sdGhpcy5pbml0aWFsaXplQ2FsZW5kYXJWaWV3KCl9Z2V0IGNhbGVuZGFyVmlldygpe3JldHVybiB0aGlzLl9jYWxlbmRhclZpZXd9dXBkYXRlRm9jdXNhYmxlRGF5KGwpe3RoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLmZvY3VzYWJsZURheSwhMSksdGhpcy5zZXRG'@; put 'b2N1c2FibGVGbGFnKGwsITApLHRoaXMuZm9jdXNhYmxlRGF5PWx9aW5pdGlhbGl6ZUNhbGVuZGFyVmlldygpe2NvbnN0IGw9dGhpcy5jYWxlbmRhci5wcmV2aW91c01vbnRoKCksYT10aGlzLmNhbGVuZGFyLm5leHRNb250aCgpLGQ9dGhpcy5udW1EYXlzRnJvbVByZXZNb250aEluQ2FsVmll'@; put 'dyh0aGlzLmNhbGVuZGFyLnllYXIsdGhpcy5jYWxlbmRhci5tb250aCksaD00Mi0odGhpcy5jYWxlbmRhci5kYXlzLmxlbmd0aCtkKTtsZXQgZj1bXSxfPVtdO2Q+MCYmKGY9dGhpcy5nZW5lcmF0ZURheVZpZXdNb2RlbHMobC5kYXlzLnNsaWNlKC0xKmQpLCEwLCExKSksdGhpcy5jdXJyTW9u'@; put 'dGhEYXlWaWV3cz10aGlzLmdlbmVyYXRlRGF5Vmlld01vZGVscyh0aGlzLmNhbGVuZGFyLmRheXMsITEsITApLGg+MCYmKF89dGhpcy5nZW5lcmF0ZURheVZpZXdNb2RlbHMoYS5kYXlzLnNsaWNlKDAsaCksITAsITEpKSx0aGlzLl9jYWxlbmRhclZpZXc9dGhpcy5nZW5lcmF0ZUNhbGVuZGFy'@; put 'VmlldyhmLHRoaXMuY3Vyck1vbnRoRGF5Vmlld3MsXyksdGhpcy5pbml0aWFsaXplU2VsZWN0ZWREYXkoKSx0aGlzLmluaXRpYWxpemVGb2N1c2FibGVEYXkoKX1pc0RhdGVFeGNsdWRlZChsKXtjb25zdHttaW5EYXRlOmEsbWF4RGF0ZTpkfT10aGlzLmV4Y2x1ZGVkRGF0ZXMsaD1hLnRvQ29t'@; put 'cGFyaXNvblN0cmluZygpLGY9ZC50b0NvbXBhcmlzb25TdHJpbmcoKSxfPWwudG9Db21wYXJpc29uU3RyaW5nKCk7cmV0dXJuIShfPj1oJiZfPD1mKX1nZW5lcmF0ZURheVZpZXdNb2RlbHMobCxhLGQpe2NvbnN0IGg9bC5tYXAoZj0+bmV3ICR5ZShmLCExLGEsdGhpcy5pc0RhdGVFeGNsdWRl'@; put 'ZChmKSwhMSwhMSkpO3JldHVybiBkJiZ0aGlzLmNhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcih0aGlzLnRvZGF5KSYmKGhbdGhpcy50b2RheS5kYXRlLTFdLmlzVG9kYXlzRGF0ZT0hMCksaH1udW1EYXlzRnJvbVByZXZNb250aEluQ2FsVmlldyhsLGEpe2NvbnN0IGQ9ZnVuY3Rpb24gWXllKGMs'@; put 'bCxhKXtyZXR1cm4gbmV3IERhdGUoYyxsLGEpLmdldERheSgpfShsLGEsMSk7cmV0dXJuIGQ+PXRoaXMuZmlyc3REYXlPZldlZWs/ZC10aGlzLmZpcnN0RGF5T2ZXZWVrOjcrZC10aGlzLmZpcnN0RGF5T2ZXZWVrfWlzRGF5SW5DYWxlbmRhclZpZXcobCl7cmV0dXJuISF0aGlzLmNhbGVuZGFy'@; put 'LmlzRGF5SW5DYWxlbmRhcihsKX1nZW5lcmF0ZUNhbGVuZGFyVmlldyhsLGEsZCl7Y29uc3QgaD1bLi4ubCwuLi5hLC4uLmRdLGY9W107Zm9yKGxldCBfPTA7Xzw2O18rKylmW19dPWguc2xpY2UoNypfLDcqKF8rMSkpO3JldHVybiBmfWluaXRpYWxpemVTZWxlY3RlZERheSgpe3RoaXMuc2Vs'@; put 'ZWN0ZWREYXkmJnRoaXMuaXNEYXlJbkNhbGVuZGFyVmlldyh0aGlzLnNlbGVjdGVkRGF5KSYmKHRoaXMuY3Vyck1vbnRoRGF5Vmlld3NbdGhpcy5zZWxlY3RlZERheS5kYXRlLTFdLmlzU2VsZWN0ZWQ9ITApfWluaXRpYWxpemVGb2N1c2FibGVEYXkoKXt0aGlzLmZvY3VzYWJsZURheSYmdGhp'@; put 'cy5pc0RheUluQ2FsZW5kYXJWaWV3KHRoaXMuZm9jdXNhYmxlRGF5KT90aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy5mb2N1c2FibGVEYXksITApOnRoaXMuc2VsZWN0ZWREYXkmJnRoaXMuaXNEYXlJbkNhbGVuZGFyVmlldyh0aGlzLnNlbGVjdGVkRGF5KT8odGhpcy5zZXRGb2N1c2FibGVG'@; put 'bGFnKHRoaXMuc2VsZWN0ZWREYXksITApLHRoaXMuZm9jdXNhYmxlRGF5PXRoaXMuc2VsZWN0ZWREYXkuY2xvbmUoKSk6dGhpcy5pc0RheUluQ2FsZW5kYXJWaWV3KHRoaXMudG9kYXkpPyh0aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy50b2RheSwhMCksdGhpcy5mb2N1c2FibGVEYXk9dGhp'@; put 'cy50b2RheS5jbG9uZSgpKToodGhpcy5mb2N1c2FibGVEYXk9bmV3IHAxKHRoaXMuY2FsZW5kYXIueWVhcix0aGlzLmNhbGVuZGFyLm1vbnRoLDE1KSx0aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy5mb2N1c2FibGVEYXksITApKX1zZXRGb2N1c2FibGVGbGFnKGwsYSl7bCYmKHRoaXMuY3Vy'@; put 'ck1vbnRoRGF5Vmlld3NbbC5kYXRlLTFdLmlzRm9jdXNhYmxlPWEpfX1sZXQgVGI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmxvY2FsZT1hLHRoaXMuX2ZpcnN0RGF5T2ZXZWVrPTAsdGhpcy5pbml0aWFsaXplTG9jYWxlRGF0YSgpfWdldCBmaXJzdERheU9mV2Vlaygpe3Jl'@; put 'dHVybiB0aGlzLl9maXJzdERheU9mV2Vla31nZXQgbG9jYWxlRGF5cygpe3JldHVybiB0aGlzLl9sb2NhbGVEYXlzfWdldCBsb2NhbGVEYXlzTmFycm93KCl7cmV0dXJuIHRoaXMuX2xvY2FsZURheXMubWFwKGE9PmEubmFycm93KX1nZXQgbG9jYWxlTW9udGhzQWJicmV2aWF0ZWQoKXtyZXR1'@; put 'cm4gdGhpcy5fbG9jYWxlTW9udGhzQWJicmV2aWF0ZWR9Z2V0IGxvY2FsZU1vbnRoc1dpZGUoKXtyZXR1cm4gdGhpcy5fbG9jYWxlTW9udGhzV2lkZX1nZXQgbG9jYWxlRGF0ZUZvcm1hdCgpe3JldHVybiB0aGlzLl9sb2NhbGVEYXRlRm9ybWF0fWluaXRpYWxpemVMb2NhbGVEYXRhKCl7dGhp'@; put 'cy5pbml0aWFsaXplRmlyc3REYXlPZldlZWsoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXRlRm9ybWF0KCksdGhpcy5pbml0aWFsaXplTG9jYWxlTW9udGhzQWJicmV2aWF0ZWQoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVNb250aHNXaWRlKCksdGhpcy5pbml0aWFsaXplTG9jYWxlRGF5cygp'@; put 'fWluaXRpYWxpemVMb2NhbGVEYXlzKCl7Y29uc3QgYT1bXSxkPWNPKHRoaXMubG9jYWxlLEFjLlN0YW5kYWxvbmUsbmEuV2lkZSkuc2xpY2UoKSxoPWNPKHRoaXMubG9jYWxlLEFjLlN0YW5kYWxvbmUsbmEuTmFycm93KS5zbGljZSgpLGY9dGhpcy5maXJzdERheU9mV2Vlaztmb3IobGV0IF89'@; put 'MDtfPDc7XysrKWEucHVzaCh7ZGF5OmRbX10sbmFycm93OmhbX119KTtpZihmPjApe2NvbnN0IF89YS5zcGxpY2UoMCxmKTthLnB1c2goLi4uXyl9dGhpcy5fbG9jYWxlRGF5cz1hfWluaXRpYWxpemVMb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpe3RoaXMuX2xvY2FsZU1vbnRoc0FiYnJldmlh'@; put 'dGVkPXVPKHRoaXMubG9jYWxlLEFjLlN0YW5kYWxvbmUsbmEuQWJicmV2aWF0ZWQpLnNsaWNlKCl9aW5pdGlhbGl6ZUxvY2FsZU1vbnRoc1dpZGUoKXt0aGlzLl9sb2NhbGVNb250aHNXaWRlPXVPKHRoaXMubG9jYWxlLEFjLlN0YW5kYWxvbmUsbmEuV2lkZSkuc2xpY2UoKX1pbml0aWFsaXpl'@; put 'Rmlyc3REYXlPZldlZWsoKXt0aGlzLl9maXJzdERheU9mV2Vlaz1mdW5jdGlvbiBQdWUoYyl7cmV0dXJuIGpsKGMpW3FvLkZpcnN0RGF5T2ZXZWVrXX0odGhpcy5sb2NhbGUpfWluaXRpYWxpemVMb2NhbGVEYXRlRm9ybWF0KCl7dGhpcy5fbG9jYWxlRGF0ZUZvcm1hdD1mdW5jdGlvbiB4Xyhj'@; put 'LGwpe3JldHVybiB0ZChqbChjKVtxby5EYXRlRm9ybWF0XSxsKX0odGhpcy5sb2NhbGUseTAuU2hvcnQpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihLZCkpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30p'@; put 'LGN9KSgpO2NsYXNzIGQye2NvbnN0cnVjdG9yKGwsYSl7dGhpcy55ZWFyPWwsdGhpcy5tb250aD1hLHRoaXMuaW5pdGlhbGl6ZURheXNJbkNhbGVuZGFyKCl9aXNFcXVhbChsKXtyZXR1cm4hIWwmJnRoaXMueWVhcj09PWwueWVhciYmdGhpcy5tb250aD09PWwubW9udGh9aXNEYXlJbkNhbGVu'@; put 'ZGFyKGwpe3JldHVybiEhbCYmdGhpcy55ZWFyPT09bC55ZWFyJiZ0aGlzLm1vbnRoPT09bC5tb250aH1wcmV2aW91c01vbnRoKCl7cmV0dXJuIDA9PT10aGlzLm1vbnRoP25ldyBkMih0aGlzLnllYXItMSwxMSk6bmV3IGQyKHRoaXMueWVhcix0aGlzLm1vbnRoLTEpfW5leHRNb250aCgpe3Jl'@; put 'dHVybiAxMT09PXRoaXMubW9udGg/bmV3IGQyKHRoaXMueWVhcisxLDApOm5ldyBkMih0aGlzLnllYXIsdGhpcy5tb250aCsxKX1pbml0aWFsaXplRGF5c0luQ2FsZW5kYXIoKXtjb25zdCBsPW5RKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzLmRheXM9QXJyYXkobCkuZmlsbChudWxsKS5t'@; put 'YXAoKGEsZCk9Pm5ldyBwMSh0aGlzLnllYXIsdGhpcy5tb250aCxkKzEpKX19bGV0IFBmPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl90b2RheXNGdWxsRGF0ZT1uZXcgRGF0ZSx0aGlzLl9zZWxlY3RlZERheUNoYW5nZT1uZXcgYmUsdGhpcy5fZGlzcGxheWVkQ2FsZW5kYXJD'@; put 'aGFuZ2U9bmV3IGJlLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZT1uZXcgYmUsdGhpcy5fZm9jdXNlZERheUNoYW5nZT1uZXcgYmV9Z2V0IHRvZGF5KCl7cmV0dXJuIHRoaXMuX3RvZGF5fWdldCBkaXNwbGF5ZWRDYWxlbmRhcigpe3JldHVybiB0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcn1n'@; put 'ZXQgc2VsZWN0ZWREYXlDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXlDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IGRpc3BsYXllZENhbGVuZGFyQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c09uQ2Fs'@; put 'ZW5kYXJDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c2VkRGF5Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX2ZvY3VzZWREYXlDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9bm90aWZ5U2VsZWN0ZWREYXlDaGFuZ2VkKGEpe3RoaXMu'@; put 'c2VsZWN0ZWREYXk9YSx0aGlzLl9zZWxlY3RlZERheUNoYW5nZS5uZXh0KGEpfWluaXRpYWxpemVDYWxlbmRhcigpe3RoaXMuZm9jdXNlZERheT1udWxsLHRoaXMuaW5pdGlhbGl6ZVRvZGF5c0RhdGUoKSx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcj10aGlzLnNlbGVjdGVkRGF5P25ldyBkMih0'@; put 'aGlzLnNlbGVjdGVkRGF5LnllYXIsdGhpcy5zZWxlY3RlZERheS5tb250aCk6bmV3IGQyKHRoaXMudG9kYXkueWVhcix0aGlzLnRvZGF5Lm1vbnRoKX1jaGFuZ2VNb250aChhKXt0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKG5ldyBkMih0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci55ZWFyLGEp'@; put 'KX1jaGFuZ2VZZWFyKGEpe3RoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIobmV3IGQyKGEsdGhpcy5fZGlzcGxheWVkQ2FsZW5kYXIubW9udGgpKX1tb3ZlVG9OZXh0TW9udGgoKXt0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLm5leHRNb250aCgpKX1t'@; put 'b3ZlVG9QcmV2aW91c01vbnRoKCl7dGhpcy5zZXREaXNwbGF5ZWRDYWxlbmRhcih0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5wcmV2aW91c01vbnRoKCkpfW1vdmVUb0N1cnJlbnRNb250aCgpe3RoaXMuZGlzcGxheWVkQ2FsZW5kYXIuaXNEYXlJbkNhbGVuZGFyKHRoaXMudG9kYXkpfHx0aGlz'@; put 'LnNldERpc3BsYXllZENhbGVuZGFyKG5ldyBkMih0aGlzLnRvZGF5LnllYXIsdGhpcy50b2RheS5tb250aCkpLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZS5uZXh0KCl9aW5jcmVtZW50Rm9jdXNEYXkoYSl7dGhpcy5mb2N1c2VkRGF5PXRoaXMuZm9jdXNlZERheS5pbmNyZW1lbnRCeShh'@; put 'KSx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5pc0RheUluQ2FsZW5kYXIodGhpcy5mb2N1c2VkRGF5KT90aGlzLl9mb2N1c2VkRGF5Q2hhbmdlLm5leHQodGhpcy5mb2N1c2VkRGF5KTp0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKG5ldyBkMih0aGlzLmZvY3VzZWREYXkueWVhcix0aGlzLmZv'@; put 'Y3VzZWREYXkubW9udGgpKSx0aGlzLl9mb2N1c09uQ2FsZW5kYXJDaGFuZ2UubmV4dCgpfXNldERpc3BsYXllZENhbGVuZGFyKGEpe3RoaXMuX2Rpc3BsYXllZENhbGVuZGFyLmlzRXF1YWwoYSl8fCh0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcj1hLHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyQ2hh'@; put 'bmdlLm5leHQoKSl9aW5pdGlhbGl6ZVRvZGF5c0RhdGUoKXt0aGlzLl90b2RheXNGdWxsRGF0ZT1uZXcgRGF0ZSx0aGlzLl90b2RheT1uZXcgcDEodGhpcy5fdG9kYXlzRnVsbERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLl90b2RheXNGdWxsRGF0ZS5nZXRNb250aCgpLHRoaXMuX3RvZGF5c0Z1'@; put 'bGxEYXRlLmdldERhdGUoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLE84PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9uZ1pv'@; put 'bmU9YSx0aGlzLnBsYXRmb3JtSWQ9ZH1mb2N1c0NlbGwoYSl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+e2NvbnN0IGQ9YS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRl'@; put 'eD0iMCJdJyk7ZCYmZC5mb2N1cygpfSl9KX1mb2N1c0lucHV0KGEpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+YS5mb2N1cygpKSl9ZWxlbWVudElzRm9jdXNlZChhKXtyZXR1cm4gUnModGhp'@; put 'cy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF9bmdab25lSXNTdGFibGVJbkJyb3dzZXIoKXtyZXR1cm4gdGhpcy5fbmdab25lLm9uU3RhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodXAoKSxJYSgoKT0+UnModGhpcy5wbGF0Zm9ybUlkKSkpfX1yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihObyksYXIoR3MpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxQOD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9YSx0'@; put 'aGlzLmRpc2FibGVkRGF0ZXM9e21pbkRhdGU6bmV3IHAxKDAsMCwxKSxtYXhEYXRlOm5ldyBwMSg5OTk5LDExLDMxKX0sdGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdD0iZGQvTU0veSIsdGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PU1FLHRoaXMuZGVsaW1pdGVycz1bIi8iLCIvIl0sdGhpcy5j'@; put 'bGRyTG9jYWxlRGF0ZUZvcm1hdD10aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZURhdGVGb3JtYXQsdGhpcy5pbml0aWFsaXplTG9jYWxlRGlzcGxheUZvcm1hdCgpfWdldCBwbGFjZWhvbGRlclRleHQoKXtjb25zdCBhPXRoaXMubG9jYWxlRGlzcGxheUZvcm1hdC5mb3JtYXQ7cmV0'@; put 'dXJuIGFbMF0rdGhpcy5kZWxpbWl0ZXJzWzBdK2FbMV0rdGhpcy5kZWxpbWl0ZXJzWzFdK2FbMl19c2V0TWluRGF0ZShhKXtpZihhKXtjb25zdFtkLGgsZl09YS5zcGxpdCgiLSIpLm1hcChfPT5wYXJzZUludChfLDEwKSk7dGhpcy5kaXNhYmxlZERhdGVzLm1pbkRhdGU9bmV3IHAxKGQsaC0x'@; put 'LGYpfWVsc2UgdGhpcy5kaXNhYmxlZERhdGVzLm1pbkRhdGU9bmV3IHAxKDAsMCwxKX1zZXRNYXhEYXRlKGEpe2lmKGEpe2NvbnN0W2QsaCxmXT1hLnNwbGl0KCItIikubWFwKF89PnBhcnNlSW50KF8sMTApKTt0aGlzLmRpc2FibGVkRGF0ZXMubWF4RGF0ZT1uZXcgcDEoZCxoLTEsZil9ZWxz'@; put 'ZSB0aGlzLmRpc2FibGVkRGF0ZXMubWF4RGF0ZT1uZXcgcDEoOTk5OSwxMSwzMSl9dG9Mb2NhbGVEaXNwbGF5Rm9ybWF0U3RyaW5nKGEpe2lmKGEpe2lmKGlzTmFOKGEuZ2V0VGltZSgpKSlyZXR1cm4iIjtjb25zdCBkPWEuZ2V0RGF0ZSgpLGg9YS5nZXRNb250aCgpKzEsZj1kPjk/ZC50b1N0'@; put 'cmluZygpOiIwIitkLF89aD45P2gudG9TdHJpbmcoKToiMCIraDtyZXR1cm4gdGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PT09TUU/Zit0aGlzLmRlbGltaXRlcnNbMF0rXyt0aGlzLmRlbGltaXRlcnNbMV0rYS5nZXRGdWxsWWVhcigpOnRoaXMubG9jYWxlRGlzcGxheUZvcm1hdD09PVdGP18r'@; put 'dGhpcy5kZWxpbWl0ZXJzWzBdK2YrdGhpcy5kZWxpbWl0ZXJzWzFdK2EuZ2V0RnVsbFllYXIoKTphLmdldEZ1bGxZZWFyKCkrdGhpcy5kZWxpbWl0ZXJzWzBdK18rdGhpcy5kZWxpbWl0ZXJzWzFdK2Z9cmV0dXJuIiJ9Z2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcoYSl7aWYoIWEpcmV0dXJu'@; put 'IG51bGw7Y29uc3QgZD1hLm1hdGNoKEJ5ZSk7aWYoIWR8fDMhPT1kLmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdFtoLGYsX109ZDtyZXR1cm4gdGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PT09TUU/dGhpcy52YWxpZGF0ZUFuZEdldERhdGUoXyxmLGgpOnRoaXMubG9jYWxlRGlzcGxheUZvcm1h'@; put 'dD09PVdGP3RoaXMudmFsaWRhdGVBbmRHZXREYXRlKF8saCxmKTp0aGlzLnZhbGlkYXRlQW5kR2V0RGF0ZShoLGYsXyl9aW5pdGlhbGl6ZUxvY2FsZURpc3BsYXlGb3JtYXQoKXtjb25zdCBhPXRoaXMuY2xkckxvY2FsZURhdGVGb3JtYXQudG9Mb2NhbGVMb3dlckNhc2UoKTt0aGlzLmxvY2Fs'@; put 'ZURpc3BsYXlGb3JtYXQ9SHllLnRlc3QoYSk/TUU6TnllLnRlc3QoYSk/V0Y6VXllLHRoaXMuZXh0cmFjdERlbGltaXRlcnMoKX1leHRyYWN0RGVsaW1pdGVycygpe2lmKHRoaXMuY2xkckxvY2FsZURhdGVGb3JtYXQpe2NvbnN0IGQ9dGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdC5yZXBsYWNl'@; put 'KHp5ZSwiIikuc3BsaXQoVnllKTtkJiY0PT09ZC5sZW5ndGg/dGhpcy5kZWxpbWl0ZXJzPVtkWzFdLGRbMl1dOmNvbnNvbGUuZXJyb3IoIlVuZXhwZWN0ZWQgZGF0ZSBmb3JtYXQgcmVjZWl2ZWQuIERlbGltaXRlcnMgZXh0cmFjdGVkOiAiLGQpfX1pc1ZhbGlkTW9udGgoYSl7cmV0dXJuIGE+'@; put 'LTEmJmE8MTJ9aXNWYWxpZERhdGUoYSxkLGgpe3JldHVybiBoPjAmJmg8PW5RKGEsZCl9dmFsaWRhdGVBbmRHZXREYXRlKGEsZCxoKXtjb25zdCBmPSthLF89K2QtMSxUPStoO2lmKCF0aGlzLmlzVmFsaWRNb250aChfKXx8IXRoaXMuaXNWYWxpZERhdGUoZixfLFQpKXJldHVybiBudWxsO2Nv'@; put 'bnN0IFc9ZnVuY3Rpb24gV3llKGMpe2lmKGM+OTk5OXx8Yz4xMDAmJmM8OTk5fHxjPDEwKXJldHVybi0xO2lmKGM+OTk5KXJldHVybiBjO2NvbnN0IGw9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpO2xldCBkPWMrMTAwKk1hdGguZmxvb3IobC8xMDApO3JldHVybiBkPmwrMjAmJihkLT0xMDAp'@; put 'LGR9KGYpO3JldHVybi0xIT09Vz9uZXcgRGF0ZShXLF8sVCk6bnVsbH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoVGIpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxEYj0oKCk9PntjbGFz'@; put 'cyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fdG91Y2hlZENoYW5nZT1uZXcgYmUsdGhpcy5fZGlydHlDaGFuZ2U9bmV3IGJlfWdldCB0b3VjaGVkQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3RvdWNoZWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IGRpcnR5Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX2Rp'@; put 'cnR5Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpfW1hcmtBc1RvdWNoZWQoKXt0aGlzLl90b3VjaGVkQ2hhbmdlLm5leHQoKX1tYXJrQXNEaXJ0eSgpe3RoaXMuX2RpcnR5Q2hhbmdlLm5leHQoKX1zZXREaXNhYmxlZChhKXt0aGlzLmRpc2FibGVkPWF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlv'@; put 'bihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLHJRPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPWEsdGhpcy5fdG9nZ2xlU2VydmljZT1k'@; put 'LHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT1oLHRoaXMuY29tbW9uU3RyaW5ncz1mfWdldCBkYXlWaWV3KCl7cmV0dXJuIHRoaXMuX2RheVZpZXd9c2V0IGRheVZpZXcoYSl7dGhpcy5fZGF5Vmlldz1hfWdldCBkYXlTdHJpbmcoKXtyZXR1cm4gdGhpcy5kYXlWaWV3LmlzU2VsZWN0ZWQ/'@; put 'dGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJTZWxlY3RlZExhYmVsLHtGVUxMX0RBVEU6dGhpcy5fZGF5Vmlldy5kYXlNb2RlbC50b0RhdGVTdHJpbmcoKX0pOnRoaXMuX2RheVZpZXcuZGF5TW9kZWwudG9EYXRlU3RyaW5nKCl9b25E'@; put 'YXlWaWV3Rm9jdXMoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNlZERheT10aGlzLmRheVZpZXcuZGF5TW9kZWx9c2VsZWN0RGF5KCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm5vdGlmeVNlbGVjdGVkRGF5Q2hhbmdlZCh0aGlzLmRheVZpZXcuZGF5TW9kZWwpLHRo'@; put 'aXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS5tYXJrQXNEaXJ0eSgpLHRoaXMuX3RvZ2dsZVNlcnZpY2Uub3Blbj0hMX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoUGYpLHR0KEtzKSx0dChEYiksdHQoRXMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5'@; put 'cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRheSJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImRheSIsITApfSxpbnB1dHM6e2RheVZpZXc6WyJjbHJEYXlWaWV3IiwiZGF5VmlldyJdfSxkZWNsczoyLHZhcnM6MTMsY29uc3RzOltbInR5cGUiLCJidXR0'@; put 'b24iLDEsImRheS1idG4iLDMsImNsaWNrIiwiZm9jdXMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJidXR0b24iLDApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3REYXkoKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gZC5vbkRheVZpZXdG'@; put 'b2N1cygpfSksTmUoMSkseWUoKSksMiZhJiYoZHIoImlzLXRvZGF5IixkLmRheVZpZXcuaXNUb2RheXNEYXRlKSgiaXMtZXhjbHVkZWQiLGQuZGF5Vmlldy5pc0V4Y2x1ZGVkKSgiaXMtZGlzYWJsZWQiLGQuZGF5Vmlldy5pc0Rpc2FibGVkKSgiaXMtc2VsZWN0ZWQiLGQuZGF5Vmlldy5pc1Nl'@; put 'bGVjdGVkKSxUcigidGFiaW5kZXgiLGQuZGF5Vmlldy50YWJJbmRleCkoImFyaWEtY3VycmVudCIsZC5kYXlWaWV3LmlzVG9kYXlzRGF0ZT8iZGF0ZSI6ImZhbHNlIikoImFyaWEtbGFiZWwiLGQuZGF5U3RyaW5nKSgiYXJpYS1zZWxlY3RlZCIsZC5kYXlWaWV3LmlzU2VsZWN0ZWQpLENlKDEp'@; put 'LGdyKCIgIixkLmRheVZpZXcuZGF5TW9kZWwuZGF0ZSwiICIpKX0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksaVE9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9YSx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9ZCx0aGlz'@; put 'Ll9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPWgsdGhpcy5fZGF0ZUlPU2VydmljZT1mLHRoaXMuX2VsUmVmPV8sdGhpcy5fc3Vicz1bXSx0aGlzLmdlbmVyYXRlQ2FsZW5kYXJWaWV3KCksdGhpcy5pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpfWdldCBsb2NhbGVEYXlzKCl7cmV0dXJuIHRoaXMu'@; put 'X2xvY2FsZUhlbHBlclNlcnZpY2UubG9jYWxlRGF5c31nZXQgY2FsZW5kYXIoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyfWdldCBzZWxlY3RlZERheSgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXl9'@; put 'Z2V0IGZvY3VzZWREYXkoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmZvY3VzZWREYXl9Z2V0IHRvZGF5KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS50b2RheX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZv'@; put 'Y3VzQ2VsbCh0aGlzLl9lbFJlZil9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWJzLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1vbktleURvd24oYSl7aWYoYSYmdGhpcy5mb2N1c2VkRGF5KXN3aXRjaChsMihhLmtleSkpe2Nhc2Ugd28uQXJyb3dVcDphLnByZXZlbnREZWZhdWx0KCksdGhp'@; put 'cy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KC03KTticmVhaztjYXNlIHdvLkFycm93RG93bjphLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KDcpO2JyZWFrO2Nhc2Ugd28uQXJyb3dMZWZ0OmEu'@; put 'cHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoLTEpO2JyZWFrO2Nhc2Ugd28uQXJyb3dSaWdodDphLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KDEpfX1pbml0'@; put 'aWFsaXplU3Vic2NyaXB0aW9ucygpe3RoaXMuX3N1YnMucHVzaCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXJDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5nZW5lcmF0ZUNhbGVuZGFyVmlldygpfSkpLHRoaXMuX3N1YnMucHVzaCh0aGlzLl9kYXRlTmF2'@; put 'aWdhdGlvblNlcnZpY2UuZm9jdXNlZERheUNoYW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMuY2FsZW5kYXJWaWV3TW9kZWwudXBkYXRlRm9jdXNhYmxlRGF5KGEpfSkpLHRoaXMuX3N1YnMucHVzaCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLnN1YnNj'@; put 'cmliZSgoKT0+e3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX0pKX1nZW5lcmF0ZUNhbGVuZGFyVmlldygpe3RoaXMuY2FsZW5kYXJWaWV3TW9kZWw9bmV3IHF5ZSh0aGlzLmNhbGVuZGFyLHRoaXMuc2VsZWN0ZWREYXksdGhpcy5mb2N1c2VkRGF5'@; put 'LHRoaXMudG9kYXksdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZS5maXJzdERheU9mV2Vlayx0aGlzLl9kYXRlSU9TZXJ2aWNlLmRpc2FibGVkRGF0ZXMpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChUYiksdHQoUGYpLHR0KE84KSx0dChQOCks'@; put 'dHQoTmkpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWNhbGVuZGFyIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoImtleWRvd24iLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uS2V5RG93bihmKX0pfSxkZWNsczo0LHZhcnM6Mixjb25zdHM6'@; put 'W1sxLCJjYWxlbmRhci10YWJsZSJdLFsxLCJjYWxlbmRhci1yb3ciLCJ3ZWVrZGF5cyJdLFsiY2xhc3MiLCJjYWxlbmRhci1jZWxsIHdlZWtkYXkiLCJyb2xlIiwiaGVhZGluZyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImNhbGVuZGFyLXJvdyIsNCwibmdGb3IiLCJuZ0Zvck9m'@; put 'Il0sWyJyb2xlIiwiaGVhZGluZyIsMSwiY2FsZW5kYXItY2VsbCIsIndlZWtkYXkiXSxbMSwiY2FsZW5kYXItcm93Il0sWyJjbGFzcyIsImNhbGVuZGFyLWNlbGwiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjYWxlbmRhci1jZWxsIl0sWzMsImNsckRheVZpZXciXV0sdGVtcGxhdGU6ZnVu'@; put 'Y3Rpb24oYSxkKXsxJmEmJihtZSgwLCJ0YWJsZSIsMCkoMSwidHIiLDEpLEplKDIsVTdlLDIsMiwidGgiLDIpLHllKCksSmUoMyxZN2UsMiwxLCJ0ciIsMykseWUoKSksMiZhJiYoQ2UoMiksUmUoIm5nRm9yT2YiLGQubG9jYWxlRGF5cyksQ2UoMSksUmUoIm5nRm9yT2YiLGQuY2FsZW5kYXJW'@; put 'aWV3TW9kZWwuY2FsZW5kYXJWaWV3KSl9LGRlcGVuZGVuY2llczpbclEseHNdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLHhFPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5fZG9jdW1lbnQ9YSx0aGlzLl9pc1VzZXJBZ2VudE1vYmlsZT0hMSx0aGlzLl9kb2N1bWVudCYmKHRo'@; put 'aXMuX2lzVXNlckFnZW50TW9iaWxlPWp5ZS50ZXN0KGEuZGVmYXVsdFZpZXcubmF2aWdhdG9yLnVzZXJBZ2VudCksdGhpcy5faW5uZXJXaWR0aD1hLmRlZmF1bHRWaWV3LmlubmVyV2lkdGgpfWdldCBpc0VuYWJsZWQoKXtyZXR1cm4hKHRoaXMuX2RvY3VtZW50JiZ0aGlzLl9pbm5lcldpZHRo'@; put 'PDc2OCYmdGhpcy5faXNVc2VyQWdlbnRNb2JpbGUpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihMcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLEY4PSgoKT0+e2NsYXNzIGN7Y29uc3Ry'@; put 'dWN0b3IoKXt0aGlzLnBvc2l0aW9uPXgwWyJib3R0b20tbGVmdCJdLHRoaXMuX2N1cnJlbnRWaWV3PSJEQVlWSUVXIn1nZXQgaXNEYXlWaWV3KCl7cmV0dXJuIkRBWVZJRVciPT09dGhpcy5fY3VycmVudFZpZXd9Z2V0IGlzWWVhclZpZXcoKXtyZXR1cm4iWUVBUlZJRVciPT09dGhpcy5fY3Vy'@; put 'cmVudFZpZXd9Z2V0IGlzTW9udGhWaWV3KCl7cmV0dXJuIk1PTlRIVklFVyI9PT10aGlzLl9jdXJyZW50Vmlld31jaGFuZ2VUb01vbnRoVmlldygpe3RoaXMuX2N1cnJlbnRWaWV3PSJNT05USFZJRVcifWNoYW5nZVRvWWVhclZpZXcoKXt0aGlzLl9jdXJyZW50Vmlldz0iWUVBUlZJRVcifWNo'@; put 'YW5nZVRvRGF5Vmlldygpe3RoaXMuX2N1cnJlbnRWaWV3PSJEQVlWSUVXIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksb1E9KCgpPT57Y2xhc3MgY3tj'@; put 'b25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZT1hLHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9ZCx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9aCx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPWYsdGhpcy5fZWxSZWY9Xyx0aGlzLl9mb2N1c2Vk'@; put 'TW9udGhJbmRleD10aGlzLmNhbGVuZGFyTW9udGhJbmRleH1nZXQgbW9udGhOYW1lcygpe3JldHVybiB0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZU1vbnRoc1dpZGV9Z2V0IGNhbGVuZGFyTW9udGhJbmRleCgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlz'@; put 'cGxheWVkQ2FsZW5kYXIubW9udGh9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpfW9uS2V5RG93bihhKXtpZihhKXtjb25zdCBkPWwyKGEua2V5KTtkPT09d28uQXJyb3dVcCYmdGhpcy5fZm9jdXNlZE1vbnRoSW5k'@; put 'ZXg+MD8oYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4LS0sdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKTpkPT09d28uQXJyb3dEb3duJiZ0aGlzLl9mb2N1c2VkTW9udGhJbmRleDwxMT8oYS5wcmV2ZW50RGVmYXVs'@; put 'dCgpLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4KyssdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKTpkPT09d28uQXJyb3dSaWdodCYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg8Nj8oYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRNb250'@; put 'aEluZGV4PXRoaXMuX2ZvY3VzZWRNb250aEluZGV4KzYsdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKTpkPT09d28uQXJyb3dMZWZ0JiZ0aGlzLl9mb2N1c2VkTW9udGhJbmRleD41JiYoYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRN'@; put 'b250aEluZGV4PXRoaXMuX2ZvY3VzZWRNb250aEluZGV4LTYsdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKX19Y2hhbmdlTW9udGgoYSl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmNoYW5nZU1vbnRoKGEpLHRoaXMuX3ZpZXdNYW5hZ2Vy'@; put 'U2VydmljZS5jaGFuZ2VUb0RheVZpZXcoKX1nZXRUYWJJbmRleChhKXtyZXR1cm4gYT09PXRoaXMuX2ZvY3VzZWRNb250aEluZGV4PzA6LTF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEY4KSx0dChUYiksdHQoUGYpLHR0KE84KSx0dChOaSkp'@; put 'fSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItbW9udGhwaWNrZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJrZXlkb3duIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbktleURvd24oZil9KSwyJmEmJmRyKCJtb250aHBp'@; put 'Y2tlciIsITApfSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiY2FsZW5kYXItYnRuIG1vbnRoIiwzLCJpcy1zZWxlY3RlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsIm1vbnRo'@; put 'IiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmSmUoMCxXN2UsMiw0LCJidXR0b24iLDApLDImYSYmUmUoIm5nRm9yT2YiLGQubW9udGhOYW1lcyl9LGRlcGVuZGVuY2llczpbeHNdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpO2NsYXNzIElie2NvbnN0cnVjdG9yKGwp'@; put 'e3RoaXMueWVhcj1sLHRoaXMueWVhclJhbmdlPVtdLHRoaXMuZ2VuZXJhdGVZZWFyUmFuZ2UoKX1nZXQgbWlkZGxlWWVhcigpe3JldHVybiB0aGlzLnllYXJSYW5nZVtNYXRoLmZsb29yKHRoaXMueWVhclJhbmdlLmxlbmd0aC8yKV19bmV4dERlY2FkZSgpe3JldHVybiBuZXcgSWIodGhpcy55'@; put 'ZWFyKzEwKX1wcmV2aW91c0RlY2FkZSgpe3JldHVybiBuZXcgSWIodGhpcy55ZWFyLTEwKX1jdXJyZW50RGVjYWRlKCl7cmV0dXJuIG5ldyBJYigobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpfWluUmFuZ2UobCl7cmV0dXJuIHRoaXMueWVhclJhbmdlLmluZGV4T2YobCk+LTF9Z2VuZXJhdGVZ'@; put 'ZWFyUmFuZ2UoKXtjb25zdCBhPXRoaXMueWVhci10aGlzLnllYXIlMTA7dGhpcy55ZWFyUmFuZ2U9dGhpcy5nZW5lcmF0ZVJhbmdlKGEsYSsxMCl9Z2VuZXJhdGVSYW5nZShsLGEpe3JldHVybiBBcnJheS5mcm9tKHtsZW5ndGg6YS1sfSwoZCxoKT0+aCtsKX19bGV0IGFRPSgoKT0+e2NsYXNz'@; put 'IGN7Y29uc3RydWN0b3IoYSxkLGgsZixfKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9YSx0aGlzLl92aWV3TWFuYWdlclNlcnZpY2U9ZCx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPWgsdGhpcy5fZWxSZWY9Zix0aGlzLmNvbW1vblN0cmluZ3M9Xyx0aGlzLnllYXJSYW5nZU1v'@; put 'ZGVsPW5ldyBJYih0aGlzLmNhbGVuZGFyWWVhciksdGhpcy5fZm9jdXNlZFllYXI9dGhpcy5jYWxlbmRhclllYXJ9Z2V0IGNhbGVuZGFyWWVhcigpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIueWVhcn1uZ0FmdGVyVmlld0luaXQoKXt0aGlz'@; put 'Ll9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZil9b25LZXlEb3duKGEpe2lmKGEpe2NvbnN0IGQ9bDIoYS5rZXkpO2Q9PT13by5BcnJvd1VwPyhhLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZW1lbnRGb2N1c1llYXJCeSgtMSkpOmQ9PT13by5BcnJvd0Rv'@; put 'd24/KGEucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlbWVudEZvY3VzWWVhckJ5KDEpKTpkPT09d28uQXJyb3dSaWdodD8oYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoNSkpOmQ9PT13by5BcnJvd0xlZnQmJihhLnByZXZlbnREZWZhdWx0KCksdGhpcy5p'@; put 'bmNyZW1lbnRGb2N1c1llYXJCeSgtNSkpfX1jaGFuZ2VZZWFyKGEpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5jaGFuZ2VZZWFyKGEpLHRoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZS5jaGFuZ2VUb0RheVZpZXcoKX1wcmV2aW91c0RlY2FkZSgpe3RoaXMueWVhclJhbmdlTW9kZWw9dGhp'@; put 'cy55ZWFyUmFuZ2VNb2RlbC5wcmV2aW91c0RlY2FkZSgpfWN1cnJlbnREZWNhZGUoKXt0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnRvZGF5LnllYXIpfHwodGhpcy55ZWFyUmFuZ2VNb2RlbD10aGlzLnllYXJSYW5nZU1vZGVsLmN1cnJl'@; put 'bnREZWNhZGUoKSksdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpfW5leHREZWNhZGUoKXt0aGlzLnllYXJSYW5nZU1vZGVsPXRoaXMueWVhclJhbmdlTW9kZWwubmV4dERlY2FkZSgpfWdldFRhYkluZGV4KGEpe3JldHVybiB0aGlzLnllYXJSYW5n'@; put 'ZU1vZGVsLmluUmFuZ2UodGhpcy5fZm9jdXNlZFllYXIpfHwodGhpcy5fZm9jdXNlZFllYXI9dGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuY2FsZW5kYXJZZWFyKT90aGlzLmNhbGVuZGFyWWVhcjp0aGlzLnllYXJSYW5nZU1vZGVsLm1pZGRsZVllYXIpLHRoaXMuX2ZvY3VzZWRZ'@; put 'ZWFyPT09YT8wOi0xfWluY3JlbWVudEZvY3VzWWVhckJ5KGEpe3RoaXMuX2ZvY3VzZWRZZWFyPXRoaXMuX2ZvY3VzZWRZZWFyK2EsdGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2ZvY3VzZWRZZWFyKXx8KHRoaXMueWVhclJhbmdlTW9kZWw9YT4wP3RoaXMueWVhclJhbmdlTW9k'@; put 'ZWwubmV4dERlY2FkZSgpOnRoaXMueWVhclJhbmdlTW9kZWwucHJldmlvdXNEZWNhZGUoKSksdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChQZiksdHQo'@; put 'RjgpLHR0KE84KSx0dChOaSksdHQoRXMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXllYXJwaWNrZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJrZXlkb3duIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbktleURv'@; put 'd24oZil9KSwyJmEmJmRyKCJ5ZWFycGlja2VyIiwhMCl9LGRlY2xzOjksdmFyczo3LGNvbnN0czpbWzEsInllYXItc3dpdGNoZXJzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJzd2l0Y2hlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJs'@; put 'ZWZ0Il0sWyJzaGFwZSIsImV2ZW50Il0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXSxbMSwieWVhcnMiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImNhbGVuZGFyLWJ0biB5ZWFyIiwzLCJpcy1zZWxlY3RlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxb'@; put 'InR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsInllYXIiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiZGl2IiwwKSgxLCJidXR0b24iLDEpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5wcmV2aW91c0RlY2FkZSgpfSkscXQoMiwi'@; put 'Y2RzLWljb24iLDIpLHllKCksbWUoMywiYnV0dG9uIiwxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY3VycmVudERlY2FkZSgpfSkscXQoNCwiY2RzLWljb24iLDMpLHllKCksbWUoNSwiYnV0dG9uIiwxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQubmV4dERlY2Fk'@; put 'ZSgpfSkscXQoNiwiY2RzLWljb24iLDQpLHllKCkoKSxtZSg3LCJkaXYiLDUpLEplKDgsRzdlLDIsNCwiYnV0dG9uIiw2KSx5ZSgpKSwyJmEmJihDZSgxKSxUcigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclByZXZpb3VzRGVjYWRlKSxDZSgxKSxUcigidGl0'@; put 'bGUiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c0RlY2FkZSksQ2UoMSksVHIoImFyaWEtbGFiZWwiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50RGVjYWRlKSxDZSgxKSxUcigidGl0bGUiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNr'@; put 'ZXJDdXJyZW50RGVjYWRlKSxDZSgxKSxUcigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlck5leHREZWNhZGUpLENlKDEpLFRyKCJ0aXRsZSIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlck5leHREZWNhZGUpLENlKDIpLFJlKCJuZ0Zvck9mIixkLnll'@; put 'YXJSYW5nZU1vZGVsLnllYXJSYW5nZSkpfSxkZXBlbmRlbmNpZXM6W3FzLHhzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxsUT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZT1hLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZT1k'@; put 'LHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9aCx0aGlzLmNvbW1vblN0cmluZ3M9Zn1nZXQgbW9udGhBdHRyU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyU2VsZWN0TW9udGhUZXh0LHtDQUxFTkRBUl9N'@; put 'T05USDp0aGlzLmNhbGVuZGFyTW9udGh9KX1nZXQgeWVhckF0dHJTdHJpbmcoKXtyZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJTZWxlY3RZZWFyVGV4dCx7Q0FMRU5EQVJfWUVBUjp0aGlzLmNhbGVuZGFyWWVhci50b1N0'@; put 'cmluZygpfSl9Z2V0IGNhbGVuZGFyTW9udGgoKXtyZXR1cm4gdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZS5sb2NhbGVNb250aHNBYmJyZXZpYXRlZFt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIubW9udGhdfWdldCBjYWxlbmRhclllYXIoKXtyZXR1cm4g'@; put 'dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyLnllYXJ9Y2hhbmdlVG9Nb250aFZpZXcoKXt0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9Nb250aFZpZXcoKX1jaGFuZ2VUb1llYXJWaWV3KCl7dGhpcy5fdmlld01hbmFnZXJTZXJ2aWNlLmNoYW5n'@; put 'ZVRvWWVhclZpZXcoKX1uZXh0TW9udGgoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UubW92ZVRvTmV4dE1vbnRoKCl9cHJldmlvdXNNb250aCgpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5tb3ZlVG9QcmV2aW91c01vbnRoKCl9Y3VycmVudE1vbnRoKCl7dGhpcy5fZGF0ZU5h'@; put 'dmlnYXRpb25TZXJ2aWNlLm1vdmVUb0N1cnJlbnRNb250aCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChGOCksdHQoUGYpLHR0KFRiKSx0dChFcykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGF5cGlja2Vy'@; put 'Il1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiZGF5cGlja2VyIiwhMCl9LGRlY2xzOjE4LHZhcnM6MTQsY29uc3RzOltbMSwiY2xyLXNyLW9ubHkiXSxbMSwiY2FsZW5kYXItaGVhZGVyIl0sWzEsImNhbGVuZGFyLXBpY2tlcnMiXSxbInR5cGUiLCJi'@; put 'dXR0b24iLDEsImNhbGVuZGFyLWJ0biIsIm1vbnRocGlja2VyLXRyaWdnZXIiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJ5ZWFycGlja2VyLXRyaWdnZXIiLDMsImNsaWNrIl0sWzEsImNhbGVuZGFyLXN3aXRjaGVycyJdLFsidHlwZSIsImJ1dHRvbiIs'@; put 'MSwiY2FsZW5kYXItYnRuIiwic3dpdGNoZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVmdCJdLFsic2hhcGUiLCJldmVudCJdLFsic2hhcGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUo'@; put 'MCwiZGl2IiwwKSxOZSgxKSx5ZSgpLG1lKDIsImRpdiIsMSkoMywiZGl2IiwyKSg0LCJidXR0b24iLDMpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5jaGFuZ2VUb01vbnRoVmlldygpfSksTmUoNSkseWUoKSxtZSg2LCJidXR0b24iLDQpLHh0KCJjbGljayIsZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gZC5jaGFuZ2VUb1llYXJWaWV3KCl9KSxOZSg3KSx5ZSgpKCksbWUoOCwiZGl2Iiw1KSg5LCJidXR0b24iLDYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5wcmV2aW91c01vbnRoKCl9KSxxdCgxMCwiY2RzLWljb24iLDcpLHllKCksbWUoMTEsImJ1dHRvbiIsNikseHQo'@; put 'ImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmN1cnJlbnRNb250aCgpfSkscXQoMTIsImNkcy1pY29uIiw4KSx5ZSgpLG1lKDEzLCJidXR0b24iLDYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5uZXh0TW9udGgoKX0pLHF0KDE0LCJjZHMtaWNvbiIsOSkseWUoKSgpKCkscXQo'@; put 'MTUsImNsci1jYWxlbmRhciIpLG1lKDE2LCJkaXYiLDApLE5lKDE3KSx5ZSgpKSwyJmEmJihDZSgxKSxvcihkLmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRTdGFydCksQ2UoMyksVHIoImFyaWEtbGFiZWwiLGQubW9udGhBdHRyU3RyaW5nKSgidGl0bGUiLGQubW9udGhBdHRyU3Ry'@; put 'aW5nKSxDZSgxKSxncigiICIsZC5jYWxlbmRhck1vbnRoLCIgIiksQ2UoMSksVHIoImFyaWEtbGFiZWwiLGQueWVhckF0dHJTdHJpbmcpKCJ0aXRsZSIsZC55ZWFyQXR0clN0cmluZyksQ2UoMSksZ3IoIiAiLGQuY2FsZW5kYXJZZWFyLCIgIiksQ2UoMiksVHIoImFyaWEtbGFiZWwiLGQuY29t'@; put 'bW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c01vbnRoKSxDZSgxKSxUcigidGl0bGUiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c01vbnRoKSxDZSgxKSxUcigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnRN'@; put 'b250aCksQ2UoMSksVHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyQ3VycmVudE1vbnRoKSxDZSgxKSxUcigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlck5leHRNb250aCksQ2UoMSksVHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mu'@; put 'a2V5cy5kYXRlcGlja2VyTmV4dE1vbnRoKSxDZSgzKSxvcihkLmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRFbmQpKX0sZGVwZW5kZW5jaWVzOltpUSxxc10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksY1E9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuY29tbW9u'@; put 'U3RyaW5ncz1hLHRoaXMudmlld01hbmFnZXJTZXJ2aWNlPWR9Z2V0IGlzTW9udGhWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzTW9udGhWaWV3fWdldCBpc1llYXJWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzWWVhclZpZXd9Z2V0IGlzRGF5'@; put 'Vmlldygpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5pc0RheVZpZXd9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEVzKSx0dChGOCkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGF0ZXBpY2tlci12'@; put 'aWV3LW1hbmFnZXIiXV0saG9zdEF0dHJzOlsicm9sZSIsImRpYWxvZyJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYoVHIoImFyaWEtbW9kYWwiLCEwKSgiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckRpYWxvZ0xhYmVsKSxk'@; put 'cigiZGF0ZXBpY2tlciIsITApKX0sZmVhdHVyZXM6W3RpKFtPOF0pXSxkZWNsczozLHZhcnM6Myxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoSmUoMCwkN2UsMSwwLCJjbHItbW9udGhwaWNrZXIiLDApLEplKDEscTdlLDEsMCwiY2xyLXllYXJwaWNr'@; put 'ZXIiLDApLEplKDIsSzdlLDEsMCwiY2xyLWRheXBpY2tlciIsMCkpLDImYSYmKFJlKCJuZ0lmIixkLmlzTW9udGhWaWV3KSxDZSgxKSxSZSgibmdJZiIsZC5pc1llYXJWaWV3KSxDZSgxKSxSZSgibmdJZiIsZC5pc0RheVZpZXcpKX0sZGVwZW5kZW5jaWVzOltvUSxhUSxsUSxaaV0sZW5jYXBz'@; put 'dWxhdGlvbjoyfSksY30pKCksTGI9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEE4e2NvbnN0cnVjdG9yKGEsZCxoLGYsXyxULFcsaWUscGUsd2UsRWUsWmUsaXQpe3N1cGVyKGl0LEVlLHdlLFplKSx0aGlzLnJlbmRlcmVyPWEsdGhpcy50b2dnbGVTZXJ2aWNlPWQsdGhpcy5kYXRlTmF2aWdhdGlv'@; put 'blNlcnZpY2U9aCx0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZT1mLHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT1fLHRoaXMuZGF0ZUlPU2VydmljZT1ULHRoaXMuY29tbW9uU3RyaW5ncz1XLHRoaXMuZm9jdXNTZXJ2aWNlPWllLHRoaXMudmlld01hbmFnZXJTZXJ2aWNlPXBlLHRo'@; put 'aXMuY29udHJvbENsYXNzU2VydmljZT13ZSx0aGlzLmxheW91dFNlcnZpY2U9RWUsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPVplLHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPWl0LHRoaXMuZm9jdXM9ITEsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb2N1c1NlcnZpY2UuZm9jdXND'@; put 'aGFuZ2Uuc3Vic2NyaWJlKGV0PT57dGhpcy5mb2N1cz1ldH0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UubWFya0FzVG91Y2hlZCgpfSkpfXNldCBjbHJQb3Np'@; put 'dGlvbihhKXthJiZ4MFthXSYmKHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLnBvc2l0aW9uPXgwW2FdKX1zZXQgYWN0aW9uQnV0dG9uKGEpe3RoaXMudG9nZ2xlQnV0dG9uPWF9Z2V0IHBvcG92ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5wb3NpdGlvbn1nZXQg'@; put 'b3Blbigpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn1nZXQgaXNFbmFibGVkKCl7cmV0dXJuIHRoaXMuZGF0ZXBpY2tlckVuYWJsZWRTZXJ2aWNlLmlzRW5hYmxlZH1nZXQgaXNJbnB1dERhdGVEaXNhYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2wmJnRoaXMuY29udHJvbC5kaXNh'@; put 'YmxlZHx8dGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlJiZ0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UuZGlzYWJsZWR9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGE9PnthP3RoaXMu'@; put 'aW5pdGlhbGl6ZUNhbGVuZGFyKCk6dGhpcy50b2dnbGVCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yRGF0ZUNoYW5nZXMoKSl9Z2V0VG9nZ2xlQnV0dG9uTGFiZWwoYSl7aWYoYSl7Y29uc3QgZD10aGlzLmRhdGVJ'@; put 'T1NlcnZpY2UudG9Mb2NhbGVEaXNwbGF5Rm9ybWF0U3RyaW5nKGEudG9EYXRlKCkpO3JldHVybiB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclRvZ2dsZUNoYW5nZURhdGVMYWJlbCx7U0VMRUNURURfREFURTpkfSl8fHRoaXMuY29t'@; put 'bW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJUb2dnbGV9cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJUb2dnbGVDaG9vc2VEYXRlTGFiZWx8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJUb2dnbGV9bGlzdGVuRm9yRGF0ZUNoYW5nZXMoKXtyZXR1'@; put 'cm4gdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXlDaGFuZ2UucGlwZShjcCh0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheSkpLnN1YnNjcmliZShhPT57aWYodGhpcy5pc0VuYWJsZWQpe2NvbnN0IGQ9dGhpcy5nZXRUb2dnbGVCdXR0b25MYWJlbChh'@; put 'KSxoPXRoaXMudG9nZ2xlQnV0dG9uLm5hdGl2ZUVsZW1lbnQ7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaCwiYXJpYS1sYWJlbCIsZCksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaCwidGl0bGUiLGQpfX0pfWluaXRpYWxpemVDYWxlbmRhcigpe3RoaXMuZGF0ZU5hdmlnYXRpb25T'@; put 'ZXJ2aWNlLmluaXRpYWxpemVDYWxlbmRhcigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChGbyksdHQoS3MpLHR0KFBmKSx0dCh4RSksdHQoRGIpLHR0KFA4KSx0dChFcyksdHQoekYpLHR0KEY4KSx0dChjZCksdHQoT2YsOCksdHQoazApLHR0'@; put 'KGxkKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kYXRlLWNvbnRhaW5lciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJlJvKFg3ZSw1KSwyJmEpe2xldCBoO2FpKGg9bGkoKSkmJihkLmFjdGlvbkJ1dHRvbj1oLmZpcnN0KX19LGhvc3RWYXJz'@; put 'OjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiY2xyLWRhdGUtY29udGFpbmVyIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLGQuaXNJbnB1dERhdGVEaXNhYmxlZCkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLXJvdyIsZC5hZGRHcmlkKCkpfSxpbnB1'@; put 'dHM6e2NsclBvc2l0aW9uOiJjbHJQb3NpdGlvbiJ9LGZlYXR1cmVzOlt0aShbYWQsS3MsSWYsUzgsVGIsY2QsekYsazAsUDgsUGYseEUsRGIsRjgsbGRdKSxlb10sbmdDb250ZW50U2VsZWN0b3JzOmE5ZSxkZWNsczoxMyx2YXJzOjE0LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRy'@; put 'b2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWyJjbHJQb3BvdmVyQW5jaG9yIiwiIiwxLCJjbHItaW5wdXQtd3JhcHBlciJdLFsxLCJjbHItaW5wdXQtZ3JvdXAiXSxbInR5cGUiLCJidXR0b24iLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwiY2xhc3MiLCJjbHItaW5wdXQtZ3Jv'@; put 'dXAtaWNvbi1hY3Rpb24iLDMsImRpc2FibGVkIiw0LCJuZ0lmIl0sWyJjbHJGb2N1c1RyYXAiLCIiLDQsImNsclBvcG92ZXJDb250ZW50IiwiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsImNsclBvcG92ZXJDb250ZW50U2Nyb2xs'@; put 'VG9DbG9zZSJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwic3RhdHVzIiwiZGFuZ2VyIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJjaGVjay1jaXJj'@; put 'bGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvbiIsIiIsMSwiY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9uIiwzLCJkaXNhYmxlZCJdLFsiYWN0aW9uQnV0dG9uIiwi'@; put 'Il0sWyJzdGF0dXMiLCJpbmZvIiwic2hhcGUiLCJjYWxlbmRhciJdLFsiY2xyRm9jdXNUcmFwIiwiIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBlIiwiY2hl'@; put 'Y2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaShzOWUpLGtyKDApLEplKDEsSjdlLDEsMCwibGFiZWwiLDApLG1lKDIsImRpdiIsMSkoMywiZGl2Iiwy'@; put 'KSg0LCJkaXYiLDMpLGtyKDUsMSksSmUoNixRN2UsMywxLCJidXR0b24iLDQpLEplKDcsZTllLDEsMCwiY2xyLWRhdGVwaWNrZXItdmlldy1tYW5hZ2VyIiw1KSx5ZSgpLEplKDgsdDllLDEsMCwiY2RzLWljb24iLDYpLEplKDksbjllLDEsMCwiY2RzLWljb24iLDcpLHllKCksSmUoMTAscjll'@; put 'LDEsMCwibmctY29udGVudCIsMCksSmUoMTEsaTllLDEsMCwibmctY29udGVudCIsMCksSmUoMTIsbzllLDEsMCwibmctY29udGVudCIsMCkseWUoKSksMiZhJiYoQ2UoMSksUmUoIm5nSWYiLCFkLmxhYmVsJiZkLmFkZEdyaWQoKSksQ2UoMSksUmUoIm5nQ2xhc3MiLGQuY29udHJvbENsYXNz'@; put 'KCkpLENlKDIpLGRyKCJjbHItZm9jdXMiLGQuZm9jdXMpLENlKDIpLFJlKCJuZ0lmIixkLmlzRW5hYmxlZCksQ2UoMSksUmUoImNsclBvcG92ZXJDb250ZW50IixkLm9wZW4pKCJjbHJQb3BvdmVyQ29udGVudEF0IixkLnBvcG92ZXJQb3NpdGlvbikoImNsclBvcG92ZXJDb250ZW50T3V0c2lk'@; put 'ZUNsaWNrVG9DbG9zZSIsITApKCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiLCEwKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93SW52YWxpZCksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd1ZhbGlkKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93SGVscGVyKSxDZSgxKSxSZSgibmdJZiIsZC5z'@; put 'aG93SW52YWxpZCksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbY1EsWmksVXMsZGMsd2IsTWIscXMsU2IsTXBdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLCRGPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBUOHtjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGll'@; put 'LHBlLHdlLEVlLFplLGl0KXtzdXBlcihhLExiLGQsXyxmLGgpLHRoaXMuZWw9aCx0aGlzLnJlbmRlcmVyPWYsdGhpcy5jb250cm9sPV8sdGhpcy5jb250YWluZXI9VCx0aGlzLmRhdGVJT1NlcnZpY2U9Vyx0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZT1pZSx0aGlzLmRhdGVwaWNrZXJFbmFi'@; put 'bGVkU2VydmljZT1wZSx0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2U9d2UsdGhpcy5wbGF0Zm9ybUlkPUVlLHRoaXMuZm9jdXNTZXJ2aWNlPVplLHRoaXMuZGF0ZXBpY2tlckZvY3VzU2VydmljZT1pdCx0aGlzLmRhdGVDaGFuZ2U9bmV3IEVyKCExKSx0aGlzLmluZGV4PTF9c2V0IGRhdGUo'@; put 'YSl7dGhpcy5wcmV2aW91c0RhdGVDaGFuZ2UhPT1hJiZ0aGlzLnVwZGF0ZURhdGUodGhpcy5nZXRWYWxpZERhdGVWYWx1ZUZyb21EYXRlKGEpKSx0aGlzLmluaXRpYWxDbHJEYXRlSW5wdXRWYWx1ZXx8KHRoaXMuaW5pdGlhbENsckRhdGVJbnB1dFZhbHVlPWEpfXNldCBtaW4oYSl7dGhpcy5k'@; put 'YXRlSU9TZXJ2aWNlLnNldE1pbkRhdGUoYSl9c2V0IG1heChhKXt0aGlzLmRhdGVJT1NlcnZpY2Uuc2V0TWF4RGF0ZShhKX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlP3RoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS5kaXNhYmxlZDpudWxsfXNl'@; put 'dCBkaXNhYmxlZChhKXt0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UmJnRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS5zZXREaXNhYmxlZCh1ZChhKSl9Z2V0IHBsYWNlaG9sZGVyVGV4dCgpe3JldHVybiB0aGlzLnBsYWNlaG9sZGVyP3RoaXMucGxhY2Vob2xkZXI6dGhpcy5kYXRlSU9T'@; put 'ZXJ2aWNlLnBsYWNlaG9sZGVyVGV4dH1nZXQgaW5wdXRUeXBlKCl7cmV0dXJuIFJzKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMudXNpbmdOYXRpdmVEYXRlcGlja2VyKCk/ImRhdGUiOiJ0ZXh0In1uZ09uSW5pdCgpe3N1cGVyLm5nT25Jbml0KCksdGhpcy5wb3B1bGF0ZVNlcnZpY2VzRnJvbUNv'@; put 'bnRhaW5lckNvbXBvbmVudCgpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yVXNlclNlbGVjdGVkRGF5Q2hhbmdlcygpLHRoaXMubGlzdGVuRm9yQ29udHJvbFZhbHVlQ2hhbmdlcygpLHRoaXMubGlzdGVuRm9yVG91Y2hDaGFuZ2VzKCksdGhpcy5saXN0ZW5Gb3JEaXJ0'@; put 'eUNoYW5nZXMoKSx0aGlzLmxpc3RlbkZvcklucHV0UmVmb2N1cygpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnByb2Nlc3NJbml0aWFsSW5wdXRzKCl9c2V0Rm9jdXNTdGF0ZXMoKXt0aGlzLnNldEZvY3VzKCEwKX10cmlnZ2VyVmFsaWRhdGlvbigpe3N1cGVyLnRyaWdnZXJWYWxpZGF0aW9u'@; put 'KCksdGhpcy5zZXRGb2N1cyghMSl9b25WYWx1ZUNoYW5nZShhKXtjb25zdCBkPXRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhhLnZhbHVlKTtpZih0aGlzLnVzaW5nQ2xhcml0eURhdGVwaWNrZXIoKSYmZCl0aGlzLnVwZGF0ZURhdGUoZCwhMCk7ZWxzZSBp'@; put 'Zih0aGlzLnVzaW5nTmF0aXZlRGF0ZXBpY2tlcigpKXtjb25zdFtoLGYsX109YS52YWx1ZS5zcGxpdCgiLSIpO3RoaXMudXBkYXRlRGF0ZShuZXcgRGF0ZSgraCwrZi0xLCtfKSwhMCl9ZWxzZSB0aGlzLmVtaXREYXRlT3V0cHV0KG51bGwpfXVzaW5nQ2xhcml0eURhdGVwaWNrZXIoKXtyZXR1'@; put 'cm4gdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2UuaXNFbmFibGVkfXVzaW5nTmF0aXZlRGF0ZXBpY2tlcigpe3JldHVybiF0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZS5pc0VuYWJsZWR9c2V0Rm9jdXMoYSl7dGhpcy5mb2N1c1NlcnZpY2UmJih0aGlzLmZvY3VzU2VydmljZS5m'@; put 'b2N1c2VkPWEpfXBvcHVsYXRlU2VydmljZXNGcm9tQ29udGFpbmVyQ29tcG9uZW50KCl7dGhpcy5jb250YWluZXJ8fCh0aGlzLmRhdGVJT1NlcnZpY2U9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIoUDgpLHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPXRoaXMuZ2V0UHJvdmlkZXJG'@; put 'cm9tQ29udGFpbmVyKFBmKSx0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZT10aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcih4RSksdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPXRoaXMuZ2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKERiKSl9cHJvY2Vzc0luaXRpYWxJbnB1dHMo'@; put 'KXt0aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpP3RoaXMudXBkYXRlRGF0ZSh0aGlzLmRhdGVJT1NlcnZpY2UuZ2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcodGhpcy5jb250cm9sLnZhbHVlKSk6dGhpcy51cGRhdGVEYXRlKHRoaXMuaW5pdGlhbENsckRhdGVJbnB1dFZhbHVlKX11'@; put 'cGRhdGVEYXRlKGEsZD0hMSl7Y29uc3QgaD10aGlzLmdldFZhbGlkRGF0ZVZhbHVlRnJvbURhdGUoYSk7ZD90aGlzLmVtaXREYXRlT3V0cHV0KGgpOnRoaXMucHJldmlvdXNEYXRlQ2hhbmdlPWgsdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UmJih0aGlzLmRhdGVOYXZpZ2F0aW9uU2Vydmlj'@; put 'ZS5zZWxlY3RlZERheT1oP25ldyBwMShoLmdldEZ1bGxZZWFyKCksaC5nZXRNb250aCgpLGguZ2V0RGF0ZSgpKTpudWxsKSx0aGlzLnVwZGF0ZUlucHV0KGgpfXVwZGF0ZUlucHV0KGEpe2lmKGEpe2NvbnN0IGQ9dGhpcy5kYXRlSU9TZXJ2aWNlLnRvTG9jYWxlRGlzcGxheUZvcm1hdFN0cmlu'@; put 'ZyhhKTt0aGlzLnVzaW5nTmF0aXZlRGF0ZXBpY2tlcigpPyhhLnNldE1pbnV0ZXMoYS5nZXRNaW51dGVzKCktYS5nZXRUaW1lem9uZU9mZnNldCgpKSx0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWwubmF0aXZlRWxlbWVudCwidmFsdWVBc0RhdGUiLGEpKTp0aGlzLmRhdGVwaWNr'@; put 'ZXJIYXNGb3JtQ29udHJvbCgpJiZkIT09dGhpcy5jb250cm9sLnZhbHVlP3RoaXMuY29udHJvbC5jb250cm9sLnNldFZhbHVlKGQpOnRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsZCl9ZWxzZSB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5'@; put 'KHRoaXMuZWwubmF0aXZlRWxlbWVudCwidmFsdWUiLCIiKX1nZXRWYWxpZERhdGVWYWx1ZUZyb21EYXRlKGEpe2lmKHRoaXMuZGF0ZUlPU2VydmljZSl7Y29uc3QgZD10aGlzLmRhdGVJT1NlcnZpY2UudG9Mb2NhbGVEaXNwbGF5Rm9ybWF0U3RyaW5nKGEpO3JldHVybiB0aGlzLmRhdGVJT1Nl'@; put 'cnZpY2UuZ2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcoZCl9cmV0dXJuIG51bGx9ZW1pdERhdGVPdXRwdXQoYSl7IWZ1bmN0aW9uIEd5ZShjLGwpe3JldHVybiBjIGluc3RhbmNlb2YgRGF0ZSYmbCBpbnN0YW5jZW9mIERhdGUmJmMuZ2V0RnVsbFllYXIoKT09PWwuZ2V0RnVsbFllYXIoKSYm'@; put 'Yy5nZXRNb250aCgpPT09bC5nZXRNb250aCgpJiZjLmdldERhdGUoKT09PWwuZ2V0RGF0ZSgpfShhLHRoaXMucHJldmlvdXNEYXRlQ2hhbmdlKT8odGhpcy5kYXRlQ2hhbmdlLmVtaXQoYSksdGhpcy5wcmV2aW91c0RhdGVDaGFuZ2U9YSk6IWEmJnRoaXMucHJldmlvdXNEYXRlQ2hhbmdlJiYo'@; put 'dGhpcy5kYXRlQ2hhbmdlLmVtaXQobnVsbCksdGhpcy5wcmV2aW91c0RhdGVDaGFuZ2U9bnVsbCl9ZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCl7cmV0dXJuISF0aGlzLmNvbnRyb2x9bGlzdGVuRm9yQ29udHJvbFZhbHVlQ2hhbmdlcygpe3JldHVybiBXaSh0aGlzLmRhdGVwaWNrZXJIYXNG'@; put 'b3JtQ29udHJvbCgpKS5waXBlKElhKGE9PmEpLFNhKCgpPT50aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzKSxJYSgoKT0+IXRoaXMuZGF0ZXBpY2tlckZvY3VzU2VydmljZS5lbGVtZW50SXNGb2N1c2VkKHRoaXMuZWwubmF0aXZlRWxlbWVudCkpKS5zdWJzY3JpYmUoYT0+dGhpcy51cGRhdGVE'@; put 'YXRlKHRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhhKSkpfWxpc3RlbkZvclVzZXJTZWxlY3RlZERheUNoYW5nZXMoKXtyZXR1cm4gdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXlDaGFuZ2Uuc3Vic2NyaWJlKGE9PnRoaXMudXBkYXRl'@; put 'RGF0ZShhLnRvRGF0ZSgpLCEwKSl9bGlzdGVuRm9yVG91Y2hDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS50b3VjaGVkQ2hhbmdlLnBpcGUoSWEoKCk9PnRoaXMuZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCkpKS5zdWJzY3JpYmUoKCk9PnRoaXMuY29udHJv'@; put 'bC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKSl9bGlzdGVuRm9yRGlydHlDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS5kaXJ0eUNoYW5nZS5waXBlKElhKCgpPT50aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpKSkuc3Vic2NyaWJlKCgpPT50aGlzLmNv'@; put 'bnRyb2wuY29udHJvbC5tYXJrQXNEaXJ0eSgpKX1saXN0ZW5Gb3JJbnB1dFJlZm9jdXMoKXtyZXR1cm4gdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXlDaGFuZ2UucGlwZShJYShhPT4hIWEpKS5zdWJzY3JpYmUoKCk9PnRoaXMuZGF0ZXBpY2tlckZvY3VzU2VydmljZS5m'@; put 'b2N1c0lucHV0KHRoaXMuZWwubmF0aXZlRWxlbWVudCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChhcyksdHQoRWEpLHR0KE5pKSx0dChGbyksdHQoenUsMTApLHR0KExiLDgpLHR0KFA4LDgpLHR0KFBmLDgpLHR0KHhFLDgpLHR0KERiLDgp'@; put 'LHR0KEdzKSx0dCh6Riw4KSx0dChPOCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJEYXRlIiwiIl1dLGhvc3RWYXJzOjUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4dCgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGQuc2V0Rm9jdXNTdGF0'@; put 'ZXMoKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBkLnRyaWdnZXJWYWxpZGF0aW9uKCl9KSgiY2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vblZhbHVlQ2hhbmdlKGYudGFyZ2V0KX0pLDImYSYmKHQxKCJkaXNhYmxlZCIsZC5kaXNhYmxlZCksVHIoInBsYWNlaG9sZGVyIixkLnBs'@; put 'YWNlaG9sZGVyVGV4dCkoInR5cGUiLGQuaW5wdXRUeXBlKSxkcigiY2xyLWlucHV0IiwhMCkpfSxpbnB1dHM6e3BsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIsZGF0ZTpbImNsckRhdGUiLCJkYXRlIl0sbWluOiJtaW4iLG1heDoibWF4IixkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntk'@; put 'YXRlQ2hhbmdlOiJjbHJEYXRlQ2hhbmdlIn0sZmVhdHVyZXM6W3RpKFtPOF0pLGVvXX0pLGN9KSgpLHFGPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5kYXRlSU9TZXJ2aWNlPWF9dmFsaWRhdGUoYSl7aWYodGhpcy5kYXRlSU9TZXJ2aWNlKXtjb25zdCBkPXRoaXMuZGF0ZUlP'@; put 'U2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhhLnZhbHVlKSxoPXRoaXMuZGF0ZUlPU2VydmljZS5kaXNhYmxlZERhdGVzLm1pbkRhdGUudG9EYXRlKCksZj10aGlzLmRhdGVJT1NlcnZpY2UuZGlzYWJsZWREYXRlcy5tYXhEYXRlLnRvRGF0ZSgpO2lmKGQmJmQ8dGhpcy5kYXRl'@; put 'SU9TZXJ2aWNlLmRpc2FibGVkRGF0ZXMubWluRGF0ZS50b0RhdGUoKSlyZXR1cm57bWluOnttaW46aC50b0xvY2FsZURhdGVTdHJpbmcoKSxhY3R1YWw6ZC50b0xvY2FsZURhdGVTdHJpbmcoKX19O2lmKGQmJmQ+dGhpcy5kYXRlSU9TZXJ2aWNlLmRpc2FibGVkRGF0ZXMubWF4RGF0ZS50b0Rh'@; put 'dGUoKSlyZXR1cm57bWF4OnttYXg6Zi50b0xvY2FsZURhdGVTdHJpbmcoKSxhY3R1YWw6ZC50b0xvY2FsZURhdGVTdHJpbmcoKX19fXJldHVybiBudWxsfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChQOCw4KSl9LGMuXHUwMjc1ZGlyPUNyKHt0'@; put 'eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsckRhdGUiLCIiXV0sZmVhdHVyZXM6W3RpKFt7cHJvdmlkZTppdSx1c2VFeGlzdGluZzpjLG11bHRpOiEwfV0pXX0pLGN9KSgpLFh5ZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7VnMuYWRkSWNvbnMobzEsczEsaDgsY21lLHVtZSl9fXJldHVy'@; put 'biBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyx3RSxzZCx4YixzYSx5RSxZY11dfSksY30pKCk7bmV3IFNpKHZvaWQgMCk7bGV0IGV3ZT0oKCk9PntjbGFzcyBje2Nv'@; put 'bnN0cnVjdG9yKCl7VnMuYWRkSWNvbnMoZG1lLGhtZSxvMSxzMSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyxxbCxzYSxZY10sWWNdfSksY30pKCks'@; put 'S0Y9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2R5bmFtaWM9ITF9bmdPbkluaXQoKXt0aGlzLmxhYmVsJiZ0aGlzLmxhYmVsLmRpc2FibGVHcmlkKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlw'@; put 'ZTpjLHNlbGVjdG9yczpbWyJjbHItcmFkaW8td3JhcHBlciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLFVzLDcpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQubGFiZWw9Zi5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihh'@; put 'LGQpezImYSYmZHIoImNsci1yYWRpby13cmFwcGVyIiwhMCl9LGZlYXR1cmVzOlt0aShbYWRdKV0sbmdDb250ZW50U2VsZWN0b3JzOnU5ZSxkZWNsczozLHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoYzllKSxrcigwKSxrcigxLDEp'@; put 'LEplKDIsbDllLDEsMCwibGFiZWwiLDApKSwyJmEmJihDZSgyKSxSZSgibmdJZiIsIWQubGFiZWwpKX0sZGVwZW5kZW5jaWVzOltaaSxVc10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksWEY9KCgpPT57Y2xhc3MgYyBleHRlbmRzIFQ4e2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7c3VwZXIoYSxL'@; put 'RixkLGgsZixfKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYXMpLHR0KEVhKSx0dCh6dSwxMCksdHQoRm8pLHR0KE5pKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclJhZGlvIiwiIl1dLGZlYXR1cmVzOltl'@; put 'b119KSxjfSkoKSx0d2U9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEE4e2NvbnN0cnVjdG9yKGEsZCxoLGYpe3N1cGVyKGYsYSxkLGgpLHRoaXMubGF5b3V0U2VydmljZT1hLHRoaXMuY29udHJvbENsYXNzU2VydmljZT1kLHRoaXMubmdDb250cm9sU2VydmljZT1oLHRoaXMuaWZDb250cm9sU3Rh'@; put 'dGVTZXJ2aWNlPWYsdGhpcy5pbmxpbmU9ITF9Z2V0IGNscklubGluZSgpe3JldHVybiB0aGlzLmlubGluZX1zZXQgY2xySW5saW5lKGEpe3RoaXMuaW5saW5lPSJzdHJpbmciPT10eXBlb2YgYT8iZmFsc2UiIT09YTohIWF9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zZXRBcmlhUm9sZXMo'@; put 'KX1zZXRBcmlhUm9sZXMoKXt0aGlzLnJvbGU9dGhpcy5yYWRpb3MubGVuZ3RoPyJncm91cCI6bnVsbH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoT2YsOCksdHQoY2QpLHR0KGswKSx0dChsZCkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNl'@; put 'bGVjdG9yczpbWyJjbHItcmFkaW8tY29udGFpbmVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJklvKGgsWEYsNSksMiZhKXtsZXQgZjthaShmPWxpKCkpJiYoZC5yYWRpb3M9Zil9fSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYm'@; put 'KFRyKCJyb2xlIixkLnJvbGUpLGRyKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PWQuY29udHJvbD9udWxsOmQuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLGQuYWRkR3JpZCgpKSl9LGlucHV0czp7Y2xySW5saW5lOiJjbHJJbmxp'@; put 'bmUifSxmZWF0dXJlczpbdGkoW2swLGxkLGNkLEs1XSksZW9dLG5nQ29udGVudFNlbGVjdG9yczpfOWUsZGVjbHM6MTAsdmFyczo5LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsImNsci1zdWJ0ZXh0LXdyYXBwZXIiXSxbImNs'@; put 'YXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwi'@; put 'c3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIs'@; put 'InN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkodjllKSxrcigwKSxKZSgxLGQ5ZSwxLDAsImxhYmVsIiwwKSxtZSgyLCJkaXYiLDEpLGtyKDMsMSksbWUoNCwiZGl2IiwyKSxKZSg1LGg5'@; put 'ZSwxLDAsIm5nLWNvbnRlbnQiLDApLEplKDYsZjllLDEsMCwiY2RzLWljb24iLDMpLEplKDcscDllLDEsMCwiY2RzLWljb24iLDQpLEplKDgsZzllLDEsMCwibmctY29udGVudCIsMCksSmUoOSxtOWUsMSwwLCJuZy1jb250ZW50IiwwKSx5ZSgpKCkpLDImYSYmKENlKDEpLFJlKCJuZ0lmIiwh'@; put 'ZC5sYWJlbCYmZC5hZGRHcmlkKCkpLENlKDEpLGRyKCJjbHItY29udHJvbC1pbmxpbmUiLGQuY2xySW5saW5lKSxSZSgibmdDbGFzcyIsZC5jb250cm9sQ2xhc3MoKSksQ2UoMyksUmUoIm5nSWYiLGQuc2hvd0hlbHBlciksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLENlKDEpLFJl'@; put 'KCJuZ0lmIixkLnNob3dWYWxpZCksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLENlKDEpLFJlKCJuZ0lmIixkLnNob3dWYWxpZCkpfSxkZXBlbmRlbmNpZXM6W1ppLFVzLGRjLHFzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxud2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigp'@; put 'e1ZzLmFkZEljb25zKG8xLHMxKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLFljLHdFLHNhXSxZY119KSxjfSkoKSxyd2U9KCgpPT57Y2xhc3MgY3tj'@; put 'b25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKG8xLHMxKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLFljLHdFLHNhXSxZY119KSxjfSkoKSxIOD0oKCk9'@; put 'PntjbGFzcyBjIGV4dGVuZHMgQTh7Y29uc3RydWN0b3IoYSxkLGgsZil7c3VwZXIoZixhLGQsaCksdGhpcy5sYXlvdXRTZXJ2aWNlPWEsdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlPWQsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPWgsdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9Zix0aGlzLm11'@; put 'bHRpPSExfW5nT25Jbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLmNvbnRyb2xDaGFuZ2VzLnN1YnNjcmliZShhPT57YSYmKHRoaXMubXVsdGk9YS52YWx1ZUFjY2Vzc29yIGluc3RhbmNlb2YgZGIsdGhpcy5jb250cm9sPWEpfSkpfXdyYXBwZXJD'@; put 'bGFzcygpe3JldHVybiB0aGlzLm11bHRpPyJjbHItbXVsdGlzZWxlY3Qtd3JhcHBlciI6ImNsci1zZWxlY3Qtd3JhcHBlciJ9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KE9mLDgpLHR0KGNkKSx0dChrMCksdHQobGQpKX0sYy5cdTAyNzVjbXA9'@; put 'd3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXNlbGVjdC1jb250YWluZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmSW8oaCxkYiw1KSwyJmEpe2xldCBmO2FpKGY9bGkoKSkmJihkLm11bHRpcGxlPWYuZmlyc3QpfX0saG9zdFZhcnM6Nixob3N0QmluZGlu'@; put 'Z3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PWQuY29udHJvbD9udWxsOmQuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLGQuYWRkR3JpZCgpKX0sZmVhdHVyZXM6W3RpKFtsZCxrMCxhZCxj'@; put 'ZF0pLGVvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RTllLGRlY2xzOjEwLHZhcnM6OCxjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFszLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJleGNsYW1h'@; put 'dGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxb'@; put 'InNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwic3RhdHVzIiwiZGFuZ2VyIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFs'@; put 'aWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKHg5ZSksa3IoMCksSmUoMSxiOWUsMSwwLCJsYWJlbCIsMCksbWUoMiwiZGl2IiwxKSgzLCJkaXYiLDIpLGtyKDQsMSksSmUoNSx5OWUsMSwwLCJjZHMtaWNvbiIsMyksSmUoNix3OWUsMSwwLCJjZHMtaWNvbiIs'@; put 'NCkseWUoKSxKZSg3LEM5ZSwxLDAsIm5nLWNvbnRlbnQiLDApLEplKDgsUzllLDEsMCwibmctY29udGVudCIsMCksSmUoOSxNOWUsMSwwLCJuZy1jb250ZW50IiwwKSx5ZSgpKSwyJmEmJihDZSgxKSxSZSgibmdJZiIsIWQubGFiZWwmJmQuYWRkR3JpZCgpKSxDZSgxKSxSZSgibmdDbGFzcyIs'@; put 'ZC5jb250cm9sQ2xhc3MoKSksQ2UoMSksUmUoIm5nQ2xhc3MiLGQud3JhcHBlckNsYXNzKCkpLENlKDIpLFJlKCJuZ0lmIixkLnNob3dJbnZhbGlkKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93VmFsaWQpLENlKDEpLFJlKCJuZ0lmIixkLnNob3dIZWxwZXIpLENlKDEpLFJlKCJuZ0lmIixkLnNo'@; put 'b3dJbnZhbGlkKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltaaSxVcyxkYyxxc10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksTjg9KCgpPT57Y2xhc3MgYyBleHRlbmRzIFQ4e2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7c3VwZXIoYSxIOCxkLGgsZixfKSx0'@; put 'aGlzLmluZGV4PTF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGFzKSx0dChFYSksdHQoenUsMTApLHR0KEZvKSx0dChOaSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJTZWxlY3QiLCIiXV0saG9zdFZhcnM6'@; put 'Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJjbHItc2VsZWN0IiwhMCl9LGZlYXR1cmVzOltlb119KSxjfSkoKSxpd2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKG8xLHMxKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVy'@; put 'biBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLHFsLHNhLFljXSxZY119KSxjfSkoKSx1UT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgQTh7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBsO3JldHVybiBmdW5j'@; put 'dGlvbihkKXtyZXR1cm4obHx8KGw9eGEoYykpKShkfHxjKX19KCksYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXRleHRhcmVhLWNvbnRhaW5lciJdXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImNsci1mb3JtLWNvbnRyb2wi'@; put 'LCEwKSgiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCIsbnVsbD09ZC5jb250cm9sP251bGw6ZC5jb250cm9sLmRpc2FibGVkKSgiY2xyLXJvdyIsZC5hZGRHcmlkKCkpfSxmZWF0dXJlczpbdGkoW2xkLGswLGFkLGNkXSksZW9dLG5nQ29udGVudFNlbGVjdG9yczpPOWUsZGVjbHM6MTAsdmFy'@; put 'czo3LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsImNsci10ZXh0YXJlYS13cmFwcGVyIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIi'@; put 'LCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwi'@; put 'c3RhdHVzIiwiZGFuZ2VyIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlv'@; put 'bihhLGQpezEmYSYmKEFpKFI5ZSksa3IoMCksSmUoMSxrOWUsMSwwLCJsYWJlbCIsMCksbWUoMiwiZGl2IiwxKSgzLCJkaXYiLDIpLGtyKDQsMSksSmUoNSxBOWUsMSwwLCJjZHMtaWNvbiIsMyksSmUoNixUOWUsMSwwLCJjZHMtaWNvbiIsNCkseWUoKSxKZSg3LEQ5ZSwxLDAsIm5nLWNvbnRl'@; put 'bnQiLDApLEplKDgsSTllLDEsMCwibmctY29udGVudCIsMCksSmUoOSxMOWUsMSwwLCJuZy1jb250ZW50IiwwKSx5ZSgpKSwyJmEmJihDZSgxKSxSZSgibmdJZiIsIWQubGFiZWwmJmQuYWRkR3JpZCgpKSxDZSgxKSxSZSgibmdDbGFzcyIsZC5jb250cm9sQ2xhc3MoKSksQ2UoMyksUmUoIm5n'@; put 'SWYiLGQuc2hvd0ludmFsaWQpLENlKDEpLFJlKCJuZ0lmIixkLnNob3dWYWxpZCksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd0hlbHBlciksQ2UoMSksUmUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLENlKDEpLFJlKCJuZ0lmIixkLnNob3dWYWxpZCkpfSxkZXBlbmRlbmNpZXM6W1ppLFVzLGRjLHFz'@; put 'XSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxvd2U9KCgpPT57Y2xhc3MgYyBleHRlbmRzIFQ4e2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7c3VwZXIoYSx1USxkLGgsZixfKSx0aGlzLmluZGV4PTF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGFz'@; put 'KSx0dChFYSksdHQoenUsMTApLHR0KEZvKSx0dChOaSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJUZXh0YXJlYSIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImNsci10ZXh0YXJlYSIsITApfSxmZWF0dXJl'@; put 'czpbZW9dfSksY30pKCksc3dlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtWcy5hZGRJY29ucyhvMSxzMSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6'@; put 'W1tvbyxxbCxzYSxZY10sWWNdfSksY30pKCksZFE9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vXSxZYyxUeWUsT3llLFh5ZSxl'@; put 'USxld2UsbndlLGl3ZSxzd2UscndlLFB5ZV19KSxjfSkoKSxoUT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9KSgp'@; put 'LGF3ZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9KSgpO2NsYXNzIEVFe31sZXQgUmI9KCgpPT57Y2xhc3MgY3tj'@; put 'b25zdHJ1Y3Rvcigpe3RoaXMubmJDaGFuZ2VzPTAsdGhpcy5fY2hhbmdlPW5ldyBiZX1nZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1jaGFuZ2VTdGFydCgpe3RoaXMubmJDaGFuZ2VzKyt9Y2hhbmdlRG9uZSgpezA9PS0tdGhpcy5uYkNoYW5nZXMmJnRo'@; put 'aXMuX2NoYW5nZS5uZXh0KCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLEVwPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5zdGF0ZURl'@; put 'Ym91bmNlcj1hLHRoaXMuYWN0aXZhdGVkPSExLHRoaXMuX3NpemU9MCx0aGlzLl9jdXJyZW50PTEsdGhpcy5fY2hhbmdlPW5ldyBiZSx0aGlzLnByZXZlbnRFbWl0PSExLHRoaXMuX3NpemVDaGFuZ2U9bmV3IGJlfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX3NpemV9c2V0IHNpemUoYSl7Y29u'@; put 'c3QgZD10aGlzLl9zaXplO2EhPT1kJiYodGhpcy5wcmV2ZW50RW1pdHx8dGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX3NpemU9YSx0aGlzLl9jdXJyZW50PTA9PT1hPzE6TWF0aC5mbG9vcihkL2EqKHRoaXMuX2N1cnJlbnQtMSkpKzEsdGhpcy5wcmV2ZW50RW1pdHx8'@; put 'KHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpLHRoaXMuX3NpemVDaGFuZ2UubmV4dCh0aGlzLl9zaXplKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKSkpLHRoaXMucHJldmVudEVtaXQ9ITF9Z2V0IHRvdGFsSXRlbXMoKXtyZXR1cm4gdGhpcy5fdG90YWxJdGVtc3x8'@; put 'MH1zZXQgdG90YWxJdGVtcyhhKXt0aGlzLl90b3RhbEl0ZW1zPWEsdGhpcy5jdXJyZW50PnRoaXMubGFzdCYmKHRoaXMuY3VycmVudD10aGlzLmxhc3QpfWdldCBsYXN0KCl7cmV0dXJuIHRoaXMuX2xhc3Q/dGhpcy5fbGFzdDp0aGlzLnNpemU+MCYmdGhpcy50b3RhbEl0ZW1zP01hdGguY2Vp'@; put 'bCh0aGlzLnRvdGFsSXRlbXMvdGhpcy5zaXplKToxfXNldCBsYXN0KGEpe3RoaXMuX2xhc3Q9YX1nZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgc2l6ZUNoYW5nZSgpe3JldHVybiB0aGlzLl9zaXplQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBj'@; put 'dXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoYSl7YSE9PXRoaXMuX2N1cnJlbnQmJih0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZVN0YXJ0KCksdGhpcy5fY3VycmVudD1hLHRoaXMuX2NoYW5nZS5uZXh0KGEpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9u'@; put 'ZSgpKX1nZXQgZmlyc3RJdGVtKCl7cmV0dXJuIDA9PT10aGlzLl90b3RhbEl0ZW1zPy0xOjA9PT10aGlzLnNpemU/MDoodGhpcy5jdXJyZW50LTEpKnRoaXMuc2l6ZX1nZXQgbGFzdEl0ZW0oKXtpZigwPT09dGhpcy5fdG90YWxJdGVtcylyZXR1cm4tMTtpZigwPT09dGhpcy5zaXplKXJldHVy'@; put 'biB0aGlzLnRvdGFsSXRlbXMtMTtsZXQgYT10aGlzLmN1cnJlbnQqdGhpcy5zaXplLTE7cmV0dXJuIHRoaXMudG90YWxJdGVtcyYmKGE9TWF0aC5taW4oYSx0aGlzLnRvdGFsSXRlbXMtMSkpLGF9cHJldmlvdXMoKXt0aGlzLmN1cnJlbnQ+MSYmdGhpcy5jdXJyZW50LS19bmV4dCgpe3RoaXMu'@; put 'Y3VycmVudDx0aGlzLmxhc3QmJnRoaXMuY3VycmVudCsrfXJlc2V0UGFnZVNpemUoYT0hMSl7dGhpcy5wcmV2ZW50RW1pdD1hLHRoaXMuc2l6ZT0wfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihSYikpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2Vu'@; put 'OmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLEZmPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9wYWdlPWEsdGhpcy5zdGF0ZURlYm91bmNlcj1kLHRoaXMuX2NoYW5nZT1uZXcgYmUsdGhpcy5fYWxsPVtdfWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdl'@; put 'LmFzT2JzZXJ2YWJsZSgpfWhhc0FjdGl2ZUZpbHRlcnMoKXtmb3IoY29uc3R7ZmlsdGVyOmF9b2YgdGhpcy5fYWxsKWlmKGEmJmEuaXNBY3RpdmUoKSlyZXR1cm4hMDtyZXR1cm4hMX1nZXRBY3RpdmVGaWx0ZXJzKCl7Y29uc3QgYT1bXTtmb3IoY29uc3R7ZmlsdGVyOmR9b2YgdGhpcy5fYWxs'@; put 'KWQmJmQuaXNBY3RpdmUoKSYmYS5wdXNoKGQpO3JldHVybiBhfWFkZChhKXtjb25zdCBkPWEuY2hhbmdlcy5zdWJzY3JpYmUoKCk9PnRoaXMucmVzZXRQYWdlQW5kRW1pdEZpbHRlckNoYW5nZShbYV0pKTtsZXQgaD0hMTtjb25zdCBmPW5ldyBrRShhLCgpPT57aWYoaClyZXR1cm47ZC51bnN1'@; put 'YnNjcmliZSgpO2NvbnN0IF89dGhpcy5fYWxsLmZpbmRJbmRleChUPT5ULmZpbHRlcj09PWEpO18+PTAmJnRoaXMuX2FsbC5zcGxpY2UoXywxKSxhLmlzQWN0aXZlKCkmJnRoaXMucmVzZXRQYWdlQW5kRW1pdEZpbHRlckNoYW5nZShbXSksaD0hMH0pO3JldHVybiB0aGlzLl9hbGwucHVzaChm'@; put 'KSxhLmlzQWN0aXZlKCkmJnRoaXMucmVzZXRQYWdlQW5kRW1pdEZpbHRlckNoYW5nZShbYV0pLGZ9YWNjZXB0cyhhKXtmb3IoY29uc3R7ZmlsdGVyOmR9b2YgdGhpcy5fYWxsKWlmKGQmJmQuaXNBY3RpdmUoKSYmIWQuYWNjZXB0cyhhKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXNldFBhZ2VBbmRF'@; put 'bWl0RmlsdGVyQ2hhbmdlKGEpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9wYWdlLmN1cnJlbnQ9MSx0aGlzLl9jaGFuZ2UubmV4dChhKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVy'@; put 'biBuZXcoYXx8YykoYXIoRXApLGFyKFJiKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3Mga0V7Y29uc3RydWN0b3IobCxhKXt0aGlzLmZpbHRlcj1sLHRoaXMudW5yZWdpc3Rlcj1hfX1sZXQgQUU9KCgpPT57Y2xhc3MgY3tjb25z'@; put 'dHJ1Y3RvcihhKXt0aGlzLmZpbHRlcnM9YX1nZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMucmVnaXN0ZXJlZCYmdGhpcy5yZWdpc3RlcmVkLmZpbHRlcn1uZ09uRGVzdHJveSgpe3RoaXMuZGVsZXRlRmlsdGVyKCl9c2V0RmlsdGVyKGEpe3RoaXMuZGVsZXRlRmlsdGVyKCksYSBpbnN0YW5jZW9m'@; put 'IGtFP3RoaXMucmVnaXN0ZXJlZD1hOmEmJih0aGlzLnJlZ2lzdGVyZWQ9dGhpcy5maWx0ZXJzLmFkZChhKSl9ZGVsZXRlRmlsdGVyKCl7dGhpcy5yZWdpc3RlcmVkJiYodGhpcy5yZWdpc3RlcmVkLnVucmVnaXN0ZXIoKSxkZWxldGUgdGhpcy5yZWdpc3RlcmVkKX19cmV0dXJuIGMuXHUwMjc1'@; put 'ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoRmYpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6Y30pLGN9KSgpLE9iPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBBRXtjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3N1cGVyKGEpLHRoaXMuY29tbW9uU3RyaW5ncz1kLHRoaXMuc21hcnRU'@; put 'b2dnbGVTZXJ2aWNlPWgsdGhpcy5wbGF0Zm9ybUlkPWYsdGhpcy5lbGVtZW50UmVmPV8sdGhpcy5vcGVuQ2hhbmdlPW5ldyBFcighMSksdGhpcy5hcmlhRXhwYW5kZWQ9ITEsdGhpcy5wb3BvdmVySWQ9SWMoKSx0aGlzLnNtYXJ0UG9zaXRpb249e2F4aXM6dnUuVkVSVElDQUwsc2lkZTpvZC5B'@; put 'RlRFUixhbmNob3I6UHMuRU5ELGNvbnRlbnQ6UHMuRU5EfSx0aGlzLl9vcGVuPSExLHRoaXMuc3Vicz1bXSx0aGlzLnN1YnMucHVzaChoLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKFQ9Pnt0aGlzLm9wZW49VCx0aGlzLmFyaWFFeHBhbmRlZD1UfSkpfWdldCBvcGVuKCl7cmV0dXJuIHRoaXMuX29w'@; put 'ZW59c2V0IG9wZW4oYSl7dGhpcy5vcGVuIT09KGE9ISFhKSYmKHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlLm9wZW49YSx0aGlzLm9wZW5DaGFuZ2UuZW1pdChhKSwhYSYmUnModGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuX29wZW49YSl9'@; put 'c2V0IGN1c3RvbUZpbHRlcihhKXt0aGlzLnNldEZpbHRlcihhKX1nZXQgYWN0aXZlKCl7cmV0dXJuISF0aGlzLmZpbHRlciYmdGhpcy5maWx0ZXIuaXNBY3RpdmUoKX1uZ09uQ2hhbmdlcygpe3RoaXMuc2V0VG9nZ2xlQnV0dG9uQXJpYUxhYmVsKCl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09u'@; put 'RGVzdHJveSgpLHRoaXMuc3Vicy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9c2V0VG9nZ2xlQnV0dG9uQXJpYUxhYmVsKCl7Y29uc3QgaD10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudD8uY2xvc2VzdCgiY2xyLWRnLWNvbHVtbiIpPy5xdWVyeVNlbGVjdG9yKCIuZGF0YWdyaWQt'@; put 'Y29sdW1uLXRpdGxlIik/LnRleHRDb250ZW50LnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSgpO3RoaXMudG9nZ2xlQnV0dG9uQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRhZ3JpZEZpbHRlckFyaWFMYWJlbCx7Q09MVU1OOmh8'@; put 'fCIifSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEZmKSx0dChFcyksdHQoS3MpLHR0KEdzKSx0dChOaSkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctZmlsdGVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihh'@; put 'LGQpe2lmKDEmYSYmUm8oUDllLDUsTmkpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQuYW5jaG9yPWguZmlyc3QpfX0saW5wdXRzOntvcGVuOlsiY2xyRGdGaWx0ZXJPcGVuIiwib3BlbiJdLGN1c3RvbUZpbHRlcjpbImNsckRnRmlsdGVyIiwiY3VzdG9tRmlsdGVyIl19LG91dHB1dHM6e29w'@; put 'ZW5DaGFuZ2U6ImNsckRnRmlsdGVyT3BlbkNoYW5nZSJ9LGZlYXR1cmVzOlt0aShbe3Byb3ZpZGU6RUUsdXNlRXhpc3Rpbmc6Y31dKSxlbyx2YV0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjQsdmFyczoxMyxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsImNsclBvcG92ZXJBbmNob3Ii'@; put 'LCIiLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwxLCJkYXRhZ3JpZC1maWx0ZXItdG9nZ2xlIl0sWyJhbmNob3IiLCIiXSxbInNvbGlkIiwiIl0sWyJjbGFzcyIsImRhdGFncmlkLWZpbHRlciIsImNsckZvY3VzVHJhcCIsIiIsInJvbGUiLCJkaWFsb2ciLDMsImlkIiw0LCJjbHJQ'@; put 'b3BvdmVyQ29udGVudCIsImNsclBvcG92ZXJDb250ZW50QXQiLCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiXSxbImNsckZvY3VzVHJhcCIsIiIsInJvbGUiLCJkaWFsb2ciLDEsImRhdGFncmlkLWZpbHRlciIs'@; put 'MywiaWQiXSxbMSwiZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbHJQb3BvdmVyQ2xvc2VCdXR0b24iLCIiLDEsImNsb3NlIl0sWyJzaGFwZSIsIndpbmRvdy1jbG9zZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksbWUoMCwi'@; put 'YnV0dG9uIiwwLDEpLHF0KDIsImNkcy1pY29uIiwyKSx5ZSgpLEplKDMsRjllLDUsMywiZGl2IiwzKSksMiZhJiYoZHIoImRhdGFncmlkLWZpbHRlci1vcGVuIixkLm9wZW4pKCJkYXRhZ3JpZC1maWx0ZXJlZCIsZC5hY3RpdmUpLFRyKCJhcmlhLWxhYmVsIixkLnRvZ2dsZUJ1dHRvbkFyaWFM'@; put 'YWJlbCkoImFyaWEtZXhwYW5kZWQiLGQuYXJpYUV4cGFuZGVkKSgiYXJpYS1jb250cm9scyIsZC5wb3BvdmVySWQpLENlKDIpLFRyKCJzdGF0dXMiLGQuYWN0aXZlPyJpbmZvIjpudWxsKSgic2hhcGUiLGQuYWN0aXZlPyJmaWx0ZXItZ3JpZC1jaXJjbGUiOiJmaWx0ZXItZ3JpZCIpLENlKDEp'@; put 'LFJlKCJjbHJQb3BvdmVyQ29udGVudCIsZC5vcGVuKSgiY2xyUG9wb3ZlckNvbnRlbnRBdCIsZC5zbWFydFBvc2l0aW9uKSgiY2xyUG9wb3ZlckNvbnRlbnRPdXRzaWRlQ2xpY2tUb0Nsb3NlIiwhMCkoImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSIsITApKX0sZGVwZW5kZW5jaWVz'@; put 'Olt3YixNYixxcyxTYixNcCxGSl0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCk7Y2xhc3MgSkZ7Y29uc3RydWN0b3IobCl7dGhpcy5wcm9wPWwsbC5pbmRleE9mKCIuIik+PTAmJih0aGlzLnNwbGl0UHJvcD1sLnNwbGl0KCIuIikpfWdldFByb3BWYWx1ZShsKXtpZih0aGlzLnNwbGl0UHJvcCl7'@; put 'bGV0IGE9bDtmb3IoY29uc3QgZCBvZiB0aGlzLnNwbGl0UHJvcCl7aWYobnVsbD09PWF8fHR5cGVvZiBhPiJ1Inx8dHlwZW9mIGFbZF0+InUiKXJldHVybjthPWFbZF19cmV0dXJuIGF9cmV0dXJuIGxbdGhpcy5wcm9wXX19Y2xhc3MgVEV7Y29uc3RydWN0b3IobCxhPSExKXt0aGlzLnByb3A9'@; put 'bCx0aGlzLmV4YWN0PWEsdGhpcy5uZXN0ZWRQcm9wPW5ldyBKRihsKX1hY2NlcHRzKGwsYSxkKXtjb25zdCBoPXRoaXMubmVzdGVkUHJvcC5nZXRQcm9wVmFsdWUobCk7cmV0dXJuISh2b2lkIDA9PT1ofHxudWxsIT09YSYmKCJudW1iZXIiIT10eXBlb2YgaHx8aDxhKXx8bnVsbCE9PWQmJigi'@; put 'bnVtYmVyIiE9dHlwZW9mIGh8fGg+ZCkpfX1jbGFzcyBKNXtjb25zdHJ1Y3RvcihsKXt0aGlzLmZpbHRlckZuPWwsdGhpcy5fY2hhbmdlcz1uZXcgYmUsdGhpcy5fbG93PW51bGwsdGhpcy5faGlnaD1udWxsfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXMuYXNPYnNlcnZhYmxl'@; put 'KCl9Z2V0IHZhbHVlKCl7cmV0dXJuW3RoaXMuX2xvdyx0aGlzLl9oaWdoXX1zZXQgdmFsdWUobCl7Y29uc3QgYT1sWzBdLGQ9bFsxXTsoYSE9PXRoaXMuX2xvd3x8ZCE9PXRoaXMuX2hpZ2gpJiYodGhpcy5fbG93PWEsdGhpcy5faGlnaD1kLHRoaXMuX2NoYW5nZXMubmV4dChbdGhpcy5fbG93'@; put 'LHRoaXMuX2hpZ2hdKSl9Z2V0IGxvdygpe3JldHVybiB0aGlzLl9sb3d9c2V0IGxvdyhsKXtsIT09dGhpcy5fbG93JiYodGhpcy5fbG93PWwsdGhpcy5fY2hhbmdlcy5uZXh0KFt0aGlzLl9sb3csdGhpcy5faGlnaF0pKX1nZXQgaGlnaCgpe3JldHVybiB0aGlzLl9oaWdofXNldCBoaWdoKGwp'@; put 'e2whPT10aGlzLl9oaWdoJiYodGhpcy5faGlnaD1sLHRoaXMuX2NoYW5nZXMubmV4dChbdGhpcy5fbG93LHRoaXMuX2hpZ2hdKSl9Z2V0IHN0YXRlKCl7cmV0dXJuIHRoaXMuZmlsdGVyRm4gaW5zdGFuY2VvZiBURT97cHJvcGVydHk6dGhpcy5maWx0ZXJGbi5wcm9wLGxvdzp0aGlzLl9sb3cs'@; put 'aGlnaDp0aGlzLl9oaWdofTp0aGlzfWlzQWN0aXZlKCl7cmV0dXJuIG51bGwhPT10aGlzLl9sb3d8fG51bGwhPT10aGlzLmhpZ2h9YWNjZXB0cyhsKXtyZXR1cm4gdGhpcy5maWx0ZXJGbi5hY2NlcHRzKGwsdGhpcy5fbG93LHRoaXMuX2hpZ2gpfWVxdWFscyhsKXtyZXR1cm4gbCBpbnN0YW5j'@; put 'ZW9mIEo1JiYobC5maWx0ZXJGbiBpbnN0YW5jZW9mIFRFP3RoaXMuZmlsdGVyRm4gaW5zdGFuY2VvZiBURSYmbC5maWx0ZXJGbi5wcm9wPT09dGhpcy5maWx0ZXJGbi5wcm9wJiZsLmxvdz09PXRoaXMuX2xvdyYmbC5oaWdoPT09dGhpcy5faGlnaDpsPT09dGhpcyl9fWxldCBmUT0oKCk9Pntj'@; put 'bGFzcyBjIGV4dGVuZHMgQUV7Y29uc3RydWN0b3IoYSxkLGgsZixfKXtzdXBlcihhKSx0aGlzLmRvbUFkYXB0ZXI9ZCx0aGlzLmNvbW1vblN0cmluZ3M9aCx0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlPWYsdGhpcy5uZ1pvbmU9Xyx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlPW5ldyBFcix0aGlz'@; put 'Lm9wZW49ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdfWdldCB2YWx1ZSgpe3JldHVyblt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF19c2V0IHZhbHVlKGEpe3RoaXMuZmlsdGVyJiZBcnJheS5pc0FycmF5KGEpP2EmJihhWzBdIT09dGhpcy5maWx0ZXIubG93fHxhWzFdIT09dGhp'@; put 'cy5maWx0ZXIuaGlnaCkmJih0aGlzLmZpbHRlci5sb3c9Im51bWJlciI9PXR5cGVvZiBhWzBdP2FbMF06bnVsbCx0aGlzLmZpbHRlci5oaWdoPSJudW1iZXIiPT10eXBlb2YgYVsxXT9hWzFdOm51bGwsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KGEpKTp0aGlzLmluaXRGaWx0ZXJWYWx1'@; put 'ZXM9YX1zZXQgY3VzdG9tTnVtZXJpY0ZpbHRlcihhKXt0aGlzLnNldEZpbHRlcihhIGluc3RhbmNlb2Yga0U/YTpuZXcgSjUoYSkpLHRoaXMuaW5pdEZpbHRlclZhbHVlcyYmKHRoaXMudmFsdWU9dGhpcy5pbml0RmlsdGVyVmFsdWVzLGRlbGV0ZSB0aGlzLmluaXRGaWx0ZXJWYWx1ZXMpfWdl'@; put 'dCBtYXhQbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMubWF4UGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1heFZhbHVlfWdldCBtaW5QbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMubWluUGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1p'@; put 'blZhbHVlfWdldCBsb3coKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHRoaXMuZmlsdGVyLmxvdyYmaXNGaW5pdGUodGhpcy5maWx0ZXIubG93KT90aGlzLmZpbHRlci5sb3c6bnVsbH1zZXQgbG93KGEpeyJudW1iZXIiPT10eXBlb2YgYSYmYSE9PXRoaXMuZmlsdGVyLmxvdz8odGhpcy5maWx0'@; put 'ZXIubG93PWEsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF0pKToibnVtYmVyIiE9dHlwZW9mIGEmJih0aGlzLmZpbHRlci5sb3c9bnVsbCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoW3RoaXMuZmlsdGVyLmxvdyx0aGlz'@; put 'LmZpbHRlci5oaWdoXSkpfWdldCBoaWdoKCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0aGlzLmZpbHRlci5oaWdoJiZpc0Zpbml0ZSh0aGlzLmZpbHRlci5oaWdoKT90aGlzLmZpbHRlci5oaWdoOm51bGx9c2V0IGhpZ2goYSl7Im51bWJlciI9PXR5cGVvZiBhJiZhIT09dGhpcy5maWx0ZXIu'@; put 'aGlnaD8odGhpcy5maWx0ZXIuaGlnaD1hLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChbdGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdKSk6Im51bWJlciIhPXR5cGVvZiBhJiYodGhpcy5maWx0ZXIuaGlnaD1udWxsLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChbdGhp'@; put 'cy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdKSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5wb3BvdmVyVG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy5vcGVuPWEsdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3Vs'@; put 'YXIoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRvbUFkYXB0ZXIuZm9jdXModGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KX0pfSl9KSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PnthLnVuc3Vic2Ny'@; put 'aWJlKCl9KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoRmYpLHR0KGgxKSx0dChFcyksdHQoS3MpLHR0KE5vKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1udW1lcmljLWZpbHRlciJdXSx2aWV3UXVlcnk6'@; put 'ZnVuY3Rpb24oYSxkKXtpZigxJmEmJihSbyhIOWUsNSksUm8oT2IsNSkpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQuaW5wdXQ9aC5maXJzdCksYWkoaD1saSgpKSYmKGQuZmlsdGVyQ29udGFpbmVyPWguZmlyc3QpfX0saW5wdXRzOnttaW5QbGFjZWhvbGRlcjpbImNsckZpbHRlck1pblBs'@; put 'YWNlaG9sZGVyIiwibWluUGxhY2Vob2xkZXIiXSxtYXhQbGFjZWhvbGRlcjpbImNsckZpbHRlck1heFBsYWNlaG9sZGVyIiwibWF4UGxhY2Vob2xkZXIiXSx2YWx1ZTpbImNsckZpbHRlclZhbHVlIiwidmFsdWUiXSxjdXN0b21OdW1lcmljRmlsdGVyOlsiY2xyRGdOdW1lcmljRmlsdGVyIiwi'@; put 'Y3VzdG9tTnVtZXJpY0ZpbHRlciJdfSxvdXRwdXRzOntmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVDaGFuZ2UifSxmZWF0dXJlczpbdGkoW3twcm92aWRlOkVFLHVzZUV4aXN0aW5nOmN9XSksZW9dLGRlY2xzOjYsdmFyczo4LGNvbnN0czpbWzMsImNsckRnRmlsdGVyIiwiY2xy'@; put 'RGdGaWx0ZXJPcGVuIiwiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIl0sWyJ0eXBlIiwibnVtYmVyIiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwibmFtZSIsImxvdyIsMSwiZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW5wdXQiLDMsIm5nTW9kZWwiLCJwbGFjZWhvbGRlciIsIm5nTW9kZWxDaGFuZ2Ui'@; put 'XSxbImlucHV0X2xvdyIsIiJdLFsxLCJkYXRhZ3JpZC1maWx0ZXItaW5wdXQtc3BhY2VyIl0sWyJ0eXBlIiwibnVtYmVyIiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwibmFtZSIsImhpZ2giLDEsImRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWlucHV0IiwzLCJuZ01vZGVsIiwicGxhY2Vob2xkZXIi'@; put 'LCJuZ01vZGVsQ2hhbmdlIl0sWyJpbnB1dF9oaWdoIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiY2xyLWRnLWZpbHRlciIsMCkseHQoImNsckRnRmlsdGVyT3BlbkNoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQub3Blbj1mfSksbWUoMSwiaW5wdXQiLDEsMiks'@; put 'eHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmxvdz1mfSkseWUoKSxxdCgzLCJzcGFuIiwzKSxtZSg0LCJpbnB1dCIsNCw1KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQuaGlnaD1mfSkseWUoKSgpKSwyJmEmJihSZSgiY2xyRGdGaWx0ZXIi'@; put 'LGQucmVnaXN0ZXJlZCkoImNsckRnRmlsdGVyT3BlbiIsZC5vcGVuKSxDZSgxKSxSZSgibmdNb2RlbCIsZC5sb3cpKCJwbGFjZWhvbGRlciIsZC5taW5QbGFjZWhvbGRlclZhbHVlKSxUcigiYXJpYS1sYWJlbCIsZC5taW5QbGFjZWhvbGRlclZhbHVlKSxDZSgzKSxSZSgibmdNb2RlbCIsZC5o'@; put 'aWdoKSgicGxhY2Vob2xkZXIiLGQubWF4UGxhY2Vob2xkZXJWYWx1ZSksVHIoImFyaWEtbGFiZWwiLGQubWF4UGxhY2Vob2xkZXJWYWx1ZSkpfSxkZXBlbmRlbmNpZXM6W09iLGFFLFdhLEJzLE9zXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTtjbGFzcyBERXtjb25zdHJ1Y3RvcihsLGE9ITEp'@; put 'e3RoaXMucHJvcD1sLHRoaXMuZXhhY3Q9YSx0aGlzLm5lc3RlZFByb3A9bmV3IEpGKGwpfWFjY2VwdHMobCxhKXtjb25zdCBkPXRoaXMubmVzdGVkUHJvcC5nZXRQcm9wVmFsdWUobCk7cmV0dXJuISh0eXBlb2YgZD4idSIpJiYodGhpcy5leGFjdD8oIiIrZCkudG9Mb3dlckNhc2UoKT09PWE6'@; put 'KCIiK2QpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhKT49MCl9fWNsYXNzIFE1e2NvbnN0cnVjdG9yKGwpe3RoaXMuZmlsdGVyRm49bCx0aGlzLl9jaGFuZ2VzPW5ldyBiZSx0aGlzLl9sb3dlckNhc2VWYWx1ZT0iIix0aGlzLl9yYXdWYWx1ZT0iIn1nZXQgY2hhbmdlcygpe3JldHVybiB0aGlz'@; put 'Ll9jaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpfWdldCBsb3dlckNhc2VWYWx1ZSgpe3JldHVybiB0aGlzLl9sb3dlckNhc2VWYWx1ZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIERFP3twcm9wZXJ0eTp0aGlzLmZpbHRlckZuLnByb3AsdmFsdWU6dGhpcy52YWx1'@; put 'ZX06dGhpc31nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5fcmF3VmFsdWV9c2V0IHZhbHVlKGwpe2x8fChsPSIiKSxsIT09dGhpcy5fcmF3VmFsdWUmJih0aGlzLl9yYXdWYWx1ZT1sLHRoaXMuX2xvd2VyQ2FzZVZhbHVlPWwudG9Mb3dlckNhc2UoKS50cmltKCksdGhpcy5fY2hhbmdlcy5uZXh0'@; put 'KGwpKX1pc0FjdGl2ZSgpe3JldHVybiEhdGhpcy52YWx1ZX1hY2NlcHRzKGwpe3JldHVybiB0aGlzLmZpbHRlckZuLmFjY2VwdHMobCx0aGlzLmxvd2VyQ2FzZVZhbHVlKX1lcXVhbHMobCl7cmV0dXJuIGwgaW5zdGFuY2VvZiBRNSYmKGwuZmlsdGVyRm4gaW5zdGFuY2VvZiBERT90aGlzLmZp'@; put 'bHRlckZuIGluc3RhbmNlb2YgREUmJmwuZmlsdGVyRm4ucHJvcD09PXRoaXMuZmlsdGVyRm4ucHJvcCYmbC52YWx1ZT09PXRoaXMudmFsdWU6bD09PXRoaXMpfX1sZXQgUUY9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEFFe2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7c3VwZXIoYSksdGhpcy5kb21B'@; put 'ZGFwdGVyPWQsdGhpcy5jb21tb25TdHJpbmdzPWgsdGhpcy5zbWFydFRvZ2dsZVNlcnZpY2U9Zix0aGlzLm5nWm9uZT1fLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2U9bmV3IEVyLHRoaXMub3Blbj0hMSx0aGlzLnN1YnM9W119c2V0IGN1c3RvbVN0cmluZ0ZpbHRlcihhKXt0aGlzLnNldEZpbHRl'@; put 'cihhIGluc3RhbmNlb2Yga0U/YTpuZXcgUTUoYSkpLHRoaXMuaW5pdEZpbHRlclZhbHVlJiYodGhpcy52YWx1ZT10aGlzLmluaXRGaWx0ZXJWYWx1ZSxkZWxldGUgdGhpcy5pbml0RmlsdGVyVmFsdWUpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlci52YWx1ZX1zZXQgdmFsdWUoYSl7'@; put 'dGhpcy5maWx0ZXImJiJzdHJpbmciPT10eXBlb2YgYT8oYXx8KGE9IiIpLGEhPT10aGlzLmZpbHRlci52YWx1ZSYmKHRoaXMuZmlsdGVyLnZhbHVlPWEsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KGEpKSk6dGhpcy5pbml0RmlsdGVyVmFsdWU9YX1nZXQgcGxhY2Vob2xkZXJWYWx1ZSgp'@; put 'e3JldHVybiB0aGlzLnBsYWNlaG9sZGVyfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5maWx0ZXJJdGVtc31uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN1YnMucHVzaCh0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy5vcGVuPWEsdGhpcy5uZ1pv'@; put 'bmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRvbUFkYXB0ZXIuZm9jdXModGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KX0pfSl9KSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuc3Vicy5mb3JFYWNoKGE9PmEu'@; put 'dW5zdWJzY3JpYmUoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEZmKSx0dChoMSksdHQoRXMpLHR0KEtzKSx0dChObykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctc3RyaW5nLWZpbHRlciJdXSx2aWV3'@; put 'UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJihSbyhOOWUsNSksUm8oT2IsNSkpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQuaW5wdXQ9aC5maXJzdCksYWkoaD1saSgpKSYmKGQuZmlsdGVyQ29udGFpbmVyPWguZmlyc3QpfX0saW5wdXRzOntwbGFjZWhvbGRlcjpbImNsckZpbHRlclBs'@; put 'YWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiXSxjdXN0b21TdHJpbmdGaWx0ZXI6WyJjbHJEZ1N0cmluZ0ZpbHRlciIsImN1c3RvbVN0cmluZ0ZpbHRlciJdLHZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ2YWx1ZSJdfSxvdXRwdXRzOntmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVD'@; put 'aGFuZ2UifSxmZWF0dXJlczpbdGkoW3twcm92aWRlOkVFLHVzZUV4aXN0aW5nOmN9XSksZW9dLGRlY2xzOjMsdmFyczo1LGNvbnN0czpbWzMsImNsckRnRmlsdGVyIiwiY2xyRGdGaWx0ZXJPcGVuIiwiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIl0sWyJ0eXBlIiwidGV4dCIsImF1dG9jb21wbGV0'@; put 'ZSIsIm9mZiIsIm5hbWUiLCJzZWFyY2giLDEsImNsci1pbnB1dCIsMywibmdNb2RlbCIsInBsYWNlaG9sZGVyIiwibmdNb2RlbENoYW5nZSJdLFsiaW5wdXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJjbHItZGctZmlsdGVyIiwwKSx4dCgiY2xyRGdGaWx0ZXJP'@; put 'cGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vcGVuPWZ9KSxtZSgxLCJpbnB1dCIsMSwyKSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQudmFsdWU9Zn0pLHllKCkoKSksMiZhJiYoUmUoImNsckRnRmlsdGVyIixkLnJlZ2lzdGVyZWQpKCJjbHJEZ0ZpbHRl'@; put 'ck9wZW4iLGQub3BlbiksQ2UoMSksUmUoIm5nTW9kZWwiLGQudmFsdWUpKCJwbGFjZWhvbGRlciIsZC5wbGFjZWhvbGRlclZhbHVlKSxUcigiYXJpYS1sYWJlbCIsZC5wbGFjZWhvbGRlclZhbHVlKSl9LGRlcGVuZGVuY2llczpbT2IsV2EsQnMsT3NdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgp'@; put 'LGtwPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyB5OHt9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD14YShjKSkpKGR8fGMpfX0oKSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQi'@; put 'XV0sZmVhdHVyZXM6W2VvXX0pLGN9KSgpLFY4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmFjdGlvbmFibGVDb3VudD0wfWdldCBoYXNBY3Rpb25hYmxlUm93KCl7cmV0dXJuIHRoaXMuYWN0aW9uYWJsZUNvdW50PjB9cmVnaXN0ZXIoKXt0aGlzLmFjdGlvbmFibGVDb3VudCsr'@; put 'fXVucmVnaXN0ZXIoKXt0aGlzLmFjdGlvbmFibGVDb3VudC0tfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxCOD0oKCk9PntjbGFzcyBjIGV4dGVuZHMg'@; put 'dzh7Y29uc3RydWN0b3IoYSxkLGgpe2lmKCFkKXRocm93IG5ldyBFcnJvcigiY2xyLWRnLXJvdyBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci1kYXRhZ3JpZCIpO3N1cGVyKGEsZCksdGhpcy5yb3dBY3Rpb25zPWh9Z2V0IGZsYXZvcigpe3JldHVybiB0aGlzLnJvd0FjdGlv'@; put 'bnMuaGFzQWN0aW9uYWJsZVJvd319cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVWEpLHR0KGtwLDgpLHR0KFY4KSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdLFsiY2xyLWRnLXJvdyJdXSxmZWF0'@; put 'dXJlczpbZW9dfSksY30pKCksaDI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU3RhdGU9ITEsdGhpcy5fZW5hYmxlZD0hMSx0aGlzLl9zdGF0ZT1uZXcgVGUodGhpcy50b2dnbGVTdGF0ZSl9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH1zZXQgZW5h'@; put 'YmxlZChhKXt0aGlzLl9lbmFibGVkPWF9Z2V0IHN0YXRlKCl7cmV0dXJuIHRoaXMuY2FjaGV9Z2V0IHN0YXRlQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3N0YXRlLmFzT2JzZXJ2YWJsZSgpfWdldCBpc09wZW4oKXtyZXR1cm4hMD09PXRoaXMudG9nZ2xlU3RhdGV9Y2xvc2UoKXt0aGlzLnRvZ2ds'@; put 'ZVN0YXRlPSExLHRoaXMuX3N0YXRlLm5leHQodGhpcy50b2dnbGVTdGF0ZSksdGhpcy5idXR0b24mJih0aGlzLmJ1dHRvbi5mb2N1cygpLHRoaXMuYnV0dG9uPW51bGwpfW9wZW4oYSxkKXt0aGlzLmNhY2hlPWEsdGhpcy5idXR0b249ZCx0aGlzLnRvZ2dsZVN0YXRlPSEwLHRoaXMuX3N0YXRl'@; put 'Lm5leHQodGhpcy50b2dnbGVTdGF0ZSl9dG9nZ2xlKGEsZCl7dGhpcy5pc1Jvd09wZW4oYSl8fCFhP3RoaXMuY2xvc2UoKTp0aGlzLm9wZW4oYSxkKX1pc1Jvd09wZW4oYSl7cmV0dXJuISghdGhpcy50b2dnbGVTdGF0ZXx8dGhpcy5jYWNoZSE9PWEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVu'@; put 'Y3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxqOD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuZGV0YWlsU2VydmljZT1hLHRoaXMuZXhwYW5kYWJsZUNvdW50PTB9Z2V0IGhhc0V4'@; put 'cGFuZGFibGVSb3coKXtyZXR1cm4hdGhpcy5kZXRhaWxTZXJ2aWNlLmVuYWJsZWQmJnRoaXMuZXhwYW5kYWJsZUNvdW50PjB9cmVnaXN0ZXIoKXt0aGlzLmV4cGFuZGFibGVDb3VudCsrfXVucmVnaXN0ZXIoKXt0aGlzLmV4cGFuZGFibGVDb3VudC0tfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVu'@; put 'Y3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihoMikpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLHo4PSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyB3OHtjb25zdHJ1Y3RvcihhLGQsaCl7aWYoIWQpdGhyb3cgbmV3IEVycm9yKCJjbHItZGct'@; put 'cm93IHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyLWRhdGFncmlkIik7c3VwZXIoYSxkKSx0aGlzLmV4cGFuZGFibGVDb3VudD1ofWdldCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5leHBhbmRhYmxlQ291bnQuaGFzRXhwYW5kYWJsZVJvd319cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1'@; put 'bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVWEpLHR0KGtwLDgpLHR0KGo4KSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdLFsiY2xyLWRnLXJvdyJdXSxmZWF0dXJlczpbZW9dfSksY30pKCk7Y2xhc3MgSUV7Y29uc3RydWN0b3IobCl7'@; put 'dGhpcy5wcm9wPWwsdGhpcy5uZXN0ZWRQcm9wPW5ldyBKRihsKX1jb21wYXJlKGwsYSl7bGV0IGQ9dGhpcy5uZXN0ZWRQcm9wLmdldFByb3BWYWx1ZShsKSxoPXRoaXMubmVzdGVkUHJvcC5nZXRQcm9wVmFsdWUoYSk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkJiYoZD1kLnRvTG93ZXJDYXNl'@; put 'KCkpLCJzdHJpbmciPT10eXBlb2YgaCYmKGg9aC50b0xvd2VyQ2FzZSgpKSx0eXBlb2YgZD4idSJ8fG51bGw9PT1kP3R5cGVvZiBoPiJ1Inx8bnVsbD09PWg/MDoxOnR5cGVvZiBoPiJ1Inx8bnVsbD09PWh8fGQ8aD8tMTpkPmg/MTowfX12YXIgSTA9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5V'@; put 'TlNPUlRFRD0wXT0iVU5TT1JURUQiLGNbYy5BU0M9MV09IkFTQyIsY1tjLkRFU0M9LTFdPSJERVNDIixjfShJMHx8e30pO2xldCBlSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmNvbHVtblZpZXc9dGhpcy50ZW1w'@; put 'bGF0ZVJlZi5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCl9bmdPbkRlc3Ryb3koKXt0aGlzLmNvbHVtblZpZXcuZGVzdHJveSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siZGctd3Jh'@; put 'cHBlZC1jb2x1bW4iXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZSbyhWOWUsNSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC50ZW1wbGF0ZVJlZj1oLmZpcnN0KX19LG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1siY29sdW1uUG9ydGFs'@; put 'IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxKZSgwLEI5ZSwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDAsa2MpKX0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksTEU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLnN0YXRlRGVib3VuY2VyPWEsdGhpcy5f'@; put 'cmV2ZXJzZT0hMSx0aGlzLl9jaGFuZ2U9bmV3IGJlfWdldCBjb21wYXJhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBhcmF0b3J9c2V0IGNvbXBhcmF0b3IoYSl7dGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX2NvbXBhcmF0b3I9YSx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlz'@; put 'LnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKX1nZXQgcmV2ZXJzZSgpe3JldHVybiB0aGlzLl9yZXZlcnNlfXNldCByZXZlcnNlKGEpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9yZXZlcnNlPWEsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5zdGF0ZURlYm91bmNl'@; put 'ci5jaGFuZ2VEb25lKCl9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9dG9nZ2xlKGEsZCl7dGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuY29tcGFyYXRvcj09PWE/dGhpcy5fcmV2ZXJzZT10eXBlb2YgZDwidSImJmR8fCF0aGlz'@; put 'Ll9yZXZlcnNlOih0aGlzLl9jb21wYXJhdG9yPWEsdGhpcy5fcmV2ZXJzZT10eXBlb2YgZDwidSImJmQpLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9uZSgpfWNsZWFyKCl7dGhpcy5jb21wYXJhdG9yPW51bGx9Y29tcGFyZShhLGQpe3JldHVybih0aGlz'@; put 'LnJldmVyc2U/LTE6MSkqdGhpcy5jb21wYXJhdG9yLmNvbXBhcmUoYSxkKX1lbWl0Q2hhbmdlKCl7dGhpcy5fY2hhbmdlLm5leHQodGhpcyl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKFJiKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46Yyxm'@; put 'YWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7dmFyIGYyPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuQUxJR05fQ09MVU1OUz0wXT0iQUxJR05fQ09MVU1OUyIsY1tjLkNBTENVTEFURV9NT0RFX09OPTFdPSJDQUxDVUxBVEVfTU9ERV9PTiIsY1tjLkNBTENVTEFURV9NT0RFX09GRj0yXT0iQ0FM'@; put 'Q1VMQVRFX01PREVfT0ZGIixjW2MuQ0xFQVJfV0lEVEhTPTNdPSJDTEVBUl9XSURUSFMiLGNbYy5DT01QVVRFX0NPTFVNTl9XSURUSFM9NF09IkNPTVBVVEVfQ09MVU1OX1dJRFRIUyIsY30oZjJ8fHt9KTtsZXQgZWc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3JlbmRlclN0'@; put 'ZXA9bmV3IGJlLHRoaXMuYWxyZWFkeVNpemVkPSExfWdldCByZW5kZXJTdGVwKCl7cmV0dXJuIHRoaXMuX3JlbmRlclN0ZXAuYXNPYnNlcnZhYmxlKCl9ZmlsdGVyUmVuZGVyU3RlcHMoYSl7cmV0dXJuIHRoaXMucmVuZGVyU3RlcC5waXBlKElhKGQ9PmE9PT1kKSl9cmVzaXplKCl7dGhpcy5f'@; put 'cmVuZGVyU3RlcC5uZXh0KGYyLkNBTENVTEFURV9NT0RFX09OKSx0aGlzLmFscmVhZHlTaXplZCYmdGhpcy5fcmVuZGVyU3RlcC5uZXh0KGYyLkNMRUFSX1dJRFRIUyksdGhpcy5fcmVuZGVyU3RlcC5uZXh0KGYyLkNPTVBVVEVfQ09MVU1OX1dJRFRIUyksdGhpcy5fcmVuZGVyU3RlcC5uZXh0'@; put 'KGYyLkFMSUdOX0NPTFVNTlMpLHRoaXMuYWxyZWFkeVNpemVkPSEwLHRoaXMuX3JlbmRlclN0ZXAubmV4dChmMi5DQUxDVUxBVEVfTU9ERV9PRkYpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rv'@; put 'cnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx0SD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLmVsPWEsdGhpcy5kb21BZGFwdGVyPWQsdGhpcy5vcmdhbml6ZXI9aCx0aGlzLl9yZXNpemVkQnk9MH1nZXQgcmVzaXplZEJ5KCl7cmV0dXJuIHRoaXMuX3Jlc2l6ZWRCeX1nZXQg'@; put 'bWluQ29sdW1uV2lkdGgoKXtyZXR1cm4gdGhpcy5kb21BZGFwdGVyLm1pbldpZHRoKHRoaXMuZWwubmF0aXZlRWxlbWVudCl8fDk2fWdldCBtYXhSZXNpemVSYW5nZSgpe3JldHVybiB0aGlzLndpZHRoQmVmb3JlUmVzaXplLXRoaXMubWluQ29sdW1uV2lkdGh9Z2V0IHdpZHRoQWZ0ZXJSZXNp'@; put 'emUoKXtyZXR1cm4gdGhpcy53aWR0aEJlZm9yZVJlc2l6ZSt0aGlzLl9yZXNpemVkQnl9c3RhcnRSZXNpemUoKXt0aGlzLl9yZXNpemVkQnk9MCx0aGlzLmlzV2l0aGluTWF4UmVzaXplUmFuZ2U9ITAsdGhpcy53aWR0aEJlZm9yZVJlc2l6ZT10aGlzLmRvbUFkYXB0ZXIuY2xpZW50UmVjdCh0'@; put 'aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLndpZHRofWVuZFJlc2l6ZSgpe3RoaXMub3JnYW5pemVyLnJlc2l6ZSgpfWNhbGN1bGF0ZVJlc2l6ZShhKXthPC10aGlzLm1heFJlc2l6ZVJhbmdlPyh0aGlzLl9yZXNpemVkQnk9LXRoaXMubWF4UmVzaXplUmFuZ2UsdGhpcy5pc1dpdGhpbk1heFJlc2l6'@; put 'ZVJhbmdlPSExKToodGhpcy5fcmVzaXplZEJ5PWEsdGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlPSEwKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoTmkpLGFyKGgxKSxhcihlZykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9y'@; put 'eTpjLlx1MDI3NWZhY30pLGN9KSgpLG5IPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5wbGF0Zm9ybUlkPWF9Z2V0IHRhYmxlUmVmKCl7cmV0dXJuIHRoaXMuX3RhYmxlUmVmfXNldCB0YWJsZVJlZihhKXt0aGlzLl90YWJsZVJlZj1hfXNldCB0YWJsZShhKXtScyh0aGlzLnBs'@; put 'YXRmb3JtSWQpJiZhLm5hdGl2ZUVsZW1lbnQmJih0aGlzLnRhYmxlUmVmPWEubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZGF0YWdyaWQtdGFibGUiKSl9Z2V0Q29sdW1uRHJhZ0hlaWdodCgpe3JldHVybiB0aGlzLnRhYmxlUmVmP2Ake3RoaXMudGFibGVSZWYuY2xpZW50SGVpZ2h0'@; put 'fXB4YDpudWxsfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihHcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLGdRPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQpe3Ro'@; put 'aXMuY29sdW1uUmVzaXplclNlcnZpY2U9YSx0aGlzLnJlbmRlcmVyPWQsdGhpcy5uZ1pvbmU9aCx0aGlzLnRhYmxlU2l6ZVNlcnZpY2U9Zix0aGlzLmNvbW1vblN0cmluZz1fLHRoaXMuZG9jdW1lbnQ9VCx0aGlzLmNvbHVtblNlcGFyYXRvcklkPUljKCksdGhpcy5yZXNpemVTdGFydGVkT25L'@; put 'ZXlEb3duPSExLHRoaXMudW5saXN0ZW5lcnM9W119Z2V0IGRlc2NyaXB0aW9uSWQoKXtyZXR1cm5gJHt0aGlzLmNvbHVtblNlcGFyYXRvcklkfS1hcmlhLWRlc2NyaWJlZGJ5YH1nZXQgcmVzaXplVHJhY2tlckVsKCl7cmV0dXJuIHRoaXMucmVzaXplVHJhY2tlclJlZi5uYXRpdmVFbGVtZW50'@; put 'fWdldCBjb2x1bW5IYW5kbGVFbCgpe3JldHVybiB0aGlzLmNvbHVtbkhhbmRsZVJlZi5uYXRpdmVFbGVtZW50fW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy51bmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMu'@; put 'Y29sdW1uSGFuZGxlRWwsImtleWRvd24iLGE9Pnt0aGlzLnNob3dUcmFja2VyT25GaXJzdEtleURvd24oYSksdGhpcy5tb3ZlVHJhY2tlck9uS2V5RG93bihhKX0pKSx0aGlzLnVubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5jb2x1bW5IYW5kbGVFbCwia2V5dXAi'@; put 'LGE9Pnt0aGlzLmhpZGVUcmFja2VyT25LZXlVcChhKX0pKX0pfW5nT25EZXN0cm95KCl7dGhpcy51bmxpc3RlbmVycy5mb3JFYWNoKGE9PmEoKSl9c2hvd1RyYWNrZXIoKXt0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLnN0YXJ0UmVzaXplKCk7Y29uc3QgYT10aGlzLnRhYmxlU2l6ZVNlcnZp'@; put 'Y2UuZ2V0Q29sdW1uRHJhZ0hlaWdodCgpO3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsImhlaWdodCIsYSksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwiZGlzcGxheSIsImJsb2NrIil9bW92ZVRyYWNrZXIoYSl7dGhpcy5j'@; put 'b2x1bW5SZXNpemVyU2VydmljZS5jYWxjdWxhdGVSZXNpemUoYSksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwidHJhbnNmb3JtIixgdHJhbnNsYXRlWCgke3RoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5fXB4KWApLHRoaXMucmVuZGVyZXIu'@; put 'c2V0U3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCJjdXJzb3IiLCJjb2wtcmVzaXplIiksdGhpcy5yZWRGbGFnVHJhY2tlcigpfWhpZGVUcmFja2VyKCl7dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5lbmRSZXNpemUoKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tl'@; put 'ckVsLCJkaXNwbGF5Iiwibm9uZSIpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsInRyYW5zZm9ybSIsInRyYW5zbGF0ZVgoMHB4KSIpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCJjdXJzb3IiLCJhdXRvIil9c2hvd1RyYWNr'@; put 'ZXJPbkZpcnN0S2V5RG93bihhKXshdGhpcy5yZXNpemVTdGFydGVkT25LZXlEb3duJiYodGhpcy5pc0Fycm93TGVmdEtleUV2ZW50KGEpfHx0aGlzLmlzQXJyb3dSaWdodEtleUV2ZW50KGEpKSYmKHRoaXMucmVzaXplU3RhcnRlZE9uS2V5RG93bj0hMCx0aGlzLnJlbmRlcmVyLmFkZENsYXNz'@; put 'KHRoaXMucmVzaXplVHJhY2tlckVsLCJvbi1hcnJvdy1rZXktcmVzaXplIiksdGhpcy5zaG93VHJhY2tlcigpKX1tb3ZlVHJhY2tlck9uS2V5RG93bihhKXt0aGlzLmlzQXJyb3dMZWZ0S2V5RXZlbnQoYSk/dGhpcy5tb3ZlVHJhY2tlcih0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLnJlc2l6'@; put 'ZWRCeS0xMik6dGhpcy5pc0Fycm93UmlnaHRLZXlFdmVudChhKSYmdGhpcy5tb3ZlVHJhY2tlcih0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLnJlc2l6ZWRCeSsxMil9aGlkZVRyYWNrZXJPbktleVVwKGEpe3RoaXMucmVzaXplU3RhcnRlZE9uS2V5RG93biYmKHRoaXMuaXNBcnJvd0xlZnRL'@; put 'ZXlFdmVudChhKXx8dGhpcy5pc0Fycm93UmlnaHRLZXlFdmVudChhKSkmJih0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd249ITEsdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwib24tYXJyb3cta2V5LXJlc2l6ZSIpLHRoaXMuaGlkZVRyYWNrZXIoKSx0'@; put 'aGlzLmNvbHVtbkhhbmRsZUVsLmZvY3VzKCkpfXJlZEZsYWdUcmFja2VyKCl7dGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlIT09dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlJiYodGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlPXRoaXMuY29sdW1u'@; put 'UmVzaXplclNlcnZpY2UuaXNXaXRoaW5NYXhSZXNpemVSYW5nZSx0aGlzLmlzV2l0aGluTWF4UmVzaXplUmFuZ2U/dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwiZXhjZWVkZWQtbWF4Iik6dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnJlc2l6ZVRy'@; put 'YWNrZXJFbCwiZXhjZWVkZWQtbWF4IikpfWlzQXJyb3dMZWZ0S2V5RXZlbnQoYSl7cmV0dXJuIGwyKGEua2V5KT09PXdvLkFycm93TGVmdH1pc0Fycm93UmlnaHRLZXlFdmVudChhKXtyZXR1cm4gbDIoYS5rZXkpPT09d28uQXJyb3dSaWdodH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGEpe3JldHVybiBuZXcoYXx8YykodHQodEgpLHR0KEZvKSx0dChObyksdHQobkgpLHR0KEVzKSx0dChMcykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctY29sdW1uLXNlcGFyYXRvciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJihSbyhq'@; put 'OWUsNSksUm8oejllLDUpKSwyJmEpe2xldCBoO2FpKGg9bGkoKSkmJihkLnJlc2l6ZVRyYWNrZXJSZWY9aC5maXJzdCksYWkoaD1saSgpKSYmKGQuY29sdW1uSGFuZGxlUmVmPWguZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJkYXRhZ3Jp'@; put 'ZC1jb2x1bW4tc2VwYXJhdG9yIiwhMCl9LGRlY2xzOjYsdmFyczo1LGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xyRHJhZ2dhYmxlIiwiIiwxLCJkYXRhZ3JpZC1jb2x1bW4taGFuZGxlIiwzLCJjbHJHcm91cCIsImNsckRyYWdTdGFydCIsImNsckRyYWdNb3ZlIiwiY2xyRHJhZ0VuZCJd'@; put 'LFsiY29sdW1uSGFuZGxlIiwiIl0sWzEsImNsci1zci1vbmx5Il0sWzEsImRhdGFncmlkLWNvbHVtbi1yZXNpemUtdHJhY2tlciJdLFsicmVzaXplVHJhY2tlciIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImJ1dHRvbiIsMCwxKSx4dCgiY2xyRHJhZ1N0YXJ0Iixm'@; put 'dW5jdGlvbigpe3JldHVybiBkLnNob3dUcmFja2VyKCl9KSgiY2xyRHJhZ01vdmUiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm1vdmVUcmFja2VyKGYuZHJhZ1Bvc2l0aW9uLm1vdmVYKX0pKCJjbHJEcmFnRW5kIixmdW5jdGlvbigpe3JldHVybiBkLmhpZGVUcmFja2VyKCl9KSx5ZSgpLG1lKDIs'@; put 'InNwYW4iLDIpLE5lKDMpLHllKCkscXQoNCwiZGl2IiwzLDQpKSwyJmEmJihSZSgiY2xyR3JvdXAiLGQuY29sdW1uU2VwYXJhdG9ySWQpLFRyKCJhcmlhLWxhYmVsIixkLmNvbW1vblN0cmluZy5rZXlzLmNvbHVtblNlcGFyYXRvckFyaWFMYWJlbCkoImFyaWEtZGVzY3JpYmVkYnkiLGQuZGVz'@; put 'Y3JpcHRpb25JZCksQ2UoMiksVHIoImlkIixkLmRlc2NyaXB0aW9uSWQpLENlKDEpLGdyKCIgIixkLmNvbW1vblN0cmluZy5rZXlzLmNvbHVtblNlcGFyYXRvckRlc2NyaXB0aW9uLCIgIikpfSxkZXBlbmRlbmNpZXM6W0dKXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSx0Zz0oKCk9PntjbGFz'@; put 'cyBjIGV4dGVuZHMgQUV7Y29uc3RydWN0b3IoYSxkLGgsZixfKXtzdXBlcihkKSx0aGlzLl9zb3J0PWEsdGhpcy52Y3I9aCx0aGlzLmRldGFpbFNlcnZpY2U9Zix0aGlzLmNoYW5nZURldGVjdG9yUmVmPV8sdGhpcy5zb3J0T3JkZXJDaGFuZ2U9bmV3IEVyLHRoaXMuZmlsdGVyVmFsdWVDaGFu'@; put 'Z2U9bmV3IEVyLHRoaXMuc29ydGVkQ2hhbmdlPW5ldyBFcix0aGlzLnNob3dTZXBhcmF0b3I9ITAsdGhpcy5jdXN0b21GaWx0ZXI9ITEsdGhpcy5fY29sVHlwZT0ic3RyaW5nIix0aGlzLl9zb3J0T3JkZXI9STAuVU5TT1JURUQsdGhpcy5fc29ydGVkPSExLHRoaXMuc3Vic2NyaXB0aW9ucz1b'@; put 'XSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvclNvcnRpbmdDaGFuZ2VzKCkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yRGV0YWlsUGFuZUNoYW5nZXMoKSl9Z2V0IGNvbFR5cGUoKXtyZXR1cm4gdGhpcy5fY29sVHlwZX1zZXQgY29sVHlwZShh'@; put 'KXt0aGlzLl9jb2xUeXBlPWF9Z2V0IGZpZWxkKCl7cmV0dXJuIHRoaXMuX2ZpZWxkfXNldCBmaWVsZChhKXsic3RyaW5nIj09dHlwZW9mIGEmJih0aGlzLl9maWVsZD1hLHRoaXMuX3NvcnRCeXx8KHRoaXMuX3NvcnRCeT1uZXcgSUUoYSkpKX1nZXQgc29ydEJ5KCl7cmV0dXJuIHRoaXMuX3Nv'@; put 'cnRCeX1zZXQgc29ydEJ5KGEpeyJzdHJpbmciPT10eXBlb2YgYT90aGlzLl9zb3J0Qnk9bmV3IElFKGEpOmE/dGhpcy5fc29ydEJ5PWE6dGhpcy5maWVsZD90aGlzLl9zb3J0Qnk9bmV3IElFKHRoaXMuZmllbGQpOmRlbGV0ZSB0aGlzLl9zb3J0Qnl9Z2V0IHNvcnRPcmRlcigpe3JldHVybiB0'@; put 'aGlzLl9zb3J0T3JkZXJ9c2V0IHNvcnRPcmRlcihhKXtpZighKHR5cGVvZiBhPiJ1IikmJnRoaXMuX3NvcnRPcmRlciE9PWEpc3dpdGNoKGEpe2RlZmF1bHQ6Y2FzZSBJMC5VTlNPUlRFRDp0aGlzLl9zb3J0LmNsZWFyKCk7YnJlYWs7Y2FzZSBJMC5BU0M6dGhpcy5zb3J0KCExKTticmVhaztj'@; put 'YXNlIEkwLkRFU0M6dGhpcy5zb3J0KCEwKX19Z2V0IHNvcnRlZCgpe3JldHVybiB0aGlzLl9zb3J0ZWR9c2V0IHNvcnRlZChhKXshYSYmdGhpcy5zb3J0ZWQ/KHRoaXMuX3NvcnRlZD0hMSx0aGlzLl9zb3J0LmNsZWFyKCkpOmEmJiF0aGlzLnNvcnRlZCYmdGhpcy5zb3J0KCl9c2V0IHVwZGF0'@; put 'ZUZpbHRlclZhbHVlKGEpe3RoaXMuZmlsdGVyP3RoaXMuZmlsdGVyIGluc3RhbmNlb2YgUTU/KCghYXx8InN0cmluZyIhPXR5cGVvZiBhKSYmKGE9IiIpLGEhPT10aGlzLmZpbHRlci52YWx1ZSYmKHRoaXMuZmlsdGVyLnZhbHVlPWEpKTp0aGlzLmZpbHRlciBpbnN0YW5jZW9mIEo1JiYoKCFh'@; put 'fHwhKGEgaW5zdGFuY2VvZiBBcnJheSkpJiYoYT1bbnVsbCxudWxsXSksMj09PWEubGVuZ3RoJiYoYVswXSE9PXRoaXMuZmlsdGVyLnZhbHVlWzBdfHxhWzFdIT09dGhpcy5maWx0ZXIudmFsdWVbMV0pJiYodGhpcy5maWx0ZXIudmFsdWU9YSkpOnRoaXMuaW5pdEZpbHRlclZhbHVlPWF9c2V0'@; put 'IHByb2plY3RlZEZpbHRlcihhKXthJiYodGhpcy5kZWxldGVGaWx0ZXIoKSx0aGlzLmN1c3RvbUZpbHRlcj0hMCl9Z2V0IHNvcnRhYmxlKCl7cmV0dXJuISF0aGlzLl9zb3J0Qnl9Z2V0IGFyaWFTb3J0KCl7c3dpdGNoKHRoaXMuX3NvcnRPcmRlcil7ZGVmYXVsdDpjYXNlIEkwLlVOU09SVEVE'@; put 'OnJldHVybiJub25lIjtjYXNlIEkwLkFTQzpyZXR1cm4iYXNjZW5kaW5nIjtjYXNlIEkwLkRFU0M6cmV0dXJuImRlc2NlbmRpbmcifX1nZXQgc29ydERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9zb3J0RGlyZWN0aW9ufWdldCBmaWx0ZXJWYWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlciBpbnN0'@; put 'YW5jZW9mIFE1fHx0aGlzLmZpbHRlciBpbnN0YW5jZW9mIEo1P3RoaXMuZmlsdGVyLnZhbHVlOm51bGx9c2V0IGZpbHRlclZhbHVlKGEpeyh0aGlzLmZpbHRlciBpbnN0YW5jZW9mIFE1fHx0aGlzLmZpbHRlciBpbnN0YW5jZW9mIEo1KSYmKHRoaXMudXBkYXRlRmlsdGVyVmFsdWU9YSx0aGlz'@; put 'LmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXIudmFsdWUpKX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KGVILHRoaXMudmNyKS5jb2x1bW5WaWV3fW5nT25Jbml0KCl7dGhpcy53cmFwcGVkSW5qZWN0b3I9bmV3IENFKGVILHRoaXMudmNyKX1u'@; put 'Z09uQ2hhbmdlcyhhKXthLmNvbFR5cGUmJmEuY29sVHlwZS5jdXJyZW50VmFsdWUmJmEuY29sVHlwZS5jdXJyZW50VmFsdWUhPT1hLmNvbFR5cGUucHJldmlvdXNWYWx1ZSYmIXRoaXMuY3VzdG9tRmlsdGVyJiYhdGhpcy5maWx0ZXImJnRoaXMuY29sVHlwZSYmdGhpcy5maWVsZCYmdGhpcy5z'@; put 'ZXR1cERlZmF1bHRGaWx0ZXIodGhpcy5maWVsZCx0aGlzLmNvbFR5cGUpLGEuZmllbGQmJmEuZmllbGQuY3VycmVudFZhbHVlJiZhLmZpZWxkLmN1cnJlbnRWYWx1ZSE9PWEuZmllbGQucHJldmlvdXNWYWx1ZSYmIXRoaXMuY3VzdG9tRmlsdGVyJiZ0aGlzLmNvbFR5cGUmJnRoaXMuc2V0dXBE'@; put 'ZWZhdWx0RmlsdGVyKHRoaXMuZmllbGQsdGhpcy5jb2xUeXBlKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1zb3J0KGEpe3RoaXMuc29ydGFibGUmJih0aGlzLl9zb3J0LnRvZ2dsZSh0aGlz'@; put 'Ll9zb3J0QnksYSksdGhpcy5fc29ydE9yZGVyPXRoaXMuX3NvcnQucmV2ZXJzZT9JMC5ERVNDOkkwLkFTQyx0aGlzLl9zb3J0RGlyZWN0aW9uPXRoaXMuX3NvcnRPcmRlcj09PUkwLkRFU0M/ImRvd24iOiJ1cCIsdGhpcy5zb3J0SWNvbj10aGlzLl9zb3J0T3JkZXI9PT1JMC5ERVNDPyJhcnJv'@; put 'dyBkb3duIjoiYXJyb3ciLHRoaXMuc29ydE9yZGVyQ2hhbmdlLmVtaXQodGhpcy5fc29ydE9yZGVyKSx0aGlzLl9zb3J0ZWQ9ITAsdGhpcy5zb3J0ZWRDaGFuZ2UuZW1pdCghMCkpfWxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZUNo'@; put 'YW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMuc2hvd1NlcGFyYXRvciE9PSFhJiYodGhpcy5zaG93U2VwYXJhdG9yPSFhLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfSl9bGlzdGVuRm9yU29ydGluZ0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5fc29ydC5jaGFuZ2Uuc3Vic2Ny'@; put 'aWJlKGE9Pnt0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpLHRoaXMuc29ydE9yZGVyIT09STAuVU5TT1JURUQmJmEuY29tcGFyYXRvciE9PXRoaXMuX3NvcnRCeSYmKHRoaXMuX3NvcnRPcmRlcj1JMC5VTlNPUlRFRCx0aGlzLnNvcnRPcmRlckNoYW5nZS5lbWl0KHRoaXMu'@; put 'X3NvcnRPcmRlciksdGhpcy5zb3J0SWNvbj1udWxsLHRoaXMuX3NvcnREaXJlY3Rpb249bnVsbCksdGhpcy5zb3J0ZWQmJmEuY29tcGFyYXRvciE9PXRoaXMuX3NvcnRCeSYmKHRoaXMuX3NvcnRlZD0hMSx0aGlzLnNvcnRlZENoYW5nZS5lbWl0KCExKSl9KX1zZXR1cERlZmF1bHRGaWx0ZXIo'@; put 'YSxkKXsibnVtYmVyIj09PWQ/dGhpcy5zZXRGaWx0ZXIobmV3IEo1KG5ldyBURShhKSkpOiJzdHJpbmciPT09ZCYmdGhpcy5zZXRGaWx0ZXIobmV3IFE1KG5ldyBERShhKSkpLHRoaXMuZmlsdGVyJiZ0aGlzLmluaXRGaWx0ZXJWYWx1ZSYmKHRoaXMudXBkYXRlRmlsdGVyVmFsdWU9dGhpcy5p'@; put 'bml0RmlsdGVyVmFsdWUsZGVsZXRlIHRoaXMuaW5pdEZpbHRlclZhbHVlKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTEUpLHR0KEZmKSx0dChhcyksdHQoaDIpLHR0KFVhKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltb'@; put 'ImNsci1kZy1jb2x1bW4iXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmSW8oaCxFRSw1KSwyJmEpe2xldCBmO2FpKGY9bGkoKSkmJihkLnByb2plY3RlZEZpbHRlcj1mLmZpcnN0KX19LGhvc3RBdHRyczpbInJvbGUiLCJjb2x1bW5oZWFkZXIiXSxob3N0VmFyczoz'@; put 'LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKFRyKCJhcmlhLXNvcnQiLGQuYXJpYVNvcnQpLGRyKCJkYXRhZ3JpZC1jb2x1bW4iLCEwKSl9LGlucHV0czp7ZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXI6WyJjbHJGaWx0ZXJTdHJpbmdQbGFjZWhvbGRlciIsImZpbHRlclN0cmluZ1Bs'@; put 'YWNlaG9sZGVyIl0sZmlsdGVyTnVtYmVyTWF4UGxhY2Vob2xkZXI6WyJjbHJGaWx0ZXJOdW1iZXJNYXhQbGFjZWhvbGRlciIsImZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyIl0sZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXI6WyJjbHJGaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlciIsImZp'@; put 'bHRlck51bWJlck1pblBsYWNlaG9sZGVyIl0sY29sVHlwZTpbImNsckRnQ29sVHlwZSIsImNvbFR5cGUiXSxmaWVsZDpbImNsckRnRmllbGQiLCJmaWVsZCJdLHNvcnRCeTpbImNsckRnU29ydEJ5Iiwic29ydEJ5Il0sc29ydE9yZGVyOlsiY2xyRGdTb3J0T3JkZXIiLCJzb3J0T3JkZXIiXSxz'@; put 'b3J0ZWQ6WyJjbHJEZ1NvcnRlZCIsInNvcnRlZCJdLHVwZGF0ZUZpbHRlclZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ1cGRhdGVGaWx0ZXJWYWx1ZSJdfSxvdXRwdXRzOntzb3J0T3JkZXJDaGFuZ2U6ImNsckRnU29ydE9yZGVyQ2hhbmdlIixmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVy'@; put 'VmFsdWVDaGFuZ2UiLHNvcnRlZENoYW5nZToiY2xyRGdTb3J0ZWRDaGFuZ2UifSxmZWF0dXJlczpbdGkoW1M4LElmLEtzXSksZW8sdmFdLG5nQ29udGVudFNlbGVjdG9yczpROWUsZGVjbHM6OSx2YXJzOjUsY29uc3RzOltbMSwiZGF0YWdyaWQtY29sdW1uLWZsZXgiXSxbImNsYXNzIiwiZGF0'@; put 'YWdyaWQtY29sdW1uLXRpdGxlIiwidHlwZSIsImJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbMywiY2xyRmlsdGVyUGxhY2Vob2xkZXIiLCJjbHJEZ1N0cmluZ0ZpbHRlciIsImNsckZpbHRlclZhbHVlIiwiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xyRmlsdGVy'@; put 'TWF4UGxhY2Vob2xkZXIiLCJjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlciIsImNsckRnTnVtZXJpY0ZpbHRlciIsImNsckZpbHRlclZhbHVlIiwiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiLDQsIm5nSWYiXSxbImNvbHVtblRpdGxlIiwiIl0sWyJjbGFzcyIsImRhdGFncmlkLWNvbHVtbi10aXRsZSIs'@; put 'NCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGUiLDMsImNsaWNrIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInNoYXBlIiwiYXJyb3ciLCJhcmlhLWhpZGRlbiIsInRydWUiLCJjbGFzcyIsInNvcnQtaWNvbiIsNCwibmdJZiJd'@; put 'LFsic2hhcGUiLCJhcnJvdyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwic29ydC1pY29uIl0sWzMsImNsckZpbHRlclBsYWNlaG9sZGVyIiwiY2xyRGdTdHJpbmdGaWx0ZXIiLCJjbHJGaWx0ZXJWYWx1ZSIsImNsckZpbHRlclZhbHVlQ2hhbmdlIl0sWzMsImNsckZpbHRlck1heFBsYWNlaG9s'@; put 'ZGVyIiwiY2xyRmlsdGVyTWluUGxhY2Vob2xkZXIiLCJjbHJEZ051bWVyaWNGaWx0ZXIiLCJjbHJGaWx0ZXJWYWx1ZSIsImNsckZpbHRlclZhbHVlQ2hhbmdlIl0sWzEsImRhdGFncmlkLWNvbHVtbi10aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKEo5ZSksbWUoMCwi'@; put 'ZGl2IiwwKSxKZSgxLFk5ZSwzLDIsImJ1dHRvbiIsMSksa3IoMiksSmUoMyxXOWUsMSwzLCJjbHItZGctc3RyaW5nLWZpbHRlciIsMiksSmUoNCxHOWUsMSw0LCJjbHItZGctbnVtZXJpYy1maWx0ZXIiLDMpLEplKDUsJDllLDEsMCwibmctdGVtcGxhdGUiLG51bGwsNCxrYyksSmUoNyxLOWUs'@; put 'MiwxLCJzcGFuIiw1KSxKZSg4LFg5ZSwxLDAsImNsci1kZy1jb2x1bW4tc2VwYXJhdG9yIiw2KSx5ZSgpKSwyJmEmJihDZSgxKSxSZSgibmdJZiIsZC5zb3J0YWJsZSksQ2UoMiksUmUoIm5nSWYiLGQuZmllbGQmJiFkLmN1c3RvbUZpbHRlciYmInN0cmluZyI9PWQuY29sVHlwZSksQ2UoMSks'@; put 'UmUoIm5nSWYiLGQuZmllbGQmJiFkLmN1c3RvbUZpbHRlciYmIm51bWJlciI9PWQuY29sVHlwZSksQ2UoMyksUmUoIm5nSWYiLCFkLnNvcnRhYmxlKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93U2VwYXJhdG9yKSl9LGRlcGVuZGVuY2llczpbUUYsZlEsZ1EsWmkscmQscXNdLGVuY2Fwc3VsYXRp'@; put 'b246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGN9KSgpLEFwPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuX2ZpbHRlcnM9YSx0aGlzLl9zb3J0PWQsdGhpcy5fcGFnZT1oLHRoaXMubG9hZGluZz0hMSx0aGlzLl9zbWFydD0hMSx0aGlzLl9kaXNwbGF5ZWQ9W10sdGhpcy5f'@; put 'Y2hhbmdlPW5ldyBiZSx0aGlzLl9hbGxDaGFuZ2VzPW5ldyBiZSx0aGlzLml0ZXJhdG9yVHJhY2tCeT0oZixfKT0+X31nZXQgc21hcnQoKXtyZXR1cm4gdGhpcy5fc21hcnR9Z2V0IGFsbCgpe3JldHVybiB0aGlzLl9hbGx9c2V0IGFsbChhKXt0aGlzLl9hbGw9YSx0aGlzLmVtaXRBbGxDaGFu'@; put 'Z2VzKGEpLHRoaXMuc21hcnQ/dGhpcy5fZmlsdGVySXRlbXMoKToodGhpcy5fZGlzcGxheWVkPWEsdGhpcy5lbWl0Q2hhbmdlKCkpfWdldCBkaXNwbGF5ZWQoKXtyZXR1cm4gdGhpcy5fZGlzcGxheWVkfWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdl'@; put 'dCBhbGxDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2FsbENoYW5nZXMuYXNPYnNlcnZhYmxlKCl9Z2V0IHVuaW5pdGlhbGl6ZWQoKXtyZXR1cm4hdGhpcy5fYWxsfWRlc3Ryb3koKXt0aGlzLl9maWx0ZXJzU3ViJiZ0aGlzLl9maWx0ZXJzU3ViLnVuc3Vic2NyaWJlKCksdGhpcy5fc29ydFN1YiYm'@; put 'dGhpcy5fc29ydFN1Yi51bnN1YnNjcmliZSgpLHRoaXMuX3BhZ2VTdWImJnRoaXMuX3BhZ2VTdWIudW5zdWJzY3JpYmUoKX1zbWFydGVuVXAoKXt0aGlzLl9zbWFydD0hMCx0aGlzLl9maWx0ZXJzU3ViPXRoaXMuX2ZpbHRlcnMuY2hhbmdlLnN1YnNjcmliZSgoKT0+dGhpcy5fZmlsdGVySXRl'@; put 'bXMoKSksdGhpcy5fc29ydFN1Yj10aGlzLl9zb3J0LmNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9zb3J0LmNvbXBhcmF0b3I/dGhpcy5fc29ydEl0ZW1zKCk6dGhpcy5fZmlsdGVySXRlbXMoKX0pLHRoaXMuX3BhZ2VTdWI9dGhpcy5fcGFnZS5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT50aGlz'@; put 'Ll9jaGFuZ2VQYWdlKCkpfXJlZnJlc2goKXt0aGlzLnNtYXJ0JiZ0aGlzLl9maWx0ZXJJdGVtcygpfWNhblRyYWNrQnkoKXtyZXR1cm4hIXRoaXMuZGF0YWdyaWRUcmFja0J5fHxBcnJheS5pc0FycmF5KHRoaXMuYWxsKX10cmFja0J5KGEsZCl7aWYodGhpcy5kYXRhZ3JpZFRyYWNrQnkpcmV0'@; put 'dXJuIHRoaXMuZGF0YWdyaWRUcmFja0J5KGEpO2lmKEFycmF5LmlzQXJyYXkodGhpcy5hbGwpKXJldHVybiBkPWQ/P3RoaXMuYWxsLmluZGV4T2YoYSksdGhpcy5pdGVyYXRvclRyYWNrQnkoZCxhKTt0aHJvdyBuZXcgRXJyb3IoImltcHJvcGVyIGNhbGwgdG8gSXRlbXMjdHJhY2tCeSIpfWVt'@; put 'aXRDaGFuZ2UoKXt0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLmRpc3BsYXllZCl9ZW1pdEFsbENoYW5nZXMoYSl7dGhpcy5fYWxsQ2hhbmdlcy5uZXh0KGEpfV9maWx0ZXJJdGVtcygpe3RoaXMudW5pbml0aWFsaXplZHx8KHRoaXMuX2ZpbHRlcmVkPXRoaXMuX2ZpbHRlcnMuaGFzQWN0aXZlRmls'@; put 'dGVycygpP3RoaXMuX2FsbC5maWx0ZXIoYT0+dGhpcy5fZmlsdGVycy5hY2NlcHRzKGEpKTp0aGlzLl9hbGwuc2xpY2UoKSx0aGlzLl9wYWdlLnRvdGFsSXRlbXM9dGhpcy5fZmlsdGVyZWQubGVuZ3RoLHRoaXMuX3NvcnRJdGVtcygpKX1fc29ydEl0ZW1zKCl7dGhpcy51bmluaXRpYWxpemVk'@; put 'fHwodGhpcy5fc29ydC5jb21wYXJhdG9yJiZ0aGlzLl9maWx0ZXJlZC5zb3J0KChhLGQpPT50aGlzLl9zb3J0LmNvbXBhcmUoYSxkKSksdGhpcy5fY2hhbmdlUGFnZSgpKX1fY2hhbmdlUGFnZSgpe3RoaXMudW5pbml0aWFsaXplZHx8dGhpcy5fcGFnZS5hY3RpdmF0ZWQmJjA9PT10aGlzLl9w'@; put 'YWdlLnNpemV8fCh0aGlzLl9kaXNwbGF5ZWQ9dGhpcy5fcGFnZS5zaXplPjA/dGhpcy5fZmlsdGVyZWQuc2xpY2UodGhpcy5fcGFnZS5maXJzdEl0ZW0sdGhpcy5fcGFnZS5sYXN0SXRlbSsxKTp0aGlzLl9maWx0ZXJlZCx0aGlzLmVtaXRDaGFuZ2UoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1m'@; put 'dW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKEZmKSxhcihMRSksYXIoRXApKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxVOD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMudGVtcGxhdGU9YSx0aGlzLmRp'@; put 'ZmZlcnM9ZCx0aGlzLml0ZW1zPWgsdGhpcy52Y3I9Zix0aGlzLmRpZmZlcj1udWxsLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSxoLnNtYXJ0ZW5VcCgpLHRoaXMuaXRlcmFibGVQcm94eT1uZXcgeHModGhpcy52Y3IsdGhpcy50ZW1wbGF0ZSx0aGlzLmRpZmZlcnMpLHRoaXMuc3Vic2NyaXB0aW9u'@; put 'cy5wdXNoKGguY2hhbmdlLnN1YnNjcmliZShfPT57dGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yT2Y9Xyx0aGlzLml0ZXJhYmxlUHJveHkubmdEb0NoZWNrKCl9KSl9c2V0IHJhd0l0ZW1zKGEpe3RoaXMuX3Jhd0l0ZW1zPWF8fFtdfXNldCB0cmFja0J5KGEpe3RoaXMuaXRlbXMuaXRlcmF0b3JU'@; put 'cmFja0J5PWEsdGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yVHJhY2tCeT1hfXN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKGEsZCl7cmV0dXJuITB9bmdEb0NoZWNrKCl7dGhpcy5kaWZmZXJ8fCh0aGlzLmRpZmZlcj10aGlzLmRpZmZlcnMuZmluZCh0aGlzLl9yYXdJdGVtcykuY3JlYXRl'@; put 'KHRoaXMuaXRlcmFibGVQcm94eS5uZ0ZvclRyYWNrQnkpKSx0aGlzLmRpZmZlciYmdGhpcy5kaWZmZXIuZGlmZih0aGlzLl9yYXdJdGVtcykmJih0aGlzLml0ZW1zLmFsbD10aGlzLl9yYXdJdGVtcyl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vi'@; put 'c2NyaWJlKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dCh6YSksdHQoejYpLHR0KEFwKSx0dChhcykpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJEZ0l0ZW1zIiwiIiwiY2xyRGdJdGVtc09mIiwiIl1dLGlu'@; put 'cHV0czp7cmF3SXRlbXM6WyJjbHJEZ0l0ZW1zT2YiLCJyYXdJdGVtcyJdLHRyYWNrQnk6WyJjbHJEZ0l0ZW1zVHJhY2tCeSIsInRyYWNrQnkiXX19KSxjfSkoKSxySD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuaXRlbXM9YX1nZXQgZW1wdHlEYXRhZ3JpZCgpe3JldHVybiEo'@; put 'dGhpcy5pdGVtcy5sb2FkaW5nfHx0aGlzLml0ZW1zLmRpc3BsYXllZCYmMCE9PXRoaXMuaXRlbXMuZGlzcGxheWVkLmxlbmd0aCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEFwKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3Jz'@; put 'OltbImNsci1kZy1wbGFjZWhvbGRlciJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbnRhaW5lciIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6NCx2YXJzOjQsY29uc3RzOltbInJvbGUiLCJy'@; put 'b3ciLDEsImRhdGFncmlkLXBsYWNlaG9sZGVyIl0sWyJjbGFzcyIsImRhdGFncmlkLXBsYWNlaG9sZGVyLWltYWdlIiw0LCJuZ0lmIl0sWyJyb2xlIiwiZ3JpZGNlbGwiLDEsImRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbnRlbnQiXSxbNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1wbGFjZWhvbGRl'@; put 'ci1pbWFnZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksbWUoMCwiZGl2IiwwKSxKZSgxLGV2ZSwxLDAsImRpdiIsMSksbWUoMiwic3BhbiIsMiksSmUoMyx0dmUsMSwwLCJuZy1jb250ZW50IiwzKSx5ZSgpKCkpLDImYSYmKGRyKCJkYXRhZ3JpZC1lbXB0eSIsZC5lbXB0'@; put 'eURhdGFncmlkKSxDZSgxKSxSZSgibmdJZiIsZC5lbXB0eURhdGFncmlkKSxDZSgyKSxSZSgibmdJZiIsZC5lbXB0eURhdGFncmlkKSl9LGRlcGVuZGVuY2llczpbWmldLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGlIPSgoKT0+e2NsYXNzIGN7c2V0IHRyaWdnZXJFbChhKXt0aGlzLl90cmln'@; put 'Z2VyRWw9YX1mb2N1c1RyaWdnZXIoKXt0aGlzLl90cmlnZ2VyRWwmJnRoaXMuX3RyaWdnZXJFbC5mb2N1cygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSko'@; put 'KSxvSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5faWQ9bmV3IGJlfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZC5hc09ic2VydmFibGUoKX1zZXRJZChhKXt0aGlzLl9pZC5uZXh0KGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0s'@; put 'Yy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxSRT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyxULFcpe3RoaXMudG9nZ2xlU2VydmljZT1hLHRoaXMuZWw9ZCx0aGlzLmNvbW1vblN0cmluZ3M9aCx0aGlzLnNpZ25wb3N0SWRT'@; put 'ZXJ2aWNlPWYsdGhpcy5zaWducG9zdEZvY3VzTWFuYWdlcj1fLHRoaXMucGxhdGZvcm1JZD1XLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmRvY3VtZW50PVR9bmdPbkluaXQoKXt0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyLnRyaWdnZXJFbD10aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhp'@; put 'cy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGE9Pnt0aGlzLmFyaWFFeHBhbmRlZD1hO2NvbnN0IGQ9dGhpcy5pc09wZW47dGhpcy5pc09wZW49YSwhdGhpcy5pc09wZW4mJmQmJnRoaXMuZm9jdXNPbkNsb3NlKCl9KSx0aGlzLnNp'@; put 'Z25wb3N0SWRTZXJ2aWNlLmlkLnN1YnNjcmliZShhPT50aGlzLmFyaWFDb250cm9sPWEpKSx0aGlzLmFkZERlZmF1bHRBcmlhTGFiZWwodGhpcy5lbC5uYXRpdmVFbGVtZW50KX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9b25T'@; put 'aWducG9zdFRyaWdnZXJDbGljayhhKXt0aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KGEpfWFkZERlZmF1bHRBcmlhTGFiZWwoYSl7YS5oYXNBdHRyaWJ1dGUoImFyaWEtbGFiZWwiKXx8YS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHRoaXMuY29tbW9uU3RyaW5ncy5rZXlz'@; put 'LnNpZ25wb3N0VG9nZ2xlKX1mb2N1c09uQ2xvc2UoKXtScyh0aGlzLnBsYXRmb3JtSWQpJiYhdGhpcy5pc09wZW4mJnRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXRoaXMuZG9jdW1lbnQuYm9keSYmdGhpcy5zaWducG9zdEZvY3VzTWFuYWdlci5mb2N1c1RyaWdnZXIoKX19cmV0dXJu'@; put 'IGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoS3MpLHR0KE5pKSx0dChFcyksdHQob0gpLHR0KGlIKSx0dChMcyksdHQoR3MpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIl1dLGhvc3RBdHRy'@; put 'czpbMSwic2lnbnBvc3QtdHJpZ2dlciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4dCgiY2xpY2siLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uU2lnbnBvc3RUcmlnZ2VyQ2xpY2soZil9KSwyJmEmJihUcigiYXJpYS1leHBhbmRlZCIsZC5hcmlhRXhwYW5k'@; put 'ZWQpKCJhcmlhLWNvbnRyb2xzIixkLmFyaWFDb250cm9sKSxkcigiYWN0aXZlIixkLmlzT3BlbikpfX0pLGN9KSgpLHNIPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5jb21tb25TdHJpbmdzPWEsdGhpcy51c2VDdXN0b21UcmlnZ2VyPSExfXNldCBjdXN0b21UcmlnZ2VyKGEp'@; put 'e3RoaXMudXNlQ3VzdG9tVHJpZ2dlcj0hIWF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEVzKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1zaWducG9zdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQs'@; put 'aCl7aWYoMSZhJiZJbyhoLFJFLDUpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQuY3VzdG9tVHJpZ2dlcj1mLmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigic2lnbnBvc3QiLCEwKX0sZmVhdHVyZXM6W3RpKFtLcyxpSCx7cHJvdmlkZTpM'@; put 'OCx1c2VFeGlzdGluZzpOaX0sb0hdKV0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjIsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLCJjbHJTaWducG9zdFRyaWdnZXIiLCIiLDEsInNpZ25wb3N0LWFjdGlvbiIsImJ0biIsImJ0bi1zbWFsbCIsImJ0bi1s'@; put 'aW5rIl0sWyJzaGFwZSIsImluZm8tY2lyY2xlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxKZSgwLG52ZSwzLDEsIm5nLWNvbnRhaW5lciIsMCksa3IoMSkpLDImYSYmUmUoIm5nSWYiLCFkLnVzZUN1c3RvbVRyaWdnZXIpfSxkZXBlbmRlbmNpZXM6W1ppLFJFLHFzXSxl'@; put 'bmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxhSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmNlbGxWaWV3PXRoaXMudGVtcGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpfW5nT25EZXN0cm95KCl7dGhpcy5j'@; put 'ZWxsVmlldy5kZXN0cm95KCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJkZy13cmFwcGVkLWNlbGwiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZSbyhydmUsNSks'@; put 'MiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC50ZW1wbGF0ZVJlZj1oLmZpcnN0KX19LG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1siY2VsbFBvcnRhbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksSmUoMCxpdmUsMSwwLCJuZy10'@; put 'ZW1wbGF0ZSIsbnVsbCwwLGtjKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLFRwPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy52Y3I9YX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KGFILHRoaXMudmNyKS5jZWxsVmlld31uZ09uSW5pdCgp'@; put 'e3RoaXMud3JhcHBlZEluamVjdG9yPW5ldyBDRShhSCx0aGlzLnZjcil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGFzKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1jZWxsIl1dLGNvbnRlbnRRdWVyaWVz'@; put 'OmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJklvKGgsc0gsNCksMiZhKXtsZXQgZjthaShmPWxpKCkpJiYoZC5zaWducG9zdD1mKX19LGhvc3RBdHRyczpbInJvbGUiLCJncmlkY2VsbCJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiZGF0YWdyaWQtY2Vs'@; put 'bCIsITApKCJkYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIixkLnNpZ25wb3N0Lmxlbmd0aD4wKX0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLG1RPTAs'@; put 'UGI9KCgpPT57Y2xhc3MgYyBleHRlbmRzIFl1e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmV4cGFuZGFibGVJZD0iIix0aGlzLl9yZXBsYWNlPW5ldyBUZSghMSksdGhpcy5fYW5pbWF0ZT1uZXcgYmUsbVErKyx0aGlzLmV4cGFuZGFibGVJZD0iY2xyLWRnLWV4cGFuZGFibGUtcm93LSIr'@; put 'bVF9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuX2V4cGFuZGVkfXNldCBleHBhbmRlZChhKXsoYT0hIWEpIT09dGhpcy5fZXhwYW5kZWQmJih0aGlzLl9leHBhbmRlZD1hLHRoaXMuX2FuaW1hdGUubmV4dCgpLHRoaXMuX2V4cGFuZENoYW5nZS5uZXh0KGEpKX1nZXQgcmVwbGFjZSgpe3Jl'@; put 'dHVybiB0aGlzLl9yZXBsYWNlLmFzT2JzZXJ2YWJsZSgpfWdldCBhbmltYXRlKCl7cmV0dXJuIHRoaXMuX2FuaW1hdGUuYXNPYnNlcnZhYmxlKCl9bG9hZGluZ1N0YXRlQ2hhbmdlKGEpe3N1cGVyLmxvYWRpbmdTdGF0ZUNoYW5nZShhKSxhIT09VXUuTE9BRElORyYmdGhpcy5fYW5pbWF0ZS5u'@; put 'ZXh0KCl9c2V0UmVwbGFjZShhKXt0aGlzLl9yZXBsYWNlLm5leHQoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO3ZhciBaOD1mdW5jdGlvbihjKXty'@; put 'ZXR1cm4gY1tjLkRJU1BMQVk9MF09IkRJU1BMQVkiLGNbYy5DQUxDVUxBVEU9MV09IkNBTENVTEFURSIsY30oWjh8fHt9KSxhYT1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLk5vbmU9MF09Ik5vbmUiLGNbYy5TaW5nbGU9MV09IlNpbmdsZSIsY1tjLk11bHRpPTJdPSJNdWx0aSIsY30oYWF8fHt9'@; put 'KTtsZXQgbEg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2R5bmFtaWM9ITF9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5yb3dWaWV3PXRoaXMudGVtcGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpfW5nT25EZXN0cm95KCl7dGhpcy5yb3dWaWV3LmRlc3Ryb3koKX19'@; put 'cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImRnLXdyYXBwZWQtcm93Il1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmUm8ob3ZlLDUpLDImYSl7bGV0IGg7YWkoaD1saSgp'@; put 'KSYmKGQudGVtcGxhdGVSZWY9aC5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbInJvd1BvcnRhbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksSmUoMCxzdmUsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwwLGtjKSl9'@; put 'LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGN3ZT0wLFk4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9pdGVtcz1hLHRoaXMuX2ZpbHRlcnM9ZCx0aGlzLnByZXNlcnZlU2VsZWN0aW9uPSExLHRoaXMuc2hpZnRQcmVzc2VkPSExLHRoaXMucm93U2VsZWN0aW9uTW9kZT0h'@; put 'MSx0aGlzLnByZXZTZWxlY3Rpb25SZWZzPVtdLHRoaXMubG9ja2VkUmVmcz1bXSx0aGlzLnZhbHVlQ29sbGVjdG9yPW5ldyBiZSx0aGlzLl9zZWxlY3Rpb25UeXBlPWFhLk5vbmUsdGhpcy5fY2hhbmdlPW5ldyBiZSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5pZD0iY2xyLWRnLXNlbGVj'@; put 'dGlvbiIrY3dlKyssdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5fZmlsdGVycy5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT57IXRoaXMuX3NlbGVjdGFibGV8fHRoaXMucHJlc2VydmVTZWxlY3Rpb258fHRoaXMuY2xlYXJTZWxlY3Rpb24oKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0'@; put 'aGlzLl9pdGVtcy5hbGxDaGFuZ2VzLnN1YnNjcmliZShoPT57Y29uc3QgZj1bXTtzd2l0Y2godGhpcy5zZWxlY3Rpb25UeXBlKXtjYXNlIGFhLk5vbmU6YnJlYWs7Y2FzZSBhYS5TaW5nbGU6e2xldCBfLFQ9ITE7dGhpcy5jdXJyZW50U2luZ2xlJiYhdGhpcy5wcmV2U2luZ2xlU2VsZWN0aW9u'@; put 'UmVmJiZ0aGlzLl9pdGVtcy5jYW5UcmFja0J5KCkmJih0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWY9dGhpcy5faXRlbXMudHJhY2tCeSh0aGlzLmN1cnJlbnRTaW5nbGUpKSxoLmZvckVhY2goKFcsaWUpPT57Y29uc3QgcGU9dGhpcy5faXRlbXMudHJhY2tCeShXLGllKTt0aGlzLnByZXZT'@; put 'aW5nbGVTZWxlY3Rpb25SZWY9PT1wZSYmKF89VyxUPSEwKSx0aGlzLmxvY2tlZFJlZnMuaW5kZXhPZihwZSk+LTEmJmYucHVzaChwZSl9KSx0aGlzLl9pdGVtcy5zbWFydCYmIV8mJihUPSEwKSxzZXRUaW1lb3V0KCgpPT57VCYmKHRoaXMuY3VycmVudFNpbmdsZT1fKX0sMCk7YnJlYWt9Y2Fz'@; put 'ZSBhYS5NdWx0aTp7bGV0IF89dGhpcy5jdXJyZW50LnNsaWNlKCksVD0hMTt0aGlzLmN1cnJlbnQubGVuZ3RoPjAmJnRoaXMucHJldlNlbGVjdGlvblJlZnMubGVuZ3RoIT09dGhpcy5jdXJyZW50Lmxlbmd0aCYmdGhpcy5faXRlbXMuY2FuVHJhY2tCeSgpJiYodGhpcy5wcmV2U2VsZWN0aW9u'@; put 'UmVmcz1bXSx0aGlzLmN1cnJlbnQuZm9yRWFjaChXPT57dGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5wdXNoKHRoaXMuX2l0ZW1zLnRyYWNrQnkoVykpfSkpLGguZm9yRWFjaCgoVyxpZSk9Pntjb25zdCBwZT10aGlzLl9pdGVtcy50cmFja0J5KFcsaWUpO3RoaXMubG9ja2VkUmVmcy5pbmRleE9m'@; put 'KHBlKT4tMSYmZi5wdXNoKHBlKX0pLF8ubGVuZ3RoPjAmJihoLmZvckVhY2goKFcsaWUpPT57Y29uc3QgcGU9dGhpcy5faXRlbXMudHJhY2tCeShXLGllKSx3ZT10aGlzLnByZXZTZWxlY3Rpb25SZWZzLmluZGV4T2YocGUpO3dlPi0xJiYoX1t3ZV09VyxUPSEwKX0pLHRoaXMuX2l0ZW1zLnNt'@; put 'YXJ0JiYoXz1fLmZpbHRlcihXPT5oLmluZGV4T2YoVyk+LTEpLHRoaXMuY3VycmVudC5sZW5ndGghPT1fLmxlbmd0aCYmKFQ9ITApKSxzZXRUaW1lb3V0KCgpPT57VCYmKHRoaXMuY3VycmVudD1fKX0sMCkpO2JyZWFrfX10aGlzLmxvY2tlZFJlZnM9Zn0pKSx0aGlzLnN1YnNjcmlwdGlvbnMu'@; put 'cHVzaCh0aGlzLnZhbHVlQ29sbGVjdG9yLnBpcGUoZjgoMCkpLnN1YnNjcmliZSgoKT0+dGhpcy5lbWl0Q2hhbmdlKCkpKX1nZXQgc2VsZWN0aW9uVHlwZSgpe3JldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlfXNldCBzZWxlY3Rpb25UeXBlKGEpe2EhPT10aGlzLnNlbGVjdGlvblR5cGUmJih0'@; put 'aGlzLl9zZWxlY3Rpb25UeXBlPWEsYT09PWFhLk5vbmU/ZGVsZXRlIHRoaXMuY3VycmVudDp0aGlzLnVwZGF0ZUN1cnJlbnQoW10sITEpKX1nZXQgY3VycmVudCgpe3JldHVybiB0aGlzLl9jdXJyZW50fXNldCBjdXJyZW50KGEpe3RoaXMudXBkYXRlQ3VycmVudChhLCEwKX1nZXQgY3VycmVu'@; put 'dFNpbmdsZSgpe3JldHVybiB0aGlzLl9jdXJyZW50U2luZ2xlfXNldCBjdXJyZW50U2luZ2xlKGEpe2EhPT10aGlzLl9jdXJyZW50U2luZ2xlJiYodGhpcy5fY3VycmVudFNpbmdsZT1hLHRoaXMuX2l0ZW1zLmNhblRyYWNrQnkoKSYmYSYmKHRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj10'@; put 'aGlzLl9pdGVtcy50cmFja0J5KGEpKSx0aGlzLmVtaXRDaGFuZ2UoKSl9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IF9zZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvblR5cGU9PT1hYS5NdWx0aXx8dGhpcy5fc2VsZWN0aW9uVHlw'@; put 'ZT09PWFhLlNpbmdsZX1jbGVhclNlbGVjdGlvbigpe3RoaXMuX2N1cnJlbnQ9W10sdGhpcy5wcmV2U2VsZWN0aW9uUmVmcz1bXSx0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWY9bnVsbCx0aGlzLl9jdXJyZW50U2luZ2xlPW51bGwsdGhpcy5lbWl0Q2hhbmdlKCl9ZGVzdHJveSgpe3RoaXMu'@; put 'c3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9dXBkYXRlQ3VycmVudChhLGQpe3RoaXMuX2N1cnJlbnQ9YSxkJiZ0aGlzLnZhbHVlQ29sbGVjdG9yLm5leHQoYSl9aXNTZWxlY3RlZChhKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZT09PWFhLlNpbmdsZT90aGlz'@; put 'LmN1cnJlbnRTaW5nbGU9PT1hOnRoaXMuX3NlbGVjdGlvblR5cGU9PT1hYS5NdWx0aSYmdGhpcy5jdXJyZW50LmluZGV4T2YoYSk+PTB9c2V0U2VsZWN0ZWQoYSxkKXtjb25zdCBoPXRoaXMuY3VycmVudD90aGlzLmN1cnJlbnQuaW5kZXhPZihhKTotMTtzd2l0Y2godGhpcy5fc2VsZWN0aW9u'@; put 'VHlwZSl7Y2FzZSBhYS5Ob25lOmNhc2UgYWEuU2luZ2xlOmJyZWFrO2Nhc2UgYWEuTXVsdGk6aD49MCYmIWQ/dGhpcy5kZXNlbGVjdEl0ZW0oaCk6aDwwJiZkJiZ0aGlzLnNlbGVjdEl0ZW0oYSl9fWlzQWxsU2VsZWN0ZWQoKXtpZih0aGlzLl9zZWxlY3Rpb25UeXBlIT09YWEuTXVsdGl8fCF0'@; put 'aGlzLl9pdGVtcy5kaXNwbGF5ZWQpcmV0dXJuITE7Y29uc3QgYT10aGlzLl9pdGVtcy5kaXNwbGF5ZWQuZmlsdGVyKGY9PiExPT09dGhpcy5pc0xvY2tlZChmKSk7cmV0dXJuIShhLmxlbmd0aDwxKSYmYS5maWx0ZXIoZj0+dGhpcy5jdXJyZW50LmluZGV4T2YoZik+LTEpLmxlbmd0aD09PWEu'@; put 'bGVuZ3RofWxvY2tJdGVtKGEsZCl7aWYodGhpcy5jYW5JdEJlTG9ja2VkKCkpe2NvbnN0IGg9dGhpcy5faXRlbXMudHJhY2tCeShhKTshMD09PWQ/dGhpcy5sb2NrZWRSZWZzLnB1c2goaCk6dGhpcy5sb2NrZWRSZWZzPXRoaXMubG9ja2VkUmVmcy5maWx0ZXIoZj0+aCE9PWYpfX1pc0xvY2tl'@; put 'ZChhKXtpZih0aGlzLmNhbkl0QmVMb2NrZWQoKSl7Y29uc3QgZD10aGlzLl9pdGVtcy50cmFja0J5KGEpO3JldHVybiB0aGlzLmxvY2tlZFJlZnMuaW5kZXhPZihkKT4tMX1yZXR1cm4hMX10b2dnbGVBbGwoKXt0aGlzLl9zZWxlY3Rpb25UeXBlPT09YWEuTm9uZXx8dGhpcy5fc2VsZWN0aW9u'@; put 'VHlwZT09PWFhLlNpbmdsZXx8KHRoaXMuaXNBbGxTZWxlY3RlZCgpP3RoaXMuX2l0ZW1zLmRpc3BsYXllZC5mb3JFYWNoKGE9Pntjb25zdCBkPXRoaXMuY3VycmVudC5pbmRleE9mKGEpO2Q+LTEmJiExPT09dGhpcy5pc0xvY2tlZChhKSYmdGhpcy5kZXNlbGVjdEl0ZW0oZCl9KTp0aGlzLl9p'@; put 'dGVtcy5kaXNwbGF5ZWQuZm9yRWFjaChhPT57dGhpcy5jdXJyZW50LmluZGV4T2YoYSk8MCYmITE9PT10aGlzLmlzTG9ja2VkKGEpJiZ0aGlzLnNlbGVjdEl0ZW0oYSl9KSl9c2VsZWN0SXRlbShhKXt0aGlzLmN1cnJlbnQ9dGhpcy5jdXJyZW50LmNvbmNhdChhKSx0aGlzLl9pdGVtcy5jYW5U'@; put 'cmFja0J5KCkmJnRoaXMucHJldlNlbGVjdGlvblJlZnMucHVzaCh0aGlzLl9pdGVtcy50cmFja0J5KGEpKX1kZXNlbGVjdEl0ZW0oYSl7aWYodGhpcy5jdXJyZW50PXRoaXMuY3VycmVudC5zbGljZSgwLGEpLmNvbmNhdCh0aGlzLmN1cnJlbnQuc2xpY2UoYSsxKSksYTx0aGlzLnByZXZTZWxl'@; put 'Y3Rpb25SZWZzLmxlbmd0aCl7Y29uc3QgZD10aGlzLnByZXZTZWxlY3Rpb25SZWZzLnNwbGljZShhLDEpO3RoaXMubG9ja2VkUmVmcz10aGlzLmxvY2tlZFJlZnMuZmlsdGVyKGg9PmghPT1kWzBdKX19Y2FuSXRCZUxvY2tlZCgpe3JldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlIT09YWEuTm9u'@; put 'ZSYmdGhpcy5faXRlbXMuY2FuVHJhY2tCeSgpfWVtaXRDaGFuZ2UoKXt0aGlzLl9zZWxlY3Rpb25UeXBlPT09YWEuU2luZ2xlP3RoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudFNpbmdsZSk6dGhpcy5fc2VsZWN0aW9uVHlwZT09PWFhLk11bHRpJiZ0aGlzLl9jaGFuZ2UubmV4dCh0aGlz'@; put 'LmN1cnJlbnQpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihBcCksYXIoRmYpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxjSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMu'@; put 'X3ZpZXc9bmV3IFRlKFo4LkRJU1BMQVkpLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChhLmZpbHRlclJlbmRlclN0ZXBzKGYyLkNBTENVTEFURV9NT0RFX09OKS5zdWJzY3JpYmUoKCk9PnRoaXMuX3ZpZXcubmV4dChaOC5DQUxDVUxBVEUpKSksdGhpcy5z'@; put 'dWJzY3JpcHRpb25zLnB1c2goYS5maWx0ZXJSZW5kZXJTdGVwcyhmMi5DQUxDVUxBVEVfTU9ERV9PRkYpLnN1YnNjcmliZSgoKT0+dGhpcy5fdmlldy5uZXh0KFo4LkRJU1BMQVkpKSl9Z2V0IHZpZXcoKXtyZXR1cm4gdGhpcy5fdmlldy5hc09ic2VydmFibGUoKX1uZ09uRGVzdHJveSgpe3Ro'@; put 'aXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKGVnKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksdUg9KCgpPT57'@; put 'Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLnNlbGVjdGlvbj1hfW9uU2VsZWN0aW9uQ2VsbENsaWNrKGEpe3RoaXMuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbk1vZGV8fCJMQUJFTCIhPT1hLnRhcmdldC50YWdOYW1lJiYiSU5QVVQiIT09YS50YXJnZXQudGFnTmFtZSYmYS50YXJnZXQucXVl'@; put 'cnlTZWxlY3RvcigiaW5wdXQiKS5jbGljaygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChZOCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLDgsImRhdGFncmlkLXNlbGVjdCJdXSxob3N0QmluZGluZ3M6ZnVuY3Rp'@; put 'b24oYSxkKXsxJmEmJnh0KCJjbGljayIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25TZWxlY3Rpb25DZWxsQ2xpY2soZil9KX19KSxjfSkoKSxPRT0wLG5nPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQsVyxpZSxwZSx3ZSxFZSxaZSl7dGhpcy5zZWxlY3Rpb249YSx0aGlz'@; put 'LnJvd0FjdGlvblNlcnZpY2U9ZCx0aGlzLmdsb2JhbEV4cGFuZGFibGU9aCx0aGlzLmV4cGFuZD1mLHRoaXMuZGV0YWlsU2VydmljZT1fLHRoaXMuZGlzcGxheU1vZGU9VCx0aGlzLnZjcj1XLHRoaXMucmVuZGVyZXI9aWUsdGhpcy5lbD1wZSx0aGlzLmNvbW1vblN0cmluZ3M9d2UsdGhpcy5p'@; put 'dGVtcz1FZSx0aGlzLmRvY3VtZW50PVplLHRoaXMuc2VsZWN0ZWRDaGFuZ2VkPW5ldyBFcighMSksdGhpcy5leHBhbmRlZENoYW5nZT1uZXcgRXIoITEpLHRoaXMuZGlzcGxheUNlbGxzPSExLHRoaXMuZXhwYW5kQW5pbWF0aW9uVHJpZ2dlcj0hMSx0aGlzLlNFTEVDVElPTl9UWVBFPWFhLHRo'@; put 'aXMuaXRlbUNoYW5nZXM9bmV3IHF4KDEpLHRoaXMuX3NlbGVjdGVkPSExLHRoaXMuX2RldGFpbE9wZW5MYWJlbD0iIix0aGlzLl9kZXRhaWxDbG9zZUxhYmVsPSIiLHRoaXMuX3Jvd0FyaWFMYWJlbD0iIix0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5fc2VsZWN0YWJsZT0hMCxPRSsrLHRo'@; put 'aXMuaWQ9ImNsci1kZy1yb3ciK09FLHRoaXMucmFkaW9JZD0iY2xyLWRnLXJvdy1yZCIrT0UsdGhpcy5jaGVja2JveElkPSJjbHItZGctcm93LWNiIitPRSx0aGlzLmV4cGFuZGFibGVJZD1mLmV4cGFuZGFibGVJZCx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChZNih0aGlzLmV4cGFuZC5yZXBs'@; put 'YWNlLHRoaXMuZXhwYW5kLmV4cGFuZENoYW5nZSkuc3Vic2NyaWJlKChbaXQsZXRdKT0+e2l0JiZldD8odGhpcy5yZXBsYWNlZD0hMCx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtcm93LXJlcGxhY2VkIikpOih0aGlzLnJlcGxhY2VkPSEx'@; put 'LHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkYXRhZ3JpZC1yb3ctcmVwbGFjZWQiKSl9KSl9Z2V0IGl0ZW0oKXtyZXR1cm4gdGhpcy5faXRlbX1zZXQgaXRlbShhKXt0aGlzLl9pdGVtPWEsdGhpcy5pdGVtQ2hhbmdlcy5uZXh0KGEpLHRoaXMuY2xy'@; put 'RGdTZWxlY3RhYmxlPXRoaXMuX3NlbGVjdGFibGV9Z2V0IGNsckRnU2VsZWN0YWJsZSgpe3JldHVybiF0aGlzLnNlbGVjdGlvbi5pc0xvY2tlZCh0aGlzLml0ZW0pfXNldCBjbHJEZ1NlbGVjdGFibGUoYSl7dGhpcy5pdGVtJiZ0aGlzLnNlbGVjdGlvbi5sb2NrSXRlbSh0aGlzLml0ZW0sImZh'@; put 'bHNlIj09PWF8fCExPT09YSksdGhpcy5fc2VsZWN0YWJsZT1hfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09YWEuTm9uZT90aGlzLl9zZWxlY3RlZDp0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKHRoaXMuaXRlbSl9c2V0IHNlbGVjdGVkKGEp'@; put 'e3RoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1hYS5Ob25lP3RoaXMuX3NlbGVjdGVkPWE6KGEmJnRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1hYS5NdWx0aT90aGlzLnJhbmdlU2VsZWN0KCk6dGhpcy5zZWxlY3Rpb24ucmFuZ2VTdGFydD1udWxsLHRoaXMuc2VsZWN0aW9u'@; put 'LnNldFNlbGVjdGVkKHRoaXMuaXRlbSxhKSl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuZXhwYW5kLmV4cGFuZGVkfXNldCBleHBhbmRlZChhKXt0aGlzLmV4cGFuZC5leHBhbmRlZD1hfWdldCBjbHJEZ0RldGFpbE9wZW5MYWJlbCgpe3JldHVybiB0aGlzLl9kZXRhaWxPcGVuTGFiZWw/'@; put 'dGhpcy5fZGV0YWlsT3BlbkxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm9wZW59c2V0IGNsckRnRGV0YWlsT3BlbkxhYmVsKGEpe3RoaXMuX2RldGFpbE9wZW5MYWJlbD1hfWdldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoKXtyZXR1cm4gdGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD90aGlz'@; put 'Ll9kZXRhaWxDbG9zZUxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlfXNldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoYSl7dGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD1hfWdldCBjbHJEZ1Jvd0FyaWFMYWJlbCgpe3JldHVybiB0aGlzLl9yb3dBcmlhTGFiZWw/dGhpcy5fcm93QXJp'@; put 'YUxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdH1zZXQgY2xyRGdSb3dBcmlhTGFiZWwoYSl7dGhpcy5fcm93QXJpYUxhYmVsPWF9Z2V0IF92aWV3KCl7cmV0dXJuIHRoaXMud3JhcHBlZEluamVjdG9yLmdldChsSCx0aGlzLnZjcikucm93Vmlld31uZ09uSW5pdCgpe3RoaXMu'@; put 'd3JhcHBlZEluamVjdG9yPW5ldyBDRShsSCx0aGlzLnZjciksdGhpcy5zZWxlY3Rpb24ubG9ja0l0ZW0odGhpcy5pdGVtLCExPT09dGhpcy5jbHJEZ1NlbGVjdGFibGUpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuZGdDZWxscy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuZGdDZWxs'@; put 'cy5mb3JFYWNoKGE9PnthLl92aWV3LmRlc3Ryb3llZHx8dGhpcy5fc2Nyb2xsYWJsZUNlbGxzLmluc2VydChhLl92aWV3KX0pfSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kaXNwbGF5TW9kZS52aWV3LnN1YnNjcmliZShhPT57Zm9yKGxldCBkPXRo'@; put 'aXMuX3Njcm9sbGFibGVDZWxscy5sZW5ndGg7ZD4wO2QtLSl0aGlzLl9zY3JvbGxhYmxlQ2VsbHMuZGV0YWNoKCk7Zm9yKGxldCBkPXRoaXMuX2NhbGN1bGF0ZWRDZWxscy5sZW5ndGg7ZD4wO2QtLSl0aGlzLl9jYWxjdWxhdGVkQ2VsbHMuZGV0YWNoKCk7YT09PVo4LkNBTENVTEFURT8odGhp'@; put 'cy5kaXNwbGF5Q2VsbHM9ITEsdGhpcy5kZ0NlbGxzLmZvckVhY2goZD0+e2QuX3ZpZXcuZGVzdHJveWVkfHx0aGlzLl9jYWxjdWxhdGVkQ2VsbHMuaW5zZXJ0KGQuX3ZpZXcpfSkpOih0aGlzLmRpc3BsYXlDZWxscz0hMCx0aGlzLmRnQ2VsbHMuZm9yRWFjaChkPT57ZC5fdmlldy5kZXN0cm95'@; put 'ZWR8fHRoaXMuX3Njcm9sbGFibGVDZWxscy5pbnNlcnQoZC5fdmlldyl9KSl9KSx0aGlzLmV4cGFuZC5hbmltYXRlLnN1YnNjcmliZSgoKT0+e3RoaXMuZXhwYW5kQW5pbWF0aW9uVHJpZ2dlcj0hdGhpcy5leHBhbmRBbmltYXRpb25UcmlnZ2VyfSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJz'@; put 'Y3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX10b2dnbGUoYT0hdGhpcy5zZWxlY3RlZCl7YSE9PXRoaXMuc2VsZWN0ZWQmJih0aGlzLnNlbGVjdGVkPWEsdGhpcy5zZWxlY3RlZENoYW5nZWQuZW1pdChhKSl9dG9nZ2xlRXhwYW5kKCl7dGhpcy5leHBhbmQuZXhwYW5kYWJs'@; put 'ZSYmKHRoaXMuZXhwYW5kQW5pbWF0aW9uLnVwZGF0ZVN0YXJ0SGVpZ2h0KCksdGhpcy5leHBhbmRlZD0hdGhpcy5leHBhbmRlZCx0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCkpfWNsZWFyUmFuZ2VzKGEpe2Euc2hpZnRLZXkmJih0aGlzLmRvY3VtZW50LmdldFNlbGVj'@; put 'dGlvbigpLnJlbW92ZUFsbFJhbmdlcygpLC0xIT09d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiRmlyZWZveCIpJiYoYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlKCEwKSkpfXNlbGVjdFJvdyhhPSF0aGlzLnNlbGVjdGVkLGQpeyJMQUJFTCIhPT1kLnRhcmdldC50'@; put 'YWdOYW1lJiYodGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PXRoaXMuU0VMRUNUSU9OX1RZUEUuU2luZ2xlP3RoaXMuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGU9dGhpcy5pdGVtOnRoaXMudG9nZ2xlKGEpKX1yYW5nZVNlbGVjdCgpe2NvbnN0IGE9dGhpcy5pdGVtcy5kaXNwbGF5ZWQ7'@; put 'aWYoIWEpcmV0dXJuO2NvbnN0IGQ9YS5pbmRleE9mKHRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQpO2lmKHRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQmJnRoaXMuc2VsZWN0aW9uLmN1cnJlbnQuaW5jbHVkZXModGhpcy5zZWxlY3Rpb24ucmFuZ2VTdGFydCkmJnRoaXMuc2VsZWN0aW9uLnNo'@; put 'aWZ0UHJlc3NlZCYmLTEhPT1kKXtjb25zdCBoPWEuaW5kZXhPZih0aGlzLml0ZW0pLGY9bmV3IFNldCh0aGlzLnNlbGVjdGlvbi5jdXJyZW50LmNvbmNhdChhLnNsaWNlKE1hdGgubWluKGQsaCksTWF0aC5tYXgoZCxoKSsxKSkpO3RoaXMuc2VsZWN0aW9uLmNsZWFyU2VsZWN0aW9uKCksdGhp'@; put 'cy5zZWxlY3Rpb24uY3VycmVudC5wdXNoKC4uLmYpfWVsc2UgdGhpcy5zZWxlY3Rpb24ucmFuZ2VTdGFydD10aGlzLml0ZW19fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KFk4KSx0dChWOCksdHQoajgpLHR0KFBiKSx0dChoMiksdHQoY0gpLHR0'@; put 'KGFzKSx0dChGbyksdHQoTmkpLHR0KEVzKSx0dChBcCksdHQoTHMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLXJvdyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLFRwLDQpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYm'@; put 'KGQuZGdDZWxscz1mKX19LHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmKFJvKGJFLDUpLFJvKGF2ZSw1KSxSbyhsdmUsNSxhcyksUm8oY3ZlLDUsYXMpLFJvKHV2ZSw1LGFzKSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5leHBhbmRBbmltYXRpb249aC5maXJzdCksYWkoaD1s'@; put 'aSgpKSYmKGQuZGV0YWlsQnV0dG9uPWguZmlyc3QpLGFpKGg9bGkoKSkmJihkLl9zdGlja3lDZWxscz1oLmZpcnN0KSxhaShoPWxpKCkpJiYoZC5fc2Nyb2xsYWJsZUNlbGxzPWguZmlyc3QpLGFpKGg9bGkoKSkmJihkLl9jYWxjdWxhdGVkQ2VsbHM9aC5maXJzdCl9fSxob3N0QXR0cnM6WyJy'@; put 'b2xlIiwicm93Z3JvdXAiXSxob3N0VmFyczo1LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKFRyKCJhcmlhLW93bnMiLGQuaWQpLGRyKCJkYXRhZ3JpZC1yb3ciLCEwKSgiZGF0YWdyaWQtc2VsZWN0ZWQiLGQuc2VsZWN0ZWQpKX0saW5wdXRzOntpdGVtOlsiY2xyRGdJdGVtIiwi'@; put 'aXRlbSJdLGNsckRnU2VsZWN0YWJsZToiY2xyRGdTZWxlY3RhYmxlIixzZWxlY3RlZDpbImNsckRnU2VsZWN0ZWQiLCJzZWxlY3RlZCJdLGV4cGFuZGVkOlsiY2xyRGdFeHBhbmRlZCIsImV4cGFuZGVkIl0sY2xyRGdEZXRhaWxPcGVuTGFiZWw6ImNsckRnRGV0YWlsT3BlbkxhYmVsIixjbHJE'@; put 'Z0RldGFpbENsb3NlTGFiZWw6ImNsckRnRGV0YWlsQ2xvc2VMYWJlbCIsY2xyRGdSb3dBcmlhTGFiZWw6ImNsckRnUm93QXJpYUxhYmVsIn0sb3V0cHV0czp7c2VsZWN0ZWRDaGFuZ2VkOiJjbHJEZ1NlbGVjdGVkQ2hhbmdlIixleHBhbmRlZENoYW5nZToiY2xyRGdFeHBhbmRlZENoYW5nZSJ9'@; put 'LGZlYXR1cmVzOlt0aShbUGIse3Byb3ZpZGU6WXUsdXNlRXhpc3Rpbmc6UGJ9LHtwcm92aWRlOnZiLHVzZUV4aXN0aW5nOlBifV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RnZlLGRlY2xzOjksdmFyczozLGNvbnN0czpbWyJjbGFzcyIsImRhdGFncmlkLXJvdy1jbGlja2FibGUiLDMsIm1vdXNl'@; put 'ZG93biIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZFRyaWdnZXIiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsiZGV0YWlsIiwiIl0sWyJyb3dDb250ZW50IiwiIl0sWyJjYWxjdWxhdGVkQ2VsbHMiLCIiXSxbMSwiZGF0YWdyaWQtcm93LWNsaWNrYWJsZSIsMywibW91c2Vkb3duIiwi'@; put 'Y2xpY2siXSxbMywiY2xyRXhwYW5kVHJpZ2dlciJdLFszLCJuZ1RlbXBsYXRlT3V0bGV0Il0sWyJyb2xlIiwicm93IiwxLCJkYXRhZ3JpZC1yb3ctbWFzdGVyIiwiZGF0YWdyaWQtcm93LWZsZXgiLDMsImlkIl0sWzEsImRhdGFncmlkLXJvdy1zdGlja3kiXSxbInN0aWNreUNlbGxzIiwiIl0s'@; put 'WyJjbGFzcyIsImRhdGFncmlkLXNlbGVjdCBkYXRhZ3JpZC1maXhlZC1jb2x1bW4gZGF0YWdyaWQtY2VsbCIsInJvbGUiLCJncmlkY2VsbCIsMywibmdDbGFzcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1yb3ctYWN0aW9ucyBkYXRhZ3JpZC1maXhlZC1jb2x1bW4gZGF0YWdyaWQt'@; put 'Y2VsbCIsInJvbGUiLCJncmlkY2VsbCIsNCwibmdJZiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiBkYXRhZ3JpZC1jZWxsIiwicm9sZSIsImdyaWRjZWxsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLWRldGFpbC1jYXJl'@; put 'dCBkYXRhZ3JpZC1maXhlZC1jb2x1bW4gZGF0YWdyaWQtY2VsbCIsNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZSIsMywibmdDbGFzcyJdLFsxLCJkYXRhZ3JpZC1zY3JvbGxpbmctY2VsbHMiXSxbInNjcm9sbGFibGVDZWxscyIsIiJdLFsicm9sZSIsImdyaWRjZWxsIiwx'@; put 'LCJkYXRhZ3JpZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIiwzLCJuZ0NsYXNzIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIsMywibmdNb2RlbCIsImlkIiwiZGlzYWJsZWQiLCJuZ01vZGVsQ2hhbmdlIl0sWzEsImNsci1jb250'@; put 'cm9sLWxhYmVsIiwiY2xyLWNvbC1udWxsIiwzLCJmb3IiLCJjbGljayJdLFsxLCJjbHItc3Itb25seSJdLFsidHlwZSIsInJhZGlvIiwiY2xyUmFkaW8iLCIiLDMsImlkIiwibmFtZSIsInZhbHVlIiwibmdNb2RlbCIsImNoZWNrZWQiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiXSxbMSwi'@; put 'Y2xyLWNvbnRyb2wtbGFiZWwiLCJjbHItY29sLW51bGwiLDMsImZvciJdLFsicm9sZSIsImdyaWRjZWxsIiwxLCJkYXRhZ3JpZC1yb3ctYWN0aW9ucyIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFncmlkLWNlbGwiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtZXhwYW5k'@; put 'YWJsZS1jYXJldCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFncmlkLWNlbGwiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xyU21hbGwiLCIiLDQsIm5nSWYiXSxbInR5cGUi'@; put 'LCJidXR0b24iLDEsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9uIiwzLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSIsMSwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1pY29uIl0sWyJjbHJTbWFsbCIsIiJdLFsxLCJkYXRhZ3JpZC1kZXRhaWwtY2FyZXQiLCJkYXRhZ3JpZC1m'@; put 'aXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJ0eXBlIiwiYnV0dG9uIiwiYXJpYS1oYXNwb3B1cCIsImRpYWxvZyIsMSwiZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbiIsMywiY2xpY2siXSxbImRldGFpbEJ1dHRvbiIsIiJdLFsic2hhcGUiLCJhbmdsZS1kb3VibGUiLDEsImRh'@; put 'dGFncmlkLWRldGFpbC1jYXJldC1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoUHZlKSxKZSgwLGd2ZSwzLDIsImRpdiIsMCksSmUoMSx2dmUsMiwyLCJjbHItZXhwYW5kYWJsZS1hbmltYXRpb24iLDEpLEplKDIsYnZlLDEsMSxudWxsLDIpLEplKDMseXZlLDEsMCwi'@; put 'bmctdGVtcGxhdGUiLG51bGwsMyxrYyksSmUoNSxPdmUsMTYsMTMsIm5nLXRlbXBsYXRlIixudWxsLDQsa2MpLGphKDcsbnVsbCw1KSksMiZhJiYoUmUoIm5nSWYiLGQuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbk1vZGUpLENlKDEpLFJlKCJuZ0lmIiwhZC5zZWxlY3Rpb24ucm93U2VsZWN0aW9u'@; put 'TW9kZSYmZC5leHBhbmQuZXhwYW5kYWJsZSksQ2UoMSksUmUoIm5nSWYiLCFkLnNlbGVjdGlvbi5yb3dTZWxlY3Rpb25Nb2RlJiYhZC5leHBhbmQuZXhwYW5kYWJsZSkpfSxkZXBlbmRlbmNpZXM6W2JFLFQwLEtGLHUyLFppLHJkLHVILGRjLFMwLEQwLEJzLE9zLFVzLGxFLFdhLFhGLHFzXSxl'@; put 'bmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTt2YXIgTDA9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5XSURUSD0wXT0iV0lEVEgiLGNbYy5ISURERU49MV09IkhJRERFTiIsY30oTDB8fHt9KTtjb25zdCB2UT1PYmplY3Qua2V5cyhMMCkubWFwKGM9PkwwW2NdKS5maWx0ZXIoYz0+Yz09PXBhcnNlSW50'@; put 'KGMsMTApKTtsZXQgSGY9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuY29sdW1ucz1bXSx0aGlzLl9jYWNoZT1bXX1nZXQgY29sdW1uU3RhdGVzKCl7cmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoYT0+YS52YWx1ZSl9Z2V0IGhhc0hpZGVhYmxlQ29sdW1ucygpe3JldHVybiB0aGlz'@; put 'LmNvbHVtblN0YXRlcy5maWx0ZXIoYT0+YS5oaWRlYWJsZSkubGVuZ3RoPjB9Y2FjaGUoKXt0aGlzLl9jYWNoZT10aGlzLmNvbHVtbnMubWFwKGE9Pntjb25zdCBkPXsuLi5hLnZhbHVlfTtyZXR1cm4gZGVsZXRlIGQuY2hhbmdlcyxkfSl9aGFzQ2FjaGUoKXtyZXR1cm4hIXRoaXMuX2NhY2hl'@; put 'Lmxlbmd0aH1yZXNldFRvTGFzdENhY2hlKCl7dGhpcy5fY2FjaGUuZm9yRWFjaCgoYSxkKT0+e3RoaXMuY29sdW1uc1tkXS5uZXh0KHsuLi5hLGNoYW5nZXM6dlF9KX0pLHRoaXMuX2NhY2hlPVtdfWVtaXRTdGF0ZUNoYW5nZUF0KGEsZCl7dGhpcy5jb2x1bW5zW2FdJiZ0aGlzLmVtaXRTdGF0'@; put 'ZUNoYW5nZSh0aGlzLmNvbHVtbnNbYV0sZCl9ZW1pdFN0YXRlQ2hhbmdlKGEsZCl7YS5uZXh0KHsuLi5hLnZhbHVlLC4uLmR9KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1'@; put 'ZmFjfSksY30pKCksX1E9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLmZpbHRlcnM9YSx0aGlzLnNvcnQ9ZCx0aGlzLnBhZ2U9aCx0aGlzLmRlYm91bmNlcj1mLHRoaXMuY2hhbmdlPXRoaXMuZGVib3VuY2VyLmNoYW5nZS5waXBlKE1lKCgpPT50aGlzLnN0YXRlKSl9'@; put 'Z2V0IHN0YXRlKCl7Y29uc3QgYT17fTt0aGlzLnBhZ2Uuc2l6ZT4wJiYoYS5wYWdlPXtmcm9tOnRoaXMucGFnZS5maXJzdEl0ZW0sdG86dGhpcy5wYWdlLmxhc3RJdGVtLHNpemU6dGhpcy5wYWdlLnNpemUsY3VycmVudDp0aGlzLnBhZ2UuY3VycmVudH0pLHRoaXMuc29ydC5jb21wYXJhdG9y'@; put 'JiYoYS5zb3J0PXRoaXMuc29ydC5jb21wYXJhdG9yIGluc3RhbmNlb2YgSUU/e2J5OnRoaXMuc29ydC5jb21wYXJhdG9yLnByb3AscmV2ZXJzZTp0aGlzLnNvcnQucmV2ZXJzZX06e2J5OnRoaXMuc29ydC5jb21wYXJhdG9yLHJldmVyc2U6dGhpcy5zb3J0LnJldmVyc2V9KTtjb25zdCBkPXRo'@; put 'aXMuZmlsdGVycy5nZXRBY3RpdmVGaWx0ZXJzKCk7aWYoZC5sZW5ndGg+MCl7YS5maWx0ZXJzPVtdO2Zvcihjb25zdCBoIG9mIGQpYS5maWx0ZXJzLnB1c2goaC5zdGF0ZT9oLnN0YXRlOmgpfXJldHVybiBhfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KShhcihGZiksYXIoTEUpLGFyKEVwKSxhcihSYikpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLGJRPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy56b25lPWEsdGhpcy5saXN0ZW5lcnNBZGRlZD0hMSx0aGlzLmRlc3Ryb3kk'@; put 'PW5ldyBiZSx0aGlzLmNvbmZpZz17a2V5R3JpZFJvd3M6Iltyb2xlPXJvd106bm90KC5kYXRhZ3JpZC1wbGFjZWhvbGRlcikiLGtleUdyaWRDZWxsczoiW3JvbGU9Z3JpZGNlbGxdOm5vdCguZGF0YWdyaWQtaGlkZGVuLWNvbHVtbik6bm90KC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1jb250ZW50'@; put 'KSwgW3JvbGU9Y29sdW1uaGVhZGVyXTpub3QoLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4pOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGVudCksIC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQiLGtleUdyaWQ6Iltyb2xlPWdyaWRdIn19Z2V0IGdyaWQoKXtyZXR1cm4gdGhpcy5ob3N0Py5x'@; put 'dWVyeVNlbGVjdG9yKHRoaXMuY29uZmlnLmtleUdyaWQpfWdldCByb3dzKCl7cmV0dXJuIHRoaXMuaG9zdD8ucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkUm93cyl9Z2V0IGNlbGxzKCl7cmV0dXJuIHRoaXMuaG9zdD8ucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5r'@; put 'ZXlHcmlkQ2VsbHMpfW5nT25EZXN0cm95KCl7dGhpcy5kZXN0cm95JC5uZXh0KCksdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpfWFkZExpc3RlbmVycygpe3RoaXMubGlzdGVuZXJzQWRkZWR8fCh0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntuMih0aGlzLmdyaWQsIm1vdXNlZG93'@; put 'biIpLnBpcGUoYWgodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShhPT57aWYoMT09PWEuYnV0dG9ucyYmIWEuY3RybEtleSl7Y29uc3QgZD10aGlzLmNlbGxzP0FycmF5LmZyb20odGhpcy5jZWxscykuZmluZChoPT5oPT09YS50YXJnZXR8fGg9PT1hLnRhcmdldC5jbG9zZXN0KHRoaXMuY29u'@; put 'ZmlnLmtleUdyaWRDZWxscykpOm51bGw7ZCYmdGhpcy5zZXRBY3RpdmVDZWxsKGQpfX0pLG4yKHRoaXMuZ3JpZCwia2V5ZG93biIpLnBpcGUoYWgodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShhPT57aWYoKCFhLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImRyYWctaGFuZGxlIil8fCJB'@; put 'cnJvd0xlZnQiIT09YS5jb2RlJiYiQXJyb3dSaWdodCIhPT1hLmNvZGUpJiYoIkFycm93VXAiPT09YS5jb2RlfHwiQXJyb3dEb3duIj09PWEuY29kZXx8IkFycm93TGVmdCI9PT1hLmNvZGV8fCJBcnJvd1JpZ2h0Ij09PWEuY29kZXx8IkVuZCI9PT1hLmNvZGV8fCJIb21lIj09PWEuY29kZXx8'@; put 'IlBhZ2VVcCI9PT1hLmNvZGV8fCJQYWdlRG93biI9PT1hLmNvZGUpKXtjb25zdHt4OmQseTpofT10aGlzLmdldE5leHRJdGVtQ29vcmRpbmF0ZShhKSxmPXRoaXMucm93cz9BcnJheS5mcm9tKHRoaXMucm93c1toXS5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRDZWxscykp'@; put 'W2RdOm51bGw7ZiYmdGhpcy5zZXRBY3RpdmVDZWxsKGYpLGEucHJldmVudERlZmF1bHQoKX19KX0pLHRoaXMubGlzdGVuZXJzQWRkZWQ9ITApfWluaXRpYWxpemVLZXlHcmlkKGEpe3RoaXMuaG9zdD1hLHRoaXMuYWRkTGlzdGVuZXJzKCksdGhpcy5yZXNldEtleUdyaWQoKX1yZXNldEtleUdy'@; put 'aWQoKXt0aGlzLmNlbGxzPy5mb3JFYWNoKGQ9PmQuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIikpLCh0aGlzLmNlbGxzP3RoaXMuY2VsbHNbMF06bnVsbCk/LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIil9c2V0QWN0aXZlQ2VsbChhKXtjb25zdCBkPXRoaXMuY2VsbHM/QXJyYXku'@; put 'ZnJvbSh0aGlzLmNlbGxzKS5maW5kKF89PiIwIj09PV8uZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKTpudWxsO2QmJmQuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksYS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpO2NvbnN0IGg9ZnVuY3Rpb24gdXdlKGMpe2NvbnN0IGw9WyJh'@; put 'W2hyZWZdIiwiYXJlYVtocmVmXSIsImlucHV0Om5vdChbZGlzYWJsZWRdKSIsImJ1dHRvbjpub3QoW2Rpc2FibGVkXSkiLCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pIiwidGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIiwiaWZyYW1lIiwib2JqZWN0IiwiZW1iZWQiLCIqW3RhYmluZGV4XSIsIipb'@; put 'Y29udGVudGVkaXRhYmxlPXRydWVdIiwiW3JvbGU9YnV0dG9uXTpub3QoW2Rpc2FibGVkXSkiXS5qb2luKCIsIik7cmV0dXJuIEFycmF5LmZyb20oYy5xdWVyeVNlbGVjdG9yQWxsKGwpKX0oYSk7KCJjb2x1bW5oZWFkZXIiIT09YS5nZXRBdHRyaWJ1dGUoInJvbGUiKSYmaFswXT9oWzBdOmEp'@; put 'LmZvY3VzKCl9Z2V0TmV4dEl0ZW1Db29yZGluYXRlKGEpe2xldCBkPXRoaXMuY2VsbHM/QXJyYXkuZnJvbSh0aGlzLmNlbGxzKS5maW5kKFplPT4iMCI9PT1aZS5nZXRBdHRyaWJ1dGUoInRhYmluZGV4IikpOm51bGw7IlRhYiI9PT1hLmNvZGUmJihkPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQp'@; put 'O2NvbnN0IGg9dGhpcy5yb3dzJiZkP0FycmF5LmZyb20odGhpcy5yb3dzKS5maW5kKFplPT5aZS5jb250YWlucyhkKSk6bnVsbCxmPXRoaXMucm93cz90aGlzLnJvd3MubGVuZ3RoLTE6MCxfPXRoaXMuY2VsbHM/dGhpcy5jZWxscy5sZW5ndGgvdGhpcy5yb3dzLmxlbmd0aC0xOjA7bGV0IFQ9'@; put 'aCYmZD9BcnJheS5mcm9tKGgucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKS5pbmRleE9mKGQpOjAsVz1oJiZkJiZ0aGlzLnJvd3M/QXJyYXkuZnJvbSh0aGlzLnJvd3MpLmluZGV4T2YoaCk6MDtjb25zdCBpZT10aGlzLmhvc3QuZGlyLHBlPSJydGwiPT09aWU/'@; put 'IkFycm93UmlnaHQiOiJBcnJvd0xlZnQiLHdlPSJydGwiPT09aWU/IkFycm93TGVmdCI6IkFycm93UmlnaHQiLEVlPU1hdGguZmxvb3IodGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yKCIuZGF0YWdyaWQiKS5jbGllbnRIZWlnaHQvdGhpcy5yb3dzWzBdLmNsaWVudEhlaWdodCktMXx8MDtyZXR1'@; put 'cm4iQXJyb3dVcCI9PT1hLmNvZGUmJjAhPT1XP1ctPTE6IkFycm93RG93biI9PT1hLmNvZGUmJlc8Zj9XKz0xOmEuY29kZT09PXBlJiYwIT09VD9ULT0xOmEuY29kZT09PXdlJiZUPF8/VCs9MToiRW5kIj09PWEuY29kZT8oVD1fLGEuY3RybEtleSYmKFc9ZikpOiJIb21lIj09PWEuY29kZT8o'@; put 'VD0wLGEuY3RybEtleSYmKFc9MCkpOiJQYWdlVXAiPT09YS5jb2RlP1c9Vy1FZT4wP1ctRWU6MDoiUGFnZURvd24iPT09YS5jb2RlJiYoVz1XK0VlPGY/VytFZTpmKSx7eDpULHk6V319fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKE5vKSl9LGMu'@; put 'XHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksVzg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGllLHBlLHdlLEVlLFplLGl0LGV0LHl0LEV0KXt0aGlzLm9yZ2FuaXplcj1hLHRoaXMuaXRlbXM9ZCx0aGlzLmV4cGFuZGFi'@; put 'bGVSb3dzPWgsdGhpcy5zZWxlY3Rpb249Zix0aGlzLnJvd0FjdGlvblNlcnZpY2U9Xyx0aGlzLnN0YXRlUHJvdmlkZXI9VCx0aGlzLmRpc3BsYXlNb2RlPVcsdGhpcy5yZW5kZXJlcj1pZSx0aGlzLmRldGFpbFNlcnZpY2U9cGUsdGhpcy5kb2N1bWVudD13ZSx0aGlzLmVsPUVlLHRoaXMucGFn'@; put 'ZT1aZSx0aGlzLmNvbW1vblN0cmluZ3M9aXQsdGhpcy5jb2x1bW5zU2VydmljZT1ldCx0aGlzLmtleU5hdmlnYXRpb249eXQsdGhpcy56b25lPUV0LHRoaXMuY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw9dGhpcy5jb21tb25TdHJpbmdzLmtleXMuc2luZ2xlU2VsZWN0aW9uQXJpYUxh'@; put 'YmVsLHRoaXMuY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwsdGhpcy5jbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRldGFpbEV4cGFuZGFibGVB'@; put 'cmlhTGFiZWwsdGhpcy5jbHJEZ0Rpc2FibGVQYWdlRm9jdXM9ITEsdGhpcy5zZWxlY3RlZENoYW5nZWQ9bmV3IEVyKCExKSx0aGlzLnNpbmdsZVNlbGVjdGVkQ2hhbmdlZD1uZXcgRXIoITEpLHRoaXMucmVmcmVzaD1uZXcgRXIoITEpLHRoaXMuU0VMRUNUSU9OX1RZUEU9YWEsdGhpcy5fc3Vi'@; put 'c2NyaXB0aW9ucz1bXTtjb25zdCBTdD1JYygpO3RoaXMuc2VsZWN0QWxsSWQ9ImNsci1kZy1zZWxlY3QtYWxsLSIrU3QsdGhpcy5kZXRhaWxTZXJ2aWNlLmlkPVN0fWdldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuaXRlbXMubG9hZGluZ31zZXQgbG9hZGluZyhhKXt0aGlzLml0ZW1zLmxvYWRp'@; put 'bmc9YX1zZXQgc2VsZWN0ZWQoYSl7dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT1hP2FhLk11bHRpOmFhLk5vbmUsdGhpcy5zZWxlY3Rpb24udXBkYXRlQ3VycmVudChhLCExKX1zZXQgc2luZ2xlU2VsZWN0ZWQoYSl7dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT1hYS5TaW5nbGUs'@; put 'YT90aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPWE6dGhpcy5zZWxlY3Rpb24uY3VycmVudFNpbmdsZSYmKHRoaXMuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGU9bnVsbCl9c2V0IGNsckRnUHJlc2VydmVTZWxlY3Rpb24oYSl7dGhpcy5zZWxlY3Rpb24ucHJlc2VydmVTZWxlY3Rpb249YX1z'@; put 'ZXQgcm93U2VsZWN0aW9uTW9kZShhKXt0aGlzLnNlbGVjdGlvbi5yb3dTZWxlY3Rpb25Nb2RlPWF9c2V0IHRyYWNrQnkoYSl7dGhpcy5pdGVtcy5kYXRhZ3JpZFRyYWNrQnk9YX1nZXQgYWxsU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24uaXNBbGxTZWxlY3RlZCgpfXNldCBhbGxT'@; put 'ZWxlY3RlZChhKXt0aGlzLnNlbGVjdGlvbi50b2dnbGVBbGwoKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLml0ZW1zLnNtYXJ0fHwodGhpcy5pdGVtcy5hbGw9dGhpcy5yb3dzLm1hcChkPT5kLml0ZW0pKTtjb25zdCBhPXRoaXMucm93cy5jaGFuZ2VzLnBpcGUoU2EoZD0+aXMoV2koZC5t'@; put 'YXAoaD0+aC5pdGVtKSksWTYoZC5tYXAoaD0+aC5pdGVtQ2hhbmdlcykpLnBpcGUoZjgoMCkpKSkpO3RoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChhLnN1YnNjcmliZShkPT57dGhpcy5pdGVtcy5zbWFydHx8KHRoaXMuaXRlbXMuYWxsPWQpfSksdGhpcy5yb3dzLmNoYW5nZXMuc3Vic2NyaWJl'@; put 'KCgpPT57Zm9yKGxldCBkPXRoaXMuX2Rpc3BsYXllZFJvd3MubGVuZ3RoLTE7ZD49MDtkLS0pdGhpcy5fZGlzcGxheWVkUm93cy5nZXQoZCkuZGVzdHJveWVkJiZ0aGlzLl9kaXNwbGF5ZWRSb3dzLnJlbW92ZShkKTtpZih0aGlzLnJvd3MuZm9yRWFjaChkPT57dGhpcy5fZGlzcGxheWVkUm93'@; put 'cy5pbnNlcnQoZC5fdmlldyl9KSx0aGlzLmRldGFpbFNlcnZpY2Uuc3RhdGUmJnRoaXMuZGV0YWlsU2VydmljZS5pc09wZW4pe2NvbnN0IGQ9dGhpcy5pdGVtcy5jYW5UcmFja0J5KCk/dGhpcy5yb3dzLmZpbmQoaD0+dGhpcy5pdGVtcy50cmFja0J5KGguaXRlbSk9PT10aGlzLml0ZW1zLnRy'@; put 'YWNrQnkodGhpcy5kZXRhaWxTZXJ2aWNlLnN0YXRlKSk6dm9pZCAwO2Q/dGhpcy5kZXRhaWxTZXJ2aWNlLm9wZW4oZC5pdGVtLGQuZGV0YWlsQnV0dG9uLm5hdGl2ZUVsZW1lbnQpOnRoaXMuZGV0YWlsU2VydmljZS5jbG9zZSgpfX0pKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmtleU5hdmln'@; put 'YXRpb24uaW5pdGlhbGl6ZUtleUdyaWQodGhpcy5lbC5uYXRpdmVFbGVtZW50KSx0aGlzLnJlZnJlc2guZW1pdCh0aGlzLnN0YXRlUHJvdmlkZXIuc3RhdGUpLHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0YXRlUHJvdmlkZXIuY2hhbmdlLnN1YnNjcmliZShhPT50aGlzLnJlZnJl'@; put 'c2guZW1pdChhKSksdGhpcy5zZWxlY3Rpb24uY2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PWFhLlNpbmdsZT90aGlzLnNpbmdsZVNlbGVjdGVkQ2hhbmdlZC5lbWl0KGEpOnRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1hYS5NdWx0aSYm'@; put 'dGhpcy5zZWxlY3RlZENoYW5nZWQuZW1pdChhKX0pLHRoaXMucGFnZS5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5rZXlOYXZpZ2F0aW9uLnJlc2V0S2V5R3JpZCgpLHRoaXMuY2xyRGdEaXNhYmxlUGFnZUZvY3VzfHx0aGlzLmRhdGFncmlkVGFibGUubmF0aXZlRWxlbWVudC5mb2N1cygp'@; put 'fSksWTYodGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zKS5zdWJzY3JpYmUoKCk9PnRoaXMua2V5TmF2aWdhdGlvbj8ucmVzZXRLZXlHcmlkKCkpLHRoaXMuZGlzcGxheU1vZGUudmlldy5zdWJzY3JpYmUoYT0+e2ZvcihsZXQgZD10aGlzLl9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucy5sZW5n'@; put 'dGg7ZD4wO2QtLSl0aGlzLl9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucy5kZXRhY2goKTtmb3IobGV0IGQ9dGhpcy5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zLmxlbmd0aDtkPjA7ZC0tKXRoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5kZXRhY2goKTtmb3IobGV0IGQ9dGhp'@; put 'cy5fY2FsY3VsYXRpb25Sb3dzLmxlbmd0aDtkPjA7ZC0tKXRoaXMuX2NhbGN1bGF0aW9uUm93cy5kZXRhY2goKTtmb3IobGV0IGQ9dGhpcy5fZGlzcGxheWVkUm93cy5sZW5ndGg7ZD4wO2QtLSl0aGlzLl9kaXNwbGF5ZWRSb3dzLmRldGFjaCgpO2E9PT1aOC5ESVNQTEFZPyh0aGlzLnJlbmRl'@; put 'cmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUiKSx0aGlzLmNvbHVtbnMuZm9yRWFjaChkPT57dGhpcy5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnMuaW5zZXJ0KGQuX3ZpZXcpfSksdGhpcy5yb3dzLmZvckVhY2goZD0+e3RoaXMu'@; put 'X2Rpc3BsYXllZFJvd3MuaW5zZXJ0KGQuX3ZpZXcpfSkpOih0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUiKSx0aGlzLmNvbHVtbnMuZm9yRWFjaChkPT57dGhpcy5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5z'@; put 'Lmluc2VydChkLl92aWV3KX0pLHRoaXMucm93cy5mb3JFYWNoKGQ9Pnt0aGlzLl9jYWxjdWxhdGlvblJvd3MuaW5zZXJ0KGQuX3ZpZXcpfSkpfSkpLHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChuMih0aGlzLmRvY3VtZW50LmJvZHks'@; put 'ImtleWRvd24iKS5zdWJzY3JpYmUoYT0+eyJTaGlmdCI9PT1hLmtleSYmKHRoaXMuc2VsZWN0aW9uLnNoaWZ0UHJlc3NlZD0hMCl9KSxuMih0aGlzLmRvY3VtZW50LmJvZHksImtleXVwIikuc3Vic2NyaWJlKGE9PnsiU2hpZnQiPT09YS5rZXkmJih0aGlzLnNlbGVjdGlvbi5zaGlmdFByZXNz'@; put 'ZWQ9ITEpfSkpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1yZXNpemUoKXt0aGlzLm9yZ2FuaXplci5yZXNpemUoKX1kYXRhQ2hhbmdlZCgpe3RoaXMuaXRlbXMucmVmcmVzaCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVu'@; put 'Y3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChlZyksdHQoQXApLHR0KGo4KSx0dChZOCksdHQoVjgpLHR0KF9RKSx0dChjSCksdHQoRm8pLHR0KGgyKSx0dChMcyksdHQoTmkpLHR0KEVwKSx0dChFcyksdHQoSGYpLHR0KGJRKSx0dChObykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNl'@; put 'bGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmKElvKGgsVTgsNSksSW8oaCxySCw1KSxJbyhoLHRnLDQpLElvKGgsbmcsNCkpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQuaXRlcmF0b3I9Zi5maXJzdCksYWkoZj1saSgp'@; put 'KSYmKGQucGxhY2Vob2xkZXI9Zi5maXJzdCksYWkoZj1saSgpKSYmKGQuY29sdW1ucz1mKSxhaShmPWxpKCkpJiYoZC5yb3dzPWYpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiYoUm8oSHZlLDUsTmkpLFJvKE52ZSw1LGFzKSxSbyhWdmUsNSxhcyksUm8oQnZlLDUsYXMpLFJv'@; put 'KGp2ZSw1LGFzKSxSbyh6dmUsNSxhcykpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQuZGF0YWdyaWRUYWJsZT1oLmZpcnN0KSxhaShoPWxpKCkpJiYoZC5zY3JvbGxhYmxlQ29sdW1ucz1oLmZpcnN0KSxhaShoPWxpKCkpJiYoZC5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnM9aC5maXJzdCks'@; put 'YWkoaD1saSgpKSYmKGQuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucz1oLmZpcnN0KSxhaShoPWxpKCkpJiYoZC5fZGlzcGxheWVkUm93cz1oLmZpcnN0KSxhaShoPWxpKCkpJiYoZC5fY2FsY3VsYXRpb25Sb3dzPWguZmlyc3QpfX0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rp'@; put 'b24oYSxkKXsyJmEmJmRyKCJkYXRhZ3JpZC1ob3N0IiwhMCkoImRhdGFncmlkLWRldGFpbC1vcGVuIixkLmRldGFpbFNlcnZpY2UuaXNPcGVuKX0saW5wdXRzOntjbHJEZ1NpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbDoiY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWwiLGNsckRnU2luZ2xl'@; put 'QWN0aW9uYWJsZUFyaWFMYWJlbDoiY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsIixjbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsOiJjbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsIixjbHJEZ0Rpc2FibGVQYWdlRm9jdXM6ImNsckRnRGlzYWJsZVBhZ2VGb2N1cyIsbG9hZGlu'@; put 'ZzpbImNsckRnTG9hZGluZyIsImxvYWRpbmciXSxzZWxlY3RlZDpbImNsckRnU2VsZWN0ZWQiLCJzZWxlY3RlZCJdLHNpbmdsZVNlbGVjdGVkOlsiY2xyRGdTaW5nbGVTZWxlY3RlZCIsInNpbmdsZVNlbGVjdGVkIl0sY2xyRGdQcmVzZXJ2ZVNlbGVjdGlvbjoiY2xyRGdQcmVzZXJ2ZVNlbGVj'@; put 'dGlvbiIscm93U2VsZWN0aW9uTW9kZTpbImNsckRnUm93U2VsZWN0aW9uIiwicm93U2VsZWN0aW9uTW9kZSJdLHRyYWNrQnk6WyJjbHJEZ0l0ZW1zVHJhY2tCeSIsInRyYWNrQnkiXX0sb3V0cHV0czp7c2VsZWN0ZWRDaGFuZ2VkOiJjbHJEZ1NlbGVjdGVkQ2hhbmdlIixzaW5nbGVTZWxlY3Rl'@; put 'ZENoYW5nZWQ6ImNsckRnU2luZ2xlU2VsZWN0ZWRDaGFuZ2UiLHJlZnJlc2g6ImNsckRnUmVmcmVzaCJ9LGZlYXR1cmVzOlt0aShbWTgsTEUsRmYsRXAsQXAsZWcsVjgsajgsUmIsaDIsX1EsbkgsSGYsY0gsYlFdKV0sbmdDb250ZW50U2VsZWN0b3JzOkt2ZSxkZWNsczozMix2YXJzOjcsY29u'@; put 'c3RzOltbMSwiZGF0YWdyaWQtb3V0ZXItd3JhcHBlciJdLFsxLCJkYXRhZ3JpZC1pbm5lci13cmFwcGVyIl0sWzEsImRhdGFncmlkIl0sWyJkYXRhZ3JpZCIsIiJdLFsxLCJkYXRhZ3JpZC10YWJsZS13cmFwcGVyIl0sWyJyb2xlIiwiZ3JpZCIsInRhYmluZGV4IiwiLTEiLDEsImRhdGFncmlk'@; put 'LXRhYmxlIl0sWyJkYXRhZ3JpZFRhYmxlIiwiIl0sWyJyb2xlIiwicm93Z3JvdXAiLDEsImRhdGFncmlkLWhlYWRlciJdLFsicm9sZSIsInJvdyIsMSwiZGF0YWdyaWQtcm93Il0sWzEsImRhdGFncmlkLXJvdy1tYXN0ZXIiLCJkYXRhZ3JpZC1yb3ctZmxleCJdLFsxLCJkYXRhZ3JpZC1yb3ct'@; put 'c3RpY2t5Il0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtc2VsZWN0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiIsMywia2V5ZG93bi5zcGFjZSIsNCwibmdJZiJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsImNsYXNzIiwiZGF0YWdyaWQt'@; put 'Y29sdW1uIGRhdGFncmlkLXNlbGVjdCBkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLDQsIm5nSWYiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1yb3ctYWN0aW9ucyBkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLDQsIm5nSWYiXSxbInJvbGUi'@; put 'LCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiIsNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZSJdLFsicHJvamVjdGVkRGlzcGxheUNvbHVtbnMiLCIiXSxbImRp'@; put 'c3BsYXllZFJvd3MiLCIiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1zcGlubmVyIiw0LCJuZ0lmIl0sWzEsImRhdGFncmlkLWNhbGN1bGF0aW9uLXRhYmxlIl0sWzEsImRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRlciJdLFsicHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zIiwi'@; put 'Il0sWyJjYWxjdWxhdGlvblJvd3MiLCIiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDEsImRhdGFncmlkLWNvbHVtbiIsImRhdGFncmlkLXNlbGVjdCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsMywia2V5ZG93bi5zcGFjZSJdLFsxLCJjbHItY2hlY2tib3gtd3JhcHBlciJdLFsidHlwZSIs'@; put 'ImNoZWNrYm94IiwidGFiaW5kZXgiLCItMSIsMywiaWQiLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsxLCJjbHItY29udHJvbC1sYWJlbCIsImNsci1jb2wtbnVsbCIsMywiZm9yIl0sWzEsImNsci1zci1vbmx5Il0sWzEsImRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3IiXSxbInJvbGUi'@; put 'LCJjb2x1bW5oZWFkZXIiLDEsImRhdGFncmlkLWNvbHVtbiIsImRhdGFncmlkLXNlbGVjdCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwiZGF0YWdyaWQtY29sdW1uIiwiZGF0YWdyaWQtcm93LWFjdGlvbnMiLCJkYXRhZ3JpZC1maXhlZC1jb2x1'@; put 'bW4iXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDEsImRhdGFncmlkLWNvbHVtbiIsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iXSxbMSwiZGF0YWdyaWQtc3Bpbm5lciJdLFsiY2xyTWVkaXVtIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7'@; put 'MSZhJiYoQWkocXZlKSxrcigwKSxtZSgxLCJkaXYiLDApKDIsImRpdiIsMSkoMywiZGl2IiwyLDMpKDUsImRpdiIsNCkoNiwiZGl2Iiw1LDYpKDgsImRpdiIsNykoOSwiZGl2Iiw4KSgxMCwiZGl2Iiw5KSgxMSwiZGl2IiwxMCksSmUoMTIsVXZlLDcsNSwiZGl2IiwxMSksSmUoMTMsWnZlLDIs'@; put 'MSwiZGl2IiwxMiksSmUoMTQsWXZlLDIsMSwiZGl2IiwxMyksSmUoMTUsV3ZlLDIsMSwiZGl2IiwxNCkseWUoKSxtZSgxNiwiZGl2IiwxNSksamEoMTcsbnVsbCwxNikseWUoKSgpKCkoKSxqYSgxOSxudWxsLDE3KSxrcigyMSwxKSxKZSgyMixHdmUsMSwwLCJjbHItZGctcGxhY2Vob2xkZXIi'@; put 'LDE4KSx5ZSgpKCkoKSxrcigyMywyKSxKZSgyNCwkdmUsMywwLCJkaXYiLDE5KSx5ZSgpLGtyKDI1LDMpLHllKCksbWUoMjYsImRpdiIsMjApKDI3LCJkaXYiLDIxKSxqYSgyOCxudWxsLDIyKSx5ZSgpLGphKDMwLG51bGwsMjMpLHllKCkpLDImYSYmKENlKDMpLFRyKCJhcmlhLWhpZGRlbiIs'@; put 'ISFkLmRldGFpbFNlcnZpY2UuaXNPcGVufHxudWxsKSxDZSg5KSxSZSgibmdJZiIsZC5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PWQuU0VMRUNUSU9OX1RZUEUuTXVsdGkpLENlKDEpLFJlKCJuZ0lmIixkLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09ZC5TRUxFQ1RJT05fVFlQRS5TaW5n'@; put 'bGUpLENlKDEpLFJlKCJuZ0lmIixkLnJvd0FjdGlvblNlcnZpY2UuaGFzQWN0aW9uYWJsZVJvdyksQ2UoMSksUmUoIm5nSWYiLGQuZXhwYW5kYWJsZVJvd3MuaGFzRXhwYW5kYWJsZVJvd3x8ZC5kZXRhaWxTZXJ2aWNlLmVuYWJsZWQpLENlKDcpLFJlKCJuZ0lmIiwhZC5wbGFjZWhvbGRlciks'@; put 'Q2UoMiksUmUoIm5nSWYiLGQubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W3JILHUyLFppLHVILFMwLEJzLE9zLFVzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxkSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuY29sdW1uc1NlcnZpY2U9YSx0aGlzLmFsbFNlbGVjdGVkPW5l'@; put 'dyBFcn1nZXQgY2xyQWxsU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5hbGxTZWxlY3RlZC5hc09ic2VydmFibGUoKX1nZXQgYWxsSGlkZWFibGVzVmlzaWJsZSgpe3JldHVybiAwPT09dGhpcy5oaWRlYWJsZUNvbHVtbnMoKS5maWx0ZXIoYT0+YS52YWx1ZS5oaWRkZW4pLmxlbmd0aH1zZWxlY3RB'@; put 'bGwoKXt0aGlzLmhpZGVhYmxlQ29sdW1ucygpLmZvckVhY2goYT0+dGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2UoYSx7aGlkZGVuOiExLGNoYW5nZXM6W0wwLkhJRERFTl19KSksdGhpcy5hbGxTZWxlY3RlZC5uZXh0KCEwKX1oaWRlYWJsZUNvbHVtbnMoKXtyZXR1cm4gdGhp'@; put 'cy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLmZpbHRlcihhPT5hLnZhbHVlLmhpZGVhYmxlKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoSGYpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dn'@; put 'bGUtYnV0dG9uIl1dLG91dHB1dHM6e2NsckFsbFNlbGVjdGVkOiJjbHJBbGxTZWxlY3RlZCJ9LG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWxpbmsiLCJzd2l0Y2gtYnV0dG9uIiwzLCJk'@; put 'aXNhYmxlZCIsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxtZSgwLCJidXR0b24iLDApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RBbGwoKX0pLGtyKDEpLHllKCkpLDImYSYmUmUoImRpc2FibGVkIixkLmFsbEhpZGVhYmxlc1Zpc2li'@; put 'bGUpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSx5UT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGUiXV0sbmdD'@; put 'b250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpO2NvbnN0IHdRPWM9PmM7bGV0IGhIPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5faXRlbXM9YX1z'@; put 'ZXQgdHJhY2tCeShhKXthIT09d1EmJnRoaXMuX2l0ZW1zJiYodGhpcy5faXRlbXMuaXRlcmF0b3JUcmFja0J5PWEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChBcCw4KSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIs'@; put 'Im5nRm9yVHJhY2tCeSIsIiJdXSxpbnB1dHM6e3RyYWNrQnk6WyJuZ0ZvclRyYWNrQnkiLCJ0cmFja0J5Il19fSksY30pKCksZkg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5jb21tb25TdHJpbmdzPWEsdGhpcy5jb2x1bW5zU2VydmljZT1kLHRoaXMucG9wb3Zlcklk'@; put 'PUljKCksdGhpcy5zbWFydFBvc2l0aW9uPXtheGlzOnZ1LlZFUlRJQ0FMLHNpZGU6b2QuQkVGT1JFLGFuY2hvcjpQcy5TVEFSVCxjb250ZW50OlBzLlNUQVJUfSx0aGlzLnRyYWNrQnlGbj13USx0aGlzLnN1YnNjcmlwdGlvbj1oLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGY9PnRoaXMub3BlblN0'@; put 'YXRlPWYpfWdldCBhbGxDb2x1bW5zVmlzaWJsZSgpe3JldHVybiB0aGlzLl9hbGxDb2x1bW5zVmlzaWJsZX1zZXQgYWxsQ29sdW1uc1Zpc2libGUoYSl7dGhpcy5fYWxsQ29sdW1uc1Zpc2libGU9YX1nZXQgaGlkZWFibGVDb2x1bW5TdGF0ZXMoKXtyZXR1cm4gdGhpcy5jb2x1bW5zU2Vydmlj'@; put 'ZS5jb2x1bW5zLmZpbHRlcihkPT5kLnZhbHVlLmhpZGVhYmxlKS5tYXAoZD0+ZC52YWx1ZSl9Z2V0IGhhc09ubHlPbmVWaXNpYmxlQ29sdW1uKCl7cmV0dXJuIHRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5sZW5ndGgtdGhpcy5oaWRlYWJsZUNvbHVtblN0YXRlcy5sZW5ndGg9PTAmJjE9'@; put 'PT10aGlzLmhpZGVhYmxlQ29sdW1uU3RhdGVzLmZpbHRlcihkPT4hZC5oaWRkZW4pLmxlbmd0aH1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9dG9nZ2xlQ29sdW1uU3RhdGUoYSxkKXtjb25zdCBoPXRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5maWx0'@; put 'ZXIoZj0+Zi52YWx1ZT09PWEpWzBdO3RoaXMuY29sdW1uc1NlcnZpY2UuZW1pdFN0YXRlQ2hhbmdlKGgse2hpZGRlbjpkLGNoYW5nZXM6W0wwLkhJRERFTl19KX10b2dnbGVTd2l0Y2hQYW5lbCgpe3RoaXMub3BlblN0YXRlPSF0aGlzLm9wZW5TdGF0ZX1hbGxDb2x1bW5zU2VsZWN0ZWQoKXt0'@; put 'aGlzLmFsbFNlbGVjdGVkRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEVzKSx0dChIZiksdHQoS3MpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVt'@; put 'bi10b2dnbGUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmKElvKGgseVEsNSksSW8oaCxkSCw1KSksMiZhKXtsZXQgZjthaShmPWxpKCkpJiYoZC5jdXN0b21Ub2dnbGVUaXRsZT1mLmZpcnN0KSxhaShmPWxpKCkpJiYoZC5jdXN0b21Ub2dnbGVCdXR0b249Zi5m'@; put 'aXJzdCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJlJvKEp2ZSw1LE5pKSwyJmEpe2xldCBoO2FpKGg9bGkoKSkmJihkLmFsbFNlbGVjdGVkRWxlbWVudD1oLmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiY29sdW1uLXN3'@; put 'aXRjaC13cmFwcGVyIiwhMCkoImFjdGl2ZSIsZC5vcGVuU3RhdGUpfSxmZWF0dXJlczpbdGkoW0lmLFM4LEtzXSldLG5nQ29udGVudFNlbGVjdG9yczpvX2UsZGVjbHM6Myx2YXJzOjgsY29uc3RzOltbInJvbGUiLCJidXR0b24iLCJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3ZlckFuY2hvciIs'@; put 'IiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLDEsImJ0biIsImJ0bi1zbSIsImNvbHVtbi10b2dnbGUtLWFjdGlvbiJdLFsiY2xhc3MiLCJjb2x1bW4tc3dpdGNoIiwicm9sZSIsImRpYWxvZyIsImNsckZvY3VzVHJhcCIsIiIsMywiaWQiLDQsImNsclBvcG92ZXJDb250ZW50Iiwi'@; put 'Y2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSJdLFsicm9sZSIsImRpYWxvZyIsImNsckZvY3VzVHJhcCIsIiIsMSwiY29sdW1uLXN3aXRjaCIsMywiaWQiXSxbMSwic3dpdGNo'@; put 'LWhlYWRlciJdLFsidGFiaW5kZXgiLCItMSIsMSwiY2xyLXNyLW9ubHkiXSxbImFsbFNlbGVjdGVkIiwiIl0sWzQsIm5nSWYiXSxbImNsclBvcG92ZXJDbG9zZUJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwidG9nZ2xlLXN3aXRjaC1jbG9z'@; put 'ZS1idXR0b24iXSxbInNoYXBlIiwid2luZG93LWNsb3NlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIl0sWzEsImNsci1zci1vbmx5Il0sWzEsInN3aXRjaC1jb250ZW50IiwibGlzdC11bnN0eWxlZCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwic3dpdGNoLWZvb3Rl'@; put 'ciJdLFszLCJjbHJBbGxTZWxlY3RlZCIsNCwibmdJZiJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLDMsImRpc2FibGVkIiwibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywibmdUZW1wbGF0ZU91dGxldCJdLFszLCJjbHJBbGxTZWxlY3RlZCJdXSx0ZW1wbGF0ZTpm'@; put 'dW5jdGlvbihhLGQpezEmYSYmKEFpKGlfZSksbWUoMCwiYnV0dG9uIiwwKSxOZSgxKSx5ZSgpLEplKDIscl9lLDE2LDEwLCJkaXYiLDEpKSwyJmEmJihUcigiYXJpYS1jb250cm9scyIsZC5wb3BvdmVySWQpKCJhcmlhLW93bnMiLGQucG9wb3ZlcklkKSgiYXJpYS1leHBhbmRlZCIsZC5vcGVu'@; put 'U3RhdGUpLENlKDEpLGdyKCIgIixkLmNvbW1vblN0cmluZ3Mua2V5cy5waWNrQ29sdW1ucywiICIpLENlKDEpLFJlKCJjbHJQb3BvdmVyQ29udGVudCIsZC5vcGVuU3RhdGUpKCJjbHJQb3BvdmVyQ29udGVudEF0IixkLnNtYXJ0UG9zaXRpb24pKCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVD'@; put 'bGlja1RvQ2xvc2UiLCEwKSgiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwhMCkpfSxkZXBlbmRlbmNpZXM6W1QwLGRILHdiLE1iLFNiLE1wLFppLEZKLHFzLHhzLGhILFMwLEQwLEJzLE9zLFVzLHJkXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxTUT0oKCk9PntjbGFzcyBje2Nv'@; put 'bnN0cnVjdG9yKGEpe3RoaXMuZXhwYW5kYWJsZVJvd3NDb3VudD1hLHRoaXMuZXhwYW5kYWJsZVJvd3NDb3VudCYmdGhpcy5leHBhbmRhYmxlUm93c0NvdW50LnJlZ2lzdGVyKCl9bmdPbkRlc3Ryb3koKXt0aGlzLmV4cGFuZGFibGVSb3dzQ291bnQmJnRoaXMuZXhwYW5kYWJsZVJvd3NDb3Vu'@; put 'dC51bnJlZ2lzdGVyKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KGo4LDgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xySWZFeHBhbmRlZCIsIiJdXX0pLGN9KSgpLFBFPSgoKT0+e2NsYXNzIGN7Y29uc3Ry'@; put 'dWN0b3IoYSxkLGgsZil7dGhpcy5zZWxlY3Rpb249YSx0aGlzLmRldGFpbFNlcnZpY2U9ZCx0aGlzLmNvbHVtbnNTZXJ2aWNlPWgsdGhpcy5jb21tb25TdHJpbmdzPWYsdGhpcy5TRUxFQ1RJT05fVFlQRT1hYX1nZXQgaGFzSGlkZWFibGVDb2x1bW5zKCl7cmV0dXJuIHRoaXMuY29sdW1uc1Nl'@; put 'cnZpY2UuaGFzSGlkZWFibGVDb2x1bW5zfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChZOCksdHQoaDIpLHR0KEhmKSx0dChFcykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctZm9vdGVyIl1dLGNvbnRlbnRR'@; put 'dWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJklvKGgsZkgsNSksMiZhKXtsZXQgZjthaShmPWxpKCkpJiYoZC50b2dnbGU9Zi5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImRhdGFncmlkLWZvb3RlciIsITApfSxuZ0NvbnRlbnRT'@; put 'ZWxlY3RvcnM6aF9lLGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCJdLFsxLCJkYXRhZ3JpZC1mb290ZXItc2VsZWN0Il0sWyJjbHJDaGVja2JveCIsIiIsInR5cGUiLCJjaGVja2JveCIsImNoZWNrZWQiLCJjaGVja2VkIiwi'@; put 'ZGlzYWJsZWQiLCIiXSxbMSwiY2xyLXNyLW9ubHkiXSxbMSwiZGF0YWdyaWQtZm9vdGVyLWRlc2NyaXB0aW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoZF9lKSxKZSgwLGxfZSw4LDIsIm5nLWNvbnRhaW5lciIsMCksSmUoMSx1X2UsNSwxLCJuZy1jb250YWluZXIiLDAp'@; put 'LGtyKDIpKSwyJmEmJihSZSgibmdJZiIsZC5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PWQuU0VMRUNUSU9OX1RZUEUuTXVsdGkmJmQuc2VsZWN0aW9uLmN1cnJlbnQubGVuZ3RoPjApLENlKDEpLFJlKCJuZ0lmIiwhZC5kZXRhaWxTZXJ2aWNlLmlzT3BlbikpfSxkZXBlbmRlbmNpZXM6W1Qw'@; put 'LGZILFppLEQwLFVzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTtjb25zdCBwSD1uZXcgU2koIkNPTFVNTl9TVEFURSIpLHZ3ZT17cHJvdmlkZTpwSCx1c2VGYWN0b3J5OmZ1bmN0aW9uIG13ZSgpe3JldHVybiBuZXcgVGUoe2NoYW5nZXM6W119KX19O2xldCBnSD0oKCk9PntjbGFzcyBje2Nv'@; put 'bnN0cnVjdG9yKGEpe3RoaXMucGFnZT1hLHRoaXMucGFnZVNpemVPcHRpb25zSWQ9SWMoKX1uZ09uSW5pdCgpeyghdGhpcy5wYWdlU2l6ZU9wdGlvbnN8fDA9PT10aGlzLnBhZ2VTaXplT3B0aW9ucy5sZW5ndGgpJiYodGhpcy5wYWdlU2l6ZU9wdGlvbnM9W3RoaXMucGFnZS5zaXplXSl9fXJl'@; put 'dHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEVwKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1wYWdlLXNpemUiXV0saW5wdXRzOntwYWdlU2l6ZU9wdGlvbnM6WyJjbHJQYWdlU2l6ZU9wdGlvbnMiLCJwYWdlU2l6'@; put 'ZU9wdGlvbnMiXSxwYWdlU2l6ZU9wdGlvbnNJZDpbImNsclBhZ2VTaXplT3B0aW9uc0lkIiwicGFnZVNpemVPcHRpb25zSWQiXX0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjQsdmFyczo1LGNvbnN0czpbWzEsImNsci1zZWxlY3Qtd3JhcHBlciJdLFszLCJpZCIsIm5nTW9kZWwiLCJu'@; put 'Z01vZGVsQ2hhbmdlIl0sWzMsIm5nVmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJuZ1ZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSxtZSgxLCJkaXYiLDApKDIsInNlbGVjdCIsMSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3Jl'@; put 'dHVybiBkLnBhZ2Uuc2l6ZT1mfSksSmUoMyxmX2UsMiwyLCJvcHRpb24iLDIpLHllKCkoKSksMiZhJiYoQ2UoMiksZHIoImNsci1wYWdlLXNpemUtc2VsZWN0IiwhMCksUmUoImlkIixkLnBhZ2VTaXplT3B0aW9uc0lkKSgibmdNb2RlbCIsZC5wYWdlLnNpemUpLENlKDEpLFJlKCJuZ0Zvck9m'@; put 'IixkLnBhZ2VTaXplT3B0aW9ucykpfSxkZXBlbmRlbmNpZXM6W00wLEJzLE9zLHhzLGwxLGMxXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxGRT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLnBhZ2U9YSx0aGlzLmNvbW1vblN0cmluZ3M9ZCx0aGlzLmRldGFpbFNlcnZp'@; put 'Y2U9aCx0aGlzLmN1cnJlbnRDaGFuZ2VkPW5ldyBFcighMSksdGhpcy5wYWdlLmFjdGl2YXRlZD0hMH1nZXQgcGFnZVNpemUoKXtyZXR1cm4gdGhpcy5wYWdlLnNpemV9c2V0IHBhZ2VTaXplKGEpeyJudW1iZXIiPT10eXBlb2YgYSYmKHRoaXMucGFnZS5zaXplPWEpfWdldCB0b3RhbEl0ZW1z'@; put 'KCl7cmV0dXJuIHRoaXMucGFnZS50b3RhbEl0ZW1zfXNldCB0b3RhbEl0ZW1zKGEpeyJudW1iZXIiPT10eXBlb2YgYSYmKHRoaXMucGFnZS50b3RhbEl0ZW1zPWEpfWdldCBsYXN0UGFnZSgpe3JldHVybiB0aGlzLnBhZ2UubGFzdH1zZXQgbGFzdFBhZ2UoYSl7Im51bWJlciI9PXR5cGVvZiBh'@; put 'JiYodGhpcy5wYWdlLmxhc3Q9YSl9Z2V0IGN1cnJlbnRQYWdlKCl7cmV0dXJuIHRoaXMucGFnZS5jdXJyZW50fXNldCBjdXJyZW50UGFnZShhKXsibnVtYmVyIj09dHlwZW9mIGEmJih0aGlzLnBhZ2UuY3VycmVudD1hKX1nZXQgZmlyc3RJdGVtKCl7cmV0dXJuIHRoaXMucGFnZS5maXJzdEl0'@; put 'ZW19Z2V0IGxhc3RJdGVtKCl7cmV0dXJuIHRoaXMucGFnZS5sYXN0SXRlbX1nZXQgbWlkZGxlUGFnZXMoKXtjb25zdCBhPVtdO3JldHVybiB0aGlzLnBhZ2UuY3VycmVudD4xJiZhLnB1c2godGhpcy5wYWdlLmN1cnJlbnQtMSksYS5wdXNoKHRoaXMucGFnZS5jdXJyZW50KSx0aGlzLnBhZ2Uu'@; put 'Y3VycmVudDx0aGlzLnBhZ2UubGFzdCYmYS5wdXNoKHRoaXMucGFnZS5jdXJyZW50KzEpLGF9bmdPbkluaXQoKXt0aGlzLnBhZ2Uuc2l6ZXx8KHRoaXMucGFnZS5zaXplPTEwKSx0aGlzLl9wYWdlU3Vic2NyaXB0aW9uPXRoaXMucGFnZS5jaGFuZ2Uuc3Vic2NyaWJlKGE9PnRoaXMuY3VycmVu'@; put 'dENoYW5nZWQuZW1pdChhKSl9bmdPbkRlc3Ryb3koKXt0aGlzLnBhZ2UucmVzZXRQYWdlU2l6ZSghMCksdGhpcy5fcGFnZVN1YnNjcmlwdGlvbiYmdGhpcy5fcGFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXByZXZpb3VzKCl7dGhpcy5wYWdlLnByZXZpb3VzKCl9bmV4dCgpe3RoaXMu'@; put 'cGFnZS5uZXh0KCl9dXBkYXRlQ3VycmVudFBhZ2UoYSl7Y29uc3QgZD1wYXJzZUludChhLnRhcmdldC52YWx1ZSwxMCk7aXNOYU4oZCl8fCh0aGlzLnBhZ2UuY3VycmVudD1kPDE/MTpkPnRoaXMucGFnZS5sYXN0P3RoaXMucGFnZS5sYXN0OmQpLHRoaXMuY3VycmVudFBhZ2VJbnB1dFJlZi5u'@; put 'YXRpdmVFbGVtZW50LnZhbHVlPXRoaXMucGFnZS5jdXJyZW50fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChFcCksdHQoRXMpLHR0KGgyKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1wYWdpbmF0aW9uIl1d'@; put 'LGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJklvKGgsZ0gsNSksMiZhKXtsZXQgZjthaShmPWxpKCkpJiYoZC5fcGFnZVNpemVDb21wb25lbnQ9Zi5maXJzdCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJlJvKHBfZSw1KSwyJmEpe2xldCBoO2FpKGg9'@; put 'bGkoKSkmJihkLmN1cnJlbnRQYWdlSW5wdXRSZWY9aC5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoInBhZ2luYXRpb24iLCEwKX0saW5wdXRzOntkaXNhYmxlQ3VycmVudFBhZ2VJbnB1dDpbImNsckRnUGFnZUlucHV0RGlzYWJsZWQiLCJk'@; put 'aXNhYmxlQ3VycmVudFBhZ2VJbnB1dCJdLHBhZ2VTaXplOlsiY2xyRGdQYWdlU2l6ZSIsInBhZ2VTaXplIl0sdG90YWxJdGVtczpbImNsckRnVG90YWxJdGVtcyIsInRvdGFsSXRlbXMiXSxsYXN0UGFnZTpbImNsckRnTGFzdFBhZ2UiLCJsYXN0UGFnZSJdLGN1cnJlbnRQYWdlOlsiY2xyRGdQ'@; put 'YWdlIiwiY3VycmVudFBhZ2UiXX0sb3V0cHV0czp7Y3VycmVudENoYW5nZWQ6ImNsckRnUGFnZUNoYW5nZSJ9LG5nQ29udGVudFNlbGVjdG9yczpDX2UsZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbNCwibmdJZiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLXNpemUiLDQsIm5nSWYiXSxbMSwicGFn'@; put 'aW5hdGlvbi1kZXNjcmlwdGlvbiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLWxpc3QiLDQsIm5nSWYiXSxbMSwicGFnaW5hdGlvbi1zaXplIl0sWzEsInBhZ2luYXRpb24tbGlzdCJdLFsidHlwZSIsImJ1dHRvbiIsMSwicGFnaW5hdGlvbi1maXJzdCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsx'@; put 'LCJjbHItc3Itb25seSJdLFsic2hhcGUiLCJzdGVwLWZvcndhcmQtMiIsImRpcmVjdGlvbiIsImRvd24iXSxbInR5cGUiLCJidXR0b24iLDEsInBhZ2luYXRpb24tcHJldmlvdXMiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0sWyJ0'@; put 'eXBlIiwidGV4dCIsImNsYXNzIiwicGFnaW5hdGlvbi1jdXJyZW50IGNsci1pbnB1dCIsMywic2l6ZSIsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImJsdXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsicmVhZE9ubHkiLCIiXSxbInR5cGUiLCJidXR0b24iLDEsInBhZ2luYXRpb24tbmV4dCIs'@; put 'MywiZGlzYWJsZWQiLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJwYWdpbmF0aW9uLWxhc3QiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwic3RlcC1mb3J3YXJkLTIiLCJkaXJlY3Rpb24iLCJ1cCJdLFsi'@; put 'dHlwZSIsInRleHQiLDEsInBhZ2luYXRpb24tY3VycmVudCIsImNsci1pbnB1dCIsMywic2l6ZSIsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImJsdXIiXSxbImN1cnJlbnRQYWdlSW5wdXQiLCIiXSxbMSwicGFnaW5hdGlvbi1kZXNjcmlwdGlvbi1jb21wYWN0Il1dLHRlbXBsYXRlOmZ1bmN0'@; put 'aW9uKGEsZCl7MSZhJiYoQWkod19lKSxKZSgwLGJfZSw1LDIsIm5nLWNvbnRhaW5lciIsMCksSmUoMSx5X2UsMTQsMTAsIm5nLWNvbnRhaW5lciIsMCkpLDImYSYmKFJlKCJuZ0lmIiwhZC5kZXRhaWxTZXJ2aWNlLmlzT3BlbiksQ2UoMSksUmUoIm5nSWYiLGQuZGV0YWlsU2VydmljZS5pc09w'@; put 'ZW4pKX0sZGVwZW5kZW5jaWVzOltaaSxxc10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCk7Y29uc3QgRzg9ImRhdGFncmlkLWZpeGVkLXdpZHRoIixIRT0iZGF0YWdyaWQtaGlkZGVuLWNvbHVtbiI7bGV0IHJnPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuZWw9YSx0aGlz'@; put 'LnJlbmRlcmVyPWQsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGguZmlsdGVyUmVuZGVyU3RlcHMoZjIuQ0xFQVJfV0lEVEhTKS5zdWJzY3JpYmUoKCk9PnRoaXMuY2xlYXJXaWR0aCgpKSl9c2V0IGNvbHVtblN0YXRlKGEpe3RoaXMuc3RhdGVTdWJzY3Jp'@; put 'cHRpb24mJnRoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnJ1bkFsbENoYW5nZXM9dlEsdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbj1hLnN1YnNjcmliZShkPT50aGlzLnN0YXRlQ2hhbmdlcyhkKSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFj'@; put 'aChhPT5hLnVuc3Vic2NyaWJlKCkpLHRoaXMuc3RhdGVTdWJzY3JpcHRpb24mJnRoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1zdGF0ZUNoYW5nZXMoYSl7dGhpcy5ydW5BbGxDaGFuZ2VzJiYoYS5jaGFuZ2VzPXRoaXMucnVuQWxsQ2hhbmdlcyxkZWxldGUgdGhpcy5ydW5B'@; put 'bGxDaGFuZ2VzKSxhLmNoYW5nZXMmJmEuY2hhbmdlcy5sZW5ndGgmJmEuY2hhbmdlcy5mb3JFYWNoKGQ9Pntzd2l0Y2goZCl7Y2FzZSBMMC5XSURUSDp0aGlzLnNldFdpZHRoKGEpO2JyZWFrO2Nhc2UgTDAuSElEREVOOnRoaXMuc2V0SGlkZGVuKGEpfX0pfWNsZWFyV2lkdGgoKXt0aGlzLnJl'@; put 'bmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxHOCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixudWxsKX1zZXRXaWR0aChhKXthLnN0cmljdFdpZHRoP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRp'@; put 'dmVFbGVtZW50LEc4KTp0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxHOCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixhLndpZHRoKyJweCIpfXNldEhpZGRlbihhKXthLmhpZGRlbj90aGlzLnJlbmRl'@; put 'cmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxIRSk6dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsSEUpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChOaSksdHQoRm8pLHR0KGVnKSl9LGMu'@; put 'XHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1jZWxsIl1dfSksY30pKCksaWc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXKXt0aGlzLmVsPWEsdGhpcy5yZW5kZXJlcj1kLHRoaXMub3JnYW5pemVyPWgsdGhpcy5kb21BZGFwdGVyPWYsdGhp'@; put 'cy5jb2x1bW5SZXNpemVyU2VydmljZT1fLHRoaXMuY29sdW1uc1NlcnZpY2U9VCx0aGlzLmNvbHVtblN0YXRlPVcsdGhpcy5yZXNpemVFbWl0dGVyPW5ldyBFcix0aGlzLndpZHRoU2V0PSExLHRoaXMuYXV0b1NldD0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5zdWJzY3JpcHRpb25z'@; put 'LnB1c2godGhpcy5vcmdhbml6ZXIuZmlsdGVyUmVuZGVyU3RlcHMoZjIuQ0xFQVJfV0lEVEhTKS5zdWJzY3JpYmUoKCk9PnRoaXMuY2xlYXJXaWR0aCgpKSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goVy5zdWJzY3JpYmUoaWU9PnRoaXMuc3RhdGVDaGFuZ2VzKGllKSkpfW5nT25EZXN0cm95'@; put 'KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1nZXRDb2x1bW5XaWR0aFN0YXRlKCl7Y29uc3QgYT10aGlzLmRldGVjdFN0cmljdFdpZHRoKCk7cmV0dXJue3dpZHRoOnRoaXMuY29tcHV0ZVdpZHRoKGEpLHN0cmljdFdpZHRoOmF9fXNldENvbHVtblN0'@; put 'YXRlKGEpe3RoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1uc1thXT10aGlzLmNvbHVtblN0YXRlfXN0YXRlQ2hhbmdlcyhhKXthLmNoYW5nZXMmJmEuY2hhbmdlcy5sZW5ndGgmJmEuY2hhbmdlcy5mb3JFYWNoKGQ9Pntzd2l0Y2goZCl7Y2FzZSBMMC5XSURUSDp0aGlzLnNldFdpZHRoKGEpO2Jy'@; put 'ZWFrO2Nhc2UgTDAuSElEREVOOnRoaXMuc2V0SGlkZGVuKGEpfX0pfWNsZWFyV2lkdGgoKXt0aGlzLndpZHRoU2V0JiYhdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnkmJnRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ3aWR0aCIsbnVsbCks'@; put 'dGhpcy5hdXRvU2V0JiZ0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxHOCl9ZGV0ZWN0U3RyaWN0V2lkdGgoKXtyZXR1cm4gdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnk/dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS53aWR0aEFmdGVy'@; put 'UmVzaXplOnRoaXMuYXV0b1NldD8wOnRoaXMuZG9tQWRhcHRlci51c2VyRGVmaW5lZFdpZHRoKHRoaXMuZWwubmF0aXZlRWxlbWVudCl9Y29tcHV0ZVdpZHRoKGEpe2xldCBkPWE7cmV0dXJuIGR8fChkPXRoaXMuZG9tQWRhcHRlci5zY3JvbGxXaWR0aCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQp'@; put 'KSxkfXNldFdpZHRoKGEpe2Euc3RyaWN0V2lkdGg/KHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5JiYodGhpcy5yZXNpemVFbWl0dGVyLmVtaXQoYS53aWR0aCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixhLndpZHRoKyJw'@; put 'eCIpLHRoaXMud2lkdGhTZXQ9ITEpLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LEc4KSx0aGlzLmF1dG9TZXQ9ITEpOih0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxHOCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0'@; put 'aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixhLndpZHRoKyJweCIpLHRoaXMud2lkdGhTZXQ9ITAsdGhpcy5hdXRvU2V0PSEwKX1zZXRIaWRkZW4oYSl7YS5oaWRkZW4/dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsSEUpOnRoaXMucmVuZGVyZXIucmVt'@; put 'b3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LEhFKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpLHR0KEZvKSx0dChlZyksdHQoaDEpLHR0KHRIKSx0dChIZiksdHQocEgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3Rv'@; put 'cnM6W1siY2xyLWRnLWNvbHVtbiJdXSxvdXRwdXRzOntyZXNpemVFbWl0dGVyOiJjbHJEZ0NvbHVtblJlc2l6ZSJ9LGZlYXR1cmVzOlt0aShbdEgsdndlXSldfSksY30pKCksd3dlPSgoKT0+e2NsYXNzIGN7dXNlckRlZmluZWRXaWR0aChhKXtyZXR1cm4gMH1zY3JvbGxCYXJXaWR0aChhKXty'@; put 'ZXR1cm4gMH1zY3JvbGxXaWR0aChhKXtyZXR1cm4gMH1jb21wdXRlZEhlaWdodChhKXtyZXR1cm4gMH1jbGllbnRSZWN0KGEpe3JldHVybnt0b3A6MCxib3R0b206MCxsZWZ0OjAscmlnaHQ6MCx3aWR0aDowLGhlaWdodDowfX1taW5XaWR0aChhKXtyZXR1cm4gMH1mb2N1cyhhKXt9fXJldHVy'@; put 'biBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLG9nPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5jb2x1bW5zU2VydmljZT1hLHRoaXMuc3Vic2NyaXB0'@; put 'aW9ucz1bXX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldENvbHVtblN0YXRlKCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5jZWxscy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuc2V0Q29sdW1uU3RhdGUoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9u'@; put 'cy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9c2V0Q29sdW1uU3RhdGUoKXt0aGlzLmNlbGxzLmxlbmd0aD09PXRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5sZW5ndGgmJnRoaXMuY2VsbHMuZm9yRWFjaCgoYSxkKT0+e3RoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1uc1tkXSYmKGEu'@; put 'Y29sdW1uU3RhdGU9dGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zW2RdKX0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChIZikpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctcm93Il0sWyJjbHItZGctcm93'@; put 'LWRldGFpbCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLHJnLDQpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQuY2VsbHM9Zil9fX0pLGN9KSgpO2NvbnN0IEN3ZT1jPT5ScyhjKT9uZXcgaDE6bmV3IHd3ZTtsZXQgJDg9KCgpPT57Y2xhc3MgY3tjb25z'@; put 'dHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGllLHBlLHdlKXt0aGlzLm9yZ2FuaXplcj1hLHRoaXMuaXRlbXM9ZCx0aGlzLnBhZ2U9aCx0aGlzLmRvbUFkYXB0ZXI9Zix0aGlzLmVsPV8sdGhpcy5yZW5kZXJlcj1ULHRoaXMuZGV0YWlsU2VydmljZT1XLHRoaXMudGFibGVTaXplU2VydmljZT1pZSx0'@; put 'aGlzLmNvbHVtbnNTZXJ2aWNlPXBlLHRoaXMubmdab25lPXdlLHRoaXMuX2hlaWdodFNldD0hMSx0aGlzLnNob3VsZFN0YWJpbGl6ZUNvbHVtbnM9ITAsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuY29sdW1uc1NpemVzU3RhYmxlPSExLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMu'@; put 'b3JnYW5pemVyLmZpbHRlclJlbmRlclN0ZXBzKGYyLkNPTVBVVEVfQ09MVU1OX1dJRFRIUykuc3Vic2NyaWJlKCgpPT50aGlzLmNvbXB1dGVIZWFkZXJzV2lkdGgoKSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucGFnZS5zaXplQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuX2hl'@; put 'aWdodFNldCYmdGhpcy5yZXNldERhdGFncmlkSGVpZ2h0KCl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kZXRhaWxTZXJ2aWNlLnN0YXRlQ2hhbmdlLnN1YnNjcmliZShFZT0+dGhpcy50b2dnbGVEZXRhaWxQYW5lKEVlKSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMu'@; put 'aXRlbXMuY2hhbmdlLnN1YnNjcmliZSgoKT0+dGhpcy5zaG91bGRTdGFiaWxpemVDb2x1bW5zPSEwKSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zZXR1cENvbHVtbnMoKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmhlYWRlcnMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlz'@; put 'LnNldHVwQ29sdW1ucygpLHRoaXMuY29sdW1uc1NpemVzU3RhYmxlPSExLHRoaXMuc3RhYmlsaXplQ29sdW1ucygpfSkpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMudGFibGVTaXplU2VydmljZS50YWJsZT10aGlzLmVsfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe3RoaXMuc2hvdWxkU3RhYmlsaXpl'@; put 'Q29sdW1ucyYmdGhpcy5zdGFiaWxpemVDb2x1bW5zKCksdGhpcy5zaG91bGRDb21wdXRlSGVpZ2h0KCkmJnRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57c2V0VGltZW91dCgoKT0+e3RoaXMuY29tcHV0ZURhdGFncmlkSGVpZ2h0KCl9KX0pfW5nT25EZXN0cm95KCl7dGhpcy5z'@; put 'dWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX10b2dnbGVEZXRhaWxQYW5lKGEpe3RoaXMuaGVhZGVycyYmKGEmJiF0aGlzLmNvbHVtbnNTZXJ2aWNlLmhhc0NhY2hlKCk/KHRoaXMuY29sdW1uc1NlcnZpY2UuY2FjaGUoKSx0aGlzLmhlYWRlcnMuZm9yRWFjaCgoZCxo'@; put 'KT0+e2g+MCYmdGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2VBdChoLHtjaGFuZ2VzOltMMC5ISURERU5dLGhpZGRlbjphfSl9KSk6YXx8dGhpcy5jb2x1bW5zU2VydmljZS5yZXNldFRvTGFzdENhY2hlKCkpfXNldHVwQ29sdW1ucygpe3RoaXMuaGVhZGVycy5mb3JFYWNoKChh'@; put 'LGQpPT5hLnNldENvbHVtblN0YXRlKGQpKSx0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMuc3BsaWNlKHRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMucm93cy5mb3JFYWNoKGE9PmEuc2V0Q29sdW1uU3RhdGUoKSl9c2hvdWxkQ29tcHV0ZUhlaWdodCgpe3JldHVybiF0aGlzLl9oZWlnaHRT'@; put 'ZXQmJnRoaXMucGFnZS5zaXplPjAmJnRoaXMuaXRlbXMuZGlzcGxheWVkLmxlbmd0aD09PXRoaXMucGFnZS5zaXplfWNvbXB1dGVEYXRhZ3JpZEhlaWdodCgpe2NvbnN0IGE9dGhpcy5kb21BZGFwdGVyLmNsaWVudFJlY3QodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5oZWlnaHQ7dGhpcy5yZW5k'@; put 'ZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImhlaWdodCIsYSsicHgiKSx0aGlzLl9oZWlnaHRTZXQ9ITB9cmVzZXREYXRhZ3JpZEhlaWdodCgpe3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJoZWlnaHQiLCIiKSx0aGlzLl9oZWlnaHRT'@; put 'ZXQ9ITF9Y29tcHV0ZUhlYWRlcnNXaWR0aCgpe2NvbnN0IGE9dGhpcy5oZWFkZXJzLmxlbmd0aDtsZXQgZD0hMDt0aGlzLmhlYWRlcnMuZm9yRWFjaCgoaCxmKT0+e2NvbnN0IF89e2NoYW5nZXM6W0wwLldJRFRIXSwuLi5oLmdldENvbHVtbldpZHRoU3RhdGUoKX07Xy5zdHJpY3RXaWR0aHx8'@; put 'KGQ9ITEpLGE9PT1mKzEmJmQmJihfLnN0cmljdFdpZHRoPTApLHRoaXMuY29sdW1uc1NlcnZpY2UuZW1pdFN0YXRlQ2hhbmdlQXQoZixfKX0pfXN0YWJpbGl6ZUNvbHVtbnMoKXt0aGlzLnNob3VsZFN0YWJpbGl6ZUNvbHVtbnM9ITEsIXRoaXMuY29sdW1uc1NpemVzU3RhYmxlJiZ0aGlzLml0'@; put 'ZW1zLmRpc3BsYXllZC5sZW5ndGg+MCYmKHRoaXMub3JnYW5pemVyLnJlc2l6ZSgpLHRoaXMuY29sdW1uc1NpemVzU3RhYmxlPSEwKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoZWcpLHR0KEFwKSx0dChFcCksdHQoaDEpLHR0KE5pKSx0dChG'@; put 'byksdHQoaDIpLHR0KG5IKSx0dChIZiksdHQoTm8pKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRhdGFncmlkIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJihJbyhoLGlnLDQpLElvKGgsb2csNSkpLDImYSl7bGV0IGY7YWkoZj1s'@; put 'aSgpKSYmKGQuaGVhZGVycz1mKSxhaShmPWxpKCkpJiYoZC5yb3dzPWYpfX0sZmVhdHVyZXM6W3RpKFt7cHJvdmlkZTpoMSx1c2VGYWN0b3J5OkN3ZSxkZXBzOltHc119XSldfSksY30pKCksU3dlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtWcy5hZGRJY29ucyhmbWUscG1lLG5iLGdt'@; put 'ZSxJSyxtbWUsTEssdm1lLF9tZSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyxzYSxkUSxxbCxMRixzZCxhd2UsaFEsJEosQWIseGIsQkYseUUscTVd'@; put 'XX0pLGN9KSgpLE1RPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItc3RhY2stY29udGVudCJdXX0pLGN9KSgpLG1IPSgoKT0+e2NsYXNzIGN7Y29uc3Ry'@; put 'dWN0b3IoKXt0aGlzLl9nZW5lcmF0ZWRJZD1udWxsLHRoaXMuX2lkPW51bGx9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChhKXt0aGlzLl9pZD0ic3RyaW5nIj09dHlwZW9mIGEmJiIiIT09YT9hOnRoaXMuX2dlbmVyYXRlZElkKyIifW5nT25Jbml0KCl7dGhpcy5fZ2VuZXJhdGVk'@; put 'SWQ9ImNsci1zdGFjay1sYWJlbC0iK0ljKCksdGhpcy5pZHx8KHRoaXMuX2lkPXRoaXMuX2dlbmVyYXRlZElkKyIiKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1zdGFjay1s'@; put 'YWJlbCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImlkIixkLmlkKX0saW5wdXRzOntpZDoiaWQifSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSgpLGtyKDApKX0sZW5j'@; put 'YXBzdWxhdGlvbjoyfSksY30pKCkseFE9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMucGFyZW50PWEsdGhpcy5jb21tb25TdHJpbmdzPWQsdGhpcy5leHBhbmRlZD0hMSx0aGlzLmV4cGFuZGFibGU9ITEsdGhpcy5leHBhbmRlZENoYW5nZT1uZXcgRXIoITEpLHRoaXMuZm9j'@; put 'dXNlZD0hMSx0aGlzLnVuaXF1ZUlkPUljKCksdGhpcy5fY2hhbmdlZENoaWxkcmVuPTAsdGhpcy5fZnVsbHlJbml0aWFsaXplZD0hMSx0aGlzLl9jaGFuZ2VkPSExLGEmJmEuYWRkQ2hpbGQoKX1zZXQgc2V0Q2hhbmdlZFZhbHVlKGEpe3RoaXMuX2NoYW5nZWQ9YSx0aGlzLnBhcmVudCYmdGhp'@; put 'cy5fZnVsbHlJbml0aWFsaXplZCYmKGE/dGhpcy5wYXJlbnQuX2NoYW5nZWRDaGlsZHJlbisrOnRoaXMucGFyZW50Ll9jaGFuZ2VkQ2hpbGRyZW4tLSl9Z2V0IGdldENoYW5nZWRWYWx1ZSgpe3JldHVybiB0aGlzLl9jaGFuZ2VkfHx0aGlzLl9jaGFuZ2VkQ2hpbGRyZW4+MCYmIXRoaXMuZXhw'@; put 'YW5kZWR9Z2V0IG9uU3RhY2tMYWJlbEZvY3VzKCl7cmV0dXJuIHRoaXMuZXhwYW5kYWJsZSYmIXRoaXMuZXhwYW5kZWQmJnRoaXMuZm9jdXNlZH1nZXQgbGFiZWxsZWRCeUlkKCl7cmV0dXJuIHRoaXMuc3RhY2tCbG9ja1RpdGxlLmlkfWdldCBoZWFkaW5nTGV2ZWwoKXtyZXR1cm4gdGhpcy5h'@; put 'cmlhTGV2ZWw/dGhpcy5hcmlhTGV2ZWwrIiI6dGhpcy5wYXJlbnQ/IjQiOiIzIn1nZXQgY2FyZXREaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy5leHBhbmRlZD8iZG93biI6InJpZ2h0In1nZXQgcm9sZSgpe3JldHVybiB0aGlzLmV4cGFuZGFibGU/ImJ1dHRvbiI6bnVsbH1nZXQgdGFiSW5kZXgo'@; put 'KXtyZXR1cm4gdGhpcy5leHBhbmRhYmxlPyIwIjpudWxsfWdldCBhcmlhRXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmRhYmxlP3RoaXMuZXhwYW5kZWQ/InRydWUiOiJmYWxzZSI6bnVsbH1uZ09uSW5pdCgpe3RoaXMuX2Z1bGx5SW5pdGlhbGl6ZWQ9ITB9YWRkQ2hpbGQoKXt0aGlzLmV4'@; put 'cGFuZGFibGU9ITB9dG9nZ2xlRXhwYW5kKCl7dGhpcy5leHBhbmRhYmxlJiYodGhpcy5leHBhbmRlZD0hdGhpcy5leHBhbmRlZCx0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCkpfWdldFN0YWNrQ2hpbGRyZW5JZCgpe3JldHVybiB0aGlzLmV4cGFuZGVkP2BjbHItc3Rh'@; put 'Y2stY2hpbGRyZW4tJHt0aGlzLnVuaXF1ZUlkfWA6bnVsbH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYywxMiksdHQoRXMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXN0YWNrLWJsb2NrIl1dLGNvbnRlbnRR'@; put 'dWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJklvKGgsbUgsNSksMiZhKXtsZXQgZjthaShmPWxpKCkpJiYoZC5zdGFja0Jsb2NrVGl0bGU9Zi5maXJzdCl9fSxob3N0VmFyczoxMixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJihUcigicm9sZSIsImhlYWRpbmciKSgiYXJp'@; put 'YS1sZXZlbCIsZC5oZWFkaW5nTGV2ZWwpLGRyKCJzdGFjay1ibG9jayIsITApKCJzdGFjay1ibG9jay1leHBhbmRlZCIsZC5leHBhbmRlZCkoInN0YWNrLWJsb2NrLWV4cGFuZGFibGUiLGQuZXhwYW5kYWJsZSkoInN0YWNrLWJsb2NrLWNoYW5nZWQiLGQuZ2V0Q2hhbmdlZFZhbHVlKSgib24t'@; put 'Zm9jdXMiLGQub25TdGFja0xhYmVsRm9jdXMpKX0saW5wdXRzOntleHBhbmRlZDpbImNsclNiRXhwYW5kZWQiLCJleHBhbmRlZCJdLGV4cGFuZGFibGU6WyJjbHJTYkV4cGFuZGFibGUiLCJleHBhbmRhYmxlIl0sYXJpYUxldmVsOlsiY2xyU3RhY2tWaWV3TGV2ZWwiLCJhcmlhTGV2ZWwiXSxh'@; put 'cmlhU2V0c2l6ZTpbImNsclN0YWNrVmlld1NldHNpemUiLCJhcmlhU2V0c2l6ZSJdLGFyaWFQb3NpbnNldDpbImNsclN0YWNrVmlld1Bvc2luc2V0IiwiYXJpYVBvc2luc2V0Il0sc2V0Q2hhbmdlZFZhbHVlOlsiY2xyU2JOb3RpZnlDaGFuZ2UiLCJzZXRDaGFuZ2VkVmFsdWUiXX0sb3V0cHV0'@; put 'czp7ZXhwYW5kZWRDaGFuZ2U6ImNsclNiRXhwYW5kZWRDaGFuZ2UifSxuZ0NvbnRlbnRTZWxlY3RvcnM6a19lLGRlY2xzOjksdmFyczo5LGNvbnN0czpbWzEsInN0YWNrLWJsb2NrLWxhYmVsIiwzLCJpZCIsImNsaWNrIiwia2V5dXAuZW50ZXIiLCJrZXl1cC5zcGFjZSIsImtleWRvd24uc3Bh'@; put 'Y2UiLCJmb2N1cyIsImJsdXIiXSxbInNoYXBlIiwiYW5nbGUiLCJjbGFzcyIsInN0YWNrLWJsb2NrLWNhcmV0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1zci1vbmx5Iiw0LCJuZ0lmIl0sWzEsInN0YWNrLXZpZXcta2V5Il0sWzEsInN0YWNrLWJsb2NrLWNvbnRlbnQiXSxbMSwic3RhY2st'@; put 'Y2hpbGRyZW4iLDMsImNsckV4cGFuZFRyaWdnZXIiXSxbInJvbGUiLCJyZWdpb24iLDMsImhlaWdodCIsNCwibmdJZiJdLFsic2hhcGUiLCJhbmdsZSIsMSwic3RhY2stYmxvY2stY2FyZXQiXSxbMSwiY2xyLXNyLW9ubHkiXSxbInJvbGUiLCJyZWdpb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24o'@; put 'YSxkKXsxJmEmJihBaShFX2UpLG1lKDAsImRpdiIsMCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLnRvZ2dsZUV4cGFuZCgpfSkoImtleXVwLmVudGVyIixmdW5jdGlvbigpe3JldHVybiBkLnRvZ2dsZUV4cGFuZCgpfSkoImtleXVwLnNwYWNlIixmdW5jdGlvbigpe3JldHVybiBk'@; put 'LnRvZ2dsZUV4cGFuZCgpfSkoImtleWRvd24uc3BhY2UiLGZ1bmN0aW9uKGYpe3JldHVybiBmLnByZXZlbnREZWZhdWx0KCl9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGQuZm9jdXNlZD0hMH0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBkLmZvY3VzZWQ9ITF9KSxKZSgxLFNfZSwx'@; put 'LDEsImNkcy1pY29uIiwxKSxKZSgyLE1fZSwyLDEsInNwYW4iLDIpLG1lKDMsImRpdiIsMyksa3IoNCkseWUoKSxtZSg1LCJkaXYiLDQpLGtyKDYsMSkseWUoKSgpLG1lKDcsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsNSksSmUoOCx4X2UsMiw0LCJkaXYiLDYpLHllKCkpLDImYSYmKFJl'@; put 'KCJpZCIsZC51bmlxdWVJZCksVHIoInJvbGUiLGQucm9sZSkoInRhYmluZGV4IixkLnRhYkluZGV4KSgiYXJpYS1leHBhbmRlZCIsZC5hcmlhRXhwYW5kZWQpKCJhcmlhLWNvbnRyb2xzIixkLmdldFN0YWNrQ2hpbGRyZW5JZCgpKSxDZSgxKSxSZSgibmdJZiIsZC5leHBhbmRhYmxlKSxDZSgx'@; put 'KSxSZSgibmdJZiIsZC5nZXRDaGFuZ2VkVmFsdWUpLENlKDUpLFJlKCJjbHJFeHBhbmRUcmlnZ2VyIixkLmV4cGFuZGVkKSxDZSgxKSxSZSgibmdJZiIsZC5leHBhbmRlZCkpfSxkZXBlbmRlbmNpZXM6W2JFLFppLHFzXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9'@; put 'Il19KSxjfSkoKSxxOD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5zYXZlPW5ldyBFcighMSksdGhpcy5lZGl0YWJsZT0hMSx0aGlzLmVkaXRpbmdDaGFuZ2U9bmV3IEVyKCExKSx0aGlzLl9lZGl0TW9kZT0hMX1nZXQgZWRpdGluZygpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0'@; put 'aGlzLl9lZGl0TW9kZX1zZXQgZWRpdGluZyhhKXt0aGlzLmVkaXRhYmxlJiYodGhpcy5fZWRpdE1vZGU9YSx0aGlzLmVkaXRpbmdDaGFuZ2UuZW1pdChhKSxhfHx0aGlzLnNhdmUuZW1pdChudWxsKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxj'@; put 'Llx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItc3RhY2stdmlldyJdXSxvdXRwdXRzOntzYXZlOiJjbHJTdGFja1NhdmUifSxuZ0NvbnRlbnRTZWxlY3RvcnM6VF9lLGRlY2xzOjMsdmFyczowLGNvbnN0czpbWzEsInN0YWNrLXZpZXciXV0sdGVtcGxhdGU6ZnVuY3Rpb24o'@; put 'YSxkKXsxJmEmJihBaShBX2UpLGtyKDApLG1lKDEsImRpdiIsMCksa3IoMiwxKSx5ZSgpKX0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfSJdfSksY30pKCksRXdlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtWcy5hZGRJY29ucyhoOCl9fXJldHVybiBjLlx1'@; put 'MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyxxbCxzYSxoUV1dfSksY30pKCksc2c9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2VsZWN0YWJsZT0hMSx0aGlz'@; put 'LmVhZ2VyPSEwLHRoaXMuY2hpbGRyZW5GZXRjaGVkPW5ldyBiZX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y29uc3Qga1E9e3Byb3ZpZGU6c2csdXNl'@; put 'RmFjdG9yeTpmdW5jdGlvbiBrd2UoYyl7cmV0dXJuIGN8fG5ldyBzZ30sZGVwczpbW25ldyB6MixuZXcgZzAsc2ddXX07bGV0IEFRPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLmZlYXR1cmVzU2VydmljZT1hLHRoaXMuZXhwYW5kU2VydmljZT1kLGQmJih0aGlzLnN1YnNj'@; put 'cmlwdGlvbj10aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kQ2hhbmdlLnN1YnNjcmliZShoPT57IWgmJnRoaXMucGFyZW50JiYhdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXImJnRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbiYmdGhpcy5wYXJlbnQuY2xlYXJDaGlsZHJlbigpfSkpfXNo'@; put 'b3VsZFJlbmRlcigpe3JldHVybiB0aGlzLmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24mJih0aGlzLmZlYXR1cmVzU2VydmljZS5lYWdlcnx8IXRoaXMuZXhwYW5kU2VydmljZXx8dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkKX1nZXRDb250ZXh0KGEpe3JldHVybnskaW1wbGljaXQ6YS5t'@; put 'b2RlbCxjbHJNb2RlbDphfX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChzZyksdHQoWXUsOCkpfSxjLlx1MDI3NWNtcD13cih7'@; put 'dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigicm9sZSIsImdyb3VwIil9LGlucHV0czp7cGFyZW50OiJwYXJlbnQiLGNoaWxkcmVuOiJjaGlsZHJlbiJ9LGRlY2xzOjEsdmFy'@; put 'czoxLGNvbnN0czpbWzQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmSmUoMCxWX2UsMiwxLCJuZy1jb250YWluZXIiLDApLDImYSYmUmUoIm5n'@; put 'SWYiLGQuc2hvdWxkUmVuZGVyKCkpfSxkZXBlbmRlbmNpZXM6W1ppLHhzLHJkXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTt2YXIgcGM9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5VTlNFTEVDVEVEPTBdPSJVTlNFTEVDVEVEIixjW2MuU0VMRUNURUQ9MV09IlNFTEVDVEVEIixjW2MuSU5ERVRF'@; put 'Uk1JTkFURT0yXT0iSU5ERVRFUk1JTkFURSIsY30ocGN8fHt9KTtjbGFzcyBUUXtjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGluZyQ9bmV3IFRlKCExKSx0aGlzLnNlbGVjdGVkPW5ldyBUZShwYy5VTlNFTEVDVEVEKSx0aGlzLl9sb2FkaW5nPSExfWdldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMu'@; put 'X2xvYWRpbmd9c2V0IGxvYWRpbmcobCl7dGhpcy5fbG9hZGluZz1sLHRoaXMubG9hZGluZyQubmV4dChsKX1kZXN0cm95KCl7dGhpcy5zZWxlY3RlZC5jb21wbGV0ZSgpfXNldFNlbGVjdGVkKGwsYSxkKXtsIT09dGhpcy5zZWxlY3RlZC52YWx1ZSYmKHRoaXMuc2VsZWN0ZWQubmV4dChsKSxk'@; put 'JiZsIT09cGMuSU5ERVRFUk1JTkFURSYmdGhpcy5jaGlsZHJlbiYmdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGg9Pmguc2V0U2VsZWN0ZWQobCwhMSwhMCkpLGEmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5fdXBkYXRlU2VsZWN0aW9uRnJvbUNoaWxkcmVuKCkpfXRvZ2dsZVNlbGVjdGlvbihs'@; put 'KXt0aGlzLnNldFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQudmFsdWU9PT1wYy5TRUxFQ1RFRD9wYy5VTlNFTEVDVEVEOnBjLlNFTEVDVEVELCEwLGwpfV91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKXtjb25zdCBsPXRoaXMuY29tcHV0ZVNlbGVjdGlvblN0YXRlRnJvbUNoaWxkcmVuKCk7'@; put 'bCE9PXRoaXMuc2VsZWN0ZWQudmFsdWUmJih0aGlzLnNlbGVjdGVkLm5leHQobCksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50Ll91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKSl9Y29tcHV0ZVNlbGVjdGlvblN0YXRlRnJvbUNoaWxkcmVuKCl7bGV0IGw9ITEsYT0hMTtmb3IoY29uc3Qg'@; put 'ZCBvZiB0aGlzLmNoaWxkcmVuKXN3aXRjaChkLnNlbGVjdGVkLnZhbHVlKXtjYXNlIHBjLklOREVURVJNSU5BVEU6cmV0dXJuIHBjLklOREVURVJNSU5BVEU7Y2FzZSBwYy5TRUxFQ1RFRDppZihsPSEwLGEpcmV0dXJuIHBjLklOREVURVJNSU5BVEU7YnJlYWs7ZGVmYXVsdDppZihhPSEwLGwp'@; put 'cmV0dXJuIHBjLklOREVURVJNSU5BVEV9cmV0dXJuIGw/YT9wYy5VTlNFTEVDVEVEOnBjLlNFTEVDVEVEOnBjLlVOU0VMRUNURUR9fWNsYXNzIE5FIGV4dGVuZHMgVFF7Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIoKSx0aGlzLmdldENoaWxkcmVuPWQsdGhpcy5mZWF0dXJlc1NlcnZpY2U9'@; put 'aCx0aGlzLmNoaWxkcmVuRmV0Y2hlZD0hMSx0aGlzLl9jaGlsZHJlbj1bXSx0aGlzLm1vZGVsPWwsdGhpcy5wYXJlbnQ9YX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5mZXRjaENoaWxkcmVuKCksdGhpcy5fY2hpbGRyZW59c2V0IGNoaWxkcmVuKGwpe3RoaXMuX2NoaWxkcmVuPWx9ZGVz'@; put 'dHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHN1cGVyLmRlc3Ryb3koKX1jbGVhckNoaWxkcmVuKCl7dGhpcy5fY2hpbGRyZW4uZm9yRWFjaChsPT5sLmRlc3Ryb3koKSksZGVsZXRlIHRoaXMuX2NoaWxkcmVuLHRoaXMuY2hpbGRyZW5G'@; put 'ZXRjaGVkPSExfWZldGNoQ2hpbGRyZW4oKXtpZih0aGlzLmNoaWxkcmVuRmV0Y2hlZClyZXR1cm47Y29uc3QgbD10aGlzLmdldENoaWxkcmVuKHRoaXMubW9kZWwpOyFmdW5jdGlvbiBBd2UoYyl7cmV0dXJuIGMmJiJmdW5jdGlvbiI9PXR5cGVvZiBjLnRoZW59KGwpP0ZPKGwpPyh0aGlzLmxv'@; put 'YWRpbmc9ITAsdGhpcy5zdWJzY3JpcHRpb249bC5zdWJzY3JpYmUoYT0+e3RoaXMuX2NoaWxkcmVuPXRoaXMud3JhcENoaWxkcmVuKGEpLHRoaXMubG9hZGluZz0hMX0pKTp0aGlzLl9jaGlsZHJlbj1sP3RoaXMud3JhcENoaWxkcmVuKGwpOltdOih0aGlzLmxvYWRpbmc9ITAsbC50aGVuKGE9'@; put 'Pnt0aGlzLl9jaGlsZHJlbj10aGlzLndyYXBDaGlsZHJlbihhKSx0aGlzLmxvYWRpbmc9ITF9KSksdGhpcy5jaGlsZHJlbkZldGNoZWQ9ITAsdGhpcy5mZWF0dXJlc1NlcnZpY2UmJnRoaXMuZmVhdHVyZXNTZXJ2aWNlLmNoaWxkcmVuRmV0Y2hlZC5uZXh0KCl9d3JhcENoaWxkcmVuKGwpe3Jl'@; put 'dHVybiBsLm1hcChhPT5uZXcgTkUoYSx0aGlzLHRoaXMuZ2V0Q2hpbGRyZW4sdGhpcy5mZWF0dXJlc1NlcnZpY2UpKX19bGV0IERRPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMudGVtcGxhdGU9YSx0aGlzLmZlYXR1cmVzU2VydmljZT1kLHRoaXMuY2RyPWh9bmdPbkNo'@; put 'YW5nZXMoKXtsZXQgYTthPUFycmF5LmlzQXJyYXkodGhpcy5ub2Rlcyk/dGhpcy5ub2Rlcy5tYXAoZD0+bmV3IE5FKGQsbnVsbCx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVyZXNTZXJ2aWNlKSk6W25ldyBORSh0aGlzLm5vZGVzLG51bGwsdGhpcy5nZXRDaGlsZHJlbix0aGlzLmZlYXR1'@; put 'cmVzU2VydmljZSldLHRoaXMuY2hpbGRyZW5GZXRjaFN1YnNjcmlwdGlvbnx8KHRoaXMuY2hpbGRyZW5GZXRjaFN1YnNjcmlwdGlvbj10aGlzLmZlYXR1cmVzU2VydmljZS5jaGlsZHJlbkZldGNoZWQucGlwZShmOCgwKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygp'@; put 'fSkpLHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbj17dGVtcGxhdGU6dGhpcy50ZW1wbGF0ZSxyb290OmF9fW5nT25EZXN0cm95KCl7dGhpcy5jaGlsZHJlbkZldGNoU3Vic2NyaXB0aW9uJiZ0aGlzLmNoaWxkcmVuRmV0Y2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJu'@; put 'IGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoemEpLHR0KHNnKSx0dChVYSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJSZWN1cnNpdmVGb3IiLCIiLCJjbHJSZWN1cnNpdmVGb3JPZiIsIiJdXSxpbnB1dHM6e25vZGVzOlsi'@; put 'Y2xyUmVjdXJzaXZlRm9yT2YiLCJub2RlcyJdLGdldENoaWxkcmVuOlsiY2xyUmVjdXJzaXZlRm9yR2V0Q2hpbGRyZW4iLCJnZXRDaGlsZHJlbiJdfSxmZWF0dXJlczpbdmFdfSksY30pKCksdkg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZvY3VzUmVxdWVzdD1uZXcgYmUs'@; put 'dGhpcy5fZm9jdXNDaGFuZ2U9bmV3IGJlfWdldCBmb2N1c1JlcXVlc3QoKXtyZXR1cm4gdGhpcy5fZm9jdXNSZXF1ZXN0LmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c0NoYW5nZSgpe3JldHVybiB0aGlzLl9mb2N1c0NoYW5nZS5hc09ic2VydmFibGUoKX1mb2N1c05vZGUoYSl7YSYmdGhpcy5f'@; put 'Zm9jdXNSZXF1ZXN0Lm5leHQoYS5ub2RlSWQpfWJyb2FkY2FzdEZvY3VzZWROb2RlKGEpe3RoaXMuZm9jdXNlZE5vZGVJZCE9PWEmJih0aGlzLmZvY3VzZWROb2RlSWQ9YSx0aGlzLl9mb2N1c0NoYW5nZS5uZXh0KGEpKX1mb2N1c1BhcmVudChhKXthJiZ0aGlzLmZvY3VzTm9kZShhLnBhcmVu'@; put 'dCl9Zm9jdXNGaXJzdFZpc2libGVOb2RlKCl7dGhpcy5mb2N1c05vZGUodGhpcy5yb290Tm9kZU1vZGVscyYmdGhpcy5yb290Tm9kZU1vZGVsc1swXSl9Zm9jdXNMYXN0VmlzaWJsZU5vZGUoKXt0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmRMYXN0VmlzaWJsZUluVHJlZSgpKX1mb2N1c05vZGVB'@; put 'Ym92ZShhKXt0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmROb2RlQWJvdmUoYSkpfWZvY3VzTm9kZUJlbG93KGEpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZE5vZGVCZWxvdyhhKSl9Zm9jdXNOb2RlU3RhcnRzV2l0aChhLGQpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZENsb3Nlc3ROb2RlU3Rh'@; put 'cnRzV2l0aChhLGQpKX1maW5kU2libGluZ3MoYSl7cmV0dXJuIGEucGFyZW50P2EucGFyZW50LmNoaWxkcmVuOnRoaXMucm9vdE5vZGVNb2RlbHN9ZmluZExhc3RWaXNpYmxlSW5Ob2RlKGEpe2lmKCFhKXJldHVybiBudWxsO2lmKGEuZXhwYW5kZWQmJmEuY2hpbGRyZW4ubGVuZ3RoPjApe2Nv'@; put 'bnN0IGQ9YS5jaGlsZHJlbjtyZXR1cm4gdGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUoZFtkLmxlbmd0aC0xXSl9cmV0dXJuIGF9ZmluZE5leHRGb2N1c2FibGUoYSl7aWYoIWEpcmV0dXJuIG51bGw7Y29uc3QgZD10aGlzLmZpbmRTaWJsaW5ncyhhKSxoPWQuaW5kZXhPZihhKTtyZXR1cm4g'@; put 'aDxkLmxlbmd0aC0xP2RbaCsxXTpoPT09ZC5sZW5ndGgtMT90aGlzLmZpbmROZXh0Rm9jdXNhYmxlKGEucGFyZW50KTpudWxsfWZpbmRMYXN0VmlzaWJsZUluVHJlZSgpe3JldHVybiB0aGlzLmZpbmRMYXN0VmlzaWJsZUluTm9kZSh0aGlzLnJvb3ROb2RlTW9kZWxzJiZ0aGlzLnJvb3ROb2Rl'@; put 'TW9kZWxzLmxlbmd0aCYmdGhpcy5yb290Tm9kZU1vZGVsc1t0aGlzLnJvb3ROb2RlTW9kZWxzLmxlbmd0aC0xXSl9ZmluZE5vZGVBYm92ZShhKXtpZighYSlyZXR1cm4gbnVsbDtjb25zdCBkPXRoaXMuZmluZFNpYmxpbmdzKGEpLGg9ZC5pbmRleE9mKGEpO3JldHVybiAwPT09aD9hLnBhcmVu'@; put 'dDpoPjA/dGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUoZFtoLTFdKTpudWxsfWZpbmROb2RlQmVsb3coYSl7cmV0dXJuIGE/YS5leHBhbmRlZCYmYS5jaGlsZHJlbi5sZW5ndGg+MD9hLmNoaWxkcmVuWzBdOnRoaXMuZmluZE5leHRGb2N1c2FibGUoYSk6bnVsbH1maW5kRGVzY2VuZGVudE5v'@; put 'ZGVTdGFydHNXaXRoKGEsZCl7aWYoZC5leHBhbmRlZCYmZC5jaGlsZHJlbi5sZW5ndGg+MClmb3IoY29uc3QgaCBvZiBkLmNoaWxkcmVuKXtjb25zdCBmPXRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGEsaCk7aWYoZilyZXR1cm4gZn1yZXR1cm4gbnVsbH1maW5kU2libGluZ05vZGVTdGFydHNX'@; put 'aXRoKGEsZCl7Y29uc3QgaD10aGlzLmZpbmRTaWJsaW5ncyhkKTtmb3IobGV0IF89aC5pbmRleE9mKGQpKzE7XzxoLmxlbmd0aDtfKyspe2NvbnN0IFc9dGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoYSxoW19dKTtpZihXKXJldHVybiBXfXJldHVybiBudWxsfWZpbmRSb290Tm9kZVN0YXJ0c1dp'@; put 'dGgoYSxkKXtmb3IoY29uc3QgaCBvZiB0aGlzLnJvb3ROb2RlTW9kZWxzKXtpZihkLnBhcmVudCYmZC5wYXJlbnQ9PT1oKWNvbnRpbnVlO2NvbnN0IGY9dGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoYSxoKTtpZihmKXJldHVybiBmfXJldHVybiBudWxsfWZpbmROb2RlU3RhcnRzV2l0aChhLGQp'@; put 'e3JldHVybiBkP2QudGV4dENvbnRlbnQuc3RhcnRzV2l0aChhKT9kOnRoaXMuZmluZERlc2NlbmRlbnROb2RlU3RhcnRzV2l0aChhLGQpOm51bGx9ZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChhLGQpe2lmKCFkKXJldHVybiBudWxsO2NvbnN0IGg9dGhpcy5maW5kRGVzY2VuZGVudE5vZGVT'@; put 'dGFydHNXaXRoKGEsZCk7aWYoaClyZXR1cm4gaDtjb25zdCBmPXRoaXMuZmluZFNpYmxpbmdOb2RlU3RhcnRzV2l0aChhLGQpO3JldHVybiBmfHwodGhpcy5maW5kUm9vdE5vZGVTdGFydHNXaXRoKGEsZCl8fHRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGEsZC5wYXJlbnQpKX19cmV0dXJuIGMu'@; put 'XHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3MgVHdlIGV4dGVuZHMgVFF7Y29uc3RydWN0b3IobCl7c3VwZXIoKSx0aGlzLnBhcmVudD1sLGwmJmwuX2FkZENoaWxk'@; put 'KHRoaXMpLHRoaXMuY2hpbGRyZW49W119ZGVzdHJveSgpe3RoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5fcmVtb3ZlQ2hpbGQodGhpcyksc3VwZXIuZGVzdHJveSgpfV9hZGRDaGlsZChsKXt0aGlzLmNoaWxkcmVuLnB1c2gobCl9X3JlbW92ZUNoaWxkKGwpe2NvbnN0IGE9dGhpcy5jaGlsZHJl'@; put 'bi5pbmRleE9mKGwpO2E+LTEmJnRoaXMuY2hpbGRyZW4uc3BsaWNlKGEsMSl9fWxldCBEcD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuZWw9YX1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImFjdGl2ZSIpfWFj'@; put 'dGl2YXRlKCl7dGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpY2smJnRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGljaygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChOaSkpfSxjLlx1MDI3NWRpcj1Dcih7'@; put 'dHlwZTpjLHNlbGVjdG9yczpbWyIiLDgsImNsci10cmVlbm9kZS1saW5rIl1dfSksY30pKCksZzE9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGllKXt0aGlzLnBsYXRmb3JtSWQ9YSx0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyPWgsdGhpcy5mZWF0dXJlc1NlcnZp'@; put 'Y2U9Zix0aGlzLmV4cGFuZFNlcnZpY2U9Xyx0aGlzLmNvbW1vblN0cmluZ3M9VCx0aGlzLmZvY3VzTWFuYWdlcj1XLHRoaXMuc2VsZWN0ZWRDaGFuZ2U9bmV3IEVyKCExKSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBFcix0aGlzLlNUQVRFUz1wYyx0aGlzLmlzTW9kZWxMb2FkaW5nPSExLHRo'@; put 'aXMubm9kZUlkPUljKCksdGhpcy5jb250ZW50Q29udGFpbmVyVGFiaW5kZXg9LTEsdGhpcy5za2lwRW1pdENoYW5nZT0hMSx0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlcj0iIix0aGlzLnR5cGVBaGVhZEtleUV2ZW50PW5ldyBiZSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5fbW9kZWw9dGhp'@; put 'cy5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uP2llLnZpZXc/aWUudmlldy5jb250ZXh0LmNsck1vZGVsOmllLl9sVmlld1s4XS5jbHJNb2RlbDpuZXcgVHdlKGQ/ZC5fbW9kZWw6bnVsbCksdGhpcy5fbW9kZWwubm9kZUlkPXRoaXMubm9kZUlkfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlz'@; put 'Ll9tb2RlbC5zZWxlY3RlZC52YWx1ZX1zZXQgc2VsZWN0ZWQoYSl7dGhpcy5mZWF0dXJlc1NlcnZpY2Uuc2VsZWN0YWJsZT0hMCwobnVsbD09PWF8fHR5cGVvZiBhPiJ1IikmJihhPXBjLlVOU0VMRUNURUQpLCJib29sZWFuIj09dHlwZW9mIGEmJihhPWE/cGMuU0VMRUNURUQ6cGMuVU5TRUxF'@; put 'Q1RFRCksdGhpcy5za2lwRW1pdENoYW5nZT0hMCx0aGlzLl9tb2RlbC5zZXRTZWxlY3RlZChhLHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyLHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKSx0aGlzLnNraXBFbWl0Q2hhbmdlPSExfWdldCBleHBhbmRlZCgpe3JldHVybiB0aGlzLmV4cGFu'@; put 'ZFNlcnZpY2UuZXhwYW5kZWR9c2V0IGV4cGFuZGVkKGEpe3RoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZD1hfWdldCBhcmlhU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5pc1NlbGVjdGFibGUoKT90aGlzLl9tb2RlbC5zZWxlY3RlZC52YWx1ZT09PXBjLlNFTEVDVEVEOiEhdGhpcy50cmVlTm9k'@; put 'ZUxpbms/LmFjdGl2ZXx8bnVsbH1nZXQgdHJlZU5vZGVMaW5rKCl7cmV0dXJuIHRoaXMudHJlZU5vZGVMaW5rTGlzdCYmdGhpcy50cmVlTm9kZUxpbmtMaXN0LmZpcnN0fWdldCBpc1BhcmVudCgpe3JldHVybiB0aGlzLl9tb2RlbC5jaGlsZHJlbiYmdGhpcy5fbW9kZWwuY2hpbGRyZW4ubGVu'@; put 'Z3RoPjB9bmdPbkluaXQoKXt0aGlzLl9tb2RlbC5leHBhbmRlZD10aGlzLmV4cGFuZGVkLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX21vZGVsLnNlbGVjdGVkLnBpcGUoSWEoKCk9PiF0aGlzLnNraXBFbWl0Q2hhbmdlKSkuc3Vic2NyaWJlKGE9Pnt0aGlzLnNlbGVjdGVkQ2hhbmdl'@; put 'LmVtaXQoYSl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZENoYW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdChhKSx0aGlzLl9tb2RlbC5leHBhbmRlZD1hfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMu'@; put 'Zm9jdXNNYW5hZ2VyLmZvY3VzUmVxdWVzdC5zdWJzY3JpYmUoYT0+e3RoaXMubm9kZUlkPT09YSYmdGhpcy5mb2N1c1RyZWVOb2RlKCl9KSx0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0NoYW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMuY2hlY2tUYWJJbmRleChhKX0pKSx0aGlzLnN1YnNjcmlwdGlv'@; put 'bnMucHVzaCh0aGlzLl9tb2RlbC5sb2FkaW5nJC5waXBlKGY4KDApKS5zdWJzY3JpYmUoYT0+dGhpcy5pc01vZGVsTG9hZGluZz1hKSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5mb3JUeXBlQWhlYWRQcm92aWRlciYmKHRoaXMuX21vZGVsLnRleHRDb250ZW50PXRoaXMuZm9yVHlwZUFo'@; put 'ZWFkUHJvdmlkZXIudGV4dENvbnRlbnQsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50eXBlQWhlYWRLZXlFdmVudC5waXBlKGY4KDIwMCkpLnN1YnNjcmliZShhPT57dGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlU3RhcnRzV2l0aChhLHRoaXMuX21vZGVsKSx0aGlzLnR5cGVBaGVh'@; put 'ZEtleUJ1ZmZlcj0iIn0pKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9tb2RlbC5kZXN0cm95KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1pc0V4cGFuZGFibGUoKXtyZXR1cm4gdHlwZW9mIHRoaXMuZXhwYW5kYWJsZTwidSI/dGhpcy5leHBhbmRhYmxl'@; put 'OiEhdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGFibGV8fHRoaXMuaXNQYXJlbnR9aXNTZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGV9Zm9jdXNUcmVlTm9kZSgpe2NvbnN0IGE9dGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7UnMo'@; put 'dGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJih0aGlzLnNldFRhYkluZGV4KDApLGEuZm9jdXMoKSxhLnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pKX1icm9hZGNhc3RGb2N1c09uQ29udGFpbmVyKCl7dGhpcy5m'@; put 'b2N1c01hbmFnZXIuYnJvYWRjYXN0Rm9jdXNlZE5vZGUodGhpcy5ub2RlSWQpfW9uS2V5RG93bihhKXtzd2l0Y2goVEYoYSksbDIoYS5rZXkpKXtjYXNlIHdvLkFycm93VXA6dGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQWJvdmUodGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2Ugd28uQXJyb3dE'@; put 'b3duOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUJlbG93KHRoaXMuX21vZGVsKTticmVhaztjYXNlIHdvLkFycm93UmlnaHQ6dGhpcy5leHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpO2JyZWFrO2Nhc2Ugd28uQXJyb3dMZWZ0OnRoaXMuY29sbGFwc2VPckZvY3VzUGFyZW50KCk7YnJlYWs7'@; put 'Y2FzZSB3by5Ib21lOmEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0ZpcnN0VmlzaWJsZU5vZGUoKTticmVhaztjYXNlIHdvLkVuZDphLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNMYXN0VmlzaWJsZU5vZGUoKTticmVhaztjYXNlIHdv'@; put 'LkVudGVyOnRoaXMudG9nZ2xlRXhwYW5kT3JUcmlnZ2VyRGVmYXVsdCgpO2JyZWFrO2Nhc2Ugd28uU3BhY2U6Y2FzZSB3by5TcGFjZWJhcjphLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVFeHBhbmRPclRyaWdnZXJEZWZhdWx0KCk7YnJlYWs7ZGVmYXVsdDppZih0aGlzLl9tb2RlbC50'@; put 'ZXh0Q29udGVudCYmZnVuY3Rpb24gcnllKGMpe2NvbnN0IGw9Yy5rZXk7cmV0dXJuIGwudG9Mb3dlckNhc2UoKSE9PWwudG9VcHBlckNhc2UoKXx8bD49IjAiJiZsPD0iOSJ9KGEpKXJldHVybiB0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlcis9YS5rZXksdm9pZCB0aGlzLnR5cGVBaGVhZEtleUV2'@; put 'ZW50Lm5leHQodGhpcy50eXBlQWhlYWRLZXlCdWZmZXIpfXRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIifXNldFRhYkluZGV4KGEpe3RoaXMuY29udGVudENvbnRhaW5lclRhYmluZGV4PWEsdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0YWJpbmRl'@; put 'eCIsYSl9Y2hlY2tUYWJJbmRleChhKXtScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLm5vZGVJZCE9PWEmJi0xIT09dGhpcy5jb250ZW50Q29udGFpbmVyVGFiaW5kZXgmJnRoaXMuc2V0VGFiSW5kZXgoLTEpfXRvZ2dsZUV4cGFuZE9yVHJpZ2dlckRlZmF1bHQoKXt0aGlzLmlzRXhwYW5kYWJs'@; put 'ZSgpJiYhdGhpcy5pc1NlbGVjdGFibGUoKT90aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9IXRoaXMuZXhwYW5kZWQ6dGhpcy50cmlnZ2VyRGVmYXVsdEFjdGlvbigpfWV4cGFuZE9yRm9jdXNGaXJzdENoaWxkKCl7dGhpcy5leHBhbmRlZD90aGlzLmlzUGFyZW50JiZ0aGlzLmZvY3VzTWFu'@; put 'YWdlci5mb2N1c05vZGVCZWxvdyh0aGlzLl9tb2RlbCk6dGhpcy5pc0V4cGFuZGFibGUoKSYmKHRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZD0hMCl9Y29sbGFwc2VPckZvY3VzUGFyZW50KCl7dGhpcy5leHBhbmRlZD90aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9ITE6dGhpcy5mb2N1'@; put 'c01hbmFnZXIuZm9jdXNQYXJlbnQodGhpcy5fbW9kZWwpfXRyaWdnZXJEZWZhdWx0QWN0aW9uKCl7dGhpcy50cmVlTm9kZUxpbms/dGhpcy50cmVlTm9kZUxpbmsuYWN0aXZhdGUoKTp0aGlzLmlzU2VsZWN0YWJsZSgpJiZ0aGlzLl9tb2RlbC50b2dnbGVTZWxlY3Rpb24odGhpcy5mZWF0dXJl'@; put 'c1NlcnZpY2UuZWFnZXIpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChHcyksdHQoYywxMiksdHQoZnllLDEwKSx0dChzZyksdHQoWXUpLHR0KEVzKSx0dCh2SCksdHQoRWEpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1si'@; put 'Y2xyLXRyZWUtbm9kZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLERwLDQpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQudHJlZU5vZGVMaW5rTGlzdD1mKX19LHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmUm8oQl9lLDcsTmkpLDImYSl7'@; put 'bGV0IGg7YWkoaD1saSgpKSYmKGQuY29udGVudENvbnRhaW5lcj1oLmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiY2xyLXRyZWUtbm9kZSIsITApfSxpbnB1dHM6e2V4cGFuZGFibGU6WyJjbHJFeHBhbmRhYmxlIiwiZXhwYW5kYWJsZSJd'@; put 'LHNlbGVjdGVkOlsiY2xyU2VsZWN0ZWQiLCJzZWxlY3RlZCJdLGV4cGFuZGVkOlsiY2xyRXhwYW5kZWQiLCJleHBhbmRlZCJdfSxvdXRwdXRzOntzZWxlY3RlZENoYW5nZToiY2xyU2VsZWN0ZWRDaGFuZ2UiLGV4cGFuZGVkQ2hhbmdlOiJjbHJFeHBhbmRlZENoYW5nZSJ9LGZlYXR1cmVzOlt0'@; put 'aShba1EsWXUse3Byb3ZpZGU6dmIsdXNlRXhpc3Rpbmc6WXV9XSldLG5nQ29udGVudFNlbGVjdG9yczokX2UsZGVjbHM6MTIsdmFyczo5LGNvbnN0czpbWyJyb2xlIiwidHJlZWl0ZW0iLCJ0YWJpbmRleCIsIi0xIiwxLCJjbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyIiwzLCJrZXlk'@; put 'b3duIiwiZm9jdXMiXSxbImNvbnRlbnRDb250YWluZXIiLCIiXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsInR5cGUiLCJidXR0b24iLCJ0YWJpbmRleCIsIi0xIiwiY2xhc3MiLCJjbHItdHJlZW5vZGUtY2FyZXQiLDMsImNsaWNrIiwiZm9jdXMiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXRy'@; put 'ZWVub2RlLXNwaW5uZXItY29udGFpbmVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jaGVja2JveC13cmFwcGVyIGNsci10cmVlbm9kZS1jaGVja2JveCIsNCwibmdJZiJdLFsxLCJjbHItdHJlZW5vZGUtY29udGVudCIsMywibW91c2Vkb3duIl0sWyJjbGFzcyIsImNsci1zci1vbmx5Iiw0'@; put 'LCJuZ0lmIl0sWzEsImNsci10cmVlbm9kZS1jaGlsZHJlbiJdLFszLCJwYXJlbnQiXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsInR5cGUiLCJidXR0b24iLCJ0YWJpbmRleCIsIi0xIiwxLCJjbHItdHJlZW5vZGUtY2FyZXQiLDMsImNsaWNrIiwiZm9jdXMiXSxbInNoYXBlIiwiYW5nbGUiLDEs'@; put 'ImNsci10cmVlbm9kZS1jYXJldC1pY29uIl0sWzEsImNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lciJdLFsxLCJjbHItdHJlZW5vZGUtc3Bpbm5lciIsInNwaW5uZXIiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLCJjbHItdHJlZW5vZGUtY2hlY2tib3giXSxbImFyaWEtaGlkZGVu'@; put 'IiwidHJ1ZSIsInR5cGUiLCJjaGVja2JveCIsInRhYmluZGV4IiwiLTEiLDEsImNsci1jaGVja2JveCIsMywiaWQiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImNoYW5nZSIsImZvY3VzIl0sWzEsImNsci1jb250cm9sLWxhYmVsIiwzLCJmb3IiXSxbMSwiY2xyLXNyLW9ubHkiXSxbNCwi'@; put 'bmdJZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKEdfZSksbWUoMCwiZGl2IiwwLDEpLHh0KCJrZXlkb3duIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbktleURvd24oZil9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGQuYnJvYWRjYXN0Rm9jdXNPbkNvbnRhaW5lcigp'@; put 'fSksSmUoMixqX2UsMiwxLCJidXR0b24iLDIpLEplKDMsel9lLDIsMCwiZGl2IiwzKSxKZSg0LFVfZSwzLDQsImRpdiIsNCksbWUoNSwiZGl2Iiw1KSx4dCgibW91c2Vkb3duIixmdW5jdGlvbigpe3JldHVybiBkLmZvY3VzVHJlZU5vZGUoKX0pLGtyKDYpLEplKDcsV19lLDMsMiwiZGl2Iiw2'@; put 'KSx5ZSgpKCksbWUoOCwiZGl2Iiw3KSxrcig5LDEpLGtyKDEwLDIpLHF0KDExLCJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIiw4KSx5ZSgpKSwyJmEmJihUcigiYXJpYS1leHBhbmRlZCIsZC5pc0V4cGFuZGFibGUoKT9kLmV4cGFuZGVkOm51bGwpKCJhcmlhLXNlbGVjdGVkIixkLmFyaWFTZWxl'@; put 'Y3RlZCksQ2UoMiksUmUoIm5nSWYiLGQuaXNFeHBhbmRhYmxlKCkmJiFkLmlzTW9kZWxMb2FkaW5nJiYhZC5leHBhbmRTZXJ2aWNlLmxvYWRpbmcpLENlKDEpLFJlKCJuZ0lmIixkLmV4cGFuZFNlcnZpY2UubG9hZGluZ3x8ZC5pc01vZGVsTG9hZGluZyksQ2UoMSksUmUoIm5nSWYiLGQuZmVh'@; put 'dHVyZXNTZXJ2aWNlLnNlbGVjdGFibGUpLENlKDMpLFJlKCJuZ0lmIixkLmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlfHxkLmFyaWFTZWxlY3RlZCksQ2UoMSksUmUoIkB0b2dnbGVDaGlsZHJlbkFuaW0iLGQuZXhwYW5kU2VydmljZS5leHBhbmRlZD8iZXhwYW5kZWQiOiJjb2xsYXBzZWQi'@; put 'KSxUcigicm9sZSIsZC5pc0V4cGFuZGFibGUoKSYmIWQuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbj8iZ3JvdXAiOm51bGwpLENlKDMpLFJlKCJwYXJlbnQiLGQuX21vZGVsKSl9LGRlcGVuZGVuY2llczpbQVEsWmkscXNdLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W2ExKCJ0'@; put 'b2dnbGVDaGlsZHJlbkFuaW0iLFtmYygiY29sbGFwc2VkID0+IGV4cGFuZGVkIixbX3Moe2hlaWdodDowfSkscnUoMjAwLF9zKHtoZWlnaHQ6IioifSkpXSksZmMoImV4cGFuZGVkID0+IGNvbGxhcHNlZCIsW19zKHtoZWlnaHQ6IioifSkscnUoMjAwLF9zKHtoZWlnaHQ6MH0pKV0pLEt4KCJl'@; put 'eHBhbmRlZCIsX3Moe2hlaWdodDoiKiIsIm92ZXJmbG93LXkiOiJ2aXNpYmxlIn0pKSxLeCgiY29sbGFwc2VkIixfcyh7aGVpZ2h0OjB9KSldKV19fSksY30pKCksZGQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQse25hdGl2ZUVsZW1lbnQ6aH0sZixfKXt0aGlzLmZlYXR1cmVzU2Vy'@; put 'dmljZT1hLHRoaXMuZm9jdXNNYW5hZ2VyU2VydmljZT1kLHRoaXMuc3Vic2NyaXB0aW9ucz1bXTtjb25zdCBUPV8ucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pm4yKGgsImZvY3VzaW4iKS5zdWJzY3JpYmUoVz0+e1cudGFyZ2V0PT09aCYmKHRoaXMuZm9jdXNNYW5hZ2VyU2VydmljZS5mb2N1c0Zp'@; put 'cnN0VmlzaWJsZU5vZGUoKSxmLnJlbW92ZUF0dHJpYnV0ZShoLCJ0YWJpbmRleCIpKX0pKTt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChUKX1zZXQgbGF6eShhKXt0aGlzLmZlYXR1cmVzU2VydmljZS5lYWdlcj0hYX1nZXQgaXNNdWx0aVNlbGVjdGFibGUoKXtyZXR1cm4gdGhpcy5mZWF0dXJl'@; put 'c1NlcnZpY2Uuc2VsZWN0YWJsZSYmdGhpcy5yb290Tm9kZXMubGVuZ3RoPjB9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zZXRSb290Tm9kZXMoKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJvb3ROb2Rlcy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuc2V0Um9vdE5vZGVz'@; put 'KCl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfXNldFJvb3ROb2Rlcygpe3RoaXMuZm9jdXNNYW5hZ2VyU2VydmljZS5yb290Tm9kZU1vZGVscz10aGlzLnJvb3ROb2Rlcy5tYXAoYT0+YS5fbW9kZWwpLmZpbHRlcihhPT4h'@; put 'YS5wYXJlbnQpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChzZyksdHQodkgpLHR0KE5pKSx0dChGbyksdHQoTm8pKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXRyZWUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rp'@; put 'b24oYSxkLGgpe2lmKDEmYSYmSW8oaCxnMSw0KSwyJmEpe2xldCBmO2FpKGY9bGkoKSkmJihkLnJvb3ROb2Rlcz1mKX19LGhvc3RBdHRyczpbInRhYmluZGV4IiwiMCJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigicm9sZSIsInRyZWUiKSgiYXJpYS1t'@; put 'dWx0aXNlbGVjdGFibGUiLGQuaXNNdWx0aVNlbGVjdGFibGUpfSxpbnB1dHM6e2xhenk6WyJjbHJMYXp5IiwibGF6eSJdfSxmZWF0dXJlczpbdGkoW2tRLHZIXSldLG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1szLCJjaGlsZHJlbiIsNCwibmdJZiJdLFsz'@; put 'LCJjaGlsZHJlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksa3IoMCksSmUoMSxxX2UsMSwxLCJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIiwwKSksMiZhJiYoQ2UoMSksUmUoIm5nSWYiLGQuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbikpfSxkZXBlbmRlbmNpZXM6W0FR'@; put 'LFppXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxMd2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKGg4KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1t'@; put 'aSh7aW1wb3J0czpbW29vLHNhLExGXV19KSxjfSkoKSxSd2U9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbU3dlLEV3ZSxMd2VdfSks'@; put 'Y30pKCk7ZnVuY3Rpb24gSVEoYyxsLGEpe3JldHVybiBLZS5jcmVhdGUoZD0+e2woZCk7Y29uc3QgaD1jLnN1YnNjcmliZShkKTtyZXR1cm4oKT0+e2gudW5zdWJzY3JpYmUoKSxhJiZhKGQpfX0pfWxldCBfSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7dGhpcy5yZW5k'@; put 'ZXJlcj1hLHRoaXMucGFyZW50PWQsdGhpcy50b2dnbGVTZXJ2aWNlPWgsdGhpcy5mb2N1c1NlcnZpY2U9Zix0aGlzLnBsYXRmb3JtSWQ9Xyx0aGlzLmlkPUljKCksdGhpcy5mb2N1c0JhY2tPblRyaWdnZXI9ITEsdGhpcy5fdW5saXN0ZW5GdW5jcz1bXSx0aGlzLnJlc2V0Q2hpbGRyZW4oKSx0'@; put 'aGlzLm1vdmVUb0ZpcnN0SXRlbVdoZW5PcGVuKCksdGhpcy5wYXJlbnR8fHRoaXMuaGFuZGxlUm9vdEZvY3VzKCl9Z2V0IHRyaWdnZXIoKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcn1zZXQgdHJpZ2dlcihhKXt0aGlzLl90cmlnZ2VyPWEsdGhpcy5wYXJlbnQ/dGhpcy5fdW5saXN0ZW5GdW5jcy5w'@; put 'dXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGEsImtleWRvd24uYXJyb3dyaWdodCIsZD0+dGhpcy50b2dnbGVTZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudChkKSkpOih0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oYSwia2V5ZG93bi5hcnJvd3VwIixkPT50aGlz'@; put 'LnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KGQpKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGEsImtleWRvd24uYXJyb3dkb3duIixkPT50aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KGQpKSksdGhpcy5mb2N1c1NlcnZpY2Uu'@; put 'bGlzdGVuVG9BcnJvd0tleXMoYSkpfWdldCBjb250YWluZXIoKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyfXNldCBjb250YWluZXIoYSl7dGhpcy5fY29udGFpbmVyPWEsdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGEsImtleWRvd24udGFiIixkPT50aGlz'@; put 'LnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KGQpKSksdGhpcy5wYXJlbnQ/dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGEsImtleWRvd24uZXNjYXBlIixkPT57dGhpcy5mb2N1c1NlcnZpY2UubW92ZShkMS5MRUZUKSxkLnN0b3BQcm9wYWdhdGlv'@; put 'bigpfSkpOih0aGlzLmZvY3VzU2VydmljZS5yZWdpc3RlckNvbnRhaW5lcihhKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oYSwia2V5ZG93bi5lc2NhcGUiLGQ9PnRoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoZCkpKSx0aGlzLl91bmxp'@; put 'c3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oYSwiYmx1ciIsZD0+e3RoaXMuY2hpbGRyZW4ucGlwZShpZCgxKSkuc3Vic2NyaWJlKGY9PmYuZm9yRWFjaChfPT5fLmJsdXIoKSkpO2NvbnN0IGg9ZC5yZWxhdGVkVGFyZ2V0fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50O2gmJlJz'@; put 'KHRoaXMucGxhdGZvcm1JZCkmJihhLmNvbnRhaW5zKGgpfHxoPT09dGhpcy50cmlnZ2VyKXx8KHRoaXMuZm9jdXNCYWNrT25UcmlnZ2VyPSExLHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX0pKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl91bmxpc3RlbkZ1bmNzLmZvckVhY2goYT0+YSgpKSx0'@; put 'aGlzLmZvY3VzU2VydmljZS5kZXRhY2hMaXN0ZW5lcnMoKX1tb3ZlVG9GaXJzdEl0ZW1XaGVuT3Blbigpe2NvbnN0IGE9dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGQ9PntkJiZ0aGlzLnRvZ2dsZVNlcnZpY2Uub3JpZ2luYWxFdmVudCYmc2V0VGltZW91dCgoKT0+'@; put 'e3RoaXMuZm9jdXNTZXJ2aWNlLm1vdmVUbyh0aGlzKSx0aGlzLmZvY3VzU2VydmljZS5tb3ZlKHRoaXMucGFyZW50P2QxLlJJR0hUOmQxLkRPV04pfSl9KTt0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2goKCk9PmEudW5zdWJzY3JpYmUoKSl9aGFuZGxlUm9vdEZvY3VzKCl7Y29uc3QgYT10aGlz'@; put 'LnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoZD0+e2R8fCh0aGlzLmZvY3VzU2VydmljZS5yZXNldCh0aGlzKSx0aGlzLmZvY3VzQmFja09uVHJpZ2dlciYmdGhpcy5mb2N1cygpKSx0aGlzLmZvY3VzQmFja09uVHJpZ2dlcj1kfSk7dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNo'@; put 'KCgpPT5hLnVuc3Vic2NyaWJlKCkpfWZvY3VzKCl7dGhpcy50cmlnZ2VyJiZScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRyaWdnZXIuZm9jdXMoKX1ibHVyKCl7dGhpcy50cmlnZ2VyJiZScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRyaWdnZXIuYmx1cigpfWFjdGl2YXRlKCl7UnModGhp'@; put 'cy5wbGF0Zm9ybUlkKSYmdGhpcy50cmlnZ2VyLmNsaWNrKCl9cmVzZXRDaGlsZHJlbigpe3RoaXMuY2hpbGRyZW49bmV3IHF4KDEpLHRoaXMucGFyZW50P3RoaXMucmlnaHQ9dGhpcy5vcGVuQW5kR2V0Q2hpbGRyZW4oKS5waXBlKE1lKGE9PmFbMF0pKToodGhpcy5kb3duPXRoaXMub3BlbkFu'@; put 'ZEdldENoaWxkcmVuKCkucGlwZShNZShhPT5hWzBdKSksdGhpcy51cD10aGlzLm9wZW5BbmRHZXRDaGlsZHJlbigpLnBpcGUoTWUoYT0+YVthLmxlbmd0aC0xXSkpKX1hZGRDaGlsZHJlbihhKXtJRi5saW5rVmVydGljYWwoYSksdGhpcy5wYXJlbnQmJklGLmxpbmtQYXJlbnQoYSx0aGlzLmNs'@; put 'b3NlQW5kR2V0VGhpcygpLGQxLkxFRlQpLHRoaXMuY2hpbGRyZW4ubmV4dChhKX1vcGVuQW5kR2V0Q2hpbGRyZW4oKXtyZXR1cm4gSVEodGhpcy5jaGlsZHJlbiwoKT0+dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITApfWNsb3NlQW5kR2V0VGhpcygpe3JldHVybiBJUShXaSh0aGlzKSwoKT0+'@; put 'dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihGbyksYXIoYywxMiksYXIoS3MpLGFyKEViKSxhcihHcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9'@; put 'KSgpO2NvbnN0IE93ZT1RSihfSCk7bGV0IEZiPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9jaGFuZ2VzPW5ldyBiZX1nZXQgY2hhbmdlcygpe3JldHVybiB0aGlzLl9jaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpfWNsb3NlTWVudXMoKXt0aGlzLl9jaGFuZ2VzLm5leHQoITEpfX1y'@; put 'ZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKTtjb25zdCBGd2U9e3Byb3ZpZGU6RmIsdXNlRmFjdG9yeTpmdW5jdGlvbiBQd2UoYyl7cmV0dXJuIGN8fG5ldyBG'@; put 'Yn0sZGVwczpbW25ldyB6MixuZXcgZzAsRmJdXX07bGV0IE5mPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5wYXJlbnQ9YSx0aGlzLnRvZ2dsZVNlcnZpY2U9ZCx0aGlzLmNkcj1oLHRoaXMuaXNNZW51Q2xvc2FibGU9ITAsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRo'@; put 'aXMuc3Vic2NyaXB0aW9ucy5wdXNoKGYuY2hhbmdlcy5zdWJzY3JpYmUoXz0+dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49XykpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGQub3BlbkNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKSl9bmdPbkRlc3Ryb3koKXt0'@; put 'aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChjLDEyKSx0dChLcyksdHQoVWEpLHR0KEZiKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNs'@; put 'ci1kcm9wZG93biJdXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImRyb3Bkb3duIiwhMCkoIm9wZW4iLGQudG9nZ2xlU2VydmljZS5vcGVuKX0saW5wdXRzOntpc01lbnVDbG9zYWJsZTpbImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiwiaXNNZW51Q2xv'@; put 'c2FibGUiXX0sZmVhdHVyZXM6W3RpKFtGd2Use3Byb3ZpZGU6TDgsdXNlRXhpc3Rpbmc6Tml9LGpKLEtzLE93ZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSgpLGtyKDApKX0sZW5jYXBzdWxhdGlvbjoyfSks'@; put 'Y30pKCk7Y29uc3QgSHdlPVt7cHJvdmlkZTpTRSx1c2VDbGFzczooKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLmVsPWEsdGhpcy5yZW5kZXJlcj1kLHRoaXMucGxhdGZvcm1JZD1oLHRoaXMuaWQ9SWMoKSx0aGlzLmRpc2FibGVkPSExLGQuc2V0QXR0cmlidXRlKGEubmF0'@; put 'aXZlRWxlbWVudCwiaWQiLHRoaXMuaWQpLGQuc2V0QXR0cmlidXRlKGEubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLCItMSIpfWZvY3VzKCl7UnModGhpcy5wbGF0Zm9ybUlkKSYmKHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLCIw'@; put 'IiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIixpbmxpbmU6Im5lYXJlc3QifSkpfWJsdXIoKXtScyh0aGlzLnBsYXRmb3JtSWQpJiYodGhpcy5yZW5kZXJl'@; put 'ci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIsIi0xIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmJsdXIoKSl9YWN0aXZhdGUoKXtScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpY2soKX19cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoTmkpLGFyKEZvKSxhcihHcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpfV07bGV0IEs4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuZHJvcGRvd249YSx0'@; put 'aGlzLl9kcm9wZG93blNlcnZpY2U9ZCx0aGlzLmZvY3VzYWJsZUl0ZW09aCx0aGlzLnNldEJ5RGVwcmVjYXRlZERpc2FibGVkPSExfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWR9c2V0IGRpc2FibGVkKGEpe3RoaXMuZm9jdXNhYmxlSXRlbS5kaXNh'@; put 'YmxlZD0hIWF8fCIiPT09YX1nZXQgZGlzYWJsZWREZXByZWNhdGVkKCl7cmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZH1zZXQgZGlzYWJsZWREZXByZWNhdGVkKGEpe3RoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZD0hIWF8fCIiPT09YSx0aGlzLnNldEJ5RGVwcmVjYXRlZERp'@; put 'c2FibGVkPSEwfWdldCBkcm9wZG93bkl0ZW1JZCgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uaWR9c2V0IGRyb3Bkb3duSXRlbUlkKGEpe3RoaXMuZm9jdXNhYmxlSXRlbS5pZD1hfW9uRHJvcGRvd25JdGVtQ2xpY2soKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5kcm9wZG93bi5pc01lbnVD'@; put 'bG9zYWJsZSYmIXRoaXMuZGlzYWJsZWQmJnRoaXMuX2Ryb3Bkb3duU2VydmljZS5jbG9zZU1lbnVzKCl9KX1vblNwYWNlS2V5ZG93bihhKXt0aGlzLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbklmRGlzYWJsZWQoYSl9b25FbnRlcktleWRvd24oYSl7dGhpcy5zdG9wSW1tZWRpYXRlUHJvcGFn'@; put 'YXRpb25JZkRpc2FibGVkKGEpfXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbklmRGlzYWJsZWQoYSl7dGhpcy5kaXNhYmxlZCYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXco'@; put 'YXx8YykodHQoTmYpLHR0KEZiKSx0dChTRSkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJEcm9wZG93bkl0ZW0iLCIiXV0saG9zdFZhcnM6OCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5v'@; put 'bkRyb3Bkb3duSXRlbUNsaWNrKCl9KSgia2V5ZG93bi5zcGFjZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25TcGFjZUtleWRvd24oZil9KSgia2V5ZG93bi5lbnRlciIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25FbnRlcktleWRvd24oZil9KSwyJmEmJihUcigicm9sZSIsIm1lbnVpdGVtIiko'@; put 'ImFyaWEtZGlzYWJsZWQiLGQuZGlzYWJsZWQpKCJkaXNhYmxlZCIsZC5kaXNhYmxlZCYmZC5zZXRCeURlcHJlY2F0ZWREaXNhYmxlZD8iIjpudWxsKSgiaWQiLGQuZHJvcGRvd25JdGVtSWQpLGRyKCJkaXNhYmxlZCIsZC5kaXNhYmxlZCkoImRyb3Bkb3duLWl0ZW0iLCEwKSl9LGlucHV0czp7'@; put 'ZGlzYWJsZWQ6WyJjbHJEaXNhYmxlZCIsImRpc2FibGVkIl0sZGlzYWJsZWREZXByZWNhdGVkOlsiZGlzYWJsZWQiLCJkaXNhYmxlZERlcHJlY2F0ZWQiXSxkcm9wZG93bkl0ZW1JZDpbImlkIiwiZHJvcGRvd25JdGVtSWQiXX0sZmVhdHVyZXM6W3RpKFtId2VdKV19KSxjfSkoKTt2YXIgR3I9'@; put 'ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5SSUdIVF9DRU5URVI9MF09IlJJR0hUX0NFTlRFUiIsY1tjLlJJR0hUX1RPUD0xXT0iUklHSFRfVE9QIixjW2MuUklHSFRfQk9UVE9NPTJdPSJSSUdIVF9CT1RUT00iLGNbYy5UT1BfQ0VOVEVSPTNdPSJUT1BfQ0VOVEVSIixjW2MuVE9QX1JJR0hUPTRd'@; put 'PSJUT1BfUklHSFQiLGNbYy5UT1BfTEVGVD01XT0iVE9QX0xFRlQiLGNbYy5CT1RUT01fQ0VOVEVSPTZdPSJCT1RUT01fQ0VOVEVSIixjW2MuQk9UVE9NX1JJR0hUPTddPSJCT1RUT01fUklHSFQiLGNbYy5CT1RUT01fTEVGVD04XT0iQk9UVE9NX0xFRlQiLGNbYy5MRUZUX0NFTlRFUj05XT0i'@; put 'TEVGVF9DRU5URVIiLGNbYy5MRUZUX1RPUD0xMF09IkxFRlRfVE9QIixjW2MuTEVGVF9CT1RUT009MTFdPSJMRUZUX0JPVFRPTSIsY30oR3J8fHt9KTtjb25zdCBMUT0iYWJzb2x1dGUiO2NsYXNzIEJ3ZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmVsZW1lbnQ9bCx0aGlzLmJvdW5kT25TY3JvbGxM'@; put 'aXN0ZW5lcj10aGlzLmVtaXRTY3JvbGxFdmVudC5iaW5kKHRoaXMpLHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzPVtdLGwuc3R5bGUucG9zaXRpb249TFEsbC5zdHlsZS50b3A9MCxsLnN0eWxlLmJvdHRvbT0iYXV0byIsbC5zdHlsZS5sZWZ0PTAsbC5zdHlsZS5yaWdodD0iYXV0byJ9YW5jaG9y'@; put 'KGwsYSxkLHtvZmZzZXRYOmg9MCxvZmZzZXRZOmY9MCx1c2VBbmNob3JQYXJlbnQ6Xz0hMX09e30pe3RoaXMuYWRkU2Nyb2xsRXZlbnRMaXN0ZW5lcnMobCksXyYmKGw9bC5wYXJlbnROb2RlKSxsLnN0eWxlLnBvc2l0aW9uPSJzdGF0aWMiO2NvbnN0IFQ9bC5nZXRCb3VuZGluZ0NsaWVudFJl'@; put 'Y3QoKSxXPXRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgaWU9VC5sZWZ0LVcubGVmdCtoLHBlPVQudG9wLVcudG9wK2Y7c3dpdGNoKGEpe2Nhc2UgR3IuTEVGVF9UT1A6Y2FzZSBHci5UT1BfTEVGVDpicmVhaztjYXNlIEdyLlRPUF9DRU5URVI6aWUrPVQud2lkdGgv'@; put 'MjticmVhaztjYXNlIEdyLlRPUF9SSUdIVDpjYXNlIEdyLlJJR0hUX1RPUDppZSs9VC53aWR0aDticmVhaztjYXNlIEdyLkxFRlRfQk9UVE9NOmNhc2UgR3IuQk9UVE9NX0xFRlQ6cGUrPVQuaGVpZ2h0O2JyZWFrO2Nhc2UgR3IuQk9UVE9NX0NFTlRFUjpwZSs9VC5oZWlnaHQsaWUrPVQud2lk'@; put 'dGgvMjticmVhaztjYXNlIEdyLkJPVFRPTV9SSUdIVDpjYXNlIEdyLlJJR0hUX0JPVFRPTTpwZSs9VC5oZWlnaHQsaWUrPVQud2lkdGg7YnJlYWs7Y2FzZSBHci5MRUZUX0NFTlRFUjpwZSs9VC5oZWlnaHQvMjticmVhaztjYXNlIEdyLlJJR0hUX0NFTlRFUjpwZSs9VC5oZWlnaHQvMixpZSs9'@; put 'VC53aWR0aH1zd2l0Y2goZCl7Y2FzZSBHci5MRUZUX1RPUDpjYXNlIEdyLlRPUF9MRUZUOmJyZWFrO2Nhc2UgR3IuVE9QX0NFTlRFUjppZS09Vy53aWR0aC8yO2JyZWFrO2Nhc2UgR3IuVE9QX1JJR0hUOmNhc2UgR3IuUklHSFRfVE9QOmllLT1XLndpZHRoO2JyZWFrO2Nhc2UgR3IuTEVGVF9C'@; put 'T1RUT006Y2FzZSBHci5CT1RUT01fTEVGVDpwZS09Vy5oZWlnaHQ7YnJlYWs7Y2FzZSBHci5CT1RUT01fQ0VOVEVSOnBlLT1XLmhlaWdodCxpZS09Vy53aWR0aC8yO2JyZWFrO2Nhc2UgR3IuQk9UVE9NX1JJR0hUOmNhc2UgR3IuUklHSFRfQk9UVE9NOnBlLT1XLmhlaWdodCxpZS09Vy53aWR0'@; put 'aDticmVhaztjYXNlIEdyLkxFRlRfQ0VOVEVSOnBlLT1XLmhlaWdodC8yO2JyZWFrO2Nhc2UgR3IuUklHSFRfQ0VOVEVSOnBlLT1XLmhlaWdodC8yLGllLT1XLndpZHRofWNvbnN0IHdlPWdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KSxFZT1wYXJzZUludCh3ZS5tYXJnaW5MZWZ0LDEw'@; put 'KSxaZT1wYXJzZUludCh3ZS5tYXJnaW5SaWdodCwxMCksaXQ9cGFyc2VJbnQod2UubWFyZ2luVG9wLDEwKSxldD1wYXJzZUludCh3ZS5tYXJnaW5Cb3R0b20sMTApO3N3aXRjaChhKXtjYXNlIEdyLkxFRlRfVE9QOmNhc2UgR3IuVE9QX0xFRlQ6Y2FzZSBHci5UT1BfUklHSFQ6Y2FzZSBHci5S'@; put 'SUdIVF9UT1A6KGQ9PT1Hci5CT1RUT01fUklHSFR8fGQ9PT1Hci5SSUdIVF9CT1RUT00pJiYocGUtPWV0LGllLT1aZSksKGQ9PT1Hci5CT1RUT01fTEVGVHx8ZD09PUdyLkxFRlRfQk9UVE9NKSYmKHBlLT1pdCxpZSs9RWUpLChkPT09R3IuVE9QX0xFRlR8fGQ9PT1Hci5MRUZUX1RPUCkmJihw'@; put 'ZSs9aXQsaWUrPUVlKSwoZD09PUdyLlRPUF9SSUdIVHx8ZD09PUdyLlJJR0hUX1RPUCkmJihwZSs9aXQsaWUtPVplKTticmVhaztjYXNlIEdyLkxFRlRfQk9UVE9NOmNhc2UgR3IuQk9UVE9NX0xFRlQ6Y2FzZSBHci5CT1RUT01fUklHSFQ6Y2FzZSBHci5SSUdIVF9CT1RUT006KGQ9PT1Hci5C'@; put 'T1RUT01fTEVGVHx8ZD09PUdyLkxFRlRfQk9UVE9NKSYmKHBlLT1ldCxpZSs9RWUpLChkPT09R3IuQk9UVE9NX1JJR0hUfHxkPT09R3IuUklHSFRfQk9UVE9NKSYmKHBlLT1ldCxpZS09WmUpLChkPT09R3IuVE9QX0xFRlR8fGQ9PT1Hci5MRUZUX1RPUCkmJihwZSs9aXQsaWUrPUVlKSwoZD09'@; put 'PUdyLlRPUF9SSUdIVHx8ZD09PUdyLlJJR0hUX1RPUCkmJihwZSs9aXQsaWUtPVplKTticmVhaztjYXNlIEdyLlRPUF9DRU5URVI6cGUtPWV0LGllKz1FZSxpZS09WmU7YnJlYWs7Y2FzZSBHci5CT1RUT01fQ0VOVEVSOnBlKz1pdCxpZSs9RWUsaWUtPVplO2JyZWFrO2Nhc2UgR3IuTEVGVF9D'@; put 'RU5URVI6cGUrPWl0LHBlLT1ldCxpZS09WmU7YnJlYWs7Y2FzZSBHci5SSUdIVF9DRU5URVI6cGUrPWl0LHBlLT1ldCxpZSs9RWV9cmV0dXJuIHRoaXMuZWxlbWVudC5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVgoJHtNYXRoLnJvdW5kKGllKX1weCkgdHJhbnNsYXRlWSgke01hdGgucm91'@; put 'bmQocGUpfXB4KWAsdGhpcy5fc2Nyb2xsLmFzT2JzZXJ2YWJsZSgpfXJlbGVhc2UoKXt0aGlzLmVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPSIiLHRoaXMucmVtb3ZlU2Nyb2xsRXZlbnRMaXN0ZW5lcnMoKX1pc1Bvc2l0aW9uZWQobCl7Y29uc3QgYT1nZXRDb21wdXRlZFN0eWxlKGwpLnBvc2l0'@; put 'aW9uO3JldHVybiJyZWxhdGl2ZSI9PT1hfHxhPT09TFF8fCJmaXhlZCI9PT1hfWVtaXRTY3JvbGxFdmVudCgpe3RoaXMuX3Njcm9sbC5uZXh0KCl9YWRkU2Nyb2xsRXZlbnRMaXN0ZW5lcnMobCl7dGhpcy5fc2Nyb2xsPW5ldyBiZTtjb25zdCBhPWw7bGV0IGQ9bDtmb3IoO2QmJmQhPT1kb2N1'@; put 'bWVudCYmKHRoaXMuc2Nyb2xscyhkKSYmKGQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmJvdW5kT25TY3JvbGxMaXN0ZW5lciksdGhpcy5zY3JvbGxhYmxlRWxlbWVudHMucHVzaChkKSksZD09PWF8fCF0aGlzLmlzUG9zaXRpb25lZChkKSk7KWQ9ZC5wYXJlbnROb2RlfXJlbW92'@; put 'ZVNjcm9sbEV2ZW50TGlzdGVuZXJzKCl7Zm9yKGNvbnN0IGwgb2YgdGhpcy5zY3JvbGxhYmxlRWxlbWVudHMpbC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuYm91bmRPblNjcm9sbExpc3RlbmVyKTt0aGlzLnNjcm9sbGFibGVFbGVtZW50cy5sZW5ndGg9MCx0aGlzLl9zY3Jv'@; put 'bGwmJih0aGlzLl9zY3JvbGwuY29tcGxldGUoKSxkZWxldGUgdGhpcy5fc2Nyb2xsKX1zY3JvbGxzKGwpe2NvbnN0IGE9Z2V0Q29tcHV0ZWRTdHlsZShsKTtyZXR1cm4ic2Nyb2xsIj09PWEub3ZlcmZsb3dYfHwiYXV0byI9PT1hLm92ZXJmbG93WHx8InNjcm9sbCI9PT1hLm92ZXJmbG93WXx8'@; put 'ImF1dG8iPT09YS5vdmVyZmxvd1l9fWxldCBiSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5wYXJlbnRIb3N0PWQsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrPSExLHRoaXMucG9wb3Zlck9wdGlvbnM9e30sdGhpcy51cGRhdGVBbmNob3I9ITEsdGhpcy5kb2N1bWVudEVT'@; put 'Q0xpc3RlbmVyPW51bGwsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrQ2FsbGJhY2s9aD0+e3RoaXMuYW5jaG9yRWxlbS5jb250YWlucyhoLnRhcmdldCl8fCh0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMSl9LHRoaXMuZWw9YS5nZXQoTmkpLHRoaXMudG9nZ2xlU2VydmljZT1hLmdldChLcyks'@; put 'dGhpcy5yZW5kZXJlcj1hLmdldChGbyksdGhpcy5uZ1pvbmU9YS5nZXQoTm8pLHRoaXMucmVmPWEuZ2V0KFVhKSx0aGlzLmFuY2hvckVsZW09ZC5uYXRpdmVFbGVtZW50LHRoaXMucG9wb3Zlckluc3RhbmNlPW5ldyBCd2UodGhpcy5lbC5uYXRpdmVFbGVtZW50KSx0aGlzLnN1YnNjcmlwdGlv'@; put 'bj10aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoaD0+e2g/KHRoaXMuYW5jaG9yKCksdGhpcy5hdHRhY2hFU0NMaXN0ZW5lcigpKToodGhpcy5yZWxlYXNlKCksdGhpcy5kZXRhY2hFU0NMaXN0ZW5lcigpKX0pLHRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiYodGhpcy5h'@; put 'bmNob3IoKSx0aGlzLmF0dGFjaEVTQ0xpc3RlbmVyKCkpfWdldCBpc09mZlNjcmVlbigpe3JldHVybiF0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn1uZ0FmdGVyVmlld0NoZWNrZWQoKXt0aGlzLnVwZGF0ZUFuY2hvciYmKHRoaXMudXBkYXRlQW5jaG9yPSExLHRoaXMucG9wb3Zlckluc3RhbmNl'@; put 'LmFuY2hvcih0aGlzLmFuY2hvckVsZW0sdGhpcy5hbmNob3JQb2ludCx0aGlzLnBvcG92ZXJQb2ludCx0aGlzLnBvcG92ZXJPcHRpb25zKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMX0pLHRoaXMuYXR0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKSl9bmdPbkRl'@; put 'c3Ryb3koKXt0aGlzLnJlbGVhc2UoKSx0aGlzLmRldGFjaEVTQ0xpc3RlbmVyKCksdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1hbmNob3IoKXt0aGlzLnVwZGF0ZUFuY2hvcj0hMH1yZWxlYXNlKCl7dGhpcy5kZXRhY2hPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpLHRoaXMucG9wb3Zl'@; put 'ckluc3RhbmNlLnJlbGVhc2UoKX1hdHRhY2hFU0NMaXN0ZW5lcigpe3RoaXMucG9wb3Zlck9wdGlvbnMuaWdub3JlR2xvYmFsRVNDTGlzdGVuZXJ8fHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVu'@; put 'KCJkb2N1bWVudCIsImtleWRvd24iLGE9PnthJiZhLmtleSYmbDIoYS5rZXkpPT09d28uRXNjYXBlJiZ0aGlzLm5nWm9uZS5ydW4oKCk9Pnt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMSx0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKX0pfSl9KX1kZXRhY2hFU0NMaXN0ZW5lcigpe3RoaXMuZG9j'@; put 'dW1lbnRFU0NMaXN0ZW5lciYmKHRoaXMuZG9jdW1lbnRFU0NMaXN0ZW5lcigpLHRoaXMuZG9jdW1lbnRFU0NMaXN0ZW5lcj1udWxsKX1hdHRhY2hPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpe3RoaXMuY2xvc2VPbk91dHNpZGVDbGljayYmdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJmRvY3VtZW50'@; put 'JiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrQ2FsbGJhY2ssITApfWRldGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCl7dGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrJiZkb2N1bWVudCYm'@; put 'ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuY2xvc2VPbk91dHNpZGVDbGlja0NhbGxiYWNrLCEwKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoRWEpLHR0KE5p'@; put 'LDQpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6Yyxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImlzLW9mZi1zY3JlZW4iLGQuaXNPZmZTY3JlZW4pfX0pLGN9KSgpLGFnPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBiSHtjb25zdHJ1Y3RvcihhLGQsaCxmKXtp'@; put 'ZighZCl0aHJvdyBuZXcgRXJyb3IoImNsci1kcm9wZG93bi1tZW51IHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyLWRyb3Bkb3duIik7c3VwZXIoYSxkKSxoPyh0aGlzLmFuY2hvclBvaW50PUdyLlJJR0hUX1RPUCx0aGlzLnBvcG92ZXJQb2ludD1Hci5MRUZUX1RPUCk6KHRo'@; put 'aXMuYW5jaG9yUG9pbnQ9R3IuQk9UVE9NX0xFRlQsdGhpcy5wb3BvdmVyUG9pbnQ9R3IuTEVGVF9UT1ApLHRoaXMucG9wb3Zlck9wdGlvbnMuYWxsb3dNdWx0aXBsZU9wZW49ITAsdGhpcy5wb3BvdmVyT3B0aW9ucy5pZ25vcmVHbG9iYWxFU0NMaXN0ZW5lcj0hMCx0aGlzLmNsb3NlT25PdXRz'@; put 'aWRlQ2xpY2s9ITAsdGhpcy5mb2N1c0hhbmRsZXI9Zn1zZXQgcG9zaXRpb24oYSl7c3dpdGNoKGEpe2Nhc2UidG9wLXJpZ2h0Ijp0aGlzLmFuY2hvclBvaW50PUdyLlRPUF9SSUdIVCx0aGlzLnBvcG92ZXJQb2ludD1Hci5SSUdIVF9CT1RUT007YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6dGhpcy5h'@; put 'bmNob3JQb2ludD1Hci5UT1BfTEVGVCx0aGlzLnBvcG92ZXJQb2ludD1Hci5MRUZUX0JPVFRPTTticmVhaztjYXNlImJvdHRvbS1yaWdodCI6dGhpcy5hbmNob3JQb2ludD1Hci5CT1RUT01fUklHSFQsdGhpcy5wb3BvdmVyUG9pbnQ9R3IuUklHSFRfVE9QO2JyZWFrO2Nhc2UiYm90dG9tLWxl'@; put 'ZnQiOmRlZmF1bHQ6dGhpcy5hbmNob3JQb2ludD1Hci5CT1RUT01fTEVGVCx0aGlzLnBvcG92ZXJQb2ludD1Hci5MRUZUX1RPUDticmVhaztjYXNlInJpZ2h0LXRvcCI6dGhpcy5hbmNob3JQb2ludD1Hci5SSUdIVF9UT1AsdGhpcy5wb3BvdmVyUG9pbnQ9R3IuTEVGVF9UT1A7YnJlYWs7Y2Fz'@; put 'ZSJyaWdodC1ib3R0b20iOnRoaXMuYW5jaG9yUG9pbnQ9R3IuUklHSFRfQk9UVE9NLHRoaXMucG9wb3ZlclBvaW50PUdyLkxFRlRfQk9UVE9NO2JyZWFrO2Nhc2UibGVmdC10b3AiOnRoaXMuYW5jaG9yUG9pbnQ9R3IuTEVGVF9UT1AsdGhpcy5wb3BvdmVyUG9pbnQ9R3IuUklHSFRfVE9QO2Jy'@; put 'ZWFrO2Nhc2UibGVmdC1ib3R0b20iOnRoaXMuYW5jaG9yUG9pbnQ9R3IuTEVGVF9CT1RUT00sdGhpcy5wb3BvdmVyUG9pbnQ9R3IuUklHSFRfQk9UVE9NfX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmZvY3VzSGFuZGxlci5jb250YWluZXI9dGhpcy5lbC5uYXRpdmVFbGVtZW50LHRoaXMu'@; put 'aXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9PnRoaXMuZm9jdXNIYW5kbGVyLmFkZENoaWxkcmVuKHRoaXMuaXRlbXMudG9BcnJheSgpKSksdGhpcy5pdGVtcy5ub3RpZnlPbkNoYW5nZXMoKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5mb2N1c0hhbmRsZXIucmVz'@; put 'ZXRDaGlsZHJlbigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChFYSksdHQoTDgsOCksdHQoYywxMiksdHQoX0gpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRyb3Bkb3duLW1lbnUiXV0sY29udGVudFF1ZXJp'@; put 'ZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmSW8oaCxTRSw0KSwyJmEpe2xldCBmO2FpKGY9bGkoKSkmJihkLml0ZW1zPWYpfX0saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJihUcigicm9sZSIsIm1lbnUiKSxkcigiZHJvcGRvd24tbWVudSIsITApKX0saW5w'@; put 'dXRzOntwb3NpdGlvbjpbImNsclBvc2l0aW9uIiwicG9zaXRpb24iXX0sZmVhdHVyZXM6W2VvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSgpLGtyKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksbGc9KCgp'@; put 'PT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLnRvZ2dsZVNlcnZpY2U9ZCx0aGlzLmlzUm9vdExldmVsVG9nZ2xlPSEwLGEucGFyZW50JiYodGhpcy5pc1Jvb3RMZXZlbFRvZ2dsZT0hMSksZi50cmlnZ2VyPWgubmF0aXZlRWxlbWVudH1nZXQgYWN0aXZlKCl7cmV0dXJuIHRo'@; put 'aXMudG9nZ2xlU2VydmljZS5vcGVufW9uRHJvcGRvd25UcmlnZ2VyQ2xpY2soYSl7dGhpcy50b2dnbGVTZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudChhKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmYpLHR0KEtzKSx0dChOaSksdHQoX0gpKX0s'@; put 'Yy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIl0sWyIiLCJjbHJEcm9wZG93blRvZ2dsZSIsIiJdXSxob3N0VmFyczoxMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJjbGljayIsZnVuY3Rpb24oZil7cmV0dXJu'@; put 'IGQub25Ecm9wZG93blRyaWdnZXJDbGljayhmKX0pLDImYSYmKFRyKCJhcmlhLWhhc3BvcHVwIiwibWVudSIpKCJhcmlhLWV4cGFuZGVkIixkLmFjdGl2ZSksZHIoImRyb3Bkb3duLXRvZ2dsZSIsZC5pc1Jvb3RMZXZlbFRvZ2dsZSkoImRyb3Bkb3duLWl0ZW0iLCFkLmlzUm9vdExldmVsVG9n'@; put 'Z2xlKSgiZXhwYW5kYWJsZSIsIWQuaXNSb290TGV2ZWxUb2dnbGUpKCJhY3RpdmUiLGQuYWN0aXZlKSl9fSksY30pKCkseUg9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1'@; put 'MDI3NWluaj1taSh7aW1wb3J0czpbW29vXSxzZCxzYV19KSxjfSkoKTtjb25zdCBqd2U9WyJpbmZvIiwid2FybmluZyIsImRhbmdlciIsInN1Y2Nlc3MiXTtsZXQgd0g9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmNvbW1vblN0cmluZ3M9YSx0aGlzLmRlZmF1bHRJY29uU2hh'@; put 'cGU9ImluZm8tY2lyY2xlIix0aGlzLl9hbGVydEljb25TaGFwZT0iIix0aGlzLl9hbGVydFR5cGU9ImluZm8ifWdldCBhbGVydFR5cGUoKXtyZXR1cm4gdGhpcy5fYWxlcnRUeXBlfXNldCBhbGVydFR5cGUoYSl7andlLmluZGV4T2YoYSk+LTEmJih0aGlzLl9hbGVydFR5cGU9YSl9Z2V0IGFs'@; put 'ZXJ0SWNvblNoYXBlKCl7cmV0dXJuIiI9PT10aGlzLl9hbGVydEljb25TaGFwZT90aGlzLmljb25JbmZvRnJvbVR5cGUodGhpcy5fYWxlcnRUeXBlKS5zaGFwZTp0aGlzLl9hbGVydEljb25TaGFwZX1zZXQgYWxlcnRJY29uU2hhcGUoYSl7YT9hIT09dGhpcy5fYWxlcnRJY29uU2hhcGUmJih0'@; put 'aGlzLl9hbGVydEljb25TaGFwZT1hKTp0aGlzLl9hbGVydEljb25TaGFwZT0iIn1nZXQgYWxlcnRJY29uVGl0bGUoKXtyZXR1cm4gdGhpcy5pY29uSW5mb0Zyb21UeXBlKHRoaXMuX2FsZXJ0VHlwZSkudGl0bGV9aWNvbkluZm9Gcm9tVHlwZShhKXtjb25zdCBkPXtzaGFwZToiIixjc3NDbGFz'@; put 'czoiIix0aXRsZToiIn07c3dpdGNoKGEpe2Nhc2Uid2FybmluZyI6ZC5zaGFwZT0iZXhjbGFtYXRpb24tdHJpYW5nbGUiLGQuY3NzQ2xhc3M9ImFsZXJ0LXdhcm5pbmciLGQudGl0bGU9dGhpcy5jb21tb25TdHJpbmdzLmtleXMud2FybmluZzticmVhaztjYXNlImRhbmdlciI6ZC5zaGFwZT0i'@; put 'ZXhjbGFtYXRpb24tY2lyY2xlIixkLmNzc0NsYXNzPSJhbGVydC1kYW5nZXIiLGQudGl0bGU9dGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGFuZ2VyO2JyZWFrO2Nhc2Uic3VjY2VzcyI6ZC5zaGFwZT0iY2hlY2stY2lyY2xlIixkLmNzc0NsYXNzPSJhbGVydC1zdWNjZXNzIixkLnRpdGxlPXRo'@; put 'aXMuY29tbW9uU3RyaW5ncy5rZXlzLnN1Y2Nlc3M7YnJlYWs7ZGVmYXVsdDpkLnNoYXBlPXRoaXMuZGVmYXVsdEljb25TaGFwZSxkLmNzc0NsYXNzPSJhbGVydC1pbmZvIixkLnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmluZm99cmV0dXJuIGR9fXJldHVybiBjLlx1MDI3NWZhYz1m'@; put 'dW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKEVzKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksVkU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2NoYW5nZT1uZXcgYmV9Z2V0IGNoYW5nZXMoKXtyZXR1cm4gdGhp'@; put 'cy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoYSl7YSE9PXRoaXMuX2N1cnJlbnQmJih0aGlzLl9jdXJyZW50PWEsdGhpcy5fY2hhbmdlLm5leHQoYSkpfWdldCBhY3RpdmVBbGVydHMoKXtyZXR1cm4gdGhpcy5h'@; put 'bGxBbGVydHMmJnRoaXMuYWxsQWxlcnRzLmZpbHRlcihhPT4hYS5fY2xvc2VkKX1nZXQgY3VycmVudEFsZXJ0KCl7cmV0dXJuIHRoaXMuYWN0aXZlQWxlcnRzJiZ0aGlzLmFjdGl2ZUFsZXJ0c1t0aGlzLmN1cnJlbnRdfXNldCBjdXJyZW50QWxlcnQoYSl7dGhpcy5jdXJyZW50PXRoaXMuYWN0'@; put 'aXZlQWxlcnRzLmluZGV4T2YoYSl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuYWN0aXZlQWxlcnRzJiZ0aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGh8fDB9bWFuYWdlKGEpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuYWxsQWxlcnRzPWEs'@; put 'dGhpcy5jdXJyZW50PSJudW1iZXIiPT10eXBlb2YgdGhpcy5fY3VycmVudD90aGlzLl9jdXJyZW50OjAsdGhpcy5fY2hhbmdlLm5leHQodGhpcy5jdXJyZW50KSx0aGlzLnN1YnNjcmlwdGlvbj10aGlzLmFsbEFsZXJ0cy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuY3VycmVudD49dGhp'@; put 'cy5hbGxBbGVydHMubGVuZ3RoJiYodGhpcy5jdXJyZW50PU1hdGgubWF4KDAsdGhpcy5hbGxBbGVydHMubGVuZ3RoLTEpKX0pfW5leHQoKXt0aGlzLl9jdXJyZW50PXRoaXMuY3VycmVudD09PXRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aC0xPzA6dGhpcy5jdXJyZW50KzEsdGhpcy5fY2hhbmdl'@; put 'Lm5leHQodGhpcy5fY3VycmVudCl9cHJldmlvdXMoKXswIT09dGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoJiYodGhpcy5fY3VycmVudD0wPT09dGhpcy5jdXJyZW50P3RoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aC0xOnRoaXMuY3VycmVudC0xLHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJl'@; put 'bnQpKX1vcGVuKCl7MCE9PXRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCYmKHRoaXMuY3VycmVudEFsZXJ0fHwodGhpcy5fY3VycmVudD0wKSx0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSl9Y2xvc2UoYSl7MCE9PXRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCYmKGEmJih0aGlzLl9j'@; put 'dXJyZW50PU1hdGgubWF4KDAsdGhpcy5jdXJyZW50LTEpKSx0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSl9ZGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0'@; put 'dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxIYj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuaWNvblNlcnZpY2U9YSx0aGlzLmNkcj1kLHRoaXMubXVsdGlBbGVydFNlcnZpY2U9aCx0aGlz'@; put 'LmNvbW1vblN0cmluZ3M9Zix0aGlzLmlzU21hbGw9ITEsdGhpcy5jbG9zYWJsZT0hMCx0aGlzLmlzQXBwTGV2ZWw9ITEsdGhpcy5jbHJDbG9zZUJ1dHRvbkFyaWFMYWJlbD10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5hbGVydENsb3NlQnV0dG9uQXJpYUxhYmVsLHRoaXMuX2Nsb3NlZENoYW5n'@; put 'ZWQ9bmV3IEVyKCExKSx0aGlzLl9jbG9zZWQ9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdfWdldCBhbGVydFR5cGUoKXtyZXR1cm4gdGhpcy5pY29uU2VydmljZS5hbGVydFR5cGV9c2V0IGFsZXJ0VHlwZShhKXt0aGlzLmljb25TZXJ2aWNlLmFsZXJ0VHlwZT1hfXNldCBhbGVydEljb25TaGFw'@; put 'ZShhKXt0aGlzLmljb25TZXJ2aWNlLmFsZXJ0SWNvblNoYXBlPWF9c2V0IGNsb3NlZChhKXthJiYhdGhpcy5fY2xvc2VkP3RoaXMuY2xvc2UoKTohYSYmdGhpcy5fY2xvc2VkJiZ0aGlzLm9wZW4oKX1nZXQgYWxlcnRDbGFzcygpe3JldHVybiB0aGlzLmljb25TZXJ2aWNlLmljb25JbmZvRnJv'@; put 'bVR5cGUodGhpcy5pY29uU2VydmljZS5hbGVydFR5cGUpLmNzc0NsYXNzfWdldCBoaWRkZW4oKXtyZXR1cm4gdGhpcy5faGlkZGVufXNldCBoaWRkZW4oYSl7YSE9PXRoaXMuX2hpZGRlbiYmKHRoaXMuX2hpZGRlbj1hLHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSl9bmdPbkluaXQoKXt0aGlz'@; put 'Lm11bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5oaWRkZW49dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQhPT10aGlzfSkpfW5nT25EZXN0cm95KCl7dGhp'@; put 'cy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1vcGVuKCl7dGhpcy5fY2xvc2VkPSExLHRoaXMubXVsdGlBbGVydFNlcnZpY2UmJnRoaXMubXVsdGlBbGVydFNlcnZpY2Uub3BlbigpLHRoaXMuX2Nsb3NlZENoYW5nZWQuZW1pdCghMSl9Y2xvc2UoKXtpZighdGhp'@; put 'cy5jbG9zYWJsZSlyZXR1cm47Y29uc3QgYT10aGlzLm11bHRpQWxlcnRTZXJ2aWNlPy5jdXJyZW50QWxlcnQ9PT10aGlzO3RoaXMuX2Nsb3NlZD0hMCx0aGlzLm11bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNsb3NlKGEpLHRoaXMuX2Nsb3NlZENoYW5nZWQuZW1p'@; put 'dCghMCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KHdIKSx0dChVYSksdHQoVkUsOCksdHQoRXMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWFsZXJ0Il1dLGlucHV0czp7aXNTbWFsbDpbImNsckFsZXJ0U2l6'@; put 'ZVNtYWxsIiwiaXNTbWFsbCJdLGNsb3NhYmxlOlsiY2xyQWxlcnRDbG9zYWJsZSIsImNsb3NhYmxlIl0saXNBcHBMZXZlbDpbImNsckFsZXJ0QXBwTGV2ZWwiLCJpc0FwcExldmVsIl0sY2xyQ2xvc2VCdXR0b25BcmlhTGFiZWw6ImNsckNsb3NlQnV0dG9uQXJpYUxhYmVsIixhbGVydFR5cGU6'@; put 'WyJjbHJBbGVydFR5cGUiLCJhbGVydFR5cGUiXSxhbGVydEljb25TaGFwZTpbImNsckFsZXJ0SWNvbiIsImFsZXJ0SWNvblNoYXBlIl0sY2xvc2VkOlsiY2xyQWxlcnRDbG9zZWQiLCJjbG9zZWQiXX0sb3V0cHV0czp7X2Nsb3NlZENoYW5nZWQ6ImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIn0sZmVh'@; put 'dHVyZXM6W3RpKFt3SF0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbImNsYXNzIiwiYWxlcnQiLDMsIm5nQ2xhc3MiLCJhbGVydC1oaWRkZW4iLCJhbGVydC1zbSIsImFsZXJ0LWFwcC1sZXZlbCIsNCwibmdJZiJdLFsxLCJhbGVydCIsMywibmdDbGFz'@; put 'cyJdLFsxLCJhbGVydC1pdGVtcyJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiY2xvc2UiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZh'@; put 'JiYoQWkoKSxKZSgwLFhfZSw0LDgsImRpdiIsMCkpLDImYSYmUmUoIm5nSWYiLCFkLl9jbG9zZWQpfSxkZXBlbmRlbmNpZXM6W1ppLGRjLHFzXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxjfSkoKSxQUT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEp'@; put 'e3RoaXMuaWNvblNlcnZpY2U9YX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQod0gpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWFsZXJ0LWl0ZW0iXV0saG9zdEF0dHJzOlsxLCJhbGVydC1pdGVtIl0sbmdDb250'@; put 'ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWzEsImFsZXJ0LWljb24td3JhcHBlciJdLFsicm9sZSIsImltZyIsMSwiYWxlcnQtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksbWUoMCwiZGl2IiwwKSxxdCgxLCJjZHMtaWNvbiIsMSkseWUo'@; put 'KSxrcigyKSksMiZhJiYoQ2UoMSksVHIoInNoYXBlIixkLmljb25TZXJ2aWNlLmFsZXJ0SWNvblNoYXBlKSgiYXJpYS1sYWJlbCIsZC5pY29uU2VydmljZS5hbGVydEljb25UaXRsZSkpfSxkZXBlbmRlbmNpZXM6W3FzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxOYj0oKCk9PntjbGFzcyBj'@; put 'e31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiw4LCJhbGVydC10ZXh0Il1dfSksY30pKCksRlE9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMubXVsdGlBbGVydFNl'@; put 'cnZpY2U9YSx0aGlzLmNvbW1vblN0cmluZ3M9ZCx0aGlzLmN1cnJlbnRBbGVydENoYW5nZT1uZXcgRXIoITEpLHRoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2U9bmV3IEVyfWdldCBjdXJyZW50QWxlcnQoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnR9c2V0'@; put 'IGN1cnJlbnRBbGVydChhKXthJiYodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ9YSl9Z2V0IGN1cnJlbnRBbGVydEluZGV4KCl7cmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudH1zZXQgY3VycmVudEFsZXJ0SW5kZXgoYSl7dGhpcy5tdWx0aUFsZXJ0U2Vy'@; put 'dmljZS5jdXJyZW50PWF9Z2V0IHByZXZpb3VzQWxlcnRBcmlhTGFiZWwoKXtjb25zdCBhPXRoaXMuY3VycmVudEFsZXJ0SW5kZXgrMTtyZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmFsZXJ0UHJldmlvdXNBbGVydEFyaWFMYWJlbCx7Q1VS'@; put 'UkVOVDooMT09PWE/dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jb3VudDphLTEpLnRvU3RyaW5nKCksQ09VTlQ6dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jb3VudC50b1N0cmluZygpfSl9Z2V0IG5leHRBbGVydEFyaWFMYWJlbCgpe2NvbnN0IGE9dGhpcy5jdXJyZW50QWxlcnRJbmRleCsxO3Jl'@; put 'dHVybiB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuYWxlcnROZXh0QWxlcnRBcmlhTGFiZWwse0NVUlJFTlQ6KGE9PT10aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNvdW50PzE6YSsxKS50b1N0cmluZygpLENPVU5UOnRoaXMubXVsdGlBbGVydFNlcnZp'@; put 'Y2UuY291bnQudG9TdHJpbmcoKX0pfW5nT25Jbml0KCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZUNoYW5nZXM9dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jaGFuZ2VzLnN1YnNjcmliZShhPT57dGhpcy5jdXJyZW50QWxlcnRJbmRleENoYW5nZS5lbWl0KGEpLHRoaXMuY3VycmVudEFsZXJ0Q2hh'@; put 'bmdlLmVtaXQodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5hY3RpdmVBbGVydHNbYV0pfSl9bmdPbkRlc3Ryb3koKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlQ2hhbmdlcy51bnN1YnNjcmliZSgpfXBhZ2VVcCgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UubmV4dCgpfXBhZ2VEb3duKCl7dGhpcy5t'@; put 'dWx0aUFsZXJ0U2VydmljZS5wcmV2aW91cygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChWRSksdHQoRXMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWFsZXJ0cy1wYWdlciJdXSxob3N0VmFyczoyLGhvc3RC'@; put 'aW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImFsZXJ0cy1wYWdlciIsITApfSxpbnB1dHM6e2N1cnJlbnRBbGVydDpbImNsckN1cnJlbnRBbGVydCIsImN1cnJlbnRBbGVydCJdLGN1cnJlbnRBbGVydEluZGV4OlsiY2xyQ3VycmVudEFsZXJ0SW5kZXgiLCJjdXJyZW50QWxlcnRJbmRl'@; put 'eCJdfSxvdXRwdXRzOntjdXJyZW50QWxlcnRDaGFuZ2U6ImNsckN1cnJlbnRBbGVydENoYW5nZSIsY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2U6ImNsckN1cnJlbnRBbGVydEluZGV4Q2hhbmdlIn0sZGVjbHM6OSx2YXJzOjQsY29uc3RzOltbMSwiYWxlcnRzLXBhZ2VyLWNvbnRyb2wiXSxbMSwi'@; put 'YWxlcnRzLXBhZ2UtZG93biJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYWxlcnRzLXBhZ2VyLWJ1dHRvbiIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0sWzEsImFsZXJ0cy1wYWdlci10ZXh0Il0sWzEsImFsZXJ0cy1wYWdlLXVwIl0sWyJzaGFwZSIsImFu'@; put 'Z2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiYnV0dG9uIiwyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucGFnZURvd24oKX0pLHF0KDMsImNkcy1pY29uIiwzKSx5ZSgpKCks'@; put 'bWUoNCwiZGl2Iiw0KSxOZSg1KSx5ZSgpLG1lKDYsImRpdiIsNSkoNywiYnV0dG9uIiwyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucGFnZVVwKCl9KSxxdCg4LCJjZHMtaWNvbiIsNikseWUoKSgpKCkpLDImYSYmKENlKDIpLFRyKCJhcmlhLWxhYmVsIixkLnByZXZpb3VzQWxl'@; put 'cnRBcmlhTGFiZWwpLENlKDMpLHpjKCIiLGQubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudCsxLCIgLyAiLGQubXVsdGlBbGVydFNlcnZpY2UuY291bnQsIiIpLENlKDIpLFRyKCJhcmlhLWxhYmVsIixkLm5leHRBbGVydEFyaWFMYWJlbCkpfSxkZXBlbmRlbmNpZXM6W3FzXSxlbmNhcHN1bGF0'@; put 'aW9uOjJ9KSxjfSkoKSxIUT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMubXVsdGlBbGVydFNlcnZpY2U9YSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZT1uZXcgRXIoITEpLHRoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2U9bmV3IEVyKCExKSx0aGlzLnN1YnNjcmlwdGlvbnM9'@; put 'W119c2V0IGFsbEFsZXJ0cyhhKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLm1hbmFnZShhKX1zZXQgX2lucHV0Q3VycmVudEluZGV4KGEpe051bWJlci5pc0ludGVnZXIoYSkmJmE+PTAmJih0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnQ9YSl9Z2V0IGN1cnJlbnRBbGVydEluZGV4KCl7'@; put 'cmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudH1zZXQgY3VycmVudEFsZXJ0SW5kZXgoYSl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50PWF9Z2V0IGN1cnJlbnRBbGVydCgpe3JldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydH1zZXQgY3Vy'@; put 'cmVudEFsZXJ0KGEpe2EmJih0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydD1hKX1nZXQgYWxlcnRzKCl7cmV0dXJuIHRoaXMuYWxsQWxlcnRzLmZpbHRlcihhPT4hMT09PWEuaGlkZGVuKX1nZXQgY3VycmVudEFsZXJ0VHlwZSgpe3JldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2'@; put 'aWNlLmN1cnJlbnRBbGVydD90aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydC5hbGVydFR5cGU6IiJ9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jaGFuZ2VzLnN1YnNjcmliZShhPT57dGhpcy5jdXJy'@; put 'ZW50QWxlcnRJbmRleENoYW5nZS5uZXh0KGEpLHRoaXMuY3VycmVudEFsZXJ0Q2hhbmdlLm5leHQodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKSx0aGlzLm11'@; put 'bHRpQWxlcnRTZXJ2aWNlLmRlc3Ryb3koKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVkUpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWFsZXJ0cyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7'@; put 'aWYoMSZhJiZJbyhoLEhiLDQpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQuYWxsQWxlcnRzPWYpfX0saG9zdFZhcnM6MTAsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiYWxlcnRzIiwhMCkoImFsZXJ0LWRhbmdlciIsImRhbmdlciI9PWQuY3VycmVudEFsZXJ0VHlwZSko'@; put 'ImFsZXJ0LWluZm8iLCJpbmZvIj09ZC5jdXJyZW50QWxlcnRUeXBlKSgiYWxlcnQtc3VjY2VzcyIsInN1Y2Nlc3MiPT1kLmN1cnJlbnRBbGVydFR5cGUpKCJhbGVydC13YXJuaW5nIiwid2FybmluZyI9PWQuY3VycmVudEFsZXJ0VHlwZSl9LGlucHV0czp7X2lucHV0Q3VycmVudEluZGV4Olsi'@; put 'Y2xyQ3VycmVudEFsZXJ0SW5kZXgiLCJfaW5wdXRDdXJyZW50SW5kZXgiXSxjdXJyZW50QWxlcnQ6WyJjbHJDdXJyZW50QWxlcnQiLCJjdXJyZW50QWxlcnQiXX0sb3V0cHV0czp7Y3VycmVudEFsZXJ0Q2hhbmdlOiJjbHJDdXJyZW50QWxlcnRDaGFuZ2UiLGN1cnJlbnRBbGVydEluZGV4Q2hh'@; put 'bmdlOiJjbHJDdXJyZW50QWxlcnRJbmRleENoYW5nZSJ9LGZlYXR1cmVzOlt0aShbVkVdKV0sbmdDb250ZW50U2VsZWN0b3JzOmViZSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1szLCJjbHJDdXJyZW50QWxlcnRJbmRleCIsNCwibmdJZiJdLFszLCJjbHJDdXJyZW50QWxlcnRJbmRleCJdXSx0'@; put 'ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKFFfZSksSmUoMCxKX2UsMSwxLCJjbHItYWxlcnRzLXBhZ2VyIiwwKSxrcigxKSksMiZhJiZSZSgibmdJZiIsZC5tdWx0aUFsZXJ0U2VydmljZS5jb3VudD4xKX0sZGVwZW5kZW5jaWVzOltGUSxaaV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNP'@; put 'TVAlXXtkaXNwbGF5OmJsb2NrfSJdfSksY30pKCksTlE9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKHMxLFJLLG8xLGJtZSxuYil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSks'@; put 'Yy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyxzYSx5SF1dfSksY30pKCksendlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W05R'@; put 'XX0pLGN9KSgpLFhzPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLk5BVl9MRVZFTF8xPTEsYy5OQVZfTEVWRUxfMj0yLGMuTkFWX0NMT1NFX0FMTD0iTkFWX0NMT1NFX0FMTCIsYy5OQVZfT1BFTj0iTkFWX09QRU4iLGMuTkFWX0NMT1NFPSJOQVZfQ0xPU0UiLGMuTkFWX1RPR0dMRT0iTkFWX1RP'@; put 'R0dMRSIsYy5OQVZfQ0xBU1NfSEFNQlVSR0VSX01FTlU9Im9wZW4taGFtYnVyZ2VyLW1lbnUiLGMuTkFWX0NMQVNTX09WRVJGTE9XX01FTlU9Im9wZW4tb3ZlcmZsb3ctbWVudSIsYy5OQVZfQ0xBU1NfVFJJR0dFUl8xPSJoZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIiLGMuTkFWX0NMQVNTX1RS'@; put 'SUdHRVJfMj0iaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIiLGMuTkFWX0NMQVNTX0xFVkVMXzE9ImNsci1uYXYtbGV2ZWwtMSIsYy5OQVZfQ0xBU1NfTEVWRUxfMj0iY2xyLW5hdi1sZXZlbC0yIixjfSkoKTtjbGFzcyBWUXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuX2NvbnRyb2xDb2RlPWwsdGhp'@; put 'cy5fbmF2TGV2ZWw9YX1nZXQgY29udHJvbENvZGUoKXtyZXR1cm4gdGhpcy5fY29udHJvbENvZGV9Z2V0IG5hdkxldmVsKCl7cmV0dXJuIHRoaXMuX25hdkxldmVsfX1sZXQgQkU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVzcG9uc2l2ZU5hdkxpc3Q9W10sdGhpcy5yZWdp'@; put 'c3Rlck5hdlN1YmplY3Q9bmV3IHF4LHRoaXMuY29udHJvbE5hdlN1YmplY3Q9bmV3IGJlLHRoaXMuY2xvc2VBbGxOYXZzKCl9Z2V0IHJlZ2lzdGVyZWROYXZzKCl7cmV0dXJuIHRoaXMucmVnaXN0ZXJOYXZTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpfWdldCBuYXZDb250cm9sKCl7cmV0dXJuIHRo'@; put 'aXMuY29udHJvbE5hdlN1YmplY3QuYXNPYnNlcnZhYmxlKCl9cmVnaXN0ZXJOYXYoYSl7IWF8fHRoaXMuaXNOYXZSZWdpc3RlcmVkKGEpfHwodGhpcy5yZXNwb25zaXZlTmF2TGlzdC5wdXNoKGEpLHRoaXMucmVnaXN0ZXJOYXZTdWJqZWN0Lm5leHQodGhpcy5yZXNwb25zaXZlTmF2TGlzdCkp'@; put 'fWlzTmF2UmVnaXN0ZXJlZChhKXtyZXR1cm4gdGhpcy5yZXNwb25zaXZlTmF2TGlzdC5pbmRleE9mKGEpPi0xJiYoY29uc29sZS5lcnJvcigiTXVsdGlwbGUgY2xyLW5hdi1sZXZlbCAiK2ErIiBhdHRyaWJ1dGVzIGZvdW5kLiBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgb25seSBvbmUgZXhpc3Rz'@; put 'IiksITApfXVucmVnaXN0ZXJOYXYoYSl7Y29uc3QgZD10aGlzLnJlc3BvbnNpdmVOYXZMaXN0LmluZGV4T2YoYSk7ZD4tMSYmKHRoaXMucmVzcG9uc2l2ZU5hdkxpc3Quc3BsaWNlKGQsMSksdGhpcy5yZWdpc3Rlck5hdlN1YmplY3QubmV4dCh0aGlzLnJlc3BvbnNpdmVOYXZMaXN0KSl9c2Vu'@; put 'ZENvbnRyb2xNZXNzYWdlKGEsZCl7Y29uc3QgaD1uZXcgVlEoYSxkKTt0aGlzLmNvbnRyb2xOYXZTdWJqZWN0Lm5leHQoaCl9Y2xvc2VBbGxOYXZzKCl7Y29uc3QgYT1uZXcgVlEoWHMuTkFWX0NMT1NFX0FMTCwtOTk5KTt0aGlzLmNvbnRyb2xOYXZTdWJqZWN0Lm5leHQoYSl9fXJldHVybiBj'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpLFV3ZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0'@; put 'dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb28sc2FdXX0pLGN9KSgpO2Z1bmN0aW9uIGpRKGMpe2NvbnN0IGw9Yy5jcmVhdGVFbGVtZW50KCJzcGFuIik7cmV0dXJuIGwuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAi'@; put 'KSxsLmNsYXNzTGlzdC5hZGQoIm9mZnNjcmVlbi1mb2N1cy1yZWJvdW5kZXIiKSxsfWNsYXNzIFh3ZXtjb25zdHJ1Y3RvcihsLGEsZCxoKXt0aGlzLnJlbmRlcmVyPWwsdGhpcy5hY3RpdmU9ITEsUnMoZCkmJih0aGlzLl9kb2N1bWVudD1hLmdldChMcykpLGguZm9jdXNUcmFwSWR8fChoLmZv'@; put 'Y3VzVHJhcElkPWZ1bmN0aW9uIFBnZShjPSJfIil7cmV0dXJuYCR7Y30ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9KCkpLHRoaXMuZm9jdXNUcmFwRWxlbWVudD1ofWVuYWJsZUZvY3VzVHJhcCgpe2NvbnN0IGw9dGhpcy5mb2N1c1RyYXBFbGVtZW50LGE9bC5x'@; put 'dWVyeVNlbGVjdG9yKCJbY2RzLWZpcnN0LWZvY3VzXSIpLGQ9dGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihoRS5nZXRDdXJyZW50KCk9PT1sKXRocm93IG5ldyBFcnJvcigiRm9jdXMgdHJhcCBpcyBhbHJlYWR5IGVuYWJsZWQgZm9yIHRoaXMgaW5zdGFuY2UuIik7dGhpcy5maXJz'@; put 'dEZvY3VzRWxlbWVudD1hfHx0aGlzLmZvY3VzVHJhcEVsZW1lbnQsZnVuY3Rpb24gcXdlKGMsbCl7aWYobCYmIWwudG9wUmVib3VuZEVsZW1lbnQmJiFsLmJvdHRvbVJlYm91bmRFbGVtZW50KXtsLnRvcFJlYm91bmRFbGVtZW50PWpRKGMpLGwuYm90dG9tUmVib3VuZEVsZW1lbnQ9alEoYyk7'@; put 'Y29uc3QgYT1sLnBhcmVudEVsZW1lbnQsZD1sLm5leHRTaWJsaW5nO2EmJihhLmluc2VydEJlZm9yZShsLnRvcFJlYm91bmRFbGVtZW50LGwpLGQ/YS5pbnNlcnRCZWZvcmUobC5ib3R0b21SZWJvdW5kRWxlbWVudCxkKTphLmFwcGVuZENoaWxkKGwuYm90dG9tUmVib3VuZEVsZW1lbnQpKX19'@; put 'KHRoaXMuX2RvY3VtZW50LGwpLGZ1bmN0aW9uIEY2ZShjKXtzd2l0Y2goYy50YWdOYW1lLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaW5wdXQiOnJldHVybiJoaWRkZW4iIT09Yy5nZXRBdHRyaWJ1dGUoInR5cGUiKSYmIWMuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpJiYhYy5oYXNBdHRyaWJ1dGUo'@; put 'InJlYWRvbmx5Iik7Y2FzZSJidXR0b24iOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjpyZXR1cm4hYy5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIik7Y2FzZSJpZnJhbWUiOmNhc2UiZW1iZWQiOmNhc2Uib2JqZWN0IjpyZXR1cm4hMDtjYXNlImEiOmNhc2UiYXJlYSI6cmV0dXJuIGMuaGFz'@; put 'QXR0cmlidXRlKCJocmVmIik7Y2FzZSJhdWRpbyI6Y2FzZSJ2aWRlbyI6cmV0dXJuIGMuaGFzQXR0cmlidXRlKCJjb250cm9scyIpO2RlZmF1bHQ6cmV0dXJuIGMuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHwidHJ1ZSI9PT1jLmdldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fCJi'@; put 'dXR0b24iPT09Yy5nZXRBdHRyaWJ1dGUoInJvbGUiKSYmIWMuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfX0obCl8fGwuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksZCYmZnVuY3Rpb24gVjZlKGMpe3JldHVybiEhYyYmYyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fShkKSYmKHRoaXMu'@; put 'cHJldmlvdXNGb2N1cz1kKSxoRS5zZXRDdXJyZW50KGwpO2NvbnN0IGg9c2V0VGltZW91dCgoKT0+e3RoaXMuZmlyc3RGb2N1c0VsZW1lbnQuZm9jdXMoKSxjbGVhclRpbWVvdXQoaCl9LDEwKTt0aGlzLm9uRm9jdXNJbkV2ZW50PXRoaXMub25Gb2N1c0luLmJpbmQodGhpcyksdGhpcy51bmxp'@; put 'c3Rlbj10aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLl9kb2N1bWVudCwiZm9jdXNpbiIsdGhpcy5vbkZvY3VzSW5FdmVudCksdGhpcy5hY3RpdmU9ITB9cmVtb3ZlRm9jdXNUcmFwKCl7dGhpcy51bmxpc3RlbiYmdGhpcy51bmxpc3RlbigpLGZ1bmN0aW9uIEt3ZShjKXtpZihjKXtjb25zdCBs'@; put 'PWMucGFyZW50RWxlbWVudDtpZihsKXtjb25zdCBhPWMudG9wUmVib3VuZEVsZW1lbnQsZD1jLmJvdHRvbVJlYm91bmRFbGVtZW50O2EmJmwucmVtb3ZlQ2hpbGQoYSksZCYmbC5yZW1vdmVDaGlsZChkKX1kZWxldGUgYy50b3BSZWJvdW5kRWxlbWVudCxkZWxldGUgYy5ib3R0b21SZWJvdW5k'@; put 'RWxlbWVudH19KHRoaXMuZm9jdXNUcmFwRWxlbWVudCksdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5mb2N1c1RyYXBFbGVtZW50LCJ0YWJpbmRleCIpLGhFLmFjdGl2YXRlUHJldmlvdXNDdXJyZW50KCksdGhpcy5hY3RpdmU9ITEsdGhpcy5wcmV2aW91c0ZvY3VzJiZ0aGlz'@; put 'LnByZXZpb3VzRm9jdXMuZm9jdXMoKX1vbkZvY3VzSW4obCl7IWZ1bmN0aW9uIEd3ZShjLGwsYSl7Y29uc3QgZD1oRS5nZXRDdXJyZW50KCk9PT1sLGg9ZnVuY3Rpb24gJHdlKGMsbCl7cmV0dXJuIGM9PT1sLnRvcFJlYm91bmRFbGVtZW50fHxjPT09bC5ib3R0b21SZWJvdW5kRWxlbWVudHx8'@; put 'IShsLmNvbnRhaW5zKGMpfHxudWxsIT09bCYmbC5jb250YWlucyhjKSl9KGMsbCk7ZCYmaD8oYT1hfHxsKS5mb2N1cygpOmMuZm9jdXMoKX0obC5jb21wb3NlZFBhdGgoKVswXSx0aGlzLmZvY3VzVHJhcEVsZW1lbnQsdGhpcy5maXJzdEZvY3VzRWxlbWVudCl9fWxldCB6UT0oKCk9PntjbGFz'@; put 'cyBjIGV4dGVuZHMgWHdle2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7c3VwZXIoZixfLGEsaC5uYXRpdmVFbGVtZW50KSx0aGlzLnJlc3BvbnNpdmVOYXZTZXJ2aWNlPWQsdGhpcy5lbGVtZW50UmVmPWgsdGhpcy5faXNPcGVuPSExLFJzKGEpJiYodGhpcy5fZG9jdW1lbnQ9Xy5nZXQoTHMpKSx0'@; put 'aGlzLl9zdWJzY3JpcHRpb249ZC5uYXZDb250cm9sLnBpcGUoSWEoVD0+VC5uYXZMZXZlbD09PXRoaXMubGV2ZWwpLElhKCh7Y29udHJvbENvZGU6VH0pPT5UPT09WHMuTkFWX09QRU4mJiF0aGlzLmlzT3Blbnx8VD09PVhzLk5BVl9DTE9TRSYmdGhpcy5pc09wZW4pKS5zdWJzY3JpYmUoKHtj'@; put 'b250cm9sQ29kZTpUfSk9PntUIT09WHMuTkFWX09QRU4/dGhpcy5jbG9zZSgpOnRoaXMub3BlbigpfSksdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChkLm5hdkNvbnRyb2wucGlwZShJYSgoe2NvbnRyb2xDb2RlOlR9KT0+VD09PVhzLk5BVl9DTE9TRV9BTEwpKS5zdWJzY3JpYmUoKCk9PnRoaXMu'@; put 'Y2xvc2UoKSkpfWdldCBsZXZlbCgpe3JldHVybiB0aGlzLl9sZXZlbH1nZXQgcmVzcG9uc2l2ZU5hdkNvZGVzKCl7cmV0dXJuIFhzfWdldCBpc09wZW4oKXtyZXR1cm4gdGhpcy5faXNPcGVufW5nT25Jbml0KCl7dGhpcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbHx8KHRoaXMuY2xvc2VCdXR0b25B'@; put 'cmlhTGFiZWw9dGhpcy5fbGV2ZWw9PT1Ycy5OQVZfTEVWRUxfMT94Ri5yZXNwb25zaXZlTmF2VG9nZ2xlQ2xvc2U6eEYucmVzcG9uc2l2ZU5hdk92ZXJmbG93Q2xvc2UpLHRoaXMubGV2ZWw9PT1Ycy5OQVZfTEVWRUxfMXx8dGhpcy5sZXZlbD09PVhzLk5BVl9MRVZFTF8yPyh0aGlzLnJlc3Bv'@; put 'bnNpdmVOYXZTZXJ2aWNlLnJlZ2lzdGVyTmF2KHRoaXMubGV2ZWwpLHRoaXMuYWRkTmF2Q2xhc3ModGhpcy5sZXZlbCkpOmNvbnNvbGUuZXJyb3IoIk5hdiBMZXZlbCBjYW4gb25seSBiZSAxIG9yIDIiKX1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCBhPSgoYyxsKT0+e2NvbnN0IGE9dGhpcy5f'@; put 'ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2RzLWludGVybmFsLWNsb3NlLWJ1dHRvbiIpO3JldHVybiBhLnNldEF0dHJpYnV0ZSgiaWNvbi1zaXplIiwiMzIiKSxhLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbCksYS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLGEuc2V0'@; put 'QXR0cmlidXRlKCJ0eXBlIiwiYnV0dG9uIiksYS5zZXRBdHRyaWJ1dGUoImhpZGRlbiIsInRydWUiKSxhLmNsYXNzTmFtZT0iY2xyLW5hdi1jbG9zZSIsYX0pKDAsdGhpcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCk7dGhpcy5yZW5kZXJlci5saXN0ZW4oYSwiY2xpY2siLHRoaXMuY2xvc2UuYmlu'@; put 'ZCh0aGlzKSksdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsYSx0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkKSx0aGlzLl9kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoPDk5MiYmdGhpcy5jbG9zZSgpfW5nT25E'@; put 'ZXN0cm95KCl7dGhpcy5yZXNwb25zaXZlTmF2U2VydmljZS51bnJlZ2lzdGVyTmF2KHRoaXMubGV2ZWwpLHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfW9uUmVzaXplKGEpe2EudGFyZ2V0LmlubmVyV2lkdGg8OTkyJiZ0aGlzLmlzT3Blbj90aGlzLmNsb3NlKCk6dGhpcy5zaG93'@; put 'TmF2aWdhdGlvbigpfW9uTW91c2VDbGljayhhKXtsZXQgZD1hO2NvbnN0IGg9dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7Zm9yKDtkOyl7aWYoZD09PWgpcmV0dXJuO2lmKGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJuYXYtbGluayIpJiZ0aGlzLl9kb2N1bWVudC5ib2R5LmNsaWVudFdp'@; put 'ZHRoPDk5MilyZXR1cm4gdm9pZCB0aGlzLmNsb3NlKCk7ZD1kLnBhcmVudE5vZGV9fWFkZE5hdkNsYXNzKGEpe2NvbnN0IGQ9dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O2E9PT1Ycy5OQVZfTEVWRUxfMT9kLmFkZChYcy5OQVZfQ0xBU1NfTEVWRUxfMSk6YT09PVhz'@; put 'Lk5BVl9MRVZFTF8yJiZkLmFkZChYcy5OQVZfQ0xBU1NfTEVWRUxfMil9b3Blbigpe3RoaXMuX2lzT3Blbj0hMCx0aGlzLnNob3dOYXZpZ2F0aW9uKCksdGhpcy5lbmFibGVGb2N1c1RyYXAoKSx0aGlzLnNob3dDbG9zZUJ1dHRvbigpLHRoaXMucmVzcG9uc2l2ZU5hdlNlcnZpY2Uuc2VuZENv'@; put 'bnRyb2xNZXNzYWdlKFhzLk5BVl9PUEVOLHRoaXMubGV2ZWwpfWNsb3NlKCl7dGhpcy5faXNPcGVuPSExLHRoaXMuaGlkZU5hdmlnYXRpb24oKSx0aGlzLnJlbW92ZUZvY3VzVHJhcCgpLHRoaXMuaGlkZUNsb3NlQnV0dG9uKCksdGhpcy5yZXNwb25zaXZlTmF2U2VydmljZS5zZW5kQ29udHJv'@; put 'bE1lc3NhZ2UoWHMuTkFWX0NMT1NFLHRoaXMubGV2ZWwpfWhpZGVOYXZpZ2F0aW9uKCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxl'@; put 'bWVudFJlZi5uYXRpdmVFbGVtZW50LCJoaWRkZW4iLCJ0cnVlIil9c2hvd05hdmlnYXRpb24oKXt0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRl'@; put 'KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCJoaWRkZW4iKX1oaWRlQ2xvc2VCdXR0b24oKXt0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiYXJpYS1oaWRkZW4iLCJ0cnVlIiksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUo'@; put 'dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmNsci1uYXYtY2xvc2UiKSwiaGlkZGVuIiwidHJ1ZSIpfXNob3dDbG9zZUJ1dHRvbigpe3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0'@; put 'b3IoIi5jbHItbmF2LWNsb3NlIiksImFyaWEtaGlkZGVuIiwiZmFsc2UiKSx0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuY2xyLW5hdi1jbG9zZSIpLCJoaWRkZW4iKX19cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoR3MpLHR0KEJFKSx0dChOaSksdHQoRm8pLHR0KEVhKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsci1uYXYtbGV2ZWwiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4dCgicmVz'@; put 'aXplIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vblJlc2l6ZShmKX0sMCxtNikoImNsaWNrIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbk1vdXNlQ2xpY2soZi50YXJnZXQpfSl9LGlucHV0czp7X2xldmVsOlsiY2xyLW5hdi1sZXZlbCIsIl9sZXZlbCJdLGNsb3NlQnV0dG9uQXJpYUxhYmVsOlsi'@; put 'Y2xvc2VBcmlhTGFiZWwiLCJjbG9zZUJ1dHRvbkFyaWFMYWJlbCJdfSxmZWF0dXJlczpbZW9dfSksY30pKCksUXdlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVp'@; put 'bmo9bWkoe2ltcG9ydHM6W1tvbyxzYSx5SF1dfSksY30pKCksVVE9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbIm5nLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6'@; put 'ZnVuY3Rpb24oYSxkKXtpZigxJmEmJlJvKHphLDUpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQudGVtcGxhdGU9aC5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6RW8sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSgpLEplKDAscmJlLDEsMCwibmct'@; put 'dGVtcGxhdGUiKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGVDZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9'@; put 'KSgpLElwPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyB5OHt9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD14YShjKSkpKGR8fGMpfX0oKSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItdGFicyJd'@; put 'XSxmZWF0dXJlczpbZW9dfSksY30pKCksY2c9KCgpPT57Y2xhc3MgYyBleHRlbmRzIHc4e2NvbnN0cnVjdG9yKGEsZCxoLGYpe2lmKCFkKXRocm93IG5ldyBFcnJvcigiY2xyVGFiTGluayBhbmQgY2xyLXRhYi1jb250ZW50IHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyLXRh'@; put 'YnMiKTtzdXBlcihhLGQpLHRoaXMuaWZBY3RpdmU9Zix0aGlzLmlkPWh9Z2V0IGZsYXZvcigpe3JldHVybiB0aGlzLmlmQWN0aXZlLmN1cnJlbnQ9PT10aGlzLmlkfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChVYSksdHQoSXAsOCksdHQoeDgp'@; put 'LHR0KCQ1KSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclRhYkxpbmsiLCIiXSxbImNsci10YWItY29udGVudCJdXSxmZWF0dXJlczpbZW9dfSksY30pKCk7dmFyIHVnPWZ1bmN0aW9uKGMpe3JldHVybiBjLkhPUklaT05UQUw9Imhvcml6b250YWwiLGMuVkVS'@; put 'VElDQUw9InZlcnRpY2FsIixjfSh1Z3x8e30pO2xldCBWYj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5sYXlvdXQ9dWcuSE9SSVpPTlRBTCx0aGlzLl9jaGlsZHJlbj1bXX1nZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5fY2hpbGRyZW59Z2V0IGFjdGl2ZVRhYigpe3JldHVy'@; put 'biB0aGlzLmNoaWxkcmVuLmZpbmQoYT0+YS5hY3RpdmUpfWdldCBvdmVyZmxvd1RhYnMoKXtyZXR1cm4gdGhpcy5sYXlvdXQ9PT11Zy5WRVJUSUNBTD9bXTp0aGlzLmNoaWxkcmVuLmZpbHRlcihhPT4hMD09PWEudGFiTGluay5pbk92ZXJmbG93KX1yZWdpc3RlcihhKXt0aGlzLl9jaGlsZHJl'@; put 'bi5wdXNoKGEpfXVucmVnaXN0ZXIoYSl7Y29uc3QgZD10aGlzLmNoaWxkcmVuLmluZGV4T2YoYSk7ZD4tMSYmdGhpcy5jaGlsZHJlbi5zcGxpY2UoZCwxKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46Yyxm'@; put 'YWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksdENlPTAsTHA9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9YSx0aGlzLmlkPWQsdGhpcy50YWJzU2VydmljZT1oLHRoaXMudGFiQ29udGVudElkfHwodGhpcy50YWJDb250ZW50SWQ9ImNsci10'@; put 'YWItY29udGVudC0iK3RDZSsrKX1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9PT10aGlzLmlkfWdldCBhcmlhTGFiZWxsZWRCeSgpe3JldHVybiB0aGlzLnRhYnNTZXJ2aWNlLmNoaWxkcmVuLmZpbmQoYT0+YS50YWJDb250ZW50PT09dGhpcyk/LnRh'@; put 'Ykxpbms/LnRhYkxpbmtJZH1zZXQgdGVtcGxhdGVSZWYoYSl7dGhpcy52aWV3UmVmPXRoaXMudGFic1NlcnZpY2UudGFiQ29udGVudFZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGEpfW5nT25EZXN0cm95KCl7Y29uc3QgYT10aGlzLnRhYnNTZXJ2aWNlLnRhYkNvbnRlbnRWaWV3'@; put 'Q29udGFpbmVyLmluZGV4T2YodGhpcy52aWV3UmVmKTthPi0xJiZ0aGlzLnRhYnNTZXJ2aWNlLnRhYkNvbnRlbnRWaWV3Q29udGFpbmVyLnJlbW92ZShhKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoJDUpLHR0KHg4KSx0dChWYikpfSxjLlx1'@; put 'MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItdGFiLWNvbnRlbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZSbyhpYmUsNyksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC50ZW1wbGF0ZVJlZj1oLmZpcnN0KX19LGlucHV0czp7dGFiQ29udGVudElkOlsi'@; put 'aWQiLCJ0YWJDb250ZW50SWQiXX0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJ0YWJDb250ZW50UHJvamVjdGVkUmVmIiwiIl0sWyJyb2xlIiwidGFicGFuZWwiLDEsInRhYi1jb250ZW50IiwzLCJpZCIsImhpZGRlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlv'@; put 'bihhLGQpezEmYSYmKEFpKCksSmUoMCxvYmUsMiw2LCJuZy10ZW1wbGF0ZSIsbnVsbCwwLGtjKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLG5DZT0wO2NvbnN0IENIPW5ldyBTaSgiVEFCU19JRCIpLGlDZT17cHJvdmlkZTpDSCx1c2VGYWN0b3J5OmZ1bmN0aW9uIHJDZSgpe3JldHVybiJj'@; put 'bHItdGFicy0iK25DZSsrfX07bGV0IG9DZT0wLFJwPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQsVyl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9YSx0aGlzLmlkPWQsdGhpcy5lbD1oLHRoaXMuY2ZyPWYsdGhpcy52aWV3Q29udGFpbmVyUmVmPV8sdGhpcy50YWJzU2Vydmlj'@; put 'ZT1ULHRoaXMudGFic0lkPVcsdGhpcy50YWJMaW5rSWR8fCh0aGlzLnRhYkxpbmtJZD0iY2xyLXRhYi1saW5rLSIrb0NlKyspO2NvbnN0IGllPXRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFVRKTt0aGlzLnRlbXBsYXRlUmVmQ29udGFpbmVyPXRoaXMudmlld0NvbnRhaW5lclJl'@; put 'Zi5jcmVhdGVDb21wb25lbnQoaWUsdm9pZCAwLHZvaWQgMCxbW3RoaXMuZWwubmF0aXZlRWxlbWVudF1dKS5pbnN0YW5jZX1nZXQgaW5PdmVyZmxvdygpe3JldHVybiB0aGlzLl9pbk92ZXJmbG93JiZ0aGlzLnRhYnNTZXJ2aWNlLmxheW91dCE9PXVnLlZFUlRJQ0FMfXNldCBpbk92ZXJmbG93'@; put 'KGEpe3RoaXMuX2luT3ZlcmZsb3c9YX1nZXQgYWRkTGlua0NsYXNzZXMoKXtyZXR1cm4hdGhpcy5pbk92ZXJmbG93fWdldCBhcmlhQ29udHJvbHMoKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5jaGlsZHJlbi5maW5kKGE9PmEudGFiTGluaz09PXRoaXMpPy50YWJDb250ZW50Py50YWJDb250'@; put 'ZW50SWR9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1nZXQgdGFiaW5kZXgoKXtyZXR1cm4gdGhpcy5hY3RpdmU/MDotMX1hY3RpdmF0ZSgpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9dGhpcy5pZH19cmV0dXJuIGMuXHUw'@; put 'Mjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoJDUpLHR0KHg4KSx0dChOaSksdHQoSzApLHR0KGFzKSx0dChWYiksdHQoQ0gpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyVGFiTGluayIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwidGFi'@; put 'IiwidHlwZSIsImJ1dHRvbiJdLGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmFjdGl2YXRlKCl9KSwyJmEmJih0MSgiaWQiLGQudGFiTGlua0lkKSxUcigiYXJpYS1jb250cm9scyIsZC5hcmlhQ29udHJv'@; put 'bHMpKCJhcmlhLXNlbGVjdGVkIixkLmFjdGl2ZSkoInRhYmluZGV4IixkLnRhYmluZGV4KSxkcigiYnRuIiwhMCkoImJ0bi1saW5rIixkLmFkZExpbmtDbGFzc2VzKSgibmF2LWxpbmsiLGQuYWRkTGlua0NsYXNzZXMpKCJhY3RpdmUiLGQuYWN0aXZlKSl9LGlucHV0czp7dGFiTGlua0lkOlsi'@; put 'aWQiLCJ0YWJMaW5rSWQiXSxpbk92ZXJmbG93OlsiY2xyVGFiTGlua0luT3ZlcmZsb3ciLCJpbk92ZXJmbG93Il19fSksY30pKCksT3A9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9YSx0aGlzLmlkPWQsdGhpcy50YWJzU2VydmljZT1oLGgu'@; put 'cmVnaXN0ZXIodGhpcyl9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1uZ09uRGVzdHJveSgpe3RoaXMudGFic1NlcnZpY2UudW5yZWdpc3Rlcih0aGlzKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXco'@; put 'YXx8YykodHQoJDUpLHR0KHg4KSx0dChWYikpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItdGFiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJihJbyhoLFJwLDcpLElvKGgsTHAsNykpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQu'@; put 'dGFiTGluaz1mLmZpcnN0KSxhaShmPWxpKCkpJiYoZC50YWJDb250ZW50PWYuZmlyc3QpfX0sZmVhdHVyZXM6W3RpKFtseWVdKV0sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigwKSl9LGVuY2Fwc3VsYXRp'@; put 'b246Mn0pLGN9KSgpLFNIPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItdGFiLW92ZXJmbG93LWNvbnRlbnQiXV0saG9zdFZhcnM6Mixob3N0QmluZGlu'@; put 'Z3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJkcm9wZG93bi1tZW51IiwhMCl9LG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksa3IoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxkZz0oKCk9PntjbGFzcyBj'@; put 'e2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9YSx0aGlzLnRvZ2dsZVNlcnZpY2U9ZCx0aGlzLnRhYnNTZXJ2aWNlPWgsdGhpcy50YWJzSWQ9Zix0aGlzLmNvbW1vblN0cmluZ3M9Xyx0aGlzLnRhYkxpbmtFbGVtZW50cz1bXSx0aGlzLl9tb3VzZWRvd249ITEs'@; put 'dGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzPVtdfWdldCBsYXlvdXQoKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5sYXlvdXR9c2V0IGxheW91dChhKXtPYmplY3Qua2V5cyh1ZykubWFwKGQ9PnVnW2RdKS5pbmRleE9mKGEpPj0wJiYodGhpcy50YWJzU2Vy'@; put 'dmljZS5sYXlvdXQ9YSl9Z2V0IHRhYkxpbmtEaXJlY3RpdmVzKCl7cmV0dXJuIHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzfWdldCBhY3RpdmVUYWJJbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMudGFic1NlcnZpY2Uub3ZlcmZsb3dUYWJzLmluZGV4T2YodGhpcy50YWJzU2VydmljZS5hY3RpdmVU'@; put 'YWIpPi0xfWdldCBhY3RpdmVUYWJQb3NpdGlvbigpe3JldHVybiB0aGlzLl90YWJMaW5rRGlyZWN0aXZlcy5maW5kSW5kZXgoYT0+YS5hY3RpdmUpfWdldCBpc0N1cnJlbnRJbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMua2V5Rm9jdXMuY3VycmVudD49dGhpcy5vdmVyZmxvd1Bvc2l0aW9ufWdl'@; put 'dCBpc1ZlcnRpY2FsKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09dWcuVkVSVElDQUx9c2V0IHRhYk92ZXJmbG93RWwoYSl7dGhpcy5fdGFiT3ZlcmZsb3dFbD1hJiZhLm5hdGl2ZUVsZW1lbnQsdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJmEmJnRoaXMua2V5Rm9jdXMuZm9jdXNDdXJyZW50KCl9'@; put 'Z2V0IG92ZXJmbG93UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fdGFiTGlua0RpcmVjdGl2ZXMuZmlsdGVyKGE9PiFhLmluT3ZlcmZsb3cpLmxlbmd0aH1zZXQgdGFiQ29udGVudFZpZXdDb250YWluZXIoYSl7dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lcj1hfW5nQWZ0'@; put 'ZXJDb250ZW50SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yVGFiTGlua0NoYW5nZXMoKSksdHlwZW9mIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ+InUiJiZ0aGlzLnRhYkxpbmtEaXJlY3RpdmVzWzBdJiZ0aGlzLnRhYkxpbmtEaXJlY3RpdmVzWzBd'@; put 'LmFjdGl2YXRlKCksdGhpcy5rZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb259bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT57YS51bnN1YnNjcmliZSgpfSl9dG9nZ2xlT3ZlcmZsb3dPblBvc2l0aW9uKGEpe3RoaXMudG9nZ2xlU2Vydmlj'@; put 'ZS5vcGVuPWE+PXRoaXMub3ZlcmZsb3dQb3NpdGlvbn1yZXNldEtleUZvY3VzQ3VycmVudFRvQWN0aXZlKGEpeyF0aGlzLmtleUZvY3VzLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYS5yZWxhdGVkVGFyZ2V0KSYmdGhpcy5rZXlGb2N1cy5jdXJyZW50IT09dGhpcy5hY3RpdmVUYWJQb3NpdGlv'@; put 'biYmKHRoaXMua2V5Rm9jdXMuY3VycmVudD10aGlzLmFjdGl2ZVRhYlBvc2l0aW9uKX10b2dnbGVPdmVyZmxvd09uQ2xpY2soKXt0aGlzLmtleUZvY3VzLm1vdmVUbyh0aGlzLmlzQ3VycmVudEluT3ZlcmZsb3cmJnRoaXMudG9nZ2xlU2VydmljZS5vcGVuP3RoaXMub3ZlcmZsb3dQb3NpdGlv'@; put 'bi0xOnRoaXMub3ZlcmZsb3dQb3NpdGlvbiksdGhpcy5fbW91c2Vkb3duPSExfW9wZW5PdmVyZmxvd09uRm9jdXMoKXshdGhpcy5fbW91c2Vkb3duJiYhdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJnRoaXMua2V5Rm9jdXMubW92ZVRvKHRoaXMuYWN0aXZlVGFiUG9zaXRpb24pfWNsb3NlT25G'@; put 'b2N1c091dChhKXshdGhpcy5fdGFiT3ZlcmZsb3dFbC5jb250YWlucyhhLnJlbGF0ZWRUYXJnZXQpJiZ0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmIXRoaXMuX21vdXNlZG93biYmKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMudGFiTGlua0VsZW1lbnRzW3RoaXMuYWN0aXZlVGFi'@; put 'UG9zaXRpb25dPT09YS5yZWxhdGVkVGFyZ2V0JiYodGhpcy5rZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb24pKX1jbG9zZU9uRXNjYXBlS2V5KCl7dGhpcy5rZXlGb2N1cy5tb3ZlVG8odGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTEpfWNsb3NlT25PdXRzaWRlQ2xpY2soYSxk'@; put 'KXthLnRhcmdldD09PWR8fGQuY29udGFpbnMoYS50YXJnZXQpfHwhdGhpcy5fdGFiT3ZlcmZsb3dFbC5jb250YWlucyhhLnRhcmdldCkmJnRoaXMuaXNDdXJyZW50SW5PdmVyZmxvdyYmdGhpcy5rZXlGb2N1cy5tb3ZlVG8odGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTEpfWxpc3RlbkZvclRhYkxp'@; put 'bmtDaGFuZ2VzKCl7cmV0dXJuIHRoaXMudGFicy5jaGFuZ2VzLnBpcGUoY3AodGhpcy50YWJzLm1hcChhPT5hLnRhYkxpbmspKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5fdGFiTGlua0RpcmVjdGl2ZXM9dGhpcy50YWJzLm1hcChhPT5hLnRhYkxpbmspLHRoaXMudGFiTGlua0VsZW1lbnRzPXRo'@; put 'aXMuX3RhYkxpbmtEaXJlY3RpdmVzLm1hcChhPT5hLmVsLm5hdGl2ZUVsZW1lbnQpfSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KCQ1KSx0dChLcyksdHQoVmIpLHR0KENIKSx0dChFcykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVj'@; put 'dG9yczpbWyJjbHItdGFicyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZJbyhoLE9wLDQpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQudGFicz1mKX19LHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmKFJvKEk4LDcpLFJvKFNILDUsTmkpLFJvKHNi'@; put 'ZSw3LGFzKSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5rZXlGb2N1cz1oLmZpcnN0KSxhaShoPWxpKCkpJiYoZC50YWJPdmVyZmxvd0VsPWguZmlyc3QpLGFpKGg9bGkoKSkmJihkLnRhYkNvbnRlbnRWaWV3Q29udGFpbmVyPWguZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6'@; put 'ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJ0YWJzLXZlcnRpY2FsIixkLmlzVmVydGljYWwpfSxpbnB1dHM6e2xheW91dDpbImNsckxheW91dCIsImxheW91dCJdfSxmZWF0dXJlczpbdGkoWyQ1LEtzLFZiLGlDZV0pXSxkZWNsczo1LHZhcnM6Myxjb25zdHM6W1sicm9sZSIsInRhYmxpc3QiLCJj'@; put 'bHJEaXJlY3Rpb24iLCJib3RoIiwxLCJuYXYiLDMsImNscktleUZvY3VzIiwiY2xyRm9jdXNDaGFuZ2UiLCJmb2N1c291dCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbNCwibmdJZiJdLFsidGFiQ29udGVudFZpZXdDb250YWluZXIiLCIiXSxbInJvbGUiLCJwcmVzZW50YXRpb24iLDEsIm5h'@; put 'di1pdGVtIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInJvbGUiLCJwcmVzZW50YXRpb24iLDEsInRhYnMtb3ZlcmZsb3ciLCJib3R0b20tcmlnaHQiXSxbInJvbGUiLCJhcHBsaWNhdGlvbiIsMSwibmF2LWl0ZW0iXSxbInR5cGUiLCJidXR0b24iLCJhcmlhLWhpZGRlbiIsInRydWUiLDEs'@; put 'ImJ0biIsImJ0bi1saW5rIiwibmF2LWxpbmsiLCJkcm9wZG93bi10b2dnbGUiLDMsIm1vdXNlZG93biIsImZvY3VzIiwiY2xpY2siXSxbInRhYk92ZXJmbG93VHJpZ2dlciIsIiJdLFsic2hhcGUiLCJlbGxpcHNpcy1ob3Jpem9udGFsIiwic3RhdHVzIiwidG9nZ2xlU2VydmljZS5vcGVuID8g'@; put 'J2luZm8nIDogbnVsbCJdLFszLCJrZXlkb3duLmVzY2FwZSIsImNsaWNrIiwiZm9jdXNvdXQiLDQsIm5nSWYiXSxbMywia2V5ZG93bi5lc2NhcGUiLCJjbGljayIsImZvY3Vzb3V0Il0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiLDQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEm'@; put 'JihtZSgwLCJ1bCIsMCkseHQoImNsckZvY3VzQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC50b2dnbGVPdmVyZmxvd09uUG9zaXRpb24oZil9KSgiZm9jdXNvdXQiLGZ1bmN0aW9uKGYpe3JldHVybiBkLnJlc2V0S2V5Rm9jdXNDdXJyZW50VG9BY3RpdmUoZil9KSxKZSgxLGxiZSwyLDEs'@; put 'Im5nLWNvbnRhaW5lciIsMSksSmUoMixoYmUsNywxMCwibmctY29udGFpbmVyIiwyKSx5ZSgpLGphKDMsbnVsbCwzKSksMiZhJiYoUmUoImNscktleUZvY3VzIixkLnRhYkxpbmtFbGVtZW50cyksQ2UoMSksUmUoIm5nRm9yT2YiLGQudGFiTGlua0RpcmVjdGl2ZXMpLENlKDEpLFJlKCJuZ0lm'@; put 'IixkLnRhYnNTZXJ2aWNlLm92ZXJmbG93VGFicy5sZW5ndGg+MCkpfSxkZXBlbmRlbmNpZXM6W0k4LFNILHhzLFppLHJkLHFzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxzQ2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25zKERLKX19cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLHNkLHNhLGVDZSxCRl0sc2RdfSksY30pKCksTUg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMubmF2R3JvdXBDb3VudD0wfXJl'@; put 'Z2lzdGVyTmF2R3JvdXAoKXt0aGlzLm5hdkdyb3VwQ291bnQrK311bnJlZ2lzdGVyTmF2R3JvdXAoKXt0aGlzLm5hdkdyb3VwQ291bnQtLX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMu'@; put 'XHUwMjc1ZmFjfSksY30pKCkseEg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2ljb25zPTB9Z2V0IGhhc0ljb25zKCl7cmV0dXJuIHRoaXMuX2ljb25zPjB9cmVnaXN0ZXJJY29uKCl7dGhpcy5faWNvbnMrK311bnJlZ2lzdGVySWNvbigpe3RoaXMuX2ljb25zLS19fXJldHVy'@; put 'biBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLEVIPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9hbmltYXRlT25Db2xsYXBzZWQ9bmV3IGJlLHRoaXMu'@; put 'X2NvbGxhcHNlZENoYW5nZWQ9bmV3IGJlLHRoaXMuX2NvbGxhcHNlZD0hMSx0aGlzLl9jb2xsYXBzaWJsZT0hMX1nZXQgYW5pbWF0ZU9uQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuX2FuaW1hdGVPbkNvbGxhcHNlZC5hc09ic2VydmFibGUoKX1nZXQgY29sbGFwc2VkQ2hhbmdlZCgpe3JldHVy'@; put 'biB0aGlzLl9jb2xsYXBzZWRDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpfWdldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkfXNldCBjb2xsYXBzZWQoYSl7YT0hIWEsdGhpcy5jb2xsYXBzaWJsZSYmdGhpcy5fY29sbGFwc2VkIT09YSYmdGhpcy51cGRhdGVDb2xsYXBzZUJlaGF2'@; put 'aW9yKGEpfWdldCBjb2xsYXBzaWJsZSgpe3JldHVybiB0aGlzLl9jb2xsYXBzaWJsZX1zZXQgY29sbGFwc2libGUoYSl7dGhpcy5fY29sbGFwc2libGUhPT0oYT0hIWEpJiYoIWEmJnRoaXMuY29sbGFwc2VkJiZ0aGlzLnVwZGF0ZUNvbGxhcHNlQmVoYXZpb3IoITEpLHRoaXMuX2NvbGxhcHNp'@; put 'YmxlPWEpfXVwZGF0ZUNvbGxhcHNlQmVoYXZpb3IoYSl7dGhpcy5fYW5pbWF0ZU9uQ29sbGFwc2VkLm5leHQoYSksdGhpcy5fY29sbGFwc2VkPWEsdGhpcy5fY29sbGFwc2VkQ2hhbmdlZC5uZXh0KGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0s'@; put 'Yy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxaUT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuX25hdlNlcnZpY2U9YSx0aGlzLl9uYXZJY29uU2VydmljZT1kLHRoaXMuX25hdkdyb3VwUmVnaXN0cmF0aW9uU2Vydmlj'@; put 'ZT1oLHRoaXMuY29tbW9uU3RyaW5ncz1mLHRoaXMuX2NvbGxhcHNlZENoYW5nZWQ9bmV3IEVyKCEwKSx0aGlzLl9zdWI9dGhpcy5fbmF2U2VydmljZS5jb2xsYXBzZWRDaGFuZ2VkLnN1YnNjcmliZShfPT57dGhpcy5fY29sbGFwc2VkQ2hhbmdlZC5lbWl0KF8pfSl9Z2V0IGNvbGxhcHNpYmxl'@; put 'KCl7cmV0dXJuIHRoaXMuX25hdlNlcnZpY2UuY29sbGFwc2libGV9c2V0IGNvbGxhcHNpYmxlKGEpe3RoaXMuX25hdlNlcnZpY2UuY29sbGFwc2libGU9YX1nZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuX25hdlNlcnZpY2UuY29sbGFwc2VkfXNldCBjb2xsYXBzZWQoYSl7dGhpcy5fbmF2'@; put 'U2VydmljZS5jb2xsYXBzZWQ9YX1nZXQgaGFzTmF2R3JvdXBzKCl7cmV0dXJuIHRoaXMuX25hdkdyb3VwUmVnaXN0cmF0aW9uU2VydmljZS5uYXZHcm91cENvdW50PjB9Z2V0IGhhc0ljb25zKCl7cmV0dXJuIHRoaXMuX25hdkljb25TZXJ2aWNlLmhhc0ljb25zfWdldCBhcmlhRXhwYW5kZWQo'@; put 'KXtyZXR1cm4gdGhpcy5jb2xsYXBzaWJsZT90aGlzLmNvbGxhcHNlZD8iZmFsc2UiOiJ0cnVlIjpudWxsfW5nT25EZXN0cm95KCl7dGhpcy5fc3ViLnVuc3Vic2NyaWJlKCl9dG9nZ2xlQnlCdXR0b24oKXt0aGlzLmNvbGxhcHNlZD0hdGhpcy5jb2xsYXBzZWR9fXJldHVybiBjLlx1MDI3NWZh'@; put 'Yz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEVIKSx0dCh4SCksdHQoTUgpLHR0KEVzKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci12ZXJ0aWNhbC1uYXYiXV0saG9zdEF0dHJzOlsxLCJjbHItdmVydGljYWwtbmF2Il0saG9zdFZhcnM6Nixob3N0'@; put 'QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJpcy1jb2xsYXBzZWQiLGQuY29sbGFwc2VkKSgiaGFzLW5hdi1ncm91cHMiLGQuaGFzTmF2R3JvdXBzKSgiaGFzLWljb25zIixkLmhhc0ljb25zKX0saW5wdXRzOntjb2xsYXBzaWJsZTpbImNsclZlcnRpY2FsTmF2Q29sbGFwc2libGUi'@; put 'LCJjb2xsYXBzaWJsZSJdLGNvbGxhcHNlZDpbImNsclZlcnRpY2FsTmF2Q29sbGFwc2VkIiwiY29sbGFwc2VkIl19LG91dHB1dHM6e19jb2xsYXBzZWRDaGFuZ2VkOiJjbHJWZXJ0aWNhbE5hdkNvbGxhcHNlZENoYW5nZSJ9LGZlYXR1cmVzOlt0aShbRUgseEgsTUhdKV0sbmdDb250ZW50U2Vs'@; put 'ZWN0b3JzOkVvLGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJuYXYtdHJpZ2dlciIsMywib24tY29sbGFwc2UiLCJjbGljayIsNCwibmdJZiJdLFsxLCJuYXYtY29udGVudCJdLFsiY2xhc3MiLCJuYXYtYnRuIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwi'@; put 'dGFiaW5kZXgiLCItMSIsMywiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsIm5hdi10cmlnZ2VyIiwzLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZS1kb3VibGUiLDEsIm5hdi10cmlnZ2VyLWljb24iXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsInRhYmluZGV4IiwiLTEiLDEs'@; put 'Im5hdi1idG4iLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxKZSgwLGZiZSwyLDYsImJ1dHRvbiIsMCksbWUoMSwiZGl2IiwxKSxrcigyKSxKZSgzLHBiZSwxLDEsImJ1dHRvbiIsMikseWUoKSksMiZhJiYoUmUoIm5nSWYiLGQuY29sbGFwc2libGUpLENl'@; put 'KDMpLFJlKCJuZ0lmIixkLmNvbGxhcHNpYmxlJiZkLmNvbGxhcHNlZCkpfSxkZXBlbmRlbmNpZXM6W1ppLHFzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxrSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fZXhwYW5kQ2hhbmdlPW5ldyBiZX1nZXQgZXhwYW5kQ2hhbmdlKCl7'@; put 'cmV0dXJuIHRoaXMuX2V4cGFuZENoYW5nZS5hc09ic2VydmFibGUoKX1leHBhbmQoKXt0aGlzLl9leHBhbmRDaGFuZ2UubmV4dCghMCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1'@; put 'MDI3NWZhY30pLGN9KSgpLFlRPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuZGVzdHJveSQ9bmV3IGJlLGgmJm4yKGEubmF0aXZlRWxlbWVudCwiY2xpY2siKS5waXBlKGFoKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCk9PntoLmV4cGFuZCgpLGQubWFya0ZvckNo'@; put 'ZWNrKCl9KX1uZ09uRGVzdHJveSgpe3RoaXMuZGVzdHJveSQubmV4dCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChOaSksdHQoVWEpLHR0KGtILDgpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyVmVydGlj'@; put 'YWxOYXZMaW5rIiwiIl1dLGhvc3RBdHRyczpbMSwibmF2LWxpbmsiXSxhdHRyczp2YmUsbmdDb250ZW50U2VsZWN0b3JzOmJiZSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1sxLCJuYXYtdGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKF9iZSksa3IoMCksbWUoMSwic3Bh'@; put 'biIsMCksa3IoMiwxKSx5ZSgpKX0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksdUNlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtWcy5hZGRJY29ucyhoOCxMSyl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlw'@; put 'ZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyxzYSxzZCxxNV0sc2Qsc2EscTVdfSksY30pKCksZENlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVp'@; put 'bmo9bWkoe2ltcG9ydHM6W1V3ZSxRd2Usc0NlLHVDZV19KSxjfSkoKSxXUT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuX2RvY3VtZW50PWF9c3RvcFNjcm9sbGluZygpe3RoaXMuX2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgibm8tc2Nyb2xsaW5nIil9cmVzdW1lU2Ny'@; put 'b2xsaW5nKCl7dGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoIm5vLXNjcm9sbGluZyIpJiZ0aGlzLl9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoIm5vLXNjcm9sbGluZyIpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KShhcihMcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLG91PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9zY3JvbGxpbmdTZXJ2aWNlPWEsdGhpcy5jb21tb25TdHJpbmdzPWQsdGhpcy5tb2RhbElkPUljKCksdGhp'@; put 'cy5fb3Blbj0hMSx0aGlzLl9vcGVuQ2hhbmdlZD1uZXcgRXIoITEpLHRoaXMuY2xvc2FibGU9ITAsdGhpcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbD10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSx0aGlzLnN0YXRpY0JhY2tkcm9wPSEwLHRoaXMuc2tpcEFuaW1hdGlvbj0iZmFsc2UiLHRo'@; put 'aXMuYnlwYXNzU2Nyb2xsU2VydmljZT0hMSx0aGlzLnN0b3BDbG9zZT0hMSx0aGlzLmFsdENsb3NlPW5ldyBFcighMSksdGhpcy5sYWJlbGxlZEJ5PXRoaXMubW9kYWxJZH1uZ09uQ2hhbmdlcyhhKXshdGhpcy5ieXBhc3NTY3JvbGxTZXJ2aWNlJiZhJiZPYmplY3QucHJvdG90eXBlLmhhc093'@; put 'blByb3BlcnR5LmNhbGwoYSwiX29wZW4iKSYmKGEuX29wZW4uY3VycmVudFZhbHVlP3RoaXMuX3Njcm9sbGluZ1NlcnZpY2Uuc3RvcFNjcm9sbGluZygpOnRoaXMuX3Njcm9sbGluZ1NlcnZpY2UucmVzdW1lU2Nyb2xsaW5nKCkpfW5nT25EZXN0cm95KCl7dGhpcy5fc2Nyb2xsaW5nU2Vydmlj'@; put 'ZS5yZXN1bWVTY3JvbGxpbmcoKX1vcGVuKCl7dGhpcy5fb3Blbnx8KHRoaXMuX29wZW49ITAsdGhpcy5fb3BlbkNoYW5nZWQuZW1pdCghMCkpfWNsb3NlKCl7dGhpcy5zdG9wQ2xvc2U/dGhpcy5hbHRDbG9zZS5lbWl0KCExKTohdGhpcy5jbG9zYWJsZXx8IXRoaXMuX29wZW58fCh0aGlzLl9v'@; put 'cGVuPSExLHRoaXMuZm9jdXNUcmFwLnNldFByZXZpb3VzRm9jdXMoKSl9ZmFkZURvbmUoYSl7InZvaWQiPT09YS50b1N0YXRlJiZ0aGlzLl9vcGVuQ2hhbmdlZC5lbWl0KCExKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoV1EpLHR0KEVzKSl9'@; put 'LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1tb2RhbCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJlJvKE1wLDUpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQuZm9jdXNUcmFwPWguZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVu'@; put 'Y3Rpb24oYSxkKXsxJmEmJnh0KCJrZXl1cC5lc2NhcGUiLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2xvc2UoKX0sMCxFdiksMiZhJiZkcigib3BlbiIsZC5fb3Blbil9LGlucHV0czp7X29wZW46WyJjbHJNb2RhbE9wZW4iLCJfb3BlbiJdLGNsb3NhYmxlOlsiY2xyTW9kYWxDbG9zYWJsZSIsImNs'@; put 'b3NhYmxlIl0sY2xvc2VCdXR0b25BcmlhTGFiZWw6WyJjbHJNb2RhbENsb3NlQnV0dG9uQXJpYUxhYmVsIiwiY2xvc2VCdXR0b25BcmlhTGFiZWwiXSxzaXplOlsiY2xyTW9kYWxTaXplIiwic2l6ZSJdLHN0YXRpY0JhY2tkcm9wOlsiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsInN0YXRpY0Jh'@; put 'Y2tkcm9wIl0sc2tpcEFuaW1hdGlvbjpbImNsck1vZGFsU2tpcEFuaW1hdGlvbiIsInNraXBBbmltYXRpb24iXSxieXBhc3NTY3JvbGxTZXJ2aWNlOlsiY2xyTW9kYWxPdmVycmlkZVNjcm9sbFNlcnZpY2UiLCJieXBhc3NTY3JvbGxTZXJ2aWNlIl0sc3RvcENsb3NlOlsiY2xyTW9kYWxQcmV2'@; put 'ZW50Q2xvc2UiLCJzdG9wQ2xvc2UiXSxsYWJlbGxlZEJ5OlsiY2xyTW9kYWxMYWJlbGxlZEJ5SWQiLCJsYWJlbGxlZEJ5Il19LG91dHB1dHM6e19vcGVuQ2hhbmdlZDoiY2xyTW9kYWxPcGVuQ2hhbmdlIixhbHRDbG9zZToiY2xyTW9kYWxBbHRlcm5hdGVDbG9zZSJ9LGZlYXR1cmVzOlt0aShb'@; put 'XSxbV1FdKSx2YV0sbmdDb250ZW50U2VsZWN0b3JzOlNiZSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1siY2xyRm9jdXNUcmFwIiwiIiwiY2xhc3MiLCJtb2RhbCIsNCwibmdJZiJdLFsiY2xyRm9jdXNUcmFwIiwiIiwxLCJtb2RhbCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtbW9kYWwiLCJ0'@; put 'cnVlIiwxLCJtb2RhbC1kaWFsb2ciXSxbMSwiY2xyLXNyLW9ubHkiXSxbMSwibW9kYWwtY29udGVudC13cmFwcGVyIl0sWzEsIm1vZGFsLWNvbnRlbnQiXSxbMSwibW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIl0sWyJjbHJGb2N1c09uVmlld0luaXQiLCIiLDEsIm1vZGFsLXRpdGxlLXdyYXBw'@; put 'ZXIiLDMsImlkIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjbG9zZSIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwibW9kYWwtYm9keS13cmFwcGVyIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWJhY2tkcm9wIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2xv'@; put 'c2UiLDMsImNsaWNrIl0sWyJzaGFwZSIsIndpbmRvdy1jbG9zZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKENiZSksSmUoMCx3YmUsMTcsMTQsImRpdiIsMCkpLDImYSYmUmUoIm5nSWYiLGQuX29wZW4pfSxkZXBlbmRlbmNpZXM6W1ppLE1wLFBGLHFzXSxzdHlsZXM6WyJb'@; put 'X25naG9zdC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0ub3Blbltfbmdob3N0LSVDT01QJV17ZGlzcGxheTppbmxpbmV9Il0sZGF0YTp7YW5pbWF0aW9uOlthMSgiZmFkZURvd24iLFtmYygiKiA9PiBmYWxzZSIsW19zKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgLTI1JSkifSks'@; put 'cnUoIjAuMnMgZWFzZS1pbi1vdXQiKV0pLGZjKCJmYWxzZSA9PiAqIixbcnUoIjAuMnMgZWFzZS1pbi1vdXQiLF9zKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgLTI1JSkifSkpXSldKSxhMSgiZmFkZSIsW2ZjKCJ2b2lkID0+ICoiLFtfcyh7b3BhY2l0eTowfSkscnUoIjAu'@; put 'MnMgZWFzZS1pbi1vdXQiLF9zKHtvcGFjaXR5Oi44NX0pKV0pLGZjKCIqID0+IHZvaWQiLFtydSgiMC4ycyBlYXNlLWluLW91dCIsX3Moe29wYWNpdHk6MH0pKV0pXSldfX0pLGN9KSgpLHN1PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMucmVuZGVyZXI9YSx0aGlzLmhv'@; put 'c3Q9ZCx0aGlzLnRhYmluZGV4PSIwIix0aGlzLnVubGlzdGVuZXJzPVtdLGgucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLm9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+dGhpcy5hZGRPclJlbW92ZVRhYkluZGV4KCkpLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3Qu'@; put 'bmF0aXZlRWxlbWVudCksdGhpcy51bmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJtb3VzZXVwIiwoKT0+e3RoaXMuYWRkT3JSZW1vdmVUYWJJbmRleCgpfSksdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5ob3N0Lm5hdGl2ZUVs'@; put 'ZW1lbnQsIm1vdXNlZG93biIsKCk9Pnt0aGlzLnJlbW92ZVRhYkluZGV4KCl9KSl9KX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy51bmxpc3RlbmVycy5sZW5ndGg7KXRoaXMudW5saXN0ZW5lcnMucG9wKCkoKTt0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLm9ic2VydmVyPW51bGx9'@; put 'YWRkVGFiSW5kZXgoKXt0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLHRoaXMudGFiaW5kZXgpfXJlbW92ZVRhYkluZGV4KCl7dGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsInRh'@; put 'YmluZGV4Iil9YWRkT3JSZW1vdmVUYWJJbmRleCgpe2NvbnN0IGE9dGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDthJiZhLmNsaWVudEhlaWdodDxhLnNjcm9sbEhlaWdodD90aGlzLmFkZFRhYkluZGV4KCk6dGhpcy5yZW1vdmVUYWJJbmRleCgpfX1yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChGbyksdHQoTmkpLHR0KE5vKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsOCwibW9kYWwtYm9keSJdXX0pLGN9KSgpLEdRPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtWcy5hZGRJY29ucyhu'@; put 'Yil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W1tvbyxzYSx5RSxxNV0sc2EscTVdfSksY30pKCk7Y29uc3QgaENlPXsidG9wLWxlZnQiOnthbmNob3JQb2lu'@; put 'dDpHci5UT1BfQ0VOVEVSLHBvcG92ZXJQb2ludDpHci5CT1RUT01fUklHSFQsb2Zmc2V0WTotMTAsb2Zmc2V0WDowfSwidG9wLW1pZGRsZSI6e2FuY2hvclBvaW50OkdyLlRPUF9DRU5URVIscG9wb3ZlclBvaW50OkdyLkJPVFRPTV9DRU5URVIsb2Zmc2V0WTotMTAsb2Zmc2V0WDowfSwidG9w'@; put 'LXJpZ2h0Ijp7YW5jaG9yUG9pbnQ6R3IuVE9QX0NFTlRFUixwb3BvdmVyUG9pbnQ6R3IuQk9UVE9NX0xFRlQsb2Zmc2V0WTotMTAsb2Zmc2V0WDowfSwicmlnaHQtdG9wIjp7YW5jaG9yUG9pbnQ6R3IuUklHSFRfQ0VOVEVSLHBvcG92ZXJQb2ludDpHci5MRUZUX0JPVFRPTSxvZmZzZXRZOjIs'@; put 'b2Zmc2V0WDoxNH0sInJpZ2h0LW1pZGRsZSI6e2FuY2hvclBvaW50OkdyLlJJR0hUX0NFTlRFUixwb3BvdmVyUG9pbnQ6R3IuTEVGVF9DRU5URVIsb2Zmc2V0WTo2LG9mZnNldFg6MTR9LCJyaWdodC1ib3R0b20iOnthbmNob3JQb2ludDpHci5SSUdIVF9DRU5URVIscG9wb3ZlclBvaW50Okdy'@; put 'LkxFRlRfVE9QLG9mZnNldFk6LTEsb2Zmc2V0WDoxNH0sImJvdHRvbS1yaWdodCI6e2FuY2hvclBvaW50OkdyLkJPVFRPTV9DRU5URVIscG9wb3ZlclBvaW50OkdyLlRPUF9MRUZULG9mZnNldFk6OSxvZmZzZXRYOi0xfSwiYm90dG9tLW1pZGRsZSI6e2FuY2hvclBvaW50OkdyLkJPVFRPTV9D'@; put 'RU5URVIscG9wb3ZlclBvaW50OkdyLlRPUF9DRU5URVIsb2Zmc2V0WTo5LG9mZnNldFg6MTJ9LCJib3R0b20tbGVmdCI6e2FuY2hvclBvaW50OkdyLkJPVFRPTV9DRU5URVIscG9wb3ZlclBvaW50OkdyLlRPUF9SSUdIVCxvZmZzZXRZOjksb2Zmc2V0WDowfSwibGVmdC1ib3R0b20iOnthbmNo'@; put 'b3JQb2ludDpHci5MRUZUX0NFTlRFUixwb3BvdmVyUG9pbnQ6R3IuUklHSFRfVE9QLG9mZnNldFk6MCxvZmZzZXRYOi0xNH0sImxlZnQtbWlkZGxlIjp7YW5jaG9yUG9pbnQ6R3IuTEVGVF9DRU5URVIscG9wb3ZlclBvaW50OkdyLlJJR0hUX0NFTlRFUixvZmZzZXRZOjQsb2Zmc2V0WDotMTR9'@; put 'LCJsZWZ0LXRvcCI6e2FuY2hvclBvaW50OkdyLkxFRlRfQ0VOVEVSLHBvcG92ZXJQb2ludDpHci5SSUdIVF9CT1RUT00sb2Zmc2V0WTowLG9mZnNldFg6LTE0fSxkZWZhdWx0OnthbmNob3JQb2ludDpHci5SSUdIVF9DRU5URVIscG9wb3ZlclBvaW50OkdyLkxFRlRfQ0VOVEVSLG9mZnNldFk6'@; put 'NixvZmZzZXRYOjE0fX0sZkNlPVsidG9wLWxlZnQiLCJ0b3AtbWlkZGxlIiwidG9wLXJpZ2h0IiwicmlnaHQtdG9wIiwicmlnaHQtbWlkZGxlIiwicmlnaHQtYm90dG9tIiwiYm90dG9tLXJpZ2h0IiwiYm90dG9tLW1pZGRsZSIsImJvdHRvbS1sZWZ0IiwibGVmdC1ib3R0b20iLCJsZWZ0LW1p'@; put 'ZGRsZSIsImxlZnQtdG9wIl07bGV0ICRRPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBiSHtjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXKXtpZihzdXBlcihhLGQpLHRoaXMuY29tbW9uU3RyaW5ncz1oLHRoaXMuc2lnbnBvc3RJZFNlcnZpY2U9Zix0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyPV8s'@; put 'dGhpcy5wbGF0Zm9ybUlkPVQsdGhpcy5zaWducG9zdENvbnRlbnRJZD1JYygpLCFkKXRocm93IG5ldyBFcnJvcigiY2xyLXNpZ25wb3N0LWNvbnRlbnQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItc2lnbnBvc3QiKTt0aGlzLnBvc2l0aW9uPSJyaWdodC1taWRkbGUiLHRo'@; put 'aXMuY2xvc2VPbk91dHNpZGVDbGljaz0hMCx0aGlzLnNpZ25wb3N0SWRTZXJ2aWNlLnNldElkKHRoaXMuc2lnbnBvc3RDb250ZW50SWQpLHRoaXMuZG9jdW1lbnQ9V31nZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb259c2V0IHBvc2l0aW9uKGEpe3RoaXMucmVuZGVyZXIucmVt'@; put 'b3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LHRoaXMucG9zaXRpb24pLHRoaXMuX3Bvc2l0aW9uPWEmJmZDZS5pbmRleE9mKGEpPi0xP2E6InJpZ2h0LW1pZGRsZSIsdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5wb3NpdGlvbik7Y29uc3Qg'@; put 'ZD1oQ2VbdGhpcy5wb3NpdGlvbl07dGhpcy5hbmNob3JQb2ludD1kLmFuY2hvclBvaW50LHRoaXMucG9wb3ZlclBvaW50PWQucG9wb3ZlclBvaW50LHRoaXMucG9wb3Zlck9wdGlvbnMub2Zmc2V0WT1kLm9mZnNldFksdGhpcy5wb3BvdmVyT3B0aW9ucy5vZmZzZXRYPWQub2Zmc2V0WH1jbG9z'@; put 'ZSgpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSxScyh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmdGhpcy5zaWducG9zdEZvY3Vz'@; put 'TWFuYWdlci5mb2N1c1RyaWdnZXIoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoRWEpLHR0KEw4LDgpLHR0KEVzKSx0dChvSCksdHQoaUgpLHR0KEdzKSx0dChMcykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHIt'@; put 'c2lnbnBvc3QtY29udGVudCJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKHQxKCJpZCIsZC5zaWducG9zdENvbnRlbnRJZCksZHIoInNpZ25wb3N0LWNvbnRlbnQiLCEwKSl9LGlucHV0czp7cG9zaXRpb246WyJjbHJQb3NpdGlvbiIsInBvc2l0aW9uIl19'@; put 'LGZlYXR1cmVzOltlb10sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjcsdmFyczozLGNvbnN0czpbWzEsInNpZ25wb3N0LXdyYXAiXSxbMSwicG9wb3Zlci1wb2ludGVyIl0sWzEsInNpZ25wb3N0LWNvbnRlbnQtaGVhZGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJzaWducG9zdC1hY3Rp'@; put 'b24iLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl0sWzEsInNpZ25wb3N0LWNvbnRlbnQtYm9keSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksbWUoMCwiZGl2IiwwKSxxdCgxLCJkaXYiLDEpLG1lKDIsImRpdiIsMikoMywiYnV0dG9uIiwz'@; put 'KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2xvc2UoKX0pLHF0KDQsImNkcy1pY29uIiw0KSx5ZSgpKCksbWUoNSwiZGl2Iiw1KSxrcig2KSx5ZSgpKCkpLDImYSYmKENlKDMpLFRyKCJhcmlhLWxhYmVsIixkLmNvbW1vblN0cmluZ3Mua2V5cy5zaWducG9zdENsb3NlKSgiYXJp'@; put 'YS1jb250cm9scyIsZC5zaWducG9zdENvbnRlbnRJZCksQ2UoMSksVHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSkpfSxkZXBlbmRlbmNpZXM6W3FzXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxwQ2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe1ZzLmFkZEljb25z'@; put 'KG5iLFJLKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbW29vLHNhLHE1XSxzZF19KSxjfSkoKSxBSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhp'@; put 'cy5faWQ9bmV3IGJlfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZC5hc09ic2VydmFibGUoKX11cGRhdGVJZChhKXt0aGlzLl9pZC5uZXh0KGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6'@; put 'Yy5cdTAyNzVmYWN9KSxjfSkoKSxUSD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMudG9nZ2xlU2VydmljZT1hfW9uTW91c2VFbnRlclRyaWdnZXIoKXt0aGlzLm1vdXNlT3ZlclRyaWdnZXI9ITAsdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITB9b25Nb3VzZUxlYXZlVHJpZ2dl'@; put 'cigpe3RoaXMubW91c2VPdmVyVHJpZ2dlcj0hMSx0aGlzLmhpZGVJZk1vdXNlT3V0KCl9b25Nb3VzZUVudGVyQ29udGVudCgpe3RoaXMubW91c2VPdmVyQ29udGVudD0hMH1vbk1vdXNlTGVhdmVDb250ZW50KCl7dGhpcy5tb3VzZU92ZXJDb250ZW50PSExLHRoaXMuaGlkZUlmTW91c2VPdXQo'@; put 'KX1oaWRlSWZNb3VzZU91dCgpe3NldFRpbWVvdXQoKCk9PnshdGhpcy5tb3VzZU92ZXJUcmlnZ2VyJiYhdGhpcy5tb3VzZU92ZXJDb250ZW50JiYodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITEpfSwwKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyko'@; put 'YXIoS3MpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxqYj0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1si'@; put 'Y2xyLXRvb2x0aXAiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmRyKCJ0b29sdGlwIiwhMCl9LGZlYXR1cmVzOlt0aShbS3Mse3Byb3ZpZGU6TDgsdXNlRXhpc3Rpbmc6Tml9LEFILFRIXSldLG5nQ29udGVudFNlbGVjdG9yczpFbyxkZWNsczoxLHZhcnM6'@; put 'MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksa3IoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTtjb25zdCBtQ2U9WyJib3R0b20tbGVmdCIsImJvdHRvbS1yaWdodCIsInRvcC1sZWZ0IiwidG9wLXJpZ2h0IiwicmlnaHQiLCJsZWZ0Il0sdkNlPVsieHMiLCJzbSIsIm1k'@; put 'IiwibGciXTtsZXQgemI9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGJIe2NvbnN0cnVjdG9yKGEsZCxoLGYpe2lmKHN1cGVyKGEsZCksdGhpcy50b29sdGlwSWRTZXJ2aWNlPWgsdGhpcy50b29sdGlwTW91c2VTZXJ2aWNlPWYsIWQpdGhyb3cgbmV3IEVycm9yKCJjbHItdG9vbHRpcC1jb250ZW50'@; put 'IHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyLXRvb2x0aXAiKTt0aGlzLmlkPUljKCl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChhKXtjb25zdCBkPWF8fCIiO3RoaXMuX2lkPWQsdGhpcy50b29sdGlwSWRTZXJ2aWNlLnVwZGF0ZUlkKGQpfWdldCBwb3NpdGlv'@; put 'bigpe3JldHVybiB0aGlzLl9wb3NpdGlvbn1zZXQgcG9zaXRpb24oYSl7Y29uc3QgZD10aGlzLl9wb3NpdGlvbixoPW1DZS5pbmNsdWRlcyhhKT9hOiJyaWdodCI7c3dpdGNoKHRoaXMuX3Bvc2l0aW9uPWgsdGhpcy51cGRhdGVDc3NDbGFzcyh7b2xkQ2xhc3M6YHRvb2x0aXAtJHtkfWAsbmV3'@; put 'Q2xhc3M6YHRvb2x0aXAtJHtofWB9KSxoKXtjYXNlInRvcC1yaWdodCI6dGhpcy5hbmNob3JQb2ludD1Hci5UT1BfQ0VOVEVSLHRoaXMucG9wb3ZlclBvaW50PUdyLkxFRlRfQk9UVE9NO2JyZWFrO2Nhc2UidG9wLWxlZnQiOnRoaXMuYW5jaG9yUG9pbnQ9R3IuVE9QX0NFTlRFUix0aGlzLnBv'@; put 'cG92ZXJQb2ludD1Hci5SSUdIVF9CT1RUT007YnJlYWs7Y2FzZSJib3R0b20tcmlnaHQiOnRoaXMuYW5jaG9yUG9pbnQ9R3IuQk9UVE9NX0NFTlRFUix0aGlzLnBvcG92ZXJQb2ludD1Hci5MRUZUX1RPUDticmVhaztjYXNlImJvdHRvbS1sZWZ0Ijp0aGlzLmFuY2hvclBvaW50PUdyLkJPVFRP'@; put 'TV9DRU5URVIsdGhpcy5wb3BvdmVyUG9pbnQ9R3IuUklHSFRfVE9QO2JyZWFrO2Nhc2UicmlnaHQiOnRoaXMuYW5jaG9yUG9pbnQ9R3IuUklHSFRfQ0VOVEVSLHRoaXMucG9wb3ZlclBvaW50PUdyLkxFRlRfVE9QO2JyZWFrO2Nhc2UibGVmdCI6dGhpcy5hbmNob3JQb2ludD1Hci5MRUZUX0NF'@; put 'TlRFUix0aGlzLnBvcG92ZXJQb2ludD1Hci5SSUdIVF9UT1A7YnJlYWs7ZGVmYXVsdDohZnVuY3Rpb24gZ0NlKGMpe3Rocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHZhbHVlOiAke2N9YCl9KGgpfX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfXNldCBzaXplKGEpe2NvbnN0IGQ9dGhp'@; put 'cy5fc2l6ZSxoPXZDZS5pbmNsdWRlcyhhKT9hOiJzbSI7dGhpcy5fc2l6ZT1oLHRoaXMudXBkYXRlQ3NzQ2xhc3Moe29sZENsYXNzOmB0b29sdGlwLSR7ZH1gLG5ld0NsYXNzOmB0b29sdGlwLSR7aH1gfSl9bmdPbkluaXQoKXt0aGlzLnNpemU9dGhpcy5zaXplfHwic20iLHRoaXMucG9zaXRp'@; put 'b249dGhpcy5wb3NpdGlvbnx8InJpZ2h0In1vbk1vdXNlRW50ZXIoKXt0aGlzLnRvb2x0aXBNb3VzZVNlcnZpY2Uub25Nb3VzZUVudGVyQ29udGVudCgpfW9uTW91c2VMZWF2ZSgpe3RoaXMudG9vbHRpcE1vdXNlU2VydmljZS5vbk1vdXNlTGVhdmVDb250ZW50KCl9dXBkYXRlQ3NzQ2xhc3Mo'@; put 'e29sZENsYXNzOmEsbmV3Q2xhc3M6ZH0pe3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGEpLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGQpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5l'@; put 'dyhhfHxjKSh0dChFYSksdHQoTDgsOCksdHQoQUgpLHR0KFRIKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci10b29sdGlwLWNvbnRlbnQiXV0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJtb3VzZWVudGVyIixmdW5jdGlv'@; put 'bigpe3JldHVybiBkLm9uTW91c2VFbnRlcigpfSkoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25Nb3VzZUxlYXZlKCl9KSwyJmEmJih0MSgiaWQiLGQuaWQpLFRyKCJyb2xlIiwidG9vbHRpcCIpLEh1KCJvcGFjaXR5IiwxKSxkcigidG9vbHRpcC1jb250ZW50IiwhMCkpfSxp'@; put 'bnB1dHM6e2lkOiJpZCIscG9zaXRpb246WyJjbHJQb3NpdGlvbiIsInBvc2l0aW9uIl0sc2l6ZTpbImNsclNpemUiLCJzaXplIl19LGZlYXR1cmVzOltlb10sbmdDb250ZW50U2VsZWN0b3JzOkVvLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoQWkoKSxrcigw'@; put 'KSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLFViPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMudG9nZ2xlU2VydmljZT1hLHRoaXMudG9vbHRpcElkU2VydmljZT1kLHRoaXMudG9vbHRpcE1vdXNlU2VydmljZT1oLHRoaXMuc3Vicz1bXSx0aGlzLnN1YnMucHVzaCh0'@; put 'aGlzLnRvb2x0aXBJZFNlcnZpY2UuaWQuc3Vic2NyaWJlKGY9PnRoaXMuYXJpYURlc2NyaWJlZEJ5PWYpKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vicy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9c2hvd1Rvb2x0aXAoKXt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMH1oaWRlVG9vbHRp'@; put 'cCgpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExfW9uTW91c2VFbnRlcigpe3RoaXMudG9vbHRpcE1vdXNlU2VydmljZS5vbk1vdXNlRW50ZXJUcmlnZ2VyKCl9b25Nb3VzZUxlYXZlKCl7dGhpcy50b29sdGlwTW91c2VTZXJ2aWNlLm9uTW91c2VMZWF2ZVRyaWdnZXIoKX19cmV0dXJuIGMu'@; put 'XHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoS3MpLHR0KEFIKSx0dChUSCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJUb29sdGlwVHJpZ2dlciIsIiJdXSxob3N0QXR0cnM6WyJ0YWJpbmRleCIsIjAiXSxob3N0VmFyczo0LGhv'@; put 'c3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmeHQoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBkLnNob3dUb29sdGlwKCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gZC5oaWRlVG9vbHRpcCgpfSkoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25Nb3VzZUVudGVy'@; put 'KCl9KSgibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyZXR1cm4gZC5vbk1vdXNlTGVhdmUoKX0pLDImYSYmKFRyKCJhcmlhLWRlc2NyaWJlZGJ5IixkLmFyaWFEZXNjcmliZWRCeSkoInJvbGUiLCJidXR0b24iKSxkcigidG9vbHRpcC10cmlnZ2VyIiwhMCkpfX0pLGN9KSgpLF9DZT0oKCk9Pntj'@; put 'bGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dLHNkLHNhXX0pLGN9KSgpLGJDZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOlt5SCxwQ2UsX0NlXX0pLGN9KSgpLHlDZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb29dXX0pLGN9KSgpLENDZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7VnMuYWRkSWNvbnMoeW1lLHdtZSxPSyxDbWUpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJu'@; put 'IG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb28sc2EsQWJdLHNhLEFiXX0pLGN9KSgpLGtDZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7VnMuYWRkSWNvbnMoT0spfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'YSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltbb28sR1EsTlFdXX0pLGN9KSgpLF91PSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3'@; put 'NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W3p3ZSxSd2Usc2EsR1EsTEYsc2QseUUscTUscHllLGJ5ZSxkUSxkQ2UsYkNlLGtDZSwkSixueWUsQWIseUNlLHhiLENDZV19KSxjfSkoKTtmdW5jdGlvbiBBQ2UoYyxsKXsxJmMmJihtZSgwLCJzcGFuIiwxMCksTmUo'@; put 'MSwibG9hZGluZyIpLHllKCkpfWZ1bmN0aW9uIFRDZShjLGwpezEmYyYmKG1lKDAsInNwYW4iLDExKSxOZSgxLCJsb2FkZWQiKSx5ZSgpKX1mdW5jdGlvbiBEQ2UoYyxsKXsxJmMmJihtZSgwLCJzcGFuIiwxMiksTmUoMSwiZmFpbGVkIikseWUoKSl9ZnVuY3Rpb24gSUNlKGMsbCl7aWYoMSZj'@; put 'JiYobWUoMCwicCIpKDEsImNvZGUiKSxOZSgyKSx5ZSgpLE5lKDMsIiBceGEwICIpLEplKDQsQUNlLDIsMCwic3BhbiIsNyksSmUoNSxUQ2UsMiwwLCJzcGFuIiw4KSxKZSg2LERDZSwyLDAsInNwYW4iLDkpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgyKSxvcihhLnByb2dy'@; put 'YW0pLENlKDIpLFJlKCJuZ0lmIixhLnJ1bm5pbmcpLENlKDEpLFJlKCJuZ0lmIiwhYS5ydW5uaW5nJiZhLnN1Y2Nlc3NmdWwpLENlKDEpLFJlKCJuZ0lmIiwhYS5ydW5uaW5nJiYhYS5zdWNjZXNzZnVsKX19ZnVuY3Rpb24gTENlKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXNpZ25wb3N0LWNv'@; put 'bnRlbnQiLDUpLEplKDEsSUNlLDcsNCwicCIsNikseWUoKSksMiZjKXtjb25zdCBhPVZlKCk7UmUoImNsclBvc2l0aW9uIiwiYm90dG9tLW1pZGRsZSIpLENlKDEpLFJlKCJuZ0Zvck9mIixhLnJlcXVlc3RzKX19bGV0IFJDZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5sb2Fk'@; put 'aW5nPSExLHRoaXMucmVxdWVzdHM9W10sdGhpcy5fbG9hZGluZ1N1Yj1uZXcgZWV9bmdPbkluaXQoKXt9bmdPbkRlc3Ryb3koKXt0aGlzLl9sb2FkaW5nU3ViLnVuc3Vic2NyaWJlKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNt'@; put 'cD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtbG9hZGluZy1pbmRpY2F0b3IiXV0sZGVjbHM6Nix2YXJzOjYsY29uc3RzOltbMSwibG9hZGluZy1pbmRpY2F0b3IiXSxbImNsclNpZ25wb3N0VHJpZ2dlciIsIiIsMSwic3Bpbm5lciIsInNwaW5uZXItc20iLCJzcGlubmVyLWludmVyc2Ui'@; put 'XSxbImNsclNpZ25wb3N0VHJpZ2dlciIsIiIsInNoYXBlIiwiY2hlY2siLCJzaXplIiwiMjAiLDEsImlzLWluZm8iXSxbImNsclNpZ25wb3N0VHJpZ2dlciIsIiIsInNoYXBlIiwiZXJyb3IiLCJzaXplIiwiMjQiLDEsImlzLWVycm9yIl0sWzMsImNsclBvc2l0aW9uIiw0LCJjbHJJZk9wZW4i'@; put 'XSxbMywiY2xyUG9zaXRpb24iXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInJ1bm5pbmciLDQsIm5nSWYiXSxbImNsYXNzIiwic3VjY2VzcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJmYWlsIiw0LCJuZ0lmIl0sWzEsInJ1bm5pbmciXSxbMSwic3VjY2VzcyJdLFsxLCJmYWlsIl1d'@; put 'LHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiZGl2IiwwKSgxLCJjbHItc2lnbnBvc3QiKSxxdCgyLCJzcGFuIiwxKSgzLCJjbHItaWNvbiIsMikoNCwiY2xyLWljb24iLDMpLEplKDUsTENlLDIsMiwiY2xyLXNpZ25wb3N0LWNvbnRlbnQiLDQpLHllKCkoKSksMiZhJiYoQ2Uo'@; put 'MiksSHUoImRpc3BsYXkiLGQubG9hZGluZz8iaW5saW5lLWJsb2NrIjoibm9uZSIpLENlKDEpLEh1KCJkaXNwbGF5IiwhZC5sb2FkaW5nJiZkLnJlcXVlc3RzLmxlbmd0aD4wJiZkLnJlcXVlc3RzWzBdLnN1Y2Nlc3NmdWw/ImlubGluZS1ibG9jayI6Im5vbmUiKSxDZSgxKSxIdSgiZGlzcGxh'@; put 'eSIsIWQubG9hZGluZyYmZC5yZXF1ZXN0cy5sZW5ndGg+MCYmIWQucmVxdWVzdHNbMF0uc3VjY2Vzc2Z1bD8iaW5saW5lLWJsb2NrIjoibm9uZSIpKX0sZGVwZW5kZW5jaWVzOlt4cyxaaSxrYSxjMixzSCwkUSxSRV0sc3R5bGVzOlsiLmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXXtsaW5lLWhlaWdodDoyLjVyZW07aGVpZ2h0OjIuNXJlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICAuc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17dmVydGljYWwtYWxpZ246bWlkZGxlfS5sb2Fk'@; put 'aW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6MjRweDtjb2xvcjojNTY1NjU2O2N1cnNvcjphdXRvfS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2ln'@; put 'bnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBv'@; put 'c3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXTpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25n'@; put 'Y29udGVudC0lQ09NUCVdOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0l'@; put 'Q09NUCVde21hcmdpbi1sZWZ0OjEwcHh9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbi5ydW5uaW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xv'@; put 'cjojZTliZjA0fS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW4uc3VjY2Vzc1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzYwYjUxNX0ubG9h'@; put 'ZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLmZhaWxbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNjOTIxMDB9Il19KSxjfSkoKSxPQ2U9KCgpPT57'@; put 'Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuc2FzU2VydmljZT1hLHRoaXMubG9nZ2VyU2VydmljZT1kLHRoaXMuX3N1YnNjcmlwdGlvbj1uZXcgZWUsdGhpcy5sb2FkaW5nPSExLHRoaXMuYWxlcnRDbG9zZWQ9ITAsdGhpcy5kYXRhPXt1c2VyOm51bGwscGFzczpudWxsfX1uZ09uSW5p'@; put 'dCgpeyJSZWRpcmVjdGVkIiE9PXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLmxvZ2luTWVjaGFuaXNtJiYodGhpcy5fc3Vic2NyaXB0aW9uPXRoaXMuc2FzU2VydmljZS5zaG91bGRMb2dpbi5zdWJzY3JpYmUoZD0+e3RoaXMuaXNBY3RpdmU9ZDtsZXQgaD1kb2N1bWVudC5xdWVy'@; put 'eVNlbGVjdG9yKCJib2R5Iik7aCYmKGQ/aC5jbGFzc0xpc3QuYWRkKCJzaG91bGQtbG9naW4iKTpoLmNsYXNzTGlzdC5yZW1vdmUoInNob3VsZC1sb2dpbiIpKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXN1Ym1pdCgpe3RoaXMubG9hZGluZ3x8'@; put 'KHRoaXMubG9hZGluZz0hMCx0aGlzLmRhdGEudXNlciYmdGhpcy5kYXRhLnBhc3MmJnRoaXMuc2FzU2VydmljZS5sb2dpbih0aGlzLmRhdGEudXNlcix0aGlzLmRhdGEucGFzcykudGhlbihhPT57dGhpcy5sb2FkaW5nPSExLGF8fCh0aGlzLmVycm9yTXNnPSJVc2VybmFtZSBvciBwYXNzd29y'@; put 'ZCBpbnZhbGlkIix0aGlzLmFsZXJ0Q2xvc2VkPSExKX0sYT0+e3RoaXMubG9nZ2VyU2VydmljZS5sb2coYSksdGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3JNc2c9YSx0aGlzLmFsZXJ0Q2xvc2VkPSExfSkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KSh0dChvYSksdHQodzApKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWxvZ2luIl1dLGRlY2xzOjIwLHZhcnM6OSxjb25zdHM6W1sxLCJsb2dpbi1zaWRlYmFyLXdyYXBwZXIiXSxbMSwibG9naW4tc2lkZWJhciIsInNpZGVCYXJQcm9wcyJdLFsic3JjIiwiL1NB'@; put 'U0pvYkV4ZWN1dGlvbj9fRklMRT0vUHVibGljL2FwcC9kYy9zZXJ2aWNlcy93ZWIvaW1hZ2VzL2RhdGFjb250cm9sbGVyLnN2ZyIsImFsdCIsIiIsMSwibG9naW4tbG9nbyJdLFsxLCJsb2dpbiIsMywibmdTdWJtaXQiXSxbMSwidGl0bGUiXSxbMSwid2VsY29tZSJdLFsxLCJoaW50Il0sWzEs'@; put 'ImxvZ2luLWdyb3VwIl0sWyJjbHJJbnB1dCIsIiIsIm5hbWUiLCJ1c2VyIiwidHlwZSIsInRleHQiLCJwbGFjZWhvbGRlciIsIlVzZXJuYW1lIiwxLCJ1c2VybmFtZSIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNscklucHV0IiwiIiwibmFtZSIsInBhc3MiLCJ0eXBlIiwicGFz'@; put 'c3dvcmQiLCJwbGFjZWhvbGRlciIsIlBhc3N3b3JkIiwxLCJwYXNzd29yZCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywiY2xyQWxlcnRUeXBlIiwiY2xyQWxlcnRDbG9zZWQiLCJjbHJBbGVydENsb3NlZENoYW5nZSJdLFsiY2xyLWFsZXJ0LWl0ZW0iLCIiLDEsImFsZXJ0LWl0'@; put 'ZW0iXSxbMSwiYWxlcnQtdGV4dCJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLDMsImNsckxvYWRpbmciLCJkaXNhYmxlZCJdLFsxLCJvdmVybGF5Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiZGl2IiwwKSgxLCJkaXYiLDEp'@; put 'LHF0KDIsImltZyIsMiksbWUoMywiZm9ybSIsMykseHQoIm5nU3VibWl0IixmdW5jdGlvbigpe3JldHVybiBkLnN1Ym1pdCgpfSksbWUoNCwibGFiZWwiLDQpKDUsImgzIiw1KSxOZSg2LCJXZWxjb21lIHRvIikseWUoKSxOZSg3LCIgRGF0YSBDb250cm9sbGVyICIpLG1lKDgsImg1Iiw2KSxO'@; put 'ZSg5LCJDYXB0dXJlLCBSZXZpZXcsIGFuZCBBcHByb3ZlIikseWUoKSgpLG1lKDEwLCJkaXYiLDcpKDExLCJpbnB1dCIsOCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmRhdGEudXNlcj1mfSkseWUoKSxtZSgxMiwiaW5wdXQiLDkpLHh0KCJuZ01vZGVsQ2hhbmdl'@; put 'IixmdW5jdGlvbihmKXtyZXR1cm4gZC5kYXRhLnBhc3M9Zn0pLHllKCksbWUoMTMsImNsci1hbGVydCIsMTApLHh0KCJjbHJBbGVydENsb3NlZENoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQuYWxlcnRDbG9zZWQ9Zn0pLG1lKDE0LCJkaXYiLDExKSgxNSwic3BhbiIsMTIpLE5lKDE2KSx5'@; put 'ZSgpKCkoKSxtZSgxNywiYnV0dG9uIiwxMyksTmUoMTgsIiBMb2cgaW4gIikseWUoKSgpKCkoKSxxdCgxOSwiZGl2IiwxNCkseWUoKSksMiZhJiYoZHIoImFjdGl2ZSIsZC5pc0FjdGl2ZSksQ2UoMTEpLFJlKCJuZ01vZGVsIixkLmRhdGEudXNlciksQ2UoMSksUmUoIm5nTW9kZWwiLGQuZGF0'@; put 'YS5wYXNzKSxDZSgxKSxSZSgiY2xyQWxlcnRUeXBlIiwiYWxlcnQtZGFuZ2VyIikoImNsckFsZXJ0Q2xvc2VkIixkLmFsZXJ0Q2xvc2VkKSxDZSgzKSxvcihkLmVycm9yTXNnKSxDZSgxKSxSZSgiY2xyTG9hZGluZyIsZC5sb2FkaW5nKSgiZGlzYWJsZWQiLGQubG9hZGluZykpfSxkZXBlbmRl'@; put 'bmNpZXM6W0NwLFdhLEJzLHdwLE9zLHIyLEhiLE5iLFp1LGRoLFVzLGYxXSxzdHlsZXM6WyIuc2lkZUJhclByb3BzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiMzMTQzNTEhaW1wb3J0YW50O2NvbG9yOiNlMGUwZTB9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBo'@; put 'Mltfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAuc2lkZUJhclByb3BzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVD'@; put 'T01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlMGUwZTB9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVd'@; put 'e2JvcmRlci1jb2xvcjp3aGVhdCFpbXBvcnRhbnR9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZTBlMGUwfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7'@; put 'cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxMDAwMH0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSA+ICpbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOmF1dG99LmxvZ2luLXNpZGViYXItd3Jh'@; put 'cHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7cGFkZGluZzo0'@; put 'MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTQwMHB4KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0l'@; put 'Q09NUCVde3otaW5kZXg6MTAxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9n'@; put 'aW5bX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MzJweDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MzZweH0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19u'@; put 'Z2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53ZWxjb21lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjM2cHh9LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0g'@; put 'ICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICBmb3JtLmxvZ2luW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjQ4cHggMCAwfS5sb2dpbi1zaWRl'@; put 'YmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgZm9ybS5sb2dpbltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tZ3JvdXBbX25nY29udGVudC0lQ09NUCVdID4gKltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjZw'@; put 'eCAwIDE4cHh9LmxvZ2luLXNpZGViYXItd3JhcHBlci5hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7ei1pbmRleDoxMDF9LmxvZ2luLXNpZGViYXItd3JhcHBlci5hY3RpdmVbX25nY29u'@; put 'dGVudC0lQ09NUCVdICAgLm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAub3ZlcmxheVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lO3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xl'@; put 'ZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JhY2tncm91bmQ6cmdiYSgzMywzMywzMywuNSk7ei1pbmRleDoxMDB9ICAubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyLCAgIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdy'@; put 'b3VwIC51c2VybmFtZSwgICAubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1ncm91cCAucGFzc3dvcmR7d2lkdGg6MTAwJX0gIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6bm9uZX0gIC5sb2dpbi1zaWRlYmFyLXdy'@; put 'YXBwZXIgLmxvZ2luLWdyb3VwIGJ1dHRvbnttYXgtd2lkdGg6bm9uZX0ubG9naW4tbG9nb1tfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjIwMHB4fSJdfSksY30pKCk7ZnVuY3Rpb24gUENlKGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIpLHF0KDEsImltZyIsMTkpLHllKCkpLDImYyl7'@; put 'Y29uc3QgYT1WZSgpO0NlKDEpLEVjKCJzcmMiLGEuZ2V0UGljdHVyZVVybCgpLHJ2KX19ZnVuY3Rpb24gRkNlKGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIsMjApLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO2RyKCJoaWRkZW4iLDA9PT1hLmZhaWxlZFJlcXMubGVuZ3RoKSxDZSgx'@; put 'KSxvcihhLmZhaWxlZFJlcXMubGVuZ3RoKX19ZnVuY3Rpb24gSENlKGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIsMjEpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO2RyKCJoaWRkZW4iLDA9PT1hLmRlYnVnTG9ncy5sZW5ndGgpLENlKDEpLG9yKGEuZGVidWdMb2dzLmxlbmd0aCl9'@; put 'fWZ1bmN0aW9uIE5DZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDIyKX1mdW5jdGlvbiBWQ2UoYyxsKXsxJmMmJihWcigwKSxtZSgxLCJhIiwzMykoMiwic3BhbiIsMzQpLE5lKDMsIkRvY3VtZW50YXRpb24iKSx5ZSgpKCksenIoKSl9ZnVuY3Rpb24gQkNlKGMsbCl7aWYoMSZjKXtjb25z'@; put 'dCBhPVZuKCk7bWUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiLDIzKSgxLCJkaXYiLDI0LDI1KSgzLCJjbHItdG9nZ2xlLWNvbnRhaW5lciIsMjYpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7QnQoYSk7Y29uc3QgZj0kaSgyKTtyZXR1cm4ganQoVmUoKS5vbkRlYnVnUm93Q2xpY2soaCxmKSl9KSxt'@; put 'ZSg0LCJjbHItdG9nZ2xlLXdyYXBwZXIiKSg1LCJpbnB1dCIsMjcpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS5zYXNqc0NvbmZpZy5kZWJ1Zz1oKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLm9u'@; put 'RGVidWdNb2RlQ2hhbmdlKCkpfSkseWUoKSxtZSg2LCJsYWJlbCIpLE5lKDcsIkRlYnVnIE1vZGUiKSx5ZSgpKCkoKSgpLG1lKDgsImEiLDI4KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkub3BlblJlcXVlc3RzTW9kYWwoKSl9KSxtZSg5LCJzcGFuIiksTmUo'@; put 'MTAsIlNBUyBSZXF1ZXN0cyIpLHllKCkoKSxKZSgxMSxWQ2UsNCwwLCJuZy1jb250YWluZXIiLDIpLHF0KDEyLCJkaXYiLDE1KSxtZSgxMywiYSIsMjkpKDE0LCJzcGFuIiksTmUoMTUsIlN5c3RlbSIpLHllKCkoKSxtZSgxNiwiYSIsMzApLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7cmV0dXJu'@; put 'IEJ0KGEpLGp0KFZlKCkubG9nb3V0KGgpKX0pLG1lKDE3LCJzcGFuIiksTmUoMTgsIkxvZyBPdXQiKSx5ZSgpLHF0KDE5LCJjbHItaWNvbiIsMzEpLHllKCksbWUoMjAsImRpdiIsMzIpKDIxLCJzcGFuIiksTmUoMjIpLHllKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpO0NlKDUpLFJlKCJu'@; put 'Z01vZGVsIixhLnNhc2pzQ29uZmlnLmRlYnVnKSxDZSg2KSxSZSgibmdJZiIsIWEuaXNEZXBsb3lQYWdlKSxDZSgxMSksZ3IoInYiLGEuY29tbWl0VmVyLCIiKX19Y29uc3QgakNlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YW5kYWxvbmU6ITB9fTtsZXQgekNlPSgoKT0+e2NsYXNzIGN7Y29uc3Ry'@; put 'dWN0b3IoYSxkLGgsZil7dGhpcy51c2VyU2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5yb3V0ZXI9Zix0aGlzLnVzZXJOYW1lPSJOb3QgbG9nZ2VkIGluIix0aGlzLnJlcVN1Yj1uZXcgZWUsdGhpcy51c2VyU3ViPW5ldyBlZSx0aGlzLmFwcExv'@; put 'Z3M9W10sdGhpcy5kZWJ1Z0xvZ3M9W10sdGhpcy5mYWlsZWRSZXFzPVtdLHRoaXMuc2FzRXJyb3JzPVtdLHRoaXMuaXNWaXlhPSExLHRoaXMuc2FzanNDb25maWc9bmV3IHIxLlNBU2pzQ29uZmlnLHRoaXMucmVxdWVzdHNDb3VudD0wLHRoaXMuY29tbWl0VmVyPSIifW5nT25Jbml0KCl7dGhp'@; put 'cy51c2VyU3ViPXRoaXMudXNlclNlcnZpY2UudXNlckNoYW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMudXNlck5hbWU9YS51c2VybmFtZX0pLHRoaXMuc2FzanNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksIlNBU1ZJWUEiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJU'@; put 'eXBlJiYodGhpcy5pc1ZpeWE9ITApLHRoaXMuY29tbWl0VmVyPSJ2Ni42LjQiLnJlcGxhY2UoInYiLCIiKSsiLmc3YjViYmUwIn1uZ09uRGVzdHJveSgpe3RoaXMucmVxU3ViLnVuc3Vic2NyaWJlKCksdGhpcy51c2VyU3ViLnVuc3Vic2NyaWJlKCl9b3BlblJlcXVlc3RzTW9kYWwoKXt0aGlz'@; put 'LmV2ZW50U2VydmljZS5vcGVuUmVxdWVzdHNNb2RhbCgpfW9uRGVidWdNb2RlQ2hhbmdlKGEpe3RoaXMuc2FzanNDb25maWcmJnRoaXMuc2FzU2VydmljZS5zZXREZWJ1Z1N0YXRlKHRoaXMuc2FzanNDb25maWcuZGVidWcpfW9uRGVidWdSb3dDbGljayhhLGQpe2Euc3RvcFByb3BhZ2F0aW9u'@; put 'KCksc2V0VGltZW91dCgoKT0+e2QuY2xpY2soKX0sMzAwKX1sb2dvdXQoYSl7YS5wcmV2ZW50RGVmYXVsdCgpO3RyeXt0aGlzLnNhc1NlcnZpY2UubG9nb3V0KCl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcihkKX19Z2V0UGljdHVyZVVybCgpe3JldHVybmAke3RoaXMuc2FzanNDb25maWcuc2Vy'@; put 'dmVyVXJsfS9pZGVudGl0aWVzL3VzZXJzLyR7dGhpcy51c2VyTmFtZX0vYXZhdGFyL2NvbnRlbnRgfWdldCBpc0RlcGxveVBhZ2UoKXtyZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJkZXBsb3kiKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8'@; put 'YykodHQoYVApLHR0KG9hKSx0dCh2bCksdHQoRHMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXVzZXItbmF2LWRyb3Bkb3duIl1dLGRlY2xzOjMyLHZhcnM6MTAsY29uc3RzOltbMSwiYXBwLW5hdi1kcm9wZG93biIsImQtbWQtYmxvY2siXSxbImNsckRyb3Bk'@; put 'b3duVG9nZ2xlIiwiIiwxLCJuYXYtdGV4dCIsImNvbG9yLXdoaXRlIl0sWzQsIm5nSWYiXSxbImNsYXNzIiwiYmFkZ2UgYmFkZ2UtZGFuZ2VyIiwzLCJoaWRkZW4iLDQsIm5nSWYiXSxbImNsYXNzIiwiYmFkZ2UgYmFkZ2UtaW5mbyIsMywiaGlkZGVuIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImNh'@; put 'cmV0IGRvd24iLDQsIm5nSWYiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0Iiw0LCJjbHJJZk9wZW4iXSxbMSwiY29udGVudC1jb250YWluZXIiLCJoLWF1dG8iXSxbMSwic2lkZW5hdiIsImQtYmxvY2siLCJkLW1kLW5vbmUiLDMsImNsci1uYXYtbGV2ZWwiXSxbMSwic2lkZW5hdi1j'@; put 'b250ZW50Il0sWyJocmVmIiwiLi4uIiwxLCJuYXYtbGluayIsImFjdGl2ZSJdLFsxLCJ0b2dnbGUtc3dpdGNoIl0sWyJpZCIsImRlYnVnLXRvZ2dsZTIiLCJ0eXBlIiwiY2hlY2tib3giLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsIm5nTW9kZWxDaGFuZ2UiXSxbImZvciIsImRlYnVn'@; put 'LXRvZ2dsZTIiLDEsImRlYnVnLXRvZ2dsZS1sYWJlbCIsImNvbG9yLWRhcmstZ3JheSJdLFsidGFyZ2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pbyIsMSwibmF2LWxpbmsiLCJkLWJsb2NrIl0sWzEsInNlcGFyYXRvciJdLFsicm91dGVyTGluayIs'@; put 'Ii9zeXN0ZW0iLDEsIm5hdi1saW5rIiwiZC1ibG9jayJdLFsic2hhcGUiLCJsb2dvdXQiXSxbImhyZWYiLCIuLi4iLDEsIm5hdi1saW5rIiwiZC1ibG9jayIsMywiY2xpY2siXSxbImFsdCIsIiIsMSwiYXZhdGFyLWltZyIsMywic3JjIl0sWzEsImJhZGdlIiwiYmFkZ2UtZGFuZ2VyIl0sWzEs'@; put 'ImJhZGdlIiwiYmFkZ2UtaW5mbyJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkZWJ1Zy1zd2l0Y2gtaXRlbSJdLFsiZHJvcGRvd25JdGVtRGVidWciLCIiXSxbMSwidG9nZ2xlLXN3aXRjaCIs'@; put 'MywiY2xpY2siXSxbImlkIiwiZGVidWctdG9nZ2xlMSIsInR5cGUiLCJjaGVja2JveCIsImNsclRvZ2dsZSIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siXSxbImhyZWYiLCIuLi4iLCJyb3V0ZXJMaW5rIiwiL3N5c3RlbSIs'@; put 'ImNsckRyb3Bkb3duSXRlbSIsIiJdLFsiaHJlZiIsIi4uLiIsImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siXSxbInNoYXBlIiwibG9nb3V0IiwxLCJjbHItbG9nb3V0Il0sWzEsImNvcHlSaWdodCJdLFsidGFyZ2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBzOi8vZG9jcy5kYXRhY29u'@; put 'dHJvbGxlci5pbyIsImNsckRyb3Bkb3duSXRlbSIsIiJdLFsxLCJkcm9wZG93bi10ZXh0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiY2xyLWRyb3Bkb3duIiwwKSgxLCJidXR0b24iLDEpKDIsInNwYW4iKSxOZSgzKSx5ZSgpLEplKDQsUENlLDIsMSwic3BhbiIsMiks'@; put 'SmUoNSxGQ2UsMiwzLCJzcGFuIiwzKSxKZSg2LEhDZSwyLDMsInNwYW4iLDQpLEplKDcsTkNlLDEsMCwiY2xyLWljb24iLDUpLHllKCksSmUoOCxCQ2UsMjMsMywiY2xyLWRyb3Bkb3duLW1lbnUiLDYpLHllKCksbWUoOSwiZGl2Iiw3KSgxMCwibmF2Iiw4KSgxMSwic2VjdGlvbiIsOSkoMTIs'@; put 'ImEiLDEwKSxOZSgxMykseWUoKSxtZSgxNCwiZGl2IikoMTUsImZvcm0iKSgxNiwiZGl2IiwxMSkoMTcsImlucHV0IiwxMikseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLnNhc2pzQ29uZmlnLmRlYnVnPWZ9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gZC5vbkRlYnVnTW9kZUNoYW5nZSgpfSkseWUoKSxtZSgxOCwibGFiZWwiLDEzKSxOZSgxOSwiRGVidWcgTW9kZSIpLHllKCkoKSgpKCksbWUoMjAsImEiLDE0KSgyMSwic3BhbiIpLE5lKDIyLCJEb2N1bWVudGF0aW9uIikseWUoKSgpLHF0KDIzLCJkaXYiLDE1KSxtZSgyNCwiYSIsMTYp'@; put 'KDI1LCJzcGFuIiksTmUoMjYsIlN5c3RlbSIpLHllKCkscXQoMjcsImNsci1pY29uIiwxNykseWUoKSxtZSgyOCwiYSIsMTgpLHh0KCJjbGljayIsZnVuY3Rpb24oZil7cmV0dXJuIGQubG9nb3V0KGYpfSksbWUoMjksInNwYW4iKSxOZSgzMCwiTG9nIE91dCIpLHllKCkscXQoMzEsImNsci1p'@; put 'Y29uIiwxNykseWUoKSgpKCkoKSksMiZhJiYoQ2UoMyksb3IoZC51c2VyTmFtZSksQ2UoMSksUmUoIm5nSWYiLCJOb3QgbG9nZ2VkIGluIiE9PWQudXNlck5hbWUmJmQuaXNWaXlhKSxDZSgxKSxSZSgibmdJZiIsIWQuc2FzanNDb25maWcuZGVidWcpLENlKDEpLFJlKCJuZ0lmIixkLnNhc2pz'@; put 'Q29uZmlnLmRlYnVnKSxDZSgxKSxSZSgibmdJZiIsIWQuaXNWaXlhKSxDZSgzKSxSZSgiY2xyLW5hdi1sZXZlbCIsMiksQ2UoMyksZ3IoIiAiLGQudXNlck5hbWUsIiAiKSxDZSg0KSxSZSgibmdNb2RlbCIsZC5zYXNqc0NvbmZpZy5kZWJ1ZykoIm5nTW9kZWxPcHRpb25zIiwkcyg5LGpDZSkp'@; put 'KX0sZGVwZW5kZW5jaWVzOltaaSxDcCxTMCxCcyx3cCxPcyxyMixCdSxrYSxjMixVcyxEMCxEOCxUMCx6USxOZixhZyxsZyxLOF0sc3R5bGVzOlsnLmNvcHlSaWdodFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxMHB4fS5jb3B5UmlnaHRbX25nY29udGVudC0lQ09NUCVdICAgc3Bh'@; put 'bltfbmdjb250ZW50LSVDT01QJV17d29yZC1icmVhazpicmVhay13b3JkO3doaXRlLXNwYWNlOnByZS13cmFwO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MS41fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLXJpZ2h0OjE1cHg7'@; put 'bGluZS1oZWlnaHQ6M3JlbTtoZWlnaHQ6M3JlbX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gPiBidXR0b24uZHJvcGRvd24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmFmYWZhO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2Nv'@; put 'bnRlbnQtJUNPTVAlXSA+IGJ1dHRvbi5kcm9wZG93bi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdOmFmdGVye2NvbnRlbnQ6IiI7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO29wYWNpdHk6LjE1O2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjQwcHg7dG9wOjEw'@; put 'cHh9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdID4gYnV0dG9uLmRyb3Bkb3duLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV0gICAuYmFkZ2UuaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXt2aXNpYmlsaXR5OmhpZGRlbn0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50'@; put 'LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzU2NTY1NjtwYWRkaW5nLWJvdHRvbTowfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZXBhcmF0'@; put 'b3JbX25nY29udGVudC0lQ09NUCVde21hcmdpbjoxMHB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JheX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250'@; put 'ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjQ1cHg7bGluZS1oZWlnaHQ6NDBweH0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVu'@; put 'dVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLmRyb3Bkb3duLXRleHRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM1NjU2NTZ9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1l'@; put 'bnVbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duLWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLmJhZGdlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTVweDtyaWdodDoyNnB4O21hcmdpbi1yaWdodDowfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRl'@; put 'bnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtLmRlYnVnLXN3aXRjaC1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjB9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3du'@; put 'LW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duLWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgLnRvZ2dsZS1zd2l0Y2hbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYXBwLW5hdi1kcm9w'@; put 'ZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAuY2xyLWxvZ291dFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjBweDt0b3A6'@; put 'MTVweH0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAw'@; put 'JX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci10b2dnbGUtd3JhcHBlcnt3aWR0aDoxMDAlO21hcmdpbjowO2hlaWdodDox'@; put 'MDAlO3BhZGRpbmc6MTBweCAyMHB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgaW5wdXR7aW5zZXQ6MDt3aWR0aDoxMDAlO2hl'@; put 'aWdodDoxMDAlO2N1cnNvcjpwb2ludGVyfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci10b2dnbGUtd3JhcHBlciBpbnB1'@; put 'dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlcnt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50fS5kZWJ1Zy10b2dnbGUtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctbGVmdDo0MnB4fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LnNpZGVuYXYtY29udGVudFtfbmdjb250ZW50'@; put 'LSVDT01QJV0gICBhLm5hdi1saW5rLmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6aW5oZXJpdDtwYWRkaW5nOjE1cHg7YmFja2dyb3VuZDojNTY1NjU2fX0ubmF2LWxpbmsuZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLmJhZGdlW19uZ2NvbnRlbnQtJUNPTVAlXXtw'@; put 'b3NpdGlvbjphYnNvbHV0ZX0uYXZhdGFyLWltZ1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tbGVmdDoxMHB4O2JvcmRlci1yYWRpdXM6NTBweH0nXX0pLGN9KSgpO2Z1bmN0aW9uIFVDZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNs'@; put 'ci1hbGVydCIsMikseHQoImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4ganQoQnQoYSkuJGltcGxpY2l0LmNsb3NlZD1oKX0pKCJjbHJBbGVydENsb3NlZENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMikub25BbGVydENsb3NlKCkpfSksbWUo'@; put 'MSwiZGl2IiwzKSgyLCJzcGFuIiw0KSxOZSgzKSx5ZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7UmUoImNsckFsZXJ0VHlwZSIsYS50eXBlKSgiY2xyQWxlcnRBcHBMZXZlbCIsITApKCJjbHJBbGVydENsb3NlZCIsYS5jbG9zZWQpLENlKDMpLGdyKCIgIixhLm1lc3NhZ2Us'@; put 'IiAiKX19ZnVuY3Rpb24gWkNlKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLWFsZXJ0cyIpLEplKDEsVUNlLDQsNCwiY2xyLWFsZXJ0IiwxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdGb3JPZiIsYS5hbGVydHMpfX1sZXQgWUNlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0'@; put 'b3IoYSl7dGhpcy5fYWxlcnRzU2VydmljZT1hLHRoaXMuYWxlcnRzPVtdLHRoaXMuaGFzT3BlbkFsZXJ0PSExLHRoaXMuYWxlcnRzU3ViPW5ldyBlZX1uZ09uSW5pdCgpe3RoaXMuYWxlcnRzU3ViPXRoaXMuX2FsZXJ0c1NlcnZpY2UuYWxlcnRzLnN1YnNjcmliZShhPT57dGhpcy5hbGVydHMu'@; put 'cHVzaChhKSx0aGlzLmhhc09wZW5BbGVydD0hMCxhLmVyciYmY29uc29sZS5lcnJvcihhLmVycil9KX1vbkFsZXJ0Q2xvc2UoKXt0aGlzLmhhc09wZW5BbGVydD10aGlzLmFsZXJ0cy5zb21lKGE9PiFhLmNsb3NlZCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3'@; put 'KGF8fGMpKHR0KGxQKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1hbGVydHMiXV0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbNCwibmdJZiJdLFszLCJjbHJBbGVydFR5cGUiLCJjbHJBbGVydEFwcExldmVsIiwiY2xyQWxlcnRDbG9zZWQiLCJjbHJBbGVydENs'@; put 'b3NlZENoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsImNsckFsZXJ0VHlwZSIsImNsckFsZXJ0QXBwTGV2ZWwiLCJjbHJBbGVydENsb3NlZCIsImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIl0sWzEsImFsZXJ0LWl0ZW0iXSxbMSwiYWxlcnQtdGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihh'@; put 'LGQpezEmYSYmSmUoMCxaQ2UsMiwxLCJjbHItYWxlcnRzIiwwKSwyJmEmJlJlKCJuZ0lmIixkLmhhc09wZW5BbGVydCl9LGRlcGVuZGVuY2llczpbeHMsWmksSGIsSFEsTmJdLHN0eWxlczpbImNsci1hbGVydHNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxjfSkoKSxq'@; put 'RT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5jbGFzc2VzPSIifW5nT25Jbml0KCl7fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siY29udGFjdC1saW5rIl1dLGlucHV0'@; put 'czp7Y2xhc3NlczoiY2xhc3NlcyJ9LGRlY2xzOjIsdmFyczozLGNvbnN0czpbWyJocmVmIiwibWFpbHRvOnN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8/c3ViamVjdD1MaWNlbmNlIiwzLCJuZ0NsYXNzIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiYSIsMCksTmUoMSwi'@; put 'c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIpLHllKCkpLDImYSYmKGRyKCJ1bnNldCIsIiIhPT1kLmNsYXNzZXMpLFJlKCJuZ0NsYXNzIixkLmNsYXNzZXMpKX0sZGVwZW5kZW5jaWVzOltkY10sc3R5bGVzOlsiLnVuc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp1bnNldH0iXX0pLGN9'@; put 'KSgpLFliPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmZpbGVPdmVyPSExLHRoaXMuZmlsZURyb3BwZWQ9bmV3IEVyLHRoaXMuZmlsZURyYWdnZWRPdmVyPW5ldyBFcn1vbkRyYWdPdmVyKGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY29u'@; put 'dGFpbnNGaWxlcyhhKSYmIXRoaXMuZmlsZU92ZXImJih0aGlzLmZpbGVPdmVyPSEwLHRoaXMuZmlsZURyYWdnZWRPdmVyLmVtaXQoKSl9b25EcmFnTGVhdmUoYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5maWxlT3Zlcj0hMX1vbmRyb3AoYSl7YS5wcmV2'@; put 'ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5maWxlT3Zlcj0hMTtjb25zdCBkPWEuZGF0YVRyYW5zZmVyLmZpbGVzO2QubGVuZ3RoPjAmJnRoaXMuZmlsZURyb3BwZWQuZW1pdChkKX1jb250YWluc0ZpbGVzKGEpe2lmKGEmJmEuZGF0YVRyYW5zZmVyJiZhLmRhdGFUcmFu'@; put 'c2Zlci50eXBlcylmb3IobGV0IGQ9MDtkPGEuZGF0YVRyYW5zZmVyLnR5cGVzLmxlbmd0aDtkKyspaWYoIkZpbGVzIj09YS5kYXRhVHJhbnNmZXIudHlwZXNbZF0pcmV0dXJuITB9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWRpcj1D'@; put 'cih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJhcHBEcmFnTmRyb3AiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJkcmFnb3ZlciIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25EcmFnT3ZlcihmKX0pKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKGYpe3Jl'@; put 'dHVybiBkLm9uRHJhZ0xlYXZlKGYpfSkoImRyb3AiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uZHJvcChmKX0pLDImYSYmZHIoImZpbGVvdmVyIixkLmZpbGVPdmVyKX0sb3V0cHV0czp7ZmlsZURyb3BwZWQ6ImZpbGVEcm9wcGVkIixmaWxlRHJhZ2dlZE92ZXI6ImZpbGVEcmFnZ2VkT3ZlciJ9'@; put 'fSksY30pKCk7ZnVuY3Rpb24gV0NlKGMsbCl7MSZjJiYobWUoMCwicCIsNiksTmUoMSwiTm8gcmVxdWVzdHMgbWFkZSIpLHllKCkpfWZ1bmN0aW9uIEdDZShjLGwpezEmYyYmKG1lKDAsInNwYW4iKSxxdCgxLCJjbHItaWNvbiIsMTMpLHllKCkpfWZ1bmN0aW9uICRDZShjLGwpezEmYyYmKG1l'@; put 'KDAsInNwYW4iKSxxdCgxLCJjbHItaWNvbiIsMTQpLHllKCkpfWZ1bmN0aW9uIHFDZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDIxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgZj1CdChhKS4kaW1wbGljaXQsXz1WZSgzKS5pbmRleDtyZXR1'@; put 'cm4ganQoVmUoMikuZ29Ub0xvZ0xpbmUoZiwicmVxdWVzdF8iK18sImVycm9yIikpfSksbWUoMSwiYnV0dG9uIiwyMiksTmUoMikseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgyKSxncigiICIsYSwiICIpfX1jb25zdCB1ZWU9ZnVuY3Rpb24oKXtyZXR1cm5bXX07ZnVu'@; put 'Y3Rpb24gS0NlKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXRyZWUtbm9kZSIsMTgpLHF0KDEsImNsci1pY29uIiwxOSksTmUoMiksSmUoMyxxQ2UsMywxLCJjbHItdHJlZS1ub2RlIiwyMCkseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpLiRpbXBsaWNpdDtDZSgyKSxncigiIEVycm9ycyAoIixh'@; put 'LmxvZ0Vycm9ycy5sZW5ndGgsIikgIiksQ2UoMSksUmUoIm5nRm9yT2YiLGEubG9nRXJyb3JzfHwkcygyLHVlZSkpfX1mdW5jdGlvbiBYQ2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwyMSkseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQo'@; put 'YSkuJGltcGxpY2l0LF89VmUoMykuaW5kZXg7cmV0dXJuIGp0KFZlKDIpLmdvVG9Mb2dMaW5lKGYsInJlcXVlc3RfIitfLCJ3YXJuaW5nIikpfSksbWUoMSwiYnV0dG9uIiwyMiksTmUoMikseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgyKSxncigiICIsYSwiICIpfX1m'@; put 'dW5jdGlvbiBKQ2UoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdHJlZS1ub2RlIiwxOCkscXQoMSwiY2xyLWljb24iLDIzKSxOZSgyKSxKZSgzLFhDZSwzLDEsImNsci10cmVlLW5vZGUiLDIwKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMikuJGltcGxpY2l0O0NlKDIpLGdyKCIgV2FybmluZ3Mg'@; put 'KCIsYS5sb2dXYXJuaW5ncy5sZW5ndGgsIikgIiksQ2UoMSksUmUoIm5nRm9yT2YiLGEubG9nV2FybmluZ3N8fCRzKDIsdWVlKSl9fWZ1bmN0aW9uIFFDZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImJ1dHRvbiIsMjQpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25z'@; put 'dCBoPVZlKDIpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoMikuZG93bmxvYWRMb2coaC5sb2dGaWxlKSl9KSxOZSgxLCIgRG93bmxvYWQgIikseWUoKX19ZnVuY3Rpb24gZVNlKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXRhYi1jb250ZW50IikoMSwiY2xyLXRyZWUiKSxKZSgyLEtDZSw0LDMs'@; put 'ImNsci10cmVlLW5vZGUiLDE1KSxKZSgzLEpDZSw0LDMsImNsci10cmVlLW5vZGUiLDE1KSx5ZSgpLHF0KDQsImRpdiIsMTYpLEplKDUsUUNlLDIsMCwiYnV0dG9uIiwxNykseWUoKSksMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0O0NlKDIpLFJlKCJuZ0lmIixhLmxvZ0Vycm9ycyksQ2Uo'@; put 'MSksUmUoIm5nSWYiLGEubG9nV2FybmluZ3MpLENlKDEpLFJlKCJpbm5lckhUTUwiLGEubG9nRmlsZSxxMiksQ2UoMSksUmUoIm5nSWYiLChudWxsPT1hLmxvZ0ZpbGU/bnVsbDphLmxvZ0ZpbGUubGVuZ3RoKT4wKX19ZnVuY3Rpb24gdFNlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUo'@; put 'MCwiYnV0dG9uIiwyNCkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMikuJGltcGxpY2l0O3JldHVybiBqdChWZSgyKS5kb3dubG9hZFNvdXJjZUNvZGUoaC5zb3VyY2VDb2RlKSl9KSxOZSgxLCIgRG93bmxvYWQgIikseWUoKX19ZnVuY3Rpb24gblNlKGMsbCl7aWYo'@; put 'MSZjJiYobWUoMCwiY2xyLXRhYi1jb250ZW50IikoMSwiZGl2IiwyNSksTmUoMikseWUoKSxKZSgzLHRTZSwyLDAsImJ1dHRvbiIsMTcpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdDtDZSgyKSxvcihhLnNvdXJjZUNvZGUpLENlKDEpLFJlKCJuZ0lmIiwobnVsbD09YS5zb3Vy'@; put 'Y2VDb2RlP251bGw6YS5zb3VyY2VDb2RlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIHJTZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImJ1dHRvbiIsMjQpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoMikuZG93'@; put 'bmxvYWRHZW5lcmF0ZWRDb2RlKGguZ2VuZXJhdGVkQ29kZSkpfSksTmUoMSwiIERvd25sb2FkICIpLHllKCl9fWZ1bmN0aW9uIGlTZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10YWItY29udGVudCIpKDEsImRpdiIsMjUpLE5lKDIpLHllKCksSmUoMyxyU2UsMiwwLCJidXR0b24iLDE3KSx5'@; put 'ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7Q2UoMiksZ3IoIiAiLGEuZ2VuZXJhdGVkQ29kZSwiICIpLENlKDEpLFJlKCJuZ0lmIiwobnVsbD09YS5nZW5lcmF0ZWRDb2RlP251bGw6YS5nZW5lcmF0ZWRDb2RlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIG9TZShjLGwpe2lmKDEmYyl7'@; put 'Y29uc3QgYT1WbigpO21lKDAsImRpdiIsMzEpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoMykuJGltcGxpY2l0LnNlbGVjdGVkVGFibGU9Zi5rZXkpfSksTmUoMSkseWUoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZHIo'@; put 'InNlbGVjdGVkIixWZSgzKS4kaW1wbGljaXQuc2VsZWN0ZWRUYWJsZT09PWEua2V5KSxDZSgxKSxncigiICIsYS5rZXksIiAiKX19ZnVuY3Rpb24gc1NlKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiKSxKZSgxLG9TZSwyLDMsImRpdiIsMzApLGJhKDIsImtleXZhbHVl'@; put 'IikseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpLiRpbXBsaWNpdDtDZSgxKSxSZSgibmdGb3JPZiIsWmwoMiwxLGEuU0FTV09SSykpfX1mdW5jdGlvbiBhU2UoYyxsKXtpZigxJmMmJihtZSgwLCJwIiwzNSkoMSwic3Ryb25nIiksTmUoMikseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMykuJGlt'@; put 'cGxpY2l0O0NlKDIpLGdyKCIiLGEuc2VsZWN0ZWRUYWJsZSwiIChmaXJzdCAxMCByb3dzKSAiKX19ZnVuY3Rpb24gbFNlKGMsbCl7aWYoMSZjJiYobWUoMCwidGgiKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMSksZ3IoIiAiLGEua2V5LCIgIil9fWZ1bmN0aW9u'@; put 'IGNTZShjLGwpe2lmKDEmYyYmKG1lKDAsInRkIiksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoKS4kaW1wbGljaXQ7Q2UoMSksZ3IoIiAiLGRbYS5rZXldLCIgIil9fWZ1bmN0aW9uIHVTZShjLGwpe2lmKDEmYyYmKG1lKDAsInRyIiksSmUoMSxjU2UsMiwxLCJ0'@; put 'ZCIsMzcpLGJhKDIsImtleXZhbHVlIikseWUoKSksMiZjKXtjb25zdCBhPVZlKDQpLiRpbXBsaWNpdDtDZSgxKSxSZSgibmdGb3JPZiIsWmwoMiwxLGEuU0FTV09SS1thLnNlbGVjdGVkVGFibGVdLmZpcnN0MTByb3dzWzBdKSl9fWZ1bmN0aW9uIGRTZShjLGwpe2lmKDEmYyYmKG1lKDAsInRh'@; put 'YmxlIiwzNikoMSwidGhlYWQiKSgyLCJ0ciIpLEplKDMsbFNlLDIsMSwidGgiLDM3KSxiYSg0LCJrZXl2YWx1ZSIpLHllKCkoKSxtZSg1LCJ0Ym9keSIpLEplKDYsdVNlLDMsMywidHIiLDM3KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgzKS4kaW1wbGljaXQ7Q2UoMyksUmUoIm5nRm9yT2Yi'@; put 'LFpsKDQsMixhLlNBU1dPUktbYS5zZWxlY3RlZFRhYmxlXS5maXJzdDEwcm93c1swXSkpLENlKDMpLFJlKCJuZ0Zvck9mIixhLlNBU1dPUktbYS5zZWxlY3RlZFRhYmxlXS5maXJzdDEwcm93cyl9fWZ1bmN0aW9uIGhTZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10YWItY29udGVudCIpLEpl'@; put 'KDEsYVNlLDMsMSwicCIsMzIpLG1lKDIsImRpdiIsMzMpLEplKDMsZFNlLDcsNCwidGFibGUiLDM0KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgyKS4kaW1wbGljaXQ7Q2UoMSksUmUoIm5nSWYiLGEuc2VsZWN0ZWRUYWJsZSksQ2UoMiksUmUoIm5nSWYiLGEuc2VsZWN0ZWRUYWJsZSl9fWZ1'@; put 'bmN0aW9uIGZTZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10YWIiKSgxLCJjbHItZHJvcGRvd24iLDI2KSgyLCJidXR0b24iLDI3KSxOZSgzLCIgU0FTIFdvcmsgVGFibGVzICIpLHF0KDQsImNsci1pY29uIiwyOCkseWUoKSxKZSg1LHNTZSwzLDMsImNsci1kcm9wZG93'@; put 'bi1tZW51IiwyOSkseWUoKSxKZSg2LGhTZSw0LDIsIm5nLXRlbXBsYXRlIiwxMikseHQoImNscklmQWN0aXZlQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoMykudGFibGVzQWN0aXZlPWgpfSkseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoMyk7Q2UoMSksUmUoImNsckNs'@; put 'b3NlTWVudU9uSXRlbUNsaWNrIiwhMCksQ2UoNSksUmUoImNscklmQWN0aXZlIixhLnRhYmxlc0FjdGl2ZSl9fWZ1bmN0aW9uIHBTZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1zdGFjay1ibG9jayIsOCkoMSwiY2xyLXN0YWNrLWxhYmVsIiksTmUoMiksbWUoMywic3Bh'@; put 'biIsOSksSmUoNCxHQ2UsMiwwLCJzcGFuIiw1KSxKZSg1LCRDZSwyLDAsInNwYW4iLDUpLHllKCkoKSxtZSg2LCJjbHItc3RhY2stY29udGVudCIpLE5lKDcpLHllKCksbWUoOCwiY2xyLXN0YWNrLWJsb2NrIiwxMCkoOSwiY2xyLXN0YWNrLWNvbnRlbnQiKSgxMCwiY2xyLXRhYnMiKSgxMSwi'@; put 'Y2xyLXRhYiIpKDEyLCJidXR0b24iLDExKSxOZSgxMywiU0FTIExvZyIpLHllKCksSmUoMTQsZVNlLDYsNCwibmctdGVtcGxhdGUiLDEyKSx4dCgiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgyKS5zYXNMb2dBY3RpdmU9aCl9KSx5ZSgpLG1lKDE1'@; put 'LCJjbHItdGFiIikoMTYsImJ1dHRvbiIsMTEpLE5lKDE3LCJTQVMgU291cmNlIENvZGUiKSx5ZSgpLEplKDE4LG5TZSw0LDIsIm5nLXRlbXBsYXRlIiwxMikseHQoImNscklmQWN0aXZlQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoMikuc2FzU291cmNlQ29kZUFjdGl2'@; put 'ZT1oKX0pLHllKCksbWUoMTksImNsci10YWIiKSgyMCwiYnV0dG9uIiwxMSksTmUoMjEsIlNBUyBHZW5lcmF0ZWQgQ29kZSIpLHllKCksSmUoMjIsaVNlLDQsMiwibmctdGVtcGxhdGUiLDEyKSx4dCgiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgy'@; put 'KS5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlPWgpfSkseWUoKSxKZSgyMyxmU2UsNywyLCJjbHItdGFiIiw1KSx5ZSgpKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPWwuaW5kZXgsaD1WZSgyKTtSZSgiaWQiLCJyZXF1ZXN0XyIrZCkoImNsclN0YWNrVmlld0xldmVsIiwxKSgi'@; put 'Y2xyU3RhY2tWaWV3U2V0c2l6ZSIsMykoImNsclN0YWNrVmlld1Bvc2luc2V0IiwzKSxDZSgyKSxncigiICIsYS5zZXJ2aWNlTGluaywiICIpLENlKDIpLFJlKCJuZ0lmIiwobnVsbD09YS5sb2dXYXJuaW5ncz9udWxsOmEubG9nV2FybmluZ3MubGVuZ3RoKT4wKSxDZSgxKSxSZSgibmdJZiIs'@; put 'KG51bGw9PWEubG9nRXJyb3JzP251bGw6YS5sb2dFcnJvcnMubGVuZ3RoKT4wKSxDZSgyKSxvcihhLnBhcnNlZFRpbWVzdGFtcCksQ2UoNyksUmUoImNscklmQWN0aXZlIixoLnNhc0xvZ0FjdGl2ZSksQ2UoNCksUmUoImNscklmQWN0aXZlIixoLnNhc1NvdXJjZUNvZGVBY3RpdmUpLENlKDQp'@; put 'LFJlKCJjbHJJZkFjdGl2ZSIsaC5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlKSxDZSgxKSxSZSgibmdJZiIsYS5TQVNXT1JLKX19ZnVuY3Rpb24gZ1NlKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXN0YWNrLXZpZXciKSxKZSgxLHBTZSwyNCwxMiwiY2xyLXN0YWNrLWJsb2NrIiw3KSx5ZSgpKSwy'@; put 'JmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdGb3JPZiIsYS5zYXNqc1JlcXVlc3RzKX19bGV0IG1TZT0oKCk9PntjbGFzcyBje2dldCBvcGVuZWQoKXtyZXR1cm4gdGhpcy5fb3BlbmVkfXNldCBvcGVuZWQoYSl7dGhpcy5fb3BlbmVkPWEsYSYmdGhpcy5tb2RhbE9wZW5lZCgpLHRoaXMu'@; put 'bG9nZ2VyU2VydmljZS5sb2codGhpcy5zYXNqc1JlcXVlc3RzKX1jb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5zYXNTZXJ2aWNlPWEsdGhpcy5sb2dnZXJTZXJ2aWNlPWQsdGhpcy5oZWxwZXJTZXJ2aWNlPWgsdGhpcy5fb3BlbmVkPSExLHRoaXMub3BlbmVkQ2hhbmdlPW5ldyBFcix0aGlzLnNh'@; put 'c0xvZ0FjdGl2ZT0hMCx0aGlzLnNhc1NvdXJjZUNvZGVBY3RpdmU9ITEsdGhpcy5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlPSExLHRoaXMudGFibGVzQWN0aXZlPSExLHRoaXMuc2FzanNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksdGhpcy5zYXNqc1JlcXVlc3RzPVtd'@; put 'fW5nT25Jbml0KCl7fXBhcnNlTG9nVGltZXN0YW1wKGEpe3JldHVybmAke3RoaXMuZm9ybWF0VGltZXN0YW1wKGEpfSAke3RoaXMudGltZXN0YW1wRnJvbU5vdyhhKX1gfWN1dEFwcExvYyhhKXtyZXR1cm4gYS5yZXBsYWNlKHRoaXMuc2FzanNDb25maWcuYXBwTG9jKyIvIiwiIil9Zm9ybWF0'@; put 'VGltZXN0YW1wKGEpe3JldHVybiBLbyhhKS5mb3JtYXQoKT9LbyhhKS5mb3JtYXQoImRkZGQsIE1NTU0gRG8gWVlZWSwgaDptbTpzcyBhIik6YX10aW1lc3RhbXBGcm9tTm93KGEpe3JldHVybiBLbyhhKS5mb3JtYXQoKT9gICgke0tvKGEpLmZyb21Ob3coKX0pYDoiIn1tb2RhbE9wZW5DaGFu'@; put 'Z2UoYSl7dGhpcy5vcGVuZWQ9YSx0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHRoaXMub3BlbmVkKX1tb2RhbE9wZW5lZCgpe3RoaXMuc2FzanNSZXF1ZXN0cz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzUmVxdWVzdHMoKTtmb3IobGV0IGEgb2YgdGhpcy5zYXNqc1JlcXVlc3RzKXRoaXMucGFyc2VF'@; put 'cnJvcnNBbmRXYXJuaW5ncyhhKSxhLnNlcnZpY2VMaW5rPXRoaXMuY3V0QXBwTG9jKGEuc2VydmljZUxpbmspLGEucGFyc2VkVGltZXN0YW1wPXRoaXMucGFyc2VMb2dUaW1lc3RhbXAoYS50aW1lc3RhbXApfWdvVG9Mb2dMaW5lKGEsZCxoKXtsZXQgZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9y'@; put 'QWxsKGAjJHtkfSAubG9nLXdyYXBwZXIuc2FzbG9nIGZvbnRgKSxfPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke2R9IC5sb2ctd3JhcHBlci5zYXNsb2dgKTtmb3IobGV0IFQgb2YgZilULnRleHRDb250ZW50LmluY2x1ZGVzKGEpJiYoXy5zY3JvbGxUb3A9VC5vZmZzZXRUb3AtXy5vZmZz'@; put 'ZXRUb3AsVC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiM2MWEyMjAyYiIsc2V0VGltZW91dCgoKT0+e1Quc3R5bGU9IiJ9LDNlMykpfXBhcnNlRXJyb3JzQW5kV2FybmluZ3MoYSl7dmFyIGQ9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7aWYoIWF8fCFhLmxvZ0ZpbGV8fCJzdHJpbmciIT10'@; put 'eXBlb2YgYS5sb2dGaWxlfHx2b2lkIDAhPT1hLmxvZ0Vycm9yc3x8dm9pZCAwIT09YS5sb2dXYXJuaW5ncylyZXR1cm47bGV0IGg9W10sZj1bXSxfPWEubG9nRmlsZS5zcGxpdCgiXG4iKTtmb3IobGV0IFQ9MDtUPF8ubGVuZ3RoO1QrKyl7aWYoLzwuKj5FUlJPUi9nbS50ZXN0KF9bVF0pKXts'@; put 'ZXQgVz1fW1RdLnN1YnN0cmluZyhfW1RdLmluZGV4T2YoIkUiKSxfW1RdLmxlbmd0aC0xKTtoLnB1c2goVyl9ZWxzZS9eRVJST1IvZ20udGVzdChfW1RdKSYmKGgucHVzaChfW1RdKSxfW1RdPSI8Zm9udD4iK19bVF0rIjwvZm9udD4iKTtpZigvPC4qPldBUk5JTkcvZ20udGVzdChfW1RdKSl7'@; put 'bGV0IFc9X1tUXS5zdWJzdHJpbmcoX1tUXS5pbmRleE9mKCJXIiksX1tUXS5sZW5ndGgtMSk7Zi5wdXNoKFcpfWVsc2UvXldBUk5JTkcvZ20udGVzdChfW1RdKSYmKGYucHVzaChfW1RdKSxfW1RdPSI8Zm9udD4iK19bVF0rIjwvZm9udD4iKX1kLmxvZ2dlclNlcnZpY2UubG9nKGYpLGEubG9n'@; put 'RmlsZT1fLmpvaW4oIlxuIiksYS5sb2dFcnJvcnM9aCxhLmxvZ1dhcm5pbmdzPWZ9KSgpfWRvd25sb2FkTG9nKGEpe2NvbnN0IGQ9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGxvZ0ZpbGUtJHtkfWAsYSl9ZG93bmxvYWRTb3VyY2VD'@; put 'b2RlKGEpe2NvbnN0IGQ9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYHNvdXJjZUNvZGUtJHtkfWAsYSl9ZG93bmxvYWRHZW5lcmF0ZWRDb2RlKGEpe2NvbnN0IGQ9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNl'@; put 'LmRvd25sb2FkVGV4dEZpbGUoYGdlbmVyYXRlZENvZGUtJHtkfWAsYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KG9hKSx0dCh3MCksdHQoVGMpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXJlcXVlc3RzLW1v'@; put 'ZGFsIl1dLGlucHV0czp7b3BlbmVkOiJvcGVuZWQifSxvdXRwdXRzOntvcGVuZWRDaGFuZ2U6Im9wZW5lZENoYW5nZSJ9LGRlY2xzOjgsdmFyczo0LGNvbnN0czpbWyJjbHJNb2RhbFNpemUiLCJ4bCIsMSwicmVxdWVzdHMtbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNo'@; put 'YW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtdC0wIiwiZC1pbmxpbmUtYmxvY2siXSxbMSwibW9kYWwtYm9keSIsImgtNzB2aCJdLFsiY2xhc3MiLCJuby1yZXFzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwibm8tcmVxcyJdLFszLCJpZCIsImNsclN0YWNrVmlld0xldmVsIiwiY2xy'@; put 'U3RhY2tWaWV3U2V0c2l6ZSIsImNsclN0YWNrVmlld1Bvc2luc2V0Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiaWQiLCJjbHJTdGFja1ZpZXdMZXZlbCIsImNsclN0YWNrVmlld1NldHNpemUiLCJjbHJTdGFja1ZpZXdQb3NpbnNldCJdLFsxLCJtbC0xMCJdLFsxLCJjb250ZW50Il0sWyJj'@; put 'bHJUYWJMaW5rIiwiIl0sWzMsImNscklmQWN0aXZlIiwiY2xySWZBY3RpdmVDaGFuZ2UiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwxLCJtYi01IiwiY29sb3ItZ3JlZW4iXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLDEsIm1iLTUiLCJjb2xvci1yZWQiXSxbImNs'@; put 'YXNzIiwiZXJyLWxpbmtzIiw0LCJuZ0lmIl0sWzEsImxvZy13cmFwcGVyIiwic2FzbG9nIiwzLCJpbm5lckhUTUwiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tbGluayIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwiZXJyLWxpbmtzIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9u'@; put 'LXRyaWFuZ2xlIiwxLCJjb2xvci1yZWQiXSxbMywiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJjbGljayJdLFsxLCJjbHItdHJlZW5vZGUtbGluayJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLDEsImNvbG9yLWdyZWVuIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4i'@; put 'LCJidG4tbGluayIsMywiY2xpY2siXSxbMSwibG9nLXdyYXBwZXIiXSxbImNsclRhYkxpbmsiLCIiLDEsIndvcmstdGFibGVzLWRyb3Bkb3duIiwzLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwi'@; put 'Y2xySWZPcGVuIl0sWyJjbGFzcyIsImRyb3Bkb3duLWl0ZW0iLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsInNlbGVjdGVkIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkcm9wZG93bi1pdGVtIiwzLCJjbGljayJdLFsiY2xhc3MiLCJtdC0x'@; put 'MCIsNCwibmdJZiJdLFsxLCJtaW4taC01MHZoIl0sWyJjbGFzcyIsInRhYmxlIG10LTEwIiw0LCJuZ0lmIl0sWzEsIm10LTEwIl0sWzEsInRhYmxlIiwibXQtMTAiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiY2xyLW1vZGFsIiww'@; put 'KSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5tb2RhbE9wZW5DaGFuZ2UoZil9KSxtZSgxLCJoMyIsMSksTmUoMiwiIFJlcXVlc3QgSGlzdG9yeSAiKSxtZSgzLCJwIiwyKSxOZSg0KSx5ZSgpKCksbWUoNSwiZGl2IiwzKSxKZSg2LFdDZSwyLDAsInAiLDQp'@; put 'LEplKDcsZ1NlLDIsMSwiY2xyLXN0YWNrLXZpZXciLDUpLHllKCkoKSksMiZhJiYoUmUoImNsck1vZGFsT3BlbiIsZC5vcGVuZWQpLENlKDQpLGdyKCJBcHAgTG9jYXRpb246ICIsZC5zYXNqc0NvbmZpZy5hcHBMb2MsIiIpLENlKDIpLFJlKCJuZ0lmIiwobnVsbD09ZC5zYXNqc1JlcXVlc3Rz'@; put 'P251bGw6ZC5zYXNqc1JlcXVlc3RzLmxlbmd0aCk8MSksQ2UoMSksUmUoIm5nSWYiLGQub3BlbmVkJiYobnVsbD09ZC5zYXNqc1JlcXVlc3RzP251bGw6ZC5zYXNqc1JlcXVlc3RzLmxlbmd0aCk+MCkpfSxkZXBlbmRlbmNpZXM6W3hzLFppLHE4LHhRLG1ILE1RLGRkLGcxLERwLGthLG91LHN1'@; put 'LEU4LGMyLExwLE9wLGRnLFJwLElwLGNnLE5mLGFnLGxnLEs4LGR4XSxzdHlsZXM6WyIucmVxdWVzdHMtbW9kYWwgLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb257ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9ICAucmVxdWVzdHMtbW9kYWwgLm1vZGFsLWNvbnRlbnR7cGFkZGluZzoyMHB4'@; put 'IDEwcHggNXB4fSAgLndvcmstdGFibGVzLWRyb3Bkb3duIGJ1dHRvbntjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstY29sb3IsICM4YzhjOGMpIWltcG9ydGFudH0gIC5zdGFjay12aWV3e2hlaWdodDphdXRvIWltcG9ydGFudDttYXNrLWltYWdlOm5vbmUhaW1wb3J0YW50Oy13ZWJraXQtbWFz'@; put 'ay1pbWFnZTpub25lIWltcG9ydGFudH0gIC5jb250ZW50IGNsci1pY29ue21hcmdpbi1ib3R0b206NXB4fSAgLmNvbnRlbnQgcHJle3dvcmQtYnJlYWs6YnJlYWstYWxsO3doaXRlLXNwYWNlOnByZS13cmFwO21heC1oZWlnaHQ6aW5pdGlhbDtvdmVyZmxvdzp2aXNpYmxlO2JvcmRlcjowfSAg'@; put 'LmNvbnRlbnQgLnN0YWNrLWJsb2NrLWxhYmVse3dpZHRoOjEwMCU7cGFkZGluZy1sZWZ0Oi42cmVtIWltcG9ydGFudH0gIC5jb250ZW50IC5zdGFjay1ibG9jay1sYWJlbCAuc3RhY2stdmlldy1rZXl7ZGlzcGxheTpub25lIWltcG9ydGFudH0gIC5lcnItbGlua3MgLmNsci10cmVlbm9kZS1j'@; put 'aGlsZHJlbnttYXgtaGVpZ2h0OjU1cHg7b3ZlcmZsb3c6YXV0b30uZHJvcGRvd24taXRlbS5zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZDhlM2U5fS5sb2ctd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDo1MHB4O3BhZGRpbmc6MTBweDttYXJn'@; put 'aW4tdG9wOjEwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVyOjFweCBzb2xpZCAjZTJlMmUyO2JhY2tncm91bmQtY29sb3I6I2ZiZmJmYjtoZWlnaHQ6NDh2aDtvdmVyZmxvdzphdXRvfS5uby1yZXFzW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9w'@; put 'OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMDE5NjA3ODQzKTtwYWRkaW5nLXRvcDo1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Il19KSxjfSkoKTtjbGFzcyB2U2V7Y29uc3RydWN0b3IoKXt0aGlzLnNhc1NlcnZpY2U9bnVsbCx0aGlzLm1lc3NhZ2U9IiIsdGhpcy5kZXRhaWxzPW5ldyBkZWV9fWNs'@; put 'YXNzIGRlZXt9ZnVuY3Rpb24gX1NlKGMsbCl7aWYoMSZjJiYobWUoMCwicCIsOCksTmUoMSwiIFNBUyBTZXJ2aWNlOiAiKSxtZSgyLCJzdHJvbmciKSxOZSgzKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDMpLG9yKGEuZGF0YS5zYXNTZXJ2aWNlKX19ZnVuY3Rpb24gYlNlKGMsbCl7'@; put 'aWYoMSZjJiYobWUoMCwiZGl2Iiw5KSgxLCJwIikoMiwic3Ryb25nIiksTmUoMywiU1lTV0FSTklOR1RFWFQ6IikseWUoKSxOZSg0KSx5ZSgpLG1lKDUsInAiKSg2LCJzdHJvbmciKSxOZSg3LCJTWVNFUlJPUlRFWFQ6IikseWUoKSxOZSg4KSx5ZSgpLG1lKDksInAiKSgxMCwic3Ryb25nIiks'@; put 'TmUoMTEsIk1BQzoiKSx5ZSgpLE5lKDEyKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDQpLGdyKCIgIixhLmRhdGEuZGV0YWlscy5TWVNXQVJOSU5HVEVYVCwiIiksQ2UoNCksZ3IoIiAiLGEuZGF0YS5kZXRhaWxzLlNZU0VSUk9SVEVYVCwiIiksQ2UoNCksZ3IoIiAiLGEuZGF0YS5k'@; put 'ZXRhaWxzLk1BQywiIil9fWZ1bmN0aW9uIHlTZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImJ1dHRvbiIsMTApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5vcGVuQ29uZmlndXJhdG9yKCkpfSksTmUoMSwiIE9wZW4gY29uZmlndXJhdG9yICIp'@; put 'LHllKCl9fWZ1bmN0aW9uIHdTZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImJ1dHRvbiIsMTApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5vcGVuUmVxdWVzdHNNb2RhbCgpKX0pLE5lKDEsIiBPcGVuIHJlcXVlc3RzIG1vZGFsICIpLHllKCl9'@; put 'fWZ1bmN0aW9uIENTZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImJ1dHRvbiIsMTApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5kb3dubG9hZExvZygpKX0pLE5lKDEsIiBEb3dubG9hZCBsb2cgIikseWUoKX19ZnVuY3Rpb24gU1NlKGMsbCl7'@; put 'aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiwxMCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLmNsb3NlQWJvcnRNb2RhbCgpKX0pLE5lKDEsIiBDbG9zZSAiKSx5ZSgpfX1mdW5jdGlvbiBNU2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtt'@; put 'ZSgwLCJidXR0b24iLDEwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkucmVsb2FkKCkpfSksTmUoMSwiIFJlbG9hZCAiKSx5ZSgpfX1sZXQgeFNlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5oZWxwZXJTZXJ2aWNlPWEsdGhpcy5l'@; put 'dmVudFNlcnZpY2U9ZCx0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLnJvdXRlcj1mLHRoaXMub25Db25maXJtTW9kYWxDbGljaz1uZXcgRXIsdGhpcy5kYXRhPW5ldyB2U2UsdGhpcy5mb3JjZVJlbG9hZD0hMSx0aGlzLm1vZGFsRW5hYmxlZD0hMCx0aGlzLmRlZmF1bHREYXRhPXttb2RhbFRpdGxl'@; put 'OiJBYm9ydCBNZXNzYWdlIixzYXNTZXJ2aWNlOm51bGwsbWVzc2FnZToiIixkZXRhaWxzOm5ldyBkZWV9fW5nT25Jbml0KCl7bGV0IGE9ey4uLnRoaXMuZGVmYXVsdERhdGEsLi4udGhpcy5kYXRhfTt0aGlzLmRhdGE9YX1zaG93Q29uZmlndXJhdG9yQnV0dG9uKGEpe2NvbnN0IGQ9dGhpcy5z'@; put 'YXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCk7cmV0dXJuIGE/LmluY2x1ZGVzKCJzdGFydHVwc2VydmljZSIpJiZkLnNlcnZlclR5cGU9PT1aYy5ELlNhczl9Y2xvc2VBYm9ydE1vZGFsKCl7dGhpcy5vbkNvbmZpcm1Nb2RhbENsaWNrLmVtaXQoKX1vcGVuQ29uZmlndXJhdG9yKCl7dGhpcy5l'@; put 'dmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IiksdGhpcy5jbG9zZUFib3J0TW9kYWwoKX1kb3dubG9hZExvZygpe3RoaXMuaGVscGVyU2VydmljZS5kb3dubG9hZFRleHRGaWxlKGAke3RoaXMuZGF0YS5zYXNTZXJ2aWNl'@; put 'fS1MT0dgLHRoaXMuZGF0YS5kZXRhaWxzPy5MT0d8fCJFcnJvciBwYXJzaW5nIHRoZSBsb2ciKX1vcGVuUmVxdWVzdHNNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9wZW5SZXF1ZXN0c01vZGFsKCl9cmVsb2FkKCl7bG9jYXRpb24ucmVsb2FkKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KFRjKSx0dCh2bCksdHQob2EpLHR0KERzKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1pbmZvLW1vZGFsIl1dLGlucHV0czp7ZGF0YToiZGF0YSIsZm9yY2VSZWxvYWQ6ImZvcmNlUmVsb2FkIn0sb3V0cHV0czp7'@; put 'b25Db25maXJtTW9kYWxDbGljazoib25Db25maXJtTW9kYWxDbGljayJ9LGRlY2xzOjEzLHZhcnM6MTIsY29uc3RzOltbImFwcERyYWdOZHJvcCIsIiIsMSwiY2xyLWFib3J0LW1vZGFsIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9k'@; put 'YWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWyJjbGFzcyIsInNhc1NlcnZpY2UiLDQsIm5nSWYiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJhYm9ydE1zZyIsMywiaW5uZXJIVE1MIl0sWyJjbGFzcyIsInN5c3RleHQiLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBl'@; put 'IiwiYnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXByaW1hcnkiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEsInNhc1NlcnZpY2UiXSxbMSwic3lzdGV4dCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZh'@; put 'JiYobWUoMCwiY2xyLW1vZGFsIiwwKSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5tb2RhbEVuYWJsZWQ9Zn0pLG1lKDEsImgzIiwxKSxOZSgyKSxKZSgzLF9TZSw0LDEsInAiLDIpLHllKCksbWUoNCwiZGl2IiwzKSxxdCg1LCJkaXYiLDQpLEplKDYsYlNl'@; put 'LDEzLDMsImRpdiIsNSkseWUoKSxtZSg3LCJkaXYiLDYpLEplKDgseVNlLDIsMCwiYnV0dG9uIiw3KSxKZSg5LHdTZSwyLDAsImJ1dHRvbiIsNyksSmUoMTAsQ1NlLDIsMCwiYnV0dG9uIiw3KSxKZSgxMSxTU2UsMiwwLCJidXR0b24iLDcpLEplKDEyLE1TZSwyLDAsImJ1dHRvbiIsNykseWUo'@; put 'KSgpKSwyJmEmJihSZSgiY2xyTW9kYWxPcGVuIixkLm1vZGFsRW5hYmxlZCkoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCFkLmZvcmNlUmVsb2FkKSxDZSgyKSxncigiICIsZC5kYXRhLm1vZGFsVGl0bGUsIiAiKSxDZSgxKSxSZSgibmdJZiIsZC5kYXRhLnNhc1Nl'@; put 'cnZpY2UmJmQuZGF0YS5zYXNTZXJ2aWNlLmxlbmd0aD4wKSxDZSgyKSxSZSgiaW5uZXJIVE1MIixkLmRhdGEubWVzc2FnZSxxMiksQ2UoMSksUmUoIm5nSWYiLG51bGwhPT1kLmRhdGEuZGV0YWlscyksQ2UoMiksUmUoIm5nSWYiLGQuc2hvd0NvbmZpZ3VyYXRvckJ1dHRvbihkLmRhdGEuc2Fz'@; put 'U2VydmljZSkpLENlKDEpLFJlKCJuZ0lmIixudWxsIT09ZC5kYXRhLmRldGFpbHMpLENlKDEpLFJlKCJuZ0lmIiwobnVsbD09ZC5kYXRhLmRldGFpbHM/bnVsbDpkLmRhdGEuZGV0YWlscy5MT0cpJiYobnVsbD09ZC5kYXRhLmRldGFpbHN8fG51bGw9PWQuZGF0YS5kZXRhaWxzLkxPRz9udWxs'@; put 'OmQuZGF0YS5kZXRhaWxzLkxPRy50cmltKCkubGVuZ3RoKT4wKSxDZSgxKSxSZSgibmdJZiIsIWQuZm9yY2VSZWxvYWQpLENlKDEpLFJlKCJuZ0lmIixkLmZvcmNlUmVsb2FkKSl9LGRlcGVuZGVuY2llczpbWmksb3Usc3UsWWJdLHN0eWxlczpbIi5jbHItYWJvcnQtbW9kYWxbX25nY29udGVu'@; put 'dC0lQ09NUCVdICAgICAubW9kYWwtdGl0bGUtd3JhcHBlcnt3aWR0aDoxMDAlfS5jbHItYWJvcnQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWx7ei1pbmRleDoyMDUwfS5tb2RhbC10aXRsZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LnNhc1NlcnZp'@; put 'Y2VbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjEwcHg7bWFyZ2luOjB9Lm1vZGFsLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RjZGNkY30uc3lzdGV4dFtfbmdjb250ZW50'@; put 'LSVDT01QJV17b3ZlcmZsb3c6YXV0bzttYXJnaW4tdG9wOjIwcHg7cGFkZGluZzoxMHB4IDA7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RjZGNkY30uc3lzdGV4dFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjA7d29yZC13cmFwOmJyZWFrLXdv'@; put 'cmR9Il19KSxjfSkoKTtmdW5jdGlvbiBFU2UoYyxsKXsxJmMmJihWcigwKSxtZSgxLCJkaXYiLDIwKSgyLCJkaXYiLDIxKSgzLCJkaXYiLDIyKSxxdCg0LCJjbHItaWNvbiIsMjMpLHllKCksbWUoNSwiZGl2IiwyNCksTmUoNiwiIERhdGEgQ29udHJvbGxlciAoRlJFRSBUaWVyKSAtIHRvIHVw'@; put 'Z3JhZGUgY29udGFjdCAiKSxxdCg3LCJjb250YWN0LWxpbmsiLDI1KSx5ZSgpKCkoKSxtZSg4LCJhIiwyNiksTmUoOSwiVXBkYXRlIExpY2VuY2UgS2V5IikseWUoKSx6cigpKX1mdW5jdGlvbiBrU2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJkaXYiLDIwKSgyLCJk'@; put 'aXYiLDIxKSgzLCJkaXYiLDIyKSxxdCg0LCJjbHItaWNvbiIsMjMpLHllKCksbWUoNSwiZGl2IiwyNCksTmUoNiwiIERhdGEgQ29udHJvbGxlciAoRlJFRSBUaWVyKSAtIFByb2JsZW0gd2l0aCBsaWNlbmNlICIpLHllKCkoKSgpLG1lKDcsImEiLDI3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7'@; put 'QnQoYSk7Y29uc3QgaD1WZSgzKTtyZXR1cm4ganQoaC5saWNlbmNlUHJvYmxlbURldGFpbHMoaC5saWNlbmNlUHJvYmxlbS52YWx1ZSkpfSksTmUoOCwiTW9yZSBkZXRhaWxzIikseWUoKSx6cigpfX1mdW5jdGlvbiBBU2UoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDE5KSxKZSgxLEVTZSwx'@; put 'MCwwLCJuZy1jb250YWluZXIiLDEpLEplKDIsa1NlLDksMCwibmctY29udGFpbmVyIiwxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUoIm5nSWYiLG51bGw9PT1hLmxpY2VuY2VQcm9ibGVtLnZhbHVlKSxDZSgxKSxSZSgibmdJZiIsbnVsbCE9PWEubGljZW5jZVByb2JsZW0u'@; put 'dmFsdWUpfX1mdW5jdGlvbiBUU2UoYyxsKXsxJmMmJihtZSgwLCJhIiwyNiksTmUoMSwiVXBkYXRlIExpY2VuY2UgS2V5IikseWUoKSl9ZnVuY3Rpb24gRFNlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwyOCkoMSwiZGl2IiwyMCkoMiwiZGl2IiwyMSkoMywiZGl2IiwyMikscXQoNCwiY2xy'@; put 'LWljb24iLDIzKSx5ZSgpLG1lKDUsImRpdiIsMjQpLE5lKDYpLHF0KDcsImNvbnRhY3QtbGluayIsMjUpLE5lKDgpLHllKCkoKSgpLEplKDksVFNlLDIsMCwiYSIsMjkpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSg2KSx6YygiIFRoaXMgbGljZW5zZSBrZXkgd2lsbCBleHBpcmUgaW4g'@; put 'IixhLmxpY2Vuc2VFeHBpcmluZ0RheXMsIiAiLDE9PT1hLmxpY2Vuc2VFeHBpcmluZ0RheXM/ImRheSI6ImRheXMiLCIuIFBsZWFzZSBjb250YWN0ICIpLENlKDIpLGdyKCIgb3IgeW91ciByZXNlbGxlciB0byBhcnJhbmdlIGFkZGl0aW9uYWwgbGljZW5jZSBmb3Igc2l0ZSBpZCAiLGEuc3lz'@; put 'c2l0ZS5nZXRWYWx1ZSgpLCIuICIpLENlKDEpLFJlKCJuZ0lmIiwhYS5mcmVlVGllckJhbm5lcil9fWZ1bmN0aW9uIElTZShjLGwpezEmYyYmKG1lKDAsImEiLDI2KSxOZSgxLCJVcGRhdGUgTGljZW5jZSBLZXkiKSx5ZSgpKX1mdW5jdGlvbiBMU2UoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYi'@; put 'LDI4KSgxLCJkaXYiLDIwKSgyLCJkaXYiLDIxKSgzLCJkaXYiLDIyKSxxdCg0LCJjbHItaWNvbiIsMjMpLHllKCksbWUoNSwiZGl2IiwyNCksTmUoNiwiIFRoZSByZWdpc3RlcmVkIG51bWJlciBvZiB1c2VycyBleGNlZWRzIHRoZSBsaW1pdCBzcGVjaWZpZWQgZm9yIHlvdXIgbGljZW5zZS4g'@; put 'UGxlYXNlIGNvbnRhY3QgIikscXQoNywiY29udGFjdC1saW5rIiwyNSksTmUoOCkseWUoKSgpKCksSmUoOSxJU2UsMiwwLCJhIiwyOSkseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDgpLGdyKCIgb3IgeW91ciByZXNlbGxlciB0byBhcnJhbmdlIGFkZGl0aW9uYWwgbGljZW5jZSBmb3Ig'@; put 'c2l0ZSBpZCAiLGEuc3lzc2l0ZS5nZXRWYWx1ZSgpLCIuICIpLENlKDEpLFJlKCJuZ0lmIiwhYS5saWNlbnNlRXhwaXJpbmdEYXlzJiYhYS5mcmVlVGllckJhbm5lcil9fWZ1bmN0aW9uIFJTZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsQVNlLDMsMiwiZGl2IiwxNyksSmUoMixEU2UsMTAs'@; put 'NCwiZGl2IiwxOCksSmUoMyxMU2UsMTAsMiwiZGl2IiwxOCksenIoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksUmUoIm5nSWYiLGEuZnJlZVRpZXJCYW5uZXImJighYS5saWNlbnNlRXhwaXJpbmdEYXlzfHxhLmxpY2Vuc2VFeHBpcmluZ0RheXM8MCkpLENlKDEpLFJlKCJuZ0lmIixhLmxp'@; put 'Y2Vuc2VFeHBpcmluZ0RheXMmJiFhLmZyZWVUaWVyQmFubmVyKSxDZSgxKSxSZSgibmdJZiIsYS5hcHBPdmVyQ2FwYWNpdHkpfX1mdW5jdGlvbiBPU2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDMwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0'@; put 'KFZlKCkudG9nZ2xlU2lkZWJhcigpKX0pLHF0KDEsImNsci1pY29uIiwzMSkseWUoKX19Y29uc3QgUFNlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvIl19O2Z1bmN0aW9uIEZTZShjLGwpezEmYyYmKG1lKDAsImEiLDMyKSxxdCgxLCJpbWciLDMzKSgyLCJpbWciLDM0KSx5ZSgpKSwyJmMmJlJlKCJy'@; put 'b3V0ZXJMaW5rIiwkcygxLFBTZSkpfWZ1bmN0aW9uIEhTZShjLGwpezEmYyYmKG1lKDAsImEiKSxxdCgxLCJzcGFuIiwzNSkseWUoKSl9Y29uc3QgaGVlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvdmlldyJdfSxmZWU9ZnVuY3Rpb24oKXtyZXR1cm5bIi9ob21lIl19LElIPWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuWyIvcmV2aWV3L3N1Ym1pdHRlZCJdfTtmdW5jdGlvbiBOU2UoYyxsKXsxJmMmJihtZSgwLCJjbHItZHJvcGRvd24tbWVudSIsNDMpKDEsImEiLDQ0KSxOZSgyLCJWSUVXIikseWUoKSxtZSgzLCJhIiw0NCksTmUoNCwiTE9BRCIpLHllKCksbWUoNSwiYSIsNDQpLE5lKDYsIlJFVklFVyIp'@; put 'LHllKCkoKSksMiZjJiYoQ2UoMSksUmUoInJvdXRlckxpbmsiLCRzKDMsaGVlKSksQ2UoMiksUmUoInJvdXRlckxpbmsiLCRzKDQsZmVlKSksQ2UoMiksUmUoInJvdXRlckxpbmsiLCRzKDUsSUgpKSl9ZnVuY3Rpb24gVlNlKGMsbCl7aWYoMSZjJiYoVnIoMCksbWUoMSwiZGl2IiwzNikoMiwi'@; put 'Y2xyLWRyb3Bkb3duIikoMywiYnV0dG9uIiwzNyksTmUoNCwiIE1lbnUgIikseWUoKSxKZSg1LE5TZSw3LDYsImNsci1kcm9wZG93bi1tZW51IiwzOCkseWUoKSgpLG1lKDYsImRpdiIsMzkpKDcsImEiLDQwKSxOZSg4LCJWSUVXIikseWUoKSxtZSg5LCJhIiw0MSksTmUoMTAsIkxPQUQiKSx5'@; put 'ZSgpLG1lKDExLCJhIiw0MiksTmUoMTIsIlJFVklFVyIpLHllKCkoKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSg3KSxSZSgicm91dGVyTGluayIsJHMoNyxoZWUpKSxDZSgyKSxkcigiYWN0aXZlIixhLnJvdXRlci51cmwuaW5jbHVkZXMoImVkaXRvciIpfHxhLnJvdXRlci51cmwuaW5j'@; put 'bHVkZXMoImVkaXQtcmVjb3JkIil8fGEucm91dGVyLnVybC5pbmNsdWRlcygiaG9tZSIpKSxSZSgicm91dGVyTGluayIsJHMoOCxmZWUpKSxDZSgyKSxkcigiYWN0aXZlIixhLnJvdXRlci51cmwuaW5jbHVkZXMoInN1Ym1pdHRlZCIpfHxhLnJvdXRlci51cmwuaW5jbHVkZXMoImFwcHJvdmUi'@; put 'KXx8YS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJoaXN0b3J5IikpLFJlKCJyb3V0ZXJMaW5rIiwkcyg5LElIKSl9fWNvbnN0IEJTZT1mdW5jdGlvbigpe3JldHVyblsiL3Jldmlldy9hcHByb3ZlIl19LGpTZT1mdW5jdGlvbigpe3JldHVyblsiL3Jldmlldy9oaXN0b3J5Il19O2Z1bmN0aW9uIHpT'@; put 'ZShjLGwpe2lmKDEmYyYmKG1lKDAsIm5hdiIsNDUpKDEsInVsIiw0NikoMiwibGkiLDQ3KSgzLCJhIiw0MCksTmUoNCwiU1VCTUlUIikseWUoKSgpLG1lKDUsImxpIiw0NykoNiwiYSIsNDApLE5lKDcsIkFQUFJPVkUiKSx5ZSgpKCksbWUoOCwibGkiLDQ3KSg5LCJhIiw0MCksTmUoMTAsIkhJ'@; put 'U1RPUlkiKSx5ZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgzKSxSZSgicm91dGVyTGluayIsJHMoNSxJSCkpLENlKDMpLGRyKCJhY3RpdmUiLGEucm91dGVyLnVybC5pbmNsdWRlcygiYXBwcm92ZSIpKSxSZSgicm91dGVyTGluayIsJHMoNixCU2UpKSxDZSgzKSxSZSgicm91dGVy'@; put 'TGluayIsJHMoNyxqU2UpKX19ZnVuY3Rpb24gVVNlKGMsbCl7MSZjJiZxdCgwLCJhcHAtYWxlcnRzIil9ZnVuY3Rpb24gWlNlKGMsbCl7MSZjJiZxdCgwLCJyb3V0ZXItb3V0bGV0Iil9ZnVuY3Rpb24gWVNlKGMsbCl7MSZjJiZxdCgwLCJhcHAtYWxlcnRzIil9ZnVuY3Rpb24gV1NlKGMsbCl7'@; put 'aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYXBwLWluZm8tbW9kYWwiLDQ4KSx4dCgib25Db25maXJtTW9kYWxDbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS5jbG9zZUFib3J0TW9kYWwoZi5pZCkpfSkseWUoKX1pZigyJmMpe2NvbnN0'@; put 'IGE9bC4kaW1wbGljaXQsZD1WZSgpO1JlKCJkYXRhIixhKSgiZm9yY2VSZWxvYWQiLCFkLnN0YXJ0dXBEYXRhTG9hZGVkJiYxPT09ZC5zYXNqc0Fib3J0cy5sZW5ndGgpfX1mdW5jdGlvbiBHU2UoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDUyKSxxdCgxLCJkaXYiLDUzKSgyLCJkaXYiLDU0KSgz'@; put 'LCJkaXYiLDU1KSx5ZSgpKX1mdW5jdGlvbiAkU2UoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDQ5KSxxdCgxLCJpbWciLDUwKSxKZSgyLEdTZSw0LDAsImRpdiIsNTEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDIpLFJlKCJuZ0lmIixudWxsPT09YS5hcHBBY3RpdmUpfX1sZXQgcVNl'@; put 'PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQsVyxpZSxwZSl7dGhpcy5hcHBTZXJ2aWNlPWEsdGhpcy5saWNlbmNlU2VydmljZT1kLHRoaXMucm91dGVyPWgsdGhpcy5yb3V0ZT1mLHRoaXMubG9jYXRpb249Xyx0aGlzLmV2ZW50U2VydmljZT1ULHRoaXMuYXBwU3RvcmVT'@; put 'ZXJ2aWNlPVcsdGhpcy5jZHI9aWUsdGhpcy5lbGVtZW50UmVmPXBlLHRoaXMubGljZW5zZUV4cGlyaW5nRGF5cz1udWxsLHRoaXMuc2FzanNBYm9ydHM9W10sdGhpcy5lZGl0b3JBY3RpdmU9ITEsdGhpcy5hcHByb3ZlQWN0aXZlPSExLHRoaXMuZnJlZVRpZXJCYW5uZXI9dGhpcy5saWNlbmNl'@; put 'U2VydmljZS5pc0FwcEZyZWVUaWVyLnZhbHVlLHRoaXMubGljZW5jZVByb2JsZW09dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlUHJvYmxlbSx0aGlzLmFwcE92ZXJDYXBhY2l0eT0hMSx0aGlzLmFwcEFjdGl2ZT1udWxsLHRoaXMucmVxdWVzdHNNb2RhbD0hMSx0aGlzLnNob3dSZWdpc3Ry'@; put 'YXRpb249ITAsdGhpcy5zdGFydHVwRGF0YUxvYWRlZD0hMSx0aGlzLmRlbW9MaW1pdE5vdGljZT17b3BlbjohMSxmZWF0dXJlTmFtZToiIn0sdGhpcy5zeXNzaXRlPXRoaXMuYXBwU2VydmljZS5zeXNzaXRlLHRoaXMubGljZW5jZVN0YXRlPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVN0'@; put 'YXRlLHRoaXMucGFyc2VEY0FkYXB0ZXJTZXR0aW5ncygpLHdpbmRvdy5hcHBpbmZvPSgpPT57Y29uc29sZS50YWJsZSh7IkFkYXB0ZXIgdmVyc2lvbiI6IjQuMTAuMiIsIkFwcCB2ZXJzaW9uIjoidjYuNi40Ii5yZXBsYWNlKCJ2IiwiIiksIkJ1aWxkIHRpbWVzdGFtcCI6S28ocGFyc2VJbnQo'@; put 'IjE3MTE5NjUxMzQ5MDgiKSkuZm9ybWF0KCJERC1NTU0tWVlZWSBISDpNTSIpLCIuLi4iOiIuLi4ifSl9LHRoaXMuc3Vic2NyaWJlVG9MaWNlbnNlRXZlbnRzKCksdGhpcy5jb21taXRWZXI9InY2LjYuNCIucmVwbGFjZSgidiIsIiIpKyIuZzdiNWJiZTAiLGguZXZlbnRzLnN1YnNjcmliZSh3'@; put 'ZT0+e2lmKHRoaXMucm91dGVVcmw9dGhpcy5yb3V0ZXIudXJsLHR5cGVvZiB0aGlzLnJvdXRlVXJsPCJ1IiYmdGhpcy5yb3V0ZVVybC5sZW5ndGg+NCl7bGV0IEVlPXRoaXMucm91dGVVcmwuc3BsaXQoIi8iKVsxXTsiZWRpdG9yIj09PUVlPyh0aGlzLmVyclRvcD0hMCx0aGlzLmVkaXRvckFj'@; put 'dGl2ZT0hMCx0aGlzLmFwcHJvdmVBY3RpdmU9ITEpOiJob21lIj09PUVlPyh0aGlzLmVyclRvcD0hMSx0aGlzLmVkaXRvckFjdGl2ZT0hMCx0aGlzLmFwcHJvdmVBY3RpdmU9ITEpOih0aGlzLmVyclRvcD0hMCx0aGlzLmVkaXRvckFjdGl2ZT0hMSksR24ucm9vdFBhcmFtPUVlfXR5cGVvZiB0'@; put 'aGlzLnJvdXRlVXJsPCJ1IiYmdGhpcy5yb3V0ZVVybC5sZW5ndGg+NiYmKHRoaXMuYXBwcm92ZUFjdGl2ZT0hIXRoaXMucm91dGVVcmwuaW5jbHVkZXMoImFwcHJvdmVEZXQiKXx8ISF0aGlzLnJvdXRlVXJsLmluY2x1ZGVzKCJ0b2FwcHJvdmUiKSl9KSx0aGlzLnN1YnNjcmliZVRvU2hvd0Fi'@; put 'b3J0TW9kYWwoKSx0aGlzLnN1YnNjcmliZVRvUmVxdWVzdHNNb2RhbCgpLHRoaXMuc3Vic2NyaWJlVG9TdGFydHVwRGF0YSgpLHRoaXMuc3Vic2NyaWJlVG9BcHBBY3RpdmUoKSx0aGlzLnN1YnNjcmliZVRvRGVtb0xpbWl0TW9kYWwoKSx3aW5kb3cuZnJhbWVFbGVtZW50JiYod2luZG93LmZy'@; put 'YW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiaGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZSIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhbGxvd2Z1bGxzY3JlZW4iLCIiKSx3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgi'@; put 'ZnJhbWVib3JkZXIiLCIwIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1hcmdpbmhlaWdodCIsIjAiKSx3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWFyZ2lud2lkdGgiLCIwIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoInNjcm9sbGlu'@; put 'ZyIsImF1dG8iKSx3aW5kb3cuZm9jdXMoKSl9cGFyc2VEY0FkYXB0ZXJTZXR0aW5ncygpe2NvbnN0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2FzanMiKTtpZighYSlyZXR1cm4gdGhpcy5saWNlbmNlU2VydmljZS5kZWFjdGl2YXRlQXBwKCksdm9pZCBzZXRUaW1lb3V0KCgpPT57dGhp'@; put 'cy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwiUGxlYXNlIG1ha2Ugc3VyZSAnU0FTSlMnIHRhZyB3aXRoIGNvbmZpZyBhdHRyaWJ1dGVzIGlzIGFkZGVkIHRvIGluZGV4Lmh0bWwiLG51bGwsIlNBU2pzIENvbmZpZyBub3QgZm91bmQiKX0pO2NvbnN0IGQ9Zj0+YS5nZXRBdHRy'@; put 'aWJ1dGUoZil8fHZvaWQgMCxoPXtzZXJ2ZXJVcmw6ZCgic2VydmVyVXJsIil8fCIiLGFwcExvYzpkKCJhcHBMb2MiKXx8IiIsc2VydmVyVHlwZTpkKCJzZXJ2ZXJUeXBlIiksbG9naW5NZWNoYW5pc206ZCgibG9naW5NZWNoYW5pc20iKXx8IiIsYWRtaW5Hcm91cDpkKCJhZG1pbkdyb3VwIil8'@; put 'fCIiLGRjUGF0aDpkKCJkY1BhdGgiKXx8IiIsZGVidWc6InRydWUiPT09ZCgiZGVidWciKXx8ITEsdXNlQ29tcHV0ZUFwaTp0aGlzLnBhcnNlQ29tcHV0ZUFwaShkKCJ1c2VDb21wdXRlQXBpIikpLGNvbnRleHROYW1lOmQoImNvbnRleHROYW1lIil8fCIiLGhvdExpY2VuY2VLZXk6ZCgiaG90'@; put 'TGljZW5jZUtleSIpfHwiIn07dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz1oLHRoaXMuYXBwU3RvcmVTZXJ2aWNlLnNldERjQWRhcHRlclNldHRpbmdzKGgpLHRoaXMuYXBwU2VydmljZS5zYXNTZXJ2aWNlSW5pdCgpfWxpY2VuY2VQcm9ibGVtRGV0YWlscyhhKXt0aGlzLnJvdXRlci5uYXZpZ2F0'@; put 'ZUJ5VXJsKGEpfXBhcnNlQ29tcHV0ZUFwaShhKXtyZXR1cm4gdm9pZCAwPT09YXx8InVuZGVmaW5lZCI9PT1hfHwibnVsbCI9PT1hP251bGw6InRydWUiPT09YXx8ITF9c3Vic2NyaWJlVG9EZW1vTGltaXRNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uRGVtb0xpbWl0TW9kYWxTaG93LnN1'@; put 'YnNjcmliZShhPT57dGhpcy5kZW1vTGltaXROb3RpY2U9e29wZW46ITAsZmVhdHVyZU5hbWU6YX19KX1zdWJzY3JpYmVUb0xpY2Vuc2VFdmVudHMoKXt0aGlzLmxpY2VuY2VTZXJ2aWNlLmlzQXBwRnJlZVRpZXIuc3Vic2NyaWJlKGE9Pnt0aGlzLmZyZWVUaWVyQmFubmVyPWF9KSx0aGlzLmxp'@; put 'Y2VuY2VTZXJ2aWNlLmxpY2Vuc2VFeHBpcmVzSW5EYXlzLnN1YnNjcmliZShhPT57YSYmYTw9MTQmJih0aGlzLmxpY2Vuc2VFeHBpcmluZ0RheXM9YSl9KSx0aGlzLmxpY2VuY2VTZXJ2aWNlLmlzQXBwT3ZlckNhcGFjaXR5LnN1YnNjcmliZShhPT57dGhpcy5hcHBPdmVyQ2FwYWNpdHk9YX0p'@; put 'fXN1YnNjcmliZVRvQXBwQWN0aXZlKCl7dGhpcy5saWNlbmNlU2VydmljZS5pc0FwcEFjdGl2YXRlZC5zdWJzY3JpYmUoYT0+e3RoaXMuYXBwQWN0aXZlPWF9KX1zdWJzY3JpYmVUb1Nob3dBYm9ydE1vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub25TaG93QWJvcnRNb2RhbC5zdWJzY3JpYmUo'@; put 'YT0+e2EuaWQ9dGhpcy5zYXNqc0Fib3J0cy5sZW5ndGgrMSx0aGlzLnNhc2pzQWJvcnRzLnB1c2goYSksdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpfSl9c3Vic2NyaWJlVG9TdGFydHVwRGF0YSgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uU3RhcnR1cERhdGFMb2FkZWQuc3Vic2NyaWJlKCgpPT57'@; put 'dGhpcy5zdGFydHVwRGF0YUxvYWRlZD0hMH0pfXN1YnNjcmliZVRvUmVxdWVzdHNNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uUmVxdWVzdHNNb2RhbE9wZW4uc3Vic2NyaWJlKGE9Pnt0aGlzLnJlcXVlc3RzTW9kYWw9ITB9KX1jbG9zZUFib3J0TW9kYWwoYSl7bGV0IGQ9dGhpcy5zYXNq'@; put 'c0Fib3J0cy5maW5kSW5kZXgoaD0+aC5pZD09PWEpO3RoaXMuc2FzanNBYm9ydHMuc3BsaWNlKGQsMSl9dG9nZ2xlU2lkZWJhcigpe3RoaXMuZXZlbnRTZXJ2aWNlLnRvZ2dsZVNpZGViYXIoKX1pc01haW5Sb3V0ZShhKXtyZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKGEpfW9wZW5M'@; put 'aWNlbmNpbmdQYWdlKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy91cGRhdGUiKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVXgpLHR0KEMwKSx0dChEcyksdHQoR2wpLHR0KEpkKSx0dCh2bCksdHQoZTgpLHR0KFVh'@; put 'KSx0dChOaSkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJteS1hcHAiXV0sZGVjbHM6MjksdmFyczoxNyxjb25zdHM6W1sxLCJtYWluLWNvbnRhaW5lciJdLFs0LCJuZ0lmIl0sWzEsImFwcC1oZWFkZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImN1cnNvci1w'@; put 'b2ludGVyIHNlbGVjdC1ub25lIG1sLTEwIGQtZmxleCBjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciBjbHItYWxpZ24taXRlbXMtY2VudGVyIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJsb2dvIiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsiaHJlZiIsIiMiLCJjbGFz'@; put 'cyIsIm5hdi1saW5rIiwzLCJyb3V0ZXJMaW5rIiw0LCJuZ0lmIl0sWzEsImhlYWRlci1hY3Rpb25zIl0sWzEsIm5hdi10ZXh0Il0sWzEsImRyb3Bkb3duIl0sWyJjbGFzcyIsInN1Ym5hdiIsNCwibmdJZiJdLFszLCJvcGVuZWQiLCJvcGVuZWRDaGFuZ2UiXSxbMywiZGF0YSIsImZvcmNlUmVs'@; put 'b2FkIiwib25Db25maXJtTW9kYWxDbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJhcHBEcmFnTmRyb3AiLCIiLDEsInBvc2l0aW9uLXJlbGF0aXZlIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEs'@; put 'Im1vZGFsLXRpdGxlIl0sWyJzaXplIiwiMjAiLCJzaGFwZSIsImxvY2siXSxbMSwibW9kYWwtYm9keSJdLFsiY2xhc3MiLCJhcHAtbG9hZGluZyIsNCwibmdJZiJdLFsiY2xhc3MiLCJhbGVydCBhbGVydC1hcHAtbGV2ZWwgYWxlcnQtd2FybmluZyIsImlkIiwiZGVtby1iYW5uZXIiLCJyb2xl'@; put 'IiwiYWxlcnQiLDQsIm5nSWYiXSxbImNsYXNzIiwiYWxlcnQgYWxlcnQtYXBwLWxldmVsIGFsZXJ0LWRhbmdlciIsImlkIiwiZGVtby1iYW5uZXIiLCJyb2xlIiwiYWxlcnQiLDQsIm5nSWYiXSxbImlkIiwiZGVtby1iYW5uZXIiLCJyb2xlIiwiYWxlcnQiLDEsImFsZXJ0IiwiYWxlcnQtYXBw'@; put 'LWxldmVsIiwiYWxlcnQtd2FybmluZyJdLFsxLCJhbGVydC1pdGVtcyJdLFsxLCJhbGVydC1pdGVtIiwic3RhdGljIl0sWzEsImFsZXJ0LWljb24td3JhcHBlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwxLCJtdC0yIl0sWzEsImFsZXJ0LXRleHQiXSxbImNsYXNzZXMiLCJjb2xv'@; put 'ci13aGl0ZSJdLFsicm91dGVyTGluayIsIi9saWNlbnNpbmcvdXBkYXRlIiwxLCJ1cGRhdGUta2V5Il0sWzEsInVwZGF0ZS1rZXkiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbImlkIiwiZGVtby1iYW5uZXIiLCJyb2xlIiwiYWxlcnQiLDEsImFsZXJ0IiwiYWxlcnQtYXBwLWxldmVs'@; put 'IiwiYWxlcnQtZGFuZ2VyIl0sWyJyb3V0ZXJMaW5rIiwiL2xpY2Vuc2luZy91cGRhdGUiLCJjbGFzcyIsInVwZGF0ZS1rZXkiLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImN1cnNvci1wb2ludGVyIiwic2VsZWN0LW5vbmUiLCJtbC0xMCIsImQtZmxleCIsImNsci1qdXN0aWZ5LWNv'@; put 'bnRlbnQtY2VudGVyIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsMywiY2xpY2siXSxbInNpemUiLCIyNCIsInNoYXBlIiwidHJlZS12aWV3Il0sWyJocmVmIiwiIyIsMSwibmF2LWxpbmsiLDMsInJvdXRlckxpbmsiXSxbInNyYyIsIi9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9h'@; put 'cHAvZGMvc2VydmljZXMvd2ViL2ltYWdlcy9kYy1sb2dvLnN2ZyIsMSwid2l0aG91dC10ZXh0IiwiZC1ibG9jayIsImQtbWQtbm9uZSJdLFsic3JjIiwiL1NBU0pvYkV4ZWN1dGlvbj9fRklMRT0vUHVibGljL2FwcC9kYy9zZXJ2aWNlcy93ZWIvaW1hZ2VzL2RhdGFjb250cm9sbGVyLnN2ZyIs'@; put 'MSwid2l0aC10ZXh0IiwiZC1ub25lIiwiZC1tZC1ibG9jayJdLFsxLCJjbHItaWNvbiIsImhlYWRlci1sb2dvIiwibWwtMTAiXSxbMSwiaGVhZGVyLW5hdiIsImQtZmxleCIsImQtc20tbm9uZSJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwiYXJpYS1sYWJlbCIsInRvZ2dsZSBzZXR0aW5n'@; put 'cyBtZW51IiwxLCJuYXYtaWNvbiIsImNvbG9yLXdoaXRlLWkiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiLDQsImNscklmT3BlbiJdLFsxLCJoZWFkZXItbmF2IiwiZC1ub25lIiwiZC1zbS1mbGV4Il0sWyJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwxLCJuYXYtbGluayIsIm5h'@; put 'di10ZXh0IiwzLCJyb3V0ZXJMaW5rIl0sWzEsIm5hdi1saW5rIiwibmF2LXRleHQiLDMsInJvdXRlckxpbmsiXSxbMSwibmF2LWxpbmsiLCJuYXYtdGV4dCIsImN1cnNvci1wb2ludGVyIiwzLCJyb3V0ZXJMaW5rIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0Il0sWyJjbHJEcm9wZG93'@; put 'bkl0ZW0iLCIiLDMsInJvdXRlckxpbmsiXSxbMSwic3VibmF2Il0sWzEsIm5hdiJdLFsxLCJuYXYtaXRlbSJdLFszLCJkYXRhIiwiZm9yY2VSZWxvYWQiLCJvbkNvbmZpcm1Nb2RhbENsaWNrIl0sWzEsImFwcC1sb2FkaW5nIl0sWyJzcmMiLCIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJs'@; put 'aWMvYXBwL2RjL3NlcnZpY2VzL3dlYi9pbWFnZXMvZGF0YWNvbnRyb2xsZXIuc3ZnIiwxLCJsb2FkaW5nLWxvZ28iXSxbImNsYXNzIiwic2xpZGVyIiw0LCJuZ0lmIl0sWzEsInNsaWRlciJdLFsxLCJsaW5lIl0sWzEsInN1YmxpbmUiLCJpbmMiXSxbMSwic3VibGluZSIsImRlYyJdXSx0ZW1w'@; put 'bGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImRpdiIsMCksSmUoMSxSU2UsNCwzLCJuZy1jb250YWluZXIiLDEpLG1lKDIsImhlYWRlciIsMiksSmUoMyxPU2UsMiwwLCJkaXYiLDMpLG1lKDQsImRpdiIsNCksSmUoNSxGU2UsMywyLCJhIiw1KSxKZSg2LEhTZSwyLDAsImEiLDEpLHll'@; put 'KCksSmUoNyxWU2UsMTMsMTAsIm5nLWNvbnRhaW5lciIsMSksbWUoOCwiZGl2Iiw2KSg5LCJkaXYiLDcpLHF0KDEwLCJhcHAtbG9hZGluZy1pbmRpY2F0b3IiKSx5ZSgpLG1lKDExLCJkaXYiLDgpLHF0KDEyLCJhcHAtdXNlci1uYXYtZHJvcGRvd24iKSx5ZSgpKCkoKSxKZSgxMyx6U2UsMTEs'@; put 'OCwibmF2Iiw5KSxKZSgxNCxVU2UsMSwwLCJhcHAtYWxlcnRzIiwxKSxtZSgxNSwiYXBwLXJlcXVlc3RzLW1vZGFsIiwxMCkseHQoIm9wZW5lZENoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQucmVxdWVzdHNNb2RhbD1mfSkseWUoKSxKZSgxNixaU2UsMSwwLCJyb3V0ZXItb3V0bGV0Iiwx'@; put 'KSxxdCgxNywiYXBwLWxvZ2luIiksSmUoMTgsWVNlLDEsMCwiYXBwLWFsZXJ0cyIsMSksSmUoMTksV1NlLDEsMiwiYXBwLWluZm8tbW9kYWwiLDExKSxtZSgyMCwiY2xyLW1vZGFsIiwxMikseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQuZGVtb0xpbWl0Tm90'@; put 'aWNlLm9wZW49Zn0pLG1lKDIxLCJoMyIsMTMpLE5lKDIyKSxxdCgyMywiY2xyLWljb24iLDE0KSx5ZSgpLG1lKDI0LCJkaXYiLDE1KSxOZSgyNSwiIENvbnRhY3QgIikscXQoMjYsImNvbnRhY3QtbGluayIpLE5lKDI3KSx5ZSgpKCkoKSxKZSgyOCwkU2UsMywxLCJkaXYiLDE2KSksMiZhJiYo'@; put 'Q2UoMSksUmUoIm5nSWYiLCFkLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSxDZSgyKSxSZSgibmdJZiIsZC5pc01haW5Sb3V0ZSgidmlldyIpfHxkLmlzTWFpblJvdXRlKCJob21lIikmJiFkLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSxDZSgyKSxSZSgibmdJ'@; put 'ZiIsIWQucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikpLENlKDEpLFJlKCJuZ0lmIixkLnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpKSxDZSgxKSxSZSgibmdJZiIsIWQucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikmJiFkLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vu'@; put 'c2luZyIpKSxDZSg2KSxSZSgibmdJZiIsZC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJzdWJtaXR0ZWQiKXx8ZC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJhcHByb3ZlIil8fGQucm91dGVyLnVybC5pbmNsdWRlcygiaGlzdG9yeSIpKSxDZSgxKSxSZSgibmdJZiIsIWQuZXJyVG9wKSxDZSgxKSxSZSgi'@; put 'b3BlbmVkIixkLnJlcXVlc3RzTW9kYWwpLENlKDEpLFJlKCJuZ0lmIixkLnN0YXJ0dXBEYXRhTG9hZGVkKSxDZSgyKSxSZSgibmdJZiIsZC5lcnJUb3ApLENlKDEpLFJlKCJuZ0Zvck9mIixkLnNhc2pzQWJvcnRzKSxDZSgxKSxSZSgiY2xyTW9kYWxPcGVuIixkLmRlbW9MaW1pdE5vdGljZS5v'@; put 'cGVuKSgiY2xyTW9kYWxDbG9zYWJsZSIsITApKCJjbHJNb2RhbFNpemUiLCJsZyIpLENlKDIpLGdyKCIgTG9ja2VkIEZlYXR1cmUgKCIsZC5kZW1vTGltaXROb3RpY2UuZmVhdHVyZU5hbWUsIikgIiksQ2UoNSksZ3IoIiB3aXRoIHlvdXIgc2l0ZSBpZCAoIixkLnN5c3NpdGUudmFsdWUsIikg'@; put 'dG8gYWN0aXZhdGUhICIpLENlKDEpLFJlKCJuZ0lmIiwhZC5zdGFydHVwRGF0YUxvYWRlZCkpfSxkZXBlbmRlbmNpZXM6W3hzLFppLGZwLEJ1LEdfLFJDZSxPQ2UsekNlLFlDZSxqRSxOYixrYSxvdSxzdSxjMixOZixhZyxsZyxLOCxZYixtU2UseFNlXSxzdHlsZXM6WyJhcHAtcmVxdWVzdHMt'@; put 'bW9kYWxbX25nY29udGVudC0lQ09NUCVde3otaW5kZXg6MTAwMDB9aGVhZGVyLmFwcC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6IzMxNDM1MSFpbXBvcnRhbnQ7Y29sb3I6I2ZmZn0ubG9nb1tfbmdjb250ZW50LSVDT01QJV0gICBpbWcud2l0aG91dC10ZXh0W19uZ2Nv'@; put 'bnRlbnQtJUNPTVAlXXt3aWR0aDozMHB4fS5sb2dvW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGltZy53aXRoLXRleHRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjIxMHB4fS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7YmFja2dyb3Vu'@; put 'ZDp0cmFuc3BhcmVudDtib3JkZXI6MDttYXJnaW4tbGVmdDoxMHB4fS5kZW1vLWV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3RvcDowO2hl'@; put 'aWdodDoxMDB2aCFpbXBvcnRhbnQ7d2lkdGg6MTAwdnchaW1wb3J0YW50O3otaW5kZXg6MTA1O2JhY2tncm91bmQ6cmdiYSgzMywzMywzMywuNSl9LmRlbW8tZXhwaXJlZC1ub3RpY2VbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGlyZWQtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV17Zmxl'@; put 'eC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjMwcHg7ei1pbmRleDoxMTA7YmFja2dyb3VuZDojMzE0MzUxfS5kZW1vLWV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBpcmVkLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgLmV4'@; put 'cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZTBlMGUwO2ZvbnQtc2l6ZToxNnB4fS5kZW1vLWV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBpcmVkLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGlyZWQtbm90aWNlW19uZ2NvbnRl'@; put 'bnQtJUNPTVAlXSAgIC5tYWlsdG9bX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM4ZGM1M2V9Lm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC51cGRhdGUta2V5W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7'@; put 'cGFkZGluZzowIDEwcHg7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xNDkwMTk2MDc4KX0uYWxlcnQtaWNvbi13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjAhaW1wb3J0YW50fS5uYXYtdGV4dFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjIwcHh9LnNpZGVi'@; put 'YXItdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDoxMHB4fS5zaWRlYmFyLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV0gICBjbHItaWNvbltfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOnBv'@; put 'aW50ZXI7d2lkdGg6MzBweDtoZWlnaHQ6MzBweH1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLmhlYWRlci1hY3Rpb25zW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246dW5zZXR9aGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAg'@; put 'IC5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmFmYWZhO29wYWNpdHk6Ljk7bGluZS1oZWlnaHQ6MS40NXJlbX1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmtb'@; put 'X25nY29udGVudC0lQ09NUCVdOmhvdmVye2JveC1zaGFkb3c6aW5zZXQgMCAtM3B4IDAgdHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBlYXNlLWlufWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdj'@; put 'b250ZW50LSVDT01QJV06aG92ZXJ7Y29sb3I6I2ZhZmFmYTtvcGFjaXR5OjF9aGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rLmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojNjE3MTdEO29wYWNpdHk6MTti'@; put 'b3gtc2hhZG93Omluc2V0IDAgLTNweCB0cmFuc3BhcmVudH1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWl0ZW1bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDoxcmVtfS5ub3RmW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNr'@; put 'Z3JvdW5kOiMxNmE1N2E7Y29sb3I6I2ZmZmNmYztmb250LXNpemU6MTJweH0uYnRuLmJ0bi1zdWNjZXNzW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItY29sb3I6IzYyYTQyMDtiYWNrZ3JvdW5kLWNvbG9yOiMxNmE1N2EhaW1wb3J0YW50O2NvbG9yOiNmZmZ9LmJ0bi5idG4tc3VjY2Vzc1tf'@; put 'bmdjb250ZW50LSVDT01QJV06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMmFkZDM5O2NvbG9yOiNmZmZ9LnRvZ2dsZS1zd2l0Y2hbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT1jaGVja2JveF1bX25nY29udGVudC0lQ09NUCVdOmNoZWNrZWQgKyBsYWJlbFtfbmdjb250ZW50LSVD'@; put 'T01QJV06YmVmb3Jle2JvcmRlci1jb2xvcjojNjE3MTdkO2JhY2tncm91bmQtY29sb3I6IzYxNzE3ZDt0cmFuc2l0aW9uOi4xNXMgZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yfS5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01Q'@; put 'JV17bWluLWhlaWdodDoxMDB2aCFpbXBvcnRhbnR9Lm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjByZW0gMXJlbSAxcmVtfS5j'@; put 'b250ZW50LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17ei1pbmRleDowIWltcG9ydGFudH0ubmF2QmFyUmVzcFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDojNDk1QTY3O2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVl'@; put 'biBhbmQgKG1heC13aWR0aDogNzY4cHgpey5uYXZCYXJSZXNwW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7YmFja2dyb3VuZDojNDk1QTY3O2NvbG9yOiNmZmZ9Lm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5z'@; put 'dWItbmF2LmNsci1uYXYtbGV2ZWwtMVtfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV0sIC5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTJbX25n'@; put 'Y29udGVudC0lQ09NUCVdICAgLm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmtbX25nY29udGVudC0lQ09NUCVdLCAubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTFbX25nY29udGVudC0lQ09NUCVdICAgLm5hdltfbmdj'@; put 'b250ZW50LSVDT01QJV0gICAubmF2LWxpbmtbX25nY29udGVudC0lQ09NUCVdLCAubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTJbX25nY29udGVudC0lQ09NUCVdICAgLm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmtb'@; put 'X25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MCAuNXJlbSAwIDFyZW07d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztib3JkZXItcmFkaXVzOi4xMjVyZW0gMCAwIC4xMjVyZW07Y29sb3I6Izk1Yzg0Yn0uY2FyZC1ibG9j'@; put 'a1tfbmdjb250ZW50LSVDT01QJV0sIC5jYXJkLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxMHB4IDAgMH0ubWFpbi1jb250YWluZXJbX25nY29udGVudC1jMF1bX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnQtY29udGFpbmVyW19uZ2NvbnRlbnQtYzBdW19uZ2NvbnRl'@; put 'bnQtJUNPTVAlXSAgIC5jb250ZW50LWFyZWFbX25nY29udGVudC1jMF1bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MHJlbX19ICAuaHRJbnZhbGlke2JhY2tncm91bmQ6YmxhY2shaW1wb3J0YW50fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KXsgIGgye2ZvbnQtc2l6'@; put 'ZTouN3JlbSFpbXBvcnRhbnR9ICBoM3tmb250LXNpemU6LjdyZW19fSAgLm5hdi1saW5re3BhZGRpbmc6MHJlbSAxcmVtfSAgLmJ0bi1wcmltYXJ5IC5idG4sICAgLmJ0bi5idG4tcHJpbWFyeXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiMzMTQzNTE7Y29sb3I6I2Zm'@; put 'Zn0gIC5idG57Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6LjEyNXJlbTtib3JkZXI6MXB4IHNvbGlkO21pbi13aWR0aDozcmVtO21heC13aWR0aDoxNXJlbTt3aGl0ZS1zcGFjZTpub3dy'@; put 'YXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtsaW5lLWhlaWdodDoxLjVyZW07bGV0dGVyLXNwYWNpbmc6LjEyZW07Zm9udC1zaXplOi41cmVtO2Zv'@; put 'bnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MS41cmVtO3BhZGRpbmc6MCAuNXJlbTtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiMzMTQzNTF9ICAuYnRuLmJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6'@; put 'dHJhbnNwYXJlbnQ7Y29sb3I6IzMxNDM1MX0gIC5idG4uYnRuLW91dGxpbmU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjojNDk1YTY3O2NvbG9yOiNmZmZ9ICAuYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNWVhNzFm'@; put 'O2NvbG9yOiNmZmY3Zjc7Ym9yZGVyLWNvbG9yOiM5YTk2OTZ9ICAuaHRNb2JpbGVFZGl0b3JDb250YWluZXIgLmlucHV0cyB0ZXh0YXJlYXtmb250LXNpemU6MTNwdDtib3JkZXI6MnB4IHNvbGlkICM0ODU5Njc7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7Ym94'@; put 'LXNoYWRvdzpub25lO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjAgMCAwIDE0cHg7cGFkZGluZzo3cHQ7d2lkdGg6MjkwcHh9ICAuaHRNb2JpbGVFZGl0b3JDb250YWluZXIgLnBvc2l0aW9uQ29udHJvbHN7d2lkdGg6MzMzcHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NXB0O3RvcDo1MHB4'@; put 'O2JvdHRvbTowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfSAgLmh0TW9iaWxlRWRpdG9yQ29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMjBweDt3aWR0aDozNTBweH0gIC5oYW5kc29udGFibGV7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1y'@; put 'YWRpdXM6M3B4fSAgLmhhbmRzb250YWJsZSB0aHtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9ICAuaHRfY2xvbmVfbGVmdCB0aHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2N9ICAuaHRfY2xvbmVfdG9wIHRoe2JvcmRlci10b3A6MXB4IHNv'@; put 'bGlkICNjY2M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2N9ICAuaHRfY2xvbmVfdG9wX2xlZnRfY29ybmVyIHRoe2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY30gIC5odF9tYXN0ZXIgdHI6bnRoLW9mLXR5cGUob2RkKT50ZHtiYWNr'@; put 'Z3JvdW5kLWNvbG9yOiNmM2YzZjM7Ym9yZGVyOjFweCBzb2xpZCByZ2IoMTk3LDE5NywxOTcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYigyMzYsMjM1LDIzNSl9ICAuaHRfbWFzdGVyIHRyOm50aC1vZi10eXBlKDJuKT50ZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBz'@; put 'b2xpZCByZ2IoMTk3LDE5NywxOTcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYigyMzYsMjM1LDIzNSl9ICAud3RCb3JkZXJ7YmFja2dyb3VuZC1jb2xvcjojNDk1YTY3IWltcG9ydGFudH0gIC5oYW5kc29udGFibGUgLmhhbmRzb250YWJsZS5odF9jbG9uZV90b3AgLnd0SGlkZXJ7cGFk'@; put 'ZGluZzowIWltcG9ydGFudDttYXJnaW46MDtib3JkZXItYm90dG9tOjNweCBzb2xpZCAjZDZkM2QzfSAgLmNvbnRlbnQtY29udGFpbmVye2JhY2tncm91bmQ6I0Y1RjZGRn0gIC5jYXJke2JveC1zaGFkb3c6MCAuMTI1cmVtICNkN2Q3ZDc7Ym9yZGVyLXJhZGl1czowcmVtO2JvcmRlcjoxcHgg'@; put 'c29saWQgdHJhbnNwYXJlbnR9ICAuZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQsICAgLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlke2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6LjEyNXJlbTtiYWNrZ3JvdW5k'@; put 'LWNvbG9yOiNmZmY7Y29sb3I6IzU2NTY1NjttYXJnaW46MDttYXJnaW4tdG9wOjFyZW07bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJTtwYWRkaW5nOjE1cHggMTVweCA1MHB4fSAgLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3QsICAgLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlk'@; put 'LWZvb3R7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2hlaWdodDoxLjVyZW07cGFkZGluZzowIC41cmVtO2xpbmUtaGVpZ2h0OmNhbGMoMS41cmVtIC0gM3B4KTtmb250LXNpemU6LjQ1ODMzcmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO2JvcmRl'@; put 'ci1yYWRpdXM6MH0gIC5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIsICAgLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlkLWZvb3Rlcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNXB4O3RvcDoycHh9ICAuZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQgLmRhdGFncmlkLWhl'@; put 'YWQsICAgLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlkIC5kYXRhZ3JpZC1oZWFke2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjfSAgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDowO21hcmdpbi10b3A6LjA4'@; put 'MzMzM3JlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6I2Y1ZjZmZjtwYWRkaW5nOi41cmVtIDA7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JveC1zaGFkb3c6MCAxcHggLjEyNXJlbSAjNzM3MzczNDA7bWluLXdpZHRoOjVyZW07bWF4LXdpZHRoOjE1cmVt'@; put 'O2JvcmRlci1yYWRpdXM6LjEyNXJlbTt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwMDB9ICAudGFibGV7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojNTY1'@; put 'NjU2O21hcmdpbjowO21hcmdpbi10b3A6MXJlbTttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlfSAgLnRhYmxlIHRoe2ZvbnQtc2l6ZTouNDU4MzNyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wM2VtO2JhY2tncm91bmQtY29sb3I6I2ZmZjt2ZXJ0aWNhbC1hbGlnbjpib3R0'@; put 'b207Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9ICAubW9kYWwtaGVhZGVye2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNlNGU0ZTQ7cGFkZGluZzowIDAgLjVyZW07bWFyZ2luLWJvdHRvbToxcmVtfSAgLm1haW4tY29udGFpbmVyIC5jb250'@; put 'ZW50LWNvbnRhaW5lcnttaW4taGVpZ2h0OjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXBwLWxvYWRpbmdbX25nY29udGVudC0lQ09NUCVdICAgLmxvYWRpbmctbG9nb1tfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjQwMHB4O3dpZHRoOjEwMCV9Il19KSxjfSkoKTtmdW5jdGlvbiBwZWUo'@; put 'Yyl7cmV0dXJuIG5ldyBBcigzZTMsITEpfWZ1bmN0aW9uIEZwKGMpe3N3aXRjaChjLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgb2I7Y2FzZSAxOnJldHVybiBjWzBdO2RlZmF1bHQ6cmV0dXJuIG5ldyBWSyhjKX19ZnVuY3Rpb24gZ2VlKGMsbCxhPW5ldyBNYXAsZD1uZXcgTWFwKXtjb25z'@; put 'dCBoPVtdLGY9W107bGV0IF89LTEsVD1udWxsO2lmKGwuZm9yRWFjaChXPT57Y29uc3QgaWU9Vy5nZXQoIm9mZnNldCIpLHBlPWllPT1fLHdlPXBlJiZUfHxuZXcgTWFwO1cuZm9yRWFjaCgoRWUsWmUpPT57bGV0IGl0PVplLGV0PUVlO2lmKCJvZmZzZXQiIT09WmUpc3dpdGNoKGl0PWMubm9y'@; put 'bWFsaXplUHJvcGVydHlOYW1lKGl0LGgpLGV0KXtjYXNlIiEiOmV0PWEuZ2V0KFplKTticmVhaztjYXNlIEFmOmV0PWQuZ2V0KFplKTticmVhaztkZWZhdWx0OmV0PWMubm9ybWFsaXplU3R5bGVWYWx1ZShaZSxpdCxldCxoKX13ZS5zZXQoaXQsZXQpfSkscGV8fGYucHVzaCh3ZSksVD13ZSxf'@; put 'PWllfSksaC5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gX01lKGMpe3JldHVybiBuZXcgQXIoMzUwMiwhMSl9KCk7cmV0dXJuIGZ9ZnVuY3Rpb24gTEgoYyxsLGEsZCl7c3dpdGNoKGwpe2Nhc2Uic3RhcnQiOmMub25TdGFydCgoKT0+ZChhJiZSSChhLCJzdGFydCIsYykpKTticmVhaztjYXNlImRv'@; put 'bmUiOmMub25Eb25lKCgpPT5kKGEmJlJIKGEsImRvbmUiLGMpKSk7YnJlYWs7Y2FzZSJkZXN0cm95IjpjLm9uRGVzdHJveSgoKT0+ZChhJiZSSChhLCJkZXN0cm95IixjKSkpfX1mdW5jdGlvbiBSSChjLGwsYSl7Y29uc3QgZj1PSChjLmVsZW1lbnQsYy50cmlnZ2VyTmFtZSxjLmZyb21TdGF0'@; put 'ZSxjLnRvU3RhdGUsbHx8Yy5waGFzZU5hbWUsYS50b3RhbFRpbWU/P2MudG90YWxUaW1lLCEhYS5kaXNhYmxlZCksXz1jLl9kYXRhO3JldHVybiBudWxsIT1fJiYoZi5fZGF0YT1fKSxmfWZ1bmN0aW9uIE9IKGMsbCxhLGQsaD0iIixmPTAsXyl7cmV0dXJue2VsZW1lbnQ6Yyx0cmlnZ2VyTmFt'@; put 'ZTpsLGZyb21TdGF0ZTphLHRvU3RhdGU6ZCxwaGFzZU5hbWU6aCx0b3RhbFRpbWU6ZixkaXNhYmxlZDohIV99fWZ1bmN0aW9uIG0xKGMsbCxhKXtsZXQgZD1jLmdldChsKTtyZXR1cm4gZHx8Yy5zZXQobCxkPWEpLGR9ZnVuY3Rpb24gbWVlKGMpe2NvbnN0IGw9Yy5pbmRleE9mKCI6Iik7cmV0'@; put 'dXJuW2Muc3Vic3RyaW5nKDEsbCksYy5zbGljZShsKzEpXX1jb25zdCBETWU9KCgpPT50eXBlb2YgZG9jdW1lbnQ+InUiP251bGw6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSgpO2Z1bmN0aW9uIFBIKGMpe2NvbnN0IGw9Yy5wYXJlbnROb2RlfHxjLmhvc3R8fG51bGw7cmV0dXJuIGw9PT1E'@; put 'TWU/bnVsbDpsfWxldCBoZz1udWxsLHZlZT0hMTtmdW5jdGlvbiBfZWUoYyxsKXtmb3IoO2w7KXtpZihsPT09YylyZXR1cm4hMDtsPVBIKGwpfXJldHVybiExfWZ1bmN0aW9uIGJlZShjLGwsYSl7aWYoYSlyZXR1cm4gQXJyYXkuZnJvbShjLnF1ZXJ5U2VsZWN0b3JBbGwobCkpO2NvbnN0IGQ9'@; put 'Yy5xdWVyeVNlbGVjdG9yKGwpO3JldHVybiBkP1tkXTpbXX1sZXQgeWVlPSgoKT0+e2NsYXNzIGN7dmFsaWRhdGVTdHlsZVByb3BlcnR5KGEpe3JldHVybiBmdW5jdGlvbiBMTWUoYyl7aGd8fChoZz1mdW5jdGlvbiBSTWUoKXtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PCJ1Ij9kb2N1bWVudC5i'@; put 'b2R5Om51bGx9KCl8fHt9LHZlZT0hIWhnLnN0eWxlJiYiV2Via2l0QXBwZWFyYW5jZSJpbiBoZy5zdHlsZSk7bGV0IGw9ITA7cmV0dXJuIGhnLnN0eWxlJiYhZnVuY3Rpb24gSU1lKGMpe3JldHVybiJlYmtpdCI9PWMuc3Vic3RyaW5nKDEsNil9KGMpJiYobD1jIGluIGhnLnN0eWxlLCFsJiZ2'@; put 'ZWUmJihsPSJXZWJraXQiK2MuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYy5zbGljZSgxKWluIGhnLnN0eWxlKSksbH0oYSl9bWF0Y2hlc0VsZW1lbnQoYSxkKXtyZXR1cm4hMX1jb250YWluc0VsZW1lbnQoYSxkKXtyZXR1cm4gX2VlKGEsZCl9Z2V0UGFyZW50RWxlbWVudChhKXtyZXR1cm4g'@; put 'UEgoYSl9cXVlcnkoYSxkLGgpe3JldHVybiBiZWUoYSxkLGgpfWNvbXB1dGVTdHlsZShhLGQsaCl7cmV0dXJuIGh8fCIifWFuaW1hdGUoYSxkLGgsZixfLFQ9W10sVyl7cmV0dXJuIG5ldyBvYihoLGYpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0s'@; put 'Yy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxGSD0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5OT09QPW5ldyB5ZWUsY30pKCk7Y29uc3QgT01lPTFlMyxISD0ibmctZW50ZXIiLHpFPSJuZy1sZWF2ZSIsVUU9Im5nLXRyaWdnZXIiLFpFPSIubmct'@; put 'dHJpZ2dlciIsQ2VlPSJuZy1hbmltYXRpbmciLE5IPSIubmctYW5pbWF0aW5nIjtmdW5jdGlvbiBCZihjKXtpZigibnVtYmVyIj09dHlwZW9mIGMpcmV0dXJuIGM7Y29uc3QgbD1jLm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKS8pO3JldHVybiFsfHxsLmxlbmd0aDwyPzA6VkgocGFyc2VGbG9h'@; put 'dChsWzFdKSxsWzJdKX1mdW5jdGlvbiBWSChjLGwpe3JldHVybiJzIj09PWw/YypPTWU6Y31mdW5jdGlvbiBZRShjLGwsYSl7cmV0dXJuIGMuaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIik/YzpmdW5jdGlvbiBGTWUoYyxsLGEpe2xldCBoLGY9MCxfPSIiO2lmKCJzdHJpbmciPT10eXBlb2Yg'@; put 'Yyl7Y29uc3QgVD1jLm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKSg/OlxzKygtP1tcLlxkXSspKG0/cykpPyg/OlxzKyhbLWEtel0rKD86XCguKz9cKSk/KSk/JC9pKTtpZihudWxsPT09VClyZXR1cm4gbC5wdXNoKHBlZSgpKSx7ZHVyYXRpb246MCxkZWxheTowLGVhc2luZzoiIn07aD1WSChw'@; put 'YXJzZUZsb2F0KFRbMV0pLFRbMl0pO2NvbnN0IFc9VFszXTtudWxsIT1XJiYoZj1WSChwYXJzZUZsb2F0KFcpLFRbNF0pKTtjb25zdCBpZT1UWzVdO2llJiYoXz1pZSl9ZWxzZSBoPWM7aWYoIWEpe2xldCBUPSExLFc9bC5sZW5ndGg7aDwwJiYobC5wdXNoKGZ1bmN0aW9uIEtTZSgpe3JldHVy'@; put 'biBuZXcgQXIoMzEwMCwhMSl9KCkpLFQ9ITApLGY8MCYmKGwucHVzaChmdW5jdGlvbiBYU2UoKXtyZXR1cm4gbmV3IEFyKDMxMDEsITEpfSgpKSxUPSEwKSxUJiZsLnNwbGljZShXLDAscGVlKCkpfXJldHVybntkdXJhdGlvbjpoLGRlbGF5OmYsZWFzaW5nOl99fShjLGwsYSl9ZnVuY3Rpb24g'@; put 'V2IoYyxsPXt9KXtyZXR1cm4gT2JqZWN0LmtleXMoYykuZm9yRWFjaChhPT57bFthXT1jW2FdfSksbH1mdW5jdGlvbiBTZWUoYyl7Y29uc3QgbD1uZXcgTWFwO3JldHVybiBPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGE9PntsLnNldChhLGNbYV0pfSksbH1mdW5jdGlvbiBIcChjLGw9bmV3IE1h'@; put 'cCxhKXtpZihhKWZvcihsZXRbZCxoXW9mIGEpbC5zZXQoZCxoKTtmb3IobGV0W2QsaF1vZiBjKWwuc2V0KGQsaCk7cmV0dXJuIGx9ZnVuY3Rpb24gaGgoYyxsLGEpe2wuZm9yRWFjaCgoZCxoKT0+e2NvbnN0IGY9akgoaCk7YSYmIWEuaGFzKGgpJiZhLnNldChoLGMuc3R5bGVbZl0pLGMuc3R5'@; put 'bGVbZl09ZH0pfWZ1bmN0aW9uIGZnKGMsbCl7bC5mb3JFYWNoKChhLGQpPT57Y29uc3QgaD1qSChkKTtjLnN0eWxlW2hdPSIifSl9ZnVuY3Rpb24gR2IoYyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYyk/MT09Yy5sZW5ndGg/Y1swXTpOSyhjKTpjfWNvbnN0IEJIPW5ldyBSZWdFeHAoInt7XFxz'@; put 'KiguKz8pXFxzKn19IiwiZyIpO2Z1bmN0aW9uIHhlZShjKXtsZXQgbD1bXTtpZigic3RyaW5nIj09dHlwZW9mIGMpe2xldCBhO2Zvcig7YT1CSC5leGVjKGMpOylsLnB1c2goYVsxXSk7QkgubGFzdEluZGV4PTB9cmV0dXJuIGx9ZnVuY3Rpb24gJGIoYyxsLGEpe2NvbnN0IGQ9Yy50b1N0cmlu'@; put 'ZygpLGg9ZC5yZXBsYWNlKEJILChmLF8pPT57bGV0IFQ9bFtfXTtyZXR1cm4gbnVsbD09VCYmKGEucHVzaChmdW5jdGlvbiBRU2UoYyl7cmV0dXJuIG5ldyBBcigzMDAzLCExKX0oKSksVD0iIiksVC50b1N0cmluZygpfSk7cmV0dXJuIGg9PWQ/YzpofWZ1bmN0aW9uIFdFKGMpe2NvbnN0IGw9'@; put 'W107bGV0IGE9Yy5uZXh0KCk7Zm9yKDshYS5kb25lOylsLnB1c2goYS52YWx1ZSksYT1jLm5leHQoKTtyZXR1cm4gbH1jb25zdCBWTWU9Ly0rKFthLXowLTldKS9nO2Z1bmN0aW9uIGpIKGMpe3JldHVybiBjLnJlcGxhY2UoVk1lLCguLi5sKT0+bFsxXS50b1VwcGVyQ2FzZSgpKX1mdW5jdGlv'@; put 'biB2MShjLGwsYSl7c3dpdGNoKGwudHlwZSl7Y2FzZSA3OnJldHVybiBjLnZpc2l0VHJpZ2dlcihsLGEpO2Nhc2UgMDpyZXR1cm4gYy52aXNpdFN0YXRlKGwsYSk7Y2FzZSAxOnJldHVybiBjLnZpc2l0VHJhbnNpdGlvbihsLGEpO2Nhc2UgMjpyZXR1cm4gYy52aXNpdFNlcXVlbmNlKGwsYSk7'@; put 'Y2FzZSAzOnJldHVybiBjLnZpc2l0R3JvdXAobCxhKTtjYXNlIDQ6cmV0dXJuIGMudmlzaXRBbmltYXRlKGwsYSk7Y2FzZSA1OnJldHVybiBjLnZpc2l0S2V5ZnJhbWVzKGwsYSk7Y2FzZSA2OnJldHVybiBjLnZpc2l0U3R5bGUobCxhKTtjYXNlIDg6cmV0dXJuIGMudmlzaXRSZWZlcmVuY2Uo'@; put 'bCxhKTtjYXNlIDk6cmV0dXJuIGMudmlzaXRBbmltYXRlQ2hpbGQobCxhKTtjYXNlIDEwOnJldHVybiBjLnZpc2l0QW5pbWF0ZVJlZihsLGEpO2Nhc2UgMTE6cmV0dXJuIGMudmlzaXRRdWVyeShsLGEpO2Nhc2UgMTI6cmV0dXJuIGMudmlzaXRTdGFnZ2VyKGwsYSk7ZGVmYXVsdDp0aHJvdyBm'@; put 'dW5jdGlvbiBlTWUoYyl7cmV0dXJuIG5ldyBBcigzMDA0LCExKX0oKX19ZnVuY3Rpb24gRWVlKGMsbCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGMpW2xdfWNvbnN0IEdFPSIqIjtmdW5jdGlvbiB6TWUoYyxsKXtjb25zdCBhPVtdO3JldHVybiJzdHJpbmciPT10eXBlb2YgYz9j'@; put 'LnNwbGl0KC9ccyosXHMqLykuZm9yRWFjaChkPT5mdW5jdGlvbiBVTWUoYyxsLGEpe2lmKCI6Ij09Y1swXSl7Y29uc3QgVz1mdW5jdGlvbiBaTWUoYyxsKXtzd2l0Y2goYyl7Y2FzZSI6ZW50ZXIiOnJldHVybiJ2b2lkID0+ICoiO2Nhc2UiOmxlYXZlIjpyZXR1cm4iKiA9PiB2b2lkIjtjYXNl'@; put 'IjppbmNyZW1lbnQiOnJldHVybihhLGQpPT5wYXJzZUZsb2F0KGQpPnBhcnNlRmxvYXQoYSk7Y2FzZSI6ZGVjcmVtZW50IjpyZXR1cm4oYSxkKT0+cGFyc2VGbG9hdChkKTxwYXJzZUZsb2F0KGEpO2RlZmF1bHQ6cmV0dXJuIGwucHVzaChmdW5jdGlvbiBwTWUoYyl7cmV0dXJuIG5ldyBBcigz'@; put 'MDE2LCExKX0oKSksIiogPT4gKiJ9fShjLGEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBXKXJldHVybiB2b2lkIGwucHVzaChXKTtjPVd9Y29uc3QgZD1jLm1hdGNoKC9eKFwqfFstXHddKylccyooPD9bPS1dPilccyooXCp8Wy1cd10rKSQvKTtpZihudWxsPT1kfHxkLmxlbmd0aDw0KXJldHVy'@; put 'biBhLnB1c2goZnVuY3Rpb24gZk1lKGMpe3JldHVybiBuZXcgQXIoMzAxNSwhMSl9KCkpLGw7Y29uc3QgaD1kWzFdLGY9ZFsyXSxfPWRbM107bC5wdXNoKGtlZShoLF8pKTsiPCI9PWZbMF0mJiEoaD09R0UmJl89PUdFKSYmbC5wdXNoKGtlZShfLGgpKX0oZCxhLGwpKTphLnB1c2goYyksYX1j'@; put 'b25zdCAkRT1uZXcgU2V0KFsidHJ1ZSIsIjEiXSkscUU9bmV3IFNldChbImZhbHNlIiwiMCJdKTtmdW5jdGlvbiBrZWUoYyxsKXtjb25zdCBhPSRFLmhhcyhjKXx8cUUuaGFzKGMpLGQ9JEUuaGFzKGwpfHxxRS5oYXMobCk7cmV0dXJuKGgsZik9PntsZXQgXz1jPT1HRXx8Yz09aCxUPWw9PUdF'@; put 'fHxsPT1mO3JldHVybiFfJiZhJiYiYm9vbGVhbiI9PXR5cGVvZiBoJiYoXz1oPyRFLmhhcyhjKTpxRS5oYXMoYykpLCFUJiZkJiYiYm9vbGVhbiI9PXR5cGVvZiBmJiYoVD1mPyRFLmhhcyhsKTpxRS5oYXMobCkpLF8mJlR9fWNvbnN0IFlNZT1uZXcgUmVnRXhwKCJzKjpzZWxmcyosPyIsImci'@; put 'KTtmdW5jdGlvbiB6SChjLGwsYSxkKXtyZXR1cm4gbmV3IFdNZShjKS5idWlsZChsLGEsZCl9Y2xhc3MgV01le2NvbnN0cnVjdG9yKGwpe3RoaXMuX2RyaXZlcj1sfWJ1aWxkKGwsYSxkKXtjb25zdCBoPW5ldyBxTWUoYSk7cmV0dXJuIHRoaXMuX3Jlc2V0Q29udGV4dFN0eWxlVGltaW5nU3Rh'@; put 'dGUoaCksdjEodGhpcyxHYihsKSxoKX1fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShsKXtsLmN1cnJlbnRRdWVyeVNlbGVjdG9yPSIiLGwuY29sbGVjdGVkU3R5bGVzPW5ldyBNYXAsbC5jb2xsZWN0ZWRTdHlsZXMuc2V0KCIiLG5ldyBNYXApLGwuY3VycmVudFRpbWU9MH12aXNpdFRy'@; put 'aWdnZXIobCxhKXtsZXQgZD1hLnF1ZXJ5Q291bnQ9MCxoPWEuZGVwQ291bnQ9MDtjb25zdCBmPVtdLF89W107cmV0dXJuIkAiPT1sLm5hbWUuY2hhckF0KDApJiZhLmVycm9ycy5wdXNoKGZ1bmN0aW9uIG5NZSgpe3JldHVybiBuZXcgQXIoMzAwNiwhMSl9KCkpLGwuZGVmaW5pdGlvbnMuZm9y'@; put 'RWFjaChUPT57aWYodGhpcy5fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShhKSwwPT1ULnR5cGUpe2NvbnN0IFc9VCxpZT1XLm5hbWU7aWUudG9TdHJpbmcoKS5zcGxpdCgvXHMqLFxzKi8pLmZvckVhY2gocGU9PntXLm5hbWU9cGUsZi5wdXNoKHRoaXMudmlzaXRTdGF0ZShXLGEpKX0p'@; put 'LFcubmFtZT1pZX1lbHNlIGlmKDE9PVQudHlwZSl7Y29uc3QgVz10aGlzLnZpc2l0VHJhbnNpdGlvbihULGEpO2QrPVcucXVlcnlDb3VudCxoKz1XLmRlcENvdW50LF8ucHVzaChXKX1lbHNlIGEuZXJyb3JzLnB1c2goZnVuY3Rpb24gck1lKCl7cmV0dXJuIG5ldyBBcigzMDA3LCExKX0oKSl9'@; put 'KSx7dHlwZTo3LG5hbWU6bC5uYW1lLHN0YXRlczpmLHRyYW5zaXRpb25zOl8scXVlcnlDb3VudDpkLGRlcENvdW50Omgsb3B0aW9uczpudWxsfX12aXNpdFN0YXRlKGwsYSl7Y29uc3QgZD10aGlzLnZpc2l0U3R5bGUobC5zdHlsZXMsYSksaD1sLm9wdGlvbnMmJmwub3B0aW9ucy5wYXJhbXN8'@; put 'fG51bGw7aWYoZC5jb250YWluc0R5bmFtaWNTdHlsZXMpe2NvbnN0IGY9bmV3IFNldCxfPWh8fHt9O2Quc3R5bGVzLmZvckVhY2goVD0+e1QgaW5zdGFuY2VvZiBNYXAmJlQuZm9yRWFjaChXPT57eGVlKFcpLmZvckVhY2goaWU9PntfLmhhc093blByb3BlcnR5KGllKXx8Zi5hZGQoaWUpfSl9'@; put 'KX0pLGYuc2l6ZSYmKFdFKGYudmFsdWVzKCkpLGEuZXJyb3JzLnB1c2goZnVuY3Rpb24gaU1lKGMsbCl7cmV0dXJuIG5ldyBBcigzMDA4LCExKX0oKSkpfXJldHVybnt0eXBlOjAsbmFtZTpsLm5hbWUsc3R5bGU6ZCxvcHRpb25zOmg/e3BhcmFtczpofTpudWxsfX12aXNpdFRyYW5zaXRpb24o'@; put 'bCxhKXthLnF1ZXJ5Q291bnQ9MCxhLmRlcENvdW50PTA7Y29uc3QgZD12MSh0aGlzLEdiKGwuYW5pbWF0aW9uKSxhKTtyZXR1cm57dHlwZToxLG1hdGNoZXJzOnpNZShsLmV4cHIsYS5lcnJvcnMpLGFuaW1hdGlvbjpkLHF1ZXJ5Q291bnQ6YS5xdWVyeUNvdW50LGRlcENvdW50OmEuZGVwQ291'@; put 'bnQsb3B0aW9uczpwZyhsLm9wdGlvbnMpfX12aXNpdFNlcXVlbmNlKGwsYSl7cmV0dXJue3R5cGU6MixzdGVwczpsLnN0ZXBzLm1hcChkPT52MSh0aGlzLGQsYSkpLG9wdGlvbnM6cGcobC5vcHRpb25zKX19dmlzaXRHcm91cChsLGEpe2NvbnN0IGQ9YS5jdXJyZW50VGltZTtsZXQgaD0wO2Nv'@; put 'bnN0IGY9bC5zdGVwcy5tYXAoXz0+e2EuY3VycmVudFRpbWU9ZDtjb25zdCBUPXYxKHRoaXMsXyxhKTtyZXR1cm4gaD1NYXRoLm1heChoLGEuY3VycmVudFRpbWUpLFR9KTtyZXR1cm4gYS5jdXJyZW50VGltZT1oLHt0eXBlOjMsc3RlcHM6ZixvcHRpb25zOnBnKGwub3B0aW9ucyl9fXZpc2l0'@; put 'QW5pbWF0ZShsLGEpe2NvbnN0IGQ9ZnVuY3Rpb24gWE1lKGMsbCl7aWYoYy5oYXNPd25Qcm9wZXJ0eSgiZHVyYXRpb24iKSlyZXR1cm4gYztpZigibnVtYmVyIj09dHlwZW9mIGMpcmV0dXJuIFVIKFlFKGMsbCkuZHVyYXRpb24sMCwiIik7Y29uc3QgYT1jO2lmKGEuc3BsaXQoL1xzKy8pLnNv'@; put 'bWUoZj0+InsiPT1mLmNoYXJBdCgwKSYmInsiPT1mLmNoYXJBdCgxKSkpe2NvbnN0IGY9VUgoMCwwLCIiKTtyZXR1cm4gZi5keW5hbWljPSEwLGYuc3RyVmFsdWU9YSxmfWNvbnN0IGg9WUUoYSxsKTtyZXR1cm4gVUgoaC5kdXJhdGlvbixoLmRlbGF5LGguZWFzaW5nKX0obC50aW1pbmdzLGEu'@; put 'ZXJyb3JzKTthLmN1cnJlbnRBbmltYXRlVGltaW5ncz1kO2xldCBoLGY9bC5zdHlsZXM/bC5zdHlsZXM6X3Moe30pO2lmKDU9PWYudHlwZSloPXRoaXMudmlzaXRLZXlmcmFtZXMoZixhKTtlbHNle2xldCBfPWwuc3R5bGVzLFQ9ITE7aWYoIV8pe1Q9ITA7Y29uc3QgaWU9e307ZC5lYXNpbmcm'@; put 'JihpZS5lYXNpbmc9ZC5lYXNpbmcpLF89X3MoaWUpfWEuY3VycmVudFRpbWUrPWQuZHVyYXRpb24rZC5kZWxheTtjb25zdCBXPXRoaXMudmlzaXRTdHlsZShfLGEpO1cuaXNFbXB0eVN0ZXA9VCxoPVd9cmV0dXJuIGEuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwse3R5cGU6NCx0aW1pbmdz'@; put 'OmQsc3R5bGU6aCxvcHRpb25zOm51bGx9fXZpc2l0U3R5bGUobCxhKXtjb25zdCBkPXRoaXMuX21ha2VTdHlsZUFzdChsLGEpO3JldHVybiB0aGlzLl92YWxpZGF0ZVN0eWxlQXN0KGQsYSksZH1fbWFrZVN0eWxlQXN0KGwsYSl7Y29uc3QgZD1bXSxoPUFycmF5LmlzQXJyYXkobC5zdHlsZXMp'@; put 'P2wuc3R5bGVzOltsLnN0eWxlc107Zm9yKGxldCBUIG9mIGgpInN0cmluZyI9PXR5cGVvZiBUP1Q9PT1BZj9kLnB1c2goVCk6YS5lcnJvcnMucHVzaChuZXcgQXIoMzAwMiwhMSkpOmQucHVzaChTZWUoVCkpO2xldCBmPSExLF89bnVsbDtyZXR1cm4gZC5mb3JFYWNoKFQ9PntpZihUIGluc3Rh'@; put 'bmNlb2YgTWFwJiYoVC5oYXMoImVhc2luZyIpJiYoXz1ULmdldCgiZWFzaW5nIiksVC5kZWxldGUoImVhc2luZyIpKSwhZikpZm9yKGxldCBXIG9mIFQudmFsdWVzKCkpaWYoVy50b1N0cmluZygpLmluZGV4T2YoInt7Iik+PTApe2Y9ITA7YnJlYWt9fSkse3R5cGU6NixzdHlsZXM6ZCxlYXNp'@; put 'bmc6XyxvZmZzZXQ6bC5vZmZzZXQsY29udGFpbnNEeW5hbWljU3R5bGVzOmYsb3B0aW9uczpudWxsfX1fdmFsaWRhdGVTdHlsZUFzdChsLGEpe2NvbnN0IGQ9YS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7bGV0IGg9YS5jdXJyZW50VGltZSxmPWEuY3VycmVudFRpbWU7ZCYmZj4wJiYoZi09ZC5k'@; put 'dXJhdGlvbitkLmRlbGF5KSxsLnN0eWxlcy5mb3JFYWNoKF89Pnsic3RyaW5nIiE9dHlwZW9mIF8mJl8uZm9yRWFjaCgoVCxXKT0+e2NvbnN0IGllPWEuY29sbGVjdGVkU3R5bGVzLmdldChhLmN1cnJlbnRRdWVyeVNlbGVjdG9yKSxwZT1pZS5nZXQoVyk7bGV0IHdlPSEwO3BlJiYoZiE9aCYm'@; put 'Zj49cGUuc3RhcnRUaW1lJiZoPD1wZS5lbmRUaW1lJiYoYS5lcnJvcnMucHVzaChmdW5jdGlvbiBzTWUoYyxsLGEsZCxoKXtyZXR1cm4gbmV3IEFyKDMwMTAsITEpfSgpKSx3ZT0hMSksZj1wZS5zdGFydFRpbWUpLHdlJiZpZS5zZXQoVyx7c3RhcnRUaW1lOmYsZW5kVGltZTpofSksYS5vcHRp'@; put 'b25zJiZmdW5jdGlvbiBOTWUoYyxsLGEpe2NvbnN0IGQ9bC5wYXJhbXN8fHt9LGg9eGVlKGMpO2gubGVuZ3RoJiZoLmZvckVhY2goZj0+e2QuaGFzT3duUHJvcGVydHkoZil8fGEucHVzaChmdW5jdGlvbiBKU2UoYyl7cmV0dXJuIG5ldyBBcigzMDAxLCExKX0oKSl9KX0oVCxhLm9wdGlvbnMs'@; put 'YS5lcnJvcnMpfSl9KX12aXNpdEtleWZyYW1lcyhsLGEpe2NvbnN0IGQ9e3R5cGU6NSxzdHlsZXM6W10sb3B0aW9uczpudWxsfTtpZighYS5jdXJyZW50QW5pbWF0ZVRpbWluZ3MpcmV0dXJuIGEuZXJyb3JzLnB1c2goZnVuY3Rpb24gYU1lKCl7cmV0dXJuIG5ldyBBcigzMDExLCExKX0oKSks'@; put 'ZDtsZXQgZj0wO2NvbnN0IF89W107bGV0IFQ9ITEsVz0hMSxpZT0wO2NvbnN0IHBlPWwuc3RlcHMubWFwKEV0PT57Y29uc3QgU3Q9dGhpcy5fbWFrZVN0eWxlQXN0KEV0LGEpO2xldCBKdD1udWxsIT1TdC5vZmZzZXQ/U3Qub2Zmc2V0OmZ1bmN0aW9uIEtNZShjKXtpZigic3RyaW5nIj09dHlw'@; put 'ZW9mIGMpcmV0dXJuIG51bGw7bGV0IGw9bnVsbDtpZihBcnJheS5pc0FycmF5KGMpKWMuZm9yRWFjaChhPT57aWYoYSBpbnN0YW5jZW9mIE1hcCYmYS5oYXMoIm9mZnNldCIpKXtjb25zdCBkPWE7bD1wYXJzZUZsb2F0KGQuZ2V0KCJvZmZzZXQiKSksZC5kZWxldGUoIm9mZnNldCIpfX0pO2Vs'@; put 'c2UgaWYoYyBpbnN0YW5jZW9mIE1hcCYmYy5oYXMoIm9mZnNldCIpKXtjb25zdCBhPWM7bD1wYXJzZUZsb2F0KGEuZ2V0KCJvZmZzZXQiKSksYS5kZWxldGUoIm9mZnNldCIpfXJldHVybiBsfShTdC5zdHlsZXMpLG5uPTA7cmV0dXJuIG51bGwhPUp0JiYoZisrLG5uPVN0Lm9mZnNldD1KdCks'@; put 'Vz1XfHxubjwwfHxubj4xLFQ9VHx8bm48aWUsaWU9bm4sXy5wdXNoKG5uKSxTdH0pO1cmJmEuZXJyb3JzLnB1c2goZnVuY3Rpb24gbE1lKCl7cmV0dXJuIG5ldyBBcigzMDEyLCExKX0oKSksVCYmYS5lcnJvcnMucHVzaChmdW5jdGlvbiBjTWUoKXtyZXR1cm4gbmV3IEFyKDMyMDAsITEpfSgp'@; put 'KTtjb25zdCB3ZT1sLnN0ZXBzLmxlbmd0aDtsZXQgRWU9MDtmPjAmJmY8d2U/YS5lcnJvcnMucHVzaChmdW5jdGlvbiB1TWUoKXtyZXR1cm4gbmV3IEFyKDMyMDIsITEpfSgpKTowPT1mJiYoRWU9MS8od2UtMSkpO2NvbnN0IFplPXdlLTEsaXQ9YS5jdXJyZW50VGltZSxldD1hLmN1cnJlbnRB'@; put 'bmltYXRlVGltaW5ncyx5dD1ldC5kdXJhdGlvbjtyZXR1cm4gcGUuZm9yRWFjaCgoRXQsU3QpPT57Y29uc3QgSnQ9RWU+MD9TdD09WmU/MTpFZSpTdDpfW1N0XSxubj1KdCp5dDthLmN1cnJlbnRUaW1lPWl0K2V0LmRlbGF5K25uLGV0LmR1cmF0aW9uPW5uLHRoaXMuX3ZhbGlkYXRlU3R5bGVB'@; put 'c3QoRXQsYSksRXQub2Zmc2V0PUp0LGQuc3R5bGVzLnB1c2goRXQpfSksZH12aXNpdFJlZmVyZW5jZShsLGEpe3JldHVybnt0eXBlOjgsYW5pbWF0aW9uOnYxKHRoaXMsR2IobC5hbmltYXRpb24pLGEpLG9wdGlvbnM6cGcobC5vcHRpb25zKX19dmlzaXRBbmltYXRlQ2hpbGQobCxhKXtyZXR1'@; put 'cm4gYS5kZXBDb3VudCsrLHt0eXBlOjksb3B0aW9uczpwZyhsLm9wdGlvbnMpfX12aXNpdEFuaW1hdGVSZWYobCxhKXtyZXR1cm57dHlwZToxMCxhbmltYXRpb246dGhpcy52aXNpdFJlZmVyZW5jZShsLmFuaW1hdGlvbixhKSxvcHRpb25zOnBnKGwub3B0aW9ucyl9fXZpc2l0UXVlcnkobCxh'@; put 'KXtjb25zdCBkPWEuY3VycmVudFF1ZXJ5U2VsZWN0b3IsaD1sLm9wdGlvbnN8fHt9O2EucXVlcnlDb3VudCsrLGEuY3VycmVudFF1ZXJ5PWw7Y29uc3RbZixfXT1mdW5jdGlvbiBHTWUoYyl7Y29uc3QgbD0hIWMuc3BsaXQoL1xzKixccyovKS5maW5kKGE9PiI6c2VsZiI9PWEpO3JldHVybiBs'@; put 'JiYoYz1jLnJlcGxhY2UoWU1lLCIiKSksYz1jLnJlcGxhY2UoL0BcKi9nLFpFKS5yZXBsYWNlKC9AXHcrL2csYT0+WkUrIi0iK2Euc2xpY2UoMSkpLnJlcGxhY2UoLzphbmltYXRpbmcvZyxOSCksW2MsbF19KGwuc2VsZWN0b3IpO2EuY3VycmVudFF1ZXJ5U2VsZWN0b3I9ZC5sZW5ndGg/ZCsi'@; put 'ICIrZjpmLG0xKGEuY29sbGVjdGVkU3R5bGVzLGEuY3VycmVudFF1ZXJ5U2VsZWN0b3IsbmV3IE1hcCk7Y29uc3QgVD12MSh0aGlzLEdiKGwuYW5pbWF0aW9uKSxhKTtyZXR1cm4gYS5jdXJyZW50UXVlcnk9bnVsbCxhLmN1cnJlbnRRdWVyeVNlbGVjdG9yPWQse3R5cGU6MTEsc2VsZWN0b3I6'@; put 'ZixsaW1pdDpoLmxpbWl0fHwwLG9wdGlvbmFsOiEhaC5vcHRpb25hbCxpbmNsdWRlU2VsZjpfLGFuaW1hdGlvbjpULG9yaWdpbmFsU2VsZWN0b3I6bC5zZWxlY3RvcixvcHRpb25zOnBnKGwub3B0aW9ucyl9fXZpc2l0U3RhZ2dlcihsLGEpe2EuY3VycmVudFF1ZXJ5fHxhLmVycm9ycy5wdXNo'@; put 'KGZ1bmN0aW9uIGRNZSgpe3JldHVybiBuZXcgQXIoMzAxMywhMSl9KCkpO2NvbnN0IGQ9ImZ1bGwiPT09bC50aW1pbmdzP3tkdXJhdGlvbjowLGRlbGF5OjAsZWFzaW5nOiJmdWxsIn06WUUobC50aW1pbmdzLGEuZXJyb3JzLCEwKTtyZXR1cm57dHlwZToxMixhbmltYXRpb246djEodGhpcyxH'@; put 'YihsLmFuaW1hdGlvbiksYSksdGltaW5nczpkLG9wdGlvbnM6bnVsbH19fWNsYXNzIHFNZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmVycm9ycz1sLHRoaXMucXVlcnlDb3VudD0wLHRoaXMuZGVwQ291bnQ9MCx0aGlzLmN1cnJlbnRUcmFuc2l0aW9uPW51bGwsdGhpcy5jdXJyZW50UXVlcnk9bnVs'@; put 'bCx0aGlzLmN1cnJlbnRRdWVyeVNlbGVjdG9yPW51bGwsdGhpcy5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5jb2xsZWN0ZWRTdHlsZXM9bmV3IE1hcCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLnVuc3VwcG9ydGVkQ1NTUHJvcGVydGllc0ZvdW5k'@; put 'PW5ldyBTZXR9fWZ1bmN0aW9uIHBnKGMpe3JldHVybiBjPyhjPVdiKGMpKS5wYXJhbXMmJihjLnBhcmFtcz1mdW5jdGlvbiAkTWUoYyl7cmV0dXJuIGM/V2IoYyk6bnVsbH0oYy5wYXJhbXMpKTpjPXt9LGN9ZnVuY3Rpb24gVUgoYyxsLGEpe3JldHVybntkdXJhdGlvbjpjLGRlbGF5OmwsZWFz'@; put 'aW5nOmF9fWZ1bmN0aW9uIFpIKGMsbCxhLGQsaCxmLF89bnVsbCxUPSExKXtyZXR1cm57dHlwZToxLGVsZW1lbnQ6YyxrZXlmcmFtZXM6bCxwcmVTdHlsZVByb3BzOmEscG9zdFN0eWxlUHJvcHM6ZCxkdXJhdGlvbjpoLGRlbGF5OmYsdG90YWxUaW1lOmgrZixlYXNpbmc6XyxzdWJUaW1lbGlu'@; put 'ZTpUfX1jbGFzcyBLRXtjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD1uZXcgTWFwfWdldChsKXtyZXR1cm4gdGhpcy5fbWFwLmdldChsKXx8W119YXBwZW5kKGwsYSl7bGV0IGQ9dGhpcy5fbWFwLmdldChsKTtkfHx0aGlzLl9tYXAuc2V0KGwsZD1bXSksZC5wdXNoKC4uLmEpfWhhcyhsKXtyZXR1'@; put 'cm4gdGhpcy5fbWFwLmhhcyhsKX1jbGVhcigpe3RoaXMuX21hcC5jbGVhcigpfX1jb25zdCBleGU9bmV3IFJlZ0V4cCgiOmVudGVyIiwiZyIpLG54ZT1uZXcgUmVnRXhwKCI6bGVhdmUiLCJnIik7ZnVuY3Rpb24gWUgoYyxsLGEsZCxoLGY9bmV3IE1hcCxfPW5ldyBNYXAsVCxXLGllPVtdKXty'@; put 'ZXR1cm4obmV3IHJ4ZSkuYnVpbGRLZXlmcmFtZXMoYyxsLGEsZCxoLGYsXyxULFcsaWUpfWNsYXNzIHJ4ZXtidWlsZEtleWZyYW1lcyhsLGEsZCxoLGYsXyxULFcsaWUscGU9W10pe2llPWllfHxuZXcgS0U7Y29uc3Qgd2U9bmV3IFdIKGwsYSxpZSxoLGYscGUsW10pO3dlLm9wdGlvbnM9Vztj'@; put 'b25zdCBFZT1XLmRlbGF5P0JmKFcuZGVsYXkpOjA7d2UuY3VycmVudFRpbWVsaW5lLmRlbGF5TmV4dFN0ZXAoRWUpLHdlLmN1cnJlbnRUaW1lbGluZS5zZXRTdHlsZXMoW19dLG51bGwsd2UuZXJyb3JzLFcpLHYxKHRoaXMsZCx3ZSk7Y29uc3QgWmU9d2UudGltZWxpbmVzLmZpbHRlcihpdD0+'@; put 'aXQuY29udGFpbnNBbmltYXRpb24oKSk7aWYoWmUubGVuZ3RoJiZULnNpemUpe2xldCBpdDtmb3IobGV0IGV0PVplLmxlbmd0aC0xO2V0Pj0wO2V0LS0pe2NvbnN0IHl0PVplW2V0XTtpZih5dC5lbGVtZW50PT09YSl7aXQ9eXQ7YnJlYWt9fWl0JiYhaXQuYWxsb3dPbmx5VGltZWxpbmVTdHls'@; put 'ZXMoKSYmaXQuc2V0U3R5bGVzKFtUXSxudWxsLHdlLmVycm9ycyxXKX1yZXR1cm4gWmUubGVuZ3RoP1plLm1hcChpdD0+aXQuYnVpbGRLZXlmcmFtZXMoKSk6W1pIKGEsW10sW10sW10sMCxFZSwiIiwhMSldfXZpc2l0VHJpZ2dlcihsLGEpe312aXNpdFN0YXRlKGwsYSl7fXZpc2l0VHJhbnNp'@; put 'dGlvbihsLGEpe312aXNpdEFuaW1hdGVDaGlsZChsLGEpe2NvbnN0IGQ9YS5zdWJJbnN0cnVjdGlvbnMuZ2V0KGEuZWxlbWVudCk7aWYoZCl7Y29uc3QgaD1hLmNyZWF0ZVN1YkNvbnRleHQobC5vcHRpb25zKSxmPWEuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLF89dGhpcy5fdmlzaXRT'@; put 'dWJJbnN0cnVjdGlvbnMoZCxoLGgub3B0aW9ucyk7ZiE9XyYmYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoXyl9YS5wcmV2aW91c05vZGU9bH12aXNpdEFuaW1hdGVSZWYobCxhKXtjb25zdCBkPWEuY3JlYXRlU3ViQ29udGV4dChsLm9wdGlvbnMpO2QudHJhbnNmb3JtSW50b05ld1RpbWVs'@; put 'aW5lKCksdGhpcy5fYXBwbHlBbmltYXRpb25SZWZEZWxheXMoW2wub3B0aW9ucyxsLmFuaW1hdGlvbi5vcHRpb25zXSxhLGQpLHRoaXMudmlzaXRSZWZlcmVuY2UobC5hbmltYXRpb24sZCksYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoZC5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUp'@; put 'LGEucHJldmlvdXNOb2RlPWx9X2FwcGx5QW5pbWF0aW9uUmVmRGVsYXlzKGwsYSxkKXtmb3IoY29uc3QgaCBvZiBsKXtjb25zdCBmPWg/LmRlbGF5O2lmKGYpe2NvbnN0IF89Im51bWJlciI9PXR5cGVvZiBmP2Y6QmYoJGIoZixoPy5wYXJhbXM/P3t9LGEuZXJyb3JzKSk7ZC5kZWxheU5leHRT'@; put 'dGVwKF8pfX19X3Zpc2l0U3ViSW5zdHJ1Y3Rpb25zKGwsYSxkKXtsZXQgZj1hLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZTtjb25zdCBfPW51bGwhPWQuZHVyYXRpb24/QmYoZC5kdXJhdGlvbik6bnVsbCxUPW51bGwhPWQuZGVsYXk/QmYoZC5kZWxheSk6bnVsbDtyZXR1cm4gMCE9PV8m'@; put 'JmwuZm9yRWFjaChXPT57Y29uc3QgaWU9YS5hcHBlbmRJbnN0cnVjdGlvblRvVGltZWxpbmUoVyxfLFQpO2Y9TWF0aC5tYXgoZixpZS5kdXJhdGlvbitpZS5kZWxheSl9KSxmfXZpc2l0UmVmZXJlbmNlKGwsYSl7YS51cGRhdGVPcHRpb25zKGwub3B0aW9ucywhMCksdjEodGhpcyxsLmFuaW1h'@; put 'dGlvbixhKSxhLnByZXZpb3VzTm9kZT1sfXZpc2l0U2VxdWVuY2UobCxhKXtjb25zdCBkPWEuc3ViQ29udGV4dENvdW50O2xldCBoPWE7Y29uc3QgZj1sLm9wdGlvbnM7aWYoZiYmKGYucGFyYW1zfHxmLmRlbGF5KSYmKGg9YS5jcmVhdGVTdWJDb250ZXh0KGYpLGgudHJhbnNmb3JtSW50b05l'@; put 'd1RpbWVsaW5lKCksbnVsbCE9Zi5kZWxheSkpezY9PWgucHJldmlvdXNOb2RlLnR5cGUmJihoLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxoLnByZXZpb3VzTm9kZT1YRSk7Y29uc3QgXz1CZihmLmRlbGF5KTtoLmRlbGF5TmV4dFN0ZXAoXyl9bC5zdGVwcy5sZW5n'@; put 'dGgmJihsLnN0ZXBzLmZvckVhY2goXz0+djEodGhpcyxfLGgpKSxoLmN1cnJlbnRUaW1lbGluZS5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxoLnN1YkNvbnRleHRDb3VudD5kJiZoLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSgpKSxhLnByZXZpb3VzTm9kZT1sfXZpc2l0R3JvdXAobCxhKXtj'@; put 'b25zdCBkPVtdO2xldCBoPWEuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lO2NvbnN0IGY9bC5vcHRpb25zJiZsLm9wdGlvbnMuZGVsYXk/QmYobC5vcHRpb25zLmRlbGF5KTowO2wuc3RlcHMuZm9yRWFjaChfPT57Y29uc3QgVD1hLmNyZWF0ZVN1YkNvbnRleHQobC5vcHRpb25zKTtmJiZU'@; put 'LmRlbGF5TmV4dFN0ZXAoZiksdjEodGhpcyxfLFQpLGg9TWF0aC5tYXgoaCxULmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSksZC5wdXNoKFQuY3VycmVudFRpbWVsaW5lKX0pLGQuZm9yRWFjaChfPT5hLmN1cnJlbnRUaW1lbGluZS5tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKF8p'@; put 'KSxhLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShoKSxhLnByZXZpb3VzTm9kZT1sfV92aXNpdFRpbWluZyhsLGEpe2lmKGwuZHluYW1pYyl7Y29uc3QgZD1sLnN0clZhbHVlO3JldHVybiBZRShhLnBhcmFtcz8kYihkLGEucGFyYW1zLGEuZXJyb3JzKTpkLGEuZXJyb3JzKX1yZXR1cm57ZHVy'@; put 'YXRpb246bC5kdXJhdGlvbixkZWxheTpsLmRlbGF5LGVhc2luZzpsLmVhc2luZ319dmlzaXRBbmltYXRlKGwsYSl7Y29uc3QgZD1hLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLl92aXNpdFRpbWluZyhsLnRpbWluZ3MsYSksaD1hLmN1cnJlbnRUaW1lbGluZTtkLmRlbGF5JiYoYS5pbmNy'@; put 'ZW1lbnRUaW1lKGQuZGVsYXkpLGguc25hcHNob3RDdXJyZW50U3R5bGVzKCkpO2NvbnN0IGY9bC5zdHlsZTs1PT1mLnR5cGU/dGhpcy52aXNpdEtleWZyYW1lcyhmLGEpOihhLmluY3JlbWVudFRpbWUoZC5kdXJhdGlvbiksdGhpcy52aXNpdFN0eWxlKGYsYSksaC5hcHBseVN0eWxlc1RvS2V5'@; put 'ZnJhbWUoKSksYS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCxhLnByZXZpb3VzTm9kZT1sfXZpc2l0U3R5bGUobCxhKXtjb25zdCBkPWEuY3VycmVudFRpbWVsaW5lLGg9YS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7IWgmJmQuaGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpJiZkLmZvcndh'@; put 'cmRGcmFtZSgpO2NvbnN0IGY9aCYmaC5lYXNpbmd8fGwuZWFzaW5nO2wuaXNFbXB0eVN0ZXA/ZC5hcHBseUVtcHR5U3RlcChmKTpkLnNldFN0eWxlcyhsLnN0eWxlcyxmLGEuZXJyb3JzLGEub3B0aW9ucyksYS5wcmV2aW91c05vZGU9bH12aXNpdEtleWZyYW1lcyhsLGEpe2NvbnN0IGQ9YS5j'@; put 'dXJyZW50QW5pbWF0ZVRpbWluZ3MsaD1hLmN1cnJlbnRUaW1lbGluZS5kdXJhdGlvbixmPWQuZHVyYXRpb24sVD1hLmNyZWF0ZVN1YkNvbnRleHQoKS5jdXJyZW50VGltZWxpbmU7VC5lYXNpbmc9ZC5lYXNpbmcsbC5zdHlsZXMuZm9yRWFjaChXPT57VC5mb3J3YXJkVGltZSgoVy5vZmZzZXR8'@; put 'fDApKmYpLFQuc2V0U3R5bGVzKFcuc3R5bGVzLFcuZWFzaW5nLGEuZXJyb3JzLGEub3B0aW9ucyksVC5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKX0pLGEuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMoVCksYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoaCtm'@; put 'KSxhLnByZXZpb3VzTm9kZT1sfXZpc2l0UXVlcnkobCxhKXtjb25zdCBkPWEuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLGg9bC5vcHRpb25zfHx7fSxmPWguZGVsYXk/QmYoaC5kZWxheSk6MDtmJiYoNj09PWEucHJldmlvdXNOb2RlLnR5cGV8fDA9PWQmJmEuY3VycmVudFRpbWVsaW5l'@; put 'Lmhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKSkmJihhLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSxhLnByZXZpb3VzTm9kZT1YRSk7bGV0IF89ZDtjb25zdCBUPWEuaW52b2tlUXVlcnkobC5zZWxlY3RvcixsLm9yaWdpbmFsU2VsZWN0b3IsbC5saW1pdCxsLmlu'@; put 'Y2x1ZGVTZWxmLCEhaC5vcHRpb25hbCxhLmVycm9ycyk7YS5jdXJyZW50UXVlcnlUb3RhbD1ULmxlbmd0aDtsZXQgVz1udWxsO1QuZm9yRWFjaCgoaWUscGUpPT57YS5jdXJyZW50UXVlcnlJbmRleD1wZTtjb25zdCB3ZT1hLmNyZWF0ZVN1YkNvbnRleHQobC5vcHRpb25zLGllKTtmJiZ3ZS5k'@; put 'ZWxheU5leHRTdGVwKGYpLGllPT09YS5lbGVtZW50JiYoVz13ZS5jdXJyZW50VGltZWxpbmUpLHYxKHRoaXMsbC5hbmltYXRpb24sd2UpLHdlLmN1cnJlbnRUaW1lbGluZS5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxfPU1hdGgubWF4KF8sd2UuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1l'@; put 'KX0pLGEuY3VycmVudFF1ZXJ5SW5kZXg9MCxhLmN1cnJlbnRRdWVyeVRvdGFsPTAsYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoXyksVyYmKGEuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMoVyksYS5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50'@; put 'U3R5bGVzKCkpLGEucHJldmlvdXNOb2RlPWx9dmlzaXRTdGFnZ2VyKGwsYSl7Y29uc3QgZD1hLnBhcmVudENvbnRleHQsaD1hLmN1cnJlbnRUaW1lbGluZSxmPWwudGltaW5ncyxfPU1hdGguYWJzKGYuZHVyYXRpb24pLFQ9XyooYS5jdXJyZW50UXVlcnlUb3RhbC0xKTtsZXQgVz1fKmEuY3Vy'@; put 'cmVudFF1ZXJ5SW5kZXg7c3dpdGNoKGYuZHVyYXRpb248MD8icmV2ZXJzZSI6Zi5lYXNpbmcpe2Nhc2UicmV2ZXJzZSI6Vz1ULVc7YnJlYWs7Y2FzZSJmdWxsIjpXPWQuY3VycmVudFN0YWdnZXJUaW1lfWNvbnN0IHBlPWEuY3VycmVudFRpbWVsaW5lO1cmJnBlLmRlbGF5TmV4dFN0ZXAoVyk7'@; put 'Y29uc3Qgd2U9cGUuY3VycmVudFRpbWU7djEodGhpcyxsLmFuaW1hdGlvbixhKSxhLnByZXZpb3VzTm9kZT1sLGQuY3VycmVudFN0YWdnZXJUaW1lPWguY3VycmVudFRpbWUtd2UrKGguc3RhcnRUaW1lLWQuY3VycmVudFRpbWVsaW5lLnN0YXJ0VGltZSl9fWNvbnN0IFhFPXt9O2NsYXNzIFdI'@; put 'e2NvbnN0cnVjdG9yKGwsYSxkLGgsZixfLFQsVyl7dGhpcy5fZHJpdmVyPWwsdGhpcy5lbGVtZW50PWEsdGhpcy5zdWJJbnN0cnVjdGlvbnM9ZCx0aGlzLl9lbnRlckNsYXNzTmFtZT1oLHRoaXMuX2xlYXZlQ2xhc3NOYW1lPWYsdGhpcy5lcnJvcnM9Xyx0aGlzLnRpbWVsaW5lcz1ULHRoaXMu'@; put 'cGFyZW50Q29udGV4dD1udWxsLHRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwsdGhpcy5wcmV2aW91c05vZGU9WEUsdGhpcy5zdWJDb250ZXh0Q291bnQ9MCx0aGlzLm9wdGlvbnM9e30sdGhpcy5jdXJyZW50UXVlcnlJbmRleD0wLHRoaXMuY3VycmVudFF1ZXJ5VG90YWw9MCx0aGlz'@; put 'LmN1cnJlbnRTdGFnZ2VyVGltZT0wLHRoaXMuY3VycmVudFRpbWVsaW5lPVd8fG5ldyBKRSh0aGlzLl9kcml2ZXIsYSwwKSxULnB1c2godGhpcy5jdXJyZW50VGltZWxpbmUpfWdldCBwYXJhbXMoKXtyZXR1cm4gdGhpcy5vcHRpb25zLnBhcmFtc311cGRhdGVPcHRpb25zKGwsYSl7aWYoIWwp'@; put 'cmV0dXJuO2NvbnN0IGQ9bDtsZXQgaD10aGlzLm9wdGlvbnM7bnVsbCE9ZC5kdXJhdGlvbiYmKGguZHVyYXRpb249QmYoZC5kdXJhdGlvbikpLG51bGwhPWQuZGVsYXkmJihoLmRlbGF5PUJmKGQuZGVsYXkpKTtjb25zdCBmPWQucGFyYW1zO2lmKGYpe2xldCBfPWgucGFyYW1zO198fChfPXRo'@; put 'aXMub3B0aW9ucy5wYXJhbXM9e30pLE9iamVjdC5rZXlzKGYpLmZvckVhY2goVD0+eyghYXx8IV8uaGFzT3duUHJvcGVydHkoVCkpJiYoX1tUXT0kYihmW1RdLF8sdGhpcy5lcnJvcnMpKX0pfX1fY29weU9wdGlvbnMoKXtjb25zdCBsPXt9O2lmKHRoaXMub3B0aW9ucyl7Y29uc3QgYT10aGlz'@; put 'Lm9wdGlvbnMucGFyYW1zO2lmKGEpe2NvbnN0IGQ9bC5wYXJhbXM9e307T2JqZWN0LmtleXMoYSkuZm9yRWFjaChoPT57ZFtoXT1hW2hdfSl9fXJldHVybiBsfWNyZWF0ZVN1YkNvbnRleHQobD1udWxsLGEsZCl7Y29uc3QgaD1hfHx0aGlzLmVsZW1lbnQsZj1uZXcgV0godGhpcy5fZHJpdmVy'@; put 'LGgsdGhpcy5zdWJJbnN0cnVjdGlvbnMsdGhpcy5fZW50ZXJDbGFzc05hbWUsdGhpcy5fbGVhdmVDbGFzc05hbWUsdGhpcy5lcnJvcnMsdGhpcy50aW1lbGluZXMsdGhpcy5jdXJyZW50VGltZWxpbmUuZm9yayhoLGR8fDApKTtyZXR1cm4gZi5wcmV2aW91c05vZGU9dGhpcy5wcmV2aW91c05v'@; put 'ZGUsZi5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9dGhpcy5jdXJyZW50QW5pbWF0ZVRpbWluZ3MsZi5vcHRpb25zPXRoaXMuX2NvcHlPcHRpb25zKCksZi51cGRhdGVPcHRpb25zKGwpLGYuY3VycmVudFF1ZXJ5SW5kZXg9dGhpcy5jdXJyZW50UXVlcnlJbmRleCxmLmN1cnJlbnRRdWVyeVRvdGFs'@; put 'PXRoaXMuY3VycmVudFF1ZXJ5VG90YWwsZi5wYXJlbnRDb250ZXh0PXRoaXMsdGhpcy5zdWJDb250ZXh0Q291bnQrKyxmfXRyYW5zZm9ybUludG9OZXdUaW1lbGluZShsKXtyZXR1cm4gdGhpcy5wcmV2aW91c05vZGU9WEUsdGhpcy5jdXJyZW50VGltZWxpbmU9dGhpcy5jdXJyZW50VGltZWxp'@; put 'bmUuZm9yayh0aGlzLmVsZW1lbnQsbCksdGhpcy50aW1lbGluZXMucHVzaCh0aGlzLmN1cnJlbnRUaW1lbGluZSksdGhpcy5jdXJyZW50VGltZWxpbmV9YXBwZW5kSW5zdHJ1Y3Rpb25Ub1RpbWVsaW5lKGwsYSxkKXtjb25zdCBoPXtkdXJhdGlvbjphPz9sLmR1cmF0aW9uLGRlbGF5OnRoaXMu'@; put 'Y3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKyhkPz8wKStsLmRlbGF5LGVhc2luZzoiIn0sZj1uZXcgaXhlKHRoaXMuX2RyaXZlcixsLmVsZW1lbnQsbC5rZXlmcmFtZXMsbC5wcmVTdHlsZVByb3BzLGwucG9zdFN0eWxlUHJvcHMsaCxsLnN0cmV0Y2hTdGFydGluZ0tleWZyYW1lKTtyZXR1'@; put 'cm4gdGhpcy50aW1lbGluZXMucHVzaChmKSxofWluY3JlbWVudFRpbWUobCl7dGhpcy5jdXJyZW50VGltZWxpbmUuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZWxpbmUuZHVyYXRpb24rbCl9ZGVsYXlOZXh0U3RlcChsKXtsPjAmJnRoaXMuY3VycmVudFRpbWVsaW5lLmRlbGF5TmV4dFN0'@; put 'ZXAobCl9aW52b2tlUXVlcnkobCxhLGQsaCxmLF8pe2xldCBUPVtdO2lmKGgmJlQucHVzaCh0aGlzLmVsZW1lbnQpLGwubGVuZ3RoPjApe2w9KGw9bC5yZXBsYWNlKGV4ZSwiLiIrdGhpcy5fZW50ZXJDbGFzc05hbWUpKS5yZXBsYWNlKG54ZSwiLiIrdGhpcy5fbGVhdmVDbGFzc05hbWUpO2xl'@; put 'dCBpZT10aGlzLl9kcml2ZXIucXVlcnkodGhpcy5lbGVtZW50LGwsMSE9ZCk7MCE9PWQmJihpZT1kPDA/aWUuc2xpY2UoaWUubGVuZ3RoK2QsaWUubGVuZ3RoKTppZS5zbGljZSgwLGQpKSxULnB1c2goLi4uaWUpfXJldHVybiFmJiYwPT1ULmxlbmd0aCYmXy5wdXNoKGZ1bmN0aW9uIGhNZShj'@; put 'KXtyZXR1cm4gbmV3IEFyKDMwMTQsITEpfSgpKSxUfX1jbGFzcyBKRXtjb25zdHJ1Y3RvcihsLGEsZCxoKXt0aGlzLl9kcml2ZXI9bCx0aGlzLmVsZW1lbnQ9YSx0aGlzLnN0YXJ0VGltZT1kLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cD1oLHRoaXMuZHVyYXRpb249MCx0aGlz'@; put 'LmVhc2luZz1udWxsLHRoaXMuX3ByZXZpb3VzS2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9jdXJyZW50S2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9rZXlmcmFtZXM9bmV3IE1hcCx0aGlzLl9zdHlsZVN1bW1hcnk9bmV3IE1hcCx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzPW5ldyBNYXAsdGhpcy5f'@; put 'cGVuZGluZ1N0eWxlcz1uZXcgTWFwLHRoaXMuX2JhY2tGaWxsPW5ldyBNYXAsdGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZyYW1lPW51bGwsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwfHwodGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwPW5ldyBNYXApLHRoaXMu'@; put 'X2dsb2JhbFRpbWVsaW5lU3R5bGVzPXRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cC5nZXQoYSksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXN8fCh0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcz10aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzLHRoaXMuX2VsZW1lbnRUaW1lbGlu'@; put 'ZVN0eWxlc0xvb2t1cC5zZXQoYSx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKSksdGhpcy5fbG9hZEtleWZyYW1lKCl9Y29udGFpbnNBbmltYXRpb24oKXtzd2l0Y2godGhpcy5fa2V5ZnJhbWVzLnNpemUpe2Nhc2UgMDpyZXR1cm4hMTtjYXNlIDE6cmV0dXJuIHRoaXMuaGFzQ3VycmVudFN0'@; put 'eWxlUHJvcGVydGllcygpO2RlZmF1bHQ6cmV0dXJuITB9fWhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fY3VycmVudEtleWZyYW1lLnNpemU+MH1nZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5zdGFydFRpbWUrdGhpcy5kdXJhdGlvbn1kZWxheU5leHRTdGVw'@; put 'KGwpe2NvbnN0IGE9MT09PXRoaXMuX2tleWZyYW1lcy5zaXplJiZ0aGlzLl9wZW5kaW5nU3R5bGVzLnNpemU7dGhpcy5kdXJhdGlvbnx8YT8odGhpcy5mb3J3YXJkVGltZSh0aGlzLmN1cnJlbnRUaW1lK2wpLGEmJnRoaXMuc25hcHNob3RDdXJyZW50U3R5bGVzKCkpOnRoaXMuc3RhcnRUaW1l'@; put 'Kz1sfWZvcmsobCxhKXtyZXR1cm4gdGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxuZXcgSkUodGhpcy5fZHJpdmVyLGwsYXx8dGhpcy5jdXJyZW50VGltZSx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXApfV9sb2FkS2V5ZnJhbWUoKXt0aGlzLl9jdXJyZW50S2V5ZnJhbWUm'@; put 'Jih0aGlzLl9wcmV2aW91c0tleWZyYW1lPXRoaXMuX2N1cnJlbnRLZXlmcmFtZSksdGhpcy5fY3VycmVudEtleWZyYW1lPXRoaXMuX2tleWZyYW1lcy5nZXQodGhpcy5kdXJhdGlvbiksdGhpcy5fY3VycmVudEtleWZyYW1lfHwodGhpcy5fY3VycmVudEtleWZyYW1lPW5ldyBNYXAsdGhpcy5f'@; put 'a2V5ZnJhbWVzLnNldCh0aGlzLmR1cmF0aW9uLHRoaXMuX2N1cnJlbnRLZXlmcmFtZSkpfWZvcndhcmRGcmFtZSgpe3RoaXMuZHVyYXRpb24rPTEsdGhpcy5fbG9hZEtleWZyYW1lKCl9Zm9yd2FyZFRpbWUobCl7dGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSx0aGlzLmR1cmF0aW9uPWws'@; put 'dGhpcy5fbG9hZEtleWZyYW1lKCl9X3VwZGF0ZVN0eWxlKGwsYSl7dGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5zZXQobCxhKSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcy5zZXQobCxhKSx0aGlzLl9zdHlsZVN1bW1hcnkuc2V0KGwse3RpbWU6dGhpcy5jdXJyZW50VGltZSx2YWx1ZTph'@; put 'fSl9YWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKXtyZXR1cm4gdGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZyYW1lIT09dGhpcy5fY3VycmVudEtleWZyYW1lfWFwcGx5RW1wdHlTdGVwKGwpe2wmJnRoaXMuX3ByZXZpb3VzS2V5ZnJhbWUuc2V0KCJlYXNpbmciLGwpO2ZvcihsZXRbYSxkXW9m'@; put 'IHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzKXRoaXMuX2JhY2tGaWxsLnNldChhLGR8fEFmKSx0aGlzLl9jdXJyZW50S2V5ZnJhbWUuc2V0KGEsQWYpO3RoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZT10aGlzLl9jdXJyZW50S2V5ZnJhbWV9c2V0U3R5bGVzKGwsYSxkLGgpe2EmJnRo'@; put 'aXMuX3ByZXZpb3VzS2V5ZnJhbWUuc2V0KCJlYXNpbmciLGEpO2NvbnN0IGY9aCYmaC5wYXJhbXN8fHt9LF89ZnVuY3Rpb24gb3hlKGMsbCl7Y29uc3QgYT1uZXcgTWFwO2xldCBkO3JldHVybiBjLmZvckVhY2goaD0+e2lmKCIqIj09PWgpe2Q9ZHx8bC5rZXlzKCk7Zm9yKGxldCBmIG9mIGQp'@; put 'YS5zZXQoZixBZil9ZWxzZSBIcChoLGEpfSksYX0obCx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcyk7Zm9yKGxldFtULFddb2YgXyl7Y29uc3QgaWU9JGIoVyxmLGQpO3RoaXMuX3BlbmRpbmdTdHlsZXMuc2V0KFQsaWUpLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMuaGFzKFQpfHx0aGlz'@; put 'Ll9iYWNrRmlsbC5zZXQoVCx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcy5nZXQoVCk/P0FmKSx0aGlzLl91cGRhdGVTdHlsZShULGllKX19YXBwbHlTdHlsZXNUb0tleWZyYW1lKCl7MCE9dGhpcy5fcGVuZGluZ1N0eWxlcy5zaXplJiYodGhpcy5fcGVuZGluZ1N0eWxlcy5mb3JFYWNoKChs'@; put 'LGEpPT57dGhpcy5fY3VycmVudEtleWZyYW1lLnNldChhLGwpfSksdGhpcy5fcGVuZGluZ1N0eWxlcy5jbGVhcigpLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMuZm9yRWFjaCgobCxhKT0+e3RoaXMuX2N1cnJlbnRLZXlmcmFtZS5oYXMoYSl8fHRoaXMuX2N1cnJlbnRLZXlmcmFtZS5zZXQo'@; put 'YSxsKX0pKX1zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKXtmb3IobGV0W2wsYV1vZiB0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKXRoaXMuX3BlbmRpbmdTdHlsZXMuc2V0KGwsYSksdGhpcy5fdXBkYXRlU3R5bGUobCxhKX1nZXRGaW5hbEtleWZyYW1lKCl7cmV0dXJuIHRoaXMuX2tleWZyYW1l'@; put 'cy5nZXQodGhpcy5kdXJhdGlvbil9Z2V0IHByb3BlcnRpZXMoKXtjb25zdCBsPVtdO2ZvcihsZXQgYSBpbiB0aGlzLl9jdXJyZW50S2V5ZnJhbWUpbC5wdXNoKGEpO3JldHVybiBsfW1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMobCl7bC5fc3R5bGVTdW1tYXJ5LmZvckVhY2goKGEsZCk9'@; put 'Pntjb25zdCBoPXRoaXMuX3N0eWxlU3VtbWFyeS5nZXQoZCk7KCFofHxhLnRpbWU+aC50aW1lKSYmdGhpcy5fdXBkYXRlU3R5bGUoZCxhLnZhbHVlKX0pfWJ1aWxkS2V5ZnJhbWVzKCl7dGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKTtjb25zdCBsPW5ldyBTZXQsYT1uZXcgU2V0LGQ9MT09'@; put 'PXRoaXMuX2tleWZyYW1lcy5zaXplJiYwPT09dGhpcy5kdXJhdGlvbjtsZXQgaD1bXTt0aGlzLl9rZXlmcmFtZXMuZm9yRWFjaCgoVCxXKT0+e2NvbnN0IGllPUhwKFQsbmV3IE1hcCx0aGlzLl9iYWNrRmlsbCk7aWUuZm9yRWFjaCgocGUsd2UpPT57IiEiPT09cGU/bC5hZGQod2UpOnBlPT09'@; put 'QWYmJmEuYWRkKHdlKX0pLGR8fGllLnNldCgib2Zmc2V0IixXL3RoaXMuZHVyYXRpb24pLGgucHVzaChpZSl9KTtjb25zdCBmPWwuc2l6ZT9XRShsLnZhbHVlcygpKTpbXSxfPWEuc2l6ZT9XRShhLnZhbHVlcygpKTpbXTtpZihkKXtjb25zdCBUPWhbMF0sVz1uZXcgTWFwKFQpO1Quc2V0KCJv'@; put 'ZmZzZXQiLDApLFcuc2V0KCJvZmZzZXQiLDEpLGg9W1QsV119cmV0dXJuIFpIKHRoaXMuZWxlbWVudCxoLGYsXyx0aGlzLmR1cmF0aW9uLHRoaXMuc3RhcnRUaW1lLHRoaXMuZWFzaW5nLCExKX19Y2xhc3MgaXhlIGV4dGVuZHMgSkV7Y29uc3RydWN0b3IobCxhLGQsaCxmLF8sVD0hMSl7c3Vw'@; put 'ZXIobCxhLF8uZGVsYXkpLHRoaXMua2V5ZnJhbWVzPWQsdGhpcy5wcmVTdHlsZVByb3BzPWgsdGhpcy5wb3N0U3R5bGVQcm9wcz1mLHRoaXMuX3N0cmV0Y2hTdGFydGluZ0tleWZyYW1lPVQsdGhpcy50aW1pbmdzPXtkdXJhdGlvbjpfLmR1cmF0aW9uLGRlbGF5Ol8uZGVsYXksZWFzaW5nOl8u'@; put 'ZWFzaW5nfX1jb250YWluc0FuaW1hdGlvbigpe3JldHVybiB0aGlzLmtleWZyYW1lcy5sZW5ndGg+MX1idWlsZEtleWZyYW1lcygpe2xldCBsPXRoaXMua2V5ZnJhbWVzLHtkZWxheTphLGR1cmF0aW9uOmQsZWFzaW5nOmh9PXRoaXMudGltaW5ncztpZih0aGlzLl9zdHJldGNoU3RhcnRpbmdL'@; put 'ZXlmcmFtZSYmYSl7Y29uc3QgZj1bXSxfPWQrYSxUPWEvXyxXPUhwKGxbMF0pO1cuc2V0KCJvZmZzZXQiLDApLGYucHVzaChXKTtjb25zdCBpZT1IcChsWzBdKTtpZS5zZXQoIm9mZnNldCIsRGVlKFQpKSxmLnB1c2goaWUpO2NvbnN0IHBlPWwubGVuZ3RoLTE7Zm9yKGxldCB3ZT0xO3dlPD1w'@; put 'ZTt3ZSsrKXtsZXQgRWU9SHAobFt3ZV0pO2NvbnN0IFplPUVlLmdldCgib2Zmc2V0Iik7RWUuc2V0KCJvZmZzZXQiLERlZSgoYStaZSpkKS9fKSksZi5wdXNoKEVlKX1kPV8sYT0wLGg9IiIsbD1mfXJldHVybiBaSCh0aGlzLmVsZW1lbnQsbCx0aGlzLnByZVN0eWxlUHJvcHMsdGhpcy5wb3N0'@; put 'U3R5bGVQcm9wcyxkLGEsaCwhMCl9fWZ1bmN0aW9uIERlZShjLGw9Myl7Y29uc3QgYT1NYXRoLnBvdygxMCxsLTEpO3JldHVybiBNYXRoLnJvdW5kKGMqYSkvYX1jbGFzcyBHSHt9Y29uc3Qgc3hlPW5ldyBTZXQoWyJ3aWR0aCIsImhlaWdodCIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwibWF4'@; put 'V2lkdGgiLCJtYXhIZWlnaHQiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJmb250U2l6ZSIsIm91dGxpbmVXaWR0aCIsIm91dGxpbmVPZmZzZXQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ1JpZ2h0IiwibWFyZ2luVG9wIiwibWFy'@; put 'Z2luTGVmdCIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblJpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsInRleHRJbmRlbnQiLCJwZXJzcGVjdGl2'@; put 'ZSJdKTtjbGFzcyBheGUgZXh0ZW5kcyBHSHtub3JtYWxpemVQcm9wZXJ0eU5hbWUobCxhKXtyZXR1cm4gakgobCl9bm9ybWFsaXplU3R5bGVWYWx1ZShsLGEsZCxoKXtsZXQgZj0iIjtjb25zdCBfPWQudG9TdHJpbmcoKS50cmltKCk7aWYoc3hlLmhhcyhhKSYmMCE9PWQmJiIwIiE9PWQpaWYo'@; put 'Im51bWJlciI9PXR5cGVvZiBkKWY9InB4IjtlbHNle2NvbnN0IFQ9ZC5tYXRjaCgvXlsrLV0/W1xkXC5dKyhbYS16XSopJC8pO1QmJjA9PVRbMV0ubGVuZ3RoJiZoLnB1c2goZnVuY3Rpb24gdE1lKGMsbCl7cmV0dXJuIG5ldyBBcigzMDA1LCExKX0oKSl9cmV0dXJuIF8rZn19ZnVuY3Rpb24g'@; put 'SWVlKGMsbCxhLGQsaCxmLF8sVCxXLGllLHBlLHdlLEVlKXtyZXR1cm57dHlwZTowLGVsZW1lbnQ6Yyx0cmlnZ2VyTmFtZTpsLGlzUmVtb3ZhbFRyYW5zaXRpb246aCxmcm9tU3RhdGU6YSxmcm9tU3R5bGVzOmYsdG9TdGF0ZTpkLHRvU3R5bGVzOl8sdGltZWxpbmVzOlQscXVlcmllZEVsZW1l'@; put 'bnRzOlcscHJlU3R5bGVQcm9wczppZSxwb3N0U3R5bGVQcm9wczpwZSx0b3RhbFRpbWU6d2UsZXJyb3JzOkVlfX1jb25zdCAkSD17fTtjbGFzcyBMZWV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuX3RyaWdnZXJOYW1lPWwsdGhpcy5hc3Q9YSx0aGlzLl9zdGF0ZVN0eWxlcz1kfW1hdGNoKGws'@; put 'YSxkLGgpe3JldHVybiBmdW5jdGlvbiBseGUoYyxsLGEsZCxoKXtyZXR1cm4gYy5zb21lKGY9PmYobCxhLGQsaCkpfSh0aGlzLmFzdC5tYXRjaGVycyxsLGEsZCxoKX1idWlsZFN0eWxlcyhsLGEsZCl7bGV0IGg9dGhpcy5fc3RhdGVTdHlsZXMuZ2V0KCIqIik7cmV0dXJuIHZvaWQgMCE9PWwm'@; put 'JihoPXRoaXMuX3N0YXRlU3R5bGVzLmdldChsPy50b1N0cmluZygpKXx8aCksaD9oLmJ1aWxkU3R5bGVzKGEsZCk6bmV3IE1hcH1idWlsZChsLGEsZCxoLGYsXyxULFcsaWUscGUpe2NvbnN0IHdlPVtdLEVlPXRoaXMuYXN0Lm9wdGlvbnMmJnRoaXMuYXN0Lm9wdGlvbnMucGFyYW1zfHwkSCxp'@; put 'dD10aGlzLmJ1aWxkU3R5bGVzKGQsVCYmVC5wYXJhbXN8fCRILHdlKSxldD1XJiZXLnBhcmFtc3x8JEgseXQ9dGhpcy5idWlsZFN0eWxlcyhoLGV0LHdlKSxFdD1uZXcgU2V0LFN0PW5ldyBNYXAsSnQ9bmV3IE1hcCxubj0idm9pZCI9PT1oLHZuPXtwYXJhbXM6Y3hlKGV0LEVlKSxkZWxheTp0'@; put 'aGlzLmFzdC5vcHRpb25zPy5kZWxheX0sTm49cGU/W106WUgobCxhLHRoaXMuYXN0LmFuaW1hdGlvbixmLF8saXQseXQsdm4saWUsd2UpO2xldCBjcj0wO2lmKE5uLmZvckVhY2goRWk9Pntjcj1NYXRoLm1heChFaS5kdXJhdGlvbitFaS5kZWxheSxjcil9KSx3ZS5sZW5ndGgpcmV0dXJuIEll'@; put 'ZShhLHRoaXMuX3RyaWdnZXJOYW1lLGQsaCxubixpdCx5dCxbXSxbXSxTdCxKdCxjcix3ZSk7Tm4uZm9yRWFjaChFaT0+e2NvbnN0IElpPUVpLmVsZW1lbnQsZnI9bTEoU3QsSWksbmV3IFNldCk7RWkucHJlU3R5bGVQcm9wcy5mb3JFYWNoKGpyPT5mci5hZGQoanIpKTtjb25zdCBpaT1tMShK'@; put 'dCxJaSxuZXcgU2V0KTtFaS5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKGpyPT5paS5hZGQoanIpKSxJaSE9PWEmJkV0LmFkZChJaSl9KTtjb25zdCBJcj1XRShFdC52YWx1ZXMoKSk7cmV0dXJuIEllZShhLHRoaXMuX3RyaWdnZXJOYW1lLGQsaCxubixpdCx5dCxObixJcixTdCxKdCxjcil9fWZ1'@; put 'bmN0aW9uIGN4ZShjLGwpe2NvbnN0IGE9V2IobCk7Zm9yKGNvbnN0IGQgaW4gYyljLmhhc093blByb3BlcnR5KGQpJiZudWxsIT1jW2RdJiYoYVtkXT1jW2RdKTtyZXR1cm4gYX1jbGFzcyB1eGV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuc3R5bGVzPWwsdGhpcy5kZWZhdWx0UGFyYW1zPWEs'@; put 'dGhpcy5ub3JtYWxpemVyPWR9YnVpbGRTdHlsZXMobCxhKXtjb25zdCBkPW5ldyBNYXAsaD1XYih0aGlzLmRlZmF1bHRQYXJhbXMpO3JldHVybiBPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGY9Pntjb25zdCBfPWxbZl07bnVsbCE9PV8mJihoW2ZdPV8pfSksdGhpcy5zdHlsZXMuc3R5bGVzLmZv'@; put 'ckVhY2goZj0+eyJzdHJpbmciIT10eXBlb2YgZiYmZi5mb3JFYWNoKChfLFQpPT57XyYmKF89JGIoXyxoLGEpKTtjb25zdCBXPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVQcm9wZXJ0eU5hbWUoVCxhKTtfPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVTdHlsZVZhbHVlKFQsVyxfLGEpLGQu'@; put 'c2V0KFQsXyl9KX0pLGR9fWNsYXNzIGh4ZXtjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5uYW1lPWwsdGhpcy5hc3Q9YSx0aGlzLl9ub3JtYWxpemVyPWQsdGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzPVtdLHRoaXMuc3RhdGVzPW5ldyBNYXAsYS5zdGF0ZXMuZm9yRWFjaChoPT57dGhpcy5zdGF0'@; put 'ZXMuc2V0KGgubmFtZSxuZXcgdXhlKGguc3R5bGUsaC5vcHRpb25zJiZoLm9wdGlvbnMucGFyYW1zfHx7fSxkKSl9KSxSZWUodGhpcy5zdGF0ZXMsInRydWUiLCIxIiksUmVlKHRoaXMuc3RhdGVzLCJmYWxzZSIsIjAiKSxhLnRyYW5zaXRpb25zLmZvckVhY2goaD0+e3RoaXMudHJhbnNpdGlv'@; put 'bkZhY3Rvcmllcy5wdXNoKG5ldyBMZWUobCxoLHRoaXMuc3RhdGVzKSl9KSx0aGlzLmZhbGxiYWNrVHJhbnNpdGlvbj1mdW5jdGlvbiBmeGUoYyxsLGEpe3JldHVybiBuZXcgTGVlKGMse3R5cGU6MSxhbmltYXRpb246e3R5cGU6MixzdGVwczpbXSxvcHRpb25zOm51bGx9LG1hdGNoZXJzOlso'@; put 'XyxUKT0+ITBdLG9wdGlvbnM6bnVsbCxxdWVyeUNvdW50OjAsZGVwQ291bnQ6MH0sbCl9KGwsdGhpcy5zdGF0ZXMpfWdldCBjb250YWluc1F1ZXJpZXMoKXtyZXR1cm4gdGhpcy5hc3QucXVlcnlDb3VudD4wfW1hdGNoVHJhbnNpdGlvbihsLGEsZCxoKXtyZXR1cm4gdGhpcy50cmFuc2l0aW9u'@; put 'RmFjdG9yaWVzLmZpbmQoXz0+Xy5tYXRjaChsLGEsZCxoKSl8fG51bGx9bWF0Y2hTdHlsZXMobCxhLGQpe3JldHVybiB0aGlzLmZhbGxiYWNrVHJhbnNpdGlvbi5idWlsZFN0eWxlcyhsLGEsZCl9fWZ1bmN0aW9uIFJlZShjLGwsYSl7Yy5oYXMobCk/Yy5oYXMoYSl8fGMuc2V0KGEsYy5nZXQo'@; put 'bCkpOmMuaGFzKGEpJiZjLnNldChsLGMuZ2V0KGEpKX1jb25zdCBweGU9bmV3IEtFO2NsYXNzIGd4ZXtjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5ib2R5Tm9kZT1sLHRoaXMuX2RyaXZlcj1hLHRoaXMuX25vcm1hbGl6ZXI9ZCx0aGlzLl9hbmltYXRpb25zPW5ldyBNYXAsdGhpcy5fcGxheWVy'@; put 'c0J5SWQ9bmV3IE1hcCx0aGlzLnBsYXllcnM9W119cmVnaXN0ZXIobCxhKXtjb25zdCBkPVtdLGY9ekgodGhpcy5fZHJpdmVyLGEsZCxbXSk7aWYoZC5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gYk1lKGMpe3JldHVybiBuZXcgQXIoMzUwMywhMSl9KCk7dGhpcy5fYW5pbWF0aW9ucy5zZXQobCxm'@; put 'KX1fYnVpbGRQbGF5ZXIobCxhLGQpe2NvbnN0IGg9bC5lbGVtZW50LGY9Z2VlKHRoaXMuX25vcm1hbGl6ZXIsbC5rZXlmcmFtZXMsYSxkKTtyZXR1cm4gdGhpcy5fZHJpdmVyLmFuaW1hdGUoaCxmLGwuZHVyYXRpb24sbC5kZWxheSxsLmVhc2luZyxbXSwhMCl9Y3JlYXRlKGwsYSxkPXt9KXtj'@; put 'b25zdCBoPVtdLGY9dGhpcy5fYW5pbWF0aW9ucy5nZXQobCk7bGV0IF87Y29uc3QgVD1uZXcgTWFwO2lmKGY/KF89WUgodGhpcy5fZHJpdmVyLGEsZixISCx6RSxuZXcgTWFwLG5ldyBNYXAsZCxweGUsaCksXy5mb3JFYWNoKHBlPT57Y29uc3Qgd2U9bTEoVCxwZS5lbGVtZW50LG5ldyBNYXAp'@; put 'O3BlLnBvc3RTdHlsZVByb3BzLmZvckVhY2goRWU9PndlLnNldChFZSxudWxsKSl9KSk6KGgucHVzaChmdW5jdGlvbiB5TWUoKXtyZXR1cm4gbmV3IEFyKDMzMDAsITEpfSgpKSxfPVtdKSxoLmxlbmd0aCl0aHJvdyBmdW5jdGlvbiB3TWUoYyl7cmV0dXJuIG5ldyBBcigzNTA0LCExKX0oKTtU'@; put 'LmZvckVhY2goKHBlLHdlKT0+e3BlLmZvckVhY2goKEVlLFplKT0+e3BlLnNldChaZSx0aGlzLl9kcml2ZXIuY29tcHV0ZVN0eWxlKHdlLFplLEFmKSl9KX0pO2NvbnN0IGllPUZwKF8ubWFwKHBlPT57Y29uc3Qgd2U9VC5nZXQocGUuZWxlbWVudCk7cmV0dXJuIHRoaXMuX2J1aWxkUGxheWVy'@; put 'KHBlLG5ldyBNYXAsd2UpfSkpO3JldHVybiB0aGlzLl9wbGF5ZXJzQnlJZC5zZXQobCxpZSksaWUub25EZXN0cm95KCgpPT50aGlzLmRlc3Ryb3kobCkpLHRoaXMucGxheWVycy5wdXNoKGllKSxpZX1kZXN0cm95KGwpe2NvbnN0IGE9dGhpcy5fZ2V0UGxheWVyKGwpO2EuZGVzdHJveSgpLHRo'@; put 'aXMuX3BsYXllcnNCeUlkLmRlbGV0ZShsKTtjb25zdCBkPXRoaXMucGxheWVycy5pbmRleE9mKGEpO2Q+PTAmJnRoaXMucGxheWVycy5zcGxpY2UoZCwxKX1fZ2V0UGxheWVyKGwpe2NvbnN0IGE9dGhpcy5fcGxheWVyc0J5SWQuZ2V0KGwpO2lmKCFhKXRocm93IGZ1bmN0aW9uIENNZShjKXty'@; put 'ZXR1cm4gbmV3IEFyKDMzMDEsITEpfSgpO3JldHVybiBhfWxpc3RlbihsLGEsZCxoKXtjb25zdCBmPU9IKGEsIiIsIiIsIiIpO3JldHVybiBMSCh0aGlzLl9nZXRQbGF5ZXIobCksZCxmLGgpLCgpPT57fX1jb21tYW5kKGwsYSxkLGgpe2lmKCJyZWdpc3RlciI9PWQpcmV0dXJuIHZvaWQgdGhp'@; put 'cy5yZWdpc3RlcihsLGhbMF0pO2lmKCJjcmVhdGUiPT1kKXJldHVybiB2b2lkIHRoaXMuY3JlYXRlKGwsYSxoWzBdfHx7fSk7Y29uc3QgZj10aGlzLl9nZXRQbGF5ZXIobCk7c3dpdGNoKGQpe2Nhc2UicGxheSI6Zi5wbGF5KCk7YnJlYWs7Y2FzZSJwYXVzZSI6Zi5wYXVzZSgpO2JyZWFrO2Nh'@; put 'c2UicmVzZXQiOmYucmVzZXQoKTticmVhaztjYXNlInJlc3RhcnQiOmYucmVzdGFydCgpO2JyZWFrO2Nhc2UiZmluaXNoIjpmLmZpbmlzaCgpO2JyZWFrO2Nhc2UiaW5pdCI6Zi5pbml0KCk7YnJlYWs7Y2FzZSJzZXRQb3NpdGlvbiI6Zi5zZXRQb3NpdGlvbihwYXJzZUZsb2F0KGhbMF0pKTti'@; put 'cmVhaztjYXNlImRlc3Ryb3kiOnRoaXMuZGVzdHJveShsKX19fWNvbnN0IE9lZT0ibmctYW5pbWF0ZS1xdWV1ZWQiLHFIPSJuZy1hbmltYXRlLWRpc2FibGVkIix5eGU9W10sUGVlPXtuYW1lc3BhY2VJZDoiIixzZXRGb3JSZW1vdmFsOiExLHNldEZvck1vdmU6ITEsaGFzQW5pbWF0aW9uOiEx'@; put 'LHJlbW92ZWRCZWZvcmVRdWVyaWVkOiExfSx3eGU9e25hbWVzcGFjZUlkOiIiLHNldEZvck1vdmU6ITEsc2V0Rm9yUmVtb3ZhbDohMSxoYXNBbmltYXRpb246ITEscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITB9LHAyPSJfX25nX3JlbW92ZWQiO2NsYXNzIEtIe2dldCBwYXJhbXMoKXtyZXR1cm4g'@; put 'dGhpcy5vcHRpb25zLnBhcmFtc31jb25zdHJ1Y3RvcihsLGE9IiIpe3RoaXMubmFtZXNwYWNlSWQ9YTtjb25zdCBkPWwmJmwuaGFzT3duUHJvcGVydHkoInZhbHVlIik7aWYodGhpcy52YWx1ZT1mdW5jdGlvbiB4eGUoYyl7cmV0dXJuIGM/P251bGx9KGQ/bC52YWx1ZTpsKSxkKXtjb25zdCBm'@; put 'PVdiKGwpO2RlbGV0ZSBmLnZhbHVlLHRoaXMub3B0aW9ucz1mfWVsc2UgdGhpcy5vcHRpb25zPXt9O3RoaXMub3B0aW9ucy5wYXJhbXN8fCh0aGlzLm9wdGlvbnMucGFyYW1zPXt9KX1hYnNvcmJPcHRpb25zKGwpe2NvbnN0IGE9bC5wYXJhbXM7aWYoYSl7Y29uc3QgZD10aGlzLm9wdGlvbnMu'@; put 'cGFyYW1zO09iamVjdC5rZXlzKGEpLmZvckVhY2goaD0+e251bGw9PWRbaF0mJihkW2hdPWFbaF0pfSl9fX1jb25zdCBxYj0idm9pZCIsWEg9bmV3IEtIKHFiKTtjbGFzcyBDeGV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuaWQ9bCx0aGlzLmhvc3RFbGVtZW50PWEsdGhpcy5fZW5naW5lPWQs'@; put 'dGhpcy5wbGF5ZXJzPVtdLHRoaXMuX3RyaWdnZXJzPW5ldyBNYXAsdGhpcy5fcXVldWU9W10sdGhpcy5fZWxlbWVudExpc3RlbmVycz1uZXcgTWFwLHRoaXMuX2hvc3RDbGFzc05hbWU9Im5nLXRucy0iK2wsaGQoYSx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1saXN0ZW4obCxhLGQsaCl7aWYoIXRo'@; put 'aXMuX3RyaWdnZXJzLmhhcyhhKSl0aHJvdyBmdW5jdGlvbiBTTWUoYyxsKXtyZXR1cm4gbmV3IEFyKDMzMDIsITEpfSgpO2lmKG51bGw9PWR8fDA9PWQubGVuZ3RoKXRocm93IGZ1bmN0aW9uIE1NZShjKXtyZXR1cm4gbmV3IEFyKDMzMDMsITEpfSgpO2lmKCFmdW5jdGlvbiBFeGUoYyl7cmV0'@; put 'dXJuInN0YXJ0Ij09Y3x8ImRvbmUiPT1jfShkKSl0aHJvdyBmdW5jdGlvbiB4TWUoYyxsKXtyZXR1cm4gbmV3IEFyKDM0MDAsITEpfSgpO2NvbnN0IGY9bTEodGhpcy5fZWxlbWVudExpc3RlbmVycyxsLFtdKSxfPXtuYW1lOmEscGhhc2U6ZCxjYWxsYmFjazpofTtmLnB1c2goXyk7Y29uc3Qg'@; put 'VD1tMSh0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LGwsbmV3IE1hcCk7cmV0dXJuIFQuaGFzKGEpfHwoaGQobCxVRSksaGQobCxVRSsiLSIrYSksVC5zZXQoYSxYSCkpLCgpPT57dGhpcy5fZW5naW5lLmFmdGVyRmx1c2goKCk9Pntjb25zdCBXPWYuaW5kZXhPZihfKTtXPj0wJiZmLnNw'@; put 'bGljZShXLDEpLHRoaXMuX3RyaWdnZXJzLmhhcyhhKXx8VC5kZWxldGUoYSl9KX19cmVnaXN0ZXIobCxhKXtyZXR1cm4hdGhpcy5fdHJpZ2dlcnMuaGFzKGwpJiYodGhpcy5fdHJpZ2dlcnMuc2V0KGwsYSksITApfV9nZXRUcmlnZ2VyKGwpe2NvbnN0IGE9dGhpcy5fdHJpZ2dlcnMuZ2V0KGwp'@; put 'O2lmKCFhKXRocm93IGZ1bmN0aW9uIEVNZShjKXtyZXR1cm4gbmV3IEFyKDM0MDEsITEpfSgpO3JldHVybiBhfXRyaWdnZXIobCxhLGQsaD0hMCl7Y29uc3QgZj10aGlzLl9nZXRUcmlnZ2VyKGEpLF89bmV3IEpIKHRoaXMuaWQsYSxsKTtsZXQgVD10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVt'@; put 'ZW50LmdldChsKTtUfHwoaGQobCxVRSksaGQobCxVRSsiLSIrYSksdGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5zZXQobCxUPW5ldyBNYXApKTtsZXQgVz1ULmdldChhKTtjb25zdCBpZT1uZXcgS0goZCx0aGlzLmlkKTtpZighKGQmJmQuaGFzT3duUHJvcGVydHkoInZhbHVlIikpJiZX'@; put 'JiZpZS5hYnNvcmJPcHRpb25zKFcub3B0aW9ucyksVC5zZXQoYSxpZSksV3x8KFc9WEgpLGllLnZhbHVlIT09cWImJlcudmFsdWU9PT1pZS52YWx1ZSl7aWYoIWZ1bmN0aW9uIFR4ZShjLGwpe2NvbnN0IGE9T2JqZWN0LmtleXMoYyksZD1PYmplY3Qua2V5cyhsKTtpZihhLmxlbmd0aCE9ZC5s'@; put 'ZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBoPTA7aDxhLmxlbmd0aDtoKyspe2NvbnN0IGY9YVtoXTtpZighbC5oYXNPd25Qcm9wZXJ0eShmKXx8Y1tmXSE9PWxbZl0pcmV0dXJuITF9cmV0dXJuITB9KFcucGFyYW1zLGllLnBhcmFtcykpe2NvbnN0IGV0PVtdLHl0PWYubWF0Y2hTdHlsZXMoVy52'@; put 'YWx1ZSxXLnBhcmFtcyxldCksRXQ9Zi5tYXRjaFN0eWxlcyhpZS52YWx1ZSxpZS5wYXJhbXMsZXQpO2V0Lmxlbmd0aD90aGlzLl9lbmdpbmUucmVwb3J0RXJyb3IoZXQpOnRoaXMuX2VuZ2luZS5hZnRlckZsdXNoKCgpPT57ZmcobCx5dCksaGgobCxFdCl9KX1yZXR1cm59Y29uc3QgRWU9bTEo'@; put 'dGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQsbCxbXSk7RWUuZm9yRWFjaChldD0+e2V0Lm5hbWVzcGFjZUlkPT10aGlzLmlkJiZldC50cmlnZ2VyTmFtZT09YSYmZXQucXVldWVkJiZldC5kZXN0cm95KCl9KTtsZXQgWmU9Zi5tYXRjaFRyYW5zaXRpb24oVy52YWx1ZSxpZS52YWx1ZSxs'@; put 'LGllLnBhcmFtcyksaXQ9ITE7aWYoIVplKXtpZighaClyZXR1cm47WmU9Zi5mYWxsYmFja1RyYW5zaXRpb24saXQ9ITB9cmV0dXJuIHRoaXMuX2VuZ2luZS50b3RhbFF1ZXVlZFBsYXllcnMrKyx0aGlzLl9xdWV1ZS5wdXNoKHtlbGVtZW50OmwsdHJpZ2dlck5hbWU6YSx0cmFuc2l0aW9uOlpl'@; put 'LGZyb21TdGF0ZTpXLHRvU3RhdGU6aWUscGxheWVyOl8saXNGYWxsYmFja1RyYW5zaXRpb246aXR9KSxpdHx8KGhkKGwsT2VlKSxfLm9uU3RhcnQoKCk9PntROChsLE9lZSl9KSksXy5vbkRvbmUoKCk9PntsZXQgZXQ9dGhpcy5wbGF5ZXJzLmluZGV4T2YoXyk7ZXQ+PTAmJnRoaXMucGxheWVy'@; put 'cy5zcGxpY2UoZXQsMSk7Y29uc3QgeXQ9dGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZ2V0KGwpO2lmKHl0KXtsZXQgRXQ9eXQuaW5kZXhPZihfKTtFdD49MCYmeXQuc3BsaWNlKEV0LDEpfX0pLHRoaXMucGxheWVycy5wdXNoKF8pLEVlLnB1c2goXyksX31kZXJlZ2lzdGVyKGwpe3Ro'@; put 'aXMuX3RyaWdnZXJzLmRlbGV0ZShsKSx0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmZvckVhY2goYT0+YS5kZWxldGUobCkpLHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuZm9yRWFjaCgoYSxkKT0+e3RoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuc2V0KGQsYS5maWx0ZXIoaD0+aC5uYW1lIT1s'@; put 'KSl9KX1jbGVhckVsZW1lbnRDYWNoZShsKXt0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmRlbGV0ZShsKSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmRlbGV0ZShsKTtjb25zdCBhPXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldChsKTthJiYoYS5mb3JFYWNoKGQ9PmQuZGVz'@; put 'dHJveSgpKSx0aGlzLl9lbmdpbmUucGxheWVyc0J5RWxlbWVudC5kZWxldGUobCkpfV9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2VycyhsLGEpe2NvbnN0IGQ9dGhpcy5fZW5naW5lLmRyaXZlci5xdWVyeShsLFpFLCEwKTtkLmZvckVhY2goaD0+e2lmKGhbcDJdKXJldHVybjtjb25zdCBm'@; put 'PXRoaXMuX2VuZ2luZS5mZXRjaE5hbWVzcGFjZXNCeUVsZW1lbnQoaCk7Zi5zaXplP2YuZm9yRWFjaChfPT5fLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbihoLGEsITEsITApKTp0aGlzLmNsZWFyRWxlbWVudENhY2hlKGgpfSksdGhpcy5fZW5naW5lLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSgo'@; put 'KT0+ZC5mb3JFYWNoKGg9PnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUoaCkpKX10cmlnZ2VyTGVhdmVBbmltYXRpb24obCxhLGQsaCl7Y29uc3QgZj10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldChsKSxfPW5ldyBNYXA7aWYoZil7Y29uc3QgVD1bXTtpZihmLmZvckVhY2goKFcsaWUp'@; put 'PT57aWYoXy5zZXQoaWUsVy52YWx1ZSksdGhpcy5fdHJpZ2dlcnMuaGFzKGllKSl7Y29uc3QgcGU9dGhpcy50cmlnZ2VyKGwsaWUscWIsaCk7cGUmJlQucHVzaChwZSl9fSksVC5sZW5ndGgpcmV0dXJuIHRoaXMuX2VuZ2luZS5tYXJrRWxlbWVudEFzUmVtb3ZlZCh0aGlzLmlkLGwsITAsYSxf'@; put 'KSxkJiZGcChUKS5vbkRvbmUoKCk9PnRoaXMuX2VuZ2luZS5wcm9jZXNzTGVhdmVOb2RlKGwpKSwhMH1yZXR1cm4hMX1wcmVwYXJlTGVhdmVBbmltYXRpb25MaXN0ZW5lcnMobCl7Y29uc3QgYT10aGlzLl9lbGVtZW50TGlzdGVuZXJzLmdldChsKSxkPXRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVs'@; put 'ZW1lbnQuZ2V0KGwpO2lmKGEmJmQpe2NvbnN0IGg9bmV3IFNldDthLmZvckVhY2goZj0+e2NvbnN0IF89Zi5uYW1lO2lmKGguaGFzKF8pKXJldHVybjtoLmFkZChfKTtjb25zdCBXPXRoaXMuX3RyaWdnZXJzLmdldChfKS5mYWxsYmFja1RyYW5zaXRpb24saWU9ZC5nZXQoXyl8fFhILHBlPW5l'@; put 'dyBLSChxYiksd2U9bmV3IEpIKHRoaXMuaWQsXyxsKTt0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDpsLHRyaWdnZXJOYW1lOl8sdHJhbnNpdGlvbjpXLGZyb21TdGF0ZTppZSx0b1N0YXRlOnBlLHBsYXllcjp3ZSxpc0ZhbGxiYWNr'@; put 'VHJhbnNpdGlvbjohMH0pfSl9fXJlbW92ZU5vZGUobCxhKXtjb25zdCBkPXRoaXMuX2VuZ2luZTtpZihsLmNoaWxkRWxlbWVudENvdW50JiZ0aGlzLl9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2VycyhsLGEpLHRoaXMudHJpZ2dlckxlYXZlQW5pbWF0aW9uKGwsYSwhMCkpcmV0dXJuO2xl'@; put 'dCBoPSExO2lmKGQudG90YWxBbmltYXRpb25zKXtjb25zdCBmPWQucGxheWVycy5sZW5ndGg/ZC5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5nZXQobCk6W107aWYoZiYmZi5sZW5ndGgpaD0hMDtlbHNle2xldCBfPWw7Zm9yKDtfPV8ucGFyZW50Tm9kZTspaWYoZC5zdGF0ZXNCeUVsZW1lbnQu'@; put 'Z2V0KF8pKXtoPSEwO2JyZWFrfX19aWYodGhpcy5wcmVwYXJlTGVhdmVBbmltYXRpb25MaXN0ZW5lcnMobCksaClkLm1hcmtFbGVtZW50QXNSZW1vdmVkKHRoaXMuaWQsbCwhMSxhKTtlbHNle2NvbnN0IGY9bFtwMl07KCFmfHxmPT09UGVlKSYmKGQuYWZ0ZXJGbHVzaCgoKT0+dGhpcy5jbGVh'@; put 'ckVsZW1lbnRDYWNoZShsKSksZC5kZXN0cm95SW5uZXJBbmltYXRpb25zKGwpLGQuX29uUmVtb3ZhbENvbXBsZXRlKGwsYSkpfX1pbnNlcnROb2RlKGwsYSl7aGQobCx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1kcmFpblF1ZXVlZFRyYW5zaXRpb25zKGwpe2NvbnN0IGE9W107cmV0dXJuIHRoaXMu'@; put 'X3F1ZXVlLmZvckVhY2goZD0+e2NvbnN0IGg9ZC5wbGF5ZXI7aWYoaC5kZXN0cm95ZWQpcmV0dXJuO2NvbnN0IGY9ZC5lbGVtZW50LF89dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQoZik7XyYmXy5mb3JFYWNoKFQ9PntpZihULm5hbWU9PWQudHJpZ2dlck5hbWUpe2NvbnN0IFc9T0goZixk'@; put 'LnRyaWdnZXJOYW1lLGQuZnJvbVN0YXRlLnZhbHVlLGQudG9TdGF0ZS52YWx1ZSk7Vy5fZGF0YT1sLExIKGQucGxheWVyLFQucGhhc2UsVyxULmNhbGxiYWNrKX19KSxoLm1hcmtlZEZvckRlc3Ryb3k/dGhpcy5fZW5naW5lLmFmdGVyRmx1c2goKCk9PntoLmRlc3Ryb3koKX0pOmEucHVzaChk'@; put 'KX0pLHRoaXMuX3F1ZXVlPVtdLGEuc29ydCgoZCxoKT0+e2NvbnN0IGY9ZC50cmFuc2l0aW9uLmFzdC5kZXBDb3VudCxfPWgudHJhbnNpdGlvbi5hc3QuZGVwQ291bnQ7cmV0dXJuIDA9PWZ8fDA9PV8/Zi1fOnRoaXMuX2VuZ2luZS5kcml2ZXIuY29udGFpbnNFbGVtZW50KGQuZWxlbWVudCxo'@; put 'LmVsZW1lbnQpPzE6LTF9KX1kZXN0cm95KGwpe3RoaXMucGxheWVycy5mb3JFYWNoKGE9PmEuZGVzdHJveSgpKSx0aGlzLl9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2Vycyh0aGlzLmhvc3RFbGVtZW50LGwpfX1jbGFzcyBTeGV7X29uUmVtb3ZhbENvbXBsZXRlKGwsYSl7dGhpcy5vblJl'@; put 'bW92YWxDb21wbGV0ZShsLGEpfWNvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLmJvZHlOb2RlPWwsdGhpcy5kcml2ZXI9YSx0aGlzLl9ub3JtYWxpemVyPWQsdGhpcy5wbGF5ZXJzPVtdLHRoaXMubmV3SG9zdEVsZW1lbnRzPW5ldyBNYXAsdGhpcy5wbGF5ZXJzQnlFbGVtZW50PW5ldyBNYXAsdGhp'@; put 'cy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudD1uZXcgTWFwLHRoaXMuc3RhdGVzQnlFbGVtZW50PW5ldyBNYXAsdGhpcy5kaXNhYmxlZE5vZGVzPW5ldyBTZXQsdGhpcy50b3RhbEFuaW1hdGlvbnM9MCx0aGlzLnRvdGFsUXVldWVkUGxheWVycz0wLHRoaXMuX25hbWVzcGFjZUxvb2t1cD17fSx0'@; put 'aGlzLl9uYW1lc3BhY2VMaXN0PVtdLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucz1bXSx0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50PW5ldyBNYXAsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzPVtdLHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cz1bXSx0aGlz'@; put 'Lm9uUmVtb3ZhbENvbXBsZXRlPShoLGYpPT57fX1nZXQgcXVldWVkUGxheWVycygpe2NvbnN0IGw9W107cmV0dXJuIHRoaXMuX25hbWVzcGFjZUxpc3QuZm9yRWFjaChhPT57YS5wbGF5ZXJzLmZvckVhY2goZD0+e2QucXVldWVkJiZsLnB1c2goZCl9KX0pLGx9Y3JlYXRlTmFtZXNwYWNlKGws'@; put 'YSl7Y29uc3QgZD1uZXcgQ3hlKGwsYSx0aGlzKTtyZXR1cm4gdGhpcy5ib2R5Tm9kZSYmdGhpcy5kcml2ZXIuY29udGFpbnNFbGVtZW50KHRoaXMuYm9keU5vZGUsYSk/dGhpcy5fYmFsYW5jZU5hbWVzcGFjZUxpc3QoZCxhKToodGhpcy5uZXdIb3N0RWxlbWVudHMuc2V0KGEsZCksdGhpcy5j'@; put 'b2xsZWN0RW50ZXJFbGVtZW50KGEpKSx0aGlzLl9uYW1lc3BhY2VMb29rdXBbbF09ZH1fYmFsYW5jZU5hbWVzcGFjZUxpc3QobCxhKXtjb25zdCBkPXRoaXMuX25hbWVzcGFjZUxpc3QsaD10aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50O2lmKGQubGVuZ3RoLTE+PTApe2xldCBfPSExLFQ9'@; put 'dGhpcy5kcml2ZXIuZ2V0UGFyZW50RWxlbWVudChhKTtmb3IoO1Q7KXtjb25zdCBXPWguZ2V0KFQpO2lmKFcpe2NvbnN0IGllPWQuaW5kZXhPZihXKTtkLnNwbGljZShpZSsxLDAsbCksXz0hMDticmVha31UPXRoaXMuZHJpdmVyLmdldFBhcmVudEVsZW1lbnQoVCl9X3x8ZC51bnNoaWZ0KGwp'@; put 'fWVsc2UgZC5wdXNoKGwpO3JldHVybiBoLnNldChhLGwpLGx9cmVnaXN0ZXIobCxhKXtsZXQgZD10aGlzLl9uYW1lc3BhY2VMb29rdXBbbF07cmV0dXJuIGR8fChkPXRoaXMuY3JlYXRlTmFtZXNwYWNlKGwsYSkpLGR9cmVnaXN0ZXJUcmlnZ2VyKGwsYSxkKXtsZXQgaD10aGlzLl9uYW1lc3Bh'@; put 'Y2VMb29rdXBbbF07aCYmaC5yZWdpc3RlcihhLGQpJiZ0aGlzLnRvdGFsQW5pbWF0aW9ucysrfWRlc3Ryb3kobCxhKXtsJiYodGhpcy5hZnRlckZsdXNoKCgpPT57fSksdGhpcy5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCk9Pntjb25zdCBkPXRoaXMuX2ZldGNoTmFtZXNwYWNlKGwpO3Ro'@; put 'aXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQuZGVsZXRlKGQuaG9zdEVsZW1lbnQpO2NvbnN0IGg9dGhpcy5fbmFtZXNwYWNlTGlzdC5pbmRleE9mKGQpO2g+PTAmJnRoaXMuX25hbWVzcGFjZUxpc3Quc3BsaWNlKGgsMSksZC5kZXN0cm95KGEpLGRlbGV0ZSB0aGlzLl9uYW1lc3BhY2VMb29r'@; put 'dXBbbF19KSl9X2ZldGNoTmFtZXNwYWNlKGwpe3JldHVybiB0aGlzLl9uYW1lc3BhY2VMb29rdXBbbF19ZmV0Y2hOYW1lc3BhY2VzQnlFbGVtZW50KGwpe2NvbnN0IGE9bmV3IFNldCxkPXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldChsKTtpZihkKWZvcihsZXQgaCBvZiBkLnZhbHVlcygpKWlm'@; put 'KGgubmFtZXNwYWNlSWQpe2NvbnN0IGY9dGhpcy5fZmV0Y2hOYW1lc3BhY2UoaC5uYW1lc3BhY2VJZCk7ZiYmYS5hZGQoZil9cmV0dXJuIGF9dHJpZ2dlcihsLGEsZCxoKXtpZihRRShhKSl7Y29uc3QgZj10aGlzLl9mZXRjaE5hbWVzcGFjZShsKTtpZihmKXJldHVybiBmLnRyaWdnZXIoYSxk'@; put 'LGgpLCEwfXJldHVybiExfWluc2VydE5vZGUobCxhLGQsaCl7aWYoIVFFKGEpKXJldHVybjtjb25zdCBmPWFbcDJdO2lmKGYmJmYuc2V0Rm9yUmVtb3ZhbCl7Zi5zZXRGb3JSZW1vdmFsPSExLGYuc2V0Rm9yTW92ZT0hMDtjb25zdCBfPXRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5pbmRl'@; put 'eE9mKGEpO18+PTAmJnRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5zcGxpY2UoXywxKX1pZihsKXtjb25zdCBfPXRoaXMuX2ZldGNoTmFtZXNwYWNlKGwpO18mJl8uaW5zZXJ0Tm9kZShhLGQpfWgmJnRoaXMuY29sbGVjdEVudGVyRWxlbWVudChhKX1jb2xsZWN0RW50ZXJFbGVtZW50KGwp'@; put 'e3RoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5wdXNoKGwpfW1hcmtFbGVtZW50QXNEaXNhYmxlZChsLGEpe2E/dGhpcy5kaXNhYmxlZE5vZGVzLmhhcyhsKXx8KHRoaXMuZGlzYWJsZWROb2Rlcy5hZGQobCksaGQobCxxSCkpOnRoaXMuZGlzYWJsZWROb2Rlcy5oYXMobCkmJih0aGlzLmRp'@; put 'c2FibGVkTm9kZXMuZGVsZXRlKGwpLFE4KGwscUgpKX1yZW1vdmVOb2RlKGwsYSxkKXtpZihRRShhKSl7Y29uc3QgaD1sP3RoaXMuX2ZldGNoTmFtZXNwYWNlKGwpOm51bGw7aD9oLnJlbW92ZU5vZGUoYSxkKTp0aGlzLm1hcmtFbGVtZW50QXNSZW1vdmVkKGwsYSwhMSxkKTtjb25zdCBmPXRo'@; put 'aXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQuZ2V0KGEpO2YmJmYuaWQhPT1sJiZmLnJlbW92ZU5vZGUoYSxkKX1lbHNlIHRoaXMuX29uUmVtb3ZhbENvbXBsZXRlKGEsZCl9bWFya0VsZW1lbnRBc1JlbW92ZWQobCxhLGQsaCxmKXt0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMucHVzaChh'@; put 'KSxhW3AyXT17bmFtZXNwYWNlSWQ6bCxzZXRGb3JSZW1vdmFsOmgsaGFzQW5pbWF0aW9uOmQscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITEscHJldmlvdXNUcmlnZ2Vyc1ZhbHVlczpmfX1saXN0ZW4obCxhLGQsaCxmKXtyZXR1cm4gUUUoYSk/dGhpcy5fZmV0Y2hOYW1lc3BhY2UobCkubGlzdGVu'@; put 'KGEsZCxoLGYpOigpPT57fX1fYnVpbGRJbnN0cnVjdGlvbihsLGEsZCxoLGYpe3JldHVybiBsLnRyYW5zaXRpb24uYnVpbGQodGhpcy5kcml2ZXIsbC5lbGVtZW50LGwuZnJvbVN0YXRlLnZhbHVlLGwudG9TdGF0ZS52YWx1ZSxkLGgsbC5mcm9tU3RhdGUub3B0aW9ucyxsLnRvU3RhdGUub3B0'@; put 'aW9ucyxhLGYpfWRlc3Ryb3lJbm5lckFuaW1hdGlvbnMobCl7bGV0IGE9dGhpcy5kcml2ZXIucXVlcnkobCxaRSwhMCk7YS5mb3JFYWNoKGQ9PnRoaXMuZGVzdHJveUFjdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KGQpKSwwIT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LnNpemUmJihh'@; put 'PXRoaXMuZHJpdmVyLnF1ZXJ5KGwsTkgsITApLGEuZm9yRWFjaChkPT50aGlzLmZpbmlzaEFjdGl2ZVF1ZXJpZWRBbmltYXRpb25PbkVsZW1lbnQoZCkpKX1kZXN0cm95QWN0aXZlQW5pbWF0aW9uc0ZvckVsZW1lbnQobCl7Y29uc3QgYT10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KGwpO2Em'@; put 'JmEuZm9yRWFjaChkPT57ZC5xdWV1ZWQ/ZC5tYXJrZWRGb3JEZXN0cm95PSEwOmQuZGVzdHJveSgpfSl9ZmluaXNoQWN0aXZlUXVlcmllZEFuaW1hdGlvbk9uRWxlbWVudChsKXtjb25zdCBhPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KGwpO2EmJmEuZm9yRWFjaChkPT5kLmZp'@; put 'bmlzaCgpKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiBuZXcgUHJvbWlzZShsPT57aWYodGhpcy5wbGF5ZXJzLmxlbmd0aClyZXR1cm4gRnAodGhpcy5wbGF5ZXJzKS5vbkRvbmUoKCk9PmwoKSk7bCgpfSl9cHJvY2Vzc0xlYXZlTm9kZShsKXtjb25zdCBhPWxbcDJdO2lmKGEmJmEuc2V0'@; put 'Rm9yUmVtb3ZhbCl7aWYobFtwMl09UGVlLGEubmFtZXNwYWNlSWQpe3RoaXMuZGVzdHJveUlubmVyQW5pbWF0aW9ucyhsKTtjb25zdCBkPXRoaXMuX2ZldGNoTmFtZXNwYWNlKGEubmFtZXNwYWNlSWQpO2QmJmQuY2xlYXJFbGVtZW50Q2FjaGUobCl9dGhpcy5fb25SZW1vdmFsQ29tcGxldGUo'@; put 'bCxhLnNldEZvclJlbW92YWwpfWwuY2xhc3NMaXN0Py5jb250YWlucyhxSCkmJnRoaXMubWFya0VsZW1lbnRBc0Rpc2FibGVkKGwsITEpLHRoaXMuZHJpdmVyLnF1ZXJ5KGwsIi5uZy1hbmltYXRlLWRpc2FibGVkIiwhMCkuZm9yRWFjaChkPT57dGhpcy5tYXJrRWxlbWVudEFzRGlzYWJsZWQo'@; put 'ZCwhMSl9KX1mbHVzaChsPS0xKXtsZXQgYT1bXTtpZih0aGlzLm5ld0hvc3RFbGVtZW50cy5zaXplJiYodGhpcy5uZXdIb3N0RWxlbWVudHMuZm9yRWFjaCgoZCxoKT0+dGhpcy5fYmFsYW5jZU5hbWVzcGFjZUxpc3QoZCxoKSksdGhpcy5uZXdIb3N0RWxlbWVudHMuY2xlYXIoKSksdGhpcy50'@; put 'b3RhbEFuaW1hdGlvbnMmJnRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGgpZm9yKGxldCBkPTA7ZDx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMubGVuZ3RoO2QrKyloZCh0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHNbZF0sIm5nLXN0YXItaW5zZXJ0ZWQiKTtpZih0aGlz'@; put 'Ll9uYW1lc3BhY2VMaXN0Lmxlbmd0aCYmKHRoaXMudG90YWxRdWV1ZWRQbGF5ZXJzfHx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoKSl7Y29uc3QgZD1bXTt0cnl7YT10aGlzLl9mbHVzaEFuaW1hdGlvbnMoZCxsKX1maW5hbGx5e2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsr'@; put 'KWRbaF0oKX19ZWxzZSBmb3IobGV0IGQ9MDtkPHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGg7ZCsrKXRoaXMucHJvY2Vzc0xlYXZlTm9kZSh0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbZF0pO2lmKHRoaXMudG90YWxRdWV1ZWRQbGF5ZXJzPTAsdGhpcy5jb2xsZWN0ZWRF'@; put 'bnRlckVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGg9MCx0aGlzLl9mbHVzaEZucy5mb3JFYWNoKGQ9PmQoKSksdGhpcy5fZmx1c2hGbnM9W10sdGhpcy5fd2hlblF1aWV0Rm5zLmxlbmd0aCl7Y29uc3QgZD10aGlzLl93aGVuUXVpZXRGbnM7dGhp'@; put 'cy5fd2hlblF1aWV0Rm5zPVtdLGEubGVuZ3RoP0ZwKGEpLm9uRG9uZSgoKT0+e2QuZm9yRWFjaChoPT5oKCkpfSk6ZC5mb3JFYWNoKGg9PmgoKSl9fXJlcG9ydEVycm9yKGwpe3Rocm93IGZ1bmN0aW9uIGtNZShjKXtyZXR1cm4gbmV3IEFyKDM0MDIsITEpfSgpfV9mbHVzaEFuaW1hdGlvbnMo'@; put 'bCxhKXtjb25zdCBkPW5ldyBLRSxoPVtdLGY9bmV3IE1hcCxfPVtdLFQ9bmV3IE1hcCxXPW5ldyBNYXAsaWU9bmV3IE1hcCxwZT1uZXcgU2V0O3RoaXMuZGlzYWJsZWROb2Rlcy5mb3JFYWNoKFFuPT57cGUuYWRkKFFuKTtjb25zdCBNcj10aGlzLmRyaXZlci5xdWVyeShRbiwiLm5nLWFuaW1h'@; put 'dGUtcXVldWVkIiwhMCk7Zm9yKGxldCBfcj0wO19yPE1yLmxlbmd0aDtfcisrKXBlLmFkZChNcltfcl0pfSk7Y29uc3Qgd2U9dGhpcy5ib2R5Tm9kZSxFZT1BcnJheS5mcm9tKHRoaXMuc3RhdGVzQnlFbGVtZW50LmtleXMoKSksWmU9TmVlKEVlLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50'@; put 'cyksaXQ9bmV3IE1hcDtsZXQgZXQ9MDtaZS5mb3JFYWNoKChRbixNcik9Pntjb25zdCBfcj1ISCtldCsrO2l0LnNldChNcixfciksUW4uZm9yRWFjaCh2dD0+aGQodnQsX3IpKX0pO2NvbnN0IHl0PVtdLEV0PW5ldyBTZXQsU3Q9bmV3IFNldDtmb3IobGV0IFFuPTA7UW48dGhpcy5jb2xsZWN0'@; put 'ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aDtRbisrKXtjb25zdCBNcj10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbUW5dLF9yPU1yW3AyXTtfciYmX3Iuc2V0Rm9yUmVtb3ZhbCYmKHl0LnB1c2goTXIpLEV0LmFkZChNciksX3IuaGFzQW5pbWF0aW9uP3RoaXMuZHJpdmVyLnF1ZXJ5KE1yLCIu'@; put 'bmctc3Rhci1pbnNlcnRlZCIsITApLmZvckVhY2godnQ9PkV0LmFkZCh2dCkpOlN0LmFkZChNcikpfWNvbnN0IEp0PW5ldyBNYXAsbm49TmVlKEVlLEFycmF5LmZyb20oRXQpKTtubi5mb3JFYWNoKChRbixNcik9Pntjb25zdCBfcj16RStldCsrO0p0LnNldChNcixfciksUW4uZm9yRWFjaCh2'@; put 'dD0+aGQodnQsX3IpKX0pLGwucHVzaCgoKT0+e1plLmZvckVhY2goKFFuLE1yKT0+e2NvbnN0IF9yPWl0LmdldChNcik7UW4uZm9yRWFjaCh2dD0+UTgodnQsX3IpKX0pLG5uLmZvckVhY2goKFFuLE1yKT0+e2NvbnN0IF9yPUp0LmdldChNcik7UW4uZm9yRWFjaCh2dD0+UTgodnQsX3IpKX0p'@; put 'LHl0LmZvckVhY2goUW49Pnt0aGlzLnByb2Nlc3NMZWF2ZU5vZGUoUW4pfSl9KTtjb25zdCB2bj1bXSxObj1bXTtmb3IobGV0IFFuPXRoaXMuX25hbWVzcGFjZUxpc3QubGVuZ3RoLTE7UW4+PTA7UW4tLSl0aGlzLl9uYW1lc3BhY2VMaXN0W1FuXS5kcmFpblF1ZXVlZFRyYW5zaXRpb25zKGEp'@; put 'LmZvckVhY2goX3I9Pntjb25zdCB2dD1fci5wbGF5ZXIsT3Q9X3IuZWxlbWVudDtpZih2bi5wdXNoKHZ0KSx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMubGVuZ3RoKXtjb25zdCAkcj1PdFtwMl07aWYoJHImJiRyLnNldEZvck1vdmUpe2lmKCRyLnByZXZpb3VzVHJpZ2dlcnNWYWx1ZXMm'@; put 'JiRyLnByZXZpb3VzVHJpZ2dlcnNWYWx1ZXMuaGFzKF9yLnRyaWdnZXJOYW1lKSl7Y29uc3QgWXI9JHIucHJldmlvdXNUcmlnZ2Vyc1ZhbHVlcy5nZXQoX3IudHJpZ2dlck5hbWUpLE5yPXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldChfci5lbGVtZW50KTtpZihOciYmTnIuaGFzKF9yLnRyaWdn'@; put 'ZXJOYW1lKSl7Y29uc3QgUmk9TnIuZ2V0KF9yLnRyaWdnZXJOYW1lKTtSaS52YWx1ZT1ZcixOci5zZXQoX3IudHJpZ2dlck5hbWUsUmkpfX1yZXR1cm4gdm9pZCB2dC5kZXN0cm95KCl9fWNvbnN0IGNuPSF3ZXx8IXRoaXMuZHJpdmVyLmNvbnRhaW5zRWxlbWVudCh3ZSxPdCksRW49SnQuZ2V0'@; put 'KE90KSxQbj1pdC5nZXQoT3QpLEpuPXRoaXMuX2J1aWxkSW5zdHJ1Y3Rpb24oX3IsZCxQbixFbixjbik7aWYoSm4uZXJyb3JzJiZKbi5lcnJvcnMubGVuZ3RoKXJldHVybiB2b2lkIE5uLnB1c2goSm4pO2lmKGNuKXJldHVybiB2dC5vblN0YXJ0KCgpPT5mZyhPdCxKbi5mcm9tU3R5bGVzKSks'@; put 'dnQub25EZXN0cm95KCgpPT5oaChPdCxKbi50b1N0eWxlcykpLHZvaWQgaC5wdXNoKHZ0KTtpZihfci5pc0ZhbGxiYWNrVHJhbnNpdGlvbilyZXR1cm4gdnQub25TdGFydCgoKT0+ZmcoT3QsSm4uZnJvbVN0eWxlcykpLHZ0Lm9uRGVzdHJveSgoKT0+aGgoT3QsSm4udG9TdHlsZXMpKSx2b2lk'@; put 'IGgucHVzaCh2dCk7Y29uc3QgUHI9W107Sm4udGltZWxpbmVzLmZvckVhY2goJHI9Pnskci5zdHJldGNoU3RhcnRpbmdLZXlmcmFtZT0hMCx0aGlzLmRpc2FibGVkTm9kZXMuaGFzKCRyLmVsZW1lbnQpfHxQci5wdXNoKCRyKX0pLEpuLnRpbWVsaW5lcz1QcixkLmFwcGVuZChPdCxKbi50aW1l'@; put 'bGluZXMpLF8ucHVzaCh7aW5zdHJ1Y3Rpb246Sm4scGxheWVyOnZ0LGVsZW1lbnQ6T3R9KSxKbi5xdWVyaWVkRWxlbWVudHMuZm9yRWFjaCgkcj0+bTEoVCwkcixbXSkucHVzaCh2dCkpLEpuLnByZVN0eWxlUHJvcHMuZm9yRWFjaCgoJHIsWXIpPT57aWYoJHIuc2l6ZSl7bGV0IE5yPVcuZ2V0'@; put 'KFlyKTtOcnx8Vy5zZXQoWXIsTnI9bmV3IFNldCksJHIuZm9yRWFjaCgoUmksWG8pPT5Oci5hZGQoWG8pKX19KSxKbi5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKCgkcixZcik9PntsZXQgTnI9aWUuZ2V0KFlyKTtOcnx8aWUuc2V0KFlyLE5yPW5ldyBTZXQpLCRyLmZvckVhY2goKFJpLFhvKT0+'@; put 'TnIuYWRkKFhvKSl9KX0pO2lmKE5uLmxlbmd0aCl7Y29uc3QgUW49W107Tm4uZm9yRWFjaChNcj0+e1FuLnB1c2goZnVuY3Rpb24gQU1lKGMsbCl7cmV0dXJuIG5ldyBBcigzNTA1LCExKX0oKSl9KSx2bi5mb3JFYWNoKE1yPT5Nci5kZXN0cm95KCkpLHRoaXMucmVwb3J0RXJyb3IoUW4pfWNv'@; put 'bnN0IGNyPW5ldyBNYXAsSXI9bmV3IE1hcDtfLmZvckVhY2goUW49Pntjb25zdCBNcj1Rbi5lbGVtZW50O2QuaGFzKE1yKSYmKElyLnNldChNcixNciksdGhpcy5fYmVmb3JlQW5pbWF0aW9uQnVpbGQoUW4ucGxheWVyLm5hbWVzcGFjZUlkLFFuLmluc3RydWN0aW9uLGNyKSl9KSxoLmZvckVh'@; put 'Y2goUW49Pntjb25zdCBNcj1Rbi5lbGVtZW50O3RoaXMuX2dldFByZXZpb3VzUGxheWVycyhNciwhMSxRbi5uYW1lc3BhY2VJZCxRbi50cmlnZ2VyTmFtZSxudWxsKS5mb3JFYWNoKHZ0PT57bTEoY3IsTXIsW10pLnB1c2godnQpLHZ0LmRlc3Ryb3koKX0pfSk7Y29uc3QgRWk9eXQuZmlsdGVy'@; put 'KFFuPT5CZWUoUW4sVyxpZSkpLElpPW5ldyBNYXA7SGVlKElpLHRoaXMuZHJpdmVyLFN0LGllLEFmKS5mb3JFYWNoKFFuPT57QmVlKFFuLFcsaWUpJiZFaS5wdXNoKFFuKX0pO2NvbnN0IGlpPW5ldyBNYXA7WmUuZm9yRWFjaCgoUW4sTXIpPT57SGVlKGlpLHRoaXMuZHJpdmVyLG5ldyBTZXQo'@; put 'UW4pLFcsIiEiKX0pLEVpLmZvckVhY2goUW49Pntjb25zdCBNcj1JaS5nZXQoUW4pLF9yPWlpLmdldChRbik7SWkuc2V0KFFuLG5ldyBNYXAoWy4uLk1yPy5lbnRyaWVzKCk/P1tdLC4uLl9yPy5lbnRyaWVzKCk/P1tdXSkpfSk7Y29uc3QganI9W10sT249W10sRnI9e307Xy5mb3JFYWNoKFFu'@; put 'PT57Y29uc3R7ZWxlbWVudDpNcixwbGF5ZXI6X3IsaW5zdHJ1Y3Rpb246dnR9PVFuO2lmKGQuaGFzKE1yKSl7aWYocGUuaGFzKE1yKSlyZXR1cm4gX3Iub25EZXN0cm95KCgpPT5oaChNcix2dC50b1N0eWxlcykpLF9yLmRpc2FibGVkPSEwLF9yLm92ZXJyaWRlVG90YWxUaW1lKHZ0LnRvdGFs'@; put 'VGltZSksdm9pZCBoLnB1c2goX3IpO2xldCBPdD1GcjtpZihJci5zaXplPjEpe2xldCBFbj1Ncjtjb25zdCBQbj1bXTtmb3IoO0VuPUVuLnBhcmVudE5vZGU7KXtjb25zdCBKbj1Jci5nZXQoRW4pO2lmKEpuKXtPdD1KbjticmVha31Qbi5wdXNoKEVuKX1Qbi5mb3JFYWNoKEpuPT5Jci5zZXQo'@; put 'Sm4sT3QpKX1jb25zdCBjbj10aGlzLl9idWlsZEFuaW1hdGlvbihfci5uYW1lc3BhY2VJZCx2dCxjcixmLGlpLElpKTtpZihfci5zZXRSZWFsUGxheWVyKGNuKSxPdD09PUZyKWpyLnB1c2goX3IpO2Vsc2V7Y29uc3QgRW49dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldChPdCk7RW4mJkVuLmxl'@; put 'bmd0aCYmKF9yLnBhcmVudFBsYXllcj1GcChFbikpLGgucHVzaChfcil9fWVsc2UgZmcoTXIsdnQuZnJvbVN0eWxlcyksX3Iub25EZXN0cm95KCgpPT5oaChNcix2dC50b1N0eWxlcykpLE9uLnB1c2goX3IpLHBlLmhhcyhNcikmJmgucHVzaChfcil9KSxPbi5mb3JFYWNoKFFuPT57Y29uc3Qg'@; put 'TXI9Zi5nZXQoUW4uZWxlbWVudCk7aWYoTXImJk1yLmxlbmd0aCl7Y29uc3QgX3I9RnAoTXIpO1FuLnNldFJlYWxQbGF5ZXIoX3IpfX0pLGguZm9yRWFjaChRbj0+e1FuLnBhcmVudFBsYXllcj9Rbi5zeW5jUGxheWVyRXZlbnRzKFFuLnBhcmVudFBsYXllcik6UW4uZGVzdHJveSgpfSk7Zm9y'@; put 'KGxldCBRbj0wO1FuPHl0Lmxlbmd0aDtRbisrKXtjb25zdCBNcj15dFtRbl0sX3I9TXJbcDJdO2lmKFE4KE1yLHpFKSxfciYmX3IuaGFzQW5pbWF0aW9uKWNvbnRpbnVlO2xldCB2dD1bXTtpZihULnNpemUpe2xldCBjbj1ULmdldChNcik7Y24mJmNuLmxlbmd0aCYmdnQucHVzaCguLi5jbik7'@; put 'bGV0IEVuPXRoaXMuZHJpdmVyLnF1ZXJ5KE1yLE5ILCEwKTtmb3IobGV0IFBuPTA7UG48RW4ubGVuZ3RoO1BuKyspe2xldCBKbj1ULmdldChFbltQbl0pO0puJiZKbi5sZW5ndGgmJnZ0LnB1c2goLi4uSm4pfX1jb25zdCBPdD12dC5maWx0ZXIoY249PiFjbi5kZXN0cm95ZWQpO090Lmxlbmd0'@; put 'aD9reGUodGhpcyxNcixPdCk6dGhpcy5wcm9jZXNzTGVhdmVOb2RlKE1yKX1yZXR1cm4geXQubGVuZ3RoPTAsanIuZm9yRWFjaChRbj0+e3RoaXMucGxheWVycy5wdXNoKFFuKSxRbi5vbkRvbmUoKCk9PntRbi5kZXN0cm95KCk7Y29uc3QgTXI9dGhpcy5wbGF5ZXJzLmluZGV4T2YoUW4pO3Ro'@; put 'aXMucGxheWVycy5zcGxpY2UoTXIsMSl9KSxRbi5wbGF5KCl9KSxqcn1hZnRlckZsdXNoKGwpe3RoaXMuX2ZsdXNoRm5zLnB1c2gobCl9YWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKGwpe3RoaXMuX3doZW5RdWlldEZucy5wdXNoKGwpfV9nZXRQcmV2aW91c1BsYXllcnMobCxhLGQsaCxmKXts'@; put 'ZXQgXz1bXTtpZihhKXtjb25zdCBUPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KGwpO1QmJihfPVQpfWVsc2V7Y29uc3QgVD10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KGwpO2lmKFQpe2NvbnN0IFc9IWZ8fGY9PXFiO1QuZm9yRWFjaChpZT0+e2llLnF1ZXVlZHx8IVcmJmll'@; put 'LnRyaWdnZXJOYW1lIT1ofHxfLnB1c2goaWUpfSl9fXJldHVybihkfHxoKSYmKF89Xy5maWx0ZXIoVD0+IShkJiZkIT1ULm5hbWVzcGFjZUlkfHxoJiZoIT1ULnRyaWdnZXJOYW1lKSkpLF99X2JlZm9yZUFuaW1hdGlvbkJ1aWxkKGwsYSxkKXtjb25zdCBmPWEuZWxlbWVudCxfPWEuaXNSZW1v'@; put 'dmFsVHJhbnNpdGlvbj92b2lkIDA6bCxUPWEuaXNSZW1vdmFsVHJhbnNpdGlvbj92b2lkIDA6YS50cmlnZ2VyTmFtZTtmb3IoY29uc3QgVyBvZiBhLnRpbWVsaW5lcyl7Y29uc3QgaWU9Vy5lbGVtZW50LHBlPWllIT09Zix3ZT1tMShkLGllLFtdKTt0aGlzLl9nZXRQcmV2aW91c1BsYXllcnMo'@; put 'aWUscGUsXyxULGEudG9TdGF0ZSkuZm9yRWFjaChaZT0+e2NvbnN0IGl0PVplLmdldFJlYWxQbGF5ZXIoKTtpdC5iZWZvcmVEZXN0cm95JiZpdC5iZWZvcmVEZXN0cm95KCksWmUuZGVzdHJveSgpLHdlLnB1c2goWmUpfSl9ZmcoZixhLmZyb21TdHlsZXMpfV9idWlsZEFuaW1hdGlvbihsLGEs'@; put 'ZCxoLGYsXyl7Y29uc3QgVD1hLnRyaWdnZXJOYW1lLFc9YS5lbGVtZW50LGllPVtdLHBlPW5ldyBTZXQsd2U9bmV3IFNldCxFZT1hLnRpbWVsaW5lcy5tYXAoaXQ9Pntjb25zdCBldD1pdC5lbGVtZW50O3BlLmFkZChldCk7Y29uc3QgeXQ9ZXRbcDJdO2lmKHl0JiZ5dC5yZW1vdmVkQmVmb3Jl'@; put 'UXVlcmllZClyZXR1cm4gbmV3IG9iKGl0LmR1cmF0aW9uLGl0LmRlbGF5KTtjb25zdCBFdD1ldCE9PVcsU3Q9ZnVuY3Rpb24gQXhlKGMpe2NvbnN0IGw9W107cmV0dXJuIFZlZShjLGwpLGx9KChkLmdldChldCl8fHl4ZSkubWFwKGNyPT5jci5nZXRSZWFsUGxheWVyKCkpKS5maWx0ZXIoY3I9'@; put 'PiEhY3IuZWxlbWVudCYmY3IuZWxlbWVudD09PWV0KSxKdD1mLmdldChldCksbm49Xy5nZXQoZXQpLHZuPWdlZSh0aGlzLl9ub3JtYWxpemVyLGl0LmtleWZyYW1lcyxKdCxubiksTm49dGhpcy5fYnVpbGRQbGF5ZXIoaXQsdm4sU3QpO2lmKGl0LnN1YlRpbWVsaW5lJiZoJiZ3ZS5hZGQoZXQp'@; put 'LEV0KXtjb25zdCBjcj1uZXcgSkgobCxULGV0KTtjci5zZXRSZWFsUGxheWVyKE5uKSxpZS5wdXNoKGNyKX1yZXR1cm4gTm59KTtpZS5mb3JFYWNoKGl0PT57bTEodGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudCxpdC5lbGVtZW50LFtdKS5wdXNoKGl0KSxpdC5vbkRvbmUoKCk9PmZ1bmN0'@; put 'aW9uIE14ZShjLGwsYSl7bGV0IGQ9Yy5nZXQobCk7aWYoZCl7aWYoZC5sZW5ndGgpe2NvbnN0IGg9ZC5pbmRleE9mKGEpO2Quc3BsaWNlKGgsMSl9MD09ZC5sZW5ndGgmJmMuZGVsZXRlKGwpfXJldHVybiBkfSh0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LGl0LmVsZW1lbnQsaXQpKX0p'@; put 'LHBlLmZvckVhY2goaXQ9PmhkKGl0LENlZSkpO2NvbnN0IFplPUZwKEVlKTtyZXR1cm4gWmUub25EZXN0cm95KCgpPT57cGUuZm9yRWFjaChpdD0+UTgoaXQsQ2VlKSksaGgoVyxhLnRvU3R5bGVzKX0pLHdlLmZvckVhY2goaXQ9PnttMShoLGl0LFtdKS5wdXNoKFplKX0pLFplfV9idWlsZFBs'@; put 'YXllcihsLGEsZCl7cmV0dXJuIGEubGVuZ3RoPjA/dGhpcy5kcml2ZXIuYW5pbWF0ZShsLmVsZW1lbnQsYSxsLmR1cmF0aW9uLGwuZGVsYXksbC5lYXNpbmcsZCk6bmV3IG9iKGwuZHVyYXRpb24sbC5kZWxheSl9fWNsYXNzIEpIe2NvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLm5hbWVzcGFjZUlk'@; put 'PWwsdGhpcy50cmlnZ2VyTmFtZT1hLHRoaXMuZWxlbWVudD1kLHRoaXMuX3BsYXllcj1uZXcgb2IsdGhpcy5fY29udGFpbnNSZWFsUGxheWVyPSExLHRoaXMuX3F1ZXVlZENhbGxiYWNrcz1uZXcgTWFwLHRoaXMuZGVzdHJveWVkPSExLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy5tYXJr'@; put 'ZWRGb3JEZXN0cm95PSExLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5xdWV1ZWQ9ITAsdGhpcy50b3RhbFRpbWU9MH1zZXRSZWFsUGxheWVyKGwpe3RoaXMuX2NvbnRhaW5zUmVhbFBsYXllcnx8KHRoaXMuX3BsYXllcj1sLHRoaXMuX3F1ZXVlZENhbGxiYWNrcy5mb3JFYWNoKChhLGQpPT57YS5m'@; put 'b3JFYWNoKGg9PkxIKGwsZCx2b2lkIDAsaCkpfSksdGhpcy5fcXVldWVkQ2FsbGJhY2tzLmNsZWFyKCksdGhpcy5fY29udGFpbnNSZWFsUGxheWVyPSEwLHRoaXMub3ZlcnJpZGVUb3RhbFRpbWUobC50b3RhbFRpbWUpLHRoaXMucXVldWVkPSExKX1nZXRSZWFsUGxheWVyKCl7cmV0dXJuIHRo'@; put 'aXMuX3BsYXllcn1vdmVycmlkZVRvdGFsVGltZShsKXt0aGlzLnRvdGFsVGltZT1sfXN5bmNQbGF5ZXJFdmVudHMobCl7Y29uc3QgYT10aGlzLl9wbGF5ZXI7YS50cmlnZ2VyQ2FsbGJhY2smJmwub25TdGFydCgoKT0+YS50cmlnZ2VyQ2FsbGJhY2soInN0YXJ0IikpLGwub25Eb25lKCgpPT50'@; put 'aGlzLmZpbmlzaCgpKSxsLm9uRGVzdHJveSgoKT0+dGhpcy5kZXN0cm95KCkpfV9xdWV1ZUV2ZW50KGwsYSl7bTEodGhpcy5fcXVldWVkQ2FsbGJhY2tzLGwsW10pLnB1c2goYSl9b25Eb25lKGwpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1ZUV2ZW50KCJkb25lIixsKSx0aGlzLl9wbGF5ZXIu'@; put 'b25Eb25lKGwpfW9uU3RhcnQobCl7dGhpcy5xdWV1ZWQmJnRoaXMuX3F1ZXVlRXZlbnQoInN0YXJ0IixsKSx0aGlzLl9wbGF5ZXIub25TdGFydChsKX1vbkRlc3Ryb3kobCl7dGhpcy5xdWV1ZWQmJnRoaXMuX3F1ZXVlRXZlbnQoImRlc3Ryb3kiLGwpLHRoaXMuX3BsYXllci5vbkRlc3Ryb3ko'@; put 'bCl9aW5pdCgpe3RoaXMuX3BsYXllci5pbml0KCl9aGFzU3RhcnRlZCgpe3JldHVybiF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLmhhc1N0YXJ0ZWQoKX1wbGF5KCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIucGxheSgpfXBhdXNlKCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIu'@; put 'cGF1c2UoKX1yZXN0YXJ0KCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIucmVzdGFydCgpfWZpbmlzaCgpe3RoaXMuX3BsYXllci5maW5pc2goKX1kZXN0cm95KCl7dGhpcy5kZXN0cm95ZWQ9ITAsdGhpcy5fcGxheWVyLmRlc3Ryb3koKX1yZXNldCgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5f'@; put 'cGxheWVyLnJlc2V0KCl9c2V0UG9zaXRpb24obCl7dGhpcy5xdWV1ZWR8fHRoaXMuX3BsYXllci5zZXRQb3NpdGlvbihsKX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLnF1ZXVlZD8wOnRoaXMuX3BsYXllci5nZXRQb3NpdGlvbigpfXRyaWdnZXJDYWxsYmFjayhsKXtjb25zdCBhPXRoaXMu'@; put 'X3BsYXllcjthLnRyaWdnZXJDYWxsYmFjayYmYS50cmlnZ2VyQ2FsbGJhY2sobCl9fWZ1bmN0aW9uIFFFKGMpe3JldHVybiBjJiYxPT09Yy5ub2RlVHlwZX1mdW5jdGlvbiBGZWUoYyxsKXtjb25zdCBhPWMuc3R5bGUuZGlzcGxheTtyZXR1cm4gYy5zdHlsZS5kaXNwbGF5PWw/PyJub25lIixh'@; put 'fWZ1bmN0aW9uIEhlZShjLGwsYSxkLGgpe2NvbnN0IGY9W107YS5mb3JFYWNoKFc9PmYucHVzaChGZWUoVykpKTtjb25zdCBfPVtdO2QuZm9yRWFjaCgoVyxpZSk9Pntjb25zdCBwZT1uZXcgTWFwO1cuZm9yRWFjaCh3ZT0+e2NvbnN0IEVlPWwuY29tcHV0ZVN0eWxlKGllLHdlLGgpO3BlLnNl'@; put 'dCh3ZSxFZSksKCFFZXx8MD09RWUubGVuZ3RoKSYmKGllW3AyXT13eGUsXy5wdXNoKGllKSl9KSxjLnNldChpZSxwZSl9KTtsZXQgVD0wO3JldHVybiBhLmZvckVhY2goVz0+RmVlKFcsZltUKytdKSksX31mdW5jdGlvbiBOZWUoYyxsKXtjb25zdCBhPW5ldyBNYXA7aWYoYy5mb3JFYWNoKFQ9'@; put 'PmEuc2V0KFQsW10pKSwwPT1sLmxlbmd0aClyZXR1cm4gYTtjb25zdCBoPW5ldyBTZXQobCksZj1uZXcgTWFwO2Z1bmN0aW9uIF8oVCl7aWYoIVQpcmV0dXJuIDE7bGV0IFc9Zi5nZXQoVCk7aWYoVylyZXR1cm4gVztjb25zdCBpZT1ULnBhcmVudE5vZGU7cmV0dXJuIFc9YS5oYXMoaWUpP2ll'@; put 'OmguaGFzKGllKT8xOl8oaWUpLGYuc2V0KFQsVyksV31yZXR1cm4gbC5mb3JFYWNoKFQ9Pntjb25zdCBXPV8oVCk7MSE9PVcmJmEuZ2V0KFcpLnB1c2goVCl9KSxhfWZ1bmN0aW9uIGhkKGMsbCl7Yy5jbGFzc0xpc3Q/LmFkZChsKX1mdW5jdGlvbiBROChjLGwpe2MuY2xhc3NMaXN0Py5yZW1v'@; put 'dmUobCl9ZnVuY3Rpb24ga3hlKGMsbCxhKXtGcChhKS5vbkRvbmUoKCk9PmMucHJvY2Vzc0xlYXZlTm9kZShsKSl9ZnVuY3Rpb24gVmVlKGMsbCl7Zm9yKGxldCBhPTA7YTxjLmxlbmd0aDthKyspe2NvbnN0IGQ9Y1thXTtkIGluc3RhbmNlb2YgVks/VmVlKGQucGxheWVycyxsKTpsLnB1c2go'@; put 'ZCl9fWZ1bmN0aW9uIEJlZShjLGwsYSl7Y29uc3QgZD1hLmdldChjKTtpZighZClyZXR1cm4hMTtsZXQgaD1sLmdldChjKTtyZXR1cm4gaD9kLmZvckVhY2goZj0+aC5hZGQoZikpOmwuc2V0KGMsZCksYS5kZWxldGUoYyksITB9Y2xhc3MgZWt7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuYm9k'@; put 'eU5vZGU9bCx0aGlzLl9kcml2ZXI9YSx0aGlzLl9ub3JtYWxpemVyPWQsdGhpcy5fdHJpZ2dlckNhY2hlPXt9LHRoaXMub25SZW1vdmFsQ29tcGxldGU9KGgsZik9Pnt9LHRoaXMuX3RyYW5zaXRpb25FbmdpbmU9bmV3IFN4ZShsLGEsZCksdGhpcy5fdGltZWxpbmVFbmdpbmU9bmV3IGd4ZShs'@; put 'LGEsZCksdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5vblJlbW92YWxDb21wbGV0ZT0oaCxmKT0+dGhpcy5vblJlbW92YWxDb21wbGV0ZShoLGYpfXJlZ2lzdGVyVHJpZ2dlcihsLGEsZCxoLGYpe2NvbnN0IF89bCsiLSIraDtsZXQgVD10aGlzLl90cmlnZ2VyQ2FjaGVbX107aWYoIVQpe2NvbnN0'@; put 'IFc9W10scGU9ekgodGhpcy5fZHJpdmVyLGYsVyxbXSk7aWYoVy5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gdk1lKGMsbCl7cmV0dXJuIG5ldyBBcigzNDA0LCExKX0oKTtUPWZ1bmN0aW9uIGR4ZShjLGwsYSl7cmV0dXJuIG5ldyBoeGUoYyxsLGEpfShoLHBlLHRoaXMuX25vcm1hbGl6ZXIpLHRo'@; put 'aXMuX3RyaWdnZXJDYWNoZVtfXT1UfXRoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXJUcmlnZ2VyKGEsaCxUKX1yZWdpc3RlcihsLGEpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXIobCxhKX1kZXN0cm95KGwsYSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5kZXN0cm95KGws'@; put 'YSl9b25JbnNlcnQobCxhLGQsaCl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5pbnNlcnROb2RlKGwsYSxkLGgpfW9uUmVtb3ZlKGwsYSxkKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlbW92ZU5vZGUobCxhLGQpfWRpc2FibGVBbmltYXRpb25zKGwsYSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2lu'@; put 'ZS5tYXJrRWxlbWVudEFzRGlzYWJsZWQobCxhKX1wcm9jZXNzKGwsYSxkLGgpe2lmKCJAIj09ZC5jaGFyQXQoMCkpe2NvbnN0W2YsX109bWVlKGQpO3RoaXMuX3RpbWVsaW5lRW5naW5lLmNvbW1hbmQoZixhLF8saCl9ZWxzZSB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnRyaWdnZXIobCxhLGQs'@; put 'aCl9bGlzdGVuKGwsYSxkLGgsZil7aWYoIkAiPT1kLmNoYXJBdCgwKSl7Y29uc3RbXyxUXT1tZWUoZCk7cmV0dXJuIHRoaXMuX3RpbWVsaW5lRW5naW5lLmxpc3RlbihfLGEsVCxmKX1yZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5saXN0ZW4obCxhLGQsaCxmKX1mbHVzaChsPS0xKXt0'@; put 'aGlzLl90cmFuc2l0aW9uRW5naW5lLmZsdXNoKGwpfWdldCBwbGF5ZXJzKCl7cmV0dXJuWy4uLnRoaXMuX3RyYW5zaXRpb25FbmdpbmUucGxheWVycywuLi50aGlzLl90aW1lbGluZUVuZ2luZS5wbGF5ZXJzXX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5n'@; put 'aW5lLndoZW5SZW5kZXJpbmdEb25lKCl9YWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKGwpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuYWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKGwpfX1sZXQgSXhlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuX2VsZW1lbnQ9YSx0aGlz'@; put 'Ll9zdGFydFN0eWxlcz1kLHRoaXMuX2VuZFN0eWxlcz1oLHRoaXMuX3N0YXRlPTA7bGV0IGY9Yy5pbml0aWFsU3R5bGVzQnlFbGVtZW50LmdldChhKTtmfHxjLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuc2V0KGEsZj1uZXcgTWFwKSx0aGlzLl9pbml0aWFsU3R5bGVzPWZ9c3RhcnQoKXt0aGlz'@; put 'Ll9zdGF0ZTwxJiYodGhpcy5fc3RhcnRTdHlsZXMmJmhoKHRoaXMuX2VsZW1lbnQsdGhpcy5fc3RhcnRTdHlsZXMsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fc3RhdGU9MSl9ZmluaXNoKCl7dGhpcy5zdGFydCgpLHRoaXMuX3N0YXRlPDImJihoaCh0aGlzLl9lbGVtZW50LHRoaXMuX2lu'@; put 'aXRpYWxTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcyYmKGhoKHRoaXMuX2VsZW1lbnQsdGhpcy5fZW5kU3R5bGVzKSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksdGhpcy5fc3RhdGU9MSl9ZGVzdHJveSgpe3RoaXMuZmluaXNoKCksdGhpcy5fc3RhdGU8MyYmKGMuaW5pdGlhbFN0eWxlc0J5RWxlbWVu'@; put 'dC5kZWxldGUodGhpcy5fZWxlbWVudCksdGhpcy5fc3RhcnRTdHlsZXMmJihmZyh0aGlzLl9lbGVtZW50LHRoaXMuX3N0YXJ0U3R5bGVzKSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksdGhpcy5fZW5kU3R5bGVzJiYoZmcodGhpcy5fZWxlbWVudCx0aGlzLl9lbmRTdHlsZXMpLHRoaXMuX2VuZFN0'@; put 'eWxlcz1udWxsKSxoaCh0aGlzLl9lbGVtZW50LHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX3N0YXRlPTMpfX1yZXR1cm4gYy5pbml0aWFsU3R5bGVzQnlFbGVtZW50PW5ldyBXZWFrTWFwLGN9KSgpO2Z1bmN0aW9uIFFIKGMpe2xldCBsPW51bGw7cmV0dXJuIGMuZm9yRWFjaCgoYSxkKT0+'@; put 'eyhmdW5jdGlvbiBMeGUoYyl7cmV0dXJuImRpc3BsYXkiPT09Y3x8InBvc2l0aW9uIj09PWN9KShkKSYmKGw9bHx8bmV3IE1hcCxsLnNldChkLGEpKX0pLGx9Y2xhc3MgamVle2NvbnN0cnVjdG9yKGwsYSxkLGgpe3RoaXMuZWxlbWVudD1sLHRoaXMua2V5ZnJhbWVzPWEsdGhpcy5vcHRpb25z'@; put 'PWQsdGhpcy5fc3BlY2lhbFN0eWxlcz1oLHRoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLl9pbml0aWFsaXplZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlz'@; put 'Ll9vcmlnaW5hbE9uRG9uZUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnM9W10sdGhpcy50aW1lPTAsdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLmN1cnJlbnRTbmFwc2hvdD1uZXcgTWFwLHRoaXMuX2R1cmF0aW9uPWQuZHVyYXRpb24sdGhpcy5fZGVsYXk9ZC5kZWxheXx8MCx0'@; put 'aGlzLnRpbWU9dGhpcy5fZHVyYXRpb24rdGhpcy5fZGVsYXl9X29uRmluaXNoKCl7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRG9uZUZucz1bXSl9aW5pdCgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhp'@; put 'cy5fcHJlcGFyZVBsYXllckJlZm9yZVN0YXJ0KCl9X2J1aWxkUGxheWVyKCl7aWYodGhpcy5faW5pdGlhbGl6ZWQpcmV0dXJuO3RoaXMuX2luaXRpYWxpemVkPSEwO2NvbnN0IGw9dGhpcy5rZXlmcmFtZXM7dGhpcy5kb21QbGF5ZXI9dGhpcy5fdHJpZ2dlcldlYkFuaW1hdGlvbih0aGlzLmVs'@; put 'ZW1lbnQsbCx0aGlzLm9wdGlvbnMpLHRoaXMuX2ZpbmFsS2V5ZnJhbWU9bC5sZW5ndGg/bFtsLmxlbmd0aC0xXTpuZXcgTWFwLHRoaXMuZG9tUGxheWVyLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsKCk9PnRoaXMuX29uRmluaXNoKCkpfV9wcmVwYXJlUGxheWVyQmVmb3JlU3RhcnQoKXt0'@; put 'aGlzLl9kZWxheT90aGlzLl9yZXNldERvbVBsYXllclN0YXRlKCk6dGhpcy5kb21QbGF5ZXIucGF1c2UoKX1fY29udmVydEtleWZyYW1lc1RvT2JqZWN0KGwpe2NvbnN0IGE9W107cmV0dXJuIGwuZm9yRWFjaChkPT57YS5wdXNoKE9iamVjdC5mcm9tRW50cmllcyhkKSl9KSxhfV90cmlnZ2Vy'@; put 'V2ViQW5pbWF0aW9uKGwsYSxkKXtyZXR1cm4gbC5hbmltYXRlKHRoaXMuX2NvbnZlcnRLZXlmcmFtZXNUb09iamVjdChhKSxkKX1vblN0YXJ0KGwpe3RoaXMuX29yaWdpbmFsT25TdGFydEZucy5wdXNoKGwpLHRoaXMuX29uU3RhcnRGbnMucHVzaChsKX1vbkRvbmUobCl7dGhpcy5fb3JpZ2lu'@; put 'YWxPbkRvbmVGbnMucHVzaChsKSx0aGlzLl9vbkRvbmVGbnMucHVzaChsKX1vbkRlc3Ryb3kobCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2gobCl9cGxheSgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhpcy5oYXNTdGFydGVkKCl8fCh0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2gobD0+bCgpKSx0'@; put 'aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5zdGFydCgpKSx0aGlzLmRvbVBsYXllci5wbGF5KCl9cGF1c2UoKXt0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5wYXVzZSgpfWZpbmlzaCgpe3RoaXMu'@; put 'aW5pdCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLmRvbVBsYXllci5maW5pc2goKX1yZXNldCgpe3RoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNo'@; put 'ZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9vblN0YXJ0Rm5zPXRoaXMuX29yaWdpbmFsT25TdGFydEZucyx0aGlzLl9vbkRvbmVGbnM9dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnN9X3Jlc2V0RG9tUGxheWVyU3RhdGUoKXt0aGlzLmRvbVBsYXllciYmdGhpcy5kb21QbGF5ZXIuY2FuY2Vs'@; put 'KCl9cmVzdGFydCgpe3RoaXMucmVzZXQoKSx0aGlzLnBsYXkoKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9yZXNldERvbVBsYXllclN0YXRlKCksdGhpcy5fb25GaW5pc2goKSx0'@; put 'aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLmRlc3Ryb3koKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9c2V0UG9zaXRpb24obCl7dm9pZCAwPT09dGhpcy5kb21QbGF5ZXImJnRoaXMuaW5pdCgpLHRoaXMu'@; put 'ZG9tUGxheWVyLmN1cnJlbnRUaW1lPWwqdGhpcy50aW1lfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lL3RoaXMudGltZX1nZXQgdG90YWxUaW1lKCl7cmV0dXJuIHRoaXMuX2RlbGF5K3RoaXMuX2R1cmF0aW9ufWJlZm9yZURlc3Ryb3koKXtjb25zdCBs'@; put 'PW5ldyBNYXA7dGhpcy5oYXNTdGFydGVkKCkmJnRoaXMuX2ZpbmFsS2V5ZnJhbWUuZm9yRWFjaCgoZCxoKT0+eyJvZmZzZXQiIT09aCYmbC5zZXQoaCx0aGlzLl9maW5pc2hlZD9kOkVlZSh0aGlzLmVsZW1lbnQsaCkpfSksdGhpcy5jdXJyZW50U25hcHNob3Q9bH10cmlnZ2VyQ2FsbGJhY2so'@; put 'bCl7Y29uc3QgYT0ic3RhcnQiPT09bD90aGlzLl9vblN0YXJ0Rm5zOnRoaXMuX29uRG9uZUZuczthLmZvckVhY2goZD0+ZCgpKSxhLmxlbmd0aD0wfX1jbGFzcyBSeGV7dmFsaWRhdGVTdHlsZVByb3BlcnR5KGwpe3JldHVybiEwfXZhbGlkYXRlQW5pbWF0YWJsZVN0eWxlUHJvcGVydHkobCl7'@; put 'cmV0dXJuITB9bWF0Y2hlc0VsZW1lbnQobCxhKXtyZXR1cm4hMX1jb250YWluc0VsZW1lbnQobCxhKXtyZXR1cm4gX2VlKGwsYSl9Z2V0UGFyZW50RWxlbWVudChsKXtyZXR1cm4gUEgobCl9cXVlcnkobCxhLGQpe3JldHVybiBiZWUobCxhLGQpfWNvbXB1dGVTdHlsZShsLGEsZCl7cmV0dXJu'@; put 'IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGwpW2FdfWFuaW1hdGUobCxhLGQsaCxmLF89W10pe2NvbnN0IFc9e2R1cmF0aW9uOmQsZGVsYXk6aCxmaWxsOjA9PWg/ImJvdGgiOiJmb3J3YXJkcyJ9O2YmJihXLmVhc2luZz1mKTtjb25zdCBpZT1uZXcgTWFwLHBlPV8uZmlsdGVyKFplPT5aZSBp'@; put 'bnN0YW5jZW9mIGplZSk7KGZ1bmN0aW9uIEJNZShjLGwpe3JldHVybiAwPT09Y3x8MD09PWx9KShkLGgpJiZwZS5mb3JFYWNoKFplPT57WmUuY3VycmVudFNuYXBzaG90LmZvckVhY2goKGl0LGV0KT0+aWUuc2V0KGV0LGl0KSl9KTtsZXQgd2U9ZnVuY3Rpb24gSE1lKGMpe3JldHVybiBjLmxl'@; put 'bmd0aD9jWzBdaW5zdGFuY2VvZiBNYXA/YzpjLm1hcChsPT5TZWUobCkpOltdfShhKS5tYXAoWmU9PkhwKFplKSk7d2U9ZnVuY3Rpb24gak1lKGMsbCxhKXtpZihhLnNpemUmJmwubGVuZ3RoKXtsZXQgZD1sWzBdLGg9W107aWYoYS5mb3JFYWNoKChmLF8pPT57ZC5oYXMoXyl8fGgucHVzaChf'@; put 'KSxkLnNldChfLGYpfSksaC5sZW5ndGgpZm9yKGxldCBmPTE7ZjxsLmxlbmd0aDtmKyspe2xldCBfPWxbZl07aC5mb3JFYWNoKFQ9Pl8uc2V0KFQsRWVlKGMsVCkpKX19cmV0dXJuIGx9KGwsd2UsaWUpO2NvbnN0IEVlPWZ1bmN0aW9uIER4ZShjLGwpe2xldCBhPW51bGwsZD1udWxsO3JldHVy'@; put 'biBBcnJheS5pc0FycmF5KGwpJiZsLmxlbmd0aD8oYT1RSChsWzBdKSxsLmxlbmd0aD4xJiYoZD1RSChsW2wubGVuZ3RoLTFdKSkpOmwgaW5zdGFuY2VvZiBNYXAmJihhPVFIKGwpKSxhfHxkP25ldyBJeGUoYyxhLGQpOm51bGx9KGwsd2UpO3JldHVybiBuZXcgamVlKGwsd2UsVyxFZSl9fWxl'@; put 'dCBPeGU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEhLe2NvbnN0cnVjdG9yKGEsZCl7c3VwZXIoKSx0aGlzLl9uZXh0QW5pbWF0aW9uSWQ9MCx0aGlzLl9yZW5kZXJlcj1hLmNyZWF0ZVJlbmRlcmVyKGQuYm9keSx7aWQ6IjAiLGVuY2Fwc3VsYXRpb246UGMuTm9uZSxzdHlsZXM6W10sZGF0YTp7'@; put 'YW5pbWF0aW9uOltdfX0pfWJ1aWxkKGEpe2NvbnN0IGQ9dGhpcy5fbmV4dEFuaW1hdGlvbklkLnRvU3RyaW5nKCk7dGhpcy5fbmV4dEFuaW1hdGlvbklkKys7Y29uc3QgaD1BcnJheS5pc0FycmF5KGEpP05LKGEpOmE7cmV0dXJuIHplZSh0aGlzLl9yZW5kZXJlcixudWxsLGQsInJlZ2lzdGVy'@; put 'IixbaF0pLG5ldyBQeGUoZCx0aGlzLl9yZW5kZXJlcil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKFkzKSxhcihMcykpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2NsYXNzIFB4ZSBleHRl'@; put 'bmRzIFBtZXtjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKCksdGhpcy5faWQ9bCx0aGlzLl9yZW5kZXJlcj1hfWNyZWF0ZShsLGEpe3JldHVybiBuZXcgRnhlKHRoaXMuX2lkLGwsYXx8e30sdGhpcy5fcmVuZGVyZXIpfX1jbGFzcyBGeGV7Y29uc3RydWN0b3IobCxhLGQsaCl7dGhpcy5pZD1sLHRo'@; put 'aXMuZWxlbWVudD1hLHRoaXMuX3JlbmRlcmVyPWgsdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLl9zdGFydGVkPSExLHRoaXMudG90YWxUaW1lPTAsdGhpcy5fY29tbWFuZCgiY3JlYXRlIixkKX1fbGlzdGVuKGwsYSl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1l'@; put 'bnQsYEBAJHt0aGlzLmlkfToke2x9YCxhKX1fY29tbWFuZChsLC4uLmEpe3JldHVybiB6ZWUodGhpcy5fcmVuZGVyZXIsdGhpcy5lbGVtZW50LHRoaXMuaWQsbCxhKX1vbkRvbmUobCl7dGhpcy5fbGlzdGVuKCJkb25lIixsKX1vblN0YXJ0KGwpe3RoaXMuX2xpc3Rlbigic3RhcnQiLGwpfW9u'@; put 'RGVzdHJveShsKXt0aGlzLl9saXN0ZW4oImRlc3Ryb3kiLGwpfWluaXQoKXt0aGlzLl9jb21tYW5kKCJpbml0Iil9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfXBsYXkoKXt0aGlzLl9jb21tYW5kKCJwbGF5IiksdGhpcy5fc3RhcnRlZD0hMH1wYXVzZSgpe3RoaXMuX2NvbW1h'@; put 'bmQoInBhdXNlIil9cmVzdGFydCgpe3RoaXMuX2NvbW1hbmQoInJlc3RhcnQiKX1maW5pc2goKXt0aGlzLl9jb21tYW5kKCJmaW5pc2giKX1kZXN0cm95KCl7dGhpcy5fY29tbWFuZCgiZGVzdHJveSIpfXJlc2V0KCl7dGhpcy5fY29tbWFuZCgicmVzZXQiKSx0aGlzLl9zdGFydGVkPSExfXNl'@; put 'dFBvc2l0aW9uKGwpe3RoaXMuX2NvbW1hbmQoInNldFBvc2l0aW9uIixsKX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLl9yZW5kZXJlci5lbmdpbmUucGxheWVyc1srdGhpcy5pZF0/LmdldFBvc2l0aW9uKCk/PzB9fWZ1bmN0aW9uIHplZShjLGwsYSxkLGgpe3JldHVybiBjLnNldFByb3Bl'@; put 'cnR5KGwsYEBAJHthfToke2R9YCxoKX1jb25zdCBVZWU9IkAuZGlzYWJsZWQiO2xldCBIeGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5kZWxlZ2F0ZT1hLHRoaXMuZW5naW5lPWQsdGhpcy5fem9uZT1oLHRoaXMuX2N1cnJlbnRJZD0wLHRoaXMuX21pY3JvdGFza0lk'@; put 'PTEsdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyPVtdLHRoaXMuX3JlbmRlcmVyQ2FjaGU9bmV3IE1hcCx0aGlzLl9jZFJlY3VyRGVwdGg9MCxkLm9uUmVtb3ZhbENvbXBsZXRlPShmLF8pPT57Y29uc3QgVD1fPy5wYXJlbnROb2RlKGYpO1QmJl8ucmVtb3ZlQ2hpbGQoVCxmKX19Y3Jl'@; put 'YXRlUmVuZGVyZXIoYSxkKXtjb25zdCBmPXRoaXMuZGVsZWdhdGUuY3JlYXRlUmVuZGVyZXIoYSxkKTtpZighKGEmJmQmJmQuZGF0YSYmZC5kYXRhLmFuaW1hdGlvbikpe2xldCBwZT10aGlzLl9yZW5kZXJlckNhY2hlLmdldChmKTtyZXR1cm4gcGV8fChwZT1uZXcgWmVlKCIiLGYsdGhpcy5l'@; put 'bmdpbmUsKCk9PnRoaXMuX3JlbmRlcmVyQ2FjaGUuZGVsZXRlKGYpKSx0aGlzLl9yZW5kZXJlckNhY2hlLnNldChmLHBlKSkscGV9Y29uc3QgXz1kLmlkLFQ9ZC5pZCsiLSIrdGhpcy5fY3VycmVudElkO3RoaXMuX2N1cnJlbnRJZCsrLHRoaXMuZW5naW5lLnJlZ2lzdGVyKFQsYSk7Y29uc3Qg'@; put 'Vz1wZT0+e0FycmF5LmlzQXJyYXkocGUpP3BlLmZvckVhY2goVyk6dGhpcy5lbmdpbmUucmVnaXN0ZXJUcmlnZ2VyKF8sVCxhLHBlLm5hbWUscGUpfTtyZXR1cm4gZC5kYXRhLmFuaW1hdGlvbi5mb3JFYWNoKFcpLG5ldyBOeGUodGhpcyxULGYsdGhpcy5lbmdpbmUpfWJlZ2luKCl7dGhpcy5f'@; put 'Y2RSZWN1ckRlcHRoKyssdGhpcy5kZWxlZ2F0ZS5iZWdpbiYmdGhpcy5kZWxlZ2F0ZS5iZWdpbigpfV9zY2hlZHVsZUNvdW50VGFzaygpe3F1ZXVlTWljcm90YXNrKCgpPT57dGhpcy5fbWljcm90YXNrSWQrK30pfXNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayhhLGQsaCl7YT49MCYmYTx0aGlz'@; put 'Ll9taWNyb3Rhc2tJZD90aGlzLl96b25lLnJ1bigoKT0+ZChoKSk6KDA9PXRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlci5sZW5ndGgmJnF1ZXVlTWljcm90YXNrKCgpPT57dGhpcy5fem9uZS5ydW4oKCk9Pnt0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIuZm9yRWFjaChmPT57'@; put 'Y29uc3RbXyxUXT1mO18oVCl9KSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXI9W119KX0pLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlci5wdXNoKFtkLGhdKSl9ZW5kKCl7dGhpcy5fY2RSZWN1ckRlcHRoLS0sMD09dGhpcy5fY2RSZWN1ckRlcHRoJiZ0aGlzLl96b25lLnJ1'@; put 'bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5fc2NoZWR1bGVDb3VudFRhc2soKSx0aGlzLmVuZ2luZS5mbHVzaCh0aGlzLl9taWNyb3Rhc2tJZCl9KSx0aGlzLmRlbGVnYXRlLmVuZCYmdGhpcy5kZWxlZ2F0ZS5lbmQoKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLmVuZ2luZS53'@; put 'aGVuUmVuZGVyaW5nRG9uZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihZMyksYXIoZWspLGFyKE5vKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3MgWmVle2NvbnN0cnVjdG9y'@; put 'KGwsYSxkLGgpe3RoaXMubmFtZXNwYWNlSWQ9bCx0aGlzLmRlbGVnYXRlPWEsdGhpcy5lbmdpbmU9ZCx0aGlzLl9vbkRlc3Ryb3k9aH1nZXQgZGF0YSgpe3JldHVybiB0aGlzLmRlbGVnYXRlLmRhdGF9ZGVzdHJveU5vZGUobCl7dGhpcy5kZWxlZ2F0ZS5kZXN0cm95Tm9kZT8uKGwpfWRlc3Ry'@; put 'b3koKXt0aGlzLmVuZ2luZS5kZXN0cm95KHRoaXMubmFtZXNwYWNlSWQsdGhpcy5kZWxlZ2F0ZSksdGhpcy5lbmdpbmUuYWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKCgpPT57cXVldWVNaWNyb3Rhc2soKCk9Pnt0aGlzLmRlbGVnYXRlLmRlc3Ryb3koKX0pfSksdGhpcy5fb25EZXN0cm95Py4o'@; put 'KX1jcmVhdGVFbGVtZW50KGwsYSl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlRWxlbWVudChsLGEpfWNyZWF0ZUNvbW1lbnQobCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlQ29tbWVudChsKX1jcmVhdGVUZXh0KGwpe3JldHVybiB0aGlzLmRlbGVnYXRlLmNyZWF0ZVRleHQobCl9'@; put 'YXBwZW5kQ2hpbGQobCxhKXt0aGlzLmRlbGVnYXRlLmFwcGVuZENoaWxkKGwsYSksdGhpcy5lbmdpbmUub25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxhLGwsITEpfWluc2VydEJlZm9yZShsLGEsZCxoPSEwKXt0aGlzLmRlbGVnYXRlLmluc2VydEJlZm9yZShsLGEsZCksdGhpcy5lbmdpbmUu'@; put 'b25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxhLGwsaCl9cmVtb3ZlQ2hpbGQobCxhLGQpe3RoaXMuZW5naW5lLm9uUmVtb3ZlKHRoaXMubmFtZXNwYWNlSWQsYSx0aGlzLmRlbGVnYXRlKX1zZWxlY3RSb290RWxlbWVudChsLGEpe3JldHVybiB0aGlzLmRlbGVnYXRlLnNlbGVjdFJvb3RFbGVt'@; put 'ZW50KGwsYSl9cGFyZW50Tm9kZShsKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5wYXJlbnROb2RlKGwpfW5leHRTaWJsaW5nKGwpe3JldHVybiB0aGlzLmRlbGVnYXRlLm5leHRTaWJsaW5nKGwpfXNldEF0dHJpYnV0ZShsLGEsZCxoKXt0aGlzLmRlbGVnYXRlLnNldEF0dHJpYnV0ZShsLGEsZCxo'@; put 'KX1yZW1vdmVBdHRyaWJ1dGUobCxhLGQpe3RoaXMuZGVsZWdhdGUucmVtb3ZlQXR0cmlidXRlKGwsYSxkKX1hZGRDbGFzcyhsLGEpe3RoaXMuZGVsZWdhdGUuYWRkQ2xhc3MobCxhKX1yZW1vdmVDbGFzcyhsLGEpe3RoaXMuZGVsZWdhdGUucmVtb3ZlQ2xhc3MobCxhKX1zZXRTdHlsZShsLGEs'@; put 'ZCxoKXt0aGlzLmRlbGVnYXRlLnNldFN0eWxlKGwsYSxkLGgpfXJlbW92ZVN0eWxlKGwsYSxkKXt0aGlzLmRlbGVnYXRlLnJlbW92ZVN0eWxlKGwsYSxkKX1zZXRQcm9wZXJ0eShsLGEsZCl7IkAiPT1hLmNoYXJBdCgwKSYmYT09VWVlP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnMobCwhIWQpOnRo'@; put 'aXMuZGVsZWdhdGUuc2V0UHJvcGVydHkobCxhLGQpfXNldFZhbHVlKGwsYSl7dGhpcy5kZWxlZ2F0ZS5zZXRWYWx1ZShsLGEpfWxpc3RlbihsLGEsZCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKGwsYSxkKX1kaXNhYmxlQW5pbWF0aW9ucyhsLGEpe3RoaXMuZW5naW5lLmRpc2FibGVB'@; put 'bmltYXRpb25zKGwsYSl9fWNsYXNzIE54ZSBleHRlbmRzIFplZXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYpe3N1cGVyKGEsZCxoLGYpLHRoaXMuZmFjdG9yeT1sLHRoaXMubmFtZXNwYWNlSWQ9YX1zZXRQcm9wZXJ0eShsLGEsZCl7IkAiPT1hLmNoYXJBdCgwKT8iLiI9PWEuY2hhckF0KDEpJiZh'@; put 'PT1VZWU/dGhpcy5kaXNhYmxlQW5pbWF0aW9ucyhsLGQ9dm9pZCAwPT09ZHx8ISFkKTp0aGlzLmVuZ2luZS5wcm9jZXNzKHRoaXMubmFtZXNwYWNlSWQsbCxhLnNsaWNlKDEpLGQpOnRoaXMuZGVsZWdhdGUuc2V0UHJvcGVydHkobCxhLGQpfWxpc3RlbihsLGEsZCl7aWYoIkAiPT1hLmNoYXJB'@; put 'dCgwKSl7Y29uc3QgaD1mdW5jdGlvbiBWeGUoYyl7c3dpdGNoKGMpe2Nhc2UiYm9keSI6cmV0dXJuIGRvY3VtZW50LmJvZHk7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIGRvY3VtZW50O2Nhc2Uid2luZG93IjpyZXR1cm4gd2luZG93O2RlZmF1bHQ6cmV0dXJuIGN9fShsKTtsZXQgZj1hLnNsaWNl'@; put 'KDEpLF89IiI7cmV0dXJuIkAiIT1mLmNoYXJBdCgwKSYmKFtmLF9dPWZ1bmN0aW9uIEJ4ZShjKXtjb25zdCBsPWMuaW5kZXhPZigiLiIpO3JldHVybltjLnN1YnN0cmluZygwLGwpLGMuc2xpY2UobCsxKV19KGYpKSx0aGlzLmVuZ2luZS5saXN0ZW4odGhpcy5uYW1lc3BhY2VJZCxoLGYsXyxU'@; put 'PT57dGhpcy5mYWN0b3J5LnNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayhULl9kYXRhfHwtMSxkLFQpfSl9cmV0dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKGwsYSxkKX19bGV0IGp4ZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgZWt7Y29uc3RydWN0b3IoYSxkLGgsZil7c3VwZXIoYS5ib2R5LGQs'@; put 'aCl9bmdPbkRlc3Ryb3koKXt0aGlzLmZsdXNoKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKExzKSxhcihGSCksYXIoR0gpLGFyKHg1KSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y29u'@; put 'c3QgWWVlPVt7cHJvdmlkZTpISyx1c2VDbGFzczpPeGV9LHtwcm92aWRlOkdILHVzZUZhY3Rvcnk6ZnVuY3Rpb24genhlKCl7cmV0dXJuIG5ldyBheGV9fSx7cHJvdmlkZTplayx1c2VDbGFzczpqeGV9LHtwcm92aWRlOlkzLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gVXhlKGMsbCxhKXtyZXR1cm4g'@; put 'bmV3IEh4ZShjLGwsYSl9LGRlcHM6W0lPLGVrLE5vXX1dLGVOPVt7cHJvdmlkZTpGSCx1c2VGYWN0b3J5OigpPT5uZXcgUnhlfSx7cHJvdmlkZTp0Uyx1c2VWYWx1ZToiQnJvd3NlckFuaW1hdGlvbnMifSwuLi5ZZWVdLFdlZT1be3Byb3ZpZGU6RkgsdXNlQ2xhc3M6eWVlfSx7cHJvdmlkZTp0'@; put 'Uyx1c2VWYWx1ZToiTm9vcEFuaW1hdGlvbnMifSwuLi5ZZWVdO2xldCBaeGU9KCgpPT57Y2xhc3MgY3tzdGF0aWMgd2l0aENvbmZpZyhhKXtyZXR1cm57bmdNb2R1bGU6Yyxwcm92aWRlcnM6YS5kaXNhYmxlQW5pbWF0aW9ucz9XZWU6ZU59fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'YSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtwcm92aWRlcnM6ZU4saW1wb3J0czpbRUddfSksY30pKCksWXhlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtbm90LWZvdW5kIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1sxLCJjb250ZW50LWFyZWEiXV0sdGVtcGxhdGU6'@; put 'ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJkaXYiLDApKDEsInAiKSxOZSgyLCI0MDQgLSBOb3QgRm91bmQiKSx5ZSgpKCkpfX0pLGN9KSgpLEdlZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7fWRvd25sb2FkRmlsZShhLGQsaD0idHh0Iil7bGV0IGY9bmV3IEJsb2IoW2FdLHt0eXBl'@; put 'OiJ0ZXh0L3BsYWluIn0pO2lmKG5hdmlnYXRvci5hcHBWZXJzaW9uLnRvU3RyaW5nKCkuaW5kZXhPZigiLk5FVCIpPjApd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKGYsYCR7ZH0uJHtofWApO2Vsc2V7bGV0IF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO18uaHJlZj0iZGF0YTp0'@; put 'ZXh0L3BsYWluLCIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLF8uZG93bmxvYWQ9YCR7ZH0uJHtofWAsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChfKSxfLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChfKX19cmVhZEZpbGUoYSl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57'@; put 'bGV0IGY9bmV3IEZpbGVSZWFkZXI7Zi5vbmxvYWQ9KCk9PntmLnJlc3VsdCYmZChKU09OLnBhcnNlKGYucmVzdWx0LnRvU3RyaW5nKCkpKX0sZi5yZWFkQXNUZXh0KGEpfSl9Y2xlYXJVcGxvYWRJbnB1dChhKXthLnRhcmdldC52YWx1ZT0iIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7ZnVuY3Rpb24gV3hlKGMsbCl7MSZjJiYoVnIoMCksbWUoMSwic3BhbiIsMTkpLE5lKDIsIiBMb2FkaW5nLi4uICIpLHllKCks'@; put 'bWUoMywicCIpLE5lKDQsIkRlcGxveWluZy4uLiIpLHllKCksenIoKSl9ZnVuY3Rpb24gR3hlKGMsbCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsMzApfWZ1bmN0aW9uICR4ZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDMxKX1mdW5jdGlvbiBxeGUoYyxsKXsxJmMmJnF0KDAsImNsci1pY29u'@; put 'IiwzMCl9ZnVuY3Rpb24gS3hlKGMsbCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsMzEpfWZ1bmN0aW9uIFh4ZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMjIpLEplKDEscXhlLDEsMCwiY2xyLWljb24iLDIzKSxKZSgyLEt4ZSwxLDAsImNsci1pY29uIiwyNCksbWUoMywicCIpLE5lKDQsIkNy'@; put 'ZWF0ZSBkYXRhYmFzZSIpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLFJlKCJuZ0lmIixhLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpLENlKDEpLFJlKCJuZ0lmIiwhMT09PWEuYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YSl9fWZ1bmN0aW9uIEp4ZShjLGwpezEm'@; put 'YyYmcXQoMCwiY2xyLWljb24iLDMxKX1mdW5jdGlvbiBReGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJwIiwyMCksTmUoMiwiRG9uZSIpLHllKCkscXQoMywiaHIiLDIxKSxtZSg0LCJkaXYiLDIyKSxKZSg1LEd4ZSwxLDAsImNsci1pY29uIiwyMyksSmUoNiwkeGUs'@; put 'MSwwLCJjbHItaWNvbiIsMjQpLG1lKDcsInAiKSxOZSg4LCJEZXBsb3kgU0FTIEpvYnMiKSx5ZSgpKCksSmUoOSxYeGUsNSwyLCJkaXYiLDI1KSxxdCgxMCwiaHIiLDIxKSxtZSgxMSwiZGl2IiwyNikoMTIsImJ1dHRvbiIsMjcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSks'@; put 'anQoVmUoMikubmF2aWdhdGVUb0hvbWUoKSl9KSxKZSgxMyxKeGUsMSwwLCJjbHItaWNvbiIsMjQpLE5lKDE0LCIgTEFVTkNIIC8gQ09ORklHVVJFICIpLHllKCksbWUoMTUsImJ1dHRvbiIsMjgpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpO3JldHVybiBqdCho'@; put 'LmRvd25sb2FkRmlsZShoLm1ha2VEYXRhUmVzcG9uc2UsImNyZWF0ZS1kYXRhYmFzZS1sb2ciLCJ0eHQiKSl9KSxOZSgxNiwiIERvd25sb2FkIGxvZyAiKSx5ZSgpKCkscXQoMTcsImhyIiwyMSksbWUoMTgsImRpdiIsMjYpKDE5LCJidXR0b24iLDI5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7'@; put 'QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4gaC5hdXRvZGVwbG95aW5nPSExLGp0KGguYXV0b2RlcGxveURvbmU9ITEpfSksTmUoMjAsIiBDbG9zZSAiKSx5ZSgpLG1lKDIxLCJidXR0b24iLDI5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLm9wZW5TYXNS'@; put 'ZXF1ZXN0c01vZGFsKCkpfSksTmUoMjIsIiBTQVMgUmVxdWVzdHMgIikseWUoKSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpO0NlKDUpLFJlKCJuZ0lmIixhLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2spLENlKDEpLFJlKCJuZ0lmIiwhYS5hdXRvRGVwbG95U3RhdHVz'@; put 'LmRlcGxveVNlcnZpY2VQYWNrKSxDZSgzKSxSZSgibmdJZiIsbnVsbCE9PWEuYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YSksQ2UoNCksUmUoIm5nSWYiLCExPT09YS5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrfHwhMT09PWEuYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtl'@; put 'RGF0YSl9fWZ1bmN0aW9uIGVFZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMTYpKDEsImRpdiIsMTcpLEplKDIsV3hlLDUsMCwibmctY29udGFpbmVyIiwxOCksSmUoMyxReGUsMjMsNCwibmctY29udGFpbmVyIiwxOCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgyKSxSZSgibmdJ'@; put 'ZiIsIWEuYXV0b2RlcGxveURvbmUpLENlKDEpLFJlKCJuZ0lmIixhLmF1dG9kZXBsb3lEb25lKX19bGV0IHRFZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuZXZlbnRTZXJ2aWNlPWEsdGhpcy5kZXBsb3lTZXJ2aWNlPWQsdGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5s'@; put 'b2dnZXJTZXJ2aWNlPWYsdGhpcy5zYXNKc0NvbmZpZz1uZXcgcjEuU0FTanNDb25maWcsdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5vbk5hdmlnYXRlVG9Ib21lPW5ldyBFcix0aGlzLm1ha2VEYXRhUmVzcG9uc2U9IiIsdGhp'@; put 'cy5qc29uRmlsZT1udWxsLHRoaXMuYXV0b2RlcGxveWluZz0hMSx0aGlzLmF1dG9kZXBsb3lEb25lPSExLHRoaXMucmVjcmVhdGVEYXRhYmFzZU1vZGFsPSExLHRoaXMuaXNTdWJtaXR0aW5nSnNvbj0hMSx0aGlzLmlzSnNvblN1Ym1pdHRlZD0hMSx0aGlzLnJlY3JlYXRlRGF0YWJhc2U9ITEs'@; put 'dGhpcy5jcmVhdGVEYXRhYmFzZUxvYWRpbmc9ITEsdGhpcy5hdXRvRGVwbG95U3RhdHVzPXtkZXBsb3lTZXJ2aWNlUGFjazpudWxsLHJ1bk1ha2VEYXRhOm51bGx9fW5nT25Jbml0KCl7fWV4ZWN1dGVKc29uKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7YS5hdXRvZGVwbG95'@; put 'aW5nPSEwLGEuaXNTdWJtaXR0aW5nSnNvbj0hMDt0cnl7eWllbGQgYS5zYXNKcy5kZXBsb3lTZXJ2aWNlUGFjayhhLmpzb25GaWxlLGEuZGNBZGFwdGVyU2V0dGluZ3M/LmFwcExvYyx2b2lkIDAsdm9pZCAwLCEwKSxhLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2s9ITAsYS5p'@; put 'c0pzb25TdWJtaXR0ZWQ9ITB9Y2F0Y2goZCl7bGV0IGg9IiI7cmV0dXJuIGg9InN0cmluZyIhPXR5cGVvZiBkLm1lc3NhZ2U/SlNPTi5zdHJpbmdpZnkoZCkucmVwbGFjZSgvXFwvZ20sIiIpOmQubWVzc2FnZSxhLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2s9ITEsYS5ldmVu'@; put 'dFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRGVwbG95IGVycm9yIixgRXhjZXB0aW9uOiBcbiAkeyIiIT09aD9oOmR9YCksYS5hdXRvZGVwbG95aW5nPSExLHZvaWQoYS5hdXRvZGVwbG95RG9uZT0hMSl9YS5pc1N1Ym1pdHRpbmdKc29uPSExLGEucmVjcmVhdGVEYXRhYmFzZT9hLmNyZWF0ZURh'@; put 'dGFiYXNlKCk6YS5hdXRvZGVwbG95RG9uZT0hMH0pKCl9Y3JlYXRlRGF0YWJhc2UoKXt0aGlzLnNhc0pzLnJlcXVlc3QoInNlcnZpY2VzL2FkbWluL21ha2VkYXRhIix7ZnJvbWpzOlt7QURNSU46dGhpcy5zZWxlY3RlZEFkbWluR3JvdXAsRENQQVRIOnRoaXMuZGNQYXRofV19LHt1c2VDb21w'@; put 'dXRlQXBpOiExLGNvbnRleHROYW1lOnRoaXMuc2FzSnNDb25maWcuY29udGV4dE5hbWUsZGVidWc6ITB9LCgpPT57dGhpcy5zYXNTZXJ2aWNlLnNob3VsZExvZ2luLm5leHQoITApfSkudGhlbihoPT57dGhpcy5hdXRvZGVwbG95RG9uZT0hMDt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUpT'@; put 'T04uc3RyaW5naWZ5KGgpfWNhdGNoe3RoaXMubWFrZURhdGFSZXNwb25zZT1ofXRoaXMuYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YT0hIShoLnJlc3VsdCYmaC5yZXN1bHQubGVuZ3RoPjApfSkuY2F0Y2goaD0+e3RoaXMuYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YT0hMSx0aGlz'@; put 'LmF1dG9kZXBsb3lEb25lPSEwO3RyeXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9SlNPTi5zdHJpbmdpZnkoaCl9Y2F0Y2h7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPWh9fSl9ZG93bmxvYWRGaWxlKGEsZCxoPSJ0eHQiKXt0aGlzLmRlcGxveVNlcnZpY2UuZG93bmxvYWRGaWxlKGEsZCxoKX1vbkpz'@; put 'b25GaWxlQ2hhbmdlKGEpe3ZhciBkPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2xldCBoPWEudGFyZ2V0LmZpbGVzWzBdO2QuanNvbkZpbGU9eWllbGQgZC5kZXBsb3lTZXJ2aWNlLnJlYWRGaWxlKGgpfSkoKX1yZWNyZWF0ZURhdGFiYXNlQ2xpY2tlZChhKXshMD09PWEudGFyZ2V0LmNo'@; put 'ZWNrZWQmJih0aGlzLnJlY3JlYXRlRGF0YWJhc2VNb2RhbD0hMCl9Y2xlYXJVcGxvYWRJbnB1dChhKXt0aGlzLmRlcGxveVNlcnZpY2UuY2xlYXJVcGxvYWRJbnB1dChhKX1vcGVuU2FzUmVxdWVzdHNNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9wZW5SZXF1ZXN0c01vZGFsKCl9bmF2aWdh'@; put 'dGVUb0hvbWUoKXt0aGlzLm9uTmF2aWdhdGVUb0hvbWUuZW1pdCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dCh2bCksdHQoR2VlKSx0dChvYSksdHQodzApKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWF1dG9t'@; put 'YXRpYy1kZXBsb3kiXV0saW5wdXRzOntzYXNKczoic2FzSnMiLHNhc0pzQ29uZmlnOiJzYXNKc0NvbmZpZyIsZGNBZGFwdGVyU2V0dGluZ3M6ImRjQWRhcHRlclNldHRpbmdzIixhcHBMb2M6ImFwcExvYyIsZGNQYXRoOiJkY1BhdGgiLHNlbGVjdGVkQWRtaW5Hcm91cDoic2VsZWN0ZWRBZG1p'@; put 'bkdyb3VwIn0sb3V0cHV0czp7b25OYXZpZ2F0ZVRvSG9tZToib25OYXZpZ2F0ZVRvSG9tZSJ9LGRlY2xzOjQ2LHZhcnM6MTAsY29uc3RzOltbImNsYXNzIiwiYXV0by1kZXBsb3kiLDQsIm5nSWYiXSxbMSwidGV4dC1jZW50ZXIiLCJteS0xNSJdLFsiZm9yIiwiZGNsb2MiLDEsIm10LTIwIiwi'@; put 'Y2xyLWNvbnRyb2wtbGFiZWwiXSxbMSwibWItMTAiLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxbMSwibXQtMCJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLCJjaGVja2VkIiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5n'@; put 'ZSIsImNsaWNrIl0sWzEsImJ0bi1hdXRvZGVwbG95IiwiYnRuIiwiYnRuLXByaW1hcnkiLCJkLWlubGluZS1ibG9jayIsIm1yLTEwIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWzEsImJ0bi1hdXRvZGVwbG95IiwiYnRuIiwiYnRuLXByaW1hcnkiLCJkLWlubGluZS1ibG9jayIsIm1yLTEwIiwz'@; put 'LCJjbGljayJdLFsidHlwZSIsImZpbGUiLCJoaWRkZW4iLCIiLDMsImNsaWNrIiwiY2hhbmdlIl0sWyJ1cGxvYWRKc29uQXV0byIsIiJdLFszLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFs'@; put 'LWJvZHkiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbMSwiYXV0by1kZXBsb3kiXSxbMSwic3Bpbm5lci1ib3giXSxbNCwibmdJZiJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1tZCJdLFsxLCJt'@; put 'LTAiLCJhbGlnbi1zZWxmLXN0YXJ0Il0sWzEsInctMTAwIl0sWzEsImRlcGxveS1zdGF0dXMtcm93Il0sWyJjbGFzcyIsImRlcGxveS1zdWNjZXNzIiwic2hhcGUiLCJzdWNjZXNzLXN0YW5kYXJkIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRlcGxveS1lcnJvciIsInNoYXBlIiwidGltZXMtY2ly'@; put 'Y2xlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRlcGxveS1zdGF0dXMtcm93Iiw0LCJuZ0lmIl0sWzEsImJ1dHRvbnMiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtdC0xNSIsIm1yLTAiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5LW91dGxpbmUiLCJtdC0xNSIsIm1yLTAiLDMs'@; put 'ImNsaWNrIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5LW91dGxpbmUiLCJtdC0xNSIsIm1yLTAiLCJhbGlnbi1zZWxmLWVuZCIsMywiY2xpY2siXSxbInNoYXBlIiwic3VjY2Vzcy1zdGFuZGFyZCIsMSwiZGVwbG95LXN1Y2Nlc3MiXSxbInNoYXBlIiwidGltZXMtY2lyY2xlIiwxLCJkZXBsb3kt'@; put 'ZXJyb3IiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXtpZigxJmEpe2NvbnN0IGg9Vm4oKTtKZSgwLGVFZSw0LDIsImRpdiIsMCksbWUoMSwiaDQiLDEpLE5lKDIsIlZpeWEgRGVwbG95IikseWUoKSxxdCgzLCJociIpLG1lKDQsImxhYmVsIiwyKSxOZSg1LCJBcHAgTG9jIikseWUoKSxtZSg2'@; put 'LCJkaXYiLDMpKDcsImRpdiIsNCkoOCwicCIsNSksTmUoOSkseWUoKSgpKCksbWUoMTAsImxhYmVsIiwyKSxOZSgxMSwiREMgTG9jIikseWUoKSxtZSgxMiwiZGl2IiwzKSgxMywiZGl2Iiw0KSgxNCwicCIsNSksTmUoMTUpLHllKCkoKSgpLG1lKDE2LCJsYWJlbCIsMiksTmUoMTcsIlNBUyBB'@; put 'ZG1pbiBncm91cCIpLHllKCksbWUoMTgsImRpdiIsMykoMTksImRpdiIsNCkoMjAsInAiLDUpLE5lKDIxKSx5ZSgpKCkoKSxtZSgyMiwiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSgyMywiaW5wdXQiLDYpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihfKXtyZXR1cm4gZC5yZWNyZWF0ZURh'@; put 'dGFiYXNlPV99KSgiY2xpY2siLGZ1bmN0aW9uKF8pe3JldHVybiBkLnJlY3JlYXRlRGF0YWJhc2VDbGlja2VkKF8pfSkseWUoKSxtZSgyNCwibGFiZWwiKSxOZSgyNSwiUmVjcmVhdGUgZGF0YWJhc2UiKSx5ZSgpKCkscXQoMjYsImhyIiksbWUoMjcsImJ1dHRvbiIsNykseHQoImNsaWNrIixm'@; put 'dW5jdGlvbigpe3JldHVybiBkLmV4ZWN1dGVKc29uKCl9KSxOZSgyOCkseWUoKSxtZSgyOSwiYnV0dG9uIiw4KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGgpLGp0KCRpKDMyKS5jbGljaygpKX0pLE5lKDMwLCIgVXBsb2FkIGRpZmZlcmVudCBmaWxlIHRvIGRlcGxveVxuIiks'@; put 'eWUoKSxtZSgzMSwiaW5wdXQiLDksMTApLHh0KCJjbGljayIsZnVuY3Rpb24oXyl7cmV0dXJuIGQuY2xlYXJVcGxvYWRJbnB1dChfKX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKF8pe3JldHVybiBkLm9uSnNvbkZpbGVDaGFuZ2UoXyl9KSx5ZSgpLG1lKDMzLCJjbHItbW9kYWwiLDExKSx4dCgiY2xy'@; put 'TW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihfKXtyZXR1cm4gZC5yZWNyZWF0ZURhdGFiYXNlTW9kYWw9X30pLG1lKDM0LCJoMyIsMTIpLE5lKDM1LCJXYXJuaW5nIikseWUoKSxtZSgzNiwiZGl2IiwxMyksTmUoMzcsIiBUaGlzIGFjdGlvbiB3aWxsIHJlY3JlYXRlIHRoZSBkYXRhYmFzZSAo'@; put 'aWYgaXQgZXhpc3RzKS4gRm9yIGFuIGluaXRpYWwgZGVwbG95bWVudCwgdGhpcyBpcyBleHBlY3RlZC4gSWYgdGhpcyBpcyBhIHJlLWRlcGxveW1lbnQsIHlvdSB3aWxsIGxvc2UgYW55IGV4aXN0aW5nIHRhYmxlcyBpbiAiKSxtZSgzOCwic3Ryb25nIiksTmUoMzkpLHllKCksTmUoNDAsIi4g'@; put 'IikseWUoKSxtZSg0MSwiZGl2IiwxNCkoNDIsImJ1dHRvbiIsMTUpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5yZWNyZWF0ZURhdGFiYXNlTW9kYWw9ITEsZC5yZWNyZWF0ZURhdGFiYXNlPSExfSksTmUoNDMsIiBDYW5jZWwgIikseWUoKSxtZSg0NCwiYnV0dG9uIiwxNSkseHQo'@; put 'ImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLnJlY3JlYXRlRGF0YWJhc2VNb2RhbD0hMSxkLnJlY3JlYXRlRGF0YWJhc2U9ITB9KSxOZSg0NSwiIE9rICIpLHllKCkoKSgpfTImYSYmKFJlKCJuZ0lmIixkLmF1dG9kZXBsb3lpbmcpLENlKDkpLG9yKGQuYXBwTG9jKSxDZSg2KSxvcihkLmRj'@; put 'UGF0aCksQ2UoNiksb3IoZC5zZWxlY3RlZEFkbWluR3JvdXApLENlKDIpLFJlKCJuZ01vZGVsIixkLnJlY3JlYXRlRGF0YWJhc2UpLENlKDQpLFJlKCJkaXNhYmxlZCIsIWQuanNvbkZpbGUpLENlKDEpLGdyKCIgRGVwbG95ICIsZC5qc29uRmlsZT8iIjoiKGpzb24gZmlsZSBpcyBub3QgYXZh'@; put 'aWxhYmxlKSIsIlxuIiksQ2UoNSksUmUoImNsck1vZGFsT3BlbiIsZC5yZWNyZWF0ZURhdGFiYXNlTW9kYWwpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksQ2UoNiksb3IoZC5kY1BhdGgpKX0sZGVwZW5kZW5jaWVzOltaaSxTMCxCcyxPcyxrYSxvdSxzdSxVcyxEMCxUMF0sc3R5bGVzOlsiLmF1'@; put 'dG8tZGVwbG95W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjQpO3otaW5kZXg6MTAwfS5zcGlubmVyLWJveFtfbmdjb250'@; put 'ZW50LSVDT01QJV17d2lkdGg6NDAwcHg7cGFkZGluZzoyMHB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6I2ZmZjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JveC1zaGFkb3c6MXB4IDFw'@; put 'eCA4cHggIzAwMDAwMDgyfS5zcGlubmVyLWJveFtfbmdjb250ZW50LSVDT01QJV0gICAuYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3dpZHRoOjEwMCV9LmRlcGxveS1zdGF0dXMtcm93W19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLXNlbGY6ZmxleC1zdGFydH0uZGVwbG95LXN0YXR1cy1yb3dbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjAgMCAwIDEwcHh9LmRlcGxveS1zdWNjZXNzW19uZ2NvbnRlbnQt'@; put 'JUNPTVAlXXtjb2xvcjojNmVjZjQ0fS5kZXBsb3ktZXJyb3JbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlNzRjM2N9LmRlcGxveS11bmRldGVybWluYXRlZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2NhY2FjYX1ocltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Ym9yZGVyLWJv'@; put 'dHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMjcwNTg4MjM1Myl9Il19KSxjfSkoKTtmdW5jdGlvbiBuRWUoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDYpKDEsInAiLDcpLE5lKDIsIlBsZWFzZSBsb2cgaW4gZmlyc3QiKSx5ZSgpLG1lKDMsImxhYmVsIiw4KSxOZSg0LCJVc2VybmFtZSIpLHll'@; put 'KCksbWUoNSwiZGl2Iiw5KSg2LCJkaXYiLDEwKSxxdCg3LCJpbnB1dCIsMTEpLHllKCkoKSxtZSg4LCJsYWJlbCIsMTIpLE5lKDksIlBhc3N3b3JkIikseWUoKSxtZSgxMCwiZGl2Iiw5KSgxMSwiZGl2IiwxMCkscXQoMTIsImlucHV0IiwxMykseWUoKSgpLG1lKDEzLCJidXR0b24iLDE0KSxO'@; put 'ZSgxNCwiTG9nIGluIikseWUoKSgpKX1mdW5jdGlvbiByRWUoYyxsKXtpZigxJmMmJihtZSgwLCJvcHRpb24iLDM2KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7UmUoInZhbHVlIixhLmlkKSxDZSgxKSxncigiICIsYS5uYW1lLCIgIil9fWZ1bmN0aW9uIGlFZShjLGwp'@; put 'e2lmKDEmYyYmKG1lKDAsInNwYW4iKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7Q2UoMSksZ3IoIiggIixhLmF0dHJpYnV0ZXMuc3lzVXNlcklkLCIgKSIpfX1mdW5jdGlvbiBvRWUoYyxsKXtpZigxJmMmJihtZSgwLCJvcHRpb24iLDM2KSxOZSgxKSxKZSgyLGlF'@; put 'ZSwyLDEsInNwYW4iLDUpLGJhKDMsImpzb24iKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7UmUoInZhbHVlIixhLm5hbWUpLENlKDEpLGdyKCIgIixhLm5hbWUsIiAiKSxDZSgxKSxSZSgibmdJZiIsInt9IiE9WmwoMywzLGEuYXR0cmlidXRlcykpfX1mdW5jdGlvbiBzRWUoYyxs'@; put 'KXsxJmMmJihtZSgwLCJzcGFuIiksTmUoMSwiSlNPTiBTdWJtaXR0ZWQgU3VjY2Vzc2Z1bGx5IikseWUoKSl9ZnVuY3Rpb24gYUVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiwzNykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5k'@; put 'b3dubG9hZFNhc1ByZWNvZGVGaWxlKCkpfSkscXQoMSwiY2xyLWljb24iLDM4KSx5ZSgpfX1mdW5jdGlvbiBsRWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJwIiwzOSksTmUoMiwiRmlsZSBleGVjdXRlIGNvbXBsZXRlZCIpLHllKCkscXQoMywiaHIiKSxtZSg0LCJk'@; put 'aXYiKSg1LCJidXR0b24iLDQwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4ganQoaC5kb3dubG9hZEZpbGUoaC5qb2JMb2csImV4ZWN1dGUtc2NyaXB0LWxvZyIsInR4dCIpKX0pLE5lKDYsIiBEb3dubG9hZCBsb2cgIikseWUoKSgpLHpyKCl9fWZ1'@; put 'bmN0aW9uIGNFZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsNDQpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgxKSxncigiICIsYS5tYWtlRGF0YVJlc3BvbnNlLCIgIil9fWZ1bmN0aW9uIHVFZShjLGwpezEmYyYmKFZyKDApLG1lKDEsInNwYW4iLDI1KSxOZSgyLCIgVmFs'@; put 'aWRhdGluZyBkZXBsb3kuLi4gIikseWUoKSxtZSgzLCJzcGFuIiksTmUoNCwiIFZhbGlkYXRpbmcgZGVwbG95Li4uICIpLHllKCksenIoKSl9ZnVuY3Rpb24gZEVlKGMsbCl7MSZjJiYoVnIoMCkscXQoMSwiY2xyLWljb24iLDQ2KSxtZSgyLCJzcGFuIiksTmUoMywiIFZhbGlkYXRpb24gZmFp'@; put 'bGVkICIpLHllKCksenIoKSl9ZnVuY3Rpb24gaEVlKGMsbCl7MSZjJiYoVnIoMCkscXQoMSwiY2xyLWljb24iLDQ3KSxtZSgyLCJzcGFuIiksTmUoMywiIFZhbGlkYXRpb24gc3VjY2VlZGVkICIpLHllKCksenIoKSl9ZnVuY3Rpb24gZkVlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw0NSks'@; put 'SmUoMSx1RWUsNSwwLCJuZy1jb250YWluZXIiLDUpLEplKDIsZEVlLDQsMCwibmctY29udGFpbmVyIiw1KSxKZSgzLGhFZSw0LDAsIm5nLWNvbnRhaW5lciIsNSkseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLFJlKCJuZ0lmIixhLmlzVmFsaWRhdGluZyksQ2UoMSksUmUoIm5nSWYi'@; put 'LCFhLmlzVmFsaWRhdGluZyYmImVycm9yIj09PWEudmFsaWRhdGlvblN0YXRlKSxDZSgxKSxSZSgibmdJZiIsIWEuaXNWYWxpZGF0aW5nJiYic3VjY2VzcyI9PT1hLnZhbGlkYXRpb25TdGF0ZSl9fWZ1bmN0aW9uIHBFZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsInAi'@; put 'LDM5KSxOZSgyLCJDcmVhdGUgRGF0YWJhc2UgQ29tcGxldGVkIikseWUoKSxxdCgzLCJociIpLEplKDQsY0VlLDIsMSwiZGl2Iiw0MSksbWUoNSwiYnV0dG9uIiw0MikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5uYXZpZ2F0ZVRvSG9tZSgpKX0pLE5lKDYs'@; put 'IiBMZXQncyBnZXQgc3RhcnRlZCAiKSx5ZSgpLG1lKDcsImJ1dHRvbiIsNDIpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpO3JldHVybiBqdChoLmRvd25sb2FkRmlsZShoLm1ha2VEYXRhUmVzcG9uc2UsImNyZWF0ZS1kYXRhYmFzZS1sb2ciLCJ0eHQiKSl9KSxO'@; put 'ZSg4LCIgRG93bmxvYWQgbG9nICIpLHllKCksbWUoOSwiYnV0dG9uIiw0MikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS52YWxpZGF0ZURlcGxveSgpKX0pLE5lKDEwLCIgVmFsaWRhdGUgIikseWUoKSxKZSgxMSxmRWUsNCwzLCJkaXYiLDQzKSx6cigpfWlm'@; put 'KDImYyl7Y29uc3QgYT1WZSgyKTtDZSg0KSxSZSgibmdJZiIsYS5tYWtlRGF0YVJlc3BvbnNlLmxlbmd0aD4wKSxDZSg3KSxSZSgibmdJZiIsIm5vbmUiIT09YS52YWxpZGF0aW9uU3RhdGV8fGEuaXNWYWxpZGF0aW5nKX19Y29uc3QgdE49ZnVuY3Rpb24oKXtyZXR1cm57c3RhbmRhbG9uZToh'@; put 'MH19O2Z1bmN0aW9uIGdFZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsImZvcm0iKSgyLCJkaXYiLDE1KSgzLCJsYWJlbCIsMTYpLE5lKDQsIkFkbWluIGdyb3VwIikseWUoKSxtZSg1LCJkaXYiLDE3KSg2LCJkaXYiLDE4KSg3LCJzZWxlY3QiLDE5KSx4dCgibmdNb2Rl'@; put 'bENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuc2VsZWN0ZWRBZG1pbkdyb3VwPWgpfSksSmUoOCxyRWUsMiwyLCJvcHRpb24iLDIwKSx5ZSgpKCkoKSgpLG1lKDksImRpdiIsMTUpKDEwLCJkaXYiKSgxMSwibGFiZWwiLDE2KSxOZSgxMiwiQ29udGV4dCIpLHllKCks'@; put 'bWUoMTMsImRpdiIsMTcpKDE0LCJkaXYiLDE4KSgxNSwic2VsZWN0IiwyMSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLnNlbGVjdGVkQ29udGV4dD1oKX0pLEplKDE2LG9FZSw0LDUsIm9wdGlvbiIsMjApLHllKCkoKSgpLG1lKDE3LCJidXR0'@; put 'b24iLDIyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZXhlY3V0YWJsZUNvbnRleHQoKSl9KSxxdCgxOCwiY2xyLWljb24iLDIzKSx5ZSgpKCksbWUoMTksImRpdiIsMjQpKDIwLCJzcGFuIiwyNSksTmUoMjEsIiBMb2FkaW5nIGNvbnRleHRzLi4uICIpLHll'@; put 'KCksbWUoMjIsInNwYW4iKSxOZSgyMywiIExvYWRpbmcgY29udGV4dHMuLi4gIikseWUoKSgpLG1lKDI0LCJsYWJlbCIsMjYpLE5lKDI1LCJEQyBMb2MiKSx5ZSgpLG1lKDI2LCJkaXYiLDkpKDI3LCJkaXYiLDEwKSgyOCwiaW5wdXQiLDI3KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24o'@; put 'aCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZGNQYXRoPWgpfSkoImZvY3Vzb3V0IixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLnNhdmVEY1BhdGgoKSl9KSx5ZSgpKCkoKSxtZSgyOSwicCIsMjgpLE5lKDMwLCIgU2VsZWN0IEpTT04gZmlsZSB0byB1cGxvYWQgKGpzb24gYnVpbGQg'@; put 'ZmlsZSBwcmVsb2FkZWQpOiAiKSx5ZSgpLG1lKDMxLCJkaXYiLDI5KSgzMiwiaW5wdXQiLDMwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLmNsZWFyVXBsb2FkSW5wdXQoaCkpfSkoImNoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCku'@; put 'b25Kc29uRmlsZUNoYW5nZShoKSl9KSx5ZSgpKCksbWUoMzMsImRpdiIsMzEpKDM0LCJidXR0b24iLDMyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZXhlY3V0ZUpzb24oKSl9KSxOZSgzNSwiIFNVQk1JVCBKU09OICIpLHllKCksSmUoMzYsc0VlLDIsMCwi'@; put 'c3BhbiIsNSkseWUoKSxtZSgzNywicCIsMjgpLE5lKDM4LCJTZWxlY3QgU0FTIGZpbGUgdG8gdXBsb2FkOiIpLHllKCksbWUoMzksImRpdiIsMjkpKDQwLCJpbnB1dCIsMzApLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuY2xlYXJVcGxvYWRJbnB1dChoKSl9'@; put 'KSgiY2hhbmdlIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCk7cmV0dXJuIGYub25TYXNGaWxlQ2hhbmdlKGgpLGp0KGYuZG93bmxvYWRGaWxlQnRuPSEwKX0pLHllKCksSmUoNDEsYUVlLDIsMCwiYnV0dG9uIiwzMykseWUoKSxtZSg0MiwiZGl2IiwzMSkoNDMsImJ1dHRvbiIsMzQp'@; put 'LHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5leGVjdXRlU0FTKCkpfSksTmUoNDQsIiBTVUJNSVQgIikseWUoKSgpKCksSmUoNDUsbEVlLDcsMCwibmctY29udGFpbmVyIiw1KSxtZSg0NiwiYnV0dG9uIiwzNSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVy'@; put 'biBCdChhKSxqdChWZSgpLmNyZWF0ZURhdGFiYXNlKCkpfSksTmUoNDcsIiBDcmVhdGUgRGF0YWJhc2UgIikseWUoKSxKZSg0OCxwRWUsMTIsMiwibmctY29udGFpbmVyIiw1KSx5ZSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoNyksUmUoIm5nTW9kZWwiLGEuc2VsZWN0ZWRBZG1p'@; put 'bkdyb3VwKSgibmdNb2RlbE9wdGlvbnMiLCRzKDE5LHROKSksQ2UoMSksUmUoIm5nRm9yT2YiLGEuYWRtaW5Hcm91cHMpLENlKDIpLGRyKCJoaWRkZW4iLGEuY29udGV4dHNMb2FkaW5nKSxDZSg1KSxSZSgibmdNb2RlbCIsYS5zZWxlY3RlZENvbnRleHQpKCJuZ01vZGVsT3B0aW9ucyIsJHMo'@; put 'MjAsdE4pKSxDZSgxKSxSZSgibmdGb3JPZiIsYS5hbGxDb250ZXh0cyksQ2UoMyksZHIoImhpZGRlbiIsIWEuY29udGV4dHNMb2FkaW5nKSxDZSg5KSxSZSgibmdNb2RlbCIsYS5kY1BhdGgpKCJuZ01vZGVsT3B0aW9ucyIsJHMoMjEsdE4pKSxDZSg2KSxSZSgiY2xyTG9hZGluZyIsYS5pc1N1'@; put 'Ym1pdHRpbmdKc29uKSxDZSgyKSxSZSgibmdJZiIsYS5pc0pzb25TdWJtaXR0ZWQpLENlKDUpLFJlKCJuZ0lmIixhLmRvd25sb2FkRmlsZUJ0biksQ2UoMiksUmUoImNsckxvYWRpbmciLGEuZXhlY3V0aW5nU2NyaXB0KSxDZSgyKSxSZSgibmdJZiIsYS5qb2JMb2cubGVuZ3RoPjApLENlKDEp'@; put 'LFJlKCJjbHJMb2FkaW5nIixhLmNyZWF0ZURhdGFiYXNlTG9hZGluZyksQ2UoMiksUmUoIm5nSWYiLGEubWFrZURhdGFSZXNwb25zZS5sZW5ndGg+MCl9fWxldCBtRWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLnNhc1NlcnZpY2U9YSx0aGlzLmV2ZW50U2Vydmlj'@; put 'ZT1kLHRoaXMubG9nZ2VyU2VydmljZT1oLHRoaXMuZGVwbG95U2VydmljZT1mLHRoaXMuc2FzSnNDb25maWc9bmV3IHIxLlNBU2pzQ29uZmlnLHRoaXMub25OYXZpZ2F0ZVRvSG9tZT1uZXcgRXIsdGhpcy5uZWVkc0xvZ2luPSExLHRoaXMuYWRtaW5Hcm91cHM9W10sdGhpcy5hbGxDb250ZXh0'@; put 'cz1bXSx0aGlzLmFwcExvYz0iIix0aGlzLmRjUGF0aD0iIix0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cD0iIix0aGlzLnNlbGVjdGVkQ29udGV4dD0iIix0aGlzLmpvYkxvZz0iIix0aGlzLm1ha2VEYXRhUmVzcG9uc2U9IiIsdGhpcy5saW5lc09mQ29kZT1bXSx0aGlzLmZpbGVOYW1lPSIiLHRo'@; put 'aXMucHJlbG9hZGVkRmlsZT0hMCx0aGlzLmV4ZWN1dGVTQVNFbmFibGVkPSExLHRoaXMuY29udGV4dHNMb2FkaW5nPSExLHRoaXMuY3JlYXRlRGF0YWJhc2VMb2FkaW5nPSExLHRoaXMuZXhlY3V0aW5nU2NyaXB0PSExLHRoaXMuZG93bmxvYWRGaWxlQnRuPSExLHRoaXMuaXNWYWxpZGF0aW5n'@; put 'PSExLHRoaXMuanNvbkZpbGU9bnVsbCx0aGlzLmlzU3VibWl0dGluZ0pzb249ITEsdGhpcy5pc0pzb25TdWJtaXR0ZWQ9ITEsdGhpcy52YWxpZGF0aW9uU3RhdGU9Im5vbmUifW5nT25Jbml0KCl7fWV4ZWN1dGFibGVDb250ZXh0KCl7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe30pKCl9Y2xlYXJV'@; put 'cGxvYWRJbnB1dChhKXt0aGlzLmRlcGxveVNlcnZpY2UuY2xlYXJVcGxvYWRJbnB1dChhKX1vblNhc0ZpbGVDaGFuZ2UoYSl7dGhpcy5wcmVsb2FkZWRGaWxlPSExO2xldCBkPWEudGFyZ2V0LmZpbGVzWzBdO3RoaXMuZmlsZU5hbWU9ZC5uYW1lO2xldCBoPW5ldyBGaWxlUmVhZGVyO2gub25s'@; put 'b2FkPSgpPT57aC5yZXN1bHQmJih0aGlzLmxpbmVzT2ZDb2RlPWgucmVzdWx0LnNwbGl0KCJcbiIpLHRoaXMubGluZXNPZkNvZGU9dGhpcy5saW5lc09mQ29kZS5maWx0ZXIoZj0+IiIhPT1mJiZudWxsIT09ZiksdGhpcy5leGVjdXRlU0FTRW5hYmxlZD0hMCx0aGlzLmFkZFByZWNvZGVMaW5l'@; put 'cygpKX0saC5yZWFkQXNUZXh0KGQpfW9uSnNvbkZpbGVDaGFuZ2UoYSl7dmFyIGQ9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7bGV0IGg9YS50YXJnZXQuZmlsZXNbMF07ZC5qc29uRmlsZT15aWVsZCBkLmRlcGxveVNlcnZpY2UucmVhZEZpbGUoaCl9KSgpfWFkZFByZWNvZGVMaW5lcygp'@; put 'e3RoaXMubGluZXNPZkNvZGUudW5zaGlmdChgJWxldCBjb250ZXh0PSR7dGhpcy5zZWxlY3RlZENvbnRleHR9O2AsYCVsZXQgYXBwTG9jPSR7dGhpcy5hcHBMb2N9O2AsYCVsZXQgYWRtaW49JHt0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cH07YCxgJWxldCBkY3BhdGg9JHt0aGlzLmRjUGF0aH07'@; put 'YCl9ZG93bmxvYWRTYXNQcmVjb2RlRmlsZSgpe2xldCBhPXRoaXMubGluZXNPZkNvZGUuam9pbigiXG4iKSxkPXRoaXMuZmlsZU5hbWUuc3BsaXQoIi4iKVswXTt0aGlzLmRvd25sb2FkRmlsZShhLGQsInNhcyIpfWRvd25sb2FkRmlsZShhLGQsaD0idHh0Iil7dGhpcy5kZXBsb3lTZXJ2aWNl'@; put 'LmRvd25sb2FkRmlsZShhLGQsaCl9c2F2ZURjUGF0aCgpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJkZXBsb3lfZGNfbG9jIix0aGlzLmRjUGF0aCl9ZXhlY3V0ZUpzb24oKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXthLmlzU3VibWl0dGluZ0pzb249ITA7dHJ5e3lpZWxkIGEu'@; put 'c2FzSnMuZGVwbG95U2VydmljZVBhY2soYS5qc29uRmlsZSxhLmRjQWRhcHRlclNldHRpbmdzPy5hcHBMb2N8fCIiLHZvaWQgMCx2b2lkIDAsITApLGEuaXNKc29uU3VibWl0dGVkPSEwfWNhdGNoKGQpe2xldCBoPSIiO3JldHVybiBoPSJzdHJpbmciIT10eXBlb2YgZC5tZXNzYWdlP0pTT04u'@; put 'c3RyaW5naWZ5KGQpLnJlcGxhY2UoL1xcL2dtLCIiKTpkLm1lc3NhZ2Usdm9pZCBhLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJEZXBsb3kgZXJyb3IiLGBFeGNlcHRpb246IFxuICR7IiIhPT1oP2g6ZH1gKX1hLmlzU3VibWl0dGluZ0pzb249ITF9KSgpfWV4ZWN1dGVTQVMoKXt2YXIg'@; put 'YT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXthLmV4ZWN1dGluZ1NjcmlwdD0hMCxhLmpvYkxvZz0iIixhLm1ha2VEYXRhUmVzcG9uc2U9IiI7dHJ5e2xldCBkPXlpZWxkIGEuc2FzSnMuZXhlY3V0ZVNjcmlwdCh7ZmlsZU5hbWU6YS5maWxlTmFtZSxsaW5lc09mQ29kZTphLmxpbmVzT2ZD'@; put 'b2RlLGNvbnRleHROYW1lOmEuc2VsZWN0ZWRDb250ZXh0fSk7YS5sb2dnZXJTZXJ2aWNlLmxvZyhkKSwic3RyaW5nIj09dHlwZW9mIGQubG9nJiYoZC5sb2c9SlNPTi5wYXJzZShkLmxvZykpLCJlcnJvciI9PT1kLmpvYlN0YXR1cz9hbGVydCgiRXJyb3IhIik6YS5qb2JMb2c9ZC5sb2cuaXRl'@; put 'bXM/ZC5sb2cuaXRlbXMubWFwKGg9PmgubGluZSkuam9pbigiXG4iKTpKU09OLnN0cmluZ2lmeShkLmxvZyksYS5leGVjdXRpbmdTY3JpcHQ9ITF9Y2F0Y2h7YS5leGVjdXRpbmdTY3JpcHQ9ITF9fSkoKX1jcmVhdGVEYXRhYmFzZShhPSEwKXtpZihhKXtsZXQgZj10aGlzLnNhc1NlcnZpY2Uu'@; put 'Z2V0U2FzanNDb25maWcoKS5zZXJ2ZXJVcmwrIi9TQVNKb2JFeGVjdXRpb24vP19wcm9ncmFtPSIrdGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz8uYXBwTG9jfHwiL2FkbWluL21ha2VkYXRhJkFETUlOPSIrdGhpcy5zZWxlY3RlZEFkbWluR3JvdXArIiZEQ1BBVEg9Iit0aGlzLmRjUGF0aCsiJl9k'@; put 'ZWJ1Zz0xMzEiO3dpbmRvdy5vcGVuKGYsIl9ibGFuayIpfWVsc2UgdGhpcy5jcmVhdGVEYXRhYmFzZUxvYWRpbmc9ITAsdGhpcy5zYXNKcy5yZXF1ZXN0KCJzZXJ2aWNlcy9hZG1pbi9tYWtlZGF0YSIse2Zyb21qczpbe0FETUlOOnRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwLERDUEFUSDp0aGlz'@; put 'LmRjUGF0aH1dfSx7dXNlQ29tcHV0ZUFwaTohMSxjb250ZXh0TmFtZTp0aGlzLnNhc0pzQ29uZmlnLmNvbnRleHROYW1lLGRlYnVnOiEwfSwoKT0+e3RoaXMuc2FzU2VydmljZS5zaG91bGRMb2dpbi5uZXh0KCEwKX0pLnRoZW4oZj0+e3RyeXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9SlNPTi5z'@; put 'dHJpbmdpZnkoZil9Y2F0Y2h7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPWZ9dGhpcy5jcmVhdGVEYXRhYmFzZUxvYWRpbmc9ITF9KS5jYXRjaChmPT57dGhpcy5jcmVhdGVEYXRhYmFzZUxvYWRpbmc9ITE7dHJ5e3RoaXMubWFrZURhdGFSZXNwb25zZT1KU09OLnN0cmluZ2lmeShmKX1jYXRjaHt0'@; put 'aGlzLm1ha2VEYXRhUmVzcG9uc2U9Zn19KX1uYXZpZ2F0ZVRvSG9tZSgpe3RoaXMub25OYXZpZ2F0ZVRvSG9tZS5lbWl0KCl9dmFsaWRhdGVEZXBsb3koKXt0aGlzLmlzVmFsaWRhdGluZz0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3N0YXJ0dXBzZXJ2aWNlIixudWxsKS50'@; put 'aGVuKGE9Pnt0aGlzLmxvZ2dlclNlcnZpY2UubG9nKGEpLHRoaXMudmFsaWRhdGlvblN0YXRlPWEuc2FzbGlicz8ic3VjY2VzcyI6ImVycm9yIix0aGlzLmlzVmFsaWRhdGluZz0hMX0pLmNhdGNoKGE9Pnt0aGlzLmlzVmFsaWRhdGluZz0hMSx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iZXJyb3Ii'@; put 'fSl9ZGVsZXRlS2V5cygpe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJkZXBsb3lfZGNfbG9jIil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KG9hKSx0dCh2bCksdHQodzApLHR0KEdlZSkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVj'@; put 'dG9yczpbWyJhcHAtbWFudWFsLWRlcGxveSJdXSxpbnB1dHM6e3Nhc0pzOiJzYXNKcyIsc2FzSnNDb25maWc6InNhc0pzQ29uZmlnIixkY0FkYXB0ZXJTZXR0aW5nczoiZGNBZGFwdGVyU2V0dGluZ3MifSxvdXRwdXRzOntvbk5hdmlnYXRlVG9Ib21lOiJvbk5hdmlnYXRlVG9Ib21lIn0sZGVj'@; put 'bHM6OSx2YXJzOjMsY29uc3RzOltbMSwiY2FyZC1oZWFkZXIiLCJwb3NpdGlvbi1yZWxhdGl2ZSJdLFsxLCJkLWlubGluZS1ibG9jayIsIm1sLTEwIiwibWItMTAiLCJtdC0wIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwiY2xlYXItbWVtb3J5LWJ1dHRvbiIsInBvc2l0aW9uLWFic29sdXRl'@; put 'IiwzLCJjbGljayJdLFsxLCJjYXJkLWJsb2NrIl0sWyJpZCIsImxvZ2luRm9ybSIsImNsYXNzIiwiZC1ub25lIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbImlkIiwibG9naW5Gb3JtIiwxLCJkLW5vbmUiXSxbMSwibWItMTAiXSxbImZvciIsInVzZXJuYW1lIiwxLCJjbHItY29udHJvbC1sYWJl'@; put 'bCJdLFsxLCJtYi0xMCIsImNsci1jb250cm9sLWNvbnRhaW5lciJdLFsxLCJjbHItaW5wdXQtd3JhcHBlciJdLFsidHlwZSIsInRleHQiLCJpZCIsInVzZXJuYW1lIiwxLCJjbHItaW5wdXQiXSxbImZvciIsInBhc3N3b3JkIiwxLCJjbHItY29udHJvbC1sYWJlbCJdLFsidHlwZSIsInBhc3N3'@; put 'b3JkIiwiaWQiLCJwYXNzd29yZCIsMSwiY2xyLWlucHV0Il0sWyJpZCIsImxvZ2luQnRuIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsImQtbm9uZSJdLFsxLCJjbHItZm9ybS1jb250cm9sIl0sWyJmb3IiLCJzZWxlY3QtZnVsbCIsMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbMSwiY2xyLWNvbnRy'@; put 'b2wtY29udGFpbmVyIl0sWzEsImNsci1zZWxlY3Qtd3JhcHBlciJdLFsibmFtZSIsInNlbGVjdGVkQWRtaW5Hcm91cCIsImlkIiwiYWRtaW5Hcm91cHNTZWxlY3QiLDEsImNsci1zZWxlY3QiLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsIm5nTW9kZWxDaGFuZ2UiXSxbMywidmFsdWUi'@; put 'LDQsIm5nRm9yIiwibmdGb3JPZiJdLFsibmFtZSIsInNlbGVjdGVkQ29udGV4dCIsMSwiY2xyLXNlbGVjdCIsMywibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIiwibmdNb2RlbENoYW5nZSJdLFsidHlwZSIsImJ1dHRvbiIsImlkIiwiY29udGV4dHMtYnRuIiwxLCJidG4iLCJidG4taWNvbiIs'@; put 'MywiY2xpY2siXSxbInNoYXBlIiwicGxheSJdLFsxLCJkLWZsZXgiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIiwibXItMTAiXSxbImZvciIsImRjbG9jIiwxLCJtdC0yMCIsImNsci1jb250cm9sLWxhYmVsIl0sWyJuYW1lIiwiZGNQYXRoIiwidHlwZSIsInRleHQiLCJpZCIsImRj'@; put 'bG9jIiwxLCJjbHItaW5wdXQiLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsIm5nTW9kZWxDaGFuZ2UiLCJmb2N1c291dCJdLFsxLCJtdC0xMCJdLFsxLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiJdLFsidHlwZSIsImZpbGUiLDMsImNsaWNrIiwiY2hhbmdlIl0sWzEsIm10LTIwIiwiZC1m'@; put 'bGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJpZCIsIiIsMSwibXQtMCIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWyJjbGFzcyIsImJ0biBidG4tc20gYnRuLWljb24gbWluLXctMCB3LTQwIiwzLCJjbGljayIsNCwibmdJZiJdLFsiaWQiLCJkZXBsb3kiLDEsIm10LTAiLDMsImNsckxv'@; put 'YWRpbmciLCJjbGljayJdLFsxLCJidG4iLCJidG4tcHJpbWFyeSIsIm10LTEwIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbMywidmFsdWUiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWljb24iLCJtaW4tdy0wIiwidy00MCIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXSxbMSwi'@; put 'bWItMCIsIm10LTEwIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMCIsIm1yLTIwIiwzLCJjbGljayJdLFsiY2xhc3MiLCJsb2ctd3JhcHBlciIsNCwibmdJZiJdLFsxLCJidG4iLCJidG4tcHJpbWFyeSIsIm10LTE1IiwzLCJjbGljayJdLFsiY2xhc3MiLCJ2YWxpZGF0aW9uLWJhciIs'@; put 'NCwibmdJZiJdLFsxLCJsb2ctd3JhcHBlciJdLFsxLCJ2YWxpZGF0aW9uLWJhciJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLDEsImlzLWVycm9yIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsMSwiaXMtc3VjY2VzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1l'@; put 'KDAsImRpdiIsMCksTmUoMSwiIENvbmZpZ3VyYXRvciAiKSxtZSgyLCJwIiwxKSxOZSgzKSx5ZSgpLG1lKDQsImJ1dHRvbiIsMikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmRlbGV0ZUtleXMoKX0pLE5lKDUsIiBDbGVhciBtZW1vcnkgIikseWUoKSgpLG1lKDYsImRpdiIsMyks'@; put 'SmUoNyxuRWUsMTUsMCwiZGl2Iiw0KSxKZSg4LGdFZSw0OSwyMiwibmctY29udGFpbmVyIiw1KSx5ZSgpKSwyJmEmJihDZSgzKSxncigiQXBwIExvY2F0aW9uOiAiLGQuYXBwTG9jLCIiKSxDZSg0KSxSZSgibmdJZiIsZC5uZWVkc0xvZ2luKSxDZSgxKSxSZSgibmdJZiIsIWQubmVlZHNMb2dp'@; put 'bikpfSxkZXBlbmRlbmNpZXM6W3hzLFppLENwLGwxLGMxLFdhLE0wLEJzLHdwLE9zLHIyLGthLFp1LGRoLFVzLGlHXSxzdHlsZXM6WyIuY2xlYXItbWVtb3J5LWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17cmlnaHQ6MTBweDt0b3A6MnB4fSJdfSksY30pKCk7ZnVuY3Rpb24gdkVlKGMsbCl7'@; put 'MSZjJiYobWUoMCwiZGl2IiwxNSkscXQoMSwicHJvZ3Jlc3MiKSx5ZSgpKX1mdW5jdGlvbiBfRWUoYyxsKXtpZigxJmMmJihtZSgwLCJvcHRpb24iLDE2KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7UmUoInZhbHVlIixhLkdST1VQTkFNRSksQ2UoMSksemMoIiAiLGEu'@; put 'R1JPVVBOQU1FLCIgLSAiLGEuR1JPVVBERVNDLCIgIil9fWxldCBiRWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5zYXNTZXJ2aWNlPWEsdGhpcy5zYXNqc1NlcnZpY2U9ZCx0aGlzLmxvY2F0aW9uPWgsdGhpcy5zYXNKc0NvbmZpZz1uZXcgcjEuU0FTanNDb25maWcs'@; put 'dGhpcy5vbk5hdmlnYXRlVG9Ib21lPW5ldyBFcix0aGlzLmRjRGlyZWN0b3J5PSIiLHRoaXMuZGNBZG1pbkdyb3VwPSJEQ0RFRkFVTFQiLHRoaXMuTUVUQVBFUlNPTj0ibi9hIix0aGlzLk1FVEFVU0VSPSJuL2EiLHRoaXMuU1lTVVNFUklEPSJuL2EiLHRoaXMuU1lTSE9TVE5BTUU9Im4vYSIs'@; put 'dGhpcy5TWVNWTE9ORz0ibi9hIix0aGlzLmRjQWRtaW5Hcm91cExpc3Q9W10sdGhpcy5sb2FkaW5nPSExLHRoaXMuc2hvd0xvZ291dD0hMSx0aGlzLnRtcERpcmVjdG9yaWVzPXtsaW51eDoiL3RtcC9EYXRhQ29udHJvbGxlciIsd2luZG93czoiQzpcXERhdGFDb250cm9sbGVyIn19bmdPbklu'@; put 'aXQoKXt0aGlzLmdldFVzZXJHcm91cHMoKSx0aGlzLmdldFNlcnZlckluZm8oKX1nZXRTZXJ2ZXJJbmZvKCl7dGhpcy5zYXNqc1NlcnZpY2UuZ2V0U2VydmVySW5mbygpLnN1YnNjcmliZShhPT57ImRlc2t0b3AiIT09YS5tb2RlJiYodGhpcy5zaG93TG9nb3V0PSEwKX0pfWdldFVzZXJHcm91'@; put 'cHMoKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcmdyb3Vwc2J5bWVtYmVyIixudWxsKS50aGVuKGE9Pnt0aGlzLk1FVEFQRVJTT049YS5NRl9HRVRVU0VSLHRoaXMuU1lTVVNFUklEPWEuU1lTVVNFUklELHRoaXMuU1lTSE9TVE5BTUU9YS5T'@; put 'WVNIT1NUTkFNRSx0aGlzLlNZU1ZMT05HPWEuU1lTVkxPTkcsdGhpcy5kY0RpcmVjdG9yeT10aGlzLnRtcERpcmVjdG9yaWVzW1siTCIsIkgiLCJBIiwiUyJdLmluY2x1ZGVzKGEuU1lTU0NQTC5zdWJzdHJpbmcoMCwxKSk/ImxpbnV4Ijoid2luZG93cyJdLHRoaXMuZGNBZG1pbkdyb3VwTGlz'@; put 'dD1hLmdyb3Vwcyx0aGlzLmRjQWRtaW5Hcm91cD10aGlzLmRjQWRtaW5Hcm91cExpc3RbMF0uR1JPVVBOQU1FLHRoaXMubG9hZGluZz0hMX0sYT0+e3RoaXMubG9hZGluZz0hMX0pfW1ha2VEYXRhKCl7bGV0IGQ9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTtjb25zdCBoPXRo'@; put 'aXMuc2FzSnNDb25maWcuYXBwTG9jO2xldCBmPXRoaXMuc2FzSnNDb25maWcuc2VydmVyVXJsLF89dGhpcy5kY0RpcmVjdG9yeTt0aGlzLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1aYy5ELlNhc2pzP3RoaXMuc2FzU2VydmljZS5zYXNqc01ha2VkYXRhQ2hlY2tpbmcoKS50aGVuKFc9PntX'@; put 'JiYodGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoIi8iKSxsb2NhdGlvbi5yZWxvYWQoKSl9KTp0aGlzLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1aYy5ELlNhczkmJihmPSIiLGQ9d2luZG93LmxvY2F0aW9uLm9yaWdpbitkKyIvIixfPWVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmRjRGly'@; put 'ZWN0b3J5KSksd2luZG93Lm9wZW4oYCR7Znx8IiJ9JHtkfT9fcHJvZ3JhbT0ke2h9L3NlcnZpY2VzL2FkbWluL21ha2VkYXRhJmFkbWluPSR7dGhpcy5kY0FkbWluR3JvdXB9JnBhdGg9JHtffSBgLCJfYmxhbmsiKX1sb2dvdXQoKXt0aGlzLnNhc1NlcnZpY2UubG9nb3V0KCl9fXJldHVybiBj'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KG9hKSx0dChpcSksdHQoSmQpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXNhc2pzLWNvbmZpZ3VyYXRvciJdXSxpbnB1dHM6e3Nhc0pzOiJzYXNKcyIsc2FzSnNDb25maWc6InNhc0pz'@; put 'Q29uZmlnIixkY0FkYXB0ZXJTZXR0aW5nczoiZGNBZGFwdGVyU2V0dGluZ3MifSxvdXRwdXRzOntvbk5hdmlnYXRlVG9Ib21lOiJvbk5hdmlnYXRlVG9Ib21lIn0sZGVjbHM6NDEsdmFyczo5LGNvbnN0czpbWyJjbGFzcyIsInRoaW5Qcm9ncmVzcyBwcm9ncmVzU3RhdGljIHByb2dyZXNzIGxv'@; put 'b3AiLDQsIm5nSWYiXSxbMSwidGV4dC1jZW50ZXIiLCJteS0xNSJdLFsxLCJsaWdodCJdLFsxLCJtLTAiXSxbMSwibS0wIiwibXQtMTAiXSxbMSwibXQtMjAiLCJjbHItY29udHJvbC1sYWJlbCJdLFsxLCJtYi0xMCIsImNsci1jb250cm9sLWNvbnRhaW5lciJdLFsxLCJjbHItaW5wdXQtd3Jh'@; put 'cHBlciJdLFsicGxhY2Vob2xkZXIiLCJUeXBlIGluIGRpcmVjdG9yeSIsMSwiY2xyLWlucHV0IiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsxLCJtYi0xMCIsIm10LTAiLCJ3LTUwdnciXSxbImNsclNlbGVjdCIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywidmFs'@; put 'dWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjbHItZmxleCJdLFsxLCJidG4iLCJidG4tc3VjY2VzcyIsIm10LTE1IiwidGV4dC1jZW50ZXIiLDMsImNsaWNrIl0sWzEsImNhcmQtdGV4dCIsInBiLTEwIl0sWzEsInRoaW5Qcm9ncmVzcyIsInByb2dyZXNTdGF0aWMiLCJwcm9ncmVzcyIs'@; put 'Imxvb3AiXSxbMywidmFsdWUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihKZSgwLHZFZSwyLDAsImRpdiIsMCksbWUoMSwiaDQiLDEpLE5lKDIsIlNhc2pzIERlcGxveSIpLHllKCkscXQoMywiaHIiLDIpLG1lKDQsInAiLDMpLE5lKDUsIiBUbyBjb25maWd1cmUgRGF0YSBDb250'@; put 'cm9sbGVyIGZvciBTQVNceGE5LCBwbGVhc2UgcHJvdmlkZSB0aGUgZm9sbG93aW5nIGRldGFpbHM6XG4iKSx5ZSgpLG1lKDYsInAiLDQpLE5lKDcsIiBQbGVhc2Ugc3BlY2lmeSBhIHBoeXNpY2FsIGRpcmVjdG9yeSBiZWxvdywgdG8gd2hpY2ggdXNlciAiKSxtZSg4LCJzdHJvbmciKSxOZSg5'@; put 'KSx5ZSgpLE5lKDEwLCIgY2FuIHdyaXRlLCBvbiBiZWhhbGYgb2YgRGF0YSBDb250cm9sbGVyOlxuIikseWUoKSxtZSgxMSwibGFiZWwiLDUpLE5lKDEyLCJEQyBEaXJlY3RvcnkiKSx5ZSgpLG1lKDEzLCJkaXYiLDYpKDE0LCJkaXYiLDcpKDE1LCJpbnB1dCIsOCkseHQoIm5nTW9kZWxDaGFu'@; put 'Z2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmRjRGlyZWN0b3J5PWZ9KSx5ZSgpKCkoKSxtZSgxNiwicCIsNCksTmUoMTcsIiBCZWxvdyBhcmUgdGhlIGxpc3Qgb2YgZ3JvdXBzIHRvIHdoaWNoIHlvdSBiZWxvbmcuIFRoZSBncm91cCB5b3Ugc2VsZWN0IHdpbGwgYmVjb21lIHRoZSBEYXRhIENv'@; put 'bnRyb2xsZXIgQWRtaW4gR3JvdXAsIGFuZCBldmVyeW9uZSBpbiBpdCB3aWxsIGhhdmUgdW5yZXN0cmljdGVkIGFjY2VzcyB0byBEYXRhIENvbnRyb2xsZXIuXG4iKSx5ZSgpLG1lKDE4LCJsYWJlbCIsNSksTmUoMTksIkRhdGEgQ29udHJvbGxlciBBZG1pbiBncm91cCIpLHllKCksbWUoMjAs'@; put 'ImNsci1zZWxlY3QtY29udGFpbmVyIiw5KSgyMSwic2VsZWN0IiwxMCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmRjQWRtaW5Hcm91cD1mfSksSmUoMjIsX0VlLDIsMywib3B0aW9uIiwxMSkseWUoKSgpLG1lKDIzLCJwIiw0KSxOZSgyNCwiIE5vdywgY3JlYXRl'@; put 'IHRoZSB0YXJnZXQgZGlyZWN0b3J5IGFuZCBkZXBsb3kgdGhlIGNvbnRyb2wgbGlicmFyeSB1c2luZyB0aGUgYWRtaW4gZ3JvdXAgc2VsZWN0ZWQgYWJvdmU6XG4iKSx5ZSgpLG1lKDI1LCJkaXYiLDEyKSgyNiwiYnV0dG9uIiwxMykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLm1h'@; put 'a2VEYXRhKCl9KSxOZSgyNywiIFNVQk1JVCAiKSx5ZSgpKCkscXQoMjgsImhyIiwyKSxtZSgyOSwiZGl2IiwxNCkoMzAsInAiKSxOZSgzMSwiWW91IGFyZSBjb25uZWN0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGNyZWRlbnRpYWxzOiIpLHllKCksbWUoMzIsInVsIikoMzMsImxpIiksTmUoMzQp'@; put 'LHllKCksbWUoMzUsImxpIiksTmUoMzYpLHllKCksbWUoMzcsImxpIiksTmUoMzgpLHllKCksbWUoMzksImxpIiksTmUoNDApLHllKCkoKSgpKSwyJmEmJihSZSgibmdJZiIsZC5sb2FkaW5nKSxDZSg5KSxvcihkLlNZU1VTRVJJRCksQ2UoNiksUmUoIm5nTW9kZWwiLGQuZGNEaXJlY3Rvcnkp'@; put 'LENlKDYpLFJlKCJuZ01vZGVsIixkLmRjQWRtaW5Hcm91cCksQ2UoMSksUmUoIm5nRm9yT2YiLGQuZGNBZG1pbkdyb3VwTGlzdCksQ2UoMTIpLGdyKCJNRVRBUEVSU09OOiAiLGQuTUVUQVBFUlNPTiwiIiksQ2UoMiksZ3IoIlNZU1VTRVJJRDogIixkLlNZU1VTRVJJRCwiIiksQ2UoMiksZ3Io'@; put 'IlNZU0hPU1ROQU1FOiAiLGQuU1lTSE9TVE5BTUUsIiIpLENlKDIpLGdyKCJTWVNWTE9ORzogIixkLlNZU1ZMT05HLCIiKSl9LGRlcGVuZGVuY2llczpbeHMsWmksbDEsYzEsV2EsTTAsQnMsT3MsVXMsTjgsSDhdLHN0eWxlczpbIi5jbHItY29udHJvbC1jb250YWluZXJbX25nY29udGVudC0l'@; put 'Q09NUCVde3dpZHRoOjUwdnd9LmNsci1pbnB1dC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNsci1pbnB1dC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS50aGluUHJvZ3Jlc3NbX25nY29udGVudC0lQ09NUCVd'@; put 'e2xlZnQ6MDtyaWdodDowO3dpZHRoOnVuc2V0O2hlaWdodDoxcHg7bWFyZ2luLXRvcDowIWltcG9ydGFudH0udGhpblByb2dyZXNzW19uZ2NvbnRlbnQtJUNPTVAlXTphZnRlcnt0b3A6MH0iXX0pLGN9KSgpO2Z1bmN0aW9uIHlFZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRp'@; put 'diIsNCkoMSwiZGl2Iiw1KSxOZSgyLCJUZXJtcyBhbmQgQ29uZGl0aW9ucyIpLHllKCksbWUoMywiZGl2Iiw2KSg0LCJkaXYiLDcpKDUsInAiKSxOZSg2LCIgVGhlIERlbW8gdmVyc2lvbiBvZiBEYXRhIENvbnRyb2xsZXIgaXMgZnJlZSBmb3IgRVZBTFVBVElPTiBwdXJwb3NlcyBvbmx5LiBC'@; put 'ZWZvcmUgcHJvY2VlZGluZyB3aXRoIGNvbmZpZ3VyYXRpb24sIHBsZWFzZSBjb25maXJtIHRoYXQgeW91IGhhdmUgcmVhZCwgdW5kZXJzdG9vZCwgYW5kIGFncmVlZCB0byB0aGUgIiksbWUoNywiYSIsOCksTmUoOCwiRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGE5IEV2YWx1YXRpb24gQWdy'@; put 'ZWVtZW50IikseWUoKSxOZSg5LCIuICIpLHllKCkoKSxxdCgxMCwiaHIiLDkpLG1lKDExLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDEyLCJpbnB1dCIsMTApLHh0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkudGVybXNBZ3JlZUNoYW5nZSgpKX0pLHllKCksbWUo'@; put 'MTMsImxhYmVsIiksTmUoMTQsIkkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgdGVybXMgb2YgdGhlICIpLG1lKDE1LCJhIiw4KSxOZSgxNiwiRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGE5IEV2YWx1YXRpb24gQWdyZWVtZW50IikseWUoKSgpKCkoKSgpfX1mdW5jdGlvbiB3RWUoYyxs'@; put 'KXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDE1KSgxLCJhcHAtYXV0b21hdGljLWRlcGxveSIsMTYpLHh0KCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgzKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSkseWUoKSgpfWlmKDImYyl7Y29uc3Qg'@; put 'YT1WZSgzKTtDZSgxKSxSZSgic2FzSnMiLGEuc2FzSnMpKCJzYXNKc0NvbmZpZyIsYS5zYXNKc0NvbmZpZykoImRjQWRhcHRlclNldHRpbmdzIixhLmRjQWRhcHRlclNldHRpbmdzKSgiYXBwTG9jIixhLmFwcExvYykoImRjUGF0aCIsYS5kY1BhdGgpKCJzZWxlY3RlZEFkbWluR3JvdXAiLGEu'@; put 'c2VsZWN0ZWRBZG1pbkdyb3VwKX19ZnVuY3Rpb24gQ0VlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwxNykoMSwiYXBwLW1hbnVhbC1kZXBsb3kiLDE4KSx4dCgib25OYXZpZ2F0ZVRvSG9tZSIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMykub25OYXZpZ2F0'@; put 'ZVRvSG9tZSgpKX0pLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoMyk7Q2UoMSksUmUoInNhc0pzIixhLnNhc0pzKSgic2FzSnNDb25maWciLGEuc2FzSnNDb25maWcpKCJkY0FkYXB0ZXJTZXR0aW5ncyIsYS5kY0FkYXB0ZXJTZXR0aW5ncyl9fWZ1bmN0aW9uIFNFZShjLGwpe2lmKDEmYyYm'@; put 'KFZyKDApLEplKDEsd0VlLDIsNiwiZGl2IiwxMyksSmUoMixDRWUsMiwzLCJkaXYiLDE0KSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUoIm5nSWYiLGEuYXV0b2RlcGxveSksQ2UoMSksUmUoIm5nSWYiLCFhLmF1dG9kZXBsb3kpfX1mdW5jdGlvbiBNRWUoYyxsKXtpZigxJmMp'@; put 'e2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJkaXYiLDE1KSgyLCJhcHAtc2FzanMtY29uZmlndXJhdG9yIiwxOCkseHQoIm9uTmF2aWdhdGVUb0hvbWUiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLm9uTmF2aWdhdGVUb0hvbWUoKSl9KSx5ZSgpKCksenIoKX1pZigyJmMpe2Nv'@; put 'bnN0IGE9VmUoMik7Q2UoMiksUmUoInNhc0pzIixhLnNhc0pzKSgic2FzSnNDb25maWciLGEuc2FzSnNDb25maWcpKCJkY0FkYXB0ZXJTZXR0aW5ncyIsYS5kY0FkYXB0ZXJTZXR0aW5ncyl9fWZ1bmN0aW9uIHhFZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsImRpdiIs'@; put 'MTUpKDIsImFwcC1zYXNqcy1jb25maWd1cmF0b3IiLDE4KSx4dCgib25OYXZpZ2F0ZVRvSG9tZSIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMikub25OYXZpZ2F0ZVRvSG9tZSgpKX0pLHllKCkoKSx6cigpfWlmKDImYyl7Y29uc3QgYT1WZSgyKTtDZSgyKSxSZSgic2FzSnMiLGEu'@; put 'c2FzSnMpKCJzYXNKc0NvbmZpZyIsYS5zYXNKc0NvbmZpZykoImRjQWRhcHRlclNldHRpbmdzIixhLmRjQWRhcHRlclNldHRpbmdzKX19ZnVuY3Rpb24gRUVlKGMsbCl7aWYoMSZjJiYoVnIoMCwxMSksSmUoMSxTRWUsMywyLCJuZy1jb250YWluZXIiLDEyKSxKZSgyLE1FZSwzLDMsIm5nLWNv'@; put 'bnRhaW5lciIsMTIpLEplKDMseEVlLDMsMywibmctY29udGFpbmVyIiwxMiksenIoKSksMiZjKXtjb25zdCBhPVZlKCk7UmUoIm5nU3dpdGNoIiwhMCksQ2UoMSksUmUoIm5nU3dpdGNoQ2FzZSIsYS5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhc1ZpeWEpLENlKDEp'@; put 'LFJlKCJuZ1N3aXRjaENhc2UiLGEuc2FzSnNDb25maWcuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXNqcyksQ2UoMSksUmUoIm5nU3dpdGNoQ2FzZSIsYS5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhczkpfX1sZXQgJGVlPSgoKT0+e2NsYXNzIGN7Y29uc3Ry'@; put 'dWN0b3IoYSxkLGgsZil7dGhpcy5hcHBTdG9yZVNlcnZpY2U9YSx0aGlzLnNhc1NlcnZpY2U9ZCx0aGlzLmxvZ2dlclNlcnZpY2U9aCx0aGlzLnJvdXRlcj1mLHRoaXMuc3RlcD0wLHRoaXMuYWRtaW5Hcm91cHM9W10sdGhpcy5jbGllbnRfaWQ9IiIsdGhpcy5jbGllbnRfc2VjcmV0PSIiLHRo'@; put 'aXMuYXBwTG9jPSIiLHRoaXMuZGNQYXRoPSIiLHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPSIiLHRoaXMuYXV0b2RlcGxveT0hMCx0aGlzLmpzb25GaWxlPW51bGwsdGhpcy5zYXNKc0NvbmZpZz1uZXcgcjEuU0FTanNDb25maWcsdGhpcy5TZXJ2ZXJUeXBlPVpjLkQsdGhpcy5kY0FkYXB0ZXJT'@; put 'ZXR0aW5ncz10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygibWFudWFsZGVwbG95IikmJih0aGlzLmF1dG9kZXBsb3k9ITEpLHRoaXMuc2FzSnM9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzSW5zdGFuY2UoKSx0aGlz'@; put 'LnNhc0pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHRoaXMuYXBwTG9jPXRoaXMuZGNBZGFwdGVyU2V0dGluZ3M/LmFwcExvY3x8IiIsdGhpcy5jbGllbnRfaWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImRlcGxveV9jbGllbnRfaWQiKXx8IiIsdGhpcy5jbGllbnRf'@; put 'c2VjcmV0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZXBsb3lfc2VjcmV0X2tleSIpfHwiIix0aGlzLmRjUGF0aD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZGVwbG95X2RjX2xvYyIpfHwiIn1uZ09uSW5pdCgpe3RoaXMuc2FzSnNDb25maWcuc2VydmVyVHlwZT09PVpjLkQuU2FzVml5YSYmZmV0'@; put 'Y2goInNhc2J1aWxkL3ZpeWEuanNvbiIpLnRoZW4oYT0+YS50ZXh0KCkpLnRoZW4oYT0+e2xldCBkPW51bGw7dHJ5e2Q9SlNPTi5wYXJzZShhKX1jYXRjaChoKXtjb25zb2xlLmVycm9yKGgpfWQmJih0aGlzLmpzb25GaWxlPWQsdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLmpzb25GaWxl'@; put 'KSl9KSx0aGlzLnNldERlcGxveURlZmF1bHRzKCl9c2V0RGVwbG95RGVmYXVsdHMoKXt0aGlzLmRjUGF0aD10aGlzLmRjQWRhcHRlclNldHRpbmdzPy5kY1BhdGh8fCIiLHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPXRoaXMuZGNBZGFwdGVyU2V0dGluZ3M/LmFkbWluR3JvdXB8fCIiLHRoaXMu'@; put 'c2VsZWN0ZWRBZG1pbkdyb3VwfHwodGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IlNBU0FkbWluaXN0cmF0b3JzIil9dGVybXNBZ3JlZUNoYW5nZSgpe3RoaXMuYXV0b2RlcGxveXx8dGhpcy5nZXRBZG1pbkdyb3VwcygpLHRoaXMuc3RlcCsrfWdldEFkbWluR3JvdXBzKCl7ZmV0Y2godGhpcy5z'@; put 'YXNKc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL2dyb3Vwcz9zb3J0Qnk9bmFtZSZsaW1pdD01MDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGE9PmEudGV4dCgpKS50aGVuKGE9PntsZXQgZDt0cnl7ZD1KU09OLnBhcnNlKGEpfWNhdGNoKGgp'@; put 'e2NvbnNvbGUuZXJyb3IoaCl9ZCYmKHRoaXMuYWRtaW5Hcm91cHM9ZC5pdGVtcyx0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cD10aGlzLmFkbWluR3JvdXBzWzBdLmlkKX0pfW9uTmF2aWdhdGVUb0hvbWUoKXt3aW5kb3cub3Blbihsb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0sIl9ibGFuayIp'@; put 'fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChlOCksdHQob2EpLHR0KHcwKSx0dChEcykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtZGVwbG95Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxk'@; put 'ZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJjb250ZW50LWFyZWEiLCJwb3NpdGlvbi1yZWxhdGl2ZSJdLFsxLCJjbHItcm93Il0sWyJpZCIsIlRDUyIsImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFszLCJuZ1N3aXRjaCIsNCwibmdJZiJdLFsiaWQiLCJUQ1MiLDEsImNhcmQiXSxbMSwiY2Fy'@; put 'ZC1oZWFkZXIiXSxbMSwiY2FyZC1ibG9jayJdLFsxLCJjYXJkLXRleHQiXSxbImhyZWYiLCJodHRwczovL2RvY3MuZGF0YWNvbnRyb2xsZXIuaW8vZXZhbHVhdGlvbi1saWNlbmNlLWFncmVlbWVudCIsInRhcmdldCIsIl9ibGFuayJdLFsxLCJsaWdodCJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0'@; put 'eXBlIiwiY2hlY2tib3giLDMsImNoYW5nZSJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxbImNsYXNzIiwiYXV0b2RlcGxveS1zZWN0aW9uIGNhcmQiLDQsIm5nSWYiXSxbImlkIiwibWFpbmJvZHkiLCJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxbMSwiYXV0b2RlcGxveS1z'@; put 'ZWN0aW9uIiwiY2FyZCJdLFszLCJzYXNKcyIsInNhc0pzQ29uZmlnIiwiZGNBZGFwdGVyU2V0dGluZ3MiLCJhcHBMb2MiLCJkY1BhdGgiLCJzZWxlY3RlZEFkbWluR3JvdXAiLCJvbk5hdmlnYXRlVG9Ib21lIl0sWyJpZCIsIm1haW5ib2R5IiwxLCJjYXJkIl0sWzMsInNhc0pzIiwic2FzSnND'@; put 'b25maWciLCJkY0FkYXB0ZXJTZXR0aW5ncyIsIm9uTmF2aWdhdGVUb0hvbWUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJkaXYiLDApKDEsImRpdiIsMSksSmUoMix5RWUsMTcsMCwiZGl2IiwyKSx5ZSgpLEplKDMsRUVlLDQsNCwibmctY29udGFpbmVyIiwzKSx5ZSgp'@; put 'KSwyJmEmJihDZSgyKSxSZSgibmdJZiIsMD09PWQuc3RlcCksQ2UoMSksUmUoIm5nSWYiLGQuc3RlcD4wKSl9LGRlcGVuZGVuY2llczpbWmksbmQsdGgsVXMsRDAsVDAsdEVlLG1FZSxiRWVdLHN0eWxlczpbIi5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjB9LmJ0bltfbmdj'@; put 'b250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxMHB4fS5sb2ctd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmMGYwZjA7Ym9yZGVyOjFweCBzb2xpZCAjYzljOWM5O3BhZGRpbmc6MTBweDtvdmVyZmxvdzphdXRvO3doaXRlLXNwYWNlOnByZS13cmFw'@; put 'fSNjb250ZXh0cy1idG5bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6M3B4IDAgMDttaW4td2lkdGg6MzBweDttYXJnaW4tbGVmdDoxMHB4O2hlaWdodDozMHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LnZhbGlkYXRp'@; put 'b24tYmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7bWFyZ2luLXRvcDoyMHB4O2FsaWduLWl0ZW1zOmNlbnRlcn0udmFsaWRhdGlvbi1iYXJbX25nY29udGVudC0lQ09NUCVdICAgY2xyLWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDo1cHh9LmF1dG9kZXBs'@; put 'b3ktc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowIDE1cHh9LmF1dG9kZXBsb3ktc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV0gICAuY2xyLWNoZWNrYm94LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbjoyMHB4IDB9LmF1dG9kZXBsb3ktc2VjdGlvbltfbmdj'@; put 'b250ZW50LSVDT01QJV0gICAuYnRuLWF1dG9kZXBsb3lbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjE1cHggMH0iXX0pLGN9KSgpO2NvbnN0IGtFZT1be3BhdGg6IiIsY29tcG9uZW50OiRlZX0se3BhdGg6Im1hbnVhbGRlcGxveSIsY29tcG9uZW50OiRlZX1dO2xl'@; put 'dCBBRWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbaGMuZm9yQ2hpbGQoa0VlKSxoY119KSxjfSkoKSxURWU9KCgpPT57Y2xhc3Mg'@; put 'Y3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbb28scWwsX3UsQUVlXX0pLGN9KSgpO0YoODcxMyksRig1NjU4KSxGKDkxOTQ1KTt2YXIgREVlPUYoNzA4OTYp'@; put 'O2Z1bmN0aW9uIHFlZShjKXtjb25zdCBsPWMubGVuZ3RoO2xldCBhPTA7Zm9yKDthPGw7KWNbYV09W2NbYV1dLGErPTF9ZnVuY3Rpb24gbk4oYyxsKXtjb25zdCBhPWwubGVuZ3RoO2xldCBkPTA7Zm9yKDtkPGE7KWMucHVzaChsW2RdKSxkKz0xfWZ1bmN0aW9uIEtiKGMpe2NvbnN0IGw9W107'@; put 'aWYoIWN8fDA9PT1jLmxlbmd0aHx8IWNbMF18fDA9PT1jWzBdLmxlbmd0aClyZXR1cm4gbDtjb25zdCBhPWMubGVuZ3RoLGQ9Y1swXS5sZW5ndGg7Zm9yKGxldCBoPTA7aDxhO2grKylmb3IobGV0IGY9MDtmPGQ7ZisrKWxbZl18fChsW2ZdPVtdKSxsW2ZdW2hdPWNbaF1bZl07cmV0dXJuIGx9'@; put 'ZnVuY3Rpb24gQWwoYyxsLGEsZCl7bGV0IGg9LTEsZj1jLF89YTtBcnJheS5pc0FycmF5KGMpfHwoZj1BcnJheS5mcm9tKGMpKTtjb25zdCBUPWYubGVuZ3RoO2ZvcihkJiZUJiYoaCs9MSxfPWZbaF0pLGgrPTE7aDxUOylfPWwoXyxmW2hdLGgsZiksaCs9MTtyZXR1cm4gX31mdW5jdGlvbiBf'@; put 'MShjLGwpe2xldCBhPTAsZD1jO0FycmF5LmlzQXJyYXkoYyl8fChkPUFycmF5LmZyb20oYykpO2NvbnN0IGg9ZC5sZW5ndGgsZj1bXTtsZXQgXz0tMTtmb3IoO2E8aDspe2NvbnN0IFQ9ZFthXTtsKFQsYSxkKSYmKF8rPTEsZltfXT1UKSxhKz0xfXJldHVybiBmfWZ1bmN0aW9uIGNzKGMsbCl7'@; put 'bGV0IGE9MCxkPWM7QXJyYXkuaXNBcnJheShjKXx8KGQ9QXJyYXkuZnJvbShjKSk7Y29uc3QgaD1kLmxlbmd0aCxmPVtdO2xldCBfPS0xO2Zvcig7YTxoOylfKz0xLGZbX109bChkW2FdLGEsZCksYSs9MTtyZXR1cm4gZn1mdW5jdGlvbiBEbihjLGwpe2xldCBhPTAsZD1jO0FycmF5LmlzQXJy'@; put 'YXkoYyl8fChkPUFycmF5LmZyb20oYykpO2NvbnN0IGg9ZC5sZW5ndGg7Zm9yKDthPGgmJiExIT09bChkW2FdLGEsZCk7KWErPTE7cmV0dXJuIGN9ZnVuY3Rpb24gS2VlKGMpe3JldHVybiBBbChjLChsLGEpPT5sK2EsMCl9ZnVuY3Rpb24gSUVlKGMpe3JldHVybiBBbChjLChsLGEpPT5sPmE/'@; put 'bDphLEFycmF5LmlzQXJyYXkoYyk/Y1swXTp2b2lkIDApfWZ1bmN0aW9uIExFZShjKXtyZXR1cm4gQWwoYywobCxhKT0+bDxhP2w6YSxBcnJheS5pc0FycmF5KGMpP2NbMF06dm9pZCAwKX1mdW5jdGlvbiBSRWUoYyl7cmV0dXJuIGMubGVuZ3RoP0tlZShjKS9jLmxlbmd0aDowfWZ1bmN0aW9u'@; put 'IFhlZShjKXtyZXR1cm4gQWwoYywobCxhKT0+bC5jb25jYXQoQXJyYXkuaXNBcnJheShhKT9YZWUoYSk6YSksW10pfWZ1bmN0aW9uIHJOKGMpe2NvbnN0IGw9W107cmV0dXJuIERuKGMsYT0+ey0xPT09bC5pbmRleE9mKGEpJiZsLnB1c2goYSl9KSxsfWZ1bmN0aW9uIGlOKCl7Zm9yKHZhciBj'@; put 'PWFyZ3VtZW50cy5sZW5ndGgsbD1uZXcgQXJyYXkoYyksYT0wO2E8YzthKyspbFthXT1hcmd1bWVudHNbYV07Y29uc3RbZCwuLi5oXT1bLi4ubF07bGV0IGY9ZDtyZXR1cm4gRG4oaCxfPT57Zj1mLmZpbHRlcihUPT4hXy5pbmNsdWRlcyhUKSl9KSxmfWZ1bmN0aW9uIE9FZSgpe2Zvcih2YXIg'@; put 'Yz1hcmd1bWVudHMubGVuZ3RoLGw9bmV3IEFycmF5KGMpLGE9MDthPGM7YSsrKWxbYV09YXJndW1lbnRzW2FdO2NvbnN0W2QsLi4uaF09Wy4uLmxdO2xldCBmPWQ7cmV0dXJuIERuKGgsXz0+e2Y9Zi5maWx0ZXIoVD0+Xy5pbmNsdWRlcyhUKSl9KSxmfWZ1bmN0aW9uIFBFZSgpe2Zvcih2YXIg'@; put 'Yz1hcmd1bWVudHMubGVuZ3RoLGw9bmV3IEFycmF5KGMpLGE9MDthPGM7YSsrKWxbYV09YXJndW1lbnRzW2FdO2NvbnN0W2QsLi4uaF09Wy4uLmxdLGY9bmV3IFNldChkKTtyZXR1cm4gRG4oaCxfPT57RG4oXyxUPT57Zi5oYXMoVCl8fGYuYWRkKFQpfSl9KSxBcnJheS5mcm9tKGYpfWZ1bmN0'@; put 'aW9uIG9OKGMpe3JldHVybiBjLnNwbGl0KGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiICIpfWZ1bmN0aW9uIEFhKGMpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGw+MT9sLTE6MCksZD0xO2Q8bDtkKyspYVtk'@; put 'LTFdPWFyZ3VtZW50c1tkXTtyZXR1cm4gQWwoYywoZixfLFQpPT5mK18ucmVwbGFjZSgvXHI/XG5ccyovZywiIikrKGFbVF0/YVtUXToiIiksIiIpLnRyaW0oKX1mdW5jdGlvbiBfbChjKXtsZXQgbDtzd2l0Y2godHlwZW9mIGMpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6bD1gJHtjfWA7'@; put 'YnJlYWs7Y2FzZSJvYmplY3QiOmw9bnVsbD09PWM/IiI6Yy50b1N0cmluZygpO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpsPSIiO2JyZWFrO2RlZmF1bHQ6bD1jLnRvU3RyaW5nKCl9cmV0dXJuIGx9ZnVuY3Rpb24gS2koYyl7cmV0dXJuIHR5cGVvZiBjPCJ1In1mdW5jdGlvbiBMYShjKXtyZXR1'@; put 'cm4gdHlwZW9mIGM+InUifWZ1bmN0aW9uIGdjKGMpe3JldHVybiBudWxsPT09Y3x8IiI9PT1jfHxMYShjKX1mdW5jdGlvbiBKZWUoYyl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYyl9Y29uc3QgWGI9Imxlbmd0aCIsSmI9Yz0+cGFy'@; put 'c2VJbnQoYywxNiksUWVlPWM9PnBhcnNlSW50KGMsMTApLG5rPShjLGwsYSk9PmMuc3Vic3RyKGwsYSksUWI9Yz0+Yy5jb2RlUG9pbnRBdCgwKS02NSxzTj1jPT5gJHtjfWAucmVwbGFjZSgvXC0vZywiIiksRkVlPWM9PkpiKG5rKHNOKGMpLEpiKCIxMiIpLFFiKCJGIikpKS8oSmIobmsoc04o'@; put 'YyksUWIoIkIiKSx+fiFbXVtYYl0pKXx8OSksSEVlPSgpPT50eXBlb2YgbG9jYXRpb248InUiJiYvXihbYS16MC05XC1dK1wuKT9ceDY4XHg2MVx4NkVceDY0XHg3M1x4NkZceDZFXHg3NFx4NjFceDYyXHg2Q1x4NjVceDJFXHg2M1x4NkZceDZEJC9pLnRlc3QobG9jYXRpb24uaG9zdCk7bGV0'@; put 'IGV0ZT0hMTtjb25zdCB0dGU9e2ludmFsaWQ6KCk9PkFhYAogICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgaW52YWxpZC5ceDIwCiAgICBJZiB5b3UgbmVlZCBhbnkgaGVscCwgY29udGFjdCB1cyBhdCBzdXBwb3J0QGhhbmRzb250YWJsZS5jb20uYCxleHBpcmVkOmM9'@; put 'PntsZXR7a2V5VmFsaWRpdHlEYXRlOmwsaG90VmVyc2lvbjphfT1jO3JldHVybiBBYWAKICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGV4cGlyZWQgb24gJHtsfSwgYW5kIGlzIG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFx4MjAKICAgIHZlcnNpb24gJHthfS4gUmVu'@; put 'ZXcgeW91ciBsaWNlbnNlIGtleSBhdCBoYW5kc29udGFibGUuY29tIG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3JceDIwCiAgICB0byAke2x9LiBJZiB5b3UgbmVlZCBhbnkgaGVscCwgY29udGFjdCB1cyBhdCBzYWxlc0BoYW5kc29udGFibGUuY29tLmB9LG1pc3Np'@; put 'bmc6KCk9PkFhYAogICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgbWlzc2luZy4gVXNlIHlvdXIgcHVyY2hhc2VkIGtleSB0byBhY3RpdmF0ZSB0aGUgcHJvZHVjdC5ceDIwCiAgICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFjdGl2YXRlIEhhbmRzb250YWJsZSB0byB1'@; put 'c2UgZm9yIG5vbi1jb21tZXJjaWFsIHB1cnBvc2VzIGJ5XHgyMAogICAgcGFzc2luZyB0aGUga2V5OiAnbm9uLWNvbW1lcmNpYWwtYW5kLWV2YWx1YXRpb24nLiBJZiB5b3UgbmVlZCBhbnkgaGVscCwgY29udGFjdFx4MjAKICAgIHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS5gLG5v'@; put 'bl9jb21tZXJjaWFsOigpPT4iIn0sbnRlPXtpbnZhbGlkOigpPT5BYWAKICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIGludmFsaWQuXHgyMAogICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc29udGFibGUuY29tL2RvY3MvdHV0b3JpYWwtbGljZW5zZS1rZXkuaHRtbCIg'@; put 'dGFyZ2V0PSJfYmxhbmsiPlJlYWQgbW9yZTwvYT4gb24gaG93IHRvXHgyMAogICAgaW5zdGFsbCBpdCBwcm9wZXJseSBvciBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uYCxleHBpcmVk'@; put 'OmM9PntsZXR7a2V5VmFsaWRpdHlEYXRlOmwsaG90VmVyc2lvbjphfT1jO3JldHVybiBBYWAKICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGV4cGlyZWQgb24gJHtsfSwgYW5kIGlzIG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFx4MjAKICAgIHZlcnNpb24gJHthfS4g'@; put 'PGEgaHJlZj0iaHR0cHM6Ly9oYW5kc29udGFibGUuY29tL3ByaWNpbmciIHRhcmdldD0iX2JsYW5rIj5SZW5ldzwvYT4geW91clx4MjAKICAgIGxpY2Vuc2Uga2V5IG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3IgdG8gJHtsfS4gSWYgeW91IG5lZWQgYW55XHgyMAog'@; put 'ICAgaGVscCwgY29udGFjdCB1cyBhdCA8YSBocmVmPSJtYWlsdG86c2FsZXNAaGFuZHNvbnRhYmxlLmNvbSI+c2FsZXNAaGFuZHNvbnRhYmxlLmNvbTwvYT4uYH0sbWlzc2luZzooKT0+QWFgCiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBpcyBtaXNzaW5nLiBVc2UgeW91'@; put 'ciBwdXJjaGFzZWQga2V5IHRvIGFjdGl2YXRlIHRoZSBwcm9kdWN0Llx4MjAKICAgIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gYWN0aXZhdGUgSGFuZHNvbnRhYmxlIHRvIHVzZSBmb3Igbm9uLWNvbW1lcmNpYWwgcHVycG9zZXMgYnlceDIwCiAgICBwYXNzaW5nIHRoZSBrZXk6ICdub24tY29t'@; put 'bWVyY2lhbC1hbmQtZXZhbHVhdGlvbicuXHgyMAogICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc29udGFibGUuY29tL2RvY3MvdHV0b3JpYWwtbGljZW5zZS1rZXkuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlJlYWQgbW9yZTwvYT4gYWJvdXQgaXQgaW5ceDIwCiAgICB0aGUgZG9jdW1lbnRhdGlv'@; put 'biBvciBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uYCxub25fY29tbWVyY2lhbDooKT0+IiJ9O2Z1bmN0aW9uIHJ0ZShjLGwpe2NvbnN0IGE9IWdjKGMpLGQ9InN0cmluZyI9PXR5cGVv'@; put 'ZiBjJiYibm9uLWNvbW1lcmNpYWwtYW5kLWV2YWx1YXRpb24iPT09Yy50b0xvd2VyQ2FzZSgpLGg9IjEzLjEuMCI7bGV0IGYsXz0iaW52YWxpZCIsVD0iaW52YWxpZCI7Y29uc3QgVz1mdW5jdGlvbiBORWUoYyl7bGV0IGw9W11bWGJdLGE9bDtpZihjW1hiXSE9PVFiKCJaIikpcmV0dXJuITE7'@; put 'Zm9yKGxldCBkPSIiLGg9IkI8SDRQKyIuc3BsaXQoIiIpLGY9UWIoaC5zaGlmdCgpKTtmO2Y9UWIoaC5zaGlmdCgpfHwiQSIpKS0tZjwiIltYYl0/YXw9KFFlZShgJHtRZWUoSmIoZCkrKEpiKG5rKGMsTWF0aC5hYnMoZiksMikpK1tdKS5wYWRTdGFydCgyLCIwIikpfWApJTk3fHwyKT4+MTpk'@; put 'PW5rKGMsZixmPzE9PT1oW1hiXT85Ojg6Nik7cmV0dXJuIGE9PT1sfShjPXNOKGN8fCIiKSk7aWYoYXx8ZHx8VylpZihXKXtjb25zdCBpZT1LbygiMzEvMDgvMjAyMyIsIkREL01NL1lZWVkiKSxwZT1NYXRoLmZsb29yKGllLnRvRGF0ZSgpLmdldFRpbWUoKS84NjRlNSksd2U9RkVlKGMpO2Y9'@; put 'S28oODY0ZTUqKHdlKzEpLCJ4IikuZm9ybWF0KCJNTU1NIERELCBZWVlZIikscGU+d2U/KF89ImV4cGlyZWQiLFQ9ImV4cGlyZWQiKTooXz0idmFsaWQiLFQ9InZhbGlkIil9ZWxzZSBkPyhfPSJub25fY29tbWVyY2lhbCIsVD0idmFsaWQiKTooXz0iaW52YWxpZCIsVD0iaW52YWxpZCIpO2Vs'@; put 'c2UgXz0ibWlzc2luZyIsVD0ibWlzc2luZyI7aWYoSEVlKCkmJihfPSJ2YWxpZCIsVD0idmFsaWQiKSwhZXRlJiYidmFsaWQiIT09XyYmKHR0ZVtfXSh7a2V5VmFsaWRpdHlEYXRlOmYsaG90VmVyc2lvbjpofSkmJmNvbnNvbGVbIm5vbl9jb21tZXJjaWFsIj09PV8/ImluZm8iOiJ3YXJuIl0o'@; put 'dHRlW19dKHtrZXlWYWxpZGl0eURhdGU6Zixob3RWZXJzaW9uOmh9KSksZXRlPSEwKSwidmFsaWQiIT09VCYmbC5wYXJlbnROb2RlJiZudGVbVF0oe2tleVZhbGlkaXR5RGF0ZTpmLGhvdFZlcnNpb246aH0pKXtjb25zdCBwZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtwZS5jbGFz'@; put 'c05hbWU9ImhvdC1kaXNwbGF5LWxpY2Vuc2UtaW5mbyIscGUuaW5uZXJIVE1MPW50ZVtUXSh7a2V5VmFsaWRpdHlEYXRlOmYsaG90VmVyc2lvbjpofSksbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShwZSxsLm5leHRTaWJsaW5nKX19ZnVuY3Rpb24gYnUoYyl7cmV0dXJuIGNbMF0udG9VcHBl'@; put 'ckNhc2UoKStjLnN1YnN0cigxKX1mdW5jdGlvbiBWRWUoKXtjb25zdCBjPVtdO2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO2xldCBoPWEubGVuZ3RoO2Zvcig7aDspe2gtPTE7Y29uc3QgZj1fbChhW2hdKS50'@; put 'b0xvd2VyQ2FzZSgpOy0xPT09Yy5pbmRleE9mKGYpJiZjLnB1c2goZil9cmV0dXJuIDE9PT1jLmxlbmd0aH1mdW5jdGlvbiBhTigpe2Z1bmN0aW9uIGMoKXtyZXR1cm4gTWF0aC5mbG9vcig2NTUzNiooMStNYXRoLnJhbmRvbSgpKSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKX1yZXR1cm4g'@; put 'YygpK2MoKStjKCkrYygpfWZ1bmN0aW9uIGxOKGMpe3JldHVybi9eKFswLTldWzAtOV0/JSQpfCheMTAwJSQpLy50ZXN0KGMpfWZ1bmN0aW9uIGNOKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm5gJHtjfWAu'@; put 'cmVwbGFjZSgvKD86XFwpP1xbKFteW1xdXSspXS9nLChhLGQpPT4iXFwiPT09YS5jaGFyQXQoMCk/YS5zdWJzdHIoMSxhLmxlbmd0aC0xKTp2b2lkIDA9PT1sW2RdPyIiOmxbZF0pfWZ1bmN0aW9uIHVOKGMpe3JldHVybiByayhgJHtjfWAse0FMTE9XRURfVEFHUzpbXX0pfWZ1bmN0aW9uIHJr'@; put 'KGMsbCl7cmV0dXJuIERFZS5zYW5pdGl6ZShjLGwpfWZ1bmN0aW9uIGl0ZShjKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxhPS0xLGQ9bnVsbCxoPWM7Zm9yKDtudWxsIT09aDspe2lmKGE9PT1sKXtkPWg7YnJlYWt9aC5o'@; put 'b3N0JiZoLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFP2g9aC5ob3N0OihhKz0xLGg9aC5wYXJlbnROb2RlKX1yZXR1cm4gZH1mdW5jdGlvbiBvdGUoYyl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihjLnBhcmVudCkmJmMuZnJhbWVFbGVtZW50fWZ1bmN0aW9u'@; put 'IGV5KGMpe3JldHVybiBvdGUoYykmJmMucGFyZW50fWZ1bmN0aW9uIEJFZShjKXtyZXR1cm4hIU9iamVjdC5nZXRQcm90b3R5cGVPZihjLnBhcmVudCl9ZnVuY3Rpb24gTnAoYyl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltd'@; put 'LGE9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7Y29uc3R7RUxFTUVOVF9OT0RFOmQsRE9DVU1FTlRfRlJBR01FTlRfTk9ERTpofT1Ob2RlO2xldCBmPWM7Zm9yKDtudWxsIT1mJiZmIT09YTspe2NvbnN0e25vZGVUeXBlOl8sbm9kZU5hbWU6VH09ZjtpZihfPT09ZCYm'@; put 'KGwuaW5jbHVkZXMoVCl8fGwuaW5jbHVkZXMoZikpKXJldHVybiBmO2NvbnN0e2hvc3Q6V309ZjtmPVcmJl89PT1oP1c6Zi5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIHR5KGMsbCxhKXtjb25zdCBkPVtdO2xldCBoPWM7Zm9yKDtoJiYoaD1OcChoLGwsYSksaCYmKCFhfHxhLmNv'@; put 'bnRhaW5zKGgpKSk7KWQucHVzaChoKSxoPWguaG9zdCYmaC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT9oLmhvc3Q6aC5wYXJlbnROb2RlO2NvbnN0IGY9ZC5sZW5ndGg7cmV0dXJuIGY/ZFtmLTFdOm51bGx9ZnVuY3Rpb24gVnAoYyxsKXtsZXQgYT1jLnBhcmVudE5v'@; put 'ZGUsZD1bXTtmb3IoInN0cmluZyI9PXR5cGVvZiBsP2Q9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYy5kZWZhdWx0Vmlldz9jLnF1ZXJ5U2VsZWN0b3JBbGwobCk6Yy5vd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwobCksMCk6ZC5wdXNoKGwpO251bGwhPT1hOyl7aWYoZC5pbmRl'@; put 'eE9mKGEpPi0xKXJldHVybiEwO2E9YS5wYXJlbnROb2RlfXJldHVybiExfWZ1bmN0aW9uIHN0ZShjKXtsZXQgbD0wLGE9YztpZihhLnByZXZpb3VzU2libGluZylmb3IoO2E9YS5wcmV2aW91c1NpYmxpbmc7KWwrPTE7cmV0dXJuIGx9ZnVuY3Rpb24gQnAoYyxsLGEpe2NvbnN0IGQ9YS5wYXJl'@; put 'bnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC5odF9jbG9uZV8ke2N9YCk7cmV0dXJuIGQ/ZC5jb250YWlucyhsKTpudWxsfWZ1bmN0aW9uIGF0ZShjKXtyZXR1cm4gYyYmYy5sZW5ndGg/Yy5maWx0ZXIobD0+ISFsKTpbXX1mdW5jdGlvbiBCbyhjLGwpe3JldHVybiB2b2lkIDAhPT1jLmNsYXNz'@; put 'TGlzdCYmInN0cmluZyI9PXR5cGVvZiBsJiYiIiE9PWwmJmMuY2xhc3NMaXN0LmNvbnRhaW5zKGwpfWZ1bmN0aW9uIHBpKGMsbCl7InN0cmluZyI9PXR5cGVvZiBsJiYobD1sLnNwbGl0KCIgIikpLChsPWF0ZShsKSkubGVuZ3RoPjAmJmMuY2xhc3NMaXN0LmFkZCguLi5sKX1mdW5jdGlvbiBX'@; put 'byhjLGwpeyJzdHJpbmciPT10eXBlb2YgbCYmKGw9bC5zcGxpdCgiICIpKSwobD1hdGUobCkpLmxlbmd0aD4wJiZjLmNsYXNzTGlzdC5yZW1vdmUoLi4ubCl9ZnVuY3Rpb24gZE4oYyl7aWYoMz09PWMubm9kZVR5cGUpYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpO2Vsc2UgaWYoWyJUQUJM'@; put 'RSIsIlRIRUFEIiwiVEJPRFkiLCJURk9PVCIsIlRSIl0uaW5kZXhPZihjLm5vZGVOYW1lKT4tMSl7Y29uc3QgbD1jLmNoaWxkTm9kZXM7Zm9yKGxldCBhPWwubGVuZ3RoLTE7YT49MDthLS0pZE4obFthXSl9fWZ1bmN0aW9uIGcyKGMpe2xldCBsO2Zvcig7bD1jLmxhc3RDaGlsZDspYy5yZW1v'@; put 'dmVDaGlsZChsKX1jb25zdCBsdGU9Lyg8KC4qKT58JiguKik7KS87ZnVuY3Rpb24gZ2coYyxsKXtsZXQgYT0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2x0ZS50ZXN0KGwpP2MuaW5uZXJIVE1MPWE/cmsobCk6bDpqcChjLGwpfWZ1'@; put 'bmN0aW9uIGpwKGMsbCl7Y29uc3QgYT1jLmZpcnN0Q2hpbGQ7YSYmMz09PWEubm9kZVR5cGUmJm51bGw9PT1hLm5leHRTaWJsaW5nP2EudGV4dENvbnRlbnQ9bDooZzIoYyksYy5hcHBlbmRDaGlsZChjLm93bmVyRG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobCkpKX1mdW5jdGlvbiBlNyhjKXtj'@; put 'b25zdCBsPWMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7bGV0IGE9Yztmb3IoO2EhPT1sOyl7aWYobnVsbD09PWEpcmV0dXJuITE7aWYoYS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSl7aWYoYS5ob3N0KXtpZihhLmhvc3QuaW1wbClyZXR1cm4gZTcoYS5o'@; put 'b3N0LmltcGwpO2lmKGEuaG9zdClyZXR1cm4gZTcoYS5ob3N0KTt0aHJvdyBuZXcgRXJyb3IoIkxvc3QgaW4gV2ViIENvbXBvbmVudHMgd29ybGQiKX1yZXR1cm4hMX1pZihhLnN0eWxlJiYibm9uZSI9PT1hLnN0eWxlLmRpc3BsYXkpcmV0dXJuITE7YT1hLnBhcmVudE5vZGV9cmV0dXJuITB9'@; put 'ZnVuY3Rpb24gS2woYyl7Y29uc3QgbD1jLm93bmVyRG9jdW1lbnQsYT1sLmRlZmF1bHRWaWV3LGQ9bC5kb2N1bWVudEVsZW1lbnQ7bGV0IGYsXyxULGg9Yztmb3IoZj1oLm9mZnNldExlZnQsXz1oLm9mZnNldFRvcCxUPWg7KGg9aC5vZmZzZXRQYXJlbnQpJiZoIT09bC5ib2R5OylmKz1oLm9m'@; put 'ZnNldExlZnQsXys9aC5vZmZzZXRUb3AsVD1oO3JldHVybiBUJiYiZml4ZWQiPT09VC5zdHlsZS5wb3NpdGlvbiYmKGYrPWEucGFnZVhPZmZzZXR8fGQuc2Nyb2xsTGVmdCxfKz1hLnBhZ2VZT2Zmc2V0fHxkLnNjcm9sbFRvcCkse2xlZnQ6Zix0b3A6X319ZnVuY3Rpb24gdDcoKXtyZXR1cm4o'@; put 'YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOndpbmRvdykuc2Nyb2xsWX1mdW5jdGlvbiBtZygpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d2luZG93KS5zY3JvbGxYfWZ1'@; put 'bmN0aW9uIG55KGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cmV0dXJuIGM9PT1sP3Q3KGwpOmMuc2Nyb2xsVG9wfWZ1bmN0aW9uIGlrKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJn'@; put 'dW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cmV0dXJuIGM9PT1sP21nKGwpOmMuc2Nyb2xsTGVmdH1mdW5jdGlvbiByeShjKXtsZXQgbD1jLm93bmVyRG9jdW1lbnQsYT1sP2wuZGVmYXVsdFZpZXc6dm9pZCAwO2x8fChsPWMuZG9jdW1lbnQ/Yy5kb2N1bWVudDpjLGE9bC5kZWZhdWx0'@; put 'Vmlldyk7Y29uc3QgZD1bImF1dG8iLCJzY3JvbGwiXTtsZXQgaD1jLnBhcmVudE5vZGU7Zm9yKDtoJiZoLnN0eWxlJiZsLmJvZHkhPT1oOyl7bGV0e292ZXJmbG93OmYsb3ZlcmZsb3dYOl8sb3ZlcmZsb3dZOlR9PWguc3R5bGU7aWYoW2YsXyxUXS5pbmNsdWRlcygic2Nyb2xsIikpcmV0dXJu'@; put 'IGg7aWYoKHtvdmVyZmxvdzpmLG92ZXJmbG93WDpfLG92ZXJmbG93WTpUfT1hLmdldENvbXB1dGVkU3R5bGUoaCkpLGQuaW5jbHVkZXMoZil8fGQuaW5jbHVkZXMoXyl8fGQuaW5jbHVkZXMoVCl8fGguY2xpZW50SGVpZ2h0PD1oLnNjcm9sbEhlaWdodCsxJiYoZC5pbmNsdWRlcyhUKXx8ZC5p'@; put 'bmNsdWRlcyhmKSl8fGguY2xpZW50V2lkdGg8PWguc2Nyb2xsV2lkdGgrMSYmKGQuaW5jbHVkZXMoXyl8fGQuaW5jbHVkZXMoZikpKXJldHVybiBoO2g9aC5wYXJlbnROb2RlfXJldHVybiBhfWZ1bmN0aW9uIHZnKGMpe2NvbnN0IGw9Yy5vd25lckRvY3VtZW50LGE9bC5kZWZhdWx0Vmlldzts'@; put 'ZXQgZD1jLnBhcmVudE5vZGU7Zm9yKDtkJiZkLnN0eWxlJiZsLmJvZHkhPT1kOyl7aWYoInZpc2libGUiIT09ZC5zdHlsZS5vdmVyZmxvdyYmIiIhPT1kLnN0eWxlLm92ZXJmbG93KXJldHVybiBkO2NvbnN0IGg9enAoZCxhKSxmPVsic2Nyb2xsIiwiaGlkZGVuIiwiYXV0byJdLF89aC5nZXRQ'@; put 'cm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpLFQ9aC5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy15IiksVz1oLmdldFByb3BlcnR5VmFsdWUoIm92ZXJmbG93LXgiKTtpZihmLmluY2x1ZGVzKF8pfHxmLmluY2x1ZGVzKFQpfHxmLmluY2x1ZGVzKFcpKXJldHVybiBkO2Q9ZC5wYXJlbnROb2Rl'@; put 'fXJldHVybiBhfWZ1bmN0aW9uIG43KGMsbCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOndpbmRvdztpZighYylyZXR1cm47aWYoYz09PWEpcmV0dXJuIndpZHRoIj09PWw/YCR7YS5pbm5lcldpZHRofXB4YDoiaGVpZ2h0Ij09'@; put 'PWw/YCR7YS5pbm5lckhlaWdodH1weGA6dm9pZCAwO2NvbnN0IGQ9Yy5zdHlsZVtsXTtpZigiIiE9PWQmJnZvaWQgMCE9PWQpcmV0dXJuIGQ7Y29uc3QgaD16cChjLGEpO3JldHVybiIiIT09aFtsXSYmdm9pZCAwIT09aFtsXT9oW2xdOnZvaWQgMH1mdW5jdGlvbiBqRWUoYyxsKXtjb25zdHtz'@; put 'ZWxlY3RvclRleHQ6YX09bDtsZXQgZD0hMTtyZXR1cm4gbC50eXBlPT09Q1NTUnVsZS5TVFlMRV9SVUxFJiZhJiYoYy5tc01hdGNoZXNTZWxlY3Rvcj9kPWMubXNNYXRjaGVzU2VsZWN0b3IoYSk6Yy5tYXRjaGVzJiYoZD1jLm1hdGNoZXMoYSkpKSxkfWZ1bmN0aW9uIHpwKGMpe2xldCBsPWFy'@; put 'Z3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cmV0dXJuIGMuY3VycmVudFN0eWxlfHxsLmdldENvbXB1dGVkU3R5bGUoYyl9ZnVuY3Rpb24gd2EoYyl7cmV0dXJuIGMub2Zmc2V0V2lkdGh9ZnVuY3Rpb24gYWwoYyl7cmV0dXJuIGMu'@; put 'b2Zmc2V0SGVpZ2h0fWZ1bmN0aW9uIGpmKGMpe3JldHVybiBjLmNsaWVudEhlaWdodHx8Yy5pbm5lckhlaWdodH1mdW5jdGlvbiBpeShjKXtyZXR1cm4gYy5jbGllbnRXaWR0aHx8Yy5pbm5lcldpZHRofWZ1bmN0aW9uIHpFZShjLGwsYSl7Yy5hZGRFdmVudExpc3RlbmVyKGwsYSwhMSl9ZnVu'@; put 'Y3Rpb24gVUVlKGMsbCxhKXtjLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxhLCExKX1mdW5jdGlvbiBoTihjKXtyZXR1cm4gYy5zZWxlY3Rpb25TdGFydD9jLnNlbGVjdGlvblN0YXJ0OjB9ZnVuY3Rpb24gY3RlKGMpe3JldHVybiBjLnNlbGVjdGlvbkVuZD9jLnNlbGVjdGlvbkVuZDowfWZ1bmN0'@; put 'aW9uIHV0ZSgpe2xldCBjPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3c7Y29uc3QgbD1jLmRvY3VtZW50O2xldCBhPSIiO3JldHVybiBjLmdldFNlbGVjdGlvbj9hPWMuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTpsLnNlbGVj'@; put 'dGlvbiYmIkNvbnRyb2wiIT09bC5zZWxlY3Rpb24udHlwZSYmKGE9bC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS50ZXh0KSxhfWZ1bmN0aW9uIGZOKCl7bGV0IGM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOndpbmRvdztjLmdldFNlbGVj'@; put 'dGlvbiYmKGMuZ2V0U2VsZWN0aW9uKCkuZW1wdHk/Yy5nZXRTZWxlY3Rpb24oKS5lbXB0eSgpOmMuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzJiZjLmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpKX1mdW5jdGlvbiBveShjLGwsYSl7aWYodm9pZCAwPT09YSYmKGE9bCks'@; put 'Yy5zZXRTZWxlY3Rpb25SYW5nZSl7Yy5mb2N1cygpO3RyeXtjLnNldFNlbGVjdGlvblJhbmdlKGwsYSl9Y2F0Y2h7Y29uc3QgaD1jLnBhcmVudE5vZGUsZj1oLnN0eWxlLmRpc3BsYXk7aC5zdHlsZS5kaXNwbGF5PSJibG9jayIsYy5zZXRTZWxlY3Rpb25SYW5nZShsLGEpLGguc3R5bGUuZGlz'@; put 'cGxheT1mfX19bGV0IHBOO2Z1bmN0aW9uIExjKCl7bGV0IGM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmRvY3VtZW50O3JldHVybiB2b2lkIDA9PT1wTiYmKHBOPWZ1bmN0aW9uIFpFZSgpe2xldCBjPWFyZ3VtZW50cy5sZW5ndGg+MCYm'@; put 'dm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpkb2N1bWVudDtjb25zdCBsPWMuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZS5oZWlnaHQ9IjIwMHB4IixsLnN0eWxlLndpZHRoPSIxMDAlIjtjb25zdCBhPWMuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5zdHlsZS5ib3hTaXpp'@; put 'bmc9ImNvbnRlbnQtYm94IixhLnN0eWxlLmhlaWdodD0iMTUwcHgiLGEuc3R5bGUubGVmdD0iMHB4IixhLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixhLnN0eWxlLnRvcD0iMHB4IixhLnN0eWxlLndpZHRoPSIyMDBweCIsYS5zdHlsZS52aXNp'@; put 'YmlsaXR5PSJoaWRkZW4iLGEuYXBwZW5kQ2hpbGQobCksKGMuYm9keXx8Yy5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKGEpO2NvbnN0IGQ9bC5vZmZzZXRXaWR0aDthLnN0eWxlLm92ZXJmbG93PSJzY3JvbGwiO2xldCBoPWwub2Zmc2V0V2lkdGg7cmV0dXJuIGQ9PT1oJiYoaD1hLmNs'@; put 'aWVudFdpZHRoKSwoYy5ib2R5fHxjLmRvY3VtZW50RWxlbWVudCkucmVtb3ZlQ2hpbGQoYSksZC1ofShjKSkscE59ZnVuY3Rpb24gZHRlKGMpe3JldHVybiBjLm9mZnNldFdpZHRoIT09Yy5jbGllbnRXaWR0aH1mdW5jdGlvbiBodGUoYyl7cmV0dXJuIGMub2Zmc2V0SGVpZ2h0IT09Yy5jbGll'@; put 'bnRIZWlnaHR9ZnVuY3Rpb24gb2soYyxsLGEpe2Muc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUzZCgke2x9LCR7YX0sMClgfWZ1bmN0aW9uIFlFZShjKXtsZXQgbDtyZXR1cm4gYy5zdHlsZS50cmFuc2Zvcm0mJiIiIT09KGw9Yy5zdHlsZS50cmFuc2Zvcm0pP1sidHJhbnNmb3JtIixsXTot'@; put 'MX1mdW5jdGlvbiBzeShjKXtjLnN0eWxlLnRyYW5zZm9ybSYmIiIhPT1jLnN0eWxlLnRyYW5zZm9ybSYmKGMuc3R5bGUudHJhbnNmb3JtPSIiKX1mdW5jdGlvbiBheShjKXtyZXR1cm4gYyYmKFsiSU5QVVQiLCJTRUxFQ1QiLCJURVhUQVJFQSJdLmluZGV4T2YoYy5ub2RlTmFtZSk+LTF8fCJ0'@; put 'cnVlIj09PWMuY29udGVudEVkaXRhYmxlKX1mdW5jdGlvbiBzayhjKXtyZXR1cm4gYXkoYykmJiExPT09Yy5oYXNBdHRyaWJ1dGUoImRhdGEtaG90LWlucHV0Iil9ZnVuY3Rpb24gZnRlKGMpe3NrKGMub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8Yy5zZWxlY3QoKX1mdW5jdGlvbiBn'@; put 'TihjKXtyZXR1cm4hYy5wYXJlbnROb2RlfWZ1bmN0aW9uIHB0ZShjLGwpe25ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZCxoKT0+e2QuZm9yRWFjaChmPT57Zi5pc0ludGVyc2VjdGluZyYmbnVsbCE9PWMub2Zmc2V0UGFyZW50JiYobCgpLGgudW5vYnNlcnZlKGMpKX0pfSx7cm9vdDpjLm93'@; put 'bmVyRG9jdW1lbnQuYm9keX0pLm9ic2VydmUoYyl9ZnVuY3Rpb24gUmEoYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGN9ZnVuY3Rpb24gZ3RlKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToyMDAsYT0wO2NvbnN0IGQ9'@; put 'e2xhc3RDYWxsVGhyb3R0bGVkOiEwfTtsZXQgaD1udWxsO3JldHVybiBmdW5jdGlvbiBmKCl7Zm9yKHZhciBfPWFyZ3VtZW50cy5sZW5ndGgsVD1uZXcgQXJyYXkoXyksVz0wO1c8XztXKyspVFtXXT1hcmd1bWVudHNbV107Y29uc3QgaWU9RGF0ZS5ub3coKTtsZXQgcGU9ITE7ZC5sYXN0Q2Fs'@; put 'bFRocm90dGxlZD0hMCxhfHwoYT1pZSxwZT0hMCk7Y29uc3Qgd2U9bC0oaWUtYSk7cmV0dXJuIHBlPyhkLmxhc3RDYWxsVGhyb3R0bGVkPSExLGMuYXBwbHkodGhpcyxUKSk6KGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoKCk9PntkLmxhc3RDYWxsVGhyb3R0bGVkPSExLGMuYXBw'@; put 'bHkodGhpcyxUKSxhPTAsaD12b2lkIDB9LHdlKSksZH19ZnVuY3Rpb24gV0VlKGMpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxMDtjb25zdCBkPWd0ZShjLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRz'@; put 'WzFdP2FyZ3VtZW50c1sxXToyMDApO2xldCBoPWE7ZnVuY3Rpb24gXygpe2Zvcih2YXIgVD1hcmd1bWVudHMubGVuZ3RoLFc9bmV3IEFycmF5KFQpLGllPTA7aWU8VDtpZSsrKVdbaWVdPWFyZ3VtZW50c1tpZV07cmV0dXJuIGg/KGgtPTEsYy5hcHBseSh0aGlzLFcpKTpkLmFwcGx5KHRoaXMs'@; put 'Vyl9cmV0dXJuIF8uY2xlYXJIaXRzPWZ1bmN0aW9uIGYoKXtoPWF9LF99ZnVuY3Rpb24gbU4oYyl7bGV0IGQsbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjAwLGE9bnVsbDtyZXR1cm4gZnVuY3Rpb24gaCgpe2Zvcih2YXIgZj1hcmd1'@; put 'bWVudHMubGVuZ3RoLF89bmV3IEFycmF5KGYpLFQ9MDtUPGY7VCsrKV9bVF09YXJndW1lbnRzW1RdO3JldHVybiBhJiZjbGVhclRpbWVvdXQoYSksYT1zZXRUaW1lb3V0KCgpPT57ZD1jLmFwcGx5KHRoaXMsXyl9LGwpLGR9fWZ1bmN0aW9uIEdFZSgpe2Zvcih2YXIgYz1hcmd1bWVudHMubGVu'@; put 'Z3RoLGw9bmV3IEFycmF5KGMpLGE9MDthPGM7YSsrKWxbYV09YXJndW1lbnRzW2FdO2NvbnN0W2QsLi4uaF09bDtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIF89YXJndW1lbnRzLmxlbmd0aCxUPW5ldyBBcnJheShfKSxXPTA7VzxfO1crKylUW1ddPWFyZ3VtZW50c1tXXTtyZXR1cm4gQWwo'@; put 'aCwoaWUscGUpPT5wZShpZSksZC5hcHBseSh0aGlzLFQpKX19ZnVuY3Rpb24gdk4oYyl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobD4xP2wtMTowKSxkPTE7ZDxsO2QrKylhW2QtMV09YXJndW1lbnRzW2RdO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZj1hcmd1'@; put 'bWVudHMubGVuZ3RoLF89bmV3IEFycmF5KGYpLFQ9MDtUPGY7VCsrKV9bVF09YXJndW1lbnRzW1RdO3JldHVybiBjLmFwcGx5KHRoaXMsYS5jb25jYXQoXykpfX1mdW5jdGlvbiBtdGUoYyl7Y29uc3QgbD1jLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24gYShkKXtyZXR1cm4gZnVuY3Rpb24oKXtm'@; put 'b3IodmFyIGY9YXJndW1lbnRzLmxlbmd0aCxfPW5ldyBBcnJheShmKSxUPTA7VDxmO1QrKylfW1RdPWFyZ3VtZW50c1tUXTtjb25zdCBXPWQuY29uY2F0KF8pO2xldCBpZTtyZXR1cm4gaWU9Vy5sZW5ndGg+PWw/Yy5hcHBseSh0aGlzLFcpOmEoVyksaWV9fShbXSl9ZnVuY3Rpb24gJEVlKGMp'@; put 'e2NvbnN0IGw9Yy5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uIGEoZCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBmPWFyZ3VtZW50cy5sZW5ndGgsXz1uZXcgQXJyYXkoZiksVD0wO1Q8ZjtUKyspX1tUXT1hcmd1bWVudHNbVF07Y29uc3QgVz1kLmNvbmNhdChfLnJldmVyc2UoKSk7bGV0IGll'@; put 'O3JldHVybiBpZT1XLmxlbmd0aD49bD9jLmFwcGx5KHRoaXMsVyk6YShXKSxpZX19KFtdKX1mdW5jdGlvbiBhayhjLGwsYSxkLGgsZixfLFQpe3JldHVybiBLaShUKT9jLmNhbGwobCxhLGQsaCxmLF8sVCk6S2koXyk/Yy5jYWxsKGwsYSxkLGgsZixfKTpLaShmKT9jLmNhbGwobCxhLGQsaCxm'@; put 'KTpLaShoKT9jLmNhbGwobCxhLGQsaCk6S2koZCk/Yy5jYWxsKGwsYSxkKTpLaShhKT9jLmNhbGwobCxhKTpjLmNhbGwobCl9ZnVuY3Rpb24gcjcoYyl7bGV0IGw7cmV0dXJuIEFycmF5LmlzQXJyYXkoYyk/bD1jLmxlbmd0aD9uZXcgQXJyYXkoYy5sZW5ndGgpLmZpbGwobnVsbCk6W106KGw9'@; put 'e30sZHMoYywoYSxkKT0+eyJfX2NoaWxkcmVuIiE9PWQmJihsW2RdPWEmJiJvYmplY3QiPT10eXBlb2YgYSYmIUFycmF5LmlzQXJyYXkoYSk/cjcoYSk6QXJyYXkuaXNBcnJheShhKT9hLmxlbmd0aCYmIm9iamVjdCI9PXR5cGVvZiBhWzBdJiYhQXJyYXkuaXNBcnJheShhWzBdKT9bcjcoYVsw'@; put 'XSldOltdOm51bGwpfSkpLGx9ZnVuY3Rpb24gemYoYyxsKXtyZXR1cm4gbC5wcm90b3R5cGUuY29uc3RydWN0b3I9bCxjLnByb3RvdHlwZT1uZXcgbCxjLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1jLGN9ZnVuY3Rpb24gWGwoYyxsLGEpe2NvbnN0IGQ9QXJyYXkuaXNBcnJheShhKTtyZXR1cm4g'@; put 'ZHMobCwoaCxmKT0+eyghMT09PWR8fGEuaW5jbHVkZXMoZikpJiYoY1tmXT1oKX0pLGN9ZnVuY3Rpb24gbHkoYyxsKXtkcyhsLChhLGQpPT57bFtkXSYmIm9iamVjdCI9PXR5cGVvZiBsW2RdPyhjW2RdfHwoY1tkXT1BcnJheS5pc0FycmF5KGxbZF0pP1tdOiJbb2JqZWN0IERhdGVdIj09PU9i'@; put 'amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChsW2RdKT9sW2RdOnt9KSxseShjW2RdLGxbZF0pKTpjW2RdPWxbZF19KX1mdW5jdGlvbiB5dShjKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGM/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjKSk6Y31mdW5jdGlvbiBXdShjKXtjb25zdCBs'@; put 'PXt9O3JldHVybiBkcyhjLChhLGQpPT57bFtkXT1hfSksbH1mdW5jdGlvbiBUYShjKXtjLk1JWElOU3x8KGMuTUlYSU5TPVtdKTtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsPjE/bC0xOjApLGQ9MTtkPGw7ZCsrKWFbZC0xXT1hcmd1bWVudHNbZF07cmV0dXJuIERu'@; put 'KGEsaD0+e2MuTUlYSU5TLnB1c2goaC5NSVhJTl9OQU1FKSxkcyhoLChmLF8pPT57aWYodm9pZCAwIT09Yy5wcm90b3R5cGVbX10pdGhyb3cgbmV3IEVycm9yKGBNaXhpbiBjb25mbGljdC4gUHJvcGVydHkgJyR7X30nIGFscmVhZHkgZXhpc3QgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlbi5g'@; put 'KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZiljLnByb3RvdHlwZVtfXT1mO2Vsc2V7Y29uc3QgVz1mdW5jdGlvbihwZSl7Y29uc3Qgd2U9YF8ke3BlfWA7cmV0dXJuIGZ1bmN0aW9uKEVlKXt0aGlzW3dlXT1FZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLnByb3RvdHlwZSxfLHtnZXQ6ZnVu'@; put 'Y3Rpb24ocGUsd2Upe2NvbnN0IEVlPWBfJHtwZX1gO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzW0VlXSYmKHRoaXNbRWVdPShpdD0+e2xldCBldD1pdDtyZXR1cm4oQXJyYXkuaXNBcnJheShldCl8fHVzKGV0KSkmJihldD15dShldCkpLGV0fSkod2UpKSx0aGlzW0Vl'@; put 'XX19KF8sZiksc2V0OlcoXyksY29uZmlndXJhYmxlOiEwfSl9fSl9KSxjfWZ1bmN0aW9uIGxrKGMsbCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGMpPT09SlNPTi5zdHJpbmdpZnkobCl9ZnVuY3Rpb24gdXMoYyl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRv'@; put 'U3RyaW5nLmNhbGwoYyl9ZnVuY3Rpb24gZmgoYyxsLGEsZCl7ZC52YWx1ZT1hLGQud3JpdGFibGU9ITEhPT1kLndyaXRhYmxlLGQuZW51bWVyYWJsZT0hMSE9PWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hMSE9PWQuY29uZmlndXJhYmxlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGws'@; put 'ZCl9ZnVuY3Rpb24gZHMoYyxsKXtmb3IoY29uc3QgYSBpbiBjKWlmKCghYy5oYXNPd25Qcm9wZXJ0eXx8Yy5oYXNPd25Qcm9wZXJ0eSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGMsYSkpJiYhMT09PWwoY1thXSxhLGMpKWJyZWFrO3JldHVybiBjfWZ1bmN0aW9uIHZ0'@; put 'ZShjLGwpe2NvbnN0IGE9bC5zcGxpdCgiLiIpO2xldCBkPWM7cmV0dXJuIGRzKGEsaD0+e2lmKGQ9ZFtoXSx2b2lkIDA9PT1kKXJldHVybiBkPXZvaWQgMCwhMX0pLGR9ZnVuY3Rpb24gY2soYyxsLGEpe2NvbnN0IGQ9bC5zcGxpdCgiLiIpO2xldCBoPWM7ZC5mb3JFYWNoKChmLF8pPT57XyE9'@; put 'PWQubGVuZ3RoLTE/KGJsKGgsZil8fChoW2ZdPXt9KSxoPWhbZl0pOmhbZl09YX0pfWZ1bmN0aW9uIHVrKGMpe2lmKCF1cyhjKSlyZXR1cm4gMDtjb25zdCBsPWZ1bmN0aW9uKGEpe2xldCBkPTA7cmV0dXJuIHVzKGEpP2RzKGEsKGgsZik9PnsiX19jaGlsZHJlbiIhPT1mJiYoZCs9bChoKSl9'@; put 'KTpkKz0xLGR9O3JldHVybiBsKGMpfWZ1bmN0aW9uIF9nKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToidmFsdWUiO2NvbnN0IGE9YF8ke2x9YCxkPXtfdG91Y2hlZDohMSxbYV06Yyxpc1RvdWNoZWQoKXtyZXR1cm4gdGhp'@; put 'cy5fdG91Y2hlZH19O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxsLHtnZXQoKXtyZXR1cm4gdGhpc1thXX0sc2V0KGgpe3RoaXMuX3RvdWNoZWQ9ITAsdGhpc1thXT1ofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGR9ZnVuY3Rpb24gYmwoYyxsKXtyZXR1cm4gT2Jq'@; put 'ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGMsbCl9RigxMzAwNik7Y29uc3QgZmQ9Yz0+e2NvbnN0IGw9e3ZhbHVlOiExLHRlc3Q6KGEsZCk9PntsLnZhbHVlPWMoYSxkKX19O3JldHVybiBsfSxVZj17Y2hyb21lOmZkKChjLGwpPT4vQ2hyb21lLy50ZXN0KGMpJiYvR29vZ2xl'@; put 'Ly50ZXN0KGwpKSxjaHJvbWVXZWJLaXQ6ZmQoYz0+L0NyaU9TLy50ZXN0KGMpKSxlZGdlOmZkKGM9Pi9FZGdlLy50ZXN0KGMpKSxlZGdlV2ViS2l0OmZkKGM9Pi9FZGdpT1MvLnRlc3QoYykpLGZpcmVmb3g6ZmQoYz0+L0ZpcmVmb3gvLnRlc3QoYykpLGZpcmVmb3hXZWJLaXQ6ZmQoYz0+L0Z4'@; put 'aU9TLy50ZXN0KGMpKSxtb2JpbGU6ZmQoYz0+L0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KGMpKSxzYWZhcmk6ZmQoKGMsbCk9Pi9TYWZhcmkvLnRlc3QoYykmJi9BcHBsZSBDb21wdXRlci8udGVzdChsKSl9LGk3'@; put 'PXttYWM6ZmQoYz0+L15NYWMvLnRlc3QoYykpLHdpbjpmZChjPT4vXldpbi8udGVzdChjKSksbGludXg6ZmQoYz0+L15MaW51eC8udGVzdChjKSksaW9zOmZkKGM9Pi9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChjKSl9O2Z1bmN0aW9uIF90ZSgpe2xldHt1c2VyQWdlbnQ6Yz1uYXZpZ2F0b3Iu'@; put 'dXNlckFnZW50LHZlbmRvcjpsPW5hdmlnYXRvci52ZW5kb3J9PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtkcyhVZixhPT57bGV0e3Rlc3Q6ZH09YTtkKGMsbCl9KX1mdW5jdGlvbiBidGUoKXtsZXR7cGxhdGZvcm06Yz1uYXZpZ2F0'@; put 'b3IucGxhdGZvcm19PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtkcyhpNyxsPT57bGV0e3Rlc3Q6YX09bDthKGMpfSl9ZnVuY3Rpb24gX04oKXtyZXR1cm4gVWYuY2hyb21lLnZhbHVlfWZ1bmN0aW9uIHl0ZSgpe3JldHVybiBVZi5j'@; put 'aHJvbWVXZWJLaXQudmFsdWV9ZnVuY3Rpb24gZGsoKXtyZXR1cm4gVWYuZmlyZWZveC52YWx1ZX1mdW5jdGlvbiB3dGUoKXtyZXR1cm4gVWYuZmlyZWZveFdlYktpdC52YWx1ZX1mdW5jdGlvbiBxRWUoKXtyZXR1cm4gVWYuc2FmYXJpLnZhbHVlfWZ1bmN0aW9uIEN0ZSgpe3JldHVybiBVZi5l'@; put 'ZGdlLnZhbHVlfWZ1bmN0aW9uIEtFZSgpe3JldHVybiBVZi5lZGdlV2ViS2l0LnZhbHVlfWZ1bmN0aW9uIG0yKCl7cmV0dXJuIFVmLm1vYmlsZS52YWx1ZX1mdW5jdGlvbiBiTigpe3JldHVybiBpNy5pb3MudmFsdWV9ZnVuY3Rpb24geU4oKXtsZXR7bWF4VG91Y2hQb2ludHM6Y309YXJndW1l'@; put 'bnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm5hdmlnYXRvcjtyZXR1cm4gYz4yJiZpNy5tYWMudmFsdWV9ZnVuY3Rpb24gd04oKXtyZXR1cm4gaTcud2luLnZhbHVlfWZ1bmN0aW9uIGhrKCl7cmV0dXJuIGk3Lm1hYy52YWx1ZX1mdW5jdGlvbiBYRWUo'@; put 'KXtyZXR1cm4gaTcubGludXgudmFsdWV9X3RlKCksYnRlKCk7Y29uc3QgY289e0FMVDoxOCxBUlJPV19ET1dOOjQwLEFSUk9XX0xFRlQ6MzcsQVJST1dfUklHSFQ6MzksQVJST1dfVVA6MzgsQVVESU9fRE9XTjpkaygpPzE4MjoxNzQsQVVESU9fTVVURTpkaygpPzE4MToxNzMsQVVESU9fVVA6'@; put 'ZGsoKT8xODM6MTc1LEJBQ0tTUEFDRTo4LENBUFNfTE9DSzoyMCxDT01NQToxODgsQ09NTUFORF9MRUZUOjkxLENPTU1BTkRfUklHSFQ6OTMsQ09NTUFORF9GSVJFRk9YOjIyNCxDT05UUk9MOjE3LERFTEVURTo0NixFTkQ6MzUsRU5URVI6MTMsRVNDQVBFOjI3LEYxOjExMixGMjoxMTMsRjM6'@; put 'MTE0LEY0OjExNSxGNToxMTYsRjY6MTE3LEY3OjExOCxGODoxMTksRjk6MTIwLEYxMDoxMjEsRjExOjEyMixGMTI6MTIzLEYxMzoxMjQsRjE0OjEyNSxGMTU6MTI2LEYxNjoxMjcsRjE3OjEyOCxGMTg6MTI5LEYxOToxMzAsSE9NRTozNixJTlNFUlQ6NDUsTUVESUFfTkVYVDoxNzYsTUVESUFf'@; put 'UExBWV9QQVVTRToxNzksTUVESUFfUFJFVjoxNzcsTUVESUFfU1RPUDoxNzgsTlVMTDowLE5VTV9MT0NLOjE0NCxQQUdFX0RPV046MzQsUEFHRV9VUDozMyxQQVVTRToxOSxQRVJJT0Q6MTkwLFNDUk9MTF9MT0NLOjE0NSxTSElGVDoxNixTUEFDRTozMixUQUI6OSxBOjY1LEM6NjcsRDo2OCxG'@; put 'OjcwLEw6NzYsTzo3OSxQOjgwLFM6ODMsVjo4NixYOjg4LFk6ODksWjo5MH0sSkVlPVtjby5BTFQsY28uQVJST1dfRE9XTixjby5BUlJPV19MRUZULGNvLkFSUk9XX1JJR0hULGNvLkFSUk9XX1VQLGNvLkFVRElPX0RPV04sY28uQVVESU9fTVVURSxjby5BVURJT19VUCxjby5CQUNLU1BBQ0Us'@; put 'Y28uQ0FQU19MT0NLLGNvLkRFTEVURSxjby5FTkQsY28uRU5URVIsY28uRVNDQVBFLGNvLkYxLGNvLkYyLGNvLkYzLGNvLkY0LGNvLkY1LGNvLkY2LGNvLkY3LGNvLkY4LGNvLkY5LGNvLkYxMCxjby5GMTEsY28uRjEyLGNvLkYxMyxjby5GMTQsY28uRjE1LGNvLkYxNixjby5GMTcsY28uRjE4'@; put 'LGNvLkYxOSxjby5IT01FLGNvLklOU0VSVCxjby5NRURJQV9ORVhULGNvLk1FRElBX1BMQVlfUEFVU0UsY28uTUVESUFfUFJFVixjby5NRURJQV9TVE9QLGNvLk5VTEwsY28uTlVNX0xPQ0ssY28uUEFHRV9ET1dOLGNvLlBBR0VfVVAsY28uUEFVU0UsY28uU0NST0xMX0xPQ0ssY28uU0hJRlQs'@; put 'Y28uVEFCXTtmdW5jdGlvbiBTdGUoYyl7cmV0dXJuIDMyPT09Y3x8Yz49NDgmJmM8PTU3fHxjPj05NiYmYzw9MTExfHxjPj0xODYmJmM8PTE5Mnx8Yz49MjE5JiZjPD0yMjJ8fGM+PTIyNnx8Yz49NjUmJmM8PTkwfWZ1bmN0aW9uIENOKGMpe3JldHVybiBKRWUuaW5jbHVkZXMoYyl9ZnVuY3Rp'@; put 'b24gUUVlKGMpe2NvbnN0IGw9W107cmV0dXJuIGhrKCk/bC5wdXNoKGNvLkNPTU1BTkRfTEVGVCxjby5DT01NQU5EX1JJR0hULGNvLkNPTU1BTkRfRklSRUZPWCk6bC5wdXNoKGNvLkNPTlRST0wpLGwuaW5jbHVkZXMoYyl9ZnVuY3Rpb24gTXRlKGMpe3JldHVybltjby5DT05UUk9MLGNvLkNP'@; put 'TU1BTkRfTEVGVCxjby5DT01NQU5EX1JJR0hULGNvLkNPTU1BTkRfRklSRUZPWF0uaW5jbHVkZXMoYyl9ZnVuY3Rpb24gbzcoYyxsKXtjb25zdCBhPWwuc3BsaXQoInwiKTtsZXQgZD0hMTtyZXR1cm4gRG4oYSxoPT57aWYoYz09PWNvW2hdKXJldHVybiBkPSEwLCExfSksZH1mdW5jdGlvbiB2'@; put 'MihjKXtjLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25FbmFibGVkPSExLGMuY2FuY2VsQnViYmxlPSEwfWZ1bmN0aW9uIGJnKGMpe3JldHVybiExPT09Yy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uRW5hYmxlZH1mdW5jdGlvbiBVcChjKXtyZXR1cm4gMj09PWMuYnV0dG9ufWZ1bmN0aW9uIGZrKGMp'@; put 'e3JldHVybiAwPT09Yy5idXR0b259ZnVuY3Rpb24gR2EoKXtLaShjb25zb2xlKSYmY29uc29sZS53YXJuKC4uLmFyZ3VtZW50cyl9ZnVuY3Rpb24gU04oKXtLaShjb25zb2xlKSYmY29uc29sZS5lcnJvciguLi5hcmd1bWVudHMpfWNvbnN0IHM3PVsiYWZ0ZXJDZWxsTWV0YVJlc2V0IiwiYWZ0'@; put 'ZXJDaGFuZ2UiLCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLCJiZWZvcmVDb250ZXh0TWVudVNldEl0ZW1zIiwiYWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyIsImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIiwiYWZ0ZXJDb250ZXh0TWVudUhpZGUiLCJiZWZvcmVD'@; put 'b250ZXh0TWVudVNob3ciLCJhZnRlckNvbnRleHRNZW51U2hvdyIsImFmdGVyQ29weUxpbWl0IiwiYmVmb3JlQ3JlYXRlQ29sIiwiYWZ0ZXJDb2x1bW5TZXF1ZW5jZUNoYW5nZSIsImFmdGVyQ3JlYXRlQ29sIiwiYmVmb3JlQ3JlYXRlUm93IiwiYWZ0ZXJDcmVhdGVSb3ciLCJhZnRlckRlc2Vs'@; put 'ZWN0IiwiYWZ0ZXJEZXN0cm95IiwiYWZ0ZXJEb2N1bWVudEtleURvd24iLCJhZnRlckRyYXdTZWxlY3Rpb24iLCJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsImFmdGVyR2V0Q2VsbE1ldGEiLCJhZnRlckdldENvbEhlYWRlciIsImFmdGVyR2V0Um93SGVhZGVyIiwiYWZ0ZXJJbml0Iiwi'@; put 'YWZ0ZXJMb2FkRGF0YSIsImFmdGVyVXBkYXRlRGF0YSIsImFmdGVyTW9tZW50dW1TY3JvbGwiLCJhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biIsImFmdGVyT25DZWxsQ29ybmVyRGJsQ2xpY2siLCJhZnRlck9uQ2VsbE1vdXNlRG93biIsImFmdGVyT25DZWxsTW91c2VVcCIsImFmdGVyT25D'@; put 'ZWxsQ29udGV4dE1lbnUiLCJhZnRlck9uQ2VsbE1vdXNlT3ZlciIsImFmdGVyT25DZWxsTW91c2VPdXQiLCJhZnRlclJlbW92ZUNvbCIsImFmdGVyUmVtb3ZlUm93IiwiYmVmb3JlUmVuZGVyZXIiLCJhZnRlclJlbmRlcmVyIiwiYWZ0ZXJSb3dTZXF1ZW5jZUNoYW5nZSIsImFmdGVyU2Nyb2xs'@; put 'SG9yaXpvbnRhbGx5IiwiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IiwiYWZ0ZXJTZWxlY3Rpb24iLCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsImFmdGVyU2VsZWN0aW9uRW5kIiwiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLCJhZnRlclNldENlbGxNZXRhIiwiYWZ0ZXJSZW1vdmVDZWxsTWV0YSIs'@; put 'ImFmdGVyU2V0RGF0YUF0Q2VsbCIsImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIsImFmdGVyVXBkYXRlU2V0dGluZ3MiLCJhZnRlclZhbGlkYXRlIiwiYmVmb3JlTGFuZ3VhZ2VDaGFuZ2UiLCJhZnRlckxhbmd1YWdlQ2hhbmdlIiwiYmVmb3JlQXV0'@; put 'b2ZpbGwiLCJhZnRlckF1dG9maWxsIiwiYmVmb3JlQ2VsbEFsaWdubWVudCIsImJlZm9yZUNoYW5nZSIsImJlZm9yZUNoYW5nZVJlbmRlciIsImJlZm9yZURyYXdCb3JkZXJzIiwiYmVmb3JlR2V0Q2VsbE1ldGEiLCJiZWZvcmVSZW1vdmVDZWxsTWV0YSIsImJlZm9yZUluaXQiLCJiZWZvcmVJ'@; put 'bml0V2Fsa29udGFibGUiLCJiZWZvcmVMb2FkRGF0YSIsImJlZm9yZVVwZGF0ZURhdGEiLCJiZWZvcmVLZXlEb3duIiwiYmVmb3JlT25DZWxsTW91c2VEb3duIiwiYmVmb3JlT25DZWxsTW91c2VVcCIsImJlZm9yZU9uQ2VsbENvbnRleHRNZW51IiwiYmVmb3JlT25DZWxsTW91c2VPdmVyIiwi'@; put 'YmVmb3JlT25DZWxsTW91c2VPdXQiLCJiZWZvcmVSZW1vdmVDb2wiLCJiZWZvcmVSZW1vdmVSb3ciLCJiZWZvcmVWaWV3UmVuZGVyIiwiYWZ0ZXJWaWV3UmVuZGVyIiwiYmVmb3JlUmVuZGVyIiwiYWZ0ZXJSZW5kZXIiLCJiZWZvcmVTZXRDZWxsTWV0YSIsImJlZm9yZVNldFJhbmdlU3RhcnRP'@; put 'bmx5IiwiYmVmb3JlU2V0UmFuZ2VTdGFydCIsImJlZm9yZVNldFJhbmdlRW5kIiwiYmVmb3JlVG91Y2hTY3JvbGwiLCJiZWZvcmVWYWxpZGF0ZSIsImJlZm9yZVZhbHVlUmVuZGVyIiwiY29uc3RydWN0IiwiaW5pdCIsIm1vZGlmeUNvbEhlYWRlciIsIm1vZGlmeUNvbFdpZHRoIiwibW9kaWZ5'@; put 'Um93SGVhZGVyIiwibW9kaWZ5Um93SGVpZ2h0IiwibW9kaWZ5RGF0YSIsIm1vZGlmeVNvdXJjZURhdGEiLCJtb2RpZnlSb3dEYXRhIiwibW9kaWZ5R2V0Q2VsbENvb3JkcyIsImJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIsImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsInBl'@; put 'cnNpc3RlbnRTdGF0ZUxvYWQiLCJwZXJzaXN0ZW50U3RhdGVSZXNldCIsInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJiZWZvcmVDb2x1bW5Tb3J0IiwiYWZ0ZXJDb2x1bW5Tb3J0IiwibW9kaWZ5QXV0b2ZpbGxSYW5nZSIsIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLCJiZWZvcmVDdXQiLCJhZnRlckN1'@; put 'dCIsImJlZm9yZUNvcHkiLCJhZnRlckNvcHkiLCJiZWZvcmVQYXN0ZSIsImFmdGVyUGFzdGUiLCJiZWZvcmVDb2x1bW5GcmVlemUiLCJhZnRlckNvbHVtbkZyZWV6ZSIsImJlZm9yZUNvbHVtbk1vdmUiLCJhZnRlckNvbHVtbk1vdmUiLCJiZWZvcmVDb2x1bW5VbmZyZWV6ZSIsImFmdGVyQ29s'@; put 'dW1uVW5mcmVlemUiLCJiZWZvcmVSb3dNb3ZlIiwiYWZ0ZXJSb3dNb3ZlIiwiYmVmb3JlQ29sdW1uUmVzaXplIiwiYWZ0ZXJDb2x1bW5SZXNpemUiLCJiZWZvcmVSb3dSZXNpemUiLCJhZnRlclJvd1Jlc2l6ZSIsImFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzIiwiYWZ0ZXJHZXRSb3dI'@; put 'ZWFkZXJSZW5kZXJlcnMiLCJiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLCJiZWZvcmVGaWx0ZXIiLCJhZnRlckZpbHRlciIsImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIiwiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIiwiYWZ0'@; put 'ZXJTaGVldEFkZGVkIiwiYWZ0ZXJTaGVldFJlbmFtZWQiLCJhZnRlclNoZWV0UmVtb3ZlZCIsIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsIm1vZGlmeUNvbHVtbkhlYWRlclZhbHVlIiwiYmVmb3JlVW5kbyIsImJlZm9yZVVuZG9TdGFja0NoYW5nZSIsImFmdGVyVW5kbyIsImFmdGVyVW5k'@; put 'b1N0YWNrQ2hhbmdlIiwiYmVmb3JlUmVkbyIsImJlZm9yZVJlZG9TdGFja0NoYW5nZSIsImFmdGVyUmVkbyIsImFmdGVyUmVkb1N0YWNrQ2hhbmdlIiwibW9kaWZ5Um93SGVhZGVyV2lkdGgiLCJtb2RpZnlUcmFuc2Zvcm1TdGFydCIsIm1vZGlmeVRyYW5zZm9ybUVuZCIsImFmdGVyTW9kaWZ5'@; put 'VHJhbnNmb3JtU3RhcnQiLCJhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCIsImFmdGVyVmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiLCJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIiwiYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQiLCJiZWZvcmVIaWRlUm93cyIsImFm'@; put 'dGVySGlkZVJvd3MiLCJiZWZvcmVVbmhpZGVSb3dzIiwiYWZ0ZXJVbmhpZGVSb3dzIiwiYmVmb3JlSGlkZUNvbHVtbnMiLCJhZnRlckhpZGVDb2x1bW5zIiwiYmVmb3JlVW5oaWRlQ29sdW1ucyIsImFmdGVyVW5oaWRlQ29sdW1ucyIsImJlZm9yZVRyaW1Sb3ciLCJhZnRlclRyaW1Sb3ciLCJi'@; put 'ZWZvcmVVbnRyaW1Sb3ciLCJhZnRlclVudHJpbVJvdyIsImJlZm9yZURyb3Bkb3duTWVudVNob3ciLCJhZnRlckRyb3Bkb3duTWVudVNob3ciLCJhZnRlckRyb3Bkb3duTWVudUhpZGUiLCJiZWZvcmVBZGRDaGlsZCIsImFmdGVyQWRkQ2hpbGQiLCJiZWZvcmVEZXRhY2hDaGlsZCIsImFmdGVy'@; put 'RGV0YWNoQ2hpbGQiLCJhZnRlckJlZ2luRWRpdGluZyIsImJlZm9yZU1lcmdlQ2VsbHMiLCJhZnRlck1lcmdlQ2VsbHMiLCJiZWZvcmVVbm1lcmdlQ2VsbHMiLCJhZnRlclVubWVyZ2VDZWxscyIsImFmdGVyTGlzdGVuIiwiYWZ0ZXJVbmxpc3RlbiIsImFmdGVyUmVmcmVzaERpbWVuc2lvbnMi'@; put 'LCJiZWZvcmVSZWZyZXNoRGltZW5zaW9ucyIsImJlZm9yZUNvbHVtbkNvbGxhcHNlIiwiYWZ0ZXJDb2x1bW5Db2xsYXBzZSIsImJlZm9yZUNvbHVtbkV4cGFuZCIsImFmdGVyQ29sdW1uRXhwYW5kIiwibW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkIl0sZWtlPUFhYFRoZSBwbHVnaW4gaG9vayAi'@; put 'W2hvb2tOYW1lXSIgd2FzIHJlbW92ZWQgaW4gSGFuZHNvbnRhYmxlIFtyZW1vdmVkSW5WZXJzaW9uXS5ceDIwCiAgUGxlYXNlIGNvbnN1bHQgcmVsZWFzZSBub3RlcyBodHRwczovL2dpdGh1Yi5jb20vaGFuZHNvbnRhYmxlL2hhbmRzb250YWJsZS9yZWxlYXNlcy90YWcvW3JlbW92ZWRJblZl'@; put 'cnNpb25dIHRvXHgyMAogIGxlYXJuIGFib3V0IHRoZSBtaWdyYXRpb24gcGF0aC5gLE1OPW5ldyBNYXAoW1sibW9kaWZ5Um93IiwiOC4wLjAiXSxbIm1vZGlmeUNvbCIsIjguMC4wIl0sWyJ1bm1vZGlmeVJvdyIsIjguMC4wIl0sWyJ1bm1vZGlmeUNvbCIsIjguMC4wIl0sWyJza2lwTGVuZ3Ro'@; put 'Q2FjaGUiLCI4LjAuMCJdLFsiaGlkZGVuQ29sdW1uIiwiOC4wLjAiXSxbImhpZGRlblJvdyIsIjguMC4wIl1dKSx4Tj1uZXcgTWFwKFtdKTtjbGFzcyB4dGV7c3RhdGljIGdldFNpbmdsZXRvbigpe3JldHVybiBmdW5jdGlvbiBua2UoKXtyZXR1cm4gdGtlfSgpfWNvbnN0cnVjdG9yKCl7dGhp'@; put 'cy5nbG9iYWxCdWNrZXQ9dGhpcy5jcmVhdGVFbXB0eUJ1Y2tldCgpfWNyZWF0ZUVtcHR5QnVja2V0KCl7Y29uc3QgbD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBEbihzNyxhPT5sW2FdPVtdKSxsfWdldEJ1Y2tldCgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJn'@; put 'dW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO3JldHVybiBsPyhsLnBsdWdpbkhvb2tCdWNrZXR8fChsLnBsdWdpbkhvb2tCdWNrZXQ9dGhpcy5jcmVhdGVFbXB0eUJ1Y2tldCgpKSxsLnBsdWdpbkhvb2tCdWNrZXQpOnRoaXMuZ2xvYmFsQnVja2V0fWFkZChsLGEpe2xldCBkPWFyZ3VtZW50'@; put 'cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKEFycmF5LmlzQXJyYXkoYSkpRG4oYSxoPT50aGlzLmFkZChsLGgsZCkpO2Vsc2V7TU4uaGFzKGwpJiZHYShjTihla2Use2hvb2tOYW1lOmwscmVtb3ZlZEluVmVyc2lvbjpNTi5nZXQobCl9KSks'@; put 'eE4uaGFzKGwpJiZHYSh4Ti5nZXQobCkpO2NvbnN0IGg9dGhpcy5nZXRCdWNrZXQoZCk7aWYodHlwZW9mIGhbbF0+InUiJiYodGhpcy5yZWdpc3RlcihsKSxoW2xdPVtdKSxhLnNraXA9ITEsLTE9PT1oW2xdLmluZGV4T2YoYSkpe2xldCBmPSExO2EuaW5pdGlhbEhvb2smJkRuKGhbbF0sKF8s'@; put 'VCk9PntpZihfLmluaXRpYWxIb29rKXJldHVybiBoW2xdW1RdPWEsZj0hMCwhMX0pLGZ8fGhbbF0ucHVzaChhKX19cmV0dXJuIHRoaXN9b25jZShsLGEpe2xldCBkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO0FycmF5LmlzQXJy'@; put 'YXkoYSk/RG4oYSxoPT50aGlzLm9uY2UobCxoLGQpKTooYS5ydW5PbmNlPSEwLHRoaXMuYWRkKGwsYSxkKSl9cmVtb3ZlKGwsYSl7Y29uc3QgaD10aGlzLmdldEJ1Y2tldChhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCk7cmV0dXJu'@; put 'IHR5cGVvZiBoW2xdPCJ1IiYmaFtsXS5pbmRleE9mKGEpPj0wJiYoYS5za2lwPSEwLCEwKX1oYXMobCl7Y29uc3QgZD10aGlzLmdldEJ1Y2tldChhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbCk7cmV0dXJuISh2b2lkIDA9PT1kW2xd'@; put 'fHwhZFtsXS5sZW5ndGgpfXJ1bihsLGEsZCxoLGYsXyxULFcpe3tjb25zdCBpZT10aGlzLmdsb2JhbEJ1Y2tldFthXSxwZT1pZT9pZS5sZW5ndGg6MDtsZXQgd2U9MDtpZihwZSlmb3IoO3dlPHBlOyl7aWYoIWllW3dlXXx8aWVbd2VdLnNraXApe3dlKz0xO2NvbnRpbnVlfWNvbnN0IEVlPWFr'@; put 'KGllW3dlXSxsLGQsaCxmLF8sVCxXKTt2b2lkIDAhPT1FZSYmKGQ9RWUpLGllW3dlXSYmaWVbd2VdLnJ1bk9uY2UmJnRoaXMucmVtb3ZlKGEsaWVbd2VdKSx3ZSs9MX19e2NvbnN0IGllPXRoaXMuZ2V0QnVja2V0KGwpW2FdLHBlPWllP2llLmxlbmd0aDowO2xldCB3ZT0wO2lmKHBlKWZvcig7'@; put 'd2U8cGU7KXtpZighaWVbd2VdfHxpZVt3ZV0uc2tpcCl7d2UrPTE7Y29udGludWV9Y29uc3QgRWU9YWsoaWVbd2VdLGwsZCxoLGYsXyxULFcpO3ZvaWQgMCE9PUVlJiYoZD1FZSksaWVbd2VdJiZpZVt3ZV0ucnVuT25jZSYmdGhpcy5yZW1vdmUoYSxpZVt3ZV0sbCksd2UrPTF9fXJldHVybiBk'@; put 'fWRlc3Ryb3koKXtkcyh0aGlzLmdldEJ1Y2tldChhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCksKGEsZCxoKT0+aFtkXS5sZW5ndGg9MCl9cmVnaXN0ZXIobCl7dGhpcy5pc1JlZ2lzdGVyZWQobCl8fHM3LnB1c2gobCl9ZGVyZWdp'@; put 'c3RlcihsKXt0aGlzLmlzUmVnaXN0ZXJlZChsKSYmczcuc3BsaWNlKHM3LmluZGV4T2YobCksMSl9aXNEZXByZWNhdGVkKGwpe3JldHVybiB4Ti5oYXMobCl8fE1OLmhhcyhsKX1pc1JlZ2lzdGVyZWQobCl7cmV0dXJuIHM3LmluZGV4T2YobCk+PTB9Z2V0UmVnaXN0ZXJlZCgpe3JldHVybiBz'@; put 'N319Y29uc3QgdGtlPW5ldyB4dGUsc289eHRlLEVOPW5ldyBNYXA7ZnVuY3Rpb24gcGQoKXtsZXQgYz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ImNvbW1vbiI7RU4uaGFzKGMpfHxFTi5zZXQoYyxuZXcgTWFwKTtjb25zdCBsPUVOLmdl'@; put 'dChjKTtyZXR1cm57cmVnaXN0ZXI6ZnVuY3Rpb24gYShULFcpe2wuc2V0KFQsVyl9LGdldEl0ZW06ZnVuY3Rpb24gZChUKXtyZXR1cm4gbC5nZXQoVCl9LGhhc0l0ZW06ZnVuY3Rpb24gaChUKXtyZXR1cm4gbC5oYXMoVCl9LGdldE5hbWVzOmZ1bmN0aW9uIGYoKXtyZXR1cm5bLi4ubC5rZXlz'@; put 'KCldfSxnZXRWYWx1ZXM6ZnVuY3Rpb24gXygpe3JldHVyblsuLi5sLnZhbHVlcygpXX19fWNvbnN0IGtOPW5ldyBXZWFrTWFwLHtyZWdpc3Rlcjpya2UsZ2V0SXRlbTpFdGUsaGFzSXRlbTprdGUsZ2V0TmFtZXM6aWtlfT1wZCgiZWRpdG9ycyIpO2Z1bmN0aW9uIG9rZShjKXtjb25zdCBsPXt9'@; put 'LGE9Yzt0aGlzLmdldENvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LHRoaXMuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oZCl7cmV0dXJuIGQuZ3VpZCBpbiBsfHwobFtkLmd1aWRdPW5ldyBhKGQpKSxsW2QuZ3VpZF19LHNvLmdldFNpbmdsZXRvbigpLmFkZCgiYWZ0ZXJEZXN0cm95Iixm'@; put 'dW5jdGlvbigpe2xbdGhpcy5ndWlkXT1udWxsfSl9ZnVuY3Rpb24gQXRlKGMsbCl7bGV0IGE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGMpa04uZ2V0KGMpfHxSMChudWxsLGMpLGE9a04uZ2V0KGMpO2Vsc2V7aWYoInN0cmluZyIhPXR5cGVvZiBjKXRocm93IEVycm9yKCdPbmx5IHN0cmluZ3Mg'@; put 'YW5kIGZ1bmN0aW9ucyBjYW4gYmUgcGFzc2VkIGFzICJlZGl0b3IiIHBhcmFtZXRlcicpO2E9RXRlKGMpfWlmKCFhKXRocm93IEVycm9yKGBObyBlZGl0b3IgcmVnaXN0ZXJlZCB1bmRlciBuYW1lICIke2N9ImApO3JldHVybiBhLmdldEluc3RhbmNlKGwpfWZ1bmN0aW9uIHBrKGMpe2lmKCJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBjKXJldHVybiBjO2lmKCFrdGUoYykpdGhyb3cgRXJyb3IoYE5vIHJlZ2lzdGVyZWQgZWRpdG9yIGZvdW5kIHVuZGVyICIke2N9IiBuYW1lYCk7cmV0dXJuIEV0ZShjKS5nZXRDb25zdHJ1Y3RvcigpfWZ1bmN0aW9uIFIwKGMsbCl7YyYmInN0cmluZyIhPXR5cGVv'@; put 'ZiBjJiYoYz0obD1jKS5FRElUT1JfVFlQRSk7Y29uc3QgYT1uZXcgb2tlKGwpOyJzdHJpbmciPT10eXBlb2YgYyYmcmtlKGMsYSksa04uc2V0KGwsYSl9bGV0IGdrPTA7Y29uc3QgbGw9Y2xhc3Mgc2tle2NvbnN0cnVjdG9yKCl7dGhpcy5jb250ZXh0PShhcmd1bWVudHMubGVuZ3RoPjAmJnZv'@; put 'aWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCl8fHRoaXMsdGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzfHwodGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzPVtdKX1hZGRFdmVudExpc3RlbmVyKGwsYSxkKXtsZXQgaD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9'@; put 'PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2Z1bmN0aW9uIGYoXyl7ZC5jYWxsKHRoaXMsZnVuY3Rpb24gYWtlKGMpe2NvbnN0IGw9Yy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247cmV0dXJuIGMuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7bC5hcHBseSh0aGlzKSx2'@; put 'Mih0aGlzKX0sY30oXykpfXJldHVybiB0aGlzLmNvbnRleHQuZXZlbnRMaXN0ZW5lcnMucHVzaCh7ZWxlbWVudDpsLGV2ZW50OmEsY2FsbGJhY2s6ZCxjYWxsYmFja1Byb3h5OmYsb3B0aW9uczpoLGV2ZW50TWFuYWdlcjp0aGlzfSksbC5hZGRFdmVudExpc3RlbmVyKGEsZixoKSxnays9MSwo'@; put 'KT0+e3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLGEsZCl9fXJlbW92ZUV2ZW50TGlzdGVuZXIobCxhLGQpe2xldCBfLGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXSxmPXRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5sZW5ndGg7'@; put 'Zm9yKDtmOylpZihmLT0xLF89dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzW2ZdLF8uZXZlbnQ9PT1hJiZfLmVsZW1lbnQ9PT1sKXtpZihkJiZkIT09Xy5jYWxsYmFja3x8aCYmXy5ldmVudE1hbmFnZXIhPT10aGlzKWNvbnRpbnVlO3RoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5zcGxp'@; put 'Y2UoZiwxKSxfLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihfLmV2ZW50LF8uY2FsbGJhY2tQcm94eSxfLm9wdGlvbnMpLGdrLT0xfX1jbGVhckV2ZW50cygpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoIXRoaXMu'@; put 'Y29udGV4dClyZXR1cm47bGV0IGE9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLmxlbmd0aDtmb3IoO2E7KXthLT0xO2NvbnN0IGQ9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzW2FdO2wmJmQuZXZlbnRNYW5hZ2VyIT09dGhpc3x8KHRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5z'@; put 'cGxpY2UoYSwxKSxkLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLmV2ZW50LGQuY2FsbGJhY2tQcm94eSxkLm9wdGlvbnMpLGdrLT0xKX19Y2xlYXIoKXt0aGlzLmNsZWFyRXZlbnRzKCl9ZGVzdHJveSgpe3RoaXMuY2xlYXJFdmVudHMoKSx0aGlzLmNvbnRleHQ9bnVsbH1kZXN0cm95'@; put 'V2l0aE93bkV2ZW50c09ubHkoKXt0aGlzLmNsZWFyRXZlbnRzKCEwKSx0aGlzLmNvbnRleHQ9bnVsbH1maXJlRXZlbnQobCxhKXtsZXQgZD1sLmRvY3VtZW50LGg9bDtkfHwoZD1sLm93bmVyRG9jdW1lbnQ/bC5vd25lckRvY3VtZW50OmwsaD1kLmRlZmF1bHRWaWV3KTtjb25zdCBmPXtidWJi'@; put 'bGVzOiEwLGNhbmNlbGFibGU6Im1vdXNlbW92ZSIhPT1hLHZpZXc6aCxkZXRhaWw6MCxzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MSxjbGllbnRZOjEsY3RybEtleTohMSxhbHRLZXk6ITEsc2hpZnRLZXk6ITEsbWV0YUtleTohMSxidXR0b246MCxyZWxhdGVkVGFyZ2V0OnZvaWQgMH07'@; put 'bGV0IF87ZC5jcmVhdGVFdmVudD8oXz1kLmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpLF8uaW5pdE1vdXNlRXZlbnQoYSxmLmJ1YmJsZXMsZi5jYW5jZWxhYmxlLGYudmlldyxmLmRldGFpbCxmLnNjcmVlblgsZi5zY3JlZW5ZLGYuY2xpZW50WCxmLmNsaWVudFksZi5jdHJsS2V5LGYuYWx0'@; put 'S2V5LGYuc2hpZnRLZXksZi5tZXRhS2V5LGYuYnV0dG9uLGYucmVsYXRlZFRhcmdldHx8ZC5ib2R5LnBhcmVudE5vZGUpKTpfPWQuY3JlYXRlRXZlbnRPYmplY3QoKSxsLmRpc3BhdGNoRXZlbnQ/bC5kaXNwYXRjaEV2ZW50KF8pOmwuZmlyZUV2ZW50KGBvbiR7YX1gLF8pfX0sbWs9ImVkaXRv'@; put 'ck1hbmFnZXIubmF2aWdhdGlvbiIsY3k9ImVkaXRvck1hbmFnZXIuaGFuZGxpbmdFZGl0b3IiO2NsYXNzIEFOe2NvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLmluc3RhbmNlPWwsdGhpcy50YWJsZU1ldGE9YSx0aGlzLnNlbGVjdGlvbj1kLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBsbChsKSx0aGlz'@; put 'LmRlc3Ryb3llZD0hMSx0aGlzLmxvY2s9ITEsdGhpcy5hY3RpdmVFZGl0b3I9dm9pZCAwLHRoaXMuY2VsbFByb3BlcnRpZXM9dm9pZCAwLHRoaXMuaW5zdGFuY2UuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuYWRkQ29udGV4dCgiZWRpdG9yIiksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMu'@; put 'aW5zdGFuY2UuYWRkSG9vaygiYWZ0ZXJEb2N1bWVudEtleURvd24iLGY9PnRoaXMub25BZnRlckRvY3VtZW50S2V5RG93bihmKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmluc3RhbmNlLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsImNvbXBvc2l0aW9u'@; put 'c3RhcnQiLGY9PnshdGhpcy5kZXN0cm95ZWQmJnRoaXMuaW5zdGFuY2UuaXNMaXN0ZW5pbmcoKSYmdGhpcy5vcGVuRWRpdG9yKCIiLGYpfSksdGhpcy5pbnN0YW5jZS52aWV3Ll93dC51cGRhdGUoIm9uQ2VsbERibENsaWNrIiwoZixfLFQpPT50aGlzLm9uQ2VsbERibENsaWNrKGYsXyxUKSl9'@; put 'cmVnaXN0ZXJTaG9ydGN1dHMoKXtjb25zdCBsPXRoaXMuaW5zdGFuY2UuZ2V0U2hvcnRjdXRNYW5hZ2VyKCksYT1sLmdldENvbnRleHQoImdyaWQiKSxkPWwuZ2V0Q29udGV4dCgiZWRpdG9yIiksaD17Z3JvdXA6Y3l9O2QuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJFbnRlciJdLFsiRW50ZXIi'@; put 'LCJTaGlmdCJdLFsiRW50ZXIiLCJDb250cm9sL01ldGEiXSxbIkVudGVyIiwiQ29udHJvbC9NZXRhIiwiU2hpZnQiXV0sY2FsbGJhY2s6KGYsXyk9Pnt0aGlzLmNsb3NlRWRpdG9yQW5kU2F2ZUNoYW5nZXMobC5pc0N0cmxQcmVzc2VkKCkpLHRoaXMubW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIo'@; put 'Xy5pbmNsdWRlcygic2hpZnQiKSl9fSx7a2V5czpbWyJFc2NhcGUiXSxbIkVzY2FwZSIsIkNvbnRyb2wvTWV0YSJdXSxjYWxsYmFjazooKT0+e3RoaXMuY2xvc2VFZGl0b3JBbmRSZXN0b3JlT3JpZ2luYWxWYWx1ZShsLmlzQ3RybFByZXNzZWQoKSksdGhpcy5hY3RpdmVFZGl0b3IuZm9jdXMo'@; put 'KX19XSxoKSxhLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siRjIiXV0sY2FsbGJhY2s6Zj0+e3RoaXMub3BlbkVkaXRvcihudWxsLGYsITApfX0se2tleXM6W1siQmFja3NwYWNlIl0sWyJEZWxldGUiXV0sY2FsbGJhY2s6KCk9Pnt0aGlzLmluc3RhbmNlLmVtcHR5U2VsZWN0ZWRDZWxscygpLHRo'@; put 'aXMucHJlcGFyZUVkaXRvcigpfX0se2tleXM6W1siRW50ZXIiXSxbIkVudGVyIiwiU2hpZnQiXV0sY2FsbGJhY2s6KGYsXyk9Pnt0aGlzLmluc3RhbmNlLmdldFNldHRpbmdzKCkuZW50ZXJCZWdpbnNFZGl0aW5nP3RoaXMuY2VsbFByb3BlcnRpZXMucmVhZE9ubHk/dGhpcy5tb3ZlU2VsZWN0'@; put 'aW9uQWZ0ZXJFbnRlcigpOnRoaXMub3BlbkVkaXRvcihudWxsLGYsITApOnRoaXMubW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIoXy5pbmNsdWRlcygic2hpZnQiKSksdjIoZil9fV0sey4uLmgscnVuT25seUlmOigpPT5LaSh0aGlzLmluc3RhbmNlLmdldFNlbGVjdGVkKCkpfSl9bG9ja0VkaXRv'@; put 'cigpe3RoaXMubG9jaz0hMH11bmxvY2tFZGl0b3IoKXt0aGlzLmxvY2s9ITF9ZGVzdHJveUVkaXRvcihsKXt0aGlzLmxvY2t8fHRoaXMuY2xvc2VFZGl0b3IobCl9Z2V0QWN0aXZlRWRpdG9yKCl7cmV0dXJuIHRoaXMuYWN0aXZlRWRpdG9yfXByZXBhcmVFZGl0b3IoKXtpZih0aGlzLmxvY2sp'@; put 'cmV0dXJuO2lmKHRoaXMuYWN0aXZlRWRpdG9yJiZ0aGlzLmFjdGl2ZUVkaXRvci5pc1dhaXRpbmcoKSlyZXR1cm4gdm9pZCB0aGlzLmNsb3NlRWRpdG9yKCExLCExLFc9PntXJiZ0aGlzLnByZXBhcmVFZGl0b3IoKX0pO2NvbnN0e3JvdzpsLGNvbDphfT10aGlzLmluc3RhbmNlLmdldFNlbGVj'@; put 'dGVkUmFuZ2VMYXN0KCkuaGlnaGxpZ2h0LGQ9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5R2V0Q2VsbENvb3JkcyIsbCxhKTtsZXQgaD1sLGY9YTtBcnJheS5pc0FycmF5KGQpJiYoW2gsZl09ZCksdGhpcy5jZWxsUHJvcGVydGllcz10aGlzLmluc3RhbmNlLmdldENlbGxNZXRhKGgs'@; put 'Zik7Y29uc3R7YWN0aXZlRWxlbWVudDpffT10aGlzLmluc3RhbmNlLnJvb3REb2N1bWVudDtpZihfJiZzayhfKSYmXy5ibHVyKCksIXRoaXMuaXNDZWxsRWRpdGFibGUoKSlyZXR1cm4gdm9pZCB0aGlzLmNsZWFyQWN0aXZlRWRpdG9yKCk7Y29uc3QgVD10aGlzLmluc3RhbmNlLmdldENlbGwo'@; put 'bCxhLCEwKTtpZihUKXtjb25zdCBXPXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbEVkaXRvcih0aGlzLmNlbGxQcm9wZXJ0aWVzKSxpZT10aGlzLmluc3RhbmNlLmNvbFRvUHJvcChmKSxwZT10aGlzLmluc3RhbmNlLmdldFNvdXJjZURhdGFBdENlbGwodGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93'@; put 'KGgpLGYpO3RoaXMuYWN0aXZlRWRpdG9yPUF0ZShXLHRoaXMuaW5zdGFuY2UpLHRoaXMuYWN0aXZlRWRpdG9yLnByZXBhcmUobCxhLGllLFQscGUsdGhpcy5jZWxsUHJvcGVydGllcyl9fWlzRWRpdG9yT3BlbmVkKCl7cmV0dXJuIHRoaXMuYWN0aXZlRWRpdG9yJiZ0aGlzLmFjdGl2ZUVkaXRv'@; put 'ci5pc09wZW5lZCgpfW9wZW5FZGl0b3IobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKHRoaXMuaXNDZWxsRWRpdGFibGUoKSl7aWYoIXRoaXMuYWN0aXZlRWRpdG9yKXtjb25zdHtyb3c6aCxjb2w6Zn09dGhpcy5p'@; put 'bnN0YW5jZS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodCxfPXRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChoKSxUPXRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRl'@; put 'eChmKTt0aGlzLmluc3RhbmNlLnZpZXcuc2Nyb2xsVmlld3BvcnQodGhpcy5pbnN0YW5jZS5fY3JlYXRlQ2VsbENvb3JkcyhfLFQpKSx0aGlzLmluc3RhbmNlLnZpZXcucmVuZGVyKCksdGhpcy5wcmVwYXJlRWRpdG9yKCl9dGhpcy5hY3RpdmVFZGl0b3ImJihkJiZ0aGlzLmFjdGl2ZUVkaXRv'@; put 'ci5lbmFibGVGdWxsRWRpdE1vZGUoKSx0aGlzLmFjdGl2ZUVkaXRvci5iZWdpbkVkaXRpbmcobCxhKSl9ZWxzZSB0aGlzLmNsZWFyQWN0aXZlRWRpdG9yKCl9Y2xvc2VFZGl0b3IobCxhLGQpe3RoaXMuYWN0aXZlRWRpdG9yP3RoaXMuYWN0aXZlRWRpdG9yLmZpbmlzaEVkaXRpbmcobCxhLGQp'@; put 'OmQmJmQoITEpfWNsb3NlRWRpdG9yQW5kU2F2ZUNoYW5nZXMobCl7dGhpcy5jbG9zZUVkaXRvcighMSxsKX1jbG9zZUVkaXRvckFuZFJlc3RvcmVPcmlnaW5hbFZhbHVlKGwpe3RoaXMuY2xvc2VFZGl0b3IoITAsbCl9Y2xlYXJBY3RpdmVFZGl0b3IoKXt0aGlzLmFjdGl2ZUVkaXRvcj12b2lk'@; put 'IDB9aXNDZWxsRWRpdGFibGUoKXtjb25zdCBsPXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbEVkaXRvcih0aGlzLmNlbGxQcm9wZXJ0aWVzKSx7cm93OmEsY29sOmR9PXRoaXMuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQse3Jvd0luZGV4TWFwcGVyOmgsY29sdW1uSW5k'@; put 'ZXhNYXBwZXI6Zn09dGhpcy5pbnN0YW5jZSxfPWguaXNIaWRkZW4odGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KGEpKXx8Zi5pc0hpZGRlbih0aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oZCkpO3JldHVybiEodGhpcy5jZWxsUHJvcGVydGllcy5yZWFkT25seXx8IWx8fF8pfW1v'@; put 'dmVTZWxlY3Rpb25BZnRlckVudGVyKGwpe2NvbnN0IGE9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMudGFibGVNZXRhLmVudGVyTW92ZXM/dGhpcy50YWJsZU1ldGEuZW50ZXJNb3ZlcyhldmVudCk6dGhpcy50YWJsZU1ldGEuZW50ZXJNb3ZlcztsP3RoaXMuc2VsZWN0aW9uLnRyYW5zZm9ybVN0'@; put 'YXJ0KC1hLnJvdywtYS5jb2wpOnRoaXMuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KGEucm93LGEuY29sLCEwKX1vbkFmdGVyRG9jdW1lbnRLZXlEb3duKGwpe2lmKCF0aGlzLmluc3RhbmNlLmlzTGlzdGVuaW5nKCkpcmV0dXJuO2NvbnN0e2tleUNvZGU6YX09bDtpZighdGhpcy5zZWxlY3Rp'@; put 'b24uaXNTZWxlY3RlZCgpKXJldHVybjtjb25zdCBkPShsLmN0cmxLZXl8fGwubWV0YUtleSkmJiFsLmFsdEtleTt0aGlzLmFjdGl2ZUVkaXRvciYmKCF0aGlzLmFjdGl2ZUVkaXRvcnx8dGhpcy5hY3RpdmVFZGl0b3IuaXNXYWl0aW5nKCkpfHxDTihhKXx8TXRlKGEpfHxkfHx0aGlzLmlzRWRp'@; put 'dG9yT3BlbmVkKCl8fCh0aGlzLmluc3RhbmNlLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazooKT0+e3RoaXMuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KC0xLDApfX0s'@; put 'e2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOigpPT57dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMSwwKX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazooKT0+e3RoaXMuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsLTEqdGhp'@; put 'cy5pbnN0YW5jZS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0Il1dLGNhbGxiYWNrOigpPT57dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMCx0aGlzLmluc3RhbmNlLmdldERpcmVjdGlvbkZhY3RvcigpKX19XSx7cnVuT25seUlmOigp'@; put 'PT5LaSh0aGlzLmluc3RhbmNlLmdldFNlbGVjdGVkKCkpLGdyb3VwOm1rfSksdGhpcy5vcGVuRWRpdG9yKCIiLGwpKX1vbkNlbGxEYmxDbGljayhsLGEsZCl7IlREIj09PWQubm9kZU5hbWUmJnRoaXMub3BlbkVkaXRvcihudWxsLGwsITApfWRlc3Ryb3koKXt0aGlzLmRlc3Ryb3llZD0hMCx0'@; put 'aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fWNvbnN0IFR0ZT1uZXcgV2Vha01hcDtBTi5nZXRJbnN0YW5jZT1mdW5jdGlvbihjLGwsYSl7bGV0IGQ9VHRlLmdldChjKTtyZXR1cm4gZHx8KGQ9bmV3IEFOKGMsbCxhKSxUdGUuc2V0KGMsZCkpLGR9O2NvbnN0IGNrZT1BTixEdGU9eyImbmJz'@; put 'cDsiOiIgIiwiJmFtcDsiOiImIiwiJmx0OyI6IjwiLCImZ3Q7IjoiPiJ9LHVrZT1uZXcgUmVnRXhwKE9iamVjdC5rZXlzKER0ZSkubWFwKGM9PmAoJHtjfSlgKS5qb2luKCJ8IiksImdpIik7ZnVuY3Rpb24gVE4oYyl7Y29uc3QgbD1jLmhhc0NvbEhlYWRlcnMoKSxhPWMuaGFzUm93SGVhZGVy'@; put 'cygpLGQ9W2w/LTE6MCxhPy0xOjAsYy5jb3VudFJvd3MoKS0xLGMuY291bnRDb2xzKCktMV0saD1jLmdldERhdGEoLi4uZCksZj1oLmxlbmd0aCxfPWY+MD9oWzBdLmxlbmd0aDowLFQ9WyI8dGFibGU+IiwiPC90YWJsZT4iXSxXPWw/WyI8dGhlYWQ+IiwiPC90aGVhZD4iXTpbXSxpZT1bIjx0'@; put 'Ym9keT4iLCI8L3Rib2R5PiJdLHBlPWE/MTowLHdlPWw/MTowO2ZvcihsZXQgRWU9MDtFZTxmO0VlKz0xKXtjb25zdCBaZT1sJiYwPT09RWUsaXQ9W107Zm9yKGxldCB5dD0wO3l0PF87eXQrPTEpe2NvbnN0IEV0PSFaZSYmYSYmMD09PXl0O2xldCBTdD0iIjtpZihaZSlTdD1gPHRoPiR7Yy5n'@; put 'ZXRDb2xIZWFkZXIoeXQtcGUpfTwvdGg+YDtlbHNlIGlmKEV0KVN0PWA8dGg+JHtjLmdldFJvd0hlYWRlcihFZS13ZSl9PC90aD5gO2Vsc2V7Y29uc3QgSnQ9aFtFZV1beXRdLHtoaWRkZW46bm4scm93c3Bhbjp2bixjb2xzcGFuOk5ufT1jLmdldENlbGxNZXRhKEVlLXdlLHl0LXBlKTtpZigh'@; put 'bm4pe2NvbnN0IGNyPVtdO2lmKHZuJiZjci5wdXNoKGByb3dzcGFuPSIke3ZufSJgKSxObiYmY3IucHVzaChgY29sc3Bhbj0iJHtObn0iYCksZ2MoSnQpKVN0PWA8dGQgJHtjci5qb2luKCIgIil9PjwvdGQ+YDtlbHNle2NvbnN0IElyPUp0LnRvU3RyaW5nKCkucmVwbGFjZSgiPCIsIiZsdDsi'@; put 'KS5yZXBsYWNlKCI+IiwiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMC9naSwiJm5ic3A7IikucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtTdD1gPHRkICR7Y3Iuam9pbigiICIpfT4ke0lyfTwvdGQ+YH19'@; put 'fWl0LnB1c2goU3QpfWNvbnN0IGV0PVsiPHRyPiIsLi4uaXQsIjwvdHI+Il0uam9pbigiIik7WmU/Vy5zcGxpY2UoMSwwLGV0KTppZS5zcGxpY2UoLTEsMCxldCl9cmV0dXJuIFQuc3BsaWNlKDEsMCxXLmpvaW4oIiIpLGllLmpvaW4oIiIpKSxULmpvaW4oIiIpfWZ1bmN0aW9uIEROKGMpe2Nv'@; put 'bnN0IGw9Yy5sZW5ndGgsYT1bIjx0YWJsZT4iXTtmb3IobGV0IGQ9MDtkPGw7ZCs9MSl7Y29uc3QgaD1jW2RdLGY9aC5sZW5ndGgsXz1bXTswPT09ZCYmYS5wdXNoKCI8dGJvZHk+Iik7Zm9yKGxldCBUPTA7VDxmO1QrPTEpe2NvbnN0IFc9aFtUXSxpZT1nYyhXKT8iIjpXLnRvU3RyaW5nKCku'@; put 'cmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvKDxicihccyp8XC8pPihcclxufFxuKT98XHJcbnxcbikvZywiPGJyPlxyXG4iKS5yZXBsYWNlKC9ceDIwezIsfS9naSxwZT0+YDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+JHsiJm5ic3A7'@; put 'Ii5yZXBlYXQocGUubGVuZ3RoLTEpfSA8L3NwYW4+YCkucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtfLnB1c2goYDx0ZD4ke2llfTwvdGQ+YCl9YS5wdXNoKCI8dHI+IiwuLi5fLCI8L3RyPiIpLGQrMT09PWwmJmEucHVzaCgiPC90Ym9keT4iKX1yZXR1cm4gYS5wdXNoKCI8L3RhYmxlPiIpLGEu'@; put 'am9pbigiIil9ZnVuY3Rpb24gSXRlKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpkb2N1bWVudDtjb25zdCBhPXt9LGQ9bC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksaD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuYXBw'@; put 'ZW5kQ2hpbGQoaCk7bGV0IGY9YztpZigic3RyaW5nIj09dHlwZW9mIGYpe2NvbnN0IEp0PWYucmVwbGFjZSgvPHRkXGJbXj5dKj8+KFtcc1xTXSo/KTxcL1xzKnRkPi9nLG5uPT57Y29uc3Qgdm49bm4ubWF0Y2goLzx0ZFxiW14+XSo/Pi9nKVswXTtyZXR1cm5gJHt2bn0ke25uLnN1YnN0cmlu'@; put 'Zyh2bi5sZW5ndGgsbm4ubGFzdEluZGV4T2YoIjwiKSkucmVwbGFjZSgvKDwoPyFicikoW14+XSspPikvZ2ksIiIpfTwvdGQ+YH0pO2guaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmJlZ2luIixgJHtKdH1gKSxmPWgucXVlcnlTZWxlY3RvcigidGFibGUiKX1pZighZnx8IWZ1bmN0aW9uIGRr'@; put 'ZShjKXtyZXR1cm4iVEFCTEUiPT09KGMmJmMubm9kZU5hbWV8fCIiKX0oZikpcmV0dXJuO2NvbnN0IF89aC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWUkPSJlbmVyYXRvciJdJyksVD1udWxsIT09Zi5xdWVyeVNlbGVjdG9yKCJ0Ym9keSB0aCIpLFc9Zi5xdWVyeVNlbGVjdG9yKCJ0ciIpLGll'@; put 'PVc/QXJyYXkuZnJvbShXLmNlbGxzKS5yZWR1Y2UoKEp0LG5uKT0+SnQrbm4uY29sU3BhbiwwKS0oVD8xOjApOjAscGU9Zi50Rm9vdCYmQXJyYXkuZnJvbShmLnRGb290LnJvd3MpfHxbXSx3ZT1bXTtsZXQgRWU9ITEsWmU9MCxpdD0wO2lmKGYudEhlYWQpe2NvbnN0IEp0PUFycmF5LmZyb20o'@; put 'Zi50SGVhZC5yb3dzKS5maWx0ZXIobm49Pntjb25zdCB2bj1udWxsIT09bm4ucXVlcnlTZWxlY3RvcigidGQiKTtyZXR1cm4gdm4mJndlLnB1c2gobm4pLCF2bn0pO1plPUp0Lmxlbmd0aCxFZT1aZT4wLFplPjE/YS5uZXN0ZWRIZWFkZXJzPUFycmF5LmZyb20oSnQpLnJlZHVjZSgobm4sdm4p'@; put 'PT57Y29uc3QgTm49QXJyYXkuZnJvbSh2bi5jZWxscykucmVkdWNlKChjcixJcixFaSk9PntpZihUJiYwPT09RWkpcmV0dXJuIGNyO2NvbnN0e2NvbFNwYW46SWksaW5uZXJIVE1MOmZyfT1JcjtyZXR1cm4gY3IucHVzaChJaT4xP3tsYWJlbDpmcixjb2xzcGFuOklpfTpmciksY3J9LFtdKTty'@; put 'ZXR1cm4gbm4ucHVzaChObiksbm59LFtdKTpFZSYmKGEuY29sSGVhZGVycz1BcnJheS5mcm9tKEp0WzBdLmNoaWxkcmVuKS5yZWR1Y2UoKG5uLHZuLE5uKT0+KFQmJjA9PT1Obnx8bm4ucHVzaCh2bi5pbm5lckhUTUwpLG5uKSxbXSkpfXdlLmxlbmd0aCYmKGEuZml4ZWRSb3dzVG9wPXdlLmxl'@; put 'bmd0aCkscGUubGVuZ3RoJiYoYS5maXhlZFJvd3NCb3R0b209cGUubGVuZ3RoKTtjb25zdCBldD1bLi4ud2UsLi4uQXJyYXkuZnJvbShmLnRCb2RpZXMpLnJlZHVjZSgoSnQsbm4pPT4oSnQucHVzaCguLi5BcnJheS5mcm9tKG5uLnJvd3MpKSxKdCksW10pLC4uLnBlXTtpdD1ldC5sZW5ndGg7'@; put 'Y29uc3QgeXQ9bmV3IEFycmF5KGl0KTtmb3IobGV0IEp0PTA7SnQ8aXQ7SnQrKyl5dFtKdF09bmV3IEFycmF5KGllKTtjb25zdCBFdD1bXSxTdD1bXTtmb3IobGV0IEp0PTA7SnQ8aXQ7SnQrKyl7Y29uc3Qgdm49QXJyYXkuZnJvbShldFtKdF0uY2VsbHMpLE5uPXZuLmxlbmd0aDtmb3IobGV0'@; put 'IGNyPTA7Y3I8Tm47Y3IrKyl7Y29uc3QgSXI9dm5bY3JdLHtub2RlTmFtZTpFaSxpbm5lckhUTUw6SWkscm93U3Bhbjpmcixjb2xTcGFuOmlpfT1Jcixqcj15dFtKdF0uZmluZEluZGV4KE9uPT52b2lkIDA9PT1Pbik7aWYoIlREIj09PUVpKXtpZihmcj4xfHxpaT4xKXtmb3IobGV0IE1yPUp0'@; put 'O01yPEp0K2ZyO01yKyspaWYoTXI8aXQpZm9yKGxldCBfcj1qcjtfcjxqcitpaTtfcisrKXl0W01yXVtfcl09bnVsbDtjb25zdCBGcj1Jci5nZXRBdHRyaWJ1dGUoInN0eWxlIik7RnImJkZyLmluY2x1ZGVzKCJtc28taWdub3JlOmNvbHNwYW4iKXx8RXQucHVzaCh7Y29sOmpyLHJvdzpKdCxy'@; put 'b3dzcGFuOmZyLGNvbHNwYW46aWl9KX1sZXQgT249IiI7T249XyYmL2V4Y2VsL2dpLnRlc3QoXy5jb250ZW50KT9JaS5yZXBsYWNlKC9bXHJcbl1bXHgyMF17MCwyfS9nLCIgIikucmVwbGFjZSgvPGJyKFxzKnxcLyk+W1xyXG5dP1tceDIwXXswLDN9L2dpbSwiXHJcbiIpOklpLnJlcGxhY2Uo'@; put 'Lzxicihccyp8XC8pPltcclxuXT8vZ2ltLCJcclxuIikseXRbSnRdW2pyXT1Pbi5yZXBsYWNlKHVrZSxGcj0+RHRlW0ZyXSl9ZWxzZSBTdC5wdXNoKElpKX19cmV0dXJuIEV0Lmxlbmd0aCYmKGEubWVyZ2VDZWxscz1FdCksU3QubGVuZ3RoJiYoYS5yb3dIZWFkZXJzPVN0KSx5dC5sZW5ndGgm'@; put 'JihhLmRhdGE9eXQpLGF9ZnVuY3Rpb24gR3UoYyl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdO2NvbnN0IGE9dHlwZW9mIGM7aWYoIm51bWJlciI9PT1hKXJldHVybiFpc05hTihjKSYmaXNGaW5pdGUoYyk7aWYoInN0cmlu'@; put 'ZyI9PT1hKXtpZigwPT09Yy5sZW5ndGgpcmV0dXJuITE7aWYoMT09PWMubGVuZ3RoKXJldHVybi9cZC8udGVzdChjKTtjb25zdCBkPUFycmF5LmZyb20obmV3IFNldChbIi4iLC4uLmxdKSkubWFwKGg9PmBcXCR7aH1gKS5qb2luKCJ8Iik7cmV0dXJuIG5ldyBSZWdFeHAoYF5bKy1dP1xccyoo'@; put 'KCgke2R9KT9cXGQrKCgke2R9KVxcZCspPyhlWystXT9cXGQrKT8pfCgweFthLWZcXGRdKykpJGAsImkiKS50ZXN0KGMudHJpbSgpKX1yZXR1cm4ib2JqZWN0Ij09PWEmJiEoIWN8fCJudW1iZXIiIT10eXBlb2YgYy52YWx1ZU9mKCl8fGMgaW5zdGFuY2VvZiBEYXRlKX1mdW5jdGlvbiBMdGUo'@; put 'Yyl7cmV0dXJuIEd1KGMsWyIsIl0pfWZ1bmN0aW9uIHZvKGMsbCxhKXtsZXQgZD0tMTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGw/KGE9bCxsPWMpOmQ9Yy0xOysrZDw9bCYmITEhPT1hKGQpOyk7fWZ1bmN0aW9uIHZrKGMsbCxhKXtsZXQgZD1jKzE7Zm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBs'@; put 'JiYoYT1sLGw9MCk7LS1kPj1sJiYhMSE9PWEoZCk7KTt9ZnVuY3Rpb24gSU4oYyxsKXtyZXR1cm4gbD1wYXJzZUludChsLnRvU3RyaW5nKCkucmVwbGFjZSgiJSIsIiIpLDEwKSxsPWlzTmFOKGwpPzA6bCxwYXJzZUludChjKmwvMTAwLDEwKX1jb25zdCBSdGU9bmV3IE1hcChbWyJhc2MiLFst'@; put 'MSwxXV0sWyJkZXNjIixbMSwtMV1dXSksZmtlPWM9PmBUaGUgcHJpb3JpdHkgJyR7Y30nIGlzIGFscmVhZHkgZGVjbGFyZWQgaW4gYSBtYXAuYCxwa2U9Yz0+YFRoZSBwcmlvcml0eSAnJHtjfScgaXMgbm90IGEgbnVtYmVyLmAsbWtlPWM9PmBUaGUgaWQgJyR7Y30nIGlzIGFscmVhZHkgZGVj'@; put 'bGFyZWQgaW4gYSBtYXAuYDtmdW5jdGlvbiBfaygpe2xldHtlcnJvcklkRXhpc3RzOmN9PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtjb25zdCBsPW5ldyBNYXA7ZnVuY3Rpb24gVCgpe3JldHVyblsuLi5sXX1mdW5jdGlvbiBXKGll'@; put 'KXtyZXR1cm4gbC5oYXMoaWUpfXJldHVybiBjPVJhKGMpP2M6bWtlLHthZGRJdGVtOmZ1bmN0aW9uIGEoaWUscGUpe2lmKFcoaWUpKXRocm93IG5ldyBFcnJvcihjKGllKSk7bC5zZXQoaWUscGUpfSxjbGVhcjpmdW5jdGlvbiBoKCl7bC5jbGVhcigpfSxnZXRJZDpmdW5jdGlvbiBmKGllKXtj'@; put 'b25zdFtwZV09VCgpLmZpbmQod2U9PntsZXRbRWUsWmVdPXdlO3JldHVybiBpZT09PVplJiZFZX0pfHxbbnVsbF07cmV0dXJuIHBlfSxnZXRJdGVtOmZ1bmN0aW9uIF8oaWUpe3JldHVybiBsLmdldChpZSl9LGdldEl0ZW1zOlQsaGFzSXRlbTpXLHJlbW92ZUl0ZW06ZnVuY3Rpb24gZChpZSl7'@; put 'cmV0dXJuIGwuZGVsZXRlKGllKX19fWNvbnN0IHZrZT1jPT5gJyR7Y30nIHZhbHVlIGlzIGFscmVhZHkgZGVjbGFyZWQgaW4gYSB1bmlxdWUgc2V0LmAsUk49Yz0+YFRoZXJlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCAiJHtjfSIgcGx1Z2luLmAsT3RlPWZ1bmN0aW9uIGdrZSgpe2xldHtlcnJv'@; put 'clByaW9yaXR5RXhpc3RzOmMsZXJyb3JQcmlvcml0eU5hTjpsfT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307Y29uc3QgYT1uZXcgTWFwO3JldHVybiBjPVJhKGMpP2M6ZmtlLGw9UmEobCk/bDpwa2Use2FkZEl0ZW06ZnVuY3Rpb24g'@; put 'ZChmLF8pe2lmKCFHdShmKSl0aHJvdyBuZXcgRXJyb3IobChmKSk7aWYoYS5oYXMoZikpdGhyb3cgbmV3IEVycm9yKGMoZikpO2Euc2V0KGYsXyl9LGdldEl0ZW1zOmZ1bmN0aW9uIGgoKXtsZXQgZj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNb'@; put 'MF06ImFzYyI7Y29uc3RbXyxUXT1SdGUuZ2V0KGYpfHxSdGUuZ2V0KCJhc2MiKTtyZXR1cm5bLi4uYV0uc29ydCgoVyxpZSk9PldbMF08aWVbMF0/XzpUKS5tYXAoVz0+V1sxXSl9fX0oe2Vycm9yUHJpb3JpdHlFeGlzdHM6Yz0+YFRoZXJlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBwbHVnaW4g'@; put 'b24gcHJpb3JpdHkgIiR7Y30iLmAsZXJyb3JQcmlvcml0eU5hTjpjPT5gVGhlIHByaW9yaXR5ICIke2N9IiBpcyBub3QgYSBudW1iZXIuYH0pLFB0ZT1mdW5jdGlvbiBfa2UoKXtsZXR7ZXJyb3JJdGVtRXhpc3RzOmN9PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd'@; put 'P2FyZ3VtZW50c1swXTp7fTtjb25zdCBsPW5ldyBTZXQ7cmV0dXJuIGM9UmEoYyk/Yzp2a2Use2FkZEl0ZW06ZnVuY3Rpb24gYShmKXtpZihsLmhhcyhmKSl0aHJvdyBuZXcgRXJyb3IoYyhmKSk7bC5hZGQoZil9LGNsZWFyOmZ1bmN0aW9uIGgoKXtsLmNsZWFyKCl9LGdldEl0ZW1zOmZ1bmN0'@; put 'aW9uIGQoKXtyZXR1cm5bLi4ubF19fX0oe2Vycm9ySXRlbUV4aXN0czpSTn0pLE9OPV9rKHtlcnJvcklkRXhpc3RzOlJOfSk7ZnVuY3Rpb24gUE4oKXtyZXR1cm5bLi4uT3RlLmdldEl0ZW1zKCksLi4uUHRlLmdldEl0ZW1zKCldfWZ1bmN0aW9uIHV5KGMpe2NvbnN0IGw9YnUoYyk7cmV0dXJu'@; put 'IE9OLmdldEl0ZW0obCl9ZnVuY3Rpb24ganMoYyxsLGEpe1tjLGwsYV09ZnVuY3Rpb24gd2tlKGMsbCxhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYyYmKGM9KGw9YykuUExVR0lOX0tFWSxhPWwuUExVR0lOX1BSSU9SSVRZKSxbYyxsLGFdfShjLGwsYSksdm9pZCAwPT09dXkoYykmJmZ1'@; put 'bmN0aW9uIHlrZShjLGwsYSl7Y29uc3QgZD1idShjKTtpZihPTi5oYXNJdGVtKGQpKXRocm93IG5ldyBFcnJvcihSTihkKSk7dm9pZCAwPT09YT9QdGUuYWRkSXRlbShkKTpPdGUuYWRkSXRlbShhLGQpLE9OLmFkZEl0ZW0oZCxsKX0oYyxsLGEpfWNvbnN0e3JlZ2lzdGVyOkNrZSxnZXRJdGVt'@; put 'OlNrZSxoYXNJdGVtOkZ0ZSxnZXROYW1lczpNa2V9PXBkKCJyZW5kZXJlcnMiKTtmdW5jdGlvbiBiayhjKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYylyZXR1cm4gYztpZighRnRlKGMpKXRocm93IEVycm9yKGBObyByZWdpc3RlcmVkIHJlbmRlcmVyIGZvdW5kIHVuZGVyICIke2N9IiBuYW1l'@; put 'YCk7cmV0dXJuIFNrZShjKX1mdW5jdGlvbiBwaChjLGwpeyJzdHJpbmciIT10eXBlb2YgYyYmKGM9KGw9YykuUkVOREVSRVJfVFlQRSksQ2tlKGMsbCl9Y29uc3R7cmVnaXN0ZXI6eGtlLGdldEl0ZW06RWtlLGhhc0l0ZW06SHRlLGdldE5hbWVzOmtrZX09cGQoInZhbGlkYXRvcnMiKTtmdW5j'@; put 'dGlvbiBGTihjKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYylyZXR1cm4gYztpZighSHRlKGMpKXRocm93IEVycm9yKGBObyByZWdpc3RlcmVkIHZhbGlkYXRvciBmb3VuZCB1bmRlciAiJHtjfSIgbmFtZWApO3JldHVybiBFa2UoYyl9ZnVuY3Rpb24gYTcoYyxsKXsic3RyaW5nIiE9dHlwZW9m'@; put 'IGMmJihjPShsPWMpLlZBTElEQVRPUl9UWVBFKSx4a2UoYyxsKX1mdW5jdGlvbiB5ayhjKXtyZXR1cm4gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjKX1mdW5jdGlvbiBkeShjKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoYyl9ZnVuY3Rpb24gSE4oKXtyZXR1cm4ib250b3Vj'@; put 'aHN0YXJ0ImluIHdpbmRvd31sZXQgbDc7ZnVuY3Rpb24gTnRlKGMpe3JldHVybiBsN3x8KGw3PSJvYmplY3QiPT10eXBlb2YgSW50bD9uZXcgSW50bC5Db2xsYXRvcihjLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSkuY29tcGFyZToi'@; put 'ZnVuY3Rpb24iPT10eXBlb2YgU3RyaW5nLnByb3RvdHlwZS5sb2NhbGVDb21wYXJlPyhhLGQpPT5gJHthfWAubG9jYWxlQ29tcGFyZShkKTooYSxkKT0+YT09PWQ/MDphPmQ/LTE6MSxsNyl9Y29uc3QgYzc9bmV3IFdlYWtNYXAsVnRlPWNsYXNzIEFrZXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYs'@; put 'Xyl7bGV0IFQ9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0/YXJndW1lbnRzWzZdOm51bGw7dGhpcy53dFNldHRpbmdzPWQsdGhpcy5kb21CaW5kaW5ncz1hLHRoaXMud3RUYWJsZT1mLHRoaXMuc2VsZWN0aW9ucz1fLHRoaXMucGFyZW50PVQsdGhpcy5ldmVudE1h'@; put 'bmFnZXI9aCx0aGlzLmZhY2FkZUdldHRlcj1sLGM3LnNldCh0aGlzLHtzZWxlY3RlZENlbGxCZWZvcmVUb3VjaEVuZDp2b2lkIDAsZGJsQ2xpY2tUaW1lb3V0OltudWxsLG51bGxdLGRibENsaWNrT3JpZ2luOltudWxsLG51bGxdfSksdGhpcy5yZWdpc3RlckV2ZW50cygpfXJlZ2lzdGVyRXZl'@; put 'bnRzKCl7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLnd0VGFibGUuaG9sZGVyLCJjb250ZXh0bWVudSIsZD0+dGhpcy5vbkNvbnRleHRNZW51KGQpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5UQUJMRSwibW91c2VvdmVy'@; put 'IixkPT50aGlzLm9uTW91c2VPdmVyKGQpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5UQUJMRSwibW91c2VvdXQiLGQ9PnRoaXMub25Nb3VzZU91dChkKSk7Y29uc3QgbD0oKT0+e3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhp'@; put 'cy53dFRhYmxlLmhvbGRlciwidG91Y2hzdGFydCIsZD0+dGhpcy5vblRvdWNoU3RhcnQoZCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy53dFRhYmxlLmhvbGRlciwidG91Y2hlbmQiLGQ9PnRoaXMub25Ub3VjaEVuZChkKSksdGhpcy5tb21lbnR1bVNjcm9sbGlu'@; put 'Z3x8KHRoaXMubW9tZW50dW1TY3JvbGxpbmc9e30pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy53dFRhYmxlLmhvbGRlciwic2Nyb2xsIiwoKT0+e2NsZWFyVGltZW91dCh0aGlzLm1vbWVudHVtU2Nyb2xsaW5nLl90aW1lb3V0KSx0aGlzLm1vbWVudHVtU2Nyb2xs'@; put 'aW5nLm9uZ29pbmd8fHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkJlZm9yZVRvdWNoU2Nyb2xsIiksdGhpcy5tb21lbnR1bVNjcm9sbGluZy5vbmdvaW5nPSEwLHRoaXMubW9tZW50dW1TY3JvbGxpbmcuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMudG91Y2hBcHBsaWVkfHwo'@; put 'dGhpcy5tb21lbnR1bVNjcm9sbGluZy5vbmdvaW5nPSExLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkFmdGVyTW9tZW50dW1TY3JvbGwiKSl9LDIwMCl9KX07bTIoKT9sKCk6KEhOKCkmJmwoKSwoKCk9Pnt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RU'@; put 'YWJsZS5ob2xkZXIsIm1vdXNldXAiLGQ9PnRoaXMub25Nb3VzZVVwKGQpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5ob2xkZXIsIm1vdXNlZG93biIsZD0+dGhpcy5vbk1vdXNlRG93bihkKSl9KSgpKX1zZWxlY3RlZENlbGxXYXNUb3VjaGVkKGwp'@; put 'e2NvbnN0IGE9YzcuZ2V0KHRoaXMpLGg9dGhpcy5wYXJlbnRDZWxsKGwpLmNvb3JkcztpZihhLnNlbGVjdGVkQ2VsbEJlZm9yZVRvdWNoRW5kJiZoKXtjb25zdFtmLF9dPVtoLnJvdyxhLnNlbGVjdGVkQ2VsbEJlZm9yZVRvdWNoRW5kLmZyb20ucm93XSxbVCxXXT1baC5jb2wsYS5zZWxlY3Rl'@; put 'ZENlbGxCZWZvcmVUb3VjaEVuZC5mcm9tLmNvbF07cmV0dXJuIGY9PT1fJiZUPT09V31yZXR1cm4hMX1wYXJlbnRDZWxsKGwpe2NvbnN0IGE9e30saD10eShsLFsiVEQiLCJUSCJdLHRoaXMud3RUYWJsZS5UQUJMRSk7cmV0dXJuIGg/KGEuY29vcmRzPXRoaXMud3RUYWJsZS5nZXRDb29yZHMo'@; put 'aCksYS5URD1oKTpCbyhsLCJ3dEJvcmRlciIpJiZCbyhsLCJjdXJyZW50Iik/KGEuY29vcmRzPXRoaXMuc2VsZWN0aW9ucy5nZXRDZWxsKCkuY2VsbFJhbmdlLmhpZ2hsaWdodCxhLlREPXRoaXMud3RUYWJsZS5nZXRDZWxsKGEuY29vcmRzKSk6Qm8obCwid3RCb3JkZXIiKSYmQm8obCwiYXJl'@; put 'YSIpJiZ0aGlzLnNlbGVjdGlvbnMuY3JlYXRlT3JHZXRBcmVhKCkuY2VsbFJhbmdlJiYoYS5jb29yZHM9dGhpcy5zZWxlY3Rpb25zLmNyZWF0ZU9yR2V0QXJlYSgpLmNlbGxSYW5nZS50byxhLlREPXRoaXMud3RUYWJsZS5nZXRDZWxsKGEuY29vcmRzKSksYX1vbk1vdXNlRG93bihsKXtjb25z'@; put 'dCBhPWM3LmdldCh0aGlzKSxkPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQsaD12TihpdGUsbC50YXJnZXQpLGY9bC50YXJnZXQ7aWYoZj09PWR8fGgoMCk9PT1kfHxoKDEpPT09ZClyZXR1cm47Y29uc3QgXz10aGlzLnBhcmVudENlbGwoZik7Qm8oZiwiY29y'@; put 'bmVyIik/dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uQ2VsbENvcm5lck1vdXNlRG93biIsbCxmKTpfLlREJiZ0aGlzLnd0U2V0dGluZ3MuaGFzKCJvbkNlbGxNb3VzZURvd24iKSYmdGhpcy5jYWxsTGlzdGVuZXIoIm9uQ2VsbE1vdXNlRG93biIsbCxfLmNvb3JkcyxfLlREKSwoMD09'@; put 'PWwuYnV0dG9ufHx0aGlzLnRvdWNoQXBwbGllZCkmJl8uVEQmJihhLmRibENsaWNrT3JpZ2luWzBdPV8uVEQsY2xlYXJUaW1lb3V0KGEuZGJsQ2xpY2tUaW1lb3V0WzBdKSxhLmRibENsaWNrVGltZW91dFswXT1zZXRUaW1lb3V0KCgpPT57YS5kYmxDbGlja09yaWdpblswXT1udWxsfSwxZTMp'@; put 'KX1vbkNvbnRleHRNZW51KGwpe2lmKHRoaXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbENvbnRleHRNZW51Iikpe2NvbnN0IGE9dGhpcy5wYXJlbnRDZWxsKGwudGFyZ2V0KTthLlREJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsQ29udGV4dE1lbnUiLGwsYS5jb29yZHMsYS5URCl9fW9uTW91'@; put 'c2VPdmVyKGwpe2lmKCF0aGlzLnd0U2V0dGluZ3MuaGFzKCJvbkNlbGxNb3VzZU92ZXIiKSlyZXR1cm47Y29uc3QgYT10aGlzLnd0VGFibGUuVEFCTEUsZD10eShsLnRhcmdldCxbIlREIiwiVEgiXSxhKSxoPXRoaXMucGFyZW50fHx0aGlzO2QmJmQhPT1oLmxhc3RNb3VzZU92ZXImJlZwKGQs'@; put 'YSkmJihoLmxhc3RNb3VzZU92ZXI9ZCx0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VPdmVyIixsLHRoaXMud3RUYWJsZS5nZXRDb29yZHMoZCksZCkpfW9uTW91c2VPdXQobCl7aWYoIXRoaXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbE1vdXNlT3V0IikpcmV0dXJuO2NvbnN0IGE9dGhp'@; put 'cy53dFRhYmxlLlRBQkxFLGQ9dHkobC50YXJnZXQsWyJURCIsIlRIIl0sYSksaD10eShsLnJlbGF0ZWRUYXJnZXQsWyJURCIsIlRIIl0sYSksZj10aGlzLnBhcmVudHx8dGhpcztkJiZkIT09aCYmVnAoZCxhKSYmKHRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxNb3VzZU91dCIsbCx0aGlzLnd0'@; put 'VGFibGUuZ2V0Q29vcmRzKGQpLGQpLG51bGw9PT1oJiYoZi5sYXN0TW91c2VPdmVyPW51bGwpKX1vbk1vdXNlVXAobCl7Y29uc3QgYT1jNy5nZXQodGhpcyksZD10aGlzLnBhcmVudENlbGwobC50YXJnZXQpO2QuVEQmJnRoaXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbE1vdXNlVXAiKSYmdGhp'@; put 'cy5jYWxsTGlzdGVuZXIoIm9uQ2VsbE1vdXNlVXAiLGwsZC5jb29yZHMsZC5URCksKDA9PT1sLmJ1dHRvbnx8dGhpcy50b3VjaEFwcGxpZWQpJiYoZC5URD09PWEuZGJsQ2xpY2tPcmlnaW5bMF0mJmQuVEQ9PT1hLmRibENsaWNrT3JpZ2luWzFdPyhCbyhsLnRhcmdldCwiY29ybmVyIik/dGhp'@; put 'cy5jYWxsTGlzdGVuZXIoIm9uQ2VsbENvcm5lckRibENsaWNrIixsLGQuY29vcmRzLGQuVEQpOnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxEYmxDbGljayIsbCxkLmNvb3JkcyxkLlREKSxhLmRibENsaWNrT3JpZ2luWzBdPW51bGwsYS5kYmxDbGlja09yaWdpblsxXT1udWxsKTpkLlREPT09'@; put 'YS5kYmxDbGlja09yaWdpblswXSYmKGEuZGJsQ2xpY2tPcmlnaW5bMV09ZC5URCxjbGVhclRpbWVvdXQoYS5kYmxDbGlja1RpbWVvdXRbMV0pLGEuZGJsQ2xpY2tUaW1lb3V0WzFdPXNldFRpbWVvdXQoKCk9PnthLmRibENsaWNrT3JpZ2luWzFdPW51bGx9LDUwMCkpKX1vblRvdWNoU3RhcnQo'@; put 'bCl7YzcuZ2V0KHRoaXMpLnNlbGVjdGVkQ2VsbEJlZm9yZVRvdWNoRW5kPXRoaXMuc2VsZWN0aW9ucy5nZXRDZWxsKCkuY2VsbFJhbmdlLHRoaXMudG91Y2hBcHBsaWVkPSEwLHRoaXMub25Nb3VzZURvd24obCl9b25Ub3VjaEVuZChsKXt2YXIgYTtjb25zdCBkPWwudGFyZ2V0LGg9bnVsbD09'@; put 'PShhPXRoaXMucGFyZW50Q2VsbChkKSl8fHZvaWQgMD09PWE/dm9pZCAwOmEuY29vcmRzLGY9S2koaCkmJmgucm93Pj0wJiZoLmNvbD49MDtpZihsLmNhbmNlbGFibGUmJmYmJnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJpc0RhdGFWaWV3SW5zdGFuY2UiKSl7Y29uc3QgVD1bIkEiLCJC'@; put 'VVRUT04iLCJJTlBVVCJdO2JOKCkmJih5dGUoKXx8d3RlKCkpJiZ0aGlzLnNlbGVjdGVkQ2VsbFdhc1RvdWNoZWQoZCkmJiFULmluY2x1ZGVzKGQudGFnTmFtZSk/bC5wcmV2ZW50RGVmYXVsdCgpOnRoaXMuc2VsZWN0ZWRDZWxsV2FzVG91Y2hlZChkKXx8bC5wcmV2ZW50RGVmYXVsdCgpfXRo'@; put 'aXMub25Nb3VzZVVwKGwpLHRoaXMudG91Y2hBcHBsaWVkPSExfWNhbGxMaXN0ZW5lcihsLGEsZCxoKXtjb25zdCBmPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZShsKTtmJiZmKGEsZCxoLHRoaXMuZmFjYWRlR2V0dGVyKCkpfWRlc3Ryb3koKXtjb25zdCBsPWM3LmdldCh0aGlzKTtj'@; put 'bGVhclRpbWVvdXQobC5kYmxDbGlja1RpbWVvdXRbMF0pLGNsZWFyVGltZW91dChsLmRibENsaWNrVGltZW91dFsxXSksdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpfX07Y2xhc3MgQnRle2NvbnN0cnVjdG9yKCl7dGhpcy5jdXJyZW50U2l6ZT0wLHRoaXMubmV4dFNpemU9MCx0aGlzLmN1'@; put 'cnJlbnRPZmZzZXQ9MCx0aGlzLm5leHRPZmZzZXQ9MH1zZXRTaXplKGwpe3RoaXMuY3VycmVudFNpemU9dGhpcy5uZXh0U2l6ZSx0aGlzLm5leHRTaXplPWx9c2V0T2Zmc2V0KGwpe3RoaXMuY3VycmVudE9mZnNldD10aGlzLm5leHRPZmZzZXQsdGhpcy5uZXh0T2Zmc2V0PWx9fWNsYXNzIE9r'@; put 'ZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2l6ZT1uZXcgQnRlLHRoaXMud29ya2luZ1NwYWNlPTAsdGhpcy5zaGFyZWRTaXplPW51bGx9c2V0U2l6ZShsKXt0aGlzLnNpemUuc2V0U2l6ZShsKX1zZXRPZmZzZXQobCl7dGhpcy5zaXplLnNldE9mZnNldChsKX1nZXRWaWV3U2l6ZSgpe3JldHVybiB0'@; put 'aGlzLnNpemV9aXNTaGFyZWQoKXtyZXR1cm4gdGhpcy5zaGFyZWRTaXplIGluc3RhbmNlb2YgQnRlfWlzUGxhY2VPbihsKXtyZXR1cm4gdGhpcy53b3JraW5nU3BhY2U9PT1sfWFwcGVuZChsKXt0aGlzLndvcmtpbmdTcGFjZT0xLGwud29ya2luZ1NwYWNlPTIsdGhpcy5zaGFyZWRTaXplPWwu'@; put 'Z2V0Vmlld1NpemUoKX1wcmVwZW5kKGwpe3RoaXMud29ya2luZ1NwYWNlPTIsbC53b3JraW5nU3BhY2U9MSx0aGlzLnNoYXJlZFNpemU9bC5nZXRWaWV3U2l6ZSgpfX1jbGFzcyBqdGV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMucm9vdE5vZGU9bCx0aGlzLm5vZGVzUG9vbD1hLHRoaXMuc2l6'@; put 'ZVNldD1uZXcgT2tlLHRoaXMuY2hpbGROb2RlVHlwZT1kLnRvVXBwZXJDYXNlKCksdGhpcy52aXN1YWxJbmRleD0wLHRoaXMuY29sbGVjdGVkTm9kZXM9W119c2V0U2l6ZShsKXtyZXR1cm4gdGhpcy5zaXplU2V0LnNldFNpemUobCksdGhpc31zZXRPZmZzZXQobCl7cmV0dXJuIHRoaXMuc2l6'@; put 'ZVNldC5zZXRPZmZzZXQobCksdGhpc31pc1NoYXJlZFZpZXdTZXQoKXtyZXR1cm4gdGhpcy5zaXplU2V0LmlzU2hhcmVkKCl9Z2V0Tm9kZShsKXtyZXR1cm4gbDx0aGlzLmNvbGxlY3RlZE5vZGVzLmxlbmd0aD90aGlzLmNvbGxlY3RlZE5vZGVzW2xdOm51bGx9Z2V0Q3VycmVudE5vZGUoKXtj'@; put 'b25zdCBsPXRoaXMuY29sbGVjdGVkTm9kZXMubGVuZ3RoO3JldHVybiBsPjA/dGhpcy5jb2xsZWN0ZWROb2Rlc1tsLTFdOm51bGx9Z2V0UmVuZGVyZWRDaGlsZENvdW50KCl7Y29uc3R7cm9vdE5vZGU6bCxzaXplU2V0OmF9PXRoaXM7bGV0IGQ9MDtpZih0aGlzLmlzU2hhcmVkVmlld1NldCgp'@; put 'KXtsZXQgaD1sLmZpcnN0RWxlbWVudENoaWxkO2Zvcig7aDspe2lmKGgudGFnTmFtZT09PXRoaXMuY2hpbGROb2RlVHlwZSlkKz0xO2Vsc2UgaWYoYS5pc1BsYWNlT24oMSkpYnJlYWs7aD1oLm5leHRFbGVtZW50U2libGluZ319ZWxzZSBkPWwuY2hpbGRFbGVtZW50Q291bnQ7cmV0dXJuIGR9'@; put 'c3RhcnQoKXt0aGlzLmNvbGxlY3RlZE5vZGVzLmxlbmd0aD0wLHRoaXMudmlzdWFsSW5kZXg9MDtjb25zdHtyb290Tm9kZTpsLHNpemVTZXQ6YX09dGhpcyxkPXRoaXMuaXNTaGFyZWRWaWV3U2V0KCkse25leHRTaXplOmh9PWEuZ2V0Vmlld1NpemUoKTtsZXQgZj10aGlzLmdldFJlbmRlcmVk'@; put 'Q2hpbGRDb3VudCgpO2Zvcig7ZjxoOyl7Y29uc3QgVD10aGlzLm5vZGVzUG9vbCgpOyFkfHxkJiZhLmlzUGxhY2VPbigyKT9sLmFwcGVuZENoaWxkKFQpOmwuaW5zZXJ0QmVmb3JlKFQsbC5maXJzdENoaWxkKSxmKz0xfWNvbnN0IF89ZCYmYS5pc1BsYWNlT24oMSk7Zm9yKDtmPmg7KWwucmVt'@; put 'b3ZlQ2hpbGQoXz9sLmZpcnN0Q2hpbGQ6bC5sYXN0Q2hpbGQpLGYtPTF9cmVuZGVyKCl7Y29uc3R7cm9vdE5vZGU6bCxzaXplU2V0OmF9PXRoaXM7bGV0IGQ9dGhpcy52aXN1YWxJbmRleDt0aGlzLmlzU2hhcmVkVmlld1NldCgpJiZhLmlzUGxhY2VPbigyKSYmKGQrPWEuc2hhcmVkU2l6ZS5u'@; put 'ZXh0U2l6ZSk7bGV0IGg9bC5jaGlsZE5vZGVzW2RdO2lmKGgudGFnTmFtZSE9PXRoaXMuY2hpbGROb2RlVHlwZSl7Y29uc3QgZj10aGlzLm5vZGVzUG9vbCgpO2wucmVwbGFjZUNoaWxkKGYsaCksaD1mfXRoaXMuY29sbGVjdGVkTm9kZXMucHVzaChoKSx0aGlzLnZpc3VhbEluZGV4Kz0xfWVu'@; put 'ZCgpe319Y2xhc3MgenRlIGV4dGVuZHMganRle3ByZXBlbmRWaWV3KGwpe3JldHVybiB0aGlzLnNpemVTZXQucHJlcGVuZChsLnNpemVTZXQpLGwuc2l6ZVNldC5hcHBlbmQodGhpcy5zaXplU2V0KSx0aGlzfWFwcGVuZFZpZXcobCl7cmV0dXJuIHRoaXMuc2l6ZVNldC5hcHBlbmQobC5zaXpl'@; put 'U2V0KSxsLnNpemVTZXQucHJlcGVuZCh0aGlzLnNpemVTZXQpLHRoaXN9fWNsYXNzIFBrZXtjb25zdHJ1Y3RvcihsKXt0aGlzLm5vZGVUeXBlPWwudG9VcHBlckNhc2UoKX1zZXRSb290RG9jdW1lbnQobCl7dGhpcy5yb290RG9jdW1lbnQ9bH1vYnRhaW4oKXtyZXR1cm4gdGhpcy5yb290RG9j'@; put 'dW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLm5vZGVUeXBlKX19Y2xhc3MgaHl7Y29uc3RydWN0b3IobCxhKXt0aGlzLm5vZGVzUG9vbD0ic3RyaW5nIj09dHlwZW9mIGw/bmV3IFBrZShsKTpudWxsLHRoaXMubm9kZVR5cGU9bCx0aGlzLnJvb3ROb2RlPWEsdGhpcy50YWJsZT1udWxsLHRoaXMu'@; put 'cmVuZGVyZWROb2Rlcz0wfXNldFRhYmxlKGwpe3RoaXMubm9kZXNQb29sJiZ0aGlzLm5vZGVzUG9vbC5zZXRSb290RG9jdW1lbnQobC5yb290RG9jdW1lbnQpLHRoaXMudGFibGU9bH1hZGp1c3QoKXt9cmVuZGVyKCl7fX1jbGFzcyBGa2UgZXh0ZW5kcyBoeXtjb25zdHJ1Y3Rvcigpe3N1cGVy'@; put 'KCJUSCIpLHRoaXMub3JkZXJWaWV3cz1uZXcgV2Vha01hcCx0aGlzLnNvdXJjZVJvd0luZGV4PTB9b2J0YWluT3JkZXJWaWV3KGwpe2xldCBhO3JldHVybiB0aGlzLm9yZGVyVmlld3MuaGFzKGwpP2E9dGhpcy5vcmRlclZpZXdzLmdldChsKTooYT1uZXcgenRlKGwsZD0+dGhpcy5ub2Rlc1Bv'@; put 'b2wub2J0YWluKHRoaXMuc291cmNlUm93SW5kZXgsZCksdGhpcy5ub2RlVHlwZSksdGhpcy5vcmRlclZpZXdzLnNldChsLGEpKSxhfXJlbmRlcigpe2NvbnN0e3Jvd3NUb1JlbmRlcjpsLHJvd0hlYWRlckZ1bmN0aW9uczphLHJvd0hlYWRlcnNDb3VudDpkLHJvd3M6aCxjZWxsczpmfT10aGlz'@; put 'LnRhYmxlO2ZvcihsZXQgXz0wO188bDtfKyspe2NvbnN0IFQ9dGhpcy50YWJsZS5yZW5kZXJlZFJvd1RvU291cmNlKF8pLFc9aC5nZXRSZW5kZXJlZE5vZGUoXyk7dGhpcy5zb3VyY2VSb3dJbmRleD1UO2NvbnN0IGllPXRoaXMub2J0YWluT3JkZXJWaWV3KFcpLHBlPWYub2J0YWluT3JkZXJW'@; put 'aWV3KFcpO2llLmFwcGVuZFZpZXcocGUpLnNldFNpemUoZCkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZSgwKSkuc3RhcnQoKTtmb3IobGV0IHdlPTA7d2U8ZDt3ZSsrKXtpZS5yZW5kZXIoKTtjb25zdCBFZT1pZS5nZXRDdXJyZW50Tm9kZSgpO0VlLmNsYXNz'@; put 'TmFtZT0iIixFZS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksYVt3ZV0oVCxFZSx3ZSl9aWUuZW5kKCl9fX1jbGFzcyBIa2UgZXh0ZW5kcyBoeXtjb25zdHJ1Y3RvcihsKXtzdXBlcihudWxsLGwpfWFkanVzdCgpe2NvbnN0e2NvbHVtbkhlYWRlcnNDb3VudDpsLHJvd0hlYWRlcnNDb3VudDph'@; put 'fT10aGlzLnRhYmxlO2xldCBkPXRoaXMucm9vdE5vZGUuZmlyc3RDaGlsZDtpZihsKXtjb25zdHtjb2x1bW5zVG9SZW5kZXI6aH09dGhpcy50YWJsZSxmPWgrYTtmb3IobGV0IFQ9MCxXPWw7VDxXO1QrKyl7Zm9yKGQ9dGhpcy5yb290Tm9kZS5jaGlsZE5vZGVzW1RdLGR8fChkPXRoaXMudGFi'@; put 'bGUucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIiksdGhpcy5yb290Tm9kZS5hcHBlbmRDaGlsZChkKSksdGhpcy5yZW5kZXJlZE5vZGVzPWQuY2hpbGROb2Rlcy5sZW5ndGg7dGhpcy5yZW5kZXJlZE5vZGVzPGY7KWQuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5yb290RG9jdW1lbnQu'@; put 'Y3JlYXRlRWxlbWVudCgidGgiKSksdGhpcy5yZW5kZXJlZE5vZGVzKz0xO2Zvcig7dGhpcy5yZW5kZXJlZE5vZGVzPmY7KWQucmVtb3ZlQ2hpbGQoZC5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rlcy09MX1jb25zdCBfPXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7aWYoXz5s'@; put 'KWZvcihsZXQgVD1sO1Q8XztUKyspdGhpcy5yb290Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnJvb3ROb2RlLmxhc3RDaGlsZCl9ZWxzZSBkJiZnMihkKX1yZW5kZXIoKXtjb25zdHtjb2x1bW5IZWFkZXJzQ291bnQ6bH09dGhpcy50YWJsZTtmb3IobGV0IGE9MDthPGw7YSs9MSl7Y29uc3R7Y29s'@; put 'dW1uSGVhZGVyRnVuY3Rpb25zOmQsY29sdW1uc1RvUmVuZGVyOmgscm93SGVhZGVyc0NvdW50OmZ9PXRoaXMudGFibGUsXz10aGlzLnJvb3ROb2RlLmNoaWxkTm9kZXNbYV07Zm9yKGxldCBUPS0xKmY7VDxoO1QrPTEpe2NvbnN0IFc9dGhpcy50YWJsZS5yZW5kZXJlZENvbHVtblRvU291cmNl'@; put 'KFQpLGllPV8uY2hpbGROb2Rlc1tUK2ZdO2llLmNsYXNzTmFtZT0iIixpZS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksZFthXShXLGllLGEpfX19fWNsYXNzIE5rZSBleHRlbmRzIGh5e2NvbnN0cnVjdG9yKGwpe3N1cGVyKG51bGwsbCl9YWRqdXN0KCl7Y29uc3R7Y29sdW1uc1RvUmVuZGVy'@; put 'Omwscm93SGVhZGVyc0NvdW50OmF9PXRoaXMudGFibGUsZD1sK2E7Zm9yKDt0aGlzLnJlbmRlcmVkTm9kZXM8ZDspdGhpcy5yb290Tm9kZS5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjb2wiKSksdGhpcy5yZW5kZXJlZE5vZGVzKz0xO2Zvcig7'@; put 'dGhpcy5yZW5kZXJlZE5vZGVzPmQ7KXRoaXMucm9vdE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5yb290Tm9kZS5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rlcy09MX1yZW5kZXIoKXt0aGlzLmFkanVzdCgpO2NvbnN0e2NvbHVtbnNUb1JlbmRlcjpsLHJvd0hlYWRlcnNDb3VudDphfT10aGlz'@; put 'LnRhYmxlO2ZvcihsZXQgaD0wO2g8YTtoKyspe2NvbnN0IGY9dGhpcy50YWJsZS5yZW5kZXJlZENvbHVtblRvU291cmNlKGgpLF89dGhpcy50YWJsZS5jb2x1bW5VdGlscy5nZXRIZWFkZXJXaWR0aChmKTt0aGlzLnJvb3ROb2RlLmNoaWxkTm9kZXNbaF0uc3R5bGUud2lkdGg9YCR7X31weGB9'@; put 'Zm9yKGxldCBoPTA7aDxsO2grKyl7Y29uc3QgZj10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UoaCksXz10aGlzLnRhYmxlLmNvbHVtblV0aWxzLmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGYpO3RoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1toK2FdLnN0eWxlLndpZHRoPWAke199'@; put 'cHhgfWNvbnN0IGQ9dGhpcy5yb290Tm9kZS5maXJzdENoaWxkO2QmJnBpKGQsInJvd0hlYWRlciIpfX1sZXQgVXRlPSExO2NsYXNzIFZrZSBleHRlbmRzIGh5e2NvbnN0cnVjdG9yKGwpe3N1cGVyKCJUUiIsbCksdGhpcy5vcmRlclZpZXc9bmV3IGp0ZShsLGE9PnRoaXMubm9kZXNQb29sLm9i'@; put 'dGFpbihhKSx0aGlzLm5vZGVUeXBlKX1nZXRSZW5kZXJlZE5vZGUobCl7cmV0dXJuIHRoaXMub3JkZXJWaWV3LmdldE5vZGUobCl9cmVuZGVyKCl7Y29uc3R7cm93c1RvUmVuZGVyOmx9PXRoaXMudGFibGU7IVV0ZSYmbD4xZTMmJihVdGU9ITAsR2EoQWFgUGVyZm9ybWFuY2UgdGlwOiBIYW5k'@; put 'c29udGFibGUgcmVuZGVyZWQgbW9yZSB0aGFuIDEwMDAgdmlzaWJsZSByb3dzLiBDb25zaWRlciBsaW1pdGluZ1x4MjAKICAgICAgICB0aGUgbnVtYmVyIG9mIHJlbmRlcmVkIHJvd3MgYnkgc3BlY2lmeWluZyB0aGUgdGFibGUgaGVpZ2h0IGFuZC9vciB0dXJuaW5nIG9mZiB0aGUgInJlbmRl'@; put 'ckFsbFJvd3MiIG9wdGlvbi5gKSksdGhpcy5vcmRlclZpZXcuc2V0U2l6ZShsKS5zZXRPZmZzZXQodGhpcy50YWJsZS5yZW5kZXJlZFJvd1RvU291cmNlKDApKS5zdGFydCgpO2ZvcihsZXQgYT0wO2E8bDthKyspdGhpcy5vcmRlclZpZXcucmVuZGVyKCk7dGhpcy5vcmRlclZpZXcuZW5kKCl9'@; put 'fWNsYXNzIEJrZSBleHRlbmRzIGh5e2NvbnN0cnVjdG9yKCl7c3VwZXIoIlREIiksdGhpcy5vcmRlclZpZXdzPW5ldyBXZWFrTWFwLHRoaXMuc291cmNlUm93SW5kZXg9MH1vYnRhaW5PcmRlclZpZXcobCl7bGV0IGE7cmV0dXJuIHRoaXMub3JkZXJWaWV3cy5oYXMobCk/YT10aGlzLm9yZGVy'@; put 'Vmlld3MuZ2V0KGwpOihhPW5ldyB6dGUobCxkPT50aGlzLm5vZGVzUG9vbC5vYnRhaW4odGhpcy5zb3VyY2VSb3dJbmRleCxkKSx0aGlzLm5vZGVUeXBlKSx0aGlzLm9yZGVyVmlld3Muc2V0KGwsYSkpLGF9cmVuZGVyKCl7Y29uc3R7cm93c1RvUmVuZGVyOmwsY29sdW1uc1RvUmVuZGVyOmEs'@; put 'cm93czpkLHJvd0hlYWRlcnM6aH09dGhpcy50YWJsZTtmb3IobGV0IGY9MDtmPGw7ZisrKXtjb25zdCBfPXRoaXMudGFibGUucmVuZGVyZWRSb3dUb1NvdXJjZShmKSxUPWQuZ2V0UmVuZGVyZWROb2RlKGYpO3RoaXMuc291cmNlUm93SW5kZXg9Xztjb25zdCBXPXRoaXMub2J0YWluT3JkZXJW'@; put 'aWV3KFQpLGllPWgub2J0YWluT3JkZXJWaWV3KFQpO1cucHJlcGVuZFZpZXcoaWUpLnNldFNpemUoYSkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZSgwKSkuc3RhcnQoKTtmb3IobGV0IHBlPTA7cGU8YTtwZSsrKXtXLnJlbmRlcigpO2NvbnN0IHdlPVcuZ2V0'@; put 'Q3VycmVudE5vZGUoKSxFZT10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UocGUpO0JvKHdlLCJoaWRlIil8fCh3ZS5jbGFzc05hbWU9IiIpLHdlLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSx3ZS5yZW1vdmVBdHRyaWJ1dGUoImRpciIpLHRoaXMudGFibGUuY2VsbFJlbmRlcmVy'@; put 'KF8sRWUsd2UpfVcuZW5kKCl9fX1jbGFzcyBqa2V7Y29uc3RydWN0b3IobCl7bGV0e2NlbGxSZW5kZXJlcjphfT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307dGhpcy5yb290Tm9kZT1sLHRoaXMucm9vdERvY3VtZW50PXRoaXMucm9v'@; put 'dE5vZGUub3duZXJEb2N1bWVudCx0aGlzLnJvd0hlYWRlcnM9bnVsbCx0aGlzLmNvbHVtbkhlYWRlcnM9bnVsbCx0aGlzLmNvbEdyb3VwPW51bGwsdGhpcy5yb3dzPW51bGwsdGhpcy5jZWxscz1udWxsLHRoaXMucm93RmlsdGVyPW51bGwsdGhpcy5jb2x1bW5GaWx0ZXI9bnVsbCx0aGlzLnJv'@; put 'd1V0aWxzPW51bGwsdGhpcy5jb2x1bW5VdGlscz1udWxsLHRoaXMucm93c1RvUmVuZGVyPTAsdGhpcy5jb2x1bW5zVG9SZW5kZXI9MCx0aGlzLnJvd0hlYWRlckZ1bmN0aW9ucz1bXSx0aGlzLnJvd0hlYWRlcnNDb3VudD0wLHRoaXMuY29sdW1uSGVhZGVyRnVuY3Rpb25zPVtdLHRoaXMuY29s'@; put 'dW1uSGVhZGVyc0NvdW50PTAsdGhpcy5jZWxsUmVuZGVyZXI9YX1zZXRBeGlzVXRpbHMobCxhKXt0aGlzLnJvd1V0aWxzPWwsdGhpcy5jb2x1bW5VdGlscz1hfXNldFZpZXdwb3J0U2l6ZShsLGEpe3RoaXMucm93c1RvUmVuZGVyPWwsdGhpcy5jb2x1bW5zVG9SZW5kZXI9YX1zZXRGaWx0ZXJz'@; put 'KGwsYSl7dGhpcy5yb3dGaWx0ZXI9bCx0aGlzLmNvbHVtbkZpbHRlcj1hfXNldEhlYWRlckNvbnRlbnRSZW5kZXJlcnMobCxhKXt0aGlzLnJvd0hlYWRlckZ1bmN0aW9ucz1sLHRoaXMucm93SGVhZGVyc0NvdW50PWwubGVuZ3RoLHRoaXMuY29sdW1uSGVhZGVyRnVuY3Rpb25zPWEsdGhpcy5j'@; put 'b2x1bW5IZWFkZXJzQ291bnQ9YS5sZW5ndGh9c2V0UmVuZGVyZXJzKCl7bGV0e3Jvd0hlYWRlcnM6bCxjb2x1bW5IZWFkZXJzOmEsY29sR3JvdXA6ZCxyb3dzOmgsY2VsbHM6Zn09YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2wuc2V0'@; put 'VGFibGUodGhpcyksYS5zZXRUYWJsZSh0aGlzKSxkLnNldFRhYmxlKHRoaXMpLGguc2V0VGFibGUodGhpcyksZi5zZXRUYWJsZSh0aGlzKSx0aGlzLnJvd0hlYWRlcnM9bCx0aGlzLmNvbHVtbkhlYWRlcnM9YSx0aGlzLmNvbEdyb3VwPWQsdGhpcy5yb3dzPWgsdGhpcy5jZWxscz1mfXJlbmRl'@; put 'cmVkUm93VG9Tb3VyY2UobCl7cmV0dXJuIHRoaXMucm93RmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UobCl9cmVuZGVyZWRDb2x1bW5Ub1NvdXJjZShsKXtyZXR1cm4gdGhpcy5jb2x1bW5GaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShsKX1yZW5kZXIoKXt0aGlzLmNvbEdyb3VwLmFkanVzdCgpLHRo'@; put 'aXMuY29sdW1uSGVhZGVycy5hZGp1c3QoKSx0aGlzLnJvd3MuYWRqdXN0KCksdGhpcy5yb3dIZWFkZXJzLmFkanVzdCgpLHRoaXMuY29sdW1uSGVhZGVycy5yZW5kZXIoKSx0aGlzLnJvd3MucmVuZGVyKCksdGhpcy5yb3dIZWFkZXJzLnJlbmRlcigpLHRoaXMuY2VsbHMucmVuZGVyKCksdGhp'@; put 'cy5jb2x1bW5VdGlscy5jYWxjdWxhdGVXaWR0aHMoKSx0aGlzLmNvbEdyb3VwLnJlbmRlcigpO2NvbnN0e3Jvd3NUb1JlbmRlcjpsLHJvd3M6YX09dGhpcztmb3IobGV0IGQ9MDtkPGw7ZCsrKXtjb25zdCBoPWEuZ2V0UmVuZGVyZWROb2RlKGQpO2lmKGguZmlyc3RDaGlsZCl7Y29uc3QgZj10'@; put 'aGlzLnJlbmRlcmVkUm93VG9Tb3VyY2UoZCksXz10aGlzLnJvd1V0aWxzLmdldEhlaWdodChmKTtoLmZpcnN0Q2hpbGQuc3R5bGUuaGVpZ2h0PV8/Xy0xKyJweCI6IiJ9fX19Y2xhc3Mgemtle2NvbnN0cnVjdG9yKCl7bGV0e1RBQkxFOmwsVEhFQUQ6YSxDT0xHUk9VUDpkLFRCT0RZOmgscm93'@; put 'VXRpbHM6Zixjb2x1bW5VdGlsczpfLGNlbGxSZW5kZXJlcjpUfT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307dGhpcy5yZW5kZXJlcj1uZXcgamtlKGwse2NlbGxSZW5kZXJlcjpUfSksdGhpcy5yZW5kZXJlci5zZXRSZW5kZXJlcnMo'@; put 'e3Jvd0hlYWRlcnM6bmV3IEZrZSxjb2x1bW5IZWFkZXJzOm5ldyBIa2UoYSksY29sR3JvdXA6bmV3IE5rZShkKSxyb3dzOm5ldyBWa2UoaCksY2VsbHM6bmV3IEJrZX0pLHRoaXMucmVuZGVyZXIuc2V0QXhpc1V0aWxzKGYsXyl9c2V0RmlsdGVycyhsLGEpe3JldHVybiB0aGlzLnJlbmRlcmVy'@; put 'LnNldEZpbHRlcnMobCxhKSx0aGlzfXNldFZpZXdwb3J0U2l6ZShsLGEpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldFZpZXdwb3J0U2l6ZShsLGEpLHRoaXN9c2V0SGVhZGVyQ29udGVudFJlbmRlcmVycyhsLGEpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEhlYWRlckNvbnRlbnRSZW5kZXJl'@; put 'cnMobCxhKSx0aGlzfWFkanVzdCgpe3RoaXMucmVuZGVyZXIuYWRqdXN0KCl9cmVuZGVyKCl7dGhpcy5yZW5kZXJlci5yZW5kZXIoKX19Y2xhc3MgVWtle2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5kYXRhQWNjZXNzT2JqZWN0PWwsdGhpcy53dFNldHRpbmdzPWEsdGhpcy5oZWFkZXJXaWR0aHM9'@; put 'bmV3IE1hcH1nZXRXaWR0aChsKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbldpZHRoIixsKXx8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpfWdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGwpe2NvbnN0IGE9dGhpcy5kYXRh'@; put 'QWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3I7bGV0IGQ9dGhpcy5nZXRXaWR0aChsKTtpZihhKXtjb25zdCBoPWEuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgobCxkKTtoJiYoZD1oKX1yZXR1cm4gZH1nZXRIZWFkZXJIZWlnaHQobCl7bGV0IGE9dGhpcy53'@; put 'dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRSb3dIZWlnaHQiKTtjb25zdCBkPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbbF07cmV0dXJuIHZvaWQgMCE9PWQmJihhPWE/TWF0aC5tYXgoYSxkKTpkKSxhfWdldEhlYWRlcldpZHRo'@; put 'KGwpe3JldHVybiB0aGlzLmhlYWRlcldpZHRocy5nZXQodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0VGFibGUuY29sdW1uRmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQobCkpfWNhbGN1bGF0ZVdpZHRocygpe2NvbnN0e3d0U2V0dGluZ3M6bH09dGhpcyx7d3RUYWJsZTphLHd0Vmlld3BvcnQ6ZCxj'@; put 'bG9uZVNvdXJjZTpofT10aGlzLmRhdGFBY2Nlc3NPYmplY3QsZj1oP2gud3RUYWJsZS5ob2xkZXI6YS5ob2xkZXIsXz1mLm9mZnNldEhlaWdodDxmLnNjcm9sbEhlaWdodD9MYygpOjA7bGV0IFQ9bC5nZXRTZXR0aW5nKCJyb3dIZWFkZXJXaWR0aCIpO2lmKGQuY29sdW1uc1JlbmRlckNhbGN1'@; put 'bGF0b3IucmVmcmVzaFN0cmV0Y2hpbmcoZC5nZXRWaWV3cG9ydFdpZHRoKCktXyksVD1sLmdldFNldHRpbmcoIm9uTW9kaWZ5Um93SGVhZGVyV2lkdGgiLFQpLG51bGwhPVQpe2NvbnN0IFc9bC5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoLGllPWwuZ2V0U2V0dGluZygiZGVmYXVs'@; put 'dENvbHVtbldpZHRoIik7Zm9yKGxldCBwZT0wO3BlPFc7cGUrKyl7bGV0IHdlPUFycmF5LmlzQXJyYXkoVCk/VFtwZV06VDt3ZT13ZT8/aWUsdGhpcy5oZWFkZXJXaWR0aHMuc2V0KHBlLHdlKX19fX1jbGFzcyBaa2V7Y29uc3RydWN0b3IobCxhKXt0aGlzLmRhdGFBY2Nlc3NPYmplY3Q9bCx0'@; put 'aGlzLnd0U2V0dGluZ3M9YX1nZXRIZWlnaHQobCl7bGV0IGE9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlaWdodCIsbCk7Y29uc3QgZD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW2xdO3JldHVybiB2b2lkIDAhPT1kJiYoYT12b2lkIDA9'@; put 'PT1hP2Q6TWF0aC5tYXgoYSxkKSksYX19Y29uc3QgeWc9InRvcCIsZ2g9ImJvdHRvbSIsd2c9ImlubGluZV9zdGFydCIsQ2c9InRvcF9pbmxpbmVfc3RhcnRfY29ybmVyIixacD0iYm90dG9tX2lubGluZV9zdGFydF9jb3JuZXIiLFlrZT1beWcsZ2gsd2csQ2csWnBdLFdrZT1uZXcgTWFwKFtb'@; put 'eWcsYGh0X2Nsb25lXyR7eWd9YF0sW2doLGBodF9jbG9uZV8ke2dofWBdLFt3ZyxgaHRfY2xvbmVfJHt3Z30gaHRfY2xvbmVfbGVmdGBdLFtDZyxgaHRfY2xvbmVfJHtDZ30gaHRfY2xvbmVfdG9wX2xlZnRfY29ybmVyYF0sW1pwLGBodF9jbG9uZV8ke1pwfSBodF9jbG9uZV9ib3R0b21fbGVm'@; put 'dF9jb3JuZXJgXV0pO2Z1bmN0aW9uIG1oKGMsbCxhKXtyZXR1cm4gbD1mdW5jdGlvbiBHa2UoYyl7dmFyIGw9ZnVuY3Rpb24gJGtlKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHxudWxsPT09YylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7'@; put 'dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMp'@; put 'fShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpTdHJpbmcobCl9KGwpLGwgaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgdTc9Y2xhc3Mg'@; put 'cWtle2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7bWgodGhpcywid3RTZXR0aW5ncyIsbnVsbCksbWgodGhpcywiZG9tQmluZGluZ3MiLHZvaWQgMCksbWgodGhpcywiVEJPRFkiLG51bGwpLG1oKHRoaXMsIlRIRUFEIixudWxsKSxtaCh0aGlzLCJDT0xHUk9VUCIsbnVsbCksbWgodGhpcywiaGFz'@; put 'VGFibGVIZWlnaHQiLCEwKSxtaCh0aGlzLCJoYXNUYWJsZVdpZHRoIiwhMCksbWgodGhpcywiaXNUYWJsZVZpc2libGUiLCExKSxtaCh0aGlzLCJ0YWJsZU9mZnNldCIsMCksbWgodGhpcywiaG9sZGVyT2Zmc2V0IiwwKSx0aGlzLmRvbUJpbmRpbmdzPWQsdGhpcy5pc01hc3Rlcj0ibWFzdGVy'@; put 'Ij09PWYsdGhpcy5uYW1lPWYsdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWwsdGhpcy5mYWNhZGVHZXR0ZXI9YSx0aGlzLnd0U2V0dGluZ3M9aCx0aGlzLmluc3RhbmNlPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53b3QsdGhpcy53b3Q9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LndvdCx0aGlzLlRBQkxF'@; put 'PWQucm9vdFRhYmxlLGROKHRoaXMuVEFCTEUpLHRoaXMuc3ByZWFkZXI9dGhpcy5jcmVhdGVTcHJlYWRlcih0aGlzLlRBQkxFKSx0aGlzLmhpZGVyPXRoaXMuY3JlYXRlSGlkZXIodGhpcy5zcHJlYWRlciksdGhpcy5ob2xkZXI9dGhpcy5jcmVhdGVIb2xkZXIodGhpcy5oaWRlciksdGhpcy53'@; put 'dFJvb3RFbGVtZW50PXRoaXMuaG9sZGVyLnBhcmVudE5vZGUsdGhpcy5pc01hc3RlciYmdGhpcy5hbGlnbk92ZXJsYXlzV2l0aFRyaW1taW5nQ29udGFpbmVyKCksdGhpcy5maXhUYWJsZURvbVRyZWUoKSx0aGlzLnJvd0ZpbHRlcj1udWxsLHRoaXMuY29sdW1uRmlsdGVyPW51bGwsdGhpcy5j'@; put 'b3JyZWN0SGVhZGVyV2lkdGg9ITE7Y29uc3QgXz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZ1B1cmUoInJvd0hlYWRlcldpZHRoIik7dGhpcy53dFNldHRpbmdzLnVwZGF0ZSgicm93SGVhZGVyV2lkdGgiLCgpPT50aGlzLl9tb2RpZnlSb3dIZWFkZXJXaWR0aChfKSksdGhpcy5yb3dVdGls'@; put 'cz1uZXcgWmtlKHRoaXMuZGF0YUFjY2Vzc09iamVjdCx0aGlzLnd0U2V0dGluZ3MpLHRoaXMuY29sdW1uVXRpbHM9bmV3IFVrZSh0aGlzLmRhdGFBY2Nlc3NPYmplY3QsdGhpcy53dFNldHRpbmdzKSx0aGlzLnRhYmxlUmVuZGVyZXI9bmV3IHprZSh7VEFCTEU6dGhpcy5UQUJMRSxUSEVBRDp0'@; put 'aGlzLlRIRUFELENPTEdST1VQOnRoaXMuQ09MR1JPVVAsVEJPRFk6dGhpcy5UQk9EWSxyb3dVdGlsczp0aGlzLnJvd1V0aWxzLGNvbHVtblV0aWxzOnRoaXMuY29sdW1uVXRpbHMsY2VsbFJlbmRlcmVyOnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZSgiY2VsbFJlbmRlcmVyIil9KX1p'@; put 'cyhsKXtyZXR1cm4gdGhpcy5uYW1lPT09bH1maXhUYWJsZURvbVRyZWUoKXtjb25zdCBsPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50O3RoaXMuVEJPRFk9dGhpcy5UQUJMRS5xdWVyeVNlbGVjdG9yKCJ0Ym9keSIpLHRoaXMuVEJPRFl8fCh0aGlzLlRCT0RZPWwuY3JlYXRlRWxlbWVu'@; put 'dCgidGJvZHkiKSx0aGlzLlRBQkxFLmFwcGVuZENoaWxkKHRoaXMuVEJPRFkpKSx0aGlzLlRIRUFEPXRoaXMuVEFCTEUucXVlcnlTZWxlY3RvcigidGhlYWQiKSx0aGlzLlRIRUFEfHwodGhpcy5USEVBRD1sLmNyZWF0ZUVsZW1lbnQoInRoZWFkIiksdGhpcy5UQUJMRS5pbnNlcnRCZWZvcmUo'@; put 'dGhpcy5USEVBRCx0aGlzLlRCT0RZKSksdGhpcy5DT0xHUk9VUD10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoImNvbGdyb3VwIiksdGhpcy5DT0xHUk9VUHx8KHRoaXMuQ09MR1JPVVA9bC5jcmVhdGVFbGVtZW50KCJjb2xncm91cCIpLHRoaXMuVEFCTEUuaW5zZXJ0QmVmb3JlKHRoaXMuQ09M'@; put 'R1JPVVAsdGhpcy5USEVBRCkpfWNyZWF0ZVNwcmVhZGVyKGwpe2NvbnN0IGE9bC5wYXJlbnROb2RlO2xldCBkO3JldHVybighYXx8YS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhQm8oYSwid3RIb2xkZXIiKSkmJihkPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LmNyZWF0'@; put 'ZUVsZW1lbnQoImRpdiIpLGQuY2xhc3NOYW1lPSJ3dFNwcmVhZGVyIixhJiZhLmluc2VydEJlZm9yZShkLGwpLGQuYXBwZW5kQ2hpbGQobCkpLGQuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIixkfWNyZWF0ZUhpZGVyKGwpe2NvbnN0IGE9bC5wYXJlbnROb2RlO2xldCBkO3JldHVybighYXx8'@; put 'YS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhQm8oYSwid3RIb2xkZXIiKSkmJihkPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuY2xhc3NOYW1lPSJ3dEhpZGVyIixhJiZhLmluc2VydEJlZm9yZShkLGwpLGQuYXBwZW5kQ2hpbGQo'@; put 'bCkpLGR9Y3JlYXRlSG9sZGVyKGwpe2NvbnN0IGE9bC5wYXJlbnROb2RlO2xldCBkO3JldHVybighYXx8YS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhQm8oYSwid3RIb2xkZXIiKSkmJihkPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp'@; put 'LGQuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIixkLmNsYXNzTmFtZT0id3RIb2xkZXIiLGEmJmEuaW5zZXJ0QmVmb3JlKGQsbCksdGhpcy5pc01hc3RlciYmKGQucGFyZW50Tm9kZS5jbGFzc05hbWUrPSJodF9tYXN0ZXIgaGFuZHNvbnRhYmxlIixkLnBhcmVudE5vZGUuc2V0QXR0cmlidXRl'@; put 'KCJkaXIiLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZSgicnRsTW9kZSIpPyJydGwiOiJsdHIiKSksZC5hcHBlbmRDaGlsZChsKSksZH1kcmF3KCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtjb25zdHt3dFNldHRp'@; put 'bmdzOmF9PXRoaXMse3d0T3ZlcmxheXM6ZCx3dFZpZXdwb3J0Omh9PXRoaXMuZGF0YUFjY2Vzc09iamVjdCxmPWEuZ2V0U2V0dGluZygidG90YWxSb3dzIiksXz1hLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLFQ9YS5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIiksVz1ULmxlbmd0aCxpZT1h'@; put 'LmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKSxwZT1pZS5sZW5ndGg7bGV0IHdlPSExLEVlPWw7aWYodGhpcy5pc01hc3RlciYmKHRoaXMuaG9sZGVyT2Zmc2V0PUtsKHRoaXMuaG9sZGVyKSxFZT1oLmNyZWF0ZVJlbmRlckNhbGN1bGF0b3JzKEVlKSxXJiYhYS5nZXRTZXR0aW5nKCJmaXhl'@; put 'ZENvbHVtbnNTdGFydCIpKSl7Y29uc3QgaXQ9ZC5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0U2Nyb2xsUG9zaXRpb24oKSxldD10aGlzLmNvcnJlY3RIZWFkZXJXaWR0aDt0aGlzLmNvcnJlY3RIZWFkZXJXaWR0aD0wIT09aXQsZXQhPT10aGlzLmNvcnJlY3RIZWFkZXJXaWR0aCYmKEVlPSExKX1p'@; put 'Zih0aGlzLmlzTWFzdGVyJiYod2U9ZC51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCkpLEVlKXRoaXMuaXNNYXN0ZXImJmguY3JlYXRlVmlzaWJsZUNhbGN1bGF0b3JzKCksZCYmZC5yZWZyZXNoKCEwKTtlbHNle3RoaXMudGFibGVPZmZzZXQ9dGhpcy5pc01hc3Rlcj9LbCh0aGlzLlRBQkxFKTp0'@; put 'aGlzLmRhdGFBY2Nlc3NPYmplY3QucGFyZW50VGFibGVPZmZzZXQ7Y29uc3QgaXQ9Zj4wP3RoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpOjAsZXQ9Xz4wP3RoaXMuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpOjA7dGhpcy5yb3dGaWx0ZXI9bmV3IGNsYXNzIElrZXtjb25zdHJ1Y3RvcihsLGEs'@; put 'ZCl7dGhpcy5vZmZzZXQ9bCx0aGlzLnRvdGFsPWEsdGhpcy5jb3VudFRIPWR9b2Zmc2V0dGVkKGwpe3JldHVybiBsK3RoaXMub2Zmc2V0fXVuT2Zmc2V0dGVkKGwpe3JldHVybiBsLXRoaXMub2Zmc2V0fXJlbmRlcmVkVG9Tb3VyY2UobCl7cmV0dXJuIHRoaXMub2Zmc2V0dGVkKGwpfXNvdXJj'@; put 'ZVRvUmVuZGVyZWQobCl7cmV0dXJuIHRoaXMudW5PZmZzZXR0ZWQobCl9b2Zmc2V0dGVkVEgobCl7cmV0dXJuIGwtdGhpcy5jb3VudFRIfXVuT2Zmc2V0dGVkVEgobCl7cmV0dXJuIGwrdGhpcy5jb3VudFRIfXZpc2libGVDb2xIZWFkZWRSb3dUb1NvdXJjZVJvdyhsKXtyZXR1cm4gdGhpcy5y'@; put 'ZW5kZXJlZFRvU291cmNlKHRoaXMub2Zmc2V0dGVkVEgobCkpfXNvdXJjZVJvd1RvVmlzaWJsZUNvbEhlYWRlZFJvdyhsKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZFRIKHRoaXMuc291cmNlVG9SZW5kZXJlZChsKSl9fShpdCxmLHBlKSx0aGlzLmNvbHVtbkZpbHRlcj1uZXcgY2xhc3MgVGtl'@; put 'e2NvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLm9mZnNldD1sLHRoaXMudG90YWw9YSx0aGlzLmNvdW50VEg9ZH1vZmZzZXR0ZWQobCl7cmV0dXJuIGwrdGhpcy5vZmZzZXR9dW5PZmZzZXR0ZWQobCl7cmV0dXJuIGwtdGhpcy5vZmZzZXR9cmVuZGVyZWRUb1NvdXJjZShsKXtyZXR1cm4gdGhpcy5v'@; put 'ZmZzZXR0ZWQobCl9c291cmNlVG9SZW5kZXJlZChsKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZChsKX1vZmZzZXR0ZWRUSChsKXtyZXR1cm4gbC10aGlzLmNvdW50VEh9dW5PZmZzZXR0ZWRUSChsKXtyZXR1cm4gbCt0aGlzLmNvdW50VEh9dmlzaWJsZVJvd0hlYWRlZENvbHVtblRvU291cmNl'@; put 'Q29sdW1uKGwpe3JldHVybiB0aGlzLnJlbmRlcmVkVG9Tb3VyY2UodGhpcy5vZmZzZXR0ZWRUSChsKSl9c291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGwpe3JldHVybiB0aGlzLnVuT2Zmc2V0dGVkVEgodGhpcy5zb3VyY2VUb1JlbmRlcmVkKGwpKX19KGV0LF8sVyk7bGV0'@; put 'IHl0PSEwO2lmKHRoaXMuaXNNYXN0ZXIpe3RoaXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpO2NvbnN0IEV0PXt9O3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJiZWZvcmVEcmF3IiwhMCxFdCkseXQ9ITAhPT1FdC5za2lwUmVuZGVyfWlmKHl0KXtsZXQgRXQ7aWYo'@; put 'dGhpcy50YWJsZVJlbmRlcmVyLnNldEhlYWRlckNvbnRlbnRSZW5kZXJlcnMoVCxpZSksKHRoaXMuaXMoZ2gpfHx0aGlzLmlzKFpwKSkmJnRoaXMudGFibGVSZW5kZXJlci5zZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzKFQsW10pLHRoaXMucmVzZXRPdmVyc2l6ZWRSb3dzKCksdGhpcy50YWJs'@; put 'ZVJlbmRlcmVyLnNldFZpZXdwb3J0U2l6ZSh0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCksdGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpKS5zZXRGaWx0ZXJzKHRoaXMucm93RmlsdGVyLHRoaXMuY29sdW1uRmlsdGVyKS5yZW5kZXIoKSx0aGlzLmlzTWFzdGVyJiYoRXQ9dGhpcy5k'@; put 'YXRhQWNjZXNzT2JqZWN0LndvcmtzcGFjZVdpZHRoLHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNvbnRhaW5lcldpZHRoPW51bGwsdGhpcy5tYXJrT3ZlcnNpemVkQ29sdW1uSGVhZGVycygpKSx0aGlzLmFkanVzdENvbHVtbkhlYWRlckhlaWdodHMoKSwodGhpcy5pc01hc3Rl'@; put 'cnx8dGhpcy5pcyhnaCkpJiZ0aGlzLm1hcmtPdmVyc2l6ZWRSb3dzKCksdGhpcy5pc01hc3Rlcil7dGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQuY3JlYXRlVmlzaWJsZUNhbGN1bGF0b3JzKCksdGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0T3ZlcmxheXMucmVmcmVzaCghMSksdGhp'@; put 'cy5kYXRhQWNjZXNzT2JqZWN0Lnd0T3ZlcmxheXMuYXBwbHlUb0RPTSgpO2NvbnN0IFN0PXdhKHRoaXMuaGlkZXIpLEp0PXdhKHRoaXMuVEFCTEUpOzAhPT1TdCYmSnQhPT1TdCYmKHRoaXMuY29sdW1uVXRpbHMuY2FsY3VsYXRlV2lkdGhzKCksdGhpcy50YWJsZVJlbmRlcmVyLnJlbmRlcmVy'@; put 'LmNvbEdyb3VwLnJlbmRlcigpKSxFdCE9PXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZVdpZHRoKCkmJih0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5jb250YWluZXJXaWR0aD1udWxsLHRoaXMuY29sdW1uVXRpbHMuY2FsY3VsYXRlV2lkdGhz'@; put 'KCksdGhpcy50YWJsZVJlbmRlcmVyLnJlbmRlcmVyLmNvbEdyb3VwLnJlbmRlcigpKSx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25EcmF3IiwhMCl9ZWxzZSB0aGlzLmlzKGdoKSYmdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmNsb25lU291cmNlLnd0T3ZlcmxheXMuYWRqdXN0RWxlbWVu'@; put 'dHNTaXplKCl9fWxldCBaZT0hMTtyZXR1cm4gdGhpcy5pc01hc3RlciYmKFplPWQudG9wT3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKSxkLmJvdHRvbU92ZXJsYXkuY2xvbmUmJihaZT1kLmJvdHRvbU92ZXJsYXkucmVzZXRGaXhlZFBvc2l0aW9uKCl8fFplKSxaZT1kLmlubGluZVN0YXJ0'@; put 'T3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKXx8WmUsZC50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJmQudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnJlc2V0Rml4ZWRQb3NpdGlvbigpLGQuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5JiZkLmJvdHRvbUlubGluZVN0'@; put 'YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZSYmZC5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkucmVzZXRGaXhlZFBvc2l0aW9uKCkpLFplPyhkLnJlZnJlc2hBbGwoKSxkLmFkanVzdEVsZW1lbnRzU2l6ZSgpKTp0aGlzLnJlZnJlc2hTZWxlY3Rpb25zKEVlKSx3ZSYmZC5zeW5jU2Nyb2xs'@; put 'V2l0aE1hc3RlcigpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC5kcmF3bj0hMCx0aGlzfW1hcmtJZk92ZXJzaXplZENvbHVtbkhlYWRlcihsKXtjb25zdCBhPXRoaXMuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UobCk7bGV0IGQ9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVt'@; put 'bkhlYWRlcnMiKS5sZW5ndGg7Y29uc3QgaD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpO2xldCBmLF8sVDtjb25zdCBXPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJIZWlnaHQiKXx8W107Zm9yKDtkOylkLT0xLGY9dGhpcy5n'@; put 'ZXRDb2x1bW5IZWFkZXJIZWlnaHQoZCksXz10aGlzLmdldENvbHVtbkhlYWRlcihhLGQpLF8mJihUPWpmKF8pLCghZiYmaDxUfHxmPFQpJiYodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1tkXT1UKSxBcnJheS5pc0FycmF5KFcpP251bGwh'@; put 'PVdbZF0mJih0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzW2RdPVdbZF0pOmlzTmFOKFcpfHwodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1tkXT1XKSx0aGlzLmRhdGFBY2Nlc3NPYmpl'@; put 'Y3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzW2RdPChXW2RdfHxXKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbZF09V1tkXXx8VykpfWFkanVzdENvbHVtbkhlYWRlckhlaWdodHMoKXtjb25zdHt3dFNldHRpbmdz'@; put 'Omx9PXRoaXMsYT10aGlzLlRIRUFELmNoaWxkTm9kZXMsZD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzO2ZvcihsZXQgZj0wLF89bC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO2Y8XztmKyspaWYoZFtmXSl7aWYoIWFb'@; put 'Zl18fDA9PT1hW2ZdLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybjthW2ZdLmNoaWxkTm9kZXNbMF0uc3R5bGUuaGVpZ2h0PWAke2RbZl19cHhgfX1yZXNldE92ZXJzaXplZFJvd3MoKXtjb25zdHt3dFNldHRpbmdzOmx9PXRoaXMse3d0Vmlld3BvcnQ6YX09dGhpcy5kYXRhQWNjZXNzT2JqZWN0'@; put 'O2lmKCh0aGlzLmlzTWFzdGVyfHx0aGlzLmlzKGdoKSkmJiFsLmdldFNldHRpbmcoImV4dGVybmFsUm93Q2FsY3VsYXRvciIpKXtjb25zdCBkPXRoaXMuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKTtmb3IobGV0IGg9MDtoPGQ7aCsrKXtjb25zdCBmPXRoaXMucm93RmlsdGVyLnJlbmRlcmVkVG9T'@; put 'b3VyY2UoaCk7YS5vdmVyc2l6ZWRSb3dzJiZhLm92ZXJzaXplZFJvd3NbZl0mJihhLm92ZXJzaXplZFJvd3NbZl09dm9pZCAwKX19fXJlbW92ZUNsYXNzRnJvbUNlbGxzKGwpe2NvbnN0IGE9dGhpcy5UQUJMRS5xdWVyeVNlbGVjdG9yQWxsKGAuJHtsfWApO2ZvcihsZXQgZD0wLGg9YS5sZW5n'@; put 'dGg7ZDxoO2QrKylXbyhhW2RdLGwpfXJlZnJlc2hTZWxlY3Rpb25zKGwpe2NvbnN0e3d0U2V0dGluZ3M6YX09dGhpcyx7c2VsZWN0aW9uczpkfT10aGlzLmRhdGFBY2Nlc3NPYmplY3Q7aWYoIWQpcmV0dXJuO2NvbnN0IGg9QXJyYXkuZnJvbShkKSxmPWgubGVuZ3RoO2lmKGwpe2NvbnN0IF89'@; put 'W107Zm9yKGxldCBpZT0wO2llPGY7aWUrKyl7Y29uc3R7aGlnaGxpZ2h0SGVhZGVyQ2xhc3NOYW1lOnBlLGhpZ2hsaWdodFJvd0NsYXNzTmFtZTp3ZSxoaWdobGlnaHRDb2x1bW5DbGFzc05hbWU6RWV9PWhbaWVdLnNldHRpbmdzLFplPWhbaWVdLmNsYXNzTmFtZXMsaXQ9WmUubGVuZ3RoO2Zv'@; put 'cihsZXQgZXQ9MDtldDxpdDtldCsrKV8uaW5jbHVkZXMoWmVbZXRdKXx8Xy5wdXNoKFplW2V0XSk7cGUmJiFfLmluY2x1ZGVzKHBlKSYmXy5wdXNoKHBlKSx3ZSYmIV8uaW5jbHVkZXMod2UpJiZfLnB1c2god2UpLEVlJiYhXy5pbmNsdWRlcyhFZSkmJl8ucHVzaChFZSl9Y29uc3QgVD1hLmdl'@; put 'dFNldHRpbmcoIm9uQmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXMiKTtpZihBcnJheS5pc0FycmF5KFQpKWZvcihsZXQgaWU9MDtpZTxULmxlbmd0aDtpZSsrKV8ucHVzaChUW2llXSk7Y29uc3QgVz1fLmxlbmd0aDtmb3IobGV0IGllPTA7aWU8VztpZSsrKXRoaXMucmVtb3ZlQ2xhc3NGcm9t'@; put 'Q2VsbHMoX1tpZV0pfWZvcihsZXQgXz0wO188ZjtfKyspaFtfXS5kcmF3KHRoaXMuZmFjYWRlR2V0dGVyKCksbCl9Z2V0Q2VsbChsKXtsZXQgYT1sLnJvdyxkPWwuY29sO2NvbnN0IGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uTW9kaWZ5R2V0Q2VsbENvb3JkcyIsYSxkKTtpZiho'@; put 'JiZBcnJheS5pc0FycmF5KGgpJiYoW2EsZF09aCksdGhpcy5pc1Jvd0JlZm9yZVJlbmRlcmVkUm93cyhhKSlyZXR1cm4tMTtpZih0aGlzLmlzUm93QWZ0ZXJSZW5kZXJlZFJvd3MoYSkpcmV0dXJuLTI7aWYodGhpcy5pc0NvbHVtbkJlZm9yZVJlbmRlcmVkQ29sdW1ucyhkKSlyZXR1cm4tMztp'@; put 'Zih0aGlzLmlzQ29sdW1uQWZ0ZXJSZW5kZXJlZENvbHVtbnMoZCkpcmV0dXJuLTQ7Y29uc3QgZj10aGlzLmdldFJvdyhhKTtpZighZiYmYT49MCl0aHJvdyBuZXcgRXJyb3IoIlRSIHdhcyBleHBlY3RlZCB0byBiZSByZW5kZXJlZCBidXQgaXMgbm90Iik7Y29uc3QgXz1mLmNoaWxkTm9kZXNb'@; put 'dGhpcy5jb2x1bW5GaWx0ZXIuc291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGQpXTtpZighXyYmZD49MCl0aHJvdyBuZXcgRXJyb3IoIlREIG9yIFRIIHdhcyBleHBlY3RlZCB0byBiZSByZW5kZXJlZCBidXQgaXMgbm90Iik7cmV0dXJuIF99Z2V0Um93KGwpe2xldCBhPW51'@; put 'bGwsZD1udWxsO3ZhciBoLGY7cmV0dXJuIGw8MD8oYT1udWxsPT09KGg9dGhpcy5yb3dGaWx0ZXIpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLnNvdXJjZVJvd1RvVmlzaWJsZUNvbEhlYWRlZFJvdyhsKSxkPXRoaXMuVEhFQUQpOihhPW51bGw9PT0oZj10aGlzLnJvd0ZpbHRlcil8fHZvaWQgMD09'@; put 'PWY/dm9pZCAwOmYuc291cmNlVG9SZW5kZXJlZChsKSxkPXRoaXMuVEJPRFkpLHZvaWQgMCE9PWEmJnZvaWQgMCE9PWQmJiEoZC5jaGlsZE5vZGVzLmxlbmd0aDxhKzEpJiZkLmNoaWxkTm9kZXNbYV19Z2V0Q29sdW1uSGVhZGVyKGwpe2NvbnN0IGQ9dGhpcy5USEVBRC5jaGlsZE5vZGVzW2Fy'@; put 'Z3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowXTtyZXR1cm4gZD8uY2hpbGROb2Rlc1t0aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VDb2x1bW5Ub1Zpc2libGVSb3dIZWFkZWRDb2x1bW4obCldfWdldENvbHVtbkhlYWRlcnMobCl7Y29uc3QgYT1b'@; put 'XSxkPXRoaXMuY29sdW1uRmlsdGVyLnNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbihsKTtyZXR1cm4gdGhpcy5USEVBRC5jaGlsZE5vZGVzLmZvckVhY2goaD0+e2NvbnN0IGY9aC5jaGlsZE5vZGVzW2RdO2YmJmEucHVzaChmKX0pLGF9Z2V0Um93SGVhZGVyKGwpe2xldCBh'@; put 'PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO2lmKDA9PT10aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VDb2x1bW5Ub1Zpc2libGVSb3dIZWFkZWRDb2x1bW4oMCkpcmV0dXJuO2lmKGE+PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJy'@; put 'b3dIZWFkZXJzIikubGVuZ3RoKXJldHVybjtjb25zdCBoPXRoaXMuVEJPRFkuY2hpbGROb2Rlc1t0aGlzLnJvd0ZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGwpXTtyZXR1cm4gaD8uY2hpbGROb2Rlc1thXX1nZXRSb3dIZWFkZXJzKGwpe2lmKDA9PT10aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VD'@; put 'b2x1bW5Ub1Zpc2libGVSb3dIZWFkZWRDb2x1bW4oMCkpcmV0dXJuW107Y29uc3QgYT1bXSxkPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoO2ZvcihsZXQgaD0wO2g8ZDtoKyspe2NvbnN0IGY9dGhpcy5UQk9EWS5jaGlsZE5vZGVzW3RoaXMucm93Rmls'@; put 'dGVyLnNvdXJjZVRvUmVuZGVyZWQobCldLF89Zj8uY2hpbGROb2Rlc1toXTtfJiZhLnB1c2goXyl9cmV0dXJuIGF9Z2V0Q29vcmRzKGwpe2xldCBhPWw7aWYoIlREIiE9PWEubm9kZU5hbWUmJiJUSCIhPT1hLm5vZGVOYW1lJiYoYT1OcChhLFsiVEQiLCJUSCJdKSksbnVsbD09PWEpcmV0dXJu'@; put 'IG51bGw7Y29uc3QgZD1hLnBhcmVudE5vZGUsaD1kLnBhcmVudE5vZGU7bGV0IGY9c3RlKGQpLF89YS5jZWxsSW5kZXg7cmV0dXJuIEJwKENnLGEsdGhpcy53dFJvb3RFbGVtZW50KXx8QnAoeWcsYSx0aGlzLnd0Um9vdEVsZW1lbnQpPyJUSEVBRCI9PT1oLm5vZGVOYW1lJiYoZi09aC5jaGls'@; put 'ZE5vZGVzLmxlbmd0aCk6Zj1CcChacCxhLHRoaXMud3RSb290RWxlbWVudCl8fEJwKGdoLGEsdGhpcy53dFJvb3RFbGVtZW50KT90aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktaC5jaGlsZE5vZGVzLmxlbmd0aCtmOmg9PT10aGlzLlRIRUFEP3RoaXMucm93RmlsdGVy'@; put 'LnZpc2libGVDb2xIZWFkZWRSb3dUb1NvdXJjZVJvdyhmKTp0aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKGYpLF89QnAoQ2csYSx0aGlzLnd0Um9vdEVsZW1lbnQpfHxCcCh3ZyxhLHRoaXMud3RSb290RWxlbWVudCl8fEJwKFpwLGEsdGhpcy53dFJvb3RFbGVtZW50KT90aGlzLmNv'@; put 'bHVtbkZpbHRlci5vZmZzZXR0ZWRUSChfKTp0aGlzLmNvbHVtbkZpbHRlci52aXNpYmxlUm93SGVhZGVkQ29sdW1uVG9Tb3VyY2VDb2x1bW4oXyksdGhpcy53b3QuY3JlYXRlQ2VsbENvb3JkcyhmLF8pfW1hcmtPdmVyc2l6ZWRSb3dzKCl7aWYodGhpcy53dFNldHRpbmdzLmdldFNldHRpbmco'@; put 'ImV4dGVybmFsUm93Q2FsY3VsYXRvciIpKXJldHVybjtsZXQgaCxmLF8sVCxXLGw9dGhpcy5UQk9EWS5jaGlsZE5vZGVzLmxlbmd0aDtpZihsKnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IikhPWpmKHRoaXMuVEJPRFkpLTF8fHRoaXMud3RTZXR0aW5ncy5n'@; put 'ZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSlmb3IoO2w7KWwtPTEsXz10aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKGwpLGg9dGhpcy5nZXRSb3dIZWlnaHQoXyksVD10aGlzLmdldFRyRm9yUm93KF8pLFc9VC5xdWVyeVNlbGVjdG9yKCJ0aCIpLGY9Vz9qZihXKTpqZihUKS0x'@; put 'LCghaCYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRSb3dIZWlnaHQiKTxmfHxoPGYpJiYoZis9MSx0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW19dPWYpfWdldFRyRm9yUm93KGwpe3JldHVybiB0aGlzLlRCT0RZLmNoaWxkTm9kZXNb'@; put 'dGhpcy5yb3dGaWx0ZXIuc291cmNlVG9SZW5kZXJlZChsKV19aXNDb2x1bW5IZWFkZXJSZW5kZXJlZChsKXtpZihsPj0wKXJldHVybiExO2NvbnN0IGQ9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGg7cmV0dXJuIE1hdGguYWJzKGwpPD1kfWlzUm93SGVh'@; put 'ZGVyUmVuZGVyZWQobCl7aWYobD49MClyZXR1cm4hMTtjb25zdCBkPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO3JldHVybiBNYXRoLmFicyhsKTw9ZH1pc1Jvd0JlZm9yZVJlbmRlcmVkUm93cyhsKXtjb25zdCBhPXRoaXMuZ2V0Rmlyc3RSZW5k'@; put 'ZXJlZFJvdygpO3JldHVybiBsPDAmJmE8PTA/IXRoaXMuaXNSb3dIZWFkZXJSZW5kZXJlZChsKTpsPGF9aXNSb3dBZnRlclJlbmRlcmVkUm93cyhsKXtyZXR1cm4gbD50aGlzLmdldExhc3RSZW5kZXJlZFJvdygpfWlzQ29sdW1uQmVmb3JlUmVuZGVyZWRDb2x1bW5zKGwpe2NvbnN0IGE9dGhp'@; put 'cy5nZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCk7cmV0dXJuIGw8MCYmYTw9MD8hdGhpcy5pc0NvbHVtbkhlYWRlclJlbmRlcmVkKGwpOmw8YX1pc0NvbHVtbkFmdGVyUmVuZGVyZWRDb2x1bW5zKGwpe3JldHVybiB0aGlzLmNvbHVtbkZpbHRlciYmbD50aGlzLmdldExhc3RSZW5kZXJlZENvbHVt'@; put 'bigpfWlzQ29sdW1uQWZ0ZXJWaWV3cG9ydChsKXtyZXR1cm4gdGhpcy5jb2x1bW5GaWx0ZXImJmw+dGhpcy5nZXRMYXN0VmlzaWJsZUNvbHVtbigpfWlzUm93QWZ0ZXJWaWV3cG9ydChsKXtyZXR1cm4gdGhpcy5yb3dGaWx0ZXImJmw+dGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpfWlzQ29sdW1u'@; put 'QmVmb3JlVmlld3BvcnQobCl7cmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyJiZ0aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGwpPDAmJmw+PTB9aXNMYXN0Um93RnVsbHlWaXNpYmxlKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFZpc2libGVSb3coKT09PXRoaXMuZ2V0TGFzdFJlbmRl'@; put 'cmVkUm93KCl9aXNMYXN0Q29sdW1uRnVsbHlWaXNpYmxlKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFZpc2libGVDb2x1bW4oKT09PXRoaXMuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9YWxsUm93c0luVmlld3BvcnQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93'@; put 'cyIpPT09dGhpcy5nZXRWaXNpYmxlUm93c0NvdW50KCl9YWxsQ29sdW1uc0luVmlld3BvcnQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpPT09dGhpcy5nZXRWaXNpYmxlQ29sdW1uc0NvdW50KCl9Z2V0Um93SGVpZ2h0KGwpe3JldHVybiB0aGlz'@; put 'LnJvd1V0aWxzLmdldEhlaWdodChsKX1nZXRDb2x1bW5IZWFkZXJIZWlnaHQobCl7cmV0dXJuIHRoaXMuY29sdW1uVXRpbHMuZ2V0SGVhZGVySGVpZ2h0KGwpfWdldENvbHVtbldpZHRoKGwpe3JldHVybiB0aGlzLmNvbHVtblV0aWxzLmdldFdpZHRoKGwpfWdldFN0cmV0Y2hlZENvbHVtbldp'@; put 'ZHRoKGwpe3JldHVybiB0aGlzLmNvbHVtblV0aWxzLmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGwpfWhhc0RlZmluZWRTaXplKCl7cmV0dXJuIHRoaXMuaGFzVGFibGVIZWlnaHQmJnRoaXMuaGFzVGFibGVXaWR0aH1nZXRXaWR0aCgpe3JldHVybiB3YSh0aGlzLlRBQkxFKX1nZXRIZWlnaHQo'@; put 'KXtyZXR1cm4gYWwodGhpcy5UQUJMRSl9Z2V0VG90YWxXaWR0aCgpe2NvbnN0IGw9d2EodGhpcy5oaWRlcik7cmV0dXJuIDAhPT1sP2w6dGhpcy5nZXRXaWR0aCgpfWdldFRvdGFsSGVpZ2h0KCl7Y29uc3QgbD1hbCh0aGlzLmhpZGVyKTtyZXR1cm4gMCE9PWw/bDp0aGlzLmdldEhlaWdodCgp'@; put 'fWlzVmlzaWJsZSgpe3JldHVybiBlNyh0aGlzLlRBQkxFKX1fbW9kaWZ5Um93SGVhZGVyV2lkdGgobCl7bGV0IGE9UmEobCk/bCgpOm51bGw7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/KGE9Wy4uLmFdLGFbYS5sZW5ndGgtMV09dGhpcy5fY29ycmVjdFJvd0hlYWRlcldpZHRoKGFbYS5sZW5n'@; put 'dGgtMV0pKTphPXRoaXMuX2NvcnJlY3RSb3dIZWFkZXJXaWR0aChhKSxhfV9jb3JyZWN0Um93SGVhZGVyV2lkdGgobCl7bGV0IGE9bDtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGwmJihhPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Q29sdW1uV2lkdGgiKSksdGhpcy5jb3Jy'@; put 'ZWN0SGVhZGVyV2lkdGgmJihhKz0xKSxhfX0sWnRlPXtnZXRGaXJzdFJlbmRlcmVkUm93KCl7cmV0dXJuIDA9PT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik/LTE6MH0sZ2V0Rmlyc3RWaXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygp'@; put 'fSxnZXRMYXN0UmVuZGVyZWRSb3coKXtyZXR1cm4gdGhpcy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLTF9LGdldExhc3RWaXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkUm93KCl9LGdldFJlbmRlcmVkUm93c0NvdW50KCl7Y29uc3QgYz10aGlzLnd0U2V0dGluZ3MuZ2V0'@; put 'U2V0dGluZygidG90YWxSb3dzIik7cmV0dXJuIE1hdGgubWluKHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSxjKX0sZ2V0VmlzaWJsZVJvd3NDb3VudCgpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCl9fTtmaChadGUsIk1JWElOX05BTUUiLCJz'@; put 'dGlja3lSb3dzVG9wIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IFl0ZT1adGUsV3RlPXtnZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRDb2x1bW5SZW5kZXJlZDtyZXR1cm4gbnVsbD09PWM/LTE6Y30sZ2V0Rmly'@; put 'c3RWaXNpYmxlQ29sdW1uKCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRDb2x1bW5WaXNpYmxlO3JldHVybiBudWxsPT09Yz8tMTpjfSxnZXRMYXN0UmVuZGVyZWRDb2x1bW4oKXtjb25zdCBjPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRDb2x1bW5SZW5kZXJlZDtyZXR1'@; put 'cm4gbnVsbD09PWM/LTE6Y30sZ2V0TGFzdFZpc2libGVDb2x1bW4oKXtjb25zdCBjPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRDb2x1bW5WaXNpYmxlO3JldHVybiBudWxsPT09Yz8tMTpjfSxnZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NPYmplY3Qu'@; put 'Y291bnRDb2x1bW5zUmVuZGVyZWR9LGdldFZpc2libGVDb2x1bW5zQ291bnQoKXtyZXR1cm4gdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmNvdW50Q29sdW1uc1Zpc2libGV9fTtmaChXdGUsIk1JWElOX05BTUUiLCJjYWxjdWxhdGVkQ29sdW1ucyIse3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9'@; put 'KTtjb25zdCBOTj1XdGU7Y2xhc3MgVk4gZXh0ZW5kcyB1N3tjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEsZCxoLHlnKX19VGEoVk4sWXRlKSxUYShWTixOTik7Y29uc3QgSmtlPVZOO2Z1bmN0aW9uIEJOKGMsbCxhKXtyZXR1cm4gbD1mdW5jdGlvbiBRa2UoYyl7dmFyIGw9ZnVuY3Rp'@; put 'b24gZUFlKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHxudWxsPT09YylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpTdHJpbmcobCl9KGwpLGwgaW4gYz9PYmplY3Qu'@; put 'ZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gR3RlKGMsbCxhKXtyZXR1cm4gbD1mdW5jdGlvbiBvQWUoYyl7dmFyIGw9ZnVuY3Rpb24gc0FlKGMsbCl7aWYoIm9iamVjdCIhPXR5'@; put 'cGVvZiBjfHxudWxsPT09YylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBt'@; put 'dXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpTdHJpbmcobCl9KGwpLGwgaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTph'@; put 'LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gZnkoYyxsKXtyZXR1cm4gZnVuY3Rpb24gYUFlKGMsbCl7cmV0dXJuIGwuZ2V0P2wuZ2V0LmNhbGwoYyk6bC52YWx1ZX0oYywkdGUoYyxsLCJnZXQiKSl9ZnVuY3Rpb24gJHRlKGMs'@; put 'bCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIrYSsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGwuZ2V0KGMpfXZhciBTZz1uZXcgV2Vha01hcDtjbGFzcyBqTntjb25zdHJ1Y3RvcihsLGEpe2xldCBkPWFyZ3VtZW50'@; put 'cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07R3RlKHRoaXMsInJvdyIsbnVsbCksR3RlKHRoaXMsImNvbCIsbnVsbCksZnVuY3Rpb24gckFlKGMsbCxhKXsoZnVuY3Rpb24gaUFlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu'@; put 'bm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX0odGhpcyxTZyx7d3JpdGFibGU6ITAsdmFsdWU6ITF9KSxmdW5jdGlvbiBsQWUoYyxsLGEpe3JldHVybiBmdW5jdGlvbiBjQWUoYyxsLGEpe2lmKGwu'@; put 'c2V0KWwuc2V0LmNhbGwoYyxhKTtlbHNle2lmKCFsLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtsLnZhbHVlPWF9fShjLCR0ZShjLGwsInNldCIpLGEpLGF9KHRoaXMsU2csZCksdHlwZW9mIGw8InUiJiZ0'@; put 'eXBlb2YgYTwidSImJih0aGlzLnJvdz1sLHRoaXMuY29sPWEpfWlzVmFsaWQobCl7cmV0dXJuISh0aGlzLnJvdzwwfHx0aGlzLmNvbDwwfHx0aGlzLnJvdz49bC5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKXx8dGhpcy5jb2w+PWwuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIikpfWlzRXF1YWwo'@; put 'bCl7cmV0dXJuIGw9PT10aGlzfHx0aGlzLnJvdz09PWwucm93JiZ0aGlzLmNvbD09PWwuY29sfWlzU291dGhFYXN0T2YobCl7cmV0dXJuIHRoaXMucm93Pj1sLnJvdyYmKGZ5KHRoaXMsU2cpP3RoaXMuY29sPD1sLmNvbDp0aGlzLmNvbD49bC5jb2wpfWlzTm9ydGhXZXN0T2YobCl7cmV0dXJu'@; put 'IHRoaXMucm93PD1sLnJvdyYmKGZ5KHRoaXMsU2cpP3RoaXMuY29sPj1sLmNvbDp0aGlzLmNvbDw9bC5jb2wpfWlzU291dGhXZXN0T2YobCl7cmV0dXJuIHRoaXMucm93Pj1sLnJvdyYmKGZ5KHRoaXMsU2cpP3RoaXMuY29sPj1sLmNvbDp0aGlzLmNvbDw9bC5jb2wpfWlzTm9ydGhFYXN0T2Yo'@; put 'bCl7cmV0dXJuIHRoaXMucm93PD1sLnJvdyYmKGZ5KHRoaXMsU2cpP3RoaXMuY29sPD1sLmNvbDp0aGlzLmNvbD49bC5jb2wpfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLnJvdz1udWxsPT09dGhpcy5yb3c/dGhpcy5yb3c6TWF0aC5tYXgodGhpcy5yb3csMCksdGhpcy5jb2w9bnVsbD09PXRo'@; put 'aXMuY29sP3RoaXMuY29sOk1hdGgubWF4KHRoaXMuY29sLDApLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IGpOKHRoaXMucm93LHRoaXMuY29sLGZ5KHRoaXMsU2cpKX10b09iamVjdCgpe3JldHVybntyb3c6dGhpcy5yb3csY29sOnRoaXMuY29sfX19Y29uc3QgU2s9ak47ZnVuY3Rpb24gek4o'@; put 'YyxsLGEpe3JldHVybiBsPWZ1bmN0aW9uIGhBZShjKXt2YXIgbD1mdW5jdGlvbiBmQWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fG51bGw9PT1jKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVs'@; put 'dCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1i'@; put 'b2wiPT10eXBlb2YgbD9sOlN0cmluZyhsKX0obCksbCBpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiB2aChjLGwpe3JldHVybiBmdW5jdGlvbiBwQWUoYyxs'@; put 'KXtyZXR1cm4gbC5nZXQ/bC5nZXQuY2FsbChjKTpsLnZhbHVlfShjLHF0ZShjLGwsImdldCIpKX1mdW5jdGlvbiBxdGUoYyxsLGEpe2lmKCFsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIithKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1'@; put 'cm4gbC5nZXQoYyl9dmFyIGdkPW5ldyBXZWFrTWFwO2NsYXNzIFVOe2NvbnN0cnVjdG9yKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpsLGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJn'@; put 'dW1lbnRzWzJdOmwsaD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO3pOKHRoaXMsImhpZ2hsaWdodCIsbnVsbCksek4odGhpcywiZnJvbSIsbnVsbCksek4odGhpcywidG8iLG51bGwpLGZ1bmN0aW9uIHVBZShjLGwsYSl7KGZ1bmN0aW9u'@; put 'IGRBZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9KHRoaXMsZ2Qse3dyaXRhYmxlOiEwLHZhbHVlOiExfSksdGhpcy5o'@; put 'aWdobGlnaHQ9bC5jbG9uZSgpLm5vcm1hbGl6ZSgpLHRoaXMuZnJvbT1hLmNsb25lKCksdGhpcy50bz1kLmNsb25lKCksZnVuY3Rpb24gZ0FlKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gbUFlKGMsbCxhKXtpZihsLnNldClsLnNldC5jYWxsKGMsYSk7ZWxzZXtpZighbC53cml0YWJsZSl0aHJv'@; put 'dyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7bC52YWx1ZT1hfX0oYyxxdGUoYyxsLCJzZXQiKSxhKSxhfSh0aGlzLGdkLGgpfXNldEhpZ2hsaWdodChsKXtyZXR1cm4gdGhpcy5oaWdobGlnaHQ9bC5jbG9uZSgpLm5vcm1hbGl6ZSgp'@; put 'LHRoaXN9c2V0RnJvbShsKXtyZXR1cm4gdGhpcy5mcm9tPWwuY2xvbmUoKSx0aGlzfXNldFRvKGwpe3JldHVybiB0aGlzLnRvPWwuY2xvbmUoKSx0aGlzfWlzVmFsaWQobCl7cmV0dXJuIHRoaXMuZnJvbS5pc1ZhbGlkKGwpJiZ0aGlzLnRvLmlzVmFsaWQobCl9aXNTaW5nbGUoKXtyZXR1cm4g'@; put 'dGhpcy5mcm9tLnJvdz49MCYmdGhpcy5mcm9tLnJvdz09PXRoaXMudG8ucm93JiZ0aGlzLmZyb20uY29sPj0wJiZ0aGlzLmZyb20uY29sPT09dGhpcy50by5jb2x9Z2V0T3V0ZXJIZWlnaHQoKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyktTWF0aC5taW4odGhp'@; put 'cy5mcm9tLnJvdyx0aGlzLnRvLnJvdykrMX1nZXRPdXRlcldpZHRoKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpLU1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKzF9Z2V0SGVpZ2h0KCl7aWYodGhpcy5mcm9tLnJvdzwwJiZ0aGlzLnRvLnJv'@; put 'dzwwKXJldHVybiAwO2NvbnN0IGw9TWF0aC5tYXgodGhpcy5mcm9tLnJvdywwKSxhPU1hdGgubWF4KHRoaXMudG8ucm93LDApO3JldHVybiBNYXRoLm1heChsLGEpLU1hdGgubWluKGwsYSkrMX1nZXRXaWR0aCgpe2lmKHRoaXMuZnJvbS5jb2w8MCYmdGhpcy50by5jb2w8MClyZXR1cm4gMDtj'@; put 'b25zdCBsPU1hdGgubWF4KHRoaXMuZnJvbS5jb2wsMCksYT1NYXRoLm1heCh0aGlzLnRvLmNvbCwwKTtyZXR1cm4gTWF0aC5tYXgobCxhKS1NYXRoLm1pbihsLGEpKzF9Z2V0Q2VsbHNDb3VudCgpe3JldHVybiB0aGlzLmdldFdpZHRoKCkqdGhpcy5nZXRIZWlnaHQoKX1pbmNsdWRlcyhsKXtj'@; put 'b25zdHtyb3c6YSxjb2w6ZH09bCxoPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLGY9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpO3JldHVybiBoLnJvdzw9YSYmZi5yb3c+PWEmJmguY29sPD1kJiZmLmNvbD49ZH1pbmNsdWRlc1JhbmdlKGwpe3JldHVybiB0aGlzLmluY2x1'@; put 'ZGVzKGwuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpKSYmdGhpcy5pbmNsdWRlcyhsLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCkpfWlzRXF1YWwobCl7cmV0dXJuIE1hdGgubWluKHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpPT09TWF0aC5taW4obC5mcm9tLnJvdyxsLnRvLnJvdykmJk1h'@; put 'dGgubWF4KHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpPT09TWF0aC5tYXgobC5mcm9tLnJvdyxsLnRvLnJvdykmJk1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpPT09TWF0aC5taW4obC5mcm9tLmNvbCxsLnRvLmNvbCkmJk1hdGgubWF4KHRoaXMuZnJvbS5jb2wsdGhpcy50'@; put 'by5jb2wpPT09TWF0aC5tYXgobC5mcm9tLmNvbCxsLnRvLmNvbCl9b3ZlcmxhcHMobCl7cmV0dXJuIGwuaXNTb3V0aEVhc3RPZih0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpKSYmbC5pc05vcnRoV2VzdE9mKHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpKX1pc1NvdXRoRWFz'@; put 'dE9mKGwpe3JldHVybiB0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpLmlzU291dGhFYXN0T2YobCl8fHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpLmlzU291dGhFYXN0T2YobCl9aXNOb3J0aFdlc3RPZihsKXtyZXR1cm4gdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5p'@; put 'c05vcnRoV2VzdE9mKGwpfHx0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5pc05vcnRoV2VzdE9mKGwpfWlzT3ZlcmxhcHBpbmdIb3Jpem9udGFsbHkobCl7cmV0dXJuIHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbD49bC5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5j'@; put 'b2wmJnRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbDw9bC5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkuY29sfHx0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpLmNvbDw9bC5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkuY29sJiZ0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigp'@; put 'LmNvbD49bC5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5jb2x9aXNPdmVybGFwcGluZ1ZlcnRpY2FsbHkobCl7cmV0dXJuIHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpLnJvdz49bC5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkucm93JiZ0aGlzLmdldE91dGVyQm90dG9tUmlnaHRD'@; put 'b3JuZXIoKS5yb3c8PWwuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpLnJvd3x8dGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkucm93PD1sLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5yb3cmJnRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdz49bC5nZXRPdXRlclRv'@; put 'cFJpZ2h0Q29ybmVyKCkucm93fWV4cGFuZChsKXtjb25zdCBhPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLGQ9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpO3JldHVybihsLnJvdzxhLnJvd3x8bC5jb2w8YS5jb2x8fGwucm93PmQucm93fHxsLmNvbD5kLmNvbCkmJih0aGlz'@; put 'LmZyb209dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbihhLnJvdyxsLnJvdyksTWF0aC5taW4oYS5jb2wsbC5jb2wpKSx0aGlzLnRvPXRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5tYXgoZC5yb3csbC5yb3cpLE1hdGgubWF4KGQuY29sLGwuY29sKSksITApfWV4cGFuZEJ5UmFu'@; put 'Z2UobCl7aWYodGhpcy5pbmNsdWRlc1JhbmdlKGwpfHwhdGhpcy5vdmVybGFwcyhsKSlyZXR1cm4hMTtjb25zdCBhPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLGQ9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLGg9dGhpcy5nZXREaXJlY3Rpb24oKSxmPWwuZ2V0T3V0ZXJU'@; put 'b3BTdGFydENvcm5lcigpLF89bC5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLFQ9TWF0aC5taW4oYS5yb3csZi5yb3cpLFc9TWF0aC5taW4oYS5jb2wsZi5jb2wpLGllPU1hdGgubWF4KGQucm93LF8ucm93KSxwZT1NYXRoLm1heChkLmNvbCxfLmNvbCksd2U9dGhpcy5fY3JlYXRlQ2VsbENv'@; put 'b3JkcyhULFcpLEVlPXRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoaWUscGUpO3JldHVybiB0aGlzLmZyb209d2UsdGhpcy50bz1FZSx0aGlzLnNldERpcmVjdGlvbihoKSx0aGlzLmhpZ2hsaWdodC5yb3c9PT10aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5yb3cmJiJOLVMiPT09dGhp'@; put 'cy5nZXRWZXJ0aWNhbERpcmVjdGlvbigpJiZ0aGlzLmZsaXBEaXJlY3Rpb25WZXJ0aWNhbGx5KCksdGhpcy5oaWdobGlnaHQuY29sPT09dGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkuY29sJiYiVy1FIj09PXRoaXMuZ2V0SG9yaXpvbnRhbERpcmVjdGlvbigpJiZ0aGlzLmZsaXBEaXJl'@; put 'Y3Rpb25Ib3Jpem9udGFsbHkoKSwhMH1nZXREaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy5mcm9tLmlzTm9ydGhXZXN0T2YodGhpcy50byk/Ik5XLVNFIjp0aGlzLmZyb20uaXNOb3J0aEVhc3RPZih0aGlzLnRvKT8iTkUtU1ciOnRoaXMuZnJvbS5pc1NvdXRoRWFzdE9mKHRoaXMudG8pPyJTRS1O'@; put 'VyI6dGhpcy5mcm9tLmlzU291dGhXZXN0T2YodGhpcy50byk/IlNXLU5FIjp2b2lkIDB9c2V0RGlyZWN0aW9uKGwpe3N3aXRjaChsKXtjYXNlIk5XLVNFIjpbdGhpcy5mcm9tLHRoaXMudG9dPVt0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpLHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENv'@; put 'cm5lcigpXTticmVhaztjYXNlIk5FLVNXIjpbdGhpcy5mcm9tLHRoaXMudG9dPVt0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKSx0aGlzLmdldE91dGVyQm90dG9tTGVmdENvcm5lcigpXTticmVhaztjYXNlIlNFLU5XIjpbdGhpcy5mcm9tLHRoaXMudG9dPVt0aGlzLmdldE91dGVyQm90'@; put 'dG9tUmlnaHRDb3JuZXIoKSx0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpXTticmVhaztjYXNlIlNXLU5FIjpbdGhpcy5mcm9tLHRoaXMudG9dPVt0aGlzLmdldE91dGVyQm90dG9tTGVmdENvcm5lcigpLHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpXX19Z2V0VmVydGljYWxEaXJl'@; put 'Y3Rpb24oKXtyZXR1cm5bIk5FLVNXIiwiTlctU0UiXS5pbmRleE9mKHRoaXMuZ2V0RGlyZWN0aW9uKCkpPi0xPyJOLVMiOiJTLU4ifWdldEhvcml6b250YWxEaXJlY3Rpb24oKXtyZXR1cm5bIk5XLVNFIiwiU1ctTkUiXS5pbmRleE9mKHRoaXMuZ2V0RGlyZWN0aW9uKCkpPi0xPyJXLUUiOiJF'@; put 'LVcifWZsaXBEaXJlY3Rpb25WZXJ0aWNhbGx5KCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9uKCkpe2Nhc2UiTlctU0UiOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJTRS1OVyIpO2JyZWFrO2Nhc2UiU0UtTlciOnRoaXMu'@; put 'c2V0RGlyZWN0aW9uKCJORS1TVyIpO2JyZWFrO2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpfX1mbGlwRGlyZWN0aW9uSG9yaXpvbnRhbGx5KCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9uKCkpe2Nhc2UiTlctU0UiOnRoaXMuc2V0RGlyZWN0aW9uKCJORS1TVyIpO2Jy'@; put 'ZWFrO2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpO2JyZWFrO2Nhc2UiU0UtTlciOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0aW9uKCJTRS1OVyIpfX1nZXRUb3BTdGFydENvcm5lcigpe3JldHVybiB0aGlz'@; put 'Ll9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWluKHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3JtYWxpemUoKX1nZXRUb3BMZWZ0Q29ybmVyKCl7cmV0dXJuIHZoKHRoaXMsZ2QpP3RoaXMuZ2V0VG9wRW5kQ29ybmVyKCk6'@; put 'dGhpcy5nZXRUb3BTdGFydENvcm5lcigpfWdldEJvdHRvbUVuZENvcm5lcigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWF4KHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3JtYWxpemUoKX1nZXRC'@; put 'b3R0b21SaWdodENvcm5lcigpe3JldHVybiB2aCh0aGlzLGdkKT90aGlzLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCk6dGhpcy5nZXRCb3R0b21FbmRDb3JuZXIoKX1nZXRUb3BFbmRDb3JuZXIoKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRo'@; put 'aXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXplKCl9Z2V0VG9wUmlnaHRDb3JuZXIoKXtyZXR1cm4gdmgodGhpcyxnZCk/dGhpcy5nZXRUb3BTdGFydENvcm5lcigpOnRoaXMuZ2V0VG9wRW5kQ29ybmVyKCl9Z2V0Qm90dG9tU3RhcnRDb3Ju'@; put 'ZXIoKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXplKCl9Z2V0Qm90dG9tTGVmdENvcm5lcigpe3JldHVybiB2aCh0aGlzLGdkKT90aGlz'@; put 'LmdldEJvdHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0Qm90dG9tU3RhcnRDb3JuZXIoKX1nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0'@; put 'aGlzLnRvLmNvbCkpfWdldE91dGVyVG9wTGVmdENvcm5lcigpe3JldHVybiB2aCh0aGlzLGdkKT90aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCk6dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl9Z2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENv'@; put 'b3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSl9Z2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpe3JldHVybiB2aCh0aGlzLGdkKT90aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTp0aGlzLmdl'@; put 'dE91dGVyQm90dG9tRW5kQ29ybmVyKCl9Z2V0T3V0ZXJUb3BFbmRDb3JuZXIoKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSl9Z2V0T3V0ZXJUb3BSaWdo'@; put 'dENvcm5lcigpe3JldHVybiB2aCh0aGlzLGdkKT90aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKTp0aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCl9Z2V0T3V0ZXJCb3R0b21TdGFydENvcm5lcigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5y'@; put 'b3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKX1nZXRPdXRlckJvdHRvbUxlZnRDb3JuZXIoKXtyZXR1cm4gdmgodGhpcyxnZCk/dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0T3V0ZXJCb3R0b21TdGFydENvcm5lcigpfWlz'@; put 'Q29ybmVyKGwsYSl7cmV0dXJuISEoYSYmYS5pbmNsdWRlcyhsKSYmKHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuaXNFcXVhbCh0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKGEuZnJvbS5yb3csYS5mcm9tLmNvbCkpfHx0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5pc0VxdWFsKHRo'@; put 'aXMuX2NyZWF0ZUNlbGxDb29yZHMoYS5mcm9tLnJvdyxhLnRvLmNvbCkpfHx0aGlzLmdldE91dGVyQm90dG9tTGVmdENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhhLnRvLnJvdyxhLmZyb20uY29sKSl8fHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpLmlz'@; put 'RXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhhLnRvLnJvdyxhLnRvLmNvbCkpKSl8fGwuaXNFcXVhbCh0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpKXx8bC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpKXx8bC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJCb3R0b21M'@; put 'ZWZ0Q29ybmVyKCkpfHxsLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkpfWdldE9wcG9zaXRlQ29ybmVyKGwsYSl7aWYoIShsIGluc3RhbmNlb2YgU2spKXJldHVybiExO2lmKGEpe2NvbnN0e2Zyb206ZCx0bzpofT1hO2lmKGEuaW5jbHVkZXMobCkpe2lmKHRoaXMu'@; put 'Z2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhkLnJvdyxkLmNvbCkpKXJldHVybiB0aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7aWYodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENv'@; put 'b3JkcyhkLnJvdyxoLmNvbCkpKXJldHVybiB0aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTtpZih0aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoaC5yb3csZC5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcEVu'@; put 'ZENvcm5lcigpO2lmKHRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoaC5yb3csaC5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl9fXJldHVybiBsLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbUVu'@; put 'ZENvcm5lcigpKT90aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKTpsLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTpsLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpKT90aGlzLmdldE91dGVy'@; put 'Qm90dG9tU3RhcnRDb3JuZXIoKTpsLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbVN0YXJ0Q29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJUb3BFbmRDb3JuZXIoKTp2b2lkIDB9Z2V0Qm9yZGVyc1NoYXJlZFdpdGgobCl7aWYoIXRoaXMuaW5jbHVkZXNSYW5nZShsKSlyZXR1cm5bXTtjb25zdCBh'@; put 'X3RvcD1NYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxhX2JvdHRvbT1NYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxhX2xlZnQ9TWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCksYV9yaWdodD1NYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMu'@; put 'dG8uY29sKSxkX3RvcD1NYXRoLm1pbihsLmZyb20ucm93LGwudG8ucm93KSxkX2JvdHRvbT1NYXRoLm1heChsLmZyb20ucm93LGwudG8ucm93KSxkX2xlZnQ9TWF0aC5taW4obC5mcm9tLmNvbCxsLnRvLmNvbCksZF9yaWdodD1NYXRoLm1heChsLmZyb20uY29sLGwudG8uY29sKSxoPVtdO3Jl'@; put 'dHVybiBhX3RvcD09PWRfdG9wJiZoLnB1c2goInRvcCIpLGFfcmlnaHQ9PT1kX3JpZ2h0JiZoLnB1c2goInJpZ2h0IiksYV9ib3R0b209PT1kX2JvdHRvbSYmaC5wdXNoKCJib3R0b20iKSxhX2xlZnQ9PT1kX2xlZnQmJmgucHVzaCgibGVmdCIpLGh9Z2V0SW5uZXIoKXtjb25zdCBsPXRoaXMu'@; put 'Z2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLGE9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLGQ9W107Zm9yKGxldCBoPWwucm93O2g8PWEucm93O2grKylmb3IobGV0IGY9bC5jb2w7Zjw9YS5jb2w7ZisrKSh0aGlzLmZyb20ucm93IT09aHx8dGhpcy5mcm9tLmNvbCE9PWYpJiYodGhp'@; put 'cy50by5yb3chPT1ofHx0aGlzLnRvLmNvbCE9PWYpJiZkLnB1c2godGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhoLGYpKTtyZXR1cm4gZH1nZXRBbGwoKXtjb25zdCBsPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLGE9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLGQ9W107Zm9y'@; put 'KGxldCBoPWwucm93O2g8PWEucm93O2grKylmb3IobGV0IGY9bC5jb2w7Zjw9YS5jb2w7ZisrKWQucHVzaChsLnJvdz09PWgmJmwuY29sPT09Zj9sOmEucm93PT09aCYmYS5jb2w9PT1mP2E6dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhoLGYpKTtyZXR1cm4gZH1mb3JBbGwobCl7Y29uc3QgYT10'@; put 'aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSxkPXRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTtmb3IobGV0IGg9YS5yb3c7aDw9ZC5yb3c7aCsrKWZvcihsZXQgZj1hLmNvbDtmPD1kLmNvbDtmKyspaWYoITE9PT1sKGgsZikpcmV0dXJufWNsb25lKCl7cmV0dXJuIG5ldyBVTih0'@; put 'aGlzLmhpZ2hsaWdodCx0aGlzLmZyb20sdGhpcy50byx2aCh0aGlzLGdkKSl9dG9PYmplY3QoKXtyZXR1cm57ZnJvbTp0aGlzLmZyb20udG9PYmplY3QoKSx0bzp0aGlzLnRvLnRvT2JqZWN0KCl9fV9jcmVhdGVDZWxsQ29vcmRzKGwsYSl7cmV0dXJuIG5ldyBTayhsLGEsdmgodGhpcyxnZCkp'@; put 'fX1jb25zdCBaTj1VTjtmdW5jdGlvbiBfMihjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gdkFlKGMpe3ZhciBsPWZ1bmN0aW9uIF9BZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEp'@; put 'e3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShj'@; put 'KX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIFlOe2dldCBl'@; put 'dmVudE1hbmFnZXIoKXtyZXR1cm4gbmV3IGxsKHRoaXMpfWNvbnN0cnVjdG9yKGwsYSl7XzIodGhpcywid3RUYWJsZSIsdm9pZCAwKSxfMih0aGlzLCJ3dFNjcm9sbCIsdm9pZCAwKSxfMih0aGlzLCJ3dFZpZXdwb3J0Iix2b2lkIDApLF8yKHRoaXMsInd0T3ZlcmxheXMiLHZvaWQgMCksXzIo'@; put 'dGhpcywic2VsZWN0aW9ucyIsdm9pZCAwKSxfMih0aGlzLCJ3dEV2ZW50Iix2b2lkIDApLF8yKHRoaXMsImd1aWQiLGB3dF8ke2FOKCl9YCksXzIodGhpcywiZHJhd0ludGVycnVwdGVkIiwhMSksXzIodGhpcywiZHJhd24iLCExKSxfMih0aGlzLCJkb21CaW5kaW5ncyIsdm9pZCAwKSxfMih0'@; put 'aGlzLCJ3dFNldHRpbmdzIix2b2lkIDApLHRoaXMuZG9tQmluZGluZ3M9e3Jvb3RUYWJsZTpsLHJvb3REb2N1bWVudDpsLm93bmVyRG9jdW1lbnQscm9vdFdpbmRvdzpsLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd9LHRoaXMud3RTZXR0aW5ncz1hLHRoaXMud3RTY3JvbGw9bmV3IGNsYXNz'@; put 'IHRBZXtjb25zdHJ1Y3RvcihsKXtCTih0aGlzLCJkYXRhQWNjZXNzT2JqZWN0Iix2b2lkIDApLEJOKHRoaXMsImxhc3RTY3JvbGxlZENvbHVtblBvcyIsLTEpLEJOKHRoaXMsImxhc3RTY3JvbGxlZFJvd1BvcyIsLTEpLHRoaXMuZGF0YUFjY2Vzc09iamVjdD1sfXNjcm9sbFZpZXdwb3J0KGws'@; put 'YSxkLGgsZil7Y29uc3QgXz10aGlzLnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGwuY29sLGQsZiksVD10aGlzLnNjcm9sbFZpZXdwb3J0VmVydGljYWxseShsLnJvdyxhLGgpO3JldHVybiBffHxUfXNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGwsYSxkKXtjb25zdHtkcmF3bjpoLHRv'@; put 'dGFsQ29sdW1uczpmfT10aGlzLmRhdGFBY2Nlc3NPYmplY3Q7aWYoIWh8fCFOdW1iZXIuaXNJbnRlZ2VyKGwpfHxsPDB8fGw+ZilyZXR1cm4hMTtjb25zdCBfPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCksVD10aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCksVz12b2lkIDA9PT1hJiZ2'@; put 'b2lkIDA9PT1kLHtmaXhlZENvbHVtbnNTdGFydDppZSxpbmxpbmVTdGFydE92ZXJsYXk6cGV9PXRoaXMuZGF0YUFjY2Vzc09iamVjdDtpZihXJiZsPGllKXJldHVybiExO2xldCB3ZT0hMTtyZXR1cm4tMT09PV8/d2U9cGUuc2Nyb2xsVG8obCxXP2w+dGhpcy5sYXN0U2Nyb2xsZWRDb2x1bW5Q'@; put 'b3M6YSk6KFcmJihsPF98fGw+VCl8fCFXKSYmKHdlPXBlLnNjcm9sbFRvKGwsVz9sPlQ6YSkpLHdlJiYodGhpcy5sYXN0U2Nyb2xsZWRDb2x1bW5Qb3M9bCksd2V9c2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGwsYSxkKXtjb25zdHtkcmF3bjpoLHRvdGFsUm93czpmfT10aGlzLmRhdGFBY2Nl'@; put 'c3NPYmplY3Q7aWYoIWh8fCFOdW1iZXIuaXNJbnRlZ2VyKGwpfHxsPDB8fGw+ZilyZXR1cm4hMTtjb25zdCBfPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlUm93KCksVD10aGlzLmdldExhc3RWaXNpYmxlUm93KCksVz12b2lkIDA9PT1hJiZ2b2lkIDA9PT1kLHtmaXhlZFJvd3NCb3R0b206aWUsZml4'@; put 'ZWRSb3dzVG9wOnBlLHRvcE92ZXJsYXk6d2V9PXRoaXMuZGF0YUFjY2Vzc09iamVjdDtpZihXJiYobDxwZXx8bD5mLWllLTEpKXJldHVybiExO2xldCBFZT0hMTtyZXR1cm4tMT09PV8/RWU9d2Uuc2Nyb2xsVG8obCxXP2w+dGhpcy5sYXN0U2Nyb2xsZWRSb3dQb3M6ZCk6KFcmJihsPF98fGw+'@; put 'VCl8fCFXKSYmKEVlPXdlLnNjcm9sbFRvKGwsVz9sPlQ6ZCkpLEVlJiYodGhpcy5sYXN0U2Nyb2xsZWRSb3dQb3M9bCksRWV9Z2V0Rmlyc3RWaXNpYmxlUm93KCl7Y29uc3R7dG9wT3ZlcmxheTpsLHd0VGFibGU6YSx3dFZpZXdwb3J0OmQsdG90YWxSb3dzOmgsZml4ZWRSb3dzVG9wOmYscm9v'@; put 'dFdpbmRvdzpffT10aGlzLmRhdGFBY2Nlc3NPYmplY3Q7bGV0IFQ9YS5nZXRGaXJzdFZpc2libGVSb3coKTtpZihsLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09Xyl7Y29uc3QgVz1LbChhLnd0Um9vdEVsZW1lbnQpLGllPWpmKGEuaGlkZXIpLHBlPWpmKF8pLHdlPW55KF8sXyk7aWYo'@; put 'Vy50b3AraWUtcGU8PXdlKXtsZXQgRWU9ZC5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKTtFZSs9bC5zdW1DZWxsU2l6ZXMoMCxmKTtmb3IobGV0IFplPWg7WmU+MDtaZS0tKWlmKEVlKz1sLnN1bUNlbGxTaXplcyhaZS0xLFplKSxXLnRvcCtpZS1FZTw9d2Upe1Q9WmU7YnJlYWt9fX1yZXR1cm4g'@; put 'VH1nZXRMYXN0VmlzaWJsZVJvdygpe2NvbnN0e3RvcE92ZXJsYXk6bCx3dFRhYmxlOmEsd3RWaWV3cG9ydDpkLHRvdGFsUm93czpoLHJvb3RXaW5kb3c6Zn09dGhpcy5kYXRhQWNjZXNzT2JqZWN0O2xldCBfPWEuZ2V0TGFzdFZpc2libGVSb3coKTtpZihsLm1haW5UYWJsZVNjcm9sbGFibGVF'@; put 'bGVtZW50PT09Zil7Y29uc3QgVD1LbChhLnd0Um9vdEVsZW1lbnQpLFc9bnkoZixmKTtpZihULnRvcD5XKXtjb25zdCBpZT1qZihmKTtsZXQgcGU9ZC5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKTtmb3IobGV0IHdlPTE7d2U8PWg7d2UrKylpZihwZSs9bC5zdW1DZWxsU2l6ZXMod2UtMSx3ZSks'@; put 'VC50b3ArcGUtVz49aWUpe189d2UtMjticmVha319fXJldHVybiBffWdldEZpcnN0VmlzaWJsZUNvbHVtbigpe2NvbnN0e2lubGluZVN0YXJ0T3ZlcmxheTpsLHd0VGFibGU6YSx3dFZpZXdwb3J0OmQsdG90YWxDb2x1bW5zOmgscm9vdFdpbmRvdzpmfT10aGlzLmRhdGFBY2Nlc3NPYmplY3Q7'@; put 'bGV0IF89YS5nZXRGaXJzdFZpc2libGVDb2x1bW4oKTtpZihsLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09Zil7Y29uc3QgVD1LbChhLnd0Um9vdEVsZW1lbnQpLFc9aXkoYS5oaWRlciksaWU9aXkoZikscGU9TWF0aC5hYnMoaWsoZixmKSk7aWYoVC5sZWZ0K1ctaWU8PXBlKXtsZXQg'@; put 'd2U9ZC5nZXRSb3dIZWFkZXJXaWR0aCgpO2ZvcihsZXQgRWU9aDtFZT4wO0VlLS0paWYod2UrPWwuc3VtQ2VsbFNpemVzKEVlLTEsRWUpLFQubGVmdCtXLXdlPD1wZSl7Xz1FZTticmVha319fXJldHVybiBffWdldExhc3RWaXNpYmxlQ29sdW1uKCl7Y29uc3R7d3RTZXR0aW5nczpsLGlubGlu'@; put 'ZVN0YXJ0T3ZlcmxheTphLHd0VGFibGU6ZCx3dFZpZXdwb3J0OmgsdG90YWxDb2x1bW5zOmYscm9vdFdpbmRvdzpffT10aGlzLmRhdGFBY2Nlc3NPYmplY3Q7bGV0IFQ9ZC5nZXRMYXN0VmlzaWJsZUNvbHVtbigpO2lmKGEubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1fKXtsZXQgaWU9'@; put 'bnVsbDtpZihsLmdldFNldHRpbmcoInJ0bE1vZGUiKSl7Y29uc3Qgd2U9ZC5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZT1NYXRoLmFicyh3ZS5yaWdodC10aGlzLmRhdGFBY2Nlc3NPYmplY3Qucm9vdFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgp'@; put 'fWVsc2UgaWU9S2woZC53dFJvb3RFbGVtZW50KS5sZWZ0O2NvbnN0IHBlPU1hdGguYWJzKGlrKF8sXykpO2lmKGllPnBlKXtjb25zdCB3ZT1peShfKTtsZXQgRWU9aC5nZXRSb3dIZWFkZXJXaWR0aCgpO2ZvcihsZXQgWmU9MTtaZTw9ZjtaZSsrKWlmKEVlKz1hLnN1bUNlbGxTaXplcyhaZS0x'@; put 'LFplKSxpZStFZS1wZT49d2Upe1Q9WmUtMjticmVha319fXJldHVybiBUfX0odGhpcy5jcmVhdGVTY3JvbGxEYW8oKSl9ZmluZE9yaWdpbmFsSGVhZGVycygpe2NvbnN0IGw9W107aWYodGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXMubGVuZ3RoJiZ0aGlzLnd0VGFibGUuVEhFQUQuY2hp'@; put 'bGROb2Rlc1swXS5jaGlsZE5vZGVzLmxlbmd0aCl7Zm9yKGxldCBhPTAsZD10aGlzLnd0VGFibGUuVEhFQUQuY2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzLmxlbmd0aDthPGQ7YSsrKWwucHVzaCh0aGlzLnd0VGFibGUuVEhFQUQuY2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzW2FdLmlubmVySFRN'@; put 'TCk7dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGh8fHRoaXMud3RTZXR0aW5ncy51cGRhdGUoImNvbHVtbkhlYWRlcnMiLFtmdW5jdGlvbihhLGQpe2pwKGQsbFthXSl9XSl9fWNyZWF0ZUNlbGxDb29yZHMobCxhKXtyZXR1cm4gbmV3IFNrKGwsYSx0'@; put 'aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpKX1jcmVhdGVDZWxsUmFuZ2UobCxhLGQpe3JldHVybiBuZXcgWk4obCxhLGQsdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJ0bE1vZGUiKSl9ZHJhdygpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJn'@; put 'dW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuZHJhd0ludGVycnVwdGVkPSExLGx8fHRoaXMud3RUYWJsZS5pc1Zpc2libGUoKT90aGlzLnd0VGFibGUuZHJhdyhsKTp0aGlzLmRyYXdJbnRlcnJ1cHRlZD0hMCx0aGlzfWdldENlbGwobCl7aWYoIShhcmd1bWVudHMubGVuZ3Ro'@; put 'PjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdKSlyZXR1cm4gdGhpcy53dFRhYmxlLmdldENlbGwobCk7Y29uc3QgZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiksaD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIiks'@; put 'Zj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksXz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKTtpZihsLnJvdzxoJiZsLmNvbDxfKXJldHVybiB0aGlzLnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVy'@; put 'bGF5LmNsb25lLnd0VGFibGUuZ2V0Q2VsbChsKTtpZihsLnJvdzxoKXJldHVybiB0aGlzLnd0T3ZlcmxheXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwobCk7aWYobC5jb2w8XyYmbC5yb3c+PWQtZil7aWYodGhpcy53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVy'@; put 'T3ZlcmxheSYmdGhpcy53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZSlyZXR1cm4gdGhpcy53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwobCl9ZWxzZXtpZihsLmNvbDxfKXJldHVybiB0'@; put 'aGlzLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25lLnd0VGFibGUuZ2V0Q2VsbChsKTtpZihsLnJvdzxkJiZsLnJvdz49ZC1mJiZ0aGlzLnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheSYmdGhpcy53dE92ZXJsYXlzLmJvdHRvbU92ZXJsYXkuY2xvbmUpcmV0dXJuIHRoaXMud3RP'@; put 'dmVybGF5cy5ib3R0b21PdmVybGF5LmNsb25lLnd0VGFibGUuZ2V0Q2VsbChsKX1yZXR1cm4gdGhpcy53dFRhYmxlLmdldENlbGwobCl9c2Nyb2xsVmlld3BvcnQobCxhLGQsaCxmKXtyZXR1cm4hKGwuY29sPDB8fGwucm93PDApJiZ0aGlzLnd0U2Nyb2xsLnNjcm9sbFZpZXdwb3J0KGwsYSxk'@; put 'LGgsZil9c2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkobCxhLGQpe3JldHVybiEobDwwKSYmdGhpcy53dFNjcm9sbC5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEsZCl9c2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGwsYSxkKXtyZXR1cm4hKGw8MCkmJnRoaXMud3RTY3JvbGwuc2Ny'@; put 'b2xsVmlld3BvcnRWZXJ0aWNhbGx5KGwsYSxkKX1nZXRWaWV3cG9ydCgpe3JldHVyblt0aGlzLnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlUm93KCksdGhpcy53dFRhYmxlLmdldEZpcnN0VmlzaWJsZUNvbHVtbigpLHRoaXMud3RUYWJsZS5nZXRMYXN0VmlzaWJsZVJvdygpLHRoaXMud3RUYWJs'@; put 'ZS5nZXRMYXN0VmlzaWJsZUNvbHVtbigpXX1kZXN0cm95KCl7dGhpcy53dE92ZXJsYXlzLmRlc3Ryb3koKSx0aGlzLnd0RXZlbnQuZGVzdHJveSgpfWNyZWF0ZVNjcm9sbERhbygpe2NvbnN0IGw9dGhpcztyZXR1cm57Z2V0IGRyYXduKCl7cmV0dXJuIGwuZHJhd259LGdldCB0b3BPdmVybGF5'@; put 'KCl7cmV0dXJuIGwud3RPdmVybGF5cy50b3BPdmVybGF5fSxnZXQgaW5saW5lU3RhcnRPdmVybGF5KCl7cmV0dXJuIGwud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXl9LGdldCB3dFRhYmxlKCl7cmV0dXJuIGwud3RUYWJsZX0sZ2V0IHd0Vmlld3BvcnQoKXtyZXR1cm4gbC53dFZpZXdw'@; put 'b3J0fSxnZXQgd3RTZXR0aW5ncygpe3JldHVybiBsLnd0U2V0dGluZ3N9LGdldCByb290V2luZG93KCl7cmV0dXJuIGwuZG9tQmluZGluZ3Mucm9vdFdpbmRvd30sZ2V0IHRvdGFsUm93cygpe3JldHVybiBsLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIil9LGdldCB0b3RhbENv'@; put 'bHVtbnMoKXtyZXR1cm4gbC53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpfSxnZXQgZml4ZWRSb3dzVG9wKCl7cmV0dXJuIGwud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKX0sZ2V0IGZpeGVkUm93c0JvdHRvbSgpe3JldHVybiBsLnd0U2V0dGluZ3Mu'@; put 'Z2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIil9LGdldCBmaXhlZENvbHVtbnNTdGFydCgpe3JldHVybiBsLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKX19fWdldFRhYmxlRGFvKCl7Y29uc3QgbD10aGlzO3JldHVybntnZXQgd290KCl7cmV0dXJuIGx9LGdl'@; put 'dCBwYXJlbnRUYWJsZU9mZnNldCgpe3JldHVybiBsLmNsb25lU291cmNlLnd0VGFibGUudGFibGVPZmZzZXR9LGdldCBjbG9uZVNvdXJjZSgpe3JldHVybiBsLmNsb25lU291cmNlfSxnZXQgd29ya3NwYWNlV2lkdGgoKXtyZXR1cm4gbC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZVdpZHRoKCl9'@; put 'LGdldCB3dFZpZXdwb3J0KCl7cmV0dXJuIGwud3RWaWV3cG9ydH0sZ2V0IHd0T3ZlcmxheXMoKXtyZXR1cm4gbC53dE92ZXJsYXlzfSxnZXQgc2VsZWN0aW9ucygpe3JldHVybiBsLnNlbGVjdGlvbnN9LGdldCBkcmF3bigpe3JldHVybiBsLmRyYXdufSxzZXQgZHJhd24oYSl7bC5kcmF3bj1h'@; put 'fSxnZXQgd3RUYWJsZSgpe3JldHVybiBsLnd0VGFibGV9LGdldCBzdGFydENvbHVtblJlbmRlcmVkKCl7cmV0dXJuIGwud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydENvbHVtbn0sZ2V0IHN0YXJ0Q29sdW1uVmlzaWJsZSgpe3JldHVybiBsLnd0Vmlld3BvcnQuY29s'@; put 'dW1uc1Zpc2libGVDYWxjdWxhdG9yLnN0YXJ0Q29sdW1ufSxnZXQgZW5kQ29sdW1uUmVuZGVyZWQoKXtyZXR1cm4gbC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLmVuZENvbHVtbn0sZ2V0IGVuZENvbHVtblZpc2libGUoKXtyZXR1cm4gbC53dFZpZXdwb3J0LmNvbHVtbnNW'@; put 'aXNpYmxlQ2FsY3VsYXRvci5lbmRDb2x1bW59LGdldCBjb3VudENvbHVtbnNSZW5kZXJlZCgpe3JldHVybiBsLnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3IuY291bnR9LGdldCBjb3VudENvbHVtbnNWaXNpYmxlKCl7cmV0dXJuIGwud3RWaWV3cG9ydC5jb2x1bW5zVmlzaWJs'@; put 'ZUNhbGN1bGF0b3IuY291bnR9LGdldCBzdGFydFJvd1JlbmRlcmVkKCl7cmV0dXJuIGwud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFJvd30sZ2V0IHN0YXJ0Um93VmlzaWJsZSgpe3JldHVybiBsLnd0Vmlld3BvcnQucm93c1Zpc2libGVDYWxjdWxhdG9yLnN0YXJ0Um93'@; put 'fSxnZXQgZW5kUm93UmVuZGVyZWQoKXtyZXR1cm4gbC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLmVuZFJvd30sZ2V0IGVuZFJvd1Zpc2libGUoKXtyZXR1cm4gbC53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvci5lbmRSb3d9LGdldCBjb3VudFJvd3NSZW5kZXJlZCgp'@; put 'e3JldHVybiBsLnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3IuY291bnR9LGdldCBjb3VudFJvd3NWaXNpYmxlKCl7cmV0dXJuIGwud3RWaWV3cG9ydC5yb3dzVmlzaWJsZUNhbGN1bGF0b3IuY291bnR9fX19ZnVuY3Rpb24gS3RlKGMsbCxhKXtyZXR1cm4gbD1mdW5jdGlvbiBiQWUo'@; put 'Yyl7dmFyIGw9ZnVuY3Rpb24geUFlKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHxudWxsPT09YylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0'@; put 'dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpTdHJpbmcobCl9KGwp'@; put 'LGwgaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3Mgd0FlIGV4dGVuZHMgWU57Y29uc3RydWN0b3IobCxhLGQpe3N1cGVyKGwsYSksS3RlKHRoaXMsImNsb25lU291'@; put 'cmNlIix2b2lkIDApLEt0ZSh0aGlzLCJjbG9uZU92ZXJsYXkiLHZvaWQgMCk7Y29uc3QgaD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZmFjYWRlIix0aGlzKTt0aGlzLmNsb25lU291cmNlPWQuc291cmNlLHRoaXMuY2xvbmVPdmVybGF5PWQub3ZlcmxheSx0aGlzLnd0VGFibGU9dGhp'@; put 'cy5jbG9uZU92ZXJsYXkuY3JlYXRlVGFibGUodGhpcy5nZXRUYWJsZURhbygpLGgsdGhpcy5kb21CaW5kaW5ncyx0aGlzLnd0U2V0dGluZ3MpLHRoaXMud3RWaWV3cG9ydD1kLnZpZXdwb3J0LHRoaXMuc2VsZWN0aW9ucz1kLnNlbGVjdGlvbnMsdGhpcy53dEV2ZW50PW5ldyBWdGUoaCx0aGlz'@; put 'LmRvbUJpbmRpbmdzLHRoaXMud3RTZXR0aW5ncyx0aGlzLmV2ZW50TWFuYWdlcix0aGlzLnd0VGFibGUsdGhpcy5zZWxlY3Rpb25zLGQuZXZlbnQpLHRoaXMuZmluZE9yaWdpbmFsSGVhZGVycygpfX1jbGFzcyBweXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYpeyhmdW5jdGlvbiBDQWUoYyxsLGEp'@; put 'e3JldHVybiBsPWZ1bmN0aW9uIFNBZShjKXt2YXIgbD1mdW5jdGlvbiBNQWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fG51bGw9PT1jKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lm'@; put 'KCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10'@; put 'eXBlb2YgbD9sOlN0cmluZyhsKX0obCksbCBpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30pKHRoaXMsInd0U2V0dGluZ3MiLG51bGwpLGZoKHRoaXMsIndvdCIsbCx7d3Jp'@; put 'dGFibGU6ITF9KSx0aGlzLmRvbUJpbmRpbmdzPWYsdGhpcy5mYWNhZGVHZXR0ZXI9YSx0aGlzLnd0U2V0dGluZ3M9aDtjb25zdHtUQUJMRTpfLGhpZGVyOlQsc3ByZWFkZXI6Vyxob2xkZXI6aWUsd3RSb290RWxlbWVudDpwZX09dGhpcy53b3Qud3RUYWJsZTt0aGlzLmluc3RhbmNlPXRoaXMu'@; put 'd290LHRoaXMudHlwZT1kLHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9bnVsbCx0aGlzLlRBQkxFPV8sdGhpcy5oaWRlcj1ULHRoaXMuc3ByZWFkZXI9Vyx0aGlzLmhvbGRlcj1pZSx0aGlzLnd0Um9vdEVsZW1lbnQ9cGUsdGhpcy50cmltbWluZ0NvbnRhaW5lcj12Zyh0aGlzLmhp'@; put 'ZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZSksdGhpcy51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCksdGhpcy5jbG9uZT10aGlzLm1ha2VDbG9uZSgpfXVwZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoKXtjb25zdCBsPXRoaXMubmVlZEZ1bGxSZW5kZXI7dGhpcy5uZWVkRnVsbFJlbmRlcj10aGlzLnNo'@; put 'b3VsZEJlUmVuZGVyZWQoKTtjb25zdCBhPWwhPT10aGlzLm5lZWRGdWxsUmVuZGVyO3JldHVybiBhJiYhdGhpcy5uZWVkRnVsbFJlbmRlciYmdGhpcy5yZXNldCgpLGF9c2hvdWxkQmVSZW5kZXJlZCgpe3JldHVybiEwfXVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCl7dGhpcy50cmltbWluZ0Nv'@; put 'bnRhaW5lcj12Zyh0aGlzLmhpZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZSl9dXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50KCl7Y29uc3R7d3RUYWJsZTpsfT10aGlzLndvdCx7cm9vdFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzO3RoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9'@; put 'ImhpZGRlbiI9PT1hLmdldENvbXB1dGVkU3R5bGUobC53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUpLmdldFByb3BlcnR5VmFsdWUoIm92ZXJmbG93Iik/dGhpcy53b3Qud3RUYWJsZS5ob2xkZXI6cnkobC5UQUJMRSl9Z2V0UmVsYXRpdmVDZWxsUG9zaXRpb24obCxhLGQpe2lmKCExPT09dGhp'@; put 'cy5jbG9uZS53dFRhYmxlLmhvbGRlci5jb250YWlucyhsKSlyZXR1cm4gdm9pZCBHYShgVGhlIHByb3ZpZGVkIGVsZW1lbnQgaXMgbm90IGEgY2hpbGQgb2YgdGhlICR7dGhpcy50eXBlfSBvdmVybGF5YCk7Y29uc3QgaD10aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dGhpcy5k'@; put 'b21CaW5kaW5ncy5yb290V2luZG93LGY9ZDx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxfPWE8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLFQ9YT49dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIp'@; put 'LXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSxXPXRoaXMuY2xvbmUud3RUYWJsZS5zcHJlYWRlcixpZT17c3RhcnQ6dGhpcy5nZXRSZWxhdGl2ZVN0YXJ0UG9zaXRpb24oVyksdG9wOlcub2Zmc2V0VG9wfSxwZT17c3RhcnQ6dGhpcy5nZXRSZWxhdGl2ZVN0'@; put 'YXJ0UG9zaXRpb24obCksdG9wOmwub2Zmc2V0VG9wfTtsZXQgd2U9bnVsbDtyZXR1cm4gd2U9aD90aGlzLmdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uV2l0aGluV2luZG93KF8sZixwZSxpZSk6dGhpcy5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbldpdGhpbkhvbGRlcihfLFQsZixwZSxpZSksd2V9'@; put 'Z2V0UmVsYXRpdmVTdGFydFBvc2l0aW9uKGwpe3JldHVybiB0aGlzLmlzUnRsKCk/bC5vZmZzZXRQYXJlbnQub2Zmc2V0V2lkdGgtbC5vZmZzZXRMZWZ0LWwub2Zmc2V0V2lkdGg6bC5vZmZzZXRMZWZ0fWdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uV2l0aGluV2luZG93KGwsYSxkLGgpe2NvbnN0'@; put 'IGY9dGhpcy53b3Qud3RUYWJsZS53dFJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBfPTAsVD0wO2lmKGEpe2xldCBXPWYubGVmdDt0aGlzLmlzUnRsKCkmJihXPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdy5pbm5lcldpZHRoLShmLmxlZnQrZi53aWR0aCtMYygp'@; put 'KSksXz1XPD0wPy0xKlc6MH1lbHNlIF89aC5zdGFydDtyZXR1cm4gVD1sP3RoaXMuY2xvbmUud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtZi50b3A6aC50b3Ase3N0YXJ0OmQuc3RhcnQrXyx0b3A6ZC50b3ArVH19Z2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRo'@; put 'aW5Ib2xkZXIobCxhLGQsaCxmKXtjb25zdCBfX2hvcml6b250YWw9dGhpcy53b3Qud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0U2Nyb2xsUG9zaXRpb24oKSxfX3ZlcnRpY2FsPXRoaXMud290Lnd0T3ZlcmxheXMudG9wT3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpO2xldCBU'@; put 'PTAsVz0wO2lmKGR8fChUPV9faG9yaXpvbnRhbC1mLnN0YXJ0KSxhKXtjb25zdCBpZT10aGlzLndvdC53dFRhYmxlLnd0Um9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Vz0tMSp0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK2ll'@; put 'LnRvcH1lbHNlIGx8fChXPV9fdmVydGljYWwtZi50b3ApO3JldHVybntzdGFydDpoLnN0YXJ0LVQsdG9wOmgudG9wLVd9fW1ha2VDbG9uZSgpe2lmKC0xPT09WWtlLmluZGV4T2YodGhpcy50eXBlKSl0aHJvdyBuZXcgRXJyb3IoYENsb25lIHR5cGUgIiR7dGhpcy50eXBlfSIgaXMgbm90IHN1'@; put 'cHBvcnRlZC5gKTtjb25zdHt3dFRhYmxlOmx9PXRoaXMud290LHtyb290RG9jdW1lbnQ6YSxyb290V2luZG93OmR9PXRoaXMuZG9tQmluZGluZ3MsaD1hLmNyZWF0ZUVsZW1lbnQoIkRJViIpLGY9YS5jcmVhdGVFbGVtZW50KCJUQUJMRSIpLF89bC53dFJvb3RFbGVtZW50LnBhcmVudE5vZGU7'@; put 'aC5jbGFzc05hbWU9YCR7V2tlLmdldCh0aGlzLnR5cGUpfSBoYW5kc29udGFibGVgLGguc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMuaXNSdGwoKT8icnRsIjoibHRyIiksaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGguc3R5bGUudG9wPTAsaC5zdHlsZS5vdmVyZmxvdz0idmlzaWJsZSIs'@; put 'dGhpcy5pc1J0bCgpP2guc3R5bGUucmlnaHQ9MDpoLnN0eWxlLmxlZnQ9MCxmLmNsYXNzTmFtZT1sLlRBQkxFLmNsYXNzTmFtZSxoLmFwcGVuZENoaWxkKGYpLF8uYXBwZW5kQ2hpbGQoaCk7Y29uc3QgVD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7cmV0'@; put 'dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9ITA9PT1UfHwiaG9yaXpvbnRhbCI9PT1UJiZ0aGlzLnR5cGU9PT15Z3x8InZlcnRpY2FsIj09PVQmJnRoaXMudHlwZT09PXdnP2Q6ImhpZGRlbiI9PT1kLmdldENvbXB1dGVkU3R5bGUoXykuZ2V0UHJvcGVydHlWYWx1ZSgib3Zl'@; put 'cmZsb3ciKT9sLmhvbGRlcjpyeShsLlRBQkxFKSxuZXcgd0FlKGYsdGhpcy53dFNldHRpbmdzLHtzb3VyY2U6dGhpcy53b3Qsb3ZlcmxheTp0aGlzLHZpZXdwb3J0OnRoaXMud290Lnd0Vmlld3BvcnQsZXZlbnQ6dGhpcy53b3Qud3RFdmVudCxzZWxlY3Rpb25zOnRoaXMud290LnNlbGVjdGlv'@; put 'bnN9KX1yZWZyZXNoKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtjb25zdCBhPXRoaXMuc2hvdWxkQmVSZW5kZXJlZCgpO3RoaXMuY2xvbmUmJih0aGlzLm5lZWRGdWxsUmVuZGVyfHxhKSYmdGhpcy5jbG9uZS5kcmF3KGwp'@; put 'LHRoaXMubmVlZEZ1bGxSZW5kZXI9YX1yZXNldCgpe2lmKCF0aGlzLmNsb25lKXJldHVybjtjb25zdCBsPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXI7RG4oW2wuc3R5bGUsdGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLGwucGFyZW50Tm9kZS5zdHlsZV0sXz0+e18ud2lkdGg9IiIs'@; put 'Xy5oZWlnaHQ9IiJ9KX1pc1J0bCgpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpfWRlc3Ryb3koKXt0aGlzLmNsb25lLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fWNsYXNzIEFBZSBleHRlbmRzIHB5e2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSx5'@; put 'ZyxkLGgpLGZ1bmN0aW9uIHhBZShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gRUFlKGMpe3ZhciBsPWZ1bmN0aW9uIGtBZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBk'@; put 'PWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywi'@; put 'c3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSh0aGlzLCJjYWNoZWRGaXhlZFJv'@; put 'd3NUb3AiLC0xKSx0aGlzLmNhY2hlZEZpeGVkUm93c1RvcD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIil9Y3JlYXRlVGFibGUoKXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7ZDxsO2QrKylhW2RdPWFyZ3VtZW50c1tkXTty'@; put 'ZXR1cm4gbmV3IEprZSguLi5hKX1zaG91bGRCZVJlbmRlcmVkKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJUb3BPdmVybGF5Iil9cmVzZXRGaXhlZFBvc2l0aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhv'@; put 'bGRlci5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0IGw9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLHtyb290V2luZG93OmF9PXRoaXMuZG9tQmluZGluZ3MsZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7bGV0IGg9MCxmPSExO2lm'@; put 'KHRoaXMudHJpbW1pbmdDb250YWluZXIhPT1hfHxkJiYidmVydGljYWwiPT09ZCloPXRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKSxzeShsKTtlbHNle2NvbnN0e3d0VGFibGU6VH09dGhpcy53b3QsVz1ULmhpZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Y9TWF0aC5jZWlsKFcuYm90dG9t'@; put 'KT09PWwub2Zmc2V0SGVpZ2h0LGg9dGhpcy5nZXRPdmVybGF5T2Zmc2V0KCksb2sobCwiMHB4IixgJHtofXB4YCl9Y29uc3QgXz10aGlzLmFkanVzdEhlYWRlckJvcmRlcnNQb3NpdGlvbihoLGYpO3JldHVybiB0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLF99c2V0U2Nyb2xsUG9zaXRpb24o'@; put 'bCl7Y29uc3QgYT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3c7bGV0IGQ9ITE7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1hJiZhLnNjcm9sbFkhPT1sPyhhLnNjcm9sbFRvKG1nKGEpLGwpLGQ9ITApOnRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQu'@; put 'c2Nyb2xsVG9wIT09bCYmKHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wPWwsZD0hMCksZH1vblNjcm9sbCgpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxseSIpfXN1bUNlbGxTaXplcyhsLGEpe2NvbnN0IGQ9dGhpcy53dFNl'@; put 'dHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRSb3dIZWlnaHQiKTtsZXQgaD1sLGY9MDtmb3IoO2g8YTspe2NvbnN0IF89dGhpcy53b3Qud3RUYWJsZS5nZXRSb3dIZWlnaHQoaCk7Zis9dm9pZCAwPT09Xz9kOl8saCs9MX1yZXR1cm4gZn1hZGp1c3RFbGVtZW50c1NpemUoKXtsZXQgbD1hcmd1'@; put 'bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO3RoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwodGhpcy5uZWVkRnVsbFJlbmRlcnx8bCkmJih0aGlzLmFkanVzdFJvb3RFbGVtZW50U2l6ZSgpLHRoaXMuYWRqdXN0Um9vdENoaWxkcmVuU2l6'@; put 'ZSgpKX1hZGp1c3RSb290RWxlbWVudFNpemUoKXtjb25zdHt3dFRhYmxlOmx9PXRoaXMud290LHtyb290RG9jdW1lbnQ6YSxyb290V2luZG93OmR9PXRoaXMuZG9tQmluZGluZ3MsaD1MYyhhKSxfPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxUPXRoaXMud3RT'@; put 'ZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtpZih0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09ZHx8Imhvcml6b250YWwiPT09VCl7bGV0IGllPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlV2lkdGgoKTt0aGlzLndvdC53dE92ZXJsYXlzLmhhc1Njcm9sbGJh'@; put 'clJpZ2h0JiYoaWUtPWgpLGllPU1hdGgubWluKGllLGwud3RSb290RWxlbWVudC5zY3JvbGxXaWR0aCksXy53aWR0aD1gJHtpZX1weGB9ZWxzZSBfLndpZHRoPSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUud2lkdGg9Xy53aWR0aDtsZXQgVz1hbCh0aGlzLmNsb25lLnd0VGFi'@; put 'bGUuVEFCTEUpO3RoaXMud290Lnd0VGFibGUuaGFzRGVmaW5lZFNpemUoKXx8KFc9MCksXy5oZWlnaHQ9YCR7V31weGB9YWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpe3ZhciBsO2NvbnN0e2hvbGRlcjphfT10aGlzLmNsb25lLnd0VGFibGUse3NlbGVjdGlvbnM6ZH09dGhpcy53b3QsaD10aGlz'@; put 'LmZhY2FkZUdldHRlcigpLGY9TWF0aC5hYnMobnVsbCE9PShsPWQ/LmdldENlbGwoKS5nZXRCb3JkZXIoaCkuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQpJiZ2b2lkIDAhPT1sP2w6MCk7dGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLndpZHRoPXRoaXMuaGlkZXIuc3R5bGUud2lkdGgs'@; put 'YS5zdHlsZS53aWR0aD1hLnBhcmVudE5vZGUuc3R5bGUud2lkdGgsYS5zdHlsZS5oZWlnaHQ9YCR7cGFyc2VJbnQoYS5wYXJlbnROb2RlLnN0eWxlLmhlaWdodCwxMCkrZn1weGB9YXBwbHlUb0RPTSgpe2NvbnN0IGw9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpO2lm'@; put 'KCJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uKXRoaXMuc3ByZWFkZXIuc3R5bGUudG9wPWAke3RoaXMud290Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbn1weGA7ZWxzZXtp'@; put 'ZigwIT09bCl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCB2YWx1ZSBvZiB0aGUgcm93c1JlbmRlckNhbGN1bGF0b3IiKTt0aGlzLnNwcmVhZGVyLnN0eWxlLnRvcD0iMCJ9dGhpcy5zcHJlYWRlci5zdHlsZS5ib3R0b209IiIsdGhpcy5uZWVkRnVsbFJlbmRlciYmdGhpcy5zeW5jT3Zlcmxh'@; put 'eU9mZnNldCgpfXN5bmNPdmVybGF5T2Zmc2V0KCl7Y29uc3QgbD10aGlzLmlzUnRsKCk/InJpZ2h0IjoibGVmdCIse3NwcmVhZGVyOmF9PXRoaXMuY2xvbmUud3RUYWJsZTthLnN0eWxlW2xdPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3Vs'@; put 'YXRvci5zdGFydFBvc2l0aW9uP2Ake3RoaXMud290Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbn1weGA6IiJ9c2Nyb2xsVG8obCxhKXtjb25zdHt3b3Q6ZCx3dFNldHRpbmdzOmh9PXRoaXMsXz0oZC5jbG9uZVNvdXJjZT9kLmNsb25lU291cmNlOmQp'@; put 'Lnd0VGFibGUuaG9sZGVyO2xldCBUPXRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKSxXPTA7aWYoYSYmdGhpcy53b3Qud3RUYWJsZS5nZXRSb3dIZWlnaHQobCk+dGhpcy53b3Qud3RWaWV3cG9ydC5nZXRWaWV3cG9ydEhlaWdodCgpJiYoYT0hMSksYSYmXy5vZmZzZXRIZWlnaHQhPT1fLmNs'@; put 'aWVudEhlaWdodCYmKFc9TGModGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQpKSxhKXtjb25zdCBpZT1oLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLHBlPWguZ2V0U2V0dGluZygidG90YWxSb3dzIik7VCs9dGhpcy5zdW1DZWxsU2l6ZXMoMCxsKzEpLFQtPWQud3RWaWV3cG9y'@; put 'dC5nZXRWaWV3cG9ydEhlaWdodCgpLXRoaXMuc3VtQ2VsbFNpemVzKHBlLWllLHBlKSxUKz0xfWVsc2UgVCs9dGhpcy5zdW1DZWxsU2l6ZXMoaC5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSxsKTtyZXR1cm4gVCs9Vyx0aGlzLnNldFNjcm9sbFBvc2l0aW9uKFQpfWdldFRhYmxlUGFyZW50'@; put 'T2Zmc2V0KCl7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3c/dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQudG9wOjB9Z2V0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gbnkodGhpcy5tYWluVGFibGVTY3JvbGxh'@; put 'YmxlRWxlbWVudCx0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpfWdldE92ZXJsYXlPZmZzZXQoKXtjb25zdHtyb290V2luZG93Omx9PXRoaXMuZG9tQmluZGluZ3MsYT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7bGV0IGQ9MDtpZih0aGlzLnRyaW1t'@; put 'aW5nQ29udGFpbmVyPT09bCYmKCFhfHwidmVydGljYWwiIT09YSkpe2NvbnN0IF89dGhpcy53b3Qud3RUYWJsZS5nZXRUb3RhbEhlaWdodCgpLXRoaXMuY2xvbmUud3RUYWJsZS5nZXRUb3RhbEhlaWdodCgpO2Q9TWF0aC5tYXgodGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLXRoaXMuZ2V0VGFi'@; put 'bGVQYXJlbnRPZmZzZXQoKSwwKSxkPl8mJihkPTApfXJldHVybiBkfWFkanVzdEhlYWRlckJvcmRlcnNQb3NpdGlvbihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2NvbnN0IGQ9dGhpcy53b3Qud3RUYWJsZS5ob2xkZXIu'@; put 'cGFyZW50Tm9kZTt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik/V28oZCwiZW1wdHlDb2x1bW5zIik6cGkoZCwiZW1wdHlDb2x1bW5zIik7bGV0IGY9ITE7aWYoIWEpe2NvbnN0IF89dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLFQ9'@; put 'dGhpcy5jYWNoZWRGaXhlZFJvd3NUb3AhPT1fLFc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKTtpZigoVHx8MD09PV8pJiZXLmxlbmd0aD4wKXtjb25zdCBpZT1CbyhkLCJpbm5lckJvcmRlclRvcCIpO3RoaXMuY2FjaGVkRml4ZWRSb3dzVG9wPXRoaXMud3RT'@; put 'ZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSxsfHwwPT09dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpPyhwaShkLCJpbm5lckJvcmRlclRvcCIpLGY9IWllKTooV28oZCwiaW5uZXJCb3JkZXJUb3AiKSxmPWllKX19cmV0dXJuIGZ9fWNvbnN0IFh0ZT17'@; put 'Z2V0Rmlyc3RSZW5kZXJlZFJvdygpe2NvbnN0IGM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLGw9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLGE9Yy1sO3JldHVybiAwPT09Y3x8MD09PWw/LTE6YTwwPzA6YX0sZ2V0Rmlyc3RW'@; put 'aXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpfSxnZXRMYXN0UmVuZGVyZWRSb3coKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLTF9LGdldExhc3RWaXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVk'@; put 'Um93KCl9LGdldFJlbmRlcmVkUm93c0NvdW50KCl7Y29uc3QgYz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7cmV0dXJuIE1hdGgubWluKHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSxjKX0sZ2V0VmlzaWJsZVJvd3NDb3VudCgp'@; put 'e3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCl9fTtmaChYdGUsIk1JWElOX05BTUUiLCJzdGlja3lSb3dzQm90dG9tIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IEp0ZT1YdGU7Y2xhc3MgV04gZXh0ZW5kcyB1N3tjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBl'@; put 'cihsLGEsZCxoLGdoKX19VGEoV04sSnRlKSxUYShXTixOTik7Y29uc3QgREFlPVdOO2NsYXNzIE9BZSBleHRlbmRzIHB5e2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSxnaCxkLGgpLGZ1bmN0aW9uIElBZShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gTEFlKGMpe3ZhciBsPWZ1bmN0'@; put 'aW9uIFJBZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5l'@; put 'dyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0'@; put 'LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSh0aGlzLCJjYWNoZWRGaXhlZFJvd3NCb3R0b20iLC0xKSx0aGlzLmNhY2hlZEZpeGVkUm93c0JvdHRvbT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0'@; put 'dGluZygiZml4ZWRSb3dzQm90dG9tIil9Y3JlYXRlVGFibGUoKXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7ZDxsO2QrKylhW2RdPWFyZ3VtZW50c1tkXTtyZXR1cm4gbmV3IERBZSguLi5hKX1zaG91bGRCZVJlbmRlcmVkKCl7cmV0dXJuIHRoaXMud3RT'@; put 'ZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5Iil9cmVzZXRGaXhlZFBvc2l0aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0e3Jvb3RXaW5kb3c6bH09dGhpcy5k'@; put 'b21CaW5kaW5ncyxhPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTthLnN0eWxlLnRvcD0iIjtsZXQgZD0wO2NvbnN0IGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO3RoaXMudHJpbW1pbmdDb250YWluZXIhPT1sfHxoJiYidmVydGlj'@; put 'YWwiPT09aD8oZD10aGlzLmdldFNjcm9sbFBvc2l0aW9uKCksdGhpcy5yZXBvc2l0aW9uT3ZlcmxheSgpKTooZD10aGlzLmdldE92ZXJsYXlPZmZzZXQoKSxhLnN0eWxlLmJvdHRvbT1gJHtkfXB4YCk7Y29uc3QgZj10aGlzLmFkanVzdEhlYWRlckJvcmRlcnNQb3NpdGlvbihkKTtyZXR1cm4g'@; put 'dGhpcy5hZGp1c3RFbGVtZW50c1NpemUoKSxmfXJlcG9zaXRpb25PdmVybGF5KCl7Y29uc3R7d3RUYWJsZTpsLHd0Vmlld3BvcnQ6YX09dGhpcy53b3Qse3Jvb3REb2N1bWVudDpkfT10aGlzLmRvbUJpbmRpbmdzLGg9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlO2xldCBm'@; put 'PTA7YS5oYXNWZXJ0aWNhbFNjcm9sbCgpfHwoZis9YS5nZXRXb3Jrc3BhY2VIZWlnaHQoKS1sLmdldFRvdGFsSGVpZ2h0KCkpLGEuaGFzVmVydGljYWxTY3JvbGwoKSYmYS5oYXNIb3Jpem9udGFsU2Nyb2xsKCkmJihmKz1MYyhkKSksaC5zdHlsZS5ib3R0b209YCR7Zn1weGB9c2V0U2Nyb2xs'@; put 'UG9zaXRpb24obCl7Y29uc3R7cm9vdFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzO2xldCBkPSExO3JldHVybiB0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09YT8oYS5zY3JvbGxUbyhtZyhhKSxsKSxkPSEwKTp0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LnNjcm9s'@; put 'bFRvcCE9PWwmJih0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcD1sLGQ9ITApLGR9b25TY3JvbGwoKXt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25TY3JvbGxIb3Jpem9udGFsbHkiKX1zdW1DZWxsU2l6ZXMobCxhKXtjb25zdHt3dFRhYmxlOmQsd3RTZXR0'@; put 'aW5nczpofT10aGlzLndvdCxmPWguZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpO2xldCBfPWwsVD0wO2Zvcig7XzxhOyl7Y29uc3QgVz1kLmdldFJvd0hlaWdodChfKTtUKz12b2lkIDA9PT1XP2Y6VyxfKz0xfXJldHVybiBUfWFkanVzdEVsZW1lbnRzU2l6ZSgpe2xldCBsPWFyZ3Vt'@; put 'ZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07dGhpcy51cGRhdGVUcmltbWluZ0NvbnRhaW5lcigpLCh0aGlzLm5lZWRGdWxsUmVuZGVyfHxsKSYmKHRoaXMuYWRqdXN0Um9vdEVsZW1lbnRTaXplKCksdGhpcy5hZGp1c3RSb290Q2hpbGRyZW5TaXpl'@; put 'KCkpfWFkanVzdFJvb3RFbGVtZW50U2l6ZSgpe2NvbnN0e3d0VGFibGU6bCx3dFZpZXdwb3J0OmF9PXRoaXMud290LHtyb290RG9jdW1lbnQ6ZCxyb290V2luZG93Omh9PXRoaXMuZG9tQmluZGluZ3MsZj1MYyhkKSxUPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHls'@; put 'ZSxXPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtpZih0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09aHx8Imhvcml6b250YWwiPT09Vyl7bGV0IHBlPWEuZ2V0V29ya3NwYWNlV2lkdGgoKTt0aGlzLndvdC53dE92ZXJsYXlzLmhhc1Njcm9sbGJhclJpZ2h0'@; put 'JiYocGUtPWYpLHBlPU1hdGgubWluKHBlLGwud3RSb290RWxlbWVudC5zY3JvbGxXaWR0aCksVC53aWR0aD1gJHtwZX1weGB9ZWxzZSBULndpZHRoPSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUud2lkdGg9VC53aWR0aDtsZXQgaWU9YWwodGhpcy5jbG9uZS53dFRhYmxlLlRB'@; put 'QkxFKTt0aGlzLndvdC53dFRhYmxlLmhhc0RlZmluZWRTaXplKCl8fChpZT0wKSxULmhlaWdodD1gJHtpZX1weGB9YWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpe2NvbnN0e2hvbGRlcjpsfT10aGlzLmNsb25lLnd0VGFibGU7dGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLndpZHRoPXRo'@; put 'aXMuaGlkZXIuc3R5bGUud2lkdGgsbC5zdHlsZS53aWR0aD1sLnBhcmVudE5vZGUuc3R5bGUud2lkdGgsbC5zdHlsZS5oZWlnaHQ9bC5wYXJlbnROb2RlLnN0eWxlLmhlaWdodH1hcHBseVRvRE9NKCl7Y29uc3QgbD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYo'@; put 'Im51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24pdGhpcy5zcHJlYWRlci5zdHlsZS50b3A9YCR7dGhpcy53b3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9ufXB4YDtlbHNle2lm'@; put 'KDAhPT1sKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSByb3dzUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIwIn10aGlzLnNwcmVhZGVyLnN0eWxlLmJvdHRvbT0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5'@; put 'T2Zmc2V0KCl9c3luY092ZXJsYXlPZmZzZXQoKXtjb25zdCBsPXRoaXMuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Iix7c3ByZWFkZXI6YX09dGhpcy5jbG9uZS53dFRhYmxlO2Euc3R5bGVbbF09Im51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxh'@; put 'dG9yLnN0YXJ0UG9zaXRpb24/YCR7dGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9ufXB4YDoiIn1zY3JvbGxUbyhsLGEpe2xldCBkPXRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKTtjb25zdCBmPSh0aGlzLndvdC5jbG9uZVNvdXJjZT90'@; put 'aGlzLndvdC5jbG9uZVNvdXJjZTp0aGlzLndvdCkud3RUYWJsZS5ob2xkZXI7bGV0IF89MDthJiZmLm9mZnNldEhlaWdodCE9PWYuY2xpZW50SGVpZ2h0JiYoXz1MYyh0aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudCkpLGE/KGQrPXRoaXMuc3VtQ2VsbFNpemVzKDAsbCsxKSxkLT10aGlz'@; put 'LndvdC53dFZpZXdwb3J0LmdldFZpZXdwb3J0SGVpZ2h0KCksZCs9MSk6ZCs9dGhpcy5zdW1DZWxsU2l6ZXModGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLGwpLGQrPV8sdGhpcy5zZXRTY3JvbGxQb3NpdGlvbihkKX1nZXRUYWJsZVBhcmVudE9mZnNldCgp'@; put 'e3JldHVybiB0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93P3RoaXMud290Lnd0VGFibGUuaG9sZGVyT2Zmc2V0LnRvcDowfWdldFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIG55KHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1l'@; put 'bnQsdGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93KX1nZXRPdmVybGF5T2Zmc2V0KCl7Y29uc3R7cm9vdFdpbmRvdzpsfT10aGlzLmRvbUJpbmRpbmdzLGE9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO2xldCBkPTA7aWYodGhpcy50cmltbWluZ0NvbnRh'@; put 'aW5lcj09PWwmJighYXx8InZlcnRpY2FsIiE9PWEpKXtjb25zdCBoPXRoaXMud290Lnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKSxfPWgtdGhpcy5jbG9uZS53dFRhYmxlLmdldFRvdGFsSGVpZ2h0KCksVD10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xp'@; put 'ZW50SGVpZ2h0O2Q9TWF0aC5tYXgodGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLXRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKS1UK2gsMCksZD5fJiYoZD0wKX1yZXR1cm4gZH1hZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24obCl7Y29uc3QgYT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGlu'@; put 'ZygiZml4ZWRSb3dzQm90dG9tIiksZD10aGlzLmNhY2hlZEZpeGVkUm93c0JvdHRvbSE9PWEsaD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpO2xldCBmPSExO2lmKChkfHwwPT09YSkmJmgubGVuZ3RoPjApe2NvbnN0IF89dGhpcy53b3Qud3RUYWJsZS5ob2xk'@; put 'ZXIucGFyZW50Tm9kZSxUPUJvKF8sImlubmVyQm9yZGVyQm90dG9tIik7dGhpcy5jYWNoZWRGaXhlZFJvd3NCb3R0b209dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLGx8fDA9PT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik/KHBp'@; put 'KF8sImlubmVyQm9yZGVyQm90dG9tIiksZj0hVCk6KFdvKF8sImlubmVyQm9yZGVyQm90dG9tIiksZj1UKX1yZXR1cm4gZn19Y29uc3QgUXRlPXtnZXRGaXJzdFJlbmRlcmVkUm93KCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRSb3dSZW5kZXJlZDtyZXR1cm4gbnVsbD09'@; put 'PWM/LTE6Y30sZ2V0Rmlyc3RWaXNpYmxlUm93KCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRSb3dWaXNpYmxlO3JldHVybiBudWxsPT09Yz8tMTpjfSxnZXRMYXN0UmVuZGVyZWRSb3coKXtjb25zdCBjPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRSb3dSZW5kZXJlZDty'@; put 'ZXR1cm4gbnVsbD09PWM/LTE6Y30sZ2V0TGFzdFZpc2libGVSb3coKXtjb25zdCBjPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRSb3dWaXNpYmxlO3JldHVybiBudWxsPT09Yz8tMTpjfSxnZXRSZW5kZXJlZFJvd3NDb3VudCgpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY291bnRS'@; put 'b3dzUmVuZGVyZWR9LGdldFZpc2libGVSb3dzQ291bnQoKXtyZXR1cm4gdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmNvdW50Um93c1Zpc2libGV9fTtmaChRdGUsIk1JWElOX05BTUUiLCJjYWxjdWxhdGVkUm93cyIse3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9KTtjb25zdCBlbmU9UXRlLHRu'@; put 'ZT17Z2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpe3JldHVybiAwPT09dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpPy0xOjB9LGdldEZpcnN0VmlzaWJsZUNvbHVtbigpe3JldHVybiB0aGlzLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKX0sZ2V0TGFzdFJlbmRlcmVk'@; put 'Q29sdW1uKCl7cmV0dXJuIHRoaXMuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKS0xfSxnZXRMYXN0VmlzaWJsZUNvbHVtbigpe3JldHVybiB0aGlzLmdldExhc3RSZW5kZXJlZENvbHVtbigpfSxnZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpe2NvbnN0IGM9dGhpcy53dFNldHRpbmdzLmdldFNl'@; put 'dHRpbmcoInRvdGFsQ29sdW1ucyIpO3JldHVybiBNYXRoLm1pbih0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxjKX0sZ2V0VmlzaWJsZUNvbHVtbnNDb3VudCgpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCl9fTtmaCh0bmUsIk1J'@; put 'WElOX05BTUUiLCJzdGlja3lDb2x1bW5zU3RhcnQiLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExfSk7Y29uc3QgR049dG5lO2NsYXNzICROIGV4dGVuZHMgdTd7Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhLGQsaCx3Zyl9fVRhKCROLGVuZSksVGEoJE4sR04pO2NvbnN0IEhBZT0k'@; put 'TjtjbGFzcyBOQWUgZXh0ZW5kcyBweXtjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEsd2csZCxoKX1jcmVhdGVUYWJsZSgpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3JldHVybiBuZXcgSEFlKC4u'@; put 'LmEpfXNob3VsZEJlUmVuZGVyZWQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfXJlc2V0Rml4ZWRQb3NpdGlvbigpe2NvbnN0e3d0VGFibGU6bH09dGhpcy53b3Q7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCFs'@; put 'LmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0e3Jvb3RXaW5kb3c6YX09dGhpcy5kb21CaW5kaW5ncyxkPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSxoPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtsZXQgZj0wO3RoaXMu'@; put 'dHJpbW1pbmdDb250YWluZXIhPT1hfHxoJiYiaG9yaXpvbnRhbCI9PT1oPyhmPXRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKSxzeShkKSk6KGY9dGhpcy5nZXRPdmVybGF5T2Zmc2V0KCkqKHRoaXMuaXNSdGwoKT8tMToxKSxvayhkLGAke2Z9cHhgLCIwcHgiKSk7Y29uc3QgXz10aGlzLmFkanVz'@; put 'dEhlYWRlckJvcmRlcnNQb3NpdGlvbihmKTtyZXR1cm4gdGhpcy5hZGp1c3RFbGVtZW50c1NpemUoKSxffXNldFNjcm9sbFBvc2l0aW9uKGwpe2NvbnN0e3Jvb3RXaW5kb3c6YX09dGhpcy5kb21CaW5kaW5ncztsZXQgZD0hMTtyZXR1cm4gdGhpcy5pc1J0bCgpJiYobD0tbCksdGhpcy5tYWlu'@; put 'VGFibGVTY3JvbGxhYmxlRWxlbWVudD09PWEmJmEuc2Nyb2xsWCE9PWw/KGEuc2Nyb2xsVG8obCx0NyhhKSksZD0hMCk6dGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0IT09bCYmKHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdD1sLGQ9'@; put 'ITApLGR9b25TY3JvbGwoKXt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25TY3JvbGxWZXJ0aWNhbGx5Iil9c3VtQ2VsbFNpemVzKGwsYSl7Y29uc3QgZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdENvbHVtbldpZHRoIik7bGV0IGg9bCxmPTA7Zm9yKDtoPGE7KWYr'@; put 'PXRoaXMud290Lnd0VGFibGUuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoaCl8fGQsaCs9MTtyZXR1cm4gZn1hZGp1c3RFbGVtZW50c1NpemUoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO3RoaXMudXBkYXRlVHJpbW1pbmdD'@; put 'b250YWluZXIoKSwodGhpcy5uZWVkRnVsbFJlbmRlcnx8bCkmJih0aGlzLmFkanVzdFJvb3RFbGVtZW50U2l6ZSgpLHRoaXMuYWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpKX1hZGp1c3RSb290RWxlbWVudFNpemUoKXtjb25zdHt3dFRhYmxlOmx9PXRoaXMud290LHtyb290RG9jdW1lbnQ6YSxy'@; put 'b290V2luZG93OmR9PXRoaXMuZG9tQmluZGluZ3MsaD1MYyhhKSxfPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxUPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtpZih0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09ZHx8InZl'@; put 'cnRpY2FsIj09PVQpe2xldCBpZT10aGlzLndvdC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZUhlaWdodCgpO3RoaXMud290Lnd0T3ZlcmxheXMuaGFzU2Nyb2xsYmFyQm90dG9tJiYoaWUtPWgpLGllPU1hdGgubWluKGllLGwud3RSb290RWxlbWVudC5zY3JvbGxIZWlnaHQpLF8uaGVpZ2h0PWAk'@; put 'e2llfXB4YH1lbHNlIF8uaGVpZ2h0PSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUuaGVpZ2h0PV8uaGVpZ2h0O2NvbnN0IFc9d2EodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTtfLndpZHRoPWAke1d9cHhgfWFkanVzdFJvb3RDaGlsZHJlblNpemUoKXt2YXIgbDtjb25zdHto'@; put 'b2xkZXI6YX09dGhpcy5jbG9uZS53dFRhYmxlLHtzZWxlY3Rpb25zOmR9PXRoaXMud290LGg9dGhpcy5mYWNhZGVHZXR0ZXIoKSxmPU1hdGguYWJzKG51bGwhPT0obD1kPy5nZXRDZWxsKCkuZ2V0Qm9yZGVyKGgpLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0KSYmdm9pZCAwIT09bD9sOjApO3Ro'@; put 'aXMuY2xvbmUud3RUYWJsZS5oaWRlci5zdHlsZS5oZWlnaHQ9dGhpcy5oaWRlci5zdHlsZS5oZWlnaHQsYS5zdHlsZS5oZWlnaHQ9YS5wYXJlbnROb2RlLnN0eWxlLmhlaWdodCxhLnN0eWxlLndpZHRoPWAke3BhcnNlSW50KGEucGFyZW50Tm9kZS5zdHlsZS53aWR0aCwxMCkrZn1weGB9YXBw'@; put 'bHlUb0RPTSgpe2NvbnN0IGw9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLGE9dGhpcy5pc1J0bCgpPyJyaWdodCI6ImxlZnQiO2lmKCJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0'@; put 'aW9uKXRoaXMuc3ByZWFkZXIuc3R5bGVbYV09YCR7dGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9ufXB4YDtlbHNle2lmKDAhPT1sKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSBjb2x1bW5zUmVuZGVyQ2FsY3Vs'@; put 'YXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGVbYV09IjAifXRoaXMuaXNSdGwoKT90aGlzLnNwcmVhZGVyLnN0eWxlLmxlZnQ9IiI6dGhpcy5zcHJlYWRlci5zdHlsZS5yaWdodD0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9c3luY092ZXJsYXlPZmZz'@; put 'ZXQoKXt0aGlzLmNsb25lLnd0VGFibGUuc3ByZWFkZXIuc3R5bGUudG9wPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uP2Ake3RoaXMud290Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQ'@; put 'b3NpdGlvbn1weGA6IiJ9c2Nyb2xsVG8obCxhKXtsZXQgZD10aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCk7Y29uc3QgZj0odGhpcy53b3QuY2xvbmVTb3VyY2U/dGhpcy53b3QuY2xvbmVTb3VyY2U6dGhpcy53b3QpLnd0VGFibGUuaG9sZGVyO2xldCBfPTA7cmV0dXJuIGEmJnRoaXMud290'@; put 'Lnd0VGFibGUuZ2V0Q29sdW1uV2lkdGgobCk+dGhpcy53b3Qud3RWaWV3cG9ydC5nZXRWaWV3cG9ydFdpZHRoKCkmJihhPSExKSxhJiZmLm9mZnNldFdpZHRoIT09Zi5jbGllbnRXaWR0aCYmKF89TGModGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQpKSxhPyhkKz10aGlzLnN1bUNlbGxT'@; put 'aXplcygwLGwrMSksZC09dGhpcy53b3Qud3RWaWV3cG9ydC5nZXRWaWV3cG9ydFdpZHRoKCkpOmQrPXRoaXMuc3VtQ2VsbFNpemVzKHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpLGwpLGQrPV8sdGhpcy5zZXRTY3JvbGxQb3NpdGlvbihkKX1nZXRUYWJs'@; put 'ZVBhcmVudE9mZnNldCgpe2xldCBhPTA7cmV0dXJuIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSYmdGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyYmKGE9dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQu'@; put 'bGVmdCksYX1nZXRTY3JvbGxQb3NpdGlvbigpe3JldHVybiBNYXRoLmFicyhpayh0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LHRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdykpfWdldE92ZXJsYXlPZmZzZXQoKXtjb25zdHtyb290V2luZG93Omx9PXRoaXMuZG9tQmluZGluZ3Ms'@; put 'YT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7bGV0IGQ9MDtyZXR1cm4gdGhpcy50cmltbWluZ0NvbnRhaW5lciE9PWx8fGEmJiJob3Jpem9udGFsIj09PWF8fChkPXRoaXMuaXNSdGwoKT9NYXRoLmFicyhNYXRoLm1pbih0aGlzLmdldFRhYmxlUGFyZW50'@; put 'T2Zmc2V0KCktdGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLDApKTpNYXRoLm1heCh0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktdGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApLGQ+dGhpcy53b3Qud3RUYWJsZS5nZXRUb3RhbFdpZHRoKCktdGhpcy5jbG9uZS53dFRhYmxlLmdldFRvdGFs'@; put 'V2lkdGgoKSYmKGQ9MCkpLGR9YWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uKGwpe2NvbnN0IGE9dGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSxkPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIiksaD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygi'@; put 'Zml4ZWRDb2x1bW5zU3RhcnQiKTt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik/V28oYSwiZW1wdHlSb3dzIik6cGkoYSwiZW1wdHlSb3dzIik7bGV0IF89ITE7aWYoaCYmIWQubGVuZ3RoKXBpKGEsImlubmVyQm9yZGVyTGVmdCBpbm5lckJvcmRlcklubGluZVN0YXJ0'@; put 'Iik7ZWxzZSBpZighaCYmZC5sZW5ndGgpe2NvbnN0IFQ9Qm8oYSwiaW5uZXJCb3JkZXJJbmxpbmVTdGFydCIpO2w/KHBpKGEsImlubmVyQm9yZGVyTGVmdCBpbm5lckJvcmRlcklubGluZVN0YXJ0IiksXz0hVCk6KFdvKGEsImlubmVyQm9yZGVyTGVmdCBpbm5lckJvcmRlcklubGluZVN0YXJ0'@; put 'IiksXz1UKX1yZXR1cm4gX319Y2xhc3MgcU4gZXh0ZW5kcyB1N3tjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEsZCxoLENnKX19VGEocU4sWXRlKSxUYShxTixHTik7Y29uc3QgVkFlPXFOO2Z1bmN0aW9uIG5uZShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gQkFlKGMpe3ZhciBsPWZ1'@; put 'bmN0aW9uIGpBZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93'@; put 'IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIHpBZSBleHRlbmRzIHB5e2NvbnN0cnVjdG9yKGwsYSxkLGgsZixfKXtzdXBlcihsLGEsQ2csZCxoKSxubmUodGhpcywidG9wT3Zl'@; put 'cmxheSIsdm9pZCAwKSxubmUodGhpcywiaW5saW5lU3RhcnRPdmVybGF5Iix2b2lkIDApLHRoaXMudG9wT3ZlcmxheT1mLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5PV99Y3JlYXRlVGFibGUoKXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7ZDxsO2QrKylh'@; put 'W2RdPWFyZ3VtZW50c1tkXTtyZXR1cm4gbmV3IFZBZSguLi5hKX1zaG91bGRCZVJlbmRlcmVkKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJUb3BPdmVybGF5IikmJnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJJbmxpbmVT'@; put 'dGFydE92ZXJsYXkiKX1yZXNldEZpeGVkUG9zaXRpb24oKXtpZih0aGlzLnVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCksIXRoaXMud290Lnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpcmV0dXJuITE7Y29uc3QgbD10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGU7dGhpcy50'@; put 'cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz9vayhsLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKSoodGhpcy5pc1J0bCgpPy0xOjEpKyJweCIsYCR7dGhpcy50b3BPdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKX1weGApOnN5'@; put 'KGwpO2xldCBhPWFsKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSk7Y29uc3QgZD13YSh0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3JldHVybiB0aGlzLndvdC53dFRhYmxlLmhhc0RlZmluZWRTaXplKCl8fChhPTApLGwuc3R5bGUuaGVpZ2h0PWAke2F9cHhgLGwuc3R5bGUud2lkdGg9YCR7'@; put 'ZH1weGAsITF9fWNsYXNzIEtOIGV4dGVuZHMgdTd7Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhLGQsaCxacCl9fVRhKEtOLEp0ZSksVGEoS04sR04pO2NvbnN0IFVBZT1LTjtjbGFzcyBaQWUgZXh0ZW5kcyBweXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYsXyl7c3VwZXIobCxhLFpwLGQs'@; put 'aCksdGhpcy5ib3R0b21PdmVybGF5PWYsdGhpcy5pbmxpbmVTdGFydE92ZXJsYXk9X31jcmVhdGVUYWJsZSgpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3JldHVybiBuZXcgVUFlKC4uLmEpfXNob3VsZEJl'@; put 'UmVuZGVyZWQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlckJvdHRvbU92ZXJsYXkiKSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfXJlc2V0Rml4ZWRQb3NpdGlvbigpe2NvbnN0e3dv'@; put 'dDpsfT10aGlzO2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwhbC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0IGE9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlO2lmKGEuc3R5bGUudG9wPSIiLHRoaXMudHJpbW1pbmdDb250YWlu'@; put 'ZXI9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpe2NvbnN0IGY9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpLF89dGhpcy5ib3R0b21PdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKTthLnN0eWxlW3RoaXMuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09YCR7'@; put 'Zn1weGAsYS5zdHlsZS5ib3R0b209YCR7X31weGB9ZWxzZSBzeShhKSx0aGlzLnJlcG9zaXRpb25PdmVybGF5KCk7bGV0IGQ9YWwodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTtjb25zdCBoPXdhKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSk7cmV0dXJuIHRoaXMud290Lnd0VGFibGUuaGFz'@; put 'RGVmaW5lZFNpemUoKXx8KGQ9MCksYS5zdHlsZS5oZWlnaHQ9YCR7ZH1weGAsYS5zdHlsZS53aWR0aD1gJHtofXB4YCwhMX1yZXBvc2l0aW9uT3ZlcmxheSgpe2NvbnN0e3d0VGFibGU6bCx3dFZpZXdwb3J0OmF9PXRoaXMud290LHtyb290RG9jdW1lbnQ6ZH09dGhpcy5kb21CaW5kaW5ncyxo'@; put 'PXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTtsZXQgZj0wO2EuaGFzVmVydGljYWxTY3JvbGwoKXx8KGYrPWEuZ2V0V29ya3NwYWNlSGVpZ2h0KCktbC5nZXRUb3RhbEhlaWdodCgpKSxhLmhhc1ZlcnRpY2FsU2Nyb2xsKCkmJmEuaGFzSG9yaXpvbnRhbFNjcm9sbCgpJiYo'@; put 'Zis9TGMoZCkpLGguc3R5bGUuYm90dG9tPWAke2Z9cHhgfX1mdW5jdGlvbiBaZihjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gWUFlKGMpe3ZhciBsPWZ1bmN0aW9uIFdBZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9Qcmlt'@; put 'aXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmci'@; put 'PT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNb'@; put 'bF09YSxjfWZ1bmN0aW9uIHJuZShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gcUFlKGMpe3ZhciBsPWZ1bmN0aW9uIEtBZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBk'@; put 'PWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywi'@; put 'c3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIFhBZXtjb25zdHJ1Y3Rv'@; put 'cihsKXtybmUodGhpcywic2V0dGluZ3MiLHt9KSxybmUodGhpcywiZGVmYXVsdHMiLE9iamVjdC5mcmVlemUodGhpcy5nZXREZWZhdWx0cygpKSksZHModGhpcy5kZWZhdWx0cywoYSxkKT0+e2lmKHZvaWQgMCE9PWxbZF0pdGhpcy5zZXR0aW5nc1tkXT1sW2RdO2Vsc2V7aWYodm9pZCAwPT09'@; put 'YSl0aHJvdyBuZXcgRXJyb3IoYEEgcmVxdWlyZWQgc2V0dGluZyAiJHtkfSIgd2FzIG5vdCBwcm92aWRlZGApO3RoaXMuc2V0dGluZ3NbZF09YX19KX1nZXREZWZhdWx0cygpe3JldHVybntmYWNhZGU6dm9pZCAwLHRhYmxlOnZvaWQgMCxpc0RhdGFWaWV3SW5zdGFuY2U6ITAsZXh0ZXJuYWxS'@; put 'b3dDYWxjdWxhdG9yOiExLHN0cmV0Y2hIOiJub25lIixjdXJyZW50Um93Q2xhc3NOYW1lOm51bGwsY3VycmVudENvbHVtbkNsYXNzTmFtZTpudWxsLHByZXZlbnRPdmVyZmxvdzooKT0+ITEscHJldmVudFdoZWVsOiExLGRhdGE6dm9pZCAwLGZyZWV6ZU92ZXJsYXlzOiExLGZpeGVkQ29sdW1u'@; put 'c1N0YXJ0OjAsZml4ZWRSb3dzVG9wOjAsZml4ZWRSb3dzQm90dG9tOjAsc2hvdWxkUmVuZGVySW5saW5lU3RhcnRPdmVybGF5OigpPT50aGlzLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik+MHx8dGhpcy5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoPjAsc2hvdWxkUmVu'@; put 'ZGVyVG9wT3ZlcmxheTooKT0+dGhpcy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKT4wfHx0aGlzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg+MCxzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5OigpPT50aGlzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpPjAsbWlu'@; put 'U3BhcmVSb3dzOjAscm93SGVhZGVyczooKT0+W10sY29sdW1uSGVhZGVyczooKT0+W10sdG90YWxSb3dzOnZvaWQgMCx0b3RhbENvbHVtbnM6dm9pZCAwLGNlbGxSZW5kZXJlcjoobCxhLGQpPT57anAoZCx0aGlzLmdldFNldHRpbmcoImRhdGEiLGwsYSk/PyIiKX0sY29sdW1uV2lkdGgoKXt9'@; put 'LHJvd0hlaWdodCgpe30sZGVmYXVsdFJvd0hlaWdodDoyMyxkZWZhdWx0Q29sdW1uV2lkdGg6NTAsc2VsZWN0aW9uczpudWxsLGhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXI6ITEsdmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGU6bnVsbCx2aWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVy'@; put 'cmlkZTpudWxsLG9uQ2VsbE1vdXNlRG93bjpudWxsLG9uQ2VsbENvbnRleHRNZW51Om51bGwsb25DZWxsTW91c2VPdmVyOm51bGwsb25DZWxsTW91c2VPdXQ6bnVsbCxvbkNlbGxNb3VzZVVwOm51bGwsb25DZWxsRGJsQ2xpY2s6bnVsbCxvbkNlbGxDb3JuZXJNb3VzZURvd246bnVsbCxvbkNl'@; put 'bGxDb3JuZXJEYmxDbGljazpudWxsLGJlZm9yZURyYXc6bnVsbCxvbkRyYXc6bnVsbCxvbkJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOm51bGwsb25BZnRlckRyYXdTZWxlY3Rpb246bnVsbCxvbkJlZm9yZURyYXdCb3JkZXJzOm51bGwsb25TY3JvbGxWZXJ0aWNhbGx5Om51bGwsb25TY3Jv'@; put 'bGxIb3Jpem9udGFsbHk6bnVsbCxvbkJlZm9yZVRvdWNoU2Nyb2xsOm51bGwsb25BZnRlck1vbWVudHVtU2Nyb2xsOm51bGwsb25CZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6bD0+bCxvbk1vZGlmeVJvd0hlYWRlcldpZHRoOm51bGwsb25Nb2RpZnlHZXRDZWxsQ29vcmRzOm51bGwsb25C'@; put 'ZWZvcmVIaWdobGlnaHRpbmdSb3dIZWFkZXI6bD0+bCxvbkJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlcjpsPT5sLG9uV2luZG93UmVzaXplOm51bGwsb25Db250YWluZXJFbGVtZW50UmVzaXplOm51bGwscmVuZGVyQWxsUm93czohMSxncm91cHM6ITEscm93SGVhZGVyV2lkdGg6bnVs'@; put 'bCxjb2x1bW5IZWFkZXJIZWlnaHQ6bnVsbCxoZWFkZXJDbGFzc05hbWU6bnVsbCxydGxNb2RlOiExfX11cGRhdGUobCxhKXtyZXR1cm4gdm9pZCAwPT09YT9kcyhsLChkLGgpPT57dGhpcy5zZXR0aW5nc1toXT1kfSk6dGhpcy5zZXR0aW5nc1tsXT1hLHRoaXN9Z2V0U2V0dGluZyhsLGEsZCxo'@; put 'LGYpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnNldHRpbmdzW2xdP3RoaXMuc2V0dGluZ3NbbF0oYSxkLGgsZik6dm9pZCAwIT09YSYmQXJyYXkuaXNBcnJheSh0aGlzLnNldHRpbmdzW2xdKT90aGlzLnNldHRpbmdzW2xdW2FdOnRoaXMuc2V0dGluZ3NbbF19Z2V0U2V0dGluZ1B1'@; put 'cmUobCl7cmV0dXJuIHRoaXMuc2V0dGluZ3NbbF19aGFzKGwpe3JldHVybiEhdGhpcy5zZXR0aW5nc1tsXX19Y2xhc3MgWE4gZXh0ZW5kcyB1N3tjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEsZCxoLCJtYXN0ZXIiKX1hbGlnbk92ZXJsYXlzV2l0aFRyaW1taW5nQ29udGFpbmVyKCl7'@; put 'Y29uc3QgbD12Zyh0aGlzLnd0Um9vdEVsZW1lbnQpLHtyb290V2luZG93OmF9PXRoaXMuZG9tQmluZGluZ3M7aWYobD09PWEpdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpfHwodGhpcy5ob2xkZXIuc3R5bGUub3ZlcmZsb3c9InZpc2libGUiLHRoaXMud3RS'@; put 'b290RWxlbWVudC5zdHlsZS5vdmVyZmxvdz0idmlzaWJsZSIpO2Vsc2V7Y29uc3QgZD1sLnBhcmVudEVsZW1lbnQsaD1uNyhsLCJoZWlnaHQiLGEpLGY9bjcobCwib3ZlcmZsb3ciLGEpLF89dGhpcy5ob2xkZXIuc3R5bGUse3Njcm9sbFdpZHRoOlQsc2Nyb2xsSGVpZ2h0Old9PWw7bGV0e3dp'@; put 'ZHRoOmllLGhlaWdodDpwZX09bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihkJiZbImF1dG8iLCJoaWRkZW4iLCJzY3JvbGwiXS5pbmNsdWRlcyhmKSl7Y29uc3QgRWU9bC5jbG9uZU5vZGUoITEpO0VlLnN0eWxlLm92ZXJmbG93PSJhdXRvIixFZS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1'@; put 'dGUiLGwubmV4dEVsZW1lbnRTaWJsaW5nP2QuaW5zZXJ0QmVmb3JlKEVlLGwubmV4dEVsZW1lbnRTaWJsaW5nKTpkLmFwcGVuZENoaWxkKEVlKTtjb25zdCBaZT1wYXJzZUludCh6cChFZSxhKS5oZWlnaHQsMTApO2QucmVtb3ZlQ2hpbGQoRWUpLDA9PT1aZSYmKHBlPTApfXBlPU1hdGgubWlu'@; put 'KHBlLFcpLF8uaGVpZ2h0PSJhdXRvIj09PWg/ImF1dG8iOmAke3BlfXB4YCxpZT1NYXRoLm1pbihpZSxUKSxfLndpZHRoPWAke2llfXB4YCxfLm92ZXJmbG93PSIiLHRoaXMuaGFzVGFibGVIZWlnaHQ9ImF1dG8iPT09Xy5oZWlnaHR8fHBlPjAsdGhpcy5oYXNUYWJsZVdpZHRoPWllPjB9dGhp'@; put 'cy5pc1RhYmxlVmlzaWJsZT1lNyh0aGlzLlRBQkxFKX1tYXJrT3ZlcnNpemVkQ29sdW1uSGVhZGVycygpe2NvbnN0e3d0U2V0dGluZ3M6bH09dGhpcyx7d3RWaWV3cG9ydDphfT10aGlzLmRhdGFBY2Nlc3NPYmplY3QsZD0ibWFzdGVyIixmPWwuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIp'@; put 'Lmxlbmd0aDtpZihmJiYhYS5oYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFya2VkW2RdKXtjb25zdCBUPWwuZ2V0U2V0dGluZygicm93SGVhZGVycyIpLmxlbmd0aCxXPXRoaXMuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKTtmb3IobGV0IGllPTA7aWU8ZjtpZSsrKWZvcihsZXQgcGU9LTEq'@; put 'VDtwZTxXO3BlKyspdGhpcy5tYXJrSWZPdmVyc2l6ZWRDb2x1bW5IZWFkZXIocGUpO2EuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZFtkXT0hMH19fVRhKFhOLGVuZSksVGEoWE4sTk4pO2NvbnN0IEpBZT1YTjtGKDUxMDEpO2NvbnN0IGluZT1uZXcgV2Vha01hcDtjbGFzcyBKTntz'@; put 'dGF0aWMgZ2V0IERFRkFVTFRfSEVJR0hUKCl7cmV0dXJuIDIzfWNvbnN0cnVjdG9yKCl7bGV0e3ZpZXdwb3J0U2l6ZTpsLHNjcm9sbE9mZnNldDphLHRvdGFsSXRlbXM6ZCxpdGVtU2l6ZUZuOmgsb3ZlcnJpZGVGbjpmLGNhbGN1bGF0aW9uVHlwZTpfLHNjcm9sbGJhckhlaWdodDpUfT1hcmd1'@; put 'bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307aW5lLnNldCh0aGlzLHt2aWV3cG9ydEhlaWdodDpsLHNjcm9sbE9mZnNldDphLHRvdGFsUm93czpkLHJvd0hlaWdodEZuOmgsb3ZlcnJpZGVGbjpmLGNhbGN1bGF0aW9uVHlwZTpfLGhvcml6b250'@; put 'YWxTY3JvbGxiYXJIZWlnaHQ6VH0pLHRoaXMuY291bnQ9MCx0aGlzLnN0YXJ0Um93PW51bGwsdGhpcy5lbmRSb3c9bnVsbCx0aGlzLnN0YXJ0UG9zaXRpb249bnVsbCx0aGlzLmlzVmlzaWJsZUluVHJpbW1pbmdDb250YWluZXI9ITEsdGhpcy5jYWxjdWxhdGUoKX1jYWxjdWxhdGUoKXtjb25z'@; put 'dCBsPWluZS5nZXQodGhpcyksYT1sLmNhbGN1bGF0aW9uVHlwZSxkPWwub3ZlcnJpZGVGbixoPWwucm93SGVpZ2h0Rm4sZj1sLnNjcm9sbE9mZnNldCxfPU1hdGgubWF4KGwuc2Nyb2xsT2Zmc2V0LDApLFQ9bC50b3RhbFJvd3MsVz1sLnZpZXdwb3J0SGVpZ2h0LGllPWwuaG9yaXpvbnRhbFNj'@; put 'cm9sbGJhckhlaWdodHx8MDtsZXQgcGU9MCx3ZT0hMDtjb25zdCBFZT1bXTtsZXQgWmUsaXQ9MCxldD0wO2ZvcihsZXQgSnQ9MDtKdDxUO0p0KyspaWYoWmU9aChKdCksaXNOYU4oWmUpJiYoWmU9Sk4uREVGQVVMVF9IRUlHSFQpLHBlPD1fJiYyIT09YSYmKHRoaXMuc3RhcnRSb3c9SnQsaXQ9'@; put 'WmUpLHBlPj1fJiZwZSsoMj09PWE/WmU6MCk8PV8rVy1pZSYmKG51bGw9PT10aGlzLnN0YXJ0Um93JiYodGhpcy5zdGFydFJvdz1KdCxpdD1aZSksdGhpcy5lbmRSb3c9SnQpLEVlLnB1c2gocGUpLHBlKz1aZSxldD1aZSwyIT09YSYmKHRoaXMuZW5kUm93PUp0KSxwZT49XytXLWllKXt3ZT0h'@; put 'MTticmVha31jb25zdCBTdD0yPT09YT8wOmV0O2lmKHRoaXMuaXNWaXNpYmxlSW5UcmltbWluZ0NvbnRhaW5lcj0hKGYrVy1pZTwoMj09PWE/aXQ6MCl8fGY+RWUuYXQoLTEpK1N0KSx0aGlzLmVuZFJvdz09PVQtMSYmd2UpZm9yKHRoaXMuc3RhcnRSb3c9dGhpcy5lbmRSb3c7dGhpcy5zdGFy'@; put 'dFJvdz4wOyl7Y29uc3QgSnQ9RWVbdGhpcy5lbmRSb3ddK1plLUVlW3RoaXMuc3RhcnRSb3ctMV07aWYoKEp0PD1XLWllfHwyIT09YSkmJih0aGlzLnN0YXJ0Um93LT0xKSxKdD49Vy1pZSlicmVha30xPT09YSYmbnVsbCE9PXRoaXMuc3RhcnRSb3cmJmQmJmQodGhpcyksdGhpcy5zdGFydFBv'@; put 'c2l0aW9uPUVlW3RoaXMuc3RhcnRSb3ddLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxUPHRoaXMuZW5kUm93JiYodGhpcy5lbmRSb3c9VC0xKSxudWxsIT09dGhpcy5zdGFydFJvdyYmKHRoaXMuY291bnQ9dGhpcy5lbmRSb3ctdGhpcy5z'@; put 'dGFydFJvdysxKX19Y29uc3Qgb25lPUpOLGQ3PW5ldyBXZWFrTWFwO2NsYXNzIFFOe3N0YXRpYyBnZXQgREVGQVVMVF9XSURUSCgpe3JldHVybiA1MH1jb25zdHJ1Y3Rvcigpe2xldHt2aWV3cG9ydFNpemU6bCxzY3JvbGxPZmZzZXQ6YSx0b3RhbEl0ZW1zOmQsaXRlbVNpemVGbjpoLG92ZXJy'@; put 'aWRlRm46ZixjYWxjdWxhdGlvblR5cGU6XyxzdHJldGNoTW9kZTpULHN0cmV0Y2hpbmdJdGVtV2lkdGhGbjpXPShwZT0+cGUpLGlubGluZVN0YXJ0T2Zmc2V0OmllfT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307ZDcuc2V0KHRoaXMs'@; put 'e3ZpZXdwb3J0V2lkdGg6bCxzY3JvbGxPZmZzZXQ6YSx0b3RhbENvbHVtbnM6ZCxjb2x1bW5XaWR0aEZuOmgsb3ZlcnJpZGVGbjpmLGNhbGN1bGF0aW9uVHlwZTpfLHN0cmV0Y2hpbmdDb2x1bW5XaWR0aEZuOlcsaW5saW5lU3RhcnRPZmZzZXQ6aWV9KSx0aGlzLmNvdW50PTAsdGhpcy5zdGFy'@; put 'dENvbHVtbj1udWxsLHRoaXMuZW5kQ29sdW1uPW51bGwsdGhpcy5zdGFydFBvc2l0aW9uPW51bGwsdGhpcy5pc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyPSExLHRoaXMuc3RyZXRjaEFsbFJhdGlvPTAsdGhpcy5zdHJldGNoTGFzdFdpZHRoPTAsdGhpcy5zdHJldGNoPVQsdGhpcy50b3Rh'@; put 'bFRhcmdldFdpZHRoPTAsdGhpcy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoPSEwLHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aD1bXSx0aGlzLmNhbGN1bGF0ZSgpfWNhbGN1bGF0ZSgpe2xldCBsPTAsYT0hMDtjb25zdCBkPVtdO2xldCBoLGY9MCxfPTA7Y29uc3QgVD1kNy5nZXQodGhp'@; put 'cyksVz1ULmNhbGN1bGF0aW9uVHlwZSxpZT1ULm92ZXJyaWRlRm4scGU9VC5zY3JvbGxPZmZzZXQsd2U9TWF0aC5tYXgoVC5zY3JvbGxPZmZzZXQsMCksRWU9VC50b3RhbENvbHVtbnMsWmU9VC52aWV3cG9ydFdpZHRoLGl0PXdlPjA/WmUrMTpaZTtmb3IobGV0IFN0PTA7U3Q8RWU7U3QrKylp'@; put 'ZihoPXRoaXMuX2dldENvbHVtbldpZHRoKFN0KSxsPD13ZSYmMiE9PVcmJih0aGlzLnN0YXJ0Q29sdW1uPVN0LGY9aCksbD49d2UmJmwrKDI9PT1XP2g6MCk8PXdlK2l0JiYobnVsbD09dGhpcy5zdGFydENvbHVtbiYmKHRoaXMuc3RhcnRDb2x1bW49U3QsZj1oKSx0aGlzLmVuZENvbHVtbj1T'@; put 'dCksZC5wdXNoKGwpLGwrPWgsXz1oLDIhPT1XJiYodGhpcy5lbmRDb2x1bW49U3QpLGw+PXdlK1plKXthPSExO2JyZWFrfWNvbnN0IHl0PTI9PT1XPzA6XyxFdD0yPT09Vz9mOjA7aWYodGhpcy5pc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyPSEocGUrWmUtaXQ8LTEqVC5pbmxpbmVTdGFy'@; put 'dE9mZnNldHx8cGU+ZC5hdCgtMSkreXR8fC0xKlQuc2Nyb2xsT2Zmc2V0LVQudmlld3BvcnRXaWR0aD4tMSpFdCksdGhpcy5lbmRDb2x1bW49PT1FZS0xJiZhKWZvcih0aGlzLnN0YXJ0Q29sdW1uPXRoaXMuZW5kQ29sdW1uO3RoaXMuc3RhcnRDb2x1bW4+MDspe2NvbnN0IFN0PWRbdGhpcy5l'@; put 'bmRDb2x1bW5dK2gtZFt0aGlzLnN0YXJ0Q29sdW1uLTFdO2lmKChTdDw9WmV8fDIhPT1XKSYmKHRoaXMuc3RhcnRDb2x1bW4tPTEpLFN0PlplKWJyZWFrfTE9PT1XJiZudWxsIT09dGhpcy5zdGFydENvbHVtbiYmaWUmJmllKHRoaXMpLHRoaXMuc3RhcnRQb3NpdGlvbj1kW3RoaXMuc3RhcnRD'@; put 'b2x1bW5dLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxFZTx0aGlzLmVuZENvbHVtbiYmKHRoaXMuZW5kQ29sdW1uPUVlLTEpLG51bGwhPT10aGlzLnN0YXJ0Q29sdW1uJiYodGhpcy5jb3VudD10aGlzLmVuZENvbHVtbi10aGlzLnN0YXJ0'@; put 'Q29sdW1uKzEpfXJlZnJlc2hTdHJldGNoaW5nKGwpe2lmKCJub25lIj09PXRoaXMuc3RyZXRjaClyZXR1cm47bGV0IGE9bDt0aGlzLnRvdGFsVGFyZ2V0V2lkdGg9YTtjb25zdCBkPWQ3LmdldCh0aGlzKSxoPWQudG90YWxDb2x1bW5zO2xldCBmPTA7Zm9yKGxldCBUPTA7VDxoO1QrKyl7Y29u'@; put 'c3QgVz10aGlzLl9nZXRDb2x1bW5XaWR0aChUKSxpZT1kLnN0cmV0Y2hpbmdDb2x1bW5XaWR0aEZuKHZvaWQgMCxUKTsibnVtYmVyIj09dHlwZW9mIGllP2EtPWllOmYrPVd9Y29uc3QgXz1hLWY7aWYoImFsbCI9PT10aGlzLnN0cmV0Y2gmJl8+MCl0aGlzLnN0cmV0Y2hBbGxSYXRpbz1hL2Ys'@; put 'dGhpcy5zdHJldGNoQWxsQ29sdW1uc1dpZHRoPVtdLHRoaXMubmVlZFZlcmlmeUxhc3RDb2x1bW5XaWR0aD0hMDtlbHNlIGlmKCJsYXN0Ij09PXRoaXMuc3RyZXRjaCYmYSE9PTEvMCl7Y29uc3QgVD10aGlzLl9nZXRDb2x1bW5XaWR0aChoLTEpLFc9XytUO3RoaXMuc3RyZXRjaExhc3RXaWR0'@; put 'aD1XPj0wP1c6VH19Z2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgobCxhKXtsZXQgZD1udWxsO3JldHVybiJhbGwiPT09dGhpcy5zdHJldGNoJiYwIT09dGhpcy5zdHJldGNoQWxsUmF0aW8/ZD10aGlzLl9nZXRTdHJldGNoZWRBbGxDb2x1bW5XaWR0aChsLGEpOiJsYXN0Ij09PXRoaXMuc3RyZXRj'@; put 'aCYmMCE9PXRoaXMuc3RyZXRjaExhc3RXaWR0aCYmKGQ9dGhpcy5fZ2V0U3RyZXRjaGVkTGFzdENvbHVtbldpZHRoKGwpKSxkfV9nZXRTdHJldGNoZWRBbGxDb2x1bW5XaWR0aChsLGEpe2xldCBkPTA7Y29uc3QgaD1kNy5nZXQodGhpcyksZj1oLnRvdGFsQ29sdW1ucztpZighdGhpcy5zdHJl'@; put 'dGNoQWxsQ29sdW1uc1dpZHRoW2xdKXtjb25zdCBfPU1hdGgucm91bmQoYSp0aGlzLnN0cmV0Y2hBbGxSYXRpbyksVD1oLnN0cmV0Y2hpbmdDb2x1bW5XaWR0aEZuKF8sbCk7dGhpcy5zdHJldGNoQWxsQ29sdW1uc1dpZHRoW2xdPXZvaWQgMD09PVQ/Xzppc05hTihUKT90aGlzLl9nZXRDb2x1'@; put 'bW5XaWR0aChsKTpUfWlmKHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aC5sZW5ndGg9PT1mJiZ0aGlzLm5lZWRWZXJpZnlMYXN0Q29sdW1uV2lkdGgpe3RoaXMubmVlZFZlcmlmeUxhc3RDb2x1bW5XaWR0aD0hMTtmb3IobGV0IF89MDtfPHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aC5s'@; put 'ZW5ndGg7XysrKWQrPXRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aFtfXTtkIT09dGhpcy50b3RhbFRhcmdldFdpZHRoJiYodGhpcy5zdHJldGNoQWxsQ29sdW1uc1dpZHRoW3RoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aC5sZW5ndGgtMV0rPXRoaXMudG90YWxUYXJnZXRXaWR0aC1kKX1y'@; put 'ZXR1cm4gdGhpcy5zdHJldGNoQWxsQ29sdW1uc1dpZHRoW2xdfV9nZXRTdHJldGNoZWRMYXN0Q29sdW1uV2lkdGgobCl7cmV0dXJuIGw9PT1kNy5nZXQodGhpcykudG90YWxDb2x1bW5zLTE/dGhpcy5zdHJldGNoTGFzdFdpZHRoOm51bGx9X2dldENvbHVtbldpZHRoKGwpe2xldCBhPWQ3Lmdl'@; put 'dCh0aGlzKS5jb2x1bW5XaWR0aEZuKGwpO3JldHVybiBpc05hTihhKSYmKGE9UU4uREVGQVVMVF9XSURUSCksYX19Y29uc3QgZVY9UU47Y2xhc3MgdFRlIGV4dGVuZHMgWU57Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLG5ldyBYQWUoYSkpO2NvbnN0IGQ9dGhpcy53dFNldHRpbmdzLmdldFNl'@; put 'dHRpbmcoImZhY2FkZSIsdGhpcyk7dGhpcy53dFRhYmxlPW5ldyBKQWUodGhpcy5nZXRUYWJsZURhbygpLGQsdGhpcy5kb21CaW5kaW5ncyx0aGlzLnd0U2V0dGluZ3MpLHRoaXMud3RWaWV3cG9ydD1uZXcgY2xhc3MgUUFle2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7dGhpcy5kYXRhQWNjZXNz'@; put 'T2JqZWN0PWwsdGhpcy53b3Q9bC53b3QsdGhpcy5pbnN0YW5jZT10aGlzLndvdCx0aGlzLmRvbUJpbmRpbmdzPWEsdGhpcy53dFNldHRpbmdzPWQsdGhpcy53dFRhYmxlPWYsdGhpcy5vdmVyc2l6ZWRSb3dzPVtdLHRoaXMub3ZlcnNpemVkQ29sdW1uSGVhZGVycz1bXSx0aGlzLmhhc092ZXJz'@; put 'aXplZENvbHVtbkhlYWRlcnNNYXJrZWQ9e30sdGhpcy5jbGllbnRIZWlnaHQ9MCx0aGlzLmNvbnRhaW5lcldpZHRoPU5hTix0aGlzLnJvd0hlYWRlcldpZHRoPU5hTix0aGlzLnJvd3NWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHRoaXMuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yPW51bGwsdGhp'@; put 'cy5ldmVudE1hbmFnZXI9aCx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdywicmVzaXplIiwoKT0+e3RoaXMuY2xpZW50SGVpZ2h0PXRoaXMuZ2V0V29ya3NwYWNlSGVpZ2h0KCl9KX1nZXRXb3Jrc3BhY2VIZWlnaHQoKXtjb25z'@; put 'dCBhPXRoaXMuZGF0YUFjY2Vzc09iamVjdC50b3BPdmVybGF5VHJpbW1pbmdDb250YWluZXI7bGV0IGQ9MDtyZXR1cm4gZD1hPT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93P3RoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ6YWwo'@; put 'YSk+MCYmYS5jbGllbnRIZWlnaHQ+MD9hLmNsaWVudEhlaWdodDoxLzAsZH1nZXRXb3Jrc3BhY2VXaWR0aCgpe2NvbnN0e3d0U2V0dGluZ3M6bH09dGhpcyx7cm9vdERvY3VtZW50OmEscm9vdFdpbmRvdzpkfT10aGlzLmRvbUJpbmRpbmdzLGg9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmlubGlu'@; put 'ZVN0YXJ0T3ZlcmxheVRyaW1taW5nQ29udGFpbmVyLGY9YS5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgsXz1sLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLFQ9bC5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSxXPWwuZ2V0U2V0dGluZygicnRsTW9kZSIpLGllPXRoaXMud3RU'@; put 'YWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx3ZT1mLShXP2llLnJpZ2h0LWY6aWUubGVmdCk7bGV0IEVlLFplO2lmKFQpcmV0dXJuIHdhKHRoaXMud3RUYWJsZS53dFJvb3RFbGVtZW50KTtpZihFZT1sLmdldFNldHRpbmcoImZyZWV6ZU92ZXJsYXlzIik/TWF0aC5taW4od2Us'@; put 'Zik6TWF0aC5taW4odGhpcy5nZXRDb250YWluZXJGaWxsV2lkdGgoKSx3ZSxmKSxoPT09ZCYmXz4wJiZ0aGlzLnN1bUNvbHVtbldpZHRocygwLF8tMSk+RWUpcmV0dXJuIGEuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO2lmKGghPT1kJiYoWmU9bjcodGhpcy5kYXRhQWNjZXNzT2JqZWN0'@; put 'LmlubGluZVN0YXJ0T3ZlcmxheVRyaW1taW5nQ29udGFpbmVyLCJvdmVyZmxvdyIsZCksInNjcm9sbCI9PT1aZXx8ImhpZGRlbiI9PT1aZXx8ImF1dG8iPT09WmUpKXJldHVybiBNYXRoLm1heChFZSxoLmNsaWVudFdpZHRoKTtjb25zdCBpdD1sLmdldFNldHRpbmcoInN0cmV0Y2hIIik7cmV0'@; put 'dXJuIm5vbmUiIT09aXQmJml0P0VlOk1hdGgubWF4KEVlLHdhKHRoaXMud3RUYWJsZS5UQUJMRSkpfWhhc1ZlcnRpY2FsU2Nyb2xsKCl7cmV0dXJuIHRoaXMud3RUYWJsZS5oaWRlci5vZmZzZXRIZWlnaHQ+dGhpcy5nZXRXb3Jrc3BhY2VIZWlnaHQoKX1oYXNIb3Jpem9udGFsU2Nyb2xsKCl7'@; put 'cmV0dXJuIHRoaXMud3RUYWJsZS5oaWRlci5vZmZzZXRXaWR0aD50aGlzLmdldFdvcmtzcGFjZVdpZHRoKCl9c3VtQ29sdW1uV2lkdGhzKGwsYSl7bGV0IGQ9MCxoPWw7Zm9yKDtoPGE7KWQrPXRoaXMud3RUYWJsZS5nZXRDb2x1bW5XaWR0aChoKSxoKz0xO3JldHVybiBkfWdldENvbnRhaW5l'@; put 'ckZpbGxXaWR0aCgpe2lmKHRoaXMuY29udGFpbmVyV2lkdGgpcmV0dXJuIHRoaXMuY29udGFpbmVyV2lkdGg7Y29uc3QgbD10aGlzLnd0VGFibGUuaG9sZGVyLGE9dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5zdHlsZS53aWR0aD0iMTAwJSIs'@; put 'YS5zdHlsZS5oZWlnaHQ9IjFweCIsbC5hcHBlbmRDaGlsZChhKTtjb25zdCBkPWEub2Zmc2V0V2lkdGg7cmV0dXJuIHRoaXMuY29udGFpbmVyV2lkdGg9ZCxsLnJlbW92ZUNoaWxkKGEpLGR9Z2V0V29ya3NwYWNlT2Zmc2V0KCl7cmV0dXJuIEtsKHRoaXMud3RUYWJsZS5UQUJMRSl9Z2V0Q29s'@; put 'dW1uSGVhZGVySGVpZ2h0KCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoP2lzTmFOKHRoaXMuY29sdW1uSGVhZGVySGVpZ2h0KSYmKHRoaXMuY29sdW1uSGVhZGVySGVpZ2h0PWFsKHRoaXMud3RUYWJsZS5USEVBRCkpOnRoaXMuY29s'@; put 'dW1uSGVhZGVySGVpZ2h0PTAsdGhpcy5jb2x1bW5IZWFkZXJIZWlnaHR9Z2V0Vmlld3BvcnRIZWlnaHQoKXtsZXQgbD10aGlzLmdldFdvcmtzcGFjZUhlaWdodCgpO2lmKGw9PT0xLzApcmV0dXJuIGw7Y29uc3QgYT10aGlzLmdldENvbHVtbkhlYWRlckhlaWdodCgpO3JldHVybiBhPjAmJihs'@; put 'LT1hKSxsfWdldFJvd0hlYWRlcldpZHRoKCl7Y29uc3QgbD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVyV2lkdGgiKSxhPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIik7aWYobCl7dGhpcy5yb3dIZWFkZXJXaWR0aD0wO2ZvcihsZXQgZD0wLGg9'@; put 'YS5sZW5ndGg7ZDxoO2QrKyl0aGlzLnJvd0hlYWRlcldpZHRoKz1sW2RdfHxsfWlmKGlzTmFOKHRoaXMucm93SGVhZGVyV2lkdGgpKWlmKGEubGVuZ3RoKXtsZXQgZD10aGlzLnd0VGFibGUuVEFCTEUucXVlcnlTZWxlY3RvcigiVEgiKTt0aGlzLnJvd0hlYWRlcldpZHRoPTA7Zm9yKGxldCBo'@; put 'PTAsZj1hLmxlbmd0aDtoPGY7aCsrKWQ/KHRoaXMucm93SGVhZGVyV2lkdGgrPXdhKGQpLGQ9ZC5uZXh0U2libGluZyk6dGhpcy5yb3dIZWFkZXJXaWR0aCs9NTB9ZWxzZSB0aGlzLnJvd0hlYWRlcldpZHRoPTA7cmV0dXJuIHRoaXMucm93SGVhZGVyV2lkdGg9dGhpcy53dFNldHRpbmdzLmdl'@; put 'dFNldHRpbmcoIm9uTW9kaWZ5Um93SGVhZGVyV2lkdGgiLHRoaXMucm93SGVhZGVyV2lkdGgpfHx0aGlzLnJvd0hlYWRlcldpZHRoLHRoaXMucm93SGVhZGVyV2lkdGh9Z2V0Vmlld3BvcnRXaWR0aCgpe2NvbnN0IGw9dGhpcy5nZXRXb3Jrc3BhY2VXaWR0aCgpO2lmKGw9PT0xLzApcmV0dXJu'@; put 'IGw7Y29uc3QgYT10aGlzLmdldFJvd0hlYWRlcldpZHRoKCk7cmV0dXJuIGE+MD9sLWE6bH1jcmVhdGVSb3dzQ2FsY3VsYXRvcigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToxO2NvbnN0e3d0U2V0dGluZ3M6YSx3dFRhYmxl'@; put 'OmR9PXRoaXM7bGV0IGgsZixfO3RoaXMucm93SGVhZGVyV2lkdGg9TmFOLGg9YS5nZXRTZXR0aW5nKCJyZW5kZXJBbGxSb3dzIikmJjE9PT1sPzEvMDp0aGlzLmdldFZpZXdwb3J0SGVpZ2h0KCk7bGV0IFQ9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcFNjcm9sbFBvc2l0aW9uLXRoaXMuZGF0'@; put 'YUFjY2Vzc09iamVjdC50b3BQYXJlbnRPZmZzZXQ7Y29uc3QgVz1hLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLGllPWEuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIikscGU9YS5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKTtyZXR1cm4gVyYmVD49MCYmKF89dGhpcy5kYXRhQWNjZXNz'@; put 'T2JqZWN0LnRvcE92ZXJsYXkuc3VtQ2VsbFNpemVzKDAsVyksVCs9XyxoLT1fKSxpZSYmdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmJvdHRvbU92ZXJsYXkuY2xvbmUmJihfPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5ib3R0b21PdmVybGF5LnN1bUNlbGxTaXplcyhwZS1pZSxwZSksaC09XyksZj1k'@; put 'LmhvbGRlci5jbGllbnRIZWlnaHQ9PT1kLmhvbGRlci5vZmZzZXRIZWlnaHQ/MDpMYyh0aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudCksbmV3IG9uZSh7dmlld3BvcnRTaXplOmgsc2Nyb2xsT2Zmc2V0OlQsdG90YWxJdGVtczphLmdldFNldHRpbmcoInRvdGFsUm93cyIpLGl0ZW1TaXpl'@; put 'Rm46d2U9PmQuZ2V0Um93SGVpZ2h0KHdlKSxvdmVycmlkZUZuOmEuZ2V0U2V0dGluZ1B1cmUoInZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIiksY2FsY3VsYXRpb25UeXBlOmwsc2Nyb2xsYmFySGVpZ2h0OmZ9KX1jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigpe2xldCBsPWFyZ3VtZW50'@; put 'cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToxO2NvbnN0e3d0U2V0dGluZ3M6YSx3dFRhYmxlOmR9PXRoaXM7bGV0IGg9dGhpcy5nZXRWaWV3cG9ydFdpZHRoKCksZj1NYXRoLmFicyh0aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRTY3JvbGxQ'@; put 'b3NpdGlvbiktdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmlubGluZVN0YXJ0UGFyZW50T2Zmc2V0O3RoaXMuY29sdW1uSGVhZGVySGVpZ2h0PU5hTjtjb25zdCBfPWEuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKTtpZihfJiZmPj0wKXtjb25zdCBUPXRoaXMuZGF0YUFjY2Vzc09iamVj'@; put 'dC5pbmxpbmVTdGFydE92ZXJsYXkuc3VtQ2VsbFNpemVzKDAsXyk7Zis9VCxoLT1UfXJldHVybiBkLmhvbGRlci5jbGllbnRXaWR0aCE9PWQuaG9sZGVyLm9mZnNldFdpZHRoJiYoaC09TGModGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQpKSxuZXcgZVYoe3ZpZXdwb3J0U2l6ZTpoLHNj'@; put 'cm9sbE9mZnNldDpmLHRvdGFsSXRlbXM6YS5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxpdGVtU2l6ZUZuOlQ9PmQuZ2V0Q29sdW1uV2lkdGgoVCksb3ZlcnJpZGVGbjphLmdldFNldHRpbmdQdXJlKCJ2aWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIpLGNhbGN1bGF0aW9uVHlw'@; put 'ZTpsLHN0cmV0Y2hNb2RlOmEuZ2V0U2V0dGluZygic3RyZXRjaEgiKSxzdHJldGNoaW5nSXRlbVdpZHRoRm46KFQsVyk9PmEuZ2V0U2V0dGluZygib25CZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLFQsVyksaW5saW5lU3RhcnRPZmZzZXQ6dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmlubGlu'@; put 'ZVN0YXJ0UGFyZW50T2Zmc2V0fSl9Y3JlYXRlUmVuZGVyQ2FsY3VsYXRvcnMoKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKGEpe2NvbnN0IGQ9dGhpcy5jcmVhdGVSb3dzQ2FsY3VsYXRvcigyKSxoPXRoaXMuY3JlYXRl'@; put 'Q29sdW1uc0NhbGN1bGF0b3IoMik7dGhpcy5hcmVBbGxQcm9wb3NlZFZpc2libGVSb3dzQWxyZWFkeVJlbmRlcmVkKGQpJiZ0aGlzLmFyZUFsbFByb3Bvc2VkVmlzaWJsZUNvbHVtbnNBbHJlYWR5UmVuZGVyZWQoaCl8fChhPSExKX1yZXR1cm4gYXx8KHRoaXMucm93c1JlbmRlckNhbGN1bGF0'@; put 'b3I9dGhpcy5jcmVhdGVSb3dzQ2FsY3VsYXRvcigxKSx0aGlzLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yPXRoaXMuY3JlYXRlQ29sdW1uc0NhbGN1bGF0b3IoMSkpLHRoaXMucm93c1Zpc2libGVDYWxjdWxhdG9yPW51bGwsdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3I9bnVsbCxhfWNy'@; put 'ZWF0ZVZpc2libGVDYWxjdWxhdG9ycygpe3RoaXMucm93c1Zpc2libGVDYWxjdWxhdG9yPXRoaXMuY3JlYXRlUm93c0NhbGN1bGF0b3IoMiksdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3I9dGhpcy5jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigyKX1hcmVBbGxQcm9wb3NlZFZpc2libGVS'@; put 'b3dzQWxyZWFkeVJlbmRlcmVkKGwpe2lmKCF0aGlzLnJvd3NWaXNpYmxlQ2FsY3VsYXRvcilyZXR1cm4hMTtjb25zdHtzdGFydFJvdzphLGVuZFJvdzpkLGlzVmlzaWJsZUluVHJpbW1pbmdDb250YWluZXI6aH09bDtpZihudWxsPT09YSYmbnVsbD09PWQpcmV0dXJuIWg7Y29uc3R7c3RhcnRS'@; put 'b3c6ZixlbmRSb3c6X309dGhpcy5yb3dzUmVuZGVyQ2FsY3VsYXRvcjtyZXR1cm4hKGE8Znx8YT09PWYmJmE+MHx8ZD5ffHxkPT09XyYmZDx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktMSl9YXJlQWxsUHJvcG9zZWRWaXNpYmxlQ29sdW1uc0FscmVhZHlSZW5kZXJl'@; put 'ZChsKXtpZighdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IpcmV0dXJuITE7Y29uc3R7c3RhcnRDb2x1bW46YSxlbmRDb2x1bW46ZCxpc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyOmh9PWw7aWYobnVsbD09PWEmJm51bGw9PT1kKXJldHVybiFoO2NvbnN0e3N0YXJ0Q29sdW1uOmYs'@; put 'ZW5kQ29sdW1uOl99PXRoaXMuY29sdW1uc1JlbmRlckNhbGN1bGF0b3I7cmV0dXJuIShhPGZ8fGE9PT1mJiZhPjB8fGQ+X3x8ZD09PV8mJmQ8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLTEpfXJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCgp'@; put 'e2RzKHRoaXMuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCwobCxhLGQpPT57ZFthXT12b2lkIDB9KX19KHRoaXMuZ2V0Vmlld3BvcnREYW8oKSx0aGlzLmRvbUJpbmRpbmdzLHRoaXMud3RTZXR0aW5ncyx0aGlzLmV2ZW50TWFuYWdlcix0aGlzLnd0VGFibGUpLHRoaXMuc2VsZWN0'@; put 'aW9ucz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygic2VsZWN0aW9ucyIpLHRoaXMud3RFdmVudD1uZXcgVnRlKGQsdGhpcy5kb21CaW5kaW5ncyx0aGlzLnd0U2V0dGluZ3MsdGhpcy5ldmVudE1hbmFnZXIsdGhpcy53dFRhYmxlLHRoaXMuc2VsZWN0aW9ucyksdGhpcy53dE92ZXJsYXlz'@; put 'PW5ldyBjbGFzcyBHQWV7Y29uc3RydWN0b3IobCxhLGQsaCxmLF8pe1pmKHRoaXMsIndvdCIsbnVsbCksWmYodGhpcywidG9wT3ZlcmxheSIsbnVsbCksWmYodGhpcywiYm90dG9tT3ZlcmxheSIsbnVsbCksWmYodGhpcywiaW5saW5lU3RhcnRPdmVybGF5IixudWxsKSxaZih0aGlzLCJ0b3BJ'@; put 'bmxpbmVTdGFydENvcm5lck92ZXJsYXkiLG51bGwpLFpmKHRoaXMsImJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSIsbnVsbCksWmYodGhpcywiYnJvd3NlckxpbmVIZWlnaHQiLHZvaWQgMCksWmYodGhpcywid3RTZXR0aW5ncyIsbnVsbCksWmYodGhpcywicmVzaXplT2JzZXJ2ZXIi'@; put 'LG5ldyBSZXNpemVPYnNlcnZlcihwZT0+e3lrKCgpPT57IUFycmF5LmlzQXJyYXkocGUpfHwhcGUubGVuZ3RofHx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25Db250YWluZXJFbGVtZW50UmVzaXplIil9KX0pKSx0aGlzLndvdD1sLHRoaXMud3RTZXR0aW5ncz1oLHRoaXMuZG9tQmlu'@; put 'ZGluZ3M9ZCx0aGlzLmZhY2FkZUdldHRlcj1hLHRoaXMud3RUYWJsZT1fO2NvbnN0e3Jvb3REb2N1bWVudDpULHJvb3RXaW5kb3c6V309dGhpcy5kb21CaW5kaW5nczt0aGlzLmluc3RhbmNlPXRoaXMud290LHRoaXMuZXZlbnRNYW5hZ2VyPWYsdGhpcy5zY3JvbGxiYXJTaXplPUxjKFQpO2Nv'@; put 'bnN0IGllPSJoaWRkZW4iPT09Vy5nZXRDb21wdXRlZFN0eWxlKF8ud3RSb290RWxlbWVudC5wYXJlbnROb2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpO3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnQ9aWU/Xy5ob2xkZXI6cnkoXy5UQUJMRSksdGhpcy5pbml0T3ZlcmxheXMoKSx0aGlz'@; put 'Lmhhc1Njcm9sbGJhckJvdHRvbT0hMSx0aGlzLmhhc1Njcm9sbGJhclJpZ2h0PSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMua2V5UHJlc3NlZD0hMSx0aGlzLnNwcmVhZGVyTGFzdFNpemU9e3dpZHRoOm51bGwsaGVpZ2h0Om51bGx9LHRoaXMudmVydGljYWxTY3JvbGxpbmc9ITEsdGhpcy5o'@; put 'b3Jpem9udGFsU2Nyb2xsaW5nPSExLHRoaXMuaW5pdEJyb3dzZXJMaW5lSGVpZ2h0KCksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpLHRoaXMubGFzdFNjcm9sbFg9Vy5zY3JvbGxYLHRoaXMubGFzdFNjcm9sbFk9Vy5zY3JvbGxZfWdldE92ZXJsYXlzKCl7Y29uc3QgYT1bdGhpcy50b3BPdmVy'@; put 'bGF5LHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd'@; put 'JiZhcmd1bWVudHNbMF0mJmEucHVzaCh0aGlzLnd0VGFibGUpLGF9aW5pdEJyb3dzZXJMaW5lSGVpZ2h0KCl7Y29uc3R7cm9vdFdpbmRvdzpsLHJvb3REb2N1bWVudDphfT10aGlzLmRvbUJpbmRpbmdzLGQ9bC5nZXRDb21wdXRlZFN0eWxlKGEuYm9keSksaD1wYXJzZUludChkLmxpbmVIZWln'@; put 'aHQsMTApLGY9MS4yKnBhcnNlSW50KGQuZm9udFNpemUsMTApO3RoaXMuYnJvd3NlckxpbmVIZWlnaHQ9aHx8Zn1pbml0T3ZlcmxheXMoKXtjb25zdCBsPVt0aGlzLndvdCx0aGlzLmZhY2FkZUdldHRlcix0aGlzLnd0U2V0dGluZ3MsdGhpcy5kb21CaW5kaW5nc107dGhpcy50b3BPdmVybGF5'@; put 'PW5ldyBBQWUoLi4ubCksdGhpcy5ib3R0b21PdmVybGF5PW5ldyBPQWUoLi4ubCksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXk9bmV3IE5BZSguLi5sKSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheT1uZXcgekFlKC4uLmwsdGhpcy50b3BPdmVybGF5LHRoaXMuaW5saW5lU3RhcnRP'@; put 'dmVybGF5KSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheT1uZXcgWkFlKC4uLmwsdGhpcy5ib3R0b21PdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5KX11cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl7bGV0IGw9dGhpcy50b3BPdmVybGF5LnVwZGF0ZVN0YXRlT2ZSZW5k'@; put 'ZXJpbmcoKTtyZXR1cm4gbD10aGlzLmJvdHRvbU92ZXJsYXkudXBkYXRlU3RhdGVPZlJlbmRlcmluZygpfHxsLGw9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkudXBkYXRlU3RhdGVPZlJlbmRlcmluZygpfHxsLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiYodGhpcy50'@; put 'b3BPdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiYobD10aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGwpLHRoaXMuYm90dG9tT3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmKGw9dGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXku'@; put 'dXBkYXRlU3RhdGVPZlJlbmRlcmluZygpfHxsKSksbH1yZWZyZXNoQWxsKCl7aWYodGhpcy53b3QuZHJhd24pe2lmKCF0aGlzLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpcmV0dXJuIHZvaWQgdGhpcy5kZXN0cm95KCk7dGhpcy53b3QuZHJhdyghMCksdGhpcy52ZXJ0aWNhbFNjcm9sbGlu'@; put 'ZyYmdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkub25TY3JvbGwoKSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmcmJnRoaXMudG9wT3ZlcmxheS5vblNjcm9sbCgpLHRoaXMudmVydGljYWxTY3JvbGxpbmc9ITEsdGhpcy5ob3Jpem9udGFsU2Nyb2xsaW5nPSExfX1yZWdpc3Rlckxpc3RlbmVycygp'@; put 'e2NvbnN0e3Jvb3REb2N1bWVudDpsLHJvb3RXaW5kb3c6YX09dGhpcy5kb21CaW5kaW5ncyx7bWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ6ZH09dGhpcy50b3BPdmVybGF5LHttYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudDpofT10aGlzLmlubGluZVN0YXJ0T3ZlcmxheTt0aGlzLmV2ZW50'@; put 'TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwuZG9jdW1lbnRFbGVtZW50LCJrZXlkb3duIix3ZT0+dGhpcy5vbktleURvd24od2UpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwuZG9jdW1lbnRFbGVtZW50LCJrZXl1cCIsKCk9PnRoaXMub25LZXlVcCgpKSx0aGlzLmV2'@; put 'ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsInZpc2liaWxpdHljaGFuZ2UiLCgpPT50aGlzLm9uS2V5VXAoKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihkLCJzY3JvbGwiLHdlPT50aGlzLm9uVGFibGVTY3JvbGwod2UpLHtwYXNzaXZlOiEwfSksZCE9PWgmJnRo'@; put 'aXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaCwic2Nyb2xsIix3ZT0+dGhpcy5vblRhYmxlU2Nyb2xsKHdlKSx7cGFzc2l2ZTohMH0pO2NvbnN0IGY9YS5kZXZpY2VQaXhlbFJhdGlvJiZhLmRldmljZVBpeGVsUmF0aW8+MSxfPXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQ9PT1hLFQ9'@; put 'dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRXaGVlbCIpLFc9e3Bhc3NpdmU6X307bGV0IHBlOyhUfHxmfHwhX04oKSkmJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy53dFRhYmxlLnd0Um9vdEVsZW1lbnQsIndoZWVsIix3ZT0+dGhpcy5vbkNsb25l'@; put 'V2hlZWwod2UsVCksVyksW3RoaXMudG9wT3ZlcmxheSx0aGlzLmJvdHRvbU92ZXJsYXksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXldLmZvckVhY2god2U9PntpZih3ZSYm'@; put 'd2UubmVlZEZ1bGxSZW5kZXIpe2NvbnN0e2hvbGRlcjpFZX09d2UuY2xvbmUud3RUYWJsZTt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEVlLCJ3aGVlbCIsWmU9PnRoaXMub25DbG9uZVdoZWVsKFplLFQpLFcpfX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu'@; put 'ZXIoYSwicmVzaXplIiwoKT0+e2NsZWFyVGltZW91dChwZSkscGU9c2V0VGltZW91dCgoKT0+e3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbldpbmRvd1Jlc2l6ZSIpfSwyMDApfSksX3x8dGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMud3RUYWJsZS53dFJvb3RFbGVtZW50'@; put 'LnBhcmVudEVsZW1lbnQpfWRlcmVnaXN0ZXJMaXN0ZW5lcnMoKXt0aGlzLmV2ZW50TWFuYWdlci5jbGVhckV2ZW50cyghMCl9b25UYWJsZVNjcm9sbChsKXtjb25zdCBhPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxkPXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9s'@; put 'bGFibGVFbGVtZW50LGg9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LGY9bC50YXJnZXQ7dGhpcy5rZXlQcmVzc2VkJiYoaCE9PWEmJmYhPT1hJiYhbC50YXJnZXQuY29udGFpbnMoaCl8fGQhPT1hJiZmIT09YSYmIWwudGFyZ2V0LmNvbnRhaW5zKGQpKXx8dGhp'@; put 'cy5zeW5jU2Nyb2xsUG9zaXRpb25zKGwpfW9uQ2xvbmVXaGVlbChsLGEpe2NvbnN0e3Jvb3RXaW5kb3c6ZH09dGhpcy5kb21CaW5kaW5ncyxoPXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LGY9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9s'@; put 'bGFibGVFbGVtZW50LF89bC50YXJnZXQsVD1mIT09ZCYmXyE9PWQmJiFfLmNvbnRhaW5zKGYpLFc9aCE9PWQmJl8hPT1kJiYhXy5jb250YWlucyhoKTtpZih0aGlzLmtleVByZXNzZWQmJihUfHxXKSlyZXR1cm47Y29uc3QgaWU9dGhpcy50cmFuc2xhdGVNb3VzZVdoZWVsVG9TY3JvbGwobCk7'@; put 'KGF8fHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQhPT1kJiZpZSkmJmwucHJldmVudERlZmF1bHQoKX1vbktleURvd24obCl7dGhpcy5rZXlQcmVzc2VkPW83KGwua2V5Q29kZSwiQVJST1dfVVB8QVJST1dfUklHSFR8QVJST1dfRE9XTnxBUlJPV19MRUZUIil9b25LZXlVcCgpe3RoaXMua2V5UHJl'@; put 'c3NlZD0hMX10cmFuc2xhdGVNb3VzZVdoZWVsVG9TY3JvbGwobCl7bGV0IGE9aXNOYU4obC5kZWx0YVkpPy0xKmwud2hlZWxEZWx0YVk6bC5kZWx0YVksZD1pc05hTihsLmRlbHRhWCk/LTEqbC53aGVlbERlbHRhWDpsLmRlbHRhWDsxPT09bC5kZWx0YU1vZGUmJihkKz1kKnRoaXMuYnJvd3Nl'@; put 'ckxpbmVIZWlnaHQsYSs9YSp0aGlzLmJyb3dzZXJMaW5lSGVpZ2h0KTtjb25zdCBoPXRoaXMuc2Nyb2xsVmVydGljYWxseShhKSxmPXRoaXMuc2Nyb2xsSG9yaXpvbnRhbGx5KGQpO3JldHVybiBofHxmfXNjcm9sbFZlcnRpY2FsbHkobCl7Y29uc3QgYT10aGlzLnNjcm9sbGFibGVFbGVtZW50'@; put 'LnNjcm9sbFRvcDtyZXR1cm4gdGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3ArPWwsYSE9PXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wfXNjcm9sbEhvcml6b250YWxseShsKXtjb25zdCBhPXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdDtyZXR1cm4gdGhp'@; put 'cy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0Kz1sLGEhPT10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnR9c3luY1Njcm9sbFBvc2l0aW9ucygpe2lmKHRoaXMuZGVzdHJveWVkKXJldHVybjtjb25zdHtyb290V2luZG93Omx9PXRoaXMuZG9tQmluZGluZ3MsYT10aGlzLnRv'@; put 'cE92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIsZD10aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5jbG9uZS53dFRhYmxlLmhvbGRlcixbaCxmXT1bdGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0LHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wXTtpZih0aGlzLmhvcml6'@; put 'b250YWxTY3JvbGxpbmc9YS5zY3JvbGxMZWZ0IT09aHx8dGhpcy5sYXN0U2Nyb2xsWCE9PWwuc2Nyb2xsWCx0aGlzLnZlcnRpY2FsU2Nyb2xsaW5nPWQuc2Nyb2xsVG9wIT09Znx8dGhpcy5sYXN0U2Nyb2xsWSE9PWwuc2Nyb2xsWSx0aGlzLmxhc3RTY3JvbGxYPWwuc2Nyb2xsWCx0aGlzLmxh'@; put 'c3RTY3JvbGxZPWwuc2Nyb2xsWSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmcpe2Euc2Nyb2xsTGVmdD1oO2NvbnN0IF89dGhpcy5ib3R0b21PdmVybGF5Lm5lZWRGdWxsUmVuZGVyP3RoaXMuYm90dG9tT3ZlcmxheS5jbG9uZS53dFRhYmxlLmhvbGRlcjpudWxsO18mJihfLnNjcm9sbExlZnQ9'@; put 'aCl9dGhpcy52ZXJ0aWNhbFNjcm9sbGluZyYmKGQuc2Nyb2xsVG9wPWYpLHRoaXMucmVmcmVzaEFsbCgpfXN5bmNTY3JvbGxXaXRoTWFzdGVyKCl7Y29uc3QgbD10aGlzLnRvcE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQse3Njcm9sbExlZnQ6YSxzY3JvbGxUb3A6ZH09bDt0'@; put 'aGlzLnRvcE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xsTGVmdD1hKSx0aGlzLmJvdHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xs'@; put 'TGVmdD1hKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmKHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyLnNjcm9sbFRvcD1kKX11cGRhdGVNYWluU2Nyb2xsYWJsZUVsZW1lbnRzKCl7dGhpcy5kZXJlZ2lzdGVyTGlzdGVuZXJzKCks'@; put 'dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkudXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50KCksdGhpcy50b3BPdmVybGF5LnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCgpLHRoaXMuYm90dG9tT3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmdGhpcy5ib3R0b21PdmVybGF5LnVwZGF0ZU1haW5T'@; put 'Y3JvbGxhYmxlRWxlbWVudCgpO2NvbnN0e3d0VGFibGU6bH09dGhpcyx7cm9vdFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzO3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnQ9ImhpZGRlbiI9PT1hLmdldENvbXB1dGVkU3R5bGUobC53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUpLmdldFByb3BlcnR5'@; put 'VmFsdWUoIm92ZXJmbG93Iik/bC5ob2xkZXI6cnkobC5UQUJMRSksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpfWRlc3Ryb3koKXt0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy50b3BPdmVybGF5LmRlc3Ryb3koKSx0aGlz'@; put 'LmJvdHRvbU92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tT3ZlcmxheS5kZXN0cm95KCksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZGVzdHJveSgpLHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5JiZ0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhp'@; put 'cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhpcy5kZXN0cm95ZWQ9ITB9cmVmcmVzaCgpe2xldCBsPWFyZ3VtZW50'@; put 'cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07dGhpcy51cGRhdGVMYXN0U3ByZWFkZXJTaXplKCkmJnRoaXMuYWRqdXN0RWxlbWVudHNTaXplKCksdGhpcy5ib3R0b21PdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbU92ZXJsYXkucmVmcmVzaChsKSx0aGlz'@; put 'LmlubGluZVN0YXJ0T3ZlcmxheS5yZWZyZXNoKGwpLHRoaXMudG9wT3ZlcmxheS5yZWZyZXNoKGwpLHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5JiZ0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5yZWZyZXNoKGwpLHRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJP'@; put 'dmVybGF5JiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZSYmdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkucmVmcmVzaChsKX11cGRhdGVMYXN0U3ByZWFkZXJTaXplKCl7Y29uc3QgbD10aGlzLnd0VGFibGUuc3ByZWFkZXIsYT1sLmNsaWVudFdp'@; put 'ZHRoLGQ9bC5jbGllbnRIZWlnaHQsaD1hIT09dGhpcy5zcHJlYWRlckxhc3RTaXplLndpZHRofHxkIT09dGhpcy5zcHJlYWRlckxhc3RTaXplLmhlaWdodDtyZXR1cm4gaCYmKHRoaXMuc3ByZWFkZXJMYXN0U2l6ZS53aWR0aD1hLHRoaXMuc3ByZWFkZXJMYXN0U2l6ZS5oZWlnaHQ9ZCksaH1h'@; put 'ZGp1c3RFbGVtZW50c1NpemUoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2NvbnN0e3d0Vmlld3BvcnQ6YX09dGhpcy53b3Qse3d0VGFibGU6ZH09dGhpcyxoPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbENv'@; put 'bHVtbnMiKSxmPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKSxfPWEuZ2V0Um93SGVhZGVyV2lkdGgoKSxUPWEuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCksVz1kLmhpZGVyLnN0eWxlO2lmKFcud2lkdGg9YCR7Xyt0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5zdW1DZWxs'@; put 'U2l6ZXMoMCxoKX1weGAsVy5oZWlnaHQ9YCR7VCt0aGlzLnRvcE92ZXJsYXkuc3VtQ2VsbFNpemVzKDAsZikrMX1weGAsdGhpcy5zY3JvbGxiYXJTaXplPjApe2NvbnN0e3Njcm9sbEhlaWdodDppZSxzY3JvbGxXaWR0aDpwZX09ZC53dFJvb3RFbGVtZW50LHtzY3JvbGxIZWlnaHQ6d2Usc2Ny'@; put 'b2xsV2lkdGg6RWV9PWQuaG9sZGVyO3RoaXMuaGFzU2Nyb2xsYmFyUmlnaHQ9aWU8d2UsdGhpcy5oYXNTY3JvbGxiYXJCb3R0b209cGU8RWUsdGhpcy5oYXNTY3JvbGxiYXJSaWdodCYmZC5oaWRlci5zY3JvbGxXaWR0aCt0aGlzLnNjcm9sbGJhclNpemU+cGU/dGhpcy5oYXNTY3JvbGxiYXJC'@; put 'b3R0b209ITA6dGhpcy5oYXNTY3JvbGxiYXJCb3R0b20mJmQuaGlkZXIuc2Nyb2xsSGVpZ2h0K3RoaXMuc2Nyb2xsYmFyU2l6ZT5pZSYmKHRoaXMuaGFzU2Nyb2xsYmFyUmlnaHQ9ITApfXRoaXMudG9wT3ZlcmxheS5hZGp1c3RFbGVtZW50c1NpemUobCksdGhpcy5pbmxpbmVTdGFydE92ZXJs'@; put 'YXkuYWRqdXN0RWxlbWVudHNTaXplKGwpLHRoaXMuYm90dG9tT3ZlcmxheS5hZGp1c3RFbGVtZW50c1NpemUobCl9YXBwbHlUb0RPTSgpe3RoaXMud3RUYWJsZS5pc1Zpc2libGUoKSYmKHRoaXMudG9wT3ZlcmxheS5hcHBseVRvRE9NKCksdGhpcy5ib3R0b21PdmVybGF5LmNsb25lJiZ0aGlz'@; put 'LmJvdHRvbU92ZXJsYXkuYXBwbHlUb0RPTSgpLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmFwcGx5VG9ET00oKSl9Z2V0UGFyZW50T3ZlcmxheShsKXtpZighbClyZXR1cm4gbnVsbDtsZXQgZD1udWxsO3JldHVybiBEbihbdGhpcy50b3BPdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5'@; put 'LHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0saD0+e2gmJmguY2xvbmUmJmguY2xvbmUud3RUYWJsZS5UQUJMRS5jb250YWlucyhsKSYmKGQ9aC5jbG9uZSl9KSxkfXN5bmNPdmVy'@; put 'bGF5VGFibGVDbGFzc05hbWVzKCl7Y29uc3QgbD10aGlzLnd0VGFibGUuVEFCTEU7RG4oW3RoaXMudG9wT3ZlcmxheSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSx0aGlzLmJvdHRvbU92ZXJsYXksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXksdGhpcy5ib3R0b21JbmxpbmVTdGFy'@; put 'dENvcm5lck92ZXJsYXldLGQ9PntkJiYoZC5jbG9uZS53dFRhYmxlLlRBQkxFLmNsYXNzTmFtZT1sLmNsYXNzTmFtZSl9KX19KHRoaXMsZCx0aGlzLmRvbUJpbmRpbmdzLHRoaXMud3RTZXR0aW5ncyx0aGlzLmV2ZW50TWFuYWdlcix0aGlzLnd0VGFibGUpLHRoaXMuZXhwb3J0U2V0dGluZ3NB'@; put 'c0NsYXNzTmFtZXMoKSx0aGlzLmZpbmRPcmlnaW5hbEhlYWRlcnMoKX1leHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcygpe2NvbnN0IGE9W10sZD1bXTtkcyh7cm93SGVhZGVyczoiaHRSb3dIZWFkZXJzIixjb2x1bW5IZWFkZXJzOiJodENvbHVtbkhlYWRlcnMifSwoaCxmKT0+e3RoaXMud3RT'@; put 'ZXR0aW5ncy5nZXRTZXR0aW5nKGYpLmxlbmd0aCYmZC5wdXNoKGgpLGEucHVzaChoKX0pLFdvKHRoaXMud3RUYWJsZS53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUsYSkscGkodGhpcy53dFRhYmxlLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSxkKX1nZXRWaWV3cG9ydERhbygpe2NvbnN0IGw9'@; put 'dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiBsfSxnZXQgdG9wT3ZlcmxheVRyaW1taW5nQ29udGFpbmVyKCl7cmV0dXJuIGwud3RPdmVybGF5cy50b3BPdmVybGF5LnRyaW1taW5nQ29udGFpbmVyfSxnZXQgaW5saW5lU3RhcnRPdmVybGF5VHJpbW1pbmdDb250YWluZXIoKXtyZXR1cm4g'@; put 'bC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS50cmltbWluZ0NvbnRhaW5lcn0sZ2V0IHRvcFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIGwud3RPdmVybGF5cy50b3BPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCl9LGdldCB0b3BQYXJlbnRPZmZzZXQoKXtyZXR1cm4gbC53dE92ZXJs'@; put 'YXlzLnRvcE92ZXJsYXkuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKX0sZ2V0IGlubGluZVN0YXJ0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gbC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpfSxnZXQgaW5saW5lU3RhcnRQYXJlbnRPZmZzZXQoKXtyZXR1'@; put 'cm4gbC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRUYWJsZVBhcmVudE9mZnNldCgpfSxnZXQgdG9wT3ZlcmxheSgpe3JldHVybiBsLnd0T3ZlcmxheXMudG9wT3ZlcmxheX0sZ2V0IGlubGluZVN0YXJ0T3ZlcmxheSgpe3JldHVybiBsLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRP'@; put 'dmVybGF5fSxnZXQgYm90dG9tT3ZlcmxheSgpe3JldHVybiBsLnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheX19fX1jbGFzcyB0Vntjb25zdHJ1Y3RvcihsKXtsIGluc3RhbmNlb2YgWU4/dGhpcy5fd290PWw6dGhpcy5faW5pdEZyb21TZXR0aW5ncyhsKX1faW5pdEZyb21TZXR0aW5ncyhsKXts'@; put 'LmZhY2FkZT1hPT57Y29uc3QgZD1uZXcgdFYoYSk7cmV0dXJuKCk9PmR9LHRoaXMuX3dvdD1uZXcgdFRlKGwudGFibGUsbCl9Z2V0IGd1aWQoKXtyZXR1cm4gdGhpcy5fd290Lmd1aWR9Z2V0IHJvb3REb2N1bWVudCgpe3JldHVybiB0aGlzLl93b3QuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50'@; put 'fWdldCByb290V2luZG93KCl7cmV0dXJuIHRoaXMuX3dvdC5kb21CaW5kaW5ncy5yb290V2luZG93fWdldCB3dFNldHRpbmdzKCl7cmV0dXJuIHRoaXMuX3dvdC53dFNldHRpbmdzfWdldCBjbG9uZVNvdXJjZSgpe3JldHVybiB0aGlzLl93b3QuY2xvbmVTb3VyY2V9Z2V0IGNsb25lT3Zlcmxh'@; put 'eSgpe3JldHVybiB0aGlzLl93b3QuY2xvbmVPdmVybGF5fWdldCBzZWxlY3Rpb25zKCl7cmV0dXJuIHRoaXMuX3dvdC5zZWxlY3Rpb25zfWdldCB3dFZpZXdwb3J0KCl7cmV0dXJuIHRoaXMuX3dvdC53dFZpZXdwb3J0fWdldCB3dE92ZXJsYXlzKCl7cmV0dXJuIHRoaXMuX3dvdC53dE92ZXJs'@; put 'YXlzfWdldCB3dFRhYmxlKCl7cmV0dXJuIHRoaXMuX3dvdC53dFRhYmxlfWdldCB3dEV2ZW50KCl7cmV0dXJuIHRoaXMuX3dvdC53dEV2ZW50fWdldCB3dFNjcm9sbCgpe3JldHVybiB0aGlzLl93b3Qud3RTY3JvbGx9Z2V0IGRyYXduKCl7cmV0dXJuIHRoaXMuX3dvdC5kcmF3bn1zZXQgZHJh'@; put 'd24obCl7dGhpcy5fd290LmRyYXduPWx9Z2V0IGRyYXdJbnRlcnJ1cHRlZCgpe3JldHVybiB0aGlzLl93b3QuZHJhd0ludGVycnVwdGVkfXNldCBkcmF3SW50ZXJydXB0ZWQobCl7dGhpcy5fd290LmRyYXdJbnRlcnJ1cHRlZD1sfWdldCBsYXN0TW91c2VPdmVyKCl7cmV0dXJuIHRoaXMuX3dv'@; put 'dC5sYXN0TW91c2VPdmVyfXNldCBsYXN0TW91c2VPdmVyKGwpe3RoaXMuX3dvdC5sYXN0TW91c2VPdmVyPWx9Z2V0IG1vbWVudHVtU2Nyb2xsaW5nKCl7cmV0dXJuIHRoaXMuX3dvdC5tb21lbnR1bVNjcm9sbGluZ31zZXQgbW9tZW50dW1TY3JvbGxpbmcobCl7dGhpcy5fd290Lm1vbWVudHVt'@; put 'U2Nyb2xsaW5nPWx9Z2V0IHRvdWNoQXBwbGllZCgpe3JldHVybiB0aGlzLl93b3QudG91Y2hBcHBsaWVkfXNldCB0b3VjaEFwcGxpZWQobCl7dGhpcy5fd290LnRvdWNoQXBwbGllZD1sfWdldCBkb21CaW5kaW5ncygpe3JldHVybiB0aGlzLl93b3QuZG9tQmluZGluZ3N9Z2V0IGV2ZW50TGlz'@; put 'dGVuZXJzKCl7cmV0dXJuIHRoaXMuX3dvdC5ldmVudExpc3RlbmVyc31zZXQgZXZlbnRMaXN0ZW5lcnMobCl7dGhpcy5fd290LmV2ZW50TGlzdGVuZXJzPWx9Z2V0IGV2ZW50TWFuYWdlcigpe3JldHVybiB0aGlzLl93b3QuZXZlbnRNYW5hZ2VyfWNyZWF0ZUNlbGxDb29yZHMobCxhKXtyZXR1'@; put 'cm4gdGhpcy5fd290LmNyZWF0ZUNlbGxDb29yZHMobCxhKX1jcmVhdGVDZWxsUmFuZ2UobCxhLGQpe3JldHVybiB0aGlzLl93b3QuY3JlYXRlQ2VsbFJhbmdlKGwsYSxkKX1kcmF3KCl7cmV0dXJuIHRoaXMuX3dvdC5kcmF3KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRz'@; put 'WzBdJiZhcmd1bWVudHNbMF0pLHRoaXN9Z2V0Q2VsbChsKXtyZXR1cm4gdGhpcy5fd290LmdldENlbGwobCxhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdKX1zY3JvbGxWaWV3cG9ydChsLGEsZCxoLGYpe3JldHVybiB0aGlzLl93b3Quc2Ny'@; put 'b2xsVmlld3BvcnQobCxhLGQsaCxmKX1zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEsZCl7cmV0dXJuIHRoaXMuX3dvdC5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEsZCl9c2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGwsYSxkKXtyZXR1cm4gdGhpcy5fd290LnNjcm9sbFZp'@; put 'ZXdwb3J0VmVydGljYWxseShsLGEsZCl9Z2V0Vmlld3BvcnQoKXtyZXR1cm4gdGhpcy5fd290LmdldFZpZXdwb3J0KCl9Z2V0T3ZlcmxheU5hbWUoKXtyZXR1cm4gdGhpcy5fd290LmNsb25lT3ZlcmxheT90aGlzLl93b3QuY2xvbmVPdmVybGF5LnR5cGU6Im1hc3RlciJ9ZXhwb3J0U2V0dGlu'@; put 'Z3NBc0NsYXNzTmFtZXMoKXtyZXR1cm4gdGhpcy5fd290LmV4cG9ydFNldHRpbmdzQXNDbGFzc05hbWVzKCl9dXBkYXRlKGwsYSl7cmV0dXJuIHRoaXMuX3dvdC53dFNldHRpbmdzLnVwZGF0ZShsLGEpLHRoaXN9Z2V0U2V0dGluZyhsLGEsZCxoLGYpe3JldHVybiB0aGlzLl93b3Qud3RTZXR0'@; put 'aW5ncy5nZXRTZXR0aW5nKGwsYSxkLGgsZil9aGFzU2V0dGluZyhsKXtyZXR1cm4gdGhpcy5fd290Lnd0U2V0dGluZ3MuaGFzU2V0dGluZyhsKX1kZXN0cm95KCl7dGhpcy5fd290LmRlc3Ryb3koKX19ZnVuY3Rpb24gc25lKGMpe2xldHtpc1NoaWZ0S2V5OmwsaXNMZWZ0Q2xpY2s6YSxpc1Jp'@; put 'Z2h0Q2xpY2s6ZCxjb29yZHM6aCxzZWxlY3Rpb246Zixjb250cm9sbGVyOl8sY2VsbENvb3Jkc0ZhY3Rvcnk6VH09Yztjb25zdCBXPWYuaXNTZWxlY3RlZCgpP2YuZ2V0U2VsZWN0ZWRSYW5nZSgpLmN1cnJlbnQoKTpudWxsLGllPWYuaXNTZWxlY3RlZEJ5Q29ybmVyKCkscGU9Zi5pc1NlbGVj'@; put 'dGVkQnlSb3dIZWFkZXIoKTtpZihsJiZXKWgucm93Pj0wJiZoLmNvbD49MCYmIV8uY2VsbD9mLnNldFJhbmdlRW5kKGgpOihpZXx8cGUpJiZoLnJvdz49MCYmaC5jb2w+PTAmJiFfLmNlbGw/Zi5zZXRSYW5nZUVuZChUKGgucm93LGguY29sKSk6aWUmJmgucm93PDAmJiFfLmNvbHVtbj9mLnNl'@; put 'dFJhbmdlRW5kKFQoVy50by5yb3csaC5jb2wpKTpwZSYmaC5jb2w8MCYmIV8ucm93P2Yuc2V0UmFuZ2VFbmQoVChoLnJvdyxXLnRvLmNvbCkpOighaWUmJiFwZSYmaC5jb2w8MHx8aWUmJmguY29sPDApJiYhXy5yb3c/Zi5zZWxlY3RSb3dzKE1hdGgubWF4KFcuZnJvbS5yb3csMCksaC5yb3cs'@; put 'aC5jb2wpOighaWUmJiFwZSYmaC5yb3c8MHx8cGUmJmgucm93PDApJiYhXy5jb2x1bW4mJmYuc2VsZWN0Q29sdW1ucyhNYXRoLm1heChXLmZyb20uY29sLDApLGguY29sLGgucm93KTtlbHNle2NvbnN0IHdlPSFmLmluSW5TZWxlY3Rpb24oaCksRWU9YXx8ZCYmd2U7aC5yb3c8MCYmaC5jb2w+'@; put 'PTAmJiFfLmNvbHVtbj9FZSYmZi5zZWxlY3RDb2x1bW5zKGguY29sLGguY29sLGgucm93KTpoLmNvbDwwJiZoLnJvdz49MCYmIV8ucm93P0VlJiZmLnNlbGVjdFJvd3MoaC5yb3csaC5yb3csaC5jb2wpOmguY29sPj0wJiZoLnJvdz49MCYmIV8uY2VsbD9FZSYmZi5zZXRSYW5nZVN0YXJ0KGgp'@; put 'OmguY29sPDAmJmgucm93PDAmJmYuc2VsZWN0QWxsKCEwLCEwKX19Y29uc3QgclRlPW5ldyBNYXAoW1sibW91c2Vkb3duIixzbmVdLFsibW91c2VvdmVyIixmdW5jdGlvbiBuVGUoYyl7bGV0e2lzTGVmdENsaWNrOmwsY29vcmRzOmEsc2VsZWN0aW9uOmQsY29udHJvbGxlcjpoLGNlbGxDb29y'@; put 'ZHNGYWN0b3J5OmZ9PWM7aWYoIWwpcmV0dXJuO2NvbnN0IF89ZC5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSxUPWQuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCksVz1kLnRhYmxlUHJvcHMuY291bnRDb2xzKCksaWU9ZC50YWJsZVByb3BzLmNvdW50Um93cygpO1QmJiFoLmNvbHVtbj9kLnNl'@; put 'dFJhbmdlRW5kKGYoaWUtMSxhLmNvbCkpOl8mJiFoLnJvdz9kLnNldFJhbmdlRW5kKGYoYS5yb3csVy0xKSk6aC5jZWxsfHxkLnNldFJhbmdlRW5kKGEpfV0sWyJ0b3VjaHN0YXJ0IixzbmVdXSk7ZnVuY3Rpb24gYW5lKGMsbCl7bGV0e2Nvb3JkczphLHNlbGVjdGlvbjpkLGNvbnRyb2xsZXI6'@; put 'aCxjZWxsQ29vcmRzRmFjdG9yeTpmfT1sO3JUZS5nZXQoYy50eXBlKSh7Y29vcmRzOmEsc2VsZWN0aW9uOmQsY29udHJvbGxlcjpoLGNlbGxDb29yZHNGYWN0b3J5OmYsaXNTaGlmdEtleTpjLnNoaWZ0S2V5LGlzTGVmdENsaWNrOmZrKGMpfHwidG91Y2hzdGFydCI9PT1jLnR5cGUsaXNSaWdo'@; put 'dENsaWNrOlVwKGMpfSl9Y29uc3QgbG5lPW5ldyBXZWFrTWFwLG5WPVN5bWJvbCgicm9vdEluc3RhbmNlIik7ZnVuY3Rpb24gclYoYyl7cmV0dXJuIGxuZS5oYXMoYyl9ZnVuY3Rpb24gY25lKGMsbCxhKXsoZnVuY3Rpb24gc1RlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBZcChjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gYVRlKGMpe3ZhciBsPWZ1bmN0aW9uIGxUZShjLGwpe2lmKCJvYmplY3Qi'@; put 'IT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRp'@; put 'dmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFs'@; put 'dWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIHVuZShjLGwpe3JldHVybiBmdW5jdGlvbiBjVGUoYyxsKXtyZXR1cm4gbC5nZXQ/bC5nZXQuY2FsbChjKTpsLnZhbHVlfShjLGhuZShjLGwsImdldCIpKX1mdW5jdGlvbiBk'@; put 'bmUoYyxsLGEpe3JldHVybiBmdW5jdGlvbiB1VGUoYyxsLGEpe2lmKGwuc2V0KWwuc2V0LmNhbGwoYyxhKTtlbHNle2lmKCFsLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtsLnZhbHVlPWF9fShjLGhuZShj'@; put 'LGwsInNldCIpLGEpLGF9ZnVuY3Rpb24gaG5lKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIrYSsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGwuZ2V0KGMpfWNvbnN0IHhnPW5ldyBXZWFrTWFwO3ZhciBpVj1u'@; put 'ZXcgV2Vha01hcCxvVj1uZXcgV2Vha01hcDtjb25zdCBoVGU9Y2xhc3MgZFRle2NvbnN0cnVjdG9yKGwpe1lwKHRoaXMsImluc3RhbmNlIix2b2lkIDApLFlwKHRoaXMsImV2ZW50TWFuYWdlciIsdm9pZCAwKSxZcCh0aGlzLCJzZXR0aW5ncyIsdm9pZCAwKSxZcCh0aGlzLCJUSEVBRCIsdm9p'@; put 'ZCAwKSxZcCh0aGlzLCJUQk9EWSIsdm9pZCAwKSxZcCh0aGlzLCJfd3QiLHZvaWQgMCksWXAodGhpcywiYWN0aXZlV3QiLHZvaWQgMCksY25lKHRoaXMsaVYse3dyaXRhYmxlOiEwLHZhbHVlOjB9KSxjbmUodGhpcyxvVix7d3JpdGFibGU6ITAsdmFsdWU6MH0pLFlwKHRoaXMsInBvc3Rwb25l'@; put 'ZEFkanVzdEVsZW1lbnRzU2l6ZSIsITEpLHRoaXMuaW5zdGFuY2U9bCx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgbGwodGhpcy5pbnN0YW5jZSksdGhpcy5zZXR0aW5ncz10aGlzLmluc3RhbmNlLmdldFNldHRpbmdzKCkseGcuc2V0KHRoaXMse3NlbGVjdGlvbk1vdXNlRG93bjohMSxtb3VzZURv'@; put 'd246dm9pZCAwLHRhYmxlOnZvaWQgMCxsYXN0V2lkdGg6MCxsYXN0SGVpZ2h0OjB9KSx0aGlzLmNyZWF0ZUVsZW1lbnRzKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLHRoaXMuaW5pdGlhbGl6ZVdhbGtvbnRhYmxlKCl9cmVuZGVyKCl7dGhpcy5pbnN0YW5jZS5pc1JlbmRlclN1c3BlbmRlZCgp'@; put 'fHwodGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVuZGVyIix0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlciksdGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemUmJih0aGlzLnBvc3Rwb25lZEFkanVzdEVsZW1lbnRzU2l6ZT0hMSx0aGlzLmFkanVzdEVsZW1lbnRzU2l6'@; put 'ZSghMCkpLHRoaXMuX3d0LmRyYXcoIXRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlbmRlciIsdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXIpLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyPSExLHRoaXMuaW5zdGFu'@; put 'Y2UucmVuZGVyQ2FsbD0hMSl9YWRqdXN0RWxlbWVudHNTaXplKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0aGlzLmluc3RhbmNlLmlzUmVuZGVyU3VzcGVuZGVkKCk/dGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1Np'@; put 'emU9ITA6dGhpcy5fd3Qud3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUobCl9Z2V0Q2VsbEF0Q29vcmRzKGwsYSl7Y29uc3QgZD10aGlzLl93dC5nZXRDZWxsKGwsYSk7cmV0dXJuIGQ8MD9udWxsOmR9c2Nyb2xsVmlld3BvcnQobCxhLGQsaCxmKXtyZXR1cm4gdGhpcy5fd3Quc2Nyb2xs'@; put 'Vmlld3BvcnQobCxhLGQsaCxmKX1zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEsZCl7cmV0dXJuIHRoaXMuX3d0LnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGwsYSxkKX1zY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkobCxhLGQpe3JldHVybiB0aGlzLl93dC5zY3JvbGxWaWV3cG9y'@; put 'dFZlcnRpY2FsbHkobCxhLGQpfWNyZWF0ZUVsZW1lbnRzKCl7Y29uc3QgbD14Zy5nZXQodGhpcykse3Jvb3RFbGVtZW50OmEscm9vdERvY3VtZW50OmR9PXRoaXMuaW5zdGFuY2UsaD1hLmdldEF0dHJpYnV0ZSgic3R5bGUiKTtoJiZhLnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbHN0eWxl'@; put 'IixoKSxwaShhLCJoYW5kc29udGFibGUiKSxsLnRhYmxlPWQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKSxwaShsLnRhYmxlLCJodENvcmUiKSx0aGlzLmluc3RhbmNlLmdldFNldHRpbmdzKCkudGFibGVDbGFzc05hbWUmJnBpKGwudGFibGUsdGhpcy5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLnRh'@; put 'YmxlQ2xhc3NOYW1lKSx0aGlzLlRIRUFEPWQuY3JlYXRlRWxlbWVudCgiVEhFQUQiKSxsLnRhYmxlLmFwcGVuZENoaWxkKHRoaXMuVEhFQUQpLHRoaXMuVEJPRFk9ZC5jcmVhdGVFbGVtZW50KCJUQk9EWSIpLGwudGFibGUuYXBwZW5kQ2hpbGQodGhpcy5UQk9EWSksdGhpcy5pbnN0YW5jZS50'@; put 'YWJsZT1sLnRhYmxlLHRoaXMuaW5zdGFuY2UuY29udGFpbmVyLmluc2VydEJlZm9yZShsLnRhYmxlLHRoaXMuaW5zdGFuY2UuY29udGFpbmVyLmZpcnN0Q2hpbGQpfXJlZ2lzdGVyRXZlbnRzKCl7Y29uc3QgbD14Zy5nZXQodGhpcykse3Jvb3RFbGVtZW50OmEscm9vdERvY3VtZW50OmQsc2Vs'@; put 'ZWN0aW9uOmh9PXRoaXMuaW5zdGFuY2UsZj1kLmRvY3VtZW50RWxlbWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlZG93biIsXz0+e2lmKGwuc2VsZWN0aW9uTW91c2VEb3duPSEwLCF0aGlzLmlzVGV4dFNlbGVjdGlvbkFsbG93ZWQoXy50YXJnZXQpKXtj'@; put 'b25zdHtyb290V2luZG93OlR9PXRoaXMuaW5zdGFuY2U7Zk4oVCksXy5wcmV2ZW50RGVmYXVsdCgpLFQuZm9jdXMoKX19KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNldXAiLCgpPT57bC5zZWxlY3Rpb25Nb3VzZURvd249ITF9KSx0aGlzLmV2ZW50TWFuYWdl'@; put 'ci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlbW92ZSIsXz0+e2wuc2VsZWN0aW9uTW91c2VEb3duJiYhdGhpcy5pc1RleHRTZWxlY3Rpb25BbGxvd2VkKF8udGFyZ2V0KSYmKHRoaXMuc2V0dGluZ3MuZnJhZ21lbnRTZWxlY3Rpb24mJmZOKHRoaXMuaW5zdGFuY2Uucm9vdFdpbmRvdyksXy5w'@; put 'cmV2ZW50RGVmYXVsdCgpKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZiwia2V5dXAiLF89PntoLmlzSW5Qcm9ncmVzcygpJiYhXy5zaGlmdEtleSYmaC5maW5pc2goKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZiwibW91c2V1cCIsXz0+e2gu'@; put 'aXNJblByb2dyZXNzKCkmJmZrKF8pJiZoLmZpbmlzaCgpLGwubW91c2VEb3duPSExLChzayhkLmFjdGl2ZUVsZW1lbnQpfHwhaC5pc1NlbGVjdGVkKCkmJiFoLmlzU2VsZWN0ZWRCeUFueUhlYWRlcigpJiYhYS5jb250YWlucyhfLnRhcmdldCkmJiFVcChfKSkmJnRoaXMuaW5zdGFuY2UudW5s'@; put 'aXN0ZW4oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZiwiY29udGV4dG1lbnUiLF89PntoLmlzSW5Qcm9ncmVzcygpJiZVcChfKSYmKGguZmluaXNoKCksbC5tb3VzZURvd249ITEpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihmLCJ0b3VjaGVu'@; put 'ZCIsKCk9PntoLmlzSW5Qcm9ncmVzcygpJiZoLmZpbmlzaCgpLGwubW91c2VEb3duPSExfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihmLCJtb3VzZWRvd24iLF89Pntjb25zdCBUPV8udGFyZ2V0LFc9Xy54fHxfLmNsaWVudFgsaWU9Xy55fHxfLmNsaWVudFk7bGV0IHBl'@; put 'PV8udGFyZ2V0O2lmKGwubW91c2VEb3dufHwhYXx8IXRoaXMuaW5zdGFuY2UudmlldylyZXR1cm47Y29uc3R7aG9sZGVyOndlfT10aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0VGFibGU7aWYocGU9PT13ZSl7Y29uc3QgWmU9TGMoZCk7aWYoZC5lbGVtZW50RnJvbVBvaW50KFcrWmUsaWUpIT09'@; put 'd2V8fGQuZWxlbWVudEZyb21Qb2ludChXLGllK1plKSE9PXdlKXJldHVybn1lbHNlIGZvcig7cGUhPT1mOyl7aWYobnVsbD09PXBlKXtpZihfLmlzVGFyZ2V0V2ViQ29tcG9uZW50KWJyZWFrO3JldHVybn1pZihwZT09PWEpcmV0dXJuO3BlPXBlLnBhcmVudE5vZGV9KCJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiB0aGlzLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cz90aGlzLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cyhUKTp0aGlzLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cyk/dGhpcy5pbnN0YW5jZS5kZXNlbGVjdENlbGwoKTp0aGlzLmluc3RhbmNlLmRlc3Ry'@; put 'b3lFZGl0b3IoITEsITEpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLnRhYmxlLCJzZWxlY3RzdGFydCIsXz0+e3RoaXMuc2V0dGluZ3MuZnJhZ21lbnRTZWxlY3Rpb258fGF5KF8udGFyZ2V0KXx8Xy5wcmV2ZW50RGVmYXVsdCgpfSl9dHJhbnNsYXRlRnJvbVJlbmRl'@; put 'cmFibGVUb1Zpc3VhbENvb3JkcyhsKXtsZXR7cm93OmEsY29sOmR9PWw7cmV0dXJuIHRoaXMuaW5zdGFuY2UuX2NyZWF0ZUNlbGxDb29yZHMoLi4udGhpcy50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoYSxkKSl9dHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbElu'@; put 'ZGV4KGwsYSl7bGV0IGQ9bD49MD90aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgobCk6bCxoPWE+PTA/dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGEpOmE7cmV0dXJuIG51'@; put 'bGw9PT1kJiYoZD1sKSxudWxsPT09aCYmKGg9YSksW2QsaF19Y291bnRSZW5kZXJhYmxlSW5kZXhlcyhsLGEpe2NvbnN0IGQ9TWF0aC5taW4obC5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpLGEpLGg9bC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZC0xLC0xKTtyZXR1cm4gbnVsbD09'@; put 'PWg/MDpsLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaCkrMX1jb3VudFJlbmRlcmFibGVDb2x1bW5zKCl7cmV0dXJuIHRoaXMuY291bnRSZW5kZXJhYmxlSW5kZXhlcyh0aGlzLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLHRoaXMuc2V0dGluZ3MubWF4Q29scyl9Y291bnRSZW5k'@; put 'ZXJhYmxlUm93cygpe3JldHVybiB0aGlzLmNvdW50UmVuZGVyYWJsZUluZGV4ZXModGhpcy5pbnN0YW5jZS5yb3dJbmRleE1hcHBlcix0aGlzLnNldHRpbmdzLm1heFJvd3MpfWNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyhsLGEpe3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuSW5kZXhlcyhs'@; put 'LGEsdGhpcy5pbnN0YW5jZS5yb3dJbmRleE1hcHBlcix0aGlzLmNvdW50UmVuZGVyYWJsZVJvd3MoKSl9Y291bnROb3RIaWRkZW5Db2x1bW5JbmRleGVzKGwsYSl7cmV0dXJuIHRoaXMuY291bnROb3RIaWRkZW5JbmRleGVzKGwsYSx0aGlzLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLHRo'@; put 'aXMuY291bnRSZW5kZXJhYmxlQ29sdW1ucygpKX1jb3VudE5vdEhpZGRlbkluZGV4ZXMobCxhLGQsaCl7aWYoaXNOYU4obCl8fGw8MClyZXR1cm4gMDtjb25zdCBmPWQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGwsYSksXz1kLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZik7aWYo'@; put 'IU51bWJlci5pc0ludGVnZXIoXykpcmV0dXJuIDA7bGV0IFQ9MDtyZXR1cm4gYTwwP1Q9XysxOmE+MCYmKFQ9aC1fKSxUfWNvdW50Tm90SGlkZGVuRml4ZWRDb2x1bW5zU3RhcnQoKXtjb25zdCBsPXRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCksYT1NYXRoLm1pbihwYXJzZUludCh0aGlzLnNl'@; put 'dHRpbmdzLmZpeGVkQ29sdW1uc1N0YXJ0LDEwKSxsKS0xO3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuQ29sdW1uSW5kZXhlcyhhLC0xKX1jb3VudE5vdEhpZGRlbkZpeGVkUm93c1RvcCgpe2NvbnN0IGw9dGhpcy5pbnN0YW5jZS5jb3VudFJvd3MoKSxhPU1hdGgubWluKHBhcnNlSW50KHRo'@; put 'aXMuc2V0dGluZ3MuZml4ZWRSb3dzVG9wLDEwKSxsKS0xO3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyhhLC0xKX1jb3VudE5vdEhpZGRlbkZpeGVkUm93c0JvdHRvbSgpe2NvbnN0IGw9dGhpcy5pbnN0YW5jZS5jb3VudFJvd3MoKSxhPU1hdGgubWF4KGwtcGFyc2VJbnQo'@; put 'dGhpcy5zZXR0aW5ncy5maXhlZFJvd3NCb3R0b20sMTApLDApO3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyhhLDEpfWlzTWFpblRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpe2NvbnN0IGw9dGhpcy5jb3VudE5vdEhpZGRlbkZpeGVkUm93c1RvcCgpK3RoaXMu'@; put 'Y291bnROb3RIaWRkZW5GaXhlZFJvd3NCb3R0b20oKSxhPXRoaXMuY291bnROb3RIaWRkZW5GaXhlZENvbHVtbnNTdGFydCgpO3JldHVybiB0aGlzLmluc3RhbmNlLmNvdW50UmVuZGVyZWRSb3dzKCk+bCYmdGhpcy5pbnN0YW5jZS5jb3VudFJlbmRlcmVkQ29scygpPmF9aW5pdGlhbGl6ZVdh'@; put 'bGtvbnRhYmxlKCl7Y29uc3QgbD14Zy5nZXQodGhpcyksYT17cnRsTW9kZTp0aGlzLmluc3RhbmNlLmlzUnRsKCksZXh0ZXJuYWxSb3dDYWxjdWxhdG9yOnRoaXMuaW5zdGFuY2UuZ2V0UGx1Z2luKCJhdXRvUm93U2l6ZSIpJiZ0aGlzLmluc3RhbmNlLmdldFBsdWdpbigiYXV0b1Jvd1NpemUi'@; put 'KS5pc0VuYWJsZWQoKSx0YWJsZTpsLnRhYmxlLGlzRGF0YVZpZXdJbnN0YW5jZTooKT0+clYodGhpcy5pbnN0YW5jZSkscHJldmVudE92ZXJmbG93OigpPT50aGlzLnNldHRpbmdzLnByZXZlbnRPdmVyZmxvdyxwcmV2ZW50V2hlZWw6KCk9PnRoaXMuc2V0dGluZ3MucHJldmVudFdoZWVsLHN0'@; put 'cmV0Y2hIOigpPT50aGlzLnNldHRpbmdzLnN0cmV0Y2hILGRhdGE6KF8sVCk9PnRoaXMuaW5zdGFuY2UuZ2V0RGF0YUF0Q2VsbCguLi50aGlzLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxJbmRleChfLFQpKSx0b3RhbFJvd3M6KCk9PnRoaXMuY291bnRSZW5kZXJhYmxlUm93cygp'@; put 'LHRvdGFsQ29sdW1uczooKT0+dGhpcy5jb3VudFJlbmRlcmFibGVDb2x1bW5zKCksZml4ZWRDb2x1bW5zU3RhcnQ6KCk9PnRoaXMuY291bnROb3RIaWRkZW5GaXhlZENvbHVtbnNTdGFydCgpLGZpeGVkUm93c1RvcDooKT0+dGhpcy5jb3VudE5vdEhpZGRlbkZpeGVkUm93c1RvcCgpLGZpeGVk'@; put 'Um93c0JvdHRvbTooKT0+dGhpcy5jb3VudE5vdEhpZGRlbkZpeGVkUm93c0JvdHRvbSgpLHNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheTooKT0+dGhpcy5zZXR0aW5ncy5maXhlZENvbHVtbnNTdGFydD4wfHxhLnJvd0hlYWRlcnMoKS5sZW5ndGg+MCxzaG91bGRSZW5kZXJUb3BPdmVy'@; put 'bGF5OigpPT50aGlzLnNldHRpbmdzLmZpeGVkUm93c1RvcD4wfHxhLmNvbHVtbkhlYWRlcnMoKS5sZW5ndGg+MCxzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5OigpPT50aGlzLnNldHRpbmdzLmZpeGVkUm93c0JvdHRvbT4wLG1pblNwYXJlUm93czooKT0+dGhpcy5zZXR0aW5ncy5taW5TcGFy'@; put 'ZVJvd3MscmVuZGVyQWxsUm93czp0aGlzLnNldHRpbmdzLnJlbmRlckFsbFJvd3Mscm93SGVhZGVyczooKT0+e2NvbnN0IF89W107cmV0dXJuIHRoaXMuaW5zdGFuY2UuaGFzUm93SGVhZGVycygpJiZfLnB1c2goKFQsVyk9Pntjb25zdCBpZT1UPj0wP3RoaXMuaW5zdGFuY2Uucm93SW5kZXhN'@; put 'YXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChUKTpUO3RoaXMuYXBwZW5kUm93SGVhZGVyKGllLFcpfSksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnMiLF8pLGRuZSh0aGlzLG9WLF8ubGVuZ3RoKSxffSxjb2x1bW5IZWFkZXJzOigp'@; put 'PT57Y29uc3QgXz1bXTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5oYXNDb2xIZWFkZXJzKCkmJl8ucHVzaCgoVCxXKT0+e2NvbnN0IGllPVQ+PTA/dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KFQpOlQ7dGhpcy5hcHBlbmRDb2xIZWFk'@; put 'ZXIoaWUsVyl9KSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyIsXyksZG5lKHRoaXMsaVYsXy5sZW5ndGgpLF99LGNvbHVtbldpZHRoOl89Pntjb25zdCBUPXRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJl'@; put 'bmRlcmFibGVJbmRleChfKTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5nZXRDb2xXaWR0aChudWxsPT09VD9fOlQpfSxyb3dIZWlnaHQ6Xz0+e2NvbnN0IFQ9dGhpcy5pbnN0YW5jZS5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF8pO3JldHVybiB0aGlzLmluc3Rh'@; put 'bmNlLmdldFJvd0hlaWdodChudWxsPT09VD9fOlQpfSxjZWxsUmVuZGVyZXI6KF8sVCxXKT0+e2NvbnN0W2llLHBlXT10aGlzLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxJbmRleChfLFQpLHdlPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLGll'@; put 'LHBlKTtsZXQgRWU9aWUsWmU9cGU7QXJyYXkuaXNBcnJheSh3ZSkmJihbRWUsWmVdPXdlKTtjb25zdCBpdD10aGlzLmluc3RhbmNlLmdldENlbGxNZXRhKEVlLFplKSxldD10aGlzLmluc3RhbmNlLmNvbFRvUHJvcChaZSk7bGV0IHl0PXRoaXMuaW5zdGFuY2UuZ2V0RGF0YUF0Um93UHJvcChF'@; put 'ZSxldCk7dGhpcy5pbnN0YW5jZS5oYXNIb29rKCJiZWZvcmVWYWx1ZVJlbmRlciIpJiYoeXQ9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlVmFsdWVSZW5kZXIiLHl0LGl0KSksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVuZGVyZXIiLFcsaWUscGUsZXQseXQsaXQpLHRo'@; put 'aXMuaW5zdGFuY2UuZ2V0Q2VsbFJlbmRlcmVyKGl0KSh0aGlzLmluc3RhbmNlLFcsaWUscGUsZXQseXQsaXQpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVuZGVyZXIiLFcsaWUscGUsZXQseXQsaXQpfSxzZWxlY3Rpb25zOnRoaXMuaW5zdGFuY2Uuc2VsZWN0aW9uLmhpZ2hsaWdo'@; put 'dCxoaWRlQm9yZGVyT25Nb3VzZURvd25PdmVyOigpPT50aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uLG9uV2luZG93UmVzaXplOigpPT57dGhpcy5pbnN0YW5jZSYmIXRoaXMuaW5zdGFuY2UuaXNEZXN0cm95ZWQmJnRoaXMuaW5zdGFuY2UucmVmcmVzaERpbWVuc2lvbnMoKX0sb25D'@; put 'b250YWluZXJFbGVtZW50UmVzaXplOigpPT57dGhpcy5pbnN0YW5jZSYmIXRoaXMuaW5zdGFuY2UuaXNEZXN0cm95ZWQmJnRoaXMuaW5zdGFuY2UucmVmcmVzaERpbWVuc2lvbnMoKX0sb25DZWxsTW91c2VEb3duOihfLFQsVyxpZSk9Pntjb25zdCBwZT10aGlzLnRyYW5zbGF0ZUZyb21SZW5k'@; put 'ZXJhYmxlVG9WaXN1YWxDb29yZHMoVCksd2U9e3JvdzohMSxjb2x1bW46ITEsY2VsbDohMX07dGhpcy5pbnN0YW5jZS5saXN0ZW4oKSx0aGlzLmFjdGl2ZVd0PWllLGwubW91c2VEb3duPSEwLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsXyxwZSxXLHdl'@; put 'KSwhYmcoXykmJihhbmUoXyx7Y29vcmRzOnBlLHNlbGVjdGlvbjp0aGlzLmluc3RhbmNlLnNlbGVjdGlvbixjb250cm9sbGVyOndlLGNlbGxDb29yZHNGYWN0b3J5OihFZSxaZSk9PnRoaXMuaW5zdGFuY2UuX2NyZWF0ZUNlbGxDb29yZHMoRWUsWmUpfSksdGhpcy5pbnN0YW5jZS5ydW5Ib29r'@; put 'cygiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLF8scGUsVyksdGhpcy5hY3RpdmVXdD10aGlzLl93dCl9LG9uQ2VsbENvbnRleHRNZW51OihfLFQsVyxpZSk9Pntjb25zdCBwZT10aGlzLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoVCk7dGhpcy5hY3RpdmVXdD1pZSxsLm1v'@; put 'dXNlRG93bj0hMSx0aGlzLmluc3RhbmNlLnNlbGVjdGlvbi5pc0luUHJvZ3Jlc3MoKSYmdGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24uZmluaXNoKCksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlT25DZWxsQ29udGV4dE1lbnUiLF8scGUsVyksIWJnKF8pJiYodGhpcy5pbnN0YW5jZS5y'@; put 'dW5Ib29rcygiYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSIsXyxwZSxXKSx0aGlzLmFjdGl2ZVd0PXRoaXMuX3d0KX0sb25DZWxsTW91c2VPdXQ6KF8sVCxXLGllKT0+e2NvbnN0IHBlPXRoaXMudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhUKTt0aGlzLmFjdGl2ZVd0PWll'@; put 'LHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZU9uQ2VsbE1vdXNlT3V0IixfLHBlLFcpLCFiZyhfKSYmKHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyT25DZWxsTW91c2VPdXQiLF8scGUsVyksdGhpcy5hY3RpdmVXdD10aGlzLl93dCl9LG9uQ2VsbE1vdXNlT3ZlcjooXyxULFcs'@; put 'aWUpPT57Y29uc3QgcGU9dGhpcy50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKFQpLHdlPXtyb3c6ITEsY29sdW1uOiExLGNlbGw6ITF9O3RoaXMuYWN0aXZlV3Q9aWUsdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlT25DZWxsTW91c2VPdmVyIixfLHBlLFcsd2Up'@; put 'LCFiZyhfKSYmKGwubW91c2VEb3duJiZhbmUoXyx7Y29vcmRzOnBlLHNlbGVjdGlvbjp0aGlzLmluc3RhbmNlLnNlbGVjdGlvbixjb250cm9sbGVyOndlLGNlbGxDb29yZHNGYWN0b3J5OihFZSxaZSk9PnRoaXMuaW5zdGFuY2UuX2NyZWF0ZUNlbGxDb29yZHMoRWUsWmUpfSksdGhpcy5pbnN0'@; put 'YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxNb3VzZU92ZXIiLF8scGUsVyksdGhpcy5hY3RpdmVXdD10aGlzLl93dCl9LG9uQ2VsbE1vdXNlVXA6KF8sVCxXLGllKT0+e2NvbnN0IHBlPXRoaXMudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhUKTt0aGlzLmFjdGl2ZVd0'@; put 'PWllLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZU9uQ2VsbE1vdXNlVXAiLF8scGUsVyksIWJnKF8pJiYhdGhpcy5pbnN0YW5jZS5pc0Rlc3Ryb3llZCYmKHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyT25DZWxsTW91c2VVcCIsXyxwZSxXKSx0aGlzLmFjdGl2ZVd0PXRoaXMu'@; put 'X3d0KX0sb25DZWxsQ29ybmVyTW91c2VEb3duOl89PntfLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURvd24iLF8pfSxvbkNlbGxDb3JuZXJEYmxDbGljazpfPT57Xy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5zdGFuY2Uu'@; put 'cnVuSG9va3MoImFmdGVyT25DZWxsQ29ybmVyRGJsQ2xpY2siLF8pfSxiZWZvcmVEcmF3OihfLFQpPT50aGlzLmJlZm9yZVJlbmRlcihfLFQpLG9uRHJhdzpfPT50aGlzLmFmdGVyUmVuZGVyKF8pLG9uU2Nyb2xsVmVydGljYWxseTooKT0+dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJT'@; put 'Y3JvbGxWZXJ0aWNhbGx5Iiksb25TY3JvbGxIb3Jpem9udGFsbHk6KCk9PnRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5Iiksb25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lczooKT0+dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlQ2Vs'@; put 'bENsYXNzTmFtZXMiKSxvbkJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlcjooXyxULFcpPT57Y29uc3QgaWU9dGhpcy5pbnN0YW5jZS5yb3dJbmRleE1hcHBlcixwZT1pZS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF8pLHdlPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZUhp'@; put 'Z2hsaWdodGluZ1Jvd0hlYWRlciIscGUsVCxXKTtyZXR1cm4gaWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChpZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgod2UsMSkpfSxvbkJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlcjooXyxULFcpPT57Y29uc3QgaWU9dGhpcy5pbnN0'@; put 'YW5jZS5jb2x1bW5JbmRleE1hcHBlcixwZT1pZS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF8pLHdlPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIscGUsVCxXKTtyZXR1cm4gaWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRl'@; put 'eChpZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgod2UsMSkpfSxvbkFmdGVyRHJhd1NlbGVjdGlvbjooXyxULFcpPT57bGV0IGllO2NvbnN0W3BlLHdlXT10aGlzLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxJbmRleChfLFQpLEVlPXRoaXMuaW5zdGFuY2Uuc2VsZWN0aW9uLmdl'@; put 'dFNlbGVjdGVkUmFuZ2UoKSxaZT1FZS5zaXplKCk7aWYoWmU+MCl7Y29uc3QgZXQ9RWUucGVla0J5SW5kZXgoKFc/PzApKzEtWmUpO2llPVtldC5mcm9tLnJvdyxldC5mcm9tLmNvbCxldC50by5yb3csZXQudG8uY29sXX1yZXR1cm4gdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJEcmF3'@; put 'U2VsZWN0aW9uIixwZSx3ZSxpZSxXKX0sb25CZWZvcmVEcmF3Qm9yZGVyczooXyxUKT0+e2NvbnN0W1csaWUscGUsd2VdPV8sRWU9W3RoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChXKSx0aGlzLmluc3RhbmNlLmNvbHVtbkluZGV4TWFw'@; put 'cGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoaWUpLHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChwZSksdGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHdlKV07'@; put 'cmV0dXJuIHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZURyYXdCb3JkZXJzIixFZSxUKX0sb25CZWZvcmVUb3VjaFNjcm9sbDooKT0+dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlVG91Y2hTY3JvbGwiKSxvbkFmdGVyTW9tZW50dW1TY3JvbGw6KCk9PnRoaXMuaW5zdGFuY2Uu'@; put 'cnVuSG9va3MoImFmdGVyTW9tZW50dW1TY3JvbGwiKSxvbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aDooXyxUKT0+e2NvbnN0IFc9dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KFQpO3JldHVybiB0aGlzLmluc3RhbmNlLnJ1'@; put 'bkhvb2tzKCJiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLF8sVyl9LG9uTW9kaWZ5Um93SGVhZGVyV2lkdGg6Xz0+dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5Um93SGVhZGVyV2lkdGgiLF8pLG9uTW9kaWZ5R2V0Q2VsbENvb3JkczooXyxULFcpPT57Y29uc3QgaWU9dGhpcy5p'@; put 'bnN0YW5jZS5yb3dJbmRleE1hcHBlcixwZT10aGlzLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLHdlPVQ+PTA/cGUuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChUKTpULEVlPV8+PTA/aWUuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChfKTpfLFplPXRoaXMuaW5zdGFuY2Uu'@; put 'cnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLEVlLHdlLFcpO2lmKEFycmF5LmlzQXJyYXkoWmUpKXtjb25zdFtpdCxldCx5dCxFdF09WmU7cmV0dXJuW2l0Pj0wP2llLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaWUuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGl0LDEpKTpp'@; put 'dCxldD49MD9wZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHBlLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChldCwxKSk6ZXQseXQ+PTA/aWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChpZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoeXQsLTEpKTp5dCxFdD49MD9wZS5n'@; put 'ZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHBlLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChFdCwtMSkpOkV0XX19LHZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOl89PntsZXQgVD10aGlzLnNldHRpbmdzLnZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0O2lmKCJhdXRvIj09PVQm'@; put 'JnRoaXMuc2V0dGluZ3MuZml4ZWRSb3dzVG9wJiYoVD0xMCksVD4wfHwiYXV0byI9PT1UKXtjb25zdCBXPXRoaXMuY291bnRSZW5kZXJhYmxlUm93cygpLGllPV8uc3RhcnRSb3cscGU9Xy5lbmRSb3c7aWYoIm51bWJlciI9PXR5cGVvZiBUKV8uc3RhcnRSb3c9TWF0aC5tYXgoaWUtVCwwKSxf'@; put 'LmVuZFJvdz1NYXRoLm1pbihwZStULFctMSk7ZWxzZSBpZigiYXV0byI9PT1UKXtjb25zdCB3ZT1NYXRoLmNlaWwocGUvVyoxMik7Xy5zdGFydFJvdz1NYXRoLm1heChpZS13ZSwwKSxfLmVuZFJvdz1NYXRoLm1pbihwZSt3ZSxXLTEpfX10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclZp'@; put 'ZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixfKX0sdmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGU6Xz0+e2xldCBUPXRoaXMuc2V0dGluZ3Mudmlld3BvcnRDb2x1bW5SZW5kZXJpbmdPZmZzZXQ7aWYoImF1dG8iPT09VCYmdGhpcy5zZXR0aW5ncy5maXhlZENvbHVtbnNTdGFy'@; put 'dCYmKFQ9MTApLFQ+MHx8ImF1dG8iPT09VCl7Y29uc3QgVz10aGlzLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSxpZT1fLnN0YXJ0Q29sdW1uLHBlPV8uZW5kQ29sdW1uO2lmKCJudW1iZXIiPT10eXBlb2YgVCYmKF8uc3RhcnRDb2x1bW49TWF0aC5tYXgoaWUtVCwwKSxfLmVuZENvbHVtbj1N'@; put 'YXRoLm1pbihwZStULFctMSkpLCJhdXRvIj09PVQpe2NvbnN0IHdlPU1hdGguY2VpbChwZS9XKjYpO18uc3RhcnRDb2x1bW49TWF0aC5tYXgoaWUtd2UsMCksXy5lbmRDb2x1bW49TWF0aC5taW4ocGUrd2UsVy0xKX19dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJWaWV3cG9ydENvbHVt'@; put 'bkNhbGN1bGF0b3JPdmVycmlkZSIsXyl9LHJvd0hlYWRlcldpZHRoOigpPT50aGlzLnNldHRpbmdzLnJvd0hlYWRlcldpZHRoLGNvbHVtbkhlYWRlckhlaWdodDooKT0+e2NvbnN0IF89dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5Q29sdW1uSGVhZGVySGVpZ2h0Iik7cmV0dXJuIHRo'@; put 'aXMuc2V0dGluZ3MuY29sdW1uSGVhZGVySGVpZ2h0fHxffX07dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlSW5pdFdhbGtvbnRhYmxlIixhKSx0aGlzLl93dD1uZXcgdFYoYSksdGhpcy5hY3RpdmVXdD10aGlzLl93dDtjb25zdCBkPXRoaXMuX3d0Lnd0VGFibGUuc3ByZWFkZXIse3dp'@; put 'ZHRoOmgsaGVpZ2h0OmZ9PXRoaXMuaW5zdGFuY2Uucm9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zZXRMYXN0U2l6ZShoLGYpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZCwibW91c2Vkb3duIixfPT57Xy50YXJnZXQ9PT1kJiYzPT09Xy53aGlj'@; put 'aCYmXy5zdG9wUHJvcGFnYXRpb24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZCwiY29udGV4dG1lbnUiLF89PntfLnRhcmdldD09PWQmJjM9PT1fLndoaWNoJiZfLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0'@; put 'aGlzLmluc3RhbmNlLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsImNsaWNrIiwoKT0+e3RoaXMuc2V0dGluZ3Mub2JzZXJ2ZURPTVZpc2liaWxpdHkmJnRoaXMuX3d0LmRyYXdJbnRlcnJ1cHRlZCYmKHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyPSEwLHRoaXMucmVuZGVyKCkp'@; put 'fSl9aXNUZXh0U2VsZWN0aW9uQWxsb3dlZChsKXtpZihheShsKSlyZXR1cm4hMDtjb25zdCBhPVZwKGwsdGhpcy5pbnN0YW5jZS52aWV3Ll93dC53dFRhYmxlLnNwcmVhZGVyKTtyZXR1cm4hISghMD09PXRoaXMuc2V0dGluZ3MuZnJhZ21lbnRTZWxlY3Rpb24mJmF8fCJjZWxsIj09PXRoaXMu'@; put 'c2V0dGluZ3MuZnJhZ21lbnRTZWxlY3Rpb24mJnRoaXMuaXNTZWxlY3RlZE9ubHlDZWxsKCkmJmF8fCF0aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ0aGlzLmlzQ2VsbEVkaXRlZCgpJiZ0aGlzLmlzU2VsZWN0ZWRPbmx5Q2VsbCgpKX1pc01vdXNlRG93bigpe3JldHVybiB4Zy5n'@; put 'ZXQodGhpcykubW91c2VEb3dufWlzU2VsZWN0ZWRPbmx5Q2VsbCgpe3ZhciBsLGE7cmV0dXJuIG51bGwhPT0obD1udWxsPT09KGE9dGhpcy5pbnN0YW5jZS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5pc1NpbmdsZSgpKSYmdm9pZCAwIT09bCYmbH1pc0Nl'@; put 'bGxFZGl0ZWQoKXtjb25zdCBsPXRoaXMuaW5zdGFuY2UuZ2V0QWN0aXZlRWRpdG9yKCk7cmV0dXJuIGwmJmwuaXNPcGVuZWQoKX1iZWZvcmVSZW5kZXIobCxhKXtsJiZ0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVWaWV3UmVuZGVyIix0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRl'@; put 'cixhKX1hZnRlclJlbmRlcihsKXtsJiZ0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclZpZXdSZW5kZXIiLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyKX1hcHBlbmRSb3dIZWFkZXIobCxhKXtpZihhLmZpcnN0Q2hpbGQpe2NvbnN0IGQ9YS5maXJzdENoaWxkO2lmKCFCbyhkLCJy'@; put 'ZWxhdGl2ZSIpKXJldHVybiBnMihhKSx2b2lkIHRoaXMuYXBwZW5kUm93SGVhZGVyKGwsYSk7dGhpcy51cGRhdGVDZWxsSGVhZGVyKGQucXVlcnlTZWxlY3RvcigiLnJvd0hlYWRlciIpLGwsdGhpcy5pbnN0YW5jZS5nZXRSb3dIZWFkZXIpfWVsc2V7Y29uc3R7cm9vdERvY3VtZW50OmQsZ2V0'@; put 'Um93SGVhZGVyOmh9PXRoaXMuaW5zdGFuY2UsZj1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLF89ZC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Zi5jbGFzc05hbWU9InJlbGF0aXZlIixfLmNsYXNzTmFtZT0icm93SGVhZGVyIix0aGlzLnVwZGF0ZUNlbGxIZWFkZXIoXyxsLGgpLGYuYXBwZW5kQ2hp'@; put 'bGQoXyksYS5hcHBlbmRDaGlsZChmKX10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckdldFJvd0hlYWRlciIsbCxhKX1hcHBlbmRDb2xIZWFkZXIobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5pbnN0YW5j'@; put 'ZS5nZXRDb2xIZWFkZXIsaD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MDtpZihhLmZpcnN0Q2hpbGQpe2NvbnN0IGY9YS5maXJzdENoaWxkO0JvKGYsInJlbGF0aXZlIik/dGhpcy51cGRhdGVDZWxsSGVhZGVyKGYucXVlcnlTZWxlY3Rv'@; put 'cigiLmNvbEhlYWRlciIpLGwsZCxoKTooZzIoYSksdGhpcy5hcHBlbmRDb2xIZWFkZXIobCxhLGQsaCkpfWVsc2V7Y29uc3R7cm9vdERvY3VtZW50OmZ9PXRoaXMuaW5zdGFuY2UsXz1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpLFQ9Zi5jcmVhdGVFbGVtZW50KCJzcGFuIik7Xy5jbGFzc05hbWU9'@; put 'InJlbGF0aXZlIixULmNsYXNzTmFtZT0iY29sSGVhZGVyIix0aGlzLnVwZGF0ZUNlbGxIZWFkZXIoVCxsLGQsaCksXy5hcHBlbmRDaGlsZChUKSxhLmFwcGVuZENoaWxkKF8pfXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Q29sSGVhZGVyIixsLGEsaCl9dXBkYXRlQ2VsbEhlYWRl'@; put 'cihsLGEsZCl7bGV0IGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjAsZj1hO2NvbnN0IF89dGhpcy5fd3Qud3RPdmVybGF5cy5nZXRQYXJlbnRPdmVybGF5KGwpfHx0aGlzLl93dDtsLnBhcmVudE5vZGUmJihCbyhsLCJjb2xIZWFkZXIi'@; put 'KT9mPV8ud3RUYWJsZS5jb2x1bW5GaWx0ZXIuc291cmNlVG9SZW5kZXJlZChhKTpCbyhsLCJyb3dIZWFkZXIiKSYmKGY9Xy53dFRhYmxlLnJvd0ZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGEpKSksZj4tMT9nZyhsLGQoYSxoKSk6KGpwKGwsU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApKSxwaShs'@; put 'LCJjb3JuZXJIZWFkZXIiKSl9bWF4aW11bVZpc2libGVFbGVtZW50V2lkdGgobCl7Y29uc3QgZD10aGlzLl93dC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZVdpZHRoKCktbDtyZXR1cm4gZD4wP2Q6MH1tYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQobCl7Y29uc3QgZD10aGlzLl93dC53dFZp'@; put 'ZXdwb3J0LmdldFdvcmtzcGFjZUhlaWdodCgpLWw7cmV0dXJuIGQ+MD9kOjB9c2V0TGFzdFNpemUobCxhKXtjb25zdCBkPXhnLmdldCh0aGlzKTtbZC5sYXN0V2lkdGgsZC5sYXN0SGVpZ2h0XT1bbCxhXX1nZXRMYXN0U2l6ZSgpe2NvbnN0IGw9eGcuZ2V0KHRoaXMpO3JldHVybnt3aWR0aDps'@; put 'Lmxhc3RXaWR0aCxoZWlnaHQ6bC5sYXN0SGVpZ2h0fX1nZXRGaXJzdEZ1bGx5VmlzaWJsZVJvdygpe3JldHVybiB0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodGhpcy5pbnN0YW5jZS52aWV3Ll93dC53dFNjcm9sbC5nZXRGaXJzdFZp'@; put 'c2libGVSb3coKSl9Z2V0TGFzdEZ1bGx5VmlzaWJsZVJvdygpe3JldHVybiB0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodGhpcy5pbnN0YW5jZS52aWV3Ll93dC53dFNjcm9sbC5nZXRMYXN0VmlzaWJsZVJvdygpKX1nZXRGaXJzdEZ1'@; put 'bGx5VmlzaWJsZUNvbHVtbigpe3JldHVybiB0aGlzLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodGhpcy5pbnN0YW5jZS52aWV3Ll93dC53dFNjcm9sbC5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSl9Z2V0TGFzdEZ1bGx5VmlzaWJsZUNv'@; put 'bHVtbigpe3JldHVybiB0aGlzLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodGhpcy5pbnN0YW5jZS52aWV3Ll93dC53dFNjcm9sbC5nZXRMYXN0VmlzaWJsZUNvbHVtbigpKX1nZXRDb2x1bW5IZWFkZXJzQ291bnQoKXtyZXR1cm4gdW5l'@; put 'KHRoaXMsaVYpfWdldFJvd0hlYWRlcnNDb3VudCgpe3JldHVybiB1bmUodGhpcyxvVil9ZGVzdHJveSgpe3RoaXMuX3d0LmRlc3Ryb3koKSx0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fSxmbmU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixzVj1mbmUubGVuZ3RoO2Z1bmN0aW9u'@; put 'IE1rKGMpe2xldCBkLGw9YysxLGE9IiI7Zm9yKDtsPjA7KWQ9KGwtMSklc1YsYT1TdHJpbmcuZnJvbUNoYXJDb2RlKDY1K2QpK2EsbD1wYXJzZUludCgobC1kKS9zViwxMCk7cmV0dXJuIGF9ZnVuY3Rpb24gZlRlKGMpe2xldCBsPTA7aWYoYylmb3IobGV0IGE9MCxkPWMubGVuZ3RoLTE7YTxj'@; put 'Lmxlbmd0aDthKz0xLGQtPTEpbCs9c1YqKmQqKGZuZS5pbmRleE9mKGNbYV0pKzEpO3JldHVybiBsLT0xLGx9ZnVuY3Rpb24gcFRlKCl7bGV0IGM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEwMCxsPWFyZ3VtZW50cy5sZW5ndGg+MSYm'@; put 'dm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo0O2NvbnN0IGE9W107bGV0IGQsaDtmb3IoZD0wO2Q8YztkKyspe2NvbnN0IGY9W107Zm9yKGg9MDtoPGw7aCsrKWYucHVzaChNayhoKSsoZCsxKSk7YS5wdXNoKGYpfXJldHVybiBhfWZ1bmN0aW9uIGdUZSgpe2xldCBjPWFyZ3Vt'@; put 'ZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToxMDAsbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NDtjb25zdCBhPVtdO2xldCBkLGg7Zm9yKGQ9MDtkPGM7ZCsrKXtjb25zdCBmPXt9O2Zvciho'@; put 'PTA7aDxsO2grKylmW2Bwcm9wJHtofWBdPU1rKGgpKyhkKzEpO2EucHVzaChmKX1yZXR1cm4gYX1mdW5jdGlvbiBtVGUoYyxsKXtjb25zdCBhPVtdO2xldCBkO2ZvcihsZXQgaD0wO2g8YztoKyspe2Q9W107Zm9yKGxldCBmPTA7ZjxsO2YrKylkLnB1c2goIiIpO2EucHVzaChkKX1yZXR1cm4g'@; put 'YX1mdW5jdGlvbiBhVihjKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxhPWM7Y29uc3QgZD1bXTtyZXR1cm4oIUFycmF5LmlzQXJyYXkoYyl8fCFBcnJheS5pc0FycmF5KGNbMF0pKSYmKGE9W2NdKSxhLmZvckVhY2goKGgs'@; put 'Zik9PntBcnJheS5pc0FycmF5KGgpP2guZm9yRWFjaCgoXyxUKT0+e2QucHVzaChbZitsLFQsX10pfSk6T2JqZWN0LmtleXMoaCkuZm9yRWFjaChfPT57ZC5wdXNoKFtmK2wsXyxoW19dXSl9KX0pLGR9ZnVuY3Rpb24gbFYoYyl7bGV0IGw9MDtyZXR1cm4gQXJyYXkuaXNBcnJheShjKSYmKGNb'@; put 'MF0mJkFycmF5LmlzQXJyYXkoY1swXSk/bD1jWzBdLmxlbmd0aDpjWzBdJiZ1cyhjWzBdKSYmKGw9dWsoY1swXSkpKSxsfWZ1bmN0aW9uIHBuZShjKXtyZXR1cm4hIShBcnJheS5pc0FycmF5KGMpJiZjLmxlbmd0aCYmYy5ldmVyeShsPT5BcnJheS5pc0FycmF5KGwpKSl9ZnVuY3Rpb24gZ25l'@; put 'KGMpe3JldHVybiEhKEFycmF5LmlzQXJyYXkoYykmJmMubGVuZ3RoJiZjLmV2ZXJ5KGw9PiJvYmplY3QiPT10eXBlb2YgbCYmIUFycmF5LmlzQXJyYXkobCkmJm51bGwhPT1sKSl9Y29uc3QgX1RlPWNsYXNzIHZUZXtjb25zdHJ1Y3RvcihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZv'@; put 'aWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W107dGhpcy5ob3Q9bCx0aGlzLmRhdGE9YSx0aGlzLmRhdGFUeXBlPSJhcnJheSIsdGhpcy5jb2xUb1Byb3A9KCk9Pnt9LHRoaXMucHJvcFRvQ29sPSgpPT57fX1tb2RpZnlSb3dEYXRhKGwpe2xldCBhO3JldHVybiB0aGlzLmhvdC5o'@; put 'YXNIb29rKCJtb2RpZnlSb3dEYXRhIikmJihhPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlSb3dEYXRhIixsKSksdm9pZCAwPT09YXx8TnVtYmVyLmlzSW50ZWdlcihhKT90aGlzLmRhdGFbbF06YX1nZXREYXRhKCl7cmV0dXJuIHRoaXMuZGF0YSYmMCE9PXRoaXMuZGF0YS5sZW5ndGg/dGhp'@; put 'cy5nZXRCeVJhbmdlKG51bGwsbnVsbCxhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdKTp0aGlzLmRhdGF9c2V0RGF0YShsKXt0aGlzLmRhdGE9bH1nZXRBdENvbHVtbihsKXtjb25zdCBhPVtdO3JldHVybiBEbih0aGlzLmRhdGEsKGQsaCk9'@; put 'Pntjb25zdCBmPXRoaXMuZ2V0QXRDZWxsKGgsbCk7YS5wdXNoKGYpfSksYX1nZXRBdFJvdyhsLGEsZCl7bGV0IGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtjb25zdCBmPXZvaWQgMD09PWEmJnZvaWQgMD09PWQ7bGV0IF89bnVsbCxU'@; put 'PW51bGw7aWYoXz10aGlzLm1vZGlmeVJvd0RhdGEobCksQXJyYXkuaXNBcnJheShfKSlUPVtdLGY/Xy5mb3JFYWNoKChXLGllKT0+e1RbaWVdPXRoaXMuZ2V0QXRQaHlzaWNhbENlbGwobCxpZSxfKX0pOnZvKGEsZCxXPT57VFtXLWFdPXRoaXMuZ2V0QXRQaHlzaWNhbENlbGwobCxXLF8pfSk7'@; put 'ZWxzZSBpZih1cyhfKXx8UmEoXykpaWYoVD1oP1tdOnt9LCFmfHxoKXtjb25zdCBpZT10aGlzLmNvdW50Rmlyc3RSb3dLZXlzKCktMTt2bygwLGllLHBlPT57Y29uc3Qgd2U9dGhpcy5jb2xUb1Byb3AocGUpO2lmKHBlPj0oYXx8MCkmJnBlPD0oZHx8aWUpJiYhTnVtYmVyLmlzSW50ZWdlcih3'@; put 'ZSkpe2NvbnN0IEVlPXRoaXMuZ2V0QXRQaHlzaWNhbENlbGwobCx3ZSxfKTtoP1QucHVzaChFZSk6Y2soVCx3ZSxFZSl9fSl9ZWxzZSBkcyhfLChXLGllKT0+e2NrKFQsaWUsdGhpcy5nZXRBdFBoeXNpY2FsQ2VsbChsLGllLF8pKX0pO3JldHVybiBUfXNldEF0Q2VsbChsLGEsZCl7aWYoIShs'@; put 'Pj10aGlzLmNvdW50Um93cygpfHxhPj10aGlzLmNvdW50Rmlyc3RSb3dLZXlzKCkpKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VEYXRhIikpe2NvbnN0IGg9X2coZCk7dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZURhdGEiLGwsYSxoLCJzZXQiKSxoLmlzVG91Y2hl'@; put 'ZCgpJiYoZD1oLnZhbHVlKX1OdW1iZXIuaXNJbnRlZ2VyKGEpP3RoaXMuZGF0YVtsXVthXT1kOmNrKHRoaXMuZGF0YVtsXSxhLGQpfX1nZXRBdFBoeXNpY2FsQ2VsbChsLGEsZCl7bGV0IGg9bnVsbDtpZihkJiYoaD0ic3RyaW5nIj09dHlwZW9mIGE/dnRlKGQsYSk6ImZ1bmN0aW9uIj09dHlw'@; put 'ZW9mIGE/YShkKTpkW2FdKSx0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VEYXRhIikpe2NvbnN0IGY9X2coaCk7dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZURhdGEiLGwsYSxmLCJnZXQiKSxmLmlzVG91Y2hlZCgpJiYoaD1mLnZhbHVlKX1yZXR1cm4gaH1nZXRBdENlbGwo'@; put 'bCxhKXtjb25zdCBkPXRoaXMubW9kaWZ5Um93RGF0YShsKTtyZXR1cm4gdGhpcy5nZXRBdFBoeXNpY2FsQ2VsbChsLHRoaXMuY29sVG9Qcm9wKGEpLGQpfWdldEJ5UmFuZ2UoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVs'@; put 'bCxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxoPSExLGY9bnVsbCxfPW51bGwsVD1udWxsLFc9bnVsbDtudWxsPT09bHx8'@; put 'bnVsbD09PWE/KGg9ITAsZj0wLFQ9dGhpcy5jb3VudFJvd3MoKS0xKTooZj1NYXRoLm1pbihsLnJvdyxhLnJvdyksXz1NYXRoLm1pbihsLmNvbCxhLmNvbCksVD1NYXRoLm1heChsLnJvdyxhLnJvdyksVz1NYXRoLm1heChsLmNvbCxhLmNvbCkpO2NvbnN0IGllPVtdO3JldHVybiB2byhmLFQs'@; put 'cGU9PntpZS5wdXNoKGg/dGhpcy5nZXRBdFJvdyhwZSx2b2lkIDAsdm9pZCAwLGQpOnRoaXMuZ2V0QXRSb3cocGUsXyxXLGQpKX0pLGllfWNvdW50Um93cygpe2lmKHRoaXMuaG90Lmhhc0hvb2soIm1vZGlmeVNvdXJjZUxlbmd0aCIpKXtjb25zdCBsPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2Rp'@; put 'ZnlTb3VyY2VMZW5ndGgiKTtpZihOdW1iZXIuaXNJbnRlZ2VyKGwpKXJldHVybiBsfXJldHVybiB0aGlzLmRhdGEubGVuZ3RofWNvdW50Rmlyc3RSb3dLZXlzKCl7cmV0dXJuIGxWKHRoaXMuZGF0YSl9ZGVzdHJveSgpe3RoaXMuZGF0YT1udWxsLHRoaXMuaG90PW51bGx9fSxtbmU9e19sb2Nh'@; put 'bEhvb2tzOk9iamVjdC5jcmVhdGUobnVsbCksYWRkTG9jYWxIb29rKGMsbCl7cmV0dXJuIHRoaXMuX2xvY2FsSG9va3NbY118fCh0aGlzLl9sb2NhbEhvb2tzW2NdPVtdKSx0aGlzLl9sb2NhbEhvb2tzW2NdLnB1c2gobCksdGhpc30scnVuTG9jYWxIb29rcyhjLGwsYSxkLGgsZixfKXtpZih0'@; put 'aGlzLl9sb2NhbEhvb2tzW2NdKXtjb25zdCBUPXRoaXMuX2xvY2FsSG9va3NbY10ubGVuZ3RoO2ZvcihsZXQgVz0wO1c8VDtXKyspYWsodGhpcy5fbG9jYWxIb29rc1tjXVtXXSx0aGlzLGwsYSxkLGgsZixfKX19LGNsZWFyTG9jYWxIb29rcygpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzPXt9'@; put 'LHRoaXN9fTtmaChtbmUsIk1JWElOX05BTUUiLCJsb2NhbEhvb2tzIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IE8wPW1uZTtjbGFzcyBFZ3tjb25zdHJ1Y3Rvcigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1sw'@; put 'XTpudWxsO3RoaXMuaW5kZXhlZFZhbHVlcz1bXSx0aGlzLmluaXRWYWx1ZU9yRm49bH1nZXRWYWx1ZXMoKXtyZXR1cm4gdGhpcy5pbmRleGVkVmFsdWVzfWdldFZhbHVlQXRJbmRleChsKXtjb25zdCBhPXRoaXMuaW5kZXhlZFZhbHVlcztpZihsPGEubGVuZ3RoKXJldHVybiBhW2xdfXNldFZh'@; put 'bHVlcyhsKXt0aGlzLmluZGV4ZWRWYWx1ZXM9bC5zbGljZSgpLHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9c2V0VmFsdWVBdEluZGV4KGwsYSl7cmV0dXJuIGw8dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0aCYmKHRoaXMuaW5kZXhlZFZhbHVlc1tsXT1hLHRoaXMucnVuTG9jYWxIb29r'@; put 'cygiY2hhbmdlIiksITApfWNsZWFyKCl7dGhpcy5zZXREZWZhdWx0VmFsdWVzKCl9Z2V0TGVuZ3RoKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWVzKCkubGVuZ3RofXNldERlZmF1bHRWYWx1ZXMoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVu'@; put 'dHNbMF06dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0aDt0aGlzLmluZGV4ZWRWYWx1ZXMubGVuZ3RoPTAsUmEodGhpcy5pbml0VmFsdWVPckZuKT92byhsLTEsYT0+dGhpcy5pbmRleGVkVmFsdWVzLnB1c2godGhpcy5pbml0VmFsdWVPckZuKGEpKSk6dm8obC0xLCgpPT50aGlzLmluZGV4ZWRW'@; put 'YWx1ZXMucHVzaCh0aGlzLmluaXRWYWx1ZU9yRm4pKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIpfWluaXQobCl7cmV0dXJuIHRoaXMuc2V0RGVmYXVsdFZhbHVlcyhsKSx0aGlzLnJ1bkxvY2FsSG9va3MoImluaXQiKSx0aGlzfWluc2VydCgpe3RoaXMucnVuTG9jYWxIb29rcygiY2hh'@; put 'bmdlIil9cmVtb3ZlKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKX1kZXN0cm95KCl7dGhpcy5jbGVhckxvY2FsSG9va3MoKSx0aGlzLmluZGV4ZWRWYWx1ZXM9bnVsbCx0aGlzLmluaXRWYWx1ZU9yRm49bnVsbH19ZnVuY3Rpb24gY1YoYyxsLGEpe3JldHVyblsuLi5jLnNsaWNlKDAs'@; put 'bCksLi4uYSwuLi5jLnNsaWNlKGwpXX1mdW5jdGlvbiBneShjLGwpe3JldHVybiBfMShjLGE9PiExPT09bC5pbmNsdWRlcyhhKSl9ZnVuY3Rpb24gdVYoYyxsKXtyZXR1cm4gY3MoYyxhPT5hLWwuZmlsdGVyKGQ9PmQ8YSkubGVuZ3RoKX1mdW5jdGlvbiBkVihjLGwpe2NvbnN0IGE9bFswXSxk'@; put 'PWwubGVuZ3RoO3JldHVybiBjcyhjLGg9Pmg+PWE/aCtkOmgpfVRhKEVnLE8wKTtjbGFzcyB2bmUgZXh0ZW5kcyBFZ3tjb25zdHJ1Y3Rvcigpe3N1cGVyKGw9PmwpfWluc2VydChsLGEpe2NvbnN0IGQ9ZFYodGhpcy5pbmRleGVkVmFsdWVzLGEpO3RoaXMuaW5kZXhlZFZhbHVlcz1jVihkLGws'@; put 'YSksc3VwZXIuaW5zZXJ0KGwsYSl9cmVtb3ZlKGwpe2NvbnN0IGE9Z3kodGhpcy5pbmRleGVkVmFsdWVzLGwpO3RoaXMuaW5kZXhlZFZhbHVlcz11VihhLGwpLHN1cGVyLnJlbW92ZShsKX19ZnVuY3Rpb24gaFYoYyxsLGEsZCl7Y29uc3QgaD1hLmxlbmd0aD9hWzBdOnZvaWQgMDtyZXR1cm5b'@; put 'Li4uYy5zbGljZSgwLGgpLC4uLmEubWFwKChmLF8pPT5SYShkKT9kKGYsXyk6ZCksLi4udm9pZCAwPT09aD9bXTpjLnNsaWNlKGgpXX1mdW5jdGlvbiBmVihjLGwpe3JldHVybiBfMShjLChhLGQpPT4hMT09PWwuaW5jbHVkZXMoZCkpfWNsYXNzIFdwIGV4dGVuZHMgRWd7aW5zZXJ0KGwsYSl7'@; put 'dGhpcy5pbmRleGVkVmFsdWVzPWhWKHRoaXMuaW5kZXhlZFZhbHVlcywwLGEsdGhpcy5pbml0VmFsdWVPckZuKSxzdXBlci5pbnNlcnQobCxhKX1yZW1vdmUobCl7dGhpcy5pbmRleGVkVmFsdWVzPWZWKHRoaXMuaW5kZXhlZFZhbHVlcyxsKSxzdXBlci5yZW1vdmUobCl9fWNsYXNzIHhrIGV4'@; put 'dGVuZHMgV3B7Y29uc3RydWN0b3IoKXtzdXBlcihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdKX1nZXRIaWRkZW5JbmRleGVzKCl7cmV0dXJuIEFsKHRoaXMuZ2V0VmFsdWVzKCksKGwsYSxkKT0+KGEmJmwucHVzaChkKSxsKSxbXSl9fWNs'@; put 'YXNzIEVrIGV4dGVuZHMgRWd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIHlUZShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gd1RlKGMpe3ZhciBsPWZ1bmN0aW9uIENUZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFy'@; put 'IGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUu'@; put 'Iil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZToh'@; put 'MCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSh0aGlzLCJvcmRlck9mSW5kZXhlcyIsW10pfWdldFZhbHVlcygpe3JldHVybiB0aGlzLm9yZGVyT2ZJbmRleGVzLm1hcChsPT50aGlzLmluZGV4ZWRWYWx1ZXNbbF0pfXNldFZhbHVlcyhsKXt0aGlzLm9yZGVyT2ZJbmRleGVzPVsuLi5BcnJheShs'@; put 'Lmxlbmd0aCkua2V5cygpXSxzdXBlci5zZXRWYWx1ZXMobCl9c2V0VmFsdWVBdEluZGV4KGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnRoaXMub3JkZXJPZkluZGV4ZXMubGVuZ3RoO3JldHVybiBsPHRoaXMuaW5kZXhl'@; put 'ZFZhbHVlcy5sZW5ndGgmJih0aGlzLmluZGV4ZWRWYWx1ZXNbbF09YSwhMT09PXRoaXMub3JkZXJPZkluZGV4ZXMuaW5jbHVkZXMobCkmJnRoaXMub3JkZXJPZkluZGV4ZXMuc3BsaWNlKGQsMCxsKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIpLCEwKX1jbGVhclZhbHVlKGwpe3RoaXMu'@; put 'b3JkZXJPZkluZGV4ZXM9Z3kodGhpcy5vcmRlck9mSW5kZXhlcyxbbF0pLFJhKHRoaXMuaW5pdFZhbHVlT3JGbik/c3VwZXIuc2V0VmFsdWVBdEluZGV4KGwsdGhpcy5pbml0VmFsdWVPckZuKGwpKTpzdXBlci5zZXRWYWx1ZUF0SW5kZXgobCx0aGlzLmluaXRWYWx1ZU9yRm4pfWdldExlbmd0'@; put 'aCgpe3JldHVybiB0aGlzLm9yZGVyT2ZJbmRleGVzLmxlbmd0aH1zZXREZWZhdWx0VmFsdWVzKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5vcmRlck9mSW5kZXhlcy5s'@; put 'ZW5ndGg9MCxzdXBlci5zZXREZWZhdWx0VmFsdWVzKGwpfWluc2VydChsLGEpe3RoaXMuaW5kZXhlZFZhbHVlcz1oVih0aGlzLmluZGV4ZWRWYWx1ZXMsMCxhLHRoaXMuaW5pdFZhbHVlT3JGbiksdGhpcy5vcmRlck9mSW5kZXhlcz1kVih0aGlzLm9yZGVyT2ZJbmRleGVzLGEpLHN1cGVyLmlu'@; put 'c2VydChsLGEpfXJlbW92ZShsKXt0aGlzLmluZGV4ZWRWYWx1ZXM9ZlYodGhpcy5pbmRleGVkVmFsdWVzLGwpLHRoaXMub3JkZXJPZkluZGV4ZXM9Z3kodGhpcy5vcmRlck9mSW5kZXhlcyxsKSx0aGlzLm9yZGVyT2ZJbmRleGVzPXVWKHRoaXMub3JkZXJPZkluZGV4ZXMsbCksc3VwZXIucmVt'@; put 'b3ZlKGwpfWdldEVudHJpZXMoKXtyZXR1cm4gdGhpcy5vcmRlck9mSW5kZXhlcy5tYXAobD0+W2wsdGhpcy5nZXRWYWx1ZUF0SW5kZXgobCldKX19Y2xhc3MgbXkgZXh0ZW5kcyBXcHtjb25zdHJ1Y3Rvcigpe3N1cGVyKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd'@; put 'JiZhcmd1bWVudHNbMF0pfWdldFRyaW1tZWRJbmRleGVzKCl7cmV0dXJuIEFsKHRoaXMuZ2V0VmFsdWVzKCksKGwsYSxkKT0+KGEmJmwucHVzaChkKSxsKSxbXSl9fWNvbnN0IF9uZT1uZXcgTWFwKFtbImhpZGluZyIseGtdLFsiaW5kZXgiLEVnXSxbImxpbmtlZFBoeXNpY2FsSW5kZXhUb1Zh'@; put 'bHVlIixFa10sWyJwaHlzaWNhbEluZGV4VG9WYWx1ZSIsV3BdLFsidHJpbW1pbmciLG15XV0pO2xldCBwVj0wO2NsYXNzIGdWe2NvbnN0cnVjdG9yKCl7dGhpcy5jb2xsZWN0aW9uPW5ldyBNYXB9cmVnaXN0ZXIobCxhKXshMT09PXRoaXMuY29sbGVjdGlvbi5oYXMobCkmJih0aGlzLmNvbGxl'@; put 'Y3Rpb24uc2V0KGwsYSksYS5hZGRMb2NhbEhvb2soImNoYW5nZSIsKCk9PnRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIixhKSkscFYrPTEpfXVucmVnaXN0ZXIobCl7Y29uc3QgYT10aGlzLmNvbGxlY3Rpb24uZ2V0KGwpO0tpKGEpJiYoYS5kZXN0cm95KCksdGhpcy5jb2xsZWN0aW9uLmRl'@; put 'bGV0ZShsKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsYSkscFYtPTEpfXVucmVnaXN0ZXJBbGwoKXt0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaCgobCxhKT0+dGhpcy51bnJlZ2lzdGVyKGEpKSx0aGlzLmNvbGxlY3Rpb24uY2xlYXIoKX1nZXQobCl7cmV0dXJuIExhKGwpP0FycmF5LmZy'@; put 'b20odGhpcy5jb2xsZWN0aW9uLnZhbHVlcygpKTp0aGlzLmNvbGxlY3Rpb24uZ2V0KGwpfWdldExlbmd0aCgpe3JldHVybiB0aGlzLmNvbGxlY3Rpb24uc2l6ZX1yZW1vdmVGcm9tRXZlcnkobCl7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goYT0+e2EucmVtb3ZlKGwpfSl9aW5zZXJ0VG9FdmVy'@; put 'eShsLGEpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGQ9PntkLmluc2VydChsLGEpfSl9aW5pdEV2ZXJ5KGwpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGE9PnthLmluaXQobCl9KX19VGEoZ1YsTzApO2NsYXNzIGJuZSBleHRlbmRzIGdWe2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIoKSx0aGlz'@; put 'Lm1lcmdlZFZhbHVlc0NhY2hlPVtdLHRoaXMuYWdncmVnYXRpb25GdW5jdGlvbj1sLHRoaXMuZmFsbGJhY2tWYWx1ZT1hfWdldE1lcmdlZFZhbHVlcygpe2lmKCEwPT09KCEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0pKXJldHVybiB0'@; put 'aGlzLm1lcmdlZFZhbHVlc0NhY2hlO2lmKDA9PT10aGlzLmdldExlbmd0aCgpKXJldHVybltdO2NvbnN0IGE9Y3ModGhpcy5nZXQoKSxmPT5mLmdldFZhbHVlcygpKSxkPVtdLGg9S2koYVswXSkmJmFbMF0ubGVuZ3RofHwwO2ZvcihsZXQgZj0wO2Y8aDtmKz0xKXtjb25zdCBfPVtdO2Zvcihs'@; put 'ZXQgVD0wO1Q8dGhpcy5nZXRMZW5ndGgoKTtUKz0xKV8ucHVzaChhW1RdW2ZdKTtkLnB1c2goXyl9cmV0dXJuIGNzKGQsdGhpcy5hZ2dyZWdhdGlvbkZ1bmN0aW9uKX1nZXRNZXJnZWRWYWx1ZUF0SW5kZXgobCxhKXtjb25zdCBkPXRoaXMuZ2V0TWVyZ2VkVmFsdWVzKGEpW2xdO3JldHVybiBL'@; put 'aShkKT9kOnRoaXMuZmFsbGJhY2tWYWx1ZX11cGRhdGVDYWNoZSgpe3RoaXMubWVyZ2VkVmFsdWVzQ2FjaGU9dGhpcy5nZXRNZXJnZWRWYWx1ZXMoITEpfX1mdW5jdGlvbiB5bmUoYyxsLGEpe2lmKCFsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIithKyIgcHJp'@; put 'dmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gbC5nZXQoYyl9dmFyIG1WPW5ldyBXZWFrTWFwO2NsYXNzIHduZXtjb25zdHJ1Y3RvcigpeyFmdW5jdGlvbiB4VGUoYyxsLGEpeyhmdW5jdGlvbiBFVGUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5u'@; put 'b3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfSh0aGlzLG1WLHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pfXN1YnNjcmliZShsKXtyZXR1cm4gdGhpcy5hZGRMb2NhbEhvb2soImNoYW5nZSIsbCksdGhp'@; put 'cy5fd3JpdGUoZnVuY3Rpb24gVFRlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uIERUZShjLGwpe3JldHVybiBsLmdldD9sLmdldC5jYWxsKGMpOmwudmFsdWV9KGMseW5lKGMsbCwiZ2V0IikpfSh0aGlzLG1WKSksdGhpc311bnN1YnNjcmliZSgpe3JldHVybiB0aGlzLnJ1bkxvY2FsSG9va3MoInVu'@; put 'c3Vic2NyaWJlIiksdGhpcy5jbGVhckxvY2FsSG9va3MoKSx0aGlzfV93cml0ZShsKXtyZXR1cm4gbC5sZW5ndGg+MCYmdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGwpLHRoaXN9X3dyaXRlSW5pdGlhbENoYW5nZXMobCl7IWZ1bmN0aW9uIGtUZShjLGwsYSl7cmV0dXJuIGZ1bmN0aW9u'@; put 'IEFUZShjLGwsYSl7aWYobC5zZXQpbC5zZXQuY2FsbChjLGEpO2Vsc2V7aWYoIWwud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2wudmFsdWU9YX19KGMseW5lKGMsbCwic2V0IiksYSksYX0odGhpcyxtVixs'@; put 'KX19ZnVuY3Rpb24gQ25lKGMsbCl7Y29uc3QgYT1bXTtsZXQgZD0wLGg9MDtmb3IoO2Q8Yy5sZW5ndGgmJmg8bC5sZW5ndGg7ZCsrLGgrKyljW2RdIT09bFtoXSYmYS5wdXNoKHtvcDoicmVwbGFjZSIsaW5kZXg6aCxvbGRWYWx1ZTpjW2RdLG5ld1ZhbHVlOmxbaF19KTtmb3IoO2Q8bC5sZW5n'@; put 'dGg7ZCsrKWEucHVzaCh7b3A6Imluc2VydCIsaW5kZXg6ZCxvbGRWYWx1ZTp2b2lkIDAsbmV3VmFsdWU6bFtkXX0pO2Zvcig7aDxjLmxlbmd0aDtoKyspYS5wdXNoKHtvcDoicmVtb3ZlIixpbmRleDpoLG9sZFZhbHVlOmNbaF0sbmV3VmFsdWU6dm9pZCAwfSk7cmV0dXJuIGF9ZnVuY3Rpb24g'@; put 'dnkoYyxsLGEpeyhmdW5jdGlvbiBJVGUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIG1kKGMsbCl7cmV0'@; put 'dXJuIGZ1bmN0aW9uIExUZShjLGwpe3JldHVybiBsLmdldD9sLmdldC5jYWxsKGMpOmwudmFsdWV9KGMsU25lKGMsbCwiZ2V0IikpfWZ1bmN0aW9uIGtrKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gUlRlKGMsbCxhKXtpZihsLnNldClsLnNldC5jYWxsKGMsYSk7ZWxzZXtpZighbC53cml0YWJs'@; put 'ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7bC52YWx1ZT1hfX0oYyxTbmUoYyxsLCJzZXQiKSxhKSxhfWZ1bmN0aW9uIFNuZShjLGwsYSl7aWYoIWwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0'@; put 'byAiK2ErIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBsLmdldChjKX1UYSh3bmUsTzApO3ZhciBBaz1uZXcgV2Vha01hcCxfeT1uZXcgV2Vha01hcCxUaz1uZXcgV2Vha01hcCxEaz1uZXcgV2Vha01hcCxJaz1uZXcgV2Vha01hcDtjbGFzcyBPVGV7Y29uc3RydWN0'@; put 'b3IoKXtsZXR7aW5pdGlhbEluZGV4VmFsdWU6bH09YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O3Z5KHRoaXMsQWsse3dyaXRhYmxlOiEwLHZhbHVlOm5ldyBTZXR9KSx2eSh0aGlzLF95LHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLHZ5'@; put 'KHRoaXMsVGsse3dyaXRhYmxlOiEwLHZhbHVlOltdfSksdnkodGhpcyxEayx7d3JpdGFibGU6ITAsdmFsdWU6ITF9KSx2eSh0aGlzLElrLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLGtrKHRoaXMsSWssbD8/ITEpfWNyZWF0ZU9ic2VydmVyKCl7Y29uc3QgbD1uZXcgd25lO3JldHVybiBtZCh0'@; put 'aGlzLEFrKS5hZGQobCksbC5hZGRMb2NhbEhvb2soInVuc3Vic2NyaWJlIiwoKT0+e21kKHRoaXMsQWspLmRlbGV0ZShsKX0pLGwuX3dyaXRlSW5pdGlhbENoYW5nZXMoQ25lKG1kKHRoaXMsX3kpLG1kKHRoaXMsVGspKSksbH1lbWl0KGwpe2xldCBhPW1kKHRoaXMsVGspOyghbWQodGhpcyxE'@; put 'ayl8fG1kKHRoaXMsX3kpLmxlbmd0aCE9PWwubGVuZ3RoKSYmKDA9PT1sLmxlbmd0aD9sPW5ldyBBcnJheShhLmxlbmd0aCkuZmlsbChtZCh0aGlzLElrKSk6a2sodGhpcyxfeSxuZXcgQXJyYXkobC5sZW5ndGgpLmZpbGwobWQodGhpcyxJaykpKSxtZCh0aGlzLERrKXx8KGtrKHRoaXMsRGss'@; put 'ITApLGE9bWQodGhpcyxfeSkpKTtjb25zdCBkPUNuZShhLGwpO21kKHRoaXMsQWspLmZvckVhY2goaD0+aC5fd3JpdGUoZCkpLGtrKHRoaXMsVGssbCl9fWNsYXNzIHZWe2NvbnN0cnVjdG9yKCl7dGhpcy5pbmRleGVzU2VxdWVuY2U9bmV3IHZuZSx0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rp'@; put 'b249bmV3IGJuZShsPT5sLnNvbWUoYT0+ITA9PT1hKSwhMSksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbj1uZXcgYm5lKGw9Pmwuc29tZShhPT4hMD09PWEpLCExKSx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbj1uZXcgZ1YsdGhpcy5oaWRpbmdDaGFuZ2VzT2JzZXJ2YWJsZT1uZXcgT1Rl'@; put 'KHtpbml0aWFsSW5kZXhWYWx1ZTohMX0pLHRoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZT1bXSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT1bXSx0aGlzLmlzQmF0Y2hlZD0hMSx0aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ9ITEsdGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPXZvaWQg'@; put 'MCx0aGlzLnRyaW1tZWRJbmRleGVzQ2hhbmdlZD0hMSx0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkPSExLHRoaXMucmVuZGVyYWJsZVBoeXNpY2FsSW5kZXhlc0NhY2hlPVtdLHRoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzQ2FjaGU9bmV3IE1hcCx0aGlzLmZyb21WaXN1YWxUb1Jl'@; put 'bmRlcmFibGVJbmRleGVzQ2FjaGU9bmV3IE1hcCx0aGlzLmluZGV4ZXNTZXF1ZW5jZS5hZGRMb2NhbEhvb2soImNoYW5nZSIsKCk9Pnt0aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ9ITAsdGhpcy51cGRhdGVDYWNoZSgpLHRoaXMucnVuTG9jYWxIb29rcygiaW5kZXhlc1NlcXVlbmNlQ2hh'@; put 'bmdlIix0aGlzLmluZGV4ZXNDaGFuZ2VTb3VyY2UpLHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIix0aGlzLmluZGV4ZXNTZXF1ZW5jZSxudWxsKX0pLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImNoYW5nZSIsbD0+e3RoaXMudHJpbW1lZEluZGV4ZXNDaGFu'@; put 'Z2VkPSEwLHRoaXMudXBkYXRlQ2FjaGUoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsbCx0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24pfSksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImNoYW5nZSIsbD0+e3RoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQ9'@; put 'ITAsdGhpcy51cGRhdGVDYWNoZSgpLHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIixsLHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24pfSksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGw9Pnt0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsbCx0'@; put 'aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbil9KX1zdXNwZW5kT3BlcmF0aW9ucygpe3RoaXMuaXNCYXRjaGVkPSEwfXJlc3VtZU9wZXJhdGlvbnMoKXt0aGlzLmlzQmF0Y2hlZD0hMSx0aGlzLnVwZGF0ZUNhY2hlKCl9Y3JlYXRlQ2hhbmdlc09ic2VydmVyKGwpe2lmKCJoaWRpbmciIT09bCl0'@; put 'aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGluZGV4IG1hcCB0eXBlICIke2x9Ii5gKTtyZXR1cm4gdGhpcy5oaWRpbmdDaGFuZ2VzT2JzZXJ2YWJsZS5jcmVhdGVPYnNlcnZlcigpfWNyZWF0ZUFuZFJlZ2lzdGVySW5kZXhNYXAobCxhLGQpe3JldHVybiB0aGlzLnJlZ2lzdGVyTWFwKGws'@; put 'ZnVuY3Rpb24gU1RlKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsO2lmKCFfbmUuaGFzKGMpKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3ZpZGVkIG1hcCB0eXBlICgiJHtjfSIpIGRvZXMgbm90IGV4aXN0LmApO3Jl'@; put 'dHVybiBuZXcoX25lLmdldChjKSkobCl9KGEsZCkpfXJlZ2lzdGVyTWFwKGwsYSl7aWYodGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLmdldChsKXx8dGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5nZXQobCl8fHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLmdldChsKSl0aHJvdyBFcnJv'@; put 'cihgTWFwIHdpdGggbmFtZSAiJHtsfSIgaGFzIGJlZW4gYWxyZWFkeSByZWdpc3RlcmVkLmApO2EgaW5zdGFuY2VvZiBteT90aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24ucmVnaXN0ZXIobCxhKTphIGluc3RhbmNlb2YgeGs/dGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5yZWdpc3Rlcihs'@; put 'LGEpOnRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnJlZ2lzdGVyKGwsYSk7Y29uc3QgZD10aGlzLmdldE51bWJlck9mSW5kZXhlcygpO3JldHVybiBkPjAmJmEuaW5pdChkKSxhfXVucmVnaXN0ZXJNYXAobCl7dGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXIobCksdGhp'@; put 'cy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyKGwpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXIobCl9dW5yZWdpc3RlckFsbCgpe3RoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyQWxsKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51'@; put 'bnJlZ2lzdGVyQWxsKCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24udW5yZWdpc3RlckFsbCgpfWdldFBoeXNpY2FsRnJvbVZpc3VhbEluZGV4KGwpe2NvbnN0IGE9dGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlW2xdO3JldHVybiBLaShhKT9hOm51bGx9Z2V0UGh5c2ljYWxGcm9tUmVu'@; put 'ZGVyYWJsZUluZGV4KGwpe2NvbnN0IGE9dGhpcy5yZW5kZXJhYmxlUGh5c2ljYWxJbmRleGVzQ2FjaGVbbF07cmV0dXJuIEtpKGEpP2E6bnVsbH1nZXRWaXN1YWxGcm9tUGh5c2ljYWxJbmRleChsKXtjb25zdCBhPXRoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzQ2FjaGUuZ2V0KGwp'@; put 'O3JldHVybiBLaShhKT9hOm51bGx9Z2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChsKXtyZXR1cm4gdGhpcy5nZXRWaXN1YWxGcm9tUGh5c2ljYWxJbmRleCh0aGlzLmdldFBoeXNpY2FsRnJvbVJlbmRlcmFibGVJbmRleChsKSl9Z2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChsKXtj'@; put 'b25zdCBhPXRoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5nZXQobCk7cmV0dXJuIEtpKGEpP2E6bnVsbH1nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJd'@; put 'O2lmKG51bGw9PT10aGlzLmdldFBoeXNpY2FsRnJvbVZpc3VhbEluZGV4KGwpKXJldHVybiBudWxsO2lmKHRoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5oYXMobCkpcmV0dXJuIGw7Y29uc3QgZj1BcnJheS5mcm9tKHRoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUlu'@; put 'ZGV4ZXNDYWNoZS5rZXlzKCkpO2xldCBfPS0xO3JldHVybiBfPWE+MD9mLmZpbmRJbmRleChUPT5UPmwpOmYucmV2ZXJzZSgpLmZpbmRJbmRleChUPT5UPGwpLC0xPT09Xz9kP3RoaXMuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGwsLWEsITEpOm51bGw6ZltfXX1pbml0VG9MZW5ndGgoKXts'@; put 'ZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKTt0aGlzLm5vdFRyaW1tZWRJbmRleGVzQ2FjaGU9Wy4uLm5ldyBBcnJheShsKS5rZXlzKCldLHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hl'@; put 'PVsuLi5uZXcgQXJyYXkobCkua2V5cygpXSx0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPSJpbml0Iix0aGlzLmluZGV4ZXNTZXF1ZW5jZS5pbml0KGwpLHRoaXMuaW5kZXhlc0NoYW5nZVNvdXJjZT12b2lkIDAsdGhpcy50cmltbWluZ01hcHNDb2xs'@; put 'ZWN0aW9uLmluaXRFdmVyeShsKSx0aGlzLnJlc3VtZU9wZXJhdGlvbnMoKSx0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5pbml0RXZlcnkobCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uaW5pdEV2ZXJ5KGwpLHRoaXMucmVzdW1lT3BlcmF0'@; put 'aW9ucygpLHRoaXMucnVuTG9jYWxIb29rcygiaW5pdCIpfWZpdFRvTGVuZ3RoKGwpe2NvbnN0IGE9dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKTtpZihsPGEpe2NvbnN0IGQ9Wy4uLkFycmF5KHRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCktbCkua2V5cygpXS5tYXAoaD0+aCtsKTt0aGlzLnJl'@; put 'bW92ZUluZGV4ZXMoZCl9ZWxzZSB0aGlzLmluc2VydEluZGV4ZXMoYSxsLWEpfWdldEluZGV4ZXNTZXF1ZW5jZSgpe3JldHVybiB0aGlzLmluZGV4ZXNTZXF1ZW5jZS5nZXRWYWx1ZXMoKX1zZXRJbmRleGVzU2VxdWVuY2UobCl7dm9pZCAwPT09dGhpcy5pbmRleGVzQ2hhbmdlU291cmNlJiYo'@; put 'dGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPSJ1cGRhdGUiKSx0aGlzLmluZGV4ZXNTZXF1ZW5jZS5zZXRWYWx1ZXMobCksInVwZGF0ZSI9PT10aGlzLmluZGV4ZXNDaGFuZ2VTb3VyY2UmJih0aGlzLmluZGV4ZXNDaGFuZ2VTb3VyY2U9dm9pZCAwKX1nZXROb3RUcmltbWVkSW5kZXhlcygpe3Jl'@; put 'dHVybiEwPT09KCEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0pP3RoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZTp0aGlzLmdldEluZGV4ZXNTZXF1ZW5jZSgpLmZpbHRlcihkPT4hMT09PXRoaXMuaXNUcmltbWVkKGQpKX1nZXROb3RU'@; put 'cmltbWVkSW5kZXhlc0xlbmd0aCgpe3JldHVybiB0aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzKCkubGVuZ3RofWdldE5vdEhpZGRlbkluZGV4ZXMoKXtyZXR1cm4hMD09PSghKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdKT90aGlzLm5v'@; put 'dEhpZGRlbkluZGV4ZXNDYWNoZTp0aGlzLmdldEluZGV4ZXNTZXF1ZW5jZSgpLmZpbHRlcihkPT4hMT09PXRoaXMuaXNIaWRkZW4oZCkpfWdldE5vdEhpZGRlbkluZGV4ZXNMZW5ndGgoKXtyZXR1cm4gdGhpcy5nZXROb3RIaWRkZW5JbmRleGVzKCkubGVuZ3RofWdldFJlbmRlcmFibGVJbmRl'@; put 'eGVzKCl7cmV0dXJuITA9PT0oIShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXSk/dGhpcy5yZW5kZXJhYmxlUGh5c2ljYWxJbmRleGVzQ2FjaGU6dGhpcy5nZXROb3RUcmltbWVkSW5kZXhlcygpLmZpbHRlcihkPT4hMT09PXRoaXMuaXNI'@; put 'aWRkZW4oZCkpfWdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCl7cmV0dXJuIHRoaXMuZ2V0UmVuZGVyYWJsZUluZGV4ZXMoKS5sZW5ndGh9Z2V0TnVtYmVyT2ZJbmRleGVzKCl7cmV0dXJuIHRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkubGVuZ3RofW1vdmVJbmRleGVzKGwsYSl7Im51bWJl'@; put 'ciI9PXR5cGVvZiBsJiYobD1bbF0pO2NvbnN0IGQ9Y3MobCxpZT0+dGhpcy5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleChpZSkpLGg9dGhpcy5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpLGY9bC5sZW5ndGgsXz1neSh0aGlzLmdldEluZGV4ZXNTZXF1ZW5jZSgpLGQpLFQ9Xy5maWx0'@; put 'ZXIoaWU9PiExPT09dGhpcy5pc1RyaW1tZWQoaWUpKTtsZXQgVz1fLmluZGV4T2YoVFtULmxlbmd0aC0xXSkrMTthK2Y8aCYmKFc9Xy5pbmRleE9mKFRbYV0pKSx0aGlzLmluZGV4ZXNDaGFuZ2VTb3VyY2U9Im1vdmUiLHRoaXMuc2V0SW5kZXhlc1NlcXVlbmNlKGNWKF8sVyxkKSksdGhpcy5p'@; put 'bmRleGVzQ2hhbmdlU291cmNlPXZvaWQgMH1pc1RyaW1tZWQobCl7cmV0dXJuIHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5nZXRNZXJnZWRWYWx1ZUF0SW5kZXgobCl9aXNIaWRkZW4obCl7cmV0dXJuIHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24uZ2V0TWVyZ2VkVmFsdWVBdEluZGV4'@; put 'KGwpfWluc2VydEluZGV4ZXMobCxhKXtjb25zdCBkPXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoKVtsXSxoPUtpKGQpP2Q6dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKSxmPXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkuaW5jbHVkZXMoZCk/dGhpcy5nZXRJbmRleGVzU2VxdWVuY2UoKS5p'@; put 'bmRleE9mKGQpOnRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCksXz1jcyhuZXcgQXJyYXkoYSkuZmlsbChoKSwoVCxXKT0+VCtXKTt0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPSJpbnNlcnQiLHRoaXMuaW5kZXhlc1NlcXVlbmNlLmluc2VydChmLF8p'@; put 'LHRoaXMuaW5kZXhlc0NoYW5nZVNvdXJjZT12b2lkIDAsdGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLmluc2VydFRvRXZlcnkoZixfKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLmluc2VydFRvRXZlcnkoZixfKSx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5pbnNlcnRUb0V2ZXJ5'@; put 'KGYsXyksdGhpcy5yZXN1bWVPcGVyYXRpb25zKCl9cmVtb3ZlSW5kZXhlcyhsKXt0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPSJyZW1vdmUiLHRoaXMuaW5kZXhlc1NlcXVlbmNlLnJlbW92ZShsKSx0aGlzLmluZGV4ZXNDaGFuZ2VTb3VyY2U9dm9p'@; put 'ZCAwLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5yZW1vdmVGcm9tRXZlcnkobCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5yZW1vdmVGcm9tRXZlcnkobCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5KGwpLHRoaXMucmVzdW1lT3BlcmF0aW9ucygp'@; put 'fXVwZGF0ZUNhY2hlKCl7KCEwPT09KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0pfHwhMT09PXRoaXMuaXNCYXRjaGVkJiYhMD09PSh0aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWR8fHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2VkfHx0'@; put 'aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkKSkmJih0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24udXBkYXRlQ2FjaGUoKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLnVwZGF0ZUNhY2hlKCksdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMo'@; put 'ITEpLHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90SGlkZGVuSW5kZXhlcyghMSksdGhpcy5yZW5kZXJhYmxlUGh5c2ljYWxJbmRleGVzQ2FjaGU9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlcyghMSksdGhpcy5jYWNoZUZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlcygp'@; put 'LHRoaXMuY2FjaGVGcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlcygpLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQmJnRoaXMuaGlkaW5nQ2hhbmdlc09ic2VydmFibGUuZW1pdCh0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdlZFZhbHVlcygpKSx0aGlzLnJ1bkxvY2FsSG9v'@; put 'a3MoImNhY2hlVXBkYXRlZCIse2luZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ6dGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkLHRyaW1tZWRJbmRleGVzQ2hhbmdlZDp0aGlzLnRyaW1tZWRJbmRleGVzQ2hhbmdlZCxoaWRkZW5JbmRleGVzQ2hhbmdlZDp0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2Vk'@; put 'fSksdGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSExLHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2VkPSExLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQ9ITEpfWNhY2hlRnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzKCl7Y29uc3QgbD10aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzTGVu'@; put 'Z3RoKCk7dGhpcy5mcm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXNDYWNoZS5jbGVhcigpO2ZvcihsZXQgYT0wO2E8bDthKz0xKXtjb25zdCBkPXRoaXMuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgoYSk7dGhpcy5mcm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXNDYWNoZS5zZXQoZCxhKX19'@; put 'Y2FjaGVGcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlcygpe2NvbnN0IGw9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5jbGVhcigpO2ZvcihsZXQgYT0wO2E8bDthKz0xKXtjb25zdCBkPXRoaXMuZ2V0'@; put 'UGh5c2ljYWxGcm9tUmVuZGVyYWJsZUluZGV4KGEpLGg9dGhpcy5nZXRWaXN1YWxGcm9tUGh5c2ljYWxJbmRleChkKTt0aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUuc2V0KGgsYSl9fX1mdW5jdGlvbiBNbmUoYyl7Y29uc3QgYT0vXihbYS16QS1aXXsyfSktKFthLXpB'@; put 'LVpdezJ9KSQvLmV4ZWMoYyk7cmV0dXJuIGE/YCR7YVsxXS50b0xvd2VyQ2FzZSgpfS0ke2FbMl0udG9VcHBlckNhc2UoKX1gOmN9ZnVuY3Rpb24geG5lKGMpe0tpKGMpJiZTTihBYWBMYW5ndWFnZSB3aXRoIGNvZGUgIiR7Y30iIHdhcyBub3QgZm91bmQuIFlvdSBzaG91bGQgcmVnaXN0ZXIg'@; put 'cGFydGljdWxhciBsYW5ndWFnZVx4MjAKICAgIGJlZm9yZSB1c2luZyBpdC4gUmVhZCBtb3JlIGFib3V0IHRoaXMgaXNzdWUgYXQ6IGh0dHBzOi8vZG9jcy5oYW5kc29udGFibGUuY29tL2kxOG4vbWlzc2luZy1sYW5ndWFnZS1jb2RlLmApfVRhKHZWLE8wKTtjb25zdHtyZWdpc3RlcjpIVGUs'@; put 'Z2V0VmFsdWVzOk5UZX09cGQoInBocmFzZUZvcm1hdHRlcnMiKTshZnVuY3Rpb24gVlRlKGMsbCl7SFRlKGMsbCl9KCJwbHVyYWxpemUiLGZ1bmN0aW9uIEZUZShjLGwpe3JldHVybiBBcnJheS5pc0FycmF5KGMpJiZOdW1iZXIuaXNJbnRlZ2VyKGwpP2NbbF06Y30pO2NvbnN0IEVuZT0iQ29u'@; put 'dGV4dE1lbnU6aXRlbXMiLF9WPWAke0VuZX0ubm9JdGVtc2AsYlY9YCR7RW5lfS5pbnNlcnRSb3dBYm92ZWAseVY9YCR7RW5lfS5pbnNlcnRSb3dCZWxvd2Asd1Y9YCR7RW5lfS5pbnNlcnRDb2x1bW5PblRoZUxlZnRgLENWPWAke0VuZX0uaW5zZXJ0Q29sdW1uT25UaGVSaWdodGAsU1Y9YCR7'@; put 'RW5lfS5yZW1vdmVSb3dgLE1WPWAke0VuZX0ucmVtb3ZlQ29sdW1uYCx4Vj1gJHtFbmV9LnVuZG9gLEVWPWAke0VuZX0ucmVkb2Asa1Y9YCR7RW5lfS5yZWFkT25seWAsQVY9YCR7RW5lfS5jbGVhckNvbHVtbmAsVFY9YCR7RW5lfS5jb3B5YCxEVj1gJHtFbmV9LmNvcHlXaXRoSGVhZGVyc2As'@; put 'SVY9YCR7RW5lfS5jb3B5V2l0aEdyb3VwSGVhZGVyc2AsTFY9YCR7RW5lfS5jb3B5SGVhZGVyc09ubHlgLFJWPWAke0VuZX0uY3V0YCxPVj1gJHtFbmV9LmZyZWV6ZUNvbHVtbmAsUFY9YCR7RW5lfS51bmZyZWV6ZUNvbHVtbmAsRlY9YCR7RW5lfS5tZXJnZUNlbGxzYCxIVj1gJHtFbmV9LnVu'@; put 'bWVyZ2VDZWxsc2AsTlY9YCR7RW5lfS5hZGRDb21tZW50YCxWVj1gJHtFbmV9LmVkaXRDb21tZW50YCxCVj1gJHtFbmV9LnJlbW92ZUNvbW1lbnRgLGpWPWAke0VuZX0ucmVhZE9ubHlDb21tZW50YCx6Vj1gJHtFbmV9LmFsaWduYCxVVj1gJHtFbmV9LmFsaWduLmxlZnRgLFpWPWAke0VuZX0u'@; put 'YWxpZ24uY2VudGVyYCxZVj1gJHtFbmV9LmFsaWduLnJpZ2h0YCxXVj1gJHtFbmV9LmFsaWduLmp1c3RpZnlgLEdWPWAke0VuZX0uYWxpZ24udG9wYCwkVj1gJHtFbmV9LmFsaWduLm1pZGRsZWAscVY9YCR7RW5lfS5hbGlnbi5ib3R0b21gLEtWPWAke0VuZX0uYm9yZGVyc2AsWFY9YCR7RW5l'@; put 'fS5ib3JkZXJzLnRvcGAsSlY9YCR7RW5lfS5ib3JkZXJzLnJpZ2h0YCxRVj1gJHtFbmV9LmJvcmRlcnMuYm90dG9tYCxlQj1gJHtFbmV9LmJvcmRlcnMubGVmdGAsdEI9YCR7RW5lfS5ib3JkZXJzLnJlbW92ZWAsbkI9YCR7RW5lfS5uZXN0ZWRIZWFkZXJzLmluc2VydENoaWxkUm93YCxyQj1g'@; put 'JHtFbmV9Lm5lc3RlZEhlYWRlcnMuZGV0YWNoRnJvbVBhcmVudGAsaUI9YCR7RW5lfS5oaWRlQ29sdW1uYCxvQj1gJHtFbmV9LnNob3dDb2x1bW5gLHNCPWAke0VuZX0uaGlkZVJvd2AsYUI9YCR7RW5lfS5zaG93Um93YCwkdT0iRmlsdGVyczoiLHlsPWAkeyR1fWNvbmRpdGlvbnNgLExrPWAk'@; put 'e3lsfS5ub25lYCxsQj1gJHt5bH0uaXNFbXB0eWAsY0I9YCR7eWx9LmlzTm90RW1wdHlgLHVCPWAke3lsfS5pc0VxdWFsVG9gLGRCPWAke3lsfS5pc05vdEVxdWFsVG9gLGhCPWAke3lsfS5iZWdpbnNXaXRoYCxmQj1gJHt5bH0uZW5kc1dpdGhgLHBCPWAke3lsfS5jb250YWluc2AsZ0I9YCR7'@; put 'eWx9LmRvZXNOb3RDb250YWluYCxqVGU9YCR7eWx9LmJ5VmFsdWVgLG1CPWAke3lsfS5ncmVhdGVyVGhhbmAsdkI9YCR7eWx9LmdyZWF0ZXJUaGFuT3JFcXVhbFRvYCxfQj1gJHt5bH0ubGVzc1RoYW5gLGJCPWAke3lsfS5sZXNzVGhhbk9yRXF1YWxUb2AseUI9YCR7eWx9LmlzQmV0d2VlbmAs'@; put 'd0I9YCR7eWx9LmlzTm90QmV0d2VlbmAsQ0I9YCR7eWx9LmFmdGVyYCxTQj1gJHt5bH0uYmVmb3JlYCxNQj1gJHt5bH0udG9kYXlgLHhCPWAke3lsfS50b21vcnJvd2AsRUI9YCR7eWx9Lnllc3RlcmRheWAsa0I9YCR7JHV9bGFiZWxzLmZpbHRlckJ5Q29uZGl0aW9uYCxBQj1gJHskdX1sYWJl'@; put 'bHMuZmlsdGVyQnlWYWx1ZWAsVEI9YCR7JHV9bGFiZWxzLmNvbmp1bmN0aW9uYCxSaz1gJHskdX1sYWJlbHMuZGlzanVuY3Rpb25gLE9rPWAkeyR1fXZhbHVlcy5ibGFua0NlbGxzYCxEQj1gJHskdX1idXR0b25zLnNlbGVjdEFsbGAsSUI9YCR7JHV9YnV0dG9ucy5jbGVhcmAsTEI9YCR7JHV9'@; put 'YnV0dG9ucy5va2AsUkI9YCR7JHV9YnV0dG9ucy5jYW5jZWxgLE9CPWAkeyR1fWJ1dHRvbnMucGxhY2Vob2xkZXIuc2VhcmNoYCxQQj1gJHskdX1idXR0b25zLnBsYWNlaG9sZGVyLnZhbHVlYCxGQj1gJHskdX1idXR0b25zLnBsYWNlaG9sZGVyLnNlY29uZFZhbHVlYCxrbmU9e2xhbmd1YWdl'@; put 'Q29kZToiZW4tVVMiLFtfVl06Ik5vIGF2YWlsYWJsZSBvcHRpb25zIixbYlZdOiJJbnNlcnQgcm93IGFib3ZlIixbeVZdOiJJbnNlcnQgcm93IGJlbG93Iixbd1ZdOiJJbnNlcnQgY29sdW1uIGxlZnQiLFtDVl06Ikluc2VydCBjb2x1bW4gcmlnaHQiLFtTVl06WyJSZW1vdmUgcm93IiwiUmVt'@; put 'b3ZlIHJvd3MiXSxbTVZdOlsiUmVtb3ZlIGNvbHVtbiIsIlJlbW92ZSBjb2x1bW5zIl0sW3hWXToiVW5kbyIsW0VWXToiUmVkbyIsW2tWXToiUmVhZCBvbmx5IixbQVZdOiJDbGVhciBjb2x1bW4iLFt6Vl06IkFsaWdubWVudCIsW1VWXToiTGVmdCIsW1pWXToiQ2VudGVyIixbWVZdOiJSaWdo'@; put 'dCIsW1dWXToiSnVzdGlmeSIsW0dWXToiVG9wIixbJFZdOiJNaWRkbGUiLFtxVl06IkJvdHRvbSIsW09WXToiRnJlZXplIGNvbHVtbiIsW1BWXToiVW5mcmVlemUgY29sdW1uIixbS1ZdOiJCb3JkZXJzIixbWFZdOiJUb3AiLFtKVl06IlJpZ2h0IixbUVZdOiJCb3R0b20iLFtlQl06IkxlZnQi'@; put 'LFt0Ql06IlJlbW92ZSBib3JkZXIocykiLFtOVl06IkFkZCBjb21tZW50IixbVlZdOiJFZGl0IGNvbW1lbnQiLFtCVl06IkRlbGV0ZSBjb21tZW50IixbalZdOiJSZWFkLW9ubHkgY29tbWVudCIsW0ZWXToiTWVyZ2UgY2VsbHMiLFtIVl06IlVubWVyZ2UgY2VsbHMiLFtUVl06IkNvcHkiLFtE'@; put 'Vl06WyJDb3B5IHdpdGggaGVhZGVyIiwiQ29weSB3aXRoIGhlYWRlcnMiXSxbSVZdOlsiQ29weSB3aXRoIGdyb3VwIGhlYWRlciIsIkNvcHkgd2l0aCBncm91cCBoZWFkZXJzIl0sW0xWXTpbIkNvcHkgaGVhZGVyIG9ubHkiLCJDb3B5IGhlYWRlcnMgb25seSJdLFtSVl06IkN1dCIsW25CXToi'@; put 'SW5zZXJ0IGNoaWxkIHJvdyIsW3JCXToiRGV0YWNoIGZyb20gcGFyZW50IixbaUJdOlsiSGlkZSBjb2x1bW4iLCJIaWRlIGNvbHVtbnMiXSxbb0JdOlsiU2hvdyBjb2x1bW4iLCJTaG93IGNvbHVtbnMiXSxbc0JdOlsiSGlkZSByb3ciLCJIaWRlIHJvd3MiXSxbYUJdOlsiU2hvdyByb3ciLCJT'@; put 'aG93IHJvd3MiXSxbTGtdOiJOb25lIixbbEJdOiJJcyBlbXB0eSIsW2NCXToiSXMgbm90IGVtcHR5IixbdUJdOiJJcyBlcXVhbCB0byIsW2RCXToiSXMgbm90IGVxdWFsIHRvIixbaEJdOiJCZWdpbnMgd2l0aCIsW2ZCXToiRW5kcyB3aXRoIixbcEJdOiJDb250YWlucyIsW2dCXToiRG9lcyBu'@; put 'b3QgY29udGFpbiIsW21CXToiR3JlYXRlciB0aGFuIixbdkJdOiJHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8iLFtfQl06Ikxlc3MgdGhhbiIsW2JCXToiTGVzcyB0aGFuIG9yIGVxdWFsIHRvIixbeUJdOiJJcyBiZXR3ZWVuIixbd0JdOiJJcyBub3QgYmV0d2VlbiIsW0NCXToiQWZ0ZXIiLFtT'@; put 'Ql06IkJlZm9yZSIsW01CXToiVG9kYXkiLFt4Ql06IlRvbW9ycm93IixbRUJdOiJZZXN0ZXJkYXkiLFtPa106IkJsYW5rIGNlbGxzIixba0JdOiJGaWx0ZXIgYnkgY29uZGl0aW9uIixbQUJdOiJGaWx0ZXIgYnkgdmFsdWUiLFtUQl06IkFuZCIsW1JrXToiT3IiLFtEQl06IlNlbGVjdCBhbGwi'@; put 'LFtJQl06IkNsZWFyIixbTEJdOiJPSyIsW1JCXToiQ2FuY2VsIixbT0JdOiJTZWFyY2giLFtQQl06IlZhbHVlIixbRkJdOiJTZWNvbmQgdmFsdWUifSx6VGU9VixIQj1rbmUubGFuZ3VhZ2VDb2RlLHtyZWdpc3RlcjpVVGUsZ2V0SXRlbTpBbmUsaGFzSXRlbTpaVGUsZ2V0VmFsdWVzOllUZX09'@; put 'cGQoImxhbmd1YWdlc0RpY3Rpb25hcmllcyIpO2Z1bmN0aW9uIFRuZShjLGwpe2xldCBhPWMsZD1sO3JldHVybiB1cyhjKSYmKGQ9YyxhPWQubGFuZ3VhZ2VDb2RlKSxmdW5jdGlvbiBXVGUoYyxsKXtjIT09SEImJmZ1bmN0aW9uIFBUZShjLGwpe2RzKGwsKGEsZCk9PntMYShjW2RdKSYmKGNb'@; put 'ZF09YSl9KX0obCxBbmUoSEIpKX0oYSxkKSxVVGUoYSx5dShkKSkseXUoZCl9ZnVuY3Rpb24gRG5lKGMpe3JldHVybiBOQihjKT95dShBbmUoYykpOm51bGx9ZnVuY3Rpb24gTkIoYyl7cmV0dXJuIFpUZShjKX1mdW5jdGlvbiBJbmUoYyxsLGEpe2NvbnN0IGQ9RG5lKGMpO2lmKG51bGw9PT1k'@; put 'KXJldHVybiBudWxsO2NvbnN0IGg9ZFtsXTtpZihMYShoKSlyZXR1cm4gbnVsbDtjb25zdCBmPWZ1bmN0aW9uICRUZShjLGwpe2xldCBhPWM7cmV0dXJuIERuKGZ1bmN0aW9uIEJUZSgpe3JldHVybiBOVGUoKX0oKSxkPT57YT1kKGMsbCl9KSxhfShoLGEpO3JldHVybiBBcnJheS5pc0FycmF5'@; put 'KGYpP2ZbMF06Zn1UbmUoa25lKTtjb25zdCBQaz0iYWN0aXZlLWhlYWRlciIsRms9ImFyZWEiLGJ5PSJjZWxsIixWQj0iZmlsbCIseXk9ImhlYWRlciIsQkI9ImN1c3RvbS1zZWxlY3Rpb24iLFFUZT1jbGFzcyBKVGV7Y29uc3RydWN0b3IobCxhKXt0aGlzLnNldHRpbmdzPWwsdGhpcy5jZWxs'@; put 'UmFuZ2U9YXx8bnVsbCx0aGlzLmluc3RhbmNlQm9yZGVycz17fSx0aGlzLmNsYXNzTmFtZXM9W3RoaXMuc2V0dGluZ3MuY2xhc3NOYW1lXSx0aGlzLmNsYXNzTmFtZUdlbmVyYXRvcj10aGlzLmxpbmVhckNsYXNzTmFtZUdlbmVyYXRvcih0aGlzLnNldHRpbmdzLmNsYXNzTmFtZSx0aGlzLnNl'@; put 'dHRpbmdzLmxheWVyTGV2ZWwpfWdldEJvcmRlcihsKXtyZXR1cm4gdGhpcy5pbnN0YW5jZUJvcmRlcnNbbC5ndWlkXXx8KHRoaXMuaW5zdGFuY2VCb3JkZXJzW2wuZ3VpZF09bmV3IGNsYXNzIEtUZXtjb25zdHJ1Y3RvcihsLGEpe2EmJih0aGlzLmV2ZW50TWFuYWdlcj1sLmV2ZW50TWFuYWdl'@; put 'cix0aGlzLmluc3RhbmNlPWwsdGhpcy53b3Q9bCx0aGlzLnNldHRpbmdzPWEsdGhpcy5tb3VzZURvd249ITEsdGhpcy5tYWluPW51bGwsdGhpcy50b3A9bnVsbCx0aGlzLmJvdHRvbT1udWxsLHRoaXMuc3RhcnQ9bnVsbCx0aGlzLmVuZD1udWxsLHRoaXMudG9wU3R5bGU9bnVsbCx0aGlzLmJv'@; put 'dHRvbVN0eWxlPW51bGwsdGhpcy5zdGFydFN0eWxlPW51bGwsdGhpcy5lbmRTdHlsZT1udWxsLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlPXt3aWR0aDoiNnB4IixoZWlnaHQ6IjZweCIsYm9yZGVyV2lkdGg6IjFweCIsYm9yZGVyU3R5bGU6InNvbGlkIixib3JkZXJDb2xvcjoiI0ZGRiJ9LHRo'@; put 'aXMuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQ9LXBhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLndpZHRoLDEwKS8yLHRoaXMuY29ybmVyPW51bGwsdGhpcy5jb3JuZXJTdHlsZT1udWxsLHRoaXMuY3JlYXRlQm9yZGVycyhhKSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCkpfXJlZ2lz'@; put 'dGVyTGlzdGVuZXJzKCl7Y29uc3QgbD10aGlzLndvdC5yb290RG9jdW1lbnQuYm9keTt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNlZG93biIsKCk9PnRoaXMub25Nb3VzZURvd24oKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3Vz'@; put 'ZXVwIiwoKT0+dGhpcy5vbk1vdXNlVXAoKSk7Zm9yKGxldCBhPTAsZD10aGlzLm1haW4uY2hpbGROb2Rlcy5sZW5ndGg7YTxkO2ErKyl0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMubWFpbi5jaGlsZE5vZGVzW2FdLCJtb3VzZWVudGVyIixmPT50aGlzLm9uTW91c2VF'@; put 'bnRlcihmLHRoaXMubWFpbi5jaGlsZE5vZGVzW2FdKSl9b25Nb3VzZURvd24oKXt0aGlzLm1vdXNlRG93bj0hMH1vbk1vdXNlVXAoKXt0aGlzLm1vdXNlRG93bj0hMX1vbk1vdXNlRW50ZXIobCxhKXtpZighdGhpcy5tb3VzZURvd258fCF0aGlzLndvdC5nZXRTZXR0aW5nKCJoaWRlQm9yZGVy'@; put 'T25Nb3VzZURvd25PdmVyIikpcmV0dXJuO2wucHJldmVudERlZmF1bHQoKSx2MihsKTtjb25zdCBkPXRoaXMsaD10aGlzLndvdC5yb290RG9jdW1lbnQuYm9keSxmPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7YS5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmV2ZW50TWFuYWdlci5hZGRF'@; put 'dmVudExpc3RlbmVyKGgsIm1vdXNlbW92ZSIsZnVuY3Rpb24gVChXKXsoZnVuY3Rpb24gXyhXKXtpZihXLmNsaWVudFk8TWF0aC5mbG9vcihmLnRvcCl8fFcuY2xpZW50WT5NYXRoLmNlaWwoZi50b3ArZi5oZWlnaHQpfHxXLmNsaWVudFg8TWF0aC5mbG9vcihmLmxlZnQpfHxXLmNsaWVudFg+'@; put 'TWF0aC5jZWlsKGYubGVmdCtmLndpZHRoKSlyZXR1cm4hMH0pKFcpJiYoZC5ldmVudE1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihoLCJtb3VzZW1vdmUiLFQpLGEuc3R5bGUuZGlzcGxheT0iYmxvY2siKX0pfWNyZWF0ZUJvcmRlcnMobCl7Y29uc3R7cm9vdERvY3VtZW50OmF9PXRoaXMu'@; put 'd290O3RoaXMubWFpbj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2NvbnN0IGQ9WyJ0b3AiLCJzdGFydCIsImJvdHRvbSIsImVuZCIsImNvcm5lciJdO2xldCBoPXRoaXMubWFpbi5zdHlsZTtoLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaC50b3A9MCxoLmxlZnQ9MDtmb3IobGV0IFQ9MDtUPDU7VCsr'@; put 'KXtjb25zdCBXPWRbVF0saWU9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZS5jbGFzc05hbWU9YHd0Qm9yZGVyICR7dGhpcy5zZXR0aW5ncy5jbGFzc05hbWV8fCIifWAsdGhpcy5zZXR0aW5nc1tXXSYmdGhpcy5zZXR0aW5nc1tXXS5oaWRlJiYoaWUuY2xhc3NOYW1lKz0iIGhpZGRlbiIpLGg9'@; put 'aWUuc3R5bGUsaC5iYWNrZ3JvdW5kQ29sb3I9dGhpcy5zZXR0aW5nc1tXXSYmdGhpcy5zZXR0aW5nc1tXXS5jb2xvcj90aGlzLnNldHRpbmdzW1ddLmNvbG9yOmwuYm9yZGVyLmNvbG9yLGguaGVpZ2h0PXRoaXMuc2V0dGluZ3NbV10mJnRoaXMuc2V0dGluZ3NbV10ud2lkdGg/YCR7dGhpcy5z'@; put 'ZXR0aW5nc1tXXS53aWR0aH1weGA6YCR7bC5ib3JkZXIud2lkdGh9cHhgLGgud2lkdGg9dGhpcy5zZXR0aW5nc1tXXSYmdGhpcy5zZXR0aW5nc1tXXS53aWR0aD9gJHt0aGlzLnNldHRpbmdzW1ddLndpZHRofXB4YDpgJHtsLmJvcmRlci53aWR0aH1weGAsdGhpcy5tYWluLmFwcGVuZENoaWxk'@; put 'KGllKX10aGlzLnRvcD10aGlzLm1haW4uY2hpbGROb2Rlc1swXSx0aGlzLnN0YXJ0PXRoaXMubWFpbi5jaGlsZE5vZGVzWzFdLHRoaXMuYm90dG9tPXRoaXMubWFpbi5jaGlsZE5vZGVzWzJdLHRoaXMuZW5kPXRoaXMubWFpbi5jaGlsZE5vZGVzWzNdLHRoaXMudG9wU3R5bGU9dGhpcy50b3Au'@; put 'c3R5bGUsdGhpcy5zdGFydFN0eWxlPXRoaXMuc3RhcnQuc3R5bGUsdGhpcy5ib3R0b21TdHlsZT10aGlzLmJvdHRvbS5zdHlsZSx0aGlzLmVuZFN0eWxlPXRoaXMuZW5kLnN0eWxlLHRoaXMuY29ybmVyPXRoaXMubWFpbi5jaGlsZE5vZGVzWzRdLHRoaXMuY29ybmVyLmNsYXNzTmFtZSs9IiBj'@; put 'b3JuZXIiLHRoaXMuY29ybmVyU3R5bGU9dGhpcy5jb3JuZXIuc3R5bGUsdGhpcy5jb3JuZXJTdHlsZS53aWR0aD10aGlzLmNvcm5lckRlZmF1bHRTdHlsZS53aWR0aCx0aGlzLmNvcm5lclN0eWxlLmhlaWdodD10aGlzLmNvcm5lckRlZmF1bHRTdHlsZS5oZWlnaHQsdGhpcy5jb3JuZXJTdHls'@; put 'ZS5ib3JkZXI9W3RoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlcldpZHRoLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlclN0eWxlLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlckNvbG9yXS5qb2luKCIgIiksbTIoKSYmdGhpcy5jcmVhdGVNdWx0aXBsZVNlbGVjdG9ySGFu'@; put 'ZGxlcygpLHRoaXMuZGlzYXBwZWFyKCk7Y29uc3R7d3RUYWJsZTpmfT10aGlzLndvdDtsZXQgXz1mLmJvcmRlcnNIb2xkZXI7X3x8KF89YS5jcmVhdGVFbGVtZW50KCJkaXYiKSxfLmNsYXNzTmFtZT0iaHRCb3JkZXJzIixmLmJvcmRlcnNIb2xkZXI9XyxmLnNwcmVhZGVyLmFwcGVuZENoaWxk'@; put 'KF8pKSxfLmFwcGVuZENoaWxkKHRoaXMubWFpbil9Y3JlYXRlTXVsdGlwbGVTZWxlY3RvckhhbmRsZXMoKXtjb25zdHtyb290RG9jdW1lbnQ6bH09dGhpcy53b3Q7dGhpcy5zZWxlY3Rpb25IYW5kbGVzPXt0b3A6bC5jcmVhdGVFbGVtZW50KCJESVYiKSx0b3BIaXRBcmVhOmwuY3JlYXRlRWxl'@; put 'bWVudCgiRElWIiksYm90dG9tOmwuY3JlYXRlRWxlbWVudCgiRElWIiksYm90dG9tSGl0QXJlYTpsLmNyZWF0ZUVsZW1lbnQoIkRJViIpfSx0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wLmNsYXNzTmFtZT0idG9wU2VsZWN0aW9uSGFuZGxlIHRvcExlZnRTZWxlY3Rpb25IYW5kbGUiLHRoaXMu'@; put 'c2VsZWN0aW9uSGFuZGxlcy50b3BIaXRBcmVhLmNsYXNzTmFtZT0idG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEgdG9wTGVmdFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tLmNsYXNzTmFtZT0iYm90dG9tU2VsZWN0aW9uSGFuZGxlIGJvdHRv'@; put 'bVJpZ2h0U2VsZWN0aW9uSGFuZGxlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tSGl0QXJlYS5jbGFzc05hbWU9ImJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIGJvdHRvbVJpZ2h0U2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEiLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXM9'@; put 'e3RvcDp0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wLnN0eWxlLHRvcEhpdEFyZWE6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcEhpdEFyZWEuc3R5bGUsYm90dG9tOnRoaXMuc2VsZWN0aW9uSGFuZGxlcy5ib3R0b20uc3R5bGUsYm90dG9tSGl0QXJlYTp0aGlzLnNlbGVjdGlvbkhhbmRsZXMu'@; put 'Ym90dG9tSGl0QXJlYS5zdHlsZX0sZHMoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaGVpZ2h0OiI0MHB4Iix3aWR0aDoiNDBweCIsImJvcmRlci1yYWRpdXMiOmAke3BhcnNlSW50KDQwLzEuNSwxMCl9cHhgfSwoXyxUKT0+e3RoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJl'@; put 'YVtUXT1fLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wSGl0QXJlYVtUXT1ffSksZHMoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaGVpZ2h0OiIxMHB4Iix3aWR0aDoiMTBweCIsImJvcmRlci1yYWRpdXMiOmAke3BhcnNlSW50KDEwLzEuNSwxMCl9cHhgLGJhY2tncm91bmQ6IiNGNUY1'@; put 'RkYiLGJvcmRlcjoiMXB4IHNvbGlkICM0Mjg1YzgifSwoXyxUKT0+e3RoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tW1RdPV8sdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BbVF09X30pLHRoaXMubWFpbi5hcHBlbmRDaGlsZCh0aGlzLnNlbGVjdGlvbkhhbmRsZXMu'@; put 'dG9wKSx0aGlzLm1haW4uYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbSksdGhpcy5tYWluLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0aW9uSGFuZGxlcy50b3BIaXRBcmVhKSx0aGlzLm1haW4uYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbUhp'@; put 'dEFyZWEpfWlzUGFydFJhbmdlKGwsYSl7Y29uc3QgZD10aGlzLndvdC5zZWxlY3Rpb25zLmNyZWF0ZU9yR2V0QXJlYSgpO3JldHVybiEoIWQuY2VsbFJhbmdlfHxsPT09ZC5jZWxsUmFuZ2UudG8ucm93JiZhPT09ZC5jZWxsUmFuZ2UudG8uY29sKX11cGRhdGVNdWx0aXBsZVNlbGVjdGlvbkhh'@; put 'bmRsZXNQb3NpdGlvbihsLGEsZCxoLGYsXyl7Y29uc3QgVz10aGlzLndvdC53dFNldHRpbmdzLmdldFNldHRpbmcoInJ0bE1vZGUiKT8icmlnaHQiOiJsZWZ0Iix7dG9wOmllLHRvcEhpdEFyZWE6cGUsYm90dG9tOndlLGJvdHRvbUhpdEFyZWE6RWV9PXRoaXMuc2VsZWN0aW9uSGFuZGxlcy5z'@; put 'dHlsZXMsWmU9cGFyc2VJbnQoaWUuYm9yZGVyV2lkdGgsMTApLGl0PXBhcnNlSW50KGllLndpZHRoLDEwKSxldD1wYXJzZUludChwZS53aWR0aCwxMCkseXQ9dGhpcy53b3Qud3RUYWJsZS5nZXRXaWR0aCgpLEV0PXRoaXMud290Lnd0VGFibGUuZ2V0SGVpZ2h0KCk7aWUudG9wPWAke3BhcnNl'@; put 'SW50KGQtaXQtMSwxMCl9cHhgLGllW1ddPWAke3BhcnNlSW50KGgtaXQtMSwxMCl9cHhgLHBlLnRvcD1gJHtwYXJzZUludChkLWV0LzQqMywxMCl9cHhgLHBlW1ddPWAke3BhcnNlSW50KGgtZXQvNCozLDEwKX1weGA7Y29uc3QgU3Q9TWF0aC5taW4ocGFyc2VJbnQoaCtmLDEwKSx5dC1pdC0y'@; put 'KlplKSxKdD1NYXRoLm1pbihwYXJzZUludChoK2YtZXQvNCwxMCkseXQtZXQtMipaZSk7d2VbV109YCR7U3R9cHhgLEVlW1ddPWAke0p0fXB4YDtjb25zdCBubj1NYXRoLm1pbihwYXJzZUludChkK18sMTApLEV0LWl0LTIqWmUpLHZuPU1hdGgubWluKHBhcnNlSW50KGQrXy1ldC80LDEwKSxF'@; put 'dC1ldC0yKlplKTt3ZS50b3A9YCR7bm59cHhgLEVlLnRvcD1gJHt2bn1weGAsdGhpcy5zZXR0aW5ncy5ib3JkZXIuY29ybmVyVmlzaWJsZSYmdGhpcy5zZXR0aW5ncy5ib3JkZXIuY29ybmVyVmlzaWJsZSgpPyhpZS5kaXNwbGF5PSJibG9jayIscGUuZGlzcGxheT0iYmxvY2siLHRoaXMuaXNQ'@; put 'YXJ0UmFuZ2UobCxhKT8od2UuZGlzcGxheT0ibm9uZSIsRWUuZGlzcGxheT0ibm9uZSIpOih3ZS5kaXNwbGF5PSJibG9jayIsRWUuZGlzcGxheT0iYmxvY2siKSk6KGllLmRpc3BsYXk9Im5vbmUiLHdlLmRpc3BsYXk9Im5vbmUiLHBlLmRpc3BsYXk9Im5vbmUiLEVlLmRpc3BsYXk9Im5vbmUi'@; put 'KSxsPT09dGhpcy53b3Qud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKXx8YT09PXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKT8oaWUuekluZGV4PSI5OTk5IixwZS56SW5kZXg9Ijk5OTkiKTooaWUuekluZGV4PSIiLHBlLnpJ'@; put 'bmRleD0iIil9YXBwZWFyKGwpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2NvbnN0e3d0VGFibGU6YSxyb290RG9jdW1lbnQ6ZCxyb290V2luZG93Omh9PXRoaXMud290O2xldCBmLF8sVCxXLGllLHBlO2NvbnN0IHdlPWEuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKTtmb3IobGV0IF9yPTA7X3I8'@; put 'd2U7X3IrPTEpe2NvbnN0IHZ0PWEucm93RmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoX3IpO2lmKHZ0Pj1sWzBdJiZ2dDw9bFsyXSl7Zj12dCxpZT1sWzBdO2JyZWFrfX1mb3IobGV0IF9yPXdlLTE7X3I+PTA7X3ItPTEpe2NvbnN0IHZ0PWEucm93RmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoX3Ip'@; put 'O2lmKHZ0Pj1sWzBdJiZ2dDw9bFsyXSl7Xz12dDticmVha319Y29uc3QgRWU9YS5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpO2ZvcihsZXQgX3I9MDtfcjxFZTtfcis9MSl7Y29uc3QgdnQ9YS5jb2x1bW5GaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShfcik7aWYodnQ+PWxbMV0mJnZ0PD1sWzNd'@; put 'KXtUPXZ0LHBlPWxbMV07YnJlYWt9fWZvcihsZXQgX3I9RWUtMTtfcj49MDtfci09MSl7Y29uc3QgdnQ9YS5jb2x1bW5GaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShfcik7aWYodnQ+PWxbMV0mJnZ0PD1sWzNdKXtXPXZ0O2JyZWFrfX1pZih2b2lkIDA9PT1mfHx2b2lkIDA9PT1UKXJldHVybiB2'@; put 'b2lkIHRoaXMuZGlzYXBwZWFyKCk7bGV0IFplPWEuZ2V0Q2VsbCh0aGlzLndvdC5jcmVhdGVDZWxsQ29vcmRzKGYsVCkpO2NvbnN0IGl0PWYhPT1ffHxUIT09VyxldD1pdD9hLmdldENlbGwodGhpcy53b3QuY3JlYXRlQ2VsbENvb3JkcyhfLFcpKTpaZSx5dD1LbChaZSksRXQ9aXQ/S2woZXQp'@; put 'Onl0LFN0PUtsKGEuVEFCTEUpLEp0PXdhKGEuVEFCTEUpLG5uPXl0LnRvcCx2bj15dC5sZWZ0LE5uPXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpO2xldCBjcj0wLElyPTA7aWYoTm4pe2NvbnN0IF9yPXdhKFplKTtJcj12bitfci1FdC5sZWZ0LGNyPWguaW5uZXJX'@; put 'aWR0aC12bi1fci0oaC5pbm5lcldpZHRoLVN0LmxlZnQtSnQpLTF9ZWxzZSBJcj1FdC5sZWZ0K3dhKGV0KS12bixjcj12bi1TdC5sZWZ0LTE7aWYodGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKGYsXykpe2NvbnN0IF9yPXRoaXMuZ2V0RGltZW5zaW9uc0Zyb21IZWFkZXIoImNvbHVtbnMi'@; put 'LFQsVyxpZSxTdCk7bGV0IHZ0PW51bGw7X3ImJihbdnQsY3IsSXJdPV9yKSx2dCYmKFplPXZ0KX1sZXQgRWk9bm4tU3QudG9wLTEsSWk9RXQudG9wK2FsKGV0KS1ubjtpZih0aGlzLmlzRW50aXJlUm93U2VsZWN0ZWQoVCxXKSl7Y29uc3QgX3I9dGhpcy5nZXREaW1lbnNpb25zRnJvbUhlYWRl'@; put 'cigicm93cyIsZixfLHBlLFN0KTtsZXQgdnQ9bnVsbDtfciYmKFt2dCxFaSxJaV09X3IpLHZ0JiYoWmU9dnQpfWNvbnN0IGZyPXpwKFplLGgpO3BhcnNlSW50KGZyLmJvcmRlclRvcFdpZHRoLDEwKT4wJiYoRWkrPTEsSWk9SWk+MD9JaS0xOjApLHBhcnNlSW50KGZyW05uPyJib3JkZXJSaWdo'@; put 'dFdpZHRoIjoiYm9yZGVyTGVmdFdpZHRoIl0sMTApPjAmJihjcis9MSxJcj1Jcj4wP0lyLTE6MCk7Y29uc3QgaWk9Tm4/InJpZ2h0IjoibGVmdCI7dGhpcy50b3BTdHlsZS50b3A9YCR7RWl9cHhgLHRoaXMudG9wU3R5bGVbaWldPWAke2NyfXB4YCx0aGlzLnRvcFN0eWxlLndpZHRoPWAke0ly'@; put 'fXB4YCx0aGlzLnRvcFN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLnN0YXJ0U3R5bGUudG9wPWAke0VpfXB4YCx0aGlzLnN0YXJ0U3R5bGVbaWldPWAke2NyfXB4YCx0aGlzLnN0YXJ0U3R5bGUuaGVpZ2h0PWAke0lpfXB4YCx0aGlzLnN0YXJ0U3R5bGUuZGlzcGxheT0iYmxvY2siO2NvbnN0'@; put 'IGpyPU1hdGguZmxvb3IodGhpcy5zZXR0aW5ncy5ib3JkZXIud2lkdGgvMik7dGhpcy5ib3R0b21TdHlsZS50b3A9RWkrSWktanIrInB4Iix0aGlzLmJvdHRvbVN0eWxlW2lpXT1gJHtjcn1weGAsdGhpcy5ib3R0b21TdHlsZS53aWR0aD1gJHtJcn1weGAsdGhpcy5ib3R0b21TdHlsZS5kaXNw'@; put 'bGF5PSJibG9jayIsdGhpcy5lbmRTdHlsZS50b3A9YCR7RWl9cHhgLHRoaXMuZW5kU3R5bGVbaWldPWNyK0lyLWpyKyJweCIsdGhpcy5lbmRTdHlsZS5oZWlnaHQ9YCR7SWkrMX1weGAsdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJibG9jayI7bGV0IE9uPXRoaXMuc2V0dGluZ3MuYm9yZGVyLmNv'@; put 'cm5lclZpc2libGU7T249ImZ1bmN0aW9uIj09dHlwZW9mIE9uP09uKHRoaXMuc2V0dGluZ3MubGF5ZXJMZXZlbCk6T247Y29uc3QgRnI9dGhpcy53b3QuZ2V0U2V0dGluZygib25Nb2RpZnlHZXRDZWxsQ29vcmRzIixfLFcpO2xldFtRbixNcl09W18sV107aWYoRnImJkFycmF5LmlzQXJyYXko'@; put 'RnIpJiYoWywsUW4sTXJdPUZyKSxtMigpfHwhT258fHRoaXMuaXNQYXJ0UmFuZ2UoUW4sTXIpKXRoaXMuY29ybmVyU3R5bGUuZGlzcGxheT0ibm9uZSI7ZWxzZXt0aGlzLmNvcm5lclN0eWxlLnRvcD1FaStJaSt0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LTErInB4Iix0aGlzLmNvcm5l'@; put 'clN0eWxlW2lpXT1jcitJcit0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LTErInB4Iix0aGlzLmNvcm5lclN0eWxlLmJvcmRlclJpZ2h0V2lkdGg9dGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuYm9yZGVyV2lkdGgsdGhpcy5jb3JuZXJTdHlsZS53aWR0aD10aGlzLmNvcm5lckRlZmF1bHRT'@; put 'dHlsZS53aWR0aCx0aGlzLmNvcm5lclN0eWxlLmRpc3BsYXk9Im5vbmUiO2xldCBfcj12ZyhhLlRBQkxFKTtjb25zdCB2dD1fcj09PWg7dnQmJihfcj1kLmRvY3VtZW50RWxlbWVudCk7Y29uc3QgT3Q9cGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzIsY249cGFy'@; put 'c2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuaGVpZ2h0LDEwKS8yO2lmKFc9PT10aGlzLndvdC5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKS0xKXtjb25zdCBFbj12dD9ldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0OmV0Lm9mZnNldExlZnQ7bGV0IFBuPSExLEpuPTA7Tm4/'@; put 'KEpuPUVuLXBhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLndpZHRoLDEwKS8yLFBuPUpuPDApOihKbj1Fbit3YShldCkrcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzIsUG49Sm4+PWl5KF9yKSksUG4mJih0aGlzLmNvcm5lclN0eWxlW2lpXT1gJHtN'@; put 'YXRoLmZsb29yKGNyK0lyK3RoaXMuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQtT3QpfXB4YCx0aGlzLmNvcm5lclN0eWxlW05uPyJib3JkZXJMZWZ0V2lkdGgiOiJib3JkZXJSaWdodFdpZHRoIl09MCl9Xz09PXRoaXMud290LmdldFNldHRpbmcoInRvdGFsUm93cyIpLTEmJih2dD9ldC5nZXRC'@; put 'b3VuZGluZ0NsaWVudFJlY3QoKS50b3A6ZXQub2Zmc2V0VG9wKSthbChldCkrcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuaGVpZ2h0LDEwKS8yPj1qZihfcikmJih0aGlzLmNvcm5lclN0eWxlLnRvcD1gJHtNYXRoLmZsb29yKEVpK0lpK3RoaXMuY29ybmVyQ2VudGVyUG9pbnRP'@; put 'ZmZzZXQtY24pfXB4YCx0aGlzLmNvcm5lclN0eWxlLmJvcmRlckJvdHRvbVdpZHRoPTApLHRoaXMuY29ybmVyU3R5bGUuZGlzcGxheT0iYmxvY2sifW0yKCkmJnRoaXMudXBkYXRlTXVsdGlwbGVTZWxlY3Rpb25IYW5kbGVzUG9zaXRpb24oXyxXLEVpLGNyLElyLElpKX1pc0VudGlyZUNvbHVt'@; put 'blNlbGVjdGVkKGwsYSl7cmV0dXJuIGw9PT10aGlzLndvdC53dFRhYmxlLmdldEZpcnN0UmVuZGVyZWRSb3coKSYmYT09PXRoaXMud290Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkUm93KCl9aXNFbnRpcmVSb3dTZWxlY3RlZChsLGEpe3JldHVybiBsPT09dGhpcy53b3Qud3RUYWJsZS5nZXRG'@; put 'aXJzdFJlbmRlcmVkQ29sdW1uKCkmJmE9PT10aGlzLndvdC53dFRhYmxlLmdldExhc3RSZW5kZXJlZENvbHVtbigpfWdldERpbWVuc2lvbnNGcm9tSGVhZGVyKGwsYSxkLGgsZil7Y29uc3R7d3RUYWJsZTpffT10aGlzLndvdCxUPV8ud3RSb290RWxlbWVudC5wYXJlbnROb2RlO2xldCBXPW51'@; put 'bGwsaWU9bnVsbCxwZT1udWxsLHdlPW51bGwsRWU9bnVsbCxaZT1udWxsLGl0PW51bGwsZXQ9bnVsbDtzd2l0Y2gobCl7Y2FzZSJyb3dzIjpXPWZ1bmN0aW9uKCl7cmV0dXJuIF8uZ2V0Um93SGVhZGVyKC4uLmFyZ3VtZW50cyl9LGllPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKC4uLmFyZ3VtZW50'@; put 'cyl9LHBlPSJodF9fc2VsZWN0aW9uLS1yb3dzIixaZT0idG9wIjticmVhaztjYXNlImNvbHVtbnMiOlc9ZnVuY3Rpb24oKXtyZXR1cm4gXy5nZXRDb2x1bW5IZWFkZXIoLi4uYXJndW1lbnRzKX0saWU9ZnVuY3Rpb24oKXtyZXR1cm4gd2EoLi4uYXJndW1lbnRzKX0scGU9Imh0X19zZWxlY3Rp'@; put 'b24tLWNvbHVtbnMiLFplPSJsZWZ0In1pZihULmNsYXNzTGlzdC5jb250YWlucyhwZSkpe2NvbnN0IHl0PXRoaXMud290LmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg7aWYoaXQ9VyhhLHl0LWgpLGV0PVcoZCx5dC1oKSwhaXR8fCFldClyZXR1cm4hMTtjb25zdCBFdD1LbChp'@; put 'dCksU3Q9S2woZXQpO3JldHVybiBpdCYmZXQmJih3ZT1FdFtaZV0tZltaZV0tMSxFZT1TdFtaZV0raWUoZXQpLUV0W1plXSksW2l0LHdlLEVlXX1yZXR1cm4hMX1jaGFuZ2VCb3JkZXJTdHlsZShsLGEpe2NvbnN0IGQ9dGhpc1tsXS5zdHlsZSxoPWFbbF07IWh8fGguaGlkZT9waSh0aGlzW2xd'@; put 'LCJoaWRkZW4iKTooQm8odGhpc1tsXSwiaGlkZGVuIikmJldvKHRoaXNbbF0sImhpZGRlbiIpLGQuYmFja2dyb3VuZENvbG9yPWguY29sb3IsKCJ0b3AiPT09bHx8ImJvdHRvbSI9PT1sKSYmKGQuaGVpZ2h0PWAke2gud2lkdGh9cHhgKSwoInN0YXJ0Ij09PWx8fCJlbmQiPT09bCkmJihkLndp'@; put 'ZHRoPWAke2gud2lkdGh9cHhgKSl9Y2hhbmdlQm9yZGVyVG9EZWZhdWx0U3R5bGUobCl7Y29uc3QgZD10aGlzW2xdLnN0eWxlO2QuYmFja2dyb3VuZENvbG9yPSIjMDAwIixkLndpZHRoPSIxcHgiLGQuaGVpZ2h0PSIxcHgifXRvZ2dsZUhpZGRlbkNsYXNzKGwsYSl7dGhpcy5jaGFuZ2VCb3Jk'@; put 'ZXJUb0RlZmF1bHRTdHlsZShsKSxhP3BpKHRoaXNbbF0sImhpZGRlbiIpOldvKHRoaXNbbF0sImhpZGRlbiIpfWRpc2FwcGVhcigpe3RoaXMudG9wU3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5ib3R0b21TdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnN0YXJ0U3R5bGUuZGlzcGxheT0ibm9u'@; put 'ZSIsdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvcm5lclN0eWxlLmRpc3BsYXk9Im5vbmUiLG0yKCkmJih0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcC5kaXNwbGF5PSJub25lIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcEhpdEFyZWEuZGlzcGxh'@; put 'eT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRBcmVhLmRpc3BsYXk9Im5vbmUiKX1kZXN0cm95KCl7dGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveVdpdGhPd25FdmVu'@; put 'dHNPbmx5KCksdGhpcy5tYWluLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5tYWluKX19KGwsdGhpcy5zZXR0aW5ncykpLHRoaXMuaW5zdGFuY2VCb3JkZXJzW2wuZ3VpZF19aXNFbXB0eSgpe3JldHVybiBudWxsPT09dGhpcy5jZWxsUmFuZ2V9YWRkKGwpe3JldHVybiB0aGlzLmlzRW1w'@; put 'dHkoKT90aGlzLmNlbGxSYW5nZT10aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZShsKTp0aGlzLmNlbGxSYW5nZS5leHBhbmQobCksdGhpc31yZXBsYWNlKGwsYSl7aWYoIXRoaXMuaXNFbXB0eSgpKXtpZih0aGlzLmNlbGxSYW5nZS5mcm9tLmlzRXF1YWwobCkpcmV0dXJuIHRoaXMuY2Vs'@; put 'bFJhbmdlLmZyb209YSwhMDtpZih0aGlzLmNlbGxSYW5nZS50by5pc0VxdWFsKGwpKXJldHVybiB0aGlzLmNlbGxSYW5nZS50bz1hLCEwfXJldHVybiExfWNsZWFyKCl7cmV0dXJuIHRoaXMuY2VsbFJhbmdlPW51bGwsdGhpc31nZXRDb3JuZXJzKCl7Y29uc3QgbD10aGlzLmNlbGxSYW5nZS5n'@; put 'ZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCksYT10aGlzLmNlbGxSYW5nZS5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpO3JldHVybltsLnJvdyxsLmNvbCxhLnJvdyxhLmNvbF19YWRkQ2xhc3NBdENvb3JkcyhsLGEsZCxoKXtsZXQgZj1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3Vt'@; put 'ZW50c1s0XSYmYXJndW1lbnRzWzRdO2NvbnN0IF89bC53dFRhYmxlLmdldENlbGwodGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsQ29vcmRzKGEsZCkpO2lmKCJvYmplY3QiPT10eXBlb2YgXyl7bGV0IFQ9aDtmJiYoVD10aGlzLmNsYXNzTmFtZUdlbmVyYXRvcihfKSx0aGlzLmNsYXNzTmFtZXMu'@; put 'aW5jbHVkZXMoVCl8fHRoaXMuY2xhc3NOYW1lcy5wdXNoKFQpKSxwaShfLFQpfXJldHVybiB0aGlzfWxpbmVhckNsYXNzTmFtZUdlbmVyYXRvcihsLGEpe3JldHVybiBmdW5jdGlvbiBkKGgpe2xldCBmPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50'@; put 'c1sxXTotMTtpZigwPT09YXx8MD09PWYpcmV0dXJuIGw7bGV0IF89Zj49MD9mOmEsVD1sO3JldHVybiBfLT0xLFQ9Qm8oaCwwPT09Xz9sOmAke2x9LSR7X31gKT9gJHtsfS0ke18rMX1gOmQoaCxfKSxUfX1kcmF3KGwpe2lmKHRoaXMuaXNFbXB0eSgpKXJldHVybiB2b2lkKHRoaXMuc2V0dGlu'@; put 'Z3MuYm9yZGVyJiZ0aGlzLmdldEJvcmRlcihsKS5kaXNhcHBlYXIoKSk7Y29uc3QgYT1sLnd0VGFibGUuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKSxkPWwud3RUYWJsZS5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLGg9dGhpcy5nZXRDb3JuZXJzKCksW2YsXyxULFddPWgse2hpZ2hsaWdodEhl'@; put 'YWRlckNsYXNzTmFtZTppZSxoaWdobGlnaHRDb2x1bW5DbGFzc05hbWU6cGUsaGlnaGxpZ2h0Um93Q2xhc3NOYW1lOndlLGhpZ2hsaWdodE9ubHlDbG9zZXN0SGVhZGVyOkVlLHNlbGVjdGlvblR5cGU6WmV9PXRoaXMuc2V0dGluZ3MsaXQ9dm9pZCAwPT09WmV8fFsiYWN0aXZlLWhlYWRlciIs'@; put 'ImhlYWRlciJdLmluY2x1ZGVzKFplKTtpZihpdCYmbnVsbCE9PV8mJm51bGwhPT1XKXtsZXQgZXQ9MDtmb3IobGV0IHl0PTA7eXQ8ZDt5dCs9MSl7Y29uc3QgRXQ9bC53dFRhYmxlLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKHl0KTtpZihFdD49XyYmRXQ8PVcpe2xldCBTdD1sLnd0'@; put 'VGFibGUuZ2V0Q29sdW1uSGVhZGVycyhFdCk7Y29uc3QgSnQ9U3QubGVuZ3RoLTE7RWUmJlN0Lmxlbmd0aD4xJiYoU3Q9W1N0W0p0XV0pO2ZvcihsZXQgbm49MDtubjxTdC5sZW5ndGg7bm4rPTEpe2NvbnN0IHZuPVtdO2xldCBObj1TdFtubl07aWUmJnZuLnB1c2goaWUpLHBlJiZ2bi5wdXNo'@; put 'KHBlKSxubj1FZT9KdDpubjtjb25zdCBjcj1sLmdldFNldHRpbmcoIm9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIixFdCxubix7c2VsZWN0aW9uVHlwZTpaZSxjb2x1bW5DdXJzb3I6ZXQsc2VsZWN0aW9uV2lkdGg6Vy1fKzEsY2xhc3NOYW1lczp2bn0pO2NyIT09RXQmJihObj1s'@; put 'Lnd0VGFibGUuZ2V0Q29sdW1uSGVhZGVyKGNyLG5uKSkscGkoTm4sdm4pfWV0Kz0xfX19aWYobnVsbCE9PWYmJm51bGwhPT1UKXtsZXQgZXQ9MDtmb3IobGV0IHl0PTA7eXQ8YTt5dCs9MSl7Y29uc3QgRXQ9bC53dFRhYmxlLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKHl0KTtpZihpdCYm'@; put 'RXQ+PWYmJkV0PD1UKXtsZXQgU3Q9bC53dFRhYmxlLmdldFJvd0hlYWRlcnMoRXQpO2NvbnN0IEp0PVN0Lmxlbmd0aC0xO0VlJiZTdC5sZW5ndGg+MSYmKFN0PVtTdFtKdF1dKTtmb3IobGV0IG5uPTA7bm48U3QubGVuZ3RoO25uKz0xKXtjb25zdCB2bj1bXTtsZXQgTm49U3Rbbm5dO2llJiZ2'@; put 'bi5wdXNoKGllKSx3ZSYmdm4ucHVzaCh3ZSksbm49RWU/SnQ6bm47Y29uc3QgY3I9bC5nZXRTZXR0aW5nKCJvbkJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIsRXQsbm4se3NlbGVjdGlvblR5cGU6WmUscm93Q3Vyc29yOmV0LHNlbGVjdGlvbkhlaWdodDpULWYrMSxjbGFzc05hbWVzOnZu'@; put 'fSk7Y3IhPT1FdCYmKE5uPWwud3RUYWJsZS5nZXRSb3dIZWFkZXIoY3Isbm4pKSxwaShObix2bil9ZXQrPTF9aWYobnVsbCE9PV8mJm51bGwhPT1XKWZvcihsZXQgU3Q9MDtTdDxkO1N0Kz0xKXtjb25zdCBKdD1sLnd0VGFibGUuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoU3QpO0V0'@; put 'Pj1mJiZFdDw9VCYmSnQ+PV8mJkp0PD1XP3RoaXMuc2V0dGluZ3MuY2xhc3NOYW1lJiZ0aGlzLmFkZENsYXNzQXRDb29yZHMobCxFdCxKdCx0aGlzLnNldHRpbmdzLmNsYXNzTmFtZSx0aGlzLnNldHRpbmdzLm1hcmtJbnRlcnNlY3Rpb25zKTpFdD49ZiYmRXQ8PVQ/d2UmJnRoaXMuYWRkQ2xh'@; put 'c3NBdENvb3JkcyhsLEV0LEp0LHdlKTpKdD49XyYmSnQ8PVcmJnBlJiZ0aGlzLmFkZENsYXNzQXRDb29yZHMobCxFdCxKdCxwZSk7Y29uc3Qgbm49bC5nZXRTZXR0aW5nKCJvbkFmdGVyRHJhd1NlbGVjdGlvbiIsRXQsSnQsdGhpcy5zZXR0aW5ncy5sYXllckxldmVsKTsic3RyaW5nIj09dHlw'@; put 'ZW9mIG5uJiZ0aGlzLmFkZENsYXNzQXRDb29yZHMobCxFdCxKdCxubil9fX1sLmdldFNldHRpbmcoIm9uQmVmb3JlRHJhd0JvcmRlcnMiLGgsdGhpcy5zZXR0aW5ncy5jbGFzc05hbWUpLHRoaXMuc2V0dGluZ3MuYm9yZGVyJiZ0aGlzLmdldEJvcmRlcihsKS5hcHBlYXIoaCl9ZGVzdHJveSgp'@; put 'e09iamVjdC52YWx1ZXModGhpcy5pbnN0YW5jZUJvcmRlcnMpLmZvckVhY2gobD0+bC5kZXN0cm95KCkpfX07Y29uc3QgaDc9Y2xhc3MgckRlIGV4dGVuZHMgUVRle2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIobCxudWxsKSxmdW5jdGlvbiBlRGUoYyxsLGEpe3JldHVybiBsPWZ1bmN0aW9uIHRE'@; put 'ZShjKXt2YXIgbD1mdW5jdGlvbiBuRGUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fG51bGw9PT1jKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZCly'@; put 'ZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOlN0cmluZyhsKX0o'@; put 'bCksbCBpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30odGhpcywidmlzdWFsQ2VsbFJhbmdlIixudWxsKSx0aGlzLnZpc3VhbENlbGxSYW5nZT1hfHxudWxsLHRoaXMuY29t'@; put 'bWl0KCl9YWRkKGwpe3JldHVybiBudWxsPT09dGhpcy52aXN1YWxDZWxsUmFuZ2U/dGhpcy52aXN1YWxDZWxsUmFuZ2U9dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFuZ2UobCk6dGhpcy52aXN1YWxDZWxsUmFuZ2UuZXhwYW5kKGwpLHRoaXN9Y2xlYXIoKXtyZXR1cm4gdGhpcy52aXN1YWxD'@; put 'ZWxsUmFuZ2U9bnVsbCxzdXBlci5jbGVhcigpfXRyaW1Ub1Zpc2libGVDZWxsc1JhbmdlT25seShsKXtsZXR7ZnJvbTphLHRvOmR9PWwsaD10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5Db29yZHMoYSwxKSxmPXRoaXMuZ2V0TmVhcmVzdE5vdEhpZGRlbkNvb3JkcyhkLC0xKTtpZihudWxsPT09'@; put 'aHx8bnVsbD09PWYpcmV0dXJuIG51bGw7aWYoaC5yb3c+Zi5yb3d8fGguY29sPmYuY29sKXtpZigiaGVhZGVyIiE9PXRoaXMuc2V0dGluZ3MudHlwZSYmImFjdGl2ZS1oZWFkZXIiIT09dGhpcy5zZXR0aW5ncy50eXBlKXJldHVybiBudWxsO2g9YSxmPWR9cmV0dXJuIHRoaXMuc2V0dGluZ3Mu'@; put 'Y3JlYXRlQ2VsbFJhbmdlKGgsaCxmKX1nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmE7Y29uc3QgaD10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh0aGlzLnNldHRp'@; put 'bmdzLnJvd0luZGV4TWFwcGVyKCksbC5yb3csYSk7aWYobnVsbD09PWgpcmV0dXJuIG51bGw7Y29uc3QgZj10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh0aGlzLnNldHRpbmdzLmNvbHVtbkluZGV4TWFwcGVyKCksbC5jb2wsZCk7cmV0dXJuIG51bGw9PT1mP251bGw6dGhpcy5zZXR0'@; put 'aW5ncy5jcmVhdGVDZWxsQ29vcmRzKGgsZil9Z2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGwsYSxkKXtpZihhPDApcmV0dXJuIGE7Y29uc3QgaD1sLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChhLGQpO3JldHVybiJoZWFkZXIiIT09dGhpcy5zZXR0aW5ncy50eXBlJiYiYWN0aXZlLWhlYWRl'@; put 'ciIhPT10aGlzLnNldHRpbmdzLnR5cGV8fG51bGwhPT1oP2g6LTF9Y29tbWl0KCl7aWYobnVsbD09PXRoaXMudmlzdWFsQ2VsbFJhbmdlKXJldHVybiB0aGlzO2NvbnN0IGw9dGhpcy50cmltVG9WaXNpYmxlQ2VsbHNSYW5nZU9ubHkodGhpcy52aXN1YWxDZWxsUmFuZ2UpO3JldHVybiB0aGlz'@; put 'LmNlbGxSYW5nZT1udWxsPT09bD9udWxsOnRoaXMuY3JlYXRlUmVuZGVyYWJsZUNlbGxSYW5nZShsLmZyb20sbC50byksdGhpc31zeW5jV2l0aChsKXtjb25zdCBhPSJOLVMiPT09bC5nZXRWZXJ0aWNhbERpcmVjdGlvbigpPzE6LTEsZD0iVy1FIj09PWwuZ2V0SG9yaXpvbnRhbERpcmVjdGlv'@; put 'bigpPzE6LTEsaD10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5Db29yZHMobC5mcm9tLmNsb25lKCkubm9ybWFsaXplKCksYSxkKTtpZihudWxsIT09aCYmbC5vdmVybGFwcyhoKSl7aWYobnVsbD09PXRoaXMuY2VsbFJhbmdlKXtjb25zdCBmPXRoaXMuc2V0dGluZ3MudmlzdWFsVG9SZW5kZXJh'@; put 'YmxlQ29vcmRzKGgpO3RoaXMuY2VsbFJhbmdlPXRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbFJhbmdlKGYpfXJldHVybiBsLnNldEhpZ2hsaWdodChoKSx0aGlzfXJldHVybiBsLnNldEhpZ2hsaWdodChsLmZyb20pLHRoaXN9Z2V0Q29ybmVycygpe2NvbnN0e2Zyb206bCx0bzphfT10aGlzLmNl'@; put 'bGxSYW5nZSxkPW51bGw9PT1sLnJvd3x8bnVsbD09PWEucm93LGg9bnVsbD09PWwuY29sfHxudWxsPT09YS5jb2wsZj10aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxDb29yZHMoZD9udWxsOk1hdGgubWluKGwucm93LGEucm93KSxoP251bGw6TWF0aC5taW4obC5jb2wsYS5jb2wpKSxfPXRoaXMu'@; put 'c2V0dGluZ3MuY3JlYXRlQ2VsbENvb3JkcyhkP251bGw6TWF0aC5tYXgobC5yb3csYS5yb3cpLGg/bnVsbDpNYXRoLm1heChsLmNvbCxhLmNvbCkpO3JldHVybltmLnJvdyxmLmNvbCxfLnJvdyxfLmNvbF19Z2V0VmlzdWFsQ29ybmVycygpe2NvbnN0IGw9dGhpcy5zZXR0aW5ncy5yZW5kZXJh'@; put 'YmxlVG9WaXN1YWxDb29yZHModGhpcy5jZWxsUmFuZ2UuZ2V0VG9wU3RhcnRDb3JuZXIoKSksYT10aGlzLnNldHRpbmdzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh0aGlzLmNlbGxSYW5nZS5nZXRCb3R0b21FbmRDb3JuZXIoKSk7cmV0dXJuW2wucm93LGwuY29sLGEucm93LGEuY29sXX1j'@; put 'cmVhdGVSZW5kZXJhYmxlQ2VsbFJhbmdlKGwsYSl7Y29uc3QgZD10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhsKSxoPXRoaXMuc2V0dGluZ3MudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKGEpO3JldHVybiB0aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZShkLGQs'@; put 'aCl9fSx7cmVnaXN0ZXI6ZjcsZ2V0SXRlbTptRGV9PXBkKCJoaWdobGlnaHQvdHlwZXMiKTtmdW5jdGlvbiBwNyhjLGwpe3JldHVybiBtRGUoYykoe3R5cGU6YywuLi5sfSl9ZjcoUGssZnVuY3Rpb24gaURlKGMpe2xldHthY3RpdmVIZWFkZXJDbGFzc05hbWU6bCwuLi5hfT1jO3JldHVybiBu'@; put 'ZXcgaDcoe2hpZ2hsaWdodEhlYWRlckNsYXNzTmFtZTpsLC4uLmEsc2VsZWN0aW9uVHlwZTpQa30pfSksZjcoRmssZnVuY3Rpb24gc0RlKGMpe2xldHtsYXllckxldmVsOmwsYXJlYUNvcm5lclZpc2libGU6YSwuLi5kfT1jO3JldHVybiBuZXcgaDcoe2NsYXNzTmFtZToiYXJlYSIsbWFya0lu'@; put 'dGVyc2VjdGlvbnM6ITAsbGF5ZXJMZXZlbDpNYXRoLm1pbihsLDcpLGJvcmRlcjp7d2lkdGg6MSxjb2xvcjoiIzRiODlmZiIsY29ybmVyVmlzaWJsZTphfSwuLi5kLHNlbGVjdGlvblR5cGU6Rmt9KX0pLGY3KGJ5LGZ1bmN0aW9uIGxEZShjKXtsZXR7Y2VsbENvcm5lclZpc2libGU6bCwuLi5h'@; put 'fT1jO3JldHVybiBuZXcgaDcoe2NsYXNzTmFtZToiY3VycmVudCIsYm9yZGVyOnt3aWR0aDoyLGNvbG9yOiIjNGI4OWZmIixjb3JuZXJWaXNpYmxlOmx9LC4uLmEsc2VsZWN0aW9uVHlwZTpieX0pfSksZjcoQkIsZnVuY3Rpb24gdURlKGMpe2xldHtib3JkZXI6bCx2aXN1YWxDZWxsUmFuZ2U6'@; put 'YSwuLi5kfT1jO3JldHVybiBuZXcgaDcoey4uLmwsLi4uZCxzZWxlY3Rpb25UeXBlOkJCfSxhKX0pLGY3KFZCLGZ1bmN0aW9uIGhEZShjKXtsZXR7Li4ubH09YztyZXR1cm4gbmV3IGg3KHtjbGFzc05hbWU6ImZpbGwiLGJvcmRlcjp7d2lkdGg6MSxjb2xvcjoiI2ZmMDAwMCJ9LC4uLmwsc2Vs'@; put 'ZWN0aW9uVHlwZTpWQn0pfSksZjcoeXksZnVuY3Rpb24gcERlKGMpe2xldHtoZWFkZXJDbGFzc05hbWU6bCxyb3dDbGFzc05hbWU6YSxjb2x1bW5DbGFzc05hbWU6ZCwuLi5ofT1jO3JldHVybiBuZXcgaDcoe2NsYXNzTmFtZToiaGlnaGxpZ2h0IixoaWdobGlnaHRIZWFkZXJDbGFzc05hbWU6'@; put 'bCxoaWdobGlnaHRSb3dDbGFzc05hbWU6YSxoaWdobGlnaHRDb2x1bW5DbGFzc05hbWU6ZCwuLi5oLGhpZ2hsaWdodE9ubHlDbG9zZXN0SGVhZGVyOiEwLHNlbGVjdGlvblR5cGU6eXl9KX0pO2NsYXNzIHZEZXtjb25zdHJ1Y3RvcihsKXt0aGlzLm9wdGlvbnM9bCx0aGlzLmxheWVyTGV2ZWw9'@; put 'MCx0aGlzLmNlbGw9cDcoYnksbCksdGhpcy5maWxsPXA3KFZCLGwpLHRoaXMuYXJlYXM9bmV3IE1hcCx0aGlzLmhlYWRlcnM9bmV3IE1hcCx0aGlzLmFjdGl2ZUhlYWRlcnM9bmV3IE1hcCx0aGlzLmN1c3RvbVNlbGVjdGlvbnM9W119aXNFbmFibGVkRm9yKGwsYSl7bGV0IGQ9bDtsPT09Ynkm'@; put 'JihkPSJjdXJyZW50Iik7bGV0IGg9dGhpcy5vcHRpb25zLmRpc2FibGVkQ2VsbFNlbGVjdGlvbihhLnJvdyxhLmNvbCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBoJiYoaD1baF0pLCExPT09aHx8QXJyYXkuaXNBcnJheShoKSYmIWguaW5jbHVkZXMoZCl9dXNlTGF5ZXJMZXZlbCgpe3JldHVy'@; put 'biB0aGlzLmxheWVyTGV2ZWw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsdGhpc31nZXRDZWxsKCl7cmV0dXJuIHRoaXMuY2VsbH1nZXRGaWxsKCl7cmV0dXJuIHRoaXMuZmlsbH1jcmVhdGVPckdldEFyZWEoKXtjb25zdCBsPXRoaXMu'@; put 'bGF5ZXJMZXZlbDtsZXQgYTtyZXR1cm4gdGhpcy5hcmVhcy5oYXMobCk/YT10aGlzLmFyZWFzLmdldChsKTooYT1wNyhGayx7bGF5ZXJMZXZlbDpsLC4uLnRoaXMub3B0aW9uc30pLHRoaXMuYXJlYXMuc2V0KGwsYSkpLGF9Z2V0QXJlYXMoKXtyZXR1cm5bLi4udGhpcy5hcmVhcy52YWx1ZXMo'@; put 'KV19Y3JlYXRlT3JHZXRIZWFkZXIoKXtjb25zdCBsPXRoaXMubGF5ZXJMZXZlbDtsZXQgYTtyZXR1cm4gdGhpcy5oZWFkZXJzLmhhcyhsKT9hPXRoaXMuaGVhZGVycy5nZXQobCk6KGE9cDcoeXksey4uLnRoaXMub3B0aW9uc30pLHRoaXMuaGVhZGVycy5zZXQobCxhKSksYX1nZXRIZWFkZXJz'@; put 'KCl7cmV0dXJuWy4uLnRoaXMuaGVhZGVycy52YWx1ZXMoKV19Y3JlYXRlT3JHZXRBY3RpdmVIZWFkZXIoKXtjb25zdCBsPXRoaXMubGF5ZXJMZXZlbDtsZXQgYTtyZXR1cm4gdGhpcy5hY3RpdmVIZWFkZXJzLmhhcyhsKT9hPXRoaXMuYWN0aXZlSGVhZGVycy5nZXQobCk6KGE9cDcoUGssey4u'@; put 'LnRoaXMub3B0aW9uc30pLHRoaXMuYWN0aXZlSGVhZGVycy5zZXQobCxhKSksYX1nZXRBY3RpdmVIZWFkZXJzKCl7cmV0dXJuWy4uLnRoaXMuYWN0aXZlSGVhZGVycy52YWx1ZXMoKV19Z2V0Q3VzdG9tU2VsZWN0aW9ucygpe3JldHVyblsuLi50aGlzLmN1c3RvbVNlbGVjdGlvbnMudmFsdWVz'@; put 'KCldfWFkZEN1c3RvbVNlbGVjdGlvbihsKXt0aGlzLmN1c3RvbVNlbGVjdGlvbnMucHVzaChwNyhCQix7Li4udGhpcy5vcHRpb25zLC4uLmx9KSl9Y2xlYXIoKXt0aGlzLmNlbGwuY2xlYXIoKSx0aGlzLmZpbGwuY2xlYXIoKSxEbih0aGlzLmFyZWFzLnZhbHVlcygpLGw9PntsLmNsZWFyKCl9'@; put 'KSxEbih0aGlzLmhlYWRlcnMudmFsdWVzKCksbD0+e2wuY2xlYXIoKX0pLERuKHRoaXMuYWN0aXZlSGVhZGVycy52YWx1ZXMoKSxsPT57bC5jbGVhcigpfSl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm5bdGhpcy5jZWxsLHRoaXMuZmlsbCwuLi50aGlzLmFyZWFzLnZhbHVlcygpLC4uLnRo'@; put 'aXMuaGVhZGVycy52YWx1ZXMoKSwuLi50aGlzLmFjdGl2ZUhlYWRlcnMudmFsdWVzKCksLi4udGhpcy5jdXN0b21TZWxlY3Rpb25zXVtTeW1ib2wuaXRlcmF0b3JdKCl9fWNvbnN0IF9EZT12RGU7Y2xhc3MgYkRle2NvbnN0cnVjdG9yKGwpe3RoaXMucmFuZ2VzPVtdLHRoaXMuY3JlYXRlQ2Vs'@; put 'bFJhbmdlPWx9aXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5zaXplKCl9c2V0KGwpe3JldHVybiB0aGlzLmNsZWFyKCksdGhpcy5yYW5nZXMucHVzaCh0aGlzLmNyZWF0ZUNlbGxSYW5nZShsKSksdGhpc31hZGQobCl7cmV0dXJuIHRoaXMucmFuZ2VzLnB1c2godGhpcy5jcmVhdGVDZWxsUmFu'@; put 'Z2UobCkpLHRoaXN9cG9wKCl7cmV0dXJuIHRoaXMucmFuZ2VzLnBvcCgpLHRoaXN9Y3VycmVudCgpe3JldHVybiB0aGlzLnBlZWtCeUluZGV4KDApfXByZXZpb3VzKCl7cmV0dXJuIHRoaXMucGVla0J5SW5kZXgoLTEpfWluY2x1ZGVzKGwpe3JldHVybiB0aGlzLnJhbmdlcy5zb21lKGE9PmEu'@; put 'aW5jbHVkZXMobCkpfWNsZWFyKCl7cmV0dXJuIHRoaXMucmFuZ2VzLmxlbmd0aD0wLHRoaXN9c2l6ZSgpe3JldHVybiB0aGlzLnJhbmdlcy5sZW5ndGh9cGVla0J5SW5kZXgoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MDtj'@; put 'b25zdCBhPXRoaXMuc2l6ZSgpK2wtMTtsZXQgZDtyZXR1cm4gYT49MCYmKGQ9dGhpcy5yYW5nZXNbYV0pLGR9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5yYW5nZXNbU3ltYm9sLml0ZXJhdG9yXSgpfX1jb25zdCB5RGU9YkRlO2NsYXNzIExuZXtjb25zdHJ1Y3RvcihsLGEpe3Ro'@; put 'aXMucmFuZ2U9bCx0aGlzLm9wdGlvbnM9YX10cmFuc2Zvcm1TdGFydChsLGEpe2xldCBkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07Y29uc3QgaD10aGlzLm9wdGlvbnMuY3JlYXRlQ2VsbENvb3JkcyhsLGEpLGY9dGhpcy5yYW5nZS5j'@; put 'dXJyZW50KCkuaGlnaGxpZ2h0LHtyb3c6Xyxjb2w6VH09dGhpcy5vcHRpb25zLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhmKTtsZXQgVz1mLGllPTAscGU9MDtpZih0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVRyYW5zZm9ybVN0YXJ0IixoKSxudWxsIT09XyYmbnVsbCE9PVQpe2xldCB3'@; put 'ZT10aGlzLm9wdGlvbnMuY291bnRSb3dzKCksRWU9dGhpcy5vcHRpb25zLmNvdW50Q29scygpO2NvbnN0IFplPXRoaXMub3B0aW9ucy5maXhlZFJvd3NCb3R0b20oKSxpdD10aGlzLm9wdGlvbnMubWluU3BhcmVSb3dzKCksZXQ9dGhpcy5vcHRpb25zLm1pblNwYXJlQ29scygpLHl0PXRoaXMu'@; put 'b3B0aW9ucy5hdXRvV3JhcFJvdygpLEV0PXRoaXMub3B0aW9ucy5hdXRvV3JhcENvbCgpO18rbD53ZS0xP2QmJml0PjAmJiEoWmUmJl8+PXdlLVplLTEpPyh0aGlzLnJ1bkxvY2FsSG9va3MoImluc2VydFJvd1JlcXVpcmUiLHdlKSx3ZT10aGlzLm9wdGlvbnMuY291bnRSb3dzKCkpOkV0JiYo'@; put 'aC5yb3c9MS13ZSxoLmNvbD1UK2guY29sPT09RWUtMT8xLUVlOjEpOkV0JiZfK2gucm93PDAmJlQraC5jb2w+PTAmJihoLnJvdz13ZS0xLGguY29sPVQraC5jb2w9PT0wP0VlLTE6LTEpLFQraC5jb2w+RWUtMT9kJiZldD4wPyh0aGlzLnJ1bkxvY2FsSG9va3MoImluc2VydENvbFJlcXVpcmUi'@; put 'LEVlKSxFZT10aGlzLm9wdGlvbnMuY291bnRDb2xzKCkpOnl0JiYoaC5yb3c9XytoLnJvdz09PXdlLTE/MS13ZToxLGguY29sPTEtRWUpOnl0JiZUK2guY29sPDAmJl8raC5yb3c+PTAmJihoLnJvdz1fK2gucm93PT09MD93ZS0xOi0xLGguY29sPUVlLTEpO2NvbnN0IFN0PXRoaXMub3B0aW9u'@; put 'cy5jcmVhdGVDZWxsQ29vcmRzKF8raC5yb3csVCtoLmNvbCk7aWU9MCxwZT0wLFN0LnJvdzwwPyhpZT0tMSxTdC5yb3c9MCk6U3Qucm93PjAmJlN0LnJvdz49d2UmJihpZT0xLFN0LnJvdz13ZS0xKSxTdC5jb2w8MD8ocGU9LTEsU3QuY29sPTApOlN0LmNvbD4wJiZTdC5jb2w+PUVlJiYocGU9'@; put 'MSxTdC5jb2w9RWUtMSksVz10aGlzLm9wdGlvbnMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKFN0KX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixXLGllLHBlKSxXfXRyYW5zZm9ybUVuZChsLGEpe2NvbnN0IGQ9dGhpcy5vcHRpb25zLmNyZWF0ZUNl'@; put 'bGxDb29yZHMobCxhKSxoPXRoaXMucmFuZ2UuY3VycmVudCgpO2xldCBmPWgudG8sXz0wLFQ9MDt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVRyYW5zZm9ybUVuZCIsZCk7Y29uc3R7cm93OlcsY29sOmllfT10aGlzLm9wdGlvbnMudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKGguaGlnaGxp'@; put 'Z2h0KTtpZihudWxsIT09VyYmbnVsbCE9PWllKXtjb25zdCBwZT10aGlzLm9wdGlvbnMuY291bnRSb3dzKCksd2U9dGhpcy5vcHRpb25zLmNvdW50Q29scygpLHtyb3c6RWUsY29sOlplfT10aGlzLm9wdGlvbnMudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKGgudG8pLGl0PXRoaXMub3B0aW9u'@; put 'cy5jcmVhdGVDZWxsQ29vcmRzKEVlK2Qucm93LFplK2QuY29sKTtfPTAsVD0wLGl0LnJvdzwwPyhfPS0xLGl0LnJvdz0wKTppdC5yb3c+MCYmaXQucm93Pj1wZSYmKF89MSxpdC5yb3c9cGUtMSksaXQuY29sPDA/KFQ9LTEsaXQuY29sPTApOml0LmNvbD4wJiZpdC5jb2w+PXdlJiYoVD0xLGl0'@; put 'LmNvbD13ZS0xKSxmPXRoaXMub3B0aW9ucy5yZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoaXQpfXJldHVybiB0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyVHJhbnNmb3JtRW5kIixmLF8sVCksZn19VGEoTG5lLE8wKTtjb25zdCB3RGU9TG5lLENEZT1bMywyXSxTRGU9W1sibnVtYmVyIl0sWyJu'@; put 'dW1iZXIiLCJzdHJpbmciXSxbIm51bWJlciIsInVuZGVmaW5lZCJdLFsibnVtYmVyIiwic3RyaW5nIiwidW5kZWZpbmVkIl1dLHpCPVN5bWJvbCgicm9vdCIpLE9uZT1TeW1ib2woImNoaWxkIik7ZnVuY3Rpb24gZzcoYyl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1'@; put 'bWVudHNbMV0/YXJndW1lbnRzWzFdOnpCO2lmKGwhPT16QiYmbCE9PU9uZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdXNlZCBpbnRlcm5hbGx5IG9ubHkgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlbi4iKTtjb25zdCBhPUFycmF5LmlzQXJyYXkoYyksZD1sPT09'@; put 'ekI7bGV0IGg9MDtpZihhKXtjb25zdCBmPWNbMF07MD09PWMubGVuZ3RoP2g9MTpkJiZmIGluc3RhbmNlb2YgWk4/aD0zOmQmJkFycmF5LmlzQXJyYXkoZik/aD1nNyhmLE9uZSk6Yy5sZW5ndGg+PTImJmMubGVuZ3RoPD00JiYhYy5zb21lKChULFcpPT4hU0RlW1ddLmluY2x1ZGVzKHR5cGVv'@; put 'ZiBUKSkmJihoPTIpfXJldHVybiBofWZ1bmN0aW9uIHd5KGMpe2xldHtrZWVwRGlyZWN0aW9uOmw9ITEscHJvcFRvQ29sOmF9PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighQ0RlLmluY2x1ZGVzKGMpKXRocm93IG5ldyBFcnJv'@; put 'cigiVW5zdXBwb3J0ZWQgc2VsZWN0aW9uIHJhbmdlcyBzY2hlbWEgdHlwZSB3YXMgcHJvdmlkZWQuIik7cmV0dXJuIGZ1bmN0aW9uKGQpe2NvbnN0IGg9Mz09PWM7bGV0IGY9aD9kLmZyb20ucm93OmRbMF0sXz1oP2QuZnJvbS5jb2w6ZFsxXSxUPWg/ZC50by5yb3c6ZFsyXSxXPWg/ZC50by5j'@; put 'b2w6ZFszXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSYmKCJzdHJpbmciPT10eXBlb2YgXyYmKF89YShfKSksInN0cmluZyI9PXR5cGVvZiBXJiYoVz1hKFcpKSksTGEoVCkmJihUPWYpLExhKFcpJiYoVz1fKSwhbCl7Y29uc3QgaWU9ZixwZT1fLHdlPVQsRWU9VztmPU1hdGgubWluKGllLHdl'@; put 'KSxfPU1hdGgubWluKHBlLEVlKSxUPU1hdGgubWF4KGllLHdlKSxXPU1hdGgubWF4KHBlLEVlKX1yZXR1cm5bZixfLFQsV119fWZ1bmN0aW9uIEdwKGMpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYyYmYz49MCYmYzwoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/'@; put 'YXJndW1lbnRzWzFdOjEvMCl9Y2xhc3MgUG5le2NvbnN0cnVjdG9yKGwsYSl7dmFyIGQ9dGhpczt0aGlzLnNldHRpbmdzPWwsdGhpcy50YWJsZVByb3BzPWEsdGhpcy5pblByb2dyZXNzPSExLHRoaXMuc2VsZWN0ZWRCeUNvcm5lcj0hMSx0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXI9bmV3IFNl'@; put 'dCx0aGlzLnNlbGVjdGVkQnlDb2x1bW5IZWFkZXI9bmV3IFNldCx0aGlzLnNlbGVjdGVkUmFuZ2U9bmV3IHlEZSgoaCxmLF8pPT50aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbFJhbmdlKGgsZixfKSksdGhpcy5oaWdobGlnaHQ9bmV3IF9EZSh7aGVhZGVyQ2xhc3NOYW1lOmwuY3VycmVudEhl'@; put 'YWRlckNsYXNzTmFtZSxhY3RpdmVIZWFkZXJDbGFzc05hbWU6bC5hY3RpdmVIZWFkZXJDbGFzc05hbWUscm93Q2xhc3NOYW1lOmwuY3VycmVudFJvd0NsYXNzTmFtZSxjb2x1bW5DbGFzc05hbWU6bC5jdXJyZW50Q29sQ2xhc3NOYW1lLGRpc2FibGVkQ2VsbFNlbGVjdGlvbjooaCxmKT0+dGhp'@; put 'cy50YWJsZVByb3BzLmlzRGlzYWJsZWRDZWxsU2VsZWN0aW9uKGgsZiksY2VsbENvcm5lclZpc2libGU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5pc0NlbGxDb3JuZXJWaXNpYmxlKC4uLmFyZ3VtZW50cyl9LGFyZWFDb3JuZXJWaXNpYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGQuaXNBcmVhQ29ybmVy'@; put 'VmlzaWJsZSguLi5hcmd1bWVudHMpfSx2aXN1YWxUb1JlbmRlcmFibGVDb29yZHM6aD0+dGhpcy50YWJsZVByb3BzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhoKSxyZW5kZXJhYmxlVG9WaXN1YWxDb29yZHM6aD0+dGhpcy50YWJsZVByb3BzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyho'@; put 'KSxjcmVhdGVDZWxsQ29vcmRzOihoLGYpPT50aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhoLGYpLGNyZWF0ZUNlbGxSYW5nZTooaCxmLF8pPT50aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbFJhbmdlKGgsZixfKSxyb3dJbmRleE1hcHBlcjooKT0+dGhpcy50YWJsZVByb3BzLnJv'@; put 'd0luZGV4TWFwcGVyKCksY29sdW1uSW5kZXhNYXBwZXI6KCk9PnRoaXMudGFibGVQcm9wcy5jb2x1bW5JbmRleE1hcHBlcigpfSksdGhpcy50cmFuc2Zvcm1hdGlvbj1uZXcgd0RlKHRoaXMuc2VsZWN0ZWRSYW5nZSx7Y291bnRSb3dzOigpPT50aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzVHJh'@; put 'bnNsYXRlZCgpLGNvdW50Q29sczooKT0+dGhpcy50YWJsZVByb3BzLmNvdW50Q29sc1RyYW5zbGF0ZWQoKSx2aXN1YWxUb1JlbmRlcmFibGVDb29yZHM6aD0+dGhpcy50YWJsZVByb3BzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhoKSxyZW5kZXJhYmxlVG9WaXN1YWxDb29yZHM6aD0+dGhp'@; put 'cy50YWJsZVByb3BzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhoKSxjcmVhdGVDZWxsQ29vcmRzOihoLGYpPT50aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhoLGYpLGZpeGVkUm93c0JvdHRvbTooKT0+bC5maXhlZFJvd3NCb3R0b20sbWluU3BhcmVSb3dzOigpPT5sLm1pblNw'@; put 'YXJlUm93cyxtaW5TcGFyZUNvbHM6KCk9PmwubWluU3BhcmVDb2xzLGF1dG9XcmFwUm93OigpPT5sLmF1dG9XcmFwUm93LGF1dG9XcmFwQ29sOigpPT5sLmF1dG9XcmFwQ29sfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlv'@; put 'bigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLF89MDtfPGg7XysrKWZbX109YXJndW1lbnRzW19dO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImJlZm9yZU1vZGlmeVRyYW5zZm9ybVN0YXJ0IiwuLi5mKX0pLHRoaXMudHJhbnNmb3JtYXRpb24uYWRkTG9jYWxI'@; put 'b29rKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLF89MDtfPGg7XysrKWZbX109YXJndW1lbnRzW19dO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLC4uLmYp'@; put 'fSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSxfPTA7XzxoO18rKylmW19dPWFyZ3VtZW50c1tfXTtyZXR1cm4gZC5ydW5Mb2NhbEhvb2tzKCJi'@; put 'ZWZvcmVNb2RpZnlUcmFuc2Zvcm1FbmQiLC4uLmYpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyVHJhbnNmb3JtRW5kIixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLF89MDtfPGg7XysrKWZbX109YXJndW1lbnRz'@; put 'W19dO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIiwuLi5mKX0pLHRoaXMudHJhbnNmb3JtYXRpb24uYWRkTG9jYWxIb29rKCJpbnNlcnRSb3dSZXF1aXJlIixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgp'@; put 'LF89MDtfPGg7XysrKWZbX109YXJndW1lbnRzW19dO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImluc2VydFJvd1JlcXVpcmUiLC4uLmYpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImluc2VydENvbFJlcXVpcmUiLGZ1bmN0aW9uKCl7Zm9yKHZhciBoPWFyZ3VtZW50cy5s'@; put 'ZW5ndGgsZj1uZXcgQXJyYXkoaCksXz0wO188aDtfKyspZltfXT1hcmd1bWVudHNbX107cmV0dXJuIGQucnVuTG9jYWxIb29rcygiaW5zZXJ0Q29sUmVxdWlyZSIsLi4uZil9KX1nZXRTZWxlY3RlZFJhbmdlKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRSYW5nZX1iZWdpbigpe3RoaXMuaW5Qcm9n'@; put 'cmVzcz0hMH1maW5pc2goKXt0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLEFycmF5LmZyb20odGhpcy5zZWxlY3RlZFJhbmdlKSksdGhpcy5pblByb2dyZXNzPSExfWlzSW5Qcm9ncmVzcygpe3JldHVybiB0aGlzLmluUHJvZ3Jlc3N9c2V0UmFuZ2VTdGFydChs'@; put 'LGEpe2xldCBkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07Y29uc3QgaD0ibXVsdGlwbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlLGY9TGEoYSk/dGhpcy50YWJsZVByb3BzLmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3Ry'@; put 'bFByZXNzZWQoKTphLF89bC5yb3c8MCxUPWwuY29sPDAsVz1fJiZULGllPWwuY2xvbmUoKTt0aGlzLnNlbGVjdGVkQnlDb3JuZXI9Vyx0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVNldFJhbmdlU3RhcnQiKyhkPyJPbmx5IjoiIiksaWUpLCghaHx8aCYmIWYmJkxhKGEpKSYmdGhpcy5zZWxl'@; put 'Y3RlZFJhbmdlLmNsZWFyKCksdGhpcy5zZWxlY3RlZFJhbmdlLmFkZChpZSksMD09PXRoaXMuZ2V0TGF5ZXJMZXZlbCgpJiYodGhpcy5zZWxlY3RlZEJ5Um93SGVhZGVyLmNsZWFyKCksdGhpcy5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLmNsZWFyKCkpLCFXJiZUJiZ0aGlzLnNlbGVjdGVkQnlS'@; put 'b3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSwhVyYmXyYmdGhpcy5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLmFkZCh0aGlzLmdldExheWVyTGV2ZWwoKSksZHx8dGhpcy5zZXRSYW5nZUVuZChsKX1zZXRSYW5nZVN0YXJ0T25seShsLGEpe3RoaXMuc2V0UmFuZ2VTdGFydChsLGEs'@; put 'ITApfXNldFJhbmdlRW5kKGwpe2lmKHRoaXMuc2VsZWN0ZWRSYW5nZS5pc0VtcHR5KCkpcmV0dXJuO2NvbnN0IGE9bC5jbG9uZSgpO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlU2V0UmFuZ2VFbmQiLGEpLHRoaXMuYmVnaW4oKTtjb25zdCBkPXRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50'@; put 'KCk7InNpbmdsZSIhPT10aGlzLnNldHRpbmdzLnNlbGVjdGlvbk1vZGUmJmQuc2V0VG8odGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoYS5yb3csYS5jb2wpKSx0aGlzLmhpZ2hsaWdodC5nZXRDZWxsKCkuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5pc0VuYWJsZWRGb3IoYnksZC5o'@; put 'aWdobGlnaHQpJiZ0aGlzLmhpZ2hsaWdodC5nZXRDZWxsKCkuYWRkKHRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkuaGlnaGxpZ2h0KS5jb21taXQoKS5zeW5jV2l0aChkKTtjb25zdCBoPXRoaXMuZ2V0TGF5ZXJMZXZlbCgpO2g8dGhpcy5oaWdobGlnaHQubGF5ZXJMZXZlbCYmKERuKHRo'@; put 'aXMuaGlnaGxpZ2h0LmdldEFyZWFzKCksVz0+e1cuY2xlYXIoKX0pLERuKHRoaXMuaGlnaGxpZ2h0LmdldEhlYWRlcnMoKSxXPT57Vy5jbGVhcigpfSksRG4odGhpcy5oaWdobGlnaHQuZ2V0QWN0aXZlSGVhZGVycygpLFc9PntXLmNsZWFyKCl9KSksdGhpcy5oaWdobGlnaHQudXNlTGF5ZXJM'@; put 'ZXZlbChoKTtjb25zdCBmPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QXJlYSgpLF89dGhpcy5oaWdobGlnaHQuY3JlYXRlT3JHZXRIZWFkZXIoKSxUPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QWN0aXZlSGVhZGVyKCk7aWYoZi5jbGVhcigpLF8uY2xlYXIoKSxULmNsZWFyKCksdGhp'@; put 'cy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKEZrLGQuaGlnaGxpZ2h0KSYmKHRoaXMuaXNNdWx0aXBsZSgpfHxoPj0xKSYmKGYuYWRkKGQuZnJvbSkuYWRkKGQudG8pLmNvbW1pdCgpLDE9PT1oKSl7Y29uc3QgVz10aGlzLnNlbGVjdGVkUmFuZ2UucHJldmlvdXMoKTt0aGlzLmhpZ2hsaWdodC51'@; put 'c2VMYXllckxldmVsKGgtMSkuY3JlYXRlT3JHZXRBcmVhKCkuYWRkKFcuZnJvbSkuY29tbWl0KCkuc3luY1dpdGgoVyksdGhpcy5oaWdobGlnaHQudXNlTGF5ZXJMZXZlbChoKX1pZih0aGlzLmhpZ2hsaWdodC5pc0VuYWJsZWRGb3IoeXksZC5oaWdobGlnaHQpKXtjb25zdCBXPTA9PT10aGlz'@; put 'LnRhYmxlUHJvcHMuY291bnRSb3dzVHJhbnNsYXRlZCgpLGllPTA9PT10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzVHJhbnNsYXRlZCgpO2xldCBwZT1kOyhXfHxpZSkmJihwZT1kLmNsb25lKCkpLFcmJihwZS5mcm9tLnJvdz0tMSksaWUmJihwZS5mcm9tLmNvbD0tMSksInNpbmdsZSI9PT10'@; put 'aGlzLnNldHRpbmdzLnNlbGVjdGlvbk1vZGU/KHRoaXMuaXNTZWxlY3RlZEJ5QW55SGVhZGVyKCkmJnBlLmZyb20ubm9ybWFsaXplKCksXy5hZGQocGUuZnJvbSkuY29tbWl0KCkpOl8uYWRkKHBlLmZyb20pLmFkZChwZS50bykuY29tbWl0KCksdGhpcy5pc0VudGlyZVJvd1NlbGVjdGVkKCkm'@; put 'JnRoaXMudGFibGVQcm9wcy5jb3VudENvbHMoKT09PWQuZ2V0V2lkdGgoKSYmVC5hZGQodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoZC5mcm9tLnJvdywtMSkpLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhkLnRvLnJvdywtMSkpLmNvbW1pdCgpLHRoaXMu'@; put 'aXNFbnRpcmVDb2x1bW5TZWxlY3RlZCgpJiZ0aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzKCk9PT1kLmdldEhlaWdodCgpJiZULmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcygtMSxkLmZyb20uY29sKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKC0x'@; put 'LGQudG8uY29sKSkuY29tbWl0KCl9dGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclNldFJhbmdlRW5kIixsKX1pc011bHRpcGxlKCl7Y29uc3QgbD1fZyghdGhpcy5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKS5pc1NpbmdsZSgpKTtyZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlcklzTXVs'@; put 'dGlwbGVTZWxlY3Rpb24iLGwpLGwudmFsdWV9dHJhbnNmb3JtU3RhcnQobCxhKXt0aGlzLnNldFJhbmdlU3RhcnQodGhpcy50cmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm1TdGFydChsLGEsYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSkpfXRy'@; put 'YW5zZm9ybUVuZChsLGEpe3RoaXMuc2V0UmFuZ2VFbmQodGhpcy50cmFuc2Zvcm1hdGlvbi50cmFuc2Zvcm1FbmQobCxhKSl9Z2V0TGF5ZXJMZXZlbCgpe3JldHVybiB0aGlzLnNlbGVjdGVkUmFuZ2Uuc2l6ZSgpLTF9aXNTZWxlY3RlZCgpe3JldHVybiF0aGlzLnNlbGVjdGVkUmFuZ2UuaXNF'@; put 'bXB0eSgpfWlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4hdGhpcy5pc1NlbGVjdGVkQnlDb3JuZXIobCkmJnRoaXMuaXNFbnRpcmVSb3dT'@; put 'ZWxlY3RlZChsKX1pc0VudGlyZVJvd1NlbGVjdGVkKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuZ2V0TGF5ZXJMZXZlbCgpO3JldHVybi0xPT09bD90aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuc2l6ZT4wOnRoaXMu'@; put 'c2VsZWN0ZWRCeVJvd0hlYWRlci5oYXMobCl9aXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuZ2V0TGF5ZXJMZXZlbCgpO3JldHVybiF0aGlzLmlzU2VsZWN0ZWRCeUNvcm5l'@; put 'cigpJiZ0aGlzLmlzRW50aXJlQ29sdW1uU2VsZWN0ZWQobCl9aXNFbnRpcmVDb2x1bW5TZWxlY3RlZCgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4tMT09PWw/dGhpcy5zZWxl'@; put 'Y3RlZEJ5Q29sdW1uSGVhZGVyLnNpemU+MDp0aGlzLnNlbGVjdGVkQnlDb2x1bW5IZWFkZXIuaGFzKGwpfWlzU2VsZWN0ZWRCeUFueUhlYWRlcigpe3JldHVybiB0aGlzLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigtMSl8fHRoaXMuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKC0xKXx8dGhpcy5p'@; put 'c1NlbGVjdGVkQnlDb3JuZXIoKX1pc1NlbGVjdGVkQnlDb3JuZXIoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZEJ5Q29ybmVyfWluSW5TZWxlY3Rpb24obCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRSYW5nZS5pbmNsdWRlcyhsKX1pc0NlbGxDb3JuZXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMuc2V0dGlu'@; put 'Z3MuZmlsbEhhbmRsZSYmIXRoaXMudGFibGVQcm9wcy5pc0VkaXRvck9wZW5lZCgpJiYhdGhpcy5pc011bHRpcGxlKCl9aXNBcmVhQ29ybmVyVmlzaWJsZShsKXtyZXR1cm4oIU51bWJlci5pc0ludGVnZXIobCl8fGw9PT10aGlzLmdldExheWVyTGV2ZWwoKSkmJnRoaXMuc2V0dGluZ3MuZmls'@; put 'bEhhbmRsZSYmIXRoaXMudGFibGVQcm9wcy5pc0VkaXRvck9wZW5lZCgpJiZ0aGlzLmlzTXVsdGlwbGUoKX1jbGVhcigpe3RoaXMuc2VsZWN0ZWRSYW5nZS5jbGVhcigpLHRoaXMuaGlnaGxpZ2h0LmNsZWFyKCl9ZGVzZWxlY3QoKXt0aGlzLmlzU2VsZWN0ZWQoKSYmKHRoaXMuaW5Qcm9ncmVz'@; put 'cz0hMSx0aGlzLmNsZWFyKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckRlc2VsZWN0IikpfXNlbGVjdEFsbCgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3Vt'@; put 'ZW50c1sxXSYmYXJndW1lbnRzWzFdO2NvbnN0IGQ9dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLGg9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpO2lmKCEobHx8YXx8MCE9PWQmJjAhPT1oKSlyZXR1cm47Y29uc3QgZj10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhhPy0x'@; put 'OjAsbD8tMTowKSxfPXRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKGQtMSxoLTEpO3RoaXMuY2xlYXIoKSx0aGlzLnNldFJhbmdlU3RhcnRPbmx5KGYpLHRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHRoaXMuc2VsZWN0ZWRCeUNvbHVt'@; put 'bkhlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHRoaXMuc2V0UmFuZ2VFbmQoXyksdGhpcy5maW5pc2goKX1zZWxlY3RDZWxscyhsKXtjb25zdCBhPWc3KGwpO2lmKDE9PT1hKXJldHVybiExO2lmKDA9PT1hKXRocm93IG5ldyBFcnJvcihBYWBVbnN1cHBvcnRlZCBmb3JtYXQgb2Yg'@; put 'dGhlIHNlbGVjdGlvbiByYW5nZXMgd2FzIHBhc3NlZC4gVG8gc2VsZWN0IGNlbGxzIHBhc3NceDIwCiAgICAgICAgdGhlIGNvb3JkaW5hdGVzIGFzIGFuIGFycmF5IG9mIGFycmF5cyAoW1tyb3dTdGFydCwgY29sdW1uU3RhcnQvY29sdW1uUHJvcFN0YXJ0LCByb3dFbmQsXHgyMAogICAgICAg'@; put 'IGNvbHVtbkVuZC9jb2x1bW5Qcm9wRW5kXV0pIG9yIGFzIGFuIGFycmF5IG9mIENlbGxSYW5nZSBvYmplY3RzLmApO2NvbnN0IGQ9d3koYSx7cHJvcFRvQ29sOlQ9PnRoaXMudGFibGVQcm9wcy5wcm9wVG9Db2woVCksa2VlcERpcmVjdGlvbjohMH0pLGg9dGhpcy50YWJsZVByb3BzLmNvdW50'@; put 'Um93cygpLGY9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLF89IWwuc29tZShUPT57Y29uc3RbVyxpZSxwZSx3ZV09ZChUKTtyZXR1cm4hKEdwKFcsaCkmJkdwKGllLGYpJiZHcChwZSxoKSYmR3Aod2UsZikpfSk7cmV0dXJuIF8mJih0aGlzLmNsZWFyKCksRG4obCxUPT57Y29uc3RbVyxp'@; put 'ZSxwZSx3ZV09ZChUKTt0aGlzLnNldFJhbmdlU3RhcnRPbmx5KHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKFcsaWUpLCExKSx0aGlzLnNldFJhbmdlRW5kKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHBlLHdlKSksdGhpcy5maW5pc2goKX0pKSxffXNlbGVjdENv'@; put 'bHVtbnMobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmwsZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06LTE7Y29uc3QgaD0ic3RyaW5nIj09dHlwZW9mIGw/dGhpcy50'@; put 'YWJsZVByb3BzLnByb3BUb0NvbChsKTpsLGY9InN0cmluZyI9PXR5cGVvZiBhP3RoaXMudGFibGVQcm9wcy5wcm9wVG9Db2woYSk6YSxfPXRoaXMudGFibGVQcm9wcy5jb3VudENvbHMoKSxUPXRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKSxXPUdwKGgsXykmJkdwKGYsXyk7cmV0dXJuIFcm'@; put 'Jih0aGlzLnNldFJhbmdlU3RhcnRPbmx5KHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKGQsaCkpLHRoaXMuc2V0UmFuZ2VFbmQodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoVC0xLGYpKSx0aGlzLmZpbmlzaCgpKSxXfXNlbGVjdFJvd3MobCl7bGV0IGE9YXJndW1l'@; put 'bnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmwsZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06LTE7Y29uc3QgaD10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzKCksZj10aGlzLnRhYmxlUHJvcHMu'@; put 'Y291bnRDb2xzKCksXz1HcChsLGgpJiZHcChhLGgpO3JldHVybiBfJiYodGhpcy5zZXRSYW5nZVN0YXJ0T25seSh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhsLGQpKSx0aGlzLnNldFJhbmdlRW5kKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKGEsZi0xKSksdGhp'@; put 'cy5maW5pc2goKSksX31yZWZyZXNoKCl7aWYodGhpcy5oaWdobGlnaHQuZ2V0Q3VzdG9tU2VsZWN0aW9ucygpLmZvckVhY2goaD0+e2guY29tbWl0KCl9KSwhdGhpcy5pc1NlbGVjdGVkKCkpcmV0dXJuO2NvbnN0IGE9dGhpcy5oaWdobGlnaHQuZ2V0Q2VsbCgpLGQ9dGhpcy5nZXRMYXllckxl'@; put 'dmVsKCk7YS5jb21taXQoKS5zeW5jV2l0aCh0aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpKTtmb3IobGV0IGg9MDtoPHRoaXMuc2VsZWN0ZWRSYW5nZS5zaXplKCk7aCs9MSl7dGhpcy5oaWdobGlnaHQudXNlTGF5ZXJMZXZlbChoKTtjb25zdCBmPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9y'@; put 'R2V0QXJlYSgpLF89dGhpcy5oaWdobGlnaHQuY3JlYXRlT3JHZXRIZWFkZXIoKSxUPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QWN0aXZlSGVhZGVyKCk7Zi5jb21taXQoKSxfLmNvbW1pdCgpLFQuY29tbWl0KCl9dGhpcy5oaWdobGlnaHQudXNlTGF5ZXJMZXZlbChkKX19VGEoUG5lLE8w'@; put 'KTtjb25zdCBFRGU9UG5lLHtyZWdpc3RlcjprRGUsZ2V0SXRlbTpBRGUsaGFzSXRlbTpGbmUsZ2V0TmFtZXM6VERlfT1wZCgiY2VsbFR5cGVzIik7ZnVuY3Rpb24gVUIoYyl7aWYoIUZuZShjKSl0aHJvdyBFcnJvcihgWW91IGRlY2xhcmVkIGNlbGwgdHlwZSAiJHtjfSIgYXMgYSBzdHJpbmcg'@; put 'dGhhdCBpcyBub3QgbWFwcGVkIHRvIGEga25vd24gb2JqZWN0LlxuICAgICAgICAgICAgICAgICBDZWxsIHR5cGUgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBzdHJpbmcgbWFwcGVkIHRvIGFuIG9iamVjdCByZWdpc3RlcmVkIGJ5XG4gICAgICAgICAgICAgICAgICJIYW5kc29udGFibGUuY2Vs'@; put 'bFR5cGVzLnJlZ2lzdGVyQ2VsbFR5cGUiIG1ldGhvZGApO3JldHVybiBBRGUoYyl9ZnVuY3Rpb24gYjIoYyxsKXsic3RyaW5nIiE9dHlwZW9mIGMmJihjPShsPWMpLkNFTExfVFlQRSk7Y29uc3R7ZWRpdG9yOmEscmVuZGVyZXI6ZCx2YWxpZGF0b3I6aH09bDthJiZSMChjLGEpLGQmJnBoKGMs'@; put 'ZCksaCYmYTcoYyxoKSxrRGUoYyxsKX1mdW5jdGlvbiBWayhjLGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpjO2NvbnN0IGQ9InN0cmluZyI9PXR5cGVvZiBsLnR5cGU/VUIobC50eXBlKTpsLnR5cGU7aWYoYy5fYXV0b21h'@; put 'dGljYWxseUFzc2lnbmVkTWV0YVByb3BzJiZkcyhsLChmLF8pPT57Yy5fYXV0b21hdGljYWxseUFzc2lnbmVkTWV0YVByb3BzLmRlbGV0ZShfKX0pLCF1cyhkKSlyZXR1cm47YT09PWMmJiFjLl9hdXRvbWF0aWNhbGx5QXNzaWduZWRNZXRhUHJvcHMmJihjLl9hdXRvbWF0aWNhbGx5QXNzaWdu'@; put 'ZWRNZXRhUHJvcHM9bmV3IFNldCk7Y29uc3QgaD17fTtkcyhkLChmLF8pPT57dmFyIFQ7KGZ1bmN0aW9uIEREZShjLGwpe3ZhciBhO3JldHVybiJDRUxMX1RZUEUiIT09YyYmKChudWxsPT09KGE9bC5fYXV0b21hdGljYWxseUFzc2lnbmVkTWV0YVByb3BzKXx8dm9pZCAwPT09YT92b2lkIDA6'@; put 'YS5oYXMoYykpfHwhYmwobCxjKSl9KShfLGEpJiYoaFtfXT1mLG51bGw9PT0oVD1jLl9hdXRvbWF0aWNhbGx5QXNzaWduZWRNZXRhUHJvcHMpfHx2b2lkIDA9PT1UfHxULmFkZChfKSl9KSxYbChjLGgpfWZ1bmN0aW9uIEJrKGMpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGMpJiZjPj0wfWZ1'@; put 'bmN0aW9uIGprKGMsbCl7aWYoIWMoKSl0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbiBmYWlsZWQ6ICR7bH1gKX1mdW5jdGlvbiB6ayhjKXtyZXR1cm4gbnVsbD09Y31jb25zdCBIbmU9KCk9Pih7X2F1dG9tYXRpY2FsbHlBc3NpZ25lZE1ldGFQcm9wczp2b2lkIDAsYWN0aXZlSGVhZGVyQ2xh'@; put 'c3NOYW1lOiJodF9fYWN0aXZlX2hpZ2hsaWdodCIsYWxsb3dFbXB0eTohMCxhbGxvd0h0bWw6ITEsYWxsb3dJbnNlcnRDb2x1bW46ITAsYWxsb3dJbnNlcnRSb3c6ITAsYWxsb3dJbnZhbGlkOiEwLGFsbG93UmVtb3ZlQ29sdW1uOiEwLGFsbG93UmVtb3ZlUm93OiEwLGF1dG9Db2x1bW5TaXpl'@; put 'OnZvaWQgMCxhdXRvUm93U2l6ZTp2b2lkIDAsYXV0b1dyYXBDb2w6ITEsYXV0b1dyYXBSb3c6ITEsYmluZFJvd3NXaXRoSGVhZGVyczp2b2lkIDAsY2VsbDpbXSxjZWxsczp2b2lkIDAsY2hlY2tlZFRlbXBsYXRlOnZvaWQgMCxjbGFzc05hbWU6dm9pZCAwLGNvbEhlYWRlcnM6bnVsbCxjb2xs'@; put 'YXBzaWJsZUNvbHVtbnM6dm9pZCAwLGNvbHVtbkhlYWRlckhlaWdodDp2b2lkIDAsY29sdW1uczp2b2lkIDAsY29sdW1uU29ydGluZzp2b2lkIDAsY29sdW1uU3VtbWFyeTp2b2lkIDAsY29sV2lkdGhzOnZvaWQgMCxjb21tZW50ZWRDZWxsQ2xhc3NOYW1lOiJodENvbW1lbnRDZWxsIixjb21t'@; put 'ZW50czohMSxjb250ZXh0TWVudTp2b2lkIDAsY29weWFibGU6ITAsY29weVBhc3RlOiEwLGNvcnJlY3RGb3JtYXQ6ITEsY3VycmVudENvbENsYXNzTmFtZTp2b2lkIDAsY3VycmVudEhlYWRlckNsYXNzTmFtZToiaHRfX2hpZ2hsaWdodCIsY3VycmVudFJvd0NsYXNzTmFtZTp2b2lkIDAsY3Vz'@; put 'dG9tQm9yZGVyczohMSxkYXRhOnZvaWQgMCxkYXRhU2NoZW1hOnZvaWQgMCxkYXRlRm9ybWF0OiJERC9NTS9ZWVlZIixkYXRlUGlja2VyQ29uZmlnOnZvaWQgMCxkZWZhdWx0RGF0ZTp2b2lkIDAsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjohMSxkcmFnVG9TY3JvbGw6ITAsZHJvcGRvd25NZW51'@; put 'OnZvaWQgMCxlZGl0b3I6dm9pZCAwLGVudGVyQmVnaW5zRWRpdGluZzohMCxlbnRlck1vdmVzOntjb2w6MCxyb3c6MX0sZmlsbEhhbmRsZTp7YXV0b0luc2VydFJvdzohMX0sZmlsdGVyOiEwLGZpbHRlcmluZ0Nhc2VTZW5zaXRpdmU6ITEsZmlsdGVyczp2b2lkIDAsZml4ZWRDb2x1bW5zTGVm'@; put 'dDowLGZpeGVkQ29sdW1uc1N0YXJ0OjAsZml4ZWRSb3dzQm90dG9tOjAsZml4ZWRSb3dzVG9wOjAsZm9ybXVsYXM6dm9pZCAwLGZyYWdtZW50U2VsZWN0aW9uOiExLGhlaWdodDp2b2lkIDAsaGlkZGVuQ29sdW1uczp2b2lkIDAsaGlkZGVuUm93czp2b2lkIDAsaW52YWxpZENlbGxDbGFzc05h'@; put 'bWU6Imh0SW52YWxpZCIsaXNFbXB0eUNvbChjKXtsZXQgbCxhLGQ7Zm9yKGw9MCxhPXRoaXMuY291bnRSb3dzKCk7bDxhO2wrKylpZihkPXRoaXMuZ2V0RGF0YUF0Q2VsbChsLGMpLCExPT09Z2MoZCkpcmV0dXJuITE7cmV0dXJuITB9LGlzRW1wdHlSb3coYyl7bGV0IGwsYSxkLGg7Zm9yKGw9'@; put 'MCxhPXRoaXMuY291bnRDb2xzKCk7bDxhO2wrKylpZihkPXRoaXMuZ2V0RGF0YUF0Q2VsbChjLGwpLCExPT09Z2MoZCkpcmV0dXJuIm9iamVjdCI9PXR5cGVvZiBkJiYoaD10aGlzLmdldENlbGxNZXRhKGMsbCksbGsodGhpcy5nZXRTY2hlbWEoKVtoLnByb3BdLGQpKTtyZXR1cm4hMH0sbGFi'@; put 'ZWw6dm9pZCAwLGxhbmd1YWdlOiJlbi1VUyIsbGF5b3V0RGlyZWN0aW9uOiJpbmhlcml0IixsaWNlbnNlS2V5OnZvaWQgMCxsb2NhbGU6ImVuLVVTIixtYW51YWxDb2x1bW5GcmVlemU6dm9pZCAwLG1hbnVhbENvbHVtbk1vdmU6dm9pZCAwLG1hbnVhbENvbHVtblJlc2l6ZTp2b2lkIDAsbWFu'@; put 'dWFsUm93TW92ZTp2b2lkIDAsbWFudWFsUm93UmVzaXplOnZvaWQgMCxtYXhDb2xzOjEvMCxtYXhSb3dzOjEvMCxtZXJnZUNlbGxzOiExLG1pbkNvbHM6MCxtaW5Sb3dzOjAsbWluU3BhcmVDb2xzOjAsbWluU3BhcmVSb3dzOjAsbXVsdGlDb2x1bW5Tb3J0aW5nOnZvaWQgMCxuZXN0ZWRIZWFk'@; put 'ZXJzOnZvaWQgMCxuZXN0ZWRSb3dzOnZvaWQgMCxub1dvcmRXcmFwQ2xhc3NOYW1lOiJodE5vV3JhcCIsbnVtZXJpY0Zvcm1hdDp2b2lkIDAsb2JzZXJ2ZURPTVZpc2liaWxpdHk6ITAsb3V0c2lkZUNsaWNrRGVzZWxlY3RzOiEwLHBlcnNpc3RlbnRTdGF0ZTp2b2lkIDAscGxhY2Vob2xkZXI6'@; put 'dm9pZCAwLHBsYWNlaG9sZGVyQ2VsbENsYXNzTmFtZToiaHRQbGFjZWhvbGRlciIscHJldmVudE92ZXJmbG93OiExLHByZXZlbnRXaGVlbDohMSxyZWFkT25seTohMSxyZWFkT25seUNlbGxDbGFzc05hbWU6Imh0RGltbWVkIixyZW5kZXJBbGxSb3dzOnZvaWQgMCxyZW5kZXJlcjp2b2lkIDAs'@; put 'cm93SGVhZGVyczp2b2lkIDAscm93SGVhZGVyV2lkdGg6dm9pZCAwLHJvd0hlaWdodHM6dm9pZCAwLHNlYXJjaDohMSxzZWxlY3Rpb25Nb2RlOiJtdWx0aXBsZSIsc2VsZWN0T3B0aW9uczp2b2lkIDAsc2tpcENvbHVtbk9uUGFzdGU6ITEsc2tpcFJvd09uUGFzdGU6ITEsc29ydEJ5UmVsZXZh'@; put 'bmNlOiEwLHNvdXJjZTp2b2lkIDAsc3RhcnRDb2xzOjUsc3RhcnRSb3dzOjUsc3RyZXRjaEg6Im5vbmUiLHN0cmljdDp2b2lkIDAsdGFibGVDbGFzc05hbWU6dm9pZCAwLHRhYk1vdmVzOntyb3c6MCxjb2w6MX0sdGl0bGU6dm9pZCAwLHRyaW1Ecm9wZG93bjohMCx0cmltUm93czp2b2lkIDAs'@; put 'dHJpbVdoaXRlc3BhY2U6ITAsdHlwZToidGV4dCIsdW5jaGVja2VkVGVtcGxhdGU6dm9pZCAwLHVuZG86dm9pZCAwLHZhbGlkYXRvcjp2b2lkIDAsdmlld3BvcnRDb2x1bW5SZW5kZXJpbmdPZmZzZXQ6ImF1dG8iLHZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0OiJhdXRvIix2aXNpYmxlUm93'@; put 'czoxMCx3aWR0aDp2b2lkIDAsd29yZFdyYXA6ITB9KTtjbGFzcyBSRGV7Y29uc3RydWN0b3IobCl7dGhpcy5tZXRhQ3Rvcj1jbGFzc3t9LHRoaXMubWV0YT10aGlzLm1ldGFDdG9yLnByb3RvdHlwZSxYbCh0aGlzLm1ldGEsSG5lKCkpLHRoaXMubWV0YS5pbnN0YW5jZT1sfWdldE1ldGFDb25z'@; put 'dHJ1Y3Rvcigpe3JldHVybiB0aGlzLm1ldGFDdG9yfWdldE1ldGEoKXtyZXR1cm4gdGhpcy5tZXRhfXVwZGF0ZU1ldGEobCl7dmFyIGE7WGwodGhpcy5tZXRhLGwpLFZrKHRoaXMubWV0YSx7Li4ubCx0eXBlOm51bGwhPT0oYT1sLnR5cGUpJiZ2b2lkIDAhPT1hP2E6dGhpcy5tZXRhLnR5cGV9'@; put 'LGwpfX1jbGFzcyBPRGV7Y29uc3RydWN0b3IobCl7Y29uc3QgYT1sLmdldE1ldGFDb25zdHJ1Y3RvcigpO3RoaXMubWV0YT1uZXcgYX1nZXRNZXRhKCl7cmV0dXJuIHRoaXMubWV0YX11cGRhdGVNZXRhKGwpe1hsKHRoaXMubWV0YSxsKSxWayh0aGlzLm1ldGEsbCxsKX19Y2xhc3MgWkJ7Y29u'@; put 'c3RydWN0b3IobCl7dGhpcy52YWx1ZUZhY3Rvcnk9bCx0aGlzLmRhdGE9W10sdGhpcy5pbmRleD1bXSx0aGlzLmhvbGVzPW5ldyBTZXR9b2J0YWluKGwpe2prKCgpPT5CayhsKSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlci4iKTtjb25zdCBhPXRoaXMuX2dldFN0b3JhZ2VJbmRleEJ5'@; put 'S2V5KGwpO2xldCBkO2lmKGE+PTApZD10aGlzLmRhdGFbYV0sdm9pZCAwPT09ZCYmKGQ9dGhpcy52YWx1ZUZhY3RvcnkobCksdGhpcy5kYXRhW2FdPWQpO2Vsc2UgaWYoZD10aGlzLnZhbHVlRmFjdG9yeShsKSx0aGlzLmhvbGVzLnNpemU+MCl7Y29uc3QgaD10aGlzLmhvbGVzLnZhbHVlcygp'@; put 'Lm5leHQoKS52YWx1ZTt0aGlzLmhvbGVzLmRlbGV0ZShoKSx0aGlzLmRhdGFbaF09ZCx0aGlzLmluZGV4W2xdPWh9ZWxzZSB0aGlzLmRhdGEucHVzaChkKSx0aGlzLmluZGV4W2xdPXRoaXMuZGF0YS5sZW5ndGgtMTtyZXR1cm4gZH1pbnNlcnQobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4x'@; put 'JiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7amsoKCk9PkJrKGwpfHx6ayhsKSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlciBvciBudWxsL3VuZGVmaW5lZCBhcmd1bWVudC4iKTtjb25zdCBkPVtdLGg9dGhpcy5kYXRhLmxlbmd0aDtmb3IobGV0IF89MDtfPGE7'@; put 'XysrKWQucHVzaChoK18pLHRoaXMuZGF0YS5wdXNoKHZvaWQgMCk7Y29uc3QgZj16ayhsKT90aGlzLmluZGV4Lmxlbmd0aDpsO3RoaXMuaW5kZXg9Wy4uLnRoaXMuaW5kZXguc2xpY2UoMCxmKSwuLi5kLC4uLnRoaXMuaW5kZXguc2xpY2UoZildfXJlbW92ZShsKXtsZXQgYT1hcmd1bWVudHMu'@; put 'bGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MTtqaygoKT0+QmsobCl8fHprKGwpLCJFeHBlY3RpbmcgYW4gdW5zaWduZWQgbnVtYmVyIG9yIG51bGwvdW5kZWZpbmVkIGFyZ3VtZW50LiIpO2NvbnN0IGQ9dGhpcy5pbmRleC5zcGxpY2UoemsobCk/dGhpcy5p'@; put 'bmRleC5sZW5ndGgtYTpsLGEpO2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdCBmPWRbaF07Im51bWJlciI9PXR5cGVvZiBmJiZ0aGlzLmhvbGVzLmFkZChmKX19c2l6ZSgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoLXRoaXMuaG9sZXMuc2l6ZX12YWx1ZXMoKXtyZXR1cm4gXzEo'@; put 'dGhpcy5kYXRhLChsLGEpPT4hdGhpcy5ob2xlcy5oYXMoYSkpW1N5bWJvbC5pdGVyYXRvcl0oKX1lbnRyaWVzKCl7Y29uc3QgbD1bXTtmb3IobGV0IGQ9MDtkPHRoaXMuZGF0YS5sZW5ndGg7ZCsrKXtjb25zdCBoPXRoaXMuX2dldEtleUJ5U3RvcmFnZUluZGV4KGQpOy0xIT09aCYmbC5wdXNo'@; put 'KFtoLHRoaXMuZGF0YVtkXV0pfWxldCBhPTA7cmV0dXJue25leHQ6KCk9PntpZihhPGwubGVuZ3RoKXtjb25zdCBkPWxbYV07cmV0dXJuIGErPTEse3ZhbHVlOmQsZG9uZTohMX19cmV0dXJue2RvbmU6ITB9fX19Y2xlYXIoKXt0aGlzLmRhdGE9W10sdGhpcy5pbmRleD1bXSx0aGlzLmhvbGVz'@; put 'LmNsZWFyKCl9X2dldFN0b3JhZ2VJbmRleEJ5S2V5KGwpe3JldHVybiB0aGlzLmluZGV4Lmxlbmd0aD5sP3RoaXMuaW5kZXhbbF06LTF9X2dldEtleUJ5U3RvcmFnZUluZGV4KGwpe3JldHVybiB0aGlzLmluZGV4LmluZGV4T2YobCl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5l'@; put 'bnRyaWVzKCl9fWNvbnN0IFBEZT1bImRhdGEiLCJ3aWR0aCJdO2NsYXNzIEZEZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmdsb2JhbE1ldGE9bCx0aGlzLm1ldGFzPW5ldyBaQigoKT0+dGhpcy5fY3JlYXRlTWV0YSgpKX11cGRhdGVNZXRhKGwsYSl7Y29uc3QgZD10aGlzLmdldE1ldGEobCk7WGwo'@; put 'ZCxhKSxWayhkLGEpfWNyZWF0ZUNvbHVtbihsLGEpe3RoaXMubWV0YXMuaW5zZXJ0KGwsYSl9cmVtb3ZlQ29sdW1uKGwsYSl7dGhpcy5tZXRhcy5yZW1vdmUobCxhKX1nZXRNZXRhKGwpe3JldHVybiB0aGlzLm1ldGFzLm9idGFpbihsKX1nZXRNZXRhQ29uc3RydWN0b3IobCl7cmV0dXJuIHRo'@; put 'aXMubWV0YXMub2J0YWluKGwpLmNvbnN0cnVjdG9yfWNsZWFyQ2FjaGUoKXt0aGlzLm1ldGFzLmNsZWFyKCl9X2NyZWF0ZU1ldGEoKXtyZXR1cm4gZnVuY3Rpb24gSURlKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXTtm'@; put 'dW5jdGlvbiBhKCl7fXpmKGEsYyk7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspYS5wcm90b3R5cGVbbFtkXV09dm9pZCAwO3JldHVybiBhfSh0aGlzLmdsb2JhbE1ldGEuZ2V0TWV0YUNvbnN0cnVjdG9yKCksUERlKS5wcm90b3R5cGV9fWNsYXNzIEhEZXtjb25zdHJ1Y3RvcihsKXt0aGlz'@; put 'LmNvbHVtbk1ldGE9bCx0aGlzLm1ldGFzPW5ldyBaQigoKT0+dGhpcy5fY3JlYXRlUm93KCkpfXVwZGF0ZU1ldGEobCxhLGQpe2NvbnN0IGg9dGhpcy5nZXRNZXRhKGwsYSk7WGwoaCxkKSxWayhoLGQpfWNyZWF0ZVJvdyhsLGEpe3RoaXMubWV0YXMuaW5zZXJ0KGwsYSl9Y3JlYXRlQ29sdW1u'@; put 'KGwsYSl7Zm9yKGxldCBkPTA7ZDx0aGlzLm1ldGFzLnNpemUoKTtkKyspdGhpcy5tZXRhcy5vYnRhaW4oZCkuaW5zZXJ0KGwsYSl9cmVtb3ZlUm93KGwsYSl7dGhpcy5tZXRhcy5yZW1vdmUobCxhKX1yZW1vdmVDb2x1bW4obCxhKXtmb3IobGV0IGQ9MDtkPHRoaXMubWV0YXMuc2l6ZSgpO2Qr'@; put 'Kyl0aGlzLm1ldGFzLm9idGFpbihkKS5yZW1vdmUobCxhKX1nZXRNZXRhKGwsYSxkKXtjb25zdCBoPXRoaXMubWV0YXMub2J0YWluKGwpLm9idGFpbihhKTtyZXR1cm4gdm9pZCAwPT09ZD9oOmhbZF19c2V0TWV0YShsLGEsZCxoKXt2YXIgZjtjb25zdCBfPXRoaXMubWV0YXMub2J0YWluKGwp'@; put 'Lm9idGFpbihhKTtudWxsPT09KGY9Xy5fYXV0b21hdGljYWxseUFzc2lnbmVkTWV0YVByb3BzKXx8dm9pZCAwPT09Znx8Zi5kZWxldGUoZCksX1tkXT1ofXJlbW92ZU1ldGEobCxhLGQpe2RlbGV0ZSB0aGlzLm1ldGFzLm9idGFpbihsKS5vYnRhaW4oYSlbZF19Z2V0TWV0YXMoKXtjb25zdCBs'@; put 'PVtdLGE9QXJyYXkuZnJvbSh0aGlzLm1ldGFzLnZhbHVlcygpKTtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrKylsLnB1c2goLi4uYVtkXS52YWx1ZXMoKSk7cmV0dXJuIGx9Z2V0TWV0YXNBdFJvdyhsKXtqaygoKT0+QmsobCksIkV4cGVjdGluZyBhbiB1bnNpZ25lZCBudW1iZXIuIik7Y29u'@; put 'c3QgYT1uZXcgTWFwKHRoaXMubWV0YXMpO3JldHVybiBhLmhhcyhsKT9BcnJheS5mcm9tKGEuZ2V0KGwpLnZhbHVlcygpKTpbXX1jbGVhckNhY2hlKCl7dGhpcy5tZXRhcy5jbGVhcigpfV9jcmVhdGVSb3coKXtyZXR1cm4gbmV3IFpCKGw9PnRoaXMuX2NyZWF0ZU1ldGEobCkpfV9jcmVhdGVN'@; put 'ZXRhKGwpe3JldHVybiBuZXcodGhpcy5jb2x1bW5NZXRhLmdldE1ldGFDb25zdHJ1Y3RvcihsKSl9fWNsYXNzIE5uZXtjb25zdHJ1Y3RvcihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sZD1hcmd1bWVudHMubGVuZ3Ro'@; put 'PjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W107dGhpcy5ob3Q9bCx0aGlzLmdsb2JhbE1ldGE9bmV3IFJEZShsKSx0aGlzLnRhYmxlTWV0YT1uZXcgT0RlKHRoaXMuZ2xvYmFsTWV0YSksdGhpcy5jb2x1bW5NZXRhPW5ldyBGRGUodGhpcy5nbG9iYWxNZXRhKSx0aGlz'@; put 'LmNlbGxNZXRhPW5ldyBIRGUodGhpcy5jb2x1bW5NZXRhKSxkLmZvckVhY2goaD0+bmV3IGgodGhpcykpLHRoaXMuZ2xvYmFsTWV0YS51cGRhdGVNZXRhKGEpfWdldEdsb2JhbE1ldGEoKXtyZXR1cm4gdGhpcy5nbG9iYWxNZXRhLmdldE1ldGEoKX11cGRhdGVHbG9iYWxNZXRhKGwpe3RoaXMu'@; put 'Z2xvYmFsTWV0YS51cGRhdGVNZXRhKGwpfWdldFRhYmxlTWV0YSgpe3JldHVybiB0aGlzLnRhYmxlTWV0YS5nZXRNZXRhKCl9dXBkYXRlVGFibGVNZXRhKGwpe3RoaXMudGFibGVNZXRhLnVwZGF0ZU1ldGEobCl9Z2V0Q29sdW1uTWV0YShsKXtyZXR1cm4gdGhpcy5jb2x1bW5NZXRhLmdldE1l'@; put 'dGEobCl9dXBkYXRlQ29sdW1uTWV0YShsLGEpe3RoaXMuY29sdW1uTWV0YS51cGRhdGVNZXRhKGwsYSl9Z2V0Q2VsbE1ldGEobCxhLGQpe2xldHt2aXN1YWxSb3c6aCx2aXN1YWxDb2x1bW46Zn09ZDtjb25zdCBfPXRoaXMuY2VsbE1ldGEuZ2V0TWV0YShsLGEpO3JldHVybiBfLnZpc3VhbFJv'@; put 'dz1oLF8udmlzdWFsQ29sPWYsXy5yb3c9bCxfLmNvbD1hLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJHZXRDZWxsTWV0YSIsXyksX31nZXRDZWxsTWV0YUtleVZhbHVlKGwsYSxkKXtpZigic3RyaW5nIiE9dHlwZW9mIGQpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGFzc2VkIGNlbGwgbWV0YSBv'@; put 'YmplY3Qga2V5IGlzIG5vdCBhIHN0cmluZyIpO3JldHVybiB0aGlzLmNlbGxNZXRhLmdldE1ldGEobCxhLGQpfXNldENlbGxNZXRhKGwsYSxkLGgpe3RoaXMuY2VsbE1ldGEuc2V0TWV0YShsLGEsZCxoKX11cGRhdGVDZWxsTWV0YShsLGEsZCl7dGhpcy5jZWxsTWV0YS51cGRhdGVNZXRhKGws'@; put 'YSxkKX1yZW1vdmVDZWxsTWV0YShsLGEsZCl7dGhpcy5jZWxsTWV0YS5yZW1vdmVNZXRhKGwsYSxkKX1nZXRDZWxsc01ldGEoKXtyZXR1cm4gdGhpcy5jZWxsTWV0YS5nZXRNZXRhcygpfWdldENlbGxzTWV0YUF0Um93KGwpe3JldHVybiB0aGlzLmNlbGxNZXRhLmdldE1ldGFzQXRSb3cobCl9'@; put 'Y3JlYXRlUm93KGwpe3RoaXMuY2VsbE1ldGEuY3JlYXRlUm93KGwsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEpfXJlbW92ZVJvdyhsKXt0aGlzLmNlbGxNZXRhLnJlbW92ZVJvdyhsLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09'@; put 'YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxKX1jcmVhdGVDb2x1bW4obCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5jcmVhdGVDb2x1bW4obCxhKSx0aGlzLmNvbHVtbk1ldGEuY3JlYXRlQ29s'@; put 'dW1uKGwsYSl9cmVtb3ZlQ29sdW1uKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxO3RoaXMuY2VsbE1ldGEucmVtb3ZlQ29sdW1uKGwsYSksdGhpcy5jb2x1bW5NZXRhLnJlbW92ZUNvbHVtbihsLGEpfWNsZWFyQ2VsbHND'@; put 'YWNoZSgpe3RoaXMuY2VsbE1ldGEuY2xlYXJDYWNoZSgpfWNsZWFyQ2FjaGUoKXt0aGlzLmNlbGxNZXRhLmNsZWFyQ2FjaGUoKSx0aGlzLmNvbHVtbk1ldGEuY2xlYXJDYWNoZSgpfX1UYShObmUsTzApO2NsYXNzIE5EZXtjb25zdHJ1Y3RvcihsKXt0aGlzLm1ldGFNYW5hZ2VyPWwsdGhpcy5t'@; put 'ZXRhU3luY01lbW89bmV3IE1hcCxsLmFkZExvY2FsSG9vaygiYWZ0ZXJHZXRDZWxsTWV0YSIsYT0+dGhpcy5leHRlbmRDZWxsTWV0YShhKSksc28uZ2V0U2luZ2xldG9uKCkuYWRkKCJiZWZvcmVSZW5kZXIiLGE9PnthJiZ0aGlzLm1ldGFTeW5jTWVtby5jbGVhcigpfSx0aGlzLm1ldGFNYW5h'@; put 'Z2VyLmhvdCl9ZXh0ZW5kQ2VsbE1ldGEobCl7dmFyIGE7Y29uc3R7cm93OmQsY29sOmh9PWw7aWYobnVsbCE9PShhPXRoaXMubWV0YVN5bmNNZW1vLmdldChkKSkmJnZvaWQgMCE9PWEmJmEuaGFzKGgpKXJldHVybjtjb25zdHt2aXN1YWxSb3c6Zix2aXN1YWxDb2w6X309bCxUPXRoaXMubWV0'@; put 'YU1hbmFnZXIuaG90LFc9VC5jb2xUb1Byb3AoXyk7bC5wcm9wPVcsVC5ydW5Ib29rcygiYmVmb3JlR2V0Q2VsbE1ldGEiLGYsXyxsKTtjb25zdCBpZT1ibChsLCJ0eXBlIik/bC50eXBlOm51bGw7bGV0IHBlPVJhKGwuY2VsbHMpP2wuY2VsbHMoZCxoLFcpOm51bGw7aWYoaWUpaWYocGUpe3Zh'@; put 'ciB3ZTtwZS50eXBlPW51bGwhPT0od2U9cGUudHlwZSkmJnZvaWQgMCE9PXdlP3dlOmllfWVsc2UgcGU9e3R5cGU6aWV9O3BlJiZ0aGlzLm1ldGFNYW5hZ2VyLnVwZGF0ZUNlbGxNZXRhKGQsaCxwZSksVC5ydW5Ib29rcygiYWZ0ZXJHZXRDZWxsTWV0YSIsZixfLGwpLHRoaXMubWV0YVN5bmNN'@; put 'ZW1vLmhhcyhkKXx8dGhpcy5tZXRhU3luY01lbW8uc2V0KGQsbmV3IFNldCksdGhpcy5tZXRhU3luY01lbW8uZ2V0KGQpLmFkZChoKX19Y2xhc3MgVkRle2NvbnN0cnVjdG9yKGwpe3RoaXMubWV0YU1hbmFnZXI9bCx0aGlzLnVzYWdlVHJhY2tlcj1uZXcgU2V0LHRoaXMucHJvcERlc2NyaXB0'@; put 'b3JzPW5ldyBNYXAoW1siZml4ZWRDb2x1bW5zTGVmdCIse3RhcmdldDoiZml4ZWRDb2x1bW5zU3RhcnQiLG9uQ2hhbmdlKGEpe2lmKHRoaXMubWV0YU1hbmFnZXIuaG90LmlzUnRsKCkmJiJmaXhlZENvbHVtbnNMZWZ0Ij09PWEpdGhyb3cgbmV3IEVycm9yKCJUaGUgYGZpeGVkQ29sdW1uc0xl'@; put 'ZnRgIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFJUTC4gUGxlYXNlIHVzZSBvcHRpb24gYGZpeGVkQ29sdW1uc1N0YXJ0YC4iKTtpZih0aGlzLnVzYWdlVHJhY2tlci5oYXMoImZpeGVkQ29sdW1uc0xlZnQiKSYmdGhpcy51c2FnZVRyYWNrZXIuaGFzKCJmaXhlZENvbHVtbnNTdGFydCIpKXRocm93'@; put 'IG5ldyBFcnJvcigiVGhlIGBmaXhlZENvbHVtbnNMZWZ0YCBhbmQgYGZpeGVkQ29sdW1uc1N0YXJ0YCBzaG91bGQgbm90IGJlIHVzZWQgdG9nZXRoZXIuIFBsZWFzZSB1c2Ugb25seSB0aGUgb3B0aW9uIGBmaXhlZENvbHVtbnNTdGFydGAuIil9fV0sWyJsYXlvdXREaXJlY3Rpb24iLHtvbkNo'@; put 'YW5nZShhLGQsaCl7aWYoIWgpdGhyb3cgbmV3IEVycm9yKGBUaGUgXGAke2F9XGAgb3B0aW9uIGNhbiBub3QgYmUgdXBkYXRlZCBhZnRlciB0aGUgSGFuZHNvbnRhYmxlIGlzIGluaXRpYWxpemVkLmApfX1dXSksdGhpcy5leHRlbmRNZXRhUHJvcHMoKX1leHRlbmRNZXRhUHJvcHMoKXt0aGlz'@; put 'LnByb3BEZXNjcmlwdG9ycy5mb3JFYWNoKChsLGEpPT57Y29uc3R7dGFyZ2V0OmQsb25DaGFuZ2U6aD0oKCk9Pnt9KX09bCxmPSJzdHJpbmciPT10eXBlb2YgZCxfPWY/ZDphLFQ9YF8ke199YDt0aGlzLm1ldGFNYW5hZ2VyLmdsb2JhbE1ldGEubWV0YVtUXT10aGlzLm1ldGFNYW5hZ2VyLmds'@; put 'b2JhbE1ldGEubWV0YVtfXSx0aGlzLmluc3RhbGxQcm9wV2F0Y2hlcihhLFQsaCksZiYmdGhpcy5pbnN0YWxsUHJvcFdhdGNoZXIoZCxULGgpfSl9aW5zdGFsbFByb3BXYXRjaGVyKGwsYSxkKXtjb25zdCBoPXRoaXM7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMubWV0YU1hbmFnZXIuZ2xv'@; put 'YmFsTWV0YS5tZXRhLGwse2dldCgpe3JldHVybiB0aGlzW2FdfSxzZXQoZil7Y29uc3QgXz0haC51c2FnZVRyYWNrZXIuaGFzKGwpO2gudXNhZ2VUcmFja2VyLmFkZChsKSxkLmNhbGwoaCxsLGYsXyksdGhpc1thXT1mfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfX1jb25zdCBW'@; put 'bmU9L14oXHJcbnxcblxyfFxyfFxuKS8sQkRlPS9eW15cdFxyXG5dKy8sQm5lPS9eXHQvO2Z1bmN0aW9uIEN5KGMpe2xldCBsLGEsZCxoLF8sZj0iIjtmb3IobD0wLGE9Yy5sZW5ndGg7bDxhO2wrPTEpe2ZvcihoPWNbbF0ubGVuZ3RoLGQ9MDtkPGg7ZCs9MSlkPjAmJihmKz0iXHQiKSxfPWNb'@; put 'bF1bZF0sInN0cmluZyI9PXR5cGVvZiBfP18uaW5kZXhPZigiXG4iKT4tMT9mKz1gIiR7Xy5yZXBsYWNlKC8iL2csJyIiJyl9ImA6Zis9XzpmKz1udWxsPT1fPyIiOl87bCE9PWEtMSYmKGYrPSJcbiIpfXJldHVybiBmfWNsYXNzIG03e3N0YXRpYyBnZXQgREVTVElOQVRJT05fUkVOREVSRVIo'@; put 'KXtyZXR1cm4gMX1zdGF0aWMgZ2V0IERFU1RJTkFUSU9OX0NMSVBCT0FSRF9HRU5FUkFUT1IoKXtyZXR1cm4gMn1jb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5pbnN0YW5jZT1sLHRoaXMubWV0YU1hbmFnZXI9ZCx0aGlzLnRhYmxlTWV0YT1kLmdldFRhYmxlTWV0YSgpLHRoaXMuZGF0YVNvdXJj'@; put 'ZT1hLHRoaXMuZHVja1NjaGVtYT10aGlzLmNyZWF0ZUR1Y2tTY2hlbWEoKSx0aGlzLmNvbFRvUHJvcENhY2hlPXZvaWQgMCx0aGlzLnByb3BUb0NvbENhY2hlPXZvaWQgMCx0aGlzLmNyZWF0ZU1hcCgpfWNyZWF0ZU1hcCgpe2NvbnN0IGw9dGhpcy5nZXRTY2hlbWEoKTtpZih0eXBlb2YgbD4i'@; put 'dSIpdGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gY3JlYXRlIGBjb2x1bW5zYCBkZWZpbml0aW9uIGJ1dCB5b3UgZGlkbid0IHByb3ZpZGUgYHNjaGVtYWAgbm9yIGBkYXRhYCIpO2NvbnN0IGE9dGhpcy50YWJsZU1ldGEuY29sdW1ucztsZXQgZDtpZih0aGlzLmNvbFRvUHJvcENhY2hlPVtd'@; put 'LHRoaXMucHJvcFRvQ29sQ2FjaGU9bmV3IE1hcCxhKXtsZXQgaD0wLGY9MCxfPSExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXtjb25zdCBUPXVrKGwpO2g9VD4wP1Q6dGhpcy5jb3VudEZpcnN0Um93S2V5cygpLF89ITB9ZWxzZSBoPU1hdGgubWluKHRoaXMudGFibGVNZXRhLm1heENvbHMs'@; put 'YS5sZW5ndGgpO2ZvcihkPTA7ZDxoO2QrKyl7Y29uc3QgVD1fP2EoZCk6YVtkXTtpZih1cyhUKSl7aWYodHlwZW9mIFQuZGF0YTwidSIpe2NvbnN0IFc9Xz9mOmQ7dGhpcy5jb2xUb1Byb3BDYWNoZVtXXT1ULmRhdGEsdGhpcy5wcm9wVG9Db2xDYWNoZS5zZXQoVC5kYXRhLFcpfWYrPTF9fX1l'@; put 'bHNlIHRoaXMucmVjdXJzaXZlRHVja0NvbHVtbnMobCl9Y291bnRGaXJzdFJvd0tleXMoKXtyZXR1cm4gbFYodGhpcy5kYXRhU291cmNlKX1yZWN1cnNpdmVEdWNrQ29sdW1ucyhsLGEsZCl7bGV0IF8saD1hLGY9ZDtyZXR1cm4gdHlwZW9mIGg+InUiJiYoaD0wLGY9IiIpLCJvYmplY3QiPT10'@; put 'eXBlb2YgbCYmIUFycmF5LmlzQXJyYXkobCkmJmRzKGwsKFQsVyk9PntudWxsPT09VD8oXz1mK1csdGhpcy5jb2xUb1Byb3BDYWNoZS5wdXNoKF8pLHRoaXMucHJvcFRvQ29sQ2FjaGUuc2V0KF8saCksaCs9MSk6aD10aGlzLnJlY3Vyc2l2ZUR1Y2tDb2x1bW5zKFQsaCxgJHtXfS5gKX0pLGh9'@; put 'Y29sVG9Qcm9wKGwpe2lmKCExPT09TnVtYmVyLmlzSW50ZWdlcihsKSlyZXR1cm4gbDtjb25zdCBhPXRoaXMuaW5zdGFuY2UudG9QaHlzaWNhbENvbHVtbihsKTtyZXR1cm4gbnVsbD09PWE/bDp0aGlzLmNvbFRvUHJvcENhY2hlJiZLaSh0aGlzLmNvbFRvUHJvcENhY2hlW2FdKT90aGlzLmNv'@; put 'bFRvUHJvcENhY2hlW2FdOmF9cHJvcFRvQ29sKGwpe2NvbnN0IGE9dGhpcy5wcm9wVG9Db2xDYWNoZS5nZXQobCk7aWYoS2koYSkpcmV0dXJuIHRoaXMuaW5zdGFuY2UudG9WaXN1YWxDb2x1bW4oYSk7Y29uc3QgZD10aGlzLmluc3RhbmNlLnRvVmlzdWFsQ29sdW1uKGwpO3JldHVybiBudWxs'@; put 'PT09ZD9sOmR9Z2V0U2NoZW1hKCl7Y29uc3QgbD10aGlzLnRhYmxlTWV0YS5kYXRhU2NoZW1hO3JldHVybiBsPyJmdW5jdGlvbiI9PXR5cGVvZiBsP2woKTpsOnRoaXMuZHVja1NjaGVtYX1jcmVhdGVEdWNrU2NoZW1hKCl7cmV0dXJuIHRoaXMuZGF0YVNvdXJjZSYmdGhpcy5kYXRhU291cmNl'@; put 'WzBdP3I3KHRoaXMuZGF0YVNvdXJjZVswXSk6e319cmVmcmVzaER1Y2tTY2hlbWEoKXt0aGlzLmR1Y2tTY2hlbWE9dGhpcy5jcmVhdGVEdWNrU2NoZW1hKCl9Y3JlYXRlUm93KGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTox'@; put 'LHtzb3VyY2U6ZCxtb2RlOmg9ImFib3ZlIn09YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O2NvbnN0IGY9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTtsZXQgXz1mLFQ9MCxXPWw7aWYoKCJudW1iZXIiIT10eXBlb2YgV3x8'@; put 'Vz49ZikmJihXPWYpLFc8dGhpcy5pbnN0YW5jZS5jb3VudFJvd3MoKSYmKF89dGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KFcpKSwhMT09PXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsVyxhLGQpfHxudWxsPT09XylyZXR1cm57ZGVsdGE6MH07Y29uc3QgcGU9'@; put 'dGhpcy50YWJsZU1ldGEubWF4Um93cyx3ZT10aGlzLmdldFNjaGVtYSgpLmxlbmd0aCxFZT1bXTtmb3IoO1Q8YSYmZitUPHBlOyl7bGV0IGl0PW51bGw7ImFycmF5Ij09PXRoaXMuaW5zdGFuY2UuZGF0YVR5cGU/dGhpcy50YWJsZU1ldGEuZGF0YVNjaGVtYT9pdD15dSh0aGlzLmdldFNjaGVt'@; put 'YSgpKTooaXQ9W10sdm8od2UtMSwoKT0+aXQucHVzaChudWxsKSkpOiJmdW5jdGlvbiI9PT10aGlzLmluc3RhbmNlLmRhdGFUeXBlP2l0PXRoaXMudGFibGVNZXRhLmRhdGFTY2hlbWEoVytUKTooaXQ9e30sbHkoaXQsdGhpcy5nZXRTY2hlbWEoKSkpLEVlLnB1c2goaXQpLFQrPTF9dGhpcy5p'@; put 'bnN0YW5jZS5yb3dJbmRleE1hcHBlci5pbnNlcnRJbmRleGVzKFcsVCksImJlbG93Ij09PWgmJihfPU1hdGgubWluKF8rMSxmKSksdGhpcy5zcGxpY2VEYXRhKF8sMCxFZSk7Y29uc3QgWmU9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbFJvdyhfKTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5jb3VudFNv'@; put 'dXJjZVJvd3MoKT09PUVlLmxlbmd0aCYmdGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5pbml0VG9MZW5ndGgodGhpcy5pbnN0YW5jZS5nZXRJbml0aWFsQ29sdW1uQ291bnQoKSksVD4wJiYobnVsbD09bD90aGlzLm1ldGFNYW5hZ2VyLmNyZWF0ZVJvdyhudWxsLFQpOiJhdXRvIiE9'@; put 'PWQmJnRoaXMubWV0YU1hbmFnZXIuY3JlYXRlUm93KF8sYSkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93IixaZSxULGQpLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyPSEwLHtkZWx0YTpULHN0YXJ0UGh5c2ljYWxJbmRleDpffX1jcmVhdGVDb2wobCl7bGV0'@; put 'IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEse3NvdXJjZTpkLG1vZGU6aD0ic3RhcnQifT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYoIXRoaXMuaW5zdGFuY2UuaXND'@; put 'b2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY3JlYXRlIG5ldyBjb2x1bW4uIFdoZW4gZGF0YSBzb3VyY2UgaW4gYW4gb2JqZWN0LCB5b3UgY2FuIG9ubHkgaGF2ZSBhcyBtdWNoIGNvbHVtbnMgYXMgZGVmaW5lZCBpbiBmaXJzdCBkYXRhIHJvdywg'@; put 'ZGF0YSBzY2hlbWEgb3IgaW4gdGhlICdjb2x1bW5zJyBzZXR0aW5nLklmIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gYWRkIG5ldyBjb2x1bW5zLCB5b3UgaGF2ZSB0byB1c2UgYXJyYXkgZGF0YXNvdXJjZS4iKTtjb25zdCBmPXRoaXMuZGF0YVNvdXJjZSxfPXRoaXMudGFibGVNZXRhLm1heENv'@; put 'bHMsVD10aGlzLmluc3RhbmNlLmNvdW50U291cmNlQ29scygpO2xldCBXPWw7aWYoKCJudW1iZXIiIT10eXBlb2YgV3x8Vz49VCkmJihXPVQpLCExPT09dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlQ29sIixXLGEsZCkpcmV0dXJue2RlbHRhOjB9O2xldCBwZT1UO1c8dGhp'@; put 'cy5pbnN0YW5jZS5jb3VudENvbHMoKSYmKHBlPXRoaXMuaW5zdGFuY2UudG9QaHlzaWNhbENvbHVtbihXKSk7Y29uc3Qgd2U9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTtsZXQgRWU9dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSxaZT0wLGl0PXBlOyJlbmQiPT09aCYmKGl0PU1h'@; put 'dGgubWluKGl0KzEsVCkpO2NvbnN0IGV0PWl0O2Zvcig7WmU8YSYmRWU8Xzspe2lmKCJudW1iZXIiIT10eXBlb2YgV3x8Vz49RWUpaWYod2U+MClmb3IobGV0IEV0PTA7RXQ8d2U7RXQrPTEpdHlwZW9mIGZbRXRdPiJ1IiYmKGZbRXRdPVtdKSxmW0V0XS5wdXNoKG51bGwpO2Vsc2UgZi5wdXNo'@; put 'KFtudWxsXSk7ZWxzZSBmb3IobGV0IEV0PTA7RXQ8d2U7RXQrKylmW0V0XS5zcGxpY2UoaXQsMCxudWxsKTtaZSs9MSxpdCs9MSxFZSs9MX10aGlzLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoVyxaZSksWmU+MCYmKG51bGw9PWw/dGhpcy5tZXRhTWFuYWdlci5j'@; put 'cmVhdGVDb2x1bW4obnVsbCxaZSk6ImF1dG8iIT09ZCYmdGhpcy5tZXRhTWFuYWdlci5jcmVhdGVDb2x1bW4oZXQsYSkpO2NvbnN0IHl0PXRoaXMuaW5zdGFuY2UudG9WaXN1YWxDb2x1bW4oZXQpO3JldHVybiB0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckNyZWF0ZUNvbCIseXQsWmUs'@; put 'ZCksdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXI9ITAsdGhpcy5yZWZyZXNoRHVja1NjaGVtYSgpLHtkZWx0YTpaZSxzdGFydFBoeXNpY2FsSW5kZXg6ZXR9fXJlbW92ZVJvdyhsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNb'@; put 'MV06MSxkPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGg9TnVtYmVyLmlzSW50ZWdlcihsKT9sOi1hO2NvbnN0IGY9dGhpcy52aXN1YWxSb3dzVG9QaHlzaWNhbChoLGEpLF89dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTtpZihoPShfK2gpJV8sITE9PT10'@; put 'aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW1vdmVSb3ciLGgsZi5sZW5ndGgsZixkKSlyZXR1cm4hMTtjb25zdCBXPWYubGVuZ3RoO2lmKHRoaXMuZmlsdGVyRGF0YShoLFcsZiksaDx0aGlzLmluc3RhbmNlLmNvdW50Um93cygpKXt0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVy'@; put 'LnJlbW92ZUluZGV4ZXMoZik7Y29uc3QgcGU9S2kodGhpcy50YWJsZU1ldGEuY29sdW1ucyl8fEtpKHRoaXMudGFibGVNZXRhLmRhdGFTY2hlbWEpOzA9PT10aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCkmJiExPT09cGUmJnRoaXMuaW5z'@; put 'dGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKFtdKX1yZXR1cm4gZi5zbGljZSgwKS5zb3J0KChwZSx3ZSk9PndlLXBlKS5mb3JFYWNoKHBlPT57dGhpcy5tZXRhTWFuYWdlci5yZW1vdmVSb3cocGUsMSl9KSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJl'@; put 'bW92ZVJvdyIsaCxXLGYsZCksdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXI9ITAsITB9cmVtb3ZlQ29sKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxLGQ9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2'@; put 'b2lkIDA7aWYoIm9iamVjdCI9PT10aGlzLmluc3RhbmNlLmRhdGFUeXBlfHx0aGlzLnRhYmxlTWV0YS5jb2x1bW5zKXRocm93IG5ldyBFcnJvcigiY2Fubm90IHJlbW92ZSBjb2x1bW4gd2l0aCBvYmplY3QgZGF0YSBzb3VyY2Ugb3IgY29sdW1ucyBvcHRpb24gc3BlY2lmaWVkIik7bGV0IGg9'@; put 'Im51bWJlciIhPXR5cGVvZiBsPy1hOmw7aD0odGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKStoKSV0aGlzLmluc3RhbmNlLmNvdW50Q29scygpO2NvbnN0IGY9dGhpcy52aXN1YWxDb2x1bW5zVG9QaHlzaWNhbChoLGEpLF89Zi5zbGljZSgwKS5zb3J0KCh3ZSxFZSk9PkVlLXdlKTtpZighMT09'@; put 'PXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVJlbW92ZUNvbCIsaCxhLGYsZCkpcmV0dXJuITE7bGV0IFc9ITA7Y29uc3QgaWU9Xy5sZW5ndGgscGU9dGhpcy5kYXRhU291cmNlO2ZvcihsZXQgd2U9MDt3ZTxpZTt3ZSsrKVcmJmZbMF0hPT1mW3dlXS13ZSYmKFc9ITEpO2lmKFcpZm9y'@; put 'KGxldCB3ZT0wLEVlPXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VSb3dzKCk7d2U8RWU7d2UrKylwZVt3ZV0uc3BsaWNlKGZbMF0sYSksMD09PXdlJiZ0aGlzLm1ldGFNYW5hZ2VyLnJlbW92ZUNvbHVtbihmWzBdLGEpO2Vsc2UgZm9yKGxldCB3ZT0wLEVlPXRoaXMuaW5zdGFuY2UuY291bnRT'@; put 'b3VyY2VSb3dzKCk7d2U8RWU7d2UrKylmb3IobGV0IFplPTA7WmU8aWU7WmUrKylwZVt3ZV0uc3BsaWNlKF9bWmVdLDEpLDA9PT13ZSYmdGhpcy5tZXRhTWFuYWdlci5yZW1vdmVDb2x1bW4oX1taZV0sMSk7cmV0dXJuIGg8dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSYmKHRoaXMuaW5zdGFu'@; put 'Y2UuY29sdW1uSW5kZXhNYXBwZXIucmVtb3ZlSW5kZXhlcyhmKSwwPT09dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpJiZ0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZShbXSkpLHRoaXMuaW5z'@; put 'dGFuY2UucnVuSG9va3MoImFmdGVyUmVtb3ZlQ29sIixoLGEsZixkKSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCx0aGlzLnJlZnJlc2hEdWNrU2NoZW1hKCksITB9c3BsaWNlQ29sKGwsYSxkKXtjb25zdCBoPXRoaXMuaW5zdGFuY2UuZ2V0RGF0YUF0Q29sKGwpLGY9aC5zbGlj'@; put 'ZShhLGErZCksXz1oLnNsaWNlKGErZCk7Zm9yKHZhciBUPWFyZ3VtZW50cy5sZW5ndGgsVz1uZXcgQXJyYXkoVD4zP1QtMzowKSxpZT0zO2llPFQ7aWUrKylXW2llLTNdPWFyZ3VtZW50c1tpZV07bk4oVyxfKTtsZXQgcGU9MDtmb3IoO3BlPGQ7KVcucHVzaChudWxsKSxwZSs9MTtyZXR1cm4g'@; put 'cWVlKFcpLHRoaXMuaW5zdGFuY2UucG9wdWxhdGVGcm9tQXJyYXkoYSxsLFcsbnVsbCxudWxsLCJzcGxpY2VDb2wiKSxmfXNwbGljZVJvdyhsLGEsZCl7Y29uc3QgaD10aGlzLmluc3RhbmNlLmdldFNvdXJjZURhdGFBdFJvdyhsKSxmPWguc2xpY2UoYSxhK2QpLF89aC5zbGljZShhK2QpO2Zv'@; put 'cih2YXIgVD1hcmd1bWVudHMubGVuZ3RoLFc9bmV3IEFycmF5KFQ+Mz9ULTM6MCksaWU9MztpZTxUO2llKyspV1tpZS0zXT1hcmd1bWVudHNbaWVdO25OKFcsXyk7bGV0IHBlPTA7Zm9yKDtwZTxkOylXLnB1c2gobnVsbCkscGUrPTE7cmV0dXJuIHRoaXMuaW5zdGFuY2UucG9wdWxhdGVGcm9t'@; put 'QXJyYXkobCxhLFtXXSxudWxsLG51bGwsInNwbGljZVJvdyIpLGZ9c3BsaWNlRGF0YShsLGEsZCl7aWYoITEhPT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVEYXRhU3BsaWNlIixsLGEsZCkpe2NvbnN0IGY9Wy4uLnRoaXMuZGF0YVNvdXJjZS5zbGljZSgwLGwpLC4uLmQsLi4udGhp'@; put 'cy5kYXRhU291cmNlLnNsaWNlKGwpXTt0aGlzLmRhdGFTb3VyY2UubGVuZ3RoPTAsZi5mb3JFYWNoKF89PnRoaXMuZGF0YVNvdXJjZS5wdXNoKF8pKX19ZmlsdGVyRGF0YShsLGEsZCl7bGV0IGg9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiZmlsdGVyRGF0YSIsbCxhLGQpOyExPT09QXJyYXku'@; put 'aXNBcnJheShoKSYmKGg9dGhpcy5kYXRhU291cmNlLmZpbHRlcigoZixfKT0+LTE9PT1kLmluZGV4T2YoXykpKSx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoPTAsQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcy5kYXRhU291cmNlLGgpfWdldChsLGEpe2NvbnN0IGQ9dGhpcy5pbnN0YW5j'@; put 'ZS50b1BoeXNpY2FsUm93KGwpO2xldCBoPXRoaXMuZGF0YVNvdXJjZVtkXTtjb25zdCBmPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeVJvd0RhdGEiLGQpO2g9aXNOYU4oZik/ZjpoO2xldCBfPW51bGw7aWYoaCYmaC5oYXNPd25Qcm9wZXJ0eSYmYmwoaCxhKSlfPWhbYV07ZWxzZSBp'@; put 'Zigic3RyaW5nIj09dHlwZW9mIGEmJmEuaW5kZXhPZigiLiIpPi0xKXtjb25zdCBUPWEuc3BsaXQoIi4iKTtsZXQgVz1oO2lmKCFXKXJldHVybiBudWxsO2ZvcihsZXQgaWU9MCxwZT1ULmxlbmd0aDtpZTxwZTtpZSsrKWlmKFc9V1tUW2llXV0sdHlwZW9mIFc+InUiKXJldHVybiBudWxsO189'@; put 'V31lbHNlImZ1bmN0aW9uIj09dHlwZW9mIGEmJihfPWEodGhpcy5kYXRhU291cmNlLnNsaWNlKGQsZCsxKVswXSkpO2lmKHRoaXMuaW5zdGFuY2UuaGFzSG9vaygibW9kaWZ5RGF0YSIpKXtjb25zdCBUPV9nKF8pO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeURhdGEiLGQsdGhpcy5w'@; put 'cm9wVG9Db2woYSksVCwiZ2V0IiksVC5pc1RvdWNoZWQoKSYmKF89VC52YWx1ZSl9cmV0dXJuIF99Z2V0Q29weWFibGUobCxhKXtyZXR1cm4gdGhpcy5pbnN0YW5jZS5nZXRDZWxsTWV0YShsLHRoaXMucHJvcFRvQ29sKGEpKS5jb3B5YWJsZT90aGlzLmdldChsLGEpOiIifXNldChsLGEsZCl7'@; put 'Y29uc3QgaD10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3cobCk7bGV0IGY9ZCxfPXRoaXMuZGF0YVNvdXJjZVtoXTtjb25zdCBUPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeVJvd0RhdGEiLGgpO2lmKF89aXNOYU4oVCk/VDpfLHRoaXMuaW5zdGFuY2UuaGFzSG9vaygibW9kaWZ5'@; put 'RGF0YSIpKXtjb25zdCBXPV9nKGYpO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeURhdGEiLGgsdGhpcy5wcm9wVG9Db2woYSksVywic2V0IiksVy5pc1RvdWNoZWQoKSYmKGY9Vy52YWx1ZSl9aWYoXyYmXy5oYXNPd25Qcm9wZXJ0eSYmYmwoXyxhKSlfW2FdPWY7ZWxzZSBpZigic3Ry'@; put 'aW5nIj09dHlwZW9mIGEmJmEuaW5kZXhPZigiLiIpPi0xKXtjb25zdCBXPWEuc3BsaXQoIi4iKTtsZXQgd2UsaWU9XyxwZT0wO2ZvcihwZT0wLHdlPVcubGVuZ3RoLTE7cGU8d2U7cGUrKyl0eXBlb2YgaWVbV1twZV1dPiJ1IiYmKGllW1dbcGVdXT17fSksaWU9aWVbV1twZV1dO2llW1dbcGVd'@; put 'XT1mfWVsc2UiZnVuY3Rpb24iPT10eXBlb2YgYT9hKHRoaXMuZGF0YVNvdXJjZS5zbGljZShoLGgrMSlbMF0sZik6X1thXT1mfXZpc3VhbFJvd3NUb1BoeXNpY2FsKGwsYSl7Y29uc3QgZD10aGlzLmluc3RhbmNlLmNvdW50U291cmNlUm93cygpLGg9W107bGV0IFQsZj0oZCtsKSVkLF89YTtm'@; put 'b3IoO2Y8ZCYmXzspVD10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coZiksaC5wdXNoKFQpLF8tPTEsZis9MTtyZXR1cm4gaH12aXN1YWxDb2x1bW5zVG9QaHlzaWNhbChsLGEpe2NvbnN0IGQ9dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSxoPVtdO2xldCBmPShkK2wpJWQsXz1hO2Zvcig7'@; put 'ZjxkJiZfOyl7Y29uc3QgVD10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oZik7aC5wdXNoKFQpLF8tPTEsZis9MX1yZXR1cm4gaH1jbGVhcigpe2ZvcihsZXQgbD0wO2w8dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTtsKyspZm9yKGxldCBhPTA7YTx0aGlzLmluc3RhbmNl'@; put 'LmNvdW50Q29scygpO2ErKyl0aGlzLnNldChsLHRoaXMuY29sVG9Qcm9wKGEpLCIiKX1nZXRMZW5ndGgoKXtjb25zdCBsPXRoaXMudGFibGVNZXRhLm1heFJvd3M7bGV0IGE7YT1sPDB8fDA9PT1sPzA6bHx8MS8wO2NvbnN0IGQ9dGhpcy5pbnN0YW5jZS5yb3dJbmRleE1hcHBlci5nZXROb3RU'@; put 'cmltbWVkSW5kZXhlc0xlbmd0aCgpO3JldHVybiBNYXRoLm1pbihkLGEpfWdldEFsbCgpe2NvbnN0IGw9e3JvdzowLGNvbDowfSxhPXtyb3c6TWF0aC5tYXgodGhpcy5pbnN0YW5jZS5jb3VudFJvd3MoKS0xLDApLGNvbDpNYXRoLm1heCh0aGlzLmluc3RhbmNlLmNvdW50Q29scygpLTEsMCl9'@; put 'O3JldHVybiBsLnJvdy1hLnJvdyE9MHx8dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKT90aGlzLmdldFJhbmdlKGwsYSxtNy5ERVNUSU5BVElPTl9SRU5ERVJFUik6W119Y291bnRDYWNoZWRDb2x1bW5zKCl7cmV0dXJuIHRoaXMuY29sVG9Qcm9wQ2FjaGUubGVuZ3RofWdldFJhbmdl'@; put 'KGwsYSxkKXtjb25zdCBoPVtdO2xldCBmLF8sVDtjb25zdCBXPXRoaXMudGFibGVNZXRhLm1heFJvd3MsaWU9dGhpcy50YWJsZU1ldGEubWF4Q29scztpZigwPT09V3x8MD09PWllKXJldHVybltdO2NvbnN0IHBlPWQ9PT1tNy5ERVNUSU5BVElPTl9DTElQQk9BUkRfR0VORVJBVE9SP3RoaXMu'@; put 'Z2V0Q29weWFibGU6dGhpcy5nZXQsd2U9TWF0aC5taW4oTWF0aC5tYXgoVy0xLDApLE1hdGgubWF4KGwucm93LGEucm93KSksRWU9TWF0aC5taW4oTWF0aC5tYXgoaWUtMSwwKSxNYXRoLm1heChsLmNvbCxhLmNvbCkpO2ZvcihmPU1hdGgubWluKGwucm93LGEucm93KTtmPD13ZTtmKyspe1Q9'@; put 'W107Y29uc3QgWmU9Zj49MD90aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coZik6Zjtmb3IoXz1NYXRoLm1pbihsLmNvbCxhLmNvbCk7Xzw9RWUmJm51bGwhPT1aZTtfKyspVC5wdXNoKHBlLmNhbGwodGhpcyxmLHRoaXMuY29sVG9Qcm9wKF8pKSk7bnVsbCE9PVplJiZoLnB1c2goVCl9cmV0'@; put 'dXJuIGh9Z2V0VGV4dChsLGEpe3JldHVybiBDeSh0aGlzLmdldFJhbmdlKGwsYSxtNy5ERVNUSU5BVElPTl9SRU5ERVJFUikpfWdldENvcHlhYmxlVGV4dChsLGEpe3JldHVybiBDeSh0aGlzLmdldFJhbmdlKGwsYSxtNy5ERVNUSU5BVElPTl9DTElQQk9BUkRfR0VORVJBVE9SKSl9ZGVzdHJv'@; put 'eSgpe3RoaXMuaW5zdGFuY2U9bnVsbCx0aGlzLm1ldGFNYW5hZ2VyPW51bGwsdGhpcy5kYXRhU291cmNlPW51bGwsdGhpcy5kdWNrU2NoZW1hPW51bGwsdGhpcy5jb2xUb1Byb3BDYWNoZS5sZW5ndGg9MCx0aGlzLnByb3BUb0NvbENhY2hlLmNsZWFyKCksdGhpcy5wcm9wVG9Db2xDYWNoZT12'@; put 'b2lkIDB9fWNvbnN0IHpEZT1tNztmdW5jdGlvbiBqbmUoYyxsLGEsZCl7Y29uc3R7aG90SW5zdGFuY2U6aCxkYXRhTWFwOmYsZGF0YVNvdXJjZTpfLGludGVybmFsU291cmNlOlQsc291cmNlOlcsbWV0YU1hbmFnZXI6aWUsZmlyc3RSdW46cGV9PWQsd2U9YnUoVCksRWU9aC5nZXRTZXR0aW5n'@; put 'cygpO2guZGF0YVR5cGU9QXJyYXkuaXNBcnJheShFZS5kYXRhU2NoZW1hKT8iYXJyYXkiOlJhKEVlLmRhdGFTY2hlbWEpPyJmdW5jdGlvbiI6Im9iamVjdCIsZiYmZi5kZXN0cm95KCksYz1oLnJ1bkhvb2tzKGBiZWZvcmUke3dlfWAsYyxwZSxXKTtjb25zdCBaZT1uZXcgekRlKGgsYyxpZSk7'@; put 'aWYobChaZSksIm9iamVjdCI9PXR5cGVvZiBjJiZudWxsIT09YyljLnB1c2gmJmMuc3BsaWNlfHwoYz1bY10pO2Vsc2V7aWYobnVsbCE9PWMpdGhyb3cgbmV3IEVycm9yKGAke1R9IG9ubHkgYWNjZXB0cyBhcnJheSBvZiBvYmplY3RzIG9yIGFycmF5IG9mIGFycmF5cyAoJHt0eXBlb2YgY30g'@; put 'Z2l2ZW4pYCk7e2NvbnN0IGl0PVplLmdldFNjaGVtYSgpO2M9W107bGV0IGV0LHl0PTAsRXQ9MDtmb3IoeXQ9MCxFdD1FZS5zdGFydFJvd3M7eXQ8RXQ7eXQrKylpZigib2JqZWN0IiE9PWguZGF0YVR5cGUmJiJmdW5jdGlvbiIhPT1oLmRhdGFUeXBlfHwhRWUuZGF0YVNjaGVtYSlpZigiYXJy'@; put 'YXkiPT09aC5kYXRhVHlwZSlldD15dShpdFswXSksYy5wdXNoKGV0KTtlbHNle2V0PVtdO2ZvcihsZXQgU3Q9MCxKdD1FZS5zdGFydENvbHM7U3Q8SnQ7U3QrKylldC5wdXNoKG51bGwpO2MucHVzaChldCl9ZWxzZSBldD15dShpdCksYy5wdXNoKGV0KX19QXJyYXkuaXNBcnJheShjWzBdKSYm'@; put 'KGguZGF0YVR5cGU9ImFycmF5IiksRWUuZGF0YT1jLFplLmRhdGFTb3VyY2U9YyxfLmRhdGE9YyxfLmRhdGFUeXBlPWguZGF0YVR5cGUsXy5jb2xUb1Byb3A9WmUuY29sVG9Qcm9wLmJpbmQoWmUpLF8ucHJvcFRvQ29sPVplLnByb3BUb0NvbC5iaW5kKFplKSxfLmNvdW50Q2FjaGVkQ29sdW1u'@; put 'cz1aZS5jb3VudENhY2hlZENvbHVtbnMuYmluZChaZSksYShaZSksaC5ydW5Ib29rcyhgYWZ0ZXIke3dlfWAsYyxwZSxXKSxwZXx8KGgucnVuSG9va3MoImFmdGVyQ2hhbmdlIixudWxsLFQpLGgucmVuZGVyKCkpfWNvbnN0IHpuZT1uZXcgTWFwKFtbIiAiLCJzcGFjZSJdLFsic3BhY2ViYXIi'@; put 'LCJzcGFjZSJdLFsic2Nyb2xsIiwic2Nyb2xsbG9jayJdLFsiZGVsIiwiZGVsZXRlIl0sWyJlc2MiLCJlc2NhcGUiXSxbIm1lZGlhbmV4dHRyYWNrIiwibWVkaWF0cmFja25leHQiXSxbIm1lZGlhcHJldmlvdXN0cmFjayIsIm1lZGlhdHJhY2twcmV2aW91cyJdLFsidm9sdW1ldXAiLCJhdWRp'@; put 'b3ZvbHVtZXVwIl0sWyJ2b2x1bWVkb3duIiwiYXVkaW92b2x1bWVkb3duIl0sWyJ2b2x1bWVtdXRlIiwiYXVkaW92b2x1bWVtdXRlIl0sWyJtdWx0aXBseSIsIioiXSxbImFkZCIsIisiXSxbImRpdmlkZSIsIi8iXSxbInN1YnRyYWN0IiwiLSJdLFsibGVmdCIsImFycm93bGVmdCJdLFsicmln'@; put 'aHQiLCJhcnJvd3JpZ2h0Il0sWyJ1cCIsImFycm93dXAiXSxbImRvd24iLCJhcnJvd2Rvd24iXV0pLFVrPWM9PmMubWFwKGw9Pntjb25zdCBhPWwudG9Mb3dlckNhc2UoKTtyZXR1cm4gem5lLmhhcyhhKT96bmUuZ2V0KGEpOmF9KS5zb3J0KCkuam9pbigiKyIpLFVuZT1jPT5jLnRvTG93ZXJD'@; put 'YXNlKCksV0RlPVsibWV0YSIsImFsdCIsInNoaWZ0IiwiY29udHJvbCJdLFN5PWZ1bmN0aW9uIFlEZSgpe2NvbnN0IGM9bmV3IFNldDtyZXR1cm57cHJlc3MobCl7Yy5hZGQobCl9LHJlbGVhc2UobCl7Yy5kZWxldGUobCl9LHJlbGVhc2VBbGwoKXtjLmNsZWFyKCl9LGlzUHJlc3NlZDpsPT5j'@; put 'LmhhcyhsKX19KCksJERlPWM9PntsZXR7b3duZXJXaW5kb3c6bCxoYW5kbGVFdmVudDphLGJlZm9yZUtleURvd246ZCxhZnRlcktleURvd246aH09Yztjb25zdCBmPV9rKHtlcnJvcklkRXhpc3RzOlplPT5gVGhlICIke1plfSIgY29udGV4dCBuYW1lIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5g'@; put 'fSk7bGV0IF89ImdyaWQiO2NvbnN0IFc9KCk9Pl8saWU9WmU9PmYuZ2V0SXRlbShaZSk7bGV0IHdlPSExO2NvbnN0IEVlPWZ1bmN0aW9uIEdEZShjLGwsYSxkLGgpe2NvbnN0IGY9RWU9PldEZS5pbmNsdWRlcyhFZSksXz1mdW5jdGlvbihFZSl7bGV0IFplPWFyZ3VtZW50cy5sZW5ndGg+MSYm'@; put 'dm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07Y29uc3QgaXQ9W107cmV0dXJuIEVlLmFsdEtleSYmaXQucHVzaCgiYWx0IiksWmUmJihFZS5jdHJsS2V5fHxFZS5tZXRhS2V5KT9pdC5wdXNoKCJjb250cm9sL21ldGEiKTooRWUuY3RybEtleSYmaXQucHVzaCgiY29udHJvbCIp'@; put 'LEVlLm1ldGFLZXkmJml0LnB1c2goIm1ldGEiKSksRWUuc2hpZnRLZXkmJml0LnB1c2goInNoaWZ0IiksaXR9LFQ9RWU9PntpZighMT09PWwoRWUpKXJldHVybjtjb25zdCBaZT1hKEVlKTtpZigyMjk9PT1FZS5rZXlDb2RlfHwhMT09PVplfHxiZyhFZSkpcmV0dXJuO2NvbnN0IGl0PVVuZShF'@; put 'ZS5rZXkpO2xldCBldD1bXTtmKGl0KT9TeS5wcmVzcyhpdCk6ZXQ9XyhFZSk7Y29uc3QgeXQ9W2l0XS5jb25jYXQoZXQpOyFoKEVlLHl0KSYmKGhrKCkmJmV0LmluY2x1ZGVzKCJtZXRhIil8fCFoaygpJiZldC5pbmNsdWRlcygiY29udHJvbCIpKSYmaChFZSxbaXRdLmNvbmNhdChfKEVlLCEw'@; put 'KSkpLGQoRWUpfSxXPUVlPT57aWYoITE9PT1sKEVlKSlyZXR1cm47Y29uc3QgWmU9VW5lKEVlLmtleSk7ITEhPT1mKFplKSYmU3kucmVsZWFzZShaZSl9LGllPSgpPT57U3kucmVsZWFzZUFsbCgpfTtyZXR1cm57bW91bnQ6KCk9PntsZXQgRWU9Yztmb3IoO0VlOylFZS5kb2N1bWVudC5kb2N1'@; put 'bWVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsVCksRWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixXKSxFZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsaWUpLEVlPWV5KEVlKX0s'@; put 'dW5tb3VudDooKT0+e2xldCBFZT1jO2Zvcig7RWU7KUVlLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixUKSxFZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLFcpLEVlLmRvY3VtZW50LmRv'@; put 'Y3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixpZSksRWU9ZXkoRWUpfSxpc1ByZXNzZWQ6RWU9PlN5LmlzUHJlc3NlZChFZSkscmVsZWFzZVByZXNzZWRLZXlzOigpPT5TeS5yZWxlYXNlQWxsKCl9fShsLGEsZCxoLChaZSxpdCk9Pntjb25zdCBldD1pZShXKCkpO2xl'@; put 'dCB5dD0hMTtpZighZXQuaGFzU2hvcnRjdXQoaXQpKXJldHVybiB5dDtjb25zdCBFdD1ldC5nZXRTaG9ydGN1dHMoaXQpO2ZvcihsZXQgU3Q9MDtTdDxFdC5sZW5ndGg7U3QrKyl7Y29uc3R7Y2FsbGJhY2s6SnQscnVuT25seUlmOm5uLHByZXZlbnREZWZhdWx0OnZuLHN0b3BQcm9wYWdhdGlv'@; put 'bjpObixjYXB0dXJlQ3RybDpjcn09RXRbU3RdO2lmKCExIT09bm4oWmUpJiYod2U9Y3IseXQ9ITE9PT1KdChaZSxpdCksd2U9ITEsdm4mJlplLnByZXZlbnREZWZhdWx0KCksTm4mJlplLnN0b3BQcm9wYWdhdGlvbigpLHl0KSlicmVha31yZXR1cm4geXR9KTtyZXR1cm4gRWUubW91bnQoKSx7'@; put 'YWRkQ29udGV4dDpaZT0+e2NvbnN0IGl0PShjPT57Y29uc3QgbD1fayh7ZXJyb3JJZEV4aXN0czpXPT5gVGhlICIke1d9IiBzaG9ydGN1dCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgaW4gdGhlICIke2N9IiBjb250ZXh0LmB9KSxhPWZ1bmN0aW9uKCl7bGV0e2tleXM6VyxjYWxsYmFjazppZSxn'@; put 'cm91cDpwZSxydW5Pbmx5SWY6d2U9KCgpPT4hMCksY2FwdHVyZUN0cmw6RWU9ITEscHJldmVudERlZmF1bHQ6WmU9ITAsc3RvcFByb3BhZ2F0aW9uOml0PSExLHJlbGF0aXZlVG9Hcm91cDpldCxwb3NpdGlvbjp5dH09YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/'@; put 'YXJndW1lbnRzWzBdOnt9O2lmKExhKHBlKSl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGRlZmluZSB0aGUgc2hvcnRjdXQncyBncm91cC4iKTtpZighMT09PVJhKGllKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBzaG9ydGN1dCdzIGNhbGxiYWNrIG5lZWRzIHRvIGJlIGEgZnVuY3Rpb24u'@; put 'Iik7aWYoITE9PT1BcnJheS5pc0FycmF5KFcpKXRocm93IG5ldyBFcnJvcihBYWBQYXNzIHRoZSBzaG9ydGN1dFwncyBrZXlzIGFzIGFuIGFycmF5IG9mIGFycmF5cyxceDIwCiAgICAgIHVzaW5nIHRoZSBLZXlib2FyZEV2ZW50LmtleSBwcm9wZXJ0aWVzOlx4MjAKICAgICAgaHR0cHM6Ly9k'@; put 'ZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQva2V5L0tleV9WYWx1ZXMuYCk7Y29uc3QgRXQ9e2NhbGxiYWNrOmllLGdyb3VwOnBlLHJ1bk9ubHlJZjp3ZSxjYXB0dXJlQ3RybDpFZSxwcmV2ZW50RGVmYXVsdDpaZSxzdG9wUHJvcGFnYXRpb246'@; put 'aXR9O0tpKGV0KSYmKFtFdC5yZWxhdGl2ZVRvR3JvdXAsRXQucG9zaXRpb25dPVtldCx5dF0pLFcuZm9yRWFjaChTdD0+e2NvbnN0IEp0PVVrKFN0KTtpZihsLmhhc0l0ZW0oSnQpKXtjb25zdCB2bj1sLmdldEl0ZW0oSnQpO2xldCBObj12bi5maW5kSW5kZXgoY3I9PmNyLmdyb3VwPT09ZXQp'@; put 'Oy0xIT09Tm4/ImJlZm9yZSI9PT15dD9Obi09MTpObis9MTpObj12bi5sZW5ndGgsdm4uc3BsaWNlKE5uLDAsRXQpfWVsc2UgbC5hZGRJdGVtKEp0LFtFdF0pfSl9LGg9Vz0+e2NvbnN0IGllPVVrKFcpO2wucmVtb3ZlSXRlbShpZSl9O3JldHVybnthZGRTaG9ydGN1dDphLGFkZFNob3J0Y3V0'@; put 'czpmdW5jdGlvbihXKXtsZXQgaWU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O1cuZm9yRWFjaChwZT0+e2RzKGllLCh3ZSxFZSk9PnshMT09PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwZSxFZSkmJihwZVtF'@; put 'ZV09aWVbRWVdKX0pLGEocGUpfSl9LGdldFNob3J0Y3V0czpXPT57Y29uc3QgaWU9VWsoVykscGU9bC5nZXRJdGVtKGllKTtyZXR1cm4gS2kocGUpP3BlLnNsaWNlKCk6W119LGhhc1Nob3J0Y3V0Olc9Pntjb25zdCBpZT1VayhXKTtyZXR1cm4gbC5oYXNJdGVtKGllKX0scmVtb3ZlU2hvcnRj'@; put 'dXRzQnlLZXlzOmgscmVtb3ZlU2hvcnRjdXRzQnlHcm91cDpXPT57bC5nZXRJdGVtcygpLmZvckVhY2gocGU9PntsZXRbd2UsRWVdPXBlO2NvbnN0IFplPUVlLmZpbHRlcihpdD0+aXQuZ3JvdXAhPT1XKTswPT09WmUubGVuZ3RoP2goKGM9PmMuc3BsaXQoIisiKSkod2UpKTooRWUubGVuZ3Ro'@; put 'PTAsRWUucHVzaCguLi5aZSkpfSl9fX0pKFplKTtyZXR1cm4gZi5hZGRJdGVtKFplLGl0KSxpdH0sZ2V0QWN0aXZlQ29udGV4dE5hbWU6VyxnZXRDb250ZXh0OmllLHNldEFjdGl2ZUNvbnRleHROYW1lOlplPT57Xz1aZX0saXNDdHJsUHJlc3NlZDooKT0+IXdlJiYoRWUuaXNQcmVzc2VkKCJj'@; put 'b250cm9sIil8fEVlLmlzUHJlc3NlZCgibWV0YSIpKSxyZWxlYXNlUHJlc3NlZEtleXM6KCk9PkVlLnJlbGVhc2VQcmVzc2VkS2V5cygpLGRlc3Ryb3k6KCk9PkVlLnVubW91bnQoKX19LHFEZT0iZ3JpZERlZmF1bHQiO2xldCBZQj1udWxsO2Z1bmN0aW9uIFdCKGMsbCl7dmFyIGE7bGV0IGQ9'@; put 'YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxoPSExLGY9dGhpcztjb25zdCBfPW5ldyBsbChmKTtsZXQgVCxXLGllLHBlLHdlPSEwOyhmdW5jdGlvbiBvVGUoYyl7cmV0dXJuIGM9PT1uVn0pKGQpJiZmdW5jdGlvbiBpVGUoYyl7bG5lLnNl'@; put 'dChjLCEwKX0odGhpcyksdGhpcy5yb290RWxlbWVudD1jLHRoaXMucm9vdERvY3VtZW50PWMub3duZXJEb2N1bWVudCx0aGlzLnJvb3RXaW5kb3c9dGhpcy5yb290RG9jdW1lbnQuZGVmYXVsdFZpZXcsdGhpcy5pc0Rlc3Ryb3llZD0hMSx0aGlzLnJlbmRlclN1c3BlbmRlZENvdW50ZXI9MCx0'@; put 'aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXI9MDtjb25zdCBFZT1udWxsIT09KGE9bD8ubGF5b3V0RGlyZWN0aW9uKSYmdm9pZCAwIT09YT9hOiJpbmhlcml0IixaZT1bInJ0bCIsImx0ciJdLmluY2x1ZGVzKEVlKT9FZTp0aGlzLnJvb3RXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlz'@; put 'LnJvb3RFbGVtZW50KS5kaXJlY3Rpb247dGhpcy5yb290RWxlbWVudC5zZXRBdHRyaWJ1dGUoImRpciIsWmUpLHRoaXMuaXNSdGw9ZnVuY3Rpb24oKXtyZXR1cm4icnRsIj09PVplfSx0aGlzLmlzTHRyPWZ1bmN0aW9uKCl7cmV0dXJuIWYuaXNSdGwoKX0sdGhpcy5nZXREaXJlY3Rpb25GYWN0'@; put 'b3I9ZnVuY3Rpb24oKXtyZXR1cm4gZi5pc0x0cigpPzE6LTF9LGwubGFuZ3VhZ2U9ZnVuY3Rpb24gcVRlKGMpe2xldCBsPU1uZShjKTtyZXR1cm4gTkIobCl8fChsPUhCLHhuZShjKSksbH0obC5sYW5ndWFnZSk7Y29uc3QgaXQ9bmV3IE5uZShmLGwsW05EZSxWRGVdKSxldD1pdC5nZXRUYWJs'@; put 'ZU1ldGEoKSx5dD1pdC5nZXRHbG9iYWxNZXRhKCksRXQ9X2soKTt0aGlzLmNvbnRhaW5lcj10aGlzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnJlbmRlckNhbGw9ITEsYy5pbnNlcnRCZWZvcmUodGhpcy5jb250YWluZXIsYy5maXJzdENoaWxkKSxyVih0aGlzKSYm'@; put 'cnRlKGwubGljZW5zZUtleSxjKSx0aGlzLmd1aWQ9YGh0XyR7YU4oKX1gLHRoaXMuY29sdW1uSW5kZXhNYXBwZXI9bmV3IHZWLHRoaXMucm93SW5kZXhNYXBwZXI9bmV3IHZWLHRoaXMuY29sdW1uSW5kZXhNYXBwZXIuYWRkTG9jYWxIb29rKCJpbmRleGVzU2VxdWVuY2VDaGFuZ2UiLHZ0PT57'@; put 'Zi5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5TZXF1ZW5jZUNoYW5nZSIsdnQpfSksdGhpcy5yb3dJbmRleE1hcHBlci5hZGRMb2NhbEhvb2soImluZGV4ZXNTZXF1ZW5jZUNoYW5nZSIsdnQ9PntmLnJ1bkhvb2tzKCJhZnRlclJvd1NlcXVlbmNlQ2hhbmdlIix2dCl9KSxXPW5ldyBfVGUoZiksKCF0'@; put 'aGlzLnJvb3RFbGVtZW50LmlkfHwiaHRfIj09PXRoaXMucm9vdEVsZW1lbnQuaWQuc3Vic3RyaW5nKDAsMykpJiYodGhpcy5yb290RWxlbWVudC5pZD10aGlzLmd1aWQpO2NvbnN0IFN0PXZ0PT57Y29uc3R7cm93Ok90LGNvbDpjbn09dnQ7cmV0dXJuIGYuX2NyZWF0ZUNlbGxDb29yZHMoT3Q+'@; put 'PTA/Zi5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KE90KTpPdCxjbj49MD9mLmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoY24pOmNuKX07bGV0IG5uPW5ldyBFRGUoZXQse3Jvd0luZGV4TWFwcGVyOigpPT5mLnJvd0lu'@; put 'ZGV4TWFwcGVyLGNvbHVtbkluZGV4TWFwcGVyOigpPT5mLmNvbHVtbkluZGV4TWFwcGVyLGNvdW50Q29sczooKT0+Zi5jb3VudENvbHMoKSxjb3VudFJvd3M6KCk9PmYuY291bnRSb3dzKCkscHJvcFRvQ29sOnZ0PT5ULnByb3BUb0NvbCh2dCksaXNFZGl0b3JPcGVuZWQ6KCk9PiEhZi5nZXRB'@; put 'Y3RpdmVFZGl0b3IoKSYmZi5nZXRBY3RpdmVFZGl0b3IoKS5pc09wZW5lZCgpLGNvdW50Q29sc1RyYW5zbGF0ZWQ6KCk9PnRoaXMudmlldy5jb3VudFJlbmRlcmFibGVDb2x1bW5zKCksY291bnRSb3dzVHJhbnNsYXRlZDooKT0+dGhpcy52aWV3LmNvdW50UmVuZGVyYWJsZVJvd3MoKSxnZXRT'@; put 'aG9ydGN1dE1hbmFnZXI6KCk9PmYuZ2V0U2hvcnRjdXRNYW5hZ2VyKCksY3JlYXRlQ2VsbENvb3JkczoodnQsT3QpPT5mLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LE90KSxjcmVhdGVDZWxsUmFuZ2U6KHZ0LE90LGNuKT0+Zi5fY3JlYXRlQ2VsbFJhbmdlKHZ0LE90LGNuKSx2aXN1YWxUb1JlbmRl'@; put 'cmFibGVDb29yZHM6U3QscmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzOnZ0PT57Y29uc3R7cm93Ok90LGNvbDpjbn09dnQ7cmV0dXJuIGYuX2NyZWF0ZUNlbGxDb29yZHMoT3Q+PTA/Zi5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE90KTpPdCxjbj49MD9mLmNv'@; put 'bHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoY24pOmNuKX0saXNEaXNhYmxlZENlbGxTZWxlY3Rpb246KHZ0LE90KT0+Zi5nZXRDZWxsTWV0YSh2dCxPdCkuZGlzYWJsZVZpc3VhbFNlbGVjdGlvbn0pO3RoaXMuc2VsZWN0aW9uPW5uO2NvbnN0IHZuPXZ0PT57'@; put 'bGV0e2hpZGRlbkluZGV4ZXNDaGFuZ2VkOk90fT12dDtPdCYmdGhpcy5zZWxlY3Rpb24ucmVmcmVzaCgpfTtmdW5jdGlvbiBObih2dCl7Y29uc3QgT3Q9TW5lKHZ0KTtOQihPdCk/KGYucnVuSG9va3MoImJlZm9yZUxhbmd1YWdlQ2hhbmdlIixPdCkseXQubGFuZ3VhZ2U9T3QsZi5ydW5Ib29r'@; put 'cygiYWZ0ZXJMYW5ndWFnZUNoYW5nZSIsT3QpKTp4bmUodnQpfWZ1bmN0aW9uIGNyKHZ0LE90KXtjb25zdCBjbj0iY2xhc3NOYW1lIj09PXZ0P2Yucm9vdEVsZW1lbnQ6Zi50YWJsZTtpZih3ZSlwaShjbixPdCk7ZWxzZXtsZXQgRW49W10sUG49W107eXRbdnRdJiYoRW49QXJyYXkuaXNBcnJh'@; put 'eSh5dFt2dF0pP3l0W3Z0XTpvTih5dFt2dF0pKSxPdCYmKFBuPUFycmF5LmlzQXJyYXkoT3QpP090Om9OKE90KSk7Y29uc3QgSm49aU4oRW4sUG4pLFByPWlOKFBuLEVuKTtKbi5sZW5ndGgmJldvKGNuLEpuKSxQci5sZW5ndGgmJnBpKGNuLFByKX15dFt2dF09T3R9ZnVuY3Rpb24gSXIoKXts'@; put 'ZXQgdnQ9ITE7cmV0dXJue3ZhbGlkYXRvcnNJblF1ZXVlOjAsdmFsaWQ6ITAsYWRkVmFsaWRhdG9yVG9RdWV1ZSgpe3RoaXMudmFsaWRhdG9yc0luUXVldWUrPTEsdnQ9ITF9LHJlbW92ZVZhbGlkYXRvckZvcm1RdWV1ZSgpe3RoaXMudmFsaWRhdG9yc0luUXVldWU9dGhpcy52YWxpZGF0b3Jz'@; put 'SW5RdWV1ZS0xPDA/MDp0aGlzLnZhbGlkYXRvcnNJblF1ZXVlLTEsdGhpcy5jaGVja0lmUXVldWVJc0VtcHR5KCl9LG9uUXVldWVFbXB0eSgpe30sY2hlY2tJZlF1ZXVlSXNFbXB0eSgpezA9PT10aGlzLnZhbGlkYXRvcnNJblF1ZXVlJiYhMT09PXZ0JiYodnQ9ITAsdGhpcy5vblF1ZXVlRW1w'@; put 'dHkodGhpcy52YWxpZCkpfX19ZnVuY3Rpb24gRWkodnQpe2NvbnN0IE90PXZ0LnJlcGxhY2UoIiwiLCIuIik7cmV0dXJuITE9PT1pc05hTihwYXJzZUZsb2F0KE90KSk/cGFyc2VGbG9hdChPdCk6dnR9ZnVuY3Rpb24gSWkodnQsT3QsY24pe2lmKCF2dC5sZW5ndGgpcmV0dXJuO2NvbnN0IEVu'@; put 'PWYuZ2V0QWN0aXZlRWRpdG9yKCksUG49bmV3IElyO2xldCBKbj0hMDtQbi5vblF1ZXVlRW1wdHk9UHI9PntFbiYmSm4mJkVuLmNhbmNlbENoYW5nZXMoKSxjbihQcil9O2ZvcihsZXQgUHI9dnQubGVuZ3RoLTE7UHI+PTA7UHItLSl7Y29uc3RbT3IsJHIsLFlyXT12dFtQcl0sTnI9VC5wcm9w'@; put 'VG9Db2woJHIpLFJpPWYuZ2V0Q2VsbE1ldGEoT3IsTnIpOyJudW1lcmljIj09PVJpLnR5cGUmJiJzdHJpbmciPT10eXBlb2YgWXImJkx0ZShZcikmJih2dFtQcl1bM109RWkoWXIpKSxmLmdldENlbGxWYWxpZGF0b3IoUmkpJiYoUG4uYWRkVmFsaWRhdG9yVG9RdWV1ZSgpLGYudmFsaWRhdGVD'@; put 'ZWxsKHZ0W1ByXVszXSxSaSxmdW5jdGlvbihYbyxHbyl7cmV0dXJuIGZ1bmN0aW9uKEpzKXtpZigiYm9vbGVhbiIhPXR5cGVvZiBKcyl0aHJvdyBuZXcgRXJyb3IoIlZhbGlkYXRpb24gZXJyb3I6IHJlc3VsdCBpcyBub3QgYm9vbGVhbiIpO2lmKCExPT09SnMmJiExPT09R28uYWxsb3dJbnZh'@; put 'bGlkKXtKbj0hMSx2dC5zcGxpY2UoWG8sMSksR28udmFsaWQ9ITA7Y29uc3QgZ2E9Zi5nZXRDZWxsKEdvLnZpc3VhbFJvdyxHby52aXN1YWxDb2wpO251bGwhPT1nYSYmV28oZ2EsZXQuaW52YWxpZENlbGxDbGFzc05hbWUpfVBuLnJlbW92ZVZhbGlkYXRvckZvcm1RdWV1ZSgpfX0oUHIsUmkp'@; put 'LE90KSl9UG4uY2hlY2tJZlF1ZXVlSXNFbXB0eSgpfWZ1bmN0aW9uIGZyKHZ0LE90KXtsZXQgY249dnQubGVuZ3RoLTE7aWYoY248MClyZXR1cm47Zm9yKDtjbj49MDtjbi0tKXtsZXQgUG49ITE7aWYobnVsbCE9PXZ0W2NuXSl7aWYobnVsbCE9dnRbY25dWzJdfHxudWxsIT12dFtjbl1bM10p'@; put 'e2lmKGV0LmFsbG93SW5zZXJ0Um93KWZvcig7dnRbY25dWzBdPmYuY291bnRSb3dzKCktMTspe2NvbnN0e2RlbHRhOkpufT1ULmNyZWF0ZVJvdyh2b2lkIDAsdm9pZCAwLHtzb3VyY2U6T3R9KTtpZigwPT09Sm4pe1BuPSEwO2JyZWFrfX1pZigiYXJyYXkiPT09Zi5kYXRhVHlwZSYmKCFldC5j'@; put 'b2x1bW5zfHwwPT09ZXQuY29sdW1ucy5sZW5ndGgpJiZldC5hbGxvd0luc2VydENvbHVtbilmb3IoO1QucHJvcFRvQ29sKHZ0W2NuXVsxXSk+Zi5jb3VudENvbHMoKS0xOyl7Y29uc3R7ZGVsdGE6Sm59PVQuY3JlYXRlQ29sKHZvaWQgMCx2b2lkIDAse3NvdXJjZTpPdH0pO2lmKDA9PT1Kbil7'@; put 'UG49ITA7YnJlYWt9fVBufHxULnNldCh2dFtjbl1bMF0sdnRbY25dWzFdLHZ0W2NuXVszXSl9fWVsc2UgdnQuc3BsaWNlKGNuLDEpfWYuZm9yY2VGdWxsUmVuZGVyPSEwLGllLmFkanVzdFJvd3NBbmRDb2xzKCksZi5ydW5Ib29rcygiYmVmb3JlQ2hhbmdlUmVuZGVyIix2dCxPdCkscGUubG9j'@; put 'a0VkaXRvcigpLGYuX3JlZnJlc2hCb3JkZXJzKG51bGwpLHBlLnVubG9ja0VkaXRvcigpLGYudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKSxmLnJ1bkhvb2tzKCJhZnRlckNoYW5nZSIsdnQsT3R8fCJlZGl0Iik7Y29uc3QgRW49Zi5nZXRBY3RpdmVFZGl0b3IoKTtFbiYmS2koRW4ucmVmcmVz'@; put 'aFZhbHVlKSYmRW4ucmVmcmVzaFZhbHVlKCl9ZnVuY3Rpb24gaWkodnQsT3QsY24pe3JldHVybiBBcnJheS5pc0FycmF5KHZ0KT92dDpbW3Z0LE90LGNuXV19ZnVuY3Rpb24ganIodnQsT3Qpe2NvbnN0IGNuPWYuZ2V0QWN0aXZlRWRpdG9yKCksRW49Zi5ydW5Ib29rcygiYmVmb3JlQ2hhbmdl'@; put 'Iix2dCxPdHx8ImVkaXQiKSxQbj12dC5maWx0ZXIoSm49Pm51bGwhPT1Kbik7cmV0dXJuITE9PT1Fbnx8MD09PVBuLmxlbmd0aD8oY24mJmNuLmNhbmNlbENoYW5nZXMoKSxbXSk6UG59dGhpcy5jb2x1bW5JbmRleE1hcHBlci5hZGRMb2NhbEhvb2soImNhY2hlVXBkYXRlZCIsdm4pLHRoaXMu'@; put 'cm93SW5kZXhNYXBwZXIuYWRkTG9jYWxIb29rKCJjYWNoZVVwZGF0ZWQiLHZuKSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVNldFJhbmdlU3RhcnQiLHZ0PT57dGhpcy5ydW5Ib29rcygiYmVmb3JlU2V0UmFuZ2VTdGFydCIsdnQpfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9j'@; put 'YWxIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSIsdnQ9Pnt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSIsdnQpfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZUVuZCIsdnQ9Pnt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVTZXRSYW5n'@; put 'ZUVuZCIsdnQpLHZ0LnJvdzwwJiYodnQucm93PXRoaXMudmlldy5fd3Qud3RUYWJsZS5nZXRGaXJzdFZpc2libGVSb3coKSksdnQuY29sPDAmJih2dC5jb2w9dGhpcy52aWV3Ll93dC53dFRhYmxlLmdldEZpcnN0VmlzaWJsZUNvbHVtbigpKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9v'@; put 'aygiYWZ0ZXJTZXRSYW5nZUVuZCIsdnQ9Pntjb25zdCBPdD1fZyghMSksY249dGhpcy5zZWxlY3Rpb24uZ2V0U2VsZWN0ZWRSYW5nZSgpLHtmcm9tOkVuLHRvOlBufT1jbi5jdXJyZW50KCksSm49Y24uc2l6ZSgpLTE7dGhpcy5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb24iLEVuLnJvdyxFbi5j'@; put 'b2wsUG4ucm93LFBuLmNvbCxPdCxKbiksdGhpcy5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25CeVByb3AiLEVuLnJvdyxmLmNvbFRvUHJvcChFbi5jb2wpLFBuLnJvdyxmLmNvbFRvUHJvcChQbi5jb2wpLE90LEpuKTtjb25zdCBQcj10aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlBbnlIZWFk'@; put 'ZXIoKSxPcj10aGlzLnNlbGVjdGlvbi5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKTtsZXQgJHI9ITA7aCYmKCRyPSExKSxPdC5pc1RvdWNoZWQoKSYmKCRyPSFPdC52YWx1ZSk7Y29uc3QgWXI9dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCksTnI9dGhpcy5zZWxlY3Rpb24u'@; put 'aXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCk7ITEhPT0kciYmKFByP1lyP3RoaXMudmlldy5zY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkoZi5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHZ0LnJvdykpOk5yJiZ0aGlzLnZpZXcuc2Nyb2xsVmlld3BvcnRIb3Jp'@; put 'em9udGFsbHkoZi5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHZ0LmNvbCkpOk9yJiYhdGhpcy5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpP3RoaXMudmlldy5zY3JvbGxWaWV3cG9ydChTdChPci5mcm9tKSk6dGhpcy52aWV3LnNjcm9sbFZpZXdwb3J0KFN0'@; put 'KHZ0KSkpLFlyJiZOcj9waSh0aGlzLnJvb3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiXSk6WXI/KFdvKHRoaXMucm9vdEVsZW1lbnQsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiKSxwaSh0aGlzLnJvb3RFbGVtZW50LCJodF9fc2VsZWN0'@; put 'aW9uLS1yb3dzIikpOk5yPyhXbyh0aGlzLnJvb3RFbGVtZW50LCJodF9fc2VsZWN0aW9uLS1yb3dzIikscGkodGhpcy5yb290RWxlbWVudCwiaHRfX3NlbGVjdGlvbi0tY29sdW1ucyIpKTpXbyh0aGlzLnJvb3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19zZWxlY3Rpb24t'@; put 'LWNvbHVtbnMiXSksdGhpcy5fcmVmcmVzaEJvcmRlcnMobnVsbCl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLHZ0PT57Y29uc3QgT3Q9dnQubGVuZ3RoLTEse2Zyb206Y24sdG86RW59PXZ0W090XTt0aGlzLnJ1bkhvb2tzKCJhZnRlclNl'@; put 'bGVjdGlvbkVuZCIsY24ucm93LGNuLmNvbCxFbi5yb3csRW4uY29sLE90KSx0aGlzLnJ1bkhvb2tzKCJhZnRlclNlbGVjdGlvbkVuZEJ5UHJvcCIsY24ucm93LGYuY29sVG9Qcm9wKGNuLmNvbCksRW4ucm93LGYuY29sVG9Qcm9wKEVuLmNvbCksT3QpfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9j'@; put 'YWxIb29rKCJhZnRlcklzTXVsdGlwbGVTZWxlY3Rpb24iLHZ0PT57Y29uc3QgT3Q9dGhpcy5ydW5Ib29rcygiYWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIix2dC52YWx1ZSk7dnQudmFsdWUmJih2dC52YWx1ZT1PdCl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZU1vZGlm'@; put 'eVRyYW5zZm9ybVN0YXJ0Iix2dD0+e3RoaXMucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybVN0YXJ0Iix2dCl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLCh2dCxPdCxjbik9Pnt0aGlzLnJ1bkhvb2tzKCJhZnRlck1vZGlmeVRyYW5z'@; put 'Zm9ybVN0YXJ0Iix2dCxPdCxjbil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZU1vZGlmeVRyYW5zZm9ybUVuZCIsdnQ9Pnt0aGlzLnJ1bkhvb2tzKCJtb2RpZnlUcmFuc2Zvcm1FbmQiLHZ0KX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiYWZ0ZXJNb2RpZnlU'@; put 'cmFuc2Zvcm1FbmQiLCh2dCxPdCxjbik9Pnt0aGlzLnJ1bkhvb2tzKCJhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCIsdnQsT3QsY24pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlckRlc2VsZWN0IiwoKT0+e3BlLmRlc3Ryb3lFZGl0b3IoKSx0aGlzLl9yZWZyZXNoQm9yZGVy'@; put 'cygpLFdvKHRoaXMucm9vdEVsZW1lbnQsWyJodF9fc2VsZWN0aW9uLS1yb3dzIiwiaHRfX3NlbGVjdGlvbi0tY29sdW1ucyJdKSx0aGlzLnJ1bkhvb2tzKCJhZnRlckRlc2VsZWN0Iil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImluc2VydFJvd1JlcXVpcmUiLHZ0PT57dGhpcy5h'@; put 'bHRlcigiaW5zZXJ0X3Jvd19hYm92ZSIsdnQsMSwiYXV0byIpfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJpbnNlcnRDb2xSZXF1aXJlIix2dD0+e3RoaXMuYWx0ZXIoImluc2VydF9jb2xfc3RhcnQiLHZ0LDEsImF1dG8iKX0pLGllPXthbHRlcih2dCxPdCl7dmFyIGNuLEVuO2xl'@; put 'dCBQbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MSxKbj1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxQcj1hcmd1bWVudHMubGVuZ3RoPjQ/YXJndW1lbnRzWzRdOnZvaWQgMDtjb25zdCBPcj0kcj0+e2lmKDA9'@; put 'PT0kci5sZW5ndGgpcmV0dXJuW107Y29uc3QgWXI9Wy4uLiRyXTtyZXR1cm4gWXIuc29ydCgoUmksWG8pPT57bGV0W0dvXT1SaSxbSnNdPVhvO3JldHVybiBHbz09PUpzPzA6R28+SnM/MTotMX0pLEFsKFlyLChSaSxYbyk9PntsZXRbR28sSnNdPVhvO2NvbnN0IGdhPVJpW1JpLmxlbmd0aC0x'@; put 'XSxbdW8sQXRdPWdhLERpPXVvK0F0O2lmKEdvPD1EaSl7Y29uc3QgUXM9TWF0aC5tYXgoSnMtKERpLUdvKSwwKTtnYVsxXSs9UXN9ZWxzZSBSaS5wdXNoKFtHbyxKc10pO3JldHVybiBSaX0sW1lyWzBdXSl9O3N3aXRjaCh2dCl7Y2FzZSJpbnNlcnRfcm93X2JlbG93IjpjYXNlImluc2VydF9y'@; put 'b3dfYWJvdmUiOmNvbnN0ICRyPWYuY291bnRTb3VyY2VSb3dzKCk7aWYoZXQubWF4Um93cz09PSRyKXJldHVybjtjb25zdCBZcj0iaW5zZXJ0X3Jvd19iZWxvdyI9PT12dD8iYmVsb3ciOiJhYm92ZSI7T3Q9bnVsbCE9PShjbj1PdCkmJnZvaWQgMCE9PWNuP2NuOiJiZWxvdyI9PT1Zcj8kcjow'@; put 'O2NvbnN0e2RlbHRhOk5yLHN0YXJ0UGh5c2ljYWxJbmRleDpSaX09VC5jcmVhdGVSb3coT3QsUG4se3NvdXJjZTpKbixtb2RlOllyfSk7aWYoTnIpe2NvbnN0IEF0PW5uLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLERpPUF0Py5mcm9tLFFzPURpPy5yb3csbGE9Zi50b1Zpc3VhbFJvdyhSaSk7'@; put 'aWYobm4uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpZi5zZWxlY3RBbGwoKTtlbHNlIGlmKEtpKFFzKSYmUXM+PWxhKXtjb25zdHtyb3c6RnMsY29sOnRjfT1BdC50bztsZXQgQ2E9RGkuY29sO25uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpJiYoQ2E9LTEpLG5uLmdldFNlbGVjdGVkUmFuZ2UoKS5w'@; put 'b3AoKSxubi5zZXRSYW5nZVN0YXJ0T25seShmLl9jcmVhdGVDZWxsQ29vcmRzKFFzK05yLENhKSwhMCksbm4uc2V0UmFuZ2VFbmQoZi5fY3JlYXRlQ2VsbENvb3JkcyhGcytOcix0YykpfWVsc2UgZi5fcmVmcmVzaEJvcmRlcnMoKX1icmVhaztjYXNlImluc2VydF9jb2xfc3RhcnQiOmNhc2Ui'@; put 'aW5zZXJ0X2NvbF9lbmQiOmNvbnN0IFhvPSJpbnNlcnRfY29sX2VuZCI9PT12dD8iZW5kIjoic3RhcnQiO090PW51bGwhPT0oRW49T3QpJiZ2b2lkIDAhPT1Fbj9FbjoiZW5kIj09PVhvP2YuY291bnRTb3VyY2VDb2xzKCk6MDtjb25zdHtkZWx0YTpHbyxzdGFydFBoeXNpY2FsSW5kZXg6SnN9'@; put 'PVQuY3JlYXRlQ29sKE90LFBuLHtzb3VyY2U6Sm4sbW9kZTpYb30pO2lmKEdvKXtpZihBcnJheS5pc0FycmF5KGV0LmNvbEhlYWRlcnMpKXtjb25zdCBGcz1bZi50b1Zpc3VhbENvbHVtbihKcyksMF07RnMubGVuZ3RoKz1HbyxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGV0LmNvbEhl'@; put 'YWRlcnMsRnMpfWNvbnN0IEF0PW5uLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLERpPUF0Py5mcm9tLFFzPURpPy5jb2wsbGE9Zi50b1Zpc3VhbENvbHVtbihKcyk7aWYobm4uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpZi5zZWxlY3RBbGwoKTtlbHNlIGlmKEtpKFFzKSYmUXM+PWxhKXtjb25zdHty'@; put 'b3c6RnMsY29sOnRjfT1BdC50bztsZXQgQ2E9RGkucm93O25uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpJiYoQ2E9LTEpLG5uLmdldFNlbGVjdGVkUmFuZ2UoKS5wb3AoKSxubi5zZXRSYW5nZVN0YXJ0T25seShmLl9jcmVhdGVDZWxsQ29vcmRzKENhLFFzK0dvKSwhMCksbm4uc2V0UmFu'@; put 'Z2VFbmQoZi5fY3JlYXRlQ2VsbENvb3JkcyhGcyx0YytHbykpfWVsc2UgZi5fcmVmcmVzaEJvcmRlcnMoKX1icmVhaztjYXNlInJlbW92ZV9yb3ciOmNvbnN0IGdhPUF0PT57bGV0IERpPTA7RG4oQXQsUXM9PntsZXRbbGEsRnNdPVFzO2NvbnN0IHRjPWdjKGxhKT9mLmNvdW50Um93cygpLTE6'@; put 'TWF0aC5tYXgobGEtRGksMCk7aWYoTnVtYmVyLmlzSW50ZWdlcihsYSkmJihsYT1NYXRoLm1heChsYS1EaSwwKSksIVQucmVtb3ZlUm93KGxhLEZzLEpuKSlyZXR1cm47Y29uc3QgUmg9Zi5jb3VudFJvd3MoKSxTMT1ldC5maXhlZFJvd3NUb3A7UzE+PXRjKzEmJihldC5maXhlZFJvd3NUb3At'@; put 'PU1hdGgubWluKEZzLFMxLXRjKSk7Y29uc3QgSWw9ZXQuZml4ZWRSb3dzQm90dG9tO0lsJiZ0Yz49UmgtSWwmJihldC5maXhlZFJvd3NCb3R0b20tPU1hdGgubWluKEZzLElsKSksRGkrPUZzfSl9O0FycmF5LmlzQXJyYXkoT3QpP2dhKE9yKE90KSk6Z2EoW1tPdCxQbl1dKSxpZS5hZGp1c3RS'@; put 'b3dzQW5kQ29scygpLGYuX3JlZnJlc2hCb3JkZXJzKCk7YnJlYWs7Y2FzZSJyZW1vdmVfY29sIjpjb25zdCB1bz1BdD0+e2xldCBEaT0wO0RuKEF0LFFzPT57bGV0W2xhLEZzXT1Rcztjb25zdCB0Yz1nYyhsYSk/Zi5jb3VudENvbHMoKS0xOk1hdGgubWF4KGxhLURpLDApO2xldCBDYT1mLnRv'@; put 'UGh5c2ljYWxDb2x1bW4odGMpO2lmKE51bWJlci5pc0ludGVnZXIobGEpJiYobGE9TWF0aC5tYXgobGEtRGksMCkpLCFULnJlbW92ZUNvbChsYSxGcyxKbikpcmV0dXJuO2NvbnN0IFMxPWV0LmZpeGVkQ29sdW1uc1N0YXJ0O1MxPj10YysxJiYoZXQuZml4ZWRDb2x1bW5zU3RhcnQtPU1hdGgu'@; put 'bWluKEZzLFMxLXRjKSksQXJyYXkuaXNBcnJheShldC5jb2xIZWFkZXJzKSYmKHR5cGVvZiBDYT4idSImJihDYT0tMSksZXQuY29sSGVhZGVycy5zcGxpY2UoQ2EsRnMpKSxEaSs9RnN9KX07QXJyYXkuaXNBcnJheShPdCk/dW8oT3IoT3QpKTp1byhbW090LFBuXV0pLGllLmFkanVzdFJvd3NB'@; put 'bmRDb2xzKCksZi5fcmVmcmVzaEJvcmRlcnMoKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgbm8gc3VjaCBhY3Rpb24gIiR7dnR9ImApfVByfHxpZS5hZGp1c3RSb3dzQW5kQ29scygpfSxhZGp1c3RSb3dzQW5kQ29scygpe2NvbnN0IHZ0PWV0Lm1pblJvd3MsT3Q9'@; put 'ZXQubWluU3BhcmVSb3dzLGNuPWV0Lm1pbkNvbHMsRW49ZXQubWluU3BhcmVDb2xzO2lmKDA9PT1mLmNvdW50Um93cygpJiYwPT09Zi5jb3VudENvbHMoKSYmbm4uZGVzZWxlY3QoKSx2dCl7Y29uc3QgUG49Zi5jb3VudFJvd3MoKTtQbjx2dCYmVC5jcmVhdGVSb3coUG4sdnQtUG4se3NvdXJj'@; put 'ZToiYXV0byJ9KX1pZihPdCl7Y29uc3QgUG49Zi5jb3VudEVtcHR5Um93cyghMCk7aWYoUG48T3Qpe2NvbnN0IFByPU1hdGgubWluKE90LVBuLGV0Lm1heFJvd3MtZi5jb3VudFNvdXJjZVJvd3MoKSk7VC5jcmVhdGVSb3coZi5jb3VudFJvd3MoKSxQcix7c291cmNlOiJhdXRvIn0pfX17bGV0'@; put 'IFBuOyhjbnx8RW4pJiYoUG49Zi5jb3VudEVtcHR5Q29scyghMCkpO2xldCBKbj1mLmNvdW50Q29scygpO2lmKGNuJiYhZXQuY29sdW1ucyYmSm48Y24pe2NvbnN0IFByPWNuLUpuO1BuKz1QcixULmNyZWF0ZUNvbChKbixQcix7c291cmNlOiJhdXRvIn0pfWlmKEVuJiYhZXQuY29sdW1ucyYm'@; put 'ImFycmF5Ij09PWYuZGF0YVR5cGUmJlBuPEVuKXtKbj1mLmNvdW50Q29scygpO2NvbnN0IE9yPU1hdGgubWluKEVuLVBuLGV0Lm1heENvbHMtSm4pO1QuY3JlYXRlQ29sKEpuLE9yLHtzb3VyY2U6ImF1dG8ifSl9fWlmKG5uLmlzU2VsZWN0ZWQoKSl7Y29uc3QgUG49Zi5jb3VudFJvd3MoKSxK'@; put 'bj1mLmNvdW50Q29scygpO0RuKG5uLnNlbGVjdGVkUmFuZ2UsUHI9PntsZXQgT3I9ITEsJHI9UHIuZnJvbS5yb3csWXI9UHIuZnJvbS5jb2wsTnI9UHIudG8ucm93LFJpPVByLnRvLmNvbDskcj5Qbi0xPygkcj1Qbi0xLE9yPSEwLE5yPiRyJiYoTnI9JHIpKTpOcj5Qbi0xJiYoTnI9UG4tMSxP'@; put 'cj0hMCwkcj5OciYmKCRyPU5yKSksWXI+Sm4tMT8oWXI9Sm4tMSxPcj0hMCxSaT5ZciYmKFJpPVlyKSk6Umk+Sm4tMSYmKFJpPUpuLTEsT3I9ITAsWXI+UmkmJihZcj1SaSkpLE9yJiZmLnNlbGVjdENlbGwoJHIsWXIsTnIsUmkpfSl9Zi52aWV3JiZmLnZpZXcuYWRqdXN0RWxlbWVudHNTaXpl'@; put 'KCl9LHBvcHVsYXRlRnJvbUFycmF5KHZ0LE90LGNuLEVuLFBuKXtsZXQgSm4sUHIsT3IsJHI7Y29uc3QgWXI9W10sTnI9e30sUmk9W10sWG89dnQucm93LEdvPXZ0LmNvbDtpZihQcj1PdC5sZW5ndGgsMD09PVByKXJldHVybiExO2xldCBKcz0wLGdhPTA7c3dpdGNoKHVzKGNuKSYmKEpzPWNu'@; put 'LmNvbC1HbysxLGdhPWNuLnJvdy1YbysxKSxQbil7Y2FzZSJzaGlmdF9kb3duIjpjb25zdCB1bz1LYihPdCksQXQ9dW8ubGVuZ3RoLERpPU1hdGgubWF4KEF0LEpzKSxRcz1mLmdldERhdGEoKS5zbGljZShYbyksbGE9S2IoUXMpLnNsaWNlKEdvLEdvK0RpKTtmb3IoT3I9MDtPcjxEaTtPcis9'@; put 'MSlpZihPcjxBdCl7Zm9yKEpuPTAsUHI9dW9bT3JdLmxlbmd0aDtKbjxnYS1QcjtKbis9MSl1b1tPcl0ucHVzaCh1b1tPcl1bSm4lUHJdKTtSaS5wdXNoKHVvW09yXS5jb25jYXQoT3I8bGEubGVuZ3RoP2xhW09yXTpuZXcgQXJyYXkoUXMubGVuZ3RoKS5maWxsKG51bGwpKSl9ZWxzZSBSaS5w'@; put 'dXNoKHVvW09yJUF0XS5jb25jYXQobGFbT3JdKSk7Zi5wb3B1bGF0ZUZyb21BcnJheShYbyxHbyxLYihSaSkpO2JyZWFrO2Nhc2Uic2hpZnRfcmlnaHQiOmNvbnN0IEZzPU90Lmxlbmd0aCx0Yz1NYXRoLm1heChGcyxnYSksQ2E9Zi5nZXREYXRhKCkuc2xpY2UoWG8pLm1hcCgkYz0+JGMuc2xp'@; put 'Y2UoR28pKTtmb3IoSm49MDtKbjx0YztKbis9MSlpZihKbjxGcyl7Zm9yKE9yPTAsJHI9T3RbSm5dLmxlbmd0aDtPcjxKcy0kcjtPcis9MSlPdFtKbl0ucHVzaChPdFtKbl1bT3IlJHJdKTtpZihKbjxDYS5sZW5ndGgpZm9yKGxldCAkYz0wOyRjPENhW0puXS5sZW5ndGg7JGMrPTEpT3RbSm5d'@; put 'LnB1c2goQ2FbSm5dWyRjXSk7ZWxzZSBPdFtKbl0ucHVzaCguLi5uZXcgQXJyYXkoQ2FbMF0ubGVuZ3RoKS5maWxsKG51bGwpKX1lbHNlIE90LnB1c2goT3RbSm4lUHJdLnNsaWNlKDAsdGMpLmNvbmNhdChDYVtKbl0pKTtmLnBvcHVsYXRlRnJvbUFycmF5KFhvLEdvLE90KTticmVhaztkZWZh'@; put 'dWx0Ok5yLnJvdz12dC5yb3csTnIuY29sPXZ0LmNvbDtsZXQgeDIsUmg9MCxTMT0wLElsPSEwO2NvbnN0IHU0PWZ1bmN0aW9uKFNkKXtsZXQgSnU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7Y29uc3QgTTE9T3RbU2QlT3QubGVu'@; put 'Z3RoXTtyZXR1cm4gbnVsbCE9PUp1P00xW0p1JU0xLmxlbmd0aF06TTF9LE9oPU90Lmxlbmd0aCxDZD1jbj9jbi5yb3ctdnQucm93KzE6MDtmb3IoUHI9Y24/Q2Q6TWF0aC5tYXgoT2gsQ2QpLEpuPTA7Sm48UHImJiEoY24mJk5yLnJvdz5jbi5yb3cmJkNkPk9ofHwhZXQuYWxsb3dJbnNlcnRS'@; put 'b3cmJk5yLnJvdz5mLmNvdW50Um93cygpLTF8fE5yLnJvdz49ZXQubWF4Um93cyk7Sm4rKyl7Y29uc3QgJGM9Sm4tUmgsU2Q9dTQoJGMpLmxlbmd0aCxKdT1jbj9jbi5jb2wtdnQuY29sKzE6MDtpZigkcj1jbj9KdTpNYXRoLm1heChTZCxKdSksTnIuY29sPXZ0LmNvbCx4Mj1mLmdldENlbGxN'@; put 'ZXRhKE5yLnJvdyxOci5jb2wpLCJDb3B5UGFzdGUucGFzdGUiIT09RW4mJiJBdXRvZmlsbC5maWxsIiE9PUVufHwheDIuc2tpcFJvd09uUGFzdGUpe2ZvcihTMT0wLE9yPTA7T3I8JHImJiEoY24mJk5yLmNvbD5jbi5jb2wmJkp1PlNkfHwhZXQuYWxsb3dJbnNlcnRDb2x1bW4mJk5yLmNvbD5m'@; put 'LmNvdW50Q29scygpLTF8fE5yLmNvbD49ZXQubWF4Q29scyk7T3IrKyl7aWYoeDI9Zi5nZXRDZWxsTWV0YShOci5yb3csTnIuY29sKSwoIkNvcHlQYXN0ZS5wYXN0ZSI9PT1Fbnx8IkF1dG9maWxsLmZpbGwiPT09RW4pJiZ4Mi5za2lwQ29sdW1uT25QYXN0ZSl7UzErPTEsTnIuY29sKz0xLCRy'@; put 'Kz0xO2NvbnRpbnVlfWlmKHgyLnJlYWRPbmx5JiYiVW5kb1JlZG8udW5kbyIhPT1Fbil7TnIuY29sKz0xO2NvbnRpbnVlfWxldCBNdT11NCgkYyxPci1TMSksYXU9Zi5nZXREYXRhQXRDZWxsKE5yLnJvdyxOci5jb2wpO2lmKG51bGwhPT1NdSYmIm9iamVjdCI9PXR5cGVvZiBNdSlpZihBcnJh'@; put 'eS5pc0FycmF5KE11KSYmbnVsbD09PWF1JiYoYXU9W10pLG51bGw9PT1hdXx8Im9iamVjdCIhPXR5cGVvZiBhdSlJbD0hMTtlbHNle2NvbnN0IHgxPXI3KEFycmF5LmlzQXJyYXkoYXUpP2F1OmF1WzBdfHxhdSksRTI9cjcoQXJyYXkuaXNBcnJheShNdSk/TXU6TXVbMF18fE11KTtsayh4MSxF'@; put 'Mil8fEFycmF5LmlzQXJyYXkoeDEpJiZBcnJheS5pc0FycmF5KEUyKT9NdT15dShNdSk6SWw9ITF9ZWxzZSBudWxsIT09YXUmJiJvYmplY3QiPT10eXBlb2YgYXUmJihJbD0hMSk7SWwmJllyLnB1c2goW05yLnJvdyxOci5jb2wsTXVdKSxJbD0hMCxOci5jb2wrPTF9TnIucm93Kz0xfWVsc2Ug'@; put 'UmgrPTEsTnIucm93Kz0xLFByKz0xfWYuc2V0RGF0YUF0Q2VsbChZcixudWxsLG51bGwsRW58fCJwb3B1bGF0ZUZyb21BcnJheSIpfX19LHRoaXMuaW5pdD1mdW5jdGlvbigpe1cuc2V0RGF0YShldC5kYXRhKSxmLnJ1bkhvb2tzKCJiZWZvcmVJbml0IiksKG0yKCl8fHlOKCkpJiZwaShmLnJv'@; put 'b3RFbGVtZW50LCJtb2JpbGUiKSx0aGlzLnVwZGF0ZVNldHRpbmdzKGV0LCEwKSx0aGlzLnZpZXc9bmV3IGhUZSh0aGlzKSxwZT1ja2UuZ2V0SW5zdGFuY2UoZixldCxubiksZi5ydW5Ib29rcygiaW5pdCIpLHRoaXMuZm9yY2VGdWxsUmVuZGVyPSEwLHRoaXMudmlldy5yZW5kZXIoKSx3ZSYm'@; put 'bnVsbD09PWYucm9vdEVsZW1lbnQub2Zmc2V0UGFyZW50JiZwdGUoZi5yb290RWxlbWVudCwoKT0+e2Yudmlldy5fd3Qud3RPdmVybGF5cy51cGRhdGVMYXN0U3ByZWFkZXJTaXplKCksZi5yZW5kZXIoKSxmLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCl9KSwib2JqZWN0Ij09dHlwZW9mIHdl'@; put 'JiYoZi5ydW5Ib29rcygiYWZ0ZXJDaGFuZ2UiLHdlWzBdLHdlWzFdKSx3ZT0hMSksZi5ydW5Ib29rcygiYWZ0ZXJJbml0Iil9LHRoaXMuX2NyZWF0ZUNlbGxDb29yZHM9ZnVuY3Rpb24odnQsT3Qpe3JldHVybiBmLnZpZXcuX3d0LmNyZWF0ZUNlbGxDb29yZHModnQsT3QpfSx0aGlzLl9jcmVh'@; put 'dGVDZWxsUmFuZ2U9ZnVuY3Rpb24odnQsT3QsY24pe3JldHVybiBmLnZpZXcuX3d0LmNyZWF0ZUNlbGxSYW5nZSh2dCxPdCxjbil9LHRoaXMudmFsaWRhdGVDZWxsPWZ1bmN0aW9uKHZ0LE90LGNuLEVuKXtsZXQgUG49Zi5nZXRDZWxsVmFsaWRhdG9yKE90KTtmdW5jdGlvbiBKbihQcil7aWYo'@; put 'YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJiFhcmd1bWVudHNbMV18fCEwPT09T3QuaGlkZGVuKXJldHVybiB2b2lkIGNuKFByKTtjb25zdCAkcj1PdC52aXN1YWxDb2wsWXI9T3QudmlzdWFsUm93LE5yPWYuZ2V0Q2VsbChZciwkciwhMCk7aWYoTnImJiJUSCIh'@; put 'PT1Oci5ub2RlTmFtZSl7Y29uc3QgUmk9Zi5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KFlyKSxYbz1mLmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoJHIpO2Yudmlldy5fd3QuZ2V0U2V0dGluZygiY2VsbFJlbmRlcmVy'@; put 'IixSaSxYbyxOcil9Y24oUHIpfXZhciBQcjtKZWUoUG4pJiYoUHI9UG4sUG49ZnVuY3Rpb24oT3IsJHIpeyRyKFByLnRlc3QoT3IpKX0pLFJhKFBuKT8odnQ9Zi5ydW5Ib29rcygiYmVmb3JlVmFsaWRhdGUiLHZ0LE90LnZpc3VhbFJvdyxPdC5wcm9wLEVuKSxmLl9yZWdpc3RlckltbWVkaWF0'@; put 'ZSgoKT0+e1BuLmNhbGwoT3QsdnQsUHI9PntmJiYoUHI9Zi5ydW5Ib29rcygiYWZ0ZXJWYWxpZGF0ZSIsUHIsdnQsT3QudmlzdWFsUm93LE90LnByb3AsRW4pLE90LnZhbGlkPVByLEpuKFByKSxmLnJ1bkhvb2tzKCJwb3N0QWZ0ZXJWYWxpZGF0ZSIsUHIsdnQsT3QudmlzdWFsUm93LE90LnBy'@; put 'b3AsRW4pKX0pfSkpOmYuX3JlZ2lzdGVySW1tZWRpYXRlKCgpPT57T3QudmFsaWQ9ITAsSm4oT3QudmFsaWQsITEpfSl9LHRoaXMuc2V0RGF0YUF0Q2VsbD1mdW5jdGlvbih2dCxPdCxjbixFbil7Y29uc3QgUG49aWkodnQsT3QsY24pLEpuPVtdO2xldCBPciwkcixZcixQcj1Fbjtmb3IoT3I9'@; put 'MCwkcj1Qbi5sZW5ndGg7T3I8JHI7T3IrKyl7aWYoIm9iamVjdCIhPXR5cGVvZiBQbltPcl0pdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IG51bWJlciBvciBjaGFuZ2VzIGFycmF5IG9mIGFycmF5cyBhcyBpdHMgZmlyc3QgcGFyYW1ldGVyIik7'@; put 'aWYoIm51bWJlciIhPXR5cGVvZiBQbltPcl1bMV0pdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IGFuZCBjb2x1bW4gbnVtYmVyIGFzIGl0cyBwYXJhbWV0ZXJzLiBJZiB5b3Ugd2FudCB0byB1c2Ugb2JqZWN0IHByb3BlcnR5IG5hbWUsIHVzZSBt'@; put 'ZXRob2QgYHNldERhdGFBdFJvd1Byb3BgIik7WXI9UG5bT3JdWzFdPj10aGlzLmNvdW50Q29scygpP1BuW09yXVsxXTpULmNvbFRvUHJvcChQbltPcl1bMV0pLEpuLnB1c2goW1BuW09yXVswXSxZcixXLmdldEF0Q2VsbCh0aGlzLnRvUGh5c2ljYWxSb3coUG5bT3JdWzBdKSxQbltPcl1bMV0p'@; put 'LFBuW09yXVsyXV0pfSFQciYmIm9iamVjdCI9PXR5cGVvZiB2dCYmKFByPU90KTtjb25zdCBOcj1qcihKbixFbik7Zi5ydW5Ib29rcygiYWZ0ZXJTZXREYXRhQXRDZWxsIixOcixQciksSWkoTnIsUHIsKCk9PntmcihOcixQcil9KX0sdGhpcy5zZXREYXRhQXRSb3dQcm9wPWZ1bmN0aW9uKHZ0'@; put 'LE90LGNuLEVuKXtjb25zdCBQbj1paSh2dCxPdCxjbiksSm49W107bGV0IE9yLCRyLFByPUVuO2ZvcihPcj0wLCRyPVBuLmxlbmd0aDtPcjwkcjtPcisrKUpuLnB1c2goW1BuW09yXVswXSxQbltPcl1bMV0sVy5nZXRBdENlbGwodGhpcy50b1BoeXNpY2FsUm93KFBuW09yXVswXSksUG5bT3Jd'@; put 'WzFdKSxQbltPcl1bMl1dKTshUHImJiJvYmplY3QiPT10eXBlb2YgdnQmJihQcj1PdCk7Y29uc3QgWXI9anIoSm4sRW4pO2YucnVuSG9va3MoImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsWXIsUHIpLElpKFlyLFByLCgpPT57ZnIoWXIsUHIpfSl9LHRoaXMubGlzdGVuPWZ1bmN0aW9uKCl7ZiYm'@; put 'IWYuaXNMaXN0ZW5pbmcoKSYmKFlCPWYuZ3VpZCxmLnJ1bkhvb2tzKCJhZnRlckxpc3RlbiIpKX0sdGhpcy51bmxpc3Rlbj1mdW5jdGlvbigpe3RoaXMuaXNMaXN0ZW5pbmcoKSYmKFlCPW51bGwsZi5ydW5Ib29rcygiYWZ0ZXJVbmxpc3RlbiIpKX0sdGhpcy5pc0xpc3RlbmluZz1mdW5jdGlv'@; put 'bigpe3JldHVybiBZQj09PWYuZ3VpZH0sdGhpcy5kZXN0cm95RWRpdG9yPWZ1bmN0aW9uKCl7Zi5fcmVmcmVzaEJvcmRlcnMoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSwhKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1l'@; put 'bnRzWzFdKXx8YXJndW1lbnRzWzFdKX0sdGhpcy5wb3B1bGF0ZUZyb21BcnJheT1mdW5jdGlvbih2dCxPdCxjbixFbixQbixKbixQcil7aWYoIm9iamVjdCIhPXR5cGVvZiBjbnx8Im9iamVjdCIhPXR5cGVvZiBjblswXSl0aHJvdyBuZXcgRXJyb3IoInBvcHVsYXRlRnJvbUFycmF5IHBhcmFt'@; put 'ZXRlciBgaW5wdXRgIG11c3QgYmUgYW4gYXJyYXkgb2YgYXJyYXlzIik7Y29uc3QgT3I9Im51bWJlciI9PXR5cGVvZiBFbj9mLl9jcmVhdGVDZWxsQ29vcmRzKEVuLFBuKTpudWxsO3JldHVybiBpZS5wb3B1bGF0ZUZyb21BcnJheShmLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LE90KSxjbixPcixK'@; put 'bixQcil9LHRoaXMuc3BsaWNlQ29sPWZ1bmN0aW9uKHZ0LE90LGNuKXtmb3IodmFyIEVuPWFyZ3VtZW50cy5sZW5ndGgsUG49bmV3IEFycmF5KEVuPjM/RW4tMzowKSxKbj0zO0puPEVuO0puKyspUG5bSm4tM109YXJndW1lbnRzW0puXTtyZXR1cm4gVC5zcGxpY2VDb2wodnQsT3QsY24sLi4u'@; put 'UG4pfSx0aGlzLnNwbGljZVJvdz1mdW5jdGlvbih2dCxPdCxjbil7Zm9yKHZhciBFbj1hcmd1bWVudHMubGVuZ3RoLFBuPW5ldyBBcnJheShFbj4zP0VuLTM6MCksSm49MztKbjxFbjtKbisrKVBuW0puLTNdPWFyZ3VtZW50c1tKbl07cmV0dXJuIFQuc3BsaWNlUm93KHZ0LE90LGNuLC4uLlBu'@; put 'KX0sdGhpcy5nZXRTZWxlY3RlZD1mdW5jdGlvbigpe2lmKG5uLmlzU2VsZWN0ZWQoKSlyZXR1cm4gY3Mobm4uZ2V0U2VsZWN0ZWRSYW5nZSgpLHZ0PT57bGV0e2Zyb206T3QsdG86Y259PXZ0O3JldHVybltPdC5yb3csT3QuY29sLGNuLnJvdyxjbi5jb2xdfSl9LHRoaXMuZ2V0U2VsZWN0ZWRM'@; put 'YXN0PWZ1bmN0aW9uKCl7Y29uc3QgdnQ9dGhpcy5nZXRTZWxlY3RlZCgpO2xldCBPdDtyZXR1cm4gdnQmJnZ0Lmxlbmd0aD4wJiYoT3Q9dnRbdnQubGVuZ3RoLTFdKSxPdH0sdGhpcy5nZXRTZWxlY3RlZFJhbmdlPWZ1bmN0aW9uKCl7aWYobm4uaXNTZWxlY3RlZCgpKXJldHVybiBBcnJheS5m'@; put 'cm9tKG5uLmdldFNlbGVjdGVkUmFuZ2UoKSl9LHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3Q9ZnVuY3Rpb24oKXtjb25zdCB2dD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtsZXQgT3Q7cmV0dXJuIHZ0JiZ2dC5sZW5ndGg+MCYmKE90PXZ0W3Z0Lmxlbmd0aC0xXSksT3R9LHRoaXMuZW1wdHlT'@; put 'ZWxlY3RlZENlbGxzPWZ1bmN0aW9uKHZ0KXtpZighbm4uaXNTZWxlY3RlZCgpfHwwPT09dGhpcy5jb3VudFJvd3MoKXx8MD09PXRoaXMuY291bnRDb2xzKCkpcmV0dXJuO2NvbnN0IE90PVtdO0RuKG5uLmdldFNlbGVjdGVkUmFuZ2UoKSxjbj0+e2NvbnN0IEVuPWNuLmdldFRvcFN0YXJ0Q29y'@; put 'bmVyKCksUG49Y24uZ2V0Qm90dG9tRW5kQ29ybmVyKCk7dm8oRW4ucm93LFBuLnJvdyxKbj0+e3ZvKEVuLmNvbCxQbi5jb2wsUHI9Pnt0aGlzLmdldENlbGxNZXRhKEpuLFByKS5yZWFkT25seXx8T3QucHVzaChbSm4sUHIsbnVsbF0pfSl9KX0pLE90Lmxlbmd0aD4wJiZ0aGlzLnNldERhdGFB'@; put 'dENlbGwoT3QsdnQpfSx0aGlzLmlzUmVuZGVyU3VzcGVuZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVuZGVyU3VzcGVuZGVkQ291bnRlcj4wfSx0aGlzLnN1c3BlbmRSZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLnJlbmRlclN1c3BlbmRlZENvdW50ZXIrPTF9LHRoaXMucmVzdW1lUmVuZGVy'@; put 'PWZ1bmN0aW9uKCl7Y29uc3QgdnQ9dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyLTE7dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPU1hdGgubWF4KHZ0LDApLCF0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCkmJnZ0PT09dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyJiYodGhpcy5yZW5k'@; put 'ZXJDYWxsP3RoaXMucmVuZGVyKCk6dGhpcy5fcmVmcmVzaEJvcmRlcnMobnVsbCkpfSx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe3RoaXMudmlldyYmKHRoaXMucmVuZGVyQ2FsbD0hMCx0aGlzLmZvcmNlRnVsbFJlbmRlcj0hMCx0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCl8fChwZS5sb2NrRWRp'@; put 'dG9yKCksdGhpcy5fcmVmcmVzaEJvcmRlcnMobnVsbCkscGUudW5sb2NrRWRpdG9yKCkpKX0sdGhpcy5iYXRjaFJlbmRlcj1mdW5jdGlvbih2dCl7dGhpcy5zdXNwZW5kUmVuZGVyKCk7Y29uc3QgT3Q9dnQoKTtyZXR1cm4gdGhpcy5yZXN1bWVSZW5kZXIoKSxPdH0sdGhpcy5pc0V4ZWN1dGlv'@; put 'blN1c3BlbmRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXI+MH0sdGhpcy5zdXNwZW5kRXhlY3V0aW9uPWZ1bmN0aW9uKCl7dGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyKz0xLHRoaXMuY29sdW1uSW5kZXhNYXBwZXIuc3VzcGVuZE9wZXJh'@; put 'dGlvbnMoKSx0aGlzLnJvd0luZGV4TWFwcGVyLnN1c3BlbmRPcGVyYXRpb25zKCl9LHRoaXMucmVzdW1lRXhlY3V0aW9uPWZ1bmN0aW9uKCl7bGV0IHZ0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07Y29uc3QgT3Q9dGhpcy5leGVjdXRp'@; put 'b25TdXNwZW5kZWRDb3VudGVyLTE7dGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyPU1hdGgubWF4KE90LDApLCghdGhpcy5pc0V4ZWN1dGlvblN1c3BlbmRlZCgpJiZPdD09PXRoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcnx8dnQpJiYodGhpcy5jb2x1bW5JbmRleE1hcHBlci5y'@; put 'ZXN1bWVPcGVyYXRpb25zKCksdGhpcy5yb3dJbmRleE1hcHBlci5yZXN1bWVPcGVyYXRpb25zKCkpfSx0aGlzLmJhdGNoRXhlY3V0aW9uPWZ1bmN0aW9uKHZ0KXtsZXQgT3Q9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTt0aGlzLnN1c3Bl'@; put 'bmRFeGVjdXRpb24oKTtjb25zdCBjbj12dCgpO3JldHVybiB0aGlzLnJlc3VtZUV4ZWN1dGlvbihPdCksY259LHRoaXMuYmF0Y2g9ZnVuY3Rpb24odnQpe3RoaXMuc3VzcGVuZFJlbmRlcigpLHRoaXMuc3VzcGVuZEV4ZWN1dGlvbigpO2NvbnN0IE90PXZ0KCk7cmV0dXJuIHRoaXMucmVzdW1l'@; put 'RXhlY3V0aW9uKCksdGhpcy5yZXN1bWVSZW5kZXIoKSxPdH0sdGhpcy5yZWZyZXNoRGltZW5zaW9ucz1mdW5jdGlvbigpe2lmKCFmLnZpZXcpcmV0dXJuO2NvbnN0e3dpZHRoOnZ0LGhlaWdodDpPdH09Zi52aWV3LmdldExhc3RTaXplKCkse3dpZHRoOmNuLGhlaWdodDpFbn09Zi5yb290RWxl'@; put 'bWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxQbj1jbiE9PXZ0fHxFbiE9PU90OyExIT09Zi5ydW5Ib29rcygiYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMiLHt3aWR0aDp2dCxoZWlnaHQ6T3R9LHt3aWR0aDpjbixoZWlnaHQ6RW59LFBuKSYmKChQbnx8Zi52aWV3Ll93dC53dE92ZXJsYXlz'@; put 'LnNjcm9sbGFibGVFbGVtZW50PT09Zi5yb290V2luZG93KSYmKGYudmlldy5zZXRMYXN0U2l6ZShjbixFbiksZi5yZW5kZXIoKSksZi5ydW5Ib29rcygiYWZ0ZXJSZWZyZXNoRGltZW5zaW9ucyIse3dpZHRoOnZ0LGhlaWdodDpPdH0se3dpZHRoOmNuLGhlaWdodDpFbn0sUG4pKX0sdGhpcy51'@; put 'cGRhdGVEYXRhPWZ1bmN0aW9uKHZ0LE90KXtqbmUodnQsY249PntUPWNufSxjbj0+e1Q9Y24sZi5jb2x1bW5JbmRleE1hcHBlci5maXRUb0xlbmd0aCh0aGlzLmdldEluaXRpYWxDb2x1bW5Db3VudCgpKSxmLnJvd0luZGV4TWFwcGVyLmZpdFRvTGVuZ3RoKHRoaXMuY291bnRTb3VyY2VSb3dz'@; put 'KCkpLGllLmFkanVzdFJvd3NBbmRDb2xzKCl9LHtob3RJbnN0YW5jZTpmLGRhdGFNYXA6VCxkYXRhU291cmNlOlcsaW50ZXJuYWxTb3VyY2U6InVwZGF0ZURhdGEiLHNvdXJjZTpPdCxtZXRhTWFuYWdlcjppdCxmaXJzdFJ1bjp3ZX0pfSx0aGlzLmxvYWREYXRhPWZ1bmN0aW9uKHZ0LE90KXtq'@; put 'bmUodnQsY249PntUPWNufSwoKT0+e2l0LmNsZWFyQ2VsbHNDYWNoZSgpLGYuaW5pdEluZGV4TWFwcGVycygpLGllLmFkanVzdFJvd3NBbmRDb2xzKCksd2UmJih3ZT1bbnVsbCwibG9hZERhdGEiXSl9LHtob3RJbnN0YW5jZTpmLGRhdGFNYXA6VCxkYXRhU291cmNlOlcsaW50ZXJuYWxTb3Vy'@; put 'Y2U6ImxvYWREYXRhIixzb3VyY2U6T3QsbWV0YU1hbmFnZXI6aXQsZmlyc3RSdW46d2V9KX0sdGhpcy5nZXRJbml0aWFsQ29sdW1uQ291bnQ9ZnVuY3Rpb24oKXtjb25zdCB2dD1ldC5jb2x1bW5zO2xldCBPdD0wO2lmKEFycmF5LmlzQXJyYXkodnQpKU90PXZ0Lmxlbmd0aDtlbHNlIGlmKFJh'@; put 'KHZ0KSlpZigiYXJyYXkiPT09Zi5kYXRhVHlwZSl7Y29uc3QgY249dGhpcy5jb3VudFNvdXJjZUNvbHMoKTtmb3IobGV0IEVuPTA7RW48Y247RW4rPTEpdnQoRW4pJiYoT3QrPTEpfWVsc2UoIm9iamVjdCI9PT1mLmRhdGFUeXBlfHwiZnVuY3Rpb24iPT09Zi5kYXRhVHlwZSkmJihPdD1ULmNv'@; put 'bFRvUHJvcENhY2hlLmxlbmd0aCk7ZWxzZSBpZihLaShldC5kYXRhU2NoZW1hKSl7Y29uc3QgY249VC5nZXRTY2hlbWEoKTtPdD1BcnJheS5pc0FycmF5KGNuKT9jbi5sZW5ndGg6dWsoY24pfWVsc2UgT3Q9dGhpcy5jb3VudFNvdXJjZUNvbHMoKTtyZXR1cm4gT3R9LHRoaXMuaW5pdEluZGV4'@; put 'TWFwcGVycz1mdW5jdGlvbigpe3RoaXMuY29sdW1uSW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRoaXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLHRoaXMucm93SW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRoaXMuY291bnRTb3VyY2VSb3dzKCkpfSx0aGlzLmdldERhdGE9ZnVuY3Rpb24o'@; put 'dnQsT3QsY24sRW4pe3JldHVybiBMYSh2dCk/VC5nZXRBbGwoKTpULmdldFJhbmdlKGYuX2NyZWF0ZUNlbGxDb29yZHModnQsT3QpLGYuX2NyZWF0ZUNlbGxDb29yZHMoY24sRW4pLFQuREVTVElOQVRJT05fUkVOREVSRVIpfSx0aGlzLmdldENvcHlhYmxlVGV4dD1mdW5jdGlvbih2dCxPdCxj'@; put 'bixFbil7cmV0dXJuIFQuZ2V0Q29weWFibGVUZXh0KGYuX2NyZWF0ZUNlbGxDb29yZHModnQsT3QpLGYuX2NyZWF0ZUNlbGxDb29yZHMoY24sRW4pKX0sdGhpcy5nZXRDb3B5YWJsZURhdGE9ZnVuY3Rpb24odnQsT3Qpe3JldHVybiBULmdldENvcHlhYmxlKHZ0LFQuY29sVG9Qcm9wKE90KSl9'@; put 'LHRoaXMuZ2V0U2NoZW1hPWZ1bmN0aW9uKCl7cmV0dXJuIFQuZ2V0U2NoZW1hKCl9LHRoaXMudXBkYXRlU2V0dGluZ3M9ZnVuY3Rpb24odnQpe2xldCBPdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2NvbnN0IGNuPSh3ZT9mLmxvYWRE'@; put 'YXRhOmYudXBkYXRlRGF0YSkuYmluZCh0aGlzKTtsZXQgUG4sSm4sRW49ITE7aWYoS2kodnQucm93cykpdGhyb3cgbmV3IEVycm9yKCdUaGUgInJvd3MiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRSb3dzLCBtaW5Sb3dzIG9yIG1heFJvd3M/Jyk7'@; put 'aWYoS2kodnQuY29scykpdGhyb3cgbmV3IEVycm9yKCdUaGUgImNvbHMiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRDb2xzLCBtaW5Db2xzIG9yIG1heENvbHM/Jyk7aWYoS2kodnQuZ2FudHRDaGFydCkpdGhyb3cgbmV3IEVycm9yKCdTaW5jZSA4'@; put 'LjAuMCB0aGUgImdhbnR0Q2hhcnQiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4nKTtmb3IoUG4gaW4gdnQpImRhdGEiPT09UG58fCgibGFuZ3VhZ2UiPT09UG4/Tm4odnQubGFuZ3VhZ2UpOiJjbGFzc05hbWUiPT09UG4/Y3IoImNsYXNzTmFtZSIsdnQuY2xhc3NOYW1lKToidGFi'@; put 'bGVDbGFzc05hbWUiPT09UG4mJmYudGFibGU/KGNyKCJ0YWJsZUNsYXNzTmFtZSIsdnQudGFibGVDbGFzc05hbWUpLGYudmlldy5fd3Qud3RPdmVybGF5cy5zeW5jT3ZlcmxheVRhYmxlQ2xhc3NOYW1lcygpKTpzby5nZXRTaW5nbGV0b24oKS5pc1JlZ2lzdGVyZWQoUG4pfHxzby5nZXRTaW5n'@; put 'bGV0b24oKS5pc0RlcHJlY2F0ZWQoUG4pPyhSYSh2dFtQbl0pfHxBcnJheS5pc0FycmF5KHZ0W1BuXSkpJiYodnRbUG5dLmluaXRpYWxIb29rPSEwLGYuYWRkSG9vayhQbix2dFtQbl0pKTohT3QmJmJsKHZ0LFBuKSYmKHl0W1BuXT12dFtQbl0pKTt2b2lkIDA9PT12dC5kYXRhJiZ2b2lkIDA9'@; put 'PT1ldC5kYXRhP2NuKG51bGwsInVwZGF0ZVNldHRpbmdzIik6dm9pZCAwIT09dnQuZGF0YT9jbih2dC5kYXRhLCJ1cGRhdGVTZXR0aW5ncyIpOnZvaWQgMCE9PXZ0LmNvbHVtbnMmJihULmNyZWF0ZU1hcCgpLGYuaW5pdEluZGV4TWFwcGVycygpKTtjb25zdCBQcj1mLmNvdW50Q29scygpLE9y'@; put 'PWV0LmNvbHVtbnM7aWYoT3ImJlJhKE9yKSYmKEVuPSEwKSwodm9pZCAwIT09dnQuY2VsbHx8dm9pZCAwIT09dnQuY2VsbHN8fHZvaWQgMCE9PXZ0LmNvbHVtbnMpJiZpdC5jbGVhckNhY2hlKCksUHI+MClmb3IoUG49MCxKbj0wO1BuPFByO1BuKyspe2lmKE9yKXtjb25zdCBOcj1Fbj9PcihQ'@; put 'bik6T3JbSm5dO05yJiZpdC51cGRhdGVDb2x1bW5NZXRhKEpuLE5yKX1Kbis9MX1LaSh2dC5jZWxsKSYmZHModnQuY2VsbCxOcj0+e2Yuc2V0Q2VsbE1ldGFPYmplY3QoTnIucm93LE5yLmNvbCxOcil9KSxmLnJ1bkhvb2tzKCJhZnRlckNlbGxNZXRhUmVzZXQiKTtsZXQgJHI9Zi5yb290RWxl'@; put 'bWVudC5zdHlsZS5oZWlnaHQ7IiIhPT0kciYmKCRyPXBhcnNlSW50KGYucm9vdEVsZW1lbnQuc3R5bGUuaGVpZ2h0LDEwKSk7bGV0IFlyPXZ0LmhlaWdodDtpZihSYShZcikmJihZcj1ZcigpKSxPdCYmZi5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIikmJmYucm9vdEVsZW1lbnQu'@; put 'c2V0QXR0cmlidXRlKCJkYXRhLWluaXRpYWxzdHlsZSIsZi5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIikpLG51bGw9PT1Zcil7Y29uc3QgTnI9Zi5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtaW5pdGlhbHN0eWxlIik7TnImJihOci5pbmRleE9mKCJoZWlnaHQiKT4t'@; put 'MXx8TnIuaW5kZXhPZigib3ZlcmZsb3ciKT4tMSk/Zi5yb290RWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0eWxlIixOcik6KGYucm9vdEVsZW1lbnQuc3R5bGUuaGVpZ2h0PSIiLGYucm9vdEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c9IiIpfWVsc2Ugdm9pZCAwIT09WXImJihmLnJvb3RFbGVtZW50'@; put 'LnN0eWxlLmhlaWdodD1pc05hTihZcik/YCR7WXJ9YDpgJHtZcn1weGAsZi5yb290RWxlbWVudC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik7aWYodHlwZW9mIHZ0LndpZHRoPCJ1Iil7bGV0IE5yPXZ0LndpZHRoO1JhKE5yKSYmKE5yPU5yKCkpLGYucm9vdEVsZW1lbnQuc3R5bGUud2lkdGg9'@; put 'aXNOYU4oTnIpP2Ake05yfWA6YCR7TnJ9cHhgfU90fHwoZi52aWV3JiYoZi52aWV3Ll93dC53dFZpZXdwb3J0LnJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCgpLGYudmlldy5fd3QuZXhwb3J0U2V0dGluZ3NBc0NsYXNzTmFtZXMoKSksZi5ydW5Ib29rcygiYWZ0ZXJVcGRh'@; put 'dGVTZXR0aW5ncyIsdnQpKSxpZS5hZGp1c3RSb3dzQW5kQ29scygpLGYudmlldyYmIXdlJiYoZi5mb3JjZUZ1bGxSZW5kZXI9ITAscGUubG9ja0VkaXRvcigpLGYuX3JlZnJlc2hCb3JkZXJzKG51bGwpLGYudmlldy5fd3Qud3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUoKSxwZS51bmxv'@; put 'Y2tFZGl0b3IoKSksIU90JiZmLnZpZXcmJigiIj09PSRyfHwiIj09PVlyfHx2b2lkIDA9PT1ZcikmJiRyIT09WXImJmYudmlldy5fd3Qud3RPdmVybGF5cy51cGRhdGVNYWluU2Nyb2xsYWJsZUVsZW1lbnRzKCl9LHRoaXMuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtjb25zdCB2dD1mLmdldFNlbGVj'@; put 'dGVkTGFzdCgpO2lmKGV0LmdldFZhbHVlKXtpZihSYShldC5nZXRWYWx1ZSkpcmV0dXJuIGV0LmdldFZhbHVlLmNhbGwoZik7aWYodnQpcmV0dXJuIGYuZ2V0RGF0YSgpW3Z0WzBdWzBdXVtldC5nZXRWYWx1ZV19ZWxzZSBpZih2dClyZXR1cm4gZi5nZXREYXRhQXRDZWxsKHZ0WzBdLHZ0WzFd'@; put 'KX0sdGhpcy5nZXRTZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiBldH0sdGhpcy5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2VsZWN0QWxsKCksdGhpcy5lbXB0eVNlbGVjdGVkQ2VsbHMoKX0sdGhpcy5hbHRlcj1mdW5jdGlvbih2dCxPdCxjbixFbixQbil7aWUuYWx0ZXIodnQsT3QsY24sRW4s'@; put 'UG4pfSx0aGlzLmdldENlbGw9ZnVuY3Rpb24odnQsT3Qpe2xldCBjbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLEVuPU90LFBuPXZ0O2lmKE90Pj0wKXtpZih0aGlzLmNvbHVtbkluZGV4TWFwcGVyLmlzSGlkZGVuKHRoaXMudG9QaHlz'@; put 'aWNhbENvbHVtbihPdCkpKXJldHVybiBudWxsO0VuPXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChPdCl9aWYodnQ+PTApe2lmKHRoaXMucm93SW5kZXhNYXBwZXIuaXNIaWRkZW4odGhpcy50b1BoeXNpY2FsUm93KHZ0KSkpcmV0dXJuIG51bGw7'@; put 'UG49dGhpcy5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHZ0KX1yZXR1cm4gbnVsbD09PVBufHxudWxsPT09RW4/bnVsbDpmLnZpZXcuZ2V0Q2VsbEF0Q29vcmRzKGYuX2NyZWF0ZUNlbGxDb29yZHMoUG4sRW4pLGNuKX0sdGhpcy5nZXRDb29yZHM9ZnVuY3Rp'@; put 'b24odnQpe2NvbnN0IE90PXRoaXMudmlldy5fd3Qud3RUYWJsZS5nZXRDb29yZHModnQpO2lmKG51bGw9PT1PdClyZXR1cm4gbnVsbDtjb25zdHtyb3c6Y24sY29sOkVufT1PdDtsZXQgUG49Y24sSm49RW47cmV0dXJuIGNuPj0wJiYoUG49dGhpcy5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxG'@; put 'cm9tUmVuZGVyYWJsZUluZGV4KGNuKSksRW4+PTAmJihKbj10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoRW4pKSxmLl9jcmVhdGVDZWxsQ29vcmRzKFBuLEpuKX0sdGhpcy5jb2xUb1Byb3A9ZnVuY3Rpb24odnQpe3JldHVybiBULmNvbFRvUHJv'@; put 'cCh2dCl9LHRoaXMucHJvcFRvQ29sPWZ1bmN0aW9uKHZ0KXtyZXR1cm4gVC5wcm9wVG9Db2wodnQpfSx0aGlzLnRvVmlzdWFsUm93PXZ0PT50aGlzLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21QaHlzaWNhbEluZGV4KHZ0KSx0aGlzLnRvVmlzdWFsQ29sdW1uPXZ0PT50aGlzLmNvbHVt'@; put 'bkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21QaHlzaWNhbEluZGV4KHZ0KSx0aGlzLnRvUGh5c2ljYWxSb3c9dnQ9PnRoaXMucm93SW5kZXhNYXBwZXIuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgodnQpLHRoaXMudG9QaHlzaWNhbENvbHVtbj12dD0+dGhpcy5jb2x1bW5JbmRleE1hcHBl'@; put 'ci5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleCh2dCksdGhpcy5nZXREYXRhQXRDZWxsPWZ1bmN0aW9uKHZ0LE90KXtyZXR1cm4gVC5nZXQodnQsVC5jb2xUb1Byb3AoT3QpKX0sdGhpcy5nZXREYXRhQXRSb3dQcm9wPWZ1bmN0aW9uKHZ0LE90KXtyZXR1cm4gVC5nZXQodnQsT3QpfSx0aGlz'@; put 'LmdldERhdGFBdENvbD1mdW5jdGlvbih2dCl7Y29uc3QgT3Q9W10sY249VC5nZXRSYW5nZShmLl9jcmVhdGVDZWxsQ29vcmRzKDAsdnQpLGYuX2NyZWF0ZUNlbGxDb29yZHMoZXQuZGF0YS5sZW5ndGgtMSx2dCksVC5ERVNUSU5BVElPTl9SRU5ERVJFUik7Zm9yKGxldCBFbj0wO0VuPGNuLmxl'@; put 'bmd0aDtFbis9MSlmb3IobGV0IFBuPTA7UG48Y25bRW5dLmxlbmd0aDtQbis9MSlPdC5wdXNoKGNuW0VuXVtQbl0pO3JldHVybiBPdH0sdGhpcy5nZXREYXRhQXRQcm9wPWZ1bmN0aW9uKHZ0KXtjb25zdCBPdD1bXSxjbj1ULmdldFJhbmdlKGYuX2NyZWF0ZUNlbGxDb29yZHMoMCxULnByb3BU'@; put 'b0NvbCh2dCkpLGYuX2NyZWF0ZUNlbGxDb29yZHMoZXQuZGF0YS5sZW5ndGgtMSxULnByb3BUb0NvbCh2dCkpLFQuREVTVElOQVRJT05fUkVOREVSRVIpO2ZvcihsZXQgRW49MDtFbjxjbi5sZW5ndGg7RW4rPTEpZm9yKGxldCBQbj0wO1BuPGNuW0VuXS5sZW5ndGg7UG4rPTEpT3QucHVzaChj'@; put 'bltFbl1bUG5dKTtyZXR1cm4gT3R9LHRoaXMuZ2V0U291cmNlRGF0YT1mdW5jdGlvbih2dCxPdCxjbixFbil7bGV0IFBuO3JldHVybiBQbj12b2lkIDA9PT12dD9XLmdldERhdGEoKTpXLmdldEJ5UmFuZ2UoZi5fY3JlYXRlQ2VsbENvb3Jkcyh2dCxPdCksZi5fY3JlYXRlQ2VsbENvb3Jkcyhj'@; put 'bixFbikpLFBufSx0aGlzLmdldFNvdXJjZURhdGFBcnJheT1mdW5jdGlvbih2dCxPdCxjbixFbil7bGV0IFBuO3JldHVybiBQbj12b2lkIDA9PT12dD9XLmdldERhdGEoITApOlcuZ2V0QnlSYW5nZShmLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LE90KSxmLl9jcmVhdGVDZWxsQ29vcmRzKGNuLEVu'@; put 'KSwhMCksUG59LHRoaXMuZ2V0U291cmNlRGF0YUF0Q29sPWZ1bmN0aW9uKHZ0KXtyZXR1cm4gVy5nZXRBdENvbHVtbih2dCl9LHRoaXMuc2V0U291cmNlRGF0YUF0Q2VsbD1mdW5jdGlvbih2dCxPdCxjbixFbil7Y29uc3QgUG49aWkodnQsT3QsY24pLEpuPXRoaXMuaGFzSG9vaygiYWZ0ZXJT'@; put 'ZXRTb3VyY2VEYXRhQXRDZWxsIiksUHI9W107Sm4mJkRuKFBuLCRyPT57bGV0W1lyLE5yLFJpXT0kcjtQci5wdXNoKFtZcixOcixXLmdldEF0Q2VsbChZcixOciksUmldKX0pLERuKFBuLCRyPT57bGV0W1lyLE5yLFJpXT0kcjtXLnNldEF0Q2VsbChZcixOcixSaSl9KSxKbiYmdGhpcy5ydW5I'@; put 'b29rcygiYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsIixQcixFbiksdGhpcy5yZW5kZXIoKTtjb25zdCBPcj1mLmdldEFjdGl2ZUVkaXRvcigpO09yJiZLaShPci5yZWZyZXNoVmFsdWUpJiZPci5yZWZyZXNoVmFsdWUoKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRSb3c9ZnVuY3Rpb24odnQpe3Jl'@; put 'dHVybiBXLmdldEF0Um93KHZ0KX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRDZWxsPWZ1bmN0aW9uKHZ0LE90KXtyZXR1cm4gVy5nZXRBdENlbGwodnQsT3QpfSx0aGlzLmdldERhdGFBdFJvdz1mdW5jdGlvbih2dCl7cmV0dXJuIFQuZ2V0UmFuZ2UoZi5fY3JlYXRlQ2VsbENvb3Jkcyh2dCwwKSxm'@; put 'Ll9jcmVhdGVDZWxsQ29vcmRzKHZ0LHRoaXMuY291bnRDb2xzKCktMSksVC5ERVNUSU5BVElPTl9SRU5ERVJFUilbMF18fFtdfSx0aGlzLmdldERhdGFUeXBlPWZ1bmN0aW9uKHZ0LE90LGNuLEVuKXtjb25zdCBQbj12b2lkIDA9PT12dD9bMCwwLHRoaXMuY291bnRSb3dzKCksdGhpcy5jb3Vu'@; put 'dENvbHMoKV06W3Z0LE90LGNuLEVuXSxbSm4sUHJdPVBuO2xldFssLE9yLCRyXT1QbixZcj1udWxsLE5yPW51bGw7dm9pZCAwPT09T3ImJihPcj1Kbiksdm9pZCAwPT09JHImJigkcj1Qcik7bGV0IFJpPSJtaXhlZCI7cmV0dXJuIHZvKE1hdGgubWF4KE1hdGgubWluKEpuLE9yKSwwKSxNYXRo'@; put 'Lm1heChKbixPciksWG89PntsZXQgR289ITA7cmV0dXJuIHZvKE1hdGgubWF4KE1hdGgubWluKFByLCRyKSwwKSxNYXRoLm1heChQciwkciksSnM9PihOcj10aGlzLmdldENlbGxNZXRhKFhvLEpzKS50eXBlLFlyP0dvPVlyPT09TnI6WXI9TnIsR28pKSxSaT1Hbz9OcjoibWl4ZWQiLEdvfSks'@; put 'Uml9LHRoaXMucmVtb3ZlQ2VsbE1ldGE9ZnVuY3Rpb24odnQsT3QsY24pe2NvbnN0W0VuLFBuXT1bdGhpcy50b1BoeXNpY2FsUm93KHZ0KSx0aGlzLnRvUGh5c2ljYWxDb2x1bW4oT3QpXTtsZXQgSm49aXQuZ2V0Q2VsbE1ldGFLZXlWYWx1ZShFbixQbixjbik7ITEhPT1mLnJ1bkhvb2tzKCJi'@; put 'ZWZvcmVSZW1vdmVDZWxsTWV0YSIsdnQsT3QsY24sSm4pJiYoaXQucmVtb3ZlQ2VsbE1ldGEoRW4sUG4sY24pLGYucnVuSG9va3MoImFmdGVyUmVtb3ZlQ2VsbE1ldGEiLHZ0LE90LGNuLEpuKSksSm49bnVsbH0sdGhpcy5zcGxpY2VDZWxsc01ldGE9ZnVuY3Rpb24odnQpe2xldCBPdD1hcmd1'@; put 'bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtmb3IodmFyIGNuPWFyZ3VtZW50cy5sZW5ndGgsRW49bmV3IEFycmF5KGNuPjI/Y24tMjowKSxQbj0yO1BuPGNuO1BuKyspRW5bUG4tMl09YXJndW1lbnRzW1BuXTtpZihFbi5sZW5ndGg+MCYmIUFy'@; put 'cmF5LmlzQXJyYXkoRW5bMF0pKXRocm93IG5ldyBFcnJvcigiVGhlIDNyZCBhcmd1bWVudCAoY2VsbE1ldGFSb3dzKSBoYXMgdG8gYmUgcGFzc2VkIGFzIGFuIGFycmF5IG9mIGNlbGwgbWV0YSBvYmplY3RzIGFycmF5LiIpO090PjAmJml0LnJlbW92ZVJvdyh0aGlzLnRvUGh5c2ljYWxSb3co'@; put 'dnQpLE90KSxFbi5sZW5ndGg+MCYmRG4oRW4ucmV2ZXJzZSgpLEpuPT57aXQuY3JlYXRlUm93KHRoaXMudG9QaHlzaWNhbFJvdyh2dCkpLERuKEpuLChQcixPcik9PnRoaXMuc2V0Q2VsbE1ldGFPYmplY3QodnQsT3IsUHIpKX0pLGYucmVuZGVyKCl9LHRoaXMuc2V0Q2VsbE1ldGFPYmplY3Q9'@; put 'ZnVuY3Rpb24odnQsT3QsY24peyJvYmplY3QiPT10eXBlb2YgY24mJmRzKGNuLChFbixQbik9Pnt0aGlzLnNldENlbGxNZXRhKHZ0LE90LFBuLEVuKX0pfSx0aGlzLnNldENlbGxNZXRhPWZ1bmN0aW9uKHZ0LE90LGNuLEVuKXtpZighMT09PWYucnVuSG9va3MoImJlZm9yZVNldENlbGxNZXRh'@; put 'Iix2dCxPdCxjbixFbikpcmV0dXJuO2xldCBKbj12dCxQcj1PdDt2dDx0aGlzLmNvdW50Um93cygpJiYoSm49dGhpcy50b1BoeXNpY2FsUm93KHZ0KSksT3Q8dGhpcy5jb3VudENvbHMoKSYmKFByPXRoaXMudG9QaHlzaWNhbENvbHVtbihPdCkpLGl0LnNldENlbGxNZXRhKEpuLFByLGNuLEVu'@; put 'KSxmLnJ1bkhvb2tzKCJhZnRlclNldENlbGxNZXRhIix2dCxPdCxjbixFbil9LHRoaXMuZ2V0Q2VsbHNNZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIGl0LmdldENlbGxzTWV0YSgpfSx0aGlzLmdldENlbGxNZXRhPWZ1bmN0aW9uKHZ0LE90KXtsZXQgY249dGhpcy50b1BoeXNpY2FsUm93KHZ0KSxF'@; put 'bj10aGlzLnRvUGh5c2ljYWxDb2x1bW4oT3QpO3JldHVybiBudWxsPT09Y24mJihjbj12dCksbnVsbD09PUVuJiYoRW49T3QpLGl0LmdldENlbGxNZXRhKGNuLEVuLHt2aXN1YWxSb3c6dnQsdmlzdWFsQ29sdW1uOk90fSl9LHRoaXMuZ2V0Q2VsbE1ldGFBdFJvdz1mdW5jdGlvbih2dCl7cmV0'@; put 'dXJuIGl0LmdldENlbGxzTWV0YUF0Um93KHZ0KX0sdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hKCJvYmplY3QiPT09Zi5kYXRhVHlwZXx8ZXQuY29sdW1ucyl9LHRoaXMuZ2V0Q2VsbFJlbmRlcmVyPWZ1bmN0aW9uKHZ0LE90KXtjb25zdCBjbj0i'@; put 'bnVtYmVyIj09dHlwZW9mIHZ0P2YuZ2V0Q2VsbE1ldGEodnQsT3QpLnJlbmRlcmVyOnZ0LnJlbmRlcmVyO3JldHVybiJzdHJpbmciPT10eXBlb2YgY24/YmsoY24pOkxhKGNuKT9iaygidGV4dCIpOmNufSx0aGlzLmdldENlbGxFZGl0b3I9ZnVuY3Rpb24odnQsT3Qpe2NvbnN0IGNuPSJudW1i'@; put 'ZXIiPT10eXBlb2YgdnQ/Zi5nZXRDZWxsTWV0YSh2dCxPdCkuZWRpdG9yOnZ0LmVkaXRvcjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGNuP3BrKGNuKTpMYShjbik/cGsoInRleHQiKTpjbn0sdGhpcy5nZXRDZWxsVmFsaWRhdG9yPWZ1bmN0aW9uKHZ0LE90KXtjb25zdCBjbj0ibnVtYmVyIj09'@; put 'dHlwZW9mIHZ0P2YuZ2V0Q2VsbE1ldGEodnQsT3QpLnZhbGlkYXRvcjp2dC52YWxpZGF0b3I7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjbj9GTihjbik6Y259LHRoaXMudmFsaWRhdGVDZWxscz1mdW5jdGlvbih2dCl7dGhpcy5fdmFsaWRhdGVDZWxscyh2dCl9LHRoaXMudmFsaWRhdGVSb3dz'@; put 'PWZ1bmN0aW9uKHZ0LE90KXtpZighQXJyYXkuaXNBcnJheSh2dCkpdGhyb3cgbmV3IEVycm9yKCJ2YWxpZGF0ZVJvd3MgcGFyYW1ldGVyIGByb3dzYCBtdXN0IGJlIGFuIGFycmF5Iik7dGhpcy5fdmFsaWRhdGVDZWxscyhPdCx2dCl9LHRoaXMudmFsaWRhdGVDb2x1bW5zPWZ1bmN0aW9uKHZ0'@; put 'LE90KXtpZighQXJyYXkuaXNBcnJheSh2dCkpdGhyb3cgbmV3IEVycm9yKCJ2YWxpZGF0ZUNvbHVtbnMgcGFyYW1ldGVyIGBjb2x1bW5zYCBtdXN0IGJlIGFuIGFycmF5Iik7dGhpcy5fdmFsaWRhdGVDZWxscyhPdCx2b2lkIDAsdnQpfSx0aGlzLl92YWxpZGF0ZUNlbGxzPWZ1bmN0aW9uKHZ0'@; put 'LE90LGNuKXtjb25zdCBFbj1uZXcgSXI7dnQmJihFbi5vblF1ZXVlRW1wdHk9dnQpO2xldCBQbj1mLmNvdW50Um93cygpLTE7Zm9yKDtQbj49MDspe2lmKHZvaWQgMCE9PU90JiYtMT09PU90LmluZGV4T2YoUG4pKXtQbi09MTtjb250aW51ZX1sZXQgSm49Zi5jb3VudENvbHMoKS0xO2Zvcig7'@; put 'Sm4+PTA7KXZvaWQgMD09PWNufHwtMSE9PWNuLmluZGV4T2YoSm4pPyhFbi5hZGRWYWxpZGF0b3JUb1F1ZXVlKCksZi52YWxpZGF0ZUNlbGwoZi5nZXREYXRhQXRDZWxsKFBuLEpuKSxmLmdldENlbGxNZXRhKFBuLEpuKSxQcj0+e2lmKCJib29sZWFuIiE9dHlwZW9mIFByKXRocm93IG5ldyBF'@; put 'cnJvcigiVmFsaWRhdGlvbiBlcnJvcjogcmVzdWx0IGlzIG5vdCBib29sZWFuIik7ITE9PT1QciYmKEVuLnZhbGlkPSExKSxFbi5yZW1vdmVWYWxpZGF0b3JGb3JtUXVldWUoKX0sInZhbGlkYXRlQ2VsbHMiKSxKbi09MSk6Sm4tPTE7UG4tPTF9RW4uY2hlY2tJZlF1ZXVlSXNFbXB0eSgpfSx0'@; put 'aGlzLmdldFJvd0hlYWRlcj1mdW5jdGlvbih2dCl7bGV0IE90PWV0LnJvd0hlYWRlcnMsY249dnQ7cmV0dXJuIHZvaWQgMCE9PWNuJiYoY249Zi5ydW5Ib29rcygibW9kaWZ5Um93SGVhZGVyIixjbikpLHZvaWQgMD09PWNuPyhPdD1bXSx2byhmLmNvdW50Um93cygpLTEsRW49PntPdC5wdXNo'@; put 'KGYuZ2V0Um93SGVhZGVyKEVuKSl9KSk6QXJyYXkuaXNBcnJheShPdCkmJnZvaWQgMCE9PU90W2NuXT9PdD1PdFtjbl06UmEoT3QpP090PU90KGNuKTpPdCYmInN0cmluZyIhPXR5cGVvZiBPdCYmIm51bWJlciIhPXR5cGVvZiBPdCYmKE90PWNuKzEpLE90fSx0aGlzLmhhc1Jvd0hlYWRlcnM9'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4hIWV0LnJvd0hlYWRlcnN9LHRoaXMuaGFzQ29sSGVhZGVycz1mdW5jdGlvbigpe2lmKG51bGwhPWV0LmNvbEhlYWRlcnMpcmV0dXJuISFldC5jb2xIZWFkZXJzO2ZvcihsZXQgdnQ9MCxPdD1mLmNvdW50Q29scygpO3Z0PE90O3Z0KyspaWYoZi5nZXRDb2xIZWFk'@; put 'ZXIodnQpKXJldHVybiEwO3JldHVybiExfSx0aGlzLmdldENvbEhlYWRlcj1mdW5jdGlvbih2dCl7bGV0IE90PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTotMTtjb25zdCBjbj1mLnJ1bkhvb2tzKCJtb2RpZnlDb2xIZWFkZXIiLHZ0KTtp'@; put 'Zih2b2lkIDA9PT1jbil7Y29uc3QgT3I9W10sJHI9Zi5jb3VudENvbHMoKTtmb3IobGV0IFlyPTA7WXI8JHI7WXIrKylPci5wdXNoKGYuZ2V0Q29sSGVhZGVyKFlyKSk7cmV0dXJuIE9yfWxldCBFbj1ldC5jb2xIZWFkZXJzO2NvbnN0IEpuPWYudG9QaHlzaWNhbENvbHVtbihjbiksUHI9ZnVu'@; put 'Y3Rpb24oT3Ipe2NvbnN0ICRyPVtdLFlyPWYuY291bnRDb2xzKCk7bGV0IE5yPTA7Zm9yKDtOcjxZcjtOcisrKVJhKGV0LmNvbHVtbnMpJiZldC5jb2x1bW5zKE5yKSYmJHIucHVzaChOcik7cmV0dXJuICRyW09yXX0oSm4pO3JldHVybiExPT09ZXQuY29sSGVhZGVycz9Fbj1udWxsOmV0LmNv'@; put 'bHVtbnMmJlJhKGV0LmNvbHVtbnMpJiZldC5jb2x1bW5zKFByKSYmZXQuY29sdW1ucyhQcikudGl0bGU/RW49ZXQuY29sdW1ucyhQcikudGl0bGU6ZXQuY29sdW1ucyYmZXQuY29sdW1uc1tKbl0mJmV0LmNvbHVtbnNbSm5dLnRpdGxlP0VuPWV0LmNvbHVtbnNbSm5dLnRpdGxlOkFycmF5Lmlz'@; put 'QXJyYXkoZXQuY29sSGVhZGVycykmJnZvaWQgMCE9PWV0LmNvbEhlYWRlcnNbSm5dP0VuPWV0LmNvbEhlYWRlcnNbSm5dOlJhKGV0LmNvbEhlYWRlcnMpP0VuPWV0LmNvbEhlYWRlcnMoSm4pOmV0LmNvbEhlYWRlcnMmJiJzdHJpbmciIT10eXBlb2YgZXQuY29sSGVhZGVycyYmIm51bWJlciIh'@; put 'PXR5cGVvZiBldC5jb2xIZWFkZXJzJiYoRW49TWsoY24pKSxFbj1mLnJ1bkhvb2tzKCJtb2RpZnlDb2x1bW5IZWFkZXJWYWx1ZSIsRW4sdnQsT3QpLEVufSx0aGlzLl9nZXRDb2xXaWR0aEZyb21TZXR0aW5ncz1mdW5jdGlvbih2dCl7bGV0IE90O2lmKHZ0Pj0wJiYoT3Q9Zi5nZXRDZWxsTWV0'@; put 'YSgwLHZ0KS53aWR0aCksKHZvaWQgMD09PU90fHxPdD09PWV0LndpZHRoKSYmKE90PWV0LmNvbFdpZHRocyksbnVsbCE9T3Qpe3N3aXRjaCh0eXBlb2YgT3Qpe2Nhc2Uib2JqZWN0IjpPdD1PdFt2dF07YnJlYWs7Y2FzZSJmdW5jdGlvbiI6T3Q9T3QodnQpfSJzdHJpbmciPT10eXBlb2YgT3Qm'@; put 'JihPdD1wYXJzZUludChPdCwxMCkpfXJldHVybiBPdH0sdGhpcy5nZXRDb2xXaWR0aD1mdW5jdGlvbih2dCl7bGV0IE90PWYuX2dldENvbFdpZHRoRnJvbVNldHRpbmdzKHZ0KTtyZXR1cm4gT3Q9Zi5ydW5Ib29rcygibW9kaWZ5Q29sV2lkdGgiLE90LHZ0KSx2b2lkIDA9PT1PdCYmKE90PWVW'@; put 'LkRFRkFVTFRfV0lEVEgpLE90fSx0aGlzLl9nZXRSb3dIZWlnaHRGcm9tU2V0dGluZ3M9ZnVuY3Rpb24odnQpe2xldCBPdD1ldC5yb3dIZWlnaHRzO2lmKG51bGwhPU90KXtzd2l0Y2godHlwZW9mIE90KXtjYXNlIm9iamVjdCI6T3Q9T3RbdnRdO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOk90PU90'@; put 'KHZ0KX0ic3RyaW5nIj09dHlwZW9mIE90JiYoT3Q9cGFyc2VJbnQoT3QsMTApKX1yZXR1cm4gT3R9LHRoaXMuZ2V0Um93SGVpZ2h0PWZ1bmN0aW9uKHZ0KXtsZXQgT3Q9Zi5fZ2V0Um93SGVpZ2h0RnJvbVNldHRpbmdzKHZ0KTtyZXR1cm4gT3Q9Zi5ydW5Ib29rcygibW9kaWZ5Um93SGVpZ2h0'@; put 'IixPdCx2dCksT3R9LHRoaXMuY291bnRTb3VyY2VSb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIFcuY291bnRSb3dzKCl9LHRoaXMuY291bnRTb3VyY2VDb2xzPWZ1bmN0aW9uKCl7cmV0dXJuIFcuY291bnRGaXJzdFJvd0tleXMoKX0sdGhpcy5jb3VudFJvd3M9ZnVuY3Rpb24oKXtyZXR1cm4gVC5n'@; put 'ZXRMZW5ndGgoKX0sdGhpcy5jb3VudENvbHM9ZnVuY3Rpb24oKXtjb25zdCB2dD1ldC5tYXhDb2xzLE90PXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKTtyZXR1cm4gTWF0aC5taW4odnQsT3QpfSx0aGlzLmNvdW50UmVuZGVyZWRSb3dzPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIGYudmlldy5fd3QuZHJhd24/Zi52aWV3Ll93dC53dFRhYmxlLmdldFJlbmRlcmVkUm93c0NvdW50KCk6LTF9LHRoaXMuY291bnRWaXNpYmxlUm93cz1mdW5jdGlvbigpe3JldHVybiBmLnZpZXcuX3d0LmRyYXduP2Yudmlldy5fd3Qud3RUYWJsZS5nZXRWaXNpYmxlUm93'@; put 'c0NvdW50KCk6LTF9LHRoaXMuY291bnRSZW5kZXJlZENvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gZi52aWV3Ll93dC5kcmF3bj9mLnZpZXcuX3d0Lnd0VGFibGUuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKTotMX0sdGhpcy5jb3VudFZpc2libGVDb2xzPWZ1bmN0aW9uKCl7cmV0dXJuIGYudmll'@; put 'dy5fd3QuZHJhd24/Zi52aWV3Ll93dC53dFRhYmxlLmdldFZpc2libGVDb2x1bW5zQ291bnQoKTotMX0sdGhpcy5jb3VudEVtcHR5Um93cz1mdW5jdGlvbigpe2xldCB2dD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLE90PTA7cmV0dXJu'@; put 'IHZrKGYuY291bnRSb3dzKCktMSxjbj0+e2lmKGYuaXNFbXB0eVJvdyhjbikpT3QrPTE7ZWxzZSBpZighMD09PXZ0KXJldHVybiExfSksT3R9LHRoaXMuY291bnRFbXB0eUNvbHM9ZnVuY3Rpb24oKXtsZXQgdnQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFy'@; put 'Z3VtZW50c1swXSxPdD0wO3JldHVybiB2ayhmLmNvdW50Q29scygpLTEsY249PntpZihmLmlzRW1wdHlDb2woY24pKU90Kz0xO2Vsc2UgaWYoITA9PT12dClyZXR1cm4hMX0pLE90fSx0aGlzLmlzRW1wdHlSb3c9ZnVuY3Rpb24odnQpe3JldHVybiBldC5pc0VtcHR5Um93LmNhbGwoZix2dCl9'@; put 'LHRoaXMuaXNFbXB0eUNvbD1mdW5jdGlvbih2dCl7cmV0dXJuIGV0LmlzRW1wdHlDb2wuY2FsbChmLHZ0KX0sdGhpcy5zZWxlY3RDZWxsPWZ1bmN0aW9uKHZ0LE90LGNuLEVuKXtsZXQgUG49IShhcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSl8fGFyZ3VtZW50c1s0'@; put 'XSxKbj0hKGFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdKXx8YXJndW1lbnRzWzVdO3JldHVybiFMYSh2dCkmJiFMYShPdCkmJnRoaXMuc2VsZWN0Q2VsbHMoW1t2dCxPdCxjbixFbl1dLFBuLEpuKX0sdGhpcy5zZWxlY3RDZWxscz1mdW5jdGlvbigpe2xldCBjbj0h'@; put 'KGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdOyExPT09KCEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0pJiYoaD0hMCk7Y29uc3QgRW49bm4uc2VsZWN0Q2VsbHMoYXJndW1lbnRz'@; put 'Lmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltbXV0pO3JldHVybiBFbiYmY24mJmYubGlzdGVuKCksaD0hMSxFbn0sdGhpcy5zZWxlY3RDb2x1bW5zPWZ1bmN0aW9uKHZ0KXtyZXR1cm4gbm4uc2VsZWN0Q29sdW1ucyh2dCxhcmd1bWVudHMubGVuZ3RoPjEm'@; put 'JnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dnQpfSx0aGlzLnNlbGVjdFJvd3M9ZnVuY3Rpb24odnQpe3JldHVybiBubi5zZWxlY3RSb3dzKHZ0LGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp2dCl9LHRoaXMuZGVzZWxl'@; put 'Y3RDZWxsPWZ1bmN0aW9uKCl7bm4uZGVzZWxlY3QoKX0sdGhpcy5zZWxlY3RBbGw9ZnVuY3Rpb24oKXtsZXQgdnQ9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtjb25zdCBPdD12dCYmdGhpcy5oYXNSb3dIZWFkZXJzKCksY249dnQm'@; put 'JnRoaXMuaGFzQ29sSGVhZGVycygpO2g9ITAsbm4uc2VsZWN0QWxsKE90LGNuKSxoPSExfTtjb25zdCBPbj0odnQsT3QpPT52dC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoT3QsMSwhMCk7dGhpcy5zY3JvbGxWaWV3cG9ydFRvPWZ1bmN0aW9uKHZ0LE90KXtsZXQgY249YXJndW1lbnRzLmxl'@; put 'bmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxFbj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2NvbnN0IEpuPSFjbixQcj0hRW47bGV0IE9yPXZ0LCRyPU90O2lmKCEoYXJndW1lbnRzLmxlbmd0aD40JiZ2'@; put 'b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0pe2NvbnN0IFJpPU51bWJlci5pc0ludGVnZXIodnQpLFhvPU51bWJlci5pc0ludGVnZXIoT3QpLEdvPVJpP09uKHRoaXMucm93SW5kZXhNYXBwZXIsdnQpOnZvaWQgMCxKcz1Ybz9Pbih0aGlzLmNvbHVtbkluZGV4TWFwcGVyLE90'@; put 'KTp2b2lkIDA7aWYobnVsbD09PUdvfHxudWxsPT09SnMpcmV0dXJuITE7T3I9Umk/Zi5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEdvKTp2b2lkIDAsJHI9WG8/Zi5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEpzKTp2'@; put 'b2lkIDB9Y29uc3QgWXI9TnVtYmVyLmlzSW50ZWdlcihPciksTnI9TnVtYmVyLmlzSW50ZWdlcigkcik7cmV0dXJuIFlyJiZOcj9mLnZpZXcuc2Nyb2xsVmlld3BvcnQoZi5fY3JlYXRlQ2VsbENvb3JkcyhPciwkciksSm4sRW4sY24sUHIpOllyJiYhMT09PU5yP2Yudmlldy5zY3JvbGxWaWV3'@; put 'cG9ydFZlcnRpY2FsbHkoT3IsSm4sY24pOiEoIU5yfHwhMSE9PVlyKSYmZi52aWV3LnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KCRyLEVuLFByKX0sdGhpcy5kZXN0cm95PWZ1bmN0aW9uKCl7aWYoZi5fY2xlYXJUaW1lb3V0cygpLGYuX2NsZWFySW1tZWRpYXRlcygpLGYudmlldyYmZi52'@; put 'aWV3LmRlc3Ryb3koKSxXJiZXLmRlc3Ryb3koKSxXPW51bGwsdGhpcy5nZXRTaG9ydGN1dE1hbmFnZXIoKS5kZXN0cm95KCksaXQuY2xlYXJDYWNoZSgpLHJWKGYpKXtjb25zdCB2dD10aGlzLnJvb3REb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIik7'@; put 'dnQmJnZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodnQpfWcyKGYucm9vdEVsZW1lbnQpLF8uZGVzdHJveSgpLHBlJiZwZS5kZXN0cm95KCksZi5iYXRjaEV4ZWN1dGlvbigoKT0+e2Yucm93SW5kZXhNYXBwZXIudW5yZWdpc3RlckFsbCgpLGYuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rl'@; put 'ckFsbCgpLEV0LmdldEl0ZW1zKCkuZm9yRWFjaCh2dD0+e2xldFssT3RdPXZ0O090LmRlc3Ryb3koKX0pLEV0LmNsZWFyKCksZi5ydW5Ib29rcygiYWZ0ZXJEZXN0cm95Iil9LCEwKSxzby5nZXRTaW5nbGV0b24oKS5kZXN0cm95KGYpLGRzKGYsKHZ0LE90LGNuKT0+e1JhKHZ0KT9jbltPdF09'@; put 'ZnVuY3Rpb24gRnIodnQpe3JldHVybigpPT57dGhyb3cgbmV3IEVycm9yKGBUaGUgIiR7dnR9IiBtZXRob2QgY2Fubm90IGJlIGNhbGxlZCBiZWNhdXNlIHRoaXMgSGFuZHNvbnRhYmxlIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZGApfX0oT3QpOiJndWlkIiE9PU90JiYoY25bT3RdPW51'@; put 'bGwpfSksZi5pc0Rlc3Ryb3llZD0hMCxUJiZULmRlc3Ryb3koKSxUPW51bGwsaWU9bnVsbCxubj1udWxsLHBlPW51bGwsZj1udWxsfSx0aGlzLmdldEFjdGl2ZUVkaXRvcj1mdW5jdGlvbigpe3JldHVybiBwZS5nZXRBY3RpdmVFZGl0b3IoKX0sdGhpcy5nZXRQbHVnaW49ZnVuY3Rpb24odnQp'@; put 'e2NvbnN0IE90PWJ1KHZ0KTtyZXR1cm4iVW5kb1JlZG8iPT09T3Q/dGhpcy51bmRvUmVkbzpFdC5nZXRJdGVtKE90KX0sdGhpcy5nZXRQbHVnaW5OYW1lPWZ1bmN0aW9uKHZ0KXtyZXR1cm4gdnQ9PT10aGlzLnVuZG9SZWRvP3RoaXMudW5kb1JlZG8uY29uc3RydWN0b3IuUExVR0lOX0tFWTpF'@; put 'dC5nZXRJZCh2dCl9LHRoaXMuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gZn0sdGhpcy5hZGRIb29rPWZ1bmN0aW9uKHZ0LE90KXtzby5nZXRTaW5nbGV0b24oKS5hZGQodnQsT3QsZil9LHRoaXMuaGFzSG9vaz1mdW5jdGlvbih2dCl7cmV0dXJuIHNvLmdldFNpbmdsZXRvbigpLmhh'@; put 'cyh2dCxmKXx8c28uZ2V0U2luZ2xldG9uKCkuaGFzKHZ0KX0sdGhpcy5hZGRIb29rT25jZT1mdW5jdGlvbih2dCxPdCl7c28uZ2V0U2luZ2xldG9uKCkub25jZSh2dCxPdCxmKX0sdGhpcy5yZW1vdmVIb29rPWZ1bmN0aW9uKHZ0LE90KXtzby5nZXRTaW5nbGV0b24oKS5yZW1vdmUodnQsT3Qs'@; put 'Zil9LHRoaXMucnVuSG9va3M9ZnVuY3Rpb24odnQsT3QsY24sRW4sUG4sSm4sUHIpe3JldHVybiBzby5nZXRTaW5nbGV0b24oKS5ydW4oZix2dCxPdCxjbixFbixQbixKbixQcil9LHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZT1mdW5jdGlvbih2dCxPdCl7cmV0dXJuIEluZShldC5sYW5ndWFn'@; put 'ZSx2dCxPdCl9LHRoaXMudG9IVE1MPSgpPT5UTih0aGlzKSx0aGlzLnRvVGFibGVFbGVtZW50PSgpPT57Y29uc3QgdnQ9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHZ0Lmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJiZWdpbiIsVE4odGhpcykpLHZ0LmZp'@; put 'cnN0RWxlbWVudENoaWxkfSx0aGlzLnRpbWVvdXRzPVtdLHRoaXMuX3JlZ2lzdGVyVGltZW91dD1mdW5jdGlvbih2dCl7bGV0IGNuPXZ0OyJmdW5jdGlvbiI9PXR5cGVvZiBjbiYmKGNuPXNldFRpbWVvdXQoY24sYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJn'@; put 'dW1lbnRzWzFdOjApKSx0aGlzLnRpbWVvdXRzLnB1c2goY24pfSx0aGlzLl9jbGVhclRpbWVvdXRzPWZ1bmN0aW9uKCl7RG4odGhpcy50aW1lb3V0cyx2dD0+e2NsZWFyVGltZW91dCh2dCl9KX0sdGhpcy5pbW1lZGlhdGVzPVtdLHRoaXMuX3JlZ2lzdGVySW1tZWRpYXRlPWZ1bmN0aW9uKHZ0'@; put 'KXt0aGlzLmltbWVkaWF0ZXMucHVzaChzZXRJbW1lZGlhdGUodnQpKX0sdGhpcy5fY2xlYXJJbW1lZGlhdGVzPWZ1bmN0aW9uKCl7RG4odGhpcy5pbW1lZGlhdGVzLHZ0PT57Y2xlYXJJbW1lZGlhdGUodnQpfSl9LHRoaXMuX3JlZnJlc2hCb3JkZXJzPWZ1bmN0aW9uKCl7bGV0IE90PSEoYXJn'@; put 'dW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07cGUuZGVzdHJveUVkaXRvcihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdKSxmLnZpZXcucmVuZGVyKCksT3QmJm5uLmlzU2VsZWN0ZWQoKSYm'@; put 'cGUucHJlcGFyZUVkaXRvcigpfSx0aGlzLmlzUnRsPWZ1bmN0aW9uKCl7cmV0dXJuInJ0bCI9PT1mLnJvb3RXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmLnJvb3RFbGVtZW50KS5kaXJlY3Rpb259LHRoaXMuaXNMdHI9ZnVuY3Rpb24oKXtyZXR1cm4hZi5pc1J0bCgpfSx0aGlzLmdldERpcmVj'@; put 'dGlvbkZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiBmLmlzTHRyKCk/MTotMX07Y29uc3QgUW49JERlKHtoYW5kbGVFdmVudDp2dD0+Zi5pc0xpc3RlbmluZygpJiZ2b2lkIDAhPT12dD8ua2V5LGJlZm9yZUtleURvd246dnQ9PnRoaXMucnVuSG9va3MoImJlZm9yZUtleURvd24iLHZ0KSxhZnRl'@; put 'cktleURvd246dnQ9Pnt0aGlzLmlzRGVzdHJveWVkfHxmLnJ1bkhvb2tzKCJhZnRlckRvY3VtZW50S2V5RG93biIsdnQpfSxvd25lcldpbmRvdzp0aGlzLnJvb3RXaW5kb3d9KTt0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdnQ9PnshMT09PXZ0LmN0cmxLZXkmJiExPT09'@; put 'dnQubWV0YUtleSYmUW4ucmVsZWFzZVByZXNzZWRLZXlzKCl9KSx0aGlzLmdldFNob3J0Y3V0TWFuYWdlcj1mdW5jdGlvbigpe3JldHVybiBRbn07Y29uc3QgTXI9UW4uYWRkQ29udGV4dCgiZ3JpZCIpLF9yPXtydW5Pbmx5SWY6KCk9PktpKGYuZ2V0U2VsZWN0ZWQoKSkmJmYuY291bnRSZW5k'@; put 'ZXJlZFJvd3MoKT4wJiZmLmNvdW50UmVuZGVyZWRDb2xzKCk+MCxncm91cDpxRGV9O1FuLnNldEFjdGl2ZUNvbnRleHROYW1lKCJncmlkIiksTXIuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJDb250cm9sL01ldGEiLCJBIl1dLGNhbGxiYWNrOigpPT57Zi5zZWxlY3RBbGwoKX19LHtrZXlzOltb'@; put 'IkNvbnRyb2wvTWV0YSIsIkVudGVyIl1dLGNhbGxiYWNrOigpPT57Y29uc3QgdnQ9Zi5nZXRTZWxlY3RlZFJhbmdlKCkse3JvdzpPdCxjb2w6Y259PXZ0W3Z0Lmxlbmd0aC0xXS5oaWdobGlnaHQsRW49Zi5nZXREYXRhQXRDZWxsKE90LGNuKSxQbj1uZXcgTWFwO2ZvcihsZXQgSm49MDtKbjx2'@; put 'dC5sZW5ndGg7Sm4rKyl2dFtKbl0uZm9yQWxsKChQcixPcik9PntpZihQcj49MCYmT3I+PTAmJihQciE9PU90fHxPciE9PWNuKSl7Y29uc3R7cmVhZE9ubHk6JHJ9PWYuZ2V0Q2VsbE1ldGEoUHIsT3IpOyRyfHxQbi5zZXQoYCR7UHJ9eCR7T3J9YCxbUHIsT3IsRW5dKX19KTtmLnNldERhdGFB'@; put 'dENlbGwoQXJyYXkuZnJvbShQbi52YWx1ZXMoKSkpfSxydW5Pbmx5SWY6KCk9PmYuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5nZXRDZWxsc0NvdW50KCk+MX0se2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazooKT0+e25uLnRyYW5zZm9ybVN0YXJ0KC0xLDApfX0se2tleXM6W1siQXJyb3dV'@; put 'cCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+e25uLnNldFJhbmdlU3RhcnQoZi5fY3JlYXRlQ2VsbENvb3JkcyhmLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgwLDEpLGYuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGln'@; put 'aHQuY29sKSl9fSx7a2V5czpbWyJBcnJvd1VwIiwiU2hpZnQiXV0sY2FsbGJhY2s6KCk9Pntubi50cmFuc2Zvcm1FbmQoLTEsMCl9fSx7a2V5czpbWyJBcnJvd1VwIiwiU2hpZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6KCk9Pntjb25zdHtmcm9tOnZ0LHRv'@; put 'Ok90fT1mLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksY249Zi5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoMCwxKTtubi5zZXRSYW5nZVN0YXJ0KHZ0LmNsb25lKCkpLG5uLnNldFJhbmdlRW5kKGYuX2NyZWF0ZUNlbGxDb29yZHMoY24sT3QuY29sKSl9LHJ1bk9ubHlJ'@; put 'ZjooKT0+IShmLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8Zi5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkpfSx7a2V5czpbWyJBcnJvd0Rvd24iXV0sY2FsbGJhY2s6KCk9Pntubi50cmFuc2Zvcm1TdGFydCgxLDApfX0se2tleXM6W1siQXJyb3dEb3duIiwi'@; put 'Q29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT57bm4uc2V0UmFuZ2VTdGFydChmLl9jcmVhdGVDZWxsQ29vcmRzKGYucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGYuY291bnRSb3dzKCktMSwtMSksZi5nZXRTZWxlY3RlZFJhbmdlTGFz'@; put 'dCgpLmhpZ2hsaWdodC5jb2wpKX19LHtrZXlzOltbIkFycm93RG93biIsIlNoaWZ0Il1dLGNhbGxiYWNrOigpPT57bm4udHJhbnNmb3JtRW5kKDEsMCl9fSx7a2V5czpbWyJBcnJvd0Rvd24iLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+e2Nv'@; put 'bnN0e2Zyb206dnQsdG86T3R9PWYuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxjbj1mLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmLmNvdW50Um93cygpLTEsLTEpO25uLnNldFJhbmdlU3RhcnQodnQuY2xvbmUoKSksbm4uc2V0UmFuZ2VFbmQoZi5fY3JlYXRlQ2Vs'@; put 'bENvb3JkcyhjbixPdC5jb2wpKX0scnVuT25seUlmOigpPT4hKGYuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfHxmLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSl9LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazooKT0+e25uLnRyYW5zZm9ybVN0YXJ0'@; put 'KDAsLTEqZi5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd0xlZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6KCk9Pntjb25zdCB2dD1mLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuaGlnaGxpZ2h0LnJvdyxPdD1mLmNvbHVtbkluZGV4TWFw'@; put 'cGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCguLi5mLmlzUnRsKCk/W2YuY291bnRDb2xzKCktMSwtMV06WzAsMV0pO25uLnNldFJhbmdlU3RhcnQoZi5fY3JlYXRlQ2VsbENvb3Jkcyh2dCxPdCkpfX0se2tleXM6W1siQXJyb3dMZWZ0IiwiU2hpZnQiXV0sY2FsbGJhY2s6KCk9Pntubi50'@; put 'cmFuc2Zvcm1FbmQoMCwtMSpmLmdldERpcmVjdGlvbkZhY3RvcigpKX19LHtrZXlzOltbIkFycm93TGVmdCIsIlNoaWZ0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT57Y29uc3R7ZnJvbTp2dCx0bzpPdH09Zi5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGNu'@; put 'PWYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KC4uLmYuaXNSdGwoKT9bZi5jb3VudENvbHMoKS0xLC0xXTpbMCwxXSk7bm4uc2V0UmFuZ2VTdGFydCh2dC5jbG9uZSgpKSxubi5zZXRSYW5nZUVuZChmLl9jcmVhdGVDZWxsQ29vcmRzKE90LnJvdyxjbikpfSxy'@; put 'dW5Pbmx5SWY6KCk9PiEoZi5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fGYuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpKX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazooKT0+e25uLnRyYW5zZm9ybVN0YXJ0KDAsZi5nZXREaXJlY3Rpb25GYWN0b3Io'@; put 'KSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT57Y29uc3QgdnQ9Zi5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csT3Q9Zi5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5k'@; put 'ZXgoLi4uZi5pc1J0bCgpP1swLDFdOltmLmNvdW50Q29scygpLTEsLTFdKTtubi5zZXRSYW5nZVN0YXJ0KGYuX2NyZWF0ZUNlbGxDb29yZHModnQsT3QpKX19LHtrZXlzOltbIkFycm93UmlnaHQiLCJTaGlmdCJdXSxjYWxsYmFjazooKT0+e25uLnRyYW5zZm9ybUVuZCgwLGYuZ2V0RGlyZWN0'@; put 'aW9uRmFjdG9yKCkpfX0se2tleXM6W1siQXJyb3dSaWdodCIsIlNoaWZ0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT57Y29uc3R7ZnJvbTp2dCx0bzpPdH09Zi5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGNuPWYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVh'@; put 'cmVzdE5vdEhpZGRlbkluZGV4KC4uLmYuaXNSdGwoKT9bMCwxXTpbZi5jb3VudENvbHMoKS0xLC0xXSk7bm4uc2V0UmFuZ2VTdGFydCh2dC5jbG9uZSgpKSxubi5zZXRSYW5nZUVuZChmLl9jcmVhdGVDZWxsQ29vcmRzKE90LnJvdyxjbikpfSxydW5Pbmx5SWY6KCk9PiEoZi5zZWxlY3Rpb24u'@; put 'aXNTZWxlY3RlZEJ5Q29ybmVyKCl8fGYuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpKX0se2tleXM6W1siSG9tZSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+e2NvbnN0IHZ0PXBhcnNlSW50KGYuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCwxMCksT3Q9'@; put 'Zi5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csY249Zi5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgodnQsMSk7bm4uc2V0UmFuZ2VTdGFydChmLl9jcmVhdGVDZWxsQ29vcmRzKE90LGNuKSl9LHJ1bk9ubHlJZjooKT0+Zi52aWV3LmlzTWFp'@; put 'blRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfSx7a2V5czpbWyJIb21lIiwiU2hpZnQiXV0sY2FsbGJhY2s6KCk9Pntubi5zZXRSYW5nZUVuZChmLl9jcmVhdGVDZWxsQ29vcmRzKG5uLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmZyb20ucm93LGYuY29sdW1uSW5kZXhNYXBwZXIu'@; put 'Z2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KDAsMSkpKX19LHtrZXlzOltbIkhvbWUiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6KCk9Pntjb25zdCB2dD1wYXJzZUludChmLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzVG9wLDEwKSxPdD1wYXJzZUludChmLmdldFNl'@; put 'dHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQsMTApLGNuPWYucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHZ0LDEpLEVuPWYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KE90LDEpO25uLnNldFJhbmdlU3RhcnQoZi5fY3JlYXRlQ2Vs'@; put 'bENvb3JkcyhjbixFbikpfSxydW5Pbmx5SWY6KCk9PmYudmlldy5pc01haW5UYWJsZU5vdEZ1bGx5Q292ZXJlZEJ5T3ZlcmxheXMoKX0se2tleXM6W1siRW5kIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT57bm4uc2V0UmFuZ2VTdGFydChmLl9jcmVhdGVDZWxsQ29vcmRzKGYuZ2V0'@; put 'U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93LGYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGYuY291bnRDb2xzKCktMSwtMSkpKX0scnVuT25seUlmOigpPT5mLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9LHtr'@; put 'ZXlzOltbIkVuZCIsIlNoaWZ0Il1dLGNhbGxiYWNrOigpPT57bm4uc2V0UmFuZ2VFbmQoZi5fY3JlYXRlQ2VsbENvb3Jkcyhubi5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKS5mcm9tLnJvdyxmLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmLmNvdW50Q29scygp'@; put 'LTEsLTEpKSl9fSx7a2V5czpbWyJFbmQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6KCk9Pntjb25zdCB2dD1wYXJzZUludChmLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tLDEwKSxPdD1mLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5J'@; put 'bmRleChmLmNvdW50Um93cygpLXZ0LTEsLTEpLGNuPWYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGYuY291bnRDb2xzKCktMSwtMSk7bm4uc2V0UmFuZ2VTdGFydChmLl9jcmVhdGVDZWxsQ29vcmRzKE90LGNuKSl9LHJ1bk9ubHlJZjooKT0+Zi52aWV3Lmlz'@; put 'TWFpblRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfSx7a2V5czpbWyJQYWdlVXAiXV0sY2FsbGJhY2s6KCk9Pntubi50cmFuc2Zvcm1TdGFydCgtZi5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlVXAiLCJTaGlmdCJdXSxjYWxsYmFjazooKT0+e2NvbnN0e3Rv'@; put 'OnZ0fT1mLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksT3Q9TWF0aC5tYXgodnQucm93LWYuY291bnRWaXNpYmxlUm93cygpLDApLGNuPWYucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KE90LDEpO2lmKG51bGwhPT1jbil7Y29uc3QgRW49Zi5fY3JlYXRlQ2VsbENvb3Jk'@; put 'cyhjbix2dC5jb2wpLFBuPXZ0LnJvdy1mLnZpZXcuZ2V0Rmlyc3RGdWxseVZpc2libGVSb3coKSxKbj1NYXRoLm1heChFbi5yb3ctUG4sMCk7bm4uc2V0UmFuZ2VFbmQoRW4pLGYuc2Nyb2xsVmlld3BvcnRUbyhKbil9fX0se2tleXM6W1siUGFnZURvd24iXV0sY2FsbGJhY2s6KCk9Pntubi50'@; put 'cmFuc2Zvcm1TdGFydChmLmNvdW50VmlzaWJsZVJvd3MoKSwwKX19LHtrZXlzOltbIlBhZ2VEb3duIiwiU2hpZnQiXV0sY2FsbGJhY2s6KCk9Pntjb25zdHt0bzp2dH09Zi5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLE90PU1hdGgubWluKHZ0LnJvdytmLmNvdW50VmlzaWJsZVJvd3MoKSxmLmNv'@; put 'dW50Um93cygpLTEpLGNuPWYucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KE90LC0xKTtpZihudWxsIT09Y24pe2NvbnN0IEVuPWYuX2NyZWF0ZUNlbGxDb29yZHMoY24sdnQuY29sKSxQbj12dC5yb3ctZi52aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCksSm49'@; put 'TWF0aC5taW4oRW4ucm93LVBuLGYuY291bnRSb3dzKCktMSk7bm4uc2V0UmFuZ2VFbmQoRW4pLGYuc2Nyb2xsVmlld3BvcnRUbyhKbil9fX0se2tleXM6W1siVGFiIl1dLGNhbGxiYWNrOnZ0PT57Y29uc3QgT3Q9ImZ1bmN0aW9uIj09dHlwZW9mIGV0LnRhYk1vdmVzP2V0LnRhYk1vdmVzKHZ0'@; put 'KTpldC50YWJNb3Zlcztubi50cmFuc2Zvcm1TdGFydChPdC5yb3csT3QuY29sLCEwKX19LHtrZXlzOltbIlNoaWZ0IiwiVGFiIl1dLGNhbGxiYWNrOnZ0PT57Y29uc3QgT3Q9ImZ1bmN0aW9uIj09dHlwZW9mIGV0LnRhYk1vdmVzP2V0LnRhYk1vdmVzKHZ0KTpldC50YWJNb3Zlcztubi50cmFu'@; put 'c2Zvcm1TdGFydCgtT3Qucm93LC1PdC5jb2wpfX1dLF9yKSxQTigpLmZvckVhY2godnQ9Pntjb25zdCBPdD11eSh2dCk7RXQuYWRkSXRlbSh2dCxuZXcgT3QodGhpcykpfSksc28uZ2V0U2luZ2xldG9uKCkucnVuKGYsImNvbnN0cnVjdCIpfWNvbnN0IFpuZT17X2hvb2tzU3RvcmFnZTpPYmpl'@; put 'Y3QuY3JlYXRlKG51bGwpLGFkZEhvb2soYyxsKXtyZXR1cm4gdGhpcy5faG9va3NTdG9yYWdlW2NdfHwodGhpcy5faG9va3NTdG9yYWdlW2NdPVtdKSx0aGlzLmhvdC5hZGRIb29rKGMsbCksdGhpcy5faG9va3NTdG9yYWdlW2NdLnB1c2gobCksdGhpc30scmVtb3ZlSG9va3NCeUtleShjKXtE'@; put 'bih0aGlzLl9ob29rc1N0b3JhZ2VbY118fFtdLGw9Pnt0aGlzLmhvdC5yZW1vdmVIb29rKGMsbCl9KX0sY2xlYXJIb29rcygpe2RzKHRoaXMuX2hvb2tzU3RvcmFnZSwoYyxsKT0+dGhpcy5yZW1vdmVIb29rc0J5S2V5KGwpKSx0aGlzLl9ob29rc1N0b3JhZ2U9e319fTtmaChabmUsIk1JWElO'@; put 'X05BTUUiLCJob29rc1JlZlJlZ2lzdGVyZXIiLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExfSk7Y29uc3QgWERlPVpuZSxXYz1PYmplY3QuZnJlZXplKHtWSVJHSU46IlNUQVRFX1ZJUkdJTiIsRURJVElORzoiU1RBVEVfRURJVElORyIsV0FJVElORzoiU1RBVEVfV0FJVElORyIsRklOSVNI'@; put 'RUQ6IlNUQVRFX0ZJTklTSEVEIn0pLEdCPSJiYXNlRWRpdG9yIjtjbGFzcyB2N3tzdGF0aWMgZ2V0IEVESVRPUl9UWVBFKCl7cmV0dXJuImJhc2UifWNvbnN0cnVjdG9yKGwpe3RoaXMuaG90PWwsdGhpcy5pbnN0YW5jZT1sLHRoaXMuc3RhdGU9V2MuVklSR0lOLHRoaXMuX29wZW5lZD0hMSx0'@; put 'aGlzLl9mdWxsRWRpdE1vZGU9ITEsdGhpcy5fY2xvc2VDYWxsYmFjaz1udWxsLHRoaXMuVEQ9bnVsbCx0aGlzLnJvdz1udWxsLHRoaXMuY29sPW51bGwsdGhpcy5wcm9wPW51bGwsdGhpcy5vcmlnaW5hbFZhbHVlPW51bGwsdGhpcy5jZWxsUHJvcGVydGllcz1udWxsLHRoaXMuaW5pdCgpfV9m'@; put 'aXJlQ2FsbGJhY2tzKGwpe3RoaXMuX2Nsb3NlQ2FsbGJhY2smJih0aGlzLl9jbG9zZUNhbGxiYWNrKGwpLHRoaXMuX2Nsb3NlQ2FsbGJhY2s9bnVsbCl9aW5pdCgpe31nZXRWYWx1ZSgpe3Rocm93IEVycm9yKCJFZGl0b3IgZ2V0VmFsdWUoKSBtZXRob2QgdW5pbXBsZW1lbnRlZCIpfXNldFZh'@; put 'bHVlKCl7dGhyb3cgRXJyb3IoIkVkaXRvciBzZXRWYWx1ZSgpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9b3Blbigpe3Rocm93IEVycm9yKCJFZGl0b3Igb3BlbigpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9Y2xvc2UoKXt0aHJvdyBFcnJvcigiRWRpdG9yIGNsb3NlKCkgbWV0aG9kIHVuaW1w'@; put 'bGVtZW50ZWQiKX1wcmVwYXJlKGwsYSxkLGgsZixfKXt0aGlzLlREPWgsdGhpcy5yb3c9bCx0aGlzLmNvbD1hLHRoaXMucHJvcD1kLHRoaXMub3JpZ2luYWxWYWx1ZT1mLHRoaXMuY2VsbFByb3BlcnRpZXM9Xyx0aGlzLnN0YXRlPVdjLlZJUkdJTn1leHRlbmQoKXtyZXR1cm4gY2xhc3MgZXh0'@; put 'ZW5kcyB0aGlzLmNvbnN0cnVjdG9ye319c2F2ZVZhbHVlKGwsYSl7bGV0IGQsaCxmLF87aWYoYSl7Y29uc3Qgd2U9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCk7ZD1NYXRoLm1heChNYXRoLm1pbih3ZVswXSx3ZVsyXSksMCksaD1NYXRoLm1heChNYXRoLm1pbih3ZVsxXSx3ZVszXSksMCks'@; put 'Zj1NYXRoLm1heCh3ZVswXSx3ZVsyXSksXz1NYXRoLm1heCh3ZVsxXSx3ZVszXSl9ZWxzZVtkLGgsZixfXT1bdGhpcy5yb3csdGhpcy5jb2wsbnVsbCxudWxsXTtjb25zdCBUPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlHZXRDZWxsQ29vcmRzIixkLGgpO0FycmF5LmlzQXJyYXkoVCkmJihb'@; put 'ZCxoXT1UKTtjb25zdCBpZT10aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKSxwZT17cnVuT25seUlmOigpPT5LaSh0aGlzLmhvdC5nZXRTZWxlY3RlZCgpKSxncm91cDpHQn07dGhpcy5pc0luRnVsbEVkaXRNb2RlKCkmJmllLmFkZFNob3J0Y3V0cyhb'@; put 'e2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazooKT0+e3RoaXMuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtMSwwKX19LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazooKT0+e3RoaXMuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgxLDApfX0se2tleXM6W1siQXJy'@; put 'b3dMZWZ0Il1dLGNhbGxiYWNrOigpPT57dGhpcy5ob3Quc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsLTEqdGhpcy5ob3QuZ2V0RGlyZWN0aW9uRmFjdG9yKCkpfX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazooKT0+e3RoaXMuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFy'@; put 'dCgwLHRoaXMuaG90LmdldERpcmVjdGlvbkZhY3RvcigpKX19XSxwZSksdGhpcy5ob3QucG9wdWxhdGVGcm9tQXJyYXkoZCxoLGwsZixfLCJlZGl0Iil9YmVnaW5FZGl0aW5nKGwsYSl7aWYodGhpcy5zdGF0ZSE9PVdjLlZJUkdJTilyZXR1cm47Y29uc3QgZD10aGlzLmhvdCxoPWQucm93SW5k'@; put 'ZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh0aGlzLnJvdyksZj1kLmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodGhpcy5jb2wpO2lmKGQudmlldy5zY3JvbGxWaWV3cG9ydChkLl9jcmVhdGVDZWxsQ29vcmRzKGgsZikpLHRoaXMu'@; put 'c3RhdGU9V2MuRURJVElORyx0aGlzLmlzSW5GdWxsRWRpdE1vZGUoKSl7Y29uc3QgXz0ic3RyaW5nIj09dHlwZW9mIGw/bDpfbCh0aGlzLm9yaWdpbmFsVmFsdWUpO3RoaXMuc2V0VmFsdWUoXyl9dGhpcy5vcGVuKGEpLHRoaXMuX29wZW5lZD0hMCx0aGlzLmZvY3VzKCksZC52aWV3LnJlbmRl'@; put 'cigpLGQucnVuSG9va3MoImFmdGVyQmVnaW5FZGl0aW5nIix0aGlzLnJvdyx0aGlzLmNvbCl9ZmluaXNoRWRpdGluZyhsLGEsZCl7bGV0IGg7aWYoZCl7Y29uc3QgVD10aGlzLl9jbG9zZUNhbGxiYWNrO3RoaXMuX2Nsb3NlQ2FsbGJhY2s9Vz0+e1QmJlQoVyksZChXKSx0aGlzLmhvdC52aWV3'@; put 'LnJlbmRlcigpfX1pZih0aGlzLmlzV2FpdGluZygpKXJldHVybjtjb25zdCBfPXRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpO2lmKF8ucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChHQiksXy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKG1rKSx0aGlzLnN0'@; put 'YXRlIT09V2MuVklSR0lOKXtpZih0aGlzLnN0YXRlPT09V2MuRURJVElORyl7aWYobClyZXR1cm4gdGhpcy5jYW5jZWxDaGFuZ2VzKCksdm9pZCB0aGlzLmhvdC52aWV3LnJlbmRlcigpO2NvbnN0IFQ9dGhpcy5nZXRWYWx1ZSgpO2g9dGhpcy5jZWxsUHJvcGVydGllcy50cmltV2hpdGVzcGFj'@; put 'ZT9bWyJzdHJpbmciPT10eXBlb2YgVD9TdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbChUfHwiIik6VF1dOltbVF1dLHRoaXMuc3RhdGU9V2MuV0FJVElORyx0aGlzLnNhdmVWYWx1ZShoLGEpLHRoaXMuaG90LmdldENlbGxWYWxpZGF0b3IodGhpcy5jZWxsUHJvcGVydGllcyk/dGhpcy5ob3Qu'@; put 'YWRkSG9va09uY2UoInBvc3RBZnRlclZhbGlkYXRlIixXPT57dGhpcy5zdGF0ZT1XYy5GSU5JU0hFRCx0aGlzLmRpc2NhcmRFZGl0b3IoVyl9KToodGhpcy5zdGF0ZT1XYy5GSU5JU0hFRCx0aGlzLmRpc2NhcmRFZGl0b3IoITApKX19ZWxzZSB0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgp'@; put 'PT57dGhpcy5fZmlyZUNhbGxiYWNrcyghMCl9KX1jYW5jZWxDaGFuZ2VzKCl7dGhpcy5zdGF0ZT1XYy5GSU5JU0hFRCx0aGlzLmRpc2NhcmRFZGl0b3IoKX1kaXNjYXJkRWRpdG9yKGwpe3RoaXMuc3RhdGU9PT1XYy5GSU5JU0hFRCYmKCExPT09bCYmITAhPT10aGlzLmNlbGxQcm9wZXJ0aWVz'@; put 'LmFsbG93SW52YWxpZD8odGhpcy5ob3Quc2VsZWN0Q2VsbCh0aGlzLnJvdyx0aGlzLmNvbCksdGhpcy5mb2N1cygpLHRoaXMuc3RhdGU9V2MuRURJVElORyx0aGlzLl9maXJlQ2FsbGJhY2tzKCExKSk6KHRoaXMuY2xvc2UoKSx0aGlzLl9vcGVuZWQ9ITEsdGhpcy5fZnVsbEVkaXRNb2RlPSEx'@; put 'LHRoaXMuc3RhdGU9V2MuVklSR0lOLHRoaXMuX2ZpcmVDYWxsYmFja3MoITApLHRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLnNldEFjdGl2ZUNvbnRleHROYW1lKCJncmlkIikpKX1lbmFibGVGdWxsRWRpdE1vZGUoKXt0aGlzLl9mdWxsRWRpdE1vZGU9ITB9aXNJbkZ1bGxFZGl0TW9k'@; put 'ZSgpe3JldHVybiB0aGlzLl9mdWxsRWRpdE1vZGV9aXNPcGVuZWQoKXtyZXR1cm4gdGhpcy5fb3BlbmVkfWlzV2FpdGluZygpe3JldHVybiB0aGlzLnN0YXRlPT09V2MuV0FJVElOR31nZXRFZGl0ZWRDZWxsUmVjdCgpe3ZhciBsO2NvbnN0IGE9dGhpcy5nZXRFZGl0ZWRDZWxsKCk7aWYoIWEp'@; put 'cmV0dXJuO2NvbnN0e3d0T3ZlcmxheXM6ZCx3dFZpZXdwb3J0Omh9PXRoaXMuaG90LnZpZXcuX3d0LGY9dGhpcy5ob3Qucm9vdFdpbmRvdyxfPUtsKGEpLFQ9d2EoYSksVz1LbCh0aGlzLmhvdC5yb290RWxlbWVudCksaWU9d2EodGhpcy5ob3Qucm9vdEVsZW1lbnQpLHBlPWQudG9wT3Zlcmxh'@; put 'eS5ob2xkZXIsd2U9ZC5pbmxpbmVTdGFydE92ZXJsYXkuaG9sZGVyLEVlPXBlIT09Zj9wZS5zY3JvbGxUb3A6MCxaZT13ZSE9PWY/d2Uuc2Nyb2xsTGVmdDowLGl0PWYuaW5uZXJXaWR0aC1XLmxlZnQtaWUse3d0VGFibGU6ZXR9PW51bGwhPT0obD1kLmdldFBhcmVudE92ZXJsYXkoYSkpJiZ2'@; put 'b2lkIDAhPT1sP2w6dGhpcy5ob3Qudmlldy5fd3QseXQ9ZXQubmFtZSxFdD1bIm1hc3RlciIsImlubGluZV9zdGFydCJdLmluY2x1ZGVzKHl0KT9FZTowLFN0PVsibWFzdGVyIiwidG9wIiwiYm90dG9tIl0uaW5jbHVkZXMoeXQpP1plOjA7bGV0IG5uPV8udG9wLVcudG9wLShfLnRvcD09PVcu'@; put 'dG9wPzA6MSktRXQsdm49MDt2bj10aGlzLmhvdC5pc1J0bCgpP2YuaW5uZXJXaWR0aC1fLmxlZnQtVC1pdC0xK1N0Ol8ubGVmdC1XLmxlZnQtMS1TdCxbInRvcCIsInRvcF9pbmxpbmVfc3RhcnRfY29ybmVyIl0uaW5jbHVkZXMoeXQpJiYobm4rPWQudG9wT3ZlcmxheS5nZXRPdmVybGF5T2Zm'@; put 'c2V0KCkpLFsiaW5saW5lX3N0YXJ0IiwidG9wX2lubGluZV9zdGFydF9jb3JuZXIiXS5pbmNsdWRlcyh5dCkmJih2bis9TWF0aC5hYnMoZC5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpKSk7Y29uc3QgTm49dGhpcy5ob3QuaGFzQ29sSGVhZGVycygpLGNyPXRoaXMuaG90'@; put 'LnJvd0luZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodGhpcy5yb3cpLElyPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodGhpcy5jb2wpLElpPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldFJlbmRlcmFibGVJ'@; put 'bmRleGVzTGVuZ3RoKCktdGhpcy5ob3Qudmlldy5fd3QuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIik7KE5uJiZjcjw9MHx8Y3I9PT1JaSkmJihubis9MSksSXI8PTAmJih2bis9MSk7Y29uc3QgZnI9aC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uLGlpPWguY29sdW1u'@; put 'c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbixqcj1NYXRoLmFicyhkLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpKSxPbj1kLnRvcE92ZXJsYXkuZ2V0U2Nyb2xsUG9zaXRpb24oKSxGcj1MYyh0aGlzLmhvdC5yb290RG9jdW1lbnQpLFFuPWEub2Zmc2V0VG9w'@; put 'K2ZyLU9uO2xldCBNcj0wO2lmKHRoaXMuaG90LmlzUnRsKCkpe2NvbnN0IFlyPWEub2Zmc2V0TGVmdDtNcj1Zcj49MD9ldC5nZXRXaWR0aCgpLWEub2Zmc2V0TGVmdDpNYXRoLmFicyhZciksTXIrPWlpLWpyLVR9ZWxzZSBNcj1hLm9mZnNldExlZnQraWktanI7Y29uc3QgX3I9enAodGhpcy5U'@; put 'RCx0aGlzLmhvdC5yb290V2luZG93KSx2dD10aGlzLmhvdC5pc1J0bCgpPyJib3JkZXJSaWdodFdpZHRoIjoiYm9yZGVyTGVmdFdpZHRoIixPdD1wYXJzZUludChfclt2dF0sMTApPjA/MDoxLGNuPXBhcnNlSW50KF9yLmJvcmRlclRvcFdpZHRoLDEwKT4wPzA6MSxFbj13YShhKStPdCxQbj1h'@; put 'bChhKStjbixKbj1kdGUocGUpP0ZyOjAsUHI9aHRlKHdlKT9GcjowLE9yPXRoaXMuaG90LnZpZXcubWF4aW11bVZpc2libGVFbGVtZW50V2lkdGgoTXIpLUpuK090O3JldHVybnt0b3A6bm4sc3RhcnQ6dm4saGVpZ2h0OlBuLG1heEhlaWdodDpNYXRoLm1heCh0aGlzLmhvdC52aWV3Lm1heGlt'@; put 'dW1WaXNpYmxlRWxlbWVudEhlaWdodChRbiktUHIrY24sMjMpLHdpZHRoOkVuLG1heFdpZHRoOk9yfX1nZXRFZGl0ZWRDZWxsc0xheWVyQ2xhc3MoKXtzd2l0Y2godGhpcy5jaGVja0VkaXRvclNlY3Rpb24oKSl7Y2FzZSJpbmxpbmUtc3RhcnQiOnJldHVybiJodF9jbG9uZV9sZWZ0IGh0X2Ns'@; put 'b25lX2lubGluZV9zdGFydCI7Y2FzZSJib3R0b20iOnJldHVybiJodF9jbG9uZV9ib3R0b20iO2Nhc2UiYm90dG9tLWlubGluZS1zdGFydC1jb3JuZXIiOnJldHVybiJodF9jbG9uZV9ib3R0b21fbGVmdF9jb3JuZXIgaHRfY2xvbmVfYm90dG9tX2lubGluZV9zdGFydF9jb3JuZXIiO2Nhc2Ui'@; put 'dG9wIjpyZXR1cm4iaHRfY2xvbmVfdG9wIjtjYXNlInRvcC1pbmxpbmUtc3RhcnQtY29ybmVyIjpyZXR1cm4iaHRfY2xvbmVfdG9wX2xlZnRfY29ybmVyIGh0X2Nsb25lX3RvcF9pbmxpbmVfc3RhcnRfY29ybmVyIjtkZWZhdWx0OnJldHVybiJodF9jbG9uZV9tYXN0ZXIifX1nZXRFZGl0ZWRD'@; put 'ZWxsKCl7cmV0dXJuIHRoaXMuaG90LmdldENlbGwodGhpcy5yb3csdGhpcy5jb2wsITApfWNoZWNrRWRpdG9yU2VjdGlvbigpe2NvbnN0IGw9dGhpcy5ob3QuY291bnRSb3dzKCk7bGV0IGE9IiI7cmV0dXJuIHRoaXMucm93PHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzVG9wP2E9'@; put 'dGhpcy5jb2w8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydD8idG9wLWlubGluZS1zdGFydC1jb3JuZXIiOiJ0b3AiOnRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tJiZ0aGlzLnJvdz49bC10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkUm93'@; put 'c0JvdHRvbT9hPXRoaXMuY29sPHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQ/ImJvdHRvbS1pbmxpbmUtc3RhcnQtY29ybmVyIjoiYm90dG9tIjp0aGlzLmNvbDx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0JiYoYT0iaW5saW5lLXN0YXJ0'@; put 'IiksYX19ZnVuY3Rpb24gUURlKCl7dmFyIGwsYz17bWluSGVpZ2h0OjIwMCxtYXhIZWlnaHQ6MzAwLG1pbldpZHRoOjEwMCxtYXhXaWR0aDozMDB9LGE9ZG9jdW1lbnQuYm9keSxkPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSxoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNQQU4iKSxm'@; put 'PWZ1bmN0aW9uKEVlLFplLGl0KXtFZS5hZGRFdmVudExpc3RlbmVyKFplLGl0LCExKX0sXz1mdW5jdGlvbihFZSxaZSxpdCl7RWUucmVtb3ZlRXZlbnRMaXN0ZW5lcihaZSxpdCwhMSl9LFQ9ZnVuY3Rpb24oRWUpe3ZhciBaZSxpdDtFZT8vXlthLXpBLVogXC4sXFxcL1x8MC05XSQvLnRlc3Qo'@; put 'RWUpfHwoRWU9Ii4iKTpFZT0iIix2b2lkIDAhPT1kLnRleHRDb250ZW50P2QudGV4dENvbnRlbnQ9bC52YWx1ZStFZTpkLmRhdGE9bC52YWx1ZStFZSxoLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaC5zdHlsZS5mb250U2l6ZT13ZShsKS5mb250U2l6ZSxoLnN0eWxlLmZvbnRGYW1pbHk9'@; put 'd2UobCkuZm9udEZhbWlseSxoLnN0eWxlLndoaXRlU3BhY2U9InByZSIsYS5hcHBlbmRDaGlsZChoKSxaZT1oLmNsaWVudFdpZHRoKzIsYS5yZW1vdmVDaGlsZChoKSxsLnN0eWxlLmhlaWdodD1jLm1pbkhlaWdodCsicHgiLGwuc3R5bGUud2lkdGg9Yy5taW5XaWR0aD5aZT9jLm1pbldpZHRo'@; put 'KyJweCI6WmU+Yy5tYXhXaWR0aD9jLm1heFdpZHRoKyJweCI6WmUrInB4IixjLm1pbkhlaWdodD4oaXQ9bC5zY3JvbGxIZWlnaHQ/bC5zY3JvbGxIZWlnaHQtMTowKT9sLnN0eWxlLmhlaWdodD1jLm1pbkhlaWdodCsicHgiOmMubWF4SGVpZ2h0PGl0PyhsLnN0eWxlLmhlaWdodD1jLm1heEhl'@; put 'aWdodCsicHgiLGwuc3R5bGUub3ZlcmZsb3dZPSJ2aXNpYmxlIik6bC5zdHlsZS5oZWlnaHQ9aXQrInB4In0sVz1mdW5jdGlvbigpe3dpbmRvdy5zZXRUaW1lb3V0KFQsMCl9O2Z1bmN0aW9uIHdlKEVlKXtyZXR1cm4gRWUuY3VycmVudFN0eWxlfHxkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRD'@; put 'b21wdXRlZFN0eWxlKEVlKX1yZXR1cm57aW5pdDpmdW5jdGlvbihFZSxaZSxpdCl7IWZ1bmN0aW9uKEVlLFplLGl0KXtsPUVlLGZ1bmN0aW9uKEVlKXtpZihFZSYmRWUubWluSGVpZ2h0KWlmKCJpbmhlcml0Ij09RWUubWluSGVpZ2h0KWMubWluSGVpZ2h0PWwuY2xpZW50SGVpZ2h0O2Vsc2V7'@; put 'dmFyIFplPXBhcnNlSW50KEVlLm1pbkhlaWdodCk7aXNOYU4oWmUpfHwoYy5taW5IZWlnaHQ9WmUpfWlmKEVlJiZFZS5tYXhIZWlnaHQpaWYoImluaGVyaXQiPT1FZS5tYXhIZWlnaHQpYy5tYXhIZWlnaHQ9bC5jbGllbnRIZWlnaHQ7ZWxzZXt2YXIgaXQ9cGFyc2VJbnQoRWUubWF4SGVpZ2h0'@; put 'KTtpc05hTihpdCl8fChjLm1heEhlaWdodD1pdCl9aWYoRWUmJkVlLm1pbldpZHRoKWlmKCJpbmhlcml0Ij09RWUubWluV2lkdGgpYy5taW5XaWR0aD1sLmNsaWVudFdpZHRoO2Vsc2V7dmFyIGV0PXBhcnNlSW50KEVlLm1pbldpZHRoKTtpc05hTihldCl8fChjLm1pbldpZHRoPWV0KX1pZihF'@; put 'ZSYmRWUubWF4V2lkdGgpaWYoImluaGVyaXQiPT1FZS5tYXhXaWR0aCljLm1heFdpZHRoPWwuY2xpZW50V2lkdGg7ZWxzZXt2YXIgeXQ9cGFyc2VJbnQoRWUubWF4V2lkdGgpO2lzTmFOKHl0KXx8KGMubWF4V2lkdGg9eXQpfWguZmlyc3RDaGlsZHx8KGguY2xhc3NOYW1lPSJhdXRvUmVzaXpl'@; put 'IixoLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsaC5hcHBlbmRDaGlsZChkKSl9KFplKSwiVEVYVEFSRUEiPT1sLm5vZGVOYW1lJiYobC5zdHlsZS5yZXNpemU9Im5vbmUiLGwuc3R5bGUub3ZlcmZsb3dZPSIiLGwuc3R5bGUuaGVpZ2h0PWMubWluSGVpZ2h0KyJweCIsbC5zdHlsZS5t'@; put 'aW5XaWR0aD1jLm1pbldpZHRoKyJweCIsbC5zdHlsZS5tYXhXaWR0aD1jLm1heFdpZHRoKyJweCIsbC5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiIpLGl0JiYoZihsLCJjaGFuZ2UiLFQpLGYobCwiY3V0IixXKSxmKGwsInBhc3RlIixXKSxmKGwsImRyb3AiLFcpLGYobCwia2V5ZG93biIsVyks'@; put 'ZihsLCJmb2N1cyIsVCksZihsLCJjb21wb3NpdGlvbnN0YXJ0IixXKSxmKGwsImNvbXBvc2l0aW9udXBkYXRlIixXKSxmKGwsImNvbXBvc2l0aW9uZW5kIixXKSksVCgpfShFZSxaZSxpdCl9LHVuT2JzZXJ2ZTpmdW5jdGlvbigpe18obCwiY2hhbmdlIixUKSxfKGwsImN1dCIsVyksXyhsLCJw'@; put 'YXN0ZSIsVyksXyhsLCJkcm9wIixXKSxfKGwsImtleWRvd24iLFcpLF8obCwiZm9jdXMiLFQpLF8obCwiY29tcG9zaXRpb25zdGFydCIsVyksXyhsLCJjb21wb3NpdGlvbnVwZGF0ZSIsVyksXyhsLCJjb21wb3NpdGlvbmVuZCIsVyl9LHJlc2l6ZTpUfX1mdW5jdGlvbiBZbmUoYyxsKXtjb25z'@; put 'dCBhPWhOKGwpLGQ9bC52YWx1ZS5zcGxpdCgiXG4iKTtsZXQgaD1hLGY9MDtmb3IobGV0IF89MDtfPGQubGVuZ3RoO18rKyl7MCE9PV8mJihmKz1kW18tMV0ubGVuZ3RoKzEpO2NvbnN0IFc9ZitkW19dLmxlbmd0aDtpZigiaG9tZSI9PT1jP2g9ZjoiZW5kIj09PWMmJihoPVcpLGE8PVcpYnJl'@; put 'YWt9b3kobCxoKX1UYSh2NyxYRGUpO2NvbnN0IFprPSJodF9lZGl0b3JfaGlkZGVuIixXbmU9InRleHRFZGl0b3IiO2NsYXNzIGtnIGV4dGVuZHMgdjd7c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJ0ZXh0In1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSx0aGlzLmV2ZW50TWFuYWdl'@; put 'cj1uZXcgbGwodGhpcyksdGhpcy5hdXRvUmVzaXplPVFEZSgpLHRoaXMuVEVYVEFSRUE9dm9pZCAwLHRoaXMudGV4dGFyZWFTdHlsZT12b2lkIDAsdGhpcy5URVhUQVJFQV9QQVJFTlQ9dm9pZCAwLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZT12b2lkIDAsdGhpcy5sYXllckNsYXNzPXZvaWQg'@; put 'MCx0aGlzLmNyZWF0ZUVsZW1lbnRzKCksdGhpcy5iaW5kRXZlbnRzKCksdGhpcy5ob3QuYWRkSG9va09uY2UoImFmdGVyRGVzdHJveSIsKCk9PnRoaXMuZGVzdHJveSgpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLlRFWFRBUkVBLnZhbHVlfXNldFZhbHVlKGwpe3RoaXMuVEVYVEFSRUEudmFs'@; put 'dWU9bH1vcGVuKCl7dGhpcy5yZWZyZXNoRGltZW5zaW9ucygpLHRoaXMuc2hvd0VkaXRhYmxlRWxlbWVudCgpLHRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLnNldEFjdGl2ZUNvbnRleHROYW1lKCJlZGl0b3IiKSx0aGlzLmFkZEhvb2soImFmdGVyRG9jdW1lbnRLZXlEb3duIixhPT50'@; put 'aGlzLm9uQWZ0ZXJEb2N1bWVudEtleURvd24oYSkpLHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKX1jbG9zZSgpe3RoaXMuYXV0b1Jlc2l6ZS51bk9ic2VydmUoKSx0aGlzLmhvdC5yb290RG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXRoaXMuVEVYVEFSRUEmJnRoaXMuaG90Lmxpc3RlbigpLHRo'@; put 'aXMuaGlkZUVkaXRhYmxlRWxlbWVudCgpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMucmVtb3ZlSG9va3NCeUtleSgiYWZ0ZXJEb2N1bWVudEtleURvd24iKX1wcmVwYXJlKGwsYSxkLGgsZixfKXtjb25zdCBUPXRoaXMuc3RhdGU7aWYoc3VwZXIucHJlcGFyZShsLGEsZCxoLGYs'@; put 'XyksIV8ucmVhZE9ubHkpe3RoaXMucmVmcmVzaERpbWVuc2lvbnMoITApO2NvbnN0e2FsbG93SW52YWxpZDpXLGZyYWdtZW50U2VsZWN0aW9uOmllfT1fO1cmJih0aGlzLlRFWFRBUkVBLnZhbHVlPSIiKSxUIT09V2MuRklOSVNIRUQmJnRoaXMuaGlkZUVkaXRhYmxlRWxlbWVudCgpLCFpZSYm'@; put 'IW0yKCkmJnRoaXMuZm9jdXMoKX19YmVnaW5FZGl0aW5nKGwsYSl7dGhpcy5zdGF0ZT09PVdjLlZJUkdJTiYmKHRoaXMuVEVYVEFSRUEudmFsdWU9IiIsc3VwZXIuYmVnaW5FZGl0aW5nKGwsYSkpfWZvY3VzKCl7dGhpcy5URVhUQVJFQS5zZWxlY3QoKSxveSh0aGlzLlRFWFRBUkVBLHRoaXMu'@; put 'VEVYVEFSRUEudmFsdWUubGVuZ3RoKX1jcmVhdGVFbGVtZW50cygpe2NvbnN0e3Jvb3REb2N1bWVudDpsfT10aGlzLmhvdDt0aGlzLlRFWFRBUkVBPWwuY3JlYXRlRWxlbWVudCgiVEVYVEFSRUEiKSx0aGlzLlRFWFRBUkVBLnNldEF0dHJpYnV0ZSgiZGF0YS1ob3QtaW5wdXQiLCIiKSx0aGlz'@; put 'LlRFWFRBUkVBLnRhYkluZGV4PS0xLHBpKHRoaXMuVEVYVEFSRUEsImhhbmRzb250YWJsZUlucHV0IiksdGhpcy50ZXh0YXJlYVN0eWxlPXRoaXMuVEVYVEFSRUEuc3R5bGUsdGhpcy50ZXh0YXJlYVN0eWxlLndpZHRoPTAsdGhpcy50ZXh0YXJlYVN0eWxlLmhlaWdodD0wLHRoaXMudGV4dGFy'@; put 'ZWFTdHlsZS5vdmVyZmxvd1k9InZpc2libGUiLHRoaXMuVEVYVEFSRUFfUEFSRU5UPWwuY3JlYXRlRWxlbWVudCgiRElWIikscGkodGhpcy5URVhUQVJFQV9QQVJFTlQsImhhbmRzb250YWJsZUlucHV0SG9sZGVyIiksQm8odGhpcy5URVhUQVJFQV9QQVJFTlQsdGhpcy5sYXllckNsYXNzKSYm'@; put 'V28odGhpcy5URVhUQVJFQV9QQVJFTlQsdGhpcy5sYXllckNsYXNzKSxwaSh0aGlzLlRFWFRBUkVBX1BBUkVOVCxaayksdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlPXRoaXMuVEVYVEFSRUFfUEFSRU5ULnN0eWxlLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHRoaXMuVEVYVEFS'@; put 'RUEpLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUFfUEFSRU5UKX1oaWRlRWRpdGFibGVFbGVtZW50KCl7Q3RlKCkmJih0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iLTk5OTk5cHgiKSx0aGlzLnRleHRhcmVhU3R5bGUub3ZlcmZsb3dZPSJ2aXNp'@; put 'YmxlIix0aGlzLnRleHRhcmVhUGFyZW50U3R5bGUub3BhY2l0eT0iMCIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLmhlaWdodD0iMXB4IixXbyh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpLHBpKHRoaXMuVEVYVEFSRUFfUEFSRU5ULFprKX1zaG93RWRpdGFibGVFbGVt'@; put 'ZW50KCl7dGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLmhlaWdodD0iIix0aGlzLnRleHRhcmVhUGFyZW50U3R5bGUub3ZlcmZsb3c9IiIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLnBvc2l0aW9uPSIiLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZVt0aGlzLmhvdC5pc1J0bCgpPyJsZWZ0Ijoi'@; put 'cmlnaHQiXT0iYXV0byIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLm9wYWNpdHk9IjEiLHRoaXMudGV4dGFyZWFTdHlsZS50ZXh0SW5kZW50PSIiLHRoaXMudGV4dGFyZWFTdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiI7Y29uc3QgbD10aGlzLlRFWFRBUkVBX1BBUkVOVC5jaGlsZE5vZGVzO2xl'@; put 'dCBhPSExO3ZvKGwubGVuZ3RoLTEsZD0+e2lmKEJvKGxbZF0sImhhbmRzb250YWJsZUVkaXRvciIpKXJldHVybiBhPSEwLCExfSksQm8odGhpcy5URVhUQVJFQV9QQVJFTlQsWmspJiZXbyh0aGlzLlRFWFRBUkVBX1BBUkVOVCxaayksYT8odGhpcy5sYXllckNsYXNzPSJodF9lZGl0b3Jfdmlz'@; put 'aWJsZSIscGkodGhpcy5URVhUQVJFQV9QQVJFTlQsdGhpcy5sYXllckNsYXNzKSk6KHRoaXMubGF5ZXJDbGFzcz10aGlzLmdldEVkaXRlZENlbGxzTGF5ZXJDbGFzcygpLHBpKHRoaXMuVEVYVEFSRUFfUEFSRU5ULHRoaXMubGF5ZXJDbGFzcykpfXJlZnJlc2hWYWx1ZSgpe2NvbnN0IGw9dGhp'@; put 'cy5ob3QudG9QaHlzaWNhbFJvdyh0aGlzLnJvdyksYT10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKGwsdGhpcy5jb2wpO3RoaXMub3JpZ2luYWxWYWx1ZT1hLHRoaXMuc2V0VmFsdWUoYSksdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpfXJlZnJlc2hEaW1lbnNpb25zKCl7bGV0IGw9YXJn'@; put 'dW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZih0aGlzLnN0YXRlIT09V2MuRURJVElORyYmIWwpcmV0dXJuO2lmKHRoaXMuVEQ9dGhpcy5nZXRFZGl0ZWRDZWxsKCksIXRoaXMuVEQpcmV0dXJuIHZvaWQobHx8dGhpcy5jbG9zZSgpKTtjb25z'@; put 'dHt0b3A6YSxzdGFydDpkLHdpZHRoOmgsbWF4V2lkdGg6ZixoZWlnaHQ6XyxtYXhIZWlnaHQ6VH09dGhpcy5nZXRFZGl0ZWRDZWxsUmVjdCgpO3RoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS50b3A9YCR7YX1weGAsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlW3RoaXMuaG90LmlzUnRsKCk/InJp'@; put 'Z2h0IjoibGVmdCJdPWAke2R9cHhgLHRoaXMuc2hvd0VkaXRhYmxlRWxlbWVudCgpO2NvbnN0IFc9enAodGhpcy5URCx0aGlzLmhvdC5yb290V2luZG93KTt0aGlzLlRFWFRBUkVBLnN0eWxlLmZvbnRTaXplPVcuZm9udFNpemUsdGhpcy5URVhUQVJFQS5zdHlsZS5mb250RmFtaWx5PVcuZm9u'@; put 'dEZhbWlseSx0aGlzLlRFWFRBUkVBLnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLlRELnN0eWxlLmJhY2tncm91bmRDb2xvcjtjb25zdCBpZT16cCh0aGlzLlRFWFRBUkVBKSxwZT1wYXJzZUludChpZS5wYWRkaW5nTGVmdCwxMCkrcGFyc2VJbnQoaWUucGFkZGluZ1JpZ2h0LDEwKSx3ZT1w'@; put 'YXJzZUludChpZS5wYWRkaW5nVG9wLDEwKStwYXJzZUludChpZS5wYWRkaW5nQm90dG9tLDEwKSxaZT1fLXdlLGl0PWYtcGUsZXQ9VC13ZTt0aGlzLmF1dG9SZXNpemUuaW5pdCh0aGlzLlRFWFRBUkVBLHttaW5XaWR0aDpNYXRoLm1pbihoLXBlLGl0KSxtaW5IZWlnaHQ6TWF0aC5taW4oWmUs'@; put 'ZXQpLG1heFdpZHRoOml0LG1heEhlaWdodDpldH0sITApfWJpbmRFdmVudHMoKXt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuVEVYVEFSRUEsImN1dCIsbD0+bC5zdG9wUHJvcGFnYXRpb24oKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlz'@; put 'LlRFWFRBUkVBLCJwYXN0ZSIsbD0+bC5zdG9wUHJvcGFnYXRpb24oKSksYk4oKSYmdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLlRFWFRBUkVBLCJmb2N1c291dCIsKCk9PnRoaXMuZmluaXNoRWRpdGluZyghMSkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJTY3JvbGxIb3Jp'@; put 'em9udGFsbHkiLCgpPT50aGlzLnJlZnJlc2hEaW1lbnNpb25zKCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IiwoKT0+dGhpcy5yZWZyZXNoRGltZW5zaW9ucygpKSx0aGlzLmFkZEhvb2soImFmdGVyQ29sdW1uUmVzaXplIiwoKT0+e3RoaXMucmVmcmVzaERpbWVuc2lv'@; put 'bnMoKSx0aGlzLmZvY3VzKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyUm93UmVzaXplIiwoKT0+e3RoaXMucmVmcmVzaERpbWVuc2lvbnMoKSx0aGlzLmZvY3VzKCl9KX1hbGxvd0tleUV2ZW50UHJvcGFnYXRpb24oKXt9ZGVzdHJveSgpe3RoaXMuZXZlbnRNYW5hZ2VyLmRlc3Ryb3koKSx0aGlz'@; put 'LmNsZWFySG9va3MoKX1yZWdpc3RlclNob3J0Y3V0cygpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksaD0oKT0+e3RoaXMuaG90LnJvb3REb2N1bWVudC5leGVjQ29tbWFuZCgiaW5zZXJ0VGV4dCIsITEsIlxuIil9O2EuYWRkU2hv'@; put 'cnRjdXRzKFt7a2V5czpbWyJUYWIiXV0sY2FsbGJhY2s6Zj0+e2NvbnN0IF89dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxUPSJmdW5jdGlvbiI9PXR5cGVvZiBfLnRhYk1vdmVzP18udGFiTW92ZXMoZik6Xy50YWJNb3Zlczt0aGlzLmhvdC5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoVC5yb3cs'@; put 'VC5jb2wsITApfX0se2tleXM6W1siU2hpZnQiLCJUYWIiXV0sY2FsbGJhY2s6Zj0+e2NvbnN0IF89dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxUPSJmdW5jdGlvbiI9PXR5cGVvZiBfLnRhYk1vdmVzP18udGFiTW92ZXMoZik6Xy50YWJNb3Zlczt0aGlzLmhvdC5zZWxlY3Rpb24udHJhbnNmb3Jt'@; put 'U3RhcnQoLVQucm93LC1ULmNvbCl9fSx7a2V5czpbWyJDb250cm9sIiwiRW50ZXIiXV0sY2FsbGJhY2s6KCk9PihoKCksITEpLHJ1bk9ubHlJZjpmPT4hdGhpcy5ob3Quc2VsZWN0aW9uLmlzTXVsdGlwbGUoKSYmIWYuYWx0S2V5LHJlbGF0aXZlVG9Hcm91cDpjeSxwb3NpdGlvbjoiYmVmb3Jl'@; put 'In0se2tleXM6W1siTWV0YSIsIkVudGVyIl1dLGNhbGxiYWNrOigpPT4oaCgpLCExKSxydW5Pbmx5SWY6KCk9PiF0aGlzLmhvdC5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpLHJlbGF0aXZlVG9Hcm91cDpjeSxwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6W1siQWx0IiwiRW50ZXIiXV0sY2FsbGJh'@; put 'Y2s6KCk9PihoKCksITEpLHJlbGF0aXZlVG9Hcm91cDpjeSxwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6W1siUGFnZVVwIl1dLGNhbGxiYWNrOigpPT57dGhpcy5ob3Quc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KC10aGlzLmhvdC5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQ'@; put 'YWdlRG93biJdXSxjYWxsYmFjazooKT0+e3RoaXMuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCh0aGlzLmhvdC5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJIb21lIl1dLGNhbGxiYWNrOihmLF8pPT57bGV0W1RdPV87WW5lKFQsdGhpcy5URVhUQVJFQSl9fSx7a2V5czpb'@; put 'WyJFbmQiXV0sY2FsbGJhY2s6KGYsXyk9PntsZXRbVF09XztZbmUoVCx0aGlzLlRFWFRBUkVBKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsIloiXV0scHJldmVudERlZmF1bHQ6ITEsY2FsbGJhY2s6KCk9Pnt0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgpPT57dGhpcy5hdXRvUmVzaXpl'@; put 'LnJlc2l6ZSgpfSwxMCl9fSx7a2V5czpbWyJDb250cm9sL01ldGEiLCJTaGlmdCIsIloiXV0scHJldmVudERlZmF1bHQ6ITEsY2FsbGJhY2s6KCk9Pnt0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgpPT57dGhpcy5hdXRvUmVzaXplLnJlc2l6ZSgpfSwxMCl9fV0se3J1bk9ubHlJZjooKT0+'@; put 'S2kodGhpcy5ob3QuZ2V0U2VsZWN0ZWQoKSksZ3JvdXA6V25lfSl9dW5yZWdpc3RlclNob3J0Y3V0cygpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7YS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKG1rKSxhLnJlbW92ZVNob3J0Y3V0'@; put 'c0J5R3JvdXAoV25lKSxhLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoR0IpfW9uQWZ0ZXJEb2N1bWVudEtleURvd24obCl7LTE9PT1bY28uQVJST1dfVVAsY28uQVJST1dfUklHSFQsY28uQVJST1dfRE9XTixjby5BUlJPV19MRUZUXS5pbmRleE9mKGwua2V5Q29kZSkmJnRoaXMuYXV0b1Jlc2l6'@; put 'ZS5yZXNpemUoU3RyaW5nLmZyb21DaGFyQ29kZShsLmtleUNvZGUpKX19ZnVuY3Rpb24gTXkoYyxsLGEsZCxoLGYsXyl7Y29uc3QgVD1bXSxXPVtdO18uY2xhc3NOYW1lJiZwaShsLF8uY2xhc3NOYW1lKSxfLnJlYWRPbmx5JiZULnB1c2goXy5yZWFkT25seUNlbGxDbGFzc05hbWUpLCExPT09'@; put 'Xy52YWxpZCYmXy5pbnZhbGlkQ2VsbENsYXNzTmFtZT9ULnB1c2goXy5pbnZhbGlkQ2VsbENsYXNzTmFtZSk6Vy5wdXNoKF8uaW52YWxpZENlbGxDbGFzc05hbWUpLCExPT09Xy53b3JkV3JhcCYmXy5ub1dvcmRXcmFwQ2xhc3NOYW1lJiZULnB1c2goXy5ub1dvcmRXcmFwQ2xhc3NOYW1lKSwh'@; put 'ZiYmXy5wbGFjZWhvbGRlciYmVC5wdXNoKF8ucGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lKSxXbyhsLFcpLHBpKGwsVCl9ZnVuY3Rpb24gJHAoYyxsLGEsZCxoLGYsXyl7TXkuYXBwbHkodGhpcyxbYyxsLGEsZCxoLGYsX10pO2xldCBUPWY7aWYoIVQmJl8ucGxhY2Vob2xkZXImJihUPV8ucGxh'@; put 'Y2Vob2xkZXIpLFQ9X2woVCksXy50cmltV2hpdGVzcGFjZSYmKFQ9VC50cmltKCkpLF8ucmVuZGVyZXJUZW1wbGF0ZSl7ZzIobCk7Y29uc3QgVz1jLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURU1QTEFURSIpO1cuc2V0QXR0cmlidXRlKCJiaW5kIiwie3t9fSIpLFcuaW5uZXJIVE1M'@; put 'PV8ucmVuZGVyZXJUZW1wbGF0ZSxIVE1MVGVtcGxhdGVFbGVtZW50LmRlY29yYXRlKFcpLFcubW9kZWw9Yy5nZXRTb3VyY2VEYXRhQXRSb3coYSksbC5hcHBlbmRDaGlsZChXKX1lbHNlIGpwKGwsVCl9TXkuUkVOREVSRVJfVFlQRT0iYmFzZSIsJHAuUkVOREVSRVJfVFlQRT0idGV4dCI7Y29u'@; put 'c3QgR25lPXtDRUxMX1RZUEU6InRleHQiLGVkaXRvcjprZyxyZW5kZXJlcjokcH07ZnVuY3Rpb24geTIoYyxsKXtjb25zdCBhPW5ldyBXQihjLGx8fHt9LG5WKTtyZXR1cm4gYS5pbml0KCksYX1iMihHbmUpLHkyLmVkaXRvcnM9e0Jhc2VFZGl0b3I6djd9LHkyLkNvcmU9ZnVuY3Rpb24oYyl7'@; put 'cmV0dXJuIG5ldyBXQihjLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuVil9LHkyLkRlZmF1bHRTZXR0aW5ncz1IbmUoKSx5Mi5ob29rcz1zby5nZXRTaW5nbGV0b24oKSx5Mi5DZWxsQ29vcmRzPVNrLHkyLkNlbGxSYW5nZT1aTix5'@; put 'Mi5wYWNrYWdlTmFtZT0iaGFuZHNvbnRhYmxlIix5Mi5idWlsZERhdGU9IjMxLzA4LzIwMjMgMDg6MjM6MzMiLHkyLnZlcnNpb249IjEzLjEuMCIseTIubGFuZ3VhZ2VzPXtkaWN0aW9uYXJ5S2V5czp6VGUsZ2V0TGFuZ3VhZ2VEaWN0aW9uYXJ5OkRuZSxnZXRMYW5ndWFnZXNEaWN0aW9uYXJp'@; put 'ZXM6ZnVuY3Rpb24gR1RlKCl7cmV0dXJuIFlUZSgpfSxyZWdpc3Rlckxhbmd1YWdlRGljdGlvbmFyeTpUbmUsZ2V0VHJhbnNsYXRlZFBocmFzZTpJbmV9O2NvbnN0IG1zPXkyLGlJZT1bImNvbnRhaW5lciJdLCRCPW5ldyBNYXAsJG5lPSJUaGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlIGJvdW5k'@; put 'IHRvIHRoaXMgY29tcG9uZW50IHdhcyBkZXN0cm95ZWQgYW5kIGNhbm5vdCBiZSB1c2VkIHByb3Blcmx5LiI7bGV0IEFnPSgoKT0+e2NsYXNzIGN7Z2V0SW5zdGFuY2UoYSl7Y29uc3QgZD0kQi5nZXQoYSk7cmV0dXJuIGQuaXNEZXN0cm95ZWQ/KGNvbnNvbGUud2FybigkbmUpLG51bGwpOmR9'@; put 'cmVnaXN0ZXJJbnN0YW5jZShhLGQpe3JldHVybiAkQi5zZXQoYSxkKX1yZW1vdmVJbnN0YW5jZShhKXtyZXR1cm4gJEIuZGVsZXRlKGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5c'@; put 'dTAyNzVmYWN9KSxjfSkoKTtjb25zdCBvSWU9T2JqZWN0LmtleXMobXMuRGVmYXVsdFNldHRpbmdzKSxxbmU9bXMuaG9va3MuZ2V0UmVnaXN0ZXJlZCgpO2xldCBLbmU9KCgpPT57Y2xhc3MgY3ttZXJnZVNldHRpbmdzKGEpe2NvbnN0IGQ9InNldHRpbmdzImluIGEmJiJvYmplY3QiPT10eXBl'@; put 'b2YgYS5zZXR0aW5ncyxoPWQ/YS5zZXR0aW5nczp7fTtyZXR1cm4gcW5lLmNvbmNhdChvSWUpLmZvckVhY2goXz0+e2NvbnN0IFQ9cW5lLmluZGV4T2YoXyk+LTE7bGV0IFc7ZCYmVCYmKFc9YS5zZXR0aW5nc1tfXSksdm9pZCAwIT09YVtfXSYmKFc9YVtfXSksdm9pZCAwIT09VyYmKGhbX109'@; put 'Im5nWm9uZSJpbiBhJiYiZnVuY3Rpb24iPT10eXBlb2YgVyYmVD9mdW5jdGlvbiguLi5pZSl7cmV0dXJuIGEubmdab25lLnJ1bigoKT0+Vy5hcHBseSh0aGlzLGllKSl9OlcpfSksaH1wcmVwYXJlQ2hhbmdlcyhhKXtjb25zdCBkPXt9O3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGY9'@; put 'PnthLmhhc093blByb3BlcnR5KGYpJiYoZFtmXT1hW2ZdLmN1cnJlbnRWYWx1ZSl9KSxkfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx4eT0oKCk9Pntj'@; put 'bGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9ob3RUYWJsZVJlZ2lzdGVyZXI9YSx0aGlzLl9ob3RTZXR0aW5nc1Jlc29sdmVyPWQsdGhpcy5uZ1pvbmU9aCx0aGlzLl9faG90SW5zdGFuY2U9bnVsbCx0aGlzLmNvbHVtbnNDb21wb25lbnRzPVtdLHRoaXMuaG90SWQ9IiJ9Z2V0IGhv'@; put 'dEluc3RhbmNlKCl7cmV0dXJuIXRoaXMuX19ob3RJbnN0YW5jZXx8dGhpcy5fX2hvdEluc3RhbmNlJiYhdGhpcy5fX2hvdEluc3RhbmNlLmlzRGVzdHJveWVkP3RoaXMuX19ob3RJbnN0YW5jZToodGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpLGNv'@; put 'bnNvbGUud2FybigkbmUpLG51bGwpfXNldCBob3RJbnN0YW5jZShhKXt0aGlzLl9faG90SW5zdGFuY2U9YX1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCBhPXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh0aGlzKTtpZih0aGlzLmNvbHVtbnNDb21wb25lbnRzLmxlbmd0'@; put 'aD4wKXtjb25zdCBkPVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaChoPT57ZC5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhoKSl9KSxhLmNvbHVtbnM9ZH10aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuaG90SW5zdGFu'@; put 'Y2U9bmV3IG1zLkNvcmUodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCxhKSx0aGlzLmhvdElkJiZ0aGlzLl9ob3RUYWJsZVJlZ2lzdGVyZXIucmVnaXN0ZXJJbnN0YW5jZSh0aGlzLmhvdElkLHRoaXMuaG90SW5zdGFuY2UpLHRoaXMuaG90SW5zdGFuY2UuaW5pdCgpfSl9bmdPbkNoYW5n'@; put 'ZXMoYSl7aWYobnVsbD09PXRoaXMuaG90SW5zdGFuY2UpcmV0dXJuO2NvbnN0IGQ9dGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5wcmVwYXJlQ2hhbmdlcyhhKTt0aGlzLnVwZGF0ZUhvdFRhYmxlKGQpfW5nT25EZXN0cm95KCl7dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0'@; put 'aGlzLmhvdEluc3RhbmNlJiZ0aGlzLmhvdEluc3RhbmNlLmRlc3Ryb3koKX0pLHRoaXMuaG90SWQmJnRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZW1vdmVJbnN0YW5jZSh0aGlzLmhvdElkKX11cGRhdGVIb3RUYWJsZShhKXt0aGlzLmhvdEluc3RhbmNlJiZ0aGlzLm5nWm9uZS5ydW5PdXRz'@; put 'aWRlQW5ndWxhcigoKT0+e3RoaXMuaG90SW5zdGFuY2UudXBkYXRlU2V0dGluZ3MoYSwhMSl9KX1vbkFmdGVyQ29sdW1uc0NoYW5nZSgpe2lmKHZvaWQgMCE9PXRoaXMuY29sdW1uc0NvbXBvbmVudHMmJnRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoPjApe2NvbnN0IGE9W107dGhpcy5j'@; put 'b2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKGg9PnthLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGgpKX0pLHRoaXMudXBkYXRlSG90VGFibGUoe2NvbHVtbnM6YX0pfX1vbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpe2NvbnN0IGE9W107dGhpcy5jb2x1'@; put 'bW5zQ29tcG9uZW50cy5sZW5ndGg+MCYmdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKGQ9PnthLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGQpKX0pLHRoaXMudXBkYXRlSG90VGFibGUoe2NvbHVtbnM6YX0pfWFkZENvbHVtbihhKXt0aGlzLmNv'@; put 'bHVtbnNDb21wb25lbnRzLnB1c2goYSksdGhpcy5vbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpfXJlbW92ZUNvbHVtbihhKXtjb25zdCBkPXRoaXMuY29sdW1uc0NvbXBvbmVudHMuaW5kZXhPZihhKTt0aGlzLmNvbHVtbnNDb21wb25lbnRzLnNwbGljZShkLDEpLHRoaXMub25BZnRlckNv'@; put 'bHVtbnNOdW1iZXJDaGFuZ2UoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoQWcpLHR0KEtuZSksdHQoTm8pKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siaG90LXRhYmxlIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQp'@; put 'e2lmKDEmYSYmUm8oaUllLDUpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQuY29udGFpbmVyPWguZmlyc3QpfX0saW5wdXRzOntzZXR0aW5nczoic2V0dGluZ3MiLGhvdElkOiJob3RJZCIsYWN0aXZlSGVhZGVyQ2xhc3NOYW1lOiJhY3RpdmVIZWFkZXJDbGFzc05hbWUiLGFsbG93RW1wdHk6'@; put 'ImFsbG93RW1wdHkiLGFsbG93SHRtbDoiYWxsb3dIdG1sIixhbGxvd0luc2VydENvbHVtbjoiYWxsb3dJbnNlcnRDb2x1bW4iLGFsbG93SW5zZXJ0Um93OiJhbGxvd0luc2VydFJvdyIsYWxsb3dJbnZhbGlkOiJhbGxvd0ludmFsaWQiLGFsbG93UmVtb3ZlQ29sdW1uOiJhbGxvd1JlbW92ZUNv'@; put 'bHVtbiIsYWxsb3dSZW1vdmVSb3c6ImFsbG93UmVtb3ZlUm93IixhdXRvQ29sdW1uU2l6ZToiYXV0b0NvbHVtblNpemUiLGF1dG9Sb3dTaXplOiJhdXRvUm93U2l6ZSIsYXV0b1dyYXBDb2w6ImF1dG9XcmFwQ29sIixhdXRvV3JhcFJvdzoiYXV0b1dyYXBSb3ciLGJpbmRSb3dzV2l0aEhlYWRl'@; put 'cnM6ImJpbmRSb3dzV2l0aEhlYWRlcnMiLGNlbGw6ImNlbGwiLGNlbGxzOiJjZWxscyIsY2hlY2tlZFRlbXBsYXRlOiJjaGVja2VkVGVtcGxhdGUiLGNsYXNzTmFtZToiY2xhc3NOYW1lIixjb2xIZWFkZXJzOiJjb2xIZWFkZXJzIixjb2xsYXBzaWJsZUNvbHVtbnM6ImNvbGxhcHNpYmxlQ29s'@; put 'dW1ucyIsY29sdW1uSGVhZGVySGVpZ2h0OiJjb2x1bW5IZWFkZXJIZWlnaHQiLGNvbHVtbnM6ImNvbHVtbnMiLGNvbHVtblNvcnRpbmc6ImNvbHVtblNvcnRpbmciLGNvbHVtblN1bW1hcnk6ImNvbHVtblN1bW1hcnkiLGNvbFdpZHRoczoiY29sV2lkdGhzIixjb21tZW50ZWRDZWxsQ2xhc3NO'@; put 'YW1lOiJjb21tZW50ZWRDZWxsQ2xhc3NOYW1lIixjb21tZW50czoiY29tbWVudHMiLGNvbnRleHRNZW51OiJjb250ZXh0TWVudSIsY29weWFibGU6ImNvcHlhYmxlIixjb3B5UGFzdGU6ImNvcHlQYXN0ZSIsY29ycmVjdEZvcm1hdDoiY29ycmVjdEZvcm1hdCIsY3VycmVudENvbENsYXNzTmFt'@; put 'ZToiY3VycmVudENvbENsYXNzTmFtZSIsY3VycmVudEhlYWRlckNsYXNzTmFtZToiY3VycmVudEhlYWRlckNsYXNzTmFtZSIsY3VycmVudFJvd0NsYXNzTmFtZToiY3VycmVudFJvd0NsYXNzTmFtZSIsY3VzdG9tQm9yZGVyczoiY3VzdG9tQm9yZGVycyIsZGF0YToiZGF0YSIsZGF0YVNjaGVt'@; put 'YToiZGF0YVNjaGVtYSIsZGF0ZUZvcm1hdDoiZGF0ZUZvcm1hdCIsZGF0ZVBpY2tlckNvbmZpZzoiZGF0ZVBpY2tlckNvbmZpZyIsZGVmYXVsdERhdGU6ImRlZmF1bHREYXRlIixkaXNhYmxlVmlzdWFsU2VsZWN0aW9uOiJkaXNhYmxlVmlzdWFsU2VsZWN0aW9uIixkcmFnVG9TY3JvbGw6ImRy'@; put 'YWdUb1Njcm9sbCIsZHJvcGRvd25NZW51OiJkcm9wZG93bk1lbnUiLGVkaXRvcjoiZWRpdG9yIixlbnRlckJlZ2luc0VkaXRpbmc6ImVudGVyQmVnaW5zRWRpdGluZyIsZW50ZXJNb3ZlczoiZW50ZXJNb3ZlcyIsZmlsbEhhbmRsZToiZmlsbEhhbmRsZSIsZmlsdGVyOiJmaWx0ZXIiLGZpbHRl'@; put 'cmluZ0Nhc2VTZW5zaXRpdmU6ImZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUiLGZpbHRlcnM6ImZpbHRlcnMiLGZpeGVkQ29sdW1uc0xlZnQ6ImZpeGVkQ29sdW1uc0xlZnQiLGZpeGVkQ29sdW1uc1N0YXJ0OiJmaXhlZENvbHVtbnNTdGFydCIsZml4ZWRSb3dzQm90dG9tOiJmaXhlZFJvd3NCb3R0'@; put 'b20iLGZpeGVkUm93c1RvcDoiZml4ZWRSb3dzVG9wIixmb3JtdWxhczoiZm9ybXVsYXMiLGZyYWdtZW50U2VsZWN0aW9uOiJmcmFnbWVudFNlbGVjdGlvbiIsaGVpZ2h0OiJoZWlnaHQiLGhpZGRlbkNvbHVtbnM6ImhpZGRlbkNvbHVtbnMiLGhpZGRlblJvd3M6ImhpZGRlblJvd3MiLGludmFs'@; put 'aWRDZWxsQ2xhc3NOYW1lOiJpbnZhbGlkQ2VsbENsYXNzTmFtZSIsbGFiZWw6ImxhYmVsIixsYW5ndWFnZToibGFuZ3VhZ2UiLGxheW91dERpcmVjdGlvbjoibGF5b3V0RGlyZWN0aW9uIixsaWNlbnNlS2V5OiJsaWNlbnNlS2V5Iixsb2NhbGU6ImxvY2FsZSIsbWFudWFsQ29sdW1uRnJlZXpl'@; put 'OiJtYW51YWxDb2x1bW5GcmVlemUiLG1hbnVhbENvbHVtbk1vdmU6Im1hbnVhbENvbHVtbk1vdmUiLG1hbnVhbENvbHVtblJlc2l6ZToibWFudWFsQ29sdW1uUmVzaXplIixtYW51YWxSb3dNb3ZlOiJtYW51YWxSb3dNb3ZlIixtYW51YWxSb3dSZXNpemU6Im1hbnVhbFJvd1Jlc2l6ZSIsbWF4'@; put 'Q29sczoibWF4Q29scyIsbWF4Um93czoibWF4Um93cyIsbWVyZ2VDZWxsczoibWVyZ2VDZWxscyIsbWluQ29sczoibWluQ29scyIsbWluUm93czoibWluUm93cyIsbWluU3BhcmVDb2xzOiJtaW5TcGFyZUNvbHMiLG1pblNwYXJlUm93czoibWluU3BhcmVSb3dzIixtdWx0aUNvbHVtblNvcnRp'@; put 'bmc6Im11bHRpQ29sdW1uU29ydGluZyIsbmVzdGVkSGVhZGVyczoibmVzdGVkSGVhZGVycyIsbmVzdGVkUm93czoibmVzdGVkUm93cyIsbm9Xb3JkV3JhcENsYXNzTmFtZToibm9Xb3JkV3JhcENsYXNzTmFtZSIsbnVtZXJpY0Zvcm1hdDoibnVtZXJpY0Zvcm1hdCIsb2JzZXJ2ZURPTVZpc2li'@; put 'aWxpdHk6Im9ic2VydmVET01WaXNpYmlsaXR5IixvdXRzaWRlQ2xpY2tEZXNlbGVjdHM6Im91dHNpZGVDbGlja0Rlc2VsZWN0cyIscGVyc2lzdGVudFN0YXRlOiJwZXJzaXN0ZW50U3RhdGUiLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIscGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lOiJwbGFj'@; put 'ZWhvbGRlckNlbGxDbGFzc05hbWUiLHByZXZlbnRPdmVyZmxvdzoicHJldmVudE92ZXJmbG93IixwcmV2ZW50V2hlZWw6InByZXZlbnRXaGVlbCIscmVhZE9ubHk6InJlYWRPbmx5IixyZWFkT25seUNlbGxDbGFzc05hbWU6InJlYWRPbmx5Q2VsbENsYXNzTmFtZSIscmVuZGVyQWxsUm93czoi'@; put 'cmVuZGVyQWxsUm93cyIscmVuZGVyZXI6InJlbmRlcmVyIixyb3dIZWFkZXJzOiJyb3dIZWFkZXJzIixyb3dIZWFkZXJXaWR0aDoicm93SGVhZGVyV2lkdGgiLHJvd0hlaWdodHM6InJvd0hlaWdodHMiLHNlYXJjaDoic2VhcmNoIixzZWxlY3Rpb25Nb2RlOiJzZWxlY3Rpb25Nb2RlIixzZWxl'@; put 'Y3RPcHRpb25zOiJzZWxlY3RPcHRpb25zIixza2lwQ29sdW1uT25QYXN0ZToic2tpcENvbHVtbk9uUGFzdGUiLHNraXBSb3dPblBhc3RlOiJza2lwUm93T25QYXN0ZSIsc29ydEJ5UmVsZXZhbmNlOiJzb3J0QnlSZWxldmFuY2UiLHNvdXJjZToic291cmNlIixzdGFydENvbHM6InN0YXJ0Q29s'@; put 'cyIsc3RhcnRSb3dzOiJzdGFydFJvd3MiLHN0cmV0Y2hIOiJzdHJldGNoSCIsc3RyaWN0OiJzdHJpY3QiLHRhYmxlQ2xhc3NOYW1lOiJ0YWJsZUNsYXNzTmFtZSIsdGFiTW92ZXM6InRhYk1vdmVzIix0aXRsZToidGl0bGUiLHRyaW1Ecm9wZG93bjoidHJpbURyb3Bkb3duIix0cmltUm93czoi'@; put 'dHJpbVJvd3MiLHRyaW1XaGl0ZXNwYWNlOiJ0cmltV2hpdGVzcGFjZSIsdHlwZToidHlwZSIsdW5jaGVja2VkVGVtcGxhdGU6InVuY2hlY2tlZFRlbXBsYXRlIix1bmRvOiJ1bmRvIix2YWxpZGF0b3I6InZhbGlkYXRvciIsdmlld3BvcnRDb2x1bW5SZW5kZXJpbmdPZmZzZXQ6InZpZXdwb3J0'@; put 'Q29sdW1uUmVuZGVyaW5nT2Zmc2V0Iix2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDoidmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQiLHZpc2libGVSb3dzOiJ2aXNpYmxlUm93cyIsd2lkdGg6IndpZHRoIix3b3JkV3JhcDoid29yZFdyYXAiLGFmdGVyQWRkQ2hpbGQ6ImFmdGVyQWRkQ2hp'@; put 'bGQiLGFmdGVyQXV0b2ZpbGw6ImFmdGVyQXV0b2ZpbGwiLGFmdGVyQmVnaW5FZGl0aW5nOiJhZnRlckJlZ2luRWRpdGluZyIsYWZ0ZXJDZWxsTWV0YVJlc2V0OiJhZnRlckNlbGxNZXRhUmVzZXQiLGFmdGVyQ2hhbmdlOiJhZnRlckNoYW5nZSIsYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6ImFmdGVy'@; put 'Q2hhbmdlc09ic2VydmVkIixhZnRlckNvbHVtbkNvbGxhcHNlOiJhZnRlckNvbHVtbkNvbGxhcHNlIixhZnRlckNvbHVtbkV4cGFuZDoiYWZ0ZXJDb2x1bW5FeHBhbmQiLGFmdGVyQ29sdW1uRnJlZXplOiJhZnRlckNvbHVtbkZyZWV6ZSIsYWZ0ZXJDb2x1bW5Nb3ZlOiJhZnRlckNvbHVtbk1v'@; put 'dmUiLGFmdGVyQ29sdW1uUmVzaXplOiJhZnRlckNvbHVtblJlc2l6ZSIsYWZ0ZXJDb2x1bW5TZXF1ZW5jZUNoYW5nZToiYWZ0ZXJDb2x1bW5TZXF1ZW5jZUNoYW5nZSIsYWZ0ZXJDb2x1bW5Tb3J0OiJhZnRlckNvbHVtblNvcnQiLGFmdGVyQ29sdW1uVW5mcmVlemU6ImFmdGVyQ29sdW1uVW5m'@; put 'cmVlemUiLGFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9uczoiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixhZnRlckNvbnRleHRNZW51SGlkZToiYWZ0ZXJDb250ZXh0TWVudUhpZGUiLGFmdGVyQ29udGV4dE1lbnVTaG93OiJhZnRlckNvbnRleHRNZW51U2hvdyIsYWZ0ZXJD'@; put 'b3B5OiJhZnRlckNvcHkiLGFmdGVyQ29weUxpbWl0OiJhZnRlckNvcHlMaW1pdCIsYWZ0ZXJDcmVhdGVDb2w6ImFmdGVyQ3JlYXRlQ29sIixhZnRlckNyZWF0ZVJvdzoiYWZ0ZXJDcmVhdGVSb3ciLGFmdGVyQ3V0OiJhZnRlckN1dCIsYWZ0ZXJEZXNlbGVjdDoiYWZ0ZXJEZXNlbGVjdCIsYWZ0'@; put 'ZXJEZXN0cm95OiJhZnRlckRlc3Ryb3kiLGFmdGVyRGV0YWNoQ2hpbGQ6ImFmdGVyRGV0YWNoQ2hpbGQiLGFmdGVyRG9jdW1lbnRLZXlEb3duOiJhZnRlckRvY3VtZW50S2V5RG93biIsYWZ0ZXJEcmF3U2VsZWN0aW9uOiJhZnRlckRyYXdTZWxlY3Rpb24iLGFmdGVyRHJvcGRvd25NZW51RGVm'@; put 'YXVsdE9wdGlvbnM6ImFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMiLGFmdGVyRHJvcGRvd25NZW51SGlkZToiYWZ0ZXJEcm9wZG93bk1lbnVIaWRlIixhZnRlckRyb3Bkb3duTWVudVNob3c6ImFmdGVyRHJvcGRvd25NZW51U2hvdyIsYWZ0ZXJGaWx0ZXI6ImFmdGVyRmlsdGVyIixh'@; put 'ZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlOiJhZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlIixhZnRlckdldENlbGxNZXRhOiJhZnRlckdldENlbGxNZXRhIixhZnRlckdldENvbEhlYWRlcjoiYWZ0ZXJHZXRDb2xIZWFkZXIiLGFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzOiJhZnRlckdl'@; put 'dENvbHVtbkhlYWRlclJlbmRlcmVycyIsYWZ0ZXJHZXRSb3dIZWFkZXI6ImFmdGVyR2V0Um93SGVhZGVyIixhZnRlckdldFJvd0hlYWRlclJlbmRlcmVyczoiYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnMiLGFmdGVySGlkZUNvbHVtbnM6ImFmdGVySGlkZUNvbHVtbnMiLGFmdGVySGlkZVJv'@; put 'd3M6ImFmdGVySGlkZVJvd3MiLGFmdGVySW5pdDoiYWZ0ZXJJbml0IixhZnRlckxhbmd1YWdlQ2hhbmdlOiJhZnRlckxhbmd1YWdlQ2hhbmdlIixhZnRlckxpc3RlbjoiYWZ0ZXJMaXN0ZW4iLGFmdGVyTG9hZERhdGE6ImFmdGVyTG9hZERhdGEiLGFmdGVyTWVyZ2VDZWxsczoiYWZ0ZXJNZXJn'@; put 'ZUNlbGxzIixhZnRlck1vZGlmeVRyYW5zZm9ybUVuZDoiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1FbmQiLGFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQ6ImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLGFmdGVyTW9tZW50dW1TY3JvbGw6ImFmdGVyTW9tZW50dW1TY3JvbGwiLGFmdGVyTmFtZWRF'@; put 'eHByZXNzaW9uQWRkZWQ6ImFmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQiLGFmdGVyTmFtZWRFeHByZXNzaW9uUmVtb3ZlZDoiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIixhZnRlck9uQ2VsbENvbnRleHRNZW51OiJhZnRlck9uQ2VsbENvbnRleHRNZW51IixhZnRlck9uQ2VsbENvcm5l'@; put 'ckRibENsaWNrOiJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIixhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93bjoiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURvd24iLGFmdGVyT25DZWxsTW91c2VEb3duOiJhZnRlck9uQ2VsbE1vdXNlRG93biIsYWZ0ZXJPbkNlbGxNb3VzZU91dDoiYWZ0ZXJP'@; put 'bkNlbGxNb3VzZU91dCIsYWZ0ZXJPbkNlbGxNb3VzZU92ZXI6ImFmdGVyT25DZWxsTW91c2VPdmVyIixhZnRlck9uQ2VsbE1vdXNlVXA6ImFmdGVyT25DZWxsTW91c2VVcCIsYWZ0ZXJQYXN0ZToiYWZ0ZXJQYXN0ZSIsYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQ6ImFmdGVyUGx1Z2luc0luaXRp'@; put 'YWxpemVkIixhZnRlclJlZG86ImFmdGVyUmVkbyIsYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6ImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixhZnRlclJlZnJlc2hEaW1lbnNpb25zOiJhZnRlclJlZnJlc2hEaW1lbnNpb25zIixhZnRlclJlbW92ZUNlbGxNZXRhOiJhZnRlclJlbW92ZUNlbGxNZXRhIixh'@; put 'ZnRlclJlbW92ZUNvbDoiYWZ0ZXJSZW1vdmVDb2wiLGFmdGVyUmVtb3ZlUm93OiJhZnRlclJlbW92ZVJvdyIsYWZ0ZXJSZW5kZXI6ImFmdGVyUmVuZGVyIixhZnRlclJlbmRlcmVyOiJhZnRlclJlbmRlcmVyIixhZnRlclJvd01vdmU6ImFmdGVyUm93TW92ZSIsYWZ0ZXJSb3dSZXNpemU6ImFm'@; put 'dGVyUm93UmVzaXplIixhZnRlclJvd1NlcXVlbmNlQ2hhbmdlOiJhZnRlclJvd1NlcXVlbmNlQ2hhbmdlIixhZnRlclNjcm9sbEhvcml6b250YWxseToiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLGFmdGVyU2Nyb2xsVmVydGljYWxseToiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IixhZnRlclNl'@; put 'bGVjdGlvbjoiYWZ0ZXJTZWxlY3Rpb24iLGFmdGVyU2VsZWN0aW9uQnlQcm9wOiJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsYWZ0ZXJTZWxlY3Rpb25FbmQ6ImFmdGVyU2VsZWN0aW9uRW5kIixhZnRlclNlbGVjdGlvbkVuZEJ5UHJvcDoiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLGFmdGVyU2V0'@; put 'Q2VsbE1ldGE6ImFmdGVyU2V0Q2VsbE1ldGEiLGFmdGVyU2V0RGF0YUF0Q2VsbDoiYWZ0ZXJTZXREYXRhQXRDZWxsIixhZnRlclNldERhdGFBdFJvd1Byb3A6ImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiJhZnRlclNldFNvdXJjZURhdGFBdENlbGwi'@; put 'LGFmdGVyU2hlZXRBZGRlZDoiYWZ0ZXJTaGVldEFkZGVkIixhZnRlclNoZWV0UmVuYW1lZDoiYWZ0ZXJTaGVldFJlbmFtZWQiLGFmdGVyU2hlZXRSZW1vdmVkOiJhZnRlclNoZWV0UmVtb3ZlZCIsYWZ0ZXJUcmltUm93OiJhZnRlclRyaW1Sb3ciLGFmdGVyVW5kbzoiYWZ0ZXJVbmRvIixhZnRl'@; put 'clVuZG9TdGFja0NoYW5nZToiYWZ0ZXJVbmRvU3RhY2tDaGFuZ2UiLGFmdGVyVW5oaWRlQ29sdW1uczoiYWZ0ZXJVbmhpZGVDb2x1bW5zIixhZnRlclVuaGlkZVJvd3M6ImFmdGVyVW5oaWRlUm93cyIsYWZ0ZXJVbmxpc3RlbjoiYWZ0ZXJVbmxpc3RlbiIsYWZ0ZXJVbm1lcmdlQ2VsbHM6ImFm'@; put 'dGVyVW5tZXJnZUNlbGxzIixhZnRlclVudHJpbVJvdzoiYWZ0ZXJVbnRyaW1Sb3ciLGFmdGVyVXBkYXRlRGF0YToiYWZ0ZXJVcGRhdGVEYXRhIixhZnRlclVwZGF0ZVNldHRpbmdzOiJhZnRlclVwZGF0ZVNldHRpbmdzIixhZnRlclZhbGlkYXRlOiJhZnRlclZhbGlkYXRlIixhZnRlclZpZXdw'@; put 'b3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlOiJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIixhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixhZnRlclZpZXdSZW5kZXI6ImFmdGVyVmll'@; put 'd1JlbmRlciIsYmVmb3JlQWRkQ2hpbGQ6ImJlZm9yZUFkZENoaWxkIixiZWZvcmVBdXRvZmlsbDoiYmVmb3JlQXV0b2ZpbGwiLGJlZm9yZUNlbGxBbGlnbm1lbnQ6ImJlZm9yZUNlbGxBbGlnbm1lbnQiLGJlZm9yZUNoYW5nZToiYmVmb3JlQ2hhbmdlIixiZWZvcmVDaGFuZ2VSZW5kZXI6ImJl'@; put 'Zm9yZUNoYW5nZVJlbmRlciIsYmVmb3JlQ29sdW1uQ29sbGFwc2U6ImJlZm9yZUNvbHVtbkNvbGxhcHNlIixiZWZvcmVDb2x1bW5FeHBhbmQ6ImJlZm9yZUNvbHVtbkV4cGFuZCIsYmVmb3JlQ29sdW1uRnJlZXplOiJiZWZvcmVDb2x1bW5GcmVlemUiLGJlZm9yZUNvbHVtbk1vdmU6ImJlZm9y'@; put 'ZUNvbHVtbk1vdmUiLGJlZm9yZUNvbHVtblJlc2l6ZToiYmVmb3JlQ29sdW1uUmVzaXplIixiZWZvcmVDb2x1bW5Tb3J0OiJiZWZvcmVDb2x1bW5Tb3J0IixiZWZvcmVDb2x1bW5VbmZyZWV6ZToiYmVmb3JlQ29sdW1uVW5mcmVlemUiLGJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXM6ImJlZm9y'@; put 'ZUNvbnRleHRNZW51U2V0SXRlbXMiLGJlZm9yZUNvbnRleHRNZW51U2hvdzoiYmVmb3JlQ29udGV4dE1lbnVTaG93IixiZWZvcmVDb3B5OiJiZWZvcmVDb3B5IixiZWZvcmVDcmVhdGVDb2w6ImJlZm9yZUNyZWF0ZUNvbCIsYmVmb3JlQ3JlYXRlUm93OiJiZWZvcmVDcmVhdGVSb3ciLGJlZm9y'@; put 'ZUN1dDoiYmVmb3JlQ3V0IixiZWZvcmVEZXRhY2hDaGlsZDoiYmVmb3JlRGV0YWNoQ2hpbGQiLGJlZm9yZURyYXdCb3JkZXJzOiJiZWZvcmVEcmF3Qm9yZGVycyIsYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6ImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixiZWZvcmVEcm9wZG93bk1l'@; put 'bnVTaG93OiJiZWZvcmVEcm9wZG93bk1lbnVTaG93IixiZWZvcmVGaWx0ZXI6ImJlZm9yZUZpbHRlciIsYmVmb3JlR2V0Q2VsbE1ldGE6ImJlZm9yZUdldENlbGxNZXRhIixiZWZvcmVIaWRlQ29sdW1uczoiYmVmb3JlSGlkZUNvbHVtbnMiLGJlZm9yZUhpZGVSb3dzOiJiZWZvcmVIaWRlUm93'@; put 'cyIsYmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyOiJiZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXIiLGJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlcjoiYmVmb3JlSGlnaGxpZ2h0aW5nUm93SGVhZGVyIixiZWZvcmVJbml0OiJiZWZvcmVJbml0IixiZWZvcmVJbml0V2Fsa29u'@; put 'dGFibGU6ImJlZm9yZUluaXRXYWxrb250YWJsZSIsYmVmb3JlS2V5RG93bjoiYmVmb3JlS2V5RG93biIsYmVmb3JlTGFuZ3VhZ2VDaGFuZ2U6ImJlZm9yZUxhbmd1YWdlQ2hhbmdlIixiZWZvcmVMb2FkRGF0YToiYmVmb3JlTG9hZERhdGEiLGJlZm9yZU1lcmdlQ2VsbHM6ImJlZm9yZU1lcmdl'@; put 'Q2VsbHMiLGJlZm9yZU9uQ2VsbENvbnRleHRNZW51OiJiZWZvcmVPbkNlbGxDb250ZXh0TWVudSIsYmVmb3JlT25DZWxsTW91c2VEb3duOiJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGJlZm9yZU9uQ2VsbE1vdXNlT3V0OiJiZWZvcmVPbkNlbGxNb3VzZU91dCIsYmVmb3JlT25DZWxsTW91c2VP'@; put 'dmVyOiJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLGJlZm9yZU9uQ2VsbE1vdXNlVXA6ImJlZm9yZU9uQ2VsbE1vdXNlVXAiLGJlZm9yZVBhc3RlOiJiZWZvcmVQYXN0ZSIsYmVmb3JlUmVkbzoiYmVmb3JlUmVkbyIsYmVmb3JlUmVkb1N0YWNrQ2hhbmdlOiJiZWZvcmVSZWRvU3RhY2tDaGFuZ2Ui'@; put 'LGJlZm9yZVJlZnJlc2hEaW1lbnNpb25zOiJiZWZvcmVSZWZyZXNoRGltZW5zaW9ucyIsYmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXM6ImJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzIixiZWZvcmVSZW1vdmVDZWxsTWV0YToiYmVmb3JlUmVtb3ZlQ2VsbE1ldGEiLGJlZm9yZVJlbW92ZUNv'@; put 'bDoiYmVmb3JlUmVtb3ZlQ29sIixiZWZvcmVSZW1vdmVSb3c6ImJlZm9yZVJlbW92ZVJvdyIsYmVmb3JlUmVuZGVyOiJiZWZvcmVSZW5kZXIiLGJlZm9yZVJlbmRlcmVyOiJiZWZvcmVSZW5kZXJlciIsYmVmb3JlUm93TW92ZToiYmVmb3JlUm93TW92ZSIsYmVmb3JlUm93UmVzaXplOiJiZWZv'@; put 'cmVSb3dSZXNpemUiLGJlZm9yZVNldENlbGxNZXRhOiJiZWZvcmVTZXRDZWxsTWV0YSIsYmVmb3JlU2V0UmFuZ2VFbmQ6ImJlZm9yZVNldFJhbmdlRW5kIixiZWZvcmVTZXRSYW5nZVN0YXJ0OiJiZWZvcmVTZXRSYW5nZVN0YXJ0IixiZWZvcmVTZXRSYW5nZVN0YXJ0T25seToiYmVmb3JlU2V0'@; put 'UmFuZ2VTdGFydE9ubHkiLGJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aDoiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixiZWZvcmVUb3VjaFNjcm9sbDoiYmVmb3JlVG91Y2hTY3JvbGwiLGJlZm9yZVRyaW1Sb3c6ImJlZm9yZVRyaW1Sb3ciLGJlZm9yZVVuZG86ImJlZm9yZVVuZG8i'@; put 'LGJlZm9yZVVuZG9TdGFja0NoYW5nZToiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixiZWZvcmVVbmhpZGVDb2x1bW5zOiJiZWZvcmVVbmhpZGVDb2x1bW5zIixiZWZvcmVVbmhpZGVSb3dzOiJiZWZvcmVVbmhpZGVSb3dzIixiZWZvcmVVbm1lcmdlQ2VsbHM6ImJlZm9yZVVubWVyZ2VDZWxscyIs'@; put 'YmVmb3JlVW50cmltUm93OiJiZWZvcmVVbnRyaW1Sb3ciLGJlZm9yZVVwZGF0ZURhdGE6ImJlZm9yZVVwZGF0ZURhdGEiLGJlZm9yZVZhbGlkYXRlOiJiZWZvcmVWYWxpZGF0ZSIsYmVmb3JlVmFsdWVSZW5kZXI6ImJlZm9yZVZhbHVlUmVuZGVyIixiZWZvcmVWaWV3UmVuZGVyOiJiZWZvcmVW'@; put 'aWV3UmVuZGVyIixjb25zdHJ1Y3Q6ImNvbnN0cnVjdCIsaW5pdDoiaW5pdCIsbW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkOiJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiLG1vZGlmeUF1dG9maWxsUmFuZ2U6Im1vZGlmeUF1dG9maWxsUmFuZ2UiLG1vZGlmeUNvbEhlYWRlcjoibW9kaWZ5Q29s'@; put 'SGVhZGVyIixtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQ6Im1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsbW9kaWZ5Q29sdW1uSGVhZGVyVmFsdWU6Im1vZGlmeUNvbHVtbkhlYWRlclZhbHVlIixtb2RpZnlDb2xXaWR0aDoibW9kaWZ5Q29sV2lkdGgiLG1vZGlmeUNvcHlhYmxlUmFuZ2U6Im1v'@; put 'ZGlmeUNvcHlhYmxlUmFuZ2UiLG1vZGlmeURhdGE6Im1vZGlmeURhdGEiLG1vZGlmeUdldENlbGxDb29yZHM6Im1vZGlmeUdldENlbGxDb29yZHMiLG1vZGlmeVJvd0RhdGE6Im1vZGlmeVJvd0RhdGEiLG1vZGlmeVJvd0hlYWRlcjoibW9kaWZ5Um93SGVhZGVyIixtb2RpZnlSb3dIZWFkZXJX'@; put 'aWR0aDoibW9kaWZ5Um93SGVhZGVyV2lkdGgiLG1vZGlmeVJvd0hlaWdodDoibW9kaWZ5Um93SGVpZ2h0Iixtb2RpZnlTb3VyY2VEYXRhOiJtb2RpZnlTb3VyY2VEYXRhIixtb2RpZnlUcmFuc2Zvcm1FbmQ6Im1vZGlmeVRyYW5zZm9ybUVuZCIsbW9kaWZ5VHJhbnNmb3JtU3RhcnQ6Im1vZGlm'@; put 'eVRyYW5zZm9ybVN0YXJ0IixwZXJzaXN0ZW50U3RhdGVMb2FkOiJwZXJzaXN0ZW50U3RhdGVMb2FkIixwZXJzaXN0ZW50U3RhdGVSZXNldDoicGVyc2lzdGVudFN0YXRlUmVzZXQiLHBlcnNpc3RlbnRTdGF0ZVNhdmU6InBlcnNpc3RlbnRTdGF0ZVNhdmUifSxmZWF0dXJlczpbdGkoW0FnLEtu'@; put 'ZV0pLHZhXSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1szLCJpZCJdLFsiY29udGFpbmVyIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiZxdCgwLCJkaXYiLDAsMSksMiZhJiZSZSgiaWQiLGQuaG90SWQpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxfNz0oKCk9PntjbGFzcyBj'@; put 'e3N0YXRpYyBmb3JSb290KCl7cmV0dXJue25nTW9kdWxlOmMscHJvdmlkZXJzOltBZ119fX1yZXR1cm4gYy52ZXJzaW9uPSIxMy4xLjAiLGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7fSks'@; put 'Y30pKCk7Y29uc3QgWG5lPSJoYW5kc29udGFibGVFZGl0b3IiO2NsYXNzIHFCIGV4dGVuZHMga2d7c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJoYW5kc29udGFibGUifW9wZW4oKXtzdXBlci5vcGVuKCksdGhpcy5odEVkaXRvciYmdGhpcy5odEVkaXRvci5kZXN0cm95KCksIm5v'@; put 'bmUiPT09dGhpcy5odENvbnRhaW5lci5zdHlsZS5kaXNwbGF5JiYodGhpcy5odENvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSIiKSx0aGlzLmh0RWRpdG9yPW5ldyB0aGlzLmhvdC5jb25zdHJ1Y3Rvcih0aGlzLmh0Q29udGFpbmVyLHRoaXMuaHRPcHRpb25zKSx0aGlzLmh0RWRpdG9yLmluaXQo'@; put 'KSx0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5jZWxsUHJvcGVydGllcy5zdHJpY3Q/dGhpcy5odEVkaXRvci5zZWxlY3RDZWxsKDAsMCk6dGhpcy5odEVkaXRvci5kZXNlbGVjdENlbGwoKSxveSh0aGlzLlRFWFRBUkVBLDAsdGhpcy5URVhUQVJFQS52'@; put 'YWx1ZS5sZW5ndGgpLHRoaXMucmVmcmVzaERpbWVuc2lvbnMoKX1jbG9zZSgpe3RoaXMuaHRFZGl0b3ImJih0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImJlZm9yZUtleURvd24iKSxzdXBlci5jbG9zZSgpfXBy'@; put 'ZXBhcmUobCxhLGQsaCxmLF8pe3N1cGVyLnByZXBhcmUobCxhLGQsaCxmLF8pO2NvbnN0IFQ9dGhpcyxXPXtzdGFydFJvd3M6MCxzdGFydENvbHM6MCxtaW5Sb3dzOjAsbWluQ29sczowLGNsYXNzTmFtZToibGlzdGJveCIsY29weVBhc3RlOiExLGF1dG9Db2x1bW5TaXplOiExLGF1dG9Sb3dT'@; put 'aXplOiExLHJlYWRPbmx5OiEwLGZpbGxIYW5kbGU6ITEsYXV0b1dyYXBDb2w6ITEsYXV0b1dyYXBSb3c6ITEsYWZ0ZXJPbkNlbGxNb3VzZURvd24oaWUscGUpe2NvbnN0IHdlPXRoaXMuZ2V0U291cmNlRGF0YShwZS5yb3cscGUuY29sKTt2b2lkIDAhPT13ZSYmVC5zZXRWYWx1ZSh3ZSksVC5p'@; put 'bnN0YW5jZS5kZXN0cm95RWRpdG9yKCl9LHByZXZlbnRXaGVlbDohMCxsYXlvdXREaXJlY3Rpb246dGhpcy5ob3QuaXNSdGwoKT8icnRsIjoibHRyIn07dGhpcy5jZWxsUHJvcGVydGllcy5oYW5kc29udGFibGUmJlhsKFcsXy5oYW5kc29udGFibGUpLHRoaXMuaHRPcHRpb25zPVd9YmVnaW5F'@; put 'ZGl0aW5nKGwsYSl7Y29uc3QgZD10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm9uQmVnaW5FZGl0aW5nO2QmJiExPT09ZCgpfHxzdXBlci5iZWdpbkVkaXRpbmcobCxhKX1jcmVhdGVFbGVtZW50cygpe3N1cGVyLmNyZWF0ZUVsZW1lbnRzKCk7Y29uc3QgbD10aGlzLmhvdC5yb290RG9jdW1lbnQu'@; put 'Y3JlYXRlRWxlbWVudCgiRElWIik7bC5jbGFzc05hbWU9ImhhbmRzb250YWJsZUVkaXRvciIsdGhpcy5URVhUQVJFQV9QQVJFTlQuYXBwZW5kQ2hpbGQobCksdGhpcy5odENvbnRhaW5lcj1sLHRoaXMuYXNzaWduSG9va3MoKX1maW5pc2hFZGl0aW5nKGwsYSxkKXtpZih0aGlzLmh0RWRpdG9y'@; put 'JiZ0aGlzLmh0RWRpdG9yLmlzTGlzdGVuaW5nKCkmJnRoaXMuaG90Lmxpc3RlbigpLHRoaXMuaHRFZGl0b3ImJnRoaXMuaHRFZGl0b3IuZ2V0U2VsZWN0ZWRMYXN0KCkpe2NvbnN0IGg9dGhpcy5odEVkaXRvci5nZXRJbnN0YW5jZSgpLmdldFZhbHVlKCk7dm9pZCAwIT09aCYmdGhpcy5zZXRW'@; put 'YWx1ZShoKX1zdXBlci5maW5pc2hFZGl0aW5nKGwsYSxkKX1hc3NpZ25Ib29rcygpe3RoaXMuaG90LmFkZEhvb2soImFmdGVyRGVzdHJveSIsKCk9Pnt0aGlzLmh0RWRpdG9yJiZ0aGlzLmh0RWRpdG9yLmRlc3Ryb3koKX0pfXJlZ2lzdGVyU2hvcnRjdXRzKCl7Y29uc3QgYT10aGlzLmhvdC5n'@; put 'ZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKTtzdXBlci5yZWdpc3RlclNob3J0Y3V0cygpO2NvbnN0IGg9KGYsXyk9Pntjb25zdCBUPXRoaXMuaHRFZGl0b3IuZ2V0SW5zdGFuY2UoKTtpZih2b2lkIDAhPT1mJiYoZjwwfHxULmZsaXBwZWQmJmY+VC5jb3VudFJvd3Mo'@; put 'KS0xP1QuZGVzZWxlY3RDZWxsKCk6VC5zZWxlY3RDZWxsKGYsMCksVC5nZXREYXRhKCkubGVuZ3RoKSlyZXR1cm4gXy5wcmV2ZW50RGVmYXVsdCgpLHYyKF8pLHRoaXMuaG90Lmxpc3RlbigpLHRoaXMuVEVYVEFSRUEuZm9jdXMoKSwhMX07YS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkFycm93'@; put 'VXAiXV0sY2FsbGJhY2s6Zj0+e2NvbnN0IF89dGhpcy5odEVkaXRvci5nZXRJbnN0YW5jZSgpO2xldCBULFc7cmV0dXJuIV8uZ2V0U2VsZWN0ZWRMYXN0KCkmJl8uZmxpcHBlZD9UPV8uY291bnRSb3dzKCktMTpfLmdldFNlbGVjdGVkTGFzdCgpJiYoXy5mbGlwcGVkPyhXPV8uZ2V0U2VsZWN0'@; put 'ZWRMYXN0KClbMF0sVD1NYXRoLm1heCgwLFctMSkpOihXPV8uZ2V0U2VsZWN0ZWRMYXN0KClbMF0sVD1XLTEpKSxoKFQsZil9LHByZXZlbnREZWZhdWx0OiExfSx7a2V5czpbWyJBcnJvd0Rvd24iXV0sY2FsbGJhY2s6Zj0+e2NvbnN0IF89dGhpcy5odEVkaXRvci5nZXRJbnN0YW5jZSgpO2xl'@; put 'dCBULFc7aWYoXy5nZXRTZWxlY3RlZExhc3QoKXx8Xy5mbGlwcGVkKXtpZihfLmdldFNlbGVjdGVkTGFzdCgpKWlmKF8uZmxpcHBlZClUPV8uZ2V0U2VsZWN0ZWRMYXN0KClbMF0rMTtlbHNlIGlmKCFfLmZsaXBwZWQpe2NvbnN0IGllPV8uY291bnRSb3dzKCktMTtXPV8uZ2V0U2VsZWN0ZWRM'@; put 'YXN0KClbMF0sVD1NYXRoLm1pbihpZSxXKzEpfX1lbHNlIFQ9MDtyZXR1cm4gaChULGYpfSxwcmV2ZW50RGVmYXVsdDohMX1dLHtncm91cDpYbmUscmVsYXRpdmVUb0dyb3VwOm1rLHBvc2l0aW9uOiJiZWZvcmUifSl9dW5yZWdpc3RlclNob3J0Y3V0cygpe3N1cGVyLnVucmVnaXN0ZXJTaG9y'@; put 'dGN1dHMoKSx0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKFhuZSl9fWNvbnN0IEtCPW5ldyBXZWFrTWFwO2NsYXNzIFhCIGV4dGVuZHMgcUJ7c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJhdXRv'@; put 'Y29tcGxldGUifWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLGZ1bmN0aW9uIGFJZShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gbEllKGMpe3ZhciBsPWZ1bmN0aW9uIGNJZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9Qcmlt'@; put 'aXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmci'@; put 'PT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNb'@; put 'bF09YSxjfSh0aGlzLCJzb3J0QnlSZWxldmFuY2UiLGZ1bmN0aW9uKGEsZCxoKXtjb25zdCBmPVtdLF89W10sVD1hLmxlbmd0aDtsZXQgaWUscGUsd2UsRWUsVz1kLmxlbmd0aDtpZigwPT09VCl7Zm9yKHdlPTA7d2U8Vzt3ZSsrKV8ucHVzaCh3ZSk7cmV0dXJuIF99Zm9yKHdlPTA7d2U8Vzt3'@; put 'ZSsrKXtpZihwZT11TihfbChkW3dlXSkpLGgpRWU9cGUuaW5kZXhPZihhKTtlbHNle2NvbnN0IFplPXRoaXMuY2VsbFByb3BlcnRpZXMubG9jYWxlO0VlPXBlLnRvTG9jYWxlTG93ZXJDYXNlKFplKS5pbmRleE9mKGEudG9Mb2NhbGVMb3dlckNhc2UoWmUpKX0tMSE9PUVlJiYoaWU9cGUubGVu'@; put 'Z3RoLUVlLVQsZi5wdXNoKHtiYXNlSW5kZXg6d2UsaW5kZXg6RWUsY2hhcnNMZWZ0OmllLHZhbHVlOnBlfSkpfWZvcihmLnNvcnQoKFplLGl0KT0+e2lmKC0xPT09aXQuaW5kZXgpcmV0dXJuLTE7aWYoLTE9PT1aZS5pbmRleClyZXR1cm4gMTtpZihaZS5pbmRleDxpdC5pbmRleClyZXR1cm4t'@; put 'MTtpZihpdC5pbmRleDxaZS5pbmRleClyZXR1cm4gMTtpZihaZS5pbmRleD09PWl0LmluZGV4KXtpZihaZS5jaGFyc0xlZnQ8aXQuY2hhcnNMZWZ0KXJldHVybi0xO2lmKFplLmNoYXJzTGVmdD5pdC5jaGFyc0xlZnQpcmV0dXJuIDF9cmV0dXJuIDB9KSx3ZT0wLFc9Zi5sZW5ndGg7d2U8Vzt3'@; put 'ZSsrKV8ucHVzaChmW3dlXS5iYXNlSW5kZXgpO3JldHVybiBffSksdGhpcy5xdWVyeT1udWxsLHRoaXMuc3RyaXBwZWRDaG9pY2VzPVtdLHRoaXMucmF3Q2hvaWNlcz1bXSxLQi5zZXQodGhpcyx7c2tpcE9uZTohMSxpc01hY09TOnRoaXMuaG90LnJvb3RXaW5kb3cubmF2aWdhdG9yLnBsYXRm'@; put 'b3JtLmluZGV4T2YoIk1hYyIpPi0xfSl9Z2V0VmFsdWUoKXtjb25zdCBsPXRoaXMucmF3Q2hvaWNlcy5maW5kKGE9PnRoaXMuc3RyaXBWYWx1ZUlmTmVlZGVkKGEpPT09dGhpcy5URVhUQVJFQS52YWx1ZSk7cmV0dXJuIEtpKGwpP2w6dGhpcy5URVhUQVJFQS52YWx1ZX1jcmVhdGVFbGVtZW50'@; put 'cygpe3N1cGVyLmNyZWF0ZUVsZW1lbnRzKCkscGkodGhpcy5odENvbnRhaW5lciwiYXV0b2NvbXBsZXRlRWRpdG9yIikscGkodGhpcy5odENvbnRhaW5lciwtMT09PXRoaXMuaG90LnJvb3RXaW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoIk1hYyIpPyIiOiJodE1hY1Njcm9sbCIp'@; put 'fW9wZW4oKXtjb25zdCBsPUtCLmdldCh0aGlzKTtzdXBlci5vcGVuKCk7Y29uc3QgYT10aGlzLmh0RWRpdG9yLmdldEluc3RhbmNlKCksZD12b2lkIDA9PT10aGlzLmNlbGxQcm9wZXJ0aWVzLnRyaW1Ecm9wZG93bnx8dGhpcy5jZWxsUHJvcGVydGllcy50cmltRHJvcGRvd247dGhpcy5zaG93'@; put 'RWRpdGFibGVFbGVtZW50KCksdGhpcy5mb2N1cygpO2xldCBoPUxjKCk7MD09PWgmJmwuaXNNYWNPUyYmKGgrPTE1KSx0aGlzLmFkZEhvb2soImJlZm9yZUtleURvd24iLGY9PnRoaXMub25CZWZvcmVLZXlEb3duKGYpKSxhLnVwZGF0ZVNldHRpbmdzKHtjb2xXaWR0aHM6ZD9bd2EodGhpcy5U'@; put 'RVhUQVJFQSktMl06dm9pZCAwLHdpZHRoOmQ/d2EodGhpcy5URVhUQVJFQSkraDp2b2lkIDAscmVuZGVyZXI6KGYsXyxULFcsaWUscGUsd2UpPT57JHAoZixfLFQsVyxpZSxwZSx3ZSk7Y29uc3R7ZmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZTpFZSxhbGxvd0h0bWw6WmUsbG9jYWxlOml0fT10aGlz'@; put 'LmNlbGxQcm9wZXJ0aWVzLGV0PXRoaXMucXVlcnk7bGV0IEV0LFN0LHl0PV9sKHBlKTt5dCYmIVplJiYoRXQ9ITA9PT1FZT95dC5pbmRleE9mKGV0KTp5dC50b0xvY2FsZUxvd2VyQ2FzZShpdCkuaW5kZXhPZihldC50b0xvY2FsZUxvd2VyQ2FzZShpdCkpLC0xIT09RXQmJihTdD15dC5zdWJz'@; put 'dHIoRXQsZXQubGVuZ3RoKSx5dD15dC5yZXBsYWNlKFN0LGA8c3Ryb25nPiR7U3R9PC9zdHJvbmc+YCkpKSxfLmlubmVySFRNTD15dH0sYXV0b0NvbHVtblNpemU6ITB9KSxsLnNraXBPbmUmJihsLnNraXBPbmU9ITEpLHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoKCk9Pnt0aGlzLnF1ZXJ5'@; put 'Q2hvaWNlcyh0aGlzLlRFWFRBUkVBLnZhbHVlKX0pfWNsb3NlKCl7dGhpcy5yZW1vdmVIb29rc0J5S2V5KCJiZWZvcmVLZXlEb3duIiksc3VwZXIuY2xvc2UoKX1kaXNjYXJkRWRpdG9yKGwpe3N1cGVyLmRpc2NhcmRFZGl0b3IobCksdGhpcy5ob3Qudmlldy5yZW5kZXIoKX1xdWVyeUNob2lj'@; put 'ZXMobCl7Y29uc3QgYT10aGlzLmNlbGxQcm9wZXJ0aWVzLnNvdXJjZTt0aGlzLnF1ZXJ5PWwsImZ1bmN0aW9uIj09dHlwZW9mIGE/YS5jYWxsKHRoaXMuY2VsbFByb3BlcnRpZXMsbCxkPT57dGhpcy5yYXdDaG9pY2VzPWQsdGhpcy51cGRhdGVDaG9pY2VzTGlzdCh0aGlzLnN0cmlwVmFsdWVz'@; put 'SWZOZWVkZWQoZCkpfSk6QXJyYXkuaXNBcnJheShhKT8odGhpcy5yYXdDaG9pY2VzPWEsdGhpcy51cGRhdGVDaG9pY2VzTGlzdCh0aGlzLnN0cmlwVmFsdWVzSWZOZWVkZWQoYSkpKTp0aGlzLnVwZGF0ZUNob2ljZXNMaXN0KFtdKX11cGRhdGVDaG9pY2VzTGlzdChsKXtjb25zdCBhPWhOKHRo'@; put 'aXMuVEVYVEFSRUEpLGQ9Y3RlKHRoaXMuVEVYVEFSRUEpLGg9dGhpcy5jZWxsUHJvcGVydGllcy5zb3J0QnlSZWxldmFuY2UsZj10aGlzLmNlbGxQcm9wZXJ0aWVzLmZpbHRlcjtsZXQgXz1udWxsLFQ9bnVsbCxXPWw7aCYmKF89dGhpcy5zb3J0QnlSZWxldmFuY2UodGhpcy5zdHJpcFZhbHVl'@; put 'SWZOZWVkZWQodGhpcy5nZXRWYWx1ZSgpKSxXLHRoaXMuY2VsbFByb3BlcnRpZXMuZmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZSkpO2NvbnN0IGllPUFycmF5LmlzQXJyYXkoXyk/Xy5sZW5ndGg6MDtpZighMT09PWYpaWUmJihUPV9bMF0pO2Vsc2V7Y29uc3QgcGU9W107Zm9yKGxldCB3ZT0wLEVl'@; put 'PVcubGVuZ3RoO3dlPEVlJiYhKGgmJmllPD13ZSk7d2UrKylwZS5wdXNoKGllP1dbX1t3ZV1dOldbd2VdKTtUPTAsVz1wZX10aGlzLnN0cmlwcGVkQ2hvaWNlcz1XLHRoaXMuaHRFZGl0b3IubG9hZERhdGEoS2IoW1ddKSksdGhpcy51cGRhdGVEcm9wZG93bkhlaWdodCgpLHRoaXMuZmxpcERy'@; put 'b3Bkb3duSWZOZWVkZWQoKSwhMD09PXRoaXMuY2VsbFByb3BlcnRpZXMuc3RyaWN0JiZ0aGlzLmhpZ2hsaWdodEJlc3RNYXRjaGluZ0Nob2ljZShUKSx0aGlzLmhvdC5saXN0ZW4oKSxveSh0aGlzLlRFWFRBUkVBLGEsYT09PWQ/dm9pZCAwOmQpfWZsaXBEcm9wZG93bklmTmVlZGVkKCl7Y29u'@; put 'c3QgbD12Zyh0aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLlRBQkxFKSxhPWw9PT10aGlzLmhvdC5yb290V2luZG93LGQ9dGhpcy5jZWxsUHJvcGVydGllcy5wcmV2ZW50T3ZlcmZsb3c7aWYoYXx8IWEmJihkfHwiaG9yaXpvbnRhbCI9PT1kKSlyZXR1cm4hMTtjb25zdCBoPUtsKHRoaXMuVEVY'@; put 'VEFSRUEpLGY9YWwodGhpcy5URVhUQVJFQSksXz10aGlzLmdldERyb3Bkb3duSGVpZ2h0KCksVD1sLnNjcm9sbFRvcCxXPWFsKHRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuVEhFQUQpLGllPUtsKGwpLHBlPWgudG9wLWllLnRvcC1XK1Qsd2U9bC5zY3JvbGxIZWlnaHQtcGUtVy1mLEVlPV8+'@; put 'd2UmJnBlPndlO3JldHVybiBFZT90aGlzLmZsaXBEcm9wZG93bihfKTp0aGlzLnVuZmxpcERyb3Bkb3duKCksdGhpcy5saW1pdERyb3Bkb3duSWZOZWVkZWQoRWU/cGU6d2UsXyksRWV9bGltaXREcm9wZG93bklmTmVlZGVkKGwsYSl7aWYoYT5sKXtsZXQgZD0wLGg9MCxmPTAsXz1udWxsO2Rv'@; put 'e2Y9dGhpcy5odEVkaXRvci5nZXRSb3dIZWlnaHQoaCl8fHRoaXMuaHRFZGl0b3Iudmlldy5fd3QuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpLGQrPWYsaCs9MX13aGlsZShkPGwpO189ZC1mLHRoaXMuaHRFZGl0b3IuZmxpcHBlZCYmKHRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQu'@; put 'c3R5bGUudG9wPXBhcnNlSW50KHRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuc3R5bGUudG9wLDEwKSthLV8rInB4IiksdGhpcy5zZXREcm9wZG93bkhlaWdodChkLWYpfX1mbGlwRHJvcGRvd24obCl7Y29uc3QgYT10aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlO2EucG9zaXRpb249'@; put 'ImFic29sdXRlIixhLnRvcD0tbCsicHgiLHRoaXMuaHRFZGl0b3IuZmxpcHBlZD0hMH11bmZsaXBEcm9wZG93bigpe2NvbnN0IGw9dGhpcy5odEVkaXRvci5yb290RWxlbWVudC5zdHlsZTtsLnBvc2l0aW9uPSJhYnNvbHV0ZSIsbC50b3A9IiIsdGhpcy5odEVkaXRvci5mbGlwcGVkPXZvaWQg'@; put 'MH11cGRhdGVEcm9wZG93bkhlaWdodCgpe2NvbnN0IGw9dGhpcy5odEVkaXRvci5nZXRDb2xXaWR0aCgwKStMYyh0aGlzLmhvdC5yb290RG9jdW1lbnQpKzIsYT10aGlzLmNlbGxQcm9wZXJ0aWVzLnRyaW1Ecm9wZG93bjt0aGlzLmh0RWRpdG9yLnVwZGF0ZVNldHRpbmdzKHtoZWlnaHQ6dGhp'@; put 'cy5nZXREcm9wZG93bkhlaWdodCgpLHdpZHRoOmE/dm9pZCAwOmx9KSx0aGlzLmh0RWRpdG9yLnZpZXcuX3d0Lnd0VGFibGUuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpfXNldERyb3Bkb3duSGVpZ2h0KGwpe3RoaXMuaHRFZGl0b3IudXBkYXRlU2V0dGluZ3Moe2hlaWdo'@; put 'dDpsfSl9aGlnaGxpZ2h0QmVzdE1hdGNoaW5nQ2hvaWNlKGwpeyJudW1iZXIiPT10eXBlb2YgbD90aGlzLmh0RWRpdG9yLnNlbGVjdENlbGwobCwwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCExKTp0aGlzLmh0RWRpdG9yLmRlc2VsZWN0Q2VsbCgpfWdldERyb3Bkb3duSGVpZ2h0KCl7Y29uc3Qg'@; put 'bD10aGlzLmh0RWRpdG9yLmdldEluc3RhbmNlKCkuZ2V0Um93SGVpZ2h0KDApfHwyMyxhPXRoaXMuY2VsbFByb3BlcnRpZXMudmlzaWJsZVJvd3M7cmV0dXJuIHRoaXMuc3RyaXBwZWRDaG9pY2VzLmxlbmd0aD49YT9hKmw6dGhpcy5zdHJpcHBlZENob2ljZXMubGVuZ3RoKmwrOH1zdHJpcFZh'@; put 'bHVlSWZOZWVkZWQobCl7cmV0dXJuIHRoaXMuc3RyaXBWYWx1ZXNJZk5lZWRlZChbbF0pWzBdfXN0cmlwVmFsdWVzSWZOZWVkZWQobCl7Y29uc3R7YWxsb3dIdG1sOmF9PXRoaXMuY2VsbFByb3BlcnRpZXMsZD1jcyhsLGY9Pl9sKGYpKTtyZXR1cm4gY3MoZCxmPT5hP2Y6dU4oZikpfWFsbG93'@; put 'S2V5RXZlbnRQcm9wYWdhdGlvbihsKXtjb25zdCBhPXRoaXMuaHRFZGl0b3IuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxkX3Jvdz1hP2EuZnJvbS5yb3c6LTE7bGV0IGg9ITE7cmV0dXJuIGw9PT1jby5BUlJPV19ET1dOJiZkX3Jvdz4wJiZkX3Jvdzx0aGlzLmh0RWRpdG9yLmNvdW50Um93cygp'@; put 'LTEmJihoPSEwKSxsPT09Y28uQVJST1dfVVAmJmRfcm93Pi0xJiYoaD0hMCksaH1vbkJlZm9yZUtleURvd24obCl7Y29uc3QgYT1LQi5nZXQodGhpcyk7aWYoYS5za2lwT25lPSExLFN0ZShsLmtleUNvZGUpfHxsLmtleUNvZGU9PT1jby5CQUNLU1BBQ0V8fGwua2V5Q29kZT09PWNvLkRFTEVU'@; put 'RXx8bC5rZXlDb2RlPT09Y28uSU5TRVJUKXtsZXQgZD0xMDtpZihsLmtleUNvZGU9PT1jby5DJiYobC5jdHJsS2V5fHxsLm1ldGFLZXkpKXJldHVybjt0aGlzLmlzT3BlbmVkKCl8fChkKz0xMCksdGhpcy5odEVkaXRvciYmdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+e3RoaXMucXVl'@; put 'cnlDaG9pY2VzKHRoaXMuVEVYVEFSRUEudmFsdWUpLGEuc2tpcE9uZT0hMH0sZCl9fX1jbGFzcyBKbmUgZXh0ZW5kcyB2N3tzdGF0aWMgZ2V0IEVESVRPUl9UWVBFKCl7cmV0dXJuImNoZWNrYm94In1iZWdpbkVkaXRpbmcobCxhKXtpZihhJiYibW91c2V1cCI9PT1hLnR5cGUpe2NvbnN0IGQ9'@; put 'dGhpcy5URC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdJyk7Qm8oZCwiaHRCYWRWYWx1ZSIpfHxkLmNsaWNrKCl9fWZpbmlzaEVkaXRpbmcoKXt9aW5pdCgpe31vcGVuKCl7fWNsb3NlKCl7fWdldFZhbHVlKCl7fXNldFZhbHVlKCl7fWZvY3VzKCl7fX12YXIgUW5lPUYo'@; put 'MTc0ODApO2NvbnN0IGVyZT0iZGF0ZSIsdHJlPSJkYXRlRWRpdG9yIjtjbGFzcyBucmUgZXh0ZW5kcyBrZ3tzdGF0aWMgZ2V0IEVESVRPUl9UWVBFKCl7cmV0dXJuIGVyZX1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSx0aGlzLmRlZmF1bHREYXRlRm9ybWF0PSJERC9NTS9ZWVlZIix0aGlzLmlz'@; put 'Q2VsbEVkaXRlZD0hMSx0aGlzLnBhcmVudERlc3Ryb3llZD0hMSx0aGlzLiRkYXRlUGlja2VyPW51bGx9aW5pdCgpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBLbyl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGluY2x1ZGUgbW9tZW50LmpzIHRvIHlvdXIgcHJvamVjdC4iKTtpZigiZnVu'@; put 'Y3Rpb24iIT10eXBlb2YgUW5lKXRocm93IG5ldyBFcnJvcigiWW91IG5lZWQgdG8gaW5jbHVkZSBQaWthZGF5IHRvIHlvdXIgcHJvamVjdC4iKTtzdXBlci5pbml0KCksdGhpcy5pbnN0YW5jZS5hZGRIb29rKCJhZnRlckRlc3Ryb3kiLCgpPT57dGhpcy5wYXJlbnREZXN0cm95ZWQ9ITAsdGhp'@; put 'cy5kZXN0cm95RWxlbWVudHMoKX0pfWNyZWF0ZUVsZW1lbnRzKCl7c3VwZXIuY3JlYXRlRWxlbWVudHMoKSx0aGlzLmRhdGVQaWNrZXI9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLHRoaXMuZGF0ZVBpY2tlclN0eWxlPXRoaXMuZGF0ZVBpY2tlci5zdHlsZSx0'@; put 'aGlzLmRhdGVQaWNrZXJTdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuZGF0ZVBpY2tlclN0eWxlLnRvcD0wLHRoaXMuZGF0ZVBpY2tlclN0eWxlLmxlZnQ9MCx0aGlzLmRhdGVQaWNrZXJTdHlsZS56SW5kZXg9OTk5OSx0aGlzLmRhdGVQaWNrZXIuc2V0QXR0cmlidXRlKCJkaXIiLHRo'@; put 'aXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciIpLHBpKHRoaXMuZGF0ZVBpY2tlciwiaHREYXRlcGlja2VySG9sZGVyIiksdGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5kYXRlUGlja2VyKSxuZXcgbGwodGhpcykuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmRhdGVQ'@; put 'aWNrZXIsIm1vdXNlZG93biIsYT0+YS5zdG9wUHJvcGFnYXRpb24oKSl9ZGVzdHJveUVsZW1lbnRzKCl7Y29uc3QgbD10aGlzLmRhdGVQaWNrZXIucGFyZW50Tm9kZTt0aGlzLiRkYXRlUGlja2VyJiZ0aGlzLiRkYXRlUGlja2VyLmRlc3Ryb3koKSxsJiZsLnJlbW92ZUNoaWxkKHRoaXMuZGF0'@; put 'ZVBpY2tlcil9cHJlcGFyZShsLGEsZCxoLGYsXyl7c3VwZXIucHJlcGFyZShsLGEsZCxoLGYsXyl9b3Blbigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO2NvbnN0IGQ9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2Vy'@; put 'KCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7c3VwZXIub3BlbigpLHRoaXMuc2hvd0RhdGVwaWNrZXIobCksZC5hZGRTaG9ydGN1dCh7a2V5czpbWyJFbnRlciJdXSxjYWxsYmFjazpoPT57aC5zdG9wUHJvcGFnYXRpb24oKX0sZ3JvdXA6dHJlfSl9Y2xvc2UoKXt2YXIgbDt0aGlzLl9vcGVuZWQ9'@; put 'ITEsbnVsbCE9PShsPXRoaXMuJGRhdGVQaWNrZXIpJiZ2b2lkIDAhPT1sJiZsLmRlc3Ryb3kmJnRoaXMuJGRhdGVQaWNrZXIuZGVzdHJveSgpLHRoaXMuaW5zdGFuY2UuX3JlZ2lzdGVyVGltZW91dCgoKT0+e3RoaXMuaW5zdGFuY2UuX3JlZnJlc2hCb3JkZXJzKCl9KSx0aGlzLmhvdC5nZXRT'@; put 'aG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKHRyZSksc3VwZXIuY2xvc2UoKX1maW5pc2hFZGl0aW5nKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxhPWFyZ3Vt'@; put 'ZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07aWYobCl7Y29uc3QgZD10aGlzLm9yaWdpbmFsVmFsdWU7dm9pZCAwIT09ZCYmdGhpcy5zZXRWYWx1ZShkKX1zdXBlci5maW5pc2hFZGl0aW5nKGwsYSl9c2hvd0RhdGVwaWNrZXIobCl7Y29uc3QgYT10'@; put 'aGlzLlRELmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGQ9dGhpcy5jZWxsUHJvcGVydGllcy5kYXRlRm9ybWF0fHx0aGlzLmRlZmF1bHREYXRlRm9ybWF0LGg9dGhpcy5pbnN0YW5jZS52aWV3LmlzTW91c2VEb3duKCksZj0hIWwmJkNOKGwua2V5Q29kZSk7bGV0IF87dGhpcy5kYXRlUGlja2Vy'@; put 'LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLiRkYXRlUGlja2VyPW5ldyBRbmUodGhpcy5nZXREYXRlUGlja2VyQ29uZmlnKCkpLHRoaXMuJGRhdGVQaWNrZXIuX29uSW5wdXRGb2N1cz1mdW5jdGlvbigpe30sdGhpcy5kYXRlUGlja2VyU3R5bGUudG9wPWAke3RoaXMuaG90LnJvb3RXaW5k'@; put 'b3cucGFnZVlPZmZzZXQrYS50b3ArYWwodGhpcy5URCl9cHhgO2xldCBUPXRoaXMuaG90LnJvb3RXaW5kb3cucGFnZVhPZmZzZXQ7VD10aGlzLmhvdC5pc1J0bCgpP2EucmlnaHQtd2EodGhpcy5kYXRlUGlja2VyKTphLmxlZnQsdGhpcy5kYXRlUGlja2VyU3R5bGUubGVmdD1gJHtUfXB4YCx0'@; put 'aGlzLm9yaWdpbmFsVmFsdWU/KF89dGhpcy5vcmlnaW5hbFZhbHVlLEtvKF8sZCwhMCkuaXNWYWxpZCgpJiZ0aGlzLiRkYXRlUGlja2VyLnNldE1vbWVudChLbyhfLGQpLCEwKSx0aGlzLmdldFZhbHVlKCkhPT10aGlzLm9yaWdpbmFsVmFsdWUmJnRoaXMuc2V0VmFsdWUodGhpcy5vcmlnaW5h'@; put 'bFZhbHVlKSwhZiYmIWgmJnRoaXMuc2V0VmFsdWUoIiIpKTp0aGlzLmNlbGxQcm9wZXJ0aWVzLmRlZmF1bHREYXRlPyhfPXRoaXMuY2VsbFByb3BlcnRpZXMuZGVmYXVsdERhdGUsS28oXyxkLCEwKS5pc1ZhbGlkKCkmJnRoaXMuJGRhdGVQaWNrZXIuc2V0TW9tZW50KEtvKF8sZCksITApLCFm'@; put 'JiYhaCYmdGhpcy5zZXRWYWx1ZSgiIikpOnRoaXMuJGRhdGVQaWNrZXIuZ290b1RvZGF5KCl9aGlkZURhdGVwaWNrZXIoKXt0aGlzLmRhdGVQaWNrZXJTdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLiRkYXRlUGlja2VyLmhpZGUoKX1nZXREYXRlUGlja2VyQ29uZmlnKCl7Y29uc3QgbD10aGlz'@; put 'LlRFWFRBUkVBLGE9e307dGhpcy5jZWxsUHJvcGVydGllcyYmdGhpcy5jZWxsUHJvcGVydGllcy5kYXRlUGlja2VyQ29uZmlnJiZseShhLHRoaXMuY2VsbFByb3BlcnRpZXMuZGF0ZVBpY2tlckNvbmZpZyk7Y29uc3QgZD1hLm9uU2VsZWN0LGg9YS5vbkNsb3NlO3JldHVybiBhLmZpZWxkPWws'@; put 'YS50cmlnZ2VyPWwsYS5jb250YWluZXI9dGhpcy5kYXRlUGlja2VyLGEuYm91bmQ9ITEsYS5mb3JtYXQ9YS5mb3JtYXR8fHRoaXMuZGVmYXVsdERhdGVGb3JtYXQsYS5yZXBvc2l0aW9uPWEucmVwb3NpdGlvbnx8ITEsYS5pc1JUTD0hMSxhLm9uU2VsZWN0PWY9PntsZXQgXz1mO2lzTmFOKF8u'@; put 'Z2V0VGltZSgpKXx8KF89S28oXykuZm9ybWF0KHRoaXMuY2VsbFByb3BlcnRpZXMuZGF0ZUZvcm1hdHx8dGhpcy5kZWZhdWx0RGF0ZUZvcm1hdCkpLHRoaXMuc2V0VmFsdWUoXyksdGhpcy5oaWRlRGF0ZXBpY2tlcigpLGQmJmQoKX0sYS5vbkNsb3NlPSgpPT57dGhpcy5wYXJlbnREZXN0cm95'@; put 'ZWR8fHRoaXMuZmluaXNoRWRpdGluZyghMSksaCYmaCgpfSxhfX1jbGFzcyBKQiBleHRlbmRzIFhCe3N0YXRpYyBnZXQgRURJVE9SX1RZUEUoKXtyZXR1cm4iZHJvcGRvd24ifXByZXBhcmUobCxhLGQsaCxmLF8pe3N1cGVyLnByZXBhcmUobCxhLGQsaCxmLF8pLHRoaXMuY2VsbFByb3BlcnRp'@; put 'ZXMuZmlsdGVyPSExLHRoaXMuY2VsbFByb3BlcnRpZXMuc3RyaWN0PSEwfX1zby5nZXRTaW5nbGV0b24oKS5hZGQoImJlZm9yZVZhbGlkYXRlIixmdW5jdGlvbihjLGwsYSl7Y29uc3QgZD10aGlzLmdldENlbGxNZXRhKGwsdGhpcy5wcm9wVG9Db2woYSkpO2QuZWRpdG9yPT09SkImJnZvaWQg'@; put 'MD09PWQuc3RyaWN0JiYoZC5maWx0ZXI9ITEsZC5zdHJpY3Q9ITApfSk7Y2xhc3MgcnJlIGV4dGVuZHMga2d7c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJudW1lcmljIn19Y2xhc3MgaXJlIGV4dGVuZHMga2d7c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJwYXNzd29y'@; put 'ZCJ9Y3JlYXRlRWxlbWVudHMoKXtzdXBlci5jcmVhdGVFbGVtZW50cygpLHRoaXMuVEVYVEFSRUE9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy5URVhUQVJFQS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJwYXNzd29yZCIpLHRoaXMuVEVYVEFSRUEuc2V0'@; put 'QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLHRoaXMuVEVYVEFSRUEuY2xhc3NOYW1lPSJoYW5kc29udGFibGVJbnB1dCIsdGhpcy50ZXh0YXJlYVN0eWxlPXRoaXMuVEVYVEFSRUEuc3R5bGUsdGhpcy50ZXh0YXJlYVN0eWxlLndpZHRoPTAsdGhpcy50ZXh0YXJlYVN0eWxlLmhlaWdo'@; put 'dD0wLGcyKHRoaXMuVEVYVEFSRUFfUEFSRU5UKSx0aGlzLlRFWFRBUkVBX1BBUkVOVC5hcHBlbmRDaGlsZCh0aGlzLlRFWFRBUkVBKX19Y29uc3QgUUI9Imh0X2VkaXRvcl92aXNpYmxlIixvcmU9InNlbGVjdEVkaXRvciI7Y2xhc3MgbUllIGV4dGVuZHMgdjd7c3RhdGljIGdldCBFRElUT1Jf'@; put 'VFlQRSgpe3JldHVybiJzZWxlY3QifWluaXQoKXt0aGlzLnNlbGVjdD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIikscGkodGhpcy5zZWxlY3QsImh0U2VsZWN0RWRpdG9yIiksdGhpcy5zZWxlY3Quc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5ob3Qucm9v'@; put 'dEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3QpLHRoaXMucmVnaXN0ZXJIb29rcygpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuc2VsZWN0LnZhbHVlfXNldFZhbHVlKGwpe3RoaXMuc2VsZWN0LnZhbHVlPWx9b3Blbigpe3RoaXMuX29wZW5lZD0hMCx0aGlzLnJlZnJlc2hEaW1lbnNp'@; put 'b25zKCksdGhpcy5zZWxlY3Quc3R5bGUuZGlzcGxheT0iIix0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZWRpdG9yIiksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpfWNsb3NlKCl7dGhpcy5fb3BlbmVkPSExLHRoaXMuc2VsZWN0LnN0eWxlLmRp'@; put 'c3BsYXk9Im5vbmUiLEJvKHRoaXMuc2VsZWN0LFFCKSYmV28odGhpcy5zZWxlY3QsUUIpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuY2xlYXJIb29rcygpfWZvY3VzKCl7dGhpcy5zZWxlY3QuZm9jdXMoKX1yZWdpc3Rlckhvb2tzKCl7dGhpcy5hZGRIb29rKCJhZnRlclNjcm9s'@; put 'bEhvcml6b250YWxseSIsKCk9PnRoaXMucmVmcmVzaERpbWVuc2lvbnMoKSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiLCgpPT50aGlzLnJlZnJlc2hEaW1lbnNpb25zKCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb2x1bW5SZXNpemUiLCgpPT50aGlzLnJlZnJlc2hEaW1l'@; put 'bnNpb25zKCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJSb3dSZXNpemUiLCgpPT50aGlzLnJlZnJlc2hEaW1lbnNpb25zKCkpfXByZXBhcmUobCxhLGQsaCxmLF8pe3N1cGVyLnByZXBhcmUobCxhLGQsaCxmLF8pO2NvbnN0IFQ9dGhpcy5jZWxsUHJvcGVydGllcy5zZWxlY3RPcHRpb25zO2xldCBX'@; put 'O1c9dGhpcy5wcmVwYXJlT3B0aW9ucygiZnVuY3Rpb24iPT10eXBlb2YgVD9UKHRoaXMucm93LHRoaXMuY29sLHRoaXMucHJvcCk6VCksZzIodGhpcy5zZWxlY3QpLGRzKFcsKGllLHBlKT0+e2NvbnN0IHdlPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTt3'@; put 'ZS52YWx1ZT1wZSxnZyh3ZSxpZSksdGhpcy5zZWxlY3QuYXBwZW5kQ2hpbGQod2UpfSl9cHJlcGFyZU9wdGlvbnMobCl7bGV0IGE9e307aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IGQ9MCxoPWwubGVuZ3RoO2Q8aDtkKyspYVtsW2RdXT1sW2RdO2Vsc2Uib2JqZWN0Ij09dHlwZW9mIGwm'@; put 'JihhPWwpO3JldHVybiBhfXJlZnJlc2hWYWx1ZSgpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q2VsbCh0aGlzLnJvdyx0aGlzLnByb3ApO3RoaXMub3JpZ2luYWxWYWx1ZT1sLHRoaXMuc2V0VmFsdWUobCksdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpfXJlZnJlc2hEaW1lbnNp'@; put 'b25zKCl7aWYodGhpcy5zdGF0ZSE9PVdjLkVESVRJTkcpcmV0dXJuO2lmKHRoaXMuVEQ9dGhpcy5nZXRFZGl0ZWRDZWxsKCksIXRoaXMuVEQpcmV0dXJuIHZvaWQgdGhpcy5jbG9zZSgpO2NvbnN0e3RvcDpsLHN0YXJ0OmEsd2lkdGg6ZCxoZWlnaHQ6aH09dGhpcy5nZXRFZGl0ZWRDZWxsUmVj'@; put 'dCgpLGY9dGhpcy5zZWxlY3Quc3R5bGU7Zi5oZWlnaHQ9YCR7aH1weGAsZi53aWR0aD1gJHtkfXB4YCxmLnRvcD1gJHtsfXB4YCxmW3RoaXMuaG90LmlzUnRsKCk/InJpZ2h0IjoibGVmdCJdPWAke2F9cHhgLGYubWFyZ2luPSIwcHgiLHBpKHRoaXMuc2VsZWN0LFFCKX1yZWdpc3RlclNob3J0'@; put 'Y3V0cygpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksZD17Z3JvdXA6b3JlfTshMSE9PXRoaXMuaXNJbkZ1bGxFZGl0TW9kZSgpJiZhLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazooKT0+e2NvbnN0'@; put 'IGg9dGhpcy5zZWxlY3Quc2VsZWN0ZWRJbmRleC0xO2g+PTAmJih0aGlzLnNlbGVjdFtoXS5zZWxlY3RlZD0hMCl9fSx7a2V5czpbWyJBcnJvd0Rvd24iXV0sY2FsbGJhY2s6KCk9Pntjb25zdCBoPXRoaXMuc2VsZWN0LnNlbGVjdGVkSW5kZXgrMTtoPD10aGlzLnNlbGVjdC5sZW5ndGgtMSYm'@; put 'KHRoaXMuc2VsZWN0W2hdLnNlbGVjdGVkPSEwKX19XSxkKX11bnJlZ2lzdGVyU2hvcnRjdXRzKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChvcmUpfX1jbGFzcyBzcmUgZXh0ZW5kcyBrZ3tzdGF0aWMg'@; put 'Z2V0IEVESVRPUl9UWVBFKCl7cmV0dXJuInRpbWUifXByZXBhcmUobCxhLGQsaCxmLF8pe3N1cGVyLnByZXBhcmUobCxhLGQsaCxmLF8pLHRoaXMuVEVYVEFSRUEuZGlyPSJsdHIifX1mdW5jdGlvbiBlaihjLGwsYSxkLGgsZixfKXtNeS5hcHBseSh0aGlzLFtjLGwsYSxkLGgsZixfXSksZ2co'@; put 'bCxmPz8iIiwhMSl9ZnVuY3Rpb24gYjcoYyxsLGEsZCxoLGYsXyl7Y29uc3R7cm9vdERvY3VtZW50OlR9PWMsVz1fLmFsbG93SHRtbD9lajokcCxpZT1ULmNyZWF0ZUVsZW1lbnQoIkRJViIpO2lmKGllLmNsYXNzTmFtZT0iaHRBdXRvY29tcGxldGVBcnJvdyIsaWUuYXBwZW5kQ2hpbGQoVC5j'@; put 'cmVhdGVUZXh0Tm9kZShTdHJpbmcuZnJvbUNoYXJDb2RlKDk2NjApKSksVy5hcHBseSh0aGlzLFtjLGwsYSxkLGgsZixfXSksbC5maXJzdENoaWxkfHxsLmFwcGVuZENoaWxkKFQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApKSksbC5pbnNlcnRCZWZvcmUoaWUsbC5m'@; put 'aXJzdENoaWxkKSxwaShsLCJodEF1dG9jb21wbGV0ZSIpLCFjLmFjQXJyb3dMaXN0ZW5lcil7Y29uc3QgcGU9bmV3IGxsKGMpO2MuYWNBcnJvd0xpc3RlbmVyPWZ1bmN0aW9uKHdlKXtCbyh3ZS50YXJnZXQsImh0QXV0b2NvbXBsZXRlQXJyb3ciKSYmYy52aWV3Ll93dC5nZXRTZXR0aW5nKCJv'@; put 'bkNlbGxEYmxDbGljayIsbnVsbCxjLl9jcmVhdGVDZWxsQ29vcmRzKGEsZCksbCl9LHBlLmFkZEV2ZW50TGlzdGVuZXIoYy5yb290RWxlbWVudCwibW91c2Vkb3duIixjLmFjQXJyb3dMaXN0ZW5lciksYy5hZGRIb29rT25jZSgiYWZ0ZXJEZXN0cm95IiwoKT0+e3BlLmRlc3Ryb3koKX0pfX1l'@; put 'ai5SRU5ERVJFUl9UWVBFPSJodG1sIixiNy5SRU5ERVJFUl9UWVBFPSJhdXRvY29tcGxldGUiO2NvbnN0IGFyZT1uZXcgV2Vha01hcCxscmU9bmV3IFdlYWtNYXAsd0llPSJodEJhZFZhbHVlIix5Nz0iZGF0YS1yb3ciLHc3PSJkYXRhLWNvbCIsQ0llPSJjaGVja2JveFJlbmRlcmVyIjtmdW5j'@; put 'dGlvbiB0aihjLGwsYSxkLGgsZixfKXtjb25zdHtyb290RG9jdW1lbnQ6VH09YztNeS5hcHBseSh0aGlzLFtjLGwsYSxkLGgsZixfXSksZnVuY3Rpb24gU0llKGMpe2xldCBsPWxyZS5nZXQoYyk7aWYoIWwpe2NvbnN0e3Jvb3RFbGVtZW50OmF9PWM7bD1uZXcgbGwoYyksbC5hZGRFdmVudExp'@; put 'c3RlbmVyKGEsImNsaWNrIixkPT5mdW5jdGlvbiBrSWUoYyxsKXtjb25zdHt0YXJnZXQ6YX09YztpZighbmooYSl8fCFhLmhhc0F0dHJpYnV0ZSh5Nyl8fCFhLmhhc0F0dHJpYnV0ZSh3NykpcmV0dXJuO2NvbnN0IGQ9cGFyc2VJbnQoYS5nZXRBdHRyaWJ1dGUoeTcpLDEwKSxoPXBhcnNlSW50'@; put 'KGEuZ2V0QXR0cmlidXRlKHc3KSwxMCk7bC5nZXRDZWxsTWV0YShkLGgpLnJlYWRPbmx5JiZjLnByZXZlbnREZWZhdWx0KCl9KGQsYykpLGwuYWRkRXZlbnRMaXN0ZW5lcihhLCJtb3VzZXVwIixkPT5mdW5jdGlvbiBFSWUoYyxsKXtjb25zdHt0YXJnZXQ6YX09YztuaihhKSYmKCFhLmhhc0F0'@; put 'dHJpYnV0ZSh5Nyl8fCFhLmhhc0F0dHJpYnV0ZSh3Nyl8fHNldFRpbWVvdXQobC5saXN0ZW4sMTApKX0oZCxjKSksbC5hZGRFdmVudExpc3RlbmVyKGEsImNoYW5nZSIsZD0+ZnVuY3Rpb24gQUllKGMsbCl7Y29uc3R7dGFyZ2V0OmF9PWM7aWYoIW5qKGEpfHwhYS5oYXNBdHRyaWJ1dGUoeTcp'@; put 'fHwhYS5oYXNBdHRyaWJ1dGUodzcpKXJldHVybjtjb25zdCBkPXBhcnNlSW50KGEuZ2V0QXR0cmlidXRlKHk3KSwxMCksaD1wYXJzZUludChhLmdldEF0dHJpYnV0ZSh3NyksMTApLGY9bC5nZXRDZWxsTWV0YShkLGgpO2lmKCFmLnJlYWRPbmx5KXtsZXQgXz1udWxsO189Yy50YXJnZXQuY2hl'@; put 'Y2tlZD92b2lkIDA9PT1mLnVuY2hlY2tlZFRlbXBsYXRlfHxmLmNoZWNrZWRUZW1wbGF0ZTp2b2lkIDAhPT1mLnVuY2hlY2tlZFRlbXBsYXRlJiZmLnVuY2hlY2tlZFRlbXBsYXRlLGwuc2V0RGF0YUF0Q2VsbChkLGgsXyl9fShkLGMpKSxscmUuc2V0KGMsbCl9fShjKTtsZXQgVz1mdW5jdGlv'@; put 'biBNSWUoYyl7Y29uc3QgbD1jLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7cmV0dXJuIGwuY2xhc3NOYW1lPSJodENoZWNrYm94UmVuZGVyZXJJbnB1dCIsbC50eXBlPSJjaGVja2JveCIsbC5zZXRBdHRyaWJ1dGUoImF1dG9jb21wbGV0ZSIsIm9mZiIpLGwuc2V0QXR0cmlidXRlKCJ0YWJpbmRl'@; put 'eCIsIi0xIiksbC5jbG9uZU5vZGUoITEpfShUKTtjb25zdCBpZT1fLmxhYmVsO2xldCBwZT0hMTtpZih0eXBlb2YgXy5jaGVja2VkVGVtcGxhdGU+InUiJiYoXy5jaGVja2VkVGVtcGxhdGU9ITApLHR5cGVvZiBfLnVuY2hlY2tlZFRlbXBsYXRlPiJ1IiYmKF8udW5jaGVja2VkVGVtcGxhdGU9'@; put 'ITEpLGcyKGwpLGY9PT1fLmNoZWNrZWRUZW1wbGF0ZXx8X2woZikudG9Mb2NhbGVMb3dlckNhc2UoXy5sb2NhbGUpPT09X2woXy5jaGVja2VkVGVtcGxhdGUpLnRvTG9jYWxlTG93ZXJDYXNlKF8ubG9jYWxlKT9XLmNoZWNrZWQ9ITA6Zj09PV8udW5jaGVja2VkVGVtcGxhdGV8fF9sKGYpLnRv'@; put 'TG9jYWxlTG93ZXJDYXNlKF8ubG9jYWxlKT09PV9sKF8udW5jaGVja2VkVGVtcGxhdGUpLnRvTG9jYWxlTG93ZXJDYXNlKF8ubG9jYWxlKT9XLmNoZWNrZWQ9ITE6Z2MoZik/cGkoVywibm9WYWx1ZSIpOihXLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHBpKFcsd0llKSxwZT0hMCksVy5zZXRBdHRy'@; put 'aWJ1dGUoeTcsYSksVy5zZXRBdHRyaWJ1dGUodzcsZCksIXBlJiZpZSl7bGV0IGl0PSIiO2lmKGllLnZhbHVlKWl0PSJmdW5jdGlvbiI9PXR5cGVvZiBpZS52YWx1ZT9pZS52YWx1ZS5jYWxsKHRoaXMsYSxkLGgsZik6aWUudmFsdWU7ZWxzZSBpZihpZS5wcm9wZXJ0eSl7Y29uc3QgeXQ9Yy5n'@; put 'ZXREYXRhQXRSb3dQcm9wKGEsaWUucHJvcGVydHkpO2l0PW51bGwhPT15dD95dDoiIn1jb25zdCBldD1mdW5jdGlvbiB4SWUoYyxsLGEpe2NvbnN0IGQ9Yy5jcmVhdGVFbGVtZW50KCJsYWJlbCIpO3JldHVybiBkLmNsYXNzTmFtZT0iaHRDaGVja2JveFJlbmRlcmVyTGFiZWwgIisoYT8iZnVs'@; put 'bFdpZHRoIjoiIiksZC5hcHBlbmRDaGlsZChjLmNyZWF0ZVRleHROb2RlKGwpKSxkLmNsb25lTm9kZSghMCl9KFQsaXQsITAhPT1pZS5zZXBhcmF0ZWQpOyJiZWZvcmUiPT09aWUucG9zaXRpb24/aWUuc2VwYXJhdGVkPyhsLmFwcGVuZENoaWxkKGV0KSxsLmFwcGVuZENoaWxkKFcpKTooZXQu'@; put 'YXBwZW5kQ2hpbGQoVyksVz1ldCk6KCFpZS5wb3NpdGlvbnx8ImFmdGVyIj09PWllLnBvc2l0aW9uKSYmKGllLnNlcGFyYXRlZD8obC5hcHBlbmRDaGlsZChXKSxsLmFwcGVuZENoaWxkKGV0KSk6KGV0Lmluc2VydEJlZm9yZShXLGV0LmZpcnN0Q2hpbGQpLFc9ZXQpKX1mdW5jdGlvbiBFZSgp'@; put 'e2xldCBpdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2NvbnN0IGV0PWMuZ2V0U2VsZWN0ZWRSYW5nZSgpO2lmKGV0KWZvcihsZXQgeXQ9MDt5dDxldC5sZW5ndGg7eXQrKyl7Y29uc3R7cm93OkV0LGNvbDpTdH09ZXRbeXRdLmdldFRv'@; put 'cFN0YXJ0Q29ybmVyKCkse3JvdzpKdCxjb2w6bm59PWV0W3l0XS5nZXRCb3R0b21FbmRDb3JuZXIoKSx2bj1bXTtmb3IobGV0IE5uPUV0O05uPD1KdDtObis9MSlmb3IobGV0IGNyPVN0O2NyPD1ubjtjcis9MSl7Y29uc3QgSXI9Yy5nZXRDZWxsTWV0YShObixjcik7aWYoImNoZWNrYm94IiE9'@; put 'PUlyLnR5cGUpcmV0dXJuO2lmKCEwPT09SXIucmVhZE9ubHkpY29udGludWU7dHlwZW9mIElyLmNoZWNrZWRUZW1wbGF0ZT4idSImJihJci5jaGVja2VkVGVtcGxhdGU9ITApLHR5cGVvZiBJci51bmNoZWNrZWRUZW1wbGF0ZT4idSImJihJci51bmNoZWNrZWRUZW1wbGF0ZT0hMSk7Y29uc3Qg'@; put 'RWk9Yy5nZXREYXRhQXRDZWxsKE5uLGNyKTshMT09PWl0P1tJci5jaGVja2VkVGVtcGxhdGUsSXIuY2hlY2tlZFRlbXBsYXRlLnRvU3RyaW5nKCldLmluY2x1ZGVzKEVpKT92bi5wdXNoKFtObixjcixJci51bmNoZWNrZWRUZW1wbGF0ZV0pOltJci51bmNoZWNrZWRUZW1wbGF0ZSxJci51bmNo'@; put 'ZWNrZWRUZW1wbGF0ZS50b1N0cmluZygpLG51bGwsdm9pZCAwXS5pbmNsdWRlcyhFaSkmJnZuLnB1c2goW05uLGNyLElyLmNoZWNrZWRUZW1wbGF0ZV0pOnZuLnB1c2goW05uLGNyLElyLnVuY2hlY2tlZFRlbXBsYXRlXSl9dm4ubGVuZ3RoPjAmJmMuc2V0RGF0YUF0Q2VsbCh2bil9fWZ1bmN0'@; put 'aW9uIFplKCl7Y29uc3QgaXQ9Yy5nZXRTZWxlY3RlZFJhbmdlKCk7aWYoaXQpe2ZvcihsZXQgZXQ9MDtldDxpdC5sZW5ndGg7ZXQrKyl7Y29uc3QgeXQ9aXRbZXRdLmdldFRvcFN0YXJ0Q29ybmVyKCksRXQ9aXRbZXRdLmdldEJvdHRvbUVuZENvcm5lcigpO2ZvcihsZXQgU3Q9eXQucm93O1N0'@; put 'PD1FdC5yb3c7U3QrKylmb3IobGV0IEp0PXl0LmNvbDtKdDw9RXQuY29sO0p0Kyspe2NvbnN0IG5uPWMuZ2V0Q2VsbE1ldGEoU3QsSnQpO2lmKCJjaGVja2JveCIhPT1ubi50eXBlKXJldHVybiExO2NvbnN0IHZuPWMuZ2V0Q2VsbChTdCxKdCk7aWYobnVsbD09dm4pcmV0dXJuITA7aWYodm4u'@; put 'cXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbdHlwZT1jaGVja2JveF0iKS5sZW5ndGg+MCYmIW5uLnJlYWRPbmx5KXJldHVybiEwfX1yZXR1cm4hMX19KCFpZXx8aWUmJiFpZS5zZXBhcmF0ZWQpJiZsLmFwcGVuZENoaWxkKFcpLHBlJiZsLmFwcGVuZENoaWxkKFQuY3JlYXRlVGV4dE5vZGUoIiNi'@; put 'YWQtdmFsdWUjIikpLGFyZS5oYXMoYyl8fChhcmUuc2V0KGMsITApLGZ1bmN0aW9uIHdlKCl7Yy5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJzcGFjZSJdXSxjYWxsYmFjazooKT0+KEVlKCksIVplKCkpfSx7a2V5czpbWyJl'@; put 'bnRlciJdXSxjYWxsYmFjazooKT0+KEVlKCksIVplKCkpLHJ1bk9ubHlJZjooKT0+Yy5nZXRTZXR0aW5ncygpLmVudGVyQmVnaW5zRWRpdGluZ30se2tleXM6W1siZGVsZXRlIl0sWyJiYWNrc3BhY2UiXV0sY2FsbGJhY2s6KCk9PihFZSghMCksIVplKCkpLHJlbGF0aXZlVG9Hcm91cDpjeSxw'@; put 'b3NpdGlvbjoiYmVmb3JlIn1dLHtncm91cDpDSWV9KX0oKSl9ZnVuY3Rpb24gbmooYyl7cmV0dXJuIklOUFVUIj09PWMudGFnTmFtZSYmImNoZWNrYm94Ij09PWMuZ2V0QXR0cmlidXRlKCJ0eXBlIil9c28uZ2V0U2luZ2xldG9uKCkuYWRkKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiLGZ1'@; put 'bmN0aW9uKGMsbCxhKXtjb25zdHtsYWJlbDpkLHR5cGU6aCxyb3c6Zixjb2x1bW46Xyxwcm9wOlR9PWw7aWYoImNoZWNrYm94Ij09PWgpe2lmKGQpe2NvbnN0e3ZhbHVlOlcscHJvcGVydHk6aWV9PWQ7bGV0IHBlPWE7aWYoVylwZT0iZnVuY3Rpb24iPT10eXBlb2YgVz9XKGYsXyxULGEpOlc7'@; put 'ZWxzZSBpZihpZSl7Y29uc3Qgd2U9dGhpcy5nZXREYXRhQXRSb3dQcm9wKGYsaWUpO3BlPW51bGwhPT13ZT93ZTphfWM9cGV9cmV0dXJuIGN9fSksdGouUkVOREVSRVJfVFlQRT0iY2hlY2tib3giO3ZhciBxcD1GKDExMTcwKSxUSWU9Ri5uKHFwKTtmdW5jdGlvbiByaihjLGwsYSxkLGgsZixf'@; put 'KXtsZXQgVD1mO2lmKEd1KFQpKXtjb25zdCBXPV8ubnVtZXJpY0Zvcm1hdCxpZT1XJiZXLmN1bHR1cmV8fCItIixwZT1XJiZXLnBhdHRlcm4sd2U9Xy5jbGFzc05hbWV8fCIiLEVlPXdlLmxlbmd0aD93ZS5zcGxpdCgiICIpOltdO2lmKHR5cGVvZiBpZTwidSImJiFxcC5sYW5ndWFnZXMoKVtp'@; put 'ZV0pe2NvbnN0IFplPWllLnJlcGxhY2UoIi0iLCIiKSxpdD1xcC5hbGxMYW5ndWFnZXM/cXAuYWxsTGFuZ3VhZ2VzW2llXTpxcFtaZV07aXQmJnFwLnJlZ2lzdGVyTGFuZ3VhZ2UoaXQpfXFwLnNldExhbmd1YWdlKGllKSxUPXFwKFQpLmZvcm1hdChwZXx8IjAiKSxFZS5pbmRleE9mKCJodExl'@; put 'ZnQiKTwwJiZFZS5pbmRleE9mKCJodENlbnRlciIpPDAmJkVlLmluZGV4T2YoImh0UmlnaHQiKTwwJiZFZS5pbmRleE9mKCJodEp1c3RpZnkiKTwwJiZFZS5wdXNoKCJodFJpZ2h0IiksRWUuaW5kZXhPZigiaHROdW1lcmljIik8MCYmRWUucHVzaCgiaHROdW1lcmljIiksXy5jbGFzc05hbWU9'@; put 'RWUuam9pbigiICIpLGwuZGlyPSJsdHIifSRwKGMsbCxhLGQsaCxULF8pfWZ1bmN0aW9uIGlqKGMsbCxhLGQsaCxmLF8peyRwLmFwcGx5KHRoaXMsW2MsbCxhLGQsaCxmLF9dKTtjb25zdCBXPV8uaGFzaFN5bWJvbHx8IioiO2xldCBpZT0iIjt2bygoXy5oYXNoTGVuZ3RofHxsLmlubmVySFRN'@; put 'TC5sZW5ndGgpLTEsKCk9PntpZSs9V30pLGdnKGwsaWUpfWZ1bmN0aW9uIG9qKGMsbCxhLGQsaCxmLF8peyRwLmFwcGx5KHRoaXMsW2MsbCxhLGQsaCxmLF9dKSxsLmRpcj0ibHRyIn1mdW5jdGlvbiBFeShjLGwpe2xldCBhPWM7bnVsbD09YSYmKGE9IiIpLHRoaXMuYWxsb3dFbXB0eSYmIiI9'@; put 'PT1hP2woITApOnRoaXMuc3RyaWN0JiZ0aGlzLnNvdXJjZT8iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5zb3VyY2U/dGhpcy5zb3VyY2UoYSx1cmUoYSxsKSk6dXJlKGEsbCkodGhpcy5zb3VyY2UpOmwoITApfWZ1bmN0aW9uIHVyZShjLGwpe2NvbnN0IGE9YztyZXR1cm4gZnVuY3Rpb24oZCl7'@; put 'bGV0IGg9ITE7Zm9yKGxldCBmPTAsXz1kLmxlbmd0aDtmPF87ZisrKWlmKGE9PT1kW2ZdKXtoPSEwO2JyZWFrfWwoaCl9fWZ1bmN0aW9uIGRyZShjKXtjb25zdCBsPW5ldyBEYXRlKGMpO3JldHVybiBpc05hTihuZXcgRGF0ZShgJHtjfVQwMDowMGApLmdldERhdGUoKSk/bDpuZXcgRGF0ZShs'@; put 'LmdldFRpbWUoKSs2ZTQqbC5nZXRUaW1lem9uZU9mZnNldCgpKX1mdW5jdGlvbiBZayhjLGwpe2NvbnN0IGE9QXRlKGVyZSx0aGlzLmluc3RhbmNlKTtsZXQgZD1jLGg9ITA7bnVsbD09ZCYmKGQ9IiIpO2xldCBmPUtvKGQsdGhpcy5kYXRlRm9ybWF0fHxhLmRlZmF1bHREYXRlRm9ybWF0LCEw'@; put 'KS5pc1ZhbGlkKCksXz1LbyhuZXcgRGF0ZShkKSkuaXNWYWxpZCgpfHxmO2lmKHRoaXMuYWxsb3dFbXB0eSYmIiI9PT1kJiYoXz0hMCxmPSEwKSxffHwoaD0hMSksIV8mJmYmJihoPSEwKSxfJiYhZilpZighMD09PXRoaXMuY29ycmVjdEZvcm1hdCl7Y29uc3QgVD1mdW5jdGlvbiBGSWUoYyxs'@; put 'KXtjb25zdCBhPUtvKGRyZShjKSksZD1LbyhjLGwpLGg9Yy5zZWFyY2goL1tBLXpdL2cpPi0xO2xldCBmO3JldHVybiBmPWEuaXNWYWxpZCgpJiZhLmZvcm1hdCgieCIpPT09ZC5mb3JtYXQoIngiKXx8IWQuaXNWYWxpZCgpfHxoP2E6ZCxmLmZvcm1hdChsKX0oZCx0aGlzLmRhdGVGb3JtYXQp'@; put 'LFc9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbFJvdyh0aGlzLnJvdyksaWU9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbENvbHVtbih0aGlzLmNvbCk7dGhpcy5pbnN0YW5jZS5zZXREYXRhQXRDZWxsKFcsaWUsVCwiZGF0ZVZhbGlkYXRvciIpLGg9ITB9ZWxzZSBoPSExO2woaCl9ZnVuY3Rpb24gc2oo'@; put 'YyxsKXtsZXQgYT1jO251bGw9PWEmJihhPSIiKSxsKCEoIXRoaXMuYWxsb3dFbXB0eXx8IiIhPT1hKXx8IiIhPT1hJiZHdShjKSl9cmouUkVOREVSRVJfVFlQRT0ibnVtZXJpYyIsaWouUkVOREVSRVJfVFlQRT0icGFzc3dvcmQiLG9qLlJFTkRFUkVSX1RZUEU9InRpbWUiLEV5LlZBTElEQVRP'@; put 'Ul9UWVBFPSJhdXRvY29tcGxldGUiLFlrLlZBTElEQVRPUl9UWVBFPSJkYXRlIixzai5WQUxJREFUT1JfVFlQRT0ibnVtZXJpYyI7Y29uc3QgTkllPVsiWVlZWS1NTS1ERFRISDptbTpzcy5TU1NaIiwiWCIsIngiXTtmdW5jdGlvbiBXayhjLGwpe2NvbnN0IGE9dGhpcy50aW1lRm9ybWF0fHwi'@; put 'aDptbTpzcyBhIjtsZXQgZD0hMCxoPWM7bnVsbD09PWgmJihoPSIiKSxoPS9eXGR7Myx9JC8udGVzdChoKT9wYXJzZUludChoLDEwKTpoO2NvbnN0IGY9L15cZHsxLDJ9JC8udGVzdChoKTtmJiYoaCs9IjowMCIpO2NvbnN0IF89S28oaCxOSWUsITApLmlzVmFsaWQoKT9LbyhoKTpLbyhoLGEp'@; put 'O2xldCBUPV8uaXNWYWxpZCgpLFc9S28oaCxhLCEwKS5pc1ZhbGlkKCkmJiFmO2lmKHRoaXMuYWxsb3dFbXB0eSYmIiI9PT1oJiYoVD0hMCxXPSEwKSxUfHwoZD0hMSksIVQmJlcmJihkPSEwKSxUJiYhVylpZighMD09PXRoaXMuY29ycmVjdEZvcm1hdCl7Y29uc3QgaWU9Xy5mb3JtYXQoYSks'@; put 'cGU9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbFJvdyh0aGlzLnJvdyksd2U9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbENvbHVtbih0aGlzLmNvbCk7dGhpcy5pbnN0YW5jZS5zZXREYXRhQXRDZWxsKHBlLHdlLGllLCJ0aW1lVmFsaWRhdG9yIiksZD0hMH1lbHNlIGQ9ITE7bChkKX1Xay5WQUxJREFU'@; put 'T1JfVFlQRT0idGltZSI7Y29uc3QgakllPXtDRUxMX1RZUEU6ImF1dG9jb21wbGV0ZSIsZWRpdG9yOlhCLHJlbmRlcmVyOmI3LHZhbGlkYXRvcjpFeX0sekllPXtDRUxMX1RZUEU6ImNoZWNrYm94IixlZGl0b3I6Sm5lLHJlbmRlcmVyOnRqfSxVSWU9e0NFTExfVFlQRToiZGF0ZSIsZWRpdG9y'@; put 'Om5yZSxyZW5kZXJlcjpiNyx2YWxpZGF0b3I6WWt9LFpJZT17Q0VMTF9UWVBFOiJkcm9wZG93biIsZWRpdG9yOkpCLHJlbmRlcmVyOmI3LHZhbGlkYXRvcjpFeX0sWUllPXtDRUxMX1RZUEU6ImhhbmRzb250YWJsZSIsZWRpdG9yOnFCLHJlbmRlcmVyOmI3fSxXSWU9e0NFTExfVFlQRToibnVt'@; put 'ZXJpYyIsZWRpdG9yOnJyZSxyZW5kZXJlcjpyaix2YWxpZGF0b3I6c2osZGF0YVR5cGU6Im51bWJlciJ9LEdJZT17Q0VMTF9UWVBFOiJwYXNzd29yZCIsZWRpdG9yOmlyZSxyZW5kZXJlcjppaixjb3B5YWJsZTohMX0sJEllPXtDRUxMX1RZUEU6InRpbWUiLGVkaXRvcjpzcmUscmVuZGVyZXI6'@; put 'b2osdmFsaWRhdG9yOldrfTtjb25zdCBocmU9bmV3IE1hcChbWyJwbHVnaW4iLGZ1bmN0aW9uIGJrZShjKXtyZXR1cm4hIXV5KGMpfV0sWyJjZWxsLXR5cGUiLEZuZV0sWyJlZGl0b3IiLGt0ZV0sWyJyZW5kZXJlciIsRnRlXSxbInZhbGlkYXRvciIsSHRlXV0pLFRnPW5ldyBXZWFrTWFwLGFq'@; put 'PVtdO2xldCBfaD1udWxsO3ZhciBmcmU9bmV3IFdlYWtTZXQ7Y2xhc3MgWnN7c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuImJhc2UifXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuW3RoaXMuUExVR0lOX0tFWV19Y29uc3RydWN0b3IobCl7KGZ1bmN0aW9uIEtJZShjLGwp'@; put 'eyhmdW5jdGlvbiBYSWUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0pKHRoaXMsZnJlKSxmaCh0aGlzLCJob3QiLGwse3dy'@; put 'aXRhYmxlOiExfSksVGcuc2V0KHRoaXMse2hvb2tzOnt9fSksX2g9bnVsbCx0aGlzLnBsdWdpbk5hbWU9bnVsbCx0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcz1bXSx0aGlzLmlzUGx1Z2luc1JlYWR5PSExLHRoaXMuZW5hYmxlZD0hMSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMu'@; put 'aG90LmFkZEhvb2soImFmdGVyUGx1Z2luc0luaXRpYWxpemVkIiwoKT0+dGhpcy5vbkFmdGVyUGx1Z2luc0luaXRpYWxpemVkKCkpLHRoaXMuaG90LmFkZEhvb2soImFmdGVyVXBkYXRlU2V0dGluZ3MiLGE9PnRoaXMub25VcGRhdGVTZXR0aW5ncyhhKSksdGhpcy5ob3QuYWRkSG9vaygiYmVm'@; put 'b3JlSW5pdCIsKCk9PnRoaXMuaW5pdCgpKX1pbml0KCl7dGhpcy5wbHVnaW5OYW1lPXRoaXMuaG90LmdldFBsdWdpbk5hbWUodGhpcyk7Y29uc3QgbD10aGlzLmNvbnN0cnVjdG9yLlBMVUdJTl9ERVBTLGE9QXJyYXkuaXNBcnJheShsKT9sOltdO2lmKGEubGVuZ3RoPjApe2NvbnN0IGg9W107'@; put 'aWYoYS5mb3JFYWNoKGY9Pntjb25zdFtfLFRdPWYuc3BsaXQoIjoiKTtpZighaHJlLmhhcyhfKSl0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcGx1Z2luIGRlcGVuZGVuY3kgdHlwZSAiJHtffSIgd2FzIGZvdW5kLmApO2hyZS5nZXQoXykoVCl8fGgucHVzaChgIC0gJHtUfSAoJHtffSlgKX0p'@; put 'LGgubGVuZ3RoPjApe2NvbnN0IGY9W2BUaGUgJHt0aGlzLnBsdWdpbk5hbWV9IHBsdWdpbiByZXF1aXJlcyB0aGUgZm9sbG93aW5nIG1vZHVsZXM6XG5gLGAke2guam9pbigiXG4iKX1cbmBdLmpvaW4oIiIpO2FqLnB1c2goZil9fWlmKF9ofHwoX2g9UE4oKSksX2guaW5kZXhPZigiVW5kb1Jl'@; put 'ZG8iKT49MCYmX2guc3BsaWNlKF9oLmluZGV4T2YoIlVuZG9SZWRvIiksMSksX2guaW5kZXhPZih0aGlzLnBsdWdpbk5hbWUpPj0wJiZfaC5zcGxpY2UoX2guaW5kZXhPZih0aGlzLnBsdWdpbk5hbWUpLDEpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclBsdWdpbnNJbml0aWFsaXplZCIs'@; put 'KCk9Pnt0aGlzLmlzRW5hYmxlZCYmdGhpcy5pc0VuYWJsZWQoKSYmdGhpcy5lbmFibGVQbHVnaW4oKX0pLDA9PT1faC5sZW5ndGgpe2lmKGFqLmxlbmd0aD4wKXtjb25zdCBoPVtgJHthai5qb2luKCJcbiIpfVxuYCwiWW91IGhhdmUgdG8gaW1wb3J0IGFuZCByZWdpc3RlciB0aGVtIG1hbnVh'@; put 'bGx5LiJdLmpvaW4oIiIpO3Rocm93IG5ldyBFcnJvcihoKX10aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQiKX10aGlzLmluaXRpYWxpemVkPSEwfWVuYWJsZVBsdWdpbigpe3RoaXMuZW5hYmxlZD0hMH1kaXNhYmxlUGx1Z2luKCl7dGhpcy5ldmVudE1hbmFnZXIm'@; put 'JnRoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCksdGhpcy5jbGVhckhvb2tzKCksdGhpcy5lbmFibGVkPSExfWFkZEhvb2sobCxhKXtUZy5nZXQodGhpcykuaG9va3NbbF09VGcuZ2V0KHRoaXMpLmhvb2tzW2xdfHxbXTtjb25zdCBkPVRnLmdldCh0aGlzKS5ob29rc1tsXTt0aGlzLmhvdC5hZGRI'@; put 'b29rKGwsYSksZC5wdXNoKGEpLFRnLmdldCh0aGlzKS5ob29rc1tsXT1kfXJlbW92ZUhvb2tzKGwpe0RuKFRnLmdldCh0aGlzKS5ob29rc1tsXXx8W10sYT0+e3RoaXMuaG90LnJlbW92ZUhvb2sobCxhKX0pfWNsZWFySG9va3MoKXtjb25zdCBsPVRnLmdldCh0aGlzKS5ob29rcztkcyhsLChh'@; put 'LGQpPT50aGlzLnJlbW92ZUhvb2tzKGQpKSxsLmxlbmd0aD0wfWNhbGxPblBsdWdpbnNSZWFkeShsKXt0aGlzLmlzUGx1Z2luc1JlYWR5P2woKTp0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcy5wdXNoKGwpfW9uQWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQoKXtEbih0aGlzLnBsdWdp'@; put 'bnNJbml0aWFsaXplZENhbGxiYWNrcyxsPT5sKCkpLHRoaXMucGx1Z2luc0luaXRpYWxpemVkQ2FsbGJhY2tzLmxlbmd0aD0wLHRoaXMuaXNQbHVnaW5zUmVhZHk9ITB9b25VcGRhdGVTZXR0aW5ncyhsKXtjb25zdCBhPWZ1bmN0aW9uIEpJZShjLGwsYSl7aWYoIWwuaGFzKGMpKXRocm93IG5l'@; put 'dyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBnZXQgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gYX0odGhpcyxmcmUsZUxlKS5jYWxsKHRoaXMsbCk7dGhpcy5pc0VuYWJsZWQmJih0aGlzLmVuYWJsZWQmJiF0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLmRpc2FibGVQbHVn'@; put 'aW4oKSwhdGhpcy5lbmFibGVkJiZ0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlZCYmdGhpcy5pc0VuYWJsZWQoKSYmYSYmdGhpcy51cGRhdGVQbHVnaW4obCkpfXVwZGF0ZVBsdWdpbigpe31kZXN0cm95KCl7dGhpcy5ldmVudE1hbmFnZXImJnRoaXMu'@; put 'ZXZlbnRNYW5hZ2VyLmRlc3Ryb3koKSx0aGlzLmNsZWFySG9va3MoKSxkcyh0aGlzLChsLGEpPT57ImhvdCIhPT1hJiYodGhpc1thXT1udWxsKX0pLGRlbGV0ZSB0aGlzLnQsZGVsZXRlIHRoaXMuaG90fX1mdW5jdGlvbiBlTGUoYyl7aWYoIWMpcmV0dXJuITE7Y29uc3QgbD10aGlzLmNvbnN0'@; put 'cnVjdG9yLlNFVFRJTkdfS0VZUztpZigiYm9vbGVhbiI9PXR5cGVvZiBsKXJldHVybiBsO2ZvcihsZXQgYT0wO2E8bC5sZW5ndGg7YSsrKWlmKHZvaWQgMCE9PWNbbFthXV0pcmV0dXJuITA7cmV0dXJuITF9Y29uc3QgbGo9Y2xhc3MgdExle2NvbnN0cnVjdG9yKGwpe3RoaXMuaG90PWwsdGhp'@; put 'cy5jb250YWluZXI9bnVsbCx0aGlzLmluamVjdGVkPSExLHRoaXMucm93cz1bXSx0aGlzLmNvbHVtbnM9W10sdGhpcy5zYW1wbGVzPW51bGwsdGhpcy5zZXR0aW5ncz17dXNlSGVhZGVyczohMH19YWRkUm93KGwsYSl7aWYodGhpcy5jb2x1bW5zLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkRv'@; put 'ZXNuJ3Qgc3VwcG9ydCBtdWx0aS1kaW1lbnNpb25hbCB0YWJsZSIpO3RoaXMucm93cy5sZW5ndGh8fCh0aGlzLmNvbnRhaW5lcj10aGlzLmNyZWF0ZUNvbnRhaW5lcih0aGlzLmhvdC5yb290RWxlbWVudC5jbGFzc05hbWUpKTtjb25zdCBkPXtyb3c6bH07dGhpcy5yb3dzLnB1c2goZCksdGhp'@; put 'cy5zYW1wbGVzPWEsdGhpcy50YWJsZT10aGlzLmNyZWF0ZVRhYmxlKHRoaXMuaG90LnRhYmxlLmNsYXNzTmFtZSksdGhpcy50YWJsZS5jb2xHcm91cC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbEdyb3Vwc0NvbCgpKSx0aGlzLnRhYmxlLnRyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlUm93'@; put 'KGwpKSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5mcmFnbWVudCksZC50YWJsZT10aGlzLnRhYmxlLnRhYmxlfWFkZENvbHVtbkhlYWRlcnNSb3cobCl7aWYobnVsbCE9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKDApKXtjb25zdCBkPXtyb3c6LTF9O3Ro'@; put 'aXMucm93cy5wdXNoKGQpLHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMuaG90LnJvb3RFbGVtZW50LmNsYXNzTmFtZSksdGhpcy5zYW1wbGVzPWwsdGhpcy50YWJsZT10aGlzLmNyZWF0ZVRhYmxlKHRoaXMuaG90LnRhYmxlLmNsYXNzTmFtZSksdGhpcy50YWJsZS5j'@; put 'b2xHcm91cC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbEdyb3Vwc0NvbCgpKSx0aGlzLmFwcGVuZENvbHVtbkhlYWRlcnNSb3coKSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5mcmFnbWVudCksZC50YWJsZT10aGlzLnRhYmxlLnRhYmxlfX1hZGRD'@; put 'b2x1bW4obCxhKXtpZih0aGlzLnJvd3MubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRG9lc24ndCBzdXBwb3J0IG11bHRpLWRpbWVuc2lvbmFsIHRhYmxlIik7dGhpcy5jb2x1bW5zLmxlbmd0aHx8KHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMuaG90LnJvb3RFbGVt'@; put 'ZW50LmNsYXNzTmFtZSkpO2NvbnN0IGQ9e2NvbDpsfTt0aGlzLmNvbHVtbnMucHVzaChkKSx0aGlzLnNhbXBsZXM9YSx0aGlzLnRhYmxlPXRoaXMuY3JlYXRlVGFibGUodGhpcy5ob3QudGFibGUuY2xhc3NOYW1lKSx0aGlzLmdldFNldHRpbmcoInVzZUhlYWRlcnMiKSYmbnVsbCE9PXRoaXMu'@; put 'aG90LmdldENvbEhlYWRlcihsKSYmdGhpcy5ob3Qudmlldy5hcHBlbmRDb2xIZWFkZXIobCx0aGlzLnRhYmxlLnRoKSx0aGlzLnRhYmxlLnRCb2R5LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sKGwpKSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5m'@; put 'cmFnbWVudCksZC50YWJsZT10aGlzLnRhYmxlLnRhYmxlfWdldEhlaWdodHMobCl7dGhpcy5pbmplY3RlZHx8dGhpcy5pbmplY3RUYWJsZSgpLERuKHRoaXMucm93cyxhPT57bChhLnJvdyxhbChhLnRhYmxlKS0xKX0pfWdldFdpZHRocyhsKXt0aGlzLmluamVjdGVkfHx0aGlzLmluamVjdFRh'@; put 'YmxlKCksRG4odGhpcy5jb2x1bW5zLGE9Pntjb25zdHt3aWR0aDpkfT1hLnRhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2woYS5jb2wsTWF0aC5jZWlsKGQpKX0pfXNldFNldHRpbmdzKGwpe3RoaXMuc2V0dGluZ3M9bH1zZXRTZXR0aW5nKGwsYSl7dGhpcy5zZXR0aW5nc3x8KHRoaXMu'@; put 'c2V0dGluZ3M9e30pLHRoaXMuc2V0dGluZ3NbbF09YX1nZXRTZXR0aW5ncygpe3JldHVybiB0aGlzLnNldHRpbmdzfWdldFNldHRpbmcobCl7cmV0dXJuIHRoaXMuc2V0dGluZ3M/dGhpcy5zZXR0aW5nc1tsXTpudWxsfWNyZWF0ZUNvbEdyb3Vwc0NvbCgpe2NvbnN0IGw9dGhpcy5ob3Qucm9v'@; put 'dERvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4gdGhpcy5ob3QuaGFzUm93SGVhZGVycygpJiZsLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sRWxlbWVudCgtMSkpLHRoaXMuc2FtcGxlcy5mb3JFYWNoKGE9PntEbihhLnN0cmluZ3MsZD0+e2wuYXBwZW5kQ2hpbGQo'@; put 'dGhpcy5jcmVhdGVDb2xFbGVtZW50KGQuY29sKSl9KX0pLGx9Y3JlYXRlUm93KGwpe2NvbnN0e3Jvb3REb2N1bWVudDphfT10aGlzLmhvdCxkPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGg9YS5jcmVhdGVFbGVtZW50KCJ0aCIpO3JldHVybiB0aGlzLmhvdC5oYXNSb3dIZWFkZXJzKCkm'@; put 'Jih0aGlzLmhvdC52aWV3LmFwcGVuZFJvd0hlYWRlcihsLGgpLGQuYXBwZW5kQ2hpbGQoaCkpLHRoaXMuc2FtcGxlcy5mb3JFYWNoKGY9PntEbihmLnN0cmluZ3MsXz0+e2NvbnN0IFQ9Xy5jb2wsVz10aGlzLmhvdC5nZXRDZWxsTWV0YShsLFQpO1cuY29sPVQsVy5yb3c9bDtjb25zdCBpZT10'@; put 'aGlzLmhvdC5nZXRDZWxsUmVuZGVyZXIoVykscGU9YS5jcmVhdGVFbGVtZW50KCJ0ZCIpO3BlLnNldEF0dHJpYnV0ZSgiZ2hvc3QtdGFibGUiLDEpLGllKHRoaXMuaG90LHBlLGwsVCx0aGlzLmhvdC5jb2xUb1Byb3AoVCksXy52YWx1ZSxXKSxkLmFwcGVuZENoaWxkKHBlKX0pfSksZH1hcHBl'@; put 'bmRDb2x1bW5IZWFkZXJzUm93KCl7Y29uc3R7cm9vdERvY3VtZW50Omx9PXRoaXMuaG90LGE9bC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZD1bXTtpZih0aGlzLmhvdC5oYXNSb3dIZWFkZXJzKCkpe2NvbnN0IGg9bC5jcmVhdGVFbGVtZW50KCJ0aCIpO2QucHVzaChbLTEsaF0pLGEuYXBw'@; put 'ZW5kQ2hpbGQoaCl9dGhpcy5zYW1wbGVzLmZvckVhY2goaD0+e0RuKGguc3RyaW5ncyxmPT57Y29uc3QgXz1mLmNvbCxUPWwuY3JlYXRlRWxlbWVudCgidGgiKTtkLnB1c2goW18sVF0pLGEuYXBwZW5kQ2hpbGQoVCl9KX0pLHRoaXMudGFibGUudEhlYWQuYXBwZW5kQ2hpbGQoYSksRG4oZCxo'@; put 'PT57Y29uc3RbZixfXT1oO3RoaXMuaG90LnZpZXcuYXBwZW5kQ29sSGVhZGVyKGYsXyl9KX1jcmVhdGVDb2wobCl7Y29uc3R7cm9vdERvY3VtZW50OmF9PXRoaXMuaG90LGQ9YS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7cmV0dXJuIHRoaXMuc2FtcGxlcy5mb3JFYWNoKGg9PntEbihoLnN0'@; put 'cmluZ3MsZj0+e2NvbnN0IF89Zi5yb3csVD10aGlzLmhvdC5nZXRDZWxsTWV0YShfLGwpO1QuY29sPWwsVC5yb3c9Xztjb25zdCBXPXRoaXMuaG90LmdldENlbGxSZW5kZXJlcihUKSxpZT1hLmNyZWF0ZUVsZW1lbnQoInRkIikscGU9YS5jcmVhdGVFbGVtZW50KCJ0ciIpO2llLnNldEF0dHJp'@; put 'YnV0ZSgiZ2hvc3QtdGFibGUiLDEpLFcodGhpcy5ob3QsaWUsXyxsLHRoaXMuaG90LmNvbFRvUHJvcChsKSxmLnZhbHVlLFQpLHBlLmFwcGVuZENoaWxkKGllKSxkLmFwcGVuZENoaWxkKHBlKX0pfSksZH1jbGVhbigpe3RoaXMucm93cy5sZW5ndGg9MCx0aGlzLnJvd3NbLTFdPXZvaWQgMCx0'@; put 'aGlzLmNvbHVtbnMubGVuZ3RoPTAsdGhpcy5zYW1wbGVzJiZ0aGlzLnNhbXBsZXMuY2xlYXIoKSx0aGlzLnNhbXBsZXM9bnVsbCx0aGlzLnJlbW92ZVRhYmxlKCl9aW5qZWN0VGFibGUoKXt0aGlzLmluamVjdGVkfHwoKChhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1sw'@; put 'XT9hcmd1bWVudHNbMF06bnVsbCl8fHRoaXMuaG90LnJvb3RFbGVtZW50KS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lci5mcmFnbWVudCksdGhpcy5pbmplY3RlZD0hMCl9cmVtb3ZlVGFibGUoKXt0aGlzLmluamVjdGVkJiZ0aGlzLmNvbnRhaW5lci5jb250YWluZXIucGFyZW50Tm9kZSYm'@; put 'KHRoaXMuY29udGFpbmVyLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyLmNvbnRhaW5lciksdGhpcy5jb250YWluZXI9bnVsbCx0aGlzLmluamVjdGVkPSExKX1jcmVhdGVDb2xFbGVtZW50KGwpe2NvbnN0IGE9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNy'@; put 'ZWF0ZUVsZW1lbnQoImNvbCIpO3JldHVybiBhLnN0eWxlLndpZHRoPWAke3RoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgobCl9cHhgLGF9Y3JlYXRlVGFibGUoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9h'@; put 'cmd1bWVudHNbMF06IiI7Y29uc3R7cm9vdERvY3VtZW50OmF9PXRoaXMuaG90LGQ9YS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksaD1hLmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksZj1hLmNyZWF0ZUVsZW1lbnQoInRoZWFkIiksXz1hLmNyZWF0ZUVsZW1lbnQoInRib2R5IiksVD1hLmNyZWF0'@; put 'ZUVsZW1lbnQoImNvbGdyb3VwIiksVz1hLmNyZWF0ZUVsZW1lbnQoInRyIiksaWU9YS5jcmVhdGVFbGVtZW50KCJ0aCIpO3JldHVybiB0aGlzLmlzVmVydGljYWwoKSYmaC5hcHBlbmRDaGlsZChUKSx0aGlzLmlzSG9yaXpvbnRhbCgpJiYoVy5hcHBlbmRDaGlsZChpZSksZi5hcHBlbmRDaGls'@; put 'ZChXKSxoLnN0eWxlLnRhYmxlTGF5b3V0PSJhdXRvIixoLnN0eWxlLndpZHRoPSJhdXRvIiksaC5hcHBlbmRDaGlsZChmKSx0aGlzLmlzVmVydGljYWwoKSYmXy5hcHBlbmRDaGlsZChXKSxoLmFwcGVuZENoaWxkKF8pLHBpKGgsbCksZC5hcHBlbmRDaGlsZChoKSx7ZnJhZ21lbnQ6ZCx0YWJs'@; put 'ZTpoLHRIZWFkOmYsdEJvZHk6Xyxjb2xHcm91cDpULHRyOlcsdGg6aWV9fWNyZWF0ZUNvbnRhaW5lcigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjtjb25zdHtyb290RG9jdW1lbnQ6YX09dGhpcy5ob3QsZD1hLmNyZWF0'@; put 'ZURvY3VtZW50RnJhZ21lbnQoKSxoPWEuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHBpKGgsYGh0R2hvc3RUYWJsZSBodEF1dG9TaXplICR7bC50cmltKCl9YCksZC5hcHBlbmRDaGlsZChoKSx7ZnJhZ21lbnQ6ZCxjb250YWluZXI6aH19aXNWZXJ0aWNhbCgpe3JldHVybiEoIXRoaXMu'@; put 'cm93cy5sZW5ndGh8fHRoaXMuY29sdW1ucy5sZW5ndGgpfWlzSG9yaXpvbnRhbCgpe3JldHVybiEoIXRoaXMuY29sdW1ucy5sZW5ndGh8fHRoaXMucm93cy5sZW5ndGgpfX07Y2xhc3MgY2p7c3RhdGljIGdldCBTQU1QTEVfQ09VTlQoKXtyZXR1cm4gM31jb25zdHJ1Y3RvcihsKXt0aGlzLnNh'@; put 'bXBsZXM9bnVsbCx0aGlzLmRhdGFGYWN0b3J5PWwsdGhpcy5jdXN0b21TYW1wbGVDb3VudD1udWxsLHRoaXMuYWxsb3dEdXBsaWNhdGVzPSExfWdldFNhbXBsZUNvdW50KCl7cmV0dXJuIHRoaXMuY3VzdG9tU2FtcGxlQ291bnQ/dGhpcy5jdXN0b21TYW1wbGVDb3VudDpjai5TQU1QTEVfQ09V'@; put 'TlR9c2V0U2FtcGxlQ291bnQobCl7dGhpcy5jdXN0b21TYW1wbGVDb3VudD1sfXNldEFsbG93RHVwbGljYXRlcyhsKXt0aGlzLmFsbG93RHVwbGljYXRlcz1sfWdlbmVyYXRlUm93U2FtcGxlcyhsLGEpe3JldHVybiB0aGlzLmdlbmVyYXRlU2FtcGxlcygicm93IixhLGwpfWdlbmVyYXRlQ29s'@; put 'dW1uU2FtcGxlcyhsLGEpe3JldHVybiB0aGlzLmdlbmVyYXRlU2FtcGxlcygiY29sIixhLGwpfWdlbmVyYXRlU2FtcGxlcyhsLGEsZCl7Y29uc3QgaD1uZXcgTWFwLHtmcm9tOmYsdG86X309Im51bWJlciI9PXR5cGVvZiBkP3tmcm9tOmQsdG86ZH06ZDtyZXR1cm4gdm8oZixfLFQ9Pntjb25z'@; put 'dCBXPXRoaXMuZ2VuZXJhdGVTYW1wbGUobCxhLFQpO2guc2V0KFQsVyl9KSxofWdlbmVyYXRlU2FtcGxlKGwsYSxkKXtpZigicm93IiE9PWwmJiJjb2wiIT09bCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHNhbXBsZSB0eXBlIik7Y29uc3QgaD1uZXcgTWFwLGY9InJvdyI9PT1sPyJj'@; put 'b2wiOiJyb3ciLF89W107cmV0dXJuIHZvKGEuZnJvbSxhLnRvLFQ9Pntjb25zdHt2YWx1ZTpXLGJ1bmRsZVNlZWQ6aWV9PSJyb3ciPT09bD90aGlzLmRhdGFGYWN0b3J5KGQsVCk6dGhpcy5kYXRhRmFjdG9yeShULGQpLHBlPSJzdHJpbmciPT10eXBlb2YgaWUmJmllLmxlbmd0aD4wO2xldCB3'@; put 'ZTt3ZT1wZT9pZTp1cyhXKT9gJHtPYmplY3Qua2V5cyhXKS5sZW5ndGh9YDpBcnJheS5pc0FycmF5KFcpP2Ake1cubGVuZ3RofWA6YCR7X2woVykubGVuZ3RofWAsaC5oYXMod2UpfHxoLnNldCh3ZSx7bmVlZGVkOnRoaXMuZ2V0U2FtcGxlQ291bnQoKSxzdHJpbmdzOltdfSk7Y29uc3QgRWU9'@; put 'aC5nZXQod2UpO0VlLm5lZWRlZCYmKCEoXy5pbmRleE9mKFcpPi0xKXx8dGhpcy5hbGxvd0R1cGxpY2F0ZXN8fHBlKSYmKEVlLnN0cmluZ3MucHVzaCh7dmFsdWU6VyxbZl06VH0pLF8ucHVzaChXKSxFZS5uZWVkZWQtPTEpfSksaH19Y29uc3QgcHJlPWNqO3NvLmdldFNpbmdsZXRvbigpLnJl'@; put 'Z2lzdGVyKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiKTtjb25zdCBreT0iYXV0b0NvbHVtblNpemUiLHVqPW5ldyBXZWFrTWFwO2NsYXNzIEF5IGV4dGVuZHMgWnN7c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIGt5fXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJu'@; put 'IDEwfXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuITB9c3RhdGljIGdldCBDQUxDVUxBVElPTl9TVEVQKCl7cmV0dXJuIDUwfXN0YXRpYyBnZXQgU1lOQ19DQUxDVUxBVElPTl9MSU1JVCgpe3JldHVybiA1MH1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSx1ai5zZXQodGhpcyx7Y2Fj'@; put 'aGVkQ29sdW1uSGVhZGVyczpbXX0pLHRoaXMuZ2hvc3RUYWJsZT1uZXcgbGoodGhpcy5ob3QpLHRoaXMuc2FtcGxlc0dlbmVyYXRvcj1uZXcgcHJlKChhLGQpPT57Y29uc3QgaD10aGlzLmhvdC5nZXRDZWxsTWV0YShhLGQpO2xldCBmPSIiO2guc3Bhbm5lZHx8KGY9dGhpcy5ob3QuZ2V0RGF0'@; put 'YUF0Q2VsbChhLGQpKTtsZXQgXz0iIjtyZXR1cm4gdGhpcy5ob3QuaGFzSG9vaygibW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkIikmJihfPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiLF8saCxmKSkse3ZhbHVlOmYsYnVuZGxlU2VlZDpffX0pLHRoaXMuZmly'@; put 'c3RDYWxjdWxhdGlvbj0hMCx0aGlzLmluUHJvZ3Jlc3M9ITEsdGhpcy5tZWFzdXJlZENvbHVtbnM9MCx0aGlzLmNvbHVtbldpZHRoc01hcD1uZXcgV3AsdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoImF1dG9Db2x1bW5TaXplIix0aGlzLmNvbHVtbldpZHRoc01hcCks'@; put 'dGhpcy5hZGRIb29rKCJiZWZvcmVDb2x1bW5SZXNpemUiLChhLGQsaCk9PnRoaXMub25CZWZvcmVDb2x1bW5SZXNpemUoYSxkLGgpKX1pc0VuYWJsZWQoKXtyZXR1cm4hMSE9PXRoaXMuaG90LmdldFNldHRpbmdzKClba3ldJiYhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5jb2xXaWR0aHN9ZW5h'@; put 'YmxlUGx1Z2luKCl7dmFyIGw9dGhpcztpZih0aGlzLmVuYWJsZWQpcmV0dXJuO2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtreV07YSYmbnVsbCE9YS51c2VIZWFkZXJzJiZ0aGlzLmdob3N0VGFibGUuc2V0U2V0dGluZygidXNlSGVhZGVycyIsYS51c2VIZWFkZXJzKSx0aGlzLnNl'@; put 'dFNhbXBsaW5nT3B0aW9ucygpLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkFmdGVyTG9hZERhdGEoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ2hhbmdlUmVuZGVyIixkPT50aGlzLm9uQmVmb3JlQ2hhbmdlKGQpKSx0aGlz'@; put 'LmFkZEhvb2soImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLGQ9PnRoaXMub25BZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlKGQpKSx0aGlzLmFkZEhvb2soImJlZm9yZVZpZXdSZW5kZXIiLGQ9PnRoaXMub25CZWZvcmVWaWV3UmVuZGVyKGQpKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdp'@; put 'ZHRoIiwoZCxoKT0+dGhpcy5nZXRDb2x1bW5XaWR0aChoLGQpKSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsKCk9PnRoaXMub25BZnRlckluaXQoKSksc3VwZXIuZW5hYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7Y29uc3QgbD10aGlzLmZpbmRDb2x1bW5zV2hlcmVIZWFkZXJXYXNDaGFu'@; put 'Z2VkKCk7bC5sZW5ndGgmJih0aGlzLmNsZWFyQ2FjaGUobCksdGhpcy5jYWxjdWxhdGVWaXNpYmxlQ29sdW1uc1dpZHRoKCkpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXtzdXBlci5kaXNhYmxlUGx1Z2luKCksdGhpcy5hZGRIb29rKCJiZWZvcmVDb2x1bW5SZXNpemUi'@; put 'LChsLGEsZCk9PnRoaXMub25CZWZvcmVDb2x1bW5SZXNpemUobCxhLGQpKX1jYWxjdWxhdGVWaXNpYmxlQ29sdW1uc1dpZHRoKCl7aWYoIXRoaXMuaG90LmNvdW50Um93cygpKXJldHVybjtjb25zdCBhPXRoaXMuaG90LnJlbmRlckNhbGwsZD10aGlzLmdldEZpcnN0VmlzaWJsZUNvbHVtbigp'@; put 'LGg9dGhpcy5nZXRMYXN0VmlzaWJsZUNvbHVtbigpOy0xPT09ZHx8LTE9PT1ofHx0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aCh7ZnJvbTpkLHRvOmh9LHZvaWQgMCxhKX1jYWxjdWxhdGVDb2x1bW5zV2lkdGgoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50'@; put 'c1swXT9hcmd1bWVudHNbMF06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudENvbHMoKS0xfSxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Um93cygpLTF9LGQ9YXJndW1lbnRzLmxlbmd0aD4y'@; put 'JiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtjb25zdCBoPSJudW1iZXIiPT10eXBlb2YgbD97ZnJvbTpsLHRvOmx9OmwsZj0ibnVtYmVyIj09dHlwZW9mIGE/e2Zyb206YSx0bzphfTphO3ZvKGguZnJvbSxoLnRvLF89PntsZXQgVD10aGlzLmhvdC50b1BoeXNpY2FsQ29s'@; put 'dW1uKF8pO251bGw9PT1UJiYoVD1fKSwoZHx8bnVsbD09PXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleChUKSYmIXRoaXMuaG90Ll9nZXRDb2xXaWR0aEZyb21TZXR0aW5ncyhUKSkmJkRuKHRoaXMuc2FtcGxlc0dlbmVyYXRvci5nZW5lcmF0ZUNvbHVtblNhbXBsZXMoXyxm'@; put 'KSxpZT0+e2xldFtwZSx3ZV09aWU7cmV0dXJuIHRoaXMuZ2hvc3RUYWJsZS5hZGRDb2x1bW4ocGUsd2UpfSl9KSx0aGlzLmdob3N0VGFibGUuY29sdW1ucy5sZW5ndGgmJih0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e3RoaXMuZ2hvc3RUYWJsZS5nZXRXaWR0aHMoKF8sVCk9Pntjb25z'@; put 'dCBXPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oXyk7dGhpcy5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KFcsVCl9KX0sITApLHRoaXMubWVhc3VyZWRDb2x1bW5zPWgudG8rMSx0aGlzLmdob3N0VGFibGUuY2xlYW4oKSl9Y2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCl7bGV0'@; put 'IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRSb3dzKCktMX0sYT0wO2NvbnN0IGQ9dGhpcy5ob3QuY291bnRDb2xzKCktMTtsZXQgaD1udWxsO3RoaXMuaW5Qcm9ncmVzcz0hMDtjb25zdCBm'@; put 'PSgpPT57aWYoIXRoaXMuaG90KXJldHVybiBkeShoKSx2b2lkKHRoaXMuaW5Qcm9ncmVzcz0hMSk7dGhpcy5jYWxjdWxhdGVDb2x1bW5zV2lkdGgoe2Zyb206YSx0bzpNYXRoLm1pbihhK0F5LkNBTENVTEFUSU9OX1NURVAsZCl9LGwpLGE9YStBeS5DQUxDVUxBVElPTl9TVEVQKzEsYTxkP2g9'@; put 'eWsoZik6KGR5KGgpLHRoaXMuaW5Qcm9ncmVzcz0hMSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpKX0sXz10aGlzLmdldFN5bmNDYWxjdWxhdGlvbkxpbWl0KCk7dGhpcy5maXJzdENhbGN1bGF0aW9uJiZfPj0wJiYodGhpcy5jYWxjdWxhdGVDb2x1bW5zV2lkdGgoe2Zyb206'@; put 'MCx0bzpffSxsKSx0aGlzLmZpcnN0Q2FsY3VsYXRpb249ITEsYT1fKzEpLGE8ZD9mKCk6dGhpcy5pblByb2dyZXNzPSExfXNldFNhbXBsaW5nT3B0aW9ucygpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtreV0sYT1sJiZibChsLCJzYW1wbGluZ1JhdGlvIik/bC5zYW1wbGluZ1Jh'@; put 'dGlvOnZvaWQgMCxkPWwmJmJsKGwsImFsbG93U2FtcGxlRHVwbGljYXRlcyIpP2wuYWxsb3dTYW1wbGVEdXBsaWNhdGVzOnZvaWQgMDthJiYhaXNOYU4oYSkmJnRoaXMuc2FtcGxlc0dlbmVyYXRvci5zZXRTYW1wbGVDb3VudChwYXJzZUludChhLDEwKSksZCYmdGhpcy5zYW1wbGVzR2VuZXJh'@; put 'dG9yLnNldEFsbG93RHVwbGljYXRlcyhkKX1yZWNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpe3RoaXMuaG90LnZpZXcmJnRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuaXNWaXNpYmxlKCkmJih0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLmNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpKX1nZXRT'@; put 'eW5jQ2FsY3VsYXRpb25MaW1pdCgpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtreV07bGV0IGE9QXkuU1lOQ19DQUxDVUxBVElPTl9MSU1JVDtjb25zdCBkPXRoaXMuaG90LmNvdW50Q29scygpLTE7cmV0dXJuIHVzKGwpJiYoYT1sLnN5bmNMaW1pdCxsTihhKT9hPUlOKGQsYSk6'@; put 'YT4+PTApLE1hdGgubWluKGEsZCl9Z2V0Q29sdW1uV2lkdGgobCl7bGV0IGQ9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp2b2lk'@; put 'IDA7cmV0dXJuIHZvaWQgMD09PWgmJihoPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpKSxkJiYibnVtYmVyIj09dHlwZW9mIGgmJihoPU1hdGgubWF4KGgsZVYuREVGQVVMVF9XSURUSCkpKSxofWdldEZpcnN0VmlzaWJs'@; put 'ZUNvbHVtbigpe2NvbnN0IGw9dGhpcy5ob3Qudmlldy5fd3Q7aWYobC53dFZpZXdwb3J0LmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcil7Y29uc3QgYT1sLnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCk7aWYoLTEhPT1hKXJldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5n'@; put 'ZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGEpfWlmKGwud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvcil7Y29uc3QgYT1sLnd0VGFibGUuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpO2lmKC0xIT09YSlyZXR1cm4gdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0Vmlz'@; put 'dWFsRnJvbVJlbmRlcmFibGVJbmRleChhKX1yZXR1cm4tMX1nZXRMYXN0VmlzaWJsZUNvbHVtbigpe2NvbnN0IGw9dGhpcy5ob3Qudmlldy5fd3Q7aWYobC53dFZpZXdwb3J0LmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcil7Y29uc3QgYT1sLnd0VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4o'@; put 'KTtpZigtMSE9PWEpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoYSl9aWYobC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yKXtjb25zdCBhPWwud3RUYWJsZS5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKTtpZigt'@; put 'MSE9PWEpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoYSl9cmV0dXJuLTF9ZmluZENvbHVtbnNXaGVyZUhlYWRlcldhc0NoYW5nZWQoKXtjb25zdCBsPXRoaXMuaG90LmdldENvbEhlYWRlcigpLHtjYWNoZWRDb2x1bW5IZWFk'@; put 'ZXJzOmF9PXVqLmdldCh0aGlzKTtyZXR1cm4gQWwobCwoaCxmLF8pPT57Y29uc3QgVD1hLmxlbmd0aDtyZXR1cm4oVC0xPF98fGFbX10hPT1mKSYmaC5wdXNoKF8pLFQtMTxfP2EucHVzaChmKTphW19dPWYsaH0sW10pfWNsZWFyQ2FjaGUoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZv'@; put 'aWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W107bC5sZW5ndGg/dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9PntEbihsLGE9Pnt0aGlzLmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoYSxudWxsKX0pfSwhMCk6dGhpcy5jb2x1bW5XaWR0aHNNYXAuY2xlYXIoKX1p'@; put 'c05lZWRSZWNhbGN1bGF0ZSgpe3JldHVybiEhXzEodGhpcy5jb2x1bW5XaWR0aHNNYXAuZ2V0VmFsdWVzKCkuc2xpY2UoMCx0aGlzLm1lYXN1cmVkQ29sdW1ucyksbD0+bnVsbD09PWwpLmxlbmd0aH1vbkJlZm9yZVZpZXdSZW5kZXIoKXt0aGlzLmNhbGN1bGF0ZVZpc2libGVDb2x1bW5zV2lk'@; put 'dGgoKSx0aGlzLmlzTmVlZFJlY2FsY3VsYXRlKCkmJiF0aGlzLmluUHJvZ3Jlc3MmJnRoaXMuY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCl9b25BZnRlckxvYWREYXRhKCl7dGhpcy5ob3Qudmlldz90aGlzLnJlY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCk6c2V0VGltZW91dCgoKT0+e3Ro'@; put 'aXMuaG90JiZ0aGlzLnJlY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCl9LDApfW9uQmVmb3JlQ2hhbmdlKGwpe2NvbnN0IGE9Y3MobCxkPT57bGV0WyxoXT1kO3JldHVybiB0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHRoaXMuaG90LnByb3BUb0NvbChoKSl9KTt0aGlzLmNsZWFyQ2FjaGUo'@; put 'QXJyYXkuZnJvbShuZXcgU2V0KGEpKSl9b25CZWZvcmVDb2x1bW5SZXNpemUobCxhLGQpe2xldCBoPWw7cmV0dXJuIGQmJih0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aChhLHZvaWQgMCwhMCksaD10aGlzLmdldENvbHVtbldpZHRoKGEsdm9pZCAwLCExKSksaH1vbkFmdGVySW5pdCgpe3Vq'@; put 'LmdldCh0aGlzKS5jYWNoZWRDb2x1bW5IZWFkZXJzPXRoaXMuaG90LmdldENvbEhlYWRlcigpfW9uQWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZShsKXtjb25zdCBkPWNzKF8xKGwsaD0+e3ZhciBmO3JldHVybiBLaShudWxsPT09KGY9aC5hZGRyZXNzKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi5j'@; put 'b2wpfSksaD0+aC5hZGRyZXNzLmNvbCk7dGhpcy5jbGVhckNhY2hlKEFycmF5LmZyb20obmV3IFNldChkKSkpfWRlc3Ryb3koKXt0aGlzLmdob3N0VGFibGUuY2xlYW4oKSxzdXBlci5kZXN0cm95KCl9fWNvbnN0IERnPXtob3Jpem9udGFsOiJob3Jpem9udGFsIix2ZXJ0aWNhbDoidmVydGlj'@; put 'YWwifTtzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigibW9kaWZ5QXV0b2ZpbGxSYW5nZSIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVBdXRvZmlsbCIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckF1dG9maWxsIik7Y29uc3QgYUxlPVsiZmlsbEhhbmRs'@; put 'ZSJdO2NsYXNzIHVMZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiJhdXRvZmlsbCJ9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMjB9c3RhdGljIGdldCBTRVRUSU5HX0tFWVMoKXtyZXR1cm5bImF1dG9maWxsIiwuLi5hTGVdfWNvbnN0cnVj'@; put 'dG9yKGwpe3N1cGVyKGwpLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBsbCh0aGlzKSx0aGlzLmFkZGluZ1N0YXJ0ZWQ9ITEsdGhpcy5tb3VzZURvd25PbkNlbGxDb3JuZXI9ITEsdGhpcy5tb3VzZURyYWdPdXRzaWRlPSExLHRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPTAsdGhpcy5kaXJlY3Rpb25z'@; put 'PVtdLHRoaXMuYXV0b0luc2VydFJvdz0hMX1pc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maWxsSGFuZGxlfWVuYWJsZVBsdWdpbigpe3RoaXMuZW5hYmxlZHx8KHRoaXMubWFwU2V0dGluZ3MoKSx0aGlzLnJlZ2lzdGVyRXZlbnRzKCksdGhpcy5hZGRIb29rKCJh'@; put 'ZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biIsbD0+dGhpcy5vbkFmdGVyQ2VsbENvcm5lck1vdXNlRG93bihsKSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIixsPT50aGlzLm9uQ2VsbENvcm5lckRibENsaWNrKGwpKSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2Vs'@; put 'bE1vdXNlT3ZlciIsKGwsYSk9PnRoaXMub25CZWZvcmVDZWxsTW91c2VPdmVyKGEpKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7'@; put 'dGhpcy5jbGVhck1hcHBlZFNldHRpbmdzKCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfWdldFNlbGVjdGlvbkRhdGEoKXtjb25zdCBsPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkse3JvdzphLGNvbDpkfT1sLmdldFRvcFN0YXJ0Q29ybmVyKCkse3JvdzpoLGNvbDpmfT1sLmdldEJv'@; put 'dHRvbUVuZENvcm5lcigpLF89dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLFt7c3RhcnRSb3c6YSxzdGFydENvbDpkLGVuZFJvdzpoLGVuZENvbDpmfV0pLFQ9W10sVz1bXSxpZT1bXTtyZXR1cm4gRG4oXyxwZT0+e2ZvcihsZXQgd2U9cGUuc3RhcnRSb3c7d2U8PXBl'@; put 'LmVuZFJvdzt3ZSs9MSktMT09PVQuaW5kZXhPZih3ZSkmJlQucHVzaCh3ZSk7Zm9yKGxldCB3ZT1wZS5zdGFydENvbDt3ZTw9cGUuZW5kQ29sO3dlKz0xKS0xPT09Vy5pbmRleE9mKHdlKSYmVy5wdXNoKHdlKX0pLERuKFQscGU9Pntjb25zdCB3ZT1bXTtEbihXLEVlPT57d2UucHVzaCh0aGlz'@; put 'LmhvdC5nZXRDb3B5YWJsZURhdGEocGUsRWUpKX0pLGllLnB1c2god2UpfSksaWV9ZmlsbEluKCl7aWYodGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuaXNFbXB0eSgpKXJldHVybiExO2NvbnN0W2wsYSxkLGhdPXRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0'@; put 'RmlsbCgpLmdldFZpc3VhbENvcm5lcnMoKSxmPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksXz1mLmdldFRvcFN0YXJ0Q29ybmVyKCksVD1mLmdldEJvdHRvbUVuZENvcm5lcigpO3RoaXMucmVzZXRTZWxlY3Rpb25PZkRyYWdnZWRBcmVhKCk7Y29uc3QgVz1bXy5yb3csXy5jb2ws'@; put 'VC5yb3csVC5jb2xdLGllPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlBdXRvZmlsbFJhbmdlIixbTWF0aC5taW4oXy5yb3csbCksTWF0aC5taW4oXy5jb2wsYSksTWF0aC5tYXgoVC5yb3csZCksTWF0aC5tYXgoVC5jb2wsaCldLFcpLHtkaXJlY3Rpb25PZkRyYWc6cGUsc3RhcnRPZkRyYWdD'@; put 'b29yZHM6d2UsZW5kT2ZEcmFnQ29vcmRzOkVlfT1mdW5jdGlvbiBpTGUoYyxsLGEpe2xldCBkLGgsZjtyZXR1cm4gbFswXT09PWNbMF0mJmxbMV08Y1sxXT8oZj0ibGVmdCIsZD1hKGxbMF0sbFsxXSksaD1hKGxbMl0sY1sxXS0xKSk6bFsyXT09PWNbMl0mJmxbMF09PT1jWzBdJiZsWzNdPmNb'@; put 'M10/KGY9InJpZ2h0IixkPWEobFswXSxjWzNdKzEpLGg9YShsWzJdLGxbM10pKTpsWzBdPGNbMF0mJmxbMV09PT1jWzFdPyhmPSJ1cCIsZD1hKGxbMF0sbFsxXSksaD1hKGNbMF0tMSxsWzNdKSk6bFsyXT5jWzJdJiZsWzFdPT09Y1sxXSYmKGY9ImRvd24iLGQ9YShjWzJdKzEsbFsxXSksaD1h'@; put 'KGxbMl0sbFszXSkpLGQmJmQubm9ybWFsaXplKCksaCYmaC5ub3JtYWxpemUoKSx7ZGlyZWN0aW9uT2ZEcmFnOmYsc3RhcnRPZkRyYWdDb29yZHM6ZCxlbmRPZkRyYWdDb29yZHM6aH19KFcsaWUsKFplLGl0KT0+dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoWmUsaXQpKTtpZih3ZSYmd2Uu'@; put 'cm93Pi0xJiZ3ZS5jb2w+LTEpe2NvbnN0IFplPXRoaXMuZ2V0U2VsZWN0aW9uRGF0YSgpLGl0PWYuY2xvbmUoKSxldD10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHdlLHdlLEVlKSx5dD10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQXV0b2ZpbGwiLFplLGl0LGV0LHBlKTtpZighMT09PXl0'@; put 'KXJldHVybiB0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpLHRoaXMuaG90LnJlbmRlcigpLCExO2xldCBFdD15dDtjb25zdCBTdD15dDtpZihbInVwIiwibGVmdCJdLmluZGV4T2YocGUpPi0xJiYoMSE9PVN0Lmxlbmd0aHx8MCE9PVN0WzBdLmxlbmd0aCkp'@; put 'aWYoRXQ9W10sInVwIj09PXBlKXtjb25zdCBKdD1FZS5yb3ctd2Uucm93KzEsbm49SnQlU3QubGVuZ3RoO2ZvcihsZXQgdm49MDt2bjxKdDt2bisrKUV0LnB1c2goU3RbKHZuKyhTdC5sZW5ndGgtbm4pKSVTdC5sZW5ndGhdKX1lbHNle2NvbnN0IEp0PUVlLmNvbC13ZS5jb2wrMSxubj1KdCVT'@; put 'dFswXS5sZW5ndGg7Zm9yKGxldCB2bj0wO3ZuPFN0Lmxlbmd0aDt2bisrKXtFdC5wdXNoKFtdKTtmb3IobGV0IE5uPTA7Tm48SnQ7Tm4rKylFdFt2bl0ucHVzaChTdFt2bl1bKE5uKyhTdFt2bl0ubGVuZ3RoLW5uKSklU3Rbdm5dLmxlbmd0aF0pfX10aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJh'@; put 'eSh3ZS5yb3csd2UuY29sLEV0LEVlLnJvdyxFZS5jb2wsYCR7dGhpcy5wbHVnaW5OYW1lfS5maWxsYCxudWxsKSx0aGlzLnNldFNlbGVjdGlvbihpZSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQXV0b2ZpbGwiLEV0LGl0LGV0LHBlKSx0aGlzLmhvdC5yZW5kZXIoKX1lbHNlIHRoaXMuaG90'@; put 'Ll9yZWZyZXNoQm9yZGVycygpO3JldHVybiEwfXJlZHVjZVNlbGVjdGlvbkFyZWFJZk5lZWRlZChsKXtyZXR1cm4gbC5yb3c8MCYmKGwucm93PTApLGwuY29sPDAmJihsLmNvbD0wKSxsfWdldENvb3Jkc09mRHJhZ0FuZERyb3BCb3JkZXJzKGwpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2VsZWN0'@; put 'ZWRSYW5nZUxhc3QoKSxkPWEuZ2V0Qm90dG9tRW5kQ29ybmVyKCk7bGV0IGg9bDtpZih0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoRGcudmVydGljYWwpJiZ0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoRGcuaG9yaXpvbnRhbCkpe2NvbnN0IGY9YS5nZXRUb3BTdGFydENvcm5lcigpOyhkLmNv'@; put 'bDw9bC5jb2x8fGYuY29sPj1sLmNvbCkmJihoPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGQucm93LGwuY29sKSksKGQucm93PGwucm93fHxmLnJvdz5sLnJvdykmJihoPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGwucm93LGQuY29sKSl9ZWxzZSBpZih0aGlzLmRpcmVjdGlvbnMu'@; put 'aW5jbHVkZXMoRGcudmVydGljYWwpKWg9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobC5yb3csZC5jb2wpO2Vsc2V7aWYoIXRoaXMuZGlyZWN0aW9ucy5pbmNsdWRlcyhEZy5ob3Jpem9udGFsKSlyZXR1cm47aD10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhkLnJvdyxsLmNvbCl9cmV0'@; put 'dXJuIHRoaXMucmVkdWNlU2VsZWN0aW9uQXJlYUlmTmVlZGVkKGgpfXNob3dCb3JkZXIobCl7Y29uc3QgYT10aGlzLmdldENvb3Jkc09mRHJhZ0FuZERyb3BCb3JkZXJzKGwpO2EmJnRoaXMucmVkcmF3Qm9yZGVycyhhKX1hZGRSb3coKXt0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgpPT57'@; put 'dGhpcy5ob3QuYWx0ZXIoImluc2VydF9yb3dfYmVsb3ciLHZvaWQgMCwxLGAke3RoaXMucGx1Z2luTmFtZX0uZmlsbGApLHRoaXMuYWRkaW5nU3RhcnRlZD0hMX0sMjAwKX1hZGROZXdSb3dJZk5lZWRlZCgpe2lmKCF0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5pc0Vt'@; put 'cHR5KCkmJiExPT09dGhpcy5hZGRpbmdTdGFydGVkJiZ0aGlzLmF1dG9JbnNlcnRSb3cpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCksYT10aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5nZXRWaXN1YWxDb3JuZXJzKCksZD10aGlzLmhvdC5jb3VudFJv'@; put 'd3MoKTtsWzJdPGQtMSYmYVsyXT09PWQtMSYmKHRoaXMuYWRkaW5nU3RhcnRlZD0hMCx0aGlzLmFkZFJvdygpKX19Z2V0SW5kZXhPZkxhc3RBZGphY2VudEZpbGxlZEluUm93KGwpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0RGF0YSgpLGQ9dGhpcy5ob3QuY291bnRSb3dzKCk7bGV0IGg7Zm9yKGxl'@; put 'dCBmPWxbMl0rMTtmPGQ7ZisrKXtmb3IobGV0IFc9bFsxXTtXPD1sWzNdO1crKylpZihhW2ZdW1ddKXJldHVybi0xOyhhW2ZdW2xbMV0tMV18fGFbZl1bbFszXSsxXSkmJihoPWYpfXJldHVybiBofWFkZFNlbGVjdGlvbkZyb21TdGFydEFyZWFUb1NwZWNpZmljUm93SW5kZXgobCxhKXt0aGlz'@; put 'LmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpLmFkZCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsWzBdLGxbMV0pKS5hZGQodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoYSxsWzNdKSkuY29tbWl0KCl9c2V0U2VsZWN0aW9uKGwpe3RoaXMuaG90LnNlbGVj'@; put 'dENlbGwoLi4uY3MobCxhPT5NYXRoLm1heChhLDApKSwhMSwhMSl9c2VsZWN0QWRqYWNlbnQoKXtjb25zdCBsPXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpLGE9dGhpcy5nZXRJbmRleE9mTGFzdEFkamFjZW50RmlsbGVkSW5Sb3cobCk7cmV0dXJuLTEhPT1hJiZ2b2lkIDAhPT1hJiYodGhp'@; put 'cy5hZGRTZWxlY3Rpb25Gcm9tU3RhcnRBcmVhVG9TcGVjaWZpY1Jvd0luZGV4KGwsYSksITApfXJlc2V0U2VsZWN0aW9uT2ZEcmFnZ2VkQXJlYSgpe3RoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPTAsdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuY2xlYXIoKX1yZWRyYXdC'@; put 'b3JkZXJzKGwpe3RoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgpLmNsZWFyKCkuYWRkKHRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuZnJvbSkuYWRkKHRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkudG8pLmFkZChsKS5jb21taXQoKSx0aGlzLmhvdC52'@; put 'aWV3LnJlbmRlcigpfWdldElmTW91c2VXYXNEcmFnZ2VkT3V0c2lkZShsKXtjb25zdHtkb2N1bWVudEVsZW1lbnQ6YX09dGhpcy5ob3Qucm9vdERvY3VtZW50LGQ9S2wodGhpcy5ob3QudGFibGUpLnRvcC0odGhpcy5ob3Qucm9vdFdpbmRvdy5wYWdlWU9mZnNldHx8YS5zY3JvbGxUb3ApK2Fs'@; put 'KHRoaXMuaG90LnRhYmxlKSxoPUtsKHRoaXMuaG90LnRhYmxlKS5sZWZ0LSh0aGlzLmhvdC5yb290V2luZG93LnBhZ2VYT2Zmc2V0fHxhLnNjcm9sbExlZnQpK3dhKHRoaXMuaG90LnRhYmxlKTtyZXR1cm4gbC5jbGllbnRZPmQmJmwuY2xpZW50WDw9aH1yZWdpc3RlckV2ZW50cygpe2NvbnN0'@; put 'e2RvY3VtZW50RWxlbWVudDpsfT10aGlzLmhvdC5yb290RG9jdW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZXVwIiwoKT0+dGhpcy5vbk1vdXNlVXAoKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZW1vdmUiLGE9PnRo'@; put 'aXMub25Nb3VzZU1vdmUoYSkpfW9uQ2VsbENvcm5lckRibENsaWNrKCl7dGhpcy5zZWxlY3RBZGphY2VudCgpJiZ0aGlzLmZpbGxJbigpfW9uQWZ0ZXJDZWxsQ29ybmVyTW91c2VEb3duKCl7dGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHM9MSx0aGlzLm1vdXNlRG93bk9uQ2VsbENvcm5lcj0hMH1v'@; put 'bkJlZm9yZUNlbGxNb3VzZU92ZXIobCl7dGhpcy5tb3VzZURvd25PbkNlbGxDb3JuZXImJiF0aGlzLmhvdC52aWV3LmlzTW91c2VEb3duKCkmJnRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzJiYodGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHMrPTEsdGhpcy5zaG93Qm9yZGVyKGwpLHRoaXMuYWRkTmV3'@; put 'Um93SWZOZWVkZWQoKSl9b25Nb3VzZVVwKCl7dGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHMmJih0aGlzLmhhbmRsZURyYWdnZWRDZWxscz4xJiZ0aGlzLmZpbGxJbigpLHRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPTAsdGhpcy5tb3VzZURvd25PbkNlbGxDb3JuZXI9ITEpfW9uTW91c2VNb3ZlKGwp'@; put 'e2NvbnN0IGE9dGhpcy5nZXRJZk1vdXNlV2FzRHJhZ2dlZE91dHNpZGUobCk7ITE9PT10aGlzLmFkZGluZ1N0YXJ0ZWQmJnRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPjAmJmE/KHRoaXMubW91c2VEcmFnT3V0c2lkZT0hMCx0aGlzLmFkZGluZ1N0YXJ0ZWQ9ITApOnRoaXMubW91c2VEcmFnT3V0'@; put 'c2lkZT0hMSx0aGlzLm1vdXNlRHJhZ091dHNpZGUmJnRoaXMuYXV0b0luc2VydFJvdyYmdGhpcy5hZGRSb3coKX1jbGVhck1hcHBlZFNldHRpbmdzKCl7dGhpcy5kaXJlY3Rpb25zLmxlbmd0aD0wLHRoaXMuYXV0b0luc2VydFJvdz0hMX1tYXBTZXR0aW5ncygpe2NvbnN0IGw9ZnVuY3Rpb24g'@; put 'b0xlKGMpe2NvbnN0IGw9e307cmV0dXJuITA9PT1jPyhsLmRpcmVjdGlvbnM9T2JqZWN0LmtleXMoRGcpLGwuYXV0b0luc2VydFJvdz0hMCk6dXMoYyk/KGwuYXV0b0luc2VydFJvdz0hIUtpKGMuYXV0b0luc2VydFJvdykmJmMuZGlyZWN0aW9uIT09RGcuaG9yaXpvbnRhbCYmYy5hdXRvSW5z'@; put 'ZXJ0Um93LGwuZGlyZWN0aW9ucz1LaShjLmRpcmVjdGlvbik/W2MuZGlyZWN0aW9uXTpPYmplY3Qua2V5cyhEZykpOiJzdHJpbmciPT10eXBlb2YgYz8obC5kaXJlY3Rpb25zPVtjXSxsLmF1dG9JbnNlcnRSb3c9ITApOihsLmRpcmVjdGlvbnM9W10sbC5hdXRvSW5zZXJ0Um93PSExKSxsfSh0'@; put 'aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpbGxIYW5kbGUpO3RoaXMuZGlyZWN0aW9ucz1sLmRpcmVjdGlvbnMsdGhpcy5hdXRvSW5zZXJ0Um93PWwuYXV0b0luc2VydFJvd31kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1jb25zdCBHaz0iYXV0b1Jvd1NpemUiO2NsYXNzIFR5IGV4dGVuZHMg'@; put 'WnN7c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIEdrfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDQwfXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuITB9c3RhdGljIGdldCBDQUxDVUxBVElPTl9TVEVQKCl7cmV0dXJuIDUwfXN0YXRpYyBnZXQgU1lO'@; put 'Q19DQUxDVUxBVElPTl9MSU1JVCgpe3JldHVybiA1MDB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksdGhpcy5yb3dIZWlnaHRzTWFwPXZvaWQgMCx0aGlzLmhlYWRlckhlaWdodD1udWxsLHRoaXMuZ2hvc3RUYWJsZT1uZXcgbGoodGhpcy5ob3QpLHRoaXMuc2FtcGxlc0dlbmVyYXRvcj1uZXcg'@; put 'cHJlKChhLGQpPT57bGV0IGg7cmV0dXJuIGE+PTA/aD10aGlzLmhvdC5nZXREYXRhQXRDZWxsKGEsZCk6LTE9PT1hJiYoaD10aGlzLmhvdC5nZXRDb2xIZWFkZXIoZCkpLHt2YWx1ZTpofX0pLHRoaXMuZmlyc3RDYWxjdWxhdGlvbj0hMCx0aGlzLmluUHJvZ3Jlc3M9ITEsdGhpcy5tZWFzdXJl'@; put 'ZFJvd3M9MCx0aGlzLnJvd0hlaWdodHNNYXA9bmV3IFdwLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJhdXRvUm93U2l6ZSIsdGhpcy5yb3dIZWlnaHRzTWFwKSx0aGlzLmFkZEhvb2soImJlZm9yZVJvd1Jlc2l6ZSIsKGEsZCxoKT0+dGhpcy5vbkJlZm9yZVJvd1Jlc2l6'@; put 'ZShhLGQsaCkpfWlzRW5hYmxlZCgpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtHa107cmV0dXJuITA9PT1sfHx1cyhsKX1lbmFibGVQbHVnaW4oKXt2YXIgbD10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuc2V0U2FtcGxpbmdPcHRpb25zKCksdGhpcy5hZGRIb29rKCJhZnRlckxv'@; put 'YWREYXRhIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJMb2FkRGF0YSguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVDaGFuZ2VSZW5kZXIiLGE9PnRoaXMub25CZWZvcmVDaGFuZ2UoYSkpLHRoaXMuYWRkSG9vaygiYmVmb3JlQ29sdW1uUmVzaXplIiwoKT0+dGhpcy5y'@; put 'ZWNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQoKSksdGhpcy5hZGRIb29rKCJiZWZvcmVWaWV3UmVuZGVyIixhPT50aGlzLm9uQmVmb3JlVmlld1JlbmRlcihhKSksdGhpcy5hZGRIb29rKCJtb2RpZnlSb3dIZWlnaHQiLChhLGQpPT50aGlzLmdldFJvd0hlaWdodChkLGEpKSx0aGlzLmFkZEhvb2so'@; put 'Im1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsKCk9PnRoaXMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCkpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5oZWFkZXJIZWlnaHQ9bnVsbCxzdXBlci5kaXNhYmxlUGx1Z2luKCksdGhpcy5hZGRIb29rKCJiZWZvcmVS'@; put 'b3dSZXNpemUiLChsLGEsZCk9PnRoaXMub25CZWZvcmVSb3dSZXNpemUobCxhLGQpKX1jYWxjdWxhdGVSb3dzSGVpZ2h0KCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRSb3dzKCkt'@; put 'MX0sYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudENvbHMoKS0xfSxkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07Y29uc3QgaD0ibnVt'@; put 'YmVyIj09dHlwZW9mIGw/e2Zyb206bCx0bzpsfTpsLGY9Im51bWJlciI9PXR5cGVvZiBhP3tmcm9tOmEsdG86YX06YTtpZihudWxsIT09dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKDApKXtjb25zdCBfPXRoaXMuc2FtcGxlc0dlbmVyYXRvci5nZW5lcmF0ZVJvd1NhbXBsZXMoLTEsZik7dGhpcy5n'@; put 'aG9zdFRhYmxlLmFkZENvbHVtbkhlYWRlcnNSb3coXy5nZXQoLTEpKX12byhoLmZyb20saC50byxfPT57KGR8fG51bGw9PT10aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVBdEluZGV4KF8pKSYmRG4odGhpcy5zYW1wbGVzR2VuZXJhdG9yLmdlbmVyYXRlUm93U2FtcGxlcyhfLGYpLFc9Pnts'@; put 'ZXRbaWUscGVdPVc7cmV0dXJuIHRoaXMuZ2hvc3RUYWJsZS5hZGRSb3coaWUscGUpfSl9KSx0aGlzLmdob3N0VGFibGUucm93cy5sZW5ndGgmJih0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e3RoaXMuZ2hvc3RUYWJsZS5nZXRIZWlnaHRzKChfLFQpPT57XzwwP3RoaXMuaGVhZGVySGVp'@; put 'Z2h0PVQ6dGhpcy5yb3dIZWlnaHRzTWFwLnNldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KF8pLFQpfSl9LCEwKSx0aGlzLm1lYXN1cmVkUm93cz1oLnRvKzEsdGhpcy5naG9zdFRhYmxlLmNsZWFuKCkpfWNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQoKXtsZXQgbD1hcmd1bWVu'@; put 'dHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudENvbHMoKS0xfSxhPTA7Y29uc3QgZD10aGlzLmhvdC5jb3VudFJvd3MoKS0xO2xldCBoPW51bGw7dGhpcy5pblByb2dyZXNzPSEwO2NvbnN0IGY9KCk9PntpZigh'@; put 'dGhpcy5ob3QpcmV0dXJuIGR5KGgpLHZvaWQodGhpcy5pblByb2dyZXNzPSExKTt0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206YSx0bzpNYXRoLm1pbihhK1R5LkNBTENVTEFUSU9OX1NURVAsZCl9LGwpLGE9YStUeS5DQUxDVUxBVElPTl9TVEVQKzEsYTxkP2g9eWsoZik6KGR5KGgp'@; put 'LHRoaXMuaW5Qcm9ncmVzcz0hMSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCksdGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJnRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVy'@; put 'bGF5LmNsb25lLmRyYXcoKSl9LF89dGhpcy5nZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCgpO3RoaXMuZmlyc3RDYWxjdWxhdGlvbiYmXz49MCYmKHRoaXMuY2FsY3VsYXRlUm93c0hlaWdodCh7ZnJvbTowLHRvOl99LGwpLHRoaXMuZmlyc3RDYWxjdWxhdGlvbj0hMSxhPV8rMSksYTxkP2YoKToo'@; put 'dGhpcy5pblByb2dyZXNzPSExLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCExKSl9c2V0U2FtcGxpbmdPcHRpb25zKCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZXR0aW5ncygpW0drXSxhPWwmJmJsKGwsInNhbXBsaW5nUmF0aW8iKT9sLnNhbXBsaW5nUmF0aW86dm9pZCAwLGQ9'@; put 'bCYmYmwobCwiYWxsb3dTYW1wbGVEdXBsaWNhdGVzIik/bC5hbGxvd1NhbXBsZUR1cGxpY2F0ZXM6dm9pZCAwO2EmJiFpc05hTihhKSYmdGhpcy5zYW1wbGVzR2VuZXJhdG9yLnNldFNhbXBsZUNvdW50KHBhcnNlSW50KGEsMTApKSxkJiZ0aGlzLnNhbXBsZXNHZW5lcmF0b3Iuc2V0QWxsb3dE'@; put 'dXBsaWNhdGVzKGQpfXJlY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpe2U3KHRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuVEFCTEUpJiYodGhpcy5jbGVhckNhY2hlKCksdGhpcy5jYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCkpfWdldFN5bmNDYWxjdWxhdGlvbkxpbWl0KCl7Y29uc3QgbD10aGlz'@; put 'LmhvdC5nZXRTZXR0aW5ncygpW0drXTtsZXQgYT1UeS5TWU5DX0NBTENVTEFUSU9OX0xJTUlUO2NvbnN0IGQ9dGhpcy5ob3QuY291bnRSb3dzKCktMTtyZXR1cm4gdXMobCkmJihhPWwuc3luY0xpbWl0LGxOKGEpP2E9SU4oZCxhKTphPj49MCksTWF0aC5taW4oYSxkKX1nZXRSb3dIZWlnaHQo'@; put 'bCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnZvaWQgMDtjb25zdCBkPWw8MD90aGlzLmhlYWRlckhlaWdodDp0aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCkpO2xl'@; put 'dCBoPWE7cmV0dXJuIG51bGwhPT1kJiZkPihhfHwwKSYmKGg9ZCksaH1nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKXtyZXR1cm4gdGhpcy5oZWFkZXJIZWlnaHR9Z2V0Rmlyc3RWaXNpYmxlUm93KCl7Y29uc3QgbD10aGlzLmhvdC52aWV3Ll93dDtyZXR1cm4gbC53dFZpZXdwb3J0LnJvd3NWaXNp'@; put 'YmxlQ2FsY3VsYXRvcj9sLnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlUm93KCk6bC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yP2wud3RUYWJsZS5nZXRGaXJzdFJlbmRlcmVkUm93KCk6LTF9Z2V0TGFzdFZpc2libGVSb3coKXtjb25zdCBsPXRoaXMuaG90LnZpZXcuX3d0O3JldHVy'@; put 'biBsLnd0Vmlld3BvcnQucm93c1Zpc2libGVDYWxjdWxhdG9yP2wud3RUYWJsZS5nZXRMYXN0VmlzaWJsZVJvdygpOmwud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvcj9sLnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkUm93KCk6LTF9Y2xlYXJDYWNoZSgpe3RoaXMuaGVhZGVySGVpZ2h0'@; put 'PW51bGwsdGhpcy5yb3dIZWlnaHRzTWFwLmluaXQoKX1jbGVhckNhY2hlQnlSYW5nZShsKXtjb25zdHtmcm9tOmEsdG86ZH09Im51bWJlciI9PXR5cGVvZiBsP3tmcm9tOmwsdG86bH06bDt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e3ZvKE1hdGgubWluKGEsZCksTWF0aC5tYXgoYSxk'@; put 'KSxoPT57dGhpcy5yb3dIZWlnaHRzTWFwLnNldFZhbHVlQXRJbmRleChoLG51bGwpfSl9LCEwKX1pc05lZWRSZWNhbGN1bGF0ZSgpe3JldHVybiEhXzEodGhpcy5yb3dIZWlnaHRzTWFwLmdldFZhbHVlcygpLnNsaWNlKDAsdGhpcy5tZWFzdXJlZFJvd3MpLGw9Pm51bGw9PT1sKS5sZW5ndGh9'@; put 'b25CZWZvcmVWaWV3UmVuZGVyKCl7Y29uc3QgbD10aGlzLmhvdC5yZW5kZXJDYWxsLGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NCb3R0b20sZD10aGlzLmdldEZpcnN0VmlzaWJsZVJvdygpLGg9dGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpO2lmKC0xIT09ZCYmLTEhPT1oKXtp'@; put 'Zih0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206ZCx0bzpofSx2b2lkIDAsbCksYSl7Y29uc3QgZj10aGlzLmhvdC5jb3VudFJvd3MoKS0xO3RoaXMuY2FsY3VsYXRlUm93c0hlaWdodCh7ZnJvbTpmLWEsdG86Zn0pfXRoaXMuaXNOZWVkUmVjYWxjdWxhdGUoKSYmIXRoaXMuaW5Qcm9n'@; put 'cmVzcyYmdGhpcy5jYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCl9fW9uQmVmb3JlUm93TW92ZShsLGEpe3RoaXMuY2xlYXJDYWNoZUJ5UmFuZ2Uoe2Zyb206bCx0bzphfSksdGhpcy5jYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCl9b25CZWZvcmVSb3dSZXNpemUobCxhLGQpe2xldCBoPWw7cmV0dXJu'@; put 'IGQmJih0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoYSx2b2lkIDAsITApLGg9dGhpcy5nZXRSb3dIZWlnaHQoYSkpLGh9b25BZnRlckxvYWREYXRhKCl7dGhpcy5ob3Qudmlldz90aGlzLnJlY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpOnNldFRpbWVvdXQoKCk9Pnt0aGlzLmhvdCYmdGhpcy5y'@; put 'ZWNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQoKX0sMCl9b25CZWZvcmVDaGFuZ2UobCl7bGV0IGE9bnVsbDsxPT09bC5sZW5ndGg/YT1sWzBdWzBdOmwubGVuZ3RoPjEmJihhPXtmcm9tOmxbMF1bMF0sdG86bFtsLmxlbmd0aC0xXVswXX0pLG51bGwhPT1hJiZ0aGlzLmNsZWFyQ2FjaGVCeVJhbmdl'@; put 'KGEpfWRlc3Ryb3koKXt0aGlzLmdob3N0VGFibGUuY2xlYW4oKSxzdXBlci5kZXN0cm95KCl9fWNvbnN0IG1yZT1uZXcgTWFwKFtbImluZGV4ZXNTZXF1ZW5jZSIse2dldExpc3RXaXRoSW5zZXJ0ZWRJdGVtczpjVixnZXRMaXN0V2l0aFJlbW92ZWRJdGVtczpneX1dLFsicGh5c2ljYWxseUlu'@; put 'ZGV4ZWQiLHtnZXRMaXN0V2l0aEluc2VydGVkSXRlbXM6aFYsZ2V0TGlzdFdpdGhSZW1vdmVkSXRlbXM6ZlZ9XV0pLHZyZT1jPT57aWYoITE9PT1tcmUuaGFzKGMpKXRocm93IG5ldyBFcnJvcihgQWx0ZXIgc3RyYXRlZ3kgd2l0aCBJRCAnJHtjfScgZG9lcyBub3QgZXhpc3QuYCk7cmV0dXJu'@; put 'IG1yZS5nZXQoYyl9LHtnZXRMaXN0V2l0aEluc2VydGVkSXRlbXM6ZkxlLGdldExpc3RXaXRoUmVtb3ZlZEl0ZW1zOnBMZX09dnJlKCJwaHlzaWNhbGx5SW5kZXhlZCIpLHtnZXRMaXN0V2l0aEluc2VydGVkSXRlbXM6dkxlLGdldExpc3RXaXRoUmVtb3ZlZEl0ZW1zOl9MZX09dnJlKCJwaHlz'@; put 'aWNhbGx5SW5kZXhlZCIpLGRqPSJiaW5kUm93c1dpdGhIZWFkZXJzIixTTGU9bmV3IE1hcChbWyJsb29zZSIsY2xhc3MgZ0xlIGV4dGVuZHMgRWd7Y29uc3RydWN0b3IoKXtzdXBlcihsPT5sKX1pbnNlcnQobCxhKXtjb25zdCBkPWRWKHRoaXMuaW5kZXhlZFZhbHVlcyxhKTt0aGlzLmluZGV4'@; put 'ZWRWYWx1ZXM9ZkxlKGQsbCxhLHRoaXMuaW5pdFZhbHVlT3JGbiksc3VwZXIuaW5zZXJ0KGwsYSl9cmVtb3ZlKGwpe2NvbnN0IGE9cExlKHRoaXMuaW5kZXhlZFZhbHVlcyxsKTt0aGlzLmluZGV4ZWRWYWx1ZXM9dVYoYSxsKSxzdXBlci5yZW1vdmUobCl9fV0sWyJzdHJpY3QiLGNsYXNzIGJM'@; put 'ZSBleHRlbmRzIEVne2NvbnN0cnVjdG9yKCl7c3VwZXIobD0+bCl9aW5zZXJ0KGwsYSl7dGhpcy5pbmRleGVkVmFsdWVzPXZMZSh0aGlzLmluZGV4ZWRWYWx1ZXMsbCxhLChkLGgpPT50aGlzLmdldE5leHRWYWx1ZShoKSksc3VwZXIuaW5zZXJ0KGwsYSl9cmVtb3ZlKGwpe3RoaXMuaW5kZXhl'@; put 'ZFZhbHVlcz1fTGUodGhpcy5pbmRleGVkVmFsdWVzLGwpLHN1cGVyLnJlbW92ZShsKX1nZXROZXh0VmFsdWUobCl7cmV0dXJuIE1hdGgubWF4KC4uLnRoaXMuZ2V0VmFsdWVzKCkpKzErbH19XV0pO2NsYXNzIE1MZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBk'@; put 'an1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyMTB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksdGhpcy5oZWFkZXJJbmRleGVzPW51bGx9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2RqXX1lbmFibGVQbHVnaW4oKXtpZih0aGlzLmVuYWJs'@; put 'ZWQpcmV0dXJuO2xldCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbZGpdOyJzdHJpbmciIT10eXBlb2YgbCYmKGw9Imxvb3NlIik7Y29uc3QgYT1TTGUuZ2V0KGwpO3RoaXMuaGVhZGVySW5kZXhlcz10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCgiYmluZFJvd3NXaXRoSGVh'@; put 'ZGVycyIsbmV3IGEpLHRoaXMuYWRkSG9vaygibW9kaWZ5Um93SGVhZGVyIixkPT50aGlzLm9uTW9kaWZ5Um93SGVhZGVyKGQpKSxzdXBlci5lbmFibGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCgiYmluZFJvd3NXaXRoSGVh'@; put 'ZGVycyIpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1vbk1vZGlmeVJvd0hlYWRlcihsKXtyZXR1cm4gdGhpcy5oZWFkZXJJbmRleGVzLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KGwpKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBoaihjLGwsYSl7'@; put 'cmV0dXJuIGw9ZnVuY3Rpb24ga0xlKGMpe3ZhciBsPWZ1bmN0aW9uIEFMZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYo'@; put 'Im9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5'@; put 'cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIF9yZShjLGwpe3JldHVybiBmdW5jdGlvbiBUTGUoYyxsKXtyZXR1'@; put 'cm4gbC5nZXQ/bC5nZXQuY2FsbChjKTpsLnZhbHVlfShjLGJyZShjLGwsImdldCIpKX1mdW5jdGlvbiBmaihjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uIERMZShjLGwsYSl7aWYobC5zZXQpbC5zZXQuY2FsbChjLGEpO2Vsc2V7aWYoIWwud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0'@; put 'ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2wudmFsdWU9YX19KGMsYnJlKGMsbCwic2V0IiksYSksYX1mdW5jdGlvbiBicmUoYyxsLGEpe2lmKCFsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIithKyIgcHJpdmF0ZSBmaWVsZCBvbiBu'@; put 'b24taW5zdGFuY2UiKTtyZXR1cm4gbC5nZXQoYyl9Y29uc3QgcGo9ImNvbGxhcHNpYmxlQ29sdW1ucyIsTExlPVsibmVzdGVkSGVhZGVycyJdLEM3PSJjb2xsYXBzaWJsZUluZGljYXRvciIseXJlPW5ldyBNYXAoW1siY29sbGFwc2UiLHtoaWRlQ29sdW1uOiEwLGJlZm9yZUhvb2s6ImJlZm9y'@; put 'ZUNvbHVtbkNvbGxhcHNlIixhZnRlckhvb2s6ImFmdGVyQ29sdW1uQ29sbGFwc2UifV0sWyJleHBhbmQiLHtoaWRlQ29sdW1uOiExLGJlZm9yZUhvb2s6ImJlZm9yZUNvbHVtbkV4cGFuZCIsYWZ0ZXJIb29rOiJhZnRlckNvbHVtbkV4cGFuZCJ9XV0pO3ZhciBTNz1uZXcgV2Vha01hcDtjbGFz'@; put 'cyBSTGUgZXh0ZW5kcyBac3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaGoodGhpcywibmVzdGVkSGVhZGVyc1BsdWdpbiIsbnVsbCksaGoodGhpcywiZXZlbnRNYW5hZ2VyIixuZXcgbGwodGhpcykpLGhqKHRoaXMsImhlYWRlclN0YXRlTWFuYWdlciIsbnVsbCksZnVuY3Rp'@; put 'b24geExlKGMsbCxhKXsoZnVuY3Rpb24gRUxlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX0odGhpcyxTNyx7d3JpdGFi'@; put 'bGU6ITAsdmFsdWU6bnVsbH0pfXN0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBwan1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyOTB9c3RhdGljIGdldCBQTFVHSU5fREVQUygpe3JldHVyblsicGx1Z2luOk5lc3RlZEhlYWRlcnMiXX1zdGF0aWMgZ2V0IFNFVFRJ'@; put 'TkdfS0VZUygpe3JldHVybltwaiwuLi5MTGVdfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtwal19ZW5hYmxlUGx1Z2luKCl7dmFyIGw9dGhpcztpZih0aGlzLmVuYWJsZWQpcmV0dXJuO2NvbnN0e25lc3RlZEhlYWRlcnM6YX09dGhpcy5ob3QuZ2V0U2V0dGlu'@; put 'Z3MoKTthfHxHYSgiWW91IG5lZWQgdG8gY29uZmlndXJlIHRoZSBOZXN0ZWQgSGVhZGVycyBwbHVnaW4gaW4gb3JkZXIgdG8gdXNlIGNvbGxhcHNpYmxlIGhlYWRlcnMuIiksZmoodGhpcyxTNyx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5jcmVhdGVBbmRSZWdpc3RlckluZGV4TWFwKHRo'@; put 'aXMucGx1Z2luTmFtZSwiaGlkaW5nIikpLHRoaXMubmVzdGVkSGVhZGVyc1BsdWdpbj10aGlzLmhvdC5nZXRQbHVnaW4oIm5lc3RlZEhlYWRlcnMiKSx0aGlzLmhlYWRlclN0YXRlTWFuYWdlcj10aGlzLm5lc3RlZEhlYWRlcnNQbHVnaW4uZ2V0U3RhdGVNYW5hZ2VyKCksdGhpcy5hZGRIb29r'@; put 'KCJpbml0IiwoKT0+dGhpcy5vbkluaXQoKSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJMb2FkRGF0YSguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkFm'@; put 'dGVyR2V0Q29sSGVhZGVyKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsKGQsaCxmKT0+dGhpcy5vbkJlZm9yZU9uQ2VsbE1vdXNlRG93bihkLGgsZikpLHN1cGVyLmVuYWJsZVBsdWdpbigpLHRoaXMudXBkYXRlUGx1Z2luKCl9dXBkYXRlUGx1'@; put 'Z2luKCl7aWYodGhpcy5ob3Qudmlldyl7aWYoIXRoaXMubmVzdGVkSGVhZGVyc1BsdWdpbi5kZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzKXtjb25zdHtjb2xsYXBzaWJsZUNvbHVtbnM6bH09dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKTsiYm9vbGVhbiI9PXR5cGVvZiBsP3RoaXMuaGVhZGVyU3Rh'@; put 'dGVNYW5hZ2VyLm1hcFN0YXRlKGE9Pih7Y29sbGFwc2libGU6YS5vcmlnQ29sc3Bhbj4xfSkpOkFycmF5LmlzQXJyYXkobCkmJih0aGlzLmhlYWRlclN0YXRlTWFuYWdlci5tYXBTdGF0ZSgoKT0+KHtjb2xsYXBzaWJsZTohMX0pKSx0aGlzLmhlYWRlclN0YXRlTWFuYWdlci5tZXJnZVN0YXRl'@; put 'V2l0aChsKSl9c3VwZXIudXBkYXRlUGx1Z2luKCl9fWRpc2FibGVQbHVnaW4oKXt0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSksZmoodGhpcyxTNyxudWxsKSx0aGlzLm5lc3RlZEhlYWRlcnNQbHVnaW49bnVsbCx0aGlzLmNsZWFyQnV0'@; put 'dG9ucygpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1jbGVhckJ1dHRvbnMoKXtpZighdGhpcy5ob3QudmlldylyZXR1cm47Y29uc3QgbD10aGlzLmhvdC52aWV3Ll93dC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoLGE9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5USEVBRCxk'@; put 'PXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLlRIRUFELGg9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXk/dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENv'@; put 'cm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRDpudWxsLGY9ZnVuY3Rpb24oXyl7XyYmXy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKF8pfTt2bygwLGwtMSxfPT57Y29uc3QgVD1hLmNoaWxkTm9kZXNbX10sVz1kLmNoaWxkTm9kZXNbX10saWU9aD9oLmNoaWxkTm9kZXNbX106bnVsbDt2'@; put 'bygwLFQuY2hpbGROb2Rlcy5sZW5ndGgtMSxwZT0+e2xldCB3ZT1ULmNoaWxkTm9kZXNbcGVdLnF1ZXJ5U2VsZWN0b3IoYC4ke0M3fWApO2Yod2UpLFcmJlcuY2hpbGROb2Rlc1twZV0mJih3ZT1XLmNoaWxkTm9kZXNbcGVdLnF1ZXJ5U2VsZWN0b3IoYC4ke0M3fWApLGYod2UpKSxoJiZpZSYm'@; put 'aWUuY2hpbGROb2Rlc1twZV0mJih3ZT1pZS5jaGlsZE5vZGVzW3BlXS5xdWVyeVNlbGVjdG9yKGAuJHtDN31gKSxmKHdlKSl9KX0pfWV4cGFuZFNlY3Rpb24obCl7dGhpcy50b2dnbGVDb2xsYXBzaWJsZVNlY3Rpb24oW2xdLCJleHBhbmQiKX1jb2xsYXBzZVNlY3Rpb24obCl7dGhpcy50b2dn'@; put 'bGVDb2xsYXBzaWJsZVNlY3Rpb24oW2xdLCJjb2xsYXBzZSIpfXRvZ2dsZUFsbENvbGxhcHNpYmxlU2VjdGlvbnMobCl7Y29uc3QgYT10aGlzLmhlYWRlclN0YXRlTWFuYWdlci5tYXBOb2RlcyhkPT57Y29uc3R7Y29sbGFwc2libGU6aCxvcmlnQ29sc3BhbjpmLGhlYWRlckxldmVsOl8sY29s'@; put 'dW1uSW5kZXg6VCxpc0NvbGxhcHNlZDpXfT1kO2lmKCEwPT09aCYmZj4xJiYoVyYmImV4cGFuZCI9PT1sfHwhVyYmImNvbGxhcHNlIj09PWwpKXJldHVybntyb3c6dGhpcy5oZWFkZXJTdGF0ZU1hbmFnZXIubGV2ZWxUb1Jvd0Nvb3JkcyhfKSxjb2w6VH19KTt0aGlzLnRvZ2dsZUNvbGxhcHNp'@; put 'YmxlU2VjdGlvbihhLGwpfWNvbGxhcHNlQWxsKCl7dGhpcy50b2dnbGVBbGxDb2xsYXBzaWJsZVNlY3Rpb25zKCJjb2xsYXBzZSIpfWV4cGFuZEFsbCgpe3RoaXMudG9nZ2xlQWxsQ29sbGFwc2libGVTZWN0aW9ucygiZXhwYW5kIil9dG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKGwsYSl7aWYo'@; put 'IXlyZS5oYXMoYSkpdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBhY3Rpb24gaXMgcGFzc2VkICgke2F9KS5gKTtpZighQXJyYXkuaXNBcnJheShsKSlyZXR1cm47Y29uc3QgZD1fMShsLEVlPT57bGV0e3JvdzpaZX09RWU7cmV0dXJuIFplPDB9KTtsZXQgaD1kLmxlbmd0aD4wO0RuKGQs'@; put 'RWU9Pnt2YXIgWmU7bGV0e3JvdzppdCxjb2w6ZXR9PUVlO2NvbnN0e2NvbGxhcHNpYmxlOnl0LGlzQ29sbGFwc2VkOkV0fT1udWxsIT09KFplPXRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLmdldEhlYWRlclNldHRpbmdzKGl0LGV0KSkmJnZvaWQgMCE9PVplP1plOnt9O2lmKCF5dHx8RXQmJiJj'@; put 'b2xsYXBzZSI9PT1hfHwhRXQmJiJleHBhbmQiPT09YSlyZXR1cm4gaD0hMSwhMX0pO2NvbnN0IGY9W10sXz1bXTtoJiZEbihkLEVlPT57bGV0e3JvdzpaZSxjb2w6aXR9PUVlO2NvbnN0e2NvbHNwYW5Db21wZW5zYXRpb246ZXQsYWZmZWN0ZWRDb2x1bW5zOnl0LHJvbGxiYWNrTW9kaWZpY2F0'@; put 'aW9uOkV0fT10aGlzLmhlYWRlclN0YXRlTWFuYWdlci50cmlnZ2VyTm9kZU1vZGlmaWNhdGlvbihhLFplLGl0KTtldD4wJiYoXy5wdXNoKC4uLnl0KSxmLnB1c2goRXQpKX0pO2NvbnN0IFQ9dGhpcy5nZXRDb2xsYXBzZWRDb2x1bW5zKCk7bGV0IFc9W107ImNvbGxhcHNlIj09PWE/Vz1yTihb'@; put 'Li4uVCwuLi5fXSk6ImV4cGFuZCI9PT1hJiYoVz1fMShULEVlPT4hXy5pbmNsdWRlcyhFZSkpKTtjb25zdCBpZT15cmUuZ2V0KGEpO2lmKCExPT09dGhpcy5ob3QucnVuSG9va3MoaWUuYmVmb3JlSG9vayxULFcsaCkpcmV0dXJuIHZvaWQgRG4oZixFZT0+e0VlKCl9KTt0aGlzLmhvdC5iYXRj'@; put 'aEV4ZWN1dGlvbigoKT0+e0RuKF8sRWU9PntfcmUodGhpcyxTNykuc2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oRWUpLGllLmhpZGVDb2x1bW4pfSl9LCEwKTtjb25zdCB3ZT10aGlzLmdldENvbGxhcHNlZENvbHVtbnMoKS5sZW5ndGghPT1ULmxlbmd0aDt0aGlz'@; put 'LmhvdC5ydW5Ib29rcyhpZS5hZnRlckhvb2ssVCxXLGgsd2UpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX1nZXRDb2xsYXBzZWRDb2x1bW5zKCl7cmV0dXJuIF9yZSh0aGlzLFM3KS5nZXRIaWRkZW5JbmRleGVzKCl9b25BZnRlckdldENv'@; put 'bEhlYWRlcihsLGEsZCl7dmFyIGg7Y29uc3R7Y29sbGFwc2libGU6ZixvcmlnQ29sc3BhbjpfLGlzQ29sbGFwc2VkOlR9PW51bGwhPT0oaD10aGlzLmhlYWRlclN0YXRlTWFuYWdlci5nZXRIZWFkZXJTZXR0aW5ncyhkLGwpKSYmdm9pZCAwIT09aD9oOnt9LFc9ZiYmXz4xJiZsPj10aGlzLmhv'@; put 'dC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0O2xldCBpZT1hLnF1ZXJ5U2VsZWN0b3IoYC4ke0M3fWApO3ZhciBwZTtXPyhpZXx8KGllPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxwaShpZSxDNyksYS5xdWVyeVNlbGVjdG9yKCJkaXY6Zmlyc3Qt'@; put 'Y2hpbGQiKS5hcHBlbmRDaGlsZChpZSkpLFdvKGllLFsiY29sbGFwc2VkIiwiZXhwYW5kZWQiXSksVD8ocGkoaWUsImNvbGxhcHNlZCIpLGpwKGllLCIrIikpOihwaShpZSwiZXhwYW5kZWQiKSxqcChpZSwiLSIpKSk6bnVsbD09PShwZT1pZSl8fHZvaWQgMD09PXBlfHxwZS5yZW1vdmUoKX1v'@; put 'bkJlZm9yZU9uQ2VsbE1vdXNlRG93bihsLGEpe0JvKGwudGFyZ2V0LEM3KSYmKEJvKGwudGFyZ2V0LCJleHBhbmRlZCIpPyh0aGlzLmV2ZW50TWFuYWdlci5maXJlRXZlbnQobC50YXJnZXQsIm1vdXNldXAiKSx0aGlzLnRvZ2dsZUNvbGxhcHNpYmxlU2VjdGlvbihbYV0sImNvbGxhcHNlIikp'@; put 'OkJvKGwudGFyZ2V0LCJjb2xsYXBzZWQiKSYmKHRoaXMuZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChsLnRhcmdldCwibW91c2V1cCIpLHRoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFthXSwiZXhwYW5kIikpLHYyKGwpKX1vbkluaXQoKXt0aGlzLnVwZGF0ZVBsdWdpbigpfW9uQWZ0ZXJM'@; put 'b2FkRGF0YShsLGEpe2F8fHRoaXMudXBkYXRlUGx1Z2luKCl9ZGVzdHJveSgpe2ZqKHRoaXMsUzcsbnVsbCksc3VwZXIuZGVzdHJveSgpfX1jb25zdCBPTGU9WyJzb3J0RW1wdHlDZWxscyIsImluZGljYXRvciIsImhlYWRlckFjdGlvbiIsImNvbXBhcmVGdW5jdGlvbkZhY3RvcnkiXTtjbGFz'@; put 'cyBOTGV7Y29uc3RydWN0b3IobCxhKXt0aGlzLmhvdD1sLHRoaXMuc29ydGluZ1N0YXRlcz1uZXcgRWssdGhpcy5zb3J0RW1wdHlDZWxscz0hMSx0aGlzLmluZGljYXRvcj0hMCx0aGlzLmhlYWRlckFjdGlvbj0hMCx0aGlzLmNvbXBhcmVGdW5jdGlvbkZhY3Rvcnk9dm9pZCAwLHRoaXMubWFw'@; put 'TmFtZT1hLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKGEsdGhpcy5zb3J0aW5nU3RhdGVzKX11cGRhdGVBbGxDb2x1bW5zUHJvcGVydGllcyhsKXt1cyhsKSYmZHMobCwoYSxkKT0+e09MZS5pbmNsdWRlcyhkKSYmKHRoaXNbZF09YSl9KX1nZXRBbGxDb2x1bW5zUHJv'@; put 'cGVydGllcygpe2NvbnN0IGw9e3NvcnRFbXB0eUNlbGxzOnRoaXMuc29ydEVtcHR5Q2VsbHMsaW5kaWNhdG9yOnRoaXMuaW5kaWNhdG9yLGhlYWRlckFjdGlvbjp0aGlzLmhlYWRlckFjdGlvbn07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeSYm'@; put 'KGwuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeT10aGlzLmNvbXBhcmVGdW5jdGlvbkZhY3RvcnkpLGx9Z2V0U29ydE9yZGVyT2ZDb2x1bW4obCl7dmFyIGE7cmV0dXJuIG51bGw9PT0oYT10aGlzLnNvcnRpbmdTdGF0ZXMuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4o'@; put 'bCkpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5zb3J0T3JkZXJ9Z2V0SW5kZXhPZkNvbHVtbkluU29ydFF1ZXVlKGwpe3JldHVybiBsPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCksdGhpcy5zb3J0aW5nU3RhdGVzLmdldEVudHJpZXMoKS5maW5kSW5kZXgoYT0+e2xldFtkXT1hO3JldHVy'@; put 'biBkPT09bH0pfWdldE51bWJlck9mU29ydGVkQ29sdW1ucygpe3JldHVybiB0aGlzLnNvcnRpbmdTdGF0ZXMuZ2V0TGVuZ3RoKCl9aXNMaXN0T2ZTb3J0ZWRDb2x1bW5zRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuZ2V0TnVtYmVyT2ZTb3J0ZWRDb2x1bW5zKCl9aXNDb2x1bW5Tb3J0ZWQobCl7'@; put 'cmV0dXJuIHVzKHRoaXMuc29ydGluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKSkpfWdldFNvcnRTdGF0ZXMoKXtyZXR1cm4gbnVsbD09PXRoaXMuc29ydGluZ1N0YXRlcz9bXTp0aGlzLnNvcnRpbmdTdGF0ZXMuZ2V0RW50cmllcygpLm1hcChh'@; put 'PT57bGV0W2QsaF09YTtyZXR1cm57Y29sdW1uOnRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKGQpLC4uLmh9fSl9Z2V0Q29sdW1uU29ydFN0YXRlKGwpe2NvbnN0IGE9dGhpcy5nZXRTb3J0T3JkZXJPZkNvbHVtbihsKTtpZihLaShhKSlyZXR1cm57Y29sdW1uOmwsc29ydE9yZGVyOmF9fXNldFNv'@; put 'cnRTdGF0ZXMobCl7dGhpcy5zb3J0aW5nU3RhdGVzLmNsZWFyKCk7Zm9yKGxldCBhPTA7YTxsLmxlbmd0aDthKz0xKXRoaXMuc29ydGluZ1N0YXRlcy5zZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsW2FdLmNvbHVtbikse3NvcnRPcmRlcjpsW2FdLnNvcnRPcmRl'@; put 'cn0pfWRlc3Ryb3koKXt0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMubWFwTmFtZSksdGhpcy5zb3J0aW5nU3RhdGVzPW51bGx9fWNvbnN0ICRrPSJhc2MiLHFrPSJkZXNjIjtmdW5jdGlvbiB3cmUoYyl7aWYoYyE9PXFrKXJldHVybiBjPT09JGs/cWs6JGt9'@; put 'ZnVuY3Rpb24gQ3JlKGMpe3JldHVybiBjLnF1ZXJ5U2VsZWN0b3IoIi5jb2xIZWFkZXIiKX1mdW5jdGlvbiBTcmUoYyxsKXtpZihjPDB8fCFsLnBhcmVudE5vZGUpcmV0dXJuITE7Y29uc3QgYT1sLnBhcmVudE5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzO3JldHVybiBBcnJheS5mcm9tKGEp'@; put 'LmluZGV4T2YobC5wYXJlbnROb2RlKS1hLmxlbmd0aD09LTF9ZnVuY3Rpb24gZ2ooYyxsLGEpe3JldHVybi0xPT09YyYmbD49MCYmITE9PT1VcChhKX1jb25zdCBNcmU9ImluZGljYXRvckRpc2FibGVkIix4cmU9ImNvbHVtblNvcnRpbmciLEVyZT0ic29ydEFjdGlvbiIsa3JlPW5ldyBNYXAo'@; put 'W1skaywiYXNjZW5kaW5nIl0sW3FrLCJkZXNjZW5kaW5nIl1dKTtmdW5jdGlvbiBBcmUoYyxsLGEpe2NvbnN0IGQ9bC5sb2NhbGU7cmV0dXJuIGZ1bmN0aW9uKGgsZil7Y29uc3R7c29ydEVtcHR5Q2VsbHM6X309YTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGgmJihoPWgudG9Mb2NhbGVMb3dl'@; put 'ckNhc2UoZCkpLCJzdHJpbmciPT10eXBlb2YgZiYmKGY9Zi50b0xvY2FsZUxvd2VyQ2FzZShkKSksaD09PWY/MDpnYyhoKT9nYyhmKT8wOl8mJiJhc2MiPT09Yz8tMToxOmdjKGYpP18mJiJhc2MiPT09Yz8xOi0xOmlzTmFOKGgpJiYhaXNOYU4oZik/ImFzYyI9PT1jPzE6LTE6IWlzTmFOKGgp'@; put 'JiZpc05hTihmKXx8KGlzTmFOKGgpfHxpc05hTihmKXx8KGg9cGFyc2VGbG9hdChoKSxmPXBhcnNlRmxvYXQoZikpLGg8Zik/ImFzYyI9PT1jPy0xOjE6aD5mPyJhc2MiPT09Yz8xOi0xOjB9fWNvbnN0e3JlZ2lzdGVyOktrLGdldEl0ZW06RHJlLGhhc0l0ZW06UUxlfT1wZCgic29ydGluZy5j'@; put 'b21wYXJlRnVuY3Rpb25GYWN0b3J5Iikse3JlZ2lzdGVyOklyZSxnZXRJdGVtOmVSZX09cGQoInNvcnRpbmcubWFpblNvcnRDb21wYXJhdG9yIik7ZnVuY3Rpb24gTHJlKGMpe3JldHVybiBRTGUoYyk/RHJlKGMpOkRyZSgiZGVmYXVsdCIpfUtrKCJudW1lcmljIixmdW5jdGlvbiBHTGUoYyxs'@; put 'LGEpe3JldHVybiBmdW5jdGlvbihkLGgpe2NvbnN0IGY9cGFyc2VGbG9hdChkKSxfPXBhcnNlRmxvYXQoaCkse3NvcnRFbXB0eUNlbGxzOlR9PWE7aWYoZj09PV98fGlzTmFOKGYpJiZpc05hTihfKSlyZXR1cm4gMDtpZihUKXtpZihnYyhkKSlyZXR1cm4iYXNjIj09PWM/LTE6MTtpZihnYyho'@; put 'KSlyZXR1cm4iYXNjIj09PWM/MTotMX1yZXR1cm4gaXNOYU4oZik/MTppc05hTihfKT8tMTpmPF8/ImFzYyI9PT1jPy0xOjE6Zj5fPyJhc2MiPT09Yz8xOi0xOjB9fSksS2soImNoZWNrYm94IixmdW5jdGlvbiBxTGUoYyxsLGEpe2NvbnN0IGQ9bC5jaGVja2VkVGVtcGxhdGUsaD1sLnVuY2hl'@; put 'Y2tlZFRlbXBsYXRlLHtzb3J0RW1wdHlDZWxsczpmfT1hO3JldHVybiBmdW5jdGlvbihfLFQpe2NvbnN0IFc9Z2MoXyksaWU9Z2MoVCkscGU9Vz9oOl8sd2U9aWU/aDpULEVlPXBlPT09aHx8cGU9PT1kLFplPXdlPT09aHx8d2U9PT1kO2lmKCExPT09Zil7aWYoVyYmITE9PT1pZSlyZXR1cm4g'@; put 'MTtpZighMT09PVcmJmllKXJldHVybi0xfXJldHVybiExPT09RWUmJlplPyJhc2MiPT09Yz8tMToxOkVlJiYhMT09PVplPyJhc2MiPT09Yz8xOi0xOiExPT09RWUmJiExPT09WmU/QXJlKGMsbCxhKShfLFQpOnBlPT09aCYmd2U9PT1kPyJhc2MiPT09Yz8tMToxOnBlPT09ZCYmd2U9PT1oPyJh'@; put 'c2MiPT09Yz8xOi0xOjB9fSksS2soImRhdGUiLGZ1bmN0aW9uIFhMZShjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uKGQsaCl7Y29uc3R7c29ydEVtcHR5Q2VsbHM6Zn09YTtpZihkPT09aClyZXR1cm4gMDtpZihnYyhkKSlyZXR1cm4gZ2MoaCk/MDpmJiYiYXNjIj09PWM/LTE6MTtpZihnYyhoKSly'@; put 'ZXR1cm4gZiYmImFzYyI9PT1jPzE6LTE7Y29uc3QgXz1sLmRhdGVGb3JtYXQsVD1LbyhkLF8pLFc9S28oaCxfKTtyZXR1cm4gVC5pc1ZhbGlkKCk/Vy5pc1ZhbGlkKCk/Vy5pc0FmdGVyKFQpPyJhc2MiPT09Yz8tMToxOlcuaXNCZWZvcmUoVCk/ImFzYyI9PT1jPzE6LTE6MDotMToxfX0pLEtr'@; put 'KCJkZWZhdWx0IixBcmUpO2NvbnN0IG1qPSJjb2x1bW5Tb3J0aW5nIjtJcmUobWosZnVuY3Rpb24gdFJlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKGEsZCl7Y29uc3RbLC4uLmhdPWEsWywuLi5mXT1kO3JldHVybiBmdW5jdGlvbihUKXtjb25zdCBXPWNbMF0saWU9bFswXSxwZT1oWzBdLHdlPWZb'@; put 'MF0sRWU9aWUuY29sdW1uU29ydGluZztyZXR1cm4oRWUuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeT9FZS5jb21wYXJlRnVuY3Rpb25GYWN0b3J5OkxyZShpZS50eXBlKSkoVyxpZSxFZSkocGUsd2UpfSgpfX0pLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb2x1bW5Tb3J0Iiks'@; put 'c28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29sdW1uU29ydCIpO2NsYXNzIE9yZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBtan1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiA1MH1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSx0'@; put 'aGlzLmNvbHVtblN0YXRlc01hbmFnZXI9bnVsbCx0aGlzLmNvbHVtbk1ldGFDYWNoZT1udWxsLHRoaXMucGx1Z2luS2V5PW1qLHRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGU9bnVsbH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5wbHVnaW5LZXldfWVu'@; put 'YWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyPW5ldyBOTGUodGhpcy5ob3QsYCR7dGhpcy5wbHVnaW5LZXl9LnNvcnRpbmdTdGF0ZXNgKSx0aGlzLmNvbHVtbk1ldGFDYWNoZT1uZXcgV3AoYT0+e2xldCBkPXRoaXMuaG90LnRv'@; put 'VmlzdWFsQ29sdW1uKGEpO3JldHVybiBudWxsPT09ZCYmKGQ9YSksdGhpcy5nZXRNZXJnZWRQbHVnaW5TZXR0aW5ncyhkKX0pLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKGAke3RoaXMucGx1Z2luS2V5fS5jb2x1bW5NZXRhYCx0aGlzLmNvbHVtbk1ldGFDYWNoZSks'@; put 'dGhpcy5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsKGEsZCk9PnRoaXMub25BZnRlckdldENvbEhlYWRlcihhLGQpKSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkJlZm9yZU9uQ2VsbE1vdXNlRG93biguLi5hcmd1bWVudHMp'@; put 'fSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsKGEsZCk9PnRoaXMub25BZnRlck9uQ2VsbE1vdXNlRG93bihhLGQpKSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsKCk9PnRoaXMubG9hZE9yU29ydEJ5U2V0dGluZ3MoKSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRh'@; put 'IixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJMb2FkRGF0YSguLi5hcmd1bWVudHMpfSksdGhpcy5ob3QudmlldyYmdGhpcy5sb2FkT3JTb3J0QnlTZXR0aW5ncygpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX1kaXNhYmxlUGx1Z2luKCl7Y29uc3QgbD0oYSxkKT0+e2NvbnN0IGg9Q3JlKGQp'@; put 'OyExPT09U3JlKGEsZCl8fG51bGw9PT1ofHx0aGlzLnVwZGF0ZUhlYWRlckNsYXNzZXMoaCl9O3RoaXMuaG90LmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixsKSx0aGlzLmhvdC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIiwoKT0+e3RoaXMuaG90LnJlbW92ZUhvb2soImFmdGVy'@; put 'R2V0Q29sSGVhZGVyIixsKX0pLHRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKCgpPT57bnVsbCE9PXRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGUmJih0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5zZXRJbmRleGVzU2VxdWVuY2UodGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZS5nZXRWYWx1ZXMoKSks'@; put 'dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbktleSkpfSwhMCksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcChgJHt0aGlzLnBsdWdpbktleX0uY29sdW1uTWV0YWApLHRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5kZXN0cm95'@; put 'KCksdGhpcy5jb2x1bW5NZXRhQ2FjaGU9bnVsbCx0aGlzLmNvbHVtblN0YXRlc01hbmFnZXI9bnVsbCxzdXBlci5kaXNhYmxlUGx1Z2luKCl9c29ydChsKXtjb25zdCBhPXRoaXMuZ2V0U29ydENvbmZpZygpLGQ9dGhpcy5nZXROb3JtYWxpemVkU29ydENvbmZpZ3MobCksaD10aGlzLmFyZVZh'@; put 'bGlkU29ydENvbmZpZ3MoZCk7ITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uU29ydCIsYSxkLGgpJiYoMD09PWEubGVuZ3RoJiZudWxsPT09dGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZSYmKHRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGU9dGhpcy5ob3Qucm93SW5kZXhNYXBw'@; put 'ZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5LZXksbmV3IHZuZSksdGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZS5zZXRWYWx1ZXModGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCkpKSxoJiYodGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLnNldFNvcnRTdGF0ZXMo'@; put 'ZCksdGhpcy5zb3J0QnlQcmVzZXRTb3J0U3RhdGVzKGQpLHRoaXMuc2F2ZUFsbFNvcnRTZXR0aW5ncyhkKSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uU29ydCIsYSxoP2Q6YSxoKSxoJiYodGhpcy5ob3QucmVuZGVyKCksdGhpcy5ob3QuZm9yY2VGdWxsUmVuZGVyPSExLHRoaXMu'@; put 'aG90LnZpZXcucmVuZGVyKCkpKX1jbGVhclNvcnQoKXt0aGlzLnNvcnQoW10pfWlzU29ydGVkKCl7cmV0dXJuIHRoaXMuZW5hYmxlZCYmIXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5pc0xpc3RPZlNvcnRlZENvbHVtbnNFbXB0eSgpfWdldFNvcnRDb25maWcobCl7cmV0dXJuIEtpKGwpP3Ro'@; put 'aXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRDb2x1bW5Tb3J0U3RhdGUobCk6dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldFNvcnRTdGF0ZXMoKX1zZXRTb3J0Q29uZmlnKGwpe2NvbnN0IGE9dGhpcy5nZXROb3JtYWxpemVkU29ydENvbmZpZ3MobCk7dGhpcy5hcmVWYWxpZFNvcnRDb25m'@; put 'aWdzKGEpJiZ0aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuc2V0U29ydFN0YXRlcyhhKX1nZXROb3JtYWxpemVkU29ydENvbmZpZ3MoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W107cmV0dXJuIEFycmF5LmlzQXJyYXkobCk/'@; put 'bC5zbGljZSgwLDEpOltsXX1hcmVWYWxpZFNvcnRDb25maWdzKGwpe2NvbnN0IGE9dGhpcy5ob3QuY291bnRDb2xzKCk7cmV0dXJuIGZ1bmN0aW9uIGpMZShjKXtpZihjLnNvbWUoYT0+ITE9PT1mdW5jdGlvbiBCTGUoYyl7aWYoITE9PT11cyhjKSlyZXR1cm4hMTtjb25zdHtjb2x1bW46bCxz'@; put 'b3J0T3JkZXI6YX09YztyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihsKSYmWyRrLHFrXS5pbmNsdWRlcyhhKX0oYSkpKXJldHVybiExO2NvbnN0IGw9Yy5tYXAoYT0+e2xldHtjb2x1bW46ZH09YTtyZXR1cm4gZH0pO3JldHVybiBuZXcgU2V0KGwpLnNpemU9PT1sLmxlbmd0aH0obCkmJmwuZXZl'@; put 'cnkoZD0+e2xldHtjb2x1bW46aH09ZDtyZXR1cm4gaDw9YSYmaD49MH0pfXNhdmVBbGxTb3J0U2V0dGluZ3MobCl7Y29uc3QgYT10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZ2V0QWxsQ29sdW1uc1Byb3BlcnRpZXMoKTthLmluaXRpYWxDb25maWc9Y3MobCxoPT57bGV0e2NvbHVtbjpmLC4u'@; put 'Ll99PWg7cmV0dXJue2NvbHVtbjp0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGYpLC4uLl99fSksdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJjb2x1bW5Tb3J0aW5nIixhKX1nZXRBbGxTYXZlZFNvcnRTZXR0aW5ncygpe2NvbnN0IGw9e307dGhpcy5ob3QucnVu'@; put 'SG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJjb2x1bW5Tb3J0aW5nIixsKTtjb25zdCBhPWwudmFsdWU7cmV0dXJuIEtpKGEpJiZBcnJheS5pc0FycmF5KGEuaW5pdGlhbENvbmZpZykmJihhLmluaXRpYWxDb25maWc9Y3MoYS5pbml0aWFsQ29uZmlnLGg9PntsZXR7Y29sdW1uOmYsLi4u'@; put 'X309aDtyZXR1cm57Y29sdW1uOnRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKGYpLC4uLl99fSkpLGF9Z2V0Q29sdW1uTmV4dENvbmZpZyhsKXtjb25zdCBhPXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRTb3J0T3JkZXJPZkNvbHVtbihsKTtpZihLaShhKSl7Y29uc3QgaD13cmUoYSk7cmV0'@; put 'dXJuIEtpKGgpP3tjb2x1bW46bCxzb3J0T3JkZXI6aH06dm9pZCAwfWNvbnN0IGQ9dGhpcy5ob3QuY291bnRDb2xzKCk7aWYoTnVtYmVyLmlzSW50ZWdlcihsKSYmbD49MCYmbDxkKXJldHVybntjb2x1bW46bCxzb3J0T3JkZXI6d3JlKCl9fWdldE5leHRTb3J0Q29uZmlnKGwpe2xldCBhPWFy'@; put 'Z3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiYXBwZW5kIjtjb25zdCBkPXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRJbmRleE9mQ29sdW1uSW5Tb3J0UXVldWUobCksaD0tMSE9PWQsZj10aGlzLmdldFNvcnRDb25maWcoKSxfPXRoaXMu'@; put 'Z2V0Q29sdW1uTmV4dENvbmZpZyhsKTtpZihoKXtpZihMYShfKSlyZXR1cm5bLi4uZi5zbGljZSgwLGQpLC4uLmYuc2xpY2UoZCsxKV07aWYoImFwcGVuZCI9PT1hKXJldHVyblsuLi5mLnNsaWNlKDAsZCksLi4uZi5zbGljZShkKzEpLF9dO2lmKCJyZXBsYWNlIj09PWEpcmV0dXJuWy4uLmYu'@; put 'c2xpY2UoMCxkKSxfLC4uLmYuc2xpY2UoZCsxKV19cmV0dXJuIEtpKF8pP2YuY29uY2F0KF8pOmZ9Z2V0UGx1Z2luQ29sdW1uQ29uZmlnKGwpe2lmKHVzKGwpKXtjb25zdCBhPWxbdGhpcy5wbHVnaW5LZXldO2lmKHVzKGEpKXJldHVybiBhfXJldHVybnt9fWdldE1lcmdlZFBsdWdpblNldHRp'@; put 'bmdzKGwpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV0sZD10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZ2V0QWxsQ29sdW1uc1Byb3BlcnRpZXMoKSxoPXRoaXMuaG90LmdldENlbGxNZXRhKDAsbCksZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YoaCk7cmV0'@; put 'dXJuIEFycmF5LmlzQXJyYXkoZi5jb2x1bW5zKT9PYmplY3QuYXNzaWduKGQsYSx0aGlzLmdldFBsdWdpbkNvbHVtbkNvbmZpZyhmLmNvbHVtbnNbbF0pKTpSYShmLmNvbHVtbnMpP09iamVjdC5hc3NpZ24oZCxhLHRoaXMuZ2V0UGx1Z2luQ29sdW1uQ29uZmlnKGYuY29sdW1ucyhsKSkpOk9i'@; put 'amVjdC5hc3NpZ24oZCxhKX1nZXRGaXJzdENlbGxTZXR0aW5ncyhsKXtjb25zdCBhPXRoaXMuaG90LmdldENlbGxNZXRhKDAsbCksZD1PYmplY3QuY3JlYXRlKGEpO3JldHVybiBkW3RoaXMucGx1Z2luS2V5XT10aGlzLmNvbHVtbk1ldGFDYWNoZS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3Qu'@; put 'dG9QaHlzaWNhbENvbHVtbihsKSksZH1nZXROdW1iZXJPZlJvd3NUb1NvcnQobCl7Y29uc3QgYT10aGlzLmhvdC5nZXRTZXR0aW5ncygpO3JldHVybiBhLm1heFJvd3M8PWw/YS5tYXhSb3dzOmwtYS5taW5TcGFyZVJvd3N9c29ydEJ5UHJlc2V0U29ydFN0YXRlcyhsKXtpZigwPT09bC5sZW5n'@; put 'dGgpcmV0dXJuIHZvaWQgdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGUuZ2V0VmFsdWVzKCkpO2NvbnN0IGE9W10sZD10aGlzLmhvdC5jb3VudFJvd3MoKSxoPWllPT5jcyhsLHBlPT50aGlzLmhvdC5nZXREYXRhQXRD'@; put 'ZWxsKGllLHBlLmNvbHVtbikpO2ZvcihsZXQgaWU9MDtpZTx0aGlzLmdldE51bWJlck9mUm93c1RvU29ydChkKTtpZSs9MSlhLnB1c2goW3RoaXMuaG90LnRvUGh5c2ljYWxSb3coaWUpXS5jb25jYXQoaChpZSkpKTtjb25zdCBmPWNzKGEsaWU9PmllWzBdKTshZnVuY3Rpb24gV0xlKGMsbCl7'@; put 'Y29uc3QgYT1lUmUobCk7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZD4yP2QtMjowKSxmPTI7ZjxkO2YrKyloW2YtMl09YXJndW1lbnRzW2ZdO2Muc29ydChhKC4uLmgpKX0oYSx0aGlzLnBsdWdpbktleSxjcyhsLGllPT5pZS5zb3J0T3JkZXIpLGNzKGwsaWU9PnRo'@; put 'aXMuZ2V0Rmlyc3RDZWxsU2V0dGluZ3MoaWUuY29sdW1uKSkpO2ZvcihsZXQgaWU9YS5sZW5ndGg7aWU8ZDtpZSs9MSlhLnB1c2goW2llXS5jb25jYXQoaChpZSkpKTtjb25zdCBfPWNzKGEsaWU9PmllWzBdKSxUPW5ldyBNYXAoY3MoZiwoaWUscGUpPT5baWUsX1twZV1dKSksVz1jcyh0aGlz'@; put 'LmhvdC5yb3dJbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKSxpZT0+VC5oYXMoaWUpP1QuZ2V0KGllKTppZSk7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKFcpfWxvYWRPclNvcnRCeVNldHRpbmdzKCl7Y29uc3QgbD10aGlzLmdldEFsbFNhdmVkU29y'@; put 'dFNldHRpbmdzKCk7aWYodXMobCkpdGhpcy5zb3J0QnlTZXR0aW5ncyhsKTtlbHNle2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV07dGhpcy5zb3J0QnlTZXR0aW5ncyhhKX19c29ydEJ5U2V0dGluZ3MobCl7aWYodXMobCkpe3RoaXMuY29sdW1uU3RhdGVz'@; put 'TWFuYWdlci51cGRhdGVBbGxDb2x1bW5zUHJvcGVydGllcyhsKTtjb25zdCBhPWwuaW5pdGlhbENvbmZpZzsoQXJyYXkuaXNBcnJheShhKXx8dXMoYSkpJiZ0aGlzLnNvcnQoYSl9ZWxzZSB0aGlzLmhvdC5yZW5kZXIoKX1vbkFmdGVyR2V0Q29sSGVhZGVyKGwsYSl7Y29uc3QgZD1DcmUoYSk7'@; put 'aWYoITE9PT1TcmUobCxhKXx8bnVsbD09PWQpcmV0dXJuO2NvbnN0IGg9dGhpcy5nZXRGaXJzdENlbGxTZXR0aW5ncyhsKVt0aGlzLnBsdWdpbktleV07dGhpcy51cGRhdGVIZWFkZXJDbGFzc2VzKGQsdGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLGwsaC5pbmRpY2F0b3IsaC5oZWFkZXJBY3Rp'@; put 'b24pfXVwZGF0ZUhlYWRlckNsYXNzZXMobCl7aWYoV28obCxmdW5jdGlvbiBZTGUoKXtyZXR1cm4gQXJyYXkuZnJvbShrcmUudmFsdWVzKCkpLmNvbmNhdChFcmUsTXJlLHhyZSl9KCkpLCExIT09dGhpcy5lbmFibGVkKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShh'@; put 'PjE/YS0xOjApLGg9MTtoPGE7aCsrKWRbaC0xXT1hcmd1bWVudHNbaF07cGkobCxmdW5jdGlvbiBaTGUoYyxsLGEsZCl7Y29uc3QgaD1beHJlXTtpZihkJiZoLnB1c2goRXJlKSwhMT09PWEpcmV0dXJuIGgucHVzaChNcmUpLGg7Y29uc3QgZj1jLmdldFNvcnRPcmRlck9mQ29sdW1uKGwpO3Jl'@; put 'dHVybiBLaShmKSYmaC5wdXNoKGtyZS5nZXQoZikpLGh9KC4uLmQpKX19b25VcGRhdGVTZXR0aW5ncyhsKXtzdXBlci5vblVwZGF0ZVNldHRpbmdzKCksbnVsbCE9PXRoaXMuY29sdW1uTWV0YUNhY2hlJiZ0aGlzLmNvbHVtbk1ldGFDYWNoZS5pbml0KHRoaXMuaG90LmNvbHVtbkluZGV4TWFw'@; put 'cGVyLmdldE51bWJlck9mSW5kZXhlcygpKSxLaShsW3RoaXMucGx1Z2luS2V5XSkmJnRoaXMuc29ydEJ5U2V0dGluZ3MobFt0aGlzLnBsdWdpbktleV0pfW9uQWZ0ZXJMb2FkRGF0YShsKXshMD09PWwmJnRoaXMuaG90LnZpZXcmJnRoaXMubG9hZE9yU29ydEJ5U2V0dGluZ3MoKX13YXNDbGlj'@; put 'a2FibGVIZWFkZXJDbGlja2VkKGwsYSl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RDZWxsU2V0dGluZ3MoYSlbdGhpcy5wbHVnaW5LZXldLmhlYWRlckFjdGlvbiYmIlNQQU4iPT09bC50YXJnZXQubm9kZU5hbWV9b25CZWZvcmVPbkNlbGxNb3VzZURvd24obCxhLGQsaCl7ITEhPT1naihhLnJvdyxh'@; put 'LmNvbCxsKSYmdGhpcy53YXNDbGlja2FibGVIZWFkZXJDbGlja2VkKGwsYS5jb2wpJiZ0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5pc0N0cmxQcmVzc2VkKCkmJihoLmNvbHVtbj0hMCl9b25BZnRlck9uQ2VsbE1vdXNlRG93bihsLGEpeyExIT09Z2ooYS5yb3csYS5jb2wsbCkmJnRo'@; put 'aXMud2FzQ2xpY2thYmxlSGVhZGVyQ2xpY2tlZChsLGEuY29sKSYmKHRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKSYmKHRoaXMuaG90LmRlc2VsZWN0Q2VsbCgpLHRoaXMuaG90LnNlbGVjdENvbHVtbnMoYS5jb2wpKSx0aGlzLnNvcnQodGhpcy5nZXRDb2x1'@; put 'bW5OZXh0Q29uZmlnKGEuY29sKSkpfWRlc3Ryb3koKXt2YXIgbDtudWxsPT09KGw9dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyKXx8dm9pZCAwPT09bHx8bC5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiB2aihjKXtyZXR1cm4gbnVsbD09Y3x8aXNOYU4oYyl9Y29uc3QgX2o9'@; put 'ImNvbHVtblN1bW1hcnkiO2NsYXNzIGFSZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBfan1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyMjB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksdGhpcy5lbmRwb2ludHM9bnVsbH1pc0VuYWJsZWQo'@; put 'KXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbX2pdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5zZXR0aW5ncz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW19qXSx0aGlzLmVuZHBvaW50cz1uZXcgY2xhc3MgaVJle2NvbnN0cnVjdG9yKGwsYSl7'@; put 'dGhpcy5wbHVnaW49bCx0aGlzLmhvdD10aGlzLnBsdWdpbi5ob3QsdGhpcy5lbmRwb2ludHM9W10sdGhpcy5zZXR0aW5ncz1hLHRoaXMuc2V0dGluZ3NUeXBlPSJhcnJheSIsdGhpcy5jdXJyZW50RW5kcG9pbnQ9bnVsbCx0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXX1nZXRFbmRwb2ludChsKXty'@; put 'ZXR1cm4iZnVuY3Rpb24iPT09dGhpcy5zZXR0aW5nc1R5cGU/dGhpcy5maWxsTWlzc2luZ0VuZHBvaW50RGF0YSh0aGlzLnNldHRpbmdzKVtsXTp0aGlzLmVuZHBvaW50c1tsXX1nZXRBbGxFbmRwb2ludHMoKXtyZXR1cm4iZnVuY3Rpb24iPT09dGhpcy5zZXR0aW5nc1R5cGU/dGhpcy5maWxs'@; put 'TWlzc2luZ0VuZHBvaW50RGF0YSh0aGlzLnNldHRpbmdzKTp0aGlzLmVuZHBvaW50c31maWxsTWlzc2luZ0VuZHBvaW50RGF0YShsKXtyZXR1cm4gdGhpcy5wYXJzZVNldHRpbmdzKGwuY2FsbCh0aGlzKSl9cGFyc2VTZXR0aW5ncyhsKXtjb25zdCBhPVtdO2xldCBkPWw7aWYoZHx8ImZ1bmN0'@; put 'aW9uIiE9dHlwZW9mIHRoaXMuc2V0dGluZ3MpcmV0dXJuIGR8fChkPXRoaXMuc2V0dGluZ3MpLERuKGQsaD0+e2NvbnN0IGY9e307dGhpcy5hc3NpZ25TZXR0aW5nKGgsZiwicmFuZ2VzIixbWzAsdGhpcy5ob3QuY291bnRSb3dzKCktMV1dKSx0aGlzLmFzc2lnblNldHRpbmcoaCxmLCJyZXZl'@; put 'cnNlZFJvd0Nvb3JkcyIsITEpLHRoaXMuYXNzaWduU2V0dGluZyhoLGYsImRlc3RpbmF0aW9uUm93IixuZXcgRXJyb3IoIlxuICAgICAgICBZb3UgbXVzdCBwcm92aWRlIGEgZGVzdGluYXRpb24gcm93IGZvciB0aGUgQ29sdW1uIFN1bW1hcnkgcGx1Z2luIGluIG9yZGVyIHRvIHdvcmsgcHJv'@; put 'cGVybHkhXG4gICAgICAiKSksdGhpcy5hc3NpZ25TZXR0aW5nKGgsZiwiZGVzdGluYXRpb25Db2x1bW4iLG5ldyBFcnJvcigiXG4gICAgICAgIFlvdSBtdXN0IHByb3ZpZGUgYSBkZXN0aW5hdGlvbiBjb2x1bW4gZm9yIHRoZSBDb2x1bW4gU3VtbWFyeSBwbHVnaW4gaW4gb3JkZXIgdG8gd29y'@; put 'ayBwcm9wZXJseSFcbiAgICAgICIpKSx0aGlzLmFzc2lnblNldHRpbmcoaCxmLCJzb3VyY2VDb2x1bW4iLGguZGVzdGluYXRpb25Db2x1bW4pLHRoaXMuYXNzaWduU2V0dGluZyhoLGYsInR5cGUiLCJzdW0iKSx0aGlzLmFzc2lnblNldHRpbmcoaCxmLCJmb3JjZU51bWVyaWMiLCExKSx0aGlz'@; put 'LmFzc2lnblNldHRpbmcoaCxmLCJzdXBwcmVzc0RhdGFUeXBlRXJyb3JzIiwhMCksdGhpcy5hc3NpZ25TZXR0aW5nKGgsZiwic3VwcHJlc3NEYXRhVHlwZUVycm9ycyIsITApLHRoaXMuYXNzaWduU2V0dGluZyhoLGYsImN1c3RvbUZ1bmN0aW9uIixudWxsKSx0aGlzLmFzc2lnblNldHRpbmco'@; put 'aCxmLCJyZWFkT25seSIsITApLHRoaXMuYXNzaWduU2V0dGluZyhoLGYsInJvdW5kRmxvYXQiLCExKSxhLnB1c2goZil9KSxhO3RoaXMuc2V0dGluZ3NUeXBlPSJmdW5jdGlvbiJ9YXNzaWduU2V0dGluZyhsLGEsZCxoKXtpZigicmFuZ2VzIiE9PWR8fHZvaWQgMCE9PWxbZF0pe2lmKCJyYW5n'@; put 'ZXMiIT09ZHx8MCE9PWxbZF0ubGVuZ3RoKWlmKHZvaWQgMD09PWxbZF0pe2lmKGggaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBoO2FbZF09aH1lbHNlIGFbZF09ImRlc3RpbmF0aW9uUm93Ij09PWQmJmEucmV2ZXJzZWRSb3dDb29yZHM/dGhpcy5ob3QuY291bnRSb3dzKCktbFtkXS0xOmxbZF19'@; put 'ZWxzZSBhW2RdPWh9cmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24obCxhLGQpe2lmKCJmdW5jdGlvbiIhPT10aGlzLnNldHRpbmdzVHlwZSlyZXR1cm47Y29uc3QgaD1sLmluZGV4T2YoInJvdyIpPi0xPyJyb3ciOiJjb2wiLGY9dGhpcy5nZXRBbGxFbmRwb2ludHMoKTtEbihm'@; put 'LF89Pnsicm93Ij09PWgmJl8uZGVzdGluYXRpb25Sb3c+PWEmJigiaW5zZXJ0X3JvdyI9PT1sP18uYWx0ZXJSb3dPZmZzZXQ9ZDoicmVtb3ZlX3JvdyI9PT1sJiYoXy5hbHRlclJvd09mZnNldD0tMSpkKSksImNvbCI9PT1oJiZfLmRlc3RpbmF0aW9uQ29sdW1uPj1hJiYoImluc2VydF9jb2wi'@; put 'PT09bD9fLmFsdGVyQ29sdW1uT2Zmc2V0PWQ6InJlbW92ZV9jb2wiPT09bCYmKF8uYWx0ZXJDb2x1bW5PZmZzZXQ9LTEqZCkpfSksdGhpcy5yZXNldEFsbEVuZHBvaW50cyhmLCExKX1yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKGwsYSxkLGgsZil7bGV0IF89IShhcmd1bWVu'@; put 'dHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSl8fGFyZ3VtZW50c1s1XTtpZigiZnVuY3Rpb24iPT09dGhpcy5zZXR0aW5nc1R5cGUpe2NvbnN0IEVlPSgpPT4odGhpcy5ob3QucmVtb3ZlSG9vaygiYmVmb3JlVmlld1JlbmRlciIsRWUpLHRoaXMucmVmcmVzaEFsbEVuZHBvaW50'@; put 'cygpKTtyZXR1cm4gdm9pZCB0aGlzLmhvdC5hZGRIb29rT25jZSgiYmVmb3JlVmlld1JlbmRlciIsRWUpfWNvbnN0IFQ9bC5pbmRleE9mKCJyb3ciKT4tMT8icm93IjoiY29sIixXPWwuaW5kZXhPZigicmVtb3ZlIik+LTE/LTE6MSxpZT10aGlzLmdldEFsbEVuZHBvaW50cygpLHBlPTA9PT1s'@; put 'LmluZGV4T2YoIm1vdmVfcm93Iiksd2U9YTtEbihpZSxFZT0+eyJyb3ciPT09VCYmRWUuZGVzdGluYXRpb25Sb3c+PXdlJiYoRWUuYWx0ZXJSb3dPZmZzZXQ9VypkKSwiY29sIj09PVQmJkVlLmRlc3RpbmF0aW9uQ29sdW1uPj13ZSYmKEVlLmFsdGVyQ29sdW1uT2Zmc2V0PVcqZCl9KSx0aGlz'@; put 'LnJlc2V0QWxsRW5kcG9pbnRzKGllLCFwZSksRG4oaWUscGU/RWU9Pnt0aGlzLmV4dGVuZEVuZHBvaW50UmFuZ2VzKEVlLHdlLGhbMF0saC5sZW5ndGgpLHRoaXMucmVjcmVhdGVQaHlzaWNhbFJhbmdlcyhFZSksdGhpcy5jbGVhck9mZnNldEluZm9ybWF0aW9uKEVlKX06RWU9Pnt0aGlzLnNo'@; put 'aWZ0RW5kcG9pbnRDb29yZGluYXRlcyhFZSx3ZSl9KSxfJiZ0aGlzLnJlZnJlc2hBbGxFbmRwb2ludHMoKX1jbGVhck9mZnNldEluZm9ybWF0aW9uKGwpe2wuYWx0ZXJSb3dPZmZzZXQ9dm9pZCAwLGwuYWx0ZXJDb2x1bW5PZmZzZXQ9dm9pZCAwfWV4dGVuZEVuZHBvaW50UmFuZ2VzKGwsYSxk'@; put 'LGgpe0RuKGwucmFuZ2VzLGY9PntmWzFdJiYoYT49ZlswXSYmYTw9ZlsxXT9kPmZbMV0/ZlsxXSs9aDpkPGZbMF0mJihmWzBdLT1oKTpkPj1mWzBdJiZkPD1mWzFdJiYoZlsxXS09aCxhPD1mWzBdJiYoZlswXSs9MSxmWzFdKz0xKSkpfSl9cmVjcmVhdGVQaHlzaWNhbFJhbmdlcyhsKXtjb25z'@; put 'dCBkPVtdLGg9W107RG4obC5yYW5nZXMsZj0+e2NvbnN0IF89W107aWYoZlsxXSlmb3IobGV0IFQ9ZlswXTtUPD1mWzFdO1QrKylfLnB1c2godGhpcy5ob3QudG9QaHlzaWNhbFJvdyhUKSk7ZWxzZSBfLnB1c2godGhpcy5ob3QudG9QaHlzaWNhbFJvdyhmWzBdKSk7aC5wdXNoKF8pfSksRG4o'@; put 'aCxmPT57bGV0IF89W107RG4oZiwoVCxXKT0+ezA9PT1XP18ucHVzaChUKTpmW1ddIT09ZltXLTFdKzEmJihfLnB1c2goZltXLTFdKSxkLnB1c2goXyksXz1bXSxfLnB1c2goVCkpLFc9PT1mLmxlbmd0aC0xJiYoXy5wdXNoKFQpLGQucHVzaChfKSl9KX0pLGwucmFuZ2VzPWR9c2hpZnRFbmRw'@; put 'b2ludENvb3JkaW5hdGVzKGwsYSl7bC5hbHRlclJvd09mZnNldCYmMCE9PWwuYWx0ZXJSb3dPZmZzZXQ/KGwuZGVzdGluYXRpb25Sb3crPWwuYWx0ZXJSb3dPZmZzZXR8fDAsRG4obC5yYW5nZXMsZD0+e0RuKGQsKGgsZik9PntoPj1hJiYoZFtmXSs9bC5hbHRlclJvd09mZnNldHx8MCl9KX0p'@; put 'KTpsLmFsdGVyQ29sdW1uT2Zmc2V0JiYwIT09bC5hbHRlckNvbHVtbk9mZnNldCYmKGwuZGVzdGluYXRpb25Db2x1bW4rPWwuYWx0ZXJDb2x1bW5PZmZzZXR8fDAsbC5zb3VyY2VDb2x1bW4rPWwuYWx0ZXJDb2x1bW5PZmZzZXR8fDApfXJlc2V0QWxsRW5kcG9pbnRzKCl7bGV0IGw9YXJndW1l'@; put 'bnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuZ2V0QWxsRW5kcG9pbnRzKCksYT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO2wuc29tZShoPT57Y29uc3QgXz1oLmFsdGVyQ29sdW1u'@; put 'T2Zmc2V0fHwwO3JldHVybiBoLmRlc3RpbmF0aW9uUm93KyhoLmFsdGVyUm93T2Zmc2V0fHwwKT49dGhpcy5ob3QuY291bnRSb3dzKCl8fGguZGVzdGluYXRpb25Db2x1bW4rXz49dGhpcy5ob3QuY291bnRDb2xzKCl9KXx8KHRoaXMuY2VsbHNUb1NldENhY2hlPVtdLERuKGwsaD0+e3RoaXMu'@; put 'cmVzZXRFbmRwb2ludFZhbHVlKGgsYSl9KSx0aGlzLmhvdC5zZXREYXRhQXRDZWxsKHRoaXMuY2VsbHNUb1NldENhY2hlLCJDb2x1bW5TdW1tYXJ5LnJlc2V0IiksdGhpcy5jZWxsc1RvU2V0Q2FjaGU9W10pfXJlZnJlc2hBbGxFbmRwb2ludHMoKXt0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXSxE'@; put 'bih0aGlzLmdldEFsbEVuZHBvaW50cygpLGw9Pnt0aGlzLmN1cnJlbnRFbmRwb2ludD1sLHRoaXMucGx1Z2luLmNhbGN1bGF0ZShsKSx0aGlzLnNldEVuZHBvaW50VmFsdWUobCwiaW5pdCIpfSksdGhpcy5jdXJyZW50RW5kcG9pbnQ9bnVsbCx0aGlzLmhvdC5zZXREYXRhQXRDZWxsKHRoaXMu'@; put 'Y2VsbHNUb1NldENhY2hlLCJDb2x1bW5TdW1tYXJ5LnJlc2V0IiksdGhpcy5jZWxsc1RvU2V0Q2FjaGU9W119cmVmcmVzaENoYW5nZWRFbmRwb2ludHMobCl7Y29uc3QgYT1bXTt0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXSxEbihsLChkLGgsZik9PntgJHtkWzJdfHwiIn1gIT1gJHtkWzNdfWAm'@; put 'JkRuKHRoaXMuZ2V0QWxsRW5kcG9pbnRzKCksKF8sVCk9Pnt0aGlzLmhvdC5wcm9wVG9Db2woZltoXVsxXSk9PT1fLnNvdXJjZUNvbHVtbiYmLTE9PT1hLmluZGV4T2YoVCkmJmEucHVzaChUKX0pfSksRG4oYSxkPT57dGhpcy5yZWZyZXNoRW5kcG9pbnQodGhpcy5nZXRFbmRwb2ludChkKSl9'@; put 'KSx0aGlzLmhvdC5zZXREYXRhQXRDZWxsKHRoaXMuY2VsbHNUb1NldENhY2hlLCJDb2x1bW5TdW1tYXJ5LnJlc2V0IiksdGhpcy5jZWxsc1RvU2V0Q2FjaGU9W119cmVmcmVzaEVuZHBvaW50KGwpe3RoaXMuY3VycmVudEVuZHBvaW50PWwsdGhpcy5wbHVnaW4uY2FsY3VsYXRlKGwpLHRoaXMu'@; put 'c2V0RW5kcG9pbnRWYWx1ZShsKSx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsfXJlc2V0RW5kcG9pbnRWYWx1ZShsKXtsZXQgYT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO2NvbnN0IGg9bC5hbHRlckNvbHVtbk9mZnNldHx8MDt0'@; put 'aGlzLmNlbGxzVG9TZXRDYWNoZS5wdXNoKFt0aGlzLmhvdC50b1Zpc3VhbFJvdyhsLmRlc3RpbmF0aW9uUm93KyhhJiZsLmFsdGVyUm93T2Zmc2V0fHwwKSksdGhpcy5ob3QudG9WaXN1YWxDb2x1bW4obC5kZXN0aW5hdGlvbkNvbHVtbisoYT9oOjApKSwiIl0pfXNldEVuZHBvaW50VmFsdWUo'@; put 'bCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2NvbnN0IGg9dGhpcy5ob3QudG9WaXN1YWxSb3cobC5kZXN0aW5hdGlvblJvdyk7aWYobC5kZXN0aW5hdGlvblJvdz49dGhpcy5ob3QuY291bnRSb3dzKCl8fGwuZGVzdGlu'@; put 'YXRpb25Db2x1bW4+PXRoaXMuaG90LmNvdW50Q29scygpKXJldHVybiB2b2lkIHRoaXMudGhyb3dPdXRPZkJvdW5kc1dhcm5pbmcoKTtjb25zdCBmPXRoaXMuaG90LnRvVmlzdWFsUm93KGwuZGVzdGluYXRpb25Sb3cpO2lmKG51bGwhPT1mKXtjb25zdCBfPXRoaXMuaG90LmdldENlbGxNZXRh'@; put 'KGYsbC5kZXN0aW5hdGlvbkNvbHVtbik7KCJpbml0Ij09PWF8fF8ucmVhZE9ubHkhPT1sLnJlYWRPbmx5KSYmKF8ucmVhZE9ubHk9bC5yZWFkT25seSxfLmNsYXNzTmFtZT0iY29sdW1uU3VtbWFyeVJlc3VsdCIpfWwucm91bmRGbG9hdCYmIWlzTmFOKGwucmVzdWx0KSYmKGwucmVzdWx0PWwu'@; put 'cmVzdWx0LnRvRml4ZWQobC5yb3VuZEZsb2F0KSksZD90aGlzLmhvdC5zZXREYXRhQXRDZWxsKGgsbC5kZXN0aW5hdGlvbkNvbHVtbixsLnJlc3VsdCwiQ29sdW1uU3VtbWFyeS5zZXQiKTp0aGlzLmNlbGxzVG9TZXRDYWNoZS5wdXNoKFtoLGwuZGVzdGluYXRpb25Db2x1bW4sbC5yZXN1bHRd'@; put 'KSxsLmFsdGVyUm93T2Zmc2V0PXZvaWQgMCxsLmFsdGVyQ29sdW1uT2Zmc2V0PXZvaWQgMH10aHJvd091dE9mQm91bmRzV2FybmluZygpe0dhKCJPbmUgb2YgdGhlIENvbHVtbiBTdW1tYXJ5IHBsdWdpbnMnIGRlc3RpbmF0aW9uIHBvaW50cyB5b3UgcHJvdmlkZWQgaXMgYmV5b25kIHRoZSB0'@; put 'YWJsZSBib3VuZGFyaWVzISIpfX0odGhpcyx0aGlzLnNldHRpbmdzKSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkFmdGVySW5pdCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkFm'@; put 'dGVyQ2hhbmdlKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZVJvdyIsKGEsZCxoKT0+dGhpcy5lbmRwb2ludHMucmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24oImluc2VydF9yb3ciLGEsZCxudWxsLGgpKSx0aGlzLmFkZEhvb2soImJlZm9yZUNy'@; put 'ZWF0ZUNvbCIsKGEsZCxoKT0+dGhpcy5lbmRwb2ludHMucmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24oImluc2VydF9jb2wiLGEsZCxudWxsLGgpKSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbW92ZVJvdyIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxk'@; put 'PW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gbC5lbmRwb2ludHMucmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24oInJlbW92ZV9yb3ciLC4uLmQpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW1vdmVDb2wiLGZ1bmN0aW9uKCl7Zm9y'@; put 'KHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGwuZW5kcG9pbnRzLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJyZW1vdmVfY29sIiwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJD'@; put 'cmVhdGVSb3ciLChhLGQsaCk9PnRoaXMuZW5kcG9pbnRzLnJlc2V0U2V0dXBBZnRlclN0cnVjdHVyZUFsdGVyYXRpb24oImluc2VydF9yb3ciLGEsZCxudWxsLGgpKSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIiwoYSxkLGgpPT50aGlzLmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJT'@; put 'dHJ1Y3R1cmVBbHRlcmF0aW9uKCJpbnNlcnRfY29sIixhLGQsbnVsbCxoKSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4g'@; put 'bC5lbmRwb2ludHMucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0ZXJhdGlvbigicmVtb3ZlX3JvdyIsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRb'@; put 'aF09YXJndW1lbnRzW2hdO3JldHVybiBsLmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJyZW1vdmVfY29sIiwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSb3dNb3ZlIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJSb3dNb3ZlKC4uLmFyZ3VtZW50'@; put 'cyl9KSxzdXBlci5lbmFibGVQbHVnaW4oKSl9ZGlzYWJsZVBsdWdpbigpe3RoaXMuZW5kcG9pbnRzPW51bGwsdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuY3VycmVudEVuZHBvaW50PW51bGx9Y2FsY3VsYXRlKGwpe3N3aXRjaChsLnR5cGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJzdW0iOmwucmVz'@; put 'dWx0PXRoaXMuY2FsY3VsYXRlU3VtKGwpO2JyZWFrO2Nhc2UibWluIjpjYXNlIm1heCI6bC5yZXN1bHQ9dGhpcy5jYWxjdWxhdGVNaW5NYXgobCxsLnR5cGUpO2JyZWFrO2Nhc2UiY291bnQiOmwucmVzdWx0PXRoaXMuY291bnRFbnRyaWVzKGwpO2JyZWFrO2Nhc2UiYXZlcmFnZSI6bC5yZXN1'@; put 'bHQ9dGhpcy5jYWxjdWxhdGVBdmVyYWdlKGwpO2JyZWFrO2Nhc2UiY3VzdG9tIjpsLnJlc3VsdD1sLmN1c3RvbUZ1bmN0aW9uLmNhbGwodGhpcyxsKX19Y2FsY3VsYXRlU3VtKGwpe2xldCBhPTA7cmV0dXJuIGRzKGwucmFuZ2VzLGQ9PnthKz10aGlzLmdldFBhcnRpYWxTdW0oZCxsLnNvdXJj'@; put 'ZUNvbHVtbil9KSxhfWdldFBhcnRpYWxTdW0obCxhKXtsZXQgZD0wLGg9bFsxXXx8bFswXSxmPW51bGwsXz0wO2Rve2lmKGY9dGhpcy5nZXRDZWxsVmFsdWUoaCxhKSxmPXZqKGYpP251bGw6ZixudWxsIT09Zil7Y29uc3QgVD0oYCR7Zn1gLnNwbGl0KCIuIilbMV18fFtdKS5sZW5ndGh8fDE7'@; put 'VD5fJiYoXz1UKX1kKz1mfHwwLGgtPTF9d2hpbGUoaD49bFswXSk7cmV0dXJuIE1hdGgucm91bmQoZCoxMCoqXykvMTAqKl99Y2FsY3VsYXRlTWluTWF4KGwsYSl7bGV0IGQ9bnVsbDtyZXR1cm4gZHMobC5yYW5nZXMsaD0+e2NvbnN0IGY9dGhpcy5nZXRQYXJ0aWFsTWluTWF4KGgsbC5zb3Vy'@; put 'Y2VDb2x1bW4sYSk7aWYobnVsbD09PWQmJm51bGwhPT1mJiYoZD1mKSxudWxsIT09Zilzd2l0Y2goYSl7Y2FzZSJtaW4iOmQ9TWF0aC5taW4oZCxmKTticmVhaztjYXNlIm1heCI6ZD1NYXRoLm1heChkLGYpfX0pLG51bGw9PT1kPyJOb3QgZW5vdWdoIGRhdGEiOmR9Z2V0UGFydGlhbE1pbk1h'@; put 'eChsLGEsZCl7bGV0IF8saD1udWxsLGY9bFsxXXx8bFswXTtkb3tpZihfPXRoaXMuZ2V0Q2VsbFZhbHVlKGYsYSksXz12aihfKT9udWxsOl8sbnVsbD09PWgpaD1fO2Vsc2UgaWYobnVsbCE9PV8pc3dpdGNoKGQpe2Nhc2UibWluIjpoPU1hdGgubWluKGgsXyk7YnJlYWs7Y2FzZSJtYXgiOmg9'@; put 'TWF0aC5tYXgoaCxfKX1mLT0xfXdoaWxlKGY+PWxbMF0pO3JldHVybiBofWNvdW50RW1wdHkobCxhKXtsZXQgZCxoPTAsZj1sWzFdfHxsWzBdO2Rve2Q9dGhpcy5nZXRDZWxsVmFsdWUoZixhKSxkPXZqKGQpP251bGw6ZCxudWxsPT09ZCYmKGgrPTEpLGYtPTF9d2hpbGUoZj49bFswXSk7cmV0'@; put 'dXJuIGh9Y291bnRFbnRyaWVzKGwpe2xldCBhPTA7cmV0dXJuIGRzKGwucmFuZ2VzLGg9Pntjb25zdCBmPXZvaWQgMD09PWhbMV0/MTpoWzFdLWhbMF0rMSxfPXRoaXMuY291bnRFbXB0eShoLGwuc291cmNlQ29sdW1uKTthKz1mLGEtPV99KSxhfWNhbGN1bGF0ZUF2ZXJhZ2UobCl7cmV0dXJu'@; put 'IHRoaXMuY2FsY3VsYXRlU3VtKGwpL3RoaXMuY291bnRFbnRyaWVzKGwpfWdldENlbGxWYWx1ZShsLGEpe2NvbnN0IGQ9dGhpcy5ob3QudG9WaXN1YWxSb3cobCksaD10aGlzLmhvdC50b1Zpc3VhbENvbHVtbihhKTtsZXQgZj10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKGwsYSksXz0i'@; put 'IjtpZihudWxsIT09ZCYmbnVsbCE9PWgmJihfPXRoaXMuaG90LmdldENlbGxNZXRhKGQsaCkuY2xhc3NOYW1lfHwiIiksXy5pbmRleE9mKCJjb2x1bW5TdW1tYXJ5UmVzdWx0Iik+LTEpcmV0dXJuIG51bGw7aWYodGhpcy5lbmRwb2ludHMuY3VycmVudEVuZHBvaW50LmZvcmNlTnVtZXJpYyYm'@; put 'KCJzdHJpbmciPT10eXBlb2YgZiYmKGY9Zi5yZXBsYWNlKC8sLywiLiIpKSxmPXBhcnNlRmxvYXQoZikpLGlzTmFOKGYpJiYhdGhpcy5lbmRwb2ludHMuY3VycmVudEVuZHBvaW50LnN1cHByZXNzRGF0YVR5cGVFcnJvcnMpdGhyb3cgbmV3IEVycm9yKEFhYENvbHVtblN1bW1hcnkgcGx1Z2lu'@; put 'OiBjZWxsIGF0ICgke2x9LCAke2F9KSBpcyBub3QgaW4gYVx4MjAKICAgICAgICAgIG51bWVyaWMgZm9ybWF0LiBDYW5ub3QgZG8gdGhlIGNhbGN1bGF0aW9uLmApO3JldHVybiBmfW9uQWZ0ZXJJbml0KCl7dGhpcy5lbmRwb2ludHMuZW5kcG9pbnRzPXRoaXMuZW5kcG9pbnRzLnBhcnNlU2V0'@; put 'dGluZ3MoKSx0aGlzLmVuZHBvaW50cy5yZWZyZXNoQWxsRW5kcG9pbnRzKCEwKX1vbkFmdGVyQ2hhbmdlKGwsYSl7bCYmIkNvbHVtblN1bW1hcnkucmVzZXQiIT09YSYmIkNvbHVtblN1bW1hcnkuc2V0IiE9PWEmJiJsb2FkRGF0YSIhPT1hJiZ0aGlzLmVuZHBvaW50cy5yZWZyZXNoQ2hhbmdl'@; put 'ZEVuZHBvaW50cyhsKX1vbkFmdGVyUm93TW92ZShsLGEpe3RoaXMuZW5kcG9pbnRzLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJtb3ZlX3JvdyIsbFswXSxsLmxlbmd0aCxsLHRoaXMucGx1Z2luTmFtZSksdGhpcy5lbmRwb2ludHMucmVzZXRTZXR1cEFmdGVyU3RydWN0'@; put 'dXJlQWx0ZXJhdGlvbigibW92ZV9yb3ciLGEsbC5sZW5ndGgsbCx0aGlzLnBsdWdpbk5hbWUpfX1jbGFzcyBNN3tzdGF0aWMgZ2V0IENMQVNTX0VESVRPUl9DT05UQUlORVIoKXtyZXR1cm4iaHRDb21tZW50c0NvbnRhaW5lciJ9c3RhdGljIGdldCBDTEFTU19FRElUT1IoKXtyZXR1cm4iaHRD'@; put 'b21tZW50cyJ9c3RhdGljIGdldCBDTEFTU19JTlBVVCgpe3JldHVybiJodENvbW1lbnRUZXh0QXJlYSJ9c3RhdGljIGdldCBDTEFTU19DRUxMKCl7cmV0dXJuImh0Q29tbWVudENlbGwifWNvbnN0cnVjdG9yKGwsYSl7dGhpcy5yb290RG9jdW1lbnQ9bCx0aGlzLmlzUnRsPWEsdGhpcy5jb250'@; put 'YWluZXI9bnVsbCx0aGlzLmVkaXRvcj10aGlzLmNyZWF0ZUVkaXRvcigpLHRoaXMuZWRpdG9yU3R5bGU9dGhpcy5lZGl0b3Iuc3R5bGUsdGhpcy5oaWRkZW49ITAsdGhpcy5oaWRlKCl9c2V0UG9zaXRpb24obCxhKXt0aGlzLmVkaXRvclN0eWxlLmxlZnQ9YCR7bH1weGAsdGhpcy5lZGl0b3JT'@; put 'dHlsZS50b3A9YCR7YX1weGB9c2V0U2l6ZShsLGEpe2lmKGwmJmEpe2NvbnN0IGQ9dGhpcy5nZXRJbnB1dEVsZW1lbnQoKTtkLnN0eWxlLndpZHRoPWAke2x9cHhgLGQuc3R5bGUuaGVpZ2h0PWAke2F9cHhgfX1nZXRTaXplKCl7cmV0dXJue3dpZHRoOndhKHRoaXMuZ2V0SW5wdXRFbGVtZW50'@; put 'KCkpLGhlaWdodDphbCh0aGlzLmdldElucHV0RWxlbWVudCgpKX19cmVzZXRTaXplKCl7Y29uc3QgbD10aGlzLmdldElucHV0RWxlbWVudCgpO2wuc3R5bGUud2lkdGg9IiIsbC5zdHlsZS5oZWlnaHQ9IiJ9c2V0UmVhZE9ubHlTdGF0ZShsKXt0aGlzLmdldElucHV0RWxlbWVudCgpLnJlYWRP'@; put 'bmx5PWx9c2hvdygpe3RoaXMuZWRpdG9yU3R5bGUuZGlzcGxheT0iYmxvY2siLHRoaXMuaGlkZGVuPSExfWhpZGUoKXt0aGlzLmhpZGRlbnx8KHRoaXMuZWRpdG9yU3R5bGUuZGlzcGxheT0ibm9uZSIpLHRoaXMuaGlkZGVuPSEwfWlzVmlzaWJsZSgpe3JldHVybiJibG9jayI9PT10aGlzLmVk'@; put 'aXRvclN0eWxlLmRpc3BsYXl9c2V0VmFsdWUoKXtjb25zdCBhPShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIpfHwiIjt0aGlzLmdldElucHV0RWxlbWVudCgpLnZhbHVlPWF9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5nZXRJbnB1dEVs'@; put 'ZW1lbnQoKS52YWx1ZX1pc0ZvY3VzZWQoKXtyZXR1cm4gdGhpcy5yb290RG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXRoaXMuZ2V0SW5wdXRFbGVtZW50KCl9Zm9jdXMoKXt0aGlzLmdldElucHV0RWxlbWVudCgpLmZvY3VzKCl9Y3JlYXRlRWRpdG9yKCl7Y29uc3QgbD10aGlzLnJvb3REb2N1'@; put 'bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxhPXRoaXMucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7cmV0dXJuIGwuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5jb250YWluZXI9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5jb250'@; put 'YWluZXIuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMuaXNSdGw/InJ0bCI6Imx0ciIpLHBpKHRoaXMuY29udGFpbmVyLE03LkNMQVNTX0VESVRPUl9DT05UQUlORVIpLHRoaXMucm9vdERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpLHBpKGwsTTcuQ0xBU1NfRURJVE9S'@; put 'KSxwaShhLE03LkNMQVNTX0lOUFVUKSxsLmFwcGVuZENoaWxkKGEpLHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGwpLGx9Z2V0SW5wdXRFbGVtZW50KCl7cmV0dXJuIHRoaXMuZWRpdG9yLnF1ZXJ5U2VsZWN0b3IoYC4ke003LkNMQVNTX0lOUFVUfWApfWRlc3Ryb3koKXtjb25zdCBsPXRo'@; put 'aXMuY29udGFpbmVyP3RoaXMuY29udGFpbmVyLnBhcmVudE5vZGU6bnVsbDt0aGlzLmVkaXRvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWRpdG9yKSx0aGlzLmVkaXRvcj1udWxsLHRoaXMuZWRpdG9yU3R5bGU9bnVsbCxsJiZsLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKX19'@; put 'Y29uc3QgbFJlPU03LGdzPSItLS0tLS0tLS0iO2Z1bmN0aW9uIFhrKGMpe3JldHVybiBCbyhjLCJodFNlcGFyYXRvciIpfWZ1bmN0aW9uIEprKGMpe3JldHVybiBCbyhjLCJodERpc2FibGVkIil9ZnVuY3Rpb24gUWsoYyl7cmV0dXJuIEJvKGMsImh0U2VsZWN0aW9uRGlzYWJsZWQiKX1mdW5j'@; put 'dGlvbiBJZyhjKXtjb25zdCBsPWMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4hbHx8bFswXTwwP251bGw6bH1mdW5jdGlvbiBMZyhjLGwpe2NvbnN0IGE9e307cmV0dXJuIERuKGMsZD0+e2QuZm9yQWxsKChoLGYpPT57aD49MCYmZj49MCYmKGFbaF18fChhW2hdPVtdKSxhW2hdW2ZdPWwoaCxmKSl9'@; put 'KX0pLGF9ZnVuY3Rpb24gS3AoYyxsLGEsZCxoKXtEbihjLGY9PntmLmZvckFsbCgoXyxUKT0+e18+PTAmJlQ+PTAmJmZ1bmN0aW9uIHBSZShjLGwsYSxkLGgsZil7Y29uc3QgXz1oKGMsbCk7bGV0IFQ9ZDtfLmNsYXNzTmFtZSYmKFQ9InZlcnRpY2FsIj09PWE/ZnVuY3Rpb24gaFJlKGMsbCl7'@; put 'cmV0dXJuLTEhPT1jLmluZGV4T2YobCk/YzpgJHtjLnJlcGxhY2UoImh0VG9wIiwiIikucmVwbGFjZSgiaHRNaWRkbGUiLCIiKS5yZXBsYWNlKCJodEJvdHRvbSIsIiIpLnJlcGxhY2UoIiAgIiwiIil9ICR7bH1gfShfLmNsYXNzTmFtZSxkKTpmdW5jdGlvbiBmUmUoYyxsKXtyZXR1cm4tMSE9'@; put 'PWMuaW5kZXhPZihsKT9jOmAke2MucmVwbGFjZSgiaHRMZWZ0IiwiIikucmVwbGFjZSgiaHRDZW50ZXIiLCIiKS5yZXBsYWNlKCJodFJpZ2h0IiwiIikucmVwbGFjZSgiaHRKdXN0aWZ5IiwiIikucmVwbGFjZSgiICAiLCIiKX0gJHtsfWB9KF8uY2xhc3NOYW1lLGQpKSxmKGMsbCwiY2xhc3NO'@; put 'YW1lIixUKX0oXyxULGwsYSxkLGgpfSl9KX1mdW5jdGlvbiB5aChjLGwpe2xldCBhPSExO3JldHVybiBBcnJheS5pc0FycmF5KGMpJiZEbihjLGQ9PihkLmZvckFsbCgoaCxmKT0+e2lmKGg+PTAmJmY+PTAmJmwoaCxmKSlyZXR1cm4gYT0hMCwhMX0pLGEpKSxhfWZ1bmN0aW9uIFlmKGMpe3Jl'@; put 'dHVybmA8c3BhbiBjbGFzcz0ic2VsZWN0ZWQiPiR7U3RyaW5nLmZyb21DaGFyQ29kZSgxMDAwMyl9PC9zcGFuPiR7Y31gfWZ1bmN0aW9uIFByZShjLGwpe2NvbnN0IGE9Yy5zbGljZSgwKTtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoJiZhW2RdLm5hbWU9PT1sOylhLnNoaWZ0KCk7cmV0dXJuIGF9'@; put 'Y2xhc3MgRnJle2NvbnN0cnVjdG9yKGwpe3RoaXMud2FzTGFzdEFjdGlvblNob3c9ITAsdGhpcy5zaG93RGVib3VuY2VkPW51bGwsdGhpcy5oaWRpbmdUaW1lcj1udWxsLHRoaXMudXBkYXRlRGVsYXkobCl9aGlkZSgpe3RoaXMud2FzTGFzdEFjdGlvblNob3c9ITEsdGhpcy5oaWRpbmdUaW1l'@; put 'cj1zZXRUaW1lb3V0KCgpPT57ITE9PT10aGlzLndhc0xhc3RBY3Rpb25TaG93JiZ0aGlzLnJ1bkxvY2FsSG9va3MoImhpZGUiKX0sMjUwKX1zaG93KGwpe3RoaXMud2FzTGFzdEFjdGlvblNob3c9ITAsdGhpcy5zaG93RGVib3VuY2VkKGwpfWNhbmNlbEhpZGluZygpe3RoaXMud2FzTGFzdEFj'@; put 'dGlvblNob3c9ITAsY2xlYXJUaW1lb3V0KHRoaXMuaGlkaW5nVGltZXIpLHRoaXMuaGlkaW5nVGltZXI9bnVsbH11cGRhdGVEZWxheSgpe3RoaXMuc2hvd0RlYm91bmNlZD1tTihhPT57dGhpcy53YXNMYXN0QWN0aW9uU2hvdyYmdGhpcy5ydW5Mb2NhbEhvb2tzKCJzaG93IixhLmZyb20ucm93'@; put 'LGEuZnJvbS5jb2wpfSxhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MjUwKX1kZXN0cm95KCl7dGhpcy5jbGVhckxvY2FsSG9va3MoKX19VGEoRnJlLE8wKTtjb25zdCB3UmU9RnJlLGJqPSJjb21tZW50cyIsZUE9bmV3IFdlYWtNYXAsd2g9'@; put 'ImNvbW1lbnQiLHg3PSJ2YWx1ZSIsdEE9InJlYWRPbmx5IjtjbGFzcyBTUmUgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gYmp9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gNjB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksdGhpcy5lZGl0b3I9'@; put 'bnVsbCx0aGlzLmRpc3BsYXlTd2l0Y2g9bnVsbCx0aGlzLmV2ZW50TWFuYWdlcj1udWxsLHRoaXMucmFuZ2U9e30sdGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaD0hMSxlQS5zZXQodGhpcyx7dGVtcEVkaXRvckRpbWVuc2lvbnM6e30sY2VsbEJlbG93Q3Vyc29yOm51bGx9KX1pc0VuYWJs'@; put 'ZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbYmpdfWVuYWJsZVBsdWdpbigpe3RoaXMuZW5hYmxlZHx8KHRoaXMuZWRpdG9yfHwodGhpcy5lZGl0b3I9bmV3IGxSZSh0aGlzLmhvdC5yb290RG9jdW1lbnQsdGhpcy5ob3QuaXNSdGwoKSkpLHRoaXMuZXZlbnRNYW5hZ2VyfHwo'@; put 'dGhpcy5ldmVudE1hbmFnZXI9bmV3IGxsKHRoaXMpKSx0aGlzLmRpc3BsYXlTd2l0Y2h8fCh0aGlzLmRpc3BsYXlTd2l0Y2g9bmV3IHdSZSh0aGlzLmdldERpc3BsYXlEZWxheVNldHRpbmcoKSkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixsPT50aGlz'@; put 'LmFkZFRvQ29udGV4dE1lbnUobCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW5kZXJlciIsKGwsYSxkLGgsZixfKT0+dGhpcy5vbkFmdGVyUmVuZGVyZXIobCxfKSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsKCk9PnRoaXMuaGlkZSgpKSx0aGlzLmFkZEhvb2soImFm'@; put 'dGVyU2Nyb2xsVmVydGljYWxseSIsKCk9PnRoaXMuaGlkZSgpKSx0aGlzLmFkZEhvb2soImFmdGVyQmVnaW5FZGl0aW5nIiwoKT0+dGhpcy5oaWRlKCkpLHRoaXMuZGlzcGxheVN3aXRjaC5hZGRMb2NhbEhvb2soImhpZGUiLCgpPT50aGlzLmhpZGUoKSksdGhpcy5kaXNwbGF5U3dpdGNoLmFk'@; put 'ZExvY2FsSG9vaygic2hvdyIsKGwsYSk9PnRoaXMuc2hvd0F0Q2VsbChsLGEpKSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksc3VwZXIudXBkYXRlUGx1'@; put 'Z2luKCksdGhpcy5kaXNwbGF5U3dpdGNoLnVwZGF0ZURlbGF5KHRoaXMuZ2V0RGlzcGxheURlbGF5U2V0dGluZygpKX1kaXNhYmxlUGx1Z2luKCl7c3VwZXIuZGlzYWJsZVBsdWdpbigpfXJlZ2lzdGVyTGlzdGVuZXJzKCl7Y29uc3R7cm9vdERvY3VtZW50Omx9PXRoaXMuaG90O3RoaXMuZXZl'@; put 'bnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwibW91c2VvdmVyIixhPT50aGlzLm9uTW91c2VPdmVyKGEpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNlZG93biIsYT0+dGhpcy5vbk1vdXNlRG93bihhKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRM'@; put 'aXN0ZW5lcihsLCJtb3VzZXVwIiwoKT0+dGhpcy5vbk1vdXNlVXAoKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmVkaXRvci5nZXRJbnB1dEVsZW1lbnQoKSwiYmx1ciIsKCk9PnRoaXMub25FZGl0b3JCbHVyKCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50'@; put 'TGlzdGVuZXIodGhpcy5lZGl0b3IuZ2V0SW5wdXRFbGVtZW50KCksIm1vdXNlZG93biIsYT0+dGhpcy5vbkVkaXRvck1vdXNlRG93bihhKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmVkaXRvci5nZXRJbnB1dEVsZW1lbnQoKSwibW91c2V1cCIsYT0+dGhpcy5v'@; put 'bkVkaXRvck1vdXNlVXAoYSkpfXNldFJhbmdlKGwpe3RoaXMucmFuZ2U9bH1jbGVhclJhbmdlKCl7dGhpcy5yYW5nZT17fX10YXJnZXRJc0NlbGxXaXRoQ29tbWVudChsKXtjb25zdCBhPU5wKGwudGFyZ2V0LCJURCIsIlRCT0RZIik7cmV0dXJuISEoYSYmQm8oYSwiaHRDb21tZW50Q2VsbCIp'@; put 'JiZOcChhLFt0aGlzLmhvdC5yb290RWxlbWVudF0pKX10YXJnZXRJc0NvbW1lbnRUZXh0QXJlYShsKXtyZXR1cm4gdGhpcy5lZGl0b3IuZ2V0SW5wdXRFbGVtZW50KCk9PT1sLnRhcmdldH1zZXRDb21tZW50KGwpe2lmKCF0aGlzLnJhbmdlLmZyb20pdGhyb3cgbmV3IEVycm9yKCdCZWZvcmUg'@; put 'dXNpbmcgdGhpcyBtZXRob2QsIGZpcnN0IHNldCBjZWxsIHJhbmdlIChob3QuZ2V0UGx1Z2luKCJjb21tZW50Iikuc2V0UmFuZ2UoKSknKTtjb25zdCBhPXRoaXMuZWRpdG9yLmdldFZhbHVlKCk7bGV0IGQ9IiI7bnVsbCE9bD9kPWw6bnVsbCE9YSYmKGQ9YSksdGhpcy51cGRhdGVDb21tZW50'@; put 'TWV0YSh0aGlzLnJhbmdlLmZyb20ucm93LHRoaXMucmFuZ2UuZnJvbS5jb2wse1t4N106ZH0pLHRoaXMuaG90LnJlbmRlcigpfXNldENvbW1lbnRBdENlbGwobCxhLGQpe3RoaXMuc2V0UmFuZ2Uoe2Zyb206dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobCxhKX0pLHRoaXMuc2V0Q29tbWVu'@; put 'dChkKX1yZW1vdmVDb21tZW50KCl7bGV0IGw9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtpZighdGhpcy5yYW5nZS5mcm9tKXRocm93IG5ldyBFcnJvcignQmVmb3JlIHVzaW5nIHRoaXMgbWV0aG9kLCBmaXJzdCBzZXQgY2VsbCBy'@; put 'YW5nZSAoaG90LmdldFBsdWdpbigiY29tbWVudCIpLnNldFJhbmdlKCkpJyk7dGhpcy5ob3Quc2V0Q2VsbE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sLHdoKSxsJiZ0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhpZGUoKX1yZW1vdmVDb21tZW50QXRDZWxsKGws'@; put 'YSl7bGV0IGQ9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXTt0aGlzLnNldFJhbmdlKHtmcm9tOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGwsYSl9KSx0aGlzLnJlbW92ZUNvbW1lbnQoZCl9Z2V0Q29tbWVudCgpe3JldHVybiB0'@; put 'aGlzLmdldENvbW1lbnRNZXRhKHRoaXMucmFuZ2UuZnJvbS5yb3csdGhpcy5yYW5nZS5mcm9tLmNvbCx4Nyl9Z2V0Q29tbWVudEF0Q2VsbChsLGEpe3JldHVybiB0aGlzLmdldENvbW1lbnRNZXRhKGwsYSx4Nyl9c2hvdygpe2lmKCF0aGlzLnJhbmdlLmZyb20pdGhyb3cgbmV3IEVycm9yKCdC'@; put 'ZWZvcmUgdXNpbmcgdGhpcyBtZXRob2QsIGZpcnN0IHNldCBjZWxsIHJhbmdlIChob3QuZ2V0UGx1Z2luKCJjb21tZW50Iikuc2V0UmFuZ2UoKSknKTtjb25zdHtmcm9tOntyb3c6bCxjb2w6YX19PXRoaXMucmFuZ2U7aWYobDwwfHxsPnRoaXMuaG90LmNvdW50U291cmNlUm93cygpLTF8fGE8'@; put 'MHx8YT50aGlzLmhvdC5jb3VudFNvdXJjZUNvbHMoKS0xKXJldHVybiExO2NvbnN0IGQ9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sKTtyZXR1cm4gdGhpcy5lZGl0b3Iuc2V0VmFsdWUoZFt3aF0/ZFt3aF1beDddOiIiKSx0aGlz'@; put 'LmVkaXRvci5zaG93KCksdGhpcy5yZWZyZXNoRWRpdG9yKCEwKSwhMH1zaG93QXRDZWxsKGwsYSl7cmV0dXJuIHRoaXMuc2V0UmFuZ2Uoe2Zyb206dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobCxhKX0pLHRoaXMuc2hvdygpfWhpZGUoKXt0aGlzLmVkaXRvci5oaWRlKCl9cmVmcmVzaEVk'@; put 'aXRvcigpe3ZhciBsLGE7aWYoIShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdfHx0aGlzLnJhbmdlLmZyb20mJnRoaXMuZWRpdG9yLmlzVmlzaWJsZSgpKSlyZXR1cm47Y29uc3R7cm93SW5kZXhNYXBwZXI6aCxjb2x1bW5JbmRleE1hcHBl'@; put 'cjpmfT10aGlzLmhvdCx7cm93Ol8sY29sOlR9PXRoaXMucmFuZ2UuZnJvbTtsZXQgVz1oLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoXyksaWU9Zi5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KFQpO2NvbnN0IHBlPW51bGw9PT1XO3RoaXMuZWRpdG9yLnNldFBvc2l0aW9uKDAs'@; put 'MCksbnVsbD09PVcmJihXPWguZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChoLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfLC0xKSkpLG51bGw9PT1pZSYmKGllPWYuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChmLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChULC0xKSkpO2Nv'@; put 'bnN0IHdlPW51bGw9PT1XLEVlPW51bGw9PT1pZTtXPW51bGwhPT0obD1XKSYmdm9pZCAwIT09bD9sOjAsaWU9bnVsbCE9PShhPWllKSYmdm9pZCAwIT09YT9hOjA7Y29uc3R7cm9vdFdpbmRvdzpaZSx2aWV3Ontfd3Q6aXR9fT10aGlzLmhvdCx7d3RUYWJsZTpldH09aXQseXQ9aXQuZ2V0Q2Vs'@; put 'bCh7cm93OlcsY29sOmllfSwhMCksRXQ9dGhpcy5nZXRDb21tZW50TWV0YShfLFQsInN0eWxlIik7RXQ/dGhpcy5lZGl0b3Iuc2V0U2l6ZShFdC53aWR0aCxFdC5oZWlnaHQpOnRoaXMuZWRpdG9yLnJlc2V0U2l6ZSgpO2NvbnN0IFN0PUVlPzA6ZXQuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgo'@; put 'aWUpLEp0PXBlJiYhd2U/YWwoeXQpOjAse2xlZnQ6bm4sdG9wOnZuLHdpZHRoOk5uLGhlaWdodDpjcn09eXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse3dpZHRoOklyLGhlaWdodDpFaX09dGhpcy5lZGl0b3IuZ2V0U2l6ZSgpLHtpbm5lcldpZHRoOklpLGlubmVySGVpZ2h0OmZyfT10aGlz'@; put 'LmhvdC5yb290V2luZG93LGlpPXRoaXMuaG90LnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7bGV0IGpyPW5uK1plLnNjcm9sbFgrU3QsT249dm4rWmUuc2Nyb2xsWStKdDt0aGlzLmhvdC5pc1J0bCgpJiYoanItPUlyK1N0KSx0aGlzLmhvdC5pc0x0cigpJiZubitObitJcj5JaT9qcj1u'@; put 'bitaZS5zY3JvbGxYLUlyLTE6dGhpcy5ob3QuaXNSdGwoKSYmanI8LShpaS5zY3JvbGxXaWR0aC1paS5jbGllbnRXaWR0aCkmJihqcj1ubitaZS5zY3JvbGxYK1N0KzEpLHZuK0VpPmZyJiYoT24tPUVpLWNyKzEpLHRoaXMuZWRpdG9yLnNldFBvc2l0aW9uKGpyLE9uKSx0aGlzLmVkaXRvci5z'@; put 'ZXRSZWFkT25seVN0YXRlKHRoaXMuZ2V0Q29tbWVudE1ldGEoXyxULHRBKSl9Y2hlY2tTZWxlY3Rpb25Db21tZW50c0NvbnNpc3RlbmN5KCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKCFsKXJldHVybiExO2xldCBhPSExO2NvbnN0IGQ9bC5nZXRUb3BTdGFy'@; put 'dENvcm5lcigpO3JldHVybiB0aGlzLmdldENvbW1lbnRNZXRhKGQucm93LGQuY29sLHg3KSYmKGE9ITApLGF9dXBkYXRlQ29tbWVudE1ldGEobCxhLGQpe2NvbnN0IGg9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEobCxhKVt3aF07bGV0IGY7aD8oZj15dShoKSxseShmLGQpKTpmPWQsdGhpcy5ob3Qu'@; put 'c2V0Q2VsbE1ldGEobCxhLHdoLGYpfWdldENvbW1lbnRNZXRhKGwsYSxkKXtjb25zdCBoPXRoaXMuaG90LmdldENlbGxNZXRhKGwsYSk7aWYoaFt3aF0pcmV0dXJuIGhbd2hdW2RdfW9uTW91c2VEb3duKGwpe2lmKHRoaXMuaG90LnZpZXcmJnRoaXMuaG90LnZpZXcuX3d0JiYhdGhpcy5wcmV2'@; put 'ZW50RWRpdG9yQXV0b1N3aXRjaCYmIXRoaXMudGFyZ2V0SXNDb21tZW50VGV4dEFyZWEobCkpe2NvbnN0IGE9TnAobC50YXJnZXQsIlREIiwiVEJPRFkiKTtsZXQgZD1udWxsO2EmJihkPXRoaXMuaG90LmdldENvb3JkcyhhKSksKCFhfHx0aGlzLnJhbmdlLmZyb20mJmQmJih0aGlzLnJhbmdl'@; put 'LmZyb20ucm93IT09ZC5yb3d8fHRoaXMucmFuZ2UuZnJvbS5jb2whPT1kLmNvbCkpJiZ0aGlzLmhpZGUoKX19b25Nb3VzZU92ZXIobCl7Y29uc3QgYT1lQS5nZXQodGhpcykse3Jvb3REb2N1bWVudDpkfT10aGlzLmhvdDtpZighKHRoaXMucHJldmVudEVkaXRvckF1dG9Td2l0Y2h8fHRoaXMu'@; put 'ZWRpdG9yLmlzRm9jdXNlZCgpfHxCbyhsLnRhcmdldCwid3RCb3JkZXIiKXx8YS5jZWxsQmVsb3dDdXJzb3I9PT1sLnRhcmdldCkmJnRoaXMuZWRpdG9yKWlmKGEuY2VsbEJlbG93Q3Vyc29yPWQuZWxlbWVudEZyb21Qb2ludChsLmNsaWVudFgsbC5jbGllbnRZKSx0aGlzLnRhcmdldElzQ2Vs'@; put 'bFdpdGhDb21tZW50KGwpKXtjb25zdCBoPXRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UodGhpcy5ob3QuZ2V0Q29vcmRzKGwudGFyZ2V0KSk7dGhpcy5kaXNwbGF5U3dpdGNoLnNob3coaCl9ZWxzZSBWcChsLnRhcmdldCxkKSYmIXRoaXMudGFyZ2V0SXNDb21tZW50VGV4dEFyZWEobCkmJnRo'@; put 'aXMuZGlzcGxheVN3aXRjaC5oaWRlKCl9b25Nb3VzZVVwKCl7dGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaD0hMX1vbkFmdGVyUmVuZGVyZXIobCxhKXthW3doXSYmYVt3aF1beDddJiZwaShsLGEuY29tbWVudGVkQ2VsbENsYXNzTmFtZSl9b25FZGl0b3JCbHVyKCl7dGhpcy5zZXRDb21t'@; put 'ZW50KCl9b25FZGl0b3JNb3VzZURvd24obCl7ZUEuZ2V0KHRoaXMpLnRlbXBFZGl0b3JEaW1lbnNpb25zPXt3aWR0aDp3YShsLnRhcmdldCksaGVpZ2h0OmFsKGwudGFyZ2V0KX19b25FZGl0b3JNb3VzZVVwKGwpe2NvbnN0IGE9ZUEuZ2V0KHRoaXMpLGQ9d2EobC50YXJnZXQpLGg9YWwobC50'@; put 'YXJnZXQpOyhkIT09YS50ZW1wRWRpdG9yRGltZW5zaW9ucy53aWR0aCsxfHxoIT09YS50ZW1wRWRpdG9yRGltZW5zaW9ucy5oZWlnaHQrMikmJnRoaXMudXBkYXRlQ29tbWVudE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sLHtzdHlsZTp7d2lkdGg6ZCxoZWln'@; put 'aHQ6aH19KX1vbkNvbnRleHRNZW51QWRkQ29tbWVudCgpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTt0aGlzLnByZXZlbnRFZGl0b3JBdXRvU3dpdGNoPSEwLHRoaXMuZGlzcGxheVN3aXRjaC5jYW5jZWxIaWRpbmcoKSx0aGlzLnNldFJhbmdlKHtmcm9tOmwuaGln'@; put 'aGxpZ2h0fSksdGhpcy5zaG93KCksdGhpcy5ob3QuZGVzZWxlY3RDZWxsKCksdGhpcy5lZGl0b3IuZm9jdXMoKX1vbkNvbnRleHRNZW51UmVtb3ZlQ29tbWVudCgpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTt0aGlzLnByZXZlbnRFZGl0b3JBdXRvU3dpdGNoPSEw'@; put 'LGwuZm9yQWxsKChhLGQpPT57YT49MCYmZD49MCYmdGhpcy5yZW1vdmVDb21tZW50QXRDZWxsKGEsZCwhMSl9KSx0aGlzLmhvdC5yZW5kZXIoKX1vbkNvbnRleHRNZW51TWFrZVJlYWRPbmx5KCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO3RoaXMucHJldmVudEVk'@; put 'aXRvckF1dG9Td2l0Y2g9ITAsbC5mb3JBbGwoKGEsZCk9PntpZihhPj0wJiZkPj0wKXtjb25zdCBoPSEhdGhpcy5nZXRDb21tZW50TWV0YShhLGQsdEEpO3RoaXMudXBkYXRlQ29tbWVudE1ldGEoYSxkLHtbdEFdOiFofSl9fSl9YWRkVG9Db250ZXh0TWVudShsKXtjb25zdCBhPSgpPT50aGlz'@; put 'LmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpPjAmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCk+MDtsLml0ZW1zLnB1c2goe25hbWU6Ii0tLS0tLS0tLSJ9LHtrZXk6ImNvbW1lbnRzQWRkRWRpdCIs'@; put 'bmFtZTooKT0+dGhpcy5jaGVja1NlbGVjdGlvbkNvbW1lbnRzQ29uc2lzdGVuY3koKT90aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKFZWKTp0aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKE5WKSxjYWxsYmFjazooKT0+dGhpcy5vbkNvbnRleHRNZW51QWRkQ29tbWVudCgpLGRpc2Fi'@; put 'bGVkOigpPT4hYSgpfHwhKHRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpJiYhdGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX0se2tleToiY29tbWVudHNSZW1vdmUiLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEJWKX0sY2FsbGJhY2s6KCk9'@; put 'PnRoaXMub25Db250ZXh0TWVudVJlbW92ZUNvbW1lbnQoKSxkaXNhYmxlZDooKT0+IWEoKXx8ISh0aGlzLmhvdC5nZXRTZWxlY3RlZExhc3QoKSYmIXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSl9LHtrZXk6ImNvbW1lbnRzUmVhZE9ubHkiLG5hbWUoKXtsZXQgZD10'@; put 'aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoalYpO3JldHVybiB5aCh0aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksKGYsXyk9PntsZXQgVD10aGlzLmdldENlbGxNZXRhKGYsXylbd2hdO2lmKFQmJihUPVRbdEFdKSxUKXJldHVybiEwfSkmJihkPVlmKGQpKSxkfSxjYWxsYmFjazooKT0+dGhp'@; put 'cy5vbkNvbnRleHRNZW51TWFrZVJlYWRPbmx5KCksZGlzYWJsZWQ6KCk9PiFhKCl8fCEodGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCkmJiF0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkmJnRoaXMuY2hlY2tTZWxlY3Rpb25Db21tZW50c0NvbnNpc3RlbmN5KCkpfSl9'@; put 'Z2V0RGlzcGxheURlbGF5U2V0dGluZygpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtial07aWYodXMobCkpcmV0dXJuIGwuZGlzcGxheURlbGF5fWRlc3Ryb3koKXt0aGlzLmVkaXRvciYmdGhpcy5lZGl0b3IuZGVzdHJveSgpLHRoaXMuZGlzcGxheVN3aXRjaCYmdGhpcy5kaXNw'@; put 'bGF5U3dpdGNoLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fUYoMTYwMDEpO2NvbnN0IE5yZT1jbGFzcyBNUmV7Y29uc3RydWN0b3IobCl7dGhpcy5ob3Q9bCx0aGlzLmNvbW1hbmRzPXt9LHRoaXMuY29tbW9uQ2FsbGJhY2s9bnVsbH1yZWdpc3RlckNvbW1hbmQobCxhKXt0aGlzLmNvbW1h'@; put 'bmRzW2xdPWF9c2V0Q29tbW9uQ2FsbGJhY2sobCl7dGhpcy5jb21tb25DYWxsYmFjaz1sfWV4ZWN1dGUobCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYT4xP2EtMTowKSxoPTE7aDxhO2grKylkW2gtMV09YXJndW1lbnRzW2hdO2NvbnN0IGY9bC5zcGxpdCgiOiIp'@; put 'LF89ZlswXSxUPTI9PT1mLmxlbmd0aD9mWzFdOm51bGw7bGV0IFc9dGhpcy5jb21tYW5kc1tfXTtpZighVyl0aHJvdyBuZXcgRXJyb3IoYE1lbnUgY29tbWFuZCAnJHtffScgbm90IGV4aXN0cy5gKTtpZihUJiZXLnN1Ym1lbnUmJihXPWZ1bmN0aW9uIHhSZShjLGwpe2xldCBhO3JldHVybiBE'@; put 'bihsLGQ9Pntjb25zdCBoPWQua2V5P2Qua2V5LnNwbGl0KCI6Iik6bnVsbDtpZihBcnJheS5pc0FycmF5KGgpJiZoWzFdPT09YylyZXR1cm4gYT1kLCExfSksYX0oVCxXLnN1Ym1lbnUuaXRlbXMpKSwhMD09PVcuZGlzYWJsZWR8fCJmdW5jdGlvbiI9PXR5cGVvZiBXLmRpc2FibGVkJiYhMD09'@; put 'PVcuZGlzYWJsZWQuY2FsbCh0aGlzLmhvdCl8fGJsKFcsInN1Ym1lbnUiKSlyZXR1cm47Y29uc3QgaWU9W107ImZ1bmN0aW9uIj09dHlwZW9mIFcuY2FsbGJhY2smJmllLnB1c2goVy5jYWxsYmFjayksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuY29tbW9uQ2FsbGJhY2smJmllLnB1c2godGhp'@; put 'cy5jb21tb25DYWxsYmFjayksZC51bnNoaWZ0KGYuam9pbigiOiIpKSxEbihpZSxwZT0+cGUuYXBwbHkodGhpcy5ob3QsZCkpfX0sdmQ9ImFsaWdubWVudCIsbkE9ImNsZWFyX2NvbHVtbiIsRHk9ImNvbF9sZWZ0IixJeT0iY29sX3JpZ2h0IixMeT0ibWFrZV9yZWFkX29ubHkiLHJBPSJyZWRv'@; put 'IixSeT0icmVtb3ZlX2NvbCIsaUE9InJlbW92ZV9yb3ciLG9BPSJyb3dfYWJvdmUiLHNBPSJyb3dfYmVsb3ciLE95PSJub19pdGVtcyIsYUE9InVuZG8iLFZyZT1bb0Esc0EsRHksSXksbkEsaUEsUnksYUEsckEsTHksdmQsZ3MsT3ldLEJyZT17W2dzXTpmdW5jdGlvbiBjUmUoKXtyZXR1cm57'@; put 'bmFtZTpnc319LFtPeV06ZnVuY3Rpb24gRlJlKCl7cmV0dXJue2tleTpPeSxuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShfVil9LGRpc2FibGVkOiEwLGlzQ29tbWFuZDohMX19LFtvQV06ZnVuY3Rpb24gT1JlKCl7cmV0dXJue2tleTpvQSxuYW1lKCl7cmV0dXJuIHRo'@; put 'aXMuZ2V0VHJhbnNsYXRlZFBocmFzZShiVil9LGNhbGxiYWNrKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuZ2V0VG9wTGVmdENvcm5lcigpO3RoaXMuYWx0ZXIoImluc2VydF9yb3dfYWJvdmUiLGMucm93LDEsIkNvbnRleHRNZW51LnJvd0Fib3ZlIil9LGRpc2FibGVk'@; put 'KCl7cmV0dXJuIUlnKHRoaXMpfHwodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCk/MD09PXRoaXMuY291bnRSb3dzKCk6dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRoaXMuY291bnRSb3dzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhSb3dz'@; put 'KX0saGlkZGVuKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd0luc2VydFJvd319fSxbc0FdOmZ1bmN0aW9uIFBSZSgpe3JldHVybntrZXk6c0EsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoeVYpfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxl'@; put 'Y3RlZFJhbmdlTGFzdCgpLmdldEJvdHRvbVJpZ2h0Q29ybmVyKCk7dGhpcy5hbHRlcigiaW5zZXJ0X3Jvd19iZWxvdyIsYy5yb3csMSwiQ29udGV4dE1lbnUucm93QmVsb3ciKX0sZGlzYWJsZWQoKXtyZXR1cm4hSWcodGhpcyl8fCF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIo'@; put 'KSYmKHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHx0aGlzLmNvdW50Um93cygpPj10aGlzLmdldFNldHRpbmdzKCkubWF4Um93cyl9LGhpZGRlbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dJbnNlcnRSb3d9fX0sW0R5XTpmdW5jdGlvbiBBUmUo'@; put 'KXtyZXR1cm57a2V5OkR5LG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHdWKX0sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5nZXRUb3BMZWZ0Q29ybmVyKCksbD10aGlzLmlzUnRsKCk/Imluc2VydF9jb2xfZW5kIjoiaW5zZXJ0'@; put 'X2NvbF9zdGFydCI7dGhpcy5hbHRlcihsLGMuY29sLDEsIkNvbnRleHRNZW51LmNvbHVtbkxlZnQiKX0sZGlzYWJsZWQoKXtyZXR1cm4hdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQoKXx8IUlnKHRoaXMpfHwodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCk/MD09'@; put 'PXRoaXMuY291bnRDb2xzKCk6dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fHRoaXMuY291bnRDb2xzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhDb2xzKX0saGlkZGVuKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd0luc2VydENvbHVtbn19fSxbSXld'@; put 'OmZ1bmN0aW9uIFRSZSgpe3JldHVybntrZXk6SXksbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoQ1YpfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmdldFRvcFJpZ2h0Q29ybmVyKCksbD10aGlzLmlzUnRsKCk/Imluc2VydF9j'@; put 'b2xfc3RhcnQiOiJpbnNlcnRfY29sX2VuZCI7dGhpcy5hbHRlcihsLGMuY29sLDEsIkNvbnRleHRNZW51LmNvbHVtblJpZ2h0Iil9LGRpc2FibGVkKCl7cmV0dXJuIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCl8fCFJZyh0aGlzKXx8IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0'@; put 'ZWRCeUNvcm5lcigpJiYodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fHRoaXMuY291bnRDb2xzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhDb2xzKX0saGlkZGVuKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd0luc2VydENvbHVtbn19fSxbbkFdOmZ1'@; put 'bmN0aW9uIGtSZSgpe3JldHVybntrZXk6bkEsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoQVYpfSxjYWxsYmFjayhjLGwpe2NvbnN0IGE9bFswXS5zdGFydC5jb2wsZD1sWzBdLmVuZC5jb2w7dGhpcy5jb3VudFJvd3MoKSYmdGhpcy5wb3B1bGF0ZUZyb21BcnJheSgw'@; put 'LGEsW1tudWxsXV0sTWF0aC5tYXgobFswXS5zdGFydC5yb3csbFswXS5lbmQucm93KSxkLCJDb250ZXh0TWVudS5jbGVhckNvbHVtbiIpfSxkaXNhYmxlZCgpe3JldHVybiFJZyh0aGlzKXx8IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfX19LFtpQV06ZnVuY3Rp'@; put 'b24gUlJlKCl7cmV0dXJue2tleTppQSxuYW1lKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkKCk7bGV0IGw9MDtpZihjKWlmKGMubGVuZ3RoPjEpbD0xO2Vsc2V7Y29uc3RbYSwsZF09Y1swXTthLWQhPTAmJihsPTEpfXJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoU1YsbCl9LGNh'@; put 'bGxiYWNrKCl7dGhpcy5hbHRlcigicmVtb3ZlX3JvdyIsZnVuY3Rpb24geERlKGMpe2NvbnN0IGw9ZzcoYyk7aWYoMD09PWx8fDE9PT1sKXJldHVybltdO2NvbnN0IGE9d3kobCksZD1uZXcgU2V0O3JldHVybiBEbihjLF89Pntjb25zdFtULCxXXT1hKF8pLGllPU1hdGgubWF4KFQsMCk7RG4o'@; put 'QXJyYXkuZnJvbShuZXcgQXJyYXkoVy1pZSsxKSwod2UsRWUpPT5pZStFZSksd2U9PntkLmhhcyh3ZSl8fGQuYWRkKHdlKX0pfSksQWwoQXJyYXkuZnJvbShkKS5zb3J0KChfLFQpPT5fLVQpLChfLFQsVyxpZSk9PigwIT09VyYmVD09PWllW1ctMV0rMT9fW18ubGVuZ3RoLTFdWzFdKz0xOl8u'@; put 'cHVzaChbVCwxXSksXyksW10pfSh0aGlzLmdldFNlbGVjdGVkKCkpLDEsIkNvbnRleHRNZW51LnJlbW92ZVJvdyIpfSxkaXNhYmxlZCgpe2lmKCFJZyh0aGlzKSlyZXR1cm4hMDtjb25zdCBsPXRoaXMuY291bnRSb3dzKCk7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5l'@; put 'cigpPzA9PT1sOnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHwwPT09bH0saGlkZGVuKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd1JlbW92ZVJvd319fSxbUnldOmZ1bmN0aW9uIExSZSgpe3JldHVybntrZXk6UnksbmFtZSgpe2NvbnN0IGM9dGhp'@; put 'cy5nZXRTZWxlY3RlZCgpO2xldCBsPTA7aWYoYylpZihjLmxlbmd0aD4xKWw9MTtlbHNle2NvbnN0WyxhLCxkXT1jWzBdO2EtZCE9MCYmKGw9MSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShNVixsKX0sY2FsbGJhY2soKXt0aGlzLmFsdGVyKCJyZW1vdmVfY29sIixmdW5jdGlv'@; put 'biBNRGUoYyl7Y29uc3QgbD1nNyhjKTtpZigwPT09bHx8MT09PWwpcmV0dXJuW107Y29uc3QgYT13eShsKSxkPW5ldyBTZXQ7cmV0dXJuIERuKGMsXz0+e2NvbnN0WyxULCxXXT1hKF8pLGllPU1hdGgubWF4KFQsMCk7RG4oQXJyYXkuZnJvbShuZXcgQXJyYXkoVy1pZSsxKSwod2UsRWUpPT5p'@; put 'ZStFZSksd2U9PntkLmhhcyh3ZSl8fGQuYWRkKHdlKX0pfSksQWwoQXJyYXkuZnJvbShkKS5zb3J0KChfLFQpPT5fLVQpLChfLFQsVyxpZSk9PigwIT09VyYmVD09PWllW1ctMV0rMT9fW18ubGVuZ3RoLTFdWzFdKz0xOl8ucHVzaChbVCwxXSksXyksW10pfSh0aGlzLmdldFNlbGVjdGVkKCkp'@; put 'LG51bGwsIkNvbnRleHRNZW51LnJlbW92ZUNvbHVtbiIpfSxkaXNhYmxlZCgpe2lmKCF0aGlzLmlzQ29sdW1uTW9kaWZpY2F0aW9uQWxsb3dlZCgpfHwhSWcodGhpcykpcmV0dXJuITA7Y29uc3QgbD10aGlzLmNvdW50Q29scygpO3JldHVybiB0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlD'@; put 'b3JuZXIoKT8wPT09bDp0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKXx8MD09PWx9LGhpZGRlbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dSZW1vdmVDb2x1bW59fX0sW2FBXTpmdW5jdGlvbiBIUmUoKXtyZXR1cm57a2V5OmFBLG5hbWUoKXtyZXR1cm4g'@; put 'dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHhWKX0sY2FsbGJhY2soKXt0aGlzLnVuZG8oKX0saGlkZGVuKCl7Y29uc3QgYz10aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKTtyZXR1cm4hY3x8IWMuaXNFbmFibGVkKCl9LGRpc2FibGVkKCl7cmV0dXJuIXRoaXMuZ2V0UGx1Z2luKCJ1bmRvUmVk'@; put 'byIpLmlzVW5kb0F2YWlsYWJsZSgpfX19LFtyQV06ZnVuY3Rpb24gSVJlKCl7cmV0dXJue2tleTpyQSxuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShFVil9LGNhbGxiYWNrKCl7dGhpcy5yZWRvKCl9LGhpZGRlbigpe2NvbnN0IGM9dGhpcy5nZXRQbHVnaW4oInVuZG9S'@; put 'ZWRvIik7cmV0dXJuIWN8fCFjLmlzRW5hYmxlZCgpfSxkaXNhYmxlZCgpe3JldHVybiF0aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKS5pc1JlZG9BdmFpbGFibGUoKX19fSxbTHldOmZ1bmN0aW9uIERSZSgpe3JldHVybntrZXk6THksbmFtZSgpe2xldCBjPXRoaXMuZ2V0VHJhbnNsYXRlZFBo'@; put 'cmFzZShrVik7cmV0dXJuIHloKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLChhLGQpPT50aGlzLmdldENlbGxNZXRhKGEsZCkucmVhZE9ubHkpJiYoYz1ZZihjKSksY30sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGw9eWgoYywoYSxkKT0+dGhpcy5nZXRDZWxs'@; put 'TWV0YShhLGQpLnJlYWRPbmx5KTtEbihjLGE9PnthLmZvckFsbCgoZCxoKT0+e2Q+PTAmJmg+PTAmJnRoaXMuc2V0Q2VsbE1ldGEoZCxoLCJyZWFkT25seSIsIWwpfSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZCgpe3JldHVybiEoIXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5l'@; put 'cigpJiYwIT09dGhpcy5jb3VudFJvd3MoKSYmMCE9PXRoaXMuY291bnRDb2xzKCkmJnRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpJiYwIT09dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCkubGVuZ3RoKX19fSxbdmRdOmZ1bmN0aW9uIEVSZSgpe3JldHVybntrZXk6dmQsbmFtZSgpe3JldHVybiB0aGlz'@; put 'LmdldFRyYW5zbGF0ZWRQaHJhc2UoelYpfSxkaXNhYmxlZCgpe3JldHVybiAwPT09dGhpcy5jb3VudFJvd3MoKXx8MD09PXRoaXMuY291bnRDb2xzKCl8fCEodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCkmJiF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSl9LHN1Ym1lbnU6e2l0'@; put 'ZW1zOlt7a2V5OmAke3ZkfTpsZWZ0YCxuYW1lKCl7bGV0IGM9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFVWKTtyZXR1cm4geWgodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksKGEsZCk9Pntjb25zdCBoPXRoaXMuZ2V0Q2VsbE1ldGEoYSxkKS5jbGFzc05hbWU7aWYoaCYmLTEhPT1oLmluZGV4'@; put 'T2YoImh0TGVmdCIpKXJldHVybiEwfSkmJihjPVlmKGMpKSxjfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksbD1MZyhjLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZikuY2xhc3NOYW1lKSxhPSJob3Jpem9udGFsIixkPSJodExlZnQiO3RoaXMucnVuSG9v'@; put 'a3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLGwsYyxhLGQpLEtwKGMsYSxkLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZiksKGgsZixfLFQpPT50aGlzLnNldENlbGxNZXRhKGgsZixfLFQpKSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleTpgJHt2ZH06Y2VudGVyYCxuYW1lKCl7'@; put 'bGV0IGM9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFpWKTtyZXR1cm4geWgodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksKGEsZCk9Pntjb25zdCBoPXRoaXMuZ2V0Q2VsbE1ldGEoYSxkKS5jbGFzc05hbWU7aWYoaCYmLTEhPT1oLmluZGV4T2YoImh0Q2VudGVyIikpcmV0dXJuITB9KSYmKGM9'@; put 'WWYoYykpLGN9LGNhbGxiYWNrKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxsPUxnKGMsKGgsZik9PnRoaXMuZ2V0Q2VsbE1ldGEoaCxmKS5jbGFzc05hbWUpLGE9Imhvcml6b250YWwiLGQ9Imh0Q2VudGVyIjt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50Iixs'@; put 'LGMsYSxkKSxLcChjLGEsZCwoaCxmKT0+dGhpcy5nZXRDZWxsTWV0YShoLGYpLChoLGYsXyxUKT0+dGhpcy5zZXRDZWxsTWV0YShoLGYsXyxUKSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtrZXk6YCR7dmR9OnJpZ2h0YCxuYW1lKCl7bGV0IGM9dGhpcy5nZXRUcmFuc2xhdGVkUGhy'@; put 'YXNlKFlWKTtyZXR1cm4geWgodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksKGEsZCk9Pntjb25zdCBoPXRoaXMuZ2V0Q2VsbE1ldGEoYSxkKS5jbGFzc05hbWU7aWYoaCYmLTEhPT1oLmluZGV4T2YoImh0UmlnaHQiKSlyZXR1cm4hMH0pJiYoYz1ZZihjKSksY30sY2FsbGJhY2soKXtjb25zdCBj'@; put 'PXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGw9TGcoYywoaCxmKT0+dGhpcy5nZXRDZWxsTWV0YShoLGYpLmNsYXNzTmFtZSksYT0iaG9yaXpvbnRhbCIsZD0iaHRSaWdodCI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsbCxjLGEsZCksS3AoYyxhLGQsKGgsZik9PnRoaXMu'@; put 'Z2V0Q2VsbE1ldGEoaCxmKSwoaCxmLF8sVCk9PnRoaXMuc2V0Q2VsbE1ldGEoaCxmLF8sVCkpLHRoaXMucmVuZGVyKCl9LGRpc2FibGVkOiExfSx7a2V5OmAke3ZkfTpqdXN0aWZ5YCxuYW1lKCl7bGV0IGM9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFdWKTtyZXR1cm4geWgodGhpcy5nZXRT'@; put 'ZWxlY3RlZFJhbmdlKCksKGEsZCk9Pntjb25zdCBoPXRoaXMuZ2V0Q2VsbE1ldGEoYSxkKS5jbGFzc05hbWU7aWYoaCYmLTEhPT1oLmluZGV4T2YoImh0SnVzdGlmeSIpKXJldHVybiEwfSkmJihjPVlmKGMpKSxjfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCks'@; put 'bD1MZyhjLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZikuY2xhc3NOYW1lKSxhPSJob3Jpem9udGFsIixkPSJodEp1c3RpZnkiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLGwsYyxhLGQpLEtwKGMsYSxkLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZiksKGgsZixf'@; put 'LFQpPT50aGlzLnNldENlbGxNZXRhKGgsZixfLFQpKSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se25hbWU6Z3N9LHtrZXk6YCR7dmR9OnRvcGAsbmFtZSgpe2xldCBjPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShHVik7cmV0dXJuIHloKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLChh'@; put 'LGQpPT57Y29uc3QgaD10aGlzLmdldENlbGxNZXRhKGEsZCkuY2xhc3NOYW1lO2lmKGgmJi0xIT09aC5pbmRleE9mKCJodFRvcCIpKXJldHVybiEwfSkmJihjPVlmKGMpKSxjfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksbD1MZyhjLChoLGYpPT50aGlzLmdl'@; put 'dENlbGxNZXRhKGgsZikuY2xhc3NOYW1lKSxhPSJ2ZXJ0aWNhbCIsZD0iaHRUb3AiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLGwsYyxhLGQpLEtwKGMsYSxkLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZiksKGgsZixfLFQpPT50aGlzLnNldENlbGxNZXRhKGgsZixf'@; put 'LFQpKSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleTpgJHt2ZH06bWlkZGxlYCxuYW1lKCl7bGV0IGM9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKCRWKTtyZXR1cm4geWgodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksKGEsZCk9Pntjb25zdCBoPXRoaXMuZ2V0Q2VsbE1ldGEoYSxk'@; put 'KS5jbGFzc05hbWU7aWYoaCYmLTEhPT1oLmluZGV4T2YoImh0TWlkZGxlIikpcmV0dXJuITB9KSYmKGM9WWYoYykpLGN9LGNhbGxiYWNrKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxsPUxnKGMsKGgsZik9PnRoaXMuZ2V0Q2VsbE1ldGEoaCxmKS5jbGFzc05hbWUpLGE9InZl'@; put 'cnRpY2FsIixkPSJodE1pZGRsZSI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsbCxjLGEsZCksS3AoYyxhLGQsKGgsZik9PnRoaXMuZ2V0Q2VsbE1ldGEoaCxmKSwoaCxmLF8sVCk9PnRoaXMuc2V0Q2VsbE1ldGEoaCxmLF8sVCkpLHRoaXMucmVuZGVyKCl9LGRpc2FibGVk'@; put 'OiExfSx7a2V5OmAke3ZkfTpib3R0b21gLG5hbWUoKXtsZXQgYz10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UocVYpO3JldHVybiB5aCh0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSwoYSxkKT0+e2NvbnN0IGg9dGhpcy5nZXRDZWxsTWV0YShhLGQpLmNsYXNzTmFtZTtpZihoJiYtMSE9PWguaW5k'@; put 'ZXhPZigiaHRCb3R0b20iKSlyZXR1cm4hMH0pJiYoYz1ZZihjKSksY30sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGw9TGcoYywoaCxmKT0+dGhpcy5nZXRDZWxsTWV0YShoLGYpLmNsYXNzTmFtZSksYT0idmVydGljYWwiLGQ9Imh0Qm90dG9tIjt0aGlzLnJ1'@; put 'bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50IixsLGMsYSxkKSxLcChjLGEsZCwoaCxmKT0+dGhpcy5nZXRDZWxsTWV0YShoLGYpLChoLGYsXyxUKT0+dGhpcy5zZXRDZWxsTWV0YShoLGYsXyxUKSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9XX19fX07ZnVuY3Rpb24ganJlKCl7Y29u'@; put 'c3QgYz17fTtyZXR1cm4gZHMoQnJlLChsLGEpPT57Y1thXT1sKCl9KSxjfWNvbnN0IHpyZT1jbGFzcyBOUmV7Y29uc3RydWN0b3IobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7dGhpcy5ob3Q9bCx0aGlzLnByZWRl'@; put 'ZmluZWRJdGVtcz1qcmUoKSx0aGlzLmRlZmF1bHRPcmRlclBhdHRlcm49YX1zZXRQcmVkZWZpbmVkSXRlbXMobCl7Y29uc3QgYT17fTt0aGlzLmRlZmF1bHRPcmRlclBhdHRlcm4ubGVuZ3RoPTAsZHMobCwoZCxoKT0+e2xldCBmPSIiO2QubmFtZT09PWdzPyhhW2dzXT1kLGY9Z3MpOmlzTmFO'@; put 'KHBhcnNlSW50KGgsMTApKT8oZC5rZXk9dm9pZCAwPT09ZC5rZXk/aDpkLmtleSxhW2hdPWQsZj1kLmtleSk6KGFbZC5rZXldPWQsZj1kLmtleSksdGhpcy5kZWZhdWx0T3JkZXJQYXR0ZXJuLnB1c2goZil9KSx0aGlzLnByZWRlZmluZWRJdGVtcz1hfWdldEl0ZW1zKCl7cmV0dXJuIGZ1bmN0'@; put 'aW9uIFZSZSgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtjb25zdCBkPVtdO2xldCBoPWFyZ3VtZW50cy5sZW5n'@; put 'dGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO3JldHVybiBoJiZoLml0ZW1zP2g9aC5pdGVtczpBcnJheS5pc0FycmF5KGgpfHwoaD1sKSx1cyhoKT9kcyhoLChmLF8pPT57bGV0IFQ9YVsic3RyaW5nIj09dHlwZW9mIGY/ZjpfXTtUfHwoVD1mKSx1cyhmKT9Y'@; put 'bChULGYpOiJzdHJpbmciPT10eXBlb2YgVCYmKFQ9e25hbWU6VH0pLHZvaWQgMD09PVQua2V5JiYoVC5rZXk9XyksZC5wdXNoKFQpfSk6RG4oaCwoZixfKT0+e2xldCBUPWFbZl07IVQmJlZyZS5pbmRleE9mKGYpPj0wfHwoVHx8KFQ9e25hbWU6ZixrZXk6YCR7X31gfSksdXMoZikmJlhsKFQs'@; put 'Ziksdm9pZCAwPT09VC5rZXkmJihULmtleT1fKSxkLnB1c2goVCkpfSksZH0oYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsdGhpcy5kZWZhdWx0T3JkZXJQYXR0ZXJuLHRoaXMucHJlZGVmaW5lZEl0ZW1zKX19O2NsYXNzIGxBe2Nv'@; put 'bnN0cnVjdG9yKGwsYSl7dGhpcy5ob3Q9bCx0aGlzLm9wdGlvbnM9YXx8e3BhcmVudDpudWxsLG5hbWU6bnVsbCxjbGFzc05hbWU6IiIsa2VlcEluVmlld3BvcnQ6ITAsc3RhbmRhbG9uZTohMSxtaW5XaWR0aDoyMTUsY29udGFpbmVyOnRoaXMuaG90LnJvb3REb2N1bWVudC5kb2N1bWVudEVs'@; put 'ZW1lbnR9LHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBsbCh0aGlzKSx0aGlzLmNvbnRhaW5lcj10aGlzLmNyZWF0ZUNvbnRhaW5lcih0aGlzLm9wdGlvbnMubmFtZSksdGhpcy5ob3RNZW51PW51bGwsdGhpcy5ob3RTdWJNZW51cz17fSx0aGlzLnBhcmVudE1lbnU9dGhpcy5vcHRpb25zLnBhcmVu'@; put 'dHx8bnVsbCx0aGlzLm1lbnVJdGVtcz1udWxsLHRoaXMub3JpZ091dHNpZGVDbGlja0Rlc2VsZWN0cz1udWxsLHRoaXMua2V5RXZlbnQ9ITEsdGhpcy5vZmZzZXQ9e2Fib3ZlOjAsYmVsb3c6MCxsZWZ0OjAscmlnaHQ6MH0sdGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjaz1udWxsLHRoaXMucmVn'@; put 'aXN0ZXJFdmVudHMoKX1yZWdpc3RlckV2ZW50cygpe2xldCBsPXRoaXMuaG90LnJvb3RXaW5kb3c7Zm9yKDtsOyl0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwuZG9jdW1lbnQsIm1vdXNlZG93biIsYT0+dGhpcy5vbkRvY3VtZW50TW91c2VEb3duKGEpKSx0aGlzLmV2ZW50'@; put 'TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwuZG9jdW1lbnQsImNvbnRleHRtZW51IixhPT50aGlzLm9uRG9jdW1lbnRDb250ZXh0TWVudShhKSksbD1leShsKX1zZXRNZW51SXRlbXMobCl7dGhpcy5tZW51SXRlbXM9bH1nZXRTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy5oYXNTZWxlY3Rl'@; put 'ZEl0ZW0oKT90aGlzLmhvdE1lbnUuZ2V0U291cmNlRGF0YUF0Um93KHRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKVswXSk6bnVsbH1oYXNTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KCkpfXNldE9mZnNldChsKXt0'@; put 'aGlzLm9mZnNldFtsXT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MH1pc1N1Yk1lbnUoKXtyZXR1cm4gbnVsbCE9PXRoaXMucGFyZW50TWVudX1vcGVuKCl7dmFyIGw9dGhpczt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZU9wZW4iKSx0'@; put 'aGlzLmNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksdGhpcy5jb250YWluZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siO2NvbnN0IGE9bU4oRWU9PnRoaXMub3BlblN1Yk1lbnUoRWUpLDMwMCksZD10aGlzLm9wdGlvbnMubWluV2lkdGh8fDIxNTtsZXQgaD0hMSxmPV8xKHRoaXMu'@; put 'bWVudUl0ZW1zLEVlPT4oRWUua2V5PT09T3kmJihoPSEwKSxmdW5jdGlvbiBnUmUoYyxsKXtyZXR1cm4hYy5oaWRkZW58fCEoImZ1bmN0aW9uIj09dHlwZW9mIGMuaGlkZGVuJiZjLmhpZGRlbi5jYWxsKGwpKX0oRWUsdGhpcy5ob3QpKSk7aWYoZi5sZW5ndGg8MSYmIWgpZi5wdXNoKGpyZSgp'@; put 'W095XSk7ZWxzZSBpZigwPT09Zi5sZW5ndGgpcmV0dXJuO2Y9ZnVuY3Rpb24gX1JlKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpncyxhPWMuc2xpY2UoMCk7cmV0dXJuIGE9UHJlKGEsbCksYT1mdW5jdGlvbiBtUmUoYyxs'@; put 'KXtsZXQgYT1jLnNsaWNlKDApO3JldHVybiBhLnJldmVyc2UoKSxhPVByZShhLGwpLGEucmV2ZXJzZSgpLGF9KGEsbCksYT1mdW5jdGlvbiB2UmUoYyl7Y29uc3QgbD1bXTtyZXR1cm4gRG4oYywoYSxkKT0+e2Q+MD9sW2wubGVuZ3RoLTFdLm5hbWUhPT1hLm5hbWUmJmwucHVzaChhKTpsLnB1'@; put 'c2goYSl9KSxsfShhKSxhfShmLGdzKTtsZXQgXz0hMTtjb25zdCBUPXtkYXRhOmYsY29sSGVhZGVyczohMSxhdXRvQ29sdW1uU2l6ZTohMCxhdXRvV3JhcFJvdzohMSxtb2RpZnlDb2xXaWR0aDpFZT0+S2koRWUpJiZFZTxkP2Q6RWUsYXV0b1Jvd1NpemU6ITEscmVhZE9ubHk6ITAsZWRpdG9y'@; put 'OiExLGNvcHlQYXN0ZTohMSxtYXhDb2xzOjEsY29sdW1uczpbe2RhdGE6Im5hbWUiLHJlbmRlcmVyOihFZSxaZSxpdCxldCx5dCxFdCk9PnRoaXMubWVudUl0ZW1SZW5kZXJlcihFZSxaZSxpdCxldCx5dCxFdCl9XSxyZW5kZXJBbGxSb3dzOiEwLGZyYWdtZW50U2VsZWN0aW9uOiExLG91dHNp'@; put 'ZGVDbGlja0Rlc2VsZWN0czohMSxkaXNhYmxlVmlzdWFsU2VsZWN0aW9uOiJhcmVhIixsYXlvdXREaXJlY3Rpb246dGhpcy5ob3QuaXNSdGwoKT8icnRsIjoibHRyIixhZnRlck9uQ2VsbE1vdXNlT3ZlcjooRWUsWmUpPT57dGhpcy5pc0FsbFN1Yk1lbnVzQ2xvc2VkKCk/YShaZS5yb3cpOnRo'@; put 'aXMub3BlblN1Yk1lbnUoWmUucm93KX0scm93SGVpZ2h0czpFZT0+ZltFZV0ubmFtZT09PWdzPzE6MjMsYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTpFZT0+e0VlLnByZXZlbnREZWZhdWx0KCksd04oKSYmXyYmdGhpcy5oYXNTZWxlY3RlZEl0ZW0oKSYmdGhpcy5jbG9zZSghMCl9LGJlZm9yZU9u'@; put 'Q2VsbE1vdXNlVXA6RWU9Pnt0aGlzLmhhc1NlbGVjdGVkSXRlbSgpJiYoXz0hdGhpcy5pc0NvbW1hbmRQYXNzaXZlKHRoaXMuZ2V0U2VsZWN0ZWRJdGVtKCkpLHRoaXMuZXhlY3V0ZUNvbW1hbmQoRWUpKX0sYWZ0ZXJPbkNlbGxNb3VzZVVwOkVlPT57KCF3TigpfHwhVXAoRWUpKSYmXyYmdGhp'@; put 'cy5oYXNTZWxlY3RlZEl0ZW0oKSYmKG0yKCl8fHlOKCk/c2V0VGltZW91dCgoKT0+dGhpcy5jbG9zZSghMCksMzI1KTp0aGlzLmNsb3NlKCEwKSl9LGFmdGVyVW5saXN0ZW46KCk9PnshdGhpcy5oYXNTZWxlY3RlZEl0ZW0oKSYmdGhpcy5pc09wZW5lZCgpJiZ0aGlzLmhvdE1lbnUubGlzdGVu'@; put 'KCl9fTt0aGlzLm9yaWdPdXRzaWRlQ2xpY2tEZXNlbGVjdHM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5vdXRzaWRlQ2xpY2tEZXNlbGVjdHMsdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5vdXRzaWRlQ2xpY2tEZXNlbGVjdHM9ITEsdGhpcy5ob3RNZW51PW5ldyBXQih0aGlzLmNvbnRhaW5lcixU'@; put 'KSx0aGlzLmhvdE1lbnUuYWRkSG9vaygiYWZ0ZXJJbml0IiwoKT0+dGhpcy5vbkFmdGVySW5pdCgpKSx0aGlzLmhvdE1lbnUuYWRkSG9vaygiYWZ0ZXJTZWxlY3Rpb24iLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlclNlbGVjdGlvbiguLi5hcmd1bWVudHMpfSksdGhpcy5ob3RNZW51Lmlu'@; put 'aXQoKSx0aGlzLmhvdE1lbnUubGlzdGVuKCk7Y29uc3QgVz10aGlzLmhvdE1lbnUuZ2V0U2hvcnRjdXRNYW5hZ2VyKCksaWU9Vy5hZGRDb250ZXh0KCJtZW51Iiksd2U9e2dyb3VwOiJtZW51IixydW5Pbmx5SWY6RWU9PiExPT09YXkoRWUudGFyZ2V0KXx8ITE9PT10aGlzLmNvbnRhaW5lci5j'@; put 'b250YWlucyhFZS50YXJnZXQpfTtXLnNldEFjdGl2ZUNvbnRleHROYW1lKCJtZW51IiksaWUuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJFc2NhcGUiXV0sY2FsbGJhY2s6KCk9Pnt0aGlzLmtleUV2ZW50PSEwLHRoaXMuY2xvc2UoKSx0aGlzLmtleUV2ZW50PSExfX0se2tleXM6W1siQXJyb3dE'@; put 'b3duIl1dLGNhbGxiYWNrOigpPT57Y29uc3QgRWU9dGhpcy5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO3RoaXMua2V5RXZlbnQ9ITAsRWU/dGhpcy5zZWxlY3ROZXh0Q2VsbChFZVswXSxFZVsxXSk6dGhpcy5zZWxlY3RGaXJzdENlbGwoKSx0aGlzLmtleUV2ZW50PSExfX0se2tleXM6W1si'@; put 'QXJyb3dVcCJdXSxjYWxsYmFjazooKT0+e2NvbnN0IEVlPXRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTt0aGlzLmtleUV2ZW50PSEwLEVlP3RoaXMuc2VsZWN0UHJldkNlbGwoRWVbMF0sRWVbMV0pOnRoaXMuc2VsZWN0TGFzdENlbGwoKSx0aGlzLmtleUV2ZW50PSExfX0se2tleXM6'@; put 'W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazooKT0+e2NvbnN0IEVlPXRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTtpZih0aGlzLmtleUV2ZW50PSEwLEVlKXtjb25zdCBaZT10aGlzLm9wZW5TdWJNZW51KEVlWzBdKTtaZSYmWmUuc2VsZWN0Rmlyc3RDZWxsKCl9dGhpcy5rZXlFdmVu'@; put 'dD0hMX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazooKT0+e2NvbnN0IEVlPXRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTt0aGlzLmtleUV2ZW50PSEwLEVlJiZ0aGlzLmlzU3ViTWVudSgpJiYodGhpcy5jbG9zZSgpLHRoaXMucGFyZW50TWVudSYmdGhpcy5wYXJlbnRN'@; put 'ZW51LmhvdE1lbnUubGlzdGVuKCkpLHRoaXMua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJFbnRlciJdXSxjYWxsYmFjazpFZT0+e2NvbnN0IFplPXRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTt0aGlzLmtleUV2ZW50PSEwLHRoaXMuaG90TWVudS5nZXRTb3VyY2VEYXRhQXRSb3coWmVb'@; put 'MF0pLnN1Ym1lbnV8fCh0aGlzLmV4ZWN1dGVDb21tYW5kKEVlKSx0aGlzLmNsb3NlKCEwKSksdGhpcy5rZXlFdmVudD0hMX19LHtrZXlzOltbIlBhZ2VVcCJdXSxjYWxsYmFjazooKT0+e2NvbnN0IEVlPXRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTt0aGlzLmtleUV2ZW50PSEwLEVl'@; put 'P3RoaXMuaG90TWVudS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoLXRoaXMuaG90TWVudS5jb3VudFZpc2libGVSb3dzKCksMCk6dGhpcy5zZWxlY3RGaXJzdENlbGwoKSx0aGlzLmtleUV2ZW50PSExfX0se2tleXM6W1siUGFnZURvd24iXV0sY2FsbGJhY2s6KCk9Pntjb25zdCBFZT10aGlz'@; put 'LmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KCk7dGhpcy5rZXlFdmVudD0hMCxFZT90aGlzLmhvdE1lbnUuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KHRoaXMuaG90TWVudS5jb3VudFZpc2libGVSb3dzKCksMCk6dGhpcy5zZWxlY3RMYXN0Q2VsbCgpLHRoaXMua2V5RXZlbnQ9ITF9fV0sd2Up'@; put 'LHRoaXMuYmxvY2tNYWluVGFibGVDYWxsYmFja3MoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyT3BlbiIpfWNsb3NlKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0aGlzLmlzT3BlbmVkKCkmJihsJiZ0aGlzLnBhcmVu'@; put 'dE1lbnU/dGhpcy5wYXJlbnRNZW51LmNsb3NlKCk6KHRoaXMuY2xvc2VBbGxTdWJNZW51cygpLHRoaXMuY29udGFpbmVyLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMucmVsZWFzZU1haW5UYWJsZUNhbGxiYWNrcygpLHRoaXMuaG90TWVudS5kZXN0cm95KCksdGhpcy5ob3RNZW51PW51bGws'@; put 'dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5vdXRzaWRlQ2xpY2tEZXNlbGVjdHM9dGhpcy5vcmlnT3V0c2lkZUNsaWNrRGVzZWxlY3RzLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJDbG9zZSIpLHRoaXMucGFyZW50TWVudSYmdGhpcy5wYXJlbnRNZW51LmhvdE1lbnUubGlzdGVuKCkpKX1vcGVu'@; put 'U3ViTWVudShsKXtpZighdGhpcy5ob3RNZW51KXJldHVybiExO2NvbnN0IGE9dGhpcy5ob3RNZW51LmdldENlbGwobCwwKTtpZih0aGlzLmNsb3NlQWxsU3ViTWVudXMoKSwhYXx8IWZ1bmN0aW9uIGRSZShjKXtyZXR1cm4gQm8oYywiaHRTdWJtZW51Iil9KGEpKXJldHVybiExO2NvbnN0IGQ9'@; put 'dGhpcy5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdyhsKSxoPW5ldyBsQSh0aGlzLmhvdCx7cGFyZW50OnRoaXMsbmFtZTpkLm5hbWUsY2xhc3NOYW1lOnRoaXMub3B0aW9ucy5jbGFzc05hbWUsa2VlcEluVmlld3BvcnQ6ITAsY29udGFpbmVyOnRoaXMub3B0aW9ucy5jb250YWluZXJ9KTty'@; put 'ZXR1cm4gaC5zZXRNZW51SXRlbXMoZC5zdWJtZW51Lml0ZW1zKSxoLm9wZW4oKSxoLnNldFBvc2l0aW9uKGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLHRoaXMuaG90U3ViTWVudXNbZC5rZXldPWgsaH1jbG9zZVN1Yk1lbnUobCl7Y29uc3QgYT10aGlzLmhvdE1lbnUuZ2V0U291cmNlRGF0'@; put 'YUF0Um93KGwpLGQ9dGhpcy5ob3RTdWJNZW51c1thLmtleV07ZCYmKGQuZGVzdHJveSgpLGRlbGV0ZSB0aGlzLmhvdFN1Yk1lbnVzW2Eua2V5XSl9Y2xvc2VBbGxTdWJNZW51cygpe0RuKHRoaXMuaG90TWVudS5nZXREYXRhKCksKGwsYSk9PnRoaXMuY2xvc2VTdWJNZW51KGEpKX1pc0FsbFN1'@; put 'Yk1lbnVzQ2xvc2VkKCl7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyh0aGlzLmhvdFN1Yk1lbnVzKS5sZW5ndGh9ZGVzdHJveSgpe2NvbnN0IGw9dGhpcy5jb250YWluZXIucGFyZW50Tm9kZTt0aGlzLmNsZWFyTG9jYWxIb29rcygpLHRoaXMuY2xvc2UoKSx0aGlzLnBhcmVudE1lbnU9bnVsbCx0'@; put 'aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksbCYmbC5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lcil9aXNPcGVuZWQoKXtyZXR1cm4gbnVsbCE9PXRoaXMuaG90TWVudX1leGVjdXRlQ29tbWFuZChsKXtpZighdGhpcy5pc09wZW5lZCgpfHwhdGhpcy5oYXNTZWxlY3RlZEl0ZW0oKSlyZXR1'@; put 'cm47Y29uc3QgYT10aGlzLmdldFNlbGVjdGVkSXRlbSgpO2lmKHRoaXMucnVuTG9jYWxIb29rcygic2VsZWN0IixhLGwpLHRoaXMuaXNDb21tYW5kUGFzc2l2ZShhKSlyZXR1cm47Y29uc3QgZD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCksaD1kP2Z1bmN0aW9uIHVSZShjKXtyZXR1cm4g'@; put 'Y3MoYyxsPT4oe3N0YXJ0OmwuZ2V0VG9wU3RhcnRDb3JuZXIoKSxlbmQ6bC5nZXRCb3R0b21FbmRDb3JuZXIoKX0pKX0oZCk6W107dGhpcy5ydW5Mb2NhbEhvb2tzKCJleGVjdXRlQ29tbWFuZCIsYS5rZXksaCxsKSx0aGlzLmlzU3ViTWVudSgpJiZ0aGlzLnBhcmVudE1lbnUucnVuTG9jYWxI'@; put 'b29rcygiZXhlY3V0ZUNvbW1hbmQiLGEua2V5LGgsbCl9aXNDb21tYW5kUGFzc2l2ZShsKXtjb25zdHtpc0NvbW1hbmQ6YSxuYW1lOmQsZGlzYWJsZWQ6aCxzdWJtZW51OmZ9PWwsXz0hMD09PWh8fCJmdW5jdGlvbiI9PXR5cGVvZiBoJiYhMD09PWguY2FsbCh0aGlzLmhvdCk7cmV0dXJuITE9'@; put 'PT1hfHxkPT09Z3N8fCEwPT09X3x8Zn1zZXRQb3NpdGlvbihsKXtjb25zdCBhPW5ldyBjbGFzcyBCUmV7Y29uc3RydWN0b3IobCxhKXtjb25zdCBkPXQ3KGEpLGg9bWcoYSk7bGV0IGYsXyxULFcsaWUscGU7dGhpcy5yb290V2luZG93PWEsdGhpcy50eXBlPXRoaXMuZ2V0U291cmNlVHlwZShs'@; put 'KSwibGl0ZXJhbCI9PT10aGlzLnR5cGU/KGY9cGFyc2VJbnQobC50b3AsMTApLFQ9cGFyc2VJbnQobC5sZWZ0LDEwKSxpZT1sLmhlaWdodHx8MCxwZT1sLndpZHRofHwwLF89ZixXPVQsZis9ZCxUKz1oKToiZXZlbnQiPT09dGhpcy50eXBlJiYoZj1wYXJzZUludChsLnBhZ2VZLDEwKSxUPXBh'@; put 'cnNlSW50KGwucGFnZVgsMTApLGllPWwudGFyZ2V0LmNsaWVudEhlaWdodCxwZT1sLnRhcmdldC5jbGllbnRXaWR0aCxfPWYtZCxXPVQtaCksdGhpcy50b3A9Zix0aGlzLnRvcFJlbGF0aXZlPV8sdGhpcy5sZWZ0PVQsdGhpcy5sZWZ0UmVsYXRpdmU9Vyx0aGlzLnNjcm9sbFRvcD1kLHRoaXMu'@; put 'c2Nyb2xsTGVmdD1oLHRoaXMuY2VsbEhlaWdodD1pZSx0aGlzLmNlbGxXaWR0aD1wZX1nZXRTb3VyY2VUeXBlKGwpe2xldCBhPSJsaXRlcmFsIjtyZXR1cm4gbCBpbnN0YW5jZW9mIEV2ZW50JiYoYT0iZXZlbnQiKSxhfWZpdHNBYm92ZShsKXtyZXR1cm4gdGhpcy50b3BSZWxhdGl2ZT49bC5v'@; put 'ZmZzZXRIZWlnaHR9Zml0c0JlbG93KGwpe3JldHVybiB0aGlzLnRvcFJlbGF0aXZlK2wub2Zmc2V0SGVpZ2h0PD0oYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMucm9vdFdpbmRvdy5pbm5lckhlaWdodCl9Zml0c09uUmlnaHQobCl7'@; put 'cmV0dXJuIHRoaXMubGVmdFJlbGF0aXZlK3RoaXMuY2VsbFdpZHRoK2wub2Zmc2V0V2lkdGg8PShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5yb290V2luZG93LmlubmVyV2lkdGgpfWZpdHNPbkxlZnQobCl7cmV0dXJuIHRoaXMu'@; put 'bGVmdFJlbGF0aXZlPj1sLm9mZnNldFdpZHRofX0obCx0aGlzLmNvbnRhaW5lci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KTt0aGlzLm9wdGlvbnMua2VlcEluVmlld3BvcnQ/KGEuZml0c0JlbG93KHRoaXMuY29udGFpbmVyKT90aGlzLnNldFBvc2l0aW9uQmVsb3dDdXJzb3IoYSk6YS5m'@; put 'aXRzQWJvdmUodGhpcy5jb250YWluZXIpP3RoaXMuc2V0UG9zaXRpb25BYm92ZUN1cnNvcihhKTp0aGlzLnNldFBvc2l0aW9uQmVsb3dDdXJzb3IoYSksdGhpcy5ob3QuaXNMdHIoKT90aGlzLnNldEhvcml6b250YWxQb3NpdGlvbkZvckx0cihhKTp0aGlzLnNldEhvcml6b250YWxQb3NpdGlv'@; put 'bkZvclJ0bChhKSk6KHRoaXMuc2V0UG9zaXRpb25CZWxvd0N1cnNvcihhKSx0aGlzLnNldFBvc2l0aW9uT25SaWdodE9mQ3Vyc29yKGEpKX1zZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JSdGwobCl7bC5maXRzT25MZWZ0KHRoaXMuY29udGFpbmVyKT90aGlzLnNldFBvc2l0aW9uT25MZWZ0T2ZD'@; put 'dXJzb3IobCk6dGhpcy5zZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvcihsKX1zZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JMdHIobCl7bC5maXRzT25SaWdodCh0aGlzLmNvbnRhaW5lcik/dGhpcy5zZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvcihsKTp0aGlzLnNldFBvc2l0aW9uT25MZWZ0T2ZD'@; put 'dXJzb3IobCl9c2V0UG9zaXRpb25BYm92ZUN1cnNvcihsKXtsZXQgYT10aGlzLm9mZnNldC5hYm92ZStsLnRvcC10aGlzLmNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7dGhpcy5pc1N1Yk1lbnUoKSYmKGE9bC50b3ArbC5jZWxsSGVpZ2h0LXRoaXMuY29udGFpbmVyLm9mZnNldEhlaWdodCszKSx0'@; put 'aGlzLmNvbnRhaW5lci5zdHlsZS50b3A9YCR7YX1weGB9c2V0UG9zaXRpb25CZWxvd0N1cnNvcihsKXtsZXQgYT10aGlzLm9mZnNldC5iZWxvdytsLnRvcCsxO3RoaXMuaXNTdWJNZW51KCkmJihhPWwudG9wLTEpLHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcD1gJHthfXB4YH1zZXRQb3NpdGlv'@; put 'bk9uUmlnaHRPZkN1cnNvcihsKXtsZXQgYT1sLmxlZnQ7aWYodGhpcy5pc1N1Yk1lbnUoKSl7Y29uc3R7cmlnaHQ6ZH09dGhpcy5wYXJlbnRNZW51LmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTthKz1sLmNlbGxXaWR0aCtkLShsLmxlZnQrbC5jZWxsV2lkdGgpfWVsc2UgYSs9'@; put 'dGhpcy5vZmZzZXQucmlnaHQ7dGhpcy5jb250YWluZXIuc3R5bGUubGVmdD1gJHthfXB4YH1zZXRQb3NpdGlvbk9uTGVmdE9mQ3Vyc29yKGwpe2xldCBhPXRoaXMub2Zmc2V0LmxlZnQrbC5sZWZ0LXRoaXMuY29udGFpbmVyLm9mZnNldFdpZHRoO2lmKHRoaXMuaXNTdWJNZW51KCkpe2NvbnN0'@; put 'e2xlZnQ6ZH09dGhpcy5wYXJlbnRNZW51LmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTthLT1sLmxlZnQtZH10aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0PWAke2F9cHhgfXNlbGVjdEZpcnN0Q2VsbCgpe2NvbnN0IGw9dGhpcy5ob3RNZW51LmdldENlbGwoMCwwKTtYayhsKXx8'@; put 'SmsobCl8fFFrKGwpP3RoaXMuc2VsZWN0TmV4dENlbGwoMCwwKTp0aGlzLmhvdE1lbnUuc2VsZWN0Q2VsbCgwLDApfXNlbGVjdExhc3RDZWxsKCl7Y29uc3QgbD10aGlzLmhvdE1lbnUuY291bnRSb3dzKCktMSxhPXRoaXMuaG90TWVudS5nZXRDZWxsKGwsMCk7WGsoYSl8fEprKGEpfHxRayhh'@; put 'KT90aGlzLnNlbGVjdFByZXZDZWxsKGwsMCk6KHRoaXMuaG90TWVudS5zZWxlY3RDZWxsKGwsMCx2b2lkIDAsdm9pZCAwLCExKSx0aGlzLmhvdE1lbnUuc2Nyb2xsVmlld3BvcnRUbyhsLDAsITAsITEpKX1zZWxlY3ROZXh0Q2VsbChsLGEpe2NvbnN0IGQ9bCsxLGg9ZDx0aGlzLmhvdE1lbnUu'@; put 'Y291bnRSb3dzKCk/dGhpcy5ob3RNZW51LmdldENlbGwoZCxhKTpudWxsO2gmJihYayhoKXx8SmsoaCl8fFFrKGgpP3RoaXMuc2VsZWN0TmV4dENlbGwoZCxhKTp0aGlzLmhvdE1lbnUuc2VsZWN0Q2VsbChkLGEpKX1zZWxlY3RQcmV2Q2VsbChsLGEpe2NvbnN0IGQ9bC0xLGg9ZD49MD90aGlz'@; put 'LmhvdE1lbnUuZ2V0Q2VsbChkLGEpOm51bGw7aCYmKFhrKGgpfHxKayhoKXx8UWsoaCk/dGhpcy5zZWxlY3RQcmV2Q2VsbChkLGEpOnRoaXMuaG90TWVudS5zZWxlY3RDZWxsKGQsYSkpfW1lbnVJdGVtUmVuZGVyZXIobCxhLGQsaCxmLF8pe2NvbnN0IFQ9bC5nZXRTb3VyY2VEYXRhQXRSb3co'@; put 'ZCksVz10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksRWU9aXQ9Pml0LmRpc2FibGVTZWxlY3Rpb247bGV0IFplPV87dmFyIGl0OyJmdW5jdGlvbiI9PXR5cGVvZiBaZSYmKFplPVplLmNhbGwodGhpcy5ob3QpKSxnMihhKSxwaShXLCJodEl0ZW1XcmFwcGVyIiks'@; put 'YS5hcHBlbmRDaGlsZChXKSxpdD1ULG5ldyBSZWdFeHAoZ3MsImkiKS50ZXN0KGl0Lm5hbWUpP3BpKGEsImh0U2VwYXJhdG9yIik6ImZ1bmN0aW9uIj09dHlwZW9mIFQucmVuZGVyZXI/KHBpKGEsImh0Q3VzdG9tTWVudVJlbmRlcmVyIiksYS5hcHBlbmRDaGlsZChULnJlbmRlcmVyKGwsVyxk'@; put 'LGgsZixaZSkpKTpnZyhXLFplKSwoaXQ9PiEwPT09aXQuZGlzYWJsZWR8fCJmdW5jdGlvbiI9PXR5cGVvZiBpdC5kaXNhYmxlZCYmITA9PT1pdC5kaXNhYmxlZC5jYWxsKHRoaXMuaG90KSkoVCk/KHBpKGEsImh0RGlzYWJsZWQiKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVy'@; put 'KGEsIm1vdXNlZW50ZXIiLCgpPT5sLmRlc2VsZWN0Q2VsbCgpKSk6RWUoVCk/KHBpKGEsImh0U2VsZWN0aW9uRGlzYWJsZWQiKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlZW50ZXIiLCgpPT5sLmRlc2VsZWN0Q2VsbCgpKSk6KGl0PT5ibChpdCwic3VibWVu'@; put 'dSIpKShUKT8ocGkoYSwiaHRTdWJtZW51IiksRWUoVCk/dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJtb3VzZWVudGVyIiwoKT0+bC5kZXNlbGVjdENlbGwoKSk6dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJtb3VzZWVudGVyIiwoKT0+bC5zZWxl'@; put 'Y3RDZWxsKGQsaCx2b2lkIDAsdm9pZCAwLCExLCExKSkpOihXbyhhLFsiaHRTdWJtZW51IiwiaHREaXNhYmxlZCJdKSxFZShUKT90aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlZW50ZXIiLCgpPT5sLmRlc2VsZWN0Q2VsbCgpKTp0aGlzLmV2ZW50TWFuYWdlci5h'@; put 'ZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlZW50ZXIiLCgpPT5sLnNlbGVjdENlbGwoZCxoLHZvaWQgMCx2b2lkIDAsITEsITEpKSl9Y3JlYXRlQ29udGFpbmVyKCl7Y29uc3QgYT10aGlzLm9wdGlvbnMuY29udGFpbmVyLm93bmVyRG9jdW1lbnQ7bGV0IGgsZD1hcmd1bWVudHMubGVuZ3RoPjAm'@; put 'JnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbDtyZXR1cm4gZCYmKFJhKGQpJiYoZD1kLmNhbGwodGhpcy5ob3QpLGQ9bnVsbD09PWR8fExhKGQpPyIiOmQudG9TdHJpbmcoKSksZD1kLnJlcGxhY2UoL1teQS16MC05XS9nLCJfIiksZD1gJHt0aGlzLm9wdGlvbnMuY2xh'@; put 'c3NOYW1lfVN1Yl8ke2R9YCxoPWEucXVlcnlTZWxlY3RvcihgLiR7dGhpcy5vcHRpb25zLmNsYXNzTmFtZX0uJHtkfWApKSxofHwoaD1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHBpKGgsYGh0TWVudSAke3RoaXMub3B0aW9ucy5jbGFzc05hbWV9YCksZCYmcGkoaCxkKSx0aGlzLm9wdGlvbnMu'@; put 'Y29udGFpbmVyLmFwcGVuZENoaWxkKGgpKSxofWJsb2NrTWFpblRhYmxlQ2FsbGJhY2tzKCl7dGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjaz1mdW5jdGlvbigpe30sdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5Iix0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrKSx0aGlz'@; put 'LmhvdC5hZGRIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsdGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjayl9cmVsZWFzZU1haW5UYWJsZUNhbGxiYWNrcygpe3RoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2smJih0aGlzLmhvdC5yZW1vdmVIb29rKCJhZnRlclNjcm9sbFZlcnRpY2FsbHki'@; put 'LHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2spLHRoaXMuaG90LnJlbW92ZUhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5Iix0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrKSx0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrPW51bGwpfW9uQWZ0ZXJJbml0KCl7Y29uc3R7d3RUYWJsZTpsfT10'@; put 'aGlzLmhvdE1lbnUudmlldy5fd3QsYT10aGlzLmhvdE1lbnUuZ2V0U2V0dGluZ3MoKS5kYXRhLGQ9bC5oaWRlci5zdHlsZSxoPWwuaG9sZGVyLnN0eWxlLGY9cGFyc2VJbnQoZC53aWR0aCwxMCksXz1BbChhLChULFcpPT5UKyhXLm5hbWU9PT1ncz8xOjI2KSwwKTtoLndpZHRoPWAke2YrM31w'@; put 'eGAsaC5oZWlnaHQ9YCR7XyszfXB4YCxkLmhlaWdodD1oLmhlaWdodH1vbkFmdGVyU2VsZWN0aW9uKGwsYSxkLGgsZil7ITE9PT10aGlzLmtleUV2ZW50JiYoZi52YWx1ZT0hMCl9b25Eb2N1bWVudE1vdXNlRG93bihsKXt0aGlzLmlzT3BlbmVkKCkmJih0aGlzLm9wdGlvbnMuc3RhbmRhbG9u'@; put 'ZSYmdGhpcy5ob3RNZW51JiYhVnAobC50YXJnZXQsdGhpcy5ob3RNZW51LnJvb3RFbGVtZW50KXx8KHRoaXMuaXNBbGxTdWJNZW51c0Nsb3NlZCgpfHx0aGlzLmlzU3ViTWVudSgpKSYmIVZwKGwudGFyZ2V0LCIuaHRNZW51IikpJiZ0aGlzLmNsb3NlKCEwKX1vbkRvY3VtZW50Q29udGV4dE1l'@; put 'bnUobCl7dGhpcy5pc09wZW5lZCgpJiZCbyhsLnRhcmdldCwiaHRDb3JlIikmJlZwKGwudGFyZ2V0LHRoaXMuaG90TWVudS5yb290RWxlbWVudCkmJmwucHJldmVudERlZmF1bHQoKX19VGEobEEsTzApO2NvbnN0IHlqPWxBLGNBPSJjb250ZXh0TWVudSI7c28uZ2V0U2luZ2xldG9uKCkucmVn'@; put 'aXN0ZXIoImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb250ZXh0TWVudVNob3ciKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb250ZXh0TWVudVNob3ciKSxzby5nZXRTaW5nbGV0b24oKS5yZWdp'@; put 'c3RlcigiYWZ0ZXJDb250ZXh0TWVudUhpZGUiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb250ZXh0TWVudUV4ZWN1dGUiKTtsZXQgWlJlPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gY0F9c3RhdGljIGdldCBQTFVH'@; put 'SU5fUFJJT1JJVFkoKXtyZXR1cm4gNzB9c3RhdGljIGdldCBQTFVHSU5fREVQUygpe3JldHVyblsicGx1Z2luOkF1dG9Db2x1bW5TaXplIl19c3RhdGljIGdldCBERUZBVUxUX0lURU1TKCl7cmV0dXJuW29BLHNBLGdzLER5LEl5LGdzLGlBLFJ5LGdzLGFBLHJBLGdzLEx5LGdzLHZkXX1jb25z'@; put 'dHJ1Y3RvcihhKXtzdXBlcihhKSx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgbGwodGhpcyksdGhpcy5jb21tYW5kRXhlY3V0b3I9bmV3IE5yZSh0aGlzLmhvdCksdGhpcy5pdGVtc0ZhY3Rvcnk9bnVsbCx0aGlzLm1lbnU9bnVsbH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRp'@; put 'bmdzKClbY0FdfWVuYWJsZVBsdWdpbigpe3ZhciBhPXRoaXM7aWYodGhpcy5lbmFibGVkKXJldHVybjtjb25zdCBkPXRoaXMuaG90LmdldFNldHRpbmdzKClbY0FdOyJmdW5jdGlvbiI9PXR5cGVvZiBkLmNhbGxiYWNrJiZ0aGlzLmNvbW1hbmRFeGVjdXRvci5zZXRDb21tb25DYWxsYmFjayhk'@; put 'LmNhbGxiYWNrKSx0aGlzLm1lbnU9bmV3IHlqKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0Q29udGV4dE1lbnUiLGtlZXBJblZpZXdwb3J0OiEwLGNvbnRhaW5lcjpkLnVpQ29udGFpbmVyfHx0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keX0pLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImJlZm9y'@; put 'ZU9wZW4iLCgpPT50aGlzLm9uTWVudUJlZm9yZU9wZW4oKSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIiwoKT0+dGhpcy5vbk1lbnVBZnRlck9wZW4oKSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsKCk9PnRoaXMub25NZW51QWZ0ZXJDbG9zZSgpKSx0'@; put 'aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJleGVjdXRlQ29tbWFuZCIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSxfPTA7XzxoO18rKylmW19dPWFyZ3VtZW50c1tfXTtyZXR1cm4gYS5leGVjdXRlQ29tbWFuZC5jYWxsKGEsLi4uZil9KSx0aGlz'@; put 'LmFkZEhvb2soImFmdGVyT25DZWxsQ29udGV4dE1lbnUiLGg9PnRoaXMub25BZnRlck9uQ2VsbENvbnRleHRNZW51KGgpKSxzdXBlci5lbmFibGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdp'@; put 'bigpfWRpc2FibGVQbHVnaW4oKXt0aGlzLmNsb3NlKCksdGhpcy5tZW51JiYodGhpcy5tZW51LmRlc3Ryb3koKSx0aGlzLm1lbnU9bnVsbCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfW9wZW4oYSl7aWYoIXRoaXMubWVudXx8KHRoaXMucHJlcGFyZU1lbnVJdGVtcygpLHRoaXMubWVudS5vcGVu'@; put 'KCksIXRoaXMubWVudS5pc09wZW5lZCgpKSlyZXR1cm47bGV0IGQ9MCxoPTA7aWYodGhpcy5ob3Qucm9vdERvY3VtZW50IT09dGhpcy5tZW51LmNvbnRhaW5lci5vd25lckRvY3VtZW50KXtjb25zdHtmcmFtZUVsZW1lbnQ6Zn09dGhpcy5ob3Qucm9vdFdpbmRvdyx7dG9wOl8sbGVmdDpUfT1m'@; put 'LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Q9Xy10NyhhLnZpZXcpLGg9VC1tZyhhLnZpZXcpfWVsc2UgZD0tMSp0Nyh0aGlzLm1lbnUuaG90TWVudS5yb290V2luZG93KSxoPS0xKm1nKHRoaXMubWVudS5ob3RNZW51LnJvb3RXaW5kb3cpO3RoaXMubWVudS5zZXRQb3NpdGlvbih7dG9wOnBh'@; put 'cnNlSW50KGEucGFnZVksMTApK2QsbGVmdDpwYXJzZUludChhLnBhZ2VYLDEwKStofSl9Y2xvc2UoKXt0aGlzLm1lbnUmJih0aGlzLm1lbnUuY2xvc2UoKSx0aGlzLml0ZW1zRmFjdG9yeT1udWxsKX1leGVjdXRlQ29tbWFuZChhKXtudWxsPT09dGhpcy5pdGVtc0ZhY3RvcnkmJnRoaXMucHJl'@; put 'cGFyZU1lbnVJdGVtcygpO2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQ+MT9kLTE6MCksZj0xO2Y8ZDtmKyspaFtmLTFdPWFyZ3VtZW50c1tmXTt0aGlzLmNvbW1hbmRFeGVjdXRvci5leGVjdXRlKGEsLi4uaCl9cHJlcGFyZU1lbnVJdGVtcygpe3RoaXMuaXRlbXNG'@; put 'YWN0b3J5PW5ldyB6cmUodGhpcy5ob3QsYy5ERUZBVUxUX0lURU1TKTtjb25zdCBhPXRoaXMuaG90LmdldFNldHRpbmdzKClbY0FdLGQ9e2l0ZW1zOnRoaXMuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKGEpfTt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25z'@; put 'IixkKSx0aGlzLml0ZW1zRmFjdG9yeS5zZXRQcmVkZWZpbmVkSXRlbXMoZC5pdGVtcyk7Y29uc3QgaD10aGlzLml0ZW1zRmFjdG9yeS5nZXRJdGVtcyhhKTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtcyIsaCksdGhpcy5tZW51LnNldE1lbnVJdGVtcyhoKSxE'@; put 'bihoLGY9PnRoaXMuY29tbWFuZEV4ZWN1dG9yLnJlZ2lzdGVyQ29tbWFuZChmLmtleSxmKSl9b25BZnRlck9uQ2VsbENvbnRleHRNZW51KGEpe2NvbnN0IGQ9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxoPWQucm93SGVhZGVycyxmPWQuY29sSGVhZGVycyxUPWEudGFyZ2V0O3RoaXMuY2xvc2Uo'@; put 'KSwhQm8oVCwiaGFuZHNvbnRhYmxlSW5wdXQiKSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpLChofHxmfHxmdW5jdGlvbiBfKFcpe3JldHVybiJURCI9PT1XLm5vZGVOYW1lfHwiVEQiPT09Vy5wYXJlbnROb2RlLm5vZGVOYW1lfShUKXx8Qm8oVCwiY3VycmVudCIp'@; put 'JiZCbyhULCJ3dEJvcmRlciIpKSYmdGhpcy5vcGVuKGEpKX1vbk1lbnVCZWZvcmVPcGVuKCl7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbnRleHRNZW51U2hvdyIsdGhpcyl9b25NZW51QWZ0ZXJPcGVuKCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29udGV4dE1lbnVTaG93Iix0aGlz'@; put 'KX1vbk1lbnVBZnRlckNsb3NlKCl7dGhpcy5ob3QubGlzdGVuKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29udGV4dE1lbnVIaWRlIix0aGlzKX1kZXN0cm95KCl7dGhpcy5jbG9zZSgpLHRoaXMubWVudSYmdGhpcy5tZW51LmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fXJldHVybiBj'@; put 'LlNFUEFSQVRPUj17bmFtZTpnc30sY30pKCk7Y2xhc3MgS1Jle2NvbnN0cnVjdG9yKCl7dGhpcy5kYXRhPXt9fXNldERhdGEobCxhKXt0aGlzLmRhdGFbbF09YX1nZXREYXRhKGwpe3JldHVybiB0aGlzLmRhdGFbbF18fHZvaWQgMH19Y2xhc3MgWFJle2NvbnN0cnVjdG9yKCl7dGhpcy5jbGlw'@; put 'Ym9hcmREYXRhPW5ldyBLUmV9fWNsYXNzIHdqe2NvbnN0cnVjdG9yKGwpe3RoaXMucm9vdERvY3VtZW50PWwuZGVmYXVsdFZpZXc/bDpsLm93bmVyRG9jdW1lbnQsdGhpcy5tYWluRWxlbWVudD1udWxsLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBsbCh0aGlzKSx0aGlzLmxpc3RlbmVyc0NvdW50'@; put 'PW5ldyBXZWFrU2V0LHRoaXMuY29udGFpbmVyPWx9dXNlU2Vjb25kYXJ5RWxlbWVudCgpe2NvbnN0IGw9ZnVuY3Rpb24gZU9lKGMpe2NvbnN0IGw9ZEEuZ2V0KGMpO2lmKGwpcmV0dXJuIGwucGFyZW50RWxlbWVudHx8Yy5hcHBlbmRDaGlsZChsKSxsO2NvbnN0IGQ9KGMuZGVmYXVsdFZpZXc/'@; put 'YzpjLm93bmVyRG9jdW1lbnQpLmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7cmV0dXJuIGRBLnNldChjLGQpLGQuc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLGQuY2xhc3NOYW1lPSJIYW5kc29udGFibGVDb3B5UGFzdGUiLGQudGFiSW5kZXg9LTEsZC5hdXRvY29tcGxldGU9'@; put 'Im9mZiIsZC53cmFwPSJoYXJkIixkLnZhbHVlPSIgIixjLmFwcGVuZENoaWxkKGQpLGR9KHRoaXMuY29udGFpbmVyKTt0aGlzLmxpc3RlbmVyc0NvdW50LmhhcyhsKXx8KHRoaXMubGlzdGVuZXJzQ291bnQuYWRkKGwpLFlyZSh0aGlzLmV2ZW50TWFuYWdlcixsLHRoaXMpKSx0aGlzLm1haW5F'@; put 'bGVtZW50PWx9c2V0Rm9jdXNhYmxlRWxlbWVudChsKXt0aGlzLmxpc3RlbmVyc0NvdW50LmhhcyhsKXx8KHRoaXMubGlzdGVuZXJzQ291bnQuYWRkKGwpLFlyZSh0aGlzLmV2ZW50TWFuYWdlcixsLHRoaXMpKSx0aGlzLm1haW5FbGVtZW50PWx9Z2V0Rm9jdXNhYmxlRWxlbWVudCgpe3JldHVy'@; put 'biB0aGlzLm1haW5FbGVtZW50fWZvY3VzKCl7dGhpcy5tYWluRWxlbWVudC52YWx1ZT0iICIsbTIoKXx8ZnRlKHRoaXMubWFpbkVsZW1lbnQpfX1UYSh3aixPMCk7Y29uc3QgdUE9bmV3IFdlYWtNYXAsQ2o9KGMsbCk9PmE9PmwucnVuTG9jYWxIb29rcyhjLGEpO2Z1bmN0aW9uIFlyZShjLGws'@; put 'YSl7Yy5hZGRFdmVudExpc3RlbmVyKGwsImNvcHkiLENqKCJjb3B5IixhKSksYy5hZGRFdmVudExpc3RlbmVyKGwsImN1dCIsQ2ooImN1dCIsYSkpLGMuYWRkRXZlbnRMaXN0ZW5lcihsLCJwYXN0ZSIsQ2ooInBhc3RlIixhKSl9Y29uc3QgZEE9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gV3JlKGMp'@; put 'e2lmKCEoYyBpbnN0YW5jZW9mIHdqKSlyZXR1cm47bGV0IGw9dUEuZ2V0KGMuY29udGFpbmVyKTtpZihsPWlzTmFOKGwpPzA6bCxsPjAmJihsLT0xKSxmdW5jdGlvbiBRUmUoYyl7Yy5ldmVudE1hbmFnZXIuY2xlYXIoKX0oYyksbDw9MCl7bD0wO2NvbnN0IGE9ZEEuZ2V0KGMuY29udGFpbmVy'@; put 'KTthJiZhLnBhcmVudE5vZGUmJihhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSksZEEuZGVsZXRlKGMuY29udGFpbmVyKSksYy5tYWluRWxlbWVudD1udWxsfXVBLnNldChjLmNvbnRhaW5lcixsKX1mdW5jdGlvbiBHcmUoYyxsKXskcmUoYyxsKSxsLmFkZChjKX1mdW5jdGlvbiBFNyhjLGws'@; put 'YSl7JHJlKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiAkcmUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIGhBKGMsbCxhKXtpZighbC5o'@; put 'YXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBhfWZ1bmN0aW9uIHF1KGMsbCl7cmV0dXJuIGZ1bmN0aW9uIHRPZShjLGwpe3JldHVybiBsLmdldD9sLmdldC5jYWxsKGMpOmwudmFsdWV9KGMs'@; put 'cXJlKGMsbCwiZ2V0IikpfWZ1bmN0aW9uIGs3KGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gbk9lKGMsbCxhKXtpZihsLnNldClsLnNldC5jYWxsKGMsYSk7ZWxzZXtpZighbC53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZp'@; put 'ZWxkIik7bC52YWx1ZT1hfX0oYyxxcmUoYyxsLCJzZXQiKSxhKSxhfWZ1bmN0aW9uIHFyZShjLGwsYSl7aWYoIWwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2ErIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBsLmdldChjKX12YXIg'@; put 'WHA9bmV3IFdlYWtNYXAsU2o9bmV3IFdlYWtNYXAsUHk9bmV3IFdlYWtNYXAsTWo9bmV3IFdlYWtNYXAseGo9bmV3IFdlYWtNYXAsRnk9bmV3IFdlYWtNYXAsZkE9bmV3IFdlYWtTZXQsS3JlPW5ldyBXZWFrU2V0O2NsYXNzIHJPZXtjb25zdHJ1Y3RvcihsKXtsZXR7Y291bnRSb3dzOmEsY291'@; put 'bnRDb2x1bW5zOmQscm93c0xpbWl0OmgsY29sdW1uc0xpbWl0OmYsY291bnRDb2x1bW5IZWFkZXJzOl99PWw7R3JlKHRoaXMsS3JlKSxHcmUodGhpcyxmQSksRTcodGhpcyxYcCx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksRTcodGhpcyxTaix7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAw'@; put 'fSksRTcodGhpcyxQeSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksRTcodGhpcyxNaix7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksRTcodGhpcyx4aix7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksRTcodGhpcyxGeSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksazcodGhp'@; put 'cyxTaixhKSxrNyh0aGlzLFB5LGQpLGs3KHRoaXMsTWosaCksazcodGhpcyx4aixmKSxrNyh0aGlzLEZ5LF8pfXNldFNlbGVjdGVkUmFuZ2UobCl7azcodGhpcyxYcCxsKX1nZXRDZWxsc1JhbmdlKCl7aWYoMD09PXF1KHRoaXMsU2opLmNhbGwodGhpcyl8fDA9PT1xdSh0aGlzLFB5KS5jYWxs'@; put 'KHRoaXMpKXJldHVybiBudWxsO2NvbnN0e3JvdzpsLGNvbDphfT1xdSh0aGlzLFhwKS5nZXRUb3BTdGFydENvcm5lcigpLHtyb3c6ZCxjb2w6aH09cXUodGhpcyxYcCkuZ2V0Qm90dG9tRW5kQ29ybmVyKCksZj1oQSh0aGlzLEtyZSxpT2UpLmNhbGwodGhpcyxsLGQpLF89aEEodGhpcyxmQSxF'@; put 'aikuY2FsbCh0aGlzLGEsaCk7cmV0dXJue2lzUmFuZ2VUcmltbWVkOmQhPT1mfHxoIT09XyxzdGFydFJvdzpsLHN0YXJ0Q29sOmEsZW5kUm93OmYsZW5kQ29sOl99fWdldE1vc3RCb3R0b21Db2x1bW5IZWFkZXJzUmFuZ2UoKXtpZigwPT09cXUodGhpcyxQeSkuY2FsbCh0aGlzKXx8MD09PXF1'@; put 'KHRoaXMsRnkpLmNhbGwodGhpcykpcmV0dXJuIG51bGw7Y29uc3R7Y29sOmx9PXF1KHRoaXMsWHApLmdldFRvcFN0YXJ0Q29ybmVyKCkse2NvbDphfT1xdSh0aGlzLFhwKS5nZXRCb3R0b21FbmRDb3JuZXIoKSxkPWhBKHRoaXMsZkEsRWopLmNhbGwodGhpcyxsLGEpO3JldHVybntpc1Jhbmdl'@; put 'VHJpbW1lZDphIT09ZCxzdGFydFJvdzotMSxzdGFydENvbDpsLGVuZFJvdzotMSxlbmRDb2w6ZH19Z2V0QWxsQ29sdW1uSGVhZGVyc1JhbmdlKCl7aWYoMD09PXF1KHRoaXMsUHkpLmNhbGwodGhpcyl8fDA9PT1xdSh0aGlzLEZ5KS5jYWxsKHRoaXMpKXJldHVybiBudWxsO2NvbnN0e2NvbDps'@; put 'fT1xdSh0aGlzLFhwKS5nZXRUb3BTdGFydENvcm5lcigpLHtjb2w6YX09cXUodGhpcyxYcCkuZ2V0Qm90dG9tRW5kQ29ybmVyKCksZD1oQSh0aGlzLGZBLEVqKS5jYWxsKHRoaXMsbCxhKTtyZXR1cm57aXNSYW5nZVRyaW1tZWQ6YSE9PWQsc3RhcnRSb3c6LXF1KHRoaXMsRnkpLmNhbGwodGhp'@; put 'cyksc3RhcnRDb2w6bCxlbmRSb3c6LTEsZW5kQ29sOmR9fX1mdW5jdGlvbiBFaihjLGwpe3JldHVybiBNYXRoLm1pbihsLE1hdGgubWF4KGMrcXUodGhpcyx4aikuY2FsbCh0aGlzKS0xLGMpKX1mdW5jdGlvbiBpT2UoYyxsKXtyZXR1cm4gTWF0aC5taW4obCxNYXRoLm1heChjK3F1KHRoaXMs'@; put 'TWopLmNhbGwodGhpcyktMSxjKSl9ZnVuY3Rpb24gWHJlKGMpe2NvbnN0IGw9W10sYT1bXTtyZXR1cm4gRG4oYyxkPT57dm8oTWF0aC5taW4oZC5zdGFydFJvdyxkLmVuZFJvdyksTWF0aC5tYXgoZC5zdGFydFJvdyxkLmVuZFJvdyksVz0+ey0xPT09bC5pbmRleE9mKFcpJiZsLnB1c2goVyl9'@; put 'KSx2byhNYXRoLm1pbihkLnN0YXJ0Q29sLGQuZW5kQ29sKSxNYXRoLm1heChkLnN0YXJ0Q29sLGQuZW5kQ29sKSxXPT57LTE9PT1hLmluZGV4T2YoVykmJmEucHVzaChXKX0pfSkse3Jvd3M6bCxjb2x1bW5zOmF9fWZ1bmN0aW9uIFJnKGMsbCxhKXtKcmUoYyxsKSxsLnNldChjLGEpfWZ1bmN0'@; put 'aW9uIEpyZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gQTcoYyxsLGEpe3JldHVybiBsPWZ1bmN0aW9uIHNPZShjKXt2YXIgbD1mdW5j'@; put 'dGlvbiBhT2UoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fG51bGw9PT1jKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBu'@; put 'ZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOlN0cmluZyhsKX0obCksbCBpbiBjP09iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBiMShjLGwpe3JldHVybiBmdW5jdGlvbiBjT2UoYyxsKXtyZXR1cm4gbC5nZXQ/bC5nZXQuY2FsbChjKTpsLnZhbHVlfShjLFFy'@; put 'ZShjLGwsImdldCIpKX1mdW5jdGlvbiBXZihjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uIHVPZShjLGwsYSl7aWYobC5zZXQpbC5zZXQuY2FsbChjLGEpO2Vsc2V7aWYoIWwud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVs'@; put 'ZCIpO2wudmFsdWU9YX19KGMsUXJlKGMsbCwic2V0IiksYSksYX1mdW5jdGlvbiBRcmUoYyxsLGEpe2lmKCFsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIithKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gbC5nZXQoYyl9c28uZ2V0'@; put 'U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29weUxpbWl0Iiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoIm1vZGlmeUNvcHlhYmxlUmFuZ2UiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ3V0Iiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ3V0'@; put 'Iiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVBhc3RlIiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyUGFzdGUiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29weSIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvcHki'@; put 'KTtjb25zdCBwQT0iY29weVBhc3RlIixoT2U9WyJmcmFnbWVudFNlbGVjdGlvbiJdLGVpZT1bJzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iSGFuZHNvbnRhYmxlIi8+JywnPHN0eWxlIHR5cGU9InRleHQvY3NzIj50ZHt3aGl0ZS1zcGFjZTpub3JtYWx9YnJ7bXNvLWRhdGEtcGxh'@; put 'Y2VtZW50OnNhbWUtY2VsbH08L3N0eWxlPiddLmpvaW4oIiIpO3ZhciBraj1uZXcgV2Vha01hcCxBaj1uZXcgV2Vha01hcCxUaj1uZXcgV2Vha01hcCxUNz1uZXcgV2Vha01hcCxnQT1uZXcgV2Vha01hcCxtQT1uZXcgV2Vha01hcCxENz1uZXcgV2Vha01hcCx0aWU9bmV3IFdlYWtTZXQ7Y2xh'@; put 'c3MgZk9lIGV4dGVuZHMgWnN7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIG9PZShjLGwpe0pyZShjLGwpLGwuYWRkKGMpfSh0aGlzLHRpZSksQTcodGhpcywiY29sdW1uc0xpbWl0IiwxLzApLEE3KHRoaXMsInJvd3NMaW1pdCIsMS8wKSxBNyh0aGlzLCJwYXN0'@; put 'ZU1vZGUiLCJvdmVyd3JpdGUiKSxBNyh0aGlzLCJ1aUNvbnRhaW5lciIsdGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHkpLFJnKHRoaXMsa2ose3dyaXRhYmxlOiEwLHZhbHVlOiExfSksUmcodGhpcyxBaix7d3JpdGFibGU6ITAsdmFsdWU6ITF9KSxSZyh0aGlzLFRqLHt3cml0YWJsZTohMCx2'@; put 'YWx1ZTohMX0pLFJnKHRoaXMsVDcse3dyaXRhYmxlOiEwLHZhbHVlOiJjZWxscy1vbmx5In0pLFJnKHRoaXMsZ0Ese3dyaXRhYmxlOiEwLHZhbHVlOiExfSksUmcodGhpcyxtQSx7d3JpdGFibGU6ITAsdmFsdWU6ITF9KSxSZyh0aGlzLEQ3LHt3cml0YWJsZTohMCx2YWx1ZTpuZXcgck9lKHtj'@; put 'b3VudFJvd3M6KCk9PnRoaXMuaG90LmNvdW50Um93cygpLGNvdW50Q29sdW1uczooKT0+dGhpcy5ob3QuY291bnRDb2xzKCkscm93c0xpbWl0OigpPT50aGlzLnJvd3NMaW1pdCxjb2x1bW5zTGltaXQ6KCk9PnRoaXMuY29sdW1uc0xpbWl0LGNvdW50Q29sdW1uSGVhZGVyczooKT0+dGhpcy5o'@; put 'b3Qudmlldy5nZXRDb2x1bW5IZWFkZXJzQ291bnQoKX0pfSksQTcodGhpcywiY29weWFibGVSYW5nZXMiLFtdKSxBNyh0aGlzLCJmb2N1c2FibGVFbGVtZW50Iix2b2lkIDApfXN0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBwQX1zdGF0aWMgZ2V0IFNFVFRJTkdfS0VZUygpe3JldHVy'@; put 'bltwQSwuLi5oT2VdfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDgwfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtwQV19ZW5hYmxlUGx1Z2luKCl7aWYodGhpcy5lbmFibGVkKXJldHVybjtjb25zdHtbcEFdOmx9PXRoaXMuaG90LmdldFNl'@; put 'dHRpbmdzKCk7dmFyIGEsZDsib2JqZWN0Ij09dHlwZW9mIGwmJih0aGlzLnBhc3RlTW9kZT1udWxsIT09KGE9bC5wYXN0ZU1vZGUpJiZ2b2lkIDAhPT1hP2E6dGhpcy5wYXN0ZU1vZGUsdGhpcy5yb3dzTGltaXQ9aXNOYU4obC5yb3dzTGltaXQpP3RoaXMucm93c0xpbWl0Omwucm93c0xpbWl0'@; put 'LHRoaXMuY29sdW1uc0xpbWl0PWlzTmFOKGwuY29sdW1uc0xpbWl0KT90aGlzLmNvbHVtbnNMaW1pdDpsLmNvbHVtbnNMaW1pdCxXZih0aGlzLGtqLCEhbC5jb3B5Q29sdW1uSGVhZGVycyksV2YodGhpcyxBaiwhIWwuY29weUNvbHVtbkdyb3VwSGVhZGVycyksV2YodGhpcyxUaiwhIWwuY29w'@; put 'eUNvbHVtbkhlYWRlcnNPbmx5KSx0aGlzLnVpQ29udGFpbmVyPW51bGwhPT0oZD1sLnVpQ29udGFpbmVyKSYmdm9pZCAwIT09ZD9kOnRoaXMudWlDb250YWluZXIpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixoPT50aGlzLm9uQWZ0ZXJDb250ZXh0TWVu'@; put 'dURlZmF1bHRPcHRpb25zKGgpKSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsTW91c2VVcCIsKCk9PnRoaXMub25BZnRlck9uQ2VsbE1vdXNlVXAoKSksdGhpcy5hZGRIb29rKCJhZnRlclNlbGVjdGlvbkVuZCIsKCk9PnRoaXMub25BZnRlclNlbGVjdGlvbkVuZCgpKSx0aGlzLmFkZEhvb2so'@; put 'ImJlZm9yZUtleURvd24iLCgpPT50aGlzLm9uQmVmb3JlS2V5RG93bigpKSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQ9ZnVuY3Rpb24gSlJlKGMpe2NvbnN0IGw9bmV3IHdqKGMpO2xldCBhPXVBLmdldChjKTtyZXR1cm4gYT1pc05hTihhKT8wOmEsdUEuc2V0KGMsYSsxKSxsfSh0aGlzLnVpQ29u'@; put 'dGFpbmVyKSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQuYWRkTG9jYWxIb29rKCJjb3B5IixoPT50aGlzLm9uQ29weShoKSkuYWRkTG9jYWxIb29rKCJjdXQiLGg9PnRoaXMub25DdXQoaCkpLmFkZExvY2FsSG9vaygicGFzdGUiLGg9PnRoaXMub25QYXN0ZShoKSksc3VwZXIuZW5hYmxlUGx1Z2lu'@; put 'KCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXt0aGlzLmZvY3VzYWJsZUVsZW1lbnQmJldyZSh0aGlzLmZv'@; put 'Y3VzYWJsZUVsZW1lbnQpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1jb3B5KCl7V2YodGhpcyxUNyxhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ImNlbGxzLW9ubHkiKSxXZih0aGlzLGdBLCEwKSx0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxl'@; put 'RWxlbWVudCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpLHRoaXMuaG90LnJvb3REb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfWNvcHlDZWxsc09ubHkoKXt0aGlzLmNvcHkoImNlbGxzLW9ubHkiKX1jb3B5Q29sdW1uSGVhZGVyc09ubHkoKXt0aGlzLmNvcHkoImNvbHVtbi1o'@; put 'ZWFkZXJzLW9ubHkiKX1jb3B5V2l0aEFsbENvbHVtbkhlYWRlcnMoKXt0aGlzLmNvcHkoIndpdGgtY29sdW1uLWdyb3VwLWhlYWRlcnMiKX1jb3B5V2l0aENvbHVtbkhlYWRlcnMoKXt0aGlzLmNvcHkoIndpdGgtY29sdW1uLWhlYWRlcnMiKX1jdXQoKXtXZih0aGlzLG1BLCEwKSx0aGlzLmdl'@; put 'dE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpLHRoaXMuaG90LnJvb3REb2N1bWVudC5leGVjQ29tbWFuZCgiY3V0Iil9Z2V0UmFuZ2VkQ29weWFibGVEYXRhKGwpe3JldHVybiBDeSh0aGlzLmdldFJhbmdlZERhdGEobCkpfWdldFJhbmdl'@; put 'ZERhdGEobCl7Y29uc3QgYT1bXSx7cm93czpkLGNvbHVtbnM6aH09WHJlKGwpO3JldHVybiBEbihkLGY9Pntjb25zdCBfPVtdO0RuKGgsVD0+e18ucHVzaChmPDA/dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKFQsZik6dGhpcy5ob3QuZ2V0Q29weWFibGVEYXRhKGYsVCkpfSksYS5wdXNoKF8pfSks'@; put 'YX1wYXN0ZSgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpsO2lmKCFsJiYhYSlyZXR1cm47Y29uc3QgZD1uZXcgWFJl'@; put 'O2wmJmQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixsKSxhJiZkLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9odG1sIixhKSx0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMub25QYXN0ZShkKX1zZXRDb3B5YWJsZVRleHQoKXtjb25zdCBsPXRo'@; put 'aXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIWwpcmV0dXJuO2IxKHRoaXMsRDcpLnNldFNlbGVjdGVkUmFuZ2UobCk7Y29uc3QgYT1uZXcgTWFwKFtbImhlYWRlcnMiLG51bGxdLFsiY2VsbHMiLG51bGxdXSk7ImNvbHVtbi1oZWFkZXJzLW9ubHkiPT09YjEodGhpcyxUNyk/YS5z'@; put 'ZXQoImhlYWRlcnMiLGIxKHRoaXMsRDcpLmdldE1vc3RCb3R0b21Db2x1bW5IZWFkZXJzUmFuZ2UoKSk6KCJ3aXRoLWNvbHVtbi1oZWFkZXJzIj09PWIxKHRoaXMsVDcpP2Euc2V0KCJoZWFkZXJzIixiMSh0aGlzLEQ3KS5nZXRNb3N0Qm90dG9tQ29sdW1uSGVhZGVyc1JhbmdlKCkpOiJ3aXRo'@; put 'LWNvbHVtbi1ncm91cC1oZWFkZXJzIj09PWIxKHRoaXMsVDcpJiZhLnNldCgiaGVhZGVycyIsYjEodGhpcyxENykuZ2V0QWxsQ29sdW1uSGVhZGVyc1JhbmdlKCkpLGEuc2V0KCJjZWxscyIsYjEodGhpcyxENykuZ2V0Q2VsbHNSYW5nZSgpKSksdGhpcy5jb3B5YWJsZVJhbmdlcz1BcnJheS5m'@; put 'cm9tKGEudmFsdWVzKCkpLmZpbHRlcihoPT5udWxsIT09aCkubWFwKGg9PntsZXR7c3RhcnRSb3c6ZixzdGFydENvbDpfLGVuZFJvdzpULGVuZENvbDpXfT1oO3JldHVybntzdGFydFJvdzpmLHN0YXJ0Q29sOl8sZW5kUm93OlQsZW5kQ29sOld9fSksdGhpcy5jb3B5YWJsZVJhbmdlcz10aGlz'@; put 'LmhvdC5ydW5Ib29rcygibW9kaWZ5Q29weWFibGVSYW5nZSIsdGhpcy5jb3B5YWJsZVJhbmdlcyk7Y29uc3QgZD1hLmdldCgiY2VsbHMiKTtpZihudWxsIT09ZCYmZC5pc1JhbmdlVHJpbW1lZCl7Y29uc3R7c3RhcnRSb3c6aCxzdGFydENvbDpmLGVuZFJvdzpfLGVuZENvbDpUfT1kO3RoaXMu'@; put 'aG90LnJ1bkhvb2tzKCJhZnRlckNvcHlMaW1pdCIsXy1oKzEsVC1mKzEsdGhpcy5yb3dzTGltaXQsdGhpcy5jb2x1bW5zTGltaXQpfX1nZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQoKXt2YXIgbDtjb25zdCBhPW51bGw9PT0obD10aGlzLmhvdC5nZXRBY3RpdmVFZGl0b3IoKSl8fHZvaWQg'@; put 'MD09PWw/dm9pZCAwOmwuVEVYVEFSRUE7YT90aGlzLmZvY3VzYWJsZUVsZW1lbnQuc2V0Rm9jdXNhYmxlRWxlbWVudChhKTp0aGlzLmZvY3VzYWJsZUVsZW1lbnQudXNlU2Vjb25kYXJ5RWxlbWVudCgpfWlzRWRpdG9yT3BlbmVkKCl7dmFyIGw7cmV0dXJuIG51bGw9PT0obD10aGlzLmhvdC5n'@; put 'ZXRBY3RpdmVFZGl0b3IoKSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuaXNPcGVuZWQoKX1wb3B1bGF0ZVZhbHVlcyhsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZigh'@; put 'bC5sZW5ndGgpcmV0dXJuO2NvbnN0IGQ9bC5sZW5ndGgsaD1sWzBdLmxlbmd0aCxmPVtdLHtyb3c6Xyxjb2w6VH09YS5nZXRUb3BTdGFydENvcm5lcigpLHtyb3c6Vyxjb2w6aWV9PWEuZ2V0Qm90dG9tRW5kQ29ybmVyKCk7bGV0IHBlPV8sd2U9VCxFZT1fLFplPVQ7Zm9yKDtmLmxlbmd0aDxk'@; put 'fHxwZTw9Vzspe2NvbnN0e3NraXBSb3dPblBhc3RlOml0LHZpc3VhbFJvdzpldH09dGhpcy5ob3QuZ2V0Q2VsbE1ldGEocGUsVCk7aWYocGU9ZXQrMSwhMD09PWl0KWNvbnRpbnVlO0VlPWV0LHdlPVQ7Y29uc3QgeXQ9W10sRXQ9Zi5sZW5ndGglZDtmb3IoO3l0Lmxlbmd0aDxofHx3ZTw9aWU7'@; put 'KXtjb25zdHtza2lwQ29sdW1uT25QYXN0ZTpTdCx2aXN1YWxDb2w6SnR9PXRoaXMuaG90LmdldENlbGxNZXRhKF8sd2UpOyh3ZT1KdCsxLCEwIT09U3QpJiYoWmU9SnQseXQucHVzaChsW0V0XVt5dC5sZW5ndGglaF0pKX1mLnB1c2goeXQpfXJldHVybiB0aGlzLmhvdC5wb3B1bGF0ZUZyb21B'@; put 'cnJheShfLFQsZix2b2lkIDAsdm9pZCAwLCJDb3B5UGFzdGUucGFzdGUiLHRoaXMucGFzdGVNb2RlKSxbXyxULEVlLFplXX1vbkNvcHkobCl7aWYoIXRoaXMuaG90LmlzTGlzdGVuaW5nKCkmJiFiMSh0aGlzLGdBKXx8dGhpcy5pc0VkaXRvck9wZW5lZCgpKXJldHVybjt0aGlzLnNldENvcHlh'@; put 'YmxlVGV4dCgpLFdmKHRoaXMsZ0EsITEpO2NvbnN0IGE9dGhpcy5nZXRSYW5nZWREYXRhKHRoaXMuY29weWFibGVSYW5nZXMpLGQ9ZnVuY3Rpb24gbE9lKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5v'@; put 'bi1pbnN0YW5jZSIpO3JldHVybiBhfSh0aGlzLHRpZSxwT2UpLmNhbGwodGhpcyx0aGlzLmNvcHlhYmxlUmFuZ2VzKTtpZih0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29weSIsYSx0aGlzLmNvcHlhYmxlUmFuZ2VzLGQpKXtjb25zdCBmPUN5KGEpO2lmKGwmJmwuY2xpcGJvYXJkRGF0YSl7'@; put 'Y29uc3QgXz1ETihhKTtsLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9wbGFpbiIsZiksbC5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvaHRtbCIsW2VpZSxfXS5qb2luKCIiKSl9ZWxzZSB0eXBlb2YgQ2xpcGJvYXJkRXZlbnQ+InUiJiZ0aGlzLmhvdC5yb290V2luZG93LmNsaXBi'@; put 'b2FyZERhdGEuc2V0RGF0YSgiVGV4dCIsZik7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29weSIsYSx0aGlzLmNvcHlhYmxlUmFuZ2VzLGQpfVdmKHRoaXMsVDcsImNlbGxzLW9ubHkiKSxsLnByZXZlbnREZWZhdWx0KCl9b25DdXQobCl7aWYoIXRoaXMuaG90LmlzTGlzdGVuaW5nKCkmJiFi'@; put 'MSh0aGlzLG1BKXx8dGhpcy5pc0VkaXRvck9wZW5lZCgpKXJldHVybjt0aGlzLnNldENvcHlhYmxlVGV4dCgpLFdmKHRoaXMsbUEsITEpO2NvbnN0IGE9dGhpcy5nZXRSYW5nZWREYXRhKHRoaXMuY29weWFibGVSYW5nZXMpO2lmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDdXQiLGEsdGhp'@; put 'cy5jb3B5YWJsZVJhbmdlcykpe2NvbnN0IGg9Q3koYSk7aWYobCYmbC5jbGlwYm9hcmREYXRhKXtjb25zdCBmPUROKGEpO2wuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixoKSxsLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9odG1sIixbZWllLGZdLmpvaW4oIiIpKX1l'@; put 'bHNlIHR5cGVvZiBDbGlwYm9hcmRFdmVudD4idSImJnRoaXMuaG90LnJvb3RXaW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJUZXh0IixoKTt0aGlzLmhvdC5lbXB0eVNlbGVjdGVkQ2VsbHMoIkNvcHlQYXN0ZS5jdXQiKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDdXQiLGEsdGhpcy5j'@; put 'b3B5YWJsZVJhbmdlcyl9bC5wcmV2ZW50RGVmYXVsdCgpfW9uUGFzdGUobCl7aWYoIXRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fHRoaXMuaXNFZGl0b3JPcGVuZWQoKSlyZXR1cm47bGV0IGE7aWYobCYmbC5wcmV2ZW50RGVmYXVsdCYmbC5wcmV2ZW50RGVmYXVsdCgpLGwmJnR5cGVvZiBsLmNs'@; put 'aXBib2FyZERhdGE8InUiKXtjb25zdCBUPXJrKGwuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0L2h0bWwiKSx7QUREX1RBR1M6WyJtZXRhIl0sQUREX0FUVFI6WyJjb250ZW50Il0sRk9SQ0VfQk9EWTohMH0pO2E9VCYmLyg8dGFibGUpfCg8VEFCTEUpL2cudGVzdChUKT9JdGUoVCx0aGlz'@; put 'LmhvdC5yb290RG9jdW1lbnQpLmRhdGE6bC5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvcGxhaW4iKX1lbHNlIHR5cGVvZiBDbGlwYm9hcmRFdmVudD4idSImJnR5cGVvZiB0aGlzLmhvdC5yb290V2luZG93LmNsaXBib2FyZERhdGE8InUiJiYoYT10aGlzLmhvdC5yb290V2luZG93LmNs'@; put 'aXBib2FyZERhdGEuZ2V0RGF0YSgiVGV4dCIpKTtpZigic3RyaW5nIj09dHlwZW9mIGEmJihhPWZ1bmN0aW9uIGpEZShjKXtjb25zdCBsPVtbIiJdXTtpZigwPT09Yy5sZW5ndGgpcmV0dXJuIGw7bGV0IGgsYT0wLGQ9MDtmb3IoO2MubGVuZ3RoPjAmJmghPT1jLmxlbmd0aDspaWYoaD1jLmxl'@; put 'bmd0aCxjLm1hdGNoKEJuZSkpYz1jLnJlcGxhY2UoQm5lLCIiKSxhKz0xLGxbZF1bYV09IiI7ZWxzZSBpZihjLm1hdGNoKFZuZSkpYz1jLnJlcGxhY2UoVm5lLCIiKSxhPTAsZCs9MSxsW2RdPVsiIl07ZWxzZXtsZXQgZj0iIjtpZihjLnN0YXJ0c1dpdGgoJyInKSl7bGV0IF89MCxUPSEwO2Zv'@; put 'cig7VDspe2NvbnN0IFc9Yy5zbGljZSgwLDEpOyciJz09PVcmJihfKz0xKSxmKz1XLCgwPT09KGM9Yy5zbGljZSgxKSkubGVuZ3RofHxjLm1hdGNoKC9eW1x0XHJcbl0vKSYmXyUyPT0wKSYmKFQ9ITEpfWY9Zi5yZXBsYWNlKC9eIi8sIiIpLnJlcGxhY2UoLyIkLywiIikucmVwbGFjZSgvWyJd'@; put 'Ki9nLFc9Pm5ldyBBcnJheShNYXRoLmZsb29yKFcubGVuZ3RoLzIpKS5maWxsKCciJykuam9pbigiIikpfWVsc2V7Y29uc3QgXz1jLm1hdGNoKEJEZSk7Zj1fP19bMF06IiIsYz1jLnNsaWNlKGYubGVuZ3RoKX1sW2RdW2FdPWZ9cmV0dXJuIGx9KGEpKSxhJiYwPT09YS5sZW5ndGh8fCExPT09'@; put 'dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVBhc3RlIixhLHRoaXMuY29weWFibGVSYW5nZXMpKXJldHVybjtjb25zdFtkLGgsZixfXT10aGlzLnBvcHVsYXRlVmFsdWVzKGEpO3RoaXMuaG90LnNlbGVjdENlbGwoZCxoLE1hdGgubWluKHRoaXMuaG90LmNvdW50Um93cygpLTEsZiksTWF0aC5t'@; put 'aW4odGhpcy5ob3QuY291bnRDb2xzKCktMSxfKSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUGFzdGUiLGEsdGhpcy5jb3B5YWJsZVJhbmdlcyl9b25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMobCl7bC5pdGVtcy5wdXNoKHtuYW1lOiItLS0tLS0tLS0ifSxmdW5jdGlvbiBZUmUo'@; put 'Yyl7cmV0dXJue2tleToiY29weSIsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoVFYpfSxjYWxsYmFjaygpe2MuY29weUNlbGxzT25seSgpfSxkaXNhYmxlZCgpe2lmKDA9PT10aGlzLmNvdW50Um93cygpfHwwPT09dGhpcy5jb3VudENvbHMoKSlyZXR1cm4hMDtjb25z'@; put 'dCBsPXRoaXMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4hbHx8bC5sZW5ndGg+MX0saGlkZGVuOiExfX0odGhpcykpLGIxKHRoaXMsa2opJiZsLml0ZW1zLnB1c2goZnVuY3Rpb24gJFJlKGMpe3JldHVybntrZXk6ImNvcHlfd2l0aF9jb2x1bW5faGVhZGVycyIsbmFtZSgpe2NvbnN0IGw9dGhpcy5n'@; put 'ZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGE9bD9NYXRoLm1pbihsLmdldFdpZHRoKCktMSwxKTowO3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoRFYsYSl9LGNhbGxiYWNrKCl7Yy5jb3B5V2l0aENvbHVtbkhlYWRlcnMoKX0sZGlzYWJsZWQoKXtpZighdGhpcy5oYXNDb2xIZWFkZXJz'@; put 'KCkpcmV0dXJuITA7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkKCk7cmV0dXJuIWx8fGwubGVuZ3RoPjF9LGhpZGRlbjohMX19KHRoaXMpKSxiMSh0aGlzLEFqKSYmbC5pdGVtcy5wdXNoKGZ1bmN0aW9uIEdSZShjKXtyZXR1cm57a2V5OiJjb3B5X3dpdGhfY29sdW1uX2dyb3VwX2hlYWRlcnMi'@; put 'LG5hbWUoKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxhPWw/TWF0aC5taW4obC5nZXRXaWR0aCgpLTEsMSk6MDtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKElWLGEpfSxjYWxsYmFjaygpe2MuY29weVdpdGhBbGxDb2x1bW5IZWFkZXJzKCl9LGRpc2FibGVk'@; put 'KCl7aWYoIXRoaXMuaGFzQ29sSGVhZGVycygpfHwhdGhpcy5nZXRTZXR0aW5ncygpLm5lc3RlZEhlYWRlcnMpcmV0dXJuITA7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkKCk7cmV0dXJuIWx8fGwubGVuZ3RoPjF9LGhpZGRlbjohMX19KHRoaXMpKSxiMSh0aGlzLFRqKSYmbC5pdGVtcy5wdXNo'@; put 'KGZ1bmN0aW9uIFdSZShjKXtyZXR1cm57a2V5OiJjb3B5X2NvbHVtbl9oZWFkZXJzX29ubHkiLG5hbWUoKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxhPWw/TWF0aC5taW4obC5nZXRXaWR0aCgpLTEsMSk6MDtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKExW'@; put 'LGEpfSxjYWxsYmFjaygpe2MuY29weUNvbHVtbkhlYWRlcnNPbmx5KCl9LGRpc2FibGVkKCl7aWYoIXRoaXMuaGFzQ29sSGVhZGVycygpKXJldHVybiEwO2NvbnN0IGw9dGhpcy5nZXRTZWxlY3RlZCgpO3JldHVybiFsfHxsLmxlbmd0aD4xfSxoaWRkZW46ITF9fSh0aGlzKSksbC5pdGVtcy5w'@; put 'dXNoKGZ1bmN0aW9uIHFSZShjKXtyZXR1cm57a2V5OiJjdXQiLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFJWKX0sY2FsbGJhY2soKXtjLmN1dCgpfSxkaXNhYmxlZCgpe2lmKDA9PT10aGlzLmNvdW50Um93cygpfHwwPT09dGhpcy5jb3VudENvbHMoKSlyZXR1cm4h'@; put 'MDtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4hbHx8bC5sZW5ndGg+MX0saGlkZGVuOiExfX0odGhpcykpfW9uQWZ0ZXJPbkNlbGxNb3VzZVVwKCl7IXRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fHRoaXMuaXNFZGl0b3JPcGVuZWQoKXx8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5m'@; put 'cmFnbWVudFNlbGVjdGlvbnx8KHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksdGhpcy5mb2N1c2FibGVFbGVtZW50LmZvY3VzKCkpfW9uQWZ0ZXJTZWxlY3Rpb25FbmQoKXt0aGlzLmlzRWRpdG9yT3BlbmVkKCl8fCh0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgp'@; put 'LCghdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5mcmFnbWVudFNlbGVjdGlvbnx8dGhpcy5mb2N1c2FibGVFbGVtZW50LmdldEZvY3VzYWJsZUVsZW1lbnQoKT09PXRoaXMuaG90LnJvb3REb2N1bWVudC5hY3RpdmVFbGVtZW50fHwhdXRlKCkpJiYodGhpcy5zZXRDb3B5YWJsZVRleHQoKSx0aGlz'@; put 'LmZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKSkpfW9uQmVmb3JlS2V5RG93bigpe2lmKCF0aGlzLmhvdC5pc0xpc3RlbmluZygpfHx0aGlzLmlzRWRpdG9yT3BlbmVkKCkpcmV0dXJuO2NvbnN0IGw9dGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQsYT10aGlzLmhvdC5nZXRBY3Rp'@; put 'dmVFZGl0b3IoKTshYXx8bCE9PXRoaXMuZm9jdXNhYmxlRWxlbWVudC5nZXRGb2N1c2FibGVFbGVtZW50KCkmJmwhPT1hLnNlbGVjdHx8KHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksdGhpcy5mb2N1c2FibGVFbGVtZW50LmZvY3VzKCkpfWRlc3Ryb3koKXt0aGlzLmZvY3Vz'@; put 'YWJsZUVsZW1lbnQmJihXcmUodGhpcy5mb2N1c2FibGVFbGVtZW50KSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQ9bnVsbCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBwT2UoYyl7Y29uc3R7cm93czpsfT1YcmUoYyk7bGV0IGE9MDtmb3IobGV0IGQ9MDtkPGwubGVuZ3RoJiYhKGxbZF0+PTAp'@; put 'O2QrKylhKz0xO3JldHVybntjb2x1bW5IZWFkZXJzQ291bnQ6YX19ZnVuY3Rpb24gbmllKGMsbCl7cmV0dXJuYGJvcmRlcl9yb3cke2N9Y29sJHtsfWB9ZnVuY3Rpb24gRGooYyl7dmFyIGwsYTtyZXR1cm4oS2koYy5zdGFydCl8fEtpKGMubGVmdCkpJiYoYy5zdGFydD1udWxsIT09KGw9Yy5z'@; put 'dGFydCkmJnZvaWQgMCE9PWw/bDpjLmxlZnQpLChLaShjLmVuZCl8fEtpKGMucmlnaHQpKSYmKGMuZW5kPW51bGwhPT0oYT1jLmVuZCkmJnZvaWQgMCE9PWE/YTpjLnJpZ2h0KSxkZWxldGUgYy5sZWZ0LGRlbGV0ZSBjLnJpZ2h0LGN9ZnVuY3Rpb24gTnkoYyl7cmV0dXJuIEtpKGMuc3RhcnQp'@; put 'JiYoYy5sZWZ0PWMuc3RhcnQpLEtpKGMuZW5kKSYmKGMucmlnaHQ9Yy5lbmQpLGN9ZnVuY3Rpb24gSWooYyxsKXtyZXR1cm57aWQ6bmllKGMsbCksYm9yZGVyOnt3aWR0aDoxLGNvbG9yOiIjMDAwIixjb3JuZXJWaXNpYmxlOiExfSxyb3c6Yyxjb2w6bCx0b3A6e2hpZGU6ITB9LGJvdHRvbTp7'@; put 'aGlkZTohMH0sc3RhcnQ6e2hpZGU6ITB9LGVuZDp7aGlkZTohMH19fWZ1bmN0aW9uICRmKGMsbCl7bGV0IGE9ITE7cmV0dXJuIERuKGMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGQ9PntkLmZvckFsbCgoaCxmKT0+e2lmKGg8MHx8ZjwwKXJldHVybjtjb25zdCBfPWMuZ2V0Q2VsbE1ldGEoaCxmKS5i'@; put 'b3JkZXJzO2lmKF8pe2lmKCFsKXJldHVybiBhPSEwLCExO2lmKCFibChfW2xdLCJoaWRlIil8fCExPT09X1tsXS5oaWRlKXJldHVybiBhPSEwLCExfX0pfSksYX1mdW5jdGlvbiB2QShjKXtyZXR1cm5gPHNwYW4gY2xhc3M9InNlbGVjdGVkIj4ke1N0cmluZy5mcm9tQ2hhckNvZGUoMTAwMDMp'@; put 'fTwvc3Bhbj4ke2N9YH1jb25zdCBiT2U9bmV3IE1hcChbWyJsZWZ0Iiwic3RhcnQiXSxbInJpZ2h0IiwiZW5kIl1dKTtmdW5jdGlvbiB5T2UoYyl7dmFyIGw7cmV0dXJuIG51bGwhPT0obD1iT2UuZ2V0KGMpKSYmdm9pZCAwIT09bD9sOmN9ZnVuY3Rpb24gd09lKGMpe3JldHVybntrZXk6ImJv'@; put 'cmRlcnM6dG9wIixuYW1lKCl7bGV0IGw9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFhWKTtyZXR1cm4gJGYodGhpcywidG9wIikmJihsPXZBKGwpKSxsfSxjYWxsYmFjayhsLGEpe2NvbnN0IGQ9JGYodGhpcywidG9wIik7Yy5wcmVwYXJlQm9yZGVyKGEsInRvcCIsZCl9fX1mdW5jdGlvbiBD'@; put 'T2UoYyl7Y29uc3QgbD1jLmhvdC5pc1J0bCgpPyJzdGFydCI6ImVuZCI7cmV0dXJue2tleToiYm9yZGVyczpyaWdodCIsbmFtZSgpe2xldCBhPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShKVik7cmV0dXJuICRmKHRoaXMsbCkmJihhPXZBKGEpKSxhfSxjYWxsYmFjayhhLGQpe2NvbnN0IGg9'@; put 'JGYodGhpcyxsKTtjLnByZXBhcmVCb3JkZXIoZCxsLGgpfX19ZnVuY3Rpb24gU09lKGMpe3JldHVybntrZXk6ImJvcmRlcnM6Ym90dG9tIixuYW1lKCl7bGV0IGw9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFFWKTtyZXR1cm4gJGYodGhpcywiYm90dG9tIikmJihsPXZBKGwpKSxsfSxjYWxs'@; put 'YmFjayhsLGEpe2NvbnN0IGQ9JGYodGhpcywiYm90dG9tIik7Yy5wcmVwYXJlQm9yZGVyKGEsImJvdHRvbSIsZCl9fX1mdW5jdGlvbiBNT2UoYyl7Y29uc3QgbD1jLmhvdC5pc1J0bCgpPyJlbmQiOiJzdGFydCI7cmV0dXJue2tleToiYm9yZGVyczpsZWZ0IixuYW1lKCl7bGV0IGE9dGhpcy5n'@; put 'ZXRUcmFuc2xhdGVkUGhyYXNlKGVCKTtyZXR1cm4gJGYodGhpcyxsKSYmKGE9dkEoYSkpLGF9LGNhbGxiYWNrKGEsZCl7Y29uc3QgaD0kZih0aGlzLGwpO2MucHJlcGFyZUJvcmRlcihkLGwsaCl9fX1mdW5jdGlvbiB4T2UoYyl7cmV0dXJue2tleToiYm9yZGVyczpub19ib3JkZXJzIixuYW1l'@; put 'KCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZSh0Qil9LGNhbGxiYWNrKGwsYSl7Yy5wcmVwYXJlQm9yZGVyKGEsIm5vQm9yZGVycyIpfSxkaXNhYmxlZCgpe3JldHVybiEkZih0aGlzKX19fWNvbnN0IF9BPSJjdXN0b21Cb3JkZXJzIjtjbGFzcyBET2UgZXh0ZW5kcyBac3tjb25z'@; put 'dHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gRU9lKGMsbCxhKXtyZXR1cm4gbD1mdW5jdGlvbiBrT2UoYyl7dmFyIGw9ZnVuY3Rpb24gQU9lKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHxudWxsPT09YylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2'@; put 'ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1s'@; put 'P1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpTdHJpbmcobCl9KGwpLGwgaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1h'@; put 'LGN9KHRoaXMsInNhdmVkQm9yZGVycyIsW10pfXN0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBfQX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiA5MH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbX0FdfWVuYWJsZVBsdWdpbigpe3Ro'@; put 'aXMuZW5hYmxlZHx8KHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixsPT50aGlzLm9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zKGwpKSx0aGlzLmFkZEhvb2soImluaXQiLCgpPT50aGlzLm9uQWZ0ZXJJbml0KCkpLHN1cGVyLmVuYWJsZVBsdWdp'@; put 'bigpKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5oaWRlQm9yZGVycygpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuY2hhbmdlQm9yZGVyU2V0dGluZ3MoKSxzdXBlci51cGRhdGVQbHVnaW4o'@; put 'KX1zZXRCb3JkZXJzKGwsYSl7bGV0IGQ9WyJ0b3AiLCJib3R0b20iLCJzdGFydCIsImVuZCJdLGg9bnVsbDthJiYodGhpcy5jaGVja1NldHRpbmdzQ29oZXNpb24oW2FdKSxkPU9iamVjdC5rZXlzKGEpLGg9RGooYSkpO2NvbnN0IF89d3koZzcobCkpO0RuKGwsVD0+e2NvbnN0W1csaWUscGUs'@; put 'd2VdPV8oVCk7Zm9yKGxldCBFZT1XO0VlPD1wZTtFZSs9MSlmb3IobGV0IFplPWllO1plPD13ZTtaZSs9MSlEbihkLGl0PT57dGhpcy5wcmVwYXJlQm9yZGVyRnJvbUN1c3RvbUFkZGVkKEVlLFplLGgseU9lKGl0KSl9KX0pLHRoaXMuaG90LnZpZXcucmVuZGVyKCl9Z2V0Qm9yZGVycyhsKXtp'@; put 'ZighQXJyYXkuaXNBcnJheShsKSlyZXR1cm4gdGhpcy5zYXZlZEJvcmRlcnM7Y29uc3QgZD13eShnNyhsKSksaD1bXTtyZXR1cm4gRG4obCxmPT57Y29uc3RbXyxULFcsaWVdPWQoZik7Zm9yKGxldCBwZT1fO3BlPD1XO3BlKz0xKWZvcihsZXQgd2U9VDt3ZTw9aWU7d2UrPTEpRG4odGhpcy5z'@; put 'YXZlZEJvcmRlcnMsRWU9PntFZS5yb3c9PT1wZSYmRWUuY29sPT09d2UmJmgucHVzaChOeShFZSkpfSl9KSxofWNsZWFyQm9yZGVycyhsKXtsP3RoaXMuc2V0Qm9yZGVycyhsKTooRG4odGhpcy5zYXZlZEJvcmRlcnMsYT0+e3RoaXMuY2xlYXJCb3JkZXJzRnJvbVNlbGVjdGlvblNldHRpbmdz'@; put 'KGEuaWQpLHRoaXMuY2xlYXJOdWxsQ2VsbFJhbmdlKCksdGhpcy5ob3QucmVtb3ZlQ2VsbE1ldGEoYS5yb3csYS5jb2wsImJvcmRlcnMiKX0pLHRoaXMuc2F2ZWRCb3JkZXJzLmxlbmd0aD0wKX1pbnNlcnRCb3JkZXJJbnRvU2V0dGluZ3MobCxhKXt0aGlzLmNoZWNrU2F2ZWRCb3JkZXJzKGwp'@; put 'fHx0aGlzLnNhdmVkQm9yZGVycy5wdXNoKGwpO2NvbnN0IGg9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLnJvdyxsLmNvbCkpO3RoaXMuY2hlY2tDdXN0b21TZWxlY3Rpb25zKGwsaCxhKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdo'@; put 'dC5hZGRDdXN0b21TZWxlY3Rpb24oe2JvcmRlcjpsLHZpc3VhbENlbGxSYW5nZTpofSl9cHJlcGFyZUJvcmRlckZyb21DdXN0b21BZGRlZChsLGEsZCxoKXtjb25zdCBmPXRoaXMuaG90LmNvdW50Um93cygpLF89dGhpcy5ob3QuY291bnRDb2xzKCk7aWYobD49Znx8YT49XylyZXR1cm47bGV0'@; put 'IFQ9SWoobCxhKTtkJiYoVD1mdW5jdGlvbiBtT2UoYyxsKXtyZXR1cm4gYmwobCwiYm9yZGVyIikmJmwuYm9yZGVyJiYoYy5ib3JkZXI9bC5ib3JkZXIpLGJsKGwsInRvcCIpJiZLaShsLnRvcCkmJihsLnRvcD8odXMobC50b3ApfHwobC50b3A9e3dpZHRoOjEsY29sb3I6IiMwMDAifSksYy50'@; put 'b3A9bC50b3ApOihsLnRvcD17aGlkZTohMH0sYy50b3A9bC50b3ApKSxibChsLCJib3R0b20iKSYmS2kobC5ib3R0b20pJiYobC5ib3R0b20/KHVzKGwuYm90dG9tKXx8KGwuYm90dG9tPXt3aWR0aDoxLGNvbG9yOiIjMDAwIn0pLGMuYm90dG9tPWwuYm90dG9tKToobC5ib3R0b209e2hpZGU6'@; put 'ITB9LGMuYm90dG9tPWwuYm90dG9tKSksYmwobCwic3RhcnQiKSYmS2kobC5zdGFydCkmJihsLnN0YXJ0Pyh1cyhsLnN0YXJ0KXx8KGwuc3RhcnQ9e3dpZHRoOjEsY29sb3I6IiMwMDAifSksYy5zdGFydD1sLnN0YXJ0KToobC5zdGFydD17aGlkZTohMH0sYy5zdGFydD1sLnN0YXJ0KSksYmwo'@; put 'bCwiZW5kIikmJktpKGwuZW5kKSYmKGwuZW5kPyh1cyhsLmVuZCl8fChsLmVuZD17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9KSxjLmVuZD1sLmVuZCk6KGwuZW5kPXtoaWRlOiEwfSxjLmVuZD1sLmVuZCkpLGN9KFQsZCksRG4odGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxl'@; put 'Y3Rpb25zLFc9PntpZihULmlkPT09Vy5zZXR0aW5ncy5pZClyZXR1cm4gT2JqZWN0LmFzc2lnbihXLnNldHRpbmdzLGQpLFQuaWQ9Vy5zZXR0aW5ncy5pZCxULnRvcD1XLnNldHRpbmdzLnRvcCxULmJvdHRvbT1XLnNldHRpbmdzLmJvdHRvbSxULnN0YXJ0PVcuc2V0dGluZ3Muc3RhcnQsVC5l'@; put 'bmQ9Vy5zZXR0aW5ncy5lbmQsITF9KSksdGhpcy5ob3Quc2V0Q2VsbE1ldGEobCxhLCJib3JkZXJzIixOeShUKSksdGhpcy5pbnNlcnRCb3JkZXJJbnRvU2V0dGluZ3MoVCxoKX1wcmVwYXJlQm9yZGVyRnJvbUN1c3RvbUFkZGVkUmFuZ2UobCxhKXtjb25zdCBkPU1hdGgubWluKGwudG8ucm93'@; put 'LHRoaXMuaG90LmNvdW50Um93cygpLTEpLGg9TWF0aC5taW4obC50by5jb2wsdGhpcy5ob3QuY291bnRDb2xzKCktMSk7dm8obC5mcm9tLnJvdyxkLGY9Pnt2byhsLmZyb20uY29sLGgsXz0+e2NvbnN0IFQ9SWooZixfKTtsZXQgVz0wO2Y9PT1sLmZyb20ucm93JiZibChhLCJ0b3AiKSYmKFcr'@; put 'PTEsVC50b3A9YS50b3ApLGY9PT1sLnRvLnJvdyYmYmwoYSwiYm90dG9tIikmJihXKz0xLFQuYm90dG9tPWEuYm90dG9tKSxfPT09bC5mcm9tLmNvbCYmYmwoYSwic3RhcnQiKSYmKFcrPTEsVC5zdGFydD1hLnN0YXJ0KSxfPT09bC50by5jb2wmJmJsKGEsImVuZCIpJiYoVys9MSxULmVuZD1h'@; put 'LmVuZCksVz4wJiYodGhpcy5ob3Quc2V0Q2VsbE1ldGEoZixfLCJib3JkZXJzIixOeShUKSksdGhpcy5pbnNlcnRCb3JkZXJJbnRvU2V0dGluZ3MoVCkpfSl9KX1yZW1vdmVBbGxCb3JkZXJzKGwsYSl7Y29uc3QgZD1uaWUobCxhKTt0aGlzLnNwbGljZUJvcmRlcihkKSx0aGlzLmNsZWFyQm9y'@; put 'ZGVyc0Zyb21TZWxlY3Rpb25TZXR0aW5ncyhkKSx0aGlzLmNsZWFyTnVsbENlbGxSYW5nZSgpLHRoaXMuaG90LnJlbW92ZUNlbGxNZXRhKGwsYSwiYm9yZGVycyIpfXNldEJvcmRlcihsLGEsZCxoKXtsZXQgZj10aGlzLmhvdC5nZXRDZWxsTWV0YShsLGEpLmJvcmRlcnM7Zj1mJiZ2b2lkIDAh'@; put 'PT1mLmJvcmRlcj9EaihmKTpJaihsLGEpLGg/KGZbZF09e2hpZGU6ITB9LDQ9PT10aGlzLmNvdW50SGlkZShmKT90aGlzLnJlbW92ZUFsbEJvcmRlcnMobCxhKToodGhpcy5jaGVja0N1c3RvbVNlbGVjdGlvbnNGcm9tQ29udGV4dE1lbnUoZixkLGgpfHx0aGlzLmluc2VydEJvcmRlckludG9T'@; put 'ZXR0aW5ncyhmKSx0aGlzLmhvdC5zZXRDZWxsTWV0YShsLGEsImJvcmRlcnMiLE55KGYpKSkpOihmW2RdPXt3aWR0aDoxLGNvbG9yOiIjMDAwIn0sdGhpcy5jaGVja0N1c3RvbVNlbGVjdGlvbnNGcm9tQ29udGV4dE1lbnUoZixkLGgpfHx0aGlzLmluc2VydEJvcmRlckludG9TZXR0aW5ncyhm'@; put 'KSx0aGlzLmhvdC5zZXRDZWxsTWV0YShsLGEsImJvcmRlcnMiLE55KGYpKSl9cHJlcGFyZUJvcmRlcihsLGEsZCl7RG4obCxoPT57bGV0e3N0YXJ0OmYsZW5kOl99PWg7aWYoZi5yb3c9PT1fLnJvdyYmZi5jb2w9PT1fLmNvbCkibm9Cb3JkZXJzIj09PWE/dGhpcy5yZW1vdmVBbGxCb3JkZXJz'@; put 'KGYucm93LGYuY29sKTp0aGlzLnNldEJvcmRlcihmLnJvdyxmLmNvbCxhLGQpO2Vsc2Ugc3dpdGNoKGEpe2Nhc2Uibm9Cb3JkZXJzIjp2byhmLmNvbCxfLmNvbCxUPT57dm8oZi5yb3csXy5yb3csVz0+e3RoaXMucmVtb3ZlQWxsQm9yZGVycyhXLFQpfSl9KTticmVhaztjYXNlInRvcCI6dm8o'@; put 'Zi5jb2wsXy5jb2wsVD0+e3RoaXMuc2V0Qm9yZGVyKGYucm93LFQsYSxkKX0pO2JyZWFrO2Nhc2UiYm90dG9tIjp2byhmLmNvbCxfLmNvbCxUPT57dGhpcy5zZXRCb3JkZXIoXy5yb3csVCxhLGQpfSk7YnJlYWs7Y2FzZSJzdGFydCI6dm8oZi5yb3csXy5yb3csVD0+e3RoaXMuc2V0Qm9yZGVy'@; put 'KFQsZi5jb2wsYSxkKX0pO2JyZWFrO2Nhc2UiZW5kIjp2byhmLnJvdyxfLnJvdyxUPT57dGhpcy5zZXRCb3JkZXIoVCxfLmNvbCxhLGQpfSl9fSl9Y3JlYXRlQ3VzdG9tQm9yZGVycyhsKXtEbihsLGE9Pntjb25zdCBkPURqKGEpO2EucmFuZ2U/dGhpcy5wcmVwYXJlQm9yZGVyRnJvbUN1c3Rv'@; put 'bUFkZGVkUmFuZ2UoYS5yYW5nZSxkKTp0aGlzLnByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWQoYS5yb3csYS5jb2wsZCl9KX1jb3VudEhpZGUobCl7Y29uc3R7dG9wOmEsYm90dG9tOmQsc3RhcnQ6aCxlbmQ6Zn09bDtyZXR1cm4gQWwoW2EsZCxoLGZdLChULFcpPT57bGV0IGllPVQ7cmV0'@; put 'dXJuIFcmJlcuaGlkZSYmKGllKz0xKSxpZX0sMCl9Y2xlYXJCb3JkZXJzRnJvbVNlbGVjdGlvblNldHRpbmdzKGwpe2NvbnN0IGE9Y3ModGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLGQ9PmQuc2V0dGluZ3MuaWQpLmluZGV4T2YobCk7YT4tMSYmdGhpcy5o'@; put 'b3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zW2FdLmNsZWFyKCl9Y2xlYXJOdWxsQ2VsbFJhbmdlKCl7RG4odGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLChsLGEpPT57aWYobnVsbD09PWwuY2VsbFJhbmdlKXJldHVybiB0aGlzLmhv'@; put 'dC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnNbYV0uZGVzdHJveSgpLHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9ucy5zcGxpY2UoYSwxKSwhMX0pfWhpZGVCb3JkZXJzKCl7RG4odGhpcy5zYXZlZEJvcmRlcnMsbD0+e3RoaXMuY2xlYXJC'@; put 'b3JkZXJzRnJvbVNlbGVjdGlvblNldHRpbmdzKGwuaWQpLHRoaXMuY2xlYXJOdWxsQ2VsbFJhbmdlKCl9KX1zcGxpY2VCb3JkZXIobCl7Y29uc3QgYT1jcyh0aGlzLnNhdmVkQm9yZGVycyxkPT5kLmlkKS5pbmRleE9mKGwpO2E+LTEmJnRoaXMuc2F2ZWRCb3JkZXJzLnNwbGljZShhLDEpfWNo'@; put 'ZWNrU2F2ZWRCb3JkZXJzKGwpe2xldCBhPSExO3JldHVybiA0PT09dGhpcy5jb3VudEhpZGUobCk/KHRoaXMuc3BsaWNlQm9yZGVyKGwuaWQpLGE9ITApOkRuKHRoaXMuc2F2ZWRCb3JkZXJzLChoLGYpPT57aWYobC5pZD09PWguaWQpcmV0dXJuIHRoaXMuc2F2ZWRCb3JkZXJzW2ZdPWwsYT0h'@; put 'MCwhMX0pLGF9Y2hlY2tDdXN0b21TZWxlY3Rpb25zRnJvbUNvbnRleHRNZW51KGwsYSxkKXtsZXQgaD0hMTtyZXR1cm4gRG4odGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLGY9PntpZihsLmlkPT09Zi5zZXR0aW5ncy5pZClyZXR1cm4gZHMoZi5pbnN0YW5j'@; put 'ZUJvcmRlcnMsXz0+e18udG9nZ2xlSGlkZGVuQ2xhc3MoYSxkKX0pLGg9ITAsITF9KSxofWNoZWNrQ3VzdG9tU2VsZWN0aW9ucyhsLGEsZCl7Y29uc3QgaD10aGlzLmNvdW50SGlkZShsKTtsZXQgZj0hMTtyZXR1cm4gND09PWg/KHRoaXMucmVtb3ZlQWxsQm9yZGVycyhsLnJvdyxsLmNvbCks'@; put 'Zj0hMCk6RG4odGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLF89PntpZihsLmlkPT09Xy5zZXR0aW5ncy5pZClyZXR1cm4gXy52aXN1YWxDZWxsUmFuZ2U9YSxfLmNvbW1pdCgpLGQmJmRzKF8uaW5zdGFuY2VCb3JkZXJzLFQ9PntULmNoYW5nZUJvcmRlclN0'@; put 'eWxlKGQsbCl9KSxmPSEwLCExfSksZn1jaGFuZ2VCb3JkZXJTZXR0aW5ncygpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtfQV07aWYoQXJyYXkuaXNBcnJheShsKSl7Y29uc3QgYT15dShsKTt0aGlzLmNoZWNrU2V0dGluZ3NDb2hlc2lvbihhKSxhLmxlbmd0aHx8KHRoaXMuc2F2'@; put 'ZWRCb3JkZXJzPWEpLHRoaXMuY3JlYXRlQ3VzdG9tQm9yZGVycyhhKX1lbHNlIHZvaWQgMCE9PWwmJnRoaXMuY3JlYXRlQ3VzdG9tQm9yZGVycyh0aGlzLnNhdmVkQm9yZGVycyl9Y2hlY2tTZXR0aW5nc0NvaGVzaW9uKGwpe2NvbnN0IGE9ZnVuY3Rpb24gdk9lKGMpe3JldHVybiBjLnNvbWUo'@; put 'bD0+S2kobC5sZWZ0KXx8S2kobC5yaWdodCkpfShsKSxkPWZ1bmN0aW9uIF9PZShjKXtyZXR1cm4gYy5zb21lKGw9PktpKGwuc3RhcnQpfHxLaShsLmVuZCkpfShsKTtpZihhJiZkKXRocm93IG5ldyBFcnJvcignVGhlICJsZWZ0Ii8icmlnaHQiIGFuZCAic3RhcnQiLyJlbmQiIG9wdGlvbnMg'@; put 'c2hvdWxkIG5vdCBiZSB1c2VkIHRvZ2V0aGVyLiBQbGVhc2UgdXNlIG9ubHkgdGhlIG9wdGlvbiAic3RhcnQiLyJlbmQiLicpO2lmKHRoaXMuaG90LmlzUnRsKCkmJmEpdGhyb3cgbmV3IEVycm9yKCdUaGUgImxlZnQiLyJyaWdodCIgcHJvcGVydGllcyBhcmUgbm90IHN1cHBvcnRlZCBmb3Ig'@; put 'UlRMLiBQbGVhc2UgdXNlIG9wdGlvbiAic3RhcnQiLyJlbmQiLicpfW9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zKGwpe3RoaXMuaG90LmdldFNldHRpbmdzKClbX0FdJiZsLml0ZW1zLnB1c2goe25hbWU6Ii0tLS0tLS0tLSJ9LHtrZXk6ImJvcmRlcnMiLG5hbWUoKXtyZXR1cm4g'@; put 'dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEtWKX0sZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl9LHN1Ym1lbnU6e2l0ZW1zOlt3T2UodGhpcyksQ09lKHRoaXMpLFNPZSh0aGlzKSxNT2UodGhpcykseE9lKHRoaXMpXX19KX1vbkFmdGVySW5p'@; put 'dCgpe3RoaXMuY2hhbmdlQm9yZGVyU2V0dGluZ3MoKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1jb25zdCByaWU9ImRyYWdUb1Njcm9sbCI7Y2xhc3MgTE9lIGV4dGVuZHMgWnN7c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIHJpZX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklU'@; put 'WSgpe3JldHVybiAxMDB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksdGhpcy5ldmVudE1hbmFnZXI9bmV3IGxsKHRoaXMpLHRoaXMuYm91bmRhcmllcz1udWxsLHRoaXMuY2FsbGJhY2s9bnVsbCx0aGlzLmxpc3RlbmluZz0hMX1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRp'@; put 'bmdzKClbcmllXX1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsTW91c2VEb3duIixsPT50aGlzLnNldHVwTGlzdGVuaW5nKGwpKSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duIixsPT50aGlzLnNldHVwTGlzdGVu'@; put 'aW5nKGwpKSx0aGlzLnJlZ2lzdGVyRXZlbnRzKCksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksc3VwZXIudXBkYXRlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3RoaXMudW5yZWdpc3RlckV2ZW50'@; put 'cygpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1zZXRCb3VuZGFyaWVzKGwpe3RoaXMuYm91bmRhcmllcz1sfXNldENhbGxiYWNrKGwpe3RoaXMuY2FsbGJhY2s9bH1jaGVjayhsLGEpe2xldCBkPTAsaD0wO2E8dGhpcy5ib3VuZGFyaWVzLnRvcD9oPWEtdGhpcy5ib3VuZGFyaWVzLnRvcDphPnRo'@; put 'aXMuYm91bmRhcmllcy5ib3R0b20mJihoPWEtdGhpcy5ib3VuZGFyaWVzLmJvdHRvbSksbDx0aGlzLmJvdW5kYXJpZXMubGVmdD9kPWwtdGhpcy5ib3VuZGFyaWVzLmxlZnQ6bD50aGlzLmJvdW5kYXJpZXMucmlnaHQmJihkPWwtdGhpcy5ib3VuZGFyaWVzLnJpZ2h0KSx0aGlzLmNhbGxiYWNr'@; put 'KGQsaCl9bGlzdGVuKCl7dGhpcy5saXN0ZW5pbmc9ITB9dW5saXN0ZW4oKXt0aGlzLmxpc3RlbmluZz0hMX1pc0xpc3RlbmluZygpe3JldHVybiB0aGlzLmxpc3RlbmluZ31yZWdpc3RlckV2ZW50cygpe2NvbnN0e3Jvb3RXaW5kb3c6bH09dGhpcy5ob3Q7bGV0IGE9bDtmb3IoO2E7KXRoaXMu'@; put 'ZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYS5kb2N1bWVudCwiY29udGV4dG1lbnUiLCgpPT50aGlzLnVubGlzdGVuKCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYS5kb2N1bWVudCwibW91c2V1cCIsKCk9PnRoaXMudW5saXN0ZW4oKSksdGhpcy5ldmVudE1h'@; put 'bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLmRvY3VtZW50LCJtb3VzZW1vdmUiLGQ9PnRoaXMub25Nb3VzZU1vdmUoZCkpLGE9ZXkoYSl9dW5yZWdpc3RlckV2ZW50cygpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9c2V0dXBMaXN0ZW5pbmcobCl7aWYoVXAobCkpcmV0dXJuO2NvbnN0IGE9'@; put 'dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5ob2xkZXI7YSE9PXRoaXMuaG90LnJvb3RXaW5kb3cmJih0aGlzLnNldEJvdW5kYXJpZXMoYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksdGhpcy5zZXRDYWxsYmFjaygoZCxoKT0+e2Q8MD9hLnNjcm9sbExlZnQtPTUwOmQ+MCYmKGEuc2Nyb2xs'@; put 'TGVmdCs9NTApLGg8MD9hLnNjcm9sbFRvcC09MjA6aD4wJiYoYS5zY3JvbGxUb3ArPTIwKX0pLHRoaXMubGlzdGVuKCkpfW9uTW91c2VNb3ZlKGwpe3RoaXMuaXNMaXN0ZW5pbmcoKSYmdGhpcy5jaGVjayhsLmNsaWVudFgsbC5jbGllbnRZKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1z'@; put 'by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVEcm9wZG93bk1lbnVTaG93Iiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25NZW51U2hvdyIp'@; put 'LHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckRyb3Bkb3duTWVudUhpZGUiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJEcm9wZG93bk1lbnVFeGVjdXRlIik7Y29uc3QgTGo9ImRyb3Bkb3duTWVudSIsUmo9ImNoYW5nZVR5cGUiO2xldCBPT2U9KCgpPT57Y2xh'@; put 'c3MgYyBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBMan1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyMzB9c3RhdGljIGdldCBQTFVHSU5fREVQUygpe3JldHVyblsicGx1Z2luOkF1dG9Db2x1bW5TaXplIl19c3RhdGljIGdldCBERUZBVUxU'@; put 'X0lURU1TKCl7cmV0dXJuW0R5LEl5LGdzLFJ5LGdzLG5BLGdzLEx5LGdzLHZkXX1jb25zdHJ1Y3RvcihhKXtzdXBlcihhKSx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgbGwodGhpcyksdGhpcy5jb21tYW5kRXhlY3V0b3I9bmV3IE5yZSh0aGlzLmhvdCksdGhpcy5pdGVtc0ZhY3Rvcnk9bnVsbCx0'@; put 'aGlzLm1lbnU9bnVsbCx0aGlzLmhvdC5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsKGQsaCk9PnRoaXMub25BZnRlckdldENvbEhlYWRlcihkLGgpKX1pc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtMal19ZW5hYmxlUGx1Z2luKCl7dmFyIGE9dGhpcztpZih0'@; put 'aGlzLmVuYWJsZWQpcmV0dXJuO3RoaXMuaXRlbXNGYWN0b3J5PW5ldyB6cmUodGhpcy5ob3QsYy5ERUZBVUxUX0lURU1TKTtjb25zdCBkPXRoaXMuaG90LmdldFNldHRpbmdzKClbTGpdLGg9e2l0ZW1zOnRoaXMuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKGQpfTt0aGlzLnJlZ2lzdGVyRXZlbnRz'@; put 'KCksImZ1bmN0aW9uIj09dHlwZW9mIGQuY2FsbGJhY2smJnRoaXMuY29tbWFuZEV4ZWN1dG9yLnNldENvbW1vbkNhbGxiYWNrKGQuY2FsbGJhY2spLHN1cGVyLmVuYWJsZVBsdWdpbigpLHRoaXMuY2FsbE9uUGx1Z2luc1JlYWR5KCgpPT57dGhpcy5ob3QucnVuSG9va3MoImFmdGVyRHJvcGRv'@; put 'd25NZW51RGVmYXVsdE9wdGlvbnMiLGgpLHRoaXMuaXRlbXNGYWN0b3J5LnNldFByZWRlZmluZWRJdGVtcyhoLml0ZW1zKTtjb25zdCBmPXRoaXMuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKGQpO3RoaXMubWVudSYmdGhpcy5tZW51LmRlc3Ryb3koKSx0aGlzLm1lbnU9bmV3IHlqKHRoaXMuaG90'@; put 'LHtjbGFzc05hbWU6Imh0RHJvcGRvd25NZW51IixrZWVwSW5WaWV3cG9ydDohMCxjb250YWluZXI6ZC51aUNvbnRhaW5lcnx8dGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHl9KSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMiLGYpLHRoaXMubWVudS5zZXRN'@; put 'ZW51SXRlbXMoZiksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYmVmb3JlT3BlbiIsKCk9PnRoaXMub25NZW51QmVmb3JlT3BlbigpKSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJhZnRlck9wZW4iLCgpPT50aGlzLm9uTWVudUFmdGVyT3BlbigpKSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJh'@; put 'ZnRlckNsb3NlIiwoKT0+dGhpcy5vbk1lbnVBZnRlckNsb3NlKCkpLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImV4ZWN1dGVDb21tYW5kIixmdW5jdGlvbigpe2Zvcih2YXIgXz1hcmd1bWVudHMubGVuZ3RoLFQ9bmV3IEFycmF5KF8pLFc9MDtXPF87VysrKVRbV109YXJndW1lbnRzW1ddO3Jl'@; put 'dHVybiBhLmV4ZWN1dGVDb21tYW5kLmNhbGwoYSwuLi5UKX0pLERuKGYsXz0+dGhpcy5jb21tYW5kRXhlY3V0b3IucmVnaXN0ZXJDb21tYW5kKF8ua2V5LF8pKX0pfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksc3VwZXIudXBkYXRlUGx1'@; put 'Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3RoaXMuY2xvc2UoKSx0aGlzLm1lbnUmJnRoaXMubWVudS5kZXN0cm95KCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfXJlZ2lzdGVyRXZlbnRzKCl7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvdC5yb290RWxlbWVudCwiY2xp'@; put 'Y2siLGE9PnRoaXMub25UYWJsZUNsaWNrKGEpKX1vcGVuKGEpe3RoaXMubWVudSYmKHRoaXMubWVudS5vcGVuKCksYS53aWR0aCYmdGhpcy5tZW51LnNldE9mZnNldCgibGVmdCIsYS53aWR0aCksdGhpcy5tZW51LnNldFBvc2l0aW9uKGEpKX1jbG9zZSgpe3RoaXMubWVudSYmdGhpcy5tZW51'@; put 'LmNsb3NlKCl9ZXhlY3V0ZUNvbW1hbmQoYSl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZD4xP2QtMTowKSxmPTE7ZjxkO2YrKyloW2YtMV09YXJndW1lbnRzW2ZdO3RoaXMuY29tbWFuZEV4ZWN1dG9yLmV4ZWN1dGUoYSwuLi5oKX1zZXRMaXN0ZW5pbmcoKXtsZXQg'@; put 'YT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO3RoaXMubWVudS5pc09wZW5lZCgpJiYoYT90aGlzLm1lbnUuaG90TWVudS5saXN0ZW4oKTp0aGlzLm1lbnUuaG90TWVudS51bmxpc3RlbigpKX1vblRhYmxlQ2xpY2soYSl7aWYoYS5z'@; put 'dG9wUHJvcGFnYXRpb24oKSxCbyhhLnRhcmdldCxSaikmJiF0aGlzLm1lbnUuaXNPcGVuZWQoKSl7bGV0IGQ9MCxoPTA7aWYodGhpcy5ob3Qucm9vdERvY3VtZW50IT09dGhpcy5tZW51LmNvbnRhaW5lci5vd25lckRvY3VtZW50KXtjb25zdHtmcmFtZUVsZW1lbnQ6X309dGhpcy5ob3Qucm9v'@; put 'dFdpbmRvdyx7dG9wOlQsbGVmdDpXfT1fLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Q9VCxoPVd9Y29uc3QgZj1hLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLm9wZW4oe2xlZnQ6Zi5sZWZ0K2gsdG9wOmYudG9wK2EudGFyZ2V0Lm9mZnNldEhlaWdodCszK2Qsd2lkdGg6'@; put 'Zi53aWR0aCxoZWlnaHQ6Zi5oZWlnaHR9KX19b25BZnRlckdldENvbEhlYWRlcihhLGQpe2NvbnN0IGg9ZC5wYXJlbnROb2RlO2lmKCFoKXJldHVybjtjb25zdCBmPWgucGFyZW50Tm9kZS5jaGlsZE5vZGVzLF89QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChmLGgpO2lmKGE8MHx8XyE9'@; put 'PWYubGVuZ3RoLTEpcmV0dXJuO2NvbnN0IFQ9ZC5xdWVyeVNlbGVjdG9yKGAuJHtSan1gKTtpZih0aGlzLmVuYWJsZWQmJlQpcmV0dXJuO2lmKCF0aGlzLmVuYWJsZWQpcmV0dXJuIHZvaWQoVCYmVC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKFQpKTtjb25zdCBXPXRoaXMuaG90LnJvb3REb2N1'@; put 'bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtXLmNsYXNzTmFtZT1SaixXLnR5cGU9ImJ1dHRvbiIsVy5vbmNsaWNrPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGQuZmlyc3RDaGlsZC5pbnNlcnRCZWZvcmUoVyxkLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCl9b25NZW51QmVmb3JlT3Blbigpe3Ro'@; put 'aXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVEcm9wZG93bk1lbnVTaG93Iix0aGlzKX1vbk1lbnVBZnRlck9wZW4oKXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJEcm9wZG93bk1lbnVTaG93Iix0aGlzKX1vbk1lbnVBZnRlckNsb3NlKCl7dGhpcy5ob3QubGlzdGVuKCksdGhpcy5ob3QucnVuSG9v'@; put 'a3MoImFmdGVyRHJvcGRvd25NZW51SGlkZSIsdGhpcyl9ZGVzdHJveSgpe3RoaXMuY2xvc2UoKSx0aGlzLm1lbnUmJnRoaXMubWVudS5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfX1yZXR1cm4gYy5TRVBBUkFUT1I9e25hbWU6Z3N9LGN9KSgpO2NsYXNzIE9qe3N0YXRpYyBnZXQgREVGQVVM'@; put 'VF9PUFRJT05TKCl7cmV0dXJue21pbWVUeXBlOiJ0ZXh0L3BsYWluIixmaWxlRXh0ZW5zaW9uOiJ0eHQiLGZpbGVuYW1lOiJIYW5kc29udGFibGUgW1lZWVldLVtNTV0tW0REXSIsZW5jb2Rpbmc6InV0Zi04Iixib206ITEsY29sdW1uSGVhZGVyczohMSxyb3dIZWFkZXJzOiExLGV4cG9ydEhp'@; put 'ZGRlbkNvbHVtbnM6ITEsZXhwb3J0SGlkZGVuUm93czohMSxyYW5nZTpbXX19Y29uc3RydWN0b3IobCxhKXt0aGlzLmRhdGFQcm92aWRlcj1sLHRoaXMub3B0aW9ucz10aGlzLl9tZXJnZU9wdGlvbnMoYSksdGhpcy5kYXRhUHJvdmlkZXIuc2V0T3B0aW9ucyh0aGlzLm9wdGlvbnMpfV9tZXJn'@; put 'ZU9wdGlvbnMobCl7bGV0IGE9V3UodGhpcy5jb25zdHJ1Y3Rvci5ERUZBVUxUX09QVElPTlMpO2NvbnN0IGQ9bmV3IERhdGU7cmV0dXJuIGE9WGwoV3UoT2ouREVGQVVMVF9PUFRJT05TKSxhKSxhPVhsKGEsbCksYS5maWxlbmFtZT1jTihhLmZpbGVuYW1lLHtZWVlZOmQuZ2V0RnVsbFllYXIo'@; put 'KSxNTTpgJHtkLmdldE1vbnRoKCkrMX1gLnBhZFN0YXJ0KDIsIjAiKSxERDpgJHtkLmdldERhdGUoKX1gLnBhZFN0YXJ0KDIsIjAiKX0pLGF9fWNvbnN0IEhPZT1PaixOT2U9U3RyaW5nLmZyb21DaGFyQ29kZSgxMyksVk9lPVN0cmluZy5mcm9tQ2hhckNvZGUoMzQpLEJPZT1TdHJpbmcuZnJv'@; put 'bUNoYXJDb2RlKDEwKSxQaj17Y3N2OmNsYXNzIGpPZSBleHRlbmRzIEhPZXtzdGF0aWMgZ2V0IERFRkFVTFRfT1BUSU9OUygpe3JldHVybnttaW1lVHlwZToidGV4dC9jc3YiLGZpbGVFeHRlbnNpb246ImNzdiIsYm9tOiEwLGNvbHVtbkRlbGltaXRlcjoiLCIscm93RGVsaW1pdGVyOiJcclxu'@; put 'In19ZXhwb3J0KCl7Y29uc3QgbD10aGlzLm9wdGlvbnMsYT10aGlzLmRhdGFQcm92aWRlci5nZXREYXRhKCk7bGV0IGQ9dGhpcy5kYXRhUHJvdmlkZXIuZ2V0Q29sdW1uSGVhZGVycygpO2NvbnN0IGg9ZC5sZW5ndGg+MCxmPXRoaXMuZGF0YVByb3ZpZGVyLmdldFJvd0hlYWRlcnMoKSxfPWYu'@; put 'bGVuZ3RoPjA7bGV0IFQ9bC5ib20/U3RyaW5nLmZyb21DaGFyQ29kZSg2NTI3OSk6IiI7cmV0dXJuIGgmJihkPWNzKGQsVz0+dGhpcy5fZXNjYXBlQ2VsbChXLCEwKSksXyYmKFQrPWwuY29sdW1uRGVsaW1pdGVyKSxUKz1kLmpvaW4obC5jb2x1bW5EZWxpbWl0ZXIpLFQrPWwucm93RGVsaW1p'@; put 'dGVyKSxEbihhLChXLGllKT0+e2llPjAmJihUKz1sLnJvd0RlbGltaXRlciksXyYmKFQrPXRoaXMuX2VzY2FwZUNlbGwoZltpZV0pK2wuY29sdW1uRGVsaW1pdGVyKSxUKz1XLm1hcChwZT0+dGhpcy5fZXNjYXBlQ2VsbChwZSkpLmpvaW4obC5jb2x1bW5EZWxpbWl0ZXIpfSksVH1fZXNjYXBl'@; put 'Q2VsbChsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGQ9X2wobCk7cmV0dXJuIiIhPT1kJiYoYXx8ZC5pbmRleE9mKE5PZSk+PTB8fGQuaW5kZXhPZihWT2UpPj0wfHxkLmluZGV4T2YoQk9lKT49MHx8ZC5pbmRleE9mKHRo'@; put 'aXMub3B0aW9ucy5jb2x1bW5EZWxpbWl0ZXIpPj0wKSYmKGQ9ZC5yZXBsYWNlKG5ldyBSZWdFeHAoJyInLCJnIiksJyIiJyksZD1gIiR7ZH0iYCksZH19fTtjbGFzcyBHT2UgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4iZXhwb3J0RmlsZSJ9c3RhdGljIGdldCBQ'@; put 'TFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMjQwfWlzRW5hYmxlZCgpe3JldHVybiEwfWV4cG9ydEFzU3RyaW5nKGwpe3JldHVybiB0aGlzLl9jcmVhdGVUeXBlRm9ybWF0dGVyKGwsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9KS5leHBv'@; put 'cnQoKX1leHBvcnRBc0Jsb2IobCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUJsb2IodGhpcy5fY3JlYXRlVHlwZUZvcm1hdHRlcihsLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSkpfWRvd25sb2FkRmlsZShsKXtsZXQgYT1hcmd1bWVudHMu'@; put 'bGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307Y29uc3R7cm9vdERvY3VtZW50OmQscm9vdFdpbmRvdzpofT10aGlzLmhvdCxmPXRoaXMuX2NyZWF0ZVR5cGVGb3JtYXR0ZXIobCxhKSxfPXRoaXMuX2NyZWF0ZUJsb2IoZiksVD1oLlVSTHx8aC53ZWJraXRV'@; put 'UkwsVz1kLmNyZWF0ZUVsZW1lbnQoImEiKSxpZT1gJHtmLm9wdGlvbnMuZmlsZW5hbWV9LiR7Zi5vcHRpb25zLmZpbGVFeHRlbnNpb259YDtpZih2b2lkIDAhPT1XLmRvd25sb2FkKXtjb25zdCBwZT1ULmNyZWF0ZU9iamVjdFVSTChfKTtXLnN0eWxlLmRpc3BsYXk9Im5vbmUiLFcuc2V0QXR0'@; put 'cmlidXRlKCJocmVmIixwZSksVy5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixpZSksZC5ib2R5LmFwcGVuZENoaWxkKFcpLFcuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgiY2xpY2siKSksZC5ib2R5LnJlbW92ZUNoaWxkKFcpLHNldFRpbWVvdXQoKCk9PntULnJldm9rZU9iamVjdFVS'@; put 'TChwZSl9LDEwMCl9ZWxzZSBuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiYmbmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoXyxpZSl9X2NyZWF0ZVR5cGVGb3JtYXR0ZXIobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9'@; put 'O2lmKCFQaltsXSl0aHJvdyBuZXcgRXJyb3IoYEV4cG9ydCBmb3JtYXQgdHlwZSAiJHtsfSIgaXMgbm90IHN1cHBvcnRlZC5gKTtyZXR1cm4gZnVuY3Rpb24gWk9lKGMsbCxhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUGpbY10/bmV3IFBqW2NdKGwsYSk6bnVsbH0obCxuZXcgY2xhc3Mg'@; put 'UE9le2NvbnN0cnVjdG9yKGwpe3RoaXMuaG90PWwsdGhpcy5vcHRpb25zPXt9fXNldE9wdGlvbnMobCl7dGhpcy5vcHRpb25zPWx9Z2V0RGF0YSgpe2NvbnN0e3N0YXJ0Um93Omwsc3RhcnRDb2w6YSxlbmRSb3c6ZCxlbmRDb2w6aH09dGhpcy5fZ2V0RGF0YVJhbmdlKCksZj10aGlzLm9wdGlv'@; put 'bnMsXz1bXTtyZXR1cm4gdm8obCxkLFQ9Pntjb25zdCBXPVtdOyFmLmV4cG9ydEhpZGRlblJvd3MmJnRoaXMuX2lzSGlkZGVuUm93KFQpfHwodm8oYSxoLGllPT57IWYuZXhwb3J0SGlkZGVuQ29sdW1ucyYmdGhpcy5faXNIaWRkZW5Db2x1bW4oaWUpfHxXLnB1c2godGhpcy5ob3QuZ2V0RGF0'@; put 'YUF0Q2VsbChULGllKSl9KSxfLnB1c2goVykpfSksX31nZXRSb3dIZWFkZXJzKCl7Y29uc3QgbD1bXTtpZih0aGlzLm9wdGlvbnMucm93SGVhZGVycyl7Y29uc3R7c3RhcnRSb3c6YSxlbmRSb3c6ZH09dGhpcy5fZ2V0RGF0YVJhbmdlKCksaD10aGlzLmhvdC5nZXRSb3dIZWFkZXIoKTt2byhh'@; put 'LGQsZj0+eyF0aGlzLm9wdGlvbnMuZXhwb3J0SGlkZGVuUm93cyYmdGhpcy5faXNIaWRkZW5Sb3coZil8fGwucHVzaChoW2ZdKX0pfXJldHVybiBsfWdldENvbHVtbkhlYWRlcnMoKXtjb25zdCBsPVtdO2lmKHRoaXMub3B0aW9ucy5jb2x1bW5IZWFkZXJzKXtjb25zdHtzdGFydENvbDphLGVu'@; put 'ZENvbDpkfT10aGlzLl9nZXREYXRhUmFuZ2UoKSxoPXRoaXMuaG90LmdldENvbEhlYWRlcigpO3ZvKGEsZCxmPT57IXRoaXMub3B0aW9ucy5leHBvcnRIaWRkZW5Db2x1bW5zJiZ0aGlzLl9pc0hpZGRlbkNvbHVtbihmKXx8bC5wdXNoKGhbZl0pfSl9cmV0dXJuIGx9X2dldERhdGFSYW5nZSgp'@; put 'e2NvbnN0IGw9dGhpcy5ob3QuY291bnRDb2xzKCktMSxhPXRoaXMuaG90LmNvdW50Um93cygpLTE7bGV0W2Q9MCxoPTAsZj1hLF89bF09dGhpcy5vcHRpb25zLnJhbmdlO3JldHVybiBkPU1hdGgubWF4KGQsMCksaD1NYXRoLm1heChoLDApLGY9TWF0aC5taW4oZixhKSxfPU1hdGgubWluKF8s'@; put 'bCkse3N0YXJ0Um93OmQsc3RhcnRDb2w6aCxlbmRSb3c6ZixlbmRDb2w6X319X2lzSGlkZGVuUm93KGwpe3JldHVybiB0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5pc0hpZGRlbih0aGlzLmhvdC50b1BoeXNpY2FsUm93KGwpKX1faXNIaWRkZW5Db2x1bW4obCl7cmV0dXJuIHRoaXMuaG90LmNv'@; put 'bHVtbkluZGV4TWFwcGVyLmlzSGlkZGVuKHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCkpfX0odGhpcy5ob3QpLGEpfV9jcmVhdGVCbG9iKGwpe2xldCBhPW51bGw7cmV0dXJuIHR5cGVvZiBCbG9iPCJ1IiYmKGE9bmV3IEJsb2IoW2wuZXhwb3J0KCldLHt0eXBlOmAke2wub3B0aW9ucy5t'@; put 'aW1lVHlwZX07Y2hhcnNldD0ke2wub3B0aW9ucy5lbmNvZGluZ31gfSkpLGF9fWNsYXNzIGlpZXtjb25zdHJ1Y3RvcihsLGEpe2xldHtpZDpkLHN0YXRlbGVzczpoPSEwfT1hO3RoaXMuaG90PWwsdGhpcy5pZD1kLHRoaXMuZWxlbWVudHM9W10sdGhpcy5oaWRkZW49ITEsdGhpcy5zdGF0ZUlk'@; put 'PWBGaWx0ZXJzLmNvbXBvbmVudC4ke3RoaXMuaWR9YCx0aGlzLnN0YXRlPWg/bnVsbDp0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnN0YXRlSWQsbmV3IEVrKX1yZXNldCgpe0RuKHRoaXMuZWxlbWVudHMsbD0+bC5yZXNldCgpKX1oaWRlKCl7dGhpcy5oaWRk'@; put 'ZW49ITB9c2hvdygpe3RoaXMuaGlkZGVuPSExfWlzSGlkZGVuKCl7cmV0dXJuIG51bGw9PT10aGlzLmhvdHx8dGhpcy5oaWRkZW59cmVzdG9yZVN0YXRlKGwpe3RoaXMuc3RhdGUmJnRoaXMuc2V0U3RhdGUodGhpcy5zdGF0ZS5nZXRWYWx1ZUF0SW5kZXgobCkpfXNldFN0YXRlKCl7dGhyb3cg'@; put 'bmV3IEVycm9yKCJUaGUgc3RhdGUgc2V0dGluZyBsb2dpYyBpcyBub3QgaW1wbGVtZW50ZWQiKX1zYXZlU3RhdGUobCl7dGhpcy5zdGF0ZSYmdGhpcy5zdGF0ZS5zZXRWYWx1ZUF0SW5kZXgobCx0aGlzLmdldFN0YXRlKCkpfWdldFN0YXRlKCl7dGhyb3cgbmV3IEVycm9yKCJUaGUgc3RhdGUg'@; put 'Z2F0aGVyaW5nIGxvZ2ljIGlzIG5vdCBpbXBsZW1lbnRlZCIpfWRlc3Ryb3koKXt0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMuc3RhdGVJZCksdGhpcy5jbGVhckxvY2FsSG9va3MoKSxEbih0aGlzLmVsZW1lbnRzLGw9PmwuZGVzdHJveSgpKSx0aGlzLnN0'@; put 'YXRlPW51bGwsdGhpcy5lbGVtZW50cz1udWxsLHRoaXMuaG90PW51bGx9fVRhKGlpZSxPMCk7Y29uc3QgYkE9aWllLFZ5PXt9O2Z1bmN0aW9uIEpwKGMsbCl7aWYoIVZ5W2NdKXRocm93IEVycm9yKGBGaWx0ZXIgY29uZGl0aW9uICIke2N9IiBkb2VzIG5vdCBleGlzdC5gKTtjb25zdHtjb25k'@; put 'aXRpb246YSxkZXNjcmlwdG9yOmR9PVZ5W2NdO2xldCBoPWw7cmV0dXJuIGQuaW5wdXRWYWx1ZXNEZWNvcmF0b3ImJihoPWQuaW5wdXRWYWx1ZXNEZWNvcmF0b3IoaCkpLGZ1bmN0aW9uKGYpe3JldHVybiBhLmFwcGx5KGYubWV0YS5pbnN0YW5jZSxbXS5jb25jYXQoW2ZdLFtoXSkpfX1mdW5j'@; put 'dGlvbiBPZyhjKXtpZighVnlbY10pdGhyb3cgRXJyb3IoYEZpbHRlciBjb25kaXRpb24gIiR7Y30iIGRvZXMgbm90IGV4aXN0LmApO3JldHVybiBWeVtjXS5kZXNjcmlwdG9yfWZ1bmN0aW9uIEpsKGMsbCxhKXthLmtleT1jLFZ5W2NdPXtjb25kaXRpb246bCxkZXNjcmlwdG9yOmF9fWNvbnN0'@; put 'IEdjPSJub25lIjtKbChHYyxmdW5jdGlvbiAkT2UoKXtyZXR1cm4hMH0se25hbWU6TGssaW5wdXRzQ291bnQ6MCxzaG93T3BlcmF0b3JzOiExfSk7Y29uc3QgQnk9ImVtcHR5IjtKbChCeSxmdW5jdGlvbiBxT2UoYyl7cmV0dXJuIGdjKGMudmFsdWUpfSx7bmFtZTpsQixpbnB1dHNDb3VudDow'@; put 'LHNob3dPcGVyYXRvcnM6ITB9KTtjb25zdCB5QT0ibm90X2VtcHR5IjtKbCh5QSxmdW5jdGlvbiBLT2UoYyxsKXtyZXR1cm4hSnAoQnksbCkoYyl9LHtuYW1lOmNCLGlucHV0c0NvdW50OjAsc2hvd09wZXJhdG9yczohMH0pO2NvbnN0IGp5PSJlcSI7SmwoanksZnVuY3Rpb24gWE9lKGMsbCl7'@; put 'bGV0W2FdPWw7cmV0dXJuIF9sKGMudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKGMubWV0YS5sb2NhbGUpPT09X2woYSl9LHtuYW1lOnVCLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO2NvbnN0IHdBPSJuZXEiO0psKHdBLGZ1bmN0aW9uIEpPZShjLGwpe3JldHVybiFKcChqeSxs'@; put 'KShjKX0se25hbWU6ZEIsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSksSmwoImd0IixmdW5jdGlvbiBRT2UoYyxsKXtsZXRbYV09bCxkPWE7cmV0dXJuIm51bWVyaWMiPT09Yy5tZXRhLnR5cGUmJihkPXBhcnNlRmxvYXQoZCwxMCkpLGMudmFsdWU+ZH0se25hbWU6bUIsaW5wdXRz'@; put 'Q291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSksSmwoImd0ZSIsZnVuY3Rpb24gZVBlKGMsbCl7bGV0W2FdPWwsZD1hO3JldHVybiJudW1lcmljIj09PWMubWV0YS50eXBlJiYoZD1wYXJzZUZsb2F0KGQsMTApKSxjLnZhbHVlPj1kfSx7bmFtZTp2QixpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRv'@; put 'cnM6ITB9KSxKbCgibHQiLGZ1bmN0aW9uIHRQZShjLGwpe2xldFthXT1sLGQ9YTtyZXR1cm4ibnVtZXJpYyI9PT1jLm1ldGEudHlwZSYmKGQ9cGFyc2VGbG9hdChkLDEwKSksYy52YWx1ZTxkfSx7bmFtZTpfQixpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KSxKbCgibHRlIixmdW5j'@; put 'dGlvbiBuUGUoYyxsKXtsZXRbYV09bCxkPWE7cmV0dXJuIm51bWVyaWMiPT09Yy5tZXRhLnR5cGUmJihkPXBhcnNlRmxvYXQoZCwxMCkpLGMudmFsdWU8PWR9LHtuYW1lOmJCLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO2NvbnN0IEZqPSJkYXRlX2FmdGVyIjtKbChGaixmdW5j'@; put 'dGlvbiByUGUoYyxsKXtsZXRbYV09bDtjb25zdCBkPUtvKGMudmFsdWUsYy5tZXRhLmRhdGVGb3JtYXQpLGg9S28oYSxjLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISghZC5pc1ZhbGlkKCl8fCFoLmlzVmFsaWQoKSkmJmQuZGlmZihoKT49MH0se25hbWU6Q0IsaW5wdXRzQ291bnQ6MSxzaG93'@; put 'T3BlcmF0b3JzOiEwfSk7Y29uc3QgSGo9ImRhdGVfYmVmb3JlIjtKbChIaixmdW5jdGlvbiBpUGUoYyxsKXtsZXRbYV09bDtjb25zdCBkPUtvKGMudmFsdWUsYy5tZXRhLmRhdGVGb3JtYXQpLGg9S28oYSxjLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISghZC5pc1ZhbGlkKCl8fCFoLmlzVmFs'@; put 'aWQoKSkmJmQuZGlmZihoKTw9MH0se25hbWU6U0IsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgQ0E9ImJldHdlZW4iO0psKENBLGZ1bmN0aW9uIG9QZShjLGwpe2xldFthLGRdPWwsaD1hLGY9ZDtpZigibnVtZXJpYyI9PT1jLm1ldGEudHlwZSl7Y29uc3QgXz1wYXJz'@; put 'ZUZsb2F0KGgsMTApLFQ9cGFyc2VGbG9hdChmLDEwKTtoPU1hdGgubWluKF8sVCksZj1NYXRoLm1heChfLFQpfWVsc2UgaWYoImRhdGUiPT09Yy5tZXRhLnR5cGUpe2NvbnN0IF89SnAoSGosW2ZdKSxUPUpwKEZqLFtoXSk7cmV0dXJuIF8oYykmJlQoYyl9cmV0dXJuIGMudmFsdWU+PWgmJmMu'@; put 'dmFsdWU8PWZ9LHtuYW1lOnlCLGlucHV0c0NvdW50OjIsc2hvd09wZXJhdG9yczohMH0pO2NvbnN0IGNpZT0ibm90X2JldHdlZW4iO0psKGNpZSxmdW5jdGlvbiBzUGUoYyxsKXtyZXR1cm4hSnAoQ0EsbCkoYyl9LHtuYW1lOndCLGlucHV0c0NvdW50OjIsc2hvd09wZXJhdG9yczohMH0pO2Nv'@; put 'bnN0IHVpZT0iYmVnaW5zX3dpdGgiO0psKHVpZSxmdW5jdGlvbiBhUGUoYyxsKXtsZXRbYV09bDtyZXR1cm4gX2woYy52YWx1ZSkudG9Mb2NhbGVMb3dlckNhc2UoYy5tZXRhLmxvY2FsZSkuc3RhcnRzV2l0aChfbChhKSl9LHtuYW1lOmhCLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczoh'@; put 'MH0pLEpsKCJlbmRzX3dpdGgiLGZ1bmN0aW9uIGxQZShjLGwpe2xldFthXT1sO3JldHVybiBfbChjLnZhbHVlKS50b0xvY2FsZUxvd2VyQ2FzZShjLm1ldGEubG9jYWxlKS5lbmRzV2l0aChfbChhKSl9LHtuYW1lOmZCLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO2NvbnN0IE5q'@; put 'PSJjb250YWlucyI7SmwoTmosZnVuY3Rpb24gY1BlKGMsbCl7bGV0W2FdPWw7cmV0dXJuIF9sKGMudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKGMubWV0YS5sb2NhbGUpLmluZGV4T2YoX2woYSkpPj0wfSx7bmFtZTpwQixpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTtjb25zdCBo'@; put 'aWU9Im5vdF9jb250YWlucyI7SmwoaGllLGZ1bmN0aW9uIHVQZShjLGwpe3JldHVybiFKcChOaixsKShjKX0se25hbWU6Z0IsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgZmllPSJkYXRlX3RvbW9ycm93IjtKbChmaWUsZnVuY3Rpb24gZFBlKGMpe2NvbnN0IGw9S28o'@; put 'Yy52YWx1ZSxjLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISFsLmlzVmFsaWQoKSYmbC5pc1NhbWUoS28oKS5zdWJ0cmFjdCgtMSwiZGF5cyIpLnN0YXJ0T2YoImRheSIpLCJkIil9LHtuYW1lOnhCLGlucHV0c0NvdW50OjB9KTtjb25zdCBwaWU9ImRhdGVfdG9kYXkiO0psKHBpZSxmdW5jdGlv'@; put 'biBoUGUoYyl7Y29uc3QgbD1LbyhjLnZhbHVlLGMubWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4hIWwuaXNWYWxpZCgpJiZsLmlzU2FtZShLbygpLnN0YXJ0T2YoImRheSIpLCJkIil9LHtuYW1lOk1CLGlucHV0c0NvdW50OjB9KTtjb25zdCBnaWU9ImRhdGVfeWVzdGVyZGF5IjtKbChnaWUsZnVu'@; put 'Y3Rpb24gZlBlKGMpe2NvbnN0IGw9S28oYy52YWx1ZSxjLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISFsLmlzVmFsaWQoKSYmbC5pc1NhbWUoS28oKS5zdWJ0cmFjdCgxLCJkYXlzIikuc3RhcnRPZigiZGF5IiksImQiKX0se25hbWU6RUIsaW5wdXRzQ291bnQ6MH0pO2NvbnN0IHZpZT17bnVt'@; put 'ZXJpYzpbR2MsZ3MsQnkseUEsZ3Msanksd0EsZ3MsImd0IiwiZ3RlIiwibHQiLCJsdGUiLENBLGNpZV0sdGV4dDpbR2MsZ3MsQnkseUEsZ3Msanksd0EsZ3MsdWllLCJlbmRzX3dpdGgiLGdzLE5qLGhpZV0sZGF0ZTpbR2MsZ3MsQnkseUEsZ3Msanksd0EsZ3MsSGosRmosQ0EsZ3MsZmllLHBp'@; put 'ZSxnaWVdfSxWaj0iYnVpbHQiLEJqPSJidWlsZGluZyIsX2llPVsiY2xpY2siLCJpbnB1dCIsImtleWRvd24iLCJrZXlwcmVzcyIsImtleXVwIiwiZm9jdXMiLCJibHVyIiwiY2hhbmdlIl07Y2xhc3MgU0F7c3RhdGljIGdldCBERUZBVUxUUygpe3JldHVybiBXdSh7Y2xhc3NOYW1lOiIiLHZh'@; put 'bHVlOiIiLHRhZ05hbWU6ImRpdiIsY2hpbGRyZW46W10sd3JhcEl0OiEwfSl9Y29uc3RydWN0b3IobCxhKXt0aGlzLmhvdD1sLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBsbCh0aGlzKSx0aGlzLm9wdGlvbnM9WGwoU0EuREVGQVVMVFMsYSksdGhpcy5fZWxlbWVudD10aGlzLmhvdC5yb290RG9j'@; put 'dW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLm9wdGlvbnMud3JhcEl0PyJkaXYiOnRoaXMub3B0aW9ucy50YWdOYW1lKSx0aGlzLmJ1aWxkU3RhdGU9bnVsbH1zZXRWYWx1ZShsKXt0aGlzLm9wdGlvbnMudmFsdWU9bCx0aGlzLnVwZGF0ZSgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMub3B0aW9u'@; put 'cy52YWx1ZX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLmJ1aWxkU3RhdGU9PT1Caj90aGlzLl9lbGVtZW50OnRoaXMuYnVpbGRTdGF0ZT09PVZqPyh0aGlzLnVwZGF0ZSgpLHRoaXMuX2VsZW1lbnQpOih0aGlzLmJ1aWxkU3RhdGU9QmosdGhpcy5idWlsZCgpLHRoaXMuYnVpbGRTdGF0ZT1W'@; put 'aix0aGlzLl9lbGVtZW50KX1pc0J1aWx0KCl7cmV0dXJuIHRoaXMuYnVpbGRTdGF0ZT09PVZqfXRyYW5zbGF0ZUlmUG9zc2libGUobCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBsJiZsLnN0YXJ0c1dpdGgoJHUpP3RoaXMuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UobCk6bH1idWlsZCgpe2Nv'@; put 'bnN0IGw9KGEsZCk9Pnt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsZCxoPT50aGlzLnJ1bkxvY2FsSG9va3MoZCxoLHRoaXMpKX07aWYodGhpcy5idWlsZFN0YXRlfHwodGhpcy5idWlsZFN0YXRlPUJqKSx0aGlzLm9wdGlvbnMuY2xhc3NOYW1lJiZwaSh0aGlzLl9lbGVt'@; put 'ZW50LHRoaXMub3B0aW9ucy5jbGFzc05hbWUpLHRoaXMub3B0aW9ucy5jaGlsZHJlbi5sZW5ndGgpRG4odGhpcy5vcHRpb25zLmNoaWxkcmVuLGE9PnRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoYS5lbGVtZW50KSk7ZWxzZSBpZih0aGlzLm9wdGlvbnMud3JhcEl0KXtjb25zdCBhPXRoaXMu'@; put 'aG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMub3B0aW9ucy50YWdOYW1lKTtkcyh0aGlzLm9wdGlvbnMsKGQsaCk9Pnt2b2lkIDAhPT1hW2hdJiYiY2xhc3NOYW1lIiE9PWgmJiJ0YWdOYW1lIiE9PWgmJiJjaGlsZHJlbiIhPT1oJiYoYVtoXT10aGlzLnRyYW5zbGF0ZUlmUG9z'@; put 'c2libGUoZCkpfSksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChhKSxEbihfaWUsZD0+bChhLGQpKX1lbHNlIERuKF9pZSxhPT5sKHRoaXMuX2VsZW1lbnQsYSkpfXVwZGF0ZSgpe31yZXNldCgpe3RoaXMub3B0aW9ucy52YWx1ZT0iIix0aGlzLnVwZGF0ZSgpfXNob3coKXt0aGlzLmVsZW1l'@; put 'bnQuc3R5bGUuZGlzcGxheT0iIn1oaWRlKCl7dGhpcy5lbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUifWZvY3VzKCl7fWRlc3Ryb3koKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy5ldmVudE1hbmFnZXI9bnVsbCx0aGlzLmhvdD1udWxsLHRoaXMuX2VsZW1lbnQucGFyZW50'@; put 'Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQ9bnVsbH19VGEoU0EsTzApO2NvbnN0IFFwPVNBLE1BPW5ldyBXZWFrTWFwO2NsYXNzIGpqIGV4dGVuZHMgUXB7c3RhdGljIGdldCBERUZBVUxUUygpe3JldHVybiBX'@; put 'dSh7cGxhY2Vob2xkZXI6IiIsdHlwZToidGV4dCIsdGFnTmFtZToiaW5wdXQifSl9Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLFhsKGpqLkRFRkFVTFRTLGEpKSxNQS5zZXQodGhpcyx7fSksdGhpcy5yZWdpc3Rlckhvb2tzKCl9cmVnaXN0ZXJIb29rcygpe3RoaXMuYWRkTG9jYWxIb29rKCJj'@; put 'bGljayIsKCk9PnRoaXMub25DbGljaygpKSx0aGlzLmFkZExvY2FsSG9vaygia2V5dXAiLGw9PnRoaXMub25LZXl1cChsKSl9YnVpbGQoKXtzdXBlci5idWlsZCgpO2NvbnN0IGw9TUEuZ2V0KHRoaXMpLGE9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuaW5w'@; put 'dXQ9dGhpcy5fZWxlbWVudC5maXJzdENoaWxkLHBpKHRoaXMuX2VsZW1lbnQsImh0VUlJbnB1dCIpLHBpKGEsImh0VUlJbnB1dEljb24iKSx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGEpLHRoaXMudXBkYXRlKCl9dXBkYXRlKCl7aWYoIXRoaXMuaXNCdWlsdCgpKXJldHVybjtjb25zdCBs'@; put 'PU1BLmdldCh0aGlzKS5pbnB1dDtsLnR5cGU9dGhpcy5vcHRpb25zLnR5cGUsbC5wbGFjZWhvbGRlcj10aGlzLnRyYW5zbGF0ZUlmUG9zc2libGUodGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyKSxsLnZhbHVlPXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMudmFsdWUpfWZv'@; put 'Y3VzKCl7dGhpcy5pc0J1aWx0KCkmJk1BLmdldCh0aGlzKS5pbnB1dC5mb2N1cygpfW9uQ2xpY2soKXt9b25LZXl1cChsKXt0aGlzLm9wdGlvbnMudmFsdWU9bC50YXJnZXQudmFsdWV9fWNvbnN0IEk3PWpqLHhBPW5ldyBXZWFrTWFwO2NsYXNzIHpqIGV4dGVuZHMgUXB7c3RhdGljIGdldCBE'@; put 'RUZBVUxUUygpe3JldHVybiBXdSh7Y2xhc3NOYW1lOiJodFVJU2VsZWN0Iix3cmFwSXQ6ITF9KX1jb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwsWGwoemouREVGQVVMVFMsYSkpLHhBLnNldCh0aGlzLHt9KSx0aGlzLm1lbnU9bnVsbCx0aGlzLml0ZW1zPVtdLHRoaXMucmVnaXN0ZXJIb29rcygp'@; put 'fXJlZ2lzdGVySG9va3MoKXt0aGlzLmFkZExvY2FsSG9vaygiY2xpY2siLCgpPT50aGlzLm9uQ2xpY2soKSl9c2V0SXRlbXMobCl7dGhpcy5pdGVtcz10aGlzLnRyYW5zbGF0ZU5hbWVzKGwpLHRoaXMubWVudSYmdGhpcy5tZW51LnNldE1lbnVJdGVtcyh0aGlzLml0ZW1zKX10cmFuc2xhdGVO'@; put 'YW1lcyhsKXtyZXR1cm4gRG4obCxhPT57YS5uYW1lPXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZShhLm5hbWUpfSksbH1idWlsZCgpe3N1cGVyLmJ1aWxkKCksdGhpcy5tZW51PW5ldyB5aih0aGlzLmhvdCx7Y2xhc3NOYW1lOiJodFNlbGVjdFVJIGh0RmlsdGVyc0NvbmRpdGlvbnNNZW51Iixr'@; put 'ZWVwSW5WaWV3cG9ydDohMSxzdGFuZGFsb25lOiEwLGNvbnRhaW5lcjp0aGlzLm9wdGlvbnMubWVudUNvbnRhaW5lcn0pLHRoaXMubWVudS5zZXRNZW51SXRlbXModGhpcy5pdGVtcyk7Y29uc3QgbD1uZXcgUXAodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRVSVNlbGVjdENhcHRpb24ifSksYT1u'@; put 'ZXcgUXAodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRVSVNlbGVjdERyb3Bkb3duIn0pLGQ9eEEuZ2V0KHRoaXMpO2QuY2FwdGlvbj1sLGQuY2FwdGlvbkVsZW1lbnQ9bC5lbGVtZW50LGQuZHJvcGRvd249YSxEbihbbCxhXSxoPT50aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGguZWxlbWVudCkp'@; put 'LHRoaXMubWVudS5hZGRMb2NhbEhvb2soInNlbGVjdCIsaD0+dGhpcy5vbk1lbnVTZWxlY3QoaCkpLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLCgpPT50aGlzLm9uTWVudUNsb3NlZCgpKSx0aGlzLnVwZGF0ZSgpfXVwZGF0ZSgpe2lmKCF0aGlzLmlzQnVpbHQoKSlyZXR1'@; put 'cm47bGV0IGw7bD10aGlzLm9wdGlvbnMudmFsdWU/dGhpcy5vcHRpb25zLnZhbHVlLm5hbWU6dGhpcy5tZW51LmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKExrKSx4QS5nZXQodGhpcykuY2FwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQ9bCxzdXBlci51cGRhdGUoKX1vcGVuT3B0aW9ucygpe2Nv'@; put 'bnN0IGw9dGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMubWVudSYmKHRoaXMubWVudS5vcGVuKCksdGhpcy5tZW51LnNldFBvc2l0aW9uKHtsZWZ0OnRoaXMuaG90LmlzTHRyKCk/bC5sZWZ0LTU6bC5sZWZ0LTMxLHRvcDpsLnRvcC0xLHdpZHRoOmwud2lkdGgsaGVp'@; put 'Z2h0OmwuaGVpZ2h0fSkpfWNsb3NlT3B0aW9ucygpe3RoaXMubWVudSYmdGhpcy5tZW51LmNsb3NlKCl9b25NZW51U2VsZWN0KGwpe2wubmFtZSE9PWdzJiYodGhpcy5vcHRpb25zLnZhbHVlPWwsdGhpcy51cGRhdGUoKSx0aGlzLnJ1bkxvY2FsSG9va3MoInNlbGVjdCIsdGhpcy5vcHRpb25z'@; put 'LnZhbHVlKSl9b25NZW51Q2xvc2VkKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsb3NlIil9b25DbGljaygpe3RoaXMub3Blbk9wdGlvbnMoKX1kZXN0cm95KCl7dGhpcy5tZW51JiYodGhpcy5tZW51LmRlc3Ryb3koKSx0aGlzLm1lbnU9bnVsbCk7Y29uc3R7Y2FwdGlvbjpsLGRyb3Bk'@; put 'b3duOmF9PXhBLmdldCh0aGlzKTtsJiZsLmRlc3Ryb3koKSxhJiZhLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fWNvbnN0IGJpZT16aixVaj1jbGFzcyB2UGUgZXh0ZW5kcyBiQXtjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwse2lkOmEuaWQsc3RhdGVsZXNzOiExfSksdGhpcy5uYW1lPWEu'@; put 'bmFtZSx0aGlzLmFkZFNlcGFyYXRvcj1hLmFkZFNlcGFyYXRvcix0aGlzLmVsZW1lbnRzLnB1c2gobmV3IGJpZSh0aGlzLmhvdCx7bWVudUNvbnRhaW5lcjphLm1lbnVDb250YWluZXJ9KSksdGhpcy5lbGVtZW50cy5wdXNoKG5ldyBJNyh0aGlzLmhvdCx7cGxhY2Vob2xkZXI6UEJ9KSksdGhp'@; put 'cy5lbGVtZW50cy5wdXNoKG5ldyBJNyh0aGlzLmhvdCx7cGxhY2Vob2xkZXI6RkJ9KSksdGhpcy5yZWdpc3Rlckhvb2tzKCl9cmVnaXN0ZXJIb29rcygpe3RoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLmFkZExvY2FsSG9vaygic2VsZWN0IixsPT50aGlzLm9uQ29uZGl0aW9uU2VsZWN0KGwpKSx0'@; put 'aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLCgpPT50aGlzLm9uU2VsZWN0VUlDbG9zZWQoKSksRG4odGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksbD0+e2wuYWRkTG9jYWxIb29rKCJrZXlkb3duIixhPT50aGlzLm9uSW5wdXRLZXlEb3duKGEpKX0pfXNl'@; put 'dFN0YXRlKGwpe2lmKHRoaXMucmVzZXQoKSwhbClyZXR1cm47Y29uc3QgYT1XdShsLmNvbW1hbmQpO2EubmFtZS5zdGFydHNXaXRoKHlsKSYmKGEubmFtZT10aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKGEubmFtZSkpLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNldFZhbHVlKGEpLERu'@; put 'KGwuYXJncywoZCxoKT0+e2lmKGg+YS5pbnB1dHNDb3VudC0xKXJldHVybiExO2NvbnN0IGY9dGhpcy5nZXRJbnB1dEVsZW1lbnQoaCk7Zi5zZXRWYWx1ZShkKSxmW2EuaW5wdXRzQ291bnQ+aD8ic2hvdyI6ImhpZGUiXSgpLGh8fHNldFRpbWVvdXQoKCk9PmYuZm9jdXMoKSwxMCl9KX1nZXRT'@; put 'dGF0ZSgpe2NvbnN0IGw9dGhpcy5nZXRTZWxlY3RFbGVtZW50KCkuZ2V0VmFsdWUoKXx8T2coR2MpLGE9W107cmV0dXJuIERuKHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLChkLGgpPT57bC5pbnB1dHNDb3VudD5oJiZhLnB1c2goZC5nZXRWYWx1ZSgpKX0pLHtjb21tYW5kOmwsYXJnczphfX11'@; put 'cGRhdGVTdGF0ZShsLGEpe2NvbnN0IGQ9T2cobD9sLm5hbWU6R2MpO3RoaXMuc3RhdGUuc2V0VmFsdWVBdEluZGV4KGEse2NvbW1hbmQ6ZCxhcmdzOmw/bC5hcmdzOltdfSksbHx8RG4odGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksaD0+aC5zZXRWYWx1ZShudWxsKSl9Z2V0U2VsZWN0RWxlbWVu'@; put 'dCgpe3JldHVybiB0aGlzLmVsZW1lbnRzLmZpbHRlcihsPT5sIGluc3RhbmNlb2YgYmllKVswXX1nZXRJbnB1dEVsZW1lbnQoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MDtyZXR1cm4gdGhpcy5nZXRJbnB1dEVsZW1lbnRz'@; put 'KClbbF19Z2V0SW5wdXRFbGVtZW50cygpe3JldHVybiB0aGlzLmVsZW1lbnRzLmZpbHRlcihsPT5sIGluc3RhbmNlb2YgSTcpfWdldE1lbnVJdGVtRGVzY3JpcHRvcigpe3JldHVybntrZXk6dGhpcy5pZCxuYW1lOnRoaXMubmFtZSxpc0NvbW1hbmQ6ITEsZGlzYWJsZVNlbGVjdGlvbjohMCxo'@; put 'aWRkZW46KCk9PnRoaXMuaXNIaWRkZW4oKSxyZW5kZXJlcjoobCxhLGQsaCxmLF8pPT57cGkoYS5wYXJlbnROb2RlLCJodEZpbHRlcnNNZW51Q29uZGl0aW9uIiksdGhpcy5hZGRTZXBhcmF0b3ImJnBpKGEucGFyZW50Tm9kZSwiYm9yZGVyIik7Y29uc3QgVD10aGlzLmhvdC5yb290RG9jdW1l'@; put 'bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHBpKFQsImh0RmlsdGVyc01lbnVMYWJlbCIpLFQudGV4dENvbnRlbnQ9XyxhLmFwcGVuZENoaWxkKFQpLGEucGFyZW50Tm9kZS5oYXNBdHRyaWJ1dGUoImdob3N0LXRhYmxlIil8fERuKHRoaXMuZWxlbWVudHMsVz0+YS5hcHBlbmRDaGls'@; put 'ZChXLmVsZW1lbnQpKSxhfX19cmVzZXQoKXtjb25zdCBsPXRoaXMuaG90LmdldFBsdWdpbigiZmlsdGVycyIpLmdldFNlbGVjdGVkQ29sdW1uKCk7bGV0IGE9W09nKEdjKV07aWYobnVsbCE9PWwpe2NvbnN0e3Zpc3VhbEluZGV4OmR9PWw7YT1mdW5jdGlvbiBtUGUoYyl7Y29uc3QgbD1bXTts'@; put 'ZXQgYT1jO3JldHVybiB2aWVbYV18fChhPSJ0ZXh0IiksRG4odmllW2FdLGQ9PntsZXQgaDtoPWQ9PT1ncz97bmFtZTpnc306V3UoT2coZCkpLGwucHVzaChoKX0pLGx9KHRoaXMuaG90LmdldERhdGFUeXBlKDAsZCx0aGlzLmhvdC5jb3VudFJvd3MoKSxkKSl9RG4odGhpcy5nZXRJbnB1dEVs'@; put 'ZW1lbnRzKCksZD0+ZC5oaWRlKCkpLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNldEl0ZW1zKGEpLHN1cGVyLnJlc2V0KCksdGhpcy5nZXRTZWxlY3RFbGVtZW50KCkuc2V0VmFsdWUoYVswXSl9b25Db25kaXRpb25TZWxlY3QobCl7RG4odGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksKGEsZCk9'@; put 'PnthW2wuaW5wdXRzQ291bnQ+ZD8ic2hvdyI6ImhpZGUiXSgpLDA9PT1kJiZzZXRUaW1lb3V0KCgpPT5hLmZvY3VzKCksMTApfSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGwpfW9uU2VsZWN0VUlDbG9zZWQoKXt0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyQ2xvc2UiKX1vbklucHV0'@; put 'S2V5RG93bihsKXtvNyhsLmtleUNvZGUsIkVOVEVSIik/KHRoaXMucnVuTG9jYWxIb29rcygiYWNjZXB0IiksdjIobCkpOm83KGwua2V5Q29kZSwiRVNDQVBFIikmJih0aGlzLnJ1bkxvY2FsSG9va3MoImNhbmNlbCIpLHYyKGwpKX19LHp5PXt9O2Z1bmN0aW9uIGJQZShjKXtyZXR1cm4genlb'@; put 'Y10ubmFtZX1mdW5jdGlvbiBaaihjLGwsYSl7enlbY109e25hbWU6bCxmdW5jOmF9fWNvbnN0IGU0PSJjb25qdW5jdGlvbiI7WmooZTQsVEIsZnVuY3Rpb24gd1BlKGMsbCl7cmV0dXJuIGMuZXZlcnkoYT0+YS5mdW5jKGwpKX0pO2NvbnN0IEVBPSJkaXNqdW5jdGlvbiI7WmooRUEsUmssZnVu'@; put 'Y3Rpb24gU1BlKGMsbCl7cmV0dXJuIGMuc29tZShhPT5hLmZ1bmMobCkpfSk7Y29uc3QgWWo9ImRpc2p1bmN0aW9uV2l0aEV4dHJhQ29uZGl0aW9uIjtaaihZaixSayxmdW5jdGlvbiB4UGUoYyxsKXtpZihjLmxlbmd0aDwzKXRocm93IEVycm9yKCJPcGVyYXRpb24gZG9lc24ndCB3b3JrIG9u'@; put 'IGxlc3MgdGhlbiB0aHJlZSBjb25kaXRpb25zLiIpO3JldHVybiBjLnNsaWNlKDAsYy5sZW5ndGgtMSkuc29tZShhPT5hLmZ1bmMobCkpJiZjW2MubGVuZ3RoLTFdLmZ1bmMobCl9KTtjb25zdCBrQT1uZXcgV2Vha01hcDtjbGFzcyBXaiBleHRlbmRzIFFwe3N0YXRpYyBnZXQgREVGQVVMVFMo'@; put 'KXtyZXR1cm4gV3Uoe3R5cGU6InJhZGlvIix0YWdOYW1lOiJpbnB1dCIsY2xhc3NOYW1lOiJodFVJUmFkaW8iLGxhYmVsOnt9fSl9Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLFhsKFdqLkRFRkFVTFRTLGEpKSxrQS5zZXQodGhpcyx7fSl9YnVpbGQoKXtzdXBlci5idWlsZCgpO2NvbnN0IGw9'@; put 'a0EuZ2V0KHRoaXMpO2wuaW5wdXQ9dGhpcy5fZWxlbWVudC5maXJzdENoaWxkO2NvbnN0IGE9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7YS50ZXh0Q29udGVudD10aGlzLnRyYW5zbGF0ZUlmUG9zc2libGUodGhpcy5vcHRpb25zLmxhYmVsLnRleHRDb250'@; put 'ZW50KSxhLmh0bWxGb3I9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5sYWJlbC5odG1sRm9yKSxsLmxhYmVsPWEsdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChhKSx0aGlzLnVwZGF0ZSgpfXVwZGF0ZSgpe2lmKCF0aGlzLmlzQnVpbHQoKSlyZXR1cm47Y29uc3QgbD1r'@; put 'QS5nZXQodGhpcyk7bC5pbnB1dC5jaGVja2VkPXRoaXMub3B0aW9ucy5jaGVja2VkLGwubGFiZWwudGV4dENvbnRlbnQ9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5sYWJlbC50ZXh0Q29udGVudCl9aXNDaGVja2VkKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5jaGVja2Vk'@; put 'fXNldENoZWNrZWQoKXt0aGlzLm9wdGlvbnMuY2hlY2tlZD0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdLHRoaXMudXBkYXRlKCl9Zm9jdXMoKXt0aGlzLmlzQnVpbHQoKSYma0EuZ2V0KHRoaXMpLmlucHV0LmZvY3VzKCl9fWNvbnN0'@; put 'IHlpZT1XaixrUGU9Y2xhc3MgRVBlIGV4dGVuZHMgYkF7Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLHtpZDphLmlkLHN0YXRlbGVzczohMX0pLHRoaXMubmFtZT1hLm5hbWUsdGhpcy5idWlsZE9wZXJhdG9yc0VsZW1lbnQoKX1nZXRNZW51SXRlbURlc2NyaXB0b3IoKXtyZXR1cm57a2V5OnRo'@; put 'aXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOigpPT50aGlzLmlzSGlkZGVuKCkscmVuZGVyZXI6KGwsYSk9PihwaShhLnBhcmVudE5vZGUsImh0RmlsdGVyc01lbnVPcGVyYXRvcnMiKSxhLnBhcmVudE5vZGUuaGFzQXR0cmlidXRl'@; put 'KCJnaG9zdC10YWJsZSIpfHxEbih0aGlzLmVsZW1lbnRzLGQ9PmEuYXBwZW5kQ2hpbGQoZC5lbGVtZW50KSksYSl9fWJ1aWxkT3BlcmF0b3JzRWxlbWVudCgpe2NvbnN0IGw9W2U0LEVBXTtEbihsLGE9Pntjb25zdCBkPW5ldyB5aWUodGhpcy5ob3Qse25hbWU6Im9wZXJhdG9yIixsYWJlbDp7'@; put 'aHRtbEZvcjphLHRleHRDb250ZW50OmJQZShhKX0sdmFsdWU6YSxjaGVja2VkOmE9PT1sWzBdLGlkOmF9KTtkLmFkZExvY2FsSG9vaygiY2hhbmdlIixoPT50aGlzLm9uUmFkaW9JbnB1dENoYW5nZShoKSksdGhpcy5lbGVtZW50cy5wdXNoKGQpfSl9c2V0Q2hlY2tlZChsKXtpZih0aGlzLmVs'@; put 'ZW1lbnRzLmxlbmd0aDxsKXRocm93IEVycm9yKEFhYFJhZGlvIGJ1dHRvbiB3aXRoIGluZGV4ICR7bH0gZG9lc24ndCBleGlzdC5gKTtEbih0aGlzLmVsZW1lbnRzLChhLGQpPT57YS5zZXRDaGVja2VkKGQ9PT1sKX0pfWdldEFjdGl2ZU9wZXJhdGlvbklkKCl7Y29uc3QgbD10aGlzLmVsZW1l'@; put 'bnRzLmZpbmQoYT0+YSBpbnN0YW5jZW9mIHlpZSYmYS5pc0NoZWNrZWQoKSk7cmV0dXJuIGw/bC5nZXRWYWx1ZSgpOmU0fWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuZ2V0QWN0aXZlT3BlcmF0aW9uSWQoKX1zZXRTdGF0ZShsKXt0aGlzLnJlc2V0KCksbCYmdGhpcy5nZXRBY3RpdmVPcGVyYXRp'@; put 'b25JZCgpIT09bCYmRG4odGhpcy5lbGVtZW50cyxhPT57YS5zZXRDaGVja2VkKGEuZ2V0VmFsdWUoKT09PWwpfSl9dXBkYXRlU3RhdGUoKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZTQ7ZD09PVlqJiYoZD1FQSksdGhpcy5z'@; put 'dGF0ZS5zZXRWYWx1ZUF0SW5kZXgoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsZCl9cmVzZXQoKXt0aGlzLnNldENoZWNrZWQoMCl9b25SYWRpb0lucHV0Q2hhbmdlKGwpe3RoaXMuc2V0U3RhdGUobC50YXJnZXQudmFsdWUpfX07ZnVuY3Rpb24gVFBlKGMsbCl7bGV0'@; put 'IGE9YztyZXR1cm4iIj09PWEmJihhPWAoJHtsfSlgKSxhfU50ZSgpO2NvbnN0IEdqPW5ldyBTZXQoWzFdKS5oYXMoMSksRFBlPUdqJiYiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXkuZnJvbTtmdW5jdGlvbiBVeShjKXtsZXQgbD1jO3JldHVybiBHaiYmKGw9bmV3IFNldChsKSksZnVuY3Rpb24o'@; put 'YSl7bGV0IGQ7cmV0dXJuIGQ9R2o/bC5oYXMoYSk6ISF+bC5pbmRleE9mKGEpLGR9fWZ1bmN0aW9uIENpZShjKXtyZXR1cm4gYz8/IiJ9ZnVuY3Rpb24gJGooYyl7bGV0IGw9YztyZXR1cm4gbD1EUGU/QXJyYXkuZnJvbShuZXcgU2V0KGwpKTpyTihsKSxsPWwuc29ydCgoYSxkKT0+Im51bWJl'@; put 'ciI9PXR5cGVvZiBhJiYibnVtYmVyIj09dHlwZW9mIGQ/YS1kOmE9PT1kPzA6YT5kPzE6LTEpLGx9ZnVuY3Rpb24gU2llKGMsbCxhLGQpe2NvbnN0IGg9W10sZj1jPT09bDtsZXQgXztyZXR1cm4gZnx8KF89VXkobCkpLERuKGMsVD0+e2xldCBXPSExOyhmfHxfKFQpKSYmKFc9ITApO2NvbnN0'@; put 'IGllPXtjaGVja2VkOlcsdmFsdWU6VCx2aXN1YWxWYWx1ZTpUUGUoVCxhKX07ZCYmZChpZSksaC5wdXNoKGllKX0pLGh9Y29uc3QgcWo9bmV3IFdlYWtNYXA7Y2xhc3MgS2ogZXh0ZW5kcyBRcHtzdGF0aWMgZ2V0IERFRkFVTFRTKCl7cmV0dXJuIFd1KHtocmVmOiIjIix0YWdOYW1lOiJhIn0p'@; put 'fWNvbnN0cnVjdG9yKGwsYSl7c3VwZXIobCxYbChLai5ERUZBVUxUUyxhKSkscWouc2V0KHRoaXMse30pfWJ1aWxkKCl7c3VwZXIuYnVpbGQoKSxxai5nZXQodGhpcykubGluaz10aGlzLl9lbGVtZW50LmZpcnN0Q2hpbGR9dXBkYXRlKCl7dGhpcy5pc0J1aWx0KCkmJihxai5nZXQodGhpcyku'@; put 'bGluay50ZXh0Q29udGVudD10aGlzLnRyYW5zbGF0ZUlmUG9zc2libGUodGhpcy5vcHRpb25zLnRleHRDb250ZW50KSl9fWNvbnN0IE1pZT1LaixJUGU9bmV3IFdlYWtNYXA7Y2xhc3MgWGogZXh0ZW5kcyBRcHtzdGF0aWMgZ2V0IERFRkFVTFRTKCl7cmV0dXJuIFd1KHtjbGFzc05hbWU6Imh0'@; put 'VUlNdWx0aXBsZVNlbGVjdCIsdmFsdWU6W119KX1jb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwsWGwoWGouREVGQVVMVFMsYSkpLElQZS5zZXQodGhpcyx7fSksdGhpcy5zZWFyY2hJbnB1dD1uZXcgSTcodGhpcy5ob3Qse3BsYWNlaG9sZGVyOk9CLGNsYXNzTmFtZToiaHRVSU11bHRpcGxlU2Vs'@; put 'ZWN0U2VhcmNoIn0pLHRoaXMuc2VsZWN0QWxsVUk9bmV3IE1pZSh0aGlzLmhvdCx7dGV4dENvbnRlbnQ6REIsY2xhc3NOYW1lOiJodFVJU2VsZWN0QWxsIn0pLHRoaXMuY2xlYXJBbGxVST1uZXcgTWllKHRoaXMuaG90LHt0ZXh0Q29udGVudDpJQixjbGFzc05hbWU6Imh0VUlDbGVhckFsbCJ9'@; put 'KSx0aGlzLml0ZW1zPVtdLHRoaXMuaXRlbXNCb3g9bnVsbCx0aGlzLnJlZ2lzdGVySG9va3MoKX1yZWdpc3Rlckhvb2tzKCl7dGhpcy5zZWFyY2hJbnB1dC5hZGRMb2NhbEhvb2soImtleWRvd24iLGw9PnRoaXMub25JbnB1dEtleURvd24obCkpLHRoaXMuc2VhcmNoSW5wdXQuYWRkTG9jYWxI'@; put 'b29rKCJpbnB1dCIsbD0+dGhpcy5vbklucHV0KGwpKSx0aGlzLnNlbGVjdEFsbFVJLmFkZExvY2FsSG9vaygiY2xpY2siLGw9PnRoaXMub25TZWxlY3RBbGxDbGljayhsKSksdGhpcy5jbGVhckFsbFVJLmFkZExvY2FsSG9vaygiY2xpY2siLGw9PnRoaXMub25DbGVhckFsbENsaWNrKGwpKX1z'@; put 'ZXRJdGVtcyhsKXt0aGlzLml0ZW1zPWwsdGhpcy5pdGVtc0JveCYmdGhpcy5pdGVtc0JveC5sb2FkRGF0YSh0aGlzLml0ZW1zKX1zZXRMb2NhbGUobCl7dGhpcy5sb2NhbGU9bH1nZXRMb2NhbGUoKXtyZXR1cm4gdGhpcy5sb2NhbGV9Z2V0SXRlbXMoKXtyZXR1cm5bLi4udGhpcy5pdGVtc119'@; put 'Z2V0VmFsdWUoKXtyZXR1cm4gZnVuY3Rpb24gT1BlKGMpe2NvbnN0IGw9W107cmV0dXJuIERuKGMsYT0+e2EuY2hlY2tlZCYmbC5wdXNoKGEudmFsdWUpfSksbH0odGhpcy5pdGVtcyl9aXNTZWxlY3RlZEFsbFZhbHVlcygpe3JldHVybiB0aGlzLml0ZW1zLmxlbmd0aD09PXRoaXMuZ2V0VmFs'@; put 'dWUoKS5sZW5ndGh9YnVpbGQoKXtzdXBlci5idWlsZCgpO2NvbnN0e3Jvb3REb2N1bWVudDpsfT10aGlzLmhvdCxhPWwuY3JlYXRlRWxlbWVudCgiZGl2IiksZD1uZXcgUXAodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRVSVNlbGVjdGlvbkNvbnRyb2xzIixjaGlsZHJlbjpbdGhpcy5zZWxlY3RB'@; put 'bGxVSSx0aGlzLmNsZWFyQWxsVUldfSk7dGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnNlYXJjaElucHV0LmVsZW1lbnQpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoZC5lbGVtZW50KSx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGEpO2NvbnN0IGg9Zj0+e3RoaXMuX2VsZW1l'@; put 'bnQmJih0aGlzLml0ZW1zQm94JiZ0aGlzLml0ZW1zQm94LmRlc3Ryb3koKSxwaShmLCJodFVJTXVsdGlwbGVTZWxlY3RIb3QiKSx0aGlzLml0ZW1zQm94PW5ldyB0aGlzLmhvdC5jb25zdHJ1Y3RvcihmLHtkYXRhOnRoaXMuaXRlbXMsY29sdW1uczpbe2RhdGE6ImNoZWNrZWQiLHR5cGU6ImNo'@; put 'ZWNrYm94IixsYWJlbDp7cHJvcGVydHk6InZpc3VhbFZhbHVlIixwb3NpdGlvbjoiYWZ0ZXIifX1dLGJlZm9yZVJlbmRlcmVyOihXLGllLHBlLHdlLEVlLFplKT0+e1cudGl0bGU9WmUuaW5zdGFuY2UuZ2V0RGF0YUF0Um93UHJvcChpZSxaZS5sYWJlbC5wcm9wZXJ0eSl9LG1heENvbHM6MSxh'@; put 'dXRvV3JhcENvbDohMCxoZWlnaHQ6MTEwLGNvbFdpZHRoczooKT0+dGhpcy5pdGVtc0JveC5jb250YWluZXIuc2Nyb2xsV2lkdGgtTGMobCksY29weVBhc3RlOiExLGRpc2FibGVWaXN1YWxTZWxlY3Rpb246ImFyZWEiLGZpbGxIYW5kbGU6ITEsZnJhZ21lbnRTZWxlY3Rpb246ImNlbGwiLHRh'@; put 'Yk1vdmVzOntyb3c6MSxjb2w6MH0sbGF5b3V0RGlyZWN0aW9uOnRoaXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciJ9KSx0aGlzLml0ZW1zQm94LmluaXQoKSx0aGlzLml0ZW1zQm94LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dCh7a2V5czpbWyJF'@; put 'c2NhcGUiXV0sY2FsbGJhY2s6Vz0+e3RoaXMucnVuTG9jYWxIb29rcygia2V5ZG93biIsVyx0aGlzKX0sZ3JvdXA6Im11bHRpcGxlU2VsZWN0Lml0ZW1Cb3gifSkpfTtoKGEpLHNldFRpbWVvdXQoKCk9PmgoYSksMTAwKX1yZXNldCgpe3RoaXMuc2VhcmNoSW5wdXQucmVzZXQoKSx0aGlzLnNl'@; put 'bGVjdEFsbFVJLnJlc2V0KCksdGhpcy5jbGVhckFsbFVJLnJlc2V0KCl9dXBkYXRlKCl7dGhpcy5pc0J1aWx0KCkmJih0aGlzLml0ZW1zQm94LmxvYWREYXRhKGZ1bmN0aW9uIFJQZShjLGwpe2NvbnN0IGE9VXkobCk7cmV0dXJuIGNzKGMsZD0+KGQuY2hlY2tlZD1hKGQudmFsdWUpLGQpKX0o'@; put 'dGhpcy5pdGVtcyx0aGlzLm9wdGlvbnMudmFsdWUpKSxzdXBlci51cGRhdGUoKSl9ZGVzdHJveSgpe3RoaXMuaXRlbXNCb3gmJnRoaXMuaXRlbXNCb3guZGVzdHJveSgpLHRoaXMuc2VhcmNoSW5wdXQuZGVzdHJveSgpLHRoaXMuY2xlYXJBbGxVSS5kZXN0cm95KCksdGhpcy5zZWxlY3RBbGxV'@; put 'SS5kZXN0cm95KCksdGhpcy5zZWFyY2hJbnB1dD1udWxsLHRoaXMuY2xlYXJBbGxVST1udWxsLHRoaXMuc2VsZWN0QWxsVUk9bnVsbCx0aGlzLml0ZW1zQm94PW51bGwsdGhpcy5pdGVtcz1udWxsLHN1cGVyLmRlc3Ryb3koKX1vbklucHV0KGwpe2NvbnN0IGE9bC50YXJnZXQudmFsdWUudG9M'@; put 'b2NhbGVMb3dlckNhc2UodGhpcy5nZXRMb2NhbGUoKSk7bGV0IGQ7ZD0iIj09PWE/Wy4uLnRoaXMuaXRlbXNdOl8xKHRoaXMuaXRlbXMsaD0+YCR7aC52YWx1ZX1gLnRvTG9jYWxlTG93ZXJDYXNlKHRoaXMuZ2V0TG9jYWxlKCkpLmluZGV4T2YoYSk+PTApLHRoaXMuaXRlbXNCb3gubG9hZERh'@; put 'dGEoZCl9b25JbnB1dEtleURvd24obCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJrZXlkb3duIixsLHRoaXMpLHZOKG83LGwua2V5Q29kZSkoIkFSUk9XX0RPV058VEFCIikmJiF0aGlzLml0ZW1zQm94LmlzTGlzdGVuaW5nKCkmJih2MihsKSx0aGlzLml0ZW1zQm94Lmxpc3RlbigpLHRoaXMuaXRl'@; put 'bXNCb3guc2VsZWN0Q2VsbCgwLDApKX1vblNlbGVjdEFsbENsaWNrKGwpe2NvbnN0IGE9W107bC5wcmV2ZW50RGVmYXVsdCgpLERuKHRoaXMuaXRlbXNCb3guZ2V0U291cmNlRGF0YSgpLChkLGgpPT57ZC5jaGVja2VkPSEwLGEucHVzaChhVihkLGgpWzBdKX0pLHRoaXMuaXRlbXNCb3guc2V0'@; put 'U291cmNlRGF0YUF0Q2VsbChhKX1vbkNsZWFyQWxsQ2xpY2sobCl7Y29uc3QgYT1bXTtsLnByZXZlbnREZWZhdWx0KCksRG4odGhpcy5pdGVtc0JveC5nZXRTb3VyY2VEYXRhKCksKGQsaCk9PntkLmNoZWNrZWQ9ITEsYS5wdXNoKGFWKGQsaClbMF0pfSksdGhpcy5pdGVtc0JveC5zZXRTb3Vy'@; put 'Y2VEYXRhQXRDZWxsKGEpfX1jb25zdCB4aWU9WGosUGc9ImJ5X3ZhbHVlIjtKbChQZyxmdW5jdGlvbiBQUGUoYyxsKXtsZXRbYV09bDtyZXR1cm4gYShjLnZhbHVlKX0se25hbWU6IkJ5IHZhbHVlIixpbnB1dHNDb3VudDowLGlucHV0VmFsdWVzRGVjb3JhdG9yKGMpe2xldFtsXT1jO3JldHVy'@; put 'bltVeShsKV19LHNob3dPcGVyYXRvcnM6ITF9KTtjb25zdCBIUGU9Y2xhc3MgRlBlIGV4dGVuZHMgYkF7Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLHtpZDphLmlkLHN0YXRlbGVzczohMX0pLHRoaXMubmFtZT1hLm5hbWUsdGhpcy5lbGVtZW50cy5wdXNoKG5ldyB4aWUodGhpcy5ob3QpKSx0'@; put 'aGlzLnJlZ2lzdGVySG9va3MoKX1yZWdpc3Rlckhvb2tzKCl7dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soImtleWRvd24iLGw9PnRoaXMub25JbnB1dEtleURvd24obCkpfXNldFN0YXRlKGwpe2lmKHRoaXMucmVzZXQoKSxsJiZsLmNvbW1hbmQua2V5PT09'@; put 'UGcpe2NvbnN0IGE9dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKTthLnNldEl0ZW1zKGwuaXRlbXNTbmFwc2hvdCksYS5zZXRWYWx1ZShsLmFyZ3NbMF0pLGEuc2V0TG9jYWxlKGwubG9jYWxlKX19Z2V0U3RhdGUoKXtjb25zdCBsPXRoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50'@; put 'KCksYT1sLmdldEl0ZW1zKCk7cmV0dXJue2NvbW1hbmQ6e2tleTpsLmlzU2VsZWN0ZWRBbGxWYWx1ZXMoKXx8IWEubGVuZ3RoP0djOlBnfSxhcmdzOltsLmdldFZhbHVlKCldLGl0ZW1zU25hcHNob3Q6YX19dXBkYXRlU3RhdGUobCl7Y29uc3QgYT0oZCxoLGYsXyxUKT0+e2NvbnN0W1ddPV8x'@; put 'KGgsd2U9PndlLm5hbWU9PT1QZyksaWU9e30scGU9dGhpcy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShPayk7aWYoVyl7Y29uc3Qgd2U9JGooY3MoXyhkLFQpLGV0PT5ldC52YWx1ZSkpO2YmJihXLmFyZ3NbMF09Zik7Y29uc3QgRWU9W10sWmU9U2llKHdlLFcuYXJnc1swXSxwZSxldD0+e2V0'@; put 'LmNoZWNrZWQmJkVlLnB1c2goZXQudmFsdWUpfSk7aWUubG9jYWxlPXRoaXMuaG90LmdldENlbGxNZXRhKDAsbC5lZGl0ZWRDb25kaXRpb25TdGFjay5jb2x1bW4pLmxvY2FsZSxpZS5hcmdzPVtFZV0saWUuY29tbWFuZD1PZyhQZyksaWUuaXRlbXNTbmFwc2hvdD1aZX1lbHNlIGllLmFyZ3M9'@; put 'W10saWUuY29tbWFuZD1PZyhHYyk7dGhpcy5zdGF0ZS5zZXRWYWx1ZUF0SW5kZXgoZCxpZSl9O2EobC5lZGl0ZWRDb25kaXRpb25TdGFjay5jb2x1bW4sbC5lZGl0ZWRDb25kaXRpb25TdGFjay5jb25kaXRpb25zLGwuY29uZGl0aW9uQXJnc0NoYW5nZSxsLmZpbHRlcmVkUm93c0ZhY3Rvcnkp'@; put 'LGwuZGVwZW5kZW50Q29uZGl0aW9uU3RhY2tzLmxlbmd0aCYmYShsLmRlcGVuZGVudENvbmRpdGlvblN0YWNrc1swXS5jb2x1bW4sbC5kZXBlbmRlbnRDb25kaXRpb25TdGFja3NbMF0uY29uZGl0aW9ucyxsLmNvbmRpdGlvbkFyZ3NDaGFuZ2UsbC5maWx0ZXJlZFJvd3NGYWN0b3J5LGwuZWRp'@; put 'dGVkQ29uZGl0aW9uU3RhY2spfWdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpe3JldHVybiB0aGlzLmVsZW1lbnRzLmZpbHRlcihsPT5sIGluc3RhbmNlb2YgeGllKVswXX1nZXRNZW51SXRlbURlc2NyaXB0b3IoKXtyZXR1cm57a2V5OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5k'@; put 'OiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOigpPT50aGlzLmlzSGlkZGVuKCkscmVuZGVyZXI6KGwsYSxkLGgsZixfKT0+e3BpKGEucGFyZW50Tm9kZSwiaHRGaWx0ZXJzTWVudVZhbHVlIik7Y29uc3QgVD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7'@; put 'cmV0dXJuIHBpKFQsImh0RmlsdGVyc01lbnVMYWJlbCIpLFQudGV4dENvbnRlbnQ9XyxhLmFwcGVuZENoaWxkKFQpLGEucGFyZW50Tm9kZS5oYXNBdHRyaWJ1dGUoImdob3N0LXRhYmxlIil8fERuKHRoaXMuZWxlbWVudHMsVz0+YS5hcHBlbmRDaGlsZChXLmVsZW1lbnQpKSxhfX19cmVzZXQo'@; put 'KXtjb25zdCBsPXRoaXMuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UoT2spLGE9JGoodGhpcy5fZ2V0Q29sdW1uVmlzaWJsZVZhbHVlcygpKSxkPVNpZShhLGEsbCk7dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKS5zZXRJdGVtcyhkKSxzdXBlci5yZXNldCgpLHRoaXMuZ2V0TXVsdGlw'@; put 'bGVTZWxlY3RFbGVtZW50KCkuc2V0VmFsdWUoYSk7Y29uc3QgaD10aGlzLmhvdC5nZXRQbHVnaW4oImZpbHRlcnMiKS5nZXRTZWxlY3RlZENvbHVtbigpO251bGwhPT1oJiZ0aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLnNldExvY2FsZSh0aGlzLmhvdC5nZXRDZWxsTWV0YSgwLGgu'@; put 'dmlzdWFsSW5kZXgpLmxvY2FsZSl9b25JbnB1dEtleURvd24obCl7bzcobC5rZXlDb2RlLCJFU0NBUEUiKSYmKHRoaXMucnVuTG9jYWxIb29rcygiY2FuY2VsIiksdjIobCkpfV9nZXRDb2x1bW5WaXNpYmxlVmFsdWVzKCl7Y29uc3QgbD10aGlzLmhvdC5nZXRQbHVnaW4oImZpbHRlcnMiKS5n'@; put 'ZXRTZWxlY3RlZENvbHVtbigpO3JldHVybiBudWxsPT09bD9bXTpjcyh0aGlzLmhvdC5nZXREYXRhQXRDb2wobC52aXN1YWxJbmRleCksYT0+Q2llKGEpKX19O2NsYXNzIFp5IGV4dGVuZHMgYkF7c3RhdGljIGdldCBCVVRUT05fT0soKXtyZXR1cm4ib2sifXN0YXRpYyBnZXQgQlVUVE9OX0NB'@; put 'TkNFTCgpe3JldHVybiJjYW5jZWwifWNvbnN0cnVjdG9yKGwsYSl7c3VwZXIobCx7aWQ6YS5pZCxzdGF0ZWxlc3M6ITB9KSx0aGlzLm5hbWU9YS5uYW1lLHRoaXMuZWxlbWVudHMucHVzaChuZXcgSTcodGhpcy5ob3Qse3R5cGU6ImJ1dHRvbiIsdmFsdWU6TEIsY2xhc3NOYW1lOiJodFVJQnV0'@; put 'dG9uIGh0VUlCdXR0b25PSyIsaWRlbnRpZmllcjpaeS5CVVRUT05fT0t9KSksdGhpcy5lbGVtZW50cy5wdXNoKG5ldyBJNyh0aGlzLmhvdCx7dHlwZToiYnV0dG9uIix2YWx1ZTpSQixjbGFzc05hbWU6Imh0VUlCdXR0b24gaHRVSUJ1dHRvbkNhbmNlbCIsaWRlbnRpZmllcjpaeS5CVVRUT05f'@; put 'Q0FOQ0VMfSkpLHRoaXMucmVnaXN0ZXJIb29rcygpfXJlZ2lzdGVySG9va3MoKXtEbih0aGlzLmVsZW1lbnRzLGw9PntsLmFkZExvY2FsSG9vaygiY2xpY2siLChhLGQpPT50aGlzLm9uQnV0dG9uQ2xpY2soYSxkKSl9KX1nZXRNZW51SXRlbURlc2NyaXB0b3IoKXtyZXR1cm57a2V5OnRoaXMu'@; put 'aWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOigpPT50aGlzLmlzSGlkZGVuKCkscmVuZGVyZXI6KGwsYSk9PihwaShhLnBhcmVudE5vZGUsImh0RmlsdGVyc01lbnVBY3Rpb25CYXIiKSxhLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCJn'@; put 'aG9zdC10YWJsZSIpfHxEbih0aGlzLmVsZW1lbnRzLGQ9PmEuYXBwZW5kQ2hpbGQoZC5lbGVtZW50KSksYSl9fWFjY2VwdCgpe3RoaXMucnVuTG9jYWxIb29rcygiYWNjZXB0Iil9Y2FuY2VsKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJjYW5jZWwiKX1vbkJ1dHRvbkNsaWNrKGwsYSl7YS5vcHRp'@; put 'b25zLmlkZW50aWZpZXI9PT1aeS5CVVRUT05fT0s/dGhpcy5hY2NlcHQoKTp0aGlzLmNhbmNlbCgpfX1jb25zdCBOUGU9WnksRWllPSJDb25kaXRpb25Db2xsZWN0aW9uLmZpbHRlcmluZ1N0YXRlcyI7Y2xhc3Mga2lle2NvbnN0cnVjdG9yKGwpe2xldCBhPSEoYXJndW1lbnRzLmxlbmd0aD4x'@; put 'JiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07dGhpcy5ob3Q9bCx0aGlzLmlzTWFwUmVnaXN0cmFibGU9YSx0aGlzLmZpbHRlcmluZ1N0YXRlcz1uZXcgRWssITA9PT10aGlzLmlzTWFwUmVnaXN0cmFibGU/dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJN'@; put 'YXAoRWllLHRoaXMuZmlsdGVyaW5nU3RhdGVzKTp0aGlzLmZpbHRlcmluZ1N0YXRlcy5pbml0KHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE51bWJlck9mSW5kZXhlcygpKX1pc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmdldEZpbHRlcmVkQ29sdW1ucygpLmxlbmd0aH1pc01hdGNo'@; put 'KGwsYSl7dmFyIGQ7Y29uc3QgaD10aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgoYSksZj1udWxsIT09KGQ9aD8uY29uZGl0aW9ucykmJnZvaWQgMCE9PWQ/ZDpbXSxfPWg/Lm9wZXJhdGlvbjtyZXR1cm4gdGhpcy5pc01hdGNoSW5Db25kaXRpb25zKGYsbCxfKX1pc01hdGNo'@; put 'SW5Db25kaXRpb25zKGwsYSl7cmV0dXJuIWwubGVuZ3RofHxmdW5jdGlvbiBfUGUoYyl7aWYoIXp5W2NdKXRocm93IEVycm9yKGBPcGVyYXRpb24gd2l0aCBpZCAiJHtjfSIgZG9lcyBub3QgZXhpc3QuYCk7Y29uc3QgbD16eVtjXS5mdW5jO3JldHVybiBmdW5jdGlvbihhLGQpe3JldHVybiBs'@; put 'KGEsZCl9fShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ZTQpKGwsYSl9YWRkQ29uZGl0aW9uKGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmU0LGg9YXJndW1lbnRz'@; put 'Lmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDA7Y29uc3QgZj10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLGwpLmxvY2FsZSxfPWNzKGEuYXJncyxwZT0+InN0cmluZyI9PXR5cGVvZiBwZT9wZS50b0xvY2FsZUxvd2VyQ2FzZShmKTpwZSksVD1hLm5hbWV8fGEuY29tbWFuZC5rZXk7dGhpcy5y'@; put 'dW5Mb2NhbEhvb2tzKCJiZWZvcmVBZGQiLGwpO2NvbnN0IFc9dGhpcy5nZXRPcGVyYXRpb24obCk7aWYoVyl7aWYoVyE9PWQpdGhyb3cgRXJyb3IoQWFgVGhlIGNvbHVtbiBvZiBpbmRleCAke2x9IGhhcyBiZWVuIGFscmVhZHkgYXBwbGllZCB3aXRoIGEgXGAke1d9XGBceDIwCiAgICAgICAg'@; put 'ZmlsdGVyIG9wZXJhdGlvbi4gVXNlIFxgcmVtb3ZlQ29uZGl0aW9uc1xgIHRvIGNsZWFyIHRoZSBjdXJyZW50IGNvbmRpdGlvbnMgYW5kIHRoZW4gYWRkIG5ldyBvbmVzLlx4MjAKICAgICAgICBNaW5kIHRoYXQgeW91IGNhbm5vdCBtaXggZGlmZmVyZW50IHR5cGVzIG9mIG9wZXJhdGlvbnMg'@; put 'KGZvciBpbnN0YW5jZSwgaWYgeW91IHVzZSBcYGNvbmp1bmN0aW9uXGAsXHgyMAogICAgICAgIHVzZSBpdCBjb25zZXF1ZW50bHkgZm9yIGEgcGFydGljdWxhciBjb2x1bW4pLmApfWVsc2UgaWYoTGEoenlbZF0pKXRocm93IG5ldyBFcnJvcihBYWBVbmV4cGVjdGVkIG9wZXJhdGlvbiBuYW1l'@; put 'ZCBcYCR7ZH1cYC4gUG9zc2libGUgb25lcyBhcmVceDIwCiAgICAgICAgXGBkaXNqdW5jdGlvblxgIGFuZCBcYGNvbmp1bmN0aW9uXGAuYCk7Y29uc3QgaWU9dGhpcy5nZXRDb25kaXRpb25zKGwpOzA9PT1pZS5sZW5ndGg/dGhpcy5maWx0ZXJpbmdTdGF0ZXMuc2V0VmFsdWVBdEluZGV4KGws'@; put 'e29wZXJhdGlvbjpkLGNvbmRpdGlvbnM6W3tuYW1lOlQsYXJnczpfLGZ1bmM6SnAoVCxfKX1dfSxoKTppZS5wdXNoKHtuYW1lOlQsYXJnczpfLGZ1bmM6SnAoVCxfKX0pLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJBZGQiLGwpfWdldENvbmRpdGlvbnMobCl7dmFyIGEsZDtyZXR1cm4gbnVs'@; put 'bCE9PShhPW51bGw9PT0oZD10aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgobCkpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLmNvbmRpdGlvbnMpJiZ2b2lkIDAhPT1hP2E6W119Z2V0T3BlcmF0aW9uKGwpe3ZhciBhO3JldHVybiBudWxsPT09KGE9dGhpcy5maWx0ZXJpbmdTdGF0'@; put 'ZXMuZ2V0VmFsdWVBdEluZGV4KGwpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5vcGVyYXRpb259Z2V0RmlsdGVyZWRDb2x1bW5zKCl7cmV0dXJuIHRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldEVudHJpZXMoKS5tYXAobD0+e2xldFthXT1sO3JldHVybiBhfSl9Z2V0Q29sdW1uU3RhY2tQb3NpdGlv'@; put 'bihsKXtyZXR1cm4gdGhpcy5nZXRGaWx0ZXJlZENvbHVtbnMoKS5pbmRleE9mKGwpfWV4cG9ydEFsbENvbmRpdGlvbnMoKXtyZXR1cm4gQWwodGhpcy5maWx0ZXJpbmdTdGF0ZXMuZ2V0RW50cmllcygpLChsLGEpPT57bGV0W2Qse29wZXJhdGlvbjpoLGNvbmRpdGlvbnM6Zn1dPWE7cmV0dXJu'@; put 'IGwucHVzaCh7Y29sdW1uOmQsb3BlcmF0aW9uOmgsY29uZGl0aW9uczpjcyhmLF89PntsZXR7bmFtZTpULGFyZ3M6V309XztyZXR1cm57bmFtZTpULGFyZ3M6V319KX0pLGx9LFtdKX1pbXBvcnRBbGxDb25kaXRpb25zKGwpe3RoaXMuY2xlYW4oKSxEbihsLGE9PntEbihhLmNvbmRpdGlvbnMs'@; put 'ZD0+dGhpcy5hZGRDb25kaXRpb24oYS5jb2x1bW4sZCkpfSl9cmVtb3ZlQ29uZGl0aW9ucyhsKXt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVJlbW92ZSIsbCksdGhpcy5maWx0ZXJpbmdTdGF0ZXMuY2xlYXJWYWx1ZShsKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyUmVtb3ZlIixsKX1j'@; put 'bGVhbigpe3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlQ2xlYW4iKSx0aGlzLmZpbHRlcmluZ1N0YXRlcy5jbGVhcigpLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJDbGVhbiIpfWhhc0NvbmRpdGlvbnMobCxhKXtjb25zdCBkPXRoaXMuZ2V0Q29uZGl0aW9ucyhsKTtyZXR1cm4gYT9kLnNv'@; put 'bWUoaD0+aC5uYW1lPT09YSk6ZC5sZW5ndGg+MH1kZXN0cm95KCl7dGhpcy5pc01hcFJlZ2lzdHJhYmxlJiZ0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKEVpZSksdGhpcy5maWx0ZXJpbmdTdGF0ZXM9bnVsbCx0aGlzLmNsZWFyTG9jYWxIb29rcygpfX1UYShraWUs'@; put 'TzApO2NvbnN0IEFpZT1raWUsVGllPWNsYXNzIFZQZXtjb25zdHJ1Y3RvcihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06KCk9PltdO3RoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1sLHRoaXMuY29sdW1uRGF0YUZhY3Rvcnk9'@; put 'YX1maWx0ZXIoKXtsZXQgbD1bXTtyZXR1cm4gRG4odGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldEZpbHRlcmVkQ29sdW1ucygpLChhLGQpPT57bGV0IGg9dGhpcy5jb2x1bW5EYXRhRmFjdG9yeShhKTtkJiYoaD10aGlzLl9nZXRJbnRlcnNlY3REYXRhKGgsbCkpLGw9dGhpcy5maWx0ZXJC'@; put 'eUNvbHVtbihhLGgpfSksbH1maWx0ZXJCeUNvbHVtbihsKXtjb25zdCBkPVtdO3JldHVybiBEbihhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saD0+e3ZvaWQgMCE9PWgmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5pc01hdGNoKGgs'@; put 'bCkmJmQucHVzaChoKX0pLGR9X2dldEludGVyc2VjdERhdGEobCxhKXtjb25zdCBkPVtdO3JldHVybiBEbihhLGg9Pntjb25zdCBmPWgubWV0YS52aXN1YWxSb3c7dm9pZCAwIT09bFtmXSYmKGRbZl09bFtmXSl9KSxkfX07Y2xhc3MgRGlle2NvbnN0cnVjdG9yKGwsYSl7bGV0IGQ9YXJndW1l'@; put 'bnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOigpPT5bXTt0aGlzLmhvdD1sLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1hLHRoaXMuY29sdW1uRGF0YUZhY3Rvcnk9ZCx0aGlzLmNoYW5nZXM9W10sdGhpcy5ncm91cGluZz0hMSx0aGlzLmxhdGVzdEVk'@; put 'aXRlZENvbHVtblBvc2l0aW9uPS0xLHRoaXMubGF0ZXN0T3JkZXJTdGFjaz1bXSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVSZW1vdmUiLGg9PnRoaXMuX29uQ29uZGl0aW9uQmVmb3JlTW9kaWZ5KGgpKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRk'@; put 'TG9jYWxIb29rKCJhZnRlclJlbW92ZSIsaD0+dGhpcy51cGRhdGVTdGF0ZXNBdENvbHVtbihoKSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZExvY2FsSG9vaygiYWZ0ZXJBZGQiLGg9PnRoaXMudXBkYXRlU3RhdGVzQXRDb2x1bW4oaCkpLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5h'@; put 'ZGRMb2NhbEhvb2soImJlZm9yZUNsZWFuIiwoKT0+dGhpcy5fb25Db25kaXRpb25CZWZvcmVDbGVhbigpKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlckNsZWFuIiwoKT0+dGhpcy5fb25Db25kaXRpb25BZnRlckNsZWFuKCkpfWdyb3VwQ2hhbmdlcygpe3Ro'@; put 'aXMuZ3JvdXBpbmc9ITB9Zmx1c2goKXt0aGlzLmdyb3VwaW5nPSExLERuKHRoaXMuY2hhbmdlcyxsPT57dGhpcy51cGRhdGVTdGF0ZXNBdENvbHVtbihsKX0pLHRoaXMuY2hhbmdlcy5sZW5ndGg9MH1fb25Db25kaXRpb25CZWZvcmVNb2RpZnkobCl7dGhpcy5sYXRlc3RFZGl0ZWRDb2x1bW5Q'@; put 'b3NpdGlvbj10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0Q29sdW1uU3RhY2tQb3NpdGlvbihsKX11cGRhdGVTdGF0ZXNBdENvbHVtbihsLGEpe3ZhciBkPXRoaXM7aWYodGhpcy5ncm91cGluZylyZXR1cm4gdm9pZCgtMT09PXRoaXMuY2hhbmdlcy5pbmRleE9mKGwpJiZ0aGlzLmNoYW5n'@; put 'ZXMucHVzaChsKSk7Y29uc3QgaD10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZXhwb3J0QWxsQ29uZGl0aW9ucygpO2xldCBmPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRDb2x1bW5TdGFja1Bvc2l0aW9uKGwpOy0xPT09ZiYmKGY9dGhpcy5sYXRlc3RFZGl0ZWRDb2x1bW5Qb3NpdGlv'@; put 'bik7Y29uc3QgXz1oLnNsaWNlKDAsZiksVD1oLnNsaWNlKGYpO1QubGVuZ3RoJiZUWzBdLmNvbHVtbj09PWwmJlQuc2hpZnQoKTtjb25zdCBXPW10ZShmdW5jdGlvbihwZSx3ZSl7bGV0IEVlPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpb'@; put 'XTtjb25zdCBaZT1uZXcgQWllKGQuaG90LCExKSxpdD1bXS5jb25jYXQocGUsRWUpO1plLmltcG9ydEFsbENvbmRpdGlvbnMoaXQpO2NvbnN0IGV0PWQuY29sdW1uRGF0YUZhY3Rvcnkod2UpO2xldCB5dDt5dD1aZS5pc0VtcHR5KCk/ZXQ6bmV3IFRpZShaZSxTdD0+ZC5jb2x1bW5EYXRhRmFj'@; put 'dG9yeShTdCkpLmZpbHRlcigpLHl0PWNzKHl0LFN0PT5TdC5tZXRhLnZpc3VhbFJvdyk7Y29uc3QgRXQ9VXkoeXQpO3JldHVybiBaZS5kZXN0cm95KCksXzEoZXQsU3Q9PkV0KFN0Lm1ldGEudmlzdWFsUm93KSl9KShfKSxpZT1bXS5jb25jYXQodGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdl'@; put 'dENvbmRpdGlvbnMobCkpO3RoaXMucnVuTG9jYWxIb29rcygidXBkYXRlIix7ZWRpdGVkQ29uZGl0aW9uU3RhY2s6e2NvbHVtbjpsLGNvbmRpdGlvbnM6aWV9LGRlcGVuZGVudENvbmRpdGlvblN0YWNrczpULGZpbHRlcmVkUm93c0ZhY3Rvcnk6Vyxjb25kaXRpb25BcmdzQ2hhbmdlOmF9KX1f'@; put 'b25Db25kaXRpb25CZWZvcmVDbGVhbigpe3RoaXMubGF0ZXN0T3JkZXJTdGFjaz10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0RmlsdGVyZWRDb2x1bW5zKCl9X29uQ29uZGl0aW9uQWZ0ZXJDbGVhbigpe0RuKHRoaXMubGF0ZXN0T3JkZXJTdGFjayxsPT57dGhpcy51cGRhdGVTdGF0ZXNB'@; put 'dENvbHVtbihsKX0pfWRlc3Ryb3koKXt0aGlzLmNsZWFyTG9jYWxIb29rcygpLGRzKHRoaXMsKGwsYSk9Pnt0aGlzW2FdPW51bGx9KX19VGEoRGllLE8wKTtjb25zdCBCUGU9RGllO2NsYXNzIHpQZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiJmaWx0ZXJzIn1z'@; put 'dGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyNTB9c3RhdGljIGdldCBQTFVHSU5fREVQUygpe3JldHVyblsicGx1Z2luOkRyb3Bkb3duTWVudSIsInBsdWdpbjpIaWRkZW5Sb3dzIiwiY2VsbC10eXBlOmNoZWNrYm94Il19Y29uc3RydWN0b3IobCl7c3VwZXIobCksdGhpcy5l'@; put 'dmVudE1hbmFnZXI9bmV3IGxsKHRoaXMpLHRoaXMuZHJvcGRvd25NZW51UGx1Z2luPW51bGwsdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uPW51bGwsdGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlcj1udWxsLHRoaXMuY29tcG9uZW50cz1uZXcgTWFwKFtbImZpbHRlcl9ieV9jb25kaXRpb24i'@; put 'LG51bGxdLFsiZmlsdGVyX29wZXJhdG9ycyIsbnVsbF0sWyJmaWx0ZXJfYnlfY29uZGl0aW9uMiIsbnVsbF0sWyJmaWx0ZXJfYnlfdmFsdWUiLG51bGxdLFsiZmlsdGVyX2FjdGlvbl9iYXIiLG51bGxdXSksdGhpcy5maWx0ZXJzUm93c01hcD1udWxsLHRoaXMuaG90LmFkZEhvb2soImFmdGVy'@; put 'R2V0Q29sSGVhZGVyIiwoYSxkKT0+dGhpcy5vbkFmdGVyR2V0Q29sSGVhZGVyKGEsZCkpfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maWx0ZXJzfWVuYWJsZVBsdWdpbigpe2lmKHRoaXMuZW5hYmxlZClyZXR1cm47dGhpcy5maWx0ZXJzUm93c01hcD10aGlz'@; put 'LmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsbmV3IG15KSx0aGlzLmRyb3Bkb3duTWVudVBsdWdpbj10aGlzLmhvdC5nZXRQbHVnaW4oImRyb3Bkb3duTWVudSIpO2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5kcm9wZG93bk1lbnUsYT1sJiZs'@; put 'LnVpQ29udGFpbmVyfHx0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keSxkPV89PihfLmFkZExvY2FsSG9vaygiYWNjZXB0IiwoKT0+dGhpcy5vbkFjdGlvbkJhclN1Ym1pdCgiYWNjZXB0IikpLF8uYWRkTG9jYWxIb29rKCJjYW5jZWwiLCgpPT50aGlzLm9uQWN0aW9uQmFyU3VibWl0KCJjYW5j'@; put 'ZWwiKSksXy5hZGRMb2NhbEhvb2soImNoYW5nZSIsVD0+dGhpcy5vbkNvbXBvbmVudENoYW5nZShfLFQpKSxfKSxoPSgpPT5gJHt0aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKGtCKX06YDtpZighdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIpKXtjb25zdCBf'@; put 'PW5ldyBVaih0aGlzLmhvdCx7aWQ6ImZpbHRlcl9ieV9jb25kaXRpb24iLG5hbWU6aCxhZGRTZXBhcmF0b3I6ITEsbWVudUNvbnRhaW5lcjphfSk7Xy5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLCgpPT50aGlzLm9uU2VsZWN0VUlDbG9zZWQoKSksdGhpcy5jb21wb25lbnRzLnNldCgiZmls'@; put 'dGVyX2J5X2NvbmRpdGlvbiIsZChfKSl9aWYodGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIpfHx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfb3BlcmF0b3JzIixuZXcga1BlKHRoaXMuaG90LHtpZDoiZmlsdGVyX29wZXJhdG9ycyIsbmFtZToiT3BlcmF0b3JzIn0p'@; put 'KSwhdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKSl7Y29uc3QgXz1uZXcgVWoodGhpcy5ob3Qse2lkOiJmaWx0ZXJfYnlfY29uZGl0aW9uMiIsbmFtZToiIixhZGRTZXBhcmF0b3I6ITAsbWVudUNvbnRhaW5lcjphfSk7Xy5hZGRMb2NhbEhvb2soImFmdGVyQ2xv'@; put 'c2UiLCgpPT50aGlzLm9uU2VsZWN0VUlDbG9zZWQoKSksdGhpcy5jb21wb25lbnRzLnNldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiLGQoXykpfXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV92YWx1ZSIpfHx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfYnlfdmFsdWUiLGQobmV3'@; put 'IEhQZSh0aGlzLmhvdCx7aWQ6ImZpbHRlcl9ieV92YWx1ZSIsbmFtZTooKT0+YCR7dGhpcy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShBQil9OmB9KSkpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9hY3Rpb25fYmFyIil8fHRoaXMuY29tcG9uZW50cy5zZXQoImZpbHRlcl9hY3Rpb25f'@; put 'YmFyIixkKG5ldyBOUGUodGhpcy5ob3Qse2lkOiJmaWx0ZXJfYWN0aW9uX2JhciIsbmFtZToiQWN0aW9uIGJhciJ9KSkpLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbnx8KHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1uZXcgQWllKHRoaXMuaG90KSksdGhpcy5jb25kaXRpb25VcGRhdGVPYnNl'@; put 'cnZlcnx8KHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXI9bmV3IEJQZSh0aGlzLmhvdCx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24sXz0+dGhpcy5nZXREYXRhTWFwQXRDb2x1bW4oXykpLHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIuYWRkTG9jYWxIb29rKCJ1cGRhdGUiLF89PnRo'@; put 'aXMudXBkYXRlQ29tcG9uZW50cyhfKSkpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKF89Pl8uc2hvdygpKSx0aGlzLmFkZEhvb2soImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixfPT50aGlzLm9uQmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMoXykpLHRoaXMuYWRkSG9vaygiYWZ0ZXJE'@; put 'cm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyIsXz0+dGhpcy5vbkFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMoXykpLHRoaXMuYWRkSG9vaygiYWZ0ZXJEcm9wZG93bk1lbnVTaG93IiwoKT0+dGhpcy5vbkFmdGVyRHJvcGRvd25NZW51U2hvdygpKSx0aGlzLmFkZEhvb2soImFmdGVy'@; put 'RHJvcGRvd25NZW51SGlkZSIsKCk9PnRoaXMub25BZnRlckRyb3Bkb3duTWVudUhpZGUoKSksdGhpcy5hZGRIb29rKCJhZnRlckNoYW5nZSIsXz0+dGhpcy5vbkFmdGVyQ2hhbmdlKF8pKSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmRyb3Bkb3duTWVudSYmdGhpcy5kcm9wZG93bk1lbnVQbHVn'@; put 'aW4mJih0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5kaXNhYmxlUGx1Z2luKCksdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4uZW5hYmxlUGx1Z2luKCkpLHN1cGVyLmVuYWJsZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXt2YXIgbDt0aGlzLmVuYWJsZWQmJihudWxsIT09KGw9dGhpcy5kcm9wZG93'@; put 'bk1lbnVQbHVnaW4pJiZ2b2lkIDAhPT1sJiZsLmVuYWJsZWQmJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuY2xlYXJMb2NhbEhvb2tzKCksdGhpcy5jb21wb25lbnRzLmZvckVhY2goKGEsZCk9PnthLmRlc3Ryb3koKSx0aGlzLmNvbXBvbmVudHMuc2V0KGQsbnVsbCl9KSx0aGlzLmNv'@; put 'bmRpdGlvbkNvbGxlY3Rpb24uZGVzdHJveSgpLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1udWxsLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSksc3VwZXIuZGlzYWJsZVBsdWdpbigpfWFkZENvbmRpdGlvbihsLGEsZCl7bGV0IGg9YXJn'@; put 'dW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOmU0O2NvbnN0IGY9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKTt0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkQ29uZGl0aW9uKGYse2NvbW1hbmQ6e2tleTphfSxhcmdzOmR9LGgpfXJlbW92'@; put 'ZUNvbmRpdGlvbnMobCl7Y29uc3QgYT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpO3RoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5yZW1vdmVDb25kaXRpb25zKGEpfWNsZWFyQ29uZGl0aW9ucyhsKXtpZih2b2lkIDA9PT1sKXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5jbGVhbigpO2Vs'@; put 'c2V7Y29uc3QgYT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpO3RoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5yZW1vdmVDb25kaXRpb25zKGEpfX1maWx0ZXIoKXtjb25zdCBsPXRoaXMuX2NyZWF0ZURhdGFGaWx0ZXIoKSxhPSF0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uaXNFbXB0eSgp'@; put 'O2xldCBkPVtdO2NvbnN0IGg9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmV4cG9ydEFsbENvbmRpdGlvbnMoKTtpZighMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVGaWx0ZXIiLGgpKWlmKGEpe2NvbnN0IF89W107dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9Pnt0aGlzLmZpbHRl'@; put 'cnNSb3dzTWFwLmNsZWFyKCksZD1jcyhsLmZpbHRlcigpLFc9PlcubWV0YS52aXN1YWxSb3cpO2NvbnN0IFQ9VXkoZCk7dm8odGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCktMSxXPT57VChXKXx8Xy5wdXNoKFcpfSksRG4oXyxXPT57dGhpcy5maWx0ZXJzUm93c01hcC5zZXRWYWx1ZUF0SW5k'@; put 'ZXgoVywhMCl9KX0sITApLGQubGVuZ3RofHx0aGlzLmhvdC5kZXNlbGVjdENlbGwoKX1lbHNlIHRoaXMuZmlsdGVyc1Jvd3NNYXAuY2xlYXIoKTt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJGaWx0ZXIiLGgpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSx0aGlzLmhvdC5y'@; put 'ZW5kZXIoKSx0aGlzLmNsZWFyQ29sdW1uU2VsZWN0aW9uKCl9Z2V0U2VsZWN0ZWRDb2x1bW4oKXt2YXIgbDtjb25zdCBhPW51bGw9PT0obD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09bD92b2lkIDA6bC5oaWdobGlnaHQ7cmV0dXJuIGE/e3Zpc3VhbEluZGV4'@; put 'OmEuY29sLHBoeXNpY2FsSW5kZXg6dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihhLmNvbCl9Om51bGx9Y2xlYXJDb2x1bW5TZWxlY3Rpb24oKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRDb2x1bW4oKTtudWxsIT09bCYmdGhpcy5ob3Quc2VsZWN0Q2VsbCgwLGwudmlzdWFsSW5kZXgpfWdl'@; put 'dERhdGFNYXBBdENvbHVtbihsKXtjb25zdCBhPXRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKGwpLGQ9W107cmV0dXJuIERuKHRoaXMuaG90LmdldFNvdXJjZURhdGFBdENvbChhKSwoaCxmKT0+e3ZhciBfO2NvbnN0e3JvdzpULGNvbDpXLHZpc3VhbENvbDppZSx2aXN1YWxSb3c6cGUsdHlwZTp3'@; put 'ZSxpbnN0YW5jZTpFZSxkYXRlRm9ybWF0OlplLGxvY2FsZTppdH09dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoZixhKSxldD1udWxsIT09KF89dGhpcy5ob3QuZ2V0RGF0YUF0Q2VsbCh0aGlzLmhvdC50b1Zpc3VhbFJvdyhmKSxhKSkmJnZvaWQgMCE9PV8/XzpoO2QucHVzaCh7bWV0YTp7cm93OlQs'@; put 'Y29sOlcsdmlzdWFsQ29sOmllLHZpc3VhbFJvdzpwZSx0eXBlOndlLGluc3RhbmNlOkVlLGRhdGVGb3JtYXQ6WmUsbG9jYWxlOml0fSx2YWx1ZTpDaWUoZXQpfSl9KSxkfW9uQWZ0ZXJDaGFuZ2UobCl7bCYmRG4obCxhPT57Y29uc3RbLGRdPWEsaD10aGlzLmhvdC5wcm9wVG9Db2woZCk7dGhp'@; put 'cy5jb25kaXRpb25Db2xsZWN0aW9uLmhhc0NvbmRpdGlvbnMoaCkmJnRoaXMudXBkYXRlVmFsdWVDb21wb25lbnRDb25kaXRpb24oaCl9KX11cGRhdGVWYWx1ZUNvbXBvbmVudENvbmRpdGlvbihsKXtjb25zdCBkPSRqKHRoaXMuaG90LmdldERhdGFBdENvbChsKSk7dGhpcy5jb25kaXRpb25V'@; put 'cGRhdGVPYnNlcnZlci51cGRhdGVTdGF0ZXNBdENvbHVtbihsLGQpfXJlc3RvcmVDb21wb25lbnRzKGwpe3ZhciBhO2NvbnN0IGQ9bnVsbD09PShhPXRoaXMuZ2V0U2VsZWN0ZWRDb2x1bW4oKSl8fHZvaWQgMD09PWE/dm9pZCAwOmEucGh5c2ljYWxJbmRleDtsLmZvckVhY2goaD0+e2guaXNI'@; put 'aWRkZW4oKXx8aC5yZXN0b3JlU3RhdGUoZCl9KSx0aGlzLnVwZGF0ZURlcGVuZGVudENvbXBvbmVudHNWaXNpYmlsaXR5KCl9b25BZnRlckRyb3Bkb3duTWVudVNob3coKXt0aGlzLnJlc3RvcmVDb21wb25lbnRzKEFycmF5LmZyb20odGhpcy5jb21wb25lbnRzLnZhbHVlcygpKSl9b25BZnRl'@; put 'ckRyb3Bkb3duTWVudUhpZGUoKXt0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3NlT3B0aW9ucygpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3Nl'@; put 'T3B0aW9ucygpfW9uQmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMoKXt0aGlzLmRyb3Bkb3duTWVudVBsdWdpbiYmdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4ubWVudS5hZGRMb2NhbEhvb2soImFmdGVyT3BlbiIsKCk9Pnt0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5tZW51LmhvdE1lbnUudXBk'@; put 'YXRlU2V0dGluZ3Moe2hpZGRlblJvd3M6ITB9KX0pfW9uQWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyhsKXtsLml0ZW1zLnB1c2goe25hbWU6Z3N9KSx0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChhPT57bC5pdGVtcy5wdXNoKGEuZ2V0TWVudUl0ZW1EZXNjcmlwdG9yKCkpfSl9Z2V0'@; put 'T3BlcmF0aW9uQmFzZWRPbkFyZ3VtZW50cyhsLGEsZCxoKXtsZXQgZj1sO3JldHVybiBmPT09RUEmJmEuY29tbWFuZC5rZXkhPT1HYyYmZC5jb21tYW5kLmtleSE9PUdjJiZoLmNvbW1hbmQua2V5IT09R2M/Zj1ZajpoLmNvbW1hbmQua2V5IT09R2MmJihhLmNvbW1hbmQua2V5PT09R2N8fGQu'@; put 'Y29tbWFuZC5rZXk9PT1HYykmJihmPWU0KSxmfW9uQWN0aW9uQmFyU3VibWl0KGwpe3ZhciBhO2lmKCJhY2NlcHQiPT09bCl7Y29uc3QgaD10aGlzLmdldFNlbGVjdGVkQ29sdW1uKCk7dmFyIGQ7aWYobnVsbD09PWgpcmV0dXJuIHZvaWQobnVsbD09PShkPXRoaXMuZHJvcGRvd25NZW51UGx1'@; put 'Z2luKXx8dm9pZCAwPT09ZHx8ZC5jbG9zZSgpKTtjb25zdHtwaHlzaWNhbEluZGV4OmZ9PWgsXz10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U3RhdGUoKSxUPXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikuZ2V0U3RhdGUo'@; put 'KSxXPXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV92YWx1ZSIpLmdldFN0YXRlKCksaWU9dGhpcy5nZXRPcGVyYXRpb25CYXNlZE9uQXJndW1lbnRzKHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9vcGVyYXRvcnMiKS5nZXRBY3RpdmVPcGVyYXRpb25JZCgpLF8sVCxXKTt0aGlz'@; put 'LmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyLmdyb3VwQ2hhbmdlcygpO2xldCBwZT10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0Q29sdW1uU3RhY2tQb3NpdGlvbihmKTstMT09PXBlJiYocGU9dm9pZCAwKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24ucmVtb3ZlQ29uZGl0aW9ucyhmKSxf'@; put 'LmNvbW1hbmQua2V5IT09R2MmJih0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkQ29uZGl0aW9uKGYsXyxpZSxwZSksVC5jb21tYW5kLmtleSE9PUdjJiZ0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkQ29uZGl0aW9uKGYsVCxpZSxwZSkpLFcuY29tbWFuZC5rZXkhPT1HYyYmdGhpcy5j'@; put 'b25kaXRpb25Db2xsZWN0aW9uLmFkZENvbmRpdGlvbihmLFcsaWUscGUpLHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIuZmx1c2goKSx0aGlzLmNvbXBvbmVudHMuZm9yRWFjaCh3ZT0+d2Uuc2F2ZVN0YXRlKGYpKSx0aGlzLmZpbHRlcnNSb3dzTWFwLmNsZWFyKCksdGhpcy5maWx0ZXIo'@; put 'KX1udWxsPT09KGE9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4pfHx2b2lkIDA9PT1hfHxhLmNsb3NlKCl9b25Db21wb25lbnRDaGFuZ2UobCxhKXt0aGlzLnVwZGF0ZURlcGVuZGVudENvbXBvbmVudHNWaXNpYmlsaXR5KCksbC5jb25zdHJ1Y3Rvcj09PVVqJiYhYS5pbnB1dHNDb3VudCYmdGhp'@; put 'cy5zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKX1vblNlbGVjdFVJQ2xvc2VkKCl7dGhpcy5zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKX1zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKXt0aGlzLmRyb3Bkb3duTWVudVBsdWdpbiYmdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4uc2V0TGlzdGVu'@; put 'aW5nKCl9dXBkYXRlRGVwZW5kZW50Q29tcG9uZW50c1Zpc2liaWxpdHkoKXtjb25zdCBsPXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24iKSx7Y29tbWFuZDphfT1sLmdldFN0YXRlKCksZD1bdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIi'@; put 'KSx0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfb3BlcmF0b3JzIildO2Euc2hvd09wZXJhdG9ycz90aGlzLnNob3dDb21wb25lbnRzKC4uLmQpOnRoaXMuaGlkZUNvbXBvbmVudHMoLi4uZCl9b25BZnRlckdldENvbEhlYWRlcihsLGEpe2NvbnN0IGQ9dGhpcy5ob3QudG9QaHlzaWNhbENv'@; put 'bHVtbihsKTt0aGlzLmVuYWJsZWQmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5oYXNDb25kaXRpb25zKGQpP3BpKGEsImh0RmlsdGVyc0FjdGl2ZSIpOldvKGEsImh0RmlsdGVyc0FjdGl2ZSIpfV9jcmVhdGVEYXRhRmlsdGVyKCl7cmV0dXJuIG5ldyBUaWUoYXJndW1lbnRzLmxlbmd0aD4w'@; put 'JiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbixhPT50aGlzLmdldERhdGFNYXBBdENvbHVtbihhKSl9dXBkYXRlQ29tcG9uZW50cyhsKXt2YXIgYTtpZihudWxsPT09KGE9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4pfHx2b2lkIDA9'@; put 'PT1hfHwhYS5lbmFibGVkKXJldHVybjtjb25zdHtlZGl0ZWRDb25kaXRpb25TdGFjazp7Y29uZGl0aW9uczpkLGNvbHVtbjpofX09bCxmPWQuZmlsdGVyKFQ9PlQubmFtZT09PVBnKSxfPWQuZmlsdGVyKFQ9PlQubmFtZSE9PVBnKTtpZihmLmxlbmd0aD49Mnx8Xy5sZW5ndGg+PTMpR2EoQWFg'@; put 'VGhlIGZpbHRlciBjb25kaXRpb25zIGhhdmUgYmVlbiBhcHBsaWVkIHByb3Blcmx5LCBidXQgY291bGRu4oCZdCBiZSBkaXNwbGF5ZWQgdmlzdWFsbHkuXHgyMAogICAgICAgIFRoZSBvdmVyYWxsIGFtb3VudCBvZiBjb25kaXRpb25zIGV4Y2VlZCB0aGUgY2FwYWJpbGl0eSBvZiB0aGUgZHJv'@; put 'cGRvd24gbWVudS5ceDIwCiAgICAgICAgRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGRvY3VtZW50YXRpb24uYCk7ZWxzZXtjb25zdCBUPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRPcGVyYXRpb24oaCk7dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIpLnVw'@; put 'ZGF0ZVN0YXRlKF9bMF0saCksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKS51cGRhdGVTdGF0ZShfWzFdLGgpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9vcGVyYXRvcnMiKS51cGRhdGVTdGF0ZShULGgpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRl'@; put 'cl9ieV92YWx1ZSIpLnVwZGF0ZVN0YXRlKGwpfX1nZXRJbmRleGVzT2ZDb21wb25lbnRzKCl7Y29uc3QgbD1bXTtpZighdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4pcmV0dXJuIGw7Y29uc3QgYT10aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5tZW51O2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3Ro'@; put 'LGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBEbihoLF89PntEbihhLm1lbnVJdGVtcywoVCxXKT0+e1Qua2V5PT09Xy5nZXRNZW51SXRlbURlc2NyaXB0b3IoKS5rZXkmJmwucHVzaChXKX0pfSksbH1jaGFuZ2VDb21wb25lbnRzVmlzaWJpbGl0'@; put 'eSgpe2xldCBsPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoIXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKXJldHVybjtjb25zdCBkPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuaG90TWVudSxoPWQuZ2V0UGx1Z2luKCJo'@; put 'aWRkZW5Sb3dzIik7Zm9yKHZhciBmPWFyZ3VtZW50cy5sZW5ndGgsXz1uZXcgQXJyYXkoZj4xP2YtMTowKSxUPTE7VDxmO1QrKylfW1QtMV09YXJndW1lbnRzW1RdO2NvbnN0IFc9dGhpcy5nZXRJbmRleGVzT2ZDb21wb25lbnRzKC4uLl8pO2w/aC5zaG93Um93cyhXKTpoLmhpZGVSb3dzKFcp'@; put 'LGQucmVuZGVyKCl9aGlkZUNvbXBvbmVudHMoKXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7ZDxsO2QrKylhW2RdPWFyZ3VtZW50c1tkXTt0aGlzLmNoYW5nZUNvbXBvbmVudHNWaXNpYmlsaXR5KCExLC4uLmEpfXNob3dDb21wb25lbnRzKCl7Zm9yKHZh'@; put 'ciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobCksZD0wO2Q8bDtkKyspYVtkXT1hcmd1bWVudHNbZF07dGhpcy5jaGFuZ2VDb21wb25lbnRzVmlzaWJpbGl0eSghMCwuLi5hKX1kZXN0cm95KCl7dGhpcy5lbmFibGVkJiYodGhpcy5jb21wb25lbnRzLmZvckVhY2goKGwsYSk9Pntu'@; put 'dWxsIT09bCYmKGwuZGVzdHJveSgpLHRoaXMuY29tcG9uZW50cy5zZXQoYSxudWxsKSl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZGVzdHJveSgpLHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIuZGVzdHJveSgpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAo'@; put 'dGhpcy5wbHVnaW5OYW1lKSksc3VwZXIuZGVzdHJveSgpfX1jb25zdCBMaWU9ImludGVybmFsLXVzZS1pbi1oYW5kc29udGFibGUiLEpqPXtsaWNlbnNlS2V5OkxpZSx1c2VBcnJheUFyaXRobWV0aWM6ITAsdXNlQ29sdW1uSW5kZXg6ITEsdXNlU3RhdHM6ITEsZXZhbHVhdGVOdWxsVG9aZXJv'@; put 'OiEwLHByZWNpc2lvbkVwc2lsb246MWUtMTMscHJlY2lzaW9uUm91bmRpbmc6MTQsc21hcnRSb3VuZGluZzohMCxsZWFwWWVhcjE5MDA6ITEsbnVsbERhdGU6e3llYXI6MTg5OSxtb250aDoxMixkYXk6MzB9LG51bGxZZWFyOjMwLGRhdGVGb3JtYXRzOlsiREQvTU0vWVlZWSIsIkREL01NL1lZ'@; put 'Il0sdGltZUZvcm1hdHM6WyJoaDptbSIsImhoOm1tOnNzLnNzcyJdLG1hdGNoV2hvbGVDZWxsOiEwLHVzZVJlZ3VsYXJFeHByZXNzaW9uczohMSx1c2VXaWxkY2FyZHM6ITAsZnVuY3Rpb25BcmdTZXBhcmF0b3I6IiwiLHRob3VzYW5kU2VwYXJhdG9yOiIiLGRlY2ltYWxTZXBhcmF0b3I6Ii4i'@; put 'LGxhbmd1YWdlOiJlbkdCIn07ZnVuY3Rpb24gUmllKGMpe3ZhciBsO3JldHVybnttYXhDb2x1bW5zOmMubWF4Q29sdW1ucyxtYXhSb3dzOmMubWF4Um93cyxsYW5ndWFnZTpudWxsPT09KGw9Y1tDdV0pfHx2b2lkIDA9PT1sfHxudWxsPT09KGw9bC5sYW5ndWFnZSl8fHZvaWQgMD09PWw/dm9p'@; put 'ZCAwOmwubGFuZ0NvZGV9fWZ1bmN0aW9uIE9pZShjKXtyZXR1cm4gT2JqZWN0LmtleXMoYykucmVkdWNlKChsLGEpPT4oImh5cGVyZm9ybXVsYSIhPT1hJiYobFthXT1jW2FdKSxsKSx7fSl9ZnVuY3Rpb24gQUEoKXtjb25zdCBjPSJlbmdpbmVfcmVsYXRpb25zaGlwIixsPXBkKEN1KTtyZXR1'@; put 'cm4gbC5oYXNJdGVtKGMpfHxsLnJlZ2lzdGVyKGMsbmV3IE1hcCksbC5nZXRJdGVtKGMpfWZ1bmN0aW9uIFFqKCl7Y29uc3QgYz0ic2hhcmVkX2VuZ2luZV91c2FnZSIsbD1wZChDdSk7cmV0dXJuIGwuaGFzSXRlbShjKXx8bC5yZWdpc3RlcihjLG5ldyBNYXApLGwuZ2V0SXRlbShjKX1mdW5j'@; put 'dGlvbiBQaWUoYyl7dmFyIGw7Y29uc3QgYT1BQSgpLGQ9MD09PWEuc2l6ZT9bXTpBcnJheS5mcm9tKG51bGwhPT0obD1hLmdldChjKSkmJnZvaWQgMCE9PWw/bDpbXSk7cmV0dXJuIG5ldyBNYXAoZC5tYXAoaD0+W2guZ2V0UGx1Z2luKCJmb3JtdWxhcyIpLnNoZWV0SWQsaF0pKX1mdW5jdGlv'@; put 'biBGaWUoYyxsKXtpZihjKXtjb25zdCBhPUFBKCksZD1hLmdldChjKSxoPVFqKCksZj1oLmdldChjKTtkJiZkLmluY2x1ZGVzKGwpJiYoZC5zcGxpY2UoZC5pbmRleE9mKGwpLDEpLDA9PT1kLmxlbmd0aCYmYS5kZWxldGUoYykpLGYmJmYuaW5jbHVkZXMobC5ndWlkKSYmKGYuc3BsaWNlKGYu'@; put 'aW5kZXhPZihsLmd1aWQpLDEpLDA9PT1mLmxlbmd0aCYmKGguZGVsZXRlKGMpLGMuZGVzdHJveSgpKSl9fWNvbnN0IEhpZT0iREQvTU0vWVlZWSI7ZnVuY3Rpb24gTmllKGMpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYyYmIiciPT09Yy5jaGFyQXQoMCkmJiI9Ij09PWMuY2hhckF0KDEpfWZ1'@; put 'bmN0aW9uIGV6KGMsbCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjJiYiZGF0ZSI9PT1sfWZ1bmN0aW9uIFZpZShjLGwpe3JldHVybiBLbyhjLGwsITApLmlzVmFsaWQoKX1mdW5jdGlvbiBCaWUoYyxsKXtyZXR1cm4gS28oYyxsLCEwKS5mb3JtYXQoSGllKX1mdW5jdGlvbiBlRmUoYyxsKXty'@; put 'ZXR1cm4gS28oYyxIaWUsITApLmZvcm1hdChsKX1mdW5jdGlvbiBqaWUoYyxsKXtjb25zdCBkPW5ldyBEYXRlKERhdGUuVVRDKDAsMCxjKy0xKSk7cmV0dXJuIEtvKGQpLmZvcm1hdChsKX1mdW5jdGlvbiBGZyhjLGwsYSl7KGZ1bmN0aW9uIHRGZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5l'@; put 'dyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gcmwoYyxsKXtyZXR1cm4gZnVuY3Rpb24gbkZlKGMsbCl7cmV0dXJuIGwuZ2V0P2wuZ2V0LmNhbGwoYyk6'@; put 'bC52YWx1ZX0oYyx6aWUoYyxsLCJnZXQiKSl9ZnVuY3Rpb24gdDQoYyxsLGEpe3JldHVybiBmdW5jdGlvbiByRmUoYyxsLGEpe2lmKGwuc2V0KWwuc2V0LmNhbGwoYyxhKTtlbHNle2lmKCFsLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5'@; put 'IHByaXZhdGUgZmllbGQiKTtsLnZhbHVlPWF9fShjLHppZShjLGwsInNldCIpLGEpLGF9ZnVuY3Rpb24gemllKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIrYSsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGwu'@; put 'Z2V0KGMpfXZhciBZeT1uZXcgV2Vha01hcCxuND1uZXcgV2Vha01hcCx5MT1uZXcgV2Vha01hcCxUQT1uZXcgV2Vha01hcCx0ej1uZXcgV2Vha01hcCxuej1uZXcgV2Vha01hcCxEQT1uZXcgV2Vha01hcDtjb25zdCBVaWU9Y2xhc3MgaUZle2NvbnN0cnVjdG9yKGwsYSxkKXtGZyh0aGlzLFl5'@; put 'LHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxGZyh0aGlzLG40LHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxGZyh0aGlzLHkxLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxGZyh0aGlzLFRBLHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLEZnKHRoaXMsdHose3dyaXRhYmxlOiEw'@; put 'LHZhbHVlOltdfSksRmcodGhpcyxueix7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksRmcodGhpcyxEQSx7d3JpdGFibGU6ITAsdmFsdWU6W119KSx0NCh0aGlzLFl5LGwpLHQ0KHRoaXMsbjQsYSksdDQodGhpcyx5MSxkKX1zZXRSZW1vdmVkSGZJbmRleGVzKGwpe3JldHVybiB0NCh0aGlz'@; put 'LERBLGwubWFwKGE9Pntjb25zdCBkPXJsKHRoaXMsbjQpLmdldFZpc3VhbEZyb21QaHlzaWNhbEluZGV4KGEpO3JldHVybiB0aGlzLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoZCl9KSkscmwodGhpcyxEQSl9Z2V0UmVtb3ZlZEhmSW5kZXhlcygpe3JldHVybiBybCh0aGlzLERBKX1nZXRI'@; put 'ZkluZGV4RnJvbVZpc3VhbEluZGV4KGwpe2NvbnN0IGE9cmwodGhpcyxuNCkuZ2V0SW5kZXhlc1NlcXVlbmNlKCksZD1ybCh0aGlzLG40KS5nZXROb3RUcmltbWVkSW5kZXhlcygpO3JldHVybiBhLmluZGV4T2YoZFtsXSl9c3luY01vdmVzKGwpe2NvbnN0IGQ9YG1vdmUke2J1KHJsKHRoaXMs'@; put 'WXkpKX1zYDtybCh0aGlzLHkxKS5nZXRFbmdpbmUoKS5iYXRjaCgoKT0+e2wuZm9yRWFjaChoPT57aC5mcm9tIT09aC50byYmaC5mcm9tKzEhPT1oLnRvJiZybCh0aGlzLHkxKS5nZXRFbmdpbmUoKVtkXShybCh0aGlzLHkxKS5nZXRTaGVldElkKCksaC5mcm9tLDEsaC50byl9KX0pfXN0b3Jl'@; put 'TW92ZXNJbmZvcm1hdGlvbihsLGEsZCl7ITEhPT1kJiYodDQodGhpcyx0eixsLm1hcChoPT50aGlzLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoaCkpKSx0NCh0aGlzLG56LHRoaXMuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChhKSkpfWdldE1vdmVMaW5lKGwsYSl7Y29uc3QgZD1ybCh0'@; put 'aGlzLG40KS5nZXROdW1iZXJPZkluZGV4ZXMoKSxoPUFycmF5LmZyb20oQXJyYXkoZCkua2V5cygpKS5maWx0ZXIoXz0+ITE9PT1sLmluY2x1ZGVzKF8pKTt2YXIgZjtyZXR1cm4gMD09PWE/bnVsbCE9PShmPWhbYV0pJiZ2b2lkIDAhPT1mP2Y6MDpoW2EtMV0rMX1nZXRJbml0aWFsbHlDYWxj'@; put 'dWxhdGVkTW92ZXMobCxhKXtsZXQgZD10aGlzLmdldE1vdmVMaW5lKGwsYSk7Y29uc3QgaD1bXTtyZXR1cm4gbC5mb3JFYWNoKGY9Pntjb25zdCBfPXtmcm9tOmYsdG86ZH07aC5mb3JFYWNoKFQ9PntULmZyb20+Xy5mcm9tJiZULnRvPD1fLmZyb20mJlQuZnJvbT5ULnRvJiYoXy5mcm9tKz0x'@; put 'KX0pLF8uZnJvbT49ZCYmKGQrPTEpLGgucHVzaChfKX0pLGh9YWRqdXN0ZWRDYWxjdWxhdGVkTW92ZXMobCl7cmV0dXJuIGwuZm9yRWFjaCgoYSxkKT0+e2wuc2xpY2UoZCsxKS5mb3JFYWNoKGY9PntmLmZyb20+YS5mcm9tJiZmLmZyb208Zi50byYmKGYuZnJvbS09MSl9KX0pLGx9Y2FsY3Vs'@; put 'YXRlQW5kU3luY01vdmVzKGwsYSl7aWYocmwodGhpcyx5MSkuaXNQZXJmb3JtaW5nVW5kb1JlZG8oKXx8ITE9PT1sfHwhMT09PWEpcmV0dXJuO2NvbnN0IGQ9dGhpcy5hZGp1c3RlZENhbGN1bGF0ZWRNb3Zlcyh0aGlzLmdldEluaXRpYWxseUNhbGN1bGF0ZWRNb3ZlcyhybCh0aGlzLHR6KSxy'@; put 'bCh0aGlzLG56KSkpO251bGw9PT1ybCh0aGlzLHkxKS5nZXRTaGVldElkKCk/cmwodGhpcyx5MSkuZ2V0UG9zdHBvbmVBY3Rpb24oKCk9PnRoaXMuc3luY01vdmVzKGQpKTp0aGlzLnN5bmNNb3ZlcyhkKX1nZXRJbmRleGVzQ2hhbmdlU3luY01ldGhvZCgpe2NvbnN0IGw9YHNldCR7YnUocmwo'@; put 'dGhpcyxZeSkpfU9yZGVyYDtyZXR1cm4gYT0+e2lmKHJsKHRoaXMseTEpLmlzUGVyZm9ybWluZ1VuZG9SZWRvKCkpcmV0dXJuO2NvbnN0IGQ9cmwodGhpcyxuNCkuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7aWYoInVwZGF0ZSI9PT1hKXtjb25zdCBoPXJsKHRoaXMsVEEpLm1hcChXPT5kLmluZGV4'@; put 'T2YoVykpLGY9cmwodGhpcyx5MSkuZ2V0RW5naW5lKCkuZ2V0U2hlZXREaW1lbnNpb25zKHJsKHRoaXMseTEpLmdldFNoZWV0SWQoKSk7bGV0IF87Xz0icm93Ij09PXJsKHRoaXMsWXkpP2YuaGVpZ2h0OmYud2lkdGg7Zm9yKGxldCBXPWgubGVuZ3RoO1c8XztXKz0xKWgucHVzaChXKTtybCh0'@; put 'aGlzLHkxKS5nZXRFbmdpbmUoKVtsXShybCh0aGlzLHkxKS5nZXRTaGVldElkKCksaCl9dDQodGhpcyxUQSxkKX19aW5pdCgpe3Q0KHRoaXMsVEEscmwodGhpcyxuNCkuZ2V0SW5kZXhlc1NlcXVlbmNlKCkpfX07ZnVuY3Rpb24gSGcoYyxsLGEpeyhmdW5jdGlvbiBvRmUoYyxsKXtpZihsLmhh'@; put 'cyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIHFmKGMsbCl7cmV0dXJuIGZ1bmN0aW9uIHNGZShjLGwpe3JldHVybiBsLmdldD9s'@; put 'LmdldC5jYWxsKGMpOmwudmFsdWV9KGMsWmllKGMsbCwiZ2V0IikpfWZ1bmN0aW9uIE5nKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gYUZlKGMsbCxhKXtpZihsLnNldClsLnNldC5jYWxsKGMsYSk7ZWxzZXtpZighbC53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8g'@; put 'c2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7bC52YWx1ZT1hfX0oYyxaaWUoYyxsLCJzZXQiKSxhKSxhfWZ1bmN0aW9uIFppZShjLGwsYSl7aWYoIWwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2ErIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5j'@; put 'ZSIpO3JldHVybiBsLmdldChjKX12YXIgSUE9bmV3IFdlYWtNYXAsTEE9bmV3IFdlYWtNYXAscno9bmV3IFdlYWtNYXAsaXo9bmV3IFdlYWtNYXAsb3o9bmV3IFdlYWtNYXAsc3o9bmV3IFdlYWtNYXAsYXo9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gTDcoYyxsLGEpe3JldHVybiBsPWZ1bmN0aW9u'@; put 'IHVGZShjKXt2YXIgbD1mdW5jdGlvbiBkRmUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fG51bGw9PT1jKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2Yg'@; put 'ZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOlN0cmluZyhs'@; put 'KX0obCksbCBpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBseihjLGwsYSl7KGZ1bmN0aW9uIGhGZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBl'@; put 'RXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gcjQoYyxsLGEpe3JldHVybiBmdW5jdGlvbiBmRmUoYyxsLGEpe2lmKGwuc2V0KWwuc2V0LmNhbGwoYyxhKTtlbHNl'@; put 'e2lmKCFsLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtsLnZhbHVlPWF9fShjLFlpZShjLGwsInNldCIpLGEpLGF9ZnVuY3Rpb24gUjcoYyxsKXtyZXR1cm4gZnVuY3Rpb24gcEZlKGMsbCl7cmV0dXJuIGwu'@; put 'Z2V0P2wuZ2V0LmNhbGwoYyk6bC52YWx1ZX0oYyxZaWUoYyxsLCJnZXQiKSl9ZnVuY3Rpb24gWWllKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIrYSsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGwuZ2V0KGMp'@; put 'fWNvbnN0IEN1PSJmb3JtdWxhcyIsZ0ZlPVsibWF4Um93cyIsIm1heENvbHVtbnMiLCJsYW5ndWFnZSJdO3NvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyTmFtZWRFeHByZXNzaW9u'@; put 'UmVtb3ZlZCIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclNoZWV0QWRkZWQiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJTaGVldFJlbW92ZWQiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJTaGVldFJlbmFtZWQiKSxzby5nZXRTaW5nbGV0'@; put 'b24oKS5yZWdpc3RlcigiYWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZSIpO2NvbnN0IE83PWM9PiJVbmRvUmVkby51bmRvIj09PWN8fCJVbmRvUmVkby5yZWRvIj09PWN8fCJhdXRvIj09PWM7dmFyIEtmPW5ldyBXZWFrTWFwLGN6PW5ldyBXZWFrTWFwLFd5PW5ldyBXZWFrTWFwO2NsYXNzIHZG'@; put 'ZSBleHRlbmRzIFpze2NvbnN0cnVjdG9yKCl7dmFyIGw7c3VwZXIoLi4uYXJndW1lbnRzKSxsPXRoaXMsbHoodGhpcyxLZix7d3JpdGFibGU6ITAsdmFsdWU6ITF9KSxseih0aGlzLGN6LHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLGx6KHRoaXMsV3kse3dyaXRhYmxlOiEwLHZhbHVlOltbInZh'@; put 'bHVlc1VwZGF0ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25FbmdpbmVWYWx1ZXNVcGRhdGVkKC4uLmFyZ3VtZW50cyl9XSxbIm5hbWVkRXhwcmVzc2lvbkFkZGVkIixmdW5jdGlvbigpe3JldHVybiBsLm9uRW5naW5lTmFtZWRFeHByZXNzaW9uc0FkZGVkKC4uLmFyZ3VtZW50cyl9XSxbIm5h'@; put 'bWVkRXhwcmVzc2lvblJlbW92ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25FbmdpbmVOYW1lZEV4cHJlc3Npb25zUmVtb3ZlZCguLi5hcmd1bWVudHMpfV0sWyJzaGVldEFkZGVkIixmdW5jdGlvbigpe3JldHVybiBsLm9uRW5naW5lU2hlZXRBZGRlZCguLi5hcmd1bWVudHMpfV0sWyJzaGVl'@; put 'dFJlbmFtZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25FbmdpbmVTaGVldFJlbmFtZWQoLi4uYXJndW1lbnRzKX1dLFsic2hlZXRSZW1vdmVkIixmdW5jdGlvbigpe3JldHVybiBsLm9uRW5naW5lU2hlZXRSZW1vdmVkKC4uLmFyZ3VtZW50cyl9XV19KSxMNyh0aGlzLCJzdGF0aWNSZWdpc3Rl'@; put 'ciIscGQoImZvcm11bGFzIikpLEw3KHRoaXMsImVuZ2luZSIsbnVsbCksTDcodGhpcywic2hlZXROYW1lIixudWxsKSxMNyh0aGlzLCJpbmRleFN5bmNlciIsbnVsbCksTDcodGhpcywicm93QXhpc1N5bmNlciIsbnVsbCksTDcodGhpcywiY29sdW1uQXhpc1N5bmNlciIsbnVsbCl9c3RhdGlj'@; put 'IGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIEN1fXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDI2MH1zdGF0aWMgZ2V0IFNFVFRJTkdfS0VZUygpe3JldHVybltDdSwuLi5nRmVdfWdldCBzaGVldElkKCl7cmV0dXJuIG51bGw9PT10aGlzLnNoZWV0TmFtZT9udWxsOnRoaXMu'@; put 'ZW5naW5lLmdldFNoZWV0SWQodGhpcy5zaGVldE5hbWUpfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtDdV19ZW5hYmxlUGx1Z2luKCl7dmFyIGwsYT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe2lmKHRoaXMuZW5naW5lPW51bGwhPT0obD1mdW5jdGlvbiBXUGUo'@; put 'Yyl7Y29uc3QgbD1jLmdldFNldHRpbmdzKCksYT1sW0N1XSxkPWE/LmVuZ2luZTtpZighMD09PWF8fExhKGQpKXJldHVybiBudWxsO3ZhciBoO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkLmh5cGVyZm9ybXVsYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGQpcmV0dXJuIGZ1bmN0aW9uIEdQZShjLGws'@; put 'YSl7Y29uc3QgZD1sW0N1XSxoPWZ1bmN0aW9uIFVQZShjKXt2YXIgbDtjb25zdCBhPWNbQ3VdLGQ9T2llKG51bGwhPWEmJm51bGwhPT0obD1hLmVuZ2luZSkmJnZvaWQgMCE9PWwmJmwuaHlwZXJmb3JtdWxhP2EuZW5naW5lOnt9KSxoPVJpZShjKTtyZXR1cm57Li4uSmosLi4uZCwuLi5ofX0o'@; put 'bCksZj1BQSgpLF89UWooKTsoZnVuY3Rpb24gJFBlKGMsbCl7bCYmbC5mb3JFYWNoKGE9Pntjb25zdHtuYW1lOmQscGx1Z2luOmgsdHJhbnNsYXRpb25zOmZ9PWE7dHJ5e2MucmVnaXN0ZXJGdW5jdGlvbihkLGgsZil9Y2F0Y2goXyl7R2EoXy5tZXNzYWdlKX19KX0pKGMsZC5mdW5jdGlvbnMp'@; put 'LGZ1bmN0aW9uIHFQZShjLGwpe2lmKGwpe2NvbnN0e2xhbmdDb2RlOmF9PWw7dHJ5e2MucmVnaXN0ZXJMYW5ndWFnZShhLGwpfWNhdGNoKGQpe0dhKGQubWVzc2FnZSl9fX0oYyxkLmxhbmd1YWdlKTtjb25zdCBUPWMuYnVpbGRFbXB0eShoKTtyZXR1cm4gZi5zZXQoVCxbYV0pLF8uc2V0KFQs'@; put 'W2EuZ3VpZF0pLGZ1bmN0aW9uIEtQZShjLGwpe2wmJihjLnN1c3BlbmRFdmFsdWF0aW9uKCksbC5mb3JFYWNoKGE9Pntjb25zdHtuYW1lOmQsZXhwcmVzc2lvbjpoLHNjb3BlOmYsb3B0aW9uczpffT1hO3RyeXtjLmFkZE5hbWVkRXhwcmVzc2lvbihkLGgsZixfKX1jYXRjaChUKXtHYShULm1l'@; put 'c3NhZ2UpfX0pLGMucmVzdW1lRXZhbHVhdGlvbigpKX0oVCxkLm5hbWVkRXhwcmVzc2lvbnMpLFQub24oInNoZWV0QWRkZWQiLCgpPT57VC5yZWJ1aWxkQW5kUmVjYWxjdWxhdGUoKX0pLFQub24oInNoZWV0UmVtb3ZlZCIsKCk9PntULnJlYnVpbGRBbmRSZWNhbGN1bGF0ZSgpfSksVH0obnVs'@; put 'bCE9PShoPWQuaHlwZXJmb3JtdWxhKSYmdm9pZCAwIT09aD9oOmQsbCxjKTtpZigib2JqZWN0Ij09dHlwZW9mIGQmJkxhKGQuaHlwZXJmb3JtdWxhKSl7Y29uc3QgZj1BQSgpLF89UWooKS5nZXQoZCk7cmV0dXJuIGYuaGFzKGQpfHxmLnNldChkLFtdKSxmLmdldChkKS5wdXNoKGMpLF8mJl8u'@; put 'cHVzaChjLmd1aWQpLGQuZ2V0Q29uZmlnKCkubGljZW5zZUtleXx8ZC51cGRhdGVDb25maWcoe2xpY2Vuc2VLZXk6TGllfSksKGQuZ2V0Q29uZmlnKCkubGVhcFllYXIxOTAwIT09SmoubGVhcFllYXIxOTAwfHwhMT09PWxrKGQuZ2V0Q29uZmlnKCkubnVsbERhdGUsSmoubnVsbERhdGUpKSYm'@; put 'R2EoQWFgSWYgeW91IHVzZSBIeXBlckZvcm11bGEgd2l0aCBIYW5kc29udGFibGUsIGtlZXAgdGhlIGRlZmF1bHQgXGBsZWFwWWVhcjE5MDBcYCBhbmQgXGBudWxsRGF0ZVxgIAogICAgICBzZXR0aW5ncy4gT3RoZXJ3aXNlLCBIeXBlckZvcm11bGEncyBkYXRlcyBtYXkgbm90IHN5bmMgY29y'@; put 'cmVjdGx5IHdpdGggSGFuZHNvbnRhYmxlJ3MgZGF0ZXMuYCksZH1yZXR1cm4gbnVsbH0odGhpcy5ob3QpKSYmdm9pZCAwIT09bD9sOnRoaXMuZW5naW5lLCF0aGlzLmVuZ2luZSlyZXR1cm4gdm9pZCBHYSgiTWlzc2luZyB0aGUgcmVxdWlyZWQgYGVuZ2luZWAga2V5IGluIHRoZSBGb3JtdWxh'@; put 'cyBzZXR0aW5ncy4gUGxlYXNlIGZpbGwgaXQgd2l0aCBlaXRoZXIgYW4gZW5naW5lIGNsYXNzIG9yIGFuIGVuZ2luZSBpbnN0YW5jZS4iKTtpZihudWxsIT09dGhpcy5zaGVldE5hbWUmJiF0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdCh0aGlzLnNoZWV0TmFtZSkpe2NvbnN0IGQ9dGhpcy5h'@; put 'ZGRTaGVldCh0aGlzLnNoZWV0TmFtZSx0aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJyYXkoKSk7ITEhPT1kJiYodGhpcy5zaGVldE5hbWU9ZCl9dGhpcy5hZGRIb29rKCJiZWZvcmVMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4gYS5vbkJlZm9yZUxvYWREYXRhKC4uLmFyZ3VtZW50cyl9KSx0'@; put 'aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIGEub25BZnRlckxvYWREYXRhKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVVwZGF0ZURhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIGEub25CZWZvcmVMb2FkRGF0YSguLi5hcmd1bWVudHMpfSks'@; put 'dGhpcy5hZGRIb29rKCJhZnRlclVwZGF0ZURhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIGEub25BZnRlckxvYWREYXRhKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeURhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIGEub25Nb2RpZnlEYXRhKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFk'@; put 'ZEhvb2soIm1vZGlmeVNvdXJjZURhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIGEub25Nb2RpZnlTb3VyY2VEYXRhKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVZhbGlkYXRlIixmdW5jdGlvbigpe3JldHVybiBhLm9uQmVmb3JlVmFsaWRhdGUoLi4uYXJndW1lbnRzKX0pLHRo'@; put 'aXMuYWRkSG9vaygiYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsIixmdW5jdGlvbigpe3JldHVybiBhLm9uQWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0RGF0YUF0Q2VsbCIsZnVuY3Rpb24oKXtyZXR1cm4gYS5vbkFmdGVyU2V0'@; put 'RGF0YUF0Q2VsbCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclNldERhdGFBdFJvd1Byb3AiLGZ1bmN0aW9uKCl7cmV0dXJuIGEub25BZnRlclNldERhdGFBdENlbGwoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ3JlYXRlUm93IixmdW5jdGlvbigpe3Jl'@; put 'dHVybiBhLm9uQmVmb3JlQ3JlYXRlUm93KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4gYS5vbkJlZm9yZUNyZWF0ZUNvbCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIsZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gYS5vbkFmdGVyQ3JlYXRlUm93KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbigpe3JldHVybiBhLm9uQWZ0ZXJDcmVhdGVDb2woLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlv'@; put 'bigpe3JldHVybiBhLm9uQmVmb3JlUmVtb3ZlUm93KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbW92ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4gYS5vbkJlZm9yZVJlbW92ZUNvbCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gYS5vbkFmdGVyUmVtb3ZlUm93KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe3JldHVybiBhLm9uQWZ0ZXJSZW1vdmVDb2woLi4uYXJndW1lbnRzKX0pLHRoaXMuaW5kZXhTeW5jZXI9bmV3IGNsYXNzIGxGZXtj'@; put 'b25zdHJ1Y3RvcihsLGEsZCl7SGcodGhpcyxJQSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksSGcodGhpcyxMQSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksSGcodGhpcyxyeix7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksSGcodGhpcyxpeix7d3JpdGFibGU6ITAsdmFsdWU6'@; put 'ITF9KSxIZyh0aGlzLG96LHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLEhnKHRoaXMsc3ose3dyaXRhYmxlOiEwLHZhbHVlOm51bGx9KSxIZyh0aGlzLGF6LHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksTmcodGhpcyxJQSxuZXcgVWllKCJyb3ciLGwsdGhpcykpLE5nKHRoaXMsTEEsbmV3IFVp'@; put 'ZSgiY29sdW1uIixhLHRoaXMpKSxOZyh0aGlzLHJ6LGQpfWdldEZvckF4aXMobCl7cmV0dXJuIHFmKHRoaXMsInJvdyI9PT1sP0lBOkxBKX1zZXRQZXJmb3JtVW5kbyhsKXtOZyh0aGlzLGl6LGwpfXNldFBlcmZvcm1SZWRvKGwpe05nKHRoaXMsb3osbCl9aXNQZXJmb3JtaW5nVW5kb1JlZG8o'@; put 'KXtyZXR1cm4gcWYodGhpcyxpeil8fHFmKHRoaXMsb3opfWdldFNoZWV0SWQoKXtyZXR1cm4gcWYodGhpcyxheil9Z2V0RW5naW5lKCl7cmV0dXJuIHFmKHRoaXMsc3opfWdldFBvc3Rwb25lQWN0aW9uKCl7cmV0dXJuIHFmKHRoaXMscnopfXNldHVwU3luY0VuZHBvaW50KGwsYSl7TmcodGhp'@; put 'cyxzeixsKSxOZyh0aGlzLGF6LGEpLHFmKHRoaXMsSUEpLmluaXQoKSxxZih0aGlzLExBKS5pbml0KCl9fSh0aGlzLmhvdC5yb3dJbmRleE1hcHBlcix0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlcixkPT57dGhpcy5ob3QuYWRkSG9va09uY2UoImluaXQiLCgpPT57ZCgpfSl9KSx0aGlzLnJv'@; put 'd0F4aXNTeW5jZXI9dGhpcy5pbmRleFN5bmNlci5nZXRGb3JBeGlzKCJyb3ciKSx0aGlzLmNvbHVtbkF4aXNTeW5jZXI9dGhpcy5pbmRleFN5bmNlci5nZXRGb3JBeGlzKCJjb2x1bW4iKSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlclJvd1NlcXVlbmNlQ2hhbmdlIix0aGlzLnJvd0F4aXNTeW5j'@; put 'ZXIuZ2V0SW5kZXhlc0NoYW5nZVN5bmNNZXRob2QoKSksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJDb2x1bW5TZXF1ZW5jZUNoYW5nZSIsdGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldEluZGV4ZXNDaGFuZ2VTeW5jTWV0aG9kKCkpLHRoaXMuaG90LmFkZEhvb2soImJlZm9yZVJvd01vdmUiLChk'@; put 'LGgsZixfKT0+e3RoaXMucm93QXhpc1N5bmNlci5zdG9yZU1vdmVzSW5mb3JtYXRpb24oZCxoLF8pfSksdGhpcy5ob3QuYWRkSG9vaygiYmVmb3JlQ29sdW1uTW92ZSIsKGQsaCxmLF8pPT57dGhpcy5jb2x1bW5BeGlzU3luY2VyLnN0b3JlTW92ZXNJbmZvcm1hdGlvbihkLGgsXyl9KSx0aGlz'@; put 'LmhvdC5hZGRIb29rKCJhZnRlclJvd01vdmUiLChkLGgsZixfLFQpPT57dGhpcy5yb3dBeGlzU3luY2VyLmNhbGN1bGF0ZUFuZFN5bmNNb3ZlcyhfLFQpfSksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJDb2x1bW5Nb3ZlIiwoZCxoLGYsXyxUKT0+e3RoaXMuY29sdW1uQXhpc1N5bmNlci5jYWxj'@; put 'dWxhdGVBbmRTeW5jTW92ZXMoXyxUKX0pLHRoaXMuaG90LmFkZEhvb2soImJlZm9yZUNvbHVtbkZyZWV6ZSIsKGQsaCk9Pnt0aGlzLmNvbHVtbkF4aXNTeW5jZXIuc3RvcmVNb3Zlc0luZm9ybWF0aW9uKFtkXSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0LGgpfSks'@; put 'dGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJDb2x1bW5GcmVlemUiLChkLGgpPT57dGhpcy5jb2x1bW5BeGlzU3luY2VyLmNhbGN1bGF0ZUFuZFN5bmNNb3ZlcyhoLGgpfSksdGhpcy5ob3QuYWRkSG9vaygiYmVmb3JlQ29sdW1uVW5mcmVlemUiLChkLGgpPT57dGhpcy5jb2x1bW5BeGlzU3luY2Vy'@; put 'LnN0b3JlTW92ZXNJbmZvcm1hdGlvbihbZF0sdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydC0xLGgpfSksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJDb2x1bW5VbmZyZWV6ZSIsKGQsaCk9Pnt0aGlzLmNvbHVtbkF4aXNTeW5jZXIuY2FsY3VsYXRlQW5kU3luY01vdmVz'@; put 'KGgsaCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ2VsbE1ldGFSZXNldCIsZnVuY3Rpb24oKXtyZXR1cm4gYS5vbkFmdGVyQ2VsbE1ldGFSZXNldCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVVbmRvIiwoKT0+e3RoaXMuaW5kZXhTeW5jZXIuc2V0UGVyZm9ybVVuZG8oITAp'@; put 'LHRoaXMuZW5naW5lLnVuZG8oKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVkbyIsKCk9Pnt0aGlzLmluZGV4U3luY2VyLnNldFBlcmZvcm1SZWRvKCEwKSx0aGlzLmVuZ2luZS5yZWRvKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyVW5kbyIsKCk9Pnt0aGlzLmluZGV4U3luY2VyLnNldFBlcmZv'@; put 'cm1VbmRvKCExKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJVbmRvIiwoKT0+e3RoaXMuaW5kZXhTeW5jZXIuc2V0UGVyZm9ybVJlZG8oITEpfSksdGhpcy5hZGRIb29rKCJhZnRlckRldGFjaENoaWxkIixmdW5jdGlvbigpe3JldHVybiBhLm9uQWZ0ZXJEZXRhY2hDaGlsZCguLi5hcmd1bWVudHMp'@; put 'fSksdGhpcy5hZGRIb29rKCJiZWZvcmVBdXRvZmlsbCIsZnVuY3Rpb24oKXtyZXR1cm4gYS5vbkJlZm9yZUF1dG9maWxsKC4uLmFyZ3VtZW50cyl9KSxSNyh0aGlzLFd5KS5mb3JFYWNoKGQ9PntsZXRbaCxmXT1kO3JldHVybiB0aGlzLmVuZ2luZS5vbihoLGYpfSksc3VwZXIuZW5hYmxlUGx1'@; put 'Z2luKCl9fWRpc2FibGVQbHVnaW4oKXtSNyh0aGlzLFd5KS5mb3JFYWNoKGw9PntsZXRbYSxkXT1sO3JldHVybiB0aGlzLmVuZ2luZS5vZmYoYSxkKX0pLEZpZSh0aGlzLmVuZ2luZSx0aGlzLmhvdCksdGhpcy5lbmdpbmU9bnVsbCxzdXBlci5kaXNhYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2lu'@; put 'KGwpe2NvbnN0IGE9ZnVuY3Rpb24gWlBlKGMpe3ZhciBsO2NvbnN0IGE9Y1tDdV07cmV0dXJuey4uLk9pZShudWxsIT1hJiZudWxsIT09KGw9YS5lbmdpbmUpJiZ2b2lkIDAhPT1sJiZsLmh5cGVyZm9ybXVsYT9hLmVuZ2luZTp7fSksLi4uUmllKGMpfX0odGhpcy5ob3QuZ2V0U2V0dGluZ3Mo'@; put 'KSk7KGZ1bmN0aW9uIFlQZShjLGwpe3JldHVybiBPYmplY3Qua2V5cyhsKS5zb21lKGE9PnZvaWQgMCE9PWxbYV0mJmxbYV0hPT1jW2FdKX0pKHRoaXMuZW5naW5lLmdldENvbmZpZygpLGEpJiZ0aGlzLmVuZ2luZS51cGRhdGVDb25maWcoYSk7Y29uc3QgZD10aGlzLmhvdC5nZXRTZXR0aW5n'@; put 'cygpW0N1XTtpZihLaShkKSYmS2koZC5zaGVldE5hbWUpJiZkLnNoZWV0TmFtZSE9PXRoaXMuc2hlZXROYW1lJiZ0aGlzLnN3aXRjaFNoZWV0KGQuc2hlZXROYW1lKSwhbC5kYXRhJiZudWxsPT09dGhpcy5zaGVldE5hbWUpe2NvbnN0IGg9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtDdV0uc2hl'@; put 'ZXROYW1lO2gmJnRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KGgpP3RoaXMuc3dpdGNoU2hlZXQodGhpcy5zaGVldE5hbWUpOnRoaXMuc2hlZXROYW1lPXRoaXMuYWRkU2hlZXQoaD8/dm9pZCAwLHRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgpKX1zdXBlci51cGRhdGVQbHVnaW4obCl9'@; put 'ZGVzdHJveSgpe1I3KHRoaXMsV3kpLmZvckVhY2gobD0+e3ZhciBhO2xldFtkLGhdPWw7cmV0dXJuIG51bGw9PT0oYT10aGlzLmVuZ2luZSl8fHZvaWQgMD09PWE/dm9pZCAwOmEub2ZmKGQsaCl9KSxyNCh0aGlzLFd5LG51bGwpLEZpZSh0aGlzLmVuZ2luZSx0aGlzLmhvdCksdGhpcy5lbmdp'@; put 'bmU9bnVsbCxzdXBlci5kZXN0cm95KCl9YWRkU2hlZXQobCxhKXtpZihLaShhKSYmIXBuZShhKSlyZXR1cm4gR2EoIlRoZSBwcm92aWRlZCBkYXRhIHNob3VsZCBiZSBhbiBhcnJheSBvZiBhcnJheXMuIiksITE7aWYobnVsbCE9bCYmdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QobCkpcmV0'@; put 'dXJuIEdhKCJTaGVldCB3aXRoIHRoZSBwcm92aWRlZCBuYW1lIGFscmVhZHkgZXhpc3RzLiIpLCExO3RyeXtjb25zdCBkPXRoaXMuZW5naW5lLmFkZFNoZWV0KGw/P3ZvaWQgMCk7cmV0dXJuIGEmJnRoaXMuZW5naW5lLnNldFNoZWV0Q29udGVudCh0aGlzLmVuZ2luZS5nZXRTaGVldElkKGQp'@; put 'LGEpLGR9Y2F0Y2goZCl7cmV0dXJuIEdhKGQubWVzc2FnZSksITF9fXN3aXRjaFNoZWV0KGwpe2lmKCF0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdChsKSlyZXR1cm4gdm9pZCBTTihgVGhlIHNoZWV0IG5hbWVkIFxgJHtsfVxgIGRvZXMgbm90IGV4aXN0LCBzd2l0Y2ggYWJvcnRlZC5gKTt0'@; put 'aGlzLnNoZWV0TmFtZT1sO2NvbnN0IGE9dGhpcy5lbmdpbmUuZ2V0U2hlZXRTZXJpYWxpemVkKHRoaXMuc2hlZXRJZCk7YS5sZW5ndGg+MCYmdGhpcy5ob3QubG9hZERhdGEoYSxgJHtidShDdSl9LnN3aXRjaFNoZWV0YCl9Z2V0Q2VsbFR5cGUobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3Ro'@; put 'PjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5zaGVldElkO2NvbnN0IGg9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhsKSxmPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oYSk7cmV0dXJuIG51bGwhPT1oJiZudWxsIT09Zj90aGlzLmVuZ2luZS5nZXRDZWxsVHlw'@; put 'ZSh7c2hlZXQ6ZCxyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgobCksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGEpfSk6IkVNUFRZIn1pc0Zvcm11bGFDZWxsVHlwZShsLGEpe3JldHVybiB0aGlzLmVu'@; put 'Z2luZS5kb2VzQ2VsbEhhdmVGb3JtdWxhKHtzaGVldDphcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5zaGVldElkLHJvdzp0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChsKSxjb2w6dGhpcy5jb2x1'@; put 'bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoYSl9KX1yZW5kZXJEZXBlbmRlbnRTaGVldHMobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtjb25zdCBkPW5ldyBTZXQ7bC5mb3JFYWNoKGg9Pnt2YXIg'@; put 'Zjtjb25zdCBfPW51bGw9PWh8fG51bGw9PT0oZj1oLmFkZHJlc3MpfHx2b2lkIDA9PT1mP3ZvaWQgMDpmLnNoZWV0O3ZvaWQgMCE9PV8mJihkLmhhcyhfKXx8ZC5hZGQoXykpfSksUGllKHRoaXMuZW5naW5lKS5mb3JFYWNoKChoLGYpPT57dmFyIF87KGF8fGYhPT10aGlzLnNoZWV0SWQpJiZk'@; put 'LmhhcyhmKSYmKGgucmVuZGVyKCksbnVsbD09PShfPWgudmlldyl8fHZvaWQgMD09PV98fF8uYWRqdXN0RWxlbWVudHNTaXplKCkpfSl9dmFsaWRhdGVEZXBlbmRlbnRDZWxscyhsKXtjb25zdCBkPWY9Pnt2YXIgXztjb25zdHtyb3c6VCxjb2w6VyxzaGVldDppZX09bnVsbCE9PShfPWY/LmFk'@; put 'ZHJlc3MpJiZ2b2lkIDAhPT1fP186e307cmV0dXJuIEtpKGllKT9gJHtpZX06JHtUfXgke1d9YDoiIn0saD1uZXcgU2V0KChhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10pLm1hcChmPT5kKGYpKSk7bC5mb3JFYWNoKGY9Pnt2YXIgXyxU'@; put 'O2NvbnN0e3JvdzpXLGNvbDppZX09bnVsbCE9PShfPWYuYWRkcmVzcykmJnZvaWQgMCE9PV8/Xzp7fTtpZighMT09PUtpKFcpfHwhMT09PUtpKGllKXx8Vz49dGhpcy5ob3QuY291bnRSb3dzKCl8fGllPj10aGlzLmhvdC5jb3VudENvbHMoKSlyZXR1cm47Y29uc3QgcGU9bnVsbD09Znx8bnVs'@; put 'bD09PShUPWYuYWRkcmVzcyl8fHZvaWQgMD09PVQ/dm9pZCAwOlQuc2hlZXQsd2U9ZChmKTtpZih2b2lkIDAhPT1wZSYmIWguaGFzKHdlKSl7Y29uc3QgRWU9UGllKHRoaXMuZW5naW5lKS5nZXQocGUpO2lmKCFFZSlyZXR1cm47RWUudmFsaWRhdGVDZWxsKEVlLmdldERhdGFBdENlbGwoVyxp'@; put 'ZSksRWUuZ2V0Q2VsbE1ldGEoVyxpZSksKCk9Pnt9KX19KX1zeW5jQ2hhbmdlV2l0aEVuZ2luZShsLGEsZCl7Y29uc3QgaD17cm93OnRoaXMucm93QXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGwpLGNvbDp0aGlzLmNvbHVtbkF4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21W'@; put 'aXN1YWxJbmRleChhKSxzaGVldDp0aGlzLnNoZWV0SWR9O2lmKCF0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1NldENlbGxDb250ZW50cyhoKSlyZXR1cm4gdm9pZCBHYShgTm90IHBvc3NpYmxlIHRvIHNldCBjZWxsIGRhdGEgYXQgJHtKU09OLnN0cmluZ2lmeShoKX1gKTtjb25zdCBmPXRo'@; put 'aXMuaG90LmdldENlbGxNZXRhKGwsYSk7cmV0dXJuIGV6KGQsZi50eXBlKSYmKFZpZShkLGYuZGF0ZUZvcm1hdCk/ZD1CaWUoZCxmLmRhdGVGb3JtYXQpOiExPT09ZnVuY3Rpb24gUVBlKGMpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYyYmYy5zdGFydHNXaXRoKCI9Iil9KGQpJiYoZD1gJyR7'@; put 'ZH1gKSksdGhpcy5lbmdpbmUuc2V0Q2VsbENvbnRlbnRzKGgsZCl9b25CZWZvcmVWYWxpZGF0ZShsLGEsZCl7Y29uc3QgaD10aGlzLmhvdC5wcm9wVG9Db2woZCk7aWYodGhpcy5pc0Zvcm11bGFDZWxsVHlwZShhLGgpKXtjb25zdCBmPXtyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5k'@; put 'ZXhGcm9tVmlzdWFsSW5kZXgoYSksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGgpLHNoZWV0OnRoaXMuc2hlZXRJZH0sXz10aGlzLmhvdC5nZXRDZWxsTWV0YShhLGgpO2xldCBUPXRoaXMuZW5naW5lLmdldENlbGxWYWx1ZShmKTtyZXR1cm4i'@; put 'ZGF0ZSI9PT1fLnR5cGUmJkd1KFQpJiYoVD1qaWUoVCxfLmRhdGVGb3JtYXQpKSwib2JqZWN0Ij09dHlwZW9mIFQmJm51bGwhPT1UP1QudmFsdWU6VH1yZXR1cm4gbH1vbkJlZm9yZUF1dG9maWxsKGwsYSxkKXtjb25zdHtyb3c6aCxjb2w6Zn09YS5nZXRUb3BTdGFydENvcm5lcigpLHtyb3c6'@; put 'Xyxjb2w6VH09YS5nZXRCb3R0b21FbmRDb3JuZXIoKSx7cm93OlcsY29sOmllfT1kLmdldFRvcFN0YXJ0Q29ybmVyKCkse3JvdzpwZSxjb2w6d2V9PWQuZ2V0Qm90dG9tRW5kQ29ybmVyKCksRWU9e3N0YXJ0Ontyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5k'@; put 'ZXgoaCksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGYpLHNoZWV0OnRoaXMuc2hlZXRJZH0sZW5kOntyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoXyksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5n'@; put 'ZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KFQpLHNoZWV0OnRoaXMuc2hlZXRJZH19LFplPXtzdGFydDp7cm93OnRoaXMucm93QXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KFcpLGNvbDp0aGlzLmNvbHVtbkF4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChp'@; put 'ZSksc2hlZXQ6dGhpcy5zaGVldElkfSxlbmQ6e3Jvdzp0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChwZSksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KHdlKSxzaGVldDp0aGlzLnNoZWV0SWR9fTtpZighMT09'@; put 'PXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvU2V0Q2VsbENvbnRlbnRzKFplKSlyZXR1cm4hMTtjb25zdCBpdD10aGlzLmVuZ2luZS5nZXRGaWxsUmFuZ2VEYXRhKEVlLFplKSx7cm93OmV0LGNvbDp5dH09RWUuc3RhcnQse3JvdzpFdCxjb2w6U3R9PUVlLmVuZCxKdD1FdC1ldCsxLG5uPVN0'@; put 'LXl0KzE7Zm9yKGxldCB2bj0wO3ZuPGl0Lmxlbmd0aDt2bis9MSlmb3IobGV0IE5uPTA7Tm48aXRbdm5dLmxlbmd0aDtObis9MSl7Y29uc3QgY3I9aXRbdm5dW05uXSxJcj12biVKdCxFaT1ObiVubixJaT10aGlzLmhvdC5nZXRDZWxsTWV0YShJcixFaSk7ZXooY3IsSWkudHlwZSkmJihjci5z'@; put 'dGFydHNXaXRoKCInIik/aXRbdm5dW05uXT1jci5zbGljZSgxKTohMT09PXRoaXMuaXNGb3JtdWxhQ2VsbFR5cGUoSXIsRWksdGhpcy5zaGVldElkKSYmKGl0W3ZuXVtObl09ZUZlKGNyLElpLmRhdGVGb3JtYXQpKSl9cmV0dXJuIGl0fW9uQmVmb3JlTG9hZERhdGEobCxhKXsoYXJndW1lbnRz'@; put 'Lmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiKS5pbmNsdWRlcyhidShDdSkpfHxyNCh0aGlzLGN6LExhKHRoaXMuaG90LmdldFNldHRpbmdzKCkuZGF0YSkpfW9uQWZ0ZXJDZWxsTWV0YVJlc2V0KCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTb3VyY2VEYXRh'@; put 'QXJyYXkoKTtsZXQgYT0hMTtsLmZvckVhY2goKGQsaCk9PntkLmZvckVhY2goKGYsXyk9Pntjb25zdCBUPXRoaXMuaG90LmdldENlbGxNZXRhKGgsXyksVz1ULmRhdGVGb3JtYXQ7ZXooZixULnR5cGUpJiYoYT0hMCxWaWUoZixXKT9sW2hdW19dPUJpZShmLFcpOiExPT09dGhpcy5pc0Zvcm11'@; put 'bGFDZWxsVHlwZShoLF8pJiYobFtoXVtfXT1gJyR7Zn1gKSl9KX0pLCEwPT09YSYmKHI0KHRoaXMsS2YsITApLHRoaXMuZW5naW5lLnNldFNoZWV0Q29udGVudCh0aGlzLnNoZWV0SWQsbCkscjQodGhpcyxLZiwhMSkpfW9uQWZ0ZXJMb2FkRGF0YShsLGEpe2lmKCEoYXJndW1lbnRzLmxlbmd0'@; put 'aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiKS5pbmNsdWRlcyhidShDdSkpKWlmKHRoaXMuc2hlZXROYW1lPWZ1bmN0aW9uIFhQZShjLGwpe3JldHVybihMYShsKXx8IWMuZG9lc1NoZWV0RXhpc3QobCkpJiYobD1jLmFkZFNoZWV0KGwpKSxsfSh0aGlzLmVuZ2lu'@; put 'ZSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0N1XS5zaGVldE5hbWUpLFI3KHRoaXMsY3opKXRoaXMuc3dpdGNoU2hlZXQodGhpcy5zaGVldE5hbWUpO2Vsc2V7Y29uc3QgaD10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJyYXkoKTtpZih0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1JlcGxhY2VT'@; put 'aGVldENvbnRlbnQodGhpcy5zaGVldElkLGgpKXtyNCh0aGlzLEtmLCEwKTtjb25zdCBmPXRoaXMuZW5naW5lLnNldFNoZWV0Q29udGVudCh0aGlzLnNoZWV0SWQsaCk7dGhpcy5pbmRleFN5bmNlci5zZXR1cFN5bmNFbmRwb2ludCh0aGlzLmVuZ2luZSx0aGlzLnNoZWV0SWQpLHRoaXMucmVu'@; put 'ZGVyRGVwZW5kZW50U2hlZXRzKGYpLHI0KHRoaXMsS2YsITEpfX19b25Nb2RpZnlEYXRhKGwsYSxkLGgpe2lmKCJnZXQiIT09aHx8UjcodGhpcyxLZil8fG51bGw9PT10aGlzLnNoZWV0TmFtZXx8IXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKSlyZXR1cm47Y29u'@; put 'c3QgZj10aGlzLmhvdC50b1Zpc3VhbFJvdyhsKTtpZihudWxsPT09Znx8bnVsbD09PWEpcmV0dXJuO2lmKCF0aGlzLmlzRm9ybXVsYUNlbGxUeXBlKGYsYSkmJiJBUlJBWSIhPT10aGlzLmdldENlbGxUeXBlKGYsYSkpcmV0dXJuIHZvaWQoTmllKGQudmFsdWUpJiYoZC52YWx1ZT1mdW5jdGlv'@; put 'biBKUGUoYyl7cmV0dXJuIE5pZShjKT9jLnN1YnN0cigxKTpjfShkLnZhbHVlKSkpO2NvbnN0IFQ9e3Jvdzp0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChmKSxjb2w6dGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoYSks'@; put 'c2hlZXQ6dGhpcy5zaGVldElkfTtsZXQgVz10aGlzLmVuZ2luZS5nZXRDZWxsVmFsdWUoVCk7Y29uc3QgaWU9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoZixhKTsiZGF0ZSI9PT1pZS50eXBlJiZHdShXKSYmKFc9amllKFcsaWUuZGF0ZUZvcm1hdCkpLGQudmFsdWU9Im9iamVjdCI9PXR5cGVvZiBX'@; put 'JiZudWxsIT09Vz9XLnZhbHVlOld9b25Nb2RpZnlTb3VyY2VEYXRhKGwsYSxkLGgpe2lmKCJnZXQiIT09aHx8UjcodGhpcyxLZil8fG51bGw9PT10aGlzLnNoZWV0TmFtZXx8IXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKSlyZXR1cm47Y29uc3QgZj10aGlzLmhv'@; put 'dC50b1Zpc3VhbFJvdyhsKSxfPXRoaXMuaG90LnByb3BUb0NvbChhKTtpZihudWxsPT09Znx8bnVsbD09PV98fCF0aGlzLmlzRm9ybXVsYUNlbGxUeXBlKGYsXykmJiJBUlJBWSIhPT10aGlzLmdldENlbGxUeXBlKGYsXykpcmV0dXJuO2NvbnN0IFc9dGhpcy5lbmdpbmUuZ2V0U2hlZXREaW1l'@; put 'bnNpb25zKHRoaXMuZW5naW5lLmdldFNoZWV0SWQodGhpcy5zaGVldE5hbWUpKTtpZigwPT09Vy53aWR0aCYmMD09PVcuaGVpZ2h0KXJldHVybjtjb25zdCBpZT17cm93OnRoaXMucm93QXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGYpLGNvbDp0aGlzLmNvbHVtbkF4aXNT'@; put 'eW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChfKSxzaGVldDp0aGlzLnNoZWV0SWR9O2QudmFsdWU9dGhpcy5lbmdpbmUuZ2V0Q2VsbFNlcmlhbGl6ZWQoaWUpfW9uQWZ0ZXJTZXREYXRhQXRDZWxsKGwsYSl7aWYoTzcoYSkpcmV0dXJuO2NvbnN0IGQ9W10saD1bXSxmPXRoaXMuZW5n'@; put 'aW5lLmJhdGNoKCgpPT57bC5mb3JFYWNoKF89PntsZXRbVCxXLCxpZV09Xztjb25zdCBwZT10aGlzLmhvdC5wcm9wVG9Db2woVyksd2U9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhUKSxFZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHBlKSxaZT17cm93OnRoaXMucm93QXhpc1N5bmNlci5n'@; put 'ZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KFQpLGNvbDp0aGlzLmNvbHVtbkF4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChwZSksc2hlZXQ6dGhpcy5zaGVldElkfTtudWxsIT09d2UmJm51bGwhPT1FZT90aGlzLnN5bmNDaGFuZ2VXaXRoRW5naW5lKFQscGUsaWUpOmQucHVz'@; put 'aChbVCxwZSxpZV0pLGgucHVzaCh7YWRkcmVzczpaZX0pfSl9KTtkLmxlbmd0aCYmdGhpcy5ob3QuYWRkSG9va09uY2UoImFmdGVyQ2hhbmdlIiwoKT0+e2NvbnN0IF89dGhpcy5lbmdpbmUuYmF0Y2goKCk9PntkLmZvckVhY2goVD0+e2xldFtXLGllLHBlXT1UO3RoaXMuc3luY0NoYW5nZVdp'@; put 'dGhFbmdpbmUoVyxpZSxwZSl9KX0pO3RoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKF8sITApfSksdGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoZiksdGhpcy52YWxpZGF0ZURlcGVuZGVudENlbGxzKGYsaCl9b25BZnRlclNldFNvdXJjZURhdGFBdENlbGwobCxhKXtpZihPNyhhKSlyZXR1'@; put 'cm47Y29uc3QgZD1bXSxoPVtdO2wuZm9yRWFjaChmPT57bGV0W18sVCwsV109Zjtjb25zdCBpZT10aGlzLmhvdC5wcm9wVG9Db2woVCk7aWYoIUd1KGllKSlyZXR1cm47Y29uc3QgcGU9e3Jvdzp0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChfKSxjb2w6dGhp'@; put 'cy5jb2x1bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoaWUpLHNoZWV0OnRoaXMuc2hlZXRJZH07dGhpcy5lbmdpbmUuaXNJdFBvc3NpYmxlVG9TZXRDZWxsQ29udGVudHMocGUpPyhoLnB1c2goe2FkZHJlc3M6cGV9KSxkLnB1c2goLi4udGhpcy5lbmdpbmUuc2V0Q2Vs'@; put 'bENvbnRlbnRzKHBlLFcpKSk6R2EoYE5vdCBwb3NzaWJsZSB0byBzZXQgc291cmNlIGNlbGwgZGF0YSBhdCAke0pTT04uc3RyaW5naWZ5KHBlKX1gKX0pLHRoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKGQpLHRoaXMudmFsaWRhdGVEZXBlbmRlbnRDZWxscyhkLGgpfW9uQmVmb3JlQ3JlYXRl'@; put 'Um93KGwsYSl7bGV0IGQ9dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgobCk7aWYobD49dGhpcy5ob3QuY291bnRSb3dzKCkmJihkPWwpLG51bGw9PT10aGlzLnNoZWV0SWR8fCF0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdCh0aGlzLnNoZWV0TmFtZSl8fCF0'@; put 'aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb0FkZFJvd3ModGhpcy5zaGVldElkLFtkLGFdKSlyZXR1cm4hMX1vbkJlZm9yZUNyZWF0ZUNvbChsLGEpe2xldCBkPXRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGwpO2lmKGw+PXRoaXMuaG90LmNvdW50Q29s'@; put 'cygpJiYoZD1sKSxudWxsPT09dGhpcy5zaGVldElkfHwhdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QodGhpcy5zaGVldE5hbWUpfHwhdGhpcy5lbmdpbmUuaXNJdFBvc3NpYmxlVG9BZGRDb2x1bW5zKHRoaXMuc2hlZXRJZCxbZCxhXSkpcmV0dXJuITF9b25CZWZvcmVSZW1vdmVSb3cobCxh'@; put 'LGQpe3JldHVybiExIT09dGhpcy5yb3dBeGlzU3luY2VyLnNldFJlbW92ZWRIZkluZGV4ZXMoZCkuZXZlcnkoXz0+dGhpcy5lbmdpbmUuaXNJdFBvc3NpYmxlVG9SZW1vdmVSb3dzKHRoaXMuc2hlZXRJZCxbXywxXSkpJiZ2b2lkIDB9b25CZWZvcmVSZW1vdmVDb2wobCxhLGQpe3JldHVybiEx'@; put 'IT09dGhpcy5jb2x1bW5BeGlzU3luY2VyLnNldFJlbW92ZWRIZkluZGV4ZXMoZCkuZXZlcnkoXz0+dGhpcy5lbmdpbmUuaXNJdFBvc3NpYmxlVG9SZW1vdmVDb2x1bW5zKHRoaXMuc2hlZXRJZCxbXywxXSkpJiZ2b2lkIDB9b25BZnRlckNyZWF0ZVJvdyhsLGEsZCl7aWYoTzcoZCkpcmV0dXJu'@; put 'O2NvbnN0IGg9dGhpcy5lbmdpbmUuYWRkUm93cyh0aGlzLnNoZWV0SWQsW3RoaXMucm93QXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGwpLGFdKTt0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhoKX1vbkFmdGVyQ3JlYXRlQ29sKGwsYSxkKXtpZihPNyhkKSlyZXR1cm47'@; put 'Y29uc3QgaD10aGlzLmVuZ2luZS5hZGRDb2x1bW5zKHRoaXMuc2hlZXRJZCxbdGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgobCksYV0pO3RoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKGgpfW9uQWZ0ZXJSZW1vdmVSb3cobCxhLGQsaCl7aWYoTzcoaCkp'@; put 'cmV0dXJuO2NvbnN0IGY9dGhpcy5yb3dBeGlzU3luY2VyLmdldFJlbW92ZWRIZkluZGV4ZXMoKS5zb3J0KCkucmV2ZXJzZSgpLF89dGhpcy5lbmdpbmUuYmF0Y2goKCk9PntmLmZvckVhY2goVD0+e3RoaXMuZW5naW5lLnJlbW92ZVJvd3ModGhpcy5zaGVldElkLFtULDFdKX0pfSk7dGhpcy5y'@; put 'ZW5kZXJEZXBlbmRlbnRTaGVldHMoXyl9b25BZnRlclJlbW92ZUNvbChsLGEsZCxoKXtpZihPNyhoKSlyZXR1cm47Y29uc3QgZj10aGlzLmNvbHVtbkF4aXNTeW5jZXIuZ2V0UmVtb3ZlZEhmSW5kZXhlcygpLnNvcnQoKS5yZXZlcnNlKCksXz10aGlzLmVuZ2luZS5iYXRjaCgoKT0+e2YuZm9y'@; put 'RWFjaChUPT57dGhpcy5lbmdpbmUucmVtb3ZlQ29sdW1ucyh0aGlzLnNoZWV0SWQsW1QsMV0pfSl9KTt0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhfKX1vbkFmdGVyRGV0YWNoQ2hpbGQobCxhLGQpe3ZhciBoO3I0KHRoaXMsS2YsITApO2NvbnN0IGY9dGhpcy5ob3QuZ2V0U291cmNlRGF0'@; put 'YUFycmF5KGQsMCxkKygobnVsbD09PShoPWEuX19jaGlsZHJlbil8fHZvaWQgMD09PWg/dm9pZCAwOmgubGVuZ3RoKXx8MCksdGhpcy5ob3QuY291bnRTb3VyY2VDb2xzKCkpO3I0KHRoaXMsS2YsITEpLGYuZm9yRWFjaCgoXyxUKT0+e18uZm9yRWFjaCgoVyxpZSk9Pnt0aGlzLmVuZ2luZS5z'@; put 'ZXRDZWxsQ29udGVudHMoe2NvbDppZSxyb3c6ZCtULHNoZWV0OnRoaXMuc2hlZXRJZH0sW1tXXV0pfSl9KX1vbkVuZ2luZVZhbHVlc1VwZGF0ZWQobCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLGwpfW9uRW5naW5lTmFtZWRFeHByZXNzaW9uc0FkZGVk'@; put 'KGwsYSl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQiLGwsYSl9b25FbmdpbmVOYW1lZEV4cHJlc3Npb25zUmVtb3ZlZChsLGEpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck5hbWVkRXhwcmVzc2lvblJlbW92ZWQiLGwsYSl9b25FbmdpbmVTaGVldEFkZGVk'@; put 'KGwpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclNoZWV0QWRkZWQiLGwpfW9uRW5naW5lU2hlZXRSZW5hbWVkKGwsYSl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyU2hlZXRSZW5hbWVkIixsLGEpfW9uRW5naW5lU2hlZXRSZW1vdmVkKGwsYSl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyU2hl'@; put 'ZXRSZW1vdmVkIixsLGEpfX1mdW5jdGlvbiBXaWUoYyxsLGEpeyhmdW5jdGlvbiB5RmUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNl'@; put 'dChjLGEpfWZ1bmN0aW9uIHcxKGMsbCl7cmV0dXJuIGZ1bmN0aW9uIHdGZShjLGwpe3JldHVybiBsLmdldD9sLmdldC5jYWxsKGMpOmwudmFsdWV9KGMsR2llKGMsbCwiZ2V0IikpfWZ1bmN0aW9uIEd5KGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gQ0ZlKGMsbCxhKXtpZihsLnNldClsLnNldC5j'@; put 'YWxsKGMsYSk7ZWxzZXtpZighbC53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7bC52YWx1ZT1hfX0oYyxHaWUoYyxsLCJzZXQiKSxhKSxhfWZ1bmN0aW9uIEdpZShjLGwsYSl7aWYoIWwuaGFzKGMpKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2ErIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBsLmdldChjKX1zby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlSGlkZUNvbHVtbnMiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJI'@; put 'aWRlQ29sdW1ucyIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVVbmhpZGVDb2x1bW5zIiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyVW5oaWRlQ29sdW1ucyIpO2NvbnN0IHV6PSJoaWRkZW5Db2x1bW5zIjt2YXIgQ2g9bmV3IFdlYWtNYXAsU2g9bmV3IFdl'@; put 'YWtNYXA7Y2xhc3MgTUZlIGV4dGVuZHMgWnN7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFdpZSh0aGlzLENoLHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLFdpZSh0aGlzLFNoLHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJu'@; put 'IHV6fXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDMxMH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbdXpdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7aWYodGhpcy5lbmFibGVkKXJldHVybjtjb25zdCBhPXRoaXMuaG90LmdldFNldHRp'@; put 'bmdzKClbdXpdO3VzKGEpJiYoR3kodGhpcyxDaCxhKSxMYShhLmNvcHlQYXN0ZUVuYWJsZWQpJiYoYS5jb3B5UGFzdGVFbmFibGVkPSEwKSksR3kodGhpcyxTaCxuZXcgeGspLHcxKHRoaXMsU2gpLmFkZExvY2FsSG9vaygiaW5pdCIsKCk9PnRoaXMub25NYXBJbml0KCkpLHRoaXMuaG90LmNv'@; put 'bHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSx3MSh0aGlzLFNoKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMoLi4uYXJndW1l'@; put 'bnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDZWxsTWV0YSIsKGQsaCxmKT0+dGhpcy5vbkFmdGVyR2V0Q2VsbE1ldGEoZCxoLGYpKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIiwoZCxoKT0+dGhpcy5vbk1vZGlmeUNvbFdpZHRoKGQsaCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJH'@; put 'ZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckdldENvbEhlYWRlciguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb3B5YWJsZVJhbmdlIixkPT50aGlzLm9uTW9kaWZ5Q29weWFibGVSYW5nZShkKSksc3VwZXIuZW5hYmxlUGx1Z2luKCl9dXBkYXRl'@; put 'UGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUpLEd5KHRoaXMsQ2gse30pLHN1cGVy'@; put 'LmRpc2FibGVQbHVnaW4oKSx0aGlzLnJlc2V0Q2VsbHNNZXRhKCl9c2hvd0NvbHVtbnMobCl7Y29uc3QgYT10aGlzLmdldEhpZGRlbkNvbHVtbnMoKSxkPXRoaXMuaXNWYWxpZENvbmZpZyhsKTtsZXQgaD1hO2NvbnN0IGY9dzEodGhpcyxTaCkuZ2V0VmFsdWVzKCkuc2xpY2UoKSxfPWwubGVu'@; put 'Z3RoPjA7ZCYmXyYmKERuKGwubWFwKGllPT50aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGllKSksaWU9PntmW2llXT0hMX0pLGg9QWwoZiwoaWUscGUsd2UpPT4ocGUmJmllLnB1c2godGhpcy5ob3QudG9WaXN1YWxDb2x1bW4od2UpKSxpZSksW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tz'@; put 'KCJiZWZvcmVVbmhpZGVDb2x1bW5zIixhLGgsZCYmXykmJihkJiZfJiZ3MSh0aGlzLFNoKS5zZXRWYWx1ZXMoZiksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbmhpZGVDb2x1bW5zIixhLGgsZCYmXyxkJiZoLmxlbmd0aDxhLmxl'@; put 'bmd0aCkpfXNob3dDb2x1bW4oKXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7ZDxsO2QrKylhW2RdPWFyZ3VtZW50c1tkXTt0aGlzLnNob3dDb2x1bW5zKGEpfWhpZGVDb2x1bW5zKGwpe2NvbnN0IGE9dGhpcy5nZXRIaWRkZW5Db2x1bW5zKCksZD10aGlz'@; put 'LmlzVmFsaWRDb25maWcobCk7bGV0IGg9YTtkJiYoaD1BcnJheS5mcm9tKG5ldyBTZXQoYS5jb25jYXQobCkpKSksITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlSGlkZUNvbHVtbnMiLGEsaCxkKSYmKGQmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKCgpPT57RG4obCxfPT57dzEodGhp'@; put 'cyxTaCkuc2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oXyksITApfSl9LCEwKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJIaWRlQ29sdW1ucyIsYSxoLGQsZCYmaC5sZW5ndGg+YS5sZW5ndGgpKX1oaWRlQ29sdW1uKCl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5n'@; put 'dGgsYT1uZXcgQXJyYXkobCksZD0wO2Q8bDtkKyspYVtkXT1hcmd1bWVudHNbZF07dGhpcy5oaWRlQ29sdW1ucyhhKX1nZXRIaWRkZW5Db2x1bW5zKCl7cmV0dXJuIGNzKHcxKHRoaXMsU2gpLmdldEhpZGRlbkluZGV4ZXMoKSxsPT50aGlzLmhvdC50b1Zpc3VhbENvbHVtbihsKSl9aXNIaWRk'@; put 'ZW4obCl7cmV0dXJuIHcxKHRoaXMsU2gpLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpKXx8ITF9aXNWYWxpZENvbmZpZyhsKXtjb25zdCBhPXRoaXMuaG90LmNvdW50Q29scygpO3JldHVybiEhKEFycmF5LmlzQXJyYXkobCkmJmwubGVuZ3RoPjApJiZsLmV2'@; put 'ZXJ5KGQ9Pk51bWJlci5pc0ludGVnZXIoZCkmJmQ+PTAmJmQ8YSl9cmVzZXRDZWxsc01ldGEoKXtEbih0aGlzLmhvdC5nZXRDZWxsc01ldGEoKSxsPT57bCYmKGwuc2tpcENvbHVtbk9uUGFzdGU9ITEpfSl9b25Nb2RpZnlDb2xXaWR0aChsLGEpe3JldHVybiB0aGlzLmlzSGlkZGVuKGEpPzA6'@; put 'dzEodGhpcyxDaCkuaW5kaWNhdG9ycyYmKHRoaXMuaXNIaWRkZW4oYSsxKXx8dGhpcy5pc0hpZGRlbihhLTEpKSYmIm51bWJlciI9PXR5cGVvZiBsJiZ0aGlzLmhvdC5oYXNDb2xIZWFkZXJzKCk/bCsxNTp2b2lkIDB9b25BZnRlckdldENlbGxNZXRhKGwsYSxkKXtpZighMT09PXcxKHRoaXMs'@; put 'Q2gpLmNvcHlQYXN0ZUVuYWJsZWQmJnRoaXMuaXNIaWRkZW4oYSkmJihkLnNraXBDb2x1bW5PblBhc3RlPSEwKSx0aGlzLmlzSGlkZGVuKGEtMSkpZC5jbGFzc05hbWU9ZC5jbGFzc05hbWV8fCIiLC0xPT09ZC5jbGFzc05hbWUuaW5kZXhPZigiYWZ0ZXJIaWRkZW5Db2x1bW4iKSYmKGQuY2xh'@; put 'c3NOYW1lKz0iIGFmdGVySGlkZGVuQ29sdW1uIik7ZWxzZSBpZihkLmNsYXNzTmFtZSl7Y29uc3QgaD1kLmNsYXNzTmFtZS5zcGxpdCgiICIpO2lmKGgubGVuZ3RoPjApe2NvbnN0IGY9aC5pbmRleE9mKCJhZnRlckhpZGRlbkNvbHVtbiIpO2Y+LTEmJmguc3BsaWNlKGYsMSksZC5jbGFzc05h'@; put 'bWU9aC5qb2luKCIgIil9fX1vbk1vZGlmeUNvcHlhYmxlUmFuZ2UobCl7aWYodzEodGhpcyxDaCkuY29weVBhc3RlRW5hYmxlZClyZXR1cm4gbDtjb25zdCBhPVtdLGQ9KGgsZixfLFQpPT57YS5wdXNoKHtzdGFydFJvdzpoLGVuZFJvdzpmLHN0YXJ0Q29sOl8sZW5kQ29sOlR9KX07cmV0dXJu'@; put 'IERuKGwsaD0+e2xldCBmPSEwLF89MDt2byhoLnN0YXJ0Q29sLGguZW5kQ29sLFQ9Pnt0aGlzLmlzSGlkZGVuKFQpPyhmfHxkKGguc3RhcnRSb3csaC5lbmRSb3csXyxULTEpLGY9ITApOihmJiYoXz1UKSxUPT09aC5lbmRDb2wmJmQoaC5zdGFydFJvdyxoLmVuZFJvdyxfLFQpLGY9ITEpfSl9'@; put 'KSxhfW9uQWZ0ZXJHZXRDb2xIZWFkZXIobCxhKXtpZighdzEodGhpcyxDaCkuaW5kaWNhdG9yc3x8bDwwKXJldHVybjtjb25zdCBkPVtdO2w+PTEmJnRoaXMuaXNIaWRkZW4obC0xKSYmZC5wdXNoKCJhZnRlckhpZGRlbkNvbHVtbiIpLGw8dGhpcy5ob3QuY291bnRDb2xzKCktMSYmdGhpcy5p'@; put 'c0hpZGRlbihsKzEpJiZkLnB1c2goImJlZm9yZUhpZGRlbkNvbHVtbiIpLHBpKGEsZCl9b25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMobCl7bC5pdGVtcy5wdXNoKHtuYW1lOmdzfSxmdW5jdGlvbiBfRmUoYyl7cmV0dXJue2tleToiaGlkZGVuX2NvbHVtbnNfaGlkZSIsbmFtZSgp'@; put 'e2NvbnN0IGw9dGhpcy5nZXRTZWxlY3RlZExhc3QoKTtsZXQgYT0wO2lmKEFycmF5LmlzQXJyYXkobCkpe2NvbnN0WyxkLCxoXT1sO2QtaCE9MCYmKGE9MSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShpQixhKX0sY2FsbGJhY2soKXtjb25zdHtmcm9tOmwsdG86YX09dGhpcy5n'@; put 'ZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGQ9TWF0aC5tYXgoTWF0aC5taW4obC5jb2wsYS5jb2wpLDApLGg9TWF0aC5tYXgobC5jb2wsYS5jb2wpLGY9W107Zm9yKGxldCBXPWQ7Vzw9aDtXKz0xKWYucHVzaChXKTtjLmhpZGVDb2x1bW5zKGYpO2NvbnN0IFQ9dGhpcy5jb2x1bW5JbmRleE1hcHBl'@; put 'ci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZltmLmxlbmd0aC0xXSwxLCEwKTtOdW1iZXIuaXNJbnRlZ2VyKFQpJiZUPj0wP3RoaXMuc2VsZWN0Q29sdW1ucyhUKTp0aGlzLmRlc2VsZWN0Q2VsbCgpLHRoaXMucmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LGRp'@; put 'c2FibGVkOiExLGhpZGRlbigpe3JldHVybiEodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19fSh0aGlzKSxmdW5jdGlvbiBiRmUoYyl7Y29uc3QgbD1bXTtyZXR1cm57a2V5OiJoaWRkZW5fY29s'@; put 'dW1uc19zaG93IixuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShvQixsLmxlbmd0aD4xPzE6MCl9LGNhbGxiYWNrKCl7dmFyIGEsZDtpZigwPT09bC5sZW5ndGgpcmV0dXJuO2xldCBoPWxbMF0sZj1sW2wubGVuZ3RoLTFdO2g9bnVsbCE9PShhPXRoaXMuY29sdW1uSW5k'@; put 'ZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGgtMSwtMSkpJiZ2b2lkIDAhPT1hP2E6MCxmPW51bGwhPT0oZD10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmKzEsMSkpJiZ2b2lkIDAhPT1kP2Q6dGhpcy5jb3VudENvbHMoKS0xLGMuc2hv'@; put 'd0NvbHVtbnMobCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSxmLWgrMT09PXRoaXMuY291bnRDb2xzKCl8fHRoaXMuc2VsZWN0Q29sdW1ucyhoLGYpfSxkaXNhYmxlZDohMSxoaWRkZW4oKXtjb25zdCBhPWNzKGMuZ2V0SGlkZGVuQ29sdW1ucygpLHdl'@; put 'PT50aGlzLnRvUGh5c2ljYWxDb2x1bW4od2UpKTtpZighdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJiF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8YS5sZW5ndGg8MSlyZXR1cm4hMDtsLmxlbmd0aD0wO2NvbnN0IGQ9dGhpcy5nZXRTZWxl'@; put 'Y3RlZFJhbmdlTGFzdCgpLGg9ZC5nZXRUb3BTdGFydENvcm5lcigpLmNvbCxmPWQuZ2V0Qm90dG9tRW5kQ29ybmVyKCkuY29sLF89dGhpcy5jb2x1bW5JbmRleE1hcHBlcixUPV8uZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChoKSxXPV8uZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRl'@; put 'eChmKSxpZT1fLmdldE5vdFRyaW1tZWRJbmRleGVzKCkscGU9W107aWYoaCE9PWYpe2lmKGYtaCsxPlctVCsxKXtjb25zdCBaZT1pZS5zbGljZShoLGYrMSk7cGUucHVzaCguLi5aZS5maWx0ZXIoaXQ9PmEuaW5jbHVkZXMoaXQpKSl9fWVsc2UgaWYoMD09PVQmJlQ8aClwZS5wdXNoKC4uLmll'@; put 'LnNsaWNlKDAsaCkpO2Vsc2UgaWYobnVsbD09PVQpcGUucHVzaCguLi5pZS5zbGljZSgwLHRoaXMuY291bnRDb2xzKCkpKTtlbHNle2NvbnN0IHdlPXRoaXMuY291bnRDb2xzKCktMTtXPT09Xy5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KF8uZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4'@; put 'KHdlLC0xKSkmJndlPmYmJnBlLnB1c2goLi4uaWUuc2xpY2UoZisxKSl9cmV0dXJuIERuKHBlLHdlPT57bC5wdXNoKHRoaXMudG9WaXN1YWxDb2x1bW4od2UpKX0pLDA9PT1sLmxlbmd0aH19fSh0aGlzKSl9b25NYXBJbml0KCl7QXJyYXkuaXNBcnJheSh3MSh0aGlzLENoKS5jb2x1bW5zKSYm'@; put 'dGhpcy5oaWRlQ29sdW1ucyh3MSh0aGlzLENoKS5jb2x1bW5zKX1kZXN0cm95KCl7R3kodGhpcyxDaCxudWxsKSxHeSh0aGlzLFNoLG51bGwpLHN1cGVyLmRlc3Ryb3koKX19ZnVuY3Rpb24gJGllKGMsbCxhKXsoZnVuY3Rpb24ga0ZlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVF'@; put 'cnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBfZChjLGwpe3JldHVybiBmdW5jdGlvbiBBRmUoYyxsKXtyZXR1cm4gbC5nZXQ/bC5nZXQuY2FsbChjKTpsLnZhbHVl'@; put 'fShjLHFpZShjLGwsImdldCIpKX1mdW5jdGlvbiAkeShjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uIFRGZShjLGwsYSl7aWYobC5zZXQpbC5zZXQuY2FsbChjLGEpO2Vsc2V7aWYoIWwud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0'@; put 'ZSBmaWVsZCIpO2wudmFsdWU9YX19KGMscWllKGMsbCwic2V0IiksYSksYX1mdW5jdGlvbiBxaWUoYyxsLGEpe2lmKCFsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIithKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gbC5nZXQoYyl9'@; put 'c28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUhpZGVSb3dzIiksc28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVySGlkZVJvd3MiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlVW5oaWRlUm93cyIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJh'@; put 'ZnRlclVuaGlkZVJvd3MiKTtjb25zdCBkej0iaGlkZGVuUm93cyI7dmFyIFhmPW5ldyBXZWFrTWFwLE1oPW5ldyBXZWFrTWFwO2NsYXNzIElGZSBleHRlbmRzIFpze2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSwkaWUodGhpcyxYZix7d3JpdGFibGU6ITAsdmFsdWU6e319KSwk'@; put 'aWUodGhpcyxNaCx7d3JpdGFibGU6ITAsdmFsdWU6bnVsbH0pfXN0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBken1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAzMjB9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2R6XX1lbmFibGVQ'@; put 'bHVnaW4oKXt2YXIgbD10aGlzO2lmKHRoaXMuZW5hYmxlZClyZXR1cm47Y29uc3QgYT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2R6XTt1cyhhKSYmKCR5KHRoaXMsWGYsYSksTGEoYS5jb3B5UGFzdGVFbmFibGVkKSYmKGEuY29weVBhc3RlRW5hYmxlZD0hMCkpLCR5KHRoaXMsTWgsbmV3IHhr'@; put 'KSxfZCh0aGlzLE1oKS5hZGRMb2NhbEhvb2soImluaXQiLCgpPT50aGlzLm9uTWFwSW5pdCgpKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsX2QodGhpcyxNaCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25z'@; put 'IixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLChkLGgsZik9PnRoaXMub25BZnRlckdldENlbGxNZXRhKGQsaCxmKSksdGhpcy5hZGRIb29rKCJtb2RpZnlS'@; put 'b3dIZWlnaHQiLChkLGgpPT50aGlzLm9uTW9kaWZ5Um93SGVpZ2h0KGQsaCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRSb3dIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckdldFJvd0hlYWRlciguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb3B5YWJsZVJh'@; put 'bmdlIixkPT50aGlzLm9uTW9kaWZ5Q29weWFibGVSYW5nZShkKSksc3VwZXIuZW5hYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5ob3Qucm93'@; put 'SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUpLCR5KHRoaXMsWGYse30pLHN1cGVyLmRpc2FibGVQbHVnaW4oKSx0aGlzLnJlc2V0Q2VsbHNNZXRhKCl9c2hvd1Jvd3MobCl7Y29uc3QgYT10aGlzLmdldEhpZGRlblJvd3MoKSxkPXRoaXMuaXNWYWxpZENvbmZpZyhs'@; put 'KTtsZXQgaD1hO2NvbnN0IGY9X2QodGhpcyxNaCkuZ2V0VmFsdWVzKCkuc2xpY2UoKSxfPWwubGVuZ3RoPjA7ZCYmXyYmKERuKGwubWFwKGllPT50aGlzLmhvdC50b1BoeXNpY2FsUm93KGllKSksaWU9PntmW2llXT0hMX0pLGg9QWwoZiwoaWUscGUsd2UpPT4ocGUmJmllLnB1c2godGhpcy5o'@; put 'b3QudG9WaXN1YWxSb3cod2UpKSxpZSksW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbmhpZGVSb3dzIixhLGgsZCYmXykmJihkJiZfJiZfZCh0aGlzLE1oKS5zZXRWYWx1ZXMoZiksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5oaWRlUm93cyIsYSxoLGQmJl8sZCYmaC5s'@; put 'ZW5ndGg8YS5sZW5ndGgpKX1zaG93Um93KCl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobCksZD0wO2Q8bDtkKyspYVtkXT1hcmd1bWVudHNbZF07dGhpcy5zaG93Um93cyhhKX1oaWRlUm93cyhsKXtjb25zdCBhPXRoaXMuZ2V0SGlkZGVuUm93cygpLGQ9dGhpcy5p'@; put 'c1ZhbGlkQ29uZmlnKGwpO2xldCBoPWE7ZCYmKGg9QXJyYXkuZnJvbShuZXcgU2V0KGEuY29uY2F0KGwpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUhpZGVSb3dzIixhLGgsZCkmJihkJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e0RuKGwsXz0+e19kKHRoaXMsTWgp'@; put 'LnNldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KF8pLCEwKX0pfSwhMCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVySGlkZVJvd3MiLGEsaCxkLGQmJmgubGVuZ3RoPmEubGVuZ3RoKSl9aGlkZVJvdygpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5'@; put 'KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3RoaXMuaGlkZVJvd3MoYSl9Z2V0SGlkZGVuUm93cygpe3JldHVybiBjcyhfZCh0aGlzLE1oKS5nZXRIaWRkZW5JbmRleGVzKCksbD0+dGhpcy5ob3QudG9WaXN1YWxSb3cobCkpfWlzSGlkZGVuKGwpe3JldHVybiBfZCh0aGlzLE1o'@; put 'KS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbFJvdyhsKSl8fCExfWlzVmFsaWRDb25maWcobCl7Y29uc3QgYT10aGlzLmhvdC5jb3VudFJvd3MoKTtyZXR1cm4hIShBcnJheS5pc0FycmF5KGwpJiZsLmxlbmd0aD4wKSYmbC5ldmVyeShkPT5OdW1iZXIuaXNJbnRlZ2VyKGQp'@; put 'JiZkPj0wJiZkPGEpfXJlc2V0Q2VsbHNNZXRhKCl7RG4odGhpcy5ob3QuZ2V0Q2VsbHNNZXRhKCksbD0+e2wmJihsLnNraXBSb3dPblBhc3RlPSExKX0pfW9uTW9kaWZ5Um93SGVpZ2h0KGwsYSl7cmV0dXJuIHRoaXMuaXNIaWRkZW4oYSk/MDpsfW9uQWZ0ZXJHZXRDZWxsTWV0YShsLGEsZCl7'@; put 'aWYoITE9PT1fZCh0aGlzLFhmKS5jb3B5UGFzdGVFbmFibGVkJiZ0aGlzLmlzSGlkZGVuKGwpJiYoZC5za2lwUm93T25QYXN0ZT0hMCksdGhpcy5pc0hpZGRlbihsLTEpKWQuY2xhc3NOYW1lPWQuY2xhc3NOYW1lfHwiIiwtMT09PWQuY2xhc3NOYW1lLmluZGV4T2YoImFmdGVySGlkZGVuUm93'@; put 'IikmJihkLmNsYXNzTmFtZSs9IiBhZnRlckhpZGRlblJvdyIpO2Vsc2UgaWYoZC5jbGFzc05hbWUpe2NvbnN0IGg9ZC5jbGFzc05hbWUuc3BsaXQoIiAiKTtpZihoLmxlbmd0aD4wKXtjb25zdCBmPWguaW5kZXhPZigiYWZ0ZXJIaWRkZW5Sb3ciKTtmPi0xJiZoLnNwbGljZShmLDEpLGQuY2xh'@; put 'c3NOYW1lPWguam9pbigiICIpfX19b25Nb2RpZnlDb3B5YWJsZVJhbmdlKGwpe2lmKF9kKHRoaXMsWGYpLmNvcHlQYXN0ZUVuYWJsZWQpcmV0dXJuIGw7Y29uc3QgYT1bXSxkPShoLGYsXyxUKT0+e2EucHVzaCh7c3RhcnRSb3c6aCxlbmRSb3c6ZixzdGFydENvbDpfLGVuZENvbDpUfSl9O3Jl'@; put 'dHVybiBEbihsLGg9PntsZXQgZj0hMCxfPTA7dm8oaC5zdGFydFJvdyxoLmVuZFJvdyxUPT57dGhpcy5pc0hpZGRlbihUKT8oZnx8ZChfLFQtMSxoLnN0YXJ0Q29sLGguZW5kQ29sKSxmPSEwKTooZiYmKF89VCksVD09PWguZW5kUm93JiZkKF8sVCxoLnN0YXJ0Q29sLGguZW5kQ29sKSxmPSEx'@; put 'KX0pfSksYX1vbkFmdGVyR2V0Um93SGVhZGVyKGwsYSl7aWYoIV9kKHRoaXMsWGYpLmluZGljYXRvcnN8fGw8MClyZXR1cm47Y29uc3QgZD1bXTtsPj0xJiZ0aGlzLmlzSGlkZGVuKGwtMSkmJmQucHVzaCgiYWZ0ZXJIaWRkZW5Sb3ciKSxsPHRoaXMuaG90LmNvdW50Um93cygpLTEmJnRoaXMu'@; put 'aXNIaWRkZW4obCsxKSYmZC5wdXNoKCJiZWZvcmVIaWRkZW5Sb3ciKSxwaShhLGQpfW9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zKGwpe2wuaXRlbXMucHVzaCh7bmFtZTpnc30sZnVuY3Rpb24geEZlKGMpe3JldHVybntrZXk6ImhpZGRlbl9yb3dzX2hpZGUiLG5hbWUoKXtjb25z'@; put 'dCBsPXRoaXMuZ2V0U2VsZWN0ZWRMYXN0KCk7bGV0IGE9MDtpZihBcnJheS5pc0FycmF5KGwpKXtjb25zdFtkLCxoXT1sO2QtaCE9MCYmKGE9MSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShzQixhKX0sY2FsbGJhY2soKXtjb25zdHtmcm9tOmwsdG86YX09dGhpcy5nZXRTZWxl'@; put 'Y3RlZFJhbmdlTGFzdCgpLGQ9TWF0aC5tYXgoTWF0aC5taW4obC5yb3csYS5yb3cpLDApLGg9TWF0aC5tYXgobC5yb3csYS5yb3cpLGY9W107Zm9yKGxldCBXPWQ7Vzw9aDtXKz0xKWYucHVzaChXKTtjLmhpZGVSb3dzKGYpO2NvbnN0IFQ9dGhpcy5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0'@; put 'Tm90SGlkZGVuSW5kZXgoZltmLmxlbmd0aC0xXSwxLCEwKTtOdW1iZXIuaXNJbnRlZ2VyKFQpJiZUPj0wP3RoaXMuc2VsZWN0Um93cyhUKTp0aGlzLmRlc2VsZWN0Q2VsbCgpLHRoaXMucmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LGRpc2FibGVkOiExLGhpZGRl'@; put 'bigpe3JldHVybiEodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19fSh0aGlzKSxmdW5jdGlvbiBFRmUoYyl7Y29uc3QgbD1bXTtyZXR1cm57a2V5OiJoaWRkZW5fcm93c19zaG93IixuYW1lKCl7cmV0'@; put 'dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShhQixsLmxlbmd0aD4xPzE6MCl9LGNhbGxiYWNrKCl7dmFyIGEsZDtpZigwPT09bC5sZW5ndGgpcmV0dXJuO2xldCBoPWxbMF0sZj1sW2wubGVuZ3RoLTFdO2g9bnVsbCE9PShhPXRoaXMucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhp'@; put 'ZGRlbkluZGV4KGgtMSwtMSkpJiZ2b2lkIDAhPT1hP2E6MCxmPW51bGwhPT0oZD10aGlzLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmKzEsMSkpJiZ2b2lkIDAhPT1kP2Q6dGhpcy5jb3VudFJvd3MoKS0xLGMuc2hvd1Jvd3MobCksdGhpcy5yZW5kZXIoKSx0aGlz'@; put 'LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSxmLWgrMT09PXRoaXMuY291bnRSb3dzKCl8fHRoaXMuc2VsZWN0Um93cyhoLGYpfSxkaXNhYmxlZDohMSxoaWRkZW4oKXtjb25zdCBhPWNzKGMuZ2V0SGlkZGVuUm93cygpLHdlPT50aGlzLnRvUGh5c2ljYWxSb3cod2UpKTtpZighdGhpcy5z'@; put 'ZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkmJiF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8YS5sZW5ndGg8MSlyZXR1cm4hMDtsLmxlbmd0aD0wO2NvbnN0IGQ9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGg9ZC5nZXRUb3BTdGFydENvcm5lcigpLnJv'@; put 'dyxmPWQuZ2V0Qm90dG9tRW5kQ29ybmVyKCkucm93LF89dGhpcy5yb3dJbmRleE1hcHBlcixUPV8uZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChoKSxXPV8uZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChmKSxpZT1fLmdldE5vdFRyaW1tZWRJbmRleGVzKCkscGU9W107aWYoaCE9'@; put 'PWYpe2lmKGYtaCsxPlctVCsxKXtjb25zdCBaZT1pZS5zbGljZShoLGYrMSk7cGUucHVzaCguLi5aZS5maWx0ZXIoaXQ9PmEuaW5jbHVkZXMoaXQpKSl9fWVsc2UgaWYoMD09PVQmJlQ8aClwZS5wdXNoKC4uLmllLnNsaWNlKDAsaCkpO2Vsc2UgaWYobnVsbD09PVQpcGUucHVzaCguLi5pZS5z'@; put 'bGljZSgwLHRoaXMuY291bnRSb3dzKCkpKTtlbHNle2NvbnN0IHdlPXRoaXMuY291bnRSb3dzKCktMTtXPT09Xy5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KF8uZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHdlLC0xKSkmJndlPmYmJnBlLnB1c2goLi4uaWUuc2xpY2UoZisxKSl9cmV0'@; put 'dXJuIERuKHBlLHdlPT57bC5wdXNoKHRoaXMudG9WaXN1YWxSb3cod2UpKX0pLDA9PT1sLmxlbmd0aH19fSh0aGlzKSl9b25NYXBJbml0KCl7QXJyYXkuaXNBcnJheShfZCh0aGlzLFhmKS5yb3dzKSYmdGhpcy5oaWRlUm93cyhfZCh0aGlzLFhmKS5yb3dzKX1kZXN0cm95KCl7JHkodGhpcyxY'@; put 'ZixudWxsKSwkeSh0aGlzLE1oLG51bGwpLHN1cGVyLmRlc3Ryb3koKX19c28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbHVtbkZyZWV6ZSIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtbkZyZWV6ZSIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVy'@; put 'KCJiZWZvcmVDb2x1bW5VbmZyZWV6ZSIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtblVuZnJlZXplIik7Y29uc3QgS2llPSJtYW51YWxDb2x1bW5GcmVlemUiLHF5PW5ldyBXZWFrTWFwO2NsYXNzIFBGZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgp'@; put 'e3JldHVybiBLaWV9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMTEwfWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLHF5LnNldCh0aGlzLHthZnRlckZpcnN0VXNlOiExfSl9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0tpZV19ZW5hYmxlUGx1'@; put 'Z2luKCl7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGw9PnRoaXMuYWRkQ29udGV4dE1lbnVFbnRyeShsKSksdGhpcy5hZGRIb29rKCJiZWZvcmVDb2x1bW5Nb3ZlIiwobCxhKT0+dGhpcy5vbkJlZm9yZUNvbHVtbk1vdmUobCxh'@; put 'KSksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfWRpc2FibGVQbHVnaW4oKXtxeS5nZXQodGhpcykuYWZ0ZXJGaXJzdFVzZT0hMSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVn'@; put 'aW4oKX1mcmVlemVDb2x1bW4obCl7Y29uc3QgYT1xeS5nZXQodGhpcyksZD10aGlzLmhvdC5nZXRTZXR0aW5ncygpLGg9ZC5maXhlZENvbHVtbnNTdGFydDx0aGlzLmhvdC5jb3VudENvbHMoKSYmbD5kLmZpeGVkQ29sdW1uc1N0YXJ0LTE7YS5hZnRlckZpcnN0VXNlfHwoYS5hZnRlckZpcnN0'@; put 'VXNlPSEwKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb2x1bW5GcmVlemUiLGwsaCkmJihoJiYodGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIubW92ZUluZGV4ZXMobCxkLmZpeGVkQ29sdW1uc1N0YXJ0KSxkLl9maXhlZENvbHVtbnNTdGFydCs9MSksdGhpcy5ob3QucnVuSG9v'@; put 'a3MoImFmdGVyQ29sdW1uRnJlZXplIixsLGgpKX11bmZyZWV6ZUNvbHVtbihsKXtjb25zdCBhPXF5LmdldCh0aGlzKSxkPXRoaXMuaG90LmdldFNldHRpbmdzKCksaD1kLmZpeGVkQ29sdW1uc1N0YXJ0PjAmJmw8PWQuZml4ZWRDb2x1bW5zU3RhcnQtMTthLmFmdGVyRmlyc3RVc2V8fChhLmFm'@; put 'dGVyRmlyc3RVc2U9ITApLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtblVuZnJlZXplIixsLGgpJiYoaCYmKGQuX2ZpeGVkQ29sdW1uc1N0YXJ0LT0xLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLm1vdmVJbmRleGVzKGwsZC5maXhlZENvbHVtbnNTdGFydCkpLHRoaXMu'@; put 'aG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtblVuZnJlZXplIixsLGgpKX1hZGRDb250ZXh0TWVudUVudHJ5KGwpe2wuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gTEZlKGMpe3JldHVybntrZXk6ImZyZWV6ZV9jb2x1bW4iLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFu'@; put 'c2xhdGVkUGhyYXNlKE9WKX0sY2FsbGJhY2sobCxhKXtjb25zdFt7c3RhcnQ6e2NvbDpkfX1dPWE7Yy5mcmVlemVDb2x1bW4oZCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX0saGlkZGVuKCl7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTts'@; put 'ZXQgYT0hMTtyZXR1cm4odm9pZCAwPT09bHx8bC5sZW5ndGg+MXx8bFswXS5mcm9tLmNvbCE9PWxbMF0udG8uY29sfHxsWzBdLmZyb20uY29sPD10aGlzLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQtMSkmJihhPSEwKSxhfX19KHRoaXMpLGZ1bmN0aW9uIFJGZShjKXtyZXR1cm57'@; put 'a2V5OiJ1bmZyZWV6ZV9jb2x1bW4iLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFBWKX0sY2FsbGJhY2sobCxhKXtjb25zdFt7c3RhcnQ6e2NvbDpkfX1dPWE7Yy51bmZyZWV6ZUNvbHVtbihkKSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1Np'@; put 'emUoITApfSxoaWRkZW4oKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpO2xldCBhPSExO3JldHVybih2b2lkIDA9PT1sfHxsLmxlbmd0aD4xfHxsWzBdLmZyb20uY29sIT09bFswXS50by5jb2x8fGxbMF0uZnJvbS5jb2w+PXRoaXMuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNT'@; put 'dGFydCkmJihhPSEwKSxhfX19KHRoaXMpKX1vbkJlZm9yZUNvbHVtbk1vdmUobCxhKXtpZihxeS5nZXQodGhpcykuYWZ0ZXJGaXJzdFVzZSl7Y29uc3QgaD10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0O2lmKGE8aHx8bC5zb21lKGY9PmY8aCkpcmV0dXJuITF9fX1j'@; put 'b25zdCBQNz0icHgiLFFpZT1jbGFzcyBGRmV7Y29uc3RydWN0b3IobCl7dGhpcy5ob3Q9bCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wLHRoaXMuaW5saW5lUHJvcGVydHk9bC5pc1J0bCgpPyJyaWdodCI6ImxlZnQifWFwcGVuZFRvKGwpe2wuYXBwZW5kQ2hpbGQodGhpcy5fZWxl'@; put 'bWVudCksdGhpcy5zdGF0ZT0yfWJ1aWxkKCl7MD09PXRoaXMuc3RhdGUmJih0aGlzLl9lbGVtZW50PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnN0YXRlPTEpfWRlc3Ryb3koKXt0aGlzLmlzQXBwZW5kZWQoKSYmdGhpcy5fZWxlbWVudC5wYXJlbnRF'@; put 'bGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLnN0YXRlPTB9aXNBcHBlbmRlZCgpe3JldHVybiAyPT09dGhpcy5zdGF0ZX1pc0J1aWx0KCl7cmV0dXJuIHRoaXMuc3RhdGU+PTF9c2V0UG9zaXRpb24obCxhKXtHdShsKSYmKHRoaXMuX2Vs'@; put 'ZW1lbnQuc3R5bGUudG9wPWwrUDcpLEd1KGEpJiYodGhpcy5fZWxlbWVudC5zdHlsZVt0aGlzLmlubGluZVByb3BlcnR5XT1hK1A3KX1nZXRQb3NpdGlvbigpe2NvbnN0IGw9dGhpcy5fZWxlbWVudC5zdHlsZTtyZXR1cm57dG9wOmwudG9wP3BhcnNlSW50KGwudG9wLDEwKTowLHN0YXJ0Omxb'@; put 'dGhpcy5pbmxpbmVQcm9wZXJ0eV0/cGFyc2VJbnQobFt0aGlzLmlubGluZVByb3BlcnR5XSwxMCk6MH19c2V0U2l6ZShsLGEpe0d1KGwpJiYodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aD1sK1A3KSxHdShhKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0PWErUDcpfWdldFNpemUoKXty'@; put 'ZXR1cm57d2lkdGg6dGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLndpZHRoLDEwKTowLGhlaWdodDp0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodCwxMCk6MH19c2V0T2Zmc2V0'@; put 'KGwsYSl7R3UobCkmJih0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpblRvcD1sK1A3KSxHdShhKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGVbYG1hcmdpbiR7YnUodGhpcy5pbmxpbmVQcm9wZXJ0eSl9YF09YStQNyl9Z2V0T2Zmc2V0KCl7Y29uc3QgbD10aGlzLl9lbGVtZW50LnN0eWxlLGE9YG1h'@; put 'cmdpbiR7YnUodGhpcy5pbmxpbmVQcm9wZXJ0eSl9YDtyZXR1cm57dG9wOmwubWFyZ2luVG9wP3BhcnNlSW50KGwubWFyZ2luVG9wLDEwKTowLHN0YXJ0OmxbYV0/cGFyc2VJbnQobFthXSwxMCk6MH19fSxWRmU9Y2xhc3MgTkZlIGV4dGVuZHMgUWlle2J1aWxkKCl7c3VwZXIuYnVpbGQoKSxw'@; put 'aSh0aGlzLl9lbGVtZW50LCJodF9fbWFudWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0Iil9fSx6RmU9Y2xhc3MgakZlIGV4dGVuZHMgUWlle2J1aWxkKCl7c3VwZXIuYnVpbGQoKSxwaSh0aGlzLl9lbGVtZW50LCJodF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lIil9fTtzby5nZXRTaW5n'@; put 'bGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29sdW1uTW92ZSIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtbk1vdmUiKTtjb25zdCBmej0ibWFudWFsQ29sdW1uTW92ZSIsaTQ9bmV3IFdlYWtNYXAsZW9lPSJodF9fbWFudWFsQ29sdW1uTW92ZSIsUkE9InNob3ctdWki'@; put 'LHB6PSJvbi1tb3ZpbmctLWNvbHVtbnMiLGd6PSJhZnRlci1zZWxlY3Rpb24tLWNvbHVtbnMiO2NsYXNzIFpGZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBmen1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAxMjB9Y29uc3RydWN0b3IobCl7'@; put 'c3VwZXIobCksaTQuc2V0KHRoaXMse2NvbHVtbnNUb01vdmU6W10sY291bnRDb2xzOjAsZml4ZWRDb2x1bW5zOjAscHJlc3NlZDp2b2lkIDAsdGFyZ2V0OntldmVudFBhZ2VYOnZvaWQgMCxjb29yZHM6dm9pZCAwLFREOnZvaWQgMCxjb2w6dm9pZCAwfSxjYWNoZWREcm9wSW5kZXg6dm9pZCAw'@; put 'fSksdGhpcy5ldmVudE1hbmFnZXI9bmV3IGxsKHRoaXMpLHRoaXMuYmFja2xpZ2h0PW5ldyBWRmUobCksdGhpcy5ndWlkZWxpbmU9bmV3IHpGZShsKX1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbZnpdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5l'@; put 'bmFibGVkfHwodGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZvcmVPbkNlbGxNb3VzZURvd24oLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VPdmVyIixmdW5jdGlvbigpe3JldHVybiBsLm9u'@; put 'QmVmb3JlT25DZWxsTW91c2VPdmVyKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsKCk9PnRoaXMub25BZnRlclNjcm9sbFZlcnRpY2FsbHkoKSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0'@; put 'ZXJMb2FkRGF0YSguLi5hcmd1bWVudHMpfSksdGhpcy5idWlsZFBsdWdpblVJKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLHBpKHRoaXMuaG90LnJvb3RFbGVtZW50LGVvZSksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5h'@; put 'YmxlUGx1Z2luKCksdGhpcy5tb3ZlQnlTZXR0aW5nc09yTG9hZCgpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXtXbyh0aGlzLmhvdC5yb290RWxlbWVudCxlb2UpLHRoaXMudW5yZWdpc3RlckV2ZW50cygpLHRoaXMuYmFja2xpZ2h0LmRlc3Ryb3koKSx0aGlzLmd1aWRl'@; put 'bGluZS5kZXN0cm95KCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfW1vdmVDb2x1bW4obCxhKXtyZXR1cm4gdGhpcy5tb3ZlQ29sdW1ucyhbbF0sYSl9bW92ZUNvbHVtbnMobCxhKXtjb25zdCBkPWk0LmdldCh0aGlzKSxoPWQuY2FjaGVkRHJvcEluZGV4LGY9dGhpcy5pc01vdmVQb3NzaWJsZShs'@; put 'LGEpLF89dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtbk1vdmUiLGwsYSxoLGYpO2lmKGQuY2FjaGVkRHJvcEluZGV4PXZvaWQgMCwhMT09PV8pcmV0dXJuO2YmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLm1vdmVJbmRleGVzKGwsYSk7Y29uc3QgVD1mJiZ0aGlzLmlzQ29sdW1u'@; put 'T3JkZXJDaGFuZ2VkKGwsYSk7cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtbk1vdmUiLGwsYSxoLGYsVCksVH1kcmFnQ29sdW1uKGwsYSl7cmV0dXJuIHRoaXMuZHJhZ0NvbHVtbnMoW2xdLGEpfWRyYWdDb2x1bW5zKGwsYSl7Y29uc3QgZD10aGlzLmNvdW50RmluYWxJbmRl'@; put 'eChsLGEpO3JldHVybiBpNC5nZXQodGhpcykuY2FjaGVkRHJvcEluZGV4PWEsdGhpcy5tb3ZlQ29sdW1ucyhsLGQpfWlzTW92ZVBvc3NpYmxlKGwsYSl7Y29uc3QgZD10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpLGg9bC5sZW5ndGgrYT5k'@; put 'LGY9YTwwLF89bC5zb21lKFc9Plc8MCksVD1sLnNvbWUoVz0+Vz49ZCk7cmV0dXJuIShofHxmfHxffHxUKX1pc0NvbHVtbk9yZGVyQ2hhbmdlZChsLGEpe3JldHVybiBsLnNvbWUoKGQsaCk9PmQtaCE9PWEpfWNvdW50RmluYWxJbmRleChsLGEpe2NvbnN0IGQ9QWwobCwoaCxmKT0+KGY8YSYm'@; put 'KGgrPTEpLGgpLDApO3JldHVybiBhLWR9Z2V0Q29sdW1uc1dpZHRoKGwsYSl7Y29uc3QgZD10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlcjtsZXQgaD0wO2ZvcihsZXQgZj1sO2Y8PWE7Zis9MSl7Y29uc3QgXz1kLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZik7ZjwwP2grPXRoaXMu'@; put 'aG90LnZpZXcuX3d0Lnd0Vmlld3BvcnQuZ2V0Um93SGVhZGVyV2lkdGgoKXx8MDpudWxsIT09XyYmKGgrPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoXyl8fDApfXJldHVybiBofW1vdmVCeVNldHRpbmdzT3JMb2FkKCl7Y29uc3QgbD10aGlzLmhv'@; put 'dC5nZXRTZXR0aW5ncygpW2Z6XTtpZihBcnJheS5pc0FycmF5KGwpKXRoaXMubW92ZUNvbHVtbnMobCwwKTtlbHNlIGlmKHZvaWQgMCE9PWwpe2NvbnN0IGE9dGhpcy5wZXJzaXN0ZW50U3RhdGVMb2FkKCk7YS5sZW5ndGgmJnRoaXMubW92ZUNvbHVtbnMoYSwwKX19aXNGaXhlZENvbHVtbnNT'@; put 'dGFydChsKXtyZXR1cm4gbDx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0fXBlcnNpc3RlbnRTdGF0ZVNhdmUoKXt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlU2F2ZSIsIm1hbnVhbENvbHVtbk1vdmUiLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVy'@; put 'LmdldEluZGV4ZXNTZXF1ZW5jZSgpKX1wZXJzaXN0ZW50U3RhdGVMb2FkKCl7Y29uc3QgbD17fTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJtYW51YWxDb2x1bW5Nb3ZlIixsKSxsLnZhbHVlP2wudmFsdWU6W119cHJlcGFyZUNvbHVtbnNUb01vdmlu'@; put 'ZyhsLGEpe2NvbnN0IGQ9W107cmV0dXJuIHZvKGwsYSxoPT57ZC5wdXNoKGgpfSksZH1yZWZyZXNoUG9zaXRpb25zKCl7Y29uc3QgbD1pNC5nZXQodGhpcyksYT10aGlzLmhvdC52aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlQ29sdW1uKCk7dGhpcy5pc0ZpeGVkQ29sdW1uc1N0YXJ0KGwuaG92'@; put 'ZXJlZENvbHVtbikmJmE+MCYmdGhpcy5ob3Quc2Nyb2xsVmlld3BvcnRUbyh2b2lkIDAsdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGEtMSwtMSkpO2NvbnN0IGQ9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxoPXRoaXMuaG90LnZpZXcuX3d0'@; put 'Lnd0T3ZlcmxheXMuc2Nyb2xsYWJsZUVsZW1lbnQsZj0ibnVtYmVyIj09dHlwZW9mIGguc2Nyb2xsWD9oLnNjcm9sbFg6aC5zY3JvbGxMZWZ0O2xldCBfPXRoaXMuaG90LnZpZXcuVEhFQUQub2Zmc2V0TGVmdCt0aGlzLmdldENvbHVtbnNXaWR0aCgwLGwuaG92ZXJlZENvbHVtbi0xKTtjb25z'@; put 'dCBUPWQuaGlkZXIub2Zmc2V0V2lkdGgsVz1kLlRCT0RZLm9mZnNldExlZnQsaWU9dGhpcy5iYWNrbGlnaHQuZ2V0T2Zmc2V0KCkuc3RhcnQscGU9dGhpcy5iYWNrbGlnaHQuZ2V0U2l6ZSgpLndpZHRoO2xldCB3ZT0wLEVlPTA7aWYodGhpcy5ob3QuaXNSdGwoKSl7Y29uc3QgZXQ9dGhpcy5o'@; put 'b3Qucm9vdFdpbmRvdyx5dD13YSh0aGlzLmhvdC5yb290RWxlbWVudCk7RWU9ZXQuaW5uZXJXaWR0aC1sLnRhcmdldC5ldmVudFBhZ2VYLShldC5pbm5lcldpZHRoLWwucm9vdEVsZW1lbnRPZmZzZXQteXQpLSh2b2lkIDA9PT1oLnNjcm9sbFg/ZjowKX1lbHNlIEVlPWwudGFyZ2V0LmV2ZW50'@; put 'UGFnZVgtKGwucm9vdEVsZW1lbnRPZmZzZXQtKHZvaWQgMD09PWguc2Nyb2xsWD9mOjApKTtsLmhhc1Jvd0hlYWRlcnMmJih3ZT10aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENvbHVtbkhlYWRlcigtMSkub2Zmc2V0V2lk'@; put 'dGgpLHRoaXMuaXNGaXhlZENvbHVtbnNTdGFydChsLmhvdmVyZWRDb2x1bW4pJiYoXys9ZiksXys9d2UsbC5ob3ZlcmVkQ29sdW1uPDA/bC50YXJnZXQuY29sPWwuZml4ZWRDb2x1bW5zU3RhcnQ+MD8wOmE+MD9hLTE6YTpsLnRhcmdldC5URC5vZmZzZXRXaWR0aC8yK188PUVlPyhsLnRhcmdl'@; put 'dC5jb2w9KGwuaG92ZXJlZENvbHVtbj49bC5jb3VudENvbHM/bC5jb3VudENvbHMtMTpsLmhvdmVyZWRDb2x1bW4pKzEsXys9bC50YXJnZXQuVEQub2Zmc2V0V2lkdGgpOmwudGFyZ2V0LmNvbD1sLmhvdmVyZWRDb2x1bW47bGV0IFplPUVlLGl0PV87RWUrcGUraWU+PVQ/WmU9VC1wZS1pZTpF'@; put 'ZStpZTxXK3dlJiYoWmU9Vyt3ZStNYXRoLmFicyhpZSkpLF8+PVQtMT9pdD1ULTE6MD09PWl0P2l0PTE6dm9pZCAwIT09aC5zY3JvbGxYJiZsLmhvdmVyZWRDb2x1bW48bC5maXhlZENvbHVtbnNTdGFydCYmKGl0LT1sLnJvb3RFbGVtZW50T2Zmc2V0PD1oLnNjcm9sbFg/bC5yb290RWxlbWVu'@; put 'dE9mZnNldDowKSx0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihudWxsLFplKSx0aGlzLmd1aWRlbGluZS5zZXRQb3NpdGlvbihudWxsLGl0KX1yZWdpc3RlckV2ZW50cygpe2NvbnN0e2RvY3VtZW50RWxlbWVudDpsfT10aGlzLmhvdC5yb290RG9jdW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIu'@; put 'YWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZW1vdmUiLGE9PnRoaXMub25Nb3VzZU1vdmUoYSkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwibW91c2V1cCIsKCk9PnRoaXMub25Nb3VzZVVwKCkpfXVucmVnaXN0ZXJFdmVudHMoKXt0aGlzLmV2ZW50TWFuYWdlci5jbGVh'@; put 'cigpfW9uQmVmb3JlT25DZWxsTW91c2VEb3duKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxfPXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSxUPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksVz1pNC5nZXQodGhp'@; put 'cyksaWU9Qm8obC50YXJnZXQsInNvcnRBY3Rpb24iKTtpZighVHx8IV98fFcucHJlc3NlZHx8MCE9PWwuYnV0dG9ufHxpZSlyZXR1cm4gVy5wcmVzc2VkPSExLFcuY29sdW1uc1RvTW92ZS5sZW5ndGg9MCx2b2lkIFdvKHRoaXMuaG90LnJvb3RFbGVtZW50LFtweixSQV0pO2NvbnN0IHBlPXRo'@; put 'aXMuZ3VpZGVsaW5lLmlzQnVpbHQoKSYmIXRoaXMuZ3VpZGVsaW5lLmlzQXBwZW5kZWQoKSx3ZT10aGlzLmJhY2tsaWdodC5pc0J1aWx0KCkmJiF0aGlzLmJhY2tsaWdodC5pc0FwcGVuZGVkKCk7cGUmJndlJiYodGhpcy5ndWlkZWxpbmUuYXBwZW5kVG8oZi5oaWRlciksdGhpcy5iYWNrbGln'@; put 'aHQuYXBwZW5kVG8oZi5oaWRlcikpO2NvbnN0e2Zyb206RWUsdG86WmV9PVQsaXQ9TWF0aC5taW4oRWUuY29sLFplLmNvbCksZXQ9TWF0aC5tYXgoRWUuY29sLFplLmNvbCk7aWYoYS5yb3c8MCYmYS5jb2w+PWl0JiZhLmNvbDw9ZXQpe2guY29sdW1uPSEwLFcucHJlc3NlZD0hMCxXLnRhcmdl'@; put 'dC5ldmVudFBhZ2VYPWwucGFnZVgsVy50YXJnZXQuZXZlbnRPZmZzZXRYPWwub2Zmc2V0WCxXLmhvdmVyZWRDb2x1bW49YS5jb2wsVy50YXJnZXQuVEQ9ZCxXLnRhcmdldC5jb2w9YS5jb2wsVy5jb2x1bW5zVG9Nb3ZlPXRoaXMucHJlcGFyZUNvbHVtbnNUb01vdmluZyhpdCxldCksVy5oYXNS'@; put 'b3dIZWFkZXJzPSEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5yb3dIZWFkZXJzLFcuY291bnRDb2xzPXRoaXMuaG90LmNvdW50Q29scygpLFcuZml4ZWRDb2x1bW5zU3RhcnQ9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCxXLnJvb3RFbGVtZW50T2Zmc2V0PUtsKHRo'@; put 'aXMuaG90LnJvb3RFbGVtZW50KS5sZWZ0O2NvbnN0IHl0PVcuaGFzUm93SGVhZGVycz8tMTowLEV0PWYuaG9sZGVyLnNjcm9sbFRvcCtmLmdldENvbHVtbkhlYWRlckhlaWdodCgwKSsxLFN0PWEuY29sPFcuZml4ZWRDb2x1bW5zU3RhcnQsSnQ9TWF0aC5hYnModGhpcy5ob3Qudmlldy5fd3Qu'@; put 'd3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0U2Nyb2xsUG9zaXRpb24oKSksbm49TWF0aC5hYnMobC5vZmZzZXRYLSh0aGlzLmhvdC5pc1J0bCgpP2wudGFyZ2V0Lm9mZnNldFdpZHRoOjApKSx2bj10aGlzLmdldENvbHVtbnNXaWR0aChpdCxhLmNvbC0xKStubixObj10aGlzLmdl'@; put 'dENvbHVtbnNXaWR0aCh5dCxpdC0xKSsoU3Q/SnQ6MCkrdm47dGhpcy5iYWNrbGlnaHQuc2V0UG9zaXRpb24oRXQsTm4pLHRoaXMuYmFja2xpZ2h0LnNldFNpemUodGhpcy5nZXRDb2x1bW5zV2lkdGgoaXQsZXQpLGYuaGlkZXIub2Zmc2V0SGVpZ2h0LUV0KSx0aGlzLmJhY2tsaWdodC5zZXRP'@; put 'ZmZzZXQobnVsbCwtdm4pLHBpKHRoaXMuaG90LnJvb3RFbGVtZW50LHB6KX1lbHNlIFdvKHRoaXMuaG90LnJvb3RFbGVtZW50LGd6KSxXLnByZXNzZWQ9ITEsVy5jb2x1bW5zVG9Nb3ZlLmxlbmd0aD0wfW9uTW91c2VNb3ZlKGwpe2NvbnN0IGE9aTQuZ2V0KHRoaXMpO2lmKGEucHJlc3NlZCl7'@; put 'aWYobC50YXJnZXQ9PT10aGlzLmJhY2tsaWdodC5lbGVtZW50KXtjb25zdCBkPXRoaXMuYmFja2xpZ2h0LmdldFNpemUoKS53aWR0aDt0aGlzLmJhY2tsaWdodC5zZXRTaXplKDApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihkKX0pfWEudGFyZ2V0'@; put 'LmV2ZW50UGFnZVg9bC5wYWdlWCx0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX19b25CZWZvcmVPbkNlbGxNb3VzZU92ZXIobCxhLGQsaCl7Y29uc3QgZj10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLF89aTQuZ2V0KHRoaXMpOyFmfHwhXy5wcmVzc2VkfHwoXy5jb2x1bW5zVG9Nb3Zl'@; put 'LmluZGV4T2YoYS5jb2wpPi0xP1dvKHRoaXMuaG90LnJvb3RFbGVtZW50LFJBKTpwaSh0aGlzLmhvdC5yb290RWxlbWVudCxSQSksaC5yb3c9ITAsaC5jb2x1bW49ITAsaC5jZWxsPSEwLF8uaG92ZXJlZENvbHVtbj1hLmNvbCxfLnRhcmdldC5URD1kKX1vbk1vdXNlVXAoKXtjb25zdCBsPWk0'@; put 'LmdldCh0aGlzKSxhPWwudGFyZ2V0LmNvbCxkPWwuY29sdW1uc1RvTW92ZS5sZW5ndGg7aWYobC5ob3ZlcmVkQ29sdW1uPXZvaWQgMCxsLnByZXNzZWQ9ITEsbC5iYWNrbGlnaHRXaWR0aD0wLFdvKHRoaXMuaG90LnJvb3RFbGVtZW50LFtweixSQSxnel0pLHRoaXMuaG90LnNlbGVjdGlvbi5p'@; put 'c1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSYmcGkodGhpcy5ob3Qucm9vdEVsZW1lbnQsZ3opLGQ8MXx8dm9pZCAwPT09YSlyZXR1cm47Y29uc3QgZj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwuY29sdW1uc1RvTW92ZVswXSksXz10aGlzLmRyYWdDb2x1bW5zKGwuY29sdW1uc1RvTW92'@; put 'ZSxhKTtpZihsLmNvbHVtbnNUb01vdmUubGVuZ3RoPTAsITA9PT1fKXt0aGlzLnBlcnNpc3RlbnRTdGF0ZVNhdmUoKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCk7Y29uc3QgVD10aGlzLmhvdC50b1Zpc3VhbENvbHVtbihmKTt0aGlzLmhv'@; put 'dC5zZWxlY3RDb2x1bW5zKFQsVCtkLTEpfX1vbkFmdGVyU2Nyb2xsVmVydGljYWxseSgpe2NvbnN0IGw9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxoPWwuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KDApKzErbC5ob2xkZXIuc2Nyb2xsVG9wO3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKGgp'@; put 'LHRoaXMuYmFja2xpZ2h0LnNldFNpemUobnVsbCxsLmhpZGVyLm9mZnNldEhlaWdodC1oKX1idWlsZFBsdWdpblVJKCl7dGhpcy5iYWNrbGlnaHQuYnVpbGQoKSx0aGlzLmd1aWRlbGluZS5idWlsZCgpfW9uQWZ0ZXJMb2FkRGF0YSgpe3RoaXMubW92ZUJ5U2V0dGluZ3NPckxvYWQoKX1kZXN0'@; put 'cm95KCl7dGhpcy5iYWNrbGlnaHQuZGVzdHJveSgpLHRoaXMuZ3VpZGVsaW5lLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fWNvbnN0IE9BPSJtYW51YWxDb2x1bW5SZXNpemUiLHRvZT0ibWFudWFsQ29sdW1uV2lkdGhzIixtej1uZXcgV2Vha01hcDtjbGFzcyBXRmUgZXh0ZW5kcyBac3tz'@; put 'dGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gT0F9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMTMwfWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpO2NvbnN0e3Jvb3REb2N1bWVudDphfT10aGlzLmhvdDt0aGlzLmN1cnJlbnRUSD1udWxsLHRoaXMuY3VycmVudENvbD1u'@; put 'dWxsLHRoaXMuc2VsZWN0ZWRDb2xzPVtdLHRoaXMuY3VycmVudFdpZHRoPW51bGwsdGhpcy5uZXdTaXplPW51bGwsdGhpcy5zdGFydFk9bnVsbCx0aGlzLnN0YXJ0V2lkdGg9bnVsbCx0aGlzLnN0YXJ0T2Zmc2V0PW51bGwsdGhpcy5oYW5kbGU9YS5jcmVhdGVFbGVtZW50KCJESVYiKSx0aGlz'@; put 'Lmd1aWRlPWEuY3JlYXRlRWxlbWVudCgiRElWIiksdGhpcy5ldmVudE1hbmFnZXI9bmV3IGxsKHRoaXMpLHRoaXMucHJlc3NlZD1udWxsLHRoaXMuaXNUcmlnZ2VyZWRCeVJNQj0hMSx0aGlzLmRibGNsaWNrPTAsdGhpcy5hdXRvcmVzaXplVGltZW91dD1udWxsLHRoaXMuY29sdW1uV2lkdGhz'@; put 'TWFwPXZvaWQgMCxtei5zZXQodGhpcyx7Y29uZmlnOnZvaWQgMH0pLHBpKHRoaXMuaGFuZGxlLCJtYW51YWxDb2x1bW5SZXNpemVyIikscGkodGhpcy5ndWlkZSwibWFudWFsQ29sdW1uUmVzaXplckd1aWRlIil9Z2V0IGlubGluZURpcigpe3JldHVybiB0aGlzLmhvdC5pc1J0bCgpPyJyaWdo'@; put 'dCI6ImxlZnQifWlzRW5hYmxlZCgpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW09BXX1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJsZWR8fCh0aGlzLmNvbHVtbldpZHRoc01hcD1uZXcgV3AsdGhpcy5jb2x1bW5XaWR0aHNNYXAuYWRkTG9jYWxIb29rKCJpbml0IiwoKT0+dGhpcy5v'@; put 'bk1hcEluaXQoKSksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lLHRoaXMuY29sdW1uV2lkdGhzTWFwKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIiwobCxhKT0+dGhpcy5vbk1vZGlmeUNvbFdpZHRoKGwsYSkpLHRoaXMuYWRkSG9v'@; put 'aygiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIiwobCxhKT0+dGhpcy5vbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aChsLGEpKSx0aGlzLmFkZEhvb2soImJlZm9yZUNvbHVtblJlc2l6ZSIsKGwsYSxkKT0+dGhpcy5vbkJlZm9yZUNvbHVtblJlc2l6ZShsLGEsZCkpLHRoaXMuYmlu'@; put 'ZEV2ZW50cygpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXttei5nZXQodGhpcykuY29uZmlnPXRoaXMuY29sdW1uV2lkdGhzTWFw'@; put 'LmdldFZhbHVlcygpLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9c2F2ZU1hbnVhbENvbHVtbldpZHRocygpe3RoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIix0b2UsdGhp'@; put 'cy5jb2x1bW5XaWR0aHNNYXAuZ2V0VmFsdWVzKCkpfWxvYWRNYW51YWxDb2x1bW5XaWR0aHMoKXtjb25zdCBsPXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsdG9lLGwpLGwudmFsdWV9c2V0TWFudWFsU2l6ZShsLGEpe2NvbnN0IGQ9TWF0aC5tYXgo'@; put 'YSwyMCksaD10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpO3JldHVybiB0aGlzLmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoaCxkKSxkfWNsZWFyTWFudWFsU2l6ZShsKXtjb25zdCBhPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCk7dGhpcy5jb2x1bW5XaWR0aHNNYXAu'@; put 'c2V0VmFsdWVBdEluZGV4KGEsbnVsbCl9b25NYXBJbml0KCl7Y29uc3QgbD1tei5nZXQodGhpcyksYT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW09BXSxkPXRoaXMubG9hZE1hbnVhbENvbHVtbldpZHRocygpO3R5cGVvZiBkPCJ1Ij90aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e2QuZm9y'@; put 'RWFjaCgoaCxmKT0+e3RoaXMuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChmLGgpfSl9LCEwKTpBcnJheS5pc0FycmF5KGEpPyh0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e2EuZm9yRWFjaCgoaCxmKT0+e3RoaXMuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChm'@; put 'LGgpfSl9LCEwKSxsLmNvbmZpZz1hKTohMD09PWEmJkFycmF5LmlzQXJyYXkobC5jb25maWcpJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e2wuY29uZmlnLmZvckVhY2goKGgsZik9Pnt0aGlzLmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoZixoKX0pfSwhMCl9c2V0dXBI'@; put 'YW5kbGVQb3NpdGlvbihsKXtpZighbC5wYXJlbnROb2RlKXJldHVybjt0aGlzLmN1cnJlbnRUSD1sO2NvbnN0e193dDphfT10aGlzLmhvdC52aWV3LGQ9YS53dFRhYmxlLmdldENvb3Jkcyh0aGlzLmN1cnJlbnRUSCksaD1kLmNvbDtpZihoPDApcmV0dXJuO2NvbnN0IGY9YWwodGhpcy5jdXJy'@; put 'ZW50VEgpLF89dGhpcy5jdXJyZW50VEguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IFc7aDxhLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0IikmJihXPWEud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb24odGhpcy5j'@; put 'dXJyZW50VEgsZC5yb3csZC5jb2wpKSxXfHwoVz1hLnd0T3ZlcmxheXMudG9wT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCxkLnJvdyxkLmNvbCkpLHRoaXMuY3VycmVudENvbD10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVu'@; put 'ZGVyYWJsZUluZGV4KGgpLHRoaXMuc2VsZWN0ZWRDb2xzPVtdO2NvbnN0IGllPXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpO3RoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkKCkm'@; put 'JmllJiZEbih0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCksd2U9Pnt2byh3ZS5nZXRUb3BTdGFydENvcm5lcigpLmNvbCx3ZS5nZXRCb3R0b21FbmRDb3JuZXIoKS5jb2wsaXQ9Pnt0aGlzLnNlbGVjdGVkQ29scy5pbmNsdWRlcyhpdCl8fHRoaXMuc2VsZWN0ZWRDb2xzLnB1c2goaXQpfSl9'@; put 'KSx0aGlzLnNlbGVjdGVkQ29scy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRDb2wpfHwodGhpcy5zZWxlY3RlZENvbHM9W3RoaXMuY3VycmVudENvbF0pLHRoaXMuc3RhcnRPZmZzZXQ9Vy5zdGFydC02LHRoaXMuc3RhcnRXaWR0aD1wYXJzZUludChfLndpZHRoLDEwKSx0aGlzLmhhbmRsZS5zdHls'@; put 'ZS50b3A9YCR7Vy50b3B9cHhgLHRoaXMuaGFuZGxlLnN0eWxlW3RoaXMuaW5saW5lRGlyXT1gJHt0aGlzLnN0YXJ0T2Zmc2V0K3RoaXMuc3RhcnRXaWR0aH1weGAsdGhpcy5oYW5kbGUuc3R5bGUuaGVpZ2h0PWAke2Z9cHhgLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu'@; put 'aGFuZGxlKX1yZWZyZXNoSGFuZGxlUG9zaXRpb24oKXt0aGlzLmhhbmRsZS5zdHlsZVt0aGlzLmlubGluZURpcl09YCR7dGhpcy5zdGFydE9mZnNldCt0aGlzLmN1cnJlbnRXaWR0aH1weGB9c2V0dXBHdWlkZVBvc2l0aW9uKCl7Y29uc3QgbD1wYXJzZUludChhbCh0aGlzLmhhbmRsZSksMTAp'@; put 'LGE9cGFyc2VJbnQodGhpcy5oYW5kbGUuc3R5bGUudG9wLDEwKStsLGQ9cGFyc2VJbnQodGhpcy5ob3Qudmlldy5tYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQoMCksMTApO3BpKHRoaXMuaGFuZGxlLCJhY3RpdmUiKSxwaSh0aGlzLmd1aWRlLCJhY3RpdmUiKSx0aGlzLmd1aWRlLnN0eWxl'@; put 'LnRvcD1gJHthfXB4YCx0aGlzLnJlZnJlc2hHdWlkZVBvc2l0aW9uKCksdGhpcy5ndWlkZS5zdHlsZS5oZWlnaHQ9ZC1sKyJweCIsdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5ndWlkZSl9cmVmcmVzaEd1aWRlUG9zaXRpb24oKXt0aGlzLmd1aWRlLnN0eWxlW3RoaXMu'@; put 'aW5saW5lRGlyXT10aGlzLmhhbmRsZS5zdHlsZVt0aGlzLmlubGluZURpcl19aGlkZUhhbmRsZUFuZEd1aWRlKCl7V28odGhpcy5oYW5kbGUsImFjdGl2ZSIpLFdvKHRoaXMuZ3VpZGUsImFjdGl2ZSIpfWNoZWNrSWZDb2x1bW5IZWFkZXIobCl7cmV0dXJuISFOcChsLFsiVEhFQUQiXSx0aGlz'@; put 'LmhvdC5yb290RWxlbWVudCl9Z2V0Q2xvc2VzdFRIUGFyZW50KGwpe3JldHVybiJUQUJMRSIhPT1sLnRhZ05hbWU/IlRIIj09PWwudGFnTmFtZT9sOnRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KGwucGFyZW50Tm9kZSk6bnVsbH1vbk1vdXNlT3ZlcihsKXtpZighZ04obC50YXJnZXQpJiYhMCE9'@; put 'PXRoaXMuaXNUcmlnZ2VyZWRCeVJNQiYmdGhpcy5jaGVja0lmQ29sdW1uSGVhZGVyKGwudGFyZ2V0KSl7Y29uc3QgYT10aGlzLmdldENsb3Nlc3RUSFBhcmVudChsLnRhcmdldCk7aWYoIWEpcmV0dXJuO2NvbnN0IGQ9YS5nZXRBdHRyaWJ1dGUoImNvbHNwYW4iKTthJiYobnVsbD09PWR8fCIx'@; put 'Ij09PWQpJiYodGhpcy5wcmVzc2VkfHx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24oYSkpfX1hZnRlck1vdXNlRG93blRpbWVvdXQoKXtjb25zdCBsPSgpPT57dGhpcy5ob3QuZm9yY2VGdWxsUmVuZGVyPSEwLHRoaXMuaG90LnZpZXcucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVt'@; put 'ZW50c1NpemUoITApfSxhPShkLGgpPT57Y29uc3QgZj10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uUmVzaXplIix0aGlzLm5ld1NpemUsZCwhMCk7dm9pZCAwIT09ZiYmKHRoaXMubmV3U2l6ZT1mKSwiYWxsIj09PXRoaXMuaG90LmdldFNldHRpbmdzKCkuc3RyZXRjaEg/dGhpcy5j'@; put 'bGVhck1hbnVhbFNpemUoZCk6dGhpcy5zZXRNYW51YWxTaXplKGQsdGhpcy5uZXdTaXplKSx0aGlzLnNhdmVNYW51YWxDb2x1bW5XaWR0aHMoKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5SZXNpemUiLHRoaXMubmV3U2l6ZSxkLCEwKSxoJiZsKCl9O3RoaXMuZGJsY2xpY2s+PTIm'@; put 'Jih0aGlzLnNlbGVjdGVkQ29scy5sZW5ndGg+MT8oRG4odGhpcy5zZWxlY3RlZENvbHMsaD0+e2EoaCl9KSxsKCkpOkRuKHRoaXMuc2VsZWN0ZWRDb2xzLGg9PnthKGgsITApfSkpLHRoaXMuZGJsY2xpY2s9MCx0aGlzLmF1dG9yZXNpemVUaW1lb3V0PW51bGx9b25Nb3VzZURvd24obCl7Qm8o'@; put 'bC50YXJnZXQsIm1hbnVhbENvbHVtblJlc2l6ZXIiKSYmKHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCksdGhpcy5zZXR1cEd1aWRlUG9zaXRpb24oKSx0aGlzLnByZXNzZWQ9ITAsbnVsbD09PXRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQmJih0aGlzLmF1dG9yZXNpemVU'@; put 'aW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuYWZ0ZXJNb3VzZURvd25UaW1lb3V0KCksNTAwKSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KHRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQpKSx0aGlzLmRibGNsaWNrKz0xLHRoaXMuc3RhcnRYPWwucGFnZVgsdGhpcy5uZXdTaXplPXRoaXMuc3Rh'@; put 'cnRXaWR0aCl9b25Nb3VzZU1vdmUobCl7aWYodGhpcy5wcmVzc2VkKXtjb25zdCBhPShsLnBhZ2VYLXRoaXMuc3RhcnRYKSp0aGlzLmhvdC5nZXREaXJlY3Rpb25GYWN0b3IoKTt0aGlzLmN1cnJlbnRXaWR0aD10aGlzLnN0YXJ0V2lkdGgrYSxEbih0aGlzLnNlbGVjdGVkQ29scyxkPT57dGhp'@; put 'cy5uZXdTaXplPXRoaXMuc2V0TWFudWFsU2l6ZShkLHRoaXMuY3VycmVudFdpZHRoKX0pLHRoaXMucmVmcmVzaEhhbmRsZVBvc2l0aW9uKCksdGhpcy5yZWZyZXNoR3VpZGVQb3NpdGlvbigpfX1vbk1vdXNlVXAoKXtjb25zdCBsPSgpPT57dGhpcy5ob3QuZm9yY2VGdWxsUmVuZGVyPSEwLHRo'@; put 'aXMuaG90LnZpZXcucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxhPShkLGgpPT57dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtblJlc2l6ZSIsdGhpcy5uZXdTaXplLGQsITEpLGgmJmwoKSx0aGlzLnNhdmVNYW51YWxDb2x1bW5XaWR0aHMoKSx0'@; put 'aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5SZXNpemUiLHRoaXMubmV3U2l6ZSxkLCExKX07dGhpcy5wcmVzc2VkJiYodGhpcy5oaWRlSGFuZGxlQW5kR3VpZGUoKSx0aGlzLnByZXNzZWQ9ITEsdGhpcy5uZXdTaXplIT09dGhpcy5zdGFydFdpZHRoJiYodGhpcy5zZWxlY3RlZENvbHMu'@; put 'bGVuZ3RoPjE/KERuKHRoaXMuc2VsZWN0ZWRDb2xzLGg9PnthKGgpfSksbCgpKTpEbih0aGlzLnNlbGVjdGVkQ29scyxoPT57YShoLCEwKX0pKSx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24odGhpcy5jdXJyZW50VEgpKX1vbkNvbnRleHRNZW51KCl7dGhpcy5oaWRlSGFuZGxlQW5kR3VpZGUo'@; put 'KSx0aGlzLmhvdC5yb290RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmhhbmRsZSksdGhpcy5ob3Qucm9vdEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5ndWlkZSksdGhpcy5wcmVzc2VkPSExLHRoaXMuaXNUcmlnZ2VyZWRCeVJNQj0hMCx0aGlzLmhvdC5fcmVnaXN0ZXJJbW1lZGlhdGUoKCk9'@; put 'Pnt0aGlzLmlzVHJpZ2dlcmVkQnlSTUI9ITF9KX1iaW5kRXZlbnRzKCl7Y29uc3R7cm9vdFdpbmRvdzpsLHJvb3RFbGVtZW50OmF9PXRoaXMuaG90O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYSwibW91c2VvdmVyIixkPT50aGlzLm9uTW91c2VPdmVyKGQpKSx0aGlzLmV2'@; put 'ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlZG93biIsZD0+dGhpcy5vbk1vdXNlRG93bihkKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZW1vdmUiLGQ9PnRoaXMub25Nb3VzZU1vdmUoZCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50'@; put 'TGlzdGVuZXIobCwibW91c2V1cCIsKCk9PnRoaXMub25Nb3VzZVVwKCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5oYW5kbGUsImNvbnRleHRtZW51IiwoKT0+dGhpcy5vbkNvbnRleHRNZW51KCkpfW9uTW9kaWZ5Q29sV2lkdGgobCxhKXtsZXQgZD1sO2lmKHRo'@; put 'aXMuZW5hYmxlZCl7Y29uc3QgaD10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGEpLGY9dGhpcy5jb2x1bW5XaWR0aHNNYXAuZ2V0VmFsdWVBdEluZGV4KGgpO3RoaXMuaG90LmdldFNldHRpbmdzKClbT0FdJiZmJiYoZD1mKX1yZXR1cm4gZH1vbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0'@; put 'aChsLGEpe2xldCBkPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleChhKTtyZXR1cm4gbnVsbD09PWQmJihkPWwpLGR9b25CZWZvcmVDb2x1bW5SZXNpemUoKXt0aGlzLmhvdC52aWV3Ll93dC53dFZpZXdwb3J0LnJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtl'@; put 'ZCgpfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWNvbnN0IEY3PSJweCIsaW9lPWNsYXNzIEdGZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmhvdD1sLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLnN0YXRlPTB9YXBwZW5kVG8obCl7bC5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLnN0'@; put 'YXRlPTJ9YnVpbGQoKXswPT09dGhpcy5zdGF0ZSYmKHRoaXMuX2VsZW1lbnQ9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc3RhdGU9MSl9ZGVzdHJveSgpe3RoaXMuaXNBcHBlbmRlZCgpJiZ0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3Zl'@; put 'Q2hpbGQodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuc3RhdGU9MH1pc0FwcGVuZGVkKCl7cmV0dXJuIDI9PT10aGlzLnN0YXRlfWlzQnVpbHQoKXtyZXR1cm4gdGhpcy5zdGF0ZT49MX1zZXRQb3NpdGlvbihsLGEpe3ZvaWQgMCE9PWwmJih0aGlzLl9lbGVtZW50LnN0'@; put 'eWxlLnRvcD1sK0Y3KSx2b2lkIDAhPT1hJiYodGhpcy5fZWxlbWVudC5zdHlsZS5sZWZ0PWErRjcpfWdldFBvc2l0aW9uKCl7cmV0dXJue3RvcDp0aGlzLl9lbGVtZW50LnN0eWxlLnRvcD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLnRvcCwxMCk6MCxsZWZ0OnRoaXMuX2VsZW1lbnQu'@; put 'c3R5bGUubGVmdD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLmxlZnQsMTApOjB9fXNldFNpemUobCxhKXtsJiYodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aD1sK0Y3KSxhJiYodGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQ9YStGNyl9Z2V0U2l6ZSgpe3JldHVybnt3aWR0aDp0aGlz'@; put 'Ll9lbGVtZW50LnN0eWxlLndpZHRoP3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGgsMTApOjAsaGVpZ2h0OnRoaXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0P3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0LDEwKTowfX1zZXRPZmZzZXQobCxhKXtsJiYodGhpcy5f'@; put 'ZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3A9bCtGNyksYSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUubWFyZ2luTGVmdD1hK0Y3KX1nZXRPZmZzZXQoKXtyZXR1cm57dG9wOnRoaXMuX2VsZW1lbnQuc3R5bGUubWFyZ2luVG9wP3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUubWFyZ2luVG9wLDEw'@; put 'KTowLGxlZnQ6dGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0P3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUubWFyZ2luTGVmdCwxMCk6MH19fSxLRmU9Y2xhc3MgcUZlIGV4dGVuZHMgaW9le2J1aWxkKCl7c3VwZXIuYnVpbGQoKSxwaSh0aGlzLl9lbGVtZW50LCJodF9fbWFudWFs'@; put 'Um93TW92ZS0tYmFja2xpZ2h0Iil9fSxRRmU9Y2xhc3MgSkZlIGV4dGVuZHMgaW9le2J1aWxkKCl7c3VwZXIuYnVpbGQoKSxwaSh0aGlzLl9lbGVtZW50LCJodF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5lIil9fTtzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlUm93TW92ZSIp'@; put 'LHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclJvd01vdmUiKTtjb25zdCBfej0ibWFudWFsUm93TW92ZSIsbzQ9bmV3IFdlYWtNYXAsb29lPSJodF9fbWFudWFsUm93TW92ZSIsUEE9InNob3ctdWkiLGJ6PSJvbi1tb3ZpbmctLXJvd3MiLHl6PSJhZnRlci1zZWxlY3Rpb24tLXJv'@; put 'd3MiO2NsYXNzIHRIZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBfen1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAxNDB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksbzQuc2V0KHRoaXMse3Jvd3NUb01vdmU6W10scHJlc3NlZDp2b2lkIDAs'@; put 'dGFyZ2V0OntldmVudFBhZ2VZOnZvaWQgMCxjb29yZHM6dm9pZCAwLFREOnZvaWQgMCxyb3c6dm9pZCAwfSxjYWNoZWREcm9wSW5kZXg6dm9pZCAwfSksdGhpcy5ldmVudE1hbmFnZXI9bmV3IGxsKHRoaXMpLHRoaXMuYmFja2xpZ2h0PW5ldyBLRmUobCksdGhpcy5ndWlkZWxpbmU9bmV3IFFG'@; put 'ZShsKX1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbX3pdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZvcmVPbkNlbGxN'@; put 'b3VzZURvd24oLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VPdmVyIixmdW5jdGlvbigpe3JldHVybiBsLm9uQmVmb3JlT25DZWxsTW91c2VPdmVyKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IiwoKT0+'@; put 'dGhpcy5vbkFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5KCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkFmdGVyTG9hZERhdGEoLi4uYXJndW1lbnRzKX0pLHRoaXMuYnVpbGRQbHVnaW5VSSgpLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxwaSh0aGlz'@; put 'LmhvdC5yb290RWxlbWVudCxvb2UpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMubW92ZUJ5U2V0dGluZ3NPckxvYWQoKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7'@; put 'V28odGhpcy5ob3Qucm9vdEVsZW1lbnQsb29lKSx0aGlzLnVucmVnaXN0ZXJFdmVudHMoKSx0aGlzLmJhY2tsaWdodC5kZXN0cm95KCksdGhpcy5ndWlkZWxpbmUuZGVzdHJveSgpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1tb3ZlUm93KGwsYSl7cmV0dXJuIHRoaXMubW92ZVJvd3MoW2xdLGEp'@; put 'fW1vdmVSb3dzKGwsYSl7Y29uc3QgZD1vNC5nZXQodGhpcyksaD1kLmNhY2hlZERyb3BJbmRleCxmPXRoaXMuaXNNb3ZlUG9zc2libGUobCxhKSxfPXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVSb3dNb3ZlIixsLGEsaCxmKTtpZihkLmNhY2hlZERyb3BJbmRleD12b2lkIDAsITE9PT1fKXJl'@; put 'dHVybjtmJiZ0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5tb3ZlSW5kZXhlcyhsLGEpO2NvbnN0IFQ9ZiYmdGhpcy5pc1Jvd09yZGVyQ2hhbmdlZChsLGEpO3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dNb3ZlIixsLGEsaCxmLFQpLFR9ZHJhZ1JvdyhsLGEpe3JldHVybiB0aGlz'@; put 'LmRyYWdSb3dzKFtsXSxhKX1kcmFnUm93cyhsLGEpe2NvbnN0IGQ9dGhpcy5jb3VudEZpbmFsSW5kZXgobCxhKTtyZXR1cm4gbzQuZ2V0KHRoaXMpLmNhY2hlZERyb3BJbmRleD1hLHRoaXMubW92ZVJvd3MobCxkKX1pc01vdmVQb3NzaWJsZShsLGEpe2NvbnN0IGQ9dGhpcy5ob3Qucm93SW5k'@; put 'ZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKSxoPWwubGVuZ3RoK2E+ZCxmPWE8MCxfPWwuc29tZShXPT5XPDApLFQ9bC5zb21lKFc9Plc+PWQpO3JldHVybiEoaHx8Znx8X3x8VCl9aXNSb3dPcmRlckNoYW5nZWQobCxhKXtyZXR1cm4gbC5zb21lKChkLGgpPT5kLWghPT1h'@; put 'KX1jb3VudEZpbmFsSW5kZXgobCxhKXtjb25zdCBkPUFsKGwsKGgsZik9PihmPGEmJihoKz0xKSxoKSwwKTtyZXR1cm4gYS1kfWdldFJvd3NIZWlnaHQobCxhKXtjb25zdCBkPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyO2xldCBoPTA7Zm9yKGxldCBmPWw7Zjw9YTtmKyspe2NvbnN0IF89ZC5n'@; put 'ZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGYpO251bGwhPT1fJiYoaCs9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5nZXRSb3dIZWlnaHQoXyl8fDIzKX1yZXR1cm4gaH1tb3ZlQnlTZXR0aW5nc09yTG9hZCgpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtfel07aWYoQXJy'@; put 'YXkuaXNBcnJheShsKSl0aGlzLm1vdmVSb3dzKGwsMCk7ZWxzZSBpZih2b2lkIDAhPT1sKXtjb25zdCBhPXRoaXMucGVyc2lzdGVudFN0YXRlTG9hZCgpO2EubGVuZ3RoJiZ0aGlzLm1vdmVSb3dzKGEsMCl9fWlzRml4ZWRSb3dUb3AobCl7cmV0dXJuIGw8dGhpcy5ob3QuZ2V0U2V0dGluZ3Mo'@; put 'KS5maXhlZFJvd3NUb3B9aXNGaXhlZFJvd0JvdHRvbShsKXtyZXR1cm4gbD50aGlzLmhvdC5jb3VudFJvd3MoKS0xLXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tfXBlcnNpc3RlbnRTdGF0ZVNhdmUoKXt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlU2F2'@; put 'ZSIsIm1hbnVhbFJvd01vdmUiLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldEluZGV4ZXNTZXF1ZW5jZSgpKX1wZXJzaXN0ZW50U3RhdGVMb2FkKCl7Y29uc3QgbD17fTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJtYW51YWxSb3dNb3ZlIixsKSxs'@; put 'LnZhbHVlP2wudmFsdWU6W119cHJlcGFyZVJvd3NUb01vdmluZygpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxhPVtdO2lmKCFsKXJldHVybiBhO2NvbnN0e2Zyb206ZCx0bzpofT1sO3JldHVybiB2byhNYXRoLm1pbihkLnJvdyxoLnJvdyksTWF0aC5tYXgoZC5y'@; put 'b3csaC5yb3cpLFQ9PnthLnB1c2goVCl9KSxhfXJlZnJlc2hQb3NpdGlvbnMoKXtjb25zdCBsPW80LmdldCh0aGlzKSxhPWwudGFyZ2V0LmNvb3JkcyxkPXRoaXMuaG90LnZpZXcuZ2V0Rmlyc3RGdWxseVZpc2libGVSb3coKSxoPXRoaXMuaG90LnZpZXcuZ2V0TGFzdEZ1bGx5VmlzaWJsZVJv'@; put 'dygpLGY9dGhpcy5ob3QuY291bnRSb3dzKCk7dGhpcy5pc0ZpeGVkUm93VG9wKGEucm93KSYmZD4wJiZ0aGlzLmhvdC5zY3JvbGxWaWV3cG9ydFRvKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChkLTEsLTEpKSx0aGlzLmlzRml4ZWRSb3dCb3R0b20o'@; put 'YS5yb3cpJiZoPGYmJnRoaXMuaG90LnNjcm9sbFZpZXdwb3J0VG8odGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGgrMSwxKSx2b2lkIDAsITApO2NvbnN0IF89dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxUPWwudGFyZ2V0LlRELFc9dGhpcy5ob3Qu'@; put 'cm9vdEVsZW1lbnQsaWU9S2woVykscGU9dmcoVyk7bGV0IEVlO0VlPXRoaXMuaG90LnJvb3RXaW5kb3c9PT1wZT9wZS5zY3JvbGxZOnBlLnNjcm9sbFRvcDtjb25zdCBpdD1sLnRhcmdldC5ldmVudFBhZ2VZLShpZS50b3AtRWUpK18uaG9sZGVyLnNjcm9sbFRvcCxldD1fLmhpZGVyLm9mZnNl'@; put 'dEhlaWdodCx5dD1fLlRCT0RZLm9mZnNldFRvcCxFdD10aGlzLmJhY2tsaWdodC5nZXRPZmZzZXQoKS50b3AsU3Q9dGhpcy5iYWNrbGlnaHQuZ2V0U2l6ZSgpLmhlaWdodCxKdD1ULm9mZnNldEhlaWdodC8yLG5uPVQub2Zmc2V0SGVpZ2h0O2xldCB2bj10aGlzLmhvdC52aWV3LlRIRUFELm9m'@; put 'ZnNldEhlaWdodCt0aGlzLmdldFJvd3NIZWlnaHQoMCxhLnJvdy0xKTtjb25zdCBObj1pdD49dm4rSnQ7dGhpcy5pc0ZpeGVkUm93VG9wKGEucm93KSYmKHZuKz1fLmhvbGRlci5zY3JvbGxUb3ApLGEucm93PDA/bC50YXJnZXQucm93PWQ+MD9kLTE6ZDpObj8obC50YXJnZXQucm93PWEucm93'@; put 'KzEsdm4rPTA9PT1hLnJvdz9ubi0xOm5uKTpsLnRhcmdldC5yb3c9YS5yb3c7bGV0IGNyPWl0LElyPXZuO2l0K1N0K0V0Pj1ldD9jcj1ldC1TdC1FdDppdCtFdDx5dCYmKGNyPXl0K01hdGguYWJzKEV0KSksdm4+PWV0LTEmJihJcj1ldC0xKSx0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihj'@; put 'ciksdGhpcy5ndWlkZWxpbmUuc2V0UG9zaXRpb24oSXIpfXJlZ2lzdGVyRXZlbnRzKCl7Y29uc3R7ZG9jdW1lbnRFbGVtZW50Omx9PXRoaXMuaG90LnJvb3REb2N1bWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNlbW92ZSIsYT0+dGhpcy5vbk1vdXNlTW92'@; put 'ZShhKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZXVwIiwoKT0+dGhpcy5vbk1vdXNlVXAoKSl9dW5yZWdpc3RlckV2ZW50cygpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9b25CZWZvcmVPbkNlbGxNb3VzZURvd24obCxhLGQsaCl7Y29uc3R7d3RUYWJs'@; put 'ZTpmLHd0Vmlld3BvcnQ6X309dGhpcy5ob3Qudmlldy5fd3QsVD10aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCksVz10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGllPW80LmdldCh0aGlzKTtpZighV3x8IVR8fGllLnByZXNzZWR8fDAhPT1sLmJ1dHRv'@; put 'bilyZXR1cm4gaWUucHJlc3NlZD0hMSxpZS5yb3dzVG9Nb3ZlLmxlbmd0aD0wLHZvaWQgV28odGhpcy5ob3Qucm9vdEVsZW1lbnQsW2J6LFBBXSk7Y29uc3QgcGU9dGhpcy5ndWlkZWxpbmUuaXNCdWlsdCgpJiYhdGhpcy5ndWlkZWxpbmUuaXNBcHBlbmRlZCgpLHdlPXRoaXMuYmFja2xpZ2h0'@; put 'LmlzQnVpbHQoKSYmIXRoaXMuYmFja2xpZ2h0LmlzQXBwZW5kZWQoKTtwZSYmd2UmJih0aGlzLmd1aWRlbGluZS5hcHBlbmRUbyhmLmhpZGVyKSx0aGlzLmJhY2tsaWdodC5hcHBlbmRUbyhmLmhpZGVyKSk7Y29uc3R7ZnJvbTpFZSx0bzpaZX09VyxpdD1NYXRoLm1pbihFZS5yb3csWmUucm93'@; put 'KSxldD1NYXRoLm1heChFZS5yb3csWmUucm93KTtpZihhLmNvbDwwJiZhLnJvdz49aXQmJmEucm93PD1ldCl7aC5yb3c9ITAsaWUucHJlc3NlZD0hMCxpZS50YXJnZXQuZXZlbnRQYWdlWT1sLnBhZ2VZLGllLnRhcmdldC5jb29yZHM9YSxpZS50YXJnZXQuVEQ9ZCxpZS5yb3dzVG9Nb3ZlPXRo'@; put 'aXMucHJlcGFyZVJvd3NUb01vdmluZygpO2NvbnN0IHl0PWYuaG9sZGVyLnNjcm9sbExlZnQrXy5nZXRSb3dIZWFkZXJXaWR0aCgpO3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwseXQpLHRoaXMuYmFja2xpZ2h0LnNldFNpemUoZi5oaWRlci5vZmZzZXRXaWR0aC15dCx0aGlzLmdl'@; put 'dFJvd3NIZWlnaHQoaXQsZXQpKSx0aGlzLmJhY2tsaWdodC5zZXRPZmZzZXQoLTEqKHRoaXMuZ2V0Um93c0hlaWdodChpdCxhLnJvdy0xKStsLm9mZnNldFkpLG51bGwpLHBpKHRoaXMuaG90LnJvb3RFbGVtZW50LGJ6KSx0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX1lbHNlIFdvKHRoaXMuaG90'@; put 'LnJvb3RFbGVtZW50LHl6KSxpZS5wcmVzc2VkPSExLGllLnJvd3NUb01vdmUubGVuZ3RoPTB9b25Nb3VzZU1vdmUobCl7Y29uc3QgYT1vNC5nZXQodGhpcyk7aWYoYS5wcmVzc2VkKXtpZihsLnRhcmdldD09PXRoaXMuYmFja2xpZ2h0LmVsZW1lbnQpe2NvbnN0IGQ9dGhpcy5iYWNrbGlnaHQu'@; put 'Z2V0U2l6ZSgpLmhlaWdodDt0aGlzLmJhY2tsaWdodC5zZXRTaXplKG51bGwsMCksc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsZCl9KX1hLnRhcmdldC5ldmVudFBhZ2VZPWwucGFnZVksdGhpcy5yZWZyZXNoUG9zaXRpb25zKCl9fW9uQmVm'@; put 'b3JlT25DZWxsTW91c2VPdmVyKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxfPW80LmdldCh0aGlzKTshZnx8IV8ucHJlc3NlZHx8KF8ucm93c1RvTW92ZS5pbmRleE9mKGEucm93KT4tMT9Xbyh0aGlzLmhvdC5yb290RWxlbWVudCxQQSk6cGkodGhp'@; put 'cy5ob3Qucm9vdEVsZW1lbnQsUEEpLGgucm93PSEwLGguY29sdW1uPSEwLGguY2VsbD0hMCxfLnRhcmdldC5jb29yZHM9YSxfLnRhcmdldC5URD1kKX1vbk1vdXNlVXAoKXtjb25zdCBsPW80LmdldCh0aGlzKSxhPWwudGFyZ2V0LnJvdyxkPWwucm93c1RvTW92ZS5sZW5ndGg7aWYobC5wcmVz'@; put 'c2VkPSExLGwuYmFja2xpZ2h0SGVpZ2h0PTAsV28odGhpcy5ob3Qucm9vdEVsZW1lbnQsW2J6LFBBLHl6XSksdGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpJiZwaSh0aGlzLmhvdC5yb290RWxlbWVudCx5eiksZDwxfHx2b2lkIDA9PT1hKXJldHVybjtjb25zdCBm'@; put 'PXRoaXMuaG90LnRvUGh5c2ljYWxSb3cobC5yb3dzVG9Nb3ZlWzBdKSxfPXRoaXMuZHJhZ1Jvd3MobC5yb3dzVG9Nb3ZlLGEpO2lmKGwucm93c1RvTW92ZS5sZW5ndGg9MCwhMD09PV8pe3RoaXMucGVyc2lzdGVudFN0YXRlU2F2ZSgpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuaG90LnZpZXcu'@; put 'YWRqdXN0RWxlbWVudHNTaXplKCEwKTtjb25zdCBUPXRoaXMuaG90LnRvVmlzdWFsUm93KGYpO3RoaXMuaG90LnNlbGVjdFJvd3MoVCxUK2QtMSl9fW9uQWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkoKXtjb25zdCBsPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsaD10aGlzLmhvdC52aWV3Ll93'@; put 'dC53dFZpZXdwb3J0LmdldFJvd0hlYWRlcldpZHRoKCkrbC5ob2xkZXIuc2Nyb2xsTGVmdDt0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihudWxsLGgpLHRoaXMuYmFja2xpZ2h0LnNldFNpemUobC5oaWRlci5vZmZzZXRXaWR0aC1oKX1idWlsZFBsdWdpblVJKCl7dGhpcy5iYWNrbGlnaHQu'@; put 'YnVpbGQoKSx0aGlzLmd1aWRlbGluZS5idWlsZCgpfW9uQWZ0ZXJMb2FkRGF0YSgpe3RoaXMubW92ZUJ5U2V0dGluZ3NPckxvYWQoKX1kZXN0cm95KCl7dGhpcy5iYWNrbGlnaHQuZGVzdHJveSgpLHRoaXMuZ3VpZGVsaW5lLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fWNvbnN0IEZBPSJt'@; put 'YW51YWxSb3dSZXNpemUiLHNvZT0ibWFudWFsUm93SGVpZ2h0cyIsd3o9bmV3IFdlYWtNYXA7Y2xhc3MgckhlIGV4dGVuZHMgWnN7c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIEZBfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDMwfWNvbnN0cnVjdG9yKGwpe3N1'@; put 'cGVyKGwpO2NvbnN0e3Jvb3REb2N1bWVudDphfT10aGlzLmhvdDt0aGlzLmN1cnJlbnRUSD1udWxsLHRoaXMuY3VycmVudFJvdz1udWxsLHRoaXMuc2VsZWN0ZWRSb3dzPVtdLHRoaXMuY3VycmVudEhlaWdodD1udWxsLHRoaXMubmV3U2l6ZT1udWxsLHRoaXMuc3RhcnRZPW51bGwsdGhpcy5z'@; put 'dGFydEhlaWdodD1udWxsLHRoaXMuc3RhcnRPZmZzZXQ9bnVsbCx0aGlzLmhhbmRsZT1hLmNyZWF0ZUVsZW1lbnQoIkRJViIpLHRoaXMuZ3VpZGU9YS5jcmVhdGVFbGVtZW50KCJESVYiKSx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgbGwodGhpcyksdGhpcy5wcmVzc2VkPW51bGwsdGhpcy5pc1Ry'@; put 'aWdnZXJlZEJ5Uk1CPSExLHRoaXMuZGJsY2xpY2s9MCx0aGlzLmF1dG9yZXNpemVUaW1lb3V0PW51bGwsdGhpcy5yb3dIZWlnaHRzTWFwPXZvaWQgMCx3ei5zZXQodGhpcyx7Y29uZmlnOnZvaWQgMH0pLHBpKHRoaXMuaGFuZGxlLCJtYW51YWxSb3dSZXNpemVyIikscGkodGhpcy5ndWlkZSwi'@; put 'bWFudWFsUm93UmVzaXplckd1aWRlIil9Z2V0IGlubGluZURpcigpe3JldHVybiB0aGlzLmhvdC5pc1J0bCgpPyJyaWdodCI6ImxlZnQifWlzRW5hYmxlZCgpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0ZBXX1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJsZWR8fCh0aGlzLnJvd0hl'@; put 'aWdodHNNYXA9bmV3IFdwLHRoaXMucm93SGVpZ2h0c01hcC5hZGRMb2NhbEhvb2soImluaXQiLCgpPT50aGlzLm9uTWFwSW5pdCgpKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsdGhpcy5yb3dIZWlnaHRzTWFwKSx0aGlzLmFkZEhvb2soIm1v'@; put 'ZGlmeVJvd0hlaWdodCIsKGwsYSk9PnRoaXMub25Nb2RpZnlSb3dIZWlnaHQobCxhKSksdGhpcy5iaW5kRXZlbnRzKCksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksc3VwZXIudXBkYXRlUGx1Z2lu'@; put 'KCl9ZGlzYWJsZVBsdWdpbigpe3d6LmdldCh0aGlzKS5jb25maWc9dGhpcy5yb3dIZWlnaHRzTWFwLmdldFZhbHVlcygpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9c2F2ZU1hbnVhbFJvd0hlaWdo'@; put 'dHMoKXt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlU2F2ZSIsc29lLHRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZXMoKSl9bG9hZE1hbnVhbFJvd0hlaWdodHMoKXtjb25zdCBsPXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsc29l'@; put 'LGwpLGwudmFsdWV9c2V0TWFudWFsU2l6ZShsLGEpe2NvbnN0IGQ9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhsKSxoPU1hdGgubWF4KGEsb25lLkRFRkFVTFRfSEVJR0hUKTtyZXR1cm4gdGhpcy5yb3dIZWlnaHRzTWFwLnNldFZhbHVlQXRJbmRleChkLGgpLGh9c2V0dXBIYW5kbGVQb3NpdGlv'@; put 'bihsKXt0aGlzLmN1cnJlbnRUSD1sO2NvbnN0e3ZpZXc6YX09dGhpcy5ob3Qse193dDpkfT1hLGg9ZC53dFRhYmxlLmdldENvb3Jkcyh0aGlzLmN1cnJlbnRUSCksZj1oLnJvdztpZihmPDApcmV0dXJuO2NvbnN0IF89d2EodGhpcy5jdXJyZW50VEgpLFQ9dGhpcy5jdXJyZW50VEguZ2V0Qm91'@; put 'bmRpbmdDbGllbnRSZWN0KCksVz1mPGQuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIiksaWU9Zj49YS5jb3VudE5vdEhpZGRlblJvd0luZGV4ZXMoMCwxKS1kLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpO2xldCBwZTtXP3BlPWQud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5l'@; put 'ck92ZXJsYXkuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb24odGhpcy5jdXJyZW50VEgsaC5yb3csaC5jb2wpOmllJiYocGU9ZC53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCxoLnJvdyxoLmNvbCkp'@; put 'LHBlfHwocGU9ZC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCxoLnJvdyxoLmNvbCkpLHRoaXMuY3VycmVudFJvdz10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGYp'@; put 'LHRoaXMuc2VsZWN0ZWRSb3dzPVtdO2NvbnN0IHdlPXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpO3RoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkKCkmJndlJiZEbih0aGlzLmhvdC5n'@; put 'ZXRTZWxlY3RlZFJhbmdlKCksWmU9Pnt2byhaZS5nZXRUb3BTdGFydENvcm5lcigpLnJvdyxaZS5nZXRCb3R0b21TdGFydENvcm5lcigpLnJvdyx5dD0+e3RoaXMuc2VsZWN0ZWRSb3dzLmluY2x1ZGVzKHl0KXx8dGhpcy5zZWxlY3RlZFJvd3MucHVzaCh5dCl9KX0pLHRoaXMuc2VsZWN0ZWRS'@; put 'b3dzLmluY2x1ZGVzKHRoaXMuY3VycmVudFJvdyl8fCh0aGlzLnNlbGVjdGVkUm93cz1bdGhpcy5jdXJyZW50Um93XSksdGhpcy5zdGFydE9mZnNldD1wZS50b3AtNix0aGlzLnN0YXJ0SGVpZ2h0PXBhcnNlSW50KFQuaGVpZ2h0LDEwKSx0aGlzLmhhbmRsZS5zdHlsZS50b3A9YCR7dGhpcy5z'@; put 'dGFydE9mZnNldCt0aGlzLnN0YXJ0SGVpZ2h0fXB4YCx0aGlzLmhhbmRsZS5zdHlsZVt0aGlzLmlubGluZURpcl09YCR7cGUuc3RhcnR9cHhgLHRoaXMuaGFuZGxlLnN0eWxlLndpZHRoPWAke199cHhgLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaGFuZGxlKX1yZWZy'@; put 'ZXNoSGFuZGxlUG9zaXRpb24oKXt0aGlzLmhhbmRsZS5zdHlsZS50b3A9YCR7dGhpcy5zdGFydE9mZnNldCt0aGlzLmN1cnJlbnRIZWlnaHR9cHhgfXNldHVwR3VpZGVQb3NpdGlvbigpe2NvbnN0IGw9cGFyc2VJbnQod2EodGhpcy5oYW5kbGUpLDEwKSxhPXBhcnNlSW50KHRoaXMuaGFuZGxl'@; put 'LnN0eWxlW3RoaXMuaW5saW5lRGlyXSwxMCkrbCxkPXBhcnNlSW50KHRoaXMuaG90LnZpZXcubWF4aW11bVZpc2libGVFbGVtZW50V2lkdGgoMCksMTApO3BpKHRoaXMuaGFuZGxlLCJhY3RpdmUiKSxwaSh0aGlzLmd1aWRlLCJhY3RpdmUiKSx0aGlzLmd1aWRlLnN0eWxlLnRvcD10aGlzLmhh'@; put 'bmRsZS5zdHlsZS50b3AsdGhpcy5ndWlkZS5zdHlsZVt0aGlzLmlubGluZURpcl09YCR7YX1weGAsdGhpcy5ndWlkZS5zdHlsZS53aWR0aD1kLWwrInB4Iix0aGlzLmhvdC5yb290RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmd1aWRlKX1yZWZyZXNoR3VpZGVQb3NpdGlvbigpe3RoaXMuZ3Vp'@; put 'ZGUuc3R5bGUudG9wPXRoaXMuaGFuZGxlLnN0eWxlLnRvcH1oaWRlSGFuZGxlQW5kR3VpZGUoKXtXbyh0aGlzLmhhbmRsZSwiYWN0aXZlIiksV28odGhpcy5ndWlkZSwiYWN0aXZlIil9Y2hlY2tJZlJvd0hlYWRlcihsKXt2YXIgYTtyZXR1cm4gTnAobCxbIlRIIl0sdGhpcy5ob3Qucm9vdEVs'@; put 'ZW1lbnQpJiYiVEJPRFkiPT09KG51bGw9PT0oYT1sLnBhcmVudE5vZGUpfHx2b2lkIDA9PT1hfHxudWxsPT09KGE9YS5wYXJlbnROb2RlKXx8dm9pZCAwPT09YT92b2lkIDA6YS50YWdOYW1lKX1nZXRDbG9zZXN0VEhQYXJlbnQobCl7cmV0dXJuIlRBQkxFIiE9PWwudGFnTmFtZT8iVEgiPT09'@; put 'bC50YWdOYW1lP2w6dGhpcy5nZXRDbG9zZXN0VEhQYXJlbnQobC5wYXJlbnROb2RlKTpudWxsfWdldEFjdHVhbFJvd0hlaWdodChsKXtjb25zdCBhPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuZ2V0Um93SGVpZ2h0KGwpO3JldHVybiB2b2lkIDAhPT1hJiZ0aGlzLm5ld1NpemU8YT9hOnRo'@; put 'aXMubmV3U2l6ZX1vbk1vdXNlT3ZlcihsKXtpZighZ04obC50YXJnZXQpJiYhMCE9PXRoaXMuaXNUcmlnZ2VyZWRCeVJNQiYmdGhpcy5jaGVja0lmUm93SGVhZGVyKGwudGFyZ2V0KSl7Y29uc3QgYT10aGlzLmdldENsb3Nlc3RUSFBhcmVudChsLnRhcmdldCk7YSYmKHRoaXMucHJlc3NlZHx8'@; put 'dGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKGEpKX19YWZ0ZXJNb3VzZURvd25UaW1lb3V0KCl7Y29uc3QgbD0oKT0+e3RoaXMuaG90LmZvcmNlRnVsbFJlbmRlcj0hMCx0aGlzLmhvdC52aWV3LnJlbmRlcigpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX0sYT0oZCxoKT0+'@; put 'e2NvbnN0IGY9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVJvd1Jlc2l6ZSIsdGhpcy5nZXRBY3R1YWxSb3dIZWlnaHQoZCksZCwhMCk7dm9pZCAwIT09ZiYmKHRoaXMubmV3U2l6ZT1mKSx0aGlzLnNldE1hbnVhbFNpemUoZCx0aGlzLm5ld1NpemUpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRl'@; put 'clJvd1Jlc2l6ZSIsdGhpcy5nZXRBY3R1YWxSb3dIZWlnaHQoZCksZCwhMCksaCYmbCgpfTt0aGlzLmRibGNsaWNrPj0yJiYodGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoPjE/KERuKHRoaXMuc2VsZWN0ZWRSb3dzLGg9PnthKGgpfSksbCgpKTpEbih0aGlzLnNlbGVjdGVkUm93cyxoPT57YSho'@; put 'LCEwKX0pKSx0aGlzLmRibGNsaWNrPTAsdGhpcy5hdXRvcmVzaXplVGltZW91dD1udWxsfW9uTW91c2VEb3duKGwpe0JvKGwudGFyZ2V0LCJtYW51YWxSb3dSZXNpemVyIikmJih0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24odGhpcy5jdXJyZW50VEgpLHRoaXMuc2V0dXBHdWlkZVBvc2l0aW9u'@; put 'KCksdGhpcy5wcmVzc2VkPSEwLG51bGw9PT10aGlzLmF1dG9yZXNpemVUaW1lb3V0JiYodGhpcy5hdXRvcmVzaXplVGltZW91dD1zZXRUaW1lb3V0KCgpPT50aGlzLmFmdGVyTW91c2VEb3duVGltZW91dCgpLDUwMCksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCh0aGlzLmF1dG9yZXNpemVU'@; put 'aW1lb3V0KSksdGhpcy5kYmxjbGljays9MSx0aGlzLnN0YXJ0WT1sLnBhZ2VZLHRoaXMubmV3U2l6ZT10aGlzLnN0YXJ0SGVpZ2h0KX1vbk1vdXNlTW92ZShsKXt0aGlzLnByZXNzZWQmJih0aGlzLmN1cnJlbnRIZWlnaHQ9dGhpcy5zdGFydEhlaWdodCsobC5wYWdlWS10aGlzLnN0YXJ0WSks'@; put 'RG4odGhpcy5zZWxlY3RlZFJvd3MsYT0+e3RoaXMubmV3U2l6ZT10aGlzLnNldE1hbnVhbFNpemUoYSx0aGlzLmN1cnJlbnRIZWlnaHQpfSksdGhpcy5yZWZyZXNoSGFuZGxlUG9zaXRpb24oKSx0aGlzLnJlZnJlc2hHdWlkZVBvc2l0aW9uKCkpfW9uTW91c2VVcCgpe2NvbnN0IGw9KCk9Pnt0'@; put 'aGlzLmhvdC5mb3JjZUZ1bGxSZW5kZXI9ITAsdGhpcy5ob3Qudmlldy5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LGE9KGQsaCk9Pnt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUm93UmVzaXplIix0aGlzLmdldEFjdHVhbFJvd0hlaWdodChkKSxkLCEx'@; put 'KSxoJiZsKCksdGhpcy5zYXZlTWFudWFsUm93SGVpZ2h0cygpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclJvd1Jlc2l6ZSIsdGhpcy5nZXRBY3R1YWxSb3dIZWlnaHQoZCksZCwhMSl9O3RoaXMucHJlc3NlZCYmKHRoaXMuaGlkZUhhbmRsZUFuZEd1aWRlKCksdGhpcy5wcmVzc2VkPSExLHRo'@; put 'aXMubmV3U2l6ZSE9PXRoaXMuc3RhcnRIZWlnaHQmJih0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGg+MT8oRG4odGhpcy5zZWxlY3RlZFJvd3MsaD0+e2EoaCl9KSxsKCkpOkRuKHRoaXMuc2VsZWN0ZWRSb3dzLGg9PnthKGgsITApfSkpLHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbih0aGlzLmN1'@; put 'cnJlbnRUSCkpfW9uQ29udGV4dE1lbnUoKXt0aGlzLmhpZGVIYW5kbGVBbmRHdWlkZSgpLHRoaXMuaG90LnJvb3RFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuaGFuZGxlKSx0aGlzLmhvdC5yb290RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmd1aWRlKSx0aGlzLnByZXNzZWQ9ITEsdGhpcy5p'@; put 'c1RyaWdnZXJlZEJ5Uk1CPSEwLHRoaXMuaG90Ll9yZWdpc3RlckltbWVkaWF0ZSgoKT0+e3RoaXMuaXNUcmlnZ2VyZWRCeVJNQj0hMX0pfWJpbmRFdmVudHMoKXtjb25zdHtyb290RWxlbWVudDpsLHJvb3RXaW5kb3c6YX09dGhpcy5ob3Q7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0'@; put 'ZW5lcihsLCJtb3VzZW92ZXIiLGQ9PnRoaXMub25Nb3VzZU92ZXIoZCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwibW91c2Vkb3duIixkPT50aGlzLm9uTW91c2VEb3duKGQpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlbW92ZSIs'@; put 'ZD0+dGhpcy5vbk1vdXNlTW92ZShkKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJtb3VzZXVwIiwoKT0+dGhpcy5vbk1vdXNlVXAoKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhhbmRsZSwiY29udGV4dG1lbnUiLCgpPT50aGlzLm9u'@; put 'Q29udGV4dE1lbnUoKSl9b25Nb2RpZnlSb3dIZWlnaHQobCxhKXtsZXQgZD1sO2lmKHRoaXMuZW5hYmxlZCl7Y29uc3QgaD10aGlzLmhvdC50b1BoeXNpY2FsUm93KGEpLGY9dGhpcy5yb3dIZWlnaHRzTWFwLmdldFZhbHVlQXRJbmRleChoKTt0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0ZBXSYm'@; put 'ZiYmKGQ9Zil9cmV0dXJuIGR9b25NYXBJbml0KCl7Y29uc3QgbD13ei5nZXQodGhpcyksYT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW0ZBXSxkPXRoaXMubG9hZE1hbnVhbFJvd0hlaWdodHMoKTt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e3R5cGVvZiBkPCJ1Ij9kLmZvckVhY2goKGgs'@; put 'Zik9Pnt0aGlzLnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KGYsaCl9KTpBcnJheS5pc0FycmF5KGEpPyhhLmZvckVhY2goKGgsZik9Pnt0aGlzLnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KGYsaCl9KSxsLmNvbmZpZz1hKTohMD09PWEmJkFycmF5LmlzQXJyYXkobC5jb25m'@; put 'aWcpJiZsLmNvbmZpZy5mb3JFYWNoKChoLGYpPT57dGhpcy5yb3dIZWlnaHRzTWFwLnNldFZhbHVlQXRJbmRleChmLGgpfSl9LCEwKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1jb25zdCB4aD1jbGFzcyBpSGV7Y29uc3RydWN0b3IobCxhLGQsaCxmLF8pe3RoaXMucm93PWwsdGhpcy5j'@; put 'b2w9YSx0aGlzLnJvd3NwYW49ZCx0aGlzLmNvbHNwYW49aCx0aGlzLnJlbW92ZWQ9ITEsdGhpcy5jZWxsQ29vcmRzRmFjdG9yeT1mLHRoaXMuY2VsbFJhbmdlRmFjdG9yeT1ffXN0YXRpYyBORUdBVElWRV9WQUxVRVNfV0FSTklORyhsKXtyZXR1cm4gQWFgVGhlIG1lcmdlZCBjZWxsIGRlY2xh'@; put 'cmVkIHdpdGgge3JvdzogJHtsLnJvd30sIGNvbDogJHtsLmNvbH0sXHgyMAogICAgICByb3dzcGFuOiAke2wucm93c3Bhbn0sIGNvbHNwYW46ICR7bC5jb2xzcGFufX0gY29udGFpbnMgbmVnYXRpdmUgdmFsdWVzLCB3aGljaCBpc1x4MjAKICAgICAgbm90IHN1cHBvcnRlZC4gSXQgd2lsbCBu'@; put 'b3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxlY3Rpb24uYH1zdGF0aWMgSVNfT1VUX09GX0JPVU5EU19XQVJOSU5HKGwpe3JldHVybiBBYWBUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyR7bC5yb3d9LCAke2wuY29sfV0gaXMgcG9zaXRpb25lZFx4MjAKICAgICAgKG9yIHBvc2l0aW9uZWQg'@; put 'cGFydGlhbGx5KSBvdXRzaWRlIG9mIHRoZSB0YWJsZSByYW5nZS4gSXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZSBmaXggeW91ciBzZXR1cC5gfXN0YXRpYyBJU19TSU5HTEVfQ0VMTChsKXtyZXR1cm4gQWFgVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFske2wucm93'@; put 'fSwgJHtsLmNvbH1dIGhhcyBib3RoICJyb3dzcGFuIlx4MjAKICAgICAgYW5kICJjb2xzcGFuIiBkZWNsYXJlZCBhcyAiMSIsIHdoaWNoIG1ha2VzIGl0IGEgc2luZ2xlIGNlbGwuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi5gfXN0YXRpYyBaRVJPX1NQQU5fV0FSTklO'@; put 'RyhsKXtyZXR1cm4gQWFgVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFske2wucm93fSwgJHtsLmNvbH1dIGhhcyAicm93c3BhbiJceDIwCiAgICAgIG9yICJjb2xzcGFuIiBkZWNsYXJlZCBhcyAiMCIsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0'@; put 'aGUgY29sbGVjdGlvbi5gfXN0YXRpYyBjb250YWluc05lZ2F0aXZlVmFsdWVzKGwpe3JldHVybiBsLnJvdzwwfHxsLmNvbDwwfHxsLnJvd3NwYW48MHx8bC5jb2xzcGFuPDB9c3RhdGljIGlzU2luZ2xlQ2VsbChsKXtyZXR1cm4gMT09PWwuY29sc3BhbiYmMT09PWwucm93c3Bhbn1zdGF0aWMg'@; put 'Y29udGFpbnNaZXJvU3BhbihsKXtyZXR1cm4gMD09PWwuY29sc3Bhbnx8MD09PWwucm93c3Bhbn1zdGF0aWMgaXNPdXRPZkJvdW5kcyhsLGEsZCl7cmV0dXJuIGwucm93PDB8fGwuY29sPDB8fGwucm93Pj1hfHxsLnJvdytsLnJvd3NwYW4tMT49YXx8bC5jb2w+PWR8fGwuY29sK2wuY29sc3Bh'@; put 'bi0xPj1kfW5vcm1hbGl6ZShsKXtjb25zdCBhPWwuY291bnRSb3dzKCksZD1sLmNvdW50Q29scygpO3RoaXMucm93PDA/dGhpcy5yb3c9MDp0aGlzLnJvdz5hLTEmJih0aGlzLnJvdz1hLTEpLHRoaXMuY29sPDA/dGhpcy5jb2w9MDp0aGlzLmNvbD5kLTEmJih0aGlzLmNvbD1kLTEpLHRoaXMu'@; put 'cm93K3RoaXMucm93c3Bhbj5hLTEmJih0aGlzLnJvd3NwYW49YS10aGlzLnJvdyksdGhpcy5jb2wrdGhpcy5jb2xzcGFuPmQtMSYmKHRoaXMuY29sc3Bhbj1kLXRoaXMuY29sKX1pbmNsdWRlcyhsLGEpe3JldHVybiB0aGlzLnJvdzw9bCYmdGhpcy5jb2w8PWEmJnRoaXMucm93K3RoaXMucm93'@; put 'c3Bhbi0xPj1sJiZ0aGlzLmNvbCt0aGlzLmNvbHNwYW4tMT49YX1pbmNsdWRlc0hvcml6b250YWxseShsKXtyZXR1cm4gdGhpcy5jb2w8PWwmJnRoaXMuY29sK3RoaXMuY29sc3Bhbi0xPj1sfWluY2x1ZGVzVmVydGljYWxseShsKXtyZXR1cm4gdGhpcy5yb3c8PWwmJnRoaXMucm93K3RoaXMu'@; put 'cm93c3Bhbi0xPj1sfXNoaWZ0KGwsYSl7Y29uc3QgZD1sWzBdfHxsWzFdLGg9YStNYXRoLmFicyhsWzBdfHxsWzFdKS0xLGY9bFswXT8iY29sc3BhbiI6InJvd3NwYW4iLF89bFswXT8iY29sIjoicm93IixUPU1hdGgubWluKGEsaCksVz1NYXRoLm1heChhLGgpLGllPXRoaXNbX10scGU9dGhp'@; put 'c1tfXSt0aGlzW2ZdLTE7aWYoaWU+PWEmJih0aGlzW19dKz1kKSxkPjApYTw9cGUmJmE+aWUmJih0aGlzW2ZdKz1kKTtlbHNlIGlmKGQ8MCl7aWYoVDw9aWUmJlc+PXBlKXJldHVybiB0aGlzLnJlbW92ZWQ9ITAsITE7aWYoaWU+PVQmJmllPD1XKXtjb25zdCB3ZT1XLWllKzEsRWU9TWF0aC5h'@; put 'YnMoZCktd2U7dGhpc1tfXS09RWUrZCx0aGlzW2ZdLT13ZX1lbHNlIGllPD1UJiZwZT49Vz90aGlzW2ZdKz1kOmllPD1UJiZwZT49VCYmcGU8VyYmKHRoaXNbZl0tPXBlLVQrMSl9cmV0dXJuITB9aXNGYXJ0aGVyKGwsYSl7cmV0dXJuIWx8fCgiZG93biI9PT1hP2wucm93K2wucm93c3Bhbi0x'@; put 'PHRoaXMucm93K3RoaXMucm93c3Bhbi0xOiJ1cCI9PT1hP2wucm93PnRoaXMucm93OiJyaWdodCI9PT1hP2wuY29sK2wuY29sc3Bhbi0xPHRoaXMuY29sK3RoaXMuY29sc3Bhbi0xOiJsZWZ0Ij09PWE/bC5jb2w+dGhpcy5jb2w6bnVsbCl9Z2V0TGFzdFJvdygpe3JldHVybiB0aGlzLnJvdyt0'@; put 'aGlzLnJvd3NwYW4tMX1nZXRMYXN0Q29sdW1uKCl7cmV0dXJuIHRoaXMuY29sK3RoaXMuY29sc3Bhbi0xfWdldFJhbmdlKCl7cmV0dXJuIHRoaXMuY2VsbFJhbmdlRmFjdG9yeSh0aGlzLmNlbGxDb29yZHNGYWN0b3J5KHRoaXMucm93LHRoaXMuY29sKSx0aGlzLmNlbGxDb29yZHNGYWN0b3J5'@; put 'KHRoaXMucm93LHRoaXMuY29sKSx0aGlzLmNlbGxDb29yZHNGYWN0b3J5KHRoaXMuZ2V0TGFzdFJvdygpLHRoaXMuZ2V0TGFzdENvbHVtbigpKSl9fTtmdW5jdGlvbiBDeihjLGwsYSxkKXtsP2wucm93PT09YSYmbC5jb2w9PT1kPyhjLnNldEF0dHJpYnV0ZSgicm93c3BhbiIsbC5yb3dzcGFu'@; put 'LnRvU3RyaW5nKCkpLGMuc2V0QXR0cmlidXRlKCJjb2xzcGFuIixsLmNvbHNwYW4udG9TdHJpbmcoKSkpOihjLnJlbW92ZUF0dHJpYnV0ZSgicm93c3BhbiIpLGMucmVtb3ZlQXR0cmlidXRlKCJjb2xzcGFuIiksYy5zdHlsZS5kaXNwbGF5PSJub25lIik6KGMucmVtb3ZlQXR0cmlidXRlKCJy'@; put 'b3dzcGFuIiksYy5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxjLnN0eWxlLmRpc3BsYXk9IiIpfWNsYXNzIFN6e2NvbnN0cnVjdG9yKGwpe3RoaXMucGx1Z2luPWwsdGhpcy5tZXJnZWRDZWxscz1bXSx0aGlzLmhvdD1sLmhvdH1zdGF0aWMgSVNfT1ZFUkxBUFBJTkdfV0FSTklORyhsKXty'@; put 'ZXR1cm4gQWFgVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFske2wucm93fSwgJHtsLmNvbH1dLCBvdmVybGFwc1x4MjAKICAgICAgd2l0aCB0aGUgb3RoZXIgZGVjbGFyZWQgbWVyZ2VkIGNlbGwuIFRoZSBvdmVybGFwcGluZyBtZXJnZWQgY2VsbCB3YXMgbm90IGFkZGVkIHRvIHRoZSB0'@; put 'YWJsZSwgcGxlYXNlXHgyMAogICAgICBmaXggeW91ciBzZXR1cC5gfWdldChsLGEpe2xldCBoPSExO3JldHVybiBEbih0aGlzLm1lcmdlZENlbGxzLGY9PiEoZi5yb3c8PWwmJmYucm93K2Yucm93c3Bhbi0xPj1sJiZmLmNvbDw9YSYmZi5jb2wrZi5jb2xzcGFuLTE+PWEmJihoPWYsMSkpKSxo'@; put 'fWdldEJ5UmFuZ2UobCl7bGV0IGQ9ITE7cmV0dXJuIERuKHRoaXMubWVyZ2VkQ2VsbHMsaD0+IShoLnJvdzw9bC5mcm9tLnJvdyYmaC5yb3craC5yb3dzcGFuLTE+PWwudG8ucm93JiZoLmNvbDw9bC5mcm9tLmNvbCYmaC5jb2wraC5jb2xzcGFuLTE+PWwudG8uY29sKXx8KGQ9aCxkKSksZH1n'@; put 'ZXRXaXRoaW5SYW5nZShsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2NvbnN0IGQ9dGhpcy5tZXJnZWRDZWxscyxoPVtdO2xldCBmPWw7aWYoIWYuaW5jbHVkZXNSYW5nZSl7Y29uc3QgXz10aGlzLmhvdC5fY3JlYXRlQ2Vs'@; put 'bENvb3JkcyhmLmZyb20ucm93LGYuZnJvbS5jb2wpLFQ9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoZi50by5yb3csZi50by5jb2wpO2Y9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShfLF8sVCl9cmV0dXJuIERuKGQsXz0+e2NvbnN0IFQ9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMo'@; put 'Xy5yb3csXy5jb2wpLFc9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoXy5yb3crXy5yb3dzcGFuLTEsXy5jb2wrXy5jb2xzcGFuLTEpLGllPXRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UoVCxULFcpO2E/Zi5vdmVybGFwcyhpZSkmJmgucHVzaChfKTpmLmluY2x1ZGVzUmFuZ2UoaWUpJiZo'@; put 'LnB1c2goXyl9KSwhIWgubGVuZ3RoJiZofWFkZChsKXtjb25zdCBhPXRoaXMubWVyZ2VkQ2VsbHMsZD1sLnJvdyxoPWwuY29sLFQ9bmV3IHhoKGQsaCxsLnJvd3NwYW4sbC5jb2xzcGFuLHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzLHRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UpLFc9dGhp'@; put 'cy5nZXQoZCxoKSxpZT10aGlzLmlzT3ZlcmxhcHBpbmcoVCk7cmV0dXJuIFd8fGllPyhHYShTei5JU19PVkVSTEFQUElOR19XQVJOSU5HKFQpKSwhMSk6KHRoaXMuaG90JiZULm5vcm1hbGl6ZSh0aGlzLmhvdCksYS5wdXNoKFQpLFQpfXJlbW92ZShsLGEpe2NvbnN0IGQ9dGhpcy5tZXJnZWRD'@; put 'ZWxscyxoPXRoaXMuZ2V0KGwsYSksZj1oP3RoaXMubWVyZ2VkQ2VsbHMuaW5kZXhPZihoKTotMTtyZXR1cm4hKCFofHwtMT09PWYpJiYoZC5zcGxpY2UoZiwxKSxoKX1jbGVhcigpe2NvbnN0IGE9W10sZD1bXTtEbih0aGlzLm1lcmdlZENlbGxzLGg9Pntjb25zdCBmPXRoaXMuaG90LmdldENl'@; put 'bGwoaC5yb3csaC5jb2wpO2YmJmEucHVzaChbZix0aGlzLmdldChoLnJvdyxoLmNvbCksaC5yb3csaC5jb2xdKX0pLHRoaXMubWVyZ2VkQ2VsbHMubGVuZ3RoPTAsRG4oYSwoaCxmKT0+e3ZvKDAsaC5yb3dzcGFuLTEsXz0+e3ZvKDAsaC5jb2xzcGFuLTEsVD0+e2lmKDAhPT1UfHwwIT09Xyl7'@; put 'Y29uc3QgVz10aGlzLmhvdC5nZXRDZWxsKGgucm93K18saC5jb2wrVCk7VyYmZC5wdXNoKFtXLG51bGwsbnVsbCxudWxsXSl9fSl9KSxhW2ZdWzFdPW51bGx9KSxEbihhLGg9PntDeiguLi5oKX0pLERuKGQsaD0+e0N6KC4uLmgpfSl9aXNPdmVybGFwcGluZyhsKXtjb25zdCBhPXRoaXMuaG90'@; put 'Ll9jcmVhdGVDZWxsUmFuZ2UodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoMCwwKSx0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLnJvdyxsLmNvbCksdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobC5yb3crbC5yb3dzcGFuLTEsbC5jb2wrbC5jb2xzcGFuLTEpKTtsZXQgZD0hMTty'@; put 'ZXR1cm4gRG4odGhpcy5tZXJnZWRDZWxscyxoPT4hdGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcygwLDApLHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGgucm93LGguY29sKSx0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLnJvdytoLnJv'@; put 'd3NwYW4tMSxoLmNvbCtoLmNvbHNwYW4tMSkpLm92ZXJsYXBzKGEpfHwoZD0hMCwhMSkpLGR9aXNGaXJzdFJlbmRlcmFibGVNZXJnZWRDZWxsKGwsYSl7Y29uc3QgZD10aGlzLmdldChsLGEpO3JldHVybiBkJiZ0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5k'@; put 'ZXgoZC5yb3csMSk9PT1sJiZ0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZC5jb2wsMSk9PT1hfWdldEZpcnN0UmVuZGVyYWJsZUNvb3JkcyhsLGEpe2NvbnN0IGQ9dGhpcy5nZXQobCxhKTtpZighZHx8dGhpcy5pc0ZpcnN0UmVuZGVyYWJsZU1l'@; put 'cmdlZENlbGwobCxhKSlyZXR1cm4gdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobCxhKTtjb25zdCBoPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChkLnJvdywxKSxmPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRk'@; put 'ZW5JbmRleChkLmNvbCwxKTtyZXR1cm4gdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoaCxmKX1zaGlmdENvbGxlY3Rpb25zKGwsYSxkKXtjb25zdCBoPVswLDBdO3N3aXRjaChsKXtjYXNlInJpZ2h0IjpoWzBdKz1kO2JyZWFrO2Nhc2UibGVmdCI6aFswXS09ZDticmVhaztjYXNlImRvd24i'@; put 'OmhbMV0rPWQ7YnJlYWs7Y2FzZSJ1cCI6aFsxXS09ZH1Ebih0aGlzLm1lcmdlZENlbGxzLGY9PntmLnNoaWZ0KGgsYSl9KSx2ayh0aGlzLm1lcmdlZENlbGxzLmxlbmd0aC0xLDAsZj0+e2NvbnN0IF89dGhpcy5tZXJnZWRDZWxsc1tmXTtfJiZfLnJlbW92ZWQmJnRoaXMubWVyZ2VkQ2VsbHMu'@; put 'c3BsaWNlKHRoaXMubWVyZ2VkQ2VsbHMuaW5kZXhPZihfKSwxKX0pfX1jb25zdCBvSGU9U3o7c28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZU1lcmdlQ2VsbHMiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJNZXJnZUNlbGxzIiksc28uZ2V0U2luZ2xldG9uKCku'@; put 'cmVnaXN0ZXIoImJlZm9yZVVubWVyZ2VDZWxscyIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclVubWVyZ2VDZWxscyIpO2NvbnN0IEt5PSJtZXJnZUNlbGxzIixhb2U9bmV3IFdlYWtNYXAsbG9lPUt5O2NsYXNzIGhIZSBleHRlbmRzIFpze3N0YXRpYyBnZXQgUExVR0lOX0tF'@; put 'WSgpe3JldHVybiBLeX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAxNTB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksYW9lLnNldCh0aGlzLHtsYXN0RGVzaXJlZENvb3JkczpudWxsfSksdGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb249bnVsbCx0aGlzLmF1dG9maWxsQ2Fs'@; put 'Y3VsYXRpb25zPW51bGwsdGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnM9bnVsbH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbS3ldfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb249bmV3'@; put 'IG9IZSh0aGlzKSx0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zPW5ldyBjbGFzcyBzSGV7Y29uc3RydWN0b3IobCl7dGhpcy5wbHVnaW49bCx0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbj10aGlzLnBsdWdpbi5tZXJnZWRDZWxsc0NvbGxlY3Rpb24sdGhpcy5jdXJyZW50RmlsbERhdGE9bnVs'@; put 'bH1jb3JyZWN0U2VsZWN0aW9uQXJlYVNpemUobCl7aWYobFswXT09PWxbMl0mJmxbMV09PT1sWzNdKXtjb25zdCBhPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChsWzBdLGxbMV0pO2EmJihsWzJdPWxbMF0rYS5yb3dzcGFuLTEsbFszXT1sWzFdK2EuY29sc3Bhbi0xKX19Z2V0RGly'@; put 'ZWN0aW9uKGwsYSl7bGV0IGQ9bnVsbDtyZXR1cm4gZD1hWzBdPT09bFswXSYmYVsxXT09PWxbMV0mJmFbM109PT1sWzNdPyJkb3duIjphWzJdPT09bFsyXSYmYVsxXT09PWxbMV0mJmFbM109PT1sWzNdPyJ1cCI6YVsxXT09PWxbMV0mJmFbMl09PT1sWzJdPyJyaWdodCI6ImxlZnQiLGR9c25h'@; put 'cERyYWdBcmVhKGwsYSxkLGgpe2NvbnN0IGY9YS5zbGljZSgwKSxfPXRoaXMuZ2V0QXV0b2ZpbGxTaXplKGwsYSxkKSxbVCxXLGllLHBlXT1sLEVlPVsidXAiLCJkb3duIl0uaW5kZXhPZihkKT4tMT9pZS1UKzE6cGUtVysxLGl0PV8tTWF0aC5mbG9vcihfL0VlKSpFZSxldD10aGlzLmdldEZh'@; put 'cnRoZXN0Q29sbGVjdGlvbihsLGEsZCxoKTtpZihldClpZigiZG93biI9PT1kKXtjb25zdCB5dD1ldC5yb3crZXQucm93c3Bhbi1ULWl0O2ZbMl0reXQ+PXRoaXMucGx1Z2luLmhvdC5jb3VudFJvd3MoKT9mWzJdLT1pdDpmWzJdKz1pdD95dDowfWVsc2UgaWYoInJpZ2h0Ij09PWQpe2NvbnN0'@; put 'IHl0PWV0LmNvbCtldC5jb2xzcGFuLVctaXQ7ZlszXSt5dD49dGhpcy5wbHVnaW4uaG90LmNvdW50Q29scygpP2ZbM10tPWl0OmZbM10rPWl0P3l0OjB9ZWxzZSBpZigidXAiPT09ZCl7Y29uc3QgeXQ9aWUtaXQtZXQucm93KzE7ZlswXSt5dDwwP2ZbMF0rPWl0OmZbMF0tPWl0P3l0OjB9ZWxz'@; put 'ZSBpZigibGVmdCI9PT1kKXtjb25zdCB5dD1wZS1pdC1ldC5jb2wrMTtmWzFdK3l0PDA/ZlsxXSs9aXQ6ZlsxXS09aXQ/eXQ6MH1yZXR1cm4gdGhpcy51cGRhdGVDdXJyZW50RmlsbENhY2hlKHtiYXNlQXJlYTpsLGRyYWdEaXJlY3Rpb246ZCxmb3VuZE1lcmdlZENlbGxzOmgsZmlsbFNpemU6'@; put 'XyxkcmFnQXJlYTpmLGN5Y2xlTGVuZ3RoOkVlfSksZn11cGRhdGVDdXJyZW50RmlsbENhY2hlKGwpe3RoaXMuY3VycmVudEZpbGxEYXRhfHwodGhpcy5jdXJyZW50RmlsbERhdGE9e30pLFhsKHRoaXMuY3VycmVudEZpbGxEYXRhLGwpfWdldEF1dG9maWxsU2l6ZShsLGEsZCl7Y29uc3RbaCxm'@; put 'LF8sVF09bCxbVyxpZSxwZSx3ZV09YTtzd2l0Y2goZCl7Y2FzZSJ1cCI6cmV0dXJuIGgtVztjYXNlImRvd24iOnJldHVybiBwZS1fO2Nhc2UibGVmdCI6cmV0dXJuIGYtaWU7Y2FzZSJyaWdodCI6cmV0dXJuIHdlLVQ7ZGVmYXVsdDpyZXR1cm4gbnVsbH19Z2V0RHJhZ0FyZWEobCxhLGQpe2Nv'@; put 'bnN0W2gsZixfLFRdPWwsW1csaWUscGUsd2VdPWE7c3dpdGNoKGQpe2Nhc2UidXAiOnJldHVybltXLGllLGgtMSxUXTtjYXNlImRvd24iOnJldHVybltfKzEsZixwZSxUXTtjYXNlImxlZnQiOnJldHVybltXLGllLF8sZi0xXTtjYXNlInJpZ2h0IjpyZXR1cm5baCxUKzEscGUsd2VdO2RlZmF1'@; put 'bHQ6cmV0dXJuIG51bGx9fWdldEZhcnRoZXN0Q29sbGVjdGlvbihsLGEsZCxoKXtjb25zdFtmLF8sVCxXXT1sLGllPVsidXAiLCJkb3duIl0uaW5kZXhPZihkKT4tMSxwZT1pZT9UOlcsd2U9aWU/ZjpfLEVlPXRoaXMuZ2V0QXV0b2ZpbGxTaXplKGwsYSxkKSxaZT1pZT9ULWYrMTpXLV8rMSxl'@; put 'dD1FZS1NYXRoLmZsb29yKEVlL1plKSpaZTtsZXQgeXQ9bnVsbCxFdD1udWxsLFN0PW51bGw7c3dpdGNoKGQpe2Nhc2UidXAiOnl0PSJpbmNsdWRlc1ZlcnRpY2FsbHkiLFN0PXBlLWV0KzE7YnJlYWs7Y2FzZSJsZWZ0Ijp5dD0iaW5jbHVkZXNIb3Jpem9udGFsbHkiLFN0PXBlLWV0KzE7YnJl'@; put 'YWs7Y2FzZSJkb3duIjp5dD0iaW5jbHVkZXNWZXJ0aWNhbGx5IixTdD13ZStldC0xO2JyZWFrO2Nhc2UicmlnaHQiOnl0PSJpbmNsdWRlc0hvcml6b250YWxseSIsU3Q9d2UrZXQtMX1yZXR1cm4gRG4oaCxKdD0+e0p0W3l0XShTdCkmJkp0LmlzRmFydGhlcihFdCxkKSYmKEV0PUp0KX0pLEV0'@; put 'fXJlY3JlYXRlQWZ0ZXJEYXRhUG9wdWxhdGlvbihsKXtpZighdGhpcy5jdXJyZW50RmlsbERhdGEpcmV0dXJuO2NvbnN0IGE9dGhpcy5nZXRSYW5nZUZyb21DaGFuZ2VzKGwpLGQ9dGhpcy5jdXJyZW50RmlsbERhdGEuZm91bmRNZXJnZWRDZWxscyxoPXRoaXMuY3VycmVudEZpbGxEYXRhLmRy'@; put 'YWdEaXJlY3Rpb24sZj0oaWUscGUpPT57c3dpdGNoKGgpe2Nhc2UidXAiOnJldHVybiBpZS5yb3ctcGU+PWEuZnJvbS5yb3c7Y2FzZSJkb3duIjpyZXR1cm4gaWUucm93K2llLnJvd3NwYW4tMStwZTw9YS50by5yb3c7Y2FzZSJsZWZ0IjpyZXR1cm4gaWUuY29sLXBlPj1hLmZyb20uY29sdW1u'@; put 'O2Nhc2UicmlnaHQiOnJldHVybiBpZS5jb2wraWUuY29sc3Bhbi0xK3BlPD1hLnRvLmNvbHVtbjtkZWZhdWx0OnJldHVybiBudWxsfX07bGV0IF89MCxUPW51bGwsVz0xO2Rve2ZvcihsZXQgaWU9MDtpZTxkLmxlbmd0aDtpZSs9MSl7aWYoVD1kW2llXSxfPVcqdGhpcy5jdXJyZW50RmlsbERh'@; put 'dGEuY3ljbGVMZW5ndGgsZihULF8pKXN3aXRjaChoKXtjYXNlInVwIjp0aGlzLnBsdWdpbi5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uYWRkKHtyb3c6VC5yb3ctXyxyb3dzcGFuOlQucm93c3Bhbixjb2w6VC5jb2wsY29sc3BhbjpULmNvbHNwYW59KTticmVhaztjYXNlImRvd24iOnRoaXMucGx1'@; put 'Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5hZGQoe3JvdzpULnJvdytfLHJvd3NwYW46VC5yb3dzcGFuLGNvbDpULmNvbCxjb2xzcGFuOlQuY29sc3Bhbn0pO2JyZWFrO2Nhc2UibGVmdCI6dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZCh7cm93OlQucm93LHJvd3NwYW46'@; put 'VC5yb3dzcGFuLGNvbDpULmNvbC1fLGNvbHNwYW46VC5jb2xzcGFufSk7YnJlYWs7Y2FzZSJyaWdodCI6dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZCh7cm93OlQucm93LHJvd3NwYW46VC5yb3dzcGFuLGNvbDpULmNvbCtfLGNvbHNwYW46VC5jb2xzcGFufSl9aWU9PT1k'@; put 'Lmxlbmd0aC0xJiYoVys9MSl9fXdoaWxlKGYoVCxfKSk7dGhpcy5jdXJyZW50RmlsbERhdGE9bnVsbCx0aGlzLnBsdWdpbi5ob3QucmVuZGVyKCksZC5sZW5ndGg+MCYmdGhpcy5wbHVnaW4uaWZDaHJvbWVGb3JjZVJlcGFpbnQoKX1nZXRSYW5nZUZyb21DaGFuZ2VzKGwpe2NvbnN0IGE9e21p'@; put 'bjpudWxsLG1heDpudWxsfSxkPXttaW46bnVsbCxtYXg6bnVsbH07cmV0dXJuIERuKGwsaD0+e2NvbnN0IGY9aFswXSxfPXRoaXMucGx1Z2luLmhvdC5wcm9wVG9Db2woaFsxXSk7KG51bGw9PT1hLm1pbnx8ZjxhLm1pbikmJihhLm1pbj1mKSwobnVsbD09PWEubWF4fHxmPmEubWF4KSYmKGEu'@; put 'bWF4PWYpLChudWxsPT09ZC5taW58fF88ZC5taW4pJiYoZC5taW49XyksKG51bGw9PT1kLm1heHx8Xz5kLm1heCkmJihkLm1heD1fKX0pLHtmcm9tOntyb3c6YS5taW4sY29sdW1uOmQubWlufSx0bzp7cm93OmEubWF4LGNvbHVtbjpkLm1heH19fWRyYWdBcmVhT3ZlcmxhcHNDb2xsZWN0aW9u'@; put 'cyhsLGEsZCl7Y29uc3QgaD10aGlzLmdldERyYWdBcmVhKGwsYSxkKSxbZixfLFQsV109aCxpZT10aGlzLnBsdWdpbi5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoZixfKSxwZT10aGlzLnBsdWdpbi5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoVCxXKSx3ZT10aGlzLnBsdWdpbi5ob3QuX2NyZWF0ZUNl'@; put 'bGxSYW5nZShpZSxpZSxwZSk7cmV0dXJuISF0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZSh3ZSwhMCl9fSh0aGlzKSx0aGlzLnNlbGVjdGlvbkNhbGN1bGF0aW9ucz1uZXcgY2xhc3MgbEhle2NvbnN0cnVjdG9yKGwpe3RoaXMucGx1Z2luPWwsdGhpcy5ob3Q9bC5o'@; put 'b3QsdGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZT0iZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwifXNuYXBEZWx0YShsLGEsZCl7Y29uc3QgaD1hLnRvLF89aC5jb2wrbC5jb2w7bC5yb3c/dGhpcy5qdW1wT3Zlck1lcmdlZENlbGwobCxkLGgucm93K2wucm93KTpsLmNvbCYm'@; put 'dGhpcy5qdW1wT3Zlck1lcmdlZENlbGwobCxkLF8pfWp1bXBPdmVyTWVyZ2VkQ2VsbChsLGEsZCl7bGV0IGg9bC5yb3d8fGwuY29sLGY9bnVsbCxfPW51bGwsVD1udWxsO2wucm93PyhmPWEuaW5jbHVkZXNWZXJ0aWNhbGx5KGQpLF89YS5yb3csVD1hLmdldExhc3RSb3coKSk6bC5jb2wmJihm'@; put 'PWEuaW5jbHVkZXNIb3Jpem9udGFsbHkoZCksXz1hLmNvbCxUPWEuZ2V0TGFzdENvbHVtbigpKSwwIT09aCYmKGg+MD9mJiZkIT09XyYmKGgrPVQtZCsxKTpmJiZkIT09VCYmKGgtPWQtXysxKSxsLnJvdz9sLnJvdz1oOmwuY29sJiYobC5jb2w9aCkpfWdldFVwZGF0ZWRTZWxlY3Rpb25SYW5n'@; put 'ZShsLGEpe3JldHVybiB0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKGwuaGlnaGxpZ2h0LGwuZnJvbSx0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLnRvLnJvdythLnJvdyxsLnRvLmNvbCthLmNvbCkpfWdldFNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZShsLGEsZCxoKXtjb25zdCBm'@; put 'PU1hdGgubWluKGRbMF0sZFsyXSksXz1NYXRoLm1pbihkWzFdLGRbM10pLFQ9TWF0aC5tYXgoZFswXSxkWzJdKSxXPU1hdGgubWF4KGRbMV0sZFszXSk7aWYodm9pZCAwPT09aHx8IXRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5pc0ZpcnN0UmVuZGVyYWJsZU1lcmdlZENlbGwo'@; put 'bCxhKSlyZXR1cm47Y29uc3QgcGU9dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChsLGEpO2lmKCFwZSlyZXR1cm47Y29uc3Qgd2U9cGUuZ2V0TGFzdFJvdygpLEVlPXBlLmdldExhc3RDb2x1bW4oKTtyZXR1cm4gZjw9cGUucm93JiZfPD1wZS5jb2wmJlQ+PXdlJiZXPj1F'@; put 'ZT9gJHt0aGlzLmZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lfS0ke2h9YDp0aGlzLnBsdWdpbi5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuaXNNZXJnZUNlbGxGdWxseVNlbGVjdGVkKHBlLHRoaXMucGx1Z2luLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCkpP2Ake3RoaXMuZnVsbHlTZWxl'@; put 'Y3RlZE1lcmdlZENlbGxDbGFzc05hbWV9LW11bHRpcGxlYDp2b2lkIDB9aXNNZXJnZUNlbGxGdWxseVNlbGVjdGVkKGwsYSl7Y29uc3QgZD1bXTtpZighYXx8IWwpcmV0dXJuITE7Zm9yKGxldCBoPTA7aDxsLnJvd3NwYW47aCs9MSlmb3IobGV0IGY9MDtmPGwuY29sc3BhbjtmKz0xKWQucHVz'@; put 'aCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLnJvdytoLGwuY29sK2YpKTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grPTEpe2NvbnN0IGY9W107Zm9yKGxldCBfPTA7XzxhLmxlbmd0aDtfKz0xKWZbX109YVtfXS5pbmNsdWRlcyhkW2hdKTtpZighZi5pbmNsdWRlcyghMCkpcmV0dXJu'@; put 'ITF9cmV0dXJuITB9Z2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lVG9SZW1vdmUoKXtjb25zdCBsPVtdO2ZvcihsZXQgYT0wO2E8PTc7YSs9MSlsLnB1c2goYCR7dGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZX0tJHthfWApO3JldHVybiBsLnB1c2goYCR7dGhpcy5m'@; put 'dWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZX0tbXVsdGlwbGVgKSxsfX0odGhpcyksdGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckluaXQoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5VHJhbnNmb3JtU3RhcnQiLGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIGwub25Nb2RpZnlUcmFuc2Zvcm1TdGFydCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCguLi5hcmd1bWVudHMpfSksdGhp'@; put 'cy5hZGRIb29rKCJtb2RpZnlUcmFuc2Zvcm1FbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25Nb2RpZnlUcmFuc2Zvcm1FbmQoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5R2V0Q2VsbENvb3JkcyIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbk1vZGlmeUdldENlbGxDb29yZHMo'@; put 'Li4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VTdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkJlZm9yZVNldFJhbmdlU3RhcnQoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VTdGFydE9ubHkiLGZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IGwub25CZWZvcmVTZXRSYW5nZVN0YXJ0KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVNldFJhbmdlRW5kIixmdW5jdGlvbigpe3JldHVybiBsLm9uQmVmb3JlU2V0UmFuZ2VFbmQoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJJc011bHRpcGxlU2VsZWN0'@; put 'aW9uIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVuZGVyZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlclJlbmRlcmVyKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFm'@; put 'dGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oKXtyZXR1cm4gbC5hZGRNZXJnZUFjdGlvbnNUb0NvbnRleHRNZW51KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckdldENlbGxNZXRh'@; put 'KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyVmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyVmlld3Bv'@; put 'cnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUF1dG9maWxsUmFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25Nb2Rp'@; put 'ZnlBdXRvZmlsbFJhbmdlKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJDcmVhdGVDb2woLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVDb2wiLGZ1bmN0aW9uKCl7cmV0dXJuIGwu'@; put 'b25BZnRlclJlbW92ZUNvbCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkFmdGVyQ3JlYXRlUm93KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiBs'@; put 'Lm9uQWZ0ZXJSZW1vdmVSb3coLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckNoYW5nZSguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVEcmF3Qm9yZGVycyIsZnVuY3Rpb24oKXtyZXR1cm4gbC5v'@; put 'bkJlZm9yZURyYXdBcmVhQm9yZGVycyguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckRyYXdTZWxlY3Rpb24iLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckRyYXdTZWxlY3Rpb24oLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ2VsbENsYXNz'@; put 'TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLChhLGQpPT57aWYoIk1lcmdlQ2VsbHMiPT09ZClyZXR1cm4hMX0pLHRoaXMucmVnaXN0ZXJTaG9y'@; put 'dGN1dHMoKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9ZGlzYWJsZVBsdWdpbigpe3RoaXMuY2xlYXJDb2xsZWN0aW9ucygpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuaG90LnJlbmRlcigpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXtjb25zdCBsPXRoaXMu'@; put 'aG90LmdldFNldHRpbmdzKClbS3ldO3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5nZW5lcmF0ZUZyb21TZXR0aW5ncyhsKSxzdXBlci51cGRhdGVQbHVnaW4oKX1pZkNocm9tZUZvcmNlUmVwYWludCgpe2lmKCFfTigpKXJldHVybjtjb25zdCBsPVtdO2xl'@; put 'dCBhPVtdO3RoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLm1lcmdlZENlbGxzLmZvckVhY2goZD0+e2NvbnN0e3JvdzpoLHJvd3NwYW46Zn09ZDtmb3IobGV0IF89aCsxO188aCtmO18rKylhLnB1c2goXyl9KSxhPVsuLi5uZXcgU2V0KGEpXSxhLmZvckVhY2goZD0+e2NvbnN0IGg9dGhpcy5o'@; put 'b3Qucm93SW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkKTt0aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLmdldE92ZXJsYXlzKCEwKS5tYXAoZj0+Im1hc3RlciI9PT1mPy5uYW1lP2Y6Zi5jbG9uZS53dFRhYmxlKS5mb3JFYWNoKGY9Pntjb25zdCBfPWYuZ2V0'@; put 'Um93KGgpO18mJihfLnN0eWxlLmJhY2tncm91bmQ9bjcoXywiYmFja2dyb3VuZENvbG9yIikucmVwbGFjZSgiKSIsIiwgMC45OSkiKSxsLnB1c2goXykpfSl9KSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgpPT57bC5mb3JFYWNoKGQ9PntkLnN0eWxlLmJhY2tncm91bmQ9bjcoZCwiYmFj'@; put 'a2dyb3VuZENvbG9yIikucmVwbGFjZSgiLCAwLjk5KSIsIikiKX0pfSwxKX12YWxpZGF0ZVNldHRpbmcobCl7bGV0IGE9ITA7cmV0dXJuISFsJiYoeGguY29udGFpbnNOZWdhdGl2ZVZhbHVlcyhsKT8oR2EoeGguTkVHQVRJVkVfVkFMVUVTX1dBUk5JTkcobCkpLGE9ITEpOnhoLmlzT3V0T2ZC'@; put 'b3VuZHMobCx0aGlzLmhvdC5jb3VudFJvd3MoKSx0aGlzLmhvdC5jb3VudENvbHMoKSk/KEdhKHhoLklTX09VVF9PRl9CT1VORFNfV0FSTklORyhsKSksYT0hMSk6eGguaXNTaW5nbGVDZWxsKGwpPyhHYSh4aC5JU19TSU5HTEVfQ0VMTChsKSksYT0hMSk6eGguY29udGFpbnNaZXJvU3Bhbihs'@; put 'KSYmKEdhKHhoLlpFUk9fU1BBTl9XQVJOSU5HKGwpKSxhPSExKSxhKX1nZW5lcmF0ZUZyb21TZXR0aW5ncyhsKXtpZihBcnJheS5pc0FycmF5KGwpKXtjb25zdCBhPVtdO2lmKERuKGwsZD0+e2lmKCF0aGlzLnZhbGlkYXRlU2V0dGluZyhkKSlyZXR1cm47Y29uc3QgaD10aGlzLmhvdC5fY3Jl'@; put 'YXRlQ2VsbENvb3JkcyhkLnJvdyxkLmNvbCksZj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhkLnJvdytkLnJvd3NwYW4tMSxkLmNvbCtkLmNvbHNwYW4tMSksXz10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKGgsaCxmKTt0aGlzLm1lcmdlUmFuZ2UoXywhMCwhMCksdm8oZC5yb3csZC5y'@; put 'b3crZC5yb3dzcGFuLTEsVD0+e3ZvKGQuY29sLGQuY29sK2QuY29sc3Bhbi0xLFc9PntUPT09ZC5yb3cmJlc9PT1kLmNvbHx8YS5wdXNoKFtULFcsbnVsbF0pfSl9KX0pLDA9PT1hLmxlbmd0aClyZXR1cm47dGhpcy5ob3Quc2V0RGF0YUF0Q2VsbChhKX19Y2xlYXJDb2xsZWN0aW9ucygpe3Ro'@; put 'aXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmNsZWFyKCl9Y2FuTWVyZ2VSYW5nZShsKXtyZXR1cm4hIShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdKXx8dGhpcy52YWxpZGF0ZVNldHRpbmcobCl9dG9nZ2xlTWVyZ2VPblNlbGVjdGlvbigp'@; put 'e2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbClyZXR1cm47bC5zZXREaXJlY3Rpb24odGhpcy5ob3QuaXNSdGwoKT8iTkUtU1ciOiJOVy1TRSIpO2NvbnN0e2Zyb206YSx0bzpkfT1sO3RoaXMudG9nZ2xlTWVyZ2UobCksdGhpcy5ob3Quc2VsZWN0Q2VsbChh'@; put 'LnJvdyxhLmNvbCxkLnJvdyxkLmNvbCwhMSl9bWVyZ2VTZWxlY3Rpb24oKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbClyZXR1cm47bC5zZXREaXJlY3Rpb24o'@; put 'dGhpcy5ob3QuaXNSdGwoKT8iTkUtU1ciOiJOVy1TRSIpO2NvbnN0e2Zyb206YSx0bzpkfT1sO3RoaXMudW5tZXJnZVJhbmdlKGwsITApLHRoaXMubWVyZ2VSYW5nZShsKSx0aGlzLmhvdC5zZWxlY3RDZWxsKGEucm93LGEuY29sLGQucm93LGQuY29sLCExKX11bm1lcmdlU2VsZWN0aW9uKCl7'@; put 'bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIWwpcmV0dXJuO2NvbnN0e2Zyb206YSx0bzpkfT1sO3RoaXMudW5tZXJnZVJhbmdlKGwsITApLHRoaXMuaG90LnNlbGVj'@; put 'dENlbGwoYS5yb3csYS5jb2wsZC5yb3csZC5jb2wsITEpfW1lcmdlUmFuZ2UobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNb'@; put 'Ml07Y29uc3QgaD1sLmdldFRvcFN0YXJ0Q29ybmVyKCksZj1sLmdldEJvdHRvbUVuZENvcm5lcigpLF89e3JvdzpoLnJvdyxjb2w6aC5jb2wscm93c3BhbjpmLnJvdy1oLnJvdysxLGNvbHNwYW46Zi5jb2wtaC5jb2wrMX0sVD1bXTtsZXQgVz1udWxsO3JldHVybiEhdGhpcy5jYW5NZXJnZVJh'@; put 'bmdlKF8sYSkmJih0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlTWVyZ2VDZWxscyIsbCxhKSx2bygwLF8ucm93c3Bhbi0xLHBlPT57dm8oMCxfLmNvbHNwYW4tMSx3ZT0+e2xldCBFZT1udWxsO1RbcGVdfHwoVFtwZV09W10pLDA9PT1wZSYmMD09PXdlP0VlPXRoaXMuaG90LmdldFNvdXJjZURh'@; put 'dGFBdENlbGwodGhpcy5ob3QudG9QaHlzaWNhbFJvdyhfLnJvdyksdGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihfLmNvbCkpOnRoaXMuaG90LnNldENlbGxNZXRhKF8ucm93K3BlLF8uY29sK3dlLCJoaWRkZW4iLCEwKSxUW3BlXVt3ZV09RWV9KX0pLHRoaXMuaG90LnNldENlbGxNZXRhKF8u'@; put 'cm93LF8uY29sLCJzcGFubmVkIiwhMCksIXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZChfKXx8KGQ/Vz1bXy5yb3csXy5jb2wsVF06dGhpcy5ob3QucG9wdWxhdGVGcm9tQXJyYXkoXy5yb3csXy5jb2wsVCx2b2lkIDAsdm9pZCAwLHRoaXMucGx1Z2luTmFtZSksYXx8dGhpcy5pZkNo'@; put 'cm9tZUZvcmNlUmVwYWludCgpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck1lcmdlQ2VsbHMiLGwsXyxhKSxXKSl9dW5tZXJnZVJhbmdlKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07Y29uc3QgZD10aGlzLm1lcmdlZENl'@; put 'bGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZShsKTtkJiYodGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVVubWVyZ2VDZWxscyIsbCxhKSxEbihkLGg9Pnt0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5yZW1vdmUoaC5yb3csaC5jb2wpLHZvKDAsaC5yb3dzcGFuLTEsZj0+e3ZvKDAsaC5j'@; put 'b2xzcGFuLTEsXz0+e3RoaXMuaG90LnJlbW92ZUNlbGxNZXRhKGgucm93K2YsaC5jb2wrXywiaGlkZGVuIiksdGhpcy5ob3QucmVtb3ZlQ2VsbE1ldGEoaC5yb3crZixoLmNvbCtfLCJjb3B5YWJsZSIpfSl9KSx0aGlzLmhvdC5yZW1vdmVDZWxsTWV0YShoLnJvdyxoLmNvbCwic3Bhbm5lZCIp'@; put 'fSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5tZXJnZUNlbGxzIixsLGEpLHRoaXMuaG90LnJlbmRlcigpKX10b2dnbGVNZXJnZShsKXtjb25zdCBhPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChsLmZyb20ucm93LGwuZnJvbS5jb2wpO2Eucm93PT09bC5mcm9tLnJvdyYmYS5j'@; put 'b2w9PT1sLmZyb20uY29sJiZhLnJvdythLnJvd3NwYW4tMT09PWwudG8ucm93JiZhLmNvbCthLmNvbHNwYW4tMT09PWwudG8uY29sP3RoaXMudW5tZXJnZVJhbmdlKGwpOnRoaXMubWVyZ2VTZWxlY3Rpb24obCl9bWVyZ2UobCxhLGQsaCl7Y29uc3QgZj10aGlzLmhvdC5fY3JlYXRlQ2VsbENv'@; put 'b3JkcyhsLGEpLF89dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoZCxoKTt0aGlzLm1lcmdlUmFuZ2UodGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShmLGYsXykpfXVubWVyZ2UobCxhLGQsaCl7Y29uc3QgZj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLGEpLF89dGhpcy5ob3QuX2Ny'@; put 'ZWF0ZUNlbGxDb29yZHMoZCxoKTt0aGlzLnVubWVyZ2VSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKGYsZixfKSl9b25BZnRlckluaXQoKXt0aGlzLmdlbmVyYXRlRnJvbVNldHRpbmdzKHRoaXMuaG90LmdldFNldHRpbmdzKClbS3ldKSx0aGlzLmhvdC5yZW5kZXIoKX1yZWdpc3Rl'@; put 'clNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dCh7a2V5czpbWyJDb250cm9sIiwibSJdXSxjYWxsYmFjazooKT0+e3RoaXMudG9nZ2xlTWVyZ2UodGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSksdGhp'@; put 'cy5ob3QucmVuZGVyKCl9LHJ1bk9ubHlJZjpkPT4hZC5hbHRLZXksZ3JvdXA6bG9lfSl9dW5yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKGxvZSl9b25BZnRlcklzTXVsdGlw'@; put 'bGVTZWxlY3Rpb24obCl7aWYobCl7Y29uc3QgYT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5tZXJnZWRDZWxscyxkPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7Zm9yKGxldCBoPTA7aDxhLmxlbmd0aDtoKz0xKWlmKGQuZnJvbS5yb3c9PT1hW2hdLnJvdyYmZC5mcm9tLmNv'@; put 'bD09PWFbaF0uY29sJiZkLnRvLnJvdz09PWFbaF0ucm93K2FbaF0ucm93c3Bhbi0xJiZkLnRvLmNvbD09PWFbaF0uY29sK2FbaF0uY29sc3Bhbi0xKXJldHVybiExfXJldHVybiBsfW9uTW9kaWZ5VHJhbnNmb3JtU3RhcnQobCl7Y29uc3QgYT1hb2UuZ2V0KHRoaXMpLGQ9dGhpcy5ob3QuZ2V0'@; put 'U2VsZWN0ZWRSYW5nZUxhc3QoKTtsZXQgaD17cm93Omwucm93LGNvbDpsLmNvbH0sZj1udWxsO2NvbnN0IF89dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoZC5oaWdobGlnaHQucm93LGQuaGlnaGxpZ2h0LmNvbCksVD10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQoXy5yb3csXy5j'@; put 'b2wpO2lmKGEubGFzdERlc2lyZWRDb29yZHN8fChhLmxhc3REZXNpcmVkQ29vcmRzPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKG51bGwsbnVsbCkpLFQpe2NvbnN0IGllPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKFQucm93LFQuY29sKSxwZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENv'@; put 'b3JkcyhULnJvdytULnJvd3NwYW4tMSxULmNvbCtULmNvbHNwYW4tMSk7dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShpZSxpZSxwZSkuaW5jbHVkZXMoYS5sYXN0RGVzaXJlZENvb3Jkcyl8fChhLmxhc3REZXNpcmVkQ29vcmRzPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKG51bGwsbnVs'@; put 'bCkpLGgucm93PWEubGFzdERlc2lyZWRDb29yZHMucm93P2EubGFzdERlc2lyZWRDb29yZHMucm93LV8ucm93Omgucm93LGguY29sPWEubGFzdERlc2lyZWRDb29yZHMuY29sP2EubGFzdERlc2lyZWRDb29yZHMuY29sLV8uY29sOmguY29sLGwucm93PjA/aC5yb3c9VC5yb3crVC5yb3dzcGFu'@; put 'LTEtXy5yb3crbC5yb3c6bC5yb3c8MCYmKGgucm93PV8ucm93LVQucm93K2wucm93KSxsLmNvbD4wP2guY29sPVQuY29sK1QuY29sc3Bhbi0xLV8uY29sK2wuY29sOmwuY29sPDAmJihoLmNvbD1fLmNvbC1ULmNvbCtsLmNvbCl9Zj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhkLmhpZ2hs'@; put 'aWdodC5yb3craC5yb3csZC5oaWdobGlnaHQuY29sK2guY29sKTtjb25zdCBXPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChmLnJvdyxmLmNvbCk7aWYoVyl7Y29uc3QgaWU9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0Rmlyc3RSZW5kZXJhYmxlQ29vcmRzKFcucm93LFcu'@; put 'Y29sKTthLmxhc3REZXNpcmVkQ29vcmRzPWYsaD17cm93OmllLnJvdy1fLnJvdyxjb2w6aWUuY29sLV8uY29sfX0wIT09aC5yb3cmJihsLnJvdz1oLnJvdyksMCE9PWguY29sJiYobC5jb2w9aC5jb2wpfW9uTW9kaWZ5VHJhbnNmb3JtRW5kKGwpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2VsZWN0'@; put 'ZWRSYW5nZUxhc3QoKSxkPVd1KGwpLGg9dGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuZ2V0VXBkYXRlZFNlbGVjdGlvblJhbmdlKGEsbCk7bGV0IGY9V3UoZCk7Y29uc3QgXz10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZShoLCEwKTtkb3tmPVd1KGQpLHRoaXMu'@; put 'c2VsZWN0aW9uQ2FsY3VsYXRpb25zLmdldFVwZGF0ZWRTZWxlY3Rpb25SYW5nZShhLGQpLERuKF8sVD0+e3RoaXMuc2VsZWN0aW9uQ2FsY3VsYXRpb25zLnNuYXBEZWx0YShkLGEsVCl9KX13aGlsZShkLnJvdyE9PWYucm93fHxkLmNvbCE9PWYuY29sKTtsLnJvdz1kLnJvdyxsLmNvbD1kLmNv'@; put 'bH1vbk1vZGlmeUdldENlbGxDb29yZHMobCxhKXtpZihsPDB8fGE8MClyZXR1cm47Y29uc3QgZD10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQobCxhKTtpZighZClyZXR1cm47Y29uc3R7cm93OmgsY29sOmYsY29sc3BhbjpfLHJvd3NwYW46VH09ZDtyZXR1cm5baCxmLGgrVC0xLGYr'@; put 'Xy0xXX1hZGRNZXJnZUFjdGlvbnNUb0NvbnRleHRNZW51KGwpe2wuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gdUhlKGMpe3JldHVybntrZXk6Im1lcmdlQ2VsbHMiLG5hbWUoKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRMYXN0KCk7aWYobCl7Y29uc3QgYT1jLm1l'@; put 'cmdlZENlbGxzQ29sbGVjdGlvbi5nZXQobFswXSxsWzFdKTtpZihhLnJvdz09PWxbMF0mJmEuY29sPT09bFsxXSYmYS5yb3crYS5yb3dzcGFuLTE9PT1sWzJdJiZhLmNvbCthLmNvbHNwYW4tMT09PWxbM10pcmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShIVil9cmV0dXJuIHRoaXMu'@; put 'Z2V0VHJhbnNsYXRlZFBocmFzZShGVil9LGNhbGxiYWNrKCl7Yy50b2dnbGVNZXJnZU9uU2VsZWN0aW9uKCl9LGRpc2FibGVkKCl7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkTGFzdCgpO3JldHVybiFsfHx4aC5pc1NpbmdsZUNlbGwoe3JvdzpsWzBdLGNvbDpsWzFdLHJvd3NwYW46bFsyXS1s'@; put 'WzBdKzEsY29sc3BhbjpsWzNdLWxbMV0rMX0pfHx0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKX0saGlkZGVuOiExfX0odGhpcykpfW9uQWZ0ZXJSZW5kZXJlcihsLGEsZCl7Y29uc3QgaD10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQoYSxkKSxmPXVzKGgpP1d1KGgp'@; put 'OnZvaWQgMDtpZih1cyhmKSl7Y29uc3R7cm93SW5kZXhNYXBwZXI6Xyxjb2x1bW5JbmRleE1hcHBlcjpUfT10aGlzLmhvdCx7cm93OlcsY29sOmllLGNvbHNwYW46cGUscm93c3Bhbjp3ZX09ZixbRWUsWmVdPXRoaXMudHJhbnNsYXRlTWVyZ2VkQ2VsbFRvUmVuZGVyYWJsZShXLHdlLGllLHBl'@; put 'KSx5dD1FZS1fLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoYSkrMSxFdD1aZS1ULmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZCkrMTtmLnJvdz1fLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmLnJvdywxKSxmLmNvbD1ULmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmLmNv'@; put 'bCwxKSxmLnJvd3NwYW49TWF0aC5taW4oZi5yb3dzcGFuLHl0KSxmLmNvbHNwYW49TWF0aC5taW4oZi5jb2xzcGFuLEV0KX1DeihsLGYsYSxkKX1vbkJlZm9yZVNldFJhbmdlU3RhcnQobCl7aWYodGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uaXNGaXJzdFJlbmRlcmFibGVNZXJnZWRDZWxs'@; put 'KGwucm93LGwuY29sKSl7Y29uc3QgYT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQobC5yb3csbC5jb2wpO1tsLnJvdyxsLmNvbF09W2Eucm93LGEuY29sXX19b25CZWZvcmVTZXRSYW5nZUVuZChsKXtjb25zdCBhPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7YS5oaWdo'@; put 'bGlnaHQ9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoYS5oaWdobGlnaHQucm93LGEuaGlnaGxpZ2h0LmNvbCksYS50bz1sO2xldCBkPSExO2lmKCF0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJiF0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5'@; put 'Um93SGVhZGVyKCkpZG97ZD0hMTtmb3IobGV0IGg9MDtoPHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLm1lcmdlZENlbGxzLmxlbmd0aDtoKz0xKXtjb25zdCBfPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLm1lcmdlZENlbGxzW2hdLmdldFJhbmdlKCk7YS5leHBhbmRCeVJhbmdlKF8p'@; put 'JiYobC5yb3c9YS50by5yb3csbC5jb2w9YS50by5jb2wsZD0hMCl9fXdoaWxlKGQpfW9uQWZ0ZXJHZXRDZWxsTWV0YShsLGEsZCl7Y29uc3QgaD10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQobCxhKTtoJiYoaC5yb3chPT1sfHxoLmNvbCE9PWE/ZC5jb3B5YWJsZT0hMTooZC5yb3dz'@; put 'cGFuPWgucm93c3BhbixkLmNvbHNwYW49aC5jb2xzcGFuKSl9b25BZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlKGwpe2NvbnN0IGE9dGhpcy5ob3QuY291bnRDb2xzKCk7dGhpcy5tb2RpZnlWaWV3cG9ydFJvd1N0YXJ0KGwsYSksdGhpcy5tb2RpZnlWaWV3cG9ydFJvd0VuZChs'@; put 'LGEpfW1vZGlmeVZpZXdwb3J0Um93U3RhcnQobCxhKXtjb25zdCBkPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLGg9ZC5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGwuc3RhcnRSb3cpO2ZvcihsZXQgZj0wO2Y8YTtmKz0xKXtjb25zdCBfPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9u'@; put 'LmdldChoLGYpO2lmKHVzKF8pKXtjb25zdCBUPWQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfLnJvdywxKSk7aWYoVDxsLnN0YXJ0Um93KXJldHVybiBsLnN0YXJ0Um93PVQsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Um93U3RhcnQo'@; put 'bCxhKX19fW1vZGlmeVZpZXdwb3J0Um93RW5kKGwsYSl7Y29uc3QgZD10aGlzLmhvdC5yb3dJbmRleE1hcHBlcixoPWQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChsLmVuZFJvdyk7Zm9yKGxldCBmPTA7ZjxhO2YrPTEpe2NvbnN0IF89dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24u'@; put 'Z2V0KGgsZik7aWYodXMoXykpe2NvbnN0IFc9ZC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KF8ucm93K18ucm93c3Bhbi0xLC0xKSk7aWYoVz5sLmVuZFJvdylyZXR1cm4gbC5lbmRSb3c9Vyx2b2lkIHRoaXMubW9kaWZ5Vmlld3BvcnRS'@; put 'b3dFbmQobCxhKX19fW9uQWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZShsKXtjb25zdCBhPXRoaXMuaG90LmNvdW50Um93cygpO3RoaXMubW9kaWZ5Vmlld3BvcnRDb2x1bW5TdGFydChsLGEpLHRoaXMubW9kaWZ5Vmlld3BvcnRDb2x1bW5FbmQobCxhKX1tb2RpZnlWaWV3'@; put 'cG9ydENvbHVtblN0YXJ0KGwsYSl7Y29uc3QgZD10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlcixoPWQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChsLnN0YXJ0Q29sdW1uKTtmb3IobGV0IGY9MDtmPGE7Zis9MSl7Y29uc3QgXz10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQo'@; put 'ZixoKTtpZih1cyhfKSl7Y29uc3QgVD1kLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoXy5jb2wsMSkpO2lmKFQ8bC5zdGFydENvbHVtbilyZXR1cm4gbC5zdGFydENvbHVtbj1ULHZvaWQgdGhpcy5tb2RpZnlWaWV3cG9ydENvbHVtblN0'@; put 'YXJ0KGwsYSl9fX1tb2RpZnlWaWV3cG9ydENvbHVtbkVuZChsLGEpe2NvbnN0IGQ9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIsaD1kLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgobC5lbmRDb2x1bW4pO2ZvcihsZXQgZj0wO2Y8YTtmKz0xKXtjb25zdCBfPXRoaXMubWVyZ2VkQ2Vs'@; put 'bHNDb2xsZWN0aW9uLmdldChmLGgpO2lmKHVzKF8pKXtjb25zdCBXPWQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfLmNvbCtfLmNvbHNwYW4tMSwtMSkpO2lmKFc+bC5lbmRDb2x1bW4pcmV0dXJuIGwuZW5kQ29sdW1uPVcsdm9pZCB0'@; put 'aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uRW5kKGwsYSl9fX10cmFuc2xhdGVNZXJnZWRDZWxsVG9SZW5kZXJhYmxlKGwsYSxkLGgpe2NvbnN0e3Jvd0luZGV4TWFwcGVyOmYsY29sdW1uSW5kZXhNYXBwZXI6X309dGhpcy5ob3Q7bGV0IFQsVztyZXR1cm4gVD0wPT09YT9mLmdldE5lYXJlc3RO'@; put 'b3RIaWRkZW5JbmRleChsLDEpOmYuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGwrYS0xLC0xKSxXPTA9PT1oP18uZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGQsMSk6Xy5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZCtoLTEsLTEpLFtsPj0wP2YuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJ'@; put 'bmRleChUKTpsLGQ+PTA/Xy5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KFcpOmRdfW9uTW9kaWZ5QXV0b2ZpbGxSYW5nZShsLGEpe3RoaXMuYXV0b2ZpbGxDYWxjdWxhdGlvbnMuY29ycmVjdFNlbGVjdGlvbkFyZWFTaXplKGEpO2NvbnN0IGQ9dGhpcy5hdXRvZmlsbENhbGN1bGF0aW9u'@; put 'cy5nZXREaXJlY3Rpb24oYSxsKTtsZXQgaD1sO2lmKHRoaXMuYXV0b2ZpbGxDYWxjdWxhdGlvbnMuZHJhZ0FyZWFPdmVybGFwc0NvbGxlY3Rpb25zKGEsaCxkKSlyZXR1cm4gaD1hLGg7Y29uc3QgZj10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZSh7ZnJvbTp7cm93'@; put 'OmFbMF0sY29sOmFbMV19LHRvOntyb3c6YVsyXSxjb2w6YVszXX19KTtyZXR1cm4gZiYmKGg9dGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucy5zbmFwRHJhZ0FyZWEoYSxoLGQsZikpLGh9b25BZnRlckNyZWF0ZUNvbChsLGEpe3RoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLnNoaWZ0Q29sbGVj'@; put 'dGlvbnMoInJpZ2h0IixsLGEpfW9uQWZ0ZXJSZW1vdmVDb2wobCxhKXt0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJsZWZ0IixsLGEpfW9uQWZ0ZXJDcmVhdGVSb3cobCxhLGQpeyJhdXRvIiE9PWQmJnRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLnNoaWZ0'@; put 'Q29sbGVjdGlvbnMoImRvd24iLGwsYSl9b25BZnRlclJlbW92ZVJvdyhsLGEpe3RoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLnNoaWZ0Q29sbGVjdGlvbnMoInVwIixsLGEpfW9uQWZ0ZXJDaGFuZ2UobCxhKXsiQXV0b2ZpbGwuZmlsbCI9PT1hJiZ0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25z'@; put 'LnJlY3JlYXRlQWZ0ZXJEYXRhUG9wdWxhdGlvbihsKX1vbkJlZm9yZURyYXdBcmVhQm9yZGVycyhsLGEpe2lmKGEmJiJhcmVhIj09PWEpe2NvbnN0IGQ9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtEbih0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZShk'@; put 'KSxmPT57ZC5nZXRCb3R0b21FbmRDb3JuZXIoKS5yb3c9PT1mLmdldExhc3RSb3coKSYmZC5nZXRCb3R0b21FbmRDb3JuZXIoKS5jb2w9PT1mLmdldExhc3RDb2x1bW4oKSYmKGxbMl09Zi5yb3csbFszXT1mLmNvbCl9KX19b25BZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0KGwsYSxkKXtpZigh'@; put 'dGhpcy5lbmFibGVkKXJldHVybjtjb25zdCBoPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChsLnJvdyxsLmNvbCk7aWYoIWgpcmV0dXJuO2NvbnN0IGY9YT4wLF89YTwwLFQ9ZDwwLFc9ZD4wLGllPWgucm93K2gucm93c3Bhbi0xPT10aGlzLmhvdC5jb3VudFJvd3MoKS0xLHBlPTA9'@; put 'PT1oLnJvdyx3ZT1oLmNvbCtoLmNvbHNwYW4tMT09dGhpcy5ob3QuY291bnRDb2xzKCktMTsoZiYmaWV8fF8mJnBlfHxXJiZ3ZXx8VCYmMD09PWguY29sKSYmKGwucm93PWgucm93LGwuY29sPWguY29sKX1vbkFmdGVyRHJhd1NlbGVjdGlvbihsLGEsZCxoKXtpZihkKXJldHVybiB0aGlzLnNl'@; put 'bGVjdGlvbkNhbGN1bGF0aW9ucy5nZXRTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWUobCxhLGQsaCl9b25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcygpe3JldHVybiB0aGlzLnNlbGVjdGlvbkNhbGN1bGF0aW9ucy5nZXRTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWVUb1JlbW92ZSgp'@; put 'fX1mdW5jdGlvbiBjb2UoKXtHYShBYWBQbHVnaW5zIFxgY29sdW1uU29ydGluZ1xgIGFuZCBcYG11bHRpQ29sdW1uU29ydGluZ1xgIHNob3VsZCBub3QgYmUgZW5hYmxlZCBzaW11bHRhbmVvdXNseS4gCiAgICBPbmx5IFxgbXVsdGlDb2x1bW5Tb3J0aW5nXGAgd2lsbCB3b3JrLmApfWNvbnN0'@; put 'IE16PSJtdWx0aUNvbHVtblNvcnRpbmciLGRvZT0iY29sdW1uU29ydGluZyI7SXJlKE16LGZ1bmN0aW9uIGZIZShjLGwpe3JldHVybiBmdW5jdGlvbihhLGQpe2NvbnN0WywuLi5oXT1hLFssLi4uZl09ZDtyZXR1cm4gZnVuY3Rpb24gXyhUKXtjb25zdCBXPWNbVF0saWU9bFtUXSxwZT1oW1Rd'@; put 'LHdlPWZbVF0sRWU9aWUubXVsdGlDb2x1bW5Tb3J0aW5nLGl0PShFZS5jb21wYXJlRnVuY3Rpb25GYWN0b3J5P0VlLmNvbXBhcmVGdW5jdGlvbkZhY3Rvcnk6THJlKGllLnR5cGUpKShXLGllLEVlKShwZSx3ZSk7aWYoMD09PWl0KXtjb25zdCBldD1UKzE7aWYodHlwZW9mIGxbZXRdPCJ1Iily'@; put 'ZXR1cm4gXyhldCl9cmV0dXJuIGl0fSgwKX19KTtjbGFzcyBfSGUgZXh0ZW5kcyBPcmV7c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIE16fXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDE3MH1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSx0aGlzLnBsdWdpbktleT1N'@; put 'en1pc0VuYWJsZWQoKXtyZXR1cm4gc3VwZXIuaXNFbmFibGVkKCl9ZW5hYmxlUGx1Z2luKCl7IXRoaXMuZW5hYmxlZCYmdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV0mJnRoaXMuaG90LmdldFNldHRpbmdzKClbZG9lXSYmY29lKCksc3VwZXIuZW5hYmxlUGx1Z2luKCl9'@; put 'ZGlzYWJsZVBsdWdpbigpe3N1cGVyLmRpc2FibGVQbHVnaW4oKX1zb3J0KGwpe3N1cGVyLnNvcnQobCl9Y2xlYXJTb3J0KCl7c3VwZXIuY2xlYXJTb3J0KCl9aXNTb3J0ZWQoKXtyZXR1cm4gc3VwZXIuaXNTb3J0ZWQoKX1nZXRTb3J0Q29uZmlnKGwpe3JldHVybiBzdXBlci5nZXRTb3J0Q29u'@; put 'ZmlnKGwpfXNldFNvcnRDb25maWcobCl7c3VwZXIuc2V0U29ydENvbmZpZyhsKX1nZXROb3JtYWxpemVkU29ydENvbmZpZ3MoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W107cmV0dXJuIEFycmF5LmlzQXJyYXkobCk/bDpb'@; put 'bF19dXBkYXRlSGVhZGVyQ2xhc3NlcyhsKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhPjE/YS0xOjApLGg9MTtoPGE7aCsrKWRbaC0xXT1hcmd1bWVudHNbaF07c3VwZXIudXBkYXRlSGVhZGVyQ2xhc3NlcyhsLC4uLmQpLFdvKGwsZnVuY3Rpb24gZ0hlKGMpe2Nv'@; put 'bnN0IGw9Yy5jbGFzc05hbWUuc3BsaXQoIiAiKSxhPW5ldyBSZWdFeHAoIl5zb3J0LVswLTldezEsMn0kIik7cmV0dXJuIGwuZmlsdGVyKGQ9PmEudGVzdChkKSl9KGwpKSwhMSE9PXRoaXMuZW5hYmxlZCYmcGkobCxmdW5jdGlvbiBwSGUoYyxsLGEpe2NvbnN0IGQ9W107cmV0dXJuITE9PT1h'@; put 'fHxjLmlzQ29sdW1uU29ydGVkKGwpJiZjLmdldE51bWJlck9mU29ydGVkQ29sdW1ucygpPjEmJmQucHVzaChgc29ydC0ke2MuZ2V0SW5kZXhPZkNvbHVtbkluU29ydFF1ZXVlKGwpKzF9YCksZH0oLi4uZCkpfW9uVXBkYXRlU2V0dGluZ3MobCl7dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlz'@; put 'LnBsdWdpbktleV0mJnRoaXMuaG90LmdldFNldHRpbmdzKClbZG9lXSYmY29lKCksc3VwZXIub25VcGRhdGVTZXR0aW5ncyhsKX1vbkFmdGVyT25DZWxsTW91c2VEb3duKGwsYSl7ITEhPT1naihhLnJvdyxhLmNvbCxsKSYmdGhpcy53YXNDbGlja2FibGVIZWFkZXJDbGlja2VkKGwsYS5jb2wp'@; put 'JiYodGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuaXNDdHJsUHJlc3NlZCgpPyh0aGlzLmhvdC5kZXNlbGVjdENlbGwoKSx0aGlzLmhvdC5zZWxlY3RDb2x1bW5zKGEuY29sKSx0aGlzLnNvcnQodGhpcy5nZXROZXh0U29ydENvbmZpZyhhLmNvbCwiYXBwZW5kIikpKTp0aGlzLnNvcnQo'@; put 'dGhpcy5nZXRDb2x1bW5OZXh0Q29uZmlnKGEuY29sKSkpfX1jbGFzcyB3SGUgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4ibXVsdGlwbGVTZWxlY3Rpb25IYW5kbGVzIn1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAxNjB9Y29uc3RydWN0b3Io'@; put 'bCl7c3VwZXIobCksdGhpcy5kcmFnZ2VkPVtdLHRoaXMuZXZlbnRNYW5hZ2VyPW51bGwsdGhpcy5sYXN0U2V0Q2VsbD1udWxsfWlzRW5hYmxlZCgpe3JldHVybiBtMigpfWVuYWJsZVBsdWdpbigpe3RoaXMuZW5hYmxlZHx8KHRoaXMuZXZlbnRNYW5hZ2VyfHwodGhpcy5ldmVudE1hbmFnZXI9'@; put 'bmV3IGxsKHRoaXMpKSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfXJlZ2lzdGVyTGlzdGVuZXJzKCl7Y29uc3QgbD10aGlzLHtyb290RWxlbWVudDphfT10aGlzLmhvdDtmdW5jdGlvbiBkKGgpe2lmKDE9PT1sLmRyYWdnZWQubGVuZ3RoKXJldHVybiBs'@; put 'LmRyYWdnZWQuc3BsaWNlKDAsbC5kcmFnZ2VkLmxlbmd0aCksITA7Y29uc3QgZj1sLmRyYWdnZWQuaW5kZXhPZihoKTtpZigtMT09PWYpcmV0dXJuITE7MD09PWY/bC5kcmFnZ2VkPWwuZHJhZ2dlZC5zbGljZSgwLDEpOjE9PT1mJiYobC5kcmFnZ2VkPWwuZHJhZ2dlZC5zbGljZSgtMSkpfXRo'@; put 'aXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYSwidG91Y2hzdGFydCIsaD0+e2xldCBmO3JldHVybiBCbyhoLnRhcmdldCwidG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEiKT8oZj1sLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGwuZHJhZ2dlZC5wdXNoKCJ0b3AiKSxsLnRv'@; put 'dWNoU3RhcnRSYW5nZT17d2lkdGg6Zi5nZXRXaWR0aCgpLGhlaWdodDpmLmdldEhlaWdodCgpLGRpcmVjdGlvbjpmLmdldERpcmVjdGlvbigpfSxoLnByZXZlbnREZWZhdWx0KCksITEpOkJvKGgudGFyZ2V0LCJib3R0b21TZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhmPWwuaG90LmdldFNl'@; put 'bGVjdGVkUmFuZ2VMYXN0KCksbC5kcmFnZ2VkLnB1c2goImJvdHRvbSIpLGwudG91Y2hTdGFydFJhbmdlPXt3aWR0aDpmLmdldFdpZHRoKCksaGVpZ2h0OmYuZ2V0SGVpZ2h0KCksZGlyZWN0aW9uOmYuZ2V0RGlyZWN0aW9uKCl9LGgucHJldmVudERlZmF1bHQoKSwhMSk6dm9pZCAwfSksdGhp'@; put 'cy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJ0b3VjaGVuZCIsaD0+Qm8oaC50YXJnZXQsInRvcFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIik/KGQuY2FsbChsLCJ0b3AiKSxsLnRvdWNoU3RhcnRSYW5nZT12b2lkIDAsaC5wcmV2ZW50RGVmYXVsdCgpLCExKTpCbyhoLnRhcmdl'@; put 'dCwiYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEiKT8oZC5jYWxsKGwsImJvdHRvbSIpLGwudG91Y2hTdGFydFJhbmdlPXZvaWQgMCxoLnByZXZlbnREZWZhdWx0KCksITEpOnZvaWQgMCksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJ0b3VjaG1vdmUiLGg9Pntj'@; put 'b25zdHtyb290RG9jdW1lbnQ6Zn09dGhpcy5ob3Q7bGV0IF8sVCxXLGllLHBlLHdlO2lmKDA9PT1sLmRyYWdnZWQubGVuZ3RoKXJldHVybjtjb25zdCBFZT1mLmVsZW1lbnRGcm9tUG9pbnQoaC50b3VjaGVzWzBdLmNsaWVudFgsaC50b3VjaGVzWzBdLmNsaWVudFkpOyFFZXx8RWU9PT1sLmxh'@; put 'c3RTZXRDZWxsfHwoKCJURCI9PT1FZS5ub2RlTmFtZXx8IlRIIj09PUVlLm5vZGVOYW1lKSYmKF89bC5ob3QuZ2V0Q29vcmRzKEVlKSwtMT09PV8uY29sJiYoXy5jb2w9MCksVD1sLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLFc9VC5nZXRXaWR0aCgpLGllPVQuZ2V0SGVpZ2h0KCkscGU9'@; put 'VC5nZXREaXJlY3Rpb24oKSwxPT09VyYmMT09PWllJiZsLmhvdC5zZWxlY3Rpb24uc2V0UmFuZ2VFbmQoXyksd2U9bC5nZXRDdXJyZW50UmFuZ2VDb29yZHMoVCxfLGwudG91Y2hTdGFydFJhbmdlLmRpcmVjdGlvbixwZSxsLmRyYWdnZWRbMF0pLG51bGwhPT13ZS5zdGFydCYmbC5ob3Quc2Vs'@; put 'ZWN0aW9uLnNldFJhbmdlU3RhcnQod2Uuc3RhcnQpLGwuaG90LnNlbGVjdGlvbi5zZXRSYW5nZUVuZCh3ZS5lbmQpLGwubGFzdFNldENlbGw9RWUpLGgucHJldmVudERlZmF1bHQoKSl9KX1nZXRDdXJyZW50UmFuZ2VDb29yZHMobCxhLGQsaCxmKXtjb25zdCBfPWwuZ2V0VG9wU3RhcnRDb3Ju'@; put 'ZXIoKSxUPWwuZ2V0Qm90dG9tRW5kQ29ybmVyKCksVz1sLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCksaWU9bC5nZXRUb3BFbmRDb3JuZXIoKTtsZXQgcGU9e3N0YXJ0Om51bGwsZW5kOm51bGx9O3N3aXRjaChkKXtjYXNlIk5FLVNXIjpzd2l0Y2goaCl7Y2FzZSJORS1TVyI6Y2FzZSJOVy1TRSI6'@; put 'cGU9InRvcCI9PT1mP3tzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhhLnJvdyxsLmhpZ2hsaWdodC5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhXLnJvdyxhLmNvbCl9OntzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLmhpZ2hsaWdodC5yb3cs'@; put 'YS5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhhLnJvdyxfLmNvbCl9O2JyZWFrO2Nhc2UiU0UtTlciOiJib3R0b20iPT09ZiYmKHBlPXtzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhULnJvdyxhLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRz'@; put 'KGEucm93LF8uY29sKX0pfWJyZWFrO2Nhc2UiTlctU0UiOnN3aXRjaChoKXtjYXNlIk5FLVNXIjoidG9wIj09PWY/cGU9e3N0YXJ0OmEsZW5kOld9OnBlLmVuZD1hO2JyZWFrO2Nhc2UiTlctU0UiOiJ0b3AiPT09Zj9wZT17c3RhcnQ6YSxlbmQ6VH06cGUuZW5kPWE7YnJlYWs7Y2FzZSJTRS1O'@; put 'VyI6InRvcCI9PT1mP3BlPXtzdGFydDphLGVuZDpffTpwZS5lbmQ9YTticmVhaztjYXNlIlNXLU5FIjoidG9wIj09PWY/cGU9e3N0YXJ0OmEsZW5kOmllfTpwZS5lbmQ9YX1icmVhaztjYXNlIlNXLU5FIjpzd2l0Y2goaCl7Y2FzZSJOVy1TRSI6cGU9ImJvdHRvbSI9PT1mP3tzdGFydDp0aGlz'@; put 'LmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhhLnJvdyxfLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKFcucm93LGEuY29sKX06e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKF8ucm93LGEuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoYS5yb3cs'@; put 'VC5jb2wpfTticmVhaztjYXNlIlNXLU5FIjpwZT0idG9wIj09PWY/e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGwuaGlnaGxpZ2h0LnJvdyxhLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGEucm93LFQuY29sKX06e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVD'@; put 'ZWxsQ29vcmRzKGEucm93LF8uY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoXy5yb3csYS5jb2wpfTticmVhaztjYXNlIlNFLU5XIjoiYm90dG9tIj09PWY/cGU9e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGEucm93LGllLmNvbCksZW5kOnRoaXMuaG90Ll9j'@; put 'cmVhdGVDZWxsQ29vcmRzKF8ucm93LGEuY29sKX06InRvcCI9PT1mJiYocGU9e3N0YXJ0OlcsZW5kOmF9KX1icmVhaztjYXNlIlNFLU5XIjpzd2l0Y2goaCl7Y2FzZSJOVy1TRSI6Y2FzZSJORS1TVyI6Y2FzZSJTVy1ORSI6InRvcCI9PT1mJiYocGUuZW5kPWEpO2JyZWFrO2Nhc2UiU0UtTlci'@; put 'OiJ0b3AiPT09Zj9wZS5lbmQ9YTpwZT17c3RhcnQ6YSxlbmQ6X319fXJldHVybiBwZX1pc0RyYWdnZWQoKXtyZXR1cm4gdGhpcy5kcmFnZ2VkLmxlbmd0aD4wfX1mdW5jdGlvbiB4eigpe2xldHtsYWJlbDpjPSIiLGNvbHNwYW46bD0xLG9yaWdDb2xzcGFuOmE9MSxjb2xsYXBzaWJsZTpkPSEx'@; put 'LGNyb3NzSGlkZGVuQ29sdW1uczpoPVtdLGlzQ29sbGFwc2VkOmY9ITEsaXNIaWRkZW46Xz0hMSxpc1Jvb3Q6VD0hMSxpc1BsYWNlaG9sZGVyOlc9ITF9PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm57bGFiZWw6Yyxjb2xz'@; put 'cGFuOmwsb3JpZ0NvbHNwYW46YSxjb2xsYXBzaWJsZTpkLGlzQ29sbGFwc2VkOmYsY3Jvc3NIaWRkZW5Db2x1bW5zOmgsaXNIaWRkZW46Xyxpc1Jvb3Q6VCxpc1BsYWNlaG9sZGVyOld9fWZ1bmN0aW9uIEV6KGMsbCxhKXsoZnVuY3Rpb24gU0hlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiB3MihjLGwpe3JldHVybiBmdW5jdGlvbiBNSGUoYyxsKXtyZXR1cm4gbC5nZXQ/bC5nZXQuY2FsbChjKTps'@; put 'LnZhbHVlfShjLGZvZShjLGwsImdldCIpKX1mdW5jdGlvbiBYeShjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uIHhIZShjLGwsYSl7aWYobC5zZXQpbC5zZXQuY2FsbChjLGEpO2Vsc2V7aWYoIWwud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkg'@; put 'cHJpdmF0ZSBmaWVsZCIpO2wudmFsdWU9YX19KGMsZm9lKGMsbCwic2V0IiksYSksYX1mdW5jdGlvbiBmb2UoYyxsLGEpe2lmKCFsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIithKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gbC5n'@; put 'ZXQoYyl9Y29uc3QgcG9lPVsibGFiZWwiLCJjb2xsYXBzaWJsZSJdO3ZhciBKZj1uZXcgV2Vha01hcCxWZz1uZXcgV2Vha01hcCxrej1uZXcgV2Vha01hcDtjbGFzcyBFSGV7Y29uc3RydWN0b3IoKXtFeih0aGlzLEpmLHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLEV6KHRoaXMsVmcse3dyaXRh'@; put 'YmxlOiEwLHZhbHVlOjB9KSxFeih0aGlzLGt6LHt3cml0YWJsZTohMCx2YWx1ZToxLzB9KX1zZXRDb2x1bW5zTGltaXQobCl7WHkodGhpcyxreixsKX1zZXREYXRhKCl7WHkodGhpcyxKZixmdW5jdGlvbiBDSGUoYyl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVu'@; put 'dHNbMV0/YXJndW1lbnRzWzFdOjEvMDtjb25zdCBhPVtdO2lmKDA9PT1sKXJldHVybiBhO0RuKGMsaD0+e2NvbnN0IGY9W107bGV0IF89MDthLnB1c2goZiksRG4oaCxUPT57Y29uc3QgVz14eigpO2lmKHVzKFQpKXtjb25zdHtsYWJlbDpwZSxjb2xzcGFuOndlfT1UO1cubGFiZWw9X2wocGUp'@; put 'LCJudW1iZXIiPT10eXBlb2Ygd2UmJndlPjEmJihXLmNvbHNwYW49d2UsVy5vcmlnQ29sc3Bhbj13ZSl9ZWxzZSBXLmxhYmVsPV9sKFQpO18rPVcub3JpZ0NvbHNwYW47bGV0IGllPSExO2lmKF8+PWwmJihXLmNvbHNwYW49Vy5vcmlnQ29sc3Bhbi0oXy1sKSxXLm9yaWdDb2xzcGFuPVcuY29s'@; put 'c3BhbixpZT0hMCksZi5wdXNoKFcpLFcuY29sc3Bhbj4xKWZvcihsZXQgcGU9MDtwZTxXLmNvbHNwYW4tMTtwZSsrKWYucHVzaCh7bGFiZWw6IiIsaXNQbGFjZWhvbGRlcjohMH0pO3JldHVybiFpZX0pfSk7Y29uc3QgZD1NYXRoLm1heCguLi5jcyhhLGg9PmgubGVuZ3RoKSk7cmV0dXJuIERu'@; put 'KGEsaD0+e2lmKGgubGVuZ3RoPGQpe2NvbnN0IGY9Y3MobmV3IEFycmF5KGQtaC5sZW5ndGgpLCgpPT54eigpKTtoLnNwbGljZShoLmxlbmd0aCwwLC4uLmYpfX0pLGF9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSx3Mih0aGlzLGt6'@; put 'KSkpLFh5KHRoaXMsVmcsdzIodGhpcyxKZikubGVuZ3RoKX1nZXREYXRhKCl7cmV0dXJuIHcyKHRoaXMsSmYpfW1lcmdlV2l0aChsKXtEbihsLGE9PntsZXR7cm93OmQsY29sOmgsLi4uZn09YTtjb25zdCBfPXRoaXMuZ2V0SGVhZGVyU2V0dGluZ3MoZCxoKTtudWxsIT09XyYmWGwoXyxmLHBv'@; put 'ZSl9KX1tYXAobCl7RG4odzIodGhpcyxKZiksYT0+e0RuKGEsZD0+e2NvbnN0IGg9bCh7Li4uZH0pO3VzKGgpJiZYbChkLGgscG9lKX0pfSl9Z2V0SGVhZGVyU2V0dGluZ3MobCxhKXt2YXIgZDtpZihsPj13Mih0aGlzLFZnKXx8bDwwKXJldHVybiBudWxsO2NvbnN0IGg9dzIodGhpcyxKZilb'@; put 'bF07cmV0dXJuIGE+PWgubGVuZ3RoP251bGw6bnVsbCE9PShkPWhbYV0pJiZ2b2lkIDAhPT1kP2Q6bnVsbH1nZXRIZWFkZXJzU2V0dGluZ3MobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTtjb25zdCBoPVtdO2lmKGw+'@; put 'PXcyKHRoaXMsVmcpfHxsPDApcmV0dXJuIGg7Y29uc3QgZj13Mih0aGlzLEpmKVtsXTtsZXQgXz0wO2ZvcihsZXQgVD1hO1Q8Zi5sZW5ndGg7VCsrKXtjb25zdCBXPWZbVF07aWYoVy5pc1BsYWNlaG9sZGVyKXRocm93IG5ldyBFcnJvcigiVGhlIGZpcnN0IGNvbHVtbiBzZXR0aW5ncyBjYW5u'@; put 'b3Qgb3ZlcmxhcCB0aGUgb3RoZXIgaGVhZGVyIGxheWVycyIpO2lmKF8rPVcuY29sc3BhbixoLnB1c2goVyksVy5jb2xzcGFuPjEmJihUKz1XLmNvbHNwYW4tMSksXz09PWQpYnJlYWs7aWYoXz5kKXRocm93IG5ldyBFcnJvcigiVGhlIGxhc3QgY29sdW1uIHNldHRpbmdzIGNhbm5vdCBvdmVy'@; put 'bGFwIHRoZSBvdGhlciBoZWFkZXIgbGF5ZXJzIil9cmV0dXJuIGh9Z2V0TGF5ZXJzQ291bnQoKXtyZXR1cm4gdzIodGhpcyxWZyl9Z2V0Q29sdW1uc0NvdW50KCl7cmV0dXJuIHcyKHRoaXMsVmcpPjA/dzIodGhpcyxKZilbMF0ubGVuZ3RoOjB9Y2xlYXIoKXtYeSh0aGlzLEpmLFtdKSxYeSh0'@; put 'aGlzLFZnLDApfX1mdW5jdGlvbiBBeihjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24ga0hlKGMpe3ZhciBsPWZ1bmN0aW9uIEFIZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3Zh'@; put 'ciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0o'@; put 'Yywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNvbnN0IF9vZT1uZXcgTWFw'@; put 'KFtbIkRGLXByZS1vcmRlciIsZnVuY3Rpb24gZ29lKGMsbCl7bGV0IGE9Yy5jYWxsKGwsdGhpcyk7Zm9yKGxldCBkPTA7ZDx0aGlzLmNoaWxkcy5sZW5ndGg7ZCsrKXtpZighMT09PWEpcmV0dXJuITE7YT1nb2UuY2FsbCh0aGlzLmNoaWxkc1tkXSxjLGwpfXJldHVybiBhfV0sWyJERi1wb3N0'@; put 'LW9yZGVyIixmdW5jdGlvbiBtb2UoYyxsKXtmb3IobGV0IGE9MDthPHRoaXMuY2hpbGRzLmxlbmd0aDthKyspaWYoITE9PT1tb2UuY2FsbCh0aGlzLmNoaWxkc1thXSxjLGwpKXJldHVybiExO3JldHVybiBjLmNhbGwobCx0aGlzKX1dLFsiQkYiLGZ1bmN0aW9uIElIZShjLGwpe2NvbnN0IGE9'@; put 'W3RoaXNdOyFmdW5jdGlvbiBkKCl7aWYoMD09PWEubGVuZ3RoKXJldHVybjtjb25zdCBoPWEuc2hpZnQoKTthLnB1c2goLi4uaC5jaGlsZHMpLCExIT09Yy5jYWxsKGwsaCkmJmQoKX0oKX1dXSk7Y2xhc3MgSEF7Y29uc3RydWN0b3IobCl7QXoodGhpcywiZGF0YSIse30pLEF6KHRoaXMsInBh'@; put 'cmVudCIsbnVsbCksQXoodGhpcywiY2hpbGRzIixbXSksdGhpcy5kYXRhPWx9YWRkQ2hpbGQobCl7bC5wYXJlbnQ9dGhpcyx0aGlzLmNoaWxkcy5wdXNoKGwpfWNsb25lVHJlZSgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0'@; put 'aGlzO2NvbnN0IGE9bmV3IEhBKHsuLi5sLmRhdGF9KTtmb3IobGV0IGQ9MDtkPGwuY2hpbGRzLmxlbmd0aDtkKyspYS5hZGRDaGlsZCh0aGlzLmNsb25lVHJlZShsLmNoaWxkc1tkXSkpO3JldHVybiBhfXJlcGxhY2VUcmVlV2l0aChsKXt0aGlzLmRhdGE9ey4uLmwuZGF0YX0sdGhpcy5jaGls'@; put 'ZHM9W107Zm9yKGxldCBhPTA7YTxsLmNoaWxkcy5sZW5ndGg7YSsrKXRoaXMuYWRkQ2hpbGQobC5jaGlsZHNbYV0pfXdhbGtEb3duKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiQkYiO2lmKCFfb2UuaGFzKGEpKXRocm93'@; put 'IG5ldyBFcnJvcihgVHJhdmVyc2FsIHN0cmF0ZWd5ICIke2F9IiBkb2VzIG5vdCBleGlzdGApO19vZS5nZXQoYSkuY2FsbCh0aGlzLGwsdGhpcyl9d2Fsa1VwKGwpe2NvbnN0IGE9dGhpcyxkPWg9PnshMSE9PWwuY2FsbChhLGgpJiZudWxsIT09aC5wYXJlbnQmJmQoaC5wYXJlbnQpfTtkKHRo'@; put 'aXMpfX1mdW5jdGlvbiBUeihjLGwsYSl7KGZ1bmN0aW9uIFJIZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rp'@; put 'b24gS3UoYyxsKXtyZXR1cm4gZnVuY3Rpb24gT0hlKGMsbCl7cmV0dXJuIGwuZ2V0P2wuZ2V0LmNhbGwoYyk6bC52YWx1ZX0oYyxib2UoYyxsLCJnZXQiKSl9ZnVuY3Rpb24gYm9lKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIrYSsiIHBy'@; put 'aXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGwuZ2V0KGMpfXZhciBINz1uZXcgV2Vha01hcCxCZz1uZXcgV2Vha01hcCxONz1uZXcgV2Vha01hcDtjbGFzcyBISGV7Y29uc3RydWN0b3IobCl7VHoodGhpcyxINyx7d3JpdGFibGU6ITAsdmFsdWU6bmV3IE1hcH0pLFR6KHRo'@; put 'aXMsQmcse3dyaXRhYmxlOiEwLHZhbHVlOm5ldyBNYXB9KSxUeih0aGlzLE43LHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksZnVuY3Rpb24gUEhlKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gRkhlKGMsbCxhKXtpZihsLnNldClsLnNldC5jYWxsKGMsYSk7ZWxzZXtpZighbC53cml0YWJsZSl0'@; put 'aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7bC52YWx1ZT1hfX0oYyxib2UoYyxsLCJzZXQiKSxhKSxhfSh0aGlzLE43LGwpfWdldFJvb3RzKCl7cmV0dXJuIEFycmF5LmZyb20oS3UodGhpcyxINykudmFsdWVzKCkpfWdldFJv'@; put 'b3RCeUNvbHVtbihsKXtsZXQgYTtyZXR1cm4gS3UodGhpcyxCZykuaGFzKGwpJiYoYT1LdSh0aGlzLEg3KS5nZXQoS3UodGhpcyxCZykuZ2V0KGwpKSksYX1nZXROb2RlKGwsYSl7Y29uc3QgZD10aGlzLmdldFJvb3RCeUNvbHVtbihhKTtpZighZClyZXR1cm47Y29uc3QgaD1hLUt1KHRoaXMs'@; put 'QmcpLmdldChhKTtsZXQgXyxmPTA7cmV0dXJuIGQud2Fsa0Rvd24oVD0+e2NvbnN0e2RhdGE6e29yaWdDb2xzcGFuOlcsaGVhZGVyTGV2ZWw6aWV9fT1UO2lmKGw9PT1pZSl7aWYoaD49ZiYmaDw9ZitXLTEpcmV0dXJuIF89VCxfLmRhdGEuaXNSb290PWE9PT1fLmRhdGEuY29sdW1uSW5kZXgs'@; put 'ITE7Zis9V319KSxffXJlYnVpbGRUcmVlSW5kZXgoKXtsZXQgbD0wO0t1KHRoaXMsQmcpLmNsZWFyKCksRG4oS3UodGhpcyxINyksYT0+e2xldFsse2RhdGE6e2NvbHNwYW46ZH19XT1hO2ZvcihsZXQgaD1sO2g8bCtkO2grKylLdSh0aGlzLEJnKS5zZXQoaCxsKTtsKz1kfSl9YnVpbGRUcmVl'@; put 'KCl7dGhpcy5jbGVhcigpO2NvbnN0IGw9S3UodGhpcyxONykuZ2V0Q29sdW1uc0NvdW50KCk7bGV0IGE9MDtmb3IoO2E8bDspe2NvbnN0IGQ9S3UodGhpcyxONykuZ2V0SGVhZGVyU2V0dGluZ3MoMCxhKSxoPW5ldyBIQTtLdSh0aGlzLEg3KS5zZXQoYSxoKSx0aGlzLmJ1aWxkTGVhdmVzKGgs'@; put 'YSwwLGQub3JpZ0NvbHNwYW4pLGErPWQub3JpZ0NvbHNwYW59dGhpcy5yZWJ1aWxkVHJlZUluZGV4KCl9YnVpbGRMZWF2ZXMobCxhLGQpe2xldCBoPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXToxO2NvbnN0IGY9S3UodGhpcyxONykuZ2V0'@; put 'SGVhZGVyc1NldHRpbmdzKGQsYSxoKTtkKz0xLERuKGYsXz0+e2NvbnN0IFQ9ey4uLl8saGVhZGVyTGV2ZWw6ZC0xLGNvbHVtbkluZGV4OmF9O2xldCBXOzE9PT1kPyhsLmRhdGE9VCxXPWwpOihXPW5ldyBIQShUKSxsLmFkZENoaWxkKFcpKSxkPEt1KHRoaXMsTjcpLmdldExheWVyc0NvdW50'@; put 'KCkmJnRoaXMuYnVpbGRMZWF2ZXMoVyxhLGQsXy5vcmlnQ29sc3BhbiksYSs9Xy5vcmlnQ29sc3Bhbn0pfWNsZWFyKCl7S3UodGhpcyxINykuY2xlYXIoKSxLdSh0aGlzLEJnKS5jbGVhcigpfX1mdW5jdGlvbiB5b2UoYyxsKXtjLndhbGtEb3duKGE9PntsZXR7ZGF0YTpkLGNoaWxkczpofT1h'@; put 'O2lmKCFkLmlzSGlkZGVuJiYobChkLmNvbHVtbkluZGV4KSwwPT09aC5sZW5ndGgpKWZvcihsZXQgZj0xO2Y8ZC5jb2xzcGFuO2YrKylsKGQuY29sdW1uSW5kZXgrZil9KX1mdW5jdGlvbiBOQShjLGwpe2xldHtjaGlsZHM6YX09YztpZigwIT09YS5sZW5ndGgpcmV0dXJuIGFbMF0uZGF0YVts'@; put 'XX1mdW5jdGlvbiBWQShjKXtyZXR1cm4gTkEoYywib3JpZ0NvbHNwYW4iKT09PWMuZGF0YS5vcmlnQ29sc3Bhbn1mdW5jdGlvbiBEeihjKXtjb25zdHtkYXRhOmwsY2hpbGRzOmF9PWM7aWYoIWwuaXNDb2xsYXBzZWR8fGwuaXNIaWRkZW58fGwub3JpZ0NvbHNwYW48PTEpcmV0dXJue3JvbGxi'@; put 'YWNrTW9kaWZpY2F0aW9uOigpPT57fSxhZmZlY3RlZENvbHVtbnM6W10sY29sc3BhbkNvbXBlbnNhdGlvbjowfTtpZihWQShjKSlyZXR1cm4gRHooYVswXSk7bC5pc0NvbGxhcHNlZD0hMTtjb25zdCBoPWEuc2xpY2UoMSksZj1uZXcgU2V0O2xldCBfPTA7aWYoaC5sZW5ndGg+MClEbihoLFQ9'@; put 'PntULnJlcGxhY2VUcmVlV2l0aChULmRhdGEuY2xvbmVkVHJlZSksVC5kYXRhLmNsb25lZFRyZWU9bnVsbCxfKz1ULmRhdGEuY29sc3Bhbix5b2UoVCxpZT0+e2YuYWRkKGllKX0pfSk7ZWxzZXtjb25zdHtjb2xzcGFuOlQsb3JpZ0NvbHNwYW46Vyxjb2x1bW5JbmRleDppZX09bDtfPVctVDtm'@; put 'b3IobGV0IHBlPTE7cGU8VztwZSsrKWYuYWRkKGllK3BlKX1yZXR1cm4gYy53YWxrVXAoVD0+e2NvbnN0e2RhdGE6V309VDtXLmNvbHNwYW4rPV8sVy5jb2xzcGFuPj1XLm9yaWdDb2xzcGFuPyhXLmNvbHNwYW49Vy5vcmlnQ29sc3BhbixXLmlzQ29sbGFwc2VkPSExKTpWQShUKSYmKFcuaXND'@; put 'b2xsYXBzZWQ9TkEoVCwiaXNDb2xsYXBzZWQiKSl9KSx7cm9sbGJhY2tNb2RpZmljYXRpb246KCk9Pkl6KGMpLGFmZmVjdGVkQ29sdW1uczpBcnJheS5mcm9tKGYpLGNvbHNwYW5Db21wZW5zYXRpb246X319ZnVuY3Rpb24gSXooYyl7dmFyIGw7Y29uc3R7ZGF0YTphLGNoaWxkczpkfT1jO2lm'@; put 'KGEuaXNDb2xsYXBzZWR8fGEuaXNIaWRkZW58fGEub3JpZ0NvbHNwYW48PTEpcmV0dXJue3JvbGxiYWNrTW9kaWZpY2F0aW9uOigpPT57fSxhZmZlY3RlZENvbHVtbnM6W10sY29sc3BhbkNvbXBlbnNhdGlvbjowfTtpZihWQShjKSlyZXR1cm4gSXooZFswXSk7YS5pc0NvbGxhcHNlZD0hMDtj'@; put 'b25zdCBmPWQuc2xpY2UoMSksXz1uZXcgU2V0O2lmKGYubGVuZ3RoPjApRG4oZixXPT57eW9lKFcsaWU9PntfLmFkZChpZSl9KSxXLmRhdGEuY2xvbmVkVHJlZT1XLmNsb25lVHJlZSgpLFcud2Fsa0Rvd24oaWU9PntsZXR7ZGF0YTpwZX09aWU7cGUuaXNIaWRkZW49ITB9KX0pO2Vsc2V7Y29u'@; put 'c3R7b3JpZ0NvbHNwYW46Vyxjb2x1bW5JbmRleDppZX09YTtmb3IobGV0IHBlPTE7cGU8VztwZSsrKV8uYWRkKGllK3BlKX1jb25zdCBUPWEuY29sc3Bhbi0obnVsbCE9PShsPU5BKGMsImNvbHNwYW4iKSkmJnZvaWQgMCE9PWw/bDoxKTtyZXR1cm4gYy53YWxrVXAoVz0+e2NvbnN0e2RhdGE6'@; put 'aWV9PVc7aWUuY29sc3Bhbi09VCxpZS5jb2xzcGFuPD0xPyhpZS5jb2xzcGFuPTEsaWUuaXNDb2xsYXBzZWQ9ITApOlZBKFcpJiYoaWUuaXNDb2xsYXBzZWQ9TkEoVywiaXNDb2xsYXBzZWQiKSl9KSx7cm9sbGJhY2tNb2RpZmljYXRpb246KCk9PkR6KGMpLGFmZmVjdGVkQ29sdW1uczpBcnJh'@; put 'eS5mcm9tKF8pLGNvbHNwYW5Db21wZW5zYXRpb246VH19Y29uc3Qgd29lPW5ldyBNYXAoW1siY29sbGFwc2UiLEl6XSxbImV4cGFuZCIsRHpdLFsiaGlkZS1jb2x1bW4iLGZ1bmN0aW9uIE5IZShjLGwpe2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGwpKXRocm93IG5ldyBFcnJvcigiVGhlIHBhc3Nl'@; put 'ZCBncmlkQ29sdW1uSW5kZXggYXJndW1lbnQgaGFzIGludmFsaWQgdHlwZS4iKTtpZihjLmNoaWxkcy5sZW5ndGg+MCl0aHJvdyBuZXcgRXJyb3IoQWFgVGhlIHBhc3NlZCBub2RlIGlzIG5vdCB0aGUgbGFzdCBub2RlIG9uIHRoZSB0cmVlLiBPbmx5IGZvclx4MjAKdGhlIGxhc3Qgbm9kZSwg'@; put 'dGhlIGhpZGUgY29sdW1uIG1vZGlmaWNhdGlvbiBjYW4gYmUgYXBwbGllZC5gKTtjb25zdHtjcm9zc0hpZGRlbkNvbHVtbnM6YX09Yy5kYXRhO2lmKGEuaW5jbHVkZXMobCkpcmV0dXJuO2xldCBkPSExO2Mud2Fsa1VwKGg9Pntjb25zdHtkYXRhOntjb2xsYXBzaWJsZTpmfX09aDtpZihmKXJl'@; put 'dHVybiBkPSEwLCExfSksIWQmJmMud2Fsa1VwKGg9Pntjb25zdHtkYXRhOmZ9PWg7Zi5jcm9zc0hpZGRlbkNvbHVtbnMucHVzaChsKSxmLmNvbHNwYW4+MT9mLmNvbHNwYW4tPTE6Zi5pc0hpZGRlbj0hMH0pfV0sWyJzaG93LWNvbHVtbiIsZnVuY3Rpb24gVkhlKGMsbCl7aWYoIU51bWJlci5p'@; put 'c0ludGVnZXIobCkpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGFzc2VkIGdyaWRDb2x1bW5JbmRleCBhcmd1bWVudCBoYXMgaW52YWxpZCB0eXBlLiIpO2lmKGMuY2hpbGRzLmxlbmd0aD4wKXRocm93IG5ldyBFcnJvcihBYWBUaGUgcGFzc2VkIG5vZGUgaXMgbm90IHRoZSBsYXN0IG5vZGUgb24g'@; put 'dGhlIHRyZWUuIE9ubHkgZm9yXHgyMAp0aGUgbGFzdCBub2RlLCB0aGUgc2hvdyBjb2x1bW4gbW9kaWZpY2F0aW9uIGNhbiBiZSBhcHBsaWVkLmApO2NvbnN0e2Nyb3NzSGlkZGVuQ29sdW1uczphfT1jLmRhdGE7aWYoIWEuaW5jbHVkZXMobCkpcmV0dXJuO2xldCBkPSExO2Mud2Fsa1VwKGg9'@; put 'Pntjb25zdHtkYXRhOntjb2xsYXBzaWJsZTpmfX09aDtpZihmKXJldHVybiBkPSEwLCExfSksIWQmJmMud2Fsa1VwKGg9Pntjb25zdHtkYXRhOmZ9PWg7Zi5jcm9zc0hpZGRlbkNvbHVtbnMuc3BsaWNlKGYuY3Jvc3NIaWRkZW5Db2x1bW5zLmluZGV4T2YobCksMSksIWYuaXNIaWRkZW4mJmYu'@; put 'Y29sc3BhbjxmLm9yaWdDb2xzcGFuJiYoZi5jb2xzcGFuKz0xKSxmLmlzSGlkZGVuPSExfSl9XV0pO2Z1bmN0aW9uIEJBKGMpe2NvbnN0IGw9W107cmV0dXJuIERuKGMsYT0+e2Eud2Fsa0Rvd24oZD0+e2NvbnN0IGg9ZC5kYXRhLHtvcmlnQ29sc3BhbjpmLGNvbHVtbkluZGV4Ol8saGVhZGVy'@; put 'TGV2ZWw6VCxjcm9zc0hpZGRlbkNvbHVtbnM6V309aCxpZT1mdW5jdGlvbiB6SGUoYyxsKXtsZXQgYTtyZXR1cm4gQXJyYXkuaXNBcnJheShjW2xdKT9hPWNbbF06KGE9W10sY1tsXT1hKSxhfShsLFQpO2xldCBwZT0hMTtmb3IobGV0IHdlPV87d2U8XytmO3dlKyspaWYoVy5pbmNsdWRlcyh3'@; put 'ZSl8fHBlKWllLnB1c2goe2xhYmVsOiIiLGlzUGxhY2Vob2xkZXI6ITB9KTtlbHNle2NvbnN0IFplPWpIZShoKTtaZS5pc1Jvb3Q9ITAsaWUucHVzaChaZSkscGU9ITB9fSl9KSxsfWZ1bmN0aW9uIGpIZShjKXtjb25zdHtjcm9zc0hpZGRlbkNvbHVtbnM6bCwuLi5hfT14eihjKTtyZXR1cm4g'@; put 'YX1mdW5jdGlvbiBMeihjLGwsYSl7KGZ1bmN0aW9uIFVIZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24g'@; put 'SnkoYyxsLGEpe3JldHVybiBmdW5jdGlvbiBaSGUoYyxsLGEpe2lmKGwuc2V0KWwuc2V0LmNhbGwoYyxhKTtlbHNle2lmKCFsLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtsLnZhbHVlPWF9fShjLENvZShj'@; put 'LGwsInNldCIpLGEpLGF9ZnVuY3Rpb24gVGwoYyxsKXtyZXR1cm4gZnVuY3Rpb24gWUhlKGMsbCl7cmV0dXJuIGwuZ2V0P2wuZ2V0LmNhbGwoYyk6bC52YWx1ZX0oYyxDb2UoYyxsLCJnZXQiKSl9ZnVuY3Rpb24gQ29lKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'YXR0ZW1wdGVkIHRvICIrYSsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGwuZ2V0KGMpfXZhciBFaD1uZXcgV2Vha01hcCxDMT1uZXcgV2Vha01hcCxqZz1uZXcgV2Vha01hcDtjbGFzcyBXSGV7Y29uc3RydWN0b3IoKXtMeih0aGlzLEVoLHt3cml0YWJsZTohMCx2'@; put 'YWx1ZTpuZXcgRUhlfSksTHoodGhpcyxDMSx7d3JpdGFibGU6ITAsdmFsdWU6bmV3IEhIZShUbCh0aGlzLEVoKSl9KSxMeih0aGlzLGpnLHt3cml0YWJsZTohMCx2YWx1ZTpbW11dfSl9c2V0U3RhdGUobCl7VGwodGhpcyxFaCkuc2V0RGF0YShsKTtsZXQgYT0hMTt0cnl7VGwodGhpcyxDMSku'@; put 'YnVpbGRUcmVlKCl9Y2F0Y2h7VGwodGhpcyxDMSkuY2xlYXIoKSxUbCh0aGlzLEVoKS5jbGVhcigpLGE9ITB9cmV0dXJuIEp5KHRoaXMsamcsQkEoVGwodGhpcyxDMSkuZ2V0Um9vdHMoKSkpLGF9c2V0Q29sdW1uc0xpbWl0KGwpe1RsKHRoaXMsRWgpLnNldENvbHVtbnNMaW1pdChsKX1tZXJn'@; put 'ZVN0YXRlV2l0aChsKXtjb25zdCBhPWNzKGwsZD0+e2xldHtyb3c6aCwuLi5mfT1kO3JldHVybntyb3c6aDwwP3RoaXMucm93Q29vcmRzVG9MZXZlbChoKTpoLC4uLmZ9fSk7VGwodGhpcyxFaCkubWVyZ2VXaXRoKGEpLFRsKHRoaXMsQzEpLmJ1aWxkVHJlZSgpLEp5KHRoaXMsamcsQkEoVGwo'@; put 'dGhpcyxDMSkuZ2V0Um9vdHMoKSkpfW1hcFN0YXRlKGwpe1RsKHRoaXMsRWgpLm1hcChsKSxUbCh0aGlzLEMxKS5idWlsZFRyZWUoKSxKeSh0aGlzLGpnLEJBKFRsKHRoaXMsQzEpLmdldFJvb3RzKCkpKX1tYXBOb2RlcyhsKXtyZXR1cm4gQWwoVGwodGhpcyxDMSkuZ2V0Um9vdHMoKSwoYSxk'@; put 'KT0+KGQud2Fsa0Rvd24oaD0+e2NvbnN0IGY9bChoLmRhdGEpO3ZvaWQgMCE9PWYmJmEucHVzaChmKX0pLGEpLFtdKX10cmlnZ2VyTm9kZU1vZGlmaWNhdGlvbihsLGEsZCl7YTwwJiYoYT10aGlzLnJvd0Nvb3Jkc1RvTGV2ZWwoYSkpO2NvbnN0IGg9VGwodGhpcyxDMSkuZ2V0Tm9kZShhLGQp'@; put 'O2xldCBmO3JldHVybiBoJiYoZj1mdW5jdGlvbiBCSGUoYyxsLGEpe2lmKCF3b2UuaGFzKGMpKXRocm93IG5ldyBFcnJvcihgVGhlIG5vZGUgbW9kaWZpZXIgYWN0aW9uICgiJHtjfSIpIGRvZXMgbm90IGV4aXN0LmApO3JldHVybiB3b2UuZ2V0KGMpKGwsYSl9KGwsaCxkKSxKeSh0aGlzLGpn'@; put 'LEJBKFRsKHRoaXMsQzEpLmdldFJvb3RzKCkpKSksZn10cmlnZ2VyQ29sdW1uTW9kaWZpY2F0aW9uKGwsYSl7cmV0dXJuIHRoaXMudHJpZ2dlck5vZGVNb2RpZmljYXRpb24obCwtMSxhKX1yb3dDb29yZHNUb0xldmVsKGwpe2lmKGw+PTApcmV0dXJuIG51bGw7Y29uc3QgYT1sK01hdGgubWF4'@; put 'KHRoaXMuZ2V0TGF5ZXJzQ291bnQoKSwxKTtyZXR1cm4gYTwwP251bGw6YX1sZXZlbFRvUm93Q29vcmRzKGwpe2lmKGw8MClyZXR1cm4gbnVsbDtjb25zdCBhPWwtTWF0aC5tYXgodGhpcy5nZXRMYXllcnNDb3VudCgpLDEpO3JldHVybiBhPj0wP251bGw6YX1nZXRIZWFkZXJTZXR0aW5ncyhs'@; put 'LGEpe3ZhciBkLGg7cmV0dXJuIGw8MCYmKGw9dGhpcy5yb3dDb29yZHNUb0xldmVsKGwpKSxudWxsPT09bHx8bD49dGhpcy5nZXRMYXllcnNDb3VudCgpP251bGw6bnVsbCE9PShkPW51bGw9PT0oaD1UbCh0aGlzLGpnKVtsXSl8fHZvaWQgMD09PWg/dm9pZCAwOmhbYV0pJiZ2b2lkIDAhPT1k'@; put 'P2Q6bnVsbH1nZXRIZWFkZXJUcmVlTm9kZURhdGEobCxhKXtpZihsPDAmJihsPXRoaXMucm93Q29vcmRzVG9MZXZlbChsKSksbnVsbD09PWx8fGw+PXRoaXMuZ2V0TGF5ZXJzQ291bnQoKSlyZXR1cm4gbnVsbDtjb25zdCBkPVRsKHRoaXMsQzEpLmdldE5vZGUobCxhKTtyZXR1cm4gZD97Li4u'@; put 'ZC5kYXRhfTpudWxsfWZpbmRMZWZ0TW9zdENvbHVtbkluZGV4KGwsYSl7dmFyIGQ7Y29uc3R7aXNSb290Omh9PW51bGwhPT0oZD10aGlzLmdldEhlYWRlclNldHRpbmdzKGwsYSkpJiZ2b2lkIDAhPT1kP2Q6e2lzUm9vdDohMH07aWYoaClyZXR1cm4gYTtsZXQgZj1hLTE7Zm9yKDtmPj0wOyl7'@; put 'dmFyIF87Y29uc3R7aXNSb290OlR9PW51bGwhPT0oXz10aGlzLmdldEhlYWRlclNldHRpbmdzKGwsZikpJiZ2b2lkIDAhPT1fP186e2lzUm9vdDohMH07aWYoVClicmVhaztmLT0xfXJldHVybiBmfWdldExheWVyc0NvdW50KCl7cmV0dXJuIFRsKHRoaXMsRWgpLmdldExheWVyc0NvdW50KCl9'@; put 'Z2V0Q29sdW1uc0NvdW50KCl7cmV0dXJuIFRsKHRoaXMsRWgpLmdldENvbHVtbnNDb3VudCgpfWNsZWFyKCl7SnkodGhpcyxqZyxbXSksVGwodGhpcyxFaCkuY2xlYXIoKSxUbCh0aGlzLEMxKS5jbGVhcigpfX1mdW5jdGlvbiBReShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gR0hlKGMpe3Zh'@; put 'ciBsPWZ1bmN0aW9uICRIZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBk'@; put 'O3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGlu'@; put 'IGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIFNvZShjLGwsYSl7cmV0dXJuIGw9ZnVuY3Rpb24gWEhlKGMpe3ZhciBsPWZ1bmN0aW9uIEpIZShjLGwpe2lmKCJv'@; put 'YmplY3QiIT10eXBlb2YgY3x8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9Q'@; put 'cmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6U3RyaW5nKGwpfShsKSxsIGluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMs'@; put 'bCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIE1vZShjLGwsYSl7KGZ1bmN0aW9uIFFIZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHBy'@; put 'aXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gakEoYyxsLGEpe3JldHVybiBmdW5jdGlvbiBlTmUoYyxsLGEpe2lmKGwuc2V0KWwuc2V0LmNhbGwoYyxhKTtlbHNle2lmKCFsLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'ImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtsLnZhbHVlPWF9fShjLHhvZShjLGwsInNldCIpLGEpLGF9ZnVuY3Rpb24gU2woYyxsKXtyZXR1cm4gZnVuY3Rpb24gdE5lKGMsbCl7cmV0dXJuIGwuZ2V0P2wuZ2V0LmNhbGwoYyk6bC52YWx1ZX0oYyx4b2UoYyxs'@; put 'LCJnZXQiKSl9ZnVuY3Rpb24geG9lKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIrYSsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGwuZ2V0KGMpfWNvbnN0IEVvZT0ibmVzdGVkSGVhZGVycyI7dmFyIFFsPW5l'@; put 'dyBXZWFrTWFwLHM0PW5ldyBXZWFrTWFwO2NsYXNzIHJOZSBleHRlbmRzIFpze2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxNb2UodGhpcyxRbCx7d3JpdGFibGU6ITAsdmFsdWU6bmV3IFdIZX0pLE1vZSh0aGlzLHM0LHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksU29lKHRo'@; put 'aXMsImdob3N0VGFibGUiLG5ldyBjbGFzcyBxSGV7Y29uc3RydWN0b3IobCxhKXtReSh0aGlzLCJob3QiLHZvaWQgMCksUXkodGhpcywibmVzdGVkSGVhZGVyU2V0dGluZ3NHZXR0ZXIiLHZvaWQgMCksUXkodGhpcywibGF5ZXJzQ291bnQiLDApLFF5KHRoaXMsImNvbnRhaW5lciIsdm9pZCAw'@; put 'KSxReSh0aGlzLCJ3aWR0aHNNYXAiLHZvaWQgMCksdGhpcy5ob3Q9bCx0aGlzLm5lc3RlZEhlYWRlclNldHRpbmdzR2V0dGVyPWEsdGhpcy53aWR0aHNNYXA9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuY3JlYXRlQW5kUmVnaXN0ZXJJbmRleE1hcCgibmVzdGVkSGVhZGVycy53aWR0aHNN'@; put 'YXAiLCJwaHlzaWNhbEluZGV4VG9WYWx1ZSIpfXNldExheWVyc0NvdW50KGwpe3JldHVybiB0aGlzLmxheWVyc0NvdW50PWwsdGhpc31nZXRXaWR0aChsKXtyZXR1cm4gdGhpcy53aWR0aHNNYXAuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCkpfWJ1aWxkV2lk'@; put 'dGhzTWFwKCl7dGhpcy5jb250YWluZXI9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhbmRzb250YWJsZSIsImh0R2hvc3RUYWJsZSIsImh0QXV0b1NpemUiKSx0aGlzLl9idWlsZEdob3N0VGFibGUodGhp'@; put 'cy5jb250YWluZXIpLHRoaXMuaG90LnJvb3REb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKTtjb25zdCBsPXRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoInRyOmxhc3Qtb2YtdHlwZSB0aCIpLGE9bC5sZW5ndGg7dGhpcy53aWR0aHNNYXAuY2xlYXIoKTtm'@; put 'b3IobGV0IGQ9MDtkPGE7ZCsrKXtjb25zdCBoPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoZCksZj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGgpO3RoaXMud2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChmLGxbZF0ub2Zmc2V0V2lk'@; put 'dGgpfXRoaXMuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpLHRoaXMuY29udGFpbmVyPW51bGx9X2J1aWxkR2hvc3RUYWJsZShsKXtjb25zdHtyb290RG9jdW1lbnQ6YSxjb2x1bW5JbmRleE1hcHBlcjpkfT10aGlzLmhvdCxoPWEuY3JlYXRlRG9jdW1l'@; put 'bnRGcmFnbWVudCgpLGY9YS5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpLF89ISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmRyb3Bkb3duTWVudSxUPWQuZ2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgoKTtmb3IobGV0IFc9MDtXPHRoaXMubGF5ZXJzQ291bnQ7VysrKXtjb25zdCBpZT1hLmNyZWF0'@; put 'ZUVsZW1lbnQoInRyIik7Zm9yKGxldCBwZT0wO3BlPFQ7cGUrKyl7bGV0IHdlPWQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChwZSk7bnVsbD09PXdlJiYod2U9cGUpO2NvbnN0IEVlPWEuY3JlYXRlRWxlbWVudCgidGgiKSxaZT10aGlzLm5lc3RlZEhlYWRlclNldHRpbmdzR2V0dGVy'@; put 'KFcsd2UpO2lmKFplJiYoIVplLmlzUGxhY2Vob2xkZXJ8fFplLmlzSGlkZGVuKSl7bGV0IGl0PVplLmxhYmVsO18mJihpdCs9JzxidXR0b24gY2xhc3M9ImNoYW5nZVR5cGUiPjwvYnV0dG9uPicpLGdnKEVlLGl0KSxFZS5jb2xTcGFuPVplLmNvbHNwYW4saWUuYXBwZW5kQ2hpbGQoRWUpfX1m'@; put 'LmFwcGVuZENoaWxkKGllKX1oLmFwcGVuZENoaWxkKGYpLGwuYXBwZW5kQ2hpbGQoaCl9Y2xlYXIoKXt0aGlzLndpZHRoc01hcC5jbGVhcigpLHRoaXMuY29udGFpbmVyPW51bGx9fSh0aGlzLmhvdCwobCxhKT0+dGhpcy5nZXRIZWFkZXJTZXR0aW5ncyhsLGEpKSksU29lKHRoaXMsImRldGVj'@; put 'dGVkT3ZlcmxhcHBlZEhlYWRlcnMiLCExKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gRW9lfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDI4MH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbRW9lXX1lbmFibGVQbHVnaW4oKXt2'@; put 'YXIgbD10aGlzO2lmKHRoaXMuZW5hYmxlZClyZXR1cm47Y29uc3R7bmVzdGVkSGVhZGVyczphfT10aGlzLmhvdC5nZXRTZXR0aW5ncygpOyghQXJyYXkuaXNBcnJheShhKXx8IUFycmF5LmlzQXJyYXkoYVswXSkpJiZHYShBYWBZb3VyIE5lc3RlZCBIZWFkZXJzIHBsdWdpbiBjb25maWd1cmF0'@; put 'aW9uIGlzIGludmFsaWQuIFRoZSBzZXR0aW5ncyBoYXMgdG8gYmVceDIwCiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZCBhcyBhbiBhcnJheSBvZiBhcnJheXMgZS5xLiBbWydBMScsIHsgbGFiZWw6ICdBMicsIGNvbHNwYW46IDIgfV1dYCksdGhpcy5hZGRIb29rKCJpbml0IiwoKT0+'@; put 'dGhpcy5vbkluaXQoKSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJMb2FkRGF0YSguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZvcmVPbkNl'@; put 'bGxNb3VzZURvd24oLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlck9uQ2VsbE1vdXNlRG93biguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLGZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIGwub25CZWZvcmVPbkNlbGxNb3VzZU92ZXIoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnMiLGQ9PnRoaXMub25BZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyhkKSksdGhpcy5hZGRIb29rKCJtb2RpZnlD'@; put 'b2xXaWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbk1vZGlmeUNvbFdpZHRoKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbHVtbkhlYWRlclZhbHVlIixmdW5jdGlvbigpe3JldHVybiBsLm9uTW9kaWZ5Q29sdW1uSGVhZGVyVmFsdWUoLi4uYXJndW1lbnRzKX0pLHRo'@; put 'aXMuYWRkSG9vaygiYmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIixmdW5jdGlvbigpe3JldHVybiBsLm9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNvcHkiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZv'@; put 'cmVDb3B5KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlKC4uLmFyZ3VtZW50cyl9KSxzdXBlci5lbmFibGVQ'@; put 'bHVnaW4oKSx0aGlzLnVwZGF0ZVBsdWdpbigpfXVwZGF0ZVBsdWdpbigpe2lmKCF0aGlzLmhvdC52aWV3KXJldHVybjtjb25zdHtuZXN0ZWRIZWFkZXJzOmx9PXRoaXMuaG90LmdldFNldHRpbmdzKCk7U2wodGhpcyxRbCkuc2V0Q29sdW1uc0xpbWl0KHRoaXMuaG90LmNvdW50Q29scygpKSxB'@; put 'cnJheS5pc0FycmF5KGwpJiYodGhpcy5kZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzPVNsKHRoaXMsUWwpLnNldFN0YXRlKGwpKSx0aGlzLmRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnMmJkdhKEFhYFlvdXIgTmVzdGVkIEhlYWRlcnMgcGx1Z2luIHNldHVwIGNvbnRhaW5zIG92ZXJsYXBwaW5n'@; put 'IGhlYWRlcnMuIFRoaXMga2luZCBvZiBjb25maWd1cmF0aW9uXHgyMAogICAgICAgICAgICAgICAgICAgICAgICBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC5gKSx0aGlzLmVuYWJsZWQmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmhpZGluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdl'@; put 'ZFZhbHVlcygpLmZvckVhY2goKGEsZCk9Pntjb25zdCBoPSEwPT09YT8iaGlkZS1jb2x1bW4iOiJzaG93LWNvbHVtbiI7U2wodGhpcyxRbCkudHJpZ2dlckNvbHVtbk1vZGlmaWNhdGlvbihoLGQpfSksIVNsKHRoaXMsczQpJiZ0aGlzLmVuYWJsZWQmJmpBKHRoaXMsczQsdGhpcy5ob3QuY29s'@; put 'dW1uSW5kZXhNYXBwZXIuY3JlYXRlQ2hhbmdlc09ic2VydmVyKCJoaWRpbmciKS5zdWJzY3JpYmUoYT0+e2EuZm9yRWFjaChkPT57bGV0e29wOmgsaW5kZXg6ZixuZXdWYWx1ZTpffT1kO2lmKCJyZXBsYWNlIj09PWgpe2NvbnN0IFQ9ITA9PT1fPyJoaWRlLWNvbHVtbiI6InNob3ctY29sdW1u'@; put 'IjtTbCh0aGlzLFFsKS50cmlnZ2VyQ29sdW1uTW9kaWZpY2F0aW9uKFQsZil9fSksdGhpcy5naG9zdFRhYmxlLmJ1aWxkV2lkdGhzTWFwKCl9KSksdGhpcy5naG9zdFRhYmxlLnNldExheWVyc0NvdW50KHRoaXMuZ2V0TGF5ZXJzQ291bnQoKSkuYnVpbGRXaWR0aHNNYXAoKSxzdXBlci51cGRh'@; put 'dGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5jbGVhckNvbHNwYW5zKCksU2wodGhpcyxRbCkuY2xlYXIoKSxTbCh0aGlzLHM0KS51bnN1YnNjcmliZSgpLGpBKHRoaXMsczQsbnVsbCksdGhpcy5naG9zdFRhYmxlLmNsZWFyKCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfWdldFN0YXRl'@; put 'TWFuYWdlcigpe3JldHVybiBTbCh0aGlzLFFsKX1nZXRMYXllcnNDb3VudCgpe3JldHVybiBTbCh0aGlzLFFsKS5nZXRMYXllcnNDb3VudCgpfWdldEhlYWRlclNldHRpbmdzKGwsYSl7cmV0dXJuIFNsKHRoaXMsUWwpLmdldEhlYWRlclNldHRpbmdzKGwsYSl9Y2xlYXJDb2xzcGFucygpe2lm'@; put 'KCF0aGlzLmhvdC52aWV3KXJldHVybjtjb25zdHtfd3Q6bH09dGhpcy5ob3QudmlldyxhPWwuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxlbmd0aCxkPWwud3RUYWJsZS5USEVBRCxoPWwud3RPdmVybGF5cy50b3BPdmVybGF5LmNsb25lLnd0VGFibGUuVEhFQUQsZj1sLnd0T3Zlcmxh'@; put 'eXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5P2wud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRDpudWxsO2ZvcihsZXQgXz0wO188YTtfKyspe2NvbnN0IFQ9ZC5jaGlsZE5vZGVzW19dO2lmKCFUKWJyZWFrO2NvbnN0IFc9aC5j'@; put 'aGlsZE5vZGVzW19dLGllPWY/Zi5jaGlsZE5vZGVzW19dOm51bGw7Zm9yKGxldCBwZT0wLHdlPVQuY2hpbGROb2Rlcy5sZW5ndGg7cGU8d2U7cGUrKylULmNoaWxkTm9kZXNbcGVdLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLFdvKFQuY2hpbGROb2Rlc1twZV0sImhpZGRlbkhlYWRlciIp'@; put 'LFcmJlcuY2hpbGROb2Rlc1twZV0mJihXLmNoaWxkTm9kZXNbcGVdLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLFdvKFcuY2hpbGROb2Rlc1twZV0sImhpZGRlbkhlYWRlciIpKSxmJiZpZSYmaWUuY2hpbGROb2Rlc1twZV0mJihpZS5jaGlsZE5vZGVzW3BlXS5yZW1vdmVBdHRyaWJ1dGUo'@; put 'ImNvbHNwYW4iKSxXbyhpZS5jaGlsZE5vZGVzW3BlXSwiaGlkZGVuSGVhZGVyIikpfX1oZWFkZXJSZW5kZXJlckZhY3RvcnkobCl7dmFyIGE9dGhpcztjb25zdCBkPXRoaXMuaG90LnZpZXcuX3d0LmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik7cmV0dXJuKGgsZik9Pnt2YXIgXztj'@; put 'b25zdHtjb2x1bW5JbmRleE1hcHBlcjpULHZpZXc6V309dGhpcy5ob3Q7bGV0IGllPVQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChoKTtudWxsPT09aWUmJihpZT1oKSxmLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLFdvKGYsImhpZGRlbkhlYWRlciIpO2NvbnN0e2NvbHNwYW46'@; put 'cGUsaXNIaWRkZW46d2UsaXNQbGFjZWhvbGRlcjpFZX09bnVsbCE9PShfPVNsKHRoaXMsUWwpLmdldEhlYWRlclNldHRpbmdzKGwsaWUpKSYmdm9pZCAwIT09Xz9fOntsYWJlbDoiIn07aWYoRWV8fHdlKXBpKGYsImhpZGRlbkhlYWRlciIpO2Vsc2UgaWYocGU+MSl7dmFyIFplLGl0O2NvbnN0'@; put 'e3d0T3ZlcmxheXM6ZXR9PVcuX3d0LHl0PW51bGw9PT0oWmU9ZXQudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5KXx8dm9pZCAwPT09WmU/dm9pZCAwOlplLmNsb25lLnd0VGFibGUuVEhFQUQuY29udGFpbnMoZiksRXQ9bnVsbD09PShpdD1ldC5pbmxpbmVTdGFydE92ZXJsYXkpfHx2b2lk'@; put 'IDA9PT1pdD92b2lkIDA6aXQuY2xvbmUud3RUYWJsZS5USEVBRC5jb250YWlucyhmKSxTdD15dHx8RXQ/TWF0aC5taW4ocGUsZC1oKTpwZTtTdD4xJiZmLnNldEF0dHJpYnV0ZSgiY29sc3BhbiIsU3QpfXRoaXMuaG90LnZpZXcuYXBwZW5kQ29sSGVhZGVyKGllLGYsZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gYS5nZXRDb2x1bW5IZWFkZXJWYWx1ZSguLi5hcmd1bWVudHMpfSxsKX19Z2V0Q29sdW1uSGVhZGVyVmFsdWUobCxhKXt2YXIgZDtjb25zdHtpc0hpZGRlbjpoLGlzUGxhY2Vob2xkZXI6Zn09bnVsbCE9PShkPVNsKHRoaXMsUWwpLmdldEhlYWRlclNldHRpbmdzKGEsbCkpJiZ2b2lkIDAh'@; put 'PT1kP2Q6e307cmV0dXJuIGZ8fGg/IiI6dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKGwsYSl9b25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXIobCxhLGQpe2NvbnN0IGg9U2wodGhpcyxRbCkuZ2V0SGVhZGVyVHJlZU5vZGVEYXRhKGEsbCk7aWYoIWgpcmV0dXJuIGw7Y29uc3R7Y2xhc3NO'@; put 'YW1lczpmLGNvbHVtbkN1cnNvcjpfLHNlbGVjdGlvblR5cGU6VCxzZWxlY3Rpb25XaWR0aDpXfT1kLHtpc1Jvb3Q6aWUsY29sc3BhbjpwZX09U2wodGhpcyxRbCkuZ2V0SGVhZGVyU2V0dGluZ3MoYSxsKTtpZihUPT09eXkpe2lmKCFpZSlyZXR1cm4gaC5jb2x1bW5JbmRleH1lbHNlIFQ9PT1Q'@; put 'ayYmKHBlPlctX3x8IWllKSYmKGYubGVuZ3RoPTApO3JldHVybiBsfW9uQmVmb3JlQ29weShsLGEsZCl7bGV0e2NvbHVtbkhlYWRlcnNDb3VudDpofT1kO2lmKDAhPT1oKWZvcihsZXQgXz0wO188YS5sZW5ndGg7XysrKXtjb25zdHtzdGFydFJvdzpULHN0YXJ0Q29sOlcsZW5kUm93OmllLGVu'@; put 'ZENvbDpwZX09YVtfXSx3ZT1pZS1UKzE7aWYoVD49MHx8MT09Vy1wZSsxKWJyZWFrO2ZvcihsZXQgWmU9VztaZTw9cGU7WmUrKylmb3IobGV0IGl0PVQ7aXQ8PWllO2l0Kyspe3ZhciBmO2NvbnN0IGV0PXdlK2l0LHl0PVplLVc7MCE9PXl0JiYhMT09PShudWxsPT09KGY9U2wodGhpcyxRbCku'@; put 'Z2V0SGVhZGVyVHJlZU5vZGVEYXRhKGl0LFplKSl8fHZvaWQgMD09PWY/dm9pZCAwOmYuaXNSb290KSYmKGxbZXRdW3l0XT0iIil9fX1vbkJlZm9yZU9uQ2VsbE1vdXNlRG93bihsLGEsZCxoKXt0aGlzLl9nZXRIZWFkZXJUcmVlTm9kZURhdGFCeUNvb3JkcyhhKSYmKGguY29sdW1uPSEwKX1v'@; put 'bkFmdGVyT25DZWxsTW91c2VEb3duKGwsYSl7Y29uc3QgZD10aGlzLl9nZXRIZWFkZXJUcmVlTm9kZURhdGFCeUNvb3JkcyhhKTtpZighZClyZXR1cm47Y29uc3R7c2VsZWN0aW9uOmh9PXRoaXMuaG90LGY9aC5pc1NlbGVjdGVkKCk/aC5nZXRTZWxlY3RlZFJhbmdlKCkuY3VycmVudCgpOm51'@; put 'bGwsXz1bXSx7Y29sdW1uSW5kZXg6VCxvcmlnQ29sc3BhbjpXfT1kLGllPSFoLmluSW5TZWxlY3Rpb24oYSk7bC5zaGlmdEtleSYmZj9hLmNvbDxmLmZyb20uY29sP18ucHVzaChmLmdldFRvcEVuZENvcm5lcigpLmNvbCxULGEucm93KTpfLnB1c2goYS5jb2w+Zi5mcm9tLmNvbD9mLmdldFRv'@; put 'cFN0YXJ0Q29ybmVyKCkuY29sOlQsVCtXLTEsYS5yb3cpOihmayhsKXx8VXAobCkmJmllKSYmXy5wdXNoKFQsVCtXLTEsYS5yb3cpLGguc2VsZWN0Q29sdW1ucyguLi5fKX1vbkJlZm9yZU9uQ2VsbE1vdXNlT3ZlcihsLGEsZCxoKXtpZighdGhpcy5ob3Qudmlldy5pc01vdXNlRG93bigpKXJl'@; put 'dHVybjtjb25zdCBmPXRoaXMuX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRzKGEpO2lmKCFmKXJldHVybjtjb25zdHtjb2x1bW5JbmRleDpfLG9yaWdDb2xzcGFuOlR9PWYsVz10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGllPVcuZ2V0VG9wU3RhcnRDb3JuZXIoKSxwZT1X'@; put 'LmdldEJvdHRvbUVuZENvcm5lcigpLHtmcm9tOndlfT1XO2guY29sdW1uPSEwLGguY2VsbD0hMDtjb25zdCBFZT1bXTthLmNvbDx3ZS5jb2w/RWUucHVzaChwZS5jb2wsXyk6RWUucHVzaChhLmNvbD53ZS5jb2w/aWUuY29sOl8sXytULTEpLHRoaXMuaG90LnNlbGVjdENvbHVtbnMoLi4uRWUp'@; put 'fW9uQWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnMobCl7bC5sZW5ndGg9MDtmb3IobGV0IGE9MDthPFNsKHRoaXMsUWwpLmdldExheWVyc0NvdW50KCk7YSsrKWwucHVzaCh0aGlzLmhlYWRlclJlbmRlcmVyRmFjdG9yeShhKSl9b25BZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92'@; put 'ZXJyaWRlKGwpe2NvbnN0IGE9U2wodGhpcyxRbCkuZ2V0TGF5ZXJzQ291bnQoKTtsZXQgZD1sLnN0YXJ0Q29sdW1uLGg9ISFhO2ZvcihsZXQgZj0wO2Y8YTtmKyspe2NvbnN0IF89U2wodGhpcyxRbCkuZmluZExlZnRNb3N0Q29sdW1uSW5kZXgoZixsLnN0YXJ0Q29sdW1uKSxUPXRoaXMuaG90'@; put 'LmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoXyk7aWYoXz49MCYmKGg9ITEpLEd1KFQpJiZUPGwuc3RhcnRDb2x1bW4pe2Q9VDticmVha319bC5zdGFydENvbHVtbj1oP1NsKHRoaXMsUWwpLmdldEhlYWRlclRyZWVOb2RlRGF0YSgwLGQpLmNvbHVtbklu'@; put 'ZGV4OmR9b25Nb2RpZnlDb2xXaWR0aChsLGEpe2NvbnN0IGQ9dGhpcy5naG9zdFRhYmxlLmdldFdpZHRoKGEpO3JldHVybiBsPmQ/bDpkfW9uTW9kaWZ5Q29sdW1uSGVhZGVyVmFsdWUobCxhLGQpe3ZhciBoO2NvbnN0e2xhYmVsOmZ9PW51bGwhPT0oaD1TbCh0aGlzLFFsKS5nZXRIZWFkZXJU'@; put 'cmVlTm9kZURhdGEoZCxhKSkmJnZvaWQgMCE9PWg/aDp7bGFiZWw6IiJ9O3JldHVybiBmfW9uSW5pdCgpe3RoaXMudXBkYXRlUGx1Z2luKCl9b25BZnRlckxvYWREYXRhKGwsYSl7YXx8dGhpcy51cGRhdGVQbHVnaW4oKX1kZXN0cm95KCl7akEodGhpcyxRbCxudWxsKSxudWxsIT09U2wodGhp'@; put 'cyxzNCkmJihTbCh0aGlzLHM0KS51bnN1YnNjcmliZSgpLGpBKHRoaXMsczQsbnVsbCkpLHN1cGVyLmRlc3Ryb3koKX1fZ2V0SGVhZGVyVHJlZU5vZGVEYXRhQnlDb29yZHMobCl7aWYoIShsLnJvdz49MHx8bC5jb2w8MCkpcmV0dXJuIFNsKHRoaXMsUWwpLmdldEhlYWRlclRyZWVOb2RlRGF0'@; put 'YShsLnJvdyxsLmNvbCl9fWNvbnN0IFJ6PWNsYXNzIHNOZXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuaG90PWEsdGhpcy5wbHVnaW49bH19O2NsYXNzIFFmIGV4dGVuZHMgUnp7c3RhdGljIGdldCBDU1NfQ0xBU1NFUygpe3JldHVybntpbmRpY2F0b3JDb250YWluZXI6Imh0X25lc3RpbmdMZXZl'@; put 'bHMiLHBhcmVudDoiaHRfbmVzdGluZ1BhcmVudCIsaW5kaWNhdG9yOiJodF9uZXN0aW5nTGV2ZWwiLGVtcHR5SW5kaWNhdG9yOiJodF9uZXN0aW5nTGV2ZWxfZW1wdHkiLGJ1dHRvbjoiaHRfbmVzdGluZ0J1dHRvbiIsZXhwYW5kQnV0dG9uOiJodF9uZXN0aW5nRXhwYW5kIixjb2xsYXBzZUJ1'@; put 'dHRvbjoiaHRfbmVzdGluZ0NvbGxhcHNlIn19Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLGEpLHRoaXMuZGF0YU1hbmFnZXI9dGhpcy5wbHVnaW4uZGF0YU1hbmFnZXIsdGhpcy5jb2xsYXBzaW5nVUk9dGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJLHRoaXMucm93SGVhZGVyV2lkdGhDYWNoZT1u'@; put 'dWxsfWFwcGVuZExldmVsSW5kaWNhdG9ycyhsLGEpe2NvbnN0IGQ9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhsKSxoPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93TGV2ZWwoZCksZj10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QoZCksXz1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJESVYi'@; put 'KVswXSxUPV8ucXVlcnlTZWxlY3Rvcigic3Bhbi5yb3dIZWFkZXIiKTtpZihEbihfLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tjbGFzc149Imh0X25lc3RpbmciXScpLGllPT57aWUmJl8ucmVtb3ZlQ2hpbGQoaWUpfSkscGkoYSxRZi5DU1NfQ0xBU1NFUy5pbmRpY2F0b3JDb250YWluZXIpLGgpe2Nv'@; put 'bnN0e3Jvb3REb2N1bWVudDppZX09dGhpcy5ob3QscGU9VC5jbG9uZU5vZGUoITApO18uaW5uZXJIVE1MPSIiLHZvKDAsaC0xLCgpPT57Y29uc3Qgd2U9aWUuY3JlYXRlRWxlbWVudCgiU1BBTiIpO3BpKHdlLFFmLkNTU19DTEFTU0VTLmVtcHR5SW5kaWNhdG9yKSxfLmFwcGVuZENoaWxkKHdl'@; put 'KX0pLF8uYXBwZW5kQ2hpbGQocGUpfWlmKHRoaXMuZGF0YU1hbmFnZXIuaGFzQ2hpbGRyZW4oZikpe2NvbnN0IGllPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTtwaShhLFFmLkNTU19DTEFTU0VTLnBhcmVudCksdGhpcy5jb2xsYXBzaW5nVUkuYXJlQ2hpbGRy'@; put 'ZW5Db2xsYXBzZWQoZCk/cGkoaWUsYCR7UWYuQ1NTX0NMQVNTRVMuYnV0dG9ufSAke1FmLkNTU19DTEFTU0VTLmV4cGFuZEJ1dHRvbn1gKTpwaShpZSxgJHtRZi5DU1NfQ0xBU1NFUy5idXR0b259ICR7UWYuQ1NTX0NMQVNTRVMuY29sbGFwc2VCdXR0b259YCksXy5hcHBlbmRDaGlsZChpZSl9'@; put 'fXVwZGF0ZVJvd0hlYWRlcldpZHRoKGwpe2xldCBhPWw7YXx8KGE9dGhpcy5kYXRhTWFuYWdlci5jYWNoZS5sZXZlbENvdW50KSx0aGlzLnJvd0hlYWRlcldpZHRoQ2FjaGU9TWF0aC5tYXgoNTAsMTErMTAqYSsyNSksdGhpcy5ob3QucmVuZGVyKCl9fWNvbnN0IGtvZT1RZixsTmU9Y2xhc3Mg'@; put 'YU5lIGV4dGVuZHMgUnp7Y29uc3RydWN0b3IobCxhKXt2YXIgZDtzdXBlcihsLGEpLGQ9dGhpcyx0aGlzLmRhdGFNYW5hZ2VyPXRoaXMucGx1Z2luLmRhdGFNYW5hZ2VyLHRoaXMuY29sbGFwc2VkUm93cz1bXSx0aGlzLmNvbGxhcHNlZFJvd3NTdGFzaD17c3Rhc2g6ZnVuY3Rpb24oKXtsZXQg'@; put 'aD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2QubGFzdENvbGxhcHNlZFJvd3M9ZC5jb2xsYXBzZWRSb3dzLnNsaWNlKDApLGQuZXhwYW5kTXVsdGlwbGVDaGlsZHJlbihkLmxhc3RDb2xsYXBzZWRSb3dzLGgpfSxzaGlmdFN0YXNoOmZ1'@; put 'bmN0aW9uKGgsZil7bGV0IF89YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjE7bnVsbD09ZiYmKGY9MS8wKSxEbihkLmxhc3RDb2xsYXBzZWRSb3dzLChULFcpPT57VD49aCYmVDxmJiYoZC5sYXN0Q29sbGFwc2VkUm93c1tXXT1UK18pfSl9'@; put 'LGFwcGx5U3Rhc2g6ZnVuY3Rpb24oKXtkLmNvbGxhcHNlTXVsdGlwbGVDaGlsZHJlbihkLmxhc3RDb2xsYXBzZWRSb3dzLCEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0pLGQubGFzdENvbGxhcHNlZFJvd3M9dm9pZCAwfSx0cmltU3Rh'@; put 'c2g6KGgsZik9Pnt2byhoLGgrZi0xLF89Pntjb25zdCBUPXRoaXMubGFzdENvbGxhcHNlZFJvd3MuaW5kZXhPZihfKTtUPi0xJiZ0aGlzLmxhc3RDb2xsYXBzZWRSb3dzLnNwbGljZShULDEpfSl9fX1jb2xsYXBzZUNoaWxkcmVuKGwpe2xldCBhPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lk'@; put 'IDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sZD0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2NvbnN0IGg9W107bGV0IGY9bnVsbCxfPW51bGwsVD1udWxsO3JldHVybiBpc05hTihsKT8oZj1sLF89dGhpcy5kYXRhTWFu'@; put 'YWdlci5nZXRSb3dJbmRleChmKSk6KGY9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGwpLF89bCksdGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihmKSYmRG4oZi5fX2NoaWxkcmVuLFc9PntoLnB1c2godGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChXKSl9KSxUPXRoaXMu'@; put 'Y29sbGFwc2VSb3dzKGgsITAsITEpLGQmJnRoaXMudHJpbVJvd3MoVCksYSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKSwtMT09PXRoaXMuY29sbGFwc2VkUm93cy5pbmRleE9mKF8pJiZ0aGlzLmNvbGxhcHNlZFJvd3MucHVzaChfKSxUfWNvbGxhcHNlTXVsdGlwbGVDaGlsZHJlbihsKXtsZXQg'@; put 'YT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGQ9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXTtjb25zdCBoPVtdO0RuKGwsZj0+e2gucHVzaCguLi50aGlzLmNvbGxhcHNl'@; put 'Q2hpbGRyZW4oZiwhMSwhMSkpfSksZCYmdGhpcy50cmltUm93cyhoKSxhJiZ0aGlzLnJlbmRlckFuZEFkanVzdCgpfWNvbGxhcHNlUm93KGwpe3RoaXMuY29sbGFwc2VSb3dzKFtsXSwhKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdKX1j'@; put 'b2xsYXBzZVJvd3MobCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07Y29uc3QgaD1bXTtyZXR1cm4gRG4obCxmPT57'@; put 'aC5wdXNoKGYpLGEmJnRoaXMuY29sbGFwc2VDaGlsZFJvd3MoZixoKX0pLGQmJnRoaXMudHJpbVJvd3MoaCksaH1jb2xsYXBzZUNoaWxkUm93cyhsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saD1hcmd1bWVudHMubGVu'@; put 'Z3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO3RoaXMuZGF0YU1hbmFnZXIuaGFzQ2hpbGRyZW4obCkmJkRuKHRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdChsKS5fX2NoaWxkcmVuLF89Pntjb25zdCBUPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgo'@; put 'Xyk7YS5wdXNoKFQpLHRoaXMuY29sbGFwc2VDaGlsZFJvd3MoVCxhKX0pLGgmJnRoaXMudHJpbVJvd3MoYSl9ZXhwYW5kUm93KGwpe3RoaXMuZXhwYW5kUm93cyhbbF0sIShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSl9ZXhwYW5kUm93'@; put 'cyhsKXtsZXQgYT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtjb25zdCBoPVtdO3JldHVybiBEbihsLGY9PntoLnB1c2goZiks'@; put 'YSYmdGhpcy5leHBhbmRDaGlsZFJvd3MoZixoKX0pLGQmJnRoaXMudW50cmltUm93cyhoKSxofWV4cGFuZENoaWxkUm93cyhsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQg'@; put 'MCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO3RoaXMuZGF0YU1hbmFnZXIuaGFzQ2hpbGRyZW4obCkmJkRuKHRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdChsKS5fX2NoaWxkcmVuLF89PntpZighdGhpcy5pc0FueVBhcmVudENvbGxhcHNlZChfKSl7Y29uc3QgVD10aGlzLmRh'@; put 'dGFNYW5hZ2VyLmdldFJvd0luZGV4KF8pO2EucHVzaChUKSx0aGlzLmV4cGFuZENoaWxkUm93cyhULGEpfX0pLGgmJnRoaXMudW50cmltUm93cyhhKX1leHBhbmRDaGlsZHJlbihsKXtsZXQgYT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRz'@; put 'WzFdLGQ9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXTtjb25zdCBoPVtdO2xldCBmPW51bGwsXz1udWxsLFQ9bnVsbDtyZXR1cm4gaXNOYU4obCk/KGY9bCxfPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgobCkpOihmPXRoaXMu'@; put 'ZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdChsKSxfPWwpLHRoaXMuY29sbGFwc2VkUm93cy5zcGxpY2UodGhpcy5jb2xsYXBzZWRSb3dzLmluZGV4T2YoXyksMSksdGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihmKSYmRG4oZi5fX2NoaWxkcmVuLFc9Pntjb25zdCBpZT10aGlzLmRhdGFN'@; put 'YW5hZ2VyLmdldFJvd0luZGV4KFcpO2gucHVzaChpZSl9KSxUPXRoaXMuZXhwYW5kUm93cyhoLCEwLCExKSxkJiZ0aGlzLnVudHJpbVJvd3MoVCksYSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKSxUfWV4cGFuZE11bHRpcGxlQ2hpbGRyZW4obCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEm'@; put 'JnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxkPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07Y29uc3QgaD1bXTtEbihsLGY9PntoLnB1c2goLi4udGhpcy5leHBhbmRDaGlsZHJlbihmLCExLCExKSl9KSxkJiZ0'@; put 'aGlzLnVudHJpbVJvd3MoaCksYSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKX1jb2xsYXBzZUFsbCgpe2NvbnN0IGw9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCksYT1bXTtEbihsLGQ9Pnt0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGQpJiZhLnB1c2goZCl9KSx0aGlzLmNvbGxhcHNl'@; put 'TXVsdGlwbGVDaGlsZHJlbihhKSx0aGlzLnJlbmRlckFuZEFkanVzdCgpfWV4cGFuZEFsbCgpe2NvbnN0IGw9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCksYT1bXTtEbihsLGQ9Pnt0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGQpJiZhLnB1c2goZCl9KSx0aGlzLmV4cGFuZE11bHRp'@; put 'cGxlQ2hpbGRyZW4oYSksdGhpcy5yZW5kZXJBbmRBZGp1c3QoKX10cmltUm93cyhsKXt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e0RuKGwsYT0+e3RoaXMucGx1Z2luLmNvbGxhcHNlZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KGEsITApfSl9LCEwKX11bnRyaW1Sb3dzKGwpe3RoaXMu'@; put 'aG90LmJhdGNoRXhlY3V0aW9uKCgpPT57RG4obCxhPT57dGhpcy5wbHVnaW4uY29sbGFwc2VkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoYSwhMSl9KX0sITApfWFyZUNoaWxkcmVuQ29sbGFwc2VkKGwpe2xldCBhPWlzTmFOKGwpP2w6dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGwp'@; put 'LGQ9ITA7cmV0dXJuIG51bGw9PT1hJiYoYT17X19jaGlsZHJlbjp0aGlzLmRhdGFNYW5hZ2VyLmRhdGF9KSx0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGEpJiZEbihhLl9fY2hpbGRyZW4saD0+e2NvbnN0IGY9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChoKTtpZighdGhpcy5w'@; put 'bHVnaW4uY29sbGFwc2VkUm93c01hcC5nZXRWYWx1ZUF0SW5kZXgoZikpcmV0dXJuIGQ9ITEsITF9KSxkfWlzQW55UGFyZW50Q29sbGFwc2VkKGwpe2xldCBhPWw7Zm9yKDtudWxsIT09YTspe2E9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQoYSk7Y29uc3QgZD10aGlzLmRhdGFNYW5h'@; put 'Z2VyLmdldFJvd0luZGV4KGEpO2lmKHRoaXMuY29sbGFwc2VkUm93cy5pbmRleE9mKGQpPi0xKXJldHVybiEwfXJldHVybiExfXRvZ2dsZVN0YXRlKGwsYSl7aWYoYS5jb2w+PTApcmV0dXJuO2NvbnN0IGQ9dGhpcy50cmFuc2xhdGVUcmltbWVkUm93KGEucm93KTtCbyhsLnRhcmdldCxrb2Uu'@; put 'Q1NTX0NMQVNTRVMuYnV0dG9uKSYmKHRoaXMuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoZCk/dGhpcy5leHBhbmRDaGlsZHJlbihkKTp0aGlzLmNvbGxhcHNlQ2hpbGRyZW4oZCksdjIobCkpfXRyYW5zbGF0ZVRyaW1tZWRSb3cobCl7cmV0dXJuIHRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCl9dW50'@; put 'cmFuc2xhdGVUcmltbWVkUm93KGwpe3JldHVybiB0aGlzLmhvdC50b1Zpc3VhbFJvdyhsKX1yZW5kZXJBbmRBZGp1c3QoKXt0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfX0sQW9lPW5ldyBXZWFrTWFwLHVOZT1jbGFzcyBjTmUgZXh0ZW5kcyBS'@; put 'entjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwsYSksQW9lLnNldCh0aGlzLHtyb3dfYWJvdmU6KGQsaCk9Pnt0aGlzLmRhdGFNYW5hZ2VyLmFkZFNpYmxpbmcoaFtoLmxlbmd0aC0xXS5zdGFydC5yb3csImFib3ZlIil9LHJvd19iZWxvdzooZCxoKT0+e3RoaXMuZGF0YU1hbmFnZXIuYWRkU2li'@; put 'bGluZyhoW2gubGVuZ3RoLTFdLnN0YXJ0LnJvdywiYmVsb3ciKX19KSx0aGlzLmRhdGFNYW5hZ2VyPXRoaXMucGx1Z2luLmRhdGFNYW5hZ2VyfWFwcGVuZE9wdGlvbnMobCl7Y29uc3QgYT1be2tleToiYWRkX2NoaWxkIixuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShu'@; put 'Qil9LGNhbGxiYWNrOigpPT57Y29uc3QgZD10aGlzLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1tZWRSb3codGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KClbMF0pLGg9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGQpO3RoaXMuZGF0YU1hbmFnZXIuYWRkQ2hpbGQoaCl9LGRpc2Fi'@; put 'bGVkOigpPT57Y29uc3QgZD10aGlzLmhvdC5nZXRTZWxlY3RlZExhc3QoKTtyZXR1cm4hZHx8ZFswXTwwfHx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRoaXMuaG90LmNvdW50Um93cygpPj10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm1heFJvd3N9fSx7'@; put 'a2V5OiJkZXRhY2hfZnJvbV9wYXJlbnQiLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHJCKX0sY2FsbGJhY2s6KCk9Pnt0aGlzLmRhdGFNYW5hZ2VyLmRldGFjaEZyb21QYXJlbnQodGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCkpfSxkaXNhYmxlZDooKT0+e2NvbnN0'@; put 'IGQ9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCksaD10aGlzLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1tZWRSb3coZFswXSk7cmV0dXJuIXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KGgpfHwhZHx8ZFswXTwwfHx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1u'@; put 'SGVhZGVyKCl8fHRoaXMuaG90LmNvdW50Um93cygpPj10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm1heFJvd3N9fSx7bmFtZToiLS0tLS0tLS0tIn1dO3JldHVybiB2bygwLGwuaXRlbXMubGVuZ3RoLTEsZD0+e2lmKDA9PT1kKXJldHVybiBEbihhLChoLGYpPT57bC5pdGVtcy5zcGxpY2UoZCtm'@; put 'LDAsaCl9KSwhMX0pLHRoaXMubW9kaWZ5Um93SW5zZXJ0aW5nT3B0aW9ucyhsKX1tb2RpZnlSb3dJbnNlcnRpbmdPcHRpb25zKGwpe2NvbnN0IGE9QW9lLmdldCh0aGlzKTtyZXR1cm4gdm8oMCxsLml0ZW1zLmxlbmd0aC0xLGQ9Pntjb25zdCBoPWFbbC5pdGVtc1tkXS5rZXldO251bGwhPWgm'@; put 'JihsLml0ZW1zW2RdLmNhbGxiYWNrPWgpfSksbH19O2NsYXNzIGROZXtjb25zdHJ1Y3RvcihsKXt0aGlzLnBsdWdpbj1sLHRoaXMuaG90PWwuaG90LHRoaXMuZGF0YU1hbmFnZXI9bC5kYXRhTWFuYWdlcix0aGlzLmNvbGxhcHNpbmdVST1sLmNvbGxhcHNpbmdVSX1vbkJlZm9yZVJvd01vdmUo'@; put 'bCxhLGQsaCl7aWYodGhpcy5kaXNwbGF5QVBJQ29tcGF0aWJpbGl0eVdhcm5pbmcoe3Jvd3M6bCxmaW5hbEluZGV4OmEsZHJvcEluZGV4OmQsbW92ZVBvc3NpYmxlOmh9KSlyZXR1cm4hMTt0aGlzLm1vdmVkVG9Db2xsYXBzZWQ9ITE7Y29uc3QgXz1kPT09dGhpcy5ob3QuY291bnRSb3dzKCks'@; put 'VD1fP3RoaXMuaG90LmNvdW50U291cmNlUm93cygpOnRoaXMuZGF0YU1hbmFnZXIudHJhbnNsYXRlVHJpbW1lZFJvdyhkKTtsZXQgVz0hMDtjb25zdCBpZT1sLm1hcChpdD0+e2lmKCFXKXJldHVybiExO2NvbnN0IGV0PXRoaXMuZGF0YU1hbmFnZXIudHJhbnNsYXRlVHJpbW1lZFJvdyhpdCk7'@; put 'cmV0dXJuIFc9dGhpcy5zaG91bGRBbGxvd01vdmluZyhldCxUKSxldH0pLHBlPS0xPT09aWUuaW5kZXhPZihUKTtpZighV3x8IXBlKXJldHVybiExO2NvbnN0IHdlPXRoaXMuZ2V0QmFzZVBhcmVudChpZSksRWU9dGhpcy5nZXRUYXJnZXRQYXJlbnQoXyxUKSxaZT13ZT09PUVlO3JldHVybiB0'@; put 'aGlzLm1vdmVkVG9Db2xsYXBzZWQ9dGhpcy5jb2xsYXBzaW5nVUkuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoRWUpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpLHRoaXMuc2hpZnRDb2xsYXBzaWJsZVBhcmVudHNMb2NhdGlvbnMoaWUsVCxaZSksdGhpcy5tb3Zl'@; put 'Um93cyhpZSxULEVlKSx0aGlzLmRhdGFNYW5hZ2VyLnJld3JpdGVDYWNoZSgpLHRoaXMubW92ZUNlbGxzTWV0YShpZSxUKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guYXBwbHlTdGFzaCghMSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUm93TW92ZSIsbCxhLGQsaCxo'@; put 'JiZ0aGlzLmlzUm93T3JkZXJDaGFuZ2VkKGwsYSkpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuc2VsZWN0Q2VsbHMobCxkKSwhMX1kaXNwbGF5QVBJQ29tcGF0aWJpbGl0eVdhcm5pbmcobCl7Y29uc3R7cm93czphLGZpbmFsSW5kZXg6ZCxkcm9wSW5kZXg6aCxtb3ZlUG9zc2libGU6Zn09bDts'@; put 'ZXQgXz0hMTtyZXR1cm4gTGEoaCkmJihHYShBYWBTaW5jZSB2ZXJzaW9uIDguMC4wIG9mIHRoZSBIYW5kc29udGFibGUgdGhlICdtb3ZlUm93cycgbWV0aG9kIGlzbid0IHVzZWQgZm9yIG1vdmluZyByb3dzXHgyMAogICAgICB3aGVuIHRoZSBOZXN0ZWRSb3dzIHBsdWdpbiBpcyBlbmFibGVk'@; put 'LiBQbGVhc2UgdXNlIHRoZSAnZHJhZ1Jvd3MnIG1ldGhvZCBpbnN0ZWFkLmApLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclJvd01vdmUiLGEsZCxoLGYsITEpLF89ITApLF99c2hvdWxkQWxsb3dNb3ZpbmcobCxhKXtyZXR1cm4hKHRoaXMuZGF0YU1hbmFnZXIuaXNQYXJlbnQobCl8fHRoaXMu'@; put 'ZGF0YU1hbmFnZXIuaXNSb3dIaWdoZXN0TGV2ZWwobCl8fGw9PT1hfHwwPT09YSl9Z2V0QmFzZVBhcmVudChsKXtyZXR1cm4gdGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQobFswXSl9Z2V0VGFyZ2V0UGFyZW50KGwsYSl7bGV0IGQ9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQo'@; put 'bD9hLTE6YSk7cmV0dXJuIG51bGw9PWQmJihkPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KGEtMSkpLGR9c2hpZnRDb2xsYXBzaWJsZVBhcmVudHNMb2NhdGlvbnMobCxhLGQpe2R8fChNYXRoLm1heCguLi5sKTw9YT90aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2gu'@; put 'c2hpZnRTdGFzaChsWzBdLGEsLTEqbC5sZW5ndGgpOnRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKGEsbFswXSxsLmxlbmd0aCkpfW1vdmVSb3dzKGwsYSxkKXtjb25zdCBoPWE9PT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KGQpK3RoaXMuZGF0'@; put 'YU1hbmFnZXIuY291bnRDaGlsZHJlbihkKSsxO3RoaXMuaG90LmJhdGNoUmVuZGVyKCgpPT57bC5mb3JFYWNoKGY9Pnt0aGlzLmRhdGFNYW5hZ2VyLm1vdmVSb3coZixhLHRoaXMubW92ZWRUb0NvbGxhcHNlZCxoKX0pfSl9bW92ZUNlbGxzTWV0YShsLGEpe2NvbnN0IGQ9W10saD1NYXRoLm1h'@; put 'eCguLi5sKTxhO2wuZm9yRWFjaChmPT57ZC5wdXNoKHRoaXMuaG90LmdldENlbGxNZXRhQXRSb3coZikpfSksdGhpcy5ob3Quc3BsaWNlQ2VsbHNNZXRhKGxbMF0sbC5sZW5ndGgpLHRoaXMuaG90LnNwbGljZUNlbGxzTWV0YShhLShoP2QubGVuZ3RoOjApLDAsLi4uZCl9c2VsZWN0Q2VsbHMo'@; put 'bCxhKXtjb25zdCBkPWwubGVuZ3RoO2xldCBoPTAsZj0wLF89bnVsbCxUPW51bGw7aWYodGhpcy5tb3ZlZFRvQ29sbGFwc2VkKXtsZXQgVz1udWxsO1c9dGhpcy5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGxbZC0xXTxhP2EtZDphKTtjb25zdCBpZT10aGlzLmRhdGFNYW5hZ2Vy'@; put 'LmdldFJvd1BhcmVudChudWxsPT09Vz90aGlzLmhvdC5jb3VudFNvdXJjZVJvd3MoKS0xOlctMSkscGU9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChpZSk7aD10aGlzLmRhdGFNYW5hZ2VyLnVudHJhbnNsYXRlVHJpbW1lZFJvdyhwZSksZj1ofWVsc2UgbFtkLTFdPGE/KGY9YS0xLGg9'@; put 'Zi1kKzEpOihoPWEsZj1oK2QtMSk7Xz10aGlzLmhvdC5zZWxlY3Rpb24sVD10aGlzLmhvdC5jb3VudENvbHMoKS0xLF8uc2V0UmFuZ2VTdGFydCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLDApKSxfLnNldFJhbmdlRW5kKHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGYsVCksITAp'@; put 'fWlzUm93T3JkZXJDaGFuZ2VkKGwsYSl7cmV0dXJuIGwuc29tZSgoZCxoKT0+ZC1oIT09YSl9fWNvbnN0IE96PSJuZXN0ZWRSb3dzIixlMz1uZXcgV2Vha01hcDtjbGFzcyBwTmUgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gT3p9c3RhdGljIGdldCBQTFVHSU5f'@; put 'UFJJT1JJVFkoKXtyZXR1cm4gMzAwfWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLHRoaXMuZGF0YU1hbmFnZXI9bnVsbCx0aGlzLmhlYWRlcnNVST1udWxsLHRoaXMuY29sbGFwc2VkUm93c01hcD1udWxsLGUzLnNldCh0aGlzLHttb3ZlZFRvQ29sbGFwc2VkOiExLHNraXBSZW5kZXI6bnVsbCxz'@; put 'a2lwQ29yZUFQSU1vZGlmaWVyczohMX0pfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtPel19ZW5hYmxlUGx1Z2luKCl7dmFyIGw9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmNvbGxhcHNlZFJvd3NNYXA9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0'@; put 'ZXJNYXAoIm5lc3RlZFJvd3MiLG5ldyBteSksdGhpcy5kYXRhTWFuYWdlcj1uZXcgY2xhc3MgaU5le2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5ob3Q9YSx0aGlzLmRhdGE9bnVsbCx0aGlzLnBsdWdpbj1sLHRoaXMucGFyZW50UmVmZXJlbmNlPW5ldyBXZWFrTWFwLHRoaXMuY2FjaGU9e2xldmVs'@; put 'czpbXSxsZXZlbENvdW50OjAscm93czpbXSxub2RlSW5mbzpuZXcgV2Vha01hcH19c2V0RGF0YShsKXt0aGlzLmRhdGE9bH1nZXREYXRhKCl7cmV0dXJuIHRoaXMuZGF0YX1nZXRSYXdTb3VyY2VEYXRhKCl7bGV0IGw9bnVsbDtyZXR1cm4gdGhpcy5wbHVnaW4uZGlzYWJsZUNvcmVBUElNb2Rp'@; put 'ZmllcnMoKSxsPXRoaXMuaG90LmdldFNvdXJjZURhdGEoKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksbH11cGRhdGVXaXRoRGF0YShsKXt0aGlzLnNldERhdGEobCksdGhpcy5yZXdyaXRlQ2FjaGUoKX1yZXdyaXRlQ2FjaGUoKXt0aGlzLmNhY2hlPXtsZXZlbHM6W10s'@; put 'bGV2ZWxDb3VudDowLHJvd3M6W10sbm9kZUluZm86bmV3IFdlYWtNYXB9LHZvKDAsdGhpcy5kYXRhLmxlbmd0aC0xLGw9Pnt0aGlzLmNhY2hlTm9kZSh0aGlzLmRhdGFbbF0sMCxudWxsKX0pfWNhY2hlTm9kZShsLGEsZCl7dGhpcy5jYWNoZS5sZXZlbHNbYV18fCh0aGlzLmNhY2hlLmxldmVs'@; put 'c1thXT1bXSx0aGlzLmNhY2hlLmxldmVsQ291bnQrPTEpLHRoaXMuY2FjaGUubGV2ZWxzW2FdLnB1c2gobCksdGhpcy5jYWNoZS5yb3dzLnB1c2gobCksdGhpcy5jYWNoZS5ub2RlSW5mby5zZXQobCx7cGFyZW50OmQscm93OnRoaXMuY2FjaGUucm93cy5sZW5ndGgtMSxsZXZlbDphfSksdGhp'@; put 'cy5oYXNDaGlsZHJlbihsKSYmRG4obC5fX2NoaWxkcmVuLGg9Pnt0aGlzLmNhY2hlTm9kZShoLGErMSxsKX0pfWdldERhdGFPYmplY3QobCl7cmV0dXJuIG51bGw9PWw/bnVsbDp0aGlzLmNhY2hlLnJvd3NbbF19cmVhZFRyZWVOb2RlcyhsLGEsZCxoKXtsZXQgZj0hMSxfPWE7aWYoaXNOYU4o'@; put 'XykmJl8uZW5kKXJldHVybiBfO2xldCBUPWw7cmV0dXJuIFR8fChUPXtfX2NoaWxkcmVuOnRoaXMuZGF0YX0sZj0hMCxfLT0xKSxudWxsIT1kJiZfPT09ZD97cmVzdWx0OlQsZW5kOiEwfTpudWxsIT1oJiZUPT09aD97cmVzdWx0Ol8sZW5kOiEwfTooXys9MSxULl9fY2hpbGRyZW4mJkRuKFQu'@; put 'X19jaGlsZHJlbixXPT57aWYodGhpcy5wYXJlbnRSZWZlcmVuY2Uuc2V0KFcsZj9udWxsOlQpLF89dGhpcy5yZWFkVHJlZU5vZGVzKFcsXyxkLGgpLGlzTmFOKF8pJiZfLmVuZClyZXR1cm4hMX0pLF8pfW1vY2tQYXJlbnQoKXtjb25zdCBsPXRoaXMubW9ja05vZGUoKTtyZXR1cm4gbC5fX2No'@; put 'aWxkcmVuPXRoaXMuZGF0YSxsfW1vY2tOb2RlKCl7Y29uc3QgbD17fTtyZXR1cm4gZHModGhpcy5kYXRhWzBdLChhLGQpPT57bFtkXT1udWxsfSksbH1nZXRSb3dJbmRleChsKXtyZXR1cm4gbnVsbD09bD9udWxsOnRoaXMuY2FjaGUubm9kZUluZm8uZ2V0KGwpLnJvd31nZXRSb3dJbmRleFdp'@; put 'dGhpblBhcmVudChsKXtsZXQgYT1udWxsO2E9aXNOYU4obCk/bDp0aGlzLmdldERhdGFPYmplY3QobCk7Y29uc3QgZD10aGlzLmdldFJvd1BhcmVudChsKTtyZXR1cm4gbnVsbD09ZD90aGlzLmRhdGEuaW5kZXhPZihhKTpkLl9fY2hpbGRyZW4uaW5kZXhPZihhKX1jb3VudEFsbFJvd3MoKXty'@; put 'ZXR1cm4gdGhpcy5jb3VudENoaWxkcmVuKHtfX2NoaWxkcmVuOnRoaXMuZGF0YX0pfWNvdW50Q2hpbGRyZW4obCl7bGV0IGE9MCxkPWw7cmV0dXJuIGlzTmFOKGQpfHwoZD10aGlzLmdldERhdGFPYmplY3QoZCkpLGQmJmQuX19jaGlsZHJlbj8oRG4oZC5fX2NoaWxkcmVuLGg9PnthKz0xLGgu'@; put 'X19jaGlsZHJlbiYmKGErPXRoaXMuY291bnRDaGlsZHJlbihoKSl9KSxhKTowfWdldFJvd1BhcmVudChsKXtsZXQgYTtyZXR1cm4gYT1pc05hTihsKT9sOnRoaXMuZ2V0RGF0YU9iamVjdChsKSx0aGlzLmdldFJvd09iamVjdFBhcmVudChhKX1nZXRSb3dPYmplY3RQYXJlbnQobCl7cmV0dXJu'@; put 'IGwmJiJvYmplY3QiPT10eXBlb2YgbD90aGlzLmNhY2hlLm5vZGVJbmZvLmdldChsKS5wYXJlbnQ6bnVsbH1nZXRSb3dMZXZlbChsKXtsZXQgYT1udWxsO3JldHVybiBhPWlzTmFOKGwpP2w6dGhpcy5nZXREYXRhT2JqZWN0KGwpLGE/dGhpcy5nZXRSb3dPYmplY3RMZXZlbChhKTpudWxsfWdl'@; put 'dFJvd09iamVjdExldmVsKGwpe3JldHVybiBudWxsPT1sP251bGw6dGhpcy5jYWNoZS5ub2RlSW5mby5nZXQobCkubGV2ZWx9aGFzQ2hpbGRyZW4obCl7bGV0IGE9bDtyZXR1cm4gaXNOYU4oYSl8fChhPXRoaXMuZ2V0RGF0YU9iamVjdChhKSksISghYS5fX2NoaWxkcmVufHwhYS5fX2NoaWxk'@; put 'cmVuLmxlbmd0aCl9aXNDaGlsZChsKXtyZXR1cm4gbnVsbCE9PXRoaXMuZ2V0Um93UGFyZW50KGwpfWdldENoaWxkKGwsYSl7dmFyIGQ7cmV0dXJuKG51bGw9PT0oZD1sLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT1kP3ZvaWQgMDpkW2FdKXx8bnVsbH1pc1Jvd0hpZ2hlc3RMZXZlbChsKXtyZXR1'@; put 'cm4hdGhpcy5pc0NoaWxkKGwpfWlzUGFyZW50KGwpe3ZhciBhO2xldCBkPWw7cmV0dXJuIGlzTmFOKGQpfHwoZD10aGlzLmdldERhdGFPYmplY3QoZCkpLGQmJiEhZC5fX2NoaWxkcmVuJiYwIT09KG51bGw9PT0oYT1kLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmxlbmd0aCl9'@; put 'YWRkQ2hpbGQobCxhKXtsZXQgZD1hO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVBZGRDaGlsZCIsbCxkKTtsZXQgaD1udWxsO2wmJihoPXRoaXMuZ2V0Um93SW5kZXgobCkpLHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVSb3ciLGgrdGhpcy5jb3VudENoaWxkcmVuKGwpKzEsMSk7'@; put 'bGV0IGY9bDtsfHwoZj10aGlzLm1vY2tQYXJlbnQoKSksZi5fX2NoaWxkcmVufHwoZi5fX2NoaWxkcmVuPVtdKSxkfHwoZD10aGlzLm1vY2tOb2RlKCkpLGYuX19jaGlsZHJlbi5wdXNoKGQpLHRoaXMucmV3cml0ZUNhY2hlKCk7Y29uc3QgXz10aGlzLmdldFJvd0luZGV4KGQpO3RoaXMuaG90'@; put 'LnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoXywxKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDcmVhdGVSb3ciLF8sMSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGwsZCl9YWRkQ2hpbGRBdEluZGV4KGwsYSxkKXtsZXQgZixoPWQ7aWYoaHx8KGg9dGhpcy5tb2Nr'@; put 'Tm9kZSgpKSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQWRkQ2hpbGQiLGwsaCxhKSxsKXtjb25zdCBUPXRoaXMuZ2V0Um93SW5kZXgobCkrYSsxO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVSb3ciLFQsMSksbC5fX2NoaWxkcmVuLnNwbGljZShhLG51bGwsaCksdGhpcy5yZXdy'@; put 'aXRlQ2FjaGUoKSx0aGlzLnBsdWdpbi5kaXNhYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnNldFNvdXJjZURhdGFBdENlbGwodGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChsKSwiX19jaGlsZHJlbiIsbC5fX2NoaWxkcmVuLCJOZXN0ZWRSb3dzLmFkZENoaWxkQXRJbmRleCIp'@; put 'LHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoVCwxKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93IixULDEpLGY9VH1lbHNlIHRoaXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZpZXJz'@; put 'KCksdGhpcy5ob3QuYWx0ZXIoImluc2VydF9yb3dfYWJvdmUiLGEsMSwiTmVzdGVkUm93cy5hZGRDaGlsZEF0SW5kZXgiKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksZj10aGlzLmdldFJvd0luZGV4KHRoaXMuZGF0YVthXSk7aD10aGlzLmdldERhdGFPYmplY3QoZiks'@; put 'dGhpcy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGwsaCxhKX1hZGRTaWJsaW5nKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiYmVsb3ciO2NvbnN0IGQ9dGhpcy50cmFuc2xhdGVUcmltbWVkUm93KGwpLGg9dGhp'@; put 'cy5nZXRSb3dQYXJlbnQoZCksZj10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGQpO3N3aXRjaChhKXtjYXNlImJlbG93Ijp0aGlzLmFkZENoaWxkQXRJbmRleChoLGYrMSxudWxsKTticmVhaztjYXNlImFib3ZlIjp0aGlzLmFkZENoaWxkQXRJbmRleChoLGYsbnVsbCl9fWRldGFjaEZy'@; put 'b21QYXJlbnQobCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxkPW51bGw7Y29uc3QgaD1bXTtBcnJheS5pc0FycmF5KGwpPyh2byhsWzBdLGxbMl0sRWU9Pntjb25zdCBaZT10aGlzLnRyYW5zbGF0ZVRyaW1tZWRSb3co'@; put 'RWUpO2gucHVzaCh0aGlzLmdldERhdGFPYmplY3QoWmUpKX0pLHZvKDAsaC5sZW5ndGgtMixFZT0+e3RoaXMuZGV0YWNoRnJvbVBhcmVudChoW0VlXSwhMSl9KSxkPWhbaC5sZW5ndGgtMV0pOmQ9bDtjb25zdCBmPXRoaXMuZ2V0Um93SW5kZXgoZCksXz10aGlzLmNvdW50Q2hpbGRyZW4oZCks'@; put 'VD10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGQpLFc9dGhpcy5nZXRSb3dQYXJlbnQoZCksaWU9dGhpcy5nZXRSb3dQYXJlbnQoVykscGU9dGhpcy5nZXRSb3dJbmRleChpZSk7bGV0IHdlPW51bGw7aWYodGhpcy5ob3QucnVuSG9va3MoImJlZm9yZURldGFjaENoaWxkIixXLGQpLG51'@; put 'bGwhPVQpe2NvbnN0IEVlPUFycmF5LmZyb20obmV3IEFycmF5KGYrXysxKS5rZXlzKCkpLnNwbGljZSgtMSooXysxKSk7aWYodGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVJlbW92ZVJvdyIsZixfKzEsRWUsdGhpcy5wbHVnaW4ucGx1Z2luTmFtZSksVy5fX2NoaWxkcmVuLnNwbGljZShULDEp'@; put 'LHRoaXMucmV3cml0ZUNhY2hlKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUmVtb3ZlUm93IixmLF8rMSxFZSx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSxpZSl7d2U9cGUrdGhpcy5jb3VudENoaWxkcmVuKGllKTtjb25zdCBaZT10aGlzLmdldENoaWxkKGllLHRoaXMuY291bnRDaGlsZHJl'@; put 'bihpZSktMSksaXQ9dGhpcy5nZXRSb3dJbmRleChaZSk7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsaXQrMSxfKzEsdGhpcy5wbHVnaW4ucGx1Z2luTmFtZSksaWUuX19jaGlsZHJlbi5wdXNoKGQpfWVsc2Ugd2U9dGhpcy5ob3QuY291bnRSb3dzKCkrMSx0aGlzLmhvdC5y'@; put 'dW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93Iix3ZS0yLF8rMSx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSx0aGlzLmRhdGEucHVzaChkKX10aGlzLnJld3JpdGVDYWNoZSgpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNyZWF0ZVJvdyIsd2UtMixfKzEsdGhpcy5wbHVnaW4ucGx1Z2luTmFtZSks'@; put 'dGhpcy5ob3QucnVuSG9va3MoImFmdGVyRGV0YWNoQ2hpbGQiLFcsZCx0aGlzLmdldFJvd0luZGV4KGQpKSxhJiZ0aGlzLmhvdC5yZW5kZXIoKX1maWx0ZXJEYXRhKGwsYSxkKXtjb25zdCBoPVtdO0RuKGQsZj0+e2gucHVzaCh0aGlzLmdldERhdGFPYmplY3QoZikpfSksRG4oaCxmPT57Y29u'@; put 'c3QgXz10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGYpLFQ9dGhpcy5nZXRSb3dQYXJlbnQoZik7bnVsbD09PVQ/dGhpcy5kYXRhLnNwbGljZShfLDEpOlQuX19jaGlsZHJlbi5zcGxpY2UoXywxKX0pLHRoaXMucmV3cml0ZUNhY2hlKCl9c3BsaWNlRGF0YShsLGEsZCl7Y29uc3QgaD10'@; put 'aGlzLmdldERhdGFPYmplY3QobC0xKTtsZXQgZj1udWxsLF89bDtoJiZoLl9fY2hpbGRyZW4mJjA9PT1oLl9fY2hpbGRyZW4ubGVuZ3RoPyhmPWgsXz0wKTpsPHRoaXMuY291bnRBbGxSb3dzKCkmJihmPXRoaXMuZ2V0Um93UGFyZW50KGwpLF89dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVu'@; put 'dChsKSksZj9kP2YuX19jaGlsZHJlbi5zcGxpY2UoXyxhLC4uLmQpOmYuX19jaGlsZHJlbi5zcGxpY2UoXyxhKTpkP3RoaXMuZGF0YS5zcGxpY2UoXyxhLC4uLmQpOnRoaXMuZGF0YS5zcGxpY2UoXyxhKSx0aGlzLnJld3JpdGVDYWNoZSgpfXN5bmNSb3dXaXRoUmF3U291cmNlKGwpe2xldCBh'@; put 'PWwsZD1udWxsO2Rve2Q9dGhpcy5nZXRSb3dQYXJlbnQoZCksbnVsbCE9PWQmJihhPWQpfXdoaWxlKG51bGwhPT1kKTt0aGlzLnBsdWdpbi5kaXNhYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnNldFNvdXJjZURhdGFBdENlbGwodGhpcy5nZXRSb3dJbmRleChhKSwiX19jaGlsZHJl'@; put 'biIsYS5fX2NoaWxkcmVuLCJOZXN0ZWRSb3dzLnN5bmNSb3dXaXRoUmF3U291cmNlIiksdGhpcy5wbHVnaW4uZW5hYmxlQ29yZUFQSU1vZGlmaWVycygpfW1vdmVSb3cobCxhLGQsaCl7Y29uc3QgZj1hPT09dGhpcy5ob3QuY291bnRSb3dzKCksXz10aGlzLmdldFJvd1BhcmVudChsKSxUPXRo'@; put 'aXMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQobCksVz1fLl9fY2hpbGRyZW4uc2xpY2UoVCxUKzEpLGllPWw+YTtsZXQgcGU9dGhpcy5nZXRSb3dQYXJlbnQoZj9hLTE6YSk7bnVsbD09cGUmJihwZT10aGlzLmdldFJvd1BhcmVudChhLTEpKSxudWxsPT1wZSYmKHBlPXRoaXMuZ2V0RGF0YU9i'@; put 'amVjdChhLTEpKSxwZT9wZS5fX2NoaWxkcmVufHwocGUuX19jaGlsZHJlbj1bXSk6KHBlPXRoaXMuZ2V0RGF0YU9iamVjdChhKSxwZS5fX2NoaWxkcmVuPVtdKTtjb25zdCB3ZT1mfHxkfHxoP3BlLl9fY2hpbGRyZW4ubGVuZ3RoOnRoaXMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoYSksRWU9'@; put 'Xz09PXBlO3BlLl9fY2hpbGRyZW4uc3BsaWNlKHdlLDAsV1swXSksXy5fX2NoaWxkcmVuLnNwbGljZShUKyhpZSYmRWU/MTowKSwxKSx0aGlzLnN5bmNSb3dXaXRoUmF3U291cmNlKF8pLEVlfHx0aGlzLnN5bmNSb3dXaXRoUmF3U291cmNlKHBlKX10cmFuc2xhdGVUcmltbWVkUm93KGwpe3Jl'@; put 'dHVybiB0aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUk/dGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJLnRyYW5zbGF0ZVRyaW1tZWRSb3cobCk6bH11bnRyYW5zbGF0ZVRyaW1tZWRSb3cobCl7cmV0dXJuIHRoaXMucGx1Z2luLmNvbGxhcHNpbmdVST90aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUkudW50'@; put 'cmFuc2xhdGVUcmltbWVkUm93KGwpOmx9fSh0aGlzLHRoaXMuaG90KSx0aGlzLmNvbGxhcHNpbmdVST1uZXcgbE5lKHRoaXMsdGhpcy5ob3QpLHRoaXMuaGVhZGVyc1VJPW5ldyBrb2UodGhpcyx0aGlzLmhvdCksdGhpcy5jb250ZXh0TWVudVVJPW5ldyB1TmUodGhpcyx0aGlzLmhvdCksdGhp'@; put 'cy5yb3dNb3ZlQ29udHJvbGxlcj1uZXcgZE5lKHRoaXMpLHRoaXMuYWRkSG9vaygiYWZ0ZXJJbml0IixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJJbml0KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVZpZXdSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZv'@; put 'cmVWaWV3UmVuZGVyKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0RhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25Nb2RpZnlSb3dEYXRhKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVNvdXJjZUxlbmd0aCIsZnVuY3Rpb24oKXtyZXR1cm4gbC5v'@; put 'bk1vZGlmeVNvdXJjZUxlbmd0aCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVEYXRhU3BsaWNlIixmdW5jdGlvbigpe3JldHVybiBsLm9uQmVmb3JlRGF0YVNwbGljZSguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJmaWx0ZXJEYXRhIixmdW5jdGlvbigpe3JldHVy'@; put 'biBsLm9uRmlsdGVyRGF0YSguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0'@; put 'ZXJHZXRSb3dIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckdldFJvd0hlYWRlciguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZvcmVPbkNlbGxNb3VzZURvd24oLi4uYXJndW1lbnRz'@; put 'KX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiBsLm9uQmVmb3JlUmVtb3ZlUm93KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJSZW1vdmVSb3coLi4uYXJndW1l'@; put 'bnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQWRkQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZvcmVBZGRDaGlsZCguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckFkZENoaWxkIixmdW5jdGlvbigpe3JldHVybiBsLm9uQWZ0ZXJBZGRDaGlsZCguLi5hcmd1bWVu'@; put 'dHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVEZXRhY2hDaGlsZCIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkJlZm9yZURldGFjaENoaWxkKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyRGV0YWNoQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25BZnRlckRldGFjaENoaWxk'@; put 'KC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlYWRlcldpZHRoIixmdW5jdGlvbigpe3JldHVybiBsLm9uTW9kaWZ5Um93SGVhZGVyV2lkdGgoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25B'@; put 'ZnRlckNyZWF0ZVJvdyguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSb3dNb3ZlIixmdW5jdGlvbigpe3JldHVybiBsLm9uQmVmb3JlUm93TW92ZSguLi5hcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVMb2FkRGF0YSIsYT0+dGhpcy5vbkJlZm9yZUxvYWREYXRh'@; put 'KGEpKSx0aGlzLmFkZEhvb2soImJlZm9yZVVwZGF0ZURhdGEiLGE9PnRoaXMub25CZWZvcmVMb2FkRGF0YShhKSksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfWRpc2FibGVQbHVnaW4oKXt0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKCJuZXN0ZWRSb3dzIiksc3VwZXIuZGlz'@; put 'YWJsZVBsdWdpbigpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpO2NvbnN0IGw9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCk7dGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLmRhdGFNYW5hZ2VyLnVwZGF0ZVdpdGhEYXRhKGwpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfW9uQmVm'@; put 'b3JlUm93TW92ZShsLGEsZCxoKXtyZXR1cm4gdGhpcy5yb3dNb3ZlQ29udHJvbGxlci5vbkJlZm9yZVJvd01vdmUobCxhLGQsaCl9ZGlzYWJsZUNvcmVBUElNb2RpZmllcnMoKXtlMy5nZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnM9ITB9ZW5hYmxlQ29yZUFQSU1vZGlmaWVycygpe2Uz'@; put 'LmdldCh0aGlzKS5za2lwQ29yZUFQSU1vZGlmaWVycz0hMX1vbkJlZm9yZU9uQ2VsbE1vdXNlRG93bihsLGEsZCl7dGhpcy5jb2xsYXBzaW5nVUkudG9nZ2xlU3RhdGUobCxhLGQpfW9uTW9kaWZ5Um93RGF0YShsKXtpZighZTMuZ2V0KHRoaXMpLnNraXBDb3JlQVBJTW9kaWZpZXJzKXJldHVy'@; put 'biB0aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QobCl9b25Nb2RpZnlTb3VyY2VMZW5ndGgoKXtpZighZTMuZ2V0KHRoaXMpLnNraXBDb3JlQVBJTW9kaWZpZXJzKXJldHVybiB0aGlzLmRhdGFNYW5hZ2VyLmNvdW50QWxsUm93cygpfW9uQmVmb3JlRGF0YVNwbGljZShsLGEsZCl7cmV0'@; put 'dXJuISghZTMuZ2V0KHRoaXMpLnNraXBDb3JlQVBJTW9kaWZpZXJzJiYhdGhpcy5kYXRhTWFuYWdlci5pc1Jvd0hpZ2hlc3RMZXZlbChsKSYmKHRoaXMuZGF0YU1hbmFnZXIuc3BsaWNlRGF0YShsLGEsZCksMSkpfW9uRmlsdGVyRGF0YShsLGEsZCl7Y29uc3QgaD1lMy5nZXQodGhpcyk7cmV0'@; put 'dXJuIHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC50cmltU3Rhc2goZFswXSxhKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc2hpZnRTdGFzaChkWzBdLG51bGwsLTEq'@; put 'YSksdGhpcy5kYXRhTWFuYWdlci5maWx0ZXJEYXRhKGwsYSxkKSxoLnNraXBSZW5kZXI9ITAsdGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCkuc2xpY2UoKX1vbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyhsKXtyZXR1cm4gdGhpcy5jb250ZXh0TWVudVVJLmFwcGVuZE9wdGlvbnMo'@; put 'bCl9b25BZnRlckdldFJvd0hlYWRlcihsLGEpe3RoaXMuaGVhZGVyc1VJLmFwcGVuZExldmVsSW5kaWNhdG9ycyhsLGEpfW9uTW9kaWZ5Um93SGVhZGVyV2lkdGgobCl7cmV0dXJuIHRoaXMuaGVhZGVyc1VJLnJvd0hlYWRlcldpZHRoQ2FjaGV8fGx9b25BZnRlclJlbW92ZVJvdyhsLGEsZCxo'@; put 'KXtpZihoPT09dGhpcy5wbHVnaW5OYW1lKXJldHVybjtjb25zdCBmPWUzLmdldCh0aGlzKTtzZXRUaW1lb3V0KCgpPT57Zi5za2lwUmVuZGVyPW51bGwsdGhpcy5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guYXBw'@; put 'bHlTdGFzaCgpfSwwKX1vbkJlZm9yZVJlbW92ZVJvdyhsLGEsZCl7Y29uc3QgaD1BcnJheS5mcm9tKGQucmVkdWNlKChmLF8pPT57aWYodGhpcy5kYXRhTWFuYWdlci5pc1BhcmVudChfKSl7Y29uc3QgVD10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QoXykuX19jaGlsZHJlbjtyZXR1'@; put 'cm4gZi5hZGQoXyksQXJyYXkuaXNBcnJheShUKSYmVC5mb3JFYWNoKFc9PmYuYWRkKHRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoVykpKSxmfXJldHVybiBmLmFkZChfKX0sbmV3IFNldCkpO2QubGVuZ3RoPTAsZC5wdXNoKC4uLmgpfW9uQmVmb3JlQWRkQ2hpbGQoKXt0aGlzLmNvbGxh'@; put 'cHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc3Rhc2goKX1vbkFmdGVyQWRkQ2hpbGQobCxhKXt0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc2hpZnRTdGFzaCh0aGlzLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KGEpKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRS'@; put 'b3dzU3Rhc2guYXBwbHlTdGFzaCgpLHRoaXMuaGVhZGVyc1VJLnVwZGF0ZVJvd0hlYWRlcldpZHRoKCl9b25CZWZvcmVEZXRhY2hDaGlsZCgpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpfW9uQWZ0ZXJEZXRhY2hDaGlsZChsLGEsZCl7dGhpcy5jb2xsYXBz'@; put 'aW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnNoaWZ0U3Rhc2goZCxudWxsLC0xKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guYXBwbHlTdGFzaCgpLHRoaXMuaGVhZGVyc1VJLnVwZGF0ZVJvd0hlYWRlcldpZHRoKCl9b25BZnRlckNyZWF0ZVJvdygpe3RoaXMuZGF0YU1h'@; put 'bmFnZXIucmV3cml0ZUNhY2hlKCl9b25BZnRlckluaXQoKXtjb25zdCBsPU1hdGgubWF4KC4uLnRoaXMuZGF0YU1hbmFnZXIuY2FjaGUubGV2ZWxzKTtsPjAmJnRoaXMuaGVhZGVyc1VJLnVwZGF0ZVJvd0hlYWRlcldpZHRoKGwpfW9uQmVmb3JlVmlld1JlbmRlcihsLGEpe2UzLmdldCh0aGlz'@; put 'KS5za2lwUmVuZGVyJiYoYS5za2lwUmVuZGVyPSEwKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfW9uQmVmb3JlTG9hZERhdGEobCl7aWYoIWduZShsKSlyZXR1cm4gU04oIlRoZSBOZXN0ZWQgUm93cyBwbHVnaW4gcmVxdWlyZXMgYW4gQXJyYXkgb2YgT2JqZWN0cyBhcyBhIGRhdGFzZXQg'@; put 'dG8gYmUgcHJvdmlkZWQuIFRoZSBwbHVnaW4gaGFzIGJlZW4gZGlzYWJsZWQuIiksdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtPel09ITEsdm9pZCB0aGlzLmRpc2FibGVQbHVnaW4oKTt0aGlzLmRhdGFNYW5hZ2VyLnNldERhdGEobCksdGhpcy5kYXRhTWFuYWdlci5yZXdyaXRlQ2FjaGUoKX19'@; put 'c28uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoInBlcnNpc3RlbnRTdGF0ZVNhdmUiKSxzby5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigicGVyc2lzdGVudFN0YXRlTG9hZCIpLHNvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJwZXJzaXN0ZW50U3RhdGVSZXNldCIpO2NvbnN0IFRvZT0icGVy'@; put 'c2lzdGVudFN0YXRlIjtjbGFzcyBfTmUgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gVG9lfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDB9Y29uc3RydWN0b3IobCl7c3VwZXIobCksdGhpcy5zdG9yYWdlPXZvaWQgMH1pc0VuYWJsZWQoKXty'@; put 'ZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbVG9lXX1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJsZWR8fCh0aGlzLnN0b3JhZ2V8fCh0aGlzLnN0b3JhZ2U9bmV3IGNsYXNzIGdOZXtjb25zdHJ1Y3RvcihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50'@; put 'c1sxXT9hcmd1bWVudHNbMV06d2luZG93O3RoaXMucm9vdFdpbmRvdz1hLHRoaXMucHJlZml4PWwsdGhpcy5zYXZlZEtleXM9W10sdGhpcy5sb2FkU2F2ZWRLZXlzKCl9c2F2ZVZhbHVlKGwsYSl7dGhpcy5yb290V2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke3RoaXMucHJlZml4fV8k'@; put 'e2x9YCxKU09OLnN0cmluZ2lmeShhKSksLTE9PT10aGlzLnNhdmVkS2V5cy5pbmRleE9mKGwpJiYodGhpcy5zYXZlZEtleXMucHVzaChsKSx0aGlzLnNhdmVTYXZlZEtleXMoKSl9bG9hZFZhbHVlKGwsYSl7Y29uc3QgaD10aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7'@; put 'dGhpcy5wcmVmaXh9XyR7dHlwZW9mIGw+InUiP2E6bH1gKTtyZXR1cm4gbnVsbD09PWg/dm9pZCAwOkpTT04ucGFyc2UoaCl9cmVzZXQobCl7dGhpcy5yb290V2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGAke3RoaXMucHJlZml4fV8ke2x9YCl9cmVzZXRBbGwoKXtEbih0aGlzLnNh'@; put 'dmVkS2V5cywobCxhKT0+e3RoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShgJHt0aGlzLnByZWZpeH1fJHt0aGlzLnNhdmVkS2V5c1thXX1gKX0pLHRoaXMuY2xlYXJTYXZlZEtleXMoKX1sb2FkU2F2ZWRLZXlzKCl7Y29uc3QgbD10aGlzLnJvb3RXaW5kb3cubG9jYWxT'@; put 'dG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5wcmVmaXh9X19wZXJzaXN0ZW50U3RhdGVLZXlzYCksYT0ic3RyaW5nIj09dHlwZW9mIGw/SlNPTi5wYXJzZShsKTp2b2lkIDA7dGhpcy5zYXZlZEtleXM9YXx8W119c2F2ZVNhdmVkS2V5cygpe3RoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0'@; put 'SXRlbShgJHt0aGlzLnByZWZpeH1fX3BlcnNpc3RlbnRTdGF0ZUtleXNgLEpTT04uc3RyaW5naWZ5KHRoaXMuc2F2ZWRLZXlzKSl9Y2xlYXJTYXZlZEtleXMoKXt0aGlzLnNhdmVkS2V5cy5sZW5ndGg9MCx0aGlzLnNhdmVTYXZlZEtleXMoKX19KHRoaXMuaG90LnJvb3RFbGVtZW50LmlkLHRo'@; put 'aXMuaG90LnJvb3RXaW5kb3cpKSx0aGlzLmFkZEhvb2soInBlcnNpc3RlbnRTdGF0ZVNhdmUiLChsLGEpPT50aGlzLnNhdmVWYWx1ZShsLGEpKSx0aGlzLmFkZEhvb2soInBlcnNpc3RlbnRTdGF0ZUxvYWQiLChsLGEpPT50aGlzLmxvYWRWYWx1ZShsLGEpKSx0aGlzLmFkZEhvb2soInBlcnNp'@; put 'c3RlbnRTdGF0ZVJlc2V0IiwoKT0+dGhpcy5yZXNldFZhbHVlKCkpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5zdG9yYWdlPXZvaWQgMCxzdXBlci5kaXNhYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFi'@; put 'bGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1sb2FkVmFsdWUobCxhKXthLnZhbHVlPXRoaXMuc3RvcmFnZS5sb2FkVmFsdWUobCl9c2F2ZVZhbHVlKGwsYSl7dGhpcy5zdG9yYWdlLnNhdmVWYWx1ZShsLGEpfXJlc2V0VmFsdWUobCl7dHlwZW9mIGw+InUiP3RoaXMuc3RvcmFnZS5y'@; put 'ZXNldEFsbCgpOnRoaXMuc3RvcmFnZS5yZXNldChsKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1jb25zdCBQej0ic2VhcmNoIix3TmU9ZnVuY3Rpb24oYyxsLGEsZCxoKXtjLmdldENlbGxNZXRhKGwsYSkuaXNTZWFyY2hSZXN1bHQ9aH0sQ05lPWZ1bmN0aW9uKGMsbCxhKXtyZXR1cm4h'@; put 'KExhKGMpfHxudWxsPT09Y3x8IWMudG9Mb2NhbGVMb3dlckNhc2V8fDA9PT1jLmxlbmd0aHx8TGEobCl8fG51bGw9PT1sKSYmLTEhPT1sLnRvU3RyaW5nKCkudG9Mb2NhbGVMb3dlckNhc2UoYS5sb2NhbGUpLmluZGV4T2YoYy50b0xvY2FsZUxvd2VyQ2FzZShhLmxvY2FsZSkpfTtjbGFzcyBT'@; put 'TmUgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gUHp9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMTkwfWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLHRoaXMuY2FsbGJhY2s9d05lLHRoaXMucXVlcnlNZXRob2Q9Q05lLHRoaXMuc2VhcmNoUmVz'@; put 'dWx0Q2xhc3M9Imh0U2VhcmNoUmVzdWx0In1pc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQel19ZW5hYmxlUGx1Z2luKCl7dmFyIGw9dGhpcztpZih0aGlzLmVuYWJsZWQpcmV0dXJuO2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQel07dGhpcy51cGRh'@; put 'dGVQbHVnaW5TZXR0aW5ncyhhKSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbmRlcmVyIixmdW5jdGlvbigpe3JldHVybiBsLm9uQmVmb3JlUmVuZGVyZXIoLi4uYXJndW1lbnRzKX0pLHN1cGVyLmVuYWJsZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXt2YXIgbD10aGlzO2NvbnN0IGE9ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gbC5vbkJlZm9yZVJlbmRlcmVyKC4uLmFyZ3VtZW50cyl9O3RoaXMuaG90LmFkZEhvb2soImJlZm9yZVJlbmRlcmVyIixhKSx0aGlzLmhvdC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIiwoKT0+e3RoaXMuaG90LnJlbW92ZUhvb2soImJlZm9yZVJlbmRlcmVyIixh'@; put 'KX0pLHN1cGVyLmRpc2FibGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfXF1ZXJ5KGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3Vt'@; put 'ZW50c1sxXTp0aGlzLmdldENhbGxiYWNrKCksZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5nZXRRdWVyeU1ldGhvZCgpO2NvbnN0IGg9dGhpcy5ob3QuY291bnRSb3dzKCksZj10aGlzLmhvdC5jb3VudENvbHMoKSxfPVtdLFQ9'@; put 'dGhpcy5ob3Q7cmV0dXJuIHZvKDAsaC0xLFc9Pnt2bygwLGYtMSxpZT0+e2NvbnN0IHBlPXRoaXMuaG90LmdldERhdGFBdENlbGwoVyxpZSksd2U9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoVyxpZSksRWU9d2Uuc2VhcmNoLmNhbGxiYWNrfHxhLGl0PSh3ZS5zZWFyY2gucXVlcnlNZXRob2R8fGQp'@; put 'KGwscGUsd2UpO2l0JiZfLnB1c2goe3JvdzpXLGNvbDppZSxkYXRhOnBlfSksRWUmJkVlKFQsVyxpZSxwZSxpdCl9KX0pLF99Z2V0Q2FsbGJhY2soKXtyZXR1cm4gdGhpcy5jYWxsYmFja31zZXRDYWxsYmFjayhsKXt0aGlzLmNhbGxiYWNrPWx9Z2V0UXVlcnlNZXRob2QoKXtyZXR1cm4gdGhp'@; put 'cy5xdWVyeU1ldGhvZH1zZXRRdWVyeU1ldGhvZChsKXt0aGlzLnF1ZXJ5TWV0aG9kPWx9Z2V0U2VhcmNoUmVzdWx0Q2xhc3MoKXtyZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRDbGFzc31zZXRTZWFyY2hSZXN1bHRDbGFzcyhsKXt0aGlzLnNlYXJjaFJlc3VsdENsYXNzPWx9dXBkYXRlUGx1Z2lu'@; put 'U2V0dGluZ3MobCl7dXMobCkmJihsLnNlYXJjaFJlc3VsdENsYXNzJiZ0aGlzLnNldFNlYXJjaFJlc3VsdENsYXNzKGwuc2VhcmNoUmVzdWx0Q2xhc3MpLGwucXVlcnlNZXRob2QmJnRoaXMuc2V0UXVlcnlNZXRob2QobC5xdWVyeU1ldGhvZCksbC5jYWxsYmFjayYmdGhpcy5zZXRDYWxsYmFj'@; put 'ayhsLmNhbGxiYWNrKSl9b25CZWZvcmVSZW5kZXJlcihsLGEsZCxoLGYsXyl7Y29uc3QgVD1fLmNsYXNzTmFtZXx8W107bGV0IFc9W107InN0cmluZyI9PXR5cGVvZiBUP1c9VC5zcGxpdCgiICIpOlcucHVzaCguLi5UKSx0aGlzLmlzRW5hYmxlZCgpJiZfLmlzU2VhcmNoUmVzdWx0P1cuaW5j'@; put 'bHVkZXModGhpcy5zZWFyY2hSZXN1bHRDbGFzcyl8fFcucHVzaChgJHt0aGlzLnNlYXJjaFJlc3VsdENsYXNzfWApOlcuaW5jbHVkZXModGhpcy5zZWFyY2hSZXN1bHRDbGFzcykmJlcuc3BsaWNlKFcuaW5kZXhPZih0aGlzLnNlYXJjaFJlc3VsdENsYXNzKSwxKSxfLmNsYXNzTmFtZT1XLmpv'@; put 'aW4oIiAiKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1jbGFzcyBFTmUgZXh0ZW5kcyBac3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4idG91Y2hTY3JvbGwifXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDIwMH1zdGF0aWMgZ2V0IFNFVFRJTkdfS0VZUygp'@; put 'e3JldHVybiEwfWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLHRoaXMuc2Nyb2xsYmFycz1bXSx0aGlzLmNsb25lcz1bXSx0aGlzLmxvY2tlZENvbGxlY3Rpb249ITEsdGhpcy5mcmVlemVPdmVybGF5cz0hMX1pc0VuYWJsZWQoKXtyZXR1cm4gSE4oKX1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJs'@; put 'ZWR8fCh0aGlzLmFkZEhvb2soImFmdGVyVmlld1JlbmRlciIsKCk9PnRoaXMub25BZnRlclZpZXdSZW5kZXIoKSksdGhpcy5yZWdpc3RlckV2ZW50cygpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXt0aGlzLmxvY2tlZENvbGxlY3Rpb249ITEsc3VwZXIudXBkYXRlUGx1'@; put 'Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3N1cGVyLmRpc2FibGVQbHVnaW4oKX1yZWdpc3RlckV2ZW50cygpe3RoaXMuYWRkSG9vaygiYmVmb3JlVG91Y2hTY3JvbGwiLCgpPT50aGlzLm9uQmVmb3JlVG91Y2hTY3JvbGwoKSksdGhpcy5hZGRIb29rKCJhZnRlck1vbWVudHVtU2Nyb2xsIiwoKT0+'@; put 'dGhpcy5vbkFmdGVyTW9tZW50dW1TY3JvbGwoKSl9b25BZnRlclZpZXdSZW5kZXIoKXtpZih0aGlzLmxvY2tlZENvbGxlY3Rpb24pcmV0dXJuO2NvbnN0e3RvcE92ZXJsYXk6bCxib3R0b21PdmVybGF5OmEsaW5saW5lU3RhcnRPdmVybGF5OmQsdG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5'@; put 'OmgsYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5OmZ9PXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXM7dGhpcy5sb2NrZWRDb2xsZWN0aW9uPSEwLHRoaXMuc2Nyb2xsYmFycy5sZW5ndGg9MCx0aGlzLnNjcm9sbGJhcnMucHVzaChsKSxhLmNsb25lJiZ0aGlzLnNjcm9sbGJhcnMu'@; put 'cHVzaChhKSx0aGlzLnNjcm9sbGJhcnMucHVzaChkKSxoJiZ0aGlzLnNjcm9sbGJhcnMucHVzaChoKSxmJiZmLmNsb25lJiZ0aGlzLnNjcm9sbGJhcnMucHVzaChmKSx0aGlzLmNsb25lcz1bXSxsLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLmNsb25lcy5wdXNoKGwuY2xvbmUud3RUYWJsZS5ob2xk'@; put 'ZXIucGFyZW50Tm9kZSksYS5uZWVkRnVsbFJlbmRlciYmdGhpcy5jbG9uZXMucHVzaChhLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpLGQubmVlZEZ1bGxSZW5kZXImJnRoaXMuY2xvbmVzLnB1c2goZC5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKSxoJiZ0aGlzLmNs'@; put 'b25lcy5wdXNoKGguY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSksZiYmZi5jbG9uZSYmdGhpcy5jbG9uZXMucHVzaChmLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpfW9uQmVmb3JlVG91Y2hTY3JvbGwoKXt0aGlzLmZyZWV6ZU92ZXJsYXlzPSEwLERuKHRoaXMuY2xv'@; put 'bmVzLGw9PntwaShsLCJoaWRlLXR3ZWVuIil9KX1vbkFmdGVyTW9tZW50dW1TY3JvbGwoKXt0aGlzLmZyZWV6ZU92ZXJsYXlzPSExLERuKHRoaXMuY2xvbmVzLGw9PntXbyhsLCJoaWRlLXR3ZWVuIikscGkobCwic2hvdy10d2VlbiIpfSksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+'@; put 'e0RuKHRoaXMuY2xvbmVzLGw9PntXbyhsLCJzaG93LXR3ZWVuIil9KX0sNDAwKSxEbih0aGlzLnNjcm9sbGJhcnMsbD0+e2wucmVmcmVzaCgpLGwucmVzZXRGaXhlZFBvc2l0aW9uKCl9KSx0aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLnN5bmNTY3JvbGxXaXRoTWFzdGVyKCl9fWNvbnN0'@; put 'IHpBPSJ0cmltUm93cyI7Y2xhc3MgQU5lIGV4dGVuZHMgWnN7c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIHpBfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDMzMH1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSx0aGlzLnRyaW1tZWRSb3dzTWFwPW51bGx9aXNFbmFi'@; put 'bGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3pBXX1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJsZWR8fCh0aGlzLnRyaW1tZWRSb3dzTWFwPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJ0cmltUm93cyIsbmV3IG15KSx0aGlzLnRyaW1tZWRSb3dzTWFw'@; put 'LmFkZExvY2FsSG9vaygiaW5pdCIsKCk9PnRoaXMub25NYXBJbml0KCkpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbekFdO0FycmF5LmlzQXJyYXkobCkmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKCgpPT57dGhp'@; put 'cy50cmltbWVkUm93c01hcC5jbGVhcigpLERuKGwsYT0+e3RoaXMudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KGEsITApfSl9LCEwKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCgidHJpbVJv'@; put 'd3MiKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9Z2V0VHJpbW1lZFJvd3MoKXtyZXR1cm4gdGhpcy50cmltbWVkUm93c01hcC5nZXRUcmltbWVkSW5kZXhlcygpfXRyaW1Sb3dzKGwpe2NvbnN0IGE9dGhpcy5nZXRUcmltbWVkUm93cygpLGQ9dGhpcy5pc1ZhbGlkQ29uZmlnKGwpO2xldCBoPWE7'@; put 'ZCYmKGg9QXJyYXkuZnJvbShuZXcgU2V0KGEuY29uY2F0KGwpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVRyaW1Sb3ciLGEsaCxkKSYmKGQmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKCgpPT57RG4obCxfPT57dGhpcy50cmltbWVkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgo'@; put 'XywhMCl9KX0sITApLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclRyaW1Sb3ciLGEsaCxkLGQmJmgubGVuZ3RoPmEubGVuZ3RoKSl9dHJpbVJvdygpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3RoaXMudHJp'@; put 'bVJvd3MoYSl9dW50cmltUm93cyhsKXtjb25zdCBhPXRoaXMuZ2V0VHJpbW1lZFJvd3MoKSxkPXRoaXMuaXNWYWxpZENvbmZpZyhsKTtsZXQgaD1hO2NvbnN0IGY9dGhpcy50cmltbWVkUm93c01hcC5nZXRWYWx1ZXMoKS5zbGljZSgpLF89bC5sZW5ndGg+MDtkJiZfJiYoRG4obCxXPT57ZltX'@; put 'XT0hMX0pLGg9QWwoZiwoVyxpZSxwZSk9PihpZSYmVy5wdXNoKHBlKSxXKSxbXSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVVudHJpbVJvdyIsYSxoLGQmJl8pJiYoZCYmXyYmdGhpcy50cmltbWVkUm93c01hcC5zZXRWYWx1ZXMoZiksdGhpcy5ob3QucnVuSG9va3MoImFmdGVy'@; put 'VW50cmltUm93IixhLGgsZCYmXyxkJiZoLmxlbmd0aDxhLmxlbmd0aCkpfXVudHJpbVJvdygpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3RoaXMudW50cmltUm93cyhhKX1pc1RyaW1tZWQobCl7cmV0dXJu'@; put 'IHRoaXMudHJpbW1lZFJvd3NNYXAuZ2V0VmFsdWVBdEluZGV4KGwpfHwhMX11bnRyaW1BbGwoKXt0aGlzLnVudHJpbVJvd3ModGhpcy5nZXRUcmltbWVkUm93cygpKX1pc1ZhbGlkQ29uZmlnKGwpe2NvbnN0IGE9dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCk7cmV0dXJuIGwuZXZlcnkoZD0+'@; put 'TnVtYmVyLmlzSW50ZWdlcihkKSYmZD49MCYmZDxhKX1vbk1hcEluaXQoKXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbekFdO0FycmF5LmlzQXJyYXkobCkmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKCgpPT57RG4obCxhPT57dGhpcy50cmltbWVkUm93c01hcC5zZXRWYWx1ZUF0'@; put 'SW5kZXgoYSwhMCl9KX0sITApfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIHRvKGMpe2NvbnN0IGw9dGhpczt0aGlzLmluc3RhbmNlPWMsdGhpcy5kb25lQWN0aW9ucz1bXSx0aGlzLnVuZG9uZUFjdGlvbnM9W10sdGhpcy5pZ25vcmVOZXdBY3Rpb25zPSExLHRoaXMuZW5h'@; put 'YmxlZD0hMSxjLmFkZEhvb2soImFmdGVyQ2hhbmdlIixmdW5jdGlvbihhLGQpe2NvbnN0IGg9YSYmYS5sZW5ndGg7aCYmYS5maW5kKFQ9Pntjb25zdFssLFcsaWVdPVQ7cmV0dXJuIFchPT1pZX0pJiZsLmRvbmUoKCk9Pntjb25zdCBUPWEucmVkdWNlKChpZSxwZSk9PihpZS5wdXNoKFsuLi5w'@; put 'ZV0pLGllKSxbXSk7RG4oVCxpZT0+e2llWzFdPWMucHJvcFRvQ29sKGllWzFdKX0pO2NvbnN0IFc9aD4xP3RoaXMuZ2V0U2VsZWN0ZWQoKTpbW1RbMF1bMF0sVFswXVsxXV1dO3JldHVybiBuZXcgdG8uQ2hhbmdlQWN0aW9uKFQsVyl9LGQpfSksYy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIs'@; put 'KGEsZCxoKT0+e2wuZG9uZSgoKT0+bmV3IHRvLkNyZWF0ZVJvd0FjdGlvbihhLGQpLGgpfSksYy5hZGRIb29rKCJiZWZvcmVSZW1vdmVSb3ciLChhLGQsaCxmKT0+e2wuZG9uZSgoKT0+e2NvbnN0IFQ9Yy50b1BoeXNpY2FsUm93KGEpLFc9eXUobC5pbnN0YW5jZS5nZXRTb3VyY2VEYXRhKFQs'@; put 'MCxUK2QtMSxsLmluc3RhbmNlLmNvdW50U291cmNlQ29scygpLTEpKTtyZXR1cm4gbmV3IHRvLlJlbW92ZVJvd0FjdGlvbihULFcsYy5nZXRTZXR0aW5ncygpLmZpeGVkUm93c0JvdHRvbSxjLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzVG9wLGMucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1Nl'@; put 'cXVlbmNlKCkpfSxmKX0pLGMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVDb2wiLChhLGQsaCk9PntsLmRvbmUoKCk9Pm5ldyB0by5DcmVhdGVDb2x1bW5BY3Rpb24oYSxkKSxoKX0pLGMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ29sIiwoYSxkLGgsZik9PntsLmRvbmUoKCk9Pntjb25zdCBUPWwuaW5z'@; put 'dGFuY2UuZ2V0U291cmNlRGF0YUFycmF5KCksVz0obC5pbnN0YW5jZS5jb3VudENvbHMoKSthKSVsLmluc3RhbmNlLmNvdW50Q29scygpLGllPVtdLHBlPVtdLHdlPVtdO3ZvKFQubGVuZ3RoLTEsaXQ9Pntjb25zdCBldD1bXSx5dD1UW2l0XTt2byhXLFcrKGQtMSksRXQ9PntldC5wdXNoKHl0'@; put 'W2MudG9QaHlzaWNhbENvbHVtbihFdCldKX0pLGllLnB1c2goZXQpfSksdm8oZC0xLGl0PT57d2UucHVzaChjLnRvUGh5c2ljYWxDb2x1bW4oVytpdCkpfSksQXJyYXkuaXNBcnJheShjLmdldFNldHRpbmdzKCkuY29sSGVhZGVycykmJnZvKGQtMSxpdD0+e3BlLnB1c2goYy5nZXRTZXR0aW5n'@; put 'cygpLmNvbEhlYWRlcnNbYy50b1BoeXNpY2FsQ29sdW1uKFcraXQpXXx8bnVsbCl9KTtjb25zdCBFZT1jLmNvbHVtbkluZGV4TWFwcGVyLmdldEluZGV4ZXNTZXF1ZW5jZSgpLFplPWMucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7cmV0dXJuIG5ldyB0by5SZW1vdmVDb2x1'@; put 'bW5BY3Rpb24oVyx3ZSxpZSxwZSxFZSxaZSxjLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQpfSxmKX0pLGMuYWRkSG9vaygiYmVmb3JlQ2VsbEFsaWdubWVudCIsKGEsZCxoLGYpPT57bC5kb25lKCgpPT5uZXcgdG8uQ2VsbEFsaWdubWVudEFjdGlvbihhLGQsaCxmKSl9KSxjLmFk'@; put 'ZEhvb2soImJlZm9yZUZpbHRlciIsYT0+e2wuZG9uZSgoKT0+bmV3IHRvLkZpbHRlcnNBY3Rpb24oYSkpfSksYy5hZGRIb29rKCJiZWZvcmVSb3dNb3ZlIiwoYSxkKT0+eyExIT09YSYmbC5kb25lKCgpPT5uZXcgdG8uUm93TW92ZUFjdGlvbihhLGQpKX0pLGMuYWRkSG9vaygiYmVmb3JlTWVy'@; put 'Z2VDZWxscyIsKGEsZCk9PntkfHxsLmRvbmUoKCk9Pm5ldyB0by5NZXJnZUNlbGxzQWN0aW9uKGMsYSkpfSksYy5hZGRIb29rKCJhZnRlclVubWVyZ2VDZWxscyIsKGEsZCk9PntkfHxsLmRvbmUoKCk9Pm5ldyB0by5Vbm1lcmdlQ2VsbHNBY3Rpb24oYyxhKSl9KSxjLmFkZEhvb2soImFmdGVy'@; put 'SW5pdCIsKCk9PntsLmluaXQoKX0pfWZ1bmN0aW9uIElvZShjLGwpe2lmKCJsb2FkRGF0YSI9PT1sKXJldHVybiB0aGlzLnVuZG9SZWRvLmNsZWFyKCl9dG8ucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oYyxsKXtpZih0aGlzLmlnbm9yZU5ld0FjdGlvbnN8fCJVbmRvUmVkby51bmRvIj09PWx8'@; put 'fCJVbmRvUmVkby5yZWRvIj09PWx8fCJhdXRvIj09PWwpcmV0dXJuO2NvbnN0IGQ9dGhpcy5kb25lQWN0aW9ucy5zbGljZSgpO2lmKCExPT09dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixkLGwpKXJldHVybjtjb25zdCBmPWMoKSxfPXRoaXMudW5kb25l'@; put 'QWN0aW9ucy5zbGljZSgpO3RoaXMuZG9uZUFjdGlvbnMucHVzaChmKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclVuZG9TdGFja0NoYW5nZSIsZCx0aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVJlZG9TdGFja0NoYW5nZSIsXyks'@; put 'dGhpcy51bmRvbmVBY3Rpb25zLmxlbmd0aD0wLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixfLHRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpKX0sdG8ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oKXtpZih0aGlzLmlzVW5kb0F2YWlsYWJsZSgpKXtjb25z'@; put 'dCBjPXRoaXMuZG9uZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLGMpO2NvbnN0IGw9dGhpcy5kb25lQWN0aW9ucy5wb3AoKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclVuZG9TdGFja0NoYW5nZSIsYyx0aGlzLmRv'@; put 'bmVBY3Rpb25zLnNsaWNlKCkpO2NvbnN0IGE9eXUobCk7aWYoITE9PT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVVbmRvIixhKSlyZXR1cm47dGhpcy5pZ25vcmVOZXdBY3Rpb25zPSEwO2NvbnN0IGg9dGhpcyxmPXRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuaW5zdGFu'@; put 'Y2UucnVuSG9va3MoImJlZm9yZVJlZG9TdGFja0NoYW5nZSIsZiksbC51bmRvKHRoaXMuaW5zdGFuY2UsKCk9PntoLmlnbm9yZU5ld0FjdGlvbnM9ITEsaC51bmRvbmVBY3Rpb25zLnB1c2gobCl9KSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlZG9TdGFja0NoYW5nZSIsZix0aGlz'@; put 'LnVuZG9uZUFjdGlvbnMuc2xpY2UoKSksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJVbmRvIixhKX19LHRvLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1JlZG9BdmFpbGFibGUoKSl7Y29uc3QgYz10aGlzLnVuZG9uZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmluc3Rh'@; put 'bmNlLnJ1bkhvb2tzKCJiZWZvcmVSZWRvU3RhY2tDaGFuZ2UiLGMpO2NvbnN0IGw9dGhpcy51bmRvbmVBY3Rpb25zLnBvcCgpO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixjLHRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpKTtjb25zdCBhPXl1KGwpO2lm'@; put 'KCExPT09dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVkbyIsYSkpcmV0dXJuO3RoaXMuaWdub3JlTmV3QWN0aW9ucz0hMDtjb25zdCBoPXRoaXMsZj10aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixm'@; put 'KSxsLnJlZG8odGhpcy5pbnN0YW5jZSwoKT0+e2guaWdub3JlTmV3QWN0aW9ucz0hMSxoLmRvbmVBY3Rpb25zLnB1c2gobCl9KSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclVuZG9TdGFja0NoYW5nZSIsZix0aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCkpLHRoaXMuaW5zdGFuY2UucnVu'@; put 'SG9va3MoImFmdGVyUmVkbyIsYSl9fSx0by5wcm90b3R5cGUuaXNVbmRvQXZhaWxhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9uZUFjdGlvbnMubGVuZ3RoPjB9LHRvLnByb3RvdHlwZS5pc1JlZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmRvbmVBY3Rpb25zLmxl'@; put 'bmd0aD4wfSx0by5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmRvbmVBY3Rpb25zLmxlbmd0aD0wLHRoaXMudW5kb25lQWN0aW9ucy5sZW5ndGg9MH0sdG8ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuYWJsZWR9LHRvLnByb3RvdHlwZS5lbmFi'@; put 'bGU9ZnVuY3Rpb24oKXtpZih0aGlzLmlzRW5hYmxlZCgpKXJldHVybjtjb25zdCBjPXRoaXMuaW5zdGFuY2U7dGhpcy5lbmFibGVkPSEwLGZ1bmN0aW9uIExOZShjKXtjLnVuZG89ZnVuY3Rpb24oKXtyZXR1cm4gYy51bmRvUmVkby51bmRvKCl9LGMucmVkbz1mdW5jdGlvbigpe3JldHVybiBj'@; put 'LnVuZG9SZWRvLnJlZG8oKX0sYy5pc1VuZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gYy51bmRvUmVkby5pc1VuZG9BdmFpbGFibGUoKX0sYy5pc1JlZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gYy51bmRvUmVkby5pc1JlZG9BdmFpbGFibGUoKX0sYy5jbGVhclVuZG89ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gYy51bmRvUmVkby5jbGVhcigpfX0oYyksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLGMuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLElvZSl9LHRvLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNFbmFibGVkKCkpcmV0dXJuO2NvbnN0IGM9dGhp'@; put 'cy5pbnN0YW5jZTt0aGlzLmVuYWJsZWQ9ITEsZnVuY3Rpb24gUk5lKGMpe2RlbGV0ZSBjLnVuZG8sZGVsZXRlIGMucmVkbyxkZWxldGUgYy5pc1VuZG9BdmFpbGFibGUsZGVsZXRlIGMuaXNSZWRvQXZhaWxhYmxlLGRlbGV0ZSBjLmNsZWFyVW5kb30oYyksdGhpcy51bnJlZ2lzdGVyU2hvcnRj'@; put 'dXRzKCksYy5yZW1vdmVIb29rKCJhZnRlckNoYW5nZSIsSW9lKX0sdG8ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCksdGhpcy5pbnN0YW5jZT1udWxsLHRoaXMuZG9uZUFjdGlvbnM9bnVsbCx0aGlzLnVuZG9uZUFjdGlvbnM9bnVsbH0sKHRvLkFjdGlvbj1mdW5j'@; put 'dGlvbigpe30pLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKCl7fSx0by5BY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oKXt9LHRvLkNoYW5nZUFjdGlvbj1mdW5jdGlvbihjLGwpe3RoaXMuY2hhbmdlcz1jLHRoaXMuc2VsZWN0ZWQ9bCx0aGlzLmFjdGlvblR5cGU9ImNoYW5nZSJ9LHpm'@; put 'KHRvLkNoYW5nZUFjdGlvbix0by5BY3Rpb24pLHRvLkNoYW5nZUFjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihjLGwpe2NvbnN0IGE9eXUodGhpcy5jaGFuZ2VzKSxkPWMuY291bnRFbXB0eVJvd3MoITApLGg9Yy5jb3VudEVtcHR5Q29scyghMCk7Zm9yKGxldCBmPTAsXz1hLmxlbmd0'@; put 'aDtmPF87ZisrKWFbZl0uc3BsaWNlKDMsMSk7Yy5hZGRIb29rT25jZSgiYWZ0ZXJDaGFuZ2UiLGwpLGMuc2V0RGF0YUF0Q2VsbChhLG51bGwsbnVsbCwiVW5kb1JlZG8udW5kbyIpO2ZvcihsZXQgZj0wLF89YS5sZW5ndGg7ZjxfO2YrKyl7Y29uc3RbVCxXXT1hW2ZdO2MuZ2V0U2V0dGluZ3Mo'@; put 'KS5taW5TcGFyZVJvd3MmJlQrMStjLmdldFNldHRpbmdzKCkubWluU3BhcmVSb3dzPT09Yy5jb3VudFJvd3MoKSYmZD09PWMuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZVJvd3MmJihjLmFsdGVyKCJyZW1vdmVfcm93IixwYXJzZUludChUKzEsMTApLGMuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZVJv'@; put 'd3MpLGMudW5kb1JlZG8uZG9uZUFjdGlvbnMucG9wKCkpLGMuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZUNvbHMmJlcrMStjLmdldFNldHRpbmdzKCkubWluU3BhcmVDb2xzPT09Yy5jb3VudENvbHMoKSYmaD09PWMuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZUNvbHMmJihjLmFsdGVyKCJyZW1vdmVf'@; put 'Y29sIixwYXJzZUludChXKzEsMTApLGMuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZUNvbHMpLGMudW5kb1JlZG8uZG9uZUFjdGlvbnMucG9wKCkpfWMuc2VsZWN0Q2VsbHModGhpcy5zZWxlY3RlZCwhMSwhMSl9LHRvLkNoYW5nZUFjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihjLGwpe2Nv'@; put 'bnN0IGE9eXUodGhpcy5jaGFuZ2VzKTtmb3IobGV0IGQ9MCxoPWEubGVuZ3RoO2Q8aDtkKyspYVtkXS5zcGxpY2UoMiwxKTtjLmFkZEhvb2tPbmNlKCJhZnRlckNoYW5nZSIsbCksYy5zZXREYXRhQXRDZWxsKGEsbnVsbCxudWxsLCJVbmRvUmVkby5yZWRvIiksdGhpcy5zZWxlY3RlZCYmYy5z'@; put 'ZWxlY3RDZWxscyh0aGlzLnNlbGVjdGVkLCExLCExKX0sdG8uQ3JlYXRlUm93QWN0aW9uPWZ1bmN0aW9uKGMsbCl7dGhpcy5pbmRleD1jLHRoaXMuYW1vdW50PWwsdGhpcy5hY3Rpb25UeXBlPSJpbnNlcnRfcm93In0semYodG8uQ3JlYXRlUm93QWN0aW9uLHRvLkFjdGlvbiksdG8uQ3JlYXRl'@; put 'Um93QWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGMsbCl7Y29uc3QgYT1jLmNvdW50Um93cygpLGQ9Yy5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93czt0aGlzLmluZGV4Pj1hJiZ0aGlzLmluZGV4LWQ8YSYmKHRoaXMuaW5kZXgtPWQpLGMuYWRkSG9va09uY2UoImFmdGVyUmVtb3Zl'@; put 'Um93IixsKSxjLmFsdGVyKCJyZW1vdmVfcm93Iix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby51bmRvIil9LHRvLkNyZWF0ZVJvd0FjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihjLGwpe2MuYWRkSG9va09uY2UoImFmdGVyQ3JlYXRlUm93IixsKSxjLmFsdGVyKCJpbnNl'@; put 'cnRfcm93X2Fib3ZlIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9LHRvLlJlbW92ZVJvd0FjdGlvbj1mdW5jdGlvbihjLGwsYSxkLGgpe3RoaXMuaW5kZXg9Yyx0aGlzLmRhdGE9bCx0aGlzLmFjdGlvblR5cGU9InJlbW92ZV9yb3ciLHRoaXMuZml4ZWRSb3dzQm90'@; put 'dG9tPWEsdGhpcy5maXhlZFJvd3NUb3A9ZCx0aGlzLnJvd0luZGV4ZXNTZXF1ZW5jZT1ofSx6Zih0by5SZW1vdmVSb3dBY3Rpb24sdG8uQWN0aW9uKSx0by5SZW1vdmVSb3dBY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oYyxsKXtjb25zdCBhPWMuZ2V0U2V0dGluZ3MoKSxkPVtdO2Eu'@; put 'Zml4ZWRSb3dzQm90dG9tPXRoaXMuZml4ZWRSb3dzQm90dG9tLGEuZml4ZWRSb3dzVG9wPXRoaXMuZml4ZWRSb3dzVG9wLHRoaXMuZGF0YS5mb3JFYWNoKChoLGYpPT57T2JqZWN0LmtleXMoaCkuZm9yRWFjaChfPT57Y29uc3QgVD1wYXJzZUludChfLDEwKTtkLnB1c2goW3RoaXMuaW5kZXgr'@; put 'Zixpc05hTihUKT9fOlQsaFtfXV0pfSl9KSxjLmFsdGVyKCJpbnNlcnRfcm93X2Fib3ZlIix0aGlzLmluZGV4LHRoaXMuZGF0YS5sZW5ndGgsIlVuZG9SZWRvLnVuZG8iKSxjLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGwpLGMuc2V0U291cmNlRGF0YUF0Q2VsbChkLG51bGwsbnVs'@; put 'bCwiVW5kb1JlZG8udW5kbyIpLGMucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHRoaXMucm93SW5kZXhlc1NlcXVlbmNlKX0sdG8uUmVtb3ZlUm93QWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKGMsbCl7Yy5hZGRIb29rT25jZSgiYWZ0ZXJSZW1vdmVSb3ciLGwpLGMu'@; put 'YWx0ZXIoInJlbW92ZV9yb3ciLHRoaXMuaW5kZXgsdGhpcy5kYXRhLmxlbmd0aCwiVW5kb1JlZG8ucmVkbyIpfSx0by5DcmVhdGVDb2x1bW5BY3Rpb249ZnVuY3Rpb24oYyxsKXt0aGlzLmluZGV4PWMsdGhpcy5hbW91bnQ9bCx0aGlzLmFjdGlvblR5cGU9Imluc2VydF9jb2wifSx6Zih0by5D'@; put 'cmVhdGVDb2x1bW5BY3Rpb24sdG8uQWN0aW9uKSx0by5DcmVhdGVDb2x1bW5BY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oYyxsKXtjLmFkZEhvb2tPbmNlKCJhZnRlclJlbW92ZUNvbCIsbCksYy5hbHRlcigicmVtb3ZlX2NvbCIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1Jl'@; put 'ZG8udW5kbyIpfSx0by5DcmVhdGVDb2x1bW5BY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oYyxsKXtjLmFkZEhvb2tPbmNlKCJhZnRlckNyZWF0ZUNvbCIsbCksYy5hbHRlcigiaW5zZXJ0X2NvbF9zdGFydCIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8ucmVkbyIpfSx0'@; put 'by5SZW1vdmVDb2x1bW5BY3Rpb249ZnVuY3Rpb24oYyxsLGEsZCxoLGYsXyl7dGhpcy5pbmRleD1jLHRoaXMuaW5kZXhlcz1sLHRoaXMuZGF0YT1hLHRoaXMuYW1vdW50PXRoaXMuZGF0YVswXS5sZW5ndGgsdGhpcy5oZWFkZXJzPWQsdGhpcy5jb2x1bW5Qb3NpdGlvbnM9aC5zbGljZSgwKSx0'@; put 'aGlzLnJvd1Bvc2l0aW9ucz1mLnNsaWNlKDApLHRoaXMuYWN0aW9uVHlwZT0icmVtb3ZlX2NvbCIsdGhpcy5maXhlZENvbHVtbnNTdGFydD1ffSx6Zih0by5SZW1vdmVDb2x1bW5BY3Rpb24sdG8uQWN0aW9uKSx0by5SZW1vdmVDb2x1bW5BY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24o'@; put 'YyxsKXtjLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQ9dGhpcy5maXhlZENvbHVtbnNTdGFydDtjb25zdCBkPXRoaXMuaW5kZXhlcy5zbGljZSgwKS5zb3J0KCksaD0oaWUscGUsd2UpPT53ZVt0aGlzLmluZGV4ZXMuaW5kZXhPZihkW3BlXSldLGY9dGhpcy5kYXRhLmxlbmd0aCxf'@; put 'PVtdO2ZvcihsZXQgaWU9MDtpZTxmO2llKyspXy5wdXNoKGNzKHRoaXMuZGF0YVtpZV0saCkpO2NvbnN0IFQ9Y3ModGhpcy5oZWFkZXJzLGgpLFc9W107Yy5hbHRlcigiaW5zZXJ0X2NvbF9zdGFydCIsdGhpcy5pbmRleGVzWzBdLHRoaXMuaW5kZXhlcy5sZW5ndGgsIlVuZG9SZWRvLnVuZG8i'@; put 'KSxEbihjLmdldFNvdXJjZURhdGFBcnJheSgpLChpZSxwZSk9PntEbihkLCh3ZSxFZSk9PntpZVt3ZV09X1twZV1bRWVdLFcucHVzaChbcGUsd2UsaWVbd2VdXSl9KX0pLGMuc2V0U291cmNlRGF0YUF0Q2VsbChXLHZvaWQgMCx2b2lkIDAsIlVuZG9SZWRvLnVuZG8iKSx0eXBlb2YgdGhpcy5o'@; put 'ZWFkZXJzPCJ1IiYmRG4oVCwoaWUscGUpPT57Yy5nZXRTZXR0aW5ncygpLmNvbEhlYWRlcnNbZFtwZV1dPWllfSksYy5iYXRjaEV4ZWN1dGlvbigoKT0+e2Mucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHRoaXMucm93UG9zaXRpb25zKSxjLmNvbHVtbkluZGV4TWFwcGVyLnNl'@; put 'dEluZGV4ZXNTZXF1ZW5jZSh0aGlzLmNvbHVtblBvc2l0aW9ucyl9LCEwKSxjLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGwpLGMucmVuZGVyKCl9LHRvLlJlbW92ZUNvbHVtbkFjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihjLGwpe2MuYWRkSG9va09uY2UoImFmdGVyUmVt'@; put 'b3ZlQ29sIixsKSxjLmFsdGVyKCJyZW1vdmVfY29sIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9LHRvLkNlbGxBbGlnbm1lbnRBY3Rpb249ZnVuY3Rpb24oYyxsLGEsZCl7dGhpcy5zdGF0ZUJlZm9yZT1jLHRoaXMucmFuZ2U9bCx0aGlzLnR5cGU9YSx0aGlzLmFs'@; put 'aWdubWVudD1kfSx0by5DZWxsQWxpZ25tZW50QWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGMsbCl7RG4odGhpcy5yYW5nZSxhPT57YS5mb3JBbGwoKGQsaCk9PntkPj0wJiZoPj0wJiZjLnNldENlbGxNZXRhKGQsaCwiY2xhc3NOYW1lIix0aGlzLnN0YXRlQmVmb3JlW2RdW2hdfHwi'@; put 'IGh0TGVmdCIpfSl9KSxjLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGwpLGMucmVuZGVyKCl9LHRvLkNlbGxBbGlnbm1lbnRBY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oYyxsKXtLcCh0aGlzLnJhbmdlLHRoaXMudHlwZSx0aGlzLmFsaWdubWVudCwoYSxkKT0+Yy5nZXRD'@; put 'ZWxsTWV0YShhLGQpLChhLGQsaCxmKT0+Yy5zZXRDZWxsTWV0YShhLGQsaCxmKSksYy5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixsKSxjLnJlbmRlcigpfSx0by5GaWx0ZXJzQWN0aW9uPWZ1bmN0aW9uKGMpe3RoaXMuY29uZGl0aW9uc1N0YWNrPWMsdGhpcy5hY3Rpb25UeXBlPSJm'@; put 'aWx0ZXIifSx6Zih0by5GaWx0ZXJzQWN0aW9uLHRvLkFjdGlvbiksdG8uRmlsdGVyc0FjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihjLGwpe2NvbnN0IGE9Yy5nZXRQbHVnaW4oImZpbHRlcnMiKTtjLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGwpLGEuY29uZGl0aW9uQ29s'@; put 'bGVjdGlvbi5pbXBvcnRBbGxDb25kaXRpb25zKHRoaXMuY29uZGl0aW9uc1N0YWNrLnNsaWNlKDAsdGhpcy5jb25kaXRpb25zU3RhY2subGVuZ3RoLTEpKSxhLmZpbHRlcigpfSx0by5GaWx0ZXJzQWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKGMsbCl7Y29uc3QgYT1jLmdldFBsdWdp'@; put 'bigiZmlsdGVycyIpO2MuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsbCksYS5jb25kaXRpb25Db2xsZWN0aW9uLmltcG9ydEFsbENvbmRpdGlvbnModGhpcy5jb25kaXRpb25zU3RhY2spLGEuZmlsdGVyKCl9LHRvLk1lcmdlQ2VsbHNBY3Rpb249Y2xhc3MgRE5lIGV4dGVuZHMgdG8u'@; put 'QWN0aW9ue2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIoKSx0aGlzLmNlbGxSYW5nZT1hO2NvbnN0IGQ9dGhpcy5jZWxsUmFuZ2UuZ2V0VG9wU3RhcnRDb3JuZXIoKSxoPXRoaXMuY2VsbFJhbmdlLmdldEJvdHRvbUVuZENvcm5lcigpO3RoaXMucmFuZ2VEYXRhPWwuZ2V0RGF0YShkLnJvdyxkLmNv'@; put 'bCxoLnJvdyxoLmNvbCl9dW5kbyhsLGEpe2NvbnN0IGQ9bC5nZXRQbHVnaW4oIm1lcmdlQ2VsbHMiKTtsLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGEpLGQudW5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlLCEwKTtjb25zdCBoPXRoaXMuY2VsbFJhbmdlLmdldFRvcFN0YXJ0Q29y'@; put 'bmVyKCk7bC5wb3B1bGF0ZUZyb21BcnJheShoLnJvdyxoLmNvbCx0aGlzLnJhbmdlRGF0YSx2b2lkIDAsdm9pZCAwLCJNZXJnZUNlbGxzIil9cmVkbyhsLGEpe2NvbnN0IGQ9bC5nZXRQbHVnaW4oIm1lcmdlQ2VsbHMiKTtsLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGEpLGQubWVy'@; put 'Z2VSYW5nZSh0aGlzLmNlbGxSYW5nZSl9fSx0by5Vbm1lcmdlQ2VsbHNBY3Rpb249Y2xhc3MgSU5lIGV4dGVuZHMgdG8uQWN0aW9ue2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIoKSx0aGlzLmNlbGxSYW5nZT1hfXVuZG8obCxhKXtjb25zdCBkPWwuZ2V0UGx1Z2luKCJtZXJnZUNlbGxzIik7bC5h'@; put 'ZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixhKSxkLm1lcmdlUmFuZ2UodGhpcy5jZWxsUmFuZ2UsITApfXJlZG8obCxhKXtjb25zdCBkPWwuZ2V0UGx1Z2luKCJtZXJnZUNlbGxzIik7bC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixhKSxkLnVubWVyZ2VSYW5nZSh0aGlzLmNl'@; put 'bGxSYW5nZSwhMCksbC5yZW5kZXIoKX19LHRvLlJvd01vdmVBY3Rpb249ZnVuY3Rpb24oYyxsKXt0aGlzLnJvd3M9Yy5zbGljZSgpLHRoaXMuZmluYWxJbmRleD1sLHRoaXMuYWN0aW9uVHlwZT0icm93X21vdmUifSx6Zih0by5Sb3dNb3ZlQWN0aW9uLHRvLkFjdGlvbiksdG8uUm93TW92ZUFj'@; put 'dGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihjLGwpe2NvbnN0IGE9Yy5nZXRQbHVnaW4oIm1hbnVhbFJvd01vdmUiKSxkPVtdLmNvbmNhdCh0aGlzLnJvd3MpLGg9ZC5maWx0ZXIoVD0+VD50aGlzLmZpbmFsSW5kZXgpLGY9ZC5maWx0ZXIoVD0+VDw9dGhpcy5maW5hbEluZGV4KSxfPWgu'@; put 'c29ydCgoVCxXKT0+Vy1UKS5jb25jYXQoZi5zb3J0KChULFcpPT5ULVcpKTtjLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGwpO2ZvcihsZXQgVD0wO1Q8Xy5sZW5ndGg7VCs9MSl7Y29uc3QgVz1jLnRvVmlzdWFsUm93KF9bVF0pO2EubW92ZVJvdyhXLF9bVF0pfWMucmVuZGVyKCks'@; put 'Yy5kZXNlbGVjdENlbGwoKSxjLnNlbGVjdFJvd3ModGhpcy5yb3dzWzBdLHRoaXMucm93c1swXSt0aGlzLnJvd3MubGVuZ3RoLTEpfSx0by5Sb3dNb3ZlQWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKGMsbCl7Y29uc3QgYT1jLmdldFBsdWdpbigibWFudWFsUm93TW92ZSIpO2MuYWRk'@; put 'SG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsbCksYS5tb3ZlUm93cyh0aGlzLnJvd3Muc2xpY2UoKSx0aGlzLmZpbmFsSW5kZXgpLGMucmVuZGVyKCksYy5kZXNlbGVjdENlbGwoKSxjLnNlbGVjdFJvd3ModGhpcy5maW5hbEluZGV4LHRoaXMuZmluYWxJbmRleCt0aGlzLnJvd3MubGVuZ3Ro'@; put 'LTEpfSx0by5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2NvbnN0IGM9dGhpcy5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLnVuZG8sbD10eXBlb2YgYz4idSJ8fGM7dGhpcy5pbnN0YW5jZS51bmRvUmVkb3x8KHRoaXMuaW5zdGFuY2UudW5kb1JlZG89dGhpcyksbD90aGlzLmluc3RhbmNlLnVu'@; put 'ZG9SZWRvLmVuYWJsZSgpOnRoaXMuaW5zdGFuY2UudW5kb1JlZG8uZGlzYWJsZSgpfSx0by5wcm90b3R5cGUucmVnaXN0ZXJTaG9ydGN1dHM9ZnVuY3Rpb24oKXt0aGlzLmluc3RhbmNlLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dHMoW3trZXlz'@; put 'OltbIkNvbnRyb2wvTWV0YSIsInoiXV0sY2FsbGJhY2s6KCk9Pnt0aGlzLnVuZG8oKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsInkiXSxbIkNvbnRyb2wvTWV0YSIsIlNoaWZ0IiwieiJdXSxjYWxsYmFjazooKT0+e3RoaXMucmVkbygpfX1dLHtydW5Pbmx5SWY6aD0+IWguYWx0S2V5LGdy'@; put 'b3VwOiJ1bmRvUmVkbyJ9KX0sdG8ucHJvdG90eXBlLnVucmVnaXN0ZXJTaG9ydGN1dHM9ZnVuY3Rpb24oKXt0aGlzLmluc3RhbmNlLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKCJ1bmRvUmVkbyIpfTtjb25zdCBldz1zby5n'@; put 'ZXRTaW5nbGV0b24oKTtldy5hZGQoImFmdGVyVXBkYXRlU2V0dGluZ3MiLGZ1bmN0aW9uKCl7dmFyIGM7bnVsbD09PShjPXRoaXMuZ2V0UGx1Z2luKCJ1bmRvUmVkbyIpKXx8dm9pZCAwPT09Y3x8Yy5pbml0KCl9KSxldy5yZWdpc3RlcigiYmVmb3JlVW5kbyIpLGV3LnJlZ2lzdGVyKCJhZnRl'@; put 'clVuZG8iKSxldy5yZWdpc3RlcigiYmVmb3JlUmVkbyIpLGV3LnJlZ2lzdGVyKCJhZnRlclJlZG8iKSx0by5QTFVHSU5fS0VZPSJ1bmRvUmVkbyIsdG8uU0VUVElOR19LRVlTPSEwO2NvbnN0IE9OZT10bztmdW5jdGlvbiBGeigpeyhmdW5jdGlvbiBfSWUoKXtSMCh2NyksUjAoWEIpLFIwKEpu'@; put 'ZSksUjAobnJlKSxSMChKQiksUjAocUIpLFIwKHJyZSksUjAoaXJlKSxSMChtSWUpLFIwKGtnKSxSMChzcmUpfSkoKSxmdW5jdGlvbiBSSWUoKXtwaChiNykscGgoTXkpLHBoKHRqKSxwaChlaikscGgocmopLHBoKGlqKSxwaCgkcCkscGgob2opfSgpLGZ1bmN0aW9uIEJJZSgpe2E3KEV5KSxh'@; put 'NyhZayksYTcoc2opLGE3KFdrKX0oKSxmdW5jdGlvbiBxSWUoKXtiMihqSWUpLGIyKHpJZSksYjIoVUllKSxiMihaSWUpLGIyKFlJZSksYjIoV0llKSxiMihHSWUpLGIyKEduZSksYjIoJEllKX0oKSxmdW5jdGlvbiBQTmUoKXtqcyhBeSksanModUxlKSxqcyhUeSksanMoTUxlKSxqcyhSTGUp'@; put 'LGpzKE9yZSksanMoYVJlKSxqcyhTUmUpLGpzKFpSZSksanMoZk9lKSxqcyhET2UpLGpzKExPZSksanMoT09lKSxqcyhHT2UpLGpzKHpQZSksanModkZlKSxqcyhNRmUpLGpzKElGZSksanMoUEZlKSxqcyhaRmUpLGpzKFdGZSksanModEhlKSxqcyhySGUpLGpzKGhIZSksanMoX0hlKSxqcyh3'@; put 'SGUpLGpzKHJOZSksanMocE5lKSxqcyhfTmUpLGpzKFNOZSksanMoRU5lKSxqcyhBTmUpLGpzKE9OZSl9KCl9bGV0IEMyPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAy'@; put 'NzVpbmo9bWkoe2ltcG9ydHM6W29vXX0pLGN9KSgpLFY3PSgoKT0+e2NsYXNzIGN7bmdPbkluaXQoKXt9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe3Byb3ZpZGVyczpbYVAs'@; put 'bFBdLGltcG9ydHM6W29vLHFsLGhjLF91LEMyXX0pLGN9KSgpLHR3PSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W29vXX0pLGN9KSgp'@; put 'LExvZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltvbyxfdSxvbyxxbF19KSxjfSkoKSxCNz0oKCk9PntjbGFzcyBje31yZXR1cm4g'@; put 'Yy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltvbyxxbCxfdSxoYyxWNyx0dyxDMixMb2VdfSksY30pKCk7dmFyIEh6LE56LFZ6LEJ6LGp6LERsPUYoODM0MTcpLHQzPUYoMTIw'@; put 'NzApO2NsYXNzIFJvZXtjb25zdHJ1Y3Rvcigpe3RoaXMucXVldWU9W119YWRkVG9RdWV1ZShsKXt0aGlzLnF1ZXVlLnB1c2goLi4ubCl9fUZ6KCksZnVuY3Rpb24gRk5lKGMpe2NvbnN0IGw9ISh0eXBlb2Ygd2luZG93PiJ1IikmJndpbmRvdy5qUXVlcnk7bCYmKGwuZm4uaGFuZHNvbnRhYmxl'@; put 'PWZ1bmN0aW9uKGEpe2NvbnN0IGQ9dGhpcy5maXJzdCgpO2xldCBmLGg9ZC5kYXRhKCJoYW5kc29udGFibGUiKTtpZigic3RyaW5nIiE9dHlwZW9mIGEpe2NvbnN0IGllPWF8fHt9O3JldHVybiBoP2gudXBkYXRlU2V0dGluZ3MoaWUpOihoPW5ldyBjLkNvcmUoZFswXSxpZSksZC5kYXRhKCJo'@; put 'YW5kc29udGFibGUiLGgpLGguaW5pdCgpKSxkfWlmKGgpe2lmKCEodHlwZW9mIGhbYV08InUiKSl0aHJvdyBuZXcgRXJyb3IoYEhhbmRzb250YWJsZSBkbyBub3QgcHJvdmlkZSBhY3Rpb246ICR7YX1gKTtmb3IodmFyIF89YXJndW1lbnRzLmxlbmd0aCxUPW5ldyBBcnJheShfPjE/Xy0xOjAp'@; put 'LFc9MTtXPF87VysrKVRbVy0xXT1hcmd1bWVudHNbV107Zj1oW2FdLmNhbGwoaCwuLi5UKSwiZGVzdHJveSI9PT1hJiZkLnJlbW92ZURhdGEoKX1yZXR1cm4gZn0pfShtcyksbXMuX19HaG9zdFRhYmxlPWxqLG1zLl9nZXRMaXN0ZW5lcnNDb3VudGVyPWZ1bmN0aW9uIGxrZSgpe3JldHVybiBn'@; put 'a30sbXMuX2dldFJlZ2lzdGVyZWRNYXBzQ291bnRlcj1mdW5jdGlvbiBNVGUoKXtyZXR1cm4gcFZ9LG1zLkV2ZW50TWFuYWdlcj1sbDtjb25zdCBITmU9W2FlLFIsaixCLEUsTSx4LGssTyxtLHosSV0sTk5lPVtsZSxLXTttcy5oZWxwZXI9e30sbXMuZG9tPXt9LERuKEhOZSxjPT57RG4oT2Jq'@; put 'ZWN0LmdldE93blByb3BlcnR5TmFtZXMoYyksbD0+eyJfIiE9PWwuY2hhckF0KDApJiYobXMuaGVscGVyW2xdPWNbbF0pfSl9KSxEbihOTmUsYz0+e0RuKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGMpLGw9PnsiXyIhPT1sLmNoYXJBdCgwKSYmKG1zLmRvbVtsXT1jW2xdKX0pfSksbXMu'@; put 'Y2VsbFR5cGVzPW51bGwhPT0oSHo9bXMuY2VsbFR5cGVzKSYmdm9pZCAwIT09SHo/SHo6e30sRG4oVERlKCksYz0+e21zLmNlbGxUeXBlc1tjXT1VQihjKX0pLG1zLmNlbGxUeXBlcy5yZWdpc3RlckNlbGxUeXBlPWIyLG1zLmNlbGxUeXBlcy5nZXRDZWxsVHlwZT1VQixtcy5lZGl0b3JzPW51'@; put 'bGwhPT0oTno9bXMuZWRpdG9ycykmJnZvaWQgMCE9PU56P056Ont9LERuKGlrZSgpLGM9Pnttcy5lZGl0b3JzW2Ake2J1KGMpfUVkaXRvcmBdPXBrKGMpfSksbXMuZWRpdG9ycy5yZWdpc3RlckVkaXRvcj1SMCxtcy5lZGl0b3JzLmdldEVkaXRvcj1wayxtcy5yZW5kZXJlcnM9bnVsbCE9PShW'@; put 'ej1tcy5yZW5kZXJlcnMpJiZ2b2lkIDAhPT1Wej9Wejp7fSxEbihNa2UoKSxjPT57Y29uc3QgbD1iayhjKTsiYmFzZSI9PT1jJiYobXMucmVuZGVyZXJzLmNlbGxEZWNvcmF0b3I9bCksbXMucmVuZGVyZXJzW2Ake2J1KGMpfVJlbmRlcmVyYF09bH0pLG1zLnJlbmRlcmVycy5yZWdpc3RlclJl'@; put 'bmRlcmVyPXBoLG1zLnJlbmRlcmVycy5nZXRSZW5kZXJlcj1iayxtcy52YWxpZGF0b3JzPW51bGwhPT0oQno9bXMudmFsaWRhdG9ycykmJnZvaWQgMCE9PUJ6P0J6Ont9LERuKGtrZSgpLGM9Pnttcy52YWxpZGF0b3JzW2Ake2J1KGMpfVZhbGlkYXRvcmBdPUZOKGMpfSksbXMudmFsaWRhdG9y'@; put 'cy5yZWdpc3RlclZhbGlkYXRvcj1hNyxtcy52YWxpZGF0b3JzLmdldFZhbGlkYXRvcj1GTixtcy5wbHVnaW5zPW51bGwhPT0oano9bXMucGx1Z2lucykmJnZvaWQgMCE9PWp6P2p6Ont9LERuKFBOKCksYz0+e21zLnBsdWdpbnNbY109dXkoYyl9KSxtcy5wbHVnaW5zW2Ake2J1KFpzLlBMVUdJ'@; put 'Tl9LRVkpfVBsdWdpbmBdPVpzLG1zLnBsdWdpbnMucmVnaXN0ZXJQbHVnaW49anMsbXMucGx1Z2lucy5nZXRQbHVnaW49dXk7Y29uc3QgVk5lPW1zLHp6PShjLGwsYSk9Pntmb3IobGV0IGQgb2YgYyl7Y29uc3QgaD1sLmZpbmQoXz0+Xy5kYXRhPT09ZC5OQU1FKSxmPWEudmFyc1tkLk5BTUVd'@; put 'O2YmJihkLlRZUEU9WyJEQVRFIiwiREFURVRJTUUiLCJUSU1FIl0uaW5jbHVkZXMoZC5ERFRZUEUpPyJudW0iOmYudHlwZSksaCYmZC5ERVNDJiYoaC5kZXNjPWQuREVTQyksaCYmZi5sZW5ndGgmJihoLmxlbmd0aD1wYXJzZUludChmLmxlbmd0aCkpLGgmJmQuQ0xTX1JVTEUmJihoLmNsc1J1'@; put 'bGU9ZC5DTFNfUlVMRSl9cmV0dXJuIGx9O2Z1bmN0aW9uIFV6KGMsbCl7aWYobnVsbD09Y3x8IWlzTmFOKGMpJiZpc0Zpbml0ZShjKSlyZXR1cm4gbCYmbCghMCksITA7Y29uc3QgYT0oMCx0My5pc1NwZWNpYWxNaXNzaW5nKShjKTtyZXR1cm4gbCYmbChhKSxhfWNvbnN0IE9vZT17Q0FTRToo'@; put 'YyxsKT0+e3N3aXRjaChsKXtjYXNlIlVQQ0FTRSI6cmV0dXJuISFbdm9pZCAwLG51bGxdLmluY2x1ZGVzKGMpfHwic3RyaW5nIj09dHlwZW9mIGMmJmMudG9TdHJpbmcoKT09PWMudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpO2Nhc2UiTE9XQ0FTRSI6cmV0dXJuISFbdm9pZCAwLG51bGxdLmlu'@; put 'Y2x1ZGVzKGMpfHwic3RyaW5nIj09dHlwZW9mIGMmJmMudG9TdHJpbmcoKT09PWMudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpfXJldHVybiEwfSxNSU5WQUw6KGMsbCk9Pntjb25zdCBhPVV6KGMpLGQ9cGFyc2VGbG9hdChjKTtyZXR1cm4oIWF8fCFpc05hTihkKSkmJmQ+PU51bWJlcihsLnRv'@; put 'U3RyaW5nKCkpfSxNQVhWQUw6KGMsbCk9Pntjb25zdCBhPVV6KGMpLGQ9cGFyc2VGbG9hdChjKTtyZXR1cm4hKCFhfHwhaXNOYU4oZCkpfHxkPD1OdW1iZXIobC50b1N0cmluZygpKX0sTk9UTlVMTDooYyxsKT0+bnVsbCE9YyYmYy50b1N0cmluZygpLmxlbmd0aD4wfTt2YXIgWno9Rig0NDMx'@; put 'Nik7Y2xhc3MgWk5le2NvbnN0cnVjdG9yKGwsYSxkLGgsZixfKXt0aGlzLnJ1bGVzPVtdLHRoaXMuZHFydWxlcz1bXSx0aGlzLmRxZGF0YT1bXSx0aGlzLmhpZGRlbkNvbHVtbnM9W10sdGhpcy5wcmltYXJ5S2V5cz1bXSx0aGlzLmV4ZWN1dGVIb3RWYWxpZGF0b3I9KFQsVyxpZSk9Pntjb25z'@; put 'dCBwZT17Li4uVCx2YWxpZGF0b3I6dm9pZCAwLGNvcnJlY3RGb3JtYXQ6ITEscm93OjAsY29sOjAsaW5zdGFuY2U6bmV3IFZOZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx7fSksdmlzdWFsUm93OjAsdmlzdWFsQ29sOjAscHJvcDowfTtudWxsPT1XJiYoVz0iIiksVCYmVC52YWxp'@; put 'ZGF0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBULnZhbGlkYXRvcj9ULnZhbGlkYXRvci5jYWxsKHBlLFcsd2U9PntpZSYmaWUod2UpfSk6aWUmJmllKCExKX0sdGhpcy5zYXNwYXJhbXM9bCx0aGlzLmhvdEluc3RhbmNlPV8sdGhpcy5ydWxlcz0oYz0+e3RyeXtyZXR1cm4gSlNPTi5wYXJzZShg'@; put 'WyR7Y31dYCl9Y2F0Y2h7cmV0dXJuW119fSkobC5DT0xUWVBFKSx0aGlzLnJ1bGVzPXp6KGQsdGhpcy5ydWxlcyxhKSx0aGlzLnJ1bGVzPShjPT57aWYoIVp6W3dpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VdKXJldHVybiBjO2ZvcihsZXQgYSBvZiBjKSJudW1lcmljIj09PWEudHlwZSYmKGEu'@; put 'bnVtZXJpY0Zvcm1hdD17cGF0dGVybjoiMCwwIixjdWx0dXJlOndpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2V9KTtyZXR1cm4gY30pKHRoaXMucnVsZXMpLHRoaXMuZHFydWxlcz1oLHRoaXMuZHFkYXRhPWYsdGhpcy5wcmltYXJ5S2V5cz1sLlBLLnNwbGl0KCIgIiksdGhpcy51cGRhdGVEcURh'@; put 'dGEoKSx0aGlzLnNldHVwVmFsaWRhdGlvbnMoKX1nZXRSdWxlcygpe3JldHVybiB0aGlzLnJ1bGVzfWdldFJ1bGUobCl7Y29uc3QgYT10aGlzLmdldFJ1bGVJbmRleChsKTtyZXR1cm4gdGhpcy5ydWxlc1thXX1nZXRIaWRkZW5Db2x1bW5zKCl7cmV0dXJuIHRoaXMuaGlkZGVuQ29sdW1uc311'@; put 'cGRhdGVSdWxlKGwsYSl7bGV0IGQ9dGhpcy5nZXRSdWxlSW5kZXgobCk7dGhpcy5ydWxlc1tkXT17Li4udGhpcy5ydWxlc1tkXSwuLi5hfX1yZW1vdmVSdWxlKGwpe2NvbnN0IGE9dGhpcy5nZXRSdWxlSW5kZXgobCk7dGhpcy5ydWxlcy5zcGxpY2UoYSwxKX1nZXREcURldGFpbHMobCl7cmV0'@; put 'dXJuIGw/dGhpcy5kcXJ1bGVzLmZpbHRlcihhPT5hLkJBU0VfQ09MPT09bCk6dGhpcy5kcXJ1bGVzfWlzRHFDb2wobCl7cmV0dXJuISF0aGlzLmRxcnVsZXMuZmluZChhPT5hLkJBU0VfQ09MPT09bCl9aGFzRHFSdWxlcyhsLGEsZD0hMSl7cmV0dXJuIGQ/dGhpcy5kcXJ1bGVzLmZpbHRlciho'@; put 'PT5oLkJBU0VfQ09MPT09bCYmYS5pbmNsdWRlcyhoLlJVTEVfVFlQRSkpLmxlbmd0aD09PWEubGVuZ3RoOiEhdGhpcy5kcXJ1bGVzLmZpbmQoaD0+aC5CQVNFX0NPTD09PWwmJmEuaW5jbHVkZXMoaC5SVUxFX1RZUEUpKX1nZXREcURyb3Bkb3duU291cmNlKGwpe2xldCBhPVtdO3JldHVybiB0'@; put 'aGlzLmRxcnVsZXMuZm9yRWFjaChkPT57ZC5CQVNFX0NPTC50b1N0cmluZygpPT09bC5kYXRhJiZsLmRhdGEudG9TdHJpbmcoKSYmWyJIQVJEU0VMRUNUIiwiU09GVFNFTEVDVCIsIkhBUkRTRUxFQ1RfSE9PSyIsIlNPRlRTRUxFQ1RfSE9PSyJdLmluY2x1ZGVzKGQuUlVMRV9UWVBFLnRvU3Ry'@; put 'aW5nKCkpJiZ0aGlzLmRxZGF0YS5maWx0ZXIoaD0+aC5CQVNFX0NPTD09PWQuQkFTRV9DT0wpLmZvckVhY2goaD0+e2EucHVzaChsLnR5cGUmJiJudW1lcmljIj09PWwudHlwZT9OdW1iZXIoaC5SVUxFX0RBVEEpOmguUlVMRV9EQVRBKX0pfSksYX11cGRhdGVEcURhdGEoKXt0aGlzLmRxZGF0'@; put 'YS5sZW5ndGg+MCYmKGM9Pntjb25zdCBsPVtdO3JldHVybiB0aGlzLmRxZGF0YS5mb3JFYWNoKGE9PntsLmluY2x1ZGVzKGEuQkFTRV9DT0wpfHxsLnB1c2goYS5CQVNFX0NPTCl9KSxsfSkoKS5mb3JFYWNoKGE9PntsZXQgZD0hMTt0aGlzLmRxcnVsZXMubGVuZ3RoPjAmJnRoaXMuZHFydWxl'@; put 'cy5mb3JFYWNoKGg9PntoLkJBU0VfQ09MPT09YSYmKCJTT0ZUU0VMRUNUIj09PWguUlVMRV9UWVBFfHwiSEFSRFNFTEVDVCI9PT1oLlJVTEVfVFlQRSkmJihkPSEwKX0pLGR8fHRoaXMuZHFydWxlcy5wdXNoKHtCQVNFX0NPTDphLFJVTEVfVFlQRToiU09GVFNFTEVDVCIsUlVMRV9WQUxVRTph'@; put 'LFg6MX0pfSl9c2V0dXBWYWxpZGF0aW9ucygpe2ZvcihsZXQgbD0wO2w8dGhpcy5ydWxlcy5sZW5ndGg7bCsrKXtjb25zdCBhPXRoaXMucnVsZXNbbF0uZGF0YXx8IiI7aWYoIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1hKXtpZih0aGlzLmlzRHFDb2woYSkpe2xldCBoPXRo'@; put 'aXMuZ2V0RHFEcm9wZG93blNvdXJjZSh0aGlzLnJ1bGVzW2xdKTtoLmxlbmd0aD4wJiYodGhpcy5ydWxlc1tsXS5zb3VyY2U9aCx0aGlzLnJ1bGVzW2xdLnR5cGU9ImF1dG9jb21wbGV0ZSIsdGhpcy5ydWxlc1tsXS5maWx0ZXI9ITEpLHRoaXMuaGFzRHFSdWxlcyhhLFsiU09GVFNFTEVDVCJd'@; put 'KSYmKHRoaXMucnVsZXNbbF0uc3RyaWN0PSExKSx0aGlzLmhhc0RxUnVsZXMoYSxbIkhBUkRTRUxFQ1QiXSkmJih0aGlzLnJ1bGVzW2xdLnN0cmljdD0hMCksdGhpcy5oYXNEcVJ1bGVzKGEsWyJTT0ZUU0VMRUNUX0hPT0siXSkmJih0aGlzLnJ1bGVzW2xdLnN0cmljdD0hMSksdGhpcy5oYXNE'@; put 'cVJ1bGVzKGEsWyJIQVJEU0VMRUNUX0hPT0siXSkmJih0aGlzLnJ1bGVzW2xdLnN0cmljdD0hMCksdGhpcy5oYXNEcVJ1bGVzKGEsWyJOT1ROVUxMIl0pJiYodGhpcy5ydWxlc1tsXS5hbGxvd0VtcHR5PSExKX0idHJ1ZSI9PT10aGlzLnJ1bGVzW2xdLmNvcnJlY3RGb3JtYXQmJih0aGlzLnJ1'@; put 'bGVzW2xdLmNvcnJlY3RGb3JtYXQ9ITApLHRoaXMuc2V0RGVmYXVsdFZhbGlkYXRvcih0aGlzLGwpLHRoaXMuc2V0Q29sdW1uTGV2ZWxTZWN1cml0eShsKX19dGhpcy5zYXNwYXJhbXM/LkNMU19GTEFHJiZ0aGlzLmhpZGRlbkNvbHVtbnMucHVzaCgwKX1zZXREZWZhdWx0VmFsaWRhdG9yKGws'@; put 'YSl7dGhpcy5ydWxlc1thXS52YWxpZGF0b3I9ZnVuY3Rpb24oZCxoKXtjb25zdCBmPWwucnVsZXNbYV0uZGF0YT8udG9TdHJpbmcoKSxfPWwucnVsZXNbYV0udHlwZXx8IiI7bGV0IFQ9bnVsbDtyZXR1cm4iYXV0b2NvbXBsZXRlIiE9PXRoaXMuZWRpdG9yfHwobC5nZXRIYW5kc29udGFibGVW'@; put 'YWxpZGF0b3IoImF1dG9jb21wbGV0ZSIpLmNhbGwodGhpcyxkLFc9PntUPVd9KSxUKT8obC5nZXRIYW5kc29udGFibGVWYWxpZGF0b3IoXykuY2FsbCh0aGlzLGQsVz0+e1Q9V30pLFQ/bC5sZW5ndGhDaGVjayhkLGwucnVsZXNbYV0ubGVuZ3RoLF8pP2wuaXNEcUNvbChmfHwiIikmJiEoKGMs'@; put 'bCk9Pntmb3IobGV0IGEgb2YgYylpZihPb2VbYS5SVUxFX1RZUEVdJiYhT29lW2EuUlVMRV9UWVBFXShsLGEuUlVMRV9WQUxVRSkpcmV0dXJuIGNvbnNvbGUud2FybihgRFEgSW52YWxpZCBSZWFzb246ICR7YS5SVUxFX1RZUEV9XG5WYWx1ZTogJHtsfSlcblJ1bGUgVmFsdWU6ICR7YS5SVUxF'@; put 'X1ZBTFVFLmxlbmd0aD4wJiYiICIhPT1hLlJVTEVfVkFMVUU/YS5SVUxFX1ZBTFVFOiJOb3QgZGVmaW5lZCJ9YCksITE7cmV0dXJuITB9KShsLmdldERxRGV0YWlscyhmfHwiIiksZCk/KGNvbnNvbGUud2FybihgRFEgVmFsaWRhdGlvbiAtIGludmFsaWQgKFZhbHVlOiAke2R9KWApLHZvaWQg'@; put 'aCghMSkpOnZvaWQgaCghMCk6KGNvbnNvbGUud2FybihgTGVuZ3RoIFZhbGlkYXRpb24gLSBpbnZhbGlkIChWYWx1ZTogJHtkfSlgKSx2b2lkIGgoITEpKTooY29uc29sZS53YXJuKGBIT1QgTmF0aXZlIFZhbGlkYXRpb24gLSBpbnZhbGlkIChWYWx1ZTogJHtkfSlgKSx2b2lkIGgoITEpKSk6'@; put 'KGNvbnNvbGUud2FybihgSE9UIE5hdGl2ZSBWYWxpZGF0aW9uIChhdXRvY29tcGxldGUpIC0gaW52YWxpZCAoVmFsdWU6ICR7ZH0pYCksdm9pZCBoKCExKSl9fWxlbmd0aENoZWNrKGwsYSxkKXtpZigoMCx0My5pc1NwZWNpYWxNaXNzaW5nKShsKXx8bnVsbD09bHx8bnVsbD09YSlyZXR1cm4h'@; put 'MDtpZigibnVtZXJpYyI9PT1kKXtpZig4PT09YSlyZXR1cm4hMDtpZihhPDN8fGE+OHx8IU51bWJlci5pc0ludGVnZXIoYSkpcmV0dXJuIGNvbnNvbGUud2FybigiaW52YWxpZCBsZW5ndGggZnJvbSBTQVMsIHJ1bGUgbGVuZ3RoIGNhbiBvbmx5IGJlIGFuIGludGVnZXIgYmV0d2VlbiAzLTgi'@; put 'KSwhMTtjb25zdCBoPU51bWJlcihsKT09PWwmJmwlMSE9MDtpZihhPDgmJmgpcmV0dXJuIGNvbnNvbGUud2FybigicmVkdWNlZCBsZW5ndGggbnVtZXJpY3MgY2Fubm90IGNvbnRhaW4gZGVjaW1hbHMgZWxzZSBwcmVjaXNpb24gd2lsbCBiZSBhZmZlY3RlZCIpLCExO3N3aXRjaChhKXtjYXNl'@; put 'IDM6cmV0dXJuIGw8PTgxOTI7Y2FzZSA0OnJldHVybiBsPD0yMDk3MTUyO2Nhc2UgNTpyZXR1cm4gbDw9NTM2ODcwOTEyO2Nhc2UgNjpyZXR1cm4gbDw9MTM3NDM4OTUzNDcyO2Nhc2UgNzpyZXR1cm4gbDw9MzUxODQzNzIwODg4MzJ9fXJldHVybiBsLnRvU3RyaW5nKCkubGVuZ3RoPD1hfWdl'@; put 'dEhhbmRzb250YWJsZVZhbGlkYXRvcihsKXtzd2l0Y2gobCl7Y2FzZSJhdXRvY29tcGxldGUiOnJldHVybiBFeTtjYXNlIm51bWVyaWMiOnJldHVybiBVejtjYXNlImRhdGUiOnJldHVybiBZaztjYXNlInRpbWUiOnJldHVybiBXaztkZWZhdWx0OnJldHVybihhLGQpPT5kP2QoITApOm51bGx9'@; put 'fWdldFJ1bGVJbmRleChsKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGw/bDp0aGlzLnJ1bGVzLmZpbmRJbmRleChhPT5hLmRhdGE9PT1sKX1zZXRDb2x1bW5MZXZlbFNlY3VyaXR5KGwpe2lmKCF0aGlzLnNhc3BhcmFtcz8uQ0xTX0ZMQUcpcmV0dXJuO2NvbnN0IGE9dGhpcy5ydWxlc1tsXTtp'@; put 'Zih0aGlzLnByaW1hcnlLZXlzLmluY2x1ZGVzKGEuZGF0YSkmJihhLmNsc1J1bGU9IlJFQUQiKSwiSElERSI9PT1hLmNsc1J1bGUmJnRoaXMuaGlkZGVuQ29sdW1ucy5wdXNoKGwpLCJSRUFEIj09PWEuY2xzUnVsZSYmKGEucmVhZE9ubHk9ITApLCJFRElUIj09PWEuY2xzUnVsZSl7YS5yZWFk'@; put 'T25seT0hMTtjb25zdCBkPXRoaXMuaGlkZGVuQ29sdW1ucy5pbmRleE9mKGwpO3RoaXMuaGlkZGVuQ29sdW1ucy5zcGxpY2UoZCwxKX19fWNvbnN0IFVBPXtudW1lcmljOjAsZGVmYXVsdDoiIn0sWU5lPShjLGwpPT5jPyJhdXRvY29tcGxldGUiPT09Yz9sJiZsLnNvdXJjZT9sLnNvdXJjZVsw'@; put 'XTpbXTpVQS5oYXNPd25Qcm9wZXJ0eShjKT9VQVtjXTpVQS5kZWZhdWx0OlVBLmRlZmF1bHQsUG9lPWM9PntsZXQgbD0oIjAiK2MuZ2V0VVRDSG91cnMoKSkuc2xpY2UoLTIpKyI6IjtyZXR1cm4gbD1sKygiMCIrYy5nZXRVVENNaW51dGVzKCkpLnNsaWNlKC0yKSsiOiIsbCs9KCIwIitjLmdl'@; put 'dFVUQ1NlY29uZHMoKSkuc2xpY2UoLTIpLGx9LFl6PWM9PmMuZ2V0RnVsbFllYXIoKSsiLSIrKCIwIisoYy5nZXRNb250aCgpKzEpKS5zbGljZSgtMikrIi0iKygiMCIrYy5nZXREYXRlKCkpLnNsaWNlKC0yKSxXej1jPT5uZXcgRGF0ZShNYXRoLnJvdW5kKDg2NDAwKihjLTI1NTY5KSoxZTMp'@; put 'KSwkTmU9KGMsbCk9Pntjb25zdCBhPVtdLGQ9W107cmV0dXJuIGwuZm9yRWFjaChoPT57LTE9PT1jLmluZGV4T2YoaCk/YS5wdXNoKGgpOmQucHVzaChoKX0pLFthLGRdfSxxTmU9KGMsbCxhLGQsaCxmLF8pPT4obC5pbm5lckhUTUw9YCR7Zj9mLnRvU3RyaW5nKCk6IiJ9IDxjbHItaWNvbiBz'@; put 'aGFwZT0iZXhjbGFtYXRpb24tY2lyY2xlIiBzdGF0dXM9Indhcm5pbmciPjwvY2xyLWljb24+YCxsKSxHej0oYyxsLGEsZCxoLGYsXyk9PihsLmlubmVySFRNTD1mfHwiIixsKSxLTmU9KGMsbCxhLGQsaCxmLF8pPT4obC5pbm5lckhUTUw9YCR7Zj9mLnRvU3RyaW5nKCk6IiJ9IDxzcGFuIGNs'@; put 'YXNzPSJzcGlubmVyIHNwaW5uZXItc20gdmVydGljYWwtYWxpZ24tbWlkZGxlIj48L3NwYW4+YCxsKSwkej1jPT4hIS9eLXswLDF9XGQrJC8udGVzdChjKSxGb2U9Yz0+ISEvXlxkK1wuXGQrJC8udGVzdChjKSxxej1mdW5jdGlvbiBKTmUoYyl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBjfHxs'@; put 'OChjKSYmIltvYmplY3QgU3ltYm9sXSI9PWk4KGMpfTt2YXIgUU5lPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGVWZT0vXlx3KiQvO2Z1bmN0aW9uIEt6KGMsbCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGN8fG51bGwhPWwmJiJmdW5jdGlvbiIh'@; put 'PXR5cGVvZiBsKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTt2YXIgYT1mdW5jdGlvbigpe3ZhciBkPWFyZ3VtZW50cyxoPWw/bC5hcHBseSh0aGlzLGQpOmRbMF0sZj1hLmNhY2hlO2lmKGYuaGFzKGgpKXJldHVybiBmLmdldChoKTt2YXIgXz1jLmFwcGx5KHRo'@; put 'aXMsZCk7cmV0dXJuIGEuY2FjaGU9Zi5zZXQoaCxfKXx8ZixffTtyZXR1cm4gYS5jYWNoZT1uZXcoS3ouQ2FjaGV8fGdQKSxhfUt6LkNhY2hlPWdQO2NvbnN0IGlWZT1Lejt2YXIgbFZlPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4p'@; put 'Kj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLGNWZT0vXFwoXFwpPy9nLHVWZT1mdW5jdGlvbiBzVmUoYyl7dmFyIGw9aVZlKGMsZnVuY3Rpb24oZCl7cmV0dXJuIDUwMD09PWEuc2l6ZSYmYS5jbGVhcigpLGR9KSxhPWwuY2FjaGU7cmV0dXJuIGx9KGZ1bmN0aW9uKGMp'@; put 'e3ZhciBsPVtdO3JldHVybiA0Nj09PWMuY2hhckNvZGVBdCgwKSYmbC5wdXNoKCIiKSxjLnJlcGxhY2UobFZlLGZ1bmN0aW9uKGEsZCxoLGYpe2wucHVzaChoP2YucmVwbGFjZShjVmUsIiQxIik6ZHx8YSl9KSxsfSk7Y29uc3QgZFZlPXVWZTt2YXIgSG9lPW1wP21wLnByb3RvdHlwZTp2b2lk'@; put 'IDAsTm9lPUhvZT9Ib2UudG9TdHJpbmc6dm9pZCAwO2NvbnN0IGdWZT1mdW5jdGlvbiBWb2UoYyl7aWYoInN0cmluZyI9PXR5cGVvZiBjKXJldHVybiBjO2lmKGM4KGMpKXJldHVybiBmdW5jdGlvbiBoVmUoYyxsKXtmb3IodmFyIGE9LTEsZD1udWxsPT1jPzA6Yy5sZW5ndGgsaD1BcnJheShk'@; put 'KTsrK2E8ZDspaFthXT1sKGNbYV0sYSxjKTtyZXR1cm4gaH0oYyxWb2UpKyIiO2lmKHF6KGMpKXJldHVybiBOb2U/Tm9lLmNhbGwoYyk6IiI7dmFyIGw9YysiIjtyZXR1cm4iMCI9PWwmJjEvYz09LTEvMD8iLTAiOmx9LGJWZT1mdW5jdGlvbiBfVmUoYyxsKXtyZXR1cm4gYzgoYyk/YzpmdW5j'@; put 'dGlvbiB0VmUoYyxsKXtpZihjOChjKSlyZXR1cm4hMTt2YXIgYT10eXBlb2YgYztyZXR1cm4hKCJudW1iZXIiIT1hJiYic3ltYm9sIiE9YSYmImJvb2xlYW4iIT1hJiZudWxsIT1jJiYhcXooYykpfHxlVmUudGVzdChjKXx8IVFOZS50ZXN0KGMpfHxudWxsIT1sJiZjIGluIE9iamVjdChsKX0o'@; put 'YyxsKT9bY106ZFZlKGZ1bmN0aW9uIG1WZShjKXtyZXR1cm4gbnVsbD09Yz8iIjpnVmUoYyl9KGMpKX0sQ1ZlPWZ1bmN0aW9uIHdWZShjKXtpZigic3RyaW5nIj09dHlwZW9mIGN8fHF6KGMpKXJldHVybiBjO3ZhciBsPWMrIiI7cmV0dXJuIjAiPT1sJiYxL2M9PS0xLzA/Ii0wIjpsfSxpbD1m'@; put 'dW5jdGlvbiB4VmUoYyxsLGEpe3ZhciBkPW51bGw9PWM/dm9pZCAwOmZ1bmN0aW9uIFNWZShjLGwpe2Zvcih2YXIgYT0wLGQ9KGw9YlZlKGwsYykpLmxlbmd0aDtudWxsIT1jJiZhPGQ7KWM9Y1tDVmUobFthKytdKV07cmV0dXJuIGEmJmE9PWQ/Yzp2b2lkIDB9KGMsbCk7cmV0dXJuIHZvaWQg'@; put 'MD09PWQ/YTpkfTtsZXQgYmQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5zYXNTZXJ2aWNlPWEsdGhpcy5oZWxwZXJTZXJ2aWNlPWQsdGhpcy5sb2dnZXJTZXJ2aWNlPWgsdGhpcy5yZXNwb25zZT1uZXcgYmUsdGhpcy5jaGFuZ2VkVGFibGU9bmV3IGJlLHRoaXMuZGV0'@; put 'YWlscz1uZXcgYmUsdGhpcy5kaWZmcz1uZXcgYmUsdGhpcy5jb2x1bW5zPW5ldyBiZSx0aGlzLnZhbHVlcz1uZXcgYmUsdGhpcy5maWx0ZXI9bmV3IGJlLHRoaXMucXVlcnk9bmV3IGJlLHRoaXMuc3VibWl0dERldGFpbD1uZXcgYmUsdGhpcy5yZW1vdmVRdWVyeT1uZXcgYmUsdGhpcy5zZXRT'@; put 'dWJtaXQ9bmV3IGJlLHRoaXMuc2V0U3VibWl0TGlzdD1uZXcgYmV9Y2FsbFNlcnZpY2UoYSxkLGgsZil7dmFyIF89dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7Xy5saWJkcz1mO2NvbnN0IFQ9e307cmV0dXJuIFRbZF09W2FdLHtkYXRhOnlpZWxkIF8uc2FzU2VydmljZS5yZXF1ZXN0KGgs'@; put 'VCksbGliZHM6Xy5saWJkc319KSgpfXVwZGF0ZVRhYmxlKGEsZCxoLGYsXyl7dmFyIFQ9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7bGV0IFc9e2pzZGF0YTpkfTtpZihfKXtsZXQgcGU9VC5wYXJzZUZvcm1hdHMoXyk7Vy4kanNkYXRhPXtmb3JtYXRzOnBlfX1yZXR1cm4gV1toXT1bYV0s'@; put 'eWllbGQgVC5zYXNTZXJ2aWNlLnJlcXVlc3QoZixXKX0pKCl9Z2V0QXBwcm92YWxzKGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtsZXQgXz17fTtyZXR1cm4gX1tkXT1bYV0seWllbGQgZi5zYXNTZXJ2aWNlLnJlcXVlc3QoaCxfKX0pKCl9c2VuZERldGFpbHMoYSxk'@; put 'LGgpe3ZhciBmPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2xldCBfPU9iamVjdC5hc3NpZ24oe3N1YjohMH0sYSk7Zi5zdWJtaXR0RGV0YWlsLm5leHQoe2RhdGE6aFtkXSx2aWV3RGF0YTpffSl9KSgpfWdldFN1Ym1pdHRzKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7'@; put 'cmV0dXJuIHlpZWxkIGEuc2FzU2VydmljZS5yZXF1ZXN0KCJlZGl0b3JzL2dldHN1Ym1pdHMiLG51bGwpfSkoKX12aWV3TGlicygpe3ZhciBhPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe3JldHVybiBhLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXdsaWJzIixudWxsKX0pKCl9'@; put 'cmVmcmVzaExpYkluZm8oYSl7dmFyIGQ9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7cmV0dXJuIGQuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvcmVmcmVzaGxpYmluZm8iLHtsaWIycmVmcmVzaDpbe2xpYnJlZjphfV19KX0pKCl9dmVyc2lvbkhpc3RvcnkoYSl7dmFyIGQ9dGhpczty'@; put 'ZXR1cm4gZmkoZnVuY3Rpb24qKCl7Y29uc3QgaD17aXdhbnQ6W3tMSUJEUzphfV19O3JldHVybiB5aWVsZCBkLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL2dldHZlcnNpb25oaXN0b3J5IixoKX0pKCl9dmlld1RhYmxlcyhhKXt2YXIgZD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXts'@; put 'ZXQgaD17U0FTQ29udHJvbFRhYmxlOlt7TVBMSUI6YX1dfTtyZXR1cm4geWllbGQgZC5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3dGFibGVzIixoKX0pKCl9dmlld0RhdGEoYSxkKXt2YXIgaD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtsZXQgZj17U0FTQ29udHJvbFRhYmxl'@; put 'Olt7TElCRFM6YSxGSUxURVJfUks6ZH1dfTtyZXR1cm4geWllbGQgaC5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3ZGF0YSIsZil9KSgpfXZpZXdEYXRhU2VhcmNoKGEsZD0hMSxoLGYpe3ZhciBfPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2xldCBXPXtTQVNDb250cm9sVGFi'@; put 'bGU6W3tTRUFSQ0hUWVBFOmEubGVuZ3RoPjA/ZD8iTlVNIjoiQ0hBUiI6Ik5PTkUiLFNFQVJDSFZBTDphLExJQkRTOmgsRklMVEVSX1JLOmZ9XX07cmV0dXJuIHlpZWxkIF8uc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvdmlld2RhdGEiLFcpfSkoKX1nZXRYTE1hcFJ1bGVzKGEpe3ZhciBk'@; put 'PXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2NvbnN0IGg9e2dldHhsbWFwc19pbjpbe1hMTUFQX0lEOmF9XX07cmV0dXJuIHlpZWxkIGQuc2FzU2VydmljZS5yZXF1ZXN0KCJlZGl0b3JzL2dldHhsbWFwcyIsaCl9KSgpfWdldERldGFpbHMoYSxkLGgpe3ZhciBmPXRoaXM7cmV0dXJuIGZp'@; put 'KGZ1bmN0aW9uKigpe2xldCBfPXt9O3JldHVybiBfW2RdPVthXSx5aWVsZCBmLnNhc1NlcnZpY2UucmVxdWVzdChoLF8pfSkoKX1zaG93RGlmZnMoYSxkLGgpe3ZhciBmPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2xldCBfPXt9O3JldHVybiBfW2RdPVthXSx5aWVsZCBmLnNhc1NlcnZp'@; put 'Y2UucmVxdWVzdChoLF8se3VzZUNvbXB1dGVBcGk6ITF9KX0pKCl9cmVqZWN0aW5nKGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtsZXQgXz17fTtyZXR1cm4gX1tkXT1bYV0seWllbGQgZi5zYXNTZXJ2aWNlLnJlcXVlc3QoaCxfLHt1c2VDb21wdXRlQXBpOiExfSl9'@; put 'KSgpfWFwcHJvdmVUYWJsZShhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7bGV0IF89e307cmV0dXJuIF9bZF09W2FdLHlpZWxkIGYuc2FzU2VydmljZS5yZXF1ZXN0KGgsXyl9KSgpfWdldEhpc3RvcnkoYSxkLGgpe3ZhciBmPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9u'@; put 'Kigpe2xldCBfPXt9O3JldHVybiBfW2RdPVthXSx5aWVsZCBmLnNhc1NlcnZpY2UucmVxdWVzdChoLF8pfSkoKX1zZXRRdWVyeVZhcmlhYmxlcyhhLGQpe3RoaXMuY29sdW1ucy5uZXh0KHtkYXRhOntjb2xzOmR9LGxpYmRzOmF9KX1nZXRDaGFuZ2VJbmZvKGEpe3ZhciBkPXRoaXM7cmV0dXJu'@; put 'IGZpKGZ1bmN0aW9uKigpe2xldCBmPXtTQVNDb250cm9sVGFibGU6W3tUQUJMRTphfV19O3JldHVybiB5aWVsZCBkLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL2dldGNoYW5nZWluZm8iLGYpfSkoKX1nZXRRdWVyeVZhbHVlcyhhLGQsaCxmLF8pe3ZhciBUPXRoaXM7cmV0dXJuIGZpKGZ1'@; put 'bmN0aW9uKigpe2xldCBXPXtpd2FudDpbe2xpYmRzOmQsY29sOmEsLi4uZiYme1NUQVJUUk9XOmZ9LC4uLl8mJntST1dTOl99fV19O3JldHVybiBoLmxlbmd0aD4wJiYoVy5GSUxURVJRVUVSWT1oKSx5aWVsZCBULnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL2dldGNvbHZhbHMiLFcpLmNh'@; put 'dGNoKHBlPT57dGhyb3cgcGV9KX0pKCl9c2F2ZVF1ZXJ5KGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7bGV0IGY9e2l3YW50Olt7ZmlsdGVyX3RhYmxlOmF9XSxmaWx0ZXJxdWVyeTpkfSxfPXlpZWxkIGguc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvdmFsaWRhdGVm'@; put 'aWx0ZXIiLGYpO3JldHVybiBoLmZpbHRlci5uZXh0KF8pLF99KSgpfW9wZW5UYWJsZShhKXt2YXIgZD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtsZXQgaD17aXdhbnQ6W3t0YWJsZV9pZDphfV19O3JldHVybiB5aWVsZCBkLnNhc1NlcnZpY2UucmVxdWVzdCgiYXVkaXRvcnMvZ2V0c3Rh'@; put 'Z2V0YWJsZSIsaCl9KSgpfWNoZWNrT3BlcmF0b3IoYSxkLGgpe2xldCBmO3N3aXRjaChhKXtjYXNlIkJFVFdFRU4iOmQgaW5zdGFuY2VvZiBBcnJheSYmKCIiIT09ZFswXSYmIiIhPT1kWzFdP2Y9ZFswXSsiIEFORCAiK2RbMV06IiIhPT1kWzBdJiYiIj09PWRbMV0/KGRbMV09Ii4iLGY9ZFsw'@; put 'XSsiIEFORCAiK2RbMV0pOiIiPT09ZFswXSYmIiIhPT1kWzFdPyhkWzBdPSIuIixmPWRbMF0rIiBBTkQgIitkWzFdKTooZFswXT0iLiIsZFsxXT0iLiIsZj1kWzBdKyIgQU5EICIrZFsxXSkpO2JyZWFrO2Nhc2UiSU4iOmNhc2UiTk9UIElOIjpsZXQgVD1bXTtpZih0eXBlb2YgZDwidSIpZm9y'@; put 'KGxldCBXPTA7VzxkLmxlbmd0aDtXKyspITA9PT1kW1ddLmNoZWNrZWQmJigiY2hhciI9PT1oPygic3RyaW5nIj09dHlwZW9mIGRbV10udmFsJiYoZFtXXS52YWw9ZFtXXS52YWwucmVwbGFjZSgiJyIsIicnIikpLFQucHVzaCgiJyIrZFtXXS52YWwrIiciKSk6KG51bGw9PT1kW1ddLnZhbCYm'@; put 'KGRbV10udmFsPSIuIiksVC5wdXNoKGRbV10udmFsKSkpO2Q9IigiK1QrIikiO2JyZWFrO2Nhc2UiQ09OVEFJTlMiOmE9Ij8iO2JyZWFrO2Nhc2UiTk9UIEVRVUFMIjphPSJuZSJ9cmV0dXJuIm51bSI9PT1oJiZudWxsPT09ZCYmKGQ9Ii4iKSwiUGxlYXNlIHNlbGVjdCB2YWx1ZSI9PT1kJiYo'@; put 'ZD0iIiksLTEhPT1bIj0iLCI+IiwiPCIsIjw9IiwiPj0iLCJuZSJdLmluZGV4T2YoYSkmJiJudW0iPT09aCYmIiI9PT1kJiYoZD0iLiIpLCJCRVRXRUVOIj09PWE/e3ZhbHVlOmYsb3BlcmF0b3I6YX06e3ZhbHVlOmQsb3BlcmF0b3I6YX19d2hlcmVDbGF1c2VDcmVhdG9yKGEsZCxoKXtsZXQg'@; put 'Vyx3ZSxmPSIiLGllPSIiLHBlPVtdO2ZvcihsZXQgWmU9MDtaZTxhLnF1ZXJ5T2JqLmxlbmd0aDtaZSsrKXtsZXQgaXQ9IiIsZXQ9YS5xdWVyeU9ialtaZV07Zm9yKGxldCB5dD0wO3l0PGV0LmVsZW1lbnRzLmxlbmd0aDt5dCsrKXtsZXQgU3QsRXQ9ZXQuZWxlbWVudHNbeXRdO1c9eXQ8ZXQu'@; put 'ZWxlbWVudHMubGVuZ3RoLTE/ZXQuY2xhdXNlTG9naWM6IiI7Zm9yKGxldCBJcj0wO0lyPEV0LnZhbHVlcy5sZW5ndGg7SXIrKyl7aWYoInN0cmluZyI9PXR5cGVvZiBFdC52YWx1ZSYmIm51bWJlciI9PXR5cGVvZiBFdC52YWx1ZXNbSXJdLmZvcm1hdHRlZClFdC52YWx1ZT09PUpTT04uc3Ry'@; put 'aW5naWZ5KEV0LnZhbHVlc1tJcl0uZm9ybWF0dGVkKSYmKFN0PUV0LnZhbHVlc1tJcl0udW5mb3JtYXR0ZWQpO2Vsc2V7bGV0IElpPSJudW1iZXIiIT10eXBlb2YgRXQudmFsdWVzW0lyXS5mb3JtYXR0ZWQmJm51bGwhPT1FdC52YWx1ZXNbSXJdLmZvcm1hdHRlZD9FdC52YWx1ZXNbSXJdLmZv'@; put 'cm1hdHRlZC50cmltKCk6RXQudmFsdWVzW0lyXS5mb3JtYXR0ZWQ7RXQudmFsdWU9PT1JaSYmKFN0PUV0LnZhbHVlc1tJcl0udW5mb3JtYXR0ZWQpfSJQbGVhc2Ugc2VsZWN0IHZhbHVlIj09PUV0LnZhbHVlJiYtMSE9PVsiPSIsIj4iLCI8IiwiPD0iLCI+PSIsIm5lIl0uaW5kZXhPZihFdC5v'@; put 'cGVyYXRvcikmJihTdD0iIiksKCJDT05UQUlOUyI9PT1FdC5vcGVyYXRvcnx8IkxJS0UiPT09RXQub3BlcmF0b3J8fCJCRUdJTlNfV0lUSCI9PT1FdC5vcGVyYXRvcikmJihTdD1FdC52YWx1ZSl9aWYoU3R8fChTdD1FdC52YWx1ZSksRXQudmFsdWUgaW5zdGFuY2VvZiBBcnJheSYmIkJFVFdF'@; put 'RU4iPT09RXQub3BlcmF0b3Ipe1N0PVtdLFN0LnB1c2goRXQudmFsdWVbMF0pLFN0LnB1c2goRXQudmFsdWVbMV0pO2ZvcihsZXQgSXI9MDtJcjxFdC52YWx1ZXMubGVuZ3RoO0lyKyspU3RbMF09PT1FdC52YWx1ZXNbSXJdLmZvcm1hdHRlZCYmKFN0WzBdPUV0LnZhbHVlc1tJcl0udW5mb3Jt'@; put 'YXR0ZWQpLFN0WzFdPT09RXQudmFsdWVzW0lyXS5mb3JtYXR0ZWQmJihTdFsxXT1FdC52YWx1ZXNbSXJdLnVuZm9ybWF0dGVkKX1pZihFdC52YWx1ZSBpbnN0YW5jZW9mIEFycmF5JiYoIklOIj09PUV0Lm9wZXJhdG9yfHwiTk9UIElOIj09PUV0Lm9wZXJhdG9yKSl7U3Q9W10sU3Q9RXQudmFs'@; put 'dWU7Zm9yKGxldCBJcj0wO0lyPEV0LnZhbHVlcy5sZW5ndGg7SXIrKylTdFtJcl0mJlN0W0lyXS52YWw9PT1FdC52YWx1ZXNbSXJdLmZvcm1hdHRlZCYmKFN0W0lyXS52YWw9RXQudmFsdWVzW0lyXS51bmZvcm1hdHRlZCl9bGV0IEp0PUV0LnR5cGU7Y29uc3Qgbm49RXQudmFsdWVWYXJpYWJs'@; put 'ZTtsZXQgY3Isdm49bnVsbD09PUV0LnZhcmlhYmxlPyIiOkV0LnZhcmlhYmxlLE5uPW51bGw9PT1FdC5vcGVyYXRvcj8iIjpFdC5vcGVyYXRvcjtjcj10aGlzLmNoZWNrT3BlcmF0b3IoTm4sU3QsSnQpLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgY3ImJiIoIiE9PWNyWzBdJiYoY3I9Y3IucmVw'@; put 'bGFjZSgiJyIsIicnIikpLE5uPXRoaXMuY2hlY2tPcGVyYXRvcihObixjcixKdCkub3BlcmF0b3IsImNoYXIiPT09SnQmJiJJTiIhPT1ObiYmIk5PVCBJTiIhPT1Obj8odHlwZW9mIGNyPiJ1IiYmKGNyPSIiKSxjcj1ubj8iICIrY3IrIiAiOiIgJyIrY3IrIicgIixpdD1pdCsiICIrdm4rIiAi'@; put 'K05uK2NyK1cpOigibnVtIj09PUp0JiZ0eXBlb2YgY3I+InUiJiYoY3I9Ii4iKSxjcj10eXBlb2YgY3I+InUiPyIiOiIgIitjcisiICIsaXQ9aXQrIiAiK3ZuKyIgIitObitjcitXKX1wZS5wdXNoKGl0KX1pZT0iIjtmb3IobGV0IFplPTA7WmU8cGUubGVuZ3RoO1plKyspd2U9WmU8cGUubGVu'@; put 'Z3RoLTE/ZDoiIixpZT0xPT09cGUubGVuZ3RoP3BlWzBdOmllKyIgKCIrcGVbWmVdKyIpICIrd2U7cmV0dXJuIGY9aWUuc3Vic3RyKDEpLnNsaWNlKDAsLTEpLGllPSJXSEVSRSIraWUrIjsiLHRoaXMucXVlcnkubmV4dCh7d2hlcmVDbGF1c2U6aWUsc3RyaW5nOmYsb2JqOmEsbGliZHM6aH0p'@; put 'LHt3aGVyZUNsYXVzZTppZSxzdHJpbmc6Zn19Y3JlYXRlRmlsdGVyUXVlcnlUYWJsZShhKXtjb25zdCBkPVtdO3JldHVybiBhLmZpbHRlckdyb3Vwcy5mb3JFYWNoKChoLGYpPT57aC5maWx0ZXJDbGF1c2VzLmZvckVhY2goXz0+e2xldCBUPSIiOyJCRVRXRUVOIj09PV8ub3BlcmF0b3I/VD1g'@; put 'JHtfLnZhbHVlWzBdfSBBTkQgJHtfLnZhbHVlWzFdfWA6IklOIj09PV8ub3BlcmF0b3J8fCJOT1QgSU4iPT09Xy5vcGVyYXRvcj8oXy52YWx1ZS5mb3JFYWNoKFc9PntpZihXLmNoZWNrZWQpe2NvbnN0IGllPVcudmFsOyJzdHJpbmciIT10eXBlb2YgaWV8fCgwLHQzLmlzU3BlY2lhbE1pc3Np'@; put 'bmcpKGllKSYmImNoYXIiIT09Xy50eXBlP1QubGVuZ3RoPjA/VCs9YCwke2llfWA6VD1gKCR7aWV9YDpULmxlbmd0aD4wP1QrPWAsJyR7aWUucmVwbGFjZSgvJy9nLCInJyIpfSdgOlQ9YCgnJHtpZS5yZXBsYWNlKC8nL2csIicnIil9J2B9fSksVC5sZW5ndGg+MCYmKFQrPSIpIikpOiIiPT09'@; put 'Xy52YWx1ZT9UPSJjaGFyIj09PV8udHlwZT8iJyAnIjoiLiI6ImNoYXIiPT09Xy50eXBlJiYhXy52YWx1ZVZhcmlhYmxlJiYoVD1gJyR7Xy52YWx1ZS5yZXBsYWNlKC8nL2csIicnIil9J2ApLGQucHVzaCh7R1JPVVBfTE9HSUM6YS5ncm91cExvZ2ljLFNVQkdST1VQX0xPR0lDOmguY2xhdXNl'@; put 'TG9naWN8fCJBTkQiLFNVQkdST1VQX0lEOmYsVkFSSUFCTEVfTk06Xy52YXJpYWJsZSxPUEVSQVRPUl9OTTpfLm9wZXJhdG9yLFJBV19WQUxVRTpUfHxfLnZhbHVlfSl9KX0pLGR9aW5pdGlhbGl6ZUdsb2JhbEZpbHRlckNsYXVzZShhLGQpe2NvbnN0IGg9e3F1ZXJ5T2JqOltdLGNsYXVzZUxv'@; put 'Z2ljOltdLGdyb3VwTG9naWM6aWwoR24sYSkuZmlsdGVyLnF1ZXJ5WzBdLkdST1VQX0xPR0lDfTtpbChHbixhKS5maWx0ZXIuY2xhdXNlcz10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGgpLGlsKEduLGEpLmZpbHRlci5ncm91cExvZ2ljPWlsKEduLGEpLmZpbHRlci5xdWVyeVswXS5H'@; put 'Uk9VUF9MT0dJQztsZXQgZj0iIixfPXtlbGVtZW50czpbXX0sVD0wO2lsKEduLGEpLmZpbHRlci5xdWVyeS5mb3JFYWNoKFc9Pntjb25zdCBpZT17fTtmb3IobGV0IHBlPTA7cGU8ZC5sZW5ndGg7cGUrKylpZihkW3BlXS5OQU1FPT09Vy5WQVJJQUJMRV9OTSl7aWYoZj1XLlNVQkdST1VQX0xP'@; put 'R0lDLGllLmRkdHlwZT1kW3BlXS5ERFRZUEUsaWUudHlwZT1kW3BlXS5UWVBFLGllLm9wZXJhdG9ycz0ibnVtIj09PWRbcGVdLlRZUEU/R24ub3BlcmF0b3JzLm51bU9wZXJhdG9yczpHbi5vcGVyYXRvcnMuY2hhck9wZXJhdG9ycyxpZS5sb2dpYz1udWxsLGllLm9wZXJhdG9yPVcuT1BFUkFU'@; put 'T1JfTk0saWUudmFyaWFibGU9Vy5WQVJJQUJMRV9OTSwiY2hhciI9PT1kW3BlXS5UWVBFKWlmKCJJTiI9PT1XLk9QRVJBVE9SX05NfHwiTk9UIElOIj09PVcuT1BFUkFUT1JfTk0pe2NvbnN0IHdlPVtdLFplPVcuUkFXX1ZBTFVFLnNsaWNlKDEsLTEpLnNwbGl0KCInLCciKTsxPT09WmUubGVu'@; put 'Z3RoP3dlLnB1c2goe2NoZWNrZWQ6ITAsdmFsOlplWzBdLnNsaWNlKDEsLTEpLnJlcGxhY2UoLycnL2csIiciKX0pOlplLmZvckVhY2goKGl0LGV0KT0+e3dlLnB1c2goMD09PWV0P3tjaGVja2VkOiEwLHZhbDppdC5zbGljZSgxKS5yZXBsYWNlKC8nJy9nLCInIil9OmV0PT09WmUubGVuZ3Ro'@; put 'LTE/e2NoZWNrZWQ6ITAsdmFsOml0LnNsaWNlKDAsLTEpLnJlcGxhY2UoLycnL2csIiciKX06e2NoZWNrZWQ6ITAsdmFsOml0LnJlcGxhY2UoLycnL2csIiciKX0pfSksaWUudmFsdWU9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh3ZSl9ZWxzZSBpZS52YWx1ZT1XLlJBV19WQUxVRS5z'@; put 'bGljZSgxLC0xKS5yZXBsYWNlKC8nJy9nLCInIik7ZWxzZSBpZigiSU4iPT09Vy5PUEVSQVRPUl9OTXx8Ik5PVCBJTiI9PT1XLk9QRVJBVE9SX05NKXtjb25zdCB3ZT1bXTtXLlJBV19WQUxVRS5zbGljZSgxLC0xKS5zcGxpdCgiLCIpLmZvckVhY2goKGl0LGV0KT0+e3dlLnB1c2goe2NoZWNr'@; put 'ZWQ6ITAsdmFsOml0fSl9KSxpZS52YWx1ZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHdlKX1lbHNlIGlmKCJCRVRXRUVOIj09PVcuT1BFUkFUT1JfTk0pe2NvbnN0IHdlPVcuUkFXX1ZBTFVFLnNwbGl0KCIgQU5EICIpO2llLnZhbHVlPXdlfWVsc2UgaWUudmFsdWU9Vy5SQVdfVkFM'@; put 'VUU7aWUudmFsdWVzPVtdLFQ9PT1XLlNVQkdST1VQX0lEfHwoaWwoR24sYSkuZmlsdGVyLmNsYXVzZXMucXVlcnlPYmoucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKF8pKSxpbChHbixhKS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9ialtUXS5jbGF1c2VMb2dpYz1mLGlsKEduLGEp'@; put 'LmZpbHRlci5jbGF1c2VzLnF1ZXJ5T2JqW1RdLmludmFsaWRDbGF1c2U9ITEsVCsrLF8uZWxlbWVudHM9W10pLF8uZWxlbWVudHMucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGllKSk7YnJlYWt9fSksXy5lbGVtZW50cy5sZW5ndGg+MCYmKGlsKEduLGEpLmZpbHRlci5jbGF1'@; put 'c2VzLnF1ZXJ5T2JqLnB1c2godGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShfKSksaWwoR24sYSkuZmlsdGVyLmNsYXVzZXMucXVlcnlPYmpbVF0uY2xhdXNlTG9naWM9ZixpbChHbixhKS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9ialtUXS5pbnZhbGlkQ2xhdXNlPSExKSxpbChHbixhKS5m'@; put 'aWx0ZXIucXVlcnk9W119cmVtb3ZlQ2xhdXNlKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7cmV0dXJuIGEucmVtb3ZlUXVlcnkubmV4dCghMCksITB9KSgpfXNwZWNDb252ZXJzaW9uKGEpe2xldCBkPXt9LGg9W107aWYoaD1hLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi5O'@; put 'QU1FLnRvVXBwZXJDYXNlKCl9KSxhIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCBmPTA7ZjxoLmxlbmd0aDtmKyspZFtoW2ZdXT0xPT09YVtmXS5UWVBFP3tjb2xUeXBlOiJudW0iLGNvbExlbmd0aDphW2ZdLkxFTkdUSH06e2NvbFR5cGU6InN0cmluZyIsY29sTGVuZ3RoOmFbZl0uTEVOR1RI'@; put 'fTtyZXR1cm4gZH1zZXRTdWJtaXRSZWFkeSgpe3RoaXMuc2V0U3VibWl0Lm5leHQoITApfXBhcnNlRm9ybWF0cyhhKXtjb25zdCBkPXt9LGg9YS52YXJzO2ZvcihsZXQgZiBvZiBPYmplY3Qua2V5cyhoKSl7Y29uc3QgXz1oW2ZdLnR5cGUsVD1oW2ZdLmxlbmd0aDsibnVtIj09PV8/ZFtmXT0i'@; put 'YmVzdC4iOiJjaGFyIj09PV8mJihkW2ZdPWAkY2hhciR7VH0uYCl9cmV0dXJuIGR9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKG9hKSxhcihUYyksYXIodzApKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9'@; put 'KSxjfSkoKTtmdW5jdGlvbiBhNChjKXtyZXR1cm4gbnVsbCE9YyYmImZhbHNlIiE9YCR7Y31gfWZ1bmN0aW9uIEJvZShjLGw9MCl7cmV0dXJuIGZ1bmN0aW9uIEVWZShjKXtyZXR1cm4haXNOYU4ocGFyc2VGbG9hdChjKSkmJiFpc05hTihOdW1iZXIoYykpfShjKT9OdW1iZXIoYyk6bH1mdW5j'@; put 'dGlvbiBQMChjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIE5pP2MubmF0aXZlRWxlbWVudDpjfWNvbnN0IG53PXtzY2hlZHVsZShjKXtsZXQgbD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsYT1jYW5jZWxBbmltYXRpb25GcmFtZTtjb25zdHtkZWxlZ2F0ZTpkfT1udztkJiYobD1kLnJlcXVlc3RBbmlt'@; put 'YXRpb25GcmFtZSxhPWQuY2FuY2VsQW5pbWF0aW9uRnJhbWUpO2NvbnN0IGg9bChmPT57YT12b2lkIDAsYyhmKX0pO3JldHVybiBuZXcgZWUoKCk9PmE/LihoKSl9LHJlcXVlc3RBbmltYXRpb25GcmFtZSguLi5jKXtjb25zdHtkZWxlZ2F0ZTpsfT1udztyZXR1cm4obD8ucmVxdWVzdEFuaW1h'@; put 'dGlvbkZyYW1lfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpKC4uLmMpfSxjYW5jZWxBbmltYXRpb25GcmFtZSguLi5jKXtjb25zdHtkZWxlZ2F0ZTpsfT1udztyZXR1cm4obD8uY2FuY2VsQW5pbWF0aW9uRnJhbWV8fGNhbmNlbEFuaW1hdGlvbkZyYW1lKSguLi5jKX0sZGVsZWdhdGU6dm9pZCAw'@; put 'fSxqb2U9bmV3IGNsYXNzIFRWZSBleHRlbmRzIEJQe2ZsdXNoKGwpe3RoaXMuX2FjdGl2ZT0hMDtjb25zdCBhPXRoaXMuX3NjaGVkdWxlZDt0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO2NvbnN0e2FjdGlvbnM6ZH09dGhpcztsZXQgaDtsPWx8fGQuc2hpZnQoKTtkb3tpZihoPWwuZXhlY3V0ZShs'@; put 'LnN0YXRlLGwuZGVsYXkpKWJyZWFrfXdoaWxlKChsPWRbMF0pJiZsLmlkPT09YSYmZC5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsaCl7Zm9yKDsobD1kWzBdKSYmbC5pZD09PWEmJmQuc2hpZnQoKTspbC51bnN1YnNjcmliZSgpO3Rocm93IGh9fX0oY2xhc3MgQVZlIGV4dGVuZHMgTlB7'@; put 'Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLGEpLHRoaXMuc2NoZWR1bGVyPWwsdGhpcy53b3JrPWF9cmVxdWVzdEFzeW5jSWQobCxhLGQ9MCl7cmV0dXJuIG51bGwhPT1kJiZkPjA/c3VwZXIucmVxdWVzdEFzeW5jSWQobCxhLGQpOihsLmFjdGlvbnMucHVzaCh0aGlzKSxsLl9zY2hlZHVsZWR8'@; put 'fChsLl9zY2hlZHVsZWQ9bncucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT5sLmZsdXNoKHZvaWQgMCkpKSl9cmVjeWNsZUFzeW5jSWQobCxhLGQ9MCl7dmFyIGg7aWYobnVsbCE9ZD9kPjA6dGhpcy5kZWxheT4wKXJldHVybiBzdXBlci5yZWN5Y2xlQXN5bmNJZChsLGEsZCk7Y29uc3R7YWN0'@; put 'aW9uczpmfT1sO251bGwhPWEmJihudWxsPT09KGg9ZltmLmxlbmd0aC0xXSl8fHZvaWQgMD09PWg/dm9pZCAwOmguaWQpIT09YSYmKG53LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEpLGwuX3NjaGVkdWxlZD12b2lkIDApfX0pO2xldCBYeixEVmU9MTtjb25zdCBaQT17fTtmdW5jdGlvbiB6b2Uo'@; put 'Yyl7cmV0dXJuIGMgaW4gWkEmJihkZWxldGUgWkFbY10sITApfWNvbnN0IElWZT17c2V0SW1tZWRpYXRlKGMpe2NvbnN0IGw9RFZlKys7cmV0dXJuIFpBW2xdPSEwLFh6fHwoWHo9UHJvbWlzZS5yZXNvbHZlKCkpLFh6LnRoZW4oKCk9PnpvZShsKSYmYygpKSxsfSxjbGVhckltbWVkaWF0ZShj'@; put 'KXt6b2UoYyl9fSx7c2V0SW1tZWRpYXRlOkxWZSxjbGVhckltbWVkaWF0ZTpSVmV9PUlWZSxZQT17c2V0SW1tZWRpYXRlKC4uLmMpe2NvbnN0e2RlbGVnYXRlOmx9PVlBO3JldHVybihsPy5zZXRJbW1lZGlhdGV8fExWZSkoLi4uYyl9LGNsZWFySW1tZWRpYXRlKGMpe2NvbnN0e2RlbGVnYXRl'@; put 'Omx9PVlBO3JldHVybihsPy5jbGVhckltbWVkaWF0ZXx8UlZlKShjKX0sZGVsZWdhdGU6dm9pZCAwfTtuZXcgY2xhc3MgUFZlIGV4dGVuZHMgQlB7Zmx1c2gobCl7dGhpcy5fYWN0aXZlPSEwO2NvbnN0IGE9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7Y29uc3R7YWN0'@; put 'aW9uczpkfT10aGlzO2xldCBoO2w9bHx8ZC5zaGlmdCgpO2Rve2lmKGg9bC5leGVjdXRlKGwuc3RhdGUsbC5kZWxheSkpYnJlYWt9d2hpbGUoKGw9ZFswXSkmJmwuaWQ9PT1hJiZkLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxoKXtmb3IoOyhsPWRbMF0pJiZsLmlkPT09YSYmZC5zaGlm'@; put 'dCgpOylsLnVuc3Vic2NyaWJlKCk7dGhyb3cgaH19fShjbGFzcyBPVmUgZXh0ZW5kcyBOUHtjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwsYSksdGhpcy5zY2hlZHVsZXI9bCx0aGlzLndvcms9YX1yZXF1ZXN0QXN5bmNJZChsLGEsZD0wKXtyZXR1cm4gbnVsbCE9PWQmJmQ+MD9zdXBlci5yZXF1'@; put 'ZXN0QXN5bmNJZChsLGEsZCk6KGwuYWN0aW9ucy5wdXNoKHRoaXMpLGwuX3NjaGVkdWxlZHx8KGwuX3NjaGVkdWxlZD1ZQS5zZXRJbW1lZGlhdGUobC5mbHVzaC5iaW5kKGwsdm9pZCAwKSkpKX1yZWN5Y2xlQXN5bmNJZChsLGEsZD0wKXt2YXIgaDtpZihudWxsIT1kP2Q+MDp0aGlzLmRlbGF5'@; put 'PjApcmV0dXJuIHN1cGVyLnJlY3ljbGVBc3luY0lkKGwsYSxkKTtjb25zdHthY3Rpb25zOmZ9PWw7bnVsbCE9YSYmKG51bGw9PT0oaD1mW2YubGVuZ3RoLTFdKXx8dm9pZCAwPT09aD92b2lkIDA6aC5pZCkhPT1hJiYoWUEuY2xlYXJJbW1lZGlhdGUoYSksbC5fc2NoZWR1bGVkPT09YSYmKGwu'@; put 'X3NjaGVkdWxlZD12b2lkIDApKX19KTtmdW5jdGlvbiBVb2UoYyxsPWliKXtyZXR1cm4gZnVuY3Rpb24gSFZlKGMpe3JldHVybiBYZSgobCxhKT0+e2xldCBkPSExLGg9bnVsbCxmPW51bGwsXz0hMTtjb25zdCBUPSgpPT57aWYoZj8udW5zdWJzY3JpYmUoKSxmPW51bGwsZCl7ZD0hMTtjb25z'@; put 'dCBpZT1oO2g9bnVsbCxhLm5leHQoaWUpfV8mJmEuY29tcGxldGUoKX0sVz0oKT0+e2Y9bnVsbCxfJiZhLmNvbXBsZXRlKCl9O2wuc3Vic2NyaWJlKFVlKGEsaWU9PntkPSEwLGg9aWUsZnx8S3IoYyhpZSkpLnN1YnNjcmliZShmPVVlKGEsVCxXKSl9LCgpPT57Xz0hMCwoIWR8fCFmfHxmLmNs'@; put 'b3NlZCkmJmEuY29tcGxldGUoKX0pKX0pfSgoKT0+alAoYyxsKSl9bGV0IEp6O3RyeXtKej10eXBlb2YgSW50bDwidSImJkludGwudjhCcmVha0l0ZXJhdG9yfWNhdGNoe0p6PSExfWxldCBydyxReixab2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9wbGF0Zm9ybUlkPWEs'@; put 'dGhpcy5pc0Jyb3dzZXI9dGhpcy5fcGxhdGZvcm1JZD9Scyh0aGlzLl9wbGF0Zm9ybUlkKToib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50JiYhIWRvY3VtZW50LHRoaXMuRURHRT10aGlzLmlzQnJvd3NlciYmLyhlZGdlKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdGhpcy5UUklERU5U'@; put 'PXRoaXMuaXNCcm93c2VyJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHRoaXMuQkxJTks9dGhpcy5pc0Jyb3dzZXImJiEoIXdpbmRvdy5jaHJvbWUmJiFKeikmJnR5cGVvZiBDU1M8InUiJiYhdGhpcy5FREdFJiYhdGhpcy5UUklERU5ULHRoaXMuV0VCS0lU'@; put 'PXRoaXMuaXNCcm93c2VyJiYvQXBwbGVXZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhdGhpcy5CTElOSyYmIXRoaXMuRURHRSYmIXRoaXMuVFJJREVOVCx0aGlzLklPUz10aGlzLmlzQnJvd3NlciYmL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2Vu'@; put 'dCkmJiEoIk1TU3RyZWFtImluIHdpbmRvdyksdGhpcy5GSVJFRk9YPXRoaXMuaXNCcm93c2VyJiYvKGZpcmVmb3h8bWluZWZpZWxkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdGhpcy5BTkRST0lEPXRoaXMuaXNCcm93c2VyJiYvYW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJB'@; put 'Z2VudCkmJiF0aGlzLlRSSURFTlQsdGhpcy5TQUZBUkk9dGhpcy5pc0Jyb3dzZXImJi9zYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZ0aGlzLldFQktJVH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoR3MpKX0sYy5cdTAyNzVw'@; put 'cm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtmdW5jdGlvbiBpdyhjKXtyZXR1cm4gZnVuY3Rpb24gTlZlKCl7aWYobnVsbD09cncmJnR5cGVvZiB3aW5kb3c8InUiKXRyeXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIs'@; put 'bnVsbCxPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6KCk9PnJ3PSEwfSkpfWZpbmFsbHl7cnc9cnd8fCExfXJldHVybiByd30oKT9jOiEhYy5jYXB0dXJlfWZ1bmN0aW9uIFdvZShjKXtpZihmdW5jdGlvbiBWVmUoKXtpZihudWxsPT1Reil7Y29uc3QgYz10eXBlb2Yg'@; put 'ZG9jdW1lbnQ8InUiP2RvY3VtZW50LmhlYWQ6bnVsbDtRej0hKCFjfHwhYy5jcmVhdGVTaGFkb3dSb290JiYhYy5hdHRhY2hTaGFkb3cpfXJldHVybiBRen0oKSl7Y29uc3QgbD1jLmdldFJvb3ROb2RlP2MuZ2V0Um9vdE5vZGUoKTpudWxsO2lmKHR5cGVvZiBTaGFkb3dSb290PCJ1IiYmU2hh'@; put 'ZG93Um9vdCYmbCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpcmV0dXJuIGx9cmV0dXJuIG51bGx9ZnVuY3Rpb24gR0EoYyl7cmV0dXJuIGMuY29tcG9zZWRQYXRoP2MuY29tcG9zZWRQYXRoKClbMF06Yy50YXJnZXR9bGV0IGpWZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlz'@; put 'Ll9uZ1pvbmU9YSx0aGlzLl9wbGF0Zm9ybT1kLHRoaXMuX3Njcm9sbGVkPW5ldyBiZSx0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb249bnVsbCx0aGlzLl9zY3JvbGxlZENvdW50PTAsdGhpcy5zY3JvbGxDb250YWluZXJzPW5ldyBNYXAsdGhpcy5fZG9jdW1lbnQ9aH1yZWdpc3RlcihhKXt0aGlz'@; put 'LnNjcm9sbENvbnRhaW5lcnMuaGFzKGEpfHx0aGlzLnNjcm9sbENvbnRhaW5lcnMuc2V0KGEsYS5lbGVtZW50U2Nyb2xsZWQoKS5zdWJzY3JpYmUoKCk9PnRoaXMuX3Njcm9sbGVkLm5leHQoYSkpKX1kZXJlZ2lzdGVyKGEpe2NvbnN0IGQ9dGhpcy5zY3JvbGxDb250YWluZXJzLmdldChhKTtk'@; put 'JiYoZC51bnN1YnNjcmliZSgpLHRoaXMuc2Nyb2xsQ29udGFpbmVycy5kZWxldGUoYSkpfXNjcm9sbGVkKGE9MjApe3JldHVybiB0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXI/bmV3IEtlKGQ9Pnt0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb258fHRoaXMuX2FkZEdsb2JhbExpc3RlbmVyKCk7Y29u'@; put 'c3QgaD1hPjA/dGhpcy5fc2Nyb2xsZWQucGlwZShVb2UoYSkpLnN1YnNjcmliZShkKTp0aGlzLl9zY3JvbGxlZC5zdWJzY3JpYmUoZCk7cmV0dXJuIHRoaXMuX3Njcm9sbGVkQ291bnQrKywoKT0+e2gudW5zdWJzY3JpYmUoKSx0aGlzLl9zY3JvbGxlZENvdW50LS0sdGhpcy5fc2Nyb2xsZWRD'@; put 'b3VudHx8dGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKX19KTpXaSgpfW5nT25EZXN0cm95KCl7dGhpcy5fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKSx0aGlzLnNjcm9sbENvbnRhaW5lcnMuZm9yRWFjaCgoYSxkKT0+dGhpcy5kZXJlZ2lzdGVyKGQpKSx0aGlzLl9zY3JvbGxlZC5jb21wbGV0'@; put 'ZSgpfWFuY2VzdG9yU2Nyb2xsZWQoYSxkKXtjb25zdCBoPXRoaXMuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKGEpO3JldHVybiB0aGlzLnNjcm9sbGVkKGQpLnBpcGUoSWEoZj0+IWZ8fGguaW5kZXhPZihmKT4tMSkpfWdldEFuY2VzdG9yU2Nyb2xsQ29udGFpbmVycyhhKXtjb25zdCBk'@; put 'PVtdO3JldHVybiB0aGlzLnNjcm9sbENvbnRhaW5lcnMuZm9yRWFjaCgoaCxmKT0+e3RoaXMuX3Njcm9sbGFibGVDb250YWluc0VsZW1lbnQoZixhKSYmZC5wdXNoKGYpfSksZH1fZ2V0V2luZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9X3Njcm9sbGFi'@; put 'bGVDb250YWluc0VsZW1lbnQoYSxkKXtsZXQgaD1QMChkKSxmPWEuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQ7ZG97aWYoaD09ZilyZXR1cm4hMH13aGlsZShoPWgucGFyZW50RWxlbWVudCk7cmV0dXJuITF9X2FkZEdsb2JhbExpc3RlbmVyKCl7dGhpcy5fZ2xvYmFsU3Vic2NyaXB0'@; put 'aW9uPXRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+bjIodGhpcy5fZ2V0V2luZG93KCkuZG9jdW1lbnQsInNjcm9sbCIpLnN1YnNjcmliZSgoKT0+dGhpcy5fc2Nyb2xsZWQubmV4dCgpKSl9X3JlbW92ZUdsb2JhbExpc3RlbmVyKCl7dGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9u'@; put 'JiYodGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uPW51bGwpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihObyksYXIoWm9lKSxhcihMcyw4KSl9LGMuXHUwMjc1cHJvdj1ocih7'@; put 'dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCksVVZlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuX3BsYXRmb3JtPWEsdGhpcy5fY2hhbmdlPW5ldyBiZSx0aGlzLl9jaGFuZ2VMaXN0ZW5lcj1mPT57dGhpcy5fY2hhbmdl'@; put 'Lm5leHQoZil9LHRoaXMuX2RvY3VtZW50PWgsZC5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2lmKGEuaXNCcm93c2VyKXtjb25zdCBmPXRoaXMuX2dldFdpbmRvdygpO2YuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9jaGFuZ2VMaXN0ZW5lciksZi5hZGRFdmVudExpc3RlbmVyKCJv'@; put 'cmllbnRhdGlvbmNoYW5nZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpfXRoaXMuY2hhbmdlKCkuc3Vic2NyaWJlKCgpPT50aGlzLl92aWV3cG9ydFNpemU9bnVsbCl9KX1uZ09uRGVzdHJveSgpe2lmKHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcil7Y29uc3QgYT10aGlzLl9nZXRXaW5kb3coKTth'@; put 'LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHRoaXMuX2NoYW5nZUxpc3RlbmVyKX10aGlzLl9jaGFuZ2UuY29tcGxldGUoKX1nZXRWaWV3cG9ydFNpemUoKXt0aGlzLl92'@; put 'aWV3cG9ydFNpemV8fHRoaXMuX3VwZGF0ZVZpZXdwb3J0U2l6ZSgpO2NvbnN0IGE9e3dpZHRoOnRoaXMuX3ZpZXdwb3J0U2l6ZS53aWR0aCxoZWlnaHQ6dGhpcy5fdmlld3BvcnRTaXplLmhlaWdodH07cmV0dXJuIHRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcnx8KHRoaXMuX3ZpZXdwb3J0U2l6'@; put 'ZT1udWxsKSxhfWdldFZpZXdwb3J0UmVjdCgpe2NvbnN0IGE9dGhpcy5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCkse3dpZHRoOmQsaGVpZ2h0Omh9PXRoaXMuZ2V0Vmlld3BvcnRTaXplKCk7cmV0dXJue3RvcDphLnRvcCxsZWZ0OmEubGVmdCxib3R0b206YS50b3AraCxyaWdodDphLmxl'@; put 'ZnQrZCxoZWlnaHQ6aCx3aWR0aDpkfX1nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCl7aWYoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlcilyZXR1cm57dG9wOjAsbGVmdDowfTtjb25zdCBhPXRoaXMuX2RvY3VtZW50LGQ9dGhpcy5fZ2V0V2luZG93KCksaD1hLmRvY3VtZW50RWxlbWVudCxm'@; put 'PWguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3RvcDotZi50b3B8fGEuYm9keS5zY3JvbGxUb3B8fGQuc2Nyb2xsWXx8aC5zY3JvbGxUb3B8fDAsbGVmdDotZi5sZWZ0fHxhLmJvZHkuc2Nyb2xsTGVmdHx8ZC5zY3JvbGxYfHxoLnNjcm9sbExlZnR8fDB9fWNoYW5nZShhPTIwKXty'@; put 'ZXR1cm4gYT4wP3RoaXMuX2NoYW5nZS5waXBlKFVvZShhKSk6dGhpcy5fY2hhbmdlfV9nZXRXaW5kb3coKXtyZXR1cm4gdGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvd31fdXBkYXRlVmlld3BvcnRTaXplKCl7Y29uc3QgYT10aGlzLl9nZXRXaW5kb3coKTt0aGlzLl92aWV3cG9y'@; put 'dFNpemU9dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyP3t3aWR0aDphLmlubmVyV2lkdGgsaGVpZ2h0OmEuaW5uZXJIZWlnaHR9Ont3aWR0aDowLGhlaWdodDowfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoWm9lKSxhcihObyksYXIoTHMsOCkp'@; put 'fSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpLFpWZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30p'@; put 'LGMuXHUwMjc1aW5qPW1pKHt9KSxjfSkoKTtjb25zdCBhQmU9bmV3IFNpKCJjZGstZGlyLWRvYyIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6ZnVuY3Rpb24gbEJlKCl7cmV0dXJuIEZpKExzKX19KSxjQmU9L14oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlst'@; put 'X10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pL2k7bGV0IEtvZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMudmFsdWU9Imx0ciIsdGhpcy5jaGFuZ2U9bmV3IEVyLGEmJih0aGlzLnZhbHVlPWZ1bmN0'@; put 'aW9uIHVCZShjKXtjb25zdCBsPWM/LnRvTG93ZXJDYXNlKCl8fCIiO3JldHVybiJhdXRvIj09PWwmJnR5cGVvZiBuYXZpZ2F0b3I8InUiJiZuYXZpZ2F0b3I/Lmxhbmd1YWdlP2NCZS50ZXN0KG5hdmlnYXRvci5sYW5ndWFnZSk/InJ0bCI6Imx0ciI6InJ0bCI9PT1sPyJydGwiOiJsdHIifSgo'@; put 'YS5ib2R5P2EuYm9keS5kaXI6bnVsbCl8fChhLmRvY3VtZW50RWxlbWVudD9hLmRvY3VtZW50RWxlbWVudC5kaXI6bnVsbCl8fCJsdHIiKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmNoYW5nZS5jb21wbGV0ZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KShhcihhQmUsOCkpfSxjLlx1MDI3NXByb3Y9aHIoe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpO2Z1bmN0aW9uIGVVKGMsbCxhKXtmb3IobGV0IGQgaW4gbClpZihsLmhhc093blByb3BlcnR5KGQpKXtjb25zdCBoPWxbZF07aD9jLnNldFBy'@; put 'b3BlcnR5KGQsaCxhPy5oYXMoZCk/ImltcG9ydGFudCI6IiIpOmMucmVtb3ZlUHJvcGVydHkoZCl9cmV0dXJuIGN9ZnVuY3Rpb24gejcoYyxsKXtjb25zdCBhPWw/IiI6Im5vbmUiO2VVKGMuc3R5bGUseyJ0b3VjaC1hY3Rpb24iOmw/IiI6Im5vbmUiLCItd2Via2l0LXVzZXItZHJhZyI6bD8i'@; put 'Ijoibm9uZSIsIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciI6bD8iIjoidHJhbnNwYXJlbnQiLCJ1c2VyLXNlbGVjdCI6YSwiLW1zLXVzZXItc2VsZWN0IjphLCItd2Via2l0LXVzZXItc2VsZWN0IjphLCItbW96LXVzZXItc2VsZWN0IjphfSl9ZnVuY3Rpb24gWG9lKGMsbCxhKXtlVShj'@; put 'LnN0eWxlLHtwb3NpdGlvbjpsPyIiOiJmaXhlZCIsdG9wOmw/IiI6IjAiLG9wYWNpdHk6bD8iIjoiMCIsbGVmdDpsPyIiOiItOTk5ZW0ifSxhKX1mdW5jdGlvbiAkQShjLGwpe3JldHVybiBsJiYibm9uZSIhPWw/YysiICIrbDpjfWZ1bmN0aW9uIEpvZShjKXtjb25zdCBsPWMudG9Mb3dlckNh'@; put 'c2UoKS5pbmRleE9mKCJtcyIpPi0xPzE6MWUzO3JldHVybiBwYXJzZUZsb2F0KGMpKmx9ZnVuY3Rpb24gdFUoYyxsKXtyZXR1cm4gYy5nZXRQcm9wZXJ0eVZhbHVlKGwpLnNwbGl0KCIsIikubWFwKGQ9PmQudHJpbSgpKX1mdW5jdGlvbiBuVShjKXtjb25zdCBsPWMuZ2V0Qm91bmRpbmdDbGll'@; put 'bnRSZWN0KCk7cmV0dXJue3RvcDpsLnRvcCxyaWdodDpsLnJpZ2h0LGJvdHRvbTpsLmJvdHRvbSxsZWZ0OmwubGVmdCx3aWR0aDpsLndpZHRoLGhlaWdodDpsLmhlaWdodCx4OmwueCx5OmwueX19ZnVuY3Rpb24gclUoYyxsLGEpe2NvbnN0e3RvcDpkLGJvdHRvbTpoLGxlZnQ6ZixyaWdodDpf'@; put 'fT1jO3JldHVybiBhPj1kJiZhPD1oJiZsPj1mJiZsPD1ffWZ1bmN0aW9uIG93KGMsbCxhKXtjLnRvcCs9bCxjLmJvdHRvbT1jLnRvcCtjLmhlaWdodCxjLmxlZnQrPWEsYy5yaWdodD1jLmxlZnQrYy53aWR0aH1mdW5jdGlvbiBRb2UoYyxsLGEsZCl7Y29uc3R7dG9wOmgscmlnaHQ6Zixib3R0'@; put 'b206XyxsZWZ0OlQsd2lkdGg6VyxoZWlnaHQ6aWV9PWMscGU9VypsLHdlPWllKmw7cmV0dXJuIGQ+aC13ZSYmZDxfK3dlJiZhPlQtcGUmJmE8ZitwZX1jbGFzcyBlc2V7Y29uc3RydWN0b3IobCl7dGhpcy5fZG9jdW1lbnQ9bCx0aGlzLnBvc2l0aW9ucz1uZXcgTWFwfWNsZWFyKCl7dGhpcy5w'@; put 'b3NpdGlvbnMuY2xlYXIoKX1jYWNoZShsKXt0aGlzLmNsZWFyKCksdGhpcy5wb3NpdGlvbnMuc2V0KHRoaXMuX2RvY3VtZW50LHtzY3JvbGxQb3NpdGlvbjp0aGlzLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKX0pLGwuZm9yRWFjaChhPT57dGhpcy5wb3NpdGlvbnMuc2V0KGEse3Njcm9s'@; put 'bFBvc2l0aW9uOnt0b3A6YS5zY3JvbGxUb3AsbGVmdDphLnNjcm9sbExlZnR9LGNsaWVudFJlY3Q6blUoYSl9KX0pfWhhbmRsZVNjcm9sbChsKXtjb25zdCBhPUdBKGwpLGQ9dGhpcy5wb3NpdGlvbnMuZ2V0KGEpO2lmKCFkKXJldHVybiBudWxsO2NvbnN0IGg9ZC5zY3JvbGxQb3NpdGlvbjts'@; put 'ZXQgZixfO2lmKGE9PT10aGlzLl9kb2N1bWVudCl7Y29uc3QgaWU9dGhpcy5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCk7Zj1pZS50b3AsXz1pZS5sZWZ0fWVsc2UgZj1hLnNjcm9sbFRvcCxfPWEuc2Nyb2xsTGVmdDtjb25zdCBUPWgudG9wLWYsVz1oLmxlZnQtXztyZXR1cm4gdGhpcy5w'@; put 'b3NpdGlvbnMuZm9yRWFjaCgoaWUscGUpPT57aWUuY2xpZW50UmVjdCYmYSE9PXBlJiZhLmNvbnRhaW5zKHBlKSYmb3coaWUuY2xpZW50UmVjdCxULFcpfSksaC50b3A9ZixoLmxlZnQ9Xyx7dG9wOlQsbGVmdDpXfX1nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJue3RvcDp3aW5k'@; put 'b3cuc2Nyb2xsWSxsZWZ0OndpbmRvdy5zY3JvbGxYfX19ZnVuY3Rpb24gdHNlKGMpe2NvbnN0IGw9Yy5jbG9uZU5vZGUoITApLGE9bC5xdWVyeVNlbGVjdG9yQWxsKCJbaWRdIiksZD1jLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7bC5yZW1vdmVBdHRyaWJ1dGUoImlkIik7Zm9yKGxldCBoPTA7'@; put 'aDxhLmxlbmd0aDtoKyspYVtoXS5yZW1vdmVBdHRyaWJ1dGUoImlkIik7cmV0dXJuImNhbnZhcyI9PT1kP2lzZShjLGwpOigiaW5wdXQiPT09ZHx8InNlbGVjdCI9PT1kfHwidGV4dGFyZWEiPT09ZCkmJnJzZShjLGwpLG5zZSgiY2FudmFzIixjLGwsaXNlKSxuc2UoImlucHV0LCB0ZXh0YXJl'@; put 'YSwgc2VsZWN0IixjLGwscnNlKSxsfWZ1bmN0aW9uIG5zZShjLGwsYSxkKXtjb25zdCBoPWwucXVlcnlTZWxlY3RvckFsbChjKTtpZihoLmxlbmd0aCl7Y29uc3QgZj1hLnF1ZXJ5U2VsZWN0b3JBbGwoYyk7Zm9yKGxldCBfPTA7XzxoLmxlbmd0aDtfKyspZChoW19dLGZbX10pfX1sZXQgaEJl'@; put 'PTA7ZnVuY3Rpb24gcnNlKGMsbCl7ImZpbGUiIT09bC50eXBlJiYobC52YWx1ZT1jLnZhbHVlKSwicmFkaW8iPT09bC50eXBlJiZsLm5hbWUmJihsLm5hbWU9YG1hdC1jbG9uZS0ke2wubmFtZX0tJHtoQmUrK31gKX1mdW5jdGlvbiBpc2UoYyxsKXtjb25zdCBhPWwuZ2V0Q29udGV4dCgiMmQi'@; put 'KTtpZihhKXRyeXthLmRyYXdJbWFnZShjLDAsMCl9Y2F0Y2h7fX1jb25zdCBvc2U9aXcoe3Bhc3NpdmU6ITB9KSxxQT1pdyh7cGFzc2l2ZTohMX0pLGlVPW5ldyBTZXQoWyJwb3NpdGlvbiJdKTtjbGFzcyBwQmV7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfHwhKCF0aGlz'@; put 'Ll9kcm9wQ29udGFpbmVyfHwhdGhpcy5fZHJvcENvbnRhaW5lci5kaXNhYmxlZCl9c2V0IGRpc2FibGVkKGwpe2NvbnN0IGE9YTQobCk7YSE9PXRoaXMuX2Rpc2FibGVkJiYodGhpcy5fZGlzYWJsZWQ9YSx0aGlzLl90b2dnbGVOYXRpdmVEcmFnSW50ZXJhY3Rpb25zKCksdGhpcy5faGFuZGxl'@; put 'cy5mb3JFYWNoKGQ9Pno3KGQsYSkpKX1jb25zdHJ1Y3RvcihsLGEsZCxoLGYsXyl7dGhpcy5fY29uZmlnPWEsdGhpcy5fZG9jdW1lbnQ9ZCx0aGlzLl9uZ1pvbmU9aCx0aGlzLl92aWV3cG9ydFJ1bGVyPWYsdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeT1fLHRoaXMuX3Bhc3NpdmVUcmFuc2Zvcm09'@; put 'e3g6MCx5OjB9LHRoaXMuX2FjdGl2ZVRyYW5zZm9ybT17eDowLHk6MH0sdGhpcy5faGFzU3RhcnRlZERyYWdnaW5nPSExLHRoaXMuX21vdmVFdmVudHM9bmV3IGJlLHRoaXMuX3BvaW50ZXJNb3ZlU3Vic2NyaXB0aW9uPWVlLkVNUFRZLHRoaXMuX3BvaW50ZXJVcFN1YnNjcmlwdGlvbj1lZS5F'@; put 'TVBUWSx0aGlzLl9zY3JvbGxTdWJzY3JpcHRpb249ZWUuRU1QVFksdGhpcy5fcmVzaXplU3Vic2NyaXB0aW9uPWVlLkVNUFRZLHRoaXMuX2JvdW5kYXJ5RWxlbWVudD1udWxsLHRoaXMuX25hdGl2ZUludGVyYWN0aW9uc0VuYWJsZWQ9ITAsdGhpcy5faGFuZGxlcz1bXSx0aGlzLl9kaXNhYmxl'@; put 'ZEhhbmRsZXM9bmV3IFNldCx0aGlzLl9kaXJlY3Rpb249Imx0ciIsdGhpcy5kcmFnU3RhcnREZWxheT0wLHRoaXMuX2Rpc2FibGVkPSExLHRoaXMuYmVmb3JlU3RhcnRlZD1uZXcgYmUsdGhpcy5zdGFydGVkPW5ldyBiZSx0aGlzLnJlbGVhc2VkPW5ldyBiZSx0aGlzLmVuZGVkPW5ldyBiZSx0'@; put 'aGlzLmVudGVyZWQ9bmV3IGJlLHRoaXMuZXhpdGVkPW5ldyBiZSx0aGlzLmRyb3BwZWQ9bmV3IGJlLHRoaXMubW92ZWQ9dGhpcy5fbW92ZUV2ZW50cyx0aGlzLl9wb2ludGVyRG93bj1UPT57aWYodGhpcy5iZWZvcmVTdGFydGVkLm5leHQoKSx0aGlzLl9oYW5kbGVzLmxlbmd0aCl7Y29uc3Qg'@; put 'Vz10aGlzLl9nZXRUYXJnZXRIYW5kbGUoVCk7VyYmIXRoaXMuX2Rpc2FibGVkSGFuZGxlcy5oYXMoVykmJiF0aGlzLmRpc2FibGVkJiZ0aGlzLl9pbml0aWFsaXplRHJhZ1NlcXVlbmNlKFcsVCl9ZWxzZSB0aGlzLmRpc2FibGVkfHx0aGlzLl9pbml0aWFsaXplRHJhZ1NlcXVlbmNlKHRoaXMu'@; put 'X3Jvb3RFbGVtZW50LFQpfSx0aGlzLl9wb2ludGVyTW92ZT1UPT57Y29uc3QgVz10aGlzLl9nZXRQb2ludGVyUG9zaXRpb25PblBhZ2UoVCk7aWYoIXRoaXMuX2hhc1N0YXJ0ZWREcmFnZ2luZyl7aWYoTWF0aC5hYnMoVy54LXRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlLngpK01hdGguYWJz'@; put 'KFcueS10aGlzLl9waWNrdXBQb3NpdGlvbk9uUGFnZS55KT49dGhpcy5fY29uZmlnLmRyYWdTdGFydFRocmVzaG9sZCl7Y29uc3QgWmU9RGF0ZS5ub3coKT49dGhpcy5fZHJhZ1N0YXJ0VGltZSt0aGlzLl9nZXREcmFnU3RhcnREZWxheShUKSxpdD10aGlzLl9kcm9wQ29udGFpbmVyO2lmKCFa'@; put 'ZSlyZXR1cm4gdm9pZCB0aGlzLl9lbmREcmFnU2VxdWVuY2UoVCk7KCFpdHx8IWl0LmlzRHJhZ2dpbmcoKSYmIWl0LmlzUmVjZWl2aW5nKCkpJiYoVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2hhc1N0YXJ0ZWREcmFnZ2luZz0hMCx0aGlzLl9uZ1pvbmUucnVuKCgpPT50aGlzLl9zdGFydERy'@; put 'YWdTZXF1ZW5jZShUKSkpfXJldHVybn1ULnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaWU9dGhpcy5fZ2V0Q29uc3RyYWluZWRQb2ludGVyUG9zaXRpb24oVyk7aWYodGhpcy5faGFzTW92ZWQ9ITAsdGhpcy5fbGFzdEtub3duUG9pbnRlclBvc2l0aW9uPVcsdGhpcy5fdXBkYXRlUG9pbnRlckRp'@; put 'cmVjdGlvbkRlbHRhKGllKSx0aGlzLl9kcm9wQ29udGFpbmVyKXRoaXMuX3VwZGF0ZUFjdGl2ZURyb3BDb250YWluZXIoaWUsVyk7ZWxzZXtjb25zdCBwZT10aGlzLmNvbnN0cmFpblBvc2l0aW9uP3RoaXMuX2luaXRpYWxDbGllbnRSZWN0OnRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlLHdl'@; put 'PXRoaXMuX2FjdGl2ZVRyYW5zZm9ybTt3ZS54PWllLngtcGUueCt0aGlzLl9wYXNzaXZlVHJhbnNmb3JtLngsd2UueT1pZS55LXBlLnkrdGhpcy5fcGFzc2l2ZVRyYW5zZm9ybS55LHRoaXMuX2FwcGx5Um9vdEVsZW1lbnRUcmFuc2Zvcm0od2UueCx3ZS55KX10aGlzLl9tb3ZlRXZlbnRzLm9i'@; put 'c2VydmVycy5sZW5ndGgmJnRoaXMuX25nWm9uZS5ydW4oKCk9Pnt0aGlzLl9tb3ZlRXZlbnRzLm5leHQoe3NvdXJjZTp0aGlzLHBvaW50ZXJQb3NpdGlvbjppZSxldmVudDpULGRpc3RhbmNlOnRoaXMuX2dldERyYWdEaXN0YW5jZShpZSksZGVsdGE6dGhpcy5fcG9pbnRlckRpcmVjdGlvbkRl'@; put 'bHRhfSl9KX0sdGhpcy5fcG9pbnRlclVwPVQ9Pnt0aGlzLl9lbmREcmFnU2VxdWVuY2UoVCl9LHRoaXMuX25hdGl2ZURyYWdTdGFydD1UPT57aWYodGhpcy5faGFuZGxlcy5sZW5ndGgpe2NvbnN0IFc9dGhpcy5fZ2V0VGFyZ2V0SGFuZGxlKFQpO1cmJiF0aGlzLl9kaXNhYmxlZEhhbmRsZXMu'@; put 'aGFzKFcpJiYhdGhpcy5kaXNhYmxlZCYmVC5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgdGhpcy5kaXNhYmxlZHx8VC5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLndpdGhSb290RWxlbWVudChsKS53aXRoUGFyZW50KGEucGFyZW50RHJhZ1JlZnx8bnVsbCksdGhpcy5fcGFyZW50UG9zaXRpb25zPW5l'@; put 'dyBlc2UoZCksXy5yZWdpc3RlckRyYWdJdGVtKHRoaXMpfWdldFBsYWNlaG9sZGVyRWxlbWVudCgpe3JldHVybiB0aGlzLl9wbGFjZWhvbGRlcn1nZXRSb290RWxlbWVudCgpe3JldHVybiB0aGlzLl9yb290RWxlbWVudH1nZXRWaXNpYmxlRWxlbWVudCgpe3JldHVybiB0aGlzLmlzRHJhZ2dp'@; put 'bmcoKT90aGlzLmdldFBsYWNlaG9sZGVyRWxlbWVudCgpOnRoaXMuZ2V0Um9vdEVsZW1lbnQoKX13aXRoSGFuZGxlcyhsKXt0aGlzLl9oYW5kbGVzPWwubWFwKGQ9PlAwKGQpKSx0aGlzLl9oYW5kbGVzLmZvckVhY2goZD0+ejcoZCx0aGlzLmRpc2FibGVkKSksdGhpcy5fdG9nZ2xlTmF0aXZl'@; put 'RHJhZ0ludGVyYWN0aW9ucygpO2NvbnN0IGE9bmV3IFNldDtyZXR1cm4gdGhpcy5fZGlzYWJsZWRIYW5kbGVzLmZvckVhY2goZD0+e3RoaXMuX2hhbmRsZXMuaW5kZXhPZihkKT4tMSYmYS5hZGQoZCl9KSx0aGlzLl9kaXNhYmxlZEhhbmRsZXM9YSx0aGlzfXdpdGhQcmV2aWV3VGVtcGxhdGUo'@; put 'bCl7cmV0dXJuIHRoaXMuX3ByZXZpZXdUZW1wbGF0ZT1sLHRoaXN9d2l0aFBsYWNlaG9sZGVyVGVtcGxhdGUobCl7cmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyVGVtcGxhdGU9bCx0aGlzfXdpdGhSb290RWxlbWVudChsKXtjb25zdCBhPVAwKGwpO3JldHVybiBhIT09dGhpcy5fcm9vdEVsZW1l'@; put 'bnQmJih0aGlzLl9yb290RWxlbWVudCYmdGhpcy5fcmVtb3ZlUm9vdEVsZW1lbnRMaXN0ZW5lcnModGhpcy5fcm9vdEVsZW1lbnQpLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9wb2ludGVyRG93bixxQSks'@; put 'YS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9wb2ludGVyRG93bixvc2UpLGEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0Iix0aGlzLl9uYXRpdmVEcmFnU3RhcnQscUEpfSksdGhpcy5faW5pdGlhbFRyYW5zZm9ybT12b2lkIDAsdGhpcy5fcm9vdEVsZW1lbnQ9YSks'@; put 'dHlwZW9mIFNWR0VsZW1lbnQ8InUiJiZ0aGlzLl9yb290RWxlbWVudCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQmJih0aGlzLl9vd25lclNWR0VsZW1lbnQ9dGhpcy5fcm9vdEVsZW1lbnQub3duZXJTVkdFbGVtZW50KSx0aGlzfXdpdGhCb3VuZGFyeUVsZW1lbnQobCl7cmV0dXJuIHRoaXMuX2Jv'@; put 'dW5kYXJ5RWxlbWVudD1sP1AwKGwpOm51bGwsdGhpcy5fcmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksbCYmKHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbj10aGlzLl92aWV3cG9ydFJ1bGVyLmNoYW5nZSgxMCkuc3Vic2NyaWJlKCgpPT50aGlzLl9jb250YWluSW5zaWRlQm91bmRh'@; put 'cnlPblJlc2l6ZSgpKSksdGhpc313aXRoUGFyZW50KGwpe3JldHVybiB0aGlzLl9wYXJlbnREcmFnUmVmPWwsdGhpc31kaXNwb3NlKCl7dGhpcy5fcmVtb3ZlUm9vdEVsZW1lbnRMaXN0ZW5lcnModGhpcy5fcm9vdEVsZW1lbnQpLHRoaXMuaXNEcmFnZ2luZygpJiZ0aGlzLl9yb290RWxlbWVu'@; put 'dD8ucmVtb3ZlKCksdGhpcy5fYW5jaG9yPy5yZW1vdmUoKSx0aGlzLl9kZXN0cm95UHJldmlldygpLHRoaXMuX2Rlc3Ryb3lQbGFjZWhvbGRlcigpLHRoaXMuX2RyYWdEcm9wUmVnaXN0cnkucmVtb3ZlRHJhZ0l0ZW0odGhpcyksdGhpcy5fcmVtb3ZlU3Vic2NyaXB0aW9ucygpLHRoaXMuYmVm'@; put 'b3JlU3RhcnRlZC5jb21wbGV0ZSgpLHRoaXMuc3RhcnRlZC5jb21wbGV0ZSgpLHRoaXMucmVsZWFzZWQuY29tcGxldGUoKSx0aGlzLmVuZGVkLmNvbXBsZXRlKCksdGhpcy5lbnRlcmVkLmNvbXBsZXRlKCksdGhpcy5leGl0ZWQuY29tcGxldGUoKSx0aGlzLmRyb3BwZWQuY29tcGxldGUoKSx0'@; put 'aGlzLl9tb3ZlRXZlbnRzLmNvbXBsZXRlKCksdGhpcy5faGFuZGxlcz1bXSx0aGlzLl9kaXNhYmxlZEhhbmRsZXMuY2xlYXIoKSx0aGlzLl9kcm9wQ29udGFpbmVyPXZvaWQgMCx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9wYXJlbnRQb3NpdGlvbnMuY2xl'@; put 'YXIoKSx0aGlzLl9ib3VuZGFyeUVsZW1lbnQ9dGhpcy5fcm9vdEVsZW1lbnQ9dGhpcy5fb3duZXJTVkdFbGVtZW50PXRoaXMuX3BsYWNlaG9sZGVyVGVtcGxhdGU9dGhpcy5fcHJldmlld1RlbXBsYXRlPXRoaXMuX2FuY2hvcj10aGlzLl9wYXJlbnREcmFnUmVmPW51bGx9aXNEcmFnZ2luZygp'@; put 'e3JldHVybiB0aGlzLl9oYXNTdGFydGVkRHJhZ2dpbmcmJnRoaXMuX2RyYWdEcm9wUmVnaXN0cnkuaXNEcmFnZ2luZyh0aGlzKX1yZXNldCgpe3RoaXMuX3Jvb3RFbGVtZW50LnN0eWxlLnRyYW5zZm9ybT10aGlzLl9pbml0aWFsVHJhbnNmb3JtfHwiIix0aGlzLl9hY3RpdmVUcmFuc2Zvcm09'@; put 'e3g6MCx5OjB9LHRoaXMuX3Bhc3NpdmVUcmFuc2Zvcm09e3g6MCx5OjB9fWRpc2FibGVIYW5kbGUobCl7IXRoaXMuX2Rpc2FibGVkSGFuZGxlcy5oYXMobCkmJnRoaXMuX2hhbmRsZXMuaW5kZXhPZihsKT4tMSYmKHRoaXMuX2Rpc2FibGVkSGFuZGxlcy5hZGQobCksejcobCwhMCkpfWVuYWJs'@; put 'ZUhhbmRsZShsKXt0aGlzLl9kaXNhYmxlZEhhbmRsZXMuaGFzKGwpJiYodGhpcy5fZGlzYWJsZWRIYW5kbGVzLmRlbGV0ZShsKSx6NyhsLHRoaXMuZGlzYWJsZWQpKX13aXRoRGlyZWN0aW9uKGwpe3JldHVybiB0aGlzLl9kaXJlY3Rpb249bCx0aGlzfV93aXRoRHJvcENvbnRhaW5lcihsKXt0'@; put 'aGlzLl9kcm9wQ29udGFpbmVyPWx9Z2V0RnJlZURyYWdQb3NpdGlvbigpe2NvbnN0IGw9dGhpcy5pc0RyYWdnaW5nKCk/dGhpcy5fYWN0aXZlVHJhbnNmb3JtOnRoaXMuX3Bhc3NpdmVUcmFuc2Zvcm07cmV0dXJue3g6bC54LHk6bC55fX1zZXRGcmVlRHJhZ1Bvc2l0aW9uKGwpe3JldHVybiB0'@; put 'aGlzLl9hY3RpdmVUcmFuc2Zvcm09e3g6MCx5OjB9LHRoaXMuX3Bhc3NpdmVUcmFuc2Zvcm0ueD1sLngsdGhpcy5fcGFzc2l2ZVRyYW5zZm9ybS55PWwueSx0aGlzLl9kcm9wQ29udGFpbmVyfHx0aGlzLl9hcHBseVJvb3RFbGVtZW50VHJhbnNmb3JtKGwueCxsLnkpLHRoaXN9d2l0aFByZXZp'@; put 'ZXdDb250YWluZXIobCl7cmV0dXJuIHRoaXMuX3ByZXZpZXdDb250YWluZXI9bCx0aGlzfV9zb3J0RnJvbUxhc3RQb2ludGVyUG9zaXRpb24oKXtjb25zdCBsPXRoaXMuX2xhc3RLbm93blBvaW50ZXJQb3NpdGlvbjtsJiZ0aGlzLl9kcm9wQ29udGFpbmVyJiZ0aGlzLl91cGRhdGVBY3RpdmVE'@; put 'cm9wQ29udGFpbmVyKHRoaXMuX2dldENvbnN0cmFpbmVkUG9pbnRlclBvc2l0aW9uKGwpLGwpfV9yZW1vdmVTdWJzY3JpcHRpb25zKCl7dGhpcy5fcG9pbnRlck1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9wb2ludGVyVXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0'@; put 'aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1fZGVzdHJveVByZXZpZXcoKXt0aGlzLl9wcmV2aWV3Py5yZW1vdmUoKSx0aGlzLl9wcmV2aWV3UmVmPy5kZXN0cm95KCksdGhpcy5fcHJldmlldz10aGlzLl9wcmV2aWV3UmVmPW51bGx9X2Rlc3Ryb3lQbGFjZWhvbGRlcigp'@; put 'e3RoaXMuX3BsYWNlaG9sZGVyPy5yZW1vdmUoKSx0aGlzLl9wbGFjZWhvbGRlclJlZj8uZGVzdHJveSgpLHRoaXMuX3BsYWNlaG9sZGVyPXRoaXMuX3BsYWNlaG9sZGVyUmVmPW51bGx9X2VuZERyYWdTZXF1ZW5jZShsKXtpZih0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LmlzRHJhZ2dpbmcodGhp'@; put 'cykmJih0aGlzLl9yZW1vdmVTdWJzY3JpcHRpb25zKCksdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5zdG9wRHJhZ2dpbmcodGhpcyksdGhpcy5fdG9nZ2xlTmF0aXZlRHJhZ0ludGVyYWN0aW9ucygpLHRoaXMuX2hhbmRsZXMmJih0aGlzLl9yb290RWxlbWVudC5zdHlsZS53ZWJraXRUYXBIaWdo'@; put 'bGlnaHRDb2xvcj10aGlzLl9yb290RWxlbWVudFRhcEhpZ2hsaWdodCksdGhpcy5faGFzU3RhcnRlZERyYWdnaW5nKSlpZih0aGlzLnJlbGVhc2VkLm5leHQoe3NvdXJjZTp0aGlzLGV2ZW50Omx9KSx0aGlzLl9kcm9wQ29udGFpbmVyKXRoaXMuX2Ryb3BDb250YWluZXIuX3N0b3BTY3JvbGxp'@; put 'bmcoKSx0aGlzLl9hbmltYXRlUHJldmlld1RvUGxhY2Vob2xkZXIoKS50aGVuKCgpPT57dGhpcy5fY2xlYW51cERyYWdBcnRpZmFjdHMobCksdGhpcy5fY2xlYW51cENhY2hlZERpbWVuc2lvbnMoKSx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnN0b3BEcmFnZ2luZyh0aGlzKX0pO2Vsc2V7dGhp'@; put 'cy5fcGFzc2l2ZVRyYW5zZm9ybS54PXRoaXMuX2FjdGl2ZVRyYW5zZm9ybS54O2NvbnN0IGE9dGhpcy5fZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGwpO3RoaXMuX3Bhc3NpdmVUcmFuc2Zvcm0ueT10aGlzLl9hY3RpdmVUcmFuc2Zvcm0ueSx0aGlzLl9uZ1pvbmUucnVuKCgpPT57dGhpcy5l'@; put 'bmRlZC5uZXh0KHtzb3VyY2U6dGhpcyxkaXN0YW5jZTp0aGlzLl9nZXREcmFnRGlzdGFuY2UoYSksZHJvcFBvaW50OmEsZXZlbnQ6bH0pfSksdGhpcy5fY2xlYW51cENhY2hlZERpbWVuc2lvbnMoKSx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnN0b3BEcmFnZ2luZyh0aGlzKX19X3N0YXJ0RHJh'@; put 'Z1NlcXVlbmNlKGwpe3N3KGwpJiYodGhpcy5fbGFzdFRvdWNoRXZlbnRUaW1lPURhdGUubm93KCkpLHRoaXMuX3RvZ2dsZU5hdGl2ZURyYWdJbnRlcmFjdGlvbnMoKTtjb25zdCBhPXRoaXMuX2Ryb3BDb250YWluZXI7aWYoYSl7Y29uc3QgZD10aGlzLl9yb290RWxlbWVudCxoPWQucGFyZW50'@; put 'Tm9kZSxmPXRoaXMuX3BsYWNlaG9sZGVyPXRoaXMuX2NyZWF0ZVBsYWNlaG9sZGVyRWxlbWVudCgpLF89dGhpcy5fYW5jaG9yPXRoaXMuX2FuY2hvcnx8dGhpcy5fZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIiksVD10aGlzLl9nZXRTaGFkb3dSb290KCk7aC5pbnNlcnRCZWZvcmUoXyxkKSx0'@; put 'aGlzLl9pbml0aWFsVHJhbnNmb3JtPWQuc3R5bGUudHJhbnNmb3JtfHwiIix0aGlzLl9wcmV2aWV3PXRoaXMuX2NyZWF0ZVByZXZpZXdFbGVtZW50KCksWG9lKGQsITEsaVUpLHRoaXMuX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaC5yZXBsYWNlQ2hpbGQoZixkKSksdGhpcy5fZ2V0UHJl'@; put 'dmlld0luc2VydGlvblBvaW50KGgsVCkuYXBwZW5kQ2hpbGQodGhpcy5fcHJldmlldyksdGhpcy5zdGFydGVkLm5leHQoe3NvdXJjZTp0aGlzLGV2ZW50Omx9KSxhLnN0YXJ0KCksdGhpcy5faW5pdGlhbENvbnRhaW5lcj1hLHRoaXMuX2luaXRpYWxJbmRleD1hLmdldEl0ZW1JbmRleCh0aGlz'@; put 'KX1lbHNlIHRoaXMuc3RhcnRlZC5uZXh0KHtzb3VyY2U6dGhpcyxldmVudDpsfSksdGhpcy5faW5pdGlhbENvbnRhaW5lcj10aGlzLl9pbml0aWFsSW5kZXg9dm9pZCAwO3RoaXMuX3BhcmVudFBvc2l0aW9ucy5jYWNoZShhP2EuZ2V0U2Nyb2xsYWJsZVBhcmVudHMoKTpbXSl9X2luaXRpYWxp'@; put 'emVEcmFnU2VxdWVuY2UobCxhKXt0aGlzLl9wYXJlbnREcmFnUmVmJiZhLnN0b3BQcm9wYWdhdGlvbigpO2NvbnN0IGQ9dGhpcy5pc0RyYWdnaW5nKCksaD1zdyhhKSxmPSFoJiYwIT09YS5idXR0b24sXz10aGlzLl9yb290RWxlbWVudCxUPUdBKGEpLFc9IWgmJnRoaXMuX2xhc3RUb3VjaEV2'@; put 'ZW50VGltZSYmdGhpcy5fbGFzdFRvdWNoRXZlbnRUaW1lKzgwMD5EYXRlLm5vdygpLGllPWg/ZnVuY3Rpb24gaUJlKGMpe2NvbnN0IGw9Yy50b3VjaGVzJiZjLnRvdWNoZXNbMF18fGMuY2hhbmdlZFRvdWNoZXMmJmMuY2hhbmdlZFRvdWNoZXNbMF07cmV0dXJuISghbHx8LTEhPT1sLmlkZW50'@; put 'aWZpZXJ8fG51bGwhPWwucmFkaXVzWCYmMSE9PWwucmFkaXVzWHx8bnVsbCE9bC5yYWRpdXNZJiYxIT09bC5yYWRpdXNZKX0oYSk6ZnVuY3Rpb24gckJlKGMpe3JldHVybiAwPT09Yy5idXR0b25zfHwwPT09Yy5vZmZzZXRYJiYwPT09Yy5vZmZzZXRZfShhKTtpZihUJiZULmRyYWdnYWJsZSYm'@; put 'Im1vdXNlZG93biI9PT1hLnR5cGUmJmEucHJldmVudERlZmF1bHQoKSxkfHxmfHxXfHxpZSlyZXR1cm47aWYodGhpcy5faGFuZGxlcy5sZW5ndGgpe2NvbnN0IEVlPV8uc3R5bGU7dGhpcy5fcm9vdEVsZW1lbnRUYXBIaWdobGlnaHQ9RWUud2Via2l0VGFwSGlnaGxpZ2h0Q29sb3J8fCIiLEVl'@; put 'LndlYmtpdFRhcEhpZ2hsaWdodENvbG9yPSJ0cmFuc3BhcmVudCJ9dGhpcy5faGFzU3RhcnRlZERyYWdnaW5nPXRoaXMuX2hhc01vdmVkPSExLHRoaXMuX3JlbW92ZVN1YnNjcmlwdGlvbnMoKSx0aGlzLl9pbml0aWFsQ2xpZW50UmVjdD10aGlzLl9yb290RWxlbWVudC5nZXRCb3VuZGluZ0Ns'@; put 'aWVudFJlY3QoKSx0aGlzLl9wb2ludGVyTW92ZVN1YnNjcmlwdGlvbj10aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnBvaW50ZXJNb3ZlLnN1YnNjcmliZSh0aGlzLl9wb2ludGVyTW92ZSksdGhpcy5fcG9pbnRlclVwU3Vic2NyaXB0aW9uPXRoaXMuX2RyYWdEcm9wUmVnaXN0cnkucG9pbnRlclVw'@; put 'LnN1YnNjcmliZSh0aGlzLl9wb2ludGVyVXApLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnNjcm9sbGVkKHRoaXMuX2dldFNoYWRvd1Jvb3QoKSkuc3Vic2NyaWJlKEVlPT50aGlzLl91cGRhdGVPblNjcm9sbChFZSkpLHRoaXMuX2JvdW5kYXJ5RWxl'@; put 'bWVudCYmKHRoaXMuX2JvdW5kYXJ5UmVjdD1uVSh0aGlzLl9ib3VuZGFyeUVsZW1lbnQpKTtjb25zdCBwZT10aGlzLl9wcmV2aWV3VGVtcGxhdGU7dGhpcy5fcGlja3VwUG9zaXRpb25JbkVsZW1lbnQ9cGUmJnBlLnRlbXBsYXRlJiYhcGUubWF0Y2hTaXplP3t4OjAseTowfTp0aGlzLl9nZXRQ'@; put 'b2ludGVyUG9zaXRpb25JbkVsZW1lbnQodGhpcy5faW5pdGlhbENsaWVudFJlY3QsbCxhKTtjb25zdCB3ZT10aGlzLl9waWNrdXBQb3NpdGlvbk9uUGFnZT10aGlzLl9sYXN0S25vd25Qb2ludGVyUG9zaXRpb249dGhpcy5fZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGEpO3RoaXMuX3BvaW50'@; put 'ZXJEaXJlY3Rpb25EZWx0YT17eDowLHk6MH0sdGhpcy5fcG9pbnRlclBvc2l0aW9uQXRMYXN0RGlyZWN0aW9uQ2hhbmdlPXt4OndlLngseTp3ZS55fSx0aGlzLl9kcmFnU3RhcnRUaW1lPURhdGUubm93KCksdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5zdGFydERyYWdnaW5nKHRoaXMsYSl9X2Ns'@; put 'ZWFudXBEcmFnQXJ0aWZhY3RzKGwpe1hvZSh0aGlzLl9yb290RWxlbWVudCwhMCxpVSksdGhpcy5fYW5jaG9yLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHRoaXMuX3Jvb3RFbGVtZW50LHRoaXMuX2FuY2hvciksdGhpcy5fZGVzdHJveVByZXZpZXcoKSx0aGlzLl9kZXN0cm95UGxhY2Vob2xk'@; put 'ZXIoKSx0aGlzLl9pbml0aWFsQ2xpZW50UmVjdD10aGlzLl9ib3VuZGFyeVJlY3Q9dGhpcy5fcHJldmlld1JlY3Q9dGhpcy5faW5pdGlhbFRyYW5zZm9ybT12b2lkIDAsdGhpcy5fbmdab25lLnJ1bigoKT0+e2NvbnN0IGE9dGhpcy5fZHJvcENvbnRhaW5lcixkPWEuZ2V0SXRlbUluZGV4KHRo'@; put 'aXMpLGg9dGhpcy5fZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGwpLGY9dGhpcy5fZ2V0RHJhZ0Rpc3RhbmNlKGgpLF89YS5faXNPdmVyQ29udGFpbmVyKGgueCxoLnkpO3RoaXMuZW5kZWQubmV4dCh7c291cmNlOnRoaXMsZGlzdGFuY2U6Zixkcm9wUG9pbnQ6aCxldmVudDpsfSksdGhpcy5k'@; put 'cm9wcGVkLm5leHQoe2l0ZW06dGhpcyxjdXJyZW50SW5kZXg6ZCxwcmV2aW91c0luZGV4OnRoaXMuX2luaXRpYWxJbmRleCxjb250YWluZXI6YSxwcmV2aW91c0NvbnRhaW5lcjp0aGlzLl9pbml0aWFsQ29udGFpbmVyLGlzUG9pbnRlck92ZXJDb250YWluZXI6XyxkaXN0YW5jZTpmLGRyb3BQ'@; put 'b2ludDpoLGV2ZW50Omx9KSxhLmRyb3AodGhpcyxkLHRoaXMuX2luaXRpYWxJbmRleCx0aGlzLl9pbml0aWFsQ29udGFpbmVyLF8sZixoLGwpLHRoaXMuX2Ryb3BDb250YWluZXI9dGhpcy5faW5pdGlhbENvbnRhaW5lcn0pfV91cGRhdGVBY3RpdmVEcm9wQ29udGFpbmVyKHt4OmwseTphfSx7'@; put 'eDpkLHk6aH0pe2xldCBmPXRoaXMuX2luaXRpYWxDb250YWluZXIuX2dldFNpYmxpbmdDb250YWluZXJGcm9tUG9zaXRpb24odGhpcyxsLGEpOyFmJiZ0aGlzLl9kcm9wQ29udGFpbmVyIT09dGhpcy5faW5pdGlhbENvbnRhaW5lciYmdGhpcy5faW5pdGlhbENvbnRhaW5lci5faXNPdmVyQ29u'@; put 'dGFpbmVyKGwsYSkmJihmPXRoaXMuX2luaXRpYWxDb250YWluZXIpLGYmJmYhPT10aGlzLl9kcm9wQ29udGFpbmVyJiZ0aGlzLl9uZ1pvbmUucnVuKCgpPT57dGhpcy5leGl0ZWQubmV4dCh7aXRlbTp0aGlzLGNvbnRhaW5lcjp0aGlzLl9kcm9wQ29udGFpbmVyfSksdGhpcy5fZHJvcENvbnRh'@; put 'aW5lci5leGl0KHRoaXMpLHRoaXMuX2Ryb3BDb250YWluZXI9Zix0aGlzLl9kcm9wQ29udGFpbmVyLmVudGVyKHRoaXMsbCxhLGY9PT10aGlzLl9pbml0aWFsQ29udGFpbmVyJiZmLnNvcnRpbmdEaXNhYmxlZD90aGlzLl9pbml0aWFsSW5kZXg6dm9pZCAwKSx0aGlzLmVudGVyZWQubmV4dCh7'@; put 'aXRlbTp0aGlzLGNvbnRhaW5lcjpmLGN1cnJlbnRJbmRleDpmLmdldEl0ZW1JbmRleCh0aGlzKX0pfSksdGhpcy5pc0RyYWdnaW5nKCkmJih0aGlzLl9kcm9wQ29udGFpbmVyLl9zdGFydFNjcm9sbGluZ0lmTmVjZXNzYXJ5KGQsaCksdGhpcy5fZHJvcENvbnRhaW5lci5fc29ydEl0ZW0odGhp'@; put 'cyxsLGEsdGhpcy5fcG9pbnRlckRpcmVjdGlvbkRlbHRhKSx0aGlzLmNvbnN0cmFpblBvc2l0aW9uP3RoaXMuX2FwcGx5UHJldmlld1RyYW5zZm9ybShsLGEpOnRoaXMuX2FwcGx5UHJldmlld1RyYW5zZm9ybShsLXRoaXMuX3BpY2t1cFBvc2l0aW9uSW5FbGVtZW50LngsYS10aGlzLl9waWNr'@; put 'dXBQb3NpdGlvbkluRWxlbWVudC55KSl9X2NyZWF0ZVByZXZpZXdFbGVtZW50KCl7Y29uc3QgbD10aGlzLl9wcmV2aWV3VGVtcGxhdGUsYT10aGlzLnByZXZpZXdDbGFzcyxkPWw/bC50ZW1wbGF0ZTpudWxsO2xldCBoO2lmKGQmJmwpe2NvbnN0IGY9bC5tYXRjaFNpemU/dGhpcy5faW5pdGlh'@; put 'bENsaWVudFJlY3Q6bnVsbCxfPWwudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoZCxsLmNvbnRleHQpO18uZGV0ZWN0Q2hhbmdlcygpLGg9YXNlKF8sdGhpcy5fZG9jdW1lbnQpLHRoaXMuX3ByZXZpZXdSZWY9XyxsLm1hdGNoU2l6ZT9sc2UoaCxmKTpoLnN0eWxlLnRyYW5zZm9y'@; put 'bT1LQSh0aGlzLl9waWNrdXBQb3NpdGlvbk9uUGFnZS54LHRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlLnkpfWVsc2UgaD10c2UodGhpcy5fcm9vdEVsZW1lbnQpLGxzZShoLHRoaXMuX2luaXRpYWxDbGllbnRSZWN0KSx0aGlzLl9pbml0aWFsVHJhbnNmb3JtJiYoaC5zdHlsZS50cmFuc2Zv'@; put 'cm09dGhpcy5faW5pdGlhbFRyYW5zZm9ybSk7cmV0dXJuIGVVKGguc3R5bGUseyJwb2ludGVyLWV2ZW50cyI6Im5vbmUiLG1hcmdpbjoiMCIscG9zaXRpb246ImZpeGVkIix0b3A6IjAiLGxlZnQ6IjAiLCJ6LWluZGV4IjpgJHt0aGlzLl9jb25maWcuekluZGV4fHwxZTN9YH0saVUpLHo3KGgs'@; put 'ITEpLGguY2xhc3NMaXN0LmFkZCgiY2RrLWRyYWctcHJldmlldyIpLGguc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMuX2RpcmVjdGlvbiksYSYmKEFycmF5LmlzQXJyYXkoYSk/YS5mb3JFYWNoKGY9PmguY2xhc3NMaXN0LmFkZChmKSk6aC5jbGFzc0xpc3QuYWRkKGEpKSxofV9hbmltYXRlUHJl'@; put 'dmlld1RvUGxhY2Vob2xkZXIoKXtpZighdGhpcy5faGFzTW92ZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2NvbnN0IGw9dGhpcy5fcGxhY2Vob2xkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5fcHJldmlldy5jbGFzc0xpc3QuYWRkKCJjZGstZHJhZy1hbmltYXRpbmciKSx0'@; put 'aGlzLl9hcHBseVByZXZpZXdUcmFuc2Zvcm0obC5sZWZ0LGwudG9wKTtjb25zdCBhPWZ1bmN0aW9uIGRCZShjKXtjb25zdCBsPWdldENvbXB1dGVkU3R5bGUoYyksYT10VShsLCJ0cmFuc2l0aW9uLXByb3BlcnR5IiksZD1hLmZpbmQoVD0+InRyYW5zZm9ybSI9PT1UfHwiYWxsIj09PVQpO2lm'@; put 'KCFkKXJldHVybiAwO2NvbnN0IGg9YS5pbmRleE9mKGQpLGY9dFUobCwidHJhbnNpdGlvbi1kdXJhdGlvbiIpLF89dFUobCwidHJhbnNpdGlvbi1kZWxheSIpO3JldHVybiBKb2UoZltoXSkrSm9lKF9baF0pfSh0aGlzLl9wcmV2aWV3KTtyZXR1cm4gMD09PWE/UHJvbWlzZS5yZXNvbHZlKCk6'@; put 'dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5uZXcgUHJvbWlzZShkPT57Y29uc3QgaD1fPT57KCFffHxHQShfKT09PXRoaXMuX3ByZXZpZXcmJiJ0cmFuc2Zvcm0iPT09Xy5wcm9wZXJ0eU5hbWUpJiYodGhpcy5fcHJldmlldz8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNp'@; put 'dGlvbmVuZCIsaCksZCgpLGNsZWFyVGltZW91dChmKSl9LGY9c2V0VGltZW91dChoLDEuNSphKTt0aGlzLl9wcmV2aWV3LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLGgpfSkpfV9jcmVhdGVQbGFjZWhvbGRlckVsZW1lbnQoKXtjb25zdCBsPXRoaXMuX3BsYWNlaG9sZGVyVGVt'@; put 'cGxhdGUsYT1sP2wudGVtcGxhdGU6bnVsbDtsZXQgZDtyZXR1cm4gYT8odGhpcy5fcGxhY2Vob2xkZXJSZWY9bC52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhhLGwuY29udGV4dCksdGhpcy5fcGxhY2Vob2xkZXJSZWYuZGV0ZWN0Q2hhbmdlcygpLGQ9YXNlKHRoaXMuX3BsYWNl'@; put 'aG9sZGVyUmVmLHRoaXMuX2RvY3VtZW50KSk6ZD10c2UodGhpcy5fcm9vdEVsZW1lbnQpLGQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsZC5jbGFzc0xpc3QuYWRkKCJjZGstZHJhZy1wbGFjZWhvbGRlciIpLGR9X2dldFBvaW50ZXJQb3NpdGlvbkluRWxlbWVudChsLGEsZCl7Y29uc3Qg'@; put 'aD1hPT09dGhpcy5fcm9vdEVsZW1lbnQ/bnVsbDphLGY9aD9oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOmwsXz1zdyhkKT9kLnRhcmdldFRvdWNoZXNbMF06ZCxUPXRoaXMuX2dldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtyZXR1cm57eDpmLmxlZnQtbC5sZWZ0KyhfLnBhZ2VYLWYubGVm'@; put 'dC1ULmxlZnQpLHk6Zi50b3AtbC50b3ArKF8ucGFnZVktZi50b3AtVC50b3ApfX1fZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGwpe2NvbnN0IGE9dGhpcy5fZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpLGQ9c3cobCk/bC50b3VjaGVzWzBdfHxsLmNoYW5nZWRUb3VjaGVzWzBdfHx7cGFn'@; put 'ZVg6MCxwYWdlWTowfTpsLGg9ZC5wYWdlWC1hLmxlZnQsZj1kLnBhZ2VZLWEudG9wO2lmKHRoaXMuX293bmVyU1ZHRWxlbWVudCl7Y29uc3QgXz10aGlzLl9vd25lclNWR0VsZW1lbnQuZ2V0U2NyZWVuQ1RNKCk7aWYoXyl7Y29uc3QgVD10aGlzLl9vd25lclNWR0VsZW1lbnQuY3JlYXRlU1ZH'@; put 'UG9pbnQoKTtyZXR1cm4gVC54PWgsVC55PWYsVC5tYXRyaXhUcmFuc2Zvcm0oXy5pbnZlcnNlKCkpfX1yZXR1cm57eDpoLHk6Zn19X2dldENvbnN0cmFpbmVkUG9pbnRlclBvc2l0aW9uKGwpe2NvbnN0IGE9dGhpcy5fZHJvcENvbnRhaW5lcj90aGlzLl9kcm9wQ29udGFpbmVyLmxvY2tBeGlz'@; put 'Om51bGw7bGV0e3g6ZCx5Omh9PXRoaXMuY29uc3RyYWluUG9zaXRpb24/dGhpcy5jb25zdHJhaW5Qb3NpdGlvbihsLHRoaXMsdGhpcy5faW5pdGlhbENsaWVudFJlY3QsdGhpcy5fcGlja3VwUG9zaXRpb25JbkVsZW1lbnQpOmw7aWYoIngiPT09dGhpcy5sb2NrQXhpc3x8IngiPT09YT9oPXRo'@; put 'aXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlLnk6KCJ5Ij09PXRoaXMubG9ja0F4aXN8fCJ5Ij09PWEpJiYoZD10aGlzLl9waWNrdXBQb3NpdGlvbk9uUGFnZS54KSx0aGlzLl9ib3VuZGFyeVJlY3Qpe2NvbnN0e3g6Zix5Ol99PXRoaXMuX3BpY2t1cFBvc2l0aW9uSW5FbGVtZW50LFQ9dGhpcy5f'@; put 'Ym91bmRhcnlSZWN0LHt3aWR0aDpXLGhlaWdodDppZX09dGhpcy5fZ2V0UHJldmlld1JlY3QoKSxwZT1ULnRvcCtfLHdlPVQuYm90dG9tLShpZS1fKTtkPXNzZShkLFQubGVmdCtmLFQucmlnaHQtKFctZikpLGg9c3NlKGgscGUsd2UpfXJldHVybnt4OmQseTpofX1fdXBkYXRlUG9pbnRlckRp'@; put 'cmVjdGlvbkRlbHRhKGwpe2NvbnN0e3g6YSx5OmR9PWwsaD10aGlzLl9wb2ludGVyRGlyZWN0aW9uRGVsdGEsZj10aGlzLl9wb2ludGVyUG9zaXRpb25BdExhc3REaXJlY3Rpb25DaGFuZ2UsXz1NYXRoLmFicyhhLWYueCksVD1NYXRoLmFicyhkLWYueSk7cmV0dXJuIF8+dGhpcy5fY29uZmln'@; put 'LnBvaW50ZXJEaXJlY3Rpb25DaGFuZ2VUaHJlc2hvbGQmJihoLng9YT5mLng/MTotMSxmLng9YSksVD50aGlzLl9jb25maWcucG9pbnRlckRpcmVjdGlvbkNoYW5nZVRocmVzaG9sZCYmKGgueT1kPmYueT8xOi0xLGYueT1kKSxofV90b2dnbGVOYXRpdmVEcmFnSW50ZXJhY3Rpb25zKCl7aWYo'@; put 'IXRoaXMuX3Jvb3RFbGVtZW50fHwhdGhpcy5faGFuZGxlcylyZXR1cm47Y29uc3QgbD10aGlzLl9oYW5kbGVzLmxlbmd0aD4wfHwhdGhpcy5pc0RyYWdnaW5nKCk7bCE9PXRoaXMuX25hdGl2ZUludGVyYWN0aW9uc0VuYWJsZWQmJih0aGlzLl9uYXRpdmVJbnRlcmFjdGlvbnNFbmFibGVkPWws'@; put 'ejcodGhpcy5fcm9vdEVsZW1lbnQsbCkpfV9yZW1vdmVSb290RWxlbWVudExpc3RlbmVycyhsKXtsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fcG9pbnRlckRvd24scUEpLGwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fcG9pbnRlckRvd24s'@; put 'b3NlKSxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsdGhpcy5fbmF0aXZlRHJhZ1N0YXJ0LHFBKX1fYXBwbHlSb290RWxlbWVudFRyYW5zZm9ybShsLGEpe2NvbnN0IGQ9S0EobCxhKSxoPXRoaXMuX3Jvb3RFbGVtZW50LnN0eWxlO251bGw9PXRoaXMuX2luaXRpYWxUcmFuc2Zv'@; put 'cm0mJih0aGlzLl9pbml0aWFsVHJhbnNmb3JtPWgudHJhbnNmb3JtJiYibm9uZSIhPWgudHJhbnNmb3JtP2gudHJhbnNmb3JtOiIiKSxoLnRyYW5zZm9ybT0kQShkLHRoaXMuX2luaXRpYWxUcmFuc2Zvcm0pfV9hcHBseVByZXZpZXdUcmFuc2Zvcm0obCxhKXtjb25zdCBkPXRoaXMuX3ByZXZp'@; put 'ZXdUZW1wbGF0ZT8udGVtcGxhdGU/dm9pZCAwOnRoaXMuX2luaXRpYWxUcmFuc2Zvcm0saD1LQShsLGEpO3RoaXMuX3ByZXZpZXcuc3R5bGUudHJhbnNmb3JtPSRBKGgsZCl9X2dldERyYWdEaXN0YW5jZShsKXtjb25zdCBhPXRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlO3JldHVybiBhP3t4'@; put 'OmwueC1hLngseTpsLnktYS55fTp7eDowLHk6MH19X2NsZWFudXBDYWNoZWREaW1lbnNpb25zKCl7dGhpcy5fYm91bmRhcnlSZWN0PXRoaXMuX3ByZXZpZXdSZWN0PXZvaWQgMCx0aGlzLl9wYXJlbnRQb3NpdGlvbnMuY2xlYXIoKX1fY29udGFpbkluc2lkZUJvdW5kYXJ5T25SZXNpemUoKXts'@; put 'ZXR7eDpsLHk6YX09dGhpcy5fcGFzc2l2ZVRyYW5zZm9ybTtpZigwPT09bCYmMD09PWF8fHRoaXMuaXNEcmFnZ2luZygpfHwhdGhpcy5fYm91bmRhcnlFbGVtZW50KXJldHVybjtjb25zdCBkPXRoaXMuX3Jvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGg9dGhpcy5fYm91bmRh'@; put 'cnlFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKDA9PT1oLndpZHRoJiYwPT09aC5oZWlnaHR8fDA9PT1kLndpZHRoJiYwPT09ZC5oZWlnaHQpcmV0dXJuO2NvbnN0IGY9aC5sZWZ0LWQubGVmdCxfPWQucmlnaHQtaC5yaWdodCxUPWgudG9wLWQudG9wLFc9ZC5ib3R0b20taC5i'@; put 'b3R0b207aC53aWR0aD5kLndpZHRoPyhmPjAmJihsKz1mKSxfPjAmJihsLT1fKSk6bD0wLGguaGVpZ2h0PmQuaGVpZ2h0PyhUPjAmJihhKz1UKSxXPjAmJihhLT1XKSk6YT0wLChsIT09dGhpcy5fcGFzc2l2ZVRyYW5zZm9ybS54fHxhIT09dGhpcy5fcGFzc2l2ZVRyYW5zZm9ybS55KSYmdGhp'@; put 'cy5zZXRGcmVlRHJhZ1Bvc2l0aW9uKHt5OmEseDpsfSl9X2dldERyYWdTdGFydERlbGF5KGwpe2NvbnN0IGE9dGhpcy5kcmFnU3RhcnREZWxheTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGE/YTpzdyhsKT9hLnRvdWNoOmE/YS5tb3VzZTowfV91cGRhdGVPblNjcm9sbChsKXtjb25zdCBhPXRo'@; put 'aXMuX3BhcmVudFBvc2l0aW9ucy5oYW5kbGVTY3JvbGwobCk7aWYoYSl7Y29uc3QgZD1HQShsKTt0aGlzLl9ib3VuZGFyeVJlY3QmJmQhPT10aGlzLl9ib3VuZGFyeUVsZW1lbnQmJmQuY29udGFpbnModGhpcy5fYm91bmRhcnlFbGVtZW50KSYmb3codGhpcy5fYm91bmRhcnlSZWN0LGEudG9w'@; put 'LGEubGVmdCksdGhpcy5fcGlja3VwUG9zaXRpb25PblBhZ2UueCs9YS5sZWZ0LHRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlLnkrPWEudG9wLHRoaXMuX2Ryb3BDb250YWluZXJ8fCh0aGlzLl9hY3RpdmVUcmFuc2Zvcm0ueC09YS5sZWZ0LHRoaXMuX2FjdGl2ZVRyYW5zZm9ybS55LT1hLnRv'@; put 'cCx0aGlzLl9hcHBseVJvb3RFbGVtZW50VHJhbnNmb3JtKHRoaXMuX2FjdGl2ZVRyYW5zZm9ybS54LHRoaXMuX2FjdGl2ZVRyYW5zZm9ybS55KSl9fV9nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcmVudFBvc2l0aW9ucy5wb3NpdGlvbnMuZ2V0KHRoaXMuX2Rv'@; put 'Y3VtZW50KT8uc2Nyb2xsUG9zaXRpb258fHRoaXMuX3BhcmVudFBvc2l0aW9ucy5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCl9X2dldFNoYWRvd1Jvb3QoKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5fY2FjaGVkU2hhZG93Um9vdCYmKHRoaXMuX2NhY2hlZFNoYWRvd1Jvb3Q9V29lKHRoaXMu'@; put 'X3Jvb3RFbGVtZW50KSksdGhpcy5fY2FjaGVkU2hhZG93Um9vdH1fZ2V0UHJldmlld0luc2VydGlvblBvaW50KGwsYSl7Y29uc3QgZD10aGlzLl9wcmV2aWV3Q29udGFpbmVyfHwiZ2xvYmFsIjtpZigicGFyZW50Ij09PWQpcmV0dXJuIGw7aWYoImdsb2JhbCI9PT1kKXtjb25zdCBoPXRoaXMu'@; put 'X2RvY3VtZW50O3JldHVybiBhfHxoLmZ1bGxzY3JlZW5FbGVtZW50fHxoLndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50fHxoLm1vekZ1bGxTY3JlZW5FbGVtZW50fHxoLm1zRnVsbHNjcmVlbkVsZW1lbnR8fGguYm9keX1yZXR1cm4gUDAoZCl9X2dldFByZXZpZXdSZWN0KCl7cmV0dXJuKCF0aGlz'@; put 'Ll9wcmV2aWV3UmVjdHx8IXRoaXMuX3ByZXZpZXdSZWN0LndpZHRoJiYhdGhpcy5fcHJldmlld1JlY3QuaGVpZ2h0KSYmKHRoaXMuX3ByZXZpZXdSZWN0PXRoaXMuX3ByZXZpZXc/dGhpcy5fcHJldmlldy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTp0aGlzLl9pbml0aWFsQ2xpZW50UmVjdCks'@; put 'dGhpcy5fcHJldmlld1JlY3R9X2dldFRhcmdldEhhbmRsZShsKXtyZXR1cm4gdGhpcy5faGFuZGxlcy5maW5kKGE9PmwudGFyZ2V0JiYobC50YXJnZXQ9PT1hfHxhLmNvbnRhaW5zKGwudGFyZ2V0KSkpfX1mdW5jdGlvbiBLQShjLGwpe3JldHVybmB0cmFuc2xhdGUzZCgke01hdGgucm91bmQo'@; put 'Yyl9cHgsICR7TWF0aC5yb3VuZChsKX1weCwgMClgfWZ1bmN0aW9uIHNzZShjLGwsYSl7cmV0dXJuIE1hdGgubWF4KGwsTWF0aC5taW4oYSxjKSl9ZnVuY3Rpb24gc3coYyl7cmV0dXJuInQiPT09Yy50eXBlWzBdfWZ1bmN0aW9uIGFzZShjLGwpe2NvbnN0IGE9Yy5yb290Tm9kZXM7aWYoMT09'@; put 'PWEubGVuZ3RoJiZhWzBdLm5vZGVUeXBlPT09bC5FTEVNRU5UX05PREUpcmV0dXJuIGFbMF07Y29uc3QgZD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLmZvckVhY2goaD0+ZC5hcHBlbmRDaGlsZChoKSksZH1mdW5jdGlvbiBsc2UoYyxsKXtjLnN0eWxlLndpZHRoPWAke2wud2lk'@; put 'dGh9cHhgLGMuc3R5bGUuaGVpZ2h0PWAke2wuaGVpZ2h0fXB4YCxjLnN0eWxlLnRyYW5zZm9ybT1LQShsLmxlZnQsbC50b3ApfWZ1bmN0aW9uIGNzZShjLGwsYSl7Y29uc3QgZD1hdyhsLGMubGVuZ3RoLTEpLGg9YXcoYSxjLmxlbmd0aC0xKTtpZihkPT09aClyZXR1cm47Y29uc3QgZj1jW2Rd'@; put 'LF89aDxkPy0xOjE7Zm9yKGxldCBUPWQ7VCE9PWg7VCs9XyljW1RdPWNbVCtfXTtjW2hdPWZ9ZnVuY3Rpb24gYXcoYyxsKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbihsLGMpKX1jbGFzcyBtQmV7Y29uc3RydWN0b3IobCxhKXt0aGlzLl9lbGVtZW50PWwsdGhpcy5fZHJhZ0Ryb3BSZWdp'@; put 'c3RyeT1hLHRoaXMuX2l0ZW1Qb3NpdGlvbnM9W10sdGhpcy5vcmllbnRhdGlvbj0idmVydGljYWwiLHRoaXMuX3ByZXZpb3VzU3dhcD17ZHJhZzpudWxsLGRlbHRhOjAsb3ZlcmxhcHM6ITF9fXN0YXJ0KGwpe3RoaXMud2l0aEl0ZW1zKGwpfXNvcnQobCxhLGQsaCl7Y29uc3QgZj10aGlzLl9p'@; put 'dGVtUG9zaXRpb25zLF89dGhpcy5fZ2V0SXRlbUluZGV4RnJvbVBvaW50ZXJQb3NpdGlvbihsLGEsZCxoKTtpZigtMT09PV8mJmYubGVuZ3RoPjApcmV0dXJuIG51bGw7Y29uc3QgVD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uLFc9Zi5maW5kSW5kZXgoeXQ9Pnl0LmRyYWc9PT1s'@; put 'KSxpZT1mW19dLHdlPWllLmNsaWVudFJlY3QsRWU9Vz5fPzE6LTEsWmU9dGhpcy5fZ2V0SXRlbU9mZnNldFB4KGZbV10uY2xpZW50UmVjdCx3ZSxFZSksaXQ9dGhpcy5fZ2V0U2libGluZ09mZnNldFB4KFcsZixFZSksZXQ9Zi5zbGljZSgpO3JldHVybiBjc2UoZixXLF8pLGYuZm9yRWFjaCgo'@; put 'eXQsRXQpPT57aWYoZXRbRXRdPT09eXQpcmV0dXJuO2NvbnN0IFN0PXl0LmRyYWc9PT1sLEp0PVN0P1plOml0LG5uPVN0P2wuZ2V0UGxhY2Vob2xkZXJFbGVtZW50KCk6eXQuZHJhZy5nZXRSb290RWxlbWVudCgpO3l0Lm9mZnNldCs9SnQsVD8obm4uc3R5bGUudHJhbnNmb3JtPSRBKGB0cmFu'@; put 'c2xhdGUzZCgke01hdGgucm91bmQoeXQub2Zmc2V0KX1weCwgMCwgMClgLHl0LmluaXRpYWxUcmFuc2Zvcm0pLG93KHl0LmNsaWVudFJlY3QsMCxKdCkpOihubi5zdHlsZS50cmFuc2Zvcm09JEEoYHRyYW5zbGF0ZTNkKDAsICR7TWF0aC5yb3VuZCh5dC5vZmZzZXQpfXB4LCAwKWAseXQuaW5p'@; put 'dGlhbFRyYW5zZm9ybSksb3coeXQuY2xpZW50UmVjdCxKdCwwKSl9KSx0aGlzLl9wcmV2aW91c1N3YXAub3ZlcmxhcHM9clUod2UsYSxkKSx0aGlzLl9wcmV2aW91c1N3YXAuZHJhZz1pZS5kcmFnLHRoaXMuX3ByZXZpb3VzU3dhcC5kZWx0YT1UP2gueDpoLnkse3ByZXZpb3VzSW5kZXg6Vyxj'@; put 'dXJyZW50SW5kZXg6X319ZW50ZXIobCxhLGQsaCl7Y29uc3QgZj1udWxsPT1ofHxoPDA/dGhpcy5fZ2V0SXRlbUluZGV4RnJvbVBvaW50ZXJQb3NpdGlvbihsLGEsZCk6aCxfPXRoaXMuX2FjdGl2ZURyYWdnYWJsZXMsVD1fLmluZGV4T2YobCksVz1sLmdldFBsYWNlaG9sZGVyRWxlbWVudCgp'@; put 'O2xldCBpZT1fW2ZdO2lmKGllPT09bCYmKGllPV9bZisxXSksIWllJiYobnVsbD09Znx8LTE9PT1mfHxmPF8ubGVuZ3RoLTEpJiZ0aGlzLl9zaG91bGRFbnRlckFzRmlyc3RDaGlsZChhLGQpJiYoaWU9X1swXSksVD4tMSYmXy5zcGxpY2UoVCwxKSxpZSYmIXRoaXMuX2RyYWdEcm9wUmVnaXN0'@; put 'cnkuaXNEcmFnZ2luZyhpZSkpe2NvbnN0IHBlPWllLmdldFJvb3RFbGVtZW50KCk7cGUucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoVyxwZSksXy5zcGxpY2UoZiwwLGwpfWVsc2UgUDAodGhpcy5fZWxlbWVudCkuYXBwZW5kQ2hpbGQoVyksXy5wdXNoKGwpO1cuc3R5bGUudHJhbnNmb3Jt'@; put 'PSIiLHRoaXMuX2NhY2hlSXRlbVBvc2l0aW9ucygpfXdpdGhJdGVtcyhsKXt0aGlzLl9hY3RpdmVEcmFnZ2FibGVzPWwuc2xpY2UoKSx0aGlzLl9jYWNoZUl0ZW1Qb3NpdGlvbnMoKX13aXRoU29ydFByZWRpY2F0ZShsKXt0aGlzLl9zb3J0UHJlZGljYXRlPWx9cmVzZXQoKXt0aGlzLl9hY3Rp'@; put 'dmVEcmFnZ2FibGVzLmZvckVhY2gobD0+e2NvbnN0IGE9bC5nZXRSb290RWxlbWVudCgpO2lmKGEpe2NvbnN0IGQ9dGhpcy5faXRlbVBvc2l0aW9ucy5maW5kKGg9PmguZHJhZz09PWwpPy5pbml0aWFsVHJhbnNmb3JtO2Euc3R5bGUudHJhbnNmb3JtPWR8fCIifX0pLHRoaXMuX2l0ZW1Qb3Np'@; put 'dGlvbnM9W10sdGhpcy5fYWN0aXZlRHJhZ2dhYmxlcz1bXSx0aGlzLl9wcmV2aW91c1N3YXAuZHJhZz1udWxsLHRoaXMuX3ByZXZpb3VzU3dhcC5kZWx0YT0wLHRoaXMuX3ByZXZpb3VzU3dhcC5vdmVybGFwcz0hMX1nZXRBY3RpdmVJdGVtc1NuYXBzaG90KCl7cmV0dXJuIHRoaXMuX2FjdGl2'@; put 'ZURyYWdnYWJsZXN9Z2V0SXRlbUluZGV4KGwpe3JldHVybigiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYicnRsIj09PXRoaXMuZGlyZWN0aW9uP3RoaXMuX2l0ZW1Qb3NpdGlvbnMuc2xpY2UoKS5yZXZlcnNlKCk6dGhpcy5faXRlbVBvc2l0aW9ucykuZmluZEluZGV4KGQ9PmQu'@; put 'ZHJhZz09PWwpfXVwZGF0ZU9uU2Nyb2xsKGwsYSl7dGhpcy5faXRlbVBvc2l0aW9ucy5mb3JFYWNoKCh7Y2xpZW50UmVjdDpkfSk9PntvdyhkLGwsYSl9KSx0aGlzLl9pdGVtUG9zaXRpb25zLmZvckVhY2goKHtkcmFnOmR9KT0+e3RoaXMuX2RyYWdEcm9wUmVnaXN0cnkuaXNEcmFnZ2luZyhk'@; put 'KSYmZC5fc29ydEZyb21MYXN0UG9pbnRlclBvc2l0aW9uKCl9KX1fY2FjaGVJdGVtUG9zaXRpb25zKCl7Y29uc3QgbD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uO3RoaXMuX2l0ZW1Qb3NpdGlvbnM9dGhpcy5fYWN0aXZlRHJhZ2dhYmxlcy5tYXAoYT0+e2NvbnN0IGQ9YS5nZXRW'@; put 'aXNpYmxlRWxlbWVudCgpO3JldHVybntkcmFnOmEsb2Zmc2V0OjAsaW5pdGlhbFRyYW5zZm9ybTpkLnN0eWxlLnRyYW5zZm9ybXx8IiIsY2xpZW50UmVjdDpuVShkKX19KS5zb3J0KChhLGQpPT5sP2EuY2xpZW50UmVjdC5sZWZ0LWQuY2xpZW50UmVjdC5sZWZ0OmEuY2xpZW50UmVjdC50b3At'@; put 'ZC5jbGllbnRSZWN0LnRvcCl9X2dldEl0ZW1PZmZzZXRQeChsLGEsZCl7Y29uc3QgaD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uO2xldCBmPWg/YS5sZWZ0LWwubGVmdDphLnRvcC1sLnRvcDtyZXR1cm4tMT09PWQmJihmKz1oP2Eud2lkdGgtbC53aWR0aDphLmhlaWdodC1sLmhl'@; put 'aWdodCksZn1fZ2V0U2libGluZ09mZnNldFB4KGwsYSxkKXtjb25zdCBoPSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24sZj1hW2xdLmNsaWVudFJlY3QsXz1hW2wrLTEqZF07bGV0IFQ9ZltoPyJ3aWR0aCI6ImhlaWdodCJdKmQ7aWYoXyl7Y29uc3QgVz1oPyJsZWZ0IjoidG9wIixp'@; put 'ZT1oPyJyaWdodCI6ImJvdHRvbSI7LTE9PT1kP1QtPV8uY2xpZW50UmVjdFtXXS1mW2llXTpUKz1mW1ddLV8uY2xpZW50UmVjdFtpZV19cmV0dXJuIFR9X3Nob3VsZEVudGVyQXNGaXJzdENoaWxkKGwsYSl7aWYoIXRoaXMuX2FjdGl2ZURyYWdnYWJsZXMubGVuZ3RoKXJldHVybiExO2NvbnN0'@; put 'IGQ9dGhpcy5faXRlbVBvc2l0aW9ucyxoPSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb247aWYoZFswXS5kcmFnIT09dGhpcy5fYWN0aXZlRHJhZ2dhYmxlc1swXSl7Y29uc3QgXz1kW2QubGVuZ3RoLTFdLmNsaWVudFJlY3Q7cmV0dXJuIGg/bD49Xy5yaWdodDphPj1fLmJvdHRvbX17'@; put 'Y29uc3QgXz1kWzBdLmNsaWVudFJlY3Q7cmV0dXJuIGg/bDw9Xy5sZWZ0OmE8PV8udG9wfX1fZ2V0SXRlbUluZGV4RnJvbVBvaW50ZXJQb3NpdGlvbihsLGEsZCxoKXtjb25zdCBmPSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24sXz10aGlzLl9pdGVtUG9zaXRpb25zLmZpbmRJbmRl'@; put 'eCgoe2RyYWc6VCxjbGllbnRSZWN0Old9KT0+VCE9PWwmJigoIWh8fFQhPT10aGlzLl9wcmV2aW91c1N3YXAuZHJhZ3x8IXRoaXMuX3ByZXZpb3VzU3dhcC5vdmVybGFwc3x8KGY/aC54OmgueSkhPT10aGlzLl9wcmV2aW91c1N3YXAuZGVsdGEpJiYoZj9hPj1NYXRoLmZsb29yKFcubGVmdCkm'@; put 'JmE8TWF0aC5mbG9vcihXLnJpZ2h0KTpkPj1NYXRoLmZsb29yKFcudG9wKSYmZDxNYXRoLmZsb29yKFcuYm90dG9tKSkpKTtyZXR1cm4tMSE9PV8mJnRoaXMuX3NvcnRQcmVkaWNhdGUoXyxsKT9fOi0xfX1jbGFzcyB2QmV7Y29uc3RydWN0b3IobCxhLGQsaCxmKXt0aGlzLl9kcmFnRHJvcFJl'@; put 'Z2lzdHJ5PWEsdGhpcy5fbmdab25lPWgsdGhpcy5fdmlld3BvcnRSdWxlcj1mLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5zb3J0aW5nRGlzYWJsZWQ9ITEsdGhpcy5hdXRvU2Nyb2xsRGlzYWJsZWQ9ITEsdGhpcy5hdXRvU2Nyb2xsU3RlcD0yLHRoaXMuZW50ZXJQcmVkaWNhdGU9KCk9PiEwLHRo'@; put 'aXMuc29ydFByZWRpY2F0ZT0oKT0+ITAsdGhpcy5iZWZvcmVTdGFydGVkPW5ldyBiZSx0aGlzLmVudGVyZWQ9bmV3IGJlLHRoaXMuZXhpdGVkPW5ldyBiZSx0aGlzLmRyb3BwZWQ9bmV3IGJlLHRoaXMuc29ydGVkPW5ldyBiZSx0aGlzLnJlY2VpdmluZ1N0YXJ0ZWQ9bmV3IGJlLHRoaXMucmVj'@; put 'ZWl2aW5nU3RvcHBlZD1uZXcgYmUsdGhpcy5faXNEcmFnZ2luZz0hMSx0aGlzLl9kcmFnZ2FibGVzPVtdLHRoaXMuX3NpYmxpbmdzPVtdLHRoaXMuX2FjdGl2ZVNpYmxpbmdzPW5ldyBTZXQsdGhpcy5fdmlld3BvcnRTY3JvbGxTdWJzY3JpcHRpb249ZWUuRU1QVFksdGhpcy5fdmVydGljYWxT'@; put 'Y3JvbGxEaXJlY3Rpb249MCx0aGlzLl9ob3Jpem9udGFsU2Nyb2xsRGlyZWN0aW9uPTAsdGhpcy5fc3RvcFNjcm9sbFRpbWVycz1uZXcgYmUsdGhpcy5fY2FjaGVkU2hhZG93Um9vdD1udWxsLHRoaXMuX3N0YXJ0U2Nyb2xsSW50ZXJ2YWw9KCk9Pnt0aGlzLl9zdG9wU2Nyb2xsaW5nKCksZnVu'@; put 'Y3Rpb24gc0JlKGM9MCxsPWliKXtyZXR1cm4gYzwwJiYoYz0wKSxqUChjLGMsbCl9KDAsam9lKS5waXBlKGFoKHRoaXMuX3N0b3BTY3JvbGxUaW1lcnMpKS5zdWJzY3JpYmUoKCk9Pntjb25zdCBfPXRoaXMuX3Njcm9sbE5vZGUsVD10aGlzLmF1dG9TY3JvbGxTdGVwOzE9PT10aGlzLl92ZXJ0'@; put 'aWNhbFNjcm9sbERpcmVjdGlvbj9fLnNjcm9sbEJ5KDAsLVQpOjI9PT10aGlzLl92ZXJ0aWNhbFNjcm9sbERpcmVjdGlvbiYmXy5zY3JvbGxCeSgwLFQpLDE9PT10aGlzLl9ob3Jpem9udGFsU2Nyb2xsRGlyZWN0aW9uP18uc2Nyb2xsQnkoLVQsMCk6Mj09PXRoaXMuX2hvcml6b250YWxTY3Jv'@; put 'bGxEaXJlY3Rpb24mJl8uc2Nyb2xsQnkoVCwwKX0pfSx0aGlzLmVsZW1lbnQ9UDAobCksdGhpcy5fZG9jdW1lbnQ9ZCx0aGlzLndpdGhTY3JvbGxhYmxlUGFyZW50cyhbdGhpcy5lbGVtZW50XSksYS5yZWdpc3RlckRyb3BDb250YWluZXIodGhpcyksdGhpcy5fcGFyZW50UG9zaXRpb25zPW5l'@; put 'dyBlc2UoZCksdGhpcy5fc29ydFN0cmF0ZWd5PW5ldyBtQmUodGhpcy5lbGVtZW50LGEpLHRoaXMuX3NvcnRTdHJhdGVneS53aXRoU29ydFByZWRpY2F0ZSgoXyxUKT0+dGhpcy5zb3J0UHJlZGljYXRlKF8sVCx0aGlzKSl9ZGlzcG9zZSgpe3RoaXMuX3N0b3BTY3JvbGxpbmcoKSx0aGlzLl9z'@; put 'dG9wU2Nyb2xsVGltZXJzLmNvbXBsZXRlKCksdGhpcy5fdmlld3BvcnRTY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmJlZm9yZVN0YXJ0ZWQuY29tcGxldGUoKSx0aGlzLmVudGVyZWQuY29tcGxldGUoKSx0aGlzLmV4aXRlZC5jb21wbGV0ZSgpLHRoaXMuZHJvcHBlZC5j'@; put 'b21wbGV0ZSgpLHRoaXMuc29ydGVkLmNvbXBsZXRlKCksdGhpcy5yZWNlaXZpbmdTdGFydGVkLmNvbXBsZXRlKCksdGhpcy5yZWNlaXZpbmdTdG9wcGVkLmNvbXBsZXRlKCksdGhpcy5fYWN0aXZlU2libGluZ3MuY2xlYXIoKSx0aGlzLl9zY3JvbGxOb2RlPW51bGwsdGhpcy5fcGFyZW50UG9z'@; put 'aXRpb25zLmNsZWFyKCksdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5yZW1vdmVEcm9wQ29udGFpbmVyKHRoaXMpfWlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy5faXNEcmFnZ2luZ31zdGFydCgpe3RoaXMuX2RyYWdnaW5nU3RhcnRlZCgpLHRoaXMuX25vdGlmeVJlY2VpdmluZ1NpYmxpbmdzKCl9'@; put 'ZW50ZXIobCxhLGQsaCl7dGhpcy5fZHJhZ2dpbmdTdGFydGVkKCksbnVsbD09aCYmdGhpcy5zb3J0aW5nRGlzYWJsZWQmJihoPXRoaXMuX2RyYWdnYWJsZXMuaW5kZXhPZihsKSksdGhpcy5fc29ydFN0cmF0ZWd5LmVudGVyKGwsYSxkLGgpLHRoaXMuX2NhY2hlUGFyZW50UG9zaXRpb25zKCks'@; put 'dGhpcy5fbm90aWZ5UmVjZWl2aW5nU2libGluZ3MoKSx0aGlzLmVudGVyZWQubmV4dCh7aXRlbTpsLGNvbnRhaW5lcjp0aGlzLGN1cnJlbnRJbmRleDp0aGlzLmdldEl0ZW1JbmRleChsKX0pfWV4aXQobCl7dGhpcy5fcmVzZXQoKSx0aGlzLmV4aXRlZC5uZXh0KHtpdGVtOmwsY29udGFpbmVy'@; put 'OnRoaXN9KX1kcm9wKGwsYSxkLGgsZixfLFQsVz17fSl7dGhpcy5fcmVzZXQoKSx0aGlzLmRyb3BwZWQubmV4dCh7aXRlbTpsLGN1cnJlbnRJbmRleDphLHByZXZpb3VzSW5kZXg6ZCxjb250YWluZXI6dGhpcyxwcmV2aW91c0NvbnRhaW5lcjpoLGlzUG9pbnRlck92ZXJDb250YWluZXI6Zixk'@; put 'aXN0YW5jZTpfLGRyb3BQb2ludDpULGV2ZW50Old9KX13aXRoSXRlbXMobCl7Y29uc3QgYT10aGlzLl9kcmFnZ2FibGVzO3JldHVybiB0aGlzLl9kcmFnZ2FibGVzPWwsbC5mb3JFYWNoKGQ9PmQuX3dpdGhEcm9wQ29udGFpbmVyKHRoaXMpKSx0aGlzLmlzRHJhZ2dpbmcoKSYmKGEuZmlsdGVy'@; put 'KGg9PmguaXNEcmFnZ2luZygpKS5ldmVyeShoPT4tMT09PWwuaW5kZXhPZihoKSk/dGhpcy5fcmVzZXQoKTp0aGlzLl9zb3J0U3RyYXRlZ3kud2l0aEl0ZW1zKHRoaXMuX2RyYWdnYWJsZXMpKSx0aGlzfXdpdGhEaXJlY3Rpb24obCl7cmV0dXJuIHRoaXMuX3NvcnRTdHJhdGVneS5kaXJlY3Rp'@; put 'b249bCx0aGlzfWNvbm5lY3RlZFRvKGwpe3JldHVybiB0aGlzLl9zaWJsaW5ncz1sLnNsaWNlKCksdGhpc313aXRoT3JpZW50YXRpb24obCl7cmV0dXJuIHRoaXMuX3NvcnRTdHJhdGVneS5vcmllbnRhdGlvbj1sLHRoaXN9d2l0aFNjcm9sbGFibGVQYXJlbnRzKGwpe2NvbnN0IGE9UDAodGhp'@; put 'cy5lbGVtZW50KTtyZXR1cm4gdGhpcy5fc2Nyb2xsYWJsZUVsZW1lbnRzPS0xPT09bC5pbmRleE9mKGEpP1thLC4uLmxdOmwuc2xpY2UoKSx0aGlzfWdldFNjcm9sbGFibGVQYXJlbnRzKCl7cmV0dXJuIHRoaXMuX3Njcm9sbGFibGVFbGVtZW50c31nZXRJdGVtSW5kZXgobCl7cmV0dXJuIHRo'@; put 'aXMuX2lzRHJhZ2dpbmc/dGhpcy5fc29ydFN0cmF0ZWd5LmdldEl0ZW1JbmRleChsKTp0aGlzLl9kcmFnZ2FibGVzLmluZGV4T2YobCl9aXNSZWNlaXZpbmcoKXtyZXR1cm4gdGhpcy5fYWN0aXZlU2libGluZ3Muc2l6ZT4wfV9zb3J0SXRlbShsLGEsZCxoKXtpZih0aGlzLnNvcnRpbmdEaXNh'@; put 'YmxlZHx8IXRoaXMuX2NsaWVudFJlY3R8fCFRb2UodGhpcy5fY2xpZW50UmVjdCwuMDUsYSxkKSlyZXR1cm47Y29uc3QgZj10aGlzLl9zb3J0U3RyYXRlZ3kuc29ydChsLGEsZCxoKTtmJiZ0aGlzLnNvcnRlZC5uZXh0KHtwcmV2aW91c0luZGV4OmYucHJldmlvdXNJbmRleCxjdXJyZW50SW5k'@; put 'ZXg6Zi5jdXJyZW50SW5kZXgsY29udGFpbmVyOnRoaXMsaXRlbTpsfSl9X3N0YXJ0U2Nyb2xsaW5nSWZOZWNlc3NhcnkobCxhKXtpZih0aGlzLmF1dG9TY3JvbGxEaXNhYmxlZClyZXR1cm47bGV0IGQsaD0wLGY9MDtpZih0aGlzLl9wYXJlbnRQb3NpdGlvbnMucG9zaXRpb25zLmZvckVhY2go'@; put 'KF8sVCk9PntUPT09dGhpcy5fZG9jdW1lbnR8fCFfLmNsaWVudFJlY3R8fGR8fFFvZShfLmNsaWVudFJlY3QsLjA1LGwsYSkmJihbaCxmXT1mdW5jdGlvbiBfQmUoYyxsLGEsZCl7Y29uc3QgaD1oc2UobCxkKSxmPWZzZShsLGEpO2xldCBfPTAsVD0wO2lmKGgpe2NvbnN0IFc9Yy5zY3JvbGxU'@; put 'b3A7MT09PWg/Vz4wJiYoXz0xKTpjLnNjcm9sbEhlaWdodC1XPmMuY2xpZW50SGVpZ2h0JiYoXz0yKX1pZihmKXtjb25zdCBXPWMuc2Nyb2xsTGVmdDsxPT09Zj9XPjAmJihUPTEpOmMuc2Nyb2xsV2lkdGgtVz5jLmNsaWVudFdpZHRoJiYoVD0yKX1yZXR1cm5bXyxUXX0oVCxfLmNsaWVudFJl'@; put 'Y3QsbCxhKSwoaHx8ZikmJihkPVQpKX0pLCFoJiYhZil7Y29uc3R7d2lkdGg6XyxoZWlnaHQ6VH09dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKSxXPXt3aWR0aDpfLGhlaWdodDpULHRvcDowLHJpZ2h0Ol8sYm90dG9tOlQsbGVmdDowfTtoPWhzZShXLGEpLGY9ZnNlKFcs'@; put 'bCksZD13aW5kb3d9ZCYmKGghPT10aGlzLl92ZXJ0aWNhbFNjcm9sbERpcmVjdGlvbnx8ZiE9PXRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb258fGQhPT10aGlzLl9zY3JvbGxOb2RlKSYmKHRoaXMuX3ZlcnRpY2FsU2Nyb2xsRGlyZWN0aW9uPWgsdGhpcy5faG9yaXpvbnRhbFNjcm9s'@; put 'bERpcmVjdGlvbj1mLHRoaXMuX3Njcm9sbE5vZGU9ZCwoaHx8ZikmJmQ/dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKHRoaXMuX3N0YXJ0U2Nyb2xsSW50ZXJ2YWwpOnRoaXMuX3N0b3BTY3JvbGxpbmcoKSl9X3N0b3BTY3JvbGxpbmcoKXt0aGlzLl9zdG9wU2Nyb2xsVGltZXJzLm5l'@; put 'eHQoKX1fZHJhZ2dpbmdTdGFydGVkKCl7Y29uc3QgbD1QMCh0aGlzLmVsZW1lbnQpLnN0eWxlO3RoaXMuYmVmb3JlU3RhcnRlZC5uZXh0KCksdGhpcy5faXNEcmFnZ2luZz0hMCx0aGlzLl9pbml0aWFsU2Nyb2xsU25hcD1sLm1zU2Nyb2xsU25hcFR5cGV8fGwuc2Nyb2xsU25hcFR5cGV8fCIi'@; put 'LGwuc2Nyb2xsU25hcFR5cGU9bC5tc1Njcm9sbFNuYXBUeXBlPSJub25lIix0aGlzLl9zb3J0U3RyYXRlZ3kuc3RhcnQodGhpcy5fZHJhZ2dhYmxlcyksdGhpcy5fY2FjaGVQYXJlbnRQb3NpdGlvbnMoKSx0aGlzLl92aWV3cG9ydFNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRo'@; put 'aXMuX2xpc3RlblRvU2Nyb2xsRXZlbnRzKCl9X2NhY2hlUGFyZW50UG9zaXRpb25zKCl7Y29uc3QgbD1QMCh0aGlzLmVsZW1lbnQpO3RoaXMuX3BhcmVudFBvc2l0aW9ucy5jYWNoZSh0aGlzLl9zY3JvbGxhYmxlRWxlbWVudHMpLHRoaXMuX2NsaWVudFJlY3Q9dGhpcy5fcGFyZW50UG9zaXRp'@; put 'b25zLnBvc2l0aW9ucy5nZXQobCkuY2xpZW50UmVjdH1fcmVzZXQoKXt0aGlzLl9pc0RyYWdnaW5nPSExO2NvbnN0IGw9UDAodGhpcy5lbGVtZW50KS5zdHlsZTtsLnNjcm9sbFNuYXBUeXBlPWwubXNTY3JvbGxTbmFwVHlwZT10aGlzLl9pbml0aWFsU2Nyb2xsU25hcCx0aGlzLl9zaWJsaW5n'@; put 'cy5mb3JFYWNoKGE9PmEuX3N0b3BSZWNlaXZpbmcodGhpcykpLHRoaXMuX3NvcnRTdHJhdGVneS5yZXNldCgpLHRoaXMuX3N0b3BTY3JvbGxpbmcoKSx0aGlzLl92aWV3cG9ydFNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3BhcmVudFBvc2l0aW9ucy5jbGVhcigpfV9p'@; put 'c092ZXJDb250YWluZXIobCxhKXtyZXR1cm4gbnVsbCE9dGhpcy5fY2xpZW50UmVjdCYmclUodGhpcy5fY2xpZW50UmVjdCxsLGEpfV9nZXRTaWJsaW5nQ29udGFpbmVyRnJvbVBvc2l0aW9uKGwsYSxkKXtyZXR1cm4gdGhpcy5fc2libGluZ3MuZmluZChoPT5oLl9jYW5SZWNlaXZlKGwsYSxk'@; put 'KSl9X2NhblJlY2VpdmUobCxhLGQpe2lmKCF0aGlzLl9jbGllbnRSZWN0fHwhclUodGhpcy5fY2xpZW50UmVjdCxhLGQpfHwhdGhpcy5lbnRlclByZWRpY2F0ZShsLHRoaXMpKXJldHVybiExO2NvbnN0IGg9dGhpcy5fZ2V0U2hhZG93Um9vdCgpLmVsZW1lbnRGcm9tUG9pbnQoYSxkKTtpZigh'@; put 'aClyZXR1cm4hMTtjb25zdCBmPVAwKHRoaXMuZWxlbWVudCk7cmV0dXJuIGg9PT1mfHxmLmNvbnRhaW5zKGgpfV9zdGFydFJlY2VpdmluZyhsLGEpe2NvbnN0IGQ9dGhpcy5fYWN0aXZlU2libGluZ3M7IWQuaGFzKGwpJiZhLmV2ZXJ5KGg9PnRoaXMuZW50ZXJQcmVkaWNhdGUoaCx0aGlzKXx8'@; put 'dGhpcy5fZHJhZ2dhYmxlcy5pbmRleE9mKGgpPi0xKSYmKGQuYWRkKGwpLHRoaXMuX2NhY2hlUGFyZW50UG9zaXRpb25zKCksdGhpcy5fbGlzdGVuVG9TY3JvbGxFdmVudHMoKSx0aGlzLnJlY2VpdmluZ1N0YXJ0ZWQubmV4dCh7aW5pdGlhdG9yOmwscmVjZWl2ZXI6dGhpcyxpdGVtczphfSkp'@; put 'fV9zdG9wUmVjZWl2aW5nKGwpe3RoaXMuX2FjdGl2ZVNpYmxpbmdzLmRlbGV0ZShsKSx0aGlzLl92aWV3cG9ydFNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucmVjZWl2aW5nU3RvcHBlZC5uZXh0KHtpbml0aWF0b3I6bCxyZWNlaXZlcjp0aGlzfSl9X2xpc3RlblRvU2Ny'@; put 'b2xsRXZlbnRzKCl7dGhpcy5fdmlld3BvcnRTY3JvbGxTdWJzY3JpcHRpb249dGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5zY3JvbGxlZCh0aGlzLl9nZXRTaGFkb3dSb290KCkpLnN1YnNjcmliZShsPT57aWYodGhpcy5pc0RyYWdnaW5nKCkpe2NvbnN0IGE9dGhpcy5fcGFyZW50UG9zaXRpb25z'@; put 'LmhhbmRsZVNjcm9sbChsKTthJiZ0aGlzLl9zb3J0U3RyYXRlZ3kudXBkYXRlT25TY3JvbGwoYS50b3AsYS5sZWZ0KX1lbHNlIHRoaXMuaXNSZWNlaXZpbmcoKSYmdGhpcy5fY2FjaGVQYXJlbnRQb3NpdGlvbnMoKX0pfV9nZXRTaGFkb3dSb290KCl7aWYoIXRoaXMuX2NhY2hlZFNoYWRvd1Jv'@; put 'b3Qpe2NvbnN0IGw9V29lKFAwKHRoaXMuZWxlbWVudCkpO3RoaXMuX2NhY2hlZFNoYWRvd1Jvb3Q9bHx8dGhpcy5fZG9jdW1lbnR9cmV0dXJuIHRoaXMuX2NhY2hlZFNoYWRvd1Jvb3R9X25vdGlmeVJlY2VpdmluZ1NpYmxpbmdzKCl7Y29uc3QgbD10aGlzLl9zb3J0U3RyYXRlZ3kuZ2V0QWN0'@; put 'aXZlSXRlbXNTbmFwc2hvdCgpLmZpbHRlcihhPT5hLmlzRHJhZ2dpbmcoKSk7dGhpcy5fc2libGluZ3MuZm9yRWFjaChhPT5hLl9zdGFydFJlY2VpdmluZyh0aGlzLGwpKX19ZnVuY3Rpb24gaHNlKGMsbCl7Y29uc3R7dG9wOmEsYm90dG9tOmQsaGVpZ2h0Omh9PWMsZj0uMDUqaDtyZXR1cm4g'@; put 'bD49YS1mJiZsPD1hK2Y/MTpsPj1kLWYmJmw8PWQrZj8yOjB9ZnVuY3Rpb24gZnNlKGMsbCl7Y29uc3R7bGVmdDphLHJpZ2h0OmQsd2lkdGg6aH09YyxmPS4wNSpoO3JldHVybiBsPj1hLWYmJmw8PWErZj8xOmw+PWQtZiYmbDw9ZCtmPzI6MH1jb25zdCBYQT1pdyh7cGFzc2l2ZTohMSxjYXB0'@; put 'dXJlOiEwfSk7bGV0IGJCZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5fbmdab25lPWEsdGhpcy5fZHJvcEluc3RhbmNlcz1uZXcgU2V0LHRoaXMuX2RyYWdJbnN0YW5jZXM9bmV3IFNldCx0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzPVtdLHRoaXMuX2dsb2JhbExpc3Rl'@; put 'bmVycz1uZXcgTWFwLHRoaXMuX2RyYWdnaW5nUHJlZGljYXRlPWg9PmguaXNEcmFnZ2luZygpLHRoaXMucG9pbnRlck1vdmU9bmV3IGJlLHRoaXMucG9pbnRlclVwPW5ldyBiZSx0aGlzLnNjcm9sbD1uZXcgYmUsdGhpcy5fcHJldmVudERlZmF1bHRXaGlsZURyYWdnaW5nPWg9Pnt0aGlzLl9h'@; put 'Y3RpdmVEcmFnSW5zdGFuY2VzLmxlbmd0aD4wJiZoLnByZXZlbnREZWZhdWx0KCl9LHRoaXMuX3BlcnNpc3RlbnRUb3VjaG1vdmVMaXN0ZW5lcj1oPT57dGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5sZW5ndGg+MCYmKHRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMuc29tZSh0aGlzLl9kcmFn'@; put 'Z2luZ1ByZWRpY2F0ZSkmJmgucHJldmVudERlZmF1bHQoKSx0aGlzLnBvaW50ZXJNb3ZlLm5leHQoaCkpfSx0aGlzLl9kb2N1bWVudD1kfXJlZ2lzdGVyRHJvcENvbnRhaW5lcihhKXt0aGlzLl9kcm9wSW5zdGFuY2VzLmhhcyhhKXx8dGhpcy5fZHJvcEluc3RhbmNlcy5hZGQoYSl9cmVnaXN0'@; put 'ZXJEcmFnSXRlbShhKXt0aGlzLl9kcmFnSW5zdGFuY2VzLmFkZChhKSwxPT09dGhpcy5fZHJhZ0luc3RhbmNlcy5zaXplJiZ0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX3BlcnNpc3Rl'@; put 'bnRUb3VjaG1vdmVMaXN0ZW5lcixYQSl9KX1yZW1vdmVEcm9wQ29udGFpbmVyKGEpe3RoaXMuX2Ryb3BJbnN0YW5jZXMuZGVsZXRlKGEpfXJlbW92ZURyYWdJdGVtKGEpe3RoaXMuX2RyYWdJbnN0YW5jZXMuZGVsZXRlKGEpLHRoaXMuc3RvcERyYWdnaW5nKGEpLDA9PT10aGlzLl9kcmFnSW5z'@; put 'dGFuY2VzLnNpemUmJnRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fcGVyc2lzdGVudFRvdWNobW92ZUxpc3RlbmVyLFhBKX1zdGFydERyYWdnaW5nKGEsZCl7aWYoISh0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLmluZGV4T2YoYSk+LTEpJiYo'@; put 'dGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5wdXNoKGEpLDE9PT10aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLmxlbmd0aCkpe2NvbnN0IGg9ZC50eXBlLnN0YXJ0c1dpdGgoInRvdWNoIik7dGhpcy5fZ2xvYmFsTGlzdGVuZXJzLnNldChoPyJ0b3VjaGVuZCI6Im1vdXNldXAiLHtoYW5kbGVy'@; put 'OmY9PnRoaXMucG9pbnRlclVwLm5leHQoZiksb3B0aW9uczohMH0pLnNldCgic2Nyb2xsIix7aGFuZGxlcjpmPT50aGlzLnNjcm9sbC5uZXh0KGYpLG9wdGlvbnM6ITB9KS5zZXQoInNlbGVjdHN0YXJ0Iix7aGFuZGxlcjp0aGlzLl9wcmV2ZW50RGVmYXVsdFdoaWxlRHJhZ2dpbmcsb3B0aW9u'@; put 'czpYQX0pLGh8fHRoaXMuX2dsb2JhbExpc3RlbmVycy5zZXQoIm1vdXNlbW92ZSIse2hhbmRsZXI6Zj0+dGhpcy5wb2ludGVyTW92ZS5uZXh0KGYpLG9wdGlvbnM6WEF9KSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9nbG9iYWxMaXN0ZW5lcnMuZm9yRWFjaCgo'@; put 'ZixfKT0+e3RoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXyxmLmhhbmRsZXIsZi5vcHRpb25zKX0pfSl9fXN0b3BEcmFnZ2luZyhhKXtjb25zdCBkPXRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMuaW5kZXhPZihhKTtkPi0xJiYodGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5zcGxp'@; put 'Y2UoZCwxKSwwPT09dGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5sZW5ndGgmJnRoaXMuX2NsZWFyR2xvYmFsTGlzdGVuZXJzKCkpfWlzRHJhZ2dpbmcoYSl7cmV0dXJuIHRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMuaW5kZXhPZihhKT4tMX1zY3JvbGxlZChhKXtjb25zdCBkPVt0aGlzLnNj'@; put 'cm9sbF07cmV0dXJuIGEmJmEhPT10aGlzLl9kb2N1bWVudCYmZC5wdXNoKG5ldyBLZShoPT50aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pntjb25zdCBfPVQ9Pnt0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLmxlbmd0aCYmaC5uZXh0KFQpfTtyZXR1cm4gYS5hZGRFdmVudExp'@; put 'c3RlbmVyKCJzY3JvbGwiLF8sITApLCgpPT57YS5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLF8sITApfX0pKSksaXMoLi4uZCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kcmFnSW5zdGFuY2VzLmZvckVhY2goYT0+dGhpcy5yZW1vdmVEcmFnSXRlbShhKSksdGhpcy5fZHJvcEluc3RhbmNl'@; put 'cy5mb3JFYWNoKGE9PnRoaXMucmVtb3ZlRHJvcENvbnRhaW5lcihhKSksdGhpcy5fY2xlYXJHbG9iYWxMaXN0ZW5lcnMoKSx0aGlzLnBvaW50ZXJNb3ZlLmNvbXBsZXRlKCksdGhpcy5wb2ludGVyVXAuY29tcGxldGUoKX1fY2xlYXJHbG9iYWxMaXN0ZW5lcnMoKXt0aGlzLl9nbG9iYWxMaXN0'@; put 'ZW5lcnMuZm9yRWFjaCgoYSxkKT0+e3RoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZCxhLmhhbmRsZXIsYS5vcHRpb25zKX0pLHRoaXMuX2dsb2JhbExpc3RlbmVycy5jbGVhcigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShhcihO'@; put 'byksYXIoTHMpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtjb25zdCB5QmU9e2RyYWdTdGFydFRocmVzaG9sZDo1LHBvaW50ZXJEaXJlY3Rpb25DaGFuZ2VUaHJlc2hvbGQ6NX07bGV0IG9VPSgoKT0+e2Ns'@; put 'YXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5fZG9jdW1lbnQ9YSx0aGlzLl9uZ1pvbmU9ZCx0aGlzLl92aWV3cG9ydFJ1bGVyPWgsdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeT1mfWNyZWF0ZURyYWcoYSxkPXlCZSl7cmV0dXJuIG5ldyBwQmUoYSxkLHRoaXMuX2RvY3VtZW50LHRoaXMu'@; put 'X25nWm9uZSx0aGlzLl92aWV3cG9ydFJ1bGVyLHRoaXMuX2RyYWdEcm9wUmVnaXN0cnkpfWNyZWF0ZURyb3BMaXN0KGEpe3JldHVybiBuZXcgdkJlKGEsdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeSx0aGlzLl9kb2N1bWVudCx0aGlzLl9uZ1pvbmUsdGhpcy5fdmlld3BvcnRSdWxlcil9fXJldHVy'@; put 'biBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKExzKSxhcihObyksYXIoVVZlKSxhcihiQmUpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtjb25zdCBzVT1uZXcgU2koIkNE'@; put 'S19EUkFHX1BBUkVOVCIpLGFVPW5ldyBTaSgiQ2RrRHJvcExpc3RHcm91cCIpO2xldCBwc2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2l0ZW1zPW5ldyBTZXQsdGhpcy5fZGlzYWJsZWQ9ITF9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNh'@; put 'YmxlZChhKXt0aGlzLl9kaXNhYmxlZD1hNChhKX1uZ09uRGVzdHJveSgpe3RoaXMuX2l0ZW1zLmNsZWFyKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjZGtEcm9wTGlzdEdy'@; put 'b3VwIiwiIl1dLGlucHV0czp7ZGlzYWJsZWQ6WyJjZGtEcm9wTGlzdEdyb3VwRGlzYWJsZWQiLCJkaXNhYmxlZCJdfSxleHBvcnRBczpbImNka0Ryb3BMaXN0R3JvdXAiXSxzdGFuZGFsb25lOiEwLGZlYXR1cmVzOlt0aShbe3Byb3ZpZGU6YVUsdXNlRXhpc3Rpbmc6Y31dKV19KSxjfSkoKTtj'@; put 'b25zdCBnc2U9bmV3IFNpKCJDREtfRFJBR19DT05GSUciKTtsZXQgd0JlPTA7Y29uc3QgbXNlPW5ldyBTaSgiQ2RrRHJvcExpc3QiKTtsZXQgdnNlPSgoKT0+e2NsYXNzIGN7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfHwhIXRoaXMuX2dyb3VwJiZ0aGlzLl9ncm91cC5k'@; put 'aXNhYmxlZH1zZXQgZGlzYWJsZWQoYSl7dGhpcy5fZHJvcExpc3RSZWYuZGlzYWJsZWQ9dGhpcy5fZGlzYWJsZWQ9YTQoYSl9Y29uc3RydWN0b3IoYSxkLGgsZixfLFQsVyl7dGhpcy5lbGVtZW50PWEsdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY9aCx0aGlzLl9zY3JvbGxEaXNwYXRjaGVyPWYs'@; put 'dGhpcy5fZGlyPV8sdGhpcy5fZ3JvdXA9VCx0aGlzLl9kZXN0cm95ZWQ9bmV3IGJlLHRoaXMuY29ubmVjdGVkVG89W10sdGhpcy5pZD0iY2RrLWRyb3AtbGlzdC0iK3dCZSsrLHRoaXMuZW50ZXJQcmVkaWNhdGU9KCk9PiEwLHRoaXMuc29ydFByZWRpY2F0ZT0oKT0+ITAsdGhpcy5kcm9wcGVk'@; put 'PW5ldyBFcix0aGlzLmVudGVyZWQ9bmV3IEVyLHRoaXMuZXhpdGVkPW5ldyBFcix0aGlzLnNvcnRlZD1uZXcgRXIsdGhpcy5fdW5zb3J0ZWRJdGVtcz1uZXcgU2V0LHRoaXMuX2Ryb3BMaXN0UmVmPWQuY3JlYXRlRHJvcExpc3QoYSksdGhpcy5fZHJvcExpc3RSZWYuZGF0YT10aGlzLFcmJnRo'@; put 'aXMuX2Fzc2lnbkRlZmF1bHRzKFcpLHRoaXMuX2Ryb3BMaXN0UmVmLmVudGVyUHJlZGljYXRlPShpZSxwZSk9PnRoaXMuZW50ZXJQcmVkaWNhdGUoaWUuZGF0YSxwZS5kYXRhKSx0aGlzLl9kcm9wTGlzdFJlZi5zb3J0UHJlZGljYXRlPShpZSxwZSx3ZSk9PnRoaXMuc29ydFByZWRpY2F0ZShp'@; put 'ZSxwZS5kYXRhLHdlLmRhdGEpLHRoaXMuX3NldHVwSW5wdXRTeW5jU3Vic2NyaXB0aW9uKHRoaXMuX2Ryb3BMaXN0UmVmKSx0aGlzLl9oYW5kbGVFdmVudHModGhpcy5fZHJvcExpc3RSZWYpLGMuX2Ryb3BMaXN0cy5wdXNoKHRoaXMpLFQmJlQuX2l0ZW1zLmFkZCh0aGlzKX1hZGRJdGVtKGEp'@; put 'e3RoaXMuX3Vuc29ydGVkSXRlbXMuYWRkKGEpLHRoaXMuX2Ryb3BMaXN0UmVmLmlzRHJhZ2dpbmcoKSYmdGhpcy5fc3luY0l0ZW1zV2l0aFJlZigpfXJlbW92ZUl0ZW0oYSl7dGhpcy5fdW5zb3J0ZWRJdGVtcy5kZWxldGUoYSksdGhpcy5fZHJvcExpc3RSZWYuaXNEcmFnZ2luZygpJiZ0aGlz'@; put 'Ll9zeW5jSXRlbXNXaXRoUmVmKCl9Z2V0U29ydGVkSXRlbXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl91bnNvcnRlZEl0ZW1zKS5zb3J0KChhLGQpPT5hLl9kcmFnUmVmLmdldFZpc2libGVFbGVtZW50KCkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZC5fZHJhZ1JlZi5nZXRWaXNpYmxl'@; put 'RWxlbWVudCgpKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8tMToxKX1uZ09uRGVzdHJveSgpe2NvbnN0IGE9Yy5fZHJvcExpc3RzLmluZGV4T2YodGhpcyk7YT4tMSYmYy5fZHJvcExpc3RzLnNwbGljZShhLDEpLHRoaXMuX2dyb3VwJiZ0aGlzLl9ncm91cC5faXRlbXMuZGVs'@; put 'ZXRlKHRoaXMpLHRoaXMuX3Vuc29ydGVkSXRlbXMuY2xlYXIoKSx0aGlzLl9kcm9wTGlzdFJlZi5kaXNwb3NlKCksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKX1fc2V0dXBJbnB1dFN5bmNTdWJzY3JpcHRpb24oYSl7dGhpcy5fZGlyJiZ0aGlzLl9k'@; put 'aXIuY2hhbmdlLnBpcGUoY3AodGhpcy5fZGlyLnZhbHVlKSxhaCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoZD0+YS53aXRoRGlyZWN0aW9uKGQpKSxhLmJlZm9yZVN0YXJ0ZWQuc3Vic2NyaWJlKCgpPT57Y29uc3QgZD1mdW5jdGlvbiBrVmUoYyl7cmV0dXJuIEFycmF5LmlzQXJyYXko'@; put 'Yyk/YzpbY119KHRoaXMuY29ubmVjdGVkVG8pLm1hcChoPT4ic3RyaW5nIj09dHlwZW9mIGg/Yy5fZHJvcExpc3RzLmZpbmQoXz0+Xy5pZD09PWgpOmgpO2lmKHRoaXMuX2dyb3VwJiZ0aGlzLl9ncm91cC5faXRlbXMuZm9yRWFjaChoPT57LTE9PT1kLmluZGV4T2YoaCkmJmQucHVzaChoKX0p'@; put 'LCF0aGlzLl9zY3JvbGxhYmxlUGFyZW50c1Jlc29sdmVkKXtjb25zdCBoPXRoaXMuX3Njcm9sbERpc3BhdGNoZXIuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHRoaXMuZWxlbWVudCkubWFwKGY9PmYuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQpO3RoaXMuX2Ryb3BMaXN0UmVm'@; put 'LndpdGhTY3JvbGxhYmxlUGFyZW50cyhoKSx0aGlzLl9zY3JvbGxhYmxlUGFyZW50c1Jlc29sdmVkPSEwfWEuZGlzYWJsZWQ9dGhpcy5kaXNhYmxlZCxhLmxvY2tBeGlzPXRoaXMubG9ja0F4aXMsYS5zb3J0aW5nRGlzYWJsZWQ9YTQodGhpcy5zb3J0aW5nRGlzYWJsZWQpLGEuYXV0b1Njcm9s'@; put 'bERpc2FibGVkPWE0KHRoaXMuYXV0b1Njcm9sbERpc2FibGVkKSxhLmF1dG9TY3JvbGxTdGVwPUJvZSh0aGlzLmF1dG9TY3JvbGxTdGVwLDIpLGEuY29ubmVjdGVkVG8oZC5maWx0ZXIoaD0+aCYmaCE9PXRoaXMpLm1hcChoPT5oLl9kcm9wTGlzdFJlZikpLndpdGhPcmllbnRhdGlvbih0aGlz'@; put 'Lm9yaWVudGF0aW9uKX0pfV9oYW5kbGVFdmVudHMoYSl7YS5iZWZvcmVTdGFydGVkLnN1YnNjcmliZSgoKT0+e3RoaXMuX3N5bmNJdGVtc1dpdGhSZWYoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pLGEuZW50ZXJlZC5zdWJzY3JpYmUoZD0+e3RoaXMuZW50ZXJl'@; put 'ZC5lbWl0KHtjb250YWluZXI6dGhpcyxpdGVtOmQuaXRlbS5kYXRhLGN1cnJlbnRJbmRleDpkLmN1cnJlbnRJbmRleH0pfSksYS5leGl0ZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLmV4aXRlZC5lbWl0KHtjb250YWluZXI6dGhpcyxpdGVtOmQuaXRlbS5kYXRhfSksdGhpcy5fY2hhbmdlRGV0ZWN0'@; put 'b3JSZWYubWFya0ZvckNoZWNrKCl9KSxhLnNvcnRlZC5zdWJzY3JpYmUoZD0+e3RoaXMuc29ydGVkLmVtaXQoe3ByZXZpb3VzSW5kZXg6ZC5wcmV2aW91c0luZGV4LGN1cnJlbnRJbmRleDpkLmN1cnJlbnRJbmRleCxjb250YWluZXI6dGhpcyxpdGVtOmQuaXRlbS5kYXRhfSl9KSxhLmRyb3Bw'@; put 'ZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLmRyb3BwZWQuZW1pdCh7cHJldmlvdXNJbmRleDpkLnByZXZpb3VzSW5kZXgsY3VycmVudEluZGV4OmQuY3VycmVudEluZGV4LHByZXZpb3VzQ29udGFpbmVyOmQucHJldmlvdXNDb250YWluZXIuZGF0YSxjb250YWluZXI6ZC5jb250YWluZXIuZGF0YSxp'@; put 'dGVtOmQuaXRlbS5kYXRhLGlzUG9pbnRlck92ZXJDb250YWluZXI6ZC5pc1BvaW50ZXJPdmVyQ29udGFpbmVyLGRpc3RhbmNlOmQuZGlzdGFuY2UsZHJvcFBvaW50OmQuZHJvcFBvaW50LGV2ZW50OmQuZXZlbnR9KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pLGlz'@; put 'KGEucmVjZWl2aW5nU3RhcnRlZCxhLnJlY2VpdmluZ1N0b3BwZWQpLnN1YnNjcmliZSgoKT0+dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfV9hc3NpZ25EZWZhdWx0cyhhKXtjb25zdHtsb2NrQXhpczpkLGRyYWdnaW5nRGlzYWJsZWQ6aCxzb3J0aW5nRGlzYWJsZWQ6'@; put 'ZixsaXN0QXV0b1Njcm9sbERpc2FibGVkOl8sbGlzdE9yaWVudGF0aW9uOlR9PWE7dGhpcy5kaXNhYmxlZD1oPz8hMSx0aGlzLnNvcnRpbmdEaXNhYmxlZD1mPz8hMSx0aGlzLmF1dG9TY3JvbGxEaXNhYmxlZD1fPz8hMSx0aGlzLm9yaWVudGF0aW9uPVR8fCJ2ZXJ0aWNhbCIsZCYmKHRoaXMu'@; put 'bG9ja0F4aXM9ZCl9X3N5bmNJdGVtc1dpdGhSZWYoKXt0aGlzLl9kcm9wTGlzdFJlZi53aXRoSXRlbXModGhpcy5nZXRTb3J0ZWRJdGVtcygpLm1hcChhPT5hLl9kcmFnUmVmKSl9fXJldHVybiBjLl9kcm9wTGlzdHM9W10sYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KSh0dChOaSksdHQob1UpLHR0KFVhKSx0dChqVmUpLHR0KEtvZSw4KSx0dChhVSwxMiksdHQoZ3NlLDgpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2RrRHJvcExpc3QiLCIiXSxbImNkay1kcm9wLWxpc3QiXV0saG9zdEF0dHJzOlsxLCJjZGstZHJvcC1saXN0'@; put 'Il0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJihUcigiaWQiLGQuaWQpLGRyKCJjZGstZHJvcC1saXN0LWRpc2FibGVkIixkLmRpc2FibGVkKSgiY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyIsZC5fZHJvcExpc3RSZWYuaXNEcmFnZ2luZygpKSgiY2RrLWRyb3At'@; put 'bGlzdC1yZWNlaXZpbmciLGQuX2Ryb3BMaXN0UmVmLmlzUmVjZWl2aW5nKCkpKX0saW5wdXRzOntjb25uZWN0ZWRUbzpbImNka0Ryb3BMaXN0Q29ubmVjdGVkVG8iLCJjb25uZWN0ZWRUbyJdLGRhdGE6WyJjZGtEcm9wTGlzdERhdGEiLCJkYXRhIl0sb3JpZW50YXRpb246WyJjZGtEcm9wTGlz'@; put 'dE9yaWVudGF0aW9uIiwib3JpZW50YXRpb24iXSxpZDoiaWQiLGxvY2tBeGlzOlsiY2RrRHJvcExpc3RMb2NrQXhpcyIsImxvY2tBeGlzIl0sZGlzYWJsZWQ6WyJjZGtEcm9wTGlzdERpc2FibGVkIiwiZGlzYWJsZWQiXSxzb3J0aW5nRGlzYWJsZWQ6WyJjZGtEcm9wTGlzdFNvcnRpbmdEaXNh'@; put 'YmxlZCIsInNvcnRpbmdEaXNhYmxlZCJdLGVudGVyUHJlZGljYXRlOlsiY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZSIsImVudGVyUHJlZGljYXRlIl0sc29ydFByZWRpY2F0ZTpbImNka0Ryb3BMaXN0U29ydFByZWRpY2F0ZSIsInNvcnRQcmVkaWNhdGUiXSxhdXRvU2Nyb2xsRGlzYWJsZWQ6'@; put 'WyJjZGtEcm9wTGlzdEF1dG9TY3JvbGxEaXNhYmxlZCIsImF1dG9TY3JvbGxEaXNhYmxlZCJdLGF1dG9TY3JvbGxTdGVwOlsiY2RrRHJvcExpc3RBdXRvU2Nyb2xsU3RlcCIsImF1dG9TY3JvbGxTdGVwIl19LG91dHB1dHM6e2Ryb3BwZWQ6ImNka0Ryb3BMaXN0RHJvcHBlZCIsZW50ZXJlZDoi'@; put 'Y2RrRHJvcExpc3RFbnRlcmVkIixleGl0ZWQ6ImNka0Ryb3BMaXN0RXhpdGVkIixzb3J0ZWQ6ImNka0Ryb3BMaXN0U29ydGVkIn0sZXhwb3J0QXM6WyJjZGtEcm9wTGlzdCJdLHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W3RpKFt7cHJvdmlkZTphVSx1c2VWYWx1ZTp2b2lkIDB9LHtwcm92aWRl'@; put 'Om1zZSx1c2VFeGlzdGluZzpjfV0pXX0pLGN9KSgpO2NvbnN0IGxVPW5ldyBTaSgiQ2RrRHJhZ0hhbmRsZSIpO2xldCBfc2U9KCgpPT57Y2xhc3MgY3tnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR9c2V0IGRpc2FibGVkKGEpe3RoaXMuX2Rpc2FibGVkPWE0KGEpLHRoaXMu'@; put 'X3N0YXRlQ2hhbmdlcy5uZXh0KHRoaXMpfWNvbnN0cnVjdG9yKGEsZCl7dGhpcy5lbGVtZW50PWEsdGhpcy5fc3RhdGVDaGFuZ2VzPW5ldyBiZSx0aGlzLl9kaXNhYmxlZD0hMSx0aGlzLl9wYXJlbnREcmFnPWR9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdGF0ZUNoYW5nZXMuY29tcGxldGUoKX19'@; put 'cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpLHR0KHNVLDEyKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNka0RyYWdIYW5kbGUiLCIiXV0saG9zdEF0dHJzOlsxLCJjZGstZHJhZy1oYW5kbGUiXSxpbnB1dHM6'@; put 'e2Rpc2FibGVkOlsiY2RrRHJhZ0hhbmRsZURpc2FibGVkIiwiZGlzYWJsZWQiXX0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbdGkoW3twcm92aWRlOmxVLHVzZUV4aXN0aW5nOmN9XSldfSksY30pKCk7Y29uc3QgYnNlPW5ldyBTaSgiQ2RrRHJhZ1BsYWNlaG9sZGVyIikseXNlPW5ldyBTaSgi'@; put 'Q2RrRHJhZ1ByZXZpZXciKTtsZXQgd3NlPSgoKT0+e2NsYXNzIGN7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfHx0aGlzLmRyb3BDb250YWluZXImJnRoaXMuZHJvcENvbnRhaW5lci5kaXNhYmxlZH1zZXQgZGlzYWJsZWQoYSl7dGhpcy5fZGlzYWJsZWQ9YTQoYSksdGhp'@; put 'cy5fZHJhZ1JlZi5kaXNhYmxlZD10aGlzLl9kaXNhYmxlZH1jb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGllLHBlLHdlLEVlKXt0aGlzLmVsZW1lbnQ9YSx0aGlzLmRyb3BDb250YWluZXI9ZCx0aGlzLl9uZ1pvbmU9Zix0aGlzLl92aWV3Q29udGFpbmVyUmVmPV8sdGhpcy5fZGlyPVcsdGhp'@; put 'cy5fY2hhbmdlRGV0ZWN0b3JSZWY9cGUsdGhpcy5fc2VsZkhhbmRsZT13ZSx0aGlzLl9wYXJlbnREcmFnPUVlLHRoaXMuX2Rlc3Ryb3llZD1uZXcgYmUsdGhpcy5zdGFydGVkPW5ldyBFcix0aGlzLnJlbGVhc2VkPW5ldyBFcix0aGlzLmVuZGVkPW5ldyBFcix0aGlzLmVudGVyZWQ9bmV3IEVy'@; put 'LHRoaXMuZXhpdGVkPW5ldyBFcix0aGlzLmRyb3BwZWQ9bmV3IEVyLHRoaXMubW92ZWQ9bmV3IEtlKFplPT57Y29uc3QgaXQ9dGhpcy5fZHJhZ1JlZi5tb3ZlZC5waXBlKE1lKGV0PT4oe3NvdXJjZTp0aGlzLHBvaW50ZXJQb3NpdGlvbjpldC5wb2ludGVyUG9zaXRpb24sZXZlbnQ6ZXQuZXZl'@; put 'bnQsZGVsdGE6ZXQuZGVsdGEsZGlzdGFuY2U6ZXQuZGlzdGFuY2V9KSkpLnN1YnNjcmliZShaZSk7cmV0dXJuKCk9PntpdC51bnN1YnNjcmliZSgpfX0pLHRoaXMuX2RyYWdSZWY9aWUuY3JlYXRlRHJhZyhhLHtkcmFnU3RhcnRUaHJlc2hvbGQ6VCYmbnVsbCE9VC5kcmFnU3RhcnRUaHJlc2hv'@; put 'bGQ/VC5kcmFnU3RhcnRUaHJlc2hvbGQ6NSxwb2ludGVyRGlyZWN0aW9uQ2hhbmdlVGhyZXNob2xkOlQmJm51bGwhPVQucG9pbnRlckRpcmVjdGlvbkNoYW5nZVRocmVzaG9sZD9ULnBvaW50ZXJEaXJlY3Rpb25DaGFuZ2VUaHJlc2hvbGQ6NSx6SW5kZXg6VD8uekluZGV4fSksdGhpcy5fZHJh'@; put 'Z1JlZi5kYXRhPXRoaXMsYy5fZHJhZ0luc3RhbmNlcy5wdXNoKHRoaXMpLFQmJnRoaXMuX2Fzc2lnbkRlZmF1bHRzKFQpLGQmJih0aGlzLl9kcmFnUmVmLl93aXRoRHJvcENvbnRhaW5lcihkLl9kcm9wTGlzdFJlZiksZC5hZGRJdGVtKHRoaXMpKSx0aGlzLl9zeW5jSW5wdXRzKHRoaXMuX2Ry'@; put 'YWdSZWYpLHRoaXMuX2hhbmRsZUV2ZW50cyh0aGlzLl9kcmFnUmVmKX1nZXRQbGFjZWhvbGRlckVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZHJhZ1JlZi5nZXRQbGFjZWhvbGRlckVsZW1lbnQoKX1nZXRSb290RWxlbWVudCgpe3JldHVybiB0aGlzLl9kcmFnUmVmLmdldFJvb3RFbGVtZW50KCl9'@; put 'cmVzZXQoKXt0aGlzLl9kcmFnUmVmLnJlc2V0KCl9Z2V0RnJlZURyYWdQb3NpdGlvbigpe3JldHVybiB0aGlzLl9kcmFnUmVmLmdldEZyZWVEcmFnUG9zaXRpb24oKX1zZXRGcmVlRHJhZ1Bvc2l0aW9uKGEpe3RoaXMuX2RyYWdSZWYuc2V0RnJlZURyYWdQb3NpdGlvbihhKX1uZ0FmdGVyVmll'@; put 'd0luaXQoKXt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZShpZCgxKSxhaCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl91cGRhdGVSb290RWxlbWVudCgpLHRoaXMuX3NldHVwSGFuZGxlc0xpc3RlbmVy'@; put 'KCksdGhpcy5mcmVlRHJhZ1Bvc2l0aW9uJiZ0aGlzLl9kcmFnUmVmLnNldEZyZWVEcmFnUG9zaXRpb24odGhpcy5mcmVlRHJhZ1Bvc2l0aW9uKX0pfSl9bmdPbkNoYW5nZXMoYSl7Y29uc3QgZD1hLnJvb3RFbGVtZW50U2VsZWN0b3IsaD1hLmZyZWVEcmFnUG9zaXRpb247ZCYmIWQuZmlyc3RD'@; put 'aGFuZ2UmJnRoaXMuX3VwZGF0ZVJvb3RFbGVtZW50KCksaCYmIWguZmlyc3RDaGFuZ2UmJnRoaXMuZnJlZURyYWdQb3NpdGlvbiYmdGhpcy5fZHJhZ1JlZi5zZXRGcmVlRHJhZ1Bvc2l0aW9uKHRoaXMuZnJlZURyYWdQb3NpdGlvbil9bmdPbkRlc3Ryb3koKXt0aGlzLmRyb3BDb250YWluZXIm'@; put 'JnRoaXMuZHJvcENvbnRhaW5lci5yZW1vdmVJdGVtKHRoaXMpO2NvbnN0IGE9Yy5fZHJhZ0luc3RhbmNlcy5pbmRleE9mKHRoaXMpO2E+LTEmJmMuX2RyYWdJbnN0YW5jZXMuc3BsaWNlKGEsMSksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5fZGVzdHJveWVkLm5l'@; put 'eHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKSx0aGlzLl9kcmFnUmVmLmRpc3Bvc2UoKX0pfV91cGRhdGVSb290RWxlbWVudCgpe2NvbnN0IGE9dGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7bGV0IGQ9YTt0aGlzLnJvb3RFbGVtZW50U2VsZWN0b3ImJihkPXZvaWQgMCE9PWEuY2xv'@; put 'c2VzdD9hLmNsb3Nlc3QodGhpcy5yb290RWxlbWVudFNlbGVjdG9yKTphLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QodGhpcy5yb290RWxlbWVudFNlbGVjdG9yKSksdGhpcy5fZHJhZ1JlZi53aXRoUm9vdEVsZW1lbnQoZHx8YSl9X2dldEJvdW5kYXJ5RWxlbWVudCgpe2NvbnN0IGE9dGhpcy5i'@; put 'b3VuZGFyeUVsZW1lbnQ7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP3RoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoYSk6UDAoYSk6bnVsbH1fc3luY0lucHV0cyhhKXthLmJlZm9yZVN0YXJ0ZWQuc3Vic2NyaWJlKCgpPT57aWYoIWEuaXNEcmFnZ2luZygpKXtjb25zdCBk'@; put 'PXRoaXMuX2RpcixoPXRoaXMuZHJhZ1N0YXJ0RGVsYXksZj10aGlzLl9wbGFjZWhvbGRlclRlbXBsYXRlP3t0ZW1wbGF0ZTp0aGlzLl9wbGFjZWhvbGRlclRlbXBsYXRlLnRlbXBsYXRlUmVmLGNvbnRleHQ6dGhpcy5fcGxhY2Vob2xkZXJUZW1wbGF0ZS5kYXRhLHZpZXdDb250YWluZXI6dGhp'@; put 'cy5fdmlld0NvbnRhaW5lclJlZn06bnVsbCxfPXRoaXMuX3ByZXZpZXdUZW1wbGF0ZT97dGVtcGxhdGU6dGhpcy5fcHJldmlld1RlbXBsYXRlLnRlbXBsYXRlUmVmLGNvbnRleHQ6dGhpcy5fcHJldmlld1RlbXBsYXRlLmRhdGEsbWF0Y2hTaXplOnRoaXMuX3ByZXZpZXdUZW1wbGF0ZS5tYXRj'@; put 'aFNpemUsdmlld0NvbnRhaW5lcjp0aGlzLl92aWV3Q29udGFpbmVyUmVmfTpudWxsO2EuZGlzYWJsZWQ9dGhpcy5kaXNhYmxlZCxhLmxvY2tBeGlzPXRoaXMubG9ja0F4aXMsYS5kcmFnU3RhcnREZWxheT0ib2JqZWN0Ij09dHlwZW9mIGgmJmg/aDpCb2UoaCksYS5jb25zdHJhaW5Qb3NpdGlv'@; put 'bj10aGlzLmNvbnN0cmFpblBvc2l0aW9uLGEucHJldmlld0NsYXNzPXRoaXMucHJldmlld0NsYXNzLGEud2l0aEJvdW5kYXJ5RWxlbWVudCh0aGlzLl9nZXRCb3VuZGFyeUVsZW1lbnQoKSkud2l0aFBsYWNlaG9sZGVyVGVtcGxhdGUoZikud2l0aFByZXZpZXdUZW1wbGF0ZShfKS53aXRoUHJl'@; put 'dmlld0NvbnRhaW5lcih0aGlzLnByZXZpZXdDb250YWluZXJ8fCJnbG9iYWwiKSxkJiZhLndpdGhEaXJlY3Rpb24oZC52YWx1ZSl9fSksYS5iZWZvcmVTdGFydGVkLnBpcGUoaWQoMSkpLnN1YnNjcmliZSgoKT0+e2lmKHRoaXMuX3BhcmVudERyYWcpcmV0dXJuIHZvaWQgYS53aXRoUGFyZW50'@; put 'KHRoaXMuX3BhcmVudERyYWcuX2RyYWdSZWYpO2xldCBkPXRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7Zm9yKDtkOyl7aWYoZC5jbGFzc0xpc3QuY29udGFpbnMoImNkay1kcmFnIikpe2Eud2l0aFBhcmVudChjLl9kcmFnSW5zdGFuY2VzLmZpbmQoaD0+aC5lbGVt'@; put 'ZW50Lm5hdGl2ZUVsZW1lbnQ9PT1kKT8uX2RyYWdSZWZ8fG51bGwpO2JyZWFrfWQ9ZC5wYXJlbnRFbGVtZW50fX0pfV9oYW5kbGVFdmVudHMoYSl7YS5zdGFydGVkLnN1YnNjcmliZShkPT57dGhpcy5zdGFydGVkLmVtaXQoe3NvdXJjZTp0aGlzLGV2ZW50OmQuZXZlbnR9KSx0aGlzLl9jaGFu'@; put 'Z2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pLGEucmVsZWFzZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLnJlbGVhc2VkLmVtaXQoe3NvdXJjZTp0aGlzLGV2ZW50OmQuZXZlbnR9KX0pLGEuZW5kZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLmVuZGVkLmVtaXQoe3NvdXJjZTp0aGlzLGRpc3RhbmNl'@; put 'OmQuZGlzdGFuY2UsZHJvcFBvaW50OmQuZHJvcFBvaW50LGV2ZW50OmQuZXZlbnR9KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pLGEuZW50ZXJlZC5zdWJzY3JpYmUoZD0+e3RoaXMuZW50ZXJlZC5lbWl0KHtjb250YWluZXI6ZC5jb250YWluZXIuZGF0YSxpdGVt'@; put 'OnRoaXMsY3VycmVudEluZGV4OmQuY3VycmVudEluZGV4fSl9KSxhLmV4aXRlZC5zdWJzY3JpYmUoZD0+e3RoaXMuZXhpdGVkLmVtaXQoe2NvbnRhaW5lcjpkLmNvbnRhaW5lci5kYXRhLGl0ZW06dGhpc30pfSksYS5kcm9wcGVkLnN1YnNjcmliZShkPT57dGhpcy5kcm9wcGVkLmVtaXQoe3By'@; put 'ZXZpb3VzSW5kZXg6ZC5wcmV2aW91c0luZGV4LGN1cnJlbnRJbmRleDpkLmN1cnJlbnRJbmRleCxwcmV2aW91c0NvbnRhaW5lcjpkLnByZXZpb3VzQ29udGFpbmVyLmRhdGEsY29udGFpbmVyOmQuY29udGFpbmVyLmRhdGEsaXNQb2ludGVyT3ZlckNvbnRhaW5lcjpkLmlzUG9pbnRlck92ZXJD'@; put 'b250YWluZXIsaXRlbTp0aGlzLGRpc3RhbmNlOmQuZGlzdGFuY2UsZHJvcFBvaW50OmQuZHJvcFBvaW50LGV2ZW50OmQuZXZlbnR9KX0pfV9hc3NpZ25EZWZhdWx0cyhhKXtjb25zdHtsb2NrQXhpczpkLGRyYWdTdGFydERlbGF5OmgsY29uc3RyYWluUG9zaXRpb246ZixwcmV2aWV3Q2xhc3M6'@; put 'Xyxib3VuZGFyeUVsZW1lbnQ6VCxkcmFnZ2luZ0Rpc2FibGVkOlcscm9vdEVsZW1lbnRTZWxlY3RvcjppZSxwcmV2aWV3Q29udGFpbmVyOnBlfT1hO3RoaXMuZGlzYWJsZWQ9Vz8/ITEsdGhpcy5kcmFnU3RhcnREZWxheT1ofHwwLGQmJih0aGlzLmxvY2tBeGlzPWQpLGYmJih0aGlzLmNvbnN0'@; put 'cmFpblBvc2l0aW9uPWYpLF8mJih0aGlzLnByZXZpZXdDbGFzcz1fKSxUJiYodGhpcy5ib3VuZGFyeUVsZW1lbnQ9VCksaWUmJih0aGlzLnJvb3RFbGVtZW50U2VsZWN0b3I9aWUpLHBlJiYodGhpcy5wcmV2aWV3Q29udGFpbmVyPXBlKX1fc2V0dXBIYW5kbGVzTGlzdGVuZXIoKXt0aGlzLl9o'@; put 'YW5kbGVzLmNoYW5nZXMucGlwZShjcCh0aGlzLl9oYW5kbGVzKSxVYyhhPT57Y29uc3QgZD1hLmZpbHRlcihoPT5oLl9wYXJlbnREcmFnPT09dGhpcykubWFwKGg9PmguZWxlbWVudCk7dGhpcy5fc2VsZkhhbmRsZSYmdGhpcy5yb290RWxlbWVudFNlbGVjdG9yJiZkLnB1c2godGhpcy5lbGVt'@; put 'ZW50KSx0aGlzLl9kcmFnUmVmLndpdGhIYW5kbGVzKGQpfSksU2EoYT0+aXMoLi4uYS5tYXAoZD0+ZC5fc3RhdGVDaGFuZ2VzLnBpcGUoY3AoZCkpKSkpLGFoKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZShhPT57Y29uc3QgZD10aGlzLl9kcmFnUmVmLGg9YS5lbGVtZW50Lm5hdGl2ZUVs'@; put 'ZW1lbnQ7YS5kaXNhYmxlZD9kLmRpc2FibGVIYW5kbGUoaCk6ZC5lbmFibGVIYW5kbGUoaCl9KX19cmV0dXJuIGMuX2RyYWdJbnN0YW5jZXM9W10sYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChOaSksdHQobXNlLDEyKSx0dChMcyksdHQoTm8pLHR0KGFzKSx0'@; put 'dChnc2UsOCksdHQoS29lLDgpLHR0KG9VKSx0dChVYSksdHQobFUsMTApLHR0KHNVLDEyKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNka0RyYWciLCIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmKElvKGgseXNlLDUpLElvKGgs'@; put 'YnNlLDUpLElvKGgsbFUsNSkpLDImYSl7bGV0IGY7YWkoZj1saSgpKSYmKGQuX3ByZXZpZXdUZW1wbGF0ZT1mLmZpcnN0KSxhaShmPWxpKCkpJiYoZC5fcGxhY2Vob2xkZXJUZW1wbGF0ZT1mLmZpcnN0KSxhaShmPWxpKCkpJiYoZC5faGFuZGxlcz1mKX19LGhvc3RBdHRyczpbMSwiY2RrLWRy'@; put 'YWciXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmZHIoImNkay1kcmFnLWRpc2FibGVkIixkLmRpc2FibGVkKSgiY2RrLWRyYWctZHJhZ2dpbmciLGQuX2RyYWdSZWYuaXNEcmFnZ2luZygpKX0saW5wdXRzOntkYXRhOlsiY2RrRHJhZ0RhdGEiLCJkYXRhIl0s'@; put 'bG9ja0F4aXM6WyJjZGtEcmFnTG9ja0F4aXMiLCJsb2NrQXhpcyJdLHJvb3RFbGVtZW50U2VsZWN0b3I6WyJjZGtEcmFnUm9vdEVsZW1lbnQiLCJyb290RWxlbWVudFNlbGVjdG9yIl0sYm91bmRhcnlFbGVtZW50OlsiY2RrRHJhZ0JvdW5kYXJ5IiwiYm91bmRhcnlFbGVtZW50Il0sZHJhZ1N0'@; put 'YXJ0RGVsYXk6WyJjZGtEcmFnU3RhcnREZWxheSIsImRyYWdTdGFydERlbGF5Il0sZnJlZURyYWdQb3NpdGlvbjpbImNka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uIiwiZnJlZURyYWdQb3NpdGlvbiJdLGRpc2FibGVkOlsiY2RrRHJhZ0Rpc2FibGVkIiwiZGlzYWJsZWQiXSxjb25zdHJhaW5Qb3Np'@; put 'dGlvbjpbImNka0RyYWdDb25zdHJhaW5Qb3NpdGlvbiIsImNvbnN0cmFpblBvc2l0aW9uIl0scHJldmlld0NsYXNzOlsiY2RrRHJhZ1ByZXZpZXdDbGFzcyIsInByZXZpZXdDbGFzcyJdLHByZXZpZXdDb250YWluZXI6WyJjZGtEcmFnUHJldmlld0NvbnRhaW5lciIsInByZXZpZXdDb250YWlu'@; put 'ZXIiXX0sb3V0cHV0czp7c3RhcnRlZDoiY2RrRHJhZ1N0YXJ0ZWQiLHJlbGVhc2VkOiJjZGtEcmFnUmVsZWFzZWQiLGVuZGVkOiJjZGtEcmFnRW5kZWQiLGVudGVyZWQ6ImNka0RyYWdFbnRlcmVkIixleGl0ZWQ6ImNka0RyYWdFeGl0ZWQiLGRyb3BwZWQ6ImNka0RyYWdEcm9wcGVkIixtb3Zl'@; put 'ZDoiY2RrRHJhZ01vdmVkIn0sZXhwb3J0QXM6WyJjZGtEcmFnIl0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbdGkoW3twcm92aWRlOnNVLHVzZUV4aXN0aW5nOmN9XSksdmFdfSksY30pKCksQ3NlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4g'@; put 'bmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe3Byb3ZpZGVyczpbb1VdLGltcG9ydHM6W1pWZV19KSxjfSkoKTtjb25zdCBVZz12b2lkIDAsRUJlPVsiZW4tR0IiLFtbImEiLCJwIl0sWyJhbSIsInBtIl0sVWddLFtbImFtIiwicG0iXSxVZyxVZ10s'@; put 'W1siUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLFsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sWyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLFsiU3UiLCJNbyIsIlR1Iiwi'@; put 'V2UiLCJUaCIsIkZyIiwiU2EiXV0sVWcsW1siSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sWyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXB0IiwiT2N0IiwiTm92IiwiRGVjIl0sWyJKYW51YXJ5IiwiRmVi'@; put 'cnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdXSxVZyxbWyJCIiwiQSJdLFsiQkMiLCJBRCJdLFsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl1dLDEsWzYsMF0s'@; put 'WyJkZC9NTS95IiwiZCBNTU0geSIsImQgTU1NTSB5IiwiRUVFRSwgZCBNTU1NIHkiXSxbIkhIOm1tIiwiSEg6bW06c3MiLCJISDptbTpzcyB6IiwiSEg6bW06c3Mgenp6eiJdLFsiezF9LCB7MH0iLFVnLCJ7MX0gJ2F0JyB7MH0iLFVnXSxbIi4iLCIsIiwiOyIsIiUiLCIrIiwiLSIsIkUiLCJc'@; put 'eGQ3IiwiXHUyMDMwIiwiXHUyMjFlIiwiTmFOIiwiOiJdLFsiIywjIzAuIyMjIiwiIywjIzAlIiwiXHhhNCMsIyMwLjAwIiwiI0UwIl0sIkdCUCIsIlx4YTMiLCJCcml0aXNoIFBvdW5kIix7SlBZOlsiSlBceGE1IiwiXHhhNSJdLFVTRDpbIlVTJCIsIiQiXX0sImx0ciIsZnVuY3Rpb24geEJl'@; put 'KGMpe2NvbnN0IGE9TWF0aC5mbG9vcihNYXRoLmFicyhjKSksZD1jLnRvU3RyaW5nKCkucmVwbGFjZSgvXlteLl0qXC4/LywiIikubGVuZ3RoO3JldHVybiAxPT09YSYmMD09PWQ/MTo1fV0sa0JlPVsiaW5wdXQiXTtmdW5jdGlvbiBBQmUoYyxsKXtpZigxJmMmJihtZSgwLCJvcHRpb24iLDcp'@; put 'LE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLGdyKCIgIixhLmxvYWRpbmdNb3JlPyJMb2FkaW5nLi4uIjoiTE9BRCBNT1JFIiwiICIpfX1jb25zdCBUQmU9ZnVuY3Rpb24oYyxsKXtyZXR1cm57IndpZHRoLnB4IjpjLCJtYXgtaGVpZ2h0LnB4IjpsfX0sREJlPVsiKiJdO2xl'@; put 'dCBTc2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmNkcj1hLHRoaXMuaW5wdXRJZD0iIix0aGlzLnBsYWNlaG9sZGVyPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuYXV0b2NvbXBsZXRlPSJvZmYiLHRoaXMudGFiaW5k'@; put 'ZXg9IiIsdGhpcy5lbWl0T25seVNlbGVjdGVkPSExLHRoaXMuZW5hYmxlTG9hZE1vcmU9ITEsdGhpcy5vbklucHV0S2V5ZG93bj1uZXcgRXIsdGhpcy5vbklucHV0Q2hhbmdlPW5ldyBFcix0aGlzLnZhbHVlQ2hhbmdlPW5ldyBFcix0aGlzLm9uTG9hZGluZ01vcmU9bmV3IEVyLHRoaXMuZGF0'@; put 'YWxpc3RPcGVuPSExLHRoaXMuYWZ0ZXJPcGVuTG9ja0RlbGF5PTE1MCx0aGlzLmFmdGVyT3BlbkxvY2s9ITEsdGhpcy5pbnB1dEZvY3VzZWQ9ITEsdGhpcy5pbnB1dENsaWVudFJlY3Q9e30sdGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMSx0aGlzLmxvYWRpbmdNb3JlPSExfW5nT25Jbml0'@; put 'KCl7fW5nQWZ0ZXJWaWV3SW5pdCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmNhbGN1bGF0ZUlucHV0UG9zaXRpb24oKX0sNTAwKX1vbklucHV0RmlyZWQoYSxkLGgpe3RoaXMub3BlbkRhdGFsaXN0KCJjbGljayIhPT1oKSx0aGlzLnVuc2VsZWN0QWxsT3B0aW9ucygpLHRoaXMuZmlsdGVyT3B0'@; put 'aW9uc0xpc3QoKSwoIXRoaXMuZW1pdE9ubHlTZWxlY3RlZHx8ZCkmJih0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh7dGFyZ2V0Ont2YWx1ZTp0aGlzLnZhbHVlfX0pLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKSl9b25JbnB1dENsaWNrKGEpe3RoaXMub3BlbkRhdGFsaXN0KCl9'@; put 'b3BlbkRhdGFsaXN0KGE9ITApe3RoaXMuZGF0YWxpc3RPcGVuPSEwLGEmJih0aGlzLmFmdGVyT3BlbkxvY2s9ITAsdGhpcy5hZnRlck9wZW5Mb2NrRGVsYXlUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmFmdGVyT3BlbkxvY2s9ITF9LHRoaXMuYWZ0ZXJPcGVuTG9ja0RlbGF5KSl9Y2xv'@; put 'c2VEYXRhbGlzdCgpe2NsZWFyVGltZW91dCh0aGlzLmFmdGVyT3BlbkxvY2tEZWxheVRpbWVvdXQpLHRoaXMuYWZ0ZXJPcGVuTG9jaz0hMSx0aGlzLmRhdGFsaXN0T3Blbj0hMX1yZXNldERhdGFsaXN0RmlsdGVyKCl7dGhpcy5maWx0ZXJPcHRpb25zTGlzdCghMCl9b25JbnB1dEZvY3VzaW4o'@; put 'YSl7dGhpcy5pbnB1dEZvY3VzZWQ9ITB9b25JbnB1dEZvY3Vzb3V0KGEpe3RoaXMuaW5wdXRGb2N1c2VkPSExLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9b25JbnB1dE1vdXNlZW50ZXIoYSl7dGhpcy5pbnB1dENsaWVudFJlY3Qud2lkdGh8fHRoaXMuY2FsY3VsYXRlSW5wdXRQb3NpdGlv'@; put 'bigpfWZpbHRlck9wdGlvbnNMaXN0KGEpe2NvbnN0IGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb25gKTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKyl7Y29uc3QgZj1kW2hdO2lmKDA9PT10aGlzLnZhbHVlLmxlbmd0aCl7Zi5j'@; put 'bGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtjb250aW51ZX1pZihhKXtmLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2NvbnRpbnVlfWNvbnN0IF89Zi5pbm5lclRleHR8fCIiLFQ9Zi52YWx1ZXx8IiI7KF8rVCk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy52YWx1ZS50b0xvd2Vy'@; put 'Q2FzZSgpKT9mLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmYuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9fXNldFRvQ2xvc2VEYXRhbGlzdCgpe3RoaXMuZGF0YWxpc3RDbG9zZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMucHJldmVudERhdGFsaXN0Q2xvc2V8fHRoaXMuYWZ0ZXJP'@; put 'cGVuTG9ja3x8KHRoaXMuY2xvc2VEYXRhbGlzdCgpLHRoaXMudW5zZWxlY3RBbGxPcHRpb25zKCksdGhpcy5yZXNldERhdGFsaXN0RmlsdGVyKCkpfSwxMDApfWNhbGN1bGF0ZUlucHV0UG9zaXRpb24oKXtjb25zdCBkPXRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5k'@; put 'aW5nQ2xpZW50UmVjdCgpO2Qud2lkdGg+MCYmZC5oZWlnaHQ+MCYmKHRoaXMuaW5wdXRDbGllbnRSZWN0PXt3aWR0aDpkLndpZHRoLGJvdHRvbTpkLmJvdHRvbX0pLHRoaXMuaW5uZXJIZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0fW9uRGF0YUxpc3RNb3VzZUVudGVyKGEpe3RoaXMucHJldmVu'@; put 'dERhdGFsaXN0Q2xvc2U9ITB9b25EYXRhTGlzdE1vdXNlTGVhdmUoYSl7dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMSx0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9b25EYXRhTGlzdFNjcm9sbChhKXt0aGlzLnNldFRvQ2xvc2VEYXRhbGlzdCgpfW9uRGF0YUxp'@; put 'c3RDbGljayhhKXtjb25zdCBkPWEudGFyZ2V0OyJsb2FkLW1vcmUiIT09ZC5kYXRhc2V0Py50eXBlPyJPUFRJT04iIT09ZC50YWdOYW1lfHx0aGlzLnNldE9wdGlvblZhbHVlKGQuaW5uZXJUZXh0LGQudmFsdWUpOnRoaXMubG9hZE1vcmUoKX1sb2FkTW9yZSgpe3RoaXMub25Mb2FkaW5nTW9y'@; put 'ZS5lbWl0KHtsb2FkTW9yZUZpbmlzaGVkOmE9Pnt0aGlzLmxvYWRpbmdNb3JlPSExLHRoaXMuZW5hYmxlTG9hZE1vcmU9YX19KSx0aGlzLmxvYWRpbmdNb3JlPSEwfXNldE9wdGlvblZhbHVlKGEsZCl7KGF8fGQpJiYoZHx8KGQ9YSkpLGQmJih0aGlzLnByZXZlbnREYXRhbGlzdENsb3NlPSEx'@; put 'LHRoaXMudmFsdWU9ZCx0aGlzLm9uSW5wdXRGaXJlZChudWxsLCEwLCJjbGljayIpLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCkpfW9uTWFpbktleWRvd24oYSl7c3dpdGNoKGEua2V5KXtjYXNlIkFycm93VXAiOnRoaXMuZ2V0T3B0aW9uc01vdmVGb2N1cygidXAiKTticmVhaztjYXNlIkFy'@; put 'cm93RG93biI6dGhpcy5nZXRPcHRpb25zTW92ZUZvY3VzKCJkb3duIik7YnJlYWs7Y2FzZSJFbnRlciI6dGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCl9fW9uSW5wdXRLZXl1cChhKXtyZXR1cm4hdGhpcy5kYXRhbGlzdE9wZW58fCgiRXNjYXBlIj09PWEua2V5PyhhLnN0b3BQcm9wYWdhdGlv'@; put 'bigpLGEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zZXRUb0Nsb3NlRGF0YWxpc3QoKSwhMSk6dm9pZCAwKX11bnNlbGVjdEFsbE9wdGlvbnMoKXtjb25zdCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYCNkYXRhbGlzdF8ke3RoaXMuaW5wdXRJZH0gb3B0aW9uYCk7Zm9y'@; put 'KGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspYVtkXS5jbGFzc0xpc3QucmVtb3ZlKCJmb2N1c2VkIil9c2VsZWN0Rm9jdXNlZE9wdGlvbigpe2NvbnN0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb24uZm9jdXNlZGApO2EmJnRoaXMub25E'@; put 'YXRhTGlzdENsaWNrKHt0YXJnZXQ6YX0pLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9Z2V0T3B0aW9uc01vdmVGb2N1cyhhKXtjb25zdCBkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYCNkYXRhbGlzdF8ke3RoaXMuaW5wdXRJZH0gb3B0aW9uOm5vdCguaGlkZGVuKWApO2xldCBoPTA7'@; put 'Zm9yKGxldCBmPTA7ZjxkLmxlbmd0aDtmKyspe2NvbnN0IF89ZFtmXTtpZihfLmNsYXNzTGlzdC5jb250YWlucygiZm9jdXNlZCIpKXtoPSJkb3duIj09PWE/ZisxOmYtMSxoPDAmJihoPWQubGVuZ3RoLTEpLGg+ZC5sZW5ndGgtMSYmKGg9MCksXy5jbGFzc0xpc3QucmVtb3ZlKCJmb2N1c2Vk'@; put 'Iik7YnJlYWt9fWRbaF0uY2xhc3NMaXN0LmFkZCgiZm9jdXNlZCIpfW9uUmVzaXplKGEpe3RoaXMuY2FsY3VsYXRlSW5wdXRQb3NpdGlvbigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChVYSkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNl'@; put 'bGVjdG9yczpbWyJhcHAtYXV0b2NvbXBsZXRlIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmUm8oa0JlLDUpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQuaW5wdXRFbGVtZW50PWguZmlyc3QpfX0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4dCgicmVzaXpl'@; put 'IixmdW5jdGlvbihmKXtyZXR1cm4gZC5vblJlc2l6ZShmKX0sMCxtNil9LGlucHV0czp7aW5wdXRJZDoiaW5wdXRJZCIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIix2YWx1ZToidmFsdWUiLGRpc2FibGVkOiJkaXNhYmxlZCIsdHlwZToidHlwZSIsYXV0b2NvbXBsZXRlOiJhdXRvY29tcGxl'@; put 'dGUiLHRhYmluZGV4OiJ0YWJpbmRleCIsZW1pdE9ubHlTZWxlY3RlZDoiZW1pdE9ubHlTZWxlY3RlZCIsZW5hYmxlTG9hZE1vcmU6ImVuYWJsZUxvYWRNb3JlIn0sb3V0cHV0czp7b25JbnB1dEtleWRvd246Im9uSW5wdXRLZXlkb3duIixvbklucHV0Q2hhbmdlOiJvbklucHV0Q2hhbmdlIix2'@; put 'YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UiLG9uTG9hZGluZ01vcmU6Im9uTG9hZGluZ01vcmUifSxuZ0NvbnRlbnRTZWxlY3RvcnM6REJlLGRlY2xzOjksdmFyczoxNSxjb25zdHM6W1sxLCJhdXRvY29tcGxldGUtd3JhcHBlciIsMywia2V5ZG93biJdLFsidHlwZSIsInRleHQiLCJhdXRvY29t'@; put 'cGxldGUiLCJvZmYiLCJhdXRvZm9jdXMiLCIiLCJ0YWJpbmRleCIsIjAiLDEsImlucHV0LXZhbCIsMywiaWQiLCJwbGFjZWhvbGRlciIsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiLCJjbGljayIsIm1vdXNlZW50ZXIiLCJmb2N1cyIsImZvY3Vzb3V0Iiwia2V5dXAiXSxb'@; put 'ImlucHV0IiwiIl0sWzEsIm92ZXJsYXkiXSxbMSwiZGF0YWxpc3QiLDMsIm5nU3R5bGUiLCJpZCIsImNsaWNrIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJzY3JvbGwiXSxbIm9wdGlvbnMiLCIiXSxbImRhdGEtdHlwZSIsImxvYWQtbW9yZSIsImNsYXNzIiwibG9hZC1tb3JlIiw0LCJu'@; put 'Z0lmIl0sWyJkYXRhLXR5cGUiLCJsb2FkLW1vcmUiLDEsImxvYWQtbW9yZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmKEFpKCksbWUoMCwiZGl2IiwwKSx4dCgia2V5ZG93biIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25NYWluS2V5ZG93bihmKX0pLG1lKDEsImlucHV0Iiwx'@; put 'LDIpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC52YWx1ZT1mfSkoImNsaWNrIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbklucHV0Q2xpY2soZil9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25JbnB1dEZpcmVkKGYpfSkoIm1vdXNlZW50'@; put 'ZXIiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uSW5wdXRNb3VzZWVudGVyKGYpfSkoImZvY3VzIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbklucHV0Rm9jdXNpbihmKX0pKCJmb2N1c291dCIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25JbnB1dEZvY3Vzb3V0KGYpfSkoImtleXVwIixmdW5jdGlv'@; put 'bihmKXtyZXR1cm4gZC5vbklucHV0S2V5dXAoZil9KSx5ZSgpLHF0KDMsImRpdiIsMyksbWUoNCwiZGl2Iiw0KSx4dCgiY2xpY2siLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uRGF0YUxpc3RDbGljayhmKX0pKCJtb3VzZWVudGVyIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkRhdGFMaXN0TW91'@; put 'c2VFbnRlcihmKX0pKCJtb3VzZWxlYXZlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkRhdGFMaXN0TW91c2VMZWF2ZShmKX0pKCJzY3JvbGwiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uRGF0YUxpc3RTY3JvbGwoZil9KSxtZSg1LCJkaXYiLG51bGwsNSksa3IoNykseWUoKSxKZSg4LEFCZSwy'@; put 'LDEsIm9wdGlvbiIsNikseWUoKSgpKSwyJmEpe2NvbnN0IGg9JGkoNik7Q2UoMSksUmUoImlkIixkLmlucHV0SWQpKCJwbGFjZWhvbGRlciIsZC5wbGFjZWhvbGRlcikoIm5nTW9kZWwiLGQudmFsdWUpKCJkaXNhYmxlZCIsZC5kaXNhYmxlZCksVHIoImxpc3QiLCJkYXRhbGlzdF8iK2QuaW5w'@; put 'dXRJZCksQ2UoMiksZHIoImhpZGRlbiIsIWQuZGF0YWxpc3RPcGVuKSxDZSgxKSxkcigiaGlkZGVuIiwhZC5kYXRhbGlzdE9wZW4pLFJlKCJuZ1N0eWxlIixRMigxMixUQmUsZC5pbnB1dENsaWVudFJlY3Qud2lkdGgsZC5pbm5lckhlaWdodCYmZC5pbnB1dENsaWVudFJlY3QuYm90dG9tP2Qu'@; put 'aW5uZXJIZWlnaHQtZC5pbnB1dENsaWVudFJlY3QuYm90dG9tOnZvaWQgMCkpKCJpZCIsImRhdGFsaXN0XyIrZC5pbnB1dElkKSxDZSg0KSxSZSgibmdJZiIsaC5jaGlsZHJlbi5sZW5ndGg+MCYmZC5lbmFibGVMb2FkTW9yZSl9fSxkZXBlbmRlbmNpZXM6W1ppLHJHLGwxLGMxLFdhLEJzLE9z'@; put 'XSxzdHlsZXM6WyIuaW5wdXQtdmFsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MHB4O2JhY2tncm91bmQ6I2ZiZjhmODtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOTk5OTk5fWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX1pbnB1dFtfbmdjb250'@; put 'ZW50LSVDT01QJV06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcnttYXJnaW4tdG9wOi01cHh9LmF1dG9jb21wbGV0ZS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vdmVybGF5W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6'@; put 'MTUwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDtiYWNrZ3JvdW5kOndoaXRlO2JveC1zaGFkb3c6MCAzcHggMTBweCAtMXB4ICMwMDAwMDAyYjtvdmVyZmxvdzphdXRvO3otaW5k'@; put 'ZXg6MjAwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgb3B0aW9ue3BhZGRpbmc6NXB4IDEwcHg7Y3Vyc29yOnBvaW50ZXJ9LmF1dG9jb21wbGV0ZS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAg'@; put 'IC5kYXRhbGlzdFtfbmdjb250ZW50LSVDT01QJV0gICAgIG9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfS5hdXRvY29tcGxldGUtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAuZGF0YWxpc3RbX25nY29udGVudC0lQ09NUCVdICAgICBvcHRpb24u'@; put 'Zm9jdXNlZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfS5hdXRvY29tcGxldGUtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubG9hZC1tb3JlW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2fSJd'@; put 'fSksY30pKCksSUJlPSgoKT0+e2NsYXNzIGN7dHJhbnNmb3JtKGEsZCl7aWYoInN0cmluZyI9PXR5cGVvZiBhJiZhLmxlbmd0aDwxKXJldHVybiBhO3N3aXRjaChkKXtjYXNlImRhdGUiOnJldHVybiBLbyhhLCJERE1NTVlZWVk6aGg6bW06c3MiKS5mb3JtYXQoIkREL01NL1lZWVkiKTtjYXNl'@; put 'InRpbWUiOntpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKCJFcnJvciBwYXJzaW5nIHRpbWUuIFZhbHVlIGlzIG5vdCBzdHJpbmcuIik7Y29uc3QgaD1wYXJzZUludChhLnNwbGl0KCI6IilbMF0pLGY9cGFyc2VJbnQoYS5zcGxpdCgiOiIpWzFdKSxfPXBhcnNlSW50KGEu'@; put 'c3BsaXQoIjoiKVsyXSk7cmV0dXJuYCR7aDwxMD8iMCIraDpofToke2Y8MTA/IjAiK2Y6Zn06JHtfPDEwPyIwIitfOl99YH19cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhP2E6YS50b1N0cmluZygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5c'@; put 'dTAyNzVwaXBlPU5hKHtuYW1lOiJkYXRlVGltZUZvcm1hdHRlciIsdHlwZTpjLHB1cmU6ITB9KSxjfSkoKTtjb25zdCBMQmU9WyJpbnB1dCJdO2Z1bmN0aW9uIFJCZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLE5lKDEsIiAvICIpLG1lKDIsInNwYW4iLDQpLHh0KCJjbGljayIs'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMikub25DaGFuZ2VMYWJlbCgic2Vjb25kIikpfSksTmUoMykseWUoKSx6cigpfWlmKDImYyl7Y29uc3QgYT1WZSgyKTtDZSgyKSxkcigidmFsdWUtdHlwZS1zZWxlY3RlZCIsInNlY29uZCI9PT1hLmxhYmVsU2VsZWN0ZWQpLENlKDEpLG9y'@; put 'KGEuc2Vjb25kTGFiZWwpfX1mdW5jdGlvbiBPQmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJsYWJlbCIsMykoMSwic3BhbiIsNCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLm9uQ2hhbmdlTGFiZWwoImZpcnN0IikpfSksTmUoMikseWUoKSxK'@; put 'ZSgzLFJCZSw0LDMsIm5nLWNvbnRhaW5lciIsNSkseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoKTtkcigic2Vjb25kTGFiZWxBY3RpdmUiLGEuc2Vjb25kTGFiZWwmJmEuc2Vjb25kTGFiZWwubGVuZ3RoPjApLENlKDEpLGRyKCJ2YWx1ZS10eXBlLXNlbGVjdGVkIiwiZmlyc3QiPT09YS5sYWJl'@; put 'bFNlbGVjdGVkKSxDZSgxKSxvcihhLmxhYmVsKSxDZSgxKSxSZSgibmdJZiIsYS5zZWNvbmRMYWJlbCl9fWZ1bmN0aW9uIFBCZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsImNsci1kYXRlLWNvbnRhaW5lciIpKDIsImlucHV0Iiw2KSx4dCgiY2xyRGF0ZUNoYW5nZSIs'@; put 'ZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkub25EYXRlSW5wdXRGaXJlZChoKSl9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuaW5wdXRGb2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5pbnB1dEZv'@; put 'Y3VzZWQ9ITEpfSkoImZvY3VzaW4iLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLm9uRm9jdXNpbklucHV0KGgpKX0pKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkub25JbnB1dE1vdXNlT3ZlcigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gQnQoYSksanQoVmUoKS5vbklucHV0TW91c2VPdXQoKSl9KSxiYSgzLCJkYXRlVGltZUZvcm1hdHRlciIpLHllKCkoKSx6cigpfWlmKDImYyl7Y29uc3QgYT1WZSgpO0NlKDIpLFJlKCJpZCIsYS5pbnB1dElkKSgicGxhY2Vob2xkZXIiLE01KDMsNSxhLnRlbXAsImRhdGUiKSkoImNs'@; put 'ckRhdGUiLGEudmFsdWUpKCJkaXNhYmxlZCIsYS5kaXNhYmxlZCksVHIoImxpc3QiLCJkYXRhbGlzdF8iK2EuaW5wdXRJZCl9fWZ1bmN0aW9uIEZCZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsImlucHV0Iiw3KSx4dCgiaW5wdXQiLGZ1bmN0aW9uKGgpe3JldHVybiBC'@; put 'dChhKSxqdChWZSgpLm9uSW5wdXRGaXJlZChoKSl9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuaW5wdXRGb2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5pbnB1dEZvY3VzZWQ9ITEpfSkoImZvY3VzaW4iLGZ1'@; put 'bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLm9uRm9jdXNpbklucHV0KGgpKX0pKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkub25JbnB1dE1vdXNlT3ZlcigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5vbklu'@; put 'cHV0TW91c2VPdXQoKSl9KSx5ZSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksUmUoInZhbHVlIixhLnZhbHVlKSgiaWQiLGEuaW5wdXRJZCkoImRpc2FibGVkIixhLmRpc2FibGVkKSxUcigibGlzdCIsImRhdGFsaXN0XyIrYS5pbnB1dElkKX19ZnVuY3Rpb24gSEJlKGMsbCl7'@; put 'aWYoMSZjKXtjb25zdCBhPVZuKCk7VnIoMCksbWUoMSwiYXBwLWF1dG9jb21wbGV0ZSIsOCw5KSx4dCgib25JbnB1dENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkub25JbnB1dEZpcmVkKGgpKX0pKCJvbkxvYWRpbmdNb3JlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQo'@; put 'YSksanQoVmUoKS5hdXRvY29tcGxldGVMb2FkaW5nTW9yZShoKSl9KSxrcigzKSx5ZSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksUmUoImlucHV0SWQiLGEuaW5wdXRJZCkoInZhbHVlIiwobnVsbD09YS52YWx1ZT9udWxsOmEudmFsdWUudG9TdHJpbmcoKSl8fCIiKSgiZW5h'@; put 'YmxlTG9hZE1vcmUiLGEuZW5hYmxlTG9hZE1vcmUpKCJlbWl0T25seVNlbGVjdGVkIixhLmVtaXRPbmx5U2VsZWN0ZWQpKCJkaXNhYmxlZCIsYS5kaXNhYmxlZCl9fWNvbnN0IE5CZT1bIioiXTtsZXQgTXNlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmlucHV0SWQ9IiIsdGhp'@; put 'cy52YWx1ZT0iIix0aGlzLmRpc2FibGVkPSExLHRoaXMudHlwZT0idGV4dCIsdGhpcy5kaXNhYmxlU29mdHNlbGVjdD0hMSx0aGlzLmVtaXRPbmx5U2VsZWN0ZWQ9ITEsdGhpcy5lbmFibGVMb2FkTW9yZT0hMSx0aGlzLnZhbHVlQ2hhbmdlPW5ldyBFcix0aGlzLm9uSW5wdXRFdmVudD1uZXcg'@; put 'RXIsdGhpcy5mb2N1c2luSW5wdXQ9bmV3IEVyLHRoaXMub25BdXRvY29tcGxldGVMb2FkaW5nTW9yZT1uZXcgRXIsdGhpcy5zZWxlY3RlZExhYmVsQ2hhbmdlPW5ldyBFcix0aGlzLnRlbXA9IiIsdGhpcy5pbnB1dEZvY3VzZWQ9ITEsdGhpcy5sYWJlbFNlbGVjdGVkPSJmaXJzdCJ9bmdPbkNo'@; put 'YW5nZXMoYSl7YS52YWx1ZSYmYS52YWx1ZS5jdXJyZW50VmFsdWUhPT1hLnZhbHVlLnByZXZpb3VzVmFsdWUmJnRoaXMudmFsdWVDaGFuZ2UuZW1pdChhLnZhbHVlLmN1cnJlbnRWYWx1ZSl9bmdPbkluaXQoKXt9YXV0b2NvbXBsZXRlTG9hZGluZ01vcmUoYSl7dGhpcy5vbkF1dG9jb21wbGV0'@; put 'ZUxvYWRpbmdNb3JlLmVtaXQoYSl9b25JbnB1dEZpcmVkKGEpe2NvbnN0IGQ9YS50YXJnZXQudmFsdWU7dGhpcy50ZW1wPWQsdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGQpLHRoaXMub25JbnB1dEV2ZW50LmVtaXQoYSl9b25EYXRlSW5wdXRGaXJlZChhKXt0aGlzLnRlbXA9YSx0aGlzLnZhbHVl'@; put 'Q2hhbmdlLmVtaXQoYSksdGhpcy5vbklucHV0RXZlbnQuZW1pdChhKX1vbklucHV0TW91c2VPdXQoKXt0aGlzLmRpc2FibGVTb2Z0c2VsZWN0fHwodGhpcy52YWx1ZT10aGlzLnRlbXAsdGhpcy50ZW1wPSIiKX1vbklucHV0TW91c2VPdmVyKCl7dGhpcy5kaXNhYmxlU29mdHNlbGVjdHx8KHRo'@; put 'aXMudGVtcD10aGlzLnZhbHVlP3RoaXMudmFsdWU6IiIsdGhpcy52YWx1ZT0iIil9b25Gb2N1c2luSW5wdXQoYSl7dGhpcy5mb2N1c2luSW5wdXQuZW1pdChhKX1vbkNoYW5nZUxhYmVsKGEpe3RoaXMubGFiZWxTZWxlY3RlZD1hLHRoaXMuc2VsZWN0ZWRMYWJlbENoYW5nZS5lbWl0KCJmaXJz'@; put 'dCI9PT1hP3RoaXMubGFiZWw6dGhpcy5zZWNvbmRMYWJlbCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtc29mdC1zZWxlY3QiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7'@; put 'aWYoMSZhJiZSbyhMQmUsNSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5pbnB1dEVsZW1lbnQ9aC5maXJzdCl9fSxpbnB1dHM6e2lucHV0SWQ6ImlucHV0SWQiLGxhYmVsOiJsYWJlbCIsc2Vjb25kTGFiZWw6InNlY29uZExhYmVsIix2YWx1ZToidmFsdWUiLGRpc2FibGVkOiJkaXNhYmxl'@; put 'ZCIsdHlwZToidHlwZSIsZGlzYWJsZVNvZnRzZWxlY3Q6ImRpc2FibGVTb2Z0c2VsZWN0IixlbWl0T25seVNlbGVjdGVkOiJlbWl0T25seVNlbGVjdGVkIixlbmFibGVMb2FkTW9yZToiZW5hYmxlTG9hZE1vcmUifSxvdXRwdXRzOnt2YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UiLG9uSW5wdXRF'@; put 'dmVudDoib25JbnB1dEV2ZW50Iixmb2N1c2luSW5wdXQ6ImZvY3VzaW5JbnB1dCIsb25BdXRvY29tcGxldGVMb2FkaW5nTW9yZToib25BdXRvY29tcGxldGVMb2FkaW5nTW9yZSIsc2VsZWN0ZWRMYWJlbENoYW5nZToic2VsZWN0ZWRMYWJlbENoYW5nZSJ9LGZlYXR1cmVzOlt2YV0sbmdDb250'@; put 'ZW50U2VsZWN0b3JzOk5CZSxkZWNsczo1LHZhcnM6NSxjb25zdHM6W1siY2xhc3MiLCJjbHItY29udHJvbC1sYWJlbCIsMywic2Vjb25kTGFiZWxBY3RpdmUiLDQsIm5nSWYiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsImNsci1jb250cm9sLWxhYmVsIl0sWzMsImNs'@; put 'aWNrIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJkYXRlIiwiY2xyRGF0ZSIsIiIsMywiaWQiLCJwbGFjZWhvbGRlciIsImNsckRhdGUiLCJkaXNhYmxlZCIsImNsckRhdGVDaGFuZ2UiLCJmb2N1cyIsImZvY3Vzb3V0IiwiZm9jdXNpbiIsIm1vdXNlb3ZlciIsIm1vdXNlb3V0Il0sWyJ0eXBlIiwi'@; put 'dGltZSIsInN0ZXAiLCIxIiwxLCJpbnB1dC12YWwiLDMsInZhbHVlIiwiaWQiLCJkaXNhYmxlZCIsImlucHV0IiwiZm9jdXMiLCJmb2N1c291dCIsImZvY3VzaW4iLCJtb3VzZW92ZXIiLCJtb3VzZW91dCJdLFsidHlwZSIsInRleHQiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJhdXRvZm9jdXMi'@; put 'LCIiLDEsImlucHV0LXZhbCIsMywiaW5wdXRJZCIsInZhbHVlIiwiZW5hYmxlTG9hZE1vcmUiLCJlbWl0T25seVNlbGVjdGVkIiwiZGlzYWJsZWQiLCJvbklucHV0Q2hhbmdlIiwib25Mb2FkaW5nTW9yZSJdLFsiaW5wdXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihBaSgp'@; put 'LEplKDAsT0JlLDQsNiwibGFiZWwiLDApLFZyKDEsMSksSmUoMixQQmUsNCw4LCJuZy1jb250YWluZXIiLDIpLEplKDMsRkJlLDIsNCwibmctY29udGFpbmVyIiwyKSxKZSg0LEhCZSw0LDUsIm5nLWNvbnRhaW5lciIsMiksenIoKSksMiZhJiYoUmUoIm5nSWYiLGQubGFiZWwpLENlKDEpLFJl'@; put 'KCJuZ1N3aXRjaCIsZC50eXBlKSxDZSgxKSxSZSgibmdTd2l0Y2hDYXNlIiwiZGF0ZSIpLENlKDEpLFJlKCJuZ1N3aXRjaENhc2UiLCJ0aW1lIiksQ2UoMSksUmUoIm5nU3dpdGNoQ2FzZSIsInRleHQiKSl9LGRlcGVuZGVuY2llczpbWmksbmQsdGgsVXMsTGIsJEYscUYsU3NlLElCZV0sc3R5'@; put 'bGVzOlsiLmlucHV0LXZhbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjBweDtiYWNrZ3JvdW5kOiNmYmY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzk5OTk5OX1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtvdXRsaW5lOm5vbmV9aW5wdXRbX25nY29udGVudC0l'@; put 'Q09NUCVdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7bWFyZ2luLXRvcDotNXB4fWNsci1kYXRlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50fWNsci1kYXRlLWNvbnRhaW5lcltfbmdjb250'@; put 'ZW50LSVDT01QJV0gICAgIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTVweH1jbHItZGF0ZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi1y'@; put 'aWdodDoyMHB4O21hcmdpbi10b3A6LTVweH1sYWJlbC5zZWNvbmRMYWJlbEFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoLnZhbHVlLXR5cGUtc2VsZWN0ZWQpe3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7Y3Vyc29yOnBvaW50ZXI7'@; put 'b3BhY2l0eTouNn0iXX0pLGN9KSgpLFU3PSgoKT0+e2NsYXNzIGN7c2V0IG5nVmFyKGEpe3RoaXMuY29udGV4dC4kaW1wbGljaXQ9dGhpcy5jb250ZXh0Lm5nVmFyPWEsdGhpcy5oYXNWaWV3fHwodGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZix0aGlzLmNv'@; put 'bnRleHQpLHRoaXMuaGFzVmlldz0hMCl9Y29uc3RydWN0b3IoYSxkKXt0aGlzLnRlbXBsYXRlUmVmPWEsdGhpcy52Y1JlZj1kLHRoaXMuY29udGV4dD17JGltcGxpY2l0Om51bGwsbmdWYXI6bnVsbH0sdGhpcy5oYXNWaWV3PSExfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0'@; put 'dXJuIG5ldyhhfHxjKSh0dCh6YSksdHQoYXMpKX0sYy5cdTAyNzVkaXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwibmdWYXIiLCIiXV0saW5wdXRzOntuZ1ZhcjoibmdWYXIifX0pLGN9KSgpLFZCZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuaGVscGVyU2VydmljZT1h'@; put 'fXRyYW5zZm9ybShhLGQ9ImRheXMiLGg9ITEpe2lmKHZvaWQgMD09PWEmJihhPSIiKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEudG9TdHJpbmcoKSksMD09PWEubGVuZ3RoKXtpZigiZGF5cyI9PT1kKXJldHVybiBudWxsO2lmKCJzZWNvbmRzIj09PWQpcmV0dXJuIGg/IjExOjAwOjAwIjpu'@; put 'dWxsfWxldCBmPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0U2FzRGF5c1RvSnNEYXRlKGEsZCk7aWYoND09PWEuc3BsaXQoIjoiKS5sZW5ndGgpe2NvbnN0IFQ9YS5zcGxpdCgiOiIpO2Y9bmV3IERhdGUoVFswXSksZi5zZXRIb3VycyhwYXJzZUludChUWzFdKSksZi5zZXRNaW51dGVzKHBh'@; put 'cnNlSW50KFRbMl0pKSxmLnNldFNlY29uZHMocGFyc2VJbnQoVFszXSkpfWVsc2UgaXNOYU4oTnVtYmVyKGEpKSYmKGY9bmV3IERhdGUoYSkpO2xldCBfPWAke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhmLmdldEhvdXJzKCkudG9TdHJpbmcoKSl9OiR7dGhpcy5oZWxwZXJT'@; put 'ZXJ2aWNlLmFkZExlYWRpbmdaZXJvKGYuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhmLmdldFNlY29uZHMoKS50b1N0cmluZygpKX1gO3JldHVybiBoP186Zn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVy'@; put 'biBuZXcoYXx8YykodHQoVGMsMTYpKX0sYy5cdTAyNzVwaXBlPU5hKHtuYW1lOiJzYXNUb0pzRGF0ZSIsdHlwZTpjLHB1cmU6ITB9KSxjfSkoKSxCQmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmhlbHBlclNlcnZpY2U9YX10cmFuc2Zvcm0oYSl7aWYobnVsbD09YXx8IiI9'@; put 'PT1hKXJldHVybiIiO2xldCBkLGgsZjtpZigic3RyaW5nIj09dHlwZW9mIGEmJjM9PT1hLnNwbGl0KCI6IikubGVuZ3RoKXtjb25zdCBfPWEuc3BsaXQoIjoiKTtkPV9bMF0saD1fWzFdLGY9X1syXX1lbHNlIm51bWJlciIhPXR5cGVvZiBhJiYoYT1wYXJzZUludChhKSksZD1NYXRoLmZsb29y'@; put 'KGEvMzYwMCksaD1NYXRoLmZsb29yKGElMzYwMC82MCksZj1NYXRoLmZsb29yKGElMzYwMCU2MCk7cmV0dXJuYCR7dGhpcy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmdaZXJvKGQpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhoKX06JHt0aGlzLmhlbHBlclNlcnZpY2Uu'@; put 'YWRkTGVhZGluZ1plcm8oZil9YH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVGMsMTYpKX0sYy5cdTAyNzVwaXBlPU5hKHtuYW1lOiJzZWNvbmRzUGFyc2VyIix0eXBlOmMscHVyZTohMH0pLGN9KSgpO2Z1bmN0aW9uIGpCZShjLGwpe2lmKDEm'@; put 'YyYmKG1lKDAsIm9wdGlvbiIsMjIpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtSZSgic2VsZWN0ZWQiLFZlKCkubG9naWNPcGVyYXRvcnNbMF0pLENlKDEpLGdyKCIgIixhLCIgIil9fWZ1bmN0aW9uIHpCZShjLGwpezEmYyYmKG1lKDAsImRpdiIsMjMpLE5lKDEsIlxu'@; put 'ICAgICAgICAiKSxxdCgyLCJwcm9ncmVzcyIpLE5lKDMsIlxuICAgICAgIikseWUoKSl9ZnVuY3Rpb24gVUJlKGMsbCl7MSZjJiZxdCgwLCJkaXYiKX1mdW5jdGlvbiBaQmUoYyxsKXtpZigxJmMmJihtZSgwLCJvcHRpb24iLDIyKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGlj'@; put 'aXQ7UmUoInNlbGVjdGVkIixWZSgyKS5sb2dpY09wZXJhdG9yc1swXSksQ2UoMSksZ3IoIiAiLGEsIiAiKX19ZnVuY3Rpb24gWUJlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiwzMikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5h'@; put 'ZGRHcm91cENsYXVzZSgpKX0pLHF0KDEsImNsci1pY29uIiwzMyksbWUoMiwic3BhbiIpLE5lKDMsIkdyb3VwIikseWUoKSgpfX1mdW5jdGlvbiBXQmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItaWNvbiIsMzQpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25z'@; put 'dCBoPVZlKCkuaW5kZXg7cmV0dXJuIGp0KFZlKCkucmVtb3ZlR3JvdXBDbGF1c2UoaCkpfSkseWUoKX19ZnVuY3Rpb24gR0JlKGMsbCl7aWYoMSZjJiYobWUoMCwib3B0aW9uIiksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLGdyKCIgIixhLk5BTUUsIiAiKX19'@; put 'ZnVuY3Rpb24gJEJlKGMsbCl7aWYoMSZjJiYobWUoMCwib3B0aW9uIiksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLG9yKGEpfX1mdW5jdGlvbiBxQmUoYyxsKXsxJmMmJmphKDApfWNvbnN0IEtCZT1mdW5jdGlvbihjLGwsYSl7cmV0dXJue3F1ZXJ5OmMscXVl'@; put 'cnlJbmRleDpsLGNsYXVzZUluZGV4OmF9fTtmdW5jdGlvbiBYQmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDUxKSgxLCJidXR0b24iLDUyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKS5pbmRleCxmPVZlKCkuaW5kZXgsXz1WZSgpO3Jl'@; put 'dHVybiBfLmN1cnJlbnRRdWVyeUluZGV4PWgsanQoXy5jdXJyZW50Q2xhdXNlSW5kZXg9Zil9KSxOZSgyLCIgQ2hvb3NlIHZhbHVlcyAiKSx5ZSgpLEplKDMscUJlLDEsMCwibmctY29udGFpbmVyIiw1MykseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoMiksZD1hLiRpbXBsaWNpdCxoPWEuaW5k'@; put 'ZXgsZj1WZSgpLmluZGV4O1ZlKCk7Y29uc3QgXz0kaSgzNyk7Q2UoMyksUmUoIm5nVGVtcGxhdGVPdXRsZXQiLF8pKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIseV8oMixLQmUsZCxoLGYpKX19ZnVuY3Rpb24gSkJlKGMsbCl7MSZjJiZqYSgwKX1jb25zdCBRQmU9ZnVuY3Rpb24oYyxsLGEs'@; put 'ZCl7cmV0dXJue3F1ZXJ5OmMscXVlcnlJbmRleDpsLGNsYXVzZUluZGV4OmEsaXNEYXRlVGltZTpkfX07ZnVuY3Rpb24gZWplKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw1NCksSmUoMSxKQmUsMSwwLCJuZy1jb250YWluZXIiLDUzKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS5uZ1Zhcixk'@; put 'PVZlKCksaD1kLiRpbXBsaWNpdCxmPWQuaW5kZXgsXz1WZSgpLmluZGV4LFQ9VmUoKSxXPSRpKDMxKSxpZT0kaSgzMyk7Q2UoMSksUmUoIm5nVGVtcGxhdGVPdXRsZXQiLGEmJlQudXNlUGlja2Vycz9XOmllKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLFdNKDIsUUJlLGgsZixfLGEpKX19'@; put 'ZnVuY3Rpb24gdGplKGMsbCl7MSZjJiZqYSgwKX1mdW5jdGlvbiBuamUoYyxsKXsxJmMmJmphKDApfWNvbnN0IHJqZT1mdW5jdGlvbihjLGwsYSxkKXtyZXR1cm57cmFuZ2U6InN0YXJ0IixxdWVyeTpjLHF1ZXJ5VmFsdWVJbmRleDowLHF1ZXJ5SW5kZXg6bCxjbGF1c2VJbmRleDphLGlzRGF0'@; put 'ZVRpbWU6ZH19LGlqZT1mdW5jdGlvbihjLGwsYSxkKXtyZXR1cm57cmFuZ2U6ImVuZCIscXVlcnk6YyxxdWVyeVZhbHVlSW5kZXg6MSxxdWVyeUluZGV4OmwsY2xhdXNlSW5kZXg6YSxpc0RhdGVUaW1lOmR9fTtmdW5jdGlvbiBvamUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDU1KSgxLCJk'@; put 'aXYiLDU2KSxKZSgyLHRqZSwxLDAsIm5nLWNvbnRhaW5lciIsNTMpLHllKCksbWUoMywiZGl2Iiw1NyksSmUoNCxuamUsMSwwLCJuZy1jb250YWluZXIiLDUzKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpLm5nVmFyLGQ9VmUoKSxoPWQuJGltcGxpY2l0LGY9ZC5pbmRleCxfPVZlKCkuaW5k'@; put 'ZXgsVD1WZSgpLFc9JGkoMzEpLGllPSRpKDM1KTtDZSgyKSxSZSgibmdUZW1wbGF0ZU91dGxldCIsYSYmVC51c2VQaWNrZXJzP1c6aWUpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsV00oNCxyamUsaCxmLF8sYSkpLENlKDIpLFJlKCJuZ1RlbXBsYXRlT3V0bGV0IixhJiZULnVzZVBpY2tl'@; put 'cnM/VzppZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixXTSg5LGlqZSxoLGYsXyxhKSl9fWZ1bmN0aW9uIHNqZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsNTgpKDEsImxhYmVsIiwzKSxOZSgyLCJWYWx1ZSIpLHllKCksbWUoMywiaW5wdXQiLDU5KSx4dCgibmdN'@; put 'b2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLiRpbXBsaWNpdC52YWx1ZT1oKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKDIpLmluZGV4LF89VmUoKS5pbmRleDtyZXR1cm4ganQoVmUoKS5zZXRWYXJpYWJsZVZhbHVl'@; put 'cyhoLGYsXykpfSkseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgyKS4kaW1wbGljaXQ7Q2UoMyksUmUoIm5nTW9kZWwiLGEudmFsdWUpfX1mdW5jdGlvbiBhamUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDQ2KSxKZSgxLFhCZSw0LDYsImRpdiIsNDcpLEplKDIsZWplLDIsNywiZGl2Iiw0'@; put 'OCksSmUoMyxvamUsNSwxNCwiZGl2Iiw0OSksSmUoNCxzamUsNCwxLCJkaXYiLDUwKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7Q2UoMSksUmUoIm5nSWYiLCJJTiI9PT1hLm9wZXJhdG9yfHwiTk9UIElOIj09PWEub3BlcmF0b3IpLENlKDEpLFJlKCJuZ0lmIiwiQkVUV0VF'@; put 'TiIhPT1hLm9wZXJhdG9yJiYiSU4iIT09YS5vcGVyYXRvciYmIk5PVCBJTiIhPT1hLm9wZXJhdG9yJiYiTElLRSIhPT1hLm9wZXJhdG9yJiYiQ09OVEFJTlMiIT09YS5vcGVyYXRvciYmIkJFR0lOU19XSVRIIiE9PWEub3BlcmF0b3IpLENlKDEpLFJlKCJuZ0lmIiwiQkVUV0VFTiI9PT1hLm9w'@; put 'ZXJhdG9yKSxDZSgxKSxSZSgibmdJZiIsIkxJS0UiPT09YS5vcGVyYXRvcnx8IkJFR0lOU19XSVRIIj09PWEub3BlcmF0b3J8fCJDT05UQUlOUyI9PT1hLm9wZXJhdG9yKX19ZnVuY3Rpb24gbGplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw2KSgxLCJkaXYiLDM1KSgy'@; put 'LCJkaXYiLDM2KSgzLCJhcHAtc29mdC1zZWxlY3QiLDM3KSx4dCgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBqdChCdChhKS4kaW1wbGljaXQudmFyaWFibGU9aCl9KSgib25JbnB1dEV2ZW50IixmdW5jdGlvbihoKXtjb25zdCBmPUJ0KGEpLF89Zi4kaW1wbGljaXQsVD1mLmlu'@; put 'ZGV4LFc9VmUoKS5pbmRleDtyZXR1cm4ganQoVmUoKS52YXJpYWJsZUlucHV0Q2hhbmdlKF8udmFyaWFibGUsVCxXLGgpKX0pLEplKDQsR0JlLDIsMSwib3B0aW9uIiwzOCkseWUoKSgpKCksbWUoNSwiZGl2IiwzOSkoNiwiY2xyLXNlbGVjdC1jb250YWluZXIiKSg3LCJsYWJlbCIpLE5lKDgs'@; put 'Ik9wZXJhdG9yIikseWUoKSxtZSg5LCJzZWxlY3QiLDQwKSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIGp0KEJ0KGEpLiRpbXBsaWNpdC5vcGVyYXRvcj1oKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbigpe2NvbnN0IGg9QnQoYSksZj1oLmluZGV4LF89aC4kaW1w'@; put 'bGljaXQsVD1WZSgpLmluZGV4O3JldHVybiBqdChWZSgpLnNldFZhcmlhYmxlT3BlcmF0b3IoZixfLm9wZXJhdG9yLFQpKX0pLEplKDEwLCRCZSwyLDEsIm9wdGlvbiIsMzgpLHllKCkoKSgpLEplKDExLGFqZSw1LDQsImRpdiIsNDEpLG1lKDEyLCJkaXYiLDQyKSgxMywiYnV0dG9uIiw0Myks'@; put 'eHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuaW5kZXgsXz1WZSgpLmluZGV4O3JldHVybiBqdChWZSgpLnJlbW92ZUNsYXVzZShmLF8pKX0pLHF0KDE0LCJjbHItaWNvbiIsNDQpKDE1LCJzcGFuIikseWUoKSxtZSgxNiwiYnV0dG9uIiw0NSkseHQoImNsaWNrIixmdW5jdGlv'@; put 'bigpe0J0KGEpO2NvbnN0IGg9VmUoKS5pbmRleDtyZXR1cm4ganQoVmUoKS5hZGRDbGF1c2UoaCkpfSkscXQoMTcsImNsci1pY29uIiwzMykoMTgsInNwYW4iKSx5ZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4LGg9VmUoKS5pbmRleCxmPVZlKCk7ZHIoImlu'@; put 'dmFsaWQtY2xhdXNlIixhLmludmFsaWRDbGF1c2UpLENlKDMpLFJlKCJpZCIsInNlbGVjdF92YWxzX3Zhcl9pZCIrZCsiXyIraCkoImlucHV0SWQiLCJ2YWxzX3Zhcl9pZCIrZCsiXyIraCkoImVtaXRPbmx5U2VsZWN0ZWQiLCEwKSgidmFsdWUiLGEudmFyaWFibGUpLENlKDEpLFJlKCJuZ0Zv'@; put 'ck9mIixmLmNvbHMpLENlKDUpLFJlKCJuZ01vZGVsIixhLm9wZXJhdG9yKSxDZSgxKSxSZSgibmdGb3JPZiIsYS5vcGVyYXRvcnMpLENlKDEpLFJlKCJuZ1ZhciIsIkRBVEUiPT09YS5kZHR5cGV8fCJEQVRFVElNRSI9PT1hLmRkdHlwZXx8IlRJTUUiPT09YS5kZHR5cGUpLENlKDIpLFJlKCJk'@; put 'aXNhYmxlZCIsMT09PWYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50cy5sZW5ndGgpfX1mdW5jdGlvbiBjamUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDI0KSgxLCJkaXYiLDYpKDIsImRpdiIsMjUpKDMsImRpdiIsMjYpKDQsImNsci1zZWxlY3QtY29udGFpbmVy'@; put 'IikoNSwibGFiZWwiKSxOZSg2LCJMb2dpYyIpLHllKCksbWUoNywic2VsZWN0IiwyNykseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBqdChCdChhKS4kaW1wbGljaXQuY2xhdXNlTG9naWM9aCl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSks'@; put 'anQoVmUoKS5zZXRMb2dpYygpKX0pLEplKDgsWkJlLDIsMiwib3B0aW9uIiw5KSx5ZSgpKCkoKSxxdCg5LCJiciIpLEplKDEwLFlCZSw0LDAsImJ1dHRvbiIsMjgpLHllKCksbWUoMTEsImRpdiIsMjkpLEplKDEyLFdCZSwxLDAsImNsci1pY29uIiwzMCksSmUoMTMsbGplLDE5LDExLCJkaXYi'@; put 'LDMxKSx5ZSgpKCkscXQoMTQsImJyIikseWUoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSgpO0NlKDEpLGRyKCJpbnZhbGlkLWNsYXVzZSIsYS5pbnZhbGlkQ2xhdXNlKSxDZSg2KSxSZSgibmdNb2RlbCIsYS5jbGF1c2VMb2dpYykoImRpc2FibGVkIixhLmVsZW1lbnRzLmxl'@; put 'bmd0aDwyKSxDZSgxKSxSZSgibmdGb3JPZiIsZC5sb2dpY09wZXJhdG9ycyksQ2UoMiksUmUoIm5nSWYiLGQuaW5uZXJXaWR0aD43NjgpLENlKDIpLFJlKCJuZ0lmIixkLmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoPjEpLENlKDEpLFJlKCJuZ0Zvck9mIixhLmVsZW1lbnRzKX19ZnVuY3Rpb24g'@; put 'dWplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7VnIoMCksbWUoMSwiYXBwLXNvZnQtc2VsZWN0Iiw2MikseHQoInZhbHVlQ2hhbmdlIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCksXz1mLnF1ZXJ5LFQ9Zi5xdWVyeUluZGV4LFc9Zi5jbGF1c2VJbmRleCxpZT1mLnF1ZXJ5VmFs'@; put 'dWVJbmRleDtyZXR1cm4ganQoVmUoKS5kYXRlQ2hhbmdlKGgsXyxULFcsaWUpKX0pLGJhKDIsInNhc1RvSnNEYXRlIiksYmEoMywic2FzVG9Kc0RhdGUiKSx5ZSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKCksZD1hLnF1ZXJ5SW5kZXgsaD1hLmNsYXVzZUluZGV4LGY9YS5xdWVyeVZhbHVl'@; put 'SW5kZXgsXz1hLnF1ZXJ5O0NlKDEpLFJlKCJkaXNhYmxlU29mdHNlbGVjdCIsITApKCJpbnB1dElkIiwidmFsc19kYXRlIitkKyJfIitoKSgidmFsdWUiLHZvaWQgMCE9PWY/WmwoMiwzLF8udmFsdWVbZl0pOlpsKDMsNSxfLnZhbHVlKSl9fWZ1bmN0aW9uIGRqZShjLGwpe2lmKDEmYyl7Y29u'@; put 'c3QgYT1WbigpO1ZyKDApLG1lKDEsImFwcC1zb2Z0LXNlbGVjdCIsNjMpLHh0KCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7QnQoYSk7Y29uc3QgZj1WZSgpLF89Zi5jbGF1c2VJbmRleCxUPWYucXVlcnlJbmRleDtyZXR1cm4ganQoVmUoKS5nZXRRdWVyeURhdGVUaW1lKF8sVCkuZGF0ZT1o'@; put 'KX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpLGY9aC5xdWVyeSxfPWgucXVlcnlJbmRleCxUPWguY2xhdXNlSW5kZXgsVz1oLnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4ganQoVmUoKS5kYXRlVGltZUNoYW5nZShmLF8sVCxXKSl9KSxiYSgyLCJzYXNUb0pz'@; put 'RGF0ZSIpLGJhKDMsInNhc1RvSnNEYXRlIikseWUoKSxtZSg0LCJhcHAtc29mdC1zZWxlY3QiLDY0KSx4dCgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoKSxfPWYuY2xhdXNlSW5kZXgsVD1mLnF1ZXJ5SW5kZXg7cmV0dXJuIGp0KFZlKCkuZ2V0UXVlcnlEYXRl'@; put 'VGltZShfLFQpLnRpbWU9aCl9KSgib25JbnB1dEV2ZW50IixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKSxmPWgucXVlcnksXz1oLnF1ZXJ5SW5kZXgsVD1oLmNsYXVzZUluZGV4LFc9aC5xdWVyeVZhbHVlSW5kZXg7cmV0dXJuIGp0KFZlKCkuZGF0ZVRpbWVDaGFuZ2UoZixfLFQsVykp'@; put 'fSksYmEoNSwic2FzVG9Kc0RhdGUiKSxiYSg2LCJzYXNUb0pzRGF0ZSIpLHllKCksenIoKX1pZigyJmMpe2NvbnN0IGE9VmUoKSxkPWEucXVlcnlJbmRleCxoPWEuY2xhdXNlSW5kZXgsZj1hLnF1ZXJ5VmFsdWVJbmRleCxfPWEucXVlcnk7Q2UoMSksUmUoImRpc2FibGVTb2Z0c2VsZWN0Iiwh'@; put 'MCkoImlucHV0SWQiLCJ2YWxzX2RhdGUiK2QrIl8iK2gpKCJ2YWx1ZSIsdm9pZCAwIT09Zj9NNSgyLDYsXy52YWx1ZVtmXSwic2Vjb25kcyIpOk01KDMsOSxfLnZhbHVlLCJzZWNvbmRzIikpLENlKDMpLFJlKCJkaXNhYmxlU29mdHNlbGVjdCIsITApKCJpbnB1dElkIiwidmFsc190aW1lIitk'@; put 'KyJfIitoKSgidmFsdWUiLHZvaWQgMCE9PWY/RFIoNSwxMixfLnZhbHVlW2ZdLCJzZWNvbmRzIiwhMCk6RFIoNiwxNixfLnZhbHVlLCJzZWNvbmRzIiwhMCkpfX1mdW5jdGlvbiBoamUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJhcHAtc29mdC1zZWxlY3QiLDY1KSx4'@; put 'dCgib25JbnB1dEV2ZW50IixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCksXz1mLnF1ZXJ5LFQ9Zi5xdWVyeUluZGV4LFc9Zi5jbGF1c2VJbmRleCxpZT1mLnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4ganQoVmUoKS50aW1lQ2hhbmdlKGgsXyxULFcsaWUpKX0pLGJhKDIsInNlY29uZHNQ'@; put 'YXJzZXIiKSxiYSgzLCJzZWNvbmRzUGFyc2VyIikseWUoKSx6cigpfWlmKDImYyl7Y29uc3QgYT1WZSgpLGQ9YS5xdWVyeUluZGV4LGg9YS5jbGF1c2VJbmRleCxmPWEucXVlcnlWYWx1ZUluZGV4LF89YS5xdWVyeTtDZSgxKSxSZSgiZGlzYWJsZVNvZnRzZWxlY3QiLCEwKSgiaW5wdXRJZCIs'@; put 'InZhbHNfIitkKyJfIitoKSgidmFsdWUiLHZvaWQgMCE9PWY/WmwoMiwzLF8udmFsdWVbZl0pOlpsKDMsNSxfLnZhbHVlKSl9fWZ1bmN0aW9uIGZqZShjLGwpezEmYyYmKFZyKDAsNjApLEplKDEsdWplLDQsNywibmctY29udGFpbmVyIiw2MSksSmUoMixkamUsNywyMCwibmctY29udGFpbmVy'@; put 'Iiw2MSksSmUoMyxoamUsNCw3LCJuZy1jb250YWluZXIiLDYxKSx6cigpKSwyJmMmJihSZSgibmdTd2l0Y2giLGwucXVlcnkuZGR0eXBlKSxDZSgxKSxSZSgibmdTd2l0Y2hDYXNlIiwiREFURSIpLENlKDEpLFJlKCJuZ1N3aXRjaENhc2UiLCJEQVRFVElNRSIpLENlKDEpLFJlKCJuZ1N3aXRj'@; put 'aENhc2UiLCJUSU1FIikpfWZ1bmN0aW9uIHBqZShjLGwpe2lmKDEmYyYmKG1lKDAsIm9wdGlvbiIsNjgpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtSZSgidmFsdWUiLGEudW5mb3JtYXR0ZWQpLENlKDEpLGdyKCIgIixhLmZvcm1hdHRlZC50cmltKCksIiAiKX19ZnVu'@; put 'Y3Rpb24gZ2plKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiksSmUoMSxwamUsMiwyLCJvcHRpb24iLDY3KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS5xdWVyeTtDZSgxKSxSZSgibmdGb3JPZiIsYS52YWx1ZXMpfX1mdW5jdGlvbiBtamUoYyxsKXtpZigxJmMmJihtZSgwLCJvcHRpb24iLDY4'@; put 'KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7UmUoInZhbHVlIixhLk5BTUUpLENlKDEpLGdyKCIgIixhLk5BTUUsIiAiKX19ZnVuY3Rpb24gdmplKGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSxtamUsMiwyLCJvcHRpb24iLDY5KSx6cigpKSwyJmMpe2NvbnN0IGE9'@; put 'bC4kaW1wbGljaXQsZD1WZSgyKS5xdWVyeTtDZSgxKSxSZSgibmdJZiIsYS5UWVBFPT09ZC50eXBlKX19ZnVuY3Rpb24gX2plKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiksSmUoMSx2amUsMiwxLCJuZy1jb250YWluZXIiLDM4KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUo'@; put 'Im5nRm9yT2YiLGEuY29scyl9fWZ1bmN0aW9uIGJqZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImFwcC1zb2Z0LXNlbGVjdCIsNjYpLHh0KCJzZWxlY3RlZExhYmVsQ2hhbmdlIixmdW5jdGlvbihoKXtjb25zdCBfPUJ0KGEpLnF1ZXJ5O3JldHVybiBqdChWZSgpLnNlbGVjdGVk'@; put 'TGFiZWxDaGFuZ2UoaCxfKSl9KSgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBqdChCdChhKS5xdWVyeS52YWx1ZT1oKX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9QnQoYSksXz1mLnF1ZXJ5SW5kZXgsVD1mLmNsYXVzZUluZGV4O3JldHVybiBqdChWZSgp'@; put 'LnNldFZhcmlhYmxlVmFsdWVzKGgudGFyZ2V0LnZhbHVlLF8sVCkpfSkoIm9uQXV0b2NvbXBsZXRlTG9hZGluZ01vcmUiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9QnQoYSksXz1mLnF1ZXJ5LFQ9Zi5xdWVyeUluZGV4LFc9Zi5jbGF1c2VJbmRleDtyZXR1cm4ganQoVmUoKS5vbkF1dG9jb21wbGV0'@; put 'ZUxvYWRpbmdNb3JlKGgsXy52YXJpYWJsZSxULFcpKX0pLEplKDEsZ2plLDIsMSwiZGl2IiwxNiksSmUoMixfamUsMiwxLCJkaXYiLDE2KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1sLnF1ZXJ5LGQ9bC5xdWVyeUluZGV4LGg9bC5jbGF1c2VJbmRleDtSZSgic2Vjb25kTGFiZWwiLCJWYXJpYWJs'@; put 'ZSIpKCJlbWl0T25seVNlbGVjdGVkIixhLnZhbHVlVmFyaWFibGUpKCJpbnB1dElkIiwidmFsc18iK2QrIl8iK2gpKCJ2YWx1ZSIsYS52YWx1ZSkoImVuYWJsZUxvYWRNb3JlIixhLm5vYnM+YS52YWx1ZXMubGVuZ3RoKSxDZSgxKSxSZSgibmdJZiIsIWEudmFsdWVWYXJpYWJsZSksQ2UoMSks'@; put 'UmUoIm5nSWYiLGEudmFsdWVWYXJpYWJsZSl9fWZ1bmN0aW9uIHlqZShjLGwpe2lmKDEmYyYmKG1lKDAsIm9wdGlvbiIsNjgpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtSZSgidmFsdWUiLGEuZm9ybWF0dGVkKSxDZSgxKSxncigiICIsYS5mb3JtYXR0ZWQsIiAiKX19'@; put 'ZnVuY3Rpb24gd2plKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYXBwLXNvZnQtc2VsZWN0Iiw3MCkseHQoInZhbHVlQ2hhbmdlIixmdW5jdGlvbihoKXtjb25zdCBmPUJ0KGEpO3JldHVybiBqdChmLnF1ZXJ5LnZhbHVlW2YucXVlcnlWYWx1ZUluZGV4XT1oKX0pKCJvbklucHV0'@; put 'RXZlbnQiLGZ1bmN0aW9uKCl7Y29uc3QgaD1CdChhKSxmPWgucXVlcnksXz1oLnF1ZXJ5SW5kZXgsVD1oLmNsYXVzZUluZGV4O3JldHVybiBqdChWZSgpLnNldFZhcmlhYmxlVmFsdWVzKGYudmFsdWUsXyxUKSl9KSgib25BdXRvY29tcGxldGVMb2FkaW5nTW9yZSIsZnVuY3Rpb24oaCl7Y29u'@; put 'c3QgZj1CdChhKSxfPWYucXVlcnksVD1mLnF1ZXJ5SW5kZXgsVz1mLmNsYXVzZUluZGV4O3JldHVybiBqdChWZSgpLm9uQXV0b2NvbXBsZXRlTG9hZGluZ01vcmUoaCxfLnZhcmlhYmxlLFQsVykpfSksSmUoMSx5amUsMiwyLCJvcHRpb24iLDY3KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1sLnJh'@; put 'bmdlLGQ9bC5xdWVyeSxoPWwucXVlcnlWYWx1ZUluZGV4O1JlKCJpbnB1dElkIiwidmFscy0iK2ErIl8iK2wucXVlcnlJbmRleCsiXyIrbC5jbGF1c2VJbmRleCkoInZhbHVlIixkLnZhbHVlW2hdKSgiZW5hYmxlTG9hZE1vcmUiLGQubm9icz5kLnZhbHVlcy5sZW5ndGgpKCJkaXNhYmxlZCIs'@; put 'dm9pZCAwIT09aCYmInN0YXJ0IiE9PWEmJiFkLnZhbHVlWzBdKSxDZSgxKSxSZSgibmdGb3JPZiIsZC52YWx1ZXMpfX1mdW5jdGlvbiBDamUoYyxsKXsxJmMmJihtZSgwLCJoNSIsNzgpLE5lKDEsIiBObyB2YWx1ZXMgYXZhaWxhYmxlLiAiKSx5ZSgpKX1mdW5jdGlvbiBTamUoYyxsKXtpZigx'@; put 'JmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDEsImlucHV0Iiw4MCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe2NvbnN0IF89QnQoYSkuaW5kZXg7cmV0dXJuIGp0KFZlKDIpLnF1ZXJ5LnZhbHVlW19dLmNoZWNrZWQ9aCl9KSgibmdNb2RlbENo'@; put 'YW5nZSIsZnVuY3Rpb24oaCl7QnQoYSk7Y29uc3QgZj1WZSgyKSxfPWYucXVlcnlJbmRleCxUPWYuY2xhdXNlSW5kZXg7cmV0dXJuIGp0KFZlKCkuc2V0VmFyaWFibGVWYWx1ZXMoaCxfLFQpKX0pLHllKCksbWUoMiwibGFiZWwiKSxOZSgzKSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGlt'@; put 'cGxpY2l0LGQ9bC5pbmRleCxoPVZlKDIpLnF1ZXJ5O0NlKDEpLFJlKCJuZ01vZGVsIixoLnZhbHVlW2RdLmNoZWNrZWQpLENlKDIpLGdyKCIgIixhLmZvcm1hdHRlZCwiICIpfX1mdW5jdGlvbiBNamUoYyxsKXtpZigxJmMmJihtZSgwLCJzZWN0aW9uIiw3OSkoMSwiY2xyLWNoZWNrYm94LWNv'@; put 'bnRhaW5lciIpLEplKDIsU2plLDQsMiwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDM4KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpLnF1ZXJ5O0NlKDIpLFJlKCJuZ0Zvck9mIixhLnZhbHVlcyl9fWZ1bmN0aW9uIHhqZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1tb2Rh'@; put 'bCIsNzEpKDEsImgzIiw3MiksTmUoMiwiU2VsZWN0IHZhbHVlcyIpLHllKCksbWUoMywiZGl2Iiw3MyksSmUoNCxDamUsMiwwLCJoNSIsNzQpLEplKDUsTWplLDMsMSwic2VjdGlvbiIsNzUpLHllKCksbWUoNiwiZGl2Iiw3NikoNywiYnV0dG9uIiw3NykseHQoImNsaWNrIixmdW5jdGlvbigp'@; put 'e0J0KGEpO2NvbnN0IGg9VmUoKTtyZXR1cm4gaC5jdXJyZW50UXVlcnlJbmRleD0tMSxqdChoLmN1cnJlbnRDbGF1c2VJbmRleD0tMSl9KSxOZSg4LCIgQXBwbHkgIikseWUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwucXVlcnksZD1sLnF1ZXJ5SW5kZXgsaD1sLmNsYXVzZUluZGV4LGY9VmUo'@; put 'KTtSZSgiY2xyTW9kYWxPcGVuIixmLmN1cnJlbnRRdWVyeUluZGV4PT09ZCYmZi5jdXJyZW50Q2xhdXNlSW5kZXg9PT1oKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLENlKDQpLFJlKCJuZ0lmIiwhZi5pc0FycihhLnZhbHVlKSksQ2UoMSksUmUoIm5nSWYiLGYuaXNBcnIoYS52YWx1ZSkpfX0h'@; put 'ZnVuY3Rpb24gZjBlKGMsbCxhKXsoZnVuY3Rpb24gVU0oYyxsLGEpeyJzdHJpbmciIT10eXBlb2YgbCYmKGE9bCxsPWNbcW8uTG9jYWxlSWRdKSxsPWwudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKSwkZFtsXT1jLGEmJigkZFtsXVtxby5FeHRyYURhdGFdPWEpfSkoYyxsLGEpfShF'@; put 'QmUpO2xldCBjVT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWEsdGhpcy5ldmVudFNlcnZpY2U9ZCx0aGlzLmhlbHBlclNlcnZpY2U9aCx0aGlzLmNkZj1mLHRoaXMuY2FjaGluZz0hMCx0aGlzLnJvd3NfaW5jcmVtZW50PTEwMCx0aGlz'@; put 'LmluaXRpYWxfcm93cz0xZTMsdGhpcy5jbGF1c2VBbXQ9WyIiXSx0aGlzLm51bU9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9IiwiPj0iLCJCRVRXRUVOIiwiSU4iLCJOT1QgSU4iLCJORSJdLHRoaXMuY2hhck9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9IiwiPj0iLCJDT05UQUlOUyIsIklO'@; put 'IiwiTk9UIElOIiwiTkUiXSx0aGlzLm5vdEluPSExLHRoaXMubm90QXJyPSEwLHRoaXMud2FzQmV0d2Vlbj0hMSx0aGlzLndoZXJlQ2xhdXNlTG9hZGluZz0hMSx0aGlzLmR5bmFtaWNXaGVyZUNsYXVzZT0hMCx0aGlzLnVzZVBpY2tlcnM9ITEsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6W3ts'@; put 'b2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZVZhcmlhYmxlOiExLHN0YXJ0cm93OjAscm93czowLG5vYnM6MCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV0sY2xhdXNlTG9naWM6IiIsaW52YWxpZENsYXVz'@; put 'ZTohMX0sdGhpcy5zZWxWYXI9e2luZGV4Om51bGwsZm9ybWF0Om51bGwsdHlwZTpudWxsfSx0aGlzLmluT2JqPVt7Y2hlY2tlZDohMSx2YWx1ZTpudWxsfV0sdGhpcy5ncm91cExvZ2ljPSJBTkQiLHRoaXMuY2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpdLGNsYXVzZUxvZ2ljOltd'@; put 'LGdyb3VwTG9naWM6dGhpcy5ncm91cExvZ2ljfSx0aGlzLmxvZ2ljT3BlcmF0b3JzPVsiQU5EIiwiT1IiXSx0aGlzLnF1ZXJ5RGF0ZVRpbWU9W10sdGhpcy5jdXJyZW50Q2xhdXNlSW5kZXg9LTEsdGhpcy5jdXJyZW50UXVlcnlJbmRleD0tMSx0aGlzLnBlbmRpbmdJTlZhbHVlc1NldD1udWxs'@; put 'LHRoaXMuaW5uZXJXaWR0aD13aW5kb3cuc2NyZWVuLndpZHRoLHRoaXMuaW5uZXJXaWR0aD43NjgmJih0aGlzLm5vQm9yZGVyPSJib3JkZXItbGVmdDogMnB4IHNvbGlkIGdyYXk7Iil9Z2V0UXVlcnlEYXRlVGltZShhLGQpe2xldCBoPXRoaXMucXVlcnlEYXRlVGltZS5maW5kKGY9PmYuY2xh'@; put 'dXNlSW5kZXg9PT1hJiZmLnF1ZXJ5SW5kZXg9PT1kKTtpZighaCl7Y29uc3QgZj10aGlzLnF1ZXJ5RGF0ZVRpbWUucHVzaCh7Y2xhdXNlSW5kZXg6YSxxdWVyeUluZGV4OmQsZGF0ZToiIix0aW1lOiIifSktMTtoPXRoaXMucXVlcnlEYXRlVGltZVtmXX1yZXR1cm4gaH11c2VQaWNrZXJzQ2hh'@; put 'bmdlKCl7dGhpcy5xdWVyeURhdGVUaW1lPVtdLHRoaXMudXNlUGlja2VycyYmdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmZvckVhY2goYT0+e2EuZWxlbWVudHMuZm9yRWFjaChkPT57WyJEQVRFVElNRSIsIlRJTUUiLCJEQVRFIl0uaW5jbHVkZXMoZC5kZHR5cGUpJiZkLnZhbHVlVmFyaWFibGUm'@; put 'JihkLnZhbHVlPSIiLGQudmFsdWVWYXJpYWJsZT0hMSl9KX0pfXJlc2V0RmlsdGVyKCl7dGhpcy53aGVyZVN0cmluZz12b2lkIDAsdGhpcy53aGVyZUNsYXVzZT12b2lkIDAsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJs'@; put 'ZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV19LHRoaXMuY2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6dGhpcy5ncm91cExvZ2ljfSx0aGlzLndoZXJlQ2xhdXNlRm4oITApfXNl'@; put 'dFRvR2xvYmFscygpe2lmKCF0aGlzLmNhY2hpbmcpcmV0dXJuO2xldCBhPSIiOyJob21lIj09PUduLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1Hbi5yb290UGFyYW0/YT10aGlzLnZpZXdib3hJZD9gdmlld2JveGVzLiR7dGhpcy52aWV3Ym94SWR9YDoiZWRpdG9yIjoidmlldyI9PT1Hbi5yb290'@; put 'UGFyYW0mJihhPSJ2aWV3ZXIiKSxpbChHbixhKS5maWx0ZXIuZ3JvdXBMb2dpYz10aGlzLmdyb3VwTG9naWMsInN0cmluZyI9PXR5cGVvZiB0aGlzLndoZXJlQ2xhdXNlJiYoaWwoR24sYSkuZmlsdGVyLndoZXJlQ2xhdXNlPXRoaXMud2hlcmVDbGF1c2UpLCJzdHJpbmciPT10eXBlb2YgdGhp'@; put 'cy5saWJkcyYmKGlsKEduLGEpLmZpbHRlci5saWJkcz10aGlzLmxpYmRzKSxpbChHbixhKS5maWx0ZXIuY2xhdXNlcz10aGlzLmNsYXVzZXN9Z2V0RnJvbUdsb2JhbHMoKXtpZighdGhpcy5jYWNoaW5nKXJldHVybjtsZXQgYT0iIjsiaG9tZSI9PT1Hbi5yb290UGFyYW18fCJlZGl0b3IiPT09'@; put 'R24ucm9vdFBhcmFtP2E9dGhpcy52aWV3Ym94SWQ/YHZpZXdib3hlcy4ke3RoaXMudmlld2JveElkfWA6ImVkaXRvciI6InZpZXciPT09R24ucm9vdFBhcmFtJiYoYT0idmlld2VyIiksaWwoR24sYSkuZmlsdGVyLmNvbHMubGVuZ3RoPjAmJih0aGlzLmNvbHM9SlNPTi5wYXJzZShKU09OLnN0'@; put 'cmluZ2lmeShpbChHbixhKS5maWx0ZXIuY29scykpKSxpbChHbixhKS5maWx0ZXIudmFscy5sZW5ndGg+MCYmKHRoaXMudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGlsKEduLGEpLmZpbHRlci52YWxzKSkpLCIiIT09aWwoR24sYSkuZmlsdGVyLmdyb3VwTG9naWMmJih0aGlzLmdy'@; put 'b3VwTG9naWM9aWwoR24sYSkuZmlsdGVyLmdyb3VwTG9naWMsdGhpcy53aGVyZUNsYXVzZT1pbChHbixhKS5maWx0ZXIud2hlcmVDbGF1c2UsdGhpcy5saWJkcz1pbChHbixhKS5maWx0ZXIubGliZHMsdGhpcy5jbGF1c2VzPWlsKEduLGEpLmZpbHRlci5jbGF1c2VzLHRoaXMud2hlcmVDbGF1'@; put 'c2VGbigpKX1zZXRHcm91cExvZ2ljKGEpe3RoaXMuZ3JvdXBMb2dpYz1hLHRoaXMuY2xhdXNlcy5ncm91cExvZ2ljPWEsdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1kYXRlQ2hhbmdlKGEsZCxoLGYsXyl7bGV0IFQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRK'@; put 'c0RhdGVUb1Nhc0RhdGUoYSk7IkJFVFdFRU4iPT09ZC5vcGVyYXRvciYmdm9pZCAwIT09XyYmKHRoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1toXS52YWx1ZVtfXT1UKSx0aGlzLnNldFZhcmlhYmxlVmFsdWVzKFQsaCxmKX1kYXRlVGltZUNoYW5nZShhLGQsaCxmKXtjb25zdCBf'@; put 'PXRoaXMuZ2V0UXVlcnlEYXRlVGltZShoLGQpO2lmKCIiPT09Xy5kYXRlKXtpZigiIj09PWEudmFsdWUpcmV0dXJuO18uZGF0ZT1hLnZhbHVlLnNwbGl0KCI6IilbMF19Y29uc3QgVD1wYXJzZUludChfLnRpbWUuc3BsaXQoIjoiKVswXSksVz1wYXJzZUludChfLnRpbWUuc3BsaXQoIjoiKVsx'@; put 'XSksaWU9cGFyc2VJbnQoXy50aW1lLnNwbGl0KCI6IilbMl0pfHwwO2xldCBwZT1uZXcgRGF0ZShfLmRhdGUpLHdlPW5ldyBEYXRlKHBlLmdldEZ1bGxZZWFyKCkscGUuZ2V0TW9udGgoKSxwZS5nZXREYXRlKCksVCxXLGllKSxFZT10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEpzRGF0ZVRv'@; put 'U2FzRGF0ZSh3ZSwic2Vjb25kcyIpOyJCRVRXRUVOIj09PWEub3BlcmF0b3ImJnZvaWQgMCE9PWYmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbZF0udmFsdWVbZl09RWUpLHRoaXMuc2V0VmFyaWFibGVWYWx1ZXMoRWUsZCxoKX10aW1lQ2hhbmdlKGEsZCxoLGYsXyl7YT1h'@; put 'LnRhcmdldC52YWx1ZTtsZXQgRWU9NjAqcGFyc2VJbnQoYS5zcGxpdCgiOiIpWzBdKSo2MCs2MCpwYXJzZUludChhLnNwbGl0KCI6IilbMV0pKyhwYXJzZUludChhLnNwbGl0KCI6IilbMl0pfHwwKTsiQkVUV0VFTiI9PT1kLm9wZXJhdG9yJiZ2b2lkIDAhPT1fJiYodGhpcy5jbGF1c2VzLnF1'@; put 'ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLnZhbHVlW19dPUVlKSx0aGlzLnNldFZhcmlhYmxlVmFsdWVzKEVlLGgsZil9ZHluYW1pY1doZXJlQ2xhdXNlQ3JlYXRvcihhLGQpe2xldCBoPVtdO2lmKHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg+MXx8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2Fd'@; put 'LmVsZW1lbnRzLmxlbmd0aD4xKWZvcihsZXQgZj0wO2Y8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aDtmKyspZm9yKGxldCBfPTA7Xzx0aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHMubGVuZ3RoO18rKyl7aWYoZj09PWEmJl89PT1kfHxbbnVsbCx2b2lkIDBdLmluY2x1ZGVz'@; put 'KHRoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1tfXS52YXJpYWJsZSl8fFtudWxsLHZvaWQgMF0uaW5jbHVkZXModGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW19dLm9wZXJhdG9yKXx8W251bGwsdm9pZCAwXS5pbmNsdWRlcyh0aGlzLmNsYXVzZXMucXVlcnlPYmpb'@; put 'Zl0uZWxlbWVudHNbX10udmFsdWUpKWNvbnRpbnVlO2xldCBUPSIiO2NvbnN0IFc9dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW19dLm9wZXJhdG9yLGllPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1tfXS52YXJpYWJsZTsiQkVUV0VFTiI9PT1XP1Q9YCR7dGhp'@; put 'cy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW19dLnZhbHVlWzBdfSBBTkQgJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbZl1bX10udmFsdWVbMV19YDoiSU4iPT09V3x8Ik5PVCBJTiI9PT1XPyh0aGlzLmNsYXVzZXMucXVlcnlPYmpbZl1bX10udmFsdWUuZm9yRWFjaChwZT0+e2lmKHBl'@; put 'LmNoZWNrZWQpe2xldCB3ZT1wZS52YWw7InN0cmluZyIhPXR5cGVvZiB3ZXx8KDAsdDMuaXNTcGVjaWFsTWlzc2luZykod2UpP1QubGVuZ3RoPjA/VCs9YCwke3dlfWA6VD1gKCR7d2V9YDpULmxlbmd0aD4wP1QrPWAsJyR7d2V9J2A6VD1gKCcke3dlfSdgfX0pLFQubGVuZ3RoPjAmJihUKz0i'@; put 'KSIpKToiIj09PXRoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1tfXS52YWx1ZT9UPSJjaGFyIj09PXRoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1tfXS50eXBlPyInICciOiIuIjoiY2hhciI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbX10udHlw'@; put 'ZSYmKFQ9YCcke3RoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1tfXS52YWx1ZX0nYCksaC5wdXNoKHtHUk9VUF9MT0dJQzp0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYyxTVUJHUk9VUF9MT0dJQzp0aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uY2xhdXNlTG9naWN8fCJBTkQiLFNVQkdS'@; put 'T1VQX0lEOmYsVkFSSUFCTEVfTk06aWUsT1BFUkFUT1JfTk06VyxSQVdfVkFMVUU6VHx8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW19dLnZhbHVlfSl9cmV0dXJuIGh9Z2V0VmFsdWVzTG9hZE1vcmUoYSxkLGgsZil7dmFyIF89dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7'@; put 'Y29uc3QgVD1fLmxpYmRzfHwiIjt0cnl7aWYodm9pZCAwIT09Xy5jb2xzKXtmb3IobGV0IGV0PTA7ZXQ8Xy5jb2xzLmxlbmd0aDtldCsrKV8uY29sc1tldF0uTkFNRT09PWQmJihfLnNlbFZhci5pbmRleD1ldCk7Y29uc3QgVz1fLmNvbHNbXy5zZWxWYXIuaW5kZXhdLkREVFlQRSx7c3RhcnRy'@; put 'b3c6aWUscm93czpwZX09Xy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLHdlPV8ucm93c19pbmNyZW1lbnQsRWU9aWUrcGU7bGV0IFplPVtdO18uZHluYW1pY1doZXJlQ2xhdXNlJiYoWmU9Xy5keW5hbWljV2hlcmVDbGF1c2VDcmVhdG9yKGYsaCkpO2NvbnN0IGl0PVsiREFURVRJ'@; put 'TUUiLCJUSU1FIiwiREFURSJdLmluY2x1ZGVzKFcpO18uc2FzU3RvcmVTZXJ2aWNlLmdldFF1ZXJ5VmFsdWVzKGQsVCxaZSxFZSx3ZSkudGhlbihldD0+e2NvbnN0IHl0PWV0LnZhbHMse1NUQVJUUk9XOkV0LFJPV1M6U3QsTk9CUzpKdH09ZXQubWV0YVswXTtpZihfLmNsYXVzZXMucXVlcnlP'@; put 'YmpbZl0uZWxlbWVudHNbaF0uc3RhcnRyb3c9RXQsXy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLnJvd3M9U3QsXy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLm5vYnM9SnQsMT09PXl0Lmxlbmd0aCYmIiI9PT15dFswXS5GT1JNQVRURUQmJiIiPT09eXRbMF0uVU5G'@; put 'T1JNQVRURUQ/YS5sb2FkTW9yZUZpbmlzaGVkKCExKTooXy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLnZhbHVlcy5wdXNoKC4uLnl0Lm1hcChObj0+e2NvbnN0IGNyPSJudW0iPT09ZXQuJHZhbHMudmFycy5VTkZPUk1BVFRFRC50eXBlO2xldCBFaT1jciYmKDAsdDMuaXNTcGVj'@; put 'aWFsTWlzc2luZykoTm4uVU5GT1JNQVRURUQpPyIuIitObi5VTkZPUk1BVFRFRDpObi5VTkZPUk1BVFRFRDtyZXR1cm4gY3ImJm51bGw9PT1FaSYmKEVpPSIuIikse2Zvcm1hdHRlZDppdD9Obi5GT1JNQVRURUQuc3BsaXQoIi4iKVswXTpObi5GT1JNQVRURUQsdW5mb3JtYXR0ZWQ6RWl9fSkp'@; put 'LGEubG9hZE1vcmVGaW5pc2hlZChKdC1fLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbaF0udmFsdWVzLmxlbmd0aD4wKSksXy53aGVyZUNsYXVzZUZuKCksXy5zZXRUb0dsb2JhbHMoKSxfLndoZXJlQ2xhdXNlTG9hZGluZz0hMSxudWxsIT09Xy5wZW5kaW5nSU5WYWx1ZXNTZXQpe2Nv'@; put 'bnN0e2NsYXVzZUluZGV4Om5uLHF1ZXJ5SW5kZXg6dm59PV8ucGVuZGluZ0lOVmFsdWVzU2V0O18uc2V0SU5WYWx1ZXMobm4sdm4pLF8ucGVuZGluZ0lOVmFsdWVzU2V0PW51bGx9Xy5jZGYuZGV0ZWN0Q2hhbmdlcygpfSkuY2F0Y2goZXQ9PntfLndoZXJlQ2xhdXNlTG9hZGluZz0hMX0pfX1j'@; put 'YXRjaChXKXtfLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoInB1YmxpYy9nZXRjb2x2YWxzIixXKX19KSgpfWdldFZhbHVlcyhhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7Zi53aGVyZUNsYXVzZUxvYWRpbmc9ITA7bGV0IF89IiI7dm9pZCAwIT09Zi5s'@; put 'aWJkcyYmKF89Zi5saWJkcyksZi5jbGVhclZhbHVlcyhkLGgpLGYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS52YWx1ZXM9W10sZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnZhbHVlPSIiLGYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS5vcGVyYXRv'@; put 'cj0iPSIsZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnZhcmlhYmxlPWE7dHJ5e2lmKHZvaWQgMCE9PWYuY29scyl7Zm9yKGxldCBwZT0wO3BlPGYuY29scy5sZW5ndGg7cGUrKylmLmNvbHNbcGVdLk5BTUU9PT1hJiYoZi5zZWxWYXIuaW5kZXg9cGUpO2NvbnN0IFQ9Zi5jb2xz'@; put 'W2Yuc2VsVmFyLmluZGV4XS5ERFRZUEU7Zi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLmRkdHlwZT1ULGYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS50eXBlPWYuY29sc1tmLnNlbFZhci5pbmRleF0uVFlQRSxmLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNb'@; put 'ZF0ub3BlcmF0b3JzPSJudW0iPT09Zi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnR5cGU/Zi5udW1PcGVyYXRvcnM6Zi5jaGFyT3BlcmF0b3JzO2xldCBXPVtdO2YuZHluYW1pY1doZXJlQ2xhdXNlJiYoVz1mLmR5bmFtaWNXaGVyZUNsYXVzZUNyZWF0b3IoaCxkKSk7Y29uc3Qg'@; put 'aWU9WyJEQVRFVElNRSIsIlRJTUUiLCJEQVRFIl0uaW5jbHVkZXMoVCk7Zi5zYXNTdG9yZVNlcnZpY2UuZ2V0UXVlcnlWYWx1ZXMoYSxfLFcsMSxmLmluaXRpYWxfcm93cykudGhlbihwZT0+e2NvbnN0IHdlPXBlLnZhbHMse1NUQVJUUk9XOkVlLFJPV1M6WmUsTk9CUzppdH09cGUubWV0YVsw'@; put 'XTtpZihmLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbZF0uc3RhcnRyb3c9RWUsZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnJvd3M9WmUsZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLm5vYnM9aXQsZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRz'@; put 'W2RdLnZhbHVlcz13ZS5tYXAoZXQ9Pntjb25zdCB5dD0ibnVtIj09PXBlLiR2YWxzLnZhcnMuVU5GT1JNQVRURUQudHlwZTtsZXQgU3Q9eXQmJigwLHQzLmlzU3BlY2lhbE1pc3NpbmcpKGV0LlVORk9STUFUVEVEKT8iLiIrZXQuVU5GT1JNQVRURUQ6ZXQuVU5GT1JNQVRURUQ7cmV0dXJuIHl0'@; put 'JiZudWxsPT09U3QmJihTdD0iLiIpLHtmb3JtYXR0ZWQ6aWU/ZXQuRk9STUFUVEVELnNwbGl0KCIuIilbMF06ZXQuRk9STUFUVEVELHVuZm9ybWF0dGVkOlN0fX0pLnNsaWNlKDAsMmUzKSxmLndoZXJlQ2xhdXNlRm4oKSxmLnNldFRvR2xvYmFscygpLGYud2hlcmVDbGF1c2VMb2FkaW5nPSEx'@; put 'LG51bGwhPT1mLnBlbmRpbmdJTlZhbHVlc1NldCl7Y29uc3R7Y2xhdXNlSW5kZXg6ZXQscXVlcnlJbmRleDp5dH09Zi5wZW5kaW5nSU5WYWx1ZXNTZXQ7Zi5zZXRJTlZhbHVlcyhldCx5dCksZi5wZW5kaW5nSU5WYWx1ZXNTZXQ9bnVsbH1mLmNkZi5kZXRlY3RDaGFuZ2VzKCl9KS5jYXRjaChw'@; put 'ZT0+e2Yud2hlcmVDbGF1c2VMb2FkaW5nPSExfSl9fWNhdGNoKFQpe2YuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigicHVibGljL2dldGNvbHZhbHMiLFQpfX0pKCl9Z2V0bG9naWMoYSl7dGhpcy5sb2dpYz1hLHRoaXMud2hlcmVDbGF1c2VGbigpfXNldExvZ2ljKCl7dGhpcy53'@; put 'aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1pc0FycihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEFycmF5JiZhLmxlbmd0aD4wJiZ0eXBlb2YgYVswXS5jaGVja2VkPCJ1In1zZWxlY3RlZExhYmVsQ2hhbmdlKGEsZCl7ZC52YWx1ZVZhcmlhYmxlPSJWYXJpYWJsZSI9PT1hLGQu'@; put 'dmFsdWU9IiIsdGhpcy53aGVyZUNsYXVzZUZuKCl9dmFyaWFibGVJbnB1dENoYW5nZShhLGQsaCxmKXt0aGlzLmdldFZhbHVlcyhhLGQsaCl9c2V0VmFyaWFibGVWYWx1ZXMoYSxkLGgpe2xldCBmPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS5vcGVyYXRvcjsiQkVUV0VF'@; put 'TiIhPT1mJiYiSU4iIT09ZiYmIk5PVCBJTiIhPT1mJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnZhbHVlPWEudG9TdHJpbmcoKSksdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1zZXRWYXJpYWJsZU9wZXJhdG9yKGEsZCxoKXtsZXQgZj10'@; put 'aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbYV0udmFsdWU7ZiBpbnN0YW5jZW9mIEFycmF5JiYiSU4iIT09ZCYmIk5PVCBJTiIhPT1kJiYoZj1mIGluc3RhbmNlb2YgQXJyYXkmJjI9PT1mLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBmWzBdP2ZbMF06IiIpLHRoaXMuY2xlYXJW'@; put 'YWx1ZXNPcGVyYXRvcihhLGgpLHRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS5vcGVyYXRvcj1kLCgiPSI9PT1kfHwiPiI9PT1kfHwiPCI9PT1kfHwiPD0iPT09ZHx8Ij49Ij09PWR8fCJORSI9PT1kKSYmKHRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS52'@; put 'YWx1ZT1mKSwiQkVUV0VFTiI9PT1kJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2FdLnZhbHVlPVtdLHRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS52YWx1ZS5wdXNoKGYpLHRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS52YWx1ZS5w'@; put 'dXNoKCIiKSksKCJJTiI9PT1kfHwiTk9UIElOIj09PWQpJiZ0aGlzLnNldElOVmFsdWVzKGgsYSksdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1zZXRJTlZhbHVlcyhhLGQpe2NvbnN0IGg9W10sZj10aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uZWxlbWVudHNbZF0u'@; put 'dmFsdWVzO2YubGVuZ3RoPDEmJih0aGlzLnBlbmRpbmdJTlZhbHVlc1NldD17Y2xhdXNlSW5kZXg6YSxxdWVyeUluZGV4OmR9KTtmb3IobGV0IF89MDtfPGYubGVuZ3RoO18rKyloLnB1c2goe2NoZWNrZWQ6ITEsdmFsOmZbX10uZm9ybWF0dGVkfSk7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2Fd'@; put 'LmVsZW1lbnRzW2RdLnZhbHVlPWh9Y2xlYXJWYWx1ZXMoYSxkKXt0aGlzLmNsYXVzZXMucXVlcnlPYmpbZF0uZWxlbWVudHNbYV0udmFsdWU9IiJ9Y2xlYXJWYWx1ZXNPcGVyYXRvcihhLGQpe2xldCBoPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtkXS5lbGVtZW50c1thXS5vcGVyYXRvcjsoIkJF'@; put 'VFdFRU4iPT09aHx8IklOIj09PWh8fCJOT1QgSU4iPT09aHx8IkNPTlRBSU5TIj09PWgpJiZ0aGlzLmNsZWFyVmFsdWVzKGEsZCl9aGFzSW52YWxpZENsdWFzZShhKXtmb3IobGV0IGQgb2YgYSlpZihkLmludmFsaWRDbGF1c2U9ITEsIiI9PT1kLnZhbHVlJiYiTkUiIT09ZC5vcGVyYXRvciYm'@; put 'IkNPTlRBSU5TIiE9PWQub3BlcmF0b3J8fG51bGw9PT1kLnZhcmlhYmxlfHxudWxsPT09ZC5vcGVyYXRvcnx8bnVsbD09PWQudmFsdWUpcmV0dXJuIGQuaW52YWxpZENsYXVzZT0hMCwhMDtyZXR1cm4gYS5pbnZhbGlkQ2xhdXNlPSExLCExfWhhc0ludmFsaWRHcm91cENsdWFzZSgpe2Zvcihs'@; put 'ZXQgYT0wO2E8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aDthKyspe2lmKHRoaXMuaGFzSW52YWxpZENsdWFzZSh0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uZWxlbWVudHMpKXJldHVybiB0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uaW52YWxpZENsYXVzZT0hMCwhMDt0aGlzLmNsYXVz'@; put 'ZXMucXVlcnlPYmpbYV0uaW52YWxpZENsYXVzZT0hMX1yZXR1cm4hMX1hZGRDbGF1c2UoYSl7aWYodGhpcy5oYXNJbnZhbGlkQ2x1YXNlKHRoaXMuY2xhdXNlcy5xdWVyeU9ialthXS5lbGVtZW50cykpcmV0dXJuIHZvaWQgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3Ii'@; put 'LCJDYW5ub3QgYWRkIG5ldyBjbGF1c2UsIHdoZW4gb25lIG9yIG1vcmUgY2xhdXNlcyBhcmUgaW52YWxpZCBvciBlbXB0eS4iKTt0aGlzLmNsYXVzZUFtdC5wdXNoKCIiKSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uZWxlbWVudHMucHVzaCh7bG9naWM6bnVsbCx0eXBlOm51bGwsdmFyaWFi'@; put 'bGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51bGwsdmFsdWVzOltdLG9wZXJhdG9yczpbXX0pO2xldCBkPXRoaXMuY2xhdXNlcy5xdWVyeU9ialthXS5jbGF1c2VMb2dpYzt0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uY2xhdXNlTG9naWM9dHlwZW9mIGQ+InUiPyJBTkQiOiJPUiI9PT1k'@; put 'PyJPUiI6IkFORCIsdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1hZGRHcm91cENsYXVzZSgpe3RoaXMuaGFzSW52YWxpZEdyb3VwQ2x1YXNlKCk/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3IiLCJDYW5ub3QgYWRkIG5ldyBjbGF1c2UsIHdo'@; put 'ZW4gb25lIG9yIG1vcmUgY2xhdXNlcyBhcmUgaW52YWxpZCBvciBlbXB0eS4iKToodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLnB1c2goe2VsZW1lbnRzOlt7bG9naWM6bnVsbCx0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51bGwsdmFsdWVzOltdLG9wZXJhdG9y'@; put 'czpbXX1dfSksdGhpcy5zZXRUb0dsb2JhbHMoKSl9aXNJbkh0bWxDb2xsZWN0aW9uKGEsZCl7Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspaWYoZFtoXS52YWx1ZT09PWEpcmV0dXJuITA7cmV0dXJuITF9cmVtb3ZlR3JvdXBDbGF1c2UoYSl7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLnNwbGlj'@; put 'ZShhLDEpLHRoaXMud2hlcmVDbGF1c2VGbigpfXJlbW92ZUNsYXVzZShhLGQpe3RoaXMuY2xhdXNlcy5xdWVyeU9ialtkXS5lbGVtZW50cy5zcGxpY2UoYSwxKSx0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfXdoZXJlQ2xhdXNlRm4oYT0hMSl7Y29uc3QgZD10aGlz'@; put 'LmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuY2xhdXNlcyk7aWYoYSYmKGQucXVlcnlPYmpbMF0uZWxlbWVudHM9W10pLHZvaWQgMCE9PXRoaXMubGliZHMpe2xldCBoPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLndoZXJlQ2xhdXNlQ3JlYXRvcihkLHRoaXMuZ3JvdXBMb2dpYyx0aGlzLmxp'@; put 'YmRzKTthfHwodGhpcy53aGVyZUNsYXVzZT1oLndoZXJlQ2xhdXNlLHRoaXMud2hlcmVTdHJpbmc9aC5zdHJpbmcpfX1uZ0FmdGVyVmlld0luaXQoKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXthLl9yZW1vdmVRcnk9YS5zYXNTdG9yZVNlcnZpY2UucmVtb3ZlUXVlcnkuc3Vi'@; put 'c2NyaWJlKGQ9PnthLmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoPj0xJiYoYS5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD0xLGEuY2xhdXNlcy5xdWVyeU9ialswXS5lbGVtZW50cy5sZW5ndGg+PTEmJihhLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHMubGVuZ3RoPTEsYS5jbGF1c2VzLnF1'@; put 'ZXJ5T2JqWzBdLmVsZW1lbnRzPVtdLGEuY2xhdXNlcy5xdWVyeU9ialswXS5lbGVtZW50cy5wdXNoKHtsb2dpYzpudWxsLHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfSksYS53aGVyZUNsYXVzZUZuKCkpKX0p'@; put 'LGEuY29sdW1uc1N1Yj1hLnNhc1N0b3JlU2VydmljZS5jb2x1bW5zLnN1YnNjcmliZShkPT57bGV0IGg9ZC5kYXRhLmNvbHM7ImhvbWUiIT09R24ucm9vdFBhcmFtJiYiZWRpdG9yIiE9PUduLnJvb3RQYXJhbXx8KGEuY29scz1oLGEubGliZHM9ZC5saWJkcyxHbi5lZGl0b3IuZmlsdGVyLmNv'@; put 'bHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShoKSkpLCJ2aWV3Ij09PUduLnJvb3RQYXJhbSYmR24udmlld2VyLmZpbHRlci5jb2xzLmxlbmd0aDwxJiYoYS5jb2xzPWgsYS5saWJkcz1kLmxpYmRzLEduLnZpZXdlci5maWx0ZXIuY29scz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGgp'@; put 'KSksYS5saWJkc3x8KGEubGliZHM9ZC5saWJkcyl9KSxhLnZhbHVlc1N1Yj1hLnNhc1N0b3JlU2VydmljZS52YWx1ZXMuc3Vic2NyaWJlKGQ9PnsoImhvbWUiPT09R24ucm9vdFBhcmFtfHwiZWRpdG9yIj09PUduLnJvb3RQYXJhbSkmJkduLmVkaXRvci5maWx0ZXIudmFscy5sZW5ndGg8MSYm'@; put 'KGEudmFscz1kLnZhbHMsR24uZWRpdG9yLmZpbHRlci52YWxzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZC52YWxzKSkpLCJ2aWV3Ij09PUduLnJvb3RQYXJhbSYmR24udmlld2VyLmZpbHRlci52YWxzLmxlbmd0aDwxJiYoYS52YWxzPWQudmFscyxHbi52aWV3ZXIuZmlsdGVyLnZhbHM9'@; put 'SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkLnZhbHMpKSl9KX0pKCl9b25BdXRvY29tcGxldGVMb2FkaW5nTW9yZShhLGQsaCxmKXt0aGlzLmdldFZhbHVlc0xvYWRNb3JlKGEsZCxoLGYpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuZ2V0RnJvbUdsb2JhbHMoKSxzZXRUaW1lb3V0KCgp'@; put 'PT57bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3ZhbHNfdmFyX2lkMF8wIik7YSYmYS5mb2N1cygpfSw1MDApfW5nT25EZXN0cm95KCl7dGhpcy5jb2x1bW5zU3ViJiZ0aGlzLmNvbHVtbnNTdWIudW5zdWJzY3JpYmUoKSx0aGlzLnZhbHVlc1N1YiYmdGhpcy52YWx1ZXNTdWIudW5z'@; put 'dWJzY3JpYmUoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoYmQpLHR0KHZsKSx0dChUYyksdHQoVWEpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXF1ZXJ5Il1dLGlucHV0czp7Y2FjaGluZzoiY2FjaGluZyIs'@; put 'dmlld2JveElkOiJ2aWV3Ym94SWQifSxmZWF0dXJlczpbdGkoW3twcm92aWRlOktkLHVzZVZhbHVlOiJlbi1HQiJ9XSldLGRlY2xzOjM4LHZhcnM6MTEsY29uc3RzOltbMSwiY2xyLWZsZXgtcm93IiwiY2xyLWZvcm0tY29udHJvbCIsIm0tMCJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIi'@; put 'XSxbImNsckNoZWNrYm94IiwiIiwidHlwZSIsImNoZWNrYm94IiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsxLCJjbHItY29udHJvbC1sYWJlbCJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLCJtbC0xNSJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLCJp'@; put 'ZCIsInVzZVBpY2tlcnMiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwiY2hhbmdlIl0sWzEsImNsci1yb3ciXSxbMSwic2VsZWN0IiwiY2xyLWNvbC1tZC0yIiwibWItMzAiXSxbImNsclNlbGVjdCIsIiIsMywiZGlzYWJsZWQiLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJz'@; put 'ZWxlY3RlZCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNsci1jb2wtbWQtMTAiLCJtYi0zMCJdLFsxLCJsaW5lLW51bWJlcnMiLCJsYW5ndWFnZS1tYXJrdXAiXSxbImNsYXNzIiwicHJvZ3Jlc1N0YXRpYyBwcm9ncmVzcyBsb29wIiw0LCJuZ0lmIl0sWzEsImxhbmd1YWdlLXNxbCJdLFsx'@; put 'LCJjb250ZW50Il0sWzEsImNsYXVzZXMtY29udGFpbmVyIiwiY2xyLWNvbC1tZC0xMiJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsImNsYXVzZS1yb3ciLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsicGlja2VyIiwiIl0sWyJub3RQaWNrZXIiLCIiXSxbIm5vdFBpY2tlclJhbmdlIiwiIl0sWyJjaGVj'@; put 'a2JveFZhbHVlcyIsIiJdLFszLCJzZWxlY3RlZCJdLFsxLCJwcm9ncmVzU3RhdGljIiwicHJvZ3Jlc3MiLCJsb29wIl0sWzEsImNsYXVzZS1yb3ciXSxbMSwiY2xhdXNlLWxvZ2ljIiwiY2xyLWNvbC1tZC0yIl0sWzEsInNlbGVjdCJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsIiwiZGlz'@; put 'YWJsZWQiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2sgbXQtMTAiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEsImNsYXVzZS1xdWVyeSIsImNsci1jb2wtbWQtMTAiXSxbInNoYXBlIiwidGltZXMiLCJzaXplIiwiMzYiLCJjbGFzcyIsInJlbW92'@; put 'ZS1ncm91cC1jbGF1c2UtYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItcm93IiwzLCJpbnZhbGlkLWNsYXVzZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwiYnRuLWJsb2NrIiwibXQtMTAiLDMsImNsaWNrIl0sWyJzaGFwZSIs'@; put 'InBsdXMiXSxbInNoYXBlIiwidGltZXMiLCJzaXplIiwiMzYiLDEsInJlbW92ZS1ncm91cC1jbGF1c2UtYnV0dG9uIiwzLCJjbGljayJdLFsxLCJ2YXJpYWJsZS1jb2wiLCJmb3JtLWdyb3VwIiwiY2xyLWNvbC1tZC0zIl0sWzEsImRhdGFsaXN0LXdyYXBwZXIiXSxbImxhYmVsIiwiVmFyaWFi'@; put 'bGUiLDMsImlkIiwiaW5wdXRJZCIsImVtaXRPbmx5U2VsZWN0ZWQiLCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Il0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJvcGVyYXRvci1jb2wiLCJmb3JtLWdyb3VwIiwiY2xyLWNvbC1tZC0zIl0sWyJjbHJTZWxlY3QiLCIiLDEs'@; put 'Im10LTIiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjbGFzcyIsInZhbHVlLWNvbCBmb3JtLWdyb3VwIGNsci1jb2wtbWQtMyIsNCwibmdWYXIiXSxbMSwiY2xhdXNlLWJ1dHRvbnMiLCJjbHItY29sLW1kLTIiLCJidG4tZ3JvdXAiXSxbMSwiYnRuIiwiYnRuLXdhcm5pbmciLCJi'@; put 'dG4tYmxvY2siLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwibWludXMiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLCJidG4tYmxvY2siLDMsImNsaWNrIl0sWzEsInZhbHVlLWNvbCIsImZvcm0tZ3JvdXAiLCJjbHItY29sLW1kLTMiXSxbImNsYXNzIiwiY2hlY2tib3gtdmFscyIs'@; put 'NCwibmdJZiJdLFsiY2xhc3MiLCJzaW5nbGUtZmllbGQtdmFscyIsNCwibmdJZiJdLFsiY2xhc3MiLCJyYW5nZS12YWxzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNvbnRhaW5zLXZhbHMiLDQsIm5nSWYiXSxbMSwiY2hlY2tib3gtdmFscyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRu'@; put 'LWxpbmsiLDMsImNsaWNrIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJzaW5nbGUtZmllbGQtdmFscyJdLFsxLCJyYW5nZS12YWxzIl0sWzEsImZyb20iXSxbMSwidG8iXSxbMSwiY29udGFpbnMtdmFscyJdLFsidHlwZSIsInRleHQiLDEs'@; put 'ImlucHV0LXZhbCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWyJsYWJlbCIsIlZhbHVlIiwidHlwZSIsImRhdGUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVlIiwidmFsdWVDaGFuZ2UiXSxbImxh'@; put 'YmVsIiwiVmFsdWUiLCJ0eXBlIiwiZGF0ZSIsMywiZGlzYWJsZVNvZnRzZWxlY3QiLCJpbnB1dElkIiwidmFsdWUiLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCJdLFsidHlwZSIsInRpbWUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVlIiwidmFsdWVDaGFuZ2Ui'@; put 'LCJvbklucHV0RXZlbnQiXSxbImxhYmVsIiwiVmFsdWUiLCJ0eXBlIiwidGltZSIsMywiZGlzYWJsZVNvZnRzZWxlY3QiLCJpbnB1dElkIiwidmFsdWUiLCJvbklucHV0RXZlbnQiXSxbImxhYmVsIiwiVmFsdWUiLDMsInNlY29uZExhYmVsIiwiZW1pdE9ubHlTZWxlY3RlZCIsImlucHV0SWQi'@; put 'LCJ2YWx1ZSIsImVuYWJsZUxvYWRNb3JlIiwic2VsZWN0ZWRMYWJlbENoYW5nZSIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Iiwib25BdXRvY29tcGxldGVMb2FkaW5nTW9yZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl0sWzMsInZhbHVlIiw0LCJu'@; put 'Z0lmIl0sWyJsYWJlbCIsIlZhbHVlIiwzLCJpbnB1dElkIiwidmFsdWUiLCJlbmFibGVMb2FkTW9yZSIsImRpc2FibGVkIiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiLCJvbkF1dG9jb21wbGV0ZUxvYWRpbmdNb3JlIl0sWzEsImluLXZhbHVlcy1tb2RhbCIsMywiY2xyTW9kYWxPcGVu'@; put 'IiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWyJjbGFzcyIsIm5vLXZhbHVlcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJmb3JtLWJsb2NrIiw0LCJuZ0lmIl0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwi'@; put 'YnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWzEsIm5vLXZhbHVlcyJdLFsxLCJmb3JtLWJsb2NrIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJkaXYiLDAp'@; put 'KDEsImRpdiIsMSkoMiwiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSgzLCJpbnB1dCIsMikseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmR5bmFtaWNXaGVyZUNsYXVzZT1mfSkseWUoKSxtZSg0LCJsYWJlbCIsMyksTmUoNSwiRHluYW1pYyB3aGVyZSBjbGF1c2UiKSx5'@; put 'ZSgpKCkoKSxtZSg2LCJkaXYiLDQpKDcsImNsci1jaGVja2JveC13cmFwcGVyIikoOCwiaW5wdXQiLDUpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC51c2VQaWNrZXJzPWZ9KSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBkLnVzZVBpY2tlcnNDaGFuZ2UoKX0p'@; put 'LHllKCksbWUoOSwibGFiZWwiLDMpLE5lKDEwLCIgVXNlIHBpY2tlcnMgIikseWUoKSgpKCkoKSxtZSgxMSwiZGl2Iiw2KSgxMiwiZGl2Iiw3KSgxMywiY2xyLXNlbGVjdC1jb250YWluZXIiKSgxNCwibGFiZWwiKSxOZSgxNSwiR3JvdXAgbG9naWMiKSx5ZSgpLG1lKDE2LCJzZWxlY3QiLDgp'@; put 'LHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5ncm91cExvZ2ljPWZ9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zZXRHcm91cExvZ2ljKGQuZ3JvdXBMb2dpYyl9KSxKZSgxNyxqQmUsMiwyLCJvcHRpb24iLDkpLHllKCkoKSgpLG1lKDE4LCJk'@; put 'aXYiLDEwKSgxOSwicHJlIiwxMSksTmUoMjAsIiAgICAgICIpLEplKDIxLHpCZSw0LDAsImRpdiIsMTIpLE5lKDIyLCJcblxuICAgICAgIiksbWUoMjMsImNvZGUiLDEzKSxOZSgyNCkseWUoKSxOZSgyNSwiXG4gICAgIikseWUoKSgpKCksbWUoMjYsImRpdiIsMTQpKDI3LCJkaXYiLDE1KSxK'@; put 'ZSgyOCxVQmUsMSwwLCJkaXYiLDE2KSxKZSgyOSxjamUsMTUsOCwiZGl2IiwxNykseWUoKSgpLEplKDMwLGZqZSw0LDQsIm5nLXRlbXBsYXRlIixudWxsLDE4LGtjKSxKZSgzMixiamUsMyw3LCJuZy10ZW1wbGF0ZSIsbnVsbCwxOSxrYyksSmUoMzQsd2plLDIsNSwibmctdGVtcGxhdGUiLG51'@; put 'bGwsMjAsa2MpLEplKDM2LHhqZSw5LDQsIm5nLXRlbXBsYXRlIixudWxsLDIxLGtjKSksMiZhJiYoQ2UoMyksUmUoIm5nTW9kZWwiLGQuZHluYW1pY1doZXJlQ2xhdXNlKSxDZSg1KSxSZSgibmdNb2RlbCIsZC51c2VQaWNrZXJzKSxDZSg4KSxSZSgiZGlzYWJsZWQiLChudWxsPT1kLmNsYXVz'@; put 'ZXN8fG51bGw9PWQuY2xhdXNlcy5xdWVyeU9iaj9udWxsOmQuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGgpPDEpKCJuZ01vZGVsIixkLmdyb3VwTG9naWMpLENlKDEpLFJlKCJuZ0Zvck9mIixkLmxvZ2ljT3BlcmF0b3JzKSxDZSg0KSxSZSgibmdJZiIsZC53aGVyZUNsYXVzZUxvYWRpbmcpLENl'@; put 'KDMpLG9yKGQud2hlcmVDbGF1c2UpLENlKDMpLGRyKCJjbHItY29sLW1kLTEwIiwobnVsbD09ZC5jbGF1c2VzfHxudWxsPT1kLmNsYXVzZXMucXVlcnlPYmo/bnVsbDpkLmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoKT4xKSxDZSgxKSxSZSgibmdJZiIsKG51bGw9PWQuY2xhdXNlc3x8bnVsbD09'@; put 'ZC5jbGF1c2VzLnF1ZXJ5T2JqP251bGw6ZC5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aCk+MSksQ2UoMSksUmUoIm5nRm9yT2YiLGQuY2xhdXNlcy5xdWVyeU9iaikpfSxkZXBlbmRlbmNpZXM6W3hzLFppLHJkLG5kLHRoLGthLG91LHN1LFVzLEQwLEQ4LFQwLE44LEg4LGwxLGMxLFdhLFMwLE0w'@; put 'LEJzLE9zLE1zZSxVNyxWQmUsQkJlXSxzdHlsZXM6WydAY2hhcnNldCAiVVRGLTgiOy5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5'@; put 'OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLWxvZ2ljW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRl'@; put 'cjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZDojZTllOWU5O3BhZGRpbmc6MTVweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV17cGFkZGlu'@; put 'ZzozMHB4IDAgMjBweCAyMHB4O2JhY2tncm91bmQ6I2ZiZjhmODtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246cmVsYXRpdmV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19u'@; put 'Z2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdID4gLmNsci1yb3dbX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdj'@; put 'b250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5jbHItcm93W19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhc3QtY2hpbGQpe3BhZGRpbmctYm90dG9tOjE1cHg7bWFyZ2luLWJvdHRvbToxNXB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEo'@; put 'MCwwLDAsLjE2KX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAucmVtb3ZlLWdyb3VwLWNsYXVzZS1idXR0b25bX25nY29udGVudC0lQ09NUCVde3Bv'@; put 'c2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjEwcHg7Y29sb3I6Z3JheX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFyaWFibGUtY29sW19u'@; put 'Z2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtwYWRkaW5nLWJvdHRvbToxcHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVu'@; put 'dC0lQ09NUCVdICAgLnZhcmlhYmxlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0YWxpc3Qtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1'@; put 'ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YXJpYWJsZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAg'@; put 'LmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLm9wZXJhdG9yLWNvbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNvbnRlbnRbX25nY29udGVudC0l'@; put 'Q09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLm9wZXJhdG9yLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2VsZWN0LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0'@; put 'OjQ1cHg7bWFyZ2luLXRvcDowO3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV17'@; put 'ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7cGFkZGluZy1ib3R0b206MXB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1'@; put 'ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNoZWNrYm94LXZhbHNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7cGFkZGluZzowIDVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1j'@; put 'b250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jaGVja2JveC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1jaGVja2JveC1jb250YWluZXJbX25nY29udGVu'@; put 'dC0lQ09NUCVde21hcmdpbi10b3A6MH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jaGVj'@; put 'a2JveC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde21heC1oZWlnaHQ6MTIwcHg7b3ZlcmZsb3cteTpzY3JvbGx9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5j'@; put 'bGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19u'@; put 'Z2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVye3dpZHRoOjEwMCV9LmNv'@; put 'bnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0l'@; put 'Q09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6bm9uZX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVD'@; put 'T01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zaW5nbGUtZmllbGQtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyIC5jbHItaW5wdXQtZ3JvdXB7d2lkdGg6MTAwJX0uY29udGVudFtfbmdj'@; put 'b250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zaW5nbGUtZmllbGQtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gPiBp'@; put 'bnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXSAgIC5zaW5nbGUtZmllbGQtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFt0eXBlPXRpbWVdW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MTdweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25n'@; put 'Y29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2Vz'@; put 'LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVye3dpZHRoOjEw'@; put 'MCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVD'@; put 'T01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVye21heC13aWR0aDpub25lfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlciAuY2xyLWlucHV0LWdyb3Vwe3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0l'@; put 'Q09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtfbmdjb250ZW50'@; put 'LSVDT01QJV17bWFyZ2luLWJvdHRvbToxMHB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAg'@; put 'LnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVdID4gaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAg'@; put 'IC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFt0eXBlPXRpbWVdW19uZ2NvbnRlbnQtJUNPTVAlXXt3'@; put 'aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MTdweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAg'@; put 'IC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mcm9tW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAg'@; put 'LnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAudG9bX25nY29udGVudC0lQ09NUCVde21pbi13aWR0aDoxMDBweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0l'@; put 'Q09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mcm9tW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNv'@; put 'bnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0g'@; put 'ICAudG9bX25nY29udGVudC0lQ09NUCVdID4gaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVd'@; put 'ICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFt0eXBlPXRpbWVdW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNs'@; put 'YXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAudG9bX25nY29udGVudC0lQ09NUCVdICAgaW5w'@; put 'dXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjE3cHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVd'@; put 'ICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGFpbnMtdmFsc1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtf'@; put 'bmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250YWlucy12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNv'@; put 'bnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRhaW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5w'@; put 'dXQtd3JhcHBlcnttYXgtd2lkdGg6bm9uZX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5j'@; put 'b250YWlucy12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXIgLmNsci1pbnB1dC1ncm91cHt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50'@; put 'LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRhaW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVdID4gaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29u'@; put 'dGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGFpbnMtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFt0'@; put 'eXBlPXRpbWVdW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MTdweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAu'@; put 'Y2xhdXNlLWJ1dHRvbnNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXJ9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19u'@; put 'Z2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1idXR0b25zW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17bWluLXdpZHRoOmF1dG99LmludmFsaWQtY2xhdXNlW19uZ2NvbnRlbnQtJUNPTVAl'@; put 'XXtib3JkZXItbGVmdDoycHggc29saWQgI2Q5NGIzMX0uY2xhdXNlLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICBjbHItaWNvbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjB9LmNsYXVzZS1yb3dbX25nY29udGVudC0lQ09NUCVdOmFmdGVye3Bvc2l0aW9uOnJlbGF0aXZlO2NvbnRlbnQ6'@; put 'IiI7aGVpZ2h0Oi40MTY2N3JlbTt3aWR0aDouNDE2NjdyZW07dG9wOi4yOTE2N3JlbTtyaWdodDouMjVyZW07YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnXFwyMDI2'@; put 'JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJDMSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjB9W19uZ2Nv'@; put 'bnRlbnQtJUNPTVAlXTpub3QocHJlKSA+IGNvZGVbY2xhc3MqPWxhbmd1YWdlLV1bX25nY29udGVudC0lQ09NUCVdLCBwcmVbY2xhc3MqPWxhbmd1YWdlLV1bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2ZiZjhmOH1wcmVbY2xhc3MqPWxhbmd1YWdlLV1bX25nY29udGVu'@; put 'dC0lQ09NUCVde3BhZGRpbmc6OHB4O21hcmdpbjowO2JvcmRlci1yYWRpdXM6MXB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjY2cHg7cG9zaXRpb246cmVsYXRpdmV9cHJlW2NsYXNzKj1sYW5ndWFnZS1dW19uZ2Nv'@; put 'bnRlbnQtJUNPTVAlXSAgIHNwYW4uc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMHB4O3RvcDoxMHB4fXByZVtjbGFzcyo9bGFuZ3VhZ2UtXSBjb2RlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJy'@; put 'ZWFrLXdvcmR9LmlucHV0LXZhbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjBweDtiYWNrZ3JvdW5kOiNmYmY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzk5OTk5OX1jbHItZGF0ZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MnB4IWltcG9ydGFudH1p'@; put 'bnB1dFt0eXBlPXRpbWVdW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNiM2IzYjN9aW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7b3V0bGluZTpub25lfS5pbi12YWx1ZXMt'@; put 'bW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLm1vZGFsLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLXRvcDoxcHggc29saWQgI2Q4ZDhkODttYXJnaW4tdG9wOjEwcHh9LnByb2dyZXNzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnByb2dyZXNzLXN0YXRpY1tfbmdjb250ZW50LSVD'@; put 'T01QJV17YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt3aWR0aDoxMDAlO2hlaWdodDo0cHg7dG9wOjNweH0nXX0pLGN9KSgpO2NvbnN0IEVqZT1bInNlYXJjaExpYlRyZWVJbnB1dCJdO2Z1bmN0aW9uIGtqZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDkpfWZ1bmN0aW9uIEFqZShj'@; put 'LGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1pY29uIiwxMCkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMik7cmV0dXJuIGgubGlicmFyaWVzU2VhcmNoPSIiLGp0KGgubGlicmFyeU9uRmlsdGVyKCkpfSkseWUoKX19ZnVuY3Rpb24gVGplKGMsbCl7'@; put 'aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIsMykoMSwiZGl2Iiw0KSgyLCJpbnB1dCIsNSw2KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkubGlicmFyaWVzU2VhcmNoPWgpfSkoImtleXVwIixmdW5jdGlvbigpe3Jl'@; put 'dHVybiBCdChhKSxqdChWZSgpLmxpYnJhcnlPbkZpbHRlcigpKX0pLHllKCksSmUoNCxramUsMSwwLCJjbHItaWNvbiIsNyksSmUoNSxBamUsMSwwLCJjbHItaWNvbiIsOCkseWUoKSgpfWlmKDImYyl7Y29uc3QgYT0kaSgzKSxkPVZlKCk7Q2UoMiksUmUoIm5nTW9kZWwiLGQubGlicmFyaWVz'@; put 'U2VhcmNoKSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBEamUoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiw5KX1mdW5jdGlvbiBJamUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJj'@; put 'bHItaWNvbiIsMTApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKSxWZSgpO2NvbnN0IGg9JGkoMyksZj1WZSgyKS4kaW1wbGljaXQsXz1WZSgpO3JldHVybiBoLnZhbHVlPSIiLGYuc2VhcmNoU3RyaW5nPSIiLGp0KF8udHJlZU9uRmlsdGVyKGYsInRhYmxlcy5UQUJMRU5BTUUiKSl9KSx5'@; put 'ZSgpfX1mdW5jdGlvbiBMamUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwzKSgxLCJkaXYiLDQpKDIsImlucHV0IiwxNywxOCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgyKS4kaW1wbGljaXQuc2VhcmNo'@; put 'U3RyaW5nPWgpfSkoImtleXVwIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMikuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLnRyZWVPbkZpbHRlcihoLCJ0YWJsZXMiKSl9KSx5ZSgpLEplKDQsRGplLDEsMCwiY2xyLWljb24iLDcpLEplKDUsSWplLDEsMCwiY2xyLWljb24iLDgpLHll'@; put 'KCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMyksZD1WZSgyKS4kaW1wbGljaXQ7Q2UoMiksUmUoIm5nTW9kZWwiLGQuc2VhcmNoU3RyaW5nKSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBSamUoYyxs'@; put 'KXsxJmMmJnF0KDAsImNsci1pY29uIiwyNil9ZnVuY3Rpb24gT2plKGMsbCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsMjcpfWZ1bmN0aW9uIFBqZShjLGwpezEmYyYmKG1lKDAsInNwYW4iKSxOZSgxLCIgVG8gdW5sb2NrIGFsbCB0YWJsZXMsIGNvbnRhY3Qgc3VwcG9ydEBkYXRhY29udHJvbGxl'@; put 'ci5pbyAiKSx5ZSgpKX1mdW5jdGlvbiBGamUoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdG9vbHRpcC1jb250ZW50IiwyOCksSmUoMSxQamUsMiwwLCJzcGFuIiwyNSkseWUoKSksMiZjKXtjb25zdCBhPVZlKCkubmdWYXI7Q2UoMSksUmUoIm5nSWYiLGEpfX1mdW5jdGlvbiBIamUoYyxsKXsx'@; put 'JmMmJnF0KDAsImNsci1pY29uIiw5KX1mdW5jdGlvbiBOamUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItaWNvbiIsMTApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKSxWZSgpO2NvbnN0IGg9JGkoMyksZj1WZSgzKS4kaW1wbGljaXQsXz1WZSgzKTtyZXR1cm4gaC52'@; put 'YWx1ZT0iIixmLnNlYXJjaFN0cmluZz0iIixqdChfLnRyZWVPbkZpbHRlcihmLCJjb2x1bW5zLkNPTE5BTUUiKSl9KSx5ZSgpfX1mdW5jdGlvbiBWamUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwzKSgxLCJkaXYiLDQpKDIsImlucHV0IiwyOSwxOCks'@; put 'eHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgzKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPWgpfSkoImtleXVwIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMykuJGltcGxpY2l0O3JldHVybiBqdChWZSgzKS50cmVlT25GaWx0ZXIoaCwiY29s'@; put 'dW1ucy5DT0xOQU1FIikpfSkseWUoKSxKZSg0LEhqZSwxLDAsImNsci1pY29uIiw3KSxKZSg1LE5qZSwxLDAsImNsci1pY29uIiw4KSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPSRpKDMpLGQ9VmUoMykuJGltcGxpY2l0O0NlKDIpLFJlKCJuZ01vZGVsIixkLnNlYXJjaFN0cmluZyksQ2UoMiks'@; put 'UmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPDEpLENlKDEpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gQmplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIpKDEsImJ1dHRvbiIsMzApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25z'@; put 'dCBmPUJ0KGEpLiRpbXBsaWNpdCxfPVZlKDMpLiRpbXBsaWNpdCxUPVZlKDIpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS5jb2x1bW5PbkNsaWNrKGYsVCxfKSl9KSxxdCgyLCJjbHItaWNvbiIsMzEpLE5lKDMpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSg2KTtD'@; put 'ZSgxKSxkcigiY29sdW1uLWFjdGl2ZSIsZC5saWJDb2x1bW5BY3RpdmUoYS5DT0xVUkkpKSxDZSgyKSxncigiICIsYS5DT0xOQU1FLCIgIil9fWZ1bmN0aW9uIGpqZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsVmplLDYsMywiY2xyLXRyZWUtbm9kZSIsMCksSmUoMixCamUsNCwzLCJjbHIt'@; put 'dHJlZS1ub2RlIiwxKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoMikuJGltcGxpY2l0O0NlKDEpLFJlKCJuZ0lmIixhLmNvbHVtbnMpLENlKDEpLFJlKCJuZ0Zvck9mIixhLmNvbHVtbnMpfX1mdW5jdGlvbiB6amUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdG9vbHRpcCIp'@; put 'KDEsImJ1dHRvbiIsMjApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLm5nVmFyLF89VmUoKS4kaW1wbGljaXQsVD1WZSgyKS4kaW1wbGljaXQsVz1WZSgpO3JldHVybiBqdChmPyIiOlcudGFibGVPbkNsaWNrKF8uVEFCTEVVUkksXyxUKSl9KSxWcigyLDIxKSxKZSgzLFJq'@; put 'ZSwxLDAsImNsci1pY29uIiwyMiksSmUoNCxPamUsMSwwLCJjbHItaWNvbiIsMjMpLHpyKCksTmUoNSkseWUoKSxKZSg2LEZqZSwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDI0KSxKZSg3LGpqZSwzLDIsIm5nLWNvbnRhaW5lciIsMjUpLHllKCl9aWYoMiZjKXtjb25zdCBhPWwubmdWYXIs'@; put 'ZD1WZSgpLiRpbXBsaWNpdCxoPVZlKDIpLiRpbXBsaWNpdCxmPVZlKCk7Q2UoMSksZHIoImRjLWxvY2tlZC1jb250cm9sIixhKSgidGFibGUtYWN0aXZlIixmLmxpYlRhYkFjdGl2ZShoLkxJQlJBUllSRUYsZCkpLENlKDEpLFJlKCJuZ1N3aXRjaCIsZC5pbmNsdWRlcygiLUZDIikpLENlKDEp'@; put 'LFJlKCJuZ1N3aXRjaENhc2UiLCEwKSxDZSgxKSxSZSgibmdTd2l0Y2hDYXNlIiwhMSksQ2UoMSksZ3IoIiAiLGQucmVwbGFjZSgiLUZDIiwiIiksIiAiKSxDZSgyKSxSZSgibmdJZiIsZi5oYXNDb2x1bW5zKX19ZnVuY3Rpb24gVWplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwi'@; put 'Y2xyLXRyZWUtbm9kZSIsMTIpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7Y29uc3QgXz1CdChhKS4kaW1wbGljaXQsVD1WZSgyKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkudHJlZU5vZGVDbGlja2VkKGgsXyxULnRhYmxlcykpfSkoImNsckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbihoKXty'@; put 'ZXR1cm4ganQoQnQoYSkuJGltcGxpY2l0LmV4cGFuZGVkPWgpfSksSmUoMSx6amUsOCw5LCJjbHItdG9vbHRpcCIsMTkpLHllKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9bC5pbmRleCxoPVZlKDMpO2RyKCJjbHItZXhwYW5kZWQiLGEuZXhwYW5kZWQpLFJlKCJjbHJFeHBhbmRl'@; put 'ZCIsYS5leHBhbmRlZCkoImNsckxvYWRpbmciLGEubG9hZGluZ0NvbHVtbnMmJiFhLmNvbHVtbnMpLENlKDEpLFJlKCJuZ1ZhciIsZCsxPmgubGljZW5jZVN0YXRlLnZhbHVlLnRhYmxlc19pbl9saWJyYXJ5X2xpbWl0KX19ZnVuY3Rpb24gWmplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7'@; put 'bWUoMCwiY2xyLXRyZWUtbm9kZSIsMTIsMTMpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7QnQoYSk7Y29uc3QgZj1WZSgpLiRpbXBsaWNpdCxfPVZlKCk7cmV0dXJuIGp0KF8udHJlZU5vZGVDbGlja2VkKGgsZixfLmxpYnJhcnlMaXN0KSl9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9u'@; put 'KGgpe3JldHVybiBCdChhKSxqdChWZSgpLiRpbXBsaWNpdC5leHBhbmRlZD1oKX0pLG1lKDIsInAiLDE0KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD0kaSgxKSxmPVZlKCkuJGltcGxpY2l0LF89VmUoKTtyZXR1cm4gXy5saWI9Zi5MSUJSQVJZSUQsanQoXy5saWJyYXJ5'@; put 'T25DbGljayhfLmxpYnx8IiIsZixoKSl9KSxxdCgzLCJjbHItaWNvbiIsMTUpLE5lKDQpLHllKCksSmUoNSxMamUsNiwzLCJjbHItdHJlZS1ub2RlIiwwKSxKZSg2LFVqZSwyLDUsImNsci10cmVlLW5vZGUiLDE2KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdDtkcigiY2xy'@; put 'LWV4cGFuZGVkIixhLmV4cGFuZGVkKSxSZSgiY2xyRXhwYW5kZWQiLGEuZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixhLmxvYWRpbmdUYWJsZXMmJiFhLnRhYmxlcyksQ2UoNCksZ3IoIiAiLGEuTElCUkFSWU5BTUUsIiAiKSxDZSgxKSxSZSgibmdJZiIsYS50YWJsZXMpLENlKDEpLFJlKCJuZ0Zv'@; put 'ck9mIixhLnRhYmxlcyl9fWZ1bmN0aW9uIFlqZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsWmplLDcsNywiY2xyLXRyZWUtbm9kZSIsMTEpLHpyKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgxKSxSZSgibmdJZiIsIWEuaGlkZGVuJiZhLmluRm9yZWdyb3VuZCl9fWZ1bmN0aW9u'@; put 'IFdqZShjLGwpezEmYyYmKG1lKDAsImRpdiIsMzIpKDEsInNwYW4iLDMzKSxOZSgyLCIgTG9hZGluZy4uLiAiKSx5ZSgpKCkpfWxldCBHamU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuaGVscGVyU2VydmljZT1hLHRoaXMubGljZW5jZVNlcnZpY2U9ZCx0aGlzLnNlYXJj'@; put 'aExpYklucHV0TGlzdD1uZXcgZWgsdGhpcy50YWJsZU9uQ2xpY2tFbWl0dGVyPW5ldyBFcix0aGlzLmxpYnJhcnlPbkNsaWNrRW1pdHRlcj1uZXcgRXIsdGhpcy5oYXNDb2x1bW5zPSExLHRoaXMucGFnaW5nPSEwLHRoaXMubGlicmFyaWVzU2VhcmNoPSIiLHRoaXMubGliPSIiLHRoaXMudGFi'@; put 'bGU9IiIsdGhpcy5saWJyYXJpZXNQYWdpbmc9ITEsdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGV9bmdPbkluaXQoKXt9bmdBZnRlclZpZXdJbml0KCl7c2V0VGltZW91dCgoKT0+e3RoaXMuc2VhcmNoTGliSW5wdXRMaXN0LmZpcnN0Lm5hdGl2ZUVs'@; put 'ZW1lbnQuZm9jdXMoKX0pfW5nT25DaGFuZ2VzKGEpe2EubGlicmFyeUxpc3Q/LmN1cnJlbnRWYWx1ZSYmdGhpcy5saWJyYXJ5TGlzdCYmdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJ5TGlzdCl9dHJlZU9uRmlsdGVyKGEsZCl7dGhpcy5oZWxwZXJTZXJ2'@; put 'aWNlLnRyZWVPbkZpbHRlcihhLGQpfWxpYnJhcnlPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5saWJyYXJ5TGlzdCx0aGlzLmxpYnJhcmllc1NlYXJjaCwiTElCUkFSWU5BTUUiKSxHbi5saW5lYWdlLmxpYnJhcmllc1NlYXJjaD10aGlzLmxpYnJh'@; put 'cmllc1NlYXJjaH10cmVlTm9kZUNsaWNrZWQoYSxkLGgpeyJDb2xsYXBzZSI9PT1hLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZVRyZWVJdGVtcyhoLGQpfWxpYnJhcnlPbkNsaWNrKGEsZCxoKXtkLmluRm9yZWdyb3VuZD0hMDtjb25zdCBmPSgpPT5zZXRUaW1lb3V0KCgpPT5oLmNvbnRl'@; put 'bnRDb250YWluZXIubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKSk7aWYoZC50YWJsZXMpZC5leHBhbmRlZD0hZC5leHBhbmRlZCx0aGlzLmxpYnJhcnlPbkNsaWNrRW1pdHRlci5lbWl0KHtsaWJpZDphLGxpYnJhcnk6ZCx0YWJsZXNM'@; put 'b2FkZWQ6ITB9KTtlbHNle2QubG9hZGluZ1RhYmxlcz0hMCx0aGlzLmxpYnJhcnlPbkNsaWNrRW1pdHRlci5lbWl0KHtsaWJpZDphLGxpYnJhcnk6ZCx0YWJsZXNMb2FkZWQ6ITF9KTtjb25zdCBfPXNldEludGVydmFsKCgpPT57ZC5sb2FkaW5nVGFibGVzfHwoZigpLGNsZWFySW50ZXJ2YWwo'@; put 'XykpfSw1MDApfWQuZXhwYW5kZWQmJmYoKSx0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKHRoaXMubGlicmFyeUxpc3QsZCl9dGFibGVPbkNsaWNrKGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtmLmhlbHBlclNlcnZpY2UuZGVib3VuY2VDYWxsKDUwLCgpPT57Zi5oYXND'@; put 'b2x1bW5zPyhkLmNvbHVtbnM/KGQuZXhwYW5kZWQ9IWQuZXhwYW5kZWQsITA9PT1kLmV4cGFuZGVkJiYoZi50YWJsZT1hLGYudGFibGVPbkNsaWNrRW1pdHRlci5lbWl0KHt0YWJsZXVyaTphLGxpYlRhYmxlOmQsbGlicmFyeTpoLGNvbHVtbnNMb2FkZWQ6ITB9KSkpOihkLmV4cGFuZGVkPSFk'@; put 'LmV4cGFuZGVkLGQubG9hZGluZ0NvbHVtbnM9ITAsZi50YWJsZT1hLGYudGFibGVPbkNsaWNrRW1pdHRlci5lbWl0KHt0YWJsZXVyaTphLGxpYlRhYmxlOmQsbGlicmFyeTpoLGNvbHVtbnNMb2FkZWQ6ITF9KSksZi5jb2xsYXBzZVRyZWVJdGVtcyhoLnRhYmxlcyxkKSk6Zi50YWJsZU9uQ2xp'@; put 'Y2tFbWl0dGVyLmVtaXQoe3RhYmxldXJpOmEsbGliVGFibGU6ZCxsaWJyYXJ5OmgsY29sdW1uc0xvYWRlZDohMX0pfSl9KSgpfWNvbHVtbk9uQ2xpY2soYSxkLGgpe3RoaXMubGliPWQuTElCUkFSWUlELHRoaXMudGFibGU9aC5UQUJMRVVSSSx0aGlzLmNvbHVtbj1hLkNPTFVSSX1saWJUYWJB'@; put 'Y3RpdmUoYSxkKXtyZXR1cm4hKCF0aGlzLmxpYnx8IXRoaXMudGFibGUpJiZhPT09dGhpcy5saWImJmQ9PT10aGlzLnRhYmxlfWxpYkNvbHVtbkFjdGl2ZShhKXtpZighdGhpcy5jb2x1bW4pcmV0dXJuITE7bGV0IGQ9YS5zcGxpdCgiXFwiKSxoPXRoaXMuY29sdW1uLnNwbGl0KCJcXCIpO3Jl'@; put 'dHVybiBkW2QubGVuZ3RoLTFdPT1oW2gubGVuZ3RoLTFdfWNvbGxhcHNlVHJlZUl0ZW1zKGEsZCl7YS5mb3JFYWNoKGg9PntKU09OLnN0cmluZ2lmeShoKSE9PUpTT04uc3RyaW5naWZ5KGQpJiYoaC5leHBhbmRlZD0hMSl9KX1sb2FkTW9yZUxpYnJhcmllcygpe3RoaXMubGlicmFyaWVzUGFn'@; put 'aW5nfHwodGhpcy5saWJyYXJpZXNQYWdpbmc9ITAsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJ5TGlzdCwhMCksdGhpcy5saWJyYXJpZXNQYWdpbmc9ITEpfWhhbmRsZVNjcm9sbChhKXtsZXQgZD1hLnRhcmdldDtkJiZkLnNjcm9sbFRvcD49ZC5zY3Jv'@; put 'bGxIZWlnaHQtZC5vZmZzZXRIZWlnaHQtMTAmJnRoaXMubG9hZE1vcmVMaWJyYXJpZXMoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVGMpLHR0KEMwKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImRjLXRyZWUiXV0s'@; put 'dmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZSbyhFamUsNSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5zZWFyY2hMaWJJbnB1dExpc3Q9aCl9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJnh0KCJzY3JvbGwiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmhhbmRsZVNj'@; put 'cm9sbChmKX0pfSxpbnB1dHM6e2hhc0NvbHVtbnM6Imhhc0NvbHVtbnMiLHBhZ2luZzoicGFnaW5nIixsaWJyYXJ5TGlzdDoibGlicmFyeUxpc3QifSxvdXRwdXRzOnt0YWJsZU9uQ2xpY2tFbWl0dGVyOiJ0YWJsZU9uQ2xpY2tFbWl0dGVyIixsaWJyYXJ5T25DbGlja0VtaXR0ZXI6ImxpYnJh'@; put 'cnlPbkNsaWNrRW1pdHRlciJ9LGZlYXR1cmVzOlt2YV0sZGVjbHM6NCx2YXJzOjMsY29uc3RzOltbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2Rl'@; put 'Il0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIs'@; put 'IiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xp'@; put 'Y2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIl0sWyJsaWJUcmVlTm9kZSIsIiJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwicmFjay1z'@; put 'ZXJ2ZXIiXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiVGFibGVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBs'@; put 'ZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hUcmVlSW5wdXQiLCIiXSxbNCwibmdWYXIiXSxbImNsclRvb2x0aXBUcmlnZ2VyIiwiIiwxLCJjbHItdHJlZW5vZGUtbGluayIsMywiY2xpY2siXSxbMywibmdTd2l0Y2giXSxbInNoYXBlIiwi'@; put 'Ym9sdCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJzaGFwZSIsInRhYmxlIiw0LCJuZ1N3aXRjaENhc2UiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0IiwiY2xyU2l6ZSIsImxnIiw0LCJjbHJJZk9wZW4iXSxbNCwibmdJZiJdLFsic2hhcGUiLCJib2x0Il0sWyJzaGFwZSIsInRhYmxlIl0s'@; put 'WyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCIsImNsclNpemUiLCJsZyJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkNvbHVtbnMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbMSwiY2xy'@; put 'LXRyZWVub2RlLWxpbmsiLDMsImNsaWNrIl0sWyJzaGFwZSIsIm9iamVjdHMiXSxbMSwidy0xMDAiLCJ0ZXh0LWNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImNsci10cmVlIiksSmUoMSxUamUsNiwzLCJjbHIt'@; put 'dHJlZS1ub2RlIiwwKSxKZSgyLFlqZSwyLDEsIm5nLWNvbnRhaW5lciIsMSkseWUoKSxKZSgzLFdqZSwzLDAsImRpdiIsMikpLDImYSYmKENlKDEpLFJlKCJuZ0lmIixkLmxpYnJhcnlMaXN0KSxDZSgxKSxSZSgibmdGb3JPZiIsZC5saWJyYXJ5TGlzdCksQ2UoMSksUmUoIm5nSWYiLGQubGli'@; put 'cmFyaWVzUGFnaW5nKSl9LGRlcGVuZGVuY2llczpbeHMsWmksbmQsdGgsZGQsZzEsRHAsa2EsWnUsYzIsZjEsamIsVWIsemIsV2EsQnMsT3MsVTddLHN0eWxlczpbImNsci10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFj'@; put 'ZTpub3dyYXB9Y2xyLXRyZWVbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLXRyZWUtbm9kZS1jb250ZW50LWNvbnRhaW5lcjpmb2N1cyAuY2xyLXRyZWVub2RlLWxpbmt7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLXRyZWUtbGluay1ob3Zlci1jb2xvciwgI2U4'@; put 'ZThlOCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Il19KSxjfSkoKTtjb25zdCAkamU9WyJyZXNpemVCb3giXSxxamU9WyJkcmFnSGFuZGxlQ29ybmVyIl07ZnVuY3Rpb24gS2plKGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIsMzIpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDEp'@; put 'LHpjKCJUbyB1bmxvY2sgbW9yZSB0aGVuICIsYS5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveF9saW1pdCwiICIsMT09PWEubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdib3hfbGltaXQ/InZpZXdib3giOiJ2aWV3Ym94ZXMiLCIsIGNvbnRhY3Qgc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIp'@; put 'fX1mdW5jdGlvbiBYamUoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDMzKSxxdCgxLCJjbHItc3Bpbm5lciIsMzQpLHllKCkpfWZ1bmN0aW9uIEpqZShjLGwpezEmYyYmKG1lKDAsInAiLDM1KSxOZSgxLCIgVmlld2JveCBvcGVuIGxpbWl0IHJlYWNoZWQgIikseWUoKSl9ZnVuY3Rpb24gUWplKGMs'@; put 'bCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGMtdHJlZSIsMzYpLHh0KCJsaWJyYXJ5T25DbGlja0VtaXR0ZXIiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLmxpYnJhcnlPbkNsaWNrKGgpKX0pKCJ0YWJsZU9uQ2xpY2tFbWl0dGVyIixmdW5jdGlvbihoKXtyZXR1cm4g'@; put 'QnQoYSksanQoVmUoKS50YWJsZU9uQ2xpY2soaCkpfSkseWUoKX0yJmMmJlJlKCJsaWJyYXJ5TGlzdCIsVmUoKS5saWJyYXJpZXMpfWZ1bmN0aW9uIGV6ZShjLGwpezEmYyYmKG1lKDAsInAiLDM3KSxOZSgxLCIgUGljayB0YWJsZSBmcm9tIHRoZSBsaXN0IG9uIHRoZSBsZWZ0ICIpLHllKCkp'@; put 'fWZ1bmN0aW9uIHR6ZShjLGwpezEmYyYmcXQoMCwiY2xyLXNwaW5uZXIiLDQ1KX1mdW5jdGlvbiBuemUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJhIiwxMikseHQoImNsaWNrIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCkuJGltcGxpY2l0LF89VmUoKTtyZXR1cm4g'@; put 'Xy5taW5pbWl6ZShmKSxqdChfLnN0b3BQcm9wYWdhdGlvbihoKSl9KSxxdCgxLCJjbHItaWNvbiIsMTUpLG1lKDIsInNwYW4iLDE0KSxOZSgzLCJNaW5pbWl6ZSB2aWV3Ym94IikseWUoKSgpfX1mdW5jdGlvbiByemUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJhIiwxMikseHQo'@; put 'ImNsaWNrIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCkuJGltcGxpY2l0LF89VmUoKTtyZXR1cm4gXy5yZXN0b3JlKGYpLGp0KF8uc3RvcFByb3BhZ2F0aW9uKGgpKX0pLHF0KDEsImNsci1pY29uIiwxNiksbWUoMiwic3BhbiIsMTQpLE5lKDMsIlJlc3RvcmUgdmlld2JveCIpLHll'@; put 'KCkoKX19ZnVuY3Rpb24gaXplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwzOCkseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLnNlbGVjdFZpZXdib3goZikpfSksbWUoMSwiZGl2IiwzOSksTmUoMiksSmUo'@; put 'Myx0emUsMSwwLCJjbHItc3Bpbm5lciIsNDApLHllKCksbWUoNCwiZGl2IikoNSwiYSIsNDEpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7Y29uc3QgXz1CdChhKS4kaW1wbGljaXQsVD1WZSgpO3JldHVybiBULnJlc2V0UG9zU2l6ZShfKSxqdChULnN0b3BQcm9wYWdhdGlvbihoKSl9KSxxdCg2'@; put 'LCJjbHItaWNvbiIsNDIpLG1lKDcsInNwYW4iLDE0KSxOZSg4LCJSZXNldCBwb3NpdGlvbiBhbmQgc2l6ZSIpLHllKCkoKSxKZSg5LG56ZSw0LDAsImEiLDQzKSxKZSgxMCxyemUsNCwwLCJhIiw0MyksbWUoMTEsImEiLDEyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKGgpe2NvbnN0IF89QnQoYSku'@; put 'JGltcGxpY2l0LFQ9VmUoKTtyZXR1cm4gVC5jbG9zZShfKSxqdChULnN0b3BQcm9wYWdhdGlvbihoKSl9KSxxdCgxMiwiY2xyLWljb24iLDQ0KSxtZSgxMywic3BhbiIsMTQpLE5lKDE0LCJDbG9zZSB2aWV3Ym94IikseWUoKSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1W'@; put 'ZSgpO2RyKCJzZWxlY3RlZCIsKG51bGw9PWQuc2VsZWN0ZWRWaWV3Ym94P251bGw6ZC5zZWxlY3RlZFZpZXdib3guaWQpPT09YS5pZCksQ2UoMiksYjAoIiAjIixhLmlkLCIgIixhLmxpYnJhcnksIi4iLGEudGFibGUsIiAiKSxDZSgxKSxSZSgibmdJZiIsYS5sb2FkaW5nRGF0YSksQ2UoMiks'@; put 'ZHIoImRpc2FibGVkIiwwPT09YS54JiYwPT09YS55KSxDZSg0KSxSZSgibmdJZiIsIWEubWluaW1pemVkKSxDZSgxKSxSZSgibmdJZiIsYS5taW5pbWl6ZWQpfX1mdW5jdGlvbiBvemUoYyxsKXtpZigxJmMmJihtZSgwLCJvcHRpb24iKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1w'@; put 'bGljaXQ7Q2UoMSksZ3IoIiAiLGEsIiAiKX19ZnVuY3Rpb24gc3plKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7VnIoMCksbWUoMSwiZGl2Iiw0OCkoMiwiYXBwLWF1dG9jb21wbGV0ZSIsNDksNTApLHh0KCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7QnQoYSk7Y29uc3QgZj0kaSgzKSxf'@; put 'PVZlKCkubmdWYXI7cmV0dXJuIGp0KFZlKCkub25Db2xzZWFyY2hDaGFuZ2UoZixoLF8uY29sSGVhZGVyc0hpZGRlbikpfSksSmUoNCxvemUsMiwxLCJvcHRpb24iLDUxKSx5ZSgpKCksenIoKX1pZigyJmMpe2NvbnN0IGE9VmUoKS5uZ1ZhcjtDZSgyKSxSZSgiaW5wdXRJZCIsInZpZXdib3gt'@; put 'Y29sdW1uLXNlYXJjaCIpKCJlbWl0T25seVNlbGVjdGVkIiwhMCksQ2UoMiksUmUoIm5nRm9yT2YiLGEuY29sSGVhZGVyc0hpZGRlbil9fWZ1bmN0aW9uIGF6ZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDU3KX1mdW5jdGlvbiBsemUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgw'@; put 'LCJjbHItaWNvbiIsNTgpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKCkuJGltcGxpY2l0O3JldHVybiBqdChWZSgzKS5vbkNvbFJlbW92ZShoKSl9KSx5ZSgpfX1mdW5jdGlvbiBjemUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDU0KSgxLCJzcGFuIiksTmUoMiks'@; put 'SmUoMyxhemUsMSwwLCJjbHItaWNvbiIsNTUpLHllKCksSmUoNCxsemUsMSwwLCJjbHItaWNvbiIsNTYpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPVZlKDIpLm5nVmFyLGg9VmUoKTtGTSgiY29sLWJveCBjb2x1bW4tIixhLCIiKSxkcigiY3Vyc29yLWRlZmF1bHQtaSIsZC5o'@; put 'ZWFkZXJQa3MuaW5jbHVkZXMoYSkpKCJwcmltYXJ5S2V5SGVhZGVyU3R5bGUiLGQuaGVhZGVyUGtzLmluY2x1ZGVzKGEpKSxSZSgiY2RrRHJhZ0RhdGEiLGEpKCJjZGtEcmFnRGlzYWJsZWQiLGQuaGVhZGVyUGtzLmluY2x1ZGVzKGEpKSxDZSgyKSx6YygiICIsYSwiICIsIm51bSI9PT0obnVs'@; put 'bD09aC5zZWxlY3RlZFZpZXdib3hUYWJsZXx8bnVsbD09aC5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJsZT9udWxsOmguc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUuJGRhdGFmb3JtYXRzLnZhcnNbYV0udHlwZSk/IihudW1lcmljKSI6IiIsIiAiKSxDZSgxKSxSZSgibmdJZiIs'@; put 'ZC5oZWFkZXJQa3MuaW5jbHVkZXMoYSkpLENlKDEpLFJlKCJuZ0lmIiwhZC5oZWFkZXJQa3MuaW5jbHVkZXMoYSkpfX1mdW5jdGlvbiB1emUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJwIiw1KSxOZSgyLCJDb2x1bW5zIFRvIERpc3BsYXkgKGRyYWcgYW5kIHJlLW9y'@; put 'ZGVyKSIpLHllKCksbWUoMywiZGl2Iiw1MikseHQoImNka0Ryb3BMaXN0RHJvcHBlZCIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmNvbHVtbnNEcm9wKGgpKX0pLEplKDQsY3plLDUsMTMsImRpdiIsNTMpLHllKCksenIoKX1pZigyJmMpe2NvbnN0IGE9VmUoKS5uZ1ZhcjtD'@; put 'ZSgzKSxSZSgiY2RrRHJvcExpc3REYXRhIixhLmNvbEhlYWRlcnNWaXNpYmxlKSxDZSgxKSxSZSgibmdGb3JPZiIsYS5jb2xIZWFkZXJzVmlzaWJsZSl9fWZ1bmN0aW9uIGR6ZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsNDYpLEplKDEsc3plLDUsMywibmctY29udGFpbmVyIiw0NyksSmUo'@; put 'Mix1emUsNSwyLCJuZy1jb250YWluZXIiLDQ3KSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC5uZ1ZhcjtDZSgxKSxSZSgibmdJZiIsYS5jb2xIZWFkZXJzSGlkZGVuKSxDZSgxKSxSZSgibmdJZiIsYS5jb2xIZWFkZXJzVmlzaWJsZSl9fWZ1bmN0aW9uIGh6ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1W'@; put 'bigpO21lKDAsImNsci1pY29uIiw4NSkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkuY29sbGFwc2UoaCkpfSkseWUoKX19ZnVuY3Rpb24gZnplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWljb24i'@; put 'LDg2KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS5leHBhbmQoaCkpfSkseWUoKX19ZnVuY3Rpb24gcHplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWljb24iLDg3KSx4dCgiY2xpY2siLGZ1bmN0'@; put 'aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpLiRpbXBsaWNpdCxmPSRpKDE2KTtyZXR1cm4ganQoVmUoKS5zZWFyY2hUYWJsZShmLGgpKX0pLHllKCl9fWZ1bmN0aW9uIGd6ZShjLGwpezEmYyYmKG1lKDAsInNwYW4iLDg4KSxOZSgxLCIgTG9hZGluZy4uLiAiKSx5ZSgpKX1mdW5jdGlvbiBtemUo'@; put 'YyxsKXsxJmMmJihtZSgwLCJzcGFuIiw4OSksTmUoMSwiTG9hZGluZy4uLiIpLHllKCkpfWZ1bmN0aW9uIHZ6ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1pY29uIiw5MCkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKS4kaW1wbGljaXQsZj0k'@; put 'aSgxNik7cmV0dXJuIFZlKCkucmVsb2FkVGFibGVEYXRhKGgpLGp0KGYudmFsdWU9IiIpfSkseWUoKX19ZnVuY3Rpb24gX3plKGMsbCl7MSZjJiYobWUoMCwiZGl2Iiw5NCkscXQoMSwiY2xyLXNwaW5uZXIiLDM0KSx5ZSgpKX1mdW5jdGlvbiBiemUoYyxsKXtpZigxJmMmJnF0KDAsImhvdC10'@; put 'YWJsZSIsOTUpLDImYyl7Y29uc3QgYT1WZSgpLm5nVmFyLGQ9VmUoKS4kaW1wbGljaXQsaD1WZSgpO1JlKCJob3RJZCIsImhvdEluc3RhbmNlX3ZpZXdib3hfIitkLmlkKSgicmVhZE9ubHkiLCEwKSgibW9kaWZ5Q29sV2lkdGgiLGgubWF4V2lkdGhDaGVrZXIpKCJjb3B5UGFzdGUiLGgudmll'@; put 'd2JveFRhYmxlc1thXS5ob3RUYWJsZS5jb3B5UGFzdGUpKCJjb250ZXh0TWVudSIsaC52aWV3Ym94VGFibGVzW2FdLmhvdFRhYmxlLmNvbnRleHRNZW51KSgibXVsdGlDb2x1bW5Tb3J0aW5nIiwhMCkoInZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0Iiw1MCkoImRhdGEiLGgudmlld2JveFRh'@; put 'Ymxlc1thXS5ob3RUYWJsZS5kYXRhKSgiY29sSGVhZGVycyIsaC52aWV3Ym94VGFibGVzW2FdLmhvdFRhYmxlLmNvbEhlYWRlcnMpKCJjb2x1bW5zIixoLnZpZXdib3hUYWJsZXNbYV0uaG90VGFibGUuY29sdW1ucykoImZpbHRlcnMiLCEwKSgiZHJvcGRvd25NZW51IixoLnZpZXdib3hUYWJs'@; put 'ZXNbYV0uaG90VGFibGUuZHJvcGRvd25NZW51KSgiaGVpZ2h0IixoLnZpZXdib3hUYWJsZXNbYV0uaG90VGFibGUuaGVpZ2h0KSgiY2VsbHMiLGgudmlld2JveFRhYmxlc1thXS5ob3RUYWJsZS5jZWxscykoIm1heFJvd3MiLGgudmlld2JveFRhYmxlc1thXS5ob3RUYWJsZS5tYXhSb3dzKSgi'@; put 'bWFudWFsQ29sdW1uUmVzaXplIiwhMCkoImxpY2Vuc2VLZXkiLGgudmlld2JveFRhYmxlc1thXS5ob3RUYWJsZS5saWNlbnNlS2V5KX19ZnVuY3Rpb24geXplKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw5MSksSmUoMSxfemUsMiwwLCJkaXYiLDkyKSxKZSgyLGJ6ZSwxLDE3LCJob3QtdGFi'@; put 'bGUiLDkzKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC5uZ1ZhcixkPVZlKCkuJGltcGxpY2l0O0h1KCJkaXNwbGF5IixkLmNvbGxhcHNlZD8ibm9uZSI6IiIpLENlKDEpLFJlKCJuZ0lmIixkLmxvYWRpbmdEYXRhJiZhPDApLENlKDEpLFJlKCJuZ0lmIixhPi0xKX19Y29uc3Qgd3plPWZ1bmN0aW9u'@; put 'KGMsbCl7cmV0dXJue3g6Yyx5Omx9fTtmdW5jdGlvbiBDemUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDU5LDYwKSx4dCgibW91c2Vkb3duIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLmZvY3VzVmlld2JveChmKSl9KSgi'@; put 'Y2RrRHJhZ0VuZGVkIixmdW5jdGlvbihoKXtjb25zdCBfPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS52aWV3Ym94RHJhZ0VuZGVkKGgsXykpfSksbWUoMiwiZGl2Iiw2MSkoMywic3BhbiIsNjIpLE5lKDQpLHllKCksbWUoNSwiZGl2Iiw2MyksSmUoNixoemUsMSwwLCJjbHItaWNv'@; put 'biIsNjQpLEplKDcsZnplLDEsMCwiY2xyLWljb24iLDY1KSxtZSg4LCJjbHItaWNvbiIsNjYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS5taW5pbWl6ZShmKSl9KSx5ZSgpLG1lKDksImNsci1pY29uIiw2NykseHQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLmNsb3NlKGYpKX0pLHllKCkoKSgpLG1lKDEwLCJzcGFuIiw2OCw2OSkseHQoImNka0RyYWdNb3ZlZCIsZnVuY3Rpb24oaCl7Y29uc3QgXz1CdChhKS4kaW1wbGljaXQsVD0kaSgxMSksVz0kaSgxKTty'@; put 'ZXR1cm4ganQoVmUoKS5kcmFnTW92ZShULFcsXyxoKSl9KSx5ZSgpLG1lKDEyLCJmb3JtIiw3MCkoMTMsImRpdiIsNzEpKDE0LCJkaXYiLDcyKSgxNSwiaW5wdXQiLDczLDc0KSx4dCgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKCl7Y29uc3QgZj1CdChhKS4kaW1wbGljaXQsXz0kaSgxNik7cmV0'@; put 'dXJuIGp0KFZlKCkuc2VhcmNoVGFibGUoXyxmKSl9KSx5ZSgpLEplKDE3LHB6ZSwxLDAsImNsci1pY29uIiw3NSksSmUoMTgsZ3plLDIsMCwic3BhbiIsNzYpLHllKCksbWUoMTksImNsci1jaGVja2JveC1jb250YWluZXIiKSgyMCwiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSgyMSwiaW5wdXQi'@; put 'LDc3KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIGp0KEJ0KGEpLiRpbXBsaWNpdC5zZWFyY2hOdW1lcmljPWgpfSkseWUoKSxtZSgyMiwibGFiZWwiKSxOZSgyMywiTnVtZXJpYyIpLHllKCkoKSgpKCksbWUoMjQsImRpdiIsMzkpLEplKDI1LG16ZSwyLDAsInNwYW4i'@; put 'LDc4KSxKZSgyNix2emUsMSwwLCJjbHItaWNvbiIsNzkpLG1lKDI3LCJhIiw4MCkseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuJGltcGxpY2l0LF89JGkoMTYpO3JldHVybiBWZSgpLm9wZW5GaWx0ZXIoZiksanQoXy52YWx1ZT0iIil9KSxxdCgyOCwiY2xyLWljb24iLDgx'@; put 'KSxtZSgyOSwic3BhbiIsODIpLE5lKDMwKSx5ZSgpKCksbWUoMzEsImNsci1pY29uIiw4MykseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLm9wZW5UYWJsZUVkaXQoZikpfSkseWUoKSgpKCksSmUoMzIseXplLDMsNCwiZGl2Iiw4'@; put 'NCkseWUoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSgpO0h1KCJkaXNwbGF5IixhLm1pbmltaXplZD8ibm9uZSI6IiIpKCJ3aWR0aCIsYS53aWR0aCwicHgiKSgiaGVpZ2h0IixhLmhlaWdodCwicHgiKSgicG9pbnRlci1ldmVudHMiLGEuY29sbGFwc2VkPyJub25lIjoiIiko'@; put 'ImJveC1zaGFkb3ciLGEuY29sbGFwc2VkPyJub25lIjoiIiksZHIoImZvY3VzZWQiLGEuZm9jdXNlZCksUmUoImNka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uIixRMigzNCx3emUsYS54LGEueSkpKCJpZCIsInZpZXdib3hfIithLmlkKSxDZSg0KSxiMCgiICMiLGEuaWQsIiAiLGEubGlicmFyeSwi'@; put 'LiIsYS50YWJsZSwiICIpLENlKDIpLFJlKCJuZ0lmIiwhYS5jb2xsYXBzZWQpLENlKDEpLFJlKCJuZ0lmIixhLmNvbGxhcHNlZCksQ2UoMyksUmUoImlkIiwiaGFuZGxlX3ZpZXdib3hfIithLmlkKSxDZSgyKSxIdSgiZGlzcGxheSIsYS5jb2xsYXBzZWQ/Im5vbmUiOiIiKSxDZSgzKSxSZSgi'@; put 'dHlwZSIsYS5zZWFyY2hOdW1lcmljPyJudW1iZXIiOiJ0ZXh0IiksQ2UoMiksUmUoIm5nSWYiLCFhLnNlYXJjaExvYWRpbmcpLENlKDEpLFJlKCJuZ0lmIixhLnNlYXJjaExvYWRpbmcpLENlKDMpLFJlKCJuZ01vZGVsIixhLnNlYXJjaE51bWVyaWMpLENlKDQpLFJlKCJuZ0lmIixhLmxvYWRp'@; put 'bmdEYXRhKSxDZSgxKSxSZSgibmdJZiIsIWEubG9hZGluZ0RhdGEpLENlKDIpLGRyKCJmaWx0ZXItYWN0aXZlIiwiMCIhPT1hLmZpbHRlcl9wayksQ2UoMiksb3IoYS5maWx0ZXJUZXh0KSxDZSgxKSxkcigiZGlzYWJsZWQiLCFkLnRhYmxlRWRpdEV4aXN0cyhhKSksQ2UoMSksUmUoIm5nVmFy'@; put 'IixkLmdldFZpZXdib3hUYWJsZUluZGV4KGEpKX19ZnVuY3Rpb24gU3plKGMsbCl7aWYoMSZjJiZxdCgwLCJhcHAtcXVlcnkiLDk2LDk3KSwyJmMpe2NvbnN0IGE9VmUoKTtSZSgidmlld2JveElkIixudWxsPT1hLmZpbHRlcmluZ1ZpZXdib3g/bnVsbDphLmZpbHRlcmluZ1ZpZXdib3guaWQp'@; put 'fX1jb25zdCBNemU9ZnVuY3Rpb24oYyxsLGEpe3JldHVybntjb2xIZWFkZXJzSGlkZGVuOmMsY29sSGVhZGVyc1Zpc2libGU6bCxoZWFkZXJQa3M6YX19O2xldCB4c2U9KCgpPT57Y2xhc3MgY3tnZXQgdmlld2JveE1vZGFsKCl7cmV0dXJuIHRoaXMuX3ZpZXdib3hNb2RhbH1zZXQgdmlld2Jv'@; put 'eE1vZGFsKGEpe2lmKCExPT09dGhpcy5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveCYmYSlyZXR1cm4gdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0RlbW9MaW1pdE1vZGFsKCJWaWV3Ym94ZXMiKSx2b2lkIHRoaXMudmlld2JveE1vZGFsQ2hhbmdlLmVtaXQoITEpO3RoaXMuX3ZpZXdib3hNb2Rh'@; put 'bD1hLGEmJnRoaXMudW5zZXRTZWxlY3RlZFZpZXdib3goKX1jb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGllLHBlLHdlKXt0aGlzLm5nWm9uZT1hLHRoaXMubGljZW5jZVNlcnZpY2U9ZCx0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT1mLHRoaXMuc2FzU3RvcmVTZXJ2aWNl'@; put 'PV8sdGhpcy5sb2dnZXJTZXJ2aWNlPVQsdGhpcy5oZWxwZXJTZXJ2aWNlPVcsdGhpcy5yb3V0ZXI9aWUsdGhpcy5hY3RpdmF0ZWRSb3V0ZT1wZSx0aGlzLmNkZj13ZSx0aGlzLl92aWV3Ym94TW9kYWw9ITEsdGhpcy52aWV3Ym94TW9kYWxDaGFuZ2U9bmV3IEVyLHRoaXMubGliaW5mbz1udWxs'@; put 'LHRoaXMubGlicmFyaWVzTG9hZGluZz0hMCx0aGlzLnZpZXdib3hlcz1bXSx0aGlzLmRlZmF1bHRDb25maWc9e2lkOi0xLGxpYnJhcnk6IiIsdGFibGU6IiIsd2lkdGg6NTAwLGhlaWdodDozMDAseDowLHk6MTUwLGNvbHVtbnM6W119LHRoaXMuc2FzanNDb25maWc9bmV3IHIxLlNBU2pzQ29u'@; put 'ZmlnLHRoaXMuaG90VGFibGVEZWZhdWx0PXtkYXRhOltdLGhlYWRlclBrczpbXSwkZGF0YWZvcm1hdHM6e30sYWxsQ29sSGVhZGVyczpbXSxjb2xIZWFkZXJzSGlkZGVuOltdLGNvbEhlYWRlcnNWaXNpYmxlOltdLGNvbEhlYWRlcnM6W10sY29udGV4dE1lbnU6WyJjb3B5X3dpdGhfY29sdW1u'@; put 'X2hlYWRlcnMiLCJjb3B5X2NvbHVtbl9oZWFkZXJzX29ubHkiXSxjb3B5UGFzdGU6e2NvcHlDb2x1bW5IZWFkZXJzOiEwLGNvcHlDb2x1bW5IZWFkZXJzT25seTohMH0sY29sdW1uczpbXSxjb2xzOltdLGhlaWdodDoiMTAwJSIsc2V0dGluZ3M6e30saGlkZGVuQ29sdW1uczohMCxtYW51YWxD'@; put 'b2x1bW5Nb3ZlOiExLGFmdGVyR2V0Q29sSGVhZGVyOnZvaWQgMCxsaWNlbnNlS2V5OnZvaWQgMCxkcm9wZG93bk1lbnU6dm9pZCAwfSx0aGlzLnZpZXdib3hUYWJsZXM9W10sdGhpcy5maWx0ZXI9ITEsdGhpcy5maWx0ZXJMb2FkaW5nPSExLHRoaXMubnVsbFZhcmlhYmxlcz0hMSx0aGlzLmxp'@; put 'Y2VuY2VTdGF0ZT10aGlzLmxpY2VuY2VTZXJ2aWNlLmxpY2VuY2VTdGF0ZSx0aGlzLkluZmluaXR5PTEvMCx0aGlzLm1heFZpZXdib3hlcz10aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3Ym94X2xpbWl0PT09MS8wPzY6dGhpcy5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveF9saW1pdHx8'@; put 'Nix0aGlzLmhvdFRhYmxlUmVnaXN0ZXJlcj1uZXcgQWd9bmdPbkluaXQoKXt0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3TGlicygpLnRoZW4oZD0+e3RoaXMubGlicmFyaWVzPWQuc2FzbGlic30pLmNhdGNoKGQ9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoZCl9KS5maW5hbGx5KCgpPT57'@; put 'dGhpcy5saWJyYXJpZXNMb2FkaW5nPSExfSksdGhpcy5fcXVlcnk9dGhpcy5zYXNTdG9yZVNlcnZpY2UucXVlcnkuc3Vic2NyaWJlKGQ9Pnt0aGlzLmNsYXVzZXM9ZC5vYmosdGhpcy5maWx0ZXJMaWJkcz1kLmxpYmRzfSksdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2Fz'@; put 'anNDb25maWcoKSx0aGlzLmxpY2VuY2VTZXJ2aWNlLmhvdF9saWNlbnNlX2tleS5zdWJzY3JpYmUoZD0+e3RoaXMuaG90VGFibGVEZWZhdWx0LmxpY2Vuc2VLZXk9ZH0pO2NvbnN0IGE9dGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3Ym94ZXM7YSYmKCExPT09'@; put 'dGhpcy5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveD8oc2V0VGltZW91dCgoKT0+dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0RlbW9MaW1pdE1vZGFsKCJMaW5raW5nIFZpZXdib3hlcyIpKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSx7cmVsYXRpdmVUbzp0aGlzLmFjdGl2YXRlZFJvdXRlLHF1'@; put 'ZXJ5UGFyYW1zOnt9fSkpOih0aGlzLnZpZXdib3hlcz10aGlzLmRlY29kZVVybERhdGEoYSksc2V0VGltZW91dCgoKT0+e3RoaXMuc2V0QWxsSGFuZGxlVHJhbnNmb3JtKCl9KSkpLHRoaXMucmVMb2FkVmlld2JveHRhYmxlcyh0aGlzLnZpZXdib3hlcyl9bmdBZnRlclZpZXdJbml0KCl7fWdl'@; put 'dCB2aWV3Ym94TGltaXRSZWFjaGVkKCl7cmV0dXJuIHRoaXMudmlld2JveGVzLmxlbmd0aD49dGhpcy5tYXhWaWV3Ym94ZXN9Y2xyTW9kYWxPcGVuQ2hhbmdlKGEpe3RoaXMudmlld2JveE1vZGFsQ2hhbmdlLmVtaXQoYSl9bGlicmFyeU9uQ2xpY2soYSl7YS50YWJsZXNMb2FkZWR8fHRoaXMu'@; put 'bG9hZFRhYmxlcyhhLmxpYnJhcnkuTElCUkFSWVJFRixhLmxpYnJhcnkpfXRhYmxlT25DbGljayhhKXt2YXIgZD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtpZihkLnZpZXdib3hMaW1pdFJlYWNoZWQpcmV0dXJuO2NvbnN0IGg9ey4uLmQuZGVmYXVsdENvbmZpZyx0YWJsZTphLmxpYlRh'@; put 'YmxlLGxpYnJhcnk6YS5saWJyYXJ5LkxJQlJBUllOQU1FLGxvYWRpbmdEYXRhOiEwLGZpbHRlcl9wazoiMCIsaWQ6ZC52aWV3Ym94ZXMubGVuZ3RoKzEseDp3aW5kb3cuaW5uZXJXaWR0aC1kLmRlZmF1bHRDb25maWcud2lkdGgseToxNTB9O2Qudmlld2JveGVzLnB1c2goaCksc2V0VGltZW91'@; put 'dCgoKT0+e2Quc2V0QWxsSGFuZGxlVHJhbnNmb3JtKCl9KTtjb25zdCBmPWAke2EubGlicmFyeS5MSUJSQVJZUkVGfS4ke2EubGliVGFibGV9YDt5aWVsZCBkLmxvYWREYXRhKGYsaCksaC5sb2FkaW5nRGF0YT0hMSxkLmV2ZW50U2VydmljZS5kaXNwYXRjaEV2ZW50KCJyZXNpemUiKSxkLnNu'@; put 'YXBUb0dyaWQoKX0pKCl9bG9hZFRhYmxlcyhhLGQpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdUYWJsZXMoYSkudGhlbihoPT57bGV0IGY9aC5tcHRhYmxlcy5tYXAoZnVuY3Rpb24oXyl7cmV0dXJuIF8uTUVNTkFNRX0pO3RoaXMubGliaW5mbz1oLmxpYmluZm98fFtdLHRoaXMudGFibGVz'@; put 'PWYsZCYmKGQudGFibGVzPWYsZC5saWJpbmZvPXRoaXMubGliaW5mbyxkLmxvYWRpbmdUYWJsZXM9ITEsZi5sZW5ndGg+MCYmKGQuZXhwYW5kZWQ9ITApKX0pLmNhdGNoKGg9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoaCl9KX1yZWxvYWREYXRhKGEsZCl7dmFyIGg9dGhpcztyZXR1cm4g'@; put 'ZmkoZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChmLF8pPT57bGV0IFQ9aC52aWV3Ym94VGFibGVzLmZpbmQoVz0+Vy52aWV3Ym94SWQ9PT1kLmlkKTtoLnNhc1N0b3JlU2VydmljZS52aWV3RGF0YShhLHBhcnNlSW50KGQuZmlsdGVyX3BrfHwiMCIpKS50aGVuKFc9PntUJiYoVC5o'@; put 'b3RUYWJsZS5kYXRhPVcudmlld2RhdGEpLGYobnVsbCl9KS5jYXRjaCgoKT0+e18oKX0pfSl9KSgpfWxvYWREYXRhKGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChmLF8pPT57bGV0IFQ9ITEsVz1oLnZpZXdib3hUYWJsZXMuZmluZChp'@; put 'ZT0+aWUudmlld2JveElkPT09ZC5pZCk7VyYmKCIwIj09PWQuZmlsdGVyX3BrfHwhZC5maWx0ZXJfcGspJiZmKCksaC5zYXNTdG9yZVNlcnZpY2Uudmlld0RhdGEoYSxwYXJzZUludChkLmZpbHRlcl9wa3x8IjAiKSkudGhlbihpZT0+e1c/VD0hMDpXPXt2aWV3Ym94SWQ6ZC5pZCx2aWV3Ym94'@; put 'TGliRGF0YXNldDphLGhvdFRhYmxlOnp4KGguaG90VGFibGVEZWZhdWx0KX0sVy5ob3RUYWJsZS5kYXRhPWllLnZpZXdkYXRhLFcuaG90VGFibGUuJGRhdGFmb3JtYXRzPWllLiR2aWV3ZGF0YSxXLmhvdFRhYmxlLmNvbHM9aWUuY29scyx6eihXLmhvdFRhYmxlLmNvbHMsW10saWUuJHZpZXdk'@; put 'YXRhKTtsZXQgcGU9W10sd2U9W107Zm9yKGxldCBFZSBpbiBpZS52aWV3ZGF0YVswXSlFZSYmd2UucHVzaChFZSk7Zm9yKGxldCBFZT0wO0VlPHdlLmxlbmd0aDtFZSsrKXBlLnB1c2goe2RhdGE6d2VbRWVdfSk7Vy5ob3RUYWJsZS5oZWFkZXJQa3M9engoaWUuc2FzcGFyYW1zWzBdLlBLX0ZJ'@; put 'RUxEUy5zcGxpdCgiICIpKSxXLmhvdFRhYmxlLmFsbENvbEhlYWRlcnM9d2UuZmlsdGVyKEVlPT4hVy5ob3RUYWJsZS5oZWFkZXJQa3MuaW5jbHVkZXMoRWUpKSxXLmhvdFRhYmxlLmNvbEhlYWRlcnNIaWRkZW49engoVy5ob3RUYWJsZS5hbGxDb2xIZWFkZXJzKSxXLmhvdFRhYmxlLmNvbEhl'@; put 'YWRlcnNWaXNpYmxlPXdlLmZpbHRlcihFZT0+Vy5ob3RUYWJsZS5oZWFkZXJQa3MuaW5jbHVkZXMoRWUpKSxXLmhvdFRhYmxlLmNvbEhlYWRlcnM9d2UsVy5ob3RUYWJsZS5jb2x1bW5zPXBlLGQuY29sdW1ucyYmZC5jb2x1bW5zLmxlbmd0aD4wPyhXLmhvdFRhYmxlLm1hbnVhbENvbHVtbk1v'@; put 'dmU9ZC5jb2x1bW5zLGQuY29sdW1ucz8ubWFwKChFZSxaZSk9Pntjb25zdCBpdD13ZVtFZV0sZXQ9Vy5ob3RUYWJsZS5jb2xIZWFkZXJzSGlkZGVuLmluZGV4T2YoaXQpO2V0Pi0xJiYoVy5ob3RUYWJsZS5jb2xIZWFkZXJzSGlkZGVuLnNwbGljZShldCwxKSxXLmhvdFRhYmxlLmNvbEhlYWRl'@; put 'cnNWaXNpYmxlW1plXT1pdCl9KSk6Vy5ob3RUYWJsZS5jb2xIZWFkZXJzVmlzaWJsZS5wdXNoKC4uLlcuaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbi5zcGxpY2UoMCwxMCkpLFcuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGU9Vy5ob3RUYWJsZS5jb2xIZWFkZXJzVmlzaWJsZS5maWx0ZXIo'@; put 'RWU9PkVlKSxUfHxoLnZpZXdib3hUYWJsZXMucHVzaChXKSxkLnF1ZXJ5PWguaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoaWUucXVlcnkpLGQuZmlsdGVyVGV4dD1pZS5zYXNwYXJhbXNbMF0uRklMVEVSX1RFWFQsc2V0VGltZW91dCgoKT0+e2gudXBkYXRlSG90Q29sdW1ucyhXLmhvdFRhYmxl'@; put 'LmNvbEhlYWRlcnNIaWRkZW58fFtdLGQuaWQpO2NvbnN0IEVlPWguZ2V0Vmlld2JveEhvdEluc3RhbmNlKGQuaWQpO0VlPy51cGRhdGVTZXR0aW5ncyh7bWFudWFsQ29sdW1uTW92ZTpXLmhvdFRhYmxlLm1hbnVhbENvbHVtbk1vdmUsYWZ0ZXJHZXRDb2xIZWFkZXI6KFplLGl0KT0+e2NvbnN0'@; put 'IGV0PUVlPy5jb2xUb1Byb3AoWmUpO2V0JiZXLmhvdFRhYmxlLmhlYWRlclBrcy5pbmRleE9mKGV0KT4tMSYmaXQuY2xhc3NMaXN0LmFkZCgicHJpbWFyeUtleUhlYWRlclN0eWxlIil9fSksRWU/LnJlbmRlcigpLGguc2VsZWN0ZWRWaWV3Ym94JiZoLnJlc2V0U2VsZWN0ZWRWaWV3Ym94KGQp'@; put 'fSksZigpfSkuY2F0Y2goaWU9PntoLmxvZ2dlclNlcnZpY2UuZXJyb3IoaWUpLF8oKX0pfSl9KSgpfXJlTG9hZFZpZXdib3h0YWJsZXMoYSl7YS5tYXAoZD0+e2NvbnN0IGg9YCR7ZC5saWJyYXJ5fS4ke2QudGFibGV9YDtkLmxvYWRpbmdEYXRhPSEwLHRoaXMubG9hZERhdGEoaCxkKS50aGVu'@; put 'KCgpPT57ZC5sb2FkaW5nRGF0YT0hMX0pfSl9bWF4V2lkdGhDaGVrZXIoYSxkKXtyZXR1cm4gYT4yMDA/MjAwOmF9Z2V0Vmlld2JveFRhYmxlSW5kZXgoYSl7cmV0dXJuIHRoaXMudmlld2JveFRhYmxlcy5maW5kSW5kZXgoaD0+aC52aWV3Ym94SWQ9PT1hLmlkKX1yZXNpemUoYSxkKXtjb25z'@; put 'dCBoPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZj1kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLF89aC5sZWZ0LWYubGVmdCtoLndpZHRoLFQ9aC50b3AtZi50b3AraC5oZWlnaHQ7cmV0dXJuIGQuc3R5bGUud2lkdGg9XysicHgiLGQuc3R5bGUuaGVpZ2h0PVQrInB4Iix0aGlzLnNldEFs'@; put 'bEhhbmRsZVRyYW5zZm9ybSgpLHRoaXMuaGVscGVyU2VydmljZS5kZWJvdW5jZUNhbGwoMWUzLCgpPT57dGhpcy52aWV3Ym94Q2hhbmdlZCgpLHRoaXMuZXZlbnRTZXJ2aWNlLmRpc3BhdGNoRXZlbnQoInJlc2l6ZSIpfSkse3dpZHRoOl8saGVpZ2h0OlR9fWRyYWdNb3ZlKGEsZCxoLGYpe3Ro'@; put 'aXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57Y29uc3QgXz10aGlzLnJlc2l6ZShhLGQpO2gud2lkdGg9Xy53aWR0aCxoLmhlaWdodD1fLmhlaWdodH0pfXNldEFsbEhhbmRsZVRyYW5zZm9ybSgpe3RoaXMucmVzaXplQm94UXVlcnkuZm9yRWFjaChhPT57Y29uc3QgZD1hLm5hdGl2'@; put 'ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaD1gaGFuZGxlXyR7YS5uYXRpdmVFbGVtZW50LmlkfWAsZj10aGlzLmRyYWdIYW5kbGVDb3JuZXJRdWVyeS5maW5kKChfLFQpPT5fLm5hdGl2ZUVsZW1lbnQuaWQ9PT1oKTt0aGlzLnNldEhhbmRsZVRyYW5zZm9ybShmPy5uYXRpdmVF'@; put 'bGVtZW50LGQsImJvdGgiKX0pfXNldEhhbmRsZVRyYW5zZm9ybShhLGQsaCl7Y29uc3QgZj1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBfPWQud2lkdGgtZi53aWR0aCxUPWQuaGVpZ2h0LWYuaGVpZ2h0O18rPTUsVCs9NSwieCI9PT1oJiYoYS5zdHlsZS50cmFuc2Zvcm09YHRyYW5z'@; put 'bGF0ZSgke199cHgsIDApYCksInkiPT09aCYmKGEuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUoMCwgJHtUfXB4KWApLCJib3RoIj09PWgmJihhLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7X31weCwgJHtUfXB4KWApfWZvY3VzVmlld2JveChhKXt0aGlzLnZpZXdib3hlcy5tYXAo'@; put 'ZD0+e2QuZm9jdXNlZD0hMX0pLGEuZm9jdXNlZD0hMH12aWV3Ym94RHJhZ0VuZGVkKGEsZCl7bGV0IGY9YS5zb3VyY2UuZ2V0Um9vdEVsZW1lbnQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtkLng9Zi5sZWZ0LGQueT1mLnRvcCx0aGlzLnZpZXdib3hDaGFuZ2VkKCl9c25hcFRvR3JpZCgp'@; put 'e2NvbnN0IGE9d2luZG93LmlubmVyV2lkdGgsZD13aW5kb3cuaW5uZXJIZWlnaHQsVD1NYXRoLmNlaWwodGhpcy52aWV3Ym94ZXMubGVuZ3RoLzIpLFc9TWF0aC5mbG9vcih0aGlzLnZpZXdib3hlcy5sZW5ndGgvMiksd2U9KGEtNSooVCsxKSkvVCxFZT0oYS01KihXKzEpKS9XO2xldCBpdD0w'@; put 'LHl0PShkLTI1MC02MCkvMixFdD0wLFN0PTA7Zm9yKGxldCBKdD0wO0p0PHRoaXMudmlld2JveGVzLmxlbmd0aDtKdCsrKXtsZXQgbm49dGhpcy52aWV3Ym94ZXNbSnRdLHZuPSEoSnQ+VC0xKTtjb25zdCBObj12bj93ZTpFZTshdm4mJjA9PT1TdCYmKEV0PTAsU3QrKyxpdD0wKSxubi54PTUr'@; put 'aXQrRXQqKE5uKzUpLG5uLnk9MjUwK1N0Kih5dCs1KSxubi53aWR0aD1Obixubi5oZWlnaHQ9eXQsRXQrK310aGlzLnZpZXdib3hDaGFuZ2VkKCksc2V0VGltZW91dCgoKT0+e3RoaXMuc2V0QWxsSGFuZGxlVHJhbnNmb3JtKCl9KX1taW5pbWl6ZUFsbCgpe3RoaXMudmlld2JveGVzLmZvckVh'@; put 'Y2goYT0+e2EubWluaW1pemVkPSEwfSksdGhpcy52aWV3Ym94Q2hhbmdlZCgpfXJlc3RvcmVBbGwoKXt0aGlzLnZpZXdib3hlcy5mb3JFYWNoKGE9PnthLm1pbmltaXplZD0hMX0pLHRoaXMudmlld2JveENoYW5nZWQoKX1yZXNldFBvc1NpemUoYSl7YS54PXdpbmRvdy5pbm5lcldpZHRoLXRo'@; put 'aXMuZGVmYXVsdENvbmZpZy53aWR0aCxhLnk9dGhpcy5kZWZhdWx0Q29uZmlnLnksYS53aWR0aD10aGlzLmRlZmF1bHRDb25maWcud2lkdGgsYS5oZWlnaHQ9dGhpcy5kZWZhdWx0Q29uZmlnLmhlaWdodCx0aGlzLnZpZXdib3hDaGFuZ2VkKCl9bWluaW1pemUoYSl7YS5taW5pbWl6ZWQ9ITAs'@; put 'dGhpcy52aWV3Ym94Q2hhbmdlZCgpfXJlc3RvcmUoYSl7YS5taW5pbWl6ZWQ9ITEsdGhpcy52aWV3Ym94Q2hhbmdlZCgpfWNvbGxhcHNlKGEpe2EuY29sbGFwc2VkPSEwLHRoaXMudmlld2JveENoYW5nZWQoKX1leHBhbmQoYSl7YS5jb2xsYXBzZWQ9ITEsdGhpcy52aWV3Ym94Q2hhbmdlZCgp'@; put 'fWNsb3NlKGEpe2NvbnN0IGQ9dGhpcy52aWV3Ym94ZXMuZmluZEluZGV4KGY9PmYuaWQ9PT1hLmlkKSxoPXRoaXMudmlld2JveFRhYmxlcy5maW5kSW5kZXgoZj0+Zi52aWV3Ym94SWQ9PT1hLmlkKTtkPi0xJiZ0aGlzLnZpZXdib3hlcy5zcGxpY2UoZCwxKSxoPi0xJiZ0aGlzLnZpZXdib3hU'@; put 'YWJsZXMuc3BsaWNlKGgsMSksdGhpcy5zZWxlY3RlZFZpZXdib3g/LmlkPT09YS5pZCYmdGhpcy51bnNldFNlbGVjdGVkVmlld2JveCgpLEduLnZpZXdib3hlc1thLmlkXT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKFBPKSx0aGlzLnZpZXdib3hDaGFuZ2VkKCl9c2VsZWN0Vmlld2Jv'@; put 'eChhKXt2b2lkIDA9PT10aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlJiZ2b2lkIDA9PT10aGlzLnNlbGVjdGVkVmlld2JveD90aGlzLnJlc2V0U2VsZWN0ZWRWaWV3Ym94KGEpOmEuaWQ9PT10aGlzLnNlbGVjdGVkVmlld2JveD8uaWQ/dGhpcy51bnNldFNlbGVjdGVkVmlld2JveCgpOnRoaXMu'@; put 'cmVzZXRTZWxlY3RlZFZpZXdib3goYSl9Y29sdW1uc0Ryb3AoYSl7dGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZT8uaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbiYmKGEucHJldmlvdXNDb250YWluZXI9PT1hLmNvbnRhaW5lcj9jc2UoYS5jb250YWluZXIuZGF0YSxhLnByZXZpb3VzSW5kZXgs'@; put 'YS5jdXJyZW50SW5kZXgpOmZ1bmN0aW9uIGdCZShjLGwsYSxkKXtjb25zdCBoPWF3KGEsYy5sZW5ndGgtMSksZj1hdyhkLGwubGVuZ3RoKTtjLmxlbmd0aCYmbC5zcGxpY2UoZiwwLGMuc3BsaWNlKGgsMSlbMF0pfShhLnByZXZpb3VzQ29udGFpbmVyLmRhdGEsYS5jb250YWluZXIuZGF0YSxh'@; put 'LnByZXZpb3VzSW5kZXgsYS5jdXJyZW50SW5kZXgpLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUmJiJvYmplY3QiPT10eXBlb2YgdGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJsZS5jb2xIZWFkZXJzKSYmdGhpcy51cGRhdGVDb2x1bW5PcmRlckhvdChhLml0ZW0u'@; put 'ZGF0YSxhLmN1cnJlbnRJbmRleCx0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLnZpZXdib3hJZCl9b25Db2xzZWFyY2hDaGFuZ2UoYSxkLGgpe2NvbnN0IGY9aC5pbmRleE9mKGQpO2guc3BsaWNlKGYsMSksYS52YWx1ZT0iIix0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlPy5ob3RUYWJsZSYm'@; put 'KHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGUucHVzaChkKSx0aGlzLnVwZGF0ZUhvdENvbHVtbnModGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZT8uaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbix0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLnZp'@; put 'ZXdib3hJZCksdGhpcy51cGRhdGVDb2x1bW5PcmRlckhvdChkLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGUubGVuZ3RoLTEsdGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZS52aWV3Ym94SWQpKX1vbkNvbFJlbW92ZShhKXtpZih0aGlzLnNlbGVj'@; put 'dGVkVmlld2JveFRhYmxlPy5ob3RUYWJsZSl7Y29uc3QgZD10aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlLmNvbEhlYWRlcnNWaXNpYmxlLmluZGV4T2YoYSk7dGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJsZS5jb2xIZWFkZXJzVmlzaWJsZS5zcGxpY2UoZCwxKSx0'@; put 'aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlLmNvbEhlYWRlcnNIaWRkZW4ucHVzaChhKSx0aGlzLnVwZGF0ZUhvdENvbHVtbnModGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZT8uaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbix0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLnZpZXdi'@; put 'b3hJZCksdGhpcy51cGRhdGVDb2x1bW5PcmRlckhvdChhLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGUubGVuZ3RoLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUudmlld2JveElkKX19cmVzZXRTZWxlY3RlZFZpZXdib3goYSl7dGhpcy5zZWxl'@; put 'Y3RlZFZpZXdib3g9YSx0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlPXRoaXMudmlld2JveFRhYmxlcy5maW5kKGQ9PmQudmlld2JveElkPT09YS5pZCl9dW5zZXRTZWxlY3RlZFZpZXdib3goKXt0aGlzLnNlbGVjdGVkVmlld2JveD12b2lkIDAsdGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZT12'@; put 'b2lkIDB9c3RvcFByb3BhZ2F0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9b3BlbkZpbHRlcihhKXt0aGlzLnNlbGVjdFZpZXdib3goYSk7Y29uc3QgZD10aGlzLnZpZXdib3hUYWJsZXNbdGhpcy5nZXRWaWV3Ym94VGFibGVJbmRleChhKV07dGhpcy5maWx0ZXJMaWJkcz1gJHthLmxpYnJh'@; put 'cnl9LiR7YS50YWJsZX1gLHRoaXMuZmlsdGVyaW5nVmlld2JveD1hLHRoaXMuZmlsdGVyPSEwLHRoaXMuY2RmLmRldGVjdENoYW5nZXMoKSx0aGlzLnNhc1N0b3JlU2VydmljZS5zZXRRdWVyeVZhcmlhYmxlcyh0aGlzLmZpbHRlckxpYmRzLGQuaG90VGFibGUuY29scyl9b3BlblRhYmxlRWRp'@; put 'dChhKXtjb25zdCBkPWEubGlicmFyeSsiLiIrYS50YWJsZTtsZXQgaD1sb2NhdGlvbi5ocmVmLnNsaWNlKDAsbG9jYXRpb24uaHJlZi5pbmRleE9mKCIjIikpO2g9YCR7aH0jL2VkaXRvci8ke2R9YCx3aW5kb3cub3BlbihoLCJfYmxhbmsiKX1yZXNldEZpbHRlcigpe3RoaXMuZmlsdGVyaW5n'@; put 'Vmlld2JveCYmKHRoaXMuZmlsdGVyaW5nVmlld2JveC5maWx0ZXJfcGs9IjAiLHRoaXMucmVsb2FkVGFibGVEYXRhKHRoaXMuZmlsdGVyaW5nVmlld2JveCksdGhpcy5maWx0ZXI9ITEsdGhpcy52aWV3Ym94Q2hhbmdlZCgpLEduLnZpZXdib3hlc1t0aGlzLmZpbHRlcmluZ1ZpZXdib3guaWRd'@; put 'PXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoUE8pKX1zZW5kQ2xhdXNlKCl7dGhpcy5maWx0ZXJMb2FkaW5nPSEwO2xldCBhPVtdLGQ9W107aWYodHlwZW9mIHRoaXMuY2xhdXNlcz4idSIpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuZmlsdGVyTG9hZGluZz0h'@; put 'MSk7e2xldCBoPXRoaXMuY2xhdXNlcy5xdWVyeU9iajtmb3IobGV0IGY9MDtmPGgubGVuZ3RoO2YrKyl7Y29uc3QgXz1oW2ZdLmVsZW1lbnRzO2E9Xy5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0dXJuIG51bGw9PT1ULnZhcmlhYmxlfSksYS5sZW5ndGgmJmQucHVzaChfKX19aWYoZC5sZW5ndGgp'@; put 'cmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuZmlsdGVyTG9hZGluZz0hMSk7dHJ5e2lmKHZvaWQgMCE9PXRoaXMuY2xhdXNlcyYmdGhpcy5maWx0ZXJMaWJkcyl7Y29uc3QgaD17Z3JvdXBMb2dpYzp0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYyxmaWx0ZXJHcm91cHM6W119'@; put 'O3RoaXMuY2xhdXNlcy5xdWVyeU9iai5mb3JFYWNoKF89Pntjb25zdCBUPXtmaWx0ZXJDbGF1c2VzOltdfTtfLmVsZW1lbnRzLmZvckVhY2goVz0+e1QuZmlsdGVyQ2xhdXNlcy5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoVykpfSksVC5jbGF1c2VMb2dpYz1fLmNsYXVzZUxv'@; put 'Z2ljLGguZmlsdGVyR3JvdXBzLnB1c2godGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShUKSl9KTtjb25zdCBmPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLmNyZWF0ZUZpbHRlclF1ZXJ5VGFibGUoaCk7dGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2F2ZVF1ZXJ5KHRoaXMuZmlsdGVyTGliZHMsZiku'@; put 'dGhlbihfPT57dGhpcy5maWx0ZXJpbmdWaWV3Ym94LmZpbHRlcl9waz1fLnJlc3VsdFswXS5GSUxURVJfUkssdGhpcy5sb2FkRGF0YSh0aGlzLmZpbHRlckxpYmRzLHRoaXMuZmlsdGVyaW5nVmlld2JveCkudGhlbigoKT0+e3RoaXMuZmlsdGVyPSExLHRoaXMuZmlsdGVyTG9hZGluZz0hMX0p'@; put 'LHRoaXMudmlld2JveENoYW5nZWQoKX0pLmNhdGNoKF89Pnt0aGlzLmZpbHRlckxvYWRpbmc9ITF9KX19Y2F0Y2h7dGhpcy5maWx0ZXJMb2FkaW5nPSExfX1zZWFyY2hUYWJsZShhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2Quc2VhcmNoTG9hZGluZz0hMDtsZXQgZj1h'@; put 'LnZhbHVlLF89ZC5saWJyYXJ5KyIuIitkLnRhYmxlLFQ9cGFyc2VJbnQoZC5maWx0ZXJfcGt8fCIwIik7Y29uc3QgVz1oLnZpZXdib3hUYWJsZXMuZmluZChpZT0+aWUudmlld2JveElkPT09ZC5pZCk7VyYmKHlpZWxkIGguc2FzU3RvcmVTZXJ2aWNlLnZpZXdEYXRhU2VhcmNoKGYsZC5zZWFy'@; put 'Y2hOdW1lcmljLF8sVCkudGhlbihpZT0+e2llLnNhc3BhcmFtc3x8aWUudmlld0RhdGE/Vy5ob3RUYWJsZS5kYXRhPWllLnZpZXdkYXRhOmQuc2VhcmNoTG9hZGluZz0hMH0pLmNhdGNoKGllPT57aC5sb2dnZXJTZXJ2aWNlLmVycm9yKGllKX0pLGQuc2VhcmNoTG9hZGluZz0hMSl9KSgpfXJl'@; put 'bG9hZFRhYmxlRGF0YShhKXt2YXIgZD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtjb25zdCBoPWAke2EubGlicmFyeX0uJHthLnRhYmxlfWA7YS5sb2FkaW5nRGF0YT0hMCx5aWVsZCBkLnJlbG9hZERhdGEoaCxhKSxhLmxvYWRpbmdEYXRhPSExLGQuZXZlbnRTZXJ2aWNlLmRpc3BhdGNo'@; put 'RXZlbnQoInJlc2l6ZSIpfSkoKX11cGRhdGVIb3RDb2x1bW5zKGEsZCl7dGhpcy51cGRhdGVIaWRkZW5Db2x1bW5zSG90KGEsZCksdGhpcy5zZXRDb2x1bW5PcmRlcihkKX11cGRhdGVDb2x1bW5PcmRlckhvdChhLGQsaCl7Y29uc3QgZj10aGlzLmdldFZpZXdib3hIb3RJbnN0YW5jZShoKTtp'@; put 'ZihmKXtjb25zdCBfPWYucHJvcFRvQ29sKGEpO2YuZ2V0UGx1Z2luKCJtYW51YWxDb2x1bW5Nb3ZlIikubW92ZUNvbHVtbihfLGQpLGYucmVuZGVyKCksdGhpcy5zZXRDb2x1bW5PcmRlcihoKX19dGFibGVFZGl0RXhpc3RzKGEpe2NvbnN0IGQ9R24uZWRpdG9yLmxpYnNBbmRUYWJsZXMsaD1h'@; put 'LmxpYnJhcnk7cmV0dXJuISFkW2hdJiZkW2hdLmluY2x1ZGVzKGEudGFibGUpfXNldENvbHVtbk9yZGVyKGEpe2NvbnN0IGQ9dGhpcy52aWV3Ym94ZXMuZmluZChoPT5oLmlkPT09YSk7aWYoZCl7Y29uc3QgaD10aGlzLmNyZWF0ZUNvbHVtbk9yZGVyKGEpO2QuY29sdW1ucz1oLmxlbmd0aD4w'@; put 'P2g6ZC5jb2x1bW5zfXRoaXMudmlld2JveENoYW5nZWQoKX1jcmVhdGVDb2x1bW5PcmRlcihhKXtjb25zdCBkPXRoaXMuZ2V0Vmlld2JveEhvdEluc3RhbmNlKGEpO2lmKCFkKXJldHVybltdO2NvbnN0IGg9ZC5nZXRDb2xIZWFkZXIoKSxmPXRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGU/Lmhv'@; put 'dFRhYmxlLmNvbEhlYWRlcnM7aWYoIWYpcmV0dXJuW107Y29uc3QgXz10aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlPy5ob3RUYWJsZT8uY29sSGVhZGVyc1Zpc2libGUubGVuZ3RofHw1LFQ9W107cmV0dXJuIGgubWFwKChXLGllKT0+e2lmKGllPF8pe2NvbnN0IHBlPWYuaW5kZXhPZihXKTtw'@; put 'ZT4tMSYmVC5wdXNoKHBlKX19KSxUfXVwZGF0ZUhpZGRlbkNvbHVtbnNIb3QoYSxkKXtjb25zdCBoPXRoaXMuZ2V0Vmlld2JveEhvdEluc3RhbmNlKGQpO2lmKGgpe2NvbnN0IGY9YS5tYXAoXz0+aC5wcm9wVG9Db2woXykpO2gudXBkYXRlU2V0dGluZ3Moe2hpZGRlbkNvbHVtbnM6e2NvbHVt'@; put 'bnM6Zn19KSxoLnJlbmRlcigpfX1nZXRWaWV3Ym94SG90SW5zdGFuY2UoYSl7cmV0dXJuIGE/dGhpcy5ob3RUYWJsZVJlZ2lzdGVyZXIuZ2V0SW5zdGFuY2UoYGhvdEluc3RhbmNlX3ZpZXdib3hfJHthfWApOnZvaWQgMH12aWV3Ym94Q2hhbmdlZCgpe2xldCBhO2NvbnN0IGQ9dGhpcy5lbmNv'@; put 'ZGVVcmxEYXRhKHRoaXMudmlld2JveGVzKTtkLmxlbmd0aD4wJiYoYT17dmlld2JveGVzOmR9KSx0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSx7cmVsYXRpdmVUbzp0aGlzLmFjdGl2YXRlZFJvdXRlLHF1ZXJ5UGFyYW1zOmF9KSx0aGlzLnByZXBhcmVGaWx0ZXJDYWNoZSgpfXByZXBhcmVGaWx0'@; put 'ZXJDYWNoZSgpe2ZvcihsZXQgYSBvZiB0aGlzLnZpZXdib3hlcylpZihHbi52aWV3Ym94ZXNbYS5pZF18fChHbi52aWV3Ym94ZXNbYS5pZF09dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShQTykpLGEucXVlcnkmJmEucXVlcnkubGVuZ3RoPjApe2NvbnN0IGQ9dGhpcy52aWV3Ym94VGFi'@; put 'bGVzLmZpbmQoZj0+Zi52aWV3Ym94SWQ9PT1hLmlkKSxoPWB2aWV3Ym94ZXMuJHthLmlkfWA7R24udmlld2JveGVzW2EuaWRdLmZpbHRlci5xdWVyeT1hLnF1ZXJ5LEduLnZpZXdib3hlc1thLmlkXS5maWx0ZXIubGliZHM9YS5saWJyYXJ5KyIuIithLnRhYmxlLHRoaXMuc2FzU3RvcmVTZXJ2'@; put 'aWNlLmluaXRpYWxpemVHbG9iYWxGaWx0ZXJDbGF1c2UoaCxkPy5ob3RUYWJsZS5jb2xzKX19ZW5jb2RlVXJsRGF0YShhKXtsZXQgZD0iIjtyZXR1cm4gYS5tYXAoKGgsZik9PntkKz1gJHtoLmlkfS0ke2gubGlicmFyeX0tJHtoLnRhYmxlfS0ke2gud2lkdGh9LSR7aC5oZWlnaHR9LSR7aC54'@; put 'fS0ke2gueX0tJHtoLmNvbGxhcHNlZD8xOjB9LSR7aC5taW5pbWl6ZWQ/MTowfS0ke2guZmlsdGVyX3BrfHwwfSR7aC5jb2x1bW5zJiZoLmNvbHVtbnMubGVuZ3RoPjA/Ii0iK2guY29sdW1ucz8uam9pbigiLCIpOiIifWAsZiE9PWEubGVuZ3RoLTEmJihkKz0iOyIpfSksZH1kZWNvZGVVcmxE'@; put 'YXRhKGEpe2xldCBoPVtdO3JldHVybiBhLnNwbGl0KCI7IikubWFwKF89Pntjb25zdCBUPV8uc3BsaXQoIi0iKTtoLnB1c2goe2lkOnBhcnNlSW50KFRbMF0pLGxpYnJhcnk6VFsxXSx0YWJsZTpUWzJdLHdpZHRoOnBhcnNlSW50KFRbM10pLGhlaWdodDpwYXJzZUludChUWzRdKSx4OnBhcnNl'@; put 'SW50KFRbNV0pLHk6cGFyc2VJbnQoVFs2XSksY29sbGFwc2VkOiEhcGFyc2VJbnQoVFs3XSksbWluaW1pemVkOiEhcGFyc2VJbnQoVFs4XSksY29sdW1uczpUWzEwXT8uc3BsaXQoIiwiKS5tYXAoVz0+cGFyc2VJbnQoVykpfHxbXSxmaWx0ZXJfcGs6VFs5XX0pfSksaH1uZ09uRGVzdHJveSgp'@; put 'e3RoaXMuX3F1ZXJ5Py51bnN1YnNjcmliZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChObyksdHQoQzApLHR0KG9hKSx0dCh2bCksdHQoYmQpLHR0KHcwKSx0dChUYyksdHQoRHMpLHR0KEdsKSx0dChVYSkpfSxjLlx1MDI3NWNtcD13cih7'@; put 'dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtdmlld2JveGVzIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmKFJvKCRqZSw1KSxSbyhxamUsNSkpLDImYSl7bGV0IGg7YWkoaD1saSgpKSYmKGQucmVzaXplQm94UXVlcnk9aCksYWkoaD1saSgpKSYmKGQuZHJhZ0hhbmRsZUNvcm5l'@; put 'clF1ZXJ5PWgpfX0saW5wdXRzOnt2aWV3Ym94TW9kYWw6InZpZXdib3hNb2RhbCJ9LG91dHB1dHM6e3ZpZXdib3hNb2RhbENoYW5nZToidmlld2JveE1vZGFsQ2hhbmdlIn0sZGVjbHM6NTYsdmFyczoyMyxjb25zdHM6W1siYXBwRHJhZ05kcm9wIiwiIiwxLCJyb290LW1vZGFsIiwicG9zaXRp'@; put 'b24tcmVsYXRpdmUiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxbImNsYXNzIiwibGljZW5jZS1ub3RpY2UiLDQsIm5nSWYiXSxbMSwibW9kYWwtYm9keSIsImQtZmxleCJd'@; put 'LFsxLCJhZGQtbmV3IiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIl0sWzEsIm10LTAtaSJdLFsxLCJ3LTEwMCJdLFsiY2xhc3MiLCJteS0xMC1teC1hdXRvIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm0tMCB2aWV3Ym94LWxpbWl0LW5vdGljZSIsNCwibmdJZiJdLFszLCJs'@; put 'aWJyYXJ5TGlzdCIsImxpYnJhcnlPbkNsaWNrRW1pdHRlciIsInRhYmxlT25DbGlja0VtaXR0ZXIiLDQsIm5nSWYiXSxbMSwiY3VycmVudGx5LW9wZW4iXSxbMSwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIl0sWyJyb2xlIiwidG9vbHRpcCIsImFyaWEtaGFzcG9wdXAi'@; put 'LCJ0cnVlIiwxLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLCJtbC0zIiwzLCJjbGljayJdLFsic2hhcGUiLCJncmlkLXZpZXciLCJzaXplIiwiMTkiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWyJzaGFwZSIsIm1pbnVzIiwic2l6ZSIsIjE5Il0sWyJzaGFw'@; put 'ZSIsIndpbmRvdy1yZXN0b3JlIiwic2l6ZSIsIjE5Il0sWyJjbGFzcyIsInRleHQtY2VudGVyIHctMTAwIG0tMCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvcGVuLXZpZXdib3ggZC1mbGV4IGNsci1qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBjbHItYWxpZ24taXRlbXMtY2VudGVyIiwzLCJzZWxl'@; put 'Y3RlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsIm10LTEwIl0sWzEsIm0tMCJdLFsiY2xhc3MiLCJjb25maWd1cmF0aW9uLXdyYXBwZXIiLCJjZGtEcm9wTGlz'@; put 'dEdyb3VwIiwiIiw0LCJuZ1ZhciJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJ2aWV3Ym94ZXMtY29udGFpbmVyIl0sWyJjbGFzcyIsInZpZXdib3giLCJjZGtEcmFnQm91bmRhcnkiLCIu'@; put 'dmlld2JveGVzLWNvbnRhaW5lciIsImNka0RyYWciLCIiLCJ0YWJpbmRleCIsIjAiLDMsImZvY3VzZWQiLCJkaXNwbGF5Iiwid2lkdGgiLCJoZWlnaHQiLCJwb2ludGVyLWV2ZW50cyIsImJveC1zaGFkb3ciLCJjZGtEcmFnRnJlZURyYWdQb3NpdGlvbiIsImlkIiwibW91c2Vkb3duIiwiY2Rr'@; put 'RHJhZ0VuZGVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiZmlsdGVyLW1vZGFsIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIiwiY2VudGVyIiwidGV4dC1jZW50ZXIiLCJj'@; put 'b2xvci1kYXJrZXItZ3JheSJdLFsxLCJtb2RhbC1ib2R5Il0sWzMsInZpZXdib3hJZCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWxpbmsiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1v'@; put 'dXRsaW5lIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbMSwibGljZW5jZS1ub3RpY2UiXSxbMSwibXktMTAtbXgtYXV0byIsInRleHQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiXSxbMSwibS0wIiwidmlld2JveC1saW1pdC1ub3RpY2UiXSxbMywibGlicmFyeUxpc3QiLCJsaWJyYXJ5T25D'@; put 'bGlja0VtaXR0ZXIiLCJ0YWJsZU9uQ2xpY2tFbWl0dGVyIl0sWzEsInRleHQtY2VudGVyIiwidy0xMDAiLCJtLTAiXSxbMSwib3Blbi12aWV3Ym94IiwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsMywiY2xpY2siXSxbMSwi'@; put 'ZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xyU21hbGwiLCIiLCJjbGFzcyIsIm1sLTMiLDQsIm5nSWYiXSxbInJvbGUiLCJ0b29sdGlwIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEsInRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsMywi'@; put 'Y2xpY2siXSxbInNoYXBlIiwiY3Vyc29yLW1vdmUiLCJzaXplIiwiMTMiXSxbInJvbGUiLCJ0b29sdGlwIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLCJjbGFzcyIsInRvb2x0aXAgdG9vbHRpcC1tZCB0b29sdGlwLWJvdHRvbS1sZWZ0IG1sLTMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFw'@; put 'ZSIsInRpbWVzIiwic2l6ZSIsIjE5Il0sWyJjbHJTbWFsbCIsIiIsMSwibWwtMyJdLFsiY2RrRHJvcExpc3RHcm91cCIsIiIsMSwiY29uZmlndXJhdGlvbi13cmFwcGVyIl0sWzQsIm5nSWYiXSxbMSwiY29scy1zZWFyY2giXSxbInR5cGUiLCJ0ZXh0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwi'@; put 'YXV0b2ZvY3VzIiwiIiwicGxhY2Vob2xkZXIiLCJTZWFyY2ggY29sdW1ucyIsInRhYmluZGV4IiwiMCIsMywiaW5wdXRJZCIsImVtaXRPbmx5U2VsZWN0ZWQiLCJ2YWx1ZUNoYW5nZSJdLFsiaW5wdXQiLCIiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjZGtEcm9wTGlzdCIsIiIsMSwiY29s'@; put 'cy1saXN0IiwzLCJjZGtEcm9wTGlzdERhdGEiLCJjZGtEcm9wTGlzdERyb3BwZWQiXSxbImNka0RyYWciLCIiLDMsImNsYXNzIiwiY3Vyc29yLWRlZmF1bHQtaSIsInByaW1hcnlLZXlIZWFkZXJTdHlsZSIsImNka0RyYWdEYXRhIiwiY2RrRHJhZ0Rpc2FibGVkIiw0LCJuZ0ZvciIsIm5nRm9y'@; put 'T2YiXSxbImNka0RyYWciLCIiLDMsImNka0RyYWdEYXRhIiwiY2RrRHJhZ0Rpc2FibGVkIl0sWyJzaGFwZSIsImtleSIsNCwibmdJZiJdLFsic2hhcGUiLCJ0cmFzaCIsImNsYXNzIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImtleSJdLFsic2hhcGUi'@; put 'LCJ0cmFzaCIsMSwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJjZGtEcmFnQm91bmRhcnkiLCIudmlld2JveGVzLWNvbnRhaW5lciIsImNka0RyYWciLCIiLCJ0YWJpbmRleCIsIjAiLDEsInZpZXdib3giLDMsImNka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uIiwiaWQiLCJtb3VzZWRvd24i'@; put 'LCJjZGtEcmFnRW5kZWQiXSxbInJlc2l6ZUJveCIsIiJdLFsiY2RrRHJhZ0hhbmRsZSIsIiIsMSwiZHJhZy1oYW5kbGUiLCJkLWZsZXgiLCJjbHItanVzdGlmeS1jb250ZW50LWJldHdlZW4iLCJjbHItYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsInRhYmxlLXRpdGxlIl0sWzEsImFjdGlvbnMi'@; put 'XSxbInNoYXBlIiwiYW5nbGUgdG9wIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJhbmdsZSBkb3duIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJtaW51cyIsMywiY2xpY2siXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWyJjZGtEcmFnIiwiIiwxLCJkcmFnSGFu'@; put 'ZGxlIiwiY29ybmVyIiwzLCJpZCIsImNka0RyYWdNb3ZlZCJdLFsiZHJhZ0hhbmRsZUNvcm5lciIsIiJdLFsiY2xyRm9ybSIsIiIsMSwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIiwiY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIiwiY2xyLWZsZXgtd3JhcCIsInRhYmxlLXNlYXJj'@; put 'aC13cmFwcGVyIl0sWzEsImQtZmxleCIsImFsaWduLWl0ZW1zLWNlbnRlciIsImNsci1mbGV4LXdyYXAiXSxbMSwiaW5wdXQtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm5hbWUiLCJzZWFyY2gtaW5wdXQiLDMsInR5cGUiLCJrZXl1cC5lbnRlciJd'@; put 'LFsic2VhcmNoRWwiLCIiXSxbInNoYXBlIiwic2VhcmNoIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItaW5saW5lIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIsIm5hbWUiLCJudW1lcmljX2NoZWNrIiwzLCJuZ01v'@; put 'ZGVsIiwibmdNb2RlbENoYW5nZSJdLFsiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItc20iLDQsIm5nSWYiXSxbInNoYXBlIiwicmVmcmVzaCIsImNsYXNzIiwiY2xpY2staWNvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbInJvbGUiLCJ0b29sdGlwIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEs'@; put 'InRvb2x0aXAiLCJ0b29sdGlwLWxnIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsIm1sLTUiLDMsImNsaWNrIl0sWyJzaGFwZSIsImZpbHRlciIsMSwiY2xpY2staWNvbiJdLFsxLCJ0b29sdGlwLWNvbnRlbnQiLCJ0b29sdGlwLWxvbmciXSxbInNoYXBlIiwicGVuY2lsIiwxLCJjbGljay1pY29u'@; put 'IiwibWwtNSIsMywiY2xpY2siXSxbImNsYXNzIiwiY29udGVudCIsMywiZGlzcGxheSIsNCwibmdWYXIiXSxbInNoYXBlIiwiYW5nbGUgdG9wIiwzLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSBkb3duIiwzLCJjbGljayJdLFsic2hhcGUiLCJzZWFyY2giLDMsImNsaWNrIl0sWzEsInNwaW5u'@; put 'ZXIiLCJzcGlubmVyLWlubGluZSJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSJdLFsic2hhcGUiLCJyZWZyZXNoIiwxLCJjbGljay1pY29uIiwzLCJjbGljayJdLFsxLCJjb250ZW50Il0sWyJjbGFzcyIsImhvdC1zcGlubmVyIG15LTEwLW14LWF1dG8gdGV4dC1jZW50ZXIiLDQsIm5nSWYi'@; put 'XSxbImlkIiwiaG90VGFibGUiLCJzdHJldGNoSCIsImFsbCIsMywiaG90SWQiLCJyZWFkT25seSIsIm1vZGlmeUNvbFdpZHRoIiwiY29weVBhc3RlIiwiY29udGV4dE1lbnUiLCJtdWx0aUNvbHVtblNvcnRpbmciLCJ2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldCIsImRhdGEiLCJjb2xIZWFk'@; put 'ZXJzIiwiY29sdW1ucyIsImZpbHRlcnMiLCJkcm9wZG93bk1lbnUiLCJoZWlnaHQiLCJjZWxscyIsIm1heFJvd3MiLCJtYW51YWxDb2x1bW5SZXNpemUiLCJsaWNlbnNlS2V5Iiw0LCJuZ0lmIl0sWzEsImhvdC1zcGlubmVyIiwibXktMTAtbXgtYXV0byIsInRleHQtY2VudGVyIl0sWyJpZCIs'@; put 'ImhvdFRhYmxlIiwic3RyZXRjaEgiLCJhbGwiLDMsImhvdElkIiwicmVhZE9ubHkiLCJtb2RpZnlDb2xXaWR0aCIsImNvcHlQYXN0ZSIsImNvbnRleHRNZW51IiwibXVsdGlDb2x1bW5Tb3J0aW5nIiwidmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQiLCJkYXRhIiwiY29sSGVhZGVycyIsImNv'@; put 'bHVtbnMiLCJmaWx0ZXJzIiwiZHJvcGRvd25NZW51IiwiaGVpZ2h0IiwiY2VsbHMiLCJtYXhSb3dzIiwibWFudWFsQ29sdW1uUmVzaXplIiwibGljZW5zZUtleSJdLFszLCJ2aWV3Ym94SWQiXSxbInF1ZXJ5RmlsdGVyIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwi'@; put 'Y2xyLW1vZGFsIiwwKSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5jbHJNb2RhbE9wZW5DaGFuZ2UoZil9KSxtZSgxLCJoMyIsMSksTmUoMiwiIFZpZXdib3hlcyAiKSxKZSgzLEtqZSwyLDIsInNwYW4iLDIpLHllKCksbWUoNCwiZGl2IiwzKSg1LCJkaXYi'@; put 'LDQpKDYsInAiLDUpLE5lKDcsIkFkZCBuZXciKSx5ZSgpLHF0KDgsImhyIiw2KSxKZSg5LFhqZSwyLDAsImRpdiIsNyksSmUoMTAsSmplLDIsMCwicCIsOCksSmUoMTEsUWplLDEsMSwiZGMtdHJlZSIsOSkseWUoKSxtZSgxMiwiZGl2IiwxMCkoMTMsImRpdiIsMTEpKDE0LCJwIiw1KSxOZSgx'@; put 'NSwiQ3VycmVudGx5IG9wZW4iKSx5ZSgpLG1lKDE2LCJkaXYiKSgxNywiYSIsMTIpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zbmFwVG9HcmlkKCl9KSxxdCgxOCwiY2xyLWljb24iLDEzKSxtZSgxOSwic3BhbiIsMTQpLE5lKDIwLCJTbmFwIHZpZXdib3hlcyB0byBncmlkIiks'@; put 'eWUoKSgpLG1lKDIxLCJhIiwxMikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLm1pbmltaXplQWxsKCl9KSxxdCgyMiwiY2xyLWljb24iLDE1KSxtZSgyMywic3BhbiIsMTQpLE5lKDI0LCJNaW5pbWl6ZSBhbGwgdmlld2JveGVzIikseWUoKSgpLG1lKDI1LCJhIiwxMikseHQoImNs'@; put 'aWNrIixmdW5jdGlvbigpe3JldHVybiBkLnJlc3RvcmVBbGwoKX0pLHF0KDI2LCJjbHItaWNvbiIsMTYpLG1lKDI3LCJzcGFuIiwxNCksTmUoMjgsIlJlc3RvcmUgYWxsIHZpZXdib3hlcyIpLHllKCkoKSgpKCkscXQoMjksImhyIiksSmUoMzAsZXplLDIsMCwicCIsMTcpLEplKDMxLGl6ZSwx'@; put 'NSwxMCwiZGl2IiwxOCksbWUoMzIsImRpdiIsMTkpKDMzLCJwIiwyMCksTmUoMzQpLHllKCkoKSxxdCgzNSwiaHIiKSxKZSgzNixkemUsMywyLCJkaXYiLDIxKSx5ZSgpKCksbWUoMzcsImRpdiIsMjIpKDM4LCJidXR0b24iLDIzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQudmll'@; put 'd2JveE1vZGFsPSExfSksTmUoMzksIiBPayAiKSx5ZSgpKCkoKSxtZSg0MCwiZGl2IiwyNCksSmUoNDEsQ3plLDMzLDM3LCJkaXYiLDI1KSx5ZSgpLG1lKDQyLCJjbHItbW9kYWwiLDI2KSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5maWx0ZXI9Zn0pLG1l'@; put 'KDQzLCJoMyIsMjcpLE5lKDQ0LCIgRmlsdGVyIGZvciB2aWV3Ym94IHRhYmxlOiAiKSxtZSg0NSwic3BhbiIpLE5lKDQ2KSx5ZSgpKCksbWUoNDcsImRpdiIsMjgpLEplKDQ4LFN6ZSwyLDEsImFwcC1xdWVyeSIsMjkpLHllKCksbWUoNDksImRpdiIsMjIpKDUwLCJidXR0b24iLDMwKSx4dCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucmVzZXRGaWx0ZXIoKX0pLE5lKDUxLCIgcmVzZXQgZmlsdGVyICIpLHllKCksbWUoNTIsImJ1dHRvbiIsMjMpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5maWx0ZXI9ITF9KSxOZSg1MywiIENhbmNlbCAiKSx5ZSgpLG1lKDU0LCJi'@; put 'dXR0b24iLDMxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuc2VuZENsYXVzZSgpfSksTmUoNTUsIiBPayAiKSx5ZSgpKCkoKSksMiZhJiYoUmUoImNsck1vZGFsT3BlbiIsZC52aWV3Ym94TW9kYWwpKCJjbHJNb2RhbENsb3NhYmxlIiwhMCkoImNsck1vZGFsU2l6ZSIsImxnIiks'@; put 'Q2UoMyksUmUoIm5nSWYiLGQubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdib3hfbGltaXQhPT1kLkluZmluaXR5KSxDZSg2KSxSZSgibmdJZiIsZC5saWJyYXJpZXNMb2FkaW5nKSxDZSgxKSxSZSgibmdJZiIsZC52aWV3Ym94TGltaXRSZWFjaGVkKSxDZSgxKSxSZSgibmdJZiIsZC52aWV3Ym94'@; put 'TW9kYWwpLENlKDE5KSxSZSgibmdJZiIsZC52aWV3Ym94ZXMubGVuZ3RoPDEpLENlKDEpLFJlKCJuZ0Zvck9mIixkLnZpZXdib3hlcyksQ2UoMyksZ3IoIiBDb25maWd1cmF0aW9uICgiLG51bGwhPWQuc2VsZWN0ZWRWaWV3Ym94VGFibGUmJmQuc2VsZWN0ZWRWaWV3Ym94VGFibGUudmlld2Jv'@; put 'eExpYkRhdGFzZXQ/IiMiKyhudWxsPT1kLnNlbGVjdGVkVmlld2JveFRhYmxlP251bGw6ZC5zZWxlY3RlZFZpZXdib3hUYWJsZS52aWV3Ym94SWQpKyIgIisobnVsbD09ZC5zZWxlY3RlZFZpZXdib3hUYWJsZT9udWxsOmQuc2VsZWN0ZWRWaWV3Ym94VGFibGUudmlld2JveExpYkRhdGFzZXQp'@; put 'OiJzZWxlY3Qgdmlld2JveCBmcm9tIGFib3ZlIiwiKSAiKSxDZSgyKSxSZSgibmdWYXIiLHlfKDE5LE16ZSxudWxsPT1kLnNlbGVjdGVkVmlld2JveFRhYmxlfHxudWxsPT1kLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlP251bGw6ZC5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJs'@; put 'ZS5jb2xIZWFkZXJzSGlkZGVuLG51bGw9PWQuc2VsZWN0ZWRWaWV3Ym94VGFibGV8fG51bGw9PWQuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGU/bnVsbDpkLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlLmNvbEhlYWRlcnNWaXNpYmxlLG51bGw9PWQuc2VsZWN0ZWRWaWV3Ym94'@; put 'VGFibGV8fG51bGw9PWQuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGU/bnVsbDpkLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlLmhlYWRlclBrcykpLENlKDUpLFJlKCJuZ0Zvck9mIixkLnZpZXdib3hlcyksQ2UoMSksUmUoImNsck1vZGFsT3BlbiIsZC5maWx0ZXIpKCJjbHJN'@; put 'b2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksQ2UoNCksemMoIiAjIixudWxsPT1kLmZpbHRlcmluZ1ZpZXdib3g/bnVsbDpkLmZpbHRlcmluZ1ZpZXdib3guaWQsIiAiLGQuZmlsdGVyTGliZHMsIiAiKSxDZSgyKSxSZSgibmdJZiIsZC5maWx0ZXIpLENlKDYpLFJlKCJj'@; put 'bHJMb2FkaW5nIixkLmZpbHRlckxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOlt4cyxaaSxrYSxvdSxzdSxadSxkaCxVcyxYSixEMCxEOCxUMCxmMSx1MixDcCxsMSxjMSxTMCxCcyx3cCxPcyxyMixjVSx4eSx2c2UscHNlLHdzZSxfc2UsU3NlLEdqZSxVNyxZYl0sc3R5bGVzOlsiLmxpY2VuY2Ut'@; put 'bm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MTRweDtkaXNwbGF5OmJsb2NrO29wYWNpdHk6LjZ9Y2xyLW1vZGFsLnJvb3QtbW9kYWxbX25nY29udGVudC0lQ09NUCVde3otaW5kZXg6MTMwMH1jbHItbW9kYWwucm9vdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5t'@; put 'b2RhbC1ib2R5LXdyYXBwZXJ7aGVpZ2h0OmNhbGMoMTAwJSAtIDYwcHgpfWNsci1tb2RhbC5yb290LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1vZGFsLWNvbnRlbnR7aGVpZ2h0Ojgwdmh9Y2xyLW1vZGFsLnJvb3QtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLm1vZGFsLWZv'@; put 'b3Rlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowfWNsci1tb2RhbC5yb290LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tb2RhbC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEwMCU7aGVpZ2h0OjEwMCV9ZGMtdHJlZVtfbmdjb250ZW50LSVDT01QJV17b3Zl'@; put 'cmZsb3c6YXV0bztmbGV4OjF9LnRvb2x0aXAtbG9uZ1tfbmdjb250ZW50LSVDT01QJV17d29yZC1icmVhazpicmVhay13b3JkfS5hZGQtbmV3W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo1MCU7cGFkZGluZy1yaWdodDo1cHh9LnZpZXdib3gtbGltaXQtbm90aWNlW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXXtvcGFjaXR5Oi43O2NvbG9yOiNlNzRjM2N9LmN1cnJlbnRseS1vcGVuW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo1MCV9LmN1cnJlbnRseS1vcGVuW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vcGVuLXZpZXdib3hbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpwb2ludGVyO3BhZGRp'@; put 'bmc6M3B4IDVweH0uY3VycmVudGx5LW9wZW5bX25nY29udGVudC0lQ09NUCVdICAgLm9wZW4tdmlld2JveC5zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDYwLDEzMywwLC4xODAzOTIxNTY5KX0uY3VycmVudGx5LW9wZW5bX25nY29udGVudC0lQ09NUCVdICAg'@; put 'Lm9wZW4tdmlld2JveFtfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7YmFja2dyb3VuZDojZThlOGU4fS52aWV3Ym94ZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDo5OTl9LnZpZXdib3hbX25n'@; put 'Y29udGVudC0lQ09NUCVde21pbi13aWR0aDoyMDBweDttaW4taGVpZ2h0OjIwMHB4O3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDtwb2ludGVyLWV2ZW50czphbGw7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXIt'@; put 'dG9wLXJpZ2h0LXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDAgMTBweCAtM3B4ICMwMDB9LnZpZXdib3guZm9jdXNlZFtfbmdjb250ZW50LSVDT01QJV17ei1pbmRleDoxMTAwO291dGxpbmU6bm9uZX0udmlld2JveFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudFtfbmdjb250ZW50LSVD'@; put 'T01QJV17Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zMDE5NjA3ODQzKTtiYWNrZ3JvdW5kOndoaXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ZmxleDoxO292ZXJmbG93LXg6YXV0b30udmlld2JveFtfbmdjb250ZW50LSVDT01QJV0gICAuZHJhZy1oYW5kbGVbX25nY29udGVudC0l'@; put 'Q09NUCVde3dpZHRoOjEwMCU7bWluLWhlaWdodDoyMHB4O2JhY2tncm91bmQtY29sb3I6IzNjODUwMDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Y29sb3I6I2ZmZjtwYWRkaW5nOjAgNXB4O3BvaW50ZXItZXZlbnRzOmFsbH0udmlld2Jv'@; put 'eFtfbmdjb250ZW50LSVDT01QJV0gICAuZHJhZy1oYW5kbGVbX25nY29udGVudC0lQ09NUCVdICAgLnRhYmxlLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLWFsbH0udmlld2JveFtfbmdjb250ZW50LSVDT01QJV0gICAuZHJh'@; put 'Zy1oYW5kbGVbX25nY29udGVudC0lQ09NUCVdICAgLmFjdGlvbnNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDttaW4td2lkdGg6MzVweH0udmlld2JveFtfbmdjb250ZW50LSVDT01QJV0gICAuZHJhZy1oYW5kbGVbX25nY29udGVudC0lQ09NUCVdICAgLmFjdGlvbnNbX25nY29u'@; put 'dGVudC0lQ09NUCVdICAgY2xyLWljb25bX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpwb2ludGVyO21hcmdpbi1sZWZ0OjVweH0udmlld2JveFtfbmdjb250ZW50LSVDT01QJV0gICAuZHJhZy1oYW5kbGVbX25nY29udGVudC0lQ09NUCVdICAgLmFjdGlvbnNbX25nY29udGVudC0lQ09NUCVd'@; put 'ICAgY2xyLWljb25bX25nY29udGVudC0lQ09NUCVdOmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjMpfS52aWV3Ym94W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGljay1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcn0udmlld2JveFtfbmdjb250ZW50LSVDT01QJV0gICAu'@; put 'Y2xpY2staWNvbltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMyl9LnZpZXdib3hbX25nY29udGVudC0lQ09NUCVdICAgLmRyYWdIYW5kbGVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlfS52aWV3Ym94W19uZ2NvbnRlbnQtJUNPTVAlXSAg'@; put 'IC5kcmFnSGFuZGxlLmNvcm5lcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtjdXJzb3I6bndzZS1yZXNpemV9LnZpZXdib3hbX25nY29udGVudC0lQ09NUCVdICAgLmRyYWdIYW5kbGUucmlnaHRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjJweDtoZWlnaHQ6'@; put 'MTAwJTtjdXJzb3I6ZXctcmVzaXplfS52aWV3Ym94W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcmFnSGFuZGxlLmJvdHRvbVtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjJweDt3aWR0aDoxMDAlO2N1cnNvcjpucy1yZXNpemV9LmNvbHMtc2VhcmNoW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0'@; put 'aDoxMDAlO21hcmdpbi10b3A6NXB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMjc4NDMxMzcyNSk7Ym9yZGVyLXJhZGl1czozcHh9LmNvbHMtbGlzdFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOnNvbGlkIDFweCAjY2NjO21pbi1oZWlnaHQ6NjBweDtiYWNrZ3JvdW5kOndoaXRl'@; put 'O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO3dpZHRoOjQwMHB4O21heC13aWR0aDoxMDAlO21hcmdpbi10b3A6NXB4fS5jb2wtYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAxMHB4O2JvcmRlci1ib3R0b206c29saWQgMXB4ICNjY2M7'@; put 'Y29sb3I6IzAwMDAwMGRlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6bW92ZTtiYWNrZ3JvdW5kOndoaXRlO2ZvbnQtc2l6ZToxNHB4fS5j'@; put 'b2wtYm94LnNlYXJjaFtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMDE5NjA3ODQzKX0uY29sLWJveC5wcmltYXJ5S2V5SGVhZGVyU3R5bGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiYSg0OCwxMDcsMCwuMTQxMTc2NDcwNil9LmNk'@; put 'ay1kcmFnLXByZXZpZXdbX25nY29udGVudC0lQ09NUCVde2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjAgNXB4IDVweCAtM3B4ICMwMDAzLDAgOHB4IDEwcHggMXB4ICMwMDAwMDAyNCwwIDNweCAxNHB4IDJweCAjMDAwMDAwMWY7ei1pbmRleDox'@; put 'MzAwIWltcG9ydGFudH0uY2RrLWRyYWctcGxhY2Vob2xkZXJbX25nY29udGVudC0lQ09NUCVde29wYWNpdHk6MH0uY2RrLWRyYWctYW5pbWF0aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9LmNvbC1ib3hbX25n'@; put 'Y29udGVudC0lQ09NUCVdOmxhc3QtY2hpbGR7Ym9yZGVyOm5vbmV9LmNvbHMtbGlzdC5jZGstZHJvcC1saXN0LWRyYWdnaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2wtYm94W19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoLmNkay1kcmFnLXBsYWNlaG9sZGVyKXt0cmFuc2l0aW9uOnRyYW5z'@; put 'Zm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9LmRpc2FibGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi41O3RyYW5zZm9ybTpub25lIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfS5maWx0ZXItYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojMDA3MmEz'@; put 'fWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5maXJzdENvbHVtbkhlYWRlclN0eWxlIGJ1dHRvbi5jaGFuZ2VUeXBle2Rpc3BsYXk6bm9uZX1ob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICAuaGFuZHNvbnRhYmxlIHRib2R5IHRoLmh0X19oaWdobGlnaHQucHJpbWFy'@; put 'eUtleUhlYWRlclN0eWxlLCBob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICAuaGFuZHNvbnRhYmxlIHRoZWFkIHRoLmh0X19oaWdobGlnaHQucHJpbWFyeUtleUhlYWRlclN0eWxle2JhY2tncm91bmQ6cmdiYSg0OCwxMDcsMCwuNjkwMTk2MDc4NCl9aG90LXRhYmxlW19uZ2NvbnRl'@; put 'bnQtJUNPTVAlXSAgICAgLnByaW1hcnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kOnJnYmEoNDgsMTA3LDAsLjQzMTM3MjU0OSl9aG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgdGgucmVhZG9ubHlDZWxsIGRpdntvcGFjaXR5Oi40fWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01Q'@; put 'JV0gICAgIHRkLnJlYWRvbmx5Q2VsbHtvcGFjaXR5Oi41fSJdfSksY30pKCksRXNlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5maWxlT3Zlcj1uZXcgRXIsdGhpcy5maWxlRHJvcD1uZXcgRXIsdGhpcy5lbGVtZW50PWF9b25Ecm9wKGEpe3RoaXMuX3ByZXZlbnRBbmRTdG9w'@; put 'KGEpO2NvbnN0IGQ9YS5kYXRhVHJhbnNmZXI/LmZpbGVzLGg9W107aWYoZClmb3IobGV0IGY9MDtmPGQubGVuZ3RoO2YrKyloLnB1c2goZFtmXSk7dGhpcy51cGxvYWRlcj8uYWRkVG9RdWV1ZShoKSx0aGlzLmZpbGVPdmVyLmVtaXQoITEpLHRoaXMuZmlsZURyb3AuZW1pdChoKX1vbkRyYWdP'@; put 'dmVyKGEpe3RoaXMuX3ByZXZlbnRBbmRTdG9wKGEpO2NvbnN0IGQ9YS5kYXRhVHJhbnNmZXI7aWYoZCl7aWYoLTE9PT1kLnR5cGVzLmluZGV4T2YoIkZpbGVzIikpcmV0dXJuO2QuZHJvcEVmZmVjdD0iY29weSJ9dGhpcy5maWxlT3Zlci5lbWl0KCEwKX1vbkRyYWdMZWF2ZShhKXt0aGlzLl9w'@; put 'cmV2ZW50QW5kU3RvcChhKSx0aGlzLmZpbGVPdmVyLmVtaXQoITEpfV9wcmV2ZW50QW5kU3RvcChhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoTmkpKX0sYy5cdTAyNzVk'@; put 'aXI9Q3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiYXBwRmlsZURyb3AiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4dCgiZHJvcCIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25Ecm9wKGYpfSkoImRyYWdvdmVyIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkRyYWdPdmVy'@; put 'KGYpfSkoImRyYWdsZWF2ZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25EcmFnTGVhdmUoZil9KX0saW5wdXRzOnt1cGxvYWRlcjoidXBsb2FkZXIifSxvdXRwdXRzOntmaWxlT3ZlcjoiZmlsZU92ZXIiLGZpbGVEcm9wOiJmaWxlRHJvcCJ9fSksY30pKCksa3NlPSgoKT0+e2NsYXNzIGN7Y29u'@; put 'c3RydWN0b3IoYSl7dGhpcy5maWxlU2VsZWN0ZWQ9bmV3IEVyLHRoaXMuZWxlbWVudD1hfWlzRW1wdHlBZnRlclNlbGVjdGlvbigpe3JldHVybiEhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy5tdWx0aXBsZX1vbkNoYW5nZSgpe2NvbnN0IGE9dGhpcy5lbGVtZW50Lm5h'@; put 'dGl2ZUVsZW1lbnQuZmlsZXM7dGhpcy51cGxvYWRlcj8uYWRkVG9RdWV1ZShhKSx0aGlzLmZpbGVTZWxlY3RlZC5lbWl0KGEpLHRoaXMuaXNFbXB0eUFmdGVyU2VsZWN0aW9uKCkmJih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZT0iIil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KE5pKSl9LGMuXHUwMjc1ZGlyPUNyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImFwcEZpbGVTZWxlY3QiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4dCgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBkLm9uQ2hhbmdl'@; put 'KCl9KX0saW5wdXRzOnt1cGxvYWRlcjoidXBsb2FkZXIifSxvdXRwdXRzOntmaWxlU2VsZWN0ZWQ6ImZpbGVTZWxlY3RlZCJ9fSksY30pKCk7ZnVuY3Rpb24geHplKGMsbCl7MSZjJiYobWUoMCwicCIsOCksTmUoMSwiIE5vIGRhdGFzZXQgbWV0YSB0byBzaG93LiAiKSx5ZSgpKX1mdW5jdGlv'@; put 'biBFemUoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItZGctcm93IikoMSwiY2xyLWRnLWNlbGwiKSxOZSgyKSx5ZSgpLG1lKDMsImNsci1kZy1jZWxsIiksTmUoNCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMiksb3IoYS5OQU1FKSxDZSgyKSxvcihhLlZBTFVFKX19ZnVu'@; put 'Y3Rpb24ga3plKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXRhYi1jb250ZW50IiwxMSkoMSwiY2xyLWRhdGFncmlkIikoMiwiY2xyLWRnLWNvbHVtbiIpLE5lKDMsIk5hbWUiKSx5ZSgpLG1lKDQsImNsci1kZy1jb2x1bW4iKSxOZSg1LCJWYWx1ZSIpLHllKCksSmUoNixFemUsNSwyLCJjbHIt'@; put 'ZGctcm93Iiw1KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdDtDZSg2KSxSZSgibmdGb3JPZiIsYS5kc21ldGEpfX1mdW5jdGlvbiBBemUoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdGFiIikoMSwiYnV0dG9uIiw5KSxOZSgyKSx5ZSgpLEplKDMsa3plLDcsMSwiY2xyLXRh'@; put 'Yi1jb250ZW50IiwxMCkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9bC5pbmRleDtDZSgyKSxvcihhLmdyb3VwKSxDZSgxKSxSZSgiY2xySWZBY3RpdmUiLDA9PT1kKX19bGV0IEFzZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5vcGVuPSExLHRoaXMuZHNtZXRh'@; put 'PVtdLHRoaXMub3BlbkNoYW5nZT1uZXcgRXIsdGhpcy5kc21ldGFHcm91cHBlZD1bXX1uZ09uSW5pdCgpe31uZ09uQ2hhbmdlcyhhKXthLmRzbWV0YT8uY3VycmVudFZhbHVlPy5sZW5ndGg+MCYmdGhpcy5wYXJzZURTTWV0YSgpfXBhcnNlRFNNZXRhKCl7dGhpcy5kc21ldGFHcm91cHBlZD1b'@; put 'XTtmb3IobGV0IGEgb2YgdGhpcy5kc21ldGEpe2xldCBkPXRoaXMuZHNtZXRhR3JvdXBwZWQuZmluZEluZGV4KGg9PmguZ3JvdXA9PT1hLk9EU19UQUJMRSk7ZDwwJiYoZD10aGlzLmRzbWV0YUdyb3VwcGVkLnB1c2goe2dyb3VwOmEuT0RTX1RBQkxFLGRzbWV0YTpbXX0pLTEpLHRoaXMuZHNt'@; put 'ZXRhR3JvdXBwZWRbZF0uZHNtZXRhLnB1c2goYSl9fW9uT3BlbkNoYW5nZShhKXt0aGlzLm9wZW49YSx0aGlzLm9wZW5DaGFuZ2UuZW1pdChhKX1vbkNsb3NlQ2xpY2soKXt0aGlzLm9uT3BlbkNoYW5nZSghMSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8'@; put 'fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtZGF0YXNldC1pbmZvIl1dLGlucHV0czp7b3Blbjoib3BlbiIsZHNtZXRhOiJkc21ldGEifSxvdXRwdXRzOntvcGVuQ2hhbmdlOiJvcGVuQ2hhbmdlIn0sZmVhdHVyZXM6W3ZhXSxkZWNsczoxMCx2YXJzOjUsY29u'@; put 'c3RzOltbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSIsImNlbnRlciIsInRleHQtY2VudGVyIiwiY29sb3ItZGFya2VyLWdyYXkiXSxbMSwibW9kYWwtYm9keSJdLFsiY2xhc3Mi'@; put 'LCJ0ZXh0LWNlbnRlciIsNCwibmdJZiJdLFsiY2xyTGF5b3V0IiwidmVydGljYWwiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsMywiY2xpY2siXSxbMSwidGV4dC1j'@; put 'ZW50ZXIiXSxbImNsclRhYkxpbmsiLCIiLCJpZCIsImxpbmsxIl0sWyJpZCIsImNvbnRlbnQxIiwiY2xhc3MiLCJkLWZsZXggY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDAiLDQsImNscklmQWN0aXZlIl0sWyJpZCIsImNvbnRlbnQxIiwxLCJkLWZsZXgiLCJjbHItanVzdGlmeS1j'@; put 'b250ZW50LWNlbnRlciIsInctMTAwIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiY2xyLW1vZGFsIiwwKSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbk9wZW5DaGFuZ2UoZil9KSxtZSgxLCJoMyIsMSksTmUoMiwiRGF0YXNldCBN'@; put 'ZXRhIikseWUoKSxtZSgzLCJkaXYiLDIpLEplKDQseHplLDIsMCwicCIsMyksbWUoNSwiY2xyLXRhYnMiLDQpLEplKDYsQXplLDQsMiwiY2xyLXRhYiIsNSkseWUoKSgpLG1lKDcsImRpdiIsNikoOCwiYnV0dG9uIiw3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25DbG9zZUNs'@; put 'aWNrKCl9KSxOZSg5LCIgQ2xvc2UgIikseWUoKSgpKCkpLDImYSYmKFJlKCJjbHJNb2RhbE9wZW4iLGQub3BlbikoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCEwKSxDZSg0KSxSZSgibmdJZiIsZC5kc21ldGFHcm91cHBlZC5sZW5ndGg8MSksQ2UoMiksUmUoIm5n'@; put 'Rm9yT2YiLGQuZHNtZXRhR3JvdXBwZWQpKX0sZGVwZW5kZW5jaWVzOlt4cyxaaSxXOCxUcCx0ZyxuZyxyZyxpZywkOCxvZyxCOCxrcCx6OCxvdSxzdSxFOCxMcCxPcCxkZyxScCxJcCxjZ10sc3R5bGVzOlsiLm1vZGFsLWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXRhYnNbX25nY29u'@; put 'dGVudC0lQ09NUCVde21heC1oZWlnaHQ6NzB2aH0ubW9kYWwtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICAgIC50YWItY29udGVudHt3aWR0aDoxMDAlO292ZXJmbG93OmF1dG99Lm1vZGFsLWJvZHlbX25nY29udGVudC0lQ09NUCVdICAgICAudGFiLWNvbnRlbnQgLmRhdGFncmlkLW91dGVy'@; put 'LXdyYXBwZXJ7d2lkdGg6MTAwJX0iXX0pLGN9KSgpO2Z1bmN0aW9uIFR6ZShjLGwpe2lmKDEmYyYmKG1lKDAsInNwYW4iLDEzKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksb3IoYS5nZW5lcmF0ZWRSZWNvcmRVcmwpfX1mdW5jdGlvbiBEemUoYyxsKXtpZigxJmMpe2Nv'@; put 'bnN0IGE9Vm4oKTttZSgwLCJidXR0b24iLDE0KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmdlbmVyYXRlRWRpdFJlY29yZFVybCgpKX0pLE5lKDEpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpO1JlKCJkaXNhYmxlZCIsYS5nZW5lcmF0ZUVkaXRSZWNv'@; put 'cmRVcmxMb2FkaW5nKSxDZSgxKSxncigiICIsYS5nZW5lcmF0ZWRSZWNvcmRVcmw/ImNvcHkgdG8gY2xpcGJvYXJkIjphLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc/IkdlbmVyYXRpbmcgdXJsLi4uIjoiTGluayB0byB0aGlzIHJlY29yZCIsIiAiKX19ZnVuY3Rpb24gSXplKGMsbCl7'@; put 'aWYoMSZjJiYoVnIoMCksSmUoMSxUemUsMiwxLCJzcGFuIiwxMSksSmUoMixEemUsMiwyLCJidXR0b24iLDEyKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJZiIsIShudWxsIT1hLmN1cnJlbnRSZWNvcmQmJmEuY3VycmVudFJlY29yZC5ub0xpbmtPcHRpb24pKSxDZSgx'@; put 'KSxSZSgibmdJZiIsIShudWxsIT1hLmN1cnJlbnRSZWNvcmQmJmEuY3VycmVudFJlY29yZC5ub0xpbmtPcHRpb24pKX19ZnVuY3Rpb24gTHplKGMsbCl7MSZjJiYobWUoMCwiZGl2IiwxNSkoMSwic3BhbiIsMTYpLE5lKDIsIiBMb2FkaW5nLi4uICIpLHllKCkoKSl9ZnVuY3Rpb24gUnplKGMs'@; put 'bCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsMjkpfWZ1bmN0aW9uIE96ZShjLGwpezEmYyYmKG1lKDAsInNwYW4iLDMwKSxOZSgxLCIgTG9hZGluZy4uLiAiKSx5ZSgpKX1mdW5jdGlvbiBQemUoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwzMSl9ZnVuY3Rpb24gRnplKGMsbCl7aWYoMSZjKXtj'@; put 'b25zdCBhPVZuKCk7bWUoMCwiY2xyLWlucHV0LWNvbnRhaW5lciIsMzMpKDEsImlucHV0IiwzNCkseHQoImZvY3VzaW4iLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoMykuaW5kZXg7cmV0dXJuIGp0KFZlKDIpLm9uUmVjb3JkSW5wdXRGb2N1cyhoLGYpKX0pKCJwYXN0ZSIsZnVuY3Rp'@; put 'b24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDUpLnJlY29yZElucHV0UGFzdGUoaCkpfSkoImlucHV0IixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKDMpLiRpbXBsaWNpdCxfPVZlKDIpO3JldHVybiBfLnJlY29yZElucHV0Q2hhbmdlKGgsZi5rZXkpLGp0KF8uY3VycmVudFJlY29yZC5u'@; put 'b0xpbmtPcHRpb249ITApfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoMykuJGltcGxpY2l0O3JldHVybiBqdChWZSgyKS5jdXJyZW50UmVjb3JkW2Yua2V5XT1oKX0pLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoMykuJGltcGxpY2l0LGQ9VmUoMik7'@; put 'ZHIoImludmFsaWQtZGF0YSIsZC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoYS5rZXkpKSxDZSgxKSxSZSgibmdNb2RlbCIsZC5jdXJyZW50UmVjb3JkW2Eua2V5XSl9fWZ1bmN0aW9uIEh6ZShjLGwpezEmYyYmamEoMCl9Y29uc3QgdVU9ZnVuY3Rpb24oYyxsKXtyZXR1cm57'@; put 'Y29sOmMsY29sSW5kZXg6bH19O2Z1bmN0aW9uIE56ZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIpLEplKDEsSHplLDEsMCwibmctY29udGFpbmVyIiwzNSkseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpLGQ9YS4kaW1wbGljaXQsaD1hLmluZGV4O1ZlKDIpO2NvbnN0IGY9JGkoMTYpO0NlKDEp'@; put 'LFJlKCJuZ1RlbXBsYXRlT3V0bGV0IixmKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLFEyKDIsdVUsZCxoKSl9fWNvbnN0IFZ6ZT1mdW5jdGlvbigpe3JldHVyblsibnVtZXJpYyIsdm9pZCAwXX0sVHNlPWZ1bmN0aW9uKCl7cmV0dXJuWyJhdXRvY29tcGxldGUiXX07ZnVuY3Rpb24gQnpl'@; put 'KGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSxGemUsMiwzLCJjbHItaW5wdXQtY29udGFpbmVyIiwzMiksSmUoMixOemUsMiw1LCJkaXYiLDIpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgyKS4kaW1wbGljaXQsZD1WZSgyKTtsZXQgaCxmO0NlKDEpLFJlKCJuZ0lmIiwkcygyLFZ6ZSkuaW5jbHVk'@; put 'ZXMobnVsbD09ZC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oaD1kLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShhLmtleSkpP251bGw6aC5lZGl0b3IpKSxDZSgxKSxSZSgibmdJZiIsJHMoMyxUc2UpLmluY2x1ZGVzKG51bGw9PWQuY3VycmVudFJlY29yZFZhbGlkYXRv'@; put 'cnx8bnVsbD09KGY9ZC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoYS5rZXkpKT9udWxsOmYuZWRpdG9yKSl9fWZ1bmN0aW9uIGp6ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10ZXh0YXJlYS1jb250YWluZXIiKSgxLCJ0ZXh0YXJlYSIsMzYsMzcpLHh0KCJm'@; put 'b2N1c2luIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKDMpLmluZGV4O3JldHVybiBqdChWZSgyKS5vblJlY29yZElucHV0Rm9jdXMoaCxmKSl9KSgicGFzdGUiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSg1KS5yZWNvcmRJbnB1dFBhc3RlKGgpKX0pKCJpbnB1dCIsZnVu'@; put 'Y3Rpb24oaCl7QnQoYSk7Y29uc3QgZj1WZSgzKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKDIpLnJlY29yZElucHV0Q2hhbmdlKGgsZi5rZXkpKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKDMpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoMikuY3VycmVu'@; put 'dFJlY29yZFtmLmtleV09aCl9KSxOZSgzLCIgICAgICAgICAgICAgICAgICAiKSx5ZSgpLG1lKDQsImNsci1jb250cm9sLWhlbHBlciIpLE5lKDUpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMiksZD1WZSgzKS4kaW1wbGljaXQsaD1WZSgyKTtsZXQgZixfLFQ7Q2UoMSksZHIoImludmFs'@; put 'aWQtZGF0YSIsaC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoZC5rZXkpKSgibm90LWNoYXIiLG51bGw9PWguY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KGY9aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoZC5rZXkpKT9udWxsOmYudHlwZSksUmUoInJv'@; put 'd3MiLGQudmFsdWUubGVuZ3RoPjgwPzY6MSkoIm5nTW9kZWwiLGguY3VycmVudFJlY29yZFtkLmtleV0pKCJtYXhMZW5ndGgiLG51bGw9PWguY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KF89aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoZC5rZXkpKT9udWxsOl8ubGVu'@; put 'Z3RoKSxDZSg0KSx6YygiIixhLnZhbHVlLmxlbmd0aCwiIC8gIixudWxsPT1oLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShUPWguY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGQua2V5KSk/bnVsbDpULmxlbmd0aCwiIil9fWZ1bmN0aW9uIHp6ZShjLGwpezEmYyYmamEo'@; put 'MCl9ZnVuY3Rpb24gVXplKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiksSmUoMSx6emUsMSwwLCJuZy1jb250YWluZXIiLDM1KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMyksZD1hLiRpbXBsaWNpdCxoPWEuaW5kZXg7VmUoMik7Y29uc3QgZj0kaSgxNik7Q2UoMSksUmUoIm5nVGVtcGxhdGVP'@; put 'dXRsZXQiLGYpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsUTIoMix1VSxkLGgpKX19Y29uc3QgWnplPWZ1bmN0aW9uKCl7cmV0dXJuW3ZvaWQgMF19O2Z1bmN0aW9uIFl6ZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsanplLDYsOSwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIsMiksSmUo'@; put 'MixVemUsMiw1LCJkaXYiLDIpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgyKS4kaW1wbGljaXQsZD1WZSgyKTtsZXQgaCxmO0NlKDEpLFJlKCJuZ0lmIiwkcygyLFp6ZSkuaW5jbHVkZXMobnVsbD09ZC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oaD1kLmN1cnJlbnRSZWNvcmRWYWxp'@; put 'ZGF0b3IuZ2V0UnVsZShhLmtleSkpP251bGw6aC5lZGl0b3IpKSxDZSgxKSxSZSgibmdJZiIsJHMoMyxUc2UpLmluY2x1ZGVzKG51bGw9PWQuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KGY9ZC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoYS5rZXkpKT9udWxsOmYuZWRp'@; put 'dG9yKSl9fWZ1bmN0aW9uIFd6ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10ZXh0YXJlYS1jb250YWluZXIiLDM4KSgxLCJ0ZXh0YXJlYSIsMzkpLHh0KCJwYXN0ZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDQpLnJlY29yZElucHV0UGFzdGUoaCkpfSko'@; put 'ImlucHV0IixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKDIpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoMikucmVjb3JkSW5wdXRDaGFuZ2UoaCxmLmtleSkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoMikuJGltcGxpY2l0O3JldHVybiBqdChW'@; put 'ZSgyKS5jdXJyZW50UmVjb3JkW2Yua2V5XT1oKX0pLHllKCksbWUoMiwiY2xyLWNvbnRyb2wtaGVscGVyIiksTmUoMywiSEg6bW06c3MiKSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpLiRpbXBsaWNpdCxkPVZlKDIpO2xldCBoO0NlKDEpLGRyKCJpbnZhbGlkLWRhdGEiLGQuY3VycmVu'@; put 'dFJlY29yZEludmFsaWRDb2xzLmluY2x1ZGVzKGEua2V5KSkoIm5vdC1jaGFyIixudWxsPT1kLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShoPWQuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGEua2V5KSk/bnVsbDpoLnR5cGUpLFJlKCJyb3dzIixhLnZhbHVlLmxlbmd0'@; put 'aD44MD82OjEpKCJuZ01vZGVsIixkLmN1cnJlbnRSZWNvcmRbYS5rZXldKX19ZnVuY3Rpb24gR3plKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwzOCkoMSwidGV4dGFyZWEiLDQwKSx4dCgicGFzdGUiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSg0KS5yZWNv'@; put 'cmRJbnB1dFBhc3RlKGgpKX0pKCJpbnB1dCIsZnVuY3Rpb24oaCl7QnQoYSk7Y29uc3QgZj1WZSgyKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKDIpLnJlY29yZElucHV0Q2hhbmdlKGgsZi5rZXkpKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKDIpLiRp'@; put 'bXBsaWNpdDtyZXR1cm4ganQoVmUoMikuY3VycmVudFJlY29yZFtmLmtleV09aCl9KSx5ZSgpLG1lKDIsImNsci1kYXRlLWNvbnRhaW5lciIsNDEpKDMsImlucHV0Iiw0MikseHQoImNsckRhdGVDaGFuZ2UiLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoMikuJGltcGxpY2l0O3JldHVy'@; put 'biBqdChWZSgyKS5yZWNvcmREYXRlQ2hhbmdlKGgsZi5rZXkpKX0pLHllKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgyKS4kaW1wbGljaXQsZD1WZSgyKTtDZSgxKSxkcigiaW52YWxpZC1kYXRhIixkLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5pbmNsdWRlcyhhLmtleSkpLFJlKCJuZ01v'@; put 'ZGVsIixkLmN1cnJlbnRSZWNvcmRbYS5rZXldKX19ZnVuY3Rpb24gJHplKGMsbCl7MSZjJiZqYSgwKX1mdW5jdGlvbiBxemUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiKSxKZSgxLCR6ZSwxLDAsIm5nLWNvbnRhaW5lciIsMzUpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgyKSxkPWEuJGltcGxp'@; put 'Y2l0LGg9YS5pbmRleDtWZSgyKTtjb25zdCBmPSRpKDE2KTtDZSgxKSxSZSgibmdUZW1wbGF0ZU91dGxldCIsZikoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixRMigyLHVVLGQsaCkpfX1mdW5jdGlvbiBLemUoYyxsKXtpZigxJmMmJihWcigwKSxtZSgxLCJkaXYiLDE4KSgyLCJkaXYiLDE5'@; put 'KSgzLCJwIiwyMCksTmUoNCksSmUoNSxSemUsMSwwLCJjbHItaWNvbiIsMjEpLHllKCksbWUoNiwicCIsMjIpLE5lKDcpLHllKCkoKSxtZSg4LCJkaXYiLDIzKSxKZSg5LE96ZSwyLDAsInNwYW4iLDI0KSxKZSgxMCxQemUsMSwwLCJjbHItaWNvbiIsMjUpLEplKDExLEJ6ZSwzLDQsIm5nLWNv'@; put 'bnRhaW5lciIsMjYpLEplKDEyLFl6ZSwzLDQsIm5nLWNvbnRhaW5lciIsMjYpLEplKDEzLFd6ZSw0LDYsImNsci10ZXh0YXJlYS1jb250YWluZXIiLDI3KSxKZSgxNCxHemUsNCwzLCJkaXYiLDI3KSxKZSgxNSxxemUsMiw1LCJkaXYiLDI2KSx5ZSgpKCkscXQoMTYsImhyIiwyOCksenIoKSks'@; put 'MiZjKXtjb25zdCBhPVZlKCksZD1hLiRpbXBsaWNpdCxoPWEuaW5kZXgsZj1WZSgyKTtsZXQgXyxUO0NlKDQpLGdyKCIgIixkLmtleSwiICIpLENlKDEpLFJlKCJuZ0lmIixmLmlzQ29sUGsoZC5rZXkpKSxDZSgyKSxncigiICIsbnVsbD09Zi5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxs'@; put 'PT0oXz1mLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShkLmtleSkpP251bGw6Xy5kZXNjLCIgIiksQ2UoMSksUmUoIm5nU3dpdGNoIixudWxsPT1mLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShUPWYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGQua2V5KSk/'@; put 'bnVsbDpULnR5cGUpLENlKDEpLFJlKCJuZ0lmIixmLmN1cnJlbnRSZWNvcmRMb2FkaW5ncy5pbmNsdWRlcyhoKSksQ2UoMSksUmUoIm5nSWYiLGYuY3VycmVudFJlY29yZEVycm9ycy5pbmNsdWRlcyhoKSksQ2UoMSksUmUoIm5nU3dpdGNoQ2FzZSIsIm51bWVyaWMiKSxDZSgxKSxSZSgibmdT'@; put 'd2l0Y2hDYXNlIix2b2lkIDApLENlKDEpLFJlKCJuZ1N3aXRjaENhc2UiLCJ0aW1lIiksQ2UoMSksUmUoIm5nU3dpdGNoQ2FzZSIsImRhdGUiKSxDZSgxKSxSZSgibmdTd2l0Y2hDYXNlIiwiYXV0b2NvbXBsZXRlIil9fWZ1bmN0aW9uIFh6ZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsS3pl'@; put 'LDE3LDExLCJuZy1jb250YWluZXIiLDIpLHpyKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgxKSxSZSgibmdJZiIsIkFjdGlvbiIhPT1hLmtleSYmIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1hLmtleSYmIm5vTGlua09wdGlvbiIhPT1hLmtleSl9fWZ1bmN0aW9u'@; put 'IEp6ZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsWHplLDIsMSwibmctY29udGFpbmVyIiwxNyksYmEoMiwia2V5dmFsdWUiKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdGb3JPZiIsTTUoMiwyLGEuY3VycmVudFJlY29yZCxhLm9yaWdpbmFsT3JkZXIpKSgibmdGb3JU'@; put 'cmFja0J5IixhLnRyYWNrQnlGbil9fWZ1bmN0aW9uIFF6ZShjLGwpezEmYyYmKG1lKDAsImNsci1hbGVydCIsNDMpKDEsImNsci1hbGVydC1pdGVtIikoMiwic3BhbiIsNDQpLE5lKDMsIiBEYXRhIFZhbGlkYXRpb24gRXJyb3JzIC0gUGxlYXNlIFJldmlldyAiKSx5ZSgpKCkoKSksMiZjJiYo'@; put 'SHUoInZpc2liaWxpdHkiLFZlKCkuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aD4wPyJ2aXNpYmxlIjoiaGlkZGVuIiksUmUoImNsckFsZXJ0Q2xvc2FibGUiLCExKSgiY2xyQWxlcnRUeXBlIiwiZGFuZ2VyIikpfWZ1bmN0aW9uIGVVZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1Wbigp'@; put 'O21lKDAsImRpdiIsNDUpKDEsImJ1dHRvbiIsNDYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5vblByZXZpb3VzUmVjb3JkQ2xpY2soKSl9KSxxdCgyLCJjbHItaWNvbiIsNDcpLHllKCksbWUoMywicCIpLE5lKDQsIiBDdXJyZW50IHJvdzogIiksbWUoNSwi'@; put 'c3Ryb25nIiksTmUoNikseWUoKSgpLG1lKDcsImJ1dHRvbiIsNDYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5vbk5leHRSZWNvcmRDbGljaygpKX0pLHF0KDgsImNsci1pY29uIiw0OCkseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLFJlKCJk'@; put 'aXNhYmxlZCIsYS5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPjApLENlKDUpLGdyKCIgIixhLmN1cnJlbnRSZWNvcmRJbmRleCsxLCIgIiksQ2UoMSksUmUoImRpc2FibGVkIixhLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg+MCl9fWZ1bmN0aW9uIHRVZShjLGwpe2lm'@; put 'KDEmYyYmKG1lKDAsIm9wdGlvbiIsNTMpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtSZSgibmdWYWx1ZSIsYSksQ2UoMSksZ3IoIiAiLGEsIiAiKX19ZnVuY3Rpb24gblVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IikoMSwiYXBwLXNvZnQtc2Vs'@; put 'ZWN0Iiw1MSkseHQoImZvY3VzaW4iLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoKS5jb2xJbmRleDtyZXR1cm4ganQoVmUoKS5vblJlY29yZElucHV0Rm9jdXMoaCxmKSl9KSgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoKS5jb2w7cmV0dXJuIGp0KFZl'@; put 'KCkuY3VycmVudFJlY29yZFtmLmtleV09aCl9KSgib25JbnB1dEV2ZW50IixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKSxmPWguY29sLF89aC5jb2xJbmRleDtyZXR1cm4ganQoVmUoKS5vblJlY29yZERyb3Bkb3duQ2hhbmdlKGYua2V5LF8pKX0pLEplKDIsdFVlLDIsMiwib3B0aW9u'@; put 'Iiw1MikseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpLmNvbCxkPVZlKCk7bGV0IGg7Q2UoMSksUmUoInZhbHVlIixkLmN1cnJlbnRSZWNvcmRbYS5rZXldKSgiaW5wdXRJZCIsYS5rZXkpLENlKDEpLFJlKCJuZ0Zvck9mIixudWxsPT1kLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9'@; put 'PShoPWQuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGEua2V5KSk/bnVsbDpoLnNvdXJjZSl9fWZ1bmN0aW9uIHJVZShjLGwpe2lmKDEmYyYmKG1lKDAsIm9wdGlvbiIsNTYpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtSZSgidmFsdWUiLGEpLENlKDEpLGdy'@; put 'KCIgIixhLCIgIil9fWZ1bmN0aW9uIGlVZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsInNlbGVjdCIsNTQpLHh0KCJmb2N1c2luIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCkuY29sSW5kZXg7cmV0dXJuIGp0KFZlKCkub25SZWNvcmRJbnB1dEZvY3VzKGgsZikpfSko'@; put 'Im5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoKS5jb2w7cmV0dXJuIGp0KFZlKCkuY3VycmVudFJlY29yZFtmLmtleV09aCl9KSxKZSgxLHJVZSwyLDIsIm9wdGlvbiIsNTUpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKCkuY29sLGQ9VmUoKTtsZXQgaDtSZSgi'@; put 'bmdNb2RlbCIsZC5jdXJyZW50UmVjb3JkW2Eua2V5XSksQ2UoMSksUmUoIm5nRm9yT2YiLG51bGw9PWQuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KGg9ZC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoYS5rZXkpKT9udWxsOmguc291cmNlKX19Y29uc3Qgb1VlPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuWyJTT0ZUU0VMRUNUIiwiU09GVFNFTEVDVF9IT09LIl19O2Z1bmN0aW9uIHNVZShjLGwpe2lmKDEmYyYmKEplKDAsblVlLDMsMywiZGl2Iiw0OSksSmUoMSxpVWUsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCw1MCxrYykpLDImYyl7Y29uc3QgYT1sLmNvbCxkPSRpKDIpLGg9'@; put 'VmUoKTtSZSgibmdJZiIsbnVsbD09aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yP251bGw6aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmhhc0RxUnVsZXMoYS5rZXksJHMoMixvVWUpKSkoIm5nSWZFbHNlIixkKX19bGV0IGFVZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5z'@; put 'YXNTdG9yZVNlcnZpY2U9YSx0aGlzLmhlbHBlclNlcnZpY2U9ZCx0aGlzLnJlY29yZEFjdGlvbj1udWxsLHRoaXMuZmlsdGVyPSExLHRoaXMuc3VibWl0TG9hZGluZz0hMSx0aGlzLmhlYWRlclBrcz1bXSx0aGlzLmNlbGxWYWxpZGF0aW9uPVtdLHRoaXMuY3VycmVudFJlY29yZEluZGV4PS0x'@; put 'LHRoaXMuY3VycmVudFJlY29yZExvYWRpbmdzPVtdLHRoaXMuY3VycmVudFJlY29yZEVycm9ycz1bXSx0aGlzLm9uUmVjb3JkQ2hhbmdlPW5ldyBFcix0aGlzLm9uUmVjb3JkSW5wdXRGb2N1c2VkPW5ldyBFcix0aGlzLm9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkPW5ldyBFcix0aGlzLm9uUmVj'@; put 'b3JkRWRpdENsb3NlPW5ldyBFcix0aGlzLm9uUmVjb3JkRWRpdENvbmZpcm09bmV3IEVyLHRoaXMub25OZXh0UmVjb3JkPW5ldyBFcix0aGlzLm9uUHJldmlvdXNSZWNvcmQ9bmV3IEVyLHRoaXMuY3VycmVudFJlY29yZEludmFsaWRDb2xzPVtdLHRoaXMuZ2VuZXJhdGVFZGl0UmVjb3JkVXJs'@; put 'TG9hZGluZz0hMSx0aGlzLmdlbmVyYXRlZFJlY29yZFVybD1udWxsLHRoaXMuYWRkUmVjb3JkVXJsPW51bGwsdGhpcy5yZWNvcmROZXdPclBrTW9kaWZpZWQ9ITEsdGhpcy5hZGRSZWNvcmRMb2FkaW5nPSExLHRoaXMub3JpZ2luYWxPcmRlcj0oaCxmKT0+MH1uZ09uSW5pdCgpe312YWxpZGF0'@; put 'ZVJlY29yZENvbChhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe3JldHVybiBuZXcgUHJvbWlzZSgoZixfKT0+e2guY3VycmVudFJlY29yZFZhbGlkYXRvcj8uZXhlY3V0ZUhvdFZhbGlkYXRvcihhLGQsVD0+e2YoVCl9KX0pfSkoKX1yZWNvcmREYXRlQ2hhbmdlKGEsZCl7'@; put 'bGV0IGg9dGhpcy5jdXJyZW50UmVjb3JkVmFsaWRhdG9yPy5nZXRSdWxlKGQpLGY9aD9oLmRhdGVGb3JtYXQ6IiI7dGhpcy5jdXJyZW50UmVjb3JkJiYodGhpcy5jdXJyZW50UmVjb3JkW2RdPUlHKCkoYSkuZm9ybWF0KGYpKX1jb25maXJtUmVjb3JkRWRpdCgpe3RoaXMuY3VycmVudFJlY29y'@; put 'ZEludmFsaWRDb2xzLmxlbmd0aDwxJiZ0aGlzLm9uUmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50UmVjb3JkKX1jbG9zZVJlY29yZEVkaXQoKXt0aGlzLm9uUmVjb3JkRWRpdENsb3NlLmVtaXQoKX1vblJlY29yZERyb3Bkb3duQ2hhbmdlKGEsZCl7dGhpcy5vblJlY29yZERyb3Bkb3du'@; put 'Q2hhbmdlZC5lbWl0KHtjb2xOYW1lOmEsY29sOmR9KX1vblJlY29yZElucHV0Rm9jdXMoYSxkKXt0aGlzLm9uUmVjb3JkSW5wdXRGb2N1c2VkLmVtaXQoe2V2ZW50OmEsY29sTmFtZTpkfSl9cmVjb3JkSW5wdXRQYXN0ZShhKXtzZXRUaW1lb3V0KCgpPT57YS50YXJnZXQudmFsdWU9YS50YXJn'@; put 'ZXQudmFsdWUucmVwbGFjZSgvXHMrJC8sIiIpfSwwKX1yZWNvcmRJbnB1dENoYW5nZShhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2NvbnN0IGY9aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yPy5nZXRSdWxlKGQpLF89YS50YXJnZXQudmFsdWU7aC5oZWxwZXJTZXJ2aWNl'@; put 'LmRlYm91bmNlQ2FsbCgzMDAsKCk9PntoLnZhbGlkYXRlUmVjb3JkQ29sKGYsXykudGhlbihUPT57Y29uc3QgVz1oLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5pbmRleE9mKGQpO1Q/Vz4tMSYmaC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuc3BsaWNlKFcsMSk6VzwwJiZoLmN1cnJlbnRS'@; put 'ZWNvcmRJbnZhbGlkQ29scy5wdXNoKGQpfSl9KX0pKCl9b25OZXh0UmVjb3JkQ2xpY2soKXt0aGlzLm9uTmV4dFJlY29yZC5lbWl0KCl9b25QcmV2aW91c1JlY29yZENsaWNrKCl7dGhpcy5vblByZXZpb3VzUmVjb3JkLmVtaXQoKX1jb3B5VG9DbGlwKGEpe2NvbnN0IGQ9ZG9jdW1lbnQucXVl'@; put 'cnlTZWxlY3RvcigiI3JlY29yZE1vZGFsUmVmIC5tb2RhbC10aXRsZSIpO2lmKGQpe2NvbnN0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtoLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsaC5zdHlsZS5sZWZ0PSIwIixoLnN0eWxlLnRvcD0iMCIsaC5zdHlsZS5vcGFjaXR5'@; put 'PSIwIixoLnN0eWxlLnpJbmRleD0iNTAwMCIsaC52YWx1ZT1hLGQuYXBwZW5kQ2hpbGQoaCksaC5mb2N1cygpLGguc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkLnJlbW92ZUNoaWxkKGgpLHRoaXMuZ2VuZXJhdGVkUmVjb3JkVXJsPWF9fWdlbmVyYXRlRWRpdFJlY29y'@; put 'ZFVybCgpe3ZhciBhPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2lmKGEuZ2VuZXJhdGVkUmVjb3JkVXJsKWEuY29weVRvQ2xpcChhLmdlbmVyYXRlZFJlY29yZFVybCk7ZWxzZXthLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITA7Y29uc3QgZD1bXTthLmhlYWRlclBrcy5mb3JF'@; put 'YWNoKGg9PntsZXQgZj0iQyIsXz0iIjtmb3IobGV0IFQ9MDtUPGEuY2VsbFZhbGlkYXRpb24ubGVuZ3RoO1QrKyl7Y29uc3QgVz1hLmNlbGxWYWxpZGF0aW9uW1RdO2lmKFcuZGF0YT09PWgpeygibnVtZXJpYyI9PT1XLnR5cGV8fCJkYXRlIj09PVcudHlwZXx8InRpbWUiPT09Vy50eXBlKSYm'@; put 'KGY9Ik4iKTticmVha319Xz0iQyI9PT1mP2AnJHthLmN1cnJlbnRSZWNvcmRbaF19J2A6YS5jdXJyZW50UmVjb3JkW2hdLnRvU3RyaW5nKCksZC5wdXNoKHtHUk9VUF9MT0dJQzoiQU5EIixTVUJHUk9VUF9MT0dJQzoiQU5EIixTVUJHUk9VUF9JRDowLFZBUklBQkxFX05NOmgsT1BFUkFUT1Jf'@; put 'Tk06Ij0iLFJBV19WQUxVRTpffSl9KSxkLmxlbmd0aD4wJiZhLmxpYmRzJiYoeWllbGQgYS5zYXNTdG9yZVNlcnZpY2Uuc2F2ZVF1ZXJ5KGEubGliZHMsZCkudGhlbihoPT57YS5xdWVyeUZpbHRlcj17aWQ6aC5yZXN1bHRbMF0uRklMVEVSX1JLLHRhYmxlOmgucmVzdWx0WzBdLkZJTFRFUl9U'@; put 'QUJMRX07Y29uc3QgVD1sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0rIiMvZWRpdG9yL2VkaXQtcmVjb3JkLyIrYS5xdWVyeUZpbHRlci50YWJsZSsiLyIrYS5xdWVyeUZpbHRlci5pZDthLmNvcHlUb0NsaXAoVCksYS5nZW5lcmF0ZUVkaXRSZWNvcmRVcmxMb2FkaW5nPSExLGEuZmlsdGVy'@; put 'PSExfSkuY2F0Y2goaD0+e2Euc3VibWl0TG9hZGluZz0hMX0pKX19KSgpfWlzQ29sUGsoYSl7cmV0dXJuIHRoaXMuaGVhZGVyUGtzLmluZGV4T2YoYSk+LTF9dHJhY2tCeUZuKGEsZCl7cmV0dXJuIGF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0'@; put 'KGJkKSx0dChUYykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtZWRpdC1yZWNvcmQiXV0saW5wdXRzOntjdXJyZW50UmVjb3JkOiJjdXJyZW50UmVjb3JkIixyZWNvcmRBY3Rpb246InJlY29yZEFjdGlvbiIsbGliZHM6ImxpYmRzIixxdWVyeUZpbHRlcjoicXVl'@; put 'cnlGaWx0ZXIiLGZpbHRlcjoiZmlsdGVyIixzdWJtaXRMb2FkaW5nOiJzdWJtaXRMb2FkaW5nIixoZWFkZXJQa3M6ImhlYWRlclBrcyIsY2VsbFZhbGlkYXRpb246ImNlbGxWYWxpZGF0aW9uIixjdXJyZW50UmVjb3JkSW5kZXg6ImN1cnJlbnRSZWNvcmRJbmRleCIsY3VycmVudFJlY29yZExv'@; put 'YWRpbmdzOiJjdXJyZW50UmVjb3JkTG9hZGluZ3MiLGN1cnJlbnRSZWNvcmRFcnJvcnM6ImN1cnJlbnRSZWNvcmRFcnJvcnMiLGN1cnJlbnRSZWNvcmRWYWxpZGF0b3I6ImN1cnJlbnRSZWNvcmRWYWxpZGF0b3IifSxvdXRwdXRzOntvblJlY29yZENoYW5nZToib25SZWNvcmRDaGFuZ2UiLG9u'@; put 'UmVjb3JkSW5wdXRGb2N1c2VkOiJvblJlY29yZElucHV0Rm9jdXNlZCIsb25SZWNvcmREcm9wZG93bkNoYW5nZWQ6Im9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkIixvblJlY29yZEVkaXRDbG9zZToib25SZWNvcmRFZGl0Q2xvc2UiLG9uUmVjb3JkRWRpdENvbmZpcm06Im9uUmVjb3JkRWRpdENv'@; put 'bmZpcm0iLG9uTmV4dFJlY29yZDoib25OZXh0UmVjb3JkIixvblByZXZpb3VzUmVjb3JkOiJvblByZXZpb3VzUmVjb3JkIn0sZGVjbHM6MTcsdmFyczoxMSxjb25zdHM6W1siaWQiLCJyZWNvcmRNb2RhbFJlZiIsMSwicmVjb3JkLWVkaXQtbW9kYWwiLCJwb3NpdGlvbi1yZWxhdGl2ZSIsMywi'@; put 'Y2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSJdLFs0LCJuZ0lmIl0sWzEsIm1vZGFsLWJvZHkiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHctMTAwIHB5LTEwIiw0LCJuZ0lmIl0sWzEs'@; put 'Im1vZGFsLWZvb3RlciIsInAtMCIsImNsci1nYXAtNSIsImNsci1nYXAtbWQtMCIsImNsci1mbGV4LWNvbHVtbiIsImNsci1mbGV4LW1kLXJvdyJdLFsiY2xhc3MiLCJ2YWxpZGF0aW9uLWluZm8tYWxlcnQiLDMsInZpc2liaWxpdHkiLCJjbHJBbGVydENsb3NhYmxlIiwiY2xyQWxlcnRUeXBl'@; put 'Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInByZXYtbmV4dCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJmb2N1c2FibGUiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsImZvY3VzYWJsZSIsMywiZGlzYWJs'@; put 'ZWQiLCJjbGljayJdLFsiYXV0b2NvbXBsZXRlIiwiIl0sWyJjbGFzcyIsInBvc2l0aW9uLWFic29sdXRlIGdlbmVyYXRlLXJlY29yZC11cmwiLDQsIm5nSWYiXSxbImNsYXNzIiwiYnRuIGJ0bi1saW5rIGdlbmVyYXRlLXJlY29yZC11cmwtYnV0dG9uIHBvc2l0aW9uLWFic29sdXRlIiwzLCJk'@; put 'aXNhYmxlZCIsImNsaWNrIiw0LCJuZ0lmIl0sWzEsInBvc2l0aW9uLWFic29sdXRlIiwiZ2VuZXJhdGUtcmVjb3JkLXVybCJdLFsxLCJidG4iLCJidG4tbGluayIsImdlbmVyYXRlLXJlY29yZC11cmwtYnV0dG9uIiwicG9zaXRpb24tYWJzb2x1dGUiLDMsImRpc2FibGVkIiwiY2xpY2siXSxb'@; put 'MSwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImFsaWduLWl0ZW1zLWNlbnRlciIsInctMTAwIiwicHktMTAiXSxbMSwic3Bpbm5lciJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwiY29sdW1uLWVudHJ5IiwiY2xyLWZsZXgtY29sdW1uIiwiY2xy'@; put 'LWZsZXgtbWQtcm93Il0sWzEsIm5hbWUtaW5wdXQtcm93Il0sWzEsImZvbnQtd2VpZ2h0LWJvbGQiXSxbInNoYXBlIiwia2V5Iiw0LCJuZ0lmIl0sWzEsImNlbGwtZGVzYyJdLFsxLCJpbnB1dHMtd3JhcHBlciIsInBvc2l0aW9uLXJlbGF0aXZlIiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJz'@; put 'cGlubmVyIHNwaW5uZXItaW5saW5lIGZsZXgtdW5zZXQgcG9zaXRpb24tYWJzb2x1dGUgZW50cnktaW5wdXQtbGVmdC1vZmZzZXQiLDQsIm5nSWYiXSxbImNsYXNzIiwiZmxleC11bnNldCBwb3NpdGlvbi1hYnNvbHV0ZSBlbnRyeS1pbnB1dC1sZWZ0LW9mZnNldCIsInNoYXBlIiwiZXJyb3It'@; put 'c3RhbmRhcmQiLCJzdGF0dXMiLCJ3YXJuaW5nIiw0LCJuZ0lmIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJkYXRlLWZpZWxkIiw0LCJuZ1N3aXRjaENhc2UiXSxbMSwibXQtMTAiXSxbInNoYXBlIiwia2V5Il0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSIsImZsZXgtdW5z'@; put 'ZXQiLCJwb3NpdGlvbi1hYnNvbHV0ZSIsImVudHJ5LWlucHV0LWxlZnQtb2Zmc2V0Il0sWyJzaGFwZSIsImVycm9yLXN0YW5kYXJkIiwic3RhdHVzIiwid2FybmluZyIsMSwiZmxleC11bnNldCIsInBvc2l0aW9uLWFic29sdXRlIiwiZW50cnktaW5wdXQtbGVmdC1vZmZzZXQiXSxbImNsYXNz'@; put 'IiwibnVtZXJpYy1pbnB1dCIsMywiaW52YWxpZC1kYXRhIiw0LCJuZ0lmIl0sWzEsIm51bWVyaWMtaW5wdXQiXSxbImNscklucHV0IiwiIiwidHlwZSIsInRleHQiLDEsIm5vdC1jaGFyIiwzLCJuZ01vZGVsIiwiZm9jdXNpbiIsInBhc3RlIiwiaW5wdXQiLCJuZ01vZGVsQ2hhbmdlIl0sWzQs'@; put 'Im5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsiY2xyVGV4dGFyZWEiLCIiLDMsInJvd3MiLCJuZ01vZGVsIiwibWF4TGVuZ3RoIiwiZm9jdXNpbiIsInBhc3RlIiwiaW5wdXQiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjaGFyVGV4dGFyZWEiLCIiXSxbMSwiZGF0'@; put 'ZS1maWVsZCJdLFsiY2xyVGV4dGFyZWEiLCIiLDMsInJvd3MiLCJuZ01vZGVsIiwicGFzdGUiLCJpbnB1dCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNsclRleHRhcmVhIiwiIiwicm93cyIsIjEiLCJjb2xzIiwiYXV0byIsMSwibm90LWNoYXIiLDMsIm5nTW9kZWwiLCJwYXN0ZSIsImlucHV0Iiwi'@; put 'bmdNb2RlbENoYW5nZSJdLFsxLCJkYXRlLXBpY2tlciJdLFsidHlwZSIsImRhdGUiLCJuYW1lIiwiZGF0ZSIsImNsckRhdGUiLCIiLDEsImQtbm9uZSIsMywiY2xyRGF0ZUNoYW5nZSJdLFsxLCJ2YWxpZGF0aW9uLWluZm8tYWxlcnQiLDMsImNsckFsZXJ0Q2xvc2FibGUiLCJjbHJBbGVydFR5'@; put 'cGUiXSxbMSwiYWxlcnQtdGV4dCJdLFsxLCJwcmV2LW5leHQiXSxbInR5cGUiLCJidXR0b24iLCJ0YWJpbmRleCIsIjAiLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwiZm9jdXNhYmxlIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIGxlZnQiLCJzaXplIiwiMjMiXSxbInNo'@; put 'YXBlIiwiYW5nbGUgcmlnaHQiLCJzaXplIiwiMjMiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJvdGhlcl90aGFuX3NvZnRfc2VsZWN0IiwiIl0sWzMsInZhbHVlIiwiaW5wdXRJZCIsImZvY3VzaW4iLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCJdLFszLCJuZ1ZhbHVlIiw0LCJuZ0Zv'@; put 'ciIsIm5nRm9yT2YiXSxbMywibmdWYWx1ZSJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsIiwiZm9jdXNpbiIsIm5nTW9kZWxDaGFuZ2UiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImNs'@; put 'ci1tb2RhbCIsMCkoMSwiaDMiLDEpLE5lKDIpLEplKDMsSXplLDMsMiwibmctY29udGFpbmVyIiwyKSx5ZSgpLG1lKDQsImRpdiIsMyksSmUoNSxMemUsMywwLCJkaXYiLDQpLEplKDYsSnplLDMsNSwibmctY29udGFpbmVyIiwyKSx5ZSgpLG1lKDcsImRpdiIsNSksSmUoOCxRemUsNCw0LCJj'@; put 'bHItYWxlcnQiLDYpLEplKDksZVVlLDksMywiZGl2Iiw3KSxtZSgxMCwiZGl2IikoMTEsImJ1dHRvbiIsOCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uPSExLGQuY2xvc2VSZWNvcmRFZGl0KCl9KSxOZSgxMiwiIENhbmNlbCAiKSx5'@; put 'ZSgpLG1lKDEzLCJidXR0b24iLDkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5jb25maXJtUmVjb3JkRWRpdCgpfSksTmUoMTQsIiBDb25maXJtICIpLHllKCkoKSgpLEplKDE1LHNVZSwzLDMsIm5nLXRlbXBsYXRlIixudWxsLDEwLGtjKSx5ZSgpKSwyJmEmJihSZSgiY2xyTW9k'@; put 'YWxPcGVuIiwhMCkoImNsck1vZGFsQ2xvc2FibGUiLCExKSxDZSgyKSxiMCgiICIsIkFERCI9PT1kLnJlY29yZEFjdGlvbj8iQWRkIjoiRWRpdCIsIiByZWNvcmQgaW4gIixudWxsPT1kLmxpYmRzP251bGw6ZC5saWJkcy5zcGxpdCgiLiIpWzBdLCIuIixudWxsPT1kLmxpYmRzP251bGw6ZC5s'@; put 'aWJkcy5zcGxpdCgiLiIpWzFdLCIgIiksQ2UoMSksUmUoIm5nSWYiLCJFRElUIj09PWQucmVjb3JkQWN0aW9uKSxDZSgyKSxSZSgibmdJZiIsZC5hZGRSZWNvcmRMb2FkaW5nKSxDZSgxKSxSZSgibmdJZiIsIWQuYWRkUmVjb3JkTG9hZGluZyksQ2UoMiksUmUoIm5nSWYiLGQuY3VycmVudFJl'@; put 'Y29yZEludmFsaWRDb2xzLmxlbmd0aD4wKSxDZSgxKSxSZSgibmdJZiIsZC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPDEpLENlKDQpLFJlKCJkaXNhYmxlZCIsZC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPjApKX0sZGVwZW5kZW5jaWVzOlt4cyxaaSxyZCxuZCx0'@; put 'aCxsMSxjMSxXYSxNMCxCcyxPcyxIYixQUSxOYixoSCxrYSxvdSxzdSxIRixMYiwkRixxRixmMSxqRixOOCxvd2UsdVEsTXNlLGR4XSxzdHlsZXM6WyIucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxh'@; put 'eTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYW1lLWlucHV0LXJvd1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTttYXgtd2lk'@; put 'dGg6MjYwcHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgLm5hbWUtaW5wdXQtcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZWxsLWRlc2NbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDoz'@; put 'MHB4O21hcmdpbi10b3A6MTBweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAuaW5wdXRzLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2Vu'@; put 'dGVyfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5pbnB1dHMtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgPio6bm90KC5kYXRlLWZpZWxkKTpub3QoY2xyLXNlbGVjdC1jb250YWluZXIpe2Zs'@; put 'ZXg6MX0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50'@; put 'cnlbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLXRleHRhcmVhLXdyYXBwZXJ7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItZm9ybS1jb250cm9s'@; put 'e21hcmdpbi10b3A6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3R7ZGlzcGxheTpibG9jazt3aWR0aDoyMjRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVy'@; put 'OjFweCBzb2xpZCAjOTk5O2NvbG9yOiMwMDA7cGFkZGluZzpjYWxjKC4yNXJlbSArIDJweCkgLjVyZW07Ym9yZGVyLXJhZGl1czouMTI1cmVtO2ZvbnQtc2l6ZTouNTQxNjY3cmVtO21hcmdpbi1yaWdodDo2cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1'@; put 'bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3QgaW5wdXR7d2lkdGg6MTAwJTtib3JkZXI6MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09N'@; put 'UCVdICAgICBhcHAtc29mdC1zZWxlY3QgaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDpub25lO2JvcmRlcjowIWltcG9ydGFudH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIGFwcC1zb2Z0LXNlbGVjdCBp'@; put 'bnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3QgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257LXdlYmtp'@; put 'dC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxkICAgcFtfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5yZWNv'@; put 'cmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0ZS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLWZpZWxkW19uZ2NvbnRl'@; put 'bnQtJUNPTVAlXSAgIHRleHRhcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoyMzBweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGUtZmllbGRbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGUtcGlja2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlv'@; put 'bjphYnNvbHV0ZTtyaWdodDowO3RvcDo0cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLXBpY2tlcltfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItaW5wdXQtZ3JvdXB7Ym9yZGVyOjAhaW1w'@; put 'b3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAubW9kYWwtYm9keVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1ib3R0b206MTBweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lcntib3Jk'@; put 'ZXI6MXB4IHNvbGlkICM5OTk7Y29sb3I6IzAwMDtib3JkZXItcmFkaXVzOi4xMjVyZW07bWFyZ2luLXJpZ2h0OjVweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciAuY2xyLXNlbGVjdC13cmFwcGVye21heC1oZWlnaHQ6dW5z'@; put 'ZXR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXNlbGVjdC1jb250YWluZXIgLmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcnt0b3A6MTVweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciBz'@; put 'ZWxlY3R7aGVpZ2h0OmF1dG87cGFkZGluZzoxMHB4IDIwcHggMTBweCAxMHB4O2JvcmRlcjowIWltcG9ydGFudH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3Q6Zm9jdXN7YmFja2dyb3VuZDowIDAhaW1wb3J0YW50'@; put 'fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1zZWxlY3QtY29udGFpbmVyIHNlbGVjdDpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXJ7d2lk'@; put 'dGg6MjI0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzk5OTtjb2xvcjojMDAwO3BhZGRpbmc6Y2FsYyguMjVyZW0gKyAycHgpIC41cmVtO2JvcmRlci1yYWRpdXM6LjEyNXJlbTtmb250LXNpemU6LjU0MTY2N3JlbTttYXJnaW4tcmlnaHQ6NnB4fS5yZWNvcmQtZWRpdC1t'@; put 'b2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXIgaW5wdXR7d2lkdGg6MTAwJTtib3JkZXI6MH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6bm9uZTti'@; put 'b3JkZXI6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlucHV0LWNvbnRhaW5lciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlucHV0'@; put 'LWNvbnRhaW5lciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyLmludmFsaWQtZGF0YXtib3JkZXItY29sb3I6'@; put 'cmVkfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC1kaWFsb2d7d2lkdGg6ODB2d30ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVye3dpZHRoOjEwMCV9LnJlY29yZC1lZGl0LW1vZGFs'@; put 'W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciB0ZXh0YXJlYXt3aWR0aDoxMDAlO3Jlc2l6ZTpub25lO2JvcmRlci1jb2xvcjojOTk5fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4'@; put 'dGFyZWEuaW52YWxpZC1kYXRhe2JvcmRlci1jb2xvcjpyZWQ7b3V0bGluZTowfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWEubm90LWNoYXJ7Zm9udC1mYW1pbHk6THVjaWRhIENvbnNvbGUsTW9uYWNvLG1v'@; put 'bm9zcGFjZX0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAuZ2VuZXJhdGUtcmVjb3JkLXVybHtyaWdodDo0MHB4O3RvcDo0MHB4O2ZvbnQtc2l6ZToxMnB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5nZW5lcmF0ZS1yZWNvcmQt'@; put 'dXJsLWJ1dHRvbntyaWdodDoyNXB4O3RvcDo1cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1vZGFsLWhlYWRlcntwYWRkaW5nOjAgMCAxcmVtfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC1mb290ZXJ7ZGlzcGxh'@; put 'eTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWwtZm9vdGVyIC5hbGVydHttYXJnaW46MH0ucHJldi1uZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5'@; put 'OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5wcmV2LW5leHRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjB9LnByZXYtbmV4dFtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDEwcHh9LmZvY3Vz'@; put 'YWJsZVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7Ym94LXNoYWRvdzowIDAgM3B4ICM1YWEyMjB9LmVudHJ5LWlucHV0LWxlZnQtb2Zmc2V0W19uZ2NvbnRlbnQtJUNPTVAlXXtsZWZ0Oi0zMHB4fS52YWxpZGF0aW9uLWluZm8tYWxlcnRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjMxMHB4'@; put 'fSJdfSksY30pKCk7ZnVuY3Rpb24gbFVlKGMsbCl7aWYoMSZjJiYobWUoMCwicCIsMyksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLGdyKCIgIixhLCIgIil9fWxldCBjVWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVzTGlzdD1bXSx0'@; put 'aGlzLnByb2Nlc3NlZFN0YXRlcz1bXSx0aGlzLnN0YXRlckluUHJvZ3Jlc3M9ITEsdGhpcy5taW5EZWxheT0xZTN9bmdPbkluaXQoKXt9YXBwZW5kU3RhdGUoYSl7aWYoIntmaW5pc2h9Ij09PWEpcmV0dXJuIHRoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMSx2b2lkIGNsZWFySW50ZXJ2YWwodGhp'@; put 'cy5zdGF0ZUludGVydmFsKTt0aGlzLnN0YXRlc0xpc3QucHVzaChhKSx0aGlzLnByb2Nlc3NlZFN0YXRlcy5wdXNoKGEpfXJlcGxhY2VMYXN0U3RhdGUoYSl7dGhpcy5zdGF0ZXNMaXN0Lmxlbmd0aD4wPyh0aGlzLnN0YXRlc0xpc3QucG9wKCksdGhpcy5zdGF0ZXNMaXN0LnB1c2goYSkpOnRo'@; put 'aXMucHJvY2Vzc2VkU3RhdGVzW3RoaXMucHJvY2Vzc2VkU3RhdGVzLmxlbmd0aC0xXT1hfWNsZWFyU3RhdGVzKCl7dGhpcy5wcm9jZXNzZWRTdGF0ZXM9W119c3RhcnRTdGF0ZXIoKXt0aGlzLnN0YXRlckluUHJvZ3Jlc3M9ITAsdGhpcy5zdGF0ZXNMaXN0Lmxlbmd0aD4wJiZ0aGlzLnByb2Nl'@; put 'c3NlZFN0YXRlcy5wdXNoKHRoaXMuc3RhdGVzTGlzdC5zaGlmdCgpfHwiIiksdGhpcy5zdGF0ZUludGVydmFsPXNldEludGVydmFsKCgpPT57dGhpcy5zdGF0ZXNMaXN0Lmxlbmd0aD4wJiZ0aGlzLnByb2Nlc3NlZFN0YXRlcy5wdXNoKHRoaXMuc3RhdGVzTGlzdC5zaGlmdCgpfHwiIil9LHRo'@; put 'aXMubWluRGVsYXkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXVwbG9hZC1zdGF0ZXIiXV0sZGVjbHM6NSx2YXJzOjEsY29uc3RzOltbImNsYXNzIiwibS0wIiw0LCJuZ0Zv'@; put 'ciIsIm5nRm9yT2YiXSxbMSwidGV4dC1jZW50ZXIiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItc20iLCJ2ZXJ0aWNhbC1hbGlnbi1taWRkbGUiXSxbMSwibS0wIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiZGl2IiksSmUoMSxsVWUsMiwxLCJwIiwwKSx5ZSgpLG1lKDIs'@; put 'ImRpdiIsMSkoMywic3BhbiIsMiksTmUoNCwiTG9hZGluZy4uLiIpLHllKCkoKSksMiZhJiYoQ2UoMSksUmUoIm5nRm9yT2YiLGQucHJvY2Vzc2VkU3RhdGVzKSl9LGRlcGVuZGVuY2llczpbeHNdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpibG9ja31wW19uZ2NvbnRlbnQt'@; put 'JUNPTVAlXXttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcn0iXX0pLGN9KSgpLHVVZT0oKCk9PntjbGFzcyBje3RyYW5zZm9ybShhKXtyZXR1cm4gYS5yZXBsYWNlKC9cfC9nLCIgfCAiKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1'@; put 'cGlwZT1OYSh7bmFtZToicGtTcGFjZVNlcGFyYXRlIix0eXBlOmMscHVyZTohMH0pLGN9KSgpLERzZT0oKCk9PntjbGFzcyBje3RyYW5zZm9ybShhLGQpe3JldHVybiB0aGlzLmFkZFNlcGFyYXRvcnMoYS50b1N0cmluZygpLGQpfWFkZFNlcGFyYXRvcnMoYSxkPSIgIil7Y29uc3QgaD0oYSs9'@; put 'IiIpLnNwbGl0KCIuIik7bGV0IGY9aFswXTtjb25zdCBfPWgubGVuZ3RoPjE/Ii4iK2hbMV06IiIsVD0vKFxkKykoXGR7M30pLztmb3IoO1QudGVzdChmKTspZj1mLnJlcGxhY2UoVCwiJDEiK2QrIiQyIik7cmV0dXJuIGYrX319cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVy'@; put 'biBuZXcoYXx8Yyl9LGMuXHUwMjc1cGlwZT1OYSh7bmFtZToidGhvdXNhbmRTZXBhcmF0b3IiLHR5cGU6YyxwdXJlOiEwfSksY30pKCk7Y29uc3QgZFVlPVsiaHQiXSxoVWU9WyJ1cGxvYWRTdGF0ZXIiXSxmVWU9WyJxdWVyeUZpbHRlciJdLHBVZT1bImhvdEluc3RhbmNlIl0sZ1VlPVsiZmls'@; put 'ZVVwbG9hZElucHV0Il07ZnVuY3Rpb24gbVVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw2MSkoMSwic3BhbiIsNjIpKDIsImxhYmVsIiw2MyksTmUoMywiIEJyb3dzZSAiKSx5ZSgpKCksbWUoNCwiaW5wdXQiLDY0LDY1KSx4dCgiY2hhbmdlIixmdW5jdGlvbihoKXty'@; put 'ZXR1cm4gQnQoYSksanQoVmUoKS5nZXRGaWxlRGVzYyhoKSl9KSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoNCksUmUoInVwbG9hZGVyIixhLnVwbG9hZGVyKX19ZnVuY3Rpb24gdlVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw2NikoMSwiYnV0dG9uIiw2'@; put 'NykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLmdldEZpbGUoKSl9KSxOZSgyLCIgVXBsb2FkICIpLHllKCkoKX0yJmMmJihDZSgxKSxSZSgiZGlzYWJsZWQiLCEwKSl9ZnVuY3Rpb24gX1VlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9u'@; put 'Iiw2OCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLnNob3dVcGxvYWRNb2RhbD0hMSl9KSxOZSgxLCIgQ2xvc2UgIikseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoKTtSZSgiZGlzYWJsZWQiLGEuZXhjZWxGaWxlUGFyc2luZ3x8YS51cGxvYWRMb2FkaW5nKX19'@; put 'ZnVuY3Rpb24gYlVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiw2OSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLnNob3dVcGxvYWRNb2RhbD0hMSl9KSxOZSgxLCIgU2tpcCAiKSx5ZSgpfX1mdW5jdGlvbiB5VWUoYyxsKXsxJmMm'@; put 'JihtZSgwLCJkaXYiLDcwKSxxdCgxLCJhcHAtdXBsb2FkLXN0YXRlciIsbnVsbCw3MSkseWUoKSl9ZnVuY3Rpb24gd1VlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYXBwLWVkaXQtcmVjb3JkIiw3MikseHQoIm9uUmVjb3JkQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBCdChh'@; put 'KSxqdChWZSgpLmNvbmZpcm1SZWNvcmRFZGl0KCkpfSkoIm9uUmVjb3JkSW5wdXRGb2N1c2VkIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS5vblJlY29yZElucHV0Rm9jdXMoaCkpfSkoIm9uUmVjb3JkRWRpdENsb3NlIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgp'@; put 'LmNsb3NlUmVjb3JkRWRpdCgpKX0pKCJvbk5leHRSZWNvcmQiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkub25OZXh0UmVjb3JkKCkpfSkoIm9uUHJldmlvdXNSZWNvcmQiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkub25QcmV2aW91c1JlY29yZCgpKX0pLHllKCl9'@; put 'aWYoMiZjKXtjb25zdCBhPVZlKCk7UmUoImN1cnJlbnRSZWNvcmQiLGEuY3VycmVudEVkaXRSZWNvcmQpKCJyZWNvcmRBY3Rpb24iLGEucmVjb3JkQWN0aW9uKSgibGliZHMiLGEubGliZHMpKCJxdWVyeUZpbHRlciIsYS5xdWVyeUZpbHRlcikoImZpbHRlciIsYS5maWx0ZXIpKCJzdWJtaXRM'@; put 'b2FkaW5nIixhLnN1Ym1pdExvYWRpbmcpKCJoZWFkZXJQa3MiLGEuaGVhZGVyUGtzKSgiY2VsbFZhbGlkYXRpb24iLGEuY2VsbFZhbGlkYXRpb24pKCJjdXJyZW50UmVjb3JkSW5kZXgiLGEuY3VycmVudEVkaXRSZWNvcmRJbmRleCkoImN1cnJlbnRSZWNvcmRMb2FkaW5ncyIsYS5jdXJyZW50'@; put 'RWRpdFJlY29yZExvYWRpbmdzKSgiY3VycmVudFJlY29yZEVycm9ycyIsYS5jdXJyZW50RWRpdFJlY29yZEVycm9ycykoImN1cnJlbnRSZWNvcmRWYWxpZGF0b3IiLGEuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfX1mdW5jdGlvbiBDVWUoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDczKSxx'@; put 'dCgxLCJwcm9ncmVzcyIpLHllKCkpfWNvbnN0IFNVZT1mdW5jdGlvbigpe3JldHVyblsiL2hvbWUiXX07ZnVuY3Rpb24gTVVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw3NCkoMSwic3BhbiIsNzUpLHF0KDIsImNsci1pY29uIiw3NiksTmUoMywiQmFjayB0byB0YWJs'@; put 'ZSBzZWxlY3Rpb24gIikseWUoKSxtZSg0LCJzcGFuIiw3NykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLnZpZXdib3hNYW5hZ2VyKCkpfSkscXQoNSwiY2xyLWljb24iLDc4KSxOZSg2LCIgVmlld2JveGVzICIpLHllKCkoKX0yJmMmJihDZSgxKSxSZSgicm91'@; put 'dGVyTGluayIsJHMoMSxTVWUpKSl9ZnVuY3Rpb24geFVlKGMsbCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsODUpfWZ1bmN0aW9uIEVVZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10b29sdGlwLWNvbnRlbnQiLDg2KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksZ3IoIiAi'@; put 'LGEuZHNOb3RlLCIgIil9fWZ1bmN0aW9uIGtVZShjLGwpe2lmKDEmYyYmKFZyKDApLE5lKDEpLGJhKDIsInRob3VzYW5kU2VwYXJhdG9yIiksenIoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLHc1KCIgKCIsTTUoMiw0LGEuZGF0YVNvdXJjZS5sZW5ndGgsIiwiKSwiICIsMT09PWEuZGF0'@; put 'YVNvdXJjZS5sZW5ndGg/InJvdyI6InJvd3MiLCIsICIsYS5jb2xzLmxlbmd0aCwiIiwxPT09YS5jb2xzLmxlbmd0aD8iIGNvbCI6IiBjb2xzIiwiKSAiKX19ZnVuY3Rpb24gQVVlKGMsbCl7MSZjJiYoVnIoMCksTmUoMSwiICgwIHJvd3MpICIpLHpyKCkpfWZ1bmN0aW9uIFRVZShjLGwpe2lm'@; put 'KDEmYyYmKFZyKDApLEplKDEsa1VlLDMsNywibmctY29udGFpbmVyIiwzNSksSmUoMixBVWUsMiwwLCJuZy1jb250YWluZXIiLDM1KSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUoIm5nSWYiLCFhLnplcm9GaWx0ZXJSb3dzKSxDZSgxKSxSZSgibmdJZiIsYS56ZXJvRmlsdGVy'@; put 'Um93cyl9fWZ1bmN0aW9uIERVZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImg0Iiw3OSkoMSwiY2xyLXRvb2x0aXAiKSgyLCJjbHItaWNvbiIsODApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5kYXRhc2V0SW5mbz0hMCl9KSx5ZSgpLEplKDMs'@; put 'eFVlLDEsMCwiY2xyLWljb24iLDgxKSxtZSg0LCJzcGFuIiw4MiksTmUoNSksbWUoNiwiYSIsODMpLE5lKDcpLHllKCkoKSxKZSg4LEVVZSwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDg0KSx5ZSgpLEplKDksVFVlLDMsMiwibmctY29udGFpbmVyIiwzNSkseWUoKX1pZigyJmMpe2NvbnN0'@; put 'IGE9bC5uZ1ZhcixkPVZlKCk7Q2UoMyksUmUoIm5nSWYiLGEudGFibGVOYW1lLmluY2x1ZGVzKCItRkMiKSksQ2UoMiksZ3IoIiAiLGEubGliTmFtZSwiLiIpLENlKDEpLFJlKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvZGF0YS8iK2QubGliZHMpLENlKDEpLG9yKGEudGFibGVOYW1lLnJlcGxhY2Uo'@; put 'Ii1GQyIsIiIpKSxDZSgyKSxSZSgibmdJZiIsZC5kYXRhU291cmNlKX19ZnVuY3Rpb24gSVVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiw5MykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgzKS5vblNob3dVcGxvYWRNb2RhbCgpKX0p'@; put 'LHF0KDEsImNsci1pY29uIiw5NCksbWUoMiwic3BhbiIpLE5lKDMsIlVwbG9hZCIpLHllKCkoKX19ZnVuY3Rpb24gTFVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7VnIoMCksbWUoMSwiYnV0dG9uIiw4OCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5v'@; put 'cGVuUWIoKSl9KSxxdCgyLCJjbHItaWNvbiIsODkpLG1lKDMsInNwYW4iKSxOZSg0LCJGaWx0ZXIiKSx5ZSgpKCksbWUoNSwiYnV0dG9uIiw5MCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5lZGl0VGFibGUoKSl9KSxxdCg2LCJjbHItaWNvbiIsOTEpLG1l'@; put 'KDcsInNwYW4iKSxOZSg4LCJFZGl0IikseWUoKSgpLEplKDksSVVlLDQsMCwiYnV0dG9uIiw5MiksenIoKX1pZigyJmMpe2NvbnN0IGE9VmUoMik7Q2UoOSksUmUoIm5nSWYiLCFhLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnKX19ZnVuY3Rpb24gUlVlKGMsbCl7aWYoMSZjJiYobWUoMCwic3Bh'@; put 'biIpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSg0KTtDZSgxKSx6YygiVG8gdW5sb2NrIG1vcmUgdGhhbiAiLGEubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQsIiAiLDE9PT1hLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jfcm93c19hbGxvd2VkPyJyb3ciOiJy'@; put 'b3dzIiwiLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKX19ZnVuY3Rpb24gT1VlKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXRvb2x0aXAtY29udGVudCIsODYpLEplKDEsUlVlLDIsMiwic3BhbiIsMzUpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgxKSxSZSgibmdJ'@; put 'ZiIsYS5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3cpfX1mdW5jdGlvbiBQVWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJidXR0b24iLDk1KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmNhbmNlbEVkaXQoKSl9KSxxdCgyLCJj'@; put 'bHItaWNvbiIsOTYpLG1lKDMsInNwYW4iKSxOZSg0LCJDYW5jZWwiKSx5ZSgpKCksbWUoNSwiY2xyLXRvb2x0aXAiKSg2LCJidXR0b24iLDk3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4ganQoaC5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3c/'@; put 'IiI6aC5hZGRSb3coKSl9KSxxdCg3LCJjbHItaWNvbiIsOTgpLE5lKDgsIkFkZCBSb3cgIikseWUoKSxKZSg5LE9VZSwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDg0KSx5ZSgpLG1lKDEwLCJidXR0b24iLDQwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIp'@; put 'LmNoZWNrU2F2ZSgpKX0pLHF0KDExLCJjbHItaWNvbiIsOTkpLE5lKDEyLCJTdWJtaXQgIikseWUoKSx6cigpfWlmKDImYyl7Y29uc3QgYT1WZSgyKTtDZSg2KSxkcigiZGMtbG9ja2VkLWNvbnRyb2wiLGEucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUm93KSxSZSgiY2xyTG9hZGluZyIsYS5h'@; put 'ZGRpbmdOZXdSb3cpfX1mdW5jdGlvbiBGVWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJidXR0b24iLDEwMykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgzKS5tYW51YWxGaWxlRWRpdE1vZGFsPSEwKX0pLHF0KDEsImNsci1pY29uIiw5MSksbWUo'@; put 'Miwic3BhbiIpLE5lKDMsIkVkaXQiKSx5ZSgpKCl9fWZ1bmN0aW9uIEhVZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsImJ1dHRvbiIsMTAwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmRpc2NhcmRTb3VyY2VGaWxlPSEwKX0pLHF0'@; put 'KDIsImNsci1pY29uIiw5NiksbWUoMywic3BhbiIpLE5lKDQsIkRpc2NhcmQgZmlsZSIpLHllKCkoKSxKZSg1LEZVZSw0LDAsImJ1dHRvbiIsMTAxKSxtZSg2LCJidXR0b24iLDEwMikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5zdWJtaXRFeGNlbCgpKX0p'@; put 'LHF0KDcsImNsci1pY29uIiw5OSksTmUoOCwiIFN1Ym1pdCAiKSx5ZSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpO0NlKDUpLFJlKCJuZ0lmIixhLmhvdFRhYmxlLnJlYWRPbmx5KSxDZSgxKSxSZSgiY2xyTG9hZGluZyIsYS51cGxvYWRMb2FkaW5nKX19ZnVuY3Rpb24gTlVlKGMsbCl7'@; put 'aWYoMSZjJiYobWUoMCwiZGl2Iiw4NyksSmUoMSxMVWUsMTAsMSwibmctY29udGFpbmVyIiwzNSksSmUoMixQVWUsMTMsMywibmctY29udGFpbmVyIiwzNSksSmUoMyxIVWUsOSwyLCJuZy1jb250YWluZXIiLDM1KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJZiIsYS5o'@; put 'b3RUYWJsZS5yZWFkT25seSYmIWEudXBsb2FkUHJldmlldyksQ2UoMSksUmUoIm5nSWYiLCFhLmhvdFRhYmxlLnJlYWRPbmx5JiYhYS51cGxvYWRQcmV2aWV3KSxDZSgxKSxSZSgibmdJZiIsYS51cGxvYWRQcmV2aWV3KX19ZnVuY3Rpb24gVlVlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiwx'@; put 'MDQpKDEsInNwYW4iKSxOZSgyLCJGSUxURVIgOiAiKSxtZSgzLCJiIiksTmUoNCkseWUoKSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDQpLG9yKGEucXVlcnlUZXh0KX19ZnVuY3Rpb24gQlVlKGMsbCl7MSZjJiYoVnIoMCksbWUoMSwic3BhbiIsMTA3KSxOZSgyLCIgTG9hZGluZy4uLiAi'@; put 'KSx5ZSgpLG1lKDMsImRpdiIpKDQsImgzIiksTmUoNSwiTG9hZGluZyB0YWJsZSIpLHllKCkoKSx6cigpKX1mdW5jdGlvbiBqVWUoYyxsKXsxJmMmJihWcigwKSxtZSgxLCJzcGFuIikscXQoMiwiY2xyLWljb24iLDEwOCkseWUoKSxtZSgzLCJkaXYiKSg0LCJoMyIpLE5lKDUsIkxvYWRpbmcg'@; put 'dGFibGUgZXJyb3IiKSx5ZSgpKCksenIoKSl9ZnVuY3Rpb24gelVlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwxMDUpKDEsImRpdiIsMTA2KSxKZSgyLEJVZSw2LDAsIm5nLWNvbnRhaW5lciIsMzUpLEplKDMsalVlLDYsMCwibmctY29udGFpbmVyIiwzNSkseWUoKSgpKSwyJmMpe2NvbnN0'@; put 'IGE9VmUoKTtDZSgyKSxSZSgibmdJZiIsIWEuZ2V0ZGF0YUVycm9yKSxDZSgxKSxSZSgibmdJZiIsYS5nZXRkYXRhRXJyb3IpfX1mdW5jdGlvbiBVVWUoYyxsKXtpZigxJmMmJihtZSgwLCJzcGFuIiksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLHpjKCJUbyB1bmxvY2sg'@; put 'bW9yZSB0aGFuICIsYS5saWNlbmNlU3RhdGUudmFsdWUuZWRpdG9yX3Jvd3NfYWxsb3dlZCwiICIsMT09PWEubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQ/InJvdyI6InJvd3MiLCIsIGNvbnRhY3Qgc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIpfX1mdW5jdGlvbiBa'@; put 'VWUoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdG9vbHRpcC1jb250ZW50IiwxMTEpLEplKDEsVVVlLDIsMiwic3BhbiIsMzUpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgxKSxSZSgibmdJZiIsYS5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3cpfX1mdW5jdGlvbiBZVWUoYyxsKXtp'@; put 'ZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdG9vbHRpcCIpKDEsImJ1dHRvbiIsMTA5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVybiBqdChoLnJlc3RyaWN0aW9ucy5yZXN0cmljdEFkZFJvdz8iIjpoLmFkZFJlY29yZEJ1dHRvbkNsaWNrKCkp'@; put 'fSkscXQoMiwiY2xyLWljb24iLDk4KSxOZSgzLCIgQWRkIFJlY29yZCAiKSx5ZSgpLEplKDQsWlVlLDIsMSwiY2xyLXRvb2x0aXAtY29udGVudCIsMTEwKSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLGRyKCJkYy1sb2NrZWQtY29udHJvbCIsYS5yZXN0cmljdGlvbnMucmVzdHJp'@; put 'Y3RBZGRSb3cpfX1mdW5jdGlvbiBXVWUoYyxsKXtpZigxJmMmJihtZSgwLCJwIiwxMTIpLE5lKDEpLHF0KDIsImNvbnRhY3QtbGluayIpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLGdyKCIgVG8gZGlzcGxheSBtb3JlIHRoYW4gIixhLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jf'@; put 'cm93c19hbGxvd2VkLCIgcm93cywgY29udGFjdCAiKX19ZnVuY3Rpb24gR1VlKGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIsMTI0KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksemMoIk9ubHkgIixhLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCwi'@; put 'ICIsMT09PWEubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0PyJyb3ciOiJyb3dzIiwiIHdpbGwgYmUgc3VibWl0dGVkLiBUbyByZW1vdmUgdGhlIHJlc3RyaWN0aW9uLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKX19ZnVuY3Rpb24gJFVlKGMsbCl7aWYo'@; put 'MSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwxMjUpKDEsImRpdiIsMTI2KSgyLCJsYWJlbCIsMTI3KSxOZSgzLCJNZXNzYWdlIikseWUoKSxtZSg0LCJ0ZXh0YXJlYSIsMTI4KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLm1lc3NhZ2U9'@; put 'aCl9KSx5ZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoMik7Q2UoNCksUmUoIm5nTW9kZWwiLGEubWVzc2FnZSkoImRpc2FibGVkIiwhYS52YWxpZGF0aW9uRG9uZSkoInZhbHVlIixhLnZhbGlkYXRpb25Eb25lPyIiOiJQbGVhc2Ugd2FpdCB3aGlsZSB3ZSB2YWxpZGF0ZSAiK2EuY29scy5s'@; put 'ZW5ndGgqYS5tb2RpZmVkUm93c0luZGV4ZXMubGVuZ3RoKyIgY2VsbHMuIil9fWZ1bmN0aW9uIHFVZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsMTEzKSgxLCJkaXYiLDExNCkoMiwiZGl2IiwxMTUpKDMsImRpdiIsMTE2KSg0LCJidXR0b24iLDExNykscXQoNSwiY2xy'@; put 'LWljb24iLDExOCkseWUoKSxtZSg2LCJoMyIsMiksTmUoNykseWUoKSgpLG1lKDgsImRpdiIsMyksSmUoOSxHVWUsMiwyLCJzcGFuIiwxMTkpLEplKDEwLCRVZSw1LDMsImRpdiIsMTIwKSx5ZSgpLG1lKDExLCJkaXYiLDEyMSkoMTIsImJ1dHRvbiIsMTIyKSx4dCgiY2xpY2siLGZ1bmN0aW9u'@; put 'KCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVybiBqdChoLnNhdmVUYWJsZShoLmhvdFRhYmxlLmRhdGEpKX0pLE5lKDEzLCIgU3VibWl0ICIpLHllKCksbWUoMTQsImJ1dHRvbiIsMTIzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVybiBoLmNhbmNlbFN1'@; put 'Ym1pdCgpLGguc3VibWl0PSExLGp0KGgudmFsaWRhdGlvbkRvbmU9MCl9KSxOZSgxNSwiIENhbmNlbCAiKSx5ZSgpKCkoKSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoNyksYjAoIiBTdWJtaXQgZm9yIEFwcHJvdmFsICgiLGEucm93c0NoYW5nZWQucm93c0FkZGVkLCIgYWRkZWQsICIs'@; put 'YS5yb3dzQ2hhbmdlZC5yb3dzVXBkYXRlZCwiIHVwZGF0ZWQsICIsYS5yb3dzQ2hhbmdlZC5yb3dzRGVsZXRlZCwiIGRlbGV0ZWQpICIpLENlKDIpLFJlKCJuZ0lmIixhLnRvdGFsUm93c0NoYW5nZWQ+YS5saWNlbmNlU3RhdGUudmFsdWUuc3VibWl0X3Jvd3NfbGltaXQmJmEubGljZW5jZVN0'@; put 'YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0IT09YS5JbmZpbml0eSksQ2UoMSksUmUoIm5nSWYiLGEudGFibGVUcnVlKSxDZSgyKSxSZSgiZGlzYWJsZWQiLCFhLnZhbGlkYXRpb25Eb25lKX19ZnVuY3Rpb24gS1VlKGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIsMTI5KSxOZSgxKSxiYSgy'@; put 'LCJwa1NwYWNlU2VwYXJhdGUiKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSgpO0NlKDEpLHpjKCIgT24gcm93ICIsYSsxLCI6ICIsWmwoMiwyLGQucGtGaWVsZHNbYV0ucmVwbGFjZSgifCIsIiIpKSwiICIpfX1mdW5jdGlvbiBYVWUoYyxsKXtpZigxJmMmJihtZSgwLCJw'@; put 'IiksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLGIwKCIgIixhLmNvbCwiKCIsYS5sZW4sIiksICIsYS52YWwsIiAiKX19ZnVuY3Rpb24gSlVlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwxMzApKDEsImRpdiIsMTMxKSgyLCJkaXYiLDEx'@; put 'NSkoMywiZGl2IiwxMTYpKDQsImJ1dHRvbiIsMTE3KSxxdCg1LCJjbHItaWNvbiIsMTE4KSx5ZSgpLG1lKDYsImgzIiwyKSxOZSg3LCJFcnJvciIpLHllKCkoKSxtZSg4LCJkaXYiLDMpKDksInAiKSxOZSgxMCwiWW91IGNhbm5vdCBzdWJtaXQgZW1wdHkgY2xhdXNlcyIpLHllKCkoKSxtZSgx'@; put 'MSwiZGl2IiwxNykoMTIsImJ1dHRvbiIsNDApLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5udWxsVmFyaWFibGVzPSExKX0pLE5lKDEzLCIgT2sgIikseWUoKSgpKCkoKSgpfX1mdW5jdGlvbiBRVWUoYyxsKXsxJmMmJnF0KDAsImFwcC1xdWVyeSIsbnVsbCwx'@; put 'MzIpfWZ1bmN0aW9uIGVaZShjLGwpezEmYyYmKG1lKDAsInAiLDEzMyksTmUoMSwiIFNvcnJ5IHRoYXQgZGlkbid0IHdvcmssIHRyeSBhZ2Fpbi4gIikseWUoKSl9Y29uc3QgdFplPWZ1bmN0aW9uKGMsbCl7cmV0dXJue2xpYk5hbWU6Yyx0YWJsZU5hbWU6bH19LElzZT1mdW5jdGlvbigpe3Jl'@; put 'dHVyblsiIiwiICJdfSxuWmU9ZnVuY3Rpb24oYyl7cmV0dXJue2hlYWRlckJhckZpbHRlcjpjfX0sTHNlPUYoNTMpLFJzZT1GKDM5MDA3KS5CdWZmZXI7bGV0IEpBPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQsVyxpZSxwZSx3ZSl7dGhpcy5saWNlbmNlU2VydmljZT1h'@; put 'LHRoaXMuZXZlbnRTZXJ2aWNlPWQsdGhpcy5sb2dnZXJTZXJ2aWNlPWgsdGhpcy5zYXNTdG9yZVNlcnZpY2U9Zix0aGlzLmhlbHBlclNlcnZpY2U9Xyx0aGlzLnJvdXRlcj1ULHRoaXMucm91dGU9Vyx0aGlzLnNhc1NlcnZpY2U9aWUsdGhpcy5jZGY9cGUsdGhpcy5ob3RSZWdpc3RlcmVyPXdl'@; put 'LHRoaXMudXBsb2FkU3RhdGVyQ29tcExpc3Q9bmV3IGVoLHRoaXMucXVlcnlGaWx0ZXJDb21wTGlzdD1uZXcgZWgsdGhpcy5ob3RJbnN0YW5jZUNvbXBMaXN0PW5ldyBlaCx0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0PW5ldyBlaCx0aGlzLm1lc3NhZ2U9IiIsdGhpcy4kZGF0YUZvcm1h'@; put 'dHM9bnVsbCx0aGlzLmNvbHM9W10sdGhpcy5yZXN0cmljdGlvbnM9e30sdGhpcy5kYXRhc2V0SW5mbz0hMSx0aGlzLmRzbWV0YT1bXSx0aGlzLmRzTm90ZT0iIix0aGlzLnZpZXdib3hlcz0hMSx0aGlzLkluZmluaXR5PTEvMCx0aGlzLmhvdFRhYmxlPXtkYXRhOltdLGNvbEhlYWRlcnM6W10s'@; put 'aGlkZGVuOiEwLGNvbHVtbnM6W10saGVpZ2h0OiIxMDAlIixtaW5TcGFyZVJvd3M6MSxsaWNlbnNlS2V5OnZvaWQgMCxyZWFkT25seTohMCxjb3B5UGFzdGU6e2NvcHlDb2x1bW5IZWFkZXJzOiEwLGNvcHlDb2x1bW5IZWFkZXJzT25seTohMH0sc2V0dGluZ3M6e2NvbnRleHRNZW51OntpdGVt'@; put 'czp7ZWRpdF9yb3c6e25hbWU6IkVkaXQgcm93IixoaWRkZW4oKXtjb25zdCBpdD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtpZighaXQpcmV0dXJuITE7Y29uc3QgZXQ9aXRbMF07cmV0dXJuIGV0LmZyb20ucm93IT09ZXQudG8ucm93fSxjYWxsYmFjazooWmUsaXQsZXQpPT57bGV0IHl0PWl0'@; put 'WzBdO3l0LnN0YXJ0LnJvdz09PXl0LmVuZC5yb3cmJnRoaXMuZWRpdFJlY29yZChudWxsLHl0LnN0YXJ0LnJvdyl9fSxyb3dfYWJvdmU6e25hbWU6Ikluc2VydCBSb3cgYWJvdmUifSxyb3dfYmVsb3c6e25hbWU6Ikluc2VydCBSb3cgYmVsb3cifSxyZW1vdmVfcm93OntuYW1lOiJJZ25vcmUg'@; put 'cm93In0sY29weTp7bmFtZToiQ29weSB3aXRob3V0IGhlYWRlcnMifSxjb3B5X3dpdGhfY29sdW1uX2hlYWRlcnM6e25hbWU6IkNvcHkgd2l0aCBoZWFkZXJzIn0sY29weV9jb2x1bW5faGVhZGVyc19vbmx5OntuYW1lOiJDb3B5IGhlYWRlcnMgb25seSJ9LHNwMTp7bmFtZToiLS0tLS0tLS0t'@; put 'In0sdW5kbzp7bmFtZToiVW5kbyJ9LHJlZG86e25hbWU6IlJlZG8ifX19fX0sdGhpcy5ob3RDZWxsc1Byb3BSb3c9bnVsbCx0aGlzLmZpbHRlcj0hMSx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhpcy51cGxvYWRMb2FkaW5nPSExLHRoaXMucm93c0NoYW5nZWQ9e3Jvd3NVcGRhdGVkOjAscm93'@; put 'c0RlbGV0ZWQ6MCxyb3dzQWRkZWQ6MH0sdGhpcy5tb2RpZmVkUm93c0luZGV4ZXM9W10sdGhpcy5xdWVyeUVycj0hMSx0aGlzLnN1Y2Nlc3NFbmFibGU9ITEsdGhpcy5udWxsVmFyaWFibGVzPSExLHRoaXMucGtGaWVsZHM9W10sdGhpcy5maWxlbmFtZT0iIix0aGlzLnN1Ym1pdExpbWl0Tm90'@; put 'aWNlPSExLHRoaXMuYmFkRWRpdD0hMSx0aGlzLnNhdmVMb2FkaW5nPSExLHRoaXMuYXBwcm92ZXJzPVtdLHRoaXMuZXJyVmFsaWRhdGlvbj0hMSx0aGlzLnBrTnVsbD0hMSx0aGlzLm5vUGtOdWxsPSExLHRoaXMudGFibGVEYXRhPVtdLHRoaXMucXVlcnlUZXh0PSIiLHRoaXMucXVlcnlUZXh0'@; put 'U2F2ZWQ9IiIsdGhpcy5zaG93QXBwcm92ZXJzPSExLHRoaXMucGtEdXBzPSExLHRoaXMudmFsaWRhdGlvbkRvbmU9MCx0aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcz1bXSx0aGlzLmNvbHVtbkhlYWRlcj1bXSx0aGlzLnNwZWNJbmZvPVtdLHRoaXMudG9vTG9uZz0hMSx0aGlzLmV4Y2VlZENlbGxz'@; put 'PVtdLHRoaXMudXBsb2FkZXI9bmV3IFJvZSx0aGlzLnVwbG9hZFVybD0iIix0aGlzLmV4Y2VsRmlsZVJlYWR5PSExLHRoaXMudXBsb2FkUHJldmlldz0hMSx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdGhpcy5leGNlbFVwbG9hZFN0YXRlPW51bGwsdGhpcy5kYXRhPVtdLHRoaXMuaGVhZGVy'@; put 'QXJyYXk9W10sdGhpcy5ob3REYXRhU2NoZW1hPXt9LHRoaXMuaGVhZGVyU2hvdz1bXSx0aGlzLmhlYWRlclZpc2libGU9ITEsdGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPSExLHRoaXMuaGFzQW5vdGhlckRyb3Bab25lT3Zlcj0hMSx0aGlzLmhlYWRlclBrcz1bXSx0aGlzLmNvbHVtbkxldmVs'@; put 'U2VjdXJpdHlGbGFnPSExLHRoaXMuZGF0ZVRpbWVIZWFkZXJzPVtdLHRoaXMudGltZUhlYWRlcnM9W10sdGhpcy5kYXRlSGVhZGVycz1bXSx0aGlzLnhsUnVsZXM9W10sdGhpcy5lbmNvZGluZz0iVVRGLTgiLHRoaXMuaGVhZGVyQ29sdW1ucz1bXSx0aGlzLmNlbGxWYWxpZGF0aW9uPVtdLHRo'@; put 'aXMuZmlsZVBhc3N3b3JkU3ViamVjdD1uZXcgYmUsdGhpcy5maWxlVW5sb2NrRXJyb3I9ITEsdGhpcy5maWxlUGFzc3dvcmRNb2RhbD0hMSx0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLmRpc2NhcmRTb3VyY2VGaWxlPSExLHRoaXMubWFudWFsRmlsZUVkaXRNb2RhbD0hMSx0aGlzLnJl'@; put 'Y29yZEFjdGlvbj1udWxsLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncz1bXSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzPVtdLHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSx0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITEsdGhpcy5nZW5lcmF0ZWRS'@; put 'ZWNvcmRVcmw9bnVsbCx0aGlzLmFkZFJlY29yZFVybD1udWxsLHRoaXMucmVjb3JkTmV3T3JQa01vZGlmaWVkPSExLHRoaXMuYWRkUmVjb3JkTG9hZGluZz0hMSx0aGlzLnNpbmdsZVJvd1NlbGVjdGVkPSExLHRoaXMuYWRkaW5nTmV3Um93PSExLHRoaXMuZ2V0ZGF0YUVycm9yPSExLHRoaXMu'@; put 'emVyb0ZpbHRlclJvd3M9ITEsdGhpcy50YWJsZUZpbGVEcmFnT3Zlcj0hMSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlPVtdLHRoaXMudmFsaWRhdGlvblRhYmxlTGltaXQ9MjAsdGhpcy5leHRlbmRlZENlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZX0lOREVYOjAsRVhUUkFfQ09MX05B'@; put 'TUU6MSxESVNQTEFZX1ZBTFVFOjIsRElTUExBWV9UWVBFOjMsUkFXX1ZBTFVFX05VTTo0LFJBV19WQUxVRV9DSEFSOjUsRk9SQ0VfRkxBRzo2fSx0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZX0lOREVYOjAsRElTUExBWV9WQUxVRToxLFJBV19WQUxVRToyfSx0aGlzLmRpc2Fi'@; put 'bGVkQmFzaWNEeW5hbWljQ2VsbFZhbGlkYXRpb25NYXA9W10sdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGUsdGhpcy50aW1lc0NsaWNrZWQ9MCxaelt3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlXSYmVEllKCkucmVnaXN0ZXJMYW5ndWFnZShaelt3'@; put 'aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlXSksdGhpcy5ob3RSZWdpc3RlcmVyPW5ldyBBZyx0aGlzLnBhcnNlUmVzdHJpY3Rpb25zKCksdGhpcy5zZXRSZXN0cmljdGlvbnMoKX1wYXJzZVJlc3RyaWN0aW9ucygpe3RoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUmVjb3JkPSExPT09dGhp'@; put 'cy5saWNlbmNlU3RhdGUudmFsdWUuYWRkUmVjb3JkLHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0RWRpdFJlY29yZD0hMT09PXRoaXMubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRSZWNvcmQsdGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RGaWxlVXBsb2FkPSExPT09dGhpcy5saWNlbmNlU3Rh'@; put 'dGUudmFsdWUuZmlsZVVwbG9hZH1zZXRSZXN0cmljdGlvbnMoYSl7YSYmKHRoaXMucmVzdHJpY3Rpb25zPXsuLi50aGlzLnJlc3RyaWN0aW9ucywuLi5hfSksdGhpcy5yZXN0cmljdGlvbnMucmVtb3ZlRWRpdFJlY29yZEJ1dHRvbiYmZGVsZXRlKHRoaXMuaG90VGFibGU/LnNldHRpbmdzPy5j'@; put 'b250ZXh0TWVudSkuaXRlbXMuZWRpdF9yb3csdGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3cmJihkZWxldGUodGhpcy5ob3RUYWJsZT8uc2V0dGluZ3M/LmNvbnRleHRNZW51KS5pdGVtcy5yb3dfYWJvdmUsZGVsZXRlKHRoaXMuaG90VGFibGU/LnNldHRpbmdzPy5jb250ZXh0TWVu'@; put 'dSkuaXRlbXMucm93X2JlbG93LGRlbGV0ZSh0aGlzLmhvdFRhYmxlPy5zZXR0aW5ncz8uY29udGV4dE1lbnUpLml0ZW1zLnJlbW92ZV9yb3cpfWNoZWNrUm93TGltaXQoKXt0aGlzLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnfHx0aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jfcm93c19h'@; put 'bGxvd2VkIT09MS8wJiYodGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3c9dGhpcy5kYXRhU291cmNlPy5sZW5ndGg+PXRoaXMubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQpfXJlc2V0RmlsdGVyKCl7dGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0LmZpcnN0JiZ0'@; put 'aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3QuZmlyc3QucmVzZXRGaWx0ZXIoKX1vblNob3dVcGxvYWRNb2RhbCgpe3RoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0RmlsZVVwbG9hZD90aGlzLmV2ZW50U2VydmljZS5zaG93RGVtb0xpbWl0TW9kYWwoIkZpbGUgVXBsb2FkIik6dGhpcy5jb2x1bW5M'@; put 'ZXZlbFNlY3VyaXR5RmxhZz90aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJJbmZvcm1hdGlvbiIsIlVwbG9hZCBmZWF0dXJlIGlzIGRpc2FibGVkIHdoaWxlIENvbHVtbiBMZXZlbCBTZWN1cml0eSBydWxlcyBhcmUgYWN0aXZlIik6dGhpcy51cGxvYWRQcmV2aWV3fHwodGhpcy5z'@; put 'aG93VXBsb2FkTW9kYWw9ITApfWZpbGVPdmVyQmFzZShhKXt0aGlzLmhhc0Jhc2VEcm9wWm9uZU92ZXI9YX11cGRhdGVfc2hlZXRfcmFuZ2UoYSl7dmFyIGQ9e3M6e3I6MS8wLGM6MS8wfSxlOntyOjAsYzowfX07T2JqZWN0LmtleXMoYSkuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiIhIiE9'@; put 'aC5jaGFyQXQoMCl9KS5tYXAoRGwudXRpbHMuZGVjb2RlX2NlbGwpLmZvckVhY2goZnVuY3Rpb24oaCl7ZC5zLmM9TWF0aC5taW4oZC5zLmMsaC5jKSxkLnMucj1NYXRoLm1pbihkLnMucixoLnIpLGQuZS5jPU1hdGgubWF4KGQuZS5jLGguYyksZC5lLnI9TWF0aC5tYXgoZC5lLnIsaC5yKX0p'@; put 'LGFbIiFyZWYiXT1EbC51dGlscy5lbmNvZGVfcmFuZ2UoZCl9Z2V0UmFuZ2VBbmRTaGVldChhKXtsZXQgZD0wLGg9MCxmPS0xLF89LTEsVD0iIixXPSExLGllPVtdLHdlPVsiX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIiwuLi50aGlzLmhlYWRlckFycmF5XS5tYXAoaXQ9Pml0LnRv'@; put 'TG93ZXJDYXNlKCkpLEVlPXdlLnJlZHVjZSgoaXQsZXQpPT4oaXRbZXRdPS0xLGl0KSx7fSk7cmV0dXJuIGEuU2hlZXROYW1lcy5mb3JFYWNoKGl0PT57aWYoVylyZXR1cm47aWU9W10sVD1pdDtjb25zdCBldD1hLlNoZWV0c1tUXTtpZih0aGlzLmRhdGE9RGwudXRpbHMuc2hlZXRfdG9fanNv'@; put 'bihldCx7aGVhZGVyOjEsYmxhbmtyb3dzOiExLGRlZnZhbDoiIn0pLHRoaXMuZGF0YS5sZW5ndGg8PTEpcmV0dXJuO2xldCB5dD1bXTt0aGlzLmhlYWRlckFycmF5LmZvckVhY2goKCk9Pnl0LnB1c2goIiIpKSx0aGlzLmRhdGEucHVzaCh5dCk7bGV0IEV0PSExO2lmKHRoaXMuZGF0YS5mb3JF'@; put 'YWNoKChTdCxKdCk9PntpZighVylpZihFdCl7bGV0IG5uPSEwLHZuPSExO3dlLmZvckVhY2goTm49Pntjb25zdCBjcj1FZVtObl07IiIhPT1TdFtjcl0mJnZvaWQgMCE9PVN0W2NyXT9ubj0hMTotMSE9PXRoaXMuaGVhZGVyUGtzLmluZGV4T2YoTm4udG9VcHBlckNhc2UoKSkmJih2bj0hMCl9'@; put 'KSxubnx8dm4/KF89SnQsVz0hMCk6LTE9PT1mJiYoZj1KdCl9ZWxzZXtjb25zdCBubj1TdC5tYXAoTm49Pk5uLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7aWYoIW5uLmluY2x1ZGVzKCJfX19fX2RlbGV0ZV9fdGhpc19fcmVjb3JkX19fX18iKSl7Y29uc3QgTm49d2UuaW5kZXhPZigiX19f'@; put 'X19kZWxldGVfX3RoaXNfX3JlY29yZF9fX19fIik7Tm4+LTEmJndlLnNwbGljZShObiwxKX1FdD0hMCx3ZS5mb3JFYWNoKE5uPT57LTE9PT1ubi5pbmRleE9mKE5uKSYmKEV0PSExKX0pO2xldCB2bj1bXTt2bj10aGlzLmZpbmRWYWxpZEhlYWRlcnMobm4sd2UsSnQsVCksITE9PT12blswXT8o'@; put 'RXQ9ITEsdm5bMV0ubGVuZ3RoPjAmJnZuWzFdLmZvckVhY2goTm49PntpZS5wdXNoKE5uKX0pKTpFZT12blsxXX19KSxXJiYodGhpcy51cGRhdGVfc2hlZXRfcmFuZ2UoZXQpLGV0WyIhcmVmIl0pKXtjb25zdCBKdD1EbC51dGlscy5kZWNvZGVfcmFuZ2UoZXRbIiFyZWYiXXx8IiIpO2Q9SnQu'@; put 'cy5yLGg9SnQucy5jfX0pLC0xPT09ZiYmKFc9ITEpLHtmb3VuZERhdGE6VyxzaGVldE5hbWU6VCxzdGFydFJvdzpmLGVuZFJvdzpfLGNzdkFycmF5SGVhZGVyc01hcDpFZSxtaXNzaW5nSGVhZGVyczppZSxyYW5nZVN0YXJ0Um93OmQscmFuZ2VTdGFydENvbDpofX1wcm9tcHRFeGNlbFBhc3N3'@; put 'b3JkKCl7cmV0dXJuIG5ldyBQcm9taXNlKChhLGQpPT57dGhpcy5maWxlUGFzc3dvcmRNb2RhbD0hMCxzZXRUaW1lb3V0KCgpPT57Y29uc3QgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZmlsZVBhc3N3b3JkSW5wdXQiKTtoJiYoaC5mb2N1cygpLGgudmFsdWU9IiIpfSwxMDApLHRoaXMu'@; put 'ZmlsZVBhc3N3b3JkU3ViamVjdC5zdWJzY3JpYmUoaD0+e3RoaXMuZmlsZVVubG9ja0Vycm9yPSExLGEoaHx8dm9pZCAwKX0pfSl9Z2V0RmlsZURlc2MoYSxkPSExKXt2YXIgaD10aGlzO2xldCBmO3RoaXMuZXhjZWxVcGxvYWRTdGF0ZT0iTG9hZGluZyIsdGhpcy5leGNlbEZpbGVQYXJzaW5n'@; put 'PSEwLGY9ZD9hWzBdOmEudGFyZ2V0LmZpbGVzWzBdLHRoaXMuZXhjZWxGaWxlUmVhZHk9ITEsdGhpcy5maWxlbmFtZT0iIjtsZXQgXz1mLm5hbWU7dGhpcy5maWxlbmFtZT1fLHRoaXMuYXBwZW5kVXBsb2FkU3RhdGUoYExvYWRpbmcgJHtffSBpbnRvIHRoZSBicm93c2VyYCk7bGV0IFc9Xy5z'@; put 'bGljZShfLmxhc3RJbmRleE9mKCIuIikrMSxfLmxhc3RJbmRleE9mKCIuIikrNCk7aWYoInhscyI9PT1XLnRvTG93ZXJDYXNlKCkpe2xldCBpZT1uZXcgRmlsZVJlYWRlcjtpZS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgd2U9ZmkoZnVuY3Rpb24qKEVlKXtjb25zdCBaZT1oLnRvQnN0cihFZS50'@; put 'YXJnZXQucmVzdWx0KTtsZXQgaXQsZXQ9ITE7Y29uc3QgeXQ9e3R5cGU6ImJpbmFyeSIsY2VsbERhdGVzOiExLGNlbGxGb3JtdWxhOiEwLGNlbGxTdHlsZXM6ITAsY2VsbE5GOiExLGNlbGxUZXh0OiExfTt0cnl7aXQ9RGwucmVhZChaZSx7Li4ueXR9KX1jYXRjaChJcil7aWYoSXIubWVzc2Fn'@; put 'ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJwYXNzd29yZCIpKWZvcihldD0hMDtldDspe2NvbnN0IEVpPXlpZWxkIGgucHJvbXB0RXhjZWxQYXNzd29yZCgpO2lmKEVpKXRyeXtpdD1EbC5yZWFkKFplLHsuLi55dCxwYXNzd29yZDpFaX0pLGV0PSExLGguZmlsZVVubG9ja0Vycm9yPSExfWNh'@; put 'dGNoKElpKXtoLmZpbGVVbmxvY2tFcnJvcj0hMCxJaS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoInBhc3N3b3JkIil8fChldD0hMSl9ZWxzZSBldD0hMX1lbHNlIGguZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsSXIsdm9pZCAwLCJFcnJvciByZWFkaW5nIGZpbGUi'@; put 'KX1pZighaXQpcmV0dXJuIGguZXhjZWxGaWxlUGFyc2luZz0hMSx2b2lkKGguc2hvd1VwbG9hZE1vZGFsPSExKTtsZXQgRXQ9ITEsU3Q9W107Y29uc3QgSnQ9WyJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iLC4uLmguaGVhZGVyQXJyYXldO2xldCBubj1KdC5tYXAoSXI9PklyLnRv'@; put 'TG93ZXJDYXNlKCkpLHZuPW5uLnJlZHVjZSgoSXIsRWkpPT4oSXJbRWldPS0xLElyKSx7fSksTm49W107Y29uc3QgY3I9aC5nZXRSYW5nZUFuZFNoZWV0KGl0KTtpZihTdD1jci5taXNzaW5nSGVhZGVycyxjci5mb3VuZERhdGEpe0V0PSEwLHZuPWNyLmNzdkFycmF5SGVhZGVyc01hcDtjb25z'@; put 'dCBJcj1pdC5TaGVldHNbY3Iuc2hlZXROYW1lXTtoLmFwcGVuZFVwbG9hZFN0YXRlKGBUYWJsZSBmb3VuZCBvbiBzaGVldCAke2NyLnNoZWV0TmFtZX0gb24gcm93ICR7Y3Iuc3RhcnRSb3d9YCk7bGV0IEVpPSIiLElpPSIiO2ZvcihsZXQgZnI9Y3Iuc3RhcnRSb3c7ZnI8Y3IuZW5kUm93Oysr'@; put 'ZnIpe2NvbnN0IGlpPVtdO25uLmZvckVhY2goT249Pntjb25zdCBRbj1EbC51dGlscy5lbmNvZGVfY2VsbCh7cjpjci5yYW5nZVN0YXJ0Um93K2ZyLGM6Y3IucmFuZ2VTdGFydENvbCt2bltPbl19KTtsZXQgTXI7IiI9PT1FaSYmKEVpPVFuKSxJaT1RbixNcj1JcltRbl0/SXJbUW5dOnt2OiIi'@; put 'fSxpaS5wdXNoKE1yKX0pLGlpLmZpbmQoT249PiIiIT09T24udikmJk5uLnB1c2goaWkpfWguZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIlRhYmxlIEZvdW5kIixgU2hlZXQ6ICR7Y3Iuc2hlZXROYW1lfVxuUmFuZ2U6ICR7RWl9OiR7SWl9YCl9ZWxzZSBTdD1jci5taXNzaW5nSGVhZGVy'@; put 'cztpZihTdC5sZW5ndGg+MCl7U3Quc29ydChmdW5jdGlvbihJaSxmcil7cmV0dXJuIElpWzFdPT09ZnJbMV0/MDpJaVsxXT5mclsxXT8tMToxfSk7bGV0IElyPVN0Lm1hcChFaT0+RWlbMF0pLnNsaWNlKDAsNSkuam9pbigiXG4iKTtyZXR1cm4gaC5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9k'@; put 'YWwobnVsbCxJciksc2V0VGltZW91dCgoKT0+e2guZmlsZW5hbWU9IiJ9KSxoLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdm9pZCBoLnVwbG9hZGVyLnF1ZXVlLnBvcCgpfWlmKDA9PT1Obi5sZW5ndGh8fDA9PT1OblswXS5sZW5ndGgpcmV0dXJuIGguZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFs'@; put 'KG51bGwsIk5vIHJlbGV2YW50IGRhdGEgZm91bmQgaW4gRmlsZSAhIiksc2V0VGltZW91dCgoKT0+e2guZmlsZW5hbWU9IiJ9KSxoLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdm9pZCBoLnVwbG9hZGVyLnF1ZXVlLnBvcCgpO2lmKChoLmRhdGVUaW1lSGVhZGVycy5sZW5ndGg+MHx8aC5kYXRlSGVh'@; put 'ZGVycy5sZW5ndGg+MHx8aC50aW1lSGVhZGVycy5sZW5ndGg+MCkmJihObj1oLnVwZGF0ZURhdGVUaW1lQ29scyhKdCxObikpLGgueGxSdWxlcy5sZW5ndGg+MCYmKE5uPWgudXBkYXRlWExSdWxlQ29scyhKdCxObikpLCFFdCl7aWYoMD09PVN0Lmxlbmd0aCloLmV2ZW50U2VydmljZS5zaG93'@; put 'QWJvcnRNb2RhbChudWxsLCJObyByZWxldmFudCBkYXRhIGZvdW5kIGluIEZpbGUgISIpLHNldFRpbWVvdXQoKCk9PntoLmZpbGVuYW1lPSIifSk7ZWxzZXtTdC5zb3J0KGZ1bmN0aW9uKElpLGZyKXtyZXR1cm4gSWlbMV09PT1mclsxXT8wOklpWzFdPmZyWzFdPy0xOjF9KTtsZXQgSXI9U3Qu'@; put 'bWFwKEVpPT5FaVswXSkuc2xpY2UoMCw1KS5qb2luKCJcbiIpO2guZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsSXIpfXJldHVybiBoLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdm9pZCBoLnVwbG9hZGVyLnF1ZXVlLnBvcCgpfXtoLmhlYWRlclNob3c9SnQsTm49Tm4ubWFwKGZyPT5m'@; put 'ci5tYXAoaWk9PiJuIj09PWlpLnQ/aWkudjppaS53KSksTm49Tm4ubWFwKGZyPT5mci5tYXAoKGlpLGpyKT0+eyFpaSYmMCE9PWlpJiYoaWk9IiIpO2NvbnN0IE9uPWguaGVhZGVyU2hvd1tqcl07cmV0dXJuIm51bWVyaWMiPT09aC5kY1ZhbGlkYXRvcj8uZ2V0UnVsZShPbik/LnR5cGUmJigw'@; put 'LHQzLmlzU3BlY2lhbE1pc3NpbmcpKGlpKSYmIWlpLmluY2x1ZGVzKCIuIikmJihpaT0iLiIraWkpLGlpfSkpLGguZGF0YT1Objtjb25zdCBJcj1Obi5zbGljZSgwLGgubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0KTtsZXQgRWk9RGwudXRpbHMuanNvbl90b19zaGVldChJ'@; put 'cix7c2tpcEhlYWRlcjohMH0pLElpPURsLnV0aWxzLnNoZWV0X3RvX2NzdihFaSk7aWYoSWk9SnQuam9pbigiLCIpKyJcbiIrSWksIldMQVRJTjEiPT09aC5lbmNvZGluZyl7bGV0IGZyPUxzZS5kZWNvZGUoUnNlLmZyb20oSWkpLCJDUC0xMjUyIiksaWk9bmV3IEJsb2IoW2ZyXSx7dHlwZToi'@; put 'YXBwbGljYXRpb24vY3N2In0pLGpyPWguYmxvYlRvRmlsZShpaSxoLmZpbGVuYW1lKyIuY3N2Iik7aC51cGxvYWRlci5hZGRUb1F1ZXVlKFtqcl0pfWVsc2V7bGV0IGZyPW5ldyBCbG9iKFtJaV0se3R5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9KSxpaT1oLmJsb2JUb0ZpbGUoZnIsaC5maWxlbmFt'@; put 'ZSsiLmNzdiIpO2gudXBsb2FkZXIuYWRkVG9RdWV1ZShbaWldKX1oLmV4Y2VsRmlsZVJlYWR5PSEwfWlmKDA9PT1oLmRhdGEubGVuZ3RoKXJldHVybiBoLnNob3dVcGxvYWRNb2RhbD0hMSxoLnVwbG9hZFByZXZpZXc9ITEsaC5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQgaC5ldmVudFNlcnZp'@; put 'Y2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwiVGFibGUgaW4gdGhlIGZpbGUgaXMgZW1wdHkuIERhdGEgZm91bmQgb24gc2hlZXQ6ICIpO2guZXhjZWxGaWxlUmVhZHk9ITAsaC5nZXRQZW5kaW5nRXhjZWxQcmV2aWV3KCl9KTtyZXR1cm4gZnVuY3Rpb24oRWUpe3JldHVybiB3ZS5hcHBseSh0aGlz'@; put 'LGFyZ3VtZW50cyl9fSgpLGllLnJlYWRBc0FycmF5QnVmZmVyKGYpfWVsc2UgaWYoImNzdiI9PT1XLnRvTG93ZXJDYXNlKCkpe2lmKHRoaXMubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0IT09MS8wKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJO'@; put 'b3RpY2UiLCJFeGNlbCBmaWxlcyBvbmx5LiBUbyB1bmxvY2sgQ1NWIHVwbG9hZHMsIHBsZWFzZSBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSx0aGlzLmV4Y2VsRmlsZVJlYWR5PSEwLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx2b2lkIHRoaXMudXBsb2FkZXIucXVldWUu'@; put 'cG9wKCk7aWYoIldMQVRJTjEiPT09dGhpcy5lbmNvZGluZyl7bGV0IGllPW5ldyBGaWxlUmVhZGVyO2llLm9ubG9hZD13ZT0+e2xldCBFZT1Mc2UuZGVjb2RlKFJzZS5mcm9tKHdlLnRhcmdldC5yZXN1bHQpLCJDUC0xMjUyIiksWmU9bmV3IEJsb2IoW0VlXSx7dHlwZTpXfSksaXQ9dGhpcy5i'@; put 'bG9iVG9GaWxlKFplLHRoaXMuZmlsZW5hbWUpO3RoaXMudXBsb2FkZXIucXVldWUucG9wKCksdGhpcy51cGxvYWRlci5hZGRUb1F1ZXVlKFtpdF0pLHRoaXMuZXhjZWxGaWxlUmVhZHk9ITB9LHRoaXMuZXhjZWxGaWxlUmVhZHk9ITAsdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLGllLnJlYWRB'@; put 'c0FycmF5QnVmZmVyKGYpLHRoaXMuZ2V0RmlsZSgpfWVsc2UgdGhpcy5leGNlbEZpbGVSZWFkeT0hMCx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdGhpcy5nZXRGaWxlKCl9ZWxzZSB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCdJbnZhbGlkIGZpbGUgdHlwZSAiPGI+'@; put 'Jyt0aGlzLmZpbGVuYW1lKyc8L2I+Ii4gUGxlYXNlIHVwbG9hZCBjc3Ygb3IgZXhjZWwgZmlsZS4nKSx0aGlzLmV4Y2VsRmlsZVJlYWR5PSEwLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx0aGlzLnVwbG9hZGVyLnF1ZXVlLnBvcCgpfXN1Ym1pdEV4Y2VsKCl7dGhpcy5saWNlbmNlU3RhdGUu'@; put 'dmFsdWUuc3VibWl0X3Jvd3NfbGltaXQ9PT0xLzA/dGhpcy5nZXRGaWxlKCk6dGhpcy5zdWJtaXRMaW1pdE5vdGljZT0hMH1nZXRGaWxlKCl7aWYodGhpcy5jaGVja0ludmFsaWQoKSlyZXR1cm4gdm9pZCB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCJJbnZhbGlkIHZh'@; put 'bHVlcyBhcmUgcHJlc2VudC4iKTtpZih0aGlzLnZhbGlkYXRlUHJpbWFyeUtleXMoKSwwIT09dGhpcy5kdXBsaWNhdGVQa0luZGV4ZXMubGVuZ3RoKXJldHVybiB0aGlzLnBrRHVwcz0hMCx2b2lkKHRoaXMuc3VibWl0PSExKTt0aGlzLnBrRHVwcz0hMSx0aGlzLnVwbG9hZExvYWRpbmc9ITA7'@; put 'bGV0IGE9W107Zm9yKGNvbnN0IGQgb2YgdGhpcy51cGxvYWRlci5xdWV1ZSlhLnB1c2goe2ZpbGU6ZCxmaWxlTmFtZTpkLm5hbWV9KTt0aGlzLnNhc1NlcnZpY2UudXBsb2FkRmlsZSh0aGlzLnVwbG9hZFVybCxhLHt0YWJsZTp0aGlzLmxpYmRzfSkudGhlbihkPT57aWYodHlwZW9mIGQuc2Fz'@; put 'anNBYm9ydD4idSIpe2lmKHR5cGVvZiBkLnNhc3BhcmFtcz4idSIpcmV0dXJuO3t0aGlzLnVwbG9hZExvYWRpbmc9ITE7bGV0IGg9ZC5zYXNwYXJhbXNbMF07dGhpcy5zdWNjZXNzRW5hYmxlPSEwLHRoaXMudGFibGVJZD1oLkRTSUQsdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3N0YWdl'@; put 'LyIrdGhpcy50YWJsZUlkKX19ZWxzZXtjb25zdCBoPWQsZj1oLnNhc2pzQWJvcnRbMF0uTVNHLF89aC5zYXNqc0Fib3J0WzBdLk1BQzt0aGlzLnVwbG9hZExvYWRpbmc9ITEsdGhpcy5maWxlbmFtZT0iIix0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0JiYodGhpcy5maWxlVXBs'@; put 'b2FkSW5wdXRDb21wTGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlPSIiKSx0aGlzLnVwbG9hZGVyLnF1ZXVlPVtdLHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKCIiLGYse1NZU1dBUk5JTkdURVhUOmguU1lTV0FSTklOR1RFWFQsU1lTRVJST1JURVhUOmguU1lTRVJST1JU'@; put 'RVhULE1BQzpffSl9fSxkPT57dGhpcy51cGxvYWRMb2FkaW5nPSExLHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QmJih0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0Lm5hdGl2ZUVsZW1lbnQudmFsdWU9IiIpLHRoaXMudXBsb2FkZXIucXVldWU9W10sdGhpcy5l'@; put 'dmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJmaWxlIHVwbG9hZCIsZCl9KX1nZXRQZW5kaW5nRXhjZWxQcmV2aWV3KCl7dGhpcy5xdWVyeVRleHRTYXZlZD10aGlzLnF1ZXJ5VGV4dCx0aGlzLnF1ZXJ5VGV4dD0iIix0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9IlBhcnNpbmciLHRoaXMu'@; put 'dG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITEpO2xldCBhPVtdO3RoaXMuZGF0YS5tYXAoaD0+e2xldCBmPXt9O3RoaXMuaGVhZGVyU2hvdy5tYXAoKF8sVCk9PntmW19dPWhbVF19KSxmLl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fX3x8KGYuX19fX19ERUxFVEVfX1RISVNf'@; put 'X1JFQ09SRF9fX19fPSJObyIpLGEucHVzaChmKX0pLHRoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZD10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZSksdGhpcy5kYXRhU291cmNlPWEsdGhpcy5ob3RUYWJsZS5kYXRhPWE7Y29uc3QgZD10aGlzLmhvdEluc3RhbmNl'@; put 'O3RoaXMuZXhjZWxVcGxvYWRTdGF0ZT0iVmFsaWRhdGluZy1IT1QiLGQudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlLG1heFJvd3M6MS8wfSwhMSksZC5yZW5kZXIoKSx0aGlzLmFwcGVuZFVwbG9hZFN0YXRlKCJWYWxpZGF0aW5nIHJvd3MiKSxkLnZhbGlkYXRlQ2VsbHMo'@; put 'KCk9Pnt0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLnVwbG9hZFByZXZpZXc9ITAsdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHRoaXMuZXhjZWxVcGxvYWRTdGF0ZT1udWxsfSl9ZGlzY2FyZFBlbmRpbmdFeGNlbChhKXt0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKHttYXhS'@; put 'b3dzOnRoaXMubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWR9KSxhJiZ0aGlzLmNhbmNlbEVkaXQoKSx0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0JiYodGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlPSIi'@; put 'KSx0aGlzLnVwbG9hZFByZXZpZXc9ITEsdGhpcy5leGNlbEZpbGVSZWFkeT0hMSx0aGlzLnVwbG9hZGVyLnF1ZXVlPVtdLGlzTmFOKHBhcnNlSW50KHRoaXMucm91dGVyLnVybC5zcGxpdCgiLyIpLnBvcCgpfHwiIikpfHx0aGlzLnF1ZXJ5VGV4dFNhdmVkLmxlbmd0aD4wJiYodGhpcy5xdWVy'@; put 'eVRleHQ9dGhpcy5xdWVyeVRleHRTYXZlZCx0aGlzLnF1ZXJ5VGV4dFNhdmVkPSIiKX1wcmV2aWV3VGFibGVFZGl0Q29uZmlybSgpe3RoaXMuZGlzY2FyZFBlbmRpbmdFeGNlbCgpLHRoaXMuY29udmVydFRvQ29ycmVjdFR5cGVzKHRoaXMuZGF0YVNvdXJjZSksdGhpcy5lZGl0VGFibGUoITAp'@; put 'fWFwcGVuZFVwbG9hZFN0YXRlKGEsZD0hMSl7dGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMudXBsb2FkU3RhdGVyQ29tcExpc3QuZmlyc3QmJihkP3RoaXMudXBsb2FkU3RhdGVyQ29tcExpc3QuZmlyc3QucmVwbGFjZUxhc3RTdGF0ZShhKTp0aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0'@; put 'LmZpcnN0LmFwcGVuZFN0YXRlKGEpKX1maW5kVmFsaWRIZWFkZXJzKGEsZCxoLGYpe2xldCBfPSExLFQ9W10sVz0wO2Zvcig7VzxhLmxlbmd0aDspe2lmKCFfJiYtMSE9PWQuaW5kZXhPZihhW1ddKSl7bGV0IGllLHBlPTAsd2U9MCxFZT0wLFplPVtdLGl0PSExO2ZvcihsZXQgRXQ9VztFdDxh'@; put 'Lmxlbmd0aDtFdCsrKXtpZigiIj09PWFbRXRdfHwtMSE9PVplLmluZGV4T2YoYVtFdF0pJiZ0aGlzLmlzQ29sSGVhZGVyKGFbRXRdKSl7IiI9PT1hW0V0XSYmKGl0PSEwKSxpZT1FdDticmVha31aZS5wdXNoKGFbRXRdKX1sZXQgZXQ9W107dm9pZCAwIT09aWU/KGV0PWEuc2xpY2UoVyxpZSks'@; put 'RWU9Vyx3ZT1pZSxpdD8ocGU9VyxXPWllKToocGU9VyxXPWllLTEpKTooZXQ9YS5zbGljZShXKSxwZT1XLEVlPVcsd2U9YS5sZW5ndGgsVz1hLmxlbmd0aCk7bGV0IHl0PSEwO2lmKGQuZm9yRWFjaChFdD0+ey0xPT09ZXQuaW5kZXhPZihFdCkmJih5dD0hMSl9KSx5dCl7Xz0hMDtsZXQgU3Q9'@; put 'ZC5yZWR1Y2UoZnVuY3Rpb24obm4sdm4pe3JldHVybiBublt2bl09LTEsbm59LHt9KSxKdD1hLnNsaWNlKHBlLHdlKTtyZXR1cm4gZC5mb3JFYWNoKG5uPT57U3Rbbm5dPUp0LmluZGV4T2Yobm4pK3BlfSksWyEwLFN0XX17bGV0IEV0PSROZShldCxkKTtULnB1c2goWyI8Yj5UQUIoIitmKyIp'@; put 'PC9iPiAtICIrRXRbMV0uam9pbigiLCIpKyIgKCBtaXNzaW5nICIrRXRbMF0uam9pbigiLCIpKyIgKSIsRXRbMV0ubGVuZ3RoXSl9fVcrK31yZXR1cm5bITEsVF19aXNDb2xQayhhKXtyZXR1cm4gdGhpcy5oZWFkZXJQa3MuaW5kZXhPZihhKT4tMX1pc1JlYWRvbmx5Q29sKGEpe3JldHVybiB0'@; put 'aGlzLmRjVmFsaWRhdG9yPy5nZXRSdWxlKGEpPy5yZWFkT25seX1pc0NvbEhlYWRlcihhKXtyZXR1cm4gdGhpcy5oZWFkZXJBcnJheS5pbmRleE9mKGEudG9VcHBlckNhc2UoKSk+LTF9cmVtb3ZlUXVlcnkoKXt0aGlzLnNhc1N0b3JlU2VydmljZS5yZW1vdmVDbGF1c2UoKX11cGRhdGVEYXRl'@; put 'VGltZUNvbHMoYSxkKXtpZih0aGlzLmRhdGVIZWFkZXJzLmxlbmd0aD4wKXtsZXQgaD1bXTt0aGlzLmRhdGVIZWFkZXJzLmZvckVhY2goZj0+ey0xIT09YS5pbmRleE9mKGYpJiZoLnB1c2goYS5pbmRleE9mKGYpKX0pLGQuZm9yRWFjaChmPT57aC5mb3JFYWNoKF89Pntjb25zdCBUPWZbX107'@; put 'aWYoJHooVC52KSl7Y29uc3QgVz1XeihOdW1iZXIoVC52KSk7VC52PVcuZ2V0RnVsbFllYXIoKSsiLSIrKCIwIisoVy5nZXRNb250aCgpKzEpKS5zbGljZSgtMikrIi0iKygiMCIrVy5nZXREYXRlKCkpLnNsaWNlKC0yKX1lbHNlIGlmKFQmJlQudiYmLTE9PT1ULnYudG9TdHJpbmcoKS5pbmRl'@; put 'eE9mKCI6Iikpe2NvbnN0IFc9bmV3IERhdGUoVC52KTsiSW52YWxpZCBEYXRlIiE9PVcudG9VVENTdHJpbmcoKSYmKFQudj1ZeihXKSl9ZltfXT1UfSl9KX1pZih0aGlzLnRpbWVIZWFkZXJzLmxlbmd0aD4wKXtsZXQgaD1bXTt0aGlzLnRpbWVIZWFkZXJzLmZvckVhY2goZj0+ey0xIT09YS5p'@; put 'bmRleE9mKGYpJiZoLnB1c2goYS5pbmRleE9mKGYpKX0pLGQuZm9yRWFjaChmPT57aC5mb3JFYWNoKF89Pntjb25zdCBUPWZbX107aWYoJHooVC52KXx8Rm9lKFQudil8fFQudi5pbmNsdWRlcygiRS0iKSl7Y29uc3QgVz1XeihOdW1iZXIoVC52KSk7VC52PVBvZShXKX1mW19dPVR9KX0pfWlm'@; put 'KHRoaXMuZGF0ZVRpbWVIZWFkZXJzLmxlbmd0aD4wKXtsZXQgaD1bXTt0aGlzLmRhdGVUaW1lSGVhZGVycy5mb3JFYWNoKGY9PnstMSE9PWEuaW5kZXhPZihmKSYmaC5wdXNoKGEuaW5kZXhPZihmKSl9KSxkLmZvckVhY2goZj0+e2guZm9yRWFjaChfPT57Y29uc3QgVD1mW19dO2lmKCR6KFQu'@; put 'dil8fEZvZShULnYpKXtsZXQgVz1XeihOdW1iZXIoVC52KSk7VC52PVl6KFcpKyIgIitQb2UoVyl9ZWxzZXtpZigtMT09PVQudi5pbmRleE9mKCIgIikmJi0xIT09VC52LmluZGV4T2YoIjoiKSl7bGV0IGllPVQudi5zdWJzdHJpbmcoMCxULnYuaW5kZXhPZigiOiIpKTtpZT1pZSsiICIrVC52'@; put 'LnN1YnN0cmluZyhULnYuaW5kZXhPZigiOiIpKzEpLFQudj1pZX1sZXQgVz1uZXcgRGF0ZShULnYpOyJJbnZhbGlkIERhdGUiIT09Vy50b1VUQ1N0cmluZygpJiYoVC52PVl6KFcpKyIgIisoYz0+e2xldCBsPSgiMCIrYy5nZXRIb3VycygpKS5zbGljZSgtMikrIjoiO3JldHVybiBsPWwrKCIw'@; put 'IitjLmdldE1pbnV0ZXMoKSkuc2xpY2UoLTIpKyI6IixsKz0oIjAiK2MuZ2V0U2Vjb25kcygpKS5zbGljZSgtMiksbH0pKFcpKX1mW19dPVR9KX0pfXJldHVybiBkfXVwZGF0ZVhMUnVsZUNvbHMoYSxkKXtpZih0aGlzLnhsUnVsZXMubGVuZ3RoPjApe2NvbnN0IGg9W107dGhpcy54bFJ1bGVz'@; put 'LmZvckVhY2goZj0+ey0xIT09YS5pbmRleE9mKGYuWExfQ09MVU1OKSYmKGYuaW5kZXg9YS5pbmRleE9mKGYuWExfQ09MVU1OKSxoLnB1c2goZikpfSksZC5mb3JFYWNoKGY9PntoLmZvckVhY2goXz0+e2NvbnN0IFQ9ZltfLmluZGV4XTsiRk9STVVMQSI9PT1fLlhMX1JVTEUmJiJmImluIFQm'@; put 'JigibiI9PT1ULnQ/VC52PSI9IitULmY6VC53PSI9IitULmYpLGZbX109VH0pfSl9cmV0dXJuIGR9YmxvYlRvRmlsZShhLGQpe2NvbnN0IGg9YTtyZXR1cm4gaC5sYXN0TW9kaWZpZWREYXRlPW5ldyBEYXRlLGgubmFtZT1kLGh9dG9Cc3RyKGEpe2xldCBkPW5ldyBVaW50OEFycmF5KGEpLGg9'@; put 'IiIsZj1kLmJ5dGVMZW5ndGg7Zm9yKGxldCBfPTA7XzxmO18rKyloKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGRbX10pO3JldHVybiBofXNlbmRDbGF1c2UoKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXthLnN1Ym1pdExvYWRpbmc9ITA7bGV0IGQ9W10saD1bXTtpZih0eXBlb2Yg'@; put 'YS5jbGF1c2VzPiJ1IilyZXR1cm4gYS5udWxsVmFyaWFibGVzPSEwLHZvaWQoYS5zdWJtaXRMb2FkaW5nPSExKTt7bGV0IGY9YS5jbGF1c2VzLnF1ZXJ5T2JqO2lmKGZbMF0uZWxlbWVudHMubGVuZ3RoPDEpcmV0dXJuKCJob21lIj09PUduLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1Hbi5yb290'@; put 'UGFyYW0pJiYoR24uZWRpdG9yLmZpbHRlci5jbGF1c2VzPVtdLEduLmVkaXRvci5maWx0ZXIucXVlcnk9W10sR24uZWRpdG9yLmZpbHRlci5ncm91cExvZ2ljPSIiKSx2b2lkIGEucm91dGVyLm5hdmlnYXRlKFsiL2VkaXRvci8iK2EubGliZHNdLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVz'@; put 'ZXJ2ZSJ9KTtmb3IobGV0IF89MDtfPGYubGVuZ3RoO18rKyl7Y29uc3QgVD1mW19dLmVsZW1lbnRzO2Q9VC5maWx0ZXIoZnVuY3Rpb24oVyl7cmV0dXJuIG51bGw9PT1XLnZhcmlhYmxlfSksZC5sZW5ndGgmJmgucHVzaChUKX19aWYoaC5sZW5ndGgpcmV0dXJuIGEubnVsbFZhcmlhYmxlcz0h'@; put 'MCx2b2lkKGEuc3VibWl0TG9hZGluZz0hMSk7dHJ5e2lmKHZvaWQgMCE9PWEuY2xhdXNlcyYmYS5saWJkcyl7Y29uc3QgZj17Z3JvdXBMb2dpYzphLmNsYXVzZXMuZ3JvdXBMb2dpYyxmaWx0ZXJHcm91cHM6W119O2EuY2xhdXNlcy5xdWVyeU9iai5mb3JFYWNoKFQ9Pntjb25zdCBXPXtmaWx0'@; put 'ZXJDbGF1c2VzOltdfTtULmVsZW1lbnRzLmZvckVhY2goaWU9PntXLmZpbHRlckNsYXVzZXMucHVzaChhLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGllKSl9KSxXLmNsYXVzZUxvZ2ljPVQuY2xhdXNlTG9naWMsZi5maWx0ZXJHcm91cHMucHVzaChhLmhlbHBlclNlcnZpY2UuZGVlcENsb25l'@; put 'KFcpKX0pO2NvbnN0IF89YS5zYXNTdG9yZVNlcnZpY2UuY3JlYXRlRmlsdGVyUXVlcnlUYWJsZShmKTt5aWVsZCBhLnNhc1N0b3JlU2VydmljZS5zYXZlUXVlcnkoYS5saWJkcyxfKS50aGVuKFQ9PnthLnF1ZXJ5RmlsdGVyPXtpZDpULnJlc3VsdFswXS5GSUxURVJfUkssdGFibGU6VC5yZXN1'@; put 'bHRbMF0uRklMVEVSX1RBQkxFfSxhLnJvdXRlci5uYXZpZ2F0ZShbIi8iXSx7c2tpcExvY2F0aW9uQ2hhbmdlOiEwLHF1ZXJ5UGFyYW1zSGFuZGxpbmc6InByZXNlcnZlIn0pLnRoZW4oKCk9PmEucm91dGVyLm5hdmlnYXRlKFsiL2VkaXRvci8iK2EucXVlcnlGaWx0ZXIudGFibGUrIi8iK2Eu'@; put 'cXVlcnlGaWx0ZXIuaWRdLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KSksYS5maWx0ZXI9ITF9KS5jYXRjaChUPT57YS5zdWJtaXRMb2FkaW5nPSExfSl9fWNhdGNoKGYpe2EucXVlcnlFcnI9ITAsYS5zdWJtaXRMb2FkaW5nPSExLGEucXVlcnlFcnJNZXNzYWdlPWZ9fSkoKX1v'@; put 'cGVuUWIoKXt0aGlzLmxpYmRzJiYodGhpcy5maWx0ZXI9ITAsdGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc3VibWl0TG9hZGluZz0hMSx0aGlzLnNhc1N0b3JlU2VydmljZS5zZXRRdWVyeVZhcmlhYmxlcyh0aGlzLmxpYmRzLHRoaXMuY29scykpfWVkaXRUYWJsZShhLGQpe3RoaXMu'@; put 'dG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITApO2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZTtsZXQgZj1oLmdldFBsdWdpbigibXVsdGlDb2x1bW5Tb3J0aW5nIiksXz1mLmdldFNvcnRDb25maWcoKSxUPUFycmF5LmlzQXJyYXkoXyk/XzpbX107c2V0VGltZW91dCgoKT0+e2F8fCh0'@; put 'aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpLGQmJnRoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZC5wb3AoKSksdGhpcy5ob3RUYWJsZS5yZWFkT25seT0hMSx0aGlzLmhvdFRhYmxlLmRhdGE9dGhpcy5kYXRhU291cmNl'@; put 'LGgudXBkYXRlU2V0dGluZ3Moe3JlYWRPbmx5OnRoaXMuaG90VGFibGUucmVhZE9ubHl9LCExKSxoLnJlbmRlcigpO2ZvcihsZXQgVyBvZiBUKWYuc29ydChXKTt0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKX0sMCl9Y29udmVydFRvQ29ycmVjdFR5cGVzKGEpe2ZvcihsZXQgZCBv'@; put 'ZiBhKWZvcihsZXQgaCBpbiBkKXtsZXQgZj10aGlzLmNvbHMuZmluZChfPT5fLk5BTUU9PT1oKTtmJiYiIiE9PWRbaF0mJiJudW0iPT09Zi5UWVBFJiYhZi5ERFRZUEUuaW5jbHVkZXMoIlRJTUUiKSYmIWYuRERUWVBFLmluY2x1ZGVzKCJEQVRFIikmJihkW2hdPXBhcnNlSW50KGRbaF0pKX19'@; put 'Y2FuY2VsRWRpdCgpe3RoaXMudG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITEpLHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2U9W107Y29uc3QgYT10aGlzLmhvdEluc3RhbmNlO2xldCBkPWEuZ2V0UGx1Z2luKCJtdWx0aUNvbHVtblNvcnRpbmciKSxoPWQuZ2V0U29ydENvbmZpZygp'@; put 'LGY9QXJyYXkuaXNBcnJheShoKT9oOltoXTt0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQmJih0aGlzLmRhdGFTb3VyY2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQpKSx0aGlzLmhvdFRhYmxlLmRhdGE9dGhpcy5kYXRhU291cmNlLHRoaXMu'@; put 'aG90VGFibGUucmVhZE9ubHk9ITAsYS51cGRhdGVTZXR0aW5ncyh7cmVhZE9ubHk6dGhpcy5ob3RUYWJsZS5yZWFkT25seSxkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLGEudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzKTtmb3IobGV0IF8gb2YgZilkLnNvcnQoXyk7dGhp'@; put 'cy5jaGVja1Jvd0xpbWl0KCl9aG90Q2xpY2tlZCgpezE9PT10aGlzLnRpbWVzQ2xpY2tlZCYmdGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5lZGl0VGFibGUoKSwwPT09dGhpcy50aW1lc0NsaWNrZWQmJih0aGlzLnRpbWVzQ2xpY2tlZCsrLHNldFRpbWVvdXQoKCk9Pnt0aGlzLnRpbWVz'@; put 'Q2xpY2tlZD0wfSwyMDApKX1jbGVhbkV4Y2VlZCgpe3RoaXMuZXhjZWVkQ2VsbHM9W119YXBwcm92ZXJzVG9nZ2xlKCl7dGhpcy5zaG93QXBwcm92ZXJzPSF0aGlzLnNob3dBcHByb3ZlcnN9YWRkUm93KCl7dGhpcy5hZGRpbmdOZXdSb3c9ITAsc2V0VGltZW91dCgoKT0+e2NvbnN0IGE9dGhp'@; put 'cy5ob3RJbnN0YW5jZTtsZXQgZD10aGlzLmRhdGFTb3VyY2UubGVuZ3RoO2EuYWx0ZXIoImluc2VydF9yb3dfYmVsb3ciLGQsMSksYS51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2V9LCExKSxhLnNlbGVjdENlbGwodGhpcy5kYXRhU291cmNlLmxlbmd0aC0xLDApLGEucmVu'@; put 'ZGVyKCksdGhpcy5kYXRhU291cmNlW2RdJiYodGhpcy5kYXRhU291cmNlW2RdLm5vTGlua09wdGlvbj0hMCksdGhpcy5hZGRpbmdOZXdSb3c9ITEsdGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCl9KX1jYW5jZWxTdWJtaXQoKXt0aGlzLmRhdGFTb3VyY2U9dGhpcy5oZWxwZXJTZXJ2'@; put 'aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VCZWZvcmVTdWJtaXQpLHRoaXMuZGF0YVNvdXJjZUJlZm9yZVN1Ym1pdD1bXSx0aGlzLmhvdFRhYmxlLmRhdGE9dGhpcy5kYXRhU291cmNlO2NvbnN0IGE9dGhpcy5ob3RJbnN0YW5jZTthLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0'@; put 'YVNvdXJjZSxjb2xIZWFkZXJzOnRoaXMuaGVhZGVyQ29sdW1ucyxjb2x1bW5zOnRoaXMuY2VsbFZhbGlkYXRpb24sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oZCxoKXtyZXR1cm4gMD09PWg/NjA6ZD41MDA/NTAwOmR9fSwhMSksYS5zZWxlY3RDZWxsKDAsMCksYS5yZW5kZXIoKSxhLnZhbGlk'@; put 'YXRlUm93cyh0aGlzLm1vZGlmZWRSb3dzSW5kZXhlcyksdGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCl9Z2V0Um93c1N1Ym1pdHRpbmdDb3VudCgpe3RoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLmRlYnVnJiYodGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLmRhdGFT'@; put 'b3VyY2UpLHRoaXMubG9nZ2VyU2VydmljZS5sb2codGhpcy5kYXRhU291cmNlVW5jaGFuZ2VkKSk7bGV0IGE9MCxkPTAsaD0wO3RoaXMubW9kaWZlZFJvd3NJbmRleGVzPVtdLHRoaXMuZGF0YU1vZGlmaWVkPVtdO2ZvcihsZXQgZj0wO2Y8dGhpcy5kYXRhU291cmNlLmxlbmd0aDtmKyspe2xl'@; put 'dCBfPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlW2ZdKTtpZigiWWVzIj09PV8uX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fKXRoaXMuZGF0YU1vZGlmaWVkLnB1c2goXyksZCsrO2Vsc2V7bGV0IFQ9dGhpcy5kYXRhU291cmNlVW5jaGFuZ2VkLmZp'@; put 'bmQoVz0+e2ZvcihsZXQgaWUgb2YgdGhpcy5oZWFkZXJQa3MpaWYoV1tpZV0hPT1fW2llXSlyZXR1cm4hMTtyZXR1cm4hMH0pO1Q/SlNPTi5zdHJpbmdpZnkoXykhPT1KU09OLnN0cmluZ2lmeShUKSYmKHRoaXMuZGF0YU1vZGlmaWVkLnB1c2goXyksdGhpcy5tb2RpZmVkUm93c0luZGV4ZXMu'@; put 'cHVzaChmKSxhKyspOih0aGlzLmRhdGFNb2RpZmllZC5wdXNoKF8pLHRoaXMubW9kaWZlZFJvd3NJbmRleGVzLnB1c2goZiksaCsrKX19dGhpcy5yb3dzQ2hhbmdlZD17cm93c1VwZGF0ZWQ6YSxyb3dzRGVsZXRlZDpkLHJvd3NBZGRlZDpofX12YWxpZGF0ZVByaW1hcnlLZXlzKCl7Y29uc3Qg'@; put 'YT10aGlzLmhvdEluc3RhbmNlO2xldCBkPWEuZ2V0RGF0YSgpO3RoaXMucGtGaWVsZHM9W107Zm9yKGxldCBUPTA7VDxkLmxlbmd0aDtUKyspe2xldCBXPSIiO2ZvcihsZXQgaWU9MTtpZTx0aGlzLnJlYWRPbmx5RmllbGRzKzE7aWUrKylXPVcrInwiK2RbVF1baWVdO3RoaXMucGtGaWVsZHMu'@; put 'cHVzaChXKX1sZXQgXyxoPVtdLGY9dGhpcy5kYXRhU291cmNlLmxlbmd0aDtmb3IobGV0IFQ9MDtUPHRoaXMucGtGaWVsZHMubGVuZ3RoO1QrKylmb3IobGV0IFc9MDtXPHRoaXMucGtGaWVsZHMubGVuZ3RoO1crKyl0aGlzLnBrRmllbGRzW1RdPT09dGhpcy5wa0ZpZWxkc1tXXSYmVyE9PVQm'@; put 'JmgucHVzaChXKTtpZih0aGlzLnBrRmllbGRzLmxlbmd0aD5mKWZvcihsZXQgVD1mO1Q8dGhpcy5wa0ZpZWxkcy5sZW5ndGg7VCsrKWZvcihsZXQgVz1mO1c8dGhpcy5wa0ZpZWxkcy5sZW5ndGg7VysrKVQ8VyYmdGhpcy5wa0ZpZWxkc1tUXT09PXRoaXMucGtGaWVsZHNbV10mJmgucHVzaChX'@; put 'KTtmb3IobGV0IFQ9MDtUPGgubGVuZ3RoO1QrKylmb3IobGV0IFc9MTtXPHRoaXMucmVhZE9ubHlGaWVsZHMrMTtXKyspXz1hLmdldENlbGxNZXRhKGhbVF0sVyksXy52YWxpZD0hMSxfLmR1cEtleT0hMCxhLnJlbmRlcigpO3RoaXMuZHVwbGljYXRlUGtJbmRleGVzPVsuLi5uZXcgU2V0KGgu'@; put 'c29ydCgpKV19cmVTZXRDZWxsVmFsaWRhdGlvblZhbHVlcyhhPSExLGQpe2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZTtmb3IobGV0IGYgb2YgdGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZSl7Y29uc3QgXz1mLnZhbHVlcy5tYXAoVD0+VFt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLlJBV19W'@; put 'QUxVRV0pO2guYmF0Y2goKCk9Pntjb25zdCBUPWguZ2V0Q2VsbE1ldGEoZi5yb3csZi5jb2wpLFc9dGhpcy5kY1ZhbGlkYXRvcj8uZ2V0UnVsZShULmRhdGF8fCIiKTtsZXQgaWU7VyYmKGllPXRoaXMuZGNWYWxpZGF0b3I/LmdldERxRHJvcGRvd25Tb3VyY2UoVykpLGllfHwoaWU9W10pO2Nv'@; put 'bnN0IHBlPVsuLi5uZXcgU2V0KFsuLi5pZSwuLi5fXSldO3RoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I/LnVwZGF0ZVJ1bGUoZi5jb2wse3NvdXJjZTpwZX0pLGguc2V0Q2VsbE1ldGEoZi5yb3csZi5jb2wsInNvdXJjZSIscGUpLGYudmFsdWVzLmxlbmd0aD4wJiYoaC5zZXRDZWxs'@; put 'TWV0YShmLnJvdyxmLmNvbCwicmVuZGVyZXIiLCJhdXRvY29tcGxldGUiKSxoLnNldENlbGxNZXRhKGYucm93LGYuY29sLCJlZGl0b3IiLCJhdXRvY29tcGxldGUiKSxoLnNldENlbGxNZXRhKGYucm93LGYuY29sLCJzdHJpY3QiLGYuc3RyaWN0KSxoLnNldENlbGxNZXRhKGYucm93LGYuY29s'@; put 'LCJmaWx0ZXIiLCExKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPy51cGRhdGVSdWxlKGYuY29sLHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZSIsc3RyaWN0OmYuc3RyaWN0LGZpbHRlcjohMX0pKSx0aGlzLnJlU2V0RXh0ZW5kZWRDZWxsVmFs'@; put 'aWRhdGlvblZhbHVlcyhmLHZvaWQgMCxhLGQpLGgucmVuZGVyKCl9KX19cmVTZXRFeHRlbmRlZENlbGxWYWxpZGF0aW9uVmFsdWVzKGEsZCxoPSExLGYpe2lmKGEpe2R8fChkPWEucm93KTtjb25zdCBUPXRoaXMuZ2V0RXh0ZW5kZWRWYWx1ZXNCeUNlbGxWYWx1ZShhKTt0aGlzLnNldEV4dGVu'@; put 'ZGVkVmFsdWVzVG9DZWxscyhhLGQsVCxoLGYpfWVsc2UgZm9yKGxldCBUIG9mIHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Upe2NvbnN0IFc9dGhpcy5nZXRFeHRlbmRlZFZhbHVlc0J5Q2VsbFZhbHVlKFQpO3RoaXMuc2V0RXh0ZW5kZWRWYWx1ZXNUb0NlbGxzKFQsVC5yb3csVyxoLGYpfX1z'@; put 'ZXRFeHRlbmRlZFZhbHVlc1RvQ2VsbHMoYSxkLGgsZj0hMSxfKXtjb25zdCBUPXRoaXMuaG90SW5zdGFuY2U7bGV0IFc9W107Zm9yKGxldCBpZSBvZiBoKVcuaW5kZXhPZihpZS5FWFRSQV9DT0xfTkFNRSk8MCYmVy5wdXNoKGllLkVYVFJBX0NPTF9OQU1FKTtmb3IobGV0IGllIG9mIFcpe2Nv'@; put 'bnN0IHBlPWguZmlsdGVyKFN0PT5TdC5FWFRSQV9DT0xfTkFNRT09PWllKTtsZXQgd2U9cGUubWFwKFN0PT4iQyI9PT1TdC5ESVNQTEFZX1RZUEU/U3QuUkFXX1ZBTFVFX0NIQVI6U3QuUkFXX1ZBTFVFX05VTSk7Y29uc3QgRWU9VC5wcm9wVG9Db2woaWUpO3RoaXMuZGlzYWJsZWRCYXNpY0R5'@; put 'bmFtaWNDZWxsVmFsaWRhdGlvbk1hcC5maW5kKFN0PT5TdC5yb3c9PT1kJiZTdC5jb2w9PT1FZSl8fHRoaXMuZGlzYWJsZWRCYXNpY0R5bmFtaWNDZWxsVmFsaWRhdGlvbk1hcC5wdXNoKHtyb3c6ZCxjb2w6RWUsYWN0aXZlOiExfSksVC5zZXRDZWxsTWV0YShkLEVlLCJyZW5kZXJlciIsImF1'@; put 'dG9jb21wbGV0ZSIpLFQuc2V0Q2VsbE1ldGEoZCxFZSwiZWRpdG9yIiwiYXV0b2NvbXBsZXRlIiksVC5zZXRDZWxsTWV0YShkLEVlLCJzdHJpY3QiLGEuc3RyaWN0KSxULnNldENlbGxNZXRhKGQsRWUsImZpbHRlciIsITEpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I/LnVwZGF0'@; put 'ZVJ1bGUoRWUse3JlbmRlcmVyOiJhdXRvY29tcGxldGUiLGVkaXRvcjoiYXV0b2NvbXBsZXRlIixzdHJpY3Q6YS5zdHJpY3QsZmlsdGVyOiExfSk7Y29uc3QgaXQ9VC5nZXRDZWxsTWV0YShkLEVlKSxldD10aGlzLmRjVmFsaWRhdG9yPy5nZXRSdWxlKGl0LmRhdGF8fCIiKTtsZXQgeXQ7ZXQm'@; put 'Jih5dD10aGlzLmRjVmFsaWRhdG9yPy5nZXREcURyb3Bkb3duU291cmNlKGV0KSkseXR8fCh5dD1bXSksIm51bWVyaWMiPT09ZXQ/LnR5cGU/KHl0PXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoeXQsIm51bWJlciIpLHdlPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0'@; put 'QXJyYXlWYWx1ZXMod2UsIm51bWJlciIpKTooeXQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh5dCwic3RyaW5nIiksd2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh3ZSwic3RyaW5nIikpO2NvbnN0IEV0PVsuLi5uZXcgU2V0KFsuLi55dCwu'@; put 'Li53ZV0pXTtpZihULnNldENlbGxNZXRhKGQsRWUsInNvdXJjZSIsRXQpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I/LnVwZGF0ZVJ1bGUoRWUse3NvdXJjZTpFdH0pLGYpe2lmKF8mJl8hPT1kKXJldHVybjtjb25zdCBTdD1wZS5maW5kKEp0PT4xPT09SnQuRk9SQ0VfRkxBRyk7'@; put 'U3QmJnNldFRpbWVvdXQoKCk9PntULnNldERhdGFBdENlbGwoZCxFZSwiQyI9PT1TdC5ESVNQTEFZX1RZUEU/U3QuUkFXX1ZBTFVFX0NIQVI6U3QuUkFXX1ZBTFVFX05VTSwiZm9yY2VfY2VsbF92YWxpZGF0aW9uX3ZhbHVlIiksdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PT09ZCYmKHRo'@; put 'aXMuZGF0YVNvdXJjZVt0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXhdW2llXT0iQyI9PT1TdC5ESVNQTEFZX1RZUEU/U3QuUkFXX1ZBTFVFX0NIQVI6U3QuUkFXX1ZBTFVFX05VTSl9KX19fWdldEV4dGVuZGVkVmFsdWVzQnlDZWxsVmFsdWUoYSxkKXtjb25zdCBmPXRoaXMuaG90SW5zdGFu'@; put 'Y2UuZ2V0RGF0YUF0Q2VsbChkfHxhLnJvdyxhLmNvbCksXz0oYS52YWx1ZXMuZmluZChwZT0+cGVbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdPT09Zil8fFtdKVt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLkRJU1BMQVlfSU5ERVhdLFQ9YS5leHRlbmRlZF92YWx1ZXM/'@; put 'LmZpbHRlcihwZT0+cGVbMF09PT1fKSxXPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5leHRlbmRlZENlbGxWYWxpZGF0aW9uRmllbGRzKSxpZT1bXTtmb3IobGV0IHBlIG9mIFR8fFtdKXtsZXQgd2U9e307Zm9yKGxldCBFZSBvZiBPYmplY3Qua2V5cyhXKSl3ZVtFZV09cGVb'@; put 'V1tFZV1dO2llLnB1c2god2UpfXJldHVybiBpZX1jaGVja1NhdmUoKXtpZih0aGlzLmdldFJvd3NTdWJtaXR0aW5nQ291bnQoKSwwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dzQWRkZWQmJjA9PT10aGlzLnJvd3NDaGFuZ2VkLnJvd3NVcGRhdGVkJiYwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dz'@; put 'RGVsZXRlZClyZXR1cm4gdGhpcy5iYWRFZGl0VGl0bGU9Ik5vIGNoYW5nZXMgdG8gc3VibWl0Iix0aGlzLmJhZEVkaXRDYXVzZT0iUGxlYXNlIG1vZGlmeSBzb21lIHZhbHVlcyBhbmQgdHJ5IGFnYWluLiIsdm9pZCh0aGlzLmJhZEVkaXQ9ITApO2NvbnN0IGE9dGhpcy5ob3RJbnN0YW5jZTt0'@; put 'aGlzLmRhdGFTb3VyY2VCZWZvcmVTdWJtaXQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpO2ZvcihsZXQgaD0wO2g8dGhpcy5kYXRhU291cmNlLmxlbmd0aDtoKyspZGVsZXRlIHRoaXMuZGF0YVNvdXJjZVtoXS5ub0xpbmtPcHRpb247YS51cGRhdGVTZXR0'@; put 'aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2UsY29sSGVhZGVyczp0aGlzLmhlYWRlckNvbHVtbnMsY29sdW1uczp0aGlzLmNlbGxWYWxpZGF0aW9uLG1vZGlmeUNvbFdpZHRoOmZ1bmN0aW9uKGgsZil7cmV0dXJuIGg+NTAwPzUwMDpofX0sITEpLHRoaXMucmVTZXRDZWxsVmFsaWRhdGlvblZh'@; put 'bHVlcygpLGMuY250PTAsYy5ub25Qa0NudD0wO2xldCBkPWEuZ2V0RGF0YSgpO2lmKGQubGVuZ3RoPjEmJmEuaXNFbXB0eVJvdyhkLmxlbmd0aC0xKSYmYS5hbHRlcigicmVtb3ZlX3JvdyIsZC5sZW5ndGgtMSksdGhpcy52YWxpZGF0ZVByaW1hcnlLZXlzKCksMCE9PXRoaXMuZHVwbGljYXRl'@; put 'UGtJbmRleGVzLmxlbmd0aClyZXR1cm4gdGhpcy5wa0R1cHM9ITAsdGhpcy5zdWJtaXQ9ITEsdm9pZCB0aGlzLmNhbmNlbFN1Ym1pdCgpO3RoaXMucGtEdXBzPSExLGEudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzLCgpPT57dGhpcy5jaGVja0ludmFsaWQoKT90aGlzLmV2'@; put 'ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJWYWxpZGF0aW9uIGVycm9yIiwiSW52YWxpZCBWYWx1ZXMgYXJlIFByZXNlbnQiKToodGhpcy5zdWJtaXQ9ITAsdGhpcy52YWxpZGF0aW9uRG9uZT0xLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybUZpZWxkc184'@; put 'IikuZm9jdXMoKX0pKX0pfXNhdmVUYWJsZShhKXt2YXIgZD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtpZihkLmhvdEluc3RhbmNlLmdldERhdGEoKSxhPShhPWEuZmlsdGVyKF89PiEhZC5kYXRhTW9kaWZpZWQuZmluZChXPT57Zm9yKGxldCBpZSBvZiBkLmhlYWRlclBrcylpZihXW2ll'@; put 'XSE9PV9baWVdKXJldHVybiExO3JldHVybiEwfSkpKS5tYXAoXz0+e2xldCBUPV8uX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fO3JldHVybiBkZWxldGUgXy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18sXy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX189VCxPYmpl'@; put 'Y3Qua2V5cyhfKS5tYXAoVz0+eyJudW1lcmljIj09PWQuZGNWYWxpZGF0b3I/LmdldFJ1bGUoVyk/LnR5cGUmJiIuIj09PV9bV10mJihfW1ddPW51bGwpfSksX30pLGQubG9nZ2VyU2VydmljZS5sb2coIkRhdGEgc3VibWl0dGVkIixhKSxkLmNoZWNrSW52YWxpZCgpKXJldHVybiBkLmV2ZW50'@; put 'U2VydmljZS5zaG93SW5mb01vZGFsKCJWYWxpZGF0aW9uIGVycm9yIiwiSW52YWxpZCBWYWx1ZXMgYXJlIFByZXNlbnQiKSxkLmNhbmNlbFN1Ym1pdCgpLHZvaWQoZC5zdWJtaXQ9ITEpO2lmKGQudmFsaWRhdGlvbkRvbmU9MCxkLnNhdmVMb2FkaW5nPSEwLGMuY250PDEmJjA9PT1kLmR1cGxp'@; put 'Y2F0ZVBrSW5kZXhlcy5sZW5ndGgmJmMubm9uUGtDbnQ8MSl7ZC5zYXZlTG9hZGluZz0hMCxkLmRpc2FibGVTdWJtaXQ9ITEsZC5zdWJtaXQ9ITA7bGV0IF89e0FDVElPTjoiTE9BRCJ9O2lmKGQubWVzc2FnZT1kLm1lc3NhZ2UucmVwbGFjZSgvXG4vZywiLiAiKSxfLk1FU1NBR0U9ZC5tZXNz'@; put 'YWdlLF8uTElCRFM9ZC5saWJkcyxkLmNvbHMpe2NvbnN0IFQ9YS5zbGljZSgwLGQubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0KTtpZih5aWVsZCBkLnNhc1N0b3JlU2VydmljZS51cGRhdGVUYWJsZShfLFQsIlNBU0NvbnRyb2xUYWJsZSIsImVkaXRvcnMvc3RhZ2VkYXRh'@; put 'IixkLiRkYXRhRm9ybWF0cykudGhlbihpZT0+e2lmKHR5cGVvZiBpZS5zYXNwYXJhbXM8InUiKXJldHVybiBkLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIitpZS5zYXNwYXJhbXNbMF0uRFNJRCksITA7bGV0IHBlPSJTdWJtaXQgcmVxdWVzdCBmYWlsZWQiO2llJiYocGUrPWBcbiR7'@; put 'InN0cmluZyI9PXR5cGVvZiBpZT9pZTpKU09OLnN0cmluZ2lmeShpZSl9YCksZC5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoImVkaXRvcnMvc3RhZ2VkYXRhIixwZSxudWxsLCJTdWJtaXQgZXJyb3IiKX0pLmNhdGNoKGllPT57Y29uc29sZS5sb2coImVyciIsaWUpLGMuY250PTAsYy5u'@; put 'b25Qa0NudD0wLGQuZGlzYWJsZVN1Ym1pdD0hMCxkLnN1Ym1pdD0hMTtsZXQgcGU9InN0cmluZyI9PXR5cGVvZiBpZT9pZTpKU09OLnN0cmluZ2lmeShpZSk7cmV0dXJuIGQuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKCJlZGl0b3JzL3N0YWdlZGF0YSIsYFN1Ym1pdCByZXF1ZXN0IGZh'@; put 'aWxlZFxuJHtwZX1gLG51bGwsIlN1Ym1pdCBlcnJvciIpLCExfSkpcmV0dXJufX1jLmNudD49MT8oZC5wa051bGw9ITAsZC5zdWJtaXQ9ITApOmQuc3VibWl0PSExLGMubm9uUGtDbnQ+PTE/KGQubm9Qa051bGw9ITAsZC5zdWJtaXQ9ITApOmQuc3VibWl0PSExLGQuY2FuY2VsU3VibWl0KCks'@; put 'Yy5jbnQ9MCxjLm5vblBrQ250PTAsZC5kaXNhYmxlU3VibWl0PSEwfSkoKX12YWxpZGF0b3JSdWxlU291cmNlKGEpe3JldHVybiB0aGlzLmRjVmFsaWRhdG9yPy5nZXRSdWxlKGEpfWNoZWNrSW52YWxpZCgpe3JldHVybiB0aGlzLmhvdEluc3RhbmNlQ29tcExpc3QuZmlyc3QuY29udGFpbmVy'@; put 'Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmh0SW52YWxpZCIpLmxlbmd0aD4wfWdvVG9FZGl0b3IoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvIil9Y2xvc2VSZWNvcmRFZGl0KGEpe3RoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSx0aGlzLmN1cnJlbnRFZGl0'@; put 'UmVjb3JkPXZvaWQgMCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPXZvaWQgMCwiQUREIj09PXRoaXMucmVjb3JkQWN0aW9uJiYhYSYmKHRoaXMuZGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMucHJldkRhdGFTb3VyY2UpLHRoaXMuaG90SW5zdGFu'@; put 'Y2UudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlfSwhMSkpfWNvbmZpcm1SZWNvcmRFZGl0KGE9ITApe2NvbnN0IGQ9dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4O2EmJih0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9LTEpLHRoaXMuY29sdW1uSGVhZGVyLm1hcChm'@; put 'PT57Y29uc3QgXz10aGlzLmN1cnJlbnRFZGl0UmVjb3JkW2ZdLFQ9Im51bSI9PT10aGlzLiRkYXRhRm9ybWF0cz8udmFyc1tmXT8udHlwZSxXPSgwLHQzLmlzU3BlY2lhbE1pc3NpbmcpKF8pO1QmJiFpc05hTihfKSYmIVcmJih0aGlzLmN1cnJlbnRFZGl0UmVjb3JkW2ZdPTEqXyl9KSx0aGlz'@; put 'LmRhdGFTb3VyY2VbZF09dGhpcy5jdXJyZW50RWRpdFJlY29yZCx0aGlzLmhvdFRhYmxlLmRhdGFbZF09dGhpcy5jdXJyZW50RWRpdFJlY29yZCx0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLGEmJih0aGlzLmN1cnJlbnRFZGl0UmVj'@; put 'b3JkPXZvaWQgMCl9b25OZXh0UmVjb3JkKCl7dGhpcy5jb25maXJtUmVjb3JkRWRpdCghMSksdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PXRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD49dGhpcy5kYXRhU291cmNlLmxlbmd0aC0xPzA6dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4'@; put 'KzEsdGhpcy5lZGl0UmVjb3JkKG51bGwsdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4KX1vblByZXZpb3VzUmVjb3JkKCl7dGhpcy5jb25maXJtUmVjb3JkRWRpdCghMSksdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PXRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleDw9MD90aGlzLmRh'@; put 'dGFTb3VyY2UubGVuZ3RoLTE6dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4LTEsdGhpcy5lZGl0UmVjb3JkKG51bGwsdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4KX1hZGRSZWNvcmRCdXR0b25DbGljaygpe3RoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUmVjb3JkP3RoaXMuZXZl'@; put 'bnRTZXJ2aWNlLnNob3dEZW1vTGltaXRNb2RhbCgiQWRkIFJlY29yZCIpOnRoaXMuYWRkRWRpdE5ld1JlY29yZCgpfWFkZEVkaXROZXdSZWNvcmQoKXt0aGlzLmFkZFJlY29yZCgpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEs'@; put 'ITApfSwxZTMpfWFkZFJlY29yZCgpe3RoaXMuYWRkUm93KCl9ZWRpdFJlY29yZChhLGQsaCl7aWYodGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RFZGl0UmVjb3JkKXRoaXMuZXZlbnRTZXJ2aWNlLnNob3dEZW1vTGltaXRNb2RhbCgiRWRpdCBSZWNvcmQiKTtlbHNlIGlmKCEodm9pZCAwPT09'@; put 'ZHx8ZDwwfHx0aGlzLnJlc3RyaWN0aW9ucy5yZXN0cmljdEVkaXRSZWNvcmQpKXtpZih0aGlzLnJlY29yZEFjdGlvbj1oPyJBREQiOiJFRElUIix0aGlzLmhvdFRhYmxlLnJlYWRPbmx5JiZ0aGlzLmVkaXRUYWJsZSghMSxoKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPXRoaXMu'@; put 'aGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kY1ZhbGlkYXRvciksaCl0aGlzLnByZXZEYXRhU291cmNlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlKSx0aGlzLnByZXZEYXRhU291cmNlLnBvcCgpO2Vsc2V7Y29uc3QgZj10aGlzLmhlbHBlclNlcnZp'@; put 'Y2UuZGVlcENsb25lKHRoaXMuaG90SW5zdGFuY2UuZ2V0Q2VsbE1ldGFBdFJvdyhkKSk7Zm9yKGxldCBfIG9mIGYpaWYoXyl7Y29uc3QgVD1fLnByb3A/LnRvU3RyaW5nKCk7ZGVsZXRlIF8ucHJvcCxkZWxldGUgXy5kYXRhLHRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I/LnVwZGF0'@; put 'ZVJ1bGUoXy5jb2wsey4uLl8sZGF0YTpUfSl9fXRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD1kLHRoaXMuY3VycmVudEVkaXRSZWNvcmQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VbZF0pfX10b2dnbGVIb3RQbHVnaW4oYSxkKXtjb25zdCBoPXRoaXMu'@; put 'aG90SW5zdGFuY2U7aC5iYXRjaCgoKT0+e2xldCBmPWguZ2V0UGx1Z2luKGEpO2Y/KHNldFRpbWVvdXQoKCk9PntkP2YuZW5hYmxlUGx1Z2luKCk6Zi5kaXNhYmxlUGx1Z2luKCl9LDEwMCksaC5yZW5kZXIoKSk6Y29uc29sZS53YXJuKCJUb2dnbGUgSG90IFBsdWdpbiBmYWlsZWQgLSBQbHVn'@; put 'aW4gbmFtZWQ6ICIrYSsiIC0gY291bGQgbm90IGJlIGZvdW5kLiIpfSl9ZHluYW1pY0NlbGxWYWxpZGF0aW9uRGlzYWJsZWQoYSxkKXtyZXR1cm4hIXRoaXMuZGlzYWJsZWRCYXNpY0R5bmFtaWNDZWxsVmFsaWRhdGlvbk1hcC5maW5kKGY9PmYucm93PT09YSYmZi5jb2w9PT1kJiYhZi5hY3Rp'@; put 'dmUpfWR5bmFtaWNDZWxsVmFsaWRhdGlvbihhLGQpe2lmKHRoaXMuZHluYW1pY0NlbGxWYWxpZGF0aW9uRGlzYWJsZWQoYSxkKSlyZXR1cm47Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2lmKGguZ2V0Q2VsbE1ldGEoYSxkKS5yZWFkT25seSlyZXR1cm47Y29uc3QgXz1oLmdldERhdGFBdENl'@; put 'bGwoYSxkKSxUPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlW2FdKSxXPU9iamVjdC5rZXlzKFQpW2RdLGllPXRoaXMuaGVscGVyU2VydmljZS5kZWxldGVLZXlzQW5kSGFzaChULFtXLCJub0xpbmtPcHRpb24iXSwhMSkscGU9dGhpcy5jZWxsVmFsaWRhdGlv'@; put 'blNvdXJjZS5maW5kSW5kZXgod2U9PndlLmhhc2g9PT1pZSk7aWYocGU+LTEpe2xldCB3ZT10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW3BlXS52YWx1ZXMubWFwKGl0PT5pdFt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLlJBV19WQUxVRV0pO2NvbnN0IEVlPShoLmdldENlbGxNZXRhKGEs'@; put 'ZCkuc291cmNlfHxbXSkubGVuZ3RoPDEsWmU9IiAiIT09XztoLmJhdGNoKCgpPT57Y29uc3QgaXQ9aC5nZXRDZWxsTWV0YShhLGQpLGV0PXRoaXMuZGNWYWxpZGF0b3I/LmdldFJ1bGUoaXQuZGF0YXx8IiIpO2xldCB5dDtldCYmKHl0PXRoaXMuZGNWYWxpZGF0b3I/LmdldERxRHJvcGRvd25T'@; put 'b3VyY2UoZXQpKSx5dHx8KHl0PVtdKSwibnVtZXJpYyI9PT1ldD8udHlwZT8oeXQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh5dCwibnVtYmVyIiksd2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh3ZSwibnVtYmVyIikpOih5dD10aGlzLmhl'@; put 'bHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKHl0LCJzdHJpbmciKSx3ZT10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKHdlLCJzdHJpbmciKSk7Y29uc3QgRXQ9Wy4uLm5ldyBTZXQoWy4uLnl0LC4uLndlXSldO2lmKGguc2V0Q2VsbE1ldGEoYSxkLCJzb3VyY2Ui'@; put 'LEV0KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPy51cGRhdGVSdWxlKGQse3NvdXJjZTpFdH0pLHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbcGVdLnZhbHVlcy5sZW5ndGg+MCl7Y29uc3QgU3Q9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtwZV0uc3RyaWN0O2guc2V0Q2Vs'@; put 'bE1ldGEoYSxkLCJyZW5kZXJlciIsImF1dG9jb21wbGV0ZSIpLGguc2V0Q2VsbE1ldGEoYSxkLCJlZGl0b3IiLCJhdXRvY29tcGxldGUiKSxoLnNldENlbGxNZXRhKGEsZCwic3RyaWN0IixTdCksaC5zZXRDZWxsTWV0YShhLGQsImZpbHRlciIsITEpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRW'@; put 'YWxpZGF0b3I/LnVwZGF0ZVJ1bGUoZCx7cmVuZGVyZXI6ImF1dG9jb21wbGV0ZSIsZWRpdG9yOiJhdXRvY29tcGxldGUiLHN0cmljdDpTdCxmaWx0ZXI6ITF9KX10aGlzLnJlU2V0RXh0ZW5kZWRDZWxsVmFsaWRhdGlvblZhbHVlcyh0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW3BlXSxhLEVl'@; put 'JiZaZSksaC5yZW5kZXIoKX0pfWlmKHBlPDApe2NvbnN0IHdlPXtTQVNDb250cm9sVGFibGU6W3tsaWJkczp0aGlzLmxpYmRzLHZhcmlhYmxlX25tOld9XSxzb3VyY2Vfcm93OltUXX0sRWU9dGhpcy5kY1ZhbGlkYXRvcj8uZ2V0RHFEZXRhaWxzKFcpLmZpbmQoWmU9PiJTT0ZUU0VMRUNUX0hP'@; put 'T0siPT09WmUuUlVMRV9UWVBFfHwiSEFSRFNFTEVDVF9IT09LIj09PVplLlJVTEVfVFlQRSk7RWUmJih0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLnB1c2goe3JvdzphLGNvbDpkLHN0cmljdDoiSEFSRFNFTEVDVF9IT09LIj09PUVlLlJVTEVfVFlQRSx2YWx1ZXM6W10saGFzaDppZSxjb3Vu'@; put 'dDp0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmxlbmd0aCsxfSksaC5zZXRDZWxsTWV0YShhLGQsInJlbmRlcmVyIixLTmUpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5wdXNoKGQpLGgucmVuZGVyKCksdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImVkaXRvcnMvZ2V0ZHluYW1p'@; put 'Y2NvbHZhbHMiLHdlLHZvaWQgMCx7c3VwcHJlc3NTdWNjZXNzQWJvcnRNb2RhbDohMCxzdXBwcmVzc0Vycm9yQWJvcnRNb2RhbDohMH0pLnRoZW4oWmU9PntpZihaZS5keW5hbWljX3ZhbHVlcy5tYXAoZXQ9PmV0W3RoaXMuY2VsbFZhbGlkYXRpb25GaWVsZHMuUkFXX1ZBTFVFXSkubGVuZ3Ro'@; put 'PjApe2NvbnN0IGV0PXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KHl0PT55dC5oYXNoPT09aWUpO2V0Pi0xJiYodGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtldF09ey4uLnRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbZXRdLHJvdzphLGNvbDpkLHZhbHVlczpaZS5keW5h'@; put 'bWljX3ZhbHVlcyxleHRlbmRlZF92YWx1ZXM6WmUuZHluYW1pY19leHRlbmRlZF92YWx1ZXN9KSxoLnNldENlbGxNZXRhKGEsZCwicmVuZGVyZXIiLEd6KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3Muc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5pbmRleE9m'@; put 'KGQpLDEpLGguZGVzZWxlY3RDZWxsKCksaC5yZW5kZXIoKSxoLmJhdGNoKCgpPT57c2V0VGltZW91dCgoKT0+e3RoaXMucmVTZXRDZWxsVmFsaWRhdGlvblZhbHVlcyghMCxhKSxoLnJlbmRlcigpLGgudmFsaWRhdGVSb3dzKFthXSl9LDEwMCl9KX1pZihoLnNldENlbGxNZXRhKGEsZCwicmVu'@; put 'ZGVyZXIiLEd6KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3Muc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5pbmRleE9mKGQpLDEpLGguZGVzZWxlY3RDZWxsKCksaC5yZW5kZXIoKSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmxlbmd0aD50aGlzLnZhbGlk'@; put 'YXRpb25UYWJsZUxpbWl0KXtjb25zdCBldD10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLnJlZHVjZSgoRXQsU3QpPT5FdC5jb3VudDxTdC5jb3VudD9FdDpTdCkseXQ9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5pbmRleE9mKGV0KTt0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLnNwbGlj'@; put 'ZSh5dCwxKX19KS5jYXRjaChaZT0+e2NvbnN0IGl0PXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KGV0PT5ldC5oYXNoPT09aWUpO3RoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Uuc3BsaWNlKGl0LDEpLGguYmF0Y2goKCk9PntoLnNldENlbGxNZXRhKGEsZCwicmVuZGVyZXIi'@; put 'LHFOZSksaC5yZW5kZXIoKX0pLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5zcGxpY2UodGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzLmluZGV4T2YoZCksMSksdGhpcy5jdXJyZW50RWRpdFJlY29yZEVycm9ycy5wdXNoKGQpLHNldFRpbWVvdXQoKCk9PntoLnNldENlbGxN'@; put 'ZXRhKGEsZCwicmVuZGVyZXIiLEd6KSxoLnJlbmRlcigpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMuc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMuaW5kZXhPZihkKSwxKX0sM2UzKSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKSx0aGlzLmxvZ2dlclNl'@; put 'cnZpY2UubG9nKCJnZXRkeW5hbWljY29sdmFscyBlcnJvcjoiLFplKX0pKX19Y2hlY2tFbXB0eVJvd1doZW5GaWx0ZXIoKXt0aGlzLnplcm9GaWx0ZXJSb3dzPSExLHR5cGVvZiB0aGlzLmZpbHRlcl9wazwidSImJjE9PT10aGlzLmhvdFRhYmxlLmRhdGEubGVuZ3RoJiZbbnVsbCwiIl0uaW5j'@; put 'bHVkZXModGhpcy5ob3RUYWJsZS5kYXRhWzBdW3RoaXMuaGVhZGVyUGtzWzBdXSkmJih0aGlzLnplcm9GaWx0ZXJSb3dzPSEwKX1vblJlY29yZElucHV0Rm9jdXMoYSl7dGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb24odGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4LGEuY29sTmFtZSl9ZXhl'@; put 'Y3V0ZUR5bmFtaWNDZWxsVmFsaWRhdGlvbklmQXBwbGljYWJsZShhLGQsaCl7Y29uc3QgZj10aGlzLmhlbHBlclNlcnZpY2UuZGVsZXRlS2V5c0FuZEhhc2godGhpcy5kYXRhU291cmNlW2hdLFthLCJub0xpbmtPcHRpb24iXSksXz10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmZpbmQoVD0+'@; put 'VC5oYXNoPT09ZiYmZD09PVQuY29sKTtpZihfJiZfLmV4dGVuZGVkX3ZhbHVlcyYmXy5leHRlbmRlZF92YWx1ZXMubGVuZ3RoPjApe2NvbnN0IFQ9dGhpcy5nZXRFeHRlbmRlZFZhbHVlc0J5Q2VsbFZhbHVlKF8saCk7dGhpcy5zZXRFeHRlbmRlZFZhbHVlc1RvQ2VsbHMoXyxoLFQsITApfX12'@; put 'aWV3Ym94TWFuYWdlcigpe3RoaXMudmlld2JveGVzPSEwfWdldCB0b3RhbFJvd3NDaGFuZ2VkKCl7cmV0dXJuIHRoaXMucm93c0NoYW5nZWQucm93c1VwZGF0ZWQrdGhpcy5yb3dzQ2hhbmdlZC5yb3dzRGVsZXRlZCt0aGlzLnJvd3NDaGFuZ2VkLnJvd3NBZGRlZH1uZ09uSW5pdCgpe3ZhciBh'@; put 'PXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2EubGljZW5jZVNlcnZpY2UuaG90X2xpY2Vuc2Vfa2V5LnN1YnNjcmliZShoPT57YS5ob3RUYWJsZS5saWNlbnNlS2V5PWh9KSxhLl9xdWVyeT1hLnNhc1N0b3JlU2VydmljZS5xdWVyeS5zdWJzY3JpYmUoaD0+e2gubGliZHM9PT1hLmxpYmRz'@; put 'JiYoYS53aGVyZVN0cmluZz1oLnN0cmluZyxhLmNsYXVzZXM9aC5vYmopfSk7bGV0IGQ9e307dHlwZW9mIGEucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbTwidSImJihhLmxpYmRzPWEucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSxhLmZpbHRlcl9waz1hLnJvdXRlLnNuYXBzaG90'@; put 'LnBhcmFtcy5maWx0ZXJJZCwiZWRpdC1yZWNvcmQiPT09YS5yb3V0ZS5zbmFwc2hvdC51cmxbMF0ucGF0aCYmKGEucmVjb3JkQWN0aW9uPXR5cGVvZiBhLmZpbHRlcl9wazwidSI/IkVESVQiOiJBREQiKSxkLkxJQkRTPWEubGliZHMsdHlwZW9mIGEuZmlsdGVyX3BrPCJ1IiYmKGQuRklMVEVS'@; put 'X1JLPXBhcnNlSW50KGEuZmlsdGVyX3BrKSksZC5PVVRERVNUPSJXRUIiLGEubGliZHMmJihHbi5lZGl0b3IubGlicmFyeT1hLmxpYmRzLnNwbGl0KCIuIilbMF0sR24uZWRpdG9yLnRhYmxlPWEubGliZHMuc3BsaXQoIi4iKVsxXSkpLGEubGliZHMmJihhLmdldGRhdGFFcnJvcj0hMSx5aWVs'@; put 'ZCBhLnNhc1N0b3JlU2VydmljZS5jYWxsU2VydmljZShkLCJTQVNDb250cm9sVGFibGUiLCJlZGl0b3JzL2dldGRhdGEiLGEubGliZHMpLnRoZW4oaD0+e2EuaW5pdFNldHVwKGgpfSkuY2F0Y2goaD0+e2EuZ2V0ZGF0YUVycm9yPSEwLGEudGFibGVUcnVlPSEwfSkpfSkoKX1uZ0FmdGVyVmll'@; put 'd0luaXQoKXt9aW5pdFNldHVwKGEpe2lmKHRoaXMuaG90SW5zdGFuY2U9dGhpcy5ob3RSZWdpc3RlcmVyLmdldEluc3RhbmNlKCJob3RJbnN0YW5jZSIpLHRoaXMuZ2V0ZGF0YUVycm9yfHwhYXx8IWEuZGF0YSlyZXR1cm47dGhpcy5jb2xzPWEuZGF0YS5jb2xzLHRoaXMuZHNtZXRhPWEuZGF0'@; put 'YS5kc21ldGE7Y29uc3QgZD10aGlzLmRzbWV0YS5maW5kKGllPT4iTk9URVMiPT09aWUuTkFNRSksaD10aGlzLmRzbWV0YS5maW5kKGllPT4iRERfTE9OR0RFU0MiPT09aWUuTkFNRSksZj10aGlzLmRzbWV0YS5maW5kKGllPT4iRERfU0hPUlRERVNDIj09PWllLk5BTUUpO3RoaXMuZHNOb3Rl'@; put 'PWQmJmQuVkFMVUU/ZC5WQUxVRTpoJiZoLlZBTFVFP2guVkFMVUU6ZiYmZi5WQUxVRT9mLlZBTFVFOiIiO2NvbnN0IF89dGhpcy5ob3RJbnN0YW5jZSxUPWEuZGF0YS5hcHByb3ZlcnM7dGhpcy5jb2xzJiYodGhpcy5oZWFkZXJBcnJheT0oYz0+e2NvbnN0IGw9W107Zm9yKGxldCBhIG9mIGMp'@; put 'Il9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1hLk5BTUUmJmwucHVzaChhLk5BTUUpO3JldHVybiBsfSkodGhpcy5jb2xzKSksVC5mb3JFYWNoKGllPT57dGhpcy5hcHByb3ZlcnMucHVzaChpZS5QRVJTT05OQU1FKX0pLHRoaXMudGFibGVUcnVlPSEwLHRoaXMubGliZHM9YS5s'@; put 'aWJkcyx0aGlzLmhvdFRhYmxlLmRhdGE9YS5kYXRhLnNhc2RhdGEsdGhpcy5oZWFkZXJDb2x1bW5zPWEuZGF0YS5zYXNwYXJhbXNbMF0uQ09MSEVBREVSUy5zcGxpdCgiLCIpLHRoaXMuaGVhZGVyUGtzPWEuZGF0YS5zYXNwYXJhbXNbMF0uUEsuc3BsaXQoIiAiKSx0aGlzLmNvbHVtbkxldmVs'@; put 'U2VjdXJpdHlGbGFnPSEhYS5kYXRhLnNhc3BhcmFtc1swXS5DTFNfRkxBRyx0aGlzLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnJiZ0aGlzLnNldFJlc3RyaWN0aW9ucyh7cmVzdHJpY3RBZGRSb3c6ITAscmVtb3ZlRWRpdFJlY29yZEJ1dHRvbjohMCxyZW1vdmVBZGRSZWNvcmRCdXR0b246ITB9'@; put 'KSx0aGlzLmNoZWNrRW1wdHlSb3dXaGVuRmlsdGVyKCksLTEhPT10aGlzLmhlYWRlckNvbHVtbnMuaW5kZXhPZigiX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIikmJih0aGlzLmhlYWRlckNvbHVtbnNbdGhpcy5oZWFkZXJDb2x1bW5zLmluZGV4T2YoIl9fX19fREVMRVRFX19USElT'@; put 'X19SRUNPUkRfX19fXyIpXT0iRGVsZXRlPyIpLHRoaXMuaGVhZGVyQXJyYXk9dGhpcy5oZWFkZXJDb2x1bW5zLnNsaWNlKDEpLCIiIT09YS5kYXRhLnNhc3BhcmFtc1swXS5EVFZBUlMmJih0aGlzLmRhdGVIZWFkZXJzPWEuZGF0YS5zYXNwYXJhbXNbMF0uRFRWQVJTLnNwbGl0KCIgIikpLCIi'@; put 'IT09YS5kYXRhLnNhc3BhcmFtc1swXS5UTVZBUlMmJih0aGlzLnRpbWVIZWFkZXJzPWEuZGF0YS5zYXNwYXJhbXNbMF0uVE1WQVJTLnNwbGl0KCIgIikpLCIiIT09YS5kYXRhLnNhc3BhcmFtc1swXS5EVFRNVkFSUyYmKHRoaXMuZGF0ZVRpbWVIZWFkZXJzPWEuZGF0YS5zYXNwYXJhbXNbMF0u'@; put 'RFRUTVZBUlMuc3BsaXQoIiAiKSksYS5kYXRhLnhsX3J1bGVzLmxlbmd0aD4wJiYodGhpcy54bFJ1bGVzPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoYS5kYXRhLnhsX3J1bGVzKSksdGhpcy5kY1ZhbGlkYXRvcj1uZXcgWk5lKGEuZGF0YS5zYXNwYXJhbXNbMF0sYS5kYXRhLiRzYXNk'@; put 'YXRhLHRoaXMuY29scyxhLmRhdGEuZHFydWxlcyxhLmRhdGEuZHFkYXRhKSx0aGlzLmNlbGxWYWxpZGF0aW9uPXRoaXMuZGNWYWxpZGF0b3IuZ2V0UnVsZXMoKSx0aGlzLmRhdGFTb3VyY2U9YS5kYXRhLnNhc2RhdGEsdGhpcy4kZGF0YUZvcm1hdHM9YS5kYXRhLiRzYXNkYXRhO2ZvcihsZXQg'@; put 'aWU9MDtpZTx0aGlzLmhlYWRlckNvbHVtbnMubGVuZ3RoO2llKyspdGhpcy5ob3REYXRhU2NoZW1hW3RoaXMuY2VsbFZhbGlkYXRpb25baWVdLmRhdGFdPVlOZSh0aGlzLmNlbGxWYWxpZGF0aW9uW2llXS50eXBlLHRoaXMuY2VsbFZhbGlkYXRpb25baWVdKTt0aGlzLmNoZWNrUm93TGltaXQo'@; put 'KSxfLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZSxjb2xIZWFkZXJzOnRoaXMuaGVhZGVyQ29sdW1ucyxjb2x1bW5zOnRoaXMuY2VsbFZhbGlkYXRpb24saGVpZ2h0OnRoaXMuaG90VGFibGUuaGVpZ2h0LGZvcm11bGFzOnRoaXMuaG90VGFibGUuZm9ybXVsYXMsc3RyZXRj'@; put 'aEg6ImFsbCIscmVhZE9ubHk6dGhpcy5ob3RUYWJsZS5yZWFkT25seSxoaWRkZW5Db2x1bW5zOntpbmRpY2F0b3JzOiEwLGNvbHVtbnM6dGhpcy5kY1ZhbGlkYXRvci5nZXRIaWRkZW5Db2x1bW5zKCl9LG1vZGlmeUNvbFdpZHRoOmZ1bmN0aW9uKGllLHBlKXtyZXR1cm4gMD09PXBlPzYwOmll'@; put 'PjUwMD81MDA6aWV9LGNvcHlQYXN0ZTp0aGlzLmhvdFRhYmxlLmNvcHlQYXN0ZSxtYW51YWxDb2x1bW5GcmVlemU6ITEsbXVsdGlDb2x1bW5Tb3J0aW5nOiEwLG1hbnVhbENvbHVtblJlc2l6ZTohMCxmaWx0ZXJzOiExLG1hbnVhbFJvd1Jlc2l6ZTohMCx2aWV3cG9ydFJvd1JlbmRlcmluZ09m'@; put 'ZnNldDo1MCxyb3dIZWFkZXJzOmllPT4iICIscm93SGVhZGVyV2lkdGg6MTUscm93SGVpZ2h0czoyNCxtYXhSb3dzOnRoaXMubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWR8fDEvMCxpbnZhbGlkQ2VsbENsYXNzTmFtZToiaHRJbnZhbGlkIixkcm9wZG93bk1lbnU6e2l0'@; put 'ZW1zOnttYWtlX3JlYWRfb25seTp7bmFtZToibWFrZV9yZWFkX29ubHkifSxhbGlnbm1lbnQ6e25hbWU6ImFsaWdubWVudCJ9LHNwMTp7bmFtZToiLS0tLS0tLS0tIn0saW5mbzp7bmFtZToidGVzdCBpbmZvIixyZW5kZXJlcjooaWUscGUsd2UsRWUsWmUsaXQpPT57Y29uc3QgZXQ9ZG9jdW1l'@; put 'bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2xldCB5dCxFdD0iTm8gaW5mbyBmb3VuZCI7aWYodGhpcy5ob3RJbnN0YW5jZSl7Y29uc3QgU3Q9dGhpcy5ob3RJbnN0YW5jZS5nZXRTZWxlY3RlZCgpfHxbXSxKdD1TdD9TdFswXVsxXTotMSxubj10aGlzLmhvdEluc3RhbmNlPy5jb2xUb1Byb3Ao'@; put 'SnQpO3l0PXRoaXMuJGRhdGFGb3JtYXRzPy52YXJzW25uXSx5dCYmKEV0PWBMQUJFTDogJHt5dD8ubGFiZWx9PGJyPlRZUEU6ICR7eXQ/LnR5cGV9PGJyPkxFTkdUSDogJHt5dD8ubGVuZ3RofTxicj5GT1JNQVQ6ICR7eXQ/LmZvcm1hdH1gKX1yZXR1cm4gZXQuaW5uZXJIVE1MPUV0LGV0fX19'@; put 'fSxkYXRhU2NoZW1hOnRoaXMuaG90RGF0YVNjaGVtYSxjb250ZXh0TWVudTp0aGlzLmhvdFRhYmxlLnNldHRpbmdzLmNvbnRleHRNZW51LGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6ImN1c3RvbUgiLGFmdGVyR2V0Q29sSGVhZGVyOihpZSxwZSk9Pntjb25zdCB3ZT10aGlzLmNvbHVtbkhlYWRl'@; put 'cltpZV0sRWU9d2UmJnRoaXMuaXNDb2xQayh3ZSksWmU9d2UmJnRoaXMuaXNSZWFkb25seUNvbCh3ZSk7RWUmJnBlLmNsYXNzTGlzdC5hZGQoInByaW1hcnlLZXlIZWFkZXJTdHlsZSIpLFplJiYhRWUmJnBlLmNsYXNzTGlzdC5hZGQoInJlYWRvbmx5Q2VsbCIpLDA9PT1pZSYmcGUuY2xhc3NM'@; put 'aXN0LmFkZCgiZmlyc3RDb2x1bW5IZWFkZXJTdHlsZSIpfSxhZnRlckdldENlbGxNZXRhOihpZSxwZSx3ZSk9PntwZSYmdGhpcy5pc1JlYWRvbmx5Q29sKHBlKSYmKHdlLmNsYXNzTmFtZT0icmVhZG9ubHlDZWxsIil9fSwhMSksdGhpcy5ob3RUYWJsZS5oaWRkZW49ITEsdGhpcy50b2dnbGVI'@; put 'b3RQbHVnaW4oImNvbnRleHRNZW51IiwhMSksdGhpcy5xdWVyeVRleHQ9YS5kYXRhLnNhc3BhcmFtc1swXS5GSUxURVJfVEVYVCx0aGlzLmNvbHVtbkhlYWRlcj1hLmRhdGEuc2FzcGFyYW1zWzBdLkNPTEhFQURFUlMuc3BsaXQoIiwiKSx0aGlzLmNvbHVtbkhlYWRlclswXT0iRGVsZXRlPyIs'@; put 'dGhpcy5yZWFkT25seUZpZWxkcz1hLmRhdGEuc2FzcGFyYW1zWzBdLlBLQ05UO2xldCBXPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3RJbnN0YW5jZSIpO1cmJlcuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixpZT0+e3RoaXMudXBsb2FkUHJldmlld3x8dGhpcy5ob3RDbGlja2Vk'@; put 'KCksc2V0VGltZW91dCgoKT0+e2xldCBwZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZGVidWctc3dpdGNoLWl0ZW0iKXx8dm9pZCAwO3BlJiZwZS5jbGljaygpfSwxMDApfSksXy5hZGRIb29rKCJhZnRlclNlbGVjdGlvbiIsKGllLHBlLHdlLEVlLFplLGl0KT0+e2llPT09d2UmJnBlPT09'@; put 'RWUmJiExPT09dGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb24oaWUscGUpfSksXy5hZGRIb29rKCJiZWZvcmVLZXlEb3duIixpZT0+e2NvbnN0IHBlPXRoaXMuaG90SW5zdGFuY2UuZ2V0U2VsZWN0ZWQoKSx3ZT1wZSYmcGVbMF07aWYod2Upe2NvbnN0'@; put 'IEVlPXdlWzBdLGl0PXdlWzFdO2lmKEVlPT09d2VbMl0mJml0PT09d2VbM10pe2NvbnN0IHl0PXRoaXMuaG90SW5zdGFuY2UuZ2V0Q2VsbE1ldGEoRWUsaXQpO3l0JiYhMT09PXl0LmZpbHRlciYmdGhpcy5ob3RJbnN0YW5jZS5zZXRDZWxsTWV0YShFZSxpdCwiZmlsdGVyIiwhMCl9fX0pLF8u'@; put 'YWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLChpZSxwZSk9PntpZigiZWRpdCI9PT1wZSl7Y29uc3Qgd2U9dGhpcy5ob3RJbnN0YW5jZSxFZT1pZVswXVswXSxaZT1pZVswXVsxXSxpdD13ZS5wcm9wVG9Db2woWmUpLGV0PXdlLmdldENlbGxNZXRhKEVlLGl0KTtldCYmITE9PT1ldC5maWx0ZXImJndl'@; put 'LnNldENlbGxNZXRhKEVlLGl0LCJmaWx0ZXIiLCEwKSx0aGlzLmV4ZWN1dGVEeW5hbWljQ2VsbFZhbGlkYXRpb25JZkFwcGxpY2FibGUoWmUsaXQsRWUpfX0pLF8uYWRkSG9vaygiYWZ0ZXJSZW5kZXIiLGllPT57dGhpcy5ldmVudFNlcnZpY2UuZGlzcGF0Y2hFdmVudCgicmVzaXplIil9KSxf'@; put 'LmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IiwoaWUscGUpPT57aWYoaWU+dGhpcy5kYXRhU291cmNlLmxlbmd0aCl7bGV0IHdlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi53dEhvbGRlciIpO3NldFRpbWVvdXQoKCk9Pnt3ZSYmKHdlLnNjcm9sbFRvcD13ZS5zY3JvbGxIZWlnaHQpfSl9fSks'@; put 'Xy5hZGRIb29rKCJiZWZvcmVQYXN0ZSIsKGllLHBlKT0+e2NvbnN0IHdlPXBlWzBdLnN0YXJ0Q29sO2llWzBdPWllWzBdLm1hcCgoRWUsWmUpPT57Y29uc3QgaXQ9dGhpcy5jb2x1bW5IZWFkZXJbd2UrWmVdLGV0PSJudW0iPT09dGhpcy4kZGF0YUZvcm1hdHM/LnZhcnNbaXRdPy50eXBlLHl0'@; put 'PSgwLHQzLmlzU3BlY2lhbE1pc3NpbmcpKEVlKTtyZXR1cm4gZXQmJiFpc05hTihFZSkmJiF5dCYmKEVlKj0xKSxFZX0pfSksXy5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsKCk9Pnt0aGlzLmNoZWNrUm93TGltaXQoKX0pLF8uYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLCgpPT57dGhpcy5j'@; put 'aGVja1Jvd0xpbWl0KCl9KSx0aGlzLnVwbG9hZFVybD0ic2VydmljZXMvZWRpdG9ycy9sb2FkZmlsZSIsbnVsbCE9PXRoaXMucmVjb3JkQWN0aW9uJiYoIkFERCI9PT10aGlzLnJlY29yZEFjdGlvbj8odGhpcy5hZGRSZWNvcmQoKSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmRhdGFTb3Vy'@; put 'Y2UubGVuZ3RoLTEsITApKToxPT09dGhpcy5kYXRhU291cmNlLmxlbmd0aCYmdGhpcy5lZGl0UmVjb3JkKG51bGwsMCkpLGEuZGF0YS5xdWVyeS5sZW5ndGg+MCYmKCJob21lIj09PUduLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1Hbi5yb290UGFyYW0pJiYwPT09R24uZWRpdG9yLmZpbHRlci5j'@; put 'bGF1c2VzLmxlbmd0aCYmKEduLmVkaXRvci5maWx0ZXIucXVlcnk9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShhLmRhdGEucXVlcnkpLEduLmVkaXRvci5maWx0ZXIubGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtLHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmluaXRp'@; put 'YWxpemVHbG9iYWxGaWx0ZXJDbGF1c2UoImVkaXRvciIsdGhpcy5jb2xzKSksXy5yZW5kZXIoKX19cmV0dXJuIGMuY250PTAsYy5ub25Qa0NudD0wLGMubGFzdENlbGw9MCxjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEMwKSx0dCh2bCksdHQodzApLHR0KGJk'@; put 'KSx0dChUYyksdHQoRHMpLHR0KEdsKSx0dChvYSksdHQoVWEpLHR0KEFnKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1lZGl0b3IiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiYoUm8oZFVlLDcpLFJvKGhVZSw1KSxSbyhmVWUsNSksUm8ocFVl'@; put 'LDUpLFJvKGdVZSw1KSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5odD1oLmZpcnN0KSxhaShoPWxpKCkpJiYoZC51cGxvYWRTdGF0ZXJDb21wTGlzdD1oKSxhaShoPWxpKCkpJiYoZC5xdWVyeUZpbHRlckNvbXBMaXN0PWgpLGFpKGg9bGkoKSkmJihkLmhvdEluc3RhbmNlQ29tcExpc3Q9'@; put 'aCksYWkoaD1saSgpKSYmKGQuZmlsZVVwbG9hZElucHV0Q29tcExpc3Q9aCl9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MTc3LHZhcnM6NzMsY29uc3RzOltbMSwiY29udGVudC1hcmVhIiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIl0sWyJhcHBGaWxlRHJv'@; put 'cCIsIiIsMSwicmVsYXRpdmUiLDMsInVwbG9hZGVyIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW4iLCJmaWxlT3ZlciIsImZpbGVEcm9wIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxl'@; put 'Il0sWzEsIm1vZGFsLWJvZHkiXSxbMSwiZHJvcC1hcmVhIl0sWzEsImNsci1jb2wtbWQtMTIiXSxbMSwiY2xyLXJvdyIsImNhcmQtYmxvY2siLCJtdC0xNSIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1iZXR3ZWVuIl0sWzEsImNsci1jb2wtbWQtYXV0byJdLFsxLCJlbmNvZGluZy1ibG9j'@; put 'ayJdLFsiY2xySW5saW5lIiwiIiwxLCJtdC0wLWkiXSxbInR5cGUiLCJyYWRpbyIsImNsclJhZGlvIiwiIiwidmFsdWUiLCJVVEYtOCIsIm5hbWUiLCJlbmNvZGluZyIsMywibmdNb2RlbCIsImRpc2FibGVkIiwibmdNb2RlbENoYW5nZSJdLFsidHlwZSIsInJhZGlvIiwiY2xyUmFkaW8iLCIi'@; put 'LCJ2YWx1ZSIsIldMQVRJTjEiLCJuYW1lIiwiZW5jb2RpbmciLDMsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNsYXNzIiwiY2xyLWNvbC1tZC0zIGZpbHRlckJ0biIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItY29sLW1kLTMgZWRpdEJ0biIsNCwibmdJZiJdLFsi'@; put 'dHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1wcmltYXJ5IG1yLTAiLDMsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSBtci0wIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJleGNlbC1wYXJz'@; put 'aW5nIGNsci1jb2wtbWQtMTIiLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIl0sWzMsImN1cnJlbnRSZWNvcmQiLCJyZWNvcmRBY3Rpb24iLCJsaWJkcyIsInF1ZXJ5RmlsdGVyIiwiZmlsdGVyIiwic3VibWl0TG9hZGluZyIsImhlYWRlclBrcyIsImNlbGxWYWxpZGF0aW9uIiwiY3VycmVu'@; put 'dFJlY29yZEluZGV4IiwiY3VycmVudFJlY29yZExvYWRpbmdzIiwiY3VycmVudFJlY29yZEVycm9ycyIsImN1cnJlbnRSZWNvcmRWYWxpZGF0b3IiLCJvblJlY29yZENoYW5nZSIsIm9uUmVjb3JkSW5wdXRGb2N1c2VkIiwib25SZWNvcmRFZGl0Q2xvc2UiLCJvbk5leHRSZWNvcmQiLCJvblBy'@; put 'ZXZpb3VzUmVjb3JkIiw0LCJuZ0lmIl0sWzEsImNsci1mbGV4LTEiXSxbImh0IiwiIl0sWyJjbGFzcyIsInByb2dyZXNTdGF0aWMgcHJvZ3Jlc3MgbG9vcCIsNCwibmdJZiJdLFsiYXBwRHJhZ05kcm9wIiwiIiwxLCJjYXJkIiwiYm9yZGVyLTAiLCJib3gtc2hhZG93LW5vbmUtaSIsInBvc2l0'@; put 'aW9uLXJlbGF0aXZlIiwiaC0xMDAiLCJkLWZsZXgiLCJjbHItZmxleC1jb2x1bW4iLCJiYWNrZ3JvdW5kLXRyYW5zcGFyZW50IiwzLCJmaWxlRHJhZ2dlZE92ZXIiXSxbMSwiY2FyZC1oZWFkZXIiLCJjbHItcm93IiwiYnV0dG9uQmFyIiwiaGVhZGVyQmFyIiwiY2xyLWZsZXgtbWQtcm93Iiwi'@; put 'Y2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiLCJjbHItanVzdGlmeS1jb250ZW50LWxnLWVuZCJdLFsiY2xhc3MiLCJjbHItY29sLTEyIGNsci1jb2wtbGctNCBiYWNrQnRuIiw0LCJuZ0lmIl0sWzEsImNsci1jb2wtMTIiLCJjbHItY29sLWxnLTQiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIs'@; put 'ImFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xhc3MiLCJlZGl0b3ItdGl0bGUgdGV4dC1jZW50ZXIgbXQtMC1pIiw0LCJuZ1ZhciJdLFsiY2xhc3MiLCJjbHItY29sLTEyIGNsci1jb2wtbGctNCBidG5DdHJsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgaW5mb0JhciIsNCwi'@; put 'bmdJZiJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIiwiY2xyLWZsZXgtMSIsImJhY2tncm91bmQtdHJhbnNwYXJlbnQiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwiY2FyZC10ZXh0Iiw0LCJuZ0lmIl0sWzEsImNhcmQtdGV4dCIsImhvdEVkaXRvciIsImgtMTAwIiwiZC1mbGV4IiwiY2xyLWZsZXgt'@; put 'Y29sdW1uIiwiYmFja2dyb3VuZC10cmFuc3BhcmVudCJdLFsxLCJob3Qtd3JhcHBlciIsImNsci1mbGV4LTEiXSxbImhvdElkIiwiaG90SW5zdGFuY2UiLCJpZCIsImhvdFRhYmxlIiwxLCJlZGl0LWhvdCIsMywibGljZW5zZUtleSJdLFsiaG90SW5zdGFuY2UiLCIiXSxbNCwibmdJZiJdLFsi'@; put 'Y2xhc3MiLCJtdC0yLWkgdy0xMDAgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwibW9kYWwiLDQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm0tMCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1h'@; put 'cnkiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbMSwiZHVwbGljYXRlLWtleXMtbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsiY2xhc3MiLCJkLWJsb2NrIiw0LCJuZ0ZvciIsIm5nRm9y'@; put 'T2YiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsIm1vZGFsIHotaW5kZXgtaGlnaGVzdCIsNCwibmdJZiJdLFsxLCJmaWx0ZXItbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwi'@; put 'bW9kYWwtdGl0bGUiLCJjZW50ZXIiLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWRhcmtlci1ncmF5Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJj'@; put 'bGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxT'@; put 'aXplIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siXSxbMSwibW9kYWwtYm9keSIsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVy'@; put 'Il0sWyJkYXRhLWxwaWdub3JlIiwidHJ1ZSIsImF1dG9jb21wbGV0ZSIsIm9mZiIsImlkIiwiZmlsZVBhc3N3b3JkSW5wdXQiLCJ0eXBlIiwidGV4dCIsMSwiY2xyLWlucHV0IiwiZGlzYWJsZS1wYXNzd29yZC1tYW5hZ2VyIl0sWyJmaWxlUGFzc3dvcmRJbnB1dCIsIiJdLFsiY2xhc3MiLCJt'@; put 'LTAgY29sb3ItcmVkIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWzMsIm9wZW4iLCJkc21ldGEiLCJvcGVuQ2hhbmdlIl0sWzMsInZpZXdib3hNb2RhbCIsInZpZXdib3hNb2Rh'@; put 'bENoYW5nZSJdLFsxLCJjbHItY29sLW1kLTMiLCJmaWx0ZXJCdG4iXSxbMSwiZmlsdGVyQnRuIiwidy0xMDAiXSxbImZvciIsImZpbGUtdXBsb2FkIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsInByb2ZpbGUtYnV0dG9ucyIsInctMTAwIl0sWyJoaWRkZW4iLCIiLCJpZCIsImZp'@; put 'bGUtdXBsb2FkIiwidHlwZSIsImZpbGUiLCJhcHBGaWxlU2VsZWN0IiwiIiwzLCJ1cGxvYWRlciIsImNoYW5nZSJdLFsiZmlsZVVwbG9hZElucHV0IiwiIl0sWzEsImNsci1jb2wtbWQtMyIsImVkaXRCdG4iXSxbMSwiYnRuVmlldyIsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwicHJv'@; put 'ZmlsZS1idXR0b25zIiwidy0xMDAiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXItMCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtci0wIiwzLCJjbGlj'@; put 'ayJdLFsxLCJleGNlbC1wYXJzaW5nIiwiY2xyLWNvbC1tZC0xMiJdLFsidXBsb2FkU3RhdGVyIiwiIl0sWzMsImN1cnJlbnRSZWNvcmQiLCJyZWNvcmRBY3Rpb24iLCJsaWJkcyIsInF1ZXJ5RmlsdGVyIiwiZmlsdGVyIiwic3VibWl0TG9hZGluZyIsImhlYWRlclBrcyIsImNlbGxWYWxpZGF0'@; put 'aW9uIiwiY3VycmVudFJlY29yZEluZGV4IiwiY3VycmVudFJlY29yZExvYWRpbmdzIiwiY3VycmVudFJlY29yZEVycm9ycyIsImN1cnJlbnRSZWNvcmRWYWxpZGF0b3IiLCJvblJlY29yZENoYW5nZSIsIm9uUmVjb3JkSW5wdXRGb2N1c2VkIiwib25SZWNvcmRFZGl0Q2xvc2UiLCJvbk5leHRS'@; put 'ZWNvcmQiLCJvblByZXZpb3VzUmVjb3JkIl0sWzEsInByb2dyZXNTdGF0aWMiLCJwcm9ncmVzcyIsImxvb3AiXSxbMSwiY2xyLWNvbC0xMiIsImNsci1jb2wtbGctNCIsImJhY2tCdG4iXSxbMSwiYnRuIiwiYnRuLXNtIiwzLCJyb3V0ZXJMaW5rIl0sWyJzaGFwZSIsImNhcmV0IiwiZGlyIiwi'@; put 'bGVmdCIsInNpemUiLCIyMCJdLFsxLCJidG4iLCJidG4tc20iLCJ2aWV3Ym94LW9wZW4iLDMsImNsaWNrIl0sWyJzaGFwZSIsInZpZXctY2FyZHMiLCJzaXplIiwiMjAiXSxbMSwiZWRpdG9yLXRpdGxlIiwidGV4dC1jZW50ZXIiLCJtdC0wLWkiXSxbImNsclRvb2x0aXBUcmlnZ2VyIiwiIiwi'@; put 'c2hhcGUiLCJpbmZvLWNpcmNsZSIsInNpemUiLCIyNCIsMSwiaXMtaGlnaGxpZ2h0IiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImJvbHQiLCJjbGFzcyIsImNvbG9yLXllbGxvdyIsNCwibmdJZiJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiXSxbMSwibXItMTAiLDMs'@; put 'InJvdXRlckxpbmsiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiLCJjbHJTaXplIiwibGciLDQsImNscklmT3BlbiJdLFsic2hhcGUiLCJib2x0IiwxLCJjb2xvci15ZWxsb3ciXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiLCJjbHJTaXplIiwibGciXSxbMSwiY2xyLWNvbC0x'@; put 'MiIsImNsci1jb2wtbGctNCIsImJ0bkN0cmwiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0blZpZXciLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1ibG9jayIsMywiY2xpY2siXSxbInNoYXBlIiwiZmlsdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4t'@; put 'cHJpbWFyeSIsImJ0bi1ibG9jayIsMywiY2xpY2siXSxbInNoYXBlIiwibm90ZSJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4tc3VjY2VzcyBidG4tYmxvY2sgbXItMCIsMywiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1z'@; put 'bSIsImJ0bi1zdWNjZXNzIiwiYnRuLWJsb2NrIiwibXItMCIsMywiY2xpY2siXSxbInNoYXBlIiwidXBsb2FkIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1vdXRsaW5lLWRhbmdlciIsMywiY2xpY2siXSxbInNoYXBlIiwidGltZXMiXSxbImNs'@; put 'clRvb2x0aXBUcmlnZ2VyIiwiIiwidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLDMsImNsckxvYWRpbmciLCJjbGljayJdLFsic2hhcGUiLCJwbHVzIiwic2l6ZSIsIjE2Il0sWyJzaGFwZSIsImNoZWNrIiwic2l6ZSIsIjIwIl0sWyJ0eXBlIiwiYnV0dG9u'@; put 'IiwxLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1vdXRsaW5lLWRhbmdlciIsImJ0bi11cGxvYWQtcHJldmlldyIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tc20gYnRuLXByaW1hcnkgYnRuLXVwbG9hZC1wcmV2aWV3IiwzLCJjbGljayIsNCwi'@; put 'bmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLCJwcmV2aWV3LXN1Ym1pdCIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsImJ0bi11cGxvYWQtcHJldmlldyIs'@; put 'MywiY2xpY2siXSxbMSwiY2xyLWNvbC1tZC0xMiIsImluZm9CYXIiXSxbMSwiY2FyZC10ZXh0Il0sWzEsImgtNzB2aCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJzcGlubmVyIl0sWyJzaGFwZSIsImVy'@; put 'cm9yLXN0YW5kYXJkIiwxLCJlcnJvci1pY29uIl0sWyJjbHJUb29sdGlwVHJpZ2dlciIsIiIsInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwibXQtNS1pIiwzLCJjbGljayJdLFsiY2xyUG9zaXRpb24iLCJ0b3AtcmlnaHQiLCJjbHJTaXplIiwibGciLDQs'@; put 'ImNscklmT3BlbiJdLFsiY2xyUG9zaXRpb24iLCJ0b3AtcmlnaHQiLCJjbHJTaXplIiwibGciXSxbMSwibXQtMi1pIiwidy0xMDAiLCJ0ZXh0LWNlbnRlciJdLFsxLCJtb2RhbCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtZGlhbG9nIiwibW9kYWwt'@; put 'bGciXSxbMSwibW9kYWwtY29udGVudCJdLFsxLCJtb2RhbC1oZWFkZXIiXSxbImFyaWEtbGFiZWwiLCJDbG9zZSIsInR5cGUiLCJidXR0b24iLDEsImNsb3NlIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJzaGFwZSIsImNsb3NlIl0sWyJjbGFzcyIsImQtYmxvY2sgdy0xMDAgdGV4dC1jZW50'@; put 'ZXIgY29sb3ItcmVkIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1vZmZzZXQtbWQtMiBjbHItY29sLW1kLTgiLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIiwianVzdGlmeS1jb250ZW50LWNlbnRlci1pIl0sWyJpZCIsInN1Ym1pdEJ0biIsInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0'@; put 'bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLCJtLTAiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbImlkIiwiY2FuY2VsU3VibWl0QnRuIiwidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWzEsImQtYmxvY2siLCJ3LTEwMCIsInRleHQt'@; put 'Y2VudGVyIiwiY29sb3ItcmVkIl0sWzEsImNsci1vZmZzZXQtbWQtMiIsImNsci1jb2wtbWQtOCJdLFsxLCJmb3JtLWdyb3VwIl0sWyJmb3IiLCJmb3JtRmllbGRzXzgiXSxbInR5cGUiLCJ0ZXh0IiwiaWQiLCJmb3JtRmllbGRzXzgiLCJyb3dzIiwiNSIsMSwidy0xMDAiLDMsIm5nTW9kZWwi'@; put 'LCJkaXNhYmxlZCIsInZhbHVlIiwibmdNb2RlbENoYW5nZSJdLFsxLCJkLWJsb2NrIl0sWzEsIm1vZGFsIiwiei1pbmRleC1oaWdoZXN0Il0sWyJyb2xlIiwiZGlhbG9nIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtb2RhbC1kaWFsb2ciXSxbInF1ZXJ5RmlsdGVyIiwiIl0sWzEsIm0tMCIs'@; put 'ImNvbG9yLXJlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpe2lmKDEmYSl7Y29uc3QgaD1WbigpO21lKDAsImRpdiIsMCkoMSwiY2xyLW1vZGFsIiwxKSx4dCgiZmlsZU92ZXIiLGZ1bmN0aW9uKF8pe3JldHVybiBkLmZpbGVPdmVyQmFzZShfKX0pKCJmaWxlRHJvcCIsZnVuY3Rpb24oXyl7'@; put 'cmV0dXJuIGQuZ2V0RmlsZURlc2MoXywhMCl9KSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihfKXtyZXR1cm4gZC5zaG93VXBsb2FkTW9kYWw9X30pLG1lKDIsImgzIiwyKSxOZSgzLCJVcGxvYWQgRmlsZSIpLHllKCksbWUoNCwiZGl2IiwzKSg1LCJkaXYiLDQpKDYsInNwYW4iKSxO'@; put 'ZSg3LCJEcm9wIGZpbGUgYW55d2hlcmUgdG8gdXBsb2FkISIpLHllKCkoKSxtZSg4LCJkaXYiLDUpKDksImRpdiIsNikoMTAsImRpdiIsNykoMTEsImRpdiIsOCkoMTIsImNsci1yYWRpby1jb250YWluZXIiLDkpKDEzLCJjbHItcmFkaW8td3JhcHBlciIpKDE0LCJpbnB1dCIsMTApLHh0KCJu'@; put 'Z01vZGVsQ2hhbmdlIixmdW5jdGlvbihfKXtyZXR1cm4gZC5lbmNvZGluZz1ffSkseWUoKSxtZSgxNSwibGFiZWwiKSxOZSgxNiwiVVRGLTgiKSx5ZSgpKCksbWUoMTcsImNsci1yYWRpby13cmFwcGVyIikoMTgsImlucHV0IiwxMSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKF8pe3Jl'@; put 'dHVybiBkLmVuY29kaW5nPV99KSx5ZSgpLG1lKDE5LCJsYWJlbCIpLE5lKDIwLCJXTEFUSU4xIikseWUoKSgpKCkoKSgpLEplKDIxLG1VZSw2LDEsImRpdiIsMTIpLEplKDIyLHZVZSwzLDEsImRpdiIsMTMpLG1lKDIzLCJkaXYiLDcpLEplKDI0LF9VZSwyLDEsImJ1dHRvbiIsMTQpLEplKDI1'@; put 'LGJVZSwyLDAsImJ1dHRvbiIsMTUpLHllKCksSmUoMjYseVVlLDMsMCwiZGl2IiwxNikseWUoKSgpKCkscXQoMjcsImRpdiIsMTcpLHllKCksSmUoMjgsd1VlLDEsMTIsImFwcC1lZGl0LXJlY29yZCIsMTgpLG1lKDI5LCJkaXYiLDE5LDIwKSxKZSgzMSxDVWUsMiwwLCJkaXYiLDIxKSxtZSgz'@; put 'MiwiZGl2IiwyMikseHQoImZpbGVEcmFnZ2VkT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4gZC5vblNob3dVcGxvYWRNb2RhbCgpfSksbWUoMzMsImRpdiIsMjMpLEplKDM0LE1VZSw3LDIsImRpdiIsMjQpLG1lKDM1LCJkaXYiLDI1KSxKZSgzNixEVWUsMTAsNSwiaDQiLDI2KSx5ZSgpLEplKDM3'@; put 'LE5VZSw0LDMsImRpdiIsMjcpLEplKDM4LFZVZSw1LDEsImRpdiIsMjgpLHllKCksbWUoMzksImRpdiIsMjkpLEplKDQwLHpVZSw0LDIsImRpdiIsMzApLG1lKDQxLCJkaXYiLDMxKSg0MiwiZGl2IiwzMikscXQoNDMsImhvdC10YWJsZSIsMzMsMzQpLHllKCksbWUoNDUsImRpdiIpLEplKDQ2'@; put 'LFlVZSw1LDIsImNsci10b29sdGlwIiwzNSksSmUoNDcsV1VlLDMsMSwicCIsMzYpLHllKCksSmUoNDgscVVlLDE2LDYsImRpdiIsMzcpLG1lKDQ5LCJjbHItbW9kYWwiLDM4KSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihfKXtyZXR1cm4gZC5zdWJtaXRMaW1pdE5vdGljZT1f'@; put 'fSksbWUoNTAsImgzIiwyKSxOZSg1MSwiTm90aWNlIikseWUoKSxtZSg1MiwiZGl2IiwzKSg1MywicCIsMzkpLE5lKDU0KSx5ZSgpKCksbWUoNTUsImRpdiIsMTcpKDU2LCJidXR0b24iLDQwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuc3VibWl0TGltaXROb3RpY2U9ITF9KSxO'@; put 'ZSg1NywiIENhbmNlbCAiKSx5ZSgpLG1lKDU4LCJidXR0b24iLDQwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuZ2V0RmlsZSgpLGQuc3VibWl0TGltaXROb3RpY2U9ITF9KSxOZSg1OSwiIFN1Ym1pdCAiKSx5ZSgpKCkoKSxtZSg2MCwiY2xyLW1vZGFsIiwzOCkseHQoImNsck1v'@; put 'ZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oXyl7cmV0dXJuIGQuYmFkRWRpdD1ffSksbWUoNjEsImgzIiwyKSxOZSg2MikseWUoKSxtZSg2MywiZGl2IiwzKSg2NCwicCIpLE5lKDY1KSx5ZSgpKCksbWUoNjYsImRpdiIsMTcpKDY3LCJidXR0b24iLDQwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIGQuYmFkRWRpdD0hMX0pLE5lKDY4LCIgT2sgIikseWUoKSgpKCksbWUoNjksImNsci1tb2RhbCIsMzgpLHh0KCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKF8pe3JldHVybiBkLnBrTnVsbD1ffSksbWUoNzAsImgzIiwyKSxOZSg3MSwiRXJyb3IiKSx5ZSgpLG1lKDcyLCJk'@; put 'aXYiLDMpKDczLCJwIiksTmUoNzQsIiBOdWxsIHZhbHVlcyBvciBpbmNvcnJlY3QgZGF0YSB0eXBlcyBjYW5ub3QgYmUgc3VibWl0dGVkIGZvciBQcmltYXJ5IEtleSBjb2x1bW5zICIpLHllKCkoKSxtZSg3NSwiZGl2IiwxNykoNzYsImJ1dHRvbiIsNDEpLHh0KCJjbGljayIsZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gZC5wa051bGw9ITEsZC5iYWRFZGl0PSExfSksTmUoNzcsIiBPayAiKSx5ZSgpKCkoKSxtZSg3OCwiY2xyLW1vZGFsIiwzOCkseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oXyl7cmV0dXJuIGQubm9Qa051bGw9X30pLG1lKDc5LCJoMyIsMiksTmUoODAsIkVycm9y'@; put 'IikseWUoKSxtZSg4MSwiZGl2IiwzKSg4MiwicCIpLE5lKDgzLCJJbmNvcnJlY3QgZGF0YSB0eXBlcyBpbiBub24tUHJpbWFyeSBLZXkgY29sdW1ucyIpLHllKCkoKSxtZSg4NCwiZGl2IiwxNykoODUsImJ1dHRvbiIsNDEpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5ub1BrTnVs'@; put 'bD0hMSxkLmJhZEVkaXQ9ITF9KSxOZSg4NiwiIE9rICIpLHllKCkoKSgpLG1lKDg3LCJjbHItbW9kYWwiLDQyKSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihfKXtyZXR1cm4gZC5wa0R1cHM9X30pLG1lKDg4LCJoMyIsMiksTmUoODksIkVycm9yIikseWUoKSxtZSg5MCwiZGl2'@; put 'IiwzKSg5MSwicCIpLE5lKDkyLCIgRHVwbGljYXRlIHZhbHVlcyBjYW5ub3QgYmUgc3VibWl0dGVkIGZvciBQcmltYXJ5IEtleSBjb2x1bW5zICIpLHllKCksbWUoOTMsInAiKSxOZSg5NCwiRHVwbGljYXRlcyBmb3VuZDoiKSx5ZSgpLEplKDk1LEtVZSwzLDQsInNwYW4iLDQzKSx5ZSgpLG1l'@; put 'KDk2LCJkaXYiLDE3KSg5NywiYnV0dG9uIiw0MSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLnBrRHVwcz0hMX0pLE5lKDk4LCIgT2sgIikseWUoKSgpKCksbWUoOTksImNsci1tb2RhbCIsMzgpLHh0KCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKF8pe3JldHVybiBkLnRv'@; put 'b0xvbmc9X30pLG1lKDEwMCwiaDMiLDIpLE5lKDEwMSwiRXJyb3IiKSx5ZSgpLG1lKDEwMiwiZGl2IiwzKSgxMDMsInAiKSxOZSgxMDQsIiBUaGUgZm9sbG93aW5nIGNvbHVtbnMgaGF2ZSB2YWx1ZXMgdGhhdCBleGNlZWQgbGVuZ3RoIGxpbWl0czogIikseWUoKSxKZSgxMDUsWFVlLDIsMywi'@; put 'cCIsNDQpLHllKCksbWUoMTA2LCJkaXYiLDE3KSgxMDcsImJ1dHRvbiIsNDEpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC50b29Mb25nPSExLGQuY2xlYW5FeGNlZWQoKX0pLE5lKDEwOCwiIE9rICIpLHllKCkoKSgpKCkoKSgpKCkoKSxKZSgxMDksSlVlLDE0LDAsImRpdiIsNDUp'@; put 'LG1lKDExMCwiY2xyLW1vZGFsIiw0NikseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oXyl7cmV0dXJuIGQuZmlsdGVyPV99KSxtZSgxMTEsImgzIiw0NyksTmUoMTEyLCIgRmlsdGVyIGZvciB0YWJsZTogIiksbWUoMTEzLCJzcGFuIiksTmUoMTE0KSx5ZSgpKCksbWUoMTE1LCJk'@; put 'aXYiLDMpLEplKDExNixRVWUsMiwwLCJhcHAtcXVlcnkiLDM1KSx5ZSgpLG1lKDExNywiZGl2IiwxNykoMTE4LCJidXR0b24iLDQ4KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucmVzZXRGaWx0ZXIoKX0pLE5lKDExOSwiIHJlc2V0IGZpbHRlciAiKSx5ZSgpLG1lKDEyMCwiYnV0'@; put 'dG9uIiw0OSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmZpbHRlcj0hMX0pLE5lKDEyMSwiIENhbmNlbCAiKSx5ZSgpLG1lKDEyMiwiYnV0dG9uIiw1MCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLnNlbmRDbGF1c2UoKX0pLE5lKDEyMywiIE9rICIpLHllKCkoKSgp'@; put 'LG1lKDEyNCwiY2xyLW1vZGFsIiwzOCkseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oXyl7cmV0dXJuIGQucXVlcnlFcnI9X30pLG1lKDEyNSwiaDMiLDIpLE5lKDEyNiwiRXJyb3IiKSx5ZSgpLG1lKDEyNywiZGl2IiwzKSgxMjgsInAiKSxOZSgxMjkpLHllKCkoKSxtZSgxMzAs'@; put 'ImRpdiIsMTcpKDEzMSwiYnV0dG9uIiw1MSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLnF1ZXJ5RXJyPSExfSksTmUoMTMyLCIgQ2FuY2VsICIpLHllKCksbWUoMTMzLCJidXR0b24iLDQxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucXVlcnlFcnI9ITF9KSxOZSgx'@; put 'MzQsIiBPayAiKSx5ZSgpKCkoKSxtZSgxMzUsImNsci1tb2RhbCIsNTIpLHh0KCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKF8pe3JldHVybiBkLmRpc2NhcmRTb3VyY2VGaWxlPV99KSxtZSgxMzYsImgzIiw0NyksTmUoMTM3LCJXYXJuaW5nIikseWUoKSxtZSgxMzgsImRpdiIsMyks'@; put 'TmUoMTM5LCIgVGhpcyBhY3Rpb24gd2lsbCBkaXNjYXJkIHRoZSBzb3VyY2UgZmlsZSBhbmQgaXQncyBsb2FkZWQgZGF0YSAiKSxtZSgxNDAsImIiKSxOZSgxNDEpLHllKCksTmUoMTQyLCIgRG8geW91IHdpc2ggdG8gcHJvY2VlZD8gIikseWUoKSxtZSgxNDMsImRpdiIsMTcpKDE0NCwiYnV0'@; put 'dG9uIiw0OSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmRpc2NhcmRTb3VyY2VGaWxlPSExfSksTmUoMTQ1LCIgQ2FuY2VsICIpLHllKCksbWUoMTQ2LCJidXR0b24iLDUzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuZGlzY2FyZFNvdXJjZUZpbGU9ITEsZC5kaXNj'@; put 'YXJkUGVuZGluZ0V4Y2VsKCEwKX0pLE5lKDE0NywiIE9rICIpLHllKCkoKSgpLG1lKDE0OCwiY2xyLW1vZGFsIiw1MikseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oXyl7cmV0dXJuIGQuZmlsZVBhc3N3b3JkTW9kYWw9X30pLG1lKDE0OSwiaDMiLDQ3KSxOZSgxNTAsIiBQYXNz'@; put 'd29yZCBQcm90ZWN0ZWQgRmlsZSAiKSx5ZSgpLG1lKDE1MSwiZGl2Iiw1NCkoMTUyLCJwIiwzOSksTmUoMTUzLCJQbGVhc2UgZW50ZXIgcGFzc3dvcmQ6IikseWUoKSxxdCgxNTQsImlucHV0Iiw1NSw1NikseWUoKSxtZSgxNTYsImRpdiIsMTcpLEplKDE1NyxlWmUsMiwwLCJwIiw1NyksbWUo'@; put 'MTU4LCJidXR0b24iLDQ5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuZmlsZVBhc3N3b3JkTW9kYWw9ITEsZC5maWxlUGFzc3dvcmRTdWJqZWN0Lm5leHQodm9pZCAwKX0pLE5lKDE1OSwiIENhbmNlbCB1cGxvYWQgIikseWUoKSxtZSgxNjAsImJ1dHRvbiIsNTgpLHh0KCJjbGlj'@; put 'ayIsZnVuY3Rpb24oKXtCdChoKTtjb25zdCBfPSRpKDE1NSk7cmV0dXJuIGQuZmlsZVBhc3N3b3JkTW9kYWw9ITEsanQoZC5maWxlUGFzc3dvcmRTdWJqZWN0Lm5leHQoXy52YWx1ZSkpfSksTmUoMTYxLCIgVW5sb2NrICIpLHllKCkoKSgpLG1lKDE2MiwiY2xyLW1vZGFsIiw1MikseHQoImNs'@; put 'ck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oXyl7cmV0dXJuIGQubWFudWFsRmlsZUVkaXRNb2RhbD1ffSksbWUoMTYzLCJoMyIsNDcpLE5lKDE2NCwiV2FybmluZyIpLHllKCksbWUoMTY1LCJkaXYiLDMpLE5lKDE2NiwiIE1hbnVhbGx5IGVkaXRpbmcgdGhpcyBkYXRhIHdpbGwgbWVhbiB0'@; put 'aGUgc291cmNlIGZpbGUgIiksbWUoMTY3LCJiIiksTmUoMTY4KSx5ZSgpLE5lKDE2OSwiIHdpbGwgYmUgZGlzY2FyZGVkLiBEbyB5b3Ugd2lzaCB0byBwcm9jZWVkPyAiKSx5ZSgpLG1lKDE3MCwiZGl2IiwxNykoMTcxLCJidXR0b24iLDQ5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IGQubWFudWFsRmlsZUVkaXRNb2RhbD0hMX0pLE5lKDE3MiwiIENhbmNlbCAiKSx5ZSgpLG1lKDE3MywiYnV0dG9uIiw1MykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLm1hbnVhbEZpbGVFZGl0TW9kYWw9ITEsZC5wcmV2aWV3VGFibGVFZGl0Q29uZmlybSgpfSksTmUoMTc0LCIg'@; put 'T2sgIikseWUoKSgpKCksbWUoMTc1LCJhcHAtZGF0YXNldC1pbmZvIiw1OSkseHQoIm9wZW5DaGFuZ2UiLGZ1bmN0aW9uKF8pe3JldHVybiBkLmRhdGFzZXRJbmZvPV99KSx5ZSgpLG1lKDE3NiwiYXBwLXZpZXdib3hlcyIsNjApLHh0KCJ2aWV3Ym94TW9kYWxDaGFuZ2UiLGZ1bmN0aW9uKF8p'@; put 'e3JldHVybiBkLnZpZXdib3hlcz1ffSkseWUoKX1pZigyJmEpe2NvbnN0IGg9JGkoMTU1KTtDZSgxKSxSZSgidXBsb2FkZXIiLGQudXBsb2FkZXIpKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbFN0YXRpY0JhY2tkcm9wIiwhMSkoImNsck1vZGFsQ2xvc2FibGUiLCJWYWxpZGF0aW5n'@; put 'LURRIj09PWQuZXhjZWxVcGxvYWRTdGF0ZSkoImNsck1vZGFsT3BlbiIsZC5zaG93VXBsb2FkTW9kYWwpLENlKDEzKSxSZSgibmdNb2RlbCIsZC5lbmNvZGluZykoImRpc2FibGVkIiwiIiE9ZC5maWxlbmFtZSksQ2UoNCksUmUoIm5nTW9kZWwiLGQuZW5jb2RpbmcpKCJkaXNhYmxlZCIsIiIh'@; put 'PWQuZmlsZW5hbWUpLENlKDMpLFJlKCJuZ0lmIiwhZC5leGNlbEZpbGVQYXJzaW5nJiYhZC51cGxvYWRMb2FkaW5nKSxDZSgxKSxSZSgibmdJZiIsIWQuZXhjZWxGaWxlUGFyc2luZyYmIWQudXBsb2FkTG9hZGluZyksQ2UoMiksUmUoIm5nSWYiLCJWYWxpZGF0aW5nIiE9PWQuZXhjZWxVcGxv'@; put 'YWRTdGF0ZSksQ2UoMSksUmUoIm5nSWYiLCJWYWxpZGF0aW5nLURRIj09PWQuZXhjZWxVcGxvYWRTdGF0ZSksQ2UoMSksUmUoIm5nSWYiLGQuZXhjZWxGaWxlUGFyc2luZyksQ2UoMiksUmUoIm5nSWYiLGQuY3VycmVudEVkaXRSZWNvcmRJbmRleD4tMSksQ2UoMyksUmUoIm5nSWYiLCFkLnZh'@; put 'bGlkYXRpb25Eb25lJiZkLnN1Ym1pdCksQ2UoMyksUmUoIm5nSWYiLGQudGFibGVUcnVlKSxDZSgxKSxkcigiY2xyLWNvbC1sZy0xMiIsIWQudGFibGVUcnVlKSxDZSgxKSxSZSgibmdWYXIiLFEyKDY2LHRaZSxudWxsPT1kLmxpYmRzP251bGw6ZC5saWJkcy5zcGxpdCgiLiIpWzBdLG51bGw9'@; put 'PWQubGliZHM/bnVsbDpkLmxpYmRzLnNwbGl0KCIuIilbMV0pKSxDZSgxKSxSZSgibmdJZiIsZC50YWJsZVRydWUpLENlKDEpLFJlKCJuZ0lmIiwhJHMoNjksSXNlKS5pbmNsdWRlcyhkLnF1ZXJ5VGV4dCkpLENlKDEpLFJlKCJuZ0NsYXNzIixKMig3MSxuWmUsISRzKDcwLElzZSkuaW5jbHVk'@; put 'ZXMoZC5xdWVyeVRleHQpKSksQ2UoMSksUmUoIm5nSWYiLCFkLnRhYmxlVHJ1ZSksQ2UoMyksZHIoImhpZGRlbiIsZC5ob3RUYWJsZS5oaWRkZW4pLFJlKCJsaWNlbnNlS2V5IixkLmhvdFRhYmxlLmxpY2Vuc2VLZXkpLENlKDMpLFJlKCJuZ0lmIixkLnRhYmxlVHJ1ZSYmIWQucmVzdHJpY3Rp'@; put 'b25zLnJlbW92ZUFkZFJlY29yZEJ1dHRvbiksQ2UoMSksUmUoIm5nSWYiLGQubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQhPT1kLkluZmluaXR5JiZkLmRhdGFTb3VyY2UmJmQuZGF0YVNvdXJjZS5sZW5ndGg+ZC5saWNlbmNlU3RhdGUudmFsdWUuZWRpdG9yX3Jvd3Nf'@; put 'YWxsb3dlZCksQ2UoMSksUmUoIm5nSWYiLGQuc3VibWl0KSxDZSgxKSxSZSgiY2xyTW9kYWxPcGVuIixkLnN1Ym1pdExpbWl0Tm90aWNlKSxDZSg1KSxncigiIER1ZSB0byBjdXJyZW50IGxpY2VuY2UsIG9ubHkgIixkLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCwiIHJv'@; put 'd3MgaW4gYSBmaWxlIHdpbGwgYmUgc3VibWl0dGVkLiBUbyByZW1vdmUgdGhlIHJlc3RyaWN0aW9uLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8gIiksQ2UoNiksUmUoImNsck1vZGFsT3BlbiIsZC5iYWRFZGl0KSxDZSgyKSxvcihkLmJhZEVkaXRUaXRsZXx8IkVycm9yIiks'@; put 'Q2UoMyksb3IoZC5iYWRFZGl0Q2F1c2UpLENlKDQpLFJlKCJjbHJNb2RhbE9wZW4iLGQucGtOdWxsKSxDZSg5KSxSZSgiY2xyTW9kYWxPcGVuIixkLm5vUGtOdWxsKSxDZSg5KSxSZSgiY2xyTW9kYWxPcGVuIixkLnBrRHVwcyksQ2UoOCksUmUoIm5nRm9yT2YiLGQuZHVwbGljYXRlUGtJbmRl'@; put 'eGVzKSxDZSg0KSxSZSgiY2xyTW9kYWxPcGVuIixkLnRvb0xvbmcpLENlKDYpLFJlKCJuZ0Zvck9mIixkLmV4Y2VlZENlbGxzKSxDZSg0KSxSZSgibmdJZiIsZC5udWxsVmFyaWFibGVzKSxDZSgxKSxSZSgiY2xyTW9kYWxPcGVuIixkLmZpbHRlcikoImNsck1vZGFsU2l6ZSIsInhsIikoImNs'@; put 'ck1vZGFsQ2xvc2FibGUiLCExKSxDZSg0KSxncigiICIsZC5saWJkcywiICIpLENlKDIpLFJlKCJuZ0lmIixkLmZpbHRlciksQ2UoNiksUmUoImNsckxvYWRpbmciLGQuc3VibWl0TG9hZGluZyksQ2UoMiksUmUoImNsck1vZGFsT3BlbiIsZC5xdWVyeUVyciksQ2UoNSksb3IoZC5xdWVyeUVy'@; put 'ck1lc3NhZ2UpLENlKDYpLFJlKCJjbHJNb2RhbE9wZW4iLGQuZGlzY2FyZFNvdXJjZUZpbGUpKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksQ2UoNiksb3IoZC5maWxlbmFtZSksQ2UoNyksUmUoImNsck1vZGFsT3BlbiIsZC5maWxlUGFzc3dvcmRNb2RhbCko'@; put 'ImNsck1vZGFsU2l6ZSIsIm1kIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSxDZSg5KSxSZSgibmdJZiIsZC5maWxlVW5sb2NrRXJyb3IpLENlKDMpLFJlKCJkaXNhYmxlZCIsaC52YWx1ZS5sZW5ndGg8MSksQ2UoMiksUmUoImNsck1vZGFsT3BlbiIsZC5tYW51YWxGaWxlRWRpdE1vZGFsKSgi'@; put 'Y2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLENlKDYpLG9yKGQuZmlsZW5hbWUpLENlKDcpLFJlKCJvcGVuIixkLmRhdGFzZXRJbmZvKSgiZHNtZXRhIixkLmRzbWV0YSksQ2UoMSksUmUoInZpZXdib3hNb2RhbCIsZC52aWV3Ym94ZXMpfX0sZGVwZW5kZW5jaWVz'@; put 'Olt4c2UsZGMseHMsWmksV2EsbEUsQnMsT3MsQnUsa2Esb3Usc3UsWnUsYzIsZGgsVXMsWEYsdHdlLEtGLGpiLFViLHpiLHh5LFU3LFliLEVzZSxrc2UsQXNlLGpFLGNVLGFVZSxjVWUsdVVlLERzZV0sc3R5bGVzOlsiLmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MDtib3Jk'@; put 'ZXI6MH0uYnV0dG9uQmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweCAxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcn0udGVzdFJlZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDAsMCwuOCkhaW1wb3J0YW50fWhvdC10YWJsZVtfbmdjb250'@; put 'ZW50LSVDT01QJV0gICAgIC5maXJzdENvbHVtbkhlYWRlclN0eWxlIGJ1dHRvbi5jaGFuZ2VUeXBle2Rpc3BsYXk6bm9uZX1ob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICAuaGFuZHNvbnRhYmxlIHRib2R5IHRoLmh0X19oaWdobGlnaHQucHJpbWFyeUtleUhlYWRlclN0eWxlLCBo'@; put 'b3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICAuaGFuZHNvbnRhYmxlIHRoZWFkIHRoLmh0X19oaWdobGlnaHQucHJpbWFyeUtleUhlYWRlclN0eWxle2JhY2tncm91bmQ6cmdiYSg0OCwxMDcsMCwuNjkwMTk2MDc4NCl9aG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnBy'@; put 'aW1hcnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kOnJnYmEoNDgsMTA3LDAsLjQzMTM3MjU0OSl9aG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgdGgucmVhZG9ubHlDZWxsIGRpdntvcGFjaXR5Oi40fWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIHRkLnJlYWRvbmx5'@; put 'Q2VsbHtvcGFjaXR5Oi41fS5pbmZvQmFyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjE0cHg7YmFja2dyb3VuZDojNDk1OTY3O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozcHg7Zm9udC1zaXplOjE2cHg7aGVpZ2h0OjMwcHg7dGV4dC1vdmVyZmxvdzplbGxp'@; put 'cHNpcztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5pbmZvQmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjgwJX0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7aGVpZ2h0OnVuc2V0O3doaXRlLXNwYWNlOm5v'@; put 'cm1hbH0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV06aG92ZXIgICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDp1bnNldH0ucGtIZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6IzY4NzY4Mjtjb2xvcjojZmZmO21hcmdpbjotMXB4fS5oZWFkZXJCYXJbX25nY29u'@; put 'dGVudC0lQ09NUCVde2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOiNmZmZmZmY7YmFja2dyb3VuZDojZjVmNmZlfS5lcnJvci1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDozMHB4O2hlaWdodDozMHB4O2NvbG9yOnJlZH0uYnRuQ3RybFtfbmdjb250ZW50LSVDT01QJV17ZGlz'@; put 'cGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5oaWRkZW5bX25nY29udGVudC0lQ09NUCVde3Zpc2liaWxpdHk6aGlkZGVufS5teS1kcm9wLXpvbmVbX25n'@; put 'Y29udGVudC0lQ09NUCVde2JvcmRlcjpzb2xpZCAxcHggbGlnaHRncmF5O2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOndoaXRlc21va2U7Ym94LXNoYWRvdzppbnNldCAwIDAgNHB4IDJweCAjYTdhNWE1MmI7aGVpZ2h0OjUwdmh9Lm52LWZpbGUtb3Zlcltfbmdjb250ZW50LSVDT01Q'@; put 'JV17Ym9yZGVyOnNvbGlkIDJweCBncmVlbn0uZmlsZS1kcm9wLXRleHRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsucHJvZ3Jlc1N0YXRpY1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDo5cHgh'@; put 'aW1wb3J0YW50fS5wcm9ncmVzc1tfbmdjb250ZW50LSVDT01QJV0sIC5wcm9ncmVzcy1zdGF0aWNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOmNhbGMoMTAwJSAtIDE0cHgpfX0uaG90RWRpdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhjZWwtcGFyc2luZ1tf'@; put 'bmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LmV4Y2VsLXBhcnNpbmdbX25nY29udGVudC0lQ09NUCVdICAgLmRldGFpbHNbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowO3Bv'@; put 'c2l0aW9uOmFic29sdXRlO3RvcDotNDVweH0uZWRpdC1yZWNvcmQtc3Bpbm5lcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuNik7cG9zaXRpb246YWJz'@; put 'b2x1dGU7dG9wOjA7Ym90dG9tOjA7d2lkdGg6MTAwJTt6LWluZGV4OjUwMH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCl7LnByb2dyZXNTdGF0aWNbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MzJweCFpbXBvcnRhbnR9LmNhcmQtYmxvY2tbX25nY29udGVudC0l'@; put 'Q09NUCVdLCAuY2FyZC1mb290ZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MTBweCAwIDB9fS5jb250ZW50LWFyZWFbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MCAuOHJlbSAuOHJlbSFpbXBvcnRhbnQ7cGFkZGluZy10b3A6MH0uZHJvcC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAl'@; put 'XXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoxcHg7Ym9yZGVyOjJweCBkYXNoZWQgI2ZmZjt6LWluZGV4Oi0xfS5kcm9wLWFyZWFbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17Zm9u'@; put 'dC1zaXplOjIwcHg7bWFyZ2luLXRvcDoyMHB4O2NvbG9yOiNmZmZ9I3N1Ym1pdEJ0bltfbmdjb250ZW50LSVDT01QJV0sICNjYW5jZWxTdWJtaXRCdG5bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjE1MHB4fSJdfSksY30pKCk7Y29uc3QgclplPVt7cGF0aDoiOmxpYk1lbSIsY29tcG9uZW50'@; put 'OkpBfSx7cGF0aDoiOmxpYk1lbS86ZmlsdGVySWQiLGNvbXBvbmVudDpKQX0se3BhdGg6ImVkaXQtcmVjb3JkLzpsaWJNZW0iLGNvbXBvbmVudDpKQX0se3BhdGg6ImVkaXQtcmVjb3JkLzpsaWJNZW0vOmZpbHRlcklkIixjb21wb25lbnQ6SkF9XTtsZXQgaVplPSgoKT0+e2NsYXNzIGN7fXJl'@; put 'dHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W29vLGhjLmZvckNoaWxkKHJaZSksaGNdfSksY30pKCksUUE9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbb28sX3Usb28scWwsQzJdfSksY30pKCksb1plPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9bmdPbkRlc3Ryb3koKXt9'@; put 'fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtaG9tZS1yb3V0ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVu'@; put 'Y3Rpb24oYSxkKXsxJmEmJnF0KDAsInJvdXRlci1vdXRsZXQiKX0sZGVwZW5kZW5jaWVzOltmcF19KSxjfSkoKTtjb25zdCBzWmU9WyJzaWRlYmFyTmF2Il07ZnVuY3Rpb24gYVplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYSIsMTgpLHh0KCJjbGljayIsZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gQnQoYSksanQoVmUoMykubmF2aWdhdGVUb1ZpZXdlcigpKX0pLE5lKDEsIkRhdGEiKSx5ZSgpfX1mdW5jdGlvbiBsWmUoYyxsKXsxJmMmJihtZSgwLCJhIiwxOSksTmUoMSwiQVBJIEV4cGxvcmVyIikseWUoKSl9ZnVuY3Rpb24gY1plKGMsbCl7MSZjJiYobWUoMCwiYSIsMjApLE5l'@; put 'KDEsIkxpbmVhZ2UiKSx5ZSgpKX1mdW5jdGlvbiB1WmUoYyxsKXsxJmMmJihtZSgwLCJhIiwyMSksTmUoMSwiTWV0YWRhdGEiKSx5ZSgpKX1mdW5jdGlvbiBkWmUoYyxsKXsxJmMmJihtZSgwLCJhIiwyMiksTmUoMSwiIFVzZXJzIikseWUoKSl9ZnVuY3Rpb24gaFplKGMsbCl7MSZjJiYobWUo'@; put 'MCwiYSIsMjMpLE5lKDEsIlN1Ym1pdHRlZCIpLHllKCkpfWZ1bmN0aW9uIGZaZShjLGwpezEmYyYmKG1lKDAsImEiLDI0KSxOZSgxLCJUbyBBcHByb3ZlIikseWUoKSl9ZnVuY3Rpb24gcFplKGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiKSxKZSgxLGFaZSwyLDAsImEi'@; put 'LDExKSxKZSgyLGxaZSwyLDAsImEiLDEyKSxKZSgzLGNaZSwyLDAsImEiLDEzKSxKZSg0LHVaZSwyLDAsImEiLDE0KSxKZSg1LGRaZSwyLDAsImEiLDE1KSxKZSg2LGhaZSwyLDAsImEiLDE2KSxKZSg3LGZaZSwyLDAsImEiLDE3KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUo'@; put 'Im5nSWYiLGEuaXNNYWluUm91dGUoInZpZXciKSksQ2UoMSksUmUoIm5nSWYiLGEuaXNNYWluUm91dGUoInZpZXciKSYmIlNBU1ZJWUEiPT09YS5zZXJ2ZXJUeXBlKSxDZSgxKSxSZSgibmdJZiIsYS5pc01haW5Sb3V0ZSgidmlldyIpJiYiU0FTOSI9PT1hLnNlcnZlclR5cGUpLENlKDEpLFJl'@; put 'KCJuZ0lmIixhLmlzTWFpblJvdXRlKCJ2aWV3IikmJiJTQVM5Ij09PWEuc2VydmVyVHlwZSksQ2UoMSksUmUoIm5nSWYiLGEuaXNNYWluUm91dGUoInZpZXciKSksQ2UoMSksUmUoIm5nSWYiLGEuaXNNYWluUm91dGUoImFwcHJvdmUiKSksQ2UoMSksUmUoIm5nSWYiLGEuaXNNYWluUm91dGUo'@; put 'ImFwcHJvdmUiKSl9fWZ1bmN0aW9uIGdaZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsNykoMSwiY2xyLWRyb3Bkb3duIikoMiwiYnV0dG9uIiw4KSxOZSgzKSxxdCg0LCJjbHItaWNvbiIsOSkseWUoKSxKZSg1LHBaZSw4LDcsImNsci1kcm9wZG93bi1tZW51IiwxMCkseWUoKSgpKSwyJmMp'@; put 'e2NvbnN0IGE9VmUoKTtDZSgzKSxncigiICIsYS5nZXRTdWJQYWdlKCksIiAiKX19ZnVuY3Rpb24gbVplKGMsbCl7MSZjJiZxdCgwLCJjbHItdGFiLWNvbnRlbnQiKX1mdW5jdGlvbiB2WmUoYyxsKXsxJmMmJnF0KDAsImNsci10YWItY29udGVudCIpfWNvbnN0IF9aZT1mdW5jdGlvbigpe3Jl'@; put 'dHVyblsiL3ZpZXcvdXNlcm5hdi9yb2xlcyJdfTtmdW5jdGlvbiBiWmUoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdGFiIikoMSwiYnV0dG9uIiwyNikoMiwicCIsMjcpLHF0KDMsImNsci1pY29uIiwzMiksTmUoNCwiIFJvbGVzICIpLHllKCkoKSxKZSg1LHZaZSwxLDAsImNsci10YWItY29u'@; put 'dGVudCIsMzApLHllKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgxKSxSZSgicm91dGVyTGluayIsJHMoMixfWmUpKSxDZSg0KSxSZSgiY2xySWZBY3RpdmUiLGEuaXNNYWluUm91dGUoIi92aWV3L3VzZXJuYXYvcm9sZXMiKSl9fWNvbnN0IHlaZT1mdW5jdGlvbigpe3JldHVyblsiL3ZpZXcv'@; put 'dXNlcm5hdi91c2VycyJdfSx3WmU9ZnVuY3Rpb24oKXtyZXR1cm5bIi92aWV3L3VzZXJuYXYvZ3JvdXBzIl19O2Z1bmN0aW9uIENaZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10YWJzIiwyNSkoMSwiY2xyLXRhYiIpKDIsImJ1dHRvbiIsMjYpKDMsInAiLDI3KSxxdCg0LCJjbHItaWNvbiIs'@; put 'MjgpLE5lKDUsIiBVc2VycyIpLHllKCkoKSxxdCg2LCJjbHItdGFiLWNvbnRlbnQiKSx5ZSgpLG1lKDcsImNsci10YWIiKSg4LCJidXR0b24iLDI2KSg5LCJwIiwyNykscXQoMTAsImNsci1pY29uIiwyOSksTmUoMTEsIiBHcm91cHMiKSx5ZSgpKCksSmUoMTIsbVplLDEsMCwiY2xyLXRhYi1j'@; put 'b250ZW50IiwzMCkseWUoKSxKZSgxMyxiWmUsNiwzLCJjbHItdGFiIiwzMSkseWUoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMiksUmUoInJvdXRlckxpbmsiLCRzKDQseVplKSksQ2UoNiksUmUoInJvdXRlckxpbmsiLCRzKDUsd1plKSksQ2UoNCksUmUoImNscklmQWN0aXZlIixhLmlzTWFp'@; put 'blJvdXRlKCIvdmlldy91c2VybmF2L2dyb3VwcyIpKSxDZSgxKSxSZSgibmdJZiIsIlNBUzkiPT09YS5zZXJ2ZXJUeXBlKX19ZnVuY3Rpb24gU1plKGMsbCl7MSZjJiYobWUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiKSgxLCJhIiwzMyksTmUoMiwiVGFibGVzIikseWUoKSxtZSgzLCJhIiwzNCks'@; put 'TmUoNCwiRmlsZXMiKSx5ZSgpKCkpfWZ1bmN0aW9uIE1aZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsNykoMSwiY2xyLWRyb3Bkb3duIikoMiwiYnV0dG9uIiw4KSxOZSgzKSxxdCg0LCJjbHItaWNvbiIsOSkseWUoKSxKZSg1LFNaZSw1LDAsImNsci1kcm9wZG93bi1tZW51IiwxMCkseWUo'@; put 'KSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgzKSxncigiICIsYS5nZXRTdWJQYWdlKCksIiAiKX19Y29uc3QgeFplPVsiKiJdO2xldCBuMz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9yb3V0ZXI9YSx0aGlzLmV2ZW50U2VydmljZT1kLHRoaXMuX3Nhc1NlcnZpY2U9'@; put 'aCx0aGlzLnNjcm9sbGVkVG9Cb3R0b209bmV3IEVyLHRoaXMuc2lkZWJhck9wZW49ITAsdGhpcy5zaWRlYmFyV2lkdGg9bnVsbCx0aGlzLnNpZGViYXJNYXhXaWR0aD1udWxsLHRoaXMucmVzaXppbmc9ITEsdGhpcy5zYXNqc0NvbmZpZz1uZXcgcjEuU0FTanNDb25maWcsdGhpcy5zYXNqc0Nv'@; put 'bmZpZz10aGlzLl9zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksdGhpcy5zZXJ2ZXJUeXBlPXRoaXMuX3Nhc1NlcnZpY2UuZ2V0U2VydmVyVHlwZSgpfW5nT25Jbml0KCl7dGhpcy5ldmVudFNlcnZpY2Uub25TaWRlYmFyVG9nZ2xlLnN1YnNjcmliZShhPT57dGhpcy5zaWRlYmFyT3Blbj1h'@; put 'P2Eub3BlbjohdGhpcy5zaWRlYmFyT3Blbix0aGlzLmV2ZW50U2VydmljZS5kaXNwYXRjaEV2ZW50KCJyZXNpemUiKX0pfW9uVHJlZVNjcm9sbChhKXtsZXQgZD1hLnRhcmdldDtkLnNjcm9sbFRvcD49ZC5zY3JvbGxIZWlnaHQtZC5vZmZzZXRIZWlnaHQtMTAmJnRoaXMuc2Nyb2xsZWRUb0Jv'@; put 'dHRvbS5lbWl0KCl9aXNNYWluUm91dGUoYSl7cmV0dXJuIHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMoYSl9Z2V0U3ViUGFnZSgpe3JldHVybiB0aGlzLl9yb3V0ZXIudXJsLnNwbGl0KCIvIilbMl19bmF2aWdhdGVUb1ZpZXdlcigpe0duLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSIiLHRo'@; put 'aXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIil9cmVzaXplU3RhcnQoKXt0aGlzLnJlc2l6aW5nPSEwLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uc3R5bGUuY3NzVGV4dD0idXNlci1zZWxlY3Q6IG5vbmUifXJlc2l6ZUVuZCgpe3RoaXMucmVz'@; put 'aXppbmc9ITEsZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXS5zdHlsZS5jc3NUZXh0PSIifW9uTW91c2VNb3ZlKGEpe2lmKHRoaXMucmVzaXppbmcpe3RoaXMuc2lkZWJhcldpZHRoPWEuY2xpZW50WDtsZXQgZD1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1l'@; put 'KCJuYXYtdHJlZSIpWzBdO3RoaXMuc2lkZWJhcldpZHRoJiZ0aGlzLmlzT3ZlcmZsb3duKGQpJiYodGhpcy5zaWRlYmFyTWF4V2lkdGg9dGhpcy5zaWRlYmFyV2lkdGg+PTM3NT90aGlzLnNpZGViYXJXaWR0aCsxMDp0aGlzLnNpZGViYXJNYXhXaWR0aCl9fW9uTW91c2VVcChhKXt0aGlzLnJl'@; put 'c2l6aW5nJiZ0aGlzLnJlc2l6ZUVuZCgpfWlzT3ZlcmZsb3duKGEpe3JldHVybiBhLnNjcm9sbFdpZHRoPmEuY2xpZW50V2lkdGh9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KERzKSx0dCh2bCksdHQob2EpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5'@; put 'cGU6YyxzZWxlY3RvcnM6W1siYXBwLXNpZGViYXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZSbyhzWmUsNSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5zaWRlYmFyTmF2PWguZmlyc3QpfX0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZ4dCgibW91c2Vt'@; put 'b3ZlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbk1vdXNlTW92ZShmKX0sMCxmZikoIm1vdXNldXAiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uTW91c2VVcChmKX0sITEsZmYpfSxvdXRwdXRzOntzY3JvbGxlZFRvQm90dG9tOiJzY3JvbGxlZFRvQm90dG9tIn0sbmdDb250ZW50U2VsZWN0b3Jz'@; put 'OnhaZSxkZWNsczo5LHZhcnM6MTMsY29uc3RzOltbImlkIiwic2lkZWJhck5hdiJdLFsic2lkZWJhck5hdiIsIiJdLFsiY2xhc3MiLCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBzdWItZHJvcGRvd24iLDQsIm5nSWYiXSxbImNsYXNzIiwicC0xMCIsNCwibmdJZiJdLFsxLCJuYXYt'@; put 'ZGl2aWRlciJdLFsxLCJuYXYtdHJlZSIsMywic2Nyb2xsIl0sWzEsInJlc2l6ZS1oYW5kbGUiLDMsIm1vdXNlZG93biJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwic3ViLWRyb3Bkb3duIl0sWyJjbHJEcm9wZG93blRyaWdnZXIiLCIiLDEsImRyb3Bkb3duLXRvZ2ds'@; put 'ZSIsImJ0biIsImJ0bi1saW5rIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwiY2xySWZPcGVuIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVy'@; put 'TGluayIsIi92aWV3L3ZpeWEtYXBpLWV4cGxvcmVyIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L2xpbmVhZ2UiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJj'@; put 'bHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvbWV0YWRhdGEiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdiIsInJvdXRlckxpbmtBY3RpdmUiLCJh'@; put 'Y3RpdmUiLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvcmV2aWV3L2FwcHJvdmUvc3VibWl0dGVkIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi9yZXZp'@; put 'ZXcvYXBwcm92ZS90b2FwcHJvdmUiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwzLCJjbGljayJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92'@; put 'aWV3L3ZpeWEtYXBpLWV4cGxvcmVyIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L2xpbmVhZ2UiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0'@; put 'ZXJMaW5rIiwiL3ZpZXcvbWV0YWRhdGEiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdiIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJv'@; put 'dXRlckxpbmsiLCIvcmV2aWV3L2FwcHJvdmUvc3VibWl0dGVkIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi9yZXZpZXcvYXBwcm92ZS90b2FwcHJvdmUiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl0sWzEs'@; put 'InAtMTAiXSxbImNsclRhYkxpbmsiLCIiLDEsInVzZXItbmF2LWJ0biIsMywicm91dGVyTGluayJdLFsxLCJ6ZXJvLW1hcmdpbiJdLFsic2hhcGUiLCJ1c2VyIl0sWyJzaGFwZSIsInVzZXJzIl0sWzQsImNscklmQWN0aXZlIl0sWzQsIm5nSWYiXSxbInNoYXBlIiwiYmxvY2tzLWdyb3VwIl0s'@; put 'WyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL2hvbWUvdGFibGVzIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi9ob21lL2ZpbGVzIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdXSx0'@; put 'ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEFpKCksbWUoMCwiY2xyLXZlcnRpY2FsLW5hdiIsMCwxKSxKZSgyLGdaZSw2LDEsImRpdiIsMiksSmUoMyxDWmUsMTQsNiwiY2xyLXRhYnMiLDMpLEplKDQsTVplLDYsMSwiZGl2IiwyKSxxdCg1LCJkaXYiLDQpLG1lKDYsImRpdiIsNSkseHQo'@; put 'InNjcm9sbCIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25UcmVlU2Nyb2xsKGYpfSksa3IoNykseWUoKSxtZSg4LCJzcGFuIiw2KSx4dCgibW91c2Vkb3duIixmdW5jdGlvbigpe3JldHVybiBkLnJlc2l6ZVN0YXJ0KCl9KSx5ZSgpKCkpLDImYSYmKEh1KCJ3aWR0aCIsZC5zaWRlYmFyV2lkdGgs'@; put 'InB4IikoIm1heC13aWR0aCIsZC5zaWRlYmFyTWF4V2lkdGgsInB4IiksZHIoImNsb3NlZCIsIWQuc2lkZWJhck9wZW4pKCJyZXNpemluZyIsZC5yZXNpemluZyksQ2UoMiksUmUoIm5nSWYiLGQuaXNNYWluUm91dGUoInZpZXciKSksQ2UoMSksUmUoIm5nSWYiLGQuaXNNYWluUm91dGUoInZp'@; put 'ZXcvdXNlcm5hdiIpKSxDZSgxKSxSZSgibmdJZiIsZC5pc01haW5Sb3V0ZSgiaG9tZSIpKSxDZSg0KSxkcigicmVzaXppbmciLGQucmVzaXppbmcpKX0sZGVwZW5kZW5jaWVzOltaaSxrYSxFOCxjMixMcCxPcCxkZyxScCxJcCxjZyxaUSxZUSxOZixhZyxsZyxCdSxHX10sc3R5bGVzOlsiY2xy'@; put 'LXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MjcycHg7bWluLXdpZHRoOjI3MnB4O2hlaWdodDoxMDAlO21heC13aWR0aDozNzVweDtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2hhZG93OjAgMCA1cHggIzAwMDAwMDFmO2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRh'@; put 'bnR9Y2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV0gICAuc3VuLWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OjM2cHh9Y2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LXRyZWVbX25nY29udGVudC0lQ09NUCVde2hlaWdodDox'@; put 'MDAlO292ZXJmbG93LXk6YXV0b31jbHItdmVydGljYWwtbmF2LmNsb3NlZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6LTI3MnB4fWNsci12ZXJ0aWNhbC1uYXZbX25nY29udGVudC0lQ09NUCVdICAgLnJlc2l6ZS1oYW5kbGVbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFi'@; put 'c29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0Oi0zcHg7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCAjODBiNDQxO2N1cnNvcjpjb2wtcmVzaXplO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAuMXMgZWFzZS1pbi1vdXR9Y2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV0gICAucmVz'@; put 'aXplLWhhbmRsZVtfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7b3BhY2l0eTouNX1jbHItdmVydGljYWwtbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZXNpemUtaGFuZGxlLnJlc2l6aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9Y2xyLXZlcnRpY2FsLW5hdi5yZXNpemluZ1tf'@; put 'bmdjb250ZW50LSVDT01QJV17dHJhbnNpdGlvbjpub25lIWltcG9ydGFudH0ubmF2LWRpdmlkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2JvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDM7bWFyZ2luLWJvdHRvbTowfS5wYWdlLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJn'@; put 'aW46MDtmb250LXNpemU6MThweDt0ZXh0LWFsaWduOmNlbnRlcn0uemVyby1tYXJnaW5bX25nY29udGVudC0lQ09NUCVde21hcmdpbjowfS51c2VyLW5hdi1idG5bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MCAycHh9I3NpZGViYXJOYXZbX25nY29udGVudC0lQ09NUCVde3otaW5kZXg6'@; put 'MjAwfUBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCl7I3NpZGViYXJOYXZbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3RvcDowfX0iXX0pLGN9KSgpO2Z1bmN0aW9uIEVaZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDEyKX1mdW5jdGlvbiBrWmUoYyxs'@; put 'KXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItaWNvbiIsMTMpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpO3JldHVybiBoLmxpYnJhcmllc1NlYXJjaD0iIixqdChoLmxpYnJhcnlPbkZpbHRlcigpKX0pLHllKCl9fWZ1bmN0aW9uIEFaZShjLGwpe2lm'@; put 'KDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDgsOSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLmxpYnJhcmllc1NlYXJjaD1oKX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gQnQoYSksanQoVmUoKS5saWJyYXJ5T25GaWx0ZXIoKSl9KSx5ZSgpLEplKDQsRVplLDEsMCwiY2xyLWljb24iLDEwKSxKZSg1LGtaZSwxLDAsImNsci1pY29uIiwxMSkseWUoKSgpfWlmKDImYyl7Y29uc3QgYT0kaSgzKSxkPVZlKCk7Q2UoMiksUmUoIm5nTW9kZWwiLGQubGlicmFyaWVz'@; put 'U2VhcmNoKSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBUWmUoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwxMil9ZnVuY3Rpb24gRFplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwi'@; put 'Y2xyLWljb24iLDEzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSksVmUoKTtjb25zdCBoPSRpKDMpLGY9VmUoMikuJGltcGxpY2l0LF89VmUoKTtyZXR1cm4gaC52YWx1ZT0iIixmLnNlYXJjaFN0cmluZz0iIixqdChfLnRyZWVPbkZpbHRlcihmLCJ0YWJsZXMiKSl9KSx5ZSgpfX1mdW5j'@; put 'dGlvbiBJWmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0IiwxOCwxOSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgyKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPWgp'@; put 'fSkoImtleXVwIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMikuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLnRyZWVPbkZpbHRlcihoLCJ0YWJsZXMiKSl9KSx5ZSgpLEplKDQsVFplLDEsMCwiY2xyLWljb24iLDEwKSxKZSg1LERaZSwxLDAsImNsci1pY29uIiwxMSkseWUoKSgpfWlm'@; put 'KDImYyl7Y29uc3QgYT0kaSgzKSxkPVZlKDIpLiRpbXBsaWNpdDtDZSgyKSxSZSgibmdNb2RlbCIsZC5zZWFyY2hTdHJpbmcpLENlKDIpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aDwxKSxDZSgxKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIExaZShjLGwpezEmYyYm'@; put 'cXQoMCwiY2xyLWljb24iLDI2KX1mdW5jdGlvbiBSWmUoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwyNyl9ZnVuY3Rpb24gT1plKGMsbCl7MSZjJiYobWUoMCwic3BhbiIpLE5lKDEsIiBUbyB1bmxvY2sgYWxsIHRhYmxlcywgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvICIp'@; put 'LHllKCkpfWZ1bmN0aW9uIFBaZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10b29sdGlwLWNvbnRlbnQiLDI4KSxKZSgxLE9aZSwyLDAsInNwYW4iLDI5KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS5uZ1ZhcjtDZSgxKSxSZSgibmdJZiIsYSl9fWZ1bmN0aW9uIEZaZShjLGwpe2lmKDEmYyl7'@; put 'Y29uc3QgYT1WbigpO21lKDAsImNsci10b29sdGlwIikoMSwiYnV0dG9uIiwyMSkseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkubmdWYXIsXz1WZSgpLiRpbXBsaWNpdCxUPVZlKDIpLiRpbXBsaWNpdCxXPVZlKCk7cmV0dXJuIGp0KGY/IiI6Vy5vblRhYmxlQ2xpY2soXyxU'@; put 'KSl9KSxWcigyLDIyKSxKZSgzLExaZSwxLDAsImNsci1pY29uIiwyMyksSmUoNCxSWmUsMSwwLCJjbHItaWNvbiIsMjQpLHpyKCksTmUoNSkseWUoKSxKZSg2LFBaZSwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDI1KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1sLm5nVmFyLGQ9VmUoKS4kaW1w'@; put 'bGljaXQsaD1WZSgyKS4kaW1wbGljaXQsZj1WZSgpO0NlKDEpLGRyKCJkYy1sb2NrZWQtY29udHJvbCIsYSkoInRhYmxlLWFjdGl2ZSIsZi5saWJUYWJBY3RpdmUoaC5MSUJSQVJZUkVGLGQpKSxDZSgxKSxSZSgibmdTd2l0Y2giLGQuaW5jbHVkZXMoIi1GQyIpKSxDZSgxKSxSZSgibmdTd2l0'@; put 'Y2hDYXNlIiwhMCksQ2UoMSksUmUoIm5nU3dpdGNoQ2FzZSIsITEpLENlKDEpLGdyKCIgIixkLnJlcGxhY2UoIi1GQyIsIiIpLCIgIil9fWZ1bmN0aW9uIEhaZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10cmVlLW5vZGUiKSxKZSgxLEZaZSw3LDgsImNsci10b29sdGlwIiwyMCkseWUoKSks'@; put 'MiZjKXtjb25zdCBhPWwuaW5kZXgsZD1WZSgzKTtDZSgxKSxSZSgibmdWYXIiLGErMT5kLmxpY2VuY2VTdGF0ZS52YWx1ZS50YWJsZXNfaW5fbGlicmFyeV9saW1pdCl9fWZ1bmN0aW9uIE5aZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDE1KSx4dCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKGgpe0J0KGEpO2NvbnN0IGY9VmUoKS4kaW1wbGljaXQsXz1WZSgpO3JldHVybiBfLnRyZWVOb2RlQ2xpY2tlZChoLGYpLGp0KF8ubGliPWYuTElCUkFSWVJFRil9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLiRp'@; put 'bXBsaWNpdC5leHBhbmRlZD1oKX0pLG1lKDEsInAiLDE2KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpLiRpbXBsaWNpdCxmPVZlKCk7cmV0dXJuIGYubGliPWguTElCUkFSWVJFRixqdChmLmxpYnJhcnlPbkNsaWNrKGguTElCUkFSWVJFRixoKSl9KSxxdCgyLCJj'@; put 'bHItaWNvbiIsMTcpLE5lKDMpLHllKCksSmUoNCxJWmUsNiwzLCJjbHItdHJlZS1ub2RlIiwwKSxKZSg1LEhaZSwyLDEsImNsci10cmVlLW5vZGUiLDEpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0O2RyKCJjbHItZXhwYW5kZWQiLGEuZXhwYW5kZWQpLFJlKCJjbHJFeHBh'@; put 'bmRlZCIsYS5leHBhbmRlZCkoImNsckxvYWRpbmciLGEubG9hZGluZ1RhYmxlcyYmIWEudGFibGVzKSxDZSgzKSxncigiICIsYS5MSUJSQVJZUkVGLCIgIiksQ2UoMSksUmUoIm5nSWYiLGEudGFibGVzKSxDZSgxKSxSZSgibmdGb3JPZiIsYS50YWJsZXMpfX1mdW5jdGlvbiBWWmUoYyxsKXtp'@; put 'ZigxJmMmJihWcigwKSxKZSgxLE5aZSw2LDcsImNsci10cmVlLW5vZGUiLDE0KSx6cigpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMSksUmUoIm5nSWYiLCFhLmhpZGRlbil9fWZ1bmN0aW9uIEJaZShjLGwpezEmYyYmKG1lKDAsImRpdiIsMzApKDEsImRpdiIsMzEpKDIsInNwYW4i'@; put 'LDMyKSxOZSgzLCIgTG9hZGluZy4uLiAiKSx5ZSgpKCkoKSl9ZnVuY3Rpb24galplKGMsbCl7MSZjJiYobWUoMCwiaDMiLDM2KSxOZSgxLCIgUGxlYXNlIHNlbGVjdCBhIHRhYmxlICIpLHllKCkpfWZ1bmN0aW9uIHpaZShjLGwpezEmYyYmKG1lKDAsImgzIiwzNiksTmUoMSwiIE5vIEVkaXRh'@; put 'YmxlIFRhYmxlcyBDb25maWd1cmVkICIpLHllKCkpfWZ1bmN0aW9uIFVaZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMzMpLHF0KDEsImNsci1pY29uIiwzNCksSmUoMixqWmUsMiwwLCJoMyIsMzUpLEplKDMselplLDIsMCwiaDMiLDM1KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgy'@; put 'KSxSZSgibmdJZiIsKG51bGw9PWEudHJlZU5vZGVMaWJyYXJpZXM/bnVsbDphLnRyZWVOb2RlTGlicmFyaWVzLmxlbmd0aCk+MCksQ2UoMSksUmUoIm5nSWYiLChudWxsPT1hLnRyZWVOb2RlTGlicmFyaWVzP251bGw6YS50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPDEpfX1sZXQgWlplPSgo'@; put 'KT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQpe3RoaXMucm91dGU9YSx0aGlzLnJvdXRlcj1kLHRoaXMubGljZW5jZVNlcnZpY2U9aCx0aGlzLmhlbHBlclNlcnZpY2U9Zix0aGlzLmV2ZW50U2VydmljZT1fLHRoaXMuc2FzU2VydmljZT1ULHRoaXMudHJlZU5vZGVMaWJyYXJp'@; put 'ZXM9bnVsbCx0aGlzLmxpYnJhcmllc1NlYXJjaD0iIix0aGlzLmxpYj0iIix0aGlzLnRhYmxlPSIiLHRoaXMuZW5jb2Rpbmc9IlVURi04Iix0aGlzLmxvYWRpbmc9ITAsdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGV9Y29sbGFwc2VMaWJyYXJ5SXRl'@; put 'bXMoYSxkKXthLmZvckVhY2goaD0+e2guTElCUkFSWUlEIT09ZC5MSUJSQVJZSUQmJihoLmV4cGFuZGVkPSExKX0pfXRyZWVOb2RlQ2xpY2tlZChhLGQpeyJDb2xsYXBzZSI9PT1hLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZUxpYnJhcnlJdGVtcyh0aGlzLmxpYnJhcmllcyxkKX1saWJy'@; put 'YXJ5T25DbGljayhhLGQpe2QuZXhwYW5kZWQ9IWQuZXhwYW5kZWQsZC5leHBhbmRlZCYmIXRoaXMudGFibGUmJnRoaXMuc2VsZWN0TGlicmFyeShhLCExLGQpLHRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsZCl9c2VsZWN0TGlicmFyeShhLGQsaCl7aC5sb2FkaW5n'@; put 'VGFibGVzPSEwO2xldCBmLF89W107aWYodGhpcy5saWJzQW5kVGFibGVzJiYoZj10aGlzLmxpYnNBbmRUYWJsZXNbYV0sdGhpcy50YWJsZT12b2lkIDAsIlBsZWFzZSBzZWxlY3QgbGlicmFyeSIhPT1hKSl7bGV0IFQ9Zi5maWx0ZXIoZnVuY3Rpb24oVyl7cmV0dXJuLTE9PT1fLmluZGV4T2Yo'@; put 'VykmJihfLnB1c2goVyksITApfSk7dGhpcy50YWJsZXM9VCxHbi5lZGl0b3IubGlicmFyaWVzPXRoaXMubGlicmFyaWVzfUduLmVkaXRvci5saWJyYXJ5PWEsZHx8dGhpcy5jbGVhckdsb2JhbHNGaWx0ZXIoKSxoLmxvYWRpbmdUYWJsZXM9ITEsaC5leHBhbmRlZD0hMH1zZWxlY3RUYWJsZShh'@; put 'LGQpe3ZhciBoPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2gubGliVGFiPWgubGliKyIuIitoLnRhYmxlLGguc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLEduLmVkaXRvci50YWJsZT1hLGR8fGguY2xlYXJHbG9iYWxzRmlsdGVyKCl9KSgpfWNsZWFyR2xvYmFsc0ZpbHRlcigpe0du'@; put 'LmVkaXRvci5maWx0ZXIubGliZHM9IiIsR24uZWRpdG9yLmZpbHRlci53aGVyZUNsYXVzZT0iIixHbi5lZGl0b3IuZmlsdGVyLmdyb3VwTG9naWM9IiIsR24uZWRpdG9yLmZpbHRlci5jbGF1c2VzPVtdLEduLmVkaXRvci5maWx0ZXIudmFscz1bXSxHbi5lZGl0b3IuZmlsdGVyLmNvbHM9W119'@; put 'bGliVGFiQWN0aXZlKGEsZCl7cmV0dXJuISghdGhpcy5saWJ8fCF0aGlzLnRhYmxlKSYmYT09PXRoaXMubGliJiZkPT09dGhpcy50YWJsZX10cmVlT25GaWx0ZXIoYSxkKXt0aGlzLmhlbHBlclNlcnZpY2UudHJlZU9uRmlsdGVyKGEsZCl9bGlicmFyeU9uRmlsdGVyKCl7dGhpcy5oZWxwZXJT'@; put 'ZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLnRyZWVOb2RlTGlicmFyaWVzLHRoaXMubGlicmFyaWVzU2VhcmNoLCJMSUJSQVJZUkVGIiksR24ubGluZWFnZS5saWJyYXJpZXNTZWFyY2g9dGhpcy5saWJyYXJpZXNTZWFyY2h9b25UYWJsZUNsaWNrKGEsZCl7dGhpcy50YWJsZT1hLHRoaXMu'@; put 'bGliPWQuTElCUkFSWVJFRix0aGlzLnNlbGVjdFRhYmxlKGEpLHRoaXMuZWRpdFRhYmxlKCl9ZWRpdFRhYmxlKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvZWRpdG9yLyIrdGhpcy5saWIrIi4iK3RoaXMudGFibGUpfWdldExpYnJhcnlUYWJsZVN0YXRlKCl7aWYobnVsbCE9PUduLmVk'@; put 'aXRvci50cmVlTm9kZUxpYnJhcmllcyYmKHRoaXMudHJlZU5vZGVMaWJyYXJpZXM9R24uZWRpdG9yLnRyZWVOb2RlTGlicmFyaWVzKSwiIiE9PUduLmVkaXRvci5saWJyYXJ5KXt0aGlzLmxpYj1Hbi5lZGl0b3IubGlicmFyeTtsZXQgYT1udWxsO3RoaXMudHJlZU5vZGVMaWJyYXJpZXMmJihh'@; put 'PXRoaXMudHJlZU5vZGVMaWJyYXJpZXMuZmluZChkPT5kLkxJQlJBUllSRUY9PT10aGlzLmxpYikpLHRoaXMuc2VsZWN0TGlicmFyeShHbi5lZGl0b3IubGlicmFyeSwhMCxhKX19Z2V0RnJvbUdsb2JhbHMoKXt0aGlzLmxpYnNBbmRUYWJsZXM9R24uZWRpdG9yLmxpYnNBbmRUYWJsZXMsdGhp'@; put 'cy5saWJyYXJpZXM9R24uZWRpdG9yLmxpYnJhcmllcyx0aGlzLmdldExpYnJhcnlUYWJsZVN0YXRlKCksdGhpcy5sb2FkaW5nPSExfW5nQWZ0ZXJDb250ZW50SW5pdCgpe0duLmVkaXRvci5zdGFydHVwU2V0P3RoaXMuZ2V0RnJvbUdsb2JhbHMoKTp0aGlzLmV2ZW50U2VydmljZS5vblN0YXJ0'@; put 'dXBEYXRhTG9hZGVkLnN1YnNjcmliZSgoKT0+e3RoaXMuZ2V0RnJvbUdsb2JhbHMoKX0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChEcyksdHQoR2wpLHR0KEMwKSx0dChUYyksdHQodmwpLHR0KG9hKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBl'@; put 'OmMsc2VsZWN0b3JzOltbImhvbWUtY29tcG9uZW50Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo4LHZhcnM6NCxjb25zdHM6W1siY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1hcmVhIl0s'@; put 'WzEsImNhcmQtYmxvY2siXSxbImNsYXNzIiwic3Bpbm5lci13cmFwcGVyLWZ1bGxwYWdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxh'@; put 'Y2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMi'@; put 'LDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJFeHBhbmRl'@; put 'ZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJyYWNrLXNlcnZlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9j'@; put 'b21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoVHJlZUlucHV0IiwiIl0sWzQsIm5nVmFyIl0sWyJjbHJUb29sdGlwVHJpZ2dlciIsIiIsMSwiY2xyLXRyZWVub2RlLWxpbmsiLDMsImNsaWNrIl0sWzMsIm5nU3dpdGNoIl0sWyJzaGFw'@; put 'ZSIsImJvbHQiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic2hhcGUiLCJ0YWJsZSIsNCwibmdTd2l0Y2hDYXNlIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCIsImNsclNpemUiLCJsZyIsNCwiY2xySWZPcGVuIl0sWyJzaGFwZSIsImJvbHQiXSxbInNoYXBlIiwidGFibGUiXSxbImNsclBv'@; put 'c2l0aW9uIiwiYm90dG9tLXJpZ2h0IiwiY2xyU2l6ZSIsImxnIl0sWzQsIm5nSWYiXSxbMSwic3Bpbm5lci13cmFwcGVyLWZ1bGxwYWdlIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFy'@; put 'ZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBjb2xvci1ncmF5Iiw0LCJuZ0lmIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImFwcC1zaWRlYmFy'@; put 'IikoMSwiY2xyLXRyZWUiKSxKZSgyLEFaZSw2LDMsImNsci10cmVlLW5vZGUiLDApLEplKDMsVlplLDIsMSwibmctY29udGFpbmVyIiwxKSx5ZSgpKCksbWUoNCwiZGl2IiwyKSg1LCJkaXYiLDMpLEplKDYsQlplLDQsMCwiZGl2Iiw0KSxKZSg3LFVaZSw0LDIsImRpdiIsNSkseWUoKSgpKSwy'@; put 'JmEmJihDZSgyKSxSZSgibmdJZiIsKG51bGw9PWQudHJlZU5vZGVMaWJyYXJpZXM/bnVsbDpkLnRyZWVOb2RlTGlicmFyaWVzLmxlbmd0aCk+MCksQ2UoMSksUmUoIm5nRm9yT2YiLGQudHJlZU5vZGVMaWJyYXJpZXMpLENlKDMpLFJlKCJuZ0lmIixkLmxvYWRpbmcpLENlKDEpLFJlKCJuZ0lm'@; put 'IiwhZC5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbV2EsQnMsT3MsZGQsZzEsRHAsa2EsWnUsYzIsZjEsamIsVWIsemIsbjMseHMsWmksbmQsdGgsVTddLHN0eWxlczpbImNsci10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1z'@; put 'cGFjZTpub3dyYXB9LmNhcmQtYmxvY2tbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlO3BhZGRpbmc6MH0ubm8tdGFibGUtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxMDAlfSAgY2xyLWljb24uaXMtYmx1ZSwgICBjbHItaWNvbi5p'@; put 'cy1pbmZve2ZpbGw6IzZhOTIzNX0uc3Bpbm5lci13cmFwcGVyLWZ1bGxwYWdlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0iXX0pLGN9KSgpO2NvbnN0IFlaZT1j'@; put 'PT57Zm9yKGNvbnN0IGwgaW4gYylpZigiX19yb3dOdW1fXyIhPT1sKXJldHVybiExO3JldHVybiEwfSxkVT1jPT57Y29uc3QgYT1jLm1hdGNoKC9SXFsoXGQrKVxdQ1xbKFxkKylcXS8pO3JldHVybiBhP3tyb3c6cGFyc2VJbnQoYVsxXSwxMCksY29sdW1uOnBhcnNlSW50KGFbMl0sMTApfTpu'@; put 'dWxsfSxPc2U9KGMsbCk9PntpZihjLnN0YXJ0c1dpdGgoIkFCU09MVVRFICIpJiYoYz1jLnJlcGxhY2UoIkFCU09MVVRFICIsIiIpKSxjLnN0YXJ0c1dpdGgoIlJFTEFUSVZFICIpKXtjb25zdCBhPWRVKGMpO2lmKGEpe2NvbnN0e3JvdzpkLGNvbHVtbjpofT1hO2M9RGwudXRpbHMuZW5jb2Rl'@; put 'X2NlbGwoe3I6ZC0xLGM6aC0xfSl9fWlmKGMuc3RhcnRzV2l0aCgiTUFUQ0ggIikpe2xldCBhPSIiO2NvbnN0IGQ9Yy5tYXRjaCgvQ1xbXGQrXF06KC4rKS8pO2QmJihhPWRbMV0pO2NvbnN0IGY9Yy5zcGxpdCgiICIpWzFdO2xldCBfPSIiLFQ9LTEsVz0iIjtpZihpc05hTihOdW1iZXIoZikp'@; put 'P189ZjpUPXBhcnNlSW50KGYpLC0xIT09VCl7Y29uc3Qgd2U9bFtULTFdO2Zvcihjb25zdCBFZSBpbiB3ZSlpZigiX19yb3dOdW1fXyIhPT1FZSYmd2VbRWVdPT09YSl7Vz1FZStUO2JyZWFrfX1lbHNlIGZvcihsZXQgd2U9MDt3ZTxsLmxlbmd0aDt3ZSsrKWlmKGxbd2VdW19dPT09YSl7Vz1f'@; put 'Kyh3ZSsxKTticmVha31jb25zdCBpZT1EbC51dGlscy5kZWNvZGVfY2VsbChXKSxwZT1kVShjKTtpZihwZSl7Y29uc3R7cm93OndlLGNvbHVtbjpFZX09cGU7Yz1EbC51dGlscy5lbmNvZGVfY2VsbCh7cjppZS5yK3dlLGM6aWUuYytFZX0pfX1yZXR1cm4gY30scVplPVsiZmlsZVVwbG9hZElu'@; put 'cHV0Il07ZnVuY3Rpb24gS1plKGMsbCl7MSZjJiYobWUoMCwiZGl2IiwyOCkscXQoMSwiY2xyLXNwaW5uZXIiLDI5KSx5ZSgpKX1mdW5jdGlvbiBYWmUoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwzMCl9ZnVuY3Rpb24gSlplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xy'@; put 'LWljb24iLDMxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVybiBoLnNlYXJjaFN0cmluZz0iIixqdChoLnhsbWFwTGlzdE9uRmlsdGVyKCkpfSkseWUoKX19ZnVuY3Rpb24gUVplKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7VnIoMCksbWUoMSwiY2xy'@; put 'LXRyZWUtbm9kZSIpKDIsImJ1dHRvbiIsMzIpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS54bG1hcE9uQ2xpY2soZikpfSkscXQoMywiY2xyLWljb24iLDMzKSxOZSg0KSx5ZSgpKCksenIoKX1pZigyJmMpe2NvbnN0IGE9bC4k'@; put 'aW1wbGljaXQsZD1WZSgpO0NlKDIpLGRyKCJ0YWJsZS1hY3RpdmUiLGQuaXNBY3RpdmVYTE1hcChhLmlkKSksQ2UoMiksZ3IoIiAiLGEuaWQsIiAiKX19ZnVuY3Rpb24gZVllKGMsbCl7MSZjJiYobWUoMCwiaDMiLDM3KSxOZSgxLCIgUGxlYXNlIHNlbGVjdCBhIG1hcCAiKSx5ZSgpKX1mdW5j'@; put 'dGlvbiB0WWUoYyxsKXsxJmMmJihtZSgwLCJoMyIsMzcpLE5lKDEsIiBObyBleGNlbCBtYXAgaXMgZm91bmQgIikseWUoKSl9ZnVuY3Rpb24gblllKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwzNCkscXQoMSwiY2xyLWljb24iLDM1KSxKZSgyLGVZZSwyLDAsImgzIiwzNiksSmUoMyx0WWUs'@; put 'MiwwLCJoMyIsMzYpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDIpLFJlKCJuZ0lmIixhLnhsbWFwcy5sZW5ndGg+MCksQ2UoMSksUmUoIm5nSWYiLGEueGxtYXBzLmxlbmd0aDwxKX19ZnVuY3Rpb24gclllKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwzOCkoMSwic3BhbiIsMzkpLE5l'@; put 'KDIsIiBMb2FkaW5nLi4uICIpLHllKCksbWUoMywiZGl2IikoNCwiaDQiKSxOZSg1KSx5ZSgpKCkoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoNSksb3IoYS5pc0xvYWRpbmdEZXNjKX19ZnVuY3Rpb24gaVllKGMsbCl7MSZjJiZxdCgwLCJjbHItdGFiLWNvbnRlbnQiKX1mdW5jdGlvbiBvWWUo'@; put 'YyxsKXsxJmMmJnF0KDAsImNsci10YWItY29udGVudCIpfWZ1bmN0aW9uIHNZZShjLGwpezEmYyYmamEoMCl9ZnVuY3Rpb24gYVllKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw0MCkseHQoImZpbGVEcmFnZ2VkT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQo'@; put 'VmUoKS5vblNob3dVcGxvYWRNb2RhbCgpKX0pLG1lKDEsImNsci10YWJzIikoMiwiY2xyLXRhYiIpKDMsImJ1dHRvbiIsNDEpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKCk7cmV0dXJuIGp0KGguc2VsZWN0ZWRUYWI9aC5UYWJzRW51bS5SdWxlcyl9KSxOZSg0LCJS'@; put 'dWxlcyIpLHllKCksSmUoNSxpWWUsMSwwLCJjbHItdGFiLWNvbnRlbnQiLDQyKSx5ZSgpLG1lKDYsImNsci10YWIiKSg3LCJidXR0b24iLDQxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVybiBqdChoLnNlbGVjdGVkVGFiPWguVGFic0VudW0uRGF0YSl9'@; put 'KSxOZSg4LCJEYXRhIikseWUoKSxKZSg5LG9ZZSwxLDAsImNsci10YWItY29udGVudCIsNDIpLHllKCkoKSxKZSgxMCxzWWUsMSwwLCJuZy1jb250YWluZXIiLDQzKSxtZSgxMSwiZGl2Iiw0NCkoMTIsImgzIiw0NSksTmUoMTMpLHllKCksbWUoMTQsImkiLDQ1KSxOZSgxNSkseWUoKSxtZSgx'@; put 'NiwiaDUiLDQ1KSxOZSgxNywiIFJ1bGVzIFNvdXJjZTogIiksbWUoMTgsImEiLDQ2KSxOZSgxOSkseWUoKSgpLG1lKDIwLCJoNSIsNDUpLE5lKDIxLCIgVGFyZ2V0IGRhdGFzZXQ6ICIpLG1lKDIyLCJhIiw0NiksTmUoMjMpLHllKCkoKSgpLG1lKDI0LCJkaXYiLDQ3KSxxdCgyNSwiaG90LXRh'@; put 'YmxlIiw0OCkseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpLGQ9JGkoNDEpO0NlKDUpLFJlKCJjbHJJZkFjdGl2ZSIsYS5zZWxlY3RlZFRhYj09PWEuVGFic0VudW0uUnVsZXMpLENlKDQpLFJlKCJjbHJJZkFjdGl2ZSIsYS5zZWxlY3RlZFRhYj09PWEuVGFic0VudW0uRGF0YSksQ2UoMSks'@; put 'UmUoIm5nVGVtcGxhdGVPdXRsZXQiLGQpLENlKDMpLGdyKCIgIixhLnNlbGVjdGVkWExNYXAuaWQsIiAiKSxDZSgyKSxvcihhLnNlbGVjdGVkWExNYXAuZGVzY3JpcHRpb24pLENlKDMpLFJlKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvZGF0YS8iK2EucnVsZXNTb3VyY2UpLENlKDEpLGdyKCIgIixh'@; put 'LnJ1bGVzU291cmNlLCIgIiksQ2UoMyksUmUoInJvdXRlckxpbmsiLCIvdmlldy9kYXRhLyIrYS5zZWxlY3RlZFhMTWFwLnRhcmdldERTKSxDZSgxKSxncigiICIsYS5zZWxlY3RlZFhMTWFwLnRhcmdldERTLCIgIiksQ2UoMiksUmUoIm11bHRpQ29sdW1uU29ydGluZyIsITApKCJ2aWV3cG9y'@; put 'dFJvd1JlbmRlcmluZ09mZnNldCIsNTApKCJkYXRhIixhLnNlbGVjdGVkVGFiPT09YS5UYWJzRW51bS5SdWxlcz9hLnhsbWFwUnVsZXM6YS54bERhdGEpKCJjb2xIZWFkZXJzIixhLnNlbGVjdGVkVGFiPT09YS5UYWJzRW51bS5SdWxlcz9hLnhsbWFwUnVsZXNIZWFkZXJzOmEueGxVcGxvYWRI'@; put 'ZWFkZXIpKCJjb2x1bW5zIixhLnNlbGVjdGVkVGFiPT09YS5UYWJzRW51bS5SdWxlcz9hLnhsbWFwUnVsZXNDb2x1bW5zOmEueGxVcGxvYWRDb2x1bW5zKSgiZmlsdGVycyIsITApKCJoZWlnaHQiLCIxMDAlIikoIm1vZGlmeUNvbFdpZHRoIixhLm1heFdpZHRoQ2hlY2tlcikoImNlbGxzIixh'@; put 'LmdldENlbGxDb25maWd1cmF0aW9uKSgibWF4Um93cyIsYS5ob3RUYWJsZU1heFJvd3MpKCJtYW51YWxDb2x1bW5SZXNpemUiLCEwKSgicm93SGVhZGVycyIsYS5yb3dIZWFkZXJzKSgicm93SGVhZGVyV2lkdGgiLDE1KSgicm93SGVpZ2h0cyIsMjApKCJsaWNlbnNlS2V5IixhLmhvdFRhYmxl'@; put 'TGljZW5zZUtleSl9fWZ1bmN0aW9uIGxZZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsNTEpKDEsImJ1dHRvbiIsNTIpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMikub25TaG93VXBsb2FkTW9kYWwoKSl9KSxxdCgyLCJjbHItaWNvbiIs'@; put 'NTMpLG1lKDMsInNwYW4iKSxOZSg0LCJVcGxvYWQiKSx5ZSgpKCkoKX19ZnVuY3Rpb24gY1llKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw1MSkoMSwiYnV0dG9uIiw1MikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5zdWJtaXRFeGNl'@; put 'bCgpKX0pLHF0KDIsImNsci1pY29uIiw1MyksbWUoMywic3BhbiIpLE5lKDQsIlN1Ym1pdCIpLHllKCkoKSgpfX1mdW5jdGlvbiB1WWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDUxKSgxLCJidXR0b24iLDU0KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0'@; put 'KGEpLGp0KFZlKDIpLmRpc2NhcmRFeHRyYWN0ZWREYXRhKCkpfSkscXQoMiwiY2xyLWljb24iLDU1KSxtZSgzLCJzcGFuIiksTmUoNCwiRGlzY2FyZCIpLHllKCkoKSgpfX1mdW5jdGlvbiBkWWUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDQ5KSxKZSgxLGxZZSw1LDAsImRpdiIsNTApLEpl'@; put 'KDIsY1llLDUsMCwiZGl2Iiw1MCksSmUoMyx1WWUsNSwwLCJkaXYiLDUwKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJZiIsYS5zdGF0dXM9PT1hLlN0YXR1c0VudW0uUmVhZHlUb1VwbG9hZCksQ2UoMSksUmUoIm5nSWYiLGEuc3RhdHVzPT09YS5TdGF0dXNFbnVtLlJl'@; put 'YWR5VG9TdWJtaXQpLENlKDEpLFJlKCJuZ0lmIixhLnN0YXR1cz09PWEuU3RhdHVzRW51bS5SZWFkeVRvU3VibWl0KX19dmFyIHlkPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuTm9NYXBTZWxlY3RlZD0wXT0iTm9NYXBTZWxlY3RlZCIsY1tjLkZldGNoaW5nUnVsZXM9MV09IkZldGNoaW5nUnVs'@; put 'ZXMiLGNbYy5SZWFkeVRvVXBsb2FkPTJdPSJSZWFkeVRvVXBsb2FkIixjW2MuRXh0cmFjdGluZ0RhdGE9M109IkV4dHJhY3RpbmdEYXRhIixjW2MuUmVhZHlUb1N1Ym1pdD00XT0iUmVhZHlUb1N1Ym1pdCIsY1tjLlN1Ym1pdHRpbmdFeHRyYWN0ZWREYXRhPTVdPSJTdWJtaXR0aW5nRXh0cmFj'@; put 'dGVkRGF0YSIsY1tjLlN1Ym1pdHRpbmc9Nl09IlN1Ym1pdHRpbmciLGN9KHlkfHx7fSksWjc9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5SdWxlcz0wXT0iUnVsZXMiLGNbYy5EYXRhPTFdPSJEYXRhIixjfShaN3x8e30pO2xldCBQc2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxm'@; put 'LF8sVCxXKXt0aGlzLmV2ZW50U2VydmljZT1hLHRoaXMubGljZW5jZVNlcnZpY2U9ZCx0aGlzLmxvZ2dlclNlcnZpY2U9aCx0aGlzLnJvdXRlPWYsdGhpcy5yb3V0ZXI9Xyx0aGlzLnNhc1N0b3JlU2VydmljZT1ULHRoaXMuc2FzU2VydmljZT1XLHRoaXMuY29udGVudENvbnRhaW5lckNsYXNz'@; put 'PSEwLHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3Q9bmV3IGVoLHRoaXMuU3RhdHVzRW51bT15ZCx0aGlzLlRhYnNFbnVtPVo3LHRoaXMuc2VsZWN0ZWRUYWI9WjcuUnVsZXMsdGhpcy5ydWxlc1NvdXJjZT1Hbi5kY0xpYisiLk1QRV9YTE1BUF9SVUxFUyIsdGhpcy54bG1hcHM9W10sdGhp'@; put 'cy5zZWxlY3RlZFhMTWFwPXZvaWQgMCx0aGlzLnNlYXJjaFN0cmluZz0iIix0aGlzLnhsbWFwc0xvYWRpbmc9ITAsdGhpcy5pc0xvYWRpbmc9ITEsdGhpcy5pc0xvYWRpbmdEZXNjPSIiLHRoaXMuc3RhdHVzPXlkLk5vTWFwU2VsZWN0ZWQsdGhpcy54bG1hcFJ1bGVzSGVhZGVycz1bIlhMTUFQ'@; put 'X1NIRUVUIiwiWExNQVBfUkFOR0VfSUQiLCJYTE1BUF9TVEFSVCIsIlhMTUFQX0ZJTklTSCJdLHRoaXMueGxtYXBSdWxlc0NvbHVtbnM9W3tkYXRhOiJYTE1BUF9TSEVFVCJ9LHtkYXRhOiJYTE1BUF9SQU5HRV9JRCJ9LHtkYXRhOiJYTE1BUF9TVEFSVCJ9LHtkYXRhOiJYTE1BUF9GSU5JU0gi'@; put 'fV0sdGhpcy54bG1hcFJ1bGVzPVtdLHRoaXMueGxVcGxvYWRIZWFkZXI9WyJYTE1BUF9SQU5HRV9JRCIsIlJPV19OTyIsIkNPTF9OTyIsIlZBTFVFX1RYVCJdLHRoaXMueGxVcGxvYWRDb2x1bW5zPVt7ZGF0YToiWExNQVBfUkFOR0VfSUQifSx7ZGF0YToiUk9XX05PIn0se2RhdGE6IkNPTF9O'@; put 'TyJ9LHtkYXRhOiJWQUxVRV9UWFQifV0sdGhpcy54bERhdGE9W10sdGhpcy5zaG93VXBsb2FkTW9kYWw9ITEsdGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPSExLHRoaXMuZmlsZW5hbWU9IiIsdGhpcy5zdWJtaXRMaW1pdE5vdGljZT0hMSx0aGlzLnVwbG9hZGVyPW5ldyBSb2UsdGhpcy5saWNl'@; put 'bmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGUsdGhpcy5ob3RUYWJsZUxpY2Vuc2VLZXk9dm9pZCAwLHRoaXMuaG90VGFibGVNYXhSb3dzPXRoaXMubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdlcl9yb3dzX2FsbG93ZWR8fDEvMH14bG1hcE9uQ2xpY2soYSl7YS5pZCE9'@; put 'PXRoaXMuc2VsZWN0ZWRYTE1hcD8uaWQmJih0aGlzLnNlbGVjdGVkWExNYXA9YSx0aGlzLnhsRGF0YT1bXSx0aGlzLmZpbGVuYW1lPSIiLHRoaXMudXBsb2FkZXIucXVldWU9W10sdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExp'@; put 'c3QuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZT0iIiksdGhpcy5zZWxlY3RlZFRhYj1aNy5SdWxlcyx0aGlzLnZpZXdYTE1hcFJ1bGVzKCksdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2hvbWUvZmlsZXMvIithLmlkKSl9eGxtYXBMaXN0T25GaWx0ZXIoKXt0aGlzLnhsbWFwcz10aGlz'@; put 'LnNlYXJjaFN0cmluZy5sZW5ndGg+MD9Hbi54bG1hcHMuZmlsdGVyKGQ9PmQuaWQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpKSk6R24ueGxtYXBzfWlzQWN0aXZlWExNYXAoYSl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRYTE1hcD8uaWQ9PT1h'@; put 'fW1heFdpZHRoQ2hlY2tlcihhLGQpe3JldHVybiBhPjIwMD8yMDA6YX1nZXRDZWxsQ29uZmlndXJhdGlvbigpe3JldHVybntyZWFkT25seTohMH19cm93SGVhZGVycygpe3JldHVybiIgIn1vblNob3dVcGxvYWRNb2RhbCgpe3RoaXMuc2hvd1VwbG9hZE1vZGFsPSEwfWZpbGVPdmVyQmFzZShh'@; put 'KXt0aGlzLmhhc0Jhc2VEcm9wWm9uZU92ZXI9YX1nZXRGaWxlRGVzYyhhLGQ9ITEpe3ZhciBoPXRoaXM7Y29uc3QgZj1kP2FbMF06YS50YXJnZXQuZmlsZXNbMF07aWYoIWYpcmV0dXJuO2NvbnN0IF89Zi5uYW1lO2lmKHRoaXMuZmlsZW5hbWU9XywieGxzIj09PV8uc2xpY2UoXy5sYXN0SW5k'@; put 'ZXhPZigiLiIpKzEsXy5sYXN0SW5kZXhPZigiLiIpKzQpLnRvTG93ZXJDYXNlKCkpe3RoaXMuc2hvd1VwbG9hZE1vZGFsPSExLHRoaXMuaXNMb2FkaW5nPSEwLHRoaXMuaXNMb2FkaW5nRGVzYz0iRXh0cmFjdGluZyBEYXRhIix0aGlzLnN0YXR1cz15ZC5FeHRyYWN0aW5nRGF0YTtjb25zdCBX'@; put 'PW5ldyBGaWxlUmVhZGVyO1cub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGllPWZpKGZ1bmN0aW9uKihwZSl7Y29uc3Qgd2U9KGM9Pntjb25zdCBsPW5ldyBVaW50OEFycmF5KGMpO2xldCBhPSIiO2NvbnN0IGQ9bC5ieXRlTGVuZ3RoO2ZvcihsZXQgaD0wO2g8ZDtoKyspYSs9U3RyaW5nLmZyb21D'@; put 'aGFyQ29kZShsW2hdKTtyZXR1cm4gYX0pKHBlLnRhcmdldC5yZXN1bHQpO2xldCBFZTtjb25zdCBaZT17dHlwZToiYmluYXJ5IixjZWxsRGF0ZXM6ITEsY2VsbEZvcm11bGE6ITAsY2VsbFN0eWxlczohMCxjZWxsTkY6ITEsY2VsbFRleHQ6ITF9O3RyeXtFZT1EbC5yZWFkKHdlLHsuLi5aZX0p'@; put 'fWNhdGNoKGl0KXtoLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLGl0LHZvaWQgMCwiRXJyb3IgcmVhZGluZyBmaWxlIil9aWYoIUVlKXJldHVybiBoLmlzTG9hZGluZz0hMSxoLmlzTG9hZGluZ0Rlc2M9IiIsaC5zdGF0dXM9eWQuUmVhZHlUb1VwbG9hZCx2b2lkIGgudXBsb2Fk'@; put 'ZXIucXVldWUucG9wKCk7aC5leHRyYWN0RGF0YShFZSl9KTtyZXR1cm4gZnVuY3Rpb24ocGUpe3JldHVybiBpZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLFcucmVhZEFzQXJyYXlCdWZmZXIoZil9ZWxzZSB0aGlzLmlzTG9hZGluZz0hMSx0aGlzLmlzTG9hZGluZ0Rlc2M9IiIsdGhpcy5z'@; put 'dGF0dXM9eWQuUmVhZHlUb1VwbG9hZCx0aGlzLnNob3dVcGxvYWRNb2RhbD0hMCx0aGlzLnVwbG9hZGVyLnF1ZXVlLnBvcCgpLHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsJ0ludmFsaWQgZmlsZSB0eXBlICI8Yj4nK3RoaXMuZmlsZW5hbWUrJzwvYj4iLiBQbGVhc2Ug'@; put 'dXBsb2FkIGV4Y2VsIGZpbGUuJyl9ZGlzY2FyZEV4dHJhY3RlZERhdGEoKXt0aGlzLmlzTG9hZGluZz0hMSx0aGlzLmlzTG9hZGluZ0Rlc2M9IiIsdGhpcy5zdGF0dXM9eWQuUmVhZHlUb1VwbG9hZCx0aGlzLnhsRGF0YT1bXSx0aGlzLnNlbGVjdGVkVGFiPVo3LlJ1bGVzLHRoaXMuZmlsZW5h'@; put 'bWU9IiIsdGhpcy51cGxvYWRlci5xdWV1ZT1bXSx0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0JiYodGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlPSIiKX1zdWJtaXRFeGNlbCgpe3RoaXMubGljZW5jZVN0YXRlLnZhbHVlLnN1'@; put 'Ym1pdF9yb3dzX2xpbWl0PT09MS8wP3RoaXMuc3VibWl0KCk6dGhpcy5zdWJtaXRMaW1pdE5vdGljZT0hMH1zdWJtaXQoKXtpZighdGhpcy5zZWxlY3RlZFhMTWFwfHwhdGhpcy54bERhdGEubGVuZ3RoKXJldHVybjt0aGlzLnN0YXR1cz15ZC5TdWJtaXR0aW5nLHRoaXMuaXNMb2FkaW5nPSEw'@; put 'LHRoaXMuaXNMb2FkaW5nRGVzYz0iU3VibWl0dGluZyBleHRyYWN0ZWQgZGF0YSI7Y29uc3QgYT1bXTtmb3IoY29uc3QgVCBvZiB0aGlzLnVwbG9hZGVyLnF1ZXVlKWEucHVzaCh7ZmlsZTpULGZpbGVOYW1lOlQubmFtZX0pO2NvbnN0IGQ9T2JqZWN0LmtleXModGhpcy54bERhdGFbMF0pLmpv'@; put 'aW4oIiwiKSsiXG4iK3RoaXMueGxEYXRhLnNsaWNlKDAsdGhpcy5saWNlbmNlU3RhdGUudmFsdWUuc3VibWl0X3Jvd3NfbGltaXQpLm1hcChUPT5PYmplY3QudmFsdWVzKFQpLmpvaW4oIiwiKSkuam9pbigiXG4iKSxmPSgoYyxsKT0+bmV3IEZpbGUoW2NdLHRoaXMuZmlsZW5hbWUrIi5jc3Yi'@; put 'LHtsYXN0TW9kaWZpZWQ6KG5ldyBEYXRlKS5nZXRUaW1lKCl9KSkobmV3IEJsb2IoW2RdLHt0eXBlOiJhcHBsaWNhdGlvbi9jc3YifSkpO2EucHVzaCh7ZmlsZTpmLGZpbGVOYW1lOmYubmFtZX0pLHRoaXMuc2FzU2VydmljZS51cGxvYWRGaWxlKCJzZXJ2aWNlcy9lZGl0b3JzL2xvYWRmaWxl'@; put 'IixhLHt0YWJsZTp0aGlzLnNlbGVjdGVkWExNYXAudGFyZ2V0RFN9KS50aGVuKFQ9PntULnNhc2pzQWJvcnQ/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoIiIsVC5zYXNqc0Fib3J0WzBdLk1TRyx7U1lTV0FSTklOR1RFWFQ6VC5TWVNXQVJOSU5HVEVYVCxTWVNFUlJPUlRFWFQ6'@; put 'VC5TWVNFUlJPUlRFWFQsTUFDOlQuc2FzanNBYm9ydFswXS5NQUN9KTpULnNhc3BhcmFtcyYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIrVC5zYXNwYXJhbXNbMF0uRFNJRCl9KS5jYXRjaChUPT57dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJmaWxl'@; put 'IHVwbG9hZCIsVCl9KS5maW5hbGx5KCgpPT57dGhpcy5zdGF0dXM9eWQuUmVhZHlUb1N1Ym1pdCx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLmlzTG9hZGluZ0Rlc2M9IiJ9KX1leHRyYWN0RGF0YShhKXtjb25zdCBkPVtdO3RoaXMueGxtYXBSdWxlcy5mb3JFYWNoKGg9PntsZXQgZj1oLlhMTUFQ'@; put 'X1NIRUVUO2lmKGYuc3RhcnRzV2l0aCgiLyIpKXtjb25zdCBaZT1mLnNwbGl0KCIvIilbMV0saXQ9cGFyc2VJbnQoWmUpLTE7Zj1hLlNoZWV0TmFtZXNbaXRdfWNvbnN0IF89YS5TaGVldHNbZl0sVD1EbC51dGlscy5zaGVldF90b19qc29uKF8se3JhdzohMCxoZWFkZXI6IkEiLGJsYW5rcm93'@; put 'czohMH0pLFc9T3NlKGguWExNQVBfU1RBUlQsVCksaWU9KChjLGwsYSk9PntpZigiIj09PWwpcmV0dXJuIGM7aWYobC5zdGFydHNXaXRoKCJBQlNPTFVURSAiKSYmKGw9bC5yZXBsYWNlKCJBQlNPTFVURSAiLCIiKSksbC5zdGFydHNXaXRoKCJSRUxBVElWRSAiKSl7Y29uc3QgZD1kVShsKTtp'@; put 'ZihkKXtjb25zdHtyb3c6aCxjb2x1bW46Zn09ZCx7cjpfLGM6VH09RGwudXRpbHMuZGVjb2RlX2NlbGwoYyk7bD1EbC51dGlscy5lbmNvZGVfY2VsbCh7cjpfK2gsYzpUK2Z9KX19aWYobC5zdGFydHNXaXRoKCJNQVRDSCAiKSYmKGw9T3NlKGwsYSkpLCJMQVNURE9XTiI9PT1sKXtjb25zdHty'@; put 'OmQsYzpofT1EbC51dGlscy5kZWNvZGVfY2VsbChjKSxmPURsLnV0aWxzLmVuY29kZV9jb2woaCk7bGV0IF89ZDtmb3IobGV0IFQ9ZCsxO1Q8YS5sZW5ndGgmJmFbVF1bZl07VCsrKV89VDtsPWYrKF8rMSl9aWYoIkJMQU5LUk9XIj09PWwpe2NvbnN0e3I6ZH09RGwudXRpbHMuZGVjb2RlX2Nl'@; put 'bGwoYyk7bGV0IGg9ZDtmb3IobGV0IFc9ZCsxO1c8YS5sZW5ndGgmJiFZWmUoYVtXXSk7VysrKWg9VztsPU9iamVjdC5rZXlzKGFbaF0pLmZpbHRlcihXPT4iX19yb3dOdW1fXyIhPT1XKS5yZWR1Y2UoKFcsaWUpPT5pZT5XP2llOlcsIiIpKyhoKzEpfXJldHVybiBsfSkoVyxoLlhMTUFQX0ZJ'@; put 'TklTSCxUKSxwZT1gJHtXfToke2llfWAsd2U9RGwudXRpbHMuZGVjb2RlX3JhbmdlKHBlKSxFZT1EbC51dGlscy5zaGVldF90b19qc29uKF8se3JhdzohMCxyYW5nZTpwZSxoZWFkZXI6IkEiLGJsYW5rcm93czohMH0pO2ZvcihsZXQgWmU9MDtaZTxFZS5sZW5ndGg7WmUrKyl7Y29uc3QgaXQ9'@; put 'RWVbWmVdO2ZvcihsZXQgZXQ9d2Uucy5jLHl0PTA7ZXQ8PXdlLmUuYztldCsrLHl0Kyspe2NvbnN0IEV0PURsLnV0aWxzLmVuY29kZV9jb2woZXQpO0V0IGluIGl0JiZkLnB1c2goe0xPQURfUkVGOiIwIixYTE1BUF9JRDpoLlhMTUFQX0lELFhMTUFQX1JBTkdFX0lEOmguWExNQVBfUkFOR0Vf'@; put 'SUQsUk9XX05POlplKzEsQ09MX05POnl0KzEsVkFMVUVfVFhUOml0W0V0XX0pfX19KSx0aGlzLnN0YXR1cz15ZC5SZWFkeVRvU3VibWl0LHRoaXMuaXNMb2FkaW5nPSExLHRoaXMuaXNMb2FkaW5nRGVzYz0iIix0aGlzLnhsRGF0YT1kLHRoaXMuc2VsZWN0ZWRUYWI9WjcuRGF0YX12aWV3WExN'@; put 'YXBSdWxlcygpe3ZhciBhPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2Euc2VsZWN0ZWRYTE1hcCYmKGEuaXNMb2FkaW5nPSEwLGEuaXNMb2FkaW5nRGVzYz0iTG9hZGluZyBleGNlbCBydWxlcyIsYS5zdGF0dXM9eWQuRmV0Y2hpbmdSdWxlcyx5aWVsZCBhLnNhc1N0b3JlU2VydmljZS5n'@; put 'ZXRYTE1hcFJ1bGVzKGEuc2VsZWN0ZWRYTE1hcC5pZCkudGhlbihkPT57YS54bG1hcFJ1bGVzPWQueGxtYXBydWxlcyxhLnN0YXR1cz15ZC5SZWFkeVRvVXBsb2FkfSkuY2F0Y2goZD0+e2EubG9nZ2VyU2VydmljZS5lcnJvcihkKX0pLGEuaXNMb2FkaW5nPSExLGEuaXNMb2FkaW5nRGVzYz0i'@; put 'Iil9KSgpfWxvYWQoKXt0aGlzLnhsbWFwcz1Hbi54bG1hcHMsdGhpcy54bG1hcHNMb2FkaW5nPSExO2NvbnN0IGE9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuaWQ7aWYoYSl7Y29uc3QgZD10aGlzLnhsbWFwcy5maW5kKGg9PmguaWQ9PT1hKTtkJiYodGhpcy5zZWxlY3RlZFhMTWFwPWQs'@; put 'dGhpcy52aWV3WExNYXBSdWxlcygpKX19bmdPbkluaXQoKXt0aGlzLmxpY2VuY2VTZXJ2aWNlLmhvdF9saWNlbnNlX2tleS5zdWJzY3JpYmUoYT0+e3RoaXMuaG90VGFibGVMaWNlbnNlS2V5PWF9KX1uZ0FmdGVyVmlld0luaXQoKXt9bmdBZnRlckNvbnRlbnRJbml0KCl7R24uZWRpdG9yLnN0'@; put 'YXJ0dXBTZXQ/dGhpcy5sb2FkKCk6dGhpcy5ldmVudFNlcnZpY2Uub25TdGFydHVwRGF0YUxvYWRlZC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmxvYWQoKX0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dCh2bCksdHQoQzApLHR0KHcwKSx0dChHbCks'@; put 'dHQoRHMpLHR0KGJkKSx0dChvYSkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAteGxtYXAiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZSbyhxWmUsNSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5maWxlVXBsb2FkSW5wdXRDb21wTGlzdD1o'@; put 'KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZkcigiY29udGVudC1jb250YWluZXIiLGQuY29udGVudENvbnRhaW5lckNsYXNzKX0sZGVjbHM6NDIsdmFyczoxNixjb25zdHM6W1siY2xhc3MiLCJteS0xMC1teC1hdXRvIHRleHQtY2VudGVyIiw0LCJuZ0lm'@; put 'Il0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgYnkgSWQiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxb'@; put 'InNlYXJjaFhMTWFwVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZCIsNCwi'@; put 'bmdJZiJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFsiYXBwRHJhZ05kcm9wIiwiIiwiY2xhc3MiLCJjYXJkIGgtMTAwIGQtZmxleCBjbHItZmxleC1jb2x1bW4iLDMsImZpbGVEcmFnZ2VkT3ZlciIsNCwibmdJZiJdLFsiYXBwRmlsZURyb3AiLCIiLDEsInJlbGF0aXZl'@; put 'IiwzLCJ1cGxvYWRlciIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsU3RhdGljQmFja2Ryb3AiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuIiwiZmlsZU92ZXIiLCJmaWxlRHJvcCIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5'@; put 'Il0sWzEsImRyb3AtYXJlYSJdLFsxLCJjbHItY29sLW1kLTEyIl0sWzEsImNsci1yb3ciLCJjYXJkLWJsb2NrIiwibXQtMTUiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiJdLFsxLCJjbHItY29sLW1kLTMiLCJmaWx0ZXJCdG4iXSxbMSwiZmlsdGVyQnRuIiwidy0xMDAiXSxb'@; put 'ImZvciIsImZpbGUtdXBsb2FkIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsInByb2ZpbGUtYnV0dG9ucyIsInctMTAwIl0sWyJoaWRkZW4iLCIiLCJpZCIsImZpbGUtdXBsb2FkIiwidHlwZSIsImZpbGUiLCJhcHBGaWxlU2VsZWN0IiwiIiwzLCJ1cGxvYWRlciIsImNoYW5nZSJd'@; put 'LFsiZmlsZVVwbG9hZElucHV0IiwiIl0sWzMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtLTAiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImFjdGlvbkJ1dHRv'@; put 'bnMiLCIiXSxbMSwibXktMTAtbXgtYXV0byIsInRleHQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFsxLCJjbHItdHJlZW5vZGUtbGluayIsMywiY2xpY2siXSxbInNoYXBlIiwiZmlsZSJdLFsxLCJuby10'@; put 'YWJsZS1zZWxlY3RlZCJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIiwiaWNvbi1kYy1maWxsIl0sWyJjbGFzcyIsInRleHQtY2VudGVyIGNvbG9yLWdyYXkiLDQsIm5nSWYiXSxbMSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5Il0sWzEsImxv'@; put 'YWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbImFwcERyYWdOZHJvcCIsIiIsMSwiY2FyZCIsImgtMTAwIiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIiwzLCJmaWxlRHJhZ2dlZE92ZXIiXSxbImNsclRhYkxpbmsiLCIiLDMsImNsaWNrIl0sWzQsImNscklmQWN0aXZlIl0sWzQsIm5n'@; put 'VGVtcGxhdGVPdXRsZXQiXSxbMSwiY2xyLXJvdyIsIm0tMCIsIm1iLTEwLWkiLCJ2aWV3ZXJUaXRsZSJdLFsxLCJkLWZsZXgiLCJjbHItY29sLTEyIiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiLCJtdC01LWkiXSxbMSwibWwtMTAiLDMsInJvdXRlckxpbmsiXSxbMSwiY2xyLWZsZXgt'@; put 'MSJdLFsiaG90SWQiLCJob3RJbnN0YW5jZSIsImlkIiwiaG90LXRhYmxlIiwic3RyZXRjaEgiLCJhbGwiLDMsIm11bHRpQ29sdW1uU29ydGluZyIsInZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0IiwiZGF0YSIsImNvbEhlYWRlcnMiLCJjb2x1bW5zIiwiZmlsdGVycyIsImhlaWdodCIsIm1v'@; put 'ZGlmeUNvbFdpZHRoIiwiY2VsbHMiLCJtYXhSb3dzIiwibWFudWFsQ29sdW1uUmVzaXplIiwicm93SGVhZGVycyIsInJvd0hlYWRlcldpZHRoIiwicm93SGVpZ2h0cyIsImxpY2Vuc2VLZXkiXSxbMSwiY2xyLXJvdyIsIm0tMCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbGFz'@; put 'cyIsImQtZmxleCBjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciBjbHItY29sLTEyIGNsci1jb2wtbGctNCIsNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciIsImNsci1jb2wtMTIiLCJjbHItY29sLWxnLTQiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0'@; put 'biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwiYnRuLWJsb2NrIiwibXItMCIsMywiY2xpY2siXSxbInNoYXBlIiwidXBsb2FkIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZS1kYW5nZXIiLCJidG4tYmxvY2siLCJtci0wIiwzLCJjbGljayJdLFsic2hh'@; put 'cGUiLCJ0aW1lcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmKG1lKDAsImFwcC1zaWRlYmFyIiksSmUoMSxLWmUsMiwwLCJkaXYiLDApLG1lKDIsImNsci10cmVlIikoMywiY2xyLXRyZWUtbm9kZSIsMSkoNCwiZGl2IiwyKSg1LCJpbnB1dCIsMyw0KSx4dCgibmdNb2RlbENo'@; put 'YW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQuc2VhcmNoU3RyaW5nPWZ9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGQueGxtYXBMaXN0T25GaWx0ZXIoKX0pLHllKCksSmUoNyxYWmUsMSwwLCJjbHItaWNvbiIsNSksSmUoOCxKWmUsMSwwLCJjbHItaWNvbiIsNikseWUoKSgpLEplKDks'@; put 'UVplLDUsMywibmctY29udGFpbmVyIiw3KSx5ZSgpKCksbWUoMTAsImRpdiIsOCksSmUoMTEsblllLDQsMiwiZGl2Iiw5KSxKZSgxMixyWWUsNiwxLCJkaXYiLDEwKSxKZSgxMyxhWWUsMjYsMjQsImRpdiIsMTEpLG1lKDE0LCJjbHItbW9kYWwiLDEyKSx4dCgiZmlsZU92ZXIiLGZ1bmN0aW9u'@; put 'KGYpe3JldHVybiBkLmZpbGVPdmVyQmFzZShmKX0pKCJmaWxlRHJvcCIsZnVuY3Rpb24oZil7cmV0dXJuIGQuZ2V0RmlsZURlc2MoZiwhMCl9KSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5zaG93VXBsb2FkTW9kYWw9Zn0pLG1lKDE1LCJoMyIsMTMpLE5lKDE2'@; put 'LCJVcGxvYWQgRmlsZSIpLHllKCksbWUoMTcsImRpdiIsMTQpKDE4LCJkaXYiLDE1KSgxOSwic3BhbiIpLE5lKDIwLCJEcm9wIGZpbGUgYW55d2hlcmUgdG8gdXBsb2FkISIpLHllKCkoKSxtZSgyMSwiZGl2IiwxNikoMjIsImRpdiIsMTcpKDIzLCJkaXYiLDE4KSgyNCwic3BhbiIsMTkpKDI1'@; put 'LCJsYWJlbCIsMjApLE5lKDI2LCIgQnJvd3NlICIpLHllKCkoKSxtZSgyNywiaW5wdXQiLDIxLDIyKSx4dCgiY2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5nZXRGaWxlRGVzYyhmKX0pLHllKCkoKSgpKCkoKSgpLG1lKDI5LCJjbHItbW9kYWwiLDIzKSx4dCgiY2xyTW9kYWxPcGVuQ2hh'@; put 'bmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5zdWJtaXRMaW1pdE5vdGljZT1mfSksbWUoMzAsImgzIiwxMyksTmUoMzEsIk5vdGljZSIpLHllKCksbWUoMzIsImRpdiIsMTQpKDMzLCJwIiwyNCksTmUoMzQpLHllKCkoKSxtZSgzNSwiZGl2IiwyNSkoMzYsImJ1dHRvbiIsMjYpLHh0KCJjbGlj'@; put 'ayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zdWJtaXRMaW1pdE5vdGljZT0hMX0pLE5lKDM3LCIgQ2FuY2VsICIpLHllKCksbWUoMzgsImJ1dHRvbiIsMjYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zdWJtaXQoKSxkLnN1Ym1pdExpbWl0Tm90aWNlPSExfSksTmUoMzksIiBTdWJt'@; put 'aXQgIikseWUoKSgpKCkoKSxKZSg0MCxkWWUsNCwzLCJuZy10ZW1wbGF0ZSIsbnVsbCwyNyxrYykpLDImYSl7Y29uc3QgaD0kaSg2KTtDZSgxKSxSZSgibmdJZiIsZC54bG1hcHNMb2FkaW5nKSxDZSg0KSxSZSgibmdNb2RlbCIsZC5zZWFyY2hTdHJpbmcpLENlKDIpLFJlKCJuZ0lmIixoLnZh'@; put 'bHVlLmxlbmd0aDwxKSxDZSgxKSxSZSgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCksQ2UoMSksUmUoIm5nRm9yT2YiLGQueGxtYXBzKSxDZSgyKSxSZSgibmdJZiIsIWQuc2VsZWN0ZWRYTE1hcCksQ2UoMSksUmUoIm5nSWYiLGQuaXNMb2FkaW5nKSxDZSgxKSxSZSgibmdJZiIsIWQuaXNMb2Fk'@; put 'aW5nJiZkLnNlbGVjdGVkWExNYXApLENlKDEpLFJlKCJ1cGxvYWRlciIsZC51cGxvYWRlcikoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsU3RhdGljQmFja2Ryb3AiLCExKSgiY2xyTW9kYWxDbG9zYWJsZSIsITApKCJjbHJNb2RhbE9wZW4iLGQuc2hvd1VwbG9hZE1vZGFsKSxDZSgx'@; put 'MyksUmUoInVwbG9hZGVyIixkLnVwbG9hZGVyKSxDZSgyKSxSZSgiY2xyTW9kYWxPcGVuIixkLnN1Ym1pdExpbWl0Tm90aWNlKSxDZSg1KSxncigiIER1ZSB0byBjdXJyZW50IGxpY2VuY2UsIG9ubHkgIixkLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCwiIHJvd3MgaW4g'@; put 'YSBmaWxlIHdpbGwgYmUgc3VibWl0dGVkLiBUbyByZW1vdmUgdGhlIHJlc3RyaWN0aW9uLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8gIil9fSxkZXBlbmRlbmNpZXM6W3h5LEJ1LFdhLEJzLE9zLGRkLGcxLERwLGthLG91LHN1LEU4LFVzLGYxLExwLE9wLGRnLFJwLElwLGNn'@; put 'LHUyLG4zLHhzLFppLHJkLFliLEVzZSxrc2VdLHN0eWxlczpbIi5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjA7ZmxleDoxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Y2xyLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29u'@; put 'dGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0ubm8tdGFibGUtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5oZWFkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aXRsZS1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDth'@; put 'bGlnbi1pdGVtczpjZW50ZXJ9LmhlYWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLm9wdGlvbnMtY29sW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zd1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjFyZW0gMHJlbSAuNXJl'@; put 'bSAxcmVtfS52aWV3ZXJUaXRsZVtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LmNhcmRGbGV4W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41'@; put 'cmVtIWltcG9ydGFudDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDpyZ2JhKDQ4LDEwNywwLC40MzEzNzI1NDkpfS5kcm9wLWFyZWFbX25nY29udGVudC0l'@; put 'Q09NUCVde3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjFweDtib3JkZXI6MnB4IGRhc2hlZCAjZmZmO3otaW5kZXg6LTF9LmRyb3AtYXJlYVtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAl'@; put 'XXtmb250LXNpemU6MjBweDttYXJnaW4tdG9wOjIwcHg7Y29sb3I6I2ZmZn0iXX0pLGN9KSgpO2NvbnN0IGhZZT1be3BhdGg6IiIsY29tcG9uZW50OigoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9bmdPbkRlc3Ryb3koKXt9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAteGxtYXAtcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiZxdCgwLCJy'@; put 'b3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbZnBdfSksY30pKCksY2hpbGRyZW46W3twYXRoOiIiLGNvbXBvbmVudDpQc2V9LHtwYXRoOiI6aWQiLGNvbXBvbmVudDpQc2V9XX1dO2xldCBmWWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVy'@; put 'biBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbaGMuZm9yQ2hpbGQoaFllKSxoY119KSxjfSkoKTtGeigpO2xldCBwWWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8'@; put 'Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7aW1wb3J0czpbXzcsZlllLHFsLF91LEI3LG9vLFFBLEMyXX0pLGN9KSgpO2NvbnN0IGdZZT1be3BhdGg6IiIsY29tcG9uZW50Om9aZSxjaGlsZHJlbjpbe3BhdGg6IiIscGF0aE1hdGNoOiJmdWxsIixyZWRpcmVj'@; put 'dFRvOiJ0YWJsZXMifSx7cGF0aDoidGFibGVzIixjb21wb25lbnQ6WlplfSx7cGF0aDoiZmlsZXMiLGxvYWRDaGlsZHJlbjooKT0+cFllfV19XTtsZXQgbVllPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1v'@; put 'ZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W2hjLmZvckNoaWxkKGdZZSksaGNdfSksY30pKCksaFU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1'@; put 'MDI3NWluaj1taSh7aW1wb3J0czpbbVllLHFsLF91LEI3LG9vLFFBLEMyXX0pLGN9KSgpLGZVPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9y'@; put 'dHM6W29vLF91LG9vLHFsLEI3LHR3LEMyXX0pLGN9KSgpLEZzZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltvbyxfdSxvbyxxbCxm'@; put 'VSxfNyxDc2UsTG9lLFFBLEMyXX0pLGN9KSgpO0Z6KCk7bGV0IHZZZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltGc2Usb28scWws'@; put 'aVplLF91LF83LmZvclJvb3QoKSxCNyxDMixWNyxoVSx0dyxRQSxDc2UsZlVdfSksY30pKCkscFU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMubGljZW5jZVNlcnZpY2U9YSx0aGlzLnJvdXRlcj1kfWNhbkFjdGl2YXRlKGEsZCl7cmV0dXJuISEodm9pZCAwIT09ZD8ucm9v'@; put 'dC5xdWVyeVBhcmFtcy5mb3JjZXx8ZD8udXJsLmluY2x1ZGVzKCJsaWNlbnNpbmcvdXBkYXRlIikmJnRoaXMubGljZW5jZVNlcnZpY2UuaXNBcHBBY3RpdmF0ZWR8fG51bGwhPT10aGlzLmxpY2VuY2VTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlJiYhMT09PXRoaXMubGljZW5jZVNlcnZp'@; put 'Y2UuaXNBcHBBY3RpdmF0ZWQudmFsdWUpfHwodGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2hvbWUiKSwhMSl9Y2FuRGVhY3RpdmF0ZShhLGQsaCxmKXtyZXR1cm4hKGg/LnVybC5pbmNsdWRlcygibGljZW5zaW5nL3JlZ2lzdGVyIil8fHRoaXMubGljZW5jZVNlcnZpY2UuYXBwTG9ja2Vk'@; put 'LnZhbHVlKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoYXIoQzApLGFyKERzKSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7ZnVuY3Rpb24gSHNlKGMsbCl7KGZ1bmN0aW9uIF9ZZShjLGwpe2lm'@; put 'KGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfWZ1bmN0aW9uIGdVKGMsbCxhKXtpZighbC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'YXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBhfWZ1bmN0aW9uIGx3KGMpe3JldHVybihsdz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihsKXtyZXR1cm4gdHlw'@; put 'ZW9mIGx9OmZ1bmN0aW9uKGwpe3JldHVybiBsJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZsLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZsIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgbH0pKGMpfWZ1bmN0aW9uIEYwKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB5WWUo'@; put 'Yyl7dmFyIGw9ZnVuY3Rpb24gYlllKGMsbCl7aWYoIm9iamVjdCIhPT1sdyhjKXx8bnVsbD09PWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT1sdyhkKSlyZXR1cm4g'@; put 'ZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT09bHcobCk/bDpTdHJpbmcobCl9KGwpKWluIGM/'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWxldCBsND17YXN5bmM6ITEsYmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhlYWRlcklkczohMCxo'@; put 'ZWFkZXJQcmVmaXg6IiIsaGlnaGxpZ2h0Om51bGwsaG9va3M6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydHlwYW50czohMSx0b2tlbml6ZXI6bnVs'@; put 'bCx3YWxrVG9rZW5zOm51bGwseGh0bWw6ITF9O2Z1bmN0aW9uIE5zZShjKXtsND1jfWNvbnN0IFZzZT0vWyY8PiInXS8sd1llPW5ldyBSZWdFeHAoVnNlLnNvdXJjZSwiZyIpLEJzZT0vWzw+IiddfCYoPyEoI1xkezEsN318I1tYeF1bYS1mQS1GMC05XXsxLDZ9fFx3Kyk7KS8sQ1llPW5ldyBS'@; put 'ZWdFeHAoQnNlLnNvdXJjZSwiZyIpLFNZZT17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7In0sanNlPWM9PlNZZVtjXTtmdW5jdGlvbiBTdShjLGwpe2lmKGwpe2lmKFZzZS50ZXN0KGMpKXJldHVybiBjLnJlcGxhY2Uod1llLGpzZSl9'@; put 'ZWxzZSBpZihCc2UudGVzdChjKSlyZXR1cm4gYy5yZXBsYWNlKENZZSxqc2UpO3JldHVybiBjfWNvbnN0IE1ZZT0vJigjKD86XGQrKXwoPzojeFswLTlBLUZhLWZdKyl8KD86XHcrKSk7Py9naTtmdW5jdGlvbiB6c2UoYyl7cmV0dXJuIGMucmVwbGFjZShNWWUsKGwsYSk9PiJjb2xvbiI9PT0o'@; put 'YT1hLnRvTG93ZXJDYXNlKCkpPyI6IjoiIyI9PT1hLmNoYXJBdCgwKT8ieCI9PT1hLmNoYXJBdCgxKT9TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGEuc3Vic3RyaW5nKDIpLDE2KSk6U3RyaW5nLmZyb21DaGFyQ29kZSgrYS5zdWJzdHJpbmcoMSkpOiIiKX1jb25zdCB4WWU9LyhefFte'@; put 'XFtdKVxeL2c7ZnVuY3Rpb24gZmEoYyxsKXtjPSJzdHJpbmciPT10eXBlb2YgYz9jOmMuc291cmNlLGw9bHx8IiI7Y29uc3QgYT17cmVwbGFjZTooZCxoKT0+KGg9KGg9aC5zb3VyY2V8fGgpLnJlcGxhY2UoeFllLCIkMSIpLGM9Yy5yZXBsYWNlKGQsaCksYSksZ2V0UmVnZXg6KCk9Pm5ldyBS'@; put 'ZWdFeHAoYyxsKX07cmV0dXJuIGF9Y29uc3QgRVllPS9bXlx3Ol0vZyxrWWU9L14kfF5bYS16XVthLXowLTkrLi1dKjp8Xls/I10vaTtmdW5jdGlvbiBVc2UoYyxsLGEpe2lmKGMpe2xldCBkO3RyeXtkPWRlY29kZVVSSUNvbXBvbmVudCh6c2UoYSkpLnJlcGxhY2UoRVllLCIiKS50b0xvd2Vy'@; put 'Q2FzZSgpfWNhdGNoe3JldHVybiBudWxsfWlmKDA9PT1kLmluZGV4T2YoImphdmFzY3JpcHQ6Iil8fDA9PT1kLmluZGV4T2YoInZic2NyaXB0OiIpfHwwPT09ZC5pbmRleE9mKCJkYXRhOiIpKXJldHVybiBudWxsfWwmJiFrWWUudGVzdChhKSYmKGE9ZnVuY3Rpb24gSVllKGMsbCl7ZVRbIiAi'@; put 'K2NdfHwoZVRbIiAiK2NdPUFZZS50ZXN0KGMpP2MrIi8iOm5UKGMsIi8iLCEwKSk7Y29uc3QgYT0tMT09PShjPWVUWyIgIitjXSkuaW5kZXhPZigiOiIpO3JldHVybiIvLyI9PT1sLnN1YnN0cmluZygwLDIpP2E/bDpjLnJlcGxhY2UoVFllLCIkMSIpK2w6Ii8iPT09bC5jaGFyQXQoMCk/YT9s'@; put 'OmMucmVwbGFjZShEWWUsIiQxIikrbDpjK2x9KGwsYSkpO3RyeXthPWVuY29kZVVSSShhKS5yZXBsYWNlKC8lMjUvZywiJSIpfWNhdGNoe3JldHVybiBudWxsfXJldHVybiBhfWNvbnN0IGVUPXt9LEFZZT0vXlteOl0rOlwvKlteL10qJC8sVFllPS9eKFteOl0rOilbXHNcU10qJC8sRFllPS9e'@; put 'KFteOl0rOlwvKlteL10qKVtcc1xTXSokLyx0VD17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIFpzZShjLGwpe2NvbnN0IGQ9Yy5yZXBsYWNlKC9cfC9nLChmLF8sVCk9PntsZXQgVz0hMSxpZT1fO2Zvcig7LS1pZT49MCYmIlxcIj09PVRbaWVdOylXPSFXO3JldHVybiBXPyJ8IjoiIHwi'@; put 'fSkuc3BsaXQoLyBcfC8pO2xldCBoPTA7aWYoZFswXS50cmltKCl8fGQuc2hpZnQoKSxkLmxlbmd0aD4wJiYhZFtkLmxlbmd0aC0xXS50cmltKCkmJmQucG9wKCksZC5sZW5ndGg+bClkLnNwbGljZShsKTtlbHNlIGZvcig7ZC5sZW5ndGg8bDspZC5wdXNoKCIiKTtmb3IoO2g8ZC5sZW5ndGg7'@; put 'aCsrKWRbaF09ZFtoXS50cmltKCkucmVwbGFjZSgvXFxcfC9nLCJ8Iik7cmV0dXJuIGR9ZnVuY3Rpb24gblQoYyxsLGEpe2NvbnN0IGQ9Yy5sZW5ndGg7aWYoMD09PWQpcmV0dXJuIiI7bGV0IGg9MDtmb3IoO2g8ZDspe2NvbnN0IGY9Yy5jaGFyQXQoZC1oLTEpO2lmKGYhPT1sfHxhKXtpZihm'@; put 'PT09bHx8IWEpYnJlYWs7aCsrfWVsc2UgaCsrfXJldHVybiBjLnNsaWNlKDAsZC1oKX1mdW5jdGlvbiBZc2UoYyxsLGEsZCl7Y29uc3QgaD1sLmhyZWYsZj1sLnRpdGxlP1N1KGwudGl0bGUpOm51bGwsXz1jWzFdLnJlcGxhY2UoL1xcKFtcW1xdXSkvZywiJDEiKTtpZigiISIhPT1jWzBdLmNo'@; put 'YXJBdCgwKSl7ZC5zdGF0ZS5pbkxpbms9ITA7Y29uc3QgVD17dHlwZToibGluayIscmF3OmEsaHJlZjpoLHRpdGxlOmYsdGV4dDpfLHRva2VuczpkLmlubGluZVRva2VucyhfKX07cmV0dXJuIGQuc3RhdGUuaW5MaW5rPSExLFR9cmV0dXJue3R5cGU6ImltYWdlIixyYXc6YSxocmVmOmgsdGl0'@; put 'bGU6Zix0ZXh0OlN1KF8pfX1jbGFzcyByVHtjb25zdHJ1Y3RvcihsKXt0aGlzLm9wdGlvbnM9bHx8bDR9c3BhY2UobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2NrLm5ld2xpbmUuZXhlYyhsKTtpZihhJiZhWzBdLmxlbmd0aD4wKXJldHVybnt0eXBlOiJzcGFjZSIscmF3OmFbMF19fWNvZGUo'@; put 'bCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2NrLmNvZGUuZXhlYyhsKTtpZihhKXtjb25zdCBkPWFbMF0ucmVwbGFjZSgvXiB7MSw0fS9nbSwiIik7cmV0dXJue3R5cGU6ImNvZGUiLHJhdzphWzBdLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsdGV4dDp0aGlzLm9wdGlvbnMucGVkYW50aWM/'@; put 'ZDpuVChkLCJcbiIpfX19ZmVuY2VzKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay5mZW5jZXMuZXhlYyhsKTtpZihhKXtjb25zdCBkPWFbMF0saD1mdW5jdGlvbiBPWWUoYyxsKXtjb25zdCBhPWMubWF0Y2goL14oXHMrKSg/OmBgYCkvKTtpZihudWxsPT09YSlyZXR1cm4gbDtjb25zdCBk'@; put 'PWFbMV07cmV0dXJuIGwuc3BsaXQoIlxuIikubWFwKGg9Pntjb25zdCBmPWgubWF0Y2goL15ccysvKTtpZihudWxsPT09ZilyZXR1cm4gaDtjb25zdFtfXT1mO3JldHVybiBfLmxlbmd0aD49ZC5sZW5ndGg/aC5zbGljZShkLmxlbmd0aCk6aH0pLmpvaW4oIlxuIil9KGQsYVszXXx8IiIpO3Jl'@; put 'dHVybnt0eXBlOiJjb2RlIixyYXc6ZCxsYW5nOmFbMl0/YVsyXS50cmltKCkucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKTphWzJdLHRleHQ6aH19fWhlYWRpbmcobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2NrLmhlYWRpbmcuZXhlYyhsKTtpZihhKXtsZXQgZD1h'@; put 'WzJdLnRyaW0oKTtpZigvIyQvLnRlc3QoZCkpe2NvbnN0IGg9blQoZCwiIyIpOyh0aGlzLm9wdGlvbnMucGVkYW50aWN8fCFofHwvICQvLnRlc3QoaCkpJiYoZD1oLnRyaW0oKSl9cmV0dXJue3R5cGU6ImhlYWRpbmciLHJhdzphWzBdLGRlcHRoOmFbMV0ubGVuZ3RoLHRleHQ6ZCx0b2tlbnM6'@; put 'dGhpcy5sZXhlci5pbmxpbmUoZCl9fX1ocihsKXtjb25zdCBhPXRoaXMucnVsZXMuYmxvY2suaHIuZXhlYyhsKTtpZihhKXJldHVybnt0eXBlOiJociIscmF3OmFbMF19fWJsb2NrcXVvdGUobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2NrLmJsb2NrcXVvdGUuZXhlYyhsKTtpZihhKXtjb25z'@; put 'dCBkPWFbMF0ucmVwbGFjZSgvXiAqPlsgXHRdPy9nbSwiIiksaD10aGlzLmxleGVyLnN0YXRlLnRvcDt0aGlzLmxleGVyLnN0YXRlLnRvcD0hMDtjb25zdCBmPXRoaXMubGV4ZXIuYmxvY2tUb2tlbnMoZCk7cmV0dXJuIHRoaXMubGV4ZXIuc3RhdGUudG9wPWgse3R5cGU6ImJsb2NrcXVvdGUi'@; put 'LHJhdzphWzBdLHRva2VuczpmLHRleHQ6ZH19fWxpc3QobCl7bGV0IGE9dGhpcy5ydWxlcy5ibG9jay5saXN0LmV4ZWMobCk7aWYoYSl7bGV0IGQsaCxmLF8sVCxXLGllLHBlLHdlLEVlLFplLGl0LGV0PWFbMV0udHJpbSgpO2NvbnN0IHl0PWV0Lmxlbmd0aD4xLEV0PXt0eXBlOiJsaXN0Iixy'@; put 'YXc6IiIsb3JkZXJlZDp5dCxzdGFydDp5dD8rZXQuc2xpY2UoMCwtMSk6IiIsbG9vc2U6ITEsaXRlbXM6W119O2V0PXl0P2BcXGR7MSw5fVxcJHtldC5zbGljZSgtMSl9YDpgXFwke2V0fWAsdGhpcy5vcHRpb25zLnBlZGFudGljJiYoZXQ9eXQ/ZXQ6IlsqKy1dIik7Y29uc3QgU3Q9bmV3IFJl'@; put 'Z0V4cChgXiggezAsM30ke2V0fSkoKD86W1x0IF1bXlxcbl0qKT8oPzpcXG58JCkpYCk7Zm9yKDtsJiYoaXQ9ITEsKGE9U3QuZXhlYyhsKSkmJiF0aGlzLnJ1bGVzLmJsb2NrLmhyLnRlc3QobCkpOyl7aWYoZD1hWzBdLGw9bC5zdWJzdHJpbmcoZC5sZW5ndGgpLHBlPWFbMl0uc3BsaXQoIlxu'@; put 'IiwxKVswXS5yZXBsYWNlKC9eXHQrLyxubj0+IiAiLnJlcGVhdCgzKm5uLmxlbmd0aCkpLHdlPWwuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWM/KF89MixaZT1wZS50cmltTGVmdCgpKTooXz1hWzJdLnNlYXJjaCgvW14gXS8pLF89Xz40PzE6XyxaZT1wZS5zbGljZShf'@; put 'KSxfKz1hWzFdLmxlbmd0aCksVz0hMSwhcGUmJi9eICokLy50ZXN0KHdlKSYmKGQrPXdlKyJcbiIsbD1sLnN1YnN0cmluZyh3ZS5sZW5ndGgrMSksaXQ9ITApLCFpdCl7Y29uc3Qgbm49bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsXy0xKX19KD86WyorLV18XFxkezEsOX1bLildKSgo'@; put 'PzpbIFx0XVteXFxuXSopPyg/OlxcbnwkKSlgKSx2bj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4oMyxfLTEpfX0oKD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpYCksTm49bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsXy0xKX19KD86XGBc'@; put 'YFxgfH5+filgKSxjcj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4oMyxfLTEpfX0jYCk7Zm9yKDtsJiYoRWU9bC5zcGxpdCgiXG4iLDEpWzBdLHdlPUVlLHRoaXMub3B0aW9ucy5wZWRhbnRpYyYmKHdlPXdlLnJlcGxhY2UoL14gezEsNH0oPz0oIHs0fSkqW14gXSkvZywiICAiKSksIShO'@; put 'bi50ZXN0KHdlKXx8Y3IudGVzdCh3ZSl8fG5uLnRlc3Qod2UpfHx2bi50ZXN0KGwpKSk7KXtpZih3ZS5zZWFyY2goL1teIF0vKT49X3x8IXdlLnRyaW0oKSlaZSs9IlxuIit3ZS5zbGljZShfKTtlbHNle2lmKFd8fHBlLnNlYXJjaCgvW14gXS8pPj00fHxObi50ZXN0KHBlKXx8Y3IudGVzdChw'@; put 'ZSl8fHZuLnRlc3QocGUpKWJyZWFrO1plKz0iXG4iK3dlfSFXJiYhd2UudHJpbSgpJiYoVz0hMCksZCs9RWUrIlxuIixsPWwuc3Vic3RyaW5nKEVlLmxlbmd0aCsxKSxwZT13ZS5zbGljZShfKX19RXQubG9vc2V8fChpZT9FdC5sb29zZT0hMDovXG4gKlxuICokLy50ZXN0KGQpJiYoaWU9ITAp'@; put 'KSx0aGlzLm9wdGlvbnMuZ2ZtJiYoaD0vXlxbWyB4WF1cXSAvLmV4ZWMoWmUpLGgmJihmPSJbIF0gIiE9PWhbMF0sWmU9WmUucmVwbGFjZSgvXlxbWyB4WF1cXSArLywiIikpKSxFdC5pdGVtcy5wdXNoKHt0eXBlOiJsaXN0X2l0ZW0iLHJhdzpkLHRhc2s6ISFoLGNoZWNrZWQ6Zixsb29zZToh'@; put 'MSx0ZXh0OlplfSksRXQucmF3Kz1kfUV0Lml0ZW1zW0V0Lml0ZW1zLmxlbmd0aC0xXS5yYXc9ZC50cmltUmlnaHQoKSxFdC5pdGVtc1tFdC5pdGVtcy5sZW5ndGgtMV0udGV4dD1aZS50cmltUmlnaHQoKSxFdC5yYXc9RXQucmF3LnRyaW1SaWdodCgpO2NvbnN0IEp0PUV0Lml0ZW1zLmxlbmd0'@; put 'aDtmb3IoVD0wO1Q8SnQ7VCsrKWlmKHRoaXMubGV4ZXIuc3RhdGUudG9wPSExLEV0Lml0ZW1zW1RdLnRva2Vucz10aGlzLmxleGVyLmJsb2NrVG9rZW5zKEV0Lml0ZW1zW1RdLnRleHQsW10pLCFFdC5sb29zZSl7Y29uc3Qgbm49RXQuaXRlbXNbVF0udG9rZW5zLmZpbHRlcihObj0+InNwYWNl'@; put 'Ij09PU5uLnR5cGUpLHZuPW5uLmxlbmd0aD4wJiZubi5zb21lKE5uPT4vXG4uKlxuLy50ZXN0KE5uLnJhdykpO0V0Lmxvb3NlPXZufWlmKEV0Lmxvb3NlKWZvcihUPTA7VDxKdDtUKyspRXQuaXRlbXNbVF0ubG9vc2U9ITA7cmV0dXJuIEV0fX1odG1sKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5i'@; put 'bG9jay5odG1sLmV4ZWMobCk7aWYoYSl7Y29uc3QgZD17dHlwZToiaHRtbCIsYmxvY2s6ITAscmF3OmFbMF0scHJlOiF0aGlzLm9wdGlvbnMuc2FuaXRpemVyJiYoInByZSI9PT1hWzFdfHwic2NyaXB0Ij09PWFbMV18fCJzdHlsZSI9PT1hWzFdKSx0ZXh0OmFbMF19O2lmKHRoaXMub3B0aW9u'@; put 'cy5zYW5pdGl6ZSl7Y29uc3QgaD10aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoYVswXSk6U3UoYVswXSk7ZC50eXBlPSJwYXJhZ3JhcGgiLGQudGV4dD1oLGQudG9rZW5zPXRoaXMubGV4ZXIuaW5saW5lKGgpfXJldHVybiBkfX1kZWYobCl7Y29uc3QgYT10'@; put 'aGlzLnJ1bGVzLmJsb2NrLmRlZi5leGVjKGwpO2lmKGEpe2NvbnN0IGQ9YVsxXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzKy9nLCIgIiksaD1hWzJdP2FbMl0ucmVwbGFjZSgvXjwoLiopPiQvLCIkMSIpLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIik6IiIsZj1h'@; put 'WzNdP2FbM10uc3Vic3RyaW5nKDEsYVszXS5sZW5ndGgtMSkucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKTphWzNdO3JldHVybnt0eXBlOiJkZWYiLHRhZzpkLHJhdzphWzBdLGhyZWY6aCx0aXRsZTpmfX19dGFibGUobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2Nr'@; put 'LnRhYmxlLmV4ZWMobCk7aWYoYSl7Y29uc3QgZD17dHlwZToidGFibGUiLGhlYWRlcjpac2UoYVsxXSkubWFwKGg9Pih7dGV4dDpofSkpLGFsaWduOmFbMl0ucmVwbGFjZSgvXiAqfFx8ICokL2csIiIpLnNwbGl0KC8gKlx8ICovKSxyb3dzOmFbM10mJmFbM10udHJpbSgpP2FbM10ucmVwbGFj'@; put 'ZSgvXG5bIFx0XSokLywiIikuc3BsaXQoIlxuIik6W119O2lmKGQuaGVhZGVyLmxlbmd0aD09PWQuYWxpZ24ubGVuZ3RoKXtkLnJhdz1hWzBdO2xldCBmLF8sVCxXLGg9ZC5hbGlnbi5sZW5ndGg7Zm9yKGY9MDtmPGg7ZisrKWQuYWxpZ25bZl09L14gKi0rOiAqJC8udGVzdChkLmFsaWduW2Zd'@; put 'KT8icmlnaHQiOi9eICo6LSs6ICokLy50ZXN0KGQuYWxpZ25bZl0pPyJjZW50ZXIiOi9eICo6LSsgKiQvLnRlc3QoZC5hbGlnbltmXSk/ImxlZnQiOm51bGw7Zm9yKGg9ZC5yb3dzLmxlbmd0aCxmPTA7ZjxoO2YrKylkLnJvd3NbZl09WnNlKGQucm93c1tmXSxkLmhlYWRlci5sZW5ndGgpLm1h'@; put 'cChpZT0+KHt0ZXh0OmllfSkpO2ZvcihoPWQuaGVhZGVyLmxlbmd0aCxfPTA7XzxoO18rKylkLmhlYWRlcltfXS50b2tlbnM9dGhpcy5sZXhlci5pbmxpbmUoZC5oZWFkZXJbX10udGV4dCk7Zm9yKGg9ZC5yb3dzLmxlbmd0aCxfPTA7XzxoO18rKylmb3IoVz1kLnJvd3NbX10sVD0wO1Q8Vy5s'@; put 'ZW5ndGg7VCsrKVdbVF0udG9rZW5zPXRoaXMubGV4ZXIuaW5saW5lKFdbVF0udGV4dCk7cmV0dXJuIGR9fX1saGVhZGluZyhsKXtjb25zdCBhPXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhsKTtpZihhKXJldHVybnt0eXBlOiJoZWFkaW5nIixyYXc6YVswXSxkZXB0aDoiPSI9PT1h'@; put 'WzJdLmNoYXJBdCgwKT8xOjIsdGV4dDphWzFdLHRva2Vuczp0aGlzLmxleGVyLmlubGluZShhWzFdKX19cGFyYWdyYXBoKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay5wYXJhZ3JhcGguZXhlYyhsKTtpZihhKXtjb25zdCBkPSJcbiI9PT1hWzFdLmNoYXJBdChhWzFdLmxlbmd0aC0xKT9h'@; put 'WzFdLnNsaWNlKDAsLTEpOmFbMV07cmV0dXJue3R5cGU6InBhcmFncmFwaCIscmF3OmFbMF0sdGV4dDpkLHRva2Vuczp0aGlzLmxleGVyLmlubGluZShkKX19fXRleHQobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2NrLnRleHQuZXhlYyhsKTtpZihhKXJldHVybnt0eXBlOiJ0ZXh0IixyYXc6'@; put 'YVswXSx0ZXh0OmFbMF0sdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKGFbMF0pfX1lc2NhcGUobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmlubGluZS5lc2NhcGUuZXhlYyhsKTtpZihhKXJldHVybnt0eXBlOiJlc2NhcGUiLHJhdzphWzBdLHRleHQ6U3UoYVsxXSl9fXRhZyhsKXtjb25zdCBhPXRo'@; put 'aXMucnVsZXMuaW5saW5lLnRhZy5leGVjKGwpO2lmKGEpcmV0dXJuIXRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxhIC9pLnRlc3QoYVswXSk/dGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITA6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePFwvYT4vaS50ZXN0KGFbMF0pJiYodGhpcy5s'@; put 'ZXhlci5zdGF0ZS5pbkxpbms9ITEpLCF0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePChwcmV8Y29kZXxrYmR8c2NyaXB0KShcc3w+KS9pLnRlc3QoYVswXSk/dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayYmL148XC8ocHJl'@; put 'fGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KGFbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSExKSx7dHlwZTp0aGlzLm9wdGlvbnMuc2FuaXRpemU/InRleHQiOiJodG1sIixyYXc6YVswXSxpbkxpbms6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmssaW5SYXdCbG9jazp0'@; put 'aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2ssYmxvY2s6ITEsdGV4dDp0aGlzLm9wdGlvbnMuc2FuaXRpemU/dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKGFbMF0pOlN1KGFbMF0pOmFbMF19fWxpbmsobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmlubGluZS5s'@; put 'aW5rLmV4ZWMobCk7aWYoYSl7Y29uc3QgZD1hWzJdLnRyaW0oKTtpZighdGhpcy5vcHRpb25zLnBlZGFudGljJiYvXjwvLnRlc3QoZCkpe2lmKCEvPiQvLnRlc3QoZCkpcmV0dXJuO2NvbnN0IF89blQoZC5zbGljZSgwLC0xKSwiXFwiKTtpZigoZC5sZW5ndGgtXy5sZW5ndGgpJTI9PTApcmV0'@; put 'dXJufWVsc2V7Y29uc3QgXz1mdW5jdGlvbiBMWWUoYyxsKXtpZigtMT09PWMuaW5kZXhPZihsWzFdKSlyZXR1cm4tMTtjb25zdCBhPWMubGVuZ3RoO2xldCBkPTAsaD0wO2Zvcig7aDxhO2grKylpZigiXFwiPT09Y1toXSloKys7ZWxzZSBpZihjW2hdPT09bFswXSlkKys7ZWxzZSBpZihjW2hd'@; put 'PT09bFsxXSYmKGQtLSxkPDApKXJldHVybiBoO3JldHVybi0xfShhWzJdLCIoKSIpO2lmKF8+LTEpe2NvbnN0IFc9KDA9PT1hWzBdLmluZGV4T2YoIiEiKT81OjQpK2FbMV0ubGVuZ3RoK187YVsyXT1hWzJdLnN1YnN0cmluZygwLF8pLGFbMF09YVswXS5zdWJzdHJpbmcoMCxXKS50cmltKCks'@; put 'YVszXT0iIn19bGV0IGg9YVsyXSxmPSIiO2lmKHRoaXMub3B0aW9ucy5wZWRhbnRpYyl7Y29uc3QgXz0vXihbXiciXSpbXlxzXSlccysoWyciXSkoLiopXDIvLmV4ZWMoaCk7XyYmKGg9X1sxXSxmPV9bM10pfWVsc2UgZj1hWzNdP2FbM10uc2xpY2UoMSwtMSk6IiI7cmV0dXJuIGg9aC50cmlt'@; put 'KCksL148Ly50ZXN0KGgpJiYoaD10aGlzLm9wdGlvbnMucGVkYW50aWMmJiEvPiQvLnRlc3QoZCk/aC5zbGljZSgxKTpoLnNsaWNlKDEsLTEpKSxZc2UoYSx7aHJlZjpoJiZoLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIiksdGl0bGU6ZiYmZi5yZXBsYWNlKHRoaXMu'@; put 'cnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpfSxhWzBdLHRoaXMubGV4ZXIpfX1yZWZsaW5rKGwsYSl7bGV0IGQ7aWYoKGQ9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKGwpKXx8KGQ9dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWMobCkpKXtsZXQgaD0oZFsyXXx8ZFsxXSku'@; put 'cmVwbGFjZSgvXHMrL2csIiAiKTtpZihoPWFbaC50b0xvd2VyQ2FzZSgpXSwhaCl7Y29uc3QgZj1kWzBdLmNoYXJBdCgwKTtyZXR1cm57dHlwZToidGV4dCIscmF3OmYsdGV4dDpmfX1yZXR1cm4gWXNlKGQsaCxkWzBdLHRoaXMubGV4ZXIpfX1lbVN0cm9uZyhsLGEsZD0iIil7bGV0IGg9dGhp'@; put 'cy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcubERlbGltLmV4ZWMobCk7aWYoISghaHx8aFszXSYmZC5tYXRjaCgvW1xwe0x9XHB7Tn1dL3UpKSYmKCFoWzFdJiYhaFsyXXx8IWR8fHRoaXMucnVsZXMuaW5saW5lLnB1bmN0dWF0aW9uLmV4ZWMoZCkpKXtjb25zdCBfPWhbMF0ubGVuZ3RoLTE7bGV0'@; put 'IFQsVyxpZT1fLHBlPTA7Y29uc3Qgd2U9IioiPT09aFswXVswXT90aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2Zvcih3ZS5sYXN0SW5kZXg9MCxhPWEuc2xpY2UoLTEqbC5sZW5ndGgrXyk7bnVsbCE9KGg9'@; put 'd2UuZXhlYyhhKSk7KXtpZihUPWhbMV18fGhbMl18fGhbM118fGhbNF18fGhbNV18fGhbNl0sIVQpY29udGludWU7aWYoVz1ULmxlbmd0aCxoWzNdfHxoWzRdKXtpZSs9Vztjb250aW51ZX1pZigoaFs1XXx8aFs2XSkmJl8lMyYmISgoXytXKSUzKSl7cGUrPVc7Y29udGludWV9aWYoaWUtPVcs'@; put 'aWU+MCljb250aW51ZTtXPU1hdGgubWluKFcsVytpZStwZSk7Y29uc3QgRWU9bC5zbGljZSgwLF8raC5pbmRleCtXKzEpO2lmKE1hdGgubWluKF8sVyklMil7Y29uc3QgaXQ9RWUuc2xpY2UoMSwtMSk7cmV0dXJue3R5cGU6ImVtIixyYXc6RWUsdGV4dDppdCx0b2tlbnM6dGhpcy5sZXhlci5p'@; put 'bmxpbmVUb2tlbnMoaXQpfX1jb25zdCBaZT1FZS5zbGljZSgyLC0yKTtyZXR1cm57dHlwZToic3Ryb25nIixyYXc6RWUsdGV4dDpaZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoWmUpfX19fWNvZGVzcGFuKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5pbmxpbmUuY29kZS5leGVjKGwp'@; put 'O2lmKGEpe2xldCBkPWFbMl0ucmVwbGFjZSgvXG4vZywiICIpO2NvbnN0IGg9L1teIF0vLnRlc3QoZCksZj0vXiAvLnRlc3QoZCkmJi8gJC8udGVzdChkKTtyZXR1cm4gaCYmZiYmKGQ9ZC5zdWJzdHJpbmcoMSxkLmxlbmd0aC0xKSksZD1TdShkLCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzph'@; put 'WzBdLHRleHQ6ZH19fWJyKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5pbmxpbmUuYnIuZXhlYyhsKTtpZihhKXJldHVybnt0eXBlOiJiciIscmF3OmFbMF19fWRlbChsKXtjb25zdCBhPXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKGwpO2lmKGEpcmV0dXJue3R5cGU6ImRlbCIscmF3OmFbMF0s'@; put 'dGV4dDphWzJdLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhhWzJdKX19YXV0b2xpbmsobCxhKXtjb25zdCBkPXRoaXMucnVsZXMuaW5saW5lLmF1dG9saW5rLmV4ZWMobCk7aWYoZCl7bGV0IGgsZjtyZXR1cm4iQCI9PT1kWzJdPyhoPVN1KHRoaXMub3B0aW9ucy5tYW5nbGU/YShk'@; put 'WzFdKTpkWzFdKSxmPSJtYWlsdG86IitoKTooaD1TdShkWzFdKSxmPWgpLHt0eXBlOiJsaW5rIixyYXc6ZFswXSx0ZXh0OmgsaHJlZjpmLHRva2Vuczpbe3R5cGU6InRleHQiLHJhdzpoLHRleHQ6aH1dfX19dXJsKGwsYSl7bGV0IGQ7aWYoZD10aGlzLnJ1bGVzLmlubGluZS51cmwuZXhlYyhs'@; put 'KSl7bGV0IGgsZjtpZigiQCI9PT1kWzJdKWg9U3UodGhpcy5vcHRpb25zLm1hbmdsZT9hKGRbMF0pOmRbMF0pLGY9Im1haWx0bzoiK2g7ZWxzZXtsZXQgXztkb3tfPWRbMF0sZFswXT10aGlzLnJ1bGVzLmlubGluZS5fYmFja3BlZGFsLmV4ZWMoZFswXSlbMF19d2hpbGUoXyE9PWRbMF0pO2g9'@; put 'U3UoZFswXSksZj0id3d3LiI9PT1kWzFdPyJodHRwOi8vIitkWzBdOmRbMF19cmV0dXJue3R5cGU6ImxpbmsiLHJhdzpkWzBdLHRleHQ6aCxocmVmOmYsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OmgsdGV4dDpofV19fX1pbmxpbmVUZXh0KGwsYSl7Y29uc3QgZD10aGlzLnJ1bGVzLmlubGlu'@; put 'ZS50ZXh0LmV4ZWMobCk7aWYoZCl7bGV0IGg7cmV0dXJuIGg9dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoZFswXSk6U3UoZFswXSk6ZFswXTpTdSh0aGlzLm9wdGlv'@; put 'bnMuc21hcnR5cGFudHM/YShkWzBdKTpkWzBdKSx7dHlwZToidGV4dCIscmF3OmRbMF0sdGV4dDpofX19fWNvbnN0IFRvPXtuZXdsaW5lOi9eKD86ICooPzpcbnwkKSkrLyxjb2RlOi9eKCB7NH1bXlxuXSsoPzpcbig/OiAqKD86XG58JCkpKik/KSsvLGZlbmNlczovXiB7MCwzfShgezMsfSg/'@; put 'PVteYFxuXSooPzpcbnwkKSl8fnszLH0pKFteXG5dKikoPzpcbnwkKSg/OnwoW1xzXFNdKj8pKD86XG58JCkpKD86IHswLDN9XDFbfmBdKiAqKD89XG58JCl8JCkvLGhyOi9eIHswLDN9KCg/Oi1bXHQgXSopezMsfXwoPzpfWyBcdF0qKXszLH18KD86XCpbIFx0XSopezMsfSkoPzpcbit8JCkv'@; put 'LGhlYWRpbmc6L14gezAsM30oI3sxLDZ9KSg/PVxzfCQpKC4qKSg/OlxuK3wkKS8sYmxvY2txdW90ZTovXiggezAsM30+ID8ocGFyYWdyYXBofFteXG5dKikoPzpcbnwkKSkrLyxsaXN0Oi9eKCB7MCwzfWJ1bGwpKFsgXHRdW15cbl0rPyk/KD86XG58JCkvLGh0bWw6Il4gezAsM30oPzo8KHNj'@; put 'cmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW1xccz5dW1xcc1xcU10qPyg/OjwvXFwxPlteXFxuXSpcXG4rfCQpfGNvbW1lbnRbXlxcbl0qKFxcbit8JCl8PFxcP1tcXHNcXFNdKj8oPzpcXD8+XFxuKnwkKXw8IVtBLVpdW1xcc1xcU10qPyg/Oj5cXG4qfCQpfDwhXFxbQ0RBVEFcXFtbXFxzXFxT'@; put 'XSo/KD86XFxdXFxdPlxcbip8JCl8PC8/KHRhZykoPzogK3xcXG58Lz8+KVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpfDwoPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKShbYS16XVtcXHctXSopKD86YXR0cmlidXRlKSo/ICovPz4oPz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNd'@; put 'Kj8oPzooPzpcXG4gKikrXFxufCQpfDwvKD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSlbYS16XVtcXHctXSpcXHMqPig/PVsgXFx0XSooPzpcXG58JCkpW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCkpIixkZWY6L14gezAsM31cWyhsYWJlbClcXTogKig/OlxuICopPyhbXjxcc11b'@; put 'XlxzXSp8PC4qPz4pKD86KD86ICsoPzpcbiAqKT98ICpcbiAqKSh0aXRsZSkpPyAqKD86XG4rfCQpLyx0YWJsZTp0VCxsaGVhZGluZzovXigoPzooPyFeYnVsbCApLnxcbig/IVxufGJ1bGwgKSkrPylcbiB7MCwzfSg9K3wtKykgKig/OlxuK3wkKS8sX3BhcmFncmFwaDovXihbXlxuXSsoPzpc'@; put 'big/IWhyfGhlYWRpbmd8bGhlYWRpbmd8YmxvY2txdW90ZXxmZW5jZXN8bGlzdHxodG1sfHRhYmxlfCArXG4pW15cbl0rKSopLyx0ZXh0Oi9eW15cbl0rLyxfbGFiZWw6Lyg/IVxzKlxdKSg/OlxcLnxbXlxbXF1cXF0pKy8sX3RpdGxlOi8oPzoiKD86XFwiP3xbXiJcXF0pKiJ8J1teJ1xuXSoo'@; put 'PzpcblteJ1xuXSspKlxuPyd8XChbXigpXSpcKSkvfTtUby5kZWY9ZmEoVG8uZGVmKS5yZXBsYWNlKCJsYWJlbCIsVG8uX2xhYmVsKS5yZXBsYWNlKCJ0aXRsZSIsVG8uX3RpdGxlKS5nZXRSZWdleCgpLFRvLmJ1bGxldD0vKD86WyorLV18XGR7MSw5fVsuKV0pLyxUby5saXN0SXRlbVN0YXJ0'@; put 'PWZhKC9eKCAqKShidWxsKSAqLykucmVwbGFjZSgiYnVsbCIsVG8uYnVsbGV0KS5nZXRSZWdleCgpLFRvLmxpc3Q9ZmEoVG8ubGlzdCkucmVwbGFjZSgvYnVsbC9nLFRvLmJ1bGxldCkucmVwbGFjZSgiaHIiLCJcXG4rKD89XFwxPyg/Oig/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAq'@; put 'KXszLH0pKD86XFxuK3wkKSkiKS5yZXBsYWNlKCJkZWYiLCJcXG4rKD89IitUby5kZWYuc291cmNlKyIpIikuZ2V0UmVnZXgoKSxUby5fdGFnPSJhZGRyZXNzfGFydGljbGV8YXNpZGV8YmFzZXxiYXNlZm9udHxibG9ja3F1b3RlfGJvZHl8Y2FwdGlvbnxjZW50ZXJ8Y29sfGNvbGdyb3VwfGRk'@; put 'fGRldGFpbHN8ZGlhbG9nfGRpcnxkaXZ8ZGx8ZHR8ZmllbGRzZXR8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGZvcm18ZnJhbWV8ZnJhbWVzZXR8aFsxLTZdfGhlYWR8aGVhZGVyfGhyfGh0bWx8aWZyYW1lfGxlZ2VuZHxsaXxsaW5rfG1haW58bWVudXxtZW51aXRlbXxtZXRhfG5hdnxub2Zy'@; put 'YW1lc3xvbHxvcHRncm91cHxvcHRpb258cHxwYXJhbXxzZWN0aW9ufHNvdXJjZXxzdW1tYXJ5fHRhYmxlfHRib2R5fHRkfHRmb290fHRofHRoZWFkfHRpdGxlfHRyfHRyYWNrfHVsIixUby5fY29tbWVudD0vPCEtLSg/IS0/PilbXHNcU10qPyg/Oi0tPnwkKS8sVG8uaHRtbD1mYShUby5odG1s'@; put 'LCJpIikucmVwbGFjZSgiY29tbWVudCIsVG8uX2NvbW1lbnQpLnJlcGxhY2UoInRhZyIsVG8uX3RhZykucmVwbGFjZSgiYXR0cmlidXRlIiwvICtbYS16QS1aOl9dW1x3LjotXSooPzogKj0gKiJbXiJcbl0qInwgKj0gKidbXidcbl0qJ3wgKj0gKlteXHMiJz08PmBdKyk/LykuZ2V0UmVnZXgo'@; put 'KSxUby5saGVhZGluZz1mYShUby5saGVhZGluZykucmVwbGFjZSgvYnVsbC9nLFRvLmJ1bGxldCkuZ2V0UmVnZXgoKSxUby5wYXJhZ3JhcGg9ZmEoVG8uX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLFRvLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxs'@; put 'aGVhZGluZyIsIiIpLnJlcGxhY2UoInx0YWJsZSIsIiIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwx'@; put 'Wy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixUby5fdGFnKS5nZXRSZWdleCgpLFRvLmJsb2NrcXVvdGU9ZmEoVG8uYmxvY2txdW90ZSkucmVwbGFjZSgicGFy'@; put 'YWdyYXBoIixUby5wYXJhZ3JhcGgpLmdldFJlZ2V4KCksVG8ubm9ybWFsPXsuLi5Ub30sVG8uZ2ZtPXsuLi5Uby5ub3JtYWwsdGFibGU6Il4gKihbXlxcbiBdLipcXHwuKilcXG4gezAsM30oPzpcXHwgKik/KDo/LSs6PyAqKD86XFx8ICo6Py0rOj8gKikqKSg/OlxcfCAqKT8oPzpcXG4oKD86'@; put 'KD8hICpcXG58aHJ8aGVhZGluZ3xibG9ja3F1b3RlfGNvZGV8ZmVuY2VzfGxpc3R8aHRtbCkuKig/OlxcbnwkKSkqKVxcbip8JCkifSxUby5nZm0udGFibGU9ZmEoVG8uZ2ZtLnRhYmxlKS5yZXBsYWNlKCJociIsVG8uaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVw'@; put 'bGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJjb2RlIiwiIHs0fVteXFxuXSIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIp'@; put 'LnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsVG8uX3RhZykuZ2V0UmVnZXgoKSxUby5nZm0ucGFyYWdyYXBoPWZhKFRvLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixUby5o'@; put 'cikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5yZXBsYWNlKCJ8bGhlYWRpbmciLCIiKS5yZXBsYWNlKCJ0YWJsZSIsVG8uZ2ZtLnRhYmxlKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxu'@; put 'XSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsVG8uX3Rh'@; put 'ZykuZ2V0UmVnZXgoKSxUby5wZWRhbnRpYz17Li4uVG8ubm9ybWFsLGh0bWw6ZmEoIl4gKig/OmNvbW1lbnQgKig/OlxcbnxcXHMqJCl8PCh0YWcpW1xcc1xcU10rPzwvXFwxPiAqKD86XFxuezIsfXxcXHMqJCl8PHRhZyg/OlwiW15cIl0qXCJ8J1teJ10qJ3xcXHNbXidcIi8+XFxzXSopKj8v'@; put 'Pz4gKig/OlxcbnsyLH18XFxzKiQpKSIpLnJlcGxhY2UoImNvbW1lbnQiLFRvLl9jb21tZW50KS5yZXBsYWNlKC90YWcvZywiKD8hKD86YXxlbXxzdHJvbmd8c21hbGx8c3xjaXRlfHF8ZGZufGFiYnJ8ZGF0YXx0aW1lfGNvZGV8dmFyfHNhbXB8a2JkfHN1YnxzdXB8aXxifHV8bWFya3xydWJ5'@; put 'fHJ0fHJwfGJkaXxiZG98c3Bhbnxicnx3YnJ8aW5zfGRlbHxpbWcpXFxiKVxcdysoPyE6fFteXFx3XFxzQF0qQClcXGIiKS5nZXRSZWdleCgpLGRlZjovXiAqXFsoW15cXV0rKVxdOiAqPD8oW15ccz5dKyk+Pyg/OiArKFsiKF1bXlxuXStbIildKSk/ICooPzpcbit8JCkvLGhlYWRpbmc6L14o'@; put 'I3sxLDZ9KSguKikoPzpcbit8JCkvLGZlbmNlczp0VCxsaGVhZGluZzovXiguKz8pXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvLHBhcmFncmFwaDpmYShUby5ub3JtYWwuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLFRvLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5d'@; put 'IikucmVwbGFjZSgibGhlYWRpbmciLFRvLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBsYWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX07Y29uc3QgWGk9e2VzY2FwZTovXlxcKFsh'@; put 'IiMkJSYnKCkqKyxcLS4vOjs8PT4/QFxbXF1cXF5fYHt8fX5dKS8sYXV0b2xpbms6L148KHNjaGVtZTpbXlxzXHgwMC1ceDFmPD5dKnxlbWFpbCk+Lyx1cmw6dFQsdGFnOiJeY29tbWVudHxePC9bYS16QS1aXVtcXHc6LV0qXFxzKj58XjxbYS16QS1aXVtcXHctXSooPzphdHRyaWJ1dGUpKj9c'@; put 'XHMqLz8+fF48XFw/W1xcc1xcU10qP1xcPz58XjwhW2EtekEtWl0rXFxzW1xcc1xcU10qPz58XjwhXFxbQ0RBVEFcXFtbXFxzXFxTXSo/XFxdXFxdPiIsbGluazovXiE/XFsobGFiZWwpXF1cKFxzKihocmVmKSg/OlxzKyh0aXRsZSkpP1xzKlwpLyxyZWZsaW5rOi9eIT9cWyhsYWJlbClcXVxb'@; put 'KHJlZilcXS8sbm9saW5rOi9eIT9cWyhyZWYpXF0oPzpcW1xdKT8vLHJlZmxpbmtTZWFyY2g6InJlZmxpbmt8bm9saW5rKD8hXFwoKSIsZW1TdHJvbmc6e2xEZWxpbTovXig/OlwqKyg/OigoPyFcKilbcHVuY3RdKXxbXlxzKl0pKXxeXysoPzooKD8hXylbcHVuY3RdKXwoW15cc19dKSkvLHJE'@; put 'ZWxpbUFzdDovXlteXypdKj9fX1teXypdKj9cKlteXypdKj8oPz1fXyl8W14qXSsoPz1bXipdKXwoPyFcKilbcHVuY3RdKFwqKykoPz1bXHNdfCQpfFtecHVuY3Rcc10oXCorKSg/IVwqKSg/PVtwdW5jdFxzXXwkKXwoPyFcKilbcHVuY3Rcc10oXCorKSg/PVtecHVuY3Rcc10pfFtcc10oXCor'@; put 'KSg/IVwqKSg/PVtwdW5jdF0pfCg/IVwqKVtwdW5jdF0oXCorKSg/IVwqKSg/PVtwdW5jdF0pfFtecHVuY3Rcc10oXCorKSg/PVtecHVuY3Rcc10pLyxyRGVsaW1VbmQ6L15bXl8qXSo/XCpcKlteXypdKj9fW15fKl0qPyg/PVwqXCopfFteX10rKD89W15fXSl8KD8hXylbcHVuY3RdKF8rKSg/'@; put 'PVtcc118JCl8W15wdW5jdFxzXShfKykoPyFfKSg/PVtwdW5jdFxzXXwkKXwoPyFfKVtwdW5jdFxzXShfKykoPz1bXnB1bmN0XHNdKXxbXHNdKF8rKSg/IV8pKD89W3B1bmN0XSl8KD8hXylbcHVuY3RdKF8rKSg/IV8pKD89W3B1bmN0XSkvfSxjb2RlOi9eKGArKShbXmBdfFteYF1bXHNcU10q'@; put 'P1teYF0pXDEoPyFgKS8sYnI6L14oIHsyLH18XFwpXG4oPyFccyokKS8sZGVsOnRULHRleHQ6L14oYCt8W15gXSkoPzooPz0gezIsfVxuKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKl9dfFxiX3wkKXxbXiBdKD89IHsyLH1cbikpKS8scHVuY3R1YXRpb246L14oKD8hWypfXSlbXHNwdW5jdHVh'@; put 'dGlvbl0pL307ZnVuY3Rpb24gUFllKGMpe3JldHVybiBjLnJlcGxhY2UoLy0tLS9nLCJcdTIwMTQiKS5yZXBsYWNlKC8tLS9nLCJcdTIwMTMiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7IlxzXSknL2csIiQxXHUyMDE4IikucmVwbGFjZSgvJy9nLCJcdTIwMTkiKS5yZXBsYWNlKC8oXnxb'@; put 'LVx1MjAxNC8oXFt7XHUyMDE4XHNdKSIvZywiJDFcdTIwMWMiKS5yZXBsYWNlKC8iL2csIlx1MjAxZCIpLnJlcGxhY2UoL1wuezN9L2csIlx1MjAyNiIpfWZ1bmN0aW9uIFdzZShjKXtsZXQgYSxkLGw9IiI7Y29uc3QgaD1jLmxlbmd0aDtmb3IoYT0wO2E8aDthKyspZD1jLmNoYXJDb2RlQXQo'@; put 'YSksTWF0aC5yYW5kb20oKT4uNSYmKGQ9IngiK2QudG9TdHJpbmcoMTYpKSxsKz0iJiMiK2QrIjsiO3JldHVybiBsfVhpLl9wdW5jdHVhdGlvbj0iXFxwe1B9JCs8PT5gXnx+IixYaS5wdW5jdHVhdGlvbj1mYShYaS5wdW5jdHVhdGlvbiwidSIpLnJlcGxhY2UoL3B1bmN0dWF0aW9uL2csWGku'@; put 'X3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLFhpLmJsb2NrU2tpcD0vXFtbXltcXV0qP1xdXChbXlwoXCldKj9cKXxgW15gXSo/YHw8W148Pl0qPz4vZyxYaS5hbnlQdW5jdHVhdGlvbj0vXFxbcHVuY3RdL2csWGkuX2VzY2FwZXM9L1xcKFtwdW5jdF0pL2csWGkuX2NvbW1lbnQ9ZmEoVG8uX2Nv'@; put 'bW1lbnQpLnJlcGxhY2UoIig/Oi0tXHgzZXwkKSIsIi0tXHgzZSIpLmdldFJlZ2V4KCksWGkuZW1TdHJvbmcubERlbGltPWZhKFhpLmVtU3Ryb25nLmxEZWxpbSwidSIpLnJlcGxhY2UoL3B1bmN0L2csWGkuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLFhpLmVtU3Ryb25nLnJEZWxpbUFzdD1m'@; put 'YShYaS5lbVN0cm9uZy5yRGVsaW1Bc3QsImd1IikucmVwbGFjZSgvcHVuY3QvZyxYaS5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksWGkuZW1TdHJvbmcuckRlbGltVW5kPWZhKFhpLmVtU3Ryb25nLnJEZWxpbVVuZCwiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLFhpLl9wdW5jdHVhdGlvbikuZ2V0'@; put 'UmVnZXgoKSxYaS5hbnlQdW5jdHVhdGlvbj1mYShYaS5hbnlQdW5jdHVhdGlvbiwiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLFhpLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxYaS5fZXNjYXBlcz1mYShYaS5fZXNjYXBlcywiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLFhpLl9wdW5jdHVhdGlvbiku'@; put 'Z2V0UmVnZXgoKSxYaS5fc2NoZW1lPS9bYS16QS1aXVthLXpBLVowLTkrLi1dezEsMzF9LyxYaS5fZW1haWw9L1thLXpBLVowLTkuISMkJSYnKisvPT9eX2B7fH1+LV0rKEApW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/Olth'@; put 'LXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKyg/IVstX10pLyxYaS5hdXRvbGluaz1mYShYaS5hdXRvbGluaykucmVwbGFjZSgic2NoZW1lIixYaS5fc2NoZW1lKS5yZXBsYWNlKCJlbWFpbCIsWGkuX2VtYWlsKS5nZXRSZWdleCgpLFhpLl9hdHRyaWJ1dGU9L1xzK1thLXpBLVo6X11b'@; put 'XHcuOi1dKig/OlxzKj1ccyoiW14iXSoifFxzKj1ccyonW14nXSonfFxzKj1ccypbXlxzIic9PD5gXSspPy8sWGkudGFnPWZhKFhpLnRhZykucmVwbGFjZSgiY29tbWVudCIsWGkuX2NvbW1lbnQpLnJlcGxhY2UoImF0dHJpYnV0ZSIsWGkuX2F0dHJpYnV0ZSkuZ2V0UmVnZXgoKSxYaS5fbGFi'@; put 'ZWw9Lyg/OlxbKD86XFwufFteXFtcXVxcXSkqXF18XFwufGBbXmBdKmB8W15cW1xdXFxgXSkqPy8sWGkuX2hyZWY9LzwoPzpcXC58W15cbjw+XFxdKSs+fFteXHNceDAwLVx4MWZdKi8sWGkuX3RpdGxlPS8iKD86XFwiP3xbXiJcXF0pKiJ8Jyg/OlxcJz98W14nXFxdKSonfFwoKD86XFxcKT98'@; put 'W14pXFxdKSpcKS8sWGkubGluaz1mYShYaS5saW5rKS5yZXBsYWNlKCJsYWJlbCIsWGkuX2xhYmVsKS5yZXBsYWNlKCJocmVmIixYaS5faHJlZikucmVwbGFjZSgidGl0bGUiLFhpLl90aXRsZSkuZ2V0UmVnZXgoKSxYaS5yZWZsaW5rPWZhKFhpLnJlZmxpbmspLnJlcGxhY2UoImxhYmVsIixY'@; put 'aS5fbGFiZWwpLnJlcGxhY2UoInJlZiIsVG8uX2xhYmVsKS5nZXRSZWdleCgpLFhpLm5vbGluaz1mYShYaS5ub2xpbmspLnJlcGxhY2UoInJlZiIsVG8uX2xhYmVsKS5nZXRSZWdleCgpLFhpLnJlZmxpbmtTZWFyY2g9ZmEoWGkucmVmbGlua1NlYXJjaCwiZyIpLnJlcGxhY2UoInJlZmxpbmsi'@; put 'LFhpLnJlZmxpbmspLnJlcGxhY2UoIm5vbGluayIsWGkubm9saW5rKS5nZXRSZWdleCgpLFhpLm5vcm1hbD17Li4uWGl9LFhpLnBlZGFudGljPXsuLi5YaS5ub3JtYWwsc3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/'@; put 'PVxTKShbXHNcU10qP1xTKVwqXCooPyFcKikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCoo'@; put 'PyFcKikvZyxlbmRVbmQ6L18oPyFfKS9nfSxsaW5rOmZhKC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixYaS5fbGFiZWwpLmdldFJlZ2V4KCkscmVmbGluazpmYSgvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsWGkuX2xh'@; put 'YmVsKS5nZXRSZWdleCgpfSxYaS5nZm09ey4uLlhpLm5vcm1hbCxlc2NhcGU6ZmEoWGkuZXNjYXBlKS5yZXBsYWNlKCJdKSIsIn58XSkiKS5nZXRSZWdleCgpLF9leHRlbmRlZF9lbWFpbDovW0EtWmEtejAtOS5fKy1dKyhAKVthLXpBLVowLTktX10rKD86XC5bYS16QS1aMC05LV9dKlthLXpB'@; put 'LVowLTldKSsoPyFbLV9dKS8sdXJsOi9eKCg/OmZ0cHxodHRwcz8pOlwvXC98d3d3XC4pKD86W2EtekEtWjAtOVwtXStcLj8pK1teXHM8XSp8XmVtYWlsLyxfYmFja3BlZGFsOi8oPzpbXj8hLiw6OypfJyJ+KCkmXSt8XChbXildKlwpfCYoPyFbYS16QS1aMC05XSs7JCl8Wz8hLiw6OypfJyJ+'@; put 'KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0pKFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxc'@; put 'Yl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSxYaS5nZm0udXJsPWZhKFhpLmdmbS51cmwsImkiKS5yZXBsYWNlKCJl'@; put 'bWFpbCIsWGkuZ2ZtLl9leHRlbmRlZF9lbWFpbCkuZ2V0UmVnZXgoKSxYaS5icmVha3M9ey4uLlhpLmdmbSxicjpmYShYaS5icikucmVwbGFjZSgiezIsfSIsIioiKS5nZXRSZWdleCgpLHRleHQ6ZmEoWGkuZ2ZtLnRleHQpLnJlcGxhY2UoIlxcYl8iLCJcXGJffCB7Mix9XFxuIikucmVwbGFj'@; put 'ZSgvXHsyLFx9L2csIioiKS5nZXRSZWdleCgpfTtjbGFzcyBraHtjb25zdHJ1Y3RvcihsKXt0aGlzLnRva2Vucz1bXSx0aGlzLnRva2Vucy5saW5rcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMub3B0aW9ucz1sfHxsNCx0aGlzLm9wdGlvbnMudG9rZW5pemVyPXRoaXMub3B0aW9ucy50b2tl'@; put 'bml6ZXJ8fG5ldyByVCx0aGlzLnRva2VuaXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyLHRoaXMudG9rZW5pemVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudG9rZW5pemVyLmxleGVyPXRoaXMsdGhpcy5pbmxpbmVRdWV1ZT1bXSx0aGlzLnN0YXRlPXtpbkxpbms6ITEsaW5SYXdCbG9j'@; put 'azohMSx0b3A6ITB9O2NvbnN0IGE9e2Jsb2NrOlRvLm5vcm1hbCxpbmxpbmU6WGkubm9ybWFsfTt0aGlzLm9wdGlvbnMucGVkYW50aWM/KGEuYmxvY2s9VG8ucGVkYW50aWMsYS5pbmxpbmU9WGkucGVkYW50aWMpOnRoaXMub3B0aW9ucy5nZm0mJihhLmJsb2NrPVRvLmdmbSxhLmlubGluZT10'@; put 'aGlzLm9wdGlvbnMuYnJlYWtzP1hpLmJyZWFrczpYaS5nZm0pLHRoaXMudG9rZW5pemVyLnJ1bGVzPWF9c3RhdGljIGdldCBydWxlcygpe3JldHVybntibG9jazpUbyxpbmxpbmU6WGl9fXN0YXRpYyBsZXgobCxhKXtyZXR1cm4gbmV3IGtoKGEpLmxleChsKX1zdGF0aWMgbGV4SW5saW5lKGws'@; put 'YSl7cmV0dXJuIG5ldyBraChhKS5pbmxpbmVUb2tlbnMobCl9bGV4KGwpe2xldCBhO2ZvcihsPWwucmVwbGFjZSgvXHJcbnxcci9nLCJcbiIpLHRoaXMuYmxvY2tUb2tlbnMobCx0aGlzLnRva2Vucyk7YT10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKGEuc3Jj'@; put 'LGEudG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9YmxvY2tUb2tlbnMobCxhPVtdKXtsZXQgZCxoLGYsXztmb3IobD10aGlzLm9wdGlvbnMucGVkYW50aWM/bC5yZXBsYWNlKC9cdC9nLCIgICAgIikucmVwbGFjZSgvXiArJC9nbSwiIik6bC5yZXBsYWNlKC9eKCAqKShcdCspL2dtLChULFcs'@; put 'aWUpPT5XKyIgICAgIi5yZXBlYXQoaWUubGVuZ3RoKSk7bDspaWYoISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2smJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrLnNvbWUoVD0+ISEoZD1ULmNhbGwoe2xleGVyOnRoaXN9LGwsYSkp'@; put 'JiYobD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKSwhMCkpKSl7aWYoZD10aGlzLnRva2VuaXplci5zcGFjZShsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLDE9PT1kLnJhdy5sZW5ndGgmJmEubGVuZ3RoPjA/YVthLmxlbmd0aC0xXS5yYXcrPSJcbiI6YS5wdXNo'@; put 'KGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIuY29kZShsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGg9YVthLmxlbmd0aC0xXSwhaHx8InBhcmFncmFwaCIhPT1oLnR5cGUmJiJ0ZXh0IiE9PWgudHlwZT9hLnB1c2goZCk6KGgucmF3Kz0iXG4iK2QucmF3LGgudGV4dCs9'@; put 'IlxuIitkLnRleHQsdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9aC50ZXh0KTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmZlbmNlcyhsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMu'@; put 'dG9rZW5pemVyLmhlYWRpbmcobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5ocihsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmJs'@; put 'b2NrcXVvdGUobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5saXN0KGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIuaHRtbChsKSl7'@; put 'bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmRlZihsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGg9YVthLmxlbmd0aC0xXSwhaHx8InBhcmFncmFwaCIhPT1oLnR5cGUmJiJ0ZXh0IiE9PWgudHlwZT90aGlz'@; put 'LnRva2Vucy5saW5rc1tkLnRhZ118fCh0aGlzLnRva2Vucy5saW5rc1tkLnRhZ109e2hyZWY6ZC5ocmVmLHRpdGxlOmQudGl0bGV9KTooaC5yYXcrPSJcbiIrZC5yYXcsaC50ZXh0Kz0iXG4iK2QucmF3LHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWgu'@; put 'dGV4dCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci50YWJsZShsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmxoZWFkaW5nKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2Nv'@; put 'bnRpbnVlfWlmKGY9bCx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jayl7bGV0IFQ9MS8wO2NvbnN0IFc9bC5zbGljZSgxKTtsZXQgaWU7dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jay5mb3JFYWNoKGZ1bmN0aW9uKHBl'@; put 'KXtpZT1wZS5jYWxsKHtsZXhlcjp0aGlzfSxXKSwibnVtYmVyIj09dHlwZW9mIGllJiZpZT49MCYmKFQ9TWF0aC5taW4oVCxpZSkpfSksVDwxLzAmJlQ+PTAmJihmPWwuc3Vic3RyaW5nKDAsVCsxKSl9aWYodGhpcy5zdGF0ZS50b3AmJihkPXRoaXMudG9rZW5pemVyLnBhcmFncmFwaChmKSkp'@; put 'e2g9YVthLmxlbmd0aC0xXSxfJiYicGFyYWdyYXBoIj09PWgudHlwZT8oaC5yYXcrPSJcbiIrZC5yYXcsaC50ZXh0Kz0iXG4iK2QudGV4dCx0aGlzLmlubGluZVF1ZXVlLnBvcCgpLHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWgudGV4dCk6YS5wdXNo'@; put 'KGQpLF89Zi5sZW5ndGghPT1sLmxlbmd0aCxsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci50ZXh0KGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksaD1hW2EubGVuZ3RoLTFdLGgmJiJ0ZXh0Ij09PWgudHlwZT8oaC5yYXcrPSJc'@; put 'biIrZC5yYXcsaC50ZXh0Kz0iXG4iK2QudGV4dCx0aGlzLmlubGluZVF1ZXVlLnBvcCgpLHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWgudGV4dCk6YS5wdXNoKGQpO2NvbnRpbnVlfWlmKGwpe2NvbnN0IFQ9IkluZmluaXRlIGxvb3Agb24gYnl0ZTog'@; put 'IitsLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcihUKTticmVha310aHJvdyBuZXcgRXJyb3IoVCl9fXJldHVybiB0aGlzLnN0YXRlLnRvcD0hMCxhfWlubGluZShsLGE9W10pe3JldHVybiB0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzpsLHRv'@; put 'a2VuczphfSksYX1pbmxpbmVUb2tlbnMobCxhPVtdKXtsZXQgZCxoLGYsVCxXLGllLF89bDtpZih0aGlzLnRva2Vucy5saW5rcyl7Y29uc3QgcGU9T2JqZWN0LmtleXModGhpcy50b2tlbnMubGlua3MpO2lmKHBlLmxlbmd0aD4wKWZvcig7bnVsbCE9KFQ9dGhpcy50b2tlbml6ZXIucnVsZXMu'@; put 'aW5saW5lLnJlZmxpbmtTZWFyY2guZXhlYyhfKSk7KXBlLmluY2x1ZGVzKFRbMF0uc2xpY2UoVFswXS5sYXN0SW5kZXhPZigiWyIpKzEsLTEpKSYmKF89Xy5zbGljZSgwLFQuaW5kZXgpKyJbIisiYSIucmVwZWF0KFRbMF0ubGVuZ3RoLTIpKyJdIitfLnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1'@; put 'bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmxhc3RJbmRleCkpfWZvcig7bnVsbCE9KFQ9dGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5leGVjKF8pKTspXz1fLnNsaWNlKDAsVC5pbmRleCkrIlsiKyJhIi5yZXBlYXQoVFswXS5sZW5ndGgtMikrIl0iK18uc2xpY2UodGhp'@; put 'cy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5sYXN0SW5kZXgpO2Zvcig7bnVsbCE9KFQ9dGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmFueVB1bmN0dWF0aW9uLmV4ZWMoXykpOylfPV8uc2xpY2UoMCxULmluZGV4KSsiKysiK18uc2xpY2UodGhpcy50b2tlbml6ZXIucnVs'@; put 'ZXMuaW5saW5lLmFueVB1bmN0dWF0aW9uLmxhc3RJbmRleCk7Zm9yKDtsOylpZihXfHwoaWU9IiIpLFc9ITEsISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuaW5saW5lJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUuc29tZShwZT0+ISEo'@; put 'ZD1wZS5jYWxsKHtsZXhlcjp0aGlzfSxsLGEpKSYmKGw9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCksITApKSkpe2lmKGQ9dGhpcy50b2tlbml6ZXIuZXNjYXBlKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50'@; put 'b2tlbml6ZXIudGFnKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksaD1hW2EubGVuZ3RoLTFdLGgmJiJ0ZXh0Ij09PWQudHlwZSYmInRleHQiPT09aC50eXBlPyhoLnJhdys9ZC5yYXcsaC50ZXh0Kz1kLnRleHQpOmEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVy'@; put 'LmxpbmsobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5yZWZsaW5rKGwsdGhpcy50b2tlbnMubGlua3MpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksaD1hW2EubGVuZ3RoLTFdLGgmJiJ0ZXh0Ij09PWQu'@; put 'dHlwZSYmInRleHQiPT09aC50eXBlPyhoLnJhdys9ZC5yYXcsaC50ZXh0Kz1kLnRleHQpOmEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmVtU3Ryb25nKGwsXyxpZSkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlz'@; put 'LnRva2VuaXplci5jb2Rlc3BhbihsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmJyKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIu'@; put 'ZGVsKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIuYXV0b2xpbmsobCxXc2UpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKCF0aGlzLnN0YXRlLmluTGluayYmKGQ9'@; put 'dGhpcy50b2tlbml6ZXIudXJsKGwsV3NlKSkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZj1sLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZSl7bGV0IHBlPTEvMDtjb25zdCB3ZT1s'@; put 'LnNsaWNlKDEpO2xldCBFZTt0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZS5mb3JFYWNoKGZ1bmN0aW9uKFplKXtFZT1aZS5jYWxsKHtsZXhlcjp0aGlzfSx3ZSksIm51bWJlciI9PXR5cGVvZiBFZSYmRWU+PTAmJihwZT1NYXRoLm1pbihwZSxFZSkpfSkscGU8MS8wJiZwZT49'@; put 'MCYmKGY9bC5zdWJzdHJpbmcoMCxwZSsxKSl9aWYoZD10aGlzLnRva2VuaXplci5pbmxpbmVUZXh0KGYsUFllKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLCJfIiE9PWQucmF3LnNsaWNlKC0xKSYmKGllPWQucmF3LnNsaWNlKC0xKSksVz0hMCxoPWFbYS5sZW5ndGgtMV0saCYmInRl'@; put 'eHQiPT09aC50eXBlPyhoLnJhdys9ZC5yYXcsaC50ZXh0Kz1kLnRleHQpOmEucHVzaChkKTtjb250aW51ZX1pZihsKXtjb25zdCBwZT0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK2wuY2hhckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2lsZW50KXtjb25zb2xlLmVycm9yKHBlKTticmVh'@; put 'a310aHJvdyBuZXcgRXJyb3IocGUpfX1yZXR1cm4gYX19Y2xhc3MgaVR7Y29uc3RydWN0b3IobCl7dGhpcy5vcHRpb25zPWx8fGw0fWNvZGUobCxhLGQpe2NvbnN0IGg9KGF8fCIiKS5tYXRjaCgvXFMqLylbMF07aWYodGhpcy5vcHRpb25zLmhpZ2hsaWdodCl7Y29uc3QgZj10aGlzLm9wdGlv'@; put 'bnMuaGlnaGxpZ2h0KGwsaCk7bnVsbCE9ZiYmZiE9PWwmJihkPSEwLGw9Zil9cmV0dXJuIGw9bC5yZXBsYWNlKC9cbiQvLCIiKSsiXG4iLGg/JzxwcmU+PGNvZGUgY2xhc3M9IicrdGhpcy5vcHRpb25zLmxhbmdQcmVmaXgrU3UoaCkrJyI+JysoZD9sOlN1KGwsITApKSsiPC9jb2RlPjwvcHJl'@; put 'PlxuIjoiPHByZT48Y29kZT4iKyhkP2w6U3UobCwhMCkpKyI8L2NvZGU+PC9wcmU+XG4ifWJsb2NrcXVvdGUobCl7cmV0dXJuYDxibG9ja3F1b3RlPlxuJHtsfTwvYmxvY2txdW90ZT5cbmB9aHRtbChsLGEpe3JldHVybiBsfWhlYWRpbmcobCxhLGQsaCl7cmV0dXJuIHRoaXMub3B0aW9ucy5o'@; put 'ZWFkZXJJZHM/YDxoJHthfSBpZD0iJHt0aGlzLm9wdGlvbnMuaGVhZGVyUHJlZml4K2guc2x1ZyhkKX0iPiR7bH08L2gke2F9PlxuYDpgPGgke2F9PiR7bH08L2gke2F9PlxuYH1ocigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifWxpc3QobCxhLGQpe2Nv'@; put 'bnN0IGg9YT8ib2wiOiJ1bCI7cmV0dXJuIjwiK2grKGEmJjEhPT1kPycgc3RhcnQ9IicrZCsnIic6IiIpKyI+XG4iK2wrIjwvIitoKyI+XG4ifWxpc3RpdGVtKGwpe3JldHVybmA8bGk+JHtsfTwvbGk+XG5gfWNoZWNrYm94KGwpe3JldHVybiI8aW5wdXQgIisobD8nY2hlY2tlZD0iIiAnOiIi'@; put 'KSsnZGlzYWJsZWQ9IiIgdHlwZT0iY2hlY2tib3giJysodGhpcy5vcHRpb25zLnhodG1sPyIgLyI6IiIpKyI+ICJ9cGFyYWdyYXBoKGwpe3JldHVybmA8cD4ke2x9PC9wPlxuYH10YWJsZShsLGEpe3JldHVybiBhJiYoYT1gPHRib2R5PiR7YX08L3Rib2R5PmApLCI8dGFibGU+XG48dGhlYWQ+'@; put 'XG4iK2wrIjwvdGhlYWQ+XG4iK2ErIjwvdGFibGU+XG4ifXRhYmxlcm93KGwpe3JldHVybmA8dHI+XG4ke2x9PC90cj5cbmB9dGFibGVjZWxsKGwsYSl7Y29uc3QgZD1hLmhlYWRlcj8idGgiOiJ0ZCI7cmV0dXJuKGEuYWxpZ24/YDwke2R9IGFsaWduPSIke2EuYWxpZ259Ij5gOmA8JHtkfT5g'@; put 'KStsK2A8LyR7ZH0+XG5gfXN0cm9uZyhsKXtyZXR1cm5gPHN0cm9uZz4ke2x9PC9zdHJvbmc+YH1lbShsKXtyZXR1cm5gPGVtPiR7bH08L2VtPmB9Y29kZXNwYW4obCl7cmV0dXJuYDxjb2RlPiR7bH08L2NvZGU+YH1icigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxici8+IjoiPGJy'@; put 'PiJ9ZGVsKGwpe3JldHVybmA8ZGVsPiR7bH08L2RlbD5gfWxpbmsobCxhLGQpe2lmKG51bGw9PT0obD1Vc2UodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLGwpKSlyZXR1cm4gZDtsZXQgaD0nPGEgaHJlZj0iJytsKyciJztyZXR1cm4gYSYmKGgrPScgdGl0bGU9'@; put 'IicrYSsnIicpLGgrPSI+IitkKyI8L2E+IixofWltYWdlKGwsYSxkKXtpZihudWxsPT09KGw9VXNlKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCxsKSkpcmV0dXJuIGQ7bGV0IGg9YDxpbWcgc3JjPSIke2x9IiBhbHQ9IiR7ZH0iYDtyZXR1cm4gYSYmKGgrPWAg'@; put 'dGl0bGU9IiR7YX0iYCksaCs9dGhpcy5vcHRpb25zLnhodG1sPyIvPiI6Ij4iLGh9dGV4dChsKXtyZXR1cm4gbH19Y2xhc3MgdlV7c3Ryb25nKGwpe3JldHVybiBsfWVtKGwpe3JldHVybiBsfWNvZGVzcGFuKGwpe3JldHVybiBsfWRlbChsKXtyZXR1cm4gbH1odG1sKGwpe3JldHVybiBsfXRl'@; put 'eHQobCl7cmV0dXJuIGx9bGluayhsLGEsZCl7cmV0dXJuIiIrZH1pbWFnZShsLGEsZCl7cmV0dXJuIiIrZH1icigpe3JldHVybiIifX1jbGFzcyBfVXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2Vlbj17fX1zZXJpYWxpemUobCl7cmV0dXJuIGwudG9Mb3dlckNhc2UoKS50cmltKCkucmVwbGFjZSgv'@; put 'PFshXC9hLXpdLio/Pi9naSwiIikucmVwbGFjZSgvW1x1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGXFwnISIjJCUmKCkqKywuLzo7PD0+P0BbXF1eYHt8fX5dL2csIiIpLnJlcGxhY2UoL1xzL2csIi0iKX1nZXROZXh0U2FmZVNsdWcobCxhKXtsZXQgZD1sLGg9MDtpZih0aGlzLnNlZW4uaGFz'@; put 'T3duUHJvcGVydHkoZCkpe2g9dGhpcy5zZWVuW2xdO2Rve2grKyxkPWwrIi0iK2h9d2hpbGUodGhpcy5zZWVuLmhhc093blByb3BlcnR5KGQpKX1yZXR1cm4gYXx8KHRoaXMuc2VlbltsXT1oLHRoaXMuc2VlbltkXT0wKSxkfXNsdWcobCxhPXt9KXtjb25zdCBkPXRoaXMuc2VyaWFsaXplKGwp'@; put 'O3JldHVybiB0aGlzLmdldE5leHRTYWZlU2x1ZyhkLGEuZHJ5cnVuKX19Y2xhc3MgQWh7Y29uc3RydWN0b3IobCl7dGhpcy5vcHRpb25zPWx8fGw0LHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyBpVCx0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5y'@; put 'ZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyB2VSx0aGlzLnNsdWdnZXI9bmV3IF9VfXN0YXRpYyBwYXJzZShsLGEpe3JldHVybiBuZXcgQWgoYSkucGFyc2UobCl9c3RhdGljIHBhcnNlSW5saW5lKGwsYSl7cmV0dXJuIG5l'@; put 'dyBBaChhKS5wYXJzZUlubGluZShsKX1wYXJzZShsLGE9ITApe2xldCBoLGYsXyxULFcsaWUscGUsd2UsRWUsWmUsaXQsZXQseXQsRXQsU3QsSnQsbm4sdm4sTm4sZD0iIjtjb25zdCBjcj1sLmxlbmd0aDtmb3IoaD0wO2g8Y3I7aCsrKWlmKFplPWxbaF0sdGhpcy5vcHRpb25zLmV4dGVuc2lv'@; put 'bnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW1plLnR5cGVdJiYoTm49dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW1plLnR5cGVdLmNhbGwoe3BhcnNlcjp0aGlzfSxaZSksITEhPT1Obnx8IVsi'@; put 'c3BhY2UiLCJociIsImhlYWRpbmciLCJjb2RlIiwidGFibGUiLCJibG9ja3F1b3RlIiwibGlzdCIsImh0bWwiLCJwYXJhZ3JhcGgiLCJ0ZXh0Il0uaW5jbHVkZXMoWmUudHlwZSkpKWQrPU5ufHwiIjtlbHNlIHN3aXRjaChaZS50eXBlKXtjYXNlInNwYWNlIjpjb250aW51ZTtjYXNlImhyIjpk'@; put 'Kz10aGlzLnJlbmRlcmVyLmhyKCk7Y29udGludWU7Y2FzZSJoZWFkaW5nIjpkKz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShaZS50b2tlbnMpLFplLmRlcHRoLHpzZSh0aGlzLnBhcnNlSW5saW5lKFplLnRva2Vucyx0aGlzLnRleHRSZW5kZXJlcikpLHRoaXMuc2x1'@; put 'Z2dlcik7Y29udGludWU7Y2FzZSJjb2RlIjpkKz10aGlzLnJlbmRlcmVyLmNvZGUoWmUudGV4dCxaZS5sYW5nLFplLmVzY2FwZWQpO2NvbnRpbnVlO2Nhc2UidGFibGUiOmZvcih3ZT0iIixwZT0iIixUPVplLmhlYWRlci5sZW5ndGgsZj0wO2Y8VDtmKyspcGUrPXRoaXMucmVuZGVyZXIudGFi'@; put 'bGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoWmUuaGVhZGVyW2ZdLnRva2Vucykse2hlYWRlcjohMCxhbGlnbjpaZS5hbGlnbltmXX0pO2Zvcih3ZSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhwZSksRWU9IiIsVD1aZS5yb3dzLmxlbmd0aCxmPTA7ZjxUO2YrKyl7Zm9yKGllPVplLnJvd3NbZl0s'@; put 'cGU9IiIsVz1pZS5sZW5ndGgsXz0wO188VztfKyspcGUrPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoaWVbX10udG9rZW5zKSx7aGVhZGVyOiExLGFsaWduOlplLmFsaWduW19dfSk7RWUrPXRoaXMucmVuZGVyZXIudGFibGVyb3cocGUpfWQrPXRoaXMucmVuZGVy'@; put 'ZXIudGFibGUod2UsRWUpO2NvbnRpbnVlO2Nhc2UiYmxvY2txdW90ZSI6RWU9dGhpcy5wYXJzZShaZS50b2tlbnMpLGQrPXRoaXMucmVuZGVyZXIuYmxvY2txdW90ZShFZSk7Y29udGludWU7Y2FzZSJsaXN0Ijpmb3IoaXQ9WmUub3JkZXJlZCxldD1aZS5zdGFydCx5dD1aZS5sb29zZSxUPVpl'@; put 'Lml0ZW1zLmxlbmd0aCxFZT0iIixmPTA7ZjxUO2YrKylTdD1aZS5pdGVtc1tmXSxKdD1TdC5jaGVja2VkLG5uPVN0LnRhc2ssRXQ9IiIsU3QudGFzayYmKHZuPXRoaXMucmVuZGVyZXIuY2hlY2tib3goSnQpLHl0P1N0LnRva2Vucy5sZW5ndGg+MCYmInBhcmFncmFwaCI9PT1TdC50b2tlbnNb'@; put 'MF0udHlwZT8oU3QudG9rZW5zWzBdLnRleHQ9dm4rIiAiK1N0LnRva2Vuc1swXS50ZXh0LFN0LnRva2Vuc1swXS50b2tlbnMmJlN0LnRva2Vuc1swXS50b2tlbnMubGVuZ3RoPjAmJiJ0ZXh0Ij09PVN0LnRva2Vuc1swXS50b2tlbnNbMF0udHlwZSYmKFN0LnRva2Vuc1swXS50b2tlbnNbMF0u'@; put 'dGV4dD12bisiICIrU3QudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6U3QudG9rZW5zLnVuc2hpZnQoe3R5cGU6InRleHQiLHRleHQ6dm59KTpFdCs9dm4pLEV0Kz10aGlzLnBhcnNlKFN0LnRva2Vucyx5dCksRWUrPXRoaXMucmVuZGVyZXIubGlzdGl0ZW0oRXQsbm4sSnQpO2QrPXRoaXMu'@; put 'cmVuZGVyZXIubGlzdChFZSxpdCxldCk7Y29udGludWU7Y2FzZSJodG1sIjpkKz10aGlzLnJlbmRlcmVyLmh0bWwoWmUudGV4dCxaZS5ibG9jayk7Y29udGludWU7Y2FzZSJwYXJhZ3JhcGgiOmQrPXRoaXMucmVuZGVyZXIucGFyYWdyYXBoKHRoaXMucGFyc2VJbmxpbmUoWmUudG9rZW5zKSk7'@; put 'Y29udGludWU7Y2FzZSJ0ZXh0Ijpmb3IoRWU9WmUudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoWmUudG9rZW5zKTpaZS50ZXh0O2grMTxjciYmInRleHQiPT09bFtoKzFdLnR5cGU7KVplPWxbKytoXSxFZSs9IlxuIisoWmUudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoWmUudG9rZW5zKTpaZS50'@; put 'ZXh0KTtkKz1hP3RoaXMucmVuZGVyZXIucGFyYWdyYXBoKEVlKTpFZTtjb250aW51ZTtkZWZhdWx0Ontjb25zdCBJcj0nVG9rZW4gd2l0aCAiJytaZS50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihJ'@; put 'cik7dGhyb3cgbmV3IEVycm9yKElyKX19cmV0dXJuIGR9cGFyc2VJbmxpbmUobCxhKXthPWF8fHRoaXMucmVuZGVyZXI7bGV0IGgsZixfLGQ9IiI7Y29uc3QgVD1sLmxlbmd0aDtmb3IoaD0wO2g8VDtoKyspaWYoZj1sW2hdLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMu'@; put 'ZXh0ZW5zaW9ucy5yZW5kZXJlcnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tmLnR5cGVdJiYoXz10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbZi50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sZiksITEhPT1ffHwhWyJlc2NhcGUiLCJodG1sIiwibGluayIs'@; put 'ImltYWdlIiwic3Ryb25nIiwiZW0iLCJjb2Rlc3BhbiIsImJyIiwiZGVsIiwidGV4dCJdLmluY2x1ZGVzKGYudHlwZSkpKWQrPV98fCIiO2Vsc2Ugc3dpdGNoKGYudHlwZSl7Y2FzZSJlc2NhcGUiOmNhc2UidGV4dCI6ZCs9YS50ZXh0KGYudGV4dCk7YnJlYWs7Y2FzZSJodG1sIjpkKz1hLmh0'@; put 'bWwoZi50ZXh0KTticmVhaztjYXNlImxpbmsiOmQrPWEubGluayhmLmhyZWYsZi50aXRsZSx0aGlzLnBhcnNlSW5saW5lKGYudG9rZW5zLGEpKTticmVhaztjYXNlImltYWdlIjpkKz1hLmltYWdlKGYuaHJlZixmLnRpdGxlLGYudGV4dCk7YnJlYWs7Y2FzZSJzdHJvbmciOmQrPWEuc3Ryb25n'@; put 'KHRoaXMucGFyc2VJbmxpbmUoZi50b2tlbnMsYSkpO2JyZWFrO2Nhc2UiZW0iOmQrPWEuZW0odGhpcy5wYXJzZUlubGluZShmLnRva2VucyxhKSk7YnJlYWs7Y2FzZSJjb2Rlc3BhbiI6ZCs9YS5jb2Rlc3BhbihmLnRleHQpO2JyZWFrO2Nhc2UiYnIiOmQrPWEuYnIoKTticmVhaztjYXNlImRl'@; put 'bCI6ZCs9YS5kZWwodGhpcy5wYXJzZUlubGluZShmLnRva2VucyxhKSk7YnJlYWs7ZGVmYXVsdDp7Y29uc3QgVz0nVG9rZW4gd2l0aCAiJytmLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKFcpO3Ro'@; put 'cm93IG5ldyBFcnJvcihXKX19cmV0dXJuIGR9fWNsYXNzIGN3e2NvbnN0cnVjdG9yKGwpe3RoaXMub3B0aW9ucz1sfHxsNH1wcmVwcm9jZXNzKGwpe3JldHVybiBsfXBvc3Rwcm9jZXNzKGwpe3JldHVybiBsfX1GMChjdywicGFzc1Rocm91Z2hIb29rcyIsbmV3IFNldChbInByZXByb2Nlc3Mi'@; put 'LCJwb3N0cHJvY2VzcyJdKSk7dmFyIGJVPW5ldyBXZWFrU2V0LEdzZT1uZXcgV2Vha1NldDtmdW5jdGlvbiAkc2UoYyxsKXtyZXR1cm4oYSxkLGgpPT57ImZ1bmN0aW9uIj09dHlwZW9mIGQmJihoPWQsZD1udWxsKTtjb25zdCBmPXsuLi5kfTtkPXsuLi50aGlzLmRlZmF1bHRzLC4uLmZ9O2Nv'@; put 'bnN0IF89Z1UodGhpcyxHc2UsSFllKS5jYWxsKHRoaXMsZC5zaWxlbnQsZC5hc3luYyxoKTtpZih0eXBlb2YgYT4idSJ8fG51bGw9PT1hKXJldHVybiBfKG5ldyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpKTtpZigic3RyaW5nIiE9dHlw'@; put 'ZW9mIGEpcmV0dXJuIF8obmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkrIiwgc3RyaW5nIGV4cGVjdGVkIikpO2lmKGZ1bmN0aW9uIFJZZShjLGwpeyFjfHxjLnNpbGVudHx8KGwmJmNvbnNv'@; put 'bGUud2FybigibWFya2VkKCk6IGNhbGxiYWNrIGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gUmVhZCBtb3JlIGhlcmU6IGh0dHBzOi8vbWFya2VkLmpzLm9yZy91c2luZ19wcm8j'@; put 'YXN5bmMiKSwoYy5zYW5pdGl6ZXx8Yy5zYW5pdGl6ZXIpJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBzYW5pdGl6ZSBhbmQgc2FuaXRpemVyIHBhcmFtZXRlcnMgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjcuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92'@; put 'ZWQgaW4gdGhlIGZ1dHVyZS4gUmVhZCBtb3JlIGhlcmU6IGh0dHBzOi8vbWFya2VkLmpzLm9yZy8jL1VTSU5HX0FEVkFOQ0VELm1kI29wdGlvbnMiKSwoYy5oaWdobGlnaHR8fCJsYW5ndWFnZS0iIT09Yy5sYW5nUHJlZml4KSYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogaGlnaGxpZ2h0IGFu'@; put 'ZCBsYW5nUHJlZml4IHBhcmFtZXRlcnMgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gSW5zdGVhZCB1c2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2VkLWhp'@; put 'Z2hsaWdodC4iKSxjLm1hbmdsZSYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogbWFuZ2xlIHBhcmFtZXRlciBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gVG8gY2xl'@; put 'YXIgdGhpcyB3YXJuaW5nLCBpbnN0YWxsIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1tYW5nbGUsIG9yIGRpc2FibGUgYnkgc2V0dGluZyBge21hbmdsZTogZmFsc2V9YC4iKSxjLmJhc2VVcmwmJmNvbnNvbGUud2FybigibWFya2VkKCk6IGJhc2VVcmwgcGFyYW1ldGVy'@; put 'IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gSW5zdGVhZCB1c2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2VkLWJhc2UtdXJsLiIpLGMuc21hcnR5cGFudHMm'@; put 'JmNvbnNvbGUud2FybigibWFya2VkKCk6IHNtYXJ0eXBhbnRzIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpz'@; put 'LmNvbS9wYWNrYWdlL21hcmtlZC1zbWFydHlwYW50cy4iKSxjLnhodG1sJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiB4aHRtbCBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUg'@; put 'ZnV0dXJlLiBJbnN0ZWFkIHVzZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQteGh0bWwuIiksKGMuaGVhZGVySWRzfHxjLmhlYWRlclByZWZpeCkmJmNvbnNvbGUud2FybigibWFya2VkKCk6IGhlYWRlcklkcyBhbmQgaGVhZGVyUHJlZml4IHBhcmFtZXRlcnMgZW5hYmxl'@; put 'ZCBieSBkZWZhdWx0LCBidXQgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBUbyBjbGVhciB0aGlzIHdhcm5pbmcsIGluc3RhbGwgIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1nZm0taGVh'@; put 'ZGluZy1pZCwgb3IgZGlzYWJsZSBieSBzZXR0aW5nIGB7aGVhZGVySWRzOiBmYWxzZX1gLiIpKX0oZCxoKSxkLmhvb2tzJiYoZC5ob29rcy5vcHRpb25zPWQpLGgpe2NvbnN0IFQ9ZC5oaWdobGlnaHQ7bGV0IFc7dHJ5e2QuaG9va3MmJihhPWQuaG9va3MucHJlcHJvY2VzcyhhKSksVz1jKGEs'@; put 'ZCl9Y2F0Y2god2Upe3JldHVybiBfKHdlKX1jb25zdCBpZT13ZT0+e2xldCBFZTtpZighd2UpdHJ5e2Qud2Fsa1Rva2VucyYmdGhpcy53YWxrVG9rZW5zKFcsZC53YWxrVG9rZW5zKSxFZT1sKFcsZCksZC5ob29rcyYmKEVlPWQuaG9va3MucG9zdHByb2Nlc3MoRWUpKX1jYXRjaChaZSl7d2U9'@; put 'WmV9cmV0dXJuIGQuaGlnaGxpZ2h0PVQsd2U/Xyh3ZSk6aChudWxsLEVlKX07aWYoIVR8fFQubGVuZ3RoPDN8fChkZWxldGUgZC5oaWdobGlnaHQsIVcubGVuZ3RoKSlyZXR1cm4gaWUoKTtsZXQgcGU9MDtyZXR1cm4gdGhpcy53YWxrVG9rZW5zKFcsd2U9PnsiY29kZSI9PT13ZS50eXBlJiYo'@; put 'cGUrKyxzZXRUaW1lb3V0KCgpPT57VCh3ZS50ZXh0LHdlLmxhbmcsKEVlLFplKT0+e2lmKEVlKXJldHVybiBpZShFZSk7bnVsbCE9WmUmJlplIT09d2UudGV4dCYmKHdlLnRleHQ9WmUsd2UuZXNjYXBlZD0hMCkscGUtLSwwPT09cGUmJmllKCl9KX0sMCkpfSksdm9pZCgwPT09cGUmJmllKCkp'@; put 'fWlmKGQuYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZShkLmhvb2tzP2QuaG9va3MucHJlcHJvY2VzcyhhKTphKS50aGVuKFQ9PmMoVCxkKSkudGhlbihUPT5kLndhbGtUb2tlbnM/UHJvbWlzZS5hbGwodGhpcy53YWxrVG9rZW5zKFQsZC53YWxrVG9rZW5zKSkudGhlbigoKT0+VCk6VCku'@; put 'dGhlbihUPT5sKFQsZCkpLnRoZW4oVD0+ZC5ob29rcz9kLmhvb2tzLnBvc3Rwcm9jZXNzKFQpOlQpLmNhdGNoKF8pO3RyeXtkLmhvb2tzJiYoYT1kLmhvb2tzLnByZXByb2Nlc3MoYSkpO2NvbnN0IFQ9YyhhLGQpO2Qud2Fsa1Rva2VucyYmdGhpcy53YWxrVG9rZW5zKFQsZC53YWxrVG9rZW5z'@; put 'KTtsZXQgVz1sKFQsZCk7cmV0dXJuIGQuaG9va3MmJihXPWQuaG9va3MucG9zdHByb2Nlc3MoVykpLFd9Y2F0Y2goVCl7cmV0dXJuIF8oVCl9fX1mdW5jdGlvbiBIWWUoYyxsLGEpe3JldHVybiBkPT57aWYoZC5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRo'@; put 'dWIuY29tL21hcmtlZGpzL21hcmtlZC4iLGMpe2NvbnN0IGg9IjxwPkFuIGVycm9yIG9jY3VycmVkOjwvcD48cHJlPiIrU3UoZC5tZXNzYWdlKyIiLCEwKSsiPC9wcmU+IjtyZXR1cm4gbD9Qcm9taXNlLnJlc29sdmUoaCk6YT92b2lkIGEobnVsbCxoKTpofWlmKGwpcmV0dXJuIFByb21pc2Uu'@; put 'cmVqZWN0KGQpO2lmKCFhKXRocm93IGQ7YShkKX19Y29uc3QgWmc9bmV3IGNsYXNzIEZZZXtjb25zdHJ1Y3RvciguLi5sKXtIc2UodGhpcyxHc2UpLEhzZSh0aGlzLGJVKSxGMCh0aGlzLCJkZWZhdWx0cyIse2FzeW5jOiExLGJhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxs'@; put 'LGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGhvb2tzOm51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnR5'@; put 'cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfSksRjAodGhpcywib3B0aW9ucyIsdGhpcy5zZXRPcHRpb25zKSxGMCh0aGlzLCJwYXJzZSIsZ1UodGhpcyxiVSwkc2UpLmNhbGwodGhpcyxraC5sZXgsQWgucGFyc2UpKSxGMCh0aGlzLCJwYXJzZUlubGlu'@; put 'ZSIsZ1UodGhpcyxiVSwkc2UpLmNhbGwodGhpcyxraC5sZXhJbmxpbmUsQWgucGFyc2VJbmxpbmUpKSxGMCh0aGlzLCJQYXJzZXIiLEFoKSxGMCh0aGlzLCJwYXJzZXIiLEFoLnBhcnNlKSxGMCh0aGlzLCJSZW5kZXJlciIsaVQpLEYwKHRoaXMsIlRleHRSZW5kZXJlciIsdlUpLEYwKHRoaXMs'@; put 'IkxleGVyIixraCksRjAodGhpcywibGV4ZXIiLGtoLmxleCksRjAodGhpcywiVG9rZW5pemVyIixyVCksRjAodGhpcywiU2x1Z2dlciIsX1UpLEYwKHRoaXMsIkhvb2tzIixjdyksdGhpcy51c2UoLi4ubCl9d2Fsa1Rva2VucyhsLGEpe2xldCBkPVtdO2Zvcihjb25zdCBoIG9mIGwpc3dpdGNo'@; put 'KGQ9ZC5jb25jYXQoYS5jYWxsKHRoaXMsaCkpLGgudHlwZSl7Y2FzZSJ0YWJsZSI6Zm9yKGNvbnN0IGYgb2YgaC5oZWFkZXIpZD1kLmNvbmNhdCh0aGlzLndhbGtUb2tlbnMoZi50b2tlbnMsYSkpO2Zvcihjb25zdCBmIG9mIGgucm93cylmb3IoY29uc3QgXyBvZiBmKWQ9ZC5jb25jYXQodGhp'@; put 'cy53YWxrVG9rZW5zKF8udG9rZW5zLGEpKTticmVhaztjYXNlImxpc3QiOmQ9ZC5jb25jYXQodGhpcy53YWxrVG9rZW5zKGguaXRlbXMsYSkpO2JyZWFrO2RlZmF1bHQ6dGhpcy5kZWZhdWx0cy5leHRlbnNpb25zJiZ0aGlzLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnMmJnRoaXMu'@; put 'ZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1toLnR5cGVdP3RoaXMuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1toLnR5cGVdLmZvckVhY2goZj0+e2Q9ZC5jb25jYXQodGhpcy53YWxrVG9rZW5zKGhbZl0sYSkpfSk6aC50b2tlbnMmJihkPWQuY29uY2F0KHRoaXMud2Fs'@; put 'a1Rva2VucyhoLnRva2VucyxhKSkpfXJldHVybiBkfXVzZSguLi5sKXtjb25zdCBhPXRoaXMuZGVmYXVsdHMuZXh0ZW5zaW9uc3x8e3JlbmRlcmVyczp7fSxjaGlsZFRva2Vuczp7fX07cmV0dXJuIGwuZm9yRWFjaChkPT57Y29uc3QgaD17Li4uZH07aWYoaC5hc3luYz10aGlzLmRlZmF1bHRz'@; put 'LmFzeW5jfHxoLmFzeW5jfHwhMSxkLmV4dGVuc2lvbnMmJihkLmV4dGVuc2lvbnMuZm9yRWFjaChmPT57aWYoIWYubmFtZSl0aHJvdyBuZXcgRXJyb3IoImV4dGVuc2lvbiBuYW1lIHJlcXVpcmVkIik7aWYoZi5yZW5kZXJlcil7Y29uc3QgXz1hLnJlbmRlcmVyc1tmLm5hbWVdO2EucmVuZGVy'@; put 'ZXJzW2YubmFtZV09Xz9mdW5jdGlvbiguLi5UKXtsZXQgVz1mLnJlbmRlcmVyLmFwcGx5KHRoaXMsVCk7cmV0dXJuITE9PT1XJiYoVz1fLmFwcGx5KHRoaXMsVCkpLFd9OmYucmVuZGVyZXJ9aWYoZi50b2tlbml6ZXIpe2lmKCFmLmxldmVsfHwiYmxvY2siIT09Zi5sZXZlbCYmImlubGluZSIh'@; put 'PT1mLmxldmVsKXRocm93IG5ldyBFcnJvcigiZXh0ZW5zaW9uIGxldmVsIG11c3QgYmUgJ2Jsb2NrJyBvciAnaW5saW5lJyIpO2FbZi5sZXZlbF0/YVtmLmxldmVsXS51bnNoaWZ0KGYudG9rZW5pemVyKTphW2YubGV2ZWxdPVtmLnRva2VuaXplcl0sZi5zdGFydCYmKCJibG9jayI9PT1mLmxl'@; put 'dmVsP2Euc3RhcnRCbG9jaz9hLnN0YXJ0QmxvY2sucHVzaChmLnN0YXJ0KTphLnN0YXJ0QmxvY2s9W2Yuc3RhcnRdOiJpbmxpbmUiPT09Zi5sZXZlbCYmKGEuc3RhcnRJbmxpbmU/YS5zdGFydElubGluZS5wdXNoKGYuc3RhcnQpOmEuc3RhcnRJbmxpbmU9W2Yuc3RhcnRdKSl9Zi5jaGlsZFRv'@; put 'a2VucyYmKGEuY2hpbGRUb2tlbnNbZi5uYW1lXT1mLmNoaWxkVG9rZW5zKX0pLGguZXh0ZW5zaW9ucz1hKSxkLnJlbmRlcmVyKXtjb25zdCBmPXRoaXMuZGVmYXVsdHMucmVuZGVyZXJ8fG5ldyBpVCh0aGlzLmRlZmF1bHRzKTtmb3IoY29uc3QgXyBpbiBkLnJlbmRlcmVyKXtjb25zdCBUPWZb'@; put 'X107ZltfXT0oLi4uVyk9PntsZXQgaWU9ZC5yZW5kZXJlcltfXS5hcHBseShmLFcpO3JldHVybiExPT09aWUmJihpZT1ULmFwcGx5KGYsVykpLGllfX1oLnJlbmRlcmVyPWZ9aWYoZC50b2tlbml6ZXIpe2NvbnN0IGY9dGhpcy5kZWZhdWx0cy50b2tlbml6ZXJ8fG5ldyByVCh0aGlzLmRlZmF1'@; put 'bHRzKTtmb3IoY29uc3QgXyBpbiBkLnRva2VuaXplcil7Y29uc3QgVD1mW19dO2ZbX109KC4uLlcpPT57bGV0IGllPWQudG9rZW5pemVyW19dLmFwcGx5KGYsVyk7cmV0dXJuITE9PT1pZSYmKGllPVQuYXBwbHkoZixXKSksaWV9fWgudG9rZW5pemVyPWZ9aWYoZC5ob29rcyl7Y29uc3QgZj10'@; put 'aGlzLmRlZmF1bHRzLmhvb2tzfHxuZXcgY3c7Zm9yKGNvbnN0IF8gaW4gZC5ob29rcyl7Y29uc3QgVD1mW19dO2ZbX109Y3cucGFzc1Rocm91Z2hIb29rcy5oYXMoXyk/Vz0+e2lmKHRoaXMuZGVmYXVsdHMuYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZShkLmhvb2tzW19dLmNhbGwoZixX'@; put 'KSkudGhlbihwZT0+VC5jYWxsKGYscGUpKTtjb25zdCBpZT1kLmhvb2tzW19dLmNhbGwoZixXKTtyZXR1cm4gVC5jYWxsKGYsaWUpfTooLi4uVyk9PntsZXQgaWU9ZC5ob29rc1tfXS5hcHBseShmLFcpO3JldHVybiExPT09aWUmJihpZT1ULmFwcGx5KGYsVykpLGllfX1oLmhvb2tzPWZ9aWYo'@; put 'ZC53YWxrVG9rZW5zKXtjb25zdCBmPXRoaXMuZGVmYXVsdHMud2Fsa1Rva2VucztoLndhbGtUb2tlbnM9ZnVuY3Rpb24oXyl7bGV0IFQ9W107cmV0dXJuIFQucHVzaChkLndhbGtUb2tlbnMuY2FsbCh0aGlzLF8pKSxmJiYoVD1ULmNvbmNhdChmLmNhbGwodGhpcyxfKSkpLFR9fXRoaXMuZGVm'@; put 'YXVsdHM9ey4uLnRoaXMuZGVmYXVsdHMsLi4uaH19KSx0aGlzfXNldE9wdGlvbnMobCl7cmV0dXJuIHRoaXMuZGVmYXVsdHM9ey4uLnRoaXMuZGVmYXVsdHMsLi4ubH0sdGhpc319KGw0KTtmdW5jdGlvbiBwYShjLGwsYSl7cmV0dXJuIFpnLnBhcnNlKGMsbCxhKX1wYS5vcHRpb25zPXBhLnNl'@; put 'dE9wdGlvbnM9ZnVuY3Rpb24oYyl7cmV0dXJuIFpnLnNldE9wdGlvbnMoYyksTnNlKHBhLmRlZmF1bHRzPVpnLmRlZmF1bHRzKSxwYX0scGEuZ2V0RGVmYXVsdHM9ZnVuY3Rpb24gbVUoKXtyZXR1cm57YXN5bmM6ITEsYmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2Zt'@; put 'OiEwLGhlYWRlcklkczohMCxoZWFkZXJQcmVmaXg6IiIsaGlnaGxpZ2h0Om51bGwsaG9va3M6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydHlwYW50'@; put 'czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51bGwseGh0bWw6ITF9fSxwYS5kZWZhdWx0cz1sNCxwYS51c2U9ZnVuY3Rpb24oLi4uYyl7cmV0dXJuIFpnLnVzZSguLi5jKSxOc2UocGEuZGVmYXVsdHM9WmcuZGVmYXVsdHMpLHBhfSxwYS53YWxrVG9rZW5zPWZ1bmN0aW9uKGMsbCl7'@; put 'cmV0dXJuIFpnLndhbGtUb2tlbnMoYyxsKX0scGEucGFyc2VJbmxpbmU9WmcucGFyc2VJbmxpbmUscGEuUGFyc2VyPUFoLHBhLnBhcnNlcj1BaC5wYXJzZSxwYS5SZW5kZXJlcj1pVCxwYS5UZXh0UmVuZGVyZXI9dlUscGEuTGV4ZXI9a2gscGEubGV4ZXI9a2gubGV4LHBhLlRva2VuaXplcj1y'@; put 'VCxwYS5TbHVnZ2VyPV9VLHBhLkhvb2tzPWN3LHBhLnBhcnNlPXBhO2NvbnN0IFZZZT1bIm1hcmtkb3duQ2FyZCJdO2Z1bmN0aW9uIEJZZShjLGwpezEmYyYmcXQoMCwiY2xyLXNwaW5uZXIiLDgpfWxldCBqWWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLnNhc1NlcnZpY2U9'@; put 'YSx0aGlzLmFncmVlQ2hlY2tlZD0hMSx0aGlzLmFncmVlQm94TG9ja2VkPSEwLHRoaXMuYWdyZWVDbGlja2VkPSExLHRoaXMuZXVsYV9tYXJrZG93bj0nXG5MaWNlbmNlIEFncmVlbWVudCBmb3IgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlXG49PT09PT09PT09PT09PT09PT09PVxuXG5D'@; put 'b3B5cmlnaHQgKGMpIEJvd2UgSU8gTHRkXG5cbkRhdGEgQ29udHJvbGxlciBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBieSA0R0wgQXBwcywgYSBicmFuZCBvd25lZCBieSBCb3dlIElPIEx0ZCwgYSBVSyBMaW1pdGVkIENvbXBhbnkgaGVhZHF1YXJ0ZWQgaW4gMjkgT2xkZmllbGQgUmQsIEN1'@; put 'bWJyaWEsIHJlZ2lzdGVyZWQgYXQgQ29tcGFuaWVzIEhvdXNlIHdpdGggY29tcGFueSBudW1iZXIgMDg3NzcxNzEsIFZBVCBudW1iZXI6IDIwMzkxNDI0MFxuXG5UaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXdzLCBpbmNsdWRpbmcgaW50ZXJu'@; put 'YXRpb25hbCB0cmVhdGllcywgYW5kIGR1YWwtbGljZW5zZWQgXHUyMDEzIGRlcGVuZGluZyBvbiB3aGV0aGVyIHlvdXIgdXNlIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzLCBtZWFuaW5nIGludGVuZGVkIGZvciBvciByZXN1bHRpbmcgaW4gY29tbWVyY2lhbCBhZHZhbnRhZ2Ugb3IgbW9uZXRh'@; put 'cnkgY29tcGVuc2F0aW9uLCBvciBub3QuXG5cbklmIHlvdXIgdXNlIGlzIHN0cmljdGx5IHBlcnNvbmFsIG9yIHNvbGVseSBmb3IgZXZhbHVhdGlvbiBwdXJwb3NlcywgbWVhbmluZyBmb3IgdGhlIHB1cnBvc2VzIG9mIHRlc3RpbmcgdGhlIHN1aXRhYmlsaXR5LCBwZXJmb3JtYW5jZSwgYW5k'@; put 'IHVzZWZ1bG5lc3Mgb2YgdGhpcyBzb2Z0d2FyZSBvdXRzaWRlIHRoZSBwcm9kdWN0aW9uIGVudmlyb25tZW50LCB5b3UgYWdyZWUgdG8gYmUgYm91bmQgYnkgdGhlIHRlcm1zIGluY2x1ZGVkIGluIHRoZSAibGljZW5jZS1ub24tY29tbWVyY2lhbC1kYXRhY29udHJvbGxlci5tZCIgZmlsZSBh'@; put 'dmFpbGFibGUgaGVyZTogIGh0dHBzOi8vZ2l0LmRhdGFjb250cm9sbGVyLmlvL2RjL2RjL3NyYy9icmFuY2gvbWFpbi9saWNlbmNlLW5vbi1jb21tZXJjaWFsLWRhdGFjb250cm9sbGVyLm1kXG5cbllvdXIgdXNlIG9mIHRoaXMgc29mdHdhcmUgZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMgaXMg'@; put 'c3ViamVjdCB0byB0aGUgdGVybXMgaW5jbHVkZWQgaW4gYW4gYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudC5cblxuSW4gYW55IGNhc2UsIHlvdSBtdXN0IG5vdCBtYWtlIGFueSBzdWNoIHVzZSBvZiB0aGlzIHNvZnR3YXJlIGFzIHRvIGRldmVsb3Agc29mdHdhcmUgd2hpY2ggbWF5IGJl'@; put 'IGNvbnNpZGVyZWQgY29tcGV0aXRpdmUgd2l0aCB0aGlzIHNvZnR3YXJlLlxuXG5VTkxFU1MgRVhQUkVTU0xZIEFHUkVFRCBPVEhFUldJU0UsIDRHTCBBUFBTIFBST1ZJREVTIFRISVMgU09GVFdBUkUgT04gQU4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElP'@; put 'TlMgT0YgQU5ZIEtJTkQsIEFORCBJTiBOTyBFVkVOVCBBTkQgVU5ERVIgTk8gTEVHQUwgVEhFT1JZLCBTSEFMTCA0R0wgQVBQUyBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIFNQRUNJQUwsIElOQ0lERU5UQUwsIE9SIENPTlNF'@; put 'UVVFTlRJQUwgREFNQUdFUyBPRiBBTlkgQ0hBUkFDVEVSIEFSSVNJTkcgRlJPTSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSElTIFNPRlRXQVJFLlxuXG5cbid9bmdPbkluaXQoKXtjb25zdCBhPXBhLnNldE9wdGlvbnMoe30pO3RoaXMuZXVsYV9tYXJrZG93bj1hLnBhcnNlKHRoaXMuZXVs'@; put 'YV9tYXJrZG93bil9bmdBZnRlclZpZXdJbml0KCl7c2V0VGltZW91dCgoKT0+e3RoaXMubWFya2Rvd25DYXJkJiZ0aGlzLm1hcmtkb3duQ2FyZC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzY3JvbGwiKSl9KX10ZXJtc0FncmVlQ2hhbmdlKCl7dGhpcy5h'@; put 'Z3JlZUNoZWNrZWQmJih0aGlzLmFncmVlQm94TG9ja2VkPSEwLHRoaXMuYWdyZWVDbGlja2VkPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvcmVnaXN0ZXJ1c2VyIix7U0FTQ29udHJvbFRhYmxlOlt7QUNDRVBURUQ6InllcyJ9XX0pLnRoZW4oZD0+e2QucmV0dXJuJiZkLnJl'@; put 'dHVyblswXSYmIlNVQ0NFU1MiPT09ZC5yZXR1cm5bMF0uTVNHJiZsb2NhdGlvbi5yZWxvYWQoKX0pLmNhdGNoKGQ9PmQpLmZpbmFsbHkoKCk9PntzZXRUaW1lb3V0KCgpPT57dGhpcy5hZ3JlZUJveExvY2tlZD0hMSx0aGlzLmFncmVlQ2xpY2tlZD0hMSx0aGlzLmFncmVlQ2hlY2tlZD0hMX0s'@; put 'MWUzKX0pKX1vbkNhcmRCbG9ja1Njcm9sbChhKXtpZighdGhpcy5hZ3JlZUNsaWNrZWQpe2xldCBkPWEudGFyZ2V0O2QmJih0aGlzLmFncmVlQm94TG9ja2VkPSEoZC5zY3JvbGxUb3ArZC5vZmZzZXRIZWlnaHQ+PWQuc2Nyb2xsSGVpZ2h0LTIwKSl9fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVu'@; put 'Y3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChvYSkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtdGVybXMiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZSbyhWWWUsNSksMiZhKXtsZXQgaDthaShoPWxpKCkpJiYoZC5tYXJrZG93bkNhcmQ9'@; put 'aC5maXJzdCl9fSxkZWNsczoxMyx2YXJzOjYsY29uc3RzOltbMSwiY2FyZCJdLFsxLCJjYXJkLWhlYWRlciJdLFsxLCJjYXJkLWJsb2NrIiwzLCJpbm5lckhUTUwiLCJzY3JvbGwiXSxbIm1hcmtkb3duQ2FyZCIsIiJdLFsxLCJkLWZsZXgiLCJjbHItYWxpZ24taXRlbXMtY2VudGVyIl0sWzEs'@; put 'ImFjY2VwdC1jaGVja2JveCJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLDMsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiLCJjaGFuZ2UiXSxbImNscklubGluZSIsInNtYWxsIiw0LCJuZ0lmIl0sWyJjbHJJbmxpbmUiLCJzbWFsbCJdXSx0ZW1wbGF0'@; put 'ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImRpdiIsMCkoMSwiZGl2IiwxKSxOZSgyLCIgRW5kIFVzZXIgTGljZW5zZSBBZ3JlZW1lbnQgIiksbWUoMywicCIpLE5lKDQsIiBXZWxjb21lIHRvIERhdGEgQ29udHJvbGxlciBmb3IgU0FTISBQbGVhc2UgcmV2aWV3IGFuZCBhY2NlcHQgYWdy'@; put 'ZWVtZW50IGJlbG93IGluIG9yZGVyIHRvIHByb2NlZWQuICIpLHllKCkoKSxtZSg1LCJkaXYiLDIsMykseHQoInNjcm9sbCIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25DYXJkQmxvY2tTY3JvbGwoZil9KSx5ZSgpLG1lKDcsImRpdiIsNCkoOCwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDUpKDks'@; put 'ImlucHV0Iiw2KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQuYWdyZWVDaGVja2VkPWZ9KSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBkLnRlcm1zQWdyZWVDaGFuZ2UoKX0pLHllKCksbWUoMTAsImxhYmVsIiksTmUoMTEsIkkgaGF2ZSByZWFkIGFuZCBhZ3Jl'@; put 'ZSB0byB0aGUgdGVybXMgb2YgYWJvdmUuIikseWUoKSgpLEplKDEyLEJZZSwxLDAsImNsci1zcGlubmVyIiw3KSx5ZSgpKCkpLDImYSYmKENlKDUpLFJlKCJpbm5lckhUTUwiLGQuZXVsYV9tYXJrZG93bixxMiksQ2UoMyksZHIoImRpc2FibGVkIixkLmFncmVlQm94TG9ja2VkKSxDZSgxKSxS'@; put 'ZSgibmdNb2RlbCIsZC5hZ3JlZUNoZWNrZWQpKCJkaXNhYmxlZCIsZC5hZ3JlZUJveExvY2tlZCksQ2UoMyksUmUoIm5nSWYiLGQuYWdyZWVCb3hMb2NrZWQmJmQuYWdyZWVDbGlja2VkKSl9LGRlcGVuZGVuY2llczpbWmksUzAsQnMsT3MsVXMsRDAsVDAsdTJdLHN0eWxlczpbIltfbmdob3N0'@; put 'LSVDT01QJV17aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojZjVmNmZmfS5jbHItY2hlY2tib3gtd3JhcHBlci5kaXNhYmxlZFtfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNX0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9u'@; put 'OmNvbHVtbjttYXJnaW4tdG9wOjB9LmNhcmRbX25nY29udGVudC0lQ09NUCVdICAgLmNhcmQtYmxvY2tbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MTtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQtY29sb3I6I2Y0ZjRmNH0uYWNjZXB0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRk'@; put 'aW5nOjEwcHggMTVweH0iXX0pLGN9KSgpO2Z1bmN0aW9uIHpZZShjLGwpezEmYyYmKG1lKDAsInAiLDI3KSxOZSgxLCIgTGljZW5jZSBrZXkgaXMgaW52YWxpZC4gV2UgY2FuJ3QgcHJvdmlkZSB5b3UgbW9yZSBkZXRhaWxzIGF0IHRoZSBtb21lbnQgIikseWUoKSl9ZnVuY3Rpb24gVVllKGMs'@; put 'bCl7aWYoMSZjJiZxdCgwLCJwIiwyOCksMiZjKXtjb25zdCBhPVZlKDMpO1JlKCJpbm5lckhUTUwiLGEubGljZW5zZUVycm9yc1thLmtleUVycm9yXSxxMil9fWZ1bmN0aW9uIFpZZShjLGwpe2lmKDEmYyYmKG1lKDAsInAiKSgxLCJzdHJvbmciKSxOZSgyLCJEZXRhaWxzOiIpLHllKCksTmUo'@; put 'MykseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDMpLGdyKCIgIixhLmVycm9yRGV0YWlscywiIil9fWZ1bmN0aW9uIFlZZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEselllLDIsMCwicCIsMjUpLEplKDIsVVllLDEsMSwicCIsMjYpLEplKDMsWlllLDQsMSwicCIsMSksenIoKSksMiZj'@; put 'KXtjb25zdCBhPVZlKDIpO0NlKDEpLFJlKCJuZ0lmIiwhYS5rZXlFcnJvciksQ2UoMSksUmUoIm5nSWYiLGEua2V5RXJyb3IpLENlKDEpLFJlKCJuZ0lmIixhLmVycm9yRGV0YWlscyl9fWZ1bmN0aW9uIFdZZShjLGwpezEmYyYmKFZyKDApLG1lKDEsInAiLDI3KSxOZSgyLCIgVGhlIHJlZ2lz'@; put 'dGVyZWQgbnVtYmVyIG9mIHVzZXJzIHJlYWNoZWQgdGhlIGxpbWl0IHNwZWNpZmllZCBmb3IgeW91ciBsaWNlbmNlLiBQbGVhc2UgY29udGFjdCAiKSxxdCgzLCJjb250YWN0LWxpbmsiLDI5KSxOZSg0LCIgb3IgeW91ciByZXNlbGxlciB0byBhcnJhbmdlIGFkZGl0aW9uYWwgbGljZW5jZXMg'@; put 'Zm9yIHRoaXMgcHJvZHVjdC4gIikseWUoKSx6cigpKX1mdW5jdGlvbiBHWWUoYyxsKXsxJmMmJihWcigwKSxtZSgxLCJwIiwyNyksTmUoMiwiIFVwZGF0ZSB0aGUgbGljZW5zZSBrZXkgYnkgdXBsb2FkaW5nIHRoZSBsaWNlbmNlIGZpbGUgb3IgYnkgcGFzdGluZyBhIGxpY2Vuc2Uga2V5IGFu'@; put 'ZCBhY3RpdmF0aW9uIGtleSBpbiB0aGUgaW5wdXRzIGJlbG93LiAiKSx5ZSgpLHpyKCkpfWZ1bmN0aW9uICRZZShjLGwpe2lmKDEmYyYmKG1lKDAsInNwYW4iKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4LGg9VmUoMik7ZHIoIm1pc3NrZXkiLGgubWlz'@; put 'c21hdGNoZWRLZXkmJmgubWlzc21hdGNoZWRLZXk9PT1hKSxDZSgxKSx6YygiICIsYSwiIixkPT09KG51bGw9PWguc3lzc2l0ZS52YWx1ZT9udWxsOmguc3lzc2l0ZS52YWx1ZS5sZW5ndGgpLTE/IiI6IiwiLCIgIil9fWZ1bmN0aW9uIHFZZShjLGwpe2lmKDEmYyYmKG1lKDAsInAiLDMwKSgx'@; put 'LCJzdHJvbmciKSxOZSgyLCJBbGxvd2VkIHVzZXJzOiIpLHllKCksTmUoMykseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDMpLGdyKCIgIixhLmxpY2Vuc2VLZXlEYXRhLnVzZXJzX2FsbG93ZWQsIiAiKX19ZnVuY3Rpb24gS1llKGMsbCl7MSZjJiZxdCgwLCJjbHItc3Bpbm5lciIsMzEp'@; put 'fWZ1bmN0aW9uIFhZZShjLGwpezEmYyYmKG1lKDAsImRpdiIpLE5lKDEsIiBEcm9wIC8gQnJvd3NlIGxpY2VuY2UgZmlsZSAiKSx5ZSgpKX1mdW5jdGlvbiBKWWUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiKSxOZSgxLCIgU2VsZWN0ZWQgZmlsZTogIiksbWUoMiwic3Ryb25nIiksTmUoMyks'@; put 'eWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMyk7Q2UoMyksb3IoYS5saWNlbmNlZmlsZS5maWxlbmFtZSl9fWZ1bmN0aW9uIFFZZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIpKDEsInN0cm9uZyIpLE5lKDIpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDIpLG9yKGEubGljZW5jZUZp'@; put 'bGVFcnJvcil9fWZ1bmN0aW9uIGVXZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsWFllLDIsMCwiZGl2IiwxKSxKZSgyLEpZZSw0LDEsImRpdiIsMSksSmUoMyxRWWUsMywxLCJkaXYiLDEpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgxKSxSZSgibmdJZiIsIiI9PT1hLmxpY2VuY2Vm'@; put 'aWxlLmZpbGVuYW1lKSxDZSgxKSxSZSgibmdJZiIsIiIhPT1hLmxpY2VuY2VmaWxlLmZpbGVuYW1lKSxDZSgxKSxSZSgibmdJZiIsYS5saWNlbmNlRmlsZUVycm9yKX19ZnVuY3Rpb24gdFdlKGMsbCl7MSZjJiYobWUoMCwiYnV0dG9uIiwzMiksTmUoMSwiIENvbnRpbnVlIHdpdGggZnJlZSB0'@; put 'aWVyICIpLHllKCkpfWZ1bmN0aW9uIG5XZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsMikoMSwiZGl2IiwzKSxOZSgyLCJMaWNlbmNpbmciKSx5ZSgpLG1lKDMsImRpdiIsNCksSmUoNCxZWWUsNCwzLCJuZy1jb250YWluZXIiLDUpLEplKDUsV1llLDUsMCwibmctY29u'@; put 'dGFpbmVyIiw1KSxKZSg2LEdZZSwzLDAsIm5nLWNvbnRhaW5lciIsNSksbWUoNywicCIpKDgsInN0cm9uZyIpLE5lKDksIlNZU1NJVEU6IikseWUoKSxKZSgxMCwkWWUsMiw0LCJzcGFuIiw2KSxtZSgxMSwiYSIsNykseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9JGkoMTMp'@; put 'LGY9JGkoMTUpLF89VmUoKTtyZXR1cm4ganQoXy5jb3B5U3lzc2l0ZShoLGYsXy5zeXNzaXRlLnZhbHVlfHxbXSkpfSkscXQoMTIsImNsci1pY29uIiw4LDkpLG1lKDE0LCJzcGFuIiwxMCwxMSksTmUoMTYsIkNvcHkgdG8gY2xpcGJvYXJkIikseWUoKSgpKCksSmUoMTcscVllLDQsMSwicCIs'@; put 'MTIpLG1lKDE4LCJjbHItdGFicyIpKDE5LCJjbHItdGFiIikoMjAsImJ1dHRvbiIsMTMpLE5lKDIxLCJVcGxvYWQgbGljZW5jZSIpLHllKCksbWUoMjIsImNsci10YWItY29udGVudCIpKDIzLCJpbnB1dCIsMTQsMTUpLHh0KCJjaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChW'@; put 'ZSgpLm9uRmlsZUNhcHR1cmUoaCkpfSkseWUoKSxtZSgyNSwiZGl2IiwxNikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdCgkaSgyNCkuY2xpY2soKSl9KSgiZmlsZURyb3AiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLm9uRmlsZUNhcHR1cmUoaCwhMCkp'@; put 'fSksSmUoMjYsS1llLDEsMCwiY2xyLXNwaW5uZXIiLDE3KSxKZSgyNyxlV2UsNCwzLCJuZy1jb250YWluZXIiLDEpLHllKCkoKSgpLG1lKDI4LCJjbHItdGFiIikoMjksImJ1dHRvbiIsMTMpLE5lKDMwLCJQYXN0ZSBsaWNlbmNlIikseWUoKSxtZSgzMSwiY2xyLXRhYi1jb250ZW50IikoMzIs'@; put 'ImZvcm0iLDE4KSgzMywicCIpLE5lKDM0LCJMaWNlbmNlIGtleToiKSx5ZSgpLG1lKDM1LCJkaXYiLDE5KSgzNiwidGV4dGFyZWEiLDIwKSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkubGljZW5jZUtleVZhbHVlPWgpfSkoIm1vdXNlbGVhdmUi'@; put 'LGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkudHJpbUtleXMoKSl9KSx5ZSgpKCkoKSxtZSgzNywiZm9ybSIsMjEpKDM4LCJwIiksTmUoMzksIkFjdGl2YXRpb24ga2V5OiIpLHllKCksbWUoNDAsImRpdiIsMTkpKDQxLCJ0ZXh0YXJlYSIsMjIpLHh0KCJuZ01vZGVsQ2hhbmdlIixm'@; put 'dW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS5hY3RpdmF0aW9uS2V5VmFsdWU9aCl9KSgibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS50cmltS2V5cygpKX0pLHllKCkoKSgpKCkoKSgpLG1lKDQyLCJidXR0b24iLDIzKSx4dCgiY2xpY2siLGZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuYXBwbHlLZXlzKCkpfSksTmUoNDMsIiBBcHBseSBsaWNlbmNlIGtleXMgIikseWUoKSxKZSg0NCx0V2UsMiwwLCJidXR0b24iLDI0KSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMyksUmUoIm5nU3dpdGNoIixhLmFjdGlvbiksQ2Uo'@; put 'MSksUmUoIm5nU3dpdGNoQ2FzZSIsImtleSIpLENlKDEpLFJlKCJuZ1N3aXRjaENhc2UiLCJsaW1pdCIpLENlKDEpLFJlKCJuZ1N3aXRjaENhc2UiLCJ1cGRhdGUiKSxDZSg0KSxSZSgibmdGb3JPZiIsYS5zeXNzaXRlLnZhbHVlKSxDZSg3KSxSZSgibmdJZiIsYS5saWNlbnNlS2V5RGF0YSYm'@; put 'YS51c2VyQ291bnRMaW1pdGF0aW9uKSxDZSg5KSxSZSgibmdJZiIsYS5saWNlbmNlRmlsZUxvYWRpbmcpLENlKDEpLFJlKCJuZ0lmIiwhYS5saWNlbmNlRmlsZUxvYWRpbmcpLENlKDkpLFJlKCJuZ01vZGVsIixhLmxpY2VuY2VLZXlWYWx1ZSksQ2UoNSksUmUoIm5nTW9kZWwiLGEuYWN0aXZh'@; put 'dGlvbktleVZhbHVlKSxDZSgxKSxSZSgiY2xyTG9hZGluZyIsYS5hcHBseWluZ0tleXMpKCJkaXNhYmxlZCIsYS5kaXNhYmxlQXBwbHlCdXR0b24pLENlKDIpLFJlKCJuZ0lmIixhLmlzQXBwRnJlZVRpZXIudmFsdWUpfX1mdW5jdGlvbiByV2UoYyxsKXsxJmMmJnF0KDAsImFwcC10ZXJtcyIp'@; put 'fXZhciBxc2U9ZnVuY3Rpb24oYyl7cmV0dXJuIGMua2V5PSJrZXkiLGMucmVnaXN0ZXI9InJlZ2lzdGVyIixjLmxpbWl0PSJsaW1pdCIsYy51cGRhdGU9InVwZGF0ZSIsY30ocXNlfHx7fSk7Y29uc3QgaVdlPVt7cGF0aDoiOmFjdGlvbiIsY29tcG9uZW50OigoKT0+e2NsYXNzIGN7Y29uc3Ry'@; put 'dWN0b3IoYSxkLGgsZil7dGhpcy5yb3V0ZT1hLHRoaXMubGljZW5jZVNlcnZpY2U9ZCx0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmFwcFNlcnZpY2U9Zix0aGlzLmFjdGlvbj1udWxsLHRoaXMubGljZW5zZUVycm9ycz17bWlzc2luZzonTGljZW5jZSBrZXkgaXMgbWlzc2luZyAtIHBsZWFzZSBj'@; put 'b250YWN0IDxhIGNsYXNzPSJjb2xvci1ncmVlbiIgaHJlZj0ibWFpbHRvOiBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIj5zdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvPC9hPiBhbmQgZW50ZXIgdmFsaWQga2V5cyBiZWxvdy4nLGV4cGlyZWQ6J0xpY2VuY2Uga2V5IGlzIGV4cGlyZWQgLSBw'@; put 'bGVhc2UgY29udGFjdCA8YSBjbGFzcz0iY29sb3ItZ3JlZW4iIGhyZWY9Im1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyI+c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbzwvYT4gYW5kIGVudGVyIHZhbGlkIGtleXMgYmVsb3cuJyxpbnZhbGlkOidMaWNlbmNlIGtleSBpcyBpbnZh'@; put 'bGlkIC0gcGxlYXNlIGNvbnRhY3QgPGEgY2xhc3M9ImNvbG9yLWdyZWVuIiBocmVmPSJtYWlsdG86IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iPnN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW88L2E+IGFuZCBlbnRlciB2YWxpZCBrZXlzIGJlbG93LicsbWlzc21hdGNoOidZb3VyIFNZU1NJ'@; put 'VEUgKGJlbG93KSBpcyBub3QgZm91bmQgaW4gdGhlIGxpY2VuY2Uga2V5IC0gcGxlYXNlIGNvbnRhY3QgPGEgY2xhc3M9ImNvbG9yLWdyZWVuIiBocmVmPSJtYWlsdG86IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iPnN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW88L2E+IGFuZCBlbnRlciB2'@; put 'YWxpZCBrZXlzIGJlbG93Lid9LHRoaXMubGljZW5jZUtleVZhbHVlPSIiLHRoaXMuYWN0aXZhdGlvbktleVZhbHVlPSIiLHRoaXMuYXBwbHlpbmdLZXlzPSExLHRoaXMuc3lzc2l0ZT10aGlzLmFwcFNlcnZpY2Uuc3lzc2l0ZSx0aGlzLmN1cnJlbnRMaWNlbmNlS2V5PXRoaXMubGljZW5jZVNl'@; put 'cnZpY2UubGljZW5jZUtleSx0aGlzLmN1cnJlbnRBY3RpdmF0aW9uS2V5PXRoaXMubGljZW5jZVNlcnZpY2UuYWN0aXZhdGlvbktleSx0aGlzLmlzQXBwRnJlZVRpZXI9dGhpcy5saWNlbmNlU2VydmljZS5pc0FwcEZyZWVUaWVyLHRoaXMudXNlckNvdW50TGltaXRhdGlvbj10aGlzLmxpY2Vu'@; put 'Y2VTZXJ2aWNlLnVzZXJDb3VudExpbWl0YXRpb24sdGhpcy5saWNlbnNlS2V5RGF0YT1udWxsLHRoaXMuaW5wdXRUeXBlPSJmaWxlIix0aGlzLmxpY2VuY2VGaWxlTG9hZGluZz0hMSx0aGlzLmxpY2VuY2VmaWxlPXtmaWxlbmFtZToiIn19bmdPbkluaXQoKXt0aGlzLmxpY2VuY2VLZXlWYWx1'@; put 'ZT10aGlzLmN1cnJlbnRMaWNlbmNlS2V5fHwiIix0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZT10aGlzLmN1cnJlbnRBY3RpdmF0aW9uS2V5fHwiIix0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShhPT57dGhpcy5rZXlFcnJvcj1hLmVycm9yLHRoaXMubWlzc21hdGNoZWRLZXk9YS5t'@; put 'aXNzbWF0Y2hJZCxhLmRldGFpbHMmJih0aGlzLmVycm9yRGV0YWlscz1hdG9iKGEuZGV0YWlscykpfSksdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKGE9PntsZXQgZD1hLmFjdGlvbjtkJiZPYmplY3QudmFsdWVzKHFzZSkuaW5jbHVkZXMoZCkmJih0aGlzLmFjdGlvbj1kKX0pLHRoaXMu'@; put 'bGljZW5zZUtleURhdGE9dGhpcy5saWNlbmNlU2VydmljZS5nZXRMaWNlbnNlS2V5RGF0YSgpfXRyaW1LZXlzKCl7dGhpcy5saWNlbmNlS2V5VmFsdWU9dGhpcy5saWNlbmNlS2V5VmFsdWUudHJpbSgpLHRoaXMuYWN0aXZhdGlvbktleVZhbHVlPXRoaXMuYWN0aXZhdGlvbktleVZhbHVlLnRy'@; put 'aW0oKX1jb3B5U3lzc2l0ZShhLGQsaCl7Y29uc3QgZj1oLmpvaW4oIlxuIik7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZikudGhlbigoKT0+e2Euc2V0QXR0cmlidXRlKCJzaGFwZSIsImNoZWNrIiksYS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiaXMtc3VjY2VzcyIpLGQuaW5uZXJU'@; put 'ZXh0PSJDb3BpZWQhIixzZXRUaW1lb3V0KCgpPT57YS5zZXRBdHRyaWJ1dGUoInNoYXBlIiwiY29weSIpLGEucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpLGQuaW5uZXJUZXh0PSJDb3B5IHRvIGNsaXBib2FyZCJ9LDFlMyl9KX1hcHBseUtleXMoKXt0aGlzLmFwcGx5aW5nS2V5cz0hMCx0aGlz'@; put 'LnNhc1NlcnZpY2UucmVxdWVzdCgiYWRtaW4vcmVnaXN0ZXJrZXkiLHtrZXl1cGxvYWQ6W3tBQ1RJVkFUSU9OX0tFWTp0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZSxMSUNFTkNFX0tFWTp0aGlzLmxpY2VuY2VLZXlWYWx1ZX1dfSkudGhlbihkPT57ZC5yZXR1cm4mJmQucmV0dXJuWzBdJiYiU1VD'@; put 'Q0VTUyI9PT1kLnJldHVyblswXS5NU0cmJmxvY2F0aW9uLnJlcGxhY2UobG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdKX0pLmZpbmFsbHkoKCk9Pnt0aGlzLmFwcGx5aW5nS2V5cz0hMX0pfW9uRmlsZUNhcHR1cmUoYSxkPSExKXtsZXQgaD1kP2FbMF06YS50YXJnZXQuZmlsZXNbMF07aWYo'@; put 'dGhpcy5saWNlbmNlZmlsZS5maWxlbmFtZT1oLm5hbWUsIWgpcmV0dXJuO3RoaXMubGljZW5jZUZpbGVMb2FkaW5nPSEwO2NvbnN0IGY9bmV3IEZpbGVSZWFkZXI7Zi5vbmxvYWQ9Xz0+e2lmKHRoaXMubGljZW5jZUZpbGVFcnJvcj0iRXJyb3IgcmVhZGluZyBmaWxlLiIsIV98fCFfLnRhcmdl'@; put 'dHx8MiE9Xy50YXJnZXQucmVhZHlTdGF0ZXx8Xy50YXJnZXQuZXJyb3J8fCFfLnRhcmdldC5yZXN1bHQpcmV0dXJuO3RoaXMubGljZW5jZUZpbGVMb2FkaW5nPSExLHRoaXMubGljZW5jZUZpbGVFcnJvcj12b2lkIDA7Y29uc3QgVD1fLnRhcmdldC5yZXN1bHQudG9TdHJpbmcoKS5zcGxpdCgi'@; put 'XG4iKTt0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZT1UWzFdLHRoaXMubGljZW5jZUtleVZhbHVlPVRbMF19LGYucmVhZEFzVGV4dChoKX1zd2l0Y2hUeXBlKGEpe3RoaXMuaW5wdXRUeXBlPWF9Z2V0IGRpc2FibGVBcHBseUJ1dHRvbigpe3JldHVybiB0aGlzLmxpY2VuY2VLZXlWYWx1ZS5sZW5n'@; put 'dGg8MXx8dGhpcy5hY3RpdmF0aW9uS2V5VmFsdWUubGVuZ3RoPDF8fHRoaXMubGljZW5jZUtleVZhbHVlPT09dGhpcy5jdXJyZW50TGljZW5jZUtleSYmdGhpcy5hY3RpdmF0aW9uS2V5VmFsdWU9PT10aGlzLmN1cnJlbnRBY3RpdmF0aW9uS2V5fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rp'@; put 'b24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChHbCksdHQoQzApLHR0KG9hKSx0dChVeCkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtbGljZW5zaW5nIl1dLGRlY2xzOjIsdmFyczoyLGNvbnN0czpbWyJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxbNCwibmdJZiJd'@; put 'LFsxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtYmxvY2siLDMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFszLCJtaXNza2V5Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLXRvcC1yaWdodCIsMywiY2xp'@; put 'Y2siXSxbInNoYXBlIiwiY29weSIsInNpemUiLCIxNSIsMSwiY3Vyc29yLXBvaW50ZXIiXSxbImNvcHlJY29uIiwiIl0sWzEsInRvb2x0aXAtY29udGVudCJdLFsiY29weVRvb2x0aXAiLCIiXSxbImNsYXNzIiwibS0wIiw0LCJuZ0lmIl0sWyJjbHJUYWJMaW5rIiwiIl0sWyJ0eXBlIiwiZmls'@; put 'ZSIsImhpZGRlbiIsIiIsMywiY2hhbmdlIl0sWyJsaWNlbmNlRmlsZSIsIiJdLFsiYXBwRmlsZURyb3AiLCIiLDEsImRyb3AtYXJlYSIsMywiY2xpY2siLCJmaWxlRHJvcCJdLFsiY2xhc3MiLCJzcGlubmVyLXNtIiw0LCJuZ0lmIl0sWzEsImNsci1mb3JtIiwibGljZW5zZS1rZXktZm9ybSJd'@; put 'LFsxLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbIm5hbWUiLCJsaWNlbnNlLWtleS1hcmVhIiwicGxhY2Vob2xkZXIiLCJQYXN0ZSBsaWNlbmNlIGtleSBoZXJlIiwxLCJjbHItdGV4dGFyZWEiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwibW91c2VsZWF2ZSJdLFsxLCJjbHItZm9y'@; put 'bSIsImFjdGl2YXRpb24ta2V5LWZvcm0iXSxbIm5hbWUiLCJhY3RpdmF0aW9uLWtleS1hcmVhIiwicGxhY2Vob2xkZXIiLCJQYXN0ZSBhY3RpdmF0aW9uIGtleSBoZXJlIiwxLCJjbHItdGV4dGFyZWEiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwibW91c2VsZWF2ZSJdLFsxLCJidG4i'@; put 'LCJidG4tcHJpbWFyeSIsImFwcGx5LWtleXMiLDMsImNsckxvYWRpbmciLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJyb3V0ZXJMaW5rIiwiLyIsImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4tbGluayIsNCwibmdJZiJdLFsiY2xhc3MiLCJrZXktZXJyb3IiLDQsIm5nSWYiXSxbImNsYXNzIiwia2V5'@; put 'LWVycm9yIiwzLCJpbm5lckhUTUwiLDQsIm5nSWYiXSxbMSwia2V5LWVycm9yIl0sWzEsImtleS1lcnJvciIsMywiaW5uZXJIVE1MIl0sWyJjbGFzc2VzIiwiY29sb3ItZ3JlZW4iXSxbMSwibS0wIl0sWzEsInNwaW5uZXItc20iXSxbInJvdXRlckxpbmsiLCIvIiwxLCJidG4iLCJidG4tc20i'@; put 'LCJidG4tbGluayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKEplKDAsbldlLDQ1LDEzLCJkaXYiLDApLEplKDEscldlLDEsMCwiYXBwLXRlcm1zIiwxKSksMiZhJiYoUmUoIm5nSWYiLCJyZWdpc3RlciIhPT1kLmFjdGlvbiksQ2UoMSksUmUoIm5nSWYiLCJyZWdpc3RlciI9PT1k'@; put 'LmFjdGlvbikpfSxkZXBlbmRlbmNpZXM6W3hzLFppLG5kLHRoLENwLFdhLEJzLHdwLE9zLHIyLGthLFp1LGRoLExwLE9wLGRnLFJwLElwLGNnLHUyLEJ1LGpZZSxqRV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtoZWlnaHQ6Y2FsYygxMDAlIC0gOTZweCk7cGFkZGluZzoyMHB4fS5jYXJk'@; put 'W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjB9LmtleS1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjE2cHh9Lm1pc3NrZXlbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlNzRjM2N9LmxpY2Vuc2Uta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVdLCAuYWN0aXZh'@; put 'dGlvbi1rZXktZm9ybVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowfS5saWNlbnNlLWtleS1mb3JtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbHItY29udHJvbC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdLCAuYWN0aXZhdGlvbi1rZXktZm9ybVtfbmdjb250ZW50LSVDT01QJV0g'@; put 'ICAuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5saWNlbnNlLWtleS1mb3JtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbHItY29udHJvbC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgdGV4dGFyZWFbX25nY29udGVudC0lQ09NUCVd'@; put 'LCAuYWN0aXZhdGlvbi1rZXktZm9ybVtfbmdjb250ZW50LSVDT01QJV0gICAuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRhcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO2hlaWdodDoxNzBweDttYXgtaGVpZ2h0OjE3MHB4O21pbi1oZWln'@; put 'aHQ6MTcwcHg7cmVzaXplOm5vbmV9LmFwcGx5LWtleXNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo0MHB4O3dpZHRoOjIwMHB4fS5kcm9wLWFyZWFbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRk'@; put 'aW5nOjE1cHg7Ym9yZGVyOjJweCBkYXNoZWQgI2IyYjJiMjtib3JkZXItcmFkaXVzOjRweDtjdXJzb3I6cG9pbnRlcjttYXJnaW46MTBweCAwfWNsci10YWJzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17Ym94LXNoYWRvdzpub25lIWltcG9ydGFudH0i'@; put 'XX0pLGN9KSgpLGNhbkFjdGl2YXRlOltwVV0sY2FuRGVhY3RpdmF0ZTpbcFVdfV07bGV0IG9XZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBv'@; put 'cnRzOltoYy5mb3JDaGlsZChpV2UpLGhjXX0pLGN9KSgpLHNXZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltvbyxxbCxfdSxvV2Us'@; put 'VjddfSksY30pKCk7ZnVuY3Rpb24gYVdlKGMsbCl7aWYoMSZjJiYobWUoMCwidGQiLDE5KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQsZD1WZSgpO1JlKCJyb3V0ZXJMaW5rIiwiL3N0YWdlLyIrZC5qc1BhcmFtc1thXSksQ2UoMSksZ3IoIiAiLGQuanNQYXJhbXNb'@; put 'YV0sIiAiKX19ZnVuY3Rpb24gbFdlKGMsbCl7aWYoMSZjJiYobWUoMCwidGQiLDQpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdCxkPVZlKCk7Q2UoMSksZ3IoIiAiLGQuanNQYXJhbXNbYV0sIiAiKX19ZnVuY3Rpb24gY1dlKGMsbCl7aWYoMSZjJiYobWUoMCwidHIi'@; put 'KSgxLCJ0ZCIsNCksTmUoMikseWUoKSxKZSgzLGFXZSwyLDIsInRkIiwxNyksSmUoNCxsV2UsMiwxLCJ0ZCIsMTgpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgyKSxvcihhKSxDZSgxKSxSZSgibmdJZiIsYS5pbmNsdWRlcygiVEFCTEVfSUQiKSksQ2UoMSksUmUoIm5nSWYi'@; put 'LCFhLmluY2x1ZGVzKCJUQUJMRV9JRCIpKX19ZnVuY3Rpb24gdVdlKGMsbCl7aWYoMSZjJiYobWUoMCwidHIiKSgxLCJ0ZCIsNCksTmUoMikseWUoKSxtZSgzLCJ0ZCIsNCksTmUoNCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1WZSgzKTtDZSgyKSxvcihhKSxDZSgyKSxv'@; put 'cihkLnN1Ym1pdERldGFpbHNbYV0pfX1mdW5jdGlvbiBkV2UoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdGFiLWNvbnRlbnQiKSgxLCJkaXYiLDIyKSgyLCJ0YWJsZSIsMykoMywidGhlYWQiKSg0LCJ0ciIpKDUsInRoIiw0KSxOZSg2LCJOYW1lIikseWUoKSxtZSg3LCJ0aCIsNCksTmUoOCwi'@; put 'VmFsdWUiKSx5ZSgpKCkoKSxtZSg5LCJ0Ym9keSIpLEplKDEwLHVXZSw1LDIsInRyIiw1KSx5ZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMTApLFJlKCJuZ0Zvck9mIixhLnN1Ym1pdEFycil9fWZ1bmN0aW9uIGhXZShjLGwpe2lmKDEmYyYmKG1lKDAsInRyIikoMSwidGQiLDQp'@; put 'LE5lKDIpLHllKCksbWUoMywidGQiLDQpLE5lKDQpLHllKCkoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoMik7Q2UoMiksb3IoYSksQ2UoMiksb3IoZC5qc1BhcmFtc1thXSl9fWZ1bmN0aW9uIGZXZShjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10YWJzIikoMSwiY2xyLXRhYiIp'@; put 'KDIsImJ1dHRvbiIsMjApLE5lKDMsIlN1Ym1pdHRlZCBUYWJsZSBEZXRhaWxzIikseWUoKSxKZSg0LGRXZSwxMSwxLCJjbHItdGFiLWNvbnRlbnQiLDIxKSx5ZSgpLG1lKDUsImNsci10YWIiKSg2LCJidXR0b24iLDIwKSxOZSg3LCJCYXNlIFRhYmxlIERldGFpbHMiKSx5ZSgpLG1lKDgsImNs'@; put 'ci10YWItY29udGVudCIpKDksImRpdiIsMjIpKDEwLCJ0YWJsZSIsMykoMTEsInRoZWFkIikoMTIsInRyIikoMTMsInRoIiw0KSxOZSgxNCwiTmFtZSIpLHllKCksbWUoMTUsInRoIiw0KSxOZSgxNiwiVmFsdWUiKSx5ZSgpKCkoKSxtZSgxNywidGJvZHkiKSxKZSgxOCxoV2UsNSwyLCJ0ciIs'@; put 'NSkseWUoKSgpKCkoKSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDQpLFJlKCJjbHJJZkFjdGl2ZSIsITApLENlKDE0KSxSZSgibmdGb3JPZiIsYS5rZXlzQXJyYXkpfX1mdW5jdGlvbiBwV2UoYyxsKXsxJmMmJihtZSgwLCJwIiw3NCksTmUoMSwiIFRoZXJlIGFyZSBubyBkZXRhaWxzIHRv'@; put 'IHNob3cgIikseWUoKSl9ZnVuY3Rpb24gZ1dlKGMsbCl7aWYoMSZjJiYoVnIoMCksbWUoMSwiZGl2Iiw3NSkoMiwic3BhbiIpLE5lKDMsIlRhYmxlIElkOiIpLHllKCksbWUoNCwic3Ryb25nIiw3NiksTmUoNSkseWUoKSgpLG1lKDYsImRpdiIpKDcsInNwYW4iKSxOZSg4LCJTdWJtaXR0ZXI6'@; put 'IikseWUoKSxtZSg5LCJzcGFuIiw3NyksTmUoMTApLHllKCkoKSxtZSgxMSwiZGl2IikoMTIsInNwYW4iKSxOZSgxMywiU3VibWl0dGVkIG9uOiIpLHllKCksbWUoMTQsInNwYW4iLDc3KSxOZSgxNSkseWUoKSgpLG1lKDE2LCJkaXYiKSgxNywic3BhbiIpLE5lKDE4LCJTdWJtaXR0ZWQgUmVh'@; put 'c29uOiIpLHllKCksbWUoMTksInNwYW4iLDc3KSxOZSgyMCkseWUoKSgpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSg1KTtDZSg0KSxSZSgicm91dGVyTGluayIsIi9zdGFnZS8iKyhudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlRBQkxFX0lEKSksQ2UoMSksZ3IoIiAi'@; put 'LG51bGw9PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuVEFCTEVfSUQsIiAiKSxDZSg1KSxncigiICIsbnVsbD09YS50YWJsZURldGFpbHM/bnVsbDphLnRhYmxlRGV0YWlscy5TVUJNSVRURURfQllfTk0sIiAiKSxDZSg1KSxncigiICIsbnVsbD09YS50YWJsZURldGFpbHM/'@; put 'bnVsbDphLnRhYmxlRGV0YWlscy5TVUJNSVRURURfT05fRFRUTSwiICIpLENlKDUpLGdyKCIgIixudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9SRUFTT05fVFhULCIgIil9fWZ1bmN0aW9uIG1XZShjLGwpezEmYyYmKG1lKDAsInNwYW4iLDc4KSxx'@; put 'dCgxLCJjbHItaWNvbiIsNzkpLE5lKDIsIiBPbmx5IHRoZSBmaXJzdCAxMDAgaW5zZXJ0cywgdXBkYXRlcyBvciBkZWxldGVzIGFyZSBkaXNwbGF5ZWQgIikseWUoKSl9ZnVuY3Rpb24gdldlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw0OSkoMSwiZGl2Iiw1MCkoMiwi'@; put 'ZGl2Iiw1MSksSmUoMyxwV2UsMiwwLCJwIiw0NSksSmUoNCxnV2UsMjEsNSwibmctY29udGFpbmVyIiw4KSx5ZSgpLG1lKDUsImRpdiIsNTIpKDYsImRpdiIsNTMpKDcsImRpdiIsNTQpKDgsImRpdiIsNTUpKDksImJ1dHRvbiIsNTYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25z'@; put 'dCBoPVZlKDQpO3JldHVybiBqdChoLmdvVG9CYXNlKG51bGw9PWguanNQYXJhbXM/bnVsbDpoLmpzUGFyYW1zLlRBQkxFX05NKSl9KSxOZSgxMCwiIEdvIHRvIGJhc2UgdGFibGUgc2NyZWVuICIpLHllKCksbWUoMTEsImJ1dHRvbiIsNTcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtj'@; put 'b25zdCBoPVZlKDQpO3JldHVybiBqdChoLmdldFRhYmxlKGgudGFibGVJZCkpfSksTmUoMTIsIiBHbyB0byBlZGl0ZWQgc2NyZWVuICIpLHllKCksbWUoMTMsImJ1dHRvbiIsNTgpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDQpO3JldHVybiBqdChoLmdvQmFjayhu'@; put 'dWxsPT1oLmpzUGFyYW1zP251bGw6aC5qc1BhcmFtcy5UQUJMRV9OTSkpfSksTmUoMTQsIiBHbyBiYWNrIHRvIGVkaXRvciAiKSx5ZSgpKCkoKSgpLG1lKDE1LCJkaXYiLDU5KSgxNiwiYnV0dG9uIiw2MCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSg0KS5hcHBy'@; put 'b3ZlVGFibGUoKSl9KSxOZSgxNywiIEFDQ0VQVCAiKSx5ZSgpLG1lKDE4LCJidXR0b24iLDYxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDQpLnJlamVjdE9wZW49ITApfSksTmUoMTksIiBSRUpFQ1QgIikseWUoKSxtZSgyMCwiY2xyLXRvZ2dsZS1jb250YWlu'@; put 'ZXIiLDYyKSgyMSwiY2xyLXRvZ2dsZS13cmFwcGVyIikoMjIsImlucHV0Iiw2MykseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSg0KS5mb3JtYXR0ZWRWYWx1ZXM9aCl9KSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSg0KS5m'@; put 'b3JtYXR0aW5nQ2hhbmdlZCgpKX0pLHllKCksbWUoMjMsImxhYmVsIiw2NCksTmUoMjQpLHllKCkoKSgpKCksbWUoMjUsImRpdiIsNjUpLEplKDI2LG1XZSwzLDAsInNwYW4iLDY2KSxtZSgyNywiZGl2IiwzMSkoMjgsImRpdiIsNjcpKDI5LCJzcGFuIiw2OCksTmUoMzAsIiBDaGFuZ2VkIFJv'@; put 'd3MgIiksbWUoMzEsInNwYW4iLDY5KSxOZSgzMikseWUoKSgpLG1lKDMzLCJzcGFuIiw3MCksTmUoMzQsIiBBZGRlZCBSb3dzICIpLG1lKDM1LCJzcGFuIiw3MSksTmUoMzYpLHllKCkoKSxtZSgzNywic3BhbiIsNzIpLE5lKDM4LCIgRGVsZXRlZCBSb3dzICIpLG1lKDM5LCJzcGFuIiw3Myks'@; put 'TmUoNDApLHllKCkoKSgpKCkoKSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoNCk7Q2UoMyksUmUoIm5nSWYiLCFhLnRhYmxlRGV0YWlscyksQ2UoMSksUmUoIm5nSWYiLGEudGFibGVEZXRhaWxzKSxDZSgxMiksUmUoImNsckxvYWRpbmciLGEuYWNjZXB0TG9hZGluZykoImRpc2FibGVkIiwh'@; put 'YS5sb2FkaW5nVGFibGV8fCJOTyI9PT0obnVsbD09YS5wYXJhbXM/bnVsbDphLnBhcmFtcy5JU0FQUFJPVkVSKXx8YS5ub0NoYW5nZXMpLENlKDIpLFJlKCJkaXNhYmxlZCIsIWEubG9hZGluZ1RhYmxlfHwiTk8iPT09KG51bGw9PWEucGFyYW1zP251bGw6YS5wYXJhbXMuSVNBUFBST1ZFUil8'@; put 'fGEubm9DaGFuZ2VzKSxDZSg0KSxSZSgibmdNb2RlbCIsYS5mb3JtYXR0ZWRWYWx1ZXMpLENlKDIpLG9yKGEuZm9ybWF0dGVkVmFsdWVzPyJGb3JtYXR0ZWQiOiJVbmZvcm1hdHRlZCIpLENlKDIpLFJlKCJuZ0lmIixhLmRpZmZzTGltaXQpLENlKDYpLG9yKGEubGVucy51cGRhdGVkKSxDZSg0'@; put 'KSxvcihhLmxlbnMubmV3KSxDZSg0KSxvcihhLmxlbnMuZGVsZXRlZCl9fWZ1bmN0aW9uIF9XZShjLGwpezEmYyYmKG1lKDAsImRpdiIpKDEsImgzIiksTmUoMiwiTG9hZGluZyB0YWJsZSIpLHllKCkoKSl9ZnVuY3Rpb24gYldlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw4MCkoMSwic3Bh'@; put 'biIsODEpLE5lKDIsIiBMb2FkaW5nLi4uICIpLHllKCksSmUoMyxfV2UsMywwLCJkaXYiLDgpLHllKCkpLDImYyl7Y29uc3QgYT1WZSg0KTtDZSgzKSxSZSgibmdJZiIsIWEubG9hZGluZ1RhYmxlKX19ZnVuY3Rpb24geVdlKGMsbCl7MSZjJiYobWUoMCwicCIsNzQpLE5lKDEsIiBUaGVyZSBh'@; put 'cmUgbm8gY2hhbmdlcyB0byBzaG93ICIpLHllKCkpfWZ1bmN0aW9uIHdXZShjLGwpe2lmKDEmYyYmKG1lKDAsInRoIiw0KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMSksb3IoYSl9fWZ1bmN0aW9uIENXZShjLGwpe2lmKDEmYyYmKG1lKDAsInNwYW4iLDg2KSxO'@; put 'ZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS5pbmRleCxkPVZlKDIpLmluZGV4LGg9VmUoNCk7Q2UoMSksZ3IoIk9yaWdpbmFsIHZhbHVlIGlzOiAiLGguYXJyT2ZDaGFuZ2VzW2RdW2FdLCIiKX19Y29uc3QgS3NlPWZ1bmN0aW9uKGMpe3JldHVybnsiY2ggdG9vbHRpcCB0b29sdGlwLW1k'@; put 'IHRvb2x0aXAtdG9wLXJpZ2h0IjpjfX07ZnVuY3Rpb24gU1dlKGMsbCl7aWYoMSZjJiYobWUoMCwidGQiLDg0KSxOZSgxKSxKZSgyLENXZSwyLDEsInNwYW4iLDg1KSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4LGg9VmUoMikuaW5kZXgsZj1WZSg0KTtSZSgibmdD'@; put 'bGFzcyIsSjIoMyxLc2UsMT09Zi5hcnJDaGFuZ2VkW2hdW2RdJiYidXBkYXRlZCI9PWYuY2hBcnJbaF0pKSxDZSgxKSxncigiICIsZi5kaWZmVGFibGUuZGF0YVtoXVthXSwiICIpLENlKDEpLFJlKCJuZ0lmIiwxPT1mLmFyckNoYW5nZWRbaF1bZF0mJiJ1cGRhdGVkIj09Zi5jaEFycltoXSl9'@; put 'fWZ1bmN0aW9uIE1XZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsU1dlLDMsNSwidGQiLDgzKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKS5pbmRleCxkPVZlKDQpO0NlKDEpLFJlKCJuZ0Zvck9mIixkLnJvd0tleXNbYV0pfX1mdW5jdGlvbiB4V2UoYyxsKXtpZigxJmMmJihtZSgwLCJ0ZCIs'@; put 'NCksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoMikuaW5kZXgsaD1WZSg0KTtDZSgxKSxncigiICIsaC5kaWZmVGFibGUuZGF0YVtkXVthXSwiICIpfX1mdW5jdGlvbiBFV2UoYyxsKXtpZigxJmMmJihWcigwKSxKZSgxLHhXZSwyLDEsInRkIiw0NyksenIoKSks'@; put 'MiZjKXtjb25zdCBhPVZlKCkuaW5kZXgsZD1WZSg0KTtDZSgxKSxSZSgibmdGb3JPZiIsZC5yb3dLZXlzW2FdKX19Y29uc3QgWHNlPWZ1bmN0aW9uKGMsbCxhKXtyZXR1cm57YWRkZWRSb3c6YyxkZWxldGVkUm93OmwsdXBkYXRlZFJvdzphfX07ZnVuY3Rpb24ga1dlKGMsbCl7aWYoMSZjJiYo'@; put 'bWUoMCwidHIiLDgyKSxKZSgxLE1XZSwyLDEsIm5nLWNvbnRhaW5lciIsOCksSmUoMixFV2UsMiwxLCJuZy1jb250YWluZXIiLDgpLHllKCkpLDImYyl7Y29uc3QgYT1sLmluZGV4LGQ9VmUoNCk7UmUoIm5nQ2xhc3MiLHlfKDMsWHNlLCJhZGRlZCI9PWQuY2hBcnJbYV0sImRlbGV0ZWQiPT1k'@; put 'LmNoQXJyW2FdLCJ1cGRhdGVkIj09ZC5jaEFyclthXSkpLENlKDEpLFJlKCJuZ0lmIiwidXBkYXRlZCI9PT1kLmNoQXJyW2FdKSxDZSgxKSxSZSgibmdJZiIsInVwZGF0ZWQiIT09ZC5jaEFyclthXSl9fWZ1bmN0aW9uIEFXZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIs'@; put 'MjkpKDEsImRpdiIsMzApKDIsImRpdiIsMzEpKDMsImRpdiIsMzIpKDQsInNwYW4iLDMzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLmdvVG9BcHByb3ZhbHNMaXN0KCkpfSkscXQoNSwiY2xyLWljb24iLDM0KSxOZSg2LCJCYWNrIHRvIGFwcHJvdmFscyBs'@; put 'aXN0ICIpLHllKCkoKSxtZSg3LCJkaXYiLDM1KSg4LCJoMyIsMzYpLE5lKDkpLHllKCkoKSxtZSgxMCwiZGl2IiwzNykoMTEsImEiLDM4KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLmdldERldGFpbHMoKSl9KSxxdCgxMiwiY2xyLWljb24iLDM5KSx5ZSgp'@; put 'KCkoKSxtZSgxMywicCIsNDApLE5lKDE0KSx5ZSgpKCksbWUoMTUsImRpdiIsNDEpLEplKDE2LHZXZSw0MSwxMSwiZGl2Iiw0MikseWUoKSxKZSgxNyxiV2UsNCwxLCJkaXYiLDQzKSxtZSgxOCwiZGl2Iiw0NCksSmUoMTkseVdlLDIsMCwicCIsNDUpLG1lKDIwLCJ0YWJsZSIsMykoMjEsInRo'@; put 'ZWFkIikoMjIsInRyIiw0NiksSmUoMjMsd1dlLDIsMSwidGgiLDQ3KSx5ZSgpKCksbWUoMjQsInRib2R5IiksSmUoMjUsa1dlLDMsNywidHIiLDQ4KSx5ZSgpKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgzKTtDZSg5KSxncigiICIsbnVsbD09YS5qc1BhcmFtcz9udWxsOmEuanNQYXJhbXMu'@; put 'VEFCTEVfTk0sIiAiKSxDZSg1KSxncigiICIsbnVsbD09YS5qc1BhcmFtcz9udWxsOmEuanNQYXJhbXMuVEFCTEVfREVTQywiICIpLENlKDIpLFJlKCJuZ0lmIixhLmxvYWRlZCksQ2UoMSksUmUoIm5nSWYiLCFhLmxvYWRpbmdUYWJsZSksQ2UoMiksUmUoIm5nSWYiLGEubG9hZGluZ1RhYmxl'@; put 'JiZhLm5vQ2hhbmdlcyksQ2UoNCksUmUoIm5nRm9yT2YiLGEucm93SGVhZGVyKSxDZSgyKSxSZSgibmdGb3JPZiIsYS5yb3dLZXlzKX19ZnVuY3Rpb24gVFdlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwyNyksSmUoMSxBV2UsMjYsNywiZGl2IiwyOCkseWUoKSksMiZjKXtjb25zdCBhPVZl'@; put 'KDIpO0NlKDEpLFJlKCJuZ0lmIixhLmxvYWRlZCl9fWZ1bmN0aW9uIERXZShjLGwpezEmYyYmKG1lKDAsInNwYW4iLDgxKSxOZSgxLCIgTG9hZGluZy4uLiAiKSx5ZSgpKX1mdW5jdGlvbiBJV2UoYyxsKXsxJmMmJihtZSgwLCJkaXYiKSgxLCJoMyIpLE5lKDIsIkxvYWRpbmcgcHJldmlldyIp'@; put 'LHllKCkoKSl9ZnVuY3Rpb24gTFdlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2Iiw4NyksSmUoMSxEV2UsMiwwLCJzcGFuIiw4OCksSmUoMixJV2UsMywwLCJkaXYiLDgpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgxKSxSZSgibmdJZiIsIWEubG9hZGVkKSxDZSgxKSxSZSgibmdJZiIs'@; put 'IWEubG9hZGVkKX19ZnVuY3Rpb24gUldlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwyMyksSmUoMSxUV2UsMiwxLCJkaXYiLDI0KSxtZSgyLCJkaXYiLDI1KSxKZSgzLExXZSwzLDIsImRpdiIsMjYpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksUmUoIm5nSWYiLGEubG9hZGVk'@; put 'KSxDZSgyKSxSZSgibmdJZiIsIWEubG9hZGVkKX19ZnVuY3Rpb24gT1dlKGMsbCl7MSZjJiYobWUoMCwic3BhbiIsNzgpLHF0KDEsImNsci1pY29uIiw3OSksTmUoMiwiIE9ubHkgdGhlIGZpcnN0IDEwMCBpbnNlcnRzLCB1cGRhdGVzIG9yIGRlbGV0ZXMgYXJlIGRpc3BsYXllZCAiKSx5ZSgp'@; put 'KX1mdW5jdGlvbiBQV2UoYyxsKXsxJmMmJnF0KDAsImRpdiIsNDkpfWZ1bmN0aW9uIEZXZShjLGwpezEmYyYmKG1lKDAsImRpdiIpKDEsImgzIiksTmUoMiwiTG9hZGluZyB0YWJsZSIpLHllKCkoKSl9ZnVuY3Rpb24gSFdlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwxMDMpKDEsInNwYW4i'@; put 'LDgxKSxOZSgyLCIgTG9hZGluZy4uLiAiKSx5ZSgpLEplKDMsRldlLDMsMCwiZGl2Iiw4KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoNCk7Q2UoMyksUmUoIm5nSWYiLCFhLmxvYWRpbmdUYWJsZSl9fWZ1bmN0aW9uIE5XZShjLGwpe2lmKDEmYyYmKG1lKDAsInRoIiw0KSxOZSgxKSx5ZSgpKSwy'@; put 'JmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMSksb3IoYSl9fWZ1bmN0aW9uIFZXZShjLGwpe2lmKDEmYyYmKG1lKDAsInNwYW4iLDg2KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS5pbmRleCxkPVZlKDIpLmluZGV4LGg9VmUoNCk7Q2UoMSksZ3IoIk9yaWdpbmFsIHZhbHVlIGlz'@; put 'OiAiLGguYXJyT2ZDaGFuZ2VzW2RdW2FdLCIiKX19ZnVuY3Rpb24gQldlKGMsbCl7aWYoMSZjJiYobWUoMCwidGQiLDg0KSxOZSgxKSxKZSgyLFZXZSwyLDEsInNwYW4iLDg1KSx5ZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4LGg9VmUoMikuaW5kZXgsZj1WZSg0KTtS'@; put 'ZSgibmdDbGFzcyIsSjIoMyxLc2UsMT09Zi5hcnJDaGFuZ2VkW2hdW2RdJiYidXBkYXRlZCI9PWYuY2hBcnJbaF0pKSxDZSgxKSxncigiICIsZi5kaWZmVGFibGUuZGF0YVtoXVthXSwiICIpLENlKDEpLFJlKCJuZ0lmIiwxPT1mLmFyckNoYW5nZWRbaF1bZF0mJiJ1cGRhdGVkIj09Zi5jaEFy'@; put 'cltoXSl9fWZ1bmN0aW9uIGpXZShjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsQldlLDMsNSwidGQiLDgzKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKS5pbmRleCxkPVZlKDQpO0NlKDEpLFJlKCJuZ0Zvck9mIixkLnJvd0tleXNbYV0pfX1mdW5jdGlvbiB6V2UoYyxsKXtpZigxJmMmJihtZSgw'@; put 'LCJ0ZCIsNCksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoMikuaW5kZXgsaD1WZSg0KTtDZSgxKSxncigiICIsaC5kaWZmVGFibGUuZGF0YVtkXVthXSwiICIpfX1mdW5jdGlvbiBVV2UoYyxsKXtpZigxJmMmJihWcigwKSxKZSgxLHpXZSwyLDEsInRkIiw0Nyks'@; put 'enIoKSksMiZjKXtjb25zdCBhPVZlKCkuaW5kZXgsZD1WZSg0KTtDZSgxKSxSZSgibmdGb3JPZiIsZC5yb3dLZXlzW2FdKX19ZnVuY3Rpb24gWldlKGMsbCl7aWYoMSZjJiYobWUoMCwidHIiLDgyKSxKZSgxLGpXZSwyLDEsIm5nLWNvbnRhaW5lciIsOCksSmUoMixVV2UsMiwxLCJuZy1jb250'@; put 'YWluZXIiLDgpLHllKCkpLDImYyl7Y29uc3QgYT1sLmluZGV4LGQ9VmUoNCk7UmUoIm5nQ2xhc3MiLHlfKDMsWHNlLCJhZGRlZCI9PWQuY2hBcnJbYV0sImRlbGV0ZWQiPT1kLmNoQXJyW2FdLCJ1cGRhdGVkIj09ZC5jaEFyclthXSkpLENlKDEpLFJlKCJuZ0lmIiwidXBkYXRlZCI9PT1kLmNo'@; put 'QXJyW2FdKSxDZSgxKSxSZSgibmdJZiIsInVwZGF0ZWQiIT09ZC5jaEFyclthXSl9fWZ1bmN0aW9uIFlXZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsOTMpKDEsImRpdiIsOTQpKDIsImRpdiIsMzEpKDMsImRpdiIsMzIpKDQsInNwYW4iLDk1KSx4dCgiY2xpY2siLGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLmdvVG9TdWJtaXRMaXN0KCkpfSkscXQoNSwiY2xyLWljb24iLDM0KSxOZSg2LCJCYWNrIHRvIHN1Ym1pdHRlZCBsaXN0ICIpLHllKCkoKSxtZSg3LCJkaXYiLDk2KSg4LCJoMyIsOTcpLE5lKDkpLHllKCkoKSxtZSgxMCwiZGl2IiwzNyko'@; put 'MTEsImEiLDM4KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLnRhYmxlRmxhZz0hMCl9KSxxdCgxMiwiY2xyLWljb24iLDM5KSx5ZSgpKCkoKSxtZSgxMywicCIsOTgpLE5lKDE0KSx5ZSgpKCksbWUoMTUsImRpdiIsNTApKDE2LCJkaXYiLDUxKSgxNywiZGl2'@; put 'Iiw3NSkoMTgsInNwYW4iKSxOZSgxOSwiVGFibGUgSWQ6IikseWUoKSxtZSgyMCwic3Ryb25nIiw3NikoMjEsInNwYW4iKSxOZSgyMikseWUoKSgpKCksbWUoMjMsImRpdiIpKDI0LCJzcGFuIiksTmUoMjUsIlN1Ym1pdHRlZCBvbjoiKSx5ZSgpLG1lKDI2LCJzcGFuIiw3NyksTmUoMjcpLHll'@; put 'KCkoKSxtZSgyOCwiZGl2IikoMjksInNwYW4iKSxOZSgzMCwiU3VibWl0IE1lc3NhZ2U6IikseWUoKSxtZSgzMSwic3BhbiIpLE5lKDMyKSx5ZSgpKCkoKSxtZSgzMywiZGl2Iiw1MikoMzQsImRpdiIsNTMpKDM1LCJkaXYiLDU0KSgzNiwiZGl2Iiw1NSkoMzcsImJ1dHRvbiIsNTYpLHh0KCJj'@; put 'bGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDMpO3JldHVybiBqdChoLmdvVG9CYXNlKGguc3ViT2JqLmJhc2UpKX0pLE5lKDM4LCIgR28gdG8gYmFzZSB0YWJsZSBzY3JlZW4gIikseWUoKSxtZSgzOSwiYnV0dG9uIiw1NykseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2Nv'@; put 'bnN0IGg9VmUoMyk7cmV0dXJuIGp0KGguZ2V0VGFibGUoaC5zdWJPYmoudGFibGVJZCkpfSksTmUoNDAsIiBHbyB0byBlZGl0ZWQgc2NyZWVuICIpLHllKCksbWUoNDEsImJ1dHRvbiIsNTgpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDMpO3JldHVybiBqdChoLmdv'@; put 'QmFjayhoLnN1Yk9iai5iYXNlKSl9KSxOZSg0MiwiIEdvIGJhY2sgdG8gZWRpdG9yICIpLHllKCkoKSgpKCksbWUoNDMsImRpdiIsNjUpLEplKDQ0LE9XZSwzLDAsInNwYW4iLDY2KSxtZSg0NSwiZGl2IiwzMSkoNDYsImRpdiIsNjcpKDQ3LCJzcGFuIiw2OCksTmUoNDgsIiBDaGFuZ2VkIFJv'@; put 'd3MgIiksbWUoNDksInNwYW4iLDY5KSxOZSg1MCkseWUoKSgpLG1lKDUxLCJzcGFuIiw3MCksTmUoNTIsIiBBZGRlZCBSb3dzICIpLG1lKDUzLCJzcGFuIiw3MSksTmUoNTQpLHllKCkoKSxtZSg1NSwic3BhbiIsNzIpLE5lKDU2LCIgRGVsZXRlZCBSb3dzICIpLG1lKDU3LCJzcGFuIiw3Myks'@; put 'TmUoNTgpLHllKCkoKSgpKCkoKSxtZSg1OSwiZGl2Iiw1MykoNjAsImNsci10b2dnbGUtY29udGFpbmVyIiw5OSkoNjEsImNsci10b2dnbGUtd3JhcHBlciIpKDYyLCJpbnB1dCIsNjMpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoMykuZm9ybWF0'@; put 'dGVkVmFsdWVzPWgpfSkoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMykuZm9ybWF0dGluZ0NoYW5nZWQoKSl9KSx5ZSgpLG1lKDYzLCJsYWJlbCIpLE5lKDY0KSx5ZSgpKCkoKSgpKCkoKSxtZSg2NSwiZGl2IiwxMDApLEplKDY2LFBXZSwxLDAsImRpdiIsNDIpLHll'@; put 'KCksSmUoNjcsSFdlLDQsMSwiZGl2IiwxMDEpLG1lKDY4LCJkaXYiLDEwMikoNjksInRhYmxlIiwzKSg3MCwidGhlYWQiKSg3MSwidHIiLDQ2KSxKZSg3MixOV2UsMiwxLCJ0aCIsNDcpLHllKCkoKSxtZSg3MywidGJvZHkiKSxKZSg3NCxaV2UsMyw3LCJ0ciIsNDgpLHllKCkoKSgpKCl9aWYo'@; put 'MiZjKXtjb25zdCBhPVZlKDMpO0NlKDkpLGdyKCIgIixhLnN1Yk9iai5iYXNlLCIgIiksQ2UoNSksZ3IoIiAiLGEudGFibGVEZXNjcmlwdGlvbiwiICIpLENlKDYpLFJlKCJyb3V0ZXJMaW5rIiwiL3N0YWdlLyIrYS5zdWJPYmoudGFibGVJZCksQ2UoMiksZ3IoIiAiLGEuc3ViT2JqLnRhYmxl'@; put 'SWQsIiIpLENlKDUpLGdyKCIgIixhLnN1Yk9iai5zdWJtaXR0ZWQsIiAiKSxDZSg1KSxncigiICIsYS5zdWJPYmouc3VibWl0UmVhc29uLCIgIiksQ2UoMTIpLFJlKCJuZ0lmIixhLmRpZmZzTGltaXQpLENlKDYpLG9yKGEubGVucy51cGRhdGVkKSxDZSg0KSxvcihhLmxlbnMubmV3KSxDZSg0'@; put 'KSxvcihhLmxlbnMuZGVsZXRlZCksQ2UoNCksUmUoIm5nTW9kZWwiLGEuZm9ybWF0dGVkVmFsdWVzKSxDZSgyKSxvcihhLmZvcm1hdHRlZFZhbHVlcz8iRm9ybWF0dGVkIjoiVW5mb3JtYXR0ZWQiKSxDZSgyKSxSZSgibmdJZiIsYS5sb2FkZWQpLENlKDEpLFJlKCJuZ0lmIiwhYS5sb2FkaW5n'@; put 'VGFibGUpLENlKDUpLFJlKCJuZ0Zvck9mIixhLnJvd0hlYWRlciksQ2UoMiksUmUoIm5nRm9yT2YiLGEucm93S2V5cyl9fWZ1bmN0aW9uIFdXZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsOTEpLEplKDEsWVdlLDc1LDE2LCJkaXYiLDkyKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2Uo'@; put 'MSksUmUoIm5nSWYiLGEubG9hZGVkKX19ZnVuY3Rpb24gR1dlKGMsbCl7MSZjJiYobWUoMCwiZGl2IikoMSwiaDMiKSxOZSgyLCJMb2FkaW5nIHN1Ym1pdHRlZCB0YWJsZSIpLHllKCkoKSl9ZnVuY3Rpb24gJFdlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwxMDQpKDEsImRpdiIsMTA1KSgy'@; put 'LCJzcGFuIiw4MSksTmUoMywiIExvYWRpbmcuLi4gIikseWUoKSxKZSg0LEdXZSwzLDAsImRpdiIsOCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoNCksUmUoIm5nSWYiLCFhLmxvYWRlZCl9fWZ1bmN0aW9uIHFXZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIpLEplKDEsV1dlLDIs'@; put 'MSwiZGl2Iiw4OSksSmUoMiwkV2UsNSwxLCJkaXYiLDkwKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJZiIsYS5sb2FkZWQpLENlKDEpLFJlKCJuZ0lmIiwhYS5sb2FkZWQpfX1jb25zdCBLV2U9ZnVuY3Rpb24oKXtyZXR1cm57c3RhbmRhbG9uZTohMH19O2xldCBKc2U9'@; put 'KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLnNhc1N0b3JlU2VydmljZT1hLHRoaXMuZXZlbnRTZXJ2aWNlPWQsdGhpcy5yb3V0ZXI9aCx0aGlzLnJvdXRlPWYsdGhpcy5kZXRhaWxzT3Blbj0hMSx0aGlzLnJlamVjdE9wZW49ITEsdGhpcy5sZW5zPXtuZXc6MCx1cGRh'@; put 'dGVkOjAsZGVsZXRlZDowfSx0aGlzLmxvYWRlZD0hMSx0aGlzLmxvYWRpbmdUYWJsZT0hMSx0aGlzLnN1Ym1pdFJlYXNvbj0iIix0aGlzLmluc3RhbmNlPSJob3RJbnN0YW5jZSIsdGhpcy5hY2NlcHRMb2FkaW5nPSExLHRoaXMucmVqZWN0TG9hZGluZz0hMSx0aGlzLnN1Ym1pdHRlZD0hMSx0'@; put 'aGlzLnRhYmxlRmxhZz0hMSx0aGlzLnJvd0tleXM9W10sdGhpcy5jaEFycj1bXSx0aGlzLnNlY29uZE9wZW49ITEsdGhpcy5mb3JtYXR0ZWRWYWx1ZXM9ITAsdGhpcy5jaGFuZ2VzQXJyPVtdLHRoaXMuZGlmZlRhYmxlPXtkYXRhOltdfSx0aGlzLmRpZmZzTGltaXQ9ITEsdGhpcy5yZWNvcmRz'@; put 'TGltaXQ9MTAwfWdldCBub0NoYW5nZXMoKXtyZXR1cm4gMD09PXRoaXMubGVucy5uZXcmJjA9PT10aGlzLmxlbnMudXBkYXRlZCYmMD09PXRoaXMubGVucy5kZWxldGVkfWdvVG9CYXNlKGEpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK2EpfWdvVG9BcHByb3ZhbHNM'@; put 'aXN0KCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvcmV2aWV3L2FwcHJvdmUiKX1nZXRUYWJsZShhKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2EpfWdvQmFjayhhKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIithKX1nb1RvVmlld2VyKCl7dGhp'@; put 'cy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIil9c2hvd0RldGFpbHNTZWxlY3QoYSl7YS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxlRmxhZ31nZXREZXRhaWxzKCl7dGhpcy5kZXRhaWxzT3Blbj0hMH1vbkhvdFNlbGVjdGlvbihhKXt0aGlzLmhv'@; put 'dFNlbGVjdGlvbj1hLnNsaWNlKDAsNCl9b25Ib3REZXNlbGVjdCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmhvdFNlbGVjdGlvbj1udWxsfSwxMDApfXJlamVjdGluZygpe3ZhciBhPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2EucmVqZWN0TG9hZGluZz0hMCxhLnN1Ym1pdFJlYXNvbj1h'@; put 'LnN1Ym1pdFJlYXNvbi5yZXBsYWNlKC9cbi9nLCIuICIpO2xldCBkPXtTVFBfQUNUSU9OOiJSRUpFQ1RfVEFCTEUiLFRBQkxFOmEudGFibGVJZCxTVFBfUkVBU09OOmEuc3VibWl0UmVhc29ufTt5aWVsZCBhLnNhc1N0b3JlU2VydmljZS5yZWplY3RpbmcoZCwiQnJvd3NlclBhcmFtcyIsImFw'@; put 'cHJvdmVycy9yZWplY3Rpb24iKS50aGVuKGg9PnthLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9yZXZpZXcvaGlzdG9yeSIpfSkuY2F0Y2goaD0+e2EuYWNjZXB0TG9hZGluZz0hMSxhLnJlamVjdExvYWRpbmc9ITF9KX0pKCl9YXBwcm92ZVRhYmxlKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVu'@; put 'Y3Rpb24qKCl7YS5hY2NlcHRMb2FkaW5nPSEwO2xldCBkPXtBQ1RJT046IkFQUFJPVkVfVEFCTEUiLFRBQkxFOmEudGFibGVJZCxESUZGVElNRTphLnBhcmFtcz8uRElGRlRJTUUsTElCRFM6YS5wYXJhbXM/LkxJQkRTfTt5aWVsZCBhLnNhc1N0b3JlU2VydmljZS5hcHByb3ZlVGFibGUoZCwi'@; put 'U0FTQ29udHJvbFRhYmxlIiwiYXVkaXRvcnMvcG9zdGRhdGEiKS50aGVuKGg9PnthLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9yZXZpZXcvaGlzdG9yeSIpfSkuY2F0Y2goaD0+e2EuYWNjZXB0TG9hZGluZz0hMX0pfSkoKX1nb1RvU3VibWl0TGlzdCgpe3RoaXMucm91dGUubmF2aWdhdGVCeVVy'@; put 'bCgiL3Jldmlldy9zdWJtaXR0ZWQiKX1jYWxsQ2hhbmdlc0luZm8oYSl7dmFyIGQ9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7eWllbGQgZC5zYXNTdG9yZVNlcnZpY2UuZ2V0Q2hhbmdlSW5mbyhhKS50aGVuKGg9PntkLnRhYmxlRGV0YWlscz1oLmpzcGFyYW1zWzBdLGQuanNQYXJhbXM9'@; put 'aC5qc3BhcmFtc1swXTtsZXQgZj1bXTtmb3IoY29uc3QgXyBpbiBkLmpzUGFyYW1zKWQuanNQYXJhbXMuaGFzT3duUHJvcGVydHkoXykmJmYucHVzaChfKTtkLmtleXNBcnJheT1mfSkuY2F0Y2goaD0+e2QuYWNjZXB0TG9hZGluZz0hMX0pLmZpbmFsbHkoKCk9PntkLmxvYWRlZD0hMH0pfSko'@; put 'KX1mb3JtYXR0aW5nQ2hhbmdlZCgpe3RoaXMuY2FsY0RpZmYoKX1jYWxjRGlmZigpe2lmKCF0aGlzLnJlc3BvbnNlKXJldHVybjtsZXQgYT10aGlzLnJlc3BvbnNlLm5ldyxkPXRoaXMucmVzcG9uc2UudXBkYXRlcyxoPXRoaXMucmVzcG9uc2UuZGVsZXRlZCxmPXRoaXMucmVzcG9uc2Uub3Jp'@; put 'Z2luYWxzO3RoaXMuZm9ybWF0dGVkVmFsdWVzJiYoYT10aGlzLnJlc3BvbnNlLmZtdF9uZXcsZD10aGlzLnJlc3BvbnNlLmZtdF91cGRhdGVzLGg9dGhpcy5yZXNwb25zZS5mbXRfZGVsZXRlZCxmPXRoaXMucmVzcG9uc2UuZm10X29yaWdpbmFscyksdGhpcy5vcmlnaW5hbHM9Zix0aGlzLnJv'@; put 'd0tleXM9W107Zm9yKGxldCBTdD0wO1N0PGQubGVuZ3RoO1N0Kyspe2xldCBKdD1PYmplY3Qua2V5cyhkW1N0XSk7Zm9yKGxldCBubj0wO25uPEp0Lmxlbmd0aDtubisrKWRbU3RdW0p0W25uXV0hPT1mW1N0XVtKdFtubl1dJiZ0aGlzLmNoYW5nZXNBcnIucHVzaCh7aW5kOlN0LGZpZWxkOkp0'@; put 'W25uXSxwcm9wOmRbU3RdW0p0W25uXV0sb3JpZ2luYWw6ZltTdF1bSnRbbm5dXX0pfXRoaXMubGVucz17bmV3OnRoaXMucGFyYW1zPy5OVU1fQURERUR8fDAsdXBkYXRlZDp0aGlzLnBhcmFtcz8uTlVNX1VQREFURUR8fDAsZGVsZXRlZDp0aGlzLnBhcmFtcz8uTlVNX0RFTEVURUR8fDB9O2xl'@; put 'dCBpZT1bXSxwZT1kLmNvbmNhdChhLGgpO2ZvcihsZXQgU3Q9MDtTdDx0aGlzLnJlc3BvbnNlLmNvbHMubGVuZ3RoO1N0KyspaWUucHVzaCh0aGlzLnJlc3BvbnNlLmNvbHNbU3RdLk5BTUUpO2xldCB3ZT10aGlzLmxlbnMubmV3PnRoaXMucmVjb3Jkc0xpbWl0P3RoaXMucmVjb3Jkc0xpbWl0'@; put 'OnRoaXMubGVucy5uZXcsRWU9dGhpcy5sZW5zLnVwZGF0ZWQ+dGhpcy5yZWNvcmRzTGltaXQ/dGhpcy5yZWNvcmRzTGltaXQ6dGhpcy5sZW5zLnVwZGF0ZWQ7dGhpcy5kaWZmc0xpbWl0PXRoaXMubGVucy5uZXc+dGhpcy5yZWNvcmRzTGltaXR8fHRoaXMubGVucy51cGRhdGVkPnRoaXMucmVj'@; put 'b3Jkc0xpbWl0fHx0aGlzLmxlbnMuZGVsZXRlZD50aGlzLnJlY29yZHNMaW1pdCx0aGlzLmFkZENvdW50PXdlO2xldCBpdD1bXSxldD1bXTtmb3IobGV0IFN0PTA7U3Q8aWUubGVuZ3RoO1N0KyspZXQucHVzaCh7ZGF0YTppZVtTdF0scmVhZE9ubHk6ITB9KTt0aGlzLmRpZmZUYWJsZS5kYXRh'@; put 'PXBlO2ZvcihsZXQgU3Q9MDtTdDxwZS5sZW5ndGg7U3QrKyl7bGV0IG5uPU9iamVjdC5rZXlzKHBlW1N0XSk7dGhpcy5yb3dLZXlzLnB1c2gobm4pfWxldCB5dD1bXSxFdD1bXTtmb3IobGV0IFN0PTA7U3Q8dGhpcy5kaWZmVGFibGUuZGF0YS5sZW5ndGg7U3QrKyl7aWYoU3Q8RWUmJjAhPT1F'@; put 'ZSl7eXQucHVzaChbXSksRXQucHVzaChbXSksaXQucHVzaCgidXBkYXRlZCIpO2xldCBKdD1PYmplY3Qua2V5cyh0aGlzLmRpZmZUYWJsZS5kYXRhW1N0XSk7Zm9yKGxldCBubj0wO25uPEp0Lmxlbmd0aDtubisrKXtsZXQgdm49SnRbbm5dO2ZbU3RdW3ZuXSE9PWRbU3RdW3ZuXT8oeXRbU3Rd'@; put 'LnB1c2goITApLEV0W1N0XS5wdXNoKGZbU3RdW3ZuXSkpOih5dFtTdF0ucHVzaCghMSksRXRbU3RdLnB1c2gobnVsbCkpfXRoaXMuYXJyQ2hhbmdlZD15dCx0aGlzLmFyck9mQ2hhbmdlcz1FdH1TdD49RWUmJlN0PEVlK3dlJiZpdC5wdXNoKCJhZGRlZCIpLFN0PndlK0VlLTEmJml0LnB1c2go'@; put 'ImRlbGV0ZWQiKX10aGlzLmNoQXJyPWl0LHRoaXMucm93SGVhZGVyPXRoaXMucm93S2V5c1swXSx0aGlzLmRpZmZUYWJsZS5kYXRhPXBlfW5nQWZ0ZXJWaWV3SW5pdCgpe3ZhciBhPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2lmKGEuX2RldGFpbHNTdWI9YS5zYXNTdG9yZVNlcnZpY2Uu'@; put 'c3VibWl0dERldGFpbC5zdWJzY3JpYmUoZnVuY3Rpb24oKXt2YXIgaD1maShmdW5jdGlvbiooZil7YS5zdWJPYmo9Zi52aWV3RGF0YSxhLnRhYmxlSWQ9Zi52aWV3RGF0YS50YWJsZUlkLGEuc3VibWl0dGVkPWYudmlld0RhdGEuc3ViLGEuc3VibWl0RGV0YWlscz1mLmRhdGEsYS5zdWJtaXRB'@; put 'cnI9W107Zm9yKGxldCBUIGluIGEuc3VibWl0RGV0YWlscykic3ViIiE9PVQmJmEuc3VibWl0QXJyLnB1c2goVCk7bGV0IF89e0FDVElPTjoiU0hPV19ESUZGUyIsVEFCTEU6YS50YWJsZUlkLERJRkZUSU1FOihuZXcgRGF0ZSkudG9VVENTdHJpbmcoKX07YS5zYXNTdG9yZVNlcnZpY2Uuc2hv'@; put 'd0RpZmZzKF8sIlNBU0NvbnRyb2xUYWJsZSIsImF1ZGl0b3JzL3Bvc3RkYXRhIikudGhlbihUPT57YS5wYXJhbXM9VC5wYXJhbXNbMF0sYS5yZXNwb25zZT1ULGEuY2FsY0RpZmYoKX0pLmNhdGNoKFQ9PlQpLmZpbmFsbHkoKCk9PnthLmxvYWRpbmdUYWJsZT0hMH0pLGEuY2FsbENoYW5nZXNJ'@; put 'bmZvKGEudGFibGVJZCl9KTtyZXR1cm4gZnVuY3Rpb24oZil7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksdHlwZW9mIGEucm91dGVyLnNuYXBzaG90LnBhcmFtcy50YWJsZUlkPiJ1IilyZXR1cm47YS50YWJsZUlkPWEucm91dGVyLnNuYXBzaG90LnBhcmFtcy50YWJsZUlk'@; put 'O2xldCBkPXtBQ1RJT046IlNIT1dfRElGRlMiLFRBQkxFOmEudGFibGVJZCxESUZGVElNRToobmV3IERhdGUpLnRvVVRDU3RyaW5nKCl9O2Euc2FzU3RvcmVTZXJ2aWNlLnNob3dEaWZmcyhkLCJTQVNDb250cm9sVGFibGUiLCJhdWRpdG9ycy9wb3N0ZGF0YSIpLnRoZW4oaD0+e2EucGFyYW1z'@; put 'PWgucGFyYW1zWzBdLGEucmVzcG9uc2U9aCxhLmNhbGNEaWZmKCl9KS5jYXRjaChoPT57YS5hY2NlcHRMb2FkaW5nPSExfSkuZmluYWxseSgoKT0+e2EubG9hZGluZ1RhYmxlPSEwLGEuc2V0Rm9jdXMoKX0pLGEuY2FsbENoYW5nZXNJbmZvKGEudGFibGVJZCl9KSgpfW5nT25EZXN0cm95KCl7'@; put 'dGhpcy5fZGV0YWlsc1N1YiYmdGhpcy5fZGV0YWlsc1N1Yi51bnN1YnNjcmliZSgpfXNldEZvY3VzKCl7c2V0VGltZW91dCgoKT0+e2xldCBhPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWNjZXB0QnRuIik7YSYmYS5mb2N1cygpfSwyMDApfX1yZXR1cm4gYy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChiZCksdHQodmwpLHR0KEdsKSx0dChEcykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtYXBwcm92ZS1kZXRhaWxzIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo0Mix2YXJz'@; put 'OjEyLGNvbnN0czpbWzMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsInRhYmxlIl0sWzEsImxlZnQiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRv'@; put 'biIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWzQsIm5nSWYiXSxbMSwiZm9ybS1ibG9jayJdLFsxLCJmb3JtLWdyb3VwIl0sWyJmb3IiLCJmb3JtRmllbGRzXzgiXSxbImlkIiwiZm9ybUZpZWxkc184Iiwicm93cyIsIjUiLDEsInctMTAwIiwzLCJuZ01vZGVs'@; put 'IiwibmdNb2RlbE9wdGlvbnMiLCJpbm5lckhUTUwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLDMsImNsckxvYWRpbmciLCJjbGlj'@; put 'ayJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJsZWZ0IGxpbmstaXQiLDMsInJvdXRlckxpbmsiLDQsIm5nSWYiXSxbImNsYXNzIiwibGVmdCIsNCwibmdJZiJdLFsxLCJsZWZ0IiwibGluay1pdCIsMywicm91dGVyTGluayJdLFsiY2xy'@; put 'VGFiTGluayIsIiJdLFs0LCJjbHJJZkFjdGl2ZSJdLFsxLCJvdmVyZmxvdy1hdXRvIl0sWzEsImNhcmQiXSxbImNsYXNzIiwiY2FyZC1oZWFkZXIgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwib3ZlcmZsb3ctYXV0byIsIm1yLTEyIl0s'@; put 'WyJjbGFzcyIsImgtNzB2aCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbImNsYXNzIiwi'@; put 'Y2FyZCIsImNsYXNzIiwibXQtMCIsNCwibmdJZiJdLFsxLCJtdC0wIl0sWzEsImNhcmQtaGVhZGVyIiwicC0wIl0sWzEsImNsci1yb3ciXSxbMSwiY2xyLWNvbC1tZC00IiwiYXBwcm92YWxCYWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwibS0wIiwzLCJjbGljayJdLFsi'@; put 'c2hhcGUiLCJjYXJldCIsImRpciIsImxlZnQiLCJzaXplIiwiMjAiXSxbMSwiY2xyLWNvbC1tZC00IiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJtdC0wIiwiZm9udC13ZWlnaHQtMzAwIl0sWzEsImNsci1jb2wtbWQtNCIsImFwcHJvdmFsSW5mbyJdLFsxLCJ0b29s'@; put 'dGlwIiwidG9vbHRpcC1zbSIsInRvb2x0aXAtdG9wLWxlZnQiLDMsImNsaWNrIl0sWyJzaGFwZSIsImluZm8tc3RhbmRhcmQiLCJzaXplIiwiMjgiXSxbMSwidGV4dC1jZW50ZXIiLCJtdC0xMCJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIl0sWyJjbGFzcyIsImNhcmQtdGV4dCIsNCwibmdJZiJd'@; put 'LFsiY2xhc3MiLCJoLTI0dmggZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzEsInRhYmxlQ29udCIsIm10LTAiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgZm9udC1zaXplLTE4Iiw0LCJuZ0lmIl0sWzEsImQt'@; put 'ZmxleCJdLFsiY2xhc3MiLCJsZWZ0Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwiZC1mbGV4IiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2FyZC10ZXh0Il0sWzEsImNsci1yb3ciLCJmb250LXNpemUtMTUiXSxbMSwiY2xyLWNvbC1tZC01Il0sWzEsImNs'@; put 'ci1jb2wtbWQtNyJdLFsxLCJjYXJkLWJsb2NrIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwibXQtMCJdLFsxLCJjbHItcm93IiwiY2xyLWdhcC01IiwiY2xyLWdhcC1zbS0wIl0sWzEsImJ0biIsImJ0bi1z'@; put 'bSIsImJ0bi1vdXRsaW5lIiwidGV4dC1jZW50ZXIiLCJtdC01IiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwidGV4dC1jZW50ZXIiLCJtdC01IiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tc20iLCJidG4taW5mby1vdXRsaW5lIiwidGV4dC1j'@; put 'ZW50ZXIiLCJtdC01IiwzLCJjbGljayJdLFsxLCJjYXJkLWJsb2NrIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImNsci1mbGV4LWNvbHVtbiIsImNsci1nYXAtNSIsImNsci1mbGV4LXNtLXJvdyIsImNsci1nYXAtc20tMCIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiXSxb'@; put 'ImlkIiwiYWNjZXB0QnRuIiwidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLDMsImNsckxvYWRpbmciLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJpZCIsInJlamVjdEJ0biIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuIiwiYnRuLWRhbmdlciIsIm1yLTAiLDMsImRp'@; put 'c2FibGVkIiwiY2xpY2siXSxbMSwibS0wIiwibWwtMjBpIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJUb2dnbGUiLCIiLCJjaGVja2VkIiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImNoYW5nZSJdLFsxLCJmb3JtYXR0ZWQtdmFsdWVzLXRvZ2dsZSJdLFsxLCJjYXJkLWJsb2Nr'@; put 'IiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsImNsci1mbGV4LWNvbHVtbiJdLFsiY2xhc3MiLCJyb3dzLW5vdGljZSIsNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJjbHItZmxleC1jb2x1bW4iLCJjbHItZ2FwLTUiLCJjbHItZmxleC1zbS1yb3ciLCJjbHItZ2FwLXNtLTAiXSxb'@; put 'MSwibGFiZWwiLCJsYWJlbC13YXJuaW5nIl0sWzEsImJhZGdlIiwiYmFkZ2Utd2FybmluZyJdLFsxLCJsYWJlbCIsImxhYmVsLXN1Y2Nlc3MiXSxbMSwiYmFkZ2UiLCJiYWRnZS1zdWNjZXNzIl0sWzEsImxhYmVsIiwibGFiZWwtZGFuZ2VyIl0sWzEsImJhZGdlIiwiYmFkZ2UtZGFuZ2VyIl0s'@; put 'WzEsInRleHQtY2VudGVyIiwiZm9udC1zaXplLTE4Il0sWzEsIm10LTE1Il0sWzEsImxpbmstaXQiLDMsInJvdXRlckxpbmsiXSxbMSwibXQtMTAiXSxbMSwicm93cy1ub3RpY2UiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLDEsIm1iLTUiLCJjb2xvci1vcmFuZ2UiXSxbMSwi'@; put 'aC0yNHZoIiwiZC1mbGV4IiwiZmxleC1jb2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsInNwaW5uZXIiXSxbMSwiZC1mbGV4IiwzLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImxlZnQiLDMsIm5nQ2xhc3MiLDQsIm5nRm9yIiwibmdGb3JPZiJd'@; put 'LFsxLCJsZWZ0IiwzLCJuZ0NsYXNzIl0sWyJjbGFzcyIsInRvb2x0aXAtY29udGVudCIsNCwibmdJZiJdLFsxLCJ0b29sdGlwLWNvbnRlbnQiXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0s'@; put 'WyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2FyZC1ibG9jayIsNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIsImp1c3RpZnktY29udGVu'@; put 'dC1jZW50ZXIiXSxbImNsYXNzIiwiY2FyZCBtLTAiLDQsIm5nSWYiXSxbMSwiY2FyZCIsIm0tMCJdLFsxLCJjYXJkLWhlYWRlciJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbMSwiY2xyLWNvbC1tZC00Il0sWzEsIm10LTAiLCJmb250LXdlaWdodC0zMDAi'@; put 'LCJ0ZXh0LWNlbnRlciJdLFsxLCJtLTAiLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWRhcmtlci1ncmF5Il0sWzEsIm0tMCIsIm1sLTIwLWkiXSxbMSwiY2FyZC1ibG9jayIsInAtMCIsIm92ZXJmbG93LWF1dG8iLCJtci0xMiJdLFsiY2xhc3MiLCJoLTI1dmggZC1mbGV4IGZsZXgtY29sdW1uIGp1'@; put 'c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzEsInRhYmxlQ29udCJdLFsxLCJoLTI1dmgiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbMSwiY2FyZC1ibG9jayJd'@; put 'LFsxLCJsb2FkZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJjbHItbW9kYWwiLDApLHh0KCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmRldGFpbHNPcGVuPWZ9KSxtZSgxLCJoMyIsMSksTmUoMiwiQXBwcm92YWwgRGV0YWlscyIpLHll'@; put 'KCksbWUoMywiZGl2IiwyKSg0LCJ0YWJsZSIsMykoNSwidGhlYWQiKSg2LCJ0ciIpKDcsInRoIiw0KSxOZSg4LCJOYW1lIikseWUoKSxtZSg5LCJ0aCIsNCksTmUoMTAsIlZhbHVlIikseWUoKSgpKCksbWUoMTEsInRib2R5IiksSmUoMTIsY1dlLDUsMywidHIiLDUpLHllKCkoKSgpLG1lKDEz'@; put 'LCJkaXYiLDYpKDE0LCJidXR0b24iLDcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5kZXRhaWxzT3Blbj0hMX0pLE5lKDE1LCIgT2sgIikseWUoKSgpKCksbWUoMTYsImNsci1tb2RhbCIsMCkseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQudGFi'@; put 'bGVGbGFnPWZ9KSxtZSgxNywiaDMiLDEpLE5lKDE4LCJBbGwgRGV0YWlscyIpLHllKCksbWUoMTksImRpdiIsMiksSmUoMjAsZldlLDE5LDIsImNsci10YWJzIiw4KSx5ZSgpLG1lKDIxLCJkaXYiLDYpKDIyLCJidXR0b24iLDcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC50YWJs'@; put 'ZUZsYWc9ITF9KSxOZSgyMywiIE9rICIpLHllKCkoKSgpLG1lKDI0LCJjbHItbW9kYWwiLDApLHh0KCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLnJlamVjdE9wZW49Zn0pLG1lKDI1LCJoMyIsMSksTmUoMjYsIlJlYXNvbiBNZXNzYWdlIikseWUoKSxtZSgyNywi'@; put 'ZGl2IiwyKSgyOCwiZm9ybSIpKDI5LCJzZWN0aW9uIiw5KSgzMCwiZGl2IiwxMCkoMzEsImxhYmVsIiwxMSksTmUoMzIsIlJlYXNvbiBmb3IgcmVqZWN0aW5nPyIpLHllKCksbWUoMzMsInRleHRhcmVhIiwxMikseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLnN1Ym1p'@; put 'dFJlYXNvbj1mfSkseWUoKSgpKCkoKSgpLG1lKDM0LCJkaXYiLDYpKDM1LCJidXR0b24iLDEzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucmVqZWN0T3Blbj0hMX0pLE5lKDM2LCIgQ2FuY2VsICIpLHllKCksbWUoMzcsImJ1dHRvbiIsMTQpLHh0KCJjbGljayIsZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gZC5yZWplY3RpbmcoKX0pLE5lKDM4LCIgT0sgIikseWUoKSgpKCksbWUoMzksImRpdiIsMTUpLEplKDQwLFJXZSw0LDIsImRpdiIsMTYpLEplKDQxLHFXZSwzLDIsImRpdiIsOCkseWUoKSksMiZhJiYoUmUoImNsck1vZGFsT3BlbiIsZC5kZXRhaWxzT3BlbiksQ2UoMTIpLFJl'@; put 'KCJuZ0Zvck9mIixkLmtleXNBcnJheSksQ2UoNCksUmUoImNsck1vZGFsT3BlbiIsZC50YWJsZUZsYWcpLENlKDQpLFJlKCJuZ0lmIixkLnRhYmxlRmxhZyksQ2UoNCksUmUoImNsck1vZGFsT3BlbiIsZC5yZWplY3RPcGVuKSxDZSg5KSxSZSgibmdNb2RlbCIsZC5zdWJtaXRSZWFzb24pKCJu'@; put 'Z01vZGVsT3B0aW9ucyIsJHMoMTEsS1dlKSkoImlubmVySFRNTCIsZC5zdWJtaXRSZWFzb24scTIpLENlKDQpLFJlKCJjbHJMb2FkaW5nIixkLnJlamVjdExvYWRpbmcpLENlKDMpLFJlKCJuZ0lmIiwhZC5zdWJtaXR0ZWQpLENlKDEpLFJlKCJuZ0lmIixkLnN1Ym1pdHRlZCkpfSxkZXBlbmRl'@; put 'bmNpZXM6W2RjLHhzLFppLENwLFdhLFMwLEJzLHdwLE9zLHIyLEJ1LGthLG91LHN1LFp1LEU4LGRoLFVzLEQwLEQ4LFQwLExwLE9wLGRnLFJwLElwLGNnXSxzdHlsZXM6WycubG9hZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWln'@; put 'aHQ6NzV2aDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5tb2RhbExhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo1MHJlbSFpbXBvcnRhbnR9LmFkZGVkUm93W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYigxNDYsMjA4LDE1NCk7Ym9yZGVy'@; put 'OjFweCBzb2xpZCByZ2JhKDksNzcsMTE3LC4yKTtib3JkZXItcmFkaXVzOjVweH0uZGVsZXRlZFJvd1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2IoMjMwLDE3OSwxNzkpO2JvcmRlcjoxcHggc29saWQgcmdiYSg3MCw3MSw3MCwuMik7Ym9yZGVyLXJhZGl1czo1cHh9LnVwZGF0'@; put 'ZWRSb3dbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6I2ZhZmRhODtib3JkZXI6MXB4IHNvbGlkIHJnYmEoOSwxMTcsOSwuMik7Ym9yZGVyLXJhZGl1czo1cHh9LmNoW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEpO2JvcmRlcjoxcHggc29saWQgcmdi'@; put 'YSgxMDQsMTAwLDAsLjQpO2JvcmRlci1yYWRpdXM6NXB4fS5jaFtfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1MiwxMzUsMTIwLC40KX0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLXJpZ2h0W19uZ2Nv'@; put 'bnRlbnQtJUNPTVAlXSwgLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVd'@; put 'e2ZvbnQtc2l6ZTouNTQxNjdyZW07Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kOiMzMTQzNTE7Ym9yZGVyLXJhZGl1czouMTI1cmVtO2NvbG9yOiNmMGYxZWM7bGluZS1oZWlnaHQ6Ljc1cmVtO21hcmdpbjowO3BhZGRpbmc6LjM3NXJlbSAuNXJlbTt3'@; put 'aWR0aDoyMzVweDtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDphdXRvIGF1dG8gMTAwJSAxMnB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDttYXJnaW4tYm90dG9tOi42NjY2N3JlbX0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9w'@; put 'LXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmUsIC50b29sdGlwLnRvb2x0aXAtdG9wLXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAt'@; put 'Y29udGVudFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotLjM3NXJlbTtsZWZ0OjA7dG9wOmF1dG87cmlnaHQ6YXV0bztjb250ZW50OiIiO2JvcmRlci1sZWZ0Oi4yNXJlbSBzb2xpZCAjMzE0MzUxO2JvcmRlci10b3A6LjIwODMzcmVtIHNvbGlk'@; put 'ICMzMTQzNTE7Ym9yZGVyLXJpZ2h0Oi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yMDgzM3JlbSBzb2xpZCB0cmFuc3BhcmVudH0udGFibGVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowcHggc29saWR9LnRvZ2dsZS1zd2l0Y2hbX25nY29udGVudC0lQ09NUCVd'@; put 'ICAgaW5wdXRbdHlwZT1jaGVja2JveF1bX25nY29udGVudC0lQ09NUCVdOmNoZWNrZWQgKyBsYWJlbFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjouMTVzIGVhc2UtaW47'@; put 'dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0udGFibGVDb250W19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzphdXRvO21hcmdpbjoxNXB4IDEwcHggMTBweH0udGFibGVDb250W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRkW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXXt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LmFwcHJvdmFsSW5mb1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uYXBwcm92YWxCYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgt'@; put 'c3RhcnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5hcHByb3ZhbEluZm9bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTVweH0uYXBwcm92YWxCYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNw'@; put 'bGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOjE1cHh9LmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MHJlbSFpbXBvcnRhbnQ7bWluLWhlaWdodDpjYWxjKDEwMHZoICsgLTBweCkhaW1wb3J0YW50fS50YWJsZVtfbmdjb250ZW50LSVDT01Q'@; put 'JV0gICB0ZC5sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoLmxlZnRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246bGVmdDt3aWR0aDoxNTBweCFpbXBvcnRhbnQ7ZmxleDowfX0udGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGQu'@; put 'bGVmdFtfbmdjb250ZW50LSVDT01QJV0sIC50YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0aC5sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmxlZnQ7ZmxleDoxO3dpZHRoOjMwMHB4IWltcG9ydGFudH0udG9vbGxbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29s'@; put 'dXRlO2JhY2tncm91bmQ6I2U2YjNiMztjb2xvcjojMzE0MzUxO3RvcDowO2hlaWdodDozNnB4O3dpZHRoOjEwMCU7bGVmdDowO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0jYWNjZXB0QnRuW19uZ2NvbnRlbnQtJUNPTVAlXSwgI3JlamVj'@; put 'dEJ0bltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTc1cHh9LmZvcm1hdHRlZC12YWx1ZXMtdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4td2lkdGg6NzVweH1jbHItbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWwtYm9keS13cmFwcGVye292ZXJmbG93OmF1dG99LnJv'@; put 'd3Mtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1yaWdodDoxMHB4O2NvbG9yOiM2YTZhNmE7Zm9udC1zaXplOjE1cHh9LnJvd3Mtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1pY29uW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXXttYXJnaW46MH0nXX0pLGN9KSgpO2Z1bmN0aW9uIFhXZShjLGwpezEmYyYmKG1lKDAsImRpdiIsOSkoMSwiZGl2IiwxMCkscXQoMiwiY2xyLWljb24iLDExKSxtZSgzLCJoMyIsMTIpLE5lKDQsIlRoZXJlIGFyZSBubyBhcHByb3ZhbHMgcmVtYWluaW5nIikseWUoKSgpKCkpfWZ1bmN0'@; put 'aW9uIEpXZShjLGwpezEmYyYmKG1lKDAsImgzIiwxMyksTmUoMSwiIFJFVklFVyAiKSx5ZSgpKX1mdW5jdGlvbiBRV2UoYyxsKXtpZigxJmMmJihtZSgwLCJwIiwxNCksTmUoMSwiIFlvdSBoYXZlICIpLG1lKDIsInNwYW4iKSxOZSgzKSx5ZSgpLE5lKDQsImFwcHJvdmFscyByZW1haW5pbmcg'@; put 'IikseWUoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMyksZ3IoIiIsYS5yZW1haW5lZCwiICIpfX1mdW5jdGlvbiBlR2UoYyxsKXsxJmMmJihtZSgwLCJzcGFuIiwxNyksTmUoMSwiIExvYWRpbmcuLi4gIikseWUoKSl9ZnVuY3Rpb24gdEdlKGMsbCl7MSZjJiYobWUoMCwiZGl2IikoMSwiaDMi'@; put 'KSxOZSgyLCJMb2FkaW5nIGFwcHJvdmFscyBsaXN0IikseWUoKSgpKX1mdW5jdGlvbiBuR2UoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDE1KSxKZSgxLGVHZSwyLDAsInNwYW4iLDE2KSxKZSgyLHRHZSwzLDAsImRpdiIsOCkseWUoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksUmUoIm5n'@; put 'SWYiLCFhLmxvYWRlZCksQ2UoMSksUmUoIm5nSWYiLCFhLmxvYWRlZCl9fWZ1bmN0aW9uIHJHZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDM4KX1mdW5jdGlvbiBpR2UoYyxsKXsxJmMmJnF0KDAsImNsci1zcGlubmVyIiwzOSksMiZjJiZSZSgiY2xyU21hbGwiLCEwKX1mdW5jdGlvbiBv'@; put 'R2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItZGctcm93IikoMSwiY2xyLWRnLWNlbGwiKSxOZSgyKSx5ZSgpLG1lKDMsImNsci1kZy1jZWxsIiksTmUoNCkseWUoKSxtZSg1LCJjbHItZGctY2VsbCIpLE5lKDYpLHllKCksbWUoNywiY2xyLWRnLWNlbGwiKSxOZSg4KSx5'@; put 'ZSgpLG1lKDksImNsci1kZy1jZWxsIikoMTAsImRpdiIsMjYpKDExLCJhIiwyNykseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuaW5kZXg7cmV0dXJuIGp0KFZlKDIpLmdldENsaWNrZWQoZikpfSkscXQoMTIsImNsci1pY29uIiwyOCksbWUoMTMsInNwYW4iLDI5KSxOZSgx'@; put 'NCwiR28gdG8gcmV2aWV3IHBhZ2Ugc2NyZWVuIikseWUoKSgpLG1lKDE1LCJhIiwzMCkseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9QnQoYSksZj1oLiRpbXBsaWNpdCxfPWguaW5kZXgsVD1WZSgyKTtyZXR1cm4ganQoZi5yZWplY3RMb2FkaW5nPyIiOlQucmVqZWN0aW5nKF8pKX0p'@; put 'LEplKDE2LHJHZSwxLDAsImNsci1pY29uIiwzMSksSmUoMTcsaUdlLDEsMSwiY2xyLXNwaW5uZXIiLDMyKSxtZSgxOCwic3BhbiIsMjkpLE5lKDE5LCJSZWplY3QiKSx5ZSgpKCksbWUoMjAsImEiLDMzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgZj1CdChhKS4kaW1wbGljaXQ7cmV0'@; put 'dXJuIGp0KFZlKDIpLmdldFRhYmxlKGYudGFibGVJZCkpfSkscXQoMjEsImNsci1pY29uIiwzNCksbWUoMjIsInNwYW4iLDI5KSxOZSgyMywiR28gdG8gc3RhZ2VkIGRhdGEgc2NyZWVuIikseWUoKSgpKCkoKSxtZSgyNCwiY2xyLWRnLWNlbGwiLDM1KSgyNSwiYnV0dG9uIiwzNikseHQoImNs'@; put 'aWNrIixmdW5jdGlvbihoKXtjb25zdCBfPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4gVmUoMikuZG93bmxvYWQoXy50YWJsZUlkKSxqdChoLnN0b3BQcm9wYWdhdGlvbigpKX0pLHF0KDI2LCJjbHItaWNvbiIsMzcpLHllKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgyKSxv'@; put 'cihhLnN1Ym1pdHRlciksQ2UoMiksb3IoYS5iYXNlVGFibGUpLENlKDIpLG9yKGEuc3VibWl0dGVkKSxDZSgyKSxvcihhLnN1Ym1pdFJlYXNvbiksQ2UoOCksUmUoIm5nSWYiLCFhLnJlamVjdExvYWRpbmcpLENlKDEpLFJlKCJuZ0lmIixhLnJlamVjdExvYWRpbmcpLENlKDgpLFJlKCJpZCIs'@; put 'YS50YWJsZUlkKX19ZnVuY3Rpb24gc0dlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IikoMSwiY2xyLWRhdGFncmlkIiwxOCkoMiwiY2xyLWRnLWNvbHVtbiIsMTkpLE5lKDMsIlNVQk1JVFRFUiIpLHllKCksbWUoNCwiY2xyLWRnLWNvbHVtbiIsMTkpLE5lKDUsIkJBU0Ug'@; put 'VEFCTEUiKSx5ZSgpLG1lKDYsImNsci1kZy1jb2x1bW4iLDE5KSxOZSg3LCJTVUJNSVRURUQiKSx5ZSgpLG1lKDgsImNsci1kZy1jb2x1bW4iLDE5KSxOZSg5LCJTVUJNSVQgUkVBU09OIikseWUoKSxtZSgxMCwiY2xyLWRnLWNvbHVtbiIpLE5lKDExLCJBQ1RJT04iKSx5ZSgpLG1lKDEyLCJj'@; put 'bHItZGctY29sdW1uIiksTmUoMTMsIkRPV05MT0FEIikseWUoKSxKZSgxNCxvR2UsMjcsNywiY2xyLWRnLXJvdyIsMjApLG1lKDE1LCJjbHItZGctZm9vdGVyIiwyMSkoMTYsInNwYW4iKSxOZSgxNywiaXRlbXMgcGVyIHBhZ2UiKSx5ZSgpLG1lKDE4LCJzZWxlY3QiLDIyKSx4dCgibmdNb2Rl'@; put 'bENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuaXRlbXNOdW09aCl9KSxtZSgxOSwib3B0aW9uIiwyMyksTmUoMjAsIjMiKSx5ZSgpLG1lKDIxLCJvcHRpb24iLDIzKSxOZSgyMiwiNSIpLHllKCksbWUoMjMsIm9wdGlvbiIsMjMpLE5lKDI0LCIxMCIpLHllKCksbWUo'@; put 'MjUsIm9wdGlvbiIsMjMpLE5lKDI2LCIxNSIpLHllKCkoKSxtZSgyNywiY2xyLWRnLXBhZ2luYXRpb24iLDI0LDI1KSxOZSgyOSkseWUoKSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMjgpLGQ9VmUoKTtDZSgyKSxSZSgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlciIpLENlKDIpLFJlKCJjbHJE'@; put 'Z0ZpZWxkIiwiYmFzZVRhYmxlIiksQ2UoMiksUmUoImNsckRnRmllbGQiLCJzdWJtaXR0ZWQiKSxDZSgyKSxSZSgiY2xyRGdGaWVsZCIsInN1Ym1pdFJlYXNvbiIpLENlKDYpLFJlKCJjbHJEZ0l0ZW1zT2YiLGQuYXBwcm92ZUxpc3QpLENlKDQpLFJlKCJuZ01vZGVsIixkLml0ZW1zTnVtKSxD'@; put 'ZSgxKSxSZSgibmdWYWx1ZSIsMyksQ2UoMiksUmUoIm5nVmFsdWUiLDUpLENlKDIpLFJlKCJuZ1ZhbHVlIiwxMCksQ2UoMiksUmUoIm5nVmFsdWUiLDE1KSxDZSgyKSxSZSgiY2xyRGdQYWdlU2l6ZSIsZC5pdGVtc051bSksQ2UoMiksYjAoIiAiLGEuZmlyc3RJdGVtKzEsIiAtICIsYS5sYXN0'@; put 'SXRlbSsxLCIgb2YgIixhLnRvdGFsSXRlbXMsIiBhcHByb3ZhbHMgIil9fWNvbnN0IGFHZT1mdW5jdGlvbihjKXtyZXR1cm57bm9Cb3JkZXI6Y319O2xldCBsR2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWEsdGhpcy5ldmVudFNl'@; put 'cnZpY2U9ZCx0aGlzLnJvdXRlPWgsdGhpcy5zYXNTZXJ2aWNlPWYsdGhpcy5jZHI9Xyx0aGlzLmxvYWRlZD0hMSx0aGlzLml0ZW1zTnVtPTEwfWdldFRhYmxlKGEpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIrYSl9Z2V0Q2xpY2tlZChhKXt2b2lkIDAhPT10aGlzLmFwcHJv'@; put 'dmVMaXN0JiYodGhpcy50YWJsZUlkPXRoaXMuYXBwcm92ZUxpc3RbYV0udGFibGVJZCx0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoInJldmlldy9hcHByb3ZlRGV0LyIrdGhpcy5hcHByb3ZlTGlzdFthXS50YWJsZUlkKSl9cmVqZWN0aW5nKGEpe3ZhciBkPXRoaXM7cmV0dXJuIGZpKGZ1bmN0'@; put 'aW9uKigpe3ZvaWQgMCE9PWQuYXBwcm92ZUxpc3QmJihkLnRhYmxlSWQ9ZC5hcHByb3ZlTGlzdFthXS50YWJsZUlkKTtsZXQgaD17U1RQX0FDVElPTjoiUkVKRUNUX1RBQkxFIixUQUJMRTpkLnRhYmxlSWQsU1RQX1JFQVNPTjoicXVpY2sgcmVqZWN0aW9uIn07dHJ5eyhkLmFwcHJvdmVMaXN0'@; put 'fHxbXSlbYV0ucmVqZWN0TG9hZGluZz0hMCwoeWllbGQgZC5zYXNTdG9yZVNlcnZpY2UucmVqZWN0aW5nKGgsIkJyb3dzZXJQYXJhbXMiLCJhcHByb3ZlcnMvcmVqZWN0aW9uIikpLmZyb21zYXNbMF0uUkVTUE9OU0UuaW5jbHVkZXMoIlNVQ0NFU1MiKSYmKChkLmFwcHJvdmVMaXN0fHxbXSlb'@; put 'YV0ucmVqZWN0TG9hZGluZz0hMSxkLmFwcHJvdmVMaXN0Py5zcGxpY2UoYSwxKSxkLnJlbWFpbmVkLS0sZC5jZHIuZGV0ZWN0Q2hhbmdlcygpKX1jYXRjaChmKXtkLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoImFwcHJvdmVycy9yZWplY3Rpb24iLGYpfX0pKCl9bmdPbkluaXQo'@; put 'KXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXthLmZldGNoQXBwcm92YWxzKCl9KSgpfWZldGNoQXBwcm92YWxzKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7YS5pdGVtc051bT0xMDtsZXQgZD17U1RQX0FDVElPTjoiT1BFTl9BUFBST1ZBTFMifTt0cnl7bGV0'@; put 'IGg9eWllbGQgYS5zYXNTdG9yZVNlcnZpY2UuZ2V0QXBwcm92YWxzKGQsIkJyb3dzZXJQYXJhbXMiLCJhcHByb3ZlcnMvZ2V0YXBwcm92YWxzIik7YS5yZW1haW5lZD1oLmZyb21zYXMubGVuZ3RoO2xldCBmPWguZnJvbXNhcy5tYXAoZnVuY3Rpb24oXyl7cmV0dXJue3RhYmxlSWQ6Xy5UQUJM'@; put 'RV9JRCxzdWJtaXR0ZXI6Xy5TVUJNSVRURURfQllfTk0sc3VibWl0dGVkOl8uU1VCTUlUVEVEX09OX0RUVE0sYmFzZVRhYmxlOl8uQkFTRV9UQUJMRSxzdWJtaXRSZWFzb246Xy5TVUJNSVRURURfUkVBU09OX1RYVH19KTthLmFwcHJvdmVMaXN0PWYsYS5sb2FkZWQ9ITB9Y2F0Y2goaCl7YS5l'@; put 'dmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhcHByb3ZlcnMvZ2V0YXBwcm92YWxzIixoKX19KSgpfWRvd25sb2FkKGEpe2xldCBkPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLGg9ZC5zZXJ2ZXJVcmwsZj1kLmFwcExvYyxfPXRoaXMuc2FzU2VydmljZS5nZXRFeGVj'@; put 'dXRpb25QYXRoKCk7d2luZG93Lm9wZW4oaCtfKyIvP19wcm9ncmFtPSIrZisiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2EpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChiZCksdHQodmwpLHR0KERzKSx0dChvYSks'@; put 'dHQoVWEpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWFwcHJvdmUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjksdmFyczo4LGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIl0sWyJjbGFzcyIsImQtZmxleCBq'@; put 'dXN0aWZ5LWNvbnRlbnQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNhcmQtaGVhZGVyIiwzLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImNlbnRlciBjbHItY29sLW1kLTEyIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInRleHQtY2VudGVyIGZvbnQtd2VpZ2h0LTcwMCBjb2xvci1kYXJr'@; put 'LWdyYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwiYXBwcm92YWxzLWxpc3Qtd3JhcHBlciIsNCwibmdJZiJdLFsibmctaWYiLCJsb2FkZWQiLDEsImNsci1jb2wtbWQtMTIiXSxbNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsImNhcmQtYmxvY2siLCJu'@; put 'b2FwcHJvdmFscy1pbmZvLXdyYXBwZXIiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdyYXkiXSxbMSwiY2VudGVyIiwiY2xyLWNvbC1tZC0xMiIsInRleHQtY2VudGVy'@; put 'Il0sWzEsInRleHQtY2VudGVyIiwiZm9udC13ZWlnaHQtNzAwIiwiY29sb3ItZGFyay1ncmF5Il0sWzEsImFwcHJvdmFscy1saXN0LXdyYXBwZXIiXSxbImNsYXNzIiwic3Bpbm5lciIsNCwibmdJZiJdLFsxLCJzcGlubmVyIl0sWzEsImRhdGFncmlkLWNvbXBhY3QiLCJkYXRhZ3JpZC1jdXN0'@; put 'b20tZm9vdGVyIl0sWzMsImNsckRnRmllbGQiXSxbNCwiY2xyRGdJdGVtcyIsImNsckRnSXRlbXNPZiJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtc3RhcnQiXSxbMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywibmdWYWx1ZSJdLFsxLCJjZW50ZXIiLDMsImNsckRnUGFn'@; put 'ZVNpemUiXSxbInBhZ2luYXRpb24iLCIiXSxbInJvbGUiLCJ0b29sdGlwIiwxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kIl0sWzEsImNvbHVtbi1jZW50ZXIiLCJsaW5rcyIsInRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsImNvbG9yLWdyZWVu'@; put 'IiwzLCJjbGljayJdLFsic2hhcGUiLCJjaGVjayIsInNpemUiLCIyNCJdLFsxLCJ0b29sdGlwLWNvbnRlbnQiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJvdHRvbS1sZWZ0IiwiY29sb3ItcmVkIiwzLCJjbGljayJdLFsic2hh'@; put 'cGUiLCJiYW4iLCJzaXplIiwiMjIiLDQsIm5nSWYiXSxbMywiY2xyU21hbGwiLDQsIm5nSWYiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJvdHRvbS1sZWZ0IiwiY29sb3ItYmx1ZSIsMywiY2xpY2siXSxbInNoYXBlIiwiY29k'@; put 'ZSIsInNpemUiLCIyOCJdLFsxLCJwLTAiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsImJ0biIsImJ0bi1zdWNjZXNzIiwzLCJpZCIsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWyJzaGFwZSIsImJhbiIsInNpemUiLCIyMiJdLFszLCJjbHJTbWFsbCJdXSx0'@; put 'ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImRpdiIsMCkoMSwiZGl2IiwxKSxKZSgyLFhXZSw1LDAsImRpdiIsMiksbWUoMywiZGl2IiwzKSxKZSg0LEpXZSwyLDAsImgzIiw0KSxKZSg1LFFXZSw1LDEsInAiLDUpLHllKCksSmUoNixuR2UsMywyLCJkaXYiLDYpLG1lKDcsImRp'@; put 'diIsNyksSmUoOCxzR2UsMzAsMTQsImRpdiIsOCkseWUoKSgpKCkpLDImYSYmKENlKDIpLFJlKCJuZ0lmIiwwPT09ZC5yZW1haW5lZCksQ2UoMSksUmUoIm5nQ2xhc3MiLEoyKDYsYUdlLCFkLmxvYWRlZCkpLENlKDEpLFJlKCJuZ0lmIixkLmxvYWRlZCYmMCE9PWQucmVtYWluZWQpLENlKDEp'@; put 'LFJlKCJuZ0lmIixkLmxvYWRlZCYmMCE9PWQucmVtYWluZWQpLENlKDEpLFJlKCJuZ0lmIiwhZC5sb2FkZWQpLENlKDIpLFJlKCJuZ0lmIixkLmFwcHJvdmVMaXN0JiYwIT09ZC5yZW1haW5lZCkpfSxkZXBlbmRlbmNpZXM6W2RjLFppLGwxLGMxLE0wLEJzLE9zLFc4LFRwLHRnLFBFLFU4LEZF'@; put 'LG5nLHJnLGlnLCQ4LG9nLEI4LGtwLHo4LGthLHUyXSxzdHlsZXM6WyIuY29sdW1uLWNlbnRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uZGF0YWdyaWRbX25n'@; put 'Y29udGVudC0lQ09NUCVdICAgLmRhdGFncmlkLWNvbHVtbltfbmdjb250ZW50LSVDT01QJV0gICAuZGF0YWdyaWQtY29sdW1uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdXRsaW5lOm5vbmUhaW1wb3J0YW50fS5saW5rc1tfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NzAwO2N1'@; put 'cnNvcjpwb2ludGVyfS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVm'@; put 'dFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojMzE0MzUxIWltcG9ydGFudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZSwgLnRvb2x0aXBbX25nY29udGVudC0l'@; put 'Q09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi4yNXJlbSBzb2xpZCAjMzE0MzUxO2JvcmRlci1ib3R0b206LjIwODMzcmVtIHNvbGlkICMzMTQzNTF9Lm5vQm9yZGVyW19uZ2NvbnRlbnQt'@; put 'JUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudCFpbXBvcnRhbnR9LmFwcHJvdmFscy1saXN0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo3MHZoO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVt'@; put 'bjthbGlnbi1pdGVtczpjZW50ZXJ9Lm5vYXBwcm92YWxzLWluZm8td3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6Y2FsYygxMDB2aCAtIDIw'@; put 'MHB4KX0iXX0pLGN9KSgpO2Z1bmN0aW9uIGNHZShjLGwpezEmYyYmKG1lKDAsImRpdiIsMTIpKDEsImRpdiIsMTMpLHF0KDIsImNsci1pY29uIiwxNCksbWUoMywiaDMiLDE1KSxOZSg0LCIgWW91IGhhdmUgbm90IHN1Ym1pdHRlZCBhbnkgdGFibGVzICIpLHllKCkoKSgpKX1mdW5jdGlvbiB1'@; put 'R2UoYyxsKXsxJmMmJihtZSgwLCJoMyIsMTYpLE5lKDEsIiBTVUJNSVQgUVVFVUUgIikseWUoKSl9ZnVuY3Rpb24gZEdlKGMsbCl7aWYoMSZjJiYobWUoMCwicCIsMTcpLE5lKDEsIiBZb3UgaGF2ZSAiKSxtZSgyLCJzcGFuIiksTmUoMykseWUoKSxOZSg0LCJzdWJtaXNzaW9ucyB3YWl0aW5n'@; put 'IHRvIGJlIGFwcHJvdmVkICIpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgzKSxncigiIixhLnJlbWFpbmVkLCIgIil9fWZ1bmN0aW9uIGhHZShjLGwpezEmYyYmKG1lKDAsInNwYW4iLDIwKSxOZSgxLCIgTG9hZGluZy4uLiAiKSx5ZSgpKX1mdW5jdGlvbiBmR2UoYyxsKXsxJmMmJiht'@; put 'ZSgwLCJkaXYiKSgxLCJoMyIpLE5lKDIsIkxvYWRpbmcgc3VibWl0dGVkIGxpc3QiKSx5ZSgpKCkpfWZ1bmN0aW9uIHBHZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMTgpLEplKDEsaEdlLDIsMCwic3BhbiIsMTkpLEplKDIsZkdlLDMsMCwiZGl2IiwyKSx5ZSgpKSwyJmMpe2NvbnN0IGE9'@; put 'VmUoMyk7Q2UoMSksUmUoIm5nSWYiLCFhLmxvYWRlZCksQ2UoMSksUmUoIm5nSWYiLCFhLmxvYWRlZCl9fWZ1bmN0aW9uIGdHZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1kZy1yb3ciLDMwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgZj1CdChhKS4kaW1wbGlj'@; put 'aXQ7cmV0dXJuIGp0KFZlKDUpLmdvVG9EZXRhaWxzKGYudGFibGVJZCkpfSksbWUoMSwiY2xyLWRnLWNlbGwiKSxOZSgyKSx5ZSgpLG1lKDMsImNsci1kZy1jZWxsIiksTmUoNCkseWUoKSxtZSg1LCJjbHItZGctY2VsbCIpLE5lKDYpLHllKCksbWUoNywiY2xyLWRnLWNlbGwiKSg4LCJkaXYi'@; put 'LDMxKSg5LCJhIiwzMikseHQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGY9QnQoYSkuJGltcGxpY2l0O3JldHVybiBqdChWZSg1KS5nb1RvU3RhZ2UoZi50YWJsZUlkKSl9KSxxdCgxMCwiY2xyLWljb24iLDMzKSxtZSgxMSwic3BhbiIsMzQpLE5lKDEyLCJHbyB0byBzdGFnZWQgZGF0YSBz'@; put 'Y3JlZW4iKSx5ZSgpKCkoKSgpLG1lKDEzLCJjbHItZGctY2VsbCIsMzUpKDE0LCJidXR0b24iLDM2KSx4dCgiY2xpY2siLGZ1bmN0aW9uKGgpe2NvbnN0IF89QnQoYSkuJGltcGxpY2l0O3JldHVybiBWZSg1KS5kb3dubG9hZChfLnRhYmxlSWQpLGp0KGguc3RvcFByb3BhZ2F0aW9uKCkpfSks'@; put 'cXQoMTUsImNsci1pY29uIiwzNykseWUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDIpLG9yKGEuYmFzZSksQ2UoMiksb3IoYS5zdWJtaXR0ZWQpLENlKDIpLG9yKGEuc3VibWl0UmVhc29uKX19ZnVuY3Rpb24gbUdlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUo'@; put 'MCwiZGl2IikoMSwiY2xyLWRhdGFncmlkIiwyMikoMiwiY2xyLWRnLWNvbHVtbiIpLE5lKDMsIkJBU0UgVEFCTEUiKSx5ZSgpLG1lKDQsImNsci1kZy1jb2x1bW4iLDIzKSxOZSg1LCJTVUJNSVRURUQiKSx5ZSgpLG1lKDYsImNsci1kZy1jb2x1bW4iLDIzKSxOZSg3LCJTVUJNSVQgUkVBU09O'@; put 'IikseWUoKSxtZSg4LCJjbHItZGctY29sdW1uIiwxMiksTmUoOSwiQUNUSU9OIikseWUoKSxtZSgxMCwiY2xyLWRnLWNvbHVtbiIsMTIpLE5lKDExLCJET1dOTE9BRCIpLHllKCksSmUoMTIsZ0dlLDE2LDMsImNsci1kZy1yb3ciLDI0KSxtZSgxMywiY2xyLWRnLWZvb3RlciIsMjUpKDE0LCJz'@; put 'cGFuIiksTmUoMTUsIml0ZW1zIHBlciBwYWdlIikseWUoKSxtZSgxNiwic2VsZWN0IiwyNikseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSg0KS5pdGVtc051bT1oKX0pLG1lKDE3LCJvcHRpb24iLDI3KSxOZSgxOCwiMyIpLHllKCksbWUoMTksIm9w'@; put 'dGlvbiIsMjcpLE5lKDIwLCI1IikseWUoKSxtZSgyMSwib3B0aW9uIiwyNyksTmUoMjIsIjEwIikseWUoKSxtZSgyMywib3B0aW9uIiwyNyksTmUoMjQsIjE1IikseWUoKSgpLG1lKDI1LCJjbHItZGctcGFnaW5hdGlvbiIsMjgsMjkpLE5lKDI3KSx5ZSgpKCkoKSgpfWlmKDImYyl7Y29uc3Qg'@; put 'YT0kaSgyNiksZD1WZSg0KTtDZSg0KSxSZSgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlZCIpLENlKDIpLFJlKCJjbHJEZ0ZpZWxkIiwic3VibWl0UmVhc29uIiksQ2UoNiksUmUoImNsckRnSXRlbXNPZiIsZC5zdWJtaXR0ZXJMaXN0KSxDZSg0KSxSZSgibmdNb2RlbCIsZC5pdGVtc051bSksQ2Uo'@; put 'MSksUmUoIm5nVmFsdWUiLDMpLENlKDIpLFJlKCJuZ1ZhbHVlIiw1KSxDZSgyKSxSZSgibmdWYWx1ZSIsMTApLENlKDIpLFJlKCJuZ1ZhbHVlIiwxNSksQ2UoMiksUmUoImNsckRnUGFnZVNpemUiLGQuaXRlbXNOdW0pLENlKDIpLGIwKCIgIixhLmZpcnN0SXRlbSsxLCIgLSAiLGEubGFzdEl0'@; put 'ZW0rMSwiIG9mICIsYS50b3RhbEl0ZW1zLCIgc3VibWlzc2lvbnMgIil9fWZ1bmN0aW9uIHZHZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMjEpLEplKDEsbUdlLDI4LDEyLCJkaXYiLDIpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgxKSxSZSgibmdJZiIsYS5zdWJtaXR0ZXJMaXN0'@; put 'JiYwIT09YS5yZW1haW5lZCl9fWNvbnN0IF9HZT1mdW5jdGlvbihjKXtyZXR1cm57bm9Cb3JkZXI6Y319O2Z1bmN0aW9uIGJHZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsNSksSmUoMSxjR2UsNSwwLCJkaXYiLDYpLG1lKDIsImRpdiIsNyksSmUoMyx1R2UsMiwwLCJoMyIsOCksSmUoNCxk'@; put 'R2UsNSwxLCJwIiw5KSx5ZSgpLEplKDUscEdlLDMsMiwiZGl2IiwxMCksSmUoNix2R2UsMiwxLCJkaXYiLDExKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUoIm5nSWYiLDA9PT1hLnJlbWFpbmVkJiZhLmxvYWRlZCksQ2UoMSksUmUoIm5nQ2xhc3MiLEoyKDYsX0dlLCFhLmxv'@; put 'YWRlZCkpLENlKDEpLFJlKCJuZ0lmIiwwIT09YS5yZW1haW5lZCksQ2UoMSksUmUoIm5nSWYiLGEubG9hZGVkJiYwIT09YS5yZW1haW5lZCksQ2UoMSksUmUoIm5nSWYiLCFhLmxvYWRlZCksQ2UoMSksUmUoIm5nSWYiLGEubG9hZGVkKX19ZnVuY3Rpb24geUdlKGMsbCl7aWYoMSZjJiYobWUo'@; put 'MCwiZGl2IiwzKSxKZSgxLGJHZSw3LDgsImRpdiIsNCkseWUoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMSksUmUoIm5nSWYiLCFhLnN1YlJlYWR5KX19ZnVuY3Rpb24gd0dlKGMsbCl7MSZjJiYobWUoMCwiZGl2IikscXQoMSwiYXBwLWFwcHJvdmUtZGV0YWlscyIpLHllKCkpfWxldCBRc2U9'@; put 'KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWEsdGhpcy5ldmVudFNlcnZpY2U9ZCx0aGlzLnJvdXRlcj1oLHRoaXMucm91dGU9Zix0aGlzLnNhc1NlcnZpY2U9Xyx0aGlzLnJlbWFpbmVkPTAsdGhpcy5sb2FkZWQ9ITEsdGhpcy5zdWJS'@; put 'ZWFkeT0hMSx0aGlzLmRldGFpbHNPcGVuPSExfWdvVG9TdGFnZShhKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIithKX1nb1RvRGV0YWlscyhhKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvcmV2aWV3L3N1Ym1pdHRlZC8iK2EpfWdldERldGFpbHMoYSxkKXt0aGlz'@; put 'LnN1YlJlYWR5PSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLnNhc1N0b3JlU2VydmljZS5zZW5kRGV0YWlscyhhLGQsdGhpcy5zdWJtaXREYXRhKX0sMCl9bmdPbkluaXQoKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtjb25zdCBkPWEucm91dGUuc25hcHNob3QucGFyYW1zLnRh'@; put 'YmxlSWQ7YS5pdGVtc051bT0xMDt0cnl7bGV0IGg9eWllbGQgYS5zYXNTdG9yZVNlcnZpY2UuZ2V0U3VibWl0dHMoKTtpZihhLnJlbWFpbmVkPWguZnJvbXNhcy5sZW5ndGgsYS5yZW1haW5lZD4wKXthLnN1Ym1pdHRlcj1oLmZyb21zYXNbMF0uU1VCTUlUVEVEX0JZX05NO2xldCBmPWguZnJv'@; put 'bXNhcy5tYXAoZnVuY3Rpb24oXyl7cmV0dXJue3RhYmxlSWQ6Xy5UQUJMRV9JRCxiYXNlOl8uQkFTRV9UQUJMRSxzdWJtaXR0ZWQ6Xy5TVUJNSVRURURfT05fRFRUTSxzdWJtaXR0ZXI6Xy5TVUJNSVRURURfQllfTk0sc3VibWl0UmVhc29uOl8uU1VCTUlUVEVEX1JFQVNPTl9UWFR9fSk7aWYo'@; put 'YS5zdWJtaXR0ZXJMaXN0PWYsYS5zdWJtaXREYXRhPWguZnJvbXNhcyx0eXBlb2YgZDwidSIpe2NvbnN0IF89YS5zdWJtaXR0ZXJMaXN0LmZpbmRJbmRleChUPT5ULnRhYmxlSWQ9PT1kKTtfPi0xJiZhLmdldERldGFpbHMoYS5zdWJtaXR0ZXJMaXN0W19dLF8pfX1hLmxvYWRlZD0hMH1jYXRj'@; put 'aChoKXthLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoImVkaXRvcnMvZ2V0c3VibWl0cyIsaCl9fSkoKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9yZWFkeVN1Yj10aGlzLnNhc1N0b3JlU2VydmljZS5zZXRTdWJtaXQuc3Vic2NyaWJlKGE9Pnt0aGlzLnN1YlJlYWR5PWF9KSx0'@; put 'aGlzLl9iYWNrVG9TdWI9dGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2V0U3VibWl0TGlzdC5zdWJzY3JpYmUoYT0+e3RoaXMuc3ViUmVhZHk9IXRoaXMuc3ViUmVhZHksdGhpcy5kZXRhaWxzT3Blbj0hMX0pfWRvd25sb2FkKGEpe2xldCBkPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygp'@; put 'LGg9ZC5zZXJ2ZXJVcmwsZj1kLmFwcExvYyxfPXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oaCtfKyIvP19wcm9ncmFtPSIrZisiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2EpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rp'@; put 'b24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChiZCksdHQodmwpLHR0KERzKSx0dChHbCksdHQob2EpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXN1Ym1pdHRlciJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Myx2YXJzOjIsY29u'@; put 'c3RzOltbMSwidy0xMDAiXSxbImNsYXNzIiwiY29udGVudC1hcmVhIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxbMSwiY2FyZCJdLFsiY2xhc3MiLCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciIsNCwibmdJ'@; put 'ZiJdLFsxLCJjYXJkLWhlYWRlciIsMywibmdDbGFzcyJdLFsiY2xhc3MiLCJjZW50ZXIgY2xyLWNvbC1tZC0xMiB0ZXh0LWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBmb250LXdlaWdodC03MDAgY29sb3ItZGFyay1ncmF5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImgt'@; put 'NzB2aCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLWNvbC1tZC0xMiIsNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsIm5vLXN1Ym1pdHRl'@; put 'ZC10YWJsZXMiLCJjYXJkLWJsb2NrIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iXSxbMSwidGV4dC1jZW50ZXIiLCJj'@; put 'b2xvci1ncmF5Il0sWzEsImNlbnRlciIsImNsci1jb2wtbWQtMTIiLCJ0ZXh0LWNlbnRlciJdLFsxLCJ0ZXh0LWNlbnRlciIsImZvbnQtd2VpZ2h0LTcwMCIsImNvbG9yLWRhcmstZ3JheSJdLFsxLCJoLTcwdmgiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiZmxleC1jb2x1'@; put 'bW4iLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbImNsYXNzIiwic3Bpbm5lciIsNCwibmdJZiJdLFsxLCJzcGlubmVyIl0sWzEsImNsci1jb2wtbWQtMTIiXSxbMSwiZGF0YWdyaWQtY29tcGFjdCIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFsiY2xhc3MiLCJj'@; put 'dXJzb3ItcG9pbnRlciIsMywiY2xpY2siLDQsImNsckRnSXRlbXMiLCJjbHJEZ0l0ZW1zT2YiXSxbMSwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LXN0YXJ0Il0sWzMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsIm5nVmFsdWUiXSxbMSwiY2VudGVyIiwzLCJjbHJEZ1BhZ2VTaXpl'@; put 'Il0sWyJwYWdpbmF0aW9uIiwiIl0sWzEsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsicm9sZSIsInRvb2x0aXAiLDEsInJvdyIsImp1c3RpZnktY29udGVudC1hcm91bmQiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJv'@; put 'dHRvbS1sZWZ0IiwiY29sb3ItYmx1ZSIsMywiY2xpY2siXSxbInNoYXBlIiwiY29kZSIsInNpemUiLCIyOCJdLFsxLCJ0b29sdGlwLWNvbnRlbnQiXSxbMSwicC0wIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJidG4iLCJidG4tc3VjY2VzcyIsMywiY2xpY2siXSxb'@; put 'InNoYXBlIiwiZG93bmxvYWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJkaXYiLDApLEplKDEseUdlLDIsMSwiZGl2IiwxKSxKZSgyLHdHZSwyLDAsImRpdiIsMikseWUoKSksMiZhJiYoQ2UoMSksUmUoIm5nSWYiLCFkLnN1YlJlYWR5KSxDZSgxKSxSZSgibmdJZiIs'@; put 'ZC5zdWJSZWFkeSkpfSxkZXBlbmRlbmNpZXM6W2RjLFppLGwxLGMxLE0wLEJzLE9zLFc4LFRwLHRnLFBFLFU4LEZFLG5nLHJnLGlnLCQ4LG9nLEI4LGtwLHo4LGthLEpzZV0sc3R5bGVzOlsiLm5vQm9yZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFu'@; put 'c3BhcmVudCFpbXBvcnRhbnR9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdFtfbmdjb250ZW50LSVDT01QJV0gPiAudG9vbHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRv'@; put 'bS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiMzMTQzNTEhaW1wb3J0YW50fS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV06YmVmb3JlLCAudG9vbHRpcFtfbmdjb250'@; put 'ZW50LSVDT01QJV0gICAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLWJvdHRvbTouMjA4MzNyZW0gc29saWQgIzMxNDM1MX0ubm8tc3VibWl0dGVkLXRh'@; put 'Ymxlc1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OmNhbGMoMTAwdmggLSAyMDBweCl9Il19KSxjfSkoKTtmdW5jdGlvbiBDR2UoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDEyKSxxdCgxLCJjbHItaWNvbiIsMTMpLG1lKDIsImgzIiwxNCksTmUoMywiVGhlcmUgaXMgbm8gaGlzdG9yeSB0byBz'@; put 'aG93IikseWUoKSgpKX1mdW5jdGlvbiBTR2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJhIiwxNykseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKS4kaW1wbGljaXQsZj1WZSgpO3JldHVybiBqdChmLmdldFRhYmxlKGYuYXBwcm92ZURhdGFbaF0pKX0p'@; put 'LE5lKDEpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0LGQ9VmUoKTtDZSgxKSxvcihkLmFwcHJvdmVEYXRhW2FdKX19ZnVuY3Rpb24gTUdlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IikoMSwiYSIsMTcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChh'@; put 'KTtjb25zdCBoPVZlKCkuJGltcGxpY2l0LGY9VmUoKTtyZXR1cm4ganQoZi5nZXRCYXNlVGFibGUoZi5hcHByb3ZlRGF0YVtoXSkpfSksTmUoMiwiVklFVyIpLHllKCksbWUoMywic3BhbiIpLE5lKDQsIiAvICIpLHllKCksbWUoNSwiYSIsMTcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChh'@; put 'KTtjb25zdCBoPVZlKCkuJGltcGxpY2l0LGY9VmUoKTtyZXR1cm4ganQoZi5nZXRFZGl0VGFibGUoZi5hcHByb3ZlRGF0YVtoXSkpfSksTmUoNiwiRURJVCIpLHllKCkoKX19ZnVuY3Rpb24geEdlKGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1W'@; put 'ZSgpLiRpbXBsaWNpdCxkPVZlKCk7Q2UoMSksb3IoZC5hcHByb3ZlRGF0YVthXSl9fWZ1bmN0aW9uIEVHZShjLGwpe2lmKDEmYyYmKG1lKDAsInRyIikoMSwidGQiLDYpLE5lKDIpLHllKCksbWUoMywidGQiLDYpLEplKDQsU0dlLDIsMSwiYSIsMTUpLEplKDUsTUdlLDcsMCwiZGl2IiwxNiks'@; put 'SmUoNix4R2UsMiwxLCJzcGFuIiwxNikseWUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4O0NlKDIpLG9yKGEpLENlKDIpLFJlKCJuZ0lmIixkPDEpLENlKDEpLFJlKCJuZ0lmIixkPDImJmQ+PTEpLENlKDEpLFJlKCJuZ0lmIixkPj0yKX19ZnVuY3Rpb24ga0dlKGMs'@; put 'bCl7MSZjJiYobWUoMCwic3BhbiIsMjApLE5lKDEsIiBMb2FkaW5nLi4uICIpLHllKCkpfWZ1bmN0aW9uIEFHZShjLGwpezEmYyYmKG1lKDAsImRpdiIpKDEsImgzIiksTmUoMiwiTG9hZGluZyBoaXN0b3J5IikseWUoKSgpKX1mdW5jdGlvbiBUR2UoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYi'@; put 'LDE4KSxKZSgxLGtHZSwyLDAsInNwYW4iLDE5KSxKZSgyLEFHZSwzLDAsImRpdiIsMTYpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLFJlKCJuZ0lmIiwhYS5sb2FkZWQpLENlKDEpLFJlKCJuZ0lmIiwhYS5sb2FkZWQpfX1mdW5jdGlvbiBER2UoYyxsKXsxJmMmJihtZSgwLCJoMyIs'@; put 'MjgpLE5lKDEsIkhJU1RPUlkiKSx5ZSgpKX1mdW5jdGlvbiBJR2UoYyxsKXtpZigxJmMmJihtZSgwLCJwIiwyOSksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLGdyKCIgVG8gdW5sb2NrIG1vcmUgdGhhbiAiLGEubGljZW5jZVN0YXRlLnZhbHVlLmhpc3Rvcnlfcm93c19h'@; put 'bGxvd2VkLCIgcmVjb3JkcywgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvICIpfX1jb25zdCBMR2U9ZnVuY3Rpb24oYyxsKXtyZXR1cm57cmVqZWN0ZWQ6YyxhY2NlcHRlZDpsfX07ZnVuY3Rpb24gUkdlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWRnLXJv'@; put 'dyIsMzMpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoMykuZ2V0QXBwckluZGV4KGYpKX0pLG1lKDEsImNsci1kZy1jZWxsIiwzNCkoMiwiYSIsMzUpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNp'@; put 'dDtyZXR1cm4ganQoVmUoMykuZ2V0QmFzZVRhYmxlKGYuYmFzZXRhYmxlKSl9KSxOZSgzKSx5ZSgpKCksbWUoNCwiY2xyLWRnLWNlbGwiLDM2KSxOZSg1KSx5ZSgpLG1lKDYsImNsci1kZy1jZWxsIiwzNCksTmUoNykseWUoKSxtZSg4LCJjbHItZGctY2VsbCIsMzQpLE5lKDkpLHllKCksbWUo'@; put 'MTAsImNsci1kZy1jZWxsIiwzNCksTmUoMTEpLHllKCksbWUoMTIsImNsci1kZy1jZWxsIiwzNCksTmUoMTMpLHllKCksbWUoMTQsImNsci1kZy1jZWxsIiwzNykoMTUsImJ1dHRvbiIsMzgpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7Y29uc3QgXz1CdChhKS4kaW1wbGljaXQ7cmV0dXJuIFZl'@; put 'KDMpLmRvd25sb2FkKF8udGFibGVJZCksanQoaC5zdG9wUHJvcGFnYXRpb24oKSl9KSxxdCgxNiwiY2xyLWljb24iLDM5KSx5ZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMyksb3IoYS5iYXNldGFibGUpLENlKDEpLFJlKCJuZ0NsYXNzIixRMig3LExHZSwiUkVKRUNU'@; put 'RUQiPT09YS5zdGF0dXMsIkFQUFJPVkVEIj09PWEuc3RhdHVzKSksQ2UoMSksb3IoYS5zdGF0dXMpLENlKDIpLG9yKGEuc3VibWl0dGVyKSxDZSgyKSxvcihhLnN1Ym1pdHRlZFJlYXNvbiksQ2UoMiksb3IoYS5zdWJtaXR0ZWQpLENlKDIpLG9yKGEucmV2aWV3ZWQpfX1mdW5jdGlvbiBPR2Uo'@; put 'YyxsKXtpZigxJmMmJihtZSgwLCJjbHItZGF0YWdyaWQiLDMwKSgxLCJjbHItZGctY29sdW1uIiwzMSksTmUoMiwiQkFTRV9UQUJMRSIpLHllKCksbWUoMywiY2xyLWRnLWNvbHVtbiIsMzEpLE5lKDQsIlNUQVRVUyIpLHllKCksbWUoNSwiY2xyLWRnLWNvbHVtbiIsMzEpLE5lKDYsIlNVQk1J'@; put 'VFRFUiIpLHllKCksbWUoNywiY2xyLWRnLWNvbHVtbiIsMzEpLE5lKDgsIlNVQk1JVCBSRUFTT04iKSx5ZSgpLG1lKDksImNsci1kZy1jb2x1bW4iLDMxKSxOZSgxMCwiU1VCTUlUVEVEIikseWUoKSxtZSgxMSwiY2xyLWRnLWNvbHVtbiIsMzEpLE5lKDEyLCJBUFBST1ZFRCAvIFJFSkVDVEVE'@; put 'IikseWUoKSxtZSgxMywiY2xyLWRnLWNvbHVtbiIpLE5lKDE0LCJET1dOTE9BRCIpLHllKCksSmUoMTUsUkdlLDE3LDEwLCJjbHItZGctcm93IiwzMikseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLFJlKCJjbHJEZ0ZpZWxkIiwiYmFzZXRhYmxlIiksQ2UoMiksUmUoImNsckRnRmll'@; put 'bGQiLCJzdGF0dXMiKSxDZSgyKSxSZSgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlciIpLENlKDIpLFJlKCJjbHJEZ0ZpZWxkIiwic3VibWl0dGVkUmVhc29uIiksQ2UoMiksUmUoImNsckRnRmllbGQiLCJzdWJtaXR0ZWQiKSxDZSgyKSxSZSgiY2xyRGdGaWVsZCIsInJldmlld2VkIiksQ2UoNCks'@; put 'UmUoImNsckRnSXRlbXNPZiIsYS5oaXN0b3J5KX19ZnVuY3Rpb24gUEdlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiYnV0dG9uIiw0MCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgyKS5sb2FkRGF0YSgpKX0pLE5lKDEpLHllKCl9aWYoMiZjKXtj'@; put 'b25zdCBhPVZlKDIpO1JlKCJjbHJMb2FkaW5nIixhLmxvYWRpbmdNb3JlKSxDZSgxKSxncigiIExvYWQgIixhLnJvd3NMZWZ0VG9Mb2FkLCIgbW9yZSAiKX19ZnVuY3Rpb24gRkdlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMiksSmUoMixER2UsMiwwLCJoMyIsMjMp'@; put 'LEplKDMsSUdlLDIsMSwicCIsMjQpLHllKCksSmUoNCxPR2UsMTYsNywiY2xyLWRhdGFncmlkIiwyNSksbWUoNSwiZGl2IiwyNiksSmUoNixQR2UsMiwyLCJidXR0b24iLDI3KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDIpLFJlKCJuZ0lmIixhLmxvYWRlZCksQ2UoMSksUmUoIm5n'@; put 'SWYiLGEubGljZW5jZVN0YXRlLnZhbHVlLmhpc3Rvcnlfcm93c19hbGxvd2VkIT09YS5JbmZpbml0eSksQ2UoMSksUmUoIm5nSWYiLGEubG9hZGVkKSxDZSgyKSxSZSgibmdJZiIsYS5saWNlbmNlU3RhdGUudmFsdWUuaGlzdG9yeV9yb3dzX2FsbG93ZWQ9PT1hLkluZmluaXR5JiZhLnJvd3NM'@; put 'ZWZ0VG9Mb2FkPjApfX1jb25zdCBIR2U9W3twYXRoOiJhcHByb3ZlIixjb21wb25lbnQ6bEdlfSx7cGF0aDoiYXBwcm92ZURldC86dGFibGVJZCIsY29tcG9uZW50OkpzZX0se3BhdGg6InN1Ym1pdHRlZCIsY29tcG9uZW50OlFzZX0se3BhdGg6InN1Ym1pdHRlZC86dGFibGVJZCIsY29tcG9u'@; put 'ZW50OlFzZX0se3BhdGg6Imhpc3RvcnkiLGNvbXBvbmVudDooKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7dGhpcy5saWNlbmNlU2VydmljZT1hLHRoaXMuc2FzU3RvcmVTZXJ2aWNlPWQsdGhpcy5ldmVudFNlcnZpY2U9aCx0aGlzLnJvdXRlcj1mLHRoaXMuc2FzU2Vydmlj'@; put 'ZT1fLHRoaXMuaGlzdG9yeT1bXSx0aGlzLnRhYmxlVGl0bGVzPVtdLHRoaXMuaGlzdG9yeUFycj1bXSx0aGlzLmxvYWRlZD0hMSx0aGlzLml0ZW1zTnVtPTEwLHRoaXMub3Blbk1vZGFsPSExLHRoaXMubm9EYXRhPSExLHRoaXMuYXBwcm92ZURhdGE9e30sdGhpcy5zYXNqc0NvbmZpZz1uZXcg'@; put 'cjEuU0FTanNDb25maWcsdGhpcy5oaXN0UGFyYW1zPXtISVNUOjAsU1RBUlRST1c6MSxOT0JTOi0xfSx0aGlzLmxvYWRpbmdNb3JlPSExLHRoaXMubGljZW5jZVN0YXRlPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVN0YXRlLHRoaXMuSW5maW5pdHk9MS8wLHRoaXMuc2FzanNDb25maWc9'@; put 'dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCl9Z2V0VGFibGUoYSl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIrYSl9Z2V0QmFzZVRhYmxlKGEpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEvIithKX1nZXRFZGl0VGFibGUoYSl7dGhpcy5y'@; put 'b3V0ZXIubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK2EpfWdldEFwcHJJbmRleChhKXtjb25zdCBkPXRoaXMuaGlzdG9yeUFyci5maW5kSW5kZXgoaD0+aC5UQUJMRV9JRD09PWEudGFibGVJZCk7ZD4tMSYmKHRoaXMuYXBwcm92ZURhdGE9dGhpcy5oaXN0b3J5QXJyW2RdLHRoaXMub3Blbk1v'@; put 'ZGFsPSEwKX1nZXQgcm93c0xlZnRUb0xvYWQoKXtjb25zdCBhPXRoaXMuaGlzdFBhcmFtcy5OT0JTLXRoaXMuaGlzdG9yeS5sZW5ndGgsZD10aGlzLmhpc3RQYXJhbXMuSElTVDtyZXR1cm4gYTw9MD8wOmE+ZD9kOmF9ZG93bmxvYWQoYSl7bGV0IGQ9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pz'@; put 'Q29uZmlnKCksaD1kLnNlcnZlclVybCxmPWQuYXBwTG9jLF89dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3BlbihoK18rIi8/X3Byb2dyYW09IitmKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIrYSsiJl9jb250ZXh0bmFtZT0iK3Ro'@; put 'aXMuc2FzanNDb25maWcuY29udGV4dE5hbWUpfWxvYWREYXRhKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7bGV0IGQ9e1NUQVJUUk9XOmEuaGlzdFBhcmFtcy5ISVNUK2EuaGlzdFBhcmFtcy5TVEFSVFJPV307YS5sb2FkaW5nTW9yZT0hMDt0cnl7bGV0IGYsaD15aWVsZCBh'@; put 'LnNhc1N0b3JlU2VydmljZS5nZXRIaXN0b3J5KGQsIkJyb3dzZXJQYXJhbXMiLCJhcHByb3ZlcnMvZ2V0aGlzdG9yeSIpO2EubG9hZGluZ01vcmU9ITEsYS5oaXN0UGFyYW1zPWguaGlzdHBhcmFtc1swXTtjb25zdCBfPWguZnJvbXNhcy5zbGljZSgwLGEubGljZW5jZVN0YXRlLnZhbHVlLmhp'@; put 'c3Rvcnlfcm93c19hbGxvd2VkKTtpZihfLmxlbmd0aD4wKXtjb25zdCBUPV87YS5oaXN0b3J5QXJyPV8sZj1PYmplY3Qua2V5cyhUWzBdKSxhLnRhYmxlVGl0bGVzPWY7bGV0IFc9Xy5tYXAoZnVuY3Rpb24oaWUpe3JldHVybnt0YWJsZUlkOmllLlRBQkxFX0lELHN1Ym1pdHRlcjppZS5TVUJN'@; put 'SVRURVIsc3VibWl0dGVkUmVhc29uOmllLlNVQk1JVFRFRF9SRUFTT05fVFhULHN1Ym1pdHRlZDppZS5TVUJNSVRURUQsc3RhdHVzOmllLlNUQVRVUyxyZXZpZXdSZWFzb246aWUuUkVWSUVXX1JFQVNPTl9UWFQscmV2aWV3ZXI6aWUuUkVWSUVXRVIscmV2aWV3ZWQ6aWUuUkVWSUVXRUQsbnVt'@; put 'T2ZBcHByb3ZhbHM6aWUuTlVNX09GX0FQUFJPVkFMU19SRVFVSVJFRCxiYXNldGFibGU6aWUuQkFTRV9UQUJMRX19KTthLmhpc3RvcnkucHVzaCguLi5XKSxhLmxvYWRlZD0hMH1lbHNlIGEubG9hZGVkPSEwLDA9PT1hLmhpc3RvcnkubGVuZ3RoJiYoYS5ub0RhdGE9ITApfWNhdGNoKGgpe2Eu'@; put 'ZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiYXBwcm92ZXJzL2dldGhpc3RvcnkiLGgpLGEubG9hZGluZ01vcmU9ITF9fSkoKX1uZ09uSW5pdCgpe3ZhciBhPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2EubG9hZERhdGEoKX0pKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEMwKSx0dChiZCksdHQodmwpLHR0KERzKSx0dChvYSkpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtaGlzdG9yeSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MjAsdmFyczo2LGNv'@; put 'bnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsiaWQiLCJub0RhdGFDb250YWluZXIiLCJjbGFzcyIsImNhcmQtYmxvY2sgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzMsImNsck1vZGFsT3BlbiIsImNsck1v'@; put 'ZGFsU2l6ZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsInRhYmxlIl0sWzEsImxlZnQiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxp'@; put 'bmUiLDMsImNsaWNrIl0sWyJjbGFzcyIsImgtNzB2aCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFsiaWQiLCJub0RhdGFDb250YWluZXIiLDEsImNhcmQtYmxv'@; put 'Y2siLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiZmxleC1jb2x1bW4iLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyJdLFsxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdyYXkiXSxbImNsYXNz'@; put 'IiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWzEsImgtNzB2aCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsi'@; put 'Y2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwiY2FyZCJdLFsxLCJjYXJkLWhlYWRlciJdLFsiY2xhc3MiLCJjZW50ZXIgY2xyLWNvbC1tZC0xMiB0ZXh0LWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBmb250LXdlaWdodC03MDAgY29s'@; put 'b3ItZGFyay1ncmF5Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLWhpc3RvcnkgZGF0YWdyaWQtY3VzdG9tLWZvb3RlciIsNCwibmdJZiJdLFsxLCJsb2FkLW1vcmUiLCJkLWZsZXgiLCJjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiXSxb'@; put 'ImNsYXNzIiwiYnRuIGJ0bi1zdWNjZXNzIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwiY2VudGVyIiwiY2xyLWNvbC1tZC0xMiIsInRleHQtY2VudGVyIl0sWzEsInRleHQtY2VudGVyIiwiZm9udC13ZWlnaHQtNzAwIiwiY29sb3ItZGFyay1ncmF5Il0sWzEsImRhdGFn'@; put 'cmlkLWhpc3RvcnkiLCJkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIl0sWzMsImNsckRnRmllbGQiXSxbMywiY2xpY2siLDQsImNsckRnSXRlbXMiLCJjbHJEZ0l0ZW1zT2YiXSxbMywiY2xpY2siXSxbMSwidmVyQ2VudGVyIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwibS0wIiwzLCJj'@; put 'bGljayJdLFsxLCJ2ZXJDZW50ZXIiLDMsIm5nQ2xhc3MiXSxbMSwidmVyQ2VudGVyIiwicC0wIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJidG4iLCJidG4tc3VjY2VzcyIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nl'@; put 'c3MiLDMsImNsckxvYWRpbmciLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImRpdiIsMCksSmUoMSxDR2UsNCwwLCJkaXYiLDEpLG1lKDIsImNsci1tb2RhbCIsMikseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQub3Blbk1v'@; put 'ZGFsPWZ9KSxtZSgzLCJoNCIsMyksTmUoNCwiQXBwcm92YWwgZGV0YWlscyIpLHllKCksbWUoNSwiZGl2Iiw0KSg2LCJ0YWJsZSIsNSkoNywidGhlYWQiKSg4LCJ0ciIpKDksInRoIiw2KSxOZSgxMCwiTmFtZSIpLHllKCksbWUoMTEsInRoIiw2KSxOZSgxMiwiVmFsdWUiKSx5ZSgpKCkoKSxt'@; put 'ZSgxMywidGJvZHkiKSxKZSgxNCxFR2UsNyw0LCJ0ciIsNykseWUoKSgpKCksbWUoMTUsImRpdiIsOCkoMTYsImJ1dHRvbiIsOSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLm9wZW5Nb2RhbD0hMX0pLE5lKDE3LCIgT0sgIikseWUoKSgpKCksSmUoMTgsVEdlLDMsMiwiZGl2Iiwx'@; put 'MCksSmUoMTksRkdlLDcsNCwiZGl2IiwxMSkseWUoKSksMiZhJiYoQ2UoMSksUmUoIm5nSWYiLGQubm9EYXRhKSxDZSgxKSxSZSgiY2xyTW9kYWxPcGVuIixkLm9wZW5Nb2RhbCkoImNsck1vZGFsU2l6ZSIsInhsIiksQ2UoMTIpLFJlKCJuZ0Zvck9mIixkLnRhYmxlVGl0bGVzKSxDZSg0KSxS'@; put 'ZSgibmdJZiIsIWQubG9hZGVkKSxDZSgxKSxSZSgibmdJZiIsIWQubm9EYXRhJiZkLmxvYWRlZCkpfSxkZXBlbmRlbmNpZXM6W2RjLHhzLFppLFc4LFRwLHRnLFU4LG5nLHJnLGlnLCQ4LG9nLEI4LGtwLHo4LGthLG91LHN1LFp1LGRoXSxzdHlsZXM6WyIucmVqZWN0ZWRbX25nY29udGVudC0l'@; put 'Q09NUCVde2NvbG9yOiNmODMxMjY7Zm9udC13ZWlnaHQ6NzAwfS5hY2NlcHRlZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzNmYzQyNDtmb250LXdlaWdodDo3MDB9LmhzQ2VsbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4IWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1'@; put 'bW4haW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7cGFkZGluZzo3cHh9LmJ0Q2VsbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9y'@; put 'dGFudH0udmVyQ2VudGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3dvcmQtYnJlYWs6YnJlYWstYWxsfS5sb2FkLW1vcmVbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjkwcHh9I25vRGF0YUNv'@; put 'bnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OmNhbGMoMTAwdmggLSAyMDBweCl9Il19KSxjfSkoKX1dO2xldCBOR2U9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxj'@; put 'Llx1MDI3NWluaj1taSh7aW1wb3J0czpbb28saGMuZm9yQ2hpbGQoSEdlKSxoY119KSxjfSkoKSxWR2U9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPXZpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1taSh7'@; put 'aW1wb3J0czpbb28scWwsTkdlLF91LF83LmZvclJvb3QoKSxDMixWN119KSxjfSkoKSxCR2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe31uZ09uSW5pdCgpe319cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPXdyKHt0eXBl'@; put 'OmMsc2VsZWN0b3JzOltbImFwcC1yZXZpZXctcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiZxdCgwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbZnBdfSksY30pKCk7ZnVu'@; put 'Y3Rpb24gakdlKGMsbCl7MSZjJiYobWUoMCwic3BhbiIsNiksTmUoMSwiIExvYWRpbmcuLi4gIikseWUoKSl9ZnVuY3Rpb24gekdlKGMsbCl7MSZjJiYobWUoMCwiZGl2IikoMSwiaDMiKSxOZSgyLCJMb2FkaW5nIHN1Ym1pdHRlZCB0YWJsZSIpLHllKCkoKSl9ZnVuY3Rpb24gVUdlKGMsbCl7'@; put 'aWYoMSZjJiYobWUoMCwiZGl2Iiw0KSxKZSgxLGpHZSwyLDAsInNwYW4iLDUpLEplKDIsekdlLDMsMCwiZGl2IiwzKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJZiIsIWEubG9hZGVkKSxDZSgxKSxSZSgibmdJZiIsIWEubG9hZGVkKX19Y29uc3QgWkdlPWZ1bmN0aW9u'@; put 'KGMsbCl7cmV0dXJue3JlamVjdGVkOmMsYWNjZXB0ZWQ6bH19O2Z1bmN0aW9uIFlHZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIpKDEsImRpdiIsNykoMiwiZGl2Iiw4KSgzLCJoNCIsOSksTmUoNCwiU3RhZ2VkIERhdGEiKSx5ZSgpKCkoKSxtZSg1LCJkaXYiLDEwKSg2'@; put 'LCJkaXYiLDExKSg3LCJkaXYiLDEyKSg4LCJkaXYiLDgpLE5lKDksIkJhc2ljIFN1Ym1pdHRlZCBEZXRhaWxzIikseWUoKSgpLG1lKDEwLCJkaXYiKSgxMSwic3BhbiIpLE5lKDEyLCJUYWJsZSBJZDoiKSx5ZSgpLG1lKDEzLCJzdHJvbmciKSgxNCwic3BhbiIpLE5lKDE1KSx5ZSgpKCkoKSxt'@; put 'ZSgxNiwiZGl2IikoMTcsInNwYW4iKSxOZSgxOCwiQmFzZSBUYWJsZToiKSx5ZSgpLG1lKDE5LCJhIiwxMykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLnZpZXdlclRhYmxlU2NyZWVuKCkpfSksTmUoMjApLHllKCkoKSxtZSgyMSwiZGl2IikoMjIsInNwYW4i'@; put 'KSxOZSgyMywiU3VibWl0IERhdGU6IikseWUoKSxtZSgyNCwic3BhbiIsMTQpLE5lKDI1KSx5ZSgpKCksbWUoMjYsImRpdiIpKDI3LCJzcGFuIiksTmUoMjgsIlJldmlldyBTdGF0dXM6IikseWUoKSxtZSgyOSwic3BhbiIsMTUpLE5lKDMwKSx5ZSgpKCkoKSxtZSgzMSwiZGl2IiwxNikoMzIs'@; put 'ImRpdiIsMTIpKDMzLCJkaXYiLDgpLE5lKDM0LCJBY3Rpb25zIikseWUoKSgpLG1lKDM1LCJkaXYiLDE3KSgzNiwiZGl2IiwxOCkoMzcsImJ1dHRvbiIsMTkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS52aWV3ZXJUYWJsZVNjcmVlbigpKX0pLE5lKDM4LCIg'@; put 'R28gdG8gYmFzZSB0YWJsZSBzY3JlZW4gIikseWUoKSxtZSgzOSwiYnV0dG9uIiwyMCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLmFwcHJvdmVUYWJsZVNjcmVlbigpKX0pLE5lKDQwLCIgR28gdG8gYXBwcm92YWxzIHNjcmVlbiAiKSx5ZSgpLG1lKDQxLCJi'@; put 'dXR0b24iLDIxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZ29CYWNrKCkpfSksTmUoNDIsIiBHbyBiYWNrIHRvIGVkaXRvciAiKSx5ZSgpLG1lKDQzLCJidXR0b24iLDIyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpO3JldHVy'@; put 'biBqdChoLmRvd25sb2FkKG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuVEFCTEVfSUQpKX0pLHF0KDQ0LCJjbHItaWNvbiIsMjMpLHllKCkoKSgpKCkoKSxtZSg0NSwiZGl2IiwyNCkscXQoNDYsImhvdC10YWJsZSIsMjUpLHllKCkscXQoNDcsImRpdiIsMjYpLHll'@; put 'KCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoMTUpLGdyKCIgIixudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlRBQkxFX0lELCIiKSxDZSg1KSxncigiICIsbnVsbD09YS50YWJsZURldGFpbHM/bnVsbDphLnRhYmxlRGV0YWlscy5CQVNFX1RBQkxFLCIgIiksQ2Uo'@; put 'NSksZ3IoIiAiLG51bGw9PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuU1VCTUlUVEVEX09OX0RUVE0sIiAiKSxDZSg0KSxSZSgibmdDbGFzcyIsUTIoMTMsWkdlLCJSRUpFQ1RFRCI9PT0obnVsbD09YS50YWJsZURldGFpbHM/bnVsbDphLnRhYmxlRGV0YWlscy5SRVZJRVdf'@; put 'U1RBVFVTX0lEKSwiQVBQUk9WRUQiPT09KG51bGw9PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCkpKSxDZSgxKSxncigiICIsbnVsbD09YS50YWJsZURldGFpbHM/bnVsbDphLnRhYmxlRGV0YWlscy5SRVZJRVdfU1RBVFVTX0lELCIgIiksQ2Uo'@; put 'OSksUmUoImRpc2FibGVkIiwiQVBQUk9WRUQiPT09KG51bGw9PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCl8fCJSRUpFQ1RFRCI9PT0obnVsbD09YS50YWJsZURldGFpbHM/bnVsbDphLnRhYmxlRGV0YWlscy5SRVZJRVdfU1RBVFVTX0lEKSks'@; put 'Q2UoNyksUmUoImRhdGEiLGEuaG90VGFibGUuZGF0YSkoImNvbEhlYWRlcnMiLGEuaG90VGFibGUuY29sSGVhZGVycykoImNvbHVtbnMiLGEuaG90VGFibGUuY29sdW1ucykoIm1heFJvd3MiLGEuaG90VGFibGUubWF4Um93cykoImhlaWdodCIsYS5ob3RUYWJsZS5oZWlnaHQpKCJsaWNlbnNl'@; put 'S2V5IixhLmhvdFRhYmxlLmxpY2Vuc2VLZXkpKCJjZWxscyIsYS5ob3RUYWJsZS5jZWxscyl9fWNvbnN0IFdHZT1be3BhdGg6Ijp0YWJsZUlkIixjb21wb25lbnQ6KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8sVCl7dGhpcy5saWNlbmNlU2VydmljZT1hLHRoaXMuc2FzU3Rv'@; put 'cmVTZXJ2aWNlPWQsdGhpcy5ldmVudFNlcnZpY2U9aCx0aGlzLnJvdXRlPWYsdGhpcy5yb3V0ZXI9Xyx0aGlzLnNhc1NlcnZpY2U9VCx0aGlzLmxvYWRlZD0hMSx0aGlzLmxpY2VuY2VTdGF0ZT10aGlzLmxpY2VuY2VTZXJ2aWNlLmxpY2VuY2VTdGF0ZSx0aGlzLmhvdFRhYmxlPXtkYXRhOltd'@; put 'LGNvbEhlYWRlcnM6W10sY29sdW1uczpbXSxoZWlnaHQ6NTAwLHNldHRpbmdzOnt9LGxpY2Vuc2VLZXk6dm9pZCAwLG1heFJvd3M6dGhpcy5saWNlbmNlU3RhdGUudmFsdWUuc3RhZ2Vfcm93c19hbGxvd2VkfHwxLzB9fXN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0'@; put 'ZUJ5VXJsKCIvc3RhZ2UvIit0aGlzLnRhYmxlX2lkKX1hcHByb3ZlVGFibGVTY3JlZW4oKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9yZXZpZXcvYXBwcm92ZURldC8iK3RoaXMudGFibGVfaWQpfXZpZXdlclRhYmxlU2NyZWVuKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvdmll'@; put 'dy9kYXRhLyIrdGhpcy50YWJsZURldGFpbHMuQkFTRV9UQUJMRSl9Z29CYWNrKCl7R24ueGxtYXBzLmZpbmQoZD0+ZC50YXJnZXREUz09PXRoaXMudGFibGVEZXRhaWxzLkJBU0VfVEFCTEUpP3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2hvbWUvZmlsZXMvIit0aGlzLmhvdFRhYmxlLmRh'@; put 'dGFbMF0uWExNQVBfSUQpOnRoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK3RoaXMudGFibGVEZXRhaWxzLkJBU0VfVEFCTEUpfWRvd25sb2FkKGEpe2xldCBkPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLGg9ZC5zZXJ2ZXJVcmwsZj1kLmFwcExvYyxfPXRoaXMu'@; put 'c2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oaCtfKyIvP19wcm9ncmFtPSIrZisiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2EpfW5nT25Jbml0KCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7aWYoYS5saWNlbmNlU2Vy'@; put 'dmljZS5ob3RfbGljZW5zZV9rZXkuc3Vic2NyaWJlKGQ9PnthLmhvdFRhYmxlLmxpY2Vuc2VLZXk9ZH0pLHR5cGVvZiBhLnJvdXRlci5zbmFwc2hvdC5wYXJhbXMudGFibGVJZDwidSIpe2EudGFibGVfaWQ9YS5yb3V0ZXIuc25hcHNob3QucGFyYW1zLnRhYmxlSWQ7dHJ5e2xldCBkPXlpZWxk'@; put 'IGEuc2FzU3RvcmVTZXJ2aWNlLmdldENoYW5nZUluZm8oYS50YWJsZV9pZCk7aWYoIWR8fCFkLmpzcGFyYW1zKXRocm93IG5ldyBFcnJvcigianNwYXJhbXMgcHJvcGVydHkgaXMgbWlzc2luZyBmcm9tIHJlc3BvbnNlLiIpO2EudGFibGVEZXRhaWxzPWQuanNwYXJhbXNbMF19Y2F0Y2goZCl7'@; put 'bGV0IGg9e307ZC5NRVNTQUdFP2g9ZDpoLk1FU1NBR0U9ZCxhLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoInB1YmxpYy9nZXRjaGFuZ2VpbmZvIixoKX10cnl7bGV0IGQ9eWllbGQgYS5zYXNTdG9yZVNlcnZpY2Uub3BlblRhYmxlKGEudGFibGVfaWQpO2lmKCFkfHwhZC5zdGFn'@; put 'ZXRhYmxlKXRocm93IG5ldyBFcnJvcigiU3RhZ2V0YWJsZSBwcm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gcmVzcG9uc2UuIik7bGV0IGg9ZC5zdGFnZXRhYmxlWzBdLGY9W10sXz1bXTtmb3IobGV0IFcgaW4gaCloJiZmLnB1c2goVyk7Zm9yKGxldCBXPTA7VzxmLmxlbmd0aDtXKyspXy5wdXNo'@; put 'KHtkYXRhOmZbV119KTtsZXQgVD1mdW5jdGlvbigpe3JldHVybntyZWFkT25seTohMH19O2EuaG90VGFibGUuZGF0YT1kLnN0YWdldGFibGUsYS5ob3RUYWJsZS5jb2xIZWFkZXJzPWYsYS5ob3RUYWJsZS5jb2x1bW5zPV8sYS5ob3RUYWJsZS5jZWxscz1ULGEubG9hZGVkPSEwLGEuc2V0Rm9j'@; put 'dXMoKX1jYXRjaChkKXtsZXQgaD17fTtkLk1FU1NBR0V8fChoLk1FU1NBR0U9ZCksYS5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhdWRpdG9ycy9nZXRzdGFnZXRhYmxlIixoKSxhLmxvYWRlZD0hMX19fSkoKX1zZXRGb2N1cygpe3NldFRpbWVvdXQoKCk9PntsZXQgYT13aW5k'@; put 'b3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLWJ0biIpO2EmJmEuZm9jdXMoKX0sMjAwKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoQzApLHR0KGJkKSx0dCh2bCksdHQoRHMpLHR0KEdsKSx0dChvYSkpfSxjLlx1MDI3NWNt'@; put 'cD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtc3RhZ2UiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjbHItY29sLW1kLTEyIiwiY2FyZCJdLFsiY2xhc3MiLCJoLTgwdmggZC1mbGV4'@; put 'IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwiaC04MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFz'@; put 'cyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbMSwic3Bpbm5lciJdLFsibmctaWYiLCJsb2FkZWQiLDEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtdGl0bGUiLCJ0ZXh0LWNlbnRlciJdLFsxLCJtdC0wIl0sWyJuZy1pZiIsImxvYWRlZCIsMSwiY2xyLXJvdyJdLFsxLCJjYXJkLWJsb2NrIiwiY2xy'@; put 'LWNvbC1tZC02Il0sWzEsImNhcmQtaGVhZGVyIiwicHktNSJdLFsxLCJiYXNlVGFibGVMaW5rIiwzLCJjbGljayJdLFsxLCJtdC0xMCJdLFsxLCJtdC0xMCIsMywibmdDbGFzcyJdLFsxLCJjbHItY29sLW1kLTYiLCJjYXJkLWJsb2NrIl0sWzEsIm10LTIwIl0sWzEsInJvdyJdLFsxLCJidG4i'@; put 'LCJidG4tc20iLCJidG4tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImNsaWNrIl0sWyJpZCIsImFwcHJvdmFsLWJ0biIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMSwi'@; put 'YnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwidGV4dC1jZW50ZXIiLCJtdC0yMCIsIm1pbi13LTAiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWzEs'@; put 'ImNhcmQtYmxvY2siXSxbImhvdElkIiwiaG90SW5zdGFuY2UiLCJpZCIsImhvdFRhYmxlIiwic3RyZXRjaEgiLCJhbGwiLDMsImRhdGEiLCJjb2xIZWFkZXJzIiwiY29sdW1ucyIsIm1heFJvd3MiLCJoZWlnaHQiLCJsaWNlbnNlS2V5IiwiY2VsbHMiXSxbMSwiY2FyZC1mb290ZXIiLCJkLWZs'@; put 'ZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLEplKDIsVUdlLDMsMiwiZGl2IiwyKSxKZSgzLFlHZSw0OCwxNiwiZGl2IiwzKSx5ZSgpKCkpLDImYSYmKENlKDIpLFJlKCJuZ0lmIiwhZC5s'@; put 'b2FkZWQpLENlKDEpLFJlKCJuZ0lmIixkLmxvYWRlZCkpfSxkZXBlbmRlbmNpZXM6W2RjLFppLGthLHh5XSxzdHlsZXM6WyIucmVqZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmODMxMjY7Zm9udC13ZWlnaHQ6NzAwfS5hY2NlcHRlZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6'@; put 'IzNmYzQyNDtmb250LXdlaWdodDo3MDB9LmJhc2VUYWJsZUxpbmtbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpwb2ludGVyO21hcmdpbi10b3A6MTBweDtjb2xvcjojMDA3Y2JifSJdfSksY30pKCl9XTtsZXQgR0dlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlv'@; put 'bihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W29vLF91LGhjLmZvckNoaWxkKFdHZSksXzcuZm9yUm9vdCgpXX0pLGN9KSgpO2Z1bmN0aW9uICRHZShjLGwpe2lmKDEmYyYmKG1lKDAsInAiLDYpLE5lKDEsIiBW'@; put 'aWV3ZXIgcm93cyBsaW1pdDogIiksbWUoMiwic3BhbiIsNyksTmUoMykseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgzKSxvcihhLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3ZXJfcm93c19hbGxvd2VkKX19ZnVuY3Rpb24gcUdlKGMsbCl7aWYoMSZjJiYobWUoMCwicCIsNiksTmUoMSwi'@; put 'IEVkaXRvciByb3dzIGxpbWl0OiAiKSxtZSgyLCJzcGFuIiw3KSxOZSgzKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDMpLG9yKGEubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQpfX1mdW5jdGlvbiBLR2UoYyxsKXtpZigxJmMmJihtZSgwLCJwIiw2KSxOZSgx'@; put 'LCIgU3RhZ2Ugcm93cyBsaW1pdDogIiksbWUoMiwic3BhbiIsNyksTmUoMykseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgzKSxvcihhLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdGFnZV9yb3dzX2FsbG93ZWQpfX1mdW5jdGlvbiBYR2UoYyxsKXtpZigxJmMmJihtZSgwLCJwIiw2KSxOZSgx'@; put 'LCIgSGlzdG9yeSByb3dzIGxpbWl0OiAiKSxtZSgyLCJzcGFuIiw3KSxOZSgzKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDMpLG9yKGEubGljZW5jZVN0YXRlLnZhbHVlLmhpc3Rvcnlfcm93c19hbGxvd2VkKX19ZnVuY3Rpb24gSkdlKGMsbCl7aWYoMSZjJiYobWUoMCwicCIsNiks'@; put 'TmUoMSwiIFN1Ym1pdCByb3dzIGxpbWl0OiAiKSxtZSgyLCJzcGFuIiw3KSxOZSgzKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDMpLG9yKGEubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0KX19ZnVuY3Rpb24gUUdlKGMsbCl7aWYoMSZjJiYobWUoMCwicCIsNiks'@; put 'TmUoMSwiIFRhYmxlcyBpbiBsaWJyYXJ5IGxpbWl0OiAiKSxtZSgyLCJzcGFuIiw3KSxOZSgzKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDMpLG9yKGEubGljZW5jZVN0YXRlLnZhbHVlLnRhYmxlc19pbl9saWJyYXJ5X2xpbWl0KX19ZnVuY3Rpb24gZSRlKGMsbCl7aWYoMSZjJiYo'@; put 'bWUoMCwicCIsNiksTmUoMSwiIFZpZXdib3hlcyBsaW1pdDogIiksbWUoMiwic3BhbiIsNyksTmUoMykseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgzKSxvcihhLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3Ym94X2xpbWl0KX19ZnVuY3Rpb24gdCRlKGMsbCl7aWYoMSZjJiYobWUoMCwi'@; put 'cCIsNiksTmUoMSwiIExpbmVhZ2UgZGFpbHkgbGltaXQ6ICIpLG1lKDIsInNwYW4iLDcpLE5lKDMpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMyksb3IoYS5saWNlbmNlU3RhdGUudmFsdWUubGluZWFnZV9kYWlseV9saW1pdCl9fWZ1bmN0aW9uIG4kZShjLGwpe2lmKDEmYyl7Y29u'@; put 'c3QgYT1WbigpO21lKDAsImRpdiIsMTcpLE5lKDEsIiBSZWZyZXNoIERhdGEgTGluZWFnZSAiKSxtZSgyLCJidXR0b24iLDE4KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLnJlZnJlc2hEYXRhTGluZWFnZSgpKX0pLE5lKDMsIiBSRUZSRVNIICIpLHllKCko'@; put 'KX1pZigyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMiksUmUoImNsckxvYWRpbmciLGEucmVmcmVzaGluZ0RhdGFMaW5lYWdlKX19ZnVuY3Rpb24gciRlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7VnIoMCksSmUoMSxuJGUsNCwxLCJkaXYiLDE2KSxtZSgyLCJkaXYiLDE3KSxOZSgzLCIgUmVm'@; put 'cmVzaCBEYXRhIENhdGFsb2cgIiksbWUoNCwiYnV0dG9uIiwxOCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLnJlZnJlc2hEYXRhQ2F0YWxvZygpKX0pLE5lKDUsIiBSRUZSRVNIICIpLHllKCkoKSxtZSg2LCJkaXYiLDE3KSxOZSg3LCIgRG93bmxvYWQgQ29u'@; put 'ZmlndXJhdGlvbiAiKSxtZSg4LCJidXR0b24iLDE5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuZG93bmxvYWRDb25maWd1cmF0aW9uKCkpfSksTmUoOSwiIERPV05MT0FEICIpLHllKCkoKSxtZSgxMCwiZGl2IiwxNyksTmUoMTEsIiBVcGRhdGUgTGljZW5j'@; put 'ZSBLZXkgIiksbWUoMTIsImJ1dHRvbiIsMjApLE5lKDEzLCIgVVBEQVRFICIpLHllKCkoKSx6cigpfWlmKDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLFJlKCJuZ0lmIiwiU0FTOSI9PT1hLnNlcnZlclR5cGUpLENlKDMpLFJlKCJjbHJMb2FkaW5nIixhLnJlZnJlc2hpbmdEYXRhQ2F0YWxvZyl9'@; put 'fWNvbnN0IGkkZT1be3BhdGg6IiIsY29tcG9uZW50OigoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuYXBwU2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMubGljZW5jZVNlcnZpY2U9aCx0aGlzLmFwcEluZm89e2FkYXB0ZXJWZXJzaW9uOiI0LjEwLjIiLGFwcFZl'@; put 'cnNpb246InY2LjYuNCIucmVwbGFjZSgidiIsIiIpLGJ1aWxkVGltZXN0YW1wOklHKCkocGFyc2VJbnQoIjE3MTE5NjUxMzQ5MDgiKSkuZm9ybWF0KCJERC1NTU0tWVlZWSBISDpNTSIpfSx0aGlzLmh0dHA9Imh0dHA6Ij09PWxvY2F0aW9uLnByb3RvY29sLHRoaXMucmVmcmVzaGluZ0RhdGFD'@; put 'YXRhbG9nPSExLHRoaXMucmVmcmVzaGluZ0RhdGFMaW5lYWdlPSExLHRoaXMucmVzcG9uc2U9Ik5vIHJlc3BvbnNlIix0aGlzLnJlc3BvbnNlTW9kYWw9ITEsdGhpcy5JbmZpbml0eT0xLzAsdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGUsdGhpcy5z'@; put 'ZXJ2ZXJUeXBlPXRoaXMuc2FzU2VydmljZS5nZXRTZXJ2ZXJUeXBlKCksdGhpcy5saWNlbmNlSW5mbz10aGlzLmxpY2VuY2VTZXJ2aWNlLmdldExpY2Vuc2VLZXlEYXRhKCksdGhpcy5lbnZpcm9ubWVudEluZm89dGhpcy5hcHBTZXJ2aWNlLmdldEVudmlyb25tZW50SW5mbygpLHRoaXMuZW52'@; put 'aXJvbm1lbnRJbmZvJiYodGhpcy5lbnZpcm9ubWVudEluZm8uQVVUT0VYRUM9ZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMuZW52aXJvbm1lbnRJbmZvLkFVVE9FWEVDKSl9bmdPbkluaXQoKXt9ZG93bmxvYWRDb25maWd1cmF0aW9uKCl7bGV0IGE9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29u'@; put 'ZmlnKCksZD1hLnNlcnZlclVybCxoPWEuYXBwTG9jLGY9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3BlbihkK2YrIi8/X3Byb2dyYW09IitoKyIvc2VydmljZXMvYWRtaW4vZXhwb3J0Y29uZmlnIil9cmVmcmVzaERhdGFDYXRhbG9nKCl7dGhpcy5yZWZyZXNo'@; put 'aW5nRGF0YUNhdGFsb2c9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImFkbWluL3JlZnJlc2hjYXRhbG9nIixudWxsKS50aGVuKGE9Pnt0aGlzLnJlc3BvbnNlPXRoaXMucGFyc2VSZXNwb25zZShhKSx0aGlzLnJlc3BvbnNlTW9kYWw9ITB9KS5jYXRjaChhPT57dGhpcy5yZXNwb25zZT10'@; put 'aGlzLnBhcnNlUmVzcG9uc2UoYSksdGhpcy5yZXNwb25zZU1vZGFsPSEwfSkuZmluYWxseSgoKT0+e3RoaXMucmVmcmVzaGluZ0RhdGFDYXRhbG9nPSExfSl9cmVmcmVzaERhdGFMaW5lYWdlKCl7dGhpcy5yZWZyZXNoaW5nRGF0YUxpbmVhZ2U9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3Qo'@; put 'ImFkbWluL3JlZnJlc2h0YWJsZWxpbmVhZ2UiLG51bGwpLnRoZW4oYT0+e3RoaXMucmVzcG9uc2U9dGhpcy5wYXJzZVJlc3BvbnNlKGEpLHRoaXMucmVzcG9uc2VNb2RhbD0hMH0pLmNhdGNoKGE9Pnt0aGlzLnJlc3BvbnNlPXRoaXMucGFyc2VSZXNwb25zZShhKSx0aGlzLnJlc3BvbnNlTW9k'@; put 'YWw9ITB9KS5maW5hbGx5KCgpPT57dGhpcy5yZWZyZXNoaW5nRGF0YUxpbmVhZ2U9ITF9KX1wYXJzZVJlc3BvbnNlKGEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgYT9KU09OLnN0cmluZ2lmeShhKTphfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0'@; put 'dChVeCksdHQob2EpLHR0KEMwKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1zeXN0ZW0iXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEzMCx2YXJzOjM0LGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIiwicC0x'@; put 'MCIsImQtZmxleCIsImNsci1mbGV4LWNvbHVtbiIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiLCJjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJ0ZXh0LWNlbnRlciIsIm0tMCJdLFsxLCJ3LTEwMCIsImxpZ2h0Il0sWzEsImNvbnRlbnQtYm94IiwiZC1mbGV4IiwiY2xyLWZsZXgt'@; put 'Y29sdW1uIl0sWzEsInN5cy1pbmZvIiwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiLCJjbHItZmxleC1jb2x1bW4iLCJjbHItZmxleC1sZy1yb3ciXSxbMSwibS0wIl0sWzEsImRhcmsiXSxbMSwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1sZy1jZW50ZXIiXSxb'@; put 'ImNsYXNzIiwibS0wIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJi'@; put 'dG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImNsYXNzIiwiYWRtaW4tYWN0aW9uIiw0LCJuZ0lmIl0sWzEsImFkbWluLWFjdGlvbiJdLFsxLCJidG4iLCJidG4taW5mbyIsImJ0bi1zbSIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1pbmZvIiwiYnRuLXNtIiwzLCJjbGlj'@; put 'ayJdLFsicm91dGVyTGluayIsIi9saWNlbnNpbmcvdXBkYXRlIiwxLCJidG4iLCJidG4taW5mbyIsImJ0bi1zbSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImRpdiIsMCkoMSwiZGl2IiwxKSgyLCJoNCIsMiksTmUoMywiU3lzdGVtIGluZm9ybWF0aW9uIikseWUoKSxx'@; put 'dCg0LCJociIsMyksbWUoNSwiZGl2Iiw0KSg2LCJkaXYiLDUpKDcsImRpdiIpKDgsImg2Iiw2KSxOZSg5LCJFbnZpcm9ubWVudCBEZXRhaWxzICIpLHF0KDEwLCJzcGFuIiw3KSx5ZSgpLG1lKDExLCJwIiw2KSxOZSgxMiwiIFNZU1NJVEU6ICIpLG1lKDEzLCJzcGFuIiw3KSxOZSgxNCkseWUo'@; put 'KSgpLG1lKDE1LCJwIiw2KSxOZSgxNiwiIFNZU1NDUEw6ICIpLG1lKDE3LCJzcGFuIiw3KSxOZSgxOCkseWUoKSgpLG1lKDE5LCJwIiw2KSxOZSgyMCwiIFNZU1RDUElQSE9TVE5BTUU6ICIpLG1lKDIxLCJzcGFuIiw3KSxOZSgyMikseWUoKSgpLG1lKDIzLCJwIiw2KSxOZSgyNCwiIFNZU1ZM'@; put 'T05HOiAiKSxtZSgyNSwic3BhbiIsNyksTmUoMjYpLHllKCkoKSxtZSgyNywicCIsNiksTmUoMjgsIiBNRU1TSVpFOiAiKSxtZSgyOSwic3BhbiIsNyksTmUoMzApLHllKCkoKSxtZSgzMSwicCIsNiksTmUoMzIsIiBTWVNQUk9DRVNTTU9ERTogIiksbWUoMzMsInNwYW4iLDcpLE5lKDM0KSx5'@; put 'ZSgpKCksbWUoMzUsInAiLDYpLE5lKDM2LCIgU1lTSE9TVE5BTUU6ICIpLG1lKDM3LCJzcGFuIiw3KSxOZSgzOCkseWUoKSgpLG1lKDM5LCJwIiw2KSxOZSg0MCwiIFNZU0hPU1RJTkZPTE9ORzogIiksbWUoNDEsInNwYW4iLDcpLE5lKDQyKSx5ZSgpKCksbWUoNDMsInAiLDYpLE5lKDQ0LCIg'@; put 'U1lTRU5DT0RJTkc6ICIpLG1lKDQ1LCJzcGFuIiw3KSxOZSg0NikseWUoKSgpLG1lKDQ3LCJwIiw2KSxOZSg0OCwiIEFVVE9FWEVDOiAiKSxtZSg0OSwic3BhbiIsNyksTmUoNTApLHllKCkoKSxtZSg1MSwicCIsNiksTmUoNTIsIiBEQyBBRE1JTiBHUk9VUDogIiksbWUoNTMsInNwYW4iLDcp'@; put 'LE5lKDU0KSx5ZSgpKCkoKSxtZSg1NSwiZGl2Iiw4KSg1NiwiZGl2IikoNTcsImg2Iiw2KSxOZSg1OCwiIERhdGEgQ29udHJvbGxlciBEZXRhaWxzICIpLHF0KDU5LCJzcGFuIiw3KSx5ZSgpLG1lKDYwLCJwIiw2KSxOZSg2MSwiIEFwcGxpY2F0aW9uIHZlcnNpb246ICIpLG1lKDYyLCJzcGFu'@; put 'Iiw3KSxOZSg2MykseWUoKSgpLG1lKDY0LCJwIiw2KSxOZSg2NSwiIEJ1aWxkIHRpbWVzdGFtcDogIiksbWUoNjYsInNwYW4iLDcpLE5lKDY3KSx5ZSgpKCksbWUoNjgsInAiLDYpLE5lKDY5LCIgQWRhcHRlciB2ZXJzaW9uOiAiKSxtZSg3MCwic3BhbiIsNyksTmUoNzEpLHllKCkoKSxtZSg3'@; put 'MiwicCIsNiksTmUoNzMsIiBIVFRQOiAiKSxtZSg3NCwic3BhbiIsNyksTmUoNzUpLHllKCkoKSgpKCksbWUoNzYsImRpdiIpKDc3LCJoNiIsNiksTmUoNzgsIkxpY2VuY2UgZGV0YWlscyAiKSxxdCg3OSwic3BhbiIsNykseWUoKSxtZSg4MCwicCIsNiksTmUoODEsIiBWYWxpZCB1bnRpbDog'@; put 'IiksbWUoODIsInNwYW4iLDcpLE5lKDgzKSx5ZSgpKCksbWUoODQsInAiLDYpLE5lKDg1LCIgVXNlcnMgYWxsb3dlZDogIiksbWUoODYsInNwYW4iLDcpLE5lKDg3KSx5ZSgpKCksbWUoODgsInAiLDYpLE5lKDg5LCIgU2l0ZSBJRHM6ICIpLG1lKDkwLCJzcGFuIiw3KSxOZSg5MSkseWUoKSgp'@; put 'LG1lKDkyLCJwIiw2KSxOZSg5MywiIEZyZWUgVGllcjogIiksbWUoOTQsInNwYW4iLDcpLE5lKDk1KSx5ZSgpKCksSmUoOTYsJEdlLDQsMSwicCIsOSksSmUoOTcscUdlLDQsMSwicCIsOSksSmUoOTgsS0dlLDQsMSwicCIsOSksSmUoOTksWEdlLDQsMSwicCIsOSksSmUoMTAwLEpHZSw0LDEs'@; put 'InAiLDkpLEplKDEwMSxRR2UsNCwxLCJwIiw5KSxKZSgxMDIsZSRlLDQsMSwicCIsOSksSmUoMTAzLHQkZSw0LDEsInAiLDkpLG1lKDEwNCwicCIsNiksTmUoMTA1LCIgVmlld2JveGVzOiAiKSxtZSgxMDYsInNwYW4iLDcpLE5lKDEwNykseWUoKSgpLG1lKDEwOCwicCIsNiksTmUoMTA5LCIg'@; put 'RmlsZSBVcGxvYWQ6ICIpLG1lKDExMCwic3BhbiIsNyksTmUoMTExKSx5ZSgpKCksbWUoMTEyLCJwIiw2KSxOZSgxMTMsIiBFZGl0IHJlY29yZDogIiksbWUoMTE0LCJzcGFuIiw3KSxOZSgxMTUpLHllKCkoKSxtZSgxMTYsInAiLDYpLE5lKDExNywiIEFkZCByZWNvcmQ6ICIpLG1lKDExOCwi'@; put 'c3BhbiIsNyksTmUoMTE5KSx5ZSgpKCkoKSgpLHF0KDEyMCwiaHIiLDMpLEplKDEyMSxyJGUsMTQsMiwibmctY29udGFpbmVyIiwxMCkseWUoKSgpKCksbWUoMTIyLCJjbHItbW9kYWwiLDExKSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5yZXNwb25zZU1v'@; put 'ZGFsPWZ9KSxtZSgxMjMsImgzIiwxMiksTmUoMTI0LCJSZXNwb25zZSIpLHllKCksbWUoMTI1LCJkaXYiLDEzKSxOZSgxMjYpLHllKCksbWUoMTI3LCJkaXYiLDE0KSgxMjgsImJ1dHRvbiIsMTUpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5yZXNwb25zZU1vZGFsPSExfSksTmUo'@; put 'MTI5LCIgT2sgIikseWUoKSgpKCkpLDImYSYmKENlKDE0KSxvcihudWxsPT1kLmVudmlyb25tZW50SW5mbz9udWxsOmQuZW52aXJvbm1lbnRJbmZvLlNZU1NJVEUpLENlKDQpLG9yKG51bGw9PWQuZW52aXJvbm1lbnRJbmZvP251bGw6ZC5lbnZpcm9ubWVudEluZm8uU1lTU0NQTCksQ2UoNCks'@; put 'b3IobnVsbD09ZC5lbnZpcm9ubWVudEluZm8/bnVsbDpkLmVudmlyb25tZW50SW5mby5TWVNUQ1BJUEhPU1ROQU1FKSxDZSg0KSxvcihudWxsPT1kLmVudmlyb25tZW50SW5mbz9udWxsOmQuZW52aXJvbm1lbnRJbmZvLlNZU1ZMT05HKSxDZSg0KSxvcihudWxsPT1kLmVudmlyb25tZW50SW5m'@; put 'bz9udWxsOmQuZW52aXJvbm1lbnRJbmZvLk1FTVNJWkUpLENlKDQpLG9yKG51bGw9PWQuZW52aXJvbm1lbnRJbmZvP251bGw6ZC5lbnZpcm9ubWVudEluZm8uU1lTUFJPQ0VTU01PREUpLENlKDQpLG9yKG51bGw9PWQuZW52aXJvbm1lbnRJbmZvP251bGw6ZC5lbnZpcm9ubWVudEluZm8uU1lT'@; put 'SE9TVE5BTUUpLENlKDQpLG9yKG51bGw9PWQuZW52aXJvbm1lbnRJbmZvP251bGw6ZC5lbnZpcm9ubWVudEluZm8uU1lTSE9TVElORk9MT05HKSxDZSg0KSxvcihudWxsPT1kLmVudmlyb25tZW50SW5mbz9udWxsOmQuZW52aXJvbm1lbnRJbmZvLlNZU0VOQ09ESU5HKSxDZSg0KSxvcihudWxs'@; put 'PT1kLmVudmlyb25tZW50SW5mbz9udWxsOmQuZW52aXJvbm1lbnRJbmZvLkFVVE9FWEVDKSxDZSg0KSxvcihudWxsPT1kLmVudmlyb25tZW50SW5mbz9udWxsOmQuZW52aXJvbm1lbnRJbmZvLkRDX0FETUlOX0dST1VQKSxDZSg5KSxvcihkLmFwcEluZm8uYXBwVmVyc2lvbiksQ2UoNCksb3Io'@; put 'ZC5hcHBJbmZvLmJ1aWxkVGltZXN0YW1wKSxDZSg0KSxvcihkLmFwcEluZm8uYWRhcHRlclZlcnNpb24pLENlKDQpLG9yKGQuaHR0cD8iWUVTIjoiTk8iKSxDZSg4KSxvcihudWxsPT1kLmxpY2VuY2VJbmZvP251bGw6ZC5saWNlbmNlSW5mby52YWxpZF91bnRpbCksQ2UoNCksb3IobnVsbD09'@; put 'ZC5saWNlbmNlSW5mbz9udWxsOmQubGljZW5jZUluZm8udXNlcnNfYWxsb3dlZCksQ2UoNCksb3IobnVsbD09ZC5saWNlbmNlSW5mbz9udWxsOmQubGljZW5jZUluZm8uc2l0ZV9pZF9tdWx0aXBsZSksQ2UoNCksb3IobnVsbCE9ZC5saWNlbmNlSW5mbyYmZC5saWNlbmNlSW5mby5kZW1vPyJZ'@; put 'RVMiOiJOTyIpLENlKDEpLFJlKCJuZ0lmIixkLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3ZXJfcm93c19hbGxvd2VkIT09ZC5JbmZpbml0eSksQ2UoMSksUmUoIm5nSWYiLGQubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQhPT1kLkluZmluaXR5KSxDZSgxKSxSZSgibmdJ'@; put 'ZiIsZC5saWNlbmNlU3RhdGUudmFsdWUuc3RhZ2Vfcm93c19hbGxvd2VkIT09ZC5JbmZpbml0eSksQ2UoMSksUmUoIm5nSWYiLGQubGljZW5jZVN0YXRlLnZhbHVlLmhpc3Rvcnlfcm93c19hbGxvd2VkIT09ZC5JbmZpbml0eSksQ2UoMSksUmUoIm5nSWYiLGQubGljZW5jZVN0YXRlLnZhbHVl'@; put 'LnN1Ym1pdF9yb3dzX2xpbWl0IT09ZC5JbmZpbml0eSksQ2UoMSksUmUoIm5nSWYiLGQubGljZW5jZVN0YXRlLnZhbHVlLnRhYmxlc19pbl9saWJyYXJ5X2xpbWl0IT09ZC5JbmZpbml0eSksQ2UoMSksUmUoIm5nSWYiLGQubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdib3hfbGltaXQhPT1kLklu'@; put 'ZmluaXR5KSxDZSgxKSxSZSgibmdJZiIsZC5saWNlbmNlU3RhdGUudmFsdWUubGluZWFnZV9kYWlseV9saW1pdCE9PWQuSW5maW5pdHkpLENlKDQpLG9yKGQubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdib3g/IllFUyI6Ik5PIiksQ2UoNCksb3IoZC5saWNlbmNlU3RhdGUudmFsdWUuZmlsZVVw'@; put 'bG9hZD8iWUVTIjoiTk8iKSxDZSg0KSxvcihkLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0UmVjb3JkPyJZRVMiOiJOTyIpLENlKDQpLG9yKGQubGljZW5jZVN0YXRlLnZhbHVlLmFkZFJlY29yZD8iWUVTIjoiTk8iKSxDZSgyKSxSZSgibmdJZiIsMT09PShudWxsPT1kLmVudmlyb25tZW50SW5m'@; put 'bz9udWxsOmQuZW52aXJvbm1lbnRJbmZvLklTQURNSU4pKSxDZSgxKSxSZSgiY2xyTW9kYWxPcGVuIixkLnJlc3BvbnNlTW9kYWwpLENlKDQpLGdyKCIgIixkLnJlc3BvbnNlLCIgIikpfSxkZXBlbmRlbmNpZXM6W1ppLEJ1LG91LHN1LFp1LGRoXSxzdHlsZXM6WyIuY29udGVudC1ib3hbX25n'@; put 'Y29udGVudC0lQ09NUCVde21heC13aWR0aDoxMjg5cHh9LnN5cy1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGRpdltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxfS5zeXMtaW5mb1tfbmdjb250ZW50LSVDT01QJV0gICBkaXZbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZCgyKXttYXJn'@; put 'aW46MCAzMHB4fS5hZG1pbi1hY3Rpb25bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo1cHggMTBweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MXB4IHNvbGlkICNkZWRlZGU7'@; put 'bWFyZ2luLWJvdHRvbTo1cHh9LmFkbWluLWFjdGlvbltfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde21pbi13aWR0aDoxMDJweH0uZGFya1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzAwMH1AbWVkaWEgKG1heC13aWR0aDogOTkzcHgpey5zeXMtaW5m'@; put 'b1tfbmdjb250ZW50LSVDT01QJV0gICBkaXZbX25nY29udGVudC0lQ09NUCVdOm50aC1jaGlsZCgyKXttYXJnaW46MH0uc3lzLWluZm9bX25nY29udGVudC0lQ09NUCVdICAgZGl2W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MjBweCAwfX0iXX0pLGN9KSgpfV07bGV0IG8kZT0oKCk9Pntj'@; put 'bGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltoYy5mb3JDaGlsZChpJGUpLGhjXX0pLGN9KSgpLHMkZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5c'@; put 'dTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRzOltvbyxvJGUsX3VdfSksY30pKCk7ZnVuY3Rpb24gYSRlKGMsbCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsMTIpfWZ1bmN0aW9uIGwkZShj'@; put 'LGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1pY29uIiwxMykseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMik7cmV0dXJuIGguZ3JvdXBTZWFyY2g9IiIsanQoaC5ncm91cExpc3RPbkZpbHRlcigpKX0pLHllKCl9fWZ1bmN0aW9uIGMkZShjLGwpe2lm'@; put 'KDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDgsOSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLmdyb3VwU2VhcmNoPWgpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBC'@; put 'dChhKSxqdChWZSgpLmdyb3VwTGlzdE9uRmlsdGVyKCkpfSkseWUoKSxKZSg0LGEkZSwxLDAsImNsci1pY29uIiwxMCksSmUoNSxsJGUsMSwwLCJjbHItaWNvbiIsMTEpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMyksZD1WZSgpO0NlKDIpLFJlKCJuZ01vZGVsIixkLmdyb3VwU2VhcmNo'@; put 'KSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiB1JGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwxNSkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2Nv'@; put 'bnN0IGg9VmUoKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkuZ3JvdXBPbkNsaWNrKGgpKX0pLG1lKDEsInAiLDE2KSxxdCgyLCJjbHItaWNvbiIsMTcpLE5lKDMpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQsZD1WZSgpO2RyKCJ0YWJsZS1hY3RpdmUiLGEuR1JPVVBV'@; put 'Ukk9PT1kLmdyb3VwVXJpKSxDZSgzKSxncigiICIsYS5HUk9VUE5BTUUsIiAiKX19ZnVuY3Rpb24gZCRlKGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSx1JGUsNCwzLCJjbHItdHJlZS1ub2RlIiwxNCksenIoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLFJlKCJuZ0lmIiwhYS5o'@; put 'aWRkZW4pfX1mdW5jdGlvbiBoJGUoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDE4KSgxLCJzcGFuIiwxOSksTmUoMiwiIExvYWRpbmcuLi4gIikseWUoKSgpKX1mdW5jdGlvbiBmJGUoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDIxKSgxLCJkaXYiLDIyKSgyLCJ0YWJsZSIsMjQpKDMsInRib2R5'@; put 'IikoNCwidHIiKSg1LCJ0ZCIsMjUpKDYsInAiLDI2KSg3LCJiIiksTmUoOCkseWUoKSgpKCkoKSxtZSg5LCJ0ciIpKDEwLCJ0ZCIsMjUpKDExLCJpIiksTmUoMTIpLHllKCkoKSgpKCkoKSgpKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSg4KSxvcihhLmdyb3VwTmFtZSksQ2UoNCksb3IoYS5n'@; put 'cm91cERlc2N8fCJubyBkZXNjcmlwdGlvbiIpfX1mdW5jdGlvbiBwJGUoYyxsKXsxJmMmJihtZSgwLCJoNSIpLE5lKDEsIk5vIE1lbWJlcnMgUHJlc2VudCIpLHllKCkpfWZ1bmN0aW9uIGckZShjLGwpezEmYyYmKFZyKDApLG1lKDEsInRkIiwzMSkoMiwiYiIpLE5lKDMsIk5BTUUiKSx5ZSgp'@; put 'KCksbWUoNCwidGQiLDMxKSg1LCJiIiksTmUoNiwiRU1BSUwiKSx5ZSgpKCksbWUoNywidGQiLDMxKSg4LCJiIiksTmUoOSwiQ1JFQVRFRCIpLHllKCkoKSxtZSgxMCwidGQiLDMyKSgxMSwiYiIpLE5lKDEyLCJVUERBVEVEIikseWUoKSgpLHpyKCkpfWZ1bmN0aW9uIG0kZShjLGwpezEmYyYm'@; put 'KFZyKDApLG1lKDEsInRkIiwzMSkoMiwiYiIpLE5lKDMsIklEIikseWUoKSgpLG1lKDQsInRkIiwzMSkoNSwiYiIpLE5lKDYsIkRJU1BMQVkgTkFNRSIpLHllKCkoKSxtZSg3LCJ0ZCIsMzEpKDgsImIiKSxOZSg5LCJVU0VSIE5BTUUiKSx5ZSgpKCksenIoKSl9ZnVuY3Rpb24gdiRlKGMsbCl7'@; put 'aWYoMSZjJiYoVnIoMCksbWUoMSwidGQiLDMyKSxOZSgyKSx5ZSgpLG1lKDMsInRkIiwzMiksTmUoNCkseWUoKSxtZSg1LCJ0ZCIsMzIpLE5lKDYpLHllKCksbWUoNywidGQiLDMyKSxOZSg4KSx5ZSgpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdDtDZSgyKSxvcihhLk1FTUJF'@; put 'Uk5BTUUpLENlKDIpLG9yKGEuRU1BSUwpLENlKDIpLG9yKGEuTUVNQkVSQ1JFQVRFRCksQ2UoMiksb3IoYS5NRU1CRVJVUERBVEVEKX19ZnVuY3Rpb24gXyRlKGMsbCl7aWYoMSZjJiYoVnIoMCksbWUoMSwidGQiLDMyKSxOZSgyKSx5ZSgpLG1lKDMsInRkIiwzMiksTmUoNCkseWUoKSxtZSg1'@; put 'LCJ0ZCIsMzIpLE5lKDYpLHllKCksenIoKSksMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0O0NlKDIpLG9yKGEuSUQpLENlKDIpLG9yKGEuRElTUExBWU5BTUUpLENlKDIpLG9yKGEuVVNFUk5BTUUpfX1mdW5jdGlvbiBiJGUoYyxsKXtpZigxJmMmJihtZSgwLCJ0ciIsMzMpLEplKDEsdiRl'@; put 'LDksNCwibmctY29udGFpbmVyIiw1KSxKZSgyLF8kZSw3LDMsIm5nLWNvbnRhaW5lciIsNSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoNCk7UmUoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L3VzZXJzLyIrKGEuVVJJTUVNfHxhLklEKSksQ2UoMSksUmUoIm5nSWYi'@; put 'LGQuc2VydmVyVHlwZT09PWQuU2VydmVyVHlwZS5TYXM5KSxDZSgxKSxSZSgibmdJZiIsZC5zZXJ2ZXJUeXBlPT09ZC5TZXJ2ZXJUeXBlLlNhc2pzKX19ZnVuY3Rpb24geSRlKGMsbCl7aWYoMSZjJiYobWUoMCwidGFibGUiLDI5KSgxLCJ0aGVhZCIpKDIsInRyIiksSmUoMyxnJGUsMTMsMCwi'@; put 'bmctY29udGFpbmVyIiw1KSxKZSg0LG0kZSwxMCwwLCJuZy1jb250YWluZXIiLDUpLHllKCkoKSxtZSg1LCJ0Ym9keSIpLEplKDYsYiRlLDMsMywidHIiLDMwKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgzKSxSZSgibmdJZiIsYS5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNh'@; put 'czkpLENlKDEpLFJlKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2FzanMpLENlKDIpLFJlKCJuZ0Zvck9mIixhLmdyb3VwTWVtYmVycyl9fWZ1bmN0aW9uIHckZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIpKDEsImgzIiksTmUoMikseWUoKSxKZSgzLHAkZSwyLDAsImg1'@; put 'Iiw1KSxtZSg0LCJkaXYiLDI3KSxKZSg1LHkkZSw3LDMsInRhYmxlIiwyOCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMiksZ3IoIk1FTUJFUlMgKCIsYS5ncm91cE1lbWJlckNvdW50LCIpIiksQ2UoMSksUmUoIm5nSWYiLDA9PWEuZ3JvdXBNZW1iZXJDb3VudCksQ2UoMiksUmUo'@; put 'Im5nSWYiLDAhPWEuZ3JvdXBNZW1iZXJDb3VudCl9fWZ1bmN0aW9uIEMkZShjLGwpezEmYyYmKG1lKDAsImg1IiksTmUoMSwiTm8gTWVtYmVycyBQcmVzZW50IikseWUoKSl9ZnVuY3Rpb24gUyRlKGMsbCl7aWYoMSZjJiYobWUoMCwidHIiLDMzKSgxLCJ0ZCIsMzIpLE5lKDIpLHllKCkoKSks'@; put 'MiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O1JlKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi91c2Vycy8iK2EuTUVNQkVSSUQpLENlKDIpLG9yKGEuTUVNQkVSTkFNRSl9fWZ1bmN0aW9uIE0kZShjLGwpe2lmKDEmYyYmKG1lKDAsInRhYmxlIiwyOSkoMSwidGhlYWQiKSgyLCJ0ciIpKDMs'@; put 'InRkIikoNCwiYiIpLE5lKDUpLHllKCkoKSgpKCksbWUoNiwidGJvZHkiKSxKZSg3LFMkZSwzLDIsInRyIiwzMCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMyk7Q2UoNSksZ3IoIk1FTUJFUlMgKCIsYS5ncm91cE1lbWJlckNvdW50LCIpIiksQ2UoMiksUmUoIm5nRm9yT2YiLGEuZ3JvdXBN'@; put 'ZW1iZXJzKX19ZnVuY3Rpb24geCRlKGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IikoMSwiaDMiKSxOZSgyKSx5ZSgpLEplKDMsQyRlLDIsMCwiaDUiLDUpLG1lKDQsImRpdiIsMjcpLEplKDUsTSRlLDgsMiwidGFibGUiLDI4KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgyKSxvcihh'@; put 'Lmdyb3VwTmFtZSksQ2UoMSksUmUoIm5nSWYiLDA9PWEuZ3JvdXBNZW1iZXJDb3VudCksQ2UoMiksUmUoIm5nSWYiLDAhPWEuZ3JvdXBNZW1iZXJDb3VudCl9fWZ1bmN0aW9uIEUkZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIpLEplKDEsZiRlLDEzLDIsImRpdiIsMjApLG1lKDIsImRpdiIs'@; put 'MjEpKDMsImRpdiIsMjIpKDQsImRpdiIsMjMpLEplKDUsdyRlLDYsMywiZGl2Iiw1KSxKZSg2LHgkZSw2LDMsImRpdiIsNSkscXQoNywiYnIiKSx5ZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJZiIsYS5zZXJ2ZXJUeXBlIT09YS5TZXJ2ZXJUeXBlLlNhc1ZpeWEp'@; put 'LENlKDQpLFJlKCJuZ0lmIixhLnNlcnZlclR5cGUhPT1hLlNlcnZlclR5cGUuU2FzVml5YSksQ2UoMSksUmUoIm5nSWYiLGEuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXNWaXlhKX19bGV0IGVhZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsXyl7dGhpcy5zYXNTZXJ2'@; put 'aWNlPWEsdGhpcy5oZWxwZXJTZXJ2aWNlPWQsdGhpcy5yb3V0ZXI9aCx0aGlzLmxvY2F0aW9uPWYsdGhpcy5yb3V0ZT1fLHRoaXMuZ3JvdXBTZWFyY2g9IiIsdGhpcy5wYXJhbVByZXNlbnQ9ITEsdGhpcy5wYXJhbVVSST0iIix0aGlzLmdyb3VwVXJpPSIiLHRoaXMuZ3JvdXBOYW1lPSIiLHRo'@; put 'aXMuZ3JvdXBEZXNjPSIiLHRoaXMuc2FzanNDb25maWc9bmV3IHIxLlNBU2pzQ29uZmlnLHRoaXMuaXNWaXlhPSExLHRoaXMubG9hZGluZz0hMSx0aGlzLlNlcnZlclR5cGU9WmMuRCx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHRoaXMuc2VydmVy'@; put 'VHlwZT10aGlzLnNhc1NlcnZpY2UuZ2V0U2VydmVyVHlwZSgpLCJTQVNWSVlBIj09PXRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSYmKHRoaXMuaXNWaXlhPSEwKX1uZ09uSW5pdCgpe0duLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSJ2aWV3L3VzZXJuYXYvZ3JvdXBzIix2b2lkIDAhPT10'@; put 'aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkmJih0aGlzLnBhcmFtUHJlc2VudD0hMCx0aGlzLnBhcmFtVVJJPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSksR24udXNlcm5hdi5ncm91cExpc3QmJiF0aGlzLnBhcmFtUHJlc2VudD8odGhpcy5ncm91cHM9R24udXNlcm5hdi5n'@; put 'cm91cExpc3QsdGhpcy5ncm91cFNlYXJjaD1Hbi51c2VybmF2Lmdyb3VwU2VhcmNoKToodm9pZCAwPT09R24udXNlcm5hdi5ncm91cExpc3Q/KHRoaXMubG9hZGluZz0hMCx0aGlzLmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvZ3JvdXBzP2xp'@; put 'bWl0PTIwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oYT0+YS50ZXh0KCkpLnRoZW4oYT0+e2xldCBoPUpTT04ucGFyc2UoYSkuaXRlbXMubWFwKGY9Pih7R1JPVVBVUkk6Zi5pZCxHUk9VUE5BTUU6Zi5uYW1lLEdST1VQREVTQzpmLmRlc2NyaXB0aW9u'@; put 'fSkpO3RoaXMubG9hZGluZz0hMSx0aGlzLmdyb3Vwcz1oLEduLnVzZXJuYXYuZ3JvdXBMaXN0PWh9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL2dldGdyb3VwcyIsbnVsbCkudGhlbihhPT57dGhpcy5sb2FkaW5nPSExLHRoaXMuZ3JvdXBzPWEuZ3JvdXBzLEduLnVzZXJuYXYu'@; put 'Z3JvdXBMaXN0PWEuZ3JvdXBzfSkpOih0aGlzLmdyb3Vwcz1Hbi51c2VybmF2Lmdyb3VwTGlzdCx0aGlzLmdyb3VwU2VhcmNoPUduLnVzZXJuYXYuZ3JvdXBTZWFyY2gpLHRoaXMucGFyYW1QcmVzZW50JiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuaXNWaXlhP2ZldGNoKHRoaXMuc2FzanNDb25m'@; put 'aWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy9ncm91cHMvIit0aGlzLnBhcmFtVVJJKyIvbWVtYmVycz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGE9PmEudGV4dCgpKS50aGVuKGE9PntsZXQgZD1KU09OLnBhcnNlKGEpO3RoaXMubG9h'@; put 'ZGluZz0hMTtsZXQgaD1kLml0ZW1zLm1hcChmPT4oe01FTUJFUk5BTUU6Zi5uYW1lLE1FTUJFUklEOmYuaWR9KSk7dGhpcy5ncm91cE1lbWJlcnM9aCx0aGlzLmdyb3VwTWVtYmVyQ291bnQ9aC5sZW5ndGgsdGhpcy5ncm91cFVyaT10aGlzLnBhcmFtVVJJLHRoaXMuZ3JvdXBOYW1lPXRoaXMu'@; put 'cGFyYW1VUkl9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVyc2J5Z3JvdXAiLHtpd2FudDpbe2dyb3VwaWQ6dGhpcy5wYXJhbVVSSX1dfSkudGhlbihkPT57dGhpcy5ncm91cE1lbWJlcnM9ZC5zYXNtZW1iZXJzLHRoaXMuZ3JvdXBNZW1iZXJDb3VudD1kLnNh'@; put 'c21lbWJlcnMubGVuZ3RoLHZvaWQgMCE9PWQuc2FzbWVtYmVyc1swXSYmKHRoaXMubG9hZGluZz0hMSx0aGlzLmdyb3VwVXJpPWQuc2FzbWVtYmVyc1swXS5VUklNRU18fHRoaXMucGFyYW1VUkksdGhpcy5ncm91cE5hbWU9ZC5zYXNtZW1iZXJzWzBdLkdST1VQTkFNRSx0aGlzLmdyb3VwRGVz'@; put 'Yz1kLnNhc21lbWJlcnNbMF0uR1JPVVBERVNDLHRoaXMuZ3JvdXBOYW1lfHwodGhpcy5ncm91cE5hbWU9dGhpcy5wYXJhbVVSSSkpfSkpKX1ncm91cExpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5ncm91cHMsdGhpcy5ncm91cFNlYXJjaCwi'@; put 'R1JPVVBOQU1FIiksR24udXNlcm5hdi5ncm91cFNlYXJjaD10aGlzLmdyb3VwU2VhcmNofWdyb3VwT25DbGljayhhKXt0aGlzLmxvYWRpbmc9ITA7bGV0IGQ9dGhpcy5yb3V0ZXIudXJsO3RoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHRoaXMucGFyYW1QcmVzZW50P2Quc2xpY2UoMCxkLmxh'@; put 'c3RJbmRleE9mKCIvIikpKyIvIitlbmNvZGVVUkkoYS5HUk9VUFVSSSk6ZCsiLyIrZW5jb2RlVVJJKGEuR1JPVVBVUkkpKSx0aGlzLmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvZ3JvdXBzLyIrYS5HUk9VUFVSSSsiL21lbWJlcnM/bGltaXQ9'@; put 'MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IGY9SlNPTi5wYXJzZShoKTt0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cFVyaT1hLkdST1VQVVJJLHRoaXMuZ3JvdXBOYW1lPWEuR1JPVVBOQU1FLHRoaXMu'@; put 'Z3JvdXBEZXNjPWEuR1JPVVBERVNDO2xldCBfPWYuaXRlbXMubWFwKFQ9Pih7TUVNQkVSTkFNRTpULm5hbWUsTUVNQkVSSUQ6VC5pZH0pKTt0aGlzLmdyb3VwTWVtYmVycz1fLHRoaXMuZ3JvdXBNZW1iZXJDb3VudD1fLmxlbmd0aH0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2'@; put 'L3VzZXJtZW1iZXJzYnlncm91cCIse2l3YW50Olt7Z3JvdXBpZDphLkdST1VQVVJJfV19KS50aGVuKGY9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cFVyaT1hLkdST1VQVVJJLHRoaXMuZ3JvdXBOYW1lPWEuR1JPVVBOQU1FLHRoaXMuZ3JvdXBEZXNjPWEuR1JPVVBERVNDLHRoaXMuZ3Jv'@; put 'dXBNZW1iZXJzPWYuc2FzbWVtYmVycyx0aGlzLmdyb3VwTWVtYmVyQ291bnQ9Zi5zYXNtZW1iZXJzLmxlbmd0aH0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSh0dChvYSksdHQoVGMpLHR0KERzKSx0dChKZCksdHQoR2wpKX0sYy5cdTAyNzVjbXA9'@; put 'd3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWdyb3VwIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo3LHZhcnM6NCxjb25zdHM6W1sxLCJzaWRlYmFyLWhlaWdodCJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9y'@; put 'T2YiXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIsImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkZpbHRlciBieSBHcm91cHMiLCJu'@; put 'YW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJz'@; put 'aGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywidGFibGUtYWN0aXZlIiwiY2xpY2siLDQsIm5nSWYiXSxbMywiY2xpY2siXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLCJsaXN0LXBhZGRpbmciXSxbInNoYXBlIiwidXNlcnMiXSxbMSwibG9hZGluZ1Nw'@; put 'aW5uZXIiXSxbMSwic3Bpbm5lciJdLFsiY2xhc3MiLCJjbHItcm93Iiw0LCJuZ0lmIl0sWzEsImNsci1yb3ciXSxbMSwiY2xyLWNvbC04Il0sWzEsImNhcmQiLCJncm91cC1kYXRhIl0sWzEsInRhYmxlIiwiZ3JvdXAtaW5mbyJdLFsxLCJsZWZ0Il0sWzEsImdyb3VwLWluZm8tdGV4dCJdLFsx'@; put 'LCJ0YWJsZS1jb250YWluZXIiXSxbImNsYXNzIiwidGFibGUgbWVtYmVyLXRhYmxlIiw0LCJuZ0lmIl0sWzEsInRhYmxlIiwibWVtYmVyLXRhYmxlIl0sWzMsInJvdXRlckxpbmsiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJ3aWR0aC0yNSJdLFsxLCIiXSxbMywicm91dGVyTGluayJdXSx0'@; put 'ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImFwcC1zaWRlYmFyIiwwKSgxLCJjbHItdHJlZSIpLEplKDIsYyRlLDYsMywiY2xyLXRyZWUtbm9kZSIsMSksSmUoMyxkJGUsMiwxLCJuZy1jb250YWluZXIiLDIpLHllKCkoKSxtZSg0LCJkaXYiLDMpLEplKDUsaCRlLDMsMCwiZGl2'@; put 'Iiw0KSxKZSg2LEUkZSw4LDMsImRpdiIsNSkseWUoKSksMiZhJiYoQ2UoMiksUmUoIm5nSWYiLGQuZ3JvdXBzKSxDZSgxKSxSZSgibmdGb3JPZiIsZC5ncm91cHMpLENlKDIpLFJlKCJuZ0lmIixkLmxvYWRpbmcpLENlKDEpLFJlKCJuZ0lmIixkLmdyb3VwTWVtYmVycyYmIWQubG9hZGluZykp'@; put 'fSxkZXBlbmRlbmNpZXM6W3hzLFppLEJ1LFdhLEJzLE9zLGRkLGcxLGthLGYxLG4zXSxzdHlsZXM6WyIuc2lkZWJhci1oZWlnaHRbX25nY29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlfS5ncm91cC1pbmZvLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lO2ZvbnQtc2l6'@; put 'ZToyMHB4fS5ncm91cC1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyOjFweCBzb2xpZCAjYTdhN2E3O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9Lmdyb3VwLWluZm9bX25nY29udGVudC0lQ09NUCVd'@; put 'ICAgdGRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyOjFweCBzb2xpZCAjYTdhN2E3O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNXB4ICNk'@; put 'YWQ3ZDd9Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6YXV0b30uZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXt0'@; put 'ZXh0LWFsaWduOmNlbnRlcn0uZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICAubWVtYmVyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7d2lkdGg6MTAwJX0uZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICAubWVtYmVyLXRhYmxl'@; put 'W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoZWFkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNkYWRhZGF9Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgLm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0Ym9keVtfbmdjb250ZW50LSVDT01QJV0g'@; put 'ICB0cltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2O2N1cnNvcjpwb2ludGVyfS50YWJsZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmF1dG99QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5ncm91cC1k'@; put 'YXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OnVuc2V0IWltcG9ydGFudH19Il19KSxjfSkoKTtmdW5jdGlvbiBrJGUoKXt9ZnVuY3Rpb24geVUoYyl7cmV0dXJuIG51bGw9PWM/ayRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihjKX19ZnVuY3Rpb24gdGFl'@; put 'KGMpe3JldHVybiBudWxsPT1jP1tdOkFycmF5LmlzQXJyYXkoYyk/YzpBcnJheS5mcm9tKGMpfWZ1bmN0aW9uIFQkZSgpe3JldHVybltdfWZ1bmN0aW9uIG5hZShjKXtyZXR1cm4gbnVsbD09Yz9UJGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKGMpfX1mdW5jdGlv'@; put 'biByYWUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyhjKX19ZnVuY3Rpb24gaWFlKGMpe3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gbC5tYXRjaGVzKGMpfX12YXIgTCRlPUFycmF5LnByb3RvdHlwZS5maW5kO2Z1bmN0aW9uIE8kZSgpe3JldHVybiB0aGlzLmZp'@; put 'cnN0RWxlbWVudENoaWxkfXZhciBGJGU9QXJyYXkucHJvdG90eXBlLmZpbHRlcjtmdW5jdGlvbiBIJGUoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNoaWxkcmVuKX1mdW5jdGlvbiBvYWUoYyl7cmV0dXJuIG5ldyBBcnJheShjLmxlbmd0aCl9ZnVuY3Rpb24gb1QoYyxsKXt0aGlzLm93bmVy'@; put 'RG9jdW1lbnQ9Yy5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPWMubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9Yyx0aGlzLl9fZGF0YV9fPWx9ZnVuY3Rpb24gVSRlKGMsbCxhLGQsaCxmKXtmb3IodmFyIFQsXz0wLFc9bC5sZW5ndGgsaWU9Zi5sZW5n'@; put 'dGg7XzxpZTsrK18pKFQ9bFtfXSk/KFQuX19kYXRhX189ZltfXSxkW19dPVQpOmFbX109bmV3IG9UKGMsZltfXSk7Zm9yKDtfPFc7KytfKShUPWxbX10pJiYoaFtfXT1UKX1mdW5jdGlvbiBaJGUoYyxsLGEsZCxoLGYsXyl7dmFyIFQsVyxaZSxpZT1uZXcgTWFwLHBlPWwubGVuZ3RoLHdlPWYu'@; put 'bGVuZ3RoLEVlPW5ldyBBcnJheShwZSk7Zm9yKFQ9MDtUPHBlOysrVCkoVz1sW1RdKSYmKEVlW1RdPVplPV8uY2FsbChXLFcuX19kYXRhX18sVCxsKSsiIixpZS5oYXMoWmUpP2hbVF09VzppZS5zZXQoWmUsVykpO2ZvcihUPTA7VDx3ZTsrK1QpWmU9Xy5jYWxsKGMsZltUXSxULGYpKyIiLChX'@; put 'PWllLmdldChaZSkpPyhkW1RdPVcsVy5fX2RhdGFfXz1mW1RdLGllLmRlbGV0ZShaZSkpOmFbVF09bmV3IG9UKGMsZltUXSk7Zm9yKFQ9MDtUPHBlOysrVCkoVz1sW1RdKSYmaWUuZ2V0KEVlW1RdKT09PVcmJihoW1RdPVcpfWZ1bmN0aW9uIFkkZShjKXtyZXR1cm4gYy5fX2RhdGFfX31mdW5j'@; put 'dGlvbiBHJGUoYyl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBjJiYibGVuZ3RoImluIGM/YzpBcnJheS5mcm9tKGMpfWZ1bmN0aW9uIFEkZShjLGwpe3JldHVybiBjPGw/LTE6Yz5sPzE6Yz49bD8wOk5hTn1vVC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOm9ULGFwcGVuZENoaWxkOmZ1bmN0aW9u'@; put 'KGMpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKGMsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihjLGwpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKGMsbCl9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuX3BhcmVudC5x'@; put 'dWVyeVNlbGVjdG9yKGMpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbChjKX19O3ZhciB3VT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7Y29uc3Qgc2FlPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv'@; put 'c3ZnIix4aHRtbDp3VSx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9O2Z1bmN0aW9uIHNUKGMpe3ZhciBsPWMrPSIiLGE9bC5p'@; put 'bmRleE9mKCI6Iik7cmV0dXJuIGE+PTAmJiJ4bWxucyIhPT0obD1jLnNsaWNlKDAsYSkpJiYoYz1jLnNsaWNlKGErMSkpLHNhZS5oYXNPd25Qcm9wZXJ0eShsKT97c3BhY2U6c2FlW2xdLGxvY2FsOmN9OmN9ZnVuY3Rpb24gc3FlKGMpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0'@; put 'cmlidXRlKGMpfX1mdW5jdGlvbiBhcWUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhjLnNwYWNlLGMubG9jYWwpfX1mdW5jdGlvbiBscWUoYyxsKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZShjLGwpfX1mdW5jdGlvbiBjcWUoYyxsKXty'@; put 'ZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKGMuc3BhY2UsYy5sb2NhbCxsKX19ZnVuY3Rpb24gdXFlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9bC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09YT90aGlzLnJlbW92ZUF0dHJpYnV0ZShjKTp0aGlzLnNldEF0'@; put 'dHJpYnV0ZShjLGEpfX1mdW5jdGlvbiBkcWUoYyxsKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1hP3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoYy5zcGFjZSxjLmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKGMuc3BhY2UsYy5sb2NhbCxh'@; put 'KX19ZnVuY3Rpb24gYWFlKGMpe3JldHVybiBjLm93bmVyRG9jdW1lbnQmJmMub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8Yy5kb2N1bWVudCYmY3x8Yy5kZWZhdWx0Vmlld31mdW5jdGlvbiBmcWUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShjKX19'@; put 'ZnVuY3Rpb24gcHFlKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KGMsbCxhKX19ZnVuY3Rpb24gZ3FlKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1kP3RoaXMuc3R5bGUucmVtb3ZlUHJv'@; put 'cGVydHkoYyk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShjLGQsYSl9fWZ1bmN0aW9uIFk3KGMsbCl7cmV0dXJuIGMuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShsKXx8YWFlKGMpLmdldENvbXB1dGVkU3R5bGUoYyxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGwpfWZ1bmN0aW9uIHZxZShjKXtyZXR1'@; put 'cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tjXX19ZnVuY3Rpb24gX3FlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1tjXT1sfX1mdW5jdGlvbiBicWUoYyxsKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1hP2RlbGV0ZSB0aGlzW2Nd'@; put 'OnRoaXNbY109YX19ZnVuY3Rpb24gbGFlKGMpe3JldHVybiBjLnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBDVShjKXtyZXR1cm4gYy5jbGFzc0xpc3R8fG5ldyBjYWUoYyl9ZnVuY3Rpb24gY2FlKGMpe3RoaXMuX25vZGU9Yyx0aGlzLl9uYW1lcz1sYWUoYy5nZXRBdHRyaWJ1dGUo'@; put 'ImNsYXNzIil8fCIiKX1mdW5jdGlvbiB1YWUoYyxsKXtmb3IodmFyIGE9Q1UoYyksZD0tMSxoPWwubGVuZ3RoOysrZDxoOylhLmFkZChsW2RdKX1mdW5jdGlvbiBkYWUoYyxsKXtmb3IodmFyIGE9Q1UoYyksZD0tMSxoPWwubGVuZ3RoOysrZDxoOylhLnJlbW92ZShsW2RdKX1mdW5jdGlvbiB3'@; put 'cWUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dWFlKHRoaXMsYyl9fWZ1bmN0aW9uIENxZShjKXtyZXR1cm4gZnVuY3Rpb24oKXtkYWUodGhpcyxjKX19ZnVuY3Rpb24gU3FlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7KGwuYXBwbHkodGhpcyxhcmd1bWVudHMpP3VhZTpkYWUpKHRoaXMsYyl9fWZ1'@; put 'bmN0aW9uIHhxZSgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gRXFlKGMpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9Y319ZnVuY3Rpb24ga3FlKGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBsPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRl'@; put 'bnQ9bD8/IiJ9fWZ1bmN0aW9uIFRxZSgpe3RoaXMuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIERxZShjKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD1jfX1mdW5jdGlvbiBJcWUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5p'@; put 'bm5lckhUTUw9bD8/IiJ9fWZ1bmN0aW9uIFJxZSgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBQcWUoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50'@; put 'Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBIcWUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9dGhpcy5vd25lckRvY3VtZW50LGE9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIGE9PT13VSYmbC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09d1U/bC5jcmVhdGVFbGVtZW50KGMp'@; put 'OmwuY3JlYXRlRWxlbWVudE5TKGEsYyl9fWZ1bmN0aW9uIE5xZShjKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhjLnNwYWNlLGMubG9jYWwpfX1mdW5jdGlvbiBoYWUoYyl7dmFyIGw9c1QoYyk7cmV0dXJuKGwubG9jYWw/TnFl'@; put 'OkhxZSkobCl9ZnVuY3Rpb24gQnFlKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24genFlKCl7dmFyIGM9dGhpcy5wYXJlbnROb2RlO2MmJmMucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gWnFlKCl7dmFyIGM9dGhpcy5jbG9uZU5vZGUoITEpLGw9dGhpcy5wYXJlbnROb2RlO3JldHVybiBsP2wu'@; put 'aW5zZXJ0QmVmb3JlKGMsdGhpcy5uZXh0U2libGluZyk6Y31mdW5jdGlvbiBZcWUoKXt2YXIgYz10aGlzLmNsb25lTm9kZSghMCksbD10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGw/bC5pbnNlcnRCZWZvcmUoYyx0aGlzLm5leHRTaWJsaW5nKTpjfWZ1bmN0aW9uIEtxZShjKXtyZXR1cm4gZnVu'@; put 'Y3Rpb24oKXt2YXIgbD10aGlzLl9fb247aWYobCl7Zm9yKHZhciBmLGE9MCxkPS0xLGg9bC5sZW5ndGg7YTxoOysrYSlmPWxbYV0sYy50eXBlJiZmLnR5cGUhPT1jLnR5cGV8fGYubmFtZSE9PWMubmFtZT9sWysrZF09Zjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZi50eXBlLGYubGlzdGVu'@; put 'ZXIsZi5vcHRpb25zKTsrK2Q/bC5sZW5ndGg9ZDpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gWHFlKGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaCxkPXRoaXMuX19vbixmPWZ1bmN0aW9uICRxZShjKXtyZXR1cm4gZnVuY3Rpb24obCl7Yy5jYWxsKHRoaXMsbCx0aGlzLl9fZGF0'@; put 'YV9fKX19KGwpO2lmKGQpZm9yKHZhciBfPTAsVD1kLmxlbmd0aDtfPFQ7KytfKWlmKChoPWRbX10pLnR5cGU9PT1jLnR5cGUmJmgubmFtZT09PWMubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGgudHlwZSxoLmxpc3RlbmVyLGgub3B0aW9ucyksdGhpcy5hZGRFdmVudExp'@; put 'c3RlbmVyKGgudHlwZSxoLmxpc3RlbmVyPWYsaC5vcHRpb25zPWEpLHZvaWQoaC52YWx1ZT1sKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYy50eXBlLGYsYSksaD17dHlwZTpjLnR5cGUsbmFtZTpjLm5hbWUsdmFsdWU6bCxsaXN0ZW5lcjpmLG9wdGlvbnM6YX0sZD9kLnB1c2goaCk6dGhpcy5f'@; put 'X29uPVtoXX19ZnVuY3Rpb24gZmFlKGMsbCxhKXt2YXIgZD1hYWUoYyksaD1kLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiBoP2g9bmV3IGgobCxhKTooaD1kLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLGE/KGguaW5pdEV2ZW50KGwsYS5idWJibGVzLGEuY2FuY2VsYWJs'@; put 'ZSksaC5kZXRhaWw9YS5kZXRhaWwpOmguaW5pdEV2ZW50KGwsITEsITEpKSxjLmRpc3BhdGNoRXZlbnQoaCl9ZnVuY3Rpb24gUXFlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGZhZSh0aGlzLGMsbCl9fWZ1bmN0aW9uIGVLZShjLGwpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBm'@; put 'YWUodGhpcyxjLGwuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19Y2FlLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKGMpe3RoaXMuX25hbWVzLmluZGV4T2YoYyk8MCYmKHRoaXMuX25hbWVzLnB1c2goYyksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIg'@; put 'IikpKX0scmVtb3ZlOmZ1bmN0aW9uKGMpe3ZhciBsPXRoaXMuX25hbWVzLmluZGV4T2YoYyk7bD49MCYmKHRoaXMuX25hbWVzLnNwbGljZShsLDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LGNvbnRhaW5zOmZ1bmN0aW9uKGMpe3Jl'@; put 'dHVybiB0aGlzLl9uYW1lcy5pbmRleE9mKGMpPj0wfX07dmFyIFNVPVtudWxsXTtmdW5jdGlvbiBYdShjLGwpe3RoaXMuX2dyb3Vwcz1jLHRoaXMuX3BhcmVudHM9bH1mdW5jdGlvbiBwYWUoKXtyZXR1cm4gbmV3IFh1KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sU1UpfVh1LnByb3Rv'@; put 'dHlwZT1wYWUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpYdSxzZWxlY3Q6ZnVuY3Rpb24gQSRlKGMpeyJmdW5jdGlvbiIhPXR5cGVvZiBjJiYoYz15VShjKSk7Zm9yKHZhciBsPXRoaXMuX2dyb3VwcyxhPWwubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7KytoKWZvcih2YXIgVyxpZSxm'@; put 'PWxbaF0sXz1mLmxlbmd0aCxUPWRbaF09bmV3IEFycmF5KF8pLHBlPTA7cGU8XzsrK3BlKShXPWZbcGVdKSYmKGllPWMuY2FsbChXLFcuX19kYXRhX18scGUsZikpJiYoIl9fZGF0YV9fImluIFcmJihpZS5fX2RhdGFfXz1XLl9fZGF0YV9fKSxUW3BlXT1pZSk7cmV0dXJuIG5ldyBYdShkLHRo'@; put 'aXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24gSSRlKGMpe2M9ImZ1bmN0aW9uIj09dHlwZW9mIGM/ZnVuY3Rpb24gRCRlKGMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0YWUoYy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0oYyk6bmFlKGMpO2Zvcih2YXIgbD10aGlzLl9ncm91'@; put 'cHMsYT1sLmxlbmd0aCxkPVtdLGg9W10sZj0wO2Y8YTsrK2YpZm9yKHZhciBXLF89bFtmXSxUPV8ubGVuZ3RoLGllPTA7aWU8VDsrK2llKShXPV9baWVdKSYmKGQucHVzaChjLmNhbGwoVyxXLl9fZGF0YV9fLGllLF8pKSxoLnB1c2goVykpO3JldHVybiBuZXcgWHUoZCxoKX0sc2VsZWN0Q2hp'@; put 'bGQ6ZnVuY3Rpb24gUCRlKGMpe3JldHVybiB0aGlzLnNlbGVjdChudWxsPT1jP08kZTpmdW5jdGlvbiBSJGUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEwkZS5jYWxsKHRoaXMuY2hpbGRyZW4sYyl9fSgiZnVuY3Rpb24iPT10eXBlb2YgYz9jOmlhZShjKSkpfSxzZWxlY3RDaGlsZHJl'@; put 'bjpmdW5jdGlvbiBWJGUoYyl7cmV0dXJuIHRoaXMuc2VsZWN0QWxsKG51bGw9PWM/SCRlOmZ1bmN0aW9uIE4kZShjKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRiRlLmNhbGwodGhpcy5jaGlsZHJlbixjKX19KCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M6aWFlKGMpKSl9LGZpbHRlcjpmdW5j'@; put 'dGlvbiBCJGUoYyl7ImZ1bmN0aW9uIiE9dHlwZW9mIGMmJihjPXJhZShjKSk7Zm9yKHZhciBsPXRoaXMuX2dyb3VwcyxhPWwubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7KytoKWZvcih2YXIgVyxmPWxbaF0sXz1mLmxlbmd0aCxUPWRbaF09W10saWU9MDtpZTxfOysraWUpKFc9Zltp'@; put 'ZV0pJiZjLmNhbGwoVyxXLl9fZGF0YV9fLGllLGYpJiZULnB1c2goVyk7cmV0dXJuIG5ldyBYdShkLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uIFckZShjLGwpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBBcnJheS5mcm9tKHRoaXMsWSRlKTt2YXIgYT1sP1okZTpVJGUsZD10'@; put 'aGlzLl9wYXJlbnRzLGg9dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiBjJiYoYz1mdW5jdGlvbiB6JGUoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGN9fShjKSk7Zm9yKHZhciBmPWgubGVuZ3RoLF89bmV3IEFycmF5KGYpLFQ9bmV3IEFycmF5KGYpLFc9bmV3IEFycmF5KGYp'@; put 'LGllPTA7aWU8ZjsrK2llKXt2YXIgcGU9ZFtpZV0sd2U9aFtpZV0sRWU9d2UubGVuZ3RoLFplPUckZShjLmNhbGwocGUscGUmJnBlLl9fZGF0YV9fLGllLGQpKSxpdD1aZS5sZW5ndGgsZXQ9VFtpZV09bmV3IEFycmF5KGl0KSx5dD1fW2llXT1uZXcgQXJyYXkoaXQpO2EocGUsd2UsZXQseXQs'@; put 'V1tpZV09bmV3IEFycmF5KEVlKSxaZSxsKTtmb3IodmFyIG5uLHZuLFN0PTAsSnQ9MDtTdDxpdDsrK1N0KWlmKG5uPWV0W1N0XSl7Zm9yKFN0Pj1KdCYmKEp0PVN0KzEpOyEodm49eXRbSnRdKSYmKytKdDxpdDspO25uLl9uZXh0PXZufHxudWxsfX1yZXR1cm4oXz1uZXcgWHUoXyxkKSkuX2Vu'@; put 'dGVyPVQsXy5fZXhpdD1XLF99LGVudGVyOmZ1bmN0aW9uIGokZSgpe3JldHVybiBuZXcgWHUodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAob2FlKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbiAkJGUoKXtyZXR1cm4gbmV3IFh1KHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5t'@; put 'YXAob2FlKSx0aGlzLl9wYXJlbnRzKX0sam9pbjpmdW5jdGlvbiBxJGUoYyxsLGEpe3ZhciBkPXRoaXMuZW50ZXIoKSxoPXRoaXMsZj10aGlzLmV4aXQoKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYz8oZD1jKGQpKSYmKGQ9ZC5zZWxlY3Rpb24oKSk6ZD1kLmFwcGVuZChjKyIiKSxudWxs'@; put 'IT1sJiYoaD1sKGgpKSYmKGg9aC5zZWxlY3Rpb24oKSksbnVsbD09YT9mLnJlbW92ZSgpOmEoZiksZCYmaD9kLm1lcmdlKGgpLm9yZGVyKCk6aH0sbWVyZ2U6ZnVuY3Rpb24gSyRlKGMpe2Zvcih2YXIgbD1jLnNlbGVjdGlvbj9jLnNlbGVjdGlvbigpOmMsYT10aGlzLl9ncm91cHMsZD1sLl9n'@; put 'cm91cHMsaD1hLmxlbmd0aCxfPU1hdGgubWluKGgsZC5sZW5ndGgpLFQ9bmV3IEFycmF5KGgpLFc9MDtXPF87KytXKWZvcih2YXIgWmUsaWU9YVtXXSxwZT1kW1ddLHdlPWllLmxlbmd0aCxFZT1UW1ddPW5ldyBBcnJheSh3ZSksaXQ9MDtpdDx3ZTsrK2l0KShaZT1pZVtpdF18fHBlW2l0XSkm'@; put 'JihFZVtpdF09WmUpO2Zvcig7VzxoOysrVylUW1ddPWFbV107cmV0dXJuIG5ldyBYdShULHRoaXMuX3BhcmVudHMpfSxzZWxlY3Rpb246ZnVuY3Rpb24gcktlKCl7cmV0dXJuIHRoaXN9LG9yZGVyOmZ1bmN0aW9uIFgkZSgpe2Zvcih2YXIgYz10aGlzLl9ncm91cHMsbD0tMSxhPWMubGVuZ3Ro'@; put 'OysrbDxhOylmb3IodmFyIF8sZD1jW2xdLGg9ZC5sZW5ndGgtMSxmPWRbaF07LS1oPj0wOykoXz1kW2hdKSYmKGYmJjReXy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihmKSYmZi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShfLGYpLGY9Xyk7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24gSiRl'@; put 'KGMpe2Z1bmN0aW9uIGwod2UsRWUpe3JldHVybiB3ZSYmRWU/Yyh3ZS5fX2RhdGFfXyxFZS5fX2RhdGFfXyk6IXdlLSFFZX1jfHwoYz1RJGUpO2Zvcih2YXIgYT10aGlzLl9ncm91cHMsZD1hLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkOysrZil7Zm9yKHZhciBpZSxfPWFbZl0sVD1f'@; put 'Lmxlbmd0aCxXPWhbZl09bmV3IEFycmF5KFQpLHBlPTA7cGU8VDsrK3BlKShpZT1fW3BlXSkmJihXW3BlXT1pZSk7Vy5zb3J0KGwpfXJldHVybiBuZXcgWHUoaCx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uIGVxZSgpe3ZhciBjPWFyZ3VtZW50c1swXTtyZXR1cm4gYXJn'@; put 'dW1lbnRzWzBdPXRoaXMsYy5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24gdHFlKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcyl9LG5vZGU6ZnVuY3Rpb24gbnFlKCl7Zm9yKHZhciBjPXRoaXMuX2dyb3VwcyxsPTAsYT1jLmxlbmd0aDtsPGE7KytsKWZvcih2YXIg'@; put 'ZD1jW2xdLGg9MCxmPWQubGVuZ3RoO2g8ZjsrK2gpe3ZhciBfPWRbaF07aWYoXylyZXR1cm4gX31yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBycWUoKXtsZXQgYz0wO2Zvcihjb25zdCBsIG9mIHRoaXMpKytjO3JldHVybiBjfSxlbXB0eTpmdW5jdGlvbiBpcWUoKXtyZXR1cm4hdGhpcy5u'@; put 'b2RlKCl9LGVhY2g6ZnVuY3Rpb24gb3FlKGMpe2Zvcih2YXIgbD10aGlzLl9ncm91cHMsYT0wLGQ9bC5sZW5ndGg7YTxkOysrYSlmb3IodmFyIFQsaD1sW2FdLGY9MCxfPWgubGVuZ3RoO2Y8XzsrK2YpKFQ9aFtmXSkmJmMuY2FsbChULFQuX19kYXRhX18sZixoKTtyZXR1cm4gdGhpc30sYXR0'@; put 'cjpmdW5jdGlvbiBocWUoYyxsKXt2YXIgYT1zVChjKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBkPXRoaXMubm9kZSgpO3JldHVybiBhLmxvY2FsP2QuZ2V0QXR0cmlidXRlTlMoYS5zcGFjZSxhLmxvY2FsKTpkLmdldEF0dHJpYnV0ZShhKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1s'@; put 'P2EubG9jYWw/YXFlOnNxZToiZnVuY3Rpb24iPT10eXBlb2YgbD9hLmxvY2FsP2RxZTp1cWU6YS5sb2NhbD9jcWU6bHFlKShhLGwpKX0sc3R5bGU6ZnVuY3Rpb24gbXFlKGMsbCxhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bD9mcWU6ImZ1bmN0aW9uIj09'@; put 'dHlwZW9mIGw/Z3FlOnBxZSkoYyxsLGE/PyIiKSk6WTcodGhpcy5ub2RlKCksYyl9LHByb3BlcnR5OmZ1bmN0aW9uIHlxZShjLGwpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1sP3ZxZToiZnVuY3Rpb24iPT10eXBlb2YgbD9icWU6X3FlKShjLGwpKTp0aGlz'@; put 'Lm5vZGUoKVtjXX0sY2xhc3NlZDpmdW5jdGlvbiBNcWUoYyxsKXt2YXIgYT1sYWUoYysiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIGQ9Q1UodGhpcy5ub2RlKCkpLGg9LTEsZj1hLmxlbmd0aDsrK2g8ZjspaWYoIWQuY29udGFpbnMoYVtoXSkpcmV0dXJuITE7cmV0dXJuITB9'@; put 'cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGw/U3FlOmw/d3FlOkNxZSkoYSxsKSl9LHRleHQ6ZnVuY3Rpb24gQXFlKGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT1jP3hxZTooImZ1bmN0aW9uIj09dHlwZW9mIGM/a3FlOkVxZSkoYykpOnRo'@; put 'aXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uIExxZShjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09Yz9UcWU6KCJmdW5jdGlvbiI9PXR5cGVvZiBjP0lxZTpEcWUpKGMpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIE9x'@; put 'ZSgpe3JldHVybiB0aGlzLmVhY2goUnFlKX0sbG93ZXI6ZnVuY3Rpb24gRnFlKCl7cmV0dXJuIHRoaXMuZWFjaChQcWUpfSxhcHBlbmQ6ZnVuY3Rpb24gVnFlKGMpe3ZhciBsPSJmdW5jdGlvbiI9PXR5cGVvZiBjP2M6aGFlKGMpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVy'@; put 'biB0aGlzLmFwcGVuZENoaWxkKGwuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfSxpbnNlcnQ6ZnVuY3Rpb24ganFlKGMsbCl7dmFyIGE9ImZ1bmN0aW9uIj09dHlwZW9mIGM/YzpoYWUoYyksZD1udWxsPT1sP0JxZToiZnVuY3Rpb24iPT10eXBlb2YgbD9sOnlVKGwpO3JldHVybiB0aGlzLnNl'@; put 'bGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShhLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX0scmVtb3ZlOmZ1bmN0aW9uIFVxZSgpe3JldHVybiB0aGlzLmVhY2goenFlKX0sY2xvbmU6ZnVuY3Rpb24gV3FlKGMp'@; put 'e3JldHVybiB0aGlzLnNlbGVjdChjP1lxZTpacWUpfSxkYXR1bTpmdW5jdGlvbiBHcWUoYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLGMpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbiBKcWUoYyxsLGEpe3ZhciBoLF8sZD1mdW5j'@; put 'dGlvbiBxcWUoYyl7cmV0dXJuIGMudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcChmdW5jdGlvbihsKXt2YXIgYT0iIixkPWwuaW5kZXhPZigiLiIpO3JldHVybiBkPj0wJiYoYT1sLnNsaWNlKGQrMSksbD1sLnNsaWNlKDAsZCkpLHt0eXBlOmwsbmFtZTphfX0pfShjKyIiKSxmPWQubGVuZ3Ro'@; put 'O2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKFQ9bD9YcWU6S3FlLGg9MDtoPGY7KytoKXRoaXMuZWFjaChUKGRbaF0sbCxhKSk7cmV0dXJuIHRoaXN9dmFyIFQ9dGhpcy5ub2RlKCkuX19vbjtpZihUKWZvcih2YXIgcGUsVz0wLGllPVQubGVuZ3RoO1c8aWU7KytXKWZvcihoPTAscGU9'@; put 'VFtXXTtoPGY7KytoKWlmKChfPWRbaF0pLnR5cGU9PT1wZS50eXBlJiZfLm5hbWU9PT1wZS5uYW1lKXJldHVybiBwZS52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24gdEtlKGMsbCl7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGw/ZUtlOlFxZSkoYyxsKSl9LFtTeW1ib2wu'@; put 'aXRlcmF0b3JdOmZ1bmN0aW9uKm5LZSgpe2Zvcih2YXIgYz10aGlzLl9ncm91cHMsbD0wLGE9Yy5sZW5ndGg7bDxhOysrbClmb3IodmFyIF8sZD1jW2xdLGg9MCxmPWQubGVuZ3RoO2g8ZjsrK2gpKF89ZFtoXSkmJih5aWVsZCBfKX19O2NvbnN0IFlnPXBhZTtmdW5jdGlvbiBNVShjKXtyZXR1'@; put 'cm4ic3RyaW5nIj09dHlwZW9mIGM/bmV3IFh1KFtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGMpXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IFh1KFt0YWUoYyldLFNVKX1mdW5jdGlvbiBrcyhjKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGM/bmV3IFh1KFtbZG9jdW1lbnQu'@; put 'cXVlcnlTZWxlY3RvcihjKV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgWHUoW1tjXV0sU1UpfXZhciBpS2U9e3ZhbHVlOigpPT57fX07ZnVuY3Rpb24gZ2FlKCl7Zm9yKHZhciBkLGM9MCxsPWFyZ3VtZW50cy5sZW5ndGgsYT17fTtjPGw7KytjKXtpZighKGQ9YXJndW1lbnRz'@; put 'W2NdKyIiKXx8ZCBpbiBhfHwvW1xzLl0vLnRlc3QoZCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrZCk7YVtkXT1bXX1yZXR1cm4gbmV3IGFUKGEpfWZ1bmN0aW9uIGFUKGMpe3RoaXMuXz1jfWZ1bmN0aW9uIHNLZShjLGwpe2Zvcih2YXIgaCxhPTAsZD1jLmxlbmd0aDthPGQ7'@; put 'KythKWlmKChoPWNbYV0pLm5hbWU9PT1sKXJldHVybiBoLnZhbHVlfWZ1bmN0aW9uIG1hZShjLGwsYSl7Zm9yKHZhciBkPTAsaD1jLmxlbmd0aDtkPGg7KytkKWlmKGNbZF0ubmFtZT09PWwpe2NbZF09aUtlLGM9Yy5zbGljZSgwLGQpLmNvbmNhdChjLnNsaWNlKGQrMSkpO2JyZWFrfXJldHVy'@; put 'biBudWxsIT1hJiZjLnB1c2goe25hbWU6bCx2YWx1ZTphfSksY31hVC5wcm90b3R5cGU9Z2FlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6YVQsb246ZnVuY3Rpb24oYyxsKXt2YXIgaCxhPXRoaXMuXyxkPWZ1bmN0aW9uIG9LZShjLGwpe3JldHVybiBjLnRyaW0oKS5zcGxpdCgvXnxccysvKS5t'@; put 'YXAoZnVuY3Rpb24oYSl7dmFyIGQ9IiIsaD1hLmluZGV4T2YoIi4iKTtpZihoPj0wJiYoZD1hLnNsaWNlKGgrMSksYT1hLnNsaWNlKDAsaCkpLGEmJiFsLmhhc093blByb3BlcnR5KGEpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2EpO3JldHVybnt0eXBlOmEsbmFtZTpkfX0p'@; put 'fShjKyIiLGEpLGY9LTEsXz1kLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWwmJiJmdW5jdGlvbiIhPXR5cGVvZiBsKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIitsKTtmb3IoOysrZjxfOylpZihoPShjPWRbZl0pLnR5cGUpYVtoXT1tYWUo'@; put 'YVtoXSxjLm5hbWUsbCk7ZWxzZSBpZihudWxsPT1sKWZvcihoIGluIGEpYVtoXT1tYWUoYVtoXSxjLm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK2Y8XzspaWYoKGg9KGM9ZFtmXSkudHlwZSkmJihoPXNLZShhW2hdLGMubmFtZSkpKXJldHVybiBofSxjb3B5OmZ1bmN0aW9uKCl7dmFy'@; put 'IGM9e30sbD10aGlzLl87Zm9yKHZhciBhIGluIGwpY1thXT1sW2FdLnNsaWNlKCk7cmV0dXJuIG5ldyBhVChjKX0sY2FsbDpmdW5jdGlvbihjLGwpe2lmKChoPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIGgsZixhPW5ldyBBcnJheShoKSxkPTA7ZDxoOysrZClhW2RdPWFyZ3VtZW50'@; put 'c1tkKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoYykpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrYyk7Zm9yKGQ9MCxoPShmPXRoaXMuX1tjXSkubGVuZ3RoO2Q8aDsrK2QpZltkXS52YWx1ZS5hcHBseShsLGEpfSxhcHBseTpmdW5jdGlvbihjLGwsYSl7aWYoIXRoaXMu'@; put 'Xy5oYXNPd25Qcm9wZXJ0eShjKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitjKTtmb3IodmFyIGQ9dGhpcy5fW2NdLGg9MCxmPWQubGVuZ3RoO2g8ZjsrK2gpZFtoXS52YWx1ZS5hcHBseShsLGEpfX07Y29uc3QgeFU9Z2FlO3ZhciBsVCxodyxXNz0wLHV3PTAsZHc9MCx2YWU9'@; put 'MWUzLGNUPTAsV2c9MCx1VD0wLGZ3PSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLF9hZT0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlv'@; put 'bkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbihjKXtzZXRUaW1lb3V0KGMsMTcpfTtmdW5jdGlvbiBFVSgpe3JldHVybiBXZ3x8KF9hZShhS2UpLFdnPWZ3Lm5vdygpK3VUKX1mdW5jdGlvbiBhS2UoKXtXZz0wfWZ1bmN0aW9uIGRUKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25l'@; put 'eHQ9bnVsbH1mdW5jdGlvbiBiYWUoYyxsLGEpe3ZhciBkPW5ldyBkVDtyZXR1cm4gZC5yZXN0YXJ0KGMsbCxhKSxkfWZ1bmN0aW9uIHlhZSgpe1dnPShjVD1mdy5ub3coKSkrdVQsVzc9dXc9MDt0cnl7IWZ1bmN0aW9uIGxLZSgpe0VVKCksKytXNztmb3IodmFyIGwsYz1sVDtjOykobD1XZy1j'@; put 'Ll90aW1lKT49MCYmYy5fY2FsbC5jYWxsKHZvaWQgMCxsKSxjPWMuX25leHQ7LS1XN30oKX1maW5hbGx5e1c3PTAsZnVuY3Rpb24gdUtlKCl7Zm9yKHZhciBjLGEsbD1sVCxkPTEvMDtsOylsLl9jYWxsPyhkPmwuX3RpbWUmJihkPWwuX3RpbWUpLGM9bCxsPWwuX25leHQpOihhPWwuX25leHQs'@; put 'bC5fbmV4dD1udWxsLGw9Yz9jLl9uZXh0PWE6bFQ9YSk7aHc9YyxrVShkKX0oKSxXZz0wfX1mdW5jdGlvbiBjS2UoKXt2YXIgYz1mdy5ub3coKSxsPWMtY1Q7bD52YWUmJih1VC09bCxjVD1jKX1mdW5jdGlvbiBrVShjKXtXN3x8KHV3JiYodXc9Y2xlYXJUaW1lb3V0KHV3KSksYy1XZz4yND8o'@; put 'YzwxLzAmJih1dz1zZXRUaW1lb3V0KHlhZSxjLWZ3Lm5vdygpLXVUKSksZHcmJihkdz1jbGVhckludGVydmFsKGR3KSkpOihkd3x8KGNUPWZ3Lm5vdygpLGR3PXNldEludGVydmFsKGNLZSx2YWUpKSxXNz0xLF9hZSh5YWUpKSl9ZnVuY3Rpb24gaFQoYyxsLGEpe3ZhciBkPW5ldyBkVDtyZXR1'@; put 'cm4gZC5yZXN0YXJ0KGg9PntkLnN0b3AoKSxjKGgrbCl9LGw9bnVsbD09bD8wOitsLGEpLGR9ZFQucHJvdG90eXBlPWJhZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmRULHJlc3RhcnQ6ZnVuY3Rpb24oYyxsLGEpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'ImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uIik7YT0obnVsbD09YT9FVSgpOithKSsobnVsbD09bD8wOitsKSwhdGhpcy5fbmV4dCYmaHchPT10aGlzJiYoaHc/aHcuX25leHQ9dGhpczpsVD10aGlzLGh3PXRoaXMpLHRoaXMuX2NhbGw9Yyx0aGlzLl90aW1lPWEsa1UoKX0sc3RvcDpmdW5j'@; put 'dGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsa1UoKSl9fTt2YXIgZEtlPXhVKCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLGhLZT1bXSx3YWU9MCxUVT0yLGZUPTMsRFU9NSxwVD02O2Z1bmN0aW9uIGdUKGMsbCxhLGQsaCxmKXt2'@; put 'YXIgXz1jLl9fdHJhbnNpdGlvbjtpZihfKXtpZihhIGluIF8pcmV0dXJufWVsc2UgYy5fX3RyYW5zaXRpb249e307IWZ1bmN0aW9uIGZLZShjLGwsYSl7dmFyIGgsZD1jLl9fdHJhbnNpdGlvbjtmdW5jdGlvbiBfKGllKXt2YXIgcGUsd2UsRWUsWmU7aWYoMSE9PWEuc3RhdGUpcmV0dXJuIFco'@; put 'KTtmb3IocGUgaW4gZClpZigoWmU9ZFtwZV0pLm5hbWU9PT1hLm5hbWUpe2lmKFplLnN0YXRlPT09ZlQpcmV0dXJuIGhUKF8pOzQ9PT1aZS5zdGF0ZT8oWmUuc3RhdGU9cFQsWmUudGltZXIuc3RvcCgpLFplLm9uLmNhbGwoImludGVycnVwdCIsYyxjLl9fZGF0YV9fLFplLmluZGV4LFplLmdy'@; put 'b3VwKSxkZWxldGUgZFtwZV0pOitwZTxsJiYoWmUuc3RhdGU9cFQsWmUudGltZXIuc3RvcCgpLFplLm9uLmNhbGwoImNhbmNlbCIsYyxjLl9fZGF0YV9fLFplLmluZGV4LFplLmdyb3VwKSxkZWxldGUgZFtwZV0pfWlmKGhUKGZ1bmN0aW9uKCl7YS5zdGF0ZT09PWZUJiYoYS5zdGF0ZT00LGEu'@; put 'dGltZXIucmVzdGFydChULGEuZGVsYXksYS50aW1lKSxUKGllKSl9KSxhLnN0YXRlPVRVLGEub24uY2FsbCgic3RhcnQiLGMsYy5fX2RhdGFfXyxhLmluZGV4LGEuZ3JvdXApLGEuc3RhdGU9PT1UVSl7Zm9yKGEuc3RhdGU9ZlQsaD1uZXcgQXJyYXkoRWU9YS50d2Vlbi5sZW5ndGgpLHBlPTAs'@; put 'd2U9LTE7cGU8RWU7KytwZSkoWmU9YS50d2VlbltwZV0udmFsdWUuY2FsbChjLGMuX19kYXRhX18sYS5pbmRleCxhLmdyb3VwKSkmJihoWysrd2VdPVplKTtoLmxlbmd0aD13ZSsxfX1mdW5jdGlvbiBUKGllKXtmb3IodmFyIHBlPWllPGEuZHVyYXRpb24/YS5lYXNlLmNhbGwobnVsbCxpZS9h'@; put 'LmR1cmF0aW9uKTooYS50aW1lci5yZXN0YXJ0KFcpLGEuc3RhdGU9RFUsMSksd2U9LTEsRWU9aC5sZW5ndGg7Kyt3ZTxFZTspaFt3ZV0uY2FsbChjLHBlKTthLnN0YXRlPT09RFUmJihhLm9uLmNhbGwoImVuZCIsYyxjLl9fZGF0YV9fLGEuaW5kZXgsYS5ncm91cCksVygpKX1mdW5jdGlvbiBX'@; put 'KCl7Zm9yKHZhciBpZSBpbiBhLnN0YXRlPXBULGEudGltZXIuc3RvcCgpLGRlbGV0ZSBkW2xdLGQpcmV0dXJuO2RlbGV0ZSBjLl9fdHJhbnNpdGlvbn1kW2xdPWEsYS50aW1lcj1iYWUoZnVuY3Rpb24gZihpZSl7YS5zdGF0ZT0xLGEudGltZXIucmVzdGFydChfLGEuZGVsYXksYS50aW1lKSxh'@; put 'LmRlbGF5PD1pZSYmXyhpZS1hLmRlbGF5KX0sMCxhLnRpbWUpfShjLGEse25hbWU6bCxpbmRleDpkLGdyb3VwOmgsb246ZEtlLHR3ZWVuOmhLZSx0aW1lOmYudGltZSxkZWxheTpmLmRlbGF5LGR1cmF0aW9uOmYuZHVyYXRpb24sZWFzZTpmLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTp3YWV9KX1m'@; put 'dW5jdGlvbiBJVShjLGwpe3ZhciBhPVMyKGMsbCk7aWYoYS5zdGF0ZT53YWUpdGhyb3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWQiKTtyZXR1cm4gYX1mdW5jdGlvbiBUaChjLGwpe3ZhciBhPVMyKGMsbCk7aWYoYS5zdGF0ZT5mVCl0aHJvdyBuZXcgRXJyb3IoInRv'@; put 'byBsYXRlOyBhbHJlYWR5IHJ1bm5pbmciKTtyZXR1cm4gYX1mdW5jdGlvbiBTMihjLGwpe3ZhciBhPWMuX190cmFuc2l0aW9uO2lmKCFhfHwhKGE9YVtsXSkpdGhyb3cgbmV3IEVycm9yKCJ0cmFuc2l0aW9uIG5vdCBmb3VuZCIpO3JldHVybiBhfWZ1bmN0aW9uIG1UKGMsbCl7dmFyIGQsaCxf'@; put 'LGE9Yy5fX3RyYW5zaXRpb24sZj0hMDtpZihhKXtmb3IoXyBpbiBsPW51bGw9PWw/bnVsbDpsKyIiLGEpKGQ9YVtfXSkubmFtZT09PWw/KGg9ZC5zdGF0ZT5UVSYmZC5zdGF0ZTxEVSxkLnN0YXRlPXBULGQudGltZXIuc3RvcCgpLGQub24uY2FsbChoPyJpbnRlcnJ1cHQiOiJjYW5jZWwiLGMs'@; put 'Yy5fX2RhdGFfXyxkLmluZGV4LGQuZ3JvdXApLGRlbGV0ZSBhW19dKTpmPSExO2YmJmRlbGV0ZSBjLl9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gRGgoYyxsKXtyZXR1cm4gYz0rYyxsPStsLGZ1bmN0aW9uKGEpe3JldHVybiBjKigxLWEpK2wqYX19dmFyIHZULFNhZT0xODAvTWF0aC5QSSxMVT17'@; put 'dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiBNYWUoYyxsLGEsZCxoLGYpe3ZhciBfLFQsVztyZXR1cm4oXz1NYXRoLnNxcnQoYypjK2wqbCkpJiYoYy89XyxsLz1fKSwoVz1jKmErbCpkKSYmKGEtPWMqVyxkLT1s'@; put 'KlcpLChUPU1hdGguc3FydChhKmErZCpkKSkmJihhLz1ULGQvPVQsVy89VCksYypkPGwqYSYmKGM9LWMsbD0tbCxXPS1XLF89LV8pLHt0cmFuc2xhdGVYOmgsdHJhbnNsYXRlWTpmLHJvdGF0ZTpNYXRoLmF0YW4yKGwsYykqU2FlLHNrZXdYOk1hdGguYXRhbihXKSpTYWUsc2NhbGVYOl8sc2Nh'@; put 'bGVZOlR9fWZ1bmN0aW9uIHhhZShjLGwsYSxkKXtmdW5jdGlvbiBoKGllKXtyZXR1cm4gaWUubGVuZ3RoP2llLnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24oaWUscGUpe3ZhciB3ZT1bXSxFZT1bXTtyZXR1cm4gaWU9YyhpZSkscGU9YyhwZSksZnVuY3Rpb24gZihpZSxwZSx3ZSxFZSxa'@; put 'ZSxpdCl7aWYoaWUhPT13ZXx8cGUhPT1FZSl7dmFyIGV0PVplLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsbCxudWxsLGEpO2l0LnB1c2goe2k6ZXQtNCx4OkRoKGllLHdlKX0se2k6ZXQtMix4OkRoKHBlLEVlKX0pfWVsc2Uod2V8fEVlKSYmWmUucHVzaCgidHJhbnNsYXRlKCIrd2UrbCtFZSth'@; put 'KX0oaWUudHJhbnNsYXRlWCxpZS50cmFuc2xhdGVZLHBlLnRyYW5zbGF0ZVgscGUudHJhbnNsYXRlWSx3ZSxFZSksZnVuY3Rpb24gXyhpZSxwZSx3ZSxFZSl7aWUhPT1wZT8oaWUtcGU+MTgwP3BlKz0zNjA6cGUtaWU+MTgwJiYoaWUrPTM2MCksRWUucHVzaCh7aTp3ZS5wdXNoKGgod2UpKyJy'@; put 'b3RhdGUoIixudWxsLGQpLTIseDpEaChpZSxwZSl9KSk6cGUmJndlLnB1c2goaCh3ZSkrInJvdGF0ZSgiK3BlK2QpfShpZS5yb3RhdGUscGUucm90YXRlLHdlLEVlKSxmdW5jdGlvbiBUKGllLHBlLHdlLEVlKXtpZSE9PXBlP0VlLnB1c2goe2k6d2UucHVzaChoKHdlKSsic2tld1goIixudWxs'@; put 'LGQpLTIseDpEaChpZSxwZSl9KTpwZSYmd2UucHVzaChoKHdlKSsic2tld1goIitwZStkKX0oaWUuc2tld1gscGUuc2tld1gsd2UsRWUpLGZ1bmN0aW9uIFcoaWUscGUsd2UsRWUsWmUsaXQpe2lmKGllIT09d2V8fHBlIT09RWUpe3ZhciBldD1aZS5wdXNoKGgoWmUpKyJzY2FsZSgiLG51bGws'@; put 'IiwiLG51bGwsIikiKTtpdC5wdXNoKHtpOmV0LTQseDpEaChpZSx3ZSl9LHtpOmV0LTIseDpEaChwZSxFZSl9KX1lbHNlKDEhPT13ZXx8MSE9PUVlKSYmWmUucHVzaChoKFplKSsic2NhbGUoIit3ZSsiLCIrRWUrIikiKX0oaWUuc2NhbGVYLGllLnNjYWxlWSxwZS5zY2FsZVgscGUuc2NhbGVZ'@; put 'LHdlLEVlKSxpZT1wZT1udWxsLGZ1bmN0aW9uKFplKXtmb3IodmFyIHl0LGl0PS0xLGV0PUVlLmxlbmd0aDsrK2l0PGV0Oyl3ZVsoeXQ9RWVbaXRdKS5pXT15dC54KFplKTtyZXR1cm4gd2Uuam9pbigiIil9fX12YXIgdktlPXhhZShmdW5jdGlvbiBnS2UoYyl7Y29uc3QgbD1uZXcoImZ1bmN0'@; put 'aW9uIj09dHlwZW9mIERPTU1hdHJpeD9ET01NYXRyaXg6V2ViS2l0Q1NTTWF0cml4KShjKyIiKTtyZXR1cm4gbC5pc0lkZW50aXR5P0xVOk1hZShsLmEsbC5iLGwuYyxsLmQsbC5lLGwuZil9LCJweCwgIiwicHgpIiwiZGVnKSIpLEVhZT14YWUoZnVuY3Rpb24gbUtlKGMpe3JldHVybiBudWxs'@; put 'IT1jJiYodlR8fCh2VD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSx2VC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsYyksYz12VC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9NYWUoKGM9Yy5tYXRyaXgpLmEsYy5i'@; put 'LGMuYyxjLmQsYy5lLGMuZik6TFV9LCIsICIsIikiLCIpIik7ZnVuY3Rpb24gX0tlKGMsbCl7dmFyIGEsZDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaD1UaCh0aGlzLGMpLGY9aC50d2VlbjtpZihmIT09YSlmb3IodmFyIF89MCxUPShkPWE9ZikubGVuZ3RoO188VDsrK18paWYoZFtfXS5uYW1l'@; put 'PT09bCl7KGQ9ZC5zbGljZSgpKS5zcGxpY2UoXywxKTticmVha31oLnR3ZWVuPWR9fWZ1bmN0aW9uIGJLZShjLGwsYSl7dmFyIGQsaDtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY9VGgodGhpcyxjKSxfPWYudHdlZW47aWYo'@; put 'XyE9PWQpe2g9KGQ9Xykuc2xpY2UoKTtmb3IodmFyIFQ9e25hbWU6bCx2YWx1ZTphfSxXPTAsaWU9aC5sZW5ndGg7VzxpZTsrK1cpaWYoaFtXXS5uYW1lPT09bCl7aFtXXT1UO2JyZWFrfVc9PT1pZSYmaC5wdXNoKFQpfWYudHdlZW49aH19ZnVuY3Rpb24gUlUoYyxsLGEpe3ZhciBkPWMuX2lk'@; put 'O3JldHVybiBjLmVhY2goZnVuY3Rpb24oKXt2YXIgaD1UaCh0aGlzLGQpOyhoLnZhbHVlfHwoaC52YWx1ZT17fSkpW2xdPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24oaCl7cmV0dXJuIFMyKGgsZCkudmFsdWVbbF19fWZ1bmN0aW9uIE9VKGMsbCxhKXtjLnByb3RvdHlwZT1s'@; put 'LnByb3RvdHlwZT1hLGEuY29uc3RydWN0b3I9Y31mdW5jdGlvbiBrYWUoYyxsKXt2YXIgYT1PYmplY3QuY3JlYXRlKGMucHJvdG90eXBlKTtmb3IodmFyIGQgaW4gbClhW2RdPWxbZF07cmV0dXJuIGF9ZnVuY3Rpb24gcHcoKXt9dmFyIF9UPTEvLjcsRzc9IlxccyooWystXT9cXGQrKVxccyoi'@; put 'LG13PSJcXHMqKFsrLV0/KD86XFxkKlxcLik/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixJaD0iXFxzKihbKy1dPyg/OlxcZCpcXC4pP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLHdLZT0vXiMoWzAtOWEtZl17Myw4fSkkLyxDS2U9bmV3IFJlZ0V4cChgXnJnYlxcKCR7Rzd9'@; put 'LCR7Rzd9LCR7Rzd9XFwpJGApLFNLZT1uZXcgUmVnRXhwKGBecmdiXFwoJHtJaH0sJHtJaH0sJHtJaH1cXCkkYCksTUtlPW5ldyBSZWdFeHAoYF5yZ2JhXFwoJHtHN30sJHtHN30sJHtHN30sJHttd31cXCkkYCkseEtlPW5ldyBSZWdFeHAoYF5yZ2JhXFwoJHtJaH0sJHtJaH0sJHtJaH0sJHtt'@; put 'd31cXCkkYCksRUtlPW5ldyBSZWdFeHAoYF5oc2xcXCgke213fSwke0lofSwke0lofVxcKSRgKSxrS2U9bmV3IFJlZ0V4cChgXmhzbGFcXCgke213fSwke0lofSwke0lofSwke213fVxcKSRgKSxBYWU9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUz'@; put 'NSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRl'@; put 'dGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxk'@; put 'YXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hp'@; put 'ZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6'@; put 'OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2'@; put 'NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazox'@; put 'NjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjEx'@; put 'MzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjox'@; put 'Njc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMz'@; put 'MjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVt'@; put 'c2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAy'@; put 'MjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVu'@; put 'OjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4'@; put 'Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3'@; put 'NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgw'@; put 'ODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0'@; put 'NTA3NH07ZnVuY3Rpb24gVGFlKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gRGFlKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gR2coYyl7dmFyIGwsYTtyZXR1cm4gYz0oYysiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGw9d0tlLmV4'@; put 'ZWMoYykpPyhhPWxbMV0ubGVuZ3RoLGw9cGFyc2VJbnQobFsxXSwxNiksNj09PWE/SWFlKGwpOjM9PT1hP25ldyBIMChsPj44JjE1fGw+PjQmMjQwLGw+PjQmMTV8MjQwJmwsKDE1JmwpPDw0fDE1JmwsMSk6OD09PWE/YlQobD4+MjQmMjU1LGw+PjE2JjI1NSxsPj44JjI1NSwoMjU1JmwpLzI1'@; put 'NSk6ND09PWE/YlQobD4+MTImMTV8bD4+OCYyNDAsbD4+OCYxNXxsPj40JjI0MCxsPj40JjE1fDI0MCZsLCgoMTUmbCk8PDR8MTUmbCkvMjU1KTpudWxsKToobD1DS2UuZXhlYyhjKSk/bmV3IEgwKGxbMV0sbFsyXSxsWzNdLDEpOihsPVNLZS5leGVjKGMpKT9uZXcgSDAoMjU1KmxbMV0vMTAw'@; put 'LDI1NSpsWzJdLzEwMCwyNTUqbFszXS8xMDAsMSk6KGw9TUtlLmV4ZWMoYykpP2JUKGxbMV0sbFsyXSxsWzNdLGxbNF0pOihsPXhLZS5leGVjKGMpKT9iVCgyNTUqbFsxXS8xMDAsMjU1KmxbMl0vMTAwLDI1NSpsWzNdLzEwMCxsWzRdKToobD1FS2UuZXhlYyhjKSk/T2FlKGxbMV0sbFsyXS8x'@; put 'MDAsbFszXS8xMDAsMSk6KGw9a0tlLmV4ZWMoYykpP09hZShsWzFdLGxbMl0vMTAwLGxbM10vMTAwLGxbNF0pOkFhZS5oYXNPd25Qcm9wZXJ0eShjKT9JYWUoQWFlW2NdKToidHJhbnNwYXJlbnQiPT09Yz9uZXcgSDAoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBJYWUoYyl7cmV0dXJu'@; put 'IG5ldyBIMChjPj4xNiYyNTUsYz4+OCYyNTUsMjU1JmMsMSl9ZnVuY3Rpb24gYlQoYyxsLGEsZCl7cmV0dXJuIGQ8PTAmJihjPWw9YT1OYU4pLG5ldyBIMChjLGwsYSxkKX1mdW5jdGlvbiB5VChjLGwsYSxkKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZnVuY3Rpb24gREtlKGMpe3Jl'@; put 'dHVybiBjIGluc3RhbmNlb2YgcHd8fChjPUdnKGMpKSxjP25ldyBIMCgoYz1jLnJnYigpKS5yLGMuZyxjLmIsYy5vcGFjaXR5KTpuZXcgSDB9KGMpOm5ldyBIMChjLGwsYSxkPz8xKX1mdW5jdGlvbiBIMChjLGwsYSxkKXt0aGlzLnI9K2MsdGhpcy5nPStsLHRoaXMuYj0rYSx0aGlzLm9wYWNp'@; put 'dHk9K2R9ZnVuY3Rpb24gTGFlKCl7cmV0dXJuYCMke3FnKHRoaXMucil9JHtxZyh0aGlzLmcpfSR7cWcodGhpcy5iKX1gfWZ1bmN0aW9uIFJhZSgpe2NvbnN0IGM9d1QodGhpcy5vcGFjaXR5KTtyZXR1cm5gJHsxPT09Yz8icmdiKCI6InJnYmEoIn0keyRnKHRoaXMucil9LCAkeyRnKHRoaXMu'@; put 'Zyl9LCAkeyRnKHRoaXMuYil9JHsxPT09Yz8iKSI6YCwgJHtjfSlgfWB9ZnVuY3Rpb24gd1QoYyl7cmV0dXJuIGlzTmFOKGMpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLGMpKX1mdW5jdGlvbiAkZyhjKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChjKXx8MCkp'@; put 'fWZ1bmN0aW9uIHFnKGMpe3JldHVybigoYz0kZyhjKSk8MTY/IjAiOiIiKStjLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBPYWUoYyxsLGEsZCl7cmV0dXJuIGQ8PTA/Yz1sPWE9TmFOOmE8PTB8fGE+PTE/Yz1sPU5hTjpsPD0wJiYoYz1OYU4pLG5ldyBNMihjLGwsYSxkKX1mdW5jdGlvbiBQYWUo'@; put 'Yyl7aWYoYyBpbnN0YW5jZW9mIE0yKXJldHVybiBuZXcgTTIoYy5oLGMucyxjLmwsYy5vcGFjaXR5KTtpZihjIGluc3RhbmNlb2YgcHd8fChjPUdnKGMpKSwhYylyZXR1cm4gbmV3IE0yO2lmKGMgaW5zdGFuY2VvZiBNMilyZXR1cm4gYzt2YXIgbD0oYz1jLnJnYigpKS5yLzI1NSxhPWMuZy8y'@; put 'NTUsZD1jLmIvMjU1LGg9TWF0aC5taW4obCxhLGQpLGY9TWF0aC5tYXgobCxhLGQpLF89TmFOLFQ9Zi1oLFc9KGYraCkvMjtyZXR1cm4gVD8oXz1sPT09Zj8oYS1kKS9UKzYqKGE8ZCk6YT09PWY/KGQtbCkvVCsyOihsLWEpL1QrNCxULz1XPC41P2YraDoyLWYtaCxfKj02MCk6VD1XPjAmJlc8'@; put 'MT8wOl8sbmV3IE0yKF8sVCxXLGMub3BhY2l0eSl9ZnVuY3Rpb24gTTIoYyxsLGEsZCl7dGhpcy5oPStjLHRoaXMucz0rbCx0aGlzLmw9K2EsdGhpcy5vcGFjaXR5PStkfWZ1bmN0aW9uIEZhZShjKXtyZXR1cm4oYz0oY3x8MCklMzYwKTwwP2MrMzYwOmN9ZnVuY3Rpb24gQ1QoYyl7cmV0dXJu'@; put 'IE1hdGgubWF4KDAsTWF0aC5taW4oMSxjfHwwKSl9ZnVuY3Rpb24gUFUoYyxsLGEpe3JldHVybiAyNTUqKGM8NjA/bCsoYS1sKSpjLzYwOmM8MTgwP2E6YzwyNDA/bCsoYS1sKSooMjQwLWMpLzYwOmwpfWZ1bmN0aW9uIEhhZShjLGwsYSxkLGgpe3ZhciBmPWMqYyxfPWYqYztyZXR1cm4oKDEt'@; put 'MypjKzMqZi1fKSpsKyg0LTYqZiszKl8pKmErKDErMypjKzMqZi0zKl8pKmQrXypoKS82fU9VKHB3LEdnLHtjb3B5KGMpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsYyl9LGRpc3BsYXlhYmxlKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUo'@; put 'KX0saGV4OlRhZSxmb3JtYXRIZXg6VGFlLGZvcm1hdEhleDg6ZnVuY3Rpb24gQUtlKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4OCgpfSxmb3JtYXRIc2w6ZnVuY3Rpb24gVEtlKCl7cmV0dXJuIFBhZSh0aGlzKS5mb3JtYXRIc2woKX0sZm9ybWF0UmdiOkRhZSx0b1N0cmluZzpEYWV9'@; put 'KSxPVShIMCx5VCxrYWUocHcse2JyaWdodGVyKGMpe3JldHVybiBjPW51bGw9PWM/X1Q6TWF0aC5wb3coX1QsYyksbmV3IEgwKHRoaXMucipjLHRoaXMuZypjLHRoaXMuYipjLHRoaXMub3BhY2l0eSl9LGRhcmtlcihjKXtyZXR1cm4gYz1udWxsPT1jPy43Ok1hdGgucG93KC43LGMpLG5ldyBI'@; put 'MCh0aGlzLnIqYyx0aGlzLmcqYyx0aGlzLmIqYyx0aGlzLm9wYWNpdHkpfSxyZ2IoKXtyZXR1cm4gdGhpc30sY2xhbXAoKXtyZXR1cm4gbmV3IEgwKCRnKHRoaXMuciksJGcodGhpcy5nKSwkZyh0aGlzLmIpLHdUKHRoaXMub3BhY2l0eSkpfSxkaXNwbGF5YWJsZSgpe3JldHVybi0uNTw9dGhp'@; put 'cy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6TGFlLGZvcm1hdEhleDpMYWUsZm9ybWF0SGV4ODpmdW5jdGlvbiBJS2UoKXtyZXR1cm5gIyR7'@; put 'cWcodGhpcy5yKX0ke3FnKHRoaXMuZyl9JHtxZyh0aGlzLmIpfSR7cWcoMjU1Kihpc05hTih0aGlzLm9wYWNpdHkpPzE6dGhpcy5vcGFjaXR5KSl9YH0sZm9ybWF0UmdiOlJhZSx0b1N0cmluZzpSYWV9KSksT1UoTTIsZnVuY3Rpb24gTEtlKGMsbCxhLGQpe3JldHVybiAxPT09YXJndW1lbnRz'@; put 'Lmxlbmd0aD9QYWUoYyk6bmV3IE0yKGMsbCxhLGQ/PzEpfSxrYWUocHcse2JyaWdodGVyKGMpe3JldHVybiBjPW51bGw9PWM/X1Q6TWF0aC5wb3coX1QsYyksbmV3IE0yKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmMsdGhpcy5vcGFjaXR5KX0sZGFya2VyKGMpe3JldHVybiBjPW51bGw9PWM/Ljc6'@; put 'TWF0aC5wb3coLjcsYyksbmV3IE0yKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmMsdGhpcy5vcGFjaXR5KX0scmdiKCl7dmFyIGM9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxsPWlzTmFOKGMpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLGE9dGhpcy5sLGQ9YSsoYTwuNT9hOjEtYSkqbCxoPTIq'@; put 'YS1kO3JldHVybiBuZXcgSDAoUFUoYz49MjQwP2MtMjQwOmMrMTIwLGgsZCksUFUoYyxoLGQpLFBVKGM8MTIwP2MrMjQwOmMtMTIwLGgsZCksdGhpcy5vcGFjaXR5KX0sY2xhbXAoKXtyZXR1cm4gbmV3IE0yKEZhZSh0aGlzLmgpLENUKHRoaXMucyksQ1QodGhpcy5sKSx3VCh0aGlzLm9wYWNp'@; put 'dHkpKX0sZGlzcGxheWFibGUoKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbCgpe2NvbnN0IGM9d1QodGhpcy5vcGFjaXR5KTtyZXR1cm5g'@; put 'JHsxPT09Yz8iaHNsKCI6ImhzbGEoIn0ke0ZhZSh0aGlzLmgpfSwgJHsxMDAqQ1QodGhpcy5zKX0lLCAkezEwMCpDVCh0aGlzLmwpfSUkezE9PT1jPyIpIjpgLCAke2N9KWB9YH19KSk7Y29uc3QgRlU9Yz0+KCk9PmM7ZnVuY3Rpb24gVmFlKGMsbCl7dmFyIGE9bC1jO3JldHVybiBhP2Z1bmN0'@; put 'aW9uIE5hZShjLGwpe3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gYythKmx9fShjLGEpOkZVKGlzTmFOKGMpP2w6Yyl9Y29uc3QgU1Q9ZnVuY3Rpb24gYyhsKXt2YXIgYT1mdW5jdGlvbiBGS2UoYyl7cmV0dXJuIDE9PShjPStjKT9WYWU6ZnVuY3Rpb24obCxhKXtyZXR1cm4gYS1sP2Z1bmN0'@; put 'aW9uIFBLZShjLGwsYSl7cmV0dXJuIGM9TWF0aC5wb3coYyxhKSxsPU1hdGgucG93KGwsYSktYyxhPTEvYSxmdW5jdGlvbihkKXtyZXR1cm4gTWF0aC5wb3coYytkKmwsYSl9fShsLGEsYyk6RlUoaXNOYU4obCk/YTpsKX19KGwpO2Z1bmN0aW9uIGQoaCxmKXt2YXIgXz1hKChoPXlUKGgpKS5y'@; put 'LChmPXlUKGYpKS5yKSxUPWEoaC5nLGYuZyksVz1hKGguYixmLmIpLGllPVZhZShoLm9wYWNpdHksZi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24ocGUpe3JldHVybiBoLnI9XyhwZSksaC5nPVQocGUpLGguYj1XKHBlKSxoLm9wYWNpdHk9aWUocGUpLGgrIiJ9fXJldHVybiBkLmdhbW1hPWMs'@; put 'ZH0oMSk7ZnVuY3Rpb24gQmFlKGMpe3JldHVybiBmdW5jdGlvbihsKXt2YXIgXyxULGE9bC5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD1uZXcgQXJyYXkoYSksZj1uZXcgQXJyYXkoYSk7Zm9yKF89MDtfPGE7KytfKVQ9eVQobFtfXSksZFtfXT1ULnJ8fDAsaFtfXT1ULmd8fDAsZltfXT1ULmJ8'@; put 'fDA7cmV0dXJuIGQ9YyhkKSxoPWMoaCksZj1jKGYpLFQub3BhY2l0eT0xLGZ1bmN0aW9uKFcpe3JldHVybiBULnI9ZChXKSxULmc9aChXKSxULmI9ZihXKSxUKyIifX19QmFlKGZ1bmN0aW9uIFJLZShjKXt2YXIgbD1jLmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihhKXt2YXIgZD1hPD0wP2E9'@; put 'MDphPj0xPyhhPTEsbC0xKTpNYXRoLmZsb29yKGEqbCksaD1jW2RdLGY9Y1tkKzFdO3JldHVybiBIYWUoKGEtZC9sKSpsLGQ+MD9jW2QtMV06MipoLWYsaCxmLGQ8bC0xP2NbZCsyXToyKmYtaCl9fSksQmFlKGZ1bmN0aW9uIE9LZShjKXt2YXIgbD1jLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24o'@; put 'YSl7dmFyIGQ9TWF0aC5mbG9vcigoKGElPTEpPDA/KythOmEpKmwpO3JldHVybiBIYWUoKGEtZC9sKSpsLGNbKGQrbC0xKSVsXSxjW2QlbF0sY1soZCsxKSVsXSxjWyhkKzIpJWxdKX19KTt2YXIgSFU9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLE5VPW5l'@; put 'dyBSZWdFeHAoSFUuc291cmNlLCJnIik7ZnVuY3Rpb24gamFlKGMsbCl7dmFyIGQsaCxmLGE9SFUubGFzdEluZGV4PU5VLmxhc3RJbmRleD0wLF89LTEsVD1bXSxXPVtdO2ZvcihjKz0iIixsKz0iIjsoZD1IVS5leGVjKGMpKSYmKGg9TlUuZXhlYyhsKSk7KShmPWguaW5kZXgpPmEmJihmPWwu'@; put 'c2xpY2UoYSxmKSxUW19dP1RbX10rPWY6VFsrK19dPWYpLChkPWRbMF0pPT09KGg9aFswXSk/VFtfXT9UW19dKz1oOlRbKytfXT1oOihUWysrX109bnVsbCxXLnB1c2goe2k6Xyx4OkRoKGQsaCl9KSksYT1OVS5sYXN0SW5kZXg7cmV0dXJuIGE8bC5sZW5ndGgmJihmPWwuc2xpY2UoYSksVFtf'@; put 'XT9UW19dKz1mOlRbKytfXT1mKSxULmxlbmd0aDwyP1dbMF0/ZnVuY3Rpb24gTktlKGMpe3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gYyhsKSsiIn19KFdbMF0ueCk6ZnVuY3Rpb24gSEtlKGMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjfX0obCk6KGw9Vy5sZW5ndGgsZnVuY3Rpb24o'@; put 'aWUpe2Zvcih2YXIgd2UscGU9MDtwZTxsOysrcGUpVFsod2U9V1twZV0pLmldPXdlLngoaWUpO3JldHVybiBULmpvaW4oIiIpfSl9ZnVuY3Rpb24gemFlKGMsbCl7dmFyIGE7cmV0dXJuKCJudW1iZXIiPT10eXBlb2YgbD9EaDpsIGluc3RhbmNlb2YgR2c/U1Q6KGE9R2cobCkpPyhsPWEsU1Qp'@; put 'OmphZSkoYyxsKX1mdW5jdGlvbiBWS2UoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoYyl9fWZ1bmN0aW9uIEJLZShjKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGMuc3BhY2UsYy5sb2NhbCl9fWZ1bmN0aW9uIGpLZShjLGwsYSl7'@; put 'dmFyIGQsZixoPWErIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIF89dGhpcy5nZXRBdHRyaWJ1dGUoYyk7cmV0dXJuIF89PT1oP251bGw6Xz09PWQ/ZjpmPWwoZD1fLGEpfX1mdW5jdGlvbiB6S2UoYyxsLGEpe3ZhciBkLGYsaD1hKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBfPXRoaXMuZ2V0'@; put 'QXR0cmlidXRlTlMoYy5zcGFjZSxjLmxvY2FsKTtyZXR1cm4gXz09PWg/bnVsbDpfPT09ZD9mOmY9bChkPV8sYSl9fWZ1bmN0aW9uIFVLZShjLGwsYSl7dmFyIGQsaCxmO3JldHVybiBmdW5jdGlvbigpe3ZhciBfLFcsVD1hKHRoaXMpO3JldHVybiBudWxsPT1UP3ZvaWQgdGhpcy5yZW1vdmVB'@; put 'dHRyaWJ1dGUoYyk6KF89dGhpcy5nZXRBdHRyaWJ1dGUoYykpPT09KFc9VCsiIik/bnVsbDpfPT09ZCYmVz09PWg/ZjooaD1XLGY9bChkPV8sVCkpfX1mdW5jdGlvbiBaS2UoYyxsLGEpe3ZhciBkLGgsZjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgXyxXLFQ9YSh0aGlzKTtyZXR1cm4gbnVsbD09'@; put 'VD92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoYy5zcGFjZSxjLmxvY2FsKTooXz10aGlzLmdldEF0dHJpYnV0ZU5TKGMuc3BhY2UsYy5sb2NhbCkpPT09KFc9VCsiIik/bnVsbDpfPT09ZCYmVz09PWg/ZjooaD1XLGY9bChkPV8sVCkpfX1mdW5jdGlvbiAkS2UoYyxsKXt2YXIgYSxkO2Z1'@; put 'bmN0aW9uIGgoKXt2YXIgZj1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZiE9PWQmJihhPShkPWYpJiZmdW5jdGlvbiBHS2UoYyxsKXtyZXR1cm4gZnVuY3Rpb24oYSl7dGhpcy5zZXRBdHRyaWJ1dGVOUyhjLnNwYWNlLGMubG9jYWwsbC5jYWxsKHRoaXMsYSkpfX0oYyxmKSksYX1y'@; put 'ZXR1cm4gaC5fdmFsdWU9bCxofWZ1bmN0aW9uIHFLZShjLGwpe3ZhciBhLGQ7ZnVuY3Rpb24gaCgpe3ZhciBmPWwuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmIT09ZCYmKGE9KGQ9ZikmJmZ1bmN0aW9uIFdLZShjLGwpe3JldHVybiBmdW5jdGlvbihhKXt0aGlzLnNldEF0dHJpYnV0'@; put 'ZShjLGwuY2FsbCh0aGlzLGEpKX19KGMsZikpLGF9cmV0dXJuIGguX3ZhbHVlPWwsaH1mdW5jdGlvbiBYS2UoYyxsKXtyZXR1cm4gZnVuY3Rpb24oKXtJVSh0aGlzLGMpLmRlbGF5PStsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gSktlKGMsbCl7cmV0dXJuIGw9K2wsZnVuY3Rp'@; put 'b24oKXtJVSh0aGlzLGMpLmRlbGF5PWx9fWZ1bmN0aW9uIGVYZShjLGwpe3JldHVybiBmdW5jdGlvbigpe1RoKHRoaXMsYykuZHVyYXRpb249K2wuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiB0WGUoYyxsKXtyZXR1cm4gbD0rbCxmdW5jdGlvbigpe1RoKHRoaXMsYykuZHVyYXRp'@; put 'b249bH19dmFyIG1YZT1ZZy5wcm90b3R5cGUuY29uc3RydWN0b3I7ZnVuY3Rpb24gVWFlKGMpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoYyl9fXZhciBPWGU9MDtmdW5jdGlvbiBMaChjLGwsYSxkKXt0aGlzLl9ncm91cHM9Yyx0aGlzLl9wYXJlbnRzPWws'@; put 'dGhpcy5fbmFtZT1hLHRoaXMuX2lkPWR9ZnVuY3Rpb24gVlUoYyl7cmV0dXJuIFlnKCkudHJhbnNpdGlvbihjKX1mdW5jdGlvbiBaYWUoKXtyZXR1cm4rK09YZX12YXIgcjM9WWcucHJvdG90eXBlO0xoLnByb3RvdHlwZT1WVS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkxoLHNlbGVjdDpmdW5j'@; put 'dGlvbiBwWGUoYyl7dmFyIGw9dGhpcy5fbmFtZSxhPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiBjJiYoYz15VShjKSk7Zm9yKHZhciBkPXRoaXMuX2dyb3VwcyxoPWQubGVuZ3RoLGY9bmV3IEFycmF5KGgpLF89MDtfPGg7KytfKWZvcih2YXIgcGUsd2UsVD1kW19dLFc9VC5sZW5ndGgs'@; put 'aWU9ZltfXT1uZXcgQXJyYXkoVyksRWU9MDtFZTxXOysrRWUpKHBlPVRbRWVdKSYmKHdlPWMuY2FsbChwZSxwZS5fX2RhdGFfXyxFZSxUKSkmJigiX19kYXRhX18iaW4gcGUmJih3ZS5fX2RhdGFfXz1wZS5fX2RhdGFfXyksaWVbRWVdPXdlLGdUKGllW0VlXSxsLGEsRWUsaWUsUzIocGUsYSkp'@; put 'KTtyZXR1cm4gbmV3IExoKGYsdGhpcy5fcGFyZW50cyxsLGEpfSxzZWxlY3RBbGw6ZnVuY3Rpb24gZ1hlKGMpe3ZhciBsPXRoaXMuX25hbWUsYT10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgYyYmKGM9bmFlKGMpKTtmb3IodmFyIGQ9dGhpcy5fZ3JvdXBzLGg9ZC5sZW5ndGgsZj1bXSxf'@; put 'PVtdLFQ9MDtUPGg7KytUKWZvcih2YXIgcGUsVz1kW1RdLGllPVcubGVuZ3RoLHdlPTA7d2U8aWU7Kyt3ZSlpZihwZT1XW3dlXSl7Zm9yKHZhciBaZSxFZT1jLmNhbGwocGUscGUuX19kYXRhX18sd2UsVyksaXQ9UzIocGUsYSksZXQ9MCx5dD1FZS5sZW5ndGg7ZXQ8eXQ7KytldCkoWmU9RWVb'@; put 'ZXRdKSYmZ1QoWmUsbCxhLGV0LEVlLGl0KTtmLnB1c2goRWUpLF8ucHVzaChwZSl9cmV0dXJuIG5ldyBMaChmLF8sbCxhKX0sc2VsZWN0Q2hpbGQ6cjMuc2VsZWN0Q2hpbGQsc2VsZWN0Q2hpbGRyZW46cjMuc2VsZWN0Q2hpbGRyZW4sZmlsdGVyOmZ1bmN0aW9uIGFYZShjKXsiZnVuY3Rpb24i'@; put 'IT10eXBlb2YgYyYmKGM9cmFlKGMpKTtmb3IodmFyIGw9dGhpcy5fZ3JvdXBzLGE9bC5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTsrK2gpZm9yKHZhciBXLGY9bFtoXSxfPWYubGVuZ3RoLFQ9ZFtoXT1bXSxpZT0wO2llPF87KytpZSkoVz1mW2llXSkmJmMuY2FsbChXLFcuX19kYXRh'@; put 'X18saWUsZikmJlQucHVzaChXKTtyZXR1cm4gbmV3IExoKGQsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24gbFhlKGMpe2lmKGMuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgbD10aGlzLl9ncm91cHMsYT1jLl9ncm91cHMs'@; put 'ZD1sLmxlbmd0aCxmPU1hdGgubWluKGQsYS5sZW5ndGgpLF89bmV3IEFycmF5KGQpLFQ9MDtUPGY7KytUKWZvcih2YXIgRWUsVz1sW1RdLGllPWFbVF0scGU9Vy5sZW5ndGgsd2U9X1tUXT1uZXcgQXJyYXkocGUpLFplPTA7WmU8cGU7KytaZSkoRWU9V1taZV18fGllW1plXSkmJih3ZVtaZV09'@; put 'RWUpO2Zvcig7VDxkOysrVClfW1RdPWxbVF07cmV0dXJuIG5ldyBMaChfLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiB2WGUoKXtyZXR1cm4gbmV3IG1YZSh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rp'@; put 'b24gTFhlKCl7Zm9yKHZhciBjPXRoaXMuX25hbWUsbD10aGlzLl9pZCxhPVphZSgpLGQ9dGhpcy5fZ3JvdXBzLGg9ZC5sZW5ndGgsZj0wO2Y8aDsrK2YpZm9yKHZhciBXLF89ZFtmXSxUPV8ubGVuZ3RoLGllPTA7aWU8VDsrK2llKWlmKFc9X1tpZV0pe3ZhciBwZT1TMihXLGwpO2dUKFcsYyxh'@; put 'LGllLF8se3RpbWU6cGUudGltZStwZS5kZWxheStwZS5kdXJhdGlvbixkZWxheTowLGR1cmF0aW9uOnBlLmR1cmF0aW9uLGVhc2U6cGUuZWFzZX0pfXJldHVybiBuZXcgTGgoZCx0aGlzLl9wYXJlbnRzLGMsYSl9LGNhbGw6cjMuY2FsbCxub2RlczpyMy5ub2Rlcyxub2RlOnIzLm5vZGUsc2l6'@; put 'ZTpyMy5zaXplLGVtcHR5OnIzLmVtcHR5LGVhY2g6cjMuZWFjaCxvbjpmdW5jdGlvbiBkWGUoYyxsKXt2YXIgYT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP1MyKHRoaXMubm9kZSgpLGEpLm9uLm9uKGMpOnRoaXMuZWFjaChmdW5jdGlvbiB1WGUoYyxsLGEpe3ZhciBkLGgs'@; put 'Zj1mdW5jdGlvbiBjWGUoYyl7cmV0dXJuKGMrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeShmdW5jdGlvbihsKXt2YXIgYT1sLmluZGV4T2YoIi4iKTtyZXR1cm4gYT49MCYmKGw9bC5zbGljZSgwLGEpKSwhbHx8InN0YXJ0Ij09PWx9KX0obCk/SVU6VGg7cmV0dXJuIGZ1bmN0aW9u'@; put 'KCl7dmFyIF89Zih0aGlzLGMpLFQ9Xy5vbjtUIT09ZCYmKGg9KGQ9VCkuY29weSgpKS5vbihsLGEpLF8ub249aH19KGEsYyxsKSl9LGF0dHI6ZnVuY3Rpb24gWUtlKGMsbCl7dmFyIGE9c1QoYyksZD0idHJhbnNmb3JtIj09PWE/RWFlOnphZTtyZXR1cm4gdGhpcy5hdHRyVHdlZW4oYywiZnVu'@; put 'Y3Rpb24iPT10eXBlb2YgbD8oYS5sb2NhbD9aS2U6VUtlKShhLGQsUlUodGhpcywiYXR0ci4iK2MsbCkpOm51bGw9PWw/KGEubG9jYWw/QktlOlZLZSkoYSk6KGEubG9jYWw/ektlOmpLZSkoYSxkLGwpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uIEtLZShjLGwpe3ZhciBhPSJhdHRyLiIrYztpZihh'@; put 'cmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGE9dGhpcy50d2VlbihhKSkmJmEuX3ZhbHVlO2lmKG51bGw9PWwpcmV0dXJuIHRoaXMudHdlZW4oYSxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgbCl0aHJvdyBuZXcgRXJyb3I7dmFyIGQ9c1QoYyk7cmV0dXJuIHRoaXMudHdlZW4oYSwoZC5s'@; put 'b2NhbD8kS2U6cUtlKShkLGwpKX0sc3R5bGU6ZnVuY3Rpb24gQ1hlKGMsbCxhKXt2YXIgZD0idHJhbnNmb3JtIj09KGMrPSIiKT92S2U6emFlO3JldHVybiBudWxsPT1sP3RoaXMuc3R5bGVUd2VlbihjLGZ1bmN0aW9uIF9YZShjLGwpe3ZhciBhLGQsaDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIg'@; put 'Zj1ZNyh0aGlzLGMpLF89KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoYyksWTcodGhpcyxjKSk7cmV0dXJuIGY9PT1fP251bGw6Zj09PWEmJl89PT1kP2g6aD1sKGE9ZixkPV8pfX0oYyxkKSkub24oImVuZC5zdHlsZS4iK2MsVWFlKGMpKToiZnVuY3Rpb24iPT10eXBlb2YgbD90aGlzLnN0'@; put 'eWxlVHdlZW4oYyxmdW5jdGlvbiB5WGUoYyxsLGEpe3ZhciBkLGgsZjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgXz1ZNyh0aGlzLGMpLFQ9YSh0aGlzKSxXPVQrIiI7cmV0dXJuIG51bGw9PVQmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGMpLFc9VD1ZNyh0aGlzLGMpKSxfPT09Vz9udWxs'@; put 'Ol89PT1kJiZXPT09aD9mOihoPVcsZj1sKGQ9XyxUKSl9fShjLGQsUlUodGhpcywic3R5bGUuIitjLGwpKSkuZWFjaChmdW5jdGlvbiB3WGUoYyxsKXt2YXIgYSxkLGgsVCxmPSJzdHlsZS4iK2wsXz0iZW5kLiIrZjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgVz1UaCh0aGlzLGMpLGllPVcub24s'@; put 'cGU9bnVsbD09Vy52YWx1ZVtmXT9UfHwoVD1VYWUobCkpOnZvaWQgMDsoaWUhPT1hfHxoIT09cGUpJiYoZD0oYT1pZSkuY29weSgpKS5vbihfLGg9cGUpLFcub249ZH19KHRoaXMuX2lkLGMpKTp0aGlzLnN0eWxlVHdlZW4oYyxmdW5jdGlvbiBiWGUoYyxsLGEpe3ZhciBkLGYsaD1hKyIiO3Jl'@; put 'dHVybiBmdW5jdGlvbigpe3ZhciBfPVk3KHRoaXMsYyk7cmV0dXJuIF89PT1oP251bGw6Xz09PWQ/ZjpmPWwoZD1fLGEpfX0oYyxkLGwpLGEpLm9uKCJlbmQuc3R5bGUuIitjLG51bGwpfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uIHhYZShjLGwsYSl7dmFyIGQ9InN0eWxlLiIrKGMrPSIiKTtpZihh'@; put 'cmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGQ9dGhpcy50d2VlbihkKSkmJmQuX3ZhbHVlO2lmKG51bGw9PWwpcmV0dXJuIHRoaXMudHdlZW4oZCxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgbCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZCxmdW5jdGlvbiBNWGUoYyxs'@; put 'LGEpe3ZhciBkLGg7ZnVuY3Rpb24gZigpe3ZhciBfPWwuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBfIT09aCYmKGQ9KGg9XykmJmZ1bmN0aW9uIFNYZShjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uKGQpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoYyxsLmNhbGwodGhpcyxkKSxhKX19KGMs'@; put 'XyxhKSksZH1yZXR1cm4gZi5fdmFsdWU9bCxmfShjLGwsYT8/IiIpKX0sdGV4dDpmdW5jdGlvbiBBWGUoYyl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiBjP2Z1bmN0aW9uIGtYZShjKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1jKHRoaXMpO3RoaXMudGV4'@; put 'dENvbnRlbnQ9bD8/IiJ9fShSVSh0aGlzLCJ0ZXh0IixjKSk6ZnVuY3Rpb24gRVhlKGMpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9Y319KG51bGw9PWM/IiI6YysiIikpfSx0ZXh0VHdlZW46ZnVuY3Rpb24gSVhlKGMpe3ZhciBsPSJ0ZXh0IjtpZihhcmd1bWVudHMubGVu'@; put 'Z3RoPDEpcmV0dXJuKGw9dGhpcy50d2VlbihsKSkmJmwuX3ZhbHVlO2lmKG51bGw9PWMpcmV0dXJuIHRoaXMudHdlZW4obCxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgYyl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4obCxmdW5jdGlvbiBEWGUoYyl7dmFyIGwsYTtmdW5j'@; put 'dGlvbiBkKCl7dmFyIGg9Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGghPT1hJiYobD0oYT1oKSYmZnVuY3Rpb24gVFhlKGMpe3JldHVybiBmdW5jdGlvbihsKXt0aGlzLnRleHRDb250ZW50PWMuY2FsbCh0aGlzLGwpfX0oaCkpLGx9cmV0dXJuIGQuX3ZhbHVlPWMsZH0oYykpfSxy'@; put 'ZW1vdmU6ZnVuY3Rpb24gZlhlKCl7cmV0dXJuIHRoaXMub24oImVuZC5yZW1vdmUiLGZ1bmN0aW9uIGhYZShjKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBhIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCthIT09YylyZXR1cm47bCYmbC5yZW1vdmVD'@; put 'aGlsZCh0aGlzKX19KHRoaXMuX2lkKSl9LHR3ZWVuOmZ1bmN0aW9uIHlLZShjLGwpe3ZhciBhPXRoaXMuX2lkO2lmKGMrPSIiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBfLGQ9UzIodGhpcy5ub2RlKCksYSkudHdlZW4saD0wLGY9ZC5sZW5ndGg7aDxmOysraClpZigoXz1kW2hdKS5u'@; put 'YW1lPT09YylyZXR1cm4gXy52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1sP19LZTpiS2UpKGEsYyxsKSl9LGRlbGF5OmZ1bmN0aW9uIFFLZShjKXt2YXIgbD10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBjP1hLZTpKS2UpKGwsYykpOlMyKHRoaXMubm9kZSgpLGwpLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbiBuWGUoYyl7dmFyIGw9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgYz9lWGU6dFhlKShsLGMpKTpTMih0aGlz'@; put 'Lm5vZGUoKSxsKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbiBpWGUoYyl7dmFyIGw9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGZ1bmN0aW9uIHJYZShjLGwpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBsKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24o'@; put 'KXtUaCh0aGlzLGMpLmVhc2U9bH19KGwsYykpOlMyKHRoaXMubm9kZSgpLGwpLmVhc2V9LGVhc2VWYXJ5aW5nOmZ1bmN0aW9uIHNYZShjKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYyl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiBvWGUoYyxsKXtyZXR1cm4gZnVu'@; put 'Y3Rpb24oKXt2YXIgYT1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl0aHJvdyBuZXcgRXJyb3I7VGgodGhpcyxjKS5lYXNlPWF9fSh0aGlzLl9pZCxjKSl9LGVuZDpmdW5jdGlvbiBSWGUoKXt2YXIgYyxsLGE9dGhpcyxkPWEuX2lkLGg9YS5zaXplKCk7'@; put 'cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGYsXyl7dmFyIFQ9e3ZhbHVlOl99LFc9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1oJiZmKCl9fTthLmVhY2goZnVuY3Rpb24oKXt2YXIgaWU9VGgodGhpcyxkKSxwZT1pZS5vbjtwZSE9PWMmJigobD0oYz1wZSkuY29weSgpKS5fLmNhbmNlbC5w'@; put 'dXNoKFQpLGwuXy5pbnRlcnJ1cHQucHVzaChUKSxsLl8uZW5kLnB1c2goVykpLGllLm9uPWx9KSwwPT09aCYmZigpfSl9LFtTeW1ib2wuaXRlcmF0b3JdOnIzW1N5bWJvbC5pdGVyYXRvcl19O3ZhciBGWGU9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOmZ1bmN0aW9uIFBY'@; put 'ZShjKXtyZXR1cm4oKGMqPTIpPD0xP2MqYypjOihjLT0yKSpjKmMrMikvMn19O2Z1bmN0aW9uIEhYZShjLGwpe2Zvcih2YXIgYTshKGE9Yy5fX3RyYW5zaXRpb24pfHwhKGE9YVtsXSk7KWlmKCEoYz1jLnBhcmVudE5vZGUpKXRocm93IG5ldyBFcnJvcihgdHJhbnNpdGlvbiAke2x9IG5vdCBm'@; put 'b3VuZGApO3JldHVybiBhfVlnLnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24gcEtlKGMpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXttVCh0aGlzLGMpfSl9LFlnLnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIE5YZShjKXt2YXIgbCxhO2MgaW5zdGFuY2VvZiBMaD8obD1j'@; put 'Ll9pZCxjPWMuX25hbWUpOihsPVphZSgpLChhPUZYZSkudGltZT1FVSgpLGM9bnVsbD09Yz9udWxsOmMrIiIpO2Zvcih2YXIgZD10aGlzLl9ncm91cHMsaD1kLmxlbmd0aCxmPTA7ZjxoOysrZilmb3IodmFyIFcsXz1kW2ZdLFQ9Xy5sZW5ndGgsaWU9MDtpZTxUOysraWUpKFc9X1tpZV0pJiZn'@; put 'VChXLGMsbCxpZSxfLGF8fEhYZShXLGwpKTtyZXR1cm4gbmV3IExoKGQsdGhpcy5fcGFyZW50cyxjLGwpfTt2YXIgVlhlPVtudWxsXTtjb25zdCBCVT17Y2FwdHVyZTohMCxwYXNzaXZlOiExfTtmdW5jdGlvbiBqVShjKXtjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wSW1tZWRpYXRlUHJvcGFn'@; put 'YXRpb24oKX1mdW5jdGlvbiBZYWUoYyl7cmV0dXJuKChjPU1hdGguZXhwKGMpKSsxL2MpLzJ9Y29uc3QgV1hlPWZ1bmN0aW9uIGMobCxhLGQpe2Z1bmN0aW9uIGgoZixfKXt2YXIgeXQsRXQsVD1mWzBdLFc9ZlsxXSxpZT1mWzJdLEVlPV9bMl0sWmU9X1swXS1ULGl0PV9bMV0tVyxldD1aZSpa'@; put 'ZStpdCppdDtpZihldDwxZS0xMilFdD1NYXRoLmxvZyhFZS9pZSkvbCx5dD1mdW5jdGlvbihjcil7cmV0dXJuW1QrY3IqWmUsVytjcippdCxpZSpNYXRoLmV4cChsKmNyKkV0KV19O2Vsc2V7dmFyIFN0PU1hdGguc3FydChldCksSnQ9KEVlKkVlLWllKmllK2QqZXQpLygyKmllKmEqU3QpLG5u'@; put 'PShFZSpFZS1pZSppZS1kKmV0KS8oMipFZSphKlN0KSx2bj1NYXRoLmxvZyhNYXRoLnNxcnQoSnQqSnQrMSktSnQpLE5uPU1hdGgubG9nKE1hdGguc3FydChubipubisxKS1ubik7RXQ9KE5uLXZuKS9sLHl0PWZ1bmN0aW9uKGNyKXt2YXIgSXI9Y3IqRXQsRWk9WWFlKHZuKSxJaT1pZS8oYSpT'@; put 'dCkqKEVpKmZ1bmN0aW9uIFlYZShjKXtyZXR1cm4oKGM9TWF0aC5leHAoMipjKSktMSkvKGMrMSl9KGwqSXIrdm4pLWZ1bmN0aW9uIFpYZShjKXtyZXR1cm4oKGM9TWF0aC5leHAoYykpLTEvYykvMn0odm4pKTtyZXR1cm5bVCtJaSpaZSxXK0lpKml0LGllKkVpL1lhZShsKklyK3ZuKV19fXJl'@; put 'dHVybiB5dC5kdXJhdGlvbj0xZTMqRXQqbC9NYXRoLlNRUlQyLHl0fXJldHVybiBoLnJobz1mdW5jdGlvbihmKXt2YXIgXz1NYXRoLm1heCguMDAxLCtmKSxUPV8qXztyZXR1cm4gYyhfLFQsVCpUKX0saH0oTWF0aC5TUVJUMiwyLDQpO2Z1bmN0aW9uIEtnKGMsbCl7aWYoYz1mdW5jdGlvbiBH'@; put 'WGUoYyl7bGV0IGw7Zm9yKDtsPWMuc291cmNlRXZlbnQ7KWM9bDtyZXR1cm4gY30oYyksdm9pZCAwPT09bCYmKGw9Yy5jdXJyZW50VGFyZ2V0KSxsKXt2YXIgYT1sLm93bmVyU1ZHRWxlbWVudHx8bDtpZihhLmNyZWF0ZVNWR1BvaW50KXt2YXIgZD1hLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJu'@; put 'IGQueD1jLmNsaWVudFgsZC55PWMuY2xpZW50WSxbKGQ9ZC5tYXRyaXhUcmFuc2Zvcm0obC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpKS54LGQueV19aWYobC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBoPWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW2MuY2xpZW50WC1o'@; put 'LmxlZnQtbC5jbGllbnRMZWZ0LGMuY2xpZW50WS1oLnRvcC1sLmNsaWVudFRvcF19fXJldHVybltjLnBhZ2VYLGMucGFnZVldfWNvbnN0IE1UPWM9PigpPT5jO2Z1bmN0aW9uICRYZShjLHtzb3VyY2VFdmVudDpsLHRhcmdldDphLHRyYW5zZm9ybTpkLGRpc3BhdGNoOmh9KXtPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydGllcyh0aGlzLHt0eXBlOnt2YWx1ZTpjLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSxzb3VyY2VFdmVudDp7dmFsdWU6bCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0sdGFyZ2V0Ont2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSx0'@; put 'cmFuc2Zvcm06e3ZhbHVlOmQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9LF86e3ZhbHVlOmh9fSl9ZnVuY3Rpb24gaTMoYyxsLGEpe3RoaXMuaz1jLHRoaXMueD1sLHRoaXMueT1hfWkzLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aTMsc2NhbGU6ZnVuY3Rpb24oYyl7cmV0dXJuIDE9'@; put 'PT1jP3RoaXM6bmV3IGkzKHRoaXMuaypjLHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24oYyxsKXtyZXR1cm4gMD09PWMmMD09PWw/dGhpczpuZXcgaTModGhpcy5rLHRoaXMueCt0aGlzLmsqYyx0aGlzLnkrdGhpcy5rKmwpfSxhcHBseTpmdW5jdGlvbihjKXtyZXR1cm5bY1sw'@; put 'XSp0aGlzLmsrdGhpcy54LGNbMV0qdGhpcy5rK3RoaXMueV19LGFwcGx5WDpmdW5jdGlvbihjKXtyZXR1cm4gYyp0aGlzLmsrdGhpcy54fSxhcHBseVk6ZnVuY3Rpb24oYyl7cmV0dXJuIGMqdGhpcy5rK3RoaXMueX0saW52ZXJ0OmZ1bmN0aW9uKGMpe3JldHVyblsoY1swXS10aGlzLngpL3Ro'@; put 'aXMuaywoY1sxXS10aGlzLnkpL3RoaXMua119LGludmVydFg6ZnVuY3Rpb24oYyl7cmV0dXJuKGMtdGhpcy54KS90aGlzLmt9LGludmVydFk6ZnVuY3Rpb24oYyl7cmV0dXJuKGMtdGhpcy55KS90aGlzLmt9LHJlc2NhbGVYOmZ1bmN0aW9uKGMpe3JldHVybiBjLmNvcHkoKS5kb21haW4oYy5y'@; put 'YW5nZSgpLm1hcCh0aGlzLmludmVydFgsdGhpcykubWFwKGMuaW52ZXJ0LGMpKX0scmVzY2FsZVk6ZnVuY3Rpb24oYyl7cmV0dXJuIGMuY29weSgpLmRvbWFpbihjLnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSx0aGlzKS5tYXAoYy5pbnZlcnQsYykpfSx0b1N0cmluZzpmdW5jdGlvbigpe3Jl'@; put 'dHVybiJ0cmFuc2xhdGUoIit0aGlzLngrIiwiK3RoaXMueSsiKSBzY2FsZSgiK3RoaXMuaysiKSJ9fTt2YXIgeFQ9bmV3IGkzKDEsMCwwKTtmdW5jdGlvbiBFVChjKXtmb3IoOyFjLl9fem9vbTspaWYoIShjPWMucGFyZW50Tm9kZSkpcmV0dXJuIHhUO3JldHVybiBjLl9fem9vbX1mdW5jdGlv'@; put 'biB6VShjKXtjLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIHZ3KGMpe2MucHJldmVudERlZmF1bHQoKSxjLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIHFYZShjKXtyZXR1cm4hKGMuY3RybEtleSYmIndoZWVsIiE9PWMudHlwZXx8Yy5idXR0b24pfWZ1'@; put 'bmN0aW9uIEtYZSgpe3ZhciBjPXRoaXM7cmV0dXJuIGMgaW5zdGFuY2VvZiBTVkdFbGVtZW50PyhjPWMub3duZXJTVkdFbGVtZW50fHxjKS5oYXNBdHRyaWJ1dGUoInZpZXdCb3giKT9bWyhjPWMudmlld0JveC5iYXNlVmFsKS54LGMueV0sW2MueCtjLndpZHRoLGMueStjLmhlaWdodF1dOltb'@; put 'MCwwXSxbYy53aWR0aC5iYXNlVmFsLnZhbHVlLGMuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTpbWzAsMF0sW2MuY2xpZW50V2lkdGgsYy5jbGllbnRIZWlnaHRdXX1mdW5jdGlvbiBXYWUoKXtyZXR1cm4gdGhpcy5fX3pvb218fHhUfWZ1bmN0aW9uIFhYZShjKXtyZXR1cm4tYy5kZWx0YVkqKDE9'@; put 'PT1jLmRlbHRhTW9kZT8uMDU6Yy5kZWx0YU1vZGU/MTouMDAyKSooYy5jdHJsS2V5PzEwOjEpfWZ1bmN0aW9uIEpYZSgpe3JldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN8fCJvbnRvdWNoc3RhcnQiaW4gdGhpc31mdW5jdGlvbiBRWGUoYyxsLGEpe3ZhciBkPWMuaW52ZXJ0WChsWzBd'@; put 'WzBdKS1hWzBdWzBdLGg9Yy5pbnZlcnRYKGxbMV1bMF0pLWFbMV1bMF0sZj1jLmludmVydFkobFswXVsxXSktYVswXVsxXSxfPWMuaW52ZXJ0WShsWzFdWzFdKS1hWzFdWzFdO3JldHVybiBjLnRyYW5zbGF0ZShoPmQ/KGQraCkvMjpNYXRoLm1pbigwLGQpfHxNYXRoLm1heCgwLGgpLF8+Zj8o'@; put 'ZitfKS8yOk1hdGgubWluKDAsZil8fE1hdGgubWF4KDAsXykpfWZ1bmN0aW9uIEdhZShjKXt2YXIgbD17fSxhPWMubm9kZSgpLm5vZGVOYW1lO2wudGFnPWEsIiN0ZXh0Ij09YT9sLnRleHQ9Yy50ZXh0KCk6IiNjb21tZW50Ij09YSYmKGwuY29tbWVudD1jLnRleHQoKSksbC5hdHRyaWJ1dGVz'@; put 'PXt9O3ZhciBkPWMubm9kZSgpLmF0dHJpYnV0ZXM7aWYoZClmb3IodmFyIGg9MDtoPGQubGVuZ3RoO2grKyl7dmFyIGY9ZFtoXTtsLmF0dHJpYnV0ZXNbZi5uYW1lXT1mLnZhbHVlfXZhciBwZSxXPWMubm9kZSgpLnRyYW5zZm9ybTtpZihXJiYwIT1XLmJhc2VWYWwubnVtYmVyT2ZJdGVtcyl7'@; put 'dmFyIGllPVcuYmFzZVZhbC5jb25zb2xpZGF0ZSgpLm1hdHJpeDtsLnRyYW5zbGF0aW9uPXt4OmllLmUseTppZS5mfSxsLnNjYWxlPWllLmF9aWYoImVsbGlwc2UiPT1hJiYobC5jZW50ZXI9e3g6bC5hdHRyaWJ1dGVzLmN4LHk6bC5hdHRyaWJ1dGVzLmN5fSksInBvbHlnb24iPT1hKXt2YXIg'@; put 'd2U9KHBlPWMuYXR0cigicG9pbnRzIikuc3BsaXQoIiAiKSkubWFwKGZ1bmN0aW9uKEp0KXtyZXR1cm4gSnQuc3BsaXQoIiwiKVswXX0pLEVlPXBlLm1hcChmdW5jdGlvbihKdCl7cmV0dXJuIEp0LnNwbGl0KCIsIilbMV19KSxaZT1NYXRoLm1pbi5hcHBseShudWxsLHdlKSxpdD1NYXRoLm1h'@; put 'eC5hcHBseShudWxsLHdlKSxldD1NYXRoLm1pbi5hcHBseShudWxsLEVlKSx5dD1NYXRoLm1heC5hcHBseShudWxsLEVlKTtsLmJib3g9e3g6WmUseTpldCx3aWR0aDppdC1aZSxoZWlnaHQ6eXQtZXR9LGwuY2VudGVyPXt4OihaZStpdCkvMix5OihldCt5dCkvMn19InBhdGgiPT1hJiYoKHBl'@; put 'PWMuYXR0cigiZCIpLnNwbGl0KC9bQS1aIF0vKSkuc2hpZnQoKSx3ZT1wZS5tYXAoZnVuY3Rpb24oZnIpe3JldHVybitmci5zcGxpdCgiLCIpWzBdfSksRWU9cGUubWFwKGZ1bmN0aW9uKGZyKXtyZXR1cm4rZnIuc3BsaXQoIiwiKVsxXX0pLFplPU1hdGgubWluLmFwcGx5KG51bGwsd2UpLGl0'@; put 'PU1hdGgubWF4LmFwcGx5KG51bGwsd2UpLGV0PU1hdGgubWluLmFwcGx5KG51bGwsRWUpLHl0PU1hdGgubWF4LmFwcGx5KG51bGwsRWUpLGwuYmJveD17eDpaZSx5OmV0LHdpZHRoOml0LVplLGhlaWdodDp5dC1ldH0sbC5jZW50ZXI9e3g6KFplK2l0KS8yLHk6KGV0K3l0KS8yfSxsLnRvdGFs'@; put 'TGVuZ3RoPWMubm9kZSgpLmdldFRvdGFsTGVuZ3RoKCkpO3JldHVybiJ0ZXh0Ij09YSYmKGwuY2VudGVyPXt4OmMuYXR0cigieCIpLHk6Yy5hdHRyKCJ5Iil9KSwiI3RleHQiPT1hP2wudGV4dD1jLnRleHQoKToiI2NvbW1lbnQiPT1hJiYobC5jb21tZW50PWMudGV4dCgpKSxsfWZ1bmN0aW9u'@; put 'IFhnKGMpe3ZhciBsPUdhZShjKTtyZXR1cm4gbC5jaGlsZHJlbj1bXSxNVShjLm5vZGUoKS5jaGlsZE5vZGVzKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9WGcoa3ModGhpcykpO2QucGFyZW50PWwsbC5jaGlsZHJlbi5wdXNoKGQpfSksbH1mdW5jdGlvbiBVVShjKXtyZXR1cm4iI3RleHQiPT1j'@; put 'LnRhZz9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik6IiNjb21tZW50Ij09Yy50YWc/ZG9jdW1lbnQuY3JlYXRlQ29tbWVudChjLmNvbW1lbnQpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGMudGFnKX1mdW5jdGlvbiBaVShjKXt2YXIg'@; put 'bD1VVShjKSxhPWtzKGwpLGQ9Yy5hdHRyaWJ1dGVzO2Zvcih2YXIgaCBvZiBPYmplY3Qua2V5cyhkKSlhLmF0dHIoaCxkW2hdKTtyZXR1cm4gbH1mdW5jdGlvbiAkYWUoYyxsKXt2YXIgYT1rcyhjLm5vZGUoKS5wYXJlbnROb2RlKSxkPVpVKGwpLGg9YS5pbnNlcnQoZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gZH0sZnVuY3Rpb24oKXtyZXR1cm4gYy5ub2RlKCl9KTtyZXR1cm4gYy5yZW1vdmUoKSxofWZ1bmN0aW9uIFlVKGMsbCl7IWZ1bmN0aW9uIHRKZShjLGwpe2MuZGF0dW0obCksYy5kYXRhKFtsXSxmdW5jdGlvbihhKXtyZXR1cm4gYS5rZXl9KX0oYyxsKSxNVShjLm5vZGUoKS5jaGlsZE5v'@; put 'ZGVzKS5lYWNoKGZ1bmN0aW9uKGQsaCl7WVUoa3ModGhpcyksbC5jaGlsZHJlbltoXSl9KX1mdW5jdGlvbiBfdyhjLGw9MCl7dmFyIGE9a3ModGhpcyksaD1jLmF0dHJpYnV0ZXMsZj1hLm5vZGUoKS5hdHRyaWJ1dGVzO2lmKGYpZm9yKHZhciBfPTA7XzxmLmxlbmd0aDtfKyspe3ZhciBUPWZb'@; put 'X10sVz1ULm5hbWU7aWYoInhtbG5zIiE9Vy5zcGxpdCgiOiIpWzBdJiZULm5hbWVzcGFjZVVSSSl7dmFyIGllPVQubmFtZXNwYWNlVVJJLnNwbGl0KCIvIik7Vz1pZVtpZS5sZW5ndGgtMV0rIjoiK1d9VyBpbiBofHwoaFtXXT1udWxsKX1mb3IodmFyIHdlIG9mIE9iamVjdC5rZXlzKGgpKWEu'@; put 'YXR0cih3ZSxoW3dlXSk7Yy50ZXh0JiZhLnRleHQoYy50ZXh0KSxmdW5jdGlvbiBuSmUoYyxsKXt2YXIgYT1jLnNlbGVjdEFsbChmdW5jdGlvbigpe3JldHVybiBjLm5vZGUoKS5jaGlsZE5vZGVzfSksZD0oYT1hLmRhdGEoZnVuY3Rpb24oXyl7cmV0dXJuIF8uY2hpbGRyZW59LGZ1bmN0aW9u'@; put 'KF8pe3JldHVybiBfLnRhZysiLSIrbH0pKS5lbnRlcigpLmFwcGVuZChmdW5jdGlvbihfKXtyZXR1cm4gVVUoXyl9KSxoPWEuZXhpdCgpO2g9aC5yZW1vdmUoKSxhPWQubWVyZ2UoYSk7dmFyIGY9e307YS5lYWNoKGZ1bmN0aW9uKF8pe3ZhciBUPV8udGFnO251bGw9PWZbVF0mJihmW1RdPTAp'@; put 'O3ZhciBXPWZbVF0rKztfdy5jYWxsKHRoaXMsXyxXKX0pfShhLGwpfWZ1bmN0aW9uIHFhZShjLGwpe3ZhciBfLGE9bD9sLmxlbmd0aDowLGQ9Yz9NYXRoLm1pbihhLGMubGVuZ3RoKTowLGg9bmV3IEFycmF5KGQpLGY9bmV3IEFycmF5KGEpO2ZvcihfPTA7XzxkOysrXyloW19dPWtUKGNbX10s'@; put 'bFtfXSk7Zm9yKDtfPGE7KytfKWZbX109bFtfXTtyZXR1cm4gZnVuY3Rpb24oVCl7Zm9yKF89MDtfPGQ7KytfKWZbX109aFtfXShUKTtyZXR1cm4gZn19ZnVuY3Rpb24gckplKGMsbCl7dmFyIGE9bmV3IERhdGU7cmV0dXJuIGM9K2MsbD0rbCxmdW5jdGlvbihkKXtyZXR1cm4gYS5zZXRUaW1l'@; put 'KGMqKDEtZCkrbCpkKSxhfX1mdW5jdGlvbiBpSmUoYyxsKXt2YXIgaCxhPXt9LGQ9e307Zm9yKGggaW4obnVsbD09PWN8fCJvYmplY3QiIT10eXBlb2YgYykmJihjPXt9KSwobnVsbD09PWx8fCJvYmplY3QiIT10eXBlb2YgbCkmJihsPXt9KSxsKWggaW4gYz9hW2hdPWtUKGNbaF0sbFtoXSk6'@; put 'ZFtoXT1sW2hdO3JldHVybiBmdW5jdGlvbihmKXtmb3IoaCBpbiBhKWRbaF09YVtoXShmKTtyZXR1cm4gZH19ZnVuY3Rpb24gb0plKGMsbCl7bHx8KGw9W10pO3ZhciBoLGE9Yz9NYXRoLm1pbihsLmxlbmd0aCxjLmxlbmd0aCk6MCxkPWwuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24oZil7Zm9y'@; put 'KGg9MDtoPGE7KytoKWRbaF09Y1toXSooMS1mKStsW2hdKmY7cmV0dXJuIGR9fWZ1bmN0aW9uIGtUKGMsbCl7dmFyIGQsYT10eXBlb2YgbDtyZXR1cm4gbnVsbD09bHx8ImJvb2xlYW4iPT09YT9GVShsKTooIm51bWJlciI9PT1hP0RoOiJzdHJpbmciPT09YT8oZD1HZyhsKSk/KGw9ZCxTVCk6'@; put 'amFlOmwgaW5zdGFuY2VvZiBHZz9TVDpsIGluc3RhbmNlb2YgRGF0ZT9ySmU6ZnVuY3Rpb24gc0plKGMpe3JldHVybiBBcnJheUJ1ZmZlci5pc1ZpZXcoYykmJiEoYyBpbnN0YW5jZW9mIERhdGFWaWV3KX0obCk/b0plOkFycmF5LmlzQXJyYXkobCk/cWFlOiJmdW5jdGlvbiIhPXR5cGVvZiBs'@; put 'LnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBsLnRvU3RyaW5nfHxpc05hTihsKT9pSmU6RGgpKGMsbCl9ZnVuY3Rpb24gS2FlKCl7dmFyIGM9dGhpcyxkPWtzKHRoaXMuX3NlbGVjdGlvbi5ub2RlKCkucXVlcnlTZWxlY3Rvcigic3ZnIikpO2lmKDA9PWQuc2l6ZSgpKXJldHVybiB0aGlz'@; put 'O3RoaXMuX3pvb21TZWxlY3Rpb249ZDt2YXIgaD1mdW5jdGlvbiBlSmUoKXt2YXIgcGUsd2UsRWUsYz1xWGUsbD1LWGUsYT1RWGUsZD1YWGUsaD1KWGUsZj1bMCwxLzBdLF89W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sVD0yNTAsVz1XWGUsaWU9eFUoInN0YXJ0Iiwiem9vbSIsImVuZCIpLFpl'@; put 'PTUwMCxpdD0xNTAsZXQ9MCx5dD0xMDtmdW5jdGlvbiBFdChPbil7T24ucHJvcGVydHkoIl9fem9vbSIsV2FlKS5vbigid2hlZWwuem9vbSIsSXIse3Bhc3NpdmU6ITF9KS5vbigibW91c2Vkb3duLnpvb20iLEVpKS5vbigiZGJsY2xpY2suem9vbSIsSWkpLmZpbHRlcihoKS5vbigidG91Y2hz'@; put 'dGFydC56b29tIixmcikub24oInRvdWNobW92ZS56b29tIixpaSkub24oInRvdWNoZW5kLnpvb20gdG91Y2hjYW5jZWwuem9vbSIsanIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIil9ZnVuY3Rpb24gU3QoT24sRnIpe3JldHVybihGcj1NYXRo'@; put 'Lm1heChmWzBdLE1hdGgubWluKGZbMV0sRnIpKSk9PT1Pbi5rP09uOm5ldyBpMyhGcixPbi54LE9uLnkpfWZ1bmN0aW9uIEp0KE9uLEZyLFFuKXt2YXIgTXI9RnJbMF0tUW5bMF0qT24uayxfcj1GclsxXS1RblsxXSpPbi5rO3JldHVybiBNcj09PU9uLngmJl9yPT09T24ueT9PbjpuZXcgaTMo'@; put 'T24uayxNcixfcil9ZnVuY3Rpb24gbm4oT24pe3JldHVyblsoK09uWzBdWzBdKyArT25bMV1bMF0pLzIsKCtPblswXVsxXSsgK09uWzFdWzFdKS8yXX1mdW5jdGlvbiB2bihPbixGcixRbixNcil7T24ub24oInN0YXJ0Lnpvb20iLGZ1bmN0aW9uKCl7Tm4odGhpcyxhcmd1bWVudHMpLmV2ZW50'@; put 'KE1yKS5zdGFydCgpfSkub24oImludGVycnVwdC56b29tIGVuZC56b29tIixmdW5jdGlvbigpe05uKHRoaXMsYXJndW1lbnRzKS5ldmVudChNcikuZW5kKCl9KS50d2Vlbigiem9vbSIsZnVuY3Rpb24oKXt2YXIgX3I9dGhpcyx2dD1hcmd1bWVudHMsT3Q9Tm4oX3IsdnQpLmV2ZW50KE1yKSxj'@; put 'bj1sLmFwcGx5KF9yLHZ0KSxFbj1udWxsPT1Rbj9ubihjbik6ImZ1bmN0aW9uIj09dHlwZW9mIFFuP1FuLmFwcGx5KF9yLHZ0KTpRbixQbj1NYXRoLm1heChjblsxXVswXS1jblswXVswXSxjblsxXVsxXS1jblswXVsxXSksSm49X3IuX196b29tLFByPSJmdW5jdGlvbiI9PXR5cGVvZiBGcj9G'@; put 'ci5hcHBseShfcix2dCk6RnIsT3I9VyhKbi5pbnZlcnQoRW4pLmNvbmNhdChQbi9Kbi5rKSxQci5pbnZlcnQoRW4pLmNvbmNhdChQbi9Qci5rKSk7cmV0dXJuIGZ1bmN0aW9uKCRyKXtpZigxPT09JHIpJHI9UHI7ZWxzZXt2YXIgWXI9T3IoJHIpLE5yPVBuL1lyWzJdOyRyPW5ldyBpMyhOcixF'@; put 'blswXS1ZclswXSpOcixFblsxXS1ZclsxXSpOcil9T3Quem9vbShudWxsLCRyKX19KX1mdW5jdGlvbiBObihPbixGcixRbil7cmV0dXJuIVFuJiZPbi5fX3pvb21pbmd8fG5ldyBjcihPbixGcil9ZnVuY3Rpb24gY3IoT24sRnIpe3RoaXMudGhhdD1Pbix0aGlzLmFyZ3M9RnIsdGhpcy5hY3Rp'@; put 'dmU9MCx0aGlzLnNvdXJjZUV2ZW50PW51bGwsdGhpcy5leHRlbnQ9bC5hcHBseShPbixGciksdGhpcy50YXBzPTB9ZnVuY3Rpb24gSXIoT24sLi4uRnIpe2lmKGMuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgUW49Tm4odGhpcyxGcikuZXZlbnQoT24pLE1yPXRoaXMuX196b29tLF9yPU1h'@; put 'dGgubWF4KGZbMF0sTWF0aC5taW4oZlsxXSxNci5rKk1hdGgucG93KDIsZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpKSksdnQ9S2coT24pO2lmKFFuLndoZWVsKShRbi5tb3VzZVswXVswXSE9PXZ0WzBdfHxRbi5tb3VzZVswXVsxXSE9PXZ0WzFdKSYmKFFuLm1vdXNlWzFdPU1yLmludmVydChR'@; put 'bi5tb3VzZVswXT12dCkpLGNsZWFyVGltZW91dChRbi53aGVlbCk7ZWxzZXtpZihNci5rPT09X3IpcmV0dXJuO1FuLm1vdXNlPVt2dCxNci5pbnZlcnQodnQpXSxtVCh0aGlzKSxRbi5zdGFydCgpfXZ3KE9uKSxRbi53aGVlbD1zZXRUaW1lb3V0KGZ1bmN0aW9uIE90KCl7UW4ud2hlZWw9bnVs'@; put 'bCxRbi5lbmQoKX0saXQpLFFuLnpvb20oIm1vdXNlIixhKEp0KFN0KE1yLF9yKSxRbi5tb3VzZVswXSxRbi5tb3VzZVsxXSksUW4uZXh0ZW50LF8pKX19ZnVuY3Rpb24gRWkoT24sLi4uRnIpe2lmKCFFZSYmYy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBRbj1Pbi5jdXJyZW50VGFyZ2V0'@; put 'LE1yPU5uKHRoaXMsRnIsITApLmV2ZW50KE9uKSxfcj1rcyhPbi52aWV3KS5vbigibW91c2Vtb3ZlLnpvb20iLGZ1bmN0aW9uIEVuKEpuKXtpZih2dyhKbiksIU1yLm1vdmVkKXt2YXIgUHI9Sm4uY2xpZW50WC1PdCxPcj1Kbi5jbGllbnRZLWNuO01yLm1vdmVkPVByKlByK09yKk9yPmV0fU1y'@; put 'LmV2ZW50KEpuKS56b29tKCJtb3VzZSIsYShKdChNci50aGF0Ll9fem9vbSxNci5tb3VzZVswXT1LZyhKbixRbiksTXIubW91c2VbMV0pLE1yLmV4dGVudCxfKSl9LCEwKS5vbigibW91c2V1cC56b29tIixmdW5jdGlvbiBQbihKbil7X3Iub24oIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9v'@; put 'bSIsbnVsbCksZnVuY3Rpb24gelhlKGMsbCl7dmFyIGE9Yy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZD1rcyhjKS5vbigiZHJhZ3N0YXJ0LmRyYWciLG51bGwpO2wmJihkLm9uKCJjbGljay5kcmFnIixqVSxCVSksc2V0VGltZW91dChmdW5jdGlvbigpe2Qub24oImNsaWNrLmRyYWciLG51'@; put 'bGwpfSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gYT9kLm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKTooYS5zdHlsZS5Nb3pVc2VyU2VsZWN0PWEuX19ub3NlbGVjdCxkZWxldGUgYS5fX25vc2VsZWN0KX0oSm4udmlldyxNci5tb3ZlZCksdncoSm4pLE1yLmV2ZW50KEpuKS5lbmQoKX0sITAp'@; put 'LHZ0PUtnKE9uLFFuKSxPdD1Pbi5jbGllbnRYLGNuPU9uLmNsaWVudFk7KGZ1bmN0aW9uIGpYZShjKXt2YXIgbD1jLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxhPWtzKGMpLm9uKCJkcmFnc3RhcnQuZHJhZyIsalUsQlUpOyJvbnNlbGVjdHN0YXJ0ImluIGw/YS5vbigic2VsZWN0c3RhcnQu'@; put 'ZHJhZyIsalUsQlUpOihsLl9fbm9zZWxlY3Q9bC5zdHlsZS5Nb3pVc2VyU2VsZWN0LGwuc3R5bGUuTW96VXNlclNlbGVjdD0ibm9uZSIpfSkoT24udmlldykselUoT24pLE1yLm1vdXNlPVt2dCx0aGlzLl9fem9vbS5pbnZlcnQodnQpXSxtVCh0aGlzKSxNci5zdGFydCgpfX1mdW5jdGlvbiBJ'@; put 'aShPbiwuLi5Gcil7aWYoYy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBRbj10aGlzLl9fem9vbSxNcj1LZyhPbi5jaGFuZ2VkVG91Y2hlcz9Pbi5jaGFuZ2VkVG91Y2hlc1swXTpPbix0aGlzKSxfcj1Rbi5pbnZlcnQoTXIpLE90PWEoSnQoU3QoUW4sUW4uayooT24uc2hpZnRLZXk/LjU6'@; put 'MikpLE1yLF9yKSxsLmFwcGx5KHRoaXMsRnIpLF8pO3Z3KE9uKSxUPjA/a3ModGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKFQpLmNhbGwodm4sT3QsTXIsT24pOmtzKHRoaXMpLmNhbGwoRXQudHJhbnNmb3JtLE90LE1yLE9uKX19ZnVuY3Rpb24gZnIoT24sLi4uRnIpe2lmKGMuYXBwbHko'@; put 'dGhpcyxhcmd1bWVudHMpKXt2YXIgdnQsT3QsY24sRW4sUW49T24udG91Y2hlcyxNcj1Rbi5sZW5ndGgsX3I9Tm4odGhpcyxGcixPbi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg9PT1NcikuZXZlbnQoT24pO2Zvcih6VShPbiksT3Q9MDtPdDxNcjsrK090KUVuPVtFbj1LZyhjbj1RbltPdF0sdGhp'@; put 'cyksdGhpcy5fX3pvb20uaW52ZXJ0KEVuKSxjbi5pZGVudGlmaWVyXSxfci50b3VjaDA/IV9yLnRvdWNoMSYmX3IudG91Y2gwWzJdIT09RW5bMl0mJihfci50b3VjaDE9RW4sX3IudGFwcz0wKTooX3IudG91Y2gwPUVuLHZ0PSEwLF9yLnRhcHM9MSshIXBlKTtwZSYmKHBlPWNsZWFyVGltZW91'@; put 'dChwZSkpLHZ0JiYoX3IudGFwczwyJiYod2U9RW5bMF0scGU9c2V0VGltZW91dChmdW5jdGlvbigpe3BlPW51bGx9LFplKSksbVQodGhpcyksX3Iuc3RhcnQoKSl9fWZ1bmN0aW9uIGlpKE9uLC4uLkZyKXtpZih0aGlzLl9fem9vbWluZyl7dmFyIHZ0LE90LGNuLEVuLFFuPU5uKHRoaXMsRnIp'@; put 'LmV2ZW50KE9uKSxNcj1Pbi5jaGFuZ2VkVG91Y2hlcyxfcj1Nci5sZW5ndGg7Zm9yKHZ3KE9uKSx2dD0wO3Z0PF9yOysrdnQpY249S2coT3Q9TXJbdnRdLHRoaXMpLFFuLnRvdWNoMCYmUW4udG91Y2gwWzJdPT09T3QuaWRlbnRpZmllcj9Rbi50b3VjaDBbMF09Y246UW4udG91Y2gxJiZRbi50'@; put 'b3VjaDFbMl09PT1PdC5pZGVudGlmaWVyJiYoUW4udG91Y2gxWzBdPWNuKTtpZihPdD1Rbi50aGF0Ll9fem9vbSxRbi50b3VjaDEpe3ZhciBQbj1Rbi50b3VjaDBbMF0sSm49UW4udG91Y2gwWzFdLFByPVFuLnRvdWNoMVswXSxPcj1Rbi50b3VjaDFbMV0sJHI9KCRyPVByWzBdLVBuWzBdKSok'@; put 'cisoJHI9UHJbMV0tUG5bMV0pKiRyLFlyPShZcj1PclswXS1KblswXSkqWXIrKFlyPU9yWzFdLUpuWzFdKSpZcjtPdD1TdChPdCxNYXRoLnNxcnQoJHIvWXIpKSxjbj1bKFBuWzBdK1ByWzBdKS8yLChQblsxXStQclsxXSkvMl0sRW49WyhKblswXStPclswXSkvMiwoSm5bMV0rT3JbMV0pLzJd'@; put 'fWVsc2V7aWYoIVFuLnRvdWNoMClyZXR1cm47Y249UW4udG91Y2gwWzBdLEVuPVFuLnRvdWNoMFsxXX1Rbi56b29tKCJ0b3VjaCIsYShKdChPdCxjbixFbiksUW4uZXh0ZW50LF8pKX19ZnVuY3Rpb24ganIoT24sLi4uRnIpe2lmKHRoaXMuX196b29taW5nKXt2YXIgdnQsT3QsUW49Tm4odGhp'@; put 'cyxGcikuZXZlbnQoT24pLE1yPU9uLmNoYW5nZWRUb3VjaGVzLF9yPU1yLmxlbmd0aDtmb3IoelUoT24pLEVlJiZjbGVhclRpbWVvdXQoRWUpLEVlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtFZT1udWxsfSxaZSksdnQ9MDt2dDxfcjsrK3Z0KU90PU1yW3Z0XSxRbi50b3VjaDAmJlFuLnRvdWNo'@; put 'MFsyXT09PU90LmlkZW50aWZpZXI/ZGVsZXRlIFFuLnRvdWNoMDpRbi50b3VjaDEmJlFuLnRvdWNoMVsyXT09PU90LmlkZW50aWZpZXImJmRlbGV0ZSBRbi50b3VjaDE7aWYoUW4udG91Y2gxJiYhUW4udG91Y2gwJiYoUW4udG91Y2gwPVFuLnRvdWNoMSxkZWxldGUgUW4udG91Y2gxKSxRbi50'@; put 'b3VjaDApUW4udG91Y2gwWzFdPXRoaXMuX196b29tLmludmVydChRbi50b3VjaDBbMF0pO2Vsc2UgaWYoUW4uZW5kKCksMj09PVFuLnRhcHMmJihPdD1LZyhPdCx0aGlzKSxNYXRoLmh5cG90KHdlWzBdLU90WzBdLHdlWzFdLU90WzFdKTx5dCkpe3ZhciBjbj1rcyh0aGlzKS5vbigiZGJsY2xp'@; put 'Y2suem9vbSIpO2NuJiZjbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX1yZXR1cm4gRXQudHJhbnNmb3JtPWZ1bmN0aW9uKE9uLEZyLFFuLE1yKXt2YXIgX3I9T24uc2VsZWN0aW9uP09uLnNlbGVjdGlvbigpOk9uO19yLnByb3BlcnR5KCJfX3pvb20iLFdhZSksT24hPT1fcj92bihPbixGcixR'@; put 'bixNcik6X3IuaW50ZXJydXB0KCkuZWFjaChmdW5jdGlvbigpe05uKHRoaXMsYXJndW1lbnRzKS5ldmVudChNcikuc3RhcnQoKS56b29tKG51bGwsImZ1bmN0aW9uIj09dHlwZW9mIEZyP0ZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpGcikuZW5kKCl9KX0sRXQuc2NhbGVCeT1mdW5jdGlvbihP'@; put 'bixGcixRbixNcil7RXQuc2NhbGVUbyhPbixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fem9vbS5rKigiZnVuY3Rpb24iPT10eXBlb2YgRnI/RnIuYXBwbHkodGhpcyxhcmd1bWVudHMpOkZyKX0sUW4sTXIpfSxFdC5zY2FsZVRvPWZ1bmN0aW9uKE9uLEZyLFFuLE1yKXtFdC50cmFuc2Zvcm0o'@; put 'T24sZnVuY3Rpb24oKXt2YXIgX3I9bC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdnQ9dGhpcy5fX3pvb20sT3Q9bnVsbD09UW4/bm4oX3IpOiJmdW5jdGlvbiI9PXR5cGVvZiBRbj9Rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6UW4sY249dnQuaW52ZXJ0KE90KSxFbj0iZnVuY3Rpb24iPT10eXBl'@; put 'b2YgRnI/RnIuYXBwbHkodGhpcyxhcmd1bWVudHMpOkZyO3JldHVybiBhKEp0KFN0KHZ0LEVuKSxPdCxjbiksX3IsXyl9LFFuLE1yKX0sRXQudHJhbnNsYXRlQnk9ZnVuY3Rpb24oT24sRnIsUW4sTXIpe0V0LnRyYW5zZm9ybShPbixmdW5jdGlvbigpe3JldHVybiBhKHRoaXMuX196b29tLnRy'@; put 'YW5zbGF0ZSgiZnVuY3Rpb24iPT10eXBlb2YgRnI/RnIuYXBwbHkodGhpcyxhcmd1bWVudHMpOkZyLCJmdW5jdGlvbiI9PXR5cGVvZiBRbj9Rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6UW4pLGwuYXBwbHkodGhpcyxhcmd1bWVudHMpLF8pfSxudWxsLE1yKX0sRXQudHJhbnNsYXRlVG89ZnVu'@; put 'Y3Rpb24oT24sRnIsUW4sTXIsX3Ipe0V0LnRyYW5zZm9ybShPbixmdW5jdGlvbigpe3ZhciB2dD1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxPdD10aGlzLl9fem9vbSxjbj1udWxsPT1Ncj9ubih2dCk6ImZ1bmN0aW9uIj09dHlwZW9mIE1yP01yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpNcjty'@; put 'ZXR1cm4gYSh4VC50cmFuc2xhdGUoY25bMF0sY25bMV0pLnNjYWxlKE90LmspLnRyYW5zbGF0ZSgiZnVuY3Rpb24iPT10eXBlb2YgRnI/LUZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotRnIsImZ1bmN0aW9uIj09dHlwZW9mIFFuPy1Rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LVFuKSx2dCxf'@; put 'KX0sTXIsX3IpfSxjci5wcm90b3R5cGU9e2V2ZW50OmZ1bmN0aW9uKE9uKXtyZXR1cm4gT24mJih0aGlzLnNvdXJjZUV2ZW50PU9uKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy50aGF0Ll9fem9vbWluZz10aGlzLHRoaXMuZW1pdCgic3Rh'@; put 'cnQiKSksdGhpc30sem9vbTpmdW5jdGlvbihPbixGcil7cmV0dXJuIHRoaXMubW91c2UmJiJtb3VzZSIhPT1PbiYmKHRoaXMubW91c2VbMV09RnIuaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmInRvdWNoIiE9PU9uJiYodGhpcy50b3VjaDBbMV09RnIuaW52ZXJ0KHRoaXMu'@; put 'dG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJiJ0b3VjaCIhPT1PbiYmKHRoaXMudG91Y2gxWzFdPUZyLmludmVydCh0aGlzLnRvdWNoMVswXSkpLHRoaXMudGhhdC5fX3pvb209RnIsdGhpcy5lbWl0KCJ6b29tIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUm'@; put 'JihkZWxldGUgdGhpcy50aGF0Ll9fem9vbWluZyx0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKE9uKXt2YXIgRnI9a3ModGhpcy50aGF0KS5kYXR1bSgpO2llLmNhbGwoT24sdGhpcy50aGF0LG5ldyAkWGUoT24se3NvdXJjZUV2ZW50OnRoaXMuc291cmNlRXZlbnQsdGFy'@; put 'Z2V0OkV0LHR5cGU6T24sdHJhbnNmb3JtOnRoaXMudGhhdC5fX3pvb20sZGlzcGF0Y2g6aWV9KSxGcil9fSxFdC53aGVlbERlbHRhPWZ1bmN0aW9uKE9uKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0iZnVuY3Rpb24iPT10eXBlb2YgT24/T246TVQoK09uKSxFdCk6ZH0sRXQuZmlsdGVy'@; put 'PWZ1bmN0aW9uKE9uKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVuY3Rpb24iPT10eXBlb2YgT24/T246TVQoISFPbiksRXQpOmN9LEV0LnRvdWNoYWJsZT1mdW5jdGlvbihPbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ImZ1bmN0aW9uIj09dHlwZW9mIE9uP09uOk1UKCEh'@; put 'T24pLEV0KTpofSxFdC5leHRlbnQ9ZnVuY3Rpb24oT24pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSJmdW5jdGlvbiI9PXR5cGVvZiBPbj9PbjpNVChbWytPblswXVswXSwrT25bMF1bMV1dLFsrT25bMV1bMF0sK09uWzFdWzFdXV0pLEV0KTpsfSxFdC5zY2FsZUV4dGVudD1mdW5jdGlv'@; put 'bihPbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGZbMF09K09uWzBdLGZbMV09K09uWzFdLEV0KTpbZlswXSxmWzFdXX0sRXQudHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKE9uKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oX1swXVswXT0rT25bMF1bMF0sX1sxXVswXT0rT25bMV1bMF0s'@; put 'X1swXVsxXT0rT25bMF1bMV0sX1sxXVsxXT0rT25bMV1bMV0sRXQpOltbX1swXVswXSxfWzBdWzFdXSxbX1sxXVswXSxfWzFdWzFdXV19LEV0LmNvbnN0cmFpbj1mdW5jdGlvbihPbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9T24sRXQpOmF9LEV0LmR1cmF0aW9uPWZ1bmN0aW9uKE9u'@; put 'KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oVD0rT24sRXQpOlR9LEV0LmludGVycG9sYXRlPWZ1bmN0aW9uKE9uKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oVz1PbixFdCk6V30sRXQub249ZnVuY3Rpb24oKXt2YXIgT249aWUub24uYXBwbHkoaWUsYXJndW1lbnRzKTtyZXR1cm4gT249'@; put 'PT1pZT9FdDpPbn0sRXQuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbihPbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGV0PShPbj0rT24pKk9uLEV0KTpNYXRoLnNxcnQoZXQpfSxFdC50YXBEaXN0YW5jZT1mdW5jdGlvbihPbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHl0PStPbixFdCk6'@; put 'eXR9LEV0fSgpLnNjYWxlRXh0ZW50KHRoaXMuX29wdGlvbnMuem9vbVNjYWxlRXh0ZW50KS50cmFuc2xhdGVFeHRlbnQodGhpcy5fb3B0aW9ucy56b29tVHJhbnNsYXRlRXh0ZW50KS5pbnRlcnBvbGF0ZShrVCkub24oInpvb20iLGZ1bmN0aW9uIGwoXyl7a3MoZC5ub2RlKCkucXVlcnlTZWxl'@; put 'Y3RvcigiZyIpKS5hdHRyKCJ0cmFuc2Zvcm0iLF8udHJhbnNmb3JtKSxjLl9kaXNwYXRjaC5jYWxsKCJ6b29tIixjKX0pO3RoaXMuX3pvb21CZWhhdmlvcj1oO3ZhciBmPWtzKGQubm9kZSgpLnF1ZXJ5U2VsZWN0b3IoImciKSk7cmV0dXJuIGQuY2FsbChoKSx0aGlzLl9hY3RpdmV8fEdVLmNh'@; put 'bGwodGhpcyxmKSx0aGlzLl9vcmlnaW5hbFRyYW5zZm9ybT1FVChkLm5vZGUoKSksdGhpc31mdW5jdGlvbiBXVShjKXt2YXIgbD10aGlzLl90cmFuc2xhdGlvbixhPXRoaXMuX3NjYWxlLGQ9Yy5kYXR1bSgpLnRyYW5zbGF0aW9uLGg9Yy5kYXR1bSgpLnNjYWxlLGY9RVQodGhpcy5fem9vbVNl'@; put 'bGVjdGlvbi5ub2RlKCkpO3JldHVybiBsJiYoZj0oZj1mLnNjYWxlKDEvYSkpLnRyYW5zbGF0ZSgtbC54LC1sLnkpKSwoZj1mLnRyYW5zbGF0ZShkLngsZC55KSkuc2NhbGUoaCl9ZnVuY3Rpb24gR1UoYyl7dGhpcy5fem9vbUJlaGF2aW9yLnRyYW5zZm9ybSh0aGlzLl96b29tU2VsZWN0aW9u'@; put 'LFdVLmNhbGwodGhpcyxjKSksdGhpcy5fdHJhbnNsYXRpb249Yy5kYXR1bSgpLnRyYW5zbGF0aW9uLHRoaXMuX3NjYWxlPWMuZGF0dW0oKS5zY2FsZSx0aGlzLl9vcmlnaW5hbFRyYW5zZm9ybT14VC50cmFuc2xhdGUoYy5kYXR1bSgpLnRyYW5zbGF0aW9uLngsYy5kYXR1bSgpLnRyYW5zbGF0'@; put 'aW9uLnkpLnNjYWxlKGMuZGF0dW0oKS5zY2FsZSl9ZnVuY3Rpb24gZkplKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7Y29uc3QgYT1jLm1hcChmdW5jdGlvbihkKXtyZXR1cm4ga1QoW2RbMF1bMF0sZFswXVsxXV0sW2RbMV1bMF0sZFsxXVsxXV0pfSk7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVy'@; put 'biBkPDE/Ik0iK2EubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBoKGQpfSkuam9pbigiTCIpOmx9fX1mdW5jdGlvbiBYYWUoYyl7cmV0dXJuImVkZ2UiPT1jLmF0dHJpYnV0ZXMuY2xhc3N8fCJhIj09Yy50YWcmJiJnIj09Yy5wYXJlbnQudGFnJiYiZWRnZSI9PWMucGFyZW50LnBhcmVudC5hdHRy'@; put 'aWJ1dGVzLmNsYXNzfWZ1bmN0aW9uIEphZShjKXtyZXR1cm4gYy5wYXJlbnQmJlhhZShjLnBhcmVudCl9ZnVuY3Rpb24gUWFlKGMpe3ZhciBsPXRoaXMuX3RyYW5zaXRpb24sYT10aGlzLl9vcHRpb25zLmZhZGUmJm51bGwhPWwsZD10aGlzLl9vcHRpb25zLnR3ZWVuUGF0aHMsaD10aGlzLl9v'@; put 'cHRpb25zLnR3ZWVuU2hhcGVzLGY9dGhpcy5fb3B0aW9ucy5jb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zLF89dGhpcy5fb3B0aW9ucy5ncm93RW50ZXJpbmdFZGdlcyYmbnVsbCE9bCxUPXRoaXMuX2F0dHJpYnV0ZXIsVz10aGlzO3ZhciB3ZT10aGlzLl9zZWxlY3Rpb247aWYobnVsbCE9bCl7'@; put 'dmFyIEVlPXRoaXMuX2pvYnM7aWYoVy5fYWN0aXZlKXJldHVybiBFZS5wdXNoKG51bGwpLHRoaXM7d2UudHJhbnNpdGlvbihsKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkub24oImVuZCIsZnVuY3Rpb24oKXtXLl9hY3RpdmU9ITEsMCE9RWUubGVuZ3RoJiYoRWUuc2hpZnQoKSxXLnJlbmRl'@; put 'cigpKX0pLHRoaXMuX2FjdGl2ZT0hMH1udWxsIT1sJiZ3ZS50cmFuc2l0aW9uKGwpLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtXLl9kaXNwYXRjaC5jYWxsKCJ0cmFuc2l0aW9uU3RhcnQiLFcpfSkub24oImVuZCIsZnVuY3Rpb24oKXtXLl9kaXNwYXRjaC5jYWxsKCJ0cmFuc2l0aW9uRW5kIixX'@; put 'KX0pLnRyYW5zaXRpb24oKS5kdXJhdGlvbigwKS5vbigic3RhcnQiLGZ1bmN0aW9uKCl7Vy5fZGlzcGF0Y2guY2FsbCgicmVzdG9yZUVuZCIsVyksVy5fZGlzcGF0Y2guY2FsbCgiZW5kIixXKSxjJiZjLmNhbGwoVyl9KTt2YXIgWmU9dGhpcy5fZGF0YSxpdD13ZS5zZWxlY3RBbGwoInN2ZyIp'@; put 'LmRhdGEoW1plXSxmdW5jdGlvbihldCl7cmV0dXJuIGV0LmtleX0pO3JldHVybiBpdD1pdC5lbnRlcigpLmFwcGVuZCgic3ZnIikubWVyZ2UoaXQpLGZ1bmN0aW9uIHBlKGV0KXt2YXIgeXQ9a3ModGhpcyk7aWYoInN2ZyI9PWV0LnRhZyl7dmFyIEV0PVcuX29wdGlvbnM7aWYobnVsbCE9RXQu'@; put 'd2lkdGh8fG51bGwhPUV0LmhlaWdodCl7dmFyIFN0PUV0LndpZHRoLEp0PUV0LmhlaWdodDtudWxsPT1TdD9TdD00KmV0LmF0dHJpYnV0ZXMud2lkdGgucmVwbGFjZSgicHQiLCIiKS8zOih5dC5hdHRyKCJ3aWR0aCIsU3QpLGV0LmF0dHJpYnV0ZXMud2lkdGg9U3QpLG51bGw9PUp0P0p0PTQq'@; put 'ZXQuYXR0cmlidXRlcy5oZWlnaHQucmVwbGFjZSgicHQiLCIiKS8zOih5dC5hdHRyKCJoZWlnaHQiLEp0KSxldC5hdHRyaWJ1dGVzLmhlaWdodD1KdCksRXQuZml0fHwoeXQuYXR0cigidmlld0JveCIsYDAgMCAkezMqU3QvNC9FdC5zY2FsZX0gJHszKkp0LzQvRXQuc2NhbGV9YCksZXQuYXR0'@; put 'cmlidXRlcy52aWV3Qm94PWAwIDAgJHszKlN0LzQvRXQuc2NhbGV9ICR7MypKdC80L0V0LnNjYWxlfWApfTEhPUV0LnNjYWxlJiYoRXQuZml0fHxudWxsPT1FdC53aWR0aCYmbnVsbD09RXQuaGVpZ2h0KSYmKFN0PWV0LmF0dHJpYnV0ZXMudmlld0JveC5zcGxpdCgiICIpWzJdLEp0PWV0LmF0'@; put 'dHJpYnV0ZXMudmlld0JveC5zcGxpdCgiICIpWzNdLHl0LmF0dHIoInZpZXdCb3giLGAwIDAgJHtTdC9FdC5zY2FsZX0gJHtKdC9FdC5zY2FsZX1gKSxldC5hdHRyaWJ1dGVzLnZpZXdCb3g9YDAgMCAke1N0L0V0LnNjYWxlfSAke0p0L0V0LnNjYWxlfWApfVQmJnl0LmVhY2goVCk7dmFyIG5u'@; put 'PWV0LnRhZyx2bj1ldC5hdHRyaWJ1dGVzLE5uPXl0Lm5vZGUoKS5hdHRyaWJ1dGVzO2lmKE5uKWZvcih2YXIgY3I9MDtjcjxObi5sZW5ndGg7Y3IrKyl7dmFyIElyPU5uW2NyXSxFaT1Jci5uYW1lO2lmKCJ4bWxucyIhPUVpLnNwbGl0KCI6IilbMF0mJklyLm5hbWVzcGFjZVVSSSl7dmFyIElp'@; put 'PUlyLm5hbWVzcGFjZVVSSS5zcGxpdCgiLyIpO0VpPUlpW0lpLmxlbmd0aC0xXSsiOiIrRWl9RWkgaW4gdm58fCh2bltFaV09bnVsbCl9dmFyIGlpPSExLGpyPSExO2lmKGgmJmwpe2lmKCgicG9seWdvbiI9PXRoaXMubm9kZU5hbWV8fCJlbGxpcHNlIj09dGhpcy5ub2RlTmFtZSkmJmV0LmFs'@; put 'dGVybmF0aXZlT2xkJiYoanI9ITApLCgicG9seWdvbiI9PW5ufHwiZWxsaXBzZSI9PW5uKSYmZXQuYWx0ZXJuYXRpdmVOZXcmJihpaT0hMCksInBvbHlnb24iPT10aGlzLm5vZGVOYW1lJiYicG9seWdvbiI9PW5uJiZldC5hbHRlcm5hdGl2ZU9sZCl7dmFyIE9uPUdhZSh5dCk7aWYoIWYpe3Zh'@; put 'ciBRbj1Pbi5hdHRyaWJ1dGVzLnBvaW50cy5zcGxpdCgiICIpLmxlbmd0aDsoTXI9ZXQuYXR0cmlidXRlcy5wb2ludHMpLnNwbGl0KCIgIikubGVuZ3RoPT1RbiYmKGlpPSExLGpyPSExKX19aWYoanIpe3ZhciBPdD0kYWUoeXQsZXQuYWx0ZXJuYXRpdmVPbGQpO090LmRhdGEoW2V0XSxmdW5j'@; put 'dGlvbigpe3JldHVybiBldC5rZXl9KSx5dD1PdH1paSYmKG5uPSJwYXRoIix2bj1ldC5hbHRlcm5hdGl2ZU5ldy5hdHRyaWJ1dGVzKX12YXIgRW49eXQ7aWYobCYmKEVuPUVuLnRyYW5zaXRpb24obCksYSYmRW4uZmlsdGVyKGZ1bmN0aW9uKERpKXtyZXR1cm4iIyI9PURpLnRhZ1swXT9udWxs'@; put 'OnRoaXN9KS5zdHlsZSgib3BhY2l0eSIsMSksRW4uZmlsdGVyKGZ1bmN0aW9uKERpKXtyZXR1cm4iIyI9PURpLnRhZ1swXT9udWxsOnRoaXN9KS5vbigiZW5kIixmdW5jdGlvbihEaSl7a3ModGhpcykuYXR0cigic3R5bGUiLERpJiZEaS5hdHRyaWJ1dGVzJiZEaS5hdHRyaWJ1dGVzLnN0eWxl'@; put 'fHxudWxsKX0pKSxfJiYicGF0aCI9PW5uJiZldC5vZmZzZXQpe3ZhciBKbj1ldC50b3RhbExlbmd0aDt5dC5hdHRyKCJzdHJva2UtZGFzaGFycmF5IixKbisiICIrSm4pLmF0dHIoInN0cm9rZS1kYXNob2Zmc2V0IixKbikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrZXQub2Zmc2V0'@; put 'LngrIiwiK2V0Lm9mZnNldC55KyIpIiksdm5bInN0cm9rZS1kYXNob2Zmc2V0Il09MCx2bi50cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDApIixFbi5hdHRyKCJzdHJva2UtZGFzaG9mZnNldCIsdm5bInN0cm9rZS1kYXNob2Zmc2V0Il0pLmF0dHIoInRyYW5zZm9ybSIsdm4udHJhbnNmb3JtKS5v'@; put 'bigic3RhcnQiLGZ1bmN0aW9uKCl7a3ModGhpcykuc3R5bGUoIm9wYWNpdHkiLG51bGwpfSkub24oImVuZCIsZnVuY3Rpb24oKXtrcyh0aGlzKS5hdHRyKCJzdHJva2UtZGFzaG9mZnNldCIsbnVsbCkuYXR0cigic3Ryb2tlLWRhc2hhcnJheSIsbnVsbCkuYXR0cigidHJhbnNmb3JtIixudWxs'@; put 'KX0pfWlmKF8mJiJwb2x5Z29uIj09bm4mJkphZShldCkmJmV0Lm9mZnNldCYmInBhdGgiPT1ldC5wYXJlbnQuY2hpbGRyZW5bM10udGFnKXt2YXIgT3I9a3MoeXQubm9kZSgpLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcigicGF0aCIpKSwkcj1Pci5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aCgw'@; put 'KSxZcj1Pci5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChldC50b3RhbExlbmd0aCksTnI9T3Iubm9kZSgpLmdldFBvaW50QXRMZW5ndGgoZXQudG90YWxMZW5ndGgtMSksUmk9MTgwKk1hdGguYXRhbjIoWXIueS1Oci55LFlyLngtTnIueCkvTWF0aC5QSSxYbz0kci54LVlyLngrZXQub2Zmc2V0'@; put 'LngsR289JHIueS1Zci55K2V0Lm9mZnNldC55O3l0LmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK1hvKyIsIitHbysiKSIpLEVuLmF0dHJUd2VlbigidHJhbnNmb3JtIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihEaSl7dmFyIFFzPU9yLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3Ro'@; put 'KGV0LnRvdGFsTGVuZ3RoKkRpKSxsYT1Pci5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChldC50b3RhbExlbmd0aCpEaSsxKSxGcz0xODAqTWF0aC5hdGFuMihsYS55LVFzLnksbGEueC1Rcy54KS9NYXRoLlBJLVJpO3JldHVybiJ0cmFuc2xhdGUoIisoWG89UXMueC1Zci54K2V0Lm9mZnNldC54'@; put 'KigxLURpKSkrIiwiKyhHbz1Rcy55LVlyLnkrZXQub2Zmc2V0LnkqKDEtRGkpKSsiKSByb3RhdGUoIitGcysiICIrWXIueCsiICIrWXIueSsiKSJ9fSkub24oInN0YXJ0IixmdW5jdGlvbigpe2tzKHRoaXMpLnN0eWxlKCJvcGFjaXR5IixudWxsKX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7a3Mo'@; put 'dGhpcykuYXR0cigidHJhbnNmb3JtIixudWxsKX0pfXZhciBKcz1kJiZsJiYicGF0aCI9PW5uJiZudWxsIT15dC5hdHRyKCJkIik7Zm9yKHZhciBnYSBvZiBPYmplY3Qua2V5cyh2bikpe3ZhciB1bz12bltnYV07aWYoSnMmJiJkIj09Z2Epe3ZhciBNcjsoTXI9KGV0LmFsdGVybmF0aXZlT2xk'@; put 'fHxldCkucG9pbnRzKSYmRW4uYXR0clR3ZWVuKCJkIixmSmUoTXIsdW8pKX1lbHNle2lmKCJ0cmFuc2Zvcm0iPT1nYSYmZXQudHJhbnNsYXRpb24paWYobCl7dmFyIEF0PUVuLm9uKCJlbmQiKTtFbi5vbigic3RhcnQiLGZ1bmN0aW9uKCl7Vy5fem9vbUJlaGF2aW9yJiZFbi50d2VlbigiYXR0'@; put 'ci50cmFuc2Zvcm0iLGZ1bmN0aW9uKCl7dmFyIERpPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKFFzKXtEaS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsRWFlKEVUKFcuX3pvb21TZWxlY3Rpb24ubm9kZSgpKS50b1N0cmluZygpLFdVLmNhbGwoVyx5dCkudG9TdHJpbmcoKSkoUXMpKX19KX0pLm9u'@; put 'KCJlbmQiLGZ1bmN0aW9uKCl7QXQuY2FsbCh0aGlzKSxXLl96b29tQmVoYXZpb3ImJkdVLmNhbGwoVyx5dCl9KX1lbHNlIFcuX3pvb21CZWhhdmlvciYmKEdVLmNhbGwoVyx5dCksdW89V1UuY2FsbChXLHl0KS50b1N0cmluZygpKTtFbi5hdHRyKGdhLHVvKX19aWkmJkVuLm9uKCJlbmQiLGZ1'@; put 'bmN0aW9uKERpLFFzLGxhKXskYWUoT3Q9a3ModGhpcyksRGkpLmRhdGEoW0RpXSxmdW5jdGlvbigpe3JldHVybiBEaS5rZXl9KX0pLGV0LnRleHQmJkVuLnRleHQoZXQudGV4dCksZnVuY3Rpb24gaWUoZXQpe3ZhciB5dD1ldC5zZWxlY3RBbGwoZnVuY3Rpb24oKXtyZXR1cm4gZXQubm9kZSgp'@; put 'LmNoaWxkTm9kZXN9KSxFdD0oeXQ9eXQuZGF0YShmdW5jdGlvbihubil7cmV0dXJuIG5uLmNoaWxkcmVufSxmdW5jdGlvbihubil7cmV0dXJuIG5uLmtleX0pKS5lbnRlcigpLmFwcGVuZChmdW5jdGlvbihubil7dmFyIHZuPVVVKG5uKTtyZXR1cm4iI3RleHQiPT1ubi50YWcmJmEmJih2bi5u'@; put 'b2RlVmFsdWU9bm4udGV4dCksdm59KTsoYXx8XyYmWGFlKGV0LmRhdHVtKCkpKSYmRXQuZmlsdGVyKGZ1bmN0aW9uKG5uKXtyZXR1cm4iIyI9PW5uLnRhZ1swXT9udWxsOnRoaXN9KS5lYWNoKGZ1bmN0aW9uKG5uKXt2YXIgdm49a3ModGhpcyk7Zm9yKHZhciBObiBvZiBPYmplY3Qua2V5cyhu'@; put 'bi5hdHRyaWJ1dGVzKSl2bi5hdHRyKE5uLG5uLmF0dHJpYnV0ZXNbTm5dKX0pLmZpbHRlcihmdW5jdGlvbihubil7cmV0dXJuInN2ZyI9PW5uLnRhZ3x8ImciPT1ubi50YWc/bnVsbDp0aGlzfSkuc3R5bGUoIm9wYWNpdHkiLDApO3ZhciBKdD15dC5leGl0KCk7VCYmSnQuZWFjaChUKSxsJiYo'@; put 'SnQ9SnQudHJhbnNpdGlvbihsKSxhJiZKdC5maWx0ZXIoZnVuY3Rpb24obm4pe3JldHVybiIjIj09bm4udGFnWzBdP251bGw6dGhpc30pLnN0eWxlKCJvcGFjaXR5IiwwKSksSnQ9SnQucmVtb3ZlKCksKHl0PUV0Lm1lcmdlKHl0KSkuZWFjaChwZSl9KHl0KX0uY2FsbChpdC5ub2RlKCksWmUp'@; put 'LHRoaXMuX29wdGlvbnMuem9vbSYmIXRoaXMuX3pvb21CZWhhdmlvciYmS2FlLmNhbGwodGhpcyksVy5fZGlzcGF0Y2guY2FsbCgicmVuZGVyRW5kIixXKSxudWxsPT1sJiYodGhpcy5fZGlzcGF0Y2guY2FsbCgiZW5kIix0aGlzKSxjJiZjLmNhbGwodGhpcykpLHRoaXN9RVQucHJvdG90eXBl'@; put 'PWkzLnByb3RvdHlwZTt2YXIgeUplPUFycmF5QnVmZmVyLGVjPVVpbnQ4QXJyYXksQVQ9VWludDE2QXJyYXksd0plPUludDE2QXJyYXksVFQ9SW50MzJBcnJheSwkVT1mdW5jdGlvbihjLGwsYSl7aWYoZWMucHJvdG90eXBlLnNsaWNlKXJldHVybiBlYy5wcm90b3R5cGUuc2xpY2UuY2FsbChj'@; put 'LGwsYSk7KG51bGw9PWx8fGw8MCkmJihsPTApLChudWxsPT1hfHxhPmMubGVuZ3RoKSYmKGE9Yy5sZW5ndGgpO3ZhciBkPW5ldyBlYyhhLWwpO3JldHVybiBkLnNldChjLnN1YmFycmF5KGwsYSkpLGR9LGJ3PWZ1bmN0aW9uKGMsbCxhLGQpe2lmKGVjLnByb3RvdHlwZS5maWxsKXJldHVybiBl'@; put 'Yy5wcm90b3R5cGUuZmlsbC5jYWxsKGMsbCxhLGQpO2ZvcigobnVsbD09YXx8YTwwKSYmKGE9MCksKG51bGw9PWR8fGQ+Yy5sZW5ndGgpJiYoZD1jLmxlbmd0aCk7YTxkOysrYSljW2FdPWw7cmV0dXJuIGN9LENKZT1mdW5jdGlvbihjLGwsYSxkKXtpZihlYy5wcm90b3R5cGUuY29weVdpdGhp'@; put 'bilyZXR1cm4gZWMucHJvdG90eXBlLmNvcHlXaXRoaW4uY2FsbChjLGwsYSxkKTtmb3IoKG51bGw9PWF8fGE8MCkmJihhPTApLChudWxsPT1kfHxkPmMubGVuZ3RoKSYmKGQ9Yy5sZW5ndGgpO2E8ZDspY1tsKytdPWNbYSsrXX0sU0plPVsiaW52YWxpZCB6c3RkIGRhdGEiLCJ3aW5kb3cgc2l6'@; put 'ZSB0b28gbGFyZ2UgKD4yMDQ2TUIpIiwiaW52YWxpZCBibG9jayB0eXBlIiwiRlNFIGFjY3VyYWN5IHRvbyBoaWdoIiwibWF0Y2ggZGlzdGFuY2UgdG9vIGZhciBiYWNrIiwidW5leHBlY3RlZCBFT0YiXSxtYz1mdW5jdGlvbihjLGwsYSl7dmFyIGQ9bmV3IEVycm9yKGx8fFNKZVtjXSk7aWYo'@; put 'ZC5jb2RlPWMsRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGQsbWMpLCFhKXRocm93IGQ7cmV0dXJuIGR9LGVsZT1mdW5jdGlvbihjLGwsYSl7Zm9yKHZhciBkPTAsaD0wO2Q8YTsrK2QpaHw9Y1tsKytdPDwoZDw8Myk7cmV0dXJuIGh9LE1KZT1mdW5j'@; put 'dGlvbihjLGwpe3ZhciBhLGg9Y1swXXxjWzFdPDw4fGNbMl08PDE2O2lmKDMxMjY1Njg9PWgmJjI1Mz09Y1szXSl7dmFyIGY9Y1s0XSxfPWY+PjUmMSxUPWY+PjImMSxXPTMmZixpZT1mPj42OzgmZiYmbWMoMCk7dmFyIHBlPTYtXyx3ZT0zPT1XPzQ6VyxFZT1lbGUoYyxwZSx3ZSksWmU9aWU/'@; put 'MTw8aWU6XyxpdD1lbGUoYyxwZSs9d2UsWmUpKygxPT1pZSYmMjU2KSxldD1pdDtpZighXyl7dmFyIHl0PTE8PDEwKyhjWzVdPj4zKTtldD15dCsoeXQ+PjMpKig3JmNbNV0pfWV0PjIxNDUzODY0OTYmJm1jKDEpO3ZhciBFdD1uZXcgZWMoKDE9PWw/aXR8fGV0Omw/MDpldCkrMTIpO3JldHVy'@; put 'biBFdFswXT0xLEV0WzRdPTQsRXRbOF09OCx7YjpwZStaZSx5OjAsbDowLGQ6RWUsdzpsJiYxIT1sP2w6RXQuc3ViYXJyYXkoMTIpLGU6ZXQsbzpuZXcgVFQoRXQuYnVmZmVyLDAsMyksdTppdCxjOlQsbTpNYXRoLm1pbigxMzEwNzIsZXQpfX1pZigyNTQ4MTg5Mz09KGg+PjR8Y1szXTw8MjAp'@; put 'KXJldHVybiA4KygoKGE9YylbNF18YVs1XTw8OHxhWzZdPDwxNnxhWzddPDwyNCk+Pj4wKTttYygwKX0sSmc9ZnVuY3Rpb24oYyl7Zm9yKHZhciBsPTA7MTw8bDw9YzsrK2wpO3JldHVybiBsLTF9LHl3PWZ1bmN0aW9uKGMsbCxhKXt2YXIgZD00KyhsPDwzKSxoPTUrKDE1JmNbbF0pO2g+YSYm'@; put 'bWMoMyk7Zm9yKHZhciBmPTE8PGgsXz1mLFQ9LTEsVz0tMSxpZT0tMSxwZT1mLHdlPW5ldyB5SmUoNTEyKyhmPDwyKSksRWU9bmV3IHdKZSh3ZSwwLDI1NiksWmU9bmV3IEFUKHdlLDAsMjU2KSxpdD1uZXcgQVQod2UsNTEyLGYpLGV0PTUxMisoZjw8MSkseXQ9bmV3IGVjKHdlLGV0LGYpLEV0'@; put 'PW5ldyBlYyh3ZSxldCtmKTtUPDI1NSYmXz4wOyl7dmFyIFN0PUpnKF8rMSksSnQ9ZD4+Myxubj0oMTw8U3QrMSktMSx2bj0oY1tKdF18Y1tKdCsxXTw8OHxjW0p0KzJdPDwxNik+Pig3JmQpJm5uLE5uPSgxPDxTdCktMSxjcj1ubi1fLTEsSXI9dm4mTm47aWYoSXI8Y3I/KGQrPVN0LHZuPUly'@; put 'KTooZCs9U3QrMSx2bj5ObiYmKHZuLT1jcikpLEVlWysrVF09LS12biwtMT09dm4/KF8rPXZuLHl0Wy0tcGVdPVQpOl8tPXZuLCF2bilkb3t2YXIgRWk9ZD4+MztXPShjW0VpXXxjW0VpKzFdPDw4KT4+KDcmZCkmMyxkKz0yLFQrPVd9d2hpbGUoMz09Vyl9KFQ+MjU1fHxfKSYmbWMoMCk7Zm9y'@; put 'KHZhciBJaT0wLGZyPShmPj4xKSsoZj4+MykrMyxpaT1mLTEsanI9MDtqcjw9VDsrK2pyKXt2YXIgT249RWVbanJdO2lmKE9uPDEpWmVbanJdPS1PbjtlbHNlIGZvcihpZT0wO2llPE9uOysraWUpe3l0W0lpXT1qcjtkb3tJaT1JaStmciZpaX13aGlsZShJaT49cGUpfX1mb3IoSWkmJm1jKDAp'@; put 'LGllPTA7aWU8ZjsrK2llKXt2YXIgRnI9WmVbeXRbaWVdXSsrLFFuPUV0W2llXT1oLUpnKEZyKTtpdFtpZV09KEZyPDxRbiktZn1yZXR1cm5bZCs3Pj4zLHtiOmgsczp5dCxuOkV0LHQ6aXR9XX0seEplPXl3KG5ldyBlYyhbODEsMTYsOTksMTQwLDQ5LDE5OCwyNCw5OSwxMiwzMywxOTYsMjQs'@; put 'OTksMTAyLDEwMiwxMzQsNzAsMTQ2LDRdKSwwLDYpWzFdLEVKZT15dyhuZXcgZWMoWzMzLDIwLDE5NiwyNCw5OSwxNDAsMzMsMTMyLDE2LDY2LDgsMzMsMTMyLDE2LDY2LDgsMzMsNjgsNjgsNjgsNjgsNjgsNjgsNjgsNjgsMzYsOV0pLDAsNilbMV0sa0plPXl3KG5ldyBlYyhbMzIsMTMyLDE2'@; put 'LDY2LDEwMiw3MCw2OCw2OCw2OCw2OCwzNiw3MywyXSksMCw1KVsxXSx0bGU9ZnVuY3Rpb24oYyxsKXtmb3IodmFyIGE9Yy5sZW5ndGgsZD1uZXcgVFQoYSksaD0wO2g8YTsrK2gpZFtoXT1sLGwrPTE8PGNbaF07cmV0dXJuIGR9LHFVPW5ldyBlYyhuZXcgVFQoWzAsMCwwLDAsMTY4NDMwMDks'@; put 'NTA1Mjg3NzAsMTM0Njc4MDIwLDIwMjA1MDA1NywyNjk0MjIwOTNdKS5idWZmZXIsMCwzNiksQUplPXRsZShxVSwwKSxLVT1uZXcgZWMobmV3IFRUKFswLDAsMCwwLDAsMCwwLDAsMTY4NDMwMDksNTA1Mjg3NzAsMTE3NzY5MjIwLDE4NTIwNzA0OCwyNTI1NzkwODQsMTZdKS5idWZmZXIsMCw1'@; put 'MyksVEplPXRsZShLVSwzKSx3dz1mdW5jdGlvbihjLGwsYSl7dmFyIGQ9Yy5sZW5ndGgsaD1sLmxlbmd0aCxmPWNbZC0xXSxfPSgxPDxhLmIpLTEsVD0tYS5iO2Z8fG1jKDApO2Zvcih2YXIgVz0wLGllPWEuYixwZT0oZDw8MyktOCtKZyhmKS1pZSx3ZT0tMTtwZT5UJiZ3ZTxoOyl7dmFyIEVl'@; put 'PXBlPj4zO2xbKyt3ZV09YS5zW1c9KFc8PGllfChjW0VlXXxjW0VlKzFdPDw4fGNbRWUrMl08PDE2KT4+KDcmcGUpKSZfXSxwZS09aWU9YS5uW1ddfXBlPT1UJiZ3ZSsxPT1ofHxtYygwKX0sREplPWZ1bmN0aW9uKGMsbCxhKXt2YXIgZD02LGg9bC5sZW5ndGgrMz4+MixmPWg8PDEsXz1oK2Y7'@; put 'd3coYy5zdWJhcnJheShkLGQrPWNbMF18Y1sxXTw8OCksbC5zdWJhcnJheSgwLGgpLGEpLHd3KGMuc3ViYXJyYXkoZCxkKz1jWzJdfGNbM108PDgpLGwuc3ViYXJyYXkoaCxmKSxhKSx3dyhjLnN1YmFycmF5KGQsZCs9Y1s0XXxjWzVdPDw4KSxsLnN1YmFycmF5KGYsXyksYSksd3coYy5zdWJh'@; put 'cnJheShkKSxsLnN1YmFycmF5KF8pLGEpfSxJSmU9ZnVuY3Rpb24oYyxsLGEpe3ZhciBkLGg9bC5iLGY9Y1toXSxfPWY+PjEmMztsLmw9MSZmO3ZhciBUPWY+PjN8Y1toKzFdPDw1fGNbaCsyXTw8MTMsVz0oaCs9MykrVDtpZigxPT1fKXJldHVybiBoPj1jLmxlbmd0aD92b2lkIDA6KGwuYj1o'@; put 'KzEsYT8oYncoYSxjW2hdLGwueSxsLnkrPVQpLGEpOmJ3KG5ldyBlYyhUKSxjW2hdKSk7aWYoIShXPmMubGVuZ3RoKSl7aWYoMD09XylyZXR1cm4gbC5iPVcsYT8oYS5zZXQoYy5zdWJhcnJheShoLFcpLGwueSksbC55Kz1ULGEpOiRVKGMsaCxXKTtpZigyPT1fKXt2YXIgaWU9Y1toXSxwZT0z'@; put 'JmllLHdlPWllPj4yJjMsRWU9aWU+PjQsWmU9MCxpdD0wO3BlPDI/MSZ3ZT9FZXw9Y1srK2hdPDw0fCgyJndlJiZjWysraF08PDEyKTpFZT1pZT4+MzooaXQ9d2Usd2U8Mj8oRWV8PSg2MyZjWysraF0pPDw0LFplPWNbaF0+PjZ8Y1srK2hdPDwyKToyPT13ZT8oRWV8PWNbKytoXTw8NHwoMyZj'@; put 'WysraF0pPDwxMixaZT1jW2hdPj4yfGNbKytoXTw8Nik6KEVlfD1jWysraF08PDR8KDYzJmNbKytoXSk8PDEyLFplPWNbaF0+PjZ8Y1srK2hdPDwyfGNbKytoXTw8MTApKSwrK2g7dmFyIGV0PWE/YS5zdWJhcnJheShsLnksbC55K2wubSk6bmV3IGVjKGwubSkseXQ9ZXQubGVuZ3RoLUVlO2lm'@; put 'KDA9PXBlKWV0LnNldChjLnN1YmFycmF5KGgsaCs9RWUpLHl0KTtlbHNlIGlmKDE9PXBlKWJ3KGV0LGNbaCsrXSx5dCk7ZWxzZXt2YXIgRXQ9bC5oO2lmKDI9PXBlKXt2YXIgU3Q9ZnVuY3Rpb24oZ2EsdW8pe3ZhciBBdD0wLERpPS0xLFFzPW5ldyBlYygyOTIpLGxhPWdhW3VvXSxGcz1Rcy5z'@; put 'dWJhcnJheSgwLDI1NiksdGM9UXMuc3ViYXJyYXkoMjU2LDI2OCksQ2E9bmV3IEFUKFFzLmJ1ZmZlciwyNjgpO2lmKGxhPDEyOCl7dmFyIFJoPXl3KGdhLHVvKzEsNiksSWw9UmhbMV0seDI9UmhbMF08PDMsdTQ9Z2FbdW8rPWxhXTt1NHx8bWMoMCk7Zm9yKHZhciBPaD0wLENkPTAsJGM9SWwu'@; put 'YixTZD0kYyxKdT0oKyt1bzw8MyktOCtKZyh1NCk7ISgoSnUtPSRjKTx4Mik7KXt2YXIgTTE9SnU+PjM7aWYoRnNbKytEaV09SWwuc1tPaCs9KGdhW00xXXxnYVtNMSsxXTw8OCk+Pig3Jkp1KSYoMTw8JGMpLTFdLChKdS09U2QpPHgyKWJyZWFrO0NkKz0oZ2FbTTE9SnU+PjNdfGdhW00xKzFd'@; put 'PDw4KT4+KDcmSnUpJigxPDxTZCktMSxGc1srK0RpXT1JbC5zW0NkXSwkYz1JbC5uW09oXSxPaD1JbC50W09oXSxTZD1JbC5uW0NkXSxDZD1JbC50W0NkXX0rK0RpPjI1NSYmbWMoMCl9ZWxzZXtmb3IoRGk9bGEtMTI3O0F0PERpO0F0Kz0yKXt2YXIgTXU9Z2FbKyt1b107RnNbQXRdPU11Pj40'@; put 'LEZzW0F0KzFdPTE1Jk11fSsrdW99dmFyIGF1PTA7Zm9yKEF0PTA7QXQ8RGk7KytBdCkoZDQ9RnNbQXRdKT4xMSYmbWMoMCksYXUrPWQ0JiYxPDxkNC0xO3ZhciB4MT1KZyhhdSkrMSxFMj0xPDx4MSwkNz1FMi1hdTtmb3IoJDcmJDctMSYmbWMoMCksRnNbRGkrK109SmcoJDcpKzEsQXQ9MDtB'@; put 'dDxEaTsrK0F0KXt2YXIgZDQ9RnNbQXRdOysrdGNbRnNbQXRdPWQ0JiZ4MSsxLWQ0XX12YXIgU3c9bmV3IGVjKEUyPDwxKSxlbT1Tdy5zdWJhcnJheSgwLEUyKSxNdz1Tdy5zdWJhcnJheShFMik7Zm9yKENhW3gxXT0wLEF0PXgxO0F0PjA7LS1BdCl7dmFyIHh3PUNhW0F0XTtidyhNdyxBdCx4'@; put 'dyxDYVtBdC0xXT14dyt0Y1tBdF0qKDE8PHgxLUF0KSl9Zm9yKENhWzBdIT1FMiYmbWMoMCksQXQ9MDtBdDxEaTsrK0F0KXt2YXIgdG09RnNbQXRdO2lmKHRtKXt2YXIgRXc9Q2FbdG1dO2J3KGVtLEF0LEV3LENhW3RtXT1FdysoMTw8eDEtdG0pKX19cmV0dXJuW3VvLHtuOk13LGI6eDEsczpl'@; put 'bX1dfShjLGgpO1plKz1oLShoPVN0WzBdKSxsLmg9RXQ9U3RbMV19ZWxzZSBFdHx8bWMoMCk7KGl0P0RKZTp3dykoYy5zdWJhcnJheShoLGgrPVplKSxldC5zdWJhcnJheSh5dCksRXQpfXZhciBKdD1jW2grK107aWYoSnQpezI1NT09SnQ/SnQ9MzI1MTIrKGNbaCsrXXxjW2grK108PDgpOkp0'@; put 'PjEyNyYmKEp0PUp0LTEyODw8OHxjW2grK10pO3ZhciBubj1jW2grK107MyZubiYmbWMoMCk7Zm9yKHZhciB2bj1bRUplLGtKZSx4SmVdLE5uPTI7Tm4+LTE7LS1Obil7dmFyIGNyPW5uPj4yKyhObjw8MSkmMztpZigxPT1jcil7dmFyIElyPW5ldyBlYyhbMCwwLGNbaCsrXV0pO3ZuW05uXT17'@; put 'czpJci5zdWJhcnJheSgyLDMpLG46SXIuc3ViYXJyYXkoMCwxKSx0Om5ldyBBVChJci5idWZmZXIsMCwxKSxiOjB9fWVsc2UgMj09Y3I/KGg9KGQ9eXcoYyxoLDktKDEmTm4pKSlbMF0sdm5bTm5dPWRbMV0pOjM9PWNyJiYobC50fHxtYygwKSx2bltObl09bC50W05uXSl9dmFyIEVpPWwudD12'@; put 'bixJaT1FaVswXSxmcj1FaVsxXSxpaT1FaVsyXSxqcj1jW1ctMV07anJ8fG1jKDApO3ZhciBPbj0oVzw8MyktOCtKZyhqciktaWkuYixGcj1Pbj4+MyxRbj0wLE1yPShjW0ZyXXxjW0ZyKzFdPDw4KT4+KDcmT24pJigxPDxpaS5iKS0xLF9yPShjW0ZyPShPbi09ZnIuYik+PjNdfGNbRnIrMV08'@; put 'PDgpPj4oNyZPbikmKDE8PGZyLmIpLTEsdnQ9KGNbRnI9KE9uLT1JaS5iKT4+M118Y1tGcisxXTw8OCk+Pig3Jk9uKSYoMTw8SWkuYiktMTtmb3IoKytKdDstLUp0Oyl7dmFyIE90PWlpLnNbTXJdLGNuPWlpLm5bTXJdLEVuPUlpLnNbdnRdLFBuPUlpLm5bdnRdLEpuPWZyLnNbX3JdLFByPWZy'@; put 'Lm5bX3JdLE9yPTE8PEpuLCRyPU9yKygoY1tGcj0oT24tPUpuKT4+M118Y1tGcisxXTw8OHxjW0ZyKzJdPDwxNnxjW0ZyKzNdPDwyNCk+Pj4oNyZPbikmT3ItMSk7RnI9KE9uLT1LVVtFbl0pPj4zO3ZhciBZcj1USmVbRW5dKygoY1tGcl18Y1tGcisxXTw8OHxjW0ZyKzJdPDwxNik+Pig3Jk9u'@; put 'KSYoMTw8S1VbRW5dKS0xKTtGcj0oT24tPXFVW090XSk+PjM7dmFyIE5yPUFKZVtPdF0rKChjW0ZyXXxjW0ZyKzFdPDw4fGNbRnIrMl08PDE2KT4+KDcmT24pJigxPDxxVVtPdF0pLTEpO2lmKEZyPShPbi09Y24pPj4zLE1yPWlpLnRbTXJdKygoY1tGcl18Y1tGcisxXTw8OCk+Pig3Jk9uKSYo'@; put 'MTw8Y24pLTEpLEZyPShPbi09UG4pPj4zLHZ0PUlpLnRbdnRdKygoY1tGcl18Y1tGcisxXTw8OCk+Pig3Jk9uKSYoMTw8UG4pLTEpLEZyPShPbi09UHIpPj4zLF9yPWZyLnRbX3JdKygoY1tGcl18Y1tGcisxXTw8OCk+Pig3Jk9uKSYoMTw8UHIpLTEpLCRyPjMpbC5vWzJdPWwub1sxXSxsLm9b'@; put 'MV09bC5vWzBdLGwub1swXT0kci09MztlbHNle3ZhciBSaT0kci0oMCE9TnIpO1JpPygkcj0zPT1SaT9sLm9bMF0tMTpsLm9bUmldLFJpPjEmJihsLm9bMl09bC5vWzFdKSxsLm9bMV09bC5vWzBdLGwub1swXT0kcik6JHI9bC5vWzBdfWZvcihObj0wO05uPE5yOysrTm4pZXRbUW4rTm5dPWV0'@; put 'W3l0K05uXTt5dCs9TnI7dmFyIFhvPShRbis9TnIpLSRyO2lmKFhvPDApe3ZhciBHbz0tWG8sSnM9bC5lK1hvO2ZvcihHbz5ZciYmKEdvPVlyKSxObj0wO05uPEdvOysrTm4pZXRbUW4rTm5dPWwud1tKcytObl07UW4rPUdvLFlyLT1HbyxYbz0wfWZvcihObj0wO05uPFlyOysrTm4pZXRbUW4r'@; put 'Tm5dPWV0W1hvK05uXTtRbis9WXJ9aWYoUW4hPXl0KWZvcig7eXQ8ZXQubGVuZ3RoOylldFtRbisrXT1ldFt5dCsrXTtlbHNlIFFuPWV0Lmxlbmd0aDthP2wueSs9UW46ZXQ9JFUoZXQsMCxRbil9ZWxzZSBpZihhKXtpZihsLnkrPUVlLHl0KWZvcihObj0wO05uPEVlOysrTm4pZXRbTm5dPWV0'@; put 'W3l0K05uXX1lbHNlIHl0JiYoZXQ9JFUoZXQseXQpKTtyZXR1cm4gbC5iPVcsZXR9bWMoMil9fTt2YXIgT0plPSh0eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0JiZkb2N1bWVudCxmdW5jdGlvbihjKXt2YXIgbCxhLGQ9dm9pZCAwIT09KGM9Y3x8e30pP2M6e307'@; put 'ZC5yZWFkeT1uZXcgUHJvbWlzZShmdW5jdGlvbihzdCxndCl7bD1zdCxhPWd0fSk7dmFyIGgsZj1PYmplY3QuYXNzaWduKHt9LGQpLF89Ii4vdGhpcy5wcm9ncmFtIixUPShzdCxndCk9Pnt0aHJvdyBndH0sVz1kLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLGllPWQucHJpbnRF'@; put 'cnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oZCxmKSxmPW51bGwsZC50aGlzUHJvZ3JhbSYmKF89ZC50aGlzUHJvZ3JhbSksZC5xdWl0JiYoVD1kLnF1aXQpLGQud2FzbUJpbmFyeSYmKGg9ZC53YXNtQmluYXJ5KTt2YXIgcGUsd2U9ZC5ub0V4aXRSdW50aW1l'@; put 'fHwhMDsib2JqZWN0IiE9dHlwZW9mIFdlYkFzc2VtYmx5JiZFbigibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciBFZT0hMTtmdW5jdGlvbiBaZShzdCxndCl7c3R8fEVuKGd0KX12YXIgaXQsZXQseXQsRXQsU3QsSnQsbm4sdm49dHlwZW9mIFRleHREZWNvZGVyPCJ1Ij9u'@; put 'ZXcgVGV4dERlY29kZXIoInV0ZjgiKTp2b2lkIDA7ZnVuY3Rpb24gTm4oc3QsZ3QsUnQpe2Zvcih2YXIgdG49Z3QrUnQsd249Z3Q7c3Rbd25dJiYhKHduPj10bik7KSsrd247aWYod24tZ3Q+MTYmJnN0LmJ1ZmZlciYmdm4pcmV0dXJuIHZuLmRlY29kZShzdC5zdWJhcnJheShndCx3bikpO2Zv'@; put 'cih2YXIgc3I9IiI7Z3Q8d247KXt2YXIgbHI9c3RbZ3QrK107aWYoMTI4JmxyKXt2YXIgUnI9NjMmc3RbZ3QrK107aWYoMTkyIT0oMjI0JmxyKSl7dmFyIGdvPTYzJnN0W2d0KytdO2lmKChscj0yMjQ9PSgyNDAmbHIpPygxNSZscik8PDEyfFJyPDw2fGdvOig3JmxyKTw8MTh8UnI8PDEyfGdv'@; put 'PDw2fDYzJnN0W2d0KytdKTw2NTUzNilzcis9U3RyaW5nLmZyb21DaGFyQ29kZShscik7ZWxzZXt2YXIgTW89bHItNjU1MzY7c3IrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8TW8+PjEwLDU2MzIwfDEwMjMmTW8pfX1lbHNlIHNyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZscik8PDZ8'@; put 'UnIpfWVsc2Ugc3IrPVN0cmluZy5mcm9tQ2hhckNvZGUobHIpfXJldHVybiBzcn1mdW5jdGlvbiBjcihzdCxndCl7cmV0dXJuIHN0P05uKHl0LHN0LGd0KToiIn1mdW5jdGlvbiBJcihzdCxndCxSdCx0bil7aWYoISh0bj4wKSlyZXR1cm4gMDtmb3IodmFyIHduPVJ0LHNyPVJ0K3RuLTEsbHI9'@; put 'MDtscjxzdC5sZW5ndGg7Kytscil7dmFyIFJyPXN0LmNoYXJDb2RlQXQobHIpO2lmKFJyPj01NTI5NiYmUnI8PTU3MzQzJiYoUnI9NjU1MzYrKCgxMDIzJlJyKTw8MTApfDEwMjMmc3QuY2hhckNvZGVBdCgrK2xyKSksUnI8PTEyNyl7aWYoUnQ+PXNyKWJyZWFrO2d0W1J0KytdPVJyfWVsc2Ug'@; put 'aWYoUnI8PTIwNDcpe2lmKFJ0KzE+PXNyKWJyZWFrO2d0W1J0KytdPTE5MnxScj4+NixndFtSdCsrXT0xMjh8NjMmUnJ9ZWxzZSBpZihScjw9NjU1MzUpe2lmKFJ0KzI+PXNyKWJyZWFrO2d0W1J0KytdPTIyNHxScj4+MTIsZ3RbUnQrK109MTI4fFJyPj42JjYzLGd0W1J0KytdPTEyOHw2MyZS'@; put 'cn1lbHNle2lmKFJ0KzM+PXNyKWJyZWFrO2d0W1J0KytdPTI0MHxScj4+MTgsZ3RbUnQrK109MTI4fFJyPj4xMiY2MyxndFtSdCsrXT0xMjh8UnI+PjYmNjMsZ3RbUnQrK109MTI4fDYzJlJyfX1yZXR1cm4gZ3RbUnRdPTAsUnQtd259ZnVuY3Rpb24gRWkoc3Qpe2Zvcih2YXIgZ3Q9MCxSdD0w'@; put 'O1J0PHN0Lmxlbmd0aDsrK1J0KXt2YXIgdG49c3QuY2hhckNvZGVBdChSdCk7dG48PTEyNz9ndCsrOnRuPD0yMDQ3P2d0Kz0yOnRuPj01NTI5NiYmdG48PTU3MzQzPyhndCs9NCwrK1J0KTpndCs9M31yZXR1cm4gZ3R9ZnVuY3Rpb24gSWkoc3Qpe2l0PXN0LGQuSEVBUDg9ZXQ9bmV3IEludDhB'@; put 'cnJheShzdCksZC5IRUFQMTY9RXQ9bmV3IEludDE2QXJyYXkoc3QpLGQuSEVBUDMyPVN0PW5ldyBJbnQzMkFycmF5KHN0KSxkLkhFQVBVOD15dD1uZXcgVWludDhBcnJheShzdCksZC5IRUFQVTE2PW5ldyBVaW50MTZBcnJheShzdCksZC5IRUFQVTMyPUp0PW5ldyBVaW50MzJBcnJheShzdCks'@; put 'ZC5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoc3QpLGQuSEVBUEY2ND1ubj1uZXcgRmxvYXQ2NEFycmF5KHN0KX12YXIgZnIsaWksanIsT24sRnI9W10sUW49W10sTXI9W10sX3I9MCx2dD1udWxsO2Z1bmN0aW9uIE90KHN0KXtfcisrLGQubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmZC5tb25p'@; put 'dG9yUnVuRGVwZW5kZW5jaWVzKF9yKX1mdW5jdGlvbiBjbihzdCl7aWYoX3ItLSxkLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJmQubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhfciksMD09X3ImJnZ0KXt2YXIgZ3Q9dnQ7dnQ9bnVsbCxndCgpfX1mdW5jdGlvbiBFbihzdCl7ZC5vbkFib3J0JiZk'@; put 'Lm9uQWJvcnQoc3QpLGllKHN0PSJBYm9ydGVkKCIrc3QrIikiKSxFZT0hMCxzdCs9Ii4gQnVpbGQgd2l0aCAtc0FTU0VSVElPTlMgZm9yIG1vcmUgaW5mby4iO3ZhciBndD1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKHN0KTt0aHJvdyBhKGd0KSxndH1mdW5jdGlvbiBQbihzdCl7cmV0'@; put 'dXJuIHN0LnN0YXJ0c1dpdGgoImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiKX1Qbihmcj0iZ3JhcGh2aXpsaWIud2FzbSIpfHwoaWk9ZnIsZnI9ZC5sb2NhdGVGaWxlP2QubG9jYXRlRmlsZShpaSwiIik6IiIraWkpO3ZhciBPcj17MTc1NjY0OihzdCxndCk9Pnt2YXIg'@; put 'UnQ9Y3Ioc3QpLHRuPWNyKGd0KTtBdC5jcmVhdGVQYXRoKCIvIixSaS5kaXJuYW1lKFJ0KSksQXQud3JpdGVGaWxlKFJpLmpvaW4oIi8iLFJ0KSx0bil9fTtmdW5jdGlvbiAkcihzdCl7dGhpcy5uYW1lPSJFeGl0U3RhdHVzIix0aGlzLm1lc3NhZ2U9IlByb2dyYW0gdGVybWluYXRlZCB3aXRo'@; put 'IGV4aXQoIitzdCsiKSIsdGhpcy5zdGF0dXM9c3R9ZnVuY3Rpb24gWXIoc3Qpe2Zvcig7c3QubGVuZ3RoPjA7KXN0LnNoaWZ0KCkoZCl9ZnVuY3Rpb24gTnIoc3Qpe3RoaXMuZXhjUHRyPXN0LHRoaXMucHRyPXN0LTI0LHRoaXMuc2V0X3R5cGU9ZnVuY3Rpb24oZ3Qpe0p0W3RoaXMucHRyKzQ+'@; put 'PjJdPWd0fSx0aGlzLmdldF90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIEp0W3RoaXMucHRyKzQ+PjJdfSx0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKGd0KXtKdFt0aGlzLnB0cis4Pj4yXT1ndH0sdGhpcy5nZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbigpe3JldHVybiBKdFt0aGlzLnB0cis4'@; put 'Pj4yXX0sdGhpcy5zZXRfcmVmY291bnQ9ZnVuY3Rpb24oZ3Qpe1N0W3RoaXMucHRyPj4yXT1ndH0sdGhpcy5zZXRfY2F1Z2h0PWZ1bmN0aW9uKGd0KXtldFt0aGlzLnB0cisxMj4+MF09Z3Q9Z3Q/MTowfSx0aGlzLmdldF9jYXVnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9ZXRbdGhpcy5wdHIr'@; put 'MTI+PjBdfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihndCl7ZXRbdGhpcy5wdHIrMTM+PjBdPWd0PWd0PzE6MH0sdGhpcy5nZXRfcmV0aHJvd249ZnVuY3Rpb24oKXtyZXR1cm4gMCE9ZXRbdGhpcy5wdHIrMTM+PjBdfSx0aGlzLmluaXQ9ZnVuY3Rpb24oZ3QsUnQpe3RoaXMuc2V0X2Fk'@; put 'anVzdGVkX3B0cigwKSx0aGlzLnNldF90eXBlKGd0KSx0aGlzLnNldF9kZXN0cnVjdG9yKFJ0KSx0aGlzLnNldF9yZWZjb3VudCgwKSx0aGlzLnNldF9jYXVnaHQoITEpLHRoaXMuc2V0X3JldGhyb3duKCExKX0sdGhpcy5hZGRfcmVmPWZ1bmN0aW9uKCl7U3RbdGhpcy5wdHI+PjJdPVN0W3Ro'@; put 'aXMucHRyPj4yXSsxfSx0aGlzLnJlbGVhc2VfcmVmPWZ1bmN0aW9uKCl7dmFyIGd0PVN0W3RoaXMucHRyPj4yXTtyZXR1cm4gU3RbdGhpcy5wdHI+PjJdPWd0LTEsMT09PWd0fSx0aGlzLnNldF9hZGp1c3RlZF9wdHI9ZnVuY3Rpb24oZ3Qpe0p0W3RoaXMucHRyKzE2Pj4yXT1ndH0sdGhpcy5n'@; put 'ZXRfYWRqdXN0ZWRfcHRyPWZ1bmN0aW9uKCl7cmV0dXJuIEp0W3RoaXMucHRyKzE2Pj4yXX0sdGhpcy5nZXRfZXhjZXB0aW9uX3B0cj1mdW5jdGlvbigpe2lmKHRtKHRoaXMuZ2V0X3R5cGUoKSkpcmV0dXJuIEp0W3RoaXMuZXhjUHRyPj4yXTt2YXIgZ3Q9dGhpcy5nZXRfYWRqdXN0ZWRfcHRy'@; put 'KCk7cmV0dXJuIDAhPT1ndD9ndDp0aGlzLmV4Y1B0cn19dmFyIFJpPXtpc0FiczpzdD0+Ii8iPT09c3QuY2hhckF0KDApLHNwbGl0UGF0aDpzdD0+L14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvLmV4ZWMoc3QpLnNsaWNlKDEp'@; put 'LG5vcm1hbGl6ZUFycmF5OihzdCxndCk9Pntmb3IodmFyIFJ0PTAsdG49c3QubGVuZ3RoLTE7dG4+PTA7dG4tLSl7dmFyIHduPXN0W3RuXTsiLiI9PT13bj9zdC5zcGxpY2UodG4sMSk6Ii4uIj09PXduPyhzdC5zcGxpY2UodG4sMSksUnQrKyk6UnQmJihzdC5zcGxpY2UodG4sMSksUnQtLSl9'@; put 'aWYoZ3QpZm9yKDtSdDtSdC0tKXN0LnVuc2hpZnQoIi4uIik7cmV0dXJuIHN0fSxub3JtYWxpemU6c3Q9Pnt2YXIgZ3Q9UmkuaXNBYnMoc3QpLFJ0PSIvIj09PXN0LnN1YnN0cigtMSk7cmV0dXJuKHN0PVJpLm5vcm1hbGl6ZUFycmF5KHN0LnNwbGl0KCIvIikuZmlsdGVyKHRuPT4hIXRuKSwh'@; put 'Z3QpLmpvaW4oIi8iKSl8fGd0fHwoc3Q9Ii4iKSxzdCYmUnQmJihzdCs9Ii8iKSwoZ3Q/Ii8iOiIiKStzdH0sZGlybmFtZTpzdD0+e3ZhciBndD1SaS5zcGxpdFBhdGgoc3QpLFJ0PWd0WzBdLHRuPWd0WzFdO3JldHVybiBSdHx8dG4/KHRuJiYodG49dG4uc3Vic3RyKDAsdG4ubGVuZ3RoLTEp'@; put 'KSxSdCt0bik6Ii4ifSxiYXNlbmFtZTpzdD0+e2lmKCIvIj09PXN0KXJldHVybiIvIjt2YXIgZ3Q9KHN0PShzdD1SaS5ub3JtYWxpemUoc3QpKS5yZXBsYWNlKC9cLyQvLCIiKSkubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PWd0P3N0OnN0LnN1YnN0cihndCsxKX0sam9pbjpmdW5jdGlv'@; put 'bigpe3ZhciBzdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBSaS5ub3JtYWxpemUoc3Quam9pbigiLyIpKX0sam9pbjI6KHN0LGd0KT0+Umkubm9ybWFsaXplKHN0KyIvIitndCl9LFhvPXtyZXNvbHZlOmZ1bmN0aW9uKCl7Zm9yKHZhciBzdD0iIixndD0h'@; put 'MSxSdD1hcmd1bWVudHMubGVuZ3RoLTE7UnQ+PS0xJiYhZ3Q7UnQtLSl7dmFyIHRuPVJ0Pj0wP2FyZ3VtZW50c1tSdF06QXQuY3dkKCk7aWYoInN0cmluZyIhPXR5cGVvZiB0bil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncyIp'@; put 'O2lmKCF0bilyZXR1cm4iIjtzdD10bisiLyIrc3QsZ3Q9UmkuaXNBYnModG4pfXJldHVybihndD8iLyI6IiIpKyhzdD1SaS5ub3JtYWxpemVBcnJheShzdC5zcGxpdCgiLyIpLmZpbHRlcih3bj0+ISF3biksIWd0KS5qb2luKCIvIikpfHwiLiJ9LHJlbGF0aXZlOihzdCxndCk9PntmdW5jdGlv'@; put 'biBSdChNbyl7Zm9yKHZhciBmbz0wO2ZvPE1vLmxlbmd0aCYmIiI9PT1Nb1tmb107Zm8rKyk7Zm9yKHZhciBKbz1Nby5sZW5ndGgtMTtKbz49MCYmIiI9PT1Nb1tKb107Sm8tLSk7cmV0dXJuIGZvPkpvP1tdOk1vLnNsaWNlKGZvLEpvLWZvKzEpfXN0PVhvLnJlc29sdmUoc3QpLnN1YnN0cigx'@; put 'KSxndD1Yby5yZXNvbHZlKGd0KS5zdWJzdHIoMSk7Zm9yKHZhciB0bj1SdChzdC5zcGxpdCgiLyIpKSx3bj1SdChndC5zcGxpdCgiLyIpKSxzcj1NYXRoLm1pbih0bi5sZW5ndGgsd24ubGVuZ3RoKSxscj1zcixScj0wO1JyPHNyO1JyKyspaWYodG5bUnJdIT09d25bUnJdKXtscj1ScjticmVh'@; put 'a312YXIgZ289W107Zm9yKFJyPWxyO1JyPHRuLmxlbmd0aDtScisrKWdvLnB1c2goIi4uIik7cmV0dXJuKGdvPWdvLmNvbmNhdCh3bi5zbGljZShscikpKS5qb2luKCIvIil9fTtmdW5jdGlvbiBHbyhzdCxndCxSdCl7dmFyIHRuPVJ0PjA/UnQ6RWkoc3QpKzEsd249bmV3IEFycmF5KHRuKSxz'@; put 'cj1JcihzdCx3biwwLHduLmxlbmd0aCk7cmV0dXJuIGd0JiYod24ubGVuZ3RoPXNyKSx3bn12YXIgSnM9e3R0eXM6W10saW5pdDpmdW5jdGlvbigpe30sc2h1dGRvd246ZnVuY3Rpb24oKXt9LHJlZ2lzdGVyOmZ1bmN0aW9uKHN0LGd0KXtKcy50dHlzW3N0XT17aW5wdXQ6W10sb3V0cHV0Oltd'@; put 'LG9wczpndH0sQXQucmVnaXN0ZXJEZXZpY2Uoc3QsSnMuc3RyZWFtX29wcyl9LHN0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24oc3Qpe3ZhciBndD1Kcy50dHlzW3N0Lm5vZGUucmRldl07aWYoIWd0KXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDQzKTtzdC50dHk9Z3Qsc3Quc2Vla2FibGU9ITF9'@; put 'LGNsb3NlOmZ1bmN0aW9uKHN0KXtzdC50dHkub3BzLmZzeW5jKHN0LnR0eSl9LGZzeW5jOmZ1bmN0aW9uKHN0KXtzdC50dHkub3BzLmZzeW5jKHN0LnR0eSl9LHJlYWQ6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4sd24pe2lmKCFzdC50dHl8fCFzdC50dHkub3BzLmdldF9jaGFyKXRocm93IG5ldyBB'@; put 'dC5FcnJub0Vycm9yKDYwKTtmb3IodmFyIHNyPTAsbHI9MDtscjx0bjtscisrKXt2YXIgUnI7dHJ5e1JyPXN0LnR0eS5vcHMuZ2V0X2NoYXIoc3QudHR5KX1jYXRjaHt0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigyOSl9aWYodm9pZCAwPT09UnImJjA9PT1zcil0aHJvdyBuZXcgQXQuRXJybm9F'@; put 'cnJvcig2KTtpZihudWxsPT1ScilicmVhaztzcisrLGd0W1J0K2xyXT1Scn1yZXR1cm4gc3ImJihzdC5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpKSxzcn0sd3JpdGU6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4sd24pe2lmKCFzdC50dHl8fCFzdC50dHkub3BzLnB1dF9jaGFyKXRocm93IG5ldyBB'@; put 'dC5FcnJub0Vycm9yKDYwKTt0cnl7Zm9yKHZhciBzcj0wO3NyPHRuO3NyKyspc3QudHR5Lm9wcy5wdXRfY2hhcihzdC50dHksZ3RbUnQrc3JdKX1jYXRjaHt0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigyOSl9cmV0dXJuIHRuJiYoc3Qubm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKSksc3J9fSxk'@; put 'ZWZhdWx0X3R0eV9vcHM6e2dldF9jaGFyOmZ1bmN0aW9uKHN0KXtpZighc3QuaW5wdXQubGVuZ3RoKXt2YXIgZ3Q9bnVsbDtpZih0eXBlb2Ygd2luZG93PCJ1IiYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5wcm9tcHQ/bnVsbCE9PShndD13aW5kb3cucHJvbXB0KCJJbnB1dDogIikpJiYo'@; put 'Z3QrPSJcbiIpOiJmdW5jdGlvbiI9PXR5cGVvZiByZWFkbGluZSYmbnVsbCE9PShndD1yZWFkbGluZSgpKSYmKGd0Kz0iXG4iKSwhZ3QpcmV0dXJuIG51bGw7c3QuaW5wdXQ9R28oZ3QsITApfXJldHVybiBzdC5pbnB1dC5zaGlmdCgpfSxwdXRfY2hhcjpmdW5jdGlvbihzdCxndCl7bnVsbD09'@; put 'PWd0fHwxMD09PWd0PyhXKE5uKHN0Lm91dHB1dCwwKSksc3Qub3V0cHV0PVtdKTowIT1ndCYmc3Qub3V0cHV0LnB1c2goZ3QpfSxmc3luYzpmdW5jdGlvbihzdCl7c3Qub3V0cHV0JiZzdC5vdXRwdXQubGVuZ3RoPjAmJihXKE5uKHN0Lm91dHB1dCwwKSksc3Qub3V0cHV0PVtdKX19LGRlZmF1'@; put 'bHRfdHR5MV9vcHM6e3B1dF9jaGFyOmZ1bmN0aW9uKHN0LGd0KXtudWxsPT09Z3R8fDEwPT09Z3Q/KGllKE5uKHN0Lm91dHB1dCwwKSksc3Qub3V0cHV0PVtdKTowIT1ndCYmc3Qub3V0cHV0LnB1c2goZ3QpfSxmc3luYzpmdW5jdGlvbihzdCl7c3Qub3V0cHV0JiZzdC5vdXRwdXQubGVuZ3Ro'@; put 'PjAmJihpZShObihzdC5vdXRwdXQsMCkpLHN0Lm91dHB1dD1bXSl9fX07ZnVuY3Rpb24gZ2Eoc3Qpe3N0PTY1NTM2Kk1hdGguY2VpbChzdC82NTUzNik7dmFyIFJ0LGd0PXh3KDY1NTM2LHN0KTtyZXR1cm4gZ3Q/KHl0LmZpbGwoMCxSdD1ndCxSdCtzdCksUnQpOjB9dmFyIHVvPXtvcHNfdGFi'@; put 'bGU6bnVsbCxtb3VudDpmdW5jdGlvbihzdCl7cmV0dXJuIHVvLmNyZWF0ZU5vZGUobnVsbCwiLyIsMTY4OTUsMCl9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4pe2lmKEF0LmlzQmxrZGV2KFJ0KXx8QXQuaXNGSUZPKFJ0KSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig2Myk7dW8u'@; put 'b3BzX3RhYmxlfHwodW8ub3BzX3RhYmxlPXtkaXI6e25vZGU6e2dldGF0dHI6dW8ubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOnVvLm5vZGVfb3BzLnNldGF0dHIsbG9va3VwOnVvLm5vZGVfb3BzLmxvb2t1cCxta25vZDp1by5ub2RlX29wcy5ta25vZCxyZW5hbWU6dW8ubm9kZV9vcHMucmVu'@; put 'YW1lLHVubGluazp1by5ub2RlX29wcy51bmxpbmsscm1kaXI6dW8ubm9kZV9vcHMucm1kaXIscmVhZGRpcjp1by5ub2RlX29wcy5yZWFkZGlyLHN5bWxpbms6dW8ubm9kZV9vcHMuc3ltbGlua30sc3RyZWFtOntsbHNlZWs6dW8uc3RyZWFtX29wcy5sbHNlZWt9fSxmaWxlOntub2RlOntnZXRh'@; put 'dHRyOnVvLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjp1by5ub2RlX29wcy5zZXRhdHRyfSxzdHJlYW06e2xsc2Vlazp1by5zdHJlYW1fb3BzLmxsc2VlayxyZWFkOnVvLnN0cmVhbV9vcHMucmVhZCx3cml0ZTp1by5zdHJlYW1fb3BzLndyaXRlLGFsbG9jYXRlOnVvLnN0cmVhbV9vcHMuYWxs'@; put 'b2NhdGUsbW1hcDp1by5zdHJlYW1fb3BzLm1tYXAsbXN5bmM6dW8uc3RyZWFtX29wcy5tc3luY319LGxpbms6e25vZGU6e2dldGF0dHI6dW8ubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOnVvLm5vZGVfb3BzLnNldGF0dHIscmVhZGxpbms6dW8ubm9kZV9vcHMucmVhZGxpbmt9LHN0cmVhbTp7'@; put 'fX0sY2hyZGV2Ontub2RlOntnZXRhdHRyOnVvLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjp1by5ub2RlX29wcy5zZXRhdHRyfSxzdHJlYW06QXQuY2hyZGV2X3N0cmVhbV9vcHN9fSk7dmFyIHduPUF0LmNyZWF0ZU5vZGUoc3QsZ3QsUnQsdG4pO3JldHVybiBBdC5pc0Rpcih3bi5tb2RlKT8o'@; put 'd24ubm9kZV9vcHM9dW8ub3BzX3RhYmxlLmRpci5ub2RlLHduLnN0cmVhbV9vcHM9dW8ub3BzX3RhYmxlLmRpci5zdHJlYW0sd24uY29udGVudHM9e30pOkF0LmlzRmlsZSh3bi5tb2RlKT8od24ubm9kZV9vcHM9dW8ub3BzX3RhYmxlLmZpbGUubm9kZSx3bi5zdHJlYW1fb3BzPXVvLm9wc190'@; put 'YWJsZS5maWxlLnN0cmVhbSx3bi51c2VkQnl0ZXM9MCx3bi5jb250ZW50cz1udWxsKTpBdC5pc0xpbmsod24ubW9kZSk/KHduLm5vZGVfb3BzPXVvLm9wc190YWJsZS5saW5rLm5vZGUsd24uc3RyZWFtX29wcz11by5vcHNfdGFibGUubGluay5zdHJlYW0pOkF0LmlzQ2hyZGV2KHduLm1vZGUp'@; put 'JiYod24ubm9kZV9vcHM9dW8ub3BzX3RhYmxlLmNocmRldi5ub2RlLHduLnN0cmVhbV9vcHM9dW8ub3BzX3RhYmxlLmNocmRldi5zdHJlYW0pLHduLnRpbWVzdGFtcD1EYXRlLm5vdygpLHN0JiYoc3QuY29udGVudHNbZ3RdPXduLHN0LnRpbWVzdGFtcD13bi50aW1lc3RhbXApLHdufSxnZXRG'@; put 'aWxlRGF0YUFzVHlwZWRBcnJheTpmdW5jdGlvbihzdCl7cmV0dXJuIHN0LmNvbnRlbnRzP3N0LmNvbnRlbnRzLnN1YmFycmF5P3N0LmNvbnRlbnRzLnN1YmFycmF5KDAsc3QudXNlZEJ5dGVzKTpuZXcgVWludDhBcnJheShzdC5jb250ZW50cyk6bmV3IFVpbnQ4QXJyYXkoMCl9LGV4cGFuZEZp'@; put 'bGVTdG9yYWdlOmZ1bmN0aW9uKHN0LGd0KXt2YXIgUnQ9c3QuY29udGVudHM/c3QuY29udGVudHMubGVuZ3RoOjA7aWYoIShSdD49Z3QpKXtndD1NYXRoLm1heChndCxSdCooUnQ8MTA0ODU3Nj8yOjEuMTI1KT4+PjApLDAhPVJ0JiYoZ3Q9TWF0aC5tYXgoZ3QsMjU2KSk7dmFyIHRuPXN0LmNv'@; put 'bnRlbnRzO3N0LmNvbnRlbnRzPW5ldyBVaW50OEFycmF5KGd0KSxzdC51c2VkQnl0ZXM+MCYmc3QuY29udGVudHMuc2V0KHRuLnN1YmFycmF5KDAsc3QudXNlZEJ5dGVzKSwwKX19LHJlc2l6ZUZpbGVTdG9yYWdlOmZ1bmN0aW9uKHN0LGd0KXtpZihzdC51c2VkQnl0ZXMhPWd0KWlmKDA9PWd0'@; put 'KXN0LmNvbnRlbnRzPW51bGwsc3QudXNlZEJ5dGVzPTA7ZWxzZXt2YXIgUnQ9c3QuY29udGVudHM7c3QuY29udGVudHM9bmV3IFVpbnQ4QXJyYXkoZ3QpLFJ0JiZzdC5jb250ZW50cy5zZXQoUnQuc3ViYXJyYXkoMCxNYXRoLm1pbihndCxzdC51c2VkQnl0ZXMpKSksc3QudXNlZEJ5dGVzPWd0'@; put 'fX0sbm9kZV9vcHM6e2dldGF0dHI6ZnVuY3Rpb24oc3Qpe3ZhciBndD17fTtyZXR1cm4gZ3QuZGV2PUF0LmlzQ2hyZGV2KHN0Lm1vZGUpP3N0LmlkOjEsZ3QuaW5vPXN0LmlkLGd0Lm1vZGU9c3QubW9kZSxndC5ubGluaz0xLGd0LnVpZD0wLGd0LmdpZD0wLGd0LnJkZXY9c3QucmRldixndC5z'@; put 'aXplPUF0LmlzRGlyKHN0Lm1vZGUpPzQwOTY6QXQuaXNGaWxlKHN0Lm1vZGUpP3N0LnVzZWRCeXRlczpBdC5pc0xpbmsoc3QubW9kZSk/c3QubGluay5sZW5ndGg6MCxndC5hdGltZT1uZXcgRGF0ZShzdC50aW1lc3RhbXApLGd0Lm10aW1lPW5ldyBEYXRlKHN0LnRpbWVzdGFtcCksZ3QuY3Rp'@; put 'bWU9bmV3IERhdGUoc3QudGltZXN0YW1wKSxndC5ibGtzaXplPTQwOTYsZ3QuYmxvY2tzPU1hdGguY2VpbChndC5zaXplL2d0LmJsa3NpemUpLGd0fSxzZXRhdHRyOmZ1bmN0aW9uKHN0LGd0KXt2b2lkIDAhPT1ndC5tb2RlJiYoc3QubW9kZT1ndC5tb2RlKSx2b2lkIDAhPT1ndC50aW1lc3Rh'@; put 'bXAmJihzdC50aW1lc3RhbXA9Z3QudGltZXN0YW1wKSx2b2lkIDAhPT1ndC5zaXplJiZ1by5yZXNpemVGaWxlU3RvcmFnZShzdCxndC5zaXplKX0sbG9va3VwOmZ1bmN0aW9uKHN0LGd0KXt0aHJvdyBBdC5nZW5lcmljRXJyb3JzWzQ0XX0sbWtub2Q6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4pe3Jl'@; put 'dHVybiB1by5jcmVhdGVOb2RlKHN0LGd0LFJ0LHRuKX0scmVuYW1lOmZ1bmN0aW9uKHN0LGd0LFJ0KXtpZihBdC5pc0RpcihzdC5tb2RlKSl7dmFyIHRuO3RyeXt0bj1BdC5sb29rdXBOb2RlKGd0LFJ0KX1jYXRjaHt9aWYodG4pZm9yKHZhciB3biBpbiB0bi5jb250ZW50cyl0aHJvdyBuZXcg'@; put 'QXQuRXJybm9FcnJvcig1NSl9ZGVsZXRlIHN0LnBhcmVudC5jb250ZW50c1tzdC5uYW1lXSxzdC5wYXJlbnQudGltZXN0YW1wPURhdGUubm93KCksc3QubmFtZT1SdCxndC5jb250ZW50c1tSdF09c3QsZ3QudGltZXN0YW1wPXN0LnBhcmVudC50aW1lc3RhbXAsc3QucGFyZW50PWd0fSx1bmxp'@; put 'bms6ZnVuY3Rpb24oc3QsZ3Qpe2RlbGV0ZSBzdC5jb250ZW50c1tndF0sc3QudGltZXN0YW1wPURhdGUubm93KCl9LHJtZGlyOmZ1bmN0aW9uKHN0LGd0KXt2YXIgUnQ9QXQubG9va3VwTm9kZShzdCxndCk7Zm9yKHZhciB0biBpbiBSdC5jb250ZW50cyl0aHJvdyBuZXcgQXQuRXJybm9FcnJv'@; put 'cig1NSk7ZGVsZXRlIHN0LmNvbnRlbnRzW2d0XSxzdC50aW1lc3RhbXA9RGF0ZS5ub3coKX0scmVhZGRpcjpmdW5jdGlvbihzdCl7dmFyIGd0PVsiLiIsIi4uIl07Zm9yKHZhciBSdCBpbiBzdC5jb250ZW50cylzdC5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShSdCkmJmd0LnB1c2goUnQpO3Jl'@; put 'dHVybiBndH0sc3ltbGluazpmdW5jdGlvbihzdCxndCxSdCl7dmFyIHRuPXVvLmNyZWF0ZU5vZGUoc3QsZ3QsNDE0NzEsMCk7cmV0dXJuIHRuLmxpbms9UnQsdG59LHJlYWRsaW5rOmZ1bmN0aW9uKHN0KXtpZighQXQuaXNMaW5rKHN0Lm1vZGUpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDI4'@; put 'KTtyZXR1cm4gc3QubGlua319LHN0cmVhbV9vcHM6e3JlYWQ6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4sd24pe3ZhciBzcj1zdC5ub2RlLmNvbnRlbnRzO2lmKHduPj1zdC5ub2RlLnVzZWRCeXRlcylyZXR1cm4gMDt2YXIgbHI9TWF0aC5taW4oc3Qubm9kZS51c2VkQnl0ZXMtd24sdG4pO2lmKGxy'@; put 'PjgmJnNyLnN1YmFycmF5KWd0LnNldChzci5zdWJhcnJheSh3bix3bitsciksUnQpO2Vsc2UgZm9yKHZhciBScj0wO1JyPGxyO1JyKyspZ3RbUnQrUnJdPXNyW3duK1JyXTtyZXR1cm4gbHJ9LHdyaXRlOmZ1bmN0aW9uKHN0LGd0LFJ0LHRuLHduLHNyKXtpZihndC5idWZmZXI9PT1ldC5idWZm'@; put 'ZXImJihzcj0hMSksIXRuKXJldHVybiAwO3ZhciBscj1zdC5ub2RlO2lmKGxyLnRpbWVzdGFtcD1EYXRlLm5vdygpLGd0LnN1YmFycmF5JiYoIWxyLmNvbnRlbnRzfHxsci5jb250ZW50cy5zdWJhcnJheSkpe2lmKHNyKXJldHVybiBsci5jb250ZW50cz1ndC5zdWJhcnJheShSdCxSdCt0biks'@; put 'bHIudXNlZEJ5dGVzPXRuLHRuO2lmKDA9PT1sci51c2VkQnl0ZXMmJjA9PT13bilyZXR1cm4gbHIuY29udGVudHM9Z3Quc2xpY2UoUnQsUnQrdG4pLGxyLnVzZWRCeXRlcz10bix0bjtpZih3bit0bjw9bHIudXNlZEJ5dGVzKXJldHVybiBsci5jb250ZW50cy5zZXQoZ3Quc3ViYXJyYXkoUnQs'@; put 'UnQrdG4pLHduKSx0bn1pZih1by5leHBhbmRGaWxlU3RvcmFnZShscix3bit0biksbHIuY29udGVudHMuc3ViYXJyYXkmJmd0LnN1YmFycmF5KWxyLmNvbnRlbnRzLnNldChndC5zdWJhcnJheShSdCxSdCt0biksd24pO2Vsc2UgZm9yKHZhciBScj0wO1JyPHRuO1JyKyspbHIuY29udGVudHNb'@; put 'd24rUnJdPWd0W1J0K1JyXTtyZXR1cm4gbHIudXNlZEJ5dGVzPU1hdGgubWF4KGxyLnVzZWRCeXRlcyx3bit0biksdG59LGxsc2VlazpmdW5jdGlvbihzdCxndCxSdCl7dmFyIHRuPWd0O2lmKDE9PT1SdD90bis9c3QucG9zaXRpb246Mj09PVJ0JiZBdC5pc0ZpbGUoc3Qubm9kZS5tb2RlKSYm'@; put 'KHRuKz1zdC5ub2RlLnVzZWRCeXRlcyksdG48MCl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigyOCk7cmV0dXJuIHRufSxhbGxvY2F0ZTpmdW5jdGlvbihzdCxndCxSdCl7dW8uZXhwYW5kRmlsZVN0b3JhZ2Uoc3Qubm9kZSxndCtSdCksc3Qubm9kZS51c2VkQnl0ZXM9TWF0aC5tYXgoc3Qubm9k'@; put 'ZS51c2VkQnl0ZXMsZ3QrUnQpfSxtbWFwOmZ1bmN0aW9uKHN0LGd0LFJ0LHRuLHduKXtpZighQXQuaXNGaWxlKHN0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNDMpO3ZhciBzcixscixScj1zdC5ub2RlLmNvbnRlbnRzO2lmKDImd258fFJyLmJ1ZmZlciE9PWl0KXtpZigo'@; put 'UnQ+MHx8UnQrZ3Q8UnIubGVuZ3RoKSYmKFJyPVJyLnN1YmFycmF5P1JyLnN1YmFycmF5KFJ0LFJ0K2d0KTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChScixSdCxSdCtndCkpLGxyPSEwLCEoc3I9Z2EoZ3QpKSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig0OCk7ZXQuc2V0KFJyLHNyKX1l'@; put 'bHNlIGxyPSExLHNyPVJyLmJ5dGVPZmZzZXQ7cmV0dXJue3B0cjpzcixhbGxvY2F0ZWQ6bHJ9fSxtc3luYzpmdW5jdGlvbihzdCxndCxSdCx0bix3bil7cmV0dXJuIHVvLnN0cmVhbV9vcHMud3JpdGUoc3QsZ3QsMCx0bixSdCwhMSksMH19fSxBdD17cm9vdDpudWxsLG1vdW50czpbXSxkZXZp'@; put 'Y2VzOnt9LHN0cmVhbXM6W10sbmV4dElub2RlOjEsbmFtZVRhYmxlOm51bGwsY3VycmVudFBhdGg6Ii8iLGluaXRpYWxpemVkOiExLGlnbm9yZVBlcm1pc3Npb25zOiEwLEVycm5vRXJyb3I6bnVsbCxnZW5lcmljRXJyb3JzOnt9LGZpbGVzeXN0ZW1zOm51bGwsc3luY0ZTUmVxdWVzdHM6MCxs'@; put 'b29rdXBQYXRoOihzdCxndD17fSk9PntpZighKHN0PVhvLnJlc29sdmUoc3QpKSlyZXR1cm57cGF0aDoiIixub2RlOm51bGx9O2lmKChndD1PYmplY3QuYXNzaWduKHtmb2xsb3dfbW91bnQ6ITAscmVjdXJzZV9jb3VudDowfSxndCkpLnJlY3Vyc2VfY291bnQ+OCl0aHJvdyBuZXcgQXQuRXJy'@; put 'bm9FcnJvcigzMik7Zm9yKHZhciBSdD1zdC5zcGxpdCgiLyIpLmZpbHRlcihNbz0+ISFNbyksdG49QXQucm9vdCx3bj0iLyIsc3I9MDtzcjxSdC5sZW5ndGg7c3IrKyl7dmFyIGxyPXNyPT09UnQubGVuZ3RoLTE7aWYobHImJmd0LnBhcmVudClicmVhaztpZih0bj1BdC5sb29rdXBOb2RlKHRu'@; put 'LFJ0W3NyXSksd249Umkuam9pbjIod24sUnRbc3JdKSxBdC5pc01vdW50cG9pbnQodG4pJiYoIWxyfHxsciYmZ3QuZm9sbG93X21vdW50KSYmKHRuPXRuLm1vdW50ZWQucm9vdCksIWxyfHxndC5mb2xsb3cpZm9yKHZhciBScj0wO0F0LmlzTGluayh0bi5tb2RlKTspe3ZhciBnbz1BdC5yZWFk'@; put 'bGluayh3bik7aWYod249WG8ucmVzb2x2ZShSaS5kaXJuYW1lKHduKSxnbyksdG49QXQubG9va3VwUGF0aCh3bix7cmVjdXJzZV9jb3VudDpndC5yZWN1cnNlX2NvdW50KzF9KS5ub2RlLFJyKys+NDApdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMzIpfX1yZXR1cm57cGF0aDp3bixub2RlOnRu'@; put 'fX0sZ2V0UGF0aDpzdD0+e2Zvcih2YXIgZ3Q7Oyl7aWYoQXQuaXNSb290KHN0KSl7dmFyIFJ0PXN0Lm1vdW50Lm1vdW50cG9pbnQ7cmV0dXJuIGd0PyIvIiE9PVJ0W1J0Lmxlbmd0aC0xXT9SdCsiLyIrZ3Q6UnQrZ3Q6UnR9Z3Q9Z3Q/c3QubmFtZSsiLyIrZ3Q6c3QubmFtZSxzdD1zdC5wYXJl'@; put 'bnR9fSxoYXNoTmFtZTooc3QsZ3QpPT57Zm9yKHZhciBSdD0wLHRuPTA7dG48Z3QubGVuZ3RoO3RuKyspUnQ9KFJ0PDw1KS1SdCtndC5jaGFyQ29kZUF0KHRuKXwwO3JldHVybihzdCtSdD4+PjApJUF0Lm5hbWVUYWJsZS5sZW5ndGh9LGhhc2hBZGROb2RlOnN0PT57dmFyIGd0PUF0Lmhhc2hO'@; put 'YW1lKHN0LnBhcmVudC5pZCxzdC5uYW1lKTtzdC5uYW1lX25leHQ9QXQubmFtZVRhYmxlW2d0XSxBdC5uYW1lVGFibGVbZ3RdPXN0fSxoYXNoUmVtb3ZlTm9kZTpzdD0+e3ZhciBndD1BdC5oYXNoTmFtZShzdC5wYXJlbnQuaWQsc3QubmFtZSk7aWYoQXQubmFtZVRhYmxlW2d0XT09PXN0KUF0'@; put 'Lm5hbWVUYWJsZVtndF09c3QubmFtZV9uZXh0O2Vsc2UgZm9yKHZhciBSdD1BdC5uYW1lVGFibGVbZ3RdO1J0Oyl7aWYoUnQubmFtZV9uZXh0PT09c3Qpe1J0Lm5hbWVfbmV4dD1zdC5uYW1lX25leHQ7YnJlYWt9UnQ9UnQubmFtZV9uZXh0fX0sbG9va3VwTm9kZTooc3QsZ3QpPT57dmFyIFJ0'@; put 'PUF0Lm1heUxvb2t1cChzdCk7aWYoUnQpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoUnQsc3QpO2Zvcih2YXIgdG49QXQuaGFzaE5hbWUoc3QuaWQsZ3QpLHduPUF0Lm5hbWVUYWJsZVt0bl07d247d249d24ubmFtZV9uZXh0KWlmKHduLnBhcmVudC5pZD09PXN0LmlkJiZ3bi5uYW1lPT09Z3Qp'@; put 'cmV0dXJuIHduO3JldHVybiBBdC5sb29rdXAoc3QsZ3QpfSxjcmVhdGVOb2RlOihzdCxndCxSdCx0bik9Pnt2YXIgd249bmV3IEF0LkZTTm9kZShzdCxndCxSdCx0bik7cmV0dXJuIEF0Lmhhc2hBZGROb2RlKHduKSx3bn0sZGVzdHJveU5vZGU6c3Q9PntBdC5oYXNoUmVtb3ZlTm9kZShzdCl9'@; put 'LGlzUm9vdDpzdD0+c3Q9PT1zdC5wYXJlbnQsaXNNb3VudHBvaW50OnN0PT4hIXN0Lm1vdW50ZWQsaXNGaWxlOnN0PT4zMjc2OD09KDYxNDQwJnN0KSxpc0RpcjpzdD0+MTYzODQ9PSg2MTQ0MCZzdCksaXNMaW5rOnN0PT40MDk2MD09KDYxNDQwJnN0KSxpc0NocmRldjpzdD0+ODE5Mj09KDYx'@; put 'NDQwJnN0KSxpc0Jsa2RldjpzdD0+MjQ1NzY9PSg2MTQ0MCZzdCksaXNGSUZPOnN0PT40MDk2PT0oNjE0NDAmc3QpLGlzU29ja2V0OnN0PT40OTE1Mj09KDQ5MTUyJnN0KSxmbGFnTW9kZXM6e3I6MCwicisiOjIsdzo1NzcsIncrIjo1NzgsYToxMDg5LCJhKyI6MTA5MH0sbW9kZVN0cmluZ1Rv'@; put 'RmxhZ3M6c3Q9Pnt2YXIgZ3Q9QXQuZmxhZ01vZGVzW3N0XTtpZih2b2lkIDA9PT1ndCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZmlsZSBvcGVuIG1vZGU6ICIrc3QpO3JldHVybiBndH0sZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmc6c3Q9Pnt2YXIgZ3Q9WyJyIiwidyIsInJ3Il1bMyZzdF07'@; put 'cmV0dXJuIDUxMiZzdCYmKGd0Kz0idyIpLGd0fSxub2RlUGVybWlzc2lvbnM6KHN0LGd0KT0+QXQuaWdub3JlUGVybWlzc2lvbnN8fCghZ3QuaW5jbHVkZXMoInIiKXx8MjkyJnN0Lm1vZGUpJiYoIWd0LmluY2x1ZGVzKCJ3Iil8fDE0NiZzdC5tb2RlKSYmKCFndC5pbmNsdWRlcygieCIpfHw3'@; put 'MyZzdC5tb2RlKT8wOjIsbWF5TG9va3VwOnN0PT5BdC5ub2RlUGVybWlzc2lvbnMoc3QsIngiKXx8KHN0Lm5vZGVfb3BzLmxvb2t1cD8wOjIpLG1heUNyZWF0ZTooc3QsZ3QpPT57dHJ5e3JldHVybiBBdC5sb29rdXBOb2RlKHN0LGd0KSwyMH1jYXRjaHt9cmV0dXJuIEF0Lm5vZGVQZXJtaXNz'@; put 'aW9ucyhzdCwid3giKX0sbWF5RGVsZXRlOihzdCxndCxSdCk9Pnt2YXIgdG47dHJ5e3RuPUF0Lmxvb2t1cE5vZGUoc3QsZ3QpfWNhdGNoKHNyKXtyZXR1cm4gc3IuZXJybm99dmFyIHduPUF0Lm5vZGVQZXJtaXNzaW9ucyhzdCwid3giKTtpZih3bilyZXR1cm4gd247aWYoUnQpe2lmKCFBdC5p'@; put 'c0Rpcih0bi5tb2RlKSlyZXR1cm4gNTQ7aWYoQXQuaXNSb290KHRuKXx8QXQuZ2V0UGF0aCh0bik9PT1BdC5jd2QoKSlyZXR1cm4gMTB9ZWxzZSBpZihBdC5pc0Rpcih0bi5tb2RlKSlyZXR1cm4gMzE7cmV0dXJuIDB9LG1heU9wZW46KHN0LGd0KT0+c3Q/QXQuaXNMaW5rKHN0Lm1vZGUpPzMy'@; put 'OkF0LmlzRGlyKHN0Lm1vZGUpJiYoInIiIT09QXQuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZ3QpfHw1MTImZ3QpPzMxOkF0Lm5vZGVQZXJtaXNzaW9ucyhzdCxBdC5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhndCkpOjQ0LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDooc3Q9MCxndD1BdC5N'@; put 'QVhfT1BFTl9GRFMpPT57Zm9yKHZhciBSdD1zdDtSdDw9Z3Q7UnQrKylpZighQXQuc3RyZWFtc1tSdF0pcmV0dXJuIFJ0O3Rocm93IG5ldyBBdC5FcnJub0Vycm9yKDMzKX0sZ2V0U3RyZWFtOnN0PT5BdC5zdHJlYW1zW3N0XSxjcmVhdGVTdHJlYW06KHN0LGd0LFJ0KT0+e0F0LkZTU3RyZWFt'@; put 'fHwoQXQuRlNTdHJlYW09ZnVuY3Rpb24oKXt0aGlzLnNoYXJlZD17fX0sQXQuRlNTdHJlYW0ucHJvdG90eXBlPXt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEF0LkZTU3RyZWFtLnByb3RvdHlwZSx7b2JqZWN0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlfSxzZXQ6ZnVuY3Rp'@; put 'b24od24pe3RoaXMubm9kZT13bn19LGlzUmVhZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDEhPSgyMDk3MTU1JnRoaXMuZmxhZ3MpfX0saXNXcml0ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDAhPSgyMDk3MTU1JnRoaXMuZmxhZ3MpfX0saXNBcHBlbmQ6e2dldDpmdW5jdGlvbigpe3JldHVy'@; put 'biAxMDI0JnRoaXMuZmxhZ3N9fSxmbGFnczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhcmVkLmZsYWdzfSxzZXQ6ZnVuY3Rpb24od24pe3RoaXMuc2hhcmVkLmZsYWdzPXdufX0scG9zaXRpb246e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXJlZC5wb3NpdGlvbn0sc2V0'@; put 'OmZ1bmN0aW9uKHduKXt0aGlzLnNoYXJlZC5wb3NpdGlvbj13bn19fSkpLHN0PU9iamVjdC5hc3NpZ24obmV3IEF0LkZTU3RyZWFtLHN0KTt2YXIgdG49QXQubmV4dGZkKGd0LFJ0KTtyZXR1cm4gc3QuZmQ9dG4sQXQuc3RyZWFtc1t0bl09c3Qsc3R9LGNsb3NlU3RyZWFtOnN0PT57QXQuc3Ry'@; put 'ZWFtc1tzdF09bnVsbH0sY2hyZGV2X3N0cmVhbV9vcHM6e29wZW46c3Q9Pnt2YXIgZ3Q9QXQuZ2V0RGV2aWNlKHN0Lm5vZGUucmRldik7c3Quc3RyZWFtX29wcz1ndC5zdHJlYW1fb3BzLHN0LnN0cmVhbV9vcHMub3BlbiYmc3Quc3RyZWFtX29wcy5vcGVuKHN0KX0sbGxzZWVrOigpPT57dGhy'@; put 'b3cgbmV3IEF0LkVycm5vRXJyb3IoNzApfX0sbWFqb3I6c3Q9PnN0Pj44LG1pbm9yOnN0PT4yNTUmc3QsbWFrZWRldjooc3QsZ3QpPT5zdDw8OHxndCxyZWdpc3RlckRldmljZTooc3QsZ3QpPT57QXQuZGV2aWNlc1tzdF09e3N0cmVhbV9vcHM6Z3R9fSxnZXREZXZpY2U6c3Q9PkF0LmRldmlj'@; put 'ZXNbc3RdLGdldE1vdW50czpzdD0+e2Zvcih2YXIgZ3Q9W10sUnQ9W3N0XTtSdC5sZW5ndGg7KXt2YXIgdG49UnQucG9wKCk7Z3QucHVzaCh0biksUnQucHVzaC5hcHBseShSdCx0bi5tb3VudHMpfXJldHVybiBndH0sc3luY2ZzOihzdCxndCk9PnsiZnVuY3Rpb24iPT10eXBlb2Ygc3QmJihn'@; put 'dD1zdCxzdD0hMSksQXQuc3luY0ZTUmVxdWVzdHMrKyxBdC5zeW5jRlNSZXF1ZXN0cz4xJiZpZSgid2FybmluZzogIitBdC5zeW5jRlNSZXF1ZXN0cysiIEZTLnN5bmNmcyBvcGVyYXRpb25zIGluIGZsaWdodCBhdCBvbmNlLCBwcm9iYWJseSBqdXN0IGRvaW5nIGV4dHJhIHdvcmsiKTt2YXIg'@; put 'UnQ9QXQuZ2V0TW91bnRzKEF0LnJvb3QubW91bnQpLHRuPTA7ZnVuY3Rpb24gd24obHIpe3JldHVybiBBdC5zeW5jRlNSZXF1ZXN0cy0tLGd0KGxyKX1mdW5jdGlvbiBzcihscil7aWYobHIpcmV0dXJuIHNyLmVycm9yZWQ/dm9pZCAwOihzci5lcnJvcmVkPSEwLHduKGxyKSk7Kyt0bj49UnQu'@; put 'bGVuZ3RoJiZ3bihudWxsKX1SdC5mb3JFYWNoKGxyPT57aWYoIWxyLnR5cGUuc3luY2ZzKXJldHVybiBzcihudWxsKTtsci50eXBlLnN5bmNmcyhscixzdCxzcil9KX0sbW91bnQ6KHN0LGd0LFJ0KT0+e3ZhciB0bix3bj0iLyI9PT1SdCxzcj0hUnQ7aWYod24mJkF0LnJvb3QpdGhyb3cgbmV3'@; put 'IEF0LkVycm5vRXJyb3IoMTApO2lmKCF3biYmIXNyKXt2YXIgbHI9QXQubG9va3VwUGF0aChSdCx7Zm9sbG93X21vdW50OiExfSk7aWYoUnQ9bHIucGF0aCxBdC5pc01vdW50cG9pbnQodG49bHIubm9kZSkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMTApO2lmKCFBdC5pc0Rpcih0bi5tb2Rl'@; put 'KSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig1NCl9dmFyIFJyPXt0eXBlOnN0LG9wdHM6Z3QsbW91bnRwb2ludDpSdCxtb3VudHM6W119LGdvPXN0Lm1vdW50KFJyKTtyZXR1cm4gZ28ubW91bnQ9UnIsUnIucm9vdD1nbyx3bj9BdC5yb290PWdvOnRuJiYodG4ubW91bnRlZD1Scix0bi5tb3Vu'@; put 'dCYmdG4ubW91bnQubW91bnRzLnB1c2goUnIpKSxnb30sdW5tb3VudDpzdD0+e3ZhciBndD1BdC5sb29rdXBQYXRoKHN0LHtmb2xsb3dfbW91bnQ6ITF9KTtpZighQXQuaXNNb3VudHBvaW50KGd0Lm5vZGUpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDI4KTt2YXIgUnQ9Z3Qubm9kZSx0bj1S'@; put 'dC5tb3VudGVkLHduPUF0LmdldE1vdW50cyh0bik7T2JqZWN0LmtleXMoQXQubmFtZVRhYmxlKS5mb3JFYWNoKGxyPT57Zm9yKHZhciBScj1BdC5uYW1lVGFibGVbbHJdO1JyOyl7dmFyIGdvPVJyLm5hbWVfbmV4dDt3bi5pbmNsdWRlcyhSci5tb3VudCkmJkF0LmRlc3Ryb3lOb2RlKFJyKSxS'@; put 'cj1nb319KSxSdC5tb3VudGVkPW51bGw7dmFyIHNyPVJ0Lm1vdW50Lm1vdW50cy5pbmRleE9mKHRuKTtSdC5tb3VudC5tb3VudHMuc3BsaWNlKHNyLDEpfSxsb29rdXA6KHN0LGd0KT0+c3Qubm9kZV9vcHMubG9va3VwKHN0LGd0KSxta25vZDooc3QsZ3QsUnQpPT57dmFyIHRuPUF0Lmxvb2t1'@; put 'cFBhdGgoc3Qse3BhcmVudDohMH0pLm5vZGUsd249UmkuYmFzZW5hbWUoc3QpO2lmKCF3bnx8Ii4iPT09d258fCIuLiI9PT13bil0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigyOCk7dmFyIHNyPUF0Lm1heUNyZWF0ZSh0bix3bik7aWYoc3IpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3Ioc3IpO2lm'@; put 'KCF0bi5ub2RlX29wcy5ta25vZCl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig2Myk7cmV0dXJuIHRuLm5vZGVfb3BzLm1rbm9kKHRuLHduLGd0LFJ0KX0sY3JlYXRlOihzdCxndCk9PihndD12b2lkIDAhPT1ndD9ndDo0MzgsZ3QmPTQwOTUsQXQubWtub2Qoc3QsZ3R8PTMyNzY4LDApKSxta2Rp'@; put 'cjooc3QsZ3QpPT4oZ3Q9dm9pZCAwIT09Z3Q/Z3Q6NTExLGd0Jj0xMDIzLEF0Lm1rbm9kKHN0LGd0fD0xNjM4NCwwKSksbWtkaXJUcmVlOihzdCxndCk9Pntmb3IodmFyIFJ0PXN0LnNwbGl0KCIvIiksdG49IiIsd249MDt3bjxSdC5sZW5ndGg7Kyt3bilpZihSdFt3bl0pe3RuKz0iLyIrUnRb'@; put 'd25dO3RyeXtBdC5ta2Rpcih0bixndCl9Y2F0Y2goc3Ipe2lmKDIwIT1zci5lcnJubyl0aHJvdyBzcn19fSxta2Rldjooc3QsZ3QsUnQpPT4odm9pZCAwPT09UnQmJihSdD1ndCxndD00MzgpLEF0Lm1rbm9kKHN0LGd0fD04MTkyLFJ0KSksc3ltbGluazooc3QsZ3QpPT57aWYoIVhvLnJlc29s'@; put 'dmUoc3QpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDQ0KTt2YXIgUnQ9QXQubG9va3VwUGF0aChndCx7cGFyZW50OiEwfSkubm9kZTtpZighUnQpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNDQpO3ZhciB0bj1SaS5iYXNlbmFtZShndCksd249QXQubWF5Q3JlYXRlKFJ0LHRuKTtpZih3bil0'@; put 'aHJvdyBuZXcgQXQuRXJybm9FcnJvcih3bik7aWYoIVJ0Lm5vZGVfb3BzLnN5bWxpbmspdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNjMpO3JldHVybiBSdC5ub2RlX29wcy5zeW1saW5rKFJ0LHRuLHN0KX0scmVuYW1lOihzdCxndCk9Pnt2YXIgUnQsdG4sd249UmkuZGlybmFtZShzdCksc3I9'@; put 'UmkuZGlybmFtZShndCksbHI9UmkuYmFzZW5hbWUoc3QpLFJyPVJpLmJhc2VuYW1lKGd0KTtpZihSdD1BdC5sb29rdXBQYXRoKHN0LHtwYXJlbnQ6ITB9KS5ub2RlLHRuPUF0Lmxvb2t1cFBhdGgoZ3Qse3BhcmVudDohMH0pLm5vZGUsIVJ0fHwhdG4pdGhyb3cgbmV3IEF0LkVycm5vRXJyb3Io'@; put 'NDQpO2lmKFJ0Lm1vdW50IT09dG4ubW91bnQpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNzUpO3ZhciBnbyxNbz1BdC5sb29rdXBOb2RlKFJ0LGxyKSxmbz1Yby5yZWxhdGl2ZShzdCxzcik7aWYoIi4iIT09Zm8uY2hhckF0KDApKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDI4KTtpZigiLiIh'@; put 'PT0oZm89WG8ucmVsYXRpdmUoZ3Qsd24pKS5jaGFyQXQoMCkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNTUpO3RyeXtnbz1BdC5sb29rdXBOb2RlKHRuLFJyKX1jYXRjaHt9aWYoTW8hPT1nbyl7dmFyIEpvPUF0LmlzRGlyKE1vLm1vZGUpLFlpPUF0Lm1heURlbGV0ZShSdCxscixKbyk7aWYo'@; put 'WWkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoWWkpO2lmKFlpPWdvP0F0Lm1heURlbGV0ZSh0bixScixKbyk6QXQubWF5Q3JlYXRlKHRuLFJyKSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcihZaSk7aWYoIVJ0Lm5vZGVfb3BzLnJlbmFtZSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig2Myk7aWYo'@; put 'QXQuaXNNb3VudHBvaW50KE1vKXx8Z28mJkF0LmlzTW91bnRwb2ludChnbykpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMTApO2lmKHRuIT09UnQmJihZaT1BdC5ub2RlUGVybWlzc2lvbnMoUnQsInciKSkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoWWkpO0F0Lmhhc2hSZW1vdmVOb2RlKE1v'@; put 'KTt0cnl7UnQubm9kZV9vcHMucmVuYW1lKE1vLHRuLFJyKX1jYXRjaChZcyl7dGhyb3cgWXN9ZmluYWxseXtBdC5oYXNoQWRkTm9kZShNbyl9fX0scm1kaXI6c3Q9Pnt2YXIgZ3Q9QXQubG9va3VwUGF0aChzdCx7cGFyZW50OiEwfSkubm9kZSxSdD1SaS5iYXNlbmFtZShzdCksdG49QXQubG9v'@; put 'a3VwTm9kZShndCxSdCksd249QXQubWF5RGVsZXRlKGd0LFJ0LCEwKTtpZih3bil0aHJvdyBuZXcgQXQuRXJybm9FcnJvcih3bik7aWYoIWd0Lm5vZGVfb3BzLnJtZGlyKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDYzKTtpZihBdC5pc01vdW50cG9pbnQodG4pKXRocm93IG5ldyBBdC5FcnJu'@; put 'b0Vycm9yKDEwKTtndC5ub2RlX29wcy5ybWRpcihndCxSdCksQXQuZGVzdHJveU5vZGUodG4pfSxyZWFkZGlyOnN0PT57dmFyIGd0PUF0Lmxvb2t1cFBhdGgoc3Qse2ZvbGxvdzohMH0pLm5vZGU7aWYoIWd0Lm5vZGVfb3BzLnJlYWRkaXIpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNTQpO3Jl'@; put 'dHVybiBndC5ub2RlX29wcy5yZWFkZGlyKGd0KX0sdW5saW5rOnN0PT57dmFyIGd0PUF0Lmxvb2t1cFBhdGgoc3Qse3BhcmVudDohMH0pLm5vZGU7aWYoIWd0KXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDQ0KTt2YXIgUnQ9UmkuYmFzZW5hbWUoc3QpLHRuPUF0Lmxvb2t1cE5vZGUoZ3QsUnQp'@; put 'LHduPUF0Lm1heURlbGV0ZShndCxSdCwhMSk7aWYod24pdGhyb3cgbmV3IEF0LkVycm5vRXJyb3Iod24pO2lmKCFndC5ub2RlX29wcy51bmxpbmspdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNjMpO2lmKEF0LmlzTW91bnRwb2ludCh0bikpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMTApO2d0'@; put 'Lm5vZGVfb3BzLnVubGluayhndCxSdCksQXQuZGVzdHJveU5vZGUodG4pfSxyZWFkbGluazpzdD0+e3ZhciBndD1BdC5sb29rdXBQYXRoKHN0KS5ub2RlO2lmKCFndCl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig0NCk7aWYoIWd0Lm5vZGVfb3BzLnJlYWRsaW5rKXRocm93IG5ldyBBdC5FcnJu'@; put 'b0Vycm9yKDI4KTtyZXR1cm4gWG8ucmVzb2x2ZShBdC5nZXRQYXRoKGd0LnBhcmVudCksZ3Qubm9kZV9vcHMucmVhZGxpbmsoZ3QpKX0sc3RhdDooc3QsZ3QpPT57dmFyIFJ0PUF0Lmxvb2t1cFBhdGgoc3Qse2ZvbGxvdzohZ3R9KS5ub2RlO2lmKCFSdCl0aHJvdyBuZXcgQXQuRXJybm9FcnJv'@; put 'cig0NCk7aWYoIVJ0Lm5vZGVfb3BzLmdldGF0dHIpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNjMpO3JldHVybiBSdC5ub2RlX29wcy5nZXRhdHRyKFJ0KX0sbHN0YXQ6c3Q9PkF0LnN0YXQoc3QsITApLGNobW9kOihzdCxndCxSdCk9Pnt2YXIgdG47aWYoISh0bj0ic3RyaW5nIj09dHlwZW9m'@; put 'IHN0P0F0Lmxvb2t1cFBhdGgoc3Qse2ZvbGxvdzohUnR9KS5ub2RlOnN0KS5ub2RlX29wcy5zZXRhdHRyKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDYzKTt0bi5ub2RlX29wcy5zZXRhdHRyKHRuLHttb2RlOjQwOTUmZ3R8LTQwOTYmdG4ubW9kZSx0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSxs'@; put 'Y2htb2Q6KHN0LGd0KT0+e0F0LmNobW9kKHN0LGd0LCEwKX0sZmNobW9kOihzdCxndCk9Pnt2YXIgUnQ9QXQuZ2V0U3RyZWFtKHN0KTtpZighUnQpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoOCk7QXQuY2htb2QoUnQubm9kZSxndCl9LGNob3duOihzdCxndCxSdCx0bik9Pnt2YXIgd247aWYo'@; put 'ISh3bj0ic3RyaW5nIj09dHlwZW9mIHN0P0F0Lmxvb2t1cFBhdGgoc3Qse2ZvbGxvdzohdG59KS5ub2RlOnN0KS5ub2RlX29wcy5zZXRhdHRyKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDYzKTt3bi5ub2RlX29wcy5zZXRhdHRyKHduLHt0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSxsY2hvd246'@; put 'KHN0LGd0LFJ0KT0+e0F0LmNob3duKHN0LGd0LFJ0LCEwKX0sZmNob3duOihzdCxndCxSdCk9Pnt2YXIgdG49QXQuZ2V0U3RyZWFtKHN0KTtpZighdG4pdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoOCk7QXQuY2hvd24odG4ubm9kZSxndCxSdCl9LHRydW5jYXRlOihzdCxndCk9PntpZihndDww'@; put 'KXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDI4KTt2YXIgUnQ7aWYoIShSdD0ic3RyaW5nIj09dHlwZW9mIHN0P0F0Lmxvb2t1cFBhdGgoc3Qse2ZvbGxvdzohMH0pLm5vZGU6c3QpLm5vZGVfb3BzLnNldGF0dHIpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNjMpO2lmKEF0LmlzRGlyKFJ0Lm1v'@; put 'ZGUpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDMxKTtpZighQXQuaXNGaWxlKFJ0Lm1vZGUpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDI4KTt2YXIgdG49QXQubm9kZVBlcm1pc3Npb25zKFJ0LCJ3Iik7aWYodG4pdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IodG4pO1J0Lm5vZGVfb3BzLnNl'@; put 'dGF0dHIoUnQse3NpemU6Z3QsdGltZXN0YW1wOkRhdGUubm93KCl9KX0sZnRydW5jYXRlOihzdCxndCk9Pnt2YXIgUnQ9QXQuZ2V0U3RyZWFtKHN0KTtpZighUnQpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoOCk7aWYoISgyMDk3MTU1JlJ0LmZsYWdzKSl0aHJvdyBuZXcgQXQuRXJybm9FcnJv'@; put 'cigyOCk7QXQudHJ1bmNhdGUoUnQubm9kZSxndCl9LHV0aW1lOihzdCxndCxSdCk9Pnt2YXIgdG49QXQubG9va3VwUGF0aChzdCx7Zm9sbG93OiEwfSkubm9kZTt0bi5ub2RlX29wcy5zZXRhdHRyKHRuLHt0aW1lc3RhbXA6TWF0aC5tYXgoZ3QsUnQpfSl9LG9wZW46KHN0LGd0LFJ0KT0+e2lm'@; put 'KCIiPT09c3QpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNDQpO3ZhciB0bjtpZihSdD12b2lkIDA9PT1SdD80Mzg6UnQsUnQ9NjQmKGd0PSJzdHJpbmciPT10eXBlb2YgZ3Q/QXQubW9kZVN0cmluZ1RvRmxhZ3MoZ3QpOmd0KT80MDk1JlJ0fDMyNzY4OjAsIm9iamVjdCI9PXR5cGVvZiBzdCl0'@; put 'bj1zdDtlbHNle3N0PVJpLm5vcm1hbGl6ZShzdCk7dHJ5e3RuPUF0Lmxvb2t1cFBhdGgoc3Qse2ZvbGxvdzohKDEzMTA3MiZndCl9KS5ub2RlfWNhdGNoe319dmFyIHduPSExO2lmKDY0Jmd0KWlmKHRuKXtpZigxMjgmZ3QpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMjApfWVsc2UgdG49QXQu'@; put 'bWtub2Qoc3QsUnQsMCksd249ITA7aWYoIXRuKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDQ0KTtpZihBdC5pc0NocmRldih0bi5tb2RlKSYmKGd0Jj0tNTEzKSw2NTUzNiZndCYmIUF0LmlzRGlyKHRuLm1vZGUpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDU0KTtpZighd24pe3ZhciBzcj1B'@; put 'dC5tYXlPcGVuKHRuLGd0KTtpZihzcil0aHJvdyBuZXcgQXQuRXJybm9FcnJvcihzcil9NTEyJmd0JiYhd24mJkF0LnRydW5jYXRlKHRuLDApLGd0Jj0tMTMxNzEzO3ZhciBscj1BdC5jcmVhdGVTdHJlYW0oe25vZGU6dG4scGF0aDpBdC5nZXRQYXRoKHRuKSxmbGFnczpndCxzZWVrYWJsZToh'@; put 'MCxwb3NpdGlvbjowLHN0cmVhbV9vcHM6dG4uc3RyZWFtX29wcyx1bmdvdHRlbjpbXSxlcnJvcjohMX0pO3JldHVybiBsci5zdHJlYW1fb3BzLm9wZW4mJmxyLnN0cmVhbV9vcHMub3BlbihsciksIWQubG9nUmVhZEZpbGVzfHwxJmd0fHwoQXQucmVhZEZpbGVzfHwoQXQucmVhZEZpbGVzPXt9'@; put 'KSxzdCBpbiBBdC5yZWFkRmlsZXN8fChBdC5yZWFkRmlsZXNbc3RdPTEpKSxscn0sY2xvc2U6c3Q9PntpZihBdC5pc0Nsb3NlZChzdCkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoOCk7c3QuZ2V0ZGVudHMmJihzdC5nZXRkZW50cz1udWxsKTt0cnl7c3Quc3RyZWFtX29wcy5jbG9zZSYmc3Qu'@; put 'c3RyZWFtX29wcy5jbG9zZShzdCl9Y2F0Y2goZ3Qpe3Rocm93IGd0fWZpbmFsbHl7QXQuY2xvc2VTdHJlYW0oc3QuZmQpfXN0LmZkPW51bGx9LGlzQ2xvc2VkOnN0PT5udWxsPT09c3QuZmQsbGxzZWVrOihzdCxndCxSdCk9PntpZihBdC5pc0Nsb3NlZChzdCkpdGhyb3cgbmV3IEF0LkVycm5v'@; put 'RXJyb3IoOCk7aWYoIXN0LnNlZWthYmxlfHwhc3Quc3RyZWFtX29wcy5sbHNlZWspdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNzApO2lmKDAhPVJ0JiYxIT1SdCYmMiE9UnQpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMjgpO3JldHVybiBzdC5wb3NpdGlvbj1zdC5zdHJlYW1fb3BzLmxsc2Vl'@; put 'ayhzdCxndCxSdCksc3QudW5nb3R0ZW49W10sc3QucG9zaXRpb259LHJlYWQ6KHN0LGd0LFJ0LHRuLHduKT0+e2lmKHRuPDB8fHduPDApdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMjgpO2lmKEF0LmlzQ2xvc2VkKHN0KSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig4KTtpZigxPT0oMjA5NzE1'@; put 'NSZzdC5mbGFncykpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoOCk7aWYoQXQuaXNEaXIoc3Qubm9kZS5tb2RlKSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigzMSk7aWYoIXN0LnN0cmVhbV9vcHMucmVhZCl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigyOCk7dmFyIHNyPXZvaWQgMCE9PXduO2lm'@; put 'KHNyKXtpZighc3Quc2Vla2FibGUpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNzApfWVsc2Ugd249c3QucG9zaXRpb247dmFyIGxyPXN0LnN0cmVhbV9vcHMucmVhZChzdCxndCxSdCx0bix3bik7cmV0dXJuIHNyfHwoc3QucG9zaXRpb24rPWxyKSxscn0sd3JpdGU6KHN0LGd0LFJ0LHRuLHdu'@; put 'LHNyKT0+e2lmKHRuPDB8fHduPDApdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMjgpO2lmKEF0LmlzQ2xvc2VkKHN0KSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig4KTtpZighKDIwOTcxNTUmc3QuZmxhZ3MpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDgpO2lmKEF0LmlzRGlyKHN0Lm5vZGUu'@; put 'bW9kZSkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMzEpO2lmKCFzdC5zdHJlYW1fb3BzLndyaXRlKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDI4KTtzdC5zZWVrYWJsZSYmMTAyNCZzdC5mbGFncyYmQXQubGxzZWVrKHN0LDAsMik7dmFyIGxyPXZvaWQgMCE9PXduO2lmKGxyKXtpZighc3Qu'@; put 'c2Vla2FibGUpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNzApfWVsc2Ugd249c3QucG9zaXRpb247dmFyIFJyPXN0LnN0cmVhbV9vcHMud3JpdGUoc3QsZ3QsUnQsdG4sd24sc3IpO3JldHVybiBscnx8KHN0LnBvc2l0aW9uKz1SciksUnJ9LGFsbG9jYXRlOihzdCxndCxSdCk9PntpZihBdC5p'@; put 'c0Nsb3NlZChzdCkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoOCk7aWYoZ3Q8MHx8UnQ8PTApdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMjgpO2lmKCEoMjA5NzE1NSZzdC5mbGFncykpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoOCk7aWYoIUF0LmlzRmlsZShzdC5ub2RlLm1vZGUpJiYhQXQu'@; put 'aXNEaXIoc3Qubm9kZS5tb2RlKSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig0Myk7aWYoIXN0LnN0cmVhbV9vcHMuYWxsb2NhdGUpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoMTM4KTtzdC5zdHJlYW1fb3BzLmFsbG9jYXRlKHN0LGd0LFJ0KX0sbW1hcDooc3QsZ3QsUnQsdG4sd24pPT57aWYo'@; put 'MiZ0biYmISgyJnduKSYmMiE9KDIwOTcxNTUmc3QuZmxhZ3MpKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDIpO2lmKDE9PSgyMDk3MTU1JnN0LmZsYWdzKSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigyKTtpZighc3Quc3RyZWFtX29wcy5tbWFwKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDQz'@; put 'KTtyZXR1cm4gc3Quc3RyZWFtX29wcy5tbWFwKHN0LGd0LFJ0LHRuLHduKX0sbXN5bmM6KHN0LGd0LFJ0LHRuLHduKT0+c3Quc3RyZWFtX29wcy5tc3luYz9zdC5zdHJlYW1fb3BzLm1zeW5jKHN0LGd0LFJ0LHRuLHduKTowLG11bm1hcDpzdD0+MCxpb2N0bDooc3QsZ3QsUnQpPT57aWYoIXN0'@; put 'LnN0cmVhbV9vcHMuaW9jdGwpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNTkpO3JldHVybiBzdC5zdHJlYW1fb3BzLmlvY3RsKHN0LGd0LFJ0KX0scmVhZEZpbGU6KHN0LGd0PXt9KT0+e2lmKGd0LmZsYWdzPWd0LmZsYWdzfHwwLGd0LmVuY29kaW5nPWd0LmVuY29kaW5nfHwiYmluYXJ5Iiwi'@; put 'dXRmOCIhPT1ndC5lbmNvZGluZyYmImJpbmFyeSIhPT1ndC5lbmNvZGluZyl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZW5jb2RpbmcgdHlwZSAiJytndC5lbmNvZGluZysnIicpO3ZhciBSdCx0bj1BdC5vcGVuKHN0LGd0LmZsYWdzKSx3bj1BdC5zdGF0KHN0KS5zaXplLHNyPW5ldyBVaW50'@; put 'OEFycmF5KHduKTtyZXR1cm4gQXQucmVhZCh0bixzciwwLHduLDApLCJ1dGY4Ij09PWd0LmVuY29kaW5nP1J0PU5uKHNyLDApOiJiaW5hcnkiPT09Z3QuZW5jb2RpbmcmJihSdD1zciksQXQuY2xvc2UodG4pLFJ0fSx3cml0ZUZpbGU6KHN0LGd0LFJ0PXt9KT0+e1J0LmZsYWdzPVJ0LmZsYWdz'@; put 'fHw1Nzc7dmFyIHRuPUF0Lm9wZW4oc3QsUnQuZmxhZ3MsUnQubW9kZSk7aWYoInN0cmluZyI9PXR5cGVvZiBndCl7dmFyIHduPW5ldyBVaW50OEFycmF5KEVpKGd0KSsxKSxzcj1JcihndCx3biwwLHduLmxlbmd0aCk7QXQud3JpdGUodG4sd24sMCxzcix2b2lkIDAsUnQuY2FuT3duKX1lbHNl'@; put 'e2lmKCFBcnJheUJ1ZmZlci5pc1ZpZXcoZ3QpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgZGF0YSB0eXBlIik7QXQud3JpdGUodG4sZ3QsMCxndC5ieXRlTGVuZ3RoLHZvaWQgMCxSdC5jYW5Pd24pfUF0LmNsb3NlKHRuKX0sY3dkOigpPT5BdC5jdXJyZW50UGF0aCxjaGRpcjpzdD0+'@; put 'e3ZhciBndD1BdC5sb29rdXBQYXRoKHN0LHtmb2xsb3c6ITB9KTtpZihudWxsPT09Z3Qubm9kZSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig0NCk7aWYoIUF0LmlzRGlyKGd0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNTQpO3ZhciBSdD1BdC5ub2RlUGVybWlzc2lvbnMo'@; put 'Z3Qubm9kZSwieCIpO2lmKFJ0KXRocm93IG5ldyBBdC5FcnJub0Vycm9yKFJ0KTtBdC5jdXJyZW50UGF0aD1ndC5wYXRofSxjcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXM6KCk9PntBdC5ta2RpcigiL3RtcCIpLEF0Lm1rZGlyKCIvaG9tZSIpLEF0Lm1rZGlyKCIvaG9tZS93ZWJfdXNlciIpfSxj'@; put 'cmVhdGVEZWZhdWx0RGV2aWNlczooKT0+e0F0Lm1rZGlyKCIvZGV2IiksQXQucmVnaXN0ZXJEZXZpY2UoQXQubWFrZWRldigxLDMpLHtyZWFkOigpPT4wLHdyaXRlOihndCxSdCx0bix3bixzcik9PndufSksQXQubWtkZXYoIi9kZXYvbnVsbCIsQXQubWFrZWRldigxLDMpKSxKcy5yZWdpc3Rl'@; put 'cihBdC5tYWtlZGV2KDUsMCksSnMuZGVmYXVsdF90dHlfb3BzKSxKcy5yZWdpc3RlcihBdC5tYWtlZGV2KDYsMCksSnMuZGVmYXVsdF90dHkxX29wcyksQXQubWtkZXYoIi9kZXYvdHR5IixBdC5tYWtlZGV2KDUsMCkpLEF0Lm1rZGV2KCIvZGV2L3R0eTEiLEF0Lm1ha2VkZXYoNiwwKSk7dmFy'@; put 'IHN0PWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBjcnlwdG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXt2YXIgZ3Q9bmV3IFVpbnQ4QXJyYXkoMSk7cmV0dXJuKCk9PihjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGd0KSxndFswXSl9cmV0dXJuKCk9'@; put 'PkVuKCJyYW5kb21EZXZpY2UiKX0oKTtBdC5jcmVhdGVEZXZpY2UoIi9kZXYiLCJyYW5kb20iLHN0KSxBdC5jcmVhdGVEZXZpY2UoIi9kZXYiLCJ1cmFuZG9tIixzdCksQXQubWtkaXIoIi9kZXYvc2htIiksQXQubWtkaXIoIi9kZXYvc2htL3RtcCIpfSxjcmVhdGVTcGVjaWFsRGlyZWN0b3Jp'@; put 'ZXM6KCk9PntBdC5ta2RpcigiL3Byb2MiKTt2YXIgc3Q9QXQubWtkaXIoIi9wcm9jL3NlbGYiKTtBdC5ta2RpcigiL3Byb2Mvc2VsZi9mZCIpLEF0Lm1vdW50KHttb3VudDooKT0+e3ZhciBndD1BdC5jcmVhdGVOb2RlKHN0LCJmZCIsMTY4OTUsNzMpO3JldHVybiBndC5ub2RlX29wcz17bG9v'@; put 'a3VwOihSdCx0bik9Pnt2YXIgc3I9QXQuZ2V0U3RyZWFtKCt0bik7aWYoIXNyKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDgpO3ZhciBscj17cGFyZW50Om51bGwsbW91bnQ6e21vdW50cG9pbnQ6ImZha2UifSxub2RlX29wczp7cmVhZGxpbms6KCk9PnNyLnBhdGh9fTtyZXR1cm4gbHIucGFy'@; put 'ZW50PWxyLGxyfX0sZ3R9fSx7fSwiL3Byb2Mvc2VsZi9mZCIpfSxjcmVhdGVTdGFuZGFyZFN0cmVhbXM6KCk9PntkLnN0ZGluP0F0LmNyZWF0ZURldmljZSgiL2RldiIsInN0ZGluIixkLnN0ZGluKTpBdC5zeW1saW5rKCIvZGV2L3R0eSIsIi9kZXYvc3RkaW4iKSxkLnN0ZG91dD9BdC5jcmVh'@; put 'dGVEZXZpY2UoIi9kZXYiLCJzdGRvdXQiLG51bGwsZC5zdGRvdXQpOkF0LnN5bWxpbmsoIi9kZXYvdHR5IiwiL2Rldi9zdGRvdXQiKSxkLnN0ZGVycj9BdC5jcmVhdGVEZXZpY2UoIi9kZXYiLCJzdGRlcnIiLG51bGwsZC5zdGRlcnIpOkF0LnN5bWxpbmsoIi9kZXYvdHR5MSIsIi9kZXYvc3Rk'@; put 'ZXJyIiksQXQub3BlbigiL2Rldi9zdGRpbiIsMCksQXQub3BlbigiL2Rldi9zdGRvdXQiLDEpLEF0Lm9wZW4oIi9kZXYvc3RkZXJyIiwxKX0sZW5zdXJlRXJybm9FcnJvcjooKT0+e0F0LkVycm5vRXJyb3J8fChBdC5FcnJub0Vycm9yPWZ1bmN0aW9uKHN0LGd0KXt0aGlzLm5vZGU9Z3QsdGhp'@; put 'cy5zZXRFcnJubz1mdW5jdGlvbihSdCl7dGhpcy5lcnJubz1SdH0sdGhpcy5zZXRFcnJubyhzdCksdGhpcy5tZXNzYWdlPSJGUyBlcnJvciJ9LEF0LkVycm5vRXJyb3IucHJvdG90eXBlPW5ldyBFcnJvcixBdC5FcnJub0Vycm9yLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BdC5FcnJub0Vycm9y'@; put 'LFs0NF0uZm9yRWFjaChzdD0+e0F0LmdlbmVyaWNFcnJvcnNbc3RdPW5ldyBBdC5FcnJub0Vycm9yKHN0KSxBdC5nZW5lcmljRXJyb3JzW3N0XS5zdGFjaz0iPGdlbmVyaWMgZXJyb3IsIG5vIHN0YWNrPiJ9KSl9LHN0YXRpY0luaXQ6KCk9PntBdC5lbnN1cmVFcnJub0Vycm9yKCksQXQubmFt'@; put 'ZVRhYmxlPW5ldyBBcnJheSg0MDk2KSxBdC5tb3VudCh1byx7fSwiLyIpLEF0LmNyZWF0ZURlZmF1bHREaXJlY3RvcmllcygpLEF0LmNyZWF0ZURlZmF1bHREZXZpY2VzKCksQXQuY3JlYXRlU3BlY2lhbERpcmVjdG9yaWVzKCksQXQuZmlsZXN5c3RlbXM9e01FTUZTOnVvfX0saW5pdDooc3Qs'@; put 'Z3QsUnQpPT57QXQuaW5pdC5pbml0aWFsaXplZD0hMCxBdC5lbnN1cmVFcnJub0Vycm9yKCksZC5zdGRpbj1zdHx8ZC5zdGRpbixkLnN0ZG91dD1ndHx8ZC5zdGRvdXQsZC5zdGRlcnI9UnR8fGQuc3RkZXJyLEF0LmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpfSxxdWl0OigpPT57QXQuaW5pdC5p'@; put 'bml0aWFsaXplZD0hMTtmb3IodmFyIHN0PTA7c3Q8QXQuc3RyZWFtcy5sZW5ndGg7c3QrKyl7dmFyIGd0PUF0LnN0cmVhbXNbc3RdO2d0JiZBdC5jbG9zZShndCl9fSxnZXRNb2RlOihzdCxndCk9Pnt2YXIgUnQ9MDtyZXR1cm4gc3QmJihSdHw9MzY1KSxndCYmKFJ0fD0xNDYpLFJ0fSxmaW5k'@; put 'T2JqZWN0OihzdCxndCk9Pnt2YXIgUnQ9QXQuYW5hbHl6ZVBhdGgoc3QsZ3QpO3JldHVybiBSdC5leGlzdHM/UnQub2JqZWN0Om51bGx9LGFuYWx5emVQYXRoOihzdCxndCk9Pnt0cnl7c3Q9KHRuPUF0Lmxvb2t1cFBhdGgoc3Qse2ZvbGxvdzohZ3R9KSkucGF0aH1jYXRjaHt9dmFyIFJ0PXtp'@; put 'c1Jvb3Q6ITEsZXhpc3RzOiExLGVycm9yOjAsbmFtZTpudWxsLHBhdGg6bnVsbCxvYmplY3Q6bnVsbCxwYXJlbnRFeGlzdHM6ITEscGFyZW50UGF0aDpudWxsLHBhcmVudE9iamVjdDpudWxsfTt0cnl7dmFyIHRuPUF0Lmxvb2t1cFBhdGgoc3Qse3BhcmVudDohMH0pO1J0LnBhcmVudEV4aXN0'@; put 'cz0hMCxSdC5wYXJlbnRQYXRoPXRuLnBhdGgsUnQucGFyZW50T2JqZWN0PXRuLm5vZGUsUnQubmFtZT1SaS5iYXNlbmFtZShzdCksdG49QXQubG9va3VwUGF0aChzdCx7Zm9sbG93OiFndH0pLFJ0LmV4aXN0cz0hMCxSdC5wYXRoPXRuLnBhdGgsUnQub2JqZWN0PXRuLm5vZGUsUnQubmFtZT10'@; put 'bi5ub2RlLm5hbWUsUnQuaXNSb290PSIvIj09PXRuLnBhdGh9Y2F0Y2god24pe1J0LmVycm9yPXduLmVycm5vfXJldHVybiBSdH0sY3JlYXRlUGF0aDooc3QsZ3QsUnQsdG4pPT57c3Q9InN0cmluZyI9PXR5cGVvZiBzdD9zdDpBdC5nZXRQYXRoKHN0KTtmb3IodmFyIHduPWd0LnNwbGl0KCIv'@; put 'IikucmV2ZXJzZSgpO3duLmxlbmd0aDspe3ZhciBzcj13bi5wb3AoKTtpZihzcil7dmFyIGxyPVJpLmpvaW4yKHN0LHNyKTt0cnl7QXQubWtkaXIobHIpfWNhdGNoe31zdD1scn19cmV0dXJuIGxyfSxjcmVhdGVGaWxlOihzdCxndCxSdCx0bix3bik9Pnt2YXIgc3I9Umkuam9pbjIoInN0cmlu'@; put 'ZyI9PXR5cGVvZiBzdD9zdDpBdC5nZXRQYXRoKHN0KSxndCksbHI9QXQuZ2V0TW9kZSh0bix3bik7cmV0dXJuIEF0LmNyZWF0ZShzcixscil9LGNyZWF0ZURhdGFGaWxlOihzdCxndCxSdCx0bix3bixzcik9Pnt2YXIgbHI9Z3Q7c3QmJihzdD0ic3RyaW5nIj09dHlwZW9mIHN0P3N0OkF0Lmdl'@; put 'dFBhdGgoc3QpLGxyPWd0P1JpLmpvaW4yKHN0LGd0KTpzdCk7dmFyIFJyPUF0LmdldE1vZGUodG4sd24pLGdvPUF0LmNyZWF0ZShscixScik7aWYoUnQpe2lmKCJzdHJpbmciPT10eXBlb2YgUnQpe2Zvcih2YXIgTW89bmV3IEFycmF5KFJ0Lmxlbmd0aCksZm89MCxKbz1SdC5sZW5ndGg7Zm88'@; put 'Sm87KytmbylNb1tmb109UnQuY2hhckNvZGVBdChmbyk7UnQ9TW99QXQuY2htb2QoZ28sMTQ2fFJyKTt2YXIgWWk9QXQub3Blbihnbyw1NzcpO0F0LndyaXRlKFlpLFJ0LDAsUnQubGVuZ3RoLDAsc3IpLEF0LmNsb3NlKFlpKSxBdC5jaG1vZChnbyxScil9cmV0dXJuIGdvfSxjcmVhdGVEZXZp'@; put 'Y2U6KHN0LGd0LFJ0LHRuKT0+e3ZhciB3bj1SaS5qb2luMigic3RyaW5nIj09dHlwZW9mIHN0P3N0OkF0LmdldFBhdGgoc3QpLGd0KSxzcj1BdC5nZXRNb2RlKCEhUnQsISF0bik7QXQuY3JlYXRlRGV2aWNlLm1ham9yfHwoQXQuY3JlYXRlRGV2aWNlLm1ham9yPTY0KTt2YXIgbHI9QXQubWFr'@; put 'ZWRldihBdC5jcmVhdGVEZXZpY2UubWFqb3IrKywwKTtyZXR1cm4gQXQucmVnaXN0ZXJEZXZpY2UobHIse29wZW46UnI9PntSci5zZWVrYWJsZT0hMX0sY2xvc2U6UnI9Pnt0biYmdG4uYnVmZmVyJiZ0bi5idWZmZXIubGVuZ3RoJiZ0bigxMCl9LHJlYWQ6KFJyLGdvLE1vLGZvLEpvKT0+e2Zv'@; put 'cih2YXIgWWk9MCxZcz0wO1lzPGZvO1lzKyspe3ZhciBMbDt0cnl7TGw9UnQoKX1jYXRjaHt0aHJvdyBuZXcgQXQuRXJybm9FcnJvcigyOSl9aWYodm9pZCAwPT09TGwmJjA9PT1ZaSl0aHJvdyBuZXcgQXQuRXJybm9FcnJvcig2KTtpZihudWxsPT1MbClicmVhaztZaSsrLGdvW01vK1lzXT1M'@; put 'bH1yZXR1cm4gWWkmJihSci5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpKSxZaX0sd3JpdGU6KFJyLGdvLE1vLGZvLEpvKT0+e2Zvcih2YXIgWWk9MDtZaTxmbztZaSsrKXRyeXt0bihnb1tNbytZaV0pfWNhdGNoe3Rocm93IG5ldyBBdC5FcnJub0Vycm9yKDI5KX1yZXR1cm4gZm8mJihSci5u'@; put 'b2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpKSxZaX19KSxBdC5ta2Rldih3bixzcixscil9LGZvcmNlTG9hZEZpbGU6c3Q9PntpZihzdC5pc0RldmljZXx8c3QuaXNGb2xkZXJ8fHN0Lmxpbmt8fHN0LmNvbnRlbnRzKXJldHVybiEwO3Rocm93IHR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSI/bmV3'@; put 'IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQgKGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxv'@; put 'YWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTpuZXcgRXJyb3IoIkNhbm5vdCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0dHBSZXF1ZXN0LiIpfSxjcmVhdGVMYXp5RmlsZTooc3QsZ3QsUnQsdG4sd24pPT57ZnVuY3Rpb24gc3IoKXt0aGlzLmxlbmd0aEtub3duPSEx'@; put 'LHRoaXMuY2h1bmtzPVtdfWlmKHNyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZm8pe2lmKCEoZm8+dGhpcy5sZW5ndGgtMXx8Zm88MCkpe3ZhciBKbz1mbyV0aGlzLmNodW5rU2l6ZTtyZXR1cm4gdGhpcy5nZXR0ZXIoZm8vdGhpcy5jaHVua1NpemV8MClbSm9dfX0sc3IucHJvdG90eXBlLnNl'@; put 'dERhdGFHZXR0ZXI9ZnVuY3Rpb24oZm8pe3RoaXMuZ2V0dGVyPWZvfSxzci5wcm90b3R5cGUuY2FjaGVMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgZm89bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGZvLm9wZW4oIkhFQUQiLFJ0LCExKSxmby5zZW5kKG51bGwpLCEoZm8uc3RhdHVzPj0yMDAmJmZvLnN0'@; put 'YXR1czwzMDB8fDMwND09PWZvLnN0YXR1cykpdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIrUnQrIi4gU3RhdHVzOiAiK2ZvLnN0YXR1cyk7dmFyIEpvLFlpPU51bWJlcihmby5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1sZW5ndGgiKSksWXM9KEpvPWZvLmdldFJlc3BvbnNl'@; put 'SGVhZGVyKCJBY2NlcHQtUmFuZ2VzIikpJiYiYnl0ZXMiPT09Sm8sTGw9KEpvPWZvLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LUVuY29kaW5nIikpJiYiZ3ppcCI9PT1KbyxNbD0xMDQ4NTc2O1lzfHwoTWw9WWkpO3ZhciBRdT10aGlzO1F1LnNldERhdGFHZXR0ZXIoY2w9Pnt2YXIga2k9'@; put 'Y2wqTWwsam89KGNsKzEpKk1sLTE7aWYoam89TWF0aC5taW4oam8sWWktMSksdm9pZCAwPT09UXUuY2h1bmtzW2NsXSYmKFF1LmNodW5rc1tjbF09KChxYyxSbCk9PntpZihxYz5SbCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcmFuZ2UgKCIrcWMrIiwgIitSbCsiKSBvciBubyBieXRlcyBy'@; put 'ZXF1ZXN0ZWQhIik7aWYoUmw+WWktMSl0aHJvdyBuZXcgRXJyb3IoIm9ubHkgIitZaSsiIGJ5dGVzIGF2YWlsYWJsZSEgcHJvZ3JhbW1lciBlcnJvciEiKTt2YXIgbmM9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKG5jLm9wZW4oIkdFVCIsUnQsITEpLFlpIT09TWwmJm5jLnNldFJlcXVlc3RIZWFk'@; put 'ZXIoIlJhbmdlIiwiYnl0ZXM9IitxYysiLSIrUmwpLG5jLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLG5jLm92ZXJyaWRlTWltZVR5cGUmJm5jLm92ZXJyaWRlTWltZVR5cGUoInRleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQiKSxuYy5zZW5kKG51bGwpLCEobmMuc3RhdHVz'@; put 'Pj0yMDAmJm5jLnN0YXR1czwzMDB8fDMwND09PW5jLnN0YXR1cykpdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIrUnQrIi4gU3RhdHVzOiAiK25jLnN0YXR1cyk7cmV0dXJuIHZvaWQgMCE9PW5jLnJlc3BvbnNlP25ldyBVaW50OEFycmF5KG5jLnJlc3BvbnNlfHxbXSk6R28obmMu'@; put 'cmVzcG9uc2VUZXh0fHwiIiwhMCl9KShraSxqbykpLHZvaWQgMD09PVF1LmNodW5rc1tjbF0pdGhyb3cgbmV3IEVycm9yKCJkb1hIUiBmYWlsZWQhIik7cmV0dXJuIFF1LmNodW5rc1tjbF19KSwhTGwmJllpfHwoTWw9WWk9MSxZaT10aGlzLmdldHRlcigwKS5sZW5ndGgsTWw9WWksVygiTGF6'@; put 'eUZpbGVzIG9uIGd6aXAgZm9yY2VzIGRvd25sb2FkIG9mIHRoZSB3aG9sZSBmaWxlIHdoZW4gbGVuZ3RoIGlzIGFjY2Vzc2VkIikpLHRoaXMuX2xlbmd0aD1ZaSx0aGlzLl9jaHVua1NpemU9TWwsdGhpcy5sZW5ndGhLbm93bj0hMH0sdHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1Iil0aHJvdyJD'@; put 'YW5ub3QgZG8gc3luY2hyb25vdXMgYmluYXJ5IFhIUnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIjt2YXIgbHI9e2lzRGV2aWNlOiExLHVybDpSdH0sUnI9QXQuY3JlYXRlRmlsZShzdCxn'@; put 'dCxscix0bix3bik7bHIuY29udGVudHM/UnIuY29udGVudHM9bHIuY29udGVudHM6bHIudXJsJiYoUnIuY29udGVudHM9bnVsbCxSci51cmw9bHIudXJsKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhScix7dXNlZEJ5dGVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50cy5s'@; put 'ZW5ndGh9fX0pO3ZhciBnbz17fTtmdW5jdGlvbiBNbyhmbyxKbyxZaSxZcyxMbCl7dmFyIE1sPWZvLm5vZGUuY29udGVudHM7aWYoTGw+PU1sLmxlbmd0aClyZXR1cm4gMDt2YXIgUXU9TWF0aC5taW4oTWwubGVuZ3RoLUxsLFlzKTtpZihNbC5zbGljZSlmb3IodmFyIGNsPTA7Y2w8UXU7Y2wr'@; put 'KylKb1tZaStjbF09TWxbTGwrY2xdO2Vsc2UgZm9yKGNsPTA7Y2w8UXU7Y2wrKylKb1tZaStjbF09TWwuZ2V0KExsK2NsKTtyZXR1cm4gUXV9cmV0dXJuIE9iamVjdC5rZXlzKFJyLnN0cmVhbV9vcHMpLmZvckVhY2goZm89Pnt2YXIgSm89UnIuc3RyZWFtX29wc1tmb107Z29bZm9dPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIEF0LmZvcmNlTG9hZEZpbGUoUnIpLEpvLmFwcGx5KG51bGwsYXJndW1lbnRzKX19KSxnby5yZWFkPShmbyxKbyxZaSxZcyxMbCk9PihBdC5mb3JjZUxvYWRGaWxlKFJyKSxNbyhmbyxKbyxZaSxZcyxMbCkpLGdvLm1tYXA9KGZvLEpvLFlpLFlzLExsKT0+e0F0LmZvcmNl'@; put 'TG9hZEZpbGUoUnIpO3ZhciBNbD1nYShKbyk7aWYoIU1sKXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDQ4KTtyZXR1cm4gTW8oZm8sZXQsTWwsSm8sWWkpLHtwdHI6TWwsYWxsb2NhdGVkOiEwfX0sUnIuc3RyZWFtX29wcz1nbyxScn0sY3JlYXRlUHJlbG9hZGVkRmlsZTooc3QsZ3QsUnQsdG4s'@; put 'd24sc3IsbHIsUnIsZ28sTW8pPT57dmFyIFlpLExsLFF1LGZvPWd0P1hvLnJlc29sdmUoUmkuam9pbjIoc3QsZ3QpKTpzdDtmdW5jdGlvbiBKbyhZaSl7ZnVuY3Rpb24gWXMoTGwpe01vJiZNbygpLFJyfHxBdC5jcmVhdGVEYXRhRmlsZShzdCxndCxMbCx0bix3bixnbyksc3ImJnNyKCksY24o'@; put 'KX1Ccm93c2VyLmhhbmRsZWRCeVByZWxvYWRQbHVnaW4oWWksZm8sWXMsKCk9PntsciYmbHIoKSxjbigpfSl8fFlzKFlpKX1PdCgpLCJzdHJpbmciPT10eXBlb2YgUnQ/KExsPWxyLFF1PSJhbCAiKyhZaT1SdCksKHZvaWQgMCkoWWksY2w9PntaZShjbCwnTG9hZGluZyBkYXRhIGZpbGUgIicr'@; put 'WWkrJyIgZmFpbGVkIChubyBhcnJheUJ1ZmZlcikuJyksKFlpPT57Sm8oWWkpfSkobmV3IFVpbnQ4QXJyYXkoY2wpKSxRdSYmY24oKX0sY2w9PntpZighTGwpdGhyb3cnTG9hZGluZyBkYXRhIGZpbGUgIicrWWkrJyIgZmFpbGVkLic7TGwoKX0pLFF1JiZPdCgpKTpKbyhSdCl9LGluZGV4ZWRE'@; put 'QjooKT0+d2luZG93LmluZGV4ZWREQnx8d2luZG93Lm1vekluZGV4ZWREQnx8d2luZG93LndlYmtpdEluZGV4ZWREQnx8d2luZG93Lm1zSW5kZXhlZERCLERCX05BTUU6KCk9PiJFTV9GU18iK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxEQl9WRVJTSU9OOjIwLERCX1NUT1JFX05BTUU6IkZJ'@; put 'TEVfREFUQSIsc2F2ZUZpbGVzVG9EQjooc3QsZ3QsUnQpPT57Z3Q9Z3R8fCgoKT0+e30pLFJ0PVJ0fHwoKCk9Pnt9KTt2YXIgdG49QXQuaW5kZXhlZERCKCk7dHJ5e3ZhciB3bj10bi5vcGVuKEF0LkRCX05BTUUoKSxBdC5EQl9WRVJTSU9OKX1jYXRjaChzcil7cmV0dXJuIFJ0KHNyKX13bi5v'@; put 'bnVwZ3JhZGVuZWVkZWQ9KCk9PntXKCJjcmVhdGluZyBkYiIpLHduLnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZShBdC5EQl9TVE9SRV9OQU1FKX0sd24ub25zdWNjZXNzPSgpPT57dmFyIHNyPXduLnJlc3VsdC50cmFuc2FjdGlvbihbQXQuREJfU1RPUkVfTkFNRV0sInJlYWR3cml0ZSIpLGxy'@; put 'PXNyLm9iamVjdFN0b3JlKEF0LkRCX1NUT1JFX05BTUUpLFJyPTAsZ289MCxNbz1zdC5sZW5ndGg7ZnVuY3Rpb24gZm8oKXswPT1nbz9ndCgpOlJ0KCl9c3QuZm9yRWFjaChKbz0+e3ZhciBZaT1sci5wdXQoQXQuYW5hbHl6ZVBhdGgoSm8pLm9iamVjdC5jb250ZW50cyxKbyk7WWkub25zdWNj'@; put 'ZXNzPSgpPT57KytScitnbz09TW8mJmZvKCl9LFlpLm9uZXJyb3I9KCk9PntnbysrLFJyK2dvPT1NbyYmZm8oKX19KSxzci5vbmVycm9yPVJ0fSx3bi5vbmVycm9yPVJ0fSxsb2FkRmlsZXNGcm9tREI6KHN0LGd0LFJ0KT0+e2d0PWd0fHwoKCk9Pnt9KSxSdD1SdHx8KCgpPT57fSk7dmFyIHRu'@; put 'PUF0LmluZGV4ZWREQigpO3RyeXt2YXIgd249dG4ub3BlbihBdC5EQl9OQU1FKCksQXQuREJfVkVSU0lPTil9Y2F0Y2goc3Ipe3JldHVybiBSdChzcil9d24ub251cGdyYWRlbmVlZGVkPVJ0LHduLm9uc3VjY2Vzcz0oKT0+e3ZhciBzcj13bi5yZXN1bHQ7dHJ5e3ZhciBscj1zci50cmFuc2Fj'@; put 'dGlvbihbQXQuREJfU1RPUkVfTkFNRV0sInJlYWRvbmx5Iil9Y2F0Y2goWWkpe3JldHVybiB2b2lkIFJ0KFlpKX12YXIgUnI9bHIub2JqZWN0U3RvcmUoQXQuREJfU1RPUkVfTkFNRSksZ289MCxNbz0wLGZvPXN0Lmxlbmd0aDtmdW5jdGlvbiBKbygpezA9PU1vP2d0KCk6UnQoKX1zdC5mb3JF'@; put 'YWNoKFlpPT57dmFyIFlzPVJyLmdldChZaSk7WXMub25zdWNjZXNzPSgpPT57QXQuYW5hbHl6ZVBhdGgoWWkpLmV4aXN0cyYmQXQudW5saW5rKFlpKSxBdC5jcmVhdGVEYXRhRmlsZShSaS5kaXJuYW1lKFlpKSxSaS5iYXNlbmFtZShZaSksWXMucmVzdWx0LCEwLCEwLCEwKSwrK2dvK01vPT1m'@; put 'byYmSm8oKX0sWXMub25lcnJvcj0oKT0+e01vKyssZ28rTW89PWZvJiZKbygpfX0pLGxyLm9uZXJyb3I9UnR9LHduLm9uZXJyb3I9UnR9fSxEaT17REVGQVVMVF9QT0xMTUFTSzo1LGNhbGN1bGF0ZUF0OmZ1bmN0aW9uKHN0LGd0LFJ0KXtpZihSaS5pc0FicyhndCkpcmV0dXJuIGd0O3ZhciB0'@; put 'bjtpZih0bj0tMTAwPT09c3Q/QXQuY3dkKCk6RGkuZ2V0U3RyZWFtRnJvbUZEKHN0KS5wYXRoLDA9PWd0Lmxlbmd0aCl7aWYoIVJ0KXRocm93IG5ldyBBdC5FcnJub0Vycm9yKDQ0KTtyZXR1cm4gdG59cmV0dXJuIFJpLmpvaW4yKHRuLGd0KX0sZG9TdGF0OmZ1bmN0aW9uKHN0LGd0LFJ0KXt0'@; put 'cnl7dmFyIHRuPXN0KGd0KX1jYXRjaChScil7aWYoUnImJlJyLm5vZGUmJlJpLm5vcm1hbGl6ZShndCkhPT1SaS5ub3JtYWxpemUoQXQuZ2V0UGF0aChSci5ub2RlKSkpcmV0dXJuLTU0O3Rocm93IFJyfVN0W1J0Pj4yXT10bi5kZXYsU3RbUnQrOD4+Ml09dG4uaW5vLFN0W1J0KzEyPj4yXT10'@; put 'bi5tb2RlLEp0W1J0KzE2Pj4yXT10bi5ubGluayxTdFtSdCsyMD4+Ml09dG4udWlkLFN0W1J0KzI0Pj4yXT10bi5naWQsU3RbUnQrMjg+PjJdPXRuLnJkZXYsT249W3RuLnNpemU+Pj4wLChqcj10bi5zaXplLCtNYXRoLmFicyhqcik+PTE/anI+MD8oMHxNYXRoLm1pbigrTWF0aC5mbG9vcihq'@; put 'ci80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1KSk+Pj4wOn5+K01hdGguY2VpbCgoanItKyh+fmpyPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sU3RbUnQrNDA+PjJdPU9uWzBdLFN0W1J0KzQ0Pj4yXT1PblsxXSxTdFtSdCs0OD4+Ml09NDA5NixTdFtSdCs1Mj4+Ml09dG4uYmxvY2tzO3ZhciB3'@; put 'bj10bi5hdGltZS5nZXRUaW1lKCksc3I9dG4ubXRpbWUuZ2V0VGltZSgpLGxyPXRuLmN0aW1lLmdldFRpbWUoKTtyZXR1cm4gT249W01hdGguZmxvb3Iod24vMWUzKT4+PjAsKGpyPU1hdGguZmxvb3Iod24vMWUzKSwrTWF0aC5hYnMoanIpPj0xP2pyPjA/KDB8TWF0aC5taW4oK01hdGguZmxv'@; put 'b3IoanIvNDI5NDk2NzI5NiksNDI5NDk2NzI5NSkpPj4+MDp+fitNYXRoLmNlaWwoKGpyLSsofn5qcj4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLFN0W1J0KzU2Pj4yXT1PblswXSxTdFtSdCs2MD4+Ml09T25bMV0sSnRbUnQrNjQ+PjJdPXduJTFlMyoxZTMsT249W01hdGguZmxvb3Ioc3Iv'@; put 'MWUzKT4+PjAsKGpyPU1hdGguZmxvb3Ioc3IvMWUzKSwrTWF0aC5hYnMoanIpPj0xP2pyPjA/KDB8TWF0aC5taW4oK01hdGguZmxvb3IoanIvNDI5NDk2NzI5NiksNDI5NDk2NzI5NSkpPj4+MDp+fitNYXRoLmNlaWwoKGpyLSsofn5qcj4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLFN0W1J0'@; put 'KzcyPj4yXT1PblswXSxTdFtSdCs3Nj4+Ml09T25bMV0sSnRbUnQrODA+PjJdPXNyJTFlMyoxZTMsT249W01hdGguZmxvb3IobHIvMWUzKT4+PjAsKGpyPU1hdGguZmxvb3IobHIvMWUzKSwrTWF0aC5hYnMoanIpPj0xP2pyPjA/KDB8TWF0aC5taW4oK01hdGguZmxvb3IoanIvNDI5NDk2NzI5'@; put 'NiksNDI5NDk2NzI5NSkpPj4+MDp+fitNYXRoLmNlaWwoKGpyLSsofn5qcj4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLFN0W1J0Kzg4Pj4yXT1PblswXSxTdFtSdCs5Mj4+Ml09T25bMV0sSnRbUnQrOTY+PjJdPWxyJTFlMyoxZTMsT249W3RuLmlubz4+PjAsKGpyPXRuLmlubywrTWF0aC5h'@; put 'YnMoanIpPj0xP2pyPjA/KDB8TWF0aC5taW4oK01hdGguZmxvb3IoanIvNDI5NDk2NzI5NiksNDI5NDk2NzI5NSkpPj4+MDp+fitNYXRoLmNlaWwoKGpyLSsofn5qcj4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLFN0W1J0KzEwND4+Ml09T25bMF0sU3RbUnQrMTA4Pj4yXT1PblsxXSwwfSxk'@; put 'b01zeW5jOmZ1bmN0aW9uKHN0LGd0LFJ0LHRuLHduKXtpZighQXQuaXNGaWxlKGd0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IEF0LkVycm5vRXJyb3IoNDMpO2lmKDImdG4pcmV0dXJuIDA7dmFyIHNyPXl0LnNsaWNlKHN0LHN0K1J0KTtBdC5tc3luYyhndCxzcix3bixSdCx0bil9LHZhcmFyZ3M6'@; put 'dm9pZCAwLGdldDpmdW5jdGlvbigpe3JldHVybiBEaS52YXJhcmdzKz00LFN0W0RpLnZhcmFyZ3MtND4+Ml19LGdldFN0cjpmdW5jdGlvbihzdCl7cmV0dXJuIGNyKHN0KX0sZ2V0U3RyZWFtRnJvbUZEOmZ1bmN0aW9uKHN0KXt2YXIgZ3Q9QXQuZ2V0U3RyZWFtKHN0KTtpZighZ3QpdGhyb3cg'@; put 'bmV3IEF0LkVycm5vRXJyb3IoOCk7cmV0dXJuIGd0fX0sUXM9W107ZnVuY3Rpb24gRnMoc3Qpe3RyeXtyZXR1cm4gcGUuZ3JvdyhzdC1pdC5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpLElpKHBlLmJ1ZmZlciksMX1jYXRjaHt9fXZhciB0Yz17fTtmdW5jdGlvbiBDYSgpe2lmKCFDYS5zdHJpbmdz'@; put 'KXt2YXIgc3Q9e1VTRVI6IndlYl91c2VyIixMT0dOQU1FOiJ3ZWJfdXNlciIsUEFUSDoiLyIsUFdEOiIvIixIT01FOiIvaG9tZS93ZWJfdXNlciIsTEFORzooIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5sYW5ndWFnZXMmJm5hdmlnYXRvci5sYW5ndWFnZXNbMF18fCJD'@; put 'IikucmVwbGFjZSgiLSIsIl8iKSsiLlVURi04IixfOl98fCIuL3RoaXMucHJvZ3JhbSJ9O2Zvcih2YXIgZ3QgaW4gdGMpdm9pZCAwPT09dGNbZ3RdP2RlbGV0ZSBzdFtndF06c3RbZ3RdPXRjW2d0XTt2YXIgUnQ9W107Zm9yKHZhciBndCBpbiBzdClSdC5wdXNoKGd0KyI9IitzdFtndF0pO0Nh'@; put 'LnN0cmluZ3M9UnR9cmV0dXJuIENhLnN0cmluZ3N9ZnVuY3Rpb24gSWwoc3Qpe3JldHVybiBzdCU0PT0wJiYoc3QlMTAwIT0wfHxzdCU0MDA9PTApfXZhciB4Mj1bMzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLHU0PVszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwz'@; put 'MCwzMV0sQ2Q9ZnVuY3Rpb24oc3QsZ3QsUnQsdG4pe3N0fHwoc3Q9dGhpcyksdGhpcy5wYXJlbnQ9c3QsdGhpcy5tb3VudD1zdC5tb3VudCx0aGlzLm1vdW50ZWQ9bnVsbCx0aGlzLmlkPUF0Lm5leHRJbm9kZSsrLHRoaXMubmFtZT1ndCx0aGlzLm1vZGU9UnQsdGhpcy5ub2RlX29wcz17fSx0'@; put 'aGlzLnN0cmVhbV9vcHM9e30sdGhpcy5yZGV2PXRufTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhDZC5wcm90b3R5cGUse3JlYWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiAzNjU9PSgzNjUmdGhpcy5tb2RlKX0sc2V0OmZ1bmN0aW9uKHN0KXtzdD90aGlzLm1vZGV8PTM2NTp0aGlzLm1vZGUm'@; put 'PS0zNjZ9fSx3cml0ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDE0Nj09KDE0NiZ0aGlzLm1vZGUpfSxzZXQ6ZnVuY3Rpb24oc3Qpe3N0P3RoaXMubW9kZXw9MTQ2OnRoaXMubW9kZSY9LTE0N319LGlzRm9sZGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQXQuaXNEaXIodGhpcy5tb2RlKX19'@; put 'LGlzRGV2aWNlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQXQuaXNDaHJkZXYodGhpcy5tb2RlKX19fSksQXQuRlNOb2RlPUNkLEF0LnN0YXRpY0luaXQoKTt2YXIgSnU9e2I6ZnVuY3Rpb24oc3QsZ3QsUnQpe3Rocm93IG5ldyBOcihzdCkuaW5pdChndCxSdCksc3R9LGw6ZnVuY3Rpb24oc3Qs'@; put 'Z3QsUnQsdG4pe3RyeXtpZihndD1EaS5nZXRTdHIoZ3QpLGd0PURpLmNhbGN1bGF0ZUF0KHN0LGd0KSwtOCZSdClyZXR1cm4tMjg7dmFyIHduPUF0Lmxvb2t1cFBhdGgoZ3Qse2ZvbGxvdzohMH0pLm5vZGU7aWYoIXduKXJldHVybi00NDt2YXIgc3I9IiI7cmV0dXJuIDQmUnQmJihzcis9InIi'@; put 'KSwyJlJ0JiYoc3IrPSJ3IiksMSZSdCYmKHNyKz0ieCIpLHNyJiZBdC5ub2RlUGVybWlzc2lvbnMod24sc3IpPy0yOjB9Y2F0Y2gobHIpe2lmKHZvaWQgMD09PUF0fHwhKGxyIGluc3RhbmNlb2YgQXQuRXJybm9FcnJvcikpdGhyb3cgbHI7cmV0dXJuLWxyLmVycm5vfX0saTpmdW5jdGlvbihz'@; put 'dCxndCxSdCl7RGkudmFyYXJncz1SdDt0cnl7dmFyIHRuPURpLmdldFN0cmVhbUZyb21GRChzdCk7c3dpdGNoKGd0KXtjYXNlIDA6cmV0dXJuKHduPURpLmdldCgpKTwwPy0yODpBdC5jcmVhdGVTdHJlYW0odG4sd24pLmZkO2Nhc2UgMTpjYXNlIDI6Y2FzZSA2OmNhc2UgNzpyZXR1cm4gMDtj'@; put 'YXNlIDM6cmV0dXJuIHRuLmZsYWdzO2Nhc2UgNDp2YXIgd249RGkuZ2V0KCk7cmV0dXJuIHRuLmZsYWdzfD13biwwO2Nhc2UgNTpyZXR1cm4gd249RGkuZ2V0KCksRXRbd24rMD4+MV09MiwwO2Nhc2UgMTY6Y2FzZSA4OmRlZmF1bHQ6cmV0dXJuLTI4O2Nhc2UgOTpyZXR1cm4gU3RbTXcoKT4+'@; put 'Ml09MjgsLTF9fWNhdGNoKGxyKXtpZih2b2lkIDA9PT1BdHx8IShsciBpbnN0YW5jZW9mIEF0LkVycm5vRXJyb3IpKXRocm93IGxyO3JldHVybi1sci5lcnJub319LHc6ZnVuY3Rpb24oc3QsZ3Qpe3RyeXt2YXIgUnQ9RGkuZ2V0U3RyZWFtRnJvbUZEKHN0KTtyZXR1cm4gRGkuZG9TdGF0KEF0'@; put 'LnN0YXQsUnQucGF0aCxndCl9Y2F0Y2godG4pe2lmKHZvaWQgMD09PUF0fHwhKHRuIGluc3RhbmNlb2YgQXQuRXJybm9FcnJvcikpdGhyb3cgdG47cmV0dXJuLXRuLmVycm5vfX0seDpmdW5jdGlvbihzdCxndCxSdCl7RGkudmFyYXJncz1SdDt0cnl7dmFyIHRuPURpLmdldFN0cmVhbUZyb21G'@; put 'RChzdCk7c3dpdGNoKGd0KXtjYXNlIDIxNTA5OmNhc2UgMjE1MDU6Y2FzZSAyMTUxMDpjYXNlIDIxNTExOmNhc2UgMjE1MTI6Y2FzZSAyMTUwNjpjYXNlIDIxNTA3OmNhc2UgMjE1MDg6Y2FzZSAyMTUyMzpjYXNlIDIxNTI0OnJldHVybiB0bi50dHk/MDotNTk7Y2FzZSAyMTUxOTppZighdG4u'@; put 'dHR5KXJldHVybi01OTt2YXIgd249RGkuZ2V0KCk7cmV0dXJuIFN0W3duPj4yXT0wLDA7Y2FzZSAyMTUyMDpyZXR1cm4gdG4udHR5Py0yODotNTk7Y2FzZSAyMTUzMTpyZXR1cm4gd249RGkuZ2V0KCksQXQuaW9jdGwodG4sZ3Qsd24pO2RlZmF1bHQ6cmV0dXJuLTI4fX1jYXRjaChzcil7aWYo'@; put 'dm9pZCAwPT09QXR8fCEoc3IgaW5zdGFuY2VvZiBBdC5FcnJub0Vycm9yKSl0aHJvdyBzcjtyZXR1cm4tc3IuZXJybm99fSx1OmZ1bmN0aW9uKHN0LGd0LFJ0LHRuKXt0cnl7Z3Q9RGkuZ2V0U3RyKGd0KTt2YXIgd249MjU2JnRuLHNyPTQwOTYmdG47cmV0dXJuIHRuJj0tNjQwMSxndD1EaS5j'@; put 'YWxjdWxhdGVBdChzdCxndCxzciksRGkuZG9TdGF0KHduP0F0LmxzdGF0OkF0LnN0YXQsZ3QsUnQpfWNhdGNoKGxyKXtpZih2b2lkIDA9PT1BdHx8IShsciBpbnN0YW5jZW9mIEF0LkVycm5vRXJyb3IpKXRocm93IGxyO3JldHVybi1sci5lcnJub319LGQ6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4p'@; put 'e0RpLnZhcmFyZ3M9dG47dHJ5e2d0PURpLmdldFN0cihndCksZ3Q9RGkuY2FsY3VsYXRlQXQoc3QsZ3QpO3ZhciB3bj10bj9EaS5nZXQoKTowO3JldHVybiBBdC5vcGVuKGd0LFJ0LHduKS5mZH1jYXRjaChzcil7aWYodm9pZCAwPT09QXR8fCEoc3IgaW5zdGFuY2VvZiBBdC5FcnJub0Vycm9y'@; put 'KSl0aHJvdyBzcjtyZXR1cm4tc3IuZXJybm99fSx2OmZ1bmN0aW9uKHN0LGd0KXt0cnl7cmV0dXJuIHN0PURpLmdldFN0cihzdCksRGkuZG9TdGF0KEF0LnN0YXQsc3QsZ3QpfWNhdGNoKFJ0KXtpZih2b2lkIDA9PT1BdHx8IShSdCBpbnN0YW5jZW9mIEF0LkVycm5vRXJyb3IpKXRocm93IFJ0'@; put 'O3JldHVybi1SdC5lcnJub319LHA6ZnVuY3Rpb24oc3QsZ3QsUnQpe3RyeXtyZXR1cm4gZ3Q9RGkuZ2V0U3RyKGd0KSxndD1EaS5jYWxjdWxhdGVBdChzdCxndCksMD09PVJ0P0F0LnVubGluayhndCk6NTEyPT09UnQ/QXQucm1kaXIoZ3QpOkVuKCJJbnZhbGlkIGZsYWdzIHBhc3NlZCB0byB1'@; put 'bmxpbmthdCIpLDB9Y2F0Y2godG4pe2lmKHZvaWQgMD09PUF0fHwhKHRuIGluc3RhbmNlb2YgQXQuRXJybm9FcnJvcikpdGhyb3cgdG47cmV0dXJuLXRuLmVycm5vfX0sajpmdW5jdGlvbigpe3JldHVybiEwfSxxOmZ1bmN0aW9uKHN0LGd0LFJ0LHRuLHduLHNyLGxyKXt0cnl7dmFyIFJyPURp'@; put 'LmdldFN0cmVhbUZyb21GRCh0biksZ289QXQubW1hcChScixzdCx3bixndCxSdCksTW89Z28ucHRyO3JldHVybiBTdFtzcj4+Ml09Z28uYWxsb2NhdGVkLEp0W2xyPj4yXT1NbywwfWNhdGNoKGZvKXtpZih2b2lkIDA9PT1BdHx8IShmbyBpbnN0YW5jZW9mIEF0LkVycm5vRXJyb3IpKXRocm93'@; put 'IGZvO3JldHVybi1mby5lcnJub319LHI6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4sd24sc3Ipe3RyeXt2YXIgbHI9RGkuZ2V0U3RyZWFtRnJvbUZEKHduKTsyJlJ0JiZEaS5kb01zeW5jKHN0LGxyLGd0LHRuLHNyKSxBdC5tdW5tYXAobHIpfWNhdGNoKFJyKXtpZih2b2lkIDA9PT1BdHx8IShSciBp'@; put 'bnN0YW5jZW9mIEF0LkVycm5vRXJyb3IpKXRocm93IFJyO3JldHVybi1Sci5lcnJub319LGE6ZnVuY3Rpb24oKXtFbigiIil9LHk6ZnVuY3Rpb24oc3QsZ3QsUnQpe3JldHVybiBmdW5jdGlvbiBsYShzdCxndCxSdCl7dmFyIHRuPWZ1bmN0aW9uKHduLHNyKXt2YXIgbHI7Zm9yKFFzLmxlbmd0'@; put 'aD0wLHNyPj49Mjtscj15dFt3bisrXTspc3IrPTEwNSE9bHImc3IsUXMucHVzaCgxMDU9PWxyP1N0W3NyXTpubltzcisrPj4xXSksKytzcjtyZXR1cm4gUXN9KGd0LFJ0KTtyZXR1cm4gT3Jbc3RdLmFwcGx5KG51bGwsdG4pfShzdCxndCxSdCl9LGU6ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5u'@; put 'b3coKX0sazpmdW5jdGlvbihzdCxndCxSdCl7eXQuY29weVdpdGhpbihzdCxndCxndCtSdCl9LG86ZnVuY3Rpb24oc3Qpe3ZhciBndCx0bj15dC5sZW5ndGgsd249MjE0NzQ4MzY0ODtpZigoc3Q+Pj49MCk+d24pcmV0dXJuITE7Zm9yKHZhciBzcj0xO3NyPD00O3NyKj0yKXt2YXIgbHI9dG4q'@; put 'KDErLjIvc3IpO2lmKGxyPU1hdGgubWluKGxyLHN0KzEwMDY2MzI5NiksRnMoTWF0aC5taW4od24sKGd0PU1hdGgubWF4KHN0LGxyKSkrKDY1NTM2LWd0JTY1NTM2KSU2NTUzNikpKXJldHVybiEwfXJldHVybiExfSxzOmZ1bmN0aW9uKHN0LGd0KXt2YXIgUnQ9MDtyZXR1cm4gQ2EoKS5mb3JF'@; put 'YWNoKGZ1bmN0aW9uKHRuLHduKXt2YXIgc3I9Z3QrUnQ7SnRbc3QrNCp3bj4+Ml09c3IsZnVuY3Rpb24obHIsUnIsZ28pe2Zvcih2YXIgTW89MDtNbzxsci5sZW5ndGg7KytNbylldFtScisrPj4wXT1sci5jaGFyQ29kZUF0KE1vKTtldFtScj4+MF09MH0odG4sc3IpLFJ0Kz10bi5sZW5ndGgr'@; put 'MX0pLDB9LHQ6ZnVuY3Rpb24oc3QsZ3Qpe3ZhciBSdD1DYSgpO0p0W3N0Pj4yXT1SdC5sZW5ndGg7dmFyIHRuPTA7cmV0dXJuIFJ0LmZvckVhY2goZnVuY3Rpb24od24pe3RuKz13bi5sZW5ndGgrMX0pLEp0W2d0Pj4yXT10biwwfSxmOmZ1bmN0aW9uKHN0LGd0KXshZnVuY3Rpb24gUmgoc3Qp'@; put 'e3dlfHwoZC5vbkV4aXQmJmQub25FeGl0KHN0KSxFZT0hMCksVChzdCxuZXcgJHIoc3QpKX0oc3QpfSxjOmZ1bmN0aW9uKHN0KXt0cnl7dmFyIGd0PURpLmdldFN0cmVhbUZyb21GRChzdCk7cmV0dXJuIEF0LmNsb3NlKGd0KSwwfWNhdGNoKFJ0KXtpZih2b2lkIDA9PT1BdHx8IShSdCBpbnN0'@; put 'YW5jZW9mIEF0LkVycm5vRXJyb3IpKXRocm93IFJ0O3JldHVybiBSdC5lcnJub319LGc6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4pe3RyeXt2YXIgd249ZnVuY3Rpb24oc3IsbHIsUnIsZ28pe2Zvcih2YXIgTW89MCxmbz0wO2ZvPFJyO2ZvKyspe3ZhciBKbz1KdFtscj4+Ml0sWWk9SnRbbHIrND4+'@; put 'Ml07bHIrPTg7dmFyIFlzPUF0LnJlYWQoc3IsZXQsSm8sWWksdm9pZCAwKTtpZihZczwwKXJldHVybi0xO2lmKE1vKz1ZcyxZczxZaSlicmVha31yZXR1cm4gTW99KERpLmdldFN0cmVhbUZyb21GRChzdCksZ3QsUnQpO3JldHVybiBKdFt0bj4+Ml09d24sMH1jYXRjaChzcil7aWYodm9pZCAw'@; put 'PT09QXR8fCEoc3IgaW5zdGFuY2VvZiBBdC5FcnJub0Vycm9yKSl0aHJvdyBzcjtyZXR1cm4gc3IuZXJybm99fSxtOmZ1bmN0aW9uKHN0LGd0LFJ0LHRuLHduKXt0cnl7dmFyIHNyPShnbz1SdCkrMjA5NzE1Mj4+PjA8NDE5NDMwNS0hIShScj1ndCk/KFJyPj4+MCkrNDI5NDk2NzI5NipnbzpO'@; put 'YU47aWYoaXNOYU4oc3IpKXJldHVybiA2MTt2YXIgbHI9RGkuZ2V0U3RyZWFtRnJvbUZEKHN0KTtyZXR1cm4gQXQubGxzZWVrKGxyLHNyLHRuKSxPbj1bbHIucG9zaXRpb24+Pj4wLChqcj1sci5wb3NpdGlvbiwrTWF0aC5hYnMoanIpPj0xP2pyPjA/KDB8TWF0aC5taW4oK01hdGguZmxvb3Io'@; put 'anIvNDI5NDk2NzI5NiksNDI5NDk2NzI5NSkpPj4+MDp+fitNYXRoLmNlaWwoKGpyLSsofn5qcj4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLFN0W3duPj4yXT1PblswXSxTdFt3bis0Pj4yXT1PblsxXSxsci5nZXRkZW50cyYmMD09PXNyJiYwPT09dG4mJihsci5nZXRkZW50cz1udWxsKSww'@; put 'fWNhdGNoKE1vKXtpZih2b2lkIDA9PT1BdHx8IShNbyBpbnN0YW5jZW9mIEF0LkVycm5vRXJyb3IpKXRocm93IE1vO3JldHVybiBNby5lcnJub312YXIgUnIsZ299LGg6ZnVuY3Rpb24oc3QsZ3QsUnQsdG4pe3RyeXt2YXIgd249ZnVuY3Rpb24oc3IsbHIsUnIsZ28pe2Zvcih2YXIgTW89MCxm'@; put 'bz0wO2ZvPFJyO2ZvKyspe3ZhciBKbz1KdFtscj4+Ml0sWWk9SnRbbHIrND4+Ml07bHIrPTg7dmFyIFlzPUF0LndyaXRlKHNyLGV0LEpvLFlpLHZvaWQgMCk7aWYoWXM8MClyZXR1cm4tMTtNbys9WXN9cmV0dXJuIE1vfShEaS5nZXRTdHJlYW1Gcm9tRkQoc3QpLGd0LFJ0KTtyZXR1cm4gSnRb'@; put 'dG4+PjJdPXduLDB9Y2F0Y2goc3Ipe2lmKHZvaWQgMD09PUF0fHwhKHNyIGluc3RhbmNlb2YgQXQuRXJybm9FcnJvcikpdGhyb3cgc3I7cmV0dXJuIHNyLmVycm5vfX0sbjpmdW5jdGlvbihzdCxndCxSdCx0bix3bil7cmV0dXJuIGZ1bmN0aW9uIE9oKHN0LGd0LFJ0LHRuKXt2YXIgd249U3Rb'@; put 'dG4rNDA+PjJdLHNyPXt0bV9zZWM6U3RbdG4+PjJdLHRtX21pbjpTdFt0bis0Pj4yXSx0bV9ob3VyOlN0W3RuKzg+PjJdLHRtX21kYXk6U3RbdG4rMTI+PjJdLHRtX21vbjpTdFt0bisxNj4+Ml0sdG1feWVhcjpTdFt0bisyMD4+Ml0sdG1fd2RheTpTdFt0bisyND4+Ml0sdG1feWRheTpTdFt0'@; put 'bisyOD4+Ml0sdG1faXNkc3Q6U3RbdG4rMzI+PjJdLHRtX2dtdG9mZjpTdFt0biszNj4+Ml0sdG1fem9uZTp3bj9jcih3bik6IiJ9LGxyPWNyKFJ0KSxScj17IiVjIjoiJWEgJWIgJWQgJUg6JU06JVMgJVkiLCIlRCI6IiVtLyVkLyV5IiwiJUYiOiIlWS0lbS0lZCIsIiVoIjoiJWIiLCIlciI6'@; put 'IiVJOiVNOiVTICVwIiwiJVIiOiIlSDolTSIsIiVUIjoiJUg6JU06JVMiLCIleCI6IiVtLyVkLyV5IiwiJVgiOiIlSDolTTolUyIsIiVFYyI6IiVjIiwiJUVDIjoiJUMiLCIlRXgiOiIlbS8lZC8leSIsIiVFWCI6IiVIOiVNOiVTIiwiJUV5IjoiJXkiLCIlRVkiOiIlWSIsIiVPZCI6IiVkIiwi'@; put 'JU9lIjoiJWUiLCIlT0giOiIlSCIsIiVPSSI6IiVJIiwiJU9tIjoiJW0iLCIlT00iOiIlTSIsIiVPUyI6IiVTIiwiJU91IjoiJXUiLCIlT1UiOiIlVSIsIiVPViI6IiVWIiwiJU93IjoiJXciLCIlT1ciOiIlVyIsIiVPeSI6IiV5In07Zm9yKHZhciBnbyBpbiBScilscj1sci5yZXBsYWNlKG5l'@; put 'dyBSZWdFeHAoZ28sImciKSxScltnb10pO3ZhciBNbz1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZm89WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHki'@; put 'LCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdO2Z1bmN0aW9uIEpvKGtpLGpvLHFjKXtmb3IodmFyIFJsPSJudW1iZXIiPT10eXBlb2Yga2k/a2kudG9TdHJpbmcoKTpraXx8IiI7UmwubGVuZ3RoPGpvOylSbD1xY1swXStSbDtyZXR1cm4gUmx9'@; put 'ZnVuY3Rpb24gWWkoa2ksam8pe3JldHVybiBKbyhraSxqbywiMCIpfWZ1bmN0aW9uIFlzKGtpLGpvKXtmdW5jdGlvbiBxYyhuYyl7cmV0dXJuIG5jPDA/LTE6bmM+MD8xOjB9dmFyIFJsO3JldHVybiAwPT09KFJsPXFjKGtpLmdldEZ1bGxZZWFyKCktam8uZ2V0RnVsbFllYXIoKSkpJiYwPT09'@; put 'KFJsPXFjKGtpLmdldE1vbnRoKCktam8uZ2V0TW9udGgoKSkpJiYoUmw9cWMoa2kuZ2V0RGF0ZSgpLWpvLmdldERhdGUoKSkpLFJsfWZ1bmN0aW9uIExsKGtpKXtzd2l0Y2goa2kuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoa2kuZ2V0RnVsbFllYXIoKS0xLDExLDI5KTtjYXNl'@; put 'IDE6cmV0dXJuIGtpO2Nhc2UgMjpyZXR1cm4gbmV3IERhdGUoa2kuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoa2kuZ2V0RnVsbFllYXIoKSwwLDIpO2Nhc2UgNDpyZXR1cm4gbmV3IERhdGUoa2kuZ2V0RnVsbFllYXIoKSwwLDEpO2Nhc2UgNTpyZXR1cm4gbmV3'@; put 'IERhdGUoa2kuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKGtpLmdldEZ1bGxZZWFyKCktMSwxMSwzMCl9fWZ1bmN0aW9uIE1sKGtpKXt2YXIgam89ZnVuY3Rpb24oTHJ0LFZUKXtmb3IodmFyIEUxPW5ldyBEYXRlKExydC5nZXRUaW1lKCkpO1ZUPjA7KXt2'@; put 'YXIgUnJ0PUlsKEUxLmdldEZ1bGxZZWFyKCkpLGFaPUUxLmdldE1vbnRoKCksU2xlPShScnQ/eDI6dTQpW2FaXTtpZighKFZUPlNsZS1FMS5nZXREYXRlKCkpKXJldHVybiBFMS5zZXREYXRlKEUxLmdldERhdGUoKStWVCksRTE7VlQtPVNsZS1FMS5nZXREYXRlKCkrMSxFMS5zZXREYXRlKDEp'@; put 'LGFaPDExP0UxLnNldE1vbnRoKGFaKzEpOihFMS5zZXRNb250aCgwKSxFMS5zZXRGdWxsWWVhcihFMS5nZXRGdWxsWWVhcigpKzEpKX1yZXR1cm4gRTF9KG5ldyBEYXRlKGtpLnRtX3llYXIrMTkwMCwwLDEpLGtpLnRtX3lkYXkpLHFjPW5ldyBEYXRlKGpvLmdldEZ1bGxZZWFyKCksMCw0KSxS'@; put 'bD1uZXcgRGF0ZShqby5nZXRGdWxsWWVhcigpKzEsMCw0KSxuYz1MbChxYyksSXJ0PUxsKFJsKTtyZXR1cm4gWXMobmMsam8pPD0wP1lzKElydCxqbyk8PTA/am8uZ2V0RnVsbFllYXIoKSsxOmpvLmdldEZ1bGxZZWFyKCk6am8uZ2V0RnVsbFllYXIoKS0xfXZhciBRdT17IiVhIjpmdW5jdGlv'@; put 'bihraSl7cmV0dXJuIE1vW2tpLnRtX3dkYXldLnN1YnN0cmluZygwLDMpfSwiJUEiOmZ1bmN0aW9uKGtpKXtyZXR1cm4gTW9ba2kudG1fd2RheV19LCIlYiI6ZnVuY3Rpb24oa2kpe3JldHVybiBmb1traS50bV9tb25dLnN1YnN0cmluZygwLDMpfSwiJUIiOmZ1bmN0aW9uKGtpKXtyZXR1cm4g'@; put 'Zm9ba2kudG1fbW9uXX0sIiVDIjpmdW5jdGlvbihraSl7cmV0dXJuIFlpKChraS50bV95ZWFyKzE5MDApLzEwMHwwLDIpfSwiJWQiOmZ1bmN0aW9uKGtpKXtyZXR1cm4gWWkoa2kudG1fbWRheSwyKX0sIiVlIjpmdW5jdGlvbihraSl7cmV0dXJuIEpvKGtpLnRtX21kYXksMiwiICIpfSwiJWci'@; put 'OmZ1bmN0aW9uKGtpKXtyZXR1cm4gTWwoa2kpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJUciOmZ1bmN0aW9uKGtpKXtyZXR1cm4gTWwoa2kpfSwiJUgiOmZ1bmN0aW9uKGtpKXtyZXR1cm4gWWkoa2kudG1faG91ciwyKX0sIiVJIjpmdW5jdGlvbihraSl7dmFyIGpvPWtpLnRtX2hvdXI7'@; put 'cmV0dXJuIDA9PWpvP2pvPTEyOmpvPjEyJiYoam8tPTEyKSxZaShqbywyKX0sIiVqIjpmdW5jdGlvbihraSl7cmV0dXJuIFlpKGtpLnRtX21kYXkrZnVuY3Rpb24oam8scWMpe2Zvcih2YXIgUmw9MCxuYz0wO25jPD1xYztSbCs9am9bbmMrK10pO3JldHVybiBSbH0oSWwoa2kudG1feWVhcisx'@; put 'OTAwKT94Mjp1NCxraS50bV9tb24tMSksMyl9LCIlbSI6ZnVuY3Rpb24oa2kpe3JldHVybiBZaShraS50bV9tb24rMSwyKX0sIiVNIjpmdW5jdGlvbihraSl7cmV0dXJuIFlpKGtpLnRtX21pbiwyKX0sIiVuIjpmdW5jdGlvbigpe3JldHVybiJcbiJ9LCIlcCI6ZnVuY3Rpb24oa2kpe3JldHVy'@; put 'biBraS50bV9ob3VyPj0wJiZraS50bV9ob3VyPDEyPyJBTSI6IlBNIn0sIiVTIjpmdW5jdGlvbihraSl7cmV0dXJuIFlpKGtpLnRtX3NlYywyKX0sIiV0IjpmdW5jdGlvbigpe3JldHVybiJcdCJ9LCIldSI6ZnVuY3Rpb24oa2kpe3JldHVybiBraS50bV93ZGF5fHw3fSwiJVUiOmZ1bmN0aW9u'@; put 'KGtpKXtyZXR1cm4gWWkoTWF0aC5mbG9vcigoa2kudG1feWRheSs3LWtpLnRtX3dkYXkpLzcpLDIpfSwiJVYiOmZ1bmN0aW9uKGtpKXt2YXIgam89TWF0aC5mbG9vcigoa2kudG1feWRheSs3LShraS50bV93ZGF5KzYpJTcpLzcpO2lmKChraS50bV93ZGF5KzM3MS1raS50bV95ZGF5LTIpJTc8'@; put 'PTImJmpvKyssam8pe2lmKDUzPT1qbyl7dmFyIHFjPShraS50bV93ZGF5KzM3MS1raS50bV95ZGF5KSU3OzQ9PXFjfHwzPT1xYyYmSWwoa2kudG1feWVhcil8fChqbz0xKX19ZWxzZXtqbz01Mjt2YXIgUmw9KGtpLnRtX3dkYXkrNy1raS50bV95ZGF5LTEpJTc7KDQ9PVJsfHw1PT1SbCYmSWwo'@; put 'a2kudG1feWVhciU0MDAtMSkpJiZqbysrfXJldHVybiBZaShqbywyKX0sIiV3IjpmdW5jdGlvbihraSl7cmV0dXJuIGtpLnRtX3dkYXl9LCIlVyI6ZnVuY3Rpb24oa2kpe3JldHVybiBZaShNYXRoLmZsb29yKChraS50bV95ZGF5KzctKGtpLnRtX3dkYXkrNiklNykvNyksMil9LCIleSI6ZnVu'@; put 'Y3Rpb24oa2kpe3JldHVybihraS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJVkiOmZ1bmN0aW9uKGtpKXtyZXR1cm4ga2kudG1feWVhcisxOTAwfSwiJXoiOmZ1bmN0aW9uKGtpKXt2YXIgam89a2kudG1fZ210b2ZmO3JldHVybihqbz49MD8iKyI6Ii0iKSsoIjAw'@; put 'MDAiKyhqbz0oam89TWF0aC5hYnMoam8pLzYwKS82MCoxMDAram8lNjApKS5zbGljZSgtNCl9LCIlWiI6ZnVuY3Rpb24oa2kpe3JldHVybiBraS50bV96b25lfSwiJSUiOmZ1bmN0aW9uKCl7cmV0dXJuIiUifX07Zm9yKHZhciBnbyBpbiBscj1sci5yZXBsYWNlKC8lJS9nLCJcMFwwIiksUXUp'@; put 'bHIuaW5jbHVkZXMoZ28pJiYobHI9bHIucmVwbGFjZShuZXcgUmVnRXhwKGdvLCJnIiksUXVbZ29dKHNyKSkpO3ZhciBjbD1Hbyhscj1sci5yZXBsYWNlKC9cMFwwL2csIiUiKSwhMSk7cmV0dXJuIGNsLmxlbmd0aD5ndD8wOihldC5zZXQoY2wsc3QpLGNsLmxlbmd0aC0xKX0oc3QsZ3QsUnQs'@; put 'dG4pfX07KGZ1bmN0aW9uKCl7dmFyIHN0PXthOkp1fTtmdW5jdGlvbiBndCh3bixzcil7ZC5hc209d24uZXhwb3J0cyxJaSgocGU9ZC5hc20ueikuYnVmZmVyKSxRbi51bnNoaWZ0KGQuYXNtLkEpLGNuKCl9ZnVuY3Rpb24gUnQod24pe2d0KHduLmluc3RhbmNlKX1mdW5jdGlvbiB0bih3bil7'@; put 'cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gUHIoc3Qpe3RyeXtpZihzdD09ZnImJmgpcmV0dXJuIG5ldyBVaW50OEFycmF5KGgpO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1jYXRj'@; put 'aChndCl7RW4oZ3QpfX0oZnIpfSkudGhlbihmdW5jdGlvbihzcil7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHNyLHN0KX0pLnRoZW4oZnVuY3Rpb24oc3Ipe3JldHVybiBzcn0pLnRoZW4od24sZnVuY3Rpb24oc3Ipe2llKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFy'@; put 'ZSB3YXNtOiAiK3NyKSxFbihzcil9KX1pZihPdCgpLGQuaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gZC5pbnN0YW50aWF0ZVdhc20oc3QsZ3QpfWNhdGNoKHduKXtpZSgiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIit3biksYSh3bil9KGh8'@; put 'fCJmdW5jdGlvbiIhPXR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZ3x8UG4oZnIpfHxmdW5jdGlvbiBKbihzdCl7cmV0dXJuIHN0LnN0YXJ0c1dpdGgoImZpbGU6Ly8iKX0oZnIpfHwiZnVuY3Rpb24iIT10eXBlb2YgZmV0Y2g/dG4oUnQpOmZldGNoKGZyLHtjcmVkZW50'@; put 'aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih3bil7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKHduLHN0KS50aGVuKFJ0LGZ1bmN0aW9uKHNyKXtyZXR1cm4gaWUoIndhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAiK3NyKSxpZSgiZmFsbGlu'@; put 'ZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSx0bihSdCl9KX0pKS5jYXRjaChhKX0pKCksZC5fX193YXNtX2NhbGxfY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm4oZC5fX193YXNtX2NhbGxfY3RvcnM9ZC5hc20uQSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgTTE9ZC5f'@; put 'ZW1zY3JpcHRlbl9iaW5kX1ZvaWRQdHJfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihNMT1kLl9lbXNjcmlwdGVuX2JpbmRfVm9pZFB0cl9fX2Rlc3Ryb3lfX18wPWQuYXNtLkIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTXU9ZC5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X0dy'@; put 'YXBodml6XzI9ZnVuY3Rpb24oKXtyZXR1cm4oTXU9ZC5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X0dyYXBodml6XzI9ZC5hc20uQykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxhdT1kLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfdmVyc2lvbl8wPWZ1bmN0aW9uKCl7cmV0dXJuKGF1PWQu'@; put 'X2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel92ZXJzaW9uXzA9ZC5hc20uRCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx4MT1kLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfbGFzdEVycm9yXzA9ZnVuY3Rpb24oKXtyZXR1cm4oeDE9ZC5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X2xhc3RF'@; put 'cnJvcl8wPWQuYXNtLkUpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRTI9ZC5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X2NyZWF0ZUZpbGVfMj1mdW5jdGlvbigpe3JldHVybihFMj1kLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfY3JlYXRlRmlsZV8yPWQuYXNtLkYpLmFwcGx5KG51bGws'@; put 'YXJndW1lbnRzKX0sJDc9ZC5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X2xhc3RSZXN1bHRfMD1mdW5jdGlvbigpe3JldHVybigkNz1kLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfbGFzdFJlc3VsdF8wPWQuYXNtLkcpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZDQ9ZC5fZW1zY3JpcHRl'@; put 'bl9iaW5kX0dyYXBodml6X2xheW91dF8zPWZ1bmN0aW9uKCl7cmV0dXJuKGQ0PWQuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9sYXlvdXRfMz1kLmFzbS5IKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFN3PWQuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9fX2Rlc3Ryb3lfX18wPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuKFN3PWQuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9fX2Rlc3Ryb3lfX18wPWQuYXNtLkkpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZC5fZnJlZT1mdW5jdGlvbigpe3JldHVybihkLl9mcmVlPWQuYXNtLkspLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZC5fbWFsbG9j'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuKGQuX21hbGxvYz1kLmFzbS5MKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBlbSxNdz1kLl9fX2Vycm5vX2xvY2F0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuKE13PWQuX19fZXJybm9fbG9jYXRpb249ZC5hc20uTSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx4'@; put 'dz1kLl9lbXNjcmlwdGVuX2J1aWx0aW5fbWVtYWxpZ249ZnVuY3Rpb24oKXtyZXR1cm4oeHc9ZC5fZW1zY3JpcHRlbl9idWlsdGluX21lbWFsaWduPWQuYXNtLk4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdG09ZC5fX19jeGFfaXNfcG9pbnRlcl90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuKHRt'@; put 'PWQuX19fY3hhX2lzX3BvaW50ZXJfdHlwZT1kLmFzbS5PKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIEV3KHN0KXtmdW5jdGlvbiBndCgpe2VtfHwoZW09ITAsZC5jYWxsZWRSdW49ITAsRWV8fChkLm5vRlNJbml0fHxBdC5pbml0LmluaXRpYWxpemVkfHxBdC5pbml0KCksQXQu'@; put 'aWdub3JlUGVybWlzc2lvbnM9ITEsWXIoUW4pLGwoZCksZC5vblJ1bnRpbWVJbml0aWFsaXplZCYmZC5vblJ1bnRpbWVJbml0aWFsaXplZCgpLGZ1bmN0aW9uKCl7aWYoZC5wb3N0UnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgZC5wb3N0UnVuJiYoZC5wb3N0UnVuPVtkLnBvc3RSdW5dKTtk'@; put 'LnBvc3RSdW4ubGVuZ3RoOylSdD1kLnBvc3RSdW4uc2hpZnQoKSxNci51bnNoaWZ0KFJ0KTt2YXIgUnQ7WXIoTXIpfSgpKSl9X3I+MHx8KGZ1bmN0aW9uKCl7aWYoZC5wcmVSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBkLnByZVJ1biYmKGQucHJlUnVuPVtkLnByZVJ1bl0pO2QucHJlUnVu'@; put 'Lmxlbmd0aDspUnQ9ZC5wcmVSdW4uc2hpZnQoKSxGci51bnNoaWZ0KFJ0KTt2YXIgUnQ7WXIoRnIpfSgpLF9yPjB8fChkLnNldFN0YXR1cz8oZC5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2Quc2V0U3RhdHVzKCIi'@; put 'KX0sMSksZ3QoKX0sMSkpOmd0KCkpKX1pZihkLl9fX3N0YXJ0X2VtX2pzPTE3NTgyOCxkLl9fX3N0b3BfZW1fanM9MTc1OTI2LHZ0PWZ1bmN0aW9uIHN0KCl7ZW18fEV3KCksZW18fCh2dD1zdCl9LGQucHJlSW5pdClmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGQucHJlSW5pdCYmKGQucHJlSW5p'@; put 'dD1bZC5wcmVJbml0XSk7ZC5wcmVJbml0Lmxlbmd0aD4wOylkLnByZUluaXQucG9wKCkoKTtmdW5jdGlvbiBNZCgpe31mdW5jdGlvbiBOVChzdCl7cmV0dXJuKHN0fHxNZCkuX19jYWNoZV9ffWZ1bmN0aW9uIHNaKHN0LGd0KXt2YXIgUnQ9TlQoZ3QpLHRuPVJ0W3N0XTtyZXR1cm4gdG58fCgo'@; put 'dG49T2JqZWN0LmNyZWF0ZSgoZ3R8fE1kKS5wcm90b3R5cGUpKS5wdHI9c3QsUnRbc3RdPXRuKX1FdygpLChNZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShNZC5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1NZCxNZC5wcm90b3R5cGUuX19jbGFzc19fPU1kLE1kLl9fY2FjaGVfXz17fSxkLldy'@; put 'YXBwZXJPYmplY3Q9TWQsZC5nZXRDYWNoZT1OVCxkLndyYXBQb2ludGVyPXNaLGQuY2FzdE9iamVjdD1mdW5jdGlvbihzdCxndCl7cmV0dXJuIHNaKHN0LnB0cixndCl9LGQuTlVMTD1zWigwKSxkLmRlc3Ryb3k9ZnVuY3Rpb24oc3Qpe2lmKCFzdC5fX2Rlc3Ryb3lfXyl0aHJvdyJFcnJvcjog'@; put 'Q2Fubm90IGRlc3Ryb3kgb2JqZWN0LiAoRGlkIHlvdSBjcmVhdGUgaXQgeW91cnNlbGY/KSI7c3QuX19kZXN0cm95X18oKSxkZWxldGUgTlQoc3QuX19jbGFzc19fKVtzdC5wdHJdfSxkLmNvbXBhcmU9ZnVuY3Rpb24oc3QsZ3Qpe3JldHVybiBzdC5wdHI9PT1ndC5wdHJ9LGQuZ2V0UG9pbnRl'@; put 'cj1mdW5jdGlvbihzdCl7cmV0dXJuIHN0LnB0cn0sZC5nZXRDbGFzcz1mdW5jdGlvbihzdCl7cmV0dXJuIHN0Ll9fY2xhc3NfX307dmFyIE9hPXtidWZmZXI6MCxzaXplOjAscG9zOjAsdGVtcHM6W10sbmVlZGVkOjAscHJlcGFyZTpmdW5jdGlvbigpe2lmKE9hLm5lZWRlZCl7Zm9yKHZhciBz'@; put 'dD0wO3N0PE9hLnRlbXBzLmxlbmd0aDtzdCsrKWQuX2ZyZWUoT2EudGVtcHNbc3RdKTtPYS50ZW1wcy5sZW5ndGg9MCxkLl9mcmVlKE9hLmJ1ZmZlciksT2EuYnVmZmVyPTAsT2Euc2l6ZSs9T2EubmVlZGVkLE9hLm5lZWRlZD0wfU9hLmJ1ZmZlcnx8KE9hLnNpemUrPTEyOCxPYS5idWZmZXI9'@; put 'ZC5fbWFsbG9jKE9hLnNpemUpLFplKE9hLmJ1ZmZlcikpLE9hLnBvcz0wfSxhbGxvYzpmdW5jdGlvbihzdCxndCl7WmUoT2EuYnVmZmVyKTt2YXIgUnQsd249c3QubGVuZ3RoKmd0LkJZVEVTX1BFUl9FTEVNRU5UO3JldHVybiBPYS5wb3MrKHduPXduKzcmLTgpPj1PYS5zaXplPyhaZSh3bj4w'@; put 'KSxPYS5uZWVkZWQrPXduLFJ0PWQuX21hbGxvYyh3biksT2EudGVtcHMucHVzaChSdCkpOihSdD1PYS5idWZmZXIrT2EucG9zLE9hLnBvcys9d24pLFJ0fSxjb3B5OmZ1bmN0aW9uKHN0LGd0LFJ0KXtzd2l0Y2goUnQ+Pj49MCxndC5CWVRFU19QRVJfRUxFTUVOVCl7Y2FzZSAyOlJ0Pj4+PTE7'@; put 'YnJlYWs7Y2FzZSA0OlJ0Pj4+PTI7YnJlYWs7Y2FzZSA4OlJ0Pj4+PTN9Zm9yKHZhciB0bj0wO3RuPHN0Lmxlbmd0aDt0bisrKWd0W1J0K3RuXT1zdFt0bl19fTtmdW5jdGlvbiBrdyhzdCl7aWYoInN0cmluZyI9PXR5cGVvZiBzdCl7dmFyIGd0PUdvKHN0KSxSdD1PYS5hbGxvYyhndCxldCk7'@; put 'cmV0dXJuIE9hLmNvcHkoZ3QsZXQsUnQpLFJ0fXJldHVybiBzdH1mdW5jdGlvbiBvMygpe3Rocm93ImNhbm5vdCBjb25zdHJ1Y3QgYSBWb2lkUHRyLCBubyBjb25zdHJ1Y3RvciBpbiBJREwifWZ1bmN0aW9uIHZjKHN0LGd0KXtzdCYmIm9iamVjdCI9PXR5cGVvZiBzdCYmKHN0PXN0LnB0ciks'@; put 'Z3QmJiJvYmplY3QiPT10eXBlb2YgZ3QmJihndD1ndC5wdHIpLHRoaXMucHRyPU11KHN0LGd0KSxOVCh2YylbdGhpcy5wdHJdPXRoaXN9cmV0dXJuKG8zLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKE1kLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPW8zLG8zLnByb3RvdHlwZS5fX2NsYXNzX189'@; put 'bzMsbzMuX19jYWNoZV9fPXt9LGQuVm9pZFB0cj1vMyxvMy5wcm90b3R5cGUuX19kZXN0cm95X189bzMucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7TTEodGhpcy5wdHIpfSwodmMucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoTWQucHJvdG90eXBlKSkuY29uc3RydWN0b3I9dmMs'@; put 'dmMucHJvdG90eXBlLl9fY2xhc3NfXz12Yyx2Yy5fX2NhY2hlX189e30sZC5HcmFwaHZpej12Yyx2Yy5wcm90b3R5cGUudmVyc2lvbj12Yy5wcm90b3R5cGUudmVyc2lvbj1mdW5jdGlvbigpe3JldHVybiBjcihhdSh0aGlzLnB0cikpfSx2Yy5wcm90b3R5cGUubGFzdEVycm9yPXZjLnByb3Rv'@; put 'dHlwZS5sYXN0RXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gY3IoeDEodGhpcy5wdHIpKX0sdmMucHJvdG90eXBlLmNyZWF0ZUZpbGU9dmMucHJvdG90eXBlLmNyZWF0ZUZpbGU9ZnVuY3Rpb24oc3QsZ3Qpe3ZhciBSdD10aGlzLnB0cjtPYS5wcmVwYXJlKCksc3Q9c3QmJiJvYmplY3QiPT10eXBl'@; put 'b2Ygc3Q/c3QucHRyOmt3KHN0KSxndD1ndCYmIm9iamVjdCI9PXR5cGVvZiBndD9ndC5wdHI6a3coZ3QpLEUyKFJ0LHN0LGd0KX0sdmMucHJvdG90eXBlLmxhc3RSZXN1bHQ9dmMucHJvdG90eXBlLmxhc3RSZXN1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gY3IoJDcodGhpcy5wdHIpKX0sdmMucHJv'@; put 'dG90eXBlLmxheW91dD12Yy5wcm90b3R5cGUubGF5b3V0PWZ1bmN0aW9uKHN0LGd0LFJ0KXt2YXIgdG49dGhpcy5wdHI7cmV0dXJuIE9hLnByZXBhcmUoKSxzdD1zdCYmIm9iamVjdCI9PXR5cGVvZiBzdD9zdC5wdHI6a3coc3QpLGd0PWd0JiYib2JqZWN0Ij09dHlwZW9mIGd0P2d0LnB0cjpr'@; put 'dyhndCksUnQ9UnQmJiJvYmplY3QiPT10eXBlb2YgUnQ/UnQucHRyOmt3KFJ0KSxjcihkNCh0bixzdCxndCxSdCkpfSx2Yy5wcm90b3R5cGUuX19kZXN0cm95X189dmMucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7U3codGhpcy5wdHIpfSxjLnJlYWR5fSk7bGV0IEN3LFhVO2Z1'@; put 'bmN0aW9uIFBKZShjKXtyZXR1cm57cGF0aDpjLnBhdGgsZGF0YTpgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+XG48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFw'@; put 'aGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPlxuPHN2ZyB3aWR0aD0iJHtjLndpZHRofSIgaGVpZ2h0PSIke2MuaGVpZ2h0fSI+PC9zdmc+YH19Y2xhc3MgRFR7Y29uc3RydWN0b3IobCl7dGhpcy5fbW9kdWxlPWx9c3RhdGljIGxvYWQoKXtyZXR1cm4oWFV8fChYVT1mdW5jdGlvbiBSSmUo'@; put 'Yyl7cmV0dXJuIGZ1bmN0aW9uIExKZShjLGwpe2Zvcih2YXIgYT0wLGQ9W10saD0rIWwsZj0wO2MubGVuZ3RoOyl7dmFyIF89TUplKGMsaHx8bCk7aWYoIm9iamVjdCI9PXR5cGVvZiBfKXtmb3IoaD8obD1udWxsLF8udy5sZW5ndGg9PV8udSYmKGQucHVzaChsPV8udyksZis9Xy51KSk6KGQu'@; put 'cHVzaChsKSxfLmU9MCk7IV8ubDspe3ZhciBUPUlKZShjLF8sbCk7VHx8bWMoNSksbD9fLmU9Xy55OihkLnB1c2goVCksZis9VC5sZW5ndGgsQ0plKF8udywwLFQubGVuZ3RoKSxfLncuc2V0KFQsXy53Lmxlbmd0aC1ULmxlbmd0aCkpfWE9Xy5iKzQqXy5jfWVsc2UgYT1fO2M9Yy5zdWJhcnJh'@; put 'eShhKX1yZXR1cm4gZnVuY3Rpb24oVyxpZSl7aWYoMT09Vy5sZW5ndGgpcmV0dXJuIFdbMF07Zm9yKHZhciBwZT1uZXcgZWMoaWUpLHdlPTAsRWU9MDt3ZTxXLmxlbmd0aDsrK3dlKXt2YXIgWmU9V1t3ZV07cGUuc2V0KFplLEVlKSxFZSs9WmUubGVuZ3RofXJldHVybiBwZX0oZCxmKX0oZnVu'@; put 'Y3Rpb24oYSl7Y29uc3QgZD1hLmxlbmd0aCxoPVtdO2xldCBmPTAsXz0wLFQ9LTE7Zm9yKGxldCBXPTA7VzxkO1crKyl7Y29uc3QgaWU9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5ISMkJSYoKSorLC4vOjs8PT4/QFtdXl9g'@; put 'e3x9fiInLmluZGV4T2YoYVtXXSk7aWYoLTEhPT1pZSlpZihUPDApVD1pZTtlbHNle1QrPTkxKmllLGZ8PVQ8PF8sXys9KDgxOTEmVCk+ODg/MTM6MTQ7ZG97aC5wdXNoKDI1NSZmKSxmPj49OCxfLT04fXdoaWxlKF8+Nyk7VD0tMX19cmV0dXJuIFQ+LTEmJmgucHVzaCgyNTUmKGZ8VDw8Xykp'@; put 'LG5ldyBVaW50OEFycmF5KGgpfShjKSl9KCd2NyNhU1hqOl1DWzkwPnlLbWE6S2AyaHR6OHsvWy4lWStOQUU+aXJVLz9fSmheTWl9ViJ+Znl6UyEoMXk2JVNdYnFoRmh3Pn5+cnVAXlBhYzd+TjRuOUJrT2pjWj1GOE4kd0Iic11pbl0lVEdePUpENExiZ04sVys2YFU3KilwaiQyLkddPHAwfUA2'@; put 'dzFYPGl7Lmc8NzJ2dV0yK1UvRHsvY352Q3N0PXpjUXJvcF43STZiOWRNenxba1ohcyJBR3lURSV5Mzw0RFtAP2Z8fCRTYmZ1JktuVVhQOSFGZzU9YForKUFKY1o8K3hoL2I8TER3W1hyZEwhWVoofmMyQ2Z4enFHJV94K0t6P0ZEXj04RWV6R3doP11sODhLc0NTJjpWKC8ybncqKGFdVTtaeXdl'@; put 'I1VSfFR1OTUsQm9fImVXcUNBUWIkXk1DVDYkKmJkNWdWZ3VYT104Uml1ZUBpZSFsPEZhazshWyxwakZjfThne3toWSxbTDRxMSt5TkNlKGlkMClSdFZEIVtEPkJ8WFcpMlM/MHJIPUZ4VUFXSndpRSJ6dVpmMClSQn4yS2JlP1JLRkJlM3g7N0xST31mOzU5Z3EvWVcpSFBnVmF0a29DZ1JZQl1x'@; put 'eUJQNDR+bz9tQ0BCWnIlTUxZVDg+dUNRYFF5JW09TjgzSnhXMlRYQCJdYWhedHMhTWY1Lzw5YkVNQWtZciwjQD94SFthTTkqbU08TU8qI15HZ21gdldXeXREM3Q8UXlSdXh8SWVXKTpXTXRfd29tOHZHUFBSVGN6bUd2Jnszdmx7eldtfT1Ybz1JOU89VWo/bHttfjxVbS5SR15RZ2VMVzw5RkZG'@; put 'bTpVVSlrdFhLSyFlRllJZ10rVlVzcyJZSFRWZ3A4cyxkS244cnk4JW84Ynk4JVFodGczbEx4NzhKWE9JUHN9N3Refl50diF7emBAN2N7XVAvbn52VFRCNmVrOHBJIyZNKmRSI20zTlRVZGU9KiEybC5SNUtXZkgxMlZGTGIkYXk6akRJcDxnb2I8S0BgV2Z0ZHQ7Wy5yNTdIMUZzNTc7JTlMb2V3'@; put 'QyRHL1AlTl5IbHZ1dDlyOE0iNHxAdWprVXQ2QixeeiIvNGs/bCZnVktgI0F4YFpoOHZOR29MeFthY3U0JjpFV1U5Lkp4SVRBKmdDP2M4MkpLakRMaFhGVTFDVVcqMnYzbEFhZjkma099cyE+TH0xIUV+citaX2ddNU9QaS9JeEBGO2VjPFRaLHJ+ImR+NEliTTw7LDVRaT16UUJscy81JmVeKGNb'@; put 'VTttVWVQNGdJUkpxJnB5VG9CVGckMnFwfnYqRmVGb3JnWis0dkxPb3BvdE0rbDNpayglKkREeWtLMzAvYStaWy58ayMvZkw4MFMuXkFaVCE4ZTF1LlhlfVcjNmZyJlFPdSxCeGJAKHlvKjMpQGdgXyslLz9pUHpSRl4jeFliVkx7QEg8SClMREUyVyouO00xdEUham5jLktAZV9GLktaXlAoaW9n'@; put 'SSE2VD5Sfjd+M1Z9TDB8Qkg+I0xpSmNhUU5qKlk4VWJeNG9xcF0mP3NfO2sqPk4vM3htVmhwOHxDMXNaT29aOFVvOHdwOWx4P0okLCFtPkIkLylCOTRKSDMwL2JmLnByPDxuW1s/dnJiWnM2K0olYE9qUk1HdnlmQDosSWVRcllIeUgzRkEyXUYvTEt1fUMvSVFjJUYiSWkrQWtBU2VQaTtae1lo'@; put 'VCt7bVp9PCxQfFk0bD5BMmRfLCZTX3Q5bD8yQ1EjWXBjU2VNQVBBOEhoWjE7XmFnP1JJTiZLWEpqSXhIUGRtd1lLcHUoL31iWl8sJnhdSmorOX0me0RBdUhyOEViRXg6az1BOCVhIWYiYjY+NDpffjVkZWBFdF97S3l9SUp8STxYcFt9ITkoOWE3Yl9CZ34mezxiNnJrUDxsSml4I00seFRHWj4m'@; put 'MXUval0wdzBrNUJidllJTkppX08hQjt4KShaOTc7KjtzPnxrPjEzV1tkJjkyLjl4clQrMyQkdipyRjhBZWBAQjtNOWhdUEZpKy44U0ZVZ1hpVCRWUWtwTiFGPEIuTFJteTxAfXAuQ08jNVZGLGczR1M6e3c6dSxqcFYkRFEsXWQhI115czxpN2dMM3Uxb2JSaWMjYVtdYCV1MC5LQGhlQjgyJkNl'@; put 'I10rO1U3RiNwe3EkOyU2fl1gczJ3fGo3R3BFVjk9U3hxXkZ6RTl2VnhqRnJgM1lnWHxxZnBFZzoqcjQ1cFslLkIobFd0c09tZWtxL2V4QlYrYkQqT3xOKUkyK1lPREgpTHlRdWxTeTJscEBWPlUmemY4bGl8JiFvLlMmfTAvcXc1O245VXlOOV89QFMjeCMvSS81cXE1VG03ZG9oNDBQYXk1Rj91'@; put 'Skc6SlRRcnhKZlg/d3REI04hWUhMe1JKcD5HM2h4Smk1QHRXWF9SeDt9LCpFIy8xMGlNQ28zXTNOJXJvUDBieEJXcnsoQDc/XWA5L1k5bG16emB7M0c5Z3B3OjlNRVssWCpZdHhrcE9dcSRWOz96emBrSnlVRzJDXjxfMlZaLF08MV8hYHpDcDs3NCxOKiJVcmwiR1QyZjU6N0VFZmR7JWwmOzAz'@; put 'U0h5dilbZyN6bUc3Jk5LW0E3Z1p8aTpmU3RCcURPKU1XLk16WmMibDkuNiFiU0FPSCpZVV1GU0t7WSRVRCM0fjpJQUhdMms1SWxENU1xd0NUWSE5K2xYPXN8M1MvV0Jtfng8IWxNSk58OVZSX1kvNltvKDhgS2t2P2tlRmk9JS43cFQjeDJIVEh2ZmA9NTpHXSpAW2cuTzZAdCJAZTw5SmdIbi56'@; put 'QnR4bU1sU0I7enkhKV5gc25zX2F7elBfKisqQClxOSpIYFc3TGtWfTc1UG5mQlt6Jj9DXktrUnIuYihiJVBEQThWK0FJLjY6IyFEQDY4fV9GamsmcGhXc1RJMkNeWGA3Oz1FeTkpYHxOUVtyJFRmRlcqVGxvQj1JXjZdS2tMJCg+MiM+JCE5X3lDJj8mTH4qZyYlaH12eHs4MklyZTs3JUMqYjgl'@; put 'bmR3ZXNURThSVU01USMyUHA3JS9AZU1kTnc1KWw3SHB5OUhwKDZhPHw9NFNgWSpSYDEodGIlbSZfamYkWF5gRitic1QkTzY9fm1yKFU3PGF1Q2kvbktAZWliQ1NvRUJXPGlaPlcjUnxLc3k7OWk7cERPXV1KVDsmdik2ZFpfQTBkPngySjhYOF8xVi5nME04ViMoUkUzTTMwL1RfS09+IyZgXWAp'@; put 'JDRseD8rOCtJVUNMSzN9alZ2QHk1VDFWTyxdcWxseF9yfnJPJC50THJ3NTZicHBDSjpMLCVKbTxqcDIiQEYqTXliaDlNKW0xQnRjT0RuWVQ9JjpRWVZaYkg1SUBKWGxjYXIzR0hCSndDZD9TYlVzLyl5KjlNJkhWZVUmUk9lXWoyYzJvMEZ6Q2ZtK0FrQVNYb2Q5L0dJe2M9RklZN2JeSH1OZ3l4'@; put 'ISlUeUpvUkN4LmRUS2N2VGhkLnRrc1lWMiM5WF9DYDZeLDxjeDFxO3BvfHsmVFlpb1NPTXlZIm47PUZHTD07cURlUndDXTdVblcxWSZwRzNGR3JPTEhWXTA0TVcjNU1LX2Q4bChjRi45XiRGXy9zIzJ7cCM6Y0t2aUYyXyJAcFI/fExvLzI1WWtHPDt3M207RipPfDpmZXF+dmhoYXphLDY0SXEh'@; put 'bS99RklmTTtYZShfPXkmZ0Y5JCM6IzIjbTNPXVFLXypwRFY2XiROe0BJcStxOzUkL2cqeiYsNnNjRFkoa1dZaF8kSC5KcmxZMT5MYj5lflU7TU97VTM8TUhESmFyVVRLPnN3QDI1PzYuQV47KSZueG9halY2UWg8UzhsYExZcXoyVCN5RHt9ejwiZVs1c2M4b1NrK1Q4YGdPfSNecXwka2hic3RZ'@; put 'IilGU0w9Z2R0WXJbQjJtdlVzIm1WeWtJb1IkVnhLeXNib1s/NU1dMSJEVmV6OFdbUm15MzRIRXxMNHMvfn1AOj1xa041RWhpVl1ndiQ8SyNbOyEwU2xrKG48R3E0ZmouPGRVRFglZyYyMytqNXpnfTZwOSVISmsjVC5qPEosPXxpYjw1YTt3JEpuJU57QHV5cCt2fGhLaX0/LFIpIUM4M2Asdj43'@; put 'XW09LHlzM1FscTRXKzU9WD0vMSguSmZgNjFySFQ7NjFqKUwpKHJid0RIZzFtPS45Lip+SDlDa3RATz5hPl02ZWsyYUI1MXp5OzNjWCVGNERuI2BOSGRBbmVxTHZ5W1cuNnVENy8mOjlxUHZ0SjkmIll5Zkd1RlZ7U3kxen1kRVtTOXNbOltuTzhzdHg1dWg3ODk3KEJzNS9YOy85eSQ5NCZ5byQy'@; put 'dz5iKSEiRiUzXSVkZj9eS0FQe1hXfUosWC9KVE5nMFUqOTUhSV49YFNaW0hqMmEldGl3KDRCciNofFo+JHA4bDhDZzdzcTV2eE84OEZyPDxmcThDY3xPPkRXMS9FT2s+PS81clFrS1t0S3F9JGA1MCNdVGtWPH5CTWBWfXc+JExWa3daVlpUZj17dEs+PCRnUDJgLFlye0B3dVRUdExSRC9deyg0'@; put 'WndDeDovRyZ3eksiVUZ7LylvYHBuRkRvXmg5V09UNEFvKjpZU0BwPyNpSmo8KE5xQ1Y7ZE4lTTI7UnhLb2F2aT14Z0J6UzRKMXFaInBIXSY7Ok01ZUtRJWdjZio5KlM+ZE9JJip3I2M6L0dUMk99VTBHOW9ZcGhtQjFELHJ8d2svTitKaVAuKz9GIXBlbEQxW0dqJlh2OTluZy4yIzVlOmIyRiR7'@; put 'e1U+MVNqWFZpSlsicnJUVH09b2BxWlEjYGg/PTJuUkM0OTk+cn1fQDhzKTYsRE5WSXJIcygjWXJ+NENuO3E9JE5BP3VaYktgSXk9QjtsbytPfSY6dnQ6T31vcDlYKFsmYykqUzsoXWpzdntLV31PPmIqXiw1PU98NWA2eWBXbHQ/NiwyMH1iSU81STllOjdJViwraWQvfnxETylNUFsmViFNMnJA'@; put 'VSlicnRqYkshNC9CTDk/UDpzY2ZARE8/TDUjNktBeCtlYWp3QlVZdnsrdiJdVitASFs8UnQ/LixGSXE8TFk3dnhWcFdZKHUlN3dGQW0oRlkpRUc2RjpHbzR2MmtNQ207Rk1tc0NDbTh5YWJ2b31+b29VMU0hX1A6bT4xUGs6bXQrRjEkN1NNUy5ANlBWTDh8Q3AwXzIrL1koWSo5Yy9FUCtfPS98'@; put 'TTkve0s4QzVJMkB8d1YkNmErKypKe3soWSp7KHJAcXszKFBnNVp+eXtLUkRyM1VXMSRfVV9uaGElXi9mJjdDQiJ5OSt8TWtkKFpNM1pmJDklVzU9a2V1dDRzKldlXU5pZ01AO2JoNVVHSDJTU2BoeHBJYW9sJkw0ISkoI2oiMzw9VWVoJjM7P2dYJUkxeXFWbiMhPzdJSlQpamhMQkxgQWMpO3Yv'@; put 'UnEsLHlZPmQ3bXAuSUFIW3guWzFGKCYqYkojX3gmVTdJQEpsSXJaUTN5PSQ5ezdJOWNHbjA5dyJWczs3OjYwJDcwMyQ6KH4zaTteYH19JnkyY19jfVpeWEJ6fTspX2I6RUY+Vioma1QjXkp9QFRbRjd9PXwsJVU6e1pSXy9RSiI8TVV2bW4oaXs9fCp7cWxILHxWS1Z9YiJHQT08K0E1aD8vQyRC'@; put 'cnNsPUtRMXh+elJfTyM+Tjw8aUZuRH04UEFLflcvb2ddfEZja0Zse0t5Tmk7ekcuLio6X1QrNU5SfEtRPGltfWcuPGVfK1A+dnlfaXJVWSpUJnlzZW5mKkxRPmJLZSxJInxmbHVsPm52XWQhQzgzMXRIRDhqcHZbc3dnYUdaPExBZn54b1k+N25PRTdNRDhwVlArY0lmbmVtd0MzXS5+ck0mQ0Yr'@; put 'I3JAQ2VoRzkuQktGQGtGNk5qPC8zdCsyQENhMGhnLEFdYDpVMHZsUWBlVTUmPXlQZXc9fFBxXkpudipPYGkrTEVxajF9ZjtnOlBDIXJ+QDImQFBESVEwI2R2Y204ITl1RFhbNnB9Yi5JRE9udmhXazh7KjM1WmJKKGw3Zz5qamxySjlTXiouOGhHP0dyIzJzVHcscmgjJjRqeG4/bHlgNj9nLm0h'@; put 'Tl92a2U6aV8xcDpVQzlkUUd5OStPUmxEaV9WPEdxVyt+YTc2ZzBYckNdS3BoSlZdcUxVPioqdnw3dm9iZTdhKVdXXl1LcHo5JnY3SURAKUJHKkY3bFd6S15LbSMuXT07OiM1NGNRI3g0L3N3YDNXOz16OjtuOEozUl82P0tnYTM7cXMmVyxvY0I5PmJLIWJoez0pcyk2c21CUG9HMlhUdkxHbyt0'@; put 'STtDRyVkNUMpaDVjdCVZNiIlWTkiJVk8aV9RfnwpYXg/NVlPKU5oPitaZEosNVlMSmhFPkkoQ1FmJHc6aFQ5WWV1SWxFeEgvWmU1WUdvR1IqVkhseldYOyIlWSwpQG8jelFeZjdeaCMvKkkudllqPnl9KDVfPD5GaW90KHUpRFcpdnBIPFhpQkM9UikwKGFoNSU1fmVQTWZZc1U6U2hNcFJtMFUs'@; put 'PVtoeCF1bztmN3FaJUx8IlhIRVA2ZSErWHgydVYwOS9GUklHT282WXtpcU8oZmQ8ZloqV0lDSFJseFVYSEIybnNMS0IwUFlrOVpoKy5XYERfUGskIUcySlFvenFnWjpXS0U3SztLQUxGenhYU0VMSy90L0laWHNNKFRbcG1PJk1tTFJDd1o9V21FUUw6Ii5JcXVQTmZQJWozREpvJnlOdSpNb0x3'@; put 'QmxNZkQrRCtrNktmRz5oVDlhNDd1T0MuRmRIbnQwRzZJdUhDZUNxc3VldXk2ZkQ0MC8qRThNOE0mOkwrS1VAXlFjI2YvVGYiaHt0UlMyOnB1aEJ0N1dTMjBeVjxyKy5jYy9GKEZuamVTUTBieGZ2MnU4YylJRHlvOzkvcXhFK21tMisxSUtGUWlUOTZZbik1ZDIrKXkhWCFIXi9WWDtpIk9fZGU1'@; put 'Vml2UFEwYXhfWTxVPGt6SUZFdUghOmF4SHZBKE9HTlJ5SSI0UnpOUiZJQ01XWFcpTG45ZGJ4WHY1Lk9HTERxeD5VZU99QzJ4XXRQekZSIklCR2RNTml3TVEwIVlkKXFhZjd4SSF4KTNPR0pSTkgzUmc1PzRbRFc6MDAmTXorN0xeQiIwYzxoWmBXIUVLTjlSSm8iOTlCSVQ4NEAkd1AjTFRaO3g6'@; put 'S2ZPS2FKb0ZmImh8InZIP09lZSowckxdQmNkSipSanRMIkJvVGskR2VxMS55RXVrSV4oLklqWkVYaUVoaixyNSEreTZYR0tQP0lZU2p4TGZDfVQwQHdnI01SIXJ0I0hkVUY9YFtqWltMcEMuVCFpUWp6TDJ2R0taW11hJHlhdW1LR2s4ODUhV3RhT1E2OTV8eV1BYGMoemVaMSJSSiVkOXl8Qilm'@; put 'ciNpWjQiVVF0JWVaNiJrUXo/bzcoTX55R0N1aFUwOXk7QjZkPTU4eTp1Ik8oZmVadSJQUGhsZVp3ImNJfW9pWnkiOEk8TTl5YEJ0VVBEK3lNQz1VOVpial9MN0NMYmBrK3lmQi9yZUd3TCxDbSI8YyFXXUlURCE1aXR+UnNVI01qdFFNZmoheWFDR1pQRGdMNUVaN1UwIXk1QnswZUclVy5HUW9m'@; put 'WlF1PlMicWZaU3VLTzxNI3k7Qn43SVkjeT9Cajk8YylXYEhjKWZaVXVFUUoqI3lHQyUoPGMrVzZJQX1mWklCWWpuNyx5LEIhODxjOldTSSJxJDV6dH5SfW8keXFDOWttT2tMOUVkKmd6ekwlRWEhITUmTEdGPjxmei9XVUt1Ji9Jd0wuRHNuUDcpeTBDUm9fa3MrbEJSXlF3PiRrWThPK3A8Y3x5'@; put 'UURCfkE4UlFBP3RIUypgW1MwUVNtNjpndU80VyVYVVBZd0xPL3c9ZnZ6WGNPRXYlRTZ3NDxJNnVIYUdYalN2N01PYHdeViJoQzorRk9FT2UjejFWNHxrQEhhYzVfUTE/RGFFZDpJQ35DNjE0WlJUYERhZzVyTHVTdzhBIX1XQ2xgJVl3TWEvdE5MK0cvN0JYX0ZuMzJ4Vi92QipZYnZoI1tXaEdQ'@; put 'KFhEUjB4QkdsbDU9UFcvNUJ2YU54RlRfXzdmczQ0RDg2PDhYL2BCV0lAIXw3Wz4rNH1EIyVJLlkvSUNHIUhiWi9TQ1FuVFBkU0dYSUpJKTFFYS9jQ21sRThNODJrKVhGS3g7ZW0ma1R1TU8lbCM8bi8oQmBvZnJkUz80QkVOM0hiJWs9dDNORCNkIzMvJFl2U2tVIzwva1d1YFRVOFIyMDRHRj9b'@; put 'SS4ma2J1IlVSfmojdmM9RjpCI1p0Y0V3PHU1ZCo1PXZjWSJPI2ZfWHR0ZWU2Oj12QkJXaHQvPkZMQ2IqRG4pRlRDUGciQ1YmQVhCSjZtfUxGP0JFXzp9NChMYEhnbUF6a0xLSSg9fEw6V2tRdj9ZN0RNN2NTRk41VCxQdC51M3BbYH1YNnRzVSJDfHZOdjxVdFp8dmRCejZpU35YIXRbVkF3fHZq'@; put 'QlN0c2NuTF1JUkR+ND9XflJvVSJMQFdRTVhqP3ZidkZaIkMmRjVFWTdNMD92NUJgMH5GcUwuR01vYFhQQjpPaiN+WEB0R210QkB2bHYwY1ZwIlhsWH5VUzIvNzdBKURiZn40SUckRF5kWUx9V1BQQG9AdmBCLCEieXRMI0oocCQ8dThOd0NDP1VbZFlMckFYSmVdYFhEQkRmKlspRlZFLnV9TEpH'@; put 'ZEUzeH1MRlh6VDpPe1hMQmQ5OldlU00wW3ZydmhsV09+dmdDTjx0L0Z3eHZRbzY6W3ZtQytbKlsrRmBFYip+NFtMRUt9Z0UwW3Z3Q1dJdi9pPX1YYkJqVC5NOVkrUmRIQzgxWiZZI2k4SS5NWXh0KlRQSXcjeUlKL3c8ZlB6QVJPRSx0NVkmaUVRVTJVWCNpeEo5ZFl4fXVYSFJ7UEghWVIpcm4m'@; put 'OlJAeStmdEd2TUkvJXlxLCRwK2owYVl2TypaTzBlWTZkWzVHMEc2Ik87dERhWDVFUSQhRGFaNVtKKzpIYSZPfDZHS1s1SDA2WXlWWERPT3F4NHV2emZPeXhDd0JkZGNZR01hY1M+KHRIYnQ7UFYvVUNMRXRnYUM2a0h1UlA3PU04YHYwQ0BeKltrNXl4Yio1ZC81WHhuKmlTSXdneGt1Tjx5cVZA'@; put 'JVdPMFcwNl19dnk7ZkNHdHg/Tk0xMH10T3d3IzhTN2x6TkkofXd5XUN3Sms+bzA4PE9IeiwjRVhlanIheHcySFdaSyNWMyxPeHBYSEBJMDA1WEkjRDhmcjxydThTRyY/LmcuSWtiaVJWJmxLKy4jOT1IR2lgRThOZUl0ZHYqc0s6KSlldn1LOEEhdTh4Nzc5MDFgd29mIWFlMXtkTywpOFUxKiNq'@; put 'KiVQaTtNTGhXbGZSZmFmQilnZVI4NWo7IUEuUXtAQH46ci9eLC9qRSIzPlModyxzZGxBS15BfDcqTVIma3lEVWp+KW9YLHU+Z3NRSVNjJXhEYU5nY2w1algsdVBKLFNnWCRNWFhfbntQWyFGbGhlYyxwfGAjNHg0Jk9uYl9WKSpvaWBuUjBJQ1hodDxpTChLfFg1OmdjUS9GJG1BUkhDPkZuJXQq'@; put 'aipUMXskVzZEbUI4d09BOGZSMEl2KmFpTyFJOX4oRmYsIzpLPSVKbUImaHRNZXdQfHRBaF5tbyxvZUJQRH1WZXZdOmpre1VtYXB9LH04TFBJUD5pQUlmTH5CSU91LmUmem5UTV1DVFkyTFtPLERVZT8wJU1VWH0+e0lbIVMvS3NSJXpGNFdrWXFMSHJOaSp2dEF4ZG09bT1sfEFMPCxHc1NmSzE6'@; put 'Nz1sVGUmOGg7aS9PUHkoYGtuOUM7OHFZQSFLdVE/MFI4b2UmUDAxIyZuZmBUfHArdHluQmUveVVbKU9kdUdleDhNNjwkRXtVWEM4LkNCMmRpcCtbZDtLIm0yJGgibVpgPiwmIUwobGFwNUYwImdYLmlOdExULnEsSzlsMEJpRmJEPVo8Q21Gcm80M0NlbTR6OERXUV9YXVhsKURDOEpQTFdlPSVd'@; put 'WGVNdDRHczg4OG5BIXV8UX1DeCNAUC8mSER0SFtXZGNNP0MiYj5ASlk0LiZyNDFfJVlAfUlJOG1BdjlhfFl7XW5TX1M/W3hyO1AoZlhlVF97dDskeChMQUI4QUFrNlBnQjg6Z1I3Ond8OlhOWHQ6SDBlS1JsZ3ZdLyExSnttfDZGIXIqeGdfUEVXZ3R9JDhpR3ZQUixqUDcrdls8ZT1vLFJYX14q'@; put 'TFB2NVluTDssYn02IUshKiNGNGN7TUNvZjokYWE4Y3gwayFgUGRnIjZgJUZmJEw0KX1kVz5qUkR2I0V+cHdGZysxOmk0eCl+KURYLiRCaSRDP1dAQkg6d24/e1hlWSl5YSIiL2xbPF4hfHRjYz9fPFNFdCNIQHxJQUV7Sm8lUC8hez14JW98Rz1zeE07NWtHQkdCfSRNNiN0PSt7IlZSdWE8Qysj'@; put 'KldheD5MbmZRdiFEPSl+N0haRHBGVzZ1VVh8RDtERCJpO0F2I0R6SFVRfGo5cjElTTlBZWxQezZ0WCZnNDFOLkllS2RmO3FtfDp5SSthREhwdUxpOWFqMGgkLiEiOmlqbUo7SGcmMyRvc3BMZT0saVNmc3RDZjFbb0JFMEhdSnV3dSxPTnZaKz8oVHM/QWxCeE9CUFJyPWF7UDQpKUZCV2hMWyFz'@; put 'YXJPK1MraEFJQ3RiQWcmd2tyaUI+fkQ9ODI5KkBdUk82Oz1dQjd1Qjh+N1cpcWdXbDRIc0hXKSVMZnRzTFhJbUspPFA2JSh5ckwhLGkxWmAlOis8KUIoXjhSQF1CRClqezQhbmZFRVB7aGtZfHwzUF51UC43T1VeOTNMPE1OcEppfDYoU2NEMGFVXyReLiZqRm91ZVIhV1F0cnRXXXtmZSxYQlA7'@; put 'dSQ3KkZ3VSlRdnIrd2dGZUg6PCZoUmE8R0E7dmJCJGRpYjI7I1p1SVlhPmhAI3ZGSG1FXiNxfldnI0ddRkN5NzZ1PlpRO2ZSRGVWOExXfSNeRlQoRiRfJWZeV0kzKXlaQVBKN2d1K1csO3x0NElocHYoLF91eTA/ZE1qOWo4eHJxfTxZKlZFc05ZWVZGYF06dV9Ncl5IQDVtTDphQEMxfkhicyY3'@; put 'SExqNDQ2QEFHZEZWP2NdZ0JXMTMoQnlpSVFffDtZMlVlaHZ4OS4mZyZsN0dJPykxTGMmeCloImZFbkJSRGZMT0NGYyElezh7dVRKSnMhaUQlITxmNylqJls6YCVQWXtUYTBWQGZuUSxEQCZBZXxLSXNRQjtIbCUuRlgxOFJIKiwxLjE0TDdyLkZ0LDQ0fDZPfEApKndLP2h1akV7cnshI0M1NFZQ'@; put 'W3YzKVRfWGVjOFQsT3slRkheOF1KV0Y7UGNMaTRPaXlwLHMmJFYuZVVYXSlyYEtpUX0sMUBYOCwkOWJgeXIkOXA3Okg2WVc1ZUUpRG4+Yz1bT1k/eSFTV3gxentbRj1ibWhDZUdzSH06OFphTn0xTFZlQmI6UDg5aip7Nzs9TCpCbDhLU2JbTjwicUwwMytTR2VNRGpKanY3YmpKeGxOMzlMb3VN'@; put 'OEFeOkJQMjcjLygsNXplfmV5cyZhZEIjRSZlOHRmQ3JSREYrUzsje2FqSkdXN0cjRVhQbkNqSk1rIUUrU01zdztVRUtyPSJKO3kvcFFqXWNEaC8+QmFCPW8+PHNheDU8bDZkclV8WlJRa1hzWEVIPV8kV3x1SU8sL0x5V05lMCJjY2N6ajpOTE9kTlFPXnRJT3lhPWYwY3Awb3VJT10iXWcpOmBm'@; put 'Xzo8WUk1TDZ4NSlkc1VEYnJVa2Z4YTZPSHpLQCZaZWRlMzdHSUgiNUJOO1pXOEpPaWN2RDhHUGFyVV0iSU8sL2pdZHdtNC9OLDo3LjVHazxzNFN7JUQ6Wn5EZDQ+TyokcjdKMEZkeGFQI2JOMWZdW1oxWmQ7UDUuSTZWSzwoeGMiNTZhZ2MqQmk0YGRkd3tvUCNJNSwvel1pISZaYns0R2xRejY5'@; put 'NyQ4eGMsYVhhUlF6NjZhPjxhPitrPyVyN15PS2g7RjJHWmU2JT8oZzQxa31vK0pLSUMwb29sUHYyTipuYVFvc2MpRl5dQGd8RHNzS0p0K1goTH5YWmYwb0JLOHxDYTh2TmVTcHhVTy55OWc2Rzg2e2xiJFRtLk8obXNdPVhQbkh4UV1Gej9iQTVJXiYqZ3smVyhrRD1eZlVtSS9Kb0dgJlgmJkYl'@; put 'fV0mQT9jODJ0c1BLPTppRiFZVywmdEdCVXJvbDY6dm5rRVs5VFBIejZWKjh3aiVsO1JdJk9od2NJMD04TzVULzQiRVRkNDlTVUk+T3dzYWw7SCZYKmR6NS9YVy8sTkNwPEU+PSxCUF88RWhQI3luOyIodyYsTmlwaEY0X3o8WSo5S1BsQz1CKk93dyw4JjRKJlUqdTpQJWVRM3l0eTR4KyxPc2xW'@; put 'R1o8YGc2TlcxWC9zJGEvUDgxST1dQnIuZzh3Y2syRDIub0Auc1s7aWA4OSh4aTVxRHVbVEgpU1p1JG5vISVkYldWKUhbMm48YCpLUDcoOzM9PDwrfTIyfj4we31oam1veHF7VTdoayJiUihVOzJve1ZTVjk5LE52aT9vUnhoRkJVTyNOMjBVQm1USTpMPz1gI3JVJTtocFdaUFRqPEhGe3BKNyRY'@; put 'Ri57KS5lIiNXPTRtQGBMPWVraDNHPWVrX3FrXktVVDRjeyszdk4rcX0/XjxOcCF9UyQwNHIldVlBbFtHS21eMUQuPzJtbXBTW2chdytANyNoRW9aMloqYjRKLCU5Xkh8O2YuMFVhZ2Q7bDxEbVJNWm9Efjc0IUtuW2toN1ZEeDwoeXpuIjcqW3A+MV5lZXkpImRjZlYkM3RBOFBebWQ3VWIzcVFX'@; put 'eTVKOGtOQl0yRlJSQ2hATVNlO19jMDFPbmN4RTx5bSRMe05mPUY5JCVbXSl4d2osfEBuK0pFNlZrN1k3XTspPj0lWWR4JHFUR1Z9Vzs5ZFNeR3N7QFAsUWB4MyRxZD9sU1M0MTEiem1oO0BveEljbXJ2MUMoSlEsVVVBeWwmamZYPCpnPE5iVyMqRkdnXUBKP0Yqdk5yVlZTQVd8Wkx9JkdYWml2'@; put 'QSwub2tMOkdsRGFKX2VgITlMK1NMIlUkY3IxbHJ6fjxkRkpnQDAscjxAWGtSYSx9SWdAMGoscyVEfVpzfU1eTjJIR2ByVjh7cVNNamFleiprLmFtdndEW1cxamg9Oj9JN2JuQ2NrNlVTZzExTmh7IzwzajltYGdtc2YjNV5vR2s2P3UlIktDeCNHPXJQI1ZgdVNNamFlbUB9alFOdGo9O0NzV296'@; put 'M1M+fnFHUW9hZnJxa2NWajojWWtZb1grK3ssQTZCNEZLW055VFNmVVV+I057ayQ3WkUxP3ZqcDhfTDRyY303ez53ajxZZjRuWEUueEk2OXxmQWhOPDZOVHJocT9Kc0NeSH0/JVtjXkV1WVFqPUlHKn5UaCZMSTlJdCJHLl0mdyRJNHFYNzEzUXRbMiJGaEZqIjZiZV16US5MQDtVVjJ1JlhGc01N'@; put 'fEg9Nmk4eC85eUcmQTgzUnVIV19gVWM+MzIsWnlJZiN7MjZdKD5XU2V+JnhRQ21Mc1lyUi9LPUhfWUw4dipMckRmYEpJUHVuKGdCRUBEdTVAdGhpRGY2eG5dcE9LMGxnI2UocVZPOyRWSEVnOl48LFokXm9wLE1WOC99Ry5yWXVwaEdiem4hQHRfUFZ4dU5GMiE/dnlJMytFIXc1XV58Uks+RGNf'@; put 'PGliXVY/ZCtddmldbWtYKG1vUk4jUUZ0NFouK1dnKFApXnFRT2YmeXFuWGA2MihePGdFV1lmV21fVEQ9WHBtK3U4NyRMck1aX2ZEc2M2PWFYW21oOExNamoqUFVbTTM9SWVOUXshSkZUQyFncmdiU0BJJkh1Q2AqZHFpWXQ5S3d9THJ4PDldO3MvO2o+dDIqbEZ8ckchOTMxeXQkSWt2YmppeiFU'@; put 'ZH04STNwTHU2fWFHdG9PMylwWU9oVEJlQEFGNTA/X0N2MjRtamNYQnYyR3VidnRHOE9ndi5ScHIkZiNfbVA1Tnl4SSgrPzBFNlA2NlheOngue315bmdvVWQ4UXAlZklVUzQqbk9zN3BaS1BTWTU+TXAlQktaOFBEbjVhOm12S1M6Q01UJlk7WW08V09TfU9mLFR+MT5vdXBLeV9kcn1NPVtlaEdL'@; put 'WjIrfFYmQ016PWUkRkxHKGUuZXlfJWZ3aG0zKVtUMWRkbEZRfClJVjhDaztnTVBnODUhZ3I7b1NaRFs7YmtdOGdzfGRrc0AjITIuRn4/TjVpOW8uTSNZWFghSlY7N1MkdzpTUDIxPH1TdEA9N05dPGclYUVsOSFKOjE8OCJJOjE8Rl07KSE5aUpdMHVVJGxDfko5TjNMRGVkeH00P2VmN2tSfD9D'@; put 'aEVbaERLeFt8ak4iMyRNTW5YUXxDbDJ9YVorLjJ+NFlDKUFJcHNMallMV3R4ZzBMIWs2TWZ2NEJsSl1RQmxmLzE8YWlUL2FJU3tES241XWllZD95dj15NXRAaztzfD4yYzRWKUJIWWxsRys+WHY/e3Z1KEY5JFokI25weXcsQzF2OHdGWjg5ZkladEI1d05OKE1jNWY3InklTCtScmEycyE3SXpB'@; put 'bDB3KDosT2VtOztgQU9NcTV0K090PThAQkwscTV8QSU3Sk8lPz1vZ2NTPXNFPWdiTGpUUnZgXjZGI0p0NUxvSWg3WHE5RHcpQ2ZfYTF7PTFoYDZLd01bMHBqPjY/VU9zVG5QYEZQZ1RoMEJRWFF7X3dAMiouV3V4bj95dm1+eDZNRHlsSCk6T3NwYlFAMm5waVB7YTx4ZzxYKHJySz9aYkJzc34i'@; put 'QV9AdDkoJVgudTYoKFtQO3ZCL1thWjhVYjFwd0NvOUAoZSYjTU5NQ3U0cEsmZisoMHlfWUtadXVQZVZSIkVmSihXS1FIfWpPQiVWJVFMUE1udUU8KFRVZDo+Jk5CckJsPyhBXT1lKjl+KFQkUDFeOG9pM1l7IkVAW2tPflkoLjlAeXYzXkI7SSYxUEtNJnZzSmVjJkw0Z1ovVWZxWXlybjVFNSZM'@; put 'Nm9STCpobmZbR1ZlKlBbVCFGXUgsYDsxQGpDTmpURCk+TkYsWVYwMEoqN0BBM3QsSSpBUzswLmZDIjtQMXVMbVFGdTklXmRlPSpzITB8I0I4QkhXcj06cG5PSEsvVzclQkkqcU05TiFsaCtZNTB3JDhnfG8pR213UWM7ZTQqU0V6fjt7b09zMFIzQmRbYzNKRkgvNiV5Y24yXWZvXyE0JEk2aWVe'@; put 'QEVMdHIvbjJLWWNISShpSFRLLiltbHokbm1Sfn1FcTU6LiE0ST0sQjRDRVExRGMmVyF3OilGPTZORThdQHhOaExmTmx3aCtMMiVFPk5fV1o/OlVtd3VGN2RLPTdXW204X05ucS5xS0hXJDl3alAiU1UzVFZjdEU+LEIyd2FPIlNbNjouSWFFdThVITZWOVU3VTF8XWhiNTFjZD8+IX5UbHcjKiQ0'@; put 'RDFxKmk2Jmx2WHBTRk5nYUliOzk8UioqeUI7PnQvZFZhJiJxYz05SFNDPEQ2dHh1cGlFREpkQzxvJktudWIvTSprMSMkK1pWdEVPZDRtcV0zWlVabFpPfX0mNXdjZVleNyQ5M3QqaVJiVnc0T2YqZUg9WisrT3w9WkxyMWxLbDxjMzx1Qj48U0ZoL3x9JHdiNC5xb0d+emhsO1U2aWsyOkFUdWxQ'@; put 'YntOY002LklLT3VpJlgvZGNzUkNPX19BRitCVjlJKT1Hfkp2XWc9SX53SERKcnpXMkdkeEpUYWwsIi57IndOd1hUJn0lO0dZb1hWWilzU31dVy83VylCdCwzZ1R+aHNGWENdVihkOkp1V2xyUHBuWW8hQExCZW05PGMhTmM6Yi9KNjkpVHA5NnMjX3U2YyY+OmpzaE5zR3EiLmMhblNkOT1YP2tM'@; put 'M0VqOkckNGVyfU4qeFZVLnNTdj5gR2owcEttb3tTU1defEkpc1omN3B5blg9IX1gU0Rvb3hwI1JqSFhRWzJuWH1EI0YmdUVlZCxOWl5lJFJQKDQxS2djfWttSEtaWX1HYC57QTowRzVRPnRlWTtgVmIqNWRLMTtJTk8jKTxoKjxLMjQ9ZzxGeWBWazxrejJjLmtlcHhwI3hqaHAhTzVJOURJcnlK'@; put 'IllGZShHa1ZWITRddyNHbyp5XiwjXTc0KypFUW44djxkRUB2NjE5dm1taVdsVV1GaUpSY2x5eVRqRk99ZGFleG0hS0M1JEk1XUVNSD1uYV5GXUwsSSMzVVp6VD1+WjNtUmJrPFtdeUNRPil2PEM6JV1XO3JhJVVlWCo1TmJ8IiFvWCg5cEchWU89JHVaVkE8S1hsKF8rP0lQQyM0WnA5N05uZ3Yw'@; put 'TU9rPFdpfWojMnxgX216W31yNVNYWjtkUEsjIUUifH5NcDdmQE0oSFEieHh4Om5dPDpGaEBTR0VOZjBfaWNRM0p5Ymh2SVZRMEA3UnxFYWZhKmN0bCl0eTNJP0JMcWZRUld8OSlyQEZWfENWbXc/TypqcUpOJDoxSyUvVktHImI0LkhaTj1gbG19cjE5O1ZYPnZAbjdQJjBzc19Ycz43bjlGS20i'@; put 'Q3xXKiJgcjZAQjRkWFdDVjxdNGRSI1N6bTRWR2s/L1JwRG58I2I1Ki8pZi40KFRIWiFeUzBCTzlMS11VektdfSovRksjIyNCNjtJcn1oTCwxbyNLWn1YekY3Ok1+fUYwXzdSKE9HQVBMZSJPWFcpPEpnV2o0JVFYL3RVO2J5Yzw3bVtveS8kJWVjJkw2RWImejxrcldOV3Bgfn12cHIpdG4yODpi'@; put 'dTNWLkVtZCNVejt2SyJsIjw3L2tVV1RUbyY6fCkkcWc/WHViL3FoKXJ6TEtkPExbNmw4ayxlM05ocVpGZXZdYDBtejYwSDFQNlBvbChlMFFxIzlbUDN9JT54UURfMEt5LD5YPHFsVlgzWFE6fElAJXZzfTBNXT96YXl8KHkkcmU2MmcjfTslI0lQdDMsQXBDMUZNKVJsW2h3QSw6JltaX05WcS4x'@; put 'QU9nWjksNU5tMklLOG8vU1FVKn5fRmsmPyg+d05oYGhVejBwMHFsd2JpKUtxLHFkMWZbMzYuUSs8Yk1uMU0lXTAsMlZ2JkBQRm8yZ2N4M3trOFMkRnBDNkFwWGhJe1F6Ki8mPDFKcTVGWVVYSUVVIXFHfXp2eywxOzNDIUM3ZDFkcj9SeWBLdWxvQzRDIXE5e008enB5V2BpbWFWX0xmNiptLktK'@; put 'M04+LHgpNUZ7fj59PmExPiFeNik1X1Y9am88PilxfXZyfD9ga2N8LkBAdGMiTWh8Wippaz5HbjBmdiprLlB0YVt7W0ZvSFspRlA/bD5NXXNiVGY7JVpGWiZzfX1vR2srcmxgeiFIQzpWKC8iKzUlITZMdyIrTHIySnxOd3B1TXpzNFtvVUVbZUtvXTk1JC8xPFdLYWswO1c9Nj0wOVtHQ1cuIXQy'@; put 'UmomI2htRD55O1tLQTt2bHV3eWZbPE1lKzkoSjBxdTxIay8jYiE2eSZOfUVhR1NAfERwQkYhQDE/XjFxMTxtM2loKFU/bzttaHBnWiJwWyJsY0xzZ25CR0c7QF11JmghRDhtODgmUF9sdko4IVpiPlkucDUmZXNUJj0+RWskKVZXeFs2PCE7ZHUlLyNTJCV8c3VUJlchVCopRnIkfGxXdlZVUW56'@; put 'OXZWJHEjL05efkBMOWp3bDI4Kz9JX2I4ZXg8cnsoeUheWnAuPFkkUGkhP2czIjkkJT8lJip6TG9xPVViYlBTRFdKXnZmOVtZJHA4Pj1OL2hDIiZNbSRbViRjMj5gTjQobl9LeDs7XXg+ZzNZYVdyTSR8aTVWMn1NZ0MhRk1CVkZGPXE6LD5gNjVIaUs8diMrLGZTaUpaMzV9cGd7VltARWVwMjQu'@; put 'QkJJI0R2RyZiNVNCbHhBPlY4Yy8qMFpqMyVFX0NIaGhwQGxyKVR7XSgpcXIuLGh3XUM5eXhaLzlVPGJMR0ApRzd9fj4ra1c/ODNGcCw3OSkwOCZPa3tOSTt6Y2I2VSxIRDp5O2tKcFBSP1A8SExXPzB1XTUvLlliI2hYVW07diw9SWZxSHkvZkRTTWRQNm1kdmk5ZGxaKCooYmhSUFAiaGlscG9w'@; put 'clF2SFMqUDIxOy44MS8sI3FQRGtaVjRfVGhsJFJ9PXZsejw8TH0sIkJwcjNMZVNVKVhmS20yamB8X0B6Qk1Pel17KGNLImA8LCwrU0tEPlJ+MENyS117OEtTey99SkVde045WkBpazgxXjhlR1BFVWEsNUY3S2dQYTdyNG9KZW83fXReSHguIkVZKUFdSnF2MkhiXVBsTD5sWiU4NitsWWghVl52'@; put 'PHY+TDB+eHxqWilfRGh3SGBic0kuIU5rZWtTQmZdYSlhS2YqNV98OV9VUnZ7YGlaPUZxWTJEY2Y8NHJULiQmS0VHb1pramA3NlpvbWxFOTA2ZGBbbjcqOXg+RlJVaHdnWCk8P2orP115cksjen1zSm44fV5nWEU4LHAxOXU7bWZLamR7YV8mcGF6ZD5re2NfS2xQPGBhWXM5Vj5YRyghXyh2OC9D'@; put 'V1MqfV5nTHt7K1s7S1peKEJKfHIyc1lKe1RDPWxSIT9JRWxVJE1OXl0jLmt7bSEyVj5PRHtgO283TDs4W2U2alIsRT08eUkoV2tpZGhUPi5LQGRKJmA+PWcrYC5dI3Rke3pgekp6fHxGX3kkZjRsVWt3K1Jdc2JyPHp2N0xeallNLCxHV2VTXTZXWFgpLGJ0dU1PSEUxRWU1YEc+Vn14dXdEZVIh'@; put 'YChXdWN2WGRLYG97aitzKztld3BQMm07TCNpNXp5fjFWO0FFXmI7JVV5TiVGW0o6JilVWChRO1d4dldbSFY9Vy5JRTtlIl4qdyE+TE5NW2MzPFdwL0cyOF83SV5qKyU+e2R6fCVFZjU3LyErL0pzR219P3ZzKlFqX08sblhDfW9HUGd8PGthWm9LNTl7dXlNTHNoT0shTUhse0xrRCM0W01yKSQh'@; put 'X216RVY2Xi91KS4pTSxeUlN8MlFffHxGSUhZeTtTTVNzeWg2cCU4Ok5LKGkkOXMwUVBMNF5KZl48M3U6ImoqSzU6RURvd2gwRCxtQlhgendWK2xjQnZLPGVke15UKiNNPUU+QnNBbH0/fiM6TjM0fVBaYlU8YHl6ZXFkIkhgRFdoSnAsLCw3TVYhNnk1PWVKWlUlSVkrX0dWS1MzaCE5fFdMfFU+'@; put 'Nl9PfCpKe0A+ZXl9PmV9P1c/ckAvPCxLWzZgRysjW1I6T1BebkxaXyVqTXIkWW9aX3c4K1hNfUssOix3YkM0VT8pZ0ZocXJkXjYmZldga2tAMHw3PjVyU2NZPlVnJSM1YE8lTEdkcW45a3dUWWIqSU5rQWFsa0dMUHE2RVNpQGM/dEdNezlRM0RuY3lmOmtIcCE1LmwvYi8qUXNVYlF3SWNeP3hR'@; put 'Vi8vRkNXXUdTazVGXTFNU2VofTxFKF9hYX14OWJfW196ZXImX3Y3LHw1ZkwuOFZyKDdLblZpXnQmQix4bGYrLkkjI1BvJF1xWi5mVSsvPFokQUcwZm4jYSg9b1ErJFl3bCoiNHtYS182eXh5Y3M/MVB8eUZgPDN3VmtbYXJRR0xXVF81QEZxb19oS244KTNKQHk4NkNwI2c5aXtwP2JLXk8+NkRX'@; put 'aDo6SGhxPiljVnIoeTNKQD0mUF0mVE42JHZnRkdyI05WPltzY1ZXNXE3Nj5fenFuKUMsVkI3QV4iK3RTaEJKNkVAUFNxWnlOYXV3RD1feHBSI2xLaFsiVkdwZDd6M0IzQWQ5b2lXQ1J6akZUJT0ifD5pWSw/W1FsMSgjRG11N1dmY0l3YHk+dnxPRTZuTzo8JS5NbWwlPVREPVoqZHkzSTZdcVo8'@; put 'ej1jQk8wTWQpaV11ezRMcDooaWp0aiFbS3FWRzA2IzRNZGIjW3JzeW1BZGA/TWdMQEozdHMsL1NJIyMmMSZNckg/eUV1ck08Ukk3N1dWeThYOm8hJDl+WHxIN31gSmpmQFcmX2p0MXk6ZTQsQTJGY3RMV2ZfX2ZiNGslbHx7X1ZvTVk4MSFpVHUiWmt3Y149TlAjSE5JYmchNCJsO2MiKDpBXk1R'@; put 'Jnc1W2BQa1prd3M0ZUpFN29oYzRENytOeUlmL0wueHh3Ok9bTEZ5Km9LXnFRJE5pRSVIXSlrRE54QEgrT0UlRSEvcl9dMzVyQlcqKjRjU2FARTxpd0Vdd08rMXlHJkJEVT1ZNVRAT3xQZ29LKF1eaENYSjE1Z29EYDcrIyVDZmlzOVVHJmQuXjZkYFtLZV19eDFdSlFHeGNjKkFGYUo4YkUyTy5J'@; put 'MjMrKSEzImNBUXxfJClkOE0iZk1PZm0vYG44TmssUERES35IUiNKKFo6YkAiN250VnxEaEx5e0FsPX0pXzdtSThgcyppJFJheFNiV0wmeFk/Y2YvVy41JTs8bCtsOW0yczk4JnNVVShwRkt9QEx+L3xWPGltNkZoVk5YO2wuQFhHcVtATGRfQWdVcE90PXhwNzMmcFVpXV1HTXxMfFd3ViU0JGQp'@; put 'UExdNiZOfEB9X083b2U4Ty5DbzUjczFSUjt9OjB1K0JZQXJWK1U+XTFqKzRGeVFucSsmS2EqISsqWEJqRlo4a29abz8qMi5dLFhFNHlSM2RoWlR0aE90byZ3QW1qO3U/Z0dTRWtLJClyLmQ8dntGJmdQT20mMTgqN3QzdnIhfVJ4WW07OU0hRExxW2N3UktGdzhoK3Bma0psSTU5Oy9UflJAbHdu'@; put 'cHNzfjwoV0RsI1UmV2pRSCRqMiJAUzIrV2hMK1dzOVEsbVhTfWchanB7Km1YM1JacSF1eEJicSFGL0dFaiMyQiRWamdaa2psO2JfOlN7QChWQmc4dEApOyVTP3N7aEVuQ0o7PjF5ck9yZUUyM2dHRVZSRkt4IzZ7bCsjZl1gRGBuRTlIYFJFcFFbR2g+bDIrU2MpdHVnWmZMcXdSXjFWaHMjVWYz'@; put 'WjxBeWhHNkV+dzo+MURXVS5RYylwMm5eOU1UWUBYZFsrRWYvc19WbTJ1bEtQRn0/QEw6alF8SmZAVmh7aCt9I2JlIik9eCNNKzcmaDkjQVpaK3RASXp9SmlVc1RJSnFkfm5nQCpPdUFwckVEWSF5c290b29ITVlaZjddL0s7NVRVfnA3eGFMKGs2elomMWBpRkZCRGhrOm12dUp8JHk4YURsLF1O'@; put 'aXVlJjpyYyxNTHxLMjpiXzUkT31nWkd2dTlnMVhVPCJGY0xKfV4sZ0B2bHpmaEhiVlZAPjVTbT0zUElbRGF+SHcoSUYyaU0vc2o9KkxgYEw9Lnp1XSFJOSRRdDxrNUt2dlBhX3tLc3ptTXYlfkdWJU1ecllCcVMsXzxEeTJBUEt9b3UvXSl5RTFfUGQiSF5xWiM7eD50WjwjXzN9RkssRERmOiVJ'@; put 'OnR5MzFmI18jPD9BZC5nYV9LQ0k5NCNZa0hxISVJbVFheEdDV3AkNkNYR3N2WTAsKnlmW0V1THJFSXhjcGglZCloJWQsSVB0N05gdkdDV3BrJmh0d1UwUWxzSnErOVt5S2tFflhXYExdPXVoWk94PnREV3dIOXlEK150X0hecnN4O0BwT0hnIXk8aCo3Tm8mcUg0SnA/Y084aURUdGQ8IzV9OE45'@; put 'WTpHQ25kYTp1Viw4Lkl3fDtAVlkrbUckfGNrQDpNSD1uNStfYFF6e3FaNWt4ZzQzLF16SlZzRnJzd2AkTmpqeDolSSNXeWJZK21HRW8ib0JOPnxISkJHPjI3dDJFTmpUREpLOyVzTiZXQ3tWVyouRFZzc0gmSCtwNlY3Mm1ZMjd0Vnw1YXp4KWEubUY6XS9AS2ZjYS5wdDM8K3hkW3BTXkdbYzgy'@; put 'NGIobW9SNHVaWnksTkZUXmM1S2EraEd8ek45STZOfVozVWspKylSK0hILzxRTCRafmAjN0pPZ19YMiM/REpuXUQsUWEhLy9QRWQ4MjcsUE9oZC5tOFZSYSEvPl5qSGY8KlY4bXgmbjdjbWl6KSFsKS5dTyEkQkYpcTBuLEY3V01CTkNYbGZuY21RYF0lTW41QFNNdiwqe0dwbSFOZHg4N1MyYV9V'@; put 'bENwTjRrMDVkI19jTzM+VVpTMCZLYCEjNmxEZjp8fWIsVmNHNUJoRzU4dyg+OjFsQGN6fnV1WUlqYnRXREsvVzdyYiU0XXx6eVZISE9yd09jYHpjU2l9TDQ2a0s0VjYqRTBZfTViVDdOfDR+YyMjbTNyIlZXOE5heGNzKmR+RXNEb3FCPlEuc2hudUt8UklFb3Z7NCloeUEwbWh1alcrXlt8WGBX'@; put 'dz5iNlgrdipqL1lZU2NKQjN4SSZ4Z3E9U09vIUE3ZlNdcnRYUX4mRkMqLi8sO35ZTyR0cVRaLHouWXZLWWV3bFNvNnhFU0VHZXtxJEtTR2NtYixMeldOW0djQz47KkNKP01DZTNVUk8yN1Yra01RQ0xVVDQuKE5Yak5tMFF+OSliKVJfe2JdenE3eWNQazkuVkIhSl8qPmtobUVAdSt1THU/YUlO'@; put 'VkE8KUZRcU9iaVFbdCZXPWNlPDgwRl1PT0thKyNJJDc0eUtMZ0MmSFQhQD03anddIl44MiNKPDJKbzpyXnt3aFp5I1pVfVk7KVUuJFRBTysyUF4lZEZTezxSalM+KDZTeVd9I0RgYko5M3NNNUAzITJFPWxKQUh1XTJpP2tXM2lnO0pkenpaa35qW05EL0t9WCxCfl1PRnpjdyRoSEE9NG03VUVJ'@; put 'cm1jZ15ZYnU5WGhecWdkeF1lYz9iKSh8ZiFadmtzWVNBbTBCJj1HJSlbclpUZVJ2e3VEYnBaJHlWU09fcih6Ry8lMiZOK1J1cGg0MTJGUD8iR3suNStRbHBFeVZwJmZTbCtVREtJK0YkciRkTXowNVNzJTA4dGZtRHRmYzRVU2UrI2RrZWRGbypkdnc+TEkyMDpHLlMyKkpXMHtgeyV3RCFwZiNU'@; put 'azdPYGRKN1RwO0IufEpoKls5c0VOTCNUJnQvWSpXUDcjO20/Y1s6Q0VGQGJAPyRVVSZoRWc8ZyE1PmYjZTc4QHU+U1YuMyFPRXE+JHY2Rj48V1VATylwXXt8K2NhKU58KzBTImJ0Sk50UXFRYXUrX0YuczdrZ3AoTSJubjdJOmN4eCtaOEJ2IiNwVVhHUnxgKyJsKygrU35IUD9fRlp3W0UwLClG'@; put 'YixuWmgmdGNXZm45NlolZWo7PysmcG94blpFcCIlejtDTUt9Ki9oNT5jbTtUYn5ILlV8WztOeFRoWlhuTTBHQ1dwN2IzXXVaNU5aUFpJezpkS04wMFluXnEwV3QkbGRXSD43Xmhsb2QpL0pzbHc9ZlY4UXRwYnlSZUttUkU1JEYoJjIuTDtxJUN4N1VrJGl5Myo9Y0JPcHRTJjwoPHYqYCFJcmpG'@; put 'Rld9KFB0PGYrcGZJaCJQUkRfWChXNzkyIWh3MFhUPUNnMSpKbzM8ZEtPPHssV30iIStyVDt6Y1RoQFJUQD1EYDpKKk1MbTwkYjU+QX5kS2xYaEZLOyIpNEp1WVR0ZFN8WW1ZezIxeHd9aEk9IiZrRy5ue0w0fH1MRF9dekgxcEROPVlhe3hseXJGRkEhTktzNHNbIk5LV35yOW43IyVjTW4vU3so'@; put 'NX1lbm1XW0B1e29dJChtYm0rP09xckc/RUlYIWtaakAhS25VNSExeTh7ZDR2TDVfazNLKzErbElUd0okMDR9fVlHSmcwcEd7IStyIX4+RDIiO3ZBKksqdTprTTx4L2h4cEJGRTpgR3dleTx6VnkpTTVnRjUlIWVSSSEqIlMyO25DLEpYKVtWPCpkaFNmTTg1PHhSOGtVO2t5T1EqR0hFLEAhYjY5'@; put 'IVVjai85U1JUVSRxaCEweFVFOls8disyP3ZiOnl8RGE1eDIyc1B4PCEodmA9Sj1GbFlZaFJpPDA5LlBrU3trQEpKMG8sZGxUQ2t5fHd2akhidldCdGYheUN3LHc6K0h2TSZVSGA1JmtYaXd5Sz5+WyRZcixxTHFSRm1bdGNRdHd3MiNwNldnNXpvLCVqPyE4KyVqViVXV05qY3U6KilLVXk0ZnJ4'@; put 'TkkmbDdhZTd5bTpCbS85R3ZacEdmeWlma1gpWy57XkssdXEhMG9yYWVJQzEzWTJZQCYhIWFHK0hhcltgbWtwIU9WOXpiK2BLU0k/LnkkYiNKZ0c6PyFQNmJmVnZ8MFZWYWlUSzRpdSJjXU8vei95RGdyPzd+WSx8Sj9JTDl7Nkx+LEw1WHR8TipKenw8LGNGVDpLWVMrJUclKXpCcDVqYFlobnY0'@; put 'e200NVBGR1NGeVkrPzpPT1g5QUU3YkVyb0ldZ0RNM2RxQWswLlRXPCNiVzl6ISpIRDkmMns5aDJxU1Ntd11wQExVKkBwKSwuQ2JWMzEpQmBLOSYwNFcvbEY4UVFVVC8lPGUuVm4rclB2M2lgNGFUdyVTP3AscG96MnMpbUFDcVRVSnxJNERuY01mQkBAQ0FAUX0sI0M7RzJLTUc5NzE0b0JSVHQ+'@; put 'dXZTRmB1KE9fTXxeXkApfWh8anlHPXMhUSwvcElAQGlaJCNLPXtscXg6bj9+MUhpUit6KV5AXmdmdTkhQ1VvcnkybGlQPVBsOl49UFtQW256eX1QN2drb2M8VU1aXkdROGF9UX59OGs+LG5gIjt4WmtRSEN7UV89aUwsKTpVSUt1LD4jTWd8V0V7NktCSWw2S0pvYCttTHlOJHRCa2kkPG1VezJp'@; put 'd2puZmR1aktAdmpAKDtqJkBzOTRtQFZCPHU8ayxROkdye2spNVo8XjxlL2IvZ0VlL05eTWs+Oy47MHVVKyh5KjxEIz4zI3pmen5QK0BlaHMraGg7JU9ZSVk3SXclK2xxUVlGa1ZZVnlEbSx8dT96QlRWPHtDSHx1ZVM0RTcyel1NcVFaPFVtMllmRUgrc21JITtrUXpKXShNVjFfV1dmIl9OWz1Q'@; put 'SEVmMCs5OFJvQiVqciEzKkl1eXssc3oxPUhbaF5ScHZgUmRjLnBtaDBwYjxBOHwxKlo9KC90fFgjeTBaeXxiQGFqIUs1dSZ7N0xyOCkyQmF0JWd3WE9qQ0VZS1IwcClVcXUjSU5nOlomPFdbVT1QbGdAQH5RK2M8cToqJGwrVD08KUxXcT9waSRDL0dyZ2EmL3RtSWhJKF1uaiErNm91N2F1Q0Vn'@; put 'YzFCSlZLQGk6aV1JQXYoR3JYQU9PLilQPUhKVHcxJCM8Z3V5UCUvWWFHUCxXIm91JHlRb0lUSzVdQihzcTAzRiU6bTZlIk97cUk4eyo9MEcyaSslcEc2Yn0kcj1vOnEjQ3hmbVZ3OnssfjNpVmtzbH12MkdETGxTY2xDbVYqOWBqeTo3XWwvfkguNmY2ZFF6YjJmakRBZ1JNQls2Q1UwO21be2g1'@; put 'QWxMLj5VVDlASyo7P0kuNSUySGBAV0BLQjAhW2xbJWBWQE0uTUcsWDVOfnROPXtXTzhiLzNOY2hqZTxbd1YmO28sQUZMOVNGdzhhOSNRaUU8ejtTdkAiJTJ2SGl8bC9HeGh8UCJ9XiNgU3p5PSYoKnNAfCFIWDA+IWwmYFpNOzlJXlYkdEFtVlBEflszITh2aHV1S2hxNE1mLih9TlpqJkFXUCF6'@; put 'OzFqUTYrdlhzSGpTV2U2Y3xoZiJzWyp0WE17Mm14WHVqaS5NaHFVZEpFYzlKXixDV1AhNXBqOmAyMEZFMSw1NmhGdU1lTFtSQDpuLlhKcmV1UkJ2YXNyRWN2VDFzTFYlVGEkRzEwYlRCbmttWC98LHZFW2BQXWBGbVJiPy9meWFtSD1MPDpneGVSRXpdKj9rPCI9aioyYFtqdmpOUWB7bTxfbTJm'@; put 'Wz5leUIsUysyNXtqMHZ4eWd5VWJ3eWJoeDs4NGprc05zb1loLlVgXmxQfUAxVllVdFVkcUREO0kiTk1+O2xaK25vYjxRIlZGbTc/Wy5LRWxbOGBudUw8eFtvS0ZaMmQkXTdte0xYKztgOlRacjdKfjVGXSxWIUJFTTNRWzhyKmBnfmUjJisuXXQ8ZDcjJWhrbz00bXp1YnJGVlZoekd3bXArQWt1'@; put 'PEh2cnN5U0pPODkqOUxoUFhYRmJndVFdckMkM2xqJHE1eXEpdXsxZSp0c1hiTltZTHVqZyJNISQ7OEExbiNkLF1kM2lUWykhPWV5eGcrUkBsV1U2Ll82IjZtXmhRMS9Kaz0sRDl6MjAxKlNfeHpeeDthLkZnT21vZmB3PilkTF1yK3srLDVVTDxrdWUlKW8wRi42bWBiJDFMOyk6R3V+JnouMSsj'@; put 'VSpwfkoqOlFhYmVJeSVqcjZYNlVNJD8sT2hjYTtDP0BEKn0jbnBkXmRiVy5tfG4ySXQ6R3Rvc2ZbeHhXN2w8RXJvPkgjZnU5UTlWO2M4cGluOV9iVnJmTWVwLlsvIUNjWmxLKihlIXRGVkgzZlhZNk8/aXN0cTVkJTI3ST8rNztRKmx3QSwsZltlSXBrdSJhLHlfPG04TWBldUlKeVZiRV1WYl5I'@; put 'OU1sLzkoSi9ORzV8JjA9aXlXMzJ+Y3UmdkI8NUY4bT1BP2M3SkBJSF8zKSI5Ky5qPCZNcUk0SyosODY5JG8zNl0jSUolaHxSbnREPzRKMHFHMEl+QyJFPCZpd1dlVzFHKjF2Tm0xRWtkbVMqNDNHOSlPemFDOnI2aSRNOFp9TyNlQEhiZTNGWS9+fW9XRyFCPz5gVHgrL25bNjY3S0VvXl1TcyFN'@; put 'dj5lZFErSkBFMzx6c2pvfkt4JS8iUDc2W0lhYm5+akNqNSJmNzZZRDIsaDE5WUtfcl4wc35JNWgjI0hVOn1DeDQ8bj4+cGw4Ly47UTYve0NRXlVGXlVJY1dRcnElVlVmR3o/SX1wbDhbLnVqZjM9YmQ7YHF9SypjVH0/OUdnM3ZYTU84R2dKW192WGdQLlQuMzFSWF5ObTM/VUwzcGt4WFdnIy9u'@; put 'OUVMbHsoUHErV2lDQyFyJV83K2NZP2AkSEhgMSs2L21FfDN2TEVKSEUoT3VnYHIwMzQ2d315cFM7Vno7LH4/ZUBaTCsoRTt5V0wrPGsrbVoheUxIbkJPQkYzOz47O2UhYkZXZWYwYkR5eSpydmZVKXhKYlRFOTdrKlklL2kiTlVqOHtYcUwzbjR2aVNSUVheJTxiO3cxc0pDTyNxczVwfnZ1Rk9T'@; put 'RihIdTBmbTdJfnAudzcxdVB0RkQ3OFR9U0V3aD1XYWosbzFLR2BbY1glWD47b2o1PkRvNW5TWWNjJlRhdV5OeHVLQzE2JksuZUh0JSVlWztWclsmRytnLiQ8NG1fYEIxS1p5Tkw9VUtQazkpWE9LajQwLiM/cUpCMVIvaixYdzVDIXl3amA2MkB1eHB3IzdIMTxNcHU0dXN4XlZZaVpoYT0mO2Q+'@; put 'RnlOaTR4dXd7V20vR21YWnUhW14obF5KdSkvZSkvblVtPyk+VyFYI114KXc0bzxhRSl5VUY/aT1QKE5Qa0Eybyx1WTpaViVXKzs9PG86Xyg/fD1NNiEjYDEwK3MhPU1LTngjVmReWnkxKSo8b3dvZkQ6P0M8bmpuOTJ1Yno3UWR2I2Q8VCplNi84K09FW3BUWn4sbmdEQjgxYjxLViN2OTIhQUVB'@; put 'MFlPfUR4dlc/Vm5Ca0VeVG8wVkNZJXFVeDJ+LzRdKD8hI2s7aUw2TEl4YFdPS2M8YzpLVXErTWp0PU02SnVuLDN0Z0MyWnssOUghY1JQPTFIRkRsXlAlXkYjYiEuaUMzO3l9Rl0yNUZBQVhMb2k8RzVMb0ZQWHV1QWs6VVpaW2hhTVVRelJBSntbektYaVp3SVV2Wj5IKiJAZ0trfihCLkZgW2Js'@; put 'Y106SlZnfHxpMiJhMyxddEpiZ3YqVzZqbyUvPiEwUG1ZUkNVbFVNLlE3WClEI2VIQ0g6N3ZxbCt0NVkyMy4qIT94cUNXWVUrWVYrPWldW11DMk1NITRlfHlxakJLNENRNVdqYzxvaC94cy9FWDlIe0Q1L2ZfIzFZRD48cXlYTXEsNUIsMlcran0zSmUqIytSUUZQYil6dkMrO2s3LyMrMDMvIyti'@; put 'OWp9T0JDTVY7P15vW3lNd1k+eDh4QnA1fSFxeXQpL21jKS9tYyksND08NENNSi5UaVRvWk5eWnBfcE87PD84RXQhKEo7fHheQ0BHdyNwJks+QlkvVXlDO2RqRCIxXk5pe3dFZlBUJSlVZip3ejBgWFhSRFdJKyl3YCFGYEQrOE1gJjs/NltnQGosO0l9T2dTYmguL0Q2V2V0M1oyWmtrPzNQUmpa'@; put 'X0B4KlBYKTRrJlcybDkjJixbPFNoaHp2Y1tMQ2BkIyJ3RyJXSUVLVWxKRjdOTW9dTHYhQld9TGpxPClpUnVVREZEXWcuXXFiVFF1fGQqR0VLQ1hnKnI8MiI8QTRjPFRSWFtHJUJpOTwyWVd6S0pBMmxNezZTeyh+QXl9YV5XXVopazRnQDdIKE92dihwTzZSaypNeWZ2X1BKKV46PFlwO2V9bXd5'@; put 'OUpMPXA0NDhBfHZ1KEZJLkY7VyZsKDxFN2g+I2dRPyMlbVZ5PSF8OE5neCI5ZnRZcUtFS1g1a0pPcSV7fj4yQm87RlpZKklyfHsrNUkyZ0BeSEFIWSo7XzVRJDpuZWBbNkZtND5TfjVndTR5Oj1aNEM7fWVYVytwa1c8VGA0OFZ5JEdWRXBQeUNdcnlPelB8LklYSVFBQj5VMXgzUVh0Ym58VjN7'@; put 'O35jM2FvUmFYO3U/X0Y9Kmc7dTQvJHhQNzRfOm9LPWZhc2hnOHpaTHhXWW0zNDNycFZtTltlMTFeZ08/ODpHQnB3b3h4cnBbOGBMQENsRDBXWGJJXUVwO25lYWFYd0M1aWUkfXR5KnM3WVg1PVEjPHJedV83Lyo6W2UzY0QvO1s8XUVecEpvQURVQz4wP0NBSF1qcElEbSM1VHFSI2V2K2VZKS88'@; put 'OUpBRjt6JURIeG1ufXJRV0FvMjlOXkNhIUpTbjpHP1QwQ301M1hhakwrKSgrUn11eDBJWFprXkRvJl9fQ21ve31wUypsQm9afEc9cWgpLEhtR0ZNKnQ2XThGViVAdSVwJSZ+ckQ+XXdycDtKcSZBRCpLXXF0bGVtTTk0W2BWNkQidnBwJUhjdUVyUzVpM3tCVSorWFh9b0pPdT5oeCt1Mkh+JD5p'@; put 'LzsxJlFVQ0JhK0o5I2I2K2kiKm1BeWgjLkxGXlpfQk16SnM+OXhfWDdlOWA2fUVWaUohKFVNRl5aKSo7cnpLeUA8SCZpOyk1IUspJjA9IyNabkJETSVTS0VZTCI0WVhMSU16cy98Rz50TjAzekFpNTp2L3pwPmFYRCJ2a0NbZT9FdVkiclU6WGJUIUx7NWYiZj1mLnV+Z0xgYylvOm85ZmhLIT1V'@; put 'c3p2M3Jwfnx3IT1ddTJjfUVLbHAqOTgqVERyOiViKVhCQCpmbnV2WSMvfnwvJHRrLkVrYjt+VnZ2NDx4SmhMNEpET1NoYkEkaXplZjx3OC9hKmxVRzZ1dl1bZ0AjYiUhOj00NXxvJThAbWFGREsrVn13LnMzNVJhaFMoPFRQPGRxVTxJS2FoU2U7KkowLj1YLCl7YDo2KjMqYSZdM0RnTSQ2Zyk/'@; put 'eG92VGFvJFA5LmU5XTAhQHZMKWxefkpQakxmRkR6bWghQ1chbSVifWIlNWI0NyF7Rjp8Lio3eDk1S0g9WD5yLHEpW2FWQVlPQTo9YE5ZPy5JeDtzXSVmX1hMNV4/NnJERjF8JU9de3wvWFd4PXdMbVJAQz5pdVU7NVdNO3tFWE9HUFJgNGZFazZ2ZllAelJ4MUFXKUh5ZFM+JVlLTHlUQSpZeWlF'@; put 'WHhnUXNWWVd8JCtDMiNQKXluSnhucytDREBUSXJvMCY3KlVaaU8wRVBZQENxWCpTOS5hdVpPKHVidV9BSnNmUjFMSF5qdjxRWjlAeWl1S3BALj5nRF87TEglRXY9YjhlKXJZQH5AeVlCV0chTzdWSzs5Sj91VXc8VVFybU5nK1krVmRlJCtgeldxLztHez4qRTVZbGBgMC9jSXhSK0U0dzsvXy4z'@; put 'V3hCbzZFWGd8TEMpWV52ZHJCOXpMX0JhOV1AKmpGRjZPSl1oZGQ+bUhybHoyQzpjZHRaL1oua3J7WyZ5WCF3JXAhbzhpRFJ3QzE6QGZaUjlyOkpTfXw5TVdLVXUzTHt7I3AjP3hieCEpQ2Q2OStFZ0h7fEQzWzFiaFpVP0dpT3ZTRW86UzB9SWZANjFlX29qKU5BU3soY1BdXjRvTyZdRDI6eWxM'@; put 'aikiSnFKb2xqM247ITRtZC5MSV5LZTdOJGJONjtlNGImWDpNJlhJUT95SzV3KWB5PXlwL3Irdywvbmh6M3FMbyIvc3c+TFFGd05wdnEyTmBgWEJZayZGVUhDPkohTWM3YzxILD1veTVubDcsPkwrcSgiR3pNM3pzUVZiJiFfbWhrcnlBQDg0amFjY3VMfHN6VzdnI01fa0BjVEdOcXJKYmZyQWho'@; put 'Z247fEdGRilxa2FdJEouY1A7TDIjcil7YFtHQ2g1PURaeDo2Yz9lIjtzUGVDKCkxJns0Qm8+YHk7TmZzdGRkXSwkaUxfLCZCX3B1Uj0wPmd4WCVDOm1PLF16ITVYUnVjdGQ5WFpJMnIvR2hPP0JlLCJ4cjkqX1k5JHpLazJoQFkqIUtGc0cpYkJ+WGcsZEF+fjVOSW9JdH5zViUrczozbXA0P2R2'@; put 'REVsOll3JU9DdW5dMmdFRW0kRiRBSTtBNypvIjdKYSkud1liRz4jaWJEfX03Z24hRyJ5M0JUeXguNCFWV2RLS19OSUM6MGB5VWwzNmBQekJtLHIrdUY6W2QvVDNYWGlvP2NXWEE1QWNJfTVjP0JFJGgrSkZ3IU92NHFoQk5YOFY7M143KkN4ITtLQjBIZWRRWHQpUnJTMDAkaUx9bCYoNF5oa3ku'@; put 'ZHdBL3IqSjx3MHtfaXNJN3lrQlozIX59fVZjPFgqZDNqO1V2Ry9VMzwreCwxMCtre21LOlI0WT81RllWRT1KJlsmNUdBImQza1dXYEAyRkNVNCY3PF5eeFYob0AyUF5GWXc0QDhFPSg6L114YCpMOm0rYnQlLzJldEdxdF56LDY5QUc7VE5oejtKdzBEOERmZntgTTlufCs4e2ciOC9NJWRPSSNK'@; put 'cTU6NzJVZHY2S0RyKF9VI3MlTEFvPm4wUUBxcCspLkl0WUBbNzRTeHJaN3xGI05ONGc3T0F2QFsmRC5LWml7UV5bb3hTMFhqTn5ZQyV0b0M6NGhgTCp3PlYrbi4rNDxgJWV5ITlwaTlJTXl0PnN0cEx6YTUxPC9vKDs4Tzp2SzwiR3poOWVvPTFmejhtJCtXQjhNQWFqVyx8NCNrdERrcGMvPkki'@; put 'Tk9xcSIvZ3F7NlloTCVRXWd7b0E+bzV3cUVYM0ZxPmRsIUwucVlEa0tXJEF+LDFqIj96QTw8MnwoY34vKTFCPlN5disyfjA7WW5YS1hSclQ3LnkiY3ptOVpKXz5aR1lPfTk2fC9FUkt8LDhgTDN8SmtIfip6VVVNZ3ZuWzNoMFs0Z3txZj15clp9I3NOJm1vLHRIfmdrKFJuLHRfe0dCaF9nTD43'@; put 'Jk1xd24mQ2hoQCRmXWVDfDE5LjlyPyhVcT51RS52XU1Ld1EkUTomO0hxWklDRHptfkB1KTJTYThQRzh+OmJmTHc4cmlHOWZFVGhDTENrVGhoaGF6cShnO0k+X0ZydXgjbEBKbnF3e0tWRDljaE9Oa2ByLFhVJjZXKHI0ekcpcFVxRTcvWFo/KGxednVFPEFNMUk1TWNyIXRgdChuOSt0MmdNU3RR'@; put 'fndKM3w4Y2tGZlAlUmFrOUVzMz90UVJZel5tSSNmdjV+OCF1RWhFLztVRFVzRzFfeTU2fj5ycCNHLk8oSCk0e3l0SElPWEA0KEAyakgudz1jb1g0ZyEhX0NVJSVkP3lMdCVbXiF5dF1takw9QX1RIUhYYmM8YjZgX0YjbmZ5PUBDUF8pTVBEX3JKSz1xJnIzdCxIXip4OjRvdktXJCkyXUpGPzIy'@; put 'Rlt0a2daKDN0dlBsPVM4ZzRBfX1SQkw2UGpRMXtAYnI4ZzJNcHJRJHVGXXtXWHdLbDYldHxTKW5pdlZGTzUhQnRTNUkwYTRnYHlwKHo/NHdXS0I7eVc2QmosV1JScnAsM09MQS8kZ0RDdXl0Y2V5KzxoInhgNXxKNlpjS34hMWQlR2Y3KTJ4Y2hfYmk1YmZpXTxUdGZnRm53MiRJJil0anFtazBT'@; put 'YyVfOWdqVixVU2ZkOTg2KVJCNzZVXSxwKTMoRiwkdGtCZ05hUyREalcjWGp9VSlZYklNZjM6WGUjK0BoRyxza2I3JUY3KmY7dzZMZiEwXjNDbDN9b3NMZV0yRWBuRF51fHA3ai5RZVo5KSUxO2hNSnNwe15QOF0oOCklaERIbVg9YHo9PEtnej9IL3JzUTZtKlF3QmNseXFeMlc8UmpTKV0oRj0/'@; put 'LE1FSXkpNDg/eV1JI0NaTGNYU0UoJiVIS2BwWkBXW3Zrc3hwODlkQkxzV2dkbTAzS3lfO2J5VTtgdDs0MUlecn47ZG5IUnVxRkAlWU5taz19elg+UFtWcTQzITpUYzhLZSxveCZVR2RTPilMeTEiXiRVeH0pZHF4dEI1ZT1MMXBtMnNCZkhUeSlEVSFue3NzKlU1OWkke0pPY3khI08/Qkw8Lm8p'@; put 'NGJLZGR9ZGJUUkZOM15kKTwvYHRaYiVDVV5HPDowLClGUlhrZDxRYnw2TjlPQHUwMkorVHBWYmhJb1VXbVlAP0MwW0V4WCl7RTdUQy5lNllnKiRzcltrXX1QOz5bVH5fJntSSHZKWCgkW1FvSUMrcXY3RFhLVSlBaTAoREg9Qmg/QzxwSlBwKyxRSWVZKnl1Y3RKVnU8VG00QlF+eEEpMjFIPjRJ'@; put 'JCk3RTxkNnBxMn1WeGdnaEdpOj5rYktpeTcmfWh2Vi8oVzxFTkM/WzQuK0NhTEo8e1A6WXB1XiF+KE1oeEVVUlB0aXtgSWBkQkdsMVVPWUAhYFoiITw8YSs5eF8/YEh4ejRLYmYoPCs8dVs7am86LzZ5aj57Xm8lUSQ+LltFM3s9NitKaF4hYjE5RDV0MitVaDdMfTM1MjJwNGleSHtnbWNwR0Nv'@; put 'RFd3NzkwPU9HRVFFdGwpJSI2NSlCN3UvWDdxJnRvI3QuVFgxcD9XbVBmPHxPRiJPYyMhTT05YEkrKUZfLnM+ZiY/KEtzQTVpXjtLInI9ZVVKRVZ9SChhVjBvIyNPSWIyNklDUklXM04pdXBnbkh+UHlJJjsqLnkjbGolW0BYYj5uY3s8Tmo/LyNZRmEvMV5nLmxKPiRkS3ltQk8pTVl7aFhJO3NY'@; put 'KDZBKXFncD1bJj0hMEMkTG5QKVtkJVNqd2Y1RjIhMHlqcmZ1Okd5Vk5DMl9nWFRSJXQ/Zzw3WFpwbDNCX0xMPj1Je2g0d048dGhvND0jTVc5I2lALEZXfk1GQFljQk5md3MudGkyRGtiWiVkb1tmcURoQyNdKD06bCF1K2t4LF9aeWc5TG84cGNdN1htPzI6eWRGVjgqZSEiOFplKEhlbSsqVERp'@; put 'RlVFTyVXVkBRdjloP0lkRnxCSC9CaVcuWGBXSlppNGd8OUpFREJUVTRrMHR+KUVdImlbI0t2V31XSkBQSzxpP3lNcVJ4NGUkeXsoVFkoZUU1Z0hLRzpReUxTI3h7ZitoVTJZLiZ0dTBSXXNEUS9VYGdaTDQ6dE1MK2dqOiNdKDhjJmxTMG5Tc294V2J6Wih7azByaSs/LGBNLC5WJE19JSkhb2JY'@; put 'Zy5sSElJTFtWY105Z2djRS87ckRydEBmQSV4MjI6cFcvV3RYInQzd3cmOixeQjN0cXtTUC87akRTe2NPNyN4ZlU8X2ddVyh5MCloZVlkZ25yZ0xgeEVJJUJtRWsyK0VVMjNbRElCdz5gSjMvX2tiLFAveGAwOUJSUHp7UCF1VVdsLEZCJStKdT5rPlFLWi9uSnQsYCE8Umo4OWBmVjMjeitdX1pJ'@; put 'bm4rNF5kRTJVVjYsXzp9TVJ5dWJoNGw1bGQzJnxfaWB9aCxbdjViT0ouO3A7VkQxbVlKPUJBSD8zIk5jRSVfcXwibUN4a1tMRz1pZkhCQ2J8WSRUZkhJZ34wXj4zakxoS1VnS25oQ1s9a0NeKn0/NT1rKFJfSGIibzh4MTRSSThlWXZpSEsjdDJLanNxQDppI348TyRgQChtYz8xNl9YMUtfQ0VL'@; put 'TyNUcC49bjZrXmo5QDpHOV9HIWh1ISJpOiojL3UyYH55RVFdZFFVXnNxVHVLNUJUOVErJTZRcjQsblhiMGlmWWFqen0zcXRpUnAzdlhqVWA+a2UkRmQ7NjtwdXZWYiNROXJHVk5bZjxfTj5LeHtbWCRdPzZBJlVNKXFUT2Bxe0JicV4yLnJsdTlpInxpKzlHVl9Yej9YayY2Z1Y7Kn5yQnVNLmVD'@; put 'Xn5AaF8hMlFFN1YyVFVRQD1gOHA/emlRayxlOSYqRmNRT2dwbyhlOTJjVjE4dFBFWEM0QUdJYEhVNSZvYDFSQDZKKkwzPENxWClCKikiV1FgMSZmR3R2allgNkAifVEvQkU8TERAZVN6I1k1dGVpT1ZfP3oxSXd9LF5bVSNSL3dBQy4iYVpsZ35qLzg5fXgyfCgjKFtbXU5KVkU5W3xRL0JFPGxb'@; put 'cDRvbHdqUSNeVUV6IjlmIXJJKWBGXV90S01BXjxCN088X2w9OlguWF4xeHVRN3JaK040bDIpQGNpNT0ybz9XO15qNmQhclBdbTAoSzh7TX0vUS5hPz07OXdiaTVbU3FkSHVARXJvYDg1UFszWTcyIS4hS3RkJlI2YkR8cmFLR0pJPVA/PihVVXs8aUlPXzpXdTh0REl5c3R3REY6cVdzezkzRltu'@; put 'LiZOLHwsfTx4MzxIP00+Qzx7KG8vaV0kbk12SDdZNGpDSW9XSFJyNFFwN19ARGYwW2ZaSCZxSjsrJnVZZ2NpY1grNEF3cHl0cVRbZCYhfUJEOS5IeF84NXhodl5kNnl5flNDPV82QCFbckg5NWh6PTFpO2JQa0VDb0dxOH1mTCRXQT40UzpHPEpnVD5rL3FGK3cmQExlY10mNy40ektwW1chRUFs'@; put 'TDN4WHRSTl89dFRdVCZpb3p8ejxneHJ8JCt0MTJIdSU0XT96flEkbFt2V3doTCVRT00maGNZPjhaRTcqV1hoZW5YSERvVWxxJnBdVEVbSjt1MlEpPiQhJVpiO0twTW1oUXJLeGR5Zys+bDpAcU4zLFRTay81aUlRLmE8ZzMoNFRpK1JuUUQkSEBGJWRvWClbc0lTWWheVyt1eCh5O0thN30mP1c7'@; put 'YGNRKVJPUiJObkVrYUVYYCx4d0JILmtYZDUhUm1oOWhXViV0KjxTWk02TmJIPGAqL3MkOi8hMUIhQDFWVkFPaV53JCY2QTAhcGNkdWpBOCVMbGAoekRPcE5+Ymk8Yi5WYmxwUUlNSCxnTmw5Q1AvWTMxUG5KVSwlJU9VYUtETz5LdXAuPTtNZ0A7c1hiYlB4RmFrJXJCS1Y4U0RyQC5VPU04bUw5'@; put 'eWNVRjtlRnlhV3N1TSlfPF83NzpoezA7dktrNmwrRUo6TGNLRHhfWW4yU25rRU1MXz5EVHpxc1JyelVVX0c8aTsxbjdkPlA+Vl9QeTxVI303NHtWVU5mUl8rfDJZa1JLJU0uaiFaMSEzQS5JR3kmOjg5ZU9xdk00YXk5OUNdWSRPWTNxTHdVVUUodTRsVTdJOj9kPVh+b29FPzQuTiVRMHt4Qm1R'@; put 'T0RSK1Q1TixpM30mRndgSiQjPDduVVVzO2BXI25Kd3hqZm0oOHZ6X0ldRFFdOEQ+KjY0Vn5Idjl4VkNxcm9GS2piRlZIIWtCR2gmanNuQjouT2MqSHVHVS5VcX1tKTY0dWxCTUZsWmZoUyopPGZxVkRbcGxtM0VEVkl7XXJjYDcqV1dUW3pJOm1MTDZRc302MXo8amFCVHAkO1kwI1FfI2s0Slcj'@; put 'Ul9weUZtRSZ8VlRSRHMraW1IfVFdUEMycEVeXSFxW1BqKDBwVEtmVThPfSZtYjB6WltSbS91UTN5byFNcVVPJGBLbHZCVGNiYVJ3R2RkYEprQ1tKcXJea1RJT15vPHBEUzF4TUcrZ2lpNVQ3QXtZW1N2WEV0dSJpWj4kWlUpUWllKCJqcGNHaV1UR1liMihKREdjckh1RXJuKUxJUWIpQE01bkMx'@; put 'eUN4IXEvSCxkYDFkM0lUdm0uO29qPlJKP3NQQHZtbDBZLiE+a3xxZGJfRiRwOS5icis6L20lUUJSNXFWMTZ2QCMqbUZeYFc2KzRUVDI8ZX1tVHpuT0o4XWpiOjcvRW0sZzhYZ21XYCNaWlEwQDEkYD1uejAsTjpLWUVWRjEsTlZHNlpFUVtyd21MKzBRZG4jI1U3Z3Z3e01SQDwzdnRZa2RNc3ox'@; put 'T3ZJUEtASklZd05eQiE6PWVIbERhXjsjL3xEdmtXVSFCfVhRNU5WSUo4YFldcmFHa3Jib0E8R3JNa3RsZ2oybEw3VlV4fD8lYnlFPShOTm17KCxfQWpiWX1GKiwlQH50b29YPzZgNjZJMnE8cj4rR3hNMnN9dERbYFAsQnEhS3ZBVH48ZUl2MTBGV18+LE1SanB2Z0VFRStAKyU/VzN9ZkY9b0Zr'@; put 'RC42cDlpWCZ6VTNnO3soZmtAS0ksbioxUn5RR3opMjtfTzpwbWVrLmkpQksjcXRadk00ZlQjW3BaWSIuZl1Ac1ViS208NlY1WHkyPFtmMnc9aDR0JSZ7ZWJNI2d+O3BZJEkycDVfSjkuYGBgKzl2dipOe2dvSlFOT3IvUGxaKyxOJVZDLjlrOSMjS1A8VDJZVC9Ie18pZz8lfDJ+RFhiK3I0Wjpx'@; put 'e0hvbylnPyUzR0RaPVhiJCRac1gve2taTDMvRSNtXyg1WiYscmMxfmt1LCxAdGJVdTVbMVNNdml5ai80RyFlclVNSDlTK31QZT5GeikyV0dIZiR5Il5lSitxQlYmSmEvRSx2R1dNZ2RgTUshLyZwR2A2bXpOLCE8dzB6VlROI2tDXkIxNl9tR11rJiojPFFeLmomXUZXWGVmZmhdNmhjOXlaZSlL'@; put 'e2pmQkNLS28kb2FnPWNJQllaaG0+LGhWYSNVe21wQEUpV3ldQ3hFNVN7YyJgOG0+azN1eTQpQiNnYTxlZipaVVU4OEssSXJ0QnRIQC9AZyZQKH1OcHAhdXV+TWdWPWpIdDVbezRkcU1gZDxiL21gYzp8RUgvdyZLKSFrJks/KStMY2t9fkxxMVEye25pYiRVO1pJXkR6TVo+NGosVyZVX2hUS3Mv'@; put 'ZDcsLDpgUSReKDpXUEZ9Rnk8dl1LZXhMUGlaPnFHbWk9NnVYPGBhMFR+djtGb287e2p+ezZZa0ZAL2AhbWQsNGpdeyVTK3Z2MDNGKEgkWywkZl9Cdk18aVZpR31eKHcmO28hRn1vOE94cVBdIjRTWmw3STU2Pk8jVClCbk1yYWJPOk4zZUp0eixiczJOc287QT0ydXRsQGtxcFBkYSZpTT5VK0hQ'@; put 'Wi5FQHRAOENpQ356RHA9blQsXjVVZ0BMc2h2cmhvN3Z3RT1fa3VpUjx5QikjO2V0e3FMWU90X0prNE52JFozVkJRezJOLmEvMTx3M0ddLFo3fSFgOTdVREpVTklpPTl2Lk5SMltQRnFAeSpWcXNzV2BRfS8pO0tkOiNZOEBWIzRdS2sxMTxvbEZXYDRVeSE3S1NdQ15PQj9gK3M4VkliLEkxMEFM'@; put 'RmxrLiFncXd6QyhqJExGTGlgPGg5VkoqOXc0aSkjPlVgfCRaT1N0VGo8dHtmekg8SCs7e2ZCT1JBTysyYnc1bVpAd1srVmZqUXMrWT5uK09NKS8oLjdRc19ZUF84VkIvPWtRX3BJaDU2VjdXbk9YKjhXaDVPfl1OaVg3JUZKTG10RGhbMVpYRVtJfmxRMmspcD1OL01Pd3F6QlVSYVNlZkR1Xl5n'@; put 'OThva1dyKXw4Ty9ZKjg/cExAdDBpYzQ+NmxTaX1lUGl4UVZuP2p5M0sqdUBeRCZNV1EpUzlxQ0VqbV5wT0t+THg0L0IsPjh3RmhxImdaeGJoQlc7UTc4UXNydng2Vj5wNGNWXz9jcUM0M1BkdFpLZ2x1V3VEYXdSMHg0NVdkTSopRFJqZyUuYUc1QnlWM25XOD1ddXB0Y3F2Z0U2dTdQIVVmeChL'@; put 'b3BmbDglZF5tZTltKHEwSmV+RElve3JqMl43dHJwIU0xJU48YnExJVtsImJwMzZwNDZQPEhWJGtbR2hoT2kwck9pSzVjS2lVdV5vXz90UztRP1srZ3o7VStmdEpDQzVTQnhHITwqanAzPXJQIyV5V2lQKiQifUY9bVJPOCRmdG08cHZeZ2s7VTskRURlMnFsZWNuLm5MSltIKWgqWE12XjlmcmJh'@; put 'OkZCNFduK306KGJIVF9dNXUpLjA5RXc+QmZtIVNmaEl2RF1QO3FNKTopQkUqeCtqSldodSpJd3VgMC4uWyllTmhjMCF3UUYjclVua2BGclhyZC5VPEIyOSooXixeOU1SdncyYHBuUjFEaTFtR1NhfClgUT04S2JqeW1ZN3JmUFtXKEouWDVDU144L34kY2tdcVZ6MCteRlBlJSojTD9gdjtHcHBx'@; put 'K08zXTJNdmYhTGo9PF9WK044P2taV0glS3dLNlBydEdSPWFJeDt6RFVnNlg1LF00b2QqL1NLPl1GXj94VEd3XjN4b3tyZTB+R0EoZllWV3JRaW00Km1OXX4+OFBKQD8xdmxRYG4lZlpwPUkiPVp9NDxSbHhwTyU7JngyIT1YXnQrU1hZLCV6eHNSUD9pL2d2XSY+N25kP1QrZSFlIiN2PiMxOyk8'@; put 'MjQ3dj1eYlNzbC5pSjt0UEhRdUtHUSZGW2xSPT9pOEQ/OGNYVVVdckx9PmwvW3llRDk1KmglZkN2VDtEdD5bdzdDbiZiVklBWTNxZz9XYVQ7eWEvNFVFdGhJQWZKR148OH1MIX5hWWF0VTwzMy9sYlgjPyprWzZgU2c7NTJFTSlSNmNlTU57W04kM2BgT3xNRWRpc3VVVWQkQWhjXnBIITVVZDkp'@; put 'ZGVoMG1wMzVvXV4sYlAzXU1Re0U4IjVlRGRKOEFxMVloL3k7eXgvS2w+LiZXfj5YQUArPEUmc0U3JnNWXjQiYzhPKFRGWmhhKyMsVChUakJZOUMyIipRZnk1aF1UZkAobFV1RWpzQU9eSnU1YCtMcD04cE0zXUk7a0JsfXg+WHZGXVdgT3h2NGVickkocHleb3YhJXl9b0BTNl5ZIlNNNW17ImM/'@; put 'IWx3NTtDPlo4KnFETVgzUX4qRTJxVixTazpkMF0/Y0FJUko5Kj8oL3BJJXk1PTVPWTh6dXUoJjhbaSt1V2ZbNEl5fV0mQW1vPjI8QSF+UXBKW1YpNz42YHFkPTNeIy9pVlVgdGA3L2A8YDxzNX4ifih2TGE9bj0uRWw/aXlvUTJNb0I2dnVEIjwjQjBeMnYvU3JVTyZ6djxzWlRdazxaQWEjI2ZN'@; put 'W0UmOjY4Yy4wMUV8WWhnJEplPWpaVF5iZkZoPFQhQmFFKDcvJTw1SDpMOzVDZDdmWzsjMWc8S1padk9aellUYGg1Xk91L2guYW9DRDFtc0xffCZGQkplK1NSPWBSM1hfPjZMb0Z8dy9WajA+YVMjV0V2NDYzMko7V0NmQDFfQEVEeF5LVmptZ1koP3VEQyQ8JjxsYHRgUzg1OGkrMS5hVV1vR2cu'@; put 'LC93bDM+ZFV1NX52dSxlYTdFUylvWEI4aTtXLl9PRXZQXTksXT1SbERMZ1hfKnkqdjBtQWlCM0VJcFVdeThuNUVGcSY1Q3s+eVNudEQuVHlwOEVsNSZ2bVgrWV9IIX4xd28rcndeRHF4VTYzalJabTAyNVUsdjNgdSZZQ1ZdSVRlTHUlN1YhTVhjV2RaNDhPUHorUSFkeEE+Ik5oaEx8a3Q9V2l1'@; put 'ezRIKUkodEhdey4zeU13eSJGYmhHMTxGTnMreWIsO1NCZWd6Yjh0SCMjbWZTVTM+KTIuR0xGXj1wUz5xejFtWGd0JTFzRkxHeHFHO042Ink7LGNOWnVtN1RrOHtyMClbXjcrdiwqWl4zViphKVtvbWQ4fXZ2SzJsKnZZQ3hYcW1qPjhjKjlQNFA7VH5eaWRkMlRgRkFMV00lfEFUMzJ9OUdNSnsz'@; put 'QmBNOVJweUBvOi97YCxNfHdwSiV4VHgsSFtjaVR0Sz1mZWpmT2VmNWg+aXUrYGIsXy9LNiEzRVBhRXp5aS9JUDo+WzVic3lRXjdmfEQqNGcjQUkiNFFgd2NzLF5TdlIzOFdoc1RMLlheIUgoZEcodEhsPEloJEBGYEdsdSxrVDYud0pocSlAJk90USYsPyFtW1prd3J8P2p5Wit2X31vOCtaK19S'@; put 'TWpOVkZganlDM2QxRzR9eUk2OkBZXWImWiYoR1csPHNKamJ5YTxnaV1JaDFnaV1JfntZYjVqd1FfWnxhTm1BZSM2LEowRzptRVt5d1ZNX2BKT29aPEgsY2lpbGdZOWF1bjcpUml3SVhDcHo4dyp4ZENJUS8mR2cmZDFdMFcvWmdmWGEhPXQhJG1OfTB5L04jTVExR2cvc1JJYlFpL0A9LmhEWl47'@; put 'I15HaUdOZFM8Tl9qb3YmKis6JHErbEpXYTxOVUZJXmZMbDpuMVYpOylDUCM1KDJRWG59V21ESm0zPEFGb2Emc0NWc29OaVpVMSVMS2pYTW0jeTJ3bThQeDt2LEtFLnk1QyhtUlFRZSQxNHR+dCtpNWYmbSNsU1B7VzdKa1FQUFtXWihddEApLjdgV3EuV2MmOjZrSzgkNW1JekxzUiRwUWNgQ0NI'@; put 'WmlFVG5IZTtecylpYG8vUlRLIkIyblduYXxacWdaRkoiTE4oPTIuTEZuLGRJe35JVl0+YHFOfkREXV5bbkUkO2w0Vk5xPldAXi9Dc2BufXoibHBvOGN2X0VANWc0Ti9wQXE6YmB5d1ZuQ0t2OiFQT20rImtATncjMkVIWCRmMXguOkglYngwdW14Jnt5azhZKzArUnFrNj5xTG1wfEhlNVRtNn0z'@; put 'UkNFNy8zfVVLJStqezxmX3dbSHZYdl9NNF9VInc4L2N6e148TU89P2Y+UF91QHlpd0EsbTp2d1M8PEh5NWwkUTQ4K0FwN2dmR0ZzKXEvVEI3Xy9OTEpRWEt0OzVsaXt9dkVPUHQ/OCZYO3R1amNQTG1vKzFtOWRTQ1FeeC8kUUtzez1VOGlZUTZBMGVKOEhzZ0Rxb2luWD0jPGRHOCw1TjsseVpm'@; put 'MTplSmB4aSFOeXNYTWE3OFM5YWFlO1tkU31jOkArLDAsQHNmbHg8IUV9I3YwJF5qTFNkLHpReVJYYyhdJHhiXmJ5QUwsZDkwWyw3bDVofmRRNkxlNnUsNXFaMnExNWMubHp3VlgxRntVbVZ6RmBHJVJ3ZXlzTnV9djt3SktULDFyMjomRTtfZF9GNiVtOGFEXlp+VUoqOixzYEpxJSV2UnE6XTdd'@; put 'R2sucT14Xik1ek9oP2FYIW0yU3ZSUGt1MnQiWVQiOzx3YW11REYuIWAhWW1VR2d+PiZuU1I+MzxzbHBESkt9RnJPVmldQXY/a3BQPHs/Y1A2U2J6MnoqPltCPXVVIngpP28jWmJVelkrV2lAUCQ+aVReXXFmU3lXJFosZU1XRGoveUImfmdRakRNM0tGfV5acyRWSSFnO09QfXkiY2p+WXJoLjMo'@; put 'bVc5OXMxeG1jMztLX3pwNERLfl9IVWA/dHV1Mj1NOkczfVhrKktKPCheeiFrSio7JktYaSlSZz5od3tDQU8+UGtRNGlZaW19Tj0kZFQpbnReeDJbSiQ5c0wsXzJnPz9mIWojMjFZRkw4Vk1TKX1QaHNAUGoxej51Uk57Q2cpbEREO346UlAwWHVHcXVudHJ1UGk9aFVxVWNvdVJOPmk/VzgyOXUw'@; put 'ez9XODI3dTB7dUhocGJ7bVJkYzdVRGpGTSwsITVVKTpXfX1HeUhjMl0/eDwvUVNVL1Qub1NhLzZlO242M2dYTXJAXW51Z1hxRl9TbVA5d0hnaEh4PkJUS2RzVHUmd2UvanJ8JjkpMjhJMzlUfnl5MFBAZUtCSEI+V0VPdU9OQGZNMXpBKyZPdERpfXwyfSFkZE49dWphNkwzYy4zKChObDd5QUB9'@; put 'NGtfamNgInY6LGsre0wiPC5hKkdPVGhHSGAoTWFKLDgzdWdKXioxdTYkajJTQEl1XjBNO0pZeSZVVylNPDZzezBKc0UpTDVOJWA4TzRubCtpUHxOaFY/N1lMZm0wVWtAcmwrL1Z4PHc7aDZlTDEsfDMzcFpyQFdOV0FPQnV1akFeRDB0ZC9Lb213QDFxVDU7WW4wdyZzRjw3YlI2TX5JMlhiNCN8'@; put 'YFQrPThFOCY6NCtYY1ddSTAsW1QiPkwqRElYLzRtNFB6RE9NRVBEKih3ITxrU2hbeVByVCtBZUZ3PVVsbjxpKjtlLypySDt8PnE5KWZvbWd1SzgkWFFfRX46RUVUS3hpdFg3MW53Kn0kc3F2MG9fRmUoZE9NfVB1L0lYUVQpcjcye05PYFU7V0gmbDkjaGNKNWxJTD0kP3htczw5WFROPy8xdk9G'@; put 'PCV2Q0tlSDtYIzQmezhmS21iWiowcDVxZTxXUDc7bytSU2RiYDI9dllyWDdAcWdCOFlGekgmUz9pMDtQcFpDX1pwd180YFs8MSpDRmo/MlFXbyw3ZFFTZ1tjW2hmcUxeO299NEUvViVhK21BLF1lQiFXRUcweHk6a2ZxSnNsfUNjX2V3ciRZfXFAUl9WVF5iPWJgMlNAbUY0ZUc8UFBRWXY5L0Z7'@; put 'OHlLe1Ipd2UkVE5XbkxMMDhORHlqVkhneSh0ND8yLFRQZXpifDJqM2Vpe0E/X3R9WiwsRkAuVHgpbnQ5VHtULHJrRjg2Q1g1IygpdyQsbC97LlIvZ187aypbTD9lU3d9ODw6LE06cXFvdVdNYFgwRXMlbSxYQXVAW3ZXey49PH01Rmpidjx7ZW57fDpsM3lZYSFSNj5vaFBGKGY4em5pM082Pmkv'@; put 'cHlyZncwPmxnOzZsbSQ1SXMqeGglZCVaa0tUfFZdW15VO2p6QDEqTCpnPlkpTW9TNUo5bjpZJjVfdlYqWSkyOXZWcVZHSSFERi54PCUrYEtIVStyY0NDWyI4ekEwUHJJaGpJdFY0dUw3Pm08dCFEamo1NUxgPTlacUxsaTxqUGpeNzEmWUlnOFJJRSt4c3JgX0d9NSNYL1t4a3JYNVpzWVFzcF9N'@; put 'QUt9aCNyJklgbjUyTkxtflosX1okXlt7LH1wUkkiMm46SVg0RXFIcGZYWT5jS0pxLy80JTZaN3puMjJCLHQ1OkclTjBmdFtafld5RFozR2F5RSFyYTF7Q1JDUGU6KkQsKUYqUnViW2pJS2VKKk8vOV9xZiNJRkthVm1pK31paVVVZ0s2ZWRhMHlUQ0RAeHQyc0wrKHhxcSQ8PE5lZX0odTB8M0hY'@; put 'R3RZLj1bKHhJdUBhSFJjUDM/Q319R2hieHg5ekZHUmMpPUx5WEc6Y0BgMXJtNyFmOnxHNi5nTUpmNU1wZ2V6QnAzcHY1SSlOaSlbOHt6eyhlVUJxPjZbc0wxYmh4WUN7WmsmYiU5emJyc2Z+WyN6LnEjbHFwc2p9VCEueSJHPC4hTCp0JFRsK2tYWnNXS1J6P29HOVJqWExKa3dJMyYpImZMZUBI'@; put 'N0s1N0RAYW5fYn5uX2FzdlpCYz5HPDw0d2lQTjBlITRdbCldZmBeSDdnfGBQNkV0fix2R019fXlGfGElNFB0XVluYyM3SW4rKH01NFlWMCk3PDxyVFU/Yl5GIXY2MiErdH5wNz5rUm9MTEN1eEV2S2BXWlg9LGBoekc3c0pnempDPjRSNHk9c3RAPH40bjVIPXIjUXdSd15lMnRedmsrITlvTH1O'@; put 'U0BmTnRyJV5Dcm5hU1oqYmxxKWFjd2VjIU1AazduYiwpRmdLL1MvWkt3P2heL0RlK2w2OjxTfFprcE9pSzkjVSkvdyVIOk95LjZGVlskdmIsSTEwSnFNfDF8VVMxLFtQK1ZeTENwTU5OVUl7UXolTH5yVF8xWTsvVX1+ZjNqMlkuJj47QX5HXShMTlAkZFszd2k+dHQ6ImUqZmRNbDh7W0FNWD9L'@; put 'NmhMbDU9eVhEelphMGgzPzVdSTo1ekc0eyQrIUwiZH1YKEJkcT1YTlM5TTt0Jnk0b2ssIWwxP1pkYXdbOCZ1UCsjWTdqc31IRHF4QGlxRSJeTzYwKVp2UDBIZjFHJlhnaUdDKFNuLGJJezo4OGUmbjdWajspeCYuSSFNfFAzRUYzPnU/KSQvVUohSmVkNVFpKT4rJGNbY3VqVDVjUXllJVIlUD8w'@; put 'ZFkze21JI29YV1pyIWVII3h7aSVob0Rvb0VtZHYkLjJ5NkA9WFpYeipSUXh8IyMuKSFRfHg+cFE0PiEuWihidz5MQjVIbjhrSVkxVUlYUC5geXgrdFpJait2OlVHenEvd3Q7JUZbS3hpYitTZXpUXmt6O3U9YmpENmdkRHFMRE47dHJ3SEVCJmAvfGYufH1rOSFSdTNwUiNjKnRqT1lLTTZvcFhg'@; put 'S1ohTDFPX3BaPFQkUmNDXi9GXlV2a2pRN1hEei8zM3xEKFlXaSlQK2QyZFtIP09ZVSZEMEl8a3pmT3dmP0gjJC43cGhCaz5jJmt4VCw6Wj9XTUsld1V6IWw5QFV2azV4fCZTMDc+W1cmM1o4cUNKJUVBYF9pMjlQVnJ+fHhsMjlxZmk8fCNVSmokYEVTc3k7QG8/eF4wIXo2fnFLVyl1Tm16IXo2'@; put 'UFZddWF8PXR+cXVTW0RaJmFbWSowZHRYfDBRITZ7VytQN19jaU5WdyErazw9RGFKa2UzcDtVMzx3cjovWD4zVUxsKi9uPCUueG4zbipsQmRlSU18RHgqZjE1S2I6WUlWZkArTipzPFpLWSVNcmwuUT1VOSNoVFIjbEtOM3RCTGFoaGNqZkBaMlhdSi5XSlksWiw3cGY/IzteSFhqez8kbVgycXkm'@; put 'ZGssTWR8WiUrNT4rMDViZFgmNVY2bTp7aUp3RzpobzpZIjNHPV8/Zk1TTW5NM0BETWB9UVRgYmRyaC4+Vl1jT1Z6Uk5QKGd9M2s0JUQ2RSJYSGxANCUuN3A9KnJzLGAkK21QeGZPNn5wKEIsa2thOHV1QlFEeTtXT0F6PkwxPz9DYDZKNiUrYnt+YGpRZXIyTVI6RHo/ST5AXXs0KUwuTXtfb0hb'@; put 'R21CVV0/fEM7eXdUZVNIdUtudy4zMzJHXyhTMjJHZ2Y3cS9ifTpTKmBhez0sRyUhc1h+UTcmRWFPWV1gNnU/UGh5RXAmMFQ7N3ZKX2hAKkUpZkZyZmlwQGlGJDNdT24yek5HcnIzNXEmbyM5KDU4M315Ok1MYjsxV10+W3ssYStoXi4kY15oW3E8JS4/dGdAanA8aileT3pOKzN1W0NZRUorPy5v'@; put 'dHxdWUdYLkZHN0xQSjluYlhdMntUKlVBLE19dWpIfnRRTWAlSWw8SS52PTgkPFVkZlY4ZXVacVdlNjR0SnBHMkxvLjRveX5lJDRAUXokY1U7fDY7P3RtaWh5Mzt9XX5KayV2a1RkUCg5V1EvU1IlR11XVHp4RkxEJSFhdHF0JUdya28mQGptKWc3Si5QWTV7VE44JEc6QE1qYWVnS25eJDJUPFBq'@; put 'XSx9eWMhQDFVVmRyVTJ4ajs8Zm1NKVIjbTMoW2EkJSttcGg8NDpNYSR0SDFpUn4vc3k7L2RMaHVBLC8lcio5Wj05NEp5bStwaSQ4I1F6Xj0wMz1jfDxKKHVrMnVkTiZYbUBqK31DbHF+NEpoRXI2dWMmZ09nemwyMUxSLkBiSD0iTCtxdTwlbkQwMXNdKyQvcyUjXSY4JGQiUktVUX15UlRLL1hY'@; put 'VXhdUkZFV2VwRWF+KWkpfXZmWGhDNUE8OEYlNT9nI0R7R3dSQSxGaUZ4NHZ5RXRHd1hOO24sckwueWRYQCw4aSQmZlpSSUpkWnIvOWZ0Kz92RltVdjNtMj4uMVhiO3MmdDhrZnpUQCo7ZFt9d3srZlVoKWxeOT5hcmc9Syk6WktLJkgucmNoIlZPWjtQPFM/Y3k7W0tmJEJ6YTB9dlllPltdVExV'@; put 'ZiloZl1IUD9yeipNYDY/SVc0a31qIz9lLF5RQjc6Ui53bE1mIlZRenRaem1ZNChdXl9GUVBwRX5sYm0rI28vV2UjSzgwTHN5T2JmaiM4aUNLfiUoeTM2ZDJybHF+X1F6L24weztzejkhWXVlTmdGLitZbSsvZkhhNUI7TilkN1d7fDZaM2w8Z2ZxdCZdI0lEWkp1Y3JBTTdpL2YjOnk/UltCMlY9'@; put 'ZWZNPX5aIzJKRG1YKGUhZ1NfMUQmPXFwQXtROn1SMCJoR0JANE10b2E0VFJyQklGLn4/QUprWVdQZGNKVyY7aDlJTFtpWSY1STVSanlHclhGW0tQX2I+OGwqI35iYD5sPlcsd1Z3JFszVDFPRmdOOyoxZztTLjFbVj5bXjx9PmZHYysmVDZWZ1Y+WzdVeiwlWDMsI0V2Z3RqI1ZvZXVeb29KKD10'@; put 'OmNWOy5vJltjPlVOKGx2eEt8OXpqYiRJLjFgTlgmfDwzNTMzUz45NC4oS0tsPTczakB9aC9mYiVRNSQvQkgydis5ITREU11nLjElKW4qVzRVayhmZVNWOkk3dzJ+WmE7ZXl4ZyN3UXYrOShKaGVAMGxwYSgsbFBgc0VgVndpV2RPU3xtfT9qYX16MnAiTnssW2h6YldVI1d1dHU2PFZAanFMKld9'@; put 'OldddkcpUlRGQmJYXSZpem81ZG1lIStxSC55fGdASmp6e1ptJEFvIWglWlV4PH0uNWwoNHdhTWBLUWx2WUUzMEhuOCZLS2xqY3BWI1olW2QqKypEUChfIS9sNTxmRCV9bWFNMXdwOS81LzwiSXt5c0tMV0ZMSkxgb2dyMT1Db0gwT2hUSWJWZi9bZzdKdzMwWXE0em9iYmd4W1ZXLiFySVlTdzQw'@; put 'VHtPT2ZOZk5Sdj9mfGg/PENtdVJKNVo6N1pCdG4wRzZjSUxCMGozVks8R24oJiZ5KSozVjVYUz0zIXRFSyFpckhHMCRZPDFOYiNPK2w1L1lYaUE7UjZMeioiMXRmQjRFQFs6SzF1aSM0ejQwYClGNl84YmJTKyhQWG5SK3lNYy5XL3JVOTd3I2dyUCNaOUdLIkJdcjhQdFlxWV9pejYsbTQjelox'@; put 'PFVQNyFfdzsrPGk0Sz9jeTNtZU5oOHQvUndsP3d5cTA7YGdTK2U2WitTYDh2Wz9pL0t4ZHhWem1HZFoqe0w1ZFNKdU4kSyJTaHNFPm02ZVZOL30iSzlvclZSWiVkUFh4aTc3R3l7ajcwSCRPaExrcSt1YlJUXVg4OmFWRDksTkwpLDF+QEhsaSk9VjYpOixDXUJgSUw7XjFmQXVDeGZhXUgicl93'@; put 'RGI3cEUxIyMidWpETEtIKyhacVZyQmIuXXl+WyRZKVpXSCsxRytROl9tZDZWaDpCO01WUXNLREpiY0dHPnlJOl5xUnglW096T3ojcW14cyZWSFo8X20yQnJvM1giLlRQLCk0Z21HP2A4Kys8OVpfPV5aSSozdGZqJS82a2orUD0hcVlRU0huUzoxJHBkZH5xY09YSU9JL3IlIWdsUiE9KEBLTHdQ'@; put 'VD9sTWRVO2RwJi5VZEBpKzRfVlBeYmJtRnczMDEkWzdgLyRIYUd4RmthR1VJImBJS1dVNGIsW3YmLGs2KVBCU0ZAJUJoKHA8WFV4RERXVUhTYFM/fWBOYSRedC9bVjx4L21gZ2VJWXFCYEhvJTpUT04sT316U2RLfTZHJWNxNDJYWGQlL0VBIyhSTkMie0UxUDduRmAqQlU5dnNVQW8iW2hnITl0'@; put 'dEwvYS9JPWljRVFBQUFBQUFBZ0FBQV5VNCw+d0s6NUhMTUx0MkkpMmAxdGpMe2l2VWYoYURZLGIiNGQvKXlObjIoekdvaFhkSCttIkkxfnJrV0piSTM6U0BEamBZM0M0c19LN1s7TCR6bzBbMDEmQGgpMn4oWHp1IVtDM3pIdEUscCpiXldLU0xZNipuYGUqejJ3SmhzQkZ3NDZJIVQhPn1LRTRU'@; put 'ZWgzJmxDLjE8TCZedzR6N2hZNUUseVgxPHxtcH1EQzhwMHsvOWtpcmk3QTxAOEAxXiU2VnsxdjZ7XmgzSXwjaDB7RiFSaitgOCRpJmJVP0AvQ2J2YDgjU1lUJV5Ba101YF1aUTVLOFRge2lYLzEyJUxsJDJqSl10SmBzPkVsQCNaRjZlbmZFLExYZ0N4ZmYpb2tRJSt3VSEmU0VVWDxtTXtmOF4s'@; put 'WjRoUUhUVGswZ2RCJXY6c3d9S1ErazdqREMmOWxwKEVnK0ZFZkBRRGNYaTlqRHl6aVQvdH13V3Q1bW8menkjJjIlTlQiJnIlOXYjVzp0U2V4W3w6TWNaTGNvMG80d2hROjchQUZnKkxYazZsQzRTWUNGV1ZSWCNLOyVMY1VvIXF0T2tkTWRGQ10kXUU2czVbTVpTZjUxUEpabT81KjB0Ujk8W0Yx'@; put 'KkA8RHJtNVVxZjVxc3Q1LGRdcmhjP0JobGtOalh7ejE8fSllQjYhfi9hd312XnldSmxufkgyc1o1TlBSO2tmKmY2b1NUPHkye3tFb2A8JlskRTRKUD9XNi5MW0RHTnxGMz1AOS8wdCpDJXoqYilOMEU7KUl5PWppX0okQnUwS2l2KERicDU3ZD08QkRRV3k3YVUmZyplSHgiWFIjWUNaaSNsQjIy'@; put 'NUUjfEoqUyU7NywxfEosLDpzUHgian5FRWs6UjwwO3Mwb3FxWXhdMGpnaE51YiFSKk5IaUAxemszJW9CQktCZUs/YiwyVFduMXVjYEIhfiVGKGNPXWVeZ3o4IzZxZTFQREQqVyRoVlB5dDd8MH1DaS8rdTpfQX56KTwmazcmI09UKlM1OkBmMDY3b1k1KTNGcV1JUC5COzNeXW5dQXM1O3QwcExQ'@; put 'eWZlJWchPTZJLClheWhaeVN1fnE5OXhgJjtUclNZWjs1WVJ9MmdVRFQ1L2ZTeip4Ums6L3JuaFI4PFghQDwlbHBUeHJLdFlXP1hyWyxkfWV+NTJARVVhWDl+YFhrfVJHWVdwNDNNZS9BeShfJmlDRU4ucTEsa3ByRWo2Mzl+ZW5UcTlUYFdpb3wxO2oiXllJfl9rMDJrNygyTWlKV2ltTV5DRjBL'@; put 'cm5EQFgqIWt2Y21oYTtHfHN4KnBrbyx2YXheI1s0Y3JGTFZTV080N2M+YmNiMl8md1dQOkYjYyJtN1hkeks5ZUsvN3VQJEdFTlBYQDpRSXAoV1VsQjhnITpTYXQrYlB7NDhtR2pXQ2xCODBlQElHPHUzSHg5ME9fNl48Ok06KypRMTBWX1FASmd7N0pYN2Z4NX5UQ1tMRiU6SXcoZ09lTyQxKEpJ'@; put 'RX5hY3RmKDQ3Ok1IV0w1QGIwW2QqXmpfLGZtMlJEXVksKVhfNUlRQXg0QE57fkMmNkkoQ2wjNHlpNlpSISIhPExENig3WDlmPWtLRjt1L2R7Mj05YCIlKjlYal5qejFuL24scz18JWU2NjsqaDBdKyt3dU0ja3Q9TCRFTkpLWlk2a1QvbmwvdyFBb3B9WzgkTHpyYTZlL0hVdHJgJkh3L0VKLFE/'@; put 'eSFLYEh7N1t7aFVfQUFEO3U1YVtMRTU4LDREJkVPTmBfUSY3dyIuZDo+KmFhZWZ2VSg1bCUoMWsqe1JyLEIrWld2Q2wvQjojdFJwVX5NT0orIWhpNF5lYCYhbVFoPT9IVHREYXRFU2whdUY6a3hpNXJiV1FHSkZkNzssaTlMZ0hrOnpWeXx7UFIheEtSOmF3WXsrWEo/TUQ4YTxeI31eRjpSIX0y'@; put 'W2gwaUg/c2Z2PStIP1Z1WihJSlZKP0IjSiwpT3thUG9YT1NPKWIqSk1hQz83dnRPT0BmYkx9KXRzd0IxL0d1VXNJZXx8dk9aRihgfnlgOj8wUGFIPlkmcDxdWkVJcXJoW3M1eFY8MH1oeypbQU9ZMmx3V3RfZDkzXlRUeDEjNE16KnFrcWRJZURpcGlefTc4IWVqVlJgVmh5UFlRO1pmQXc7W0dD'@; put 'dWRPKmtoLi9WXUY8cUNCNXBrSihoPV5KKzVXI2lGPy8lJD5CUC5hek17TEhefCx7e3xQdXNNL2omNkp6WW8sfCx3fSRCMWFJeTxdSDVhejRoMSVZR2UremBqdzgmN0BFcE92K0RsKiM1LD1nMTxgPU12LCgvUFJFaDwhQkVRPTdAeHdLbD8yWTRwTiNlNTttenZ5JEF1ZVExXXEvWW9gKjpWNG4p'@; put 'W15SWiU5TnImNFhYcHBWNylFITg8bmhsXyJIUnBUJFNSYEdLUFtKbGcqfW0oV1guISkmWFQuN3ZtUkVMaGBHWDVqUjJjdklDbXluUkxHeT8jY2ZNRW1UfS5zO2MjcF1zRiN3YXd8JCJaKEt0IzREKkooTj1ed3MlVkc2cjZacFVkP1NNOF0+aEdXS2xXYHhxXz1YLz4+bWdUISZgdiU9fkJ8XWYq'@; put 'TDsjV0xERno/KnFaWSsmTXtZWiYubF9YUHpjQylJYmt6TFJWR1tELG5Zb2NeIz8rMHo8WyNYem5RWENGKShvUFVNSWlGPTtKTiw6bnpxcz18dzVFSEwuVzJwJElLbWUqaTlOWWNFXnIheWApN05ZY249RWkpYUwsfUNQTjkubWpDfUdDIzVYcHZ+bTtmSzovMixDWl4iQVZNYTVmR2drVSx5TEYo'@; put 'UEFBQEciWlslbDVMTzxXWVd4ZyJWeXhIJn0qIj9wM1pBaTd8aWlhcV9ZJUhRI1Qidyt8TytTclY2WVNUVUU1T1UxPSMjOz52RXdCTyFkS29kPXBVN2A9eCNKPjNtYVclLEgsXzw7M1VGNkNbUVohOUo5dDU8UWAjN1t1NnNeJk0uNEN7eDNKNld5aSNXMlVhUSJHYmJqP1pQVCg8flBbfkVPQCJs'@; put 'M1NDLzhFfmxIbTMjbSFXUyIkZFh1RSp4KzU1a1EyQEl9JiU1TkR4bm1RRURWe3NTZXJ8VTsmIVdMR249aG1tekVTRXJGdm55ditzS1tAWTRhKEokYnI/JWdfQ1cpMF9bRlYuTE9nKl12ZVhSQTg/NjFGdHZQd3c/PVA7VXFPKlRUXXw8ZDJOW2I5JF8sTldrZ2dRMG42IkU5biFKIlhKRz5PR3Nz'@; put 'Zj4rc3pIXnUyKzJMfXBnU08uWUB+PkZ5RnBDVjojeylXXSVdPCh7KzVaXzJOIy9Bb3BgfSFsPnlaNzg/PVA5eH1jJG1BNihxM2xyWWorJk9DJVhNfCpGcVJxZiF9d1NqO30jWUxINiVIIW5GWUl3LEU2RzVGYGJ6Oy8haSFNdGlAZi92OXs+b0UkK0s1WXpHb0EraUQ/LzBZfEdHMmBeZntkWF80'@; put 'OlNsZXVDb3BtOE1JO0kwQi5yRDhLfmU0fWgxTH5VfGRIJWhOYHtVXylWM3I4MWx8b2c6ZTxXMm9hQiRhS3MmOHQ7WD0lRDtLLltlLiRkJmdaa19GaE9pO0twTCxwI35yfD9CXyNyJT51MSI0TUJyVWA+d2RNSVoiWnZpUz5YQiE8PXNTaTxGdyZsJDJGUElZX1lMPCZHYHkuRzE9ITEiNChDbms6'@; put 'dUBpPj9xWjZOQm1fQG0pd1kwOG47QippODs4cjx8eSVEUUA9dHAkM3UzRVRbOGBfXll7eVp1L24zZ3tMJmZ6eHM5b3Apajk+aW5edjM3dj9HZ2EseXs+JnIsM1RdUVFWN3piPiE0Y21gcjtvQj8lWWBFQWtqWDB7aCxteSpQPCo5Y3F9Ty9dQTd9RVFmbDNOcW88e1hlYXhlRi9JJFJIVSRrP3hK'@; put 'YHAzMSRYOTlfJCp8Vm80LD4kS0g8WFBPYz9FeH1vVHgxSjNXNWg4L2Z7TlEveHQ4SlAhIyE5XT5ROzM+VCM7MD59R3NLMzRIL2VsLk9WNHFmYCN4Rm4lYF4xeF1aKXNNQmokI0xZT3hFfG45OW4lKDl6e0U8JiVic1RGIS4qL2YvSHpZYWMvaCgwP1F2TVEsJWwoYzgxUkVoenIhLGJ0Tz1UeXZI'@; put 'TjAjSWlZNCUydzpVNCEzL1UsV0x0K01AR31IK31acUxrNTE8M2tMNkNrfH1Xdkl6Om0vKDZwcWNjUXBeZW5pemp1JGNFQkY/cDRjb18oYX59Z1Zyblc1SzchOXAoaj8oZ1tbYkkuIjBFdTNDez8jfkZiS3h9WTkyZkZ5dGNFP3xkKGEkRU0xcl1eRlcmZXkrcWlofXtpfCl0PmpjSlR9OX19V1ly'@; put 'fWkwNkdoKnx2Ukl4LGIiX0Z9LlNLTV8sdyxDcjoxRHAqPEwmVWxsL3g8NjdHL11QLG9DeXtlQkc+bz4pZ1YodmhBY0tEcDhDVE8/fTAqcjBebTY7MUozSUQlUjRAV1pyY0N6KHh5Pi5uMjdyYFpnTSlNWmByLzZ6OmRbMzo6Pk9KNFQzRSVeQ2tBXWtsJl8xPzFjMVZeZXdOSH15S0hJdi9Ga1Qq'@; put 'VyhPKSYkcV5SXllSdk9jbCVlRSgyZjs2fkZoRW1xM181VkhybGhsJHdwfkArNCxEZ1lsT0klUSlIOHJyVHY5STJmbWlhK3xpP2RfLHRJJWolaj8hRHE3Oix6X10zPFUyQFs9clFBR01PMyElPW1sI0JGQ05HVjB+QUA5fSpLPEZBNFUyYW8zPCVlUHRhRVV8QTx3Z3NmeDNCR247JF9FZVQxK1JN'@; put 'MTVKa0NsJEQ7QTcyJjBlPk9bIXBqKWw7fSV2N1cqWmFYQD5jW35uaXNuTypPUzNxY1ckPyN2aUYxdlhMcCZwdG19YSwjSis0MEg6eGVVKWVmWXVye2psejh6JHxsUWpFIjxQOXw7bGVvQXBiI09eKGV4JXlFZVRoV21sVCldNTVGcz5SMComLzFqakd4UjNibWNuYlVEWVhGbyk2S31nVVhwU0Q6'@; put 'XVpDPDklXiUsfSFYVDAhU1V8WU8yTVIlckVHP1M5Si9LfXVCdF01a2x+Wz1DeUcjZ0Y2b0JBOiF2YGt4OzVwOF4xZFFJaFRHVT1MWmoubSRUYV8/T1tSRWQ8ang4STcleFkqQXlIN0F5aH4yQkkyI3FwV1EycFA6N090c0xTNWZRPjZGLkJDeTw3cj5KUSUuZV9iKyJvbkpEREY9dXdhN0ZVYTJO'@; put 'M2A1OEAyZkppbDtsKmdvVXEjdCtbVWVAPjxocXA5a0xBLENNNG5WZ2YmW0xdWi5WT2ltQUNPIjR2U1c4LHArPThHbXtdelBZQmpFLy4hciIxaCkhWHh7NUtnMGJ9TzpncnQxTmVJbzBfWmQsJndqNn5nPVklfCUxcUsrIU9LckdMayE/XnRBRWRnO19wO3V8ImZ1WCxkQCEkYWJEfkxRNH5uenpI'@; put 'MGA2eyFfUV44Y1ZtSipQVClfP1l8dUBYKzYwVT9rNVhKYVl2UTpGWDNzX1twbzZuVWIqcDd1UTRRZD1VdCJtSmsieFZtTTcrUjA1UkhQU31qbS58XUVDWlA+NS98OEk9ZkU2PWxCTmE+YkVfYTZaKFlNW3I8JHAxUl5FX2tlNlZyaTErNXAsdFImfCVNNU0mMVtuRENwJiQ/TG98LyYxMVM9SEhH'@; put 'JG0zPlpxZUQ1S3hEI0tTPG09YnJCeCJXPDV8L2h0Ry8iJkBFaE96fmA0RERrWnZXZnpeXlM9ZF4re0lFRFJJPT1yRHssaF15Lnt5YSNFX2o9OkN+Z0hBP25nP1dwU3Zue0BsPH10THtiMWZIazRPXX1WUnw3ajBrLmYqaUJvNF8yN2p5ckxjXy41dDluU3JVNDErSX14Vkt3NUZoTSRwOX1WVEBp'@; put 'W2hGRndhXUAzUEouWmRrVTY0NHQ/dFhsa2pSOD9vKmRCUDZLSDgmQ3BuZChITGprajZvTkdYWWM2bSVsX2g5OXNVIitjR0Q6QEYxdTAoYjFoVns4QzhbOVZaT2FFZGJhcy5CKXZnTCRhLzo+M15UI0g0MHp8ZS8yNGt5OGYjKUlPUTF4bD4zJDQ5SmdeLDUhMkApbWhmcEwrZ2E7bUclTnJdI3ci'@; put 'R3phSmQ7KkBKdjg1N1gkdmImSWc2WE9nVSt3Yks7UjNJbF1pRGQhJCVQRTQqSWd4WW5IZ09AIVBpPXx6QlAkd0BHfGZgOGt9WCFiMipmdmx3N0l0O1tBIWtIIXM2ZD91SXRHRERIZl1zVG0wcW82dnE7SjlYbXdGUTo0dFFvdXtaK0xWNkMsU041T2lRd2IrM28jY3A1ZVsmZyU2TCo2TG80dm1m'@; put 'cygrIUVwOj0hNUd5TnspKWFdVlF2SEBncE1iXU11eXlYQnFkfG49dHtPTj56Z2dmIyJXNmZpLmpHUiF7WyQkMFUzZGpLX3N6bmJ+R1JHJltSSy90fCpCa0M2RnwqVSFDI3hLKD9TQ1s2SSVKJV0ieHRaaUNXYEchIThJTlJ2dlR8QkQvMGtmYCpAYUkpNXEvTExAXnhwMVhVX0JkWmk3Zm80Njd4'@; put 'Il02W0dnY0BERVozZkM/e1MkUUQ1M1o8NWZuZkRnLiNKRzJsKU1uQF4+I3U5KUZeYmNdeyJ3K0tpJDVfZV10XzUsYH56WkA7YW9KNXFnXkAwJUw3eWd6Z2MsW0pyK2c5b09UQlhpRnpdNHAxTjZ6TCNad2Q+Pzc8JEJLaS9+UGI3P3UuWzhucU8+LDxLOUIsKTE+R2ZxbTsuLztyYkt9JnZudUY7'@; put 'bkBaci8yTCpPWnheanp2VEkqcXFERGdMciJOSyUpMmBCMmVUYSRAT0tedWpddyx7TjhucihAey9UNF1ROl1vPHltdHZRdmw5SFM3P0VoVykyKy5xNj1dWmI7RHpdZkQ3SkdbeDRoPzE3RDAuQ0EkcS5UKml7KG0vZzJCdGZuSjJVTTx+fVdaRCgrajI+eGFZL1F1c2U5YyJqVTIoZl4/JXVPYzh8'@; put 'MixtK2tVPFFoSlZLXU9WZUQ3dXs5SEJNQzsmfGdhLFpoWUFheGh3RDh0Wk5lbCxrTWwvNyJnWENTUl90NHldTGR9bHN6P0l3aC86STkpe1RsWXMhRiksUTtKbFVRSkpiTnd9ITJraS4vMHkiJWszK3J1YEg7Mnc6OmxDfV5ZSCx8MnM0Ynk9WmBzJFtEc15WSUFpdH1tQTU6NVRiSFM4RjhmJjxG'@; put 'bX1XRGsyKkNqa1lVWHNZRnhGVVBXLDJGLmRWUGljWVI1e1kuS24iJmpRJkEzKWtgdytrREJXe0szcjJFKDpCaFhxaWBKPnoiS2FFVUgyPyJ5LExSYHlmez86W1lzWU5bQDd2QWR4MExYInVIKF9KQ2J5ITBgWnhKOmBRS2p9UStndXhFdFJ6LzpJNXVgT0k4bzlVRUMsUkBxZFsiS3JZSD1zQnVq'@; put 'Q30iQW1MLHA+SH5WImxRaGJQfTQhI3wxNj1xUHRTP3syPSVYTVBuKVhVKGNPU0ldNm9ofUYsTWxKXSo/Iz0sdFt3SmNvYDF1fTUsYVtwWFdqRG9tckZKUTYxbmQ/Ol9AOl4yZGlbKD4ranBxfC8zOV5saWRULFkkSSQ/S2BXby58Rj49eEtUZ1lWNGdxRyV8cCFgb1hWeSEiQXsjMmV5fmRNdCh9'@; put 'bGNWWjZKIyVDNSZtczI4fUA0N0JKXVJpTHY8JGZLamEwWD44fTJlVGxdOkkpMHVWUWc8MEp3V0lIcXEjSiN+P09pZjRZMjB4aE9zRT05NWs0VGV3Nyk2NVdAIyMlW3EvZFdNSWhDS2ZhaU9XNi5FWGQ2cTJ0allnYTdTY0tjLE9aU1dkQkApLDhmLkwoPEYxMGsqNngsVEckPzY3Yn1DTCZ9UXd6'@; put 'LzwjWjpAbVNCLHxRXVpGeV9jP089ZGY2PltTSzBvQUFORSI+cDEmdzJ9ImwqbSgwYXNaRVdoNl0/clJ0JTRPTiFbfHEpbEJNZUo0LissJk08O3dEJHgiRSpPLzUrPFFsYUZBZG0wP1lSXXQoMXdZeHd8Lndie298PFs+dE5RWHcjNj9CIkldJks6Nmt7UlJBTFghWihpSG59UGFObDJXI1hAbit4'@; put 'SjhDKk1FTz40ZzdiKV02e2Y0d0t8OEBgNCR5LCRDNyFbWiM4biI5V3RWUERTPE5TU2owI3F1T00hTElAVmB5SHJbJExLelhRTH5WNTImTDM2Lzd9UCpHUF5FOmwlfmcuLiNFL0hjOmtgWzBAd1JSQjRObDkxb1Q+e0xHWExASTd4aW5UO2NbIyIzVD5KeGZGbEhpU0ovYFteTDkiV2JASmtNVk04'@; put 'NnhzYDYxIVlabV8/fnY8ayN2fVZGYm9BMHVrSmBRZWxDU3gvUyxdb2JUUWRVZiowMls9ZldQWVdlNGBOWnQ4UktIWChqNzF2PlBHMmh1b215PHBDSTMrem1MPUM/T0tNaFVKMXcoS3xxUHl5X3wxUWpHT1oyYSpxfVtsX3RFMGRrTDU3Xlc5ZGZZNE57VnZwSDZuVj4mXUBuMiMpL01aa1ouWCs+'@; put 'NCZIPlgsQ19AVU5Ib1JbZV1oI2s3MkFkMCRmNj0oOX5dLkxgeyFIOCM8e29qWlBbVzk8Oy42KFdvcj51X0podHNGPFZ0ZlVqWG1kRXJZJHcuX2sxfHh3QnhsOlJHVldeWGRZKmw1Y2F+ei52cE9yfE8re05yIlgqTFU7biNaRDcvL25mc0dGUmhWYHN9aFIzR0Z6QkohTGErRmlBdUE+cC48Rztj'@; put 'JEkzbFdQdmx+KkAjUCp6JDIueTJTbjRNeFlkRHcxJEA2REJ6S0tBMilhe0gzd1orZWpiMGZSQCQpM11qVSZzYkJrcmNncjZ9NipvRTE/QSM3YlMuR3Q/czFMWWo/eikvWkFzfWA7KmRHX1M/ciMlcWlwOTdgalJiUEJDTDU6ZkNHa20kako/Z1VJNWR2bVErbjo4R31xZCojK3pkUndLMG0pZjdi'@; put 'KSoweH5WViFle1EuIVh5fnlaMiYhYnFLZWtRREl7K1BXQFtlPzomeTBGXiwlejZPYW9tOCxgZX58cndOUCVGdS9LdmIxSjdHXTFSOCNBO1kwd2hMWD12Y0t3aD1jc0I+RU8pTlFOKF9eTnA6S01EYUk3UmArdzg/YztHd0Uqb0U3XTR3bjF4VzFla2ZgJDQ1dz4hQUNldW1fbk1kc0cvX2lQd1Rm'@; put 'ODcqWjJQbSJ+NmFofCkjZUx0XUpbLyJeXVBrclckaW5ua19DdGsvPURkX0dbIlt4bDNJeEsxOmtnSCNwNUB3WWd6RT1KMEU+PF9FNl8sXy9qOGZOU3xtSmhRVGxiWEd2RUhHT2V5YD4wSC9aNDY0b0g2NGlASS95LCRHbm5NTkg8VTphNmNhVXppKkk+Sy4qIUl9NEgvPUh3PlpGInQmdT1TUERP'@; put 'bjE4UEY9L2A1T2tWTTt2UEcpd2h+aiFfSEBzXzYxT3xbSExLdn5EdiYyIl8iY1FxfDlXSH1EflZIY3l8MFtOVVFjdTJbIlk+QEpZeEI/bEY+LnBuWUkment8P0UheHtAeGdtNlMxYDFiIjVDRXFHaGFkJShXazVrVld2TkpuelVyXzc9MFhOWzEyaSI/aj9+KlhjT0t5VnckKHwkTU1bUUlnRVMk'@; put 'djB7aF5ALkxAYUdFdXI6OTIqZjk9KXF0OFMmY3dOdXgzIntReGFmRmArVjQiWUxQM2l8Vy5OTyl6LlBreE5Fa09RUzRUS0w3XjVjOjshYC9xSGRLbHd5NSI+UjE+RTUobytxeDV5QHZ7eTYxQlBoTUF1YjZAPnIhWiliSXRHRTB6VXY5UUopUUt7cVZsZ2JeMiYhKW1BIVRWd0hKMFl9IX1DJD5V'@; put 'MjdwVXdYYytkRVVDa0RlOVdMP0BSP3RuPihYJC5sRk5PLHtza2U1ImsvRjVsJHUmR25CMWpUdnFfODIlRV86YURISys8IT9WQ3tqWDNAITxiWGhWOHJmQXp+N35DKl92eCVteDpnRHo1ImZRc0JlZGlrXlEsM11NMGE2VGNHRSVzU2ttN0h4Ry85W1VNfjVyUDUkeHVlTUVEPDopXVp2Mzped2Bo'@; put 'L0UwL2g3QU9vJGM0NUh5aWtxMGF5WipCX1FQOV5xeTg3K01VWWtATStCMVV+eF1XUWxYXk96cFR8LHR5cDZaU2NjQVNzUlA/Ki47Mj5xIlhybFJPQkl1RHxOX00sOF0vM1ZUNUgvNm5qeyw3OTlsQ1gwdndJTzpHUUtROylSWzVdRl5LMFBXOHk0VmVtRlE+MXp2SmVKbWd7Omw5QlQ+RXRCZnJ9'@; put 'KHlAUEIlWWRsVSliL0w7M1o9QC50PSw2dEswdm9+LEsqZzFkTTxfXT9PXitCM3dCUCpbJCJDdDVyKXdjZ0xpWmxAbEpIa2AvZmA0LEk/LGVBKiV6OjdUQk9rb0lWQiVwSlVwLndib0Y6YXRYZmtQLjtvdDVHPHl6XSUiW0ZDPnV0WnBXdkwsUUFWKyY+eEs9V0ZEe0kiPUR8ZX0iWkNdIjBuXV1b'@; put 'JkI1Kn4rU1Blb0R3aC94b202dyVvTDY7Xm8mInhaRCpkPklINGZoTmteInxUcm5ySmkwJFYoelpRN2led2VGV0pnMFtrXjdtUDVUfXU2TmF5blhTKTZkcztUeiR+aE1ZaylsdXJoUSslOSFRN2M/MGdUKWd8ZDFDd3NGdiJEZ0dMQUsxPklMbTEuKSI/cURrU1g6NlcxITdOL2MvXmMhfXtaNFV0'@; put 'OTlkdzdEbk43SCVRJkF+UlM+W1N1OVpKMXBSNXpGYlA7QHt7eUpXOFtqaEo+Nnp9ZjFuQUsmPHckVmFFaixvaTxnbTAwPkpfdzpHKDJffUtQSyh8Yyl0P0kkL2xtZit7fEUqO3gidVl2YCNvfWFxOVRCXnhhRU18cWopR0QyVF55IVkqTSxVWVc1cSF6PGtLIm8vRjhqZ1BGISZ3QDl7JS9hUD5z'@; put 'W2NKKTteNE5MYDY+SHJZcHZpR2xnK0c7RX4qO1d4MT4wVCNWbmkpO3tMenZMIXlPZSRqKDAjXiorekFaflFfMytMT3k1OV51bFB2LG86T3JJbj9kbDxpY1p6Ul9bUE4lSGR3QCpNQzJUTTl9XWJPZk9VVEAuJi9uN2NtVjB6Vzt5fVpacW44K2RldUx+OTc4P0QuI1E0XT9JTTE8MylGXyooMjln'@; put 'RXIlLCRmXWtgYTtJTU0iV19iI3Jvcl8qSltLYUtGSntKUUw8Qnl1SntGKkU+KGBDRXcqZ2BxSlBHSkNjcnwuLF9wP3NIK11QKmZ6ZlIwLiUhVTs+YyVHNXxoLHg2VCFwSmhXSyY0YWpncmNbeGIvdnBzPz1+emFsMEhHSTxOa1A9S09vQl5Ce1Nsd3s+Wy9IdnZucCQuTmomLFNvZ2Zpby9YRjlv'@; put 'WkNLTEdsT2xbKm85dm1ienFwLm0sVEczS2tGTl98a0N6dVdnZV9MNGIxSTExJndzcE9XcDopWWFpbz5BZ3lFdzZiXUFlNV1ZYzhuVDgucnlWb0VJVltwPElMajUvXXlyV0tMQFgwN01SUmg/ezUyJX56U31FdkRIZEshUSpaR302PS91MColKSI7VE9rXTV+bUlsfWFvYFduXmNNO15XalBkeEdg'@; put 'YSNBKyElN118fTFhWWpgIU5ZdnszUS5tK2E/YmR+XmRIXVE6eSJ8c0A9SHwpcXMrIWRiWDh+Y1B+OGI3KHNTYUhic2ZhK2wsPn5LREdCPjFVPEZOdXh3PiwsNEssc3JTbC85MXVgTnY3bTBBO0FaejNfcEZ6eVFfVUI3fUpZK0UpbT5EQEB1QWlvQ1lqdUBxeUcrXV80eGA2Tj1CTGFGW21ERTxY'@; put 'QyNKaGUjLlpHL1UkUUwrInJGUTVPTj81N1Ire34yQEI5TV9FZV5JNTpCIlBmJmJOaXtJMD59TmMwN0tCJE12dTc2fFRPRzNFMn49ZkU+SDdfXnhbTi9sRiFWcDlLREY/PGAoa01LRCRndFhWY05XWjUxWVFDPFFyPE8xLE9dOkYibjRwOFtgcTYialQ4SSF4RTRnTXFHUFdHUnNVTXg7SSRGUXNp'@; put 'aiRQO1l5ZGQlfUl7OHZ9akx3bEpIZz5sfXpkKWBMeWFoWjIkTXBpbDo0c3FOblcuKHQwTXs5OU9vUTRwdHtSJSs/OmhHJUJeRWlmfEUwOi8qKGNFdWh3JlZFNUxdd3g3eWIoaG1MQlU5VFBNUUZjeDhzPj0qUmx3WC5hfTdjTGI3Z00hNVFtbnNQbGg6O0IrIztHfnhBPGouYTV1QWM2OSxMOXp5'@; put 'YnYmN3d1Yi8ue0Z6P1Q4V3dPPVZBUE9WOkVUamJrQCFlP0lYYHUhIm8pQDY6XSFPcjxjVFk4PjxPKjV9e1FpPkszWD5LLjIoU1ZNXSF6KThwPCw5YS5RSShlTD9nQyhbaT1VRjs7UHdCQT4hPWFLVmh6fWc8NyVtWT54bFhMRjhnfChXZTdPdFgiP0ZKN0U0IyFDOW51ZlZyQi89ZGE1ZUJpcFBK'@; put 'TSwwaUVSNzE9NHdMTl4vazpdXWlsSFFydSloaChRQng1SVMubnx9e3p2IkpiaVpNJmRrOkEjeEBLUHJgazVSSjZTTktyLEheO093ZktoSn5WLCR1XW5xPG0+eEkiS049RTM9aVo0fTIzNTlhMDltZXc+PlVuZmMsT1JJMjBLW1d+WnNGZ0BINmt6LiJqO11PWFhMZlgvVzllP2JHcColOC9QYj9G'@; put 'WDZLaiE7MzE1WSNbV2JqZjAoMFRjZiJCQF9ua2FxamQkfVdCeWRLM1IjLzpUaVZERGZXOT4lS1tWRVl7bmgvVnpYdFRAP11pIiRQOXUzQGI0ayQwXkoyWjloZ2UiLmMiQCsvZkxvNC5+LixGRk4ye2IyaSpdcXYvaSFkRUg/X18lYklnQD5RLF51UjUjKl5xZFl9cVksOi4mMFYjTXhPNnhEXl4p'@; put 'XzUhTWZdcGtyQFlQVFp9P3BTfHolamI9PW8yQnMkKk5nS1lRaDY4O1htZG4xImpiKGJsYyh4TGhDQS9jdkpfeWh0QipPdj18bSVqYStKXTMvc2BjemdiOkw5R31GYUR+QFQoUHFOWWkoal8rd3Qma0svRCI5M10udlI9XXwhJF96K2E1P3p6W0hQL2tXR0d7VmtgZnZCKFR2YTV7blgpKHlHYDl5'@; put 'a3ZFLjZSW1ZnIWptdlIjZjU9djtucDdKVFE9Lz9MSjRWWnJnOUZvMzI2WT5UWDF3fmlbSnoyRyt9aUl3KVdtdURYZmEkZkdYUSU9LipqaVt1bWxqQHUmfDtiN3hPWCxnYnNLPGZlXlFSdG16V2Q5MVJkVjRDJEdsYkZzVSNNMEFKKEt3bGdaQH5bVTBYLnJtaSo6dClZVXdsVDJqbWlqcG4oe1Zr'@; put 'Rng9UWVROWJZTUx4QXk9PEwsTkNsQlZFSDhYIWhTY1M6dGdTeEk5LDNCbi4uQ0laeiMjYk4sdW91UF1XWEJpeUNbdVZldTp4Z05bMSZbOHU/bmxjflI1Uiw3KSMoZn4qT0ROcmh+b3drbS5fSzw7VURIUkh1fitrPCN2TGwvMm5xKGBDKTVAKT9PeVI7aj0+QGwzdGVBLnRsYDAjOiEyX1BkRGtE'@; put 'YjVMKjxIUERxZzkmcjd5dF40W0ZpUHFJXmYoVHEqYG8kWWxvMCZifVNIdi9GSCFXQmJROEVicT1bOktCWFJQfDl4QUo+TyJWLGRmODBKQ05NaXJNJDVuVDRMUXkiSSp3LFIhZCRuUnUiN2ZJPSoyTVl6IVlDVG1fRmJMMVFadGlhY2IqUG9lSjNlSjE9b2ZFZ0owbVdDTl4hSlAySkxjdHhYJmIk'@; put 'VFolSl5VWTZyMiIsSmAmSj16VVZTQV9VUXExUnNrdEZsPn0rc244MkpsRTxJe24uYHouK2xaZDljY1pLa2pHa3tjQFQ/bGY5R1dAIVVEUXBWTG5XdSE+e0tmR1IlIz1FNX5VJllMe3FUR2c5Oy9FOVpxZVpPXlRjOGtLaCVMSVBveDJULFRfY2RCZmVJcndgRHIpd19iaG9+SzxuWyhmUjJ0dUk3'@; put 'bVlDJWQldkQoIWh2Wmd+UWdQPjg4MXtOYTskXytWITxdaEpnUHVZR3pLJTZAITtDZm9AR1UlYkxUNjhMfSRrZ2xxS3ZIX2VkOWEvekc4ajcsJC4iaUp+ITgqZ3d+OSZJd0wkaX1GPD9gak98Q1MwejNvU35bMDspQntWUFc+SjJwOXckMCRieCRrbkxwTjdASzg2PklmZkIjWSE2TyRXQzhpSHtA'@; put 'TEdAKjdgTj9+Xk98YWdbY1JIeVkhInRZO0pHT05gJG5vOiZVXjN8KC9nX1tsZTZZbVhVa3AhQlIuVWJ8VjRzakFFNjJuQG8/PDd5eHYoKTFHOlppKjhPaFZZbFVLUkdheVFIT1A3I2VKQXQsPnYrfC5FXXZoUDosfEVUb0BjR3MiOyg1bnsoN3FUMnIzX1EsPT9WQlZmaEIzLl14IzpEPyNBaXM6'@; put 'SE9reHVbVGNRKy5gbGZ6VzFBRmd7N29UWHxKREBUb2RYN1spRSRsMyVwNmx3IkVVVj9+eFUyYEQ4VCNrM0soS1pSSVN0fCZFbDZqc2thOTBGVXB8Z11tRT0uR1ZlS1UiQSlbM1t7NnF5YW43PklOZD1lRmVrenFLa3pPS2l2bUxIal46bmJkPHdhW3tuIzNtOTN7dD12V2VCWGtVV2t5aDwhTk5q'@; put 'fWZ2JCRTMV9pRGFMTHxTUjIqfkxOJnhCfkUiVlViajleY3B2MjMqSE96S0skVXI9bDtvZjZkQDF8PTFpYSEqfTBPUGZzbUBaZ0VyUWg/NVc0fVhvQT1wLDhgVlFNYld+SnBjaGA+V2IlNnU9a2wpQSUoc19Obkk9S28xN0Z+YW4oKih3dHh9V1BXcVtgRk9MdF4xYk1wTUd0QHUqOU0qMDNbQHJ7'@; put 'L2AmfCZLSXI1fnVPekYmIjNiVGAuMFRTM2tySUw3YXxNdSwsei5iRlIxTjBSeVMzVSlTNXRjcHI2L0dyIl1ycEt8MVdGOlQ9YVo2MkhnbWMhKXdMPTQ9M3BoOzVaMzxSej8+alt+XXF2QCRRLmBWSzF6UWw3NT1sJSxwOXlDKXpyIn5jVmZEaVRoYy9gP0QuIj9YdGtEWnI8N11JOk0scCojWUw0'@; put 'VDVhT182Zi5kan1IT3V8XU5BUHhdUGB3bjJveWcuaFYpMzJ7ND9jTEM2Y247fi4+c2lFMHFbSWpAQF95dXpidFF4N2dNfHM5dEdHWWdmQ0VGZEhSfTE3O3VJYj9JdG9IZ1M3QS5NZztDMWhuJFJ8LkJgLy8+a1V3QVN5Szs3MDopKEw9VmNmWThObXZSI3g7NVNkX2JiNXYwKmF0bXxzYTdZVkI0'@; put 'R14ubSE/cFoqK0FCUm1FajZ4Lz5wWHdiOEN1UkYlSV5oSDovI1ciVj18KHdDMCw0dHIkOkdHKHIqPDxJJEN9TE5JZlMlaGV0UjNQSVg7QlFVcGIqaT5WT0QuPWFzUSF6IW5KSigmJU5QOVdvaCNIXTRLYDdqaUVqbk48ZzluPVtgT0pZTCEsVE4qfkk1TXd7LzN1aTlHPXRYPlo9OCEsdHlRPDc5'@; put 'fiF3SW1ocnp3ITIvPCkoZjNLXV40SntlK1coQitXanRnXlhaKnp4S0hWTTZWPjZPXk5TTFU+Z0Zab35MO0hgNUdDI2tdJWtdY2d4fFY4cipdYnVPL3sjJkN7SmtNdUx2UzQ4LGY2Q3RGLjYxZVRjamxpWH5lbWpYPnkvTy9OOHJgNXdjSF53NXR6ang8a0xXUmdEVX0zdSE0IU5WTVJHI2EmTXp3'@; put 'QD9FcVBtTTRbWW9TM1g1NSlZe1tpaztqYUM9ciQ0PSs9YCV4fVJzTW14cE9NYSU3MlIkXko1fE1FZTFGWW9WUUFGJkJQO1QoKSlSbkFUZjR7eC9Sckt1Y31EciRQbk1rcE95ZG5nQT9bbF40VUo4YVM6WGskWTRvViRsOzVkZCgsUHoyM0hfTigkQjJ+SzlrZkpNdTdWKzJtSE4ydjNvYlgmSHN7'@; put 'QXZHS2E3I2p0Ri5kN3lKVksoTHtPa0JuUXRNLjkxI0o0Zk9BSFduPkRNVmp2OyUiR1U5a1tZeHgjRXRBandvZmo8VHRxWSs3RilAOnk9X3B2T0lgU2lDL3BsSTZ1d11BSCtsYmtscH42JHNVOyNuRkdXRm9JN2JBfj4oaExiVkAyYno6KktXPjB1T3htaUU8cn49bXNfdkh0Q1p8TGprUSxLbGth'@; put 'XkZiLjEudUZ7SH5HTEk4QUdBand7QytAVChIS28+RG9ueHtISkhOYjQpcCF7Z18yNCxuJiM2MjlLOnpTQSQrbFoqOEh+U2x0MDN9eko9ZG0xOVd7OnU1OWpwNEpeNSh8YTArS2ZFMlFGZjdlUkJmPjJVfi8xRiMmRjVXSTc5TzZsMyhvTklPUDFFQGYvUGQzcSx9Y1p5fCtQOWV1OWBBSmwvT3so'@; put 'WE80L2ZZQUtlVmFZa2M8Q1hNWGc2W1psOFpUWj5ofDo1ezVUOktAaGtFPDpzVDB1clEhbClRbj02LERrXj1vMChifClpR34udy95Tz58XV5QYk9KJFYiajVXJHF1QnJEfHRERD5IcjR7c1pbWDguYW4/I3ooOGJ2JipINEE+KVk4YDdZZ3crdk9wO25JakZuXmd3ZTwlYCxBW2UoZyYkJXVie3do'@; put 'Uk13YGJgIV9XYXNfNVF+W3ZPUVVCX01sKDh8ZEsmWV8mfVs5JnRCSFNXTHB3PG5tdmdMTmtuJUtyLnM4c15UeC55O1BaYE56VXxycm9MNjkjSTAkZmpqdi5TOjFxbW1TN3BJcmBedU1ZYXxUKGw6Q1hBdChCdD8+PDF1VFdHWVdRb1BsJWdVb1V0YndvQ2xoLEhzRVN7IyRENDB6THRpb05SVSFf'@; put 'dmBHI1RYcmhZVjddSjZMc01RWUJ7MTJAekl9TEMlfHQpN0RLIUR1fmd8XmUqTiROUSU/d1MvVU9EWjdOPDlYI0ZjSVdqTmpJUko4RmAvdmJOMXElNkR0X3psTmJJejV+by9CcmFgMUglcWU+a3VxeWtuNlFxQVNEUVpOeUY7cXt8U3BjfEArIXgiYn5raEpMMTZQR0NDfGlQLHx5O1BPR2BVRGR+'@; put 'eCNOPC9ZOz5nQ1ZdYkJHcDNPP01qdWt8WUZRSG15NUVRVSkucSEmbEEkfmhDTEh6Tz5OKXJWcnR1KnY/LmJyfjROZEtkZXpkJSguLFhvRF5bNFRFPDU/VF5VL1h1ZE4he1grWEBPN0NgNThJQ1JWeGVZQDEucFExNT5ZPS9CVH1DOHY5YjtEKFRuJCI9JExacmM5Pit2fj9iPWwmdF5RcXk3Tm90'@; put 'M31uIi5ZOldBdyZPX141Qm5tbWFSPyNUT1V2N2IqW1FuTi9nSDtFfl5WSXwrND5adHdjNX5PPXdFR0tWa014bXtZUmA+XmVqPUBzQnVkYVRnbkFKe1c4Wjc5PkB1Z0R5KXd6a1o6LywsPko4KC8hSyUzOmwlNEB7UVVYMDdfVGM7byE1IzE5TEJpQmQlRDElelZ4XUdOc1l5bz9MPkJQdEp8Lzh3'@; put 'Ol9SQHJHZShKcHYhcC5yXzJ6YjdOdGhkaXpyRmtFeWJyUmUpLmFTRTpKXVtWQDRdUDwzMUx5RyhoUEo9eTRyO3w6Zn0zcCRBfSNRVFAkPVJYYjBTWzhGVE97YyZ0eEFKak5HfHNdcXZnd1ZTZ2RtNm15dlA9cGFObm0qbmo0cHl8LGxSbj8zUiNZLG1sVHZbOHdAMHBmVWlGX0k/OWVXJiRIQHQr'@; put 'dyVAcjFSZDFXYjNIXmE/JClJKXVjYX4uQishMXE4UiIoamY/UHFre2RvQnVXTS5mLyF1OWd6OG1zUzQhNXt3eVdBMmQ+XVUxS0tIekBJKV1UL35pR3pUYyEkSXhXNDk2c3FaJjhmMnJuPHVQJVVAK0Q0UF9oN0xeSFpqNHhNdjZWfi5hfCRTempIRGsoNl9kMEUuLk1vfmFYUCpAYUBJSihUKHMy'@; put 'I1JaUSVydm9RK1puS0BzMD9iYjUwVXxzQHEsJSgzL3pAQkNNQzplM1YuaExKUHVGIXFzVkh5PXhAdT5tN0dTKGpuRWhZeHwiZj5+Qz8uTlQ+UFlzfnFXQTZgV21VK1prJXNhNXJsQnxoQC9mfEsufWZuS0dWKjk2TXwjbWJoQE1wL01IKiJGdj52Ryo9WzQ0Vz44cDdZYHdQMD1ic08jL3YoRVgs'@; put 'KU8rdWduPjt6eTErZGEzSmNQaWB4ZzpoX3s4ayI+KjFzYTx4QCMvaVFCZDYoT29yPl8/Q3Q7Yzw0Uy9WLkxGUnNKa2tKcW06QntWJGlkT2BuWDw2TjxafmtaVGsrI0t0UVNodlZ+QWZreDtfUD9PeDRIUG5ufT92Jmt5ak4jeXciNVhWSG5wN05KSW5kMG9BKSlIUFNjUnZSeVFuTE5IUzhVc0Rl'@; put 'al5EPTpKc1djaE5RVSEkaFBUYUQpe29nVilkW0lJZXpmIyFAdmxmX1pAWjxicCJnWmBwM3BBSDY0ZWZPUGtGVEVdQT80XkJHLnsraj5aNlhnSjh4R3ZaPWV7VTBYUVBpTjpCUEM/dnV8RHhyJGhmZDkpVjolViFLUW0yK0ZxYlc7MTlWblo8dXhFUSltbC47Jn49VnlaKSUyN1kyXX1qLGowN0p4'@; put 'JkVIZllLXnw4fS43fGJsRltCXklCLypaPVFuOlIlW2tiNHlnUC5QSC4oaS9QKjV9eVVbbCV1Y1NmJWcqNWNJcDppMS49RV1FPDVlZTBUSUk/RD84S111PFRUcDZCfkRbfUNHRll2LjskaTV4ZUZGW0B2fHp3VktbPiV2W1pZfTpsTl1ONyRfbThELzhaIXVRaiNGUng9c3MsY2lyYGFHck9eKmpJ'@; put 'R3wzYzhtTTdtMWRTMVoqIU8sXi52dEFrbnZ0WjQ/NHViYk4iKV5qaWp9Wj9aTGlpdG8kPzdMW2ldTUMzYT9lKjdOcXA9ISh4LzdsPDptcmooRCJWI3NVUGR9XTc3Qy9wZU9NdHopNjsqeF5yLyF4WVE7Y0E7aFdUNVZoRU54dU1dLkZfaHVZTUpuX1BHcUw1SWlaNShxVGFWL3c7R0NjOztqeDoy'@; put 'QEdkV2JgUGpnP2BpI3JDekhAaWhYY2dgOWBGZzFgZX5TTTlzbSZEflpSS0lJPjV6L14vKjYjYlBfLzh7YVQ9cjptW1kjZyRyc0F8QUx+PEhCeGF+OEg9NEI6dXkqWDs7RE43aEAhT1FCPFlFSkBBTjtGNEMwPHApfGY8OXArPl03P24yMCV3K2pBJVJSU3QyXnF0SFttTDJRPHg1Ll83cn1RM2pu'@; put 'dkU0K0w2MiRKR2ViWGg7WjchZnpBJmRyfTl5QG1FY3U9bHVVWyYzY284KitbaEhxWTdkTWdjS2Y3ZF5ia2tGWzc5Tit5Xn1Menx5MU1kS0BOOH56JXQxP0NLfVM6Pkl3ITE1VmlaSXo9OFRjTE90e14yJF93MllPXURDQXh1SG8kNGBWUz08QlY/dzVwWXo7a0VtYjZLMHt2b2puTihiUnYsN10v'@; put 'UlRjP3kkNSptTE1XJTNQMFRBT3VKPWJDPW9uT3VwVColNVEuY1hpN0oyPXx1Si9wLF15aEI6PEYubXciO2hHdz05UDRkIUZ2UCkoK1t0XkJQKT5ZZXYpKWU2a3h2N3sweE5ifjYkTDpUXlR0ZEh7KFNpSGw+MmdBbUhtTiZpP3ArWEgoQj0rVEBiKCN3NTk8c3REbWhiOV1mUVdnOU94ZW9bNzhM'@; put 'QXA0dVpvIzF1Kz1vVmUlND4rb1kwOH0kYF50eHxxdVg0WFlGOk05UD04emc0YmlILiNQXkxgaSM9VzxbRylfUmFveUR8VHkpRkgyZnMrOT1uNXw3OkFQQHIlNGVSPV1NTW1BXSFvc2R1PCJFKTBrKV49IlhYNVdfRSVWVEN3TnFbaV93KDVdS0t5K2FVVnJlT3RRNzAwdGp3b2pIMiV8TCJZbW04'@; put 'JGk2VDUqXmtGOEg/Tyx3UGZeaV5mI2Ffam5RRXckOyxicSkpbWZ1RSYlKDNZfXQ6fDFQPjt5UCJTWlBVQUkqXilnWGQ0InQ2NlcjWTNHZjxCJTVbZSt0SDl0M0V7NF5PVlYuaGU/WFl1M1Y8bnIyZENwVHJdd0Q/S0BYUFNtVmlsI0Jfbyk0SF0wd3JnLlRmJCQiJUlgMGxgbyx0en42dT9sdFsw'@; put 'RVFZbHUmQkBuKD1QSkIiMCR9fU84L31sbG5TSHh0VWgqK2kyNXYsQ1E4XSh3a3h3Z3NXUkV0V1UqNUojdkUhMWhoZzB5UEw1SV8mMC8rNEp9cWo+TVB9bXZlZmh0bCQ3VHJFaX0+SC5OaF9YTWlgJjNtSXZvXWpOYSR6Tl9vfnVmPXhjOVd+ZGUvbS58U3UuVnJbNSQ6LEkweDluLnBKb0ZJMipq'@; put 'dWtVVEdWTi58fUYyXTJtN315cVd2aHJ1PHYwdXw9TzArMV9EOSx7Wz00Lk1DIjV2TlhbeGdJfXUqMi5Jaz9DQVJaVV19YiNZPkp7fj9ReGMyLDNZclVVSWtQcyp7X2B8LCptLC9pfmtEXj8kK35jYzFjZCNPenB9T3wkenQwZTckc1BoIUlvUjl3SDQ8aG9Ad0ojJC5GVHhxYzI/OGp0YjB9d1dT'@; put 'JT1VNEhDNWBganhOUnZTJSo8eDIkJDphMDJEUCwrRFhEOkBhWTxKKlQoYWJPJDtUYXt6fmVwVnR4KSxFZlRWSDxQPypbYEMpanl7QV14QUQjWDB6eiQmUkJ3M2Jzd21wPXtYe3BmOzxMeTpGS1ZlKS8jUCJobzBGbzd1eUY9LiYoZylNR2BvMSNMMkAhYDxrV3g8O2gzaitCNV0oRndhSjsiWDs6'@; put 'Yzp9IlRAfE43ZzJRT1Q+TDg+SFI+YiVQc0pWNmJ6WDFPT3RJd1VQX1FgTGJrM0FOeW9zWF1SYWVTJCFWaSxbVjdCczFnSzZBcnklUSohNT5eW3NNREZHSz52ckI2bTsyRGd1eUhTMWJIUGRbdnhJeiFSaGpYanEuaDBVJmcuQiZtWltnYzlSTVA3L2ZxZDtXKldnVmdgcXlbSCtqdnJ8ITM+fFNG'@; put 'TnZ4WUglcypOblJ4KWRPRWt7aF1wc0p2XkVieGM6VCtdbzx0Ikk5TjE8YHohOHNOTzU9fHwkUy9ya0BnWU5jUyJfVW0sPGcmbkRKbio9fT5zYkkqIzM5OiF8MD9hQSl9Q29ENlN0dWRnQ19gJVVia3QhNTMhNCNsJW4zfHxiZnRman5oMWVTcCMsKjksUld1cl83eUx9U2gwVllrQ05GSCxDPC9+'@; put 'WChsQmpmPWBfSjNqbS87SS5DS0RlbihJdywkYSYzYzA/MzBkbVZCd09PO2BjNFUsWWQ2dTYwVz1gVTIlaDVCSFUya3ExMj08TndYZl4qdFpXbmpiNGJKWldCOiNpP29OTEQiUG8iUk4vZ0h4YD5zYX4kKEpmJkR2OEJZe0c1dERsYU1lUy5OUSo3dEE+PVM4cyhMQHpXWig9a3VVdyJOTXciMXgj'@; put 'QWh2PFZqTCY+fTBeJjVVayY8YSxyYzdqPjkiNHBlcV0zSEV9P3UlPVY/Z1sjW2t5XnVzXVRkT1YuZXRTMllTJG5sN0pEeTYuXlAkQSN1dDlBU0BuWUM7UndhK3NfQ3VCbTBZJnBdO0d2JnhmQDRWZmA3VCpXLnFpZ2pYdXNuUU8raHw3JUsjcXhHSlllXiszNHo8OWxGJmlzOylaTEJLLjAkdkR0'@; put 'ZkgrPj96TEl9RStUNEJ0YGh4Tz89bEFLbyRiMz8qTGorUXRFKTg7T3R6Uk5GO2pAWyFYenVMdStdVW9VQn1MR2Z+dXc7WnNxX3tuSVBAb0QsTCNuSUt6TkduRV1vcVBUbGk0c2xFNiMuYTkrIX1MMk86IU5FTzhfdUtTYzhHLk9PQFsoNWNfUUpAeE1me3VwdWIlPz5ZISYzVEdIR2JuW3Y3fHhp'@; put 'b1k3eXtJSjMza2lYdkRLPmcuNWtoMGdaN1BaeEZoRVh1Z240KHplIVFbd0h3R30yKj03TEA2W3haZXRxcUcze3AzKitMQ2E5MVJ7cWhMKS9WaT5iSE1LSG0jV3FQeXw5L2ImYTtGWHcsKDAzbERFOkJCdT9wd34lfGhtNDJefFpGJENgc2g7U1pwM0twZURTQyshZmhaJlNGPCJlQiE7THQ4fV8p'@; put 'JCRgbUJYNEkpcWNXR3NfWnxLX0ZHXzNWTyxpQWNKVXZaLlJSMHZPRHpfOT53ZX17dG5ASHJgWlRSSns4XjxZV082Rn5XX145P1V2eis6Q01DT2x0amRjXSV8YF4qYT1tTHR2N3pXR05yYkNXJG1YdmdLM1Z5cWZJKyw7YyZuLkBVUTJeN30kemdnMV5CfDska3RiMiMsQjNwNW1FRnAiNn13PWJw'@; put 'S0VuTl0/KVlMRmxxSCRFRlBpNWNVZmZdK3cuSEp8STAxfUVBQTAsRU4xZHM0LkQ2TXFPa25MRChDWHNUZHYkVy56K1JERSJsZ2kzdzlPLyhlPDlSWjEoMnM+Yjs4fGVmSUh7Jm5LI0p4RHtfVGk/XlcvezFoIX1+KyF9UGxOUmo4QDJIeHd3MkR6L3huZ01ebjVXRWEkZDA0Y3grUmxzRy8rfDtf'@; put 'MSxoKkxZYjYjc01OdFVaPFJlOSYpcD1IdSVaVFtqcSkxXUosPSwydGJpWDNld3dGJl0weHtqT3UjWSN3eCxFYngiTnw2TVIsZkkrMjhrTG5ePlNqXU5LKiZ3Ql1PQDB6dXN9TSFRSjZ3ZiVVX1t6eiJHc155Km5kKmZLY3pvYGdDTWBZMHNHL11lcW1yRltxPEdIMU9ZSSQoe1BzMHR0fnpWWVtI'@; put 'fWJLY0xLMl1PI243bjlMMj0jMWhqTGZAdUJDQl1kc0FJMVIvTF5bR0t6ZUc0ITo/UT8iR11STV1aRUFjMy5ldT1rVTxhOklnWWN1bmBuInEydGRZUDx2czhJN1BVeD1IZGxCUj8hfkAxZFMsfGQpfl8zZW1OfDRkZlRHeyFsQz0ra1ROcEYrZzRFK2pydmImJjE7eU4yO2EiQkx3M3p7W3xRTDQ+'@; put 'Yl8rKFllY0ZnZDZKNWZsPTxKe0FnYCtoQVhvYnRMRF1tLmlWdC4pW1MiPGlAU3cucz55PGY4e25FXmEuUkRzezVoekRPY09ue1FFWVNUL3w9OkR7ZzslWUVLeShCPmsxMXhQPSFZfng7RUV3LGAxYj4qLE5fbDFxX1N3TCI+WE5ocmtLNlFjKCsrNzI7ZT1gezdJfWVCUH1kOHxqZSNIOCshdW0z'@; put 'QUA0M1ImdUNxIyxLSU8mYzs3Q20jeUhFR303dzE9V0J3fEs4ajxUMm50M10lL0JiJl4wTVcqOyJiRDZ2VDVJUmxjYCwhK2BYVDVydGthVyRGPkpUIzpsSXZEPUdpS0IxSSZjbDAzbVIme19rPz0+IVs2Z1o6L0ByS0c7bkVPU0c2SU9dSjAialRTfCsvbkFDPzVVTlRPVl1teVU7JmpCUkJhNTAm'@; put 'P1YobldCd0t5cHhAInJROD8mVyk4MjRRekIqIiQlTTM3biM+Q2MpRlJUdEhMZzJ4OGxZP0xRZiRaVCNEYF5WIXdsai9gJGVtLG48UF5HXTY1QEE8IiYkODpfP347aXFBR3lTW2osXj5oYHt+LGsxLko0OywqenVuY3clRFErJi95OVYhUnYhfHxpOEd7RXU9O1dadll5YjQxYjpQT2xFSikma0M0'@; put 'N2FaUWlCLjU/cilTWWN7RVVfTCwlcklTQll9Ll5wMC9zQGVQcldBN2FvU2Fqen5OZik4OUBbSClPe1FHUiFKTjx0dk9BU2ZTUHZ1JG84MS5UMkNgalhZIVUrfDo4Uz1Waks/TDFUW1BULnlbWGRDUSl3YVVzRVE7b2pkNmRfQCV2MjokWyt8bUhlP1MwTjhUPmt7d3pKYCw8QGtsUGtpLHJdaSlO'@; put 'ciU+ZEordTtDTVVoTUUuSTp1QCRgSCVVQ1ojeCJuLmdkVFMjYjs+Omg2RFtbeEMzPF0vXTluVExDIjpWd2NKLk16Wml5dk5DLyowWmNdSC9uYDlRTEx9NEZoMkVqSixmZj81TWFRTVtsezZgdE0wR0pCRWpOa24xNzVLRVI2UXJRIThCTEJCRzlEQ3pHTXQ6NWw5VXBuOyh3MWtXc0srM3lvdkE0'@; put 'LzJfejNAYWdVNXM5aHh3JUIuNHt6cVF4Ij5RZCVvcHpFOypjYjhqWl94Ym5JW1lGJF4oSEh1aDpFTS8xUXpjI2xgRD5sXj9KPGc9N0IrJi5kXjFEIVZmdkAmIiFUKH5VWVJIPi5CYlo/WmpzJFU0SihVfF8lXjFzOS4lVFFqYkVrc1hkb29xeEMmRyNHekYkYChoJTFhQyNXcTgpc10vd2VKeCsw'@; put 'bGE8RXh8QC5tPnF0a2QmYnM0Kig5L0QiVXxTInVEOjArX1Bdd3l8cXZ5bVt4Qip5c1s5dyQvLDt0Y2ldRVBNe1hoTEpOVT4rc3NgQUpHbypzMlt3WChRMCx4RGVCY1BCZ0FlVEslPnhpUEh0V0cla3MoVU0lajY8PmpnQ01oR3hqSXkpckQiXSxoL1A6S25AXzBfbXM3Um5ddiwxXj14SnM0PCxG'@; put 'TjJHYSR1amdhLCo5K1ZFR0BdRWN9RTt8MGI/Yj89XSFdSFl8SD9CRnMpcVQoTV1dXiNaWit1U082TVYqZ0RgWyZqM0o0TipPXVN1NUY1PklCTDRYaTQiODA1eGphNSozfUJJW0x3LkAsbXwuJmRrd05FajE5MnUwKCxSam9eZlA2RXQvKmshT2k6fF8lcU5tKFgyam5aejZJZGt1fC8qdz12TW5L'@; put 'NjtVV21IeH5XYmN0MT5+O3xxYyFZQ0EocS8vQGlhb1MieGNCMjEoQ1NQKUJXeWsoclt4fFRLaixXWnhFYmoyPlQ6JmRfLjRbXj4pdCYrM3FsfW96MEElM1pwYW9lTEd6eXZIW0I6bzFSfD9mK1RqQ0BiRUArZ298cmxPW28lQjJOInMhNXpEbF5gK29uIW0kIlNQPGxmPE5MRjQqakUheUMqbEto'@; put 'Y3tidD4oayZqcFhsTzUyUClbbUdlMD5wPXdbOmM7PEQzTlQrdGlWemF1VUh1JGNNKjRFO0RJUEc+Jm5NYVFiQDxQP0thS3JebkYvciVweUpoQnZ6cTRDVUc/aDxBMGtFQUQjWyxxPyNHIkM1Yng5KkxefmJJaGt9fio+cCkuRHchMzxSTlVbWU1jYitFPUhQTSkxMDw4WyVHdnAqbEIwbzFTYzFg'@; put 'NEpAdE9SeC9+OkNwZ3Uza0Y2M3R9PSovUCJFdU9QY3Q5aE4iOTFZUUN3IyN8aUB5W2lKckNGemA6QFlLen5na3pFdE58MWdqYWs1K0deRm5SaXJDfnltdXglViYuXk1OT3l2V0wjLmcuY24idzNzIlR5dyxhS106Zng9TnFXLEpqMVdleW9RP0hvcnNrO3VlNVVzLzh7O0UqVnxLb1Fqck42UlhS'@; put 'RDp7QEJvNCg7fl5FMC9qVkg5d3I+TmMvTjB7YDZiajIma1pqZHU/UjVJYWhXUUFiX0d6eWZeZ1ZRMWNFU0cmMXh1S2NidE1QcihtcEUpd2g+KSVQWChpJUx3YU80RmtGYkxTajwzMGFjWFNaQFopcEo6VGZOVzVoKltqMnhIOVprfnw1Rig3e0pgNX0hMkxHfWhRb1hrc016K1JjIUJHSl0oU3c2'@; put 'QEFiJkJCZW1qS2dYXk5wbkkyaj9MVWpOd01GeSxnNDB4PWhteGBXREopMUIjelBIcmdbJlpdckRhe3UsdVNPcjsiaCpIcj8/QF0iUVRpPHpSJEVCcHhZRW5rZjB2YVBrWF0ubSw8MXJJI0dPSVlvczY6PmZ8fXg0RDoke1dyPloqfChCUj98NCJPbyFpbylWPmQ0OVoySlNxUkd2STdrMT9EPSEw'@; put 'OlFuZGtaciJbUj0hT3d8YS83OnV4YklTQHFEMiE5XUZCfWUqMVcrMVZqPFphQmwmVHFOeDAqOit7czZxKHVVOTlQJjYoUkE4OWhOQGAjYUUpUFUySC5GJElkNGBaZltXdSRAZXhVTWdmPXg2InM9KSRQSClNPn1dOz1oL00/WylTW2gzJj5OZ3ZTUS4zKl04XnNCSUAuPU8zOCR9VC89VVRXbUsl'@; put 'elRfNjVpTFp7RlZ3XSgmckosNkdMeVU0MjQoZkNAY15hNnpAXzdXeF5nVTt2UClgbylhb0orbnR5YzlUQkdXTj1PLilUXi8pSCxVP3hQWFpOYCh7YmZMeH5XOzpKcUViNHV+WmRZdSRGMncsMlslMzBES3AmaChrWWRIaWV+MDBzOTg6Wl9bOSNNQCJkc1hGb3dPTk5KYjQ+WUBoKGw1b2ROPls+'@; put 'PkJEa311QlpTZDp3Znw6LGVycjJKLj5ZLCspMDZqTCYsWVUoS0gjcShBaHloI3VBcCRsK2xtLC9WRWZYMVsyMjNxflFIWVtOZXUyfjUxTFMhJUdecUJKPGcpel1iKVNFSC5baHBUR28jVm9kNlgpWSI/bV5UNkokNWxkPiZ7NlZvYklZOjJ9TnF3KkZUfVRwOyo4R28yX15Ja29KIzNgdnZiRkA7'@; put 'XnAmY2llRDlkNSh8M2hlL246bkAvRSgsNmJKNVFRV28zYCJ4RXd8aEh9YEN7bkQ9Km4pQ21YWyg9dFk8RSZgcyNxO3pKdD4vKEwwdzxAJUpOaz8qNng3YF8odF5qcWZUNSNlIn4+Vmc8RnJEdEdWSzRDdTo6NSImY3tJKXlsdSZ+QFBjU3ZTPmMrK1NOcTtHVzBMZCNldEQyMXZgMUI1akBKbDc2'@; put 'ZS5GZDAhM2g2PzZSYSokeVlUUC4pZUp8Snl3UCJlQjBiYTskQTl3MTBHJiI2Nzk6ZT9XLj5kcT1zaEI7ZiRZPnd9YFZELDtOcmR7LktgdClyNSFEd0hvVmJSbERrdi9wYlRmb0x5Omk3JWVDX3c3akt0bXNiTE5UdkM+WzgkO35wTFRdKC87Sj9EOGg+O0JMKGl5d3AuQExFQiI7P0NDXUI4RWEu'@; put 'ck1QfTcwOE14fCgwJn1oYzswYVkjS0ZoKGpBOSpVPXhqUn1YdXNzTSMySj8mTnZacjEvKUl9VUJqRVQuZSxCV19saCJDVjpOSl0obHorU2d2cz85aV86KSY/OFZlWE45aE0ydVspVX54PnU4ZXk3WUhJPDdLYTtDcTw9aSxNJmlAKHRwUVpvSmk+Rzkpa3hXXWJJWlpwblt0U00kSlV+Wl9lZmxl'@; put 'NUhFRUZZL0tOdVRsTkcodmJCVyF4VT9fTHohNU13dT9UVyo8cjhLXXZ9SyYqWlN0Ll9mUXB3Kkk0Lj0lem5VX3N2SEBDeFEpSnImdntUUV1XbUMwQkdqKi9YX0RNPnRIbmlpZVE5eT5ifF5wYmMsMnZ7eTRBd2x5Z1YkK3wpQmZ2PWZVZ3dnbSNrL05UNWlsQm9dP2xSaWA1Jj9YVlcmWzFIK0cx'@; put 'PCN6XiMvN29eXzNlV24oXWkvXj01d2pWXnlSZWVJdnt8KUBOTklRYWEzbW1nV1I7c3J1bTouRWpvVVZTclVwbjxxYWh1SjFNNCR5WXNiWFdLZ2AwWTk0SiI5TT0sXnkxem5URCZmUEohcz1Fe1M8RF4vZGRIaE85SmFodm5od2tBOEo3SzU4cHBuO3Iha0VSay9EWT46YXJvVFNoUGZPM3hbXmM2'@; put 'dio6QjQ4NTQlNF5tXTk+KmgoeUlpM0hVSCZjO007eFBBMThEQ1ppZSRSenM6fjpSO0ZoaXxKKWs4b1IlNCMpbkRgQVtBMkJ0OVFEK0AmfD16XktGWFtscyp9Lzx6Wk9SQ2hIK0lEPiE3Z0l5MW9tI3tbVTlXayF8Onh3LmtCPlQ3IWM0Nm1OWFgmT3tDODdYLD9yaWFKWWVyMlhGJD0uRnhafCZ5'@; put 'YytJPz8zbXN1OEdlbylPVjo8JlBkXVA7WzR9Sy9ZXVE+eFhGW28+cVp3eWNEZlRGdlgpN2R3O1J8YmZnTjFwO3Q/PzZoRSswezwyIiQiYV43ZU01YWUoRE8uQ11zXkVzWUxKJW9kal0paEU8bT54bn5vdDhRW1s/WGZbPFBTXikxLzNQPmw+NHw/LyZVd1VebWFkO0FkdV1MRG4jXnZ+OkZUTzA9'@; put 'ITZLTnMzQUVpVCtjWEBbYkdVSDs0fiYmSk8rekRddmE3Njs7PEM4TkFHa0JaOGl1Im5BL1pdLzNrfW5JUlEpKE5eKitnQHBXOFRYbURVTkEsNkRnbHFJQEc0SWMrXVBgXnhpfXFFUSRnUD1rem5TU1tyXn46RyVUSm05ZHBISCVsdUxhM1o4d3ZCWWsxOkAsZ1h6UmU2OytLWTIuSzpmZz97ZDgi'@; put 'VUZNK3NFakovY251fEkjdiptYk4+SXAxLnB0aTd1flB3dl9zei5YZWtjUkE+Z1I4e10rJmkkU1RDfWMkUEA3N051NnxFck94aj48OH5zbGxrVj5qRnYoQ2t+Umo4JkxvdUNUOW4zT3cuWEBPTl5LeUhUfmtYJVRrWjhoVH5jKUZsMyg/N35Md3gydm8oIkl1IilOfCh3WUJJfW8/U3NkTy5zJmEh'@; put 'R217ZGxfUiRiRWBgXzpyT25pQ35mODNiaCtrZktOZjAjMndvQl5IO3B2VDZPNSRJdjYofE1YNF9ZclQ2K0QpWjR0Nz97cERsTCF+bE1hbTZhakhSW2opOzplOltjSnQzaUZVJi8yXXBQOWB+Nz5dISQkVG9NbT5zfFQwTGlSR3E0eDx4LkhdW1hAam4idjd0Y1oiUHdBQ3xUTC5PMXhZdTFvODRX'@; put 'a20kMz8/Xl9NWGQufHZPQU1FX2NARz1BR0luW2tqVmlgL31OciVIWE9QbT8jQ1dafnpSVD5qP1hXVVclOlBfUFtnXUw2fEAsX3V0OjNjflc4T1MjQywxPCFga2lZRXpGamM0PmNfLGFlLCEidWQ4XiQzcU5wOml+d1BmRixuTlE0dm8xKS9gSnBzTU56cHRjX1BtRig2dlk4SkgzLnlRb0JKUSIk'@; put 'Vn4zN2BhMD5ZdTcvW3kpPVl3ViZaQ2pmYGY3IX0wQVgpXlBQKGEoLzVeMSVbTU1OMysuUyFfMFlBaHBhOkd3Nj88Wjc1TDxMaV0kPHVFSV9hKXJDImV5diVtcV8yKVUvLD0qV1pHOHZhO35mLm0jSUI3YmpQRS5pOkJVc197b20yKWx2bWc1eWhGTCE5X30uflU/R119VjJHX00hIyNbWmJWbG5e'@; put 'TT9OVXs1eWZBNmt5Nz49XXhaZH5eOnRqPmN8RmoqNTcvc0pYUTIyN0NsKGhMQSEoR2pGWT99Rm9hXTFgTW9DIip5TTlnSDY5QHtAWUFNZyZxSzN6Slt0Zi9dcGYvTXxXJCM0ektHenBqS2BdOkxCeGJWSHQxQ1kxczhpYyM8bSxZPnQ0YkV5UTYhQXdpdnVAZllgRnVyI35oPns4fjYrKDReUTgu'@; put 'c1RfOXhJUFN3QDN9fGV+VFslXUw6Mk9NWjMyblNbNSpRRWYyfH1wXyklVylFXnFhcGVWYld6fGRkKEY3dHtVfHIrWXRTIVVNOUxZdygobmk1PWt0ezBFYEs6TD1rblFjMHZZVUhkNEAuZkFTfjA+RTFaa2BuQlBnZVU7MDJdRG1Hd2JwJklOYitvYnJdeD5eO0d7R256YU1GQHxHOyYwZnxhOE15'@; put 'KyVrQFYxSSJVeyMsdFhkYCpWJFN3RitHNix+Q0Q+dDglNUc5OklbJVBwa2U7MUN0Wjw9aF5Cbj4xXlldKy50ekVEYi4iRGoxS2FnYWcwP2xCMWNeUUFpMER0XkxYRWoqc3RQPTlBY3olSHpRVSZFYkFYW0FyQXg7YUkuWFtHb15ZS19BKFhnfjRlJFU4WzYuSHE+XSFIJHk9T09STWtCL35iIUch'@; put 'NDAxPX59NExzKjhNTXZVQDIyRWo4dUdJaXttTTArSVVnVmBBMDdyM2FIQ3NTdm9RYH0odyEud3xePT5EJVoyKDFMZ2pRRTM3RjFGVU54Wl5PeDxeYjVXTE0+KDZ4UigmalVwaFthKzM4cW4zYFpDRl40VyV0Q21EVz4qSUs8PUd9e0BMYzg1ejgoPz1XdURrSS97cSxsUCt7anRwK0pjcjw9RC5K'@; put 'V0x+bSMiMF1aTkcvfXxTI31UUlh8IytVVmR2JEUvbUVUZXhxd1dNIVI7dF02QVNmPWdAKT4zIWpyXmxAR21ScEQ2SkxLTiEhbkZgVW9hSEJgL1JZZiEhZGFRV1ZeJlVZTXkkZEdbQyNjdC55RzpTMGdUX35qdlowbjYzVCJfM1MhIj5PZipyYGxtTyghT2hhb0BDXkRBQ0E4X3N6OUFAYn08TzIm'@; put 'L0F0JWNqMmE+T1dbZWlmOF9DdlVYcEclMF4kPHJGPXtDQjZJYyU1LksjRmFOfF82IVY3IldVZWUqY3tpcmM8OVp3Pn1wRjFAcHYxJFArUEEzV3EmaWVgdlNRVEBmRCk/IWN7Ky5Jd0tRdChlfUN9TDcmMjVkcyZEeHklPHFZKkRWe0ZwWmdDRERGZC8oSW0yUyZOMDlXJXlodiY8MyhxYWk8ZTY2'@; put 'Y3FWXmlANUFUX2Q3KjZPRj4vVUsiRltVdGs4Wn1iaSx4JkZIcUJeRClhSk8+T1lKM19vWVFxWywwOmthfml8UVREb3pYTWFVd3JaaFtsdHc2MzZlKzVrVGFjclY/Y1tWQjpvb2diT1R5YnYlI3N8ZnJeN2ddLiljdjdpPzdWRXRhSkI7an5ST0Vba3FOU0ppai9qWHhlRExkaUNePlolfGMycFp0'@; put 'fUlbIV10OTZGZFlpaFZiYkRDbGB5Wk96bHJLUW5mWWptVShdP0U9X0A+enlqQHRPMEZQcnxSW2E8a1JTTV9vSiQqZD8pLC58KnVucjo6NkQ7PTssNDIsVHJzTk03X094JWJwI2ByI1paendqSExeMS5DMXFLN2NaITlBK0UpPHo8JnBpbSQpbFBeNk9tZ2xEMFQvbFM2VEIlM3RSTnZLZHdSPTl3'@; put 'M15hT1ljQT9GT3MmSCo1Klo3eT1yU3VneD5veUVBTVZPNyN6UEkxI21nW1ZCVylXdTg3SlJNXyp7JjE8c3s9fnY7S2RGImZCQEQobSpteSZicVZuVHJpSy9QXm4wdE5GWFhYIjw7KF1Raz5QUGRELEhWbHgvZ1QkSFgvZjd5SCpkQ001LmtAOCsrbDEvJG9MbmYzLiFHe00sOGN5OyRGVzByOCQh'@; put 'WXxEeypyIz8/IT17aSQ0ay85UXp0Om98LFpRTWRgfUt4SXJeQjQkZi5xWVt+NCNSMSVqZXFmY2Jpc3A4UHprKiZMaTRUVlk0bj5bOih4V0ljZlAzQER6YWE9WD85KW9AflkxOTspa1I/SnpGIl0mQnglMjptVDBiJTNJfDVJS1lxP1h2RGpQcGtzcS8qKHs2PCgxZGMrVTF9PilRWTtpViI1eSUq'@; put 'Zyh3WEBmX31XZD04MUA0MzFodD4/UVJWc29DPlA+eVA+RT49XjBDSVlYI2t0KVcqcjJNMUo9UGteMyFEenx3N0NddEVpSVhNNGJCIlE+JERQV18hTzZnRGA+VjU3LHFfX2UoODFRX3BiV3krJFcyO08jNio7KDtuUU4wbHYuKmVkK2NFQVAkIXY/b2ZTajcmUGxlMU5OWXZgc2szPi9kQFA9Vnc7'@; put 'VDRzNzFLNWBUMSZOdiJQPlEidXJnKyFwbFA6Q35WX3pbWnZicmZEI0A0cWc0bzZKb1d3UztLe0hnX1A7XjUibk1YS2VVallXUXpfdVZyeElfVyxjQ0RkKmN1M1I/ZF1uRGVvb10mWT5HNjAhfHJ0WDJmWCUzWCNPbkdlfTBPKDwkP21fTD91SWNyUjsxfWYpSTpQZTs3JU4yS1h8eSomUmhuKWlk'@; put 'eSRRJEZ8WEYhWiU9bDRAV3sxYUhROTxYRC97dXMreEgkL1ZMMnU5SzRaWypNSkBwVCxOXW1jRGk3dn1JQns9b2NjUnR5Mj9SR0pMNCJ7PjUlZFhKI3hZOjJhSDUwaExle2xLLzp8WWBEXXwrPEUyaDhIT2ZkKChSXjAzdWV2e1Y6dD1oSyxoVkFFKUcyeyZaOWlReEw4UTgkMlIoJF1SJXI+JVMo'@; put 'SW9gajtEYHlTaTluJH4mR3JRZSNwYSltUXs4Y09YTTJRK3N0MyRiNExEPkpoNWJ+YClfOmFzfSkwXkJgQUNjcypEdD01XyJOJVtJZGhfQk93YWs8dzBIeW94NGJBU0NfTiZDIzdffmQsa1FdSDxkQj0/PihhK1hvTFA6d25XW187T01MVkVGL1hoPWYheCVWUGluQm5bKU9wVDV4PiRUN1RxdTVb'@; put 'bFspVCIoSlBTQmQ6X01bJmJMW2MwZ19uZHJkMjVMKiErSzVFaHpfNX0+RkJQOVpNOS86dGl+UXJDPGAiTnVnPkM7P1VWYGpeYntFVmxWS2BwLmtLQXVCK1ZocUc4OkRqMUUkbGF5UDdkM15icE06Xz9NI0hwRUtmbGBZVT4/e3ZGKj08WG40d0ZffiVedn0/byF7XVM6JiVAbDMlKiQlUmdIPWNz'@; put 'dmgvezB9W1VrUTc6LGxnbV0vbFhLUDpWT2YvZHszQSg6M14hUFA8VnA2YnUrY2skYTwsUW9fNio0WD5USTE1d09CN3c+e1NfRXBLJlJefnYkcnFOW0E1fiMzTV12WjpnaF9WOXZbeEtEJUYxQXlDNDdeVEIxaXp2Tj9TdncrY0UxdCtlYClBPXFqKyokcEswc0w+aFBULipmWzlPWjtpQ29AQTdZ'@; put 'aXczQThnZTJIWkFVK29IQlVFQiV2TWhqUG4zX1t1fGNxMSNCXVM6fEdnYlJeRVMwXU4hPzF1bS92P313QzRzTGI5KDU3YCRJNVByWkZsYGYrbjBSZ0FEMmU1ayx0TV1bU2clMH1Je3MqXlssO2UjYSs7ZWB5K2B9X0Y5dTpheFd9JTpsKUB5PDpRT3xUa0IyZ3E4RXQve3BoNkxWYHR2c0NOaFAw'@; put 'cGgyMzUmNk01QzpvTHA5fkZpWmdjTWRrcTlgSHQvQyZxSlR8Y3BaaSRpI3FXUzVjfnJMWjZMY2pIWzxkTHYudlR8Z1tYXy89SzRUUV1xI1YrbWo5Nl5gTngzY082KHRmcyxHKW9SI1ppeDRZbDdeenU1Sk5rRyV3Z0IjJWZmRzQ8ZkVNM1FbTyptIl5ATldsYCYzPkdmd1AmVClCMn1oM2RpQFRA'@; put 'KmdOY1tGYHNEL2c2VEQsM2M9STouVmlja2tvRSF4Z2BgfjFnWlsxNSgqXyw9ZTU/SkkrXVBzTTp5UCxmTmRvXTAzeiIyTDopaXIwaX5xNXo7N1tuKTclem08c04/ZXplXn5HbWt8NGI1cXlJQnJ3OU1afEZMJHhwUnVFT2BjKHJHVTV6fkE9S14kSjN2QT0obFlUKD4iJWRgYnp5ZWFMJHJvVHI9'@; put 'Z0dBT2lMYGZ1enVwKzhoZU1ZaiFLQWpzamxhJVN6fVl+TlAoIWUwfG9wakxman1VSDhrfSsmeFE5eCprZnB8MSg5Z1FMcFh4Y25eViw/SVBMXm0qeTR4KH1KLkB3flpMVGhHezpLa0gscUJoeFNhQGY5LnFpK0piOiw0WEBnal1ORnl2VEhxX3phRzhgPms/SklzNy5zY0xYNzhqSkRKPH0yNCEy'@; put 'YDIxbitAfiModT5mMTlUTXBJRzp9WCRkW3lyeW94KlZBZ0BTQ3UiTzJaLzkqW0Rhak1oLC9uL1tifikibDl8OHtVQHJhNmMjekJvfjhbPWdeMkYlbm9oeTdnQEdSeVtOSUEpN2ROfk51QnYwcUB8STo8IyU3MS9BKSheeGlTMm1HMSNzZVU7eTdQISx8bmw1KXhzTlJKSHVJMEJzSV5uRW4qTWxM'@; put 'XURmelp2TEhVd2lIQ2FrKmJEcnguI3srV3U4aW9FNSVqZ0xreXg4RStrbVldQkRkSnE/VHBVIVt9PCV8TXs/R09NTDM9WzYuJU5MYjBZQ1AxTCNdd09nLmolcG8jQnMhOFdZVj1sK05JNDUkQ3ZmKzFDPnlOLCFxcVNtdFRudiMzTVp3a0c6fSYlb1BPbkZUVGozP0FrczlRLlEmJFVrNkJVZ0Fm'@; put 'ISQ2RSRNVHBHWEhWbWZ4TksyOE9tdVo1Qz9iQk8xVEVGVjlsRDxNTTV0OWdzWSo/P0ZbSjVGI15wSChEZXc7TnchbCVqbjUkeCpQNHNnMmcwIzpFdVJyTFBLTDx4OUN4dnt+YWNpey92LlNuRVZ8Njtfa15XYW03LmVARlVvdVd4T0ZrQys9dCljOXN6al8zaExaQmwsOC4mLiQyTWI4STgpYWZ2'@; put 'cUxNRDApTWgxeCt0cix6MWU/MWosWGhKLzUpJnxKakE9R1s5PylscEVCUS8sYlZYNVY/REEzZHQqbW90SWs3Oj1NJnsyVTModlRUZFRtPmBXc3IrNjZgKz83Tm9uPUMjfU8kXlFeKSpsQWk6U0NHU0l2ajhwU3p0JEF7Tzs2NFM0R3dfdU4uNC8uYl5FJGgmKTkzLF98fDU8cGtfLkxud19qbk1M'@; put 'T2hYJTsqOUNCbiVXd3hOb0pSNHdoaXdqWyJ+T2N7djhLNjRMPG42VC9RQkl7RkVBTChPUStPdSxqWjM1eFdeUWZEcH5IS2NsJmUsQFJwLlcoX1V4UVtuQ3JLbSRhJTxKKi8jQXFuaFRAN3Y/QD8qQHx1LitZNDBndzQ2SiRoLy9qO3VOKDYlbE5gIipwOFtUKVk6ZVRveCouVGUoXjtdPjYlVlJV'@; put 'XzhlYXc8OyNqMW89R2RAOENOJnxnaihBVCVMTXslOSY5R15TY0p1Qm9gVi5ZTkFhMmtxIyhCaSNxPHJ2WW80fU5scndYM3IhVjNnQ31SYmIxensuckAxPyhwbkd1SUJKWEB0bnVDL3hjKzgjSEt2Z0YpX2VOdmBXRlg7cjshOzImLnJOSjZRfWNsfEA8SG5NXVg7XTlgYnY0XXU2QWIrejgmNVJB'@; put 'UFRaLEVsczI8clJ7JWk3fmYlPUMhZVokSipfLnIzQGdrMHRYL1paQi5QX1hJZ1dmcUFOSE1hdkVSPTQkVnJoZ1VIIWtRbFkrZE9kJFFOTih0RSNfIi89Z3ovZHYle2M2RkVEbHQ5MUJ4TShWfWEwKEspdjVvIkZ0LihGQ2teTSJ+L1pJeyEwVFB5OVpeLHFtfW42YHtQQyQ0bkltRTc9RHRweip0'@; put 'R1N8V19DeUpxbUJmbnk9VSs8Yjh7UH1Tal9+SzNqLGVxS2R4YiVaXlI/JDZqSnEoWCJENGldLnFITShbJm9uYkdWZllbanZQdEhsKFtdJGBoV24uSWIvJHVyXzRsKWlgbSMuVFR2ODNJaUlJM3YiU1BEPmA0XlhwbVooPGJ8UShuZ21vXno0azU2Ly4hfWdlQE5FNXt2YkR3MyxYakwvI1hNRHxw'@; put 'aWY+NlUjPTF1YjZJSVg7YDBJb0dwU29EJCNjfSU1XmxKX3ZKRFtTcHZqKispTEMjUTBZMFAhWytUOD8lMU9IUjhbXT5ASltXXn58TXRWI1JjQ054RWVwVGIkdUhoS20haXhFeV9fXipfMzlobHRlS2dSQmZOWkNxUTEpWFB1YTU0UWMhUFl6Q2oyIiZqRVR0dl4xZDw9THtHMntkRnNEWUteZE02'@; put 'dVBGZEhFSyFDV3UqfTNORm9xTmY6TzYlVDtkKWl7blFLMXwsJnlCPzVjOiouK21GQjZbWFEueG0+XWpTfHtJZzYmJE9bVk1wZjAvLypxeHcqXTdaYmhTamhMKmpoMFZyVEpbTE8/MGpWdzMieWNaYXUjImhgKkZ0R3piQVMmS2lVVkEuQWNpelQvVnVkVlkiXnR7bjFQUjFue3JZdm1WYkVBbHVj'@; put 'WmlhKCh8Kjg2IlBeTUhLalpDP3phamlRSm55TjF+LHg1PXA6XWslPlhHXVNIam0meGdVPC5TNE0xM3RJR0N6PWZHandlLD1RI30jezsxTCRLSjUyflhrZThKbUouX1kpTVRRcUFuUG41fnxoXmdPZ1VMYFc8Q2skZno3dXdYMzFoJDBpR2hIK20iSzBMKXMlJSxGPXlMTSlWZFFMLHA7SzZ0UU1m'@; put 'TlRdcHM3NVpIZm4+UWBrTX5KQ21MLzd+VEl7RV4kNj5KMUNWVCY3NyFzWD9mL2VbZWAqeC9NITVgYkJePn5YLi5eQiVuKzc3OV1sdyFMWXlNTWVlS2RJRSkqTEBqaEFocT9NaFMkUVp2MV01OSQ/WWtfdll+ZTFSaTtzfVg5bis2W35WJF1pRm8oOExnfndVRX1+ekFAaiQ8SVBnbHw9Tk5SOWAw'@; put 'T0NZMWQwa0EyYkBJfmJ+XnM4OExnSEpRfSslNFZhV357Tns4ci9oWDdwWFAjdU4oL2YxKl5mVjBiY0ZSTzttcipWaC5ecWdNSDRjQDg4dlgzanUoYHIxPlQ1R1J9aX5WazRgI0AoXjlJZj9yd1smRipoImdmPEhQT2xCVU5rNjZEM0YzbzlKRnJXdXFWfGJmPDdheys3JWcpTFU+OyJ4el1IJDt8'@; put 'MENdKzpLaV41Q2tLQmReLHZ+dV9FeVV5cTQvLyNhYUNSX2NNOUlKdSlFPzVmWk80bkxmalVFYiksbGtiUCl2KEY/aXo1YVFsOVhUZXFVYFJKN1JtfjE5aXZHeCRpTGEpWWErJF1GczQzZTpfJXFib1tJamNIUT4zKnRdTUx0TFI9dSpxa2I5NTRWUm1zezdIQHc+YzRyKFlbVUZCMTYoNi4vLHhL'@; put 'RVYrKi9rdkZVaiM8TGA6X3RVVW0iLD4qSTljZX0mM1Q9W0czaW5aaHdPe2hbTG03QnR5JnNlRF9WbnpLTUleL3lBWU9wRCpIRWl6bD5jUT1qOUNVRTNnXTA+e003JkkiQGZBRUZXN3l8a2FyenMxWmh0P2htPXN5fXBkTlUvflAkSj0jQ1NKY29BXyFyRmlqZ19EW2k/P1k+bl97fDR6OVN7dTdm'@; put 'JiNiZHlnVTYpZS8/SmJFeU5Sc0o8eChnUFhadlEmZFZBaixTPi4uIUVqdHJOL3RVPUxVMy42fnE7MFFkQHN7eGFMJGBrN3FpNWg6NkxPSFdGI0p0YSttTmJlYVVsSEVPViphRG8vTTNiWSpMeXRMbU5XRnxkfi9iO28mPjZpfFt7amBWbTo9In5UXzo0aDlqYCRTZHFlLlZdRDtAXlVaPzVHeCte'@; put 'TlBMeUl6M01VI1NtaWVSSSh3ezx1PC9dM1U5IkI7LiJsPW1qend0eC41XmYsdjIiSytOO3psZ0FOOzcvN11QZWQ9L3NkW3B6N2BdTSYyVTJyMysrdXxbRGl4czd9Y29LU3ZqSnd8fG58NG5HIzx0U35+M1ljJHl2fFA0YGdbMExabGh+JStZSCY6S3JzKCYrVkwqV0crd1YwT3dpP0BGcEBaXjQk'@; put 'U3dmT2pPTmlHWDIyUl5DSmdOTmJ9LyVsPXtQQDVrM3piVEMxWm4rPjxgYUIqT1FYRXIyJmQhQSNScUlDRUVtTkhDJCFYMHRwdzMlYVdUIl8kPzE0bTpqakhNXkBTdWlvXTheWjluc0s5XzBuNyMkUThBTltXeFhlPjI4WCZVPih6bXQlOEFZRi8mOlNkfjRXfDBYMXIsJiFoazI9bCZCPHxrUGo8'@; put 'I0lJZSpycnRfSUlacVN6Q31lWCNNW1Y8QnxrR25UVUl6SVY0KlB0USJESDN8R2Q6XkAzcH1xazN4NnNNSDAwUiZLWXJ5Jkw/fnQoWmJkfEE0O1F+Sn5IQWJhKzk3ejlWVThMWHxRSCsibHVfRChYK3EoVHErfjw9L0tpNEZ3bExLTEFlZ111Oy91Ul4/alhaI0RpTEIxSUkmTj1bZl5ZQkl3b0Nu'@; put 'cXV2OD1eNmxRUClaZk1oP1IyK2N3NG93N0p0VDl0XUlzTmZbe3IsPXVqSyZOO11Ee1BILk9vYWJ+bzVoTiJtNlM5XmBmIVNGaiFxT1JadVMvfkdQQzVUVl8sMD9Saj5xV1pufmY+LH12T3x+KC5aPjoxZVN4TnhBKX10KD5fIWt1PjBtbVM3dXBQZXJFQEJ9c2dSay99bCNCSXt0QiVVZkxjTk1y'@; put 'Xk9tcktYKlppSkJ6a3RJIUkhSTt1YTMiVVg8UEMqN2hiVEs9JXBEOnReUDJXel9tT3Erczw+bjlpfiV8SExySEw5OE1OYDF+RGU6cT0oSFB1VXA7M2cjQWltMUNqQCRxNmtFeDU2Vjt4fWpRP3hgaEMjezJVJkZ2TE9CRCRPeDVQWzYqdVU4eGh9LngpOVpKW2IhTmo1MXR4OzE1Ln0/SDFoUm9Z'@; put 'eFJfcHxGSSY9YFV1ak13V0J9e1UoSHhFP0hMS0lyOFFFKEQvXU80dERkVWhTIWprcjxqMX11NyN6PkhEVWpBVzZgQypxSWlsLDtXcUtwLClmYmh4eWloMT9UcHhhdkgzeV5LS2JSM2g2QCtNRk47KFk3QDo+Pz5XRnQxaiRyaClfXWw1TUl8RlZwRFosdlhwZlRuK2dhb05UbVVnP3tPR3IhRHJj'@; put 'NGt8JDhqVFZMUipfZFMkZH5GI29iJTFkQDBIJVo8fVFMa2N5fDF8MCNNeiZbKEpyZkVwSkdVZ1ozUiE3P29IM2p5JjV9dSwoM1NUS0JRbUd0WWp0cFBpOVA4JD0oZUdyczAiXjNYPV8yKWpYTmc/ZyxEWEBbLCoyQlh2My4yOnQiSG9yJTh6aVJrWGNxKTJXPkNJa0I5fjBfRz4mTDZiYmN4fCZ1'@; put 'bis5RkJNXnhnIlEocEJjOGRTWl44aUN5fElUW15uUkA7c0J7I3dkWXVMK2MwXyg6IStYTDxRTE4iUUJ7OXliNzUpW01GYV9UQCQ5NSIlcyEmJWNCZ0R7dnkoJiI0MSZ0LHVVam5ETUhXW1ZrcHdbUUl5V1VrZWQlfD15fDlsZG5sZTZmVS5ZNmsxNkAuSFdMX1hgZW0hWSJ4ekJTT3oqcTQzfWN4'@; put 'TkFvYVdFc3tHWWlHNVRgJCE6W0pGUCsrZ0JLYGBzcjxXcGJsOyx4OGpZJV9zMyFdfFY8OTkwNzQ2X2NEPzVscS9GOTlnSERKWj43WiF4SyMudHFDYHR+L31PbkV6VFszPSQkNGh4YispbDZKNHY4blZofkFvUmsieEkzUWM8flZ0UDR5S249ZFN1aGtNO0NHSkV6fmp6aTRadm1mIzxseHspfXBv'@; put 'eEFJaj59IWJpOUNrJFRHX0AwMV8xfnwuVi59UV5xUTUpTTpZbVNnSVtyXyt0YEVWLjpraH0xPzJQb248IW14TX5GJk10eEQ9XWspVEN6W3o3a205UXtlSEMkZFglSkI8eWghK143OyRvT3R9c0JaUm9Ga0IsW2wwVVRPNyNQSj9SViIrRS94R1g7OlY0X1JFOE5hOE93Z15UOnFaPUtCIlJuWWlT'@; put 'TWZIfUBhIXEpWHZRUkA1Ij9qS2FxIWNrQkJdZCFpZWZxSTl9JFEid0QkJFtsS3djPE9acmV8P15+OCpjOnlQczYvWDZueHovaXZ1RjxLVHpPdml+Ul9INnAiNkN9eGBMMlV3fWVXOG8jLHEsej1CdUwpa2FDMyFnV3w0QHReb19GR2JEJWpqKTp4MndmUSl7VHI9YlA0SEhhMXRFW3I0Nkhpaz56'@; put 'KFV+YzExLDhhXlkyI31GRFchI1VkbGJ4MkhAUkp8M2VKW2kzQEglclQiJHRyZ0tGSytwZ0NpUnRgJktvVExQQUFkek1XW0o/MVk4ME0qSno2STBJVVVHbmxHRClJUmI+U0ZreTNMJSZ7YzBtaEhpfUUsN25JOVFlZVtie0dacmtCRllkcHxhX3hvQjAxK05hW0k7WUExcHI/MCxmL2xBQ2JTcjch'@; put 'PUdSa1Erezt+cTByZlh3XW8qWn11JTh+UGJvXlpJZT0oUj9ZSnd7SEJkOiI5OTNSaD13KUlnVjtXK2twfEE/cjBmNXMxIzJWJj1qcEU6P242N1N9dDMlSzIhZyZTdEJwT1lASmJASDJwfFBgVW93enQiM1dSfTRHTnFbdWR+fXNdNXVzZGdpOnxaLG9IPSp9MStYVztdYGg0PDlPbCZ6WUVEaH5C'@; put 'OHp8IjwoYmM9dkhHUFpgSEp4TWArZ2k8P29bTHFQdklCPDFuKyl7LCNQVVlHLmJ5I0szSz5zR051SHEpSW50ZnlpSlJaO2dFfiJWayREU3tSNyFZJktjd3ZKYisrYjx+eiokLHVzcjEoXkJ9VDhrUzNYUVBocU1DelF5dy5LSTxgeG1RQXFJTl9WTFtqeG9aOHxPTStITV5Zey48T1k+JGFnNlBv'@; put 'NWJ6QHB8MFVvNkhWNnZ9M1hhVV9gN0JGJWVeayQpRCJhLld6LEV0V2xNSl4jS3pzdjAsN09EI0ZOTWdvPCV5eX1EUXFgJF9FWl1YKm0yL2xsK10rallhcEhkX0JdZVAxKXoqeywoTVFraktbSUo0MUQ6WCkpWW9UIlBLNEZkI1RqRiNqYj49djhNfkNsRmFmP3UzInBuMUpqWnFqfC9eOlZJOkJ4'@; put 'PzUlKjUyUDt8ZDEscDguPU8zW2RLSmxZVXU9eGtyaUF1fm03QFpSR3hjVE9QN2JiXyMiUU9PLGMrOHQ5OF0+WEovZ3ZRLjB1aDN0QGFJb055SkhCd0wvfCguaHpheS5xbSRmVVhSKiojTGw6MEBvWGxCXUlDNioqNT4vVCpjKHoxJT10dXFZSGddbWwjMzlELyE5XzxsdGNsTGt+PTJtYX5NSGlY'@; put 'VF5tSDJJWmMud2x5YThINkcrWXJ4dWpdJXxLMkxeTjs3e1s0JXxGS3hSPHg5KWdRaXteYV9YSlVgc1pbeUBsRzkodHJ7XVpqb1t5IihdeHx8Iy5+dDkkc0UlR2YwUG9SO1lyNCokT21HaT1YezlnXl0vPjF0bHIlWEIiQiJkJmZoZTtmI15GU21ybmZOOm5hWyN+IWMiQGIpPUJfYWAoeVt6cEN9'@; put 'ZXZVNzxUfnF6T3hjeDFTWn5LfntfYGZYbyJnUjhvUnZTYzdPIS9jXWVVcks/MSpOLGg+bmEzNngwWmhFYj5yPWNHRFQuYE9aQilCK0c2RDlVSExDdnRgLFNDVSl3PiZQJXcvRi5aajBkT29RMmpGN1UzTkp8SU1maUpSb2VIaUdkOmFTfHg8Qio9STxhVTBqTklVPHZ7bEliYSs9LEolTVV3VXtA'@; put 'LGRXPCp4fGIyPD1nYGQqYUhOfV1Gb0hKNnU4bjFnYk1fQTQ9MHsyb2B9YSMvJFE7SHQ8K3RLYEoqemNGUlpmRGpAO1tsfTBoSiZ8N2pjOzB8UURPZ0NaQEIvXSs7amJPMC5FVFdXMUc3QjZNWS96K0k8bSUxamR9eT43aUZjRVZOLDY0fVVtZzkqcCxSWV5JaUFRaWNoNVs3UDVLWDtZVXhBbVEu'@; put 'T013cjtbOUdmJiVuRGVrWm1nQ0RyfkM5eUx2WCR5SHUyPXFjVyZeWH43QXghMGpob2hBIkddY2h6Xmw5cmJKZ1BULDpqdnVnOHFIVXw0ImUyP1YpbURJJnBCfWBwNERTfmh0SVV5W1d0czNqZ1JjITJyV1lKIXhXY20kY1F7Jit3UiRRTT1Tant4QU4mTz0+bXEuMWBCSj9iSF9XXysraUhMKUJB'@; put 'ZTEoNk5sPnx4QWF2aWgjOFZWPmtOSj1SdWYlbDdxJX5fTiF9XjdEJSVzPyFZSm1zYkp+I3RocWhbfCtfeGRkcDppWm4wYntDLyZBVSMsTUM4dVtwaG8xczV3KGYyUGopMndbKXlPWkF1e29oZjprVSVBNX5HYTkoYkAqYTpEYG54YShobUAhVjxJfCNyK19OfTZdeFVeK2sjY2YhWSosZU8zOj9V'@; put 'PkJbOFNnSi5pTlJmRSowNmlBfVVkJX1DTGxlNklWYkc2eVAvfUU5JE8oRSMqdnp1OV47UWcubEo4ekhgVWM8LilfRzZQTys7OjRVWHk3fnFwJkdiKDhhVDRCPiYlKkBHcnMhXlJTPmdWMygqMF9aQE5jSyR4LjJEU2I/LDRUOisuJjFQaX0vWlElVFcmRXEhNF9qX0hxfnNbVjNefkdPTnxpVU9u'@; put 'ey5HJSFJWjkxI00xWDQ+RzN1QDFRTmcwO3gyUThmKHcxWG5ke0VDNE43Iy4iVmEiUHIsaHpVP0FxPWl2IW5sMU1uK1skSyJWbzFwZmUqLFdCeGJdXiZnTkpFKlR2TDVzO0lsSWNAS1UqKyNgeGEkflAqZShSakZlR21vP1ZKckArWkg3M25KLFVKIVA7PG1oUjYlLnpqTnw7OUNjSy8pOypldXVR'@; put 'UWs0Q2p6VzFYeFt2fkhLcz5jZHpzUCozPVE8Rm1WPmhrfCN9N1JAWShwLDd2cFJOfV0yMVt3SU5UTHFXeDomaUd7U1g3PTV+UTVaRGRkdHRVTV13ZTZsIVQ/dz54fng5a2ZGXixCdVl7enQ1Mk8wI05ZOmZncTxjS1tuX2lMYS9wdWUiMjxucmUsWXc2UTp+LiN3JE5LeypvTS94Rmw4SyxgOS5r'@; put 'cHoyU3t+SGxDI2gofldmdTlNekZXMVkheU9RK2FFWHg6Xy95aFF9fktUQFloIzhkWTVMNDd5clJ1Wj1gdjAmbzVuYWZiSWQxe1dwaDVkXkx6KCx1REE/fG5pcykqdzc7K1dOKXR5JWgjfldNJEoxXltvOkkwVFg9TUhYNmc7VCgjNDE6QXAzVWF9LG5SYlJYSVV7W2s9XVMlJCpoUld1QF4pR2I/'@; put 'WT10MWkseXVkQUJhUzAjeltfRXE0SHZHUlZDPDZROyVRKDxNNig6UzJZZTR9Yjded356Kn1QXTZuJE0xcHBAOChOZTlDVjtyMmVGemllOG5KQCkmbEZFOTtFdSZwXnQrWEpVOFo3Uj89PXpMRXtfLmJnSVZvZmxLcSZ3SG0qQFt+VisvbV4uTXAqQEM1YWV7RSU6aH5gaEx0NWB1aXBkQmJWUSwv'@; put 'R2t9PWBfK0s9ejFbdDp5UkNgI2UoRSpaUjdkbUF+VCpZbTYha18mYSYzfWV0TTQhMzU3XSt5Ty9MUlFfYFF6JG9lcz8oPHMvPmE8ezNILlFoJiwkL1Nlemw1O08sQFNeRkg8VUhlJChjXWpdJXViVCRtS145ezxxeC8/SSZJakAzSEBRP35YVUV3MldKejhjXUNpS2NMJUNzfj9BcCtpW21TNXgj'@; put 'XURlRCk8YVcqPFVZdEdiWD1oYEkqLE9FUUdPRH5WOlsxQzlANTVRRnI1UmNVKWNWd3kuakRHfixjQXBfKkZNTHFfSC9VRjR6fG9rVi9JcElxMnY6PkNESUhzVS4yZFswMzpRRCtGZTZNeXlWIiZzSkBWZ1NxVlJ8YWJ6cj1zeD9MNjFPPD9obUAhSURxJEUwOnpwKShncDhQQmAxPSt3TGdXQG5y'@; put 'WFNJKCh7U0dMcDwwPS9JaktNeDBBUiZldXNhQk4pNj1QOjo6aDRXWWp4aGtoJVZiJSVyLkhCTWBIN3tvP2lYYncsUEwzekxTSHZwNThiUHY0eF0/KShSSyVNPiUwJGdJS3FqSCYiTEQ3ZEBVSnFFXzJodlp8IkpvdmU7MSlSTDFTSVREcHt4LiZ1SWw5WUtZW2lTXihNPmw+O0JuS1lpWlR6TUpy'@; put 'JERDWDlpfj4oPHlpW0xWQDt0O29PVDhSY3s+fi5kImJ2Uyw2PF1IRyl6JiYqaHM4XkpMa0FBQyMva2A8PG53Qm8kSlVIIXJXN2JoYVR5VW5qPXRXLiZMTHtHJSN0RC50fVpNMDZgdmJsbDZ8cGxeMmlRbm8sK0JofnduQTJ0RTVFPz9PbHwkZVRDekd2dGhHMUlNOkZoUmxyZUU6Mz4jX3xmdGNy'@; put 'L3wrQlBCcC9fIXJsSTx7IlhseEdILkNeeyQ/PjVKVUMjJE5vQ3VsTDZ9czx3Jmd1V2FjO3xxM08pflgpIUR9UUIzaHRVOls6VkYlRkY+NUl6V0daUGttY2piNHB8bXw6K014ITZPVyYkOn1rV3xCWmdCVT4wSjtXe3tlME95Ik1wSElpT2hlOCkzdkpeJkAqamd+I0RER3txdGRvPUZZQEtid1E1'@; put 'Pk1YMjtgaVklV1ZBc3ZSJjRFdztET1V1aWozcS4mfjpedDYsKCMwRj9NW18hWk8vOWgkXlVzZ0RIRmt0SmMyS0VJQEk0d18jQis1Vj9GUzl2dHJ2Wi8yaH00Z2lXNi9qSVRrQVRRb2Bsb2dFVj46QHt8aXJ4Tnlqd0ZLKjNTNnpXL300YnFYfSIiVTcjKnYuTzciRDpFKmplQ0t8UVNMZEgsR0d6'@; put 'RF9DU2AqMSR8eHRyeiEmNDJWUHVeZ3UwUkV5bykhVXRvYCp3Rm09VVYzPlhoNGM1S0teIzkkNEE5ZiFhVE02TTEvaCZ1QmtOeDVfaj99PD9GdywhdVtLekw/TmgkdkJMLGI3K1t6RFN5ZEU6ZCgkIWdvSm9BNSN9UDB2fHRjbWcoKW1OP3RDPktHe19CI0p9RVs4JmJ3c2ZEeClFe0lNTCRsLDQv'@; put 'MVhXfmg4RjVwTDFfbCJjU1hGVmdkSFlWJWg9U1QrNlI0aypmdURrUV0zbUN7d0s8SEZNclRnX203cHBCTkRJfTBxbWdRL2B1QDp0U2h2QVNWUlA1SmgldWA7KHc/NWdJemEsKVlgRWNVRDBTVXMpclUyKFJVSXxOMHhfakNNPDwuaUJeMHs/Mjo0RlgkQElxIVZCV2p7fkd3eC9vTmh4UCFPaG9B'@; put 'Z0VOfD0kOFlrST8kbnQ0QHkpd34mNX0oJWUqUH5QYX5IXXZlL1E8LDA/SF8xRXU/cFlDXWpaKW9zc3xhbDlKKGMzeSluVDV6NE4uPUckZkhoLlpCcTB2PGcqSCk1YHpkMF8/N1J4VVJAKyIrLnRSZDhJdTE2blYoMWtkJVQkcnZWYkZkMiMyNzRdIyNoMkI4T0IsO3osWTdFdExCYUFUQ2JiY3U5'@; put 'fHFAPGBAY21NS0lBLjhkNH4/ei50YzolcE9rSS5geW4rMDB9NUFefjlrKmdEMFI1V0ZhVFBqdjZYSEtUayxUdVlXJllSKjp3bjtbPDEyTHUmWEA8Qyx5Tzp9dCt4KiR3W2JXU05LWT90Xj1ga2kySVVNdSs7aEF1Mip3YG0xQWtYUSJFMHR1dn1hLmVveGZeb19HVDN9Q0Q0SEtpJnR7RHpmeG1T'@; put 'LF16enQzKnN4a1FEZ3cqcEssOi88fXxHKk5Yell+YUs1Wz1oQ3J0LzU0QmghbmV4Sz9RcDImIyIqcUNXUG1lWWUlRktgInVIMDhGdnNUWGw/KG0mfFJJSSlYX1FiZFt5RHdDOEBmYDA9OS5QM2EyP1lEU0MlJmUlS3ZKVV5RKlpwYV5WZ2g9TyFLYzY4cGI1fjN9KntWMjRRRWRwRkI/Z1MsZmJ+'@; put 'KUZuPFlgMmtAfkIxbkFiMzVTOmw4W2EmX0VtX0dqcmQ5JDFfU2p1eCEsL2NdTClKLmA1P0FENiVndyZ+Lzo0aSwodXtaM3leRVBrO3JgZ0dOOGRBLDEyQkl7ZTtaYFFmbyUsd1UjRzwpXyVDSWQ/cyxZQCFWMlU4RVBrcWoqcTl0ZDljcHw4OUs2a1F4I3VqUClVUmU+cHkmX21JN20xRkd8aVtL'@; put 'W2xWK3FNI081UGB4VDAuPyFnak1bTUApP0k2WG5LUnpsfHklZnVuampwZT4zXm81Kn0/P21QNVJqV0NVUHx+S0kuTFFocWpRVD4lZlBsdUw4SXlUOTZ2VUw7JTlSWW5NR3lzUygkMCI7QDg4KWRwVmxwVFRHNHsiWit4VlQyRiRUMF80R0kwSXNsO0QuYUlNXyZBUSRwe3tQMHJuLGRuWD88by9t'@; put 'biFAW3JJeClybDBCNH5bbGl7LHhyVC4qSykjNCFXRF42Z1dkfF5dVl55ZytOWlh3JSZXXTJ5dUIsYUtVKGc0bEtKNSxxRitVJFt6UTNVJEEhRSIwN2tvQzEyWyh5QlBeZUNTRTV0UVA7QjJFUDAuKT1NOVtOdkImSE1QKFdLdihjSyxyOS9tR1lZOHtRRm44PnBbTzFyRHN9aj5QZ1MjXzZQM3J5'@; put 'NSpbUjdxZ2xSfmhDRilGLzBja05Hayg1OT1Efn5mbFRqPEZWWDJ7Mz1jaXVIfjg4a0hhT3oxLllbWDVDJUs8fEg8REBbbHB5R0R7JF9lPGJUTlkufH12MmVYKyRVJWw3Sk06U2hXSyRLY1tZSUwrNTl0aHc4MllFb3RebmA2UWN5UjpbQHZtcV5iNWNsfm80QS85WDVoIXRDLDd4Wis+Q3BscDEv'@; put 'KnI9T3FsZ0s+ejVOQnRaRG1dU2FHS0VdMDUsW1RwOG80VktnQHhdU1ZOPGEocEJkeHYrUDtiIXBlNkloZjJNWlowd0xTNVhoTE5zJlNoaTJKK110WHpKNmRoUXUrVStnOSNdbFZwajcwTVJbYypCJXM6RSNqKiZwIXZDSkshWlEjfVlleS9eaS53TE52VXpoZ2wqMzV8KzRPYkVlVjNzZW9mUCM3'@; put 'LjNpPChzalBNMWREYFZfTzcqcjJ5UU0lJCFQR05kdC5eOl54KDMsZDJWTVIrVkxZIUJzWyZyMlIrJXd1bDgySishP2YyUitPKGUjUUdWNklaImRobHBecGREYG0wcU0jbG4xLk9TVCx8KCU+XWR4W2ppWSs9cz5eNjdkbnBnXyhkRm1MVmJjaXQ1dFFGbU0jbHdLVFR+Qik4eVZ9RSFhMjZDJWs/'@; put 'Kjw6OD9bTUtyL3FVbW04Mi5uQlQ9Rz00Ok8qSF50cWcoTk41LEd4Y3dxVTdtbClTZi5ANVA3I19eUGdERCU0XyZTfSElI35kVTZIbVNoNmRnSnZKO2RMIWd6ejx5Nj4ucShsfklGbi4hbH44bzleIWdTMmR8JlAzR1dbMTJBZ0R5Y3RjOjJuL09kaF50UmBKTU44OV1sczJ7dlJzTk8kXXg3SUVC'@; put 'UTtOdGhMfUtoKGVETklHeiFUSGoxUTpRY0h+UVd3Vkc2YzUmb1QzP1REdWF7Sn4lZyJnPTN7ZjhbcjVyJXU6NDEzIWVfTmhHKlRLVzZpdlErdFlLbGgyM0JXd3YlQjNSVnMyUVs7MzdDN0c/VGRofnI3RkQ8UzMzRDRXNG0uOiZLc0NvcGUyKG5haTRobihQfS9KX2x+PlMwdSEsVUMobktQT0Fq'@; put 'IkhfamJVWCEpZEM7VVR0ZXFRPiE6O2FFcVtjPkZpT1hAbC9PQ3JlKVZGTl16I2Q9WTp6LiNQSnh9SzosVUVbckdwI0t+S0lbK0VXWEtMWWhCbFBmY0VmIXc1XldfIUE7cTExN1BpMlpoNVYrYHBdenx5dFRHXiZhakJSPypZTiIpUGdCTCVKUylDVmBPfk59OnM/YkhAYms/fmxLdF1scmdrKDlk'@; put 'RUFkVWx8JmJSQ2FCV0RTVE12alNMOjNje3tgRDIwS1NUNmtKSUBZWC9DM1F0RD1MSGIqblNLLGwpfWg3WGk0OFNNSzsyS0kkYyNXejtSdkddUTAvdSUvaDdyUnh4RFpHYjhNZUMxb0trPUI/aXFvPnhqciMhTVViMTxidlVVIV5zaWAvKkRreURlSCJQX1VdOzdSXnZ7OVZgUEBDcV80KnJqczdW'@; put 'dCs+aDd7Q20lciYkKEAxL3dxPGg2Tm5mSyE9Xy5lYFlbK006LGFjV1UwV2E5LiZwK1hrOzRPZl1gRmVIeXZQKilackI1UzRMYD95UTpnO0JUSTslWzR8YFskfHlodlo3KEQ5cjxZdkZ8bHVBMzk8SUk+R2EiaDYheW5ie3tgPmxNVSNnUWZmcW1dfVV5L3JhblNpXlpiIkZmN3M9dTJpJH0yMG4i'@; put 'YjtVYDdjRkBCZy9ZLmMzfUJAZExWbkVUWGw6akhgN1ZhIXUjWWx5ITJvNSUxOWdfWVsmRiZJUX4udH1AVSwpczp5XTEzNCtmSllUNGFYK0t4Tlsld1klX0lQcSRfb11gQDtJfD8zUEcoN19nVll8IV0zUEVjIjZrJlgmbEtZZVBTJj9GJTUuayk6bmtwUkhZXWwkc1VaLFAuUHYvVTQlN3pfJm0k'@; put 'JSRZeHRZeWM9cCNqWWAqSmFWQitnP25eQUBZZnZVeERmbTw0b150NWA/Pnp8WV4pWi97PzloJiZOZHpAQ19tPS58XjNVSXlRZEZUYT9ReDJNWzRPfUhKd0w6SkBwaWRkOGQoLHh6Int1VlFQe2RtMDgyLmRIQDs3N2FoeU1bViUmW0gwRzUoVUw1Nz1QMU9YKzVRcCluMjBZd2RkRVhyajkyYWNo'@; put 'XnBkQXRuY20wP2RTaDFhJDZDVE9YSTV2TChSMWZ6d3M/YTY6VSRreF1eIUJdNyw5cFlmWGNseF5lRTssYUNSIixNUjlnVzouaipmaVF6R0goWz1EdFY0aXYkM3U6YGkxQXJ6QmJWbUV5LkJqYVJvJXAhIXpEcy5yNzghTlU9eFlDckBGSzRuezZjO0l3NXorYXRza0pyKW1NNldMSWdTMUJmP3df'@; put 'MkhRXW9YX0lvR0E2LjFXai9jNj5vdmBAJmwkWzMkclNlX3w/cmBjYSM6c3M2WFNSWUpffGpPWyxdQD9uPVBLMjpWVilHTVM4cmtafF5EMzh9TDY+VkNSZnMxN3Y2UjdgUGVDKmF7di5+Onk2WkZ7JiklU2UvKVJ4ajZhNl5AengrNCwudSlbIXB3N002cjhDcz4xJnwhOGxfSCo3NXtDbXckanJl'@; put 'JERqcno5cUVhbiphcUp1ezdddXs3OjhYYiIwUmRTRmssUmJtbFF1S3cyMT4zIVJiW0d5bCw/TCxzP1dMUikwKCxVMjY3ai5OOFhPZDlGOnRNb0B0fGBqN2VAamM4O1A1aExSUjIzLjJreGAld0U/TlNfMzQ3IT53Uk99RzNtSj88OzY4fmozYSpGU25IMm53XyZnLisuJHlCZ2llZCl8UDVfaV9g'@; put 'PylBbWUwJTROUGdgampZOnU8biFtISNeYnJ+O3lqR2FeNT5rSmhIelUxdTJWKnQ/X3c9dm18XW56ZihGY1J+R3syfHpgVGh4PnQ8MyNeN3YjVklxWU91ekkrazxhPDYsc1l1YjtDZmJrR29PT3dCWHRUSDxHcU0+PltQfWVBcz4+fF9EVSowcEM8aStoWjQ9ZyMyLD4/OSZGbVVoSGdQe0B2MUVx'@; put 'fCprLCkqUUpEPkg/S20pP186KStRcHFRP18lRm4vYW13PFhgVkcmYjFzen5QVlo3XyxZSUFoV0RyX0hrYVY/fHF3N2swPE9TQUVdVEczbDg4JHkjOTRkUX14Qn5IbERuOEI3e0B0UyMzWjApfT07bVNPcT8pbm8kfGFfR2BvaEF+RDtJZ0wmPlksInMyc0pDTFE8TERAckBGWXR6OU9qTyNyRCop'@; put 'dDEvRnsyak16aThgZWtPPGFtKHVMYDN5d3V0c0h1Nj97LkJyOmNAYm13czd3SSlMSSY7VnFGPE4yM2ZrZkNyaGJzbys3bW0kR0EvP101MXdPeChdOUt0ayp7bTw/XylVPGVfNTU3V2gzfEwrUzZ3KSslZUlnclUyaDc7Wyw1NWpReCZNYkA5Jms8YWRXeXFKREcrRDowNU0iPCNjZ20iaDYhSSpS'@; put 'P0taKU9IOW81Zk82ZGcyKG5CO3guZTtKR3E4PU87el5HPCMmcT8rekNVPXgkN1pZLjRqJV8xaUlfKGtYYip3OFUvJn5RP1cvLFU2Nj1jMk8lWWI9PGtoJGtmUkJ5LGh7QG9ZKnx7Jkp3JjFjMEIqaklbcVBxbGM4fEdfWCVOPGRSc1hdaSxdSFJZVihxdUxbMW9IODFleSx1JClYSHZ8T2EjIU9I'@; put 'NDh4TnhEMGsmVzNYanZoNGJYeHhoPyZUWkkpdSxXYWV1NncrQD4uZ2BKOSVRZEheTVIrU345VEQjXzZJek12O2FkVyV8YXsuVD8qIVA9bEtGdzc7SmVzZ0pnKi5TZStqV3k7LG1JYzQjRXs7ai5ueysjJUdVc35nOG1tL0lQP3tLSntRJXxxazE4KiJDZW50ZFEyV1B9ZEkhZW9OTn5LODh1ZiNr'@; put 'QlZpS3g/Kigjai9BL3lzXnIjI1AqSEohcG50c15oKltXRl1ST3hvblJKelFZMzdeQFpEQlh5Myp6ZDJmT2xARkkzcig7QGRFfnZPMEc1b0YqRz4sVT9sYV90P2lQXXtLXzNaWDUoOmJOTEdoS2xvNzJrbCl6dkluIWw8OFpuS10qZTNHTjo0cFkobHBKLGlIZ2M2YSxmREE5Lj5icG58Yk5+ISxg'@; put 'W3Jbd08jYDt+KUR1T2VrQXEoWUpHbCNOKkMpdXMhUVBXYlQ4IWYkVExuIj9SXmZOcGIpUHIhPllQVjhYSl4yMGZaaXQsW25fekhZQGk4ITg5Z2RbOTRvPCwkfG8vI3BlJngpc21PMTc/MnNzXXhJXiwqQWlXfThJY3pqI1M6WFpqV1UwRCYyeUleQmo6XUw5PjBzSSJyI2Y1d01Ibzw+N2VqZExH'@; put 'SjdCWjRqWmhGWCFZNEEmWSlWPVdgUitGKVpwLkR6bkhXVzgzdj5iQi5RcWZ0ZnVWMSp3d1NSV1tOb0Vlc2ZHQUMlVyl4Nz5UXlczViUoRV4sTVtFbDZaXnF6cUh+SEMre3F7ZFMlXitodnAhU1VAfnVEJTh5PFNLMz4raHlXaG4yYGkjM3F0Z10uTllWQltOYGVYOF19SVtsYnhVfS9PYF8jaTlJ'@; put 'XTEzOCp3ZXtEUERCXUBaYl1PSlFaITtFL3tlX3UxLGlufXloWGJmRzZ3Ik5zPlRJK1o1T2E9TVNVNnBAfnRjfEFZL15qbzx0TzlTc3xeME5VIW54OXBBTkIuQkBWbnwwV3hVWzh6I05tUEp3Iy46OE1PJGgxX2NrdGVyb2NnM0NXbipjR04+QFBrLDF9bU8zQi5CQCtSK3I4P2l5PzNfcmBVYkJF'@; put 'RGNAZ0RjP1JPKUdmNissKDtmOXNDd1hCJTZpd2k2ZEBYNVZ1WHxGWGFYeyZnU3Z6K1B4dDVsTmlZX1Y9WnVdQTVkWSlxMjsqaCxWWTwydjY/YUFtJGJwL1gpQC5HMXciLGgyaSowLG1lSilpZXQ+PnpOX2tYIlRtSCVJNDVKdT98fSZ3ZVZtIm89ay9qZiRuNVhgViQ7PXdAaXlSR3ErI20sYXFv'@; put 'MSZZLyRobyRXOyRvJCVpN0xtOjhLej9fQitje1QxOXdeZTAqaXJxW0wrXmNEaVluPyxWZVpwbzVwWmU6XytnL3BoJlg5ajcxU1VDWzNhdyZfM141R3EwczpKUGw2enJndThHSFJlYCxzZyJ4YFN4LEIydC4uJGhDQlFnLj9wQTxWbT5rREk2TCxIfTF6YXNdPlJMWn58ZTEyTXlsPGVCODRheDEo'@; put 'VX1lW2chZ05lMTVLaWtvLllmM0V4U3ozQ1J1I1glKUwlYnphek5nei49aGZFK0hIZXYmOXtFezQsOmdeeTQpTCU0TW9HckBxSSwsNTwsVDhXbnZNfl82L3dGViQmdkc4MWtRRGhOKTQ8Un5tTEF6Wk41eFJGfkFXdGVlTlh1cShyRCosQjM0c0pbXldVLlFdOGQ2b2dRcWFmPnI5UklHVktWLEUu'@; put 'KGVWNTh9cEwje3hofSEiZXh1N2gsQDldaiU+QF41ajFERDV2OUdWNnRILyQyM15ZTlM9ZzBde3BVRjFtPHBYIUg6fD4zRmFXM0xOUyJSXjEqcSYlPyVsMlprdFY5ZXRvPzFISUdfRCFXaHZIL3JyNkJNaUlER0FeO1FHTTU7UHcyWUdaelZUeE15QXc4JWlwSmVPUEw7ZXlxdlE4XyVPeW1vQ01d'@; put 'bWlROHo4OzksZlptclUpa20iRGhTanh2UmhYYDN+fHQuazVSYmw2eCk/P2s2cip7X0Q/U1Q6dyI1RUk/aVIvRTFyRy97P2BPZVtaJWw6Pyp+bEhCV3ZCTz1yaV1Ub3l5QT0+OCt7KDk9V1dWRj0sTmtiN05rX3dFK2NUdGRCM0kvOm4+a1EyZW5+Tk4zaWJBMCRkeG9PYmIva2NpLmN2QzV8YmMq'@; put 'JGRnNVhiLEssdSN3dUcqdUB0b14mVXV3a29JO3B2SX41LkJLWUFZWyI3cjV0ZnlXRGp0XmMkRzxIOThHezs+S0FIcVRvLkp0Rytmbko9aV52NXdITTt1PE5iN2B9emh6YiQ2YDNHQVVWbStuQWFBbUdFak0hIzUsaiZgJV50ZHQ+cD5CcjxQZD4rNW9vM2EyaV5gL358JmNJOSVPWWI7WWclb2wv'@; put 'Ukk4a3l9JDo8UTs0Y08qTmI0JVliR2k3Wnc1Y3VXWm4zWkp4djFNOzJCVGBAZj9oQlIyaFZCUF5hNjNtZ01mLjR9OTxpRGo7MmFJPVRFc19LTypEfkdDQjZ5fkBFRCtFMnUkM2VjNGNjWDg6ZkFAPFVueUEwekp8VjBdNEhsbCxpZzFKMDY2R240JTtDZjhUYUtpVCR6THJDRG01JHJDbCRjLjBH'@; put 'IjM/NDtaR1Qhbj1zbm1sZXJwMF5ie3hUUU06Lyl8IUlYOnl3Vnp4IWY2JDZudm57L0QsWFNrallqXUg/cFQoPHRvdWVVLEhGIVFJbUMzS2Y+LDVgLmJBVGo2OHVgZE4uSEBXVUlAVmA6OzJiYVU+c3VnInJUR2xZXy9TaSN4Vzh8Sj9ZcktqK0U3XnxKLnxnaFVvJGZ1aERoaV5YTH1mKiQ6dE9r'@; put 'Y0wlIURdRX5LYnA9bFY9NHgrKW5UamltLER2SD1vL302R3NoQSlyY0ZjMkBbYkpDL19GKUllOU8qbF5CPDN8JlA4dVhzUGQyc1olOEsmSSgudVt9dkEva2w4YFZLYFlMK1FKREFxaUpJRWo0NSRHcHFeJHVjWCE1YDE4JGRRQ1s6d0osSHV3T2h0aX1iW0p+ZSI2bEomR3pNVnlaJj0kWyhYKUJU'@; put 'KURecUJLRzJPZVZnRlJjcDIhQjgzdVhiczl5fjVGLjN+YDlMdHF5MkhZRkA7V3xiL3RuXUM5PVBGdy5mOWE3IUAjcn1bOClqSzxJUypIVCF2Q3I1OFE8dCZSeXhLPyJHd1JNK1tsSkEjI0NQRndONW14dF4pLmA9O25eVEI7S0sqY3BQLC9ddDA2SWZ+Ti88RTVJOHJXO3x9d21SO19Qbyk4JlQo'@; put 'XzIrM09gMml8eFJ+Tmp4bnc/TG89QUF8VjFpMTEzbD8/KUtXPUpPfmY0K3hmViZpYyU1PjNIU2hjYmFUd2dGXnJObGExfSpjSzI0Lng9KUdUcEhYbCZuR1FTaFIzXSY0QVBsOHBQakYhZXg5YzhtfVZNQEdUUCE7YWJVV1NBP3osa3YlbWV4Ol00Z0kicjZybGxvIXhHb0c4eSgpK0UuUncmcikp'@; put 'KEMoTTQ0WkxsU3NlIk0sVFhZNit6eXx5MGRxRzIhd3YiYjQsKV87NldWNWBYe04uJFssTiRhc2I2NjhUL1ZAdnN6Nzx8OzN8VyFTYF5hRG19bS5vckkwPXZ3MEhuS1Ajc2Y/bzAuR1ZXKVZxPVtnWT4oRW9nQi9lUHksVVApaktuT1FHXz5IRD5vdF9lW1IxdTIpZzBPek1FTjY2O0A0OTwwdTI+'@; put 'aXpudl17TjA9Knx7N2IuTlshcWhGSXBqP2s4dTBZYT5ANXdJcHsmfCYsUiUqY1FgdW5ncSM1LGReZy85Mi5bZiMvZ2xRP3dNSSRWdCY2JG5kRDlKKUZgbVtXW0tibVomeG5nanFNKVZ0KmExRWdKOzsmLn14MlcyVjpyemxyRUI2SmteaWpPLGtSSlkqRz0jbm5vVTw1eEpHMD4xdmxFZjA1a3th'@; put 'KlRhUUgwKyo9NUw8PmU6KSl2OXFUaig8fGtLfGFVNmAxSD19OlZyaDcjMDgvX0whaH0md3VLTyNKd0sufnRuL2p2P15xVkcie1Y1YCZgPzJWPjg4LmNwb0k3Qk1lSjdbQEhFNkxranJKUHc3dkp3eE9MX3VgT0RnJEk6SXBxPkl0ZDImfSJ2KH1SNzVRaEc7MDNkR3lwZWtvdjY/c3B2d2NweltT'@; put 'TVk1PlRWISFgSUhDKml8VHBKWTdISUxhKCpqTCRbeHY9VEZLWUVncSVzQU9laS8+LGx9P2pPW1BuMXc3LER9KlZwJnNbYkl1aDhJd21raG5CIjNFOEpoUTw/ZD99JDJYV0NFYzUwUUE8NittSFhZWS5OMCh5fjk1PGcmb0VZKk51aCl8O3NZbUhTeHcyMnxEbU8kPWlDd1JSWCM6UmAzPyg0RHZt'@; put 'WHUsZC5fKS5UZV1bMSxWODkyczFeY1A9aV5CODNvW1g3czx3Yzh0JmJGcis1W1oqc3A2MUgrUkxybVNKJGtuUGkuImRROzhVK2NZTV5yPTdiamsqe3lENzdGdGREOGIqdyYyO010WGJATiJaMHdZSnZlIlZwSFRpJDYuWn16JkVrSSNWWCl0QkI5NkBvNUFQITlmOUFlRzg4USx0N3UuTDt8Yjtd'@; put 'V3kydig0M151NWlrdHJuOy9IRjZyMDZhbDpWUDZmbDBRRlBLR3xWUWc2K1UrTnc6fEtxfTR9PSxUeXw/cipjIlYldDY/bXIvQkJUdmE7Vj1LREdJOEw5ck5HITMydXliL2tIZlpCdEtMZHolMnAvVnFLeSEocVYlUkQiSj9fRTMrOz87YTVwbFYsWGhsWmRyU2xLZjA/bkd5cDovRS5POFkiUG1U'@; put 'VVIxbWo/fm1QOWY9NSx8SkZMXStIeW1ueSYqOChQQS47Sjo0bnUvPHd1Wkt2TT97VWhwNiM5aCYkZCtjUVUudT9ZQ0g5bUw/fj58Zz1qallDPV1KSkpPMzZuZHpPWypWKSxUYG5OSkxlP2o3MWFkZSZ4YzZ4KVlIIV4/X19kS2lUJEVbV0tWUSFwPW1IfFJ6TXhgbD0ldE9qYGtpYzFHSnZaVSku'@; put 'PVk4cGNdVzo+LDVWXmJgTlF9RTsiN3JMOyFkbSQvSS9MaVAqJEglW08hdUM4bSJ5KCMpY1omVT9aPGM6NDR4Kyk3SENWUXhbfSN9JG9yR2U6TnI2RntdeH4uSWNeOFJRTTI2ZjpvJDp0N350dihUYXBrRjM5MV1SZlRSSV5+OUhmfix3KF56XSVbdDdxNywlYmEzO0Ngb1RUUm8kMk5MMl8uM3hG'@; put 'VW9eQEwxckdrYSFdXk4scE0sVjp5bSp7Z0xtUD9lODcrTH1Yczl8VUghKz8+QE1lT0hGNihpaWpfcWlPSSJYTF52N3BdM0hMNGpOci44aXo4O1RvK18kOWhETX18OGhELERbKDk5PVA9a2VMXShkXlBTQkwrUz8+LiNkPWhSZX55cnpOXSwhIk1udlJ0dl5KX1hle18zMngiYkohUDl9S1siYjld'@; put 'WkdzJEJXZ05lPHw+IllRflF7MjA4JFNPJltMXk13bGdlKHVvdzFuLEl8YDo7bnM6KWdFSXYlfmNwRCJjZ0F6LzIrfVdLNTQmMTVWQ2FxYE58NkBOY3UxMWguQFM8JVpTKGdETDhEU203c30iLzpGLn53RHhNYlhrI3BvQj5wLGtxcUlpQy9OQUVidkZePkwqN2tlZWpVOVshbmZLOnojTl5dPTRm'@; put 'SCtuR34kMlkyaGN0PnFOQnR2Py5oTDU/cD4oV1VZbyZ0dG93KGkkK0A+dzZ2eUp6NT18bDYvUHlyZWU7WSVTSkYkNEA/VUJOKG5gNk5bMzNSITBYKHxHQ1laYno1PWJKRjphaCVqRShiPygsPU9majVwVWhFQClWRV08aFN9bUlpQmMhfXRecjAwPmc2elEkPkBpdVBWOFc4IWVjJVtUMTtrPiUr'@; put 'L1NkV2p0OFQ9WGFqLkVITEY4WH10OypFNio0anREPXswfDldaUdLfVhANzVjUkgoQiZqPyFmUnFdXzo7Ki5rPzc2eEFsZXgzWyxxKXkiMWpDbEsjd2hIUG13RThPX0Y7JX1Oe2IvdGAoJl9iJjxlYjB3PEhzNnJUTzIqJXB2XWkmOyNxYG04KzF5fmo/ViVOQU91O3A7ZSRkM0xNTUchZHJkc1ho'@; put 'ekx6XmNqVkB7WW95SmAjejI7QlhXdHxiOll1MjlMPiRXOHBEQjt5SEU8KERtSD9CT2czdyQvdEA5aTdVQTtlaHR4U3xKNHlMPnJ0dlpJQzxBTWc8fUlbUlh2RT9HKTUpd18lS00hWWpYYk9xZWpaJVgqXSxLZjVOTUUiMSVbL1ZgSltWVmlXLF4zQH0iTG9LQ0hdOyJSe2hybGRlTGVIZmBZL157'@; put 'KTBMNjI9cGgsaj8kS1JmQV5FfF5CVStlM28pRzVxWz9QZ3NuKSxnK3I0RiZqP3ZJLzExdHN0WSQ2WGJlcG1RfktCIz9UQ0RoZiVEQl1TUHU6MCtlSFBsLFZwQG1zQlR7VlR6S0pUR0g4TStaNTpWdXA7T2NZfGNuT1ZmPGVWRWw6Mjg0RXhJNk5tI04maGpKJkZuUVZpdE0pKkw/VGR7YWg4NX4u'@; put 'dT5ucTkiVE9GKDlxfXQsJkZYJCEiPkczPUJVPWM1QE0uTVhwKG58WHExKz9EST1LZChoaXMidk91Mih8TkV6XXFOcmsvYX5qXkxlVkQpZypzekR1OTBxaXZwSnFhX2k7LyxLK1JmQF1KYClrOG8xbGlZaXpuNlVJOVBweUppSmw5fVUoZ0R7PW04ZlJKaTh6ZzRCMWYkVTtwYHljJWw4cDlfTDZZ'@; put 'IV19JncxbGA7QD5fcV1CJDR0ZW1HMjwlYyUuaiYiIVM0LkhEUH4yP2gsVm9DSTNSNUY1UDgpRFh8SCUob2dHS2FoSVVGVDZNdTwpfWZiWUxOa1tpMEJoNCxRaXA5NGZxcHM0aGY8Um0yTmA0SkxiIUhGfDtOcy5SWE1JcDF+fkpGRyFTMXFHXVQ+QHZCdzF9SUJLQHQ+dGFYbnAlcEE5KjZkViNk'@; put 'cUcrPmMlQEU2L2U5VFFmJG5jMi94UV95ciFoK1pCQ3VRXl5YM2BZOXRfTngoNXZuYFhpeV5gM0dgVyVLRGNVN3R4KmNtUiZQaS5yWSgrZXUlI1lbemFsPFZfV2dbWmVraUszd3UoKkxncXk2eU1yT2YuS34vVUNAQ2B4ej05djxQMm1IMzk3SkxOZ19iY1QhJDt5WG51eSVmOTxDUV07OTE0MXlz'@; put 'ezhXWztxRHVoNUN8fFVTLmRWd2AwT0V+aWomYzhvb1hefX0/amwkanprSzdjQndvb2x5bG9gfk0zakJoVzBuS3FBVVJSV2FgVENxPiFEbHZYW012a0F8bXtVNjhKLGMiVkg4TWZPdz04T3VycX44MHJyTCs9REcudnxEe2JWOGpIVyohQD5wV0BOdHFWekhJQiVbUzlbRkR8cWBsPzFaTC4/eVFW'@; put 'U0U9cVhmZUZ3Ty9VVnIxakxnYWQqUXtFSUZZRjw6WSYsVCE2OldQMHIuaVRfSHd2d093PzZgQW86cUt5I2RbWzV0fVNwb3hleWBII3U8K2NaVnp2cixKZmJsQm1fakNlaF4/KUdpVkQkQkFkP2MmZDBsKzBvaXx4QlFdVz9kR2QjdDs6SkA8NzBPJDxaSUUoeXNnXixjM1kjYHMwYmBYcUUuZzU5'@; put 'QzFlTnc0VkptLCVlaU9IPjd9LG1FO3spWyZDOEZaOSthRHkrQyRCXkV8ai5aRS9dWDFXcEJVYyhWdVdddDV0WHdORCRCaEslWE8qfGh9aHdaeEBQKCRFMl9OUkFhS19yYC9RdkBFS0BOYnN2JCUlXTV5VjYrbSVaViVpJSNATX1GZVJzbF9qKmJMWn5kXipidjFmJkpYZy84SEppSShQJXVfZDAy'@; put 'VFFfbkp3Im8rJXwqZkRGZUQ7MkhjcFp8bCxsXnwzL2RRU3xYa0VXQ0REeWQidVFSSz4/OEFFXklgLCkuTzsqaG5aVTVvMnt1NClQbVUwTkc4M3g1Q2F7djdzeHBeRDk4bCxLbz45VkhdNVdtVXwvS3V7V3g1TW5geTF2In5DbF9wV2NzUSpyWHMhSSpRYElnSXRzfGxJJHUxN3EkMSR9ZExHWGZS'@; put 'Oi9jSExMSHZPczdeZGM+Q0c/Kkg1Z0lCOEFNMjhyRyxJenxxPixjIlZuWUQ3WjEqUn1NNl1ZODZVNEI1b0x9dkpfe3FHO2I0Vz9yIixuRUA4UWhyUWJNTCsuXTxhWD5tN25EVX10P3MuXnVaamY1YlJqKihuaVksK0w1TWlSPF5vZGcmQi5Hcz9GTS9oSWJBQyg0KEZ4KCJ5dzBnWURQaThXOHt2'@; put 'JEpsRCQyIUdqKlBncT5SOF8xb2V8RDlUWGxBcDtDZyZ3aUZPclNrSzFLb2gqLk9XMjdSP1hBZU00dmUxcVhIWSEzXV9UX2RmMC8kZSVfa1pWc1BYPT8qS2lzblBxfW0kVC4/anZmPyxBMSs0KjgiTS5WV011Ml4pcHNeRFFpeXUhOzNxWWZEb0BWfEIhdllmZSFPPjhueDI4c1d4d0xaP1NKUWY8'@; put 'ST57VWhkSUc6d2dhYUhFRV15cFpRNlkmfFMrUCY0UTdfTWlWPSpmR0d4Mlh6XzdCO1VqVEA8IWo2SnhSXjNPe1s7YThMTndnSFd1JEw4WzJXfC9Rb1IyZXpYVz48LiR+fFtWc2ZJR1FnMjp9SjBOWGwkSnM+LyliW1UzNUJeKGxSNUczcHM/KmprdkRUPDc5NUQ0M3Q7aWRQJDIrP2FicXovPHlT'@; put 'WWI5cVdoUik8QF9qIyw1KS9SOkdCa3piaUQ3SWp5WnhDbFtAcVJ+KFNlbT87fGA2ZDBdTzo5d20kKV0hMzIwX1NgbFBLaW18X1NIeGAmfWIxN2pLcVNYOW8rKURzSSp9OlYmKix3aGM/LHBAdSF4MmdebGxXSWtTTDFSTDM2MDQ8N0RkXmNQbzU3SG9pY0NHeXN4Uk9yPitmT0d5LyVfRElKeHs5'@; put 'XSVaSml+diY4by9jPjMyWlZQPDFeVFVqfnhpUE5ZXmJhMSN2PUU7SVRNRF44dHIkbjhnMjlJaSpEWXZ2diQxYTFFOEpbMFpZTihecmBXMW1LeyYmJT5nOjNdVngyMiZ7LHMzbSR0JWoyTjo7WiFmcHpCVXwmKjZdbHFhRzUwOW1we1NJRkxkSiElb2JUSnlMWWtsRTZCezVifFpaVixjWDJaVitj'@; put 'Y1I2Sz5yKVE7YldwKW4sP2goNTV2LEQ+JlNGWjhmVj1jJkpZMmRvJWZTTikqQCV3QHFPUCIxWyFUNUVVWSpAPGcpQDwqKnAsJWQ3b25TIXdNNGFrTjNnWWl6SlVvb31PSXcxPCNoUCx3RElhN3YvTCl0Q01LJi8mZ1MvUmpXam0yRjk3OzlYaH1dcDh0cjEpZiw9a1A8KUAmPz5PTXUpdTN4N3Z8'@; put 'Vi50THw9PyZyR2ZrcnRkL2k3NlA9JmoxWV1iakk7M2I6TGx8dlU7QD9rMi57clZNOS5TO0pBbjNDR0pxMT08OSpoMG83ODMqUkY7TE91cHIkdjIyaSM4Kjp8IS4mN3Iwbjp0Y1lUWVE2eGw5XW13SGUvJGo5XjwqOHUwUHJRayVVMDg+Z1V6eTd8W058NiV1SEo6NiVNbDhmMTJwM0UkbittOEJC'@; put 'U2xgM2V7Il5lZG91VFRPZmVQMUNGS3VgPmxIak43XngpfFZmRDhuajR3THUuRTYjdGl6azVreHg7SkJtOUh5T35lKVlKSnU6VTJ2K3cmYUhlSGhNbEBibGpISSouSnlnfXc+a0A7dykla1pRPFlic0RdJVApOWpDSEVIXVhRbnZ4I0FLIVlVJUM7Q25JX0xXXjtvfV5vLkpNUj1HfXF+YiplQThM'@; put 'PzgvUnl2KUEzbUJCeUclVkVxclhoL3k8dEZ1LG0+ZUBGUHxkTXVKOVB8YjdCZUgiUFpSRHxndS5yYkBGdmIrYXd8MShuYDU+VToydUFGVjg5NzUodyQ9eWFWVjJKZm9fP2NGe3pfcn4+b1N3SEduMFpTRHw7MmhgYnIzSGY2VVVqa29BIX1VeV14IWMrTnd8d21TMy86YSowTWVeKU9OaUt7P1F2'@; put 'M3RHJiF5TCpYXlNNRl53IUg4OzclfEFHNiU+bE5ZbzlZRDxsfjtRTjN7SDw1JllqVzt3ODglZDJ+ZEdgemkkSEw4RTg6QEtZd1JgLmMrSE9rI2VyZy9OXiRkMTt2OiRNdnpbVmxiTz5TNC9oZjY8SWIxU1lUbU5ZQk0zcGJ7TE5VJjYlMHc7IVlPWmVFWG0mKStKP1t5Z2RSOy9HYllrQE5AV2hN'@; put 'VX5iQiV7UEZwYU4jMVV5bCovOVFoQXUsWUU7XmtLSHpsMShobWgwYnFGOX5eKDxVfms1V2khPyg8RlpNdUQ5czxDaFQ+R3N7PV0hOj04T1trM3lwZUwiTn0kL11GM0VAeDBZWFFETXNlc0tlS094WUcrZCZpVWUoPz1rey89UFA+LFpTTS5ySmNTUDAuN1VzeD54QSZ3Kyo5KFYwbSEvXSVIPWQk'@; put 'RF1uKDc/JiEvW0hRKWJESSJyKHAvdU5zV3plL0ZrRUAoIz9rX284JChKbXhZJiRyZWNQfSx9fGRXenVMKndAano4NGxJTmQ/SGk0fSpnVmkwPmI6c2k2PmxpJGQvbiYxaDBTQ0VWek95PiViT0hkZHg1TU9aPC56NTt2TlYrXS9oOGF3WkorKT0lRF1+RWNjZCw3cGtlTzw3YllqOW5zVWBeNFEk'@; put 'SmJgSGV7ZSI7dz9mTCh6SHNOOjBKYFZYbTY/Qzs/SXJ6RFZEZD5AWzlEWXg0QHRNfGgsfkBlSFhfY2dAUk1QP0R7JnlYbFRdY280Wmo/JEArbWllcyFqckZmTVVJdWZIfGlaUGhlaChAQmk+anw+Zi5kTSF+cEYjMFJ+d2Z+UXY3XnE/XjFmLkZuOVpydFU8U3ZpPltFYU0yP31kJU06ZW47U3hg'@; put 'RGdhP1h9Mzw9bG1gT1FnQ085bXd3bDZ7XXcvMTFIOkt2KCxOdmJvTFA1Z2NDTEVCUmZuYmJQQGMqZFd0KjBXMGgqQUIqNTdYZkJPVVVxaUtpWVVjUXM5WHpCRlgwKGB4SkkmQyo1djd0Y3spJEFIVSJGRnQ0d343OVApIl1We0d+KG1MUDVmdiErNCttRXBwJk5AYztMekxDQ1JubEpRR2tIVTYu'@; put 'aHR1Qk1oXmpTWEtGT1lmKmc1ZCs6bGlDZDRSb25AYys6L0ZlWmZkYmVBPH5MSGFyKzdfLEd6QituTXQ0d2ZKMEs0b29PYkQsQiJ5RTZXQHFfd3c8RTJuSUJVSHIrLltwVnhYJEhQZCpkYk9YZSxESkc/aU9HKjV2N1pEeFdjKTooe1J8TFA1QTghQ2JvcG5wNDNjNkYxY0FlWkIpTFJDXkhwdn5X'@; put 'Y1lHZDBRWUByVVE/X1g3fn5mNDA2JkZkLDkkbWhtfUUld3A8TXlBNXdQck9UVEFQQCFPKCZhQjFqIWN5Wkdra2NjbUhIQS9KYGlMJEVAT2Q6QTo3dntpekllZ2IzTC9KNTdFd15gTzBeRj9Ccm5Qdnt1WjQ4RjFjZFhfMDJSL0ZHQ19oOUZJem80JTxWUntDS01UaiJDfH1FNnN1e1FgWE8wdTB5'@; put 'V1NPdXhlT2FTfExqR2dtNmFjdjQoXU5ZKUZHc3dRVyNmdEI1MjomQ1BVd31PX3l7RywmQVlTSik6MlkiZFhHUUFEdFhMOkNlR29PMy8mXy9reDdSd3lRJXFYbTlTInlFNmoqTWhrU0l1O2FfWCtNanpTS0V1eChOJnFGdFo5WEZCSUNiP3ooKUhJQlVIQHZEKSNbR0IpdSU0X3Y6JmdZb1lVXy5E'@; put 'RjhQVl5zSThFXSwsZjwwZUJIUj84fTJfYnZWZmNJNEMuQyhBeDZvSGhvfTtRISxuYUt0YTchNlg9XSE4dlMpaCh2NDp8ZiRHVT1+fGB9M3FkXTs0Kik2SlVSKXxCQjY0OD9+V3paXzR4ZE88a0lXeF1xTjpDM1tjd0MxY2QwYFA2NndiWWJBL1djTmZzYSlWNF49TzdNPl5xI10mbUNqfG95R0om'@; put 'Kls8fElme11mSGsjL3FYYkQ+JTR2X2NKaVBSVHMxdV1+bEZpfFpOQC9FVyJZJXM7PVpEWkAsdTtmMTt0dWA4UXNVK2o4c2F7ZnAlUnkhYn1udCRyOHwlZSZsb3pte19oOHYqeWk+OVRgcj4lSEpjP2xPXkxrcjkxZkpXKHBIb3c/RzlrNWNdcDhse2A7aUxJcEZtOXhGSVRaIzkjY2deYltHczN3'@; put 'KkVwbyYkbEsvYlc8KltvWV5pWHtzQ3N1IiVgKDxaRlJ3SU44bn0jfUpYUHJnTCZIM280Z15Nd0liS3c8OTI9U3dtYixPM1VMTCtsLjR6MEM1cjJYMTRZezpaRyExO1E/W0NHI1BtPV1RWzBvOWgpbjpmX3lZJHt5Lj99YzdSLy5JKTB9SEs7RG9QfTl1cytpMEt+QCVuI1lbP01wViUrLCtES0I9'@; put 'MXB5YnoqJk0hSWRSbj18KHxyWmdaSWI7Rjk6fDMxLiVIdUY9eWpaZ1BNTihoSyJ1cz9XQ3s6ZD1PXihdODQxLGVnRWZxT3lQRDZLJjtPKHVpbXl8bVg2W0s6Qm4vNEleMy9kIyN2dDByeDJtRiRgZHVIJCg8byhNbTw1WVlHSDw+UWNfW2tmSWJqRnM2X1YkRyZYe0k0YjczNS5KS081P1pkNVQx'@; put 'VFV5Y3ZpW0ZnaUU8JEA5Qm08aVNPMVVgVUckSCV8NjpEK3FHcmBwJFExJVBRdCVze1dPRCRFYGlmKUBuPj9GQ3h9bUs/JjNXKUV5LGMmdUByUls7ek4vJChtKzR0aXxDOigyT2BxeyNkUVE8V3RWVGpjVz84USJyTHJkRWdRS2U2Y3EmUzBYUC5SJkgySCxROztidllua0JIJDZXV3lnVjwubyQ3'@; put 'anxWMzlDX0JFVzkmJkkkbmZHO1dXbFMwJDpeY04/ZyY/Ji84cCRbVkkuez9QYmxdQFZLfUtAXkIoX3s/Slc2RDQ7ZVM+VHs6JDRNTToiJUJwfCImVTIyand0UVhhcj9NOHxVO14oa1tMZWp+fDFpVWksWj9Ue2J2SWdkJDVgKmxtOnBDNnBgZ24qZkU1WChmQnsmZFQoVXByVzg8YTQkUzJKJERH'@; put 'bWMza1ZKbyF+XlcxXToyaWZpP3xoKncoSW41UnpPUD11bU5xeFtOWypWRGhiTiEkWSFzNW83KFt2Q0ZTZGlSIyhdYnZmLmkpY15AJCVCbUpjZFAsbitDXkw5JTslajtrK1pOeihuMjAkdSNdL2srU3M/YnJFalc2Xih4fFpwWmJWeXE1JGQ1TixgQW1kdl4hPXRNKUEyfURhYj5fLkpdeyNGP3J5'@; put 'djZsRjkpMC42R1JHY1FKViw7OmJ2P2Z0MVJrLEFNfH1OX1UoWFp+MXczLG9hNT5oVV8zUjNILEgwUz9gR3VzZV55ZiJ6SjZ+KSNRdjFddDQzN3ZfWUZpIWZlQ35UZWYpWXg0KjgjUX5OInZJVEdsL1tFYzJJZnZuYExAJHgiVkQyMWhHQytWeyxkTz9UI1FFVEdgPkhUKnJeMX0xdjdLVzVkeSFz'@; put 'TnIueXMmcEwrR30lPmBuQkQyPFEiQ0JFZjtJay83UFdJLixIaE1jZCt8QXUwN1IuaXVGfHkyOSZ1W3ghMi88OT5rXSlDUzFUdlE8VmY6TG5JZjx4M3JEbWtdajF1R1pWL2c2aF9BY1dMKXNPZ1Q2NlJMPmQoPz13Pm4zS2hxSiYpfXtIWVZ5YXhpVTt2WXl4KUoxMF51M1Byby91ISEjek1qe0wj'@; put 'PFZBeDxWQVZuYWpiPEt+cDFsPjVeTlNbU34/UFIhMVg2QDtkTXVVNyopXSVKUUh+IXk7VVRxRWYqPyxiXyEsW0B8PWRKWz96XWBXaCNeRDVdd2NFS1AsKGUlUXQxYkFsUzV5biNiU1VDJEJbIThCJEpHR1FCOHYhXzJQYCZZYmgwOjZiaTtpQCtRQiFKYTxwQFBCKDJDJSpLK3JeTG5hUCtKPiEv'@; put 'QlMoQkA2aF13e2FTWSx6MiR3dD9wZkJwOSpgKH0rX3R4QHdlKmNbKi4odFBUflM1RHx0OFNPQylLVzJNUG0pYVBhKmZMckZkLkRSZkQmdFBLQiVsaDwpZCxQbFFlSHpDNEFPRG9vWXZYL3goQDAhJWJRIyZIazclaU9mO0EmMzM8KSJTK08/IXImOm4lXj1zWWAsQkQkaXg4dWw9PStxYTgvZXlz'@; put 'P0BASFJvM0ZGMixURlRwbkVjaiI3TE5VXUQ0KXxxJUhdJmE2KWIvXyNgPVJSazJ5UilRVj1ycT0sKUopRXVpWTp6YHxba3NgMEoqQlBNJmoiPXtoTVkwVGVJLG07aDUkSnZdWDtQZWBoY05DPCI7YShbMXRpakF9bSZwK3cxeCtXZzJOSTxvPGAqWGheclVaOEJ8Tk8raztXdjAvXz9TYWZ8VSNw'@; put 'V3lpNTpgQnZmPUUuOXpUeWA9eTdRb1lHdjFIZH12VEdRbDc1Z1E2ODNSMDZjcmxSeVlwdi5XbGU0XThwOnQrU31zXltVaCQ5OXpxPDB0MFN9czpVNmp+OzxrSy83T082fClFRHMvVH1RWjFkQzFRJj1JdlltTUg7SyRdY280PHRQWWo9OClTblZiPWM9P1o+PiU6alYofGdLXz5zODAsaHU4dzl7'@; put 'fFtjXWtTMXJHc0ZWaCtGdFNkRkpgVlUjKmM1Q0tkTX5SfEFTQjE+NCxjJmpCPEMoeiVOYis9TTxWX3xRUWE/IVlEdkUzNzgqeThIbUlUUXF1cEcrfFJnYmoscyI2aj5PUnRyaCZVYSl5a1VXWGF8OXN3KjVbe2hqS0FPP3g3U11GJkwxa3N1OSg9T1EiKWxCMXA8dn57Sk9jcXFbQ3JocEx0dWxB'@; put 'U0JKWEBWfDdINEUkdkJCWF5kWUg3dF05V1g9LDhqclJDSEY+WU9aI3JNblprMyEhfmk2W3hsJlQ1Llg3MWJYO1s3WCxVbVQ6L20kazdYMmE0JngkRmdZNk0qeCx0TDZWVmhVSilVJTVIRGFfdHZnU2FPVmYlKEN1eXsoOnBuUTIqXyNkcUc+KGNhPHJ6WDhAJV8leWc+ViVJX1JHMjF4bGU8P3I2'@; put 'diJgaXlSSj1jbzZxYFg2QlI1dzt6bGw4bTU1Py9xLGMhOjVMRHJoe0w9TWw2cXhhVSQ0InklW05KYUMkd0FfTCRNaltAd1B4JVpsS0g4YFJnNT5jOWc0SUV7bD9lYEA5SzVdTkk5LE5SVX45QFg9ZV8ibywpMH1NUyVeQjszZEtHbVdQPz9OT14scXsoMywoY1JuIzk9LChLZEd2Q3UwTn5DSnM8'@; put 'Tz0lbFopM1leZ0FhIjFZIzRTaktucXl7I2tKWl1OYS9pZX09NmwhZHEhKkVARXNiLHtqKnJbPCNqcks4K3tTZSxlLzAmOn5oeGcqaDwhSFtOYShme1phLE9oaDhzQDVkQWRTYiZOOkd5LHRDbWY+LHA4QmlZQihhezQhV0NtREA9LF5yZHZYQnIxb1l3SSlMbD9STGkyUFV8R0ZsUGZEeElGXjFv'@; put 'TyptREZYNSMrIkk5fCpQZUxkKCVTM1VYQD9UWGIpY3pJbnQ0NGgvPGA3UT1NdGQvOGY4dElpQyhCfE0zJm4vRDNPT2Q7MnFeTjdpTm9MNnNZNmU4QnFqelNXZDRAZippamJlUE5kO3I1a1spXnxUQSksUlg9QEoxXlJRNyQ5OCIwMnc7dXtpZzFnZmJ2UF5UWjpHYTxnKGwyJiQxS31uP2hFUiJ2'@; put 'KTZyP2JQb3RRWG9uO1VtTSkoSj90Y28wW2JKfnJhZkhyM0JVQDk4KCVfO3xPWG4kTj5xNyNeTlp+az8pQW1bQCI0I1poeWcwcik/dilOcis7IjJsYGkpTUFsK2xUN0I2bkQiNiJIPHd+T0NsfjcoZVFZfEphKmgpeDs/ent9VGg4bUR6PXR+WiN1MVAiO3IsMl5aVXI3OmshIXk2WjdxMHRsOkBE'@; put 'Yi52SUZkSEM0SWJhKl4iczJGdTA0ai4iMT1NVFdeQnE1Zi5pelIoT2VFdyp1JXcmajp5dXFEYlJIT3t6PEUuLlcsNX11ZkhwSDVINktqOT9ENjB6VE8zIlY9dWIvIlY1cCxQcHM0RTQ6ai81bGgkJFQ1WzdyYlYmbnVfIVJDRSkvfjBFciQ4fWxRSUNieG5JKm4vdSUhe3whNnJIW3hpKEtFUWVP'@; put 'dGRAUGFVaylQLnNGKnUjd2tINzN4N3F0KDdhWTVXP2RbInxXN1pPLk0uL3ApekRUSSM+VVMxUj5qciEpeHhxe2JVJGJTQHtbbiFkenwyaCljKUVNekNMWVZhQ217USRGN2RqUyp1azEpKmhMOUdbbWUyNWJJWVdLV0QiWSxVfUw4UWRZdi9YMUx2LkNET1VVJk5+MS5kTE51RVhOKnxGeXlRIjNn'@; put 'ZlRONTdlIUE7U2RQWUU8dV0yNyV0XzczbCNVfXcmTV5vKDdYaFRsfXciKUltaEgwYldIWE4rMDtvQVNSPEJpOEUvOEx2RWZIKyYvfTxSdSpxUUo0R09Gb0d9RVg9TjVYUmdbKkxLRWN6On5PQ3RTM18ufGdANzgkKmsmQ2lWdi88eVE5c2VlRSl4cC86OzVCdl9eJk06bXZ9UiRCbjF5ZmI4bWpi'@; put 'bGlwRTIjWjwvbTIlPFFzWXd3Z1Y5enhEbyhuWFlMI0x4cUFVc3NuYH0/Rn5dbEFVKWdJT0FAPnNpMTVbNmhydHMycGcrc11rcSwiZz1Eb307X2YvJU1YIUd5ajdEWHg3alZAVi54I3dzaVA2fU90TE15YXdZdnRUO2QqRj8ubSU9ND9NdERdQD5YfFZHOENbPDlddDo0dz9MViY8PUBFVSNkIXlQ'@; put 'PDtHfVBRZiFtKXxidkBMLE5yYl8uO3BuMkguJWAjMV8vTWd7JmU9QWB5YEsoMkJhZjojb29lUytjOXIyOGxYPVtOZ2QuYmJ+UyxkKWlnQkguQCx4eVUzZSNARytrWUh9RVpTS2UmVyRfIVgwVmApfkkzX2JnYGdnMFVXKHBJMyx8OyNOJkhbZm9nK0ZLVyh9RzczTjNLUGhMRGtxc1lIZEZlW0o6'@; put 'NXJvdSlpRG1XPjQ6eFRmUGwqanwmKnx6alJLWyFmclMwJFVkWiQoUCRqLjBHWyQqQ2VHNXU0cFlsNmlTOSM5KjxJSW1Mb0YpXWsyWFk8PTdAKGNeez5mOGcpUmlvLCVqK3A+NmxIOktAKTVDLFN7OWF8P01eUDVbUmJ5YHBRPnJRUlslPiFmc1ZIfiFacG4rbSNOXUg9Q14mfTkuZnZEYEIlWFZN'@; put 'aGgyRntuL1dTN0V7Vl16dCVtbE02UVspZyV5SU5dWz1aY1I7KlV7Ii9qXSQqbi9nMkkuREBbWmcyTXltL3h6TltZJW1sa1M8eFMwRCM5N1lVfFBGLFs5ZmQ1U3FlbS9+fGVkZTteQ08lYzUrblh3ZnhIRj0za0g1IU0rY3d3U25dOjpnSyNgJXA0czdHYDolanZ0eDUvYXg+ZndHekNteVlJSjV9'@; put 'JWN6R2xEZmAyTy8mNzskSEhiSVUxeFltNj45RXN0YVV9LjdLUXRuOjAxO1FXdWZxOGp0SkQ+JW4oVyhFUnU2Nj5SL3g5anUxZmpAdzRJNXhZRWtibiVwLEVEN3dQVmsvZ1JqYFJFK1Y5ZnkkbHxBUmNJOWs/TDtCLEpeRlY8UDJkWVplVyEuazAhN1NXN1YhZjtpK3FlU1dBeEV5fXEvUnZ9ZWYo'@; put 'TVtxUEslI1h9L0UscTVjOjtCaUtLWTQxd187VUZbUCIwZXhHQDB7a1dAZzwyL2M7OnJheGhhVzpLfGFRJSRxX153Qzw9VlJkQzJQbGwzd01wSmxvWERpUnIraUF1cFhtU3U/d2FhUE5FQFpvSlA1JUVIejcvPlllJlVkW25oQyQ4c1B7WUxnP2NMZG9KRDpBUFA5WGNYWlg7OT9wWWQ2Qzs5P1Aw'@; put 'MzluT3tWP2NvMnU8ISp7WSpNfTh4YHZLJmNoVy57KExRQXJveSpAKnZvWFMzJFN1THFEUEIreiMwdVd+YDo6UV9vRyVlaHlpVCRjNFtISzs0L08iRzkoTXByZ0pTU20kaEtdTFNbOiY5I2p4OENJOmVheVdWZ2BnMG1HdmFhPT1wXl9nUyZ2NSFPZ1lwZUsxKSo2SnZDaypRVDxxQn0mUSIzNGw3'@; put 'bnx9UzdjOXV+XUNlSDB4LkNFPG1xPyhmKkFkM0dHdlAqKDhxWGVnJEhKVz1QVlU0R3U7TE4objAmb05rSFkjY1lPOnteZjguIV9HaWV1VG1wPlVAajlGcGN7VCpELiFgPSlJfn05NWNQLzJ+N1oyKG5wQihOZj0vRmZlbis/OCMpcm9QNnZ9Rnwkbzc4RktaYUJeJk5QPG0zKGNpdCovYClUJnFV'@; put 'I2ZRU2ltcStMN20zajswVTNVJl9zaXN0NCFFVTgoNkdbdUs+dyUrLzFpbDEjW0k/fCVEdnEwWDpMbDlFcFkyP2cqTll6bEFlMnVxeHpZW3VNOWFENktXMVFWe1FnPF8zW0Z1dCROJi9fKFc1LkEqKS5jPGVoejNdUUQre2pyRm1QJCRZSks4XTZAS0lffUh4QiF3TyVVfWEhcjdGdXc1RzB6dUpg'@; put 'b2NRVTE0QkJAdGZodUhNWFNHaCV5ODBFRSliNkt1W2wlOz9qJUcyP1B2Tm0oOUpvciNITCV9bTdoPG10MW1IPSlNMDFhM0NQOH5RNSxPKk5kdm9kS15OYEB4QktqPz0hWk5oZ1tQeFM+ZVo9Jj15USZHeWthWSYlTHpxS0ZYe3J0OUVgMGwjUXM0LFk1am1NemU+JVN4Snw6QDdqbFNJaTlXOCt3'@; put 'ai94eipbOGQsYkpgempSOCVfIjQ2ITMvXWdkZjh5ZGV4YyhtbjBXYWw1ZmZATTg0Q1RLaHVTPixhaV56P3ZLNzxWW0BTNipuTHE0UWkvZ0UwbypKdTJscFRwTD9qQGEoS3k+d0RGM3szNEhKciU/VGVmdDk9UHhzcGxOeFQ1bEpUUj1HbVlbdXRoX0EzYGZpZUczV0lpOHAuUV1OeXFnSztKakde'@; put 'THB6Q2VnSj1QPWs/JUdNISNiZGRvLD1UOkQrJHdLNUVmS2JjNzE/YUJrOXp2cWFRYlRyakc3dmRHNzM+MGxMdk4sLH4pITFzRm1dXjlIMmk+UzxWKjZ4VUw7WVImUCRRYEF2SmA2S2ApQlkiU2NSTWIpJGlxZEdoa05uVmclYT82KzN+VXtUKGc7SDNRbD5+cmBrTFMvamk8ODRoMWZ4YUo5Lnp5'@; put 'd3EuLHFsIUxtMX1gQiZYIzopdlI9T3MiMS5sXVdLcCk+aWIwfDtdRTEjbzVAckMyPDoxQnRNak0mWjg3SUAkb3U2VXsrKUBAUnlnR1pWeiYwWUk0O0F8RzRoMUc4N3x6WDFYfVV0XzQ6OVt9MHlKYHROYU1iNjJAMSx+NXxvOygwLH41WDUjK35MQm8vKC9CaXxrU2ZmWj0ja3w+ZUlXTUFHTXZa'@; put 'RzV+LmI8JWhwW0A9ImBAKGdZamdofXdPTXYvaXlpMV8pU059UlYxJVBzKntgSmVtVWQ2WCMxNTB4c21IOE09MG1ESTFtWjEoWUMsVTNtWjtVKVklKzRnIlNqPD8pLE5Eb3Z6UUkiWUtVSHpfKT9HNDdZRGppYmReR0ErOz1QJWI2ZFltcUpLTGh9QGxiTFZYV1ZweXtlbEIvW1JXVTprfFtedjVs'@; put 'Pl9JNDchWik3ODV6PXlJanB2TkVtaXd5YmRpd1daVXhfLDRRQE1rYzhXOFA4ZH1YInJ0P21HbU5+WFJ6dS98LHJvLkl2ZSwsPFlqMElqa2VUZGJScWk9RFM4NGxzJD09WFo2T1soO0BJJTJTSCIlZi5HIlllM0o4QF5VVSRsdV8lcVhWQnl+TSE/aHlaPG9MZjJMVkd5QitOXkdNNDZRV1IrWTwp'@; put 'QjtiR3lwb3tbeGxuNWRIWloiLF09VjM8UDEsM1lyYWx0P3I8V1BgcnBlZiEvY2g6fSJEYSVOQ2dsIlEiLEJAbUgsdTM2bW9MS2dsbjUlMSVLRnZ+dk1IM1k7azxJdy9uInsrZ0szZGZMZjlXdl0wUThEd1FiU2htN1I3ImZXVVtkLF14I0VDMG9MfldCWjt2bEw8QGtJRW9ZPlhPPDhnbm9leltF'@; put 'JnVeblY3U2RFJlNuXTNkSkYmfHosRnVDM3xqWHlxVixhTVlSP2djR1F4THRsOHxkcU9CbFlYU1tPNypyXTk/cWo1c1tZUm0qZEUuRDl7PSE/VUghKSU8TzdjKFM0Z146RHU7MUs1QSpHL116aEFPL1U6ejI2Y19vM0I2YDt8ckRtd2BlUGU0dTQ/bDxNbHFSWS5pKkZ3TUluW0FqSn5xYC9FY2xj'@; put 'UUs6MCxVQGNOMCtRaU9+YU17ZiFRWzpeMyhWSil8ZHdkRjZbbCV9MCFDdy5OaSl9Okt8RXtBLDFsXzNmdk0hWy5+MnNSensrYWUlak92UF9TL1MhdUFGW0ElRFhYWClGLnY9bG9fezVYU21vO1h2Ni9kTlopIzw+YkFKRTZEMnxlPHdyNWh7RGJeKHJ+aUp2USJeM3Y6Nj45QEM3aGNQTUwqLlNl'@; put 'ai44eypqTCRbeDlqRWIzbU1vQHFCW0xqWWY+U3pBTWIrfFB2Q2xCbDEiJGY4bTYpdFN5eDk/P2BFUzIzJGNuIVVhb1pReDBYMD41e0twMTFzJmRtXTo+SU92Z09vQ11NNTl8KVpNUWtNaXsuQ087fUNTeyJsY3JpeEpmaiRFPmlPdDtmJSpuL2pgY2xvay97T0MiV2tvWTVDKkEwRl5sRXt2W14x'@; put 'PF9WZmF7dkc5Y1BybWl4bzs/Kk8hTXU4M3hrcUBIZnx6WnZPVmFkW1ErK1olRXVoL19BNmshaSJHVHA0Z0hYI2tMOnFFTDohajwwbW86I0MjcStSVERhaWNOX2FHK1guWT1bbSo0NlFvUSEqM31XOiNxQzkpIWsvW0tKfXVGKXBnS11xVUNFKS9XUEVFcX4zMWBsOSlgb1swcnpCPVIraUp9WTQr'@; put 'YlJSS11YO252KGxSUWB+KWU3Xiw6WHshZG53dThlZ2RvMk9SdVZVM3lpIkcjVnx4eXciNX0+eXopSU5bNSVQY0JtUiFWRDk3LDVUbm4rNyw/aHx0W1JwUmZLPkBJR0BoJT9DUDVYc2BUMjoxVTssRVEjIzReZ3kkZSpiWmIwNi9VMU48Ni92JmYxO3lmJCVqYG96R1Z9KWtdRlk/MGhrfDpPUWVd'@; put 'YGcjPH5zbV0jKk5+WDd3TU1fdmBzO3JQMCRkJUIjQlglNlcoL1VgUGQsaDF5NGtWS35dViVAaSF5SSgsXXU5LFJWOH45UH1ZRDckNSZoe1MjeyxJITpBVH5oLC4od2hxOXp3KlMvPkp9UHNCUGI7UjFwcDEoUGNzKW08fkBUNS9GI1suR0RaJFdXRWo1ZGlZKH0vSjVjQF14OHVAQHdpKnRSXiRe'@; put 'JXdmTU1oJWlxcyx2Nk8jKkwsWSlVcHd8eGk4YC85S017ZFNaTVNkeVdrO2l7dTVyfFd7IWFecSE9YEwucEBAL0xtQnosX1FZdXVKTVU6TjxRS1V8c2BNRER6Mk1odEVQWUVkZyhSfClrSXF1O0p6YHJ3PEZlX2dkfF5zJHZJaUxgfCVfeXdUdHNPZF0/KDBlYzU+Om5pIkYrLlpHPjNIUXs1X3lv'@; put 'dTUlOG16MSNiPWAmamNQV3QmW3ZofD9JZm1sYyE3L14wdTFyJVgoYDZ8YjFnS1NtaUNYNmY+WiNGaWRHWHkzX3RRKS51SXRZKUR+XTp6fkhOeDEuTyI0JUd+eHdQX0E7JFB9PkhTMD92OV1BZjJSblIoQ0JUISUlM141fX1GNzI5N1csMTQ6LEtEdUEpQCJeTCsqMXBIPlgoaGV2TUttZnBCSEJI'@; put 'TUc7SWNZLyZiZjVoNlE+VitkSmhMbmUvbFFwbTNpRVNZYi46JElkbldONltHanpYP2MoZ0p6aXZzcj9gT0VKOEpqWS9+fGtyayhwdCg3aCpGamgvYmY3QkBkSnpqdjxwciZYWDglRSQvd3JgVmciVzVyeDdqI2NJdyUvajFePXlZY1Vxfm50JkZ2SmA0TUV5aFhYZnxZRVhYZm4hMk0lclpEMXI9'@; put 'YFNFM115Z3AsZHZKOGlZfUAzJGZVeHovMDIrcjVGKmR4aCl8MXA8K2EsPHNzVk0hWyk7OGpVb2ZqXkRnNU8iZm1bck81Z1NsKm9taHxLdWEva1tJYjJ2aVcoRWssN1AsQ0VOOVtTUEVFNFBWclIpYyRbQkFtOjExel9uTUUoJlFiQmtFSXgpWlhBYUJOInU3SFswaSEzMWcrJnIqRjA4KzcxLExg'@; put 'JDU1Kk9zLnNkcHhdJCFGQFl6Y2tYKG8mdT43YEw6anRKJmJqTT9reyV5JlE9O3JaeUJdRVhqX1tqaiMpWmEvTGpENTRjen11K0NEZEVOQyQ/cX5NYjBAPDFRRzxnUjh3WjMhLk9CX2AwYS9MX2NLWihtVCoyT2F3X2dTZ09NRXw/RzxOOlUxUzgxfDRnNW1MLHZ8REBkfjBtJDB7eF9vcnVpIjhu'@; put 'dG4lPDgkTFBXTXY2c3NSTks3K2B5NkYrJHJpdElhQzsrdGBJLFkvTWxNX1dkYX5iY0Z1aC80NV41I3I0XWhxT04hdUA7ITlmPzR8cVoqVGglYmpYPklCIkd9UWtoQkpYNU1SfGBadlgvWVprcyVkMnVPbVJGQHVOaSpTLG9MQ3E0OkJKRW4sRHBZLCRNNWMwZCZOO0w6aypKdE4/MU1EaTJDLiJR'@; put 'REhIa3RJeUNDJXtydSl7YHwhPzdsI10mRz9CclVjJT89RVtJVHVdVitpbiljfEtPZy5zb3VfTDYsRENtUS45P0kseSVdUHwmUEhrNkZSOCMrcVkySTFBaXFwWUR+ay9YUmJybE07XXQ+W30pbzdQNFEuSmJJJjp8WGxKN3taaGI9azUvPjZIa3JoO1VlVSFNNUJya2xlfVg2PFRZazJIe3gvUDl0'@; put 'IyVae2dBYU9zZTM3elU4R1BYOW4rRnZqPz5NcGU4P11QMipJYlpELj9fTSxeeFVuJik0fXFgTTkjSV9KIXRfe1AxeD59MH1LbVBEMFkzRzV8Yzk4N29qK0xvIzIhd0d9KGZMbEgwOCZpKmZKJGt7TGdCTEB5NUkiayhLP3swRmtXaXtESU5LYntZZiFGOTl6X29PLEAkSnU6VHR+WmxzbisrTXlx'@; put 'JCFUJWJMUmFMWzk0TltYRDczdz5UfEh8Lyw4VHwvKW57d2N9Qk0/O3szYDA3QjFTIUg9cExFYkAkNiZyTXkoOH1ldXVKIV5OZyUwITcucV5wZERgPHFeTCkxaTVeYChwMzcrfSNXWmZoJXh8Wko9ZUhJOz5OWndEYl0iZU9XVkRvSWhjS3ZzXVhiQm9CdDxDZjBNMWtIQlREKyZYZjx7S1ZNZjA9'@; put 'XWUhMUJDTkErb29RVncuLlI7KS5YNFcoN19yLzYiKilVPjNGM1RfMDllQW91TXtNRjtKclA3JXtyRipJdXhGamZ2RkBxZCVLRUEkS3B1aUsxISIpX18ofXgqLGdhPmEmXz42bXAsYSVuJW5PaTV2ZXJBRTslfF5DJjIzfHl0MTh0Tjh5RDdTL1h8aDl2Q1B2Mm5ZLCwrPmw/YDRILC9PO0wpc3oz'@; put 'WFk/PF1CKGdxNiJNQi52Njg9S1UuXStma2dkTVskLiYwVURaZUBscH5OYC5XQl8zN1Y2MzlTcDFyP2hiXko0UVFpNyVncU4vci53cDtQKyomOzdAaU9OeFV7JDc7IVk1XiFUfURxXTQmLnZnSVh4MzJGPzk+KH10KnxiWV5YazZncT8kdEYzVXlrJVRyJnhzZ1ExSkY5I3RWOGRYL2V3RjtkekRw'@; put 'TGY/alJyb0dbbz9vOSlfZH0wczNjLDttTDpoSUVAckxfSklQYTUoSkZKQy8saFJZRnJeNF12XTozYmN2MzxXfitUO35rMTl+VzxpJTVoW3EhQ2VeNEdOJS5UQD1xd2claTo6Sy4+Nz9qSy8/OWI6RmBoI0FLbUVLWGI4dWdVL3ZoMjZUaS5ZTm9dNFBoLkF+cV1CZHRrcCxPN212YjU6LlopOHtn'@; put 'LHR8Zk1QbDVlTX0xImI5JFIhdFVSO00jcjIlZV04fEBaJVZsYWskS1AuTS5HXUMyW1RVT1tKM180UTh3O1ghPGtpbyRbeWBXS1lEZn1MTlVFYj1kai4kX2ZHSTB4Vi95THJudDZiZGlzeWBXbzx4Z3ApaHEzS0pVfHVTXWpdKERlNDh3ZH1vJFVYYnJuIyguMH1yL3xKJVBqfTNDKHlISmkrfik0'@; put 'I2J9ek58bXkvKyhFU2BmTE5LPjolO2UodHxCcz8iNEI8YSw5cEd0T2dxQihlViNid284YXJzeH05VjEofHFmWEMkaSluTFBvOlAsLEJ3clQlcTJTXVNNaGxoTTJpbz8yVjglSmxTUkVpSG4kSHJ8bFEzP14jUWlWWmdSQkB3R3tLPVBBb0s5LGVsbEJ5fnEjR1YobTBHUkJAVEY8bEJ5bUhxYF1u'@; put 'QV4+WzlPOlVBVXZHLEM/SGNRSHVMQ3swQ1Nwb3hJfldDPml1M2pudSgsbzNwX0FeNCM9KS5gPGtzWSp1ZW1tJTJ7SmlhWEF1KV8yTE8+W0BIO1hXfUhMe3RdWXQlLmN1Zl5fOmg2ck9Ye0Fld1M7U1toUDlhaSRMRmQjYCJ5XjRvXnBbYmBKMHlLfTYvRCpuWl1iYDpofHl0d0N3bzkqTG5YfGl5'@; put 'MWxRUissXkB6bEVZZWF3amxyQGxDWiFSKmREPnQuRChCUDw+dHpdZGgrWioke2Nac1pFSzt0VUlHeDJBfSRrU1ZgcClzSUB5dTFTbz01JFl1OXVGKFIyMkVbYFgwIW8sLiZgUEtvZVQpQV10Ui5HfTVqJCxgKGBle0VtTXlZJUhaWF5nOkRgdzZReXZ9bzs1b0d5I0VTOGY4UG17RS9qOWk+Z2Bd'@; put 'LDVgJGY8VWUrYWsvejt6WU15dk1YYiNjUmNLK2VycXgzW2UxNiJkfT4yK3s/UHVwR2Jtd1t+XjNIOXA+QFs7SDE5Ml08NFdNQENiR1RnaThpKy9WZlhmaSN5RjVVNXM8V2whcDUkMztoZDY6SGxqSmtYK3Z9XmRga05CLFUoXzNXUyJnfV1SNTZ4Zk5Oc15lc0wkLmgsJE94Rzk5LDF1VWx1PyVg'@; put 'Ri81WD4yd3V6VkVxUS8iU2Z7UXd9W2A6SUdYdG1sPTFsck0yfHFzVX0rdT50flZpZSpFM0VzdTQkX1Z8VlBnPUZLZV52eUQ1QjdDVSwsaERMbFExdTxINiFPXmY8PT4idGR9Wyp9LHQha3gqTE4lQ1l3eURMNUxSTVJWPEZBaU8+Ilc/VDF2U1t5RkZIO3REdih2algmRkZRckhzP3M/ayksaFBa'@; put 'c0VLSW0wQWZ3eUpaRENNTTNyYn1le3NjInQye18sL2p2OVFeXzkmWVk0U1g0Yi95NDRqZDlCUGN6Kit2Nl11ezVOYDlHVHZIVVpZbj5LTChUIXNfTVBvNEpWJihsQnJNVnY0OkpvOSlRT1pGfUVjRTl0RFJORlI7ekg3ZCpHcTljbW0jelpXTlQ8MkV1aHBKayU8dWsvTm9pXmZTVUFXQklkVVFB'@; put 'RVVMcFZ8KDE5OEJ+ZGFwOC9fbXApN2Y5SCQxOlliaXFVcSopRyYpYk5XU15db1Z5aD5reXt3SXtDcUZsVWhzbU9iTWtzQURHbFpRSTZYNk8qPUh4NCVyMUV6eyYhdCZIUl8wSSZ6OmtNcWBqLkdMKCglYn06P1B8JmcmJGtTYFVYTHVbUjhrPDYvQ0RsbyZlZShWN2N4N0VsdnQwalAjQHN2cmI1'@; put 'QDoifT1+PX42Q1FiLENRJVhoaCFYaFMzK212Jis3UixEe2dDfXwwWUY6KDdgTFJEeWZzKSt5ZmE9eEhUQkZnc1B4d0dYQlpJbVtpR1hCUlEidW0jLkw1cVlPVUxiNUZkTDZgZjF0YzAzRmlIRV1+NjtbNTpyVmhsPDZXTSVuYlN5WUtvbzd6RF82IzVkN15BV0JXQmYydTBqVl5CXXkiX0RHTXUp'@; put 'TH1PcEJpMW9He1I+TzxrZHNtT2NNUlZZUWRsaUxTMlVVS0cyOk5IZCM+Q05wKW4pbitLNGtpRmFdcz9zPyI6TV5rPV10JnRgdklsbzRWWFYvTV5rPThMYXRRL3smMlMuUmU6UWhtb1gyTUhCa3cxbDJQLkBrUGRASn1FPD9PMSVNXUN9REJOUlZ7MnBvKFljc0dMM3o9bVd8dUt5VndOdl4od2ty'@; put 'ZTY2RmYvVW1SQXM/UHlHdSsvNSZ5O2JJT1JSczplNWN8MTdQKkNaWmQ3SU1oais5dHJoS2xvRCR2LEV7KGZdW2c+Zyk+bV5Fc2M0NlghOHpYZCtUdiU0Jm9Ca0wsL0QmOWxbQmNDJXQxOztzO2BwKGNAfSZNcTs8LENebD5JSCZUXSJxbF5jZytdL2FVe3FrQGZhL3JIIWUvZSNFP3A9ZT5SIWI9'@; put 'UDU7bSh2YE9yNX1vJmZhYlgjVWU6UVNBXjA7ZD5ybEpxJD9qUCsycT5ZOl1YcjB3Tlkue106Q1kqdH1CXm85dTdoUXArYy8yKkxhdml2S2BtJX1VRHdlJGdnKTA5SEgwQlFuZTpRaHFsZE9ZOlFoRGgwXSZ8UWgkS21LeXNhTjNQc3o7OUtsZm5qTSY4JXJAVWJSKSFIfEBkP318OG41KiVPcUdj'@; put 'eklJYlRTOWM6SylFRzwza0BebShKWzopM2N9cV9seVpbKTtWNXA5JiRuakxgcVAxXzNAT0Z8THV5ZGI9YHpUfiJWQSl5Y1VSOGg5SlVTe0wyYn0qI1FkSVhDS2BkZi5iXVs8YUJmRjIyaTcvXy9FNUJ+ZkNod3Y7eVJeeXxST35wJTNNQVc1cFVdNHY8Il1vJDtfMzg+KkxaVkdYLHJbZTVmb0x+'@; put 'JXomcDojTSFIVTRRSXR2W08uJCY/bEVTZkRvSVhOfih4P29AQy5lXmdsaUFhKiZeQDo0aWhJbSlhNDg/QjwsVFNpbV5AZ1l+eV9pTEJzMWw2KSF8V19lZDZDWXJMWl15TCo5PixGOmtjSGsib0xneTZUMnIkbDVRVGk2eFBHYTNZUVQkY3EyejJlaVZrTExoRV5jWjB+KT5CP1VsSClMP3R0SmF3'@; put 'TzRtc1osSVhCOXl+Mj5YMEYlI0hLOih8OndKaVh5aHVYcmFrT1VxYEdESyw+VSRvR2RfdUM4ezo7LiVfPFsmU0N3XjxVdm9CIlR8MXM/RW9jN30+b29LYGBKQmA0NHYmcmQ0SG5QKHkuQjVnWGFfKVplS3MuRkE+XkZ4JDFJb3lDbFNxTDJFWyhFL084NEtxPDVXSCxJTTpiOzY3b0dhZlgrOyZb'@; put 'RHRNSHVNfUUsaVZRP0U1UXtVWXg9V3JiNWxIKUxyWnlYNitQWE5EdzkuXylvS2AxTGRWMkQ5dlJEezIvc2o+RzVjVH45NSY0ZDZ3Tkh+UlNdQTVsZzAuMC83YjdjWlZednZqUnw/PWthXyVsbHs+TW4lLDpaUmglfjR8cmtuM15Mdmd6aSN4WFRDKEEpTy4jbih+RGIvOHIpKmZ6UGB1RHtCNGNW'@; put 'dVJvYW5vKyhmU3AzUXY1L1hLaitBSjMjTUk7M2k5RkxrUHNZTXBJXlJKcGh8VlJvZ3ViemNbIXhWKURYM0guO1FOeSZGcmwpYCg6elE9U1ZSSCVxTVlYR1pGR2ZaX1RNbiMjSGU1W3lmWUtgbjcuZX13az4xYFJRV2oqLG1lUTJdeWteXk46Vi9AJXxjUVspRS4jK0NLNj5GW2NRMix5cUtHPjVL'@; put 'eyxCZnUlcDtTVi8oPUFtPSwkL219YHR+TkhKaSszZ2B6b3VwSDBRVV1Ec3pxYkomSj9DSUhfK2dlRypeWm5vTm9FYkU2NDUlTmVOODElN2F4aUN2ezwhQy84JSpGWDU/NCZDNUFmezBEMVNwdU1hIXBqI1slMiVxbGQ3TyE6Olc2YS92ZlpjTl9CaytzeGZpaXgkRihXJCgleGpdd2BXai8pRSkk'@; put 'MUVJcF1VJndxNEM9d3Z3WF5gZjF6LE0zIW9MUnJVe0Q4YDZJQ2RLYG43e3Y9XSZ0dWxqT3R5TnJSRXc1fjhGaDFCdDBuWzlGfWRLVTtSM2VAaFN9WVpYMEF2Ij0pO31hKn1bJTJOSFJBN3IpfjErYSg7TDszY1heUD0mPF9Ed0Z8YHokPVlsNUhlME96IiVmWDUkIWs1VFNPKEBKUjZjNXJmLylF'@; put 'QXFYayV4fmpiKEMuU2lOWDNXKygkMyE2JGs8RypwcGEocThpfVQ8TjpYKG9JVTQ7Qj03PXJNd0xINUxzcG5PKGE9UH54WnA2UmU6WWEzKy9WcWN6KnpEPy8sNFUyJE5dZU5geHI/L1ZRPCkmKHQxTi5LOkxeTHRkYSsuTU0oIVoqV3tdXXdsQ1laKWh8LHM5d1dhOlE0MmAuSk1UKC9XSix6di5m'@; put 'aVUiaEkrOVt3PnZCWixYYkk4WVJAaSExW0xkWiNpWjttdjVpVzQ1OHg9bUg2NWR5ayoheUdVZUg5cWdEO2JRb3l1OyNLXnJgVm95dVUpTmJteCZBQlRjUElpM2hIPkdUTzNaV0lwRjg0ZUZSZk1VQGFYdW9TR2smWm9xdTpSZWIrfHc2JVEyWTd4NkhjNTMyIjcuJmZHezM0bWIkZllkM1VoWTo4'@; put 'a0lfdHhsUmRFUEp4fVRgVmllOiZyYiQxLmsqI1Y6Iz4+QmVEdjljeD0oTTFdMj97PC9FNiMpdERSYnVFZjd5OUhuN2EjaCZlLnFnLmNTPX1hSnJQPUArWFlUNjtUSmk6Uk1memVhIVtIL0lIZnwsTjw2Nmg7em15TXBrUjhIVDk3SVdbXl09Qy5LOHJ+JjpxajImNHVXWE45SmlKTERfNWpAaG1D'@; put 'fF1WYEYjemptUk4mQGltaUAwY3JYdmxJW2s+QyFaWlZwUXJwSjkwS3NlOTUzRnZsXztMYDxAekw4fVk7QktzeHlrOD40PX5lM3lFfTYqJjs6KVdYOWhqVyMjfD53cX1jK1VGXiw1VE5yOmhqUCZWVkZzcClnNVVgNEdqK3x5U31TN0hNSFlmPF8kfEhgWzhrWzsxUVJMLjVzUlhna2hHPjVeQCxR'@; put 'YSEhb0Bbc0lBRn0yTX1IdWRhelEhRnxVOyJLKUt6ckFwezNreyk1TihhOzF+XzhFdj5ScjNleE9vTm1Wd1MjKXR+SVBlLC4/UyhYdHg8clByWEUvazMzYS9uUWokNmdUKWdhJCUzKnE+T0U6VTMlRFZJcFZne0w3Pkxgcz1VMSVjW2Y3eUBlM3lrKGlqPFZBWFtOLkVBK1t5SlVkOD18R3ZKTSZf'@; put 'TTJRUXgxUVckaXM7JUcrWmlEPW10MT1+PyExX15rKWdCeHBgd1hpYn5vUV1Wb2svay8pMEddMUkhWWI4ZUkmISUxNlYwZHJ5SVhoKVEwWnBCYitTWCRbRjVja3F9JCZ4bHM7YSZlWzc7UD1oYmYiQ0xFM09yRGF0USIkQVtYQTw2LHB9czB8REB6UkVpZFBLcmJnVUdNYE05ZU07OjxMczhvQSVM'@; put 'TkUoKDgvX0IkPVZ4eXUxLkx5THMlW1thb0N0KENAbmMkSUdAITAmcXxQP1dnd3wmJT0laztycDEjIndMQGNFXk4/Q08/MzRrKHFRR0dJdXZMPC5yL1NAT1F3UE5EIzElXXw9RFZLM0oyRkNHaE96VFNicHBte2lDVC9NWEd2bUpRS151fkVhdzI9NyM2UWhgKiIrSVhZXW9vPStSOmxmZylLaWQo'@; put 'WFhze0osVmlxYT8obV5iY01RRSYuXzNNWSlpZiYiQjV8YmVwSVRPMF4zPGkzUzVyQWViVWtfPiw7KVYoYFdzQzlhN19bI1pCMSgsJCFBbUxPc1U3UVFlX2xDRWE2Q1NBe0p4Tm5YSCFOdXlkeVNdPzl5Z2FNTVdhRGE8LFU/Xz0vMCY0dFlmSl8jRXoiPFhoZzQ3NFtzbTpxKVd6ST8uLDdTM0hf'@; put 'ez8vMTc0Ym43ZGZOZSJlNmR1QnhxK1tMOSFOfG14Y0J3Y3lyZVZlVVR5KjI3aDBzRyh1YjJDUTRnbk5uUEtxeWJ3IVJyb08iNlFGP3BhJCFlaVhgQFRVPzllRV97QFdvLCVqTn1ifjxfTC4janxSPn5aemxiWkkiYFhhMVE2NlRpIjdtPFgqbTxtJnVEM0tDZFpwRntUNGU3RmU8aUdeUnk2JTxZ'@; put 'VzEybDM9QWg2LCohaXJPfTJ8Sys/P3B7KDtaZSp1JnFnbmkrfnImJWtQeCM3UmlhPSJabH5HYncpOHB2IXRiSCo3Ny5iSXYzP2VHPWgyKm1sciQrdEo7ejw7THE0Zj4iayU7cT9JdTo7eEMhOlYxKVsqRT85aXkyWUM2XyJkfVNMajt5XXlDMngvV0M8Y1llSCtNPygqREhnK0BJTXVAdGRNei5k'@; put 'NTpWJnRMeSJIakpjbHpKZFc4RXlzJHoyaUIkdlNtYVsrI2xKPC9QbDhwUEo8L1BVI0drTzgjRVFRTjpsQFBtTm1AZUZ9ZnBjKD0lUEwse3U2MCo/VWg5Kno6Z1lmWmNrKE1HUWcqamgkW3gjRlYvX15eQFk2UnNATFk7W3FpNUxlYChRZUE7MzpebXplUSEpN2E4UnJxfFBxdyV2SmRXfFBWekU3'@; put 'a2loQ1NnIU0iL19eZ35oUCJfXSl9cGY+UXRbISs9Nls2Wk5OZ3NkXW0qYWkzYVZyVX5lOmBeUDhIeEgpJno9WSY/fWVGOVtXRGglSD04bT5ONkc6cFNqZHZYO2Nrc2FYbS9UTjFxM300MURrVHhjb2dTXkxvOFl7Nz4hWEM0KiNnTVtxVmhaK0VdS24sczJseDYpUiJDWno6NGFTVzZbTy9MdTsm'@; put 'cls9RDwzcTJIRSVfKENVRyVwN1krQj1OaHZTM293UU9mNSl8ZDx3cHAkJWImUjFJcj1FPHxzazhgbT5BUStsUj5JZ0QzSypHajhXV11iZn5dN2U7N01lWykuIkFCPGtwbVQ3bj52VHdleTg4bV8+NmtUT11vciNzcDYxfjh6WyZ4Y2UyQl1zKVVaezJ+QyZSTU9aNjY1Tio0NlF5d2djdyVKaF4v'@; put 'SXNKaUhtaVNvPlp0dnE7aFklRl18SlYvZ1lQP2pwfURWWHxEQCFDZTgkdVJHY0lIMHdTfEQ7WSs6Zk9yKGpOb3dpcV5IVUY3VVMzazlaVUAwImBJWkMkVyFjUURpUEU4Uih9LFdXTn1Bdl4zPkYpdyVpJjhyPW09PWRHZU99T2ZiZW85LCRwd2ouMThhVXluOGBvbTQ4WTEzYU9IazF1SDhmMWYv'@; put 'KWs4bHZGa2BIM0g9aTNIb2Z0OzFIM2NnLjwsJWo/IXcwYlU9c1BARip3aGpXITE+JlVWNVFWY2I+MGJaYSRrdWh9Kld5bXVXeUhecSR7V18wUXpSR0ZwZS9BOGprL3dPb1hHUCtmN3lzNCpJRHglekYvZyxLT1thdU8zfXdhemtlY353ei5XU25APFhmXTwhZTRuOGA1SENlWzxreVdKYitCTGw4'@; put 'N0h4JDtxKipaSnlbcXhmTnxIZ3s/bjpsdDFdeEdyL0p3N2grT2Y1YnBdSmA1Ki5sZjQ4aFkudzttK0QpcWt6aWJzLyRhZkJmZmo0eFpqbUo4ZUY9PmAybzhVeyZVIj1gZj1eUUxrPUI3dGNxQEBueD00WkNxdF5AZUkxMUN0I1Y8dDJ0bGY7LHZUVTA8ZD4rO2lUQVUwMSxxRnpNcnVnUyJlYSNn'@; put 'PyV3T21tODlEaWU6RzImZCo5KmJSbkxgaHp3Pj1TUnFCQDs1VWVIUUQ1OXBAKjR6O1ZtXllxXSY1emVXYW9lKTFRW1VtbDZLPGJMTkttWSR2RyZ2SF9ZfC5iMCxpXm84Yjd4Sl5LKihuN34pKXoyR3xFcWshRnY/T2E+bCZjQ05+OWF3PyNKcil3fXZfJEtoMVckZEpQT1VvdCRnNUN2KCZ5c3JF'@; put 'SFJaTDlXT0VFXXYuTF9pSkRxZ1pyN0p3UD5eS2xOa1taRDAjb2cuS3hRcnVZXmNobWBdVkopMytFajRfUzUpODZARlIoNEEoZF5uUXdkfjwkPTw4YHoxe3Y4bks+cHhwKEokXUVSKSYpZ1VxMXFNXiF4JjUqa3xiOzM1blt5LnI0RzV8eH1efXEmcFZNfEptfEZSKEN6XTszNz9yaDYuNUxqUU8u'@; put 'LjZDYWdNQ2QjU0A5e3wuVFdqLmApUnZbcDtAblRQMSVHMl9mQTZNczgrP14qZStmc0RuMyhLJTdKWyVfWUUleVd8RmMhQloxQG1NdDZfN2JFZDBDLix6QUEwKVNBS0NeSmVjaSFzKVArPTE/Xkl0RSIkTXtIKiM9NUB2LkxTanx2dEJBQUFBQUFBQUFBTWN+YUVnWy8lZ2lXQkpHeSYmakZYLltk'@; put 'JmpbSX1vcDNgUmxaR2tkY248Ylh4Ri9IWllna2tHSCxBMExjVDM9LDdefnF3O2pVLFl0Xi5EZyFPPFh4OXBBdDQ5VjY/dkdpeChYWXVeQSlUNFFRNTtTKFVoPEo0bmtiNU5ZNVlDRkwqJSR4Omp+aThPNHNoRVJtPUxNZV5idX1ZZWk1ZmJ7aXQmXnh1X3olQmJGMSJBKn0kMyVSLzhxYT0qeC9y'@; put 'KDUjbDN8QCh+VCNZZXp5XlQob0p6RylIU0pRR2RYRWhZaT8lViIsU3ptXzh5ODw5b0VQZDxQIyZBJlJgd0UvJGxpLyt+aHhWVl0xUn12KG0sdU1pZWk3VSZqUEsmRGlCQG4/aTxlNTBgM3BrIks8LDc/QUloNys9ayJEfUQuSXolcT0wM2txUEFfISlJYEFFVkwvXk5NZC9dNkhleE1Fcm9DSEV2'@; put 'VnRedmM5XyhIKj0oRXNtOilSJEo5UD1ITFRbfV0vaGw1R0pjVl85KXg+cChDJFs7YEJxLGt5P2ZBcTIxJlI2dCxNPiM5RCFyfVUvV3whLFVvSXIpfUN3VV8oIXZAKVkjJGZTVHZuVlYmNH0+I0grblcrNHU9LiFpXkxOR0IyQWxYak1ESFd6dnR0VSJ7SHxwOnNEXTgjeiRUXjZeRDJidE1KWUJi'@; put 'fDhZSVkjbnVsYGVIZzwkXmo9YTV2NCtQX3ojMiw8L3k0fVFzbkh8VmdyPHhCR0t1RyU+Mit5WEFgc3NAPiJkJVpvP1JaV3I8Qzxwd1hWNXBaa3NCUld1fjFXSnVxLipeLiFQYSlNPmxUNnNHPC5tTmNUZCZJZmY5czd+S31aZWU0a350VmxCKkJdQkYzcHZQRiRWejcjXzU0ZUQ6MTJUdDRIWENn'@; put 'aV5YUHdacDZPJlVgRFt7TkgpQCZCZXtiXUVBZyUpdVFkOD81ZTQ4QHxHLz5WO1hCW3QxbXlZI1MhcUFHZDY2fSR1anM3PmNIcUM2KX0keDt8ISgrVz1SdE4le2tgXkksPEZhdUQxRUQjNSomIUYxL3V9M3ooLCZ4W0pXenpFN3M6TktOJVV+citXeV4kSjNeYmIieG9aZHFfQzAqT0o9NmdyJkwv'@; put 'VFUxdFB7di5VKC4qelg5c0YvdDkhZlFwV3lFKSQ7JjVYPmt7UGpxdDxfPCR0Yy49fEBMZTVdP2thdTNlZyIkdlhTY0wwU1koVF1KOiZDUGRMdTxtYnRnJXR4RypkT151KC5ec3Q3V1VPP0I9TFJsaDcwbjY2bXNORXdVZj1ZWldCVD8zL1QiLykyRSFvdTNkeyJGMmpraHFqe188an1+YCtXaXN6'@; put 'fl9Vc2VjTyk3YltTIkVLMkZ0X0grUmZIfSxVOiNeSkpmYmBUIUJRUnhzdzNWUn1acXQ7OGZSdmxFNTVdVWI4WSh1d1UsSnwwTyYyOzlbbjVMKFlzMkkjVSF+VDkxRStoUEpuSTVEOnZlYXQsfForNkp0PXpATVl3QkVnanYyfGgmc0Y6VlBJfH5lI0lbLFNafjo9eWR0ek8kVkNQNk9RY3xPSz5r'@; put 'ezt8cElLc1lsc3xfb3s6X0crZmFSd0AjKUg+YCk9O2llfipDSkJ3Pk9rXkN1SCgwUkp6WDJ+YEgwOmVHUiIwJVBRMyshTH0/UXQ7TiZSeGJJQmBmdjwpPjs3UnhXTlk+IVMsSDVFJXRwRGo3Y1hQaCJXNSEiP01Md3IqWUVIdDZ0NXRRdlIoNTljeFtLPjpuISZxKDdoNU9sdWBxUzFabGwpQ1Bi'@; put 'MkdXeDVnQF1DSUlGXzJnVENUM21RQjpiUjUuI0M/Ql87R0JTfUxHTDl8UD18eWgmMEJyfCVVY0U9aGM0QjFBRUdLNldjUkZ4W0gxcittPDViS2pTbFJ9JjpRVmtpS2h+ZzYmZElPKyRucGFsa1JhKUE4SVhwMih5X2VAMExpMlovflcoeSYxVSIkX0Voelg+Nkk0Q3lRRz5YLnN0KERbe3RKeCpC'@; put 'YSpqbShuK0k/UGZqTFgudjNPPWlsNGFEdlJbKkpqMUdUaihKakBTbDpxVkN7bmBRdndOaHQqZm05WiU+KF5PcD5CZi9+PDJBOFpAdzB6dS9OZXxYcEEycnRXdyU3ZjBxPUYqN3x1KHspcGxPd3Y8fC9pYnRJIlp2QEBqa2VgNFtoSyZ4RzRlU0dYaThWcHdKRjF1O0xGVEtabmNQakdkTis+anJY'@; put 'LHRtblBddipOMH18K1laSG4/a0UmPlh9ak9KNnI1LD96fVBCXkUsNFFmQVBka3ZhWVJERyhfTmRMTnxlN2BDPX1damFdaSE7fHh1RDxnTmgyWig8RyRMOW0hdDdFUixRRVJUYkkxUTYkXlhHYz9bYTgqNlchajduNjc2TVV6a2J8dVNsWSMkbFlrbzg3KGlJfnsrcHg4Rio4SW9TYl8qRm44PVE/'@; put 'NUleX3E7IVY4MUgoOXByd3Uiak5Bcio5I2ZFaV9yd0Mzey9IW3dwY0B1cFY2fV4reTg3ZzBEfmV4RDd7eDp7JVp2MWw0XXFeYm5qV11XXy5rKUJ0a3tEKFM8KWlCXSJWYVQwTU9UaHc6Z1QmNU02V2hIJUxxa0JJWWU4NT9fUjNOQ3lYdTJjczxQYSVNPU9pT1ZpPmg/MCFLTUYjNjs8cFBMTGU7'@; put 'OCZxP31geiZQR312fUs1T1trMWhJUStkM014eUQhaVthJnpALEQxJmRTInlCMzJ3JUs4aTYpNkVzZD5+UjEwfF1EJXRbdlRlM3JzMSs1W1NrSHY3O2grNX4/Vms4IkxHYlUyJEo3ZHw5eXo2IVg2TkZUNkB2QWQ1bltUP3IxQ2JNc3lQK3xYI2BISUtsWVdMOGFAelo9O0ptZn1DJVZAV1Z+Lmdx'@; put 'bl9zbUcwSS96Vk8vVntDOy5IQ3N7e2JSNU43TyZsTnhqYWl+eDAlMXFJZnJVMzh9KygrWiF7Mj49UCNQeylxIkkjODUsQS9+bUhdKVclKkJuYmlDQ101dCtCanpUKTtIRjtQdklKeFRfLDZaTjRITTwwIWdCQksyQTIoakZUNm5WU1I2eX1HITo3QiloTXU/LCklUzUqe2tOSD0rSCZtVU9qUmRo'@; put 'MltdayhgNklhP1plLDtZZVVMU14kPn5WbDBkLDhLb1RCR1g4ZldHJXQ/S1MmcEw4K1MwOnlLKk97aDZCbFBQJU93fm8wPUZVdUt6LilJS2BxbGQkQ2U0QHQpTE1zejVATEdVYUZQWjM5MDtaQUkzYkdmV1EzYiYyP0dZa1plKEJaR08rZUYwQmhPTG1FS0NdbUlhTnpKaWlgcWg6OkVyTiIkR3J9'@; put 'YUgqVVpPTEByT0NOaW9ZbShfVG5MejUmWz1qI2g0JDtvLyY1ZjRvRG01JkgsS30zMTNETkBbfHp7XjhqOlFxajBALn16dTkhczhQMTp1LEFbUnx1N3oxTH5bOFF1VnNLJFtqW258Z3g5TXspMVBpNkFqcGVgOXAyTmpafTo0U1tkMU1HIUc/cXlObkxRTylPb311UTI/X3Mxbj9WOChzXSFNI25p'@; put 'VyFSaThzS2hpU31uVCxSIVpFQiFNeS9YcHY4aHZYPmhUQyg0VGRjMDR6e2QwPDVFQ2Rxek5aZHRFVGgjZ1UjZGd4TCNmZXssNWBfW21SenswYSpqPjQrQEFZXW09SixEezEoVy9sanpSRHIkXV9mL2NtODNKXjJCWUpsTzhhY01ELzRLZExueyxvJVtydlVrPipFYipmW1d9P1RmaGE7e0Q8bSVQ'@; put 'dll3QDN0KmUyOnFWbjg9X2thbzA1Kkx0RkVOd0d0XUhZIjZRNVRKbVQrd2pFXk1VRTsuPUtzUT9tRG4/I2tMMD4qdTE0cEdBR3FdKCxVMjZFYytbYDZ0W0IkM0VmV3RAeDtga0RLSH0+P0d+KzJMRygjWVB8YGBVRl01dFo/eFtuMytaYU5HYmVHPWlfKjM5elZBQHVDdG9DWSM+dUNGez5GWFte'@; put 'Pkp8ZSZjMjV1cUIwS0pOSEZnKW45M2dETjAkZHklYDtObyNDe1pDXTRIZF5NR1p6d2xbakkjRFAlbWZdS0cmRjQmeXU2OmkkLEVUOEtoKkY7UmBqPDxkNS5eVXdVKzl2enJOJUVXNUZCX0RCVWIrdj1UeyQ9MzswWU9VLFlaOlVVIjYvUzlUUnMpQSRtM1NddVFITmlod1FCTy57JTpvbWNzV3Jr'@; put 'SFtMWjA8STpSMTl4V107QXRNMixEPTpgVDdIfWt0YDYveXAlNXFKT29ZQUouOSo1anEvdW8jNlIrNWs/Ti9wa2VWISRQVD4lOVE+OSM5bzcpTHhdWUU3QHZfVUdKbnYxTnRlb3A0PFYjdHshUn43dlp4QmRSYkNeRUlGb3dnbXx5MEMybl8jaVR2Iz5lRlkwMUJ0fmpGamQ5QCsvMVhCXSwvMyVV'@; put 'N05bbzRkTmhaJCZJV0BEVXlhJClJPE1TXnFKemtSXjlzb0srRTlMVFprSHpFWzhAcW5eVGkzSXVjYzN2WXRQZ2xmYylNNSN1UnR6PnFbYCkjU0o8T0VMJWNfVHxAJUpjTEA1XXxEWGZALFd0dU1jO196Xk1vRGlaJlE3OmFYMFNZYCI1P10ifUNBcXF8SWxFOmMub3l4a3MxUGB2c3ZscC9tQnhx'@; put 'QUd4VTtNaVFzeElZXVkzZWE2bTNIST1ZO0psI0U1UGdKbE8vX2RLOGVMd11TNjo9ezh1NGt8N34zKU5AT2xkKlhMRz1SMz9APExleXokRTF3KCpFa25MJWZzbCkqfnkkRUlhSHcuO0c2dW06bXFfVkRLXktIPms8eHEyZGhqImAlI3Z5UFJkczM+MWg7d1BWamhwKE9gKiY+KFpnODs9JXttXUR2'@; put 'KTExS2djYlpbdTR5ZkJ1WUwrOjsxaElMT05VTz8oKGVCJEgheCYuYHBoeiZkKnlxOHY/T3VzajRTPiJPPShaXlJdV1A2YjB2QDtQayxzJEhpYUFvfEh2SDtoX2tWRjJjUS9oPDMsJVM4Tk52QXFfQiUyY1lWQExhOHR4cVNYe3tNWVNAZnlyJWVMTzNAdW9sWmprOHU3PVhBL082PGZQQFRfVEJG'@; put 'TW9uNUs6Kzt2Y35zRkAlYj9FN0FrWHB+eWRBSSheSil9Ty4uazZePUJjMGo2R3ZhUFk/TnwzfCFbMHEvUS9pVW9ANlcjJmpGQXlqd1Z6SXZEI3FUXlhqeD5sbXxuIz5iQFduaV9AIWl+PUI2Qkh5YlRlQkdSdUopPEx2ImJeWGY+UiRzd2cyc0lYTTdiQi9MIW5oOnx8JVhDaUcxL0NXWT0kQnJV'@; put 'Qm5bLFlFfiN5VywsVlcvTylsL0xNcGRlSksrUn1ZZTpINCxVI3ZtPHhjbWVtRDA3Z3VqdHdUOnFuPyVDUzY4RDA1OW1EKzIpZixaNCNCQGwwV200SXBrQkNsLGk+Z1J+T3AiYVoiWn5rd0psIUx6USUhP19FMEBwb3V0NyMhS2ZBJltdJSQ9YWtJVXVsajZ+ZXNNem02eSFKdTAucXEkaEdrXnRY'@; put 'LD9hYDpddVNgIT5iMEJfNV48MCFLI1c0KXFsITYkeVZTIUhkLmNNPCZAZiNYZj96KDRDWkFuQl8rUCU3Jl1jQH1YT2tAS3deQlVAJUtQWlZkST4jQyFjRyFibXhDYjQvVHU7Oykyd29bfTV+TGRhaSgoMnBZYW1MSno+I2tnV1ZLYztMRTlwaCkxcSQzVW9jTzZYP0dKWTM1PjkwUnsmfW8oSDVm'@; put 'QEttcTxpei9obmhvdGFPfTluKyVnMCh0YnBjNnBFI3ZROkV+Y3VEOTtsOUdBTjQxQCpERUVKaHR4Wm0lRjBJOTxxVjgyTHBBQWx2dlJJMGFeOUUzPmUrI2xafF5aakhId3IvWWV0TyQmOSRKXWEwOXJeaEtkIyReIjcqVXl5a2J5ejEje0hRcCVWS1Ixd0w/bmh7Qn1NUVZ8QFpofV9BenVXWDsj'@; put 'SWg+d0B3MjBpQzcmQkBHeHp9aG52dlNaOXxbZUZyWGxudjI1I2Z9Z008UGNbTiRlUiMlOUlSXyVrNjAkVDZWQ0s1OFgzTSQ/I1VzM0FhWXF4bHgvS1BeKyZMIjBlODNZNmltPzVoOHBDbVVzbGZERGp7R05WTnExTElOTnZ8TWsjZm5jUTNgcnk5O1JeSWZiYXNEL3F2e3tabnsuZlFvUC9FWk8u'@; put 'JkYyNm8qS2Q6ImIzaXB9MD14eyklNT1ZeyR6ZD5bI20zX2VUQ3coXkFSIjAjX0M2KlFAPUhaNC5YYlleWkwjaz0laGVRRlBIYSY1dlRObFVHVTJXJkYzU0VmY09QUlglfGo+RFRZLCElaUVyI3tiYDg1JkxxUHRzKkcmKFdZcTVyMkZdaXlWVUhnJl5Sa0kiMjRtbkpTSGo/U0ZraUAoKCt1MEhi'@; put 'YUYvdHVDa1MlaClCb1A9SnJMJDF+fnlrPGUjWmted3MrTWN3azElcnNUJEtkLEFTbTBeSHIqeXElI1kreDN+RSZIN3wyfWdJITFMUnBDen1DUXsqIkZ2Z11pV2J5IUh2bDZPIikoSzE5KTl8K2JmSXlsZjdoS1RvSXZfKExgZEtPPzRYSS9VWT15VCwuRjpGT1deUmdGQnJ7O2BHdjx5dXlQWTlV'@; put 'TFosfWUlQDBjc2pCaWs3azBTUTF1MHpqOnlZUXRhYDh3eFpOVFtLLjFUbE1ZT3VrZl9YO0w3TTB4Ll5OfG4hby9PO3dmSUYqfH5PaXZeSVlmLyFyU0o4clQ7WXI6RXtgTFoyNWtnPj1VYTo/enRsIUpKOkF0WV5nPkk4eSZxMj0xXkkxK0QiJV1dal9bdkZDdlM7eHd9U15bKjw0ZWJ+JVtEUltK'@; put 'WDpgUnx0STlDQzxAMiIqRUgoSCspUjlxXVQ3U3dwZHAweiQjNm5CcV1GaX1maGslM0tzP019e2ppMV08UjhocXprXjhfSzNIS258KzxoezRibGh1IWFUPHNbK1UhJUMmJitKbCxALCRCQT1SMnwvYjVRaHoiKTl0SEdvIn4vRE9nUThqNmAoZS4kOFldUXc8T1BWc3gjZF8zaXlCSEJiMDd5cjQ2'@; put 'SX1KPDY+dnZjZEU/Un0rZzlGfDJNfDgpQlJrS2RLZGRdRjxQPj92K2p7S3UqJFl3em5KTS8jdkdRNFYsOTpnd2pPM2xbMmImNUVkKkJJKWdlQlJzMjgzOjpfR0JkPzA0OHZwVXsjIj4zYD1Vaz9bMVN0PzM0TGBAXTk7XmZ5YjJ3aCNuV0I0MSpJNi44dHRAIWYob2l6TyJZUX5EIWYoS19wczZI'@; put 'c0duVzE1QnBbPVBNU1MpTXhdIW8yOn1aaGd8Y0Q1WTlRI0tveUB3VHBqV01MVmUscmZtZUVgQlZ+U1R6YFVFWD5iZT8kNFtzSHNiaVU2NGR1UUQvYV5BW29rRCtwVX4hYC8mdldYTmVyZW9Fd0F7VUJLZEJtI2AieTo6c3hvSVlFXzswaHBBS2N8STZpJVU2aVVJO2pBeD9FKjpkUmxnZiQyaUVA'@; put 'eVJwN0VHfXNxP1Y1ZCFZYVNuY0g9KE92fXkxWF90a152JlA5Z1ZuZlBRPExQJipYL1U6JWlZYlo/Zn16e187azIjI2RhbF4vczYoUn0wK2Fwe003K3d4RnhyajQvKjpQaGJtIU1mZlJmfil5SToyUnQkbEhCWn5kcSM+bHRMLilFO2xEQUw+NDZWY1UsPlcjYz1kJmZFTihRdUdCeFRCJXgjRS9w'@; put 'djVbQV9dY0NEaHZrZnhmNVJfOm1MSTtjMioqK2FHWWlTUypwWDc8bjpnT3lIVkFxXiFPZW8ke0FRMWFgM01zaDpxUU1ldD55a2EyRzlUKjFkSXRCYW1dSTFyRFZqOSgre0lvVT5KZ1V3T0EjOCgjbWY1KCU8R3pzYHtsYXxoZX5jdHRUWTpuJjUzaGZkazNdOTBrQSlzcGx9IywqNFEvWzsofTBM'@; put 'PXIzNEtjZU1dWV1adnVWMlR6dH5SLDlDYiNNWFtTdTEqXU9QTngxOV1vaFpsQUddJV8veT5zUm04dV9wQT5XYSUwInBbPUdpT0xHYVlvdSZkXzFwOVtNKEwpeGE6LFciPngqUj1hVHtTe3MiUmZYKXFlMnBGdkE1M1klclIkMnVWW2toOVBnWnFVQFliIWpqak02X1hxSjUwKUtwTHlecFcpekM4'@; put 'M30vLmxtVFYlNyssX21mLDp8LEZEaDBLSFhLQjU8RjFMW19uak9jVTxMeDRlOyxhOnI/QjIlRFZRW1ViVn50fkFbNlhfK2soa1kyOSQ4TWU7MmF7My49TEduTVVmPDFqcXFnYSg3dHxnPlhiKi5dT2RxQV8hSD1sQnk2VD0xZWpvN090WmN4TTVkVUVJPT1oXlRLJXB4YS5RZFE4KCI+bXRKUGdW'@; put 'Yl43blh5PmBtKm1KX3UkbXdIJU1LRGt+JmJZUVc4JnBJWmY2Q0MqazEjai88PT1sRlpLJD8sWCRjLm1aLGJXJFZnZk9bO2FCbWtkMTVsXzhuOjkoWyRwQi93RlJrLFpLZlt6ejhOPkJhMip8L3Z8bklHYHclVn08S3RrUS9tXlF6Y1hEfSZLL0QoR147Mnk6T1smZ2lka0k5TE5pLFJSSUJ8cTBg'@; put 'JlhbfCtPREBRQSJqaD0qZjJOTzt4bXs9TjNQfUwsOHlZdnp8ZEpzdG5SMyZhelpEQjBGPyNPT2N7S3JgTUx0KUshfmBePyh1dU5rXUloQjUlXk17T2REIT8yRGxocSxbREhNOXp+ckZ4VndEQnpIcUchfGozX18vZExNWyosUCtFfGh5aC8oXXRAUFRVe1F3OTQrd3dmVUJ1bkYkV1tTZ3Iqel1Z'@; put 'YzM2YU0mTEMkNHJ4fmQmU0c3OTVWZlFeYn5lPElJU0ZgOjdoTzIyUWE+eipgN2BqUiQ6Oj9hckkxRyE3VzlxR2l2dV5vd3wvQmZXbmV5SD0kOD51NVg3bkN8fGhpcnVaUVM4K2lkRCpUPzRaZDpOYFZ1YSFCKSohUktuPWwuWjAlNSJpak02OjxLNEs2VSFhUHVNfnltSEFMNixAJEBXQCsqTlhg'@; put 'XVglUiVFOllDSXlpd1F9VHIpO3AuPGEsSVEsfX1PVGRSWkNKbEhVQjglQGczM0NORis+N1QvTHdhYl8wPCI3MkkzOGgpZCVrbGkkZ3U9Rl11Y0ReU2NfYFI9UHdjKlV4N31jU1ZReGIyUWAvXl9uKjBMLGhzfmFQPTpVIncqV3V5SnRYe3NMMG1ZYEhVN3VHO15sRk1qPDNOOWleYXA/SUs9Z2lf'@; put 'Jm9bNiNafjIyIW9SfUYqNEU1fkRNZCxFMFgiR3cvZioxM1ZRJSFfR2RCQjRoWEIjI0kldHJUIzIpdjoqYHJwVX40ODZhajojZGJAL1E0IVVUbm5VOUpJPmF3aXV9UVJuaiRMI0BDSDQidEJpZj4wPWNiOXQ/e2F+d0BHeyQhPmdUYD19T05tOihjZVBsKTdJY1h2Vj1ScmUuU0wublBfZnJ8dVVL'@; put 'UTQ1Vy5dRCtoRnp1ZjNTJGlBbShjXWE6YXEyWDI/diElc1gwLFU8fWJbZkczPj08MUM4elVIbFFzeSVzNjRUY3xuaj5PZEpJel5sPWYobn5RWX5OWGBbW0lFbk59QHw4VTkrI1BvPFU/JWR1YzwyV1Q8cG9UZFNNSH40VnNnPmttX25TPFIwN09aLDFOMXtTa3FjJm9wPjdVXVI+NigpUVp6K2Jo'@; put 'Q092OUNaZ2FraDpwKUY/WCJ8Vlp2P1U5MGliQV00U2o+RX1NSGFPSCNHUGBORlpRYmQ3QWxFXV0xcE1veXt+Mk85YGMjYlhtd2xHYEsufHRQcnQ0QSt0Sm4sLy51XiZOck5OSVp3N0VXKGMlRl5AVVR6ejJxaDw/N1RpaHVpTzRWOzdSXndUaD4lLHV7PlRSdTJqS0AxcVZPQ31TQC5xSXhfdlcj'@; put 'LyZZciZbKyV2fXNgO3duR2dFUGJydDBeZ05XJHk6I2dGaXQ2Nkk7OG42fWF+dSVnJmB2W2kiWTQuMnNwIztXe0owTzcuTkxXKXc/Rk89OGAyKG0+X3R3SCFPM0lJKXk5WkUyP2JZJCVVZS5gRkh6RnlfZm5LZ0AuLHQ/PlAlN1ldZXo+PSUvdXk3YD8ifUErUGlTVV5oW3l2UThLLjBXTW1UOHEr'@; put 'fGZaUUYqfH0hbEFbeWFLIyF2eFo9eGp0OF56RWgubGBTOGJRM0R6aX1WMD0ufTcmZzFLOHUjYSZuSipwKk47MUljMEJdL2tFTC5hXmJCMVYvL1pVQyF8dHswVko4WzxseyFjYEF1UXpZOG1fWS9XSyFwbkw1dVZ+WDJYOSlqLiFaQlJ7Rm5XRkBUPEVrW0VMOTolZ3BqNjpeWzwpPVVlQjtRb2N0'@; put 'JkFVNGg0QildT3JZLjgrPmQyWWMuMipqQVVGLFIsOikjMzZ6Zj58OXp2S0AxQWo9ZDdAMFNaUWMhWl1SO2A3e3hIQy47JTVkeD5wV1NUfSpNRWM2MSUmM2ZUMWdePTF6M353UD0xTUs0VzFFR0R0LG9fclg3QHY4T3ZlPS8hMEA6R3hUNU18PUpRWG1Oan1JNnl1NEhlUWYyZjd5R1Vae0ZYRmVl'@; put 'KHhjVjR+NSZRckBHbUFMSHB3RypIb0cmYU8sfCJifSMhIUEyamxKfVc9NHdDdiEuIntsO1dMZXtsR19MQllGeVIsYDJuXnosZiIpb3lzXVYuMHtXV0JKSXM4bWF+ezJILllWMChidz5ea34lSStiU1gxUzZQKGtjKm58TDdiTCMjVyRIdFBwKXxoaGd2fmZjOWFicFk8Zl9nZnFsMXtnYiV5R3Bk'@; put 'ezBqfmUyen1kKHBKZH43fHlvOHlsd2c8KCpEejBsXVN8JHwxUThDOUJ6WVZ1TjBLOFVtMHpGYyo9aTRpYylPVVR4e1Upb0g6ZUg3aDJmSDFPU3x7YylCL0JgfT84Nmp4InZ2NFtfZTIsKUwpSSJuTW5DbmA7WGYzNX1TfnwqVHp5QEU/UXE8YiYuV2RESjs6XmlKKXxzO2gjZTBQZDssVVZTezte'@; put 'RkdAT0NjbENmd0JNPFlTKDMqVHhFamhCRi4kNy91YFFWP0RTc2tiOV9OQUA+JCIlT0hMakduNWU1azRgKn4+Wn4kfU8sSjB8RChALzxtZF95VGJ5RW4pRXMoTVN+MEZKLGR1OnpdbnpgUERCWltIQXRKITokL3U/OSpUS29DfCFCJXB2TkxgY09KXVkpbkpyOj1wO0QjczBqc2VIUGsieEJ7I25S'@; put 'ZCN0SjteNSY0I1ZaOmFZdV57Sm11PiIub2l3V285KW9XcHVGUHFiQSEsaCwxMXpQb3Q3PFpxLzUhZV5WZFZZVFFiNTk5cSpsJVRzMTZAZzRyY05JZ2YrWT5ZYy5uMkNFYiU4Rk1yXUc/TH5venJSPFksUSw8L2RONFFqNT1kUVpvIj5gUVRDIVQvIXhxJlFgeV1tX0A2fVReKnpnKHxganMwXmo9'@; put 'dGlQOWIkeG5WJVZjVnI5OkNTT142MVU7KkZIOyUlc0E8ek9QQTtQb1JnRVZLQzdqdkVRI1ZrMXBNYFl2WFs+fCN6JnV1cjhRQkJQWSNYRkJ9aDRsWlUsNUdYTVt7YXVVdVtrNGlpdWxmPEFCJXpZOmZaVzR1eU06MjxOcWcpd1hCL0Jzaz5kdEthSGxlOGg8YmIpeWFPSUt8b1hLaztlYWZ3NlVY'@; put 'Y1ksOzBuaG0ieURLT3k6fStVXmh8e11sPE03MyV0OXwmK0U5VkI9e1lWaSYjR0tyOWFFXjV7ZTtkK2spfGdvflEuKXp3Ryw0MHVDPHc+dDNrOm97e0dFUCpVSnBmMnB8aURGSCgrXU9TKXBQeF52NDR3UWleQFEuSz04dkYybyYyWSVFSzdWbGBHMkY0RkEvXXJ4QHAjbkcxbFhoYmpaM3ojVnlP'@; put 'U0UqY2M4TkgzZnVNPURrUihhJHhYcXI9T0Z9Wi8+WTVgdyhmV308T1NzalYuPzF4KTJ5cS9FZCpbLnpUMXxwfT5+Ul8zL0BGWjNVMiJ3RjxbXzlubGN4JjEicT9BbVlpW31QY256Lk8+ZWRiZForcyJBVjEuMk5dOmRgfV0jXiVhLCsjOTBlJTssc1JjW2Z9VTkrXT5sW2UvU11RR1VjY2dFIW9u'@; put 'UCh7cjV3KTZfO0dWN1oxNFQxcSp2VX04Q0lCfDl5Ym9mYjA+Ni46eVRyUGR+ODsqbjEqcV81PnFNZVNiQTpPSFJ9Ok95Xl0rNjxiUUphITlbW25KekFKa3NGSmQ5cXRVemZGd2FELE1abS5WZ2lGI2EmdDQzKDcvZ09zY1ohUEc5NFI7WD1USEw5YEY6bSg0Qk5KS2BeZH5BRlVoeV9sd0ptZ1tU'@; put 'RXU5P3F4N3wuUUZPPldGSXh7c3hSdmlpViI3US9NSXJLaHRscnNTT3d7e2UlTVsjRUBKd19kM002SnJMS0NoPjcrYEt4ekpAZS9na3RQbV5uOUtCbVt7KENeIWMzNjpzfjV8W0wpd2FWaF5HTnF+fkl+PTZOWX5WZ2VzcHwocFtWfSI7JGwzcDolSzY3RG5tP3wzSGlSQk43Pz5VQSt3TXBIQXJ2'@; put 'c3teLjQuaHBjSmA0Oztze3hLTn5xZEZvZzk4XzZ8Nkw2KmNiOXg3eWh7OFZ8VkxZMWxQWVhQazJlVzAqezhWTmR5KkQiInxZUXw8dHI/IW87LlhDJHBzYXZvWSVENFdpKFZnQXEoaUROdlloajMsbnhZPWdmMSU9Q011QCEoaVUwU0suVTVSNEIzQkw7JWBuV3clOjlvMWl9aCwyZXg1KExFOU9V'@; put 'fU5UWTAuOkdEKSFKSFBFU2czU1FJdSpsZldTayIlSjRvVm13ZShaZHBGPllscXJvaComSDxWTUBRbXBfRTdsKDYsRFUjS2YmYmVJV1tQJF4rZyQ7VF4yUCx6e0pIb21pWDF8RCNCXzYsXU5RSGt6eyVFemROdUlpKyFsS2hSY318Pm82d1k+OShleD1PSVp+QHomYjIhIkRJbnImfjlQb0QuMUQi'@; put 'aVclRzIrI2AoN1liSllyc1Y5PDd0RyZeNFFVeWciQ11mOVljRCFCTSJXQjsuOzExITxuRk9IJkBbWFYoU1lTUC9aKCwoPDA6eWJ5Kmx5S29IVDssa1NRVSZTXz5AR3NKQDVSO29+ZWNPTkgjLD0jJTc6SGtuOkhSVm95MEc/YDZZNWB6dUZmclt4cTp2QkBiZllebHprWG9mOnc0OX5vLzJIbX1I'@; put 'UHRCMDohdUJBMSFHKUUjemMwZiVscC8xbGosXjNKdXpxdjt3XTdHYytHYnRefGFsNltvOGB3P3xEPk8xM10qR2lUTUJWckRzK2Z4SzRkJDFUL20sYzJLMVFUa09ZZDFkVnd3bzkheUtLalhldzZpKjM8b1dMZzV2T344ZHxHdnQkNTR6NmNjWGtaJVdVVG0lV0dsIX5CVUMyNCpUQmM7M0Y6V0No'@; put 'NDRvOEUxQl52L01Gcj5wW0dHRHVXK05HSVdGJXhnKVtCbE5CQlpDInc9I3tVNSw6KTBeJlVHZUYkR3hOZWxDcEQrYTZ1eVchKUYxODJlJVh8ITN4XURFS3p1eF9GZyNOYWM+PyY+ZiZSZDl5OEIqKDBdQVA9Py42VF0rUS5HKkZafjp8XUh3OV1mMWFUJCZmZ2xtbX0kZSM3MksmPT0uUVQ9JWdX'@; put 'VWZofWtHJlNvQlt+N1t+bEZpSUd9OCxCbWN1TiRLLkpVYysmSnR+b18yaFdnWU1KS0Jfa0Z4bTRfR2JOWyU2azdwcl4ofGZPaUl3cyQqZl5lZmhjJiFjeDFJQ0x0MlVLYnRKZk8pfnsmKi5IJmo3NT1ubSwxL0BAUH55T1AyTjpROmpFSlMoNWdHMHwzSG5HV0A2VF53XjN1R2h6NUMsSShodFA/'@; put 'JkFuTEwxRi9jbi9LQmZePUVZTFdabSZifDl3VklxUWJKbGB+PEN7Wm1YL21dO0YhMUBxbU5nZW1lT0FyKWNmfDo7T0JjclkxN2MpeVo9PFljSl9dYyRHVH5fMnEjNTgkaU4sI0NzekQ0UDdkaj1VSmRhVTU+fVJpZChhPVIjRiR8VnAyfCVEJFpvRFg7eTREQnQ1R0g5UkgvTTJxLyN1ISNyYWF8'@; put 'ZS5UZl1PSXwsQGBuXjlLeHY2bnB0JCk0WltWLEhdKlR2eDIldkgqUDh2P2UmJWpmOmUmOC8qNThhNCU2K1AsaC8rbUQxI2Z3XT1AW0RyMi4uKykmZ3hCOkpycjBCSzFSSyFMUilxUjcqbGZPIU8yVHZHT0hNUm82Oj1zNXxTcG44TEghWm8yQCQsakZMempRaVlaSCJsfW16eVcqQk4lWG0/XnQx'@; put 'Mn1FZSx2KFZofGBDPExfPFVZaiEpLl07O115c2hRbENOY0FYMXYpYkNoIU0hcVM3YyZ9WWZFZjZQKWx8YDBGcz8pZDlLeWJ4MzViVGJgMiV3Jn1tInkoX09ubkRPOEtNT0MjUClTTWRdeEdWL0Bxanw9KSkwdDs9cFl7SGhJUWw1TmUkRm1PMTBpKE8iI29SO14vfiwzdEE2LDJha1Z7fUBtTGFJ'@; put 'ekE5UDNeS3ZbP2dpfDMuTjdMTnROeGNlTiU1U1JzWm1PWVk9K0prRFJNdVd8RHpKfllXVjpCIkRtNXFJNiQ+SCtkM1shMkFvbWB0Tm5QaFAieFtIeTB8QH10K1ZyaHVCKVVyIWB3bXlfR3QkUVhscVE8aWVteWEzNXl4KyRtIVk1elAuZDhBYX1SekNrRmtlWVVmS1k3ImshJWwqWjswP1ooUTZb'@; put 'MFFvMXpJYk1RfCopWGlURS9SM0tHQVsvVEBFaVF5KUIwRHV5L0FyTVVBfFtle0pXZkliWmpBalpFaD5jaDImbFs9anV0WFVNYjorbjY7bjE9fi9XYDAmJC5qeT08aWM5dS5vMH5tU0NyPG5DdCp9NUEhRFg4eXp7WyJUPi5ae1FUPHVEO1BPNmA+L3w0SFFpOCs4RFNHWzlZXzk9ciEzKXZre3Jk'@; put 'bSx9SnV8KzcsRHtzZHJ2aXNgfnlzOmB2UGl3UE1tRSpWT349QFRmRHdOMypaLjNCPW1VU2QzInswM2NpZnwuOnc1VXk+fnhjYm80aV51VjciVnc5Q0Y0QnFXTGcxJVFQaT97fEk8QWoxQyMzITQ7NmAicFZYTCUpJD4xTnFTdlJ0RWpsVlY4N3N8T2smZHc6cXIxaV8pTU5EK0hvZGZIZyk8Xjk7'@; put 'MnhOPkF5VGFSUHs3PGYqcy9PNnRdUy4pKE4+V2FVbSVbTlsvIixoNU4qdW4oV3gzcmY1MCReJCliXS5gbnw5Qk4pNH4xX0VlLFhzb0dWPWxhNnB6ZitTKWBib0J4a192WU9tZEVfKy9Hcll6TkpHLyVpfHhzM1ByLyhLQFZdMnhoRFFAMkBnK1VyfEVeS2kvaDpOWm5YRHBde3B1NFkvZUNzITss'@; put 'ZW5UYVtKQy5HTk9PbGtzYDgjazwuTktsNSIpeG4hZHFWUSZmc2N1T0chRSlBb3ZbP2FaNSI5ME1XaTpbJWRgKihLWnA6TkdXMnNuY2J5OHwxNkdWTEdHYGl7MitNRlI0OTdsaXlbb3EoQitDfWdeVlcwPitOYCMxWU1xZ25VZVNDa2Q5bSlEOH1kSSZ6JkptJU1Ha3QvdzJEbigzMF42eUk5R3Rn'@; put 'O2ArOnV7KE4qcztST0o3IkM+VkwpSlE2ZldJLnVWPmQlenwvbV1BVGdnQzdqRHpqaXIjWT5Gbj9+Vl9JV1g0dE1OP2pxZnZCY25qZFRmSDJuVlh2P0ZZUV1pXUpBRjJdXV4rUCw3KyNuOGF1LEhHMVZ0enc3UXVDYmkoKDg5OH1YWERsYkQkZDdAU0MhSTUueys2T3d0eFg/VDpuJTpJWD4/dzJu'@; put 'fFIiekxdIVFXVVUhXUlJXnRKcDJeY1ZgQTkvOnhUS1lRU0tmKSlCJiw7NHVPcm1OQkxQXWZCYnJpb3RxWVs6b18zMlpWSDMuSXZ5ZE8kYTdQayJ0Q3o+Uzp3VXsvaU1CaXg/WSxsOT59fFQsRV89WXc/dlp2QDRjOTF1Y0d4L3sxPTZOYkNQaTlJQFVaUF5NXlZWMF1oQzV0R2tRU3BvY0ouZHVO'@; put 'WVVOcmBHIWYoRWp8MUUpTDNnVkh2MCpvVXYzYn4la3YyQipVTGxjWmQrQnJMRXlfIiptIkJuNUIvcD0vUzc/SXd1VjRrOXQ7ZDJINVA+bmpIL19tQlJvI0t7bV1OUkpgbmspQCMubnVUQTo9TE5YdjNaR3JWSE04KyJzeEIqRU9QbDN4c08zZWVZJlYhPE1wXlhvZVlwJit2IldVOD8oV1hkJmdY'@; put 'cyVkY3J4dT56I3haWz07eWRKMVI+S0U7ZlhubWJRQmspU1FwSFl1ZyJrZGhZfSpNfUM9UiRKfEMxbyk5OE5ZTS9xZDwmNE9kPXdnOmRII3UrKk5PPz92cTJ3NkRiITcyPCVDJCV1MEVYcTgybWdpaX5YVShBMVM9TE80c3FUWWxdaC41Nzg5d04qKHQoNlM6ZyRTNGVnR0peRUA6M0BjYSMhUHcp'@; put 'Z2JYZ1R4MFtkbzNhPDpWcGBTOXBOKEdhIlRLYkwiOjJpRXtLUUVofWJEXyteKVlhOGRtKlFLQGgybSZ1ZCRiUTlzRi5sN11yXmtzUC9OdltOR05FRHVAXzhJY10zT3w/X0xFYSxeQjorWSlfSj1dNWhbPldKOFV8ckw3eCFGOXdnKFtyP19CeU5pV1ZWdEoic1d0SmBBXVg/SjUvQ1ZIQipfUz57'@; put 'R34yeEx+KlI1THlDVHRidW09IUVUXyJkPXhbdERVLEdJeiVhLHJHPDFde1pyRn15bVp+VU1TMEZjcEMiOGM8dTFfJGh7O0JxeSZ+Ky9YcWs1VU4idkZdNjdAU3MzU1VrYTk4bFN1InwpK3N0elsyKX5IK14lOXspJT9mPyo/M1VQQ1IvYXV6JnRySkM4YT1TdnsuNjRBWT1FNXtwUChQVmk5R3Y5'@; put 'SXs7fE9KcnVaaFhgWk1iTklxPWJSUlE0UDFZMjJ9fWk3bmZ9NlBrWCNYdS5JLzxeZGtobHUjMyUoQTRTQF9yImZaa1BYcExpfXEmKnRWYU1Cb3dzW0A6Ki87eCwoKVkkWnEpYVJnUiVWQyh9fDRLZX41W2dFITxlRGc5OFhRVGNTQGgiXVlWKzBEWmhFLkYjZUcrdlgpNis2W2MxMGAyUVUwK1pl'@; put 'bjR6ZSlndDZhX3lUcTJROHc1e2wsO3tRUHl0KSJ5eEl1SmA3bncrdGUuQlhENCZQUyJCTCo+ZyQqKFBaSjA/OENFV2pxQD57SmdvPVV6O0A/SylpSjdadjw3S2paQkhIfWFtVWFQTE1EWiYzV0ddYDFRKX1ocWc4T0cmaygjYjtMdUBzeG5EcWRxQncvbytmbEwubSMhJjUlUVZzbW5ud0FKaylD'@; put 'dUYpcHZnVyNYQCYzPVB2cUVXPHxmT2FeaSFuLixRdSEiZFJkQGY8VTl1SjU4fkFwVT90e3VhQls8MD1dLDB5OUx7IVtaME9wM2dbakVLMkR2SUxfV29ieCpAcXlMR2NyaD4mIXxnK3BTKStvSmJIV3IjNWdvUCk0VVRjZWs4TnY5N29VdGQ2fSluSEZhYTtLUCg7LDtkVyEmaFdsIWprejpfPmZN'@; put 'dHxUOSQrVG9LaEt0alVZZ2guI1MxRkFsVD15JGRkU3hfRlIvdmovfCN3c0k3c2wkOSlPMCVAYmxPYkhQPH56LHwoZjZKazt2Vk91XjBSMmM7Knxpfmksem0xPSoyXVtYe29abllVWihLPHlfLHdKIXtFYzsvWlpGV1pudn5KPT4vM0t3PiNgLDNYJU81YVJwTCp0YF00RCxrVS5lXWZaV29eaGBx'@; put 'eHIlaGw6UDsvMTFSWCg8KywlMj1GaUx+ZD83PjtdemM5djVQZnhCRjcuVVhjdkdUbkMjJDU7Ry5AY2lyNHFsUm5RdiRhWGtGMjlEXWUwXWV7bHRFclkhajJQMF5iTFA3dzZ2OSMlLntjdFtveWZuZjVTKV5TOExQNi4pQiIoKDs1R31jbzJsJGVueGZZIyJjOmxxXm44YmpPYEJpKiFsY3koVlhU'@; put 'QWN6dHdRQCZbdzhbJitfUDhJdyteNUpiJTVxUiJvYkRCbTx2Y0NIXSFlI2lVc0NLdUdVIjxoPjJJZXw7dHEwMWFZIyYwaGd5a1YuK2VPc1ZEdSE9MSh8VywhV1dIQ0JeNihaNHpQKDlETS85Yy9AbnJhLGorOyhiKFdnU3VMc3FBZjxPfHJlYVE0PThieFteKCx5IWA2XTV7KTlMWHd1WEg+ZX1b'@; put 'fDJrdkwxKDM7aik3WD5dPX5wI0RVJUZfcVorb1dDPVh+XVdEd0trY2NFWyokcTxFV0VzVEJTSGtfYm5AW0w9RUpQNz0yYkVgPCMhWkIjUnJAUEJJTT11JTNqSUZRayhHLmtpLntfaD9uU1VjWUVjWS52Y2ZsNUc4UjohInUrajp+JEoiKHpCTWZURUJ5SkokMmtTamN5aUgjUl1xbnFhYH16SHFT'@; put 'LjlgdjsiSmNKbFhFTHkvJFF3Q2xsVVN3SXYxKUlXU056Um9FdGlxTjcwQ0oiYExnIT1CbUJjMDtjR1NZXW8vVCFzcj16en5LKCx9cUpEZ2cmbXQqdlY8WjA/XmNzR3s/QkVIQzNIRilqYnt+NmIhfGZefHs4S2NlW29LTUB4OSI7cEdTQ2dhaVViNVlwND0/VjV0QlBgIVZ5aEpPQnxIeFhGPWB9'@; put 'amEiPSs2e1toS0t6ZD1JI2RlMG52enArXkFudFY2PlZ9REFwWDsuaGVQaSNaJUo9fV53RXd2cDpNTlMlfnVKKD85bjZzbE5DKEZ4S3hIITlIT1FzRnNpdXY1UlRXVWlFMjxILzY8bClXIkljU0BFM28iOjdoXi9DWiI1cClQOmxAL09fbihPS2hKckI3YDVUdnJ4OVtgbDZnY3pEZ1gkPkY/Z3lI'@; put 'MXRpbVZ3N0U/JmlDPS4qeHVwZCFDeVg+JjIvOSpDaDkyYypkaSFHXz9fODN5YyomeiZvako5PyhCVDJFa35PZU4jPlluIXNvJltzQ3ZXNF4/PlhBI2ZMR0VVSnVwOSlBWFM1ZV5aZF9MIXx4N24vVmwpMU0kezpvM09SLHIvNHI1WVFsKDtqdGgxWV9vTjBKS0BaOmA7aHVaVXJmYGhYaC5eV09s'@; put 'MEhJe2E/VjtALEFmLkFWUVdHTlJwW0NeNC5UUDNTbmtsSkBfakZrZ3h2dmhsKHpVRmpjZ0cmWlU7fj1JV3lgPDVGJjpjQCkyZ1UzIkFIUCs1WFYrW3ppd3UlM0RxZzxwTHB6TDlTc3JDbWB5KC8lZE9wW1heQFg+NHZNW29IWTxTUHp5fUIsel1EZlExUnRMZT5LLGppbGE0WDwyUzAyX1B9bEsu'@; put 'L0x+JS9ySC8rKzE9blIpRVU0X0lOWGpfeDRMWWs7aGtYPSo+fisyLj5vOnEheC44Yns3NHhbPklTTCN5bT1FZSMrbDp4c35NZSUqNk59Ikk1YHhLZzFNR3ZKK25wa15PM15DL1ZYaWBwYkRINnw5RVM1byVvME48XXc/Ql44d25gWUg4cTBjOGB2ZW1dXS8hM3ViZ0pGKFZdfV1YTVkweXIidntI'@; put 'dHVNfEtgant7TFQzYGk3QHlGM2dbVC9bci86OUd6Q19wKU1ebC9obWdDPExZa3N5bTVyOUU7TXZ0UiJBRjB2YyxFM3h+b3hPVSNkQjhPTlZ5eU55ZHAjYGRbbXVvOVZ+I2spbEMjR1h+RzhaOS9CdkVGVXA4eF9OWV5RZl0/eilYIjY5WlQjeSVNTjgvNitEZzxkUVhsQDhLYntFNzpAQHg8ZTM8'@; put 'WW4kZClsa0wuTz8lXThJfHZNL2shNnx2S3JEeGc8emkoMkMhd1soYnYlSF5KZVhrW04iIk8/SWJrNEdQZD0vPTRdU1AwcSFhYipsSEZrVS5bIThNbjsqUndJL2ZRRXYrQjU9dn1Lfnpaa0E8SipmMU9zXVFtODIyO013NzcmcTJ+TyNUeGNhNEN3cXBrfHA5Lltyb1M3YmlXWVB5d3VDeV47fjgy'@; put 'eD9UPzIsdSlHN2doUC4rdnU0RiUqeTV0eD4rJDRJY3s3Q0JnXTFgQFB8UjIxeXQuZz4sfnsqdnE/bjxuezgsOT97MHc/PUptK052K00vMjVKQnVlNFRoYExEY2NiemMvNCtnczIiUjtgbzRIfD5ZMEAsI2ZjSWNiOXRfekhKN3pbJk5kIS96Nmx0N2dSfDV0fHVmK09pejMxO01Mb1t9WGpwZGlF'@; put 'cSY5T0ZkVHVjWmEzWjF8STJGKHRnXjUxRH47Z01PNjJ1JU13VnNfQ1liWV51QkNwQWYjIV9udmYwfTZQOHcqcCtGVjErMCxieGdEaiNFbFIwe2U8RSEicmheeG0sZ05IRE5QP2REOHtgIWxwWEpGMj45NDFqLmMvMyVvbVtoJS89VyF2OGVIT2F8fEM7fH1LNyVbPmlBSmpHN3IrWTJQM0dYdzcp'@; put 'UXx2Z2JXT1VMTTo+V2d1VHpbOjkmaWExUFNVVjBGVSFgL153T2x2PmNYO0hWWEQpdWVrJSZSP1Nge256XS9KMlJVbzlbIk53Q0wzfTFaOE9jbHxlV3c0Kns4Mjs+Rm1WcnRXbkhkfXc0OnFac2cwYkBgT2tVe0g+eUF4ViNnU2FGaVRHOUk9T20/NlZrNj19Ny90NFY8OXUvYFJtPHhbTFIhd2lp'@; put 'Xk0waERfRkJHKEU2WVM/K34oZiZUJUd4ZUUxVHg5ZEtyPTA8bXZkM2JuUE8iOStpOS8wciglMStmdDIrPF1VayxkITxja2d7Nlo3Q1hwI2J1M3prY2JfYyohPzlOOyEiTjF9fGVFP3AkRUg6RGgwZUk9PXJGIWx2MG15UU5JWjNeQ2N1PUNtWXZiKWNmXl9FLEV4TDUpIT0xNHx1Tz9hOlAkW0hq'@; put 'cGdBMWJFTFpybF5sOjVELk5LfXM7Kk81YF8wTVR3RnV2QSVCfC5idUs5bTpTdUtrNWt9SkI2WWVHPnY+cXVDXmwuKFdlR113SiNaPGw8czpMYGIpRGUrcHYvJDFyWikxU3M9I1ZDfXV5VyxpZHZNTCl1cUpSS3N7Mix+enpTUkxwQUMpNEk2QExFL1Z1aSExKl9YRnk9TD4kaSl9TCFadEo5UlYq'@; put 'fldxW01keTtiMjRSREIiUnp4PDVhYHlkOGFyTGozdURPOENSVC5LU0NnbTxKRTxLMHFzNGImdkxgbkdsUD5LP1AvJXEpXWBWKDJqZmFOO2ddR1Yhc1pUak9jU2FkYlcmJTdpVmd7UllZWyVebyFmQEB0c1JDelFSLzZVZndQPXFmfHE4VGI4YV48ZGVkSngsOFZzTnc0YjxmfmxeWzxse2ZmMT46'@; put 'QFdZUF47Zj8hUkd0aTJVKl4ucD9bLFZHITpPJWQlTnA6Lnl8JUVOcF1XMHxIa3NvZ31yYlE8YVRTNGxjbztkcW98NzQwUnNhajNXeWxuZkF1amdEMCM5NEBpP1Jnb3wuMiheN2U4PU5bU1BAISt8PFU9N2Flb0A8SSZbbXZSbWhWeGA/YndgL1lub1lhOHk3cnBIMzJaVX5sdV0/Jm0wKGdVfWtp'@; put 'aVZ2JD8sYkVpJjl5NEokNSpCWSlPbW9senBbKVteaXp+ZD0hb2M2LkliVWF4JmNXIX5rbkxgPUxEJXVmbGI8UTNsPypnbis6ZllaM2M+NDplaF5QXiUwWUxybTlxMV15dXJCOG0oXkVVUFRWYTJJQl5+OiIjNms9MGtmPjE0SnZeJHVrZUtNQ3t2XTszeHNtS1dzayZ3RT9jKyw5eUQ7U04wWWl+'@; put 'bCp6MHI4MHY6WkFsJWczYig1SHxBKCohVWtaKkJBYGNPUSp4JG5ubyp8NEg7TSglYTteOU06VH1NP3tofnpDL0lFO1s0PXoyIVZYVTBiUFJ9Wz1KTDZMOVBVXXt3ME5yUW9YZyFpL2w/aEBUPj1lRzFec2lEKCJEP2JkcHFAfGxNQEs2cGApUzI7PVR0c2hhSEBpKXhdaUMoajNrVFRwJWpQfE5N'@; put 'MGtWLncoKilgJE0sRSYoUnNfekBUYGZzVnR6P2FlXXl9OHVxWUMjK3dbSll3YzdmSUU1OExQI3VzTSt1dDY3Qy8hPk5CfT9scjB8ZDw+c3c5Xlo+cGAoL0N5WzJ3fV1fJTAzXltmKHZaSTg+JE5BUSJXJWo/YXVIQWhkZSNpcyohWWlxYV11Y2dpa2trU3taVDtiWyFOU1ZHVH18YGk7cHEwTCNe'@; put 'ZVluOzEsRCojdm5FMD1bOSR6L0NxaU1fKSlRKShhQ1hoaFgmdzYxTG5nO1Bed2lyL05IT3BnVEdXVGlFODdqLypsY1VZbm16OSY9fUtIQiZ7RCNqKm4pb2JDYCJWPXJhJXdpQywlJnUuVkJkOi89R11gKXIjZmgjTSVGMm0mQEVMbGtYQiQrcUk1VyZAb3Q6OTxPakJQXUlsblgsJTJESDBWWjRJ'@; put 'fG5JI2RWLEY+a3VGQk4jZlZIdl1KXVIuVlgwSCM+PCYxRSRdT2Q9N0o9ZmJ1MlA9UUhlM2RlMWpVZm03PVVtWUxSaXJnejs1IXdCJiZAUkRMJHBHSFtgdFQ1QUFRZ1tmIW5RI2Q9R0JlbC5sKXxAO2NjRVhldXNudHFGe0VpOlltPzgxMFhmN1N+cEh6ciJZb0g5UiMmdkRLcThbIXtrfFlna2Qk'@; put 'RmpLUnk6a102NDdxej0yIk5Mc3FTTnooOTU+XnY+SXxkUiNgckwkZFtfUEthOTQuaF87JStpNStUSEczTDx2ZTtdbE53ck1tPWNiSGRrKW5HVk9XMnZKeGIjcU98OmNxaURXe24oXi82ei5BYEhEUkRsb2k0KXpJJm00YlJHNCV5ZWBZS200S0ROVGVROkNiazY/Rnp6cXtCbzM9LmY3ckQ0ZlZO'@; put 'JCtHIUpEdlRveSx+PldjVDZbJHokdD8uWDsrMm85VzR0WnZwJmFuM1s/cSs3Umh6T0s0JUpeJVlieE4pM0MsKC9qWFVeXXVxSTJoQyUzcU5wTEF2WUVVWD89QDkkW3lzWGVNImNZUk9BNTw8cDopUkZXNyksS1hOMit5SSVYSG9leD49VCEmY3A2YVNwOlZVP0xUUiNyLColenhkJC46Skt6fHJt'@; put 'YTlIJTgkQFA2WnlecFF0bEVlPj0uUGNXYW1vfWpFLF5DcW59fmtLQXQ7fXNCMShUUVo0Lz92ZXEuMWpmQls7M0REKnwmXVs4MEshTFspZXZsQUNrM2BeIWthQ1lsPj45bzl1ZD1BaSJjXzMhYWtieDxGUzt5IXcoM1RSYnpTPmYwJEdYYzs+MThORXRkWWcoI1RNdWxgWjB7eXVXbShsbHshL1ki'@; put 'UjNeMm11ZyMsbG57K1ZaJkpTT3NAcG1yWWFgOVJLV0hPU2l8YVBMfk9aOTtFVFNZN0MsfHpeMy93VUdnKFZDTygrKT0jdEwrLGdYMXFaSlF1fXJtYC8mTEMqND8qSW1oIW5hZmtSIl12QDV4YH1bdiVmMUFJU1EoL0pBWHkiOVNXUEljeVhKUHtCe2EpMHhiRVRWNHosKVgpSm5ZTFQ7VW4hTEAj'@; put 'TX4xdU0/X2tVSG4mPUZYSj5lUSspWH1QZlBCfDY4I3FCZnFBbSN7aTQsVl94ejAmaUthPXpSUnhLQWYuSEFnSnEpZVtiOSZTbnlkNT03dSF8PEtUSjVsUHFUYSNeN0R5bTUxO2U8b1d6TjZ8WnZGYTJ6UT1ZaUU8Y3FvK2lIUmklMzpXN0B6eCpmKzRzX15SPXBScilFNThISClkKXRXV3xvYFU6'@; put 'cUx0QEB4YWd8anRNNUZqNFRuKTUhMDZ6OFg9QUg9PlR0PyIoeWshPCFsPWRmdkZLNygidDM9dkIsPXc3RSlGOm5TRnV7OE5Qe013MDldeD1bPGcjYkciNDtgUDpgMGhZQHAxQUkiRFgsIXVGX21kQEpTMTlSZWZmeCxtfSZrVURrZUUhPDd2KFYqaj04TSlPREtLTjAkYl1EbXR7eXhNTTVpelQi'@; put 'XWw5VyksOTlCcjxtSF1ML2dBS1U3dDZbXjR4OzNsej4xPmVqfEYkMFQpd3g2alNCdjg6MloyeUFtYThWWHYuViYhVnNFPlR8STBYSGY4MjdrLkZ1P1U9XiNBKkN0MFpBQWJ4e2o3NERCMm0pNz1SSUYiQndAaXlCR0doN0JHQ3xZbngxU3dRLEtHMVk0fDxoZnFYVEhncmJYe0tKLG92Z1p8aHln'@; put 'XUQ8JCtPeWdNdVNwL0VFOGtOY3JvRVtwYjByO3wxTlpWXk1rMW4zOzwmIVBsOyV+X05aelRWLGZbMWBGITo9V2c+Nig2KHo5bGdhc1tbeU48SE8peis0bWRxXnBLfnxlRn5XVyt+Zn56JG1EPVY0VC9TNlpuYTBkLHJ4NUl1YVlNeVZAfkpfSUMobmIsTUx7Rkl1RHdlXzRnOndFUlpoKjI2dzYm'@; put 'Si8+S2x6O2QkZnE6U3QpSnEzOyg0JGxwZ1EqTD1jbSNdeFN+OXombHkuWERIMVRITUIjSEcoKkoocGElZEc2ZW9yMzA7eE9SSDZWYiFDVGl4aUFJZCQ8KlYxSXl4VllVJE0iKTBVZyV4KlVmeWRQbkYjRU9geV8uKlA2KCt8QjRQPUchYEU9PkVeQD5wamN5cWBecHk9LFN4WHkhVFtHT2pxRTwp'@; put 'SE12PHdwUEZAe3FwTFNocD16b0pdWmo0QyshYFZLP2BXSm0xJXV0bXAkX0B9P1kxNn44OSsyR0ZgVipsWiVUST00dU5oXWZ8VFs+OD5GIlp8dXdCIW9EN2d7R2spakFfWj9ga11POmwkeVRyNjpSOHpdTWEkeUNsLERLeE1he3c9aDx+WlgvLnBVMklBQ1M2UTpiLFdWXiE/dkkpKl5SVT5iYzt3'@; put 'dHZdcGVbKFsuPkx+UU9YUkAjSzl3Kl1veCtQKlkrUXk+XzZgOWxfRGd6I0dsbSlOaWs0XTRXUDN8UGYuJX5rXXArcjVPO213My5kY3NvR0FRZHdrQiIhZkVmX3tvZHFGUjklcSUpY3A2Z1Y6KCI2MFZsV3YlfnwjW21bXnF7d0xWdU93WUhMVUBkV3ssZzRITlNXN0ZJeTZLeUtTRiRlU2dXT3Qz'@; put 'cXwhRU41XmBeUVpxe04iRWZkOVMubl5mOithSGJ7YXw9SnBdLG8lOTNpbkhnSUVmaCpDJnM0byxkZyZ8cWI9T3xQcXVtQk5OXVtCYm5Ec1tYSEhtPlVXOUEyQ112KkU8ekk1XzBmIWo6NUlWKiVxOUBkbU9dLjl3WlU6ZzVnalNsNWA+M1BmemNmRSVFKColQzAoNSlrY3xLL1JSKiVPWzpvVWtm'@; put 'Qkt7Sy59I2kqPVcmWGMjLF1vUSNGSDYvSkVnP0l3M2pHck4sVFEjTjckI0JQTixYWiN+cENDc2RFX0hYImUyfmBHdyglXyxpTnp3R29+WkpmRkpLKlJfKUZBNU5PbGh2ejE3a1YuWjZ4X0NTQ01SW3J7NX42cjZDYk9+IkoyXXROY0pAZTtdUUVPKEhXe2w0NSlTcSFEcF5TSmNNPE4rfk9xMld8'@; put 'd2dfaGk8OnJfZ0oqJTAyeTtwU0NzaDB9dDRwejMrR2hFZTlmN28/fGxjPm5EX2JePk5gZVlxXVNleF1yLmNbS0ozOihZNisxP1FjbWIzPVYsIU14L35aYjN6QnQ8TyZtWzlQNCFbZkghSk0md1FtTjowemEudSVjRkkoUDhjQE89ej9tLFRoPVBgcygwTWBiYGw0fSxTdTFPdlpVNzFadWZBV0d+'@; put 'UmA0RHxEUjNocUxsNHdgOE9MQilxNiNZVDsxRC4pRXc2OyRsXT5+TjFdRGh8eDp2Z3VsJmIyQ1dUNk1xX2BoTT11PT9nPHZLQjtQTXhMdCw7UUtEREB0XVc4QjA7ZjVEdT1kVSNyZXtwKz5NZmFDMzI6MWRuPyJSZW5tQD1VRkR7b0BLWXhIRlhhaE50fFtUZnRrfEJ0Z3xdck9kJVg3XkokOWht'@; put 'Li4vU1ltWV1XQ00oWmE1QSgkVkxlcHNkUF8qSW5qKUQkbk1VSTdJPXkjSlFlKFV4S29iRmx1QEZ4KGl9VjIhZEMmaXg3Nyh4ISY1MkcuQjBYMT1uYGs1TDFgOktQU2olNmEkNUEkRWN+ZFVALGJrLn5fZCp5dilkPFt6X1lRIS8rU0VWbTAxOjgqUDN9NyM5MEVASl8oW21mUmgyMlJhc203KWlR'@; put 'XXkraF1hYU9FMEliXT52LD1HIUJ0UEZwfGVYISV6QE1ZWihuYE1aWDRuXk1yKT9VVyh+S0dHb1twNn0rXmt1YiNveFZhVzRffFR6T0NLZXZvIlJGITd+QCQzRTNbNDlZOFZ8WXlqLD4/UXgoYFhUVFdGOzV3MyZRfmxfTjRxJWF8bGBhI3dtNFVQdko2Z3xuKWI0KXM+bywvbEVvcz5Yc3Eld21t'@; put 'ZCQpQUpXI0RkRTR3aWBhOXQ1Pmk4dTYhKSk+TEJSW3U8UzUvWmszJSIyRkF5N3p7SVc/OzMxMWgwZjx9MDYoM25wQW5ILGdNbl8xUFhPQzVFZTthYTQ6TEtpPUA3TnxoNGM+bSlpX3JEWmchUGs4WyJLXmFnazxvLzhFM01oamA2W3JvR0JfPSFoQ0UhaFFUaWFGR0xDJGIwUm06PWVzPy5oZmFq'@; put 'Tjtxcm9Veik0OldKQXdNYksvaEpSeEg8X09qand5Q2UpbDlMSCFxMj16eEMydCskZX1JLE9mNHg8fThFOSVvbTMkVnV4aGlvQnUqSig6JXI1TjtrTDQ+U1IjPSw2ZXxBa08qKmgiVzMmc3MqdkxVOVouZVF3JmJnflZmI0Y8ZDpON1EiNngzVUc0fU13PkF6LyFLQzFLL0Q8cypKNV49cnY+MyFb'@; put 'U2FyPjtkbWROZnE4RkF3Xz1ucC81IzlHY25YdTxdUWRXRFE5PG40dWJSW3h4dmRqbVU9OUhmW0JRKGE6c2RQMCpjb2VJdFpaPlM1Jjd5WlVHdiJlcl8icjJfNHlqbXZ9cEcyWWlpfUNkY285ZlloK0xXWUd5N2hLKl9Nfl1NKFNkZmR6bmFlJXBnYTxAdV9dYl5hNl59MldOc0ZOT35tLFRiNCUi'@; put 'JihqdSQkezUxImVzSG59MTpTK2hCS1YlTiRnaTExfnYrPFQsa2N5NiFTISNYND1wWzpyRGlXbUBhODF4Z11zflRaX0xoSjI0OyIpT3o2IW5ZU0ZkbD15dzhQKVpYUFEpZ2tpd35nJWgrc1daXWlFWEoqaGQobmp0bno3d198XSk6a0BfZiFTZlF3fEYhOHdBPTc+O15HejlgUHVQTW1ReTZXTzIl'@; put 'R10mIihFREVgMHFWVC41YyNiJmlhfEdYVlE6Iz0oT353Ymc9TzxBcyx+JTo3LEVQW19PVFsoeVNdfSx5YCRXeFRZWTUkfDwzO1I4LyVwQThHKnVZLzxdMWZ4TiVWRzBoPj5NNEUvZW8rPCgjM3xGI2BrQmt4I21ELEh1eGxIR3VHKklRRnciWD1RYzttNn44Qj9hWlNlTCMmSFRYbV8wRilQXlZT'@; put 'Ky5KPFlYZyt+YUBvbW1yJTYiNWtgUHtaTi4sTnFkJjwxdzsvbitbM2dGfT0yLE1Ua3BlVU9NcmlHdy5nK3ovNip4O0BOWExNMnhDcjIvc1RzMUAzQ00rKy8udXs/aldQJldHbyFZUn0vY197az4hMFd0eXlPO2c3MUhAJHtqckZoMjhNTWBOdWQxZUBbOD8iI25zajFRXiNaMnU1Ukh0Jl1WX0A4'@; put 'dHJIbDtuVTl2TjhZJTA/TTpuIV5JSGFNa29RMmxeJlR+Wj1oYlMuZlR+NUtnJEN0TXpgMlRpMk01WUUsYTImcVAkdkk8KHA7aVZTbmhtNyNBVWxOQm86Ml1gMjteSixMZiF6dF1YeD4xPkN8RXZMPFA7a2VHKU5UYyZAKDo+UGY5c3BHTWFYQF9Nemh6RklzTDlRLiM+SyNYNCRLSjtofGZmIW9y'@; put 'XlJOJSkoP01yb3kwN2owQy5wVlJIaHVySHBYaWZGYlN0aDBpMDh6enpyUFd0ZWxfbTx5Tj1BWU5gSjdPXiI+YSNAbnFsLFkwfSZLXVBuOiM4fHR8Z2dYPVRlI3R0cDdMVFhPMGU5c1BQVno+TE9Zal9+MlVHI2pzOXkiI3ByNiZPPG9KTmN3aWVIeiQ0JkwqNDVYKms9ZURGdU1VNTkxYD9ieE1k'@; put 'eTJbVl4xVmw0UWpaeE1WOCg0RVZDMVJ2OH1MTC9nRStlc3dtVkIzeyIzaD1TTl5tIS9lZnxYSkJsYGErRmEqNylJZUlwVGRUQ2kzKTJ2Q2MycVtEZk9Wc2I/S0cxZEImR3dMKExEen1GTW1ySi5VZHEzXS5LdV9RWHNJJF42WjBrOF4iWjFab1BHRFNAO2wpVio8YVc6S1VNLFhlaUxBNjMvQHto'@; put 'bWdGTWVNaDN9USoqb2UsKSJGXzkxOk1RVDJoclQ3SiI6UmhxJVd5UF00UEwkLl8+Tl5VJFF5RyRwbVo9bW0hLn46TmJJbmxIWkFrS315LFFGTCtKKFNoXjRUXWZFZTh0bFNeSD9lPk8vWUBefEJ8ekw4fElPeCZuUntUNlUrMDtuN11KbkhRdmpQKHJSJDdOMis5dmxmfTg+bWBEaX4wU0JwZkVQ'@; put 'U0cyTnZjV3QrQkFlRVE1JndYNV1eWUxOTDppRV5laXxiaFAvPEJKLlZlMEBYRmpWPnN1TGVzO2Q9JUpTXU1+Ui47O3ZaZEE4WkVbXjAwMSRdS081QyQ+cUJtUWY3KGx+R3lHe2cmTVF3bDA/YGIvPF1UeHAvQmxCOC5zPFRgdXxUPUk2e11+Kkt+K2NlPjwjJFlGc0FVQjNCM09MQjxYVl9rRCVV'@; put 'YEk7KiQ0VykxKWJAJHw8JT5OfiRFeklOUyJOfWdPQnoyMjxhcWVKPCprI0dxK2Q1Yyp+aD0xYSx9dSZpK2cpbEQ0W2gmaHVvbzJnVklsSUJZdkR8ND8jUlBzR05xfjZ3b1MrPm5pX3ZVS0dLUSpRQyVUPyV+WHQrTD42TVMvT2c0NHRXKmlOb2FPRENOXXcwc1JpWShRclUxbyYqXVAibmpYWTch'@; put 'Nk03M3kkNm98SD00WGlRJUBga0YxPEVMZGJPO2pwdDYlaiZnL30pJThrYlpLMi59NDI+eSRFJW1rajZzU2lfWzo0XTh1LixiIkRPYyp3bFoiYGFGPWpFSkk4eHY5OEssPXJLWCYxR3ksaHpnV3dHfU5AYl1ldW19aHVCekxRMk93c2pORG9LaUBFNy9yXnwlTj8me0dvIkh7X2dwYTJzYlI1N35Y'@; put 'fXVNckQ/KlZya2BfSVp3XUxuVEplSm9IdkVNbFhGYng8fFdLL0YhQ2BjKCFjYSRlOHlEUjQscl9HJld5dWxxVk90aDxfXyMwaSlWMHl3Kys9SFQqdmhgUl1EU1BtPCw0TlhlX3hSOF12PXFXIy5wVG9ETHFRZCxfez5wYXhaI1RZKn4xI1RRbixJRmVWdl4pP21+fjp4bSIpaTN6UFRVbTNzL0gl'@; put 'ckFZMy4zOjUvOz1ufFBAQzN+MjcrNDMyNEt+I1UmPXo/OnQxclNhOlBgY2U4ODxbaF04JjpdTFlmTEIseVIhYlk7RSFPZWlSY3whJSRmX2lJRT0kKEIudnRNTlg6aWBHeip2Q0kvPyYzcmAoQER0NlU7Ojk5TTFQRm5GRmd3RmozWE9AfVhlRHBuc3I9cjRxNT5SfkAzI0JJRWlmbXYoWSwiXmZM'@; put 'ITAiandmZyhjSVR3ej81e0siciV7SlFZWU1hMGl7UTFrKWhgaSp5ZmlNfSFINEZGfnwkWVRJNmEmU0pyZGMlVzleQG4lTl1DelAkYlI6XnIqOzp4PzFoQVJpfl5oLjBAaCx8IWp3Kl1UYl5BUj05LkdYVTlnOXo4MHFTeEJBIWhLQUYxLjhZZUBjSV18Uyg1NH4yIylKJSJRXzI1X2R3KFVKVk17'@; put 'YjdLdUxkLjY1ZC5yL01RSG9gXmJjQnUiUiRALnhMK2VHbEpkSDFdajBjUlheTF1CX2UiaUtWOywjenksY1ghaXxPYk87WiJKOCMiU35AO3NDXSVCXW18UFVxST92RGc/R2RrUyN4YTRuSnhdb2BTWnpwSTUxfDNQYHxUMjdNRUNOW10ham5eL2h+TU8mM1kpUWJwPnh5MW1gV2ckPVtXPFIoMF1q'@; put 'ZFYpNGI9U2BVal59Vn5faEx2YTt3QEhLZU17KzFfO1pAIXsvSl5jNUoiRlkxT1dOcjIhel0vbHRaMnooNm41NXZCamwsTHV0UWdNKnEjeXZLNF9RPzY0V2ZTdWZPJXR4WyNYJD5vXm5CKT5neS56RCQsSEJgMFM1JXhTMEhkRlk/I11MVy4uenU5dG9hfDglOHc+OSpvbD9SLkFzVypbeFRUPnRD'@; put 'RTBjYEdMaTZ8d2QzY01xVlthTGNjPyRZYEt0KV8kcmN5dF1gei8wYT47YDZCJVEwY2g2YmVHQmNkXTE6cnQqTjhnX1ZKSHVee0VMelAjTTg2WC9xKkZCQ0AhaDo/YXMlIzBpaWhfWk4qOWwhPD9+WUMkSll7OVMwSnZjbEtIZHNPP3dCNTsvY3lTVzRRJGpEJXJ2fFVGdEQ2Rzxzbi5KJUI4fH0r'@; put 'V2MvbXdRRHlUWHM2ZChtS20lKCZTPT93YXhBQXRLOFZKRCVQY1c4KmU4ZEliTlt6UHRvdkNfVkhgQU96WGpNZTVuNllPaUwxVVtoT1NLclJGTDAqK1thcWkyKntNOUsqMXlVOXdObDMjJV91dUx+fmJpPUZ1TSJUPjA8MVgvSy48V2dVKSMjPyMsUU12eTteTHIzRHtBZXx+fUN6TyhMZj9mWldS'@; put 'KDhlW2RYXnpxTXN5KE0hc0tKMlZmWlBIcyNPP1lHaTBERCs8N3VJaSpCZVd+P0hkP3hiLkM6M1lVem0xY0BuLi9gJX5RKDo1RHQrZklOL15aTyNTcWZBe3B0eVVKVjQqMnByJExPMEUzOHlaNFUoVG9QNzp4MGwvc1NCOHxnZzk6Py8wVFIlU3h5blp1VSlSJGV0ITkwfjRUV09JQVcrOVFAbFcm'@; put 'YzFQaSNFJTA0dSQvL2ZHRCZjcVRMOGNzfjRAUz1QXVU+Smw6QzFMY1JlT3A1YjJQbXxQPT1FXT9rdyZecns7aTJbRVskVm46dnxWSk98e0RPd3MybUVgR1sqdCY5YWI/UFJ7dSQkal00Yjh1aiZWYVBBMTxHRyVJTnlLd0pDOzN2YV8yJm91byUhRG5lOEVJMGYseEJyaUBmcn4/N3IiSiNUNypA'@; put 'bVhBMGR8K3A9QmZIX3ZDJmNGTGZgJnB0NkcuT3ZKKH1DZG5IOilhKHpMbn5uaVJJZG8zbEd9REBJO2dzMDA6QF5wb1ZXZjgxNTVmSTFAdTFzNCgscDs7dV85SzQqeXc3e3pPczUqdVhIdlszYWJzNkUyViF0TGs7TEx7aXlaNSxEKm8hNl5HR2p8N25zVzxmLjhObEB7dUcwXlgkTWtAIVBFPk5P'@; put 'NzZsbT5xYWFXQWtIcEY1YiplSDhbfTExbC5meCQmWCp3IkJxQjwjcjhtekwuRmF0bmMkWD43RHt3cVtuSyUlN1FqN09CaXFvW01bXXVFMkE6QDEzayNtL1RAa1VRO2FiUUk5PUJUJnsxNlgxdH14IyUmV20qdEU2OEUlfGxsOFI5NG9xbllRfnozZk08REdkbzxIe1hRYDpCU0h+cjkwUXE4RWc1'@; put 'X1NxXihFI2w9RlQ3PzMqaHRmeGhJMmczeW9NY3s7RnxHKW9kKlBfcihOJjY+JTtsOj93YjFlXSZaektAS1lEdm5rW25uJGx2YSJhMWEySFo8QkxYV2RyWlVfUnl7OSM6R2Z6Uyh1eEgrSHsyZ0JFVSxyLkdLU0c7WHJLIldnM0J+VE55Xjs+L3FCUTY6KkhSOyVxemZkKnt3JmxWXXx7Pk9YS2xO'@; put 'ajtHWiNOZk44Qi4kbUdQUCk8JER3fUlFa0sqI2Qwb15INS8pM3pUOC9gKjRoekNTJFMoOU9oLHorSUJSUERISyVeV2IofVFreFArXyM2bHM5dk8hNy5uNSFPITpQN248TEhmU09eblVWKGRqUEQjSDo6aG9kY29OPFgzNisoNFdlYCsoW0Z6NEhMIz16Q3gzRjFOVU0md0B+STF3YX07dWQrL2wp'@; put 'Oi4sSVBrTEYxVHgxdmpFI3sme0Nye2gsQjdxUWRhMyx2fjEweU43Kip4UVtGSHR4ez1RfV5nM1JsakImbXEucnB1P0lOajVlL3k4TFFXUl14RV5kLDxELGlsTmQ9eS5jRlM9LnlLPG4jPjt2InsmQDVEbTdHTTdjfEJlP0BAVFgySjsmJG5VX3cyK3ksaz5oUTJUMFQ8fUdgaFUjS1BrfiU5LHs9'@; put 'QHQ9NlRlLzVAZSlfa00yIkp3d3xyeGJeVkp1NH5WYkUkLzAoOSpzTCwuTmRJZSIrQG0yR2kiOj1MKSsiR1ssRmlmTykzLGNYL20uPUdmTVh0TStmRTVMR0JdVWNCellrNDdIeFA8RiZ9Z2Y+fnBiTHRQdXJqP0JIcmBiZ2p5LjF4U2A5XXsiZ3VZRXpPPk5CJiVJYT9CKFdEQDB1VmVPKHldLlQ3'@; put 'T3orakVZfSZvNlRpPFpwVm43LmM1UEtEWWZJT151fFFzNnNDbHU6VUZAcUo5cEdGIU82JD1KTl91KG1UT351QjY2aCghWVIrVkwoISpoezNPeXomY144VChIc3Z0VndFZiw/RGVeXmxnLE11eTghTzl8V1piJHJIQyZLN3FHPUdQTXFaYD1GMTphM2BGSDZ3ITUuWXNzQVI7ckU+cGBwXUhod3dV'@; put 'Qy5uLD9pXnN7UC58WzU5PUJwajIwLFVqNkYpWFtsRXVRO0JeSi50ZS9MMzJsV3xOSHVbZmd3VHR8blgjfl5UTHxdJjA2UE8jSkF7b04+RDhmfUNAaDhDWUVlWHx5LyopXjhYOS8xIyNsL1JeWSFbMjk8aD1Xe0YlTm1JO3glYzl4d2VyaTpGVTpkWVJWUD9aRDhjVjJlMyE1OjxkNFE5R2xfYkVG'@; put 'KDw8eTI9ZXs0UD5xQUtdUmspez1PNltXWXR4dmBofi9+fEBjdjRwNz5PYFk7L3lKQGhBIzd8UW9YX2dfO29tQlkqIVJBXTwqNzk8I30vZF9ZUClqWjRDdVAldipKdiF9cDR4VzRDWEBwOk96LFN3Y1BsRztVX2xtVHJ6aHtISUgjOFBAI0d1e2E4QXBJPmosJnRXOmV0cyg5L3JlLkZ+R2dEUWFs'@; put 'KSRSYnRBPSxPR30wSXE4IyFCczY0N09dRFFlQTV9ZH4hV2tXRnVpdDtUYyU+JlIkPWdVLm5nKD9CcVMmNlh5UGlZNm9xMmsrMHA2M0NIbm1JJF1kfnc1Jl1lZjoobyZVbztYVFM6b3koTXdtS2hnWFI/aUlweDNmUn41L31EcT5nQW5fT0dtMlh+d3MrfE9sSWM9WU56Wk8uPGg9M3dfNmJSVUU9'@; put 'aU5tOW14MG4lS1k0PCE2cFh8bU8jVCh1cEQ1bSRoTkUua2Q1VmNVOyZ1NndqeHJOUXBje3FvWSYrcWlmM1tEZTkwXyNrO29lRjoiXWVIOH1FPW19eHUsI1Y9Z34sT2wudDMhdjs+NjtbdS9pTl5PIkZrOXRBUmtdP1ROIkZwYnMlWDM/cXRsaDhTUCgsanxUdD5VU3dIW016ZD9ScSNfKUJ3IXdG'@; put 'bUYuWlliU1RjL1pSXncuMlJDR2VTLDcwcCIrfUhERjNTa0RnUFFHW3dJc1N7QkhSe0YldDdgTj5DcGpKZnNTc0hgWXRbSG4uNF91QDY2RWclPXEhVCVmOjJNeCJXIXdoWTFQVi9MW1p0W34+TlgyfSk+b0N5VHVuJXlwZzQhYiRPSk9DOFowNiFbK11lNUZhOCtFazB3Z1ddUlRvdEMoQTlLVDJl'@; put 'cEVVQjl1QGpgTikzR0RFQl9+T1l7YHs6TV40QXU4azRdUEg7OXV3YG4/ekl5NUkoW24lcnhufDF7b2dINkEmdVZQT3Y/Ry5XeSErW2lCK2NeZENSPklWPTlwIlVbdVtNOSwhRWs8PkB3VyQ4UWxdRlhebWYicCV3Qj8oPWYkTjYhWVdRPG1mNVEqe1spNzNXR3JkZV55TGFfWXQ0a311PyxOISIx'@; put 'JHJHIl9KNE5aV0xtWG5qQ1pjQ0dlISo6JmBRYj4sRnZCPDJ+KU9vVWsxYUB9WjlvVV5jKElPWDosWzVPVmFCZDU5ZkQ5UVRQfTxMJX5MViROYG1BWEdgPGBKdzU2OS4qLkgyQSJWK3dCfV5mSF9pSHp0SHQ4JT1TUy4yMm9adToqKk4jfG9NRGVVLDEmLnVpYTw0KzdTIz4lNjhzY1VZIUIjTSV7'@; put 'a3A0UUo8XWRZOU9EVHNJTmNfYCFlWmolWz9TQTFnbW1NeExTeyVBVGk8K3BBZVZmeUtyOUs1XiVUZUFRTG5GVE0vQ2FtLE0uciNmSmNXSnhuWTYkcktzM3Z4VisvL1VFV3xXWlltP05WZGBeeWRVSWhwYCZpYzJfR2lIREcrMSRNaFh7Iix2M0FGJHJGaGJoO0RuND0+Oll4P0FpIXA6eiIpInZg'@; put 'SE5DS21OcFQmJGdQXiNmQjckaCxKeCs6N2JLS1YwJEBbOkpQezM0K05QRFRhdS4oTk1MTSZhaGF2MUluTD1oJWAzZWlpTipVYWw2bSs0cD1+OUtYb3tZcVcufmZ+LlFIanpHZV4rdXAxbkJVKV5fQHRoYS5JMkw1IitmO1Y/Plo/WCh9bC92KzBuMy42UVZ7NDBzMC5MMztKPCtXUjIoOkgqcEdJ'@; put 'cyN0dzR8NVR3fjcsUSI4ZyJRaC5MPFBSIUpMcDBVe2UoOztIc2ZFJlNOVzRNWCN5Vm5SU3Z3aDBzSDJgOGptVkJlPHBFLGVRUXd4azw4UVY1fm1XeFcvKTIvd2gyeEVYW0RRNzI4PClUdktNRSQuZmp0VmxtfG1oWjxWJnV0MGkqeFE+b2xUeGskK3RNb3hoe3VHK19yTzBYdGA6az5LbEYuIXxP'@; put 'WyVYfFFkLkJrPXdOdX41N2c7UVBZSiFCeCpfLz5FN3FHLGtPXztPV05wMnovRV4oVWxwQyxnenBTPnIzb3RefF1KVEBZR1RMelYwezFpdChDY2c0Nm5veFdGa3AmVWN7dXxfVTx6Uz52WXU8d0ZTSHJBdVRAczdZeTJVelAjR0MzR1F8JStkYDNTWzBWRVk7XiYwT2FUI0t+PktKdjUjRT5YYD9D'@; put 'OVckR25bP0RGViNNdjp7fkFPKlJJUylSRVBJaFM7MzoibHYkaiklNmlzPGxhYU9zKVY+LCtAUnBNS3MrX1hASyNhQ0lTUXpHXjk9LyVEL2p2VFNhY3Q+RzpOdGpBJihLTFJsV05BNiF7ejF3WDhERz4qdlhHdVAvKkUzUj5wKjxtOHVwTHl6eDZYNkByR1IlN3V3aTMqLzdycS50Q0g3VVBoSEEo'@; put 'YnJoMT1eVH5aeF83XyxIVXAiZihON30/bmF4Q201Ui5AMmhwTlEhfE4mQ3JPXklpcGkhd1JFd3I/Lmslb3Vwelp5VW9vKzF1SGBfIisxfiE6SXBJMUVHKEN4VFI5flpBNj9bKXUje2kjIiZXOCl6OktXbS81LmpoRl9aQFAxRTcuPT5VMyFQRTpVemBSQ3Z1OHM0OGw3KVRZbl0hNipnKzw4OCZ3'@; put 'dDM8RE4lYk1qZykhJVJSW0hqRThhOiN7Oz5jVzFvSyY4fFhOOmAkRDJmZC4uKUo7XmFBMFN2RkJjbVJGPzlCcE4kVltmQXlkMDxOfHIzKFkrO1ZyKzVeYHprajRRJTAjL2JKIjxoQ1ZSenFkXWNjZFk1KGArJGhwPSo2UXVuZX1dRlkvUSxmUlY+UFdYRFs5Ol5tSDEpSk5VKWUqTHxpfF95XiVY'@; put 'MVJ8eFpxJXE5bXcjYFQrczBoWSZrQEtycTVhVGouNlA1dkluSW5MdWFEOi96JG9mMmlnRilUJDVfJjBmfEJfKCVIeDN0LztuWF8sQW0kdEI9ISJXeCRiUzF5Rz9sK1ZeX0s7RH1jNHE8aWVdPn58MEovfEVhUW1iTFUsO3c0N1s5aHpYfjpwRFJ5VVRhSGRbTlg/QkBZPHJCdGoyflM+L3FeeUd4'@; put 'Mz9tcWtZUWFTb243KjMkeSxULiU1fmUjO342O0dvVyZpaXNdKll0bVZVQiFjfE91Wip6P3FuLyptT1U8LiEkaD1pQT5gKzxyI309SVpDWX45RnJ1SmxwbnpAMiM2fSpVUEpeMys8RkxuKEBLRFB2eCspPCQwN0ltQUxnOjpsfDNiVi4rfkA4JXNCXTVBcG0scV1UQGIqWy9bU3FSTE8xTnwpaEl5'@; put 'YGxEI3VzYUcuXV9WKyJgZ2E+KGxUOllFNyJoKnZ2Vng2b3NbaU11VmMkUGlJViV+RGZrR1h5T0U4IzNDfUlmcXpYR2l1UD5aWipSaXovST9dJnJIYHZIQ0VwMnVKIXVOcCYpOGwrTVtUJCZidTt7MVQrZDVacXRZM0thfWZbektvUTRHWjlLUUsyakZDQ25qMm9pQ1VOWDZwei4wdFJ1bWsjR0tJ'@; put 'aVFLLn1DYDglUEJpJG9pKy8ydVMvRFZ3TFZJI2FwdyNHSE8rc1pZKV9Ce2hseVo+P2J0MVAyVXQ+Y3xZYy9lLj5BIXNvbGo0UTRSJlVmPl5CQl0waURhL2ZRTl5idz57LlBISTJoQDdzNiR2d3pbS110dn05WFReKjpRbDZebX5UTyZqempyOSp9aHcvPWtKa01RRFtvUmdDckVeRndNbTpMKiQz'@; put 'eDxGRG8qQjJuZSwzbWtuNURLMCldXVhTR2tJbT49WEF6Yj1KT2lGfmVKNSpEancsTFhyJi4uUmJFaHlvaCl6bX1MS0hlKlJ1fmJ9OiVIfD5CS00pNH02P3dpSjsvVVFBRFA7Py9lRzMiSCFvUUVWRClvej0/TUZYYGhrR0BLd343OS9rMENVIShLTm9vTl8zTXB2fSQ+djZGTG06Q2MmbHF3fmM7'@; put 'MFRWbl4yOzB0QllIZU5dLCt9Lzs8KXg0L3gqUi9DNSpQS2FJdFIuaF5zTW01KHlrdFFDRUdGS04uXnxgan4zVW4rKD5vajFXK3txdU0kaSRjM2VnTEcvdCg8XzcmUjFGdEpSTCM5Zj5BT09aMzFhTV5qfDFrJWY1WTghQ3J9OUgqbFdiWSVZejRPZWxaekZseC4yUjk1Qj50UVM9VjU6cnlOP1o1'@; put 'b0dsLnd5ZCZDTD99bHx0YmZ8eEsxOFJrWVJOekdyZGcrbkwwLiw1dCNDcnZ1TmZtV0M/Q3tTSyIseDlecyxBfTVjMkI3LyZfdWVXPjJgRV9dfVBBWS4uRTZuTnxUYWQ8aXtbWF9qLGslOnViTzg3T0xqeXhQflBwMWZYJXg5YEdxMExPQ1MlUHJWIXd3X3RuRV56dj1KN0wmZytZfUxHQkVpPGZ9'@; put 'cFU5UCJEM3YzdG8rTXdlMSxgaj1QaXEwQCpoOFByZ0dFam06QHJbKno3Yi9ZIz1yay9qaU1KPiEucEsiPk9wWDEuMEN5IU1dQENZVCEhcG8pQ1M8ZVM8S053cC8mMSZgQE05TSxmIT55RlU8KlpVNi9sJWFZS1R+QUMuQVdgOU1dfGclVnwyaiQpVHdXcF48XylvU3QxdzZvMEE2azNDSywqZzhn'@; put 'NTdrOn1zS31LQm13aEVZJD9eMT49cmZeO2tkanB5X2g4VEU4Q10oJld+YFo1eiY2XlU6IzYvNWE3LiQ1aix4X1o+cCx5NFBNKV4vX2tkflZYUV5EOCFyZkBgLCYidWJNWmZjJFp7VUFeQFFZKVRaQUhtLkx1OXQ8Rl13PEhLND9WN2BZNCV5K3coYV0pVT5jREhIXlEpKn0lJjJwcntMRCZ+N2M/'@; put 'N0dnZFR7UlBQKzcuUmFnW3dLTXdWYkV+YlNAbGBPV21XfDgyU2lmWEJ5TnA7bXNCdmlQNXEsJV1eTjRhe09DPVs6cTRANG5eN2BkO2BPJmVLan5dPTh6b2tjVXJqVnZnSnZtRGNbNltWRmQpeEJLTUB8MEoySUwhbU8oanUrOVdubWBEWjp9KVd8b0hYXj54OXIvSExESz1+fEtSN1daJShnfTFx'@; put 'YD19QFI/MDFvMX0wR24lZTAsdm5RTG95JSkuJGMiW2NJfkJEQjV4PCE9P2lRQW1hQT5zc3EpL0NAKitSMDZdVlsvUTJJeGEvWWgwaV4kaWQjNSM9UmZZfjt9JktRNHRNL3FJSDh8U3xeZlJaLjRXXyk5eWF+UmYzWGdpYmM2XzM/eSoyU201PT5dJGdJZipbZGZZYyUxMUhuM3RXQUhCbi48VVIx'@; put 'JHM3eEFGUWNbJEJDcmZZJWo7I0tIVl9nYy42JUQ4dn1ndixfXmhvRCszLG50KVspc1lwbXRaPj1AYjR7YjN7aFg5IjI+LE84ZnYiY01vUCwjJHMsJHJValQwfTIpJE5APkxLTzhUfWFCaTBzMm0uZHs8KWtQdDs+XnlKNDRva3ZIcjdkSlAvZmEqSnhIZlBIMn1xM3YxZzomMTZILHIqWE9eUEJm'@; put 'UDFvVlJzNWpse2Y3KE1OdDQ1S1VEMGZBNV9CZn03czNUOW9ufj5vL0V2fkIwV2EhVjM0d0xacDljcV1wcClTOUNRdz5dOS9bekQlMUdQM2V0OCZ8Tnc/TE01aDVRbmY9eX51e1lKdGxYfmV2V3gubDk2aCw5PSRzfWdhbVh4LnlEUXdYc3B0aGw2WXpvaGBjTlk5VzorOXU6LjgwZHU+JSpJSUlo'@; put 'aj9iPC8haG1MO1FyTTJOeT90NSlCeyRkOUJSdVRxbSwsT21Zbj80cTVKe0QrImRObWE2cDwxczV2Vm8xSDdYP0RJWHx1MVMmXXRQTTt5dXFAbl4xJVldajRjfTdpJT5oX1FYYWVPUytUVjljfUBqN2MkX15OVDszfTdCMT5jNV9jUCNeNTI+YFhzZV5JfiN1U2doP1hAVCRtX1NYI3ZpOD9nPigm'@; put 'QWpAYUk9KDBoMDcwa24jeENENCVTP3lsVUFEaWNbQ2p2MEMlYnNnVmA3XXlQaltIdWM0JTYsX0ZzX0ZBITh0aFUxKHNiOiFUUmNKVCg5ZSp+WmQsPFducDAyQkklY2gyYjleM0dfK2tjU198blRJKEdTPTM9QEtrdkB2KlJOJCxXN0N2THhZYyVLfWxgVGwzWWRnIUNLbGhCak8wTmkrY1FWeDlm'@; put 'c05LPFU8OzowdDlrZkJRPX5oITNYPU19flc1fnp9XnAmK0JgXmp1VThlKU8wdj8kLmc+OVY2Lm1UJEhuKmBZJmQyV3JubksvLmppMko2WmAvRWlge316d1A0fj0vT3RSXj9ofnN2THNTV09ldHMuZGhTXyo8RjJTJlFCYnp0Mm1GZiVkO0ozP3paem9Jc01RKlBfN1dgPiJ2els1aUR8eDsoLChd'@; put 'cHVZPzQ3S2dRMzZEJCRPYSthZz5mZnAwQjoveitMJHwoJT01N3tTfTVlPVNeTm5JS29rd31LKylhMCZ8W0Mzek98b3BOeFpoeXN8RVF0Rzl4QSJEIiN1JCosYjJNNFdSZDg5Mlk6QU42SD8wXmJobGxOams8MT87fHwsVE5NYER5cD8/c3c6WysmU2ZwI3p2ckN7NyldeElvOjF3dyw6ezJqZTtU'@; put 'LD1OSn5yTX5bMXIlbEIhUElqQEc9PnZgSn1CZXdDXj4hPlBoNzRtdm80UF9kL1ZGeSJ8X3FuZWAhIkNbXnFPYU91IilQcD9gMWM8L0tReWR3WUl+PU9GbypeQ31nPztKX29sUHZlZjBrKWgpM21weVFeXSxKKjwycHNjbSpMOGF2bGs0fnpacDg9bHRDLyFGTEIsc1RBQ0QocTRqSDN1JiJeamhW'@; put 'UUsqVzpzOEY6K2w+Z2kwe3lqKXdlXzd0I1F0VUhuZTc6RmoqOns7LzR2YnZ2clJKVnVCQX5nVT9GL2t6PEdvd1lAPjN3KGRIWDxMYWY8OmQyLnc+PCYjPT8pJndfKHdhWjokKjVMJGQ5bFZ1KlliSFFwczoyL3FdUkF6QUNoNmAoNVJTe0lORE9VQVVbeTtle1o2TSZYdUg2TmB8fUd6SSRsM0I3'@; put 'PkUjUEtJMyM5c0kjSG1vdTdiYXFWUjNKWF1BR3xGdCgxPlVSb0NCWWl3QmJ2Y3EpTnh5dzV9eGxKflNFM1kvMzlraXEwe256cT9ZbXxTTWkqRj5aXmRiJU1HWnQvJH55OFh8PzJXb1dBfi9dQywrVF8jfFlFLihdYn0od2dUSFhxeDFCbkNOTGJsVHFWeTxbfC96eyhAYDZKVFkyVHAvfHMkSkRe'@; put 'W2tfMVduJm0hZUIkbjhIKWo3KHRGMjBuV0MwJG1hbmYpV1p8Ni5RUVpqblUjPztIK1FJIWU6OHt4a2NZUT1QWS5GJjBmV3Z0SHtuTTZIMSZeOl09Vj54V0tYbysjfE18OyF2ZiZQMktKPGEyPVYjWmxpdV86L2EoNFByd146LEc+eDo3ZksmTGVRKS9jX3dLJWN4VnppUEpBY11XJSRZZD1lTXpK'@; put 'MS5gZzhYeiowK1JnIkg6ZjMxZ1NwUC9zVyYkMHs1bmkhM19zfUtYNVhQSjUkJXJROUQrd0dEd3J2WExmaGUzenk3ZVJUflgsV08xMyxiIUJtOWxOaCsuITM6L1o3PmBjflRUQ0R1YFBrXl1MQkJLTmZmIzdESjRiOVVtNj1OZHhYOCtnREQvaVJ+N2g+fkBoOzUsdkJHP10/OT02KS54Km9xSm0i'@; put 'NTxkV1IiOn1NbGJ6cWhFPWp2bFhSL0hWdHtJIVB2JXVlUWImYGtxSTcqan5XXiRARSJqQEdiI1hgOXFgX1lkbj42ZlRCdSQqSmp6amBdZ19Zb0U/aWpuJGFBVyR5K01ePll3VnNUdyFXe1chKFlDNk1iLlpbc0p1MDNLS2kvMWJlRXhLWjJrV0ZYJkkyTD1UdVduMHQ9SldzQi4+VjIoZG08YE5e'@; put 'PyMqby9xaHwvWywpOHh6cntfN2l4dTlIPzRRdmwvYWx8SnFRflM7bSVFdUlsbUF2IWU9QzUhe1soW3cwZzxVZDMweWcxIzVVOHw/JjQpJGFLdD8vP0k4KCVOTCUiW2RedlJYQHEhVDBqYXVQJlZFUzp7NHdjL3EpdHdEdEBjaTlkMExuO3U9SVp2Pk1mTGZFXnVVb3o7XzlmS3VgKGZWIkd7ZGpm'@; put 'dnRAYDE5UV1oaGF5LHhSPDxuQCV7YC9ZSDxsPVgqczo/UXlYeEE2TWlsbCo0VG5YWDRIO0dEPUs0UjFwKl50TTk+Oik5NjoqV3lOSEB2WDhxeXRvMCNQU0tBPHJlIm9zVV42RE4+SmRZb1FySFEjSjdsRGgoNm9STVtmL3wqNCwxQmlsRS85RmRDRHhPW0ExLE5YSnY2Ui53KiN1YHQmSiZgQn1K'@; put 'LnpqQ0swPGZ9NU1ecGUvO05jVFFhSkhDbTw1RjJ0cip9YFAsaTlAMyZ3cVpUSVBpezBoPV8sIW5YeXIxYTN9YHNDdjc3PV4xKGN9KSxeIzRuRFZsUkw1Ky8jM2o2MWJPPCVjSXcqYDBITzcucXQ8VzlDYjZzKFg6YH5se0t8bn0pK2F8fHkoKk42bEVXU0hDW1g0ODt1TllKZ3tQWzQ+eUgyI2Nj'@; put 'K3pDPGhlMG9FTFtSX1tCdih2fiROQGNEd0AoQUk/RlRvYzMkMkNEQWIxMVIwMW1OQzVXRmAiU2R1Z3IhNy52PVpOTF5NQXRMMz1AfkU6VX5eO0w8eHZPVGhRUlFhez48WHhZYEEzMGp1WUI7YmdBOEVWYSFWVkN6VGl2Ql9RfGJqOVl9cU0yOnsicDs+QEwwSENGPGpwY3sqTjdiUkhOaEx3UUhs'@; put 'Sy5RdmNdImZbaUteX21GdmsoWEswZTYlbjU0fWs2SkQ2LiJaVHU7SUV+ZDg0Mml6QDAoeFdJUFJQX3NkfHV0O21WSDE9LFlYRmxoIVpZZDVLVXshWk1mdngzZGdEYG00KWp9TzNoM1NFbTh+aDM+RVZEOyV5XVh5VylQb3tDRDA3JDF0eD93U0YqaDElYFsxQDp9VHUwfE0jb11Kc0J8cWZPXytT'@; put 'L2B7VU13KyhNYmtLY3UyPSNzQkhDI30pNVpJVyYid0Bley9IJEI0YW9VQF88O3oheVN1ZTBRWjckZHM3MDssZkxCYUE2b0kpPlg6eSs/VFI1LEdPJD9KZk1VUnZoS1B1NHh1Lm93VU8xQnxdXyhoYD8xOSQ6Q3VHT19gQzVMQXVQQX5hYXVXMVVlPCMvVz5VOlR8UD9SN0l8ZV9GKWs9WSFrZmt8'@; put 'ITEqYD0yUEA8ait6TTY8aTNdWmVlXSVpYmsxZUc4bjhAV34rTD1bLkFeQXJUZEIoYkhIMSRaNWhNR35UbE89emN1VlpBUl9QOS4mMzs+M304MnF8UWFjOyVkZFpNKn1XJiNgW0tsZVUjRk9PNSowRjN4Sjx4Yk43d3NxcTRzTXYvKEtMNFJwd0lYcEN+cVMrWW94OjkpKEJMTV87d2g6THo8eXZh'@; put 'QFQjOEUkNnp+KnM3bjp9SXFTQjlxMn0yVltGZCkxKE5kWDgrd0ZRemYqVm5rL314IyJ+OnswWWBuZWc4T0xTbzxeQThpSjZLTWVqNlMieil4aFtnUSI3PiFOZGhoZkkiMClSTVtAeEpYLCg+Om0zL3pmanV8czx6UGQ4QX1NWDsldF9xOyxoTjdicis1KFlXfEJ9Smw0PSRhWWN0JUNCQGgleFVz'@; put 'PmRMZj9WeDBEOzd5b1hUSGdvYlsxPXEyWyxle3lWMWxYQ2UjYCI8SU9ZcSF5ekJ3VkNlSTBNNFNpQmZfPkd5fFtiQnpbRWk6ZH5zfExRXy5vYjsjSztHL2x6X2R4fnpNTjwpcCg2eSlabW9eRT51Nlo7SmhBOjhWQXY/XnJdbGoyZVRsX0JbKDhMNUV+TjRFWlB4SUsvJWNvbXUoOy57fGtKemd3'@; put 'Ty5TYUwkR011e1hvRChbcWpYLCYxPTxidjs8cj1DWm5Wa1Yre2BjaE0yakFTSStnV05XR1NWdzdzfixJdFowJkt5Q3xIWEVRMUVHR09pfC8lfSpoZGQ5V1NJXzMuQjoxcl0wcUs2UTokO2ZKb0YlITJkOURKKTxFZzV7OjgjeGFqODwyNHMufE0lcndkWyhsdUVyeltsU0VpZTR1fj15fDt8NF9T'@; put 'TSlee3NQMj9ua3Q+fj4ocSksRXsvajdSeXdpaU9WaWhtWzA6eTlKJT5bOkVeRiRQYyxeJDhkcipvUTxMXWdgVitPOSheaWBAOlJ4N0smLFk7PjBbRzRxUS9eZjhWbiN8b1J8WzBoUTk2VVR9KGBzMCtvVDwiQ31veU90Qyo7Nl1IR2wiKz8jaWUoT1hBaCtgUEdfOz5Cdk0sJnMrWzR5Wy5eVCR1'@; put 'YU5bfSJBKyRWcHFGYk8ma0tGfStedT09KEFLKFooaWkwUmNUTUllfEVzXlJAPzVhPUZ0eClMdH1jUFRKPygze0J5dyI+anMkOFBmPmtFb292S1ZxaUxlT24lYiJsJjRSaXx9W0NPfnpjbXpsck5JWFZlZiJqWFAoWyhMMlpGc257aFVYQ2N4TTRyPUJ9KltFISk0SHx2cjFVN05BQ0B6NF1Edlc+'@; put 'YF5ORWZHdSRJdTNRLiojLDAoIXRtW0cieFdnSS4kTE9zZCo0LyVqV19ePyoiYTBNIjc6I3hDbmI0dzkhQ0lBVzdocl9CLkBpX1h5R1slPj8yPXhwSmVSL0JYYkVUWi45NF9tInp9bFJmNSZbPV1lSW1xZ3EuYHhfREFLVTdMVVVvYSRXKEZ3PT0/ZUM+c0JIW1grfX1bMWk5RzhWUnU4NEkkKEJV'@; put 'JXtbfXU7SGAvWU5RR1VUSjl6dlVUaHRMT2g2KD9XS29EVlZaMl01Li46S0g9ZFVTfmM2aEk4QD5gaHRuej1kWjdXTVdZK0xmI1RaZS9Tcmgucm1wWG1AfSU3U0Aqfk48RT1vYD1KYDhTYFNGM1A4ZTMheGlOWCt2PVtIZFsyW2c/cmBHJEk5S3dDT1JLW0tFXkhzeWJTPjd5aUZBQHJsMkN5RWt9'@; put 'VzNGYysrcDckKCUsKDFoezlAI0pIT3FNdDFKbTNRX1RgKjhMMSlBaGR1blp2JXN9ZX19JXheKz5HbC5oVzBTc1E8RUxXJU58bH07eGQ/WklPNWtNNlc9Mm5ffnNfYmtaUyFhXXBiYjY7bkRBeyp2O0RFUFREJFBCdH43SjdoXzJmdU52S3EvZjBSQT1PNzwyRVk6NXhXcE4ifjx1PmZaeHkmWjVP'@; put 'U0FdNno3fkIqR1o9UD5oO3VqOjxKJXhGVHZFJWQiTyxycVNxdHldTXQ/ZlNqYl1PeGYyPDFhNHwmQ15HKjM0WjVWan02YmdIaXdWVGNKeHMjPWQ9OmhuYW58bForLHIqRUlBcj1Kcj4lKnAoJDpoXjBhQ2Zkcis0RmEoTkBwZSRKLz0jcktIYzlYdjdQSz0/L0dEK0RTS3o4YCtKV2Y1ZSkicGVi'@; put 'KSx6ZT15Pkw3KiZJQHZsX09+VHVmTW9KV3lQXy86bmhZZG5rIUhMOyMobWF5KUhxWEwxcDUkRFR0JUpKQEttVi9WTCtWX0ZGJnZ1VCtVfjBAYzF4VjBAZTA9aCZ4dFUiPCZdUT1LUjBKXVJQRDwvRUZQdXovbCRxOFNPM3k1Y2V+KSpfSyJVYSlHfDNWKShrUkJjYzFiZHJjSmNAcVhXMmdPflY5'@; put 'Xnt9aUojaGM9Pkg8KmxlO2cwY0Z3UV5wZ0NqK09uOkxAPXY+WzFsYkx+QEswKE1uZXZUTGYkX2VMTiFkWiw6dyxAfTRwbXptS0FDS0g/ZW8rMm4zOjgwNH4/RFhOKDBwLkNjQGB9KUBFSihxNyZ+WkNZUGdffF1POldGdUt2IVY5Wnk2a2pEcnNJNzgmNlkyQkQpNEtwYyhFZjU4MTVNPm12QzJ1'@; put 'IXRMWF9yTHVNVV9MRWw2L2EuRUBwSSZYTWYkSTx6KDEpLDZXS1NKKlhxU3BpWS8zMHkkKWZmRDcxSmdFelMqYFdmek00Uzc3Yyx2UXtyYUs/QlBKYEA1KGdVKUlIQkA+KDU/PU1xTVVAZHIsSnw/UFBmTjQ2Q11vY0QiLHtoSX49YD84QTJKYjMqQ1lNbnBAfUomVXE3Pj50TUR+KUh2WmM3KiVU'@; put 'cjJdLnBXOmBiWDxeSlYwRH1FUERgLGAxNmRwQ2MqJnlXPENlSnlESzg9JSlOTSFzTyxOPipNUGUyYjImMnNxSWR2dDlUQiI6X1NHXnAzOn5aJjpFcnFrYDxqX1pKfDZuU1AsKEVJcWdlSkQjaDcmTkR5fnZJamtwUmxLQiMpMVQvS3hddG4sRDprelt3amlrMnI3NTk/ZDRgMzVefWgicT0pdld8'@; put 'e3FfaSlJRjNDLG15TChSYjtteldWdixQTCxLfXdMRyRHIjp4fSJ4Ly9lb2kzMT1hJX5HLE0qekMiWHw6SGcxXiskL25ZT2hXUzo4ei9XbURxU0JgJFM0JTJQU2c9UUApeT5zJVsqeTkmRm85XUdvLEV8UXpiT342IjY0ImJzPXQ7QTlRfTBUSyNjNWJGUzhkXTpdOTVZalRbPW5LL1YpUGU/Q1Ir'@; put 'T3hpU2lBJDJAWS8wK0kkcm4iOyZBTEdSSHpkeEczMHB6SzV5Wl9OdmFTfjw6OixdKS94TzRHRUZrTkpLSShONXxrWElEaGUmRT5TTEd4PDRgaURIaC9vdjVNS3lFdig4NjBOOWkhQiI+Ty5nLmc8JmhdYkRVa2hFLCZBbCFARXc4WHtmcGYlLFlnRnxqMjxfRS8vZy5RbCxQdCp1R3ZbX145TGYs'@; put 'ZGQkcjcqVHhDUmQ/RnE+e14qbXZrWFBAa2gmKzIwYTAvQ141bUEwRF4mVDJeMVAsNEIufkcyfXs2OTl+SVFuX1M8PXh6IUoyQTw5MSt6cDd3SitlRzdEWTB+RVMyYDM4JF9pekNNeS43N3gqRk5oTHxzYDhMUzg1LmFPPy81ZGI/Kys9K3UwW2JZL0I2UXxhRjZrNy9zX01QQl89TX4pcW9bRiFJ'@; put 'dCNLL3VXdHteI1EufXtGdlordFZtZDpxNC5rJWFMLkUwU3M4N0dAVSt1cksoWUxhfXRgPUMqKTZockY7NzpHOFtkSTYkcTdjdWlNJm9SOnhuU2N8L2ssdDtmc0lVLE5YbU52PjlQMGciUDYpTEJJaiRzdHVEJUxiPlU4Xyp4V3VYd0p2IyVKe2EoP3U+dSFMNiEqUHRDMGQ8blR4KlZDfGNDK3th'@; put 'PU9AXU48Nl4sREVBXSJLODIsU11MOlBqM19BT1V3Q2tGL2ZAJl5GTFQwIyQxZl5XPUN8VVt0aXNwLkZdVChiNmtgLEQiXmRvRWplMls4fnh0Zn45cSVnJDhvOWRUOyZ9TTw+VyZaJWtYL0V5REVAQWt6bHBWP1QsMypGLDJmbls+JGNKIlh5QEQyZCoiZmdTTFJsaipOXiRnO188N2A5VytYNnNC'@; put 'eiFmPSwhfEA3TW1baSUpVjwwUD1SJFlUISU5Vls+RElqVEN3QyhHLDhqbVN0Sz9zYCl6M3BoJUQ2a3ZMVVF8fVBkQDV2TTh0ekJWcjAsXmErRndIIXEpJF1xQnk2amRPYWtyfWVmbDxRZzooVStFSC49dFh2eW9fX2l+QUZmRC9fUEM6XzxfZ2VzPGdeTElAKzxdQlZWTXx8fT41WUY1Qn1vbHR+'@; put 'OHFTVkpmPVozMXxaSmxHaTxpYkpIKX1xOH1yWmlOMCRzeFlTdVFXMjBnVTYwUno7OVUkeX1CLyZodzE1KTdnQmNwQ2YiPFYpbFN9bk81OlgvWH4qQW5WKFIqIihXeCNvJipTSShmST1DPmlOQXJPUCtNJCYjNiJlfTdzWUQra10iZHtqdnk7Q357PWJuXU1gbGVuYi8sLn1tVkRVdV5OaXswdkAv'@; put 'TWh7b352RmlLZURSYnwiWCs6SThyPXh3LCNKTX15NU5pbE12JFZMdkBpej41Kiw9UkRXOzt0TDJwPVhGRCUjSH4hXUZVV2MySTx4MTxiZW5gaD0lfGFHM1JGQi5AcWxsVVQvd3ZgeXV2NHYhM0dybyt3TE8jVyZ1b0tbQ3RuPjcjd0x8XjtlJFJ1e2FfZShGTnFhe2wvPkhgRGhOfUR8SCg3Yj9M'@; put 'fWElPHp3eExDaStwWCZUQC9zfDtdMk42Q3hUfDp2OClHQ15HWiVpT3JZQUwvNDZYaHQuL1NRMHdVOlUpWTN0PnhedTEofXtxL1tCJj9EfUJ6bVNRa3k+P2lBVXp7bkdfLlNSYHYzZ3BQeSs7XVNZcVA4Ung1OV4wIlZnTHU7NHd3UURjI3prclA/VjgoYDZgT1BSKUVycksjN305eGRUdzI0dnxA'@; put 'TWQsT1ouVV83Xkc9QGNYTmpHc3hzODltUkJTNzdENDtgKnd0WitXLz1LXjBeYnlPLGV9ZyhgWFk8YFouOCVWOUx9Xz5aKklxbHlfdi9pUF1DTWIzPEUmcixjLCokOjN5Ymoxbk56MHZyZ1BhQVFAQW1pRnM1WUIyYWJLYWdqY3F8K3MyZzNuSzpybS41UDk7N3tpMTNmV3MlL0kvaExoUCkmKTRD'@; put 'djlLJSh7JkxOX2RaNn0+NmE5QUFlbzMsOUxXW3Yve3BwUTNsfTpLZ0BLUzlaUGB7IUU8eSpibFNebG92RUVNe3VzJj46cy94ditZKGxacjB2VE10cltWNiEoPGQ0ZWtIW0Mye3AuOEc7JTFYTmhhQnAjR0ZoQWBUJmZYVlY6JEoic35ZJE1kR1FhUWFmKHJrLEk7aWYsQ2heLG8xRkVmNXhkdzQv'@; put 'KHpoZ1BaaF1uVjY4bS84c3c1Q11EU0BUZEhUSjtjQVtbJihOLz5MdTlZaUEiTGJ1Nz1ZY21mQ3B0dSV4LlEoeGs9R1NZWE1kQTJeQC5WaURLP0N1JFopK2RPPEo0VU0rWG5iIlM/WTgqaFF1STNmW0xSN2ltMEMsa2tOeHpHa0ZyLjIjfWhVNEdZSCElUkR8ViF1WG59ZUhPb0s2cHBsUX4oZERU'@; put 'NzF5RjwjYUBHdi9QbzIiM0VHIzE+Xj4jLGdvbiNiKUUoUzhaNDM9Ryl4RVJiIj5GMDw4YGBdPTI+M2ooOm0xYH5uUWluOFJyPEszIX44Wz93NFhTMXUvfVd2OVFuXXl6S3QsR0c2UUxPKW9HS1k0aWU0bkl3XTA9Tk9zSFBIN1JsaGhzREV6L0dbQyRqLCJ9Ik5jJVlCZXdeY3ZfK0tpJVF8QDZl'@; put 'QUZPdUYqQUQhPihtUENfQl59Mis4eShfaUJeNys5KyZFKHpGUk47OThvQWFqSS8waWZUIyFjcFVhbEpuIzQsZGszNjokeUVsdipYJHQ/bWJkUHVefXgpTW57cnlIUT9ARjh4S2Fdd0lnXTQ5RzxQc2hXdnVMMls6PnxJKFBdTUZdNCNpbltfTEVtTEdrfGd3OGBSQlFSXnw7eEoyK3ldMWxSTl1x'@; put 'VjNsRnwmWkI1ITlsZzEsTiZ7TSxRMkEsN2BvalhtQllIXjZeIUthYXk8YzRibSViaWw0PndmNG5ROHJBIlJUZDg4Okx1Oyw7RlYodj1IYE9OSHU5I0c+X0oyQXxHbD5Bfk9uS1JvIjwkMHd8OFVNKClfOXxrKnhURUViPi4+ZHc2MWd0cEgxSHw6bG9nPm9VOm5MS3ZXNV9TMGtDYHNqQnQ0aHx4'@; put 'Nm9MPmwuVDNUXiEvTEFdc28hR1FtNlozdzpIIztgKj9JUTtEWFJhaDIkUWNGLFI9JEM5dSF7L11lJSVdOWkqM08lb1JNQ0woWlpGRkFAMH1kfXJQa3pjY1lval5YTS8jU3Q2LzUvbnlYUTQ5QHdnQnFmTz9iNU1+KzxeQzhdRl1HQXFBfjUkUjAzJmc3UVtAXXx2VVU+djFFfSx5Yj9AUU14eyV3'@; put 'ZFJgaUkuIXhSRi9hOzI3T3ZhWWtOeWdzJVNgS21rI2FgNHdbOlIidyhmdjU7OE4vZkw0NHR2bXp7XihIT1RnaEghZSwzeUFTSjBed2NjY2YhJWZ8LGRnfGMuJHA1ai4xaTlkeG05dCZCcUJmTSFDLkJuWE9DUlMoOWRIekVtNDJrJCFzIk1sMW86TDNlamtBTmEkb0NVRFQ7P0g6M05IbXg5K1tm'@; put 'ZkR0XlJ1QiFPO1E6V21WczY0UVJxO15lNl01bF56TG8rc2R5dDRpe1NNL1ArX0lvQFZYMTRfXiQxey8xTEtdYXd2TSlDP0hdPTJTKH5aT0JabEBENzlkblB+KmlZKnZNIlJndV1bfEx0R11lMGVbdWBNODIxaGlNY2ExazA2WGhoTTR+cW13UEghJDhyMFB5IjRSWWVXWWUmezJ5bCIxKT1gYmJd'@; put 'Tm0qTmdAQEkqXltYTj1eYVddRyRIVGdOQmNmPlFWTURQeWdmMGpMOztJKjQqNihRbVdCUTZ1SVFKTDphZnhBX2piQSFDWGBaPFV6SmhzTjQiP2x7SD0wdU88eEZ8PXhidjxsdn5BPFZfV0x1b2g6K3dSXioxUlptc1JsL3ZHdllsSnthcHROaWlsVSlUSmJVQStDQHJQPCZBYHN5R09qJi8jaU1C'@; put 'fi90TU9AT3dwWjkkPng9IlVNXnFsfFRYTE9xTDlsdDkmLENsUj1MQUQ5RncifDhtOXw8b0lDb2w5UlRzLjR+LEhTckFAV29LaSMvfTZqdGtGcnVnfTB2WDU8aWhxenUhcmxkZEF7OUFAM3oiZVEoOzpwY1F3WU07PmU7OklTUlArL2V7K2tqO3F7bGtvLGdZYFtRIXNKZFdrdzV0bzd6PFEhKSJv'@; put 'IzBOMFVWMlU6Vl12VXFNaUFlX0t4JFdWQHhRK1UsXkdWUHteUDEld0lWIUpXbjJ4ejpBQUBLeytCdVQmVzpZMnRAfmMyTXh9OFc/cH1QK3AwQlRUfE0sNGJLKHtJYUM4LEphaFhJKDd5SnRCfj9KUzp6IUtLfnRHd1ghdE13R1dNdmdxXiNdV2BUeT91IWIsfUszemVVdzN2MWt3T3lCfTRqMXds'@; put 'O0VDeC8yWjhYTXFVNjdzZGwhNih5JFtMNl54OzR3dCk1VEJndndrSmtfPnshYGRkP3pWTE1wL20vZyQxOyZ2cGI6NTQwdileV3xUX1dKWVg4a2g7YUs7YVRVci8+YXouWnErPUw0WmEoJStudW5HL19GWlQ9b0Y0X3NyfFdxK1pve1Ftdz97XlEwM1NRKUtBb2FEaUgrLFt4TEtUcCpWTz5vUFN1'@; put 'IlNEJklUNk5fSyZLaTtHN1tfLEZpQndtZCU0Q0hYOVJEPmJqZXM5IXQ5WUxxSU0ocExeUmNWWyFrKXwxREJrQmpkNGxgaS46WW50cGoyaz9TXThoXlNIM30uInBMe3hmTT57XXQ6QzpdRnFSZl0qJl4lUzdBZTw6fjs8ayE1O3xIPjxxOWlNJThtJWE8RnF3dEhoNXQ0Y1IsW2t4OTR0SURWeDM2'@; put 'ZCx0RHg9VHYmPiQiVXx5Wjk8eClCfmsqQTUrcy9uUFhVWFpwI0Njaj5oJEFERUM3dD1VeTVULDgzW1Y0ZT5teW1CdiRGaVNmUHZzJTo2JnB6I3lFbkQ1aT89NTZ6bWxjUWxbdVE5dGpaVDtteyU/cTlpQ35ldTI2ZSUhIUwuXnBdaiFhVzAyOV9TI2dfOy9FbyNmd3dweGMwWmk/b31TTUY3e3Bx'@; put 'Rnc+cWUvcUYqRlJefVFTcX1tfVhCQzFkNkJ1ZD5Dc0JjXWZaITRHak80NixsL0d1STojZ3g0Rzk3SG5iaT9KZWRkZkA8OWtaTGxnM35Ra3JCQmV8XVpKe3NlUmFQdTcxYjxCMz53MFBuKmJCIVBMTF42OkEkVXE0YTlYdixqK0g6M1ROSHZTNW53Z0IlV0JbR25ESF43VChTYG0xXT84OldTPCRk'@; put 'UEZMOWpWR1FnMlJ+bTttXyYxTXBAQ01udEpWX1huJFlMV2tQUjVyaFAkXlclSU5GTTJWempMbVlhXmFwdHRMT01ddjpEfEZQZC8xW2V2amFfal9lVF0yXWFLOjU9NH11dUpnXTlPfG8wLnNOOXh3Pj4wTylIfFQ4PHpvRlhgQi9DQSkiRzg+fkM1bDErYVIvQj9TR0ZSKTo2Y2FFYE0/KiNvRER3'@; put 'WWl4QE9RRU5DNHFQN21sR3A/ZVtddCMxPkpAPXE/XyEyMTBOdVp9OFZSPD5QNVE5UDQ5RHxHVmhZQFJGeDgoaG8uJkMpV3NwO0hXeEJDRUlMT09NNylvVnFCImM9MC5PMXwiPEYpQTM+I3RfTzFwP1VoNi49OzthTW1GYiEzM14jTUcyXmEseXB5YXExP1JyY3xFakk4WCZ3bVRgclpzOH5iPiMv'@; put 'PiZ5WDMmWlI/cmtqMkkuRVdELmwvbTtgM0JuZHszRzEsSkIveHVlSmd1eCplUSJ5ekA7b2RLOmYlSXpadSp7TXdrUmxFO1JhS1t1YFl9Ki9Kb3JPNkFGIkBkKHZyRj18ako+aFJqZCpYV2I2QGhWcVh5bSgufDpeT0g3WHNlVEc9UnI2e0tjXittRWNiWXk+b0dLZCVWOzxKa3l6L35YXkAkRFJO'@; put 'cnVwPGhJbHdsaSUvTUt0dUVMbng9cWxmYStBPTwmNCsreVtDVCheYzQ6S3NiP2tuMUtea3MuK1V2OWZvO3x3NCRnRWtDYVQoeHpFbCF2JUdlNT8pOkVGOnY0UTs6ZkRra1V9bzZaPShaQlZXfio/KFBsMWQrRCg1S0RxSkNafGRyeCRSN1psUXsrdXVOayxoTDtWeTpwPEBgYkRMRVhwKGE8KGRb'@; put 'Ii40emYsOV5maTpbYnNjOkpMRVgsbX5bdFJdTCFTbHBMaShALCU/c2BpXXpEblc5eWsrb0xzTSxsTktrQzQ7fnxUYHl5JShucUspNitFSDkzeCxIaGtfPDsiXlMhTXR7UnJnV04uaFU/PSp8anNCNUdZJEpVTnFZUmUuXUQ6PWE7K3RGOGZXNDo8Ui9RKEsySV9rX1o9Q3V2cGE0S2Z7ZUhHUWBV'@; put 'Pk5+KDZxVTxMbFZrQUMrOE1saExyTWFnViJWRUJsbWFuTkVofUcicWxORDZkOFE2TU5aOXFzck5zWlRgSXZGQ05WKGEoNiF8MTVbfCV+S2RtP3JbfHZ4Pl1DK01OV0ksJlYvKD1uSCthcmRtQl5tPS4kOD96L0MjbUU1W0VYcXk+WkpFMkkyfE56Jj12TGlaXjxCXWUobl4zKnBHOkghbmV2YGpY'@; put 'dmNMcENfNVN4VnI5cFUrJU9UaUJlMDNTS3VbWCZaa2d+PHY6WHgyNXIhZEpTP0A6OUsvfHZhWysvI0NwO3RibzFgfmguRCJ5MylIKFJSWClgeTZdRV08KU9USyM7aFBEYUZBeFJ+cWtiQio8O1BKJnJwekwxK0M8JE5AaCxDangyNSxedGdGaHY2K219UWlqYyIofGh2W1lGeGhYLk9LZ3E2RHd9'@; put 'X3sjIl0qPGNBcW99ZHRtfmo1Rm9MVyMkRyhub15mb3BnNmUhNClSPlcpJGYlbnM2YTFxZkZIX1hkME1mWDNEUTcvJjNFME0mMml5aj56NDgxN2ZuJSNdWFBiZkQ0KyI8Z3I9Ulk0R1ZeXmBEW30sbWlUazBYPXVzREB3QEFycG5eUnJMclVjezZ6WFtoXSMke09ObV0rTTdZd1MzN313fF0zTkp5'@; put 'VnVnWF5OdDY2JDJiSmpsY1AuPH5fIiViVCl0YH5bN0lvUT1JJlRtWm1qQm0uNWAwQmlGXyElcEVOJXUyVExlc0x9fUpMPyl1d0VJIUVMSn5rLzx0NnN+cls/cz53Ll40U1lRUlNqNzgyMCVYZT5KWiEwRz1kOVYwIWRwPFBZbj8oY3hGfClaLDNRaFBrXi4uO25EKUVXKUhYbXl6Siw+eTc8JkBZ'@; put 'U35TQS5xMzVtWyJScllsWnQ+fnshKTNQNkglSm48KDEvM0pySn1jTzdTZnNPTVtzaTRQSn0lQXB5KEo/UCUmZHdKUjFpVSIvfFtXUURhdz8/XnBXWzkzPWRuUDZPVlB6QFZbbzBWYm0vT2JmPjtybFg6U2I5fGVpMioifSRdI0VtVmY2LCQ3ZzUvfnwrREB3KkUlQiFYR2Q3RGw9Yk9HWnpxNGVp'@; put 'Q3l2eVBgVkpKVSExYn5ObVZVPlhtP1FdNllGMDVOdXN3Z3p6fDd7fTdhKz1KS2U3NS4+PGtSPE5DS2o8VjQiSVUzfnFwVDVAOWx8YVhtdik8cU1xdVBeUyVMdVlIeDRhU2orb29dZW9rdWBbY3k9W0BYWk1nNCk6eyRwKixsK21+ZH4vVlcyYUAmZmA5T34uJD4+LktUYlc8VndPdzRnUngsUioq'@; put 'V1kvSEQ+UmQvMWxFMytWQittOThZaTBdak4oYmZsMzRKYD96czNmeW1xQiZCPmM8bkdINTV7eylSaD9jfiNGbERJTVI4fjh1RS5zRl97NnZCSythbjFGQ0dnUyo4TXpyeSlvb0g0OXY8PltiU1NzWyJoYXNGXkgwcSYuRjpEdUlObT9yeCM+K1FYeEloc2UpZWFtT1lqSGhkLGpOJWg/Wz1POSQ3'@; put 'UCV0SWw1eH1fempVYXpyQHgvWitWSmlMU0Y2eyYqQ0NMfi44dWFKajVZPUYhXmdle2t8QXI7K0xEdG4pS3dEfC92UlNmN0huL3UxTyttYz10MlIyRT9rWlVsbG1qMlppI2d7d2h9NzwhTl47Z1omM0ssR2hEVXhlQURlL2FuMik/KUo3M1NAMX0rX3EkbHJ0byYlbmYrXWZwJVE7MW1RPWdZO0tS'@; put 'SnN5O2NGT2wlOl9pOCR2SV9ed3Y4P1A4RmUhQ3FycClQPmA+VmU1WT8mX3BEMSFsP2ckUVJEYW8kU3FyTDpgUT5mKl8vdnNiWHNYYD4paC9Za1s5OEVUVS5mfUZpQkNqRCkyUy5Md3M9Ik5NQkskVXJjdG5pcTsoWlRUb3Z7fCVzRUosOGFTZiVMTVllNVBQKk12WjI3M2IxTClHSjNsTno3XU9B'@; put 'cylmOV4/WG83aGBVI0w9bWA2LmB8fCV2elE6RzUkfH58P1p1JSRbbzh9Y1MxRGtsezJ1clAueVJOUTNpUTAkLCl4VkcpPks8TTZ0fiozNDF0UihgKURGM3YmRUFAWmlzd1k7e3gpQyRCOEN7LDt7ME1aIW1FO25QZSZ8aUw1SW9IfGNKdCw1KyNlPTdJSHVMQ3F6cHRNJH41R3ZnK0ddYDFDT3lY'@; put 'LEJMbHJWamJDZXAxVksqLHJ5N3JfeWcme3EkRyRxe3A3YWp6RD4kJUljNiZqKFFpSlJoJiFDIzI6aVNRI3c6JTozMHwvNHlaRDBQbmZlQXI5S19AU3IxNHBOW1gwXjR+P0J8KkdFfHk2USYsP3d5Uyg/fnR+KEtVaHNmPUk1ZypiOV1AJTNnK0Y6NEtaN0pgKGptKShafU92VFoxMCMlWj55QD5e'@; put 'Pkk1aGRIKlFjamx0aG9sdEI6Rj03JDVHazRVIU98QzkyQV13aDFYKEJHUiw1PVtEIm9vTVoxeHQ0V2JhMWBkQHUxd3Z4XzVRLl88fFNDayMzc3NGbWcrdWZsMnksYUY0Qm1rO2drcnouZlI9T1pWKj1IamdxIU9aVnw6fjdKYFc2QCtgel0wck5ua1BHfVteeVUjKlZ6aT9HXTNkPHNHUDxxJEFw'@; put 'Ni5eaik3fjttVnouPmMrRisyPDBkSGpicW1+fU81YG8qNT9AR2VOcE9AOERkRldwKjVPdntkLzB8QHIoJUxEVzQiaT9kNn52VHtjN311RG5AX0khMW4kV3EiJk5jTWAyTDVRQFk3Sk8iV3B0XkxnanExRG5uUkQ8UWNUOF1BfTdrSCpNbnVmI29VRGopYiVXbVZxdG1pZVtJLEMhdSF2Tm9HdDdN'@; put 'dUVKLGhHcUtLLEViMz1PWlZaajcmKD9iLChCOVNWSD5ZaShPaD9WYzs4K1JUUTBzU0gkOSUvWE96fXFScyl8QX1+QCk8Rm43WWJlXVN7JkZ4anBNZTo5P0cyPGl5KXB4a1VnODVpTnpFIy8yfmtMSFQrOF88YG9FLn03aXw6c0FBdFFDVXAhIyp0OClhRi42YTBMKmYwQ2k1RjYodzBXYDJBTEtT'@; put 'TFNHOyE/eVg8b111cG9lS3B4IXdXZENMeTt7KTU1PmMuMlRKdU84MURnNTxgVFVtemZCL0Fybk11aH4hZUp7LyMvdDFhMSN0Q2A5UDU/NUdKLC4kOkdjZTc9WUVvL3EyNj5IIkhSc2FOP0Q2N1A7OUBkUTBfaGp4WkVaPCY5JUVGfUBAdFtSS0pCcG8sYyN6cFAzWlFPMUhmbHFPUDdCLkhTcktf'@; put 'e0dDYypCY1BDXUB0YT1yYSFdeWomeVVEZ2JQYj0yYmtjTH4uJD9pNEVsSCxmX1tTT09iSkhCZXxAa2ZYKDs0OGM2K0h1LCErc1heZnAlIWNBOjtWZ2U3MFVHbiExPU5QSCZ2PUlMXmRrVVpmdmVqSTdXPm1GWFZmb1V0NVljO3J0Nnc+bVNRTiZGWyM0TyhtP3t2V1I2WTduOzEycFhSbjM9TStW'@; put 'Ui51aTRVNiguT0dSNkl8NXtaTnBFfUJEY1BEaTkxek1TYzljLGdyJjdNWXhQeCUkNEF9SmZOZEN+K0wma1B0SFcueVNZSW5YV2RjWT0sKzIkbWZyZntrM1k7NjMmVyJNT3hnKz9jSVBxQl0rbTdlaXcxQGM2dVFpSWtle0RLRFo9eXZvOmJGeUtKPGVmeVgmOHFgaFVVPClHRzA6RjBIUk5wczxA'@; put 'emY/RWBzUypOS1YvKyRXO1dTaXQ0bExvTCEocUR8VXFaK1pBXThYcTBnd3ZhR0l9RyxreWR5cDlOQlBXRDJkVXFXfFFIZERARWNnJDR2aFZgUCk9MWR2SC4zMVRddTJlaVVHJGRYM1prLGR+MEsmXzNaQnw6Tk5EbjBNU1JLP1VkJU5LdUhYSlg7W0ExUGd9S0QjVEp6WjZrQTxmc2M8MWRhMWch'@; put 'W2JwMFc4MzRQWiJASy4+QnFoUk5nfHgqLnJ5ZC9NfFA5P1hddSpHZ1pwV1U+LEE1SjdpYX1qXjtDOnJvNWk5LlgjTyJqMlpBLyMqKlNXdng0Xl5JPCVdZyZiRDhDazclYiIjTFVJMWVweCxDPHhSKUdYZFg3fDR3a3hlcHAxUnBKensxL3RLRixOVGcvMT9uaUxuVyU5Ynh0T3FHM09RWFE5KCxy'@; put 'KHxoYWpLYE9WNXw2aU9HLmlKaER3UDVIfm9XaD5rMis7ZF5mJXM2LmN9eiYkTmdtbG5nLyFLaUpmJldmPkt1JDxrYiVydXZweW9MPkpseytJJkY9KWtabVN6fCM5am9MLCZxMy85a2Q1dXJwTVYlIUZJJVo4VzJ5eWdtbDBXOHhAaTpiVDRsW2BrP2w/Qzs/UShOWD1nc0RERkRQWlhLVjt9bzJt'@; put 'YzxGfl1PakBSbCJzcmh9dj4uUFd+QSpjR2QpI21jJDMlbTNVNCVtY1Y3ODddNFd3IVVTMnd+THJvMkg+UzZJT3hzT2J6R1ExbTNgdFREREd6dz1FMGgvYnd3I0xzST0sMjFAM1tUWmdKN1NeaFVKJDRbbWVuVT1RfmpiWjRYNjdBZGA3Z2RAdVVjemMwY1E3S2E0Kmx0RmBOcEwxSmBySGFORjpu'@; put 'WWdHeX13Skx6amthZ1ZiSWdRbUIpcHZUeSpjQn0vQGtbLm4+W3NqOCtKelFxPEdYTnlEOzspPVtKelRpeXwjcXVtUmZsR1duVT50aT80NFE1QilNRmZnblg1PUMvflY5UiRPOSxiM2FrPHgzPWU8P0Z9e3tDWnFDXnBeRz4qJUVTSC5ocn0yLEhEPCh3T2BgZnJHO15lMHB0fU9sWDVbMWQmdXZi'@; put 'JUJla1RjTnBPTU5IRF1KcV1PZV0qbWk0V295cSNEOC42ZXo6aHcsTXFPUHFNRzguMzE3VyI1STAsbkQjMGRmWkN+VjdRY289JFcjZHtOI2BoKTtOOnZ9K0FvWSg8VVhSRTZVYUBxd3x7R0tkWy5Ge35oTUhtWmd6aCRNRVZ6TEsuUENubjVvSD9qO3ohL1hLbT9uYUEyYmhGUFhjV2gjeT0wPGxO'@; put 'OWxPN0ZnMVRXaGBreTAuN355QkZLdVZIY3BmYHBRen5SPzVbY04wcWh9bWsrNk9CKHY9QiovMzVhOjVXViNZVkwvS2pTUUB6TT5NKk1ZREFyM3NMOykhXnpiI1c9SCpZYUtAX0dEO2BNcnt9dS9VfitINVQpZ3MvUl9IY2x0a2FfKkRXNnUkUkpRTXk0UXtuLFU2QmBoNyExUHlhOEgpODphbT5N'@; put 'P00mYW15Sk1CPFpnZzlzXTtheyZZXz1OfTVKNVF2bW8zZ0hLKkorbz1QWUkvOjVFSUdaYywhVWJLU1h1aT9icVRnJTl8eD4hbVo8eEhbRXBKM3QpN2BfVnJzN3BKZFlOUCV6RlVpIk4zXU83InVzNyZdYyl0U3VRblg7LHVYcUI0Z01DZ3k7YWImbSRNKStJPik8PFt4e2BsUyRKQnNxQi5NfXQv'@; put 'dFg/S28vJEo9ViUiX2xMJiF6JkhSfHRdNk1pZSJfLjpNIk45Y2clUylecVRVYW80W155PClSdyJgOlF4c0RESzhXK3xFZXBtV2MhQXhXKiZ9QlYuTHs4dFsoKmY5IWYwM3VESyM5SlA8TVRvRXtZLjVYKWh8Zi5WfE81RGldckAhOztQZ0J2KS9vbTU9ajVJeEl4PnAuSWc3MUpNfC87Ll4sVWo5'@; put 'Pkh8ZW0wNCwvOz9rfkpmQz5wPT1vPFhxa3NCUFNoTGZKP2tML1V9W1BXSkdPPHI+Kl5zaz8hRCV7XU58RlkiWFtYKGdydzlrdGVwQCMhZHt4V2Y3Zk5CLlJ8MG1JKUZWJXY6UkBFZ01majVRaXlGWXoofExdcF1QZXtbbjQoXlRtI35GKjduRGtRIXZ3V3dLZUlsRFhfaURyYF5lKiZtaG5DO1ho'@; put 'Q0llIXUsQSFyTHlObDBNPlM3P05MZChDRH57P3t9cEZAZiRhUmR7eng0cW0ybCsyR3AhY2hJSUxkLGZMKXxxdEMzKyZTbFQsOyFiQGM1fHtoVmByRWBARFteUkohOWs+WWJzbkV9S3NZLCwlc3h9TEouZnVHWDViM2JHKHY5UmxvWkNwKjxIa2dvN3lTXUBaV2NpJDJNSmJIRkZ7UihwSUo+ZEwl'@; put 'KUNQMUdoUSJ2eWAuRkxlT18uXylmQDNZTj02OWVrY2UyJilhdCR1UTdFSzUoOUxhakcqMEBaJmJHOHZOXTdAXSxLfDJpPSJHWDIyNVtAJDp3VUhaUWlySkM7dmZMLkJjdTFmd3VzYCUsQ0h4VXJ2dnN8VjRJUjtrTFYhI0k6Imk4KUU9MzVXNXRlczxTWmd+K0J8V19WL3JJQFFqOEdQSFhnIndR'@; put 'e1MoaWZPN2cxWDU4RShTSFhpYn5XQnJ+R2MhVFZkPHpxZTI0XlFIXnQqOz00UjROayJsb2t7ImxsRlshXjQ4bkxIfFVGV2shUjZeRVlxaG4uVmk2W3o+aTw3dSY0KXZdIXhgQm9iSHBzYVc1VDA1a1NaU2tSYEphZ14wOChecSpPbGwpKTRzIVNFNjI3SE9YOWlxfGNXdSs0KFVQT1Z4ZDM9SyF4'@; put 'OSMoejF4ViVFTGNXLkxOYGBAWU9+IS9hVUdiWj17YEBfITMzMFVlKUw3VU5WN19OemZNZilaSy41PUwuPzFUd1pvXmlLblpSR149LnJSL3l5MTBocW8vMThjOHkzUS5YQW98JFV3UT9tVX1SY0lsL0AoUlJnUFZENDpmeWwwa0VNP2s9YW12ZyN3d1hCQDdbWUVuaEB1O2ArOUI3LCwlQGxpcHh5'@; put 'K2dhQntSRGVjNnZ4WSwxeHwuOE9eKTZebyhOZjpRIytddzdHd1BPZjcrI19wZV9IUlZEc2plWG9ONkskKTdye0AjTmRGXixKS3BOKnJeTnE2OUt0YFlxUGo6QDFSIj87QkByZnUzP2B4XTRCV2koYUR2fFgmQThgN08uSWtbIlJ7Z11PJnVwMSlhaUxSdixCJWJePmlXb2NdZEJxOSlFZnQ8SDR3'@; put 'NkJadXZSUEs3amE9byRqXWRtI1FRdChHX3szUWF3K1tdVlczXUIrRDVpekk0T3UrfDZVSGJRNjc/JnI+XzxmSnd4WHU+cSM+NXdNSDAuL3JPVHpxQ3UsLFFyY0kkMTBzJUBVSDwhbFtnek9Ze2AxVHxOYk8xOUkqclQjWWpzNypiOzBDJnFhIUVYfj4hW05nO0VfZEAxOWJqIVUyMl4iWSJ3Ji8k'@; put 'alJoRU1zIXdbPTRIemlQJUUvdih+TENuRVIhWixpJkQ3Rnk8a0tLViF+T2xgcEJ+aX5NWzt4aT5CYFdXPVtJWHh9ezI6OWQ9ZVNKZk57USs0cDUzJmIkUiRManJ+TXFeLlZGJFhxcj5eIWlMPD9oW2lKLFJuPz5HUl9aYkgmSSt3LCx4LnJrdFBFIWYlLCw7bVMuKGZBSjVZaE93LDlKSHx+LlMv'@; put 'cyZEMmg+N0x7YFdNXUBhPEpSUFkzdEt3NWJqRylqbDU7O2hmOyQxakJCPz87MjghY2tibF88e1ZTUlRDdG1KUCpSREcmb2lRT2RYZHZgMVEwcFg6Pl1ve29ZXjJvT2Y/MXdNRChRLFkxYW4vYnYmTURaSXhlb3ghblV6dlMqJElhQjJ2cXo/KlUuLylkaVApMnkzQ3xVK0tjYWhqSzt6P0sqUzFq'@; put 'd3piIXJSSn0wQEVIbUA1LyxyfDltTGBufTZaNT1rUik6ViV6YiFyNj1OXkAkKiw3PSV9azBQZyN9YXxxVnE/Z3slZHdZXkBYQHlGNFYjWXtgPVdOfW4+Kll2ZEd8Z3dVUiI7W04sRGhpaj18diZuV1pnR0tMfXZBaXpkSnpoND5BKCosLCoye1FreT1Eb1tKYFMienN3KmcmRCtAPExxTEppRUdA'@; put 'KHpoS2J+REpuVlteP10scFk/ez09IyVtO1VIS1kofHB5cSV5c2AqeXFPcm8iYDRnWDMwJHhSI3EyaTlLLCl8aFhOPyp0TmgjbEMwOl8ofltXaXQkeXU0XnxeJlE1e3woN3Y2QF9kPj5VfFdINTlIfUBid1RzOkxea1A0SzN2Znh3MXM5Z2IjWX5EYVpIWGs7SnYwX2ZfQS5PcVgsJkxjRVJePXM8'@; put 'fDdVRjsuYnt4bCh1b2ovRHdCW2BdfjFAL2hDc0M8P25LYWMqQXgzdil+fHVPVFAvP2NeK0xzUEwlczpNJCgiSWo9RmxYKDN+fCxHNUY4NzZZeldddnM6IjprcyZVLFZYX3VgNFl0UFlWdytTRSM7UHNgSF5dQVJUMnElW0QpbipfIWlOPDQleVIhbWU8WDheITkrMGB0OyZPanB6KE9pV18xLGUw'@; put 'MWksLDYpUSkjLGIuJSU1THBwaVtsPHROVUZXbDFwPkF4M1YiYFA2Xyw9OWZeNDtjQzJnKnlqQTEyTmYyTFNdMCNtaFVdUk9IYkZpZ0A9U21CZnwsJmg4MlB4XiU/YEMyaXhBYHVVOkc7dF5iZ0xiY0pdeGFURHxMIUt1VU8wdnVbTmhWKmQrY3ooRl1xfWU6LGU3RGIrLC9uZU1FcHNuIjAySis/'@; put 'XyokRH1scippRlQmUERWRUAoV2xVIlFPXzV3Szl2UiwpMV9wQjxYSyYlSkpdVWg4YytxWShecWUwdXgqLFtNUGlLSyQzSl5fI0ZHOTxDaXM+dkd5alIuJHpxaE4zalo0Z2p5KixEe09BbCYhNTJlL2FxUVsjXlYxLlklSE1RdiV6OFlWOFlVJWtFZTsxNGY1Oyl2cW94NksyWzZiS2hOLmYxRDJ3'@; put 'UjpqJFRSYUU0NWVHMUQ3QEBySl1LVWxgSkhaR1M4b3N8Uy58eTtoMiJqfmpOLEZGSjE7OjAsNnssamRyLGptQSxqL240b10xN0tkQmBDWlZVVXorVFFNbCosVXdiLi56a3J4Qjc6JTZ0cjsyS0RQPF8jI3ombnhxUV5HKng+bFY1QlVzSkZtW3ooa0Iqd3NoW0xnVWtufncrSylNRloyQnc3Z2Z7'@; put 'IXA+UVtkJDNCbEsuPDRNPEh4TFFZOXtXaSE1PC9tLjYxbzVrSXhkZHomQXtEaSQycFRQeipgUExPezVEdGRYJURabEd0RyZeQ21GJDNXayh0YHZ7dilfMDtTRF52czpRY2dnUyYkJGlxWDdPYm43XXZQZkBDJV9CJWtfPm5JR2liXS9QWE1NbEU7dnJBbFgjRFAyOmdmRnA/XTZzaylwcS85aShH'@; put 'R285Z2B7fTcoRkNIeWheQ30oViJtS15SVWNXUjV9ZXVaTj9NNGtYN09iT1dGN0ROSExARnd3KUxyWGFlKF9zNChbVXVuSlZ9dFpFKnoqPlYhbUBGWlQ2bi9dbkxSMSRgaVQrcyx0JnQ6d0t6Z3VoMXA6d2YudyZMMkszM0w5N0hVTShwTClfOVdXYEoofXBkcmVednt2KjJKQDt1cSZHVTtKQEZ6'@; put 'UzVedXE6VGI5OE9paCFZckdeSGl0bzVzZntvPHx9YFk4WVgkeDhwKXliKDo4TFosLCQvbHl3PCNjYEx3WEM0LzlrX2AuaFQ5XnQ/bG9sYlVjJkxDbX1DT25KPW4+O0pDe2R3OUVOZl55MTNnUyRZc3A+T216TTljUlYvVkpgOVErInw/XSZMdUFDJn12OnlpZ29MezgjN0IqTWBqP2cjTFFCdHFX'@; put 'KkxUMTxYNUVnfGhZRyU+VSw+KG9WPVNYIix1P246UVtfXUR0O0JGQUQrI25EN3d3QW5QMSxfU3lKJllYVyNnKn1QRn4rQEM6VVV2fCVbTEt2PVRjUVJfSklGb0csKTZgVDNGRkBWVXk1MX5sKkwwT3xZPitnWGdaT3xdW3N4YS4kI05KPmRLR0oob1hTYWhlZSsuL1FbP1clcG1aSEBpKj4oe3l8'@; put 'YFI1KWskVHNIfStRa2ZtazkmbCNYQnJSNSMvOWQ2MUhMYzduI0FrNGN2JEUubTB5Tno2XjI2eCt5VDg9RmB4XU4xRVkiQmY8TSVJTD5wZGpYTkRJfE85Pz93dGxNMm0+Kiw+PUhYXys5KFUpI2JrI1VnMD00KGNhSypdNmU7fGNMQWsvamVpbDkuJW9tIXNSOSMiR3ZZby8mYGc/VUVXTTghbFtv'@; put 'MVdSellZRHYwX3RxKlBBLFV5fkV2JFohWHV7b2chZCFzJT9vRVFtWlhKMHVOXmQ4ejVaMmx3LyxMK05eMTszMXZ4eGtqeF9iNCUuJXpmJWtYXmxsUDlyVTQ7P3o8e0pKJHU4KDkjNmh2P1RhU3IlcmIiRE1QclNTa3c8WyM/WiZja20pYXMzJDsxL3tVYzBBK3A8cCV5cCs6THl5OVRraTxEQFpy'@; put 'Wm1JfHldZUkoUXY+Zy83ZEYlZXxtUUQuVnNWaE54UiVMQTUvT2dYOjhbWHhiZW56cW5XeGwoYUNMZ24hXTtkSX5rMHUsJjhfYDtMQX46WWNKPVA3WTVpZU0pO2tEbS98OjVVVF56U3RINlUhXXpnMTlgSz92c0lALzxjfmp2eG8hZGxSWnFYX29EeyFlU2FsLyhnU05ybXBaKixWSSVbaTlrMF1N'@; put 'X2l8KEZWPnY4YUdOeCMwIVhmRFN4UXwqS2BnTWYzRXgzKEc4VnFCR1R7bT9oRzN8fihWVmVQQ1tCR3JNOCklYncmX1RwIT9hZGZ1WCQlZDdVS1h8OXo1QnJzNjxJbmcjflJBI2UsPT9peXU1MXFZUG19fHtwLHU2fFJfOCo3cGBlTnYlM0U8bDQ3ZFNla0ZSOjIkSX0jKWFTNT95S1MvSlpKNj18'@; put 'RkhtQVNWd21ONWk2NTN1WCp9R11iOX5lU15kIlplNl9qeUc1fGs/bmQ2LlZhJnlKYTxxfmNKYmVsfmFWd3NjVlhFYXFJN3VtflR0PHEodE9jPmJnTF9oPHFuR2t6bFoqWkRuTn5kd21OKGc3WkU2X2lfbyExY0AxZCN8eEcqSkpaNyo7Wls8ISRvX0M8KCt4RXpZOH41QmVrZEhnc31XbiY5a3Nv'@; put 'QE13QyR+b19AW00qSFlZKj0seXEiTUIsV1VGaXx0TD9VY2EhI3s5S2xRV0oxRHJMIyw/bmZLNStiTkBDUXMkJitRK1FDIUZlSlZJQkBXTkMlUnlIQUxFXVFSfkZVZ0xkR0I/MUJjejlwN0YsYiZre1ghbGBzP1FNRl5RUk15ImVNTWRhU2p3NkFfaHFCcXxLPEhxT0UiKH4rNl1wQEJtQVRIKygj'@; put 'UDpWYShCWGlTbmZUNk5oSmlzdX4uYzZDeHFVUTJmR3YpSGpwNipxYWVmfVglaGtPRFQ3WGguNEEhaDdnKzp4On0xKiNHdHhTSCt6aDYmK0lOclhBcmw+Tl95UjI9dUZJaTgrNCE/XkBLI1V+QkBiNyVRfShIUEgmS3RMc2ZGZj99NTRGSSU9eXpmTm1Ob2BwOyhBdXIkIVQkQH0sMFJWXUsuO2tV'@; put 'Mmg5aW9eejEkLnwrNmQhPEtSbzNGMDRHWlZgMz57YkwsWVomYGR3bF5UQEA+bDlHM1I/ZztnLnZOKmdPRG56OWk5W1hFeV0ya1hffDNCI05fZUFSQmdwTm1STllUYykpWHgqSGQ5Mzh8b01+eipzQyRbKnJlQGJ8eVAoJSg/fkJfX05OOWR+NkhabiZuUUVXdjlkTi9JeGk9NnFAJHZ0bzc0eWQk'@; put 'TzQ2MUhQdkolPGM/LG4oO0g1IVgoV00qZXshRk0qR202SlJwb1BNMH1aSi9jVDB4UF0wOEhbbl1zeEFCSCF1eVhqUH5ASityIn0xZUUsTX1xPlRgcyJBN1tMMlV4bXM4MkBCRV1yV1V+InVmLyJUK2JxU0NhUjZ4Wn5JUEh2U1MxNXRiLyZiVlUjNChOZTU2ZH1YPz8/dT5gKjdzMjl0NVk5WXkv'@; put 'MTNiVik0YHc/IWAxWXQ9YCNOTV9Kc20qZnB8XUVeMztbY2dPfVJ2PGN+dmpbWjF7bEc+W3w8TWlZQSxeQUdecVQ0Y2NeSC4yWHhjYVUjVEh5fSMrJWpDMXk2YjooQnVadk9hKnYrYVc1JitWPU0pVzJORURnfD1PTUNmdmQ1ZjNvaz8hK1NVVil9RkYiW0IwMnUqY19xbUxmN3QlRks8TzAyNFpm'@; put 'JXJQSHwxaj8hQlIwUy88bDUvWUJ+dy80RChTLmY/VDR4MWU3X25pRV0lRVAsQ0s8RElyR05bJjMkKkN9MToqKDU7czJoQDRYMmg2YFNMREtUTnhsXnFpI1VUN1c+KUw3WzYsPmhPUT5KRG5OfTx3OWRLfEFXbEtEYExFeUIhey9GWjpyZEM+IkosdDJ9SVJqQVU9Vkp6RFM1KnVXQzJ5TWlqV1p9'@; put 'TSsvRnZebnJ7dDxYTyZrS3pEb0F0LntHc1gxPiksbiI0dG01X34oejNlTV9NKlF4Y10+OUFpbX09fDI/M1dYTzcvXk1jUVtmcDVXZCJTW0wxSj8/Z0pYdnE4bGk8XV9+MGMpSTpydF5te3BXdXYmL0JPQ043Qn55X2BTSEEoZWl5MEFHMihpe2xPbEhMbDpSTSxeQ2xNb09ZIUI+Xk1jUTtCcTVX'@; put 'ZFBUXmxSKyR0aXsvRWB6KTxEYkguUnl3fFRlYUQ5PHdCS1VVcW8lRmIpPCZxRm9FbihOW3hOVlFsM3BiMzd7M14ob0RgRzlWZiwsT2dxVUNnVGkmTXlnSXBZeiVSYkRDeFRDQDRxUiNHM1JoL3BXfStZPDZ5UWkleV5dUWkveV5dPyFsK2l7NnAvMUVXaCl0JU1zcCUpNz9MXW5eLmZqSUwsIWN9'@; put 'aVN9IVtIfW01LF1nXjt7Onc2VWVKc1RJfCpoej4sJHQlcCwsTkFUTEt6Rj5EaVdVcmRbJGlJPC4qflZwWUg3RmNKXj11OTd+TUc/K3h6QnYvMChqNFpQQ11sXzlXVkRmRFNYfSM1YSYmQnVCd0haNV5rcGhBUyJJPk1UUUJicSpzU2MmX2tYUCl5V18+LDE3VVdGWDk6Y3o0TEEyZ2R0O2J0NGU3'@; put 'UEBud1EpejZQMS8/Smgxe1V3OVRuLCFDd0clbG9IU2I0YDh4dkJJQi43LGcpX0MhXTszUDpMN1Y6WDNsUjljJXRpeFp9aFUzT1UxSVthS1V0QHc9SmVsVik1QmZwPkh9cS9FU3I8aVl5aihLdlY7dm4yVDojQFs2dm5Le0olJjN7QH0iYGsvU25Pc3JZPkJBbT1OX2FAPzR1MERDQkQpInFaemt5'@; put 'RFRsejxvWjRsZERLTkZya21eXyhmKDwrcDtvZiklb28oSSVNWHUjPi4xQFUyVEg0LzJhOiNOUFYmcVUzOUtSKkNXWygiJnB0aT9AVnhjYkdOUUVuSk0mc3VSOiQxZFtaX3hkXWFHRkVqTjAxKXZ1YyVwX3E6dCslWzxhbFYpbixWQGBnaEgzay9HPysxVDd2THFTejRTPkomLHQ6Smh8cFVCIj8p'@; put 'NFJrcDZNU1FuWEY/PG5ueH5TcFJuMUxRRV91W0hLOytoLjZ3WEU1OzhELHtbJiUmNmlDWnN7VXtkWztOODlMbGxSeVdaMmRfMFBncipxZV1CTWZ4VkFkbV00Z2hpQnJ1XnUxZCloaGI5fTtNP2ZecU58I3N+e2R4MDg7I1p7RFh7WjkxN2R6disqYUtLUWl5cF5dMk9GPjJNRDQiUSUmIiIjW21W'@; put 'aH1EL2MkbXZEOnJ0Ijw+SU5SJSZpPjp6cW9AdDcvJmJObzptY05panhFKTk3Xzc2ViVac2lXZVdudmhDLCx8U0ppZChRMzNCciY1TXM+bTd9SXNeKkN2c3RlRWpMcH1xYjg4flR2KmM3MWhLPlNBNVc+ZC5SUFlRL0osWj5Rfn1yMUxTfUxmY2U7Um43SlYpWUllTDVodU41bj5gODkvVGBbYlJt'@; put 'XnpBaCl+cFcwLnpqJnYraCl8LH1SfUd3WTRhOCs4U0QjRyYkPTIjQjtNWys3SlRKeXFIM3VMOnZ7UjNsPE9wPCkjXUxgPTVoJkc2WG9VciJQUWQzYG5XajBeViV3dCg0TUx7Yyl2bDtqV3d0cFtPYnNPN2dyOSZhYyV7Ol9NWEBsY2xnPlV9ZVs9XjQ/UWQ7QFAjZXImWzh7aTxGXWk+Yjt3SE1V'@; put 'eGtwWVBaPX1lbVkjTnZEZGJvYnZDZDBqJmpCVHgmWXZHK0RARGB1cSZbOFhHQC58WSYmTS55R1RCXTZ0Ly9Aei4pPi5QbFZOJVpMaCYrJTFKOmV2cjsqb1YqPG9GaHYuJUd2N0FdQmR9SSxdKEE8cHZ9MTduVS9COWslZUc+KmpKczBiV1hCIkRzYi84MUN5TVs4N1siSnkxQ3R3Nzp+fkQ0VHIx'@; put 'LiQ1dT9rVXRoQl08dF10dUYleiRxbClBaW41bWVsbDh+I2hbU1QlbG98PHsqfildITQrMWw1OWkrU3djQ2d2Z2Ema0Uie3EpS2hzNWJjQksjUjZZME4meWxzcX1vT09iN016Z21bTkY5MlZqR2lwaFEuPDc3JSNPdlNsMiNKLjJsKWV4QUVUMUkzYWI1KUk/XXdUOWNKO3RsPyEhc3FRS016clJ2'@; put 'TGZwfjxVPmZpYiw8ajZ4WWVAe3lOUlEwKlEpekxLKzIodT5xbHUufSxEYkBhJWZ+Pjk7aXJeKU1ybz0zeE5DOkEySzRvXlZyVVdkV2pyN3N6LGtGX209WTJ3e2FuZzIoJFVVPSR8LnA2IUZLMUQ8VVpzVTRuQkRWezo2PWBJQn5FbHBzbClZNXFxVnFlOVRUN0VEeU1bO0w3dE5RUC54b3d8amw5'@; put 'Zy82I3NqcEdMKyNPPkR7S3N+KkFWZzZsezdtZU89cl0jQ3o2Wk9IbVBfRHlwUDAsNlRUUjZBYzZSdjIqZiE/PChtJUwmWDFOeW03O0wscWklSSUsVVI8O11oMTxVc201TT1IczpLZn1dSldnRCNoZjU2fDJLRH5lVTRAYW9eTFpxbHExNEIsbUkrUF8+Tzt7dz1dRlhMNTdhbE9VL3R+eVB8LjpO'@; put 'Ukx4TD5KOj9LYTNwJG9UI0k/ODE0W3xXQ300UTVNajdyU0J+ZGxzKkdaa2d5I1JHL01WVTgxWEVadXR9dnxXcFRySDY5NkN7PkImWG5wIiZudD5MPVFfZ08uPWFhKENfQTspZ0AhVWk1PT9dODx7Kk5zRFNecCUwdW9eYzRrNVdRPSFvS2RdbH4yUEEie31tZkQyQjU1K1FzPlt5Q0UuM0NPX0Nt'@; put 'Wkk+V2NCLzVrO21kek8oRiNAajt4SihBLmhIM3dQZzQyQiQ1MkBqbChfJSpMO151QFdufjJTUzx4QmM7LGM7anQwdHxtTDJWRWtedykpanQkTllscEJoYmRtUnowJjh7a2Qxd3pvWDlkSE8kLEltQmVELHVJUCNbLDl3SWo4bSVJYzZLZShHay47dzUjJmtWOyhucno2bUh3KHwuXT9aST5NRzJS'@; put 'YE9ORGk7cyo+a1YleiFhcW4wX21HPmE2Uj40MTRWfS48OyExNHp4Ukd2K31wanw5THllXlZFfSVMQmt3WFNPMjZuJXApeE0xcVtqZT9jN3pMLD4pVjBydVpnVVRkOWgjQVNYYSJbZzNgM1cwKzM3bGdqJTAhTV42TTZHMFJicGNxL18+d25OPSlzOi5oKEFYMDpRelFTPn57d1VFUntGclQwWTo4'@; put 'Lj5VPk5+O142bSg4ZUMuMXFzXk1vRWo2fkIwc1NYMkxTV29OZCRDXkB4XmdZVnJ0bGQjcG9xZiRke1JIeCRbUllzYVReflVFRC9zKnswKWxLKkosKHglKmRGMG5wREN+M34xKzRuIjMlPFNYXz5zYz4zOi8sLCZYSH14I1ZHdz1lZClBUXhQUTFBYmw/ZlZtb2ZWRCUoWUk8Mil1TThbJSlhbXRE'@; put 'LykxS2N0ISIrdCEiTjJpN2p+UzojaD53MG9LSysyPkw5N1BxUVI7PUsqV15wPD82fU9DWzVRVTx0aHdNeyhuI0ksKWcoOHYwY2UrRml2MllsODAuSnM6LH5VTzg9SWA6ND5xYVM3dzBsWGtGem9KTj0kJDVSJD9kIVd1QEpGQXB1Qy9FeClrVj5RMko9WlY2PjNIZVR9VHR5IUNGZXRRRk1LWVV2'@; put 'VHttRyxIPk04TndwNTY+Y0YkQiZrQkEsdSo0S35eQ21rQG9Xe2w8Tysie002NGssc2VYRmVKVHJpMUo9Ol46djBhLnhHYjNyMDJ1cXVFImNzQEN6I2QzKlJfUyo5QVc3cWAiNHRKNjdjQTQrZE1QU3heVj5NfltBZkVGfTFATGlBISMoUVZ9V0sqLCslMFlqQSwpbW0sfntQJiw4JComKmB2bDFe'@; put 'ZDFkMzBmSSpgI3hdZztYfSNyaW84OTJSeztiVChXQVMqSjU9NzpDKDQ6JkdrLkp+elVFblJkdEtxKllyWTN2VD4jWkdxXmRQcDR4MUd2bX0jeD9qe0Z6YlRxPkJWMHpvYS5OYkEyanorLF1VNnh7bGZhYkRYaUd5JXx4MHpweFVLS3plVkl5O0ZlcWByQ1YudSVHVFJASTdvW3NJb0whKHxPQmsk'@; put 'OEMyVl0rI0s7T31rRDguT0hGd10pZEd4dyVXMmM6QlFjQk1FVTV+SFh1b31zVE9eLHZxU2hQdS48cXtYSHBOQzNKLGZVNzNqN0AvbVtLcUE4LFhbJjsueks9OiluO0UkZGAkaEwwPSUpeU5UcTldT1hidWREKkpeLnYyeTdIWHEjWGg8biZbSTM4WVtVYmVKM1prPnhpN0MyT11jaC9XfWFlWnR+'@; put 'dWw3O0slOExaUUMleGs9WWUsaW8vSV1EXzAka3Ywc19mIXZISTo8bmpedmpMIU15NFV+Myp5fHExT3lEaFNnKlMyKjg5XV16XXRaQkJCaVkiOFR9cWBnTWxoZkBGQChjWjlPQC5hQ3RKPlQ7biJdd15AU2lkalBEakwrJXhJYk9TR0VAbmFxeVh4MilZeCI9WiMoQFBfJnNpLiJLKX1eX10pakl2'@; put 'Z1YlW19dKURJNFYvfkloZCZVIXwrRUhaTV5XRXw6cjhfQyxkZXp1aSVHOjMhSWl6NiVSfFE9KG9vbClJdURxaX5IIiZsMTFsW0J6cmUwVmtrJlFzSU9JOV0uVUsqPmNZRzd4RE1YX3swTlI6P1djPmBeLmhrOCl7XSxhaC8zb2NqQn1NckdbLFdBe2NiS3wxaT8lUnlXWiZXbllNOHhjTmpMfC4u'@; put 'TVoxWzpKZEI2fUkiSEtSRncsdnhhVCg7Wnw8RUhOPltZT2BnWWl5KiswJFJyeyNnYHl1e2JIcil6azNGS21bYW0kOlZtKXR7OXReS2x5RkdEcUUmNSw5MnB7c01UZkg/YjN1RjNQSmZmW1NNPGdNPlNJLjFUQD5XLGV9Kl5LOytHI2x6czluQzxlUCkrS257VHZ8Y3VaM2Zwb0JzTX12Qj1pdFYh'@; put 'YXdoNT1BXVoxXmVrYC4zPzcsN0JIYm5mJEtScnouXTAxOXEpPCw6Mj4qaDVNJjwzVzx5Sz5CKi5YekkzODooZyE9SHFvTSljXUhHdWpsez0oNVpoNUoufCl2bHMrSklNbkJHd2lyV31KZz1VWTkoSn11fHYwMHF1cT1hTTh7LGBZSWg7I3s2bEpiUX5eekRRTTc8Lyw0dDcjRmpoNyprND0sTlJA'@; put 'JmRpeEk5NlhgWHoxPXkucztjQkoxOylOYFpfT1BwejE1e0pacS44Kyt7VUNlUC5EdFA9YmcrUjI8JTRFa2peTl4hKSVXOE0lRU8xaCJaa1c8LHJ0NWwlXShXd2ZCMDBaOHRpdkhYR1ROOXsoJCRMUSZbIVBPI3JYblVPbzdaeWpASDdkXXcsMDltN0NbOTdiT0lpNTN2OVZXVXNqSmZzOylnPGFj'@; put 'entQVmlRMUVbR2U8Q1QmbEhqK1hKbysySDtYQyZeSClqIndxe2l1TlJzWSVWO01eNSUmcl9iVnJocytJSGNiJXFoNSh+YjE+ciFjQn5Jbix7SWEvajFUZyk6RGtOMHZLUnoxYDwhdUlYLCVmeSkpfCx0dkA7fFdLYWhiZGBJI052JlZNSDFEQS8yUWNpfDBtT1tLez47SVhxa3pkOHExaGVdQCJr'@; put 'RlR7JmFrJClZY2Y4SSFjJk1SQ2V4STpLJEJnV2opbiVlX2xFTT9AZVBQbHQxPW55Z0tESy5dMzF4dWslPmdZQzNgJHJdfEB3Zk0hdHB5b0gpdzY4Kjl6MVJlSC5vWUZDa1BSRDU5bHtsRVZeOUx5c3ZqOzAsS1E7dVY6d3khWForQVF9MDh0PEAxSm1KQCFvX0Q5Y2R3KTRBR0pMYyhxTW4zVSsw'@; put 'NHB7S0sqKjVddGs/WWk1RFJwWUhpNEt7IytQYWlaZj5OOlA/Q0k1XXFQS2FvYFQrZXtoYlp+JSFwZFVlOG1oRFA7Z1A2NTxvMzs7LkBkaCQvSTtyZXpdeDcsZnBjcX5iWXVSSy5SMSlHRUteKyVRay4qcmhdZ1sqQjU7S3B7U3s9JjtgbCksd2ovMnVxJCZUeShrMlRDYGo+SlpTL2hbUGJETSUl'@; put 'OTtlSls7N3R9fCxdTHl8SVhLNVUzVUldR2ElN1VNb1lkXVtkWGhYPHsiclheeXVDVkoqTC9RVkswUXV1dFBYV0FdVCE8YEptIS81YjhZdVRhIXxJMkZ5aXc0Q21AO0NqVCxTPj1MO0BCO0tSRkZSfUI/PkRsNjYlekZFXStfamtHTXhqWkRvaihkQzglcjImTnZwUXAqRUlPcUJRbmhAZi4jWmoo'@; put 'ZEM4bi91X0JQM19nIT9CS2Zvaitkbk56TEdJd2taVil0P3dnfWBMSSY0fV8qeHAydjlCJSwrYSE+bV9ZMVkzIXUpazFyIXVSdF5HcHZhcTQxMztRPEdFIiFePkQybzU5MSUxXT1vRSFnN3BJWVJ4OGlJNlo8e1h8MGA5Ynd9N0VqU3lwY0t1eSE6M0oqLkl4eUIue0M3UXZgI0M6Tm5PdCorO3JL'@; put 'dCNrK3xAKGMib3s+KUY2SUc3fUBlJHJaaDVAOD1XMkNfXVgxVWZPS0M8MyYqKCJHQnYsLCJxNS9wUls7UnUld0FifF12KSImTl5oYjptZEBRJGp4PF1SNU80bH1AWWo5R0sxKT4raEBiSUYsZm0rVlBSMElxcHBNX117JShJQHAsaCtwUTB9NWcqSWRPWjY2d0h6Qzx2XlppL0ttT15LLGdLOloi'@; put 'Zi5pb09wTWU6Yz5lZlV5Zj1PNlRLe1R3NHZTbkU5JHpmKC8iJEorQmw5VmhrMXAoRXtCQ2o5MUFSKDhYSyxIK1Y8UkhFbSRPdEcmTCxQejlqemo+IkFyVE5mN0p0PGY2fTx1YWQ9JissfGhqUiYkdFJpX2M/M3haMFhkcG95TzZlO1pTNmhbclYyfnNAJkM9N0RqWUZgaFUkYn1+dktpN2JMRzZZ'@; put 'JUA7M2A5ckFfKFd7fUlxIUI6fFB0JmpePDxRbGZPSE5mYV9ZRzFYSj4sOEJGNipAI2JRY3N3fChiM350YVoydWYyMHAhSSZ1e0BCaiVhNlkjQ3g0XT0pelQyWnxaSnYsKDZVVXE1OHA2K2E+YXBMU1JeIWksWTNzV3UudH5FeVY5TjhpKVhISnViOFlnektGazxpYER3ZWVWTTIsSDJjQkJ+W1o8'@; put 'bHg2L1UqWXVWUjx7My4/OWRdIz0uVH4jZnlXJXxscmgjLz4/Kj1mI2ZTL0AlSWt+YU9kL0gkSmJLbHtZOGZqZUdtNVAqOE14O2daTT5ZeCRJNTxxYEBtKEQmallfQWZHaUJ0Zy9BYFNfNWtvPGtoZXs5OElPRiYrU3dQT3ZOUWU1VSFOPSlZJlk7OF8uMVZDKXwoeS9WSiRucCV+Mjo8TSw8KVdD'@; put 'TGV5T1heRCVdaXdOKDwmPFdTLC5Dazs2aFQweChmIy9PNGxXVndkd3QpZ0lgRDIpYWkre1t3N1ZLOnlwRCFLeXVSJG5AVVhmPVRGXldVenYqQyEhVTk7b0JGbT86JU9BPzVJMTU1KSZNOk5RYEVSTDg5S1gqJn5rbXksdWdeMClNX3lYT1hRe1hwbW4jQiY4XjV0KnpQYUFFbV1AIy85MWIkcEpB'@; put 'SmJAKThvcEgqejkxKyYxclkyMCIxUFAxaixpU0BrKDNkdns9Qnt0WU0qalVjQjQyJU8+XTVDNjRNVCtIZ1gpTCVdXytKanFpRztgQjwheWxTKF8qKjdqT15aSTpqUG1Rcil0SzlJSDhZS0dMdXgiYCkrWVA4ajV4USFfT11nbTdYdng6WTk0X0h0Z11AZU1HJkR0NGc4Y10sRiQ8PWdaYHc5JmVs'@; put 'KkBrel9EXURpMHhsTXYxKW5mYTArXVhlNXVwcF9WMWBQR3cpTXFAQVtAP3A4IiNiSkI1WShPSGU1dVtbeUJ5Py9ZbztrPGw1V0ZHXWpsKDsrOGY1RWUoXz87P0RybVMrZUh9MT4lUXRoNWQ6LHh2O3RyQHd2RnldM2xxRlNvPihZTWEpN1FnQGt1d2kxdVElWGhRJmRQRD4hXj17bn17V1cwKyx0'@; put 'b10jekRvb0BrOytWVkpIOm1VQCJqK0FFK08ySEwsQkZgV1E4e3lSUEpGRHFaYT5bQ2MqfjBBUjVhcWg+amR7QUdtQ3BiTj48JT1vW3hJd3ovN2YpNHh1M1sqSmBFMXQ1NT4/TTljMFJNVGEkTTg0ZHo3NG5VfSIhJnZJb1VUSSNmTTkrUz4sOz9rYClxc3g7ISx6VG4le2Q+Kll9WWQ6TGw+ISNM'@; put 'JWciVlJedG1ublAjaExKc35ic289SzpLWmh8UFZdOSNtPF4oL0UuYXIrPUBXSENMKi9iaGZENjcsT3k/RjQkUWE4QEM+VS5JImRATyNHWkRmYzo+VyFeeiUvOTxUM1NhdG1QP2soRCFeViR6W3UrNExzSTYoJmYzLyJlL1JrNUc3RmEoc0tIO2QkOGtwT0VxVjAyPDBXd2NrTWBwZT5gKXN7WThq'@; put 'In5GTThaTEFzIUM+WjpSYlhLb11BX00uSG5IZlk6JkVXYmI7S3pEfUo7S0thRlNEOX1kLF15Y3lOLF1xSEE6JWRqMUpSOy5xKSthYCxTV3xRaSlGUm1CXXolUmVDTDJEbXwrbmc7SGZLV1hxSGtCISwpKXxUL3pvTlkwMiI/R2RueDFKMnY1NGJOcyFPfjkxS1pmeDBEcH1PI3RxcE5QSF1hZV5s'@; put 'RHdad2w9NVQsYUVjQGUqYSR7c2F7QFI7TX1zZlB3Y25Jc19ZYXhrTj5xVypeaHpYb3g6MGtePzFYQnN+RHJVVW13fmdBfn0/VWk1LCJrMWZNYkg4KjFaZThIUU8vJEx0cSNoRDp9MzozZTJxPS87OkdQTSZrSmZlXUA9aj5aK2JwUUlfP28iUDE5UiZQUXEjQU9yaVZJQlI6SUBZR3xLMjRYbnhT'@; put 'QygvJDdxRnpObDNOXmtlK0Zfe3A3WlYrPighbkxQZUIsUzp3JipxRilOMXJQOyhzcGorKjY6bSoyWk00WTQsNUIuQipkZmtUQDBVLzZGSzgxRWVFV0A8KzFWYz9JNyV2cHZIJENxOy5kZGhseHddbkVCIy5pQkNfTissM0F0eHhnaEZDLDhuKFVzW0JAeTxuUFM8OixBfGl5QHVSek5TdmJnXXJf'@; put 'dVRgNSRHKjVDSmhIQiNmS2o2V1dEWm9RTTRkTHhMLjxaL1h8Y31QTi5Gfnx9RCk0Q24rJVtCT1tyNHpCR25VYzxCeik6NlpyOVY/JnEqcFlzYXtpUnFAeH5FNSxIUStVPGJwb1FSZjtVTmFPYl5XQ3FZMmEyMTE+ZXdxYF4qaSkzI3ZIcV5rOlsha1pydWt9UENrUmQvY3cldVc7Mmh2bnRvd2Ai'@; put 'QF9PJDBWc2czcShbV0tzMDpFUlJGIVVhdUJiLGFuKD5XbzIjTXwlek9qKz18QzhvTHZ7PFhYUkZELlNIWzJNaVhVMExCNltTZjBgZy56Nk54KH5ucn5jLD5tNyUqeFZxNGAhP0kwLlhkX2h9Uz5rXTF+d203P3IiYGZDe0hfaEVtc3Vre28je1lLeTxyRS5YZ0MydytZaSxbSCFQa2tYMkJSdEY9'@; put 'Sk4uTCwjY0dbW291W058Ims6cnlKQmtZNCFoWDYjTXY8ciElI109W1B5PSpqMyh1LmpzVm9Nd2c7S0B3Vl4qME9Ta1NiN2ZAKyU/YjBzRUQkMEVsUnwjQzF0Rn59dU9JRHFrNEFXRnxpQmtVImpkL2tGLlBFWFB5U1pda2M3TjMqd3k4WjVaaVIkUjFkMV9HYzolWiN3LnlVKzV0O3p5Y2hFO31z'@; put 'XnRSWmo8TVhIfS85MmpjVyVEZU5FRClZPDN7MEREQDBCOVglMlVFdUk7XjljWC5mL0BHT0k1WXJFQTpuMC8ueTEjRShnMFdYV0QpeSZRT3lpSS89YTZseUMyaGcqeHd5bnFaQTtKUHljOn57NCh7I1VqWkdPTihaYXAwVGZtJXBvU3xePEYkY3swZFR0KGQjPChrNlsvLH1IaiNgUjhKU3RFdTJ1'@; put 'LHRWakU6Q0YiIlRueVclOSw+PkZtWmRbOlc/QmRNNDhAK3R1L0ZSdkxTTigkRyh7MCZic01fZSxoWi9MbWh8OkkqNkZTT2BBRSllRTEwX2l9RWo3LndlPD9YYXtobUZKT1lvTFdrSER1P2hfeTchWXBFeU4iQzEpK2haRUk7M0lvYktrNEU6NHlJR19nUjwzJkgjZyNZcXxNQSNfXVcydVRqRGU4'@; put 'TUUsPUE9VFU5MjIkVHdFVTVuYXBeW2djI115OyJJMHdMXUhzX1hNO0FpTFklL1hXTW0yTExTUylbRUdGLDJGOikpOE5IdnkmIj9iKyImJTBHT2NdInRqNWd6TW47Q0V2cF5AM3FdODkvalNoOSV1Wm8xR108YG9vUXxOTEpuSC8xajFBa2c8IX4sRHx2b3ZPJSxYfX4qcF92dUlSTT9YfG43ZVE2'@; put 'b2BRJWRQRD5wYEBNO2ZOXnQ8fVAjWXhtVUgjMFElQG1yJm18LE80Wkg4dUN0NXUvb29kdDlLKXZPdSV3KFc4Umc5Oyh8WGs9SVgsWHgvRnd4KllXQiomKTZ1dCFJR34/Z11kWHZEQXErYXBfaTx5WDlNQyhBYS9vaFVWSWk0UF80cmldbHFXR3VsYClmJDRaW3kod01rc0JNXUY8W2R8PCFGZjFL'@; put 'PCFkakM1LzozUjFbYkM1RmU3KGVDQW0sRHwsNltPQUMoVjN7Il1SZm9+eWVyaGtRZXp3QjBddnRLImx8aTh3TEclQkNiaytRfiF7V1EpOWRCOHlBZ0MrQllHUkY5RDBxZEVYRnRBW0FgeHMhR3g0QUFUWCpFe0NCJW1dUSR4SCU1Wng/aG9hTVFsNG9PZmE8bEoiOFhjbXx5U2BzJT5MSWBrYktl'@; put 'cVJ3dSZUIXVtXV1haDhodFMofTdjYXhNPjZ8O1dKJldEUlJOekR+UXl7Q00oQl8/cm45eWI3OVJwWWt6fXJHSCY6UVtaT3VTMHU/NGB1bU8mU0s6MDoyZT9EYChiZWZ6d0B2VFhZN1NLVjFKcCl5TH58SEpAdWQvUFkrT3p6OypuWH1YcGpURGNDQHYpX01WbyVxRj1jNllgUV1EZ3cqaEdtdWxu'@; put 'IzpgWmM8Y3RLOF1yUF4sL0JQWEBbSVoqSnlZT0BiOWY/YGhuPSImIncqJWRQZm8vMWJLWWVmRVdFTmwpeX5iOVkmcG1RZk5FIWNRPD03I318QClpKSxQITE8MWdiSnZ9akFTLng3cW5OIj50cCJLJDdub0R6LF5NQlh1bX5VYThkV0NXNUJ6cWxRakszcDhfTENyYnNSS0psUkdCWztPdzVTRVFq'@; put 'LCxOdjxDaV9aK3I5KWJCVEVCRjhiP0dQIzU2UUAhOWpMaS40ejModU4pPUx6dW9nNzwkYWpOU15rcCo1PkwyaXo4MmpsT2pZZGZTL3JIcD1vM1dnN3NraH5vISthKWtoKUNBOms1aDNRaiRjU1RYU3YucW5JPmhCL2BWOmZrLkk+ZF8uY09aNGI3YnlEfDgyUEEqNX5KIko/S0RgdHd1RjZ3ImdA'@; put 'd0FxMUUpUzt5KWM/ckVYO1tGSWpaSzg1W2ptPlA4WlFYP2tUW3I0MTtoZTU9Y0IlSjc+VjJjU1VTbGk0XXo2MXg+fSE1dmY2c3lDZX0udig+fnFwaU12dDR2dWVrckhaaz05SWFoQHpSYzUodENhPHpETURaLix5PnFaLjRvRWY1PU8+djV6bnc0YkJNfjQ4ZU5wMGhxezkvQT1vb2ZoaFokVXlY'@; put 'ZjMwW3UxaTcoUkpSXjgsJSRZWTVEOmkqKS9nNWZHPDk9Q31RcXwhUWN8PVs7T2lCZWl2dEU4UmtPN21CUntEWyErLzl5JX5xSnpLfE1eSHw2UztjTlJXXlQ0TDZdR1RJfSwwcipOOHhlPVYpOnskTUdRLCxidSU3dkxFMTRpUn1ReDZZJTAsZXVJaHNtKXx0e1MuLDZLRUBiLyJtfGNaSDk6ZXRb'@; put 'PiEoZWcyQTNiMjo8fjlNZWMwWmRYaT5iX1FbJlRzdXlZIU13cz1fLnB5e0N9UVhvcmcrRil4Wn5Oeks4eSFbO0MhRGUiclBdYXNmPHRmTHc7OUJne3lKW1csRVtXI1U5ITxQSWc/U256ZSJyVDtoMXVeSWFyRG04dyUwPUw+Q0F6MUI5V2BSUURtWjphKXQ2dXF1bWFYfCM/OXk5a0E8QC9JenlX'@; put 'ZStmTlJWVDl0WiNMNUYodGsiOG4peX1+QWcraHE+Riw3cSM1MyE1Wj9LL101IX1dXUlJNnxrc1MrJldPSlM0RCRUWlM1bWwwUDFtaE1ffVBKbz56ZlNjUS9mfV0mUWkmVDFAY19QMDI/fWRBZHU/ZVMsMGZWJU1YMCtnYWJRZVFTaWNXKEE7JXlmMk9pb1pVSXg/LGshXll4SyJEODokIjYpVjFJ'@; put 'TGRDXmdReU1aSFpxJldERWZ5MjhwT109QEcuUSNkVXh2PXcyLzA7NGQ9dE0qX1lId345I01OX1E6KUM5X2BUdyhdfixmWiZ1OHR5bkMhaVZZeyZ6VztabUg7U2htfjw8cC45NyF1WCF6R2smbEhjUV5DcFFeP0Y1JUc6JU9POSpBOTxkbn00d0MybTp4TWU5TW96P31jQ1Naai4ocSQsLmNsKEw5'@; put 'TFVtQVgoVX5DJCpfZFcxPnVXIWNzPCwmak1TaTx3KXwoUmhCbENOU1hVZHN5O2IzKUR7UHZBWHxpNUg7VVJKc09TKXd2Tj0qOy9eeSlncFV4OChaPCpKVkxuailmaVBadlM9OTgqLGI3SCx1bHNlL09JOkdRelclUHlWbH5SQHdVXl1AM3hyeFg8LiwicCR6InxOZyUvQE5qPXI/Ozl9aU1SXWA3'@; put 'fFQwdGFDcyg4b0BHVGFJV3ovSVdVQ0BOPEA0fmFYQzgvSlhpL2F6RT9xJW5TJD0qZUpQenI/YVNqKHJMJi51TXxadnBRIylqQEAvIllOMEU1Tk92VG45Jm9VcV53PipoaH4jUzo9fD1NWF5sbF4uTnAzOTpzc0pEeT5VWldPPGwlT1lHMUx0N2AjLyNnZnE4UWRgQCY4YUFIZl4yXmdXb3QuY1tA'@; put 'N2NqNkArKXI+MXxAViVvSHY9VWcpY3BAZmxqYzlAfCVBVSYwbV19aGg9KUEwYVtFfEpoOGhWVHBuVGc6eilfaT03eDtQR0tgLkB6fnNAWmtMMUIrcm8sc10iYkswXXAwYGNsUjhUezRKS2FrTDFFWzU3LDdgUVlkKE0od1FwZFIwenNueFJMRShHQiV1blNhamZqY3xhdlRyRD1HTElbeU99LE9N'@; put 'eCQ7Q1J7PWUrfV1WblpnKXNBfWRbe1ZAclNXV3NwMzRVNXpwM3l7WGoxdTxUbTcmJVtAP2s8PjpUeyE3eGtYVm9FN2JsKTplV0hZMFVBZCQ2NSo+RWwvW2tgTzFnMjRqRGV5ImRYOiNOTTlacD1eZTlKXj9bKURIM3pwOWRyUk9oNSpkMzFNUlsqZTh5ISxYPn4xVlU/aDYpQGoieTBoLDg3ezgh'@; put 'cE8+RUdYVSlxUDZSfHdsUzdzZT13dzJEYWs7MWdwLD0zNnhwaTtBcilBdzw8KC97PiJZeUBmZ1hMW18ueDFlZkV8eX1fYVNPZit0b35NSlQ5ZHdscW9xKEg0S2Z4cXVOWDtOPkB5c1M7Xl82Tj9kOyVVMFklcT8rUWo1ODpNWFU9K29vdXlXQ3F0dmwkW0w2LEAyISpieTkpM3YlcWtdRl4zTzYw'@; put 'W1lmJC9LPHk5OnJtXVUxbVFtTVN9OVBBKDFyM3NZeTU6TCxlNUF9UjFRPV1IKFtiSCpDRXsmMSYxO31iJitBfjJmN3wiNXhxe0hxeVBlIUp0ZDUsTkdmJnd6IURKanlQbSlncSFHNSlwNT1peWQxLkd0KGt7fTxLc2ZPdXhKeEd3VC8iLG1PIlpFKiU1NnwrJiNxPT1LWkNDcHs0Sm1fNUpeOVh6'@; put 'WCR6K0UoMTc5WTNeYjF9YVNqNkZGUjhdP2BKPV1Ie2AjYH1LdS9+bSxdT1s/YFZ6d0x2Jkx3UkY2XmssUUdGe3w2JU44d0s/JFswV1MjSGA6YzFETSxvJGEjcTU9e0o8WCM3WCU+Q010Smd9aCNqbSZqX150YWdPSzZSWjlWKGNOWFduMFFjfW0hfkpuT20za1JpQmBoODJeQGYxQlI7KWJUOixf'@; put 'dn08R09NYlN+ZkhSVEQuPlVacDQoN2c/Zz1IZXojK0l8Y3old3Bpe0kjcFNsJCtka0EsbWQ2VnEyeHdnT1oqdHZ4cU9tNFZZQ0tYZ35sP0tnZj8vKS5ZSDxkNX55VDhRMHFFI0ttZVA3RH1nNyg7ZSQ/YiN8QSZMay5qVXd6aTMxdG0kR05DKChTYWUhYlpFYDo6LDFhZWJOSVgmW2JXK2VRNjVd'@; put 'c3tnUU4mNVlnUUIwd3oqezYvP1s+OGN2WG5HNVRNKmV6aiNJbWd1UUYsX2h0ViRxOmZ1UUBDekQ6LlVJUWBaWER+TnR6U082XnxSPX4zbnkzcyglPVpkMXNwcG84RyltJnx9NVMyYE9Dd0IuImdKcCk/fE5MU29mX0JtJHp1Jk5KTWQwMClCLnA1RXZdQGI/el1fL3dBckIwLk9UOFoiInZQR3lb'@; put 'YkZlbUgyLEBrWzsyNU08dFZtJEhufm8kX2gkPiR0VisqSGtvfkFLezZ5MUhWMFB0dCM+ITwqQFU2azVvMm9VaF4/ZDovd1hgKWBnTmxCYHRvYFlZRmx7bDshY308fFpDTGFve3F2eEBOS1pHdmZOaGVIWTtAKnlDJnt3OTtYRlk5VjhATFUvYEJYUTxiU316UF1SaEdfKjFVNFtgSCZJVmEmV0Yy'@; put 'KXwjMGZWVVo9Z24waWI0W2oqZD03amJjS0clYkM1b2ttO2IxcSR0Nlg2RmpLOWtlV0YqcVdjfVp6bClrIiNCdXwoc1lDZ1lGLygkaCExWFVNW3NnYnNxbjpaQkBQXWZiYj02WEpTVWRSNiJSIlJINmM5PGo/M1B2fDF4Tz9FZ1ZSPEFKRmxNJHNRIXFoSTl2RiZrdH1NeT1DMnoxREB6WFNsZndv'@; put 'Ol9pczIjUGlaclZ+O1tZRVFOU0AlUz5mU2ZGelBbYWlbTDF+dWhEQzNUd2okc1Z+b2I2W017JltSRFEkYnZpMlEjNkZ7Ozp0byt8XU9bbzhOL2o7NVJDZ1NtUEpZYE9mQzdhdiYuWmxhWWNLXVBaOzpyJVVHZkN2OS9AP1t1SEY6d0d+MzI2WnM9bFVmW2JyUSh3M35RMjNTa2ZCUjJeQkdIR2Vo'@; put 'dEdpQTI8M1FiI2QqVSw8aSI4IlRCa0pNP3NfeD15UUF3VyN3T0NFRE1nWiQ0OEY9NFgyVkByZyoydUxxaiYhamZSUGlhc107NlQ2a0NEeXlFNUR5RHwkMiExa1tAS2YzcUp4OTtAZGRPcz1MInJJPn54cSQre0lJUz8hZHI5I2lZKWxgPmx+Ono4KDVNXXlSd2dxaiJJKEczX3YxfTYvYjhOZEZs'@; put 'XXR9Qnh7Ond8QEA5Wn03aTF6eFgqOXtKIVQ4ZCFNOFpWKml2bEdULCwwcXA4NCtOcmthVFcsVnZmQGtic3IzXmBvN0JqeG48THxhdlRfSj9pSVFAOEhpNWZQKTB9QyFNaV1VRVdXJTE2Un1YVHB4cXlfQEt8K0l9ImxwbyhAcnd8VF83JWdubSRoKClvNH0vdEtpUUNwbzBqcmhhRXgxYFUsXjw/'@; put 'JTx2e2hzajZIcXZtVVhNaXUuX19FdVR5Q3NQMjppUihKQ0lSaj5aIUAxOWI5U3NvNzVSVk9UQ3VqaHYrJWoocEQxRlJUOHlQWywvd1IpVlVHZmhrX2luQGlSRSNtTlgyWFdCOiEmSjMyMWBTdXJbRS9AJXE3RFFaZnArLE5UZUsvbHFUYjY4O1N9Uzcja0FFKmcqSn55dmhsd3RtTEpfO040Yldf'@; put 'JUZHZG1yOH01eiN1aCROYEB1PlVMMkYkL3ttUEsjYV4pJCVwWDxJfFdMMygrXWlXZ0VsT252SlcveHA2KmJqV0lkY3AmMFJOV1YpLjhQUSRQNVl+PC5dZWlwUjM8MHc+bFsreWloZT8oW0BdQ1tDOVMpU2U4W3ZRI1c5NHhIbDNafWtMPF1GZDY6bHJOPjFiMXVPbU9AbUdWVylTaSZXPU5+UVQ4'@; put 'Xmp1b1dwOix8Ii9GYWsiWjhjezphITh6Q0gkKGJ+em9QQy48Qmxxen1wTDNjTFUuYShIbHhsPSxSfX0iYDUqOnxRKzxpMyRwcjJLdiYlWWl+UyIzaztuYWJHO2coY0M2Q0lJPUp3fl13e3wxcGt2a3RNajtVXl8rVmREXkIxeSR7aHkkYDVvXkJuPDZdd3dAJCRZKiZPSSR2UV5pWGFxVDU9VShL'@; put 'fG1NJVIxRCF3WzRBV0hfYEguRyh1YCtgPzp1cG9HKDZmbUc1cGF6YWk7clU2PXA8a3smVEZ3Jk55JSUxNCJLLiMudCFfWUtzX0w1XUojM10pa1UvO1hBXlFBdklnL2tSPVJTSE58PnM4VC8rI2ZCI1BYMDtLcXtGKj85LE5OJnAkLCtAa3RGNVliV3QxPixKQEpRbnlQMCJyI1clI0d+aHI6Q09J'@; put 'Y2RCUV9NNjV1amtfK09RRSY0N3NBR0cofl09T1FFVj9eb3BLLmg/dUNYbT1xJlZfTnNzWVY5TjM8S3kvdVZ0RmMkWD1KZ1R7SWckZG14a3tSfV9AWjczMD8lYnswOCl7OGhxR1cxeG08YWxMM3QyZ2dscXpRUlppfmkqUlJHOTg4ISY8TiRiS0AlL2FfNjdQN2EsMXN5dHRbaHJGIToyb2d1SXJL'@; put 'Zn1oRklMbXshOzh3PDVIZzxqUnE1clMvVCthezA3UihjcWtLUjteNktdPHcvVXtifCtFbUgidH1eTmhtdjBmeiFCdSg/MiszbngxdTkwaGVyJXgvIlB3Wy9MSH1DKFE4WjMwRz0kTTlSPSx3MTwjb3B9alU2WEVPI29PQ1tZUzghYFJtSWNUMUlSPEw+S3deL0xaKVUzTV04WGAhdSIoZmNPeHFP'@; put 'ezVqckU3RGp8LlBDNlk4YXRlVWo3Y049bWAiVnQ+N2BTTVQpcXNFW1RaZmxAQl9LcG0je0paVTxzeHZwKkgmanVTQUo3OlMyRDpPUypALi8pQDx4a3ZwbngxRT9vI3IpPiJ+QF1nMFYkbW5mbiNZamlOKCF+Xm01MnhHISFLW25CayJ4USRIMWVEencoQ2hXdkJ2OEdrLEJ3TUdgTlhYPz59PGNZ'@; put 'OkBgb29LXVp6az5pYjtePGk0Pj0mPyRsdigmUUgsK35hRUFgMX1UJE05azo6Ry5VQ1g8QFFZakg2InxWJGNHfENHNk5fI0NEeT08QUshKiVDRW48ZyQ5N1p1X0BqTEtWRz95MHI4SSUxJjEsRTRqeV1pIzpmYmM+UzNwT0hWU21Neng2K2x5QEtjISZiVyN2SHwlYWk/IU5oPE56cSxdd10oW3Ik'@; put 'ZTVIdDFNL0shLDp7JEdqOXUpLDhvS3FeSWVfYjhmQFtPZlh3QWE+OyEuUTFNTFZ3MTFNPD9dRnZPRm9vNCpUdldsND1fbjBhb3I1aDhbS0pga14uSjJIW0FqK1lmQl0zVjJFZkgyRkJ5fDF8LHt5cmJuJnlhMUEyKmckXXZgaFFeazFEJWdXSSVfZmtYYF03cDgkUn40ZF1YJUg/cmwiWkZwelo8'@; put 'az0lP20+ZGouK0s7aVZnYXhrI0owT0lOLl5JOjs5Xm9RamF3Tm81PywjR0JANSJHRCU3dkxOPGhvdjBHPUNbIzBld0FTWyM9SHxKMjZrY2wvamMuW3dOV3A7L0JoM1hxTXZPP3J2dDtbNix4SSxrTCVddjFHbHhgRCpRSDZCWlN3QGNObWFUWm1kMSYxKC5ETH0wIXxvWWBsO0srPDZXYlkiL0Mx'@; put 'K0ExREE8ekdQSFRMUUI8NFlyOk5ZRS9CP2s/MFdOIyk+RT9pc3RaUFQ1ZVNzSDk0bFNkYUVpPm5DJF1RLGZRMlA2NChCTk4keVFWdmoyXnVCISRQfE9uWm5SJEV0Y3VKSnVOWVNkWnZnUi5oQUlQNUkwWE9hYXthX0hZbVVqLmNmR3c8YHY0OlhQfnQ9YkQjN3VCJEROWFB7dE9ORjxzNkFnOkZq'@; put 'RU91U3Y3cVEyUkN2T2VmeExtSGpMTV0rRiRaL0ZUXnNFTUNWY1J2ZiFhOyRJVVk3VzgqQFFndTRxQDJsUk1FcSJtblpJbzd1dXoiPDdLUk1PSWpsYStjOSw5eF1kLERpR1MuTUBwYiZ3eiEmJFBULCouV2w2R0dsL3g4MEV0KV15ZGwwd1Y3UWovW19gWldIWHEreHhrdW9PZFgxWjo3YFomRCNf'@; put 'RWFESD1CUVJGJDtIL0JZQWdNSikmPHh6WCsiKFNHPmtURHxTemxiN1tdeWpFRTFqcjZSUGI3d2Z5ZDdCJC84Q1F9fHp9IXZiKCpbbld1RC89RERPSjBzUFgoOFtBZG1dNT0zTzY+Nlg9SH0lUFZ+fSJNRVcldlowI1BudHJsYj85WzVhR3Q4P1d0SU42a0d0LCF5fXVJd0RkNSlVXyo8XjdQL0Rk'@; put 'NVpyaVQ1YTFKd3xAe1tEXzAjazNUe1JXV2ddNXpvXldjcDteQjdTcUo3bWdpNU08LGY6PlduejhCMjFxT3dqfWUuQzpbWlpMeW9AaDpMSFU9dCk0Sj4/JEZbPX5AUThbUWtCb1p2R21XNlkzU3F3eGx8Rzp8SEIiaCNZR0xOdD9gd101PThQOlFyb0kiZHxfcUhjb1pffDVNciF0OCEoQWRPSjAk'@; put 'IjNHM1l9L0JaP05FfiJ2a0VFPTR9WGBreEZYKitUQEpeMlg+WkRgVkdHbyV1b0BScilCZFk6O0ZbUH57eWRIU1p6PTx5MHY8I0clPkc5STJ7Xks3SDtOaSVMLGZuZ2IoeDljNkoyU1IqJnxsSGZoayVfKVJzRWg3VHl0S1NoZUxEaTZrbEpzdndMR2N2MWxVLzBjIzo2WnJ+QjIvO01lUiF+T3Nj'@; put 'dlJxe3ZecSJCPzQ1JGU1Wm55MTZ2WkJYXkBTRFsqN09PfXcxciY8MWEqZzBRTyIzN0UobzxySWNYYnN3YGhrYXN3YDU8Yk9Bfi4yKHpBZEBGPU1NT1Y6LkxbeS46ZHNNUHc2K1soJXJOUDR0TDd9O0dmdkZeQE8/Jkg/MFBNbT1Yc21oNVJmeHE4PyVHIz12KGJ6MXEoRUpWfihGaXpHNUIyODNJ'@; put 'T3h1aVI1NitkY09aZDRRfUh6e1Q8NCg/eUs0Nlh6Oyx6Pk9+MHpIdlhtMFNmX2dFYiRUbitzeHpaSjBdTzdwfjRYWj9Mb3puOHRpP1o2aVV2VCRVZlE7VXssWzwwKUQlJVVub1EmcntKc09RWUZYNmw7Y140UGBJU25wakBKK2RbSXpiQUpYZGVYIjldTk5wP1pNSGtJO09hSzBHNktSaF0kRE9e'@; put 'UCRCSCo8UUFgUSoqVjdSW0tTPyIudEh4Kz9YdHlaZ1szRUc1PnhWe2B1fEVvZ3dBJWcobFkjQkFLdGJHe2gmdWJfQHxkfGFoYUtfP0dYVXB+NUg/R0R+JCMjWS81T2J+Km1gQ1UiMXM6KXNAYklSQjhWKF9hKXo4IzxRcy9mbj9YUyU5S0x9aUAkYyhHJXFDclYqUVtGOihzLDBrfG5END0vJEQo'@; put 'fls+W2kqQD5Jbns1YmMpMlBtbHtePjBUdl4/ImhpQH1KX3c3cEQ/fVR7PkJyTVUqNUc7X2lAd0RqYlV0Wmc9N2kpVHteQ3B2STF2W1dLUHZ9cjwiaT9TcnNpdDRKZm46TTN2UERUeXFWJXdiSUU9KUskZE5tQClQaWV+LldgQVlLUUspdD89MUNzST5bUlFucFIzV3xXWE9UUiNYZXc4eT1PTVJF'@; put 'UDpfO0FRWi5kPzEsIThkWT43TEt4ey83JD5tSzFPdn1DLHhTNWMmJXNoKUYxMURIPk1nQ1NwSCsyIUwpVyg4JHMkJndGTlh3I1c6MmNwa3hKYE9QdGx5ZSI+dWprSk42VSElbTwifGljPiVfNDtOVTF4PGZlN2VNSFllOmREbnJSPz5qZTEyWUR5ZyZ0XjtqWiNYRVgialpydkhBWDkyPSwjblk+'@; put 'K2gpMkEzTHFyJGU1NDRrRWZbWTlERDslIUB1Q3dDP1I6WTAjRU1hR3Ehc2I/LGBUTjwoTktnVVlvNXNiVSRvd0JJMC8lLyQwX2ZWKngqU1Z5OG1VWG0uejpRbVglR3B1Mk1EWCpmTWFnKjprSX1XcGI9fFIxN0dRNXBpPkhRUWk2My4qPVt0SS5ZZyowSFheOlYhdEZOb0VdVys7XXZWJXZ5Ki5J'@; put 'VGBOZXlXQ1FOdUVxWGM7PEZrLiZEI041KDdnYSFwaDpZVHFXfCM0Vn15XT5CVUJNMWRaYzZVd0k9RiFga28sOklPUTowOFFnTFAkN0xZREBFXzRbQiJJdGAzd2xqJGtRbiVZNnxSWjErIzBdI1JMMzkwQnYxV2hJKGNHTlJqbXFVeVptNio5fEokNHZGN042SyozJFlaUlZxSjorImZvQnNAY2xy'@; put 'WD91Rj8odUZOcF4sLzF0dEQ9bEVhWkdSYEg5dilmJHF8ZHw6O0N4MGdHIzxFZXlvOyV+QSpnSSZNOSxoL0AiWFFlb141LERrTmVCPVRXZDFyTl9OOlJbfVNhZ1YxbihHRy9dNC8xMlJ2VWAmbG85T0tFQUgxUlFqT1l2UDc/eWlxRUhgdSozemBZekI5OCpDe2UjblB3cHc/YEFhJEVHdHJddVkq'@; put 'WWJ1R1BnfGpWNVlfXl90LFk+dChSeWxHKy5hVjJGVDkpQmxfaUdvTDRsazdCYkt3TCJ5Nj0hRGR0RWYmJjxRVk41dHFDfGFKZDs8dkBnc2FPR05FT3AyIkxoTz9LOm04IVtjbWNBNk4/SDR1fjtpR1VSd2JacDRHPnozfE1BM3EmSU1KSF9HPXpQVm0mMkVRbD8hPFpdPUJPYEBDK2wreHhKbjov'@; put 'Jik4W2NHZy9ybHY1MU5sU2A6dTVlaTswVHE1R3BlSyNhUzF0YXt9NlU8Wzxbd1I6LjxdPSYjKXg+VTpLVVRdbj94YFg5bXVENTsocEgkZWA7eUZfTSpzQyllWEpVNjAkPkl5VmErTWw2TUgkeiZFZCFNTXZUdUJJdHhYJmAvODY8ZHx1RVRwMGcuOVUuMClfdSxjd0FSa3B9IXJAKD1tTilwZDBI'@; put 'fFcpOWZXSWAya2dhYltAXVNmY1ZtIlFkWDlkXVB4SWZTemJ3NEAxSHI7Nl0vODZ0NmpGMUQ8X0lSSTtPU3FneG9fQD85NVtPSjIxV2JpdUJ8ZlhCX0Q+Q11mJllrfCpBLmlDcGdFUkp6eSoyVmBfK3hWPFckc1JyaENUXT5qZztIcFZAV2ZpSlRISWZjWD4vTSJfb1lIVXU8TFNxN3ZJU1ouLFFy'@; put 'enosXUlqcm97RWJHIyErVDxPPkhsS3omYHtTPiUxSyhQUiNKMVp0Jk85NF18UjpiWklpbzBOMW1pbT4hS3ozJjRQa21PNX18TjReVE5je081aFowRjVlNVdnZEo7OSp1TFBVRWY1QDEoQC4sZE9BbmUpK2pZImN7NFNJOnxmZnl4MW01Ulc6T1lmO00mdyxZWXZVRlB6aEwxd2BSbkJLaS9ONnk9'@; put 'TzNzUzpaYjU9bDYpJTQ1UyR7ISR2ZlB7Jl48MWFKWzdVdVZkSF41U3BQVClBVF8uT2J1KC96QVBhMTRvI2BhWD57VlE1QHBAUld6YnQ1YmVwZCN8dVA/W2guSTUmIy5PeSEyNlBjUjpqLF1Dcl9mJl02PEg4WlJRUiFoLn1DIWlSUX4wVXVmejxyZkAmXnpVd0hdbWFVUy43STI8TlM1KHcpImVO'@; put 'MExvYSlaKjNaVm45UjJfe2Q7Z1RYNT10Z0RdPHs5dG0vTFFqPklzb05bTVhMdXlvX3kuMSwlPE1eaGhTR1FrbUJuMG1tNEFVYGxSfGQuMmAsR0RFd21NZzVwUT1CaDo8OTttW2FdUlthVTEyUVs/NHArQ1RzIWFOSixnPE9+b3sqZDJzS051JW1OJGJfU3JOeWwxK35QVCR8W3s6d2pDbz1hZXls'@; put 'SShHYDxWQGhLMD91K1ltczU2OzFUK2NiU2BTbGV1cmdKQUszeVkmPi5ecUB7dXEwYnJWZDhXWHchQXBEO3IxNixhLDMxRmVhZyYweFt5Xj0kc1pwMFZQSTwrPFQ6MyUvRHh7WXBFPDxnXnVaPEk7UCZUeUN8bWdtbCMqKFsqQl5kMkolVFdJQWU4PlZaVlVRaFVLMF1PN2BCe0M0Z2g/WnVON3pv'@; put 'Ok57L3tfbH1nVCYoKy49PHFwP2dmc107R1BfU1s1VGlMeH5NMWw+O3NRLCl4O0B+QGUicjRVSCxncygjOSxRZFhAM2hCXTZqSC5sMiIsMnomLFEkfG99Zmh9bV1XOCJWWFpMOE8xL2dhcDY1LzptOVVSVTlfRUdCK2QyWFRyVm97U3V3UEtKSz8rX1Z6XkRsaGFuSyYwa1NLUFFWWSpReVtMPVlI'@; put 'LmlKOndVKHkwRVNoOD59dltaYUZndislL1dkaSNFXSFiNG09NyFmMkoxLF48cThAK19WNG0lfERqbHtuRD5JQFhUJW08SWQwdlI2TV1lM31dRXAhISxGYl1LeVFaQXxqVkhsaGdnRlFbRjBbJjpiW0AlPWZGNG1dW0MlJE00dkZGfl45b3Z2YjJ5eVF7b3dXPCZPcUtJRjVedHx5eyhbS3E0QG1r'@; put 'bD8oemFjdWE7JUU1ZS4pVkRsdkVrcnwiNDxoJENGZi4/d3lxd29rVlFmejpmbXcjaSk9Oj9YMTdFP21sX2V+Pm1sQW9WPU9YOWFRRmc4OiE9TmhVSkZMNnx1cmhwMGxZVzpNNT9jbHMrZClHWGFoOHkwNHtGdzJpLzcuTCxhVGlGVEJkNzJxSHNkMTk6emJMUmFBb1dWfW1lUGYrP2N2XTUzY1Qv'@; put 'fFR0Vmw8LGhvTks0V1UhYlRDSFpWZ3A6YVYsODIyRDZLYT0hU3IpUTpWdV91IjVTdmJwdFFiRTNdWFpoJmUhck40akY4e3k3JS5KLFpIKWAodlB3bEZROVZbZW5RRj5UKmhEX1ZMO21OQEtkIXVsKjBdNHcjan1HPEg2YGQpI3Qsa2BLWzNRa3hNNjp3WmtUYU07MiRuUD1yIjw5JlNwWiNIPT06'@; put 'SzZkLDRVezp6YCh8JTt+aUl+JDZyaFg2clpNOzYlcmxbZTRqcG08cHZ8RiNRNm97R2Rrdkx+M3dMfjxhKnI+elcxQnwhfXo0LHs5cmgyT3ZIPT06PHNhIXtbRHhOW25eJlVNaF5sdER8R3t3IWQoOXIlKTxIcmgvUi5FWVRBQUFdekFBe1F7eWpYWlldd29OR3AsJUdIXlhWUnsxVFB6aXBMbVgj'@; put 'KkF3QUFBQUFBQUFBQUlBeiE+b2dELC5kazJgbnU1bn5yZzcheEkvSi93eTwsKWI0d047Yz45L1gsUmZhIVVudlVUbkkiOVJ5Vl1QeSRbSzw2YTU5dWtXUHtFKnw/K2FhPUJhZ3lbTGpIPjJgZWZCZHd2cVhWdEI0aHU8dzNhI35IMDc1KX4oQVhkdD00cjNPNTdQbSR2Z2VDV3BiJl0oY0wjanw9'@; put 'OExQM1V4VjhzbUN9NEpVc0t7Zj9PKUZpfE95TTtKck1dQ1JCVG8wTnVVYDM5bXJFSHZUeDZdKFJnLEtBNmtgSjA7KF11R1MlJmswcXEkMFB+JF5zRnk4RVl7bCE7PjVmUCs/VXpHU1YzeD9PZnpQd0VjYkdFYHovcVhBeURLd0RDQGAqUUZEYDNDRHBeSD5tS1t8Rk1wfTNzfV17O0QmWiVbOzFC'@; put 'c1FXcSlOPlcsSiYmIUd9L3VjYSlnfU1Sc3B+ZCp0RkowTipgVHl+VzUwPTBYWkV+QTg8XUlYb14uenRzKmloTiMpYUE7eFlleEN9bGFLaFhLKEI2d18+UzI4THp7dlg0RFE/bW0wYzpKe1RHaygjYDpaP31kXkYvfCg0fSRpNnlsKjtHQntkUl1YSkxLelBGeCo0Nj1nTThHbyNjZDlaZ3xdUEBx'@; put 'VG00YUFPUSY4cUp0I3k2RCE0dFttQGF5Yk94Z2RrPVQ7WEloaCRea1dgRVpLY3dXVUJRbW9MMj0mY1d+fiQ3OkxkNVtFIVg7OjQmcnQhRSRVRzBYeT1GR19vOjVyemNATGYrVTN3PSUvfkxMK0s7ODIwND4jLlAuW2d1d3BCaFgwUUYrWVI/dEJUXUciTHIhREhba1FhT0ZHNVt9SSRyWyNBVE9L'@; put 'ZkZCfDZ3RiZzWnxjaCwlKjdJXnQkL25aTHomWnRNPWR4NTlYamUhOUw/eSVbNkNfO2pqYDBAdVF4cHBbTjVucyY8Vk43RElRb2l8PVJ8OWUpS3Y2NmpXPGEjLEVjTldQJXVNMDgxUEgpOmReLnFTOm47TmFyaGBZQFtzLiYuOC92d3pNdWdiOj5hdF1uPEleMGh5U2coVDIjXkYrcD54aD16cFE2'@; put 'TSZHVEt7Il4hfktQakpieiFdUHtrNlRkLlZLdUdCVlsidzQ7cmhSUHtHQ3cwd3JBPGBXPF13fmMjTy9hdnVfQmNsPDFRTTY8ZGNibTpGUnQ+KkxUbnZ8UzRReGlbT3N9ZVZnVHJ0dCN6b0soTDRiYHUvVjYicEZwLyV+RFUzV3g3ISI6QSZAWFtyZk9+UyxrbEZrYnNPNClTXlpdPD9QRjFzVmFU'@; put 'Ni9nW3l3PnM0S0xdSytbeCQhVFlVUzA9aUVwLHJ7IWImVl5JWGddMmApLG9VaVhwK15NbEFoemB2fElUMlY8IWdiKWBJdXIudUlxbzlpTi4lMkpiZDoiWERXfisoaUZXJkQ8L2kqUHQhJnJFfUpTTihvIXVvNnloaXxea1pkPmlFN29xIWJyS1YrY1NqYGlbLlcvUFtValdSeSRjWG1SMilQb3kw'@; put 'LzNpP0tNOGRqTS9YU2pOYG4hIkZrSzQ7YSgyVU89VnhnZCtUZU8mPCNRc3oiQGFZZFJ+LkJ6PCpnP1IsfU1YVmA0UmJtfG0vSTU4IypAOEMreCRUciN2SiFZNDdGa1U9YF9SWGteKCZXbVNLPzdVNVFxPlo4Nn0+UShxXTRRbWx7JGcqamgwPTFWKzVLaTBRLDx+THZYXVNGJj4wMXg2UFJmdjU5'@; put 'eC9ffl93UnRFWHt5RW96MWgmT2tQTmUvMlhGR3doYHVDLm9YRzpDWS5vbWhtYSxyYl0xQT1oMW5CRihIMGNBeSYqTU9kTldOaE46bFZCOlYpbT9oMyp2R0ZXdjNVbGo/RUUqQmMlQT5tYyMsIXZbfV4qQnR2RlFyVHdPeHI1eDc2K3BFfColYmg5UkMxW2lTQm9QPmlheUdQZTN4cldAMkdyUHhP'@; put 'dUpCNFtJSHYweCJJRnswMEcyfCRoI0JaLH19cnN1UFNEUUc5NVk3PCNiR2xPQmQqJXJqdDVOLz9fY1M4RlglaGMxPl1OdlsoUVJKfVdnW0l7UTRYKl8wYjQqLF1sOClKRWh4TDQpcmVqSEEodkczZT8uR11VKEglP3xEI2lnTEpYbkJseFk5aUZVcExrQ1BrXkImKUQlIT99Zl0jfG5TWnNUMSl3'@; put 'SC8uZmlZUEZDeExJSV9bSU4oWjNLJjlLSC43I2Jue2hEb090Zy4pJENEN1JRbipSdzRNX3JSRUtLUXptUyo+L1dSIVEyaUR8UyEudEY4XSNPQ2ZRSHNNVkxfJjAmXlhLRntlSXFidXJXYzwlZ0l3dV4oQng6aj81Ozw7LFE4fXtPMm17eiNadzcmSUVgUVZwLkQoR2U8cy5RIj1QdDlKIW8mLmVJ'@; put 'PG9TKG0sV0JUN2tBSTZFPCk7NUU/KmQ0RHZLPCs5by8/L251Kld8VjZVSWhyZiN0L11ZJS5wYDpjYD1nSUliRVNpQCpBd0AzLnltdXhkeHExSGg9e1tsdWF4ZHV0fi9aZWFlPnJebGtEMTEoMUooWWFwIlZ3byooRnwzdyZ3e0lYV2ZvbFpHYG8uZllUdUUxITFdMUFSInFURDk6ZDQqMG4xdFBd'@; put 'fk14KXdJbUsqeVlMVEteUT5dZm9GKmxlSnZYPEsqVjJJMDcoY2ZjdFY6TXpVamBQViprdEMsLG86K3hRZ1hrJXNYdnV9MUJTYkg8LzBbX2VRL18iZVdDTG5zKTA0dDtFUE9lNlFoN3pDQnAxXlZFbFAmNXNVVmZXRGNNNkVdcnVQNEJrPV03eTVJIXQhaVpFcGJNRkgmN0NIY11fWDBNQ3RyP2VC'@; put 'IWkkMSpQbzFxOTh6UEppLjB5UFBDPlM7TmZafnl3XntQMlNXazc4Jj1AJjx2KnJUM3k2eTJbJVdxXnRLSHRFamU7ZXVCTzdGeHw/NE8ib1BzUmBEXWF3T01lYSl+QjBrZylSQD5feDV3ZkdPWW4zbT5xdiR8NiokKDhqVUA7dW1tRDU7Nz8iUz5fMV9ed3goNGM8W3pBb3puRU0xYWMhfkg1dktI'@; put 'TEE0MGw0T31jWUNASmk0MlVgN08pUCVeSz5DPmgzIzsoQiZbNWo5LGhXUz5Rb1YyQSlZPk14YTVYKlE6aHA9cE5EKEhoWCJWI3pzWmhEbUo1KllbI1V0XmM0YXcjX1VwWmpvcENAd3BxPjw/Uk8/WiVuPj5hWjBCUztDODBDeWYhUXV2a1RKaHYpQnNVKTkqMzQjYzl4aXYrfjVRZGMkO1IqTkxJ'@; put 'Uz9pTz0vKi9qKlhBPUpqWnEvd1tFYDo1cH1XIi9EUnxkM2AkJF18fnIxWEE4JWY0aT56VzQyM10oSGUuPytgIzs2VmZzNDIpaGo6WFYmNCI5RipSOipgV3M0OjlwX1omNTB7W1tqPkFXMUsqSFBhMDoyVVdCa3g4PklYQ21CZmFvYTBQXnFfSDIkLkZrSXB6InlwWjdtU2JnPWV7en1xV086QkNh'@; put 'ezF2PjNodndJRko4SVA1I2x3d3p3Ykc3PCRLTFkxLldpZHF+MW80UjdpRClDcHV3LkhuI2RaSCxLbDFJMD49dld+NEQ3S3ltTDtYPHRnV3JMKjJBKGMmPkdddSRGKkgrRlBfNiVUfWFHKy9QV0RfTD08JkUwVTUvfU1NM1kuMWo2IkczMDkxQHptS0ExbXprUkFlfkE/STJZKzlTZFc/QDRkWWxv'@; put 'aUxfQCgpTDlGXTU6Kl51JiwlfS86L31yU0xZUTsicVU5VVtIaSljNTEwb2JLMko3N2huK3Y9e2IocGZCISxsVzxyOGJzWSFhUzBkITtQe0J7Szg/XVQva1IwWUlrISVPdywlTHtYQXJ4T0dXTTJuZUwxTXYwWVlCIn1FJEhGfU8mdTgoenx0KkAxfC5ldlo0djVnNWxYSj1qN1FZPjxJU1liak4q'@; put 'UkBGUExVVCM6XXVjMkt6bDhARDYpaFlmRjZ7ZSZqajM9YGpha2VKczRuI2NGNWFsQmd6Mkg8LEtTJjdLNjZ7azglRm5zb1dmcilfNXtBfHB4YWx3Oyo7KmVvQ1NKOVU1Y0g4SmpReEtRJXNNImhUPj9VMEF4VSM6YSxzN3dmdDs2KmldbWRkcEQpYXRsZSYhKmJVPGEqO2lsW18maEgxUnZTKy9v'@; put 'fVBuN0kzKzNmJFFZWiQsN0t6YEJMUnVrIi5iKndaVFVqRGVrajk+KDRJYz9QMU4+NXMoU0N0aXBWTUdnd0dZQG8wZ0BIWnM/Om12JTQ/KkFjfGk3fjFuWW9eSXlBeXVOflA5XUh6Ok9IIiRMTmtJfDBgNlNabEBZcVsiKEVsV1hmbXs0bFYuTD94WShfJFY7Y0QwYjQoJnVfZHFmPDxdMmdhMjRq'@; put 'SFgmfkd2cG12NDF3Wjs1cmh2KXlyYjdRYDZqQU0icmFKU2l7fGQ7cHAlRHRVIjYqVnc3UXZReUIqZ35aSntsdCMjQGBbPU4vVktnRkBMbkhYV0NKZiNedFQ6eUoyaVB9X3FZOUsvOEY1aiwkZzBPYGFoNX5ldDRQez4pcnlTRlslZlliMzN2Ikp+V2hAVjVaKFFWQVYpMXZgSV8vPyo2VGA5fn56'@; put 'XVl9d2dMU3NnRW9lNWR+bFo3P0g0RzJKP3pYJWw9fSFHXkgyW0lDRVUmZGJ4JkZ7VGB6bTckKDtvTXF7TCxfWEtrRkYlLnBvOmw1VWohfnk0S1Jge1JKTzUoOGEjV2kuRzlxQ0gyZ3c2LztjPHMvaENAbT9FVnc6eU9vbW5HOW0sWmwzK2tLciMqNFpAJWpSSFAlRWIzYEBBWyg9bmJRIXNbdjVg'@; put 'RG5xUH5CKSs2InpOJG0pdS4oXTlPTDIjTk06SXJnITVCV3xYK0tYcEJrRElua2Iwbzk3Qn16O0QzLikrTCUyZUtARV46KFYzVXNBZkBWOEhdKm81bll+LENPXjptJTNTdVdKWyFwby85YEpLXnlXeERsWDBZKVErKyMoOkhFNTIlKkZmQkFZXSNfNXpWUCltWDcjIzRGM0RkM1hNQH55UGVfKS5q'@; put 'T0JIMGgjNXI6X2VZWzRUfSQ0em8iVj5DdkxSaVlZWEtlMFpbQih6Lj5fN1JmMSs6UUdDWCQ7ISRIciQxfG9sVXpjJEUsUHUuZ19+Pi9OYjgyMU5tKU9Hb2BaPzczYHhoKlhAZz15RWBiLzBvNEBmeyZ8azBUeCk4VDZIZU4hOkFTRSN0IjpNTXl0TDd2SVZWZzM4KW1lOT5ldiN1WypQbyVMbHAj'@; put 'X2F6JEtlK2t8SkJCSDNje21kQD9SIlEpUjJXWEpnU0poNjQkV2hAandnYWI9IkZgYzZMbV1lZi4jJkYoUlRveXBKMyVqMGQ8eUlMVWk9bCVwNyFNMS4ySENiTl1kfC8pTWlCQStySV4hJCZdOSlYbyQqVzY0S0krYSU9KWtTYzFKdDoyWWFAQShydV1lOTgwIXx7P0ZPaGFEdDFqNmdFcGU+PCIo'@; put 'TkQ5X0RlRkM2ZyE6ZDt6XTx5eWAsXTJpQmo0WmFCRE53UXdacHZFfWtAYVU2Ti5VeDVOXlUoT3lNfjxfc295cGZQUnlZSXpkaXp4KV1ddSRoLlJnUn02NHcrRC9OeTQkNU9uOihIZzlBWl9zI2UsITZ1fHZhamw2K2l+TUE0PT59LCsxMy4rcHd3XWFiVVdqV11uUWBfeH49dGQxd0xrOld5SHp4'@; put 'cnNUIXwyViFJPEBPJm1XNkV2WmxVYUl4PnFRc3RvTCVmKURLWHJ7ZmlKTXNdYV4mOUlVPHdQVEgianJwS30zMjUlYXQmI3UybnJlZURiRi84MXQ3TGdTVGVkamNCbFVyP0tbIzBxTF9kbk1mTDZDWGpmRyVWRFArKTI6bTU0eU8pMlVkYX16WCFFUTNYe1FVKFtNKHYzKWp9e0omYCFXWWJ4MHVK'@; put 'RCx+bUt8U01eTXROUV9gfGB5ND1tMGBEcChhYC5EQyRDWzI6UiZDTjN7YVJmMWteKShqWlFCXy80S1E3PXAhdS5RQ3shRzZlQylRaVh5JHsia1hyI1ttKUEkbXl3dS5jXkMiTlE1OGhyIyZQaUJiTDw2U2BeTXl8UWxIQnMyNHwuM0whfG1ZZFN2b3V3d3poOXw7bn4vUExHYWhpTS9ESGRTVDkv'@; put 'Z1c9JWY3LF9TajRmMH1uSE14QV1CdHR+TVNRfWckZSVAWl57WVRIWT08U0EpKWF2JXVjXXd5ejZgIm46RmcyU3ArYSUzKCNqQE94Ml8yYCMuIzg5cllZMl1gcmpDfXdDeFZwVXpEfU01IWZnODlqZ0RKSzMpZX5eKSNoPCUhfiRBS18jI2lLIkQpJjB4IlIkPG99RlBJdXcxQ2FwU2dINW9ROFJ7'@; put 'OnIoVURCaEBAP2YiMUcsUVBkU1deOSY/d0d9ZT1rbTMzQThzJjM2TVRCOTJ3NCJUVWloQGV3fmN9Lj41KW5aTVZ8NUYlOT43LkkvWS91TmciWSUmVEI0RVBbTz95Q2hTLmwzOUApJHQ/X11SKVQ9fXViW0ZhMW51Uk1xeE8hJktpMHNSLHUlcSFIMVRzNzJ3W3dyIzxNLkZKWXMjTz8vTDt7L3Ey'@; put 'LnIyI0s4TkkhKiUiYW0oK0ljW2o+eD1IX0VfJCNnOGRpPldhRHMuMy4icTllQGBITFA/Kn5vUHNNZE5VRWJrNUZic1t2Q3dmRTlXSkVxOTQ4Q0g8fkw/Z2lZO0xeWVRNQjd3eUBnJTZ0KDJkek9eRnI0a0IsX1VHQFF4dFtofE5BK0N5U1ZqJm9KaWY4NVFZOGJgKmg5dS5McUFhUEVeeTUxWSYm'@; put 'OjBoV2lAJmt0MzdudmlMc1VnKkN6TjdfNmE+fCElPVQ4NlV+PV0pPF5HS21aP09ISDtaZiYsMEBpMVk0N0BPcW55XjE0YEJmOWVHazBKWnQxcSY/cShsZWZdQ2NkUyFORTxgKl1GUTM/KFs7WzkqNHJAd3MvbXM3PU0qXWguZCgpQm42YEBWd0Z6XyVjOUkkLEcmUVpPQnFTbExROnltVHchfi9U'@; put 'QUx6bzRyKEtdZ15CLlJ1ciE6XnZASEpsOmlyTzZIPUN9ZSRDMG1QdSMiUX5IRF44ODlQQEc8WiZkSlRAIT9wUEdMLiVjMFA5SnllRDlAIj5oVWRJQlNlIWMwPk5KN0NGY1RNYW19OyVhJUBEPSI+e348aTF5blJCOUAxMTBfLl8ub1tsPV9yIjEpNS9uPi84UjMrUnRxZk1iK3FlO3oyUF0jfDVh'@; put 'P0N+PmRCS1ZWPndKdEdUYEtFVXhGfkksdG5sOzRXQ1RJNj5UYlkkYVldVC83WlVWZ1kqPjBjLnZqKCRHekRoOiZFaFBJPV1RQylvS0xCYU5sNlA3d0trbCR1ZG91Pl1Gc01NN0hYYURTPjtgZGVKan4oWCVHOi4qdDJLfEImejJdZCJ1K2QxdWxfdzpuMFVCYFlZIURpRGZ2T2M6QThVTUIlOWs0'@; put 'UTRnQituMC9HUXtdRHczZDBrMCJLZkxZPS4uM3E5KlNVdVV8dGFEIkxUR2Y0PzMvbSJpLDI5IUs8SXJqTT5pOnV4OFJzRitmVTwvZ0VaI1UrfCY+TkJJIzcjRV5eQjEuSk49PWJ2a0lKMDRtZl88VnFQR3xPMTduMShoVzVsfiIiUyZgMD1sIjtiRDgxZkhVX01mYW5ra01SdkQvdCUleGB9KGZh'@; put 'VE0hM2Z+cEI5MXlARTlgJSFiNFIzRi9jRClXL2kzbzQ8SUwyc0YvVUQ1d090WnVxJUlLMjVGNWgrPmQ6QGUhd15SVk91ZFo3JD43JXgmPnMhTTdfTWNnViZhfjk0Z08kTlNHZi9jU2l5OiFWSnImey5nN2cqfWRUaGAwcFFncmZnJWRSRSZkL2xdbXJRaGBHSz9XWjg6Zy5KOWdPUGByOUZiKGlC'@; put 'MjByZGlAWDQiZmNYZF0lIkEuWU5gJEJUODhdVU9+X1dHanxmMDlSQSxRRGJKODYrT0RfTVoyN0FnInwpaXFNXVV9KEh7XUAvdzRAXVZmR3VVdn4sW3psNGlLQjx3SWFoSl1sOUM8JCY+M2pVM31HZFJ+IXBJPyl5YSFxUiFVV0hQWUV3ZU0jKDQ7RDs3dC5gMzYjRmxNISx2dTdnLDkoOkxlMW1D'@; put 'T0J2NGArbz47KSosLjYqeHYqRlQhUGR5b3Vndz9+S0AmYD4qPUpnOCJEXTIreCQ3YXNYMTo1SWshWSsmOiM5I25fWWIldGRzPGxUXShHb3R8d0smRWB8YjpMP1FKOHo6NnFlbG8pLnVbb31rbmpnNER6QCR1QTJXRitgLGZSI0E7Vl1uIWBXMihaX1p7QlswNVk8diJEV3YufHdGQTVaaSghVmBk'@; put 'YjJPYkdJQnJwPCtxUX1uLjRPPGtReFtdVGA5ZmdxRihlOTpqL1QqY3lwdCo6YFFzSTlXeSUobHVPQ304MUtKUj9lZ0pQREpKdEhFKjJBZW93dV1qUHFFbzBLTH0we3lqU1p6UHtyQ0VwS184Rl1bMDkwfUtDWlVyZTg9TnskZ3Eva29kY0hlPEpxUj0oRFRiO3g2R0xDNWdHPi8wTV5+PT9jN1pG'@; put 'YGxeKHhPZVNdfUUwbGBeMGQkM3VuTzZnI0MzNUJWSV5nOjl4ak90UjFiZmBJVU9oQVJjPTUjQk0jbEtkZlIqV3lCYUY6S2cmYjp+TkN9I19bbWlJNUE0Zz5IP3p3Mj5WXzMmZkx0YGZqUSJeLER8YlA+XWkxfDBlUFtjK2RbcDgyT1FgUEwoM0EyaiIvQCQjYXNYWWppWmhHViZ3ZmxZZTNCOEB8'@; put 'VTd6eVh9KndPND49c1ZhNi5CWiJ7KklfXT1eZiNmakN2OVJWc0k9QF4qYW5maDQrTTt5anApLndQQWZSclIleHB4YUhmTEU2TEZmSkddR1VFaiYjZX5qTnNDV3MxT0VySyw8dFd0cHM1KlNTPDNxQ3hHe29dOEl7V35iRipCeC52WWt9anVrZnB6Rn0yWix1JV5HIyt5WCRNaUcrJjcoNX1FKG06'@; put 'W216cXFEfXdxUUR+dk5BVWUyJWAzIXUrb2x1SCFmeD1qXlhRdzkxQkJ9VUxsckMpQkspdF17Qko1Zi43NXQ3PX1LfipgM0RvenNlUiNSN1d3dixEVD0pTF59US9tSCwmP2V4aH1gRWl4VF0qJlAwe2hMSm9tXj9FbW5VZklHTzk7Zj49U3AyWV8rPjUpSWAvPyRmW1hkTDB3a2t8TjUwO3c1eWhQ'@; put 'KnxHSj1VKyZ1d3NtMTEpTG9bJmZ1YjA3X09XRm9bX3s5LGIkPEJWcTp+JDE1X2dCNXVoe0NzL2g9emd9diRRaUdNUFQ9cWosM0RZLmcicnVGdnVxd0k8PjBBbzwzdGRfV1N8KHMyWCk3ZntmQ3s/QXtJPkUrdiNnJUB6JnRAU0xCWjh5KS9IcVFqb2V3KHVKKGNrYX40cygvJGZyW3RmXXM9IV1u'@; put 'QFV7NixDZVA3Ojd1NXdYaHVOXnFhP3tSSH1tXjJ1XnBkWDo7RTVmN3x9b3tzQSJiczQlbnU/RzUqdlhqK35CX1VrNz46T2tlN1EvLkEjRzpWcD0rKzROQnIvYitVQndYQHJ3Z2lOUCxxO1A4fVF0VD9HcHJyL0d9MF1VYzYocERDO11sL0dJS2VXMj5PfiRvPUB4MyVHcEZgfSppcipYUlh8Q2RZ'@; put 'ZHRHTyomaEZgUjk2PlhuPFcvOEtZb2smWl4lUFEoeTpSYCo8Z0ZtQT5ld294LGBqby99QDw2ZCNFazwkKmhjc2RzRXxPMUl1Yjlea29dWlhqR3F2TSlxWH4jO05SM31BUX5aI3cmdlc/fHxiNix9TGRFZVhfIXdrPnNyTjEqbGZhNkcmWW5jOytRRFt+PFcuSVpEdEMoP3hGKTBMNDkhTW56ZHdp'@; put 'KEReaEVhVzN+eWEkfktMe3M1SFQqRV9GclNLS3A+WT9rNU4jeF5lcGU8Wz00RkU2fDshK0xVVzdXPiwlMENePz9sXXN8V1lfeWMhYnZ8fm5rWW9DdFs3WS9UWUA/LyN3Wy9qRCs+KTBCe2Z8V15jdVZVRE9NLyt+InRGZlBGNlIrUVV5O0V0fVRVXnFFSXBkbVpQPGA1RUgva2pUWlEiQjM8U3ZH'@; put 'e11ZaGNBP2k7MDY2PGcqP3xQV1pte0dpbyZGYzhgLmcrPkI4I1AlSWppSXE1VXt1dnc2Y3p7PUcwP1Y8KHJAUG1DZ05ye0x8bCFdJjFLQ1lmdCZxXV5ZOy8vJDwjcFVHNHMsQDh2bTNFfGFFSXYpVSpjTWQlbjk3fU8pdD95Jj8kKn0qZ31KWmJBYS5tYyErbn1oSWNMLCo1Ozx+VmZbImIjQm03'@; put 'dlN+LE45T3ZobyRdVFN6QywxTj89JCR1a24xRnd+bDY7RylNPEcySyRDbmV0Kjh9UHQzRFY+R0MuXzhuX2t3YFl3SjZoeFF0d3wpRyFdUFA9fF9CQldSMzcjR2h0R240SkpWNjNYczFoamhAJDJKNyV0KkxzO3E3OT16ajFeTDkyamVeXVk8dmRwJlh+fXtERypiRXk/ajY7fld7e35Ud2p+Y0Y1'@; put 'UEtZNDkwYGQ1WmB9Q04reFdLYykpU1Q1JjJ+JXZYKX40T1QqfCVSUWIqJDFXbU1UenJGYXI9RjQhRHtQKFgvXWAmO2wyQ0NfNVdTLlRTXjBnIzBbN3JBO3dyLnZxeUo+SkVQOSNVQ0ZfMDFKMHBFZnRVKnFkSTI1JVVGV1U3Tz0iN0J6a3B6XXJLREgufXtOLHYkInddcUYlQE10ZkJqXVk5PyxO'@; put 'cTtbQTU6OVdwaGd4bl9lMVtFeChuVXk3UGpgUjUzKm0waC8uR2JwNTUvPSI4Ml9hO0k/YGNOTj4lVEpYSFRNWWhqJSZAeS5qLiw8VTVxXmR9ZllFOlpoanxFX0tDWzFWQFhHVDJDZWxJTiVwTjRNZk57S2kmJVp4QX4ha0ZmTTRSVjFSKnxbPHFSeVRzaT0/Pm1AJkcsSlVoTWxJJWkhXyhkTGQ/'@; put 'RUZyeG15PV9Re01MJVU8Ul57SXkpQjVkd1VxOC90cUNVQCRqRjEvN0UsW2VXbWg6UmR5bmk+aGdnNlkvd29+bD9XZVciay9CfFsoSWNVSzs7RCFhYGRKN1ArTkI3Wj5NWjYpbE11SG5xalM3cV0mWiE9cGkwbWl0dyxQe2VicEo5WD9MRWUyLm88I0JBMVM0PHckQGolbkwlSUcvZzghTTl6eCFS'@; put 'RTlFLi5VIzo9ZUNtMT81dlpVcWI7bClhIjlML3oyRXtlUStgUTpzX2QwelcpV3RFKGF+N2heVFV4YnB7XlIlTWpfP1k1JEdecGIrT3ZfM3V9MHY0V3g2X0l1WjxPJjBpVFBkb0BmQ0FeNDhLcCphflNzLnhxKy49Pzl6VHFfPSRxdCJ4Ult7QnNRS19DRmhIUUMucFIrIXpnNUZyRlBbJUZaNzkw'@; put 'RD1IfUpgT3tXN05tdTdsR0Z5Y0gsQkEzQ3RCd01lNHRUTX1dMmh9SlFxXytZTnxnM3IpKmhARER8SGNsTDEwSjN7OS9YOFcqfklycHE0M0JTcERRO0JtdzY+OjNLSWRxZVA1cyxMW0lUXlhBeXdaRW1pQ0dWJV1LQlRebUEsN1ZGVWR0YzIhLjB6ZUUqQ15udHhpYnF8VUwye3RecXU1X0UpLGs0'@; put 'YV1QYmBDfSh5cSkjdzF3bTMkTS81VThXaEI+Jm09bn1BJH1VQUBnZ1l2WnVTe0IuWmIldWJmamFveVFGJFZZU3lzSnZQQyJDdnJ7XWRWY1pJUDNvZ3VxVF5WfTZmZmlTUXQ1SDc5Uj8jT3BdKHh+OE0xUzc2UWtFQFlwTGpxJGgiSEomOjJKKEZJVnlaP1JVQUxKMmtnKkhDLiJrJjp1aHoxa0lY'@; put 'eF1IY2xtWHxHcTUmbm9nTGhxM2dSJWx5KyI0fiRDcSlgaTlDJSUjKnNaPjw3L1ttKnVYPEg/bDZ3UzFsVE8sLkgpM3FDUzcsejVbI09DLlFCPCU1WC86XyZuTCFVW181UnhSIWlbRVEhMXw2MGxwODY7OzVCOGg9UiQ4O3ZwPkxzWVVOO1BpZWZ+TkdEU1Y6bFpfR25HWGBgbj1qRl8+OEQwV0hS'@; put 'QmMzbSNNeyVIIXdDXzA0eHkuTyokaWpPIXIrbltGV2RBYm12RXVqRGVPeld9P2IlOFZuNFtAfUBNZTUkR3dqKTtqRjpbISI5L2hIPz4hJEVJS1RsYHwhWHM+Uz5QYUxJNEhLdWBZXmJxTnsrWjhdZFJOXVJ8eCxoRjEqTSleLGJJM35xN24iY2YjeyVRfk1dKFZLakxGVzwkSVZ9T2txOV1ucklw'@; put 'SmR7bjY4aDF0fEh7RlcwMFNyPTRKKFE7PEkvVXZ4SDpIWjJVYmp6Knt1NS9tdTtvJFpvSSsseF0+Xm5DfVtjbTVTJTtNVnlHR21XeWNgVEZGO1REI2pzPiM5MykxTCNXe3dQJTI/NDxCR1MxJHF3MWUiI00mOGh5cWI8ZCVFRzRxNHc1bFI9TjZLaWFzRnI3cDJNWGF1InlINEFnRDEuOSM3dTRg'@; put 'S1tMfHxPNS9iV1BaTVhZYiVNYTxHJCZWT2U4TFc1dklkfWNbUzU7LjlsRTRxK0E0NlV6W19kN2E+b1htYl9lPElteDV7WUApeSFyTy5ud2d9NiZ+PiNFMCk2PzFgKlEscDZZfX0pY3YlZHRnVXtUMlVSODxAQE1iWGMsSXs7UFhySHcmOyJ2aCtKeV48RFRIY0sqUkhBN1J7ISluc3NnZG9qfVR6'@; put 'Pl5LMEpKaSNXOFlRPD56MDx9I3ZnN3RWaUt3bUdaM3pXQGxUZ0Q4PDcxKWZ4bDVCTihLdzZJQ3x0OmsmNEBJZitaYX45dzVefk5beldEVGlhejBWWmtNLjlTTHVHPy8jSUhwIy5+dStDWElrcVFieEtAK0k+az5TcG04Lk1iNCY2SEYmW3ZqYG53LCUzRnpLfiVCNDEsKXR2aWMmZWhDfUFncCVX'@; put 'JjVVTWAmaERHS1I3QGw2UkpBND51b1hdMXwyNDhOdV9iN0RRKlJKMD1ALE0yZkVOW31fdSZVdUI6fl5hZ1FKPzUoIytCVGNnZ1NgRyY2fmYwXzM6PE15dUIsSldAbzF3bmNPZ1k3IkxPTTl8InpLYW9eQn5IazlbdWAraGFDeloyaTdXSVM4Xzg+b1QhJCg6VCpmIWhMPyMmSk9UZF5LOG1EfXN9'@; put 'YVBieGxSalVPcmhzXmhISiZGXnlIREtYcjpLeDh0ITdrUChxNmhLRU57MS5WVVV+PWVXbE9qYnFgITpkR3B5aTMrNV11P29SMDp3L2txOjF3WygpVjt8bTJldTk/VG8mPj5Ea2EkLD0kQEtFdywpSHBGYWxFIlNGSTt2KXNHc1BKfTwoOCJEOGR8e0ZrVXNvSW5HSW9xbHxLUCFoRmFFK3xOISVa'@; put 'Ok57bnd5P3d8NXNkTUJUNStvLEdLWFVtI14qNV5BJVRZYkxxczp4WldpSiguNUcseFNHYGt8MUkibEB6O3xPI3JjYUVjPSxpfV0pdWFHbnFjT0lZK3dwYmxdVTtYVW00K3dXSTJYfDVaQFZVblMjKGNmMiRfV2NCLzNQNV9UOklGJGZwd04ieldxN3dJb31TQFlfQSk9cGk3dj86WFEudnIifDZr'@; put 'TEM5IV4jemRiUVZvPE90TDh2NUgrSD56UFNycGluQFFAZjdDXn08azw5TVZoRyJecz0+Wi8mbzFZTEQ8UDJNYU4scnp5U3hmejV2bzVKMGM6OmAmeUgvNS5XN3pUR246JklLN1lkYmNAfCV6emkvJT94Zj17UzFPWmQvRzdTS1pkNn1dVmZQSXR6OEx7Un1nVHxBPmNeSGdeNHc2T2dZTVdMMmRH'@; put 'Tk5Sck8ldmhbV1NkbWJ0LnNLW3FISllKdj4rXiJZS09AZHZJOzsiU3pxcy4jUTBJfFlsKzU0NTBeQldWX1cpYipqN3d6d30kfXkldF98RUdeKkVMQzRuPHB4YypiWkFnaGZTIXVLRmFZIztJS30qXks1NDxQYmo2XT9KX3FufFs9RXIlL2dDRT87KUtmN2RqXS5YaShtW0MsaXt1ZWBeZiEiNipo'@; put 'aThWQGt7L1NVeXoscVRzKy5hd3JCTHFPSUJqQl42e3h1Xk4qaHssK1QmXnd0ZnhQakFSSDY0cnBBQzhuXnpfZ1NfN2Fbb2R5ZldFZFVMXjxlaSQ2OTRaLyhyUm95KXgxQEdZYisyTjR3K3pXP1NnfldqLHtMVClBOlRIMkQ+aTk2XTZeUDZFTF9GMi8xLyxEeG1PJF4/aiE0NXJ9QGZGb1p0Q1hy'@; put 'Knh0fjVyQmVTTjdlTVtZOHRJXSFDTzN5MjhjZV9AMUdMXXQucjwwaD58NU9UKTBmWTtFdjM1ejhJIlJ6UldtSUlVdHRNJlQveH4uSGt6VnhJRHJ0WXdbOnVWR2IjSnxFSC9rJXNzVWFFK3BTTFAhIStaJnVuPnluVl9Tdil0YUc6OiN6UWJ8TkRpJiVnSiZWMjU8I208dW5PVWVRPSpFWl9hdGpq'@; put 'cih2RFVkMj1WSVhAKFo+IXdSNF06dFRvc1JqVFl0T0NsdlNhbk58Sz1xbn1+aG5aY2JkQ21KKCI3PDcvaTpxKlApWl9MOzw8XkdtRV9iN31TIzYleD42Z34sZ0wpS1cySGJ2OSIwbS48RUwkbmEmS1g1X1s3bDRxUDYjWzE+NEJPfSghR1VXRzN5NnRoQGN6KTtRXmYlYElsbGVbJUVTUEZ1MnhL'@; put 'MnY1I1klcG5WMjFiY29RLC9USm15V1VAV0RuUjZMXXZTcj8icClnMk9ITms9X2JgMkgvdS59OW9CKjEsTThBLiJKNHswfXZrcjl3SS44NkQrUlg7VFA4fixfW0J9L2F1cy9+a3MkKT8rRHY0Qnd3O1l8LFs7LyxGQV5jOC9FUTkhPiY4NV1wLjMuOH5ROUdnTz4+XU49bkp4e19NQ2MsTUp8dFRm'@; put 'VyhDPTtVazN8PkZ6TzQlWCVNZ0NpNWxHeCgrYyldTihCcSg/fSR2cCtJL1NRTzM2V246N1U4PW8iQyh4XUhrL1g+cVZ9MFhjXm15V1RSQTE9TV4xKzZXNGFxKmw4UlpvJm1rY0kyLityYVQ0NCNrMyU6Q3UuXmR7SyRDUEk3e218Lkd8MzdlYXldKUkvajRuayp9KmxZMjVid3tCa3MpbHl2R3F9'@; put 'b0lCRSY+STtMZnxWXzdoXVtbRyQlNyZAZVBJcjhFaTRsWDA+ZzI8S0FnbHt+OUJXKU9CJF8uKExnclk4V0pzKTpiUV9SUEx7WjFiKGoqIVVWL1BpYGw+YlhrYG1CJntnNTtnIWpdSUA4OGYmZy5TPH58XTVDYj1Pb09UQENqKmw9YHZdPS5fREJxLyg4WUQuRVA7NVpTdFk1V2dwWWRpJEdTMWcs'@; put 'TC95TlQ3ajU3ZURvKWNIMEtvalAyZHtGSUEuaig9OzVKQmM0LCljYnNJNyRyeXcuayF0MmFGPDBlRzxYOig4Q1BOcVY3N3FpKS5wcUNgSnpISGZ8TDdRM2sjLDY6c3REOE1CZn1qKCYpT21GZitVO18jezRIND8sXkY9KWxpQFhMZmNoS1VhUGE8QUdAKjQoeXY0fkNmMi5CS0B8SV9kN2o0PTJv'@; put 'YzorQGhLPXtQZiV9YzZyXSJydHF7NG84QGx4WlA4fk1wbGV6VD1eZUk4e0twZWZ+STNUS2F1IzB9QGAuY0hSLE9mdSFLXkVfOUg9fmRsSF5GcDtWazI2TWZ6ciN7WT0vbjRAW04wQ0NpPTlGLjdeP3YjN1lrRFtiRGpuMixodD9LKzdDMFZiQyh8P3NEI3RHMGVTd1VDaFp8fFhIZCFQRHRVbzhG'@; put 'Y1h9Sk5qK0g1VkJvPmokNnEmQmB9SCNJM1sjazJWL29gJl49OlREdj5DQ0t4ZjFsZyZxeUJGTj07SX5sOVVUPDZZTjs0V0B4Izk6USFiOSs9Wys0enRoMlAlNjF3djtNdmhuQUhUNHdSQ2U/ayRdfntWej1gN3hMJk9FKjVgZCR9QXspIT9qc1MhImtHQUcxTVNieFpVJjteUE5VPWh2TGRIM3Y1'@; put 'fWlpM2lDc15SbHF2NTdqayJXfTU/S24jd2psOHZyXW9EcTYzRTsqW1lTOUpwbiglOi80aH1xZGIyMWJTSEw4ZmRNbnYqY0N+OE0+W2IkNjNxTVUiaEglSCI/VW0hVXJbYnJffTFiRGwsMWQqamtNSSRRWUlIZzJeK2lJW1hIdWdlM0FIT301aUw9MyssKFt5QipIfWIiNUEyWkJjdEtTY3ooLlk4'@; put 'TEB2ZEtJamN5RDJBLjwrUUZGWlE5MyZWbCV7U3ZUfilTMH0vNjc2P3o6ZXNwKkZ5cyNEeCYkJWRHYHU6RGFMYVV+W01sI3U0Pk41U3xxQXA3cD8iKD5jTnI3N1hrSkQuZ0tUS2o8RHFYbGQ0cVRKdV53WSt3Nk4jbVBMQHFIW21MXlZnZSx1ZCsicllPUlpOU2FANFBgNkowViFGLk1yVGNFY1la'@; put 'R1h9WVYwa2M1KEw0WU5zYSwqbFd8XSVzKSwxMi5TYkpCYls9OVlPNFUySDFKVjMzfWFTNH01amRwZFBXTz0/Wz8od1dTeCpMPk95b1Qhbl48NHtyN3x0ZVM7cSppOUA7RTpMcDt1TVIzMlJrMyVqemV9Z3VuLm9bc3Z5Ui81K09AcWtbNmFDSF8/N2QwO2R+OnlZQn03P2B4dlI1R2cxVjNDSiVk'@; put 'TjEkX2lVL18wYHBTI3QsdS5gISY2Jk57MFA4QG4jbUIySz5wfmVjW3N0UUFpZENQVncpX0BfQjBIKDxqcihHTikzOl9SKyZPam95XmtdV0RTMlNlUCpdZE1dZDhGcy4/VkFyeypWcDZDM3czbFFSXlhXKlhxcDVKKSYqSE40UVplZ3dXQmZXOU5paG40dCZ2PEx5Pn4zKUppIjdaIztiM1YifiVn'@; put 'WzFYL0ImQSZBSXp+Izw9N1dmNTZURjJMRF5zO1leXyp8KWpkVSh1azA+Q3RVRmExb2N+PklZI045ZHJsaGZybnRwc0UzUTg3SCwpRFRMSzVFYHx0X216dShsT1RrST9XTGVCSG4iNC92V1A4dTF7V3FGYDpkOjNUdX4mN1ZxaW9+M0JKbURgMTJubDJWcjI4YEdiVktvR35kQF5OdyhtPURlZ2NB'@; put 'b2tOZ0hPNnBUYGV7Skh8RyFXY3d1XXV7SFVzI0UmWDdjMjowbT03eTV6XiF1dyxxWnw3S2cvNmM2SStBO0toM1pdVFhAaVpMKnBMV2U8JkEpVFFeckw1aClaOlBdUnRYMnM5XWE+KEk4RFlIJmR0M0kzQ3s1NjZwVSJSKmguZ0RvXmhxZE1JNXhBZ2lbQ28hMjxoP290cz9uVFowfXtKVUUoPDJi'@; put 'aCJRcytROSw9XmhiV3wsOVVUKSo0fUwkWFI5YENdIlg7JWdeUWJzNy9WaFZNXUF6JF5HVWBHbn5zKlljez09bFV9LyZzVW8/PGFaU0tRdTVIUSpteWRdNmVWfGREOz5fMis0VlIkLkQqd0FZMWExQnBPRDxxJkgjZm5BPVhWXkVePjpFdXcwPWwrPVM7JX4uRz5vclFJfGh6MWt5Vz13Z3V0Xl55'@; put 'Nks8cCk+QmBva2c2PmQvTytHZjttZ2swfFdNbG9YKjNTd3xWQ282XSQkOnxmKjklOTZ4O0JTaSpLQ3ZlPjZlYlhYIk1XIkJIKHtbdnRhJDIpQXcucEkhO0M+RDEzPndaQkZMfkwhU0hmLzppX2Emem9NeChdIkR5KWYzcVtgcGVwJX4qSzI4T0ZgaG5ia3R3UygwP1c5SU1nX09nZHZCUFttPT5v'@; put 'ckhOZkNUbXx1OyR1Wl9OW3BKJVJUMThqXkc1TlpVZ2FTXUNzajI7d0VzR0lCPEUuYnBfcSM3e2tOWSRRcF97M3FyfVVgUio3ImRCaHE1Tk0uSzJHfShdVyV3K341MnFkWXZWfUtGS3grblBEMD5gcn1CZG07KjBnakBldTdLcHEzJmQmfkMjezgzeGMmbS8kZEs0M2NUSFlOKWxba0JLXm9IVj16'@; put 'SXh9eCxARHt0SzMoZCJFR0VYbWU4JVYyb0dDK0BubkoyOWVnU0xrW117V3E4Q1FfKkZffHNDSDxINGd7a0RBXWV0dkNBTitpbTZfZ3skS05iRE9nb2AsV0NGT2cpZmB6SFoxVExEZFV6cDp4XT5eWip2aVJzaW08UGZeYUJqelt1Vl1QUG8pPitPckdNUHh7ezskenxieyw2MX5Zaml3NXNzREw4'@; put 'e2tlMHt2bThPLFtMIlFfcDh7WW9SYH1dWE9LYVBNUjQpUGJ4NHR3XV5OYCR+PFZeVSZGRCMmeFkjS0w+bjFsM3t7fHZWY281Sn5PVSJVNCV+JW1NOTgqWTI9WjFbai8sMSltZTtqIjpmcE1jYTJKRmltPF9JMkNlXWJ7Tlo5N0UoWCJlZDhKOTkpOyVOTzcjdmx4WkYvYUIua0dmTnYlZThmIT0m'@; put 'SHUhRjZZVGlIZFUpa1VkOi5sdyxQcDlxZjhRQldBUExtW1QjIjVDInVhJjl5P1hpMSs3ZTNzRX40bGRZcj9SeV9GWC82Ujh7UytWQDMqVWA7Wz5tNGk3NXgjMEZuTkQpU3JYUlBUTkQzOioqNiUvW0lieURzPm4xKyY5WClIalMvI1dkUX0/XmNzfkhSNmg+e1YjK2Q8XVVwMVpFWUM9YkRMLm1D'@; put 'SUM4OjZiOGljcGMvdDVgTEpKbGkyJmlPNVQmIVlkLmNsMyFZc3N6SSh2cDh8NihaZzVaSWA1X0c9X34hdXRPdz9yMTAvPyp4XmMoV0VkSz9SdUF4fmNURTAsKHc2UmJMSjo6NSNKcXJNR09AdCowO3hNIiUqOCY0TDFHciVLay41NE5tS2Vgc1QuZDVMLkY9SU46YnQqVVs1PEEifVl0TyMwdClV'@; put 'SGRmJU9CQ01vTCU4W2RtM2FHMWxgbyViSytkbTEjP3B5dH54VWs8ZmZHZSlPaH53dzFAMXR+JXBANVh3cXVxTHN8RE1EX3ZmUj83PUhhZy40TWlWaVFtTVN7RGtxVGdaNDdPeDo2fl57Mn13TV80L0xKdF0rNjZIdXFlfT4lZSYqalY7SE1pbGlwU3B1dWokTU1TV09mfF5NI0NrbkxHRC5rKzBJ'@; put 'R15pS3VwT01DNVI2czNmUklLOywwRVd9PUxrcmYyX1dfd3lnXUdZUSkmcTA6Ik0pYXBoKHVtKjVNJl1RQjdrbmFFSEM0Y1AkQ087aDdjL146cmk3RGRoaHt5MDdlZXRWbShpSjYxLl1ORFh2MHZeRSVnIUdtbXlDRm9bOVdzZVFIUktFZy9FNHNUP1h9eSJ3VXdSYylCUUZNaktIYC5BJV4jOEZX'@; put 'YF9PeVJUMkRKaG03XlokXyg8cGReOH5jK2RENCt0byJjbH5GWlpNZENrVzZpXnFNPlhVR3pDRXU2U01ZRUJVXS9LIzhEQHx4XjshdDl7ZFt2NWM/KlFhLiZoRT8rUFVrUHVGJX44QmtnWFpsKHJMclpue0p3OVJjInIhRGwuanAsP0NLaCEocVFWIXthX2AiPjluWXpKTiU4amYkXVBHYlc1RTpd'@; put 'bm0kP2pSVWZMMjBCa0IvYmNMNjZPZ0BSdDlfajppR2M2U2BSUHhUYT00ZkhRX3Q+by50UmVtTDc6LDIzN01BKEVWUXNDR08+XT4zPC5+TDMyMV47V1tJUGVeXn5+am5LZWJ5SVk5WDgibkxmfWNNajdPTHRQSUh9OWslRlRnbTIyeXN4SGtBKUs6c0BrVCpzITImZVQxcW1KXzU5Mn5XQlJJQC47'@; put 'TSNrT0NfWCokNmJGYHl8XUYlbCR3Izk5fG5xdCMxTDdPLjZeaXwkWU1UTUR6dFlUbCF3RjtWdGQyKWF1WTEqKmY1KklWRWIvRHFSQCl1S1luITVKMGk4aEM7IzwvZUVeUHRkUH1leHJuaHNTRj5SJHt8el9eVTF9V2FAd1dFZUxANDpvJiE/QFF4VmchIn1QQ01RMzNuQ3UoS0I9TWZDNFJjVF9h'@; put 'ZVU1dzcvV3gmJlptVVZMKj5oW0Y5ZWBsUXcralA4QVdyVSNAL1NYLDNIKX5GXSslODwrJGpjSkB9NC45RX1aUHgpIX5wRXV1eGs5RFc5Oy8lSy5VPz1SMW19bVdQM2p4ODJMTmI8dnw0UGJkQEhZc2NofW42eUkxRCNNJDUjdmQuUjpnc116eTBQMU5kUnEyYlBqbEg/VnNHVFhTR15PSmpvKDZp'@; put 'OFouKilMRkBwQy9panMpZlNLOCt1XX11eDVCL09XZSNkNEtaSTBuZSEkWFZXVlsuIUg2R0pBbzZrKU5FWnRmSE44dSZuLj9XVmV5blBIazRgLl4xJHZLQXVoZXh+QC5bc0peZ2w7Qm91TVcqfXFEN1pSXndjRlZ7KyVTfCNeTjlAcT5xTkl8V15xVWdoNk4seGZdMThDYm5qKSkhfnk8ZFF3dWlP'@; put 'PXNCTUtFSk1CMj12dHY9L3tOc30qIVchOlkkRm5uXl5nRTQmS25fbG51UEoiSkRPN2dZTitaRj1xayMvLn5kUUhHd2IiTjFSa2t3KSJdNXIzWl5vUWdjWnNQIjVxT2IwbFRJaGNocm5WRn1lOD9gLEF4Y3c8blE/QmAyczJKd28yXV9FSzp9JW5IeWp9JSxvKXRAUGx7ZXdaKlM+OFJtN3pCJlZ7'@; put 'Q25wWXpaIyEmIVUxdSJXS29jT15HYXpRdncrWzROPCNRVVJAV2Y3W0BxRy5ITUwjY1FZXkcjRGZkcmFtcXlKT1dWe2tKZ0c+eCNuTXF5Il1hQlF+dHs2LioqUkJvTTt4fSFifT1xfm1ydDk8Lkh2WGlsMzVJM146ZHRzMEciSGNieGVCSE53NysuKCxPQmd+K15VX05Qa3ozQWBPbn0zV2YhQmBH'@; put 'Ul9RZEM4cUliO1lEUjgmI3M2eXFwXW1hMEtfckY4VnVnYHc9KDZdZk9oQH54M3kqSS9DeD5XeHF3P2lkZVRRJGIyc3t4Snd3MVs0bVlffDtRZE0sKCR0JHU1T2NJU0NIYHxIVH50MjEoRWhUSj9rWl5ETWFmSjUhYVV1QmV8SS5JPjNMMUt7S3RVImF2djRKN0Ilb1VpZlB8aW1iWHZ0c0Z+QDA2'@; put 'SVY+e1AxRU92R0JGQDNKN3tWZG4+Oz5RP3AsZnBCbzsqbnIqPDBZazU4V2lIS2ZwWzp9aUBdUXk0P1V8cFFWWVpmfjg7KyZAU0RZYWIvUVdqQno6eit1aWhyWTw7Si4iSDo4YHgjMGZwTlhDW3lqMzFPb1NWQSp1IyVFfE1+TXlNJjZRPU1rfDJONiY/PEcmPlozOS4wenlUTW1ldmcwdE1iTWNh'@; put 'IkMhb1dJQ3FgQ0gjfTV3NlBLfCo5MDomdXp2M1ZMcXMlbUBAa3lHdDdTfl9aQngpfX5OVXUqRldCbyp9I0RGKSRmRCZ6cDU3VSUpI1B0TFI8RGZAKCo5dSNTbkk/PEYkNzd9Wy5oPkpnLi8hWiZfSnpbMGY2bndHWjowIUojfmorPGZRXk1DME9CTTFIIn4zXz89YkhTMUA1OEYzSyIsdiZtYVFs'@; put 'MC9FaHxYMH0+RzN6Sy5aW1gpdVN7KCJBZ2pOU3NCPFg8KWlgQDBHQSFOWDQ/VFNYRz4ifDRielg4VW8+cHd7TlRzMGs1Z3Bne3g0XTJqXkMyPnBTLzZHa3pUbGsvJmx+Q01+Wn5+MW9TTHo2MG1ZOippbD83a3MiYCY9OzVpMiN6VV1sS1sobykhcXx0Z15+JGhzRHdVIi5Qa2tdP0VpSUskXV5t'@; put 'NW9RKjUmdUNnNjFlfUdZPyY1K3NtUys8cjhbY2FXNk5ePz5LTjFgZW5IfkB1QEQscWclPkIjSHMpZFFfbWkqQUpXPGQiOzkyWzBIX3ZBI3hvdiFyPEQqK31JOTgsdUQkOVVAYENHU2BFPzJXUy9zfWZZVERmbT0/LEBjTi5mXiFRI1J0Z04lV1MqY1d5JXRYK25YLG1hPzx5JkV9N09gQHhiKDI7'@; put 'O0IpVFhiZjFMQXkkQGJIeHYhW1M7d1ZWYmZ8TiZpZU0iSjRXc0lqIm10PyRLQWF6QmBofD09OD9xOkkrdXxqZH1UU3k2RHc2T3JBcyVMQnsoTnBjLm85M24qP0koR00sej5OSCs4UUdofjsyVHsxenBKfjZuKSFoTTs0ZEhDOV8vWFFlfTFyMkxJaCNxRVBYKVdzcWI3TThicjFRIylQSWtBbls9'@; put 'LjE7Rlh9WXZVUU1jISUyKD0rMiQhbyZdUjY6WDAlPWJWWFRifGRJMD5oMWIjIiJWfHtiRnAqP2FBWVhgKC9ONFdEVGVzUz1YJSsiUEM1TENvXyp0YCUqQjxzPitDMSlAdyUsb2JiUGIzTF4mMFJhV2FfbV0+fVcqeCxlZXtBI088Ij15I1NYcmZGNTA/NmM7JGR3Y2RmKEFzYU5UUE5oREQvSy9+'@; put 'YywmYHFGUXIkcXRuQE0yUS9OeFV6WW9qPzZdOV5nUz16XT9deiR7ZkUjSGc6U2Nvc0k5MTNqYyhmMHhaOXpMWzFKMXs3Q0RLcm55aUJ8LDx4dVg4fXw+ZnwsY3l3RSRhTVIuOFlKeVQ6P0V3eGopbnFNZ35xfkl6JXxtMW53XU1AWXpxTiF9aTpRd012bVFTfipmXWB+UmFWbWxIPDBiWzRCKTNX'@; put 'Y1FyXm9QZmosWElhY1V5TWZgUXIiUH1lXWc1Rn50Vlh7PzBpKzw0K1huYzRuVVF1cns0QldSWTRnQGI0W2dKTX5gTDplZSlyUTpbdUF6SUAoUWVQMXxYeTNyXUgvKVkyZ2cvX0syWT5gNVdhIy87JlVTcHpWOHpPZXd8K2d9SG8qWVdWXj5namYsQW9FZyImbWg7PkJ1JFdEVChJMzEyYnJGUWQ7'@; put 'VC9he21XbixwM2VORm1vc0l0XiNNL01xNC8wJDtgUDBMV3daSG5mJUNBNiNGU0tHcj4/fVs8MGkmZkp5OGROY3s6MkxMYC4jTn1JXjFMNGt2UDE4fT1PQno5aCptfWpTMTtZQTtAMEU4XW5QcEhfYn5AJDNSLnoiNisoJHRzIyY9bkIwaFpKUU4jTD0sbzpBITxzYFoxd1NsKFBXa0M5JDl2PzQl'@; put 'Q2M3YEE6TTVTKyMyVis+RFA6fmAlTTRBNDROS2lNaCMrZ2c1bW5qbEUkZGtie04oU0NYJihja1sqVyhzMSE3JSZVYyg5XywhcTxiKkEwS2dPbz5DeTVpKTJLLCtteHUwOT9AV0JlQURleFFAQ346JW1WLjNJPGlUUVllSkIheyg6fWdNUDdZPEtObGxQZnUsN050Nl5HRTg+aWppb0wiKWs3eik7'@; put 'VFk1Uk1NITdzbCEjR1dYXVYlfmNPeX1ic1AjLyhkK3E9Ul8qI2o9NEcqZFM4IWcuVjAxTFM5eVhGalhCOyx6e3ZhRiVGZEdpRTpveDwsITs3YDtga013dTlSY0phUG8lO1I3ZFJbUERuckhmM0R3Sm5OWWRteyZKJGJhe21TRipDSikwTytqW2o5Rjh6eEI7ZS8wNVRYNVt+UUsiaz9ncGQ6ZXtx'@; put 'KnRrZ0x4fUc1VTErc3RxW0lhJV1DXk5IYTVVX2lJOWlVWUdwLjFHSkouLm0ubGJTXn5RZlc9YlNqZkQpcis8I1cxYiFlSy9zLkleI111RH58YEFEWDk7MSN5JU5iW2kiQWM8eW1XLEsycSMvLEk3Yjl8UDJDRFt9NXNuXkM3eWtgKkVyW3Z6I21lOmhYMDJPZGZELzVoWSJ0Pk4xYnJZekpuLkht'@; put 'PzJdRkN0TmxXYDR7WXQ/PitfJiQ0SnVSOGlUbGh7bjtvX1l6cT4zVlRXV0MrcipILClNZ054MXlmW3ZsZFpvUCh0Jk5GTldmXU81YkhINEZMakR3M05deXI9bURIKjpeQD5+bVVRWzZQVlBtb31OOH5bOmQjT3xseVRre1MmV0VvdENyMTxVOzxEUEtkZEJDKTleZnVOb0lMVVk2VnMrX18vJEY5'@; put 'ST50eUlRbkRdJUM6SDl2QzQ9eVQzK0s2fW5gNlhQalNOWnA0emVlRkJ6M1M/cUNkalV1Z0RwO2hGTWRWMV0vcmBfN2hCUXs3NiZtYyRHWUNPcUJ8RVAwQ0VYJWU/ZlUue0Uoc05MK2RsRmopUTtWcyhIbUdCODZvW2R8PCVeYzNgKWxkayt+Zldmd04oMHxKQFs6L3VKcUouaSZKaDB8KzIvUT8j'@; put 'd3hbKiRDYm1gKTxXVnRgInFUXiJnZDdnSkhRb01YX1heOi5TdzJtJSV1W2VsKTs8UHN9SmF9ZVU4cGV8al1RfmhVNHBhJHt8eG91NT5rdFZ7MXVIOSZ2eXsrOjMhb314SDIoYGc4SyxDQkw6cFBbUio1azlUZzNKSXpEX1Z3dn4qKSJ6RnZ6VTVeS15CNkxKKyMzeHVmWGs2RD4mR1lYfj8zKSV8'@; put 'R0hATC83UXQ5U0dMKEJye2Rnb2AmWTtuZ05tV0FkbCouLjVAY2R5YWp9PE52RVhrNTdVQmllUWt7S2VJb1JMIXZYeEhhQiFXaTBfNHk5ZHJ1MyowcldDSzE/YkxMX1NsaTNJd1p8Qm98STV6eDNZZUtqV2lDXWdKJVZZTnVxPmpJNis9PHw2U3A6T0ZEPj9+eG99ZFRhN0JgO3clUWkkdyU7IXs7'@; put 'MzFoZngmY21hfkdtfDQoI3hoNlVBeFhWRXBZRTlEMjk+TU5WVDJyZEZIbHduczoqXnI1ZDpATWo3eVI5cTVYNmEsMUhUOGxLQS46KDBVZnZnNXd6bEVxMDFUdnElfHxaZV8ibUQ1MyNmdTZZfi9fMUNfJVhyS0pPakpUekRwWEI1NU9xTlYwKiNZZmtXVVFVal46eWYxL0k7IUNfbXsudnd5MWxI'@; put 'NSFAM3hSbF1rOkZCQiNmW2ppeFZ4LjF3bWskcT5wRUd+WS5EJEkmJnJYTlZfN247bUMoS1pZW25KT1FtTTpvQVAsZFVBaU5Oanc4ISo4RiJ7TURuXSYvaUsyNiVQKH57NjxNRyk5fT9ebX1SQ2dSal1RO0h3aTdzVD9TWUJUaSM6USo2dGVYLCIpVGc3ITs6aDVqN1guXzxNYGY0QFRgSlFpLDVh'@; put 'O3E/SHVEYCZGOltLQyFaMipDTnVLPjA2a3NwO2tXY04lNUlTb3lDQXJOXkIkTFUvcz9sQUJNPzM6TkR0RiZBOW08Xj4uJVtsOkRDMHp3RyIpaVRedTZXbHRoUDVZSGIzVXNFSj1Va3BhZS5AK19rMSl9UH1GVlhAWHMoRX13dEhuc1g/Y2RiJHxbTlUmO2RbWSNaKSwzeThCLDlAZl9wTylhPHVm'@; put 'XjR0IkE/OVs9bGhhcmpGKjpIKzohO0JxPSZnVm5yPUdOemJNXzRuaVJ4TmlPd3EoYHp9YkgscDN4VV1BUGByMGhKRCRga3tuSWRicClsalpLW099YDdhZnxfTnBoKDhadzJXaWEpWyovVHF2V0l6RGVkJCQlWy9NIi8oZ0c3YytvRT1ZLzRZcTBVflAqTDs1TEFoI2M+OyxPYltvY2w3MGs6RTFv'@; put 'SjwpI1QoWzs4eSlUJX0qcjRWZmZbZUhLWitUVEQ0PT1icWIzOnU3aW1xQToxRUx2RVM4PWZQOD0xPzNybFZHViV4NnVEPy5edkdhKCxwd3A8blZ8eXBUSzIyeEBUMStkKERmYDVoMXlmPUBHUll1XUJkQElZWkB7Ml1ffi95QEE9Y2ZmWzMrYEhLNTg+T151NCVROGpTdkh6IT9MaUNhfUJYJXpE'@; put 'ZjNPcnI2IV9vNFFpYm1ULGJHXUc1Ryg6fSNbW0RrZlswU1gybiVzfHxmSmd8NU04e0xLdU1Db2hvMD1ZJWVHVWxnd1V4QmNaPUk3MGo4VltTK29dfGlKYWY1d2FvNV0/JDsmNVIkP1JCJSl8MjBqd248Py9qbUQkfGQhckUmb2F5c05MYVUxZHtuZFNzMWl+PCY4Wz5+OlhsRnxRTDRYRzVrRW5r'@; put 'K1VIbjcjJnttdW5+RWkkPTg3dUJkU097IXpIaSQ+b0RRTHwmTyZIQFAsK1cwayokcCk4WlhSV0VseUUpOT9VcnV7Q1l8W3NXTGFNQSFGT2NlMngseSU5S01ELDtmNFsiYCt5VV4lWkxqZTh0bk85XTpHaytzVnx2YExNeTErTms9eDpKIzcmWl1KaFcua2xCL3peeklVOjUiVSolOS5rTmteeEhO'@; put 'QCFoISxaNlZkRHVjdSxSe2NYdHEpdz05WmRwS3Z0SDt2Qi5+RklYUkAiTlYsfSZMbzwsQHdvWGU1M1d5PjtdX2lsRWFaIXRsTD9ZdyFGYCIsOzx+KkZgKTNNTEh0MGtlLjA0Wz5+RzxvV293WDdqZ04hJWI8TDw3Uk5rLk1zKWtETVpvNWBQPiZ6LnxdL3U0IyhWZC9KbFs0RD9LJU5vTUFEJik/'@; put 'cUNmKnAqdGN3Kls3MyRwbXVPbDEkKF1dTiUjU3xnQXxUMzAiSm5uV2VtUUxpKUJKRE1bbDY5UntSImFUJEV7Ti5+Ui82TCVvblorXWRfMik/NDRqMWZaUTxsekNrRSFERyhySkB4eFJGdVldMHUhalA+OHJgRlQvPmdCY1FdeDZpX0ZdekxuYksqUnFCSzo4cSFGdlVfVGFWVFE3MD5zQlQmV2BG'@; put 'VTBlJkNwcjZCPn1FaCFiQFMrckcmeTJFJVBHMEUzN1F7NCwpUHB2bjFPR2Z6LnxiWy4yYzJ3RmYsSEVaOUQiOzgkT2gqKnk/WC8mX3VYKXQ/YG9bJCRHb0ZeJTNYPzBpPyJxfl5IUH05UzVwNXI6QHpgQWopcV8yd25rYnJ3emRKUiY3fk5fSkc+STRfWT9zQ34qZ043VzF3KjlCMkZ3PihVOT1M'@; put 'QFJ5elgueH5FfXpVUF5hOFBlLCFwbF9CeztBVUkseThQXW8+fGpoUCVgZTlUdllUTTM9YHldUCZQfWFLZHBrfCtlZTVXL3ZqJUUmfSs4N09HNCI7cmY9cSsyPnFUaj1rfm1MKytmZmpTPitpZkBbc1EjWF8jQDZrPW9ld0VLfCVDP1YiQ3Mrc29gODhyOEZ6RDtPckx8ZWp8Z0NRQyJyXUt7ckxC'@; put 'X3goKWYpOiYhQmNUNWBHMm0zKFZ7UUJXNCY1UiNGXWJJZWs9VXdVeyhaY3xqIXI8dTJ5M0w7amkxei5jSEE2RElNcTZvdjdCaUxQTWVSRDUleypFNlR+UV96bmcla2VTNSw5dkIzUW88NispUSNdNSpAb2tXIWBGVnlsVDs7eUU2Y3QkbmZuRzd0cSwrdk9EPmlldDc5cHZZTnxbSCkiYi97Ryg6'@; put 'cEQ/ZmNSUT1zTmZuSUxnKGdrbTFFUVV6b1VaM2E9YF0rREZOdVNaImAzc156biZ3RFZKViZaMFtnfE5ReWFabnRjZGB9PyZKNX1KRUNoST9Ne09dPz4+Sl5WY3JIWkImQSZAZFpRZiR1UFd5XmE5PElxb2ZhWW5oYXpGN2UiZyxZKHdqKVBydkQ/O0s/a2AvdUEqXUtrLzlLUXo7X3g2WmUoZz9n'@; put 'SFpqb2k2fCxBPERVez5oJDU2a2c/TUV1T1IiQzBXY3hLcHFARGl5USI2UktgTVdAfDYqNEEkcFpUdCwoeTJ8NWR6eENtQDFtI35FdiF1VVlvQGgkVE4yKndLTSQ7YFZEVXIhN1EmYCw0NSM9Mn1RIkpxWHJ4Nn1uKjl7JCF7Mz1RJH0pIllEUyNNSHBgRz84XVlIWy8wNGUzeyRbIjU3WGtARj1L'@; put 'Z2B7N1kwYG5PLk1qZXJmRW93RHRiV1d5SyEsInhYX1ZrPSowQ15CKnxNO01ELilUalptQyE3SV5WTTppPTRgRDBAXXtFJE4oXmhOX1R8U3gqaVhwMVs7TlF0X3lSQCtve1hUeTx4T0tfLn41WDwlOEN1dlspZ3dxYGhqSnZrP2Z5Wn0wYDxbPVMsYFJGY30jXkEjZkNyKCw5I0UrT25ZLkkyWUda'@; put 'KGppQlo3KnlgVVExcVlZTWAwantfIiU2ZVV3Y1IrNXI9RTBVX3xnSkpyMGFUWENkd1VaZStRbjtLZmFYeXlfdGIza1d6eUtFSVolcS90bnA8bHJAeV5ZbXtYOF49VjpFeEhEOGxAIUJtNTUze0UhemM6KWsxaCxVaiUxR108UH5ZT3Vta3k5YSRYOWVKKEhjaUVrczwifUpLWjFEaFU3RFVmLkch'@; put 'KHlIRXBOMENVIlRucnEwT0QyMCshXWdxN0l5WTBBTkc/MyR4QCxJbVtWXjBUek1RMiFXNFYwPzoleXIrK1MvdHIuZEhPKyZgXz54fD9xN00mdEtQNHxDX0EsSm1ieyMuI25xSjdyP0NqcWBRS1MvR3x2RyNMV2Y2RTJdT15uQ0g3YU83cjRlNCZmTEozemEldG08SEtYR0tZLnQ+eDZMVTBuQ04w'@; put 'TEVaOCNCKlU9NkA6aTMmO1AmNFklYmRUVW9bJDE/aHQyWVVEUGB5SFRPR21wP0JdbHhGZDVzQlg9LlU0MTJXc2JZWHtqPmklVFVobCZqc2QmOHRwPXZ6aVE5X0N0XnJxNi9XNls+OzxneTYiJX5Ocl0vVkIqW0F0KXcvM0BeOjg7e1A1NnYyRlZzcVRKIVU7WFtGIikzNmIleHFEe3pkTiVCJGZX'@; put 'dFBqaitkOnZvZGNWdD1mcF5oR1hoI0R5a15NOiVzPVQ4fnpYS1ZNe1ErfFttWjN3cGY+I3d+Nzo3QHZ4ci9XbE1dLHZoTHlqViJIYWtWaFcmdnVoezJdNU9DdyU0Ui4wKWs5SyJ6WDl6XWpeUG9Xd1ZhdT1pYWtjMDJEM0ZHM14mMiF8cTJLS3JCcExWK0lrbmY+YnVuYXVYfGg/S2g6fDEzRElQ'@; put 'bSQvVGMqLyt8NHgwWjQ9MENpW2U9cVZGRWtUUj87dnUzV008Sy57fHg7RWZQVDVrdXdnQC8kPCs/P0hZTSk+ZVosTyltWUZFTywoSkM6IkpbVGxGL2wvOVNEIXcyRWhCZFhOMz5TT0ooQG9DezYkZjw7QWo8a3Vvb1I5PF41VjE3bVhRcUMkZW5UYjx0U3xYTFAwREYzVGtHV3ZgM3hrKj08cypL'@; put 'NzQmQmJxJGpjKjNkOTguRHloZDI6ZERIczF4flFwOyVhZDZUcCpFOmt8ZXtdL1FSZzNicyU2TltbfE5VJDFqaUdgMHsqSGlXdD43dmh7ImJxO0BEdVluPlYmPlM5MC9mXltmfkJ3LE1QVnNadUcseHpIO3daJFN8WG03VzVzaGphP3tfSUxIY1slSiNaY2wvKmU+NWxXdnI6RjpfXzpSciM0MHlo'@; put 'R1J1bDZXOnZXNS46TWREbmtEWV13PUZ7O2YlKE1mYCEvSVlAVyszYWIhJGBtJXVbPFRWTkphRmYvUCZzcUNwOkVPTSQwP0ZEU35Qdiw2ak9TMytlWlRwUyxQUXExdnNRdzpsSW47XjxQMCI0SyFbP3prWygiXzhhZz9qaXF0QD91cCEjOXRxNHBsUmg1WCpDRHU0Q0VHOXs8RF0pJipgSWVyLEh9'@; put 'OmZmYXRjc1Y4Wik/d21iZHV6OS8qJGg5blV2IlV0NFU4MXc9USsqS2dKaUR0KFA/UV80IlMmOU94dlc3V2dHUC8yI1tfSWEzQnZLfjlVYEB+KGk2O2cyKGR8OVVKaEJKY3cod1Rpay9Lfkh6dy5qX0A4ZFZPNGcwZn00fHdnXyZkfm1Pa05AQXxATXdINCVpVjVQdTZBUSYiJnMoZDBWaTJgRy5X'@; put 'OGcmZ3JaZnYoIm48OE1uRUwyRD02KjE3UmErYFZaOzliVi9HJlV9diRqbHM/bV9lcWByKnN5WWRGcn0mfCJgYGAlfEskQzRrLyt3N2pha215OWJrTWE3SUAoNilteWomR0JhJS5uTCxDRE0/dVFXV3hXT0ghPHFEUTFeTj4vXU0ydS8oIyIvTDoyYzU/ezJdVX5NTC9fald5LDlkME83KU46OC92'@; put 'LyN1PWZZJkMqcmFkY3t6SlB6ZzhqYUZ9YWBGUlJJT0hsfThmUSx3KkAqPitifFJoLi50QntCRDxeeW5qNWFpImM/fXhyOC5jNCh7aGNYfTtNNnhEKGVvRUtVXzFlTVlhZXB2SCkiUHp7KVhDN1VxdkVXOjAqNkgsUlhlcCY3SFNdMix3OyhdT29yQC5mSE08Wyg5KzBAXjA8XkZoS0hnfjghND5D'@; put 'KD4pbU1TeENRYkx4UTdLeyFYeERbIUJ1KVMocnx1Rm89aDBLKDR6Nmk6dVFGSXQjUClKeWB1eTsiVEViRiM3Ym4/QD5oVUB3bHZMPmJbJFZIQHVTSkN5WXk2S2ohU0ZwMmJNKVdNOnhPWllUNlFgMCtpdDw4IzQ3OVc4VTVlK24xYTx2dFAqVEAsNzIrcDFRLHJeIjRsZTdgNzBAPH1qR2h7WWxf'@; put 'fHgkUXxYQF4qZjd4d1l7PW43QntiRkQyK09ScFM6Mkl5Vip9JkdRL3kmJF4hZ0Qjek9EZlo2R21RQkc1RlJ6SzcxJFh6ezYpRE86e1F7cnY9WlU0fHw1Oj1abElGZUlZSmpubHolNlNwJWs4JnZzcn1gbG5xZjFrZWFPJntwUFN+Q35IdV4lVjQ2YXFJLnchb0Zvfj9iMkZZTzV0W3chMGl9XlNY'@; put 'WDNzKFN1MnJ4UXVWejNCPX0sbG5WVSwzWCNrVF5we2pOPyx0fmhFbXJmaXdtIToienBxYGlLM2xGUW1GbjUyQnY1Qnk9dzlGclBSX2lFcz59SWBxZytuKnVoSGYqKEU6YWZraUJ6L1hzVT4uRkp1ZDNRWml1Ym5NNVIpRGFxN1hhPFVGQkNhKz1pZkIhIzhaU0MjM0dBZEZlW3lML15NPSNoaHUz'@; put 'PkZdeD4jSCtiL0BaNiRtLFEqW3ZqalpySHBLdDV9ViFbe2d1fClTS09WaU4oK0JNOkdXdV5VXV85Z2ZLTkFWdCIuPmFSTEZte09+dl4yXjg/RSlHKTQ6c11ubzp5XXNfZ00/bn0idV90RVhuUC9CSEpecWtGITlvbEZRaDJWJSV4ZmYuNX0lS2d3aVU7b1psazR0cWsue00pdz9nYCUxLEhSLFFo'@; put 'W08oajtoZT9TZGkwRFgodno1Z1V+USRwSU45VndjZkZYM3BzfUxAQnBzVFkxVi53QFZwI1lJK1tJIyg8T2c1MShwfX02cFoxdyhuP3osejUoT24oUipEUWpzJl0pZGBSVkMlR0NDTWx+QThsTipnb05HXShjdD1pXzM2b14qN31FeGt5eixCVHVCRjRsbm00ISUyeWM4R21DRX52cVpsfnteWm9o'@; put 'UDYoIkksN246SDp+YU02cy9mblYvSShxdTxoOE46Nn1vWjdaQVtpKWM2fSlXXiQmenFXTS5TJHRGVVJkXS94UT9+YCtgYWhOTFpEbnY0az5Na3RtdFchVGdFej9fUjBKUWhneCVeb04ydnowLmA2MkIkO11XRSN7fnAyWWpMUnFHdVNiaihNT2BULlRURHFuUUg1Lz8zYjgmPH05PCRKKiwzKk4q'@; put 'Pz8lSjgwVUEhPV5xLCVIUGJiSj18OEk6OmBkU0BGRjJkYEMmLE8oYlVEam1sRy57Im5qU1tsYjo6VGhYP019TT9Kbmh3JjRgK3tqT20oKk1+dkg3JVBuNFUlNFNzVSI3JS9La0N6anpaPDtdT3lvQzFPSG1bVDE5KyxheXd5REMsM1t7NlRWKW8qcXcpfUl+K3dBNWtKUCpRTUZjMXo4InxhNUkh'@; put 'eGkrQE1zNFtkamRxI21Ud3NEeS5pMlMoVzR6eWI8RzU3YTpNMHtUQFZtbH43bitMZTtsX3pULkw2eXp0eXxYIX49NSRxfDdDQj1UYyEiZ1J7QzY3KEYhTWVzeS5oLlNXYU02RG54bEgpYyZgZTRCKkpWalIoUyZONj5ZZzghdmksWGlLODNvSypHUzwwOntnS1pdR0ZlYGh0Zkg8T3AvIjRQeVcq'@; put 'eCVLLzokVGhJUFtAYTZiPFA4QzBUfSRMbCk+JmI/Z0xYMDpZTSI5Q0tAdSs3TW1zTzBGJWZzMzc6WD84M3RXdm5aTUNDSlVDQ21NTF8yVyhSbDAuQmIsPz94IjIxVnpJelhzSjE8dEpQOSptTlpMKjhReSExej49LCJQT0tHPzZOV2w9eGxYRzZ2WHR+b30rQkcsRFh7ZDtKZjNSSWk3bjJ9eUAz'@; put 'SEV8dUs8V3ohYC56OnYkfEpseWAxRDdCdGdTSm9qMCRnfVswP35OQnM2UkU3fkIwfHd+Vz1oY3gqP3E2MWdKXmkhYFsxM3ZOPUBRIUpGYDUxOS52TUNVPjNgPl4/dUVucUguXlFBIiRnfl1acHQqUlVOVyl8YFBVazY9eWE0UGRESys1N10zJTUoQ1l6dztGQ3xARn5jKzdFN0Z6OS4+PHFhezci'@; put 'WHNffV9rJSRxZEg6bztOanFVdHcsK31+a3YqTV12WllNbUtgJTI9QCgqTXZYPFJ5S2tsX0NWQzBWQDMmZEhqPFA7KXUrRGx8LjtJWmkxQFNkP3VFWC41QFImQyhtX1Z6TDkwQiVvcXcuQDtGRCsoJkpNPExULGwuRHVbd1VzN0clfHhddXFjK1RTRW1QPUM0VyNyanoqSWFHfCw+WngpQFFjTlBV'@; put 'T3g+Vj1rIW19LF9dRF5oWW1WVFNHaCx3eW8mbkJ2QF48TSI+VlhAVjJycEFHXTdNMmljIldudTh8TSVEPXQsJWtRMVIhY00zS2VIfk55TyFuJTBUSyp1a0RRUVZ0dSpOUSpLYVR9WXZAVDFMW2V7KjdFO2EkJDsuZH1NKT9pNiFvWzxycS9XeElWYlA7UGx4MXV8RSo3VUk+UER8SmcmfmEyYXgh'@; put 'aillb3V5N01fOil4YHB1Zj1DQmohSlR4SjFoZFpvbzshSX5MXl51YDlwYUw/cXxaaEhNPSJ6fWUxT3ZMWyU8SCk2MU4obS4mYGVEXkd6WCRjaEVfN21rXSsmLyswe2lmcHlPc0lJaGMkZj11PGV+Rz9hZ0NNb01MZ0YhVTZzKWBjUE0walFlQms5Q1NIYWJiVyR3JDNRWyRIcisrfmQ5a0VzeU0s'@; put 'IlEqKn5GfnZWV3p1KkxyWjU1c0U/L0xzNmVKPl9jPntkZDdlL3BWa2o/Z2B0SXZZT1duV106VX1Ze2ZIcy5JfUslPGBONl1AYk8odWdlO3EhTDhWOmx+O0hgKV8hSktocHM6ZmhFcm5reTYwfkFSWnshWVhRMVBsUlQpMTZyZ00rfUsoNUA2U3l4VjVdeFRVfERKcT5HL2JpalIiUyNjaDFucnkz'@; put 'WlQqe1AjMD8vfTsmbWooPXN8Zjtyd2lbTCM5QXoweDFaYj47KnN+aXksPGhSS0VPQGM3P19NI0lMJTp7ZHV5XWN0bEQ+eEtsY1dlSjJVb0I1YFVNV1kzUlY6Ul8ucWxMUEZ+JWRxL0M1WDFOYlc7QV5EZkoxSUVsdzhhTFpgMDtNJEdWeT8+NUE/fFE+RT9FJnpkOykkLldEIzU+OTRQUTRaK1FE'@; put 'amRyS3E8a2dWXjt8Xio9aSN3YVtAamUlPGoxQGcme3VzNyhBb3hGLkhRVG1je3A7cGozNGNZSCEpKGVSK3lxcnRKMFtaamVWZnNjJTROJSEoOCNJR25Dbm1XNncpfGpldC5qX1ZmWHJXaUNLTDB4QDB8YURtfjIyWHRRTGMiIUFUOjZJU1NdXlN2a1lFQjYhbVJTfHhvdiV5TFk8V1poS01bNnBz'@; put 'YXhbJmQoMmcwciY1N1Q2PHJ1YCUrTyRAd2BFLFhEI2V0RHJbTVF0NWg7d3MjTzhFfiZQNVV7V2poR206O0gwImQjLE5DWHM+Rnd6OzFmazlEKnleYVNRakU0UiM9Mj4vJUo6bz59NCZeYmxhektzbENaPFVgOWJpU20/e0J4TkQuQUVQMihbXjVYMFBUMzB0bCY5QjNga2BuWj1EdGx3aG01cDJ5'@; put 'dVUyRTY1V2g2JC9ZKGEhKSpfeDhYRChGakRiUU87b0B9b0FabytpITRpK2wpK0lSNnEvanY5OkJPdFojTzRIJjtLdjo+PD5ORnk2WH0/TGojLCFxcCo8TXlVYCMhfkIlZlVrfFhPSkAlKU9NXXJwUC5hMVl4MiZFN1lJP0UzUkJabzd9VHRoJWdHOVFESmYrZU5CXj1+byFPZWd5R2RBKCtVd2Ba'@; put 'OS9HTFZiRmBVY1ZJJGxKKGRQPERkWTRGfGM8d21WT1dHWDA1NEksJDBVYWZteCtIK31ZTHc1Nj9ZW3tycEI4KENWaGlNY34uOmpCakxYKjRmRiJAZXQ/cV5gPldsX0dvXkxrTCZDXUV6c2xgMl42djFoPStgdDwkc0JgbH1fKVhFN18iMjJ8V34+SmJ8VVdAVDZXJnVuaDckMT1sXjhdalJ5L0go'@; put 'UVMsKmU3K1dKdm5CO2lWZ081NXtoYG8rVi5OdnJqW1d8Y3N3VzxROiReMztPRUJRc19nT0t2TXA3TipDc1gwVVt9Zj5xdiU9IzNGUm9YTHEyK3BlakdDKSkxbGU2e0x+K1MpIkNiVj5OazNtXy83LEs7MU8qRENDeEoiOn56XWs1b0JYWWxkYFdbeEZlNyI3JXJTLjo3dSZVLzgscS55TDhBUnVv'@; put 'dHVnaU9bUDc0bD92MFkuIz8mLjF0YTY9SlE7TD5pcWx3ampsWj1wXTojJC99YTQ+P0VKNlN8eyRTfnpMaGlMP2hOYz9zIjd+UHpKP1B9aW1DT3J4YS5gdS90KSVNNDVye3g4ZEplT1V2e1s7OEAuMWd8b0UubTJyNjY1QGFXQkR8fVVUfURPRWNtIlJJL2Uqa1luIUdXRHYhb2o/TlMyRTkjeF1q'@; put 'UTw9dHI+eV5hTnA/R1osPSxxMHxEanc6WD1FbHQ7NkFCQ0R4ez8rfS54Yyk8ODpjdnAmJEgpb14uLDZeREhvb3t+ZDZOYW91NiEsdW9nW2okW2k5RXJtNlpdRWdLM0dTRXtWeGZjMC9AdWdrdHN7MTNgdUVzNUBNTXEqQUVtUyMlWXFCNzpXZ0VYMiFrN00pa2k3OWFAUm14eEBLajJ+MkRnb0ht'@; put 'LDtzKFduRXdWaHptdENhLmp8SXhRLlMlWD1DbjZRW2A8aDZOW2JGc0RBOmBzbVNwSWcxbkJvQF53V3g2b1p5ZW4/dzxlI3thTz4ia2U8K1F4Z0ohJVgkVzhtYkJDRCVrQlVMVGpIb3tDQkRmQSsjdD4kVmloYUtldWJ9SVFdIm9ZMlRYUSlkMjc8VHZuYEFDZSRBTFRTZU4lKExkPzArVTxnRFdF'@; put 'KzBEeHY6UFk8OikjdCtZeGZ1dmU8fnRnbGZXakh9P1tOdF5qdTtyMzVYWnZ8KkgsRXBVJXczSEZWX2JRTXh4TD4hRnoqPjlLT2ZVeGouTUZ3cC80QEFUPnJJbCwjI2tnTzwhP25CcFguKFhKYjJJSVBxQn5oeVVHdSNsNSZpYS9xUzlYV1FmTGU4ODF1dWtjLEU4R0AlYHgleVhHSHlvWGVsUV48'@; put 'VW5yV1B5andQQ0QobF8veHcmNGwuNFFQPF9rKzhpNURHfiZIPGhMdnokcjoyYVp9O0NhVEVsRSp2NXR7OnpKZCVTJGR8WVUkOEtNQn5NVXZsUHxrQylGPUxdNldIXWdUTlFrXzI6bzVEU3g0PH5uUmVAZDclPzxPSnV2fEIhSil7ezwwfiNCIUA2TnZ2dy46a2d3blthW1MzL3ZtLCFhZ241KnB4'@; put 'aiswUzh3Pig8ZnBnakJ4W2pWZXZqMk8oclRKXj5xLl9wRnFFWF4oQjtXbk41SSFWdEhwPXJnMj1NfkFDO3RfJChZUGhHczx2K2MpSCNnTk97LkVyKUQhS3R8XywvVGFKeTJPez5HdTMobnpgU2pBUHszR0B+aXpoOmBhUSYlYFs6bWtnSlAxLzdKckNpPFgvd1B2W14hVHA5WXN5dy51IiVqKURW'@; put 'V1soZ21bRFZ0SSRCd31XI3ZVQlZ3YjxVI0YhQEdMZ0xvaGdxNSh7RkkuSlVUPlg0dSwxRVA3JWR7NVFhTTluejV5OCR5KyxkN0N9dnBoSSF4alFTdWoicj9KazttL3FvKkwhVn4lWmBGSj9xOT0zWT9hRyxMSzcyRn1eUXhDVFkxbD5yVkFTUGtdfW92aWYkMTR3dm4uU0BTZ1ZieV1nKmpnbFVB'@; put 'OkFgV2lFN2c7OzBNS0skYEYuSzNpTHhaaThtWCkpSDdleUA1NV5rV25OQjksciwxVlBeVF9Wc2BjYSNTVzEwdjQ8RkhVZzpaK3tROGcqfkFJa1QkOFhlLER7akFiQ3VXQFYmdGNYcXBhVDU4dHw6SU5NdUhSJHxZSFBJOFtqWiY6IlQkITlHQVYmSUNvSXNwbS40L1RQWHhHTHdaQnBdbS93TWow'@; put 'VGFyKD03e099XiFMOD5xX2wxNnlIP343Tj5fdDZfaS85I3J3OCM+bixdVnJFJEsmaTZjRHJQWHooTmU7OyYxMlkiPWlKNFN4cU1COEQ5QF5kI3ZjN35gK1AlKC9peEZiYEcwKXlXUDheSXwsMjExIVgjUz5ZT0t3UW9WXjRzTyM7fEk9alF7RTlMQnFdI1tOdUFNVGA2RlkoWWhTPGRbZyNJJDlg'@; put 'K3h2aDgyLEo1bmUyamRpKjRiNHVPc3o2Zk1UOVhuNFspTT5TeUwmc3VoJG8ocVBERjFITUh0TiNXMXV0MFd1ZW1KQkwxfis1WXZRYVssWSwzODtSU0B9Tk9kZUNXdSgrRSxfaTtDN0Q5dDdIW087UVAyPX19PDJTV017bXZhfUVhX2NfRTZncihWRi9nOX5heUV2ZjZwfTBEJjBAJV9SSHEmRiwh'@; put 'QHt5Jl0vdmxsITxIS1I1WGB6ZjxBSForbDA7Mks5N3IwI18se0BgV1RtQ29qKDpRdE1YUkBxWmdtb3c/TjAwQG5FL3QoVkZxJDJMZmAlZ3A+P1leMVtacSpZWEpXOSReTmMmJVh2W2x5PWxQISIlNy8/M1QuUGBZdDt0ZjV1Jiw/PT91Q3xmU2NUVXtvIV4kQU5tfEgwUyxmd1FRQTZRLG0zaEJ9'@; put 'Q1MrKFA2M30/Q3olI1pyVF5gLFdNJFRaVSN9dWdKLlVhRGlnTVJwR1N7MEthPVNNZjEzPEx1TiZ5eipwK0hOcXEkX1t6SDUoLDhEcSN+QD50OjFyQiUsMFVENWB9amJLO155RE9tTEtlPGBJXnMxdVc6WS42Tz5nNy9bQEtRISpqZ31daUshbmdOdDMybF82dyZ6dW9dZFk4fF58JDJyX0tOfHxL'@; put 'Tj1CVUlOSXdyb2txW2tjK2xJOCNfY1dWRXFLJF5kbTNMaXtJLzlVKy85dWtLfjlIdCpEM3hiZURzJGZBPio9NTh5NExZQj86UTxabkYvfUdXdzNzdTJ1PiZEM3xgUlpaTmZsYkJFXjlkVmE3IlhkYXs+dlNpIWdCNjx9KF05ejNjUk0+bDR4JmBKKnJLKmM7UEw9VXdhMG5rI096MWY4UW80UzFA'@; put 'M0x3QXhDJFtHZ2hea2dWPFtvXmQucGdoYTVNWEdpWSpkdipQa2tDXSZyZmBCTHo1Mkh0e0FCS3lofGhLYGJMOV0rNU9bKzREL3JpKyREKHVbQ04hPTsxVE43SVFuVk5WQj10UkpSOHBZdzdCXn1RWiVkeTUzZkZtVTM1LHRaWW0wZFE3XTxrQGhPWlhFOUVqI0RUaWZTOjE0KmhFSmdFcmZ5bzko'@; put 'ITc1JTlrQn5bRV1uKj5yPDleYndgdiE+N01MUCRVSTk/cjEsN2ZyM1NrYyN1T1slLkE1dCRXV1BndmNBdmR9YjxRKWRiZHhRdXhwfCJiTCtaRWlwRzh2SikyKnAiKXxhSEgiRCk2IT1Hb0JoLEgpPUFpIyN6YUtEXlcmMUsvYDFiVjVJaSM3WWw7MihhcmZ0Jj5NTDJffi9tcytuNilsOSo/TyU5'@; put 'SmtKeH0udXB9dVdOQF0pWylUVT1BXWN6I1RZM24kUV5uWi5zOHpQOjVSTC5JWXBZUTR6MjBhZD4rZlNxa2hMKjMjcTl2YTJeSnwrQU0uXXxGQENrdUFGcSw2LzA/aEgqbiJLUl92UTpAPDlBO0xMJiE9TnxOQj5qdkZEZDR9U0pZOHtIaTNXbjYoOXIxRkczOWs7Zn13NGBjYUUsQXxMKU1MK1R2'@; put 'QHJ8M2FrU0goVHlMYStCREgyNml8fCs6QXUuJUZNLy9rcj1vfkYhW2NIbHZdXnVNQDt1SkdUd25ET0tqZlpZUGM6cClzIWQ9OH09OV8hXTxeO0dheHt0N2RtJCMsaSleOkMpcFRbflU6PzozX35MZDFrcWQ+WEx1PXAoXUk+fSNkTmMoWXpkXUYhdi48QztgRkF7UzZ2blVrUi9lMjMzWUhQW29S'@; put 'QCJQZT57MVFjOV0rUElScUVRRjBDfXxVMnluU3tpLkkoNkdLbnZVZzpmLmh8QVJTS04kdWJ2dHRdK21ZaldOIjVIRlB1ZldFQWcyND8/RitJMVJ+Z05Sc1JKPyl8bl98UTNfV18xcSMwdjEkaXQyakIhSUMiK2xFa2Nfb0xZXygpckh3bEBIQUgrZTVuLGdoWylrfi5NQEZgNjJlNWozLl9+ZDRU'@; put 'N31Lfi53XkdxOmJQbClLUncvejAzVmZgLmNsLGhPeDhHJGYqezFhZGU/a2MxfTN+dC9dRk9ueWJbJC99TG5he2lOPit+anNnWSNOZys3VFkoRGRreDJjakw2TygocV8wRl8wdGZHaDRFJnokRWVIeipsQCVCdUtUKUFiKWtDSyQpUzdKXkpmRDMzdXNFKXF9QUd7Umlgb2lyX0dCNW92SnFgbzZO'@; put 'OyooQyFHcWVyQDBVWmk+TX44U0BeLzBNUlBtW2hXR3M5RnVVREoselFldWZkNlR5bGtJOG4vamgjcHZgKkwyTEtnQGkuYHVLOlYlezxDVHYmKmkuRVhITl5rSTNfb3x9fmZ9Z11ONlU7fld7Wjg2JjZRPF5FJjNpIS86eCEvcXI6XTBULz1PRj1BJmtiY0Y3KUVDZXZ9ejxhaUlhQmhra1Q8SkxQ'@; put 'cUp1fEhxYDcpVkVNVSFHXmBtOG4vV0VNciwiKDpDIyR5MXM4NXF0QHE6MDJ4eFA6WnM8TG4uMCs5MWhjTHY6SWFmZC88NmhVZ0hvVG1VYEh2STdWQXo3YkooZk5ZXSNTQTAxK35BKl1mNmJrXlAhcEp0WjBOJV0/WVE3JXV4M2JQOHglTlpfclopLGA0aD5AYDRbKTtJcktVQjpHVGZ6dCRvfj5b'@; put 'JmYkYW0iazh+aHQ3fF0/RVJ8aEdBQ0F1O3dpP0tXPjE0JDBKPEc/U05JR2kmKWdram0yKmZXMzUsbjQlK0ksfl5XeVQ+YyEofDYrXkErdSkwJFYvbl9xWWJbL0NRJWA7WnleRjhrLil6RiVyOHIxOW59JiVpNWUiKnsxLF9weDV3MSpwdFQhcDtYQ3RZdGFnL3BPPmxhYX55az1mVEo8XkVxYyRI'@; put 'TFZ7RWheNmlzVTYrTUBPOWBPbWBbSGxPbl9YWjY7JWhafUU1RVtPQHJeVS5wdF5YaDsmcGBxfi92dnFdPjBLP0YrMTJjc2I0KyV2NDppQik2KldAfTlvfERdfShjW0hOcDs1eXBlJEJtPHwrVmNoJGpWZkBUPC8vXlcqVFZXeikhYVE2ZDVxWjY+fDpxUTdWU0I0djRiOD9fS2BGJTQpZX5OLzRm'@; put 'Sy9KVG9hPmpAbGhuTyVrIVJIWTExNiF1RXAkZyhmKDAlQVgiWT1yRHNXcEAjYk13PFVwbUB6XkcyIVgwZVtEX3hPUnZmen5tOmdjZTNYVG4pX21NNjsicC8xa05gPTdSRn0mYSplPzZCdXNdeVB3QUJZJmlGakVYNC5uPC5DVSpaUjgqYnRKaFlySGJwTENPUlNRSCQ+ck48O0h2UH5GZ3FLQl0z'@; put 'OEIvREJGOlJ+PTJHV3YpWm4mZDVqOX0+L09aUWVbYlMrdkFHeUtsI196TGk7UFY7K0leelBSZC4xW1ZiemY1YmU8MEZ+P1RLc3MuQG5PTC9IN3k1T3hwfDB1fChoKkQ/R192NlQkUE5nVDV0VF5qPytSIj9mMyNELm9Hd3s6MywrY3cvQTYuI1loZEJbaVh6UDFRbDVLZXM0Q1Mwd2MpZllJdT1K'@; put 'XXQ4SnU3MH5pKF9IeUFkVzVwbztmM3UibyoyRDsiO2doW3RrKE5qYiNtcUlXfCRhTE00XjZhZ2U0YThUMV8hZ2pXYmBPQ29wbm1oMStxdns5QTdUT0RNVXgzYHZafkl6YmhFQXY+N1BrJDR5VEJpb1IkSFZDd0k9fihvIyhCSX5wUGc6JD1lXyNdSW8hbyxgTVA+ZiZ1dTUyQ0V0ZiwmbUwsa3kj'@; put 'SCljPHwoezpOQ2lKbzVOLytda0V+LFZpSHReZVVUXl1CNGNCenpKNHVCRX0mfS9nPDBhcW9GLGRhZGMyWWxzLispO0B+THNuKG4jTFZUZjEke151fGZWWUxQbXV8ai9UNVp4bmE4P0NEbzA9OTFNUzdycT18W3QxOTBRJDJnW1NqNlZ7KyNfQXpbOylhdkRNaTw3aW1xPkg1bUFWJUg6YXkjRCUx'@; put 'NmRNeHVFR2Q3O35XJnovRSIja1IyVys1bjtrR2xMKHAmLjdyd0AlNlhePnNsNG9lbjN9XU1yc2g9RFlPWkxgMXZXM3V+TUdZQFVteTNgQTkkeThhQy9qK2w9VFN3JXppbi9FKExzQ051MFBQPzddaihKSXokeVh3JkJ9JF4qVihhMG9YW1VdVSEyTE1MYlovUz5FUldkNE4oNTBJa1pRaHUqPjRs'@; put 'YTtYOmRQc1paUWEhRS5dSyhXY1pyWXh9SHNFQHBIYDNCbG8/c1JSZWlqUDc8dGMuW2M/JSJgXmVnUXQ3aXA2WFZYVyhAXyJmVV4hYD9ZSWgpVTRbNUtPQTZ6OkZuUnQhcXZ+ckIhbFFjUS5XLkYwRFBeMUh3U3IkRSlXVmQ8cjI6KXo2bG9DbXxdImUyb1ZeK000ZCRxTntAP1NiLGBTUjFdNGw0'@; put 'SVpsQFVxKmVHMF9wInpuYVlKcFZpdmxkfFlpeksjMXx8SV5AMnVPO3BlZ0MsbSNXK2ovektqLE9IWFA9bj5gI3JrIX00Nz95eSZ7InNAb1ZpOWF3WGImKCZCPSlFeTRxX0FhZz5YRFU7Ml5SUndiK200ZHk4ZihmWDlTOXohLiovbkxLRUBiYF42b3Y1T3NOWDpWc21YdWkoXW9EOllKbnZaQSlt'@; put 'WXQ3cFdrKncibGt0V3guX1NxQHo2WzwrYiEzMk53WVQ5YGtDaUFeMDxrW14sbWZNMVh7alZ2bnlzPXFnekcrIltsK3tiTlo0eTw8QmFwQ0t9fSM0R143Ji51WTQzY15qOj1XPEZJQmp5KGFlUmBCP1V0KTFyYjBALGVVKkcmVGMibXt+dXJUfENeOX1DZD0/d1FycXJSIyVZVDhzUjB0QndzeyR9'@; put 'MVlNS3UucT04Pk1RJCExIywpPGVBKkRWX3lkMW8wdStMQTtwTHFkUU4xSEBbMGRxYiJoPVFzayElIzd2ZW1AQCM8fnlJTHpXbkJDbCpwaWQrKHBbc0AibjdTL0VOIXd9WSRJKlY7aXs6PWZwdD96a0hYcE5OJSF5ZlNZcURWa1MjcG8hTT4mU0FzISkwZm9mR0heclJbeS53S1JpWUc+enNYYFU6'@; put 'TCg6QytOalFeZFNkfCF9NUFKOThLVSRBZXpkQltPaCgqWVJTY0VFOFk1RlJEOUV4PilHSzlHakM6NEUkdWBIKmZqfTY0aCpJMGMwZS4ienNQW3oyN3s/dXsqY0UjK3R7fUk5PSssXnB4K1REfHhQc2NldzcuT0U+PUNfZHFlJCJzaShbaFJ2NHVFKV8lfi5vUk14dkplaVZjYzdbaVJPfSpOaVNf'@; put 'KlVHRTg9RGdhR0pwck5zWUZDfXp5YXZzMjBELEF2U1UydEFuWGsjdTY1KjMzUThnRUJMNUhLP0hxcXgjSlFFSkk3PXFAdy4pTkB7Lz5EKiQ3X25kV35td2UhcFROXTh7Ik56VzF7LHQuPHBWOkg8JjVlb0VeRihiT0UreilnbzUyIWlVb28hZUt+eypqUkdkKyZEe0trLn52VEMzcnBlaFt7NEl1'@; put 'O2d2JixnT108VmZsOHY0fE04RlVdeVhRKS5ja0E4PyozQiFCS0p3SGxzeFtfYjpNJHQ7Py4kWUZMd3hAQDV4fW94WCFyYUh7QVRLVyxWdiZdbE0/V15hUnhRYG0uMFEpdz1hQE09OH1iYF1VVW41IVptM0s2N0ZiPzNjfiJRWDsqbz1GIUs/SUFATl5nJFcjKDRPOFl3NSxhK004JGBbbGVNeH1T'@; put 'Mzl3cmhiKyEpc3hoTStANlEyOyxJXmBDVWFmV2lYUnBGZXlOdzRke05IVHJMfldXT2ReaVQsVWFdSHI0aVF3UDJVO3cwI1cjNXB5WGA8NHBgYUUjKDR8PUdmSysxU3xIKkJNSXMqZUl+QzZPQUBsNXUmdjooMU1pOnJoSzJVayYjWXF6aWNicEMmUmosUWxqPV1kZkVdfTpMfDZQTHtWW0BHLkF7'@; put 'XVFGcmVNITdyYWpoY3xGKiNLRmNMPTR1WStId1NZUHR9I3FtNlo2ZTBEIWFkZUJCW3V9eW9Me1MlOTpPWWwoX3AkP1Q4UWMkLEs3NHRATWI4PjVlXj47RDA7R09OfE5qcSZrKGFTcyM6RUA8NHZyeWUyb0w4TWY2U2hZZGhJIjwhPW0hOGt0NDEyXzAyRzciWlo2ZjdleT8ze11vWSwkb21GfDMx'@; put 'ZjQ4JkJGRVk2OE1xQmhjXXU/Ij9IVyFATEVCMjt8SS9yUEt6LkN7WiVQa35idXk4dUlWS0goOU8oYXh7Km9SeX5YP35ALlIhPVVXfCVqPSt9Iyo2OncwOCNXak0sOE42fFlucz1ROTRmLz9yPHZ+SUB5PEAwMylJNH0wR11pLkxDKW40MTErVUVISHRoImJ6OSgvSS5XV0khI2tRQCk+dGZoL3s6'@; put 'SjlOITNzemQ/UnJ0emN6UlpWa2hkTEoiYzt6b3Q/M2E/OHckTEFiLzd5dWgxRVh0Y3IjRnc8e3ksKFdkNVA9Yno/aGVAU2BtI3hzMUBmV09+bj1gO0NwNk5AWUkzVio3VFt7fFZ1fUtTMzUsVDgjfj06NGxMV3UlUjI3VlN7djBOYGhYV20iTFRDLks3IXFjcjBwMHEwcXgqfHRRbDpyTGg+S35h'@; put 'PW0xRGohVGo/UFlnejR9NXtLPHpLWENFaDoxXW1MOFdTQWRFPVhYJFZpVCUjMjw7SVRGUHBsR0ApOGoiSTBKZUJMeWg4QCpTRiE8SDo3YHQwUUNJUnxFfWxdRnhUTGxVaF9sIkNSMlR5WSVKcyNQbDBBJXc8W3slNiNbfihrWEVnN00hUXhyYl1jKz05P2FtfDlNOSx+QmRQOlklTGY0JWhAXyg3'@; put 'Z19PclBROnIjNmxRYz1eOFAzWVM3QGtxTzRQRSt1eDRGa3FFe3R9fHJiJHYvSD9EeCE1aF1JJC9TV1REM1hAJXsjLDI5WzpoeDNzOUllbD9YbDpTWDBnSURCI2NTQVUvWSVpN3hpLygvfGkiRGd7fDRnJWxdK00relZgZ1txS1Z+MFVCPntXRnMpOCQ4Un19Ii52aGk9RTRkfipvQEZ8ZUNkNWpv'@; put 'SWk2TTF8TF1uaW47e3B8PHomVE91NW1rTlYzQCpfT35pZHMpczFKVW1vPCVGaXZZOV9wc3pFIz1JQlM8eXVlJl1VQjJFWUlBSWUzc2laVUg0Rz9ecTRpT3R7RGQuIkEzayh6NHhdXSkiPCR0PkNhVmlYQUJWfFd6OTVhOH1zNEt0OnZlaCFaVD9LZFNnLkwhUF8xKlJMUSsmSUhkSUlIMDxaZCk/'@; put 'UXF9UkVyV3Q6ZD8zcmc3TjExeXxiJGN6TipRVG9APG9ARzE+W0ImMnpKPWgxb1QhcHBFa2IwdEplaiw1e3w4Rmg8P24+OElfOkw+ImBIeXUib2hOP15Pc1JsTV5CXT8vREo9LGEkO2A3eWhgbHJ7NShvZlE/XT18aWNTRSJIbj5CZTJ2MUU9dCV9VnFyUXpda1R2TEQwLmdyfVttU0hoSj9Zd2hR'@; put 'al1Fc3xHNFA8W150K15dNUdjcDZNYHciPWt8KzRzYTB2SEBeTXAuS2RnOUJEIyliZ1Nnais9e293fk5KMH5OdC5hPWMsfFEyTS59OmN5Lz9jMXdRYjk1VT52eTM8KyZUZiNrTFFAZiJDYz0ybiZ1VyQ0X21aIk9SbkR8IypPPDopb2x1fiVFYSFgZl1LUWhNb1AxbXNJcERoRmt+eEI6TWY9eFVt'@; put 'eEdmS3Zlem01WCI0PCg5WWs9ZUVIai4pIkIiPjRbfUBsTnlSeWU+aUQpOUtyJlE1YygmOEtPNmEse2liZCpndmd9W1R0Rlg+dSM1YDY0eHs6Uyt4bjVvcG9kQGc5XUtkeTwsLD02U0giSiFWR3lsaDMhIll3KEVRRXkrOkRiK3MxYE9iRzoiYiQsVmRlMmxMUlY8fUQxM2V5dCtTWmp8bXslYSVv'@; put 'KyYwJC9wZy5zJGM+dkleNmkhfVBPdmVaWzI7dWUhblMxWiN0WjE3NGJmUk5iLm1LXUMsVTR7ZGZKXyNZY1IhJVFOeF14Y3RHblM8Q3NUNXx2fU1jaDxZOkMkUWBRODQmOjpdTjE0fnB4KEd+JUgrZHBNPTl7PTNqO1h5UWk+eFtie0d+a2tLbUBiJUw1Z0AvYipKT2AiJntVZUNBKz4/XjQ0U0l6'@; put 'WW1fMiNYI31HXXlwXmFjOkMrLzxjVyRATTxfPH01QUNVfilJeT5eZ2E2USQ0a3FZSWhsKEhMeEE7JGgmQjwyQn5nIWFXKXQ9dW9BMUFxWXc+LyVdaSZhZyReQy4vZ1pHeyxyJC4ySlU4WWFNbUNhOypPeWZyR2VyXj1qRTwhU3t1eCxUUztKUnRlamZ5VFJoOyVmS2N8OHgiSmpZXVgxbmJ1P0ll'@; put 'NTdML256eXVdPk1nKWl6cV5BK0U7TStOSz1wRjlCeDElaDteRTthTk1mMSoyXlJZcVFxfW16bTtadDZXXUh9c18oSkBGRTpeZVh1N2oycEA1SE9HWDNXJldCYFhTJHw4VyZbUkgvQ0U8NXRZUXdKVDZCTU9ELF9+UjJQIk4hMi5BZk5KYFkxPyhWMT4+aVpTMERVQ0JuZXVXTz9TW2VtLzBYfFpR'@; put 'cktYMn5rfVIjVEF4YShNVHEyND1kTF1HWzxCLFQ6U1JRJW1fSXZzbTw8bF4yPWdRS0dTS1BldV85e0BUcGpmcjc3WF1RWm9XU0BFb3QyaHwkKFJiRU5sWjUrcT5pZyNmM3h3Jj9uRExuNGF5UEJ+JmMySiZ3eUBfVUEoZyk6VyFkZkBTP11NNCR5Y1lYSGVaYnJCSzsqSCVPdWlvV3FxR01ISiVg'@; put 'XUpoVEo5em41VkBmRiRAVyt4PVVnemtqYXFCMURCaW0pSypmaihtNGlKdCJPQkc8S3tCXXddQGNDQCh+YjBieiVtbGElaTE4S3s+Kl5dX2M/S2ZuI3JURilUJjo3JjJsVTZoVCNZQ3BCZ18sQjxTVHVPQSJdO1s8V24uL2NLMHp4KShSals0VW0/LD43eS4pYjA1IldyMjtwTDJeQnk5RkIzeitN'@; put 'YT06eXFvclV1TV42WlJONGFCb3U9aTNHVFo7eCYvWnJkUltBeGV9ezxWN0NePWFLNWFqYip6Q30rcTQ0O0Qobl88P0BHYHRlRD5SJi9HaXhRKXJERFR8e0pCbGhtclE8YXZhLmUhcXdULH4qaU9CL2NTI3VhJXhjdWZfbHNvcTcwRDROVDUoSURzMGJxcDk2NWUxa0EhYmBnU3VFYzJLYHZpVzBu'@; put 'TlZXJjIyViordEpBdE10TTBvIi99Nz9XYlV9O2dbM0tmVVZvai89T0I/V2UoPXVPOy4rcUpSdStHMGp4fmxNbzhvQ156Ym5ATi9HejIzRk09UEB+VGswVWhyTHh7JF19VXsmVyl+JjVUfVc8NXh7TG5AamQ9MlUqIlB7USZHZFssPkJFd0hHbDVVPUdqWUgvTFRqOkY0bmxeSGJ9bTE+KWw8IzR8'@; put 'SWtjXnZiZmR2eiI+RkgofC9kJEVITmt9fjQifU1vUU5dU0w8PkhoVXBUTShfc1AhQStDY3xrX0ZxVUgpcHtJYT5tcyJdR1RrRVpPMEM5Jj09IXFbODZrbDw3KVsid1F+QVU0VnxxcV1wdWB3LG06UzpLYTYuKD5dUmpqTjEuOltfL2IrRmhqVHs1LntEdE1JPk9QMWFDL2oqdF1uMXpnTixidT9G'@; put 'RjZabURRQlgvYGJReysoV1gyN1VfW0tuZiZacDJ4QUZ9QSMjVj0/ZEJiTCxHcWdTcVhJTmYoeSVyUSluWlhbQigmbnFGPGAjTX0oIVJzJWNOKFN0am97azdpclZJfj1OOG5Vci9FMj8kOjwmO2FWYjN4Um80M3d9PHk2PXBjfiJJLzAzcHBOYUJxV2BhODwrTTptdDdXcz9dait6KkpAbHpRQTFf'@; put 'QDo5d3pCSXBRSSZLclVdPkUhJnlUM1VHdEJnQDR4UyorX3RaSEpdfVo3YDgwMl9bRHxFKTxUPz96PHBVdHQ8aFd8XilocypkPFNDMkV6K0Y0ZmxnPH5gUX48PyY0WDF2fFszUmFaM3lxPD85LmRDVD9+SkxxXm04OkNVOVFJeDVRP35dRElNX3Umdj5KRGxMY1o1ViRiUTtJaW1rRVl4Yi90ZTRp'@; put 'JSp5KGBdUDA4SlAjcEhmLzslclEsdiEmSmMoczEiSyROail7QVJOViZ4cSs2eE55XiMqbzIle2drYXNJZV51UiF5dHhpNDErfmJLPE5tOjRdQTAqYk5sJFJKVFtaeyZdVk8hfkpGfkVVJWt6Ml93N3YzJHYrSGg7UiFtbnJMKVFOZ3FOUmAqeVI4flFeRExhbEs5dDJ0VVZWIUcoRSwvJDRaRENF'@; put 'Xk99ZXVeXXU3TVhNJV4wfVM5fDcpQCMjQEBFXTdeOGZ4JUlYbEE7JSw3RXpTZkIlSFMyJjRJLix8bGNWQG9DSz8saHFPPz01TXc6Rk5QVkpeRD4vOCVFNnQ7QHFsO0NvZEVddjJ9ZnZAZWtxLERdYV1VRCQsWVR7MmljdGkjailXWklyR3JAZXd8VjFXNjdfZUBvdnZyOjxoVnFCd11+Y3BdODNR'@; put 'QSNQR0VpXTFqJmZCfnBOaSwwJi9EeS47XitjNylFUEJpYkU7UGp1VkY1fVMsPTZvOjcrZG01amByazEjKkE1Jmh0O3tZSGtsOio/cGBXWjoqPmJbblIqb0JYTUUkfl85YCp4IW5kWnZVRmFmc1R1MmFpTEJLZChvVl1gWnRfTzNXPTt4Pjw1KShueE8qZEh1WXZ3KlIyMGk+Nk5udDk0fiJKRX47'@; put 'RVJNTnNbQDxrX1pENC5aI3ArM24hISR6Xk0ueXpvdTB9V2VGOypFNERXdSI4NCExPipJailpeUNtR21dUWsxZGRpWEp9N1dKQjE/KGBKP3I7Vmc8R1F+JTdVOGpJd29RTCU2KnVmK25nOShyPStFNz5eckN5SUI3KHd7VSxhWWd0aHhjcnduZCNYNFQsZFVBVzd4cHpMdywjPzhqR0NGT2V6L2dy'@; put 'OkYvIk8jJiErek5YS250WGYhUjZwJCF9MVA5dHckPndYTkd2ZFJMPSFyfHRBLyZNR3QyK2F9fSg2OCRDV3x8IkgkcUJDQG1OKSV0fU1AW1oifG0+PzkkTE5efE17TlZFWVd2JGtDfUdiOld2bmU8OVgrOFd1bXVVI3UpIms8RVlMM0c3VXplPU9zbmk3RywwO30lOFAzPS9BPSxMLClpUUEqVHAi'@; put 'ZW1pdCw+XSFyRVJUNysmPF97TSooMzFEZj8/VXIsTHZ8dTdJRXVUenhjU1gldH5tZChKWXssNWV2TEFrWD45LmVoN3sxenVtW2BieUBUUytpdnJJUS8sRzhSdEd4YTMlNj5LQDFTYEBWV0V6Nl4wMiEwNDhyUD11ZjE9Nm5odGc8WTp1ZE81TWQ4ZU04YSkrRCZgRmRsW3NaT2VIe3hdTnI1e00o'@; put 'QltCO1hiTnVuSCltWDIiWCovPj5+KF83KiwhUyozPWI2U0hYYHw/aVVSVnlYZ1pOJUBrQH0jK3syX1BaRCgzakRtX29qXjVAOyhRTCRwKFNIL0MpRHBFKkZzcXR5eUBefSE/JCU3fCUqPj5tOyUmc1J9RSh3YjE0ZFBkQG5COChKYVFlPUc1dDZofVA2RjQ+dyVGcDU/JEUxODg0fERebDw0fFhH'@; put 'flQuPXxFNUk0Uz51WjV+JHQmc30vSkd1XTJ1c2ZqY2hlZjIoZjZNbCx2KncufXd2NnwjYygrLnMveV92L0FdcWpCOnVNfX5xVz43XkFvfTl2PG9CcFlqYnZtWHI/UEwoaDEyJD1GVEN8XUBBcVouejMlL1dRQ3VUSWtEP31uPiZiMkNlYnYudztqKlVGfkB9angxdUR4LkJfQncwRTMraz1kZSwj'@; put 'eCRtUG86cFtZWUIlKzVqOVt7MSpHITpGc1ZhV0ZjNW5MLEVPT3NMe118XlQrbyRJVzw/KnsuXXFRdTBFKSRtKl89TGNDNEV3IWxbd0srIk9dL2B2Oio8PVdHSikkL3lsQCZ6V3E6QnJSZEBUT25OOz1+RTJLX145aCU7TyY1NkQlOEQkXks2VFMyUHB7ez0vWCg8e2tFeDw0VjxlJTIxJlMqPV90'@; put 'amEkLzUjeG1dW115O150XT4+fi8rNisrS1NgKihDOTBFY19EM001cW5mTTVeeExoLik6WTJ7UDRme1F0Y0F9Slg1TlRATEJsPEZqbV5GMlQmUktnd35mKXNHS2FfIWNkVlAiXSV3IypCUlojW29CJCEqWG9pfVJIKWd8IjUjTzlSM35XP31RQl86YEpgfWxZYWw/OEU5QkYqaDFmPC9ZfTYzP0hn'@; put 'Yjd3L3BrMTVeNVImTF50JTV5clIzdmM8QjdLSS8/ODs1QWxmWmUlNDhxc2MwRlYrISU9dzw4MjlWbmh6RlJ6VEwubihHfDQzOnR8QS9wSlcrO0QudV5gdlNFSmtRZz17b0poTUYuY3JeNnlebT4hezdbVVc3IjQ0WTN7fTh6fjoueWkye1V1X0ZISCtHd14zbTlZSVBBR3wudnFwNUwvJGx6Lk8m'@; put 'MSV4RE1VflkrajVgUkdPRS4vNkRFZ3Z7T1tDPUNhMyF4dGpgQH05P0tmX0NafVNOIi9UI0gzZ30+WEB0ZFB4TmFVaXQ2M0J1eyp4b3EsOjBxR1I+UCQvT3ozXV5vYlVHdT5nQVlCKzxwb19nbGYlZFhMY3s9N1BuZT1KNWFhLF9Wa2p7cWNKJiJYUzJtIUFmX2h9U2dZIyxSbWJIaEw3bj5lbllX'@; put 'anFmISZtRDNoQ0BWTSR3USUmMjRIdV8vMHBMbWJ2JTJxXWxPRk44Uil8LkheWz5hOHhSTU1uI3djM1dlRSEuRyMpIzxNc01TbVgkfDQ7eDlTMCVKbnB0WzJeOyIofkRfXlp8Mjk5LGN2QkdrU1t5OGxtNm5DUUQyVj9XNVQsQlNnVmUxSntWbEUyQmFjUVN+KmZ3OHcofm08RSl7TzFecytBJEU5'@; put 'N1B8SXhPS3VzK3IrQ1RtYlk0fiNbcXJje3RtVXIrZiVbdlhPJUNYakd5SzJrcWI5WixmQDNSPGJWZUpoe2ksXn4/IihwVkVjTGE2c1ZYcGBhTT88bVlyVUcmQlh6eUdJNG13P3V2ZDE2eW57bChKU2xSPj5ROEh7cmpzOFldUzJXWHJddXdfakxTM2YhXU4zLiRick0mYFdhXSRDUEdgIWJyeFl5'@; put 'RDU4IUQpIjtzKVdnSjI0O3R0UHt6JCQ4YnVRb3t3VSl1eXQxPkdSOGxab21uZXorJnZMbElNLG8+LExLM1YqU28vXSs4YHlkeGE/JWxeQlI3bz5aMk52UT9bLFYxa1lneFFZTGhYMlJNTmtyOEgyb2EkVVtMXi95TWswb2srTy54UklWUiIwU1p5bGAxPktQLEVOWDo5P09LTy9WYHdaayk+Rndb'@; put 'M3VRQmx9OVdRL3ZNOHohIWlqQj4kTyIjYXN0dFppNDxQYE9lJH08MGRvQ2M3eTtnWi4lImsrQn5HLCpRRCtldlJGXn1TZX1FUVB7MXVRcSpnakE3e1swcn12KV5rJj5ZYGg4ayM3KW1JSXVeYl58fTgsUEVyW3hOMk1DJm9kTHdFcX1oXU8uQmlmbH48SmliP2krNiRXSzl5L2tXQ1d0e1hjSF18'@; put 'aCwqVEpHRjhnLkJBPE5LM0ZROCx+QSteJEl1Tyt2MHtEdS5SejtheEhyKTl0eFNfYl1RQXdlRy5JSCZiKERSYWhoITFYaltQVU1oYlNjeV8hZDtrSEJ5aztPRSYpcldgYGxneXduSldLbFUqWEshOD5sdCU/ZTh2XiEzTkB2VHQobXZpPiVhLG4ocX1FQysiLHhPfUhIc1FQfl1FN3Q1Iz48XXhK'@; put 'd1g9aHEzYFJKc3lOQiZPKD0sW3ArS0d6NVpjXitKYmRUKWAoUylZcUNQd215WmdsQmhuIUkiYkc3IihDYG5BXVRzYntuKmwkT3l4ViM3OkhfaTBFV3UkayZlW0Y/SmJ7bHhwZnJ6X2k2cVdyPGVhOWArempQSXpyNktjamRsL2IyZXJELDtdQHhwL0t6MiwzNCFNbFssJVZMdUxlU09yNntHQ2NL'@; put 'cWN0e35bOFlDQzlfSGJUbEN4IkNnWmhfV11TLm1KVFkhUlFIRiExS3t2Tj1TPllJPmdTKj9QN1dmLyVQXTtGQ0djJDEjaUhgVzNoJmhuX3g7NDslbyltSWlyenR2aTxtZlVmaC92fEQwNz86Ky5KayQ6L0EzcExPcCNnPHZ3cmhfaVRvNzpKd00wQDkuY3Blam86VDwzTCx2YSsoWnl3UXxJZGw+'@; put 'aGpUbndSTk8sUSg6Vmd5cElJVypEInc1LF1oSjZmcSRrWlo6T08xNzZOWk1aYHhrUSx0OE0jZ15BZl01dT93RF80V3goKD9xeFoxLk05KC5hfCZ+O2x1cVoqXlgkQnpFTnl9VnFaS1k7O1NBJXdPVl9Gems4bGAsO1QrY1g+ODIjOWpXMHh1NCEsd3hJRnNBQld5SlNETmF3cnRhKUZ8a0VkTkdV'@; put 'P091cHdaY0ApRW1QYTo+Sl40fXk+NkBHcns1eC9mT1V8Lmt+d1J7UnxlRWFfMEVeRz1AKnpLN05qZyFzOHsrP3dFdSU6V3cxWX07ZytTa2g1emA6WVchWStJW11ITH4pOn4wK2NSTj5IbGYmdmR4anZ6Y2clPUtvVjlnPXoidGdhImNLUkd1KC57fk5ES0t2IURZcSZWKkBaVTFAd3F8LGBvMiFp'@; put 'V3p4Zko7JmUyLGd2cWhtN3xeQFVaNWJ5ZVhARHRoPiFLWkRIfFRfaXk4TFcleChnU0R7bD1PVGVzRDhXZztwWCRBcFIqSm8ySXpebFFvdWAxOXU/KkJ1b259eGV5LCopLEwvTCsyaDNrMWN1QmsxSi9ONz53bX09YilkKGhzVnwwOzUsPjtZIWM8djR6aXF1d1FDelZTMlNZKD9zX1cyJTwwIWpP'@; put 'VEZlWVowQmRMK1BZdCVBTHVyMzJYLlZkXm9HVzZQZlZeb3haPUN7VysuKCUiJiY/NSRZcTZCOWVjTVI7NCpZKlNkTlcrfjtaWyVwKXZGP3UxRiJML3FvUEBeKixwX2Y/PGFvZEBgMVE6TT5GcC9rVC92UX5DYEYjVXdJR0IxcjFyWXxiRThsQkplN3pEdHExNytKWV58IUkzVSRMfG8wSmksQyxg'@; put 'YVp5Oz8mO089R31bYEc+eEBBa2thaSlkJl0raV9kQGJvWyZIPFEkJlR0RW1UWU15LkhGYWRjYX5JaU4xPDR+I0xscnxkRGB4MUp9aWRydi8hbjQ+dUc1WzFgdnU8QlM9K0I7WlAxLmNKUD1AWXF8WXNmSzpkVSRHenZhWix1R0xXQilVNWZDTy5NcDtKTGclVUMmR1ZFTGBUI0BETSRLYz5RTmha'@; put 'ZHE7OmRML097TDlveD1rZTUocnFjJkFPT2tgd31VQzpYdEg9dVZXdyVxSHtSM1hreE53bCM3fFtPTm1XUHhrfm1yY2RzRmU5VnNJK2RfQkJOVVpWTlV3Qz1STipiJXJqcHxpTitMPndaW3h2PzZEWnAjWWNqOk10WEZvUCRAeixLOlF2b3N9SCRGbTosWUdxS2hmY2AvLks0TypYPDc5UUZ0a0Ul'@; put 'P1tdU0B8XkZ6aHB6eG9vY3xWXn1dZF9eeHAoaT4vZU0wKih+R0gyez5GbjQ0amhuVUo9OygwOVJzZ29lT2khZUFLPCFJRVFmZC8xPDtkfmV8RC8rclBOeC8pd194MnFbYShpa3Q6SGZOU3R5UHp5eT9jSU4rej1JJn5HREBzbHlUPztGO0JKXX5hZFtFfVJkZFkoZC9Dcix5XSpuXyNjPT9MQ0Jr'@; put 'UGd1T3cyNH0uUWdgQiwsfGIjRSJ8Q3RAU3xKalJjUltAYEs6W2l9cmkxYFZSV1BAR0RqR2ZDIk1DWEowa2JtZk1dM11mR1F8eFUoMlFWM0VEZXBCQkFUZ21kWE5ifEdGVW8lcGA/d0BffHJDcHw3SFJERk49LyFvNnZCXyJXRUw6OGlkdyRRJGg6NUYrSHFIW31bL1V+NWAoe3xPPjspJXx6aiYx'@; put 'IVVycipoRCslMHBKd1toMUlLcXBwIj1ZSD5kYlA9bGZpbS9FPTdlL1E2Yls4TjdWdlcrX2VlO2FOfjddZjBWXSpmZnQmUilMNF0kdiQ1VThhc1dEZz17TWA8MUNNUlh9Qnh5bEBqbjxjJjg9O2NlJXNCa04uWDc/bDZqNTg2bmxeVzJ6cXNLOjlONlFdeSlrdCZ4cVsqdlBYVmVKODgxTCQ1Qksv'@; put 'fGk2VywkRXYhOHVbM088OFgmXmUqfDtAfX5DOntAPT5DR25TYThLeil6fXhPOklrTUdPYDtoV00xSm4hYFkrOC5FKmpJbSVUbys7XkBRJit1YUdAVmZRYGF1XX09cXFtZXQufkE5eUU8MnszMHNjSTNzPlNdaHdhTHNAVyx+VExye0ImS3Y5bjt9MXpAQXA1Y0thamN4WXNxWXNGck9OYGNYO0JH'@; put 'UmFEZSNweCxQMnNwPEx8enRQbFg2OERTNW8qUytMcX5nUU9JM3AjZzshd1Z9VGB6SSNsJFZFaVtdbmp3U0UyRFNEeDA+LmREV05SailGa3dnLm9re34/O3oqa1c4TGd+XVkqIjU1Z2d9XXdRU2taTjpxQXRsayZhX3hGUHI3XUNkd2M8In1uajdRQEA6UjxiW1VxVVEib1Eiby4mUSttSiMiPXdF'@; put 'K3ojIUNvKl9ZO2U/aTJOeXZgemNGdz4mbjtLVkpOOTVJTzJ1NmxPdGdWKVUiRT5xdUI4KmZMS21eWyJOc0Qse0tqTDxCVXtSWSEmXUNiQS5BNG1aRzlWNHJGdThpXXo2ZmdOU11BQlJCeDBdMlVrUGZTNyU2IlpwJV57czxYIkhlLjpyQ2F7RnpqSTBRLGhKdVpqaXhKfT5YJDdfKVtxZkRXOCxt'@; put 'UyY5dmYjTnBNTzRudUdpbWF4ITxTRkZ5P0FlSENmY3spdldRZztvdkdkcTNJeWA0bkA0WzA2Z1tzdnxKNUckaEhpaWlQa2lJLDo9ITFkd29aTmYze1tqZzlsKkZUN1RbLD8qMC5McDZkNm0uUyN8S1NAazZXSGdeLGQ0dkZ1KFV+OXUvfCM8a2JuT3NNQS9OcyNgNjdVVnNtOzU/XnFkZnhPfUVU'@; put 'S0dJbCtKJDhCJTdFVEw7e0IwOEFUZCY1cTNkUztvenU9P2ouNDhUNnNeWzRzUnBMT2YsNXppekF1fFo1fERSSUZyX0hBP2o5Ykd3YlR7ez81V3BhSV8zSjt6e04wa2ZvNzFQNj9nIj0kfXE6bz5zL0ZZZTRSJE9hX3g6Ln41LCVvN2IyUVFKSWJaMkdKIjVjPWpWRTYzS2trLjBgOFJYQDgkeChq'@; put 'OzYhTWcrWH1kUnosdTZLdSs4Kmt4RlpCfEtYYldFVE5hWCxURnJtJFJKLH1vRjh1Vj55ezUyZ3M7MHtEMSV1QFZjNztucS5JPjJxdyw3UF1CXUc1JUQ0Z35dV0sjWXNTYSQ1eF8wMkwkcl1RPStzKXFifTAyO1BTWXBSb2xETjxKfSUvNkRYfk5ISEBxanJyRlVsTHtCSiZgK1ZFRnk0YW1IYGUo'@; put 'bXFdd3dJN1JfaGolOGwzfkIudj5Ua0wxQXo4ck9dRmZ0dXVKfmcoLitkYURteGdna04kIn1aXV04MWpnTlJSJG82bCsvbH14SH0+Yis1d0kwZCFbO2FjL2I7Plg5e3N+MTBRSUV8MFkhUyEzL048ZmhqRT9UcktQMCZAQHhZQkN+YFBTZ015Q0I6XTglbyRKbl97S0YkS1csW1RqXSM9amR8bHRS'@; put 'cEVrbD9IYkRbcyxCbnEwej8vU0NuPW87ZngyQzJYbCVxKkhPIVhwZT0uXW98Pz9jVzh+QGd+YVk3Tjs7cWJdVS9LOndlUExZZXNUdV16MDdsSWZLc2kmeyxuenkuPVd6bGYkTFt9OjJlcTYkN3U2ekZBdmJWRE51VnlSK0FPP2xMfW14SkpxaXJaYW5pN1JQIXJyLjwqcFkxO1I5I19lT09ta0dE'@; put 'Y1pKYD1ycE5ZI1cuW0pJYGspfmtRLDl4aTt2aV5vTDZhfGtWalN6UmRubyxsK3hnOzdCaig0LH5mOCI5eVF4bVNfXUlMTlZqRF5AaFd0aCReb25WS0YjKkN3eCJGSlRAVUxNKVouTTEwdn09TDZ8XTRwfmUkZjtELGNZJSt8JDVacWp9K082eGM6On5UfkFYNi9Yc3AjSU9BTlZMYyhKeFZTUz9J'@; put 'PVZPeCtmdFIhJixten5ia1BeVFI+flV3PjxjL21ZN3lVc0ZMRlF3K0NqSU1nNGh+K2V9UExgNF12alpZMjI8PjRFaihKWV9aVk4wdz1CYSpDVlE1ZjFqYj8xLz98Q2RNa1tXdWRLQWVaYDBRQlZUfFVvaUo1R15CMklEOSZAQD1yLHBffXN3SXM+I24rUi9TbFNqeyNTJkk7RHNudnZxfm1xQzp1'@; put 'PjxFOCtjNkZpTylBajB4SSRWPiZ1Rzc7Q3V7eld6NjwkUzRJLC8sbWEyTzUvLEhmbV1jZT1yRz1LUXhre1l2NENOYkE1andbZ0doJE9PUXEuaSglOWdYcEZtT0dTNEd2OCRLYGNASEFZMk1BTzpzSm83Yi5ASD4razM6a2N0YSN7KHVQRnV1SjJ2NCMqS2p7dyhFYCNqcWVgM3wqT25Td1ZMZSg+'@; put 'QGVOPn1lKXQxUDhnfDRUN0ZkZTlNS3M5fHd+aCFiSTkkYSQiWkpnbV1uQERtX0RdOHArMEM4VT4lNlRKUnpCSXk7S1Q/YlQ8ITA/SlNmVjBZe1cuKz9kP09PVX5yJWAiSWVDR1dyVUhmbT46cU1EZXhORGBiQ1kkPXg8LkFuYD1hZyhIRXlVWHclK0o7LkI3PllaXU5HQjA6Wm53WCg+SmJEfW88'@; put 'PVd3fm8yVXVYcmNbaCRgVytsI3VDI1ZQaExgTT8sKWQzQVomNCxkMU57OWw6NVJJUjBESWM1PC54PTFGL103K0VHaWgsbHxwPDJUa2UxcFtwd3JkMSIrUHxNQXRrR0pQL1IhaHRDWDglNnFXLDdbPG9aWHNyVWhNMWAoZXxHS1h+cFgldzNlVyw5Jm9JUXE4LlY/ZGhIOUEua09ZYzhwYGhpS1ND'@; put 'NDBsKkIzYUJaYHppanMkZHAwfnMjZEFsWUY/LGldUmF7XWFHKDx0ZyFeRUxDbWRHMnEsSTpFKEJgInVlQkVPJFcoMHVFbFZjOUwwLl5PZkk0S0BQY0BISTl+emo+XjN0dXwzcGAkRnZYMzRoJElKd1JLdjZIZXdQIUksWTIycjVIRC9BOyJJOkFySmU8eWFlfVhlcGhFbGp4fCIyUGtwYVhvOU89'@; put 'Myg/REhWOS42Jn5qfSZYRFsscUs+Y1ZDPyp9Mnc9OjJQUE14Ul5uWDFsXkIiWkdAaThxdDpJfVZEYCMxYTZlSWFgS1I7WyJ2NW5JJkI0TlQySkdNT2paKV1sd20hOk4xfUF8L1gxP0V0QjhSXXI2ZE04aEVzaXdnRFRaJHw8K0JFJCpLeTU1c1BWOStZOjdDMntXVl9JaTM/XjN3REFTR1Z5S0R7'@; put 'TEZQdFdkdmB9RikqQWdUUH5+RjhpSV10YHksYTd1ZyEsQXwsMkxSL1A9MEUjNDswcS9Qdzd3O2lNeFFbKWkxeHhJfVo2MCNUZ21tPlhJUld6ZEw/KCp0VXRIU2pGTltudS5MWCo0JmRNdXl9emZhd3csQWB4VzszU05Oa3NJcikrUHBNXmNOMWdKNT1YdTIhRTZEc007MUtGJikzcTtDZDMmRXBA'@; put 'a3BtUlZRe3hmNCFuKzlMeXI6XkhpSURqWmBWdTgobn1ZblhyVnpMPmg5c2xvJiJxdkReQ2k0fGxvWTYrOixrP2hieT4pSy9XWiE0XT5kPCgvTHMqaW8rP3lFKl5OMiEhVytRNHBiVSt0Y009R0B3ZVN1SCE+fkdAV3opWi9DXTZtNHokaiVBIUk7JTBhcThQZzdEdSl7eW9gdlkrJV4yQ0trWypG'@; put 'PDQ5TE1bSFpOVXlLX3UlOXA+alBJXl1xOiw/ckdlLmhnYUVZbzpLRCg7TCNiT0tHa3xuIiNPT3Q7YVsiKEc3Sz09KlhKMEZ6fllCPWFYJk1BMnA9JDFGaXdoOTZGLGpAUmlnZndDWkQyTj4sRCFyRyxheE5fV18reXc7Kz8vaWhXYVZYOzM0K31lZEhlPkgoVzskfWwwLnBwTmhbdm9vSU4vRlBF'@; put 'LE02O3Q4JmllQkxRJjxddjQvaztzPmVtKj5bMHJAOG5WYmlGIXI6VH0mQDZwQy5CY30+QnNoUDdNMCorTjYpZFY1VlF6T0UmWHEwaWA4S3w4ekdVd2lbWi9oeE5NMTEiaE5bcjpoYGZIQypXNVtYTEBSU2VeYyo0NDVqdElTbWFSTXttZDdxOWdYS0JfPz9Oc1RYS2xITnM6KzNTdDF7Uz1MWFdW'@; put 'SzZaQ0h1Wj9fQk1OeT88KVoqRV1dVX0ifiI4X3YlMzBlLiZ1bWV4OW4/MyVyJC5ra1ZOenBvS0tLQzg8Vmk0Jn1JP0Q0aGV3bnxFKFVTZ3lPPVo1YlYla2ptQ159dHFKMV5YMVh2UCFNYVIrJFFWRnMpS20xKV1EcCRiXlppTEgsMmhjVkAoU25YUWkzNENwMEpeXkJ0emx9dVlPdiEiOV4raGNj'@; put 'WWt1P3VZT35nUVtIYWc6cypzYWE8O3d0eyU/WGs9fTEqbS9wc3tLSTEvImdHKkNHSE48UElBcGFkfjlJNCh0YDQ0d3ROcHF0SjlEQCNmbHFXe3UpRWNbUEM5c3Rgem5fZW5MRUxPbzdSPTg8YzxYLl5zX3k3ai5oaEdMMilxOFlaZXkrYEVPTVd7bVVkZD5kR1VQaC4oK3toc3AlciJlKyE8USFP'@; put 'NEk0KHQhWWtBc3BOJVVMczp3XXIwXVsmKW1GfE53TXxbcFZkM2g5M2xzK3pDOF5nZnhLPkNiMTdpUy8zJVg2eEFgUzlRYGByL2JKX0R3ezVHQkl9SzhaZV0pdFp0Rng6WGtJX007K1ckZHN3MStlKitLdFMrQ3ReM2EsKGJAKS99eHNMN0ZsT003ZWUiJX10RyFnZkNgWiw/TnZrTTBDZSY/Oysp'@; put 'U2djSz1DTVo5Sn1ySkcvdVNfaX1oTyxoY2VhcThjN0JHfXpJWmJPMXFbNkFGNChkY3k/R2A8LkBWMHVaellHSFo+Z1RSX05pSC9AUE1qTW18UWAhOzsuIzhiVnVNMS5PPmhHP3JFcyh8NmlXTXtLd0JFbUNiQylbSFpVKT1gOXRtZjw0VntNUitdSzUzI01nKWFVbmpxeVRqZU0/Iko4O3JmNjZL'@; put 'QU1eKkNKR3p9VFNSUjNOaWtpOX5NMDJJYTY6OmlHUmkvRzAhP2FSd0NpTUtmfE0weWE0N1MmaHooUjFaYyt8QzcsPE42fSV+cThwanBVbVljLGwxYCE9MExJY2l6cCM4NTkrP28kPkBgYDR4JHFXIyhxbnBCPkByInA2MXAsX092WXkxbig8cVhtMEZXZztwYiFDUiVpNSFQcUZUUThTUjZ2TG1A'@; put 'MlMmXmFvc01QM1IsMUhveD9GTng/JjIiTXZpZ3lPeD1ab3pZd0J3UCtfWTUqdWBpT296anRKamFNdiUjMzhZJnVoKUQ1LilPZWBJUjxpeEoyQ3JeRzQlLDFCZW1dK2MwcHBvXXkxI2A2ZVg/QzUsSnVdJE9qdCUwKjwqZUN8PDF0eXhpVl1mP01BbUQhQlU6Zi9eKzI9YygxfFtDM3YreFJETTd9'@; put 'LmksNUM7dGdvZHJOS3hYMywsKkteNnVsV0dZJD15I106Z3hAcj0+NUdLXk9FN0RrXm4xVXFJa3hSSXhNPzFROkksS2FdLHNgNWIiLHVgd35GbmVNa2RfSU1xS3Z+USRxdiU6P3ptaWlIUTg7Sj52XUBQREQvMV4/N2FAa083eW0jTXZUdU1VYnsxREt+Lk5fMnx6SXd5eSFfTi45TShLfEg7cTtS'@; put 'clFUL0pIWmhLKi5QRTckPXExYDNsKXY1Zl9WSVdINHJkNDR+bWFae0x0MzxwOzQ2c0lyTyEpbSg9eD4qTF1ob2BGIUM3LnxRbl1geklELzdoRS8sSFp9c1leRWlycXJfVkMvVkxbOlo+bz0pak9bI10ifStyNVZYczQmNjpDKFZyaUtJLHA5L1l5NXFycGkkLzVLcE5gZiRDKzljZVBdTmFfSEMr'@; put 'T25QSFU5djBjaVdEJjNZJnYvI0RDNjo7JVVwUVU3QS4pVXs7eUcmRCldSHMkYEJ0JmA1SU4xeURbflVVJksoV0NISj43I1JYVmBAIjwsbitDLz8+WW5YcipGRmN6N19RVWBiWCZTbyl6OHYocXx5SW0qWE49bnFnJWksSWRqW15Ben0ubWFyPkxKdktwPmNfJi5RM3V9VGRULm5WXlskeyEmLnNe'@; put 'VHlKYWJSZlRHUk1TZXZDbXIvdUsvSj0+eF1ffXBETWI1fVlkT1JWS1EuXW42WiohfSx0ITJyXlVoe287KE9LPlsqdklITkw9UVNrNUVVaGZYVFI+MG9hbGp8KDchPTBeb0FUJUhfQ2tUQmlKMHI6VFU8e3I6N2NgYCovQVpCYzYoOjFYMkhndGViS3lRQl1oZi8yaUd9alkwfGBteVIoVjI4Vmk7'@; put 'V0c7USZZS3MsYFQrLyM1aUpAbThNSyNvZ2QrJkt8ckJZOUxPMlFXc3VSbjgjT0V2ZyosdmBbe2sxPjRiLDRGXjVnWyw+UWlQQH0jSkkvWWsmRyN3XXYjaWU+eypBYWMqe11NMVdkTFtHcmM/THwoe1VJdmRnZl5LPFt3W3pkfmAsIVs1LE1Sei8ufXh1JVhHPWN+bj0/d2hnZkNaPXtoUW81Jm9O'@; put 'Py9ZYT1remNteH0zWiN6PU1tLnwwKkc2Sz49cylRdE4oaF5YVDFCaXBXTmExNSx7MFQ6MlQvU1E4N2wrWkJwamE5bCo/NlImOixgQERkNHI0WTRAY2BYc01rWHNfMVIibFo0QihfPzljJmVOaDpzfHJBfl9TaTwic3VFZHE/YFQoaCIxNG8+JXd6X3tse29xJSJHRXtDe01KYTV3fjNwbzx8cVlL'@; put 'U19fVkBEc0pgIkt+OjYjalkuYzJOd3khWGk2ViI8I3VMdWBAdlA3dV13M0tUSSwjeEhNZXttVDBpKSYpP1IxUD07SX1QQjJIWyVPJn5VTDohVk5GZlIiKG5OWn1eQnV8U3NgMlNbbzhqeTxObHZhR0hmUWBaaWBKbWtlalE7MzBvPCo3YUlBaXQpeUVUUmQ0MnMzaUBCJml8NCtXK2VgTWp1KitU'@; put 'VUVxaysvI28sUSZLfV49bUFlfFtIUk9kKyJla0VEUUJ2UWtAd2s3MXE+VFgpV25iM2s4RlVEaFdWWHF9THdDTVA9MlV0P09yUi4lcXt2TVl7SkVeQSxoO2lLU0MrTiJlLjZRS0FXJUQ5L0FDWFNlJDRKVSt3e0Z0dlQ3PUkqJk5zejhdUXVXR1pUSTV6OWNLdCpUYFF9OXUsTlJmSFlBQipLUlVA'@; put 'P31QPXMzOnRPcUM8a200Y2NvJSZwOD0wWy9mYXY5N1pKXyJvN3AySVtFfmxXXW9+VEJ0SmExOG9QQz18SHxAaFVSfShMKn5NNF8iUVFwIU9tIk9TMmlxPGBZcjgiLFhdXkIiYnlIdTkiIVA3VVJwKXRnTWZbfTQ6VUBKPzxGc1lgdVkwcFBnTHhFRTlpfU9dblsvfTFFTj5KX29MTnAhU2JKKEVq'@; put 'TD82OmwjSVMoXUVTVVUlSXFXenFrWCRQKWpyYiRoLiNEO2xmSVhLfSQ6KUx2Vm9ofSxlKStwTl85W3NULlNdXT1ralk8cSVrKndZNixmYTslXSF9P3Y1Q315O0pYNkpkJFR1Qy5gISJLYEAraUE6RnVDQHNnfiRfbl81bms8c09TUmh9fCJseCFQMCRQTVA4LDg1ZGk/enRCQ2BOemtjTFJKYG8h'@; put 'VChCQjgsSW9zSlNTKmxuLDIvMXxEPHtJOmpMRllMRGs5I3k0OWZjZmVeQWEpSEE8KjNNe0wsY2RPbiU/IipFJHRRXjltV3Fvb1Y8c2AyUyQwSENYQEAmfSJnSyJfNHsqYl1NPV9ZLyN6ZDNoOTYuQ2FNfiIoM147KC9Sdi4rdG1obXtDbXNTWEE/W0QyYCwlSy5weUROVWd7elY1S0MvKnl3X0ow'@; put 'MDZEQFVWPjZKXjImSHZJRlVoLDE0TFVFPG8oZ0x8SWxEd1NhX0o8KCldL1VsOzA1RFkwP05bcXE9KT1bQCU4b11vI1dyPSRXciZwJSZZeT1ePyVvJF4lYHBEamx7bEhkR0lHNSs/bDxwc1QjL2lyQj1XYFpJellJMzhPNV5JYkErMElgUVhAQSNgYDVET016czpZP2VBcjdhQikxP1RtRUcmYGZP'@; put 'PndFK3xFU1ZVUjdxdk9jQyEsciRWbUhMd3dydFh8WjRESE1AYk42ZSt1RSJhO21QUjlOenc5QSlqTnBxb1kxVnhWaywqSGFzPUl1bzV0emVHO0U8Vk0lQHVNaXE+N3tDOC9OXylTIj06Z1JudTlFUERlfmorcCRsfT83L1VCQ0xtTElXSnk8S3xWRmJHYz1JPWBJXV5AU3svbTo/byR8OlAvVSVj'@; put 'KypIYHEualt3cVZ5VUElIj9bbjNkNTJTejIxYTtdPTxtYkA2byRzW3BLPn5PVXsmXiFuP2BiLi4kbXJOMUVOLHQ7NGpSWHFdKG0vVWROWismcERjW2tGVnNARW0oLzpmWzA+a2xsUV5AbXQ5X1BbdXtJRCtZXTY+JU4mTi8ybFlkOjcjSDldVTVoYUloUl4yKXZSLEIiXzoiO1IjKXo3ZWNIKGNa'@; put 'MndSTD8ob34mQl96P106Oz9nd0VPeDRKYjxDbUZVWTo4aHJRYkRoLlpVLF9AS2pNLGk+XzBWWXFQa09GWjtdZGxpK0RZWlU1cWQwaXZnNSwoLkQ4ajNhS0BRXyU6KSxQRF8hcTo/TVQxMUxWe3lZJDAqJmVjUj0maHVaXmRReGwzb3VwfVMuW0dYY3MzfjJPfUM2VWk4I0d2OEQvZkYjMTRudXYs'@; put 'b1ZALHE0OVlsQ0JXU2JLWCxWWnwoPT5gbig4Iih4KGQ1X2AxX3g+eGwmN3t7WW5CPUFxZ3lBc0tLXkZDMkpgPFlTU3RsfG0yMD0vPSNrUndPfCk3fF5vdFV4dTFAeHBCZjcsanhkMW12OnZHYCk6fSEmeyZqPyFUJCVrMWVPYV1dV2ZZclI8eWw8PV8/Z0xgQyRqPThrYWBSO1IkLnY0Sl5AQFdQ'@; put 'O1RjZWpLImFHdl9yZil5NlYxezZUSnFCXzYrQGI3V1U9ZSFQOWRdNW5UbjJzb0JNb3E4Nz9wZ28lOnpOeW08MX0lWTMyIVo8Jk9uXTg3WGteUEElXWhiPF9zZVlJK11GZGt1c1dUQDYqeFVwbyp4PnMwfm4hJXlRRCk9TEBwfHFjPXgqclpFQzYuYG5tUDBRNHB1UiNKQnFBJVdGI09RenV8Tm1v'@; put 'Y3tDVjFHaEBqaiZdMHV7aVc7WkpaM2xwLDk9KnNqYklOemlwLGdVW3o3Kkt7NC9qQWVPTUltaTptdyFBKXtAT1MxanB+Q18oT3JSbnd8S2w7Kn0mTTBWaz09eE98ZiptKXRUdEklMVA/ImhXd2U4e1tVVTxedHlCJX1WKiM0U3ZHemkwVEtPWyIhdCohbE1gWHg1alZ7JmA6UmNkRiwkOl81VGNp'@; put 'ayZPS0UvSCQuNmAsRF1Ze15KTkcmX1J4N2MrPmNzOkojX11JblZBbVkjYSw7cSx9QDlVQjZoI0hYOS8rUEg1LEd3fjt1a2pQYm5KVns1fFQhVm1ae3UjMlkyIWgkYSMoZXE0Wl4haEIlSHRSL3Vsd2NmX19lTTVPMU9wQ1lKJFgkaC5FOVFqKnQ9dD50KUhbQm8+ayVHS3ZFMUxJbCwzOnYvKyRD'@; put 'KFdpREBZVW8jUV44LzghNm4pNUJUfFE/SFNPLmtrPXlgSD9kREQ8dDQqUmo4e2tHNGMvMDFdYnJ9P1hGeXdbc2B0SH09ND1UXndfdytWVjRCZDp8aEZ9YUQ4ZSJwKCU8Y1txSjovUH14aklxezU4d1VOXitLWVNMPV8/Mm0lVFRfWCJ5Yzw3YHhlfCJoIyhfSUQ4THU4PEhMcDhJXjVMb0ZRUFMs'@; put 'cWZrRShYTEtgRlh2MmJ9TnxVKERxWW95O14hM1Jnc2YreHlIRlEiVyxlY19ZZUBEIj9ocVQrRD53WTcrWCZlbnVLSkgibkxTcFtiMXdoMCtzfSVqOnUsU0kocCxWUS49bWEoISl8JXZ6UXVvIjloZmlbUHRwanVrV1ReJVVofVtVT0xqSF9tIUIpPEs9ek8hWX14XmMoMS54Xzg7RXVvenomNjcz'@; put 'JWVycSRBJkFhRD5pSEtjWihKYil3Z1ZqfnVNdCFtVTFXSGlkTHNQQXo3KlFDNDVoN30kdWZuNmtGelF4UTwsTUxDaGpnW2hAP05+IWRpQyY9XjxlWVV3KWVYVTtlYztQayIlel12PXI6PzM4N2BwcTJaakRSJDZLLkNJa316el59JHhPeEZFIUhUPlY7VmA6KWpyLlJ1VXw1KlE1eFFzQTZTOzhn'@; put 'NzFRbkhTdG1WP3AsYTs0eV82MW0xe0I8Imh5JGg2dSQ+OUNmUiE8Sz5CYWMjOG9qb2BCciZ9KFZEQjUvR3xMdDExQSZCYnhKLChfbyozZH1qZm1nfllSWUF+RllETiR6aSR7NndWR0pXcCRjNnB1WmpQcGQ1PS5VZUU0ZzYlJXs8cXxfTytWeEZRTllJNUtvWms7L0UlP1dVXV48XzMhaGxDS19X'@; put 'WyZ1M11gPDkrOVM0IyFYYTVeQCZnX2xaVGs8P2pWL2Z0YShYM0dMYEttMT0+IltPOnMlUmJjQjl6WnY4LEFSZmw1Iz9JOEIlMlJIdW9qKT1qdS9KWH48WF1BaCgxeVlGXz9qV2FNUkQ4NXYqSCg9cVs/SHJvOGVbY0wsc0Q3d2ZpVDNCfSo2YzEiW3BabGtZPSFPOnhFcFNmO0xQUlZYbG1ALyMm'@; put 'RTppOWZ4M2lkKTh0WygrY2l4NWckODFOS1FBay5ne0FzLEVkXn4yLFkxXmo2dT9qYz1oQ0B5JlBLUGJXQ0IoQFpNNDF1OTJNLiQuOzk5Im42OzllfioiP0A9JlQiaXhOQUA1dFt1TnJqOUx1NFQjOW9LQWJCPjNCfV1nS01qfllZfWJ2YDE0Vm9wS0J2OFkwOytjYSY5YkA4Zm18T3cqeyg7RWoo'@; put 'ZzxFM215XlM9QEhDPFssPFIwJURvTEByWzc3LkB1YE8xTEhBejo6eXJBPlB2cFgoXkR7NT9wSF8uIXA4SzYzQi9kUnxKMiZXX1ZpcitVJXQ6bihqalBFLHlub0gmdnVfSnxMcXJ2JTt9diMzaUYrOUwmaiVYRDpgXitlTz9XKn0qQ0BbP35pPmJVQmBdOGA1NnIrYikub10mNnM8XVNBMTQ8Zl1j'@; put 'czB3IXNQeVs4PVl+VCFzeWZvPUk0cHcvSDZtJllpWUleITZ3KFN4PnBmXiE/MG4mR3FCPERvKmc3Myl4JWhqYiNlLjk+bk0+MHBwOV4sT09CTkU9RT41QVYlfFlwdSg5RyFdTTo3PEglRCRFclRdT1YpQ0RyIkA4Q1FTYThHPVNWQG4yWSpLdDByNFZ0M3ZsS3JKPGszK1VpWSsmQTFgUHFdOkFh'@; put 'XzEpSiMpJWtpamVWUjNPTCEmZEE+OUxTcjgpfjE/WjA1bmN4PmxMPnFFcUw/UDBDUUg2MjpAY3tFQEBtVjdMbSh+UjNCXkIjZjBtYS5JKXouQWdaOT11eyRdSn1yUCNpaT9te2c7Xy9INzU0L11wOVFxa2xdXSo5Y1s4TSsxZ2FWbD8qTXB2QHh6dkpDRm52P149dVVuNktDPWNxRlljW3g+VEVJ'@; put 'MHU7QntQVG1zPWppYFQzejsyQlRUJkxGfE1JYVlRdklTY34saCheWDJZLGVeKy5GTCR9U019X2kxJEQkeHFSYyV+S01jY2BEZXx+REgoZ34wQWwqIUdbcHlGTVoyPXEuK1d1aUskJjd2Unw5LHxwcz9mUjkkKjRVfV5MKlkkcHtIajRXVyt4RHpYenl4P2tmTSE8T0Y8OVNGKGJ7ZUZNWjNGQ0Qi'@; put 'YVdoT3JXTXMlXSF8PT5WUGZDe25mKC4xLHYpVlhxUSxNQF8rcE5mSVc9cyVWVFt9MzUmJFFGVygufFtZP2xacHt9RGFYeWl6XkJ2NzQ3VXxlTiM5bWZAOnNFVU9pTnMxfjF+MXszfktMPyk2XVsqUlJ3KnZ3IXBbKVFDOUtKYDs8cG97PVd9Tn4hcDt+c3Z8PGxieSlnaWFySnZiXllGeGVFdE4j'@; put 'NE58KnxLPU15fVZrNFFEe3M5NjgiS1NSe1QkYi5faU1YPmclTmlXTjcqcjlZV28oV1ZsSl1EfiM6Ql47PGVYITdPIiVjRShvIkF8P0s8THFbeTtWL2Z+bF9JQnZ3MER6PjZRWWJ0PjZhSXA/dnpPRDpJVUNKWG8hfSFaKFp9JEBUQi9Eckt3cjFaQFl3KGVMNGQwPmM8bTV7dS9Se3VURTRHfHRH'@; put 'dG47LGtOYzRNcV9SIVBvTTcyUmllP09KVmR6VTt9cXh2T01lanBRIUUxcE58Vl5RKzRkJURaKn5rIy9MYUM9TDglRyJLNjFgO2xhUVR8Wz4/OS4sOSxMdUNbdztpM1tkU185bzlQfSN6dyxANmJkVGlXUnMvd2FRVCZRR3M1ZGNGPTBXWztqRU01VEV7NVYhJVFOIUlHTGRZOCsyNFoiWXJePWYi'@; put 'Qn43eEYyQFc8LlFmT051Lj1Kb19nbTZ7YmozWzY7MHpRVEY9N3hMVi4wOEQ1UlFJaDpeRih+WVNrZ29WOF5UZGlBaEQ7Ynl1VFhLWmphQ20veGxKQ0VNRU9FLkdwTUosPz1sWWdzeWl3RXJYW2ZWNXdOV18iODJkW00laDIxKmwiKX52KmhFQ1UqdjJ9VVo0dTNqQlMxdGlKLj9ERmc3WT8vcj40'@; put 'IW1lTykuZDZWU2tBeUdoZHxnSkIiL0xaMzdhWEtxXz0hSEl0eVs/fV9WJCpKLyhsWX5JT3o1Lkg5V1EqU0dJKn14fGZwYF9dP2ZwTUo/UUNMR1Y8UVNrPT5gXl8/I18jUjdKV25te2B7Jmk0UU5oWnBSZ3xuflRvUC4oczxQalp4a2kuVCwldnxxa3kyTXZ7cDFJWCUrPTY9R3BAKjpTSmgvVTd7'@; put 'RDkyYDZ9dVBESntuQlJOWkcxbHI2Rlp3anEuKiFsTT47Vi9IXVY9Jmp6cjkvejM1MmBEVkI5OHRedWU5SlBJKGtYTXNhRHlxUTppI15PaDMxIWJQJEBNc2A1cjg1SWR9Vi4wOHtuLmBZcDxDWn1KeFh7XT96fioqekd8ZUZKSUcwdDY1Wnp+JFEmJHsuKllWKCR3dUo6WjFeakR6VDB6czEpTVo0'@; put 'fHF1PiooazAzKDcwWUN7cC9DITkkT21OYUswMnRNVF1BPUI9ZT14SztzUDguRV50Qm1PPHU+X2YjI0R0QmoiO1ZrUkZ3X1EpJWwjfDpGInd7KzB6YTI2ai4+dnRUUTtFPGBfQ2hYUntwZT5YYlBEcXtHaS5KdmtMOSNQRThHOlcoN0Y5e296YHB4PVA2c3QkLGFQQGcpdj98fktaVHxJPWhLMjkp'@; put 'Snh0fGg3YzROaEBqQXJVPnlxWEdrOkQmRSRkZyhDUyMkRDdiJC5+JUo6TGZVPFghOlNBPmhteDFmK1NDRCgsa0ohS107KXBSajNoSTk5R3BEPHJWRlsxbXkvL0k3bHJtTXh9SStVLEhHZ04hOXZ7cE8yTl1EKXkpVC5DKyVtYjYhOEY0KC9YIXl6LEhQJX0kYDErSXRtemhIeWRqLE5MeXZxd0pw'@; put 'NUNdVzM/JVg8QWdmfnNQQ15hcUh8QHQ1JCRsQHJiZ1hLcV8jUipPRTdZXSswdXBmc35jeyZBKDkwZGorJD9dLD0uKWU6MkZDNF45JGs7OGtZYzBkMTRKWDp7ZyNQP2FyOGZxemk+d3dNfXI7anU2NmNxJVo1dnQqdn5nNzFue3BAY3l2YUIpJD5rY2hLZHt2Xksvc1pVfnNaK1deTmlaV2dBaXs+'@; put 'KWA5KT5UX2xSflhwYjVqQl8qKkh7fDZeX0Q8VWl8ayxBXX5vYyNGcX1UYiljR0gqeT02cHAodXwzbE5lNVpPVlRyV0VNO2N9ZEQrJU58cmJtQ1opV0E2cn4qeCNXfHZySFk9KGVKOWp3X0RxUk1gPnpEdVNoZ3tHPSJHPF9Ldm1rc0ZHYVY1YDBXSE9XK0RJI1F3K2c1a2ZIW2VKcWNrREkwcSs7'@; put 'T28wMTE+cCpEYjE0c0l5XXVeRj4rWyk7Yks9W04/QDxoZD9CcGZJVUJXOyUodHQ9SSgwcEQlPjlsMDl0aXBvaSZSS2kmfnZzREY7QD9bJkRkPDoqYEU7JFVQel52Vi54b1giJUVDRTskRmh2YjgoVkVjWFYvR3suaSlTKldPLjtheVopfnU6Uy5GQDlAUmw1UHFuVD5LLmFCb35HK3lgNz1fW3oz'@; put 'dFBwLzV+R2U6Oy5jc2tBISZpTTtWLExbSF1scGkrclVBUVdJaDJaYUt3bFN4JiYwVD5KbDV8YTJ7VSklJVIyKi9SPzYkOHBzfEdSRzNJXlpeN0w0SjxUbWlzPUY9eUJAMG1YRTA5QWNKWkRrcHdvVUZ6Pkk3PVc8SyskOkZbQio+R0hbY2Q4bF9QRiQ+amA4QCN0Oz48YUF1e2RpQ3RfRjF+QUFD'@; put 'Im1GJEZ3IzU6PDBvLCVqL0xvM3RsOGo6Q1NMUUslYz0rODBGMDJCbVsxNWl5JUNLY1kmcmVfViNjTVZPQU9BIkdvX2dxKnJgaldDVzdlSkpddiZbZkNMMm9NcCUmbEYlJllzQEBtbyg8MnBOXTdTK2V6SH1WXkpWLn1rZW5zNDtxYyRPdUQwMDlQZS5nb2NkdDxFQV4hKCo3M2U0eFRKOjUjbGoh'@; put 'bVF4KTd2U1J3L3VJVmc3aDF0OW9Oc2Bwfl5WbkMpdGBHaT8hbmZELzxZJHA+azx4NSxnfSZrPEsjPDRsPz92aGBMUVNpR2g6e0VWYDZtU0VrbUFeUWglS3dLckpkU0FhNWVBJmpJIjdqOjloQEVrU0BpbzZ0PVdoNWVoUyNqQiYoMFJRSFQ0K19nNj19YCJ7KCtseH0vRHU6QHExM0VLRz53LGA7'@; put 'Z0JWMCl+JWoxMVhZKmc2MllBJmwvYy5yfE1JQjVpcnlaellfPHxdUE5RVE9OWyRseTthZ3Z0bSxCXSp9PC9pbUc2SkhDPi5vbyU5RDwyK2lYW1dfdTFdQSooKighdy9kYiZoeWBHZitxYldCb0JVMGV7M0doOipDI2RTZndpPFRtPGhTaW4/QD0jXU1HUEZiMCEqKGlHW0kpa1IsSzc3bnBqUDJW'@; put 'N3Y7TXRLJTsmcWozQV4sWk0/Y21VL3FXRlZwZnBpSFs5X1I3X2BsLzJTOkh+ZDZnJl8jKChOTXRbdGB9bjpLM2xUU2NQYlteMEs1dlJGazhFPyJbN15ePXB9Y21LdWwyb1FoeXY0LjsxeH0kKz1TKnh+cWhscXkvNjlAKkFAdCp4UmVoTl1BQGshXlU1LDQpTzQ4X2dQX0QzWTUsaFlQLltnWWRD'@; put 'Ryt5XnswSW16Q2MjLGI1LjxhW0h4VTZnMX4jdDtdSS86ezloKF41TWQkLEtUQ1MkLkN2fnAzP0N9KkpOM3N7IndFKyRRQDZLOXw0bXAuY0MrRDg7OExxbzhyS0o5MGNqdyhALGpMK0RAWiU1L045PChFYDZneXNbbEd1Xyk6P090IW0udk1afnNkfiZsWyYmVGA5bkRhTH5oYilsY14va3hAZ0NA'@; put 'LiZaMmwxTjp4RVomKCx4JUF+ITMybUhFXmMxMHRpdTdqM11TJnd6e1FPSzsidlYkfncoez5FYTsmJUdRV3JeL3VsLzxNO2E8bEhIWGZ0I3RQUzFeIV9OXnFnRl47TWQ5dkpdd187JFhOc1Y8QSomVUEmfnd9IypVdjE4NXokLCt9ZX1ePmc3X0ltNykxMVRzZyVUfUJqRWxUdixYW3lNflMrOk5+'@; put 'PyEkNEdRO246aTxKWEtkTj0lJld6Sj11aFQkMUV4X1VBcXBHXlZsfH5KbGx0ZjVqcjQpcl55VFBjV2x5VTdRQ1I3UWY7XXApSHtWUXh3dlZASW4lJnhWSTx4Iiw/XUc1PnpyK0V6USFwcGA4WXFJRGAhOHJlMm0mVUsqejROdFU+PTBvcGAyTT9fd35NdSoqSCI0IWhnQHxTQi9+PUBtbFNvKlVn'@; put 'bT0mITpSOXtUZCxxOlRFYWBVUiZzSD5Mfn1fbDpzXylCVXQ/ampJRTgsYyRzVEAmPVFROV9uZ2pMdzZZRjwrTjolYzl5byl8OUs5WXVJdl1HRXpRTVIvPSF+YFU/alhGeWVDPCN9dGtiRUsuNGFdL3ReXiU8Kzwle2dSUyRiSjU/TnZaNFVFJGtteEddYGBfaCZtQ0siUkZEOHk3T2Z5c0lAcT8w'@; put 'NzApcD5AekldYjs3ZXUlKmxHWj45VWhpcD9mTEB1UipLcD9ONGVKWXpyZCF0WnolQ0kmNTZaMV9AWD4lbXJ9RnhnTVhtKWJIfF9VZzVAclhRNVdIKU5dTDVOK14pMkYkKn5lQShEMX18SlRfYCJocVlMOCNQQGVbKyJ9IUUuTTNnOz9MVUgxRGtXfVRkfF8uKEJvKiJGQUp5IiQ5UlJMfmhVSj0u'@; put 'N3Y7OnRlWSZ9M2c3Ljt9VlMmPT5FP3RgKjF+SWY3IiRRbzNTY0dyKzloLE4wUVQpUmxHQCxWND0yX31wV0tqfnBCdmc/KGV1bHhFRileUEFjOENGTUtAI3EpIT5QdWtPeUksOHFFRyxhW2dHUjBGPDM4MUtxb2VPMDs4WXhHenF1UlFLPFRRK3NGQSh0KV93cCVQZSEqOGJwOmpLOVg7TFQ1X2Ax'@; put 'IyVrTEhpKEMiTit9cGMkR0BxaSteUXRTeXNLa3tuU2BOMjs8KmFePEVTaFI6eHFLTFd9IzowUDM4Rj9zRWA0MDY8YWI+TzE0aXRvXTVkOWM6XSFFQCtxRi4qckFTRGBldD11dWdYUXZVTVN2OE9QK2tlLjJDSj80O0p1bmcuTTB+QTp3XzopXVNARWp+bkRiOkwoMW1MLlQyajR6PlZqaTM9bFom'@; put 'd3s0bVFLUC5CfXwjbk0jK286O2NNZFRiTH51fUhsbHJTQ207dHA0U1YlOUtsV3tMWTkoKlpZYS58Q0lzQ0BGSnxbLCpwO3AvVEtTWExMNmNbRnlSOzcjR2pKVmJNeEJvaGFIQUQ4L2Q5dFN5XSQ3aWRwImdqN0xbfDpNPnlMVmp2fGFUcWZ+Wmp+TTFXMyZQQ3VpPixEfkRhWEhlJjZQOnw5I2JZ'@; put 'eG97WCskcFdedFFLamB5RSVDeUd6cDdHUGUuYFE7P0wuTkMrNU1bSFtuZ01oRkBZNnA+VEtsV140dXZ4eEZbWT8wRWJYNjpKWytxPV51bDgyWyxnZUIzVVdCbzFJI3d2fEZ5aGVZJjNLZ0ZGVnh7QCZoenRxMVkjXzlJPzZxUVFtMnJxeHZZeiRpdWJGYiVdPnc0Tnp2M09JaysudTEzYUYwWlBs'@; put 'dFIrSThuIW5Lfkoua2BPeDIvQWQrPmtSITFSQ3NCKVdgRkEhPDtXfSRSOU8uSjw0ZDh7PGU9LE93TCxxWVRsV0NgR0d+O203QmxGOz4kcEc0aHMrRCt2QyFtPWhtQnZGSHk6TDQ9VWZ4TFAydTssP2pEXitzUC5CYnh1Q19yK3hGRV1eOz9ZJVNwdkl0JktvdHs/fWB3RXUzdTQ1c1AwUSUyQX5o'@; put 'SmBUMzFHYn1HUFp4U2JVd2EufCpVRUB2Wn5vcXxVeVB+Y1lINUFoJTlaKSFKLmc6SCZpMj8weiwiUXZ7WXNNT0JHQXB1TnhpKnFUSmFCaiFTREU0ZDVGWy5RekVpdC8yU10jXjJ1QTAmLmFURVkzI2hnTl4qdTleWC5wZywuI1d6fHxtTjYvXVtsJF8kK2A2WUVxfV5hLn4lYihjaG81U0IiYjl7'@; put 'VTFsRDRKOHhBXmM5aFdMUlBAbEJaWHt1VXY3QD9oR3JYXTJxYiQreEk9MUpzOipLNSteUVhdQGIrclsqN3dudEw8KzJGeXtgPUx8TkFXRSQhZ11oTSpBeUY2b1RkUTlwKnZSLitlN3hvWVJgNjg4L2pHNHZ4fXw2P3leOyRxNGc4LEU3UCFJKGdHYC5BOnFYUl4kLGgzUVIwSTdHUzxvYHNOOSRC'@; put 'Q1oyYCFabj13Vmlxe0MpT14hTUkkNHJaJDJwSFB8InNINGc0Zyssa0ZveDNwUElLM0drNT04KEEkUTFQeUwjM0p2PG4kWDkmLntgdm8qc1NHaCxNe0R+RDgzbThVJnxbNlI9UUVyc1JNY1Q0MU5DLylSUiYsZUksPUx7Wj4hU2x6OyluWGhYN35ecCY+WEZYP1ZpbHJ9OTIxIl5NcDdlP0Qocy5z'@; put 'KExBcHBxWmRfPkRTKExrQC85L2p8dk9WOVZdS1RyeDBIMlZfa0ssMGZvRCpLa1ZQbyE8cj5JMVp9aXhxdl5DSVdpJDZeUWpBaXJBXVVeK0ZJS2JFQXB0YTlKWD1LaXElfjlmZVV5TjhYYj5nUlMsZH4lLy5KZFRPRjwqPWxJYCpBeUxkJnlYbD1ZW2ZSPCE7Xmd4e359RV5FP0xHI3RoKSp2dzZl'@; put 'fWF3anEsWVt4VXZHVkBXPW59WTVbNWRGNSRsWlQ9U3RROi58KFRgP0g2eitqUTdSamNmOi43OyQqP3lZZHZ1STxgOWJxTXN2KTt5Llp5WHNeNSNDUjQuY3A+aHgsbHR7WiVuPjZwWHR0eUhzS3khb3cmNEx0KCkpRn1Ja2E5NiVhIUJ7dnBfPm1NRV1RXlVWUVp9VHhma1s6RVVdeyEjbFJQI3hm'@; put 'X0VhNVBzJmlVQGY9ZCM3UEZke3V1VDRITnE5aD9HIl95MUtvM3J2JExtP0lMUGJ1WEpBZjxYMi94ZmssbUVlKiNlP0hZNkp6WmliVThAYCFNczx0amohT3JDSWk3KTYhSiE1WF51JT8/QypQcDUre3JjMig9SU9EWUJLS15NJDpDPUk0aSNHVVI1KXtUdCJBWU46d3B4W3QkLG4hW3xeSEg1QWhK'@; put 'ZHQzVU9IT3BfQkVwWilUcWtOPiRyamF3cTpjMzI/RG8xJmJuP1hiWjtdOW5RYFdmTGVMQnEiXVcjTilIaD1FTlZ7eWB1WDUrPSVrLz1FVD1EeCxEcH1kMjpIW0tGJm1zKT1qfSRXKiVte3AickNtdTNGNS8xLzs9IyxbRCNRJVo1MEkmUH1hM1l3Zjh0dmVPaCEkKixqfUoheS5gTWd5Oyw+UjEp'@; put 'P0RMaHEuYWl6PSY2TkNZQnphM0IiN2xNQzNLXS54c3hHeDNtflk+T0tORjVdSik0KXwqa3JDdW5xPUlCZ2ZTbzFaOkB6eTZzdT1xb2Ypc3VkPTU/SCosbEZhWyw9aEhjbiwvSlZdQzx1THQhNzhkTmIsRHxyPnttS10pZUl5bHhSaHRvOylBV0ZEQ1h9YVt4dm54UDImWX0sMV8xeGFRW0NaNWd6'@; put 'eHQlVSk/TXYhbVd8ejZsRitdISwxd3VTPW42Pit6WEtLcn1yUSpYSSxsTSlxIUtCbWliUDsra15OM2Frd0k8LEhtYlpRXmNkcSQya3NWfFR4USNWTyJPdTlWT0d0WX0mQF1YJl9Zel15NihGXTh7NmtxfVNdR3wqVEd4NEN2WWR1IWlBZmxaNUU8I0FJO2VuPSg9fDZKcEI0WX1rS3Z7QjBCITtz'@; put 'XUhjfUcufjlINEJeUHMwUHJhJUU2fUFEVWpVan1+IjFpdDd2VktGTyJfMWdQNzJgRSQ+RDk0ez5xXUE8O1RVJC5EVjdwe05mPWZWOD9ETyZodH0zYSFxeyRXRGFrP0RwSHc2OUgoeU8uSF5SWD9gOHJYVFBVNW1VKEhxVTddfDttZmIqSFo6Y2xHO0BeR1R+eTEubkk8YExHS3c+VmlHS2xffjlZ'@; put 'MUp9UEJYMGlQNWdWOCt7elF7Q3M3VSI7ZnV1cStlWl5MW11kdEN1XXkjUl5MVEp0QnZMIkRsQFdZUD9EVjFUJGpWV3hMYkBAcm1gVCpaMUFjLkN4Tzs8cUpTI1dfUEJQe2ZDQi8pRilFR05+ZGVNZjY5dDAwOkt1QmFWZUdpeSYwdGJiRkphd1Q8S1JxJi9ZTC5zaUd2KywwTmhvNCx9bl97KUZ5'@; put 'OEJ4fHNWYi5RWmsrYDpxTTxYcGlrcl03bHRRamhpU3dDbDBTajA1OUU/PiVWSV53QWslU2BtbzMmL3JVLDxTfm97VCo/ayk4eyRhUC4zeS99fEksR3NjN30hMT9WclgxZDRuRkJ3KFNqWVRkQUg7YXtCal5Mek1xWX4rcF07PXFeaXc5N0c2MU52IjVYTWEpfCV7bGRyPyFfcFJ9Y3Z6dSh7Sjxr'@; put 'NSppUHcmVUJhJUtRTFJHRWgjMEFlUjc/dDR8cmVxOnVMY3xSTlc3JDkxUzJ7Q2hBPGYqWnR9UHptI0QhPC54TkQjYDE0Pj12e1c+SmQ5OXNZdl5WN2d0aVZWPDpNfWg3dHtwQ11jfWxnKkhmYCZ8SlJ0UXdwbEkpR1BIJDVXbm5jRmIhTyQjcGpvbEciRXM8fk9kXig/cFZ1aVh3KEhvMV9pS3JM'@; put 'dUhfTHh4YFpmcnM6T3IlSGthPnFiciFlK3thWyo2JFd2N1lfeyhAJnV9OlZudGt4fExkMl5DKEclfTlMJigqK180OS8mIzpfQ3NHV35wMDBzTHR8NkJfezU9QlRrUyNsV1EyfEB9UHBUKCt+aClhe30uPSp0QyJlJng5Ok5tfW5JUj02PiMlbXszdikoKnB5U3xdSWU3U0R3TztCdDpTW2lCJXVd'@; put 'Wn0sfjpPQz98PXhKe1NpVDkjfFcrVlcpNGc6NU1MSTdmbj9pITBVczYqNmV8SDtiRlJdb3doR2p8QHZsUitDQ2B+L24/SixYZSltdDMzUit1SCtdRnQ2Nkh2Q0UxKHl6QTpsfDd3VkNgSWBMXUR+UVh0VGtlO01AVG1DTUdnKUt+OHd3W3A2KSoyJUVmMDhkayR7Z0RDVFt3Wk9rKWR6aGdoRF97'@; put 'Mk9uOFJJayhwSkxdU2k6a1AsKj80PSwycGZEfk9RT3lbak9wd2tzeE8sKkgpWD5JZE9OaTRqW2pYK2c4SjttNnY5YD9FMXg9RTEsaEh9SGZtP0JfazpfP3hqSV8zU0JISixTJit6ei5URlJdbT95a3dDIy8+bHwuV1FZV29vR1ZFSTB1PHN2YClkP0s5XkhCQyk4N1t8Nmx+MyM+V2Yifkg3Qzwv'@; put 'NltTWXhSekxLeTU8czwyfjFDMm9rT2dyUkVeLGl5SWVOIyhUcjFQJk0wKk8zbDtZN0EyRkxKIUtmZzNndyF1XkdpKEZgRjtIVURobV0pdmtEK3Z0LjtmbSpNODlJSjkiNyQ7cUhEeDtxRGBVJV9ucSpQMFclR3M/RzgxfVRDNGcoLyYuNj5ISX5+JGFLdXhKe31UPTtnVjdxY1kvOUFoMHhjYFEv'@; put 'OUtkeS9AUThCIjpAPT8uQ1d7XjEwU2shRTBXVXdaVSYqPDRSamFgWCxDeyZ3Om1oWFVMNEBxWCIwREJDSHwlMV9ua0I+XV4xTVNsPndCcjFoSyM7el0ldStSNkl5dENIWnZadDpwKjsiTWUxNnQ8cis9RiVlfF1SfTlpcFQyQyM3dz1EPiV7LGMxYD1sWTVPQ2hCbD5qUCFkbDBpYT5BI1deZFAj'@; put 'QFJmV2hGZXl1dThvZztofGd4e1pvYWlbTHhsV1UqeGBjTCZqITl1Jm03Ji92MHkiTkpnMGk7REUhMH4/OkpoZGNHZX5AVXdbMD5UM2xdZ1UsTHw4LCY7SDomSitCWit2Q0R4Kn1TTH5oNFZQcDddJFU0XUJfbUVLXkJfdWtUJUZ7ZEVWS3JkSkpgXXZSTFAuMXxlSWowaWgkR1dfSVdHQSFEe0Zm'@; put 'aWVwP2BbJElIKy40RzNJIkdGOjg2ZWQhej1AdHYmPGNWIzdZK3hqMC49dGs2Wl5WbEFJRHdwXVgzRkBwKjtpW281cT81VXBpU3ZSdXBKYG9ROzEob3hxSm5TX10iUV1qMWF6RzdpPGJ3R3h0fmw+cmtvRkJ6QTckNipBTl0+JSVhfj4pWkFfe2Z5Pl9ZWC9AIn06JSkuYiw1LyU1UyQhNVteQEFp'@; put 'KjVIfj9CWFAlVGA+N1lzUUc0cFR4Mjttd2MwOjBBcXNvVyZjS0E8cDp7V1RvbnYzKWc6KFZSKUg1MmBTRT4zIVVNazFtPVJ7aUgoQXh0TyFaeThELylsfGlURG5VPCNRViowa0UieihfIjUkIUs8dTtzUG9zZ2hmdiMpR19uYjtxdlJBW25Ydl5FaWdHZWpQcEVFLHRPVj5GSCM0KWs1OnR1VkFt'@; put 'cjg0K3M5Zi8vWns/WF1wMD1jYml0M2FFfkdwbyRqJml6IzpqVGY0T00hNC89TnJYInJpdVAxQ3gkLEYsWHAyKFZASXo/RGhLKEJTWEZeVXZZZ0pOQ3ZIKS8ka3M3Mj1MN1VkY1R4X1oiXSlgZGZlOCxrXmE0Ql07aD9YZSFZbHg7eXBvX3o9TE5iLlVaSSRiQnZuRXVgNFVsY31pSXt7K2xqfiRO'@; put 'cylSellpeFpDbl42Rlg/KDRmTGw+KnxjRGRAaylgSSNAXmtBaUomZVZfI2okVm0rSExAUGZxYnhnKSFKJH15M1dRaV49PGkheVVxSUJDMF8vSl4uPEl9M2A/TDU1XTZJcG54KGNaXTsyaylYbH5ZaEZKVHB4IWgyZjdmLj8rfigjUGppLClpNGIkNFZ+ZlAmZ2R9fXAiMWoua09RZWY6RXpOd31d'@; put 'IVdyd3R7T3cyL0cpYUBXXjNfQFc5ZFpWT0E7NEM+NyZJZ2l2ZU5CVEg9dEJyfURkMy87T0FZNix6USJRUFkiYEB9YFE3VWtxNHxSQyNAYUkkMC4wNi9mYTQwOkpROW1La2F+UHheZTNEW1pmT3NQLCZHYEQlTWs+fHUydUNvamNBIUdXM2BbP3ZwbTlmOkNYeiw+cFtNUTA1diopPCIqfUFrZ2dZ'@; put 'JVUuRlZZWX0qPVB2NTNYJVhPYXAsMmFycXQ2Uns5K3ozVnw7KyljYG5leD8hNDdHUnh4QztGSUhaU1JJUX1Ud2FxXzpmVS5EdiVqV0N7dzJ3OlskYzhAS0JLRDp6PmFRbCYyOWojeipxQWZIIX5bQWJJbCltVWRUd2cpezF7SV5rQi8hbSN1WlMjTVV9TDd5MjpjXVtxO0hwbHFmZnsxPEdwWiRa'@; put 'M01AS0wvMjtoOl5pVzRzPTN4UntBT0cwOj9aY1EhbWEuXVZjQi4hWGdmcmJfbklmVE5NTjw1dXcsK0xNVGBWJkIuZmlkY3xsWDwjKT1QSWVMU0FWUChMKCoxcCt8cGRoQHBNIip+aUwoSXxuYlNlXyFGZi8+RFNza2YqdXkrQD1SezNXZmVxTno6V31jNE4xKEJRJVFqVldOM0RXendpUCFPWypx'@; put 'WDRDcEZwWWlDY1B+QjhIW3paJVRDJkwhdm8obi8hYykoMi59JS8rO15rWCthSDR6PzBiYlV2InA2aSllKiFpdzUkdDhyeCVzYDNoaVA/fV1vYiYvK1JSOz9Ee09ZR05DUik0XyRxeyVKc2J2Im9XN0dBW25bMSxNaiswdVphQEdFLkJkdjRlOmttXUQpMGomSGsxWDopUmJHRGM3VWBUSGBlcz8j'@; put 'KCxmVHQ/MVdpVXFwaXcheVBfSXBdbng/JE1lKjJMXzVhfjlidURsRH5HdkZUMSMyTXNFfWJxJU0oK3dZQDNeN2ExYzpCLGwwI11BRmpHflE9UnVJcCxuVHk4UFZ+ekJNYGpZeWBjMHdwPTo8STsuRWExQGJhQm9KQm0uXmJZelFac2ksLE8+dW15WSQsSUs9OTs/XVhJQzAzZ35eYSlaYVhVKHVl'@; put 'KjJialU2bF5hVFl4SX1OOTZxdyorWHlCJDlsO2RGWFc4T2ZlPGpTJiopY0Jwbz49IlhHX1p7Lj0oN2hWWVlgTT1Ad3orRikjMXp8cHdFek98YlJQZGYheFR1ZDBwWHJXW1pGa31tUkAiZG4xa2o8MmZ4aWBXdCkxWCpPMHtxeGJ7Uys6M3BmRn5ERUFsMUJmJWVafERtIkZSTTt2eE1wMChQeDli'@; put 'SjlCV1MoPWUwOC8kWDpdP0lFW3VQXVllTjh4KWU6Ukl9QFZeLD0kPS4qUENkdlc1Vi5LQyR7TnkweW15LH1EbVdzQ3x9M0lTdTIqb2d4Lig4e0xLVz1meExvfCsjaiNiKElHbnBBT3pYLk45W206UXU6PkZZSnRdeEBHZkI5NG5PUGxhPWI0KjIjR302OU01WDpFckFIc3osc30pUHAwKC51djI1'@; put 'ViM2MVNVPXx4NmljJHNNTHJmeEVbLD1ZaGdUQ1dMNE9nV0djXS82UXBdXjJiKFBbbTEzazYkKj1vW00lKF1GTC92bntQVV5HclM3TEtUK3xiPywsakNbRn4oOEl3VTM0eXBxbDplM2tjVHhiVUF2Nkw1bjtCKltlM1lJdVJhOGN8Z00rZ3B4SnBrNjQ3RDR4WTMrb3N1a3c6MiVhSyR6cnA/JmMl'@; put 'U0RGOFZdNGxCWClzdHdGel5nP3Raak55VCFwNiVPUCEwP090ZD9Me01udyErM1c6aE9zfD1PeiNpKXp6PEI+bWhbZTMwMF5JWl1NT01OeUIhSTIwQ2ViUTVJUS5fWXUkWiwuIzIkPzt0e2ZhYHpbPXNtaXd0aiFQUUgseGIwKmsscmtYYlR7Sks6Ii83KnY1PUsjMkY7OHYpIU5BUzs9XS5ibWVG'@; put 'XkR5Sil7cTxdZiRCJGdoRmUiPlg8L3MlYzRWd2FGcHV+cUc+OTViNyZHfU5FbWJbSXdobTd9RGUsMzNIbjF7fCQvSVRJOTBTVkokZGh1a1pUZHRbeFd6LDVRSTovRFopSWs/TyF0OVVka31MYUImbnJyZFRFXlpeNzFiJSVHYFZsPk95PT91NjsyT01FUXteNkohbisqZi5fZVlBWWB6MXV7Inwo'@; put 'fXg5aEVsSDAvSVYoO2h3U2p+ZjI0Q1EqfCF+JWxaKz0+Vk55eX17NixZYmhWOzMsMTpsSTpLVllEI1thfiNKfSMyWVosQ1dvMlg3cTV0X2pdbTJGcFRFN1NMeH4xOjU0bTZ6JVklY2NUZGU+encqPElFfkduKVMiYXhtJSxeQzt4ZkRhJipOXiI0NkxDNkdDYTF7QipVS1BiVHJ9WHFjISwsUyQ7'@; put 'OipIZSxufSJHYncldVsyOyY7SFR+dH1IPSVuQyQlKl9lQSpiZngoJE1LaE1NNzJHJFt5R002VyhNImw/aGt3QUlNNnZIUzw8eWprLDJtVzl+NTk3Ry5YVHtEYXE/aVI2R3FHbXpOUFBDUF5pRlBIVkpBbDczXkpVYVdCWVpETEM0fkt1RjZIXXw+TVpQNTs2I0x+PiZ8S11dIXdIaltmTDRYSDUy'@; put 'T3s3SyV9YFY2LiVPeGx6PSVyfXN+ejZ6Vm1OJDpfeDZoVl93bzY5LzwxbSp1UyNoK3ouYXpLYWM1Sj9nN1pGemo+Yl0hM1QwTm1nIVkxQlZXMEhBMjUpUlZYNGN3aGpidzBkTyUrJXxWMWVPSSVfLDk6Z2p7cjlyT3lOcCJlNTp4ZyZxWkhfdGhKSFkhNEAzOSNtcXszbihwPSRtWDYhRShQIm1K'@; put 'Y209dzpkSGIxS00lIVRgIiU7TmNZKnpBR2I8Wih5dHo1MWs4bkY8KjhhQG51em4mU0MkZz18eHs+X0RASyI0MiFOTHBaJHEuakRedkZaUUdXJHE1UUdXQn5WUXR7YUBmWl1RfVZ1JnBbTTFLKE19WEpQMXg6IkZ3VFclY2dxOzFJNHxaTkM8KTVNeE8lYlRabjY/WXIlWmspVSY4LH1bKnZdL0xA'@; put 'TzEuSDpONzFZV15wRF1xWTZZVGFKYXt6Nix3aD5ncGZQPzVuVUBgMzQ9VFdVO08xLilKcGpdODp6dmcoUlJkTzNndiM0ZzohQntpJlI3KUZNXTl2WCkkcUlSMTFYNiJfSTY4KlMoQDJiVj5UYFEwT0AvYVJ0YXdqUTo6dClYSkdzJS4iKSxYeHZ3KHhTQ1VOa2RBfEthKFAsKEQsb3kydTR6TENA'@; put 'T3xORUlxcnooUlt8JD5LR2hnSTo/d0JdJSMmcClKPDRsIWl6PEJpc2g4SiJfc2Z5WWkwRDNsX1IvV1BCOUV+c2FhWSIqZyhlLi96cWslPCpxNiUiemdUdUBffGV4T3RIRmtfXz5EcC9xZXFVSm82fF10VmVoVChlLkRmPF1PPFhoZ21UdlouTmlmZX5AMWw0UkYhQ2wsOHxCVFdLPU82VE9AVno5'@; put 'RVUzcTV0KmgwNCJpUEMqfT4qOyl5ST5GcGM5NlU1RixSZ2pqPW5sQCIqLGE1OnhmQ3hFSyVhSSkyKWFpTVdQT3lXL0RZP11Db0htfT51WDxgdkxaN3I2d29eSyJtQ08wdHZ7Wk5SKyRvai5vS3MrP1VWNyx8OGlwZTFwQV8sJXFIOX5naldKbzEmT2EsRnowOEhye3wlKlNeTUNYXnl0bjxjKj15'@; put 'WltdPEk0WD5fUGRWP15bLkxlOW1zT29senphck9RejQ4QyQxT2hbL0B1Rj5UJCZPaGlxTzgsVUROQFZRYTk2fXAjX29HU29TZXh6WGg3S0pmP09demJCcUxHKVYzXVBRTlpUfG1IU1lXSTIsVjwyIiN8JkJMTUwiMSZ3MCtsbzZ7TGhbY0R5aCZkaWM/VFB0UWthbWs+TyVuNlNkRnJVc0ZINUZl'@; put 'LjBJUj1SQl19M3Z0ciwlcUAkYyVqWXhATHx9Z3NiRHloeVJlfE5DYEFvVTV3ekhfJl56MTEreCR+Zz1ZRHlIQWlQJE9DYHI/X3ViYSt9PyRWaXZ6UygmXmxmakA/O31ncWxES2NKajghZF08STBvaCJnZU5NVVlTajhCaXpdWVhDYEtxWzxGS1s6SjhBYSt9dT1BUFBVbDdSZWgwdXFBJUM7d0BL'@; put 'cWo4MVBDYERvMnp3ejA5QHBWd0pVLFY1fjgwbm99V3Y4KkZ9b1BQclorWCpRLGUuUFpnbWY/VkhtZTxMXz4wJlk+aCohKTopcDFZekMzOWEjamU7IktDJW02Knw9U0Y9KTtddmZ+M0VVcmN0bXYqSH5zXSkybTY+Z1J5dVZdZjlfaisoOHp6VEIqJXNTS2BfemMrKCtqSVZNI0g/SCJaMHxfXTZy'@; put 'OGNtS00zJTVuP0h6azd4Xj8pS0kmTkZxaDNRWnMpTzJZVVNhYXhSem84UjNJUGpMI2RZcWE5OjBrb2ldTEMiIS5rMVNuPVFHenhBSFZ2T0I7eURVWzxaakdsekgmYEQhK1g1ISZnSSlINUIkdz9XQjd2d2dvKzp4PUx6RlFnbCMiRm15OUZdfSpIJEVIMkohI1FEOEZ1TFkxPUk6eGYuZkR5fmNt'@; put 'Yzc1IkZDMmRgUyJtKywsO2YuXzpfb1loYnxYfVBPYCpaTWE+SEsqTX1eQz0pd09HX2F+UD4xRDlJW089SXJgWjFDWCYvcmZCO3pEQUxuYGJ+X3l1M1p2UVllKyF5VkZ8JlFnV0doaiJkKHdKWUYkT2tWXnJadn1LPjwsU0ZzODhbeFJ1SzBJb2cvU2JHb3RgcDxmI3Y3cFFNQno/b1N3fV9JRz12'@; put 'V0lbZX1qdHQrKn1ldUAvSCxkZ3Z6PEkhQzEkQCYqQ3EpdVlpUHs3SD1xeVlGbmIjQldTOGFxRFYpck9kP086bDR4VHIzVyh+eXVvNj1YWEokR0NEIVFBe3QzJVBsdjRzNHBdRztaaFFJNSJqQG8/UFM7V2laNSJMKjVZUTxNTio0UVshXzF9P3RnRm5BTV1gNXtvOWs5anQ4byJvNlNAO309TXJw'@; put 'aDUmcjk7QDN+Z1ltSjVNQDBhWjxbQU94dkBqQ3ByfFFoOXNiI3JJVT1BRzNPM2drMURWJDtnNls9WXlscismSyE5dWlSMElaNmFIX3cqamEvfGJNcyYsPCZDS2tmYEl7bkRQOU09UnVKVk9mXUJPSiFweWl8IX5HQjtDOSY7JXxJeUgkOXxNJnEzRiM4PXZIdXo9X2hAJE1KYT9pfCU1USNiK2dz'@; put 'QmA0b04mVD10d2cwYHBDUSJZW0socHI9WF1jMk1PUnV6MWw+eXIqZUYzW11Ab1E/OGkueXZ6fnkrcjU/eDhlXVA3c3g4eWV4N0ZLcXBheloxWjE6UzBEZCFZeE9jbHNwZjVrb0J6Y3MhO2Z7WGNVSUJMUG52eTpycn10c3teSWlsbitgZ29bRHV0XlcvRk43R2o3ZW4qdiU3Olh3X0YwfnpIWEM9'@; put 'dk0leHFvTlpMMV85Sk0iejFHcn5jVVJic0QvPDFfUnN0YWp8aV5IOytWbGhGblg4fEclbTNzdVF6fEYoVUxqKkgrSTxEZCxdSi80QnB8JEpPJjVgcFtBRXQ8KHEidVIzSTpoR1lWRXRwfUdFWlAzQmQ3ZFVmOnpGVTwsK0gsSzFSTTUidXx0TE8xS2FVQWxiY1JVQypNVW0qP0hgQ1RZUjA7elYu'@; put 'cz5ZfWpWJC4sRDNoQyxgcih7RWZFVEJCMkw5aXpFWDlucUd2ZiFKKiwrUSt4ekg2PTluTmJsezpHRT5qInkuRTE6bXdMbzRPOjl9P0BjcCxMUGcqXUAvISQoezRBbyMldFprZy8+fHYsZyZCVGBNMUhrWjtjNCx2JlQ8RXopXSw4TWZEfnQkZFJpWjBpcDhQd3omQlNvX35EQjxOSk03VTNHWGA8'@; put 'SUN0cSlsI2RRdUtzRV51X2hvNylVQV5GeU4pW3lvYHEwR3lIZlRQIjwwNDl4RGRBNnl7cC5bNE0/SVEsRFNGKUVwN3szMU9lM1ptYDlKNC8hTDd7KlRuMT9LJSU1UGhnQFZ3JEQqfE16cDg2SlY3djpNKUFhOlFYP3pAVUlAeUR4R1ZYS3k+cSxZfX5mJmp7NXorPl8pNFJmI2lrMllEYjBMUCpF'@; put 'dntjNn4lX3s2O0JzTFA6UCZEOTlwYUFeV3ZedHpGTCsmRSMwa0QwR0sscGl0cDAyXjBjVCopSi5iS0NYdzA0WFFqTCFRfC59QWpjMHJKeThgLGREQ2MyLnxFaGsrcTEpO2t8eVQrRGhKbU1QYV8vL243amNuWVt3VGVBIUJLSVk0NDBoIi5Rc2ZrU1sqaDB9WHB9MHpQVjVGallJJDw/RE9eTyku'@; put 'OkQhQD1PaG5RbyouLm5neW1TNlV1On5MYSlIUmVtUkMhUCtbdGJFVnYxejB6Zld1PlpDalk5W2llQ2YoUHU5SGhdV2lKO0Jfe0o9KGZzRXleOE9ZUGJSd2t+Q007YnJyMi5hOm5ycDA2OGYzdixyPH04KiRJOXIyaDJwSHdOOFlBdEVSQS9KTVpbP3Rha2s6KURdeV9GOCJDUSM4eWdWTkN7UHNL'@; put 'M2wvPlV2TyFiOWR8SFdgTyE6TWkjX3NNcFhpZU5uN1BLTHtpYF9jKy8pWnBEZHpMOCVgIntdVzNiLFssfmwxZWskfmhvWFJVSGgvKnVwNjo+ZS9bRmk1ND15bDgiW1cmPDEpVl9MbW8/d1N9O2x8YGJGUEo6bCx3TkI6eXwheVczWEFZXllwR3F9KyhFM0EmYj4xKjJXe3prUlU3ImwzSEclK0x3'@; put 'TVhYI35KSFpDOytbPTtZSyV0MnA/eFJdT3t0JjQld0woLjBbVzMmW15MezI9Yj8laUNwWGMmbm84KkBZdV9RNFdFaSZXZyVGTFJfNjEifUB4KXBMQCVyK3lLM0FaVCx3UDNILFNYVGFKNHVTPD95Rjl6SEcyWEgmOm8rXV17ZT9feylueSllMToiaHJ4PVJ4SkM8bVd6UHRROURhOEN9WVlaVGt6'@; put 'SmghVy52emJYUkFbUlZaQ2V8WD5HSEtJd2dqVFJISFpJOEs+TSp9eC9LXjkwUGBuTzcmIjR6YmVCfVhue3UleXJFKHVaMHFjTllwQzgsUmA9cCRATktISD5UbmhOWWtxa3FXR3pAO19sMWYsPkdYakwhcTRbZCIoOjNwY0ptLlZBPFVQfF5xQkJePDtzfnR2YGdpeDc1U0xqOHhVbVs/dUVkUUBy'@; put 'LGlhezljcCVII2BwaCMwbElDMGAhLixjRkpoNDs+b3BiR1d5L3FKcER1fDYsX05jOV41LGU6SyRqRUkkeXFgSzhiaUdHY2lSdiU5RXx1JUs7aT1XRSMpJjdVdm5YK0A5ayJoTXBZfXZ1MztSZDo3YlY4V3E+ZzBOeExHWTBfSkE1OWNKbzIoNEsvP0t8QXxFRUtKNlojIV4qNF9BWSJnWlJGdylW'@; put 'ZDUieWMwIkp5Wlt4LiRdSlB7ZHdTJlFEYDpgWm9vTHhNWUJoW15Qbi8kZWVbPUNeNm44cjFVWkk9IV8pL2pVZGFJMFllW35VPFN+Kyola0hOYCx4KVZYeWlmbmA0KTckNSljJDl+VVBmSnpnRT09ZkEqMH1lRyNNe0ArPCZjWkw3emkrMH0zR1hLRTR9RjNJc0xHV2pFUCRgLFVCIisoOVNhVChs'@; put 'XysrSHZbfmhqQiouVkF9PyQzTTlAXlZ7KH5MVDteRG03TTROWnp3InA2bz1EXkMkI1NodS4wYXlDaC4sNiUpb3hwJUo9JjpQLyNkOlkicTpUUXUrZjRRNzN4ZWclRzZGeEsyZVNaJElQUjRCaWowdlhCQ30vb2A+O1R0JmcsP2BIelU+QEROWTFYaygjXlp4P0FtUkAwYTZZfm9beWxgPy9sb1BA'@; put 'dU1TVVhXbCVDdWtCLHwuZCQ/U2hRZ0hvWmdHKVVoR0k7Xmgoc1FRbC52MCRLdVkqTVFDaU95fVksVFZYSndbaEE6fVJhTmZHRkp6Rmp5dns8LEFIaz1RREQ/RSU8UUdXVSVVaDhHaz1bMmImUChJOG9ZSF53YiZkdU5RLlAweFJETFRJJWhHV0dOITV2KXdLfUB+a3B4Qz87ZkxfS0ZhSVkza0lI'@; put 'MyQvLmp3Tn56Mn1kUXo/aCQoP1V3OEg/NGVpJjBqYTBJfUM5PmlhRENPfHFzOzA9SWhNQ1BnfFZYQW53RURDZmtTJll9X09jfSRLJkxuYyNEQl44VG42Qmc6ITZ2JEtQN0k8R1QkUz1pPzR+JXdJOElLbEdlZjtVLztqfm9gbWB0Tmg/aHVPUmoxOy5RMllycCFqSVIyUmQ5VCY3eTgkVisvM3Rq'@; put 'TUhgRClNdlopZ0IxZDRKQzNrblYkM1lhJT91SThAeCIydSwsQnpiSCojeWlSNzI4KzNib2thaGNGTXQuRCl4P3dPdDN5QzksQVIyUDhpQ0hLeFBvU0U7eH1QZ115fUQsK2h+dlJqa2chSkJya29gKVQkWHksLCosVk02LnkwVUl7WyZ8L21LKkBNUzFYYWxQUzF8OmIvcH57OjhXdk9YQHN2aHE/'@; put 'TC41fVp+LzByIlovclJRaXdpNUBodnRvIWlbKkw2Snp6by43XlVdbXJqYmlBfWcxc3wsLytWYWx2STpCOmlSRzojLm5mIlZ4LmpSdUowdlo9d34ye2lJSDlEJHxJekM0fn5wRjY9LzQyTXU6W01kP0RvUi9ZL3FlWCshTUBSan1wZmhnVE1nSEB1bXA6RzZIOVR1KXkyNVpCKnF1fHNyMDA0PklS'@; put 'VmppUmIuMn5KUEQpJktIbmBNRjtZaTxYOytGcjVnJGN5P1t6V0lJPEw3cHFPYUV1VHZsQHJDTU9UV2NpSVFyWHJYSSNbWmsuVWRjMElJe3A8RkBoWDdOIVpvMTpKNylUREJNaH4qSm03MjpLeW06O3ZARHlUb11wLjBpaExDVFdNd01mb1omTGw6KT0zaXJ0LD96cGRRImd9L1lpWCEvKjN+PWAo'@; put 'PWElMDB9bG8lSm1IaXAmJXxTViVRZEVqWXdpOixjVmdXOWpmTG4/O0hSaUE/SyU1N2ovRDgkZ0MrJFVjNGJPdGlOQFV1P2pJXkA/NiVFfSY7Y0xvOU5hJSVZLmRVZmloKGZSdzBqbEJmZSFmaGZpVDtiSUh7KWlqS3dweS9TUjBJPkxfIVplWGVoVCglaj8lZSl9KyZhaVVeWmxsY1ZqVFd5NEl1'@; put 'MX0vSkd1VSEhOngoLDpLUUw8TUNpWnE/O3AiPUk9az9kRSJCfEVFLH14KEw+aDl6X0omdCVfIWojISwxI0J9e34lYXI0dDdueGBHaFVhWXc1NDB1NlRFPF1eZUtHbjZRMCprQHhPKWtTR2FefihOdn5URFVdQmdhSnY7R109YVE/bjR8VV5fLiVlQE4uJEg2KEopRlF2R2RnZjIpNyNIdmd6NFBp'@; put 'RGt9QSFHKEsueUd3UiNIc3VKPlI2dDpPYCFPQWl9cnY3c0ZLKj9ma2x9SUxpe3VKPH1lOzN+SnIiUDVMQ35tJEc5cFhlTzcvU1JiMz12MnA5fEJQV0Z8cnlKaHhRXywoZ1JaIiQ4MWxLbn1jPStlaHFZalp2XTF0YDNEZ3ppJmleQy98Ki8rYUdseik4L1U8eVkqJi4rYGoqbDw5SEk0eCZDO1c6'@; put 'VWhtQDpuJTptNnoqL1s2VmVZfl1fdH4wZTYufWpwOz4mLzFsI3M7PjF3czNFVnRmTkNlaW1KdWNGeiJacWhSTkBtKXE0dltsUyZ0SDBveHZ+RGBdYmAiaW5+PCJ6OVkmNUwhfFN3aFkvR34lWyoldH5hXXUrJmdxXkc3Jm43N206b3I0VmZdUE44d1E5MDZWfUMwSX5EMUQrdmspV3UoP2RFS04p'@; put 'TWZqLjA4dHUra1JXcTtbLE19On0veUZsaUkzQWdZfXRmYE43MT0jaj1rRUtMTipaMWYsNUk8X2BtJEJ1OXUlMD05PGV4WXV9aUlpbl1LYHFianV0d1RpL19yfHw+KEZiayFIRW5TUGl5PG5DUHJSM0hEYj9eUihDQl1abm9kT0JHZT14MVJNNDd1YnRIa3pXbjFJNyk3bnR7Omc8cDBCdFRhLClt'@; put 'KVYodDZpQDRqOGFpWCR7dXNwaHdleS8zS1gpO0QrLlZwSDtRbjZBdV16Q0UhY1BwSEgyM2x6ejJHTXB2b0M7UXtoOVVTb21gUjxmXWlTQWlFUkpOOUQpMX5EP0ZeY0hqekg/N1VoNytkbExld3tuQ3hNPDsmX2V0WCo6KHpoJldyV2hYVlJ9MGg2cF51ImN1K2BucWBXbz5maDxhMFhWSk8oS0VY'@; put 'fD1iQztaSXQsdnlPVGpMO1RZRUBCfUJZRXpVdXt5W0UjaGBsY1tdJDh1NHl1NyQoKWYlcWk7PTE/NVYwUzpLLmZBPlBtP24xRzNPKlAkLnk/JHlDd09lZSIxfUtSSltrVTddMzNKMDRDWn13R31CKSR4OEdVMCV+QV9dTUc5Ukw3UGZ2XiNFaHU+QkJESVlKPTZpfk4xXntlNC9xZXt1L0ZzaSxX'@; put 'cl9YTkEwU30zSmt7W2deRH4oaUJzYWxDJEhlfG9OZXt7NitCX2xIVHJ3UkZCQ113amFTfElXUHZVPFAzPXlxZzBNSmRoTFV5SjtIO0spZmA7YiFPR2F0TCF8KVlIO0tGdTBeMWJuYl4yOEZoOTA1dnppfmJWZFRqb15EdXloQWF7emlYfnV5aDlEM0guUXBpNyZVTzchc1J8aDR6IiooTFBnVUBY'@; put 'USNKZHsyXV1XXyNlKi8/Nk01ZklLP0ZFIXR5M28mIks6a287N3x4dl5xaSFeYjJHaHtwT1IkMEA2MXNtdnwhJmkoUCZnKFBYJmgyIyxMaHd6dWxBS2tacSVtSFI1O0dObWsxLnRlZHF0TUlRKn0kck9hdzVHZUo0ekk6Mi8uTUlBKkIueEFBS083bmJYYSp8eFpRIW5nLlNIXlg4OEp6Q09aRUF1'@; put 'OUQ6RiJMQ0FBQUFBQUFBQUMiQ2gzbGt8WDlMaEQ1ZDBmNSs8IkhqfXhOc2t3MGowIUcmTSNZKnRPQChpS0hkV20uQFkkM006OjkmazY1PC47U195Zy9rfEhCOEpfYWN0QlZYIVptcj8yKS49YXZYPy9Wc01HPUhpODAkV2l0KEZ3X0JQYGhQVT1YIixKe2N0Sz4yazkvVT9fMzthXUtSRmdGR216'@; put 'OnReTiswRk5wTVU4ajtQMEZTS2NaNz5pMmxYVVtGMHVdKCE5bTAmKDxGe3YyT2IodyRNeThDNztzdkN0IT1SSy9ObGFedkcyUUlrVmIrSkZeNjU8Wz5LLyI2MkxEIUBaZSpkPVBfcSUvMTpzWmU6Q1NRZW1ifE1ldSM2OE9hI1Iue3tKTixJUjVQTFtbcDlGMmgkQHlyVTh4fSgkSFtEbk93S3l3'@; put 'ZlhhSC5vSUNCOXNnfHQmeGlxWG5wQ0NyZn5TQEZleUJPTT0xXnNHN0lVNUxfeCZJa1tfdWgwX1RnRDUlIi9IZ0dDTEVEUkwiVGJWOm40aUdNNzQsK0p5c2RMcVlndjBkRWMlPFB+dTFOLywyMUspPG05ZEQva1F2UXF7OUxTKG8+eUVpQX5IVzI7cUhUdDdXciJeKHg0KEVrUz5JajU/aERqTXk0'@; put 'a0MhIjxWSUJfQFRQUHkqflV+aCpqKk1wemspemg7KW1gIW51L0JXYDJienhKLGIzc1ZmM1loK3h0UChtM3FlcXd6ZVszMlBqPHEkWXFbW3ldNy4+W2I/dTVCLEZvSEpER01hO2lqQXViUTVTSlFJTHMwXUBAc3ZzU2wve0FFalJHZTFzRWt0djliNUtCSiJ5TGIhQllteF59RShMLlgxIUYvQ20w'@; put 'NS9zOj89UHdmOkN2ZXZgLz5TN1cvb31YQCZsJCYoS0NPc14uKWJLNlFvU2F7ZDtbPHwyZT84Ujh1OmhiLGdJYFpDYSs8SjRgRzJ5clUjR3J2eDh4bit5XmBNQzA3ZFJCbyMzTlU9IXUzcmN2S2lyMHBqfEUkejtle3VEcTdyRX58dCZESTIma00kdlUpSSozX15OX1UhcXVsZDpbcy5De0dvfmg9'@; put 'eEhHKkNhO2RsVDw9MFhuNzpZSVZpTHRzUF0rajBfRnAzZHNkRG8jUD9JYVAwdW5MNDUodllpRjVFLn5KQCQoZTZtXWA1RFVtT0c6ZCRWNWswNFBWQGU/WzNoLkpnRXJgcW57X3tGfWskN04hKVdwPHpoYHZEWEIpJHxORCpgOkE9LFkmJiZdb2ddJE5bL19RK0YwaVRZMlVqaFVEMWcsZk5NZGRe'@; put 'RStUPEZXWmlaPThNTilORyFUZUdoPmtPPl57fFl7S3JhMnF7VlpocE97VS4hNV47JEUqLEMzUmVkVyMoVXo8ZDpAVjlXaHFrS1pGaShPJjx8cExiSFlafmN0KW4jdTx+TTw+fHN7NW5pPnNeb058bENAY10pelRpQWtBS0pqNm8mLlhRJkQyOyl1OFssWzV8X29JIUJ2VzJbVFkwKl4rcT9vcTNV'@; put 'SCMse0lHdTZ2LjowKEN1WkN7KGg4Y2twWzMlYXxrMDEiV2hmUylxbXVvN1NySlFwcnROOmsydHhafTZCdjxdRkthNTtDYWd0X0wlYiZeQ2smfFBgPVQzSjxHSTczdTh2PSlbblI0Y2RbbCRELl5sM1ZnfHlDJEJGPiw4LGdQVD98PENfXXdjbV18SmxtbX1ecDAqSVQ0UD9dPC9UZSlCYn1GUlto'@; put 'SEZ8VUJsPD9BRjddR20pUmdBZWgqM34pclUuc3F0YnY8M3E7K2IyXj1JL3NBaHRfOzNAKH1TTkooRXVvO35kLm0kXiRsVlpdfTI4KjBNQnprbzNULztFMzxJez0yV0gwOl03MGlSSl1gXWJIKXkqPTMwe3k3SzdrZHFkWWYzejBQUmk3JUJGSFFiUnxtaUNHTiQpIlZjIjgvLHsyVG97X11AX2VU'@; put 'VithWl5Ac1YleXhpZjU2TFpnMWd2SGMqfmhDejcsfSJWZmVkUDZDODJgR0p0fThiPUwoMjZRVXklfV9UMj86ej1dXTA5P3dsM29tUVZ6Wj0lVS90WywwP2E0RHJtZiVKfWQ2OWp8JmlaInpVPS9kUWYkJkssSCNONiVNUTMsYVRdKCpOZXdFfCJuP1hgTEcrPExUK1E2eHtCLEJJNzJdeSpPN1Qr'@; put 'YG5kPzAoKzBQRjZkMDh1X1I1YnBgPnQsO0ksfmsra1IqMFg5KF1mRiI3XkIhbDhgfXwralZWMWM2Sj1dT1pmXlQ5Z0pjMk5COWtxaUU3dDZeLDIrIXUqOFpLbDxYZmgvQWNWU0hjdzhBLjBQUTxFWztQI2RMZlJ5KXJUcmwiNTp3PXtjTFhkJU9dNDw+S0hAMXImMzY1MWdkN2BLcWZCNnRkMnNE'@; put 'YzNgLl4jSV9pV08sQ1NLcEhyeTskV3UkMT9MW0h1NUI0fT0+NngmUkZMPSFNQDhoR2UkbUdOQDU8VGkhfHQwfGZQWk58IX5OKHNUXiQ8dyVGU11hPiFWOjVqMkthQE8rRXsqeDFKK1FbL1JUOjlFcnBvTFlBZkc8JihJYj95LzNMJmU8TUdtXVVdalckRX0oTkskXlBOcHVoRD1xW3xzIlNsYG0/'@; put 'QEAiUkUvNm4qVTNRUVZLQHUkd290SnBYRSkvL3s0Jl0yM1ZZeGMoflg+Q0Ymbk80cW55PypENU4vQGFAUXxZYTcxcCldZzl6WmxjL2xdOUhRLlF1ZGkpcmhGaz94TlI8JTR0RndIJGJrY3M/OEl0NGRuUHZnLjZZZjhKWTxgKks6V0w2bmpuNF5lOiE2P0dScnAjZkZWelZGN3RlV19qZnBuYT1X'@; put 'bSU/fW85RH1iS1Vqd0VOb3RTNiN+M3l3LmtqWSRqOz88R2RCTiZfSD8iL3dLTWNlKldkfWwlNGU8P1lvRDBndSNwKHo+VVYzdHxCeWoyI1A/YXEvJGZjRG46anFBW2RYOmIpSjNqXjZCd2NOITddU29jZ0tpMkxqMiNgQzdGXjBEeTJpcEsoTkNQMHs+QnRlTyNXV29nbTwsPU48bUZ7JU48P3Jv'@; put 'VkZlWWthezlGQEg9I2JYPztsSnUkMSJsVkJ4UV45b2ZoTCtIS2RZRUcpJiZ3VmFXQTk2TE5sSlV0dXA8a09zMjtTOW1qMnpZVG9eUnVAaF1tKGdFJXYjZXVCJSkuQlFpblAkUGNUan5VJWlqJi40UjUwImoqRnAzWU13OXl0aXl6IXFEdylhYiVJNzY6a0hvNTV2MV0haVZndWNENkc1di4sNVtg'@; put 'cy52P2t9PVM3anp5V1FTR1NwNjpRJGhtY3A9QEIpR0xiMSpFVHlAelsxfSp3YTsoT2Q+NEc5U3JALmIlIU91fjplIklVMlVUMHRDZV5TUzxFW2k8QHx7TTt4LCpuTzN6QWJpWjZgK303T0Z2RSg9MlkmSUpAU3N1KVdJcSQyIiQxIXhBSDYrKi9IUzN+TDc9Lz4jejdkalVWYy47Q0NzLF16VCxd'@; put 'RGoxJTtoWDZOMz9CdEZZbyJhb09QU0NidzBQQ11NREhNaHx9ZEYofnpxY1U8cjFgbjtuQF5ZZTl1IVk0USRUPzUoSFpEa3hCPSs0T2JUQF8rS2NoZXVyLElmcVJFVFMmQzkjZ0dyMm5IIyxFeylVKlVwPV94QE5ANlRNajFvcEdrOHtSO3liI3hxTVJ+a1ZSI08yel5ZaSZtPH5EaG50RF4uVGoz'@; put 'WT12VTxgQjZTdXVKKjN5aj9jWzVRPiYiXy9wfkg0IlY/QSRFe0hAYlZhXUA9SWJ9fVFjM2VBSl58KFh0YnlRUHhCIVRGR1U4Tl5rSUMrOnJMb2k7e2xYUCxudE9CdVV+WUU0Rkl8SkF7YnhXSlhrdn1TY051aGV1aztUSl5nUXNiU0o9YFhQXTBnfjhKbUp8Wj5leyM4JHslaX1sVG0qVVUhbns6'@; put 'VngoQ2UxYyxsUHlMQGFwcG48bGpPJXY0cEpfNCtLdTVXQ1k5fkNJVHFddmd0VFhlZTE4JC49dHo8QHpfO1YrLHdgOEpANHNeY08xW3NIZmRQVnI5MkcpLFdFOyxCNXlCZ11CM3A8NDBdb35PMUVmdERrTSY6XzM3TVd6Z0dwPztNVk1DTGh7UHYrT1ROa1FaO2VdVUhiSEw8SXkoL2ApYFluPHtr'@; put 'OiZ3bFQ9OHJ1cEdEPVloTXdzekZXIltbME9QImhKI1FeXXBJPWVdVyRLI1VNSDB2bFVVdCxmXXtGKyMqPFNlcVVDZkxvNyY/an59VTdhPkRhYjNuM2tuclFXR29JK11DaiJFPCM2KT51YV0wbnh0IlVjTTgjRFdJRHBabH07dXVbMDVqSk1RRCtoLkkqdCF0fFhSfURudWhkKTBgPE9wdD57bUIr'@; put 'IjAwV0MwPXlRUjYxUXNzfVEza15wTCZLfFZVWUpyN3w1R0x8aFQoY2Y6ODRrVEFwOUUxczRqOzFSOEtkO1p4entoT3hhUEM4Q1E6JXBfNTNbP1RARFg2dDt3VDVnYno3QXpfe0EhT0tQMGo8SVFIVkREPi4sWVUpXUxXLiFuSjVpbXFKOClORWs0Y298aCZDRylrcCUiTjRmdWFhR2RvJTMpQWpf'@; put 'bCg6ViFTSzRFOSZ5cTo0a2s0OF8qYGsxNWFzZWtRRzlNYCl2USFOMzQiPzhiaVZ7RWU2byJEXm1QSEY8V0AraTVFX2IudmVfUXF0UlVISmwvfWJxYVVVcCQ1eGdbVHZHLlt7V1AiU0BtRG9gPi5nIWpQfGtQckJ1eUlHIXxIL0JJe3AzZ3kkaXY1UlRzIXR1Snxddzg4X1RuX1U9aH5iImNJKTBo'@; put 'O1tZW1EzbipbZzU9KFtRN0dOZXloQUNVMkU+RV59UEg4MVJvKmdRIy8lKT1AfGRMU3I7NzUrP0ZLQlUlRDFQU0A0KXVPJEQ9U2NKSzlLZ2VdXXQ9NVsxXlIxazU6cCE1Ild2aCV6PVh8aCNAJHAydThCb3ElQCM8Sng0KT5eKGAsanMoey9HO1FPZ2MpXlhOW10hTndsOn1TbCE5JXsxW2ovclFU'@; put 'VCx0dHdZczY3USt6ZGEhZlNTe3JlamxmN1IoPzxeaXNRaW1qb1d7Z1VEdGp7QGBrbHcxQilTe3dtX0gwPGRAYn5yK11pTCMpak5OPnJ7b3IrU3NgTTF6YiwrZHh8MkRxRloxSXskQXkkcGspRVczKUoudzs6KVVpJVlpe2FIM3Z3IywxKVJRais0MFgrX0VORV97UCsyc3IvdjZQXiV3WkUwU11B'@; put 'Tkg6bTdWfn5FTzkkJDErVFpeW3k2Uz4iTFNoMkRgQ3pwRzdFKlZCTUxZMlhRKjphVWA3bD0wU1BkW3A6aytbS2hsSUk1SWQmI10vJlRmKUdpTTV7eXNNSFVrT213emx3bkhufVZnRGtVRmk0YFlQSnpwV0hOSD1ONHx3UWY6Zzp9R35hJTg2Xm5zOHwkaU9YSTpTRms3anYiS3djPHk7IWJ6JFdm'@; put 'N0c3NVttXz9MYlo0NEdUd1t7RnIqaSVtdSxjY2t3KEp3ZlM9NFQ1MyQoYSp1MDtvdFF5KC8uQEtyaz8rb2BULm9ya2UyJDs2Z3g4N1smM3Y2QWlVeE1mPWYjT2thXkViMjpoJU9ZRGpWamVtYk9WfCE4S3ZtTHhLMiFDaFJfMmR9KDJsT0pyRjQ9YCowYzdFU0NhQHQpKEAzPjY4OGZFT0hVXVlX'@; put 'ZEk7R04pL2NNZitCQHFYRXQ4ZXFWeW4xam01YkBkfSkhIXNGVTIzMnlqbTg+THY2O1RkVmwhRTpGOyY7ITxWJG1vSms4LmBCeUVRSE15OnAuKzRRJGt6Jlo8WSUvSCRjU0N6XVBQaWJdWW1XJn5rUC5QPlUyZE9dTjxaMShAfWI6JHtXa3EmMWNyP3ZOLGwzZiklc3tJMH5dUm9CP1NvRjlGO29k'@; put 'X1A3Slg0USpQKThuPCxpP1o8WzwkKlV6RyNPM1V+Lld5UmN8ZXJIW3RLVCF0RHNRNnNaSyx8aSRHTD8sbW1EPzFMbDI1KGhSc3NRU1hSX19nTUBNV30+dD5vcjQhcEZFaWpWeSxaUXs7TGVzdH1bPlt1aEomL31IUmN+KlV5XTh4W05+JG9iWFFxPWUmP2hNIkdmKSt3bWchPDd6WXtjbUpOOHB8'@; put 'PzJAZypoZjhBNyI2WDJESnRQOFBzfVs6Oy82SHo9WH17eGtlQndoMjZ9d35+RD5ZZn51Oyh8SG9kJDh2ZCRpKXtGVnpgeVkhVHA6RjNtQEgyWmBaSVlRNno5UzhIdHFddEpiO2AkakxKVTpHNWU7LkMsLHZtM2hhP0A+b0k+Ti85cF59biY9X2BzcGoqdGVLYmViTXhPKCpUWURnLDhFXTE0ajZr'@; put 'LjpWYlpPeWNdLF4sJCJyQDtPWzA2Qkg6NzBne3NnKD9GWjdubS9nM2x7bXEzNTE2YTYsaHEpKDwobGYwUz0vJFomdiwpSXlSTEBZfmlFZ1IiaTJwfHNZMjQrajYrKnFLZlJoIyF+NSFdZGpGT10/PnBOfHhWWSwlPklFbiwpKHJnbXV2VlJmIUx5Mj9WQCpoRSZrM25+dykoRnVxeSFUU25QUXJb'@; put 'Ni5OSGdea1NAbUlZPDJCR3k/fWU7QChCTTZDRUZLSWZ7cUFMfGQybG1Fai5rQHooYEtPaytIRFRkLmZkP34+V0E9KH5HdlpISHVKOT8rdlYpckJTLEExZm8zODRzLzVdPDled25VZlVBY2wwa25Aa3N7X3B7VHFPfWl2OD8wNnpgRUtPXWlzcUpMQ2F6LCQwUHlbVXQqVjpxZ3dGZ0IvYys8WGM6'@; put 'fEBART11XWZDe303O3t0fDA+Rmp7MXEqaywoI3NaYyRzN11+UjFiQGhpNHB+PGJQbFcoQ34rYFZtbmI+dDxDYkZvPlZIbk43MkpbMTomV09YcWp2XV1kay98P088b2gvR1ZDdFZaVl1XcXw+O3U/MEJQMnBCWms8d1pFNk14VihPc141aEc7RW97UiwlaFtJbmIzRzJpS2F3OGdkajJ4Y0VWempF'@; put 'RkdacDlCIm0qaUEhMGttPD5pNmQkUE1EJk5kZCF9Xy5vM0BJPj5kOWlAZFlVSCxGKTBdWSFHZH12NFolWmFQPy99JEhVLz5OIkI8QiYuaTxjd0sqLCxEWW9Fd3k8JGkzSWE/X0dZdlR9M150Jj5rZDFJX0JodDwwenkuZnpxWG5sQCJrSTckI3YyKVAqIUV6YkopUk0/Oip2IUldbWtrejImPkZN'@; put 'ZV9+fSN1dXAkJkxrLkhkQUxYVUMvNXR0Tk9tclgkUmk3MWVMfTBkZUIjZkMqZzQiPUVKX3JDZHg8LE1KYzxAVDA3VihqNW5jNXZfL2B0RnA7a1lwdHMuMnhQM0EzQnBtKnpMT29HSCZwdXU9e197PlFqPi8kKiF8bGZ6UylNQkxyeiZpYmlebjRKMTYxY21fPTslfkxXL18hfm9pXUM3XWBbcFMk'@; put 'Qkl6UFk6XzwmRiVvJFBGKi9GS3sxeD1jfUhJIkkjPlJ5KipjSWRDWDwrPCY8OWgofkJLUSQyUXIxKmQ8dntTWjA6N1l+ZXxAdTZuI2NKP0ZFVFpLO3s1cFk4TGNEXjRmLy8hWEhFUDA4cThSaGhTYkg6UUV1UjNLdXgmKF1PbzVhN0ZyeVhYMU83a3I9JHVyIVI2aTxfbmdpKCQoYz0yYFhbI2ZV'@; put 'dz9xKktiN05PSGQmO1Ire25DU3Q/ZU9daU87Wkddamg3KjxqdEdlaF9DQnEyRTlFamY1I2IyblhmWUpjIjh3MTUiMWFJU18uPjBWJjlzL3s+XTp9fmY2cTExVVBuMnAjdH5mLC5YeyksLzIhKWttWU5XUHU4KjgyTiNPLnNtPiRCQHApQSpPeWh2V2c2WlhxSDUjXytDQVBKTzRXVlZ1STVqTGZA'@; put 'bV5jUy5QUSJTVVZ2TUV4TExablp7QnJvYSkwfW5waXYoVGdKVk49bXZ6SC8+JGBdaFoyLl5GQT1GTnhlXWNKQkRiZDBmbVFgcih5dihfJURgandYTlYvelpHLHxSO002U2IsVE4vfD5dTkVKUHUvN3ZUdis3RiEoaGdTRjpedyg5TD8lX1MucXk0IWBLRSJ3TDQvbj9fNnEoa2AwJF9LJG8sKl9p'@; put 'aXArVyJTbVokNTR3NlY2Qk1oQj1lNElCKEBFJVk4Tk44VEVNW3I4IyFXXzFYUiMsTVtocH5Rdzpda2RgdX1rM15EQyMwYTJ4N1Zzb1tlPFlVfVZQcVBtKSk6Wk9qIV5JbyVvcHlKaEI2YE5aP2Q5I2xrZEEsRkMuOiJaZ1gwUn1YWl5FJU4wJSMuI0JSdlA/dEV4MDI1WT1TQl1PRlF2VkRBRD07'@; put 'YX52Zks9TGt0bWF7anJKRDVobUBjTUVCPXNsPn4yPllEY0EpM2g7MDJvIjY5QDxsNz9QI1UmUksuaUlXWENWaGwuSFB9VlM5Qi5CO0FCUl5EOSpNMGkhcUlIc1p0dStEXjFxU1l5XiVQRH1qU0BfRUJ+OXxXST1DeFBieUFEN1tdbnhkLHNCcDdgUXhwRGdOL3BQXWdMfnlTXTZCYWdwYkpRWCpf'@; put 'MDpMdXQlMC8kY1k4cHdJYEJBIVE/ezd8bGNwLkRdJmM7KDRSSShrKVNMai9bKzZ7TUZmNX1iVF9JUkhwX2gsZCVMZmtzYGkuNX1qS0opYUxLRHtbciZWQ3xwfXxBKGhVJXMpaT92OzhXSTFmbHNIZDZXcyZ8R0tYP2R4eyo/MSpgTTIhUGVCeyQyK1s2VDw7R29Xazh1TzFZWGZ8ImUlfmdZUXsl'@; put 'SUIiVD5hUFR7UTw6fUg5ZFRSUXM3bkwrdU1dYnByJj5ZUVtkYnxuNHNbaEIicEI5M3NXN2tpSy5va00sMnBYbDlHQmBiY154I2lDZE5hcDkrNyN3Xj4xaXU7Si9UQ3xVUUpEX3pMPGY/Zm1Nb1pzYGM0XnNJUTFQMlMxPltNXWlIZm5Pe31KRzhmeiZqNmppc3trMzwsPzk8SlltOiFKeltJPWJJ'@; put 'RXhsPGw3OFVaVDdtVzpnI3xtdWE7cWE+bCNUP1A1akdWLkVJZzx1JF55bi95LlcmYkdZJnpycSpkaGUjQnBgMzE6UXJ0X1tKYkhGMiZjOlQkeChYMFlGdXQyQks8OUMobz1HQHtlQ2dxREBRNlo5aHo7bWJLaF9vRW4yTlM+LnxPPkR6aXhoX00seiJvMiI+ZyZMblZ8c1olJEBLKkR7YVNgW19C'@; put 'Uj0sdipnNChhOTpCN2paPFh3O2AhWnhqYT9DcD9SaUNbUG5aVX1MdGh+aF1RJGUrXj5TLFE3ajFbIWwuJG9GW052TjoraWJJI3Neemo2OFNYMGdeWltZZmlzVXRyR3pTXiFLKjIhWXl7aDVEI2ghK3A3VCwkL1FOYWQzTFlpeXp8VkthP05zS3tfV1ksPSQwYSxVZlZUJl92ZEhDSGhZdk0oOThG'@; put 'U0JiV2w4KiwwIkNvLGQ0X3hOcCNDLGA9NV1oMEhkeFFVXlNgfmcodDsscyN2I18kQlNJbWtUeXZ6IyVxSDU+TS8ldGs3VkYzT0FEQjNJeipuW3ZLNSRmQyhyYz88NWRMNSZ0JSxnLitROXgiaSt5WCg/NF0lWzEjfFp2bWZBIU9jLzIzeGEqfWdNP3svcyVdZCwwMTQyKFtsOCElclBYKCNOb2Q3'@; put 'PjUrKktXTTdwbk8ySUM8YDtgRzA2SGBYSy5aLCpDYzopSz1CSkN0b0khWUtsaX12PDcsZnM7M2hUVlEpckNUWSZZImBhIkBEMGpILktwIjVvYW9PNjVDeCNEdkNiRD1mUHlbTXU3LDFBflE2Pzt2UVhVJEB9el5kN3JPKE5ee3o7I3VvZFpGYUVNOWtkMGVsSEBPYXY5VysmNTVBRjZgc1EiNV9K'@; put 'czhIdnU8b3o0Y3g3cnNwcFckVyhMXz1LZDFDc2lGdHppaklsa2xTIlZsRnAlJkNIXXRfNGoyTW17SVt3Mz49aGUpVW9iImpfPVdlNC5WQUBWWSowJWtsPEtNbWY8XypwKjVqbCYmbzNBVkw5az59aDFje01ObzxxSEE8bC4/NHZDeVQmKkk5IzE+dWx+elpaWzxgIiQrQ1Qudj9vSX00PWtUXjVq'@; put 'Wzd3KjdNLGdNPXhWbnQ0S1BLWHxMLCxyRXs3V0Mkc2E9akZ7XSNwSnw9UUs9InBnYlI3akgsKls8ZjAzO3ZHaGloYmBxWjQxVGlKM2xrcSYwaXJ4NF5aZjc4KjR3SX1afmcpRH52Llo9JEVoQlhkTEVlIkBNekt3dVV7b1hCdU54eDs/SzN+T18iYzYuKUhzPE55fTdiRVhsNk1UZCt6Qlt0O001'@; put 'RFk3NG8jfkYvQUY/VEldQitjPWtQVWBaKUAqKyx3WW1dRm8/RnM7PmYwUGQ1NkxTeytLSXZ4L2l3SUhGOUBdMm8sOj8+U19tJGZxZX0kV2Z9al97MiFganp4VSxVbkxfYUVgfVRFPmFkZD15Wzc3e1EmX3guaDAqYSsuUjN1dWIvY2JRN0Q/K1pLUCUkZl1sKWwzYWlrdSkkQXdzb2QhT0NSfDIw'@; put 'VkF1WmQ2X25sLFo3aC9OPjJxVWp+X3smOVZfPXJYRCwlYmNUSypVR2l1fS8rcVJoQEs6PE4lY28oPl5sbmNhXWIqOHQ1eTF2JnJkcTNyZUtQYF87WyUlbSVRJF1vIyRAZ3p9XW1qT3V7Sm5dMnoxZE9jZGkhO2gvNDw7cG1yMHsmb2t1IjdpTFBsfisvNX0pSnZiY3x1ZCFqN3dNWyojUUcvOlRE'@; put 'Myw3X2g0eHRwJCYsKEN6Z3REW1VVfTVia3YhejpGPF06OCpxbSFMU1F6ayg4SlJAb19gX1hsWT8jSHBzdTdhWSFdWiZmNV4uRUBubnRbUXBvbHQrRSUhcSU6Uzk2QG1hTzJQK3ZlZmZGQCt1JnZmbzQ4M2UmdE18diNIdSM5Kl8kU0c0YHt6LDllKmxbUUdANjF9O2hgPCN+SnFjVFJsIXoyIVJy'@; put 'JCNoS0ouXjhhX09iPXFVKT9AT18oZX4zUHYkZ3ZoQXtzfTV1OCFzdlFuNDAuZ3l5SkkjWTYsLz14Om50W09mRUx7JiN8N0RjI2k3XkU9fCp1NzVweUloKilgZkJKdSRuR0lUJTVYbXomZiE1PEdwRE8mTldTKyUzK2c3eXBfS0ZAS1p1VXAxInlvdzRmezBRbjZxME1RZDVaLzxgeXVlKjsrSiJk'@; put 'NFpZUUAjbGZ2QyQ6YzthYiUkbXwraE05fihJWk93cEp3RndDOVQyLFh9fGVxRDxmIW1fJkBOTSosSiVVTzVtYVdseHRjWWEuTGElU2dnRVIoS1d5VypFPCMuaU10RSp9aGs8JWlWQmA/W2BEI1EhfHdOSEk7a0JoUX1xXSlYRWJ6V0U7dksvVHA3allhITB+UW0paCY6NVVid0hgeTc3PkNvbH1v'@; put 'U1tWWzVpfFMuMHtTSCZhIlNII2IpO2o0SlhzLkF+XmgjRlY0ITc5eTxnKTI6JGYqJElLVzl7ZkMrbn4hRm9hViJ3YiQvUV54P31eVFRPSGNMO1t5OzJZSHxRQEJfckRDXnRkVCosRy8zZzRnOTZ9JWtJekovTER7YnMse3c3U2dwand7LF5EXn4mSn1sXVVdSFhYZng2ZWlvSy53O1NNfldTM0Vd'@; put 'cm9tdHFha2goeD5LYSVGeFZJUjlPQm86TShxZkR1fWRVb05POSFNJn44VHBdR0Q/Z3hwUCwpV3g5InFnQXp6flQ0PEN8SkRZaUdlSD9+dnhgPXdEbUl9dFtDMF5wYjVpeWkmRFFeeFFWYlFxP0h7OztbXSswMyksTEV4WVUiYDYsOXZTS19kSE5kVGo6XXpINSpPPzI2cGpJI2B5QCk/Q3c+eipx'@; put 'L0kpSS80LmtNMk0zLHZ3LjdVUDFVZHc4aFQyfX5iXm99I1ZGMkI4RnJpIVdJPzkjNVdNW2s6LzJMLy9TfXtDYnhLT1BXcDZvPW1gbnx+dExkaHBuPkp6ZFtGQ1c7RXpKPDhPdiJ+XikmSDUrU283Ol01VWRZY2BCdF9mUGdIPXpCdz4jV3FCUFZlNHQ7VkBbe29ZSmRIQ15BVSlLfU1lY1QjI0I4'@; put 'RWs0RnJUSkBXV1clLDR+aXdDW2s4Z31Va0YvNlp8dGwudEVNQz8pdWdhekoyXksldmhbbkJqR2NdIyhiQ0ArPnlJZn1oPmp4PjV3WSFdRiF6VkY7YC4kdW5pVVVQPEZKKG1IaFpiIkpmQW5qajJgRGZ0e3YkRE5ifUgsdHBATlMqQixGXXxxXXxQR3YmI1EpNkVvRyQoRl1RcX4vbWkpJCY5SExN'@; put 'Y2dOS19BQnpyOktPPnFBVXBqeDJvNShZTzxne3kjIz1pbFBSYHxERX51ME53UlI1SCNGQSQxRzhmO3VbZ05dMF99ZmJ7PmxgcUFUOSRoIzldKDtCW24wdCI9NmFFK0JnQThqJWFgKWJiVDkkWnI8VUVZclouVE99Um5XezFuME9Ue2ZEM3BqQ3YhengzbTI9LklhM1s0WUw4JFN1eXcwXzt4fCg6'@; put 'dHEoKj1HXjRfJV5nfjIzWUYoLH5mW2VJVnZodE1yRHdyfiN1VH4jTHZTXnorIkJiVDxNJlNbVDAqVnwqKFFiSlY9RyF9NUF2b304JTlUaS9Rfk9rRU8zIWNHVj1jfSlNT1shcm5RRlM1UGVLelI7NDpEKHFZKV5LVHA8fihWWVZJKzhMOUY7XkxHKkZOIXBWUnVQPFJBNGI2TTQ0SSI5UiwmKilQ'@; put 'cURyUjtfUiQ0QzNSQUc/Tm54cjFWb317d0U2VUd9WTB7XT48bWZzLGVHNHRDTFVpfHs8KkNNQ3lDUChmR15ZTV1oeztRd2olcV4qTkk0dGRjZyNsbClBQF5GYkp3QURPYDM3YHE9e3VsOSY9NGl7IjxJZ29GQ3whWSYqUFlOfX45fTFwVnJQNGElKHd3eGliMnErblowY1d0d25QV18iW3B8YnJj'@; put 'K1Z8V3t8b0Y9dlVvR3FvYj9RZWYzYXVZSGM8N1lyZDROe2g5JjBkeUVNeXsyUEpXb2RPIWE7SH50Jj9WNnRjOi90K1UuQm5vPXEoNmxDVExIQVhAZlp4Ki9GV3JEdUlsSVBPTXBFWG43OjZQOkcwNlY4ISVmKGA9e1B3KCxtJlBJYW5bLyZyKz0za2A/Vzk5KEs6YElhSlJaLnxZOmpqPXhaI09n'@; put 'Okw2OSQ9VkEmVmYzclM1ZHxedGM6Ujg0S3c3LnN1NlJbMlpXbjdlS2J2TlZHNmpIIjc2Mjd4dmFFajZyaW1nSFRLMWQ7JHBOS0UjZmUmPU1Ocn0qa2prQjV4dUI9b05LJkd6Q05fKTY3LClIZX1dUUp0XntSUCkufnVJI3svMzkwY1VEemhFd11WLlRtUkhOeWIoTnplVihRfDxzOUV4WltbQlFN'@; put 'MkMwbHpbfl9wT11tUi4kYEZsWnNZLkBOZW8qNTZdekVPIWgmVXM7eDJFOV5YRnU7UnUucSVaTFtVM3AvJU52bXMmIjNybVNAK302KjE+YXtFP19zfGxTNHd7LFB5T2h6c0R6fSJYWDoxd0BUPlpje2IkXXQ6SW8mUUw0VVUub3BRWXxYK2xbZ0heUFR7JCxxNll+ZC8meDQ3I00yeTBlUEpQcjhg'@; put 'YkZfKWZQe3loKCE6UDIjK2tucmlAUDBdTC9fWXY5KV92PjxhSVtAa197UCFTNTBfXUpjeE4yXj5WS1FJLEZHa2ZLMFBAai5eRTdfOFtMUDMoLFBYRVR0NVZob1pUN3AzRT8oMiVdKmxqV2VCYClZd20/eip9T1t4X1t4O1kkejYrLnp0RzswI0FNXytlPW9NT2MoZHpZfnsvTUNEQmJgW2syKmMi'@; put 'JTZUJlFqeEZlQ2RyeF5SfkthelFqZzpyUS4yQmxTZCtrLGJsdHkyYEVyRTFNMzU0OEZyQ1IpM1VhRDFVXS9PP2p7TyE3XjE3W0VeIiZ9dGw/X3xPazpoblI6KV43UU0peWVxejBmOWZUWSMqdmRfNy9eUCFublp+WXRucC42a1RAeCVxYWYqUCFrL3g5Ll9FRUZJcG52MXdVeGcocWljb2VCdFZ6'@; put 'VGhHT21YTDhGNH55K3YxU1ZjQ1VVUnB8blBjI1JSbkJSTz1wdHBXZktDIilGbm1mZmlVal81SkQ3Q0U6PDsuYE5YWXRrVXR9SWouVjVlbXZxfnoxdihiWTdXTCZvMEZ7O29gJHx5eilRe2lyOFJNSUlBbTZVezJ1PiJub3AreSFtciw7SzA6Yz1Kdj1pdFZ4JnBlfWhjJUchK3AoaHgzSGN5Iltg'@; put 'W0V0UD5yL2Y1bkhIT3ZuaEMsIkw+KFV+e0h6ejIsJXh1ailmVEk7YjElKGAxTW1ZWn5qfVhJfiZFbk9nPVt9UkhUIUosQUwufm02eDBibStOczQxVnA1WDxiLHMiP1drT3w+PzZRU3RIaCRfaVAoP2FRb29ITEZVLzlXWnckKGgoZUBiaGBCU3pxSDU5UCJ6OU8pOil1PD55OzNreXpRbEpLemNh'@; put 'bW5nImd7PEs6XXkvJCVgfXRtMDQsW1F4ImB3ZDdJWSpTPilQXlNue0xTX0xyayQqKUtYRSlhcV9wP25dczxxOEIiMGk/JVVJWkxFNCQ6e3I4UjBhL3chdzouX3ssSlg5UXdHa08+dSFKV2RSYCtDQU0/W1E/cjYpNiI+JmlaKXVKbjJjTmJ3cXJRWjVaQ0s3MzFBLyF2QT9QQ2UhemxIcjErOlE9'@; put 'P05hSEV4MD1DQ3lsU3YuTXRIQHQySSMuM3x3OFZlXXd1ZkFTR0k5Q2Y2OnVvTGopNnVIZEBMZ0UqKHZzdXFpSVsqZ150XlBhalFfdHBYKy8vQ1pTdVdXVUEyNDV7PWEjcHk8OHAjfUxyQkcmV1JGJWcrYUxaXT4lMyhJZzBgc3tEMVJmIiFLNHNuY3RROlUyczVaRWtkI3E9bWV3RnkyKmosdXxK'@; put 'R11iSCJRc3YqWDwmb3dYfit0P25raUcvRTZuWSQpSFJERDlwckZLMCNIbW05ayxEQCFSQXt1eXZPQitPOUUhZngiJS52RX1GVjtee09leSJYdlpCNG5daC9ZOmkjOHt1ZyJgNjQ5JH4obXcyOG5uIytUQ210I1N9WzlrIWE3K2siPl5FMTRIajsxRHd8cXE3YmldSDZRJls8ZF9AU2Z+JGNbNTYs'@; put 'b3s2MFBFMlN1NSMmR0UqZVUyQ01qUVd+Q2wre2NaeGQyaEB4c1ZBOFJ1KXU0KEQjRihbOXZyUyRnZSJZY0trX1FvNHBtZHIxOWx9YUpGKkckUXZlPls2VWxrQ01Ib0MzTm5DPzduN21RIXBHcUlFKFA7OyQ4KkgzOD0rRDlsa1psW1hIWjZVVTUyMkdLOSNdRyxqdy9HZE48NHhnWj9qZ0hATHt+'@; put 'NDQ9TUhrL250WEEoTWkmZUcpW3F9VHUxNVtfUm9QLEQ/LzpefDdUIT1UfjFsfl9HR08mMCYrWF8yWX1IaEZILCIsfTtJNXAjbWZGPXtZdUJFUz9ocnIrJV17QWpkWWtNRHlSLCkxblM+Omw1RWRZbkxOX2YkP0l0bHxGcVFkakwrYDVzeVd3MTZpbjFbcmZ8fCl+YmdJfDVALkpGV3h7aiRLIiUm'@; put 'YVRuLHEiOU85SXFlLG1WYnU3WVEqeTdrUXNGcDdPRiJPYDIiWW0sfTk3Tm4pKE0/U0ZjZ1JkSyZDYDhVWD9NZXFkSDszYSEpYX1fUy5xU2RRelRuRnwzN3xbRGs4VC9jQ2dTNFQmY0UpKn5qb3NYUE84JHZxVSMjP2A/JHo+RVZxaXlVaTdqQ2FPQ21nUXg2LmowPXFQemJrVyI/fUZAZERfOThC'@; put 'cjY5T2ZeW1UwOTZkZnJzPSM3Q2laanAvbUJSOFpZLCJzQW4sRVpkT1VvK3I9fitZdntTOGlIVl5pJmRXe1spUytqfGNuJVB3bmNkLmNQRDhqNiQ8fFg8Qj94enM5TE9ZaHY5bFp6SkFzKzYhIUBMa05oX0hWV2khbEdvb1pPZSw9VTsqU1U3WjFpQyYkb0RMYSx4SnhVKERlSmBhNF08L0suaVtJ'@; put 'PCFiLjJYOVdmfUlrWF8/XzdiVk1oT0JpN183Zl5hLGNGNkBleTkhSUQpZyMiTCl2OFVtVFt+IyY9TWtEST5bNSpFajhrYGRzYns6ZVUmfC9daXhHdV9pJCt0MmBvPzpkPzc1JG1ZTW5aS28vP1V0VzclZG1PPUVDSmVdTyRvI110WkUxL0N5bjNeOUlSVnVjVVd1NUUzRHN6Py87eDokdExHMz9M'@; put 'PlQsWkpkN0FVK1BTJTE4TS9eOXc0IWlRKEAoRk1ZMUh3fXRnSkw0NDhtOFd0IzlKbGtlaH5oPFhHeC5PKl9fY3JofWE1Tk02ViNzbFBpIXdgcmFodVdiNEs+LiRmKDl4L3RUZFEjJE5YOD0pWi8vUSM3LCMhWTZXNilkXWNJbyt9KEI4eyRKVyFPM142cXd3VjJiRWNzSmlZazlmMGNXQStEIj14'@; put 'bD0yOH1ET0xeW2dvNFt8U19LaHspTUhzVWA8M2tbKE1TZSNwXmoick5saSJMWSkpQ1ZUK0k2cj0zbTswZmVDMUl5NiM+ZWNrIX5AYnNVa1MveiolJntdPGE0Lm9jb3AiNXExKzV1PDF6cW8laltSZWgrdHNAYEZGRD8qJXhSVTRFeS9HM0Z6JV9tOT53QCwwQ0V7eCFmZSxSfEtGOEckcHxdWj9t'@; put 'MSo7ZUt6dnojYG1RaGczbW59XzBdWSJKPCsqRkdCVltdXkZOIipXKyJ5ZDhIRj17cTNQZ1YpWzEqVmZlci5eYEtXV2IlaEpyMCtCOm9dMihJR1d3cWF0eW43Ukk+PVFyMnppLChXc2ZwfDVoJlFNeVEoX0t7Y2J+TmcpQCgsYm98SGU0dUYiejN5c2p0QkRSL21hVUtXI1d9ZXJ+fjFafCJWfDlM'@; put 'MVVUSFYrKDwlZnh9UGRkL0g6MTNscVFvLyxESzt5Okp4a21BUVZVPHluczcvRTMxYTMxKkU+LFh3NGU6OWlnOD1jbHVdOUxQX1MqdzFkPHRMW2FPR0c6ei9TKjZscCNraS8zX2dHRUh0I09gU3Z8dC9mW1VPcT5RKnhWeDgjMH1USlhJfC42MSJ+empeKFlKbixaaU5Zb1ZMZSlDfGQoNEJML0Nu'@; put 'UENncD93YVNFVjp2JG9vOiNld0NKZj0sUUtZSCZMWHhgdihDR1RiSzZkWHU5fWhMSHA2TH5oL3RyVHl0PHczNzwoSVNtYi4wV0dMWD5DR05mQnF+UkhJeGV8R3JPK2luVU14Zj9HcE0/YltJS3hkUF18IlZKPUx5REArISw2N0UrfmJyL0V+aCFHQU9bUmQkYnFAcE43NUN3KDFUIUFebG1wLD0p'@; put 'bC81Wkc+KnAyXXM5OlAmIT92K115d29EbSQ1SH1sOTAyPkA2UTokTH1oMjA8ZDhlIWxWLElnUV5RWWsuSkw0cGZKUXdJcVVyKXtHQUc+OShLWVd2Zm8qUzxOOSYqVnM0d2JEfm5yWlBYfDdjaD03eWNCfHZON2pWZCUiISlzPC4wXXZHenA0WEIlajM6dGp7QCZlT2xMbVAiZ0FNeFB0bDB1JUhI'@; put 'RUMrKWdranElLmxjdVFVT1BPUlF3ZylbdXBCUHwzJFZXMT5CLHMzY3BVXiMmX28uWSwuaCVZIUY2Ul52KVMjWlJDJWZEJTA/TTAoUzw8MiJMYn46PktDRi5veHxCb08/bDFudGdVVzA6fiUhUG4wUzlDfWNmeDxCcEwvcyJSXy9jNmImWGQhKVAkfDhZT1dkfjFLO2RWPSJIUUx9ci5hYzk2Sndo'@; put 'a09MdT5PKXIpPDQ/ZUdxQV11LHB3MEVaaSNrRU56P0R9di5iSSV9OUVzVisrcEszfihlTWo/SDE8ezJAUTl9N0JbZ1VCRiNdVzNiSHlpR01WODA6YTk6Ul0kb3BfeT8md1AqQW1WP1RMI182M1doNEFGUVZHRE96NXFFTlEkYTc3VTEsMkIvbUp4SHNya3ljaSh6TjMhTU1OOm8+Izt7Lj4lWjpN'@; put 'M1B6VTlCWzZOcmcidChfYDosRE55STIhZ1h3KX49KV5eV1tIKDdsJGg4UCw7M3UjNnE8WjsqZFRVKS8ifCZdYDgrdkUoMVhPWmZgKCo4SkorUnxHRWwmSjIsW09xSyk9JUkwZmtaRTtHZF9Ld3JVW0FBdSpzMkpab1c6KXhHaSx9OGEjSFldT0JfLzN3QVNZPHQ0I0omeHtHSGVyPGtndCZVO0NQ'@; put 'T24rXSxOQm1meCgmRkhPNTs2dForLDx0RG5gWTtzcUBtWkpaUz9qSz9+OSltQio6dEd4d3B3ZENPXzJjWFRwfnF7PyNyJkNIQns7NDYkZ3tpQGNlYXV7cF4+JHZZSXN+aVFuRW1YeDdiOltGYzdJZHB+dDYvJU0vMFt1JSkwOlhZd3NOXy5GIWQmS0ZKSS95XTtMJFUqVHF9Nl41WjxaUms7e0lz'@; put 'dCYkU1RITFk7MGJeNmk/Okh2XyRhPmFnfiMmeXJdPnklZFFpQjdELGVFW25YWHlJUkBGb1prdVApT15SZT5RemIyI2RFWnk4SiVZSlROJVVoOTE/W0tRTElANiJyT2lMRDkuRX14RG0qQ3xzP3NBSVY2M1VAeERrPE9pR21FPF1RblN6LG92KmxHdy5lSCxFbzM8fUltdU1aKjZuKURJdmh1ZWIo'@; put 'LzZsSzk5OVh4Sk5BXj5KLCMhVUtGaVVeW0F5dXQ0Sz4+aUtjd1chU1k2V35TWHgwbSE/LkI1L1JxZ2VOJiMiLyQheTxZXUNZWFI3IUx1RT1pUi9kclhGUTVjc3w1PGBsSD8xQmMrd1VfUCZdMlNHVFNXcCoqclVxTCImVE48Ql42eCs0Y1h2VTloWmBKQUNYRGF5aV5XWXs2Qm9BNVtOcUhHbVA1'@; put 'SkBdMHw7KE8+NFNTOlFwMnx4RWZ1YU5DUE1hMH1sMjh3WTNQQ2trZSlhN3RiTWUpanh7NUk2VHV6Y35rcSREXlJGNT56SUp6b15iYS5eIjZ6X1gmeUsoPE1YbzFpVUg2W0tPOTxiWFVnImh+QFgkYnYkYD4kVWQ+Slc7OmN2d3dzN11QQ1FqTmBANUxSZUJ9dWtKPXM4RCZRMj5Mej1FQnR1JC53'@; put 'fFJ1XTFeUHB5LlglQihPZWVOZ2wqNjYvaztnQCVpIzcxMXxkNU5JT31iRDYpb15dXWFxNWJTQFc2STxAYzp6ezRubCskPEklK3N4MTpqLlF3UkdbV2kmMFRsdHV3YkMrInopcGlnemBEZjRqYmBfMnYqSXZqXix5VWMwe2ZtNTgvbzx+SCZeN21uZ1RtSHB7R1tPYHwzKjAxMDU7anh3P3Y1ajls'@; put 'V19NSW94LDlraGZmdywxQjN8YS5mVmo7T0Nkc1pGRUw6Z2UhPVZKVnw7cTA7WC5rcnxBQCViS1Fna2lVciVdZCg3IXFuKUNSeUs+RThCUzVMPndBc3dRWEk1fmI1SWdxfmV+b01oQ0xFT211SlgxVSkhaH4oQnQ/R14/cXUrZm09fSVYcV1SRF1sSTxuI0t2T1UqOEAlcDJuYXF4aikvTHtIYTVe'@; put 'd1BAbGI8QSpfITxyaGYjIltQVUppKnlaPjxCW34+MD5XUWBnJGFtI1tuOjRHMiU3dGglOnltOjU5KTUjZ0pjZVF3Z1dXR1tUVHFLVHdZWy52SzwiVzp7Q0Q+TTFdSztqaSZdUmp9R2gkTmYhOU5PKEhON3peXlNsKEFJMC5AM2pdMS9NdUM8UmVEPGRTOnFRUTwzc1NnfWkuLzVUOExOQ1l7P0R0'@; put 'bFhQIzNwZFdvJTc7dC4pOixIcXdOR3kwYFI/Z0pYYjppJldUPl9yKmJZWH4uZ353PWAkb0Z4Y1JdRVBOQnF6LEt7NFJmTF9kKWcoTTtkakRzayQxXmE0dys+VmIuSTJVUEtsVSNGR1RISz5eIiRbVmg0WmJdXXppSHNlZWVQXzRHMzF2fk42OmRfTSRydm14b2oqV2ldfCxjM11NTWRSUjEya1Fp'@; put 'eXlLZjUwK3JwbFhkUCRHTyhmdllwbEsyYnthR0tkXkYrUXN1QFNiUzk0SjVxdnVlbXkuWUMiOUdjdTl6KDwrQCpTXm8zVVIxNXRlUDVSI2liMC5WZHFCX2heWUo/eChlLllrUnBnLklbY2ttamwmWDNPel1eclk9ZkxUQXVlWDtoJj1QW1ByVl1WTEZFbCYpam1HaEo0NFd1K3B7Z1A1M24oOjVV'@; put 'fUB5OCNoZDs8UjhtR0g2ZUtjc0BbPU1UZWhnSUVRQkZ5ZG9hclFLbmZpRGZSWDE9U0oyZS9IJTQpc0d4KEpNXSpJNTFTd3Zdcn07PjNxXStaRWJ2cn5kO3JuPmJHdWk0I2tTakQoUER9ODAsaVhsQTckbEpsLFE6eSw1TkR5ZWAhPEBJVnVnKDtpSlgwLzRUfE9OdV80dEJvaDtrQiNZU18scXM2'@; put 'OilFfHJdQkcsJD1CV3YmWnBoeSs/KmUwIT5rO31AXVBjZis/MHxLYmd6PVEkZVpCOEl9blV+VkQ6UFljcC5ndzkjcXxOMHBVaVt6LnZCT3QwKEdrYU0pc1VrKzNObkw3N2EvI3R3PFE8KzhTYzA4S0hXV0IhV1k+anlYU1lNcSEzQEBxOEJOOXBNPHV5Im9zaHYjK1BfUEE9Vn0jeSRUX05qTDs8'@; put 'aUh6MkY+LkRnYSw7UzlzRUwjP3xtUGU0T2ZBTz9RTl1KUTY/VkR3cixJRGc3MkExRWhodV93PnNPQ2BAOCEuOzFZP3U8Q0xnUE8we2QlOTR2c10sQ149Rm13KUMuazRjfl1XaiIqdGxib31WXSxMYypHZGgxdlVOMWVlcyFDSGApV3ZeLjhmcjVPLD11QXo8OUF2I2h2SilhXmF3X1ZUb2V5bFRA'@; put 'cS8mQzVWdjFfMTRBdV5vWj53QT9QayEmPF5YYiRZS0tZSFgoZj5UREJoNT9WPm8oMm5nc2JIPzJaL0ZAP2QzaE5VaGAxTjRaPmJHSUd3dl43My8uRDdoT0NtYStzViEjU0pEVmRWOF1mUmR4L1B9KkM5UkRfNGBpP1ssJU5kbj5MKFJUMzpKaS9aeW5Pfn54bWZLNyxxSlFWfFYwLDNGZFJhdjko'@; put 'UHclWEZINE51V0Rpei9nUUJ6bjhKd3dyREtHUz14Wzd7bmNYciI3e2UuamZwZWJaeXcrQ3VKYkxjbmJSb0I6SVFOcWFHVX1bRDFQWkV8ekdLPnlVUSp1VmVEYiM1Vkc+MT8/X1phV2ZOO2gvJTUxRDJEPXp8LFAheWdpeGd5bjg+eihnVDQueFBlcTIyTVNtQTtpPGs0TVhWPkBaXjJ0e3hkfFEo'@; put 'XW90ZSE2O084I0d0KWMxYWRaSyNhTStKYGFbUFR0OGJJVzdiaCtPX1V3ZTZLQEJoYERPI0dZP29+ViJJN1NDQVpGbX12UV5dR0FnJSFmfkF0ej47aTY+fWdUMCx1UiVAXyVTTkhgMjg7RD4oZWYyeXc3dCVLNVJpQXN0Lks4PDdxNVEwJVBhfjt8O0poUyNVX2FAeG1LUkNYcER3Nk53MHNCPVVS'@; put 'Oip8PmtxJDB7Smh9b1l0Xk02d2JYJXN+Z3pkRi58anhZJjxXSlhRN1ooZ3k4OWQpc2wxYF5hbzU2bUdvSzopOmFeZlN3eGEyYSY3aT8vcFNiUnc5VHQsKDRfZ1pWdEM+STtLXWw6bEpzZT59ZXk5dm95QUdpNC92aikreE9tMElqZipZaVZOUnpqYHM8YzVZeHlEekV4aSIhQ3dfJkU9UTFXN212'@; put 'e3Q1NWU3bjVId3FWUWU3QC8mQmZ3ITdiQDM+OnoofiZLMFIsZS8xQ2o5ZkZfQSJ7UjltR2E0fWdPb18oPz4lM0ROMytOb0BIMyJoaz1ELDFwUCRCa0llRiVnb2FSOGxBZmhONlBTUUl0JkZVMW5EcjtDcGgxQnomaWcyN31FSW8hRSJPSl5HRytNWX0uWTdxV1puaH1yZSlufjpSLiEpXVhJQSU1'@; put 'OkkkW1UrdDlYTzsyJEpifSNKRkoyMHB1T2FUUVRuX1FqZlhrfWh3L3ZJd3I8Z2B4fW5aQmEhbkdya143ajp2O1dDeHtDKn5BNDh8KEEldWRtcV9wdixSWV8wRGU4ZF5qTCxIaFYmcWdwMj9eSGJbKHclZDJ9KWxDQ0R8aT02NDJRNHZRcVpfYlk1ZHtSektqe3ZAfTVzTVtUXURuRDlUK2pEOUxr'@; put 'WyM7Nio3VywwJWZ2e3Y+X0Uldlt6Py8uP30pNk1uVWQ8fHopcSVLeEZfYXswU25PRVp4aU12KUtOfT88enBLeSEmRXpzRzFyWTxDREd6OH02VmdIU1djP0JKYzgxZ0tmKXhjRj9QOnZ7MjklayR1WDtLWW05NXledVFjeHJ1UGQ3JkVlUDdRQ3dmRXZGYW92cTJocXlCSHJvNDlIJCRGTl9Db147'@; put 'UUgkdUVeZzBqQ3gye0E4ZlRHIzEpUmYiP29EO249LHlCUClVPFVBYmVyfG54YD98XyE7LEg8eD9qOS9XLk47MHAmUEtpaE1aQnsiSUltNFpZIix6UEM/Y2MyV1tlfGJvRE5BeT0/KSE2NzBQYzFhM3dkVGVNN25vbixXVCZtbjYze31KW3VrMT0iaSl7Rk95TE4rdjQpKS4+LkF3TWxmRG4xbyVb'@; put 'bmlkXX1lX3FwPnBZVEdaa0ZIKz5mez4/MzojP0FvPXFVZ3pscWE+LiN6SjJ0aHlsaUR0Pkw9VXgyVmZ4V2NqQVAlSHs7M3NuM31JLGlJdTxTd2c7MCNIUFNVPWNbPnVVcSRaL2VnOSo/MlVpPThISDJYeUBHQlkzbEZBM1pge0Y1fXFAXnEufXZ0SS9kMH5xKWgjMVpNUEJoNmYvMDQvenFnfFBp'@; put 'SF8yeFZvdHwwX2ApOEBASHJHPXBxUy9qS3BNejh8NDVKajBaenUkV35wY3RYOX1CNHNCYHttOyhSQ3ExPXB1KGhFbyR5ez0ybz9pcHVwbTo3V31KWFhTWklBJX05U0N1cFF1VixYcGRLczxBZX5LLjJUaE99Q2pHWUc+T1slYDlmbW1hfGlnKDArbmsveWFTIjlePzlRTT9aJUY2fC9jTVMmWV8p'@; put 'NGtVJlhIRXU9WDt9OnJ7KGh6MEYhK0ZnOk5sZWAmO1UxeHYyTSJNMzFDWzR0O1lhYlAhZzE+KUxUO0h2fCl0fXtWUiZeZ2htUjJ8Wkx1TkZTZXBrZFBDampTNVkrYVg4PHIsMGskeEY/eTs7QktfZ0h7ck96Ml5OX0daekg2TzF6UkRiLktvI2d1eHM7aChyQFtSO0ohOkREbUp7JnNmKmtuOXtB'@; put 'ZiRWTkVPY2Y8KXx4dyg7PkBqRGpzdnh1TU1BRjJlWVc0fUY5dlV8Vlo8YUlUNnRobHxkNWQ8RHVVWz0iQykoOEpta0ZWMVN+K045WHZsNWRrRWNqX3l7aXNyJXx4Rl1fUDBfQF1iVThNUyEmPlVAdnxgKFB0RzooZixYWmkpQTF2U3BgV3lWSzQoOjkxTWFtfmBMSE5NWH1dWEpsMCtZWD0vViUs'@; put 'P1Q5cDdEPUgmUXdMeHBRLEY6Qi5tak57LHwxT3szbilMOCh5X1FQNl5SQn0wPjV7ezV3eCxeXyJgdF0qWzFhVCkpKEBUOkV7ezZaeEU/NT4zVkJYcmtbRj5+MVAlOChfaGpYJkBgdktDTD98cjssOjFhZWJtKlk2UmxFVzV9eiN5WUhPITZeUmx6d00pRzwrYDd0bE95Pn5ET0pYM1tEdGVzbGho'@; put 'e0MlV0d3cXtKWnI2YHVNYjRQdHshN0ZWXmFxUmhgJUBOfVJaYyw+bzJ3I2w7eVR0XyM1RWhSR35GbX18UnlrPCIveWdSVS8zfGtMNGgzX2twcVlEeXxwWzpBclhLTUhZODZAfEQ8InxOU3QrekswVCEvJkcrIkwiPj9oP3g1d15rSjhvbXl8dWA8V2xeSl4zMXdgWzxxRHt3LGJyV1dZUGZoeVRi'@; put 'NTtzciJrLEVJSy9NeEYlanhfOHFGIl5yJlo8bEklRGddMCZlaTtzPW90ImxKV0pYckZwZUZNe0BdVlAucz9AVnl5MiM2QE57SmYyPWhLU2UoaCtgK2AiP09jMCEhNDMmYjdLNG5fTntrTHwlZiFpO2k4d2NBOlFzSHBFbUZ1RXgheVVvUUQueH5TIUdIYkQxSXZ5YCV6Sj5ZKmlXbzUybEUicVRP'@; put 'MFtGdCNNZnNzQzw1cH4vUm1EWG4qWyN1fER8LEcyRlAoZnZ2bXFdWkQ5V1pPYiF4aEZ2Y2E6QHF+aVNXJjRbPnRxMFQ2IyRZSXo0Z0M0Iz1Ddlk5KXQzSFJEIWAmZ1tzYmFee0ZoRWxzMH1pW0IiIX4oWztKfFZjX1gpT2dedjg+VXkvNmhLI1BLcTF7MTRFel41WHY1dndITkYxSnI0UzBodGdx'@; put 'VT4ianc+fDtTUGI2fTs+d1FaTVI5Yz49O00sV1IiN3VaWWAkeSNnLiY6aS8+WFd+ND5YL1lVZVA0ODo4PF1VNCpeV1tmbFVaISFfdUs1WmglL0ZgKF8uW1F+b0chSmE5IUh+T0VZZ0Zdak5vPkI2cmo/TW1CY2NzdzAlJmREXnQ2Omcmdl1VIlFCclFuPmh3L31GOGRRRkIxOz82cXJ0IU1leG1L'@; put 'KyFhZyFzW1Z3NG5HbCFPdiJRJU5UbDdgOChVVmZNYj45Kllrckw2U2ttS05ebj1UWHFgUmQkV2V7VCx0b1ZZQ35jMSp5NGU6KTBKMmdHVkRyeHlQVkw3eDkoXURQQy52VERlZFByQVhSM3FhZEBOdTN7fS8lXj1XeVI1QFs/Yzt8WnZ5PkU4UjZ+RDdiZzdELjNMLiZbbjo0RypzJFd9eEAhPH5k'@; put 'YVg4YzpiJltPVXp6cUlLPzJnOyE9ME0jO1YrJmdjZDEvRmR5RitYTHM+fnFMfjB1bGtxcSJLKHtYPjBIWEp8QyR6dVd9ezNAKSZSPXVRRDVmZ31jZihgcjY3bE5ZakBxV2ZoL0taPCR6OSpZYzw+b202N0UjTTRZOFV1OlJgOHFWaUZqIk87YHlIeml4NX1RMmxQZD9JckY8M3FvQWdiWDhDXVVP'@; put 'RHtwOjRpLkVIOUdYOCM9ZjN1RWc5cWxmcVpmdHVmYDFpNVJYMUo6O18+YVlGSk4hcU52Lll5NH4vKFE9JHgrRz9LbWpOTlljIjtSNEB8RiNfRkNOJiRwaktMeig5Km5ZWXsreHFvOlU+Tj8wTDQkPGoqX2hWbzsyLzQrYHA5TDVdW0JDckdhX1s7KTJvYj51PlIwcEUrWXA5NWFyc3pMNl06T0w2'@; put 'Lno9NXIvcHhmcFshISo5RkBHVl9DbXk6ejg3Y0R9YHVJPXl8Kyx0TENBYWglPjFxcE5Le1RLejFgWnR4OmxNST5hJDBiI3pKajVhRUIzb3lQUTFhQ1FzTWZYYypITUBdfk4+NCRpfmlKViFRSXx9OTMobSQmPEM8IXVLX2g/e2RxPmc7Xmd2cGJDXSM2OkNRYnpZVllgOURuTjU+KyN6JUd+cHlg'@; put 'JUtzbS4/XVlja0hAK1Z+WVd8I3J6PStZKiphcnU/IjFZOEs+QHc0I3xqdnh3SzBqUHlJZDMwKTBrXUFyfT03VHhANV0xfUBZQVJAZWhlaH50eVkpKkQpUUF7OXcsTDgze00lLGUsfj12Wk4zX0FLbS40IV5BWDM1WFIpX2FGcldrcmdbP1AubDluS1lpe3xXNGRgU2lYOX5LMChsQSVTa2wkfmxa'@; put 'e0VsRmdOZU5Vb2YrNkRwV1AheTt2WHlzM0khQWJUdDlIUDpWbDx2NWpZYD9aRyxnNkR8REdzYUtLJTFrclJONkpVSk5WfXAjO31mOVc1dCVqWld0NG0oN2pZRWpwJWxCZ3loUlBZLH0uQzZkQDZqSXJkaSNsUWI+IVE7TyV2VDtDNn10SHMjfDdWMCJQSklxaEAldFolRW90K30zYVdON2B9P1FE'@; put 'RkNmMS9MYkcqZ2NYe1FqWig8Pjl8ODdVU0pwbzFPaXF8MGFwWzF9LFMkQ11Tb2MkOkNGQSxAfnRxKmVsTlszanZAazcuKyI/diloVD5OJmlBI3NgSUhOWFJrNU0ieSEqX0dHRlJRPjU+TC49THE4Rn05cXdUU1dEQysqIV56ZUtsTXElKXh8MmUyZkZ8e28rW2hAKEZ5dj9wV05VVGI5dDo6X142'@; put 'WFdvLjRSPUMwMHFjZSt3P3x6O1RsRGI1Z3Y5Ry8ibj9mR2l3RyJNdm19TV14Z3puK1tRUGdQUFVaKSxyU3tROzszbVluIjlJfVlMUXZ3VmVsSz4kRXQlezwxQE8ja017Xl12O3QrQHR9NUZAYGZ4cztCejBDail5YEFPbmlPNkA5XzFVS0RZWFBfMVpkZH1XVlFVfmRgS28sNik4bjRNZms1ITFH'@; put 'aXMkPy91bHNrbytROy9NX1NROilzWWAxZiM4cypuOFE4eTZuLmpKeCxaWl1PUSRSd2RNcCR9RC9VdUNzMS49UVh3RGgidVRfLCplNkF3ZSRraVVeKlhbaF1fOjlHTmdDdzZeNXcxNlhZMFU/Y2BVP1BkNWRQQGlIUSYiY14hQ283dG8vWVRLezpmRHRLNi9XNmAsQm8raE5bbzNHTFpNc2s1MVUr'@; put 'bGM6MEkuMzFFRUpwUW1OTUx8LDFKOHl4LnN6Wy9sW19SL05gZDIwLmVwVXVORjZldF9tbXgzeFpbZlhpdShDL3o2c2QzJmR4Y2BvJm5BIXBsU3ckWWY8T0RvUzJbMW9Gfiove0pudFhHTGh3WDBdSVI/IUN2I3VTKnApO0BBJEokdyx1V2d2XzBsI1NWQjZMNSkxeCp1eTtfez5+XV1hcVc/W1dA'@; put 'JiNmOCR1VjRsKFc7WkpIPGsjMFN9WEkxI2xnPz1yPCpEQ0oyZCwwJVtRczJ8SUI2XV86JmxedT93NXNyY2VHMWJeWDI1PCh5bHsvVmJoaE4kW1ZoOm1fayIjNTVlYExkRnFEPnhxfmldfiRjaXw8eWN7Iz9FQH11YXI/L1VVQmJOd0BXS1JDUzs3YmRrbD4lN0VOP3dSOWVaWHg4IUd7R1lmaU54'@; put 'ZyFYP0A/STxmOC83ZCRYWGZJSF5JVyNMcCs5ImFSNHdXWHZHJD4rW3p2Rjx2WXw1U0JpelJ+QHF2ZVt2c3FpQDB1LHRyYm9XQiE9WFRWa3BQTGdHYX1sMGg4UX5majtCUnN8InJBPTI9MmtiV1FuIjYkKUBMSXI4KHIjcT97ZjNUanpsMkt2dkA2Q3pSY2oqfjBuUWsvNU8wOiFeRTZMQUpWRUFe'@; put 'YStLJThzYEZ9Y1Q5NlZhTDtSLCI7PyNEcWwzJWhSfG51U2d2PXRRayFySV1jOCZOTEh9NE59aUJmdjRmZW5UYiNMIjYiMUdOUkM7bmBLM115OjpiI0dWLCY4RVcwOlR1S05vcTRPN1huYjQvWDRqUWxqQV13dVQ4MiQrOEx0MkVyLDl9W0hqQGlYSTlsQGNYfWJGTlg0bjdKKTZaQCojNWp1e3xj'@; put 'eUVDVlQ6akZXQX5PMXhkVzt8JGspamZgOytEVzYqWWx6QHF6PjghdHZCbl9FVHIqQDhLe2hCQGpsRU5RSi8qYSlXc2p2TTBpXlFtLjxoVUlyNGBaUlZkTF5fbzBOLy9vN3x2eTprVj9IaU4lXjB2d3xXPFpZeHNsTjV6eFd5P21NcyxYaVE8XjVTJTsvbjMoYTFEZVVVYG5QOE5SfX1NK11KWE0q'@; put 'aD5vIVZJcjQ9Q2MkIXdlfU1lfipuSSF6Rj1BTmdrWCxORG5ScFVuLD8yeFNzYGpkYFRZXkRqS2NjQ1J6bC93YGtbRVNmOTdFVkdNfWFNZ2ppJCoyXVZmMi9Ea0ZyYiEud3J9UH4wYS84SDM5cmpOe3dSImBlYTIyQy4lRCQhYjdJdGN3UF5Wait2SHlYc3sxPWNoWTF6YCY+bGwjXyIsdHhzP0lJ'@; put 'YUd8W1srTkIpRF4oKFtpK1pETzI+TU9CYG5FV2VnRGksPHZUfCROMURASktUekMpc3hjfEJNbiVPKDY+JH5jI2xBJkRvTjwuMy9CQ2NvTzljbjZJXzpXUSRJalBjJmo+Yi5IRWZiO0gqQlosfSxrKWpLZ1IjNSpzR3tiJXI2WXxBJDxsfmNwcDMkIXckQGxPOUF1PjAkPGpOX3VxcUt2I1tZI15E'@; put 'WWReYSgxOCx9QypmRV5nWlk9UjEuIkU2aV94K3t9LC9fOGpCb0JvbV5XX1Zbdyt6aFJqdjVlc3d1JVd0Ljo3cCFwInlJe2U9XmMuRn00fntqfTQ7fE1gKkxFXVE0dGZqVlV9aTdSQX14Q312NHp5bz1PJiRNS2lUKVslODFGQXlZYTBqO1tQM0FoWSFbNEdubC5RMk9ELkl9UXN7endGcmlPaWlA'@; put 'czBlWC59e2Q9OU49VUMlSHcmdCw7UUtnekYrTnB4cUNxaU9nS0ZMRUp4PGpiJnNtbltUdWUoZkFEWn1DISglRmBxVTw0aWNSPnxHQFdWdSUvNCYkTTdpYWZsQ3RQeGg2SnNwdXNzVyUwS2x6VntaQDg5IkwoLEc3TU5DP3thcGhoTT0lMjZVckN5Wn1VIzozJUNoIUpWfT9uZXdhLnYyMj5PN20y'@; put 'N3EuVVA2JjxkeW4uQ3RDV0gmNl8+amo+JmFPP0ArTjllR0FHcDxhYnFocE18WWsve3wjZFpMUH1aeDVtcFs6Ul0jbEJ4JklRPFB4cyo5KCZwbD1YQShbPkMjbFd4K1JwMH0iL1Q9c1J7d0A6TnFTbixmOVE4a195Vk99bjc0NElPR3c+bnUrMHJrMEUob2hSfEJJYSkzIzVeaTFwcWVHIWlkND09'@; put 'bzVuRmheXVBxKERMXVIiOVRdeDY2Zm9nZVR7JHM/QkliKHxPLyQ1Lj4ycTgre1VRXmdVVyxtPnhMIylBUDwubSVoXzpDZFp2aVpSU1BhQmdgZk1gKjovIzx6OF5GUj9UQ1ZtN0ZWUUtmTWJ2VTZSLyEwemFOWWd6NWt7QiN+Ykl2WDVlPlcrOkcoelRveGdeUWFEYTdheUg4ZEZ+WzNxfDx2ZERO'@; put 'WWlgVCpIR28+cy4pLjIyVV4maE83OVAxZ2hyUiUhMnVhQnRETmFDaiUkRG8pLmdPLCZxX2JUJHN7KEZdQUlxZDMwR1hHZGFGR2wpTlosTE0sd0Q7SF1Dd1s0NVBlbmwhfT5yJSpvemc6a291UyZjYzw9ayVlLDcwMmQ2Z2IrY21kWls7L1JUWm5AQVg0LEM3fCpudHhGaFVCXTV1Zkw4PjMxMyRA'@; put 'NGh9anpaIztjX3ZCcjZ5eE43MUttKD1dY3ZCJShPUCZBdU9+aXplYEl2WyQuXmxIXTcqVUxxWjdJVH1UcWg1WnosZiNgUypra0dzSSpQZ0NDbntpZFV0UmI+WiNZPGt1OztkV0srTn4uei9XKnpuNkFkamR6SUhadzU6PXFESkdyckA+VjJ6Y1JwPVZnZV5PKVtoMyV3WCold2t7WGlJLHcxXmo/'@; put 'JXIkaVVudlByXntuWTM0QEIuYl5hViRJM1p+L3Z9bldpIXk5UHRTX10oNk1wdHlpb1B4eDc7fC5laHJAUjZXUHpqXndRcCZCQ206Ozo3JElUTCI0aDQpeV13Ril6NTUjNz9xJUEiIz9mP05wPEBqOGFgIl91OyQqRilJPkw5TEt2WUJpbm9Ld1hSQ1Z4OEkwaXRsZ31wZiU2WmlwYXoje2EwUiNV'@; put 'QCZBN2tuRkx1WSpFe1U/OlhXYzNrc1U4WjVFUVN9Wk1LPiZHOj5XO31OVDRdQzspbzVJSl8yam5PKHAiZERiUmtgamxSaCghWUY3WXB+Nl1HK1ZMKD0sKkZ4JjBrZGlybkszNGJlJGovdDE0QS52XjdtNykuOTpHVy5eTV9TdWwoOHhqV1VYfS9scSpzLn1WI0hFUHNEbUx7fChXLy5xN2ssSmpA'@; put 'TkNSU0lZSTQ8fURyPFhsT3BGXilCTiZ6UU9iQUcyUTI6LHFyUHs/ZlIiYmgpd2VzSGIieE07Z0JPZF0qOEZ4dkM7UmtkWkZbeGBKakloXT5dNCIkdT1KKG9gI3R8Y1cwbDh1Uj47NFQvd0hVcTZQMHRQQ05pPkAqbHhdXnpab0hdVixPX3dpXn18Rm92Z31WWGBoSHxCOE11RFJSNCRiVnw+bFRX'@; put 'aGBCfm1AXWh3PlY9TlpwLjJhTCojUFo5MjtrXzU0STdrPGAuWVd9LzpVUXt1RDh0I0VZXjVGZmZxbUZrKXBbS3VTbSElKDs2QjZXM2dJWTVNTyRQZUouMCkxQHBLWSpmdX5UKnk0WDBKbn09WjB+O0hoZihuSXt4UmozajVBO0pTRU5ZT2A/W00wNldHbXApYVdFdFZhP3hGMzxyWjlRYCR5QGJE'@; put 'OD9RZUdVYyIiOCZtTXlUcVQ2dG41KG15IyFzbCRVZVFuV0NmfU1Lcz9kRDApWVV+dyJDd31EZnxTPjIzKT5dUlldMDNJVHtfJDxrQ0BVZFZLdXRuO25GR0kuUykuYWhMWzcmdSZrQ2E7L0dOMzp3WGJyMW11a1tfSFFRaVBnOlhybyldeXFGbVZmdmRbSSZ3dkxdWUNbSTp3Jl9mLiNJezohMTBa'@; put 'KWhgV1F9WkV+cmZzK1U/ZF1zXXc+cGw6aFMvPVBwemwmM0xkUmQqRXU8XyQhNix5U19GfCY7el55R1lxeW5lbllQdkFBdiRdKGFWKWsxcGNYQTJFeHVlPXdsM1RILCVtPTc9YjVnZlhsLyZXelljXmM7JFd7SlsiOmEhZlZ3XXQ1KDoqXzExPVJUUzNATFR6P0IxaiFyVE5SKkt0QSFMeUU1WSxI'@; put 'S20sW2lwPX1QTV5+UGJ9RkRmME9XQD8xZiM/S2ZFYHV+TyY7SSFgQGIzQF5oVjQmSSJ9RWFVVThLZ3BCaiw+VU8uTiR1L2E2QEMoXVcuZlhdY3xUKylSSChLSXBSRFdHTGAwc191eUUwXzs6OD9+QEwzdEJjVTYkXUwiV3UrQnMiWkxpVzJUPCl1Z0srQiE+IyJHdURsPlY2LCxvI29gNVM0OTxT'@; put 'RjZFMXZWb3cvKHZ3d3E9WWE9ell1MzNebTF0XSxhWFhVWm48KyZxODFWTXc4djhwQ3pZbDlVZWttOHR5eURWTFlWeVBMbTwoW2l+OiVDNEdkM3p1b3lSX2VgVSJjbGhdOElVWm9MX0lmcDtrQjoja0s5dj5NRSQlNHR4VUVJJGJwUEpyNVdPXjh+KUdqVSYkez07QUFgUG16UnB3TDQqI0kmRi5m'@; put 'Lz5VMkY5fll9WC5fRzlIOW9oQDhPYW4ydUtOVzxiRHlgZy4kK3NqTjEzbTQ+UGJ2Ym0pZD1MVjAsfnlUI001ZGRwM3gwLEEufDhMd2wofHksdHtuXzt6T35TakNSR2ltS1U9KWUwOWY9Q25MZ0JJLDRJTXBnSnMjfGVifTI0Jjg3RnRwXyhTNi8wdkcpUT9qTFV5QHV5OWQqaVBKP2tzM1RNcmYh'@; put 'YjlQVD9sQFpEfVpGVkxgMUgxNFkzaFs8M19maiwsKVdbPixmcnxNOmkiK008THBIRnQsdnhULGZ1VDdaZEZBPHxUOTV9cktUWDRCNEAxUilGWnhQPUk1aFk2SGJHeDciK2BqR0heSXRlaVkme1Vld3pgN1V8QzkqJl1IT1lWW2RPPy5EUCUsamFoWVhdaWlVdWdCOVd0cVVCTClNZEwyWzFAZVVj'@; put 'XU1DVCFGPUpzNXtOTV9Fa2FAK2o7Sjd1RjEiLFtfa0x8V2N3QVQ3SCwoRUU0LlJXW3VXVC9SVF9LKHYqWGNgT30zZC5eaEReUHh5bWt+fjczUEY/ZH1jPVdkU0crbCU4OjxBKVZUYHEwQz5INyMkaFU7VXp1IUpZZy5VbUtNTj4ySkojV1hPSUdsN1dIZC5qSWsveC5pW1l7JVQ6M0hebDE1YCYs'@; put 'OXlrPlR6bT9oSk8lSl8rTD5ePFFpSE5qZWRTTVFUcGtAYiNEIXc0JlVXMCk9c0pqMjNmcnB4UD4wSDtFYXJ0W2l2RXNQJHxUP3drJDBDeXNDLmQ2JWI7KD1qTXFCW3lpYnh+NVlwMGprNzh6T3pGRV9aPEJhNGVVWG5qOSo9MkN3ZTVJLFt5a3R5MTdjZkxhSSlIKlI/KFVnZDw5ZW0/bi44TGpJ'@; put 'REtLN3Vxe047NXZEY3kmZ0khSlV4QnlTS05GVkgyVURlKUYmRjJOVi9gaUZPZlVgUko8V2spYVhPMT1UJG1zXT4kYSt3USZRcXplYUJyfXg6UCxgM1RWYXRAcTE4U0YvRHBpd3pHZ3BqOFRfW2hOPT9Jc1V6ckRkVSxGeitRIz9PV0Z+V1BBbDsqPFREKVIlTHV4QnNsJWBCTXkwd342SERqIV9n'@; put 'ZCwmdWxuaGAkfFpFN0glTXEiRltXTGk3P3ZYcTYhMkwyTWwuI2pQRERUPnhbYjtJNVJLQXVgXWhvW0YuOTVbanklLmYoPU0+XXshSndoOHZhO0NDJTJMPChTezclcTpGcF1BP21UbnpYZ09gVmpDRzU3Knk3YkR0ZFpKaVJlY315My8ocWkpK1lmJC8ub1kubWVffGBoLEt3b1I9cjdfWTRjUkRh'@; put 'JF1pLFsmOnhUJUk/ZlEpPSEzQj5jLjJZRn1yUSR8O2dQLkMqLzc+O05ARmhZMEl0RlBzQEMsX2RVfHw+YllgRSJrNUZAYzgyVnB6MUNJLkQqOUUya3tPZVB2LyNyWmszdlI6OjFqelRXSH5Gfnt4fEBBWzJTdSEjPEVfan1ZTDl7UGBlQjh1KiNXVykjPG87OWRNJXh2OVBBOj0jdyR4Z3lfc0xg'@; put 'Kil5OGV5dCZsPkpPaXgyfWl0YG1FamtWRSomdkVbYjhlL3JQSVMpS0xmcWlhIVBLdD5YbEJjLFt6bXpbS3RNWCM/T0hUIkt8SjxeUEQ1Z2xBdjdIOD1rIloyTjFTYzx6SlhBcGBDNEZPUjJbaz5Xck9Nc1YseF5baFVqVj9BNHE8MTNMX2I/K3ElR0VsciNZM3wmTTVMNmV9d2ZbblFuWUU0Pys9'@; put 'SUImalJ8Kl5jcTZ9PFkuYyskNno+JCEhd1loc0BwRnhDdU95OFcoPFRLOj5VL19XQWElQiVHTEs0Oml3JW07Nm9dUFA0THgrXTNXT1E6NjZtPjUuIUBkQjBuc2tiakZwTiVBIl12WFkmNmZETyE1M09OLl1lQSkpMTpsbH14Sl45YiNFOmtCSHdKcVdJT3lzMXpXeSEsdCo3ITt5a28paXVCPktU'@; put 'eikpNTw8SWNmTEUyMUIxYlpke2MjL2FANzNMPlIzNXI4fl59dTAkN1hNXixBXXI6dDgrKT9zY0BVIjJDWklMX3xMQHg+Q15DO31tX21bSDdRO2pibFJieHJmSUlCWEp2JEc1VSFKS3J2a0kzb3Y2LGRsLmw1P3NiUD1oKm5kMmxmPkJlW0MpLGpFRihHNEM7WXFdeE8oN2U2TXMmVyMuNTkrM2Be'@; put 'SHQsWXdEfklZPTl6RDp2fDFXK3FPW2phanRpPyxmZSkwN0xQOikiOjdqOnBtKX0jM2F7ZiF7TkooXWYpQVFCPi56X2hdU2F2KVRfZCxXQ01yZEV3ZGYlKWEpYVZaIXpGLmVxbEpaQU9XWFJUOHc9NUh5LGdYK1R+cUVfXn1hUWJ4OCZUeDUsfDVKNDlQfF41LHJAaUxDK3ZJIT5iR00pWkdiL3Zp'@; put 'aHpKT3hmST5ZSnw+OHQ9U35sKUFAaiJNdCZXeHFQOmN2KT1eeFdHOWslWU1DWD5Efm5oRGp4eShqS0JIYGo8WUZSdTczJXZrayJpfVchRD10LytpX35NQlNlSWlVbWB3Q2BNe35TVD1DKlYkYWp2K0NKNWI2OUxySktLLjd+aiJpXnMlNl95QXp1dSlqbE80bHMuKz1MVVolSGVkdCR8OmkjRmM7'@; put 'SkVDLjZATjMvdlR8cyFJTUlPOXhwdXVMQU5IPkBge3NTb3AlaiRRVXdGPEVGQi8oRUdkYjJ+XWQ8czU8djp2Z29Jd3FRKnRSNmY2amhKJmB3Qkk7TUt3NloxIU8iIW9NT2I0VW1UTnkuKko/QUVReDhraWI6QkV6VlpwKDB2UlM1dmxkXT0xKXBmQXZJOFY/eyN2TiEuSjg2YyRpQF9+QCMqeS5f'@; put 'c31GMyUhME1+SWtfbG99XVEpczMxN3BWSFJ+ZjhfTF41Nnp2Wi9xTHdMVj55fnY6PCYkc0tZZ1tTRl9TbjdSWWwmc0U0WGI5Z0A3NWJeYlkpXmEmcSw6Q2NPc1giQypRMnVeVEMrMy48ckFDaChdSVFbcnZxV1swc3NFL0pJfWY/Sy90XVI0dEY1TWBrJWN3dX1ZLjBoK35KOTpCXyY0Y0lveXsk'@; put 'MGB6JW1CJERYNE5rbUh8dCE1MyMpQFJjSShLN2FWSDRXTyRIVXk/fSV6PHNEQEo0Y1Y2KFgofngqeDpaVUkrZVhzK1pDYDshRWBLXko4fFhbWjhdZS82NG9acyNNSl8+TFdGMX1VKklSPiEqNiw6MjI/Olk0YVo3Ji95cFRoNEcxZys7Snh8dHc8MkM6SntjZCk/OnVxfmpXeipDfnBJZXJOTyFn'@; put 'cXAlSD9yOHh0fDd4ckFZbV5RI1U3ODJDPX13S1pEUlVLNXlBeiglOGlAcj83ejJrJWF2ci5FazE8VWcoPUtsMnEmRzBPW0tFLCMqeEdvQHNLTTJMN0RkL1dqVTYpUUJuNDkjOkp1N091L0NYa1QyJig3ZnA1aCo3I3YhI2tndWBQM1BFXSg7Yzw6Tz8ySE47IVR2RnxVR0RAfW44SllqaTROIz5M'@; put 'OWJUbFphbG1jNzBIfjZWVTdFWEhfRT1IaHB8ZDsrcmA2QU81QypOW2FDKiE9W1RtcHdIMVolNVJhcUJuOXIlZmxma1VOeC5FOTIhOnN3UE5xK1ElWiN4QHlRbV1jOVdBX0hfbH5GQj9GfmF5THVDKWVEQVYuJl16KXdxWCsyVGFaUG8uPyNfVXNYOC46LEY5Pld7TmEmXVFtW3JuZ1NJKSRjRj1H'@; put 'MWE4WFlrc1oofG8payE0UHVZLyR3XzxEI29mPnptZHtJdjVadXZNXVhTZ2pnKXBNQVEkN2FYUzclPDtFNF5+PXZtXl5WNElBeDxRXUguPyl0ZSZ5cnVJZjMkTEMhOlJzY35nPFRJVVg6QUsrNUFDMSU4emEvfjF6U1t1P1gsMnBZIWw/Qn1gOz84S2MwSnluJXp+PnEveCEuOSZwI1F+YUhhPDM1'@; put 'UE8+T3d4LmpCPXlIKyNZMnNGTlFAckY+eFR0QjZKOVRhZkJvJXchTEBQazlVaFMzZzNobGEvTGtvbTd5Mj5abiUxQjtoOjx0O0x1ciwmTFEpZWFJWDZpQDZvVTJDfHNVa044WDxsdytOMHtBJUJMViR4TGBGK29aekI5eWZ7aGg/MDhqQjR5ciV0cWIlSkxtNnpYYF5UbChmQ3hDIz5PVj84Nnw+'@; put 'P25YRGUoYTExKkUlKD8uMUx1JU1Ffn0vKmckK2tmUEFGRyNBZyNZYWpEVTduTFBzKW9MWntORi9LPEghMiNuK1lxbGBOXUJbMCVYM2ovTmw3az1oPytJTDc5KkVXfDFOWj1XfltqejNKQCR0SzViZF4vZWpJJTtCTzdMVGlgfXlKLjFYOTNCbS41fSx1dkt5Z1ZpMVVmU2kzKGlmJTpEMjJYN1hi'@; put 'Y1tAIW0mI21GZTguYCk2PlIxI2o3KkN3aypAYzA4czJQWnVSVE5NOkR4enVCIz9SLlYpN1ZoPiE6PHFfejA4filLdXRhIjtNWG4yTFY1ISk3MFtsYE18KksvRUI/RVR2S2FBKzc0QXN5XWpGWlZScyxPNktRPExlP2lVUVpMfi5RNyVxPVRLbX5RbGAuVXFfV0FGPXlKTD9gJS80dUhGQy5yRik/'@; put 'RCwrX3BRUWdDcT5Yb2pkbEczeU1oLERWNUZpbW8qNE53O2pnXzRVcyErUSomKHJAVnVQPXUoOSFqcjxscVE2RnpPRyRUXXgvPm1RUkMpTFtgTlFebUE0Z3p5di4uY2YhTWViam5UWXxOMWwrTz5DJFA4VTZDc3U/Ln1TbTJ3Q0t2JnpZKkhoSjt7NSUocHo4Nks0Kl9HKywvYVJ6W1MudVgsTl0x'@; put 'WEhVRCVZN2pjKVh5d1ZMemIlST44TH0wVndRZFpSI1NxeX5rWkxLKzs9eFpnUXMxOl02aFo8VmxhNTRmdXc8bE5wODx+fmQlVzhFQnNObDRsNVFYTUVwYEZIJHVZU0UpZHhUYk90fSlnITIuRjsoXyVCNnN+TmVmYjhMfEFLS1suR0FeNXtqazd3YElmOzpYRiJlRzk4fWBIY1k2ei5hVy58dmRx'@; put 'UHY8cVlEXnNHLHl4LHZFfjBmZCx+fE1wNjs4c3JZfFRSQTdKRUVQYzAzV30zSjE5L2NXVVlXU2tWanBkdD5HRFVfeDtQUC9UJE0zXWxaY3A8Q2MifU9pcyM7dSV1ZzljYnJmWnVNd2d1MTdsI291bTY7aj0uSnxzQlBfU1pHZlpyTTdfenZ7L0hEJmJ9M101TmwuMCl6M3koQVA0VGRHUWpoPWcj'@; put 'WGVBXV4xdDZTIWpuMkt3I3BWSi9TNHsxYlA0TzJAZilLU3R7TDhoLGQ2Q2ZgVmlEYFB4KSNweT5iUS5vOjhVT2EuRU5bOTNLS2ZBZmxdbk0xY0U6UixbV3QzQlpIOEt0U30mLE9HN2QvNnc+eGheQV5VR2hXfHhJSSlgeTZpSisyeWNRN15kcE5NWWB3Sl0/NT1FNjRaL2o0O2VJXVguVCsjZShe'@; put 'TWs8XVRPR11PaS5bYn5NJHh7ODhdQyZUMH40bj4hamlWKTp0Ol5DRVlXMVFxXUNEK1lhTUZOJTVPKGxNZG9BUiojRG5+bWEqSlFHaCxBTXJjJFtsI0BNeTJITjhhRmxMOy9JPUl6b1chck1gSGVxNkRhfHB0OnIlfjMuTzdXU0NOOEgoM3Q2UTp5ez9ELl5TcnVGSzNxb3RaTWUhSzJCI310cW9Q'@; put 'JnxzI0wuVTR4ZlhjND1RUltjXTRUSU4qVm4jPmdibjh6I0ojYyt3RiV2c314KnNYUG4hbnBNWWlqXykkUlA/bU9GYnw4PktpeWl4LnFfdHxRNkg6S1VQNV0sND4xZVtXWXgkIV1tKzVbKXJTcitoLipBcWpnMlc0THhrISZvWUJTcSlhKTRSVEklMW9dfDtgOG9NaD1bQUlbOnFUVlRYVmZMT2Fk'@; put 'I1g0O1c0cWYrbiVjKX09Zi56OT1XOWxtKT89d2tEcHFaWVBpWElDenUyTzp5TlclI1lhMjgiIjEibSt0NCVvOzZvTkokRkEzRU5UWFk8VD08OW1KT003P0Q1Rm8iKV1ASmJzIk8rPEJ+e2xFMUFuTWwjI3htLHxvKUR3VmVtNDJJMW8jYmxYMk17N1ouNWhqbHRDWEFZKHZ+S1Qvdj92ZW1RV04o'@; put 'LkAyMlloLj9vaiR6aClUJGsqMSVjLGZ6byxFVit4eUB8KTRLSWZjSUBEOyM+Z1lwLkM0LFhQQmFDLyhsLjs/JkhTOEQpSD4lWEBtOSRVaSl3RHxLR085cC9wN1VBSzFpc1ZgL3RCdV8oYHd2XzJ+NjwmSyNIT2VnL0p8Y2xQLH5ha00vbzlgWGNFcnVUY15WflhHSz5DNXxVOnBDfWdOVCJKOihT'@; put 'ZlZgNklATChDTUtwfE96aTl6MnZueU55bX53XjBKUikpVlBaT3ljOig+R0p9TXQ1XT1sU1c7cks5L3VTV2lWQT9EMV4kXX1+LjxRckwrTmtFLigxNUI3UkQ3IyhIM2lTY2l8UFhmZ0syOUA5bWY4YmFTLE1VUHJAcUImfH4lS3xDR244RylOXVpyJUlZUHZgL0tmdCNoQitKKns/ZFJUKVRiZk84'@; put 'bW5FSCxwWD5oWD5jTE01bXcod3F+VyVCa2VVRzRpc0hKRFI4N1AxbEF2K1ZzYExYMyU6WG1XL3xvVldsKm03cnAwbG0oYkNQbD8kZjp2ckBtI0c5ZSZxT0NJdl46bD10I3BXU1cmOWh5PyRDTlVvPjxkXWM5TypRXkwhXzJVOSNnOjc2bkN6bGJEPTQ4fWpJQ3pWcWNQPG5EenVXXURjRlZ3VzdJ'@; put 'eEJEMk94MH4weT59b2lNfGlVQjkoc3B7akouTFQpaXA2KGp7Wnt0Xm41JU9PQE1Wa2NhJVpDNXI+Z0ZbPmxoc3RbSSRKblJLPzdTO14pVXo4fkd5dzcjJWFUfC9Xb094Rj16PjF7NC5GbC5ZOVVlVSFhVCtFKlcsVy5fWG1rX3Q1dlIpdj06N2JZLEZ6U04uKFtxfHVoa2B6XSxdTVBYbDosUD9o'@; put 'WVMyKDRzYEZ5XyVgZlZAVzNJOzA0V2crWVlnM35PNzVrOTlwVnUkWXlReTAxWFB1MCVZXyMub3lLflZ+LjUuVnxbWE1CVHxKPExhWUxtVWNOfkYjTHddWU16VDo7aVFuQj1NVlYjSE9KPnYwO0ZaRXB7RFVMfCoyKXxvPFF4SzY0TGUsN1ZiSF41Sy5TZk9dIkdOQklveWZmTF9VdV9PYXdWTjtR'@; put 'amRKO29RK10/OkIrLnN7QXBbbnhRSCUmcWs0SH41QjcrIzYpe3xkaXs3cSxONHUpX19MYjEwNGB5KWNGSD9dKnRPTnlmKmEjYSJjcVJUaVE9Ji9KSz5QUWMrZDE6QW1iRTw/KiFGMFtXNGlkWzd6Y1s1YEowOEh4UVp4Rk56OTNtbHdjci5FN3V8KTlrXjx8ZDtOTFosSmE5YypTU1Z4VEFzXkdR'@; put 'aEszOH1uR3pJVH1ANW1IQEpbOiRkYkZMcF1jTCkqeGFlN2VCKHI0bGNlTjxpbnRRSF5XNEk+STEpWzdXUl5BU2loZmdkKFA5WmtFYno4a2M9UUQ4THtNdD4wdjVOUHJxMkl4XkBiN2kzJCtoNCNGWWArdFpmbjdyUDNga25Cdmp1ejw1JCllWUl9R2tPN1gvalAqVSs4ZypZMnJPVShkKmpVXTI5'@; put 'UUt4NipgNEU4TWc4eGZsVT1gPz0jXk5AdGpQY0hhMVQxIUtxeXZqeERRd257Pmg+fVF5eVBfNT5SK05EMW1ZeHh0NlkxTyFNRU4mdUhCKCtLW3xhaTk2LiMkdWI0bFhYKCVHTnxed3szL2JGeUddfnNHPEt+M3FwRyp3TW43XkhITFtKV3IyT1NRJXlEcDcvQCg5YygwVjNzfEw0SCExKCMpfD9D'@; put 'I3VWJiMzMTVLQyU5T3JfQkdyc2NzW1JAajs8YXpqbWVvaTJ3S3ZBRFcjdngqVUMzPjB0V0svPXU0M0lvbTJ6Nzw8aENdMFJEV3BDSXVucEdHPmJ1OHJtQDQzWkVGMHZaRVU/V21oPWBvJGpeYGZ6UFh+RmRoWW5uOXlhSHo8cHB+U0V3fWdRITdROU4/TGZtT1ZydiVAdGloI2hdN0Flbn4lcGxW'@; put 'Wls0JjooflVeSXdbbTZJY1lFZGh7ZG9MPUB6U2s0R0Z1TFtxM1pUPy5NTj8ld2ZNJiVDM110U0ZBV3Z0QztoTH1ke2tnR35SbyZ8WyhMaHowODRnN18vKjlJZ3R3d3FOYEVZSlJmWH5FIzZ4Sz5gM0xxLn4/dXtAXXBVTUtMe31QOlcyW2FUYl98P2ouJERILEhPeHhAaWQ+QFZmclIrJmYhPDhu'@; put 'LGQoNV0qcW0wVTNJVmZlRnElTDtGa0xhZDBVK2Jqanc0YTBaLFFgdHI9MFcuaGdYUHpuQl5mW01yWnBzI15aVWlzMD1vXmA5X3g6bHdJKzJ8QFRabj4leDI9Tks0YWxtMXhCYT1RQjYqUHZAXz5oJVszMkVXIS9IUmlnfi92Nix7TWJvQDY9UEhEZ2J5NmlNIk0lb2kjVC8iOXpOO0M1cG5uQGhQ'@; put 'fT9IYkptRUhRQ1tPKWN2RWdkM1M9flUhbUU/KS44UmQoU0VdMHdBKSpgZiNRc3xtYjgpYHVUOEFEOz8+aCo1OHleVlEoM2M7azc+L0o1ZCM6bjlRN1J0byttO25dc3tuc3JRST9xJDVHSUElbWVsXzc3IlpmP2RyQlNFaWFBcmtKbUtJd3gwdEVfWFhydHkueWIufTwucnd4SDcwQmwqcCpHTXQj'@; put 'VTczez03S21NK1ZaWXxgWlhYWDlMQlR6d3xfTDVfQDh7bEE2R1QoRElGWzdESSwsbCs6UVJ5cngsTmZQX1FhdmxzUCJMPEU5N1lQWUsyeX5EfUImX344LHtiVlZfVXJkcGBKTkJVMkZsPl1YXUZDVUdGcH1XRFdiVUVQS31ZVC5+Z3RTIXIkayhQSHdLbCw6MFcwSGIubzVBMCNZfExDW34xOWxe'@; put 'IS9lKTpJK3lCcDBUfjk4IjFeSCllMC4yLmJhN25QU05pZzQ/aGc7bXJRRUw9RjNdRiQjXjg6JnhmPitoN080ITRFMHt1JSErWSR0MjVGSCshLDUyY3BsJjZuIUZYXz9XKCImfjwuQmgmS290VEg7IjhXfWdtLE9eLixGK3pke15QK1hyT3FsI2paVj55RGx6YkpRSHYpeUg0fXFFW0REP3A9ajRm'@; put 'TmZqWU9zKVAkVFk3PmU4czh8d28lL2xfTzxVLnJkOF9HSyNWKCh0c2tLdlszY11YKktdNl0rJE9FRkx8MjNwJWkwKzFjc2pJUT1PMTUhXS9OajQoRFFOPVZgbltGRz1hLGhELlZZTXs1RWJtUlBeQmp1cDs5KUt0ZVhqb2BwazxhRl1RRHN1X0xpUWtsNSJzY2lPdks1OS9aRE5xKkg4Y1t6RjFu'@; put 'eiRQLlE5M245bF5pQFFeWU1dX0NXZGRTbSpzYT9PMG99NHowKGkoTyh4REhkPjhfME1VQHczUnkzaC9MNW0pcipzcFRKc01oZWBkd0VlSDJGeEJtUWBhTEhOVj4wbWgjdXVDNjZ4NzNwUSFfIXUpJlIzS1pBNk1tJV9ZMCtrcEJhKChHaDZDYENEeEdTSzNfRyZMbUs0ajA1X1djSDgzJUppc0M+'@; put 'JGZyLChtPFBhMVJqai9rWkB4UUA0dCJMNXxzcDREdXUlPi5lOHpRI2tLbEs1L0RNdzpxaU5DQXoxSlhPKjB+IT9uJTMjcGklUzlXM1dRbGZYUjNIPSQraX5TN2gvdVRyV1R9RkpqWGB6MDtQQTNuR0JmK21YM0BrPSpsQSlaNXs/VVszWUopOHNLMFdBUDQhN3A7fSxrXzVfenswQjtWaXdXIWVH'@; put 'U11hem0yRjFWJSVgW2UqfDBVZz9OeCE0Yj1qVV4zKWBCR0JBTHJQZD5YejM3XW4zPTQsMCwwSVFgKjp2OU4qYkl1dURePFk0enNeQyE+RzBNKnhvOm1CNiQ/K2M3Jik0JHpoVkN8TCY8djtsV1E7cl06Im1OUH1NVGddSTAuNnRlemVBTi5vQShVMH0uJVtUYXZRbC9JQEdgPGhQcE8uZXA7KDJI'@; put 'Pi5BWG1De0p4X30rclgvfHkuelpJV31WIlAqOzxFcFIzaFVqNElgPyxQX1FHL0xla1E4c0xDPztLVEJLM0tpLFQrfVdLblhqeVQhajwwRSR5Pl1QNUM4VlhIYi9NQnU2WW5UOmF5RkplL3c2Zn14L09LTlkoOmBoJTxHQDRMN1ZPSHhyNEdVRyo6OyxuPGNOdExHU05LfFo7YylQMCpDUkNaTVgy'@; put 'OltaI1NeRjd7UUVNdEJORXg/YXNoaygjSlo2XzNjTVFSYnMwV15hYHNtYyE5d04/WX0/ZiwjKDN+ei9+M245TDFeZkRiaWskO0haJEt3NyUubV1ZKzR5WEx1R0A8K0lEUlljLE1vW1RHaCVUX0U4ZXZRZzpILHs7e1g3SmFeLiR8WnVjRmljPnZ4bEhQI0IzQzNMNjFOM3sqbUwyKW09NEpNOFRW'@; put 'SXQoUlVbSi9Ye11rITw5ISxXYl5qaklnY3FHKD1hfTFEO1MkR3N1U0ZXc0xdbXQ/alYid3QmaEBtSXMsVEQoOWUuYkZ7MkBASnd9cCF7LikjKXJmek11cU1LL2k1YX10LDlFY2RLUn0zcG9FZXl2SXdnRX12alhoN0JuRFFgdUw4WEZgakI9Mz53XUo7KkBTfXU/RV45TzQhbGtHdkpEJnFRfCNv'@; put 'T0coKHR3MWJfXm14IylrKWhYS2Q8U01KVyR7cFQxSChtO3BeJiFPUDcuO19DKH58PnUiKCpsR3pZOUlGa2lzSXIhQE9OKUklfTl0U1tpRmtuamBtdFBtVzdmQk1ANyYwOnV9QWA4JFM9XVRlUXkvfS4wKz9oJDxWMkQ5VEc+OmRmPVVvezNEYXorYWBYMUVnfE05OElbMCI2bkR+RkAsN1c6fkFz'@; put 'KDA9dEZqcWI9OSo9fUhmfFV3JU98KUw4MlZeRmJQTV1XdFtnczF6PnxDVjE5d1tsaHRkX3BSazYhejpjN1peJVJqaUVIbT40THhlNyJlTGZUZjUoYEQuanRoNkA9I08wUylFbTcqUD89ZHs9b2MzWClmUHd1WncrUyRdPyN2NXZ3JmY9SlF1dCpAZy9NODxMSFRdZmJTS006VDhTIz5Fe2dONE1T'@; put 'XyIqREh9NW8hejM7P1YoYzc8amU1bz1Ccjw0Nlo6Uyo/KDZqeXFYYW5MY0RvOXcmX1JPbkhvMHUsJShLWXZGODNBNjpqNVFFM2tWVmhsKz8lW0JIIXp2OElrbGAxUWVJR0w4aXhCeHN8MjlnUWBeWEdNLz9ZUGxfcVA6NGMqLyQyYGh1X2ZnJnI+JT5eZ2xUT1ZHXWY5TTUvIW10Xm1DQzhTeG4/'@; put 'dFhmZlQmVTJLaWQ7cjYkaiJvRjRublVpMCMzTDc9aFshc0J+UnFzV0osIkMjZGF2NSlIKUJSPTd1WHk9ejRMRjo4VGhmeTJMRm1FZU99bE9CXXs3bXJ3Vk1zYmlydj1RVHdKLC4uYW87TWd+NSU9Uy9UREhvZTh5cnhQTmZTSSlsJFtKZDxWNHNKcztyITo0dWJAR3FxdG9gRDtpX0Z4Z1IzW01b'@; put 'QG4xVCRBP21JTHpWckhub1hhJTV8IiFPdmhxakQ0fit4ZlFHKT5Zd0RAYnpZOVR1WT1UMD40V1lSIWRRPlZfcjF8L2EldytYMFpgWEVzLnFnX3lzamtLIkNMTWJscHErZFciY3czckJHRE1kbyRsZHpHZT1Ed1BGRXJteGN7fl5FZ2tmKV9ZRX02RlNrO1soI1hMNnpTWnpSdGxmQV93bmYxLHo9'@; put 'YVhiJCRRTX5WbT1JJDZPejlvLzY7ZDt0eFY5YEw8NVM5aGMwJEZNaTtPbTBuLGBJUXxRVkFfIW93OCp8PEk2bjtId0Muc2coZG0lQjJ2JixZOV9tSih3X2gpUl0sdmgrcVozTSFHYHRsJWlZLDVte3YxTmgsI1UyMGU7VmllKFQxUDYoVzJwSE1Nd08oOjNYWDgkUitSTSU9WzZpOVJiWC4+XlRB'@; put 'OjNJenFRbzlbLHFfL3dGJkRJbTMpU2R2ZDBSWkNpYzlIUzNvUChtKG4kV0w/Sm9OIX47NUxnR1FFPiQzWGBNMV1TUzVhJHhqPE8jMWBjakgyS2Iial5jSWZhRClXbGJZTlJ0ZzJ5V2lheDZpNGchP3l7amwye2BPc2tGPlMzJXRWWSM3LzFSa0JXeCNGVT41YHZHWntFeyswQXlmNFp3d0w+IUBy'@; put 'VDwrS2hhPFAuJmxvO0Q5SG9ySjBva2F6Plh5NDU4Jk9NRlgxRDF5QGFQdEA/RmNxQytEPltha0YqKnd7WXYkeFJ6UlBWXlFmST8ie2JsYXhxRDtAT1FFWThbSmB6WFJPKEprTVleSU4lc2tyNC9MXUwkKGF4PHN9QEEpdX49enBORip2TTZudWJXdiJUKGNQbGZ6ejdiQHxSYCNtSEVJMjxpVncp'@; put 'I08pQyp2QlZSYEFKPS9XSVBvZWZsLzdiYD82fC4rbll1Xmt0amcxZXA5XTNTMjNzb1ROdG4qJFlCNjZ8KDpjV0JuLlA2OyFUdEM2NU1sZ3gwfT9JaC58PV9qfnJwZlZuJGtVR1RjPCRGV3dMUiYlKlprczg3UDg9d3xMWjlpI3AmNFpVUyshbj8iI2MpPXlqVEAjKWojd1ZEWUB9Xzl7MUl7L3dG'@; put 'KGo4JUAuXSY4Y0llRGBYeURnaFVVQ3ElcmRmS0lNQCFqbHU5OCtSRlBvUz5bNUwzS1dxI1BQcTVJWVZXRF1KMix6cjBiZCEkTEZ2Y00jIiN2W2F0Vj89YjprJDMiTjBNTSRrYERVPDNJVW4jaXxvPVUqIl5RXjc7JShPSF9fNjVpTExTM31tPEV2IysvX2R9IiQzaWp0MiRJaFhIMitbM1dzUmd4'@; put 'Z3hqaW5xT19TQ15GMXhdcVolTXszUTJwM0xmLy4pRlBKQSJPeXVQMFpsUnZIMVRZO3UpSTJ7OU8wfGNiZWtOeytmfX4yL0Q1dVl6RSo6fW53QkB1T1MwSzF3blphdEdEflskQltKWzVzYilZdVAjbkI2Yzh0MnlvTUYhQFBEWHAqJiwpN089ST91el5JQTAyN1N3QUA/Qzt4KjNVYClPJWN8Njc4'@; put 'Sj4lO21mQCpGR2FmbE9UUWZCU1hUYHUzZmYkLigmKWcmUnpgNEttRXFFbHpCRFZwT3djYTZRaGJHKVgrWjxFNjxaVkoiW184XTMwfmU0XTpHQEwzZ1ZZcUkvOjpRfVs+Ulg/LE9zS2lhVyFSYzdqcClrInkwMFZxTik/a2x1Lko7MFFbVlgkPmdLL1JSKm5oOTlqZl9uOz1zXyUrTkRzIjxhOk0r'@; put 'fTZlIWNCWTMpPm1vLEFSKUE4OCE4d2YldilQPlgjSDxKREdAejcwR2xhVzI+WWtWe2NUO0Z8Kj1QXms4Zm53Zk05dGgsdlMlbyJ8SmpedExJVj8xT3hFanxLSjF0KnhuIUhIR1RXZ1tjTURaKll9dCVCLm1US3pQTEY7YFhfVV9aOlhQaG1Oa31SeHBZY2dEL3IwL05PXmdman1mfkNGcD94Q0Nl'@; put 'bWVGVEd9bGZKPXlpVSh2YThgYXhgQkpuSU42fEBvP1d7RSlkUm04YkIzaz1ESmVYWlZka0ZJXjo5KipASmE5Zip+UVtgWlpzanx8Wl4xJjhUNi9dbHRveVBHIkhLYnM2SkQxZi5UNXAxfnpIcV87YE9EZSg8YnhodnxCeEF2JX1CM1ZnSXlJPC54SSRRbzgwY3F7ITt0UHA8V08wRk4uWCg0OTdi'@; put 'STRAaVg/IWNuOCNBanF+eCZ2fkAoJCYhPmRMdl46JEgyOzNKYFFeRGNlTC43a0xSR0h3Jm56TVBrZjo6TjEzMThvclpYVm1UJCo8Qy9WYmNzSD8lKyQ2eVApUCJ5cnJVZltNZ3BQeGpFTk41e3pzYml5NVpeVCImJGAsI0lSSmpJPWpxWFRfbncxaWkraj1kWz0landFYnZTTFYxQ1dzJmFNdXs2'@; put 'QVRfelRGfTRWO1BZMWIyKkhwSTxZclhVeilLOTVeTGFddTE4TEFna1lhW1JCRS4yM1VQJkg3SHE8eitdVWEoV1d5M1FiejgvQjcjfjpZWE1+bzV5OUQ8PEJIZk10OjdgOiJsZkk+NXNXflEhR2lGJmxMbylNWCNVcTRZJTUoNjpZcmEwa1I0bUpHK1NEMlNpQX5+SjI1QHZ2fT9geDZbZFs4Nmpf'@; put 'JTp1UU4mMytDPkZLUG9VfEglaF5tNnovWytjQVFfUCxqQFN9cXM0QzJzMmdXdSQ0a04wY0YuZXRaI0d0PWZePz5HW1FofG9vI29JeFM8IXsvNUo4Nzl0XnZ9SkYkVV92VSNWS0N7PCZyYWtVVUxiK2gpPGZ+VTFaaitvOzo9JGo3aCxzJGhVVFFESWo4ekZxOn5DcWdsbnRhW1RxeXBdSWJbQlcq'@; put 'e0I7UDF0Qm9Xe0A2WiMlbitiaWZpIy5ISSZgPCx4WDdLQHt3eEVocDokNCs2M0xCUj58N0cxZy5JVi8mSEBVTlYiI3MmIyEqU31HelBQIXRJbW00VnlxbjB+e05BXyJafUwuaGQzUHJ6LEY+ZU93UCJhfWcrQCFgTk1deH4uQm5dT15ELCJhengieVRGWlkzQjB8OnVtcCJnOHk0QnQ/Ty5pTVRC'@; put 'V2VPMVh+KEg4Zj4ubSRkOns5a2RfY24jQlthQHJHaV1WOF47NDw7TGYiLzorJTs6U2w7dEkjTHtqIj0lW1t9QT1nSSI4cVBSMDNuNU9CIU1UIVhiakN0I09ETFUpbS5YbU95KHw7bWVzIlYwfkt9Oz97XiYqOEYvIUI+KzVMLFhGdFtMc1lmfnAhSCtlZlQhZS5GeWJMRnc6TFg2YStFY19OcU1w'@; put 'X35pJkIwaz9OJGpQTGZNNTAqTThuciVMTnxJflNYI1hFI1lHYlBiK08/bEZSZklzPlY9fWhMezYmQHtVJVRPQHh8dzVFPFQ9RyxOWj9TWVo1eDQjJHdfVCUrS0kmKUl3KWx9dGsjaT5jTV07aVVUaHVIJEJJdCl5cywkdDxOWEtEWGZjaHpWOl1LcV0iWyRDfTIrVGpuTWgoTHVsPXBkVSsxbmRW'@; put 'UyxvPlNSVGVQZihvSDN7IzRPLGJGY295WjVzPVtFeTFCXVRaIXshKiwyWlNUJVd0PUEwYjQmLmY6JT0rbWM3XVE/JkRHT15Na3d1VVZCPkVqU2ZpSyVUM0VYPS40KH5WbXRCVnNAOTJQMmxuR3lwe1YkTXc+VD1xO304aHFJZitNfGw1SCtVaT1ZX0Q6L2h5KTs5eykhPlJMOSt2K24yJEI/ZG5Y'@; put 'M1JKfSo4eGRGKCU1K1JmMnMhPWE8W3opekokRSp0YmlnYC5wTVEiO3lXemJKQnsrNFdDNjVwdjM6NSY/alldSlo6QGpfRjxFT2IwKVdRR2REfGY3UmJoW1NwQ0crR2ZUYyZsSys1LDlxayZwMW94KnY/LDBGXVZvM15eTCJgLj8kZD1ISiE4STBQXmx8IVdkczhrbk5KJWBJIyVsRXkkTSw1SHZ6'@; put 'Y3A2ZHlSeVpHZWp9JE5NczFrXTApKyQyXV5OfGRwc2ksN3NtXk8wU0RUMHowW0ZIZzZLYHlWOUFBO3ZMOyRxMzpZa2kqd3Bua0YyJSYkVDd6Wj9XSyFHe34vV3IxNEsmb2VMcW8+SiZPY2lbQ0leN2JCWWU0PW5gJlRRSHZyZClafDd1PTE6fTJedEs8Ly5lN3VXYD8pW28+Ymd2LExdNWhAJCYo'@; put 'R2ddWCNeO1RYbjkyZmp7VT5Ecm5tY1tmKEQ5P2VpO1koPjN9aGp3T2lXc1R6QGReUjVZI0xZUHtTLHpgcHI6Lk0hJVUzeSxKWmhPVzFba0FlMjVuV05nOS5IQVY7SW5Va1hlXjloOVEuNG87RGAjLiIpZV1QUC9tbEpZeHxoP081WmBPez5JMGhMVEooZnV9XldaI3hSSFh+emd+RH18QTJ7cTxj'@; put 'VUV5R3kzLGZhYD0+XUFyQWxpIU55QyExSWdxPU5HZXklJXdsWnNwL0BaZD8wYEdbPVorN2xzTDJ3IUszI3duOEJLQnxsakE8bW5MN0swJVZzSnFXWnUzKiouNXZxdDxefHZOIWZKN2khQ1F2MSsmZjVCVjBNNU0oWU5VdD5+KzlrQGYiXX41ZzF7MVleMmEvKSgkWHo+SUVMMnd2Rzk+KFcsQmVl'@; put 'eTc8LkxxXlF8ZWslcysvTjYrKSNhSGhGRURbYyZ7Wn1XLHRSI0VYcT9IfVB5VCJWJkw9SDpeMkckJGNJeGYhZU9aYWNhOGB0W2N+VHxGTmJeNWBFJncqNFNuNn07aFdWUk5XUjRNUXN+Ql8welNvYWs0fjB0UmByenFYSE4oTTQ2MmAybGJqXy4jNSM5cSx0TC5aa1l7Nlt8Tl9lRWBaJWFpfTNO'@; put 'LDx0NGtZS2w6bm91LE1APHNIaX5MbV0uPjVGQ1prTiRMUzN2R20kQkdBenhTVlhzfEF3IiJmdyp0MlRFQ0VJaHNhYS4rPSN3Mll5K0ZSIkUrR1BCVHR2MiFUeUhwYTRAY30uLiJpWW4jZDAkQEA8bzlbYltKL0xXXzxMZWRhampXP2ElUWIjOHNQVHEjRy5AI0NwX3QsRSUvZ1JrKGxSOHVmdU0u'@; put 'aU8mTnlveD9gZSowey5oYCFqUGRuJTlYanF1dlJRJWcoVCtGWEFdJCF3JFd2RHB3fiVpOj1fTD5xaVdudnQrV2ppQDB8OlAjRzw7KGQ8RGNPUEl8eSReflU0K0JyZj1ieT1KN0F3T01oQUJlZEtBWEVDamMqbmo0blJEelBAPitXbUk+Uzlpfn5jXWBvWXw+anBYd2g5PV9lPVlVczt6PE1lejdd'@; put 'Y0lMalVaN0ZCLjlKVk00dDVeSX41eUpJQkZaIyNpS2RCKlVEZl1sJCoiQlU6MXB+KC87LEdyLH0/TXNfZjt3PnYyWVVZU3RCIShzTW1MOnFBelcpNWxOWENAZUxRPUN1RVQ2cDp6eUtNOGsxd3o0Nng5MnMhc3lvOGl+all+Z1txWDdvQSpQWm5kfFJIckJqbjZ4bDR1TiJ8fUpoYCsrJWttUVN+'@; put 'OSNEXT8yMSJDKnMrS3UoUmN0fkE3THV7YDBnZmIjNz9+JWkrYUFNaUhMQE9IUHlnPi47e3pCISQwbTooW0FYPmliWzlKW0A2YiRiS2khb083KEJue155Ij1yPDZUcm1RMntBPFtDKDY3W25HUFBLPFtBS0V1fjoiLDJqbFImVCoqKChHZWUmWlV6Z1dydS97Kj89ekhKR0NndSxfZTFzTXBCM1sv'@; put 'Tm00bVdjUDNTLlE5enF4KkclPzRGMThkezlDMnNFLkVgVGxtK10sKXNuNWE+Ml9RU1AzcTtzbiw4MzRtWWVPc2Q5SmFWPlZrKVtaeTI3ayVwcXMjO0goZWhzKmxtOnJUYyhXNylWTzFgKDNFSW9OM2ZRTGt+VmthLnxdeToqRjApZz48XjpxQ3dvW0o0fWJfKihuNzZKcXUrYUZselBrOjA6aURW'@; put 'YTsmUn06dSs+T3loS0Rfdm4pTVFIKXo2d0pSK1FPUjBEY0RQSzxFayh3LkttTU0pbGpoZyFkMUo1SVg1enh6Nz15a0QsPUdUfGs6WXRVOmpOWzpZIUZDNmEwbDZwVmclck1VT0smJj1IT2pTUj0yVXs7Y3FjISp9ZlUubFB9K0JKQVdXSGQqR0x1MSl5Vj9ZW3RveCReQXpHNl16PjZrcSxJNVZd'@; put 'e3VWKHJ6NEpOWDpudG4kKCMuLkxua2swe0k8Q3h5UVlEdzhDcE4+dWBaMSxVOlMvclZoVVplNitDK29TeWN5K3JrWDJ3MXApfE86V2M7QTNXP1Y9JkVxSUI1YlUvKFFFNmFDKmk5MzxCPSlHdX1mbz5nOFgkSipKTFI1NW8maz1rLERgbFlbZX5NanZ3ZUlMencwTDZecDZSdSw+el5gY1teR2to'@; put 'NC8/ek1gel8rNkRVbU5HOE8sOEtAez80UkNzeTpSXSM1bnc2Rjp2WyptLyNtJXdea15QLE1VN2B+TD1nRF8mKHwjczZ0KCp1ZVJaPnVqaj1XOSNYeSopPkVhcCpxd1VhY3JgVXAja0oqREB3WmoySEQlIW5Kc3wjRUF2b1AsZFpPJS4zPmQ+SyFqMDthIyhMQHJWTERtRDBfclJ0fnAuOjE8VVVt'@; put 'QjV4WCVnQTZkJjloKXM0RSRZWX0rbzBqcWgsfk08PDlsSiNOUjU+ZjpPKlYjP3gzKF5NOTl6Pi9HfWJpNmMqITZYZTpAVjZ0d2xndXNaSy5bdmUkXnpDcSNvbFs2IlJBSVN6d2JvPixgWlZ7MlhqUHV5PFZZKlU+NXolMjJ4azRTUndsIz8lWixwIVE3JHosK1ZUP14kUSRwRHJHU3g2QS43XXs2'@; put 'TGRae3t+en1WfjhEVm96TlNCajlXS1lPZCshdUkqQWxyamk3L097aWgzPyEwSVlKZXNEXkNzZWhQREJYTEZORFIvX2kzX3VNVVRCU3x+MG09eHFJfWE8R2Y/ezUiWz0pMnk9KVZmZyVROE8sTlMkKjZhU317fFMmVEx5e1Iyd1JPQVooMGRII2RlVG1xUXo6aGlDfGF+TFg3a28kNXQ8aUt7LHMs'@; put 'PmJiNGpXNH19PDQ6d0YzRnk5dzYrPUY0XnFaUWUkRHovQUxiby9DUjdIRkU7QjdGOypIcn0jQEBJZHR7LilIXV4lT2R4U2c3aVUsanp6ODttbCpkJU9+aDhHKGZ2In4/ci40T190KS4mYz16QEQjQWdtfmxuZEgkJEUmfUtzfkhmSyRtVUxdK2JxXSJDanUjMHdHaSElRGVSXX59b1tRUkZ6NTE1'@; put 'dlZ3ME9oN1QoRVtUfmohQUhVY1FQK18vfHZVazhZKTRyeXQpPzVHLmVkSmFMX2hKfU9YT2Z0Tz0iOWsuOFRHSG15VVc3TjF1NlFydGF0U3V5JixVc3k9LDtZenZnfkNOQVVNWF1yWHVeQDlDfG01KzdGd2pqYiNTR2x1eikhaCUhISkuNCw4Si5iRDM8aXglX0g0e3pQY3RJWERucjI0PUsyR1M7'@; put 'djBFSyZKNUkxYzxAW09leVlQQnQzVH5Zbzl5QFIvJChvLz5gMlVnZmtSe1RtVmQxd3tSSCROSHJJfHdsIVZ+Lz1IKDM0SWVLJVMlWDNlLnlxd1UyeyNoQCY8IkRDYUc7NCokKC55W0QsQE1YRkpNbkBwMjFiTmY/NVguX0ZXYDoreEEvSVgoNWhOZk1zSkNYXi9FSSVGSzd8c3J6JntmYHV0ZTJS'@; put 'fiohYE1QW1hpQkMwUloyTyQqcnh5dHlAQ3VjSGxCdVEmby5jLiM8Z3t+Vn5HcnhlO251KVE7UzldVTBVRGc8am5dYGp2Rzp1aj1YKyw5ZDtFNSVCbz9maDxhTHlYKioyP2QpLGFVPj0lX1guXzo3QVJLVHt2SF9fPmZ7RlIuekt7eWh1bzl+WDFwfitjSXRTbi5zbj9mT0BzOCZDZDtpbEJ3bUZf'@; put 'bUwuWlRHeHh+JlhbVltyZkJnTkZZMXhUPDJlVFtCO2s/c357aFghK3tHVT00T099dXJLTTF0dXo4KGN9RzM8S3hibiQqInhEflhQUGV7bypBUnA1OD5NSWEkQn5GT0BORHYjPXgiYWpmZ0NSMWh8fUJiNFtXPU90aGBjNThncH1bO2kxbnwwKWxLIWd1NlY6VDZOX0xdTGhEb01pR0leO2RDYXlM'@; put 'ZyFuU10zSlo9PDU5ZERZXk5CLCNKaWZ2QSZAcH1gRT1DWSgxcXIxfUo2WVRKLy5sLyxiYnRpMUJxPlV1aG1oSDNbIl04Li5OZ1QhNGB7YW1laTx3dz9LcHt2d0MoWjlFUHV7YVdIXlFiPGMqZH1oNWs3dmRWfGVuPjNga0J0eXlCWTBdNV8iQyZ6NHhFZiUzMj1fOix0MGFhYGFfWmssJEN1QFJg'@; put 'Q0dae0pLNDhxbFEvVUEhcCUjV24kY1lRKDhkQD53SjE0SCt6Ky5AJFhUP0I4U0BHRFVxU2Ymem0palpzWyM6O2hkRXJ4aiY6cllZOylYYltNUnEicl19PndHOWNFIjZNW0ZWODZLYSQ/KVtxLENtZi5LZ0I/YEw/XWJbYkZAITNeWXZqR0RxPnRMfDdZdzRjU2tdYF45dSZKKUd4I2ZOfW51bixV'@; put 'JUJ5V0JedkYib1s7Z09EQl5UNWdpQ2lqNTVuTllFPiUlXzxURi9tN0M0e0RbS2F1PmZ9N19uKikobXI9QCZQY1F5KHM+VCR3LFRgZ1pOSmA+PnpUSFFSOWowIVZAMnNfeipaRlMiRUk8cXo0WTsqRTJaSzs8OnIzVTBPaiZAJEBNR0srNTE8L1gpQ0t4aCZLT2NhYTRsKT1SVm04fFU7YDFpVFR9'@; put 'cG83ZV1MOFFwImRhZFFdLHF4KWh3UyxPeE5LVkt+YFZRSnlwW1NYMSYiTG1welR4O0EieU1FWjx1eDYzMy5JKlN0cUleTVdidD5HejArSGtSOnohZz8meVdNLnJMJURhd258NztLdnlhMSlDIk80XVcoYlRUS29rQVFMIWh6cjwmOlFUQHxoL3o4eEphYnJFRUtaJn1TbjI3eUx2ZUozNF9delRk'@; put 'PFt1U2UqZU0rU1VvTT0iNiU4c1VMVlU4RSFSWGdgRFJKIWA9b3FIWTsmKTtwI0l8YjUqM05vOExJZTZuNyFua2ElU1dHcCNMeiF0K0xFcVsmU2kqTls3NC5Dc2okUVhHWzRSWT98VHJ+PyRkMGMwfHdQLEtxNy5Ja3pmWE83czJTaVZgNGN2VC9GPzBRfXw1b2RtUDU8e15WT1o4JGJJRVc6WTor'@; put 'M3l5RkYuMzs1PltCNSEqZFZiUSh1JFAwfGtQVVFqP3NKT2sxfVBbaDNzTHxRdF1zSjVLOGNIYHg4UkA7L015TWxWTl5UUUJwa2AvXXBUVjRTZyZ+O2tSMVVjR359ODRLaH1AYyNKUjp9e3wpYnc0K2A5OHNuaWFBNmdmNkdpVXtMcXdMNzBEcWIsRHd6Pnt6elhFZWtBdj1OZzg+ZCIlOm97JHd5'@; put 'TCF7VVBMVFpSY3llM0pqVSxEemBYNWcvKFpnfmdnZz9UR1FVZ3c7SFJjSS9WV35ybnFvck1RZURFSGU/aTM1K1RZOzBFVjdOZCphTysoYHdpb21tMkVZdWh5RE1lb012OGw5PHUqSmo/XWdealRfclRPSCtKX1k8YVZWZCZqcXRkX10pVV1xMnhbVkYuRXRyKSxHMjgwKkc8Pzc5TyZEYkV+YmE4'@; put 'RyhsPFF7XkdJNHpaPGZzUH17fHg6VEFnfER9L2gzfjJxVW9bRzlARl8uc1BEWHA5dU4mWX1wKGpSUUV3aXBTLH4iTXYvYXkyY0ZROlYsWkRRaVUjVjAlKXtgVERPTiEqI1E5Vj4wQTZJTnxSPTk8UEM8TyoiPXdfSHV8LjREJEx1e2BZKkQ6JSVrKV41bVMjY19tMWEidW9ZeFs1IjJFImd2SDxf'@; put 'ZWBbZ1I3e0RTXkFFaFlZY0ZPVU5Idl87ckwhSW1ZXm9uQUN1d0lCdVIrdWgodU9xWF46ZUtdfXwod1p4elk2LHZ3QkdGZ2lYbmpsJEhBX1R1NGRiaiFVfCJFIUM3NzdOVGM2LD92OElhTWg4fTk1dVpAYGI5eTBFJFtrPCZFQGZrVnthNVY1XX1GWF1TeEN3dWxII31jZGwqcSQrVHgzN24oXX1v'@; put 'KWddTmo5Tk15PTtjLntMSDFROztEa0IkJGtpanJdKiFtMnFESH47YSEoPFg4Qj1dc2p3WXV8cTtic2RWcilbMC5kTWZyIlIwc31oRW1JVUpOM0VeQ1JBL19hTGhLK2A9OCxBQEYzI2t9ezthdFlrPDcyY3NaJkYhUE8wP2MrMjU5ak48fC5EUX08WFRaYHdCbzZ1JDN8eTlMaXFKMnY9OUNgbntp'@; put 'Rkh9OyR3WyZ8P01jRWw7Uk9iX0wlM2BUX0B6Jl5laWpAYHZRMih0LkNoXiRII0F9Qj5xVGZ1TT95LDptazJ+bTQuRj0vIlZNKElHXnlLeF9HVVs2UGdnVmNMZzx0O28jckc7V3t4WCw6cDBRfHoiXW5zJmIkcGB3ZSRhMFFTRSgpMi5eNk44LilvfG5kXSVCclRJWmZaU1kqY2RXR315PncvOVBm'@; put 'NEpwdzkwZDFqYFpBVCJjaWIvfE0oRFJeYipxKDRLbCkjP3YuKk1ZSV1hWVAveGNwLzJGVX18UlZKc3xLeyYxSFsrPktvalF+d0ldYXV+XTt2PFBZNlAmcWorTCkqZCw3KjEqTz81XWR3LnlbKlZpY3tbPC5WRHtIWlhOQF8hW35RXjtGJHx4SDVZenFoQmNvMEJoYm19VVcrPTxVbD0hODRsUXZq'@; put 'LHEjb1doZlswO01wWWBOKmZDcXFsQ0c3WyIxKClWcCo7c05ffE9PYzQrPG1SWmF4L28lKEdhc3g5dDEmdTltS0lxcGBfOStHXjNGWyxPT006ZXBaNysoYT0mVn12SFtBfUg/PUxraTIrRCxEQGUrVTNqX18yJnl4dis8cXthUGYmZjdwI3RbSHdnU25eJndVMjxUMiZyNGtKa1RDdGNJLFMsVFk2'@; put 'K0o/e31bNmosYkhUMFUmbGovJUhQYlJ+QkpOfDtXS2UwL3EpNFA/aF1ASUM1TDxzTDJCd31WVDpteypkfV9MPVlQMGhCXm58fStbLCU+Wi4+JissRldoKVF+VVlgOHIrXSRuXiMjQEJkdEowP0JWVCk8VjAxczhuOGg6MT1ydTZnaDRyfWpQPWpvdlpZIlE9T2cqKHZXcX5hPzRjOitYPkVFOWF0'@; put 'MTR7PmZIZyNhWiVmIzxXeGFjd0l1VmdnWG1CXyhfRDpyck9HTi5kQFtjYGlZI2d6OFZgOm5QYz1ubiNeNVlIPW9ndDdEMnU9akB7YGouX0A/N3BpUU07TFshRl1gLkE9c19TRjBGPUMvTEpGPn46SHtqaEs8SjJkX3xsZlY8JU5zQz5uI1M7VE1zJnREMnxuSnhiTTBpRCJ7QXM7dGoyQy9fVllb'@; put 'KCErX1FhPm9RcyF1V0Ymc1BFV0ZgSGJ9XkJPQEpBPnN4JDRDU298b0ZSTnAzOmJSVj8iPENxdis5enZse0xbTiNod2xXO29yL01Ie2wmJj91YTRhT11uby89TWhsPEBKeGZvaE5yR29uNXZiO1lvRTVBWUNXVGFxKXs8TFhjOD1sPE48NDcpPllTdzokRVZaKiQ5KEd6P3F1OkNGM2ImWE58LD8r'@; put 'TlYidi9yYGpleEo1aSssV0soVH4oKTBYUDlBYDMvR2ZpPEl1eFt6KnxkSld0KSJ0K3hjfXFgJHcjYzg4PS81OV1BbTBHVUhodUxJTTBgR3d9WFc3JndLYitNW0h1al0qZTxPbk17Z2d8dnFnX21OWHZGViZPT2c6Y3lGRSVVKmQ6ZCtxX2pOIStNeiNNRmQ0L2wxJjlyeG1nK1lKXzxuIzhJaFtv'@; put 'LypVaFM2byhfOlNkcFhPdTxEPGA9fU9jeWZ4VWBNRikvcERVcjkycDI6cFRyd3gmYXskPEVgR1AvYFc7YmtqbW0rZiN1QmNobmB1eiNwe1t2YjpuN2xDeipzfGpUWmhVU1JeeEg8WXkwdUY2Q3IyekpdKm10NEdPPU9KbCtZKixQTF1CJXJ1c0JRT2BScXJUUFIwYE8hNkpvXiN2els5Xjg/R35t'@; put 'OTdMIV9PNl87S1I7fEFtKlVlbDRIMGg2YkFaQEFRVFdyeDVEWHooQ3o0dypyPzx6W1JCLHFvLlE0bCMzSkhoLGhAJjp3VTciP2hOTk4jdyEhWVFIIUhzJTxRWW1mdGAvUEs6SW1ee3pgMVlUMyZwMTpee3REYXFDRTQxXVlGV059MkhIJHxyOFVwLFVbZ3FCZClFMGdoNkBQbkF+RGpHYS9VLmRH'@; put 'NVVdSDRsTFFpd3RFYGI1QypsfnR9Sip2K0YsSiNVek56XmYlS1tmZjk4Wns6PFREQjZUSCx6WmgpWkV5ZCVwVE19Y0BtKiZFeEg2LGNxZ2A3P05OLkhvUyk7al00VihDfU5fPiNjXVUrbkk4d3UzNDNnMjIyLjpeTHh6blh7QGxGdjJPTCp4fkRGXT07RmF+UChVcTtObEp8Pk0qTiZMbCY3ej9X'@; put 'ZFdtLiUzcWFtKHlBMF53T2s4SCR1Rj0wM1c1LCl6NyhuJDRDSFl2IzVGTSxXbWhFbl9ieW1DdihpOGN+a2lJd01FXWAqPSFYR0pxQFZAXSNucT04SDpWVGFiSVliYk9JMkc2LGV6WDo6JUhFWm1RPzdiZ2ZASnwrSlY1fV9AI3c3VEVISGt1XSRsLHo6L0VgN2p+OlEpXkVRcyEhUCFLbGE8X1d9'@; put 'KShQYHoqLHF9LGxFOEF1KiloXlc8VlUhRVQ1Nkh+alcmRVQoLjY6X09uIS9rTWxTcy9qYnI9T0tKPnY/P2VNIWRrJk57STwqO3V2Im4xaHdFbXdTMSNUJEhoLkpqcnQiWkJrWWt0fEJ1LmhDKC5ER05CM1MjJD8yfS40Lk5xRkMuUllDdjtZYjUzYzE0R2Z6czV7KlI3d2N0fkJEbmwwMyVAbSxA'@; put 'b2gqM0tFI3tLP3dvRE5AUnc1IlV7PWE6ZDReXXg/PVc7WmU+c1hZTSZMbWFrRjAzTXg7bipPSSFkNHM5N25vTXosd0VFQnw4O20xTWdXJStZfVJGYmsuREAoIlNkZmlNbyolRFhZKDV3MkIxYFF+dU1jPDZQdnhKJWx2aEVUfjxuJEZqXSguTzk3OnU0TSxhM0MqJT5OPWxLOS5vUyZiT0o1cnZD'@; put 'Km1lLyRCJUwwNUFDajpMeGBtNyxlZFdmTzdwJDFFTDZnN1VwaFJHSk04NmN0N0NTYCl+bkFAblFqX3l9Qzw2IyFDVUlUVSkhdUhBNSNHWHMqeDxHTSMpN2Q9bmtdQzk3cUVmInh4NjshaVNERE9gOTFwXkdXZHNVOF5bRnY+dUg+cVtpeGQ2LiYzdjRJK2BxNCJaKSRoUEw1YWw8a0wsUD0/eiJi'@; put 'NWljd3RzUCEjdmN2IWJdWms6MixKXk1RaSpAd1Y2TTw9QltIVVE6ZTEwXj9gJH1ZK0lHZzhFUkNCJno5Q3M3bk1SSEU6bTpxbTBkI2NRNT41WXIuMH1ffSNsSlBPTyUmbEhVa2FQTjBpMGB2PD42ND1Ga2kqOTc7aVA5ekFyQSQ6UDp3QVM2JSRPaGNZKkFpIWEwNXtHNTRSdUIsPU1hTHNvRkYj'@; put 'P0VZUkwmQ1heJmM/L0lDbXU1SywvTXU2USwpN2w/dlZWfjQzNVZIKiQmVWJrT2lYZHBwNytSN0MmP0dOLkhdZFoyQS4ucjYqSmwzVm5SbXREKm02dFhdaDhATmFFdks8RywmRVdVPG11UHZnb0tmezBac3FfQ1FjXWZtRmhMXTtSTComOjR1VSkqPjpvREolWX1XP2VgfDVaUXBoRVpmYWF9akAv'@; put 'US54TWtTbVdnWW1TUU8re2VOfFtUNzcjLGw8NlY+enZHWiFeNms5aFBbfjl8fjo6RDpmZ1hIVH5tfD53N2ticXFpLitGdm4yREo6LDMxd3xgMD1adHU4b2ZPVSQ3Rm5bRFQ9ZHB1UD8zKkBCLH1ScTVJImIvTDN+IXk2IUpuQEBxazd1PUJNWFUlanc/WCopKUUzVFQlOUo7V1REdj5tMjhRUkRz'@; put 'Wlk4OGByQiRGJWVrb0kpJn1gdSJ7P1dmQG4ueSV3fXZZR0teImkuczkyJkh2XiRGTSJSQF8hRVlVaWVte0VCPXhid1UpZnR3cEJkciRediwjPmJEZlpRY2FXbU4uOENsQnFCJUQ0ezEuYntxNy5iJSZYdStWJn5LbXd1NXskZVEsQiEid2VLfWh3K3ZhcnppKCRpYVtdQnB0Vn1XJWB0PG5rOF4p'@; put 'X3tyTH5QYD1+YEhKSGVReEM0KUVIUEBKdF18Y3JoJik8NjhAMkpZLFBoL1IpITNZVFh4WChSLmJFLnJGckBuVTlbST1tSEFxPSpuPmx9VU9ofT0vVUFpYXlWVjNBW2BEcmxLYD40c2ZjS2ImOS89fCYpbVgkUHpVVnxSJlM/XW5gWiN1STU1TThPUG95XXU+WyFbK1ZnWD1XT2t4SG5NVVFrfDor'@; put 'Qm94T1RQSCtEYk9AZzV9Um9He11xVHJIZm5UWzwya1lmRn1QQG0sbyh7QkEyems6VTA/X3tULFNXKiZbZDJ9KGtBWkZiWnloYWZrVVhwJWg5cXFoTHtDaGtmSz4vcjtSclYmV0RPdTQoREsqXj9HOE18VT1dbj9Xa01pcDcjRzdQNzFgSColXUA5LGo6TDxfa2R9b11qTGd4fHd5NTlsImwlKjMi'@; put 'K0BQeH1QajZMc1kpdmB2MGsrLH4pSGVjdnFJej1fOShHJmRjSWc2aiMmeF45UjZ7MCJBTSVEbVBGc3lFPj51WC5CeEZ9R2MuY2c2aFtodDl5ZGx3ZUxhLnNreWJNeEgxZlZ6d0JMfG5XMUhDeyNkUykodiYxfWZ0ez40b2orXWklbF1gYEk2QTNHdlhpKmQuK2cobiRWJTFiUnczTW48SjcwXWZ9'@; put 'ZiMlRWB6WWspNFt8a09RTnEvKDNYV2d6Rks3Z0wpaXw1Zlg5a3M1JShKJDYwQylZd010ZGI9V2dKW2ZOeVJvcDtecz4sVilwa0lbd2hzfHk/K11NOFhHclYvKFlCb3d0YzRtIkc6Znh5cU59S14zMD14cnAlU04zWEpvZi4qNTZyOzxnOEd7UDUrYDZPd3UvRVRsbmtPMzJndUBAeHM1L0FGRV9U'@; put 'e1p1LGBdWFlhM0VaPl5NVSRlWUgoemApOjB7YHgrJHAuIk4hQCFOJUVBdFlFQlVBIWVXcztpdnBSfjZ8RD9nJm1jey8keiZOXXZfLmA/LiVCLG1IcUdBMypWeVttfHZvJT8uJH1Hc0g1cXFtbytaPTR3I2IvVTFwJExsSWVUZSksWHJYbX57OUFCZzFzXSlNPi9KQlUvYG08V209dmc5USt1L3dW'@; put 'TjlKWHQwIXtDUDlzLzV3NT0kX3kwbUY0M3hMMHlmYVVzK3tPTEckM0c6fGNBW3h7Jkk8Ukxabl17UTU+QEMkRiZsNXchQTxucDF4LkYya3FLOXFMVmM+d258OEkjQXRUQEdNaWZbdGcuQkwzXlpqJGUwYTF1a2k8NjlTXV19ZnU5Kj4yd19rYil2ZDFFb3IuejRCYmclJVBgQVl+MFUmJTsjZTck'@; put 'e2BKbDd1W1U5ZiF6dD4+Qjk3QX42RikjTnBAfmNVaFRbLDZ1VnNudmY+Zn1VQUd6PTlnWVheNXtLLE4sVVdLQjBfQ24oLzEkaVVBOCtKOikscDFyKS4lez1odmpbdCs0LkxuVTVGQ35mWW5DckU7KDl4bE84dzo1eXFLWEQzJHFyLGB3JjFrRXpnVHwrIz9ZNjo6X2hlKn0pLHhrdyFXQjM/eHIw'@; put 'fE5QL1dCb21aRWZLVn4wY1N4cVohMG08bjw+S3oxNXJLeTkodC5ZcDpUSyxvZXY/Wi5uJkltX1h8PSlOR2lVMGBwclMrV09IdCFkbXAlQkpgajIsX1l7RUcmMDZXPiUuLmc7JThXT0Q+XnpyY2BdQSRDViMyRWB3eShSbjtyLEhjU3coIiZ6cDVlKWxYTnk6WXAhZX5VdWZ4KjtmSF5vKllpMlt6'@; put 'TytrNmpASFNIdXR4QmVyXV5baFBlXyN7W2AraCZYR2tIOEwqSWVqPz53bClCWzxtb1VZNTspWVdjWUdeQVhFSC9aYF40S1lTUz8+KjYwVywkcXd9N0BiUVFEK3llZGZHTUdXS21jeHhxY0J4Sz4jVkUuSjR6RHhpbX16dSZWQ3JLKEFHI1FqL0lYJnFBSVUsQi9SPlJnK0tuKHB2fCMrYXYvWTtD'@; put 'UEROJU5hUX51ZVBZX2owR29ddVYseWAqcCIyeGh8L09MdCNLNkI7Yzt2aWxiNGBGXkBZQHszc2UrOGhbUCt3W115WDoyaiUkLmlWSSlIIzcsTUlRMWRDT0NDSDt3bHVXIXszZChnOjUsTHVZMjY4al9hd0xkTjZMemV8ZmswQ09KWmE8aiZ8L2JHfXI7JmFlK3xxJiFdeUwsW2YuWVpUPGhOWipM'@; put 'NWVWP0UlX0NSak5lW0A0VXhETFB2ViY9WjReTmZia3pjY3FCaiFrJCt4anpybS4jMyJdKVlkOk1eQltMcE1eLypvc1YoLlIzeFZfWGwpbWB8cyV7YikiTUhtQiNraWo2WX4kU1Z9O0A3PW4/Umg7YSVqRzZZfVJbfGdZY1tbamoqRnd4SyV8N0pPQlhuYjU2cEdjW0d0RHchOmp4RV5FSVsxWEtn'@; put 'I21wPSN6azMhMEAhX2dZajdWe1dDQkwiYkZKSXZYPjZTdVY7eF05KitQekRHfilraGlUKFhENCpXdExMY2V6Zl8zNzUkQEc7P19KWjt+Rjx8I2NUL0N2M0x4WjVsMDAmRWkqMjZQWmwkPHBeem89PTZnRF8oRW08NytrNSorQWwoPFpxVUYyb05QSTdDQzMsP29VeW07eCp9KHgiOXQqIVJ3Rjlj'@; put 'PHhbNDQlNGs/Jj4lZkVCZGlOMj9EbigzOFlmcj07WXxnT24obVFrdypmMmc9Lz4qLjspUyE+bldaJiwrRyoxOCZDdzx+MGAwQ0dIRDN1In5ASEo0Mz0rUFhYPSZVVH4xKVJrekxjeSJ7RThRRUdVPkBRfUwlb2pAZ0FEcSZ0fHJQOiw9ZyxtPWN9RTghQCpzODgwW0FhXU9bU3d0LzUiYkhgdF4+'@; put 'SlchMExWbGJLXnM2eTgpaWJaTWRJQyZOTzpTYFYyKE5kYUg6RDwrIj4oP0pLS2QyNiZXZCIpa21PQ152NUwiJSovQFpRcVBjTkkle11XKnFVS0AyRThYcEJQXnpdfEpwY21RPT5bS14peUFwPlcjZF1Wdl4hLjZzX298OGVDZkR4W0hdVStIeTdyfTBjOiFLfSVwR1BTdTw8Nio4OXlgfjc4cVoo'@; put 'd2I4K1RZPVZeQ1lPOnR+R0I8d05nM2JaZnx4MGU0ci9jVXlRL1kuKl1ROzd3fU9jfV9hbT5fTF41eTlFJm4jTyJuSHB0SCxGZSpdbThue0NGfkBSfFs2UWs+ayhzPGF8RFk1bDN0fSt+eT59QmZCV1Yrb0hJJiZJcWBPV2hvWy44MFRJPkRVVTlKcDIyclZ0KzZzX1smJiU7diRsSld9Z1lxLERL'@; put 'NHE9bjFZTHRsKCF0O2pUQ31KaFtyK3ZBX2ozXldCdDBsNmNwMXxCaDhbXjh2fDEwR1Q7e3x3Lnh2Nj0wbylka3c9LmN7dmNiOjJkS1gxeGFTQGlyeHglQHVLN3EmT0tCZl9JMDJaTnpoUWdOIjB4bEtUX0FHJHs+e2l+Y1hqfVRTWHtfeUFYMTpiKnpeaiMjYWF0QkVRWEwyNFsoaTl2WVpvWVhS'@; put 'bWY1QkZKdEYpN1BtfWY5S19heDkjc0dhMWQvQ0xvblg+RDR4K2AvUCM7XUkkYnVbflk/UGEmd0lTbi5MMVBFMlFmRl4qNC4zZTxtQjVdeDtCejc1YmE4c0RqTk4hNCtwMVI0VGNlT3UlQVZmfDVXbVA7OSZpezkkbDFqezhjeShbMWc/Il5PPz9JSEh5SkNxP2NYO2NSd1l3JFhNMmhYQzVoU3F+'@; put 'OTxyJiZsWzIqK19vMzJePkEqWyREPzB2bkVVUT57LzRUcTEhO0xReTF1cDlZUCZITTliT3Y6UCUrKE5rWkZhWTQpVCYhe1ZEVFE5WkhtbjdZWmE8T2o2PzZRR3dIKip6eCY8QXpjVSRpTXw6Lyp3akVBKnM5aTd9RTx5UXJERmZjLms7KGV1N3Yyen43MGxWN0pvVVdUYmJiYXY0Vz49fV5KYGFl'@; put 'NipQaEVLam0hNmVVUHY0fk96PXxeZz4+VC9oa3JJODxWc24udFBsdzRQQCskYml2ODY6amMlQiRUSHpFRWc2Sz57QVE5SGJuKHp5NF8+XzgwWkA8b3w4N3E4Jj51fHI4bFNWPHFFQDBiTUI3PzJ5ayZXPGElQWo4PzU+bl9fIndWTn5UMU9sRWwqKGc0Q29WXUszN2VXVypveiRZQ3Q0VD9xKlg2'@; put 'dkZmaCNXQn1DSyQmWkIieDpORipqIVp3Z1txejg1TlhYSmN2VVsjTTk7eWdYXUNkPGpvNUMydVQ5bnwudVtPaWp5Tn5iIkcmWDFNWXdqKmlEcXY9Zjs3eVF4WSJPY0dGVG8jZEZBPld7fEIiVCx1QnNHSzk1O2YjNFs9JkZuUnAqZFJyW0EoOEBYTEFmT0AoW0tUfmZQbSZ1KzBtNzMrYGorJWBZ'@; put 'W2g1ZWR2fTN6NWRlWGEmYlljSCt1O2hXT3c/NCZlM1dgUSE8MEYlYkdHdyFXYCVSRVRfRFh2Z0NXVUUmRTBsKTArMCthW3V7V2VPQmVyN0Jdc2M5R2AkV3Jna29NKnRoWGJPTT99TE8/fTg7YD95S2AqT1hTOzc2XUAsQ2NKTCFnMFIqNzZiOnltWEYqJU89XlpEKWYqRyxCQGxwd3FkZG4/YGpF'@; put 'bW85JWU6L1khPG43biglZWxMUWlZNVpsfGB6RCJbL2M4QndmP2ZvNSM1SmdGSis0IyYjIj1EUG9Ud11sNlBhTDRUbmJiTHFEWUVpOiVMZSohX1ZKNSpuelM2Nl0pO211PG4+TilJXSFHKFM9IlprSD5TZClPWSt5IkpicWZFKi5BYCZDT0NlMm56WiJWXXNfSTdES2pycW9PVjFRLC8jcTBJLF9g'@; put 'KFtEaV5gOjBdTi9qc3c+d2J4I1J8UkQ8W011bzd2TipGRnovRGJ7S2MsMkZDWztsY2RWaXp5bTV1b0k0MC5Nb3ssUlkxekgyJG9PMDd+diw3NTtGZTtrfUk3bEohal1sczgieUBZKXJVT1JWNmopNllRdXpLdyl4aEMpTX1uWXRTYH5iNE4yMV9TaWRATXxJfDVTVk88L2xBK2Z5JXFLMitHJVMi'@; put 'aXpRND0laVd1L20vPjdRP1kqYzFIYksmcyFoREIwK0NafFM6JnpYKXo6X1clT3RVJXBKQ1oiZCJrIXM8SS56Ol9wdH1NPV8+Y04qX1ojQ1cwNlk2dVhlRSxyeiE3QzIlR0RTRFNvTnwsUyohPU04e1NTKjgsWnxxTlRoRn5IYS9uMSVremVgMSxZb1cqRzxPKzRoXVR+bixNaSpPMXBTLEdzSiFi'@; put 'bCpXVnN7MSghbmNBIj8hfTBXI18oKCJUUSI5RS5QIW5LJS4uaH4xKFUzLDolOExWbXxkVUJdZUZROG0+KERZYSt3cHFAJH4hPlh8Sj1ydGNeazt1XiFxZzdLWEQqU3dkQCpBJkJpOyErIXUldG5KZjdLKF53Z1tiP2V0TG8wPkNFUCJHJU9+I3A3byp5ZzRvUnBPMWtrSDkkUWksQlQqNSk4dml6'@; put 'ZlhLM10hT1p6ciVaNVNybytwQVZZaC9CUUMqUl1+WTdsZU1gIXU0P31hIUdOWzBlPXFObVJOXVkocS89SyJVdngvQTBJKl5GZnZPZVpYO3hHWnpwS3M4XmBqYGVsfjtCMV1PXVR6aSNzfU9dVDA/Z1ciTjxbMjVlQCEzdjV1QGBYXVRfYyR+fmd4VTRqQSsxUWtkL258PykrfkR6LFFQIi9LPmZ5'@; put 'SU5UKiF4azE+fDxvK0cpWltmP2ozX0ghX2tzaSY9Jk45QlJXRytNe14/SFVKN3hpRnd9RzRKZi4sd29jWkBzalZSUGQ/KFF7c25iT25VYll4MGdWXSRTalQ7KDl2WkFzd0B4Ql5Jd2MqZjlEZWQuV1IpR31ITURTRlVHdFsqVW1HKVd6ek9SYCNaRFFfbjsmSG07TmFhKjx6ZGdrYixlPCxaeFAl'@; put 'MF9NMUN+XygyeHpUSCR0c3FeX0AhXXteUTNRN0R2MlFaYEkoXmosVyFONytaaEphIUd6Z2w0cXMkRnIsOnV2RG09eGVoJGRiJFcsVG5hdUI4XjhuN1A8dFQ5TkNqPVtTKHdMPmgsMXt2NHRSKXReVEZeUXVvMFBDIV5VPTNSQFQsNkcwMUp1cElDaiIkSUJxdzNmOENPfFs2e21zSjJEPDtQVFZy'@; put 'YHRLNlZLKzF0Xk8pUWw4LGxvYz1RPWVvWl4+X0lmR31gYGdsRFojd0xHZVk/MGRufTxIMkA2ZCR0VElzVl5UcG4vO0I2PHxdciFkPW8sSW0leHNxXl1sXVhjS1h0bHwkRHZWbllzLnBdalhtbUN9N046ezAsMzhUXyJRW0MheSwmKXRUNWRoRW1dPWhyZn1iTjJGcj1reCZkXldnbVh6OWBadVB4'@; put 'diI9I2p6WF8qQz5QOH1nIzBAdD0kN2lFfCYpQjthLj8hVmhVV0YpU0w6WGIlY35meSE7Ijs9fVMrVTwwZE0pbURybE5dPVVfPlQsdlZycjpFfFFMVGFpTlIwSWFFT3YxKT4iflUsKFM3aTdQN3xNWVhTUlF6cjwybVJSdll2ZiVQImp6d3NWR2V7UnxJSF5yeXZlLFA/MG8sLGpdIW5mJVA/MCNp'@; put 'JW5Ublh+Kz59NXdVUyN6ajpAVW0zUE8hXi48T0QuXlU0PEwxdzUibTwwbn1BbGd1enVFODk5Rm0sd2UqZmhRSzBKK3c6ajVDNEEybHZdTSlzUko4UjVmaU9tO0VBS2F8Wlh3JmJwWzlOSCwkT3d+ZnJkMThyLDRWIXNWQj5YMjJuRkVycS87JmA4ZygmYWx9Uj5yeyI7N1M4WGRZNS5rOlRAVF0y'@; put 'czlTJVg0JVttPkxXbCJxe1hLWz9iNVFTXnRRWEMwQ3YwJTA0VG4sVl55OGxtNVM+PXJdJGkyek9OZGE2MFhQLytJfSQhWFBuN1A8R2VASzJvcyxxaHhNb3A0PGhrM3czbyU7TyhKJipVL34iZ2dlNnBeRSVjZUU7ckJeeFIwSS5LUixBS3cwQzhvPkt7Pz12PDNqKjZHI3slIi9UIzpsPzRLX1FD'@; put 'RDxPT3BjMCo/YjBwfFdXSVFVW2VgTjtObzo2XiVtNzh4SW9VWlQqLz9KT0t8KHQpMDNEcW07az41eFk9YV1eKkRPV1ZAPEtqV3VQeVtIdiloaTg6UkxoW199Z0dnSVNDVHs0MT93fmcqVSI/MEk/Uz5ZelUvSmc2PyExViFDOyhsMFZeU1QvSik7eThtRXxZPnwmPFd+dkgpSnc5QjNNRit3W0t1'@; put 'VHRiMlpKdVhYIUIlKT1ue1F7TFp9YGFmLjxHPmVtXyYoSHdTOlkjOCtRd0M6Jk8veEw2aTY4WDc2JWV+V1QhKzVfM0s3LDV+WWMhJC5LSnFufTUmKlRUXVRLV2o6TXIwcDg/LDRmYFhrPTtMIWFWQDBUKVlPOSl1ZVg+MG1XYiJdY2IsaGNycjVgIW5UTXZjIztFfSo7OzwqbExFIX0yb1RAbyol'@; put 'Szh7UUxAanFBRDFGVCZRXzQ6NEUuS0RQcyRgRSpEKHd2XUtdR2VrKVNKNHpvXSomamEkeCpaanNBO3VfeThwI2lNUzU/OFpuSSheanEsMG0qSXZFMCYqS3oyNDVUVHNSUzFEQldqdkwsLylVQzF0ZGN6bHMqNT9UXU1jbEx5L2JSbzlNRENIIy4lfXEpPXYvbzVaZyx8O2FyWkg2JGBPPHZDcXVJ'@; put 'VGVKTzNeaCNdey94TVc2KUA8ZVJMP0sjQCpzRCgpS103aSNrbGFIISFYQD5GVHlGRiEyNWU8MTA2L0ouWUk2JWl9cm1FZWxrPGVoI09rM2xtWn1jZWU1Q2UlcDR0fG0oZCtTd0ddRmN5UnY+LmByc0wqYSFXN1ZydyxPTG08JG1VcFB6SmVKW3RtQSNgKWR+dEg/W3wjSy4qPW83a0dKfVprVEcr'@; put 'e3YxbU5lWyZJaXFqNk1vSk0wR2ZeK0Bjc0U2ckt5fkF8Pz1rX3cwIWlsKXdvPkF9Jm0oL2o6WUtBRmgwMTgucj01PE1bT2VwIjRgTmBQLGkpMT4lSHU3LF1xNiFUaT1PL3pGWDl4QmtCTEI9aEJ0cTcyUSRjOXw5eENROjtVTU4rUCp1c3FpUihgb15kY0omYnJkMUJ7Uis5d1sxVmpXLGVpZnl5'@; put 'UlNtMXlDXy8lT0NBdUNVLyg7JWRJNU53UnR3Y150P3NFLkVbdWU1LmcpX2B6P2BTKzRgezlFfERya0lyYm50PkxvRDwzYSEzTEErcjxPMF42YTFbV1FhR11xUn5tc3FeLlklLihXb34kUTJ5bFpGNz1baDxKMXRBI2t5RnQ2cFhKIUMybEFsNSprW0hnb3g+d3ZHPSNZJCZMd3g9aT43e3liLGNt'@; put 'Q0YwUFFsb347TGtMN0RTJSIvO3ZuSnghOXZka1d2JD9RXkplRUlIPSM8UFY1eGxvMnQxJTwhP0lVZiF3JDZITj93d09oTUhAImQ7PUUoSGw2KCxWJFl2VkpDOT85Nj5YanNZdGxAemNMIk4kcjZCckZ0T0ZfL3gkTHl7SnA8eGZqS3JATTxtcXRzSEJaa31JNktdWndwZkpwV2hzflpsa09RSWAu'@; put 'OHo9VmJyRitLYn5ZNV1xYUhOcls3I30iNmV1eEUiQFhIRVtoTSUiVVMocUlXSWlILjZtV3JNc2F9eSZ4aDlXT3s6ey5Vfl1qJlpKWitDXmtGJUNnL0NPPGJ3eThSUnpOODwuLisuJUJDMWY8OFBLe3hXSCNgczlHVi90aEd0UXBUSFYhPHs9PnU/MSZFciFdYiNBbGtIYGFdQGIoOz5mI0Fsa25g'@; put 'YV1taCxWaks/KXJFc049cSVWTk84Lj1aLjouT088MkB6TUtfPG1iOzczaz46eSpGSXh3d0JyJjBATytoUlcmKmxMXiFsazYvfT4mKCQuIWJjeHtGaFA5Y3xSP1M4TU48aGYraGBAYiF2VlJ2NUR6Wm5qaGIxajxjSSteVTdmN0M2XW9qTGxxXlQ7MDVHUWFUb2pgI0hrUWQ9M292NTB7O1piWEBd'@; put 'dkVyRTF7bElHclB2Li9SYDFNOFRiVXs5eEp7PXx4SU9Db2tPRyVmKkQvND8uZSljJUlLNStjL3ZtMWQsL1A3cSFMa31UVTxfYjB1YE5hWEZIQTo/aHZRXl9heT06Xn5vfSE2e2dgckAxIShmZmx9X1ZFL2NCKSs0MnN+Y3lSK1U1KjcuKiZePXI8bDxsZjhMQjE8THlObGs/PDE/UD8wV2R3Rytk'@; put 'Y0g9PVFsQ01QT2lON3pSSk02ZGA0fC9yRE5XMWh8QG8sWHhAaTVycFQ1ZzhJZjZpeWQldz1OPFQrNEhyVzJlXkBpVDxDNSUrKVNodCRqdj18T3pNTFpzaUxaOjI7M3JMNy41U2NbbCksZjJfSC5OPG9PQ3tZVUJdXmFmSGsoY0tYcDQ/fCNBL2o4IjR8MiZufTd7Y3BTNmB6dyFvRypNcSQ6N0lr'@; put 'KFczSGNuL1FPV2JffWM4W0Ryel9eOH12MVE4PE53anpzOW9rKXpwLzlCclgqd0RuPCJeVyI4Ym9RK3dBTl5gOlt0TCl7LEN4VkQ5bVZjLiwuR3JJZ1hzcWkoIVFaL3xRIm0yOTlrVmVRJEBLc0tUI3EuRiZKbTB8Mm05JXJAKDg2UGlaMHZqQSsqeiY8cy5TSV1adjhhelU/c1NNI0tRK0Vlb2Jd'@; put 'UiZzVTVdQ2UkYiE7cy5VVnt5L244OmBxOHxVSEdmdztgYnQ+bkY2Sy5ZPiI8c2UrWFsjIXRwZyV7KDZNRUJOWVtRKERyVlBHOkl3R3A3VDlIR2NJRHdWWCo1OSpYei5JN1lMKjduUURlaXooS1NrQVlIMlIiKSRJN0ZiP1dXS0NZP15Rc3d+dit3WEI0d2xMI0NaaT9NNisuT0N6RjBTLCx5Skla'@; put 'akF3V3ZSdjxbY0V4e2FJNzV5X3BPSSFicFsvQzpAKCpqdVUrO1czd1RucCYlVV9NR2oyP0NiPV5ONT5sO2hAIXJzcjc4UXpVez09TXpVe0ZeLDFEPj5GSihbN0YmI11xP3hraVdZTTddXipvPE1URV50TFosczJbRU84P2JPJTQ9MVE6aUwpZTw2NE02U1BDbX40Ims1OVAhKC5UQzp0O3tufmgk'@; put 'Q2VJMW89Kjh4czBrR0t2JlpqbE55JWRTRXlSXjlJZWFYYkEhNyZQS2BofGdhRUdRJTZZfEg9KFNqLHopSl5wW2RDSkw5bFdiW2UwNGUsditxTX5qUCQlVX5QQjliMCJEMiYmTHR0YHo2RT0zbWhCPVB7PGVdTmp6RyRId1dPPUJVS1BHay9pQyR5LzQ2SjhffFhrWCY1UERjJm1HP3lheEQsXyR1'@; put 'dSUqWUljbF1oKUlpXV0mdztsRTo0P1AuQlVbXSYrT3txZU01UkZOTV5LWWlZLiU9bGtTJENVOyQuQjVdaUBGOFNoUDsmdnsuSTdZVzxNKjduciFTRCUve21zLl1pOEIzVGRoWHxDPEEqJElfaSV5ISM6ayJ7bj4qJX52VzwsdzsqakJLYS4lbExyISVDOC97bUA1enBIP0ZpckV1U11zWEplbkR2'@; put 'dFEvSnMkYjVOc3tITV5BYzYmVnhZdEx5Q0ZEcFcvTUU3PSkxPyFadTEkSiRLPFFJXkY8Jjt5a0JgVSQiTF99aXcjKTtmPTxIUDw5NiJgTGopVz1gVHprQHxocD44RGpdZmQ8Y1Y+SVUkZmwoVD42M3k+bHt7ZmElIT1CcWY4MEZSQjd2N2dZMn1PP3FJOkZGTFpOU1d5M1RCZ3w1MmpEWj1PcCkj'@; put 'P0ErWXxSUCU5dGVFczBUPztSN0QlQjZ+Z21vd3ppZl46KT1qJHYwWDIrNURXSElNYiRfKmB7MWl3MkhHcjY8bGg9PUhhL25Xa103MSUvbk9TQU1KS1MqN11GcV1sWFshck9RL1J1NUEvXU00P2lXSElNVThdO1s0SDs9IzV8MiNkImtvUzZgWSxNLndrdjgjQWQ3eTMxQ284VHNzaGFgYVM5ZndG'@; put 'bSs3cGV0UEdoeGxoPT10ZWUoPGhNZiwuZUIzKkE+LkRFKDEmTGVkOmh3bEtEJV0vMGZFL3xdUiZ1XkpEeDtGQiRKPHBSV1ZMSFFqKWZXZHBYfXhRUU09JFphc35JdFZ6bj0jXXYwfDJhc0MvQGUoLnR0cyEuek5sL0swKlhlRGZbZTleKmBkJUEkMjlMRWAuYW4+PjA4QGoiZUVeUEJ6MjckfWBN'@; put 'U2pFMm9Vbk5sR3MzOVcyOnFxWz98YGx6TlRoPDQ7YUdWcXtsc3pme3I8entKdkAhZS5uRFo9T05TaSgqZShHNDk5ZyIzTVooR0BWTnB+L2ZyOVc0WnleISJZRzkpWUY1ZDRFWUtYN1ZKInNlK1F1Z1lidDNoPyR2KXZSK1g1R1UwKT5VN2JkXSg1aj47WmJ8VSNvYiQiIzM1TmJTOyR1ajIvRER8'@; put 'Zl5bOGN8VTI8ZVVoOnp6Kz1EJXAxPilKSFZwOnVvTTs/N2E2WSxAPnlvbmVDM10rfCh5fU0kPnFDUWRbJmA6aTJ0OTg7PUFAYSU1MVBFOml9biIwZ05sWWh1TTk7V3g7IjE6N2t+aDleXyRlUSlLOjgqbCh9azBTLzxeTV4+VUlfSWwxal59L15NIUV5ckYkM04iW0QzcmFzJnk7en5kXjNkayg7'@; put 'ckkkaXwmdjdnbkpdZUZBNVYiSnQ6IU81RFgwNSw4e2ApaERCRUZpPmpJKERJLCswPnpOSkFxQkUuQWZLK0wqSEN9NkpXcD5hJkNbcXlaK3I+WFFYJHVLPUNtLCUwRVRWO15ESm1VfUFnZEBfb3E+SEQ/W0VdakM3SDJGJS8vSiJVL21oa14/dDk8VjUqR0pqJVBRVUZzMyhASXklcVFJYG5WW1E8'@; put 'fUk/W1grblBadiskU2lob31HflRHVmBVY31LZX0lcmE4JjZpfjx+L299KVN+Z0AoMjxPbF4mcixEflVMaFBWZVouakExNWpuT0l4aE9ufDtSXiNfbV9OcTB0MHxyOXIyOjBzbH46el5XOn5QRFNoU01bIVdLLkIuY1pha2d5ci5CQlAuLjM6I05jQF1QfFohVnVqckFnOntyfkEwWW1yXm1gRkM9'@; put 'TlZveCxlJWghfFEwbWlDflZoPHF2JTYrdSVteXlCckUrXzVIMnFkPyhxWFs9JFF8cSwpLCUodEAjIT9mXmYqYHs/P0ZCI198Y2tCUW5sXlQuRV1pQitqVz08T3I7e2dTXk8kbntLOU1yIWBRalhbYDImWDYkTCwoaz1jKTVxWDpTZiQzRHIkPDBlSEk8PEtod1dyMXBIZkMkW1pOe0M8ek47PzRF'@; put 'Tm4uekxLTDgwLlM+bFRdKy4zP0FoaSEzYE5qblIySkhHdG8vQjVuVmxuRCRDYSYzREM2XlouOXZMWT45Lm1LVEAsMUMobC8xamlfQCYhNVpxb2k8aXxeSzhwWFMrend2dz1UbXlzdX01Wk99dVUsLiZgNnc3fkheV01tSGFwbyYwOGFuUU1jPmJJYnsmblghSnk9Vj99OWdMXy93cGtvRmFLeXFG'@; put 'aGpBZnVee2V0OCJCNnlGaj5saEBTdCp3TTpPT3lCIzomb01EIWNCOyYkd0kpI2Q1eCxRK0MvflVMY2NnaFMie3x3cEFiWXdtMm55eHEzXj5wZVhSYThPa3YwNHMxdG0pRSZ2QCZUd11MQj4jRU5aXUVHRmFUe2R8OlU/Wm1jJWZARz98al4kb1dlKX4wPy5eY3U0XlYiQG5LNkttRDhYKHIibjdl'@; put 'MW1HUDczO1NfNntyPSUiW1dYOE1mZnprLit9SGN5eHtKa2oyTj4rOlJSLHw6V1AqbTRTMyRJK21lXygqNCsmelEpX2k1Q3wldmArVzJLamExaXtAT2g0MWlxYkljMzw8UVdPJHhbc3kwTUZsOUViTFBELjtDLF5pTGNuSDNnKUxHXS9+YEVnbCMrNz1EMCM8S0xRJHFyISovT3h8Y0YldSZkPTE6'@; put 'ZDI8NnQ/fGYrdHUpQEBYTTlwZDgrUH1eY19QW01PdjdwJkZoK000eDZVL2EuV3I/P3JBJSElc04xKGA3QyE8PiVucVI0NXR9Tm9La0JTcE1AW09qK1Y6XXwmaU9eenRYJFR2fDV7cHlEdnt2cGA6TCtgOyhKL2t7I3RTdnlnaHo8NlZSZSIvK0twR0FxV180L1o8L1NJYFsiLHUrMkJFL3Y4MVV1'@; put 'VmhuWilGNTNAYztpRFFDOTtyXWo6KE4sPmFwNUchem5WYTlKKko4OSF8YVQxTSxgQlBjPGBfdGA5ajhPelFSODM5UGo/W0tVOjU2VWphYFN9IXZwZl1zYGddeVYjdyxjeFA7Y1k0aWh4fCw9aGVwLCJsSjlDOCJTOztEZCYjdUhJSzpYaXdtMl9Gb1J8P2ZNI2RDPGdtTmpuamRoIllkQDxkIlNk'@; put 'ejIsUFNuQl1uSCQ6PHRpTDw6QnBbKCgqWj8jPGNoSEZTVShqVileXiwpQWBnW2gyOUJtSWM4ejBBdHFeNVJBQW1ARSFWejtncnxeTyMpXiIpZF5XKSElNkoyXmIkdT0vVV9VPUxmLkRmMDBAKj50cWt0KzhwcnUyIyI5OztKQnAyNlpbUHUzPzdTPS5tLypsQnAyXnRPdFA0OVd5JmNYWGVYMDUv'@; put 'JUQ5eG07RFR6O3kkMjkpI0l6TXlbeVs1O2FOT3QqPnkxcHQyOU9sdFlmNkh5XU04LzlUbXREfiN2W0g8c2ghYnxYclIwSUchcUA9N0ZNOU1QbH40d1VDbWo+SnclcztAOCQ8VE04Mm5VW2w9TF18O0B7dFRTbV5oRWxySnB3bGxRZlpPdG1HUzZgYS41eHpWRXc6aytJaClOZ0ZSMDJ9N15tXVQx'@; put 'dyslQEJrVyQuMWUuWCxUbTk/VUdnKl03bjFzK3NbRU9hSGNlZDU1VVpeciJuMDZAcH0uOCJAbTRMO0I8TiJVcVZfTGd6RHlXMFQqNE1yIXBPQ3smfXA5R21VY0RdNi9fYHBbZkEvbTcvKH1rJkosUkljdWFKJEF0dGBbWX0wLn5oMXgwa3xrM3xONzxLX1h5SGpZM10wM0xZa3UxNUVCPFd2SGI9'@; put 'ZS59aVYkNFQ2W0UkekV9NFEsOElHIW5tdysyKUE0Sz52TjAwUUZSIT5fWzlOOHFLTWZCVSw3QGx2QDl0Mj1JLCYuWG1RZmZzNElNRk1UVClwSDhsbUEsKHBVSjxyL303VkplZ248MUpQdX1mcXlZMFtpe08vdTVjcmtORzYsU2lQMEVnZGNzUS96dmAuKCY0LFooTiIueUUjLEE6SkpddnhUM2Ix'@; put 'OTRyeWwhdWxSVmU0eF5SM3BsU25TX3g6RGV1YWtUMm1QSEl0c3dLOF9WQz1idV5IK34/NXhVVDZ4djVJXz5UYzV6OUcvM29ZU3plSGwpRX0/fWRSYlAzXyYsZ1I+LjFpbyxULyJsLmQ9WmJ6OC5GMiM1YWtiPDpRZz5YbFl0IUI7PkkuJV86NT96Yl9ddjgpa0B8cXF8Z1hKQjwmP0ZZJnwmP3tg'@; put 'aVQ+Vk1jbTN3cSFuWilpS1hrR0tdXlo8OkUiMmp3WEdqdS9jJGhaMzEmVDJ+XTckTj55I30lUzFHfFhLdlEoRWJiQ2l2bytTdm8pdyNESiRlciN5fDJ4XStWUXh5Q2NZMkshQnBQRnxYNV1XakBJZzVrRVFDe15oITh2KkxHS057MmdAUnAuN1U0ekZtJDtqZUJyOyNQYzh8O0FYMGpCZFk5WSJp'@; put 'dUs2QnBabHxLVUYhfFsmV2FHKUBML3dqS1g6RzghXkZOS25UYDJsZXJdPWtAVDZJX3YrW3xHYGVgWkdQNVcyeU0qWGRZL3dsIzxqa3d5ZE58VmMza0BaWF87KExHT3lYMnEjKU5MbU1fflsibGVCeV5qPkN4XVBaJEpxWzZuY0NjUmRRJS86Lm1HY1JDJSNHRXdNajNuViI0LjlBM0ttVF0jVl10'@; put 'cUxFXmRKZl0vbyZpSU8me3ZERlFbMWlYQ3V0Um9IelZsYm1WLGRYeSJhWztUIXV5Si5sMEssV2VyTk9nbXh4IUtiRSVsWUdJWz0pMzxjOjk9Tm1SIypGNktKMm0pVlE9S0tyN315I2EpWCE6Lit9ZXg3LjB+OW1rUFRiLFloNyp0LFpqNlYqTTsmbkc6Ilh8alpoWjBfPnRIREpRZ29OdUlKRXs9'@; put 'ZlRifXEjdVp2ZyNLVUo4TmZiLFFCbGlHTk4+ez5yQigvXjkuL3NSMiFiVkBZdjRBZWBLYCpfTyQjWEAyP2FhKCRMYU5FVW40UDVNInEmI3RKPDpMNFYsXUh0aXdGelRTbWt5Pi9GLlZWezQ0VDB3SlMoKVJtW0xqdTlgdntxJE11LHVZb1VMYjZ4LDBXIy8iakdxUFovU2BXaltLeTtTe21MaGRd'@; put 'cHwhczprYjVicE1vazAqLEEkPDF0eStQTWEia2V1NmpWS2F0aUdfaHtme1t4VigwUXREREw2WDJ8K35lQ3p2P2FFQlo1QE8sZks4SllkSTprWmNpT0JWQ3hlfjArdT1aN0tdbV1UKlF1VE1xQU96JipIVl1uPGBvVV1LSlZ3dj5Rc1FQdlApMk1DSCo5JHVPLl8rY25aNVpQbksjRClEQldnWyRe'@; put 'Y1QmfDkkWUNuYyY1OVpvNUJlfUFtKjIkPEhDaSFZNXJUVyNZNXZMdXp4WWhFfmxDe2YyUHgqcm15KXJaT2tgSGVPRXtYVjJQUT1EJGJba1hKek18L3RwO3RsfT9GWjBlKUgqP1ZbUF1MIkEuJVkscUtCdXYmKWtOSUV7XWtWO0NmTHFIQi5tY1JhWUVhdiNbeFdsb0JEaj0/Sl5wfHBkK055OFpG'@; put 'TGw/KFdQWylNPmosb0t6WWgvelRgOVFHLDgmJEMpJGkiYCZKVGssVkFFVTVqeXtCPytGKj1eYlBvOiJoXlJgOTZgVWdUYjBaak5pL2dXck4vJTdIKzZ+KTw8N2kyTjRhLl9nWCNPaEVbOTA3T0pucXNWJUpzYDsjYUc5b04hTERPUCJmQ3pnQ2xdMz1GdiwkSUokKU57WSQsXildQSQmKSUpLFV7'@; put 'OUVzMTZQOlIhViUrJmphUDh3LG51aTA7IU80WTsjSjlNS1kwX1gmeXlhWC4yTG9OeEJkPiV8U0tTbUclX2ZvYixhakFgTiRhZ1U8IjdjOV0xVm5iJGJlI0dmJE5nbzltLHU9aiwiPSh6Ukl9IWE6TmxZZkNZTEU7UzMrK11MdlUlYmpzb2hNO0lvam0pLGBucCtqL2tiXzZzTyhHTC9tY3E2TFts'@; put 'Wl1JLH1FKkZ3OSFORShCOjlwJHV4SkE8ZCxvYEJtOUAlfE90bWgmMH1CJVsoOSVgJFVVI2xrcnRvfi87TDBjbD42fm5qU25wc2o1X3wmQkt+OS82Q2pARDpLNmIlS1U2KXA2Yl9wNmJhM1EyQ19nT3NEZXFwKDIsKGo1NmQkdHpteEtFZygjX08xbXhiaipMUV14dkAldD90VDMsQkFBQUFBODAv'@; put 'UlB1d1hfSVlvLDVbPXFjUWFRIiohN2BxM3NUUHJNKDdiUz9QcmwhaT8yQSE/X2x3dnt5VTlNPFEmQDI3IS5aQkVYPV1qVHMyMnpwTCFWOkJ3Jl4sRXwjdjk6YHFvKTFeQD0oRD9NY0l0dHpvUHoxLkpWVERNSDxnfEc2VG4kKXZDbUsjc1BTXmY7Wn54QiFoKl0wbyxqWGpHdHB+RDs0TWR0b3dV'@; put 'WTx9MzM/dnYlKygsLD5BbF1nSXRQYnBqQT9AIz93cyJPW0x2PFMsSyF8Ljl7Oko+KiZPLHRPXmtRJX05NyRmWCkuVDVmYFdKMTQ7b0pGRDhYMi5TYD9oIWp6IyZ7MWBUNG9XRzl8K1I2QitHNnVQKnJmey5xTTA+Qmw4TVolJUtsNiVHRDxyRyYrNjxlbF8wd0ZEL0x3MitiLExybERtWGpzUSl8'@; put 'JmBjYzVRXzE3IlNSYXJ1IiZ8SV0lTHlmM1ZOT1hFNkVAUjA6W1pFTHpIITx6aCNlZX45X2I+dVUjJnJfcFlydDNPfjY8czFuPmwyND5XKERIRUBKRUJMOnFOdXgvX2VLRSl8WUNTYD4wcTVBXlMxNSkoQlUrbjhCPCZ6KXJKY3ZWUTp5cmtiblY2Ymc1fFFuLDMmfXRGUU9bVHwqVV1xcDJsbVQ+'@; put 'MmZSOX5sSmtzaSJRQW1PPStxbU96ZlE4JnAxan1UT3lNIz8oNypHRWNbfXYjU30xJHh2NVI1dHxNPT95T1t7KUBGQCUxQXxPOSxLUDJjKn1yPiJrdnBbeT0wWXRgeitnaXFXRXFCKWxlMXYifDR7VjYoZG1xfjUoYjxwJk18KyR1O1R8MTNGNFRFVGZzYEV6OlUrbClwVSMrMX1xclo9Km9gIiRb'@; put 'PGwyPU5oWz1Ve1kkRXcjPls5LzQvT3gifW5kKFUkbClTXip7PyhRTkdHeXZbWGkldDJBUUJuM3BSPVFeM2t9LFJqPm9ZI2FCQGc2bnBNZEtTS31PQWZ2T0FfVylgKlZoKyJsfTUmUDRwb2B7VVBjJk5aSXFvYzw2elNSfHNjfUJmRiQpL2JCL09JTmAmPjphdS51NHtAJWkpQ1BSR29tY0BdaDNR'@; put 'alFdfSJxanVVKDdJa10vOWRfUHZLIT81LilPW1IhY2VRSzNJVH1+OU9vJCE3fmU9KnpbN1gyYiQ6MnduJiwrZj4hMGFZTjlNQ11HKjY5bi9US3RTc0ZPOCNsajdXSk95WWYhOFkiOnIyRHJ6fUglTkJucjFGbiRgbTh+OnliO3Q+dXMpOzM9Kn1RN0R3fH1RQUU3K0lHJGd+Qnd8aFdWU2g/WmM8'@; put 'b1kwL2JJe0FDPjBtT0crJSpNPjg2anomPFZuRFB0cTNkTHlpNUEjTkpaQiVONytaemdIeEZxOXooXUxvT1dDOFlNaz86O2taREdlJVdaeG8mZSZVKSV8VWJlbnM5LDM1QmR5bnBfTmRzSWJzSmFiOTdgJGcjSG5ZJHc2U009a3hyOk8majRQI2tpIWgjZntdUDJPcDAkYzY3Yzc9b31FTkhFWm1h'@; put 'LHpTTjVAX3U4MGdPZT5KTjMvPTR2LGkjYDQ2eD54NFE5eEEyXSw2ODpZK1MjYGdSPmprVF81YWNKVX4oMHtpWEt5Ljdod1liZyg9d1M4SE9MMzA9JFhYPCp0RDZqeGBfXTxgdzJHPFBtcmlSIypfJSFJPWlTVyM1YSQkSSY/KkwhWTpOOEBXLyEmOWdUSl0odUdUdEFnQ1F9PFBIN1s9UCgwVTIx'@; put 'KVB2ZlZGXk92Wn1RKGQhd147SDE4RDZ8X2ZgWlhnWjtNOGt6aCQuVWBTMTF4RSs4RCNxMmMlVFFhZT5LMDxacyw+T3NecVkmOi5lNXJLcjJNJC5AJU9BUlFsYnoxeT06WTtTKGpCSkw1dCZiUG5KZ1BbaHM/Ong8az8wNyR7YHpdPXE2Kyg0Y3tkLl93YjttQ15oZ29beSxeJG9AaEU9MkhaNVU1'@; put 'bzwwUU11aStWRW5zLjxRYTNKakQ3K1JtZF5xYnQqJFE6TThrWlE9MGFmeTptcVtWTVdJX3E0MVUpVUJUJkV2cTUsaXNueDpMfFhYRnBRUzxEZDNETG05Wz8+PmB7VG0lfmpLIVAvJj1FVWhGfnQkTDFXYHF6WnRMdUR+WG9MSWVZd3drYk9xfXI0aiRCLj9rRzAhWnpXYGtHK2RleltrTGYjVjdO'@; put 'dTV2UGRsckF3dEY9L3RebSk+TGMjOnZLKj5MYlNUdDpAQkxPQiJOJU57Wz40K052QzBiZ0c2V3xlZzYzbj1QLmBaITc0QEE5cTlsY2tYZSleXSZWZGRKN0kzPD92PFBadV00QFBAM1J3cWhPRU5za1IrKVJQK1VCYUw0fCpYMntyKj5lZTZ+cltNcl9SRXFYfXI1cnxrJkBzPiVKLEBxb3huIytg'@; put 'L3Z5cCs7WVF4JlcpLCVaaSRWbShObklfI3wwYCVmMGYyfUtbM3VrVGZlZ2hCdVUmPCEibShefHFjKjdIb1k3Ui57M2dgUzEsa3o5OW1bPHMrdTsjeENiaDZsR0swanZpWlcoVTBobyohNkBbJjJmPX42aE9YS3J3M09xSmN+c2tmOCwpPkYlLm4+V1s9fkswfnMjNVp0cl1+aFdycns+RVZHPVQ6'@; put 'bUxyXW1icntgNSZ+Zj54Z281PXA9MiV4Z3ReUHA2dlV8eHtwX3o4PTtxV10+aWIoTms/SiwiTSNAMUIlInJQb0leUWtVP3N3dnhJY1MsRDBaRHVqeH5mKWoxMWZUc3duTG5VLiJvenc4L1ZgNXVCPVlMVWdBSiQpbiRUPGNPU21MREQlKDJXbEFibVFEWXdIcDxQZ15EMyY0MjplKyt5ZFNibXZH'@; put 'd0VTJTFFUkJlKWBUM0JxIl4oI2svTDI8ejlaaUVIfE9yaS9sX3FDeTYxa0EqV0xVWSkrVXJCYjd3V2w9RkhIREx0Uj9bb01TI1BhWXFaNXJQRH5CazVOTzRSMShlNERRVEJsND9iMkc2NERIbDU2Vzx2Z3dFcHVZYy98cSxiJChtJSkwWT9rPSRRKU0ocipCM2JhY1FRcCUpd1F0SjdzY1ZCKzwx'@; put 'a2FdQlpbdi9iUUEzaSVyKz8yTj4pNnlDYSNYTFVWdGRjJEp8V09gTTd4d0tTeFo/RjpvQUMlRGZEcTZUL1dKU01DMitXPWg5WjU1Rkt+aFZxUDJvZzBvVkg8c3xEIVdiL3diI1d3TT8xX0FDZnd2UT86JE9Db2Nka0hLQUNkaX5qPClkTHlJQDR0LihUY2t1bnRNfHYjK0l1UiFsKTtUfUR5KHFf'@; put 'bVVATFROS0EiTG50LiRhbEwhc0ljd0ZYTFVqejBOPis4UHBCNCFAQVkhSExWWExVWmBfXU50aU5rKXhue2VZTFMpJX1rVXVYM3BdQ2NAfFg/R0xlOnkmV29JKDMvV0xVbSIkWWFTWXc4V2B2U0FCdiN5VEBtXVlrQypUWGR4akgpdnkiQW0mQyojZyJXb2hqNltAQTdjbE4/IkI8dTVsdEoiNC5G'@; put 'RCVtXjxpZytHR2lyQiRnMVs4TU9KL05rWis8NExQemcvVUBvRW1EZkImKExVM2JMNWdFayFWd0YqQWd3RShBN1o+NzQ0RkttUm9uemppdnUvOWMrcyF3aUs3RG0qe2RsVUFCZ3w1THVHQFcqVz1vKnokMFM0RU5mRE90U29OLyNbKk47PmVafnpFMFBqNC42bX1RWXF1Mjl5NC4jMTpvWUlKWDVu'@; put 'OlgjWVI2VkxYIi8+VkRUaEtDZVV5QU9YQHZSTkJOJFtlTzc+Q3okNUFVK0JQQkAiYSI6bztSMEReTDBENmE5WzptO0VvWTszZ0dBY053YCQ8W1N4e1liKVFhQU5yUUNtb2RlV1slbEN0Wn4/PmtfbCZPJTlbbT1sVF5VJTFBcnV6e1l0cGlbZ2ZPO3ouVXxOK3BndW1EYlRPQmhIPUZwaT8ufD47'@; put 'Jn5lfXRqJjN1RCxPWFJYK0tNTkNWYU8zY2FudzA+JE0pcnRiSS9FbHdTXlhoWGNQMUZEPUxvU0FJRFgzdHV0KTBDTy8/fGozPWo9UC9JLjN3OiFsPTdbLzljUnpSOj1gMV9AWmFKa35oSDZwPWQ8Wlh4MS8vIzkjQ0FfTllvaClSeWg9bXw5UiwvX01ZV3llS0FmMG98ViowenVrfDBNYkM2LHR4'@; put 'RlF1SENeVUZgQ2Zga2QwMFQ+c2lNc2J6bil8bXluO3R8aDNAMW48dD19fj1bX3pndGZ8WGEwLkNgVUVhdS95fH1MXmh8YWFlU2gockZhRXpEdDRhVEMmMWR6blh7WGYwcmgzeF9JQFNbKj5XbyhAcnpgXUdARSw8cFFYUXw/SDMoZDFAeFpkZl1seTpsUlNkezR5dkhXQTd+bUheP3JbMW5aPyo/'@; put 'L29aX21YPi40WWFjaT4/aHUwVyFSaFtRTkVpW0lia0Bod2tbT1VIMiF8VXdsdV5gPVhSNW84O0I9OWd8aGguRjtaPSVVKEhiZ21PNSxDWD0lK2spWSowcHUiTlsqVGcrazBFMmc8Jk4wR01mdV83RDx7M1o7LHhoOGErYHF2YUQjTlVOST52W3YpY2I7OHc/VCF4Wi8oamZtMCpHImgwRmlWbU5g'@; put 'cFJYRHchQFoyTD8qQmZDVlJhRmdEIWFJayZvKk9VTzF8bUtUOysiK01Ea2RbMTBnVXlRXzAwVDBzaTJMfjlkMUJ1bVZ+PjRaU2l+TTtPLHUseVZiaTM+UygpfmAjY3crQiN5UypSJXlyOUFFd25yOWdIRUc9fUdValIjWTZ4USxCTWUyN3JYK0ZXOFgzVWAzLFFXREtJK3dVOnFZV0R7MEpaOXVP'@; put 'dWhmI0JramldMFU8WiVxMDA4V08hcnlGayI7cTooXzc1RlQzWWg+YHNRWTwlNi9wLFlORG8wYExtNTk4KlY+cmQveFAvJn16YGtLS25gQ0czUjVITlh8Vm5UfCFhSHQmfEd0JXF6cDpRPntDKnhjV2N4VkJaSChtTC5ySzNGcSh9TGFWLyEzVi85OnZ1e0ZvazlMNXJ8KXFPQCgxLENEMmdvQ2dE'@; put 'NjF0aW9DV2hNVyMrIXM+KSZpdVtpZlsjbitgKDNYYC81Mm44YWtAZ3xAVyZENEdKaFtTO3dFUiMqYHppbm9qa1kkXWdbI19pe0xLT3lZZmZJfGVHSEdSIV9NVDR3Ljh0NVJHS3ddRFk9I1c2N3AjKWE2U3B0ckM2TF9Ld09pfFUmK3JWcXZUYTw/RTpja19CJXU0TWRLNU5uajx2OitpTE5TZT4w'@; put 'd1lBOis5SyRqdVtbLjNJSllEVENZTzp7MExuNTF7QyhgWmM1MXtDa3VhQG88QS8zWEpwXUVBR3FbKVtEO3o0KW5eXUxxZWVyfm9UTHtbdjR3LjgqQmdEK1tGcj5JSjckcHMvPyFLWEAvLztCJk9KaVE3WGVvNDU1di5ASFhmWHJiS1g1IXNTaGBIMU57WWhzfi9efW9NeC9taGJObzliIXxvVDdY'@; put 'eT5vUDpYaW8pQ312WF18KXxYRnBkU1dLVUhnaiIldT14QFJOSTFCT25sJHpYISQyVXUiKVhGLzgzPTlMLkRXY2J2KylVXTVSR0tbZmFNOVBiUk51RWJ1dWtiKkdOP1Q9ZD5VM0pfR3dtYXBQfW5EWWd7MGEuXyNyP28yZzgyKU1JaGosb0NtcCEwL08kK3QsekdOUzApVyRxcjNONFEuRCpncml+'@; put 'TGZmdEYlek0/THtqWjgrd0V0cmdgWlVDXlVhXXdWKltyKlpWPSRNU2IoQlkybU9HWmpkPE1oWSt3RzpNTV9gQ041X2VmZDFUdispJEcxLilVV1VRWmsyTFBNUCZHW1k7WztHYSs6NFIvc2lrdzJQZk46NEN0LnxHVXEqMGEuXyNMVzttMkk0KCx8MUUkbWRAJVNNOmEqdHYjaUxdfj9YPEcqbllV'@; put 'Sk8mJTFpP3dGRGFQaEw1UjJiO0NfLGJPL0ZEcXlGRHpdbnJhPCI5OE5fd1thPVNzTE1wYV03LzVEdzRJVzxMP1tTVFVzfjxALClAQ19SWFo/YUdRfD9qJFo8LFNyTkJaPSo/MSR3cmheVjtJYikiZWhbTnhJRCt3Q2ZdKGlZOUomKFN5KG1jVEJQPDljckpFcyRiLnNNLHxNOzo7YmUsU0V1WXQ1'@; put 'LmA9TFBwInw2fFhDXXkiOm9eOTpsUkZtbTdKdyNzZWVdTnV2SkVQSWlnciold3A8dmZpdThhLjlCTUdUPEJpLiw9KG1vaVAwZGNheD8uNWRQV3hKdSpoWkk0cGkwQSkoenx7Wl9WcSNlNFhSLkJ3YXJ1WEEzfldIZStSXjRAK3RKK245UkRpPS4zd3x2Y3hrO0RtWXQ2SUtybnxSTHohdnRkZ213'@; put 'fTNGbV99SUw5KFtoMVFgOjx3NHs6cmVhYD5iT2l8OFdtKk8vczx+ZT1yYl5BXmQuWio5M0NmQ2x6ZDBnJDpEOnQqfHlGWDhjNzE9OHREP0ZxWyxXKnhOZzBXLkxUfTVDRGdHNjswQWYjUHxoOls7dVlwSGZmakU6WG0uKUM8dU57Zil2RCthaSVVMElyK0FufldpSSIpfjdzXX4/VTB6Uk0pQVd4'@; put 'cGdFcSVqd3s6fCEmT0hCeVBqP2l1bjRXNTBXYmlqOT5yakpmT3lQd2k+eEJ2UlRMaWxvIVExeFEwRjZWIVQlVSVzUUhRYEdWIzR9L0IkKTBNUzYpKyxacCNQYW5ZXUh8NzVKWntPPUF5O0A6MX1xSjJ3SS9UTSxDIy5CRH0zJjFBOyNQVyVsOHA4Xj0qIypEdzxvKj0kOmk/TUFBXmVWQU0vSnMk'@; put 'PipXZW88S0p0blRHcV5PdU0qXVdoTDdGMHUxUWwsRS4kaWlSNVFpLGFNImtePW50ek4jJVM2QUY3WDp6X0FtVThTSmZLU0d2OGpId3d3e0pidmdDdTF4MXgxRTxRdipuTk95REx4K0IjMG1WcHh2dStCQkt8Q1YydFJOSE0iK0B0NH5sKytVaktGcTl0anRrX1YyN2t3ZzV9SFdPIkFUNSJrQmw1'@; put 'MWQ0IjVKLlI5PWJ5cTVwKTJLQ2MsK1ddbyt5Liw0X1ZFLHh9dHVTdkwpMTFkSmp6WFtgaFNAaFU/RTpXeVpiO3NwYDQzWypWaSRrRFhebz10UG5GSk5YPUxhN3Z1K1h6KmpYeVAqZW82RUB9RTpeZkUiZSUuRCwmTEZBe3Y1PzooMzpRPEZmOjF4N1NHQmUvRXI+fSlSLGZSLFUldkpTSmYuPEpl'@; put 'OTNPVFVmKkZpYSYzM1JqYkBiUGdHclRUZXtHOVd8NGVjSVtdNHJhaClseV5QeWppVU9eUktSeTw6RmIuRTE3K09rLiJ6QiVjUj8oNUckdywoNWk1e1B8O3peYTR0YG4zbUxeP2FNKjs+WktiUDhObHpTdTJjels+XnFmOEdMYD4zY3hDeloiJUsuPUxYQ09wRTkkUG5ERlQwIXw6SCQ0R1U4ZCl9'@; put 'cVc/OkR8LzJoMyZ0OHRkVSlhJCtDMktWbmhzeX5yYWREI0ZjLyt9RGtUa0orVl06QjRrPWU0MHpQY2MxTUllMXQoOyRwdWUsRGdQWWN6QEBoVTVlekxFTU53dFQoR0hRfSszcVEzZCFCXUlqZ3d8TnsmR2w2RUB+Ry5vfGRuTDU6cXFIflQoQlI4XlZqOSteaSpXOlo5dSV0eiNNZ0FoJXpfTm4u'@; put 'QUxLbEpCPWkpciF7Nm0jeyMjKkkhWD9pSWZqQmJGMVZUNm87UXNKMnR4ajdydSkxLkY0WV1pTX54Z2VrbTtPYzIkVUdZRCZ1SSolL04yXk9jW2glSmdnV1UrVVdzLy5XWCFvQkxdUG5ZVEEmXmokKm4vUXIjeEJzSWNudEFvMT4+JFRgelF5bU83PV8haXxPek8zSFgmS09xT0l0L0RGS1dTP0x4'@; put 'emtabE1iLDlpTlJJPCk7d1A8WlskKSFAcFBuNioiJWZdRCp4fTBgP0soJlp+VmRfb0R5SUtbK15sJSQxLjczNzxGJnRtaSxxaEd8NXQ8NzVDR3dvcH5sOGpATWloUjAqPUhDUiVzSkNaXVZ3P1d8ZCxGPjVyQ1ZRaDR0TShUKnomUmBkOFg9UHN9M1gyN1cvbitdOFZJLyY/SDY2WkZyKzxqRysz'@; put 'JHtrOVskLE1SJT1LVWRyOSQ7dT5YJiRMMTBsSWF0anhZdTMzK3BULFRxaHdzSnUrMUg7SyUiYyJWXk8iflFFMkFeekJnL2Rjdk8jTDNnNC9kTHFZTm1mNSolJSt+WCZARVJ5I0JKW3ZnUz55Ilh4OFlLajdPMSpueEI9TCJ2cUpdST40Tzp3ZzB3OFNHJHo5aS8rNE1HQWxCNlRSaXRVLCl4NCFS'@; put 'Z30vWDs0ZF9iXjZOYmZyUThCcnNpSGVGXTVLdXhHel5vPHcydGQwdWV0cHs0KDhCcik3XmkibixUUTdQIUFrZXtCVC9YKXgsQzlJYm94eGF0JltnUGlhcTVwVlUrSyt1Y0glfHIjRj58Xi5Gaj8oTz1TJSI/Q28oYnVwUmtDNE5FOl52VHZSV3RSMCV2QzVxITU0O15SQFhOXUN2cWRVYmF3fCRJ'@; put 'OVpDZTlGVyxkZnhydzBQIUF1Kndfel1vKDRpR11oIVY7O0RLOTR8SGpPfjtEM05GIjNPUDYhYnUsOkFUcGhDZjdhdiJ+bCRZSStYQFJwMWBnLEckU0I4QEluQXdBTkNUQlpyYU0uRSlLMGtdUTR0cFIzPiZmR0VsJUR6UkgjYkk4QFdwIUt8aiZrdllCWzFwMGZkandgTWxAWldTTDAhR05TTk4h'@; put 'dUxtRGopbDUwI3dpQzE4X3F7NHRZdSUvbmxwdD5sWkh3NHVwL00ueT1FW31vUDpsd0tyfEZPJH0laDw7UDBDajJDMixYclhPUzZ6SUVbYjhqJGw0Pjg6Z2x1PXtbemRtITIqcUt8ZFthcD17W2ZadUw1dklFM2w+TUNCJjh4YjFOY2ppTT42dEZaRW5ufU1JbihzfmU4WnsjQSFlVDJWXzR7PVRm'@; put 'PmYxbSl7UlozSTlJPjQpazVTRjA4dFBxcEhhXjN0Y2olOGosb1BzRyIhYWkkVnBIWz1KYGVMbDNeK2BKZz5PPTgiSDE7U2BmcTlSIzZFO3JaclReaWhpNSIyJSNhOl5hYVdgYj5VQyk3VisxRzJxUEB4N2BXSlN9IWN7b3ZqU1RDSUJNRVllMHh8WmJgP2tEVDpHWHdPQmE6UDorbiNEN0k2L14o'@; put 'ZjBqO3xRYXI0QXdVelljR15UY0ose0c7S0BKQ2V7PUJve2xhcl9wQnxsWG8+VHNxKHw3ZlZKe3QkJFkqY3I9SV18WXFbSl96ITUzb3x4KUdlN09QTWFgQUVbWlZ3ZnRNW0smWSZuSCZSe2kqSz5YfGxfdUllTDgoRz5bO3JCel8wUyx6YypmbmBJYmg1fEspdX0wK3I+aDMyZ3tOayJQImxROEx2'@; put 'JWtla2l8T3heNG5VcShxS0IvZzoxYz5JPHlpIk05NjgufCFVK1dKVCRSS1RPLFVtdTRvNkRJKmxNOkBRVUVGQit1LzdmVTh5XmFWRlhHYXVkIylVZytKayVGL0dmKz1CSE00NjNwW3R1S31MQj0/Uy4+Xyg3Sj1pYjtiRCl7dEBMZyhwSGZQaHU4RDd7KSs4Nk0vOltXVnRKRGlBMUlkN2BKW0FA'@; put 'UFN5fkZFcyswcD06RiheZnp1VW97X1d7L0BNQURKZGVKQHBqNyF3P1loSVp4Nkk2bkt4XjFGdVgma0k4QFZ3I2JjIWJib3taPjxoR3JnRSolUSthK3hyb3NUYl0sT15WK2ErSigmPGRmR1V1QlVHQG9RRj59SmsrXj54QSVSekBPYywkTD5uaF95VWNIYWFNaUI4Snh0JUVPSHdYREM4XyFOcWF1'@; put 'SDZ3WiNYRlBNZVhlLjNqbEBGb1s4JCwwSUdbKiQqLHdCJDpjMn1Qant6fWgpRTg/WSF0Y3wmN2EpSj99ZDQ2KF5oeFBNZyg5M2M0NHY4OFRDOFdFeCM0SFh7ZDw/V1RiUHIhSSQpPWdBYF5Pc3N9R3xNMDh5VjY/Tl55Q2VuJGZRYnZARGMpYUdwbGJxdFI4Rmp5JT1oYnU3TzckIVA/MG5DKXth'@; put 'NVsqW08vdyJTXyFgZ1orfEV9NVpvKHBEUUoxMztSJXw0LlM9Z0JeZE4+RD1yN2FlZjo5N3pOMC9GcThTMWRNVVdmYD1OOEB5M0RDRHdwa14oVm5vTiQuNkRkOHRJQ21LcXJXRFhtMktDQz1HOFBfVkVRe3QiVilfMmp6WSlSXXxYL2dyY1o3eUJxdlB4I0YkWCJTYGRqOTFHXnh7XVY4ZW1NeU1Y'@; put 'fmQ1I3BuSyFAVCVweil1TWY1QSRKLCgzQCQrbiV5a3l2XihWYWBbe0gheT9TdlhdP1I+WSZZYTArOnFlTGt+UGcqWk9AR3pPZyo8ZjdsP084On5iR0NWZCt4QCo0K3Y1MFVaJFkkWSQidSs9c15YV1A2YztBZiNPWGdKM1VNQ0J1LzZia3hsaV1IUmZsUktrbCRoPG1mVF0jby5mYyxnZTtMamE5'@; put 'eG0yJD9CMzxnWUl1TGpheEYsP2IxL1MjKUFmNV9+ZTQvY0Q9ckE8bl4uZTpTfmw1YWY8ey48K0RURT5eaGR5KURrV3w9JGIqcEh1R0VWekV2WCZpVlNEVUdLK3xYR3AoTHI7QE95OFg9azhfR1I3YEptZltlWSI2Jk8peXNMPjUoNmI6L2JKQzcmSUFqLGFeUDpPXUJTcmZoe1pWXWsjWyJ+YnFt'@; put 'SEpvOWJUVm4+ISNKLiF+bFIkLGhGfXFOUGFUWmNeeVN+YD9gPCt4OGY0biZPOkEhamhJakBZVVAwcyorZCFqa1AsLlJ8UjlZTERtYH1QfC5hVGRrQTxKTjBzYXZ4ODN2JCVrekg8fVZFZ0Q8ZlFXKXNeeCJ8NFMlcDxgVzh8fDluT29IMlAiVyNePCE7KEJudVkkQHBDKlNhajxiWnUmNDs1WV9M'@; put 'QmZFJHM9cTc6cloyJls7QlgkQGJpfEtVdjxyRE1dR3U4TGpPImxAWjJNUCY1WTJHQiVwOCFjJiJZPTpnT2RNTzBHNilWQzklY1RIaVpxSktoRGpATSREQjolY1RIQ1pmYVJjdGMmMkgsQXBvSEBNYWQ0MFNhSWR+WSZ1PG5WZCEwIWtpZyR8ImNqdmk3LExTcH5jQ3BSUXlZaC89dnI3OnpJNk0x'@; put 'O1Bpb35RezB7Y3QsJU8iL11aQ31eZFs1KWdYMDZPTnh1Jl9TbVpiNSh5OzU6ellZIlFJT2VdfDViWX5Zb1NsOUFySU8pd1h3NGU0TmtEZzJbWkNwc3piVlNkWEQzJUFdR05GeHY0PWxNeVBEPD9DeV9TQlkraSpae3FqOVdKSFo2TF1vSWd0UyNQOUg+YUhlREZKWlQlfTx8ZUVxPjBmUCtXSStv'@; put 'TmxaY25BV2xOM0MjcSZkcSVXRSNMZCNFMDEvImg1WmRxdTUyLyJoIitTInVzek4xWn10eU4odDMlWDJ8TDxETGg8RGIsOCNZczJ4XkJBWm91TVUzUjlIKkZONGt3eUBfb3RJYnBWRjFsOCw0YD9wdWViPy96TH5eZCtZdyM8aDUic15FYW97WGNIRzBZaSM2aFNhKUp0UHtoWXZlVmpFSTpnWV00'@; put 'Ynp1JEVeJWt8bUc8QjE6ZU8rZlJEPiwvdXtnU25FUWhhYDxFdTl8OUU6O09HX0FwQEVZUDVfSmhyN34pJWM2WVphUmFFOnNpRWVGIz0oYjk9Kl53ZldhLiQ4PENFOHVsKER0S3xSSF5VOC5PMF4ldk1hZzttTSROT01FRCgxPSpXdSEqSzY0NF5WcDtUZmtORDpKNDcrcDdyOzRdIngoaihZZGtE'@; put 'bVFGTzhuMyI5WEpBSGdpdzApe35WO1A8RHNZR1RrRTsmaCQmPnRZS3JIYF5OLEs6VyNvcVg7Yn1meVZ9REREV0EySDM9aTVzfVFDNnQodVBUIVg+L2B4aGlZUDJEejRHPVZuLl0hQ1NjXzAuZnBCTjxPa0ZSeDdHKl5hVip9PEdCU015Rjk6SUJTd0chLmcrMXc8dDBWYjROcXNWNXReKlhdVFcp'@; put 'JjxMZmR5Tyw2XiYqQkAjL0NrL1pRYGIyInVyMz1rKjMrdTZdYU5qKUswQzo9M15qclpNLj1rdGUkamVaQCFRWEFUTVltOE9sJmMiL3Y/O3owPz9rY2lUbjU5RURAaXJhTmFUUTNnK1Nral1bKllpLCE1NWwpPFRURXMueEJrQT93anlmQE5KLEojWWwjPWJ7Nk0jVjJOWCYmX1QlY2hXe2cqM0kz'@; put 'cEU5bFYhX0NCdSN4aDlyJTJnTD5TLExSXWJpTyE5OnMuSWE5bVRaUS5nSDExZ0dSYkVpYmwkYlJ3YFp7SGBQYWJtTD1tL0dtLElmSjJELGRUWHVMNyVLQ0pfQyZNWCxAKU11Xm9CUyQ6WjV+KXM0KWtCXzQvQ1VfaXMhKSx9UkNYMk4zaU4vazlIJS5xT3FgOXR8VStJODBtYjN5SiwpcyloPUou'@; put 'JSFQSlQrTVpOcD5McTFqc0RNeHYwLGNkc2NVeGd8IVJRIyQwKCkqaTIzPkVwXVlYY1RTZWd1PHYxSzpuKSlFcmNyeiIibjAxIWooTl97cGBiT1lPe0VfeG5ZQjBZZldndF1EYWR1ak9QZllhVHt2SiNYL208RTg3PShtNGw3eCYqIUJXSm58JmMrTjlge0FJcW84c3JiKDF9KSN1ajMxUVIlanxs'@; put 'Z3ZZI3JpWW9QS3w4TGxEQXgyZixOJDQqTCMqZU5xOERzQW1nYilCKClCSEh8ZmZ5bWVhbFpOUnhwMkJHeVVdakdBYGkmQEt1SkA6fmdsdGZzWmVHSSxMMCY7ZSVYQChAIjZTNWlnfWtJfHRGeW5uPXh0U1UlaD9YOSI1NlZwVDpAOkBabXM4XTl1Ris1JilqRz1LKzMySUpLUS5DeiJMMz1TKDx6'@; put 'bj09TERoITR1aUJre2gjaXxePXZtL1VLSjJdTiQyVmh2TCk6cGRPSmhbelNJN2cwZTp6QmUqdEpebCwrOi59VmNWZ3kxbHZPZjpqVWUxZjtjdCtvNlF2MiMqV15IVT8vciFTTEtaI3F7W2pgPC8uOksoRy46bltzUzhQO3JRNkQzcil9RmNpZnQsN0t6N3JPIypyNVVBSWMzSXhpelhZJSg1X2Ip'@; put 'Q0kuOm4ydFZ+KDwyJWE8Okc3VXNnK2M9Q1dXMVc5S2JYQFNTfEMjOEJuYVhfcSMofi82bFBnPFhvNz0rQyo5UWBeQWFvVSpbfFpWJnorTHBRaTFMakFXcXlhWi9KWVJpZXM4VmtHZCNGUmBMVXNePS9UJV8/JF48ISpLW1Y8Lkx2TSxWOlh2P0g1eF8wXSxoQFRPXmc6VnxZcHZ6XiZgZm1gMURr'@; put 'cm9bcyspXUxPXlshYzE0R1JWfGU4dzNWW1V2OEsrY1U3ZXkhTiFOZWZQZDcmZ3x1QmU2Jip4ZXJqYW1qdW5PeFhIWjVQVmVJJVBjZT96ditrQHl6U2lLenJ5PkxVK0hEZCNdZDhNWjxOJSl3ZUBXSWpbVnI2KDl2ZkY3K25VPFdQdj9ITkdROFdlWypLVShnX0IzJUdORnhHRGYqQ1RtJU8uYHE3'@; put 'YX5vJnh+VG0lbHY+aGtOLDd5V3A4TXlGJUZ0VkV+b2l4P0lYX2F8W29HRk1YNTN7JnMvQkFbQmxqZlBCPyJZNFBjIjFPVVVOTihrSTk0NXpCeFksQXBGeFZmLlU9eVR+eEYiWVZ9Tyt3RiZxT09CdVdnb0MzKzBLeSE3KXY4VVFLTi8pLn5ZTlMrMHo1XXlmIzZtJiphQUUiUT5Ba2N1cEtifjF4'@; put 'MStGMj13bGc4els1T25UbntHRjgxQ05HZ2NBW1Y7X1RWbHxoaC9LOChBSUF2V1hMRktDKXV2Y3QseHNxemFHZlBsUCEmMXBoaFp9UCg7PndLaHpHUEglRWFHe0p4NVVBPjtkfmNRMDdHdFQ0Zk8zcUtxOCpGNFchWHo+d14lKHQ3R2VxIjtiZD1EbDxwKj55fGguSEgjaWFsOSVpczYxWmNobk9x'@; put 'WHYlbVlIQDlIbDVfQj5rNCZ1Y2xQOTMwfHE6L291PUl3NkxHUVg3QGJJYDlsdWtVa0ZSbWBNKT8lZ1JHYHNDUFVLYj8xTV8uLCQ6TSheOWliQmRuWXVTaTlySFAlV2tEakczNGIzPjhEVE1iSzRUciltI3dnc297dWBmZSo/KlkvXWVoPCM/MkYpW3A+RmEoQzZyYiJUbURGcWU4KDNoJUB0Smc1'@; put 'RiFYeD5dVmMuMj1AUyFnVEZBVHs8NEswXnhrXjFQKjVBIzJlRGE7ZXosNThnODRrd3JRXT1XVW53OnZjXm81aSkqQzhhRXRxP0ZXdkAjPURVP0ZpZE0yaHs3eFJIJTsmbXhaR3Eqe1A/d2xnPERdRGQsMnY4L1piYU8+dVkwMmVRTWh2LkJNTi5CdUhoWWVPZzVZMGExXXRTNVkhSkgpRUN6PnV4'@; put 'QXtrNU8kKUU5MHpKdmJPdTI1IXp2S1ljYnAqKTp+OXEqTCoxUHBCaSFXSyopM3AuSH0vIjQ1KD98T2ZbWlphQE5kbnpjOGtXUjpoMjM/aEwxe1AoVWhNMVdrbnFxVUtvR1c5YkhhJmpEWHZAeXFPcyxidzVENzMlWSJvKlpEKG1oYmgyUmpgKGRucnRNI3hTT25mKzp8NjFQNWR8dXMjLEhRNT4/'@; put 'SCokWltYMzFtYFlhOUg0WytgajpbQ1B7cWtvUTduUmVYaEp9aSY+bnQ9fjRsampYfU12dzl8QE84a2BqL0Q8ZEFkJCwiX2hRalc0dysyeHAsVF9jWSJtTUlqdmkod2dWdysoPEc4cntFUTRAO2VHW0tQVSYjLEdmYllDck1vNEBmTn4mbzJ3LiImLEJeTkFDLGVIWFtjYTtJYX09aXQsOlUyTXk/'@; put 'WXJ5SWRHSTgzMGhfNnNnKnhVcnJORVRbIz1DdGM6RmZYdEt0P2p1bmBJPEZ3RnJaa0ksPlB8UG1TUlZ2UEJKWVVFIy89L25fS1U7WW1BITJoQFlDMDAiTXkvSmxiT2hILjRwTHVtIztbcDl+SldONmExOmY3I3hKNE1SY11dJk9bJTJ2TCx0PX0qUGVZKntTSyhpa1N0e083IXszVHthayYxZDdr'@; put 'VWUvSk1LLHwoVzNUYm0kLltPTkVCYiI0Jm98RSNfTVRsMm1ML0pHJXZSK1A5UU8vUlt0LGouMHtKWmc3PW80OEleQEhTNnMsU3ZjZXZaT0AuSjpeRjV0Tmd4O2R2ZyZJcTBiRisqaCksWl1sMnRbX3V2JHdzRGYwWCM4V09RJD5OaEJJZ2tDeCtJSDZJOUsrQGcjOyFyYUw2JHkyV31RQGRzOEFH'@; put 'Kk1QZyFnIW1UTE41Tl41O09FTlpDMFQsS0NPP0EjWlEmQCE2PWZmVG5ISDMpQHRhcDcmSX5OUFRfZCExTS5vMXVlWVsmRW0kRTdHJS9nKkk0aix7cVQrRFh9L2MmdlV7WSk8bEVYalQ+YEpxKT1fbUN1SElIS2RIZWllejkifT5WWF9qWTtZXmVjQCRJSW49VkBObCNPVzZhX0MmOWJEcExod3ty'@; put 'R2VTNihuMEQyZ1h4dFBuKlBMVCheZEBRIy8pJHVAbV9NMEwxYzlYRixyWmQsMHgjRERCRDoyckYmb3I0Oi9idmJRSHcmcSE/enEmMGI1KFpOPHV0KiMxWGdpfEMpam43eWo/XytrQmgsVyRlRDVsZHA/NUtQLHdgXWlZZG93ekJ0dVtMU3VCeCEhX0siNzdPeXE2fVssRHc9RzlQT1FqTjsrKCk9'@; put 'UGlgKkVtIzNmTWQpKnNjY2RyeSVfdnErI1M2dSlYTnghSSwrcnZuUzY5T0d0M11TeT99cTdQR2IpMmlzY2Z3NFUjclpGLEI4W1kqdGw3ZT1XJHJ7TzJvanZtSyFedy4hM3pYall1Rk4qTjdyeUNbXXJ8NGdWYyFeVUJwVldfPVduVTc9X1RXVkNFbFFwRC5JTGI2VHtMPDg7eCtqU0BRQWdEVGhS'@; put 'eEllZk5sOVpWe0tib3dDbHBiT2FjeCtmNHJ8dmZrOEBASjNnY3s6eXlicFtpWyVbJVtFOjo2bkJJbElmbkpkSFhQYmB3Z0xkVWhEZEpReXk9MzlARzNqQVReTE0/b0IqQkcoOkEkdnYrKT1QQlRPKX17Yk9RL2VmdVpHd1NPeVBpSWdqcH01VS9GciYzaU17QiU4TiF1Vi9+Jjc6dn19b2loZkdT'@; put 'VnhiKl5GRHJaLygkaXcjOUkrRTw9ckdOUyF1dDVYMVN5bHNNMCFHTlNTeXxlMThDIUtXQ1B1UHZ9dj8zJUtedm51SGFJYHd8ZVltcmFzXnpbOndkPHAqWkNzZTNMW15yInRaRS9PVEdqVCg4UUNee3kkTHkuIXU2UUAmQUNiakNWWWFBLEw8cWc1ZXRfdTZQZT4pMilZRmlxfSFGWz52eGlza3Zg'@; put 'QnhwXm1fUy5ycTsiUGJNLyNuKCYqU3c1ZTgkd1A8bn4mRjtpPlssSi9QLC5BZEB+dXA4UVJkTDRXLm0vSltQS0l1VVQqeH5xNTs6RjEuIiYiJkt7UVp1b3N3QX0uUSR9ZnJzPSN8Jn1sbn1Ta2pZQ1c9dFt0U00zPTh4JHNRVEV7bDYoMjVQT1YyY1hOM3guPHk8Om4jYGw1V2oxYlYuejU2W1pF'@; put 'ZDxbKltkY3VjcVg5M1p0aSkoS2tYSWJhWXJWZEgsNWQ/XlFTOXRUUUJQMz1TSDF6TF4yRzpuP3NbcDpwRUppRWZ8cFd5N2g8YypmdG8/YCpkN0pzWiw6b2t7KD8qbjZNSVF4VWFDKC5DUzx3Z05TO0w8ZThJMWxiPTt2a0RoTHxONWltYEpLWkc4U2FkdiJZN1suYFIiV2J+U1B3Kls9KF8yaUk1'@; put 'W2VNc2tUPUZuVnZGUDcmNUd2UkxaTlh+Z1dZfio1ezA5Tyg7cDY8JU1uS3BzVFBIbyU+UVchTC5QIUJCSXV0UEdaXXlJe3IhY0xITmRkQHVbME44WHgiUSNTX0QlQnUlXzBBKmgqaE06MjcsOFA0OF88e3IwfU14fEgrMFNmfFEsS2c/bTg0Xi82U3BEe24zOlloVyNRQjEmWzYkaTYoYGw6MyU+'@; put 'MWpsTTIva0s5eixBQm13KW5tcEk7eSR8dk9SIVkzbnU4Mz1qSCpFa1kyQUZxQCssOW0kXTYjU1E1bWhESFp6MHpzLD5TazR7UTc7Vi57P2tafldFNCZoTD0jJlZRMF55a0k9Jn5sOjJVISY7V11zWT1GPiJKMXA3KSRJbCltOTRPWSp3ZyFDM15bUn5Td2BsPVlFOHJnc3YrdSN6bns/WlJrcUZm'@; put 'JHJnc05oTGBkPUh1a3cocHl6cVM2WCJmeDhmSHtka0hWPEQ2ZzJBKl1fR1JZNzpTRXo9K0FsSU9+cWhNTzgkdUo3ZGV7PEVIKSRSfHIvIjhyLCFIckkpZ1A4Zlg8LHRFXlM2WGp5dFp5WVkjTjM3eUdKe01FWWlHUS9NUzNHd21sKXM4WyxtL1BrWnZ3Onw5UFp0UCZ2UGw8OkhSYisla01GZUMi'@; put 'aS9ATXR5YnMzaU1MKnJ+eU1BSEFCN1soLlB2ZT18e2gxcDJEbUdqP3czdUtjUy9nX3smOmgrPG1gWSIxNUl+Q2FHR1UyWFFdRWZqUitLUjtAIihrQGVGMl5WNSlrPUAxSWlNNndHVHwmNG56eWcvY2tMRXZMPTA0cCtnJUhXRlJ0MztyQGVGKGsuJmpNZDMrIyJ1bVJEL2RFaV5kY3Q2aD5sdHdv'@; put 'UUtYXitXRCZiI1EucnFUMC5UfTVrYHByREVEUEI2fkBrNGo3WWo8eTB1Nk9TbzdsJGZGLCIkSWVha0txOTAjP1lFW2dvKWFYRk5VJXh6PHg5IXh6JixlZn1ufmhYMUw0ITJnd2tje29DV1NCbmM3fmErS257SW9NS3pwPjpoNSlRQHg3NWl7P1t6MVpuKTBpRGxdY2w6Qj1jJndjV2ojU351JVRR'@; put 'Qk9LTjNHcGRFI3E5aXAxRnA0PTMsV1BrbztvazIzelo+ckY0Oy9eSU9tK0c1QklYYiEhaW9FUGRkTDRUYEpbQy88TiojImxdMFE4ekhDSSUhZyhuP284U0ZyLF81SyU+YDhYYVg2ZU86UyQvRnxjT2hOUyx2S1lmPkBRKF1TK3gsO0dTUFlRTkdSUH18ZyZ2MXVHdyI4UDEoOmhROEpyOThZdDk4'@; put 'VV1nKGNua25LOXQpVGhwN3dkYlNBQ3tpL0BqWiZANm8rdVBUQTFaUjcpVEVrTXsiJWM/LGV9VnldZUFfWCkhdT5VKyFBQmpaPSNOM0M9MVtQTWFrJkNUTnkjNUM1bWg9QHU6eD9AIUlkcFBlMS5razQkTTM7aSJTJGxXR2JRaF12WnAqci9lWW1De1BPSzF4fjA9KFVQWHhzbSNPaXxbQSElYzc9'@; put 'bzkkajRzUll0MGZJK3gyUnYxKVBCOkchOHR8LkdOQ3NlTWk6JUlpUFNPQGFGaEVbZW1YYWJ2UjRkTWlhUjExL00iejU4MC94dTJ4RCZwOkgpMURHJT0/PyRlPGwuIyouSXUrdCx6QF5JTnEyUUlgKmw2MmVqI0tTS2IpQ2twUmpadzg/fC8rYTB6TmwyRDA+aE0ucVg/cnZFeU5tOmNBRFh6e3Jk'@; put 'T0NvKzdlXmBlPmA5OSFfaWBtNzY7SV9rd1dqS3t1bWBzRk5URGRIQiV1SWZPSk15RV4lUnc5USpiRT90Y1ZgIyl9SGo3Ojszc15GWmRMelJKTCxybEIjcXw8KTM3b1FgKDd5YDUkQkQpMXF1WXdiNWdWXXg3ZG1xQXIuMk5gQnVHTXR7WEhUNTJxV2h7WWIxc3BvZTRhJTl4fWMmV2h9cUNaTk8o'@; put 'Rm0pVjM+b2BgeGJKQSQkJFFaQk5gM1s9W0hLMihMdHNTQ3tKaERqOmVNbUJ0OkxSUFhibVV9cXd2PGJLTUg3LndDWCNZS3RRIUgwOnlpUlVxVTNmb3d1JThsKjd4I1cjWSNAT0N6PypGM3tOb0crNTkjbj1KfWc9di9kSCs1OV99VDM1eDtpS0NScGBgRXlXdiVbSEtDKWw0Zk1qdE8iJGcsRCx0'@; put 'VXwubylzPG8zOStbJWN4QjhCJmtteWxoSGE9VXcrb35qbmFZQ2x3RlhqW1VMKkBWc2gjYjUscm9lUnVHIltEbE49e0ZJdSRvLFo1OGV6cX5RQ2p3JXdsZ1QlXylOZF9UMDpGWz9XXWN2WiZ4SCRAdnZ2d3UkVWo2d1NCNzluUHkhdGYmdHNqSFs+ckZoXlNsUi5sV11QRzlrY19oVD40THhYMzZL'@; put 'LGkydkRqV0wydSYjQC9pI0AibU55a1FePFlLMU9FXjY5UCssPDg8XjtLN0AlOHxIKEYmI184byxANy4jNkpqWzgkOUpQKkpKOGw4YWBDNy5vSTNtXjRDeGZdZT88L2Z0XlYmNDg3Q3F9VS9PbzJLTThIMiQzKEptUDklM3N6bWA2KGFYK3MyLkVhV2lxNmVZWnxTdk9Sfjt3WzxfZ2tDYz57PVc0'@; put 'TE1QLzc+Yl9EV2A9MDB0eXp+Vn14cE85cSkxcik8NiNvbXptKU5NOE1UTn5FYFBuYmUsXVlzTzc/S1o5V0VFaE05JXRQYU8vRT52I116YHQocCsjX0Y9aHBwR11JQ2RCYm8oJkp7MUBQPD9LclFNfm5iYiFRVVJoLmhuXXN9ZjxOKDRlUjY1W0VdbSpdYGg0aDhpJWVVb28kQiFLYDwlSEtCZGY8'@; put 'KDtyImc+WE5rRCYvPGArKiwkdFhYYWJjWjE2T0JpYFVdJkJ8JTEoYlBje3E0a0w+fHc7WEZtbk0wdTFZQkMqMFApOGlPc2MwW1UkXVFScTZ6MkY9aCllZH5OOVVMPDBEbG1MUnR2O2o+ZGdYJDEqZ3gsY0loQ3tBVDEqTEs8dFh4MStzUnA4bmomaS9OKSp2NjkrVHtgJno5UDt5IlQuWG10bVAr'@; put 'TkBOMDlmX2xdKyh6XTc9YTBTU0kwWjZuW25TKm9RW256YU9JYGExak0lb0AvNyM2bW9iV0U3MmtWSW4sUUI8d0hza107X1lRQnwoTUs6PjwzOE0ofkZDN0hpYXJbdTNSUWw0MHxOcztrdXJNSWpyJEVnY05VNjJJLlU6USlwLl5jRkxwM2M4KDEwIXx1X358VlFNOHVhZVc3QihbSz89Ol95TktC'@; put 'eU0pKyo5bk13WzJpKyEqOW44cypgSG1iZ2VCUVJJYVVCVFZlOEQ+QW1IVytAdUxEPXNXM1Q1bFE4PmkvQ1deQXh7OCNlYDJbeUJJKyE2dFZrKXBVYGFLWGguJGhNJDojJXlAU0Y/fVZ0Z0JSQHJ7S0g0V1JRIUhKWyZUWiUoSSlYMXlDSSshail6cTh8Ym5hWH1QQzdUZTVEcV42IzRWMSVJOSs7'@; put 'LFg6M0pPJlhFKzlucmokRW1eM2h8bzlwRzRoNC5FYWl8YF5+bT4kWWEhcmY2WWYmRipIIUBWeXEkNT15LCg+YzB3SHJHMDsiSzdQbWpuVzd+b3VgeFdiYjd5dmNVIjlpayRWOG1WRzs3WU0lI2A/JTtIPmZ8ZiFnMjYiRyVPNiQ4cWV5QWpfdG1kR2VAc0B2c1VFLD1fN313OChGIywpUjZQblZA'@; put 'akJpPSooekFtZTo8Vz8qTEtMIkRHVkJbTkEjPyw3REpRXVhQcT16N3BveTxwLiZQQiF0amhLOV5tUSh8VStePXsyW3tEcixob19rPUV8Ukl4L2k0OCpLfFFCbippaHgiVGtSfVNHKUhqQltKa0ZeK0suWmVlQVd4XWxzOjJMSUU8ZnVHZHM8Xi5xWihRU0ojWDF6X09gJDZyXixCWyZ5XTVpfTop'@; put 'JEludihhIiVRKVRLSlRuYXAjY2cmTT8wdllPN0RpaWBKM3UpUC9mPUMxWzkvSkNwUHF7Z0JPQjVIZiJTYDAkQlMlfS8uUFgpMHkvRl13cj43eX5we0QjTDZVUHpFKn1WXlhqcTBmJXw7Q0VZLDVaa3YhQChoKFZGKkBAK2FRYWUrQ19RMUlHIXArYjkxKWRjU3oyNDg1ZTFYO3JpM0VGPXh4byxl'@; put 'ZlMlQHw4Rn5efkFON2p+N2BETT4iTGZ9bip1Nkc9YVJ+XXAoZl0wL1NBQmhEb2A4RiYucDZ0aUlJNnV6cGNsLkYociJwfXx8MDlGcEpmVXBQak4vRjdRPWVqQm5CIUd3UEtYJXE6Xissa0ldYTYmOz59b2khRmBzRlcuOHlscztYMncsKD5jLHwiKWxCe15NQG5Qbi5ZVkBVZDsyOl50MjQ1UUg2'@; put 'XlpWNGk0ZjpbfkBiQ0dRUzQzSkQ3T2Y2WEhtKyx8Y3o8KHpQSWU1bUNSZyU6aktxbEQjZnI/VCY5Zk5xX2c6U0lQN21VNDleOl0xQlskIjsmcFtoTE1qLyxlIztWTj11KyVzd3JYdnJPWHB2P28sOUd6JVtvV2dTVl4jZmFLZHoka2JmeT5QL0FNPWEmQ3MhSH1iI0w0ZFIidSRRSlcxSCVnc0p7'@; put 'bltbOSpMYU0sfU1CeUIrVlV7SVpkZ1IvZ3QyK2BIbXVSPiFzUXtSQjJlaH5FPGd3Olo2NzVHeiRbP1IhMDAvI1suMnZwI3RTa1YxQyM3TS5vJnoiWntRMk83QiE/ITMhT2BJez8iMUJyPGtHNmE+RzZsN3MlbDYkaWUvM1MoMzVbQV5pTitMPTNOUn4laE80Ql9WLHlWYixJbk00Qm5jUGxJcFtt'@; put 'YzB0K2ttTUYqanwwO1NjLjNoXjZiX098QUQ+fHhPMVFPRl00OlhRaFVmVksrY2BKckxLMzwsQi48WjpUTipFLk5OdnBodk0qQ2llZk1TMDBgW3BLJjFNZ3hGdmwkMkRqfnZ1ZnBbWHU9RzM6YzFjZVo3dXYhR3F3VUJpY0dYWGV4ZiEpZkszUVlbK2wsYF42SzRyPy92ayM1NXZIYCZPQz1GV1da'@; put 'YnpARGs7VUI8bz5IZHI/XW0mKlduTGdHNzlJSkx9RjNzRmQ0VjxTOyp+el1hSi5tdUFBQFFkRHYoKkI5RitNUGY1LzE1cGIoOFF0Q0E4fVllIWtMYlQwK1glKi5JayJBQUNBQUFBQTFCUzZGU0dzeWxdOD98Lk1lX05rUFQscyFkQkVNbik9YzNtfl92QU5VTCFzJnl6RXJ4JFp5Y2QlfXM4dF1N'@; put 'b0lbOFd0RXwzQ1c+cDt0PTFiKClsIz8vL3ZQQk83KV0+b2tYYTh6aDRSQG5jcXk9PUR9NnYkZ2VjNjc0fU5LRXxnWyxpI3xKP3YsaXpBcypdamxmJS5mOjQ3ODBAaj93SE51YmxsP3dvZihHTVdyLHRZOTU+Ol9EKzgsTX1SIkx1czx6VG9LPy4xWFgpdXFnRkdVY0p+JSt9SWtxQnhXYC4qbygl'@; put 'SHdNTj9HUylSXzJJJCZGZXxqLDQzM0dUV312WVJHKmdzRiFeN3tPYGdeam14UTVZWHI/bHc5MldWN2NAPVhWcjQ1LmdzaT5ubiglOSlBbUhVJTNgIllbKUlFYUNDSz81MXY/U0ReKkEuKmZpeEh0bG8vbnQoWUN9JDRaKDgpbTwxKl01WUwwUGJCV1NmZi9bdyVJXVt6aHNsJEQ+aDFQTGp3OXIy'@; put 'T0k4OElAJCV8Njc/KCxnQlBgfStpM049LiRqZVJSPjh9MFJrJkdWMCoqSElmXlBrdClQXXFxTXJuRiEjenNVcTZSeGUlN14sUVlsRH1eLHJaOTdzTmo6SHFIMlV6MVEmSiJGRzFPK31ReTtTeFBHWnx2VnAlI3pleGcrcWQ6TylUQ15sUERKPEo2Ul5ITStTXXVLPCpRX2sjVzE5Mmh3IyomVTNg'@; put 'VSQ+KlNDXmspO35PL05FdHB5VWBYZW82e204N2wxUnIxTWEpVmNyWlpiRjE+JGlESC9ZQUBYR0VyQUhQYzVuOkxeY1kmYFJvaFFyKz55JmRidSVaI3J9InUlaiZEejZ4IX11eTA5K1Eydj1HVllmQXVxbWxmfCs1N24ubi48SEsvJiJ+TWBMdG4qcFJFbThqPXhsWXQ5UFdCZW8uME0jNUZdcCFQ'@; put 'a0Q3TWk4dFAsRV0oTDU1VzFTP256QFZvO1Q4TSlzOUJxQ2hzQFFpVjVMP1MmPD5XREpxaS4rSzUvWSNQeDBJRXpKN2lSaTN8cVhlP251OWU4YDV+UWJyQz1+MldtYl8uNHV+cjtvPllSLFNqXSxmciRNQyooUDZtMWtEc0xEPmpCWm8qRUs6V3w3dWg0O2JecXZPaUApT0pxW15ZRnhwL2ZKenp+'@; put 'eFYyUTNtQlpHPiV8Uj1ZcTBZaVpPK24oQih0KXsrbX07bC44MmckKi53NVspTiNrRWRGRCQxYEVBZj9PLj5HelsiMT5KLGRaMXQhdFM5LmY4NSxKRXV6L3VUL2AjbFduNEImOCZ3OSoiTiZ+S3FacEwkeDI8bCVLaC9oSiEsMTxFIXtCa3FWdW0pfVg9K1RuYSFkKXxiZSNXRWEpImwhezdZSnol'@; put 'aUl4USFRO2I2dCpaN3pPIyt7ZDhRZ2ZoaVl1PkxgXkVVR0tgdHNVbjBddn5gOlFDUEorLjRkMVt1NUc0dyE3Q0pUNFVbZCFzbS42eGB1M3FlbGI9Kil5cHR9fSNDcFBWIj9zJUcpPzRdUjBdXzohKyJjbD55MStBcl84T1p4OVZ+Y3BxM2VyJDZfVlglZiFdIjw1T2t2UWFaNDZYKyJXdDR3WXMl'@; put 'V1pqNzp1THg6eFgocl11K0UhPXxNUVllKTRTLGdSMlNgK3Z2QnlPJEZ5WFpmOztEZyg1disqa1QhRERDTS9PUHBeRVI4VER0dDAodktSUChOWyxWaytbSVM5ZXQuR2hBb0ZjWU5ULyVSUDw8WyF+T2NgTTYhVj5hK3Y0SUNwIS4ycTMsbiZCO3hBQmY3cGBHZV1tc0tWZGR2UjBwU0tIXnxdYmZp'@; put 'TUchdk03ZTpPVGY4YSt9eWN8a3RNRG8qdzpAa3MyeF5jc2JjLz8iekxvTlg9ZE1gNHZzdXZtLF50UHkxRTFFeV5qcS9aQ1gyW0BmZ0FVTzZIOSREMlVFWWdjfC9nOmB6bCkuYHd2PHBjViFHTnkvTHlZKjhNYGUoVnRfXThPWjNgLlFhIm5Ke0BjdCg3JU5CRXNsTGs7eDNiaioidU45W1ZJODhb'@; put 'W1opVn1UOWJvTjI1OiltLkh3M2pnPUwyYkQ6dFBgKX5iJF07Kik+QTBCbEQhKjd0azI8STJ2fmdjSVVELDBOcmRvYVpEZ1FvPm5Ad0U+e0cxUiRzfVs6RyZ+al9NY3IxdW9tfnojfW5xTCMoIkImaT1qWTU9QG1ddip5VHVFRktsJEQ3UVE0K287Iz9lcGY1c2NnOV5Se2BeZGI5Z0IyMFdgKzFr'@; put 'd2FuJEdQOzdxOVZwOWE/QDdGJiYwazh1TDxFSVcqNVBSOURFLnBTPEt0ST87bSZsQCoyP2lReTl0ci5kJXh5TTkySl8sUF0yT2hBa0ZpeCtjXk99VUh2M25DJHxEOHc9bFh8U29idjZAZ21qSmxpYlU+JmghbGU7M1lgWSk4OzUhaXQ5TjJbfCQ/WjxJLiU8LG5AVCokTFNwYSUrSV1oRX5fRnZ2'@; put 'TzB7T0cqQkI9OkNXI3xGJWozSEI8KiRRQCpSe2Q6Z1s8Ji9YS1B8Mkg4SCUwK3RoZjIsTk5bKSxsMDZPfHk8MlVwV3woR2g7LkdZUl42NFo9PGZjRH51d35DdiYyKENgYkVFJGpLfF1DezV5QyxlVTwuajdKLnVCLjwwanlNNExieCF+XXE1U1RfWkZ2MnAoWVduUWNzcE5CNkt3MmsjZStXdUlx'@; put 'ZVc0Lz1AJWd3b3l3bnVTMG1zOng9by9+WntlTzdPTnJ+aDx0eDAwYGhYaHt9YEdzdiNhUy5rM3NGWSJnciFlMn45NWcubFZ2ZmI4OUBUejdCY0hZRCIoX3tnUkV2amhZRTZhZ3pkbF5NcHlyNUVfYkRgWHIzczZESFA6PWViK0s6V2NGLk9xT0NTVVU/Zl1ZZmVjaGw5Tk46N21+XlZiemdMJT5P'@; put 'MCQ3YlUhUWwoNFM2cEdQI2J4Wmo0LlE5X2M2Ym1CJipmejtvOjhbelQ3cGZkOFdQN2dzNzBQX3k9Nlk8eTl+IUZTXjZsciFOQnZgT2ldWGw6IS95Mm8ocUdLJU1jLGZuRmtbVCw1eFEqcUhidS9lY2trKzxqQXhReUlGentHeHNHeHBwXUFGN0Y8Y2dQWUNxLF87V1g9dmJFRXZ3JmIufjJgSGhO'@; put 'ZkRzVD5lK3RUeCsxelhEbkh8JT5RSU9ycldxYCxYY2pxSDg4OjtCTylgTUd6NlRzcm5xajBvTEt5fTpDemh7Nm92RSNuRkxYPz9kYFpnZl44ZVAse0p8Ri5vSjpgbC8lUH1CZllWcC9AYjx+PEA1KjxvPDt3cG9MeD94WDE2dW04bTdYZzd4TFA5SlJ9QjRSSlBybEJzOWwwdElnaV8jNy5gTFkw'@; put 'enhhNjRjVnxsZTlbRikkSz1EUV58W2VyTn4hX0EwTVA4aHZAOT09QF1NN2Y3ekBKRDk1cmZrWTNEZi9VUnt6YEB4Nj5FR25VVjBiZHddUj5oVFFGI103bU9vdU40Tk1JdllPNkFdRSxdfFVOXSIuUUlpb3M7SXt3aENAY1dPfmVOLytXNjByL1ZEXmFqcyMyeSUqNFR6YTk9fWpudkQpVW4kUylm'@; put 'Ik0hYkwrcG8vMkVOJHFGbSJYUVJwRFJsdl12VkIuQHVNRTRwTzMkdkAmY296PzR+W24iYTAhdjAlLy55QXdqNHhta0RTJFouIklIWV1bZkwqbnRfUkB+K042djZlaj1VaENpeU1gQWQ1WUpWanBoMTZbVG5qMUpNQTglQzZnQm5gaE1XVWtLciZ6SjRHaERibylBLz88V0xgIypvYHZWKzJRYnsr'@; put 'T3lYNm5VdFgjNSRsVWU8Wy9eNURNOkhYKjFAe3N2aUx4KlA/LzF+cyU1eWBTWjxFfn4vXnBtXTg1ZGcpJjU9U1JxKnJTd3VPKkxlU0A4SXBnb0hedzVheXBkWkxuQjJsRjwoZXBUSyNrYGkvJCgiOS44bmxsRXEvMH14JmB4Umw8OCFseDg8Mmg4Q2JLNGkxej0mUWsoZVc7eEp1PXEzN0M8VmZe'@; put 'd2hrSVRCYCxhLih4LEh3flhkRmg8aHl5P24icE44VE5IJVQ6XiNESmgqWFhjRiFmI1I/KmVtXixqS0ZxSzMkJVtNb1lUZkx1QThecylddjkqXmp8WDwlLHlzNzxPaWdpPTxFQmAwZnV4YUB8bVpSNDl+YCtsQF1uXls4SkkpWFUzfW1EWiNXeHhjdWJXcls4RX5AYjJ4K0U5aStJQ2laK0N3SG1W'@; put 'eHdmPV9deUVvYV9XVSIoRzBnQWtLSD5zUXRZfFsiTlB8Tjorbyhkfkx3VGBJUnxVP1Z8WHVMKm4jJDZ7fDtKPyMmc30sL2dYUShdcmBpalRTZihpYD9SKihjaWBIcURzOjlHM1pDJlAzZEZMMltYI2M2MWdzTy5BXyhwa20wOnhNMHxzOVkjPVNCajp3R085c3skQzxsZGVLU3hQVzg5Rm1hSiFh'@; put 'WU9FUD9xPEZDVH1BJEUxcT9lZCNeLEAhRVVxN2IkVEg+JDYrIjspLk9ya3pIQl5dUU1rLCpJN19hJEgsbi5TRVZLXnZ7W0VsMW4kSHBTXzAjQm16UispLlRML0IuazFzY2E2fVYpdVdKNi8rMyhIX3JKZzhJWWwrTSl2ZEFQSlBrXnZ7em19OSVAV3svMzQ8b3U8TWoyVi9rSkp3ezBnMmQpaHUu'@; put 'MVt6VlFAV2Y4YllVeGY+TnA9UTYjPSZzVCUrcSNlNHZ7KHVfTTpeLzkoRk9ERzRpcjtye2o5cnB4dSFWbURddnRgbUhpUyQxKl5hZSozQjV1TFt6WHtUblEkWS8wVTpZIXZEXntoYT4hckJeRDVKLHpHaUxZMWNJMktPRl4mTTBzPEIoZkxKJSguTzFrSz43QzAxUCkqJWxbO31qaTpJbTZlNVdu'@; put 'OEc/VEhQI10oI34vL3JEdEIob3xqNDVfaitTblpXVXZ4fUtSS2FKOXlGWFI7OUlvaSsiKlRgYGckI0pYeGp+K2tTODd7e1JZM1cwU3UhUktkJlQwNHc3ajtIMFl9aF4iQW1ITFNsNXkjIyMlaFRgWl57ZE5LO1VvbDl+TVttTCxYLEdnVjFmSnJJNm88OVhpJCpjaHJuIm9OM2xOXUleTz50R0JU'@; put 'bSQ0TEpFaUN3ZHBiQzEjbWovYE90YiR7aUlxJTpBMUUoRDVUdjFQWlspaENoLjQqTzQ2K3QrY2NtfW1AS1RPaUsheXpEfk01b086YiRRV0ZJSVdQRjJTTDxucncoTEI4ZWpLUzdZZXtual5qXTtZeyZacDc6dHV4L05PUV5uNyZYL0Flci9gODhjRVVqZFVbY35AUjAlY3ZxaTI0a0pZQkEoTX1G'@; put 'PkNfTml4S3JUUC4oanJaSVBnfUY7Xi5PRGszJS5kKVojU2xmfW8xd3wrSllNYVdEUlBNU2ZffmQiTDk3bE0oMj85L258REYyYDVRailSYDcuPVcqcF1kMDt0c2FfSnMzdntsXVddKndUUlhHelhwbFNJKHpSNiFZU1JzQlloI00+RCNTYlIsbzI1Mk1YQFVJOEY0KCtiNWU8cmhra3RsSSZZXXgv'@; put 'ZVJpKTZtZzpGLyMwfCwoOSRqYVZbVkhubUxVckZANyMvJmlSa2hFTGBlWCE1JHBaUVo7TGh3KFF1W1o6R3tqKFlxRUg1PT4sVT1IOEkhaUBQTVdmLFBJbUYoUj0xKVh4cGJmWVBjOEsleTpAImJ5T0NMVWhtImtdVCF1R1J0fDJpaSNbUD1WOFZYWz1HXXUqTDd+Pyt1dDNmOjM3OThLWXY6bEw6'@; put 'QyxUVUY0XndgdSpZQXp6ajI1PCglKm5lKylKWWR0XUR3WntQOCxNT1AoKER3e3tHRWBLaVdWdlg2a29ufDtWJGx0MWlEXyMuIVtYcHNxVXBsMWsocj09U3k3RGpPQWlSe1RIMFk2R2xLOTQqK0shPWhUN3IxYVlaWElzS09bZW1QJD9XSVRmb1lnXjh8YHArYzg2cjt5RF1aIXo/SF4ucHU1PS5L'@; put 'YjImUnE8W2pGNEsueVVFZSFxTmJDK2xQbjBqfVhPNWRiP2ZLbF8wYXBjbEVAenlFaW5QUk9Fe25RK29pYXNuRjpqRTY7TFciVTtKIS84LiVJdGVdZX0hJWs3aDhWVmpwLjdeP2duZzFXejdBLlV6fTlFVXB8aj8/dV1CYkhUT2FhbkVbNE06c29eRFVINWd1V2JlLFFEW2F3OmtUM3orIVUhNXRa'@; put 'Rmk/OlFUOCowSV5PKFNDfG0pXWo+Xm09ZE5XPE8yK1lFR0pWIW93YkZVT2c2Uz96RHl8dmVPXXA0NlhHZm55Qn57QnZwVmdocEE+fW5+QFIlJGNoa1khPUAzIW85cShGWXRKODU9OyhyUiRJTUoha1hEYk5sd2A+azBiIXBtKkZgfClOTDN2TF5lNEA7OVNsfk0zZk9NZUJ0MFp1SGlVZHgrYVpI'@; put 'ZkxsK0giXnpEbGtyIyUlbm0vPHFvT2coJjtZLD07YjEqI2wuRUcoIno7Lks2LFBnbjkxI34lcUlDYEEzQ0lFNyR4SmJ4PEFCel4yRGY4RCR7Qk9aem1zUmd5R21QdFc8WC49KVdYWzJ2MTRUTzwuPX5FUzdQe3wuZ0tKPSs/ZjZnfXxrR00kKkFQZmFBOj9HdG5IbldCZmZxU2lzdm1zZU5yYDNC'@; put 'QHtdMTpYYClFIWs2dU1nIypWMW1CR3VpKCt2PmM2bDolN0ErJXJVKmVsTFVEdkJUblRGYUN+R3JaUTZhVXRYMGlpVEQiaXgpTElPNjZ4NGluOCVMb1I/bTcydDYmfUZFbzhlSkpHbW5UJDFNP3FLL2xmPXFwTjJsPWVUKUpDMDtLJWhiZixCKSEzLmEjN0Q5Y34pXnQ8L0g8dEM+c0hnUDA3MVsi'@; put 'YSMrOTklfkZHN24mbmVWfV02MGZ5bHRZYyhPdExnIWtgfltiaW9XaD9PSU1kbHd6OX5nVi9Gdz0lcF5zP31ETGFsQ19gJUBgXkUrYDU7VTR7K1IzZV5eR0x8Sj5faVVsRiw4WGZQSn0xNk15cCVKODEmOX1DVDhBUE0/PVtSV2tId2gjeyhsWW0oVz5kPmwzWlQmZEM7UFJwcUJsfSwjZTludGlV'@; put 'cFZ+V3l1Jl0zcCJkIk88QjlTZW8xOFpdeHc/MSZiYVVuSSkyNiMrZVlaSXFBeD1UeUcofUhJdjA+Ulo9d1RAOlczOSY4K1dCMDwmOFVyJChuRj9Idz4/O3s+dzFQMzdxNF96NDk4S3c8M042UWhOKFlhbXdjO0JsO3NqWSZbXmR1b259R1Mub1B9XToifF9iWHouXS4vNml0PHJtV1B8NSpEO1lm'@; put 'JV1Dc3tJcVYjKnl5NCssSEtWU3Z5IXZoP31OQXZbZHJbKHI1XnF3aT5NZEgjQG9LVm1aZTMlM2NTT0NASkF+TjJtaipQU1khQy5xfm5hOCgkPCV4bG1uWCsidXN5Jj1SNzxzZVRtZD05KWhdOWRmeXJrUkBhZGdvNSVwSklSc2Y4LyxJJTRbWShkP3BASWFRKWRMTWU0RS4yMDQ2OHQmS0lfWkhE'@; put 'KFNWeUNqJkhAaCNlO2U0NyN3Mmo7YitVY0t7V2JoPk8sSlR8S0VqTDhYRC5RTG07Ln5DdltoI3c6bnR6emNxbiR9ITd+OmpjTHl7Q3EvT0paJnB6NWguUGp7QlJjd3BXSVUjQlEuQGQlU0NaPGk4ZlVRZ2dKVlNaW2RyVGh8bzRdJSxHYk87R2pEZHprZHovQENmZ3h6UnNNSVkvLnJaS0AsQ1No'@; put 'fHxqUmNTamI3PnY5QE9JW2E7ZTRVNmxFaHFIYHtGVyIxX09vM3EhbF98flAoXSFMeWRMTFNXeTdFfiNFMjIldVcyU0dyQWphW35pI24vdCokSFU8TW45K3xdMk1ULnovPD55NDtgZCk0bHI4PlAiVVdIVGkydCQ9Q2p0MSJkUTZ9RWtpYU0oaWEzXXQyXXJYZz0kUiM1PyJFUTQiTGFkMElNOmx9'@; put 'RCZFYWxqZWJ7KEViWSpneX4wQCY/YV5yPGRFJk1aYGIyXWIjeUNSNTh6Y0UiQUQjUXdSM0M6ZiVzWXl4Q043Myx0XklgdFtMISJkMU82Pis0dj5CcHs4ODx8ZjcwV1NUensqNiF+eFM1LjZFRWliPyVhfGkkQFY6Z05Xc3x9KGx2Qls8TW0zKWMxcyVKL1ZvejMzaW9HbEssTloiaj4oOEE8V1hP'@; put 'V2BKU0JkMndUWyQ0XlhQRVlkMElVRlU1Rj5UNUloVFJpSjEuWEg0fSx3RFc+TCk1PTooOVtHL00pZWg4c2F4Jl94LDFHM2lmYVYkWENBYmYyLDNlMnt0R0AuRih0QDpCL3Z9M1gvPD1UXlRxdXNYI05QcSNOKXthWD9LIURpbUM4SyMhWiJjS0I0Zy9KQDJpWW13bzgwW3ozSFZRcUJDZE5QP1Fw'@; put 'IXAkVER3e2E1XThCcDRnR1I1PG1rPGVQQCQsXVNGNiUoKzAoS0poJitGcENFaFg5Wi9dKSlEbV8jVU1MOmVuOlpnQVEvUnFLWiwuUS8jQHA5WEF9ZWxXSEd0cVZhWXhEV1ssY3k5fGBKdGlNcyxAMTVKR1JmS1o6VTptQCp1UThRJj49XmNOL2Qid0Z6cEBzejR7Rj12Q1k8Xmc1Z01xPXFbVTtC'@; put 'dClJWiQoMjZNNXkoI15SUElYcj0xRHVDSUc6VWc/dzBGU1lmSztzUTpoR29AJVNlLEtVQ1F1ZkJEI1ZsPC4+MyxKRDNUR2NpeXpjfVFOXzNHKVBEJDAxVExQdHl+KHZxSz1gOUQ7SWFgeU1lNEZZe3NFfVk9a1UpYUd0Q35QN2c1e31qREhZbElQYGVvMGQ9ZT5pJCEvJGIrM0AqMStNRWVod3V8'@; put 'LFtCZS55S3hUQlNRMUU5Z0FlfFRlV3k7Tj1dfi5nTX07eHIjfUpwUDtHWU9nJGZPanRiPDgoT1U1X0hTUjU/VEFKS0QvVGkmRW1JWUQpcjdlTkEiLkx2blp1KiFHKHgyPXxDQmp0cEBMY3xEPVhJPEdlN1VYfDl+STh2SGwmeHQrfUFXJjl+KUZudlcvZChydFBFfXU6OkddWTs1MG9FVEhfSHtv'@; put 'dypYRShWezozbmAidDFYKTAyZndmfjFaeGA7bWNfb0QoVyI6KkJWNHUzXU5LLGdsKCQ+V2gycnFHUkpzXnVIMyk1LG0qVipqUGxGRW0zRC9hQiFAUF9RckMmISZAYXtqUEtpZ1F9IkM4Rj1vMnAxUWkxYG0rZyZSR2w0Sl41O3IuMFFpdXdZQn5JL09XZm5ORkdGQHBpIXlDPkt+eDMpfD9lPzxu'@; put 'UCRVNGZPfUk1TjV8VDoxd3xtbz5RQGI1JGFVdzI9ZGx2dDcobkwiUz0oOT8uK0JrKWdBcCI2NGhaMlM+OUJIJTRsMHZGU1RXeG1dSyg7QXBvR3F6Rmc2UzAyVkRKYGt1MjE0ZzkoTCl0TGRRL1hjMCwkXWJhfU1fYChge1glN301fjgjMk9uN2BNclY1Zj0qUUUmcFsmb01hTkNCKzkuKVl6NixP'@; put 'eSVEXWt8L2ExQnA/JWZwaXljYjxVJXtgaTZuV0hjL041JVMvOVJpJTNeXSRlUyojNXlDV1IkR21dNS59dmpjPWlhbmUieyZuYl5aO1pLR1FSYnRmNWdPImxUIlFUIVNKeDE3JChfdVNYfGk3MEhCM0JhOUJ8c3B2T2JPdk9yd2ZMPS9qOmdeKytZI2Y8YVgwZGR4YCpVQzFvVG45VmhPJmZufUto'@; put 'JH18OXV1YltgWHB5MVpGQFk7Xk5lUn46NSlKX3BEL1owZS43KDRuVnkiXil9SXZCTUw1U2RIN2J9JFV8YDRHRz1AUlU/U1RCfmwjZkJrJmxKQElEaT55fTQyLnRqcTksRF5QWDtiJXBMZFc/byRJa0lUVENtNkl2YjRLKHJTVG5+NUhiTFkxfGJGZntuK2w9QUcqTFpPZChqUTBJTTt9MiMhQjo0'@; put 'QTxPV3FzcjJKJS96MnFVdHx8QUlsOmhCTVNReF9eJH5VVn5UaiZGU3tCcVpjKEFKP0o5d0AxSXBvXWZnfTcmSDNrdERSSFlpJmJKRXhHWVYxYlJyImZUdCt7V0FWfn5jLls7UiNUbClZfXspZnJscmZIeVI9ZzEwT20wV1t5SmQ7eFkpV35ucTA/WlJ8QCklTFRxfVQ0WTNsN3NuIU4rPmRRVVIv'@; put 'YjxwNit6N2AuaF9VYmM1MHBsd3pRTGNpP1UqYVUkWiprYWEpaFlZdT4yRyReKHBLfX5ITCRiSjRVcSJlTFVNMVFWN1ZjIVlqVn12V3RAVHwofjhuVHo2QlV2dDldUW8yPHc3JlRCLFFrKDVLd2w9ZSlsaTZTPytNezxmP2I0UVdfeGJ7b1Q7WV1ZOj03czxefkNzS1BhcVNJX1krL21KVDRFUiln'@; put 'aXMjLzlvMzJaPCN0cnVMTWZ1RUlxP0RLbTV4dlNBO2ozQyQ9cmlyJTQrUFVlXURnR1k1Ojx5YUsrWVZCMGQyQ3Mxe1lJeWNNJCxqPWZrLGR4Ojt8eWtmaiQuQyRnND9uI2oySFlPMCx+Nno5ZWNmdnpIfXI4TndNSGJuZFVKMmZTIS5aVSRgZ1EjY189Q29GNllJS1lGZmlob25Ofl1SUHlKJV41'@; put 'cEFNdWc3Tn5BXmtjYXl4MXIhQmg4L21XXXxsKG85Zk9AWCNiUWpaWXgwcy93dzQqZ1dnLlQpdC8seXZINyVATy9OQmNdMDAqOVk9KF5CS3dePyE3PHBedComSUIuWXRnRHV7Lkc+LGZkI19hRF0vMnVUX1p6WDJEQENaYUNDXzMxVz1+KH02fHc/Wko2bCNjWSZtRllqYkpGTE09blVJY1BFZXg8'@; put 'bDMwNDRRbz5DTDNPNVAkLlM1IiFbTUd4TDRAaUUrYXlaZS5oeDh0YGZqNll8cWtHL1ZpPGBiKHMxN04+dmRFL3MlSHFdVF8zfnRKb2h2dnJpWDBvY1lvUn5+YCs4cmh0e3NDQXQ0PzAkV1p3KG5JQTBqIVRNfTA6WT99clYudDo2SVdBVTFJTXxgZVpfIWMkRks6Qy9CR2FDQ00ieUZ6TXAhJVNW'@; put 'R1dxNyxAUmdiZ2csJjo5JGcmOm9xbE9TTztEKjJqUFh6JkxbTXIwJUxMQnttdWZmeSl1WFpyYDkiWz4yPk9VU3JjIztzT1E6fiYoc3Q/Lj0veV5pWnJLflc5RyU5JEMxNCpJflJTb1Z5Q2t8WC85QHVqcmdUO1VhSSkpVEVqNi5TND9edjVndDtHbiZUIWh3QVModylJWT4mSmZjVjEsLjB5M31k'@; put 'OWYzLzYmW0BeOC49Z1o8LHx+aUhuRWs6e1VENmBvcDoxcHR8K19fV157OXIzVC9TKjNHZjp+ayxXOiR2XmNEWDs/RCw9Rn1sIXNseShYczNGI2FEJHtxSWVhVVchVlI0NmlBJjgkM0JJKF9eflczd2hPdEp+bCgpZzRzJXN4WHFPRm8oSENsYmNCVkRdVEoqLj9XMjMlYSx8QldaI0g0SzFEaHwv'@; put 'Zk53PjN4bCE+YkNQVTtnOk9leWthPiFoaVF5QGdOaVtBRnpHQFJzdyV7UH55LzhgT15LUjFlPVhodnAxXmApRGBrIjBCI1ZYSmBhPTxwPEkwQ0teaWUvM2laXm1id0tjR2AuQGAsZVovfVRoZ0VZQXVnNj46RD97MCwiSD5sK10pUTtuN1tOOiN4TmVhXlJJKV4oIVZocThBMXNfUHtCbWQsYzh+'@; put 'PmNXNWswRldeRko4cStpdGQ2UnAjTFtlNShtPDRaQlpHeTIzIVQwPkM4RGxCVUlaQ284TnV7UjEjb2pEOX5rKW1hNV9mI1EsM2IpP215dHtKXnYsNWgvfDR7e3N2UEpBfXd8VWJXdDdDVFQxa3R8IkByPTNoQ210JloldmgxR24iU3g0cXcjI3VNKXs/RXgwdksvQnBvXWxneUc0UjBiOFFmKFdY'@; put 'T0F8SVBqNWRhUWsvbWl+NSYuIm9TTUM2ZFpsRnE9fXk7OSRtJHo3RyJMa0xFTTpaJnt3M1FhSSV8UzM3K2NuK0leUTVnXishUztiOXgkfD5FPUVVdj1UVC8laDo2UDlCXjtSMENddFgmL3FlXXhvTWg3WkRzYkIzOF52Yl1nOkkkcn5CJnRJc2l5XmwzT09kX2pwSU85KnhCdVV4SzV2bWdZQCo7'@; put 'S3psKG0/Nm19XyFxcT5jNFtuP2pUXXVUPFhpLiw0RG1zRDxYTXlPcl5XJSk0fkFlYXhea3BWRUpTOGRUdWBdb3g2MWwkJnVyZUZAYlhvdzc6aCkkOkIramhjcil4fUxDSS81djBUfmFWSlpUa3h+KFEzckNsKHRLKSRCVDkvNSJfYlUlTSVofWYifCJTY15PJCQoKjx5KH5hQ30sL0t5fTVab1I+'@; put 'YlhBY2F4Y1kpLHsyUzp8JUc4QXYkTiZZbiEzcik+OlJZP0ViWmpKNGZrZE1rQ1o/SmJqM1I0Xj5Vdi5ePm8wRHQhOCo5YmtwaFZwJm14M35rbVVMWWpJL0pfTjIxVylec3E2NGpZQ0gySkpYM2xpJlVuSWZtKVVtdjduKCNEdCUzUkteajg9aTlnSndXJHVtSzJ1SmAoYXFnSVF0NkZNeSNacFY6'@; put 'aFkscUZvR2BFQTszdlJeQzBFRXRDQ21lJkp7QXN4WCVDO3JLUTciZTFgbm0vU0pibUt2NkpRdSZGJlEvRFIyODc4aU44YCNiZFZTaFRwUkFVdStVSSpvdyYxQERoeT4uKHRmVVpvfDxVeGEwJWVPUmVCUXI3UlVQKURRQnp5Mk5uZHMhcU0xfXtHc2VHUXpfcSxBSyxbTSg8cTlDZ0V2UnRLIjhn'@; put 'L31PR2A5VWNBNiRnR31fPHc3dEhvYiUxMU1Oe0AvbHJOPDJDIyVzZy9QeEJgOXBkIU04UUBreH0vcXN6YDJ+RTlfaTI5fS9bTFJva2gvIz16UkBtX3dGUl0rQGZDcX50LkR4PV5ILCVbbEVDWWBwdi4+OXQ1PDZaXyNbR2V1KD11OTYxYDZmWmpXMT5rR0E4MU1Qcy9SW1VbSTVwS21nbCxwXlB7'@; put 'XiIheWBzVjVFe1FBTHx8ckM1PGI/SFdQbDJnK3tfZmR+M1p1PTdVZjpfP2ZmLFBbSSwheCJPaCpqNzxqV0xubFN7Y2hKRFtmIzhzSzxzSSx7SCMibT9SIVUiLz0iazU6ZDxONTZ9Vko7Q0VzYWxZJDBBd2FFJjc+Y1plNExGc1lAL0I4VFV0QGg+UyJjQ3F6M0F2S00uYUBuZjRFXkJfSnA7U3Zv'@; put 'ITVzfE9YTU58YXpXTGI1TzRISlFRe3UhSDpGK1YjKUduJCpVL2FuJCRGcyVtUmdFSVQ9NXI2dHQ8PFJLR1FqQFRRfSNNdTV8Z3dwJVZbUXQ7RkNOeTt+VW83IldmYSxFOj1SRnd5ZEcqLDJEekNPbmB6RT1CKCQ0cTtvL3hsR1dBQn5Zd0NEXjd2QWpWbzVUL1tmWlM2Q2YsRD98KVcrRD84LGMp'@; put 'R3VNfEtlT3krUUtqKnJVbWhMPFlMUXg8MiRrXSNOeTllPFtIQi8hYlVPLH1JbmZLOEMsRHUzVmJ6QVhQOkh2TEd6VnZObDR5Q1tUIX1YcC5yemNbfkZhWjJjTHpwc3ZhUCF+YG1APHxMUVQvbngxU3skelFAKiliWl1wcEBqeDRtYSNRJGhmUSZlNWVPUTRMRC5Nckx9X0NTPjtrKiN1LjRSQS90'@; put 'ZFpSP2tQVn5NZEZxZSwmOXJvaHwrIis0VD9AfHJXRV59QEMlc0UmdykyUS9xOXomMjQhZiZkNChwQyZSKWR3USFzUmVmNTtxSlBPPC9XUipVcXtnZTk9O1A8cDYhUUkod1BZaXc7OT0vYD4pUVdlMF1bL0dJTylWMkI5aF01WGZCe3BWYSlCZTtNWiZwLlBWUEdnTzhgbUsheHB+Z3I1IU0qOmY2'@; put 'ITVFQWlvUWxMTmhXXV5rMUYiRC86bFM5ISR3PmlsQltXZUpiMCErOU1efElpTSUpbGtJNyVTQlpjNGRsRE4zbktXeF1XNl1LUDxvMjxWQmE+PSVPfVhrbWFtIW9BaVNofX40Ll57QkM0SzVFY25RIj5zb0RIQUtaRWlNPDtmXyNtOTQ7TltEJilfKCRTbGRlZGB3UEsqTDohc0ReTSF1MFI9Lmkl'@; put 'dSlqLHoxQU9pemdxKSopU2AzV1JIVUtzMSJnOEBFTW92PENGdUwkYT1DKkxLMVNRSTF8I31ub2xDVH4icSRae3RbMSFrb3ZUVVM5b0syPS9vT2FUKThKZ3wxfXNxKl0+LkRJWj55KXtna0BYd1k9YGspTlBwUCFOZ0VsOHZ0Q3dtRzpwIzVxIUdteDt+VipfcX16VkVAMyUjaitudStCU2EmYVI4'@; put 'MUgsVEhYLmJSV0k1LzgwQCRRM09kUFdfbUMzfk1Ye0NMNSIiQy5WTHw1Nk1xU01Jc1I8YEY7XX0iU31NTG9CTnchSkBpOEF2Wjs1WyhxU2VfeCJPKjhVUTFCWXttIz1DX1F6QzBEZUJgb1dmLzN+c2FuKzA+SigrK0tdNi8xZmtoL3BZR0tbdV83UG89aCNhQy9TUl9WTXkwIUlWcGw1cG5lUU8o'@; put 'cm0lWkguKkhuMUY8OChiX3I4dz9bVjFHQFtNeHk9bkx4IXBvNX1LUVg6QH1KaHRmdX1pTTtVVUJhVypMMmZKXiwoPUEiWCpDXV8rd2pUM1Z1YSs8Q3pLTUspNkBLRVh6YHkibnpjeiR1cXhaMW14S2YscEA0fGphLmhQfmxQNlY0RUE2aTx5LEJTPWFgU1l7Zy9yS1czbTJzI0FAaEJLN21AXlc8'@; put 'UVJHXXR2a2puO213Im0mT3ppcDt8Rmx5TXZxTk0xaG1jNEAyLn0zMmZAcGU1KkFSTnZzaT9lQDtlSXBDN2FnM2ZoWjs8WmkiPzs2L3lqXX49Q2tTWUYqRGdiMVdTazp+e010QkIsb0I+QFNmNnssPzxLcyYjaUpHbDtVZFJvazZidjdIV3ZJQ1hQbGl2cjZxZXtEQXJAQFd7PXQsKjErTURYc01H'@; put 'VlosbFNPInFadCpsQV5jdnsuYSU8WWImZUVdO2EySiN7ak9uZ0Q/QzdLTlRUZmhvMWc+QDI/NTYlO20qSWk0P3JHVTlLdys+YEU9fUsyOHsoMDJdNzZ6VCNSPiRBLnh0OSh1Im91aFFtdGArdkk8e3I5bHZYNyldUjRybFJRNy9qPlVJR3c0Sj1OLyovLykoQ2wvKmg0LmteMGdhIW02KnIxdmJm'@; put 'W1Qyd3NbOEU0X3AmMUkjVnhjZ2ZUbW8odEs/KD1pRmAkWEouJjEuQlBBXlVjQjcsfC5KVWYkOFI6NGFmdyEieC57UipfIyNGKF9DLGBuZD1ybFRCYTF6QS90MVZqYXZMZW8hYFl5O3ZjQGlDaXtjbU07YlkrS0g/cnA9VmFRWlBfSC4hRUQ5dCp0PDVqJnxXTT05dngsTFskM0VLNiExNT9efFoo'@; put 'WkxRd1RLVkpZaDkvcDg6OXUufWBab31vemF+NHVyQHhXI0U/NGpCOF1vTWJLXmc7MlZoaVJDQy59SWRfSjwjJWBnKGtmcEcmVzJ5amc7azxCR0BENGRvMUQ4RCk0XS5NJThdN3pdVU9IVU1MayhsUFV9SjZzKCFMV3w/aj1WRHIkfWloOGpYRE1ENjFoUSQ+bF9tZl1FQX5gTGN8VkAzMzhHIkFZ'@; put 'aE1fbl5fKjZYVC8+QkAubWE3IyZWVS96ZjxgUXlJUXtpa0BqOURWRSNGfnQvSnFgZSZQQTNqQDYjW2ZffVVpMUZWbE4vQGIqQmU+b19LPzNDRktxRTpKWmF+WHQzYmJUInZYdyg9ZSE7WWoyUj8mVnZnTzc6LFJ5QkJYSClKJSFpa0NZbUo7MnAxazVqXkhUZ0N5e1Z6TDRlRUtVbm1IJEg5c3BR'@; put 'SV0iUEdGSmohJCgvZ2VnPDNydH07RTAjRWBtQ2BORjN7ZnZESF04KlJZRmE7OWpOblNiQGpvQG5ebDpGMTlHMEZ9PjJGWytUZ2RRWHFdR1VPJnk0W1d5fH5zIXpRejc2QTkrcHxkVU92VUxJZHZAc0JBe0pfQDs7L2l+I3VtOTwiZXxCWVRFcV4oQ3hTajBtdUVoOllTdyY/KWBvSHU8ZCVxaHd0'@; put 'Om0jKUpPPnguVEp+XSVEOHwkaVM8XnpbcVI8bHNKI25+aHxxel9kK3g3TSloKz1sS2RoNFZAfmliVnBfV2dzNEAjYnhAL2N3KD5hMGo9cEE2PlspZkh6anI2Rn1VSSxiVGNfI3g0ZjsqOWNDSih2d2JpYHJlaixBe1BTej1CNSpYdTUvamlaL1IzWVE1XUwoe2lgV0FuaTIqSndkbyMqKCJbLCwr'@; put 'VXViUj15dDl1MFduaX5gPlVGdWN3K04oWVJ3Z1hDM2UldFV8QiR0Xk0vV25HcyZ8XSZkSHQ9WHo5R1p5Znl9RTJZMCxNeT8vZn1IViRVVXE0XS9WUUsyQkEmV3V4SS5rbUUwZXg5N2xJdERNeVFmLzF8Lih+PU1gYz9Rd1MzIS50K1s7WUo4KzhpPDwhN3s4M1svdzZzJXtSQmJWZV1dOGEpdU40'@; put 'Xnk+OEJSeyZQZWQiXXEwdSEyKnF2cVNAfSlRS0plJUYpRSppYEA0SyZJNXU8fXZSQmRWbSlOVUV8YWxycU1BYT5ySS9DfCojPEN3bzM4P0RaPGhKXT46a2hFR0R3K1s0aD12X1NvYlNpdyN0PERYJjd1JGE0IThMcV9jYFgyIWg3N0I7WCNgOEY5eGM9RVk8MD5AM3pAakwjL0Zvak0jZFJ4QDtl'@; put 'UnFDYmBZJS98YiYwQ2pzY3ZvPm51WW1JSz1GUVZzcjouZTUxQiw8XVhIaWF+JSJBfTx8NVZ5LlMlWX5eMigqQyl0LkA8LE81SmVnZ1ReSD5Qbz4lM2BwVFFFMCR+eWM1fkF0cWJpZmp2bmtKJiVjOU8qdTRwOEMsQ1FsQVQ9eiUmJTpebjpJVWBddTZLRU4oe2NXaWZaYiRrM19ZX044Z3xSaC4l'@; put 'e3trdnYlNEp4ND07JnhLPUdDZyhEKFY1SDt6dCtOPnNDal8qP3k3Q2VaR25+RnUwVmIuWVdFcU4hI0p2OTBHcG8yalcxOzpnRTY7ZEZbdGkwT2pFQEA5YT44P2tiPVZJUnBHOVpUYFBlOj1scn1bTTgzUWAzfClpMVgmcDdfUTk4XSVuUjtvOTY/bVF8Y2JFJEBdVU4vLjIjdVhBZlFgXkNUK2d4'@; put 'I2JbY2dVKzxuLDcyOUJJMG5tcDhRTzdILygzaEFRdHUmL19BaUtbaGRGXlBdXiE9QSpNN1s9cyJjL2U9PXxMVU5SVHx+KnsuIV9GSlBENSM5NGgqe1N6dVtvKDJtZEdIfnImdUxKMkFeIXMxSzNuVHRfQmFTUXw1N2gkYDUrQG84eDwhMSJEN1BCM2teIWwjWVkycC5uOiE+b2xHdHB5O0x3JVha'@; put 'UzdaUkVuQz9AMih9T35nTSlzJG8/bTdgcEg5VkhTI1BYdGpDdXY6fGQqRVlCdmNDdCpOZDRdYUZiMlR4ISNwOmI5fjlgSTkrcWxSW149fExkPDMqVyNmX2B6cytmTFFPbzA1NCYiQTxHdihnOnIsbGtIdFRbK0RfMipfQWxrPHAja0hRU1I3TFdNJi8+S1tKdSRCVzdlMy5zYU9KOk5NMUcudTor'@; put 'IkMpYGY7JF5AYFdwPHFkI0ZUZixpIyxody9wZnFUXT9RP2N7flZYTGhQLF1lTV13ZmJkPigjT0lfYHk9NTNMYHd8JnNAaTs4dSlgVzglK3BDWVNRcEImKSpobzRUWy9gPSg7W3soNm5QPjskaj5KLilCVnd9Pz5OJFpJOVFNMVVMa11PNEomUD0oZUxXLHB+Q3JkZ0ojUjhdXllEJmlMTTp9akkp'@; put 'fSNxUE1MLno1Z2g2ZyFuRF4/KldiMmUyXkd6ODJgeTpSejk2NUY+U2NOY0o3a2tgamZ4UmYqVnBabmNPN1piSC5sbHwqdFluKV1oPDp5dCQpeVM4UTssRypRL19LbE9QSFM+TUVDQCE5YiJZLDltKHdeKDllMmQlfCFJPSM9aE0/VmkycjF9QHAkZnZ8IkZsPVR3aDowKShgKGltdnQvSWNRSWNU'@; put 'PS5+c3U0JCxbdj95RUE+UUJqKjVoXV1CZ0hjVkRPRUBBZ3k+MHJ1OT0mVSFARCZYbiNiTUg9eW13MCgqMUdQclRuSktWKSJpIi80clFJTktqcWBtbCZ6V3ghKCtRUDtlckkrSzZOSVhFRClwLl4qeWldaXg9IWhxLkYmK0RWWkMpZVR7YHlpSTBXMzVtQ0JtLkxaRyJDW0xrXSgoeSt+UXZxUGVU'@; put 'fHFEZDxRMjIxVWlaQ2ZCRSwqbkxOJVVbLmlCWCk/V3MuXmdOaVteTXJwcnZAW29tVlJ+O0g4Ol0meXpeMitSO18/Mk51QzNjSXxNRG5rLCpYOkl8T00vb0BwTk1XJTZ8VGMoTDd7eVdhXWtFej07O0gwbykwK20iSF5iQntdNjghYkR2QylzKk06c2xCJGEjUHdHTipYaGQxLi4rdShxTUhQfTk0'@; put 'MUFrNm5vdzZHYXooWEg+RmBORk5+KS5PT3kwcjVPKU8lZGtiYWEuMmxHRlEiSG0ia0w+RW9RNVdZK3g9X0xidE1Yd1BgcVU0eV9fXTxPcEo4MzNHVntbS25pZTxSfHlgRXpJZ2l6V2M6T2UhMjEsOTlib3VTPUB0OSY4ayRwTTRALktoeC91UyhuIktTI3I/JkhnKmBCVkBJYnNzZ0ZgKFJWKjt4'@; put 'ZX4zM0dxMzVHSFZidGpFKmxLWDNiUVlsZlNlUHdIMkFMJVEhZk5bMkg+W194JEExZCJscEQhWXtEITBNO2BMKztEM3ZXNjAkUHhsX28sPkYkfmR5cTpIdUxONTRfdGEkbFQ9cWNSMjdDdWdjOUNpfFB4NXhlN0ZUNkpBMll2O3xdTnNsd0ElIW1yVHYhSUVXWzVBMUQ+WmpzSGRmWVNYTHhWSSlZ'@; put 'JFleNTR6I2U5dzZlWXUrKDx4KmRvfH1VWVtKUiFyIVBjI31sLjxBW2c0R01MaGVKNDlFajlRQFFnQVtaZClNUjAqOVZuZmZLPjRXYlpYdSQ9Vzw/TEs2V0JCMjBYPzJfMHpuNWNLPzBwTE9UUS5GRWUmaHdSI3ZIJTFWbCNzbkV6Ol9xYXcobXVnVSxzeCNzMWlreE14V0skN0FJUCZ3JSwwRC40'@; put 'TUl3TUQmMkpFfjMyZDpefi4jPkg5aS95ekBCVkR6ZjJrXlA0Tnt5SipJZnxGXTEkdDkxSV4zQm9kOW4jfE1JW0J+ekYwUHdUPkEmUHFQaUdsUk49blooZWFVW2lrIXlKRVFWYU1LUzJ+QUo4JSwpd2lwYW12PTBvaCVlZzAhXy43QSI7QEJDRFV7M1l2SGZlUlpIeXhXLnN7WWwsOUxmaHUzRVNS'@; put 'YDV7NWluUnRpLk9deEtpKHNxKE5lSDtJayFvUXxwYjNqV1I9NVdBO0l3KHFMI2o8Zlk2QmQvKn0mUjRbS3pOYWRMV2ZKJj0vPDJ8fHxxeFZwKUJpZWBFVzFlVkc3W3diWyV3bDNTTEhCe1g2Q2JCQD1Tb2ZqMyltWHdXPl0zVDxaME5gbGFALH0xfXdCKUJxXlh1JXN7P0tMSkx1c1ZKYCFnPH1e'@; put 'bC5sQClPdzxHWytBNjMpSTg7eU03NThzeG00WjdFIkNOfF1TbV5FQylzNHI1OloxNUNQN19SUzZUZ2I7d2RYU0ZibU9RPVA3XUxIVjx9LF9kZ0Qpb35NO1B0cndUdHlYO3pWYWA5TFpzTCRIMzZ8PTAqUkBXI2Z7K0ZtIWhMa21FZW94S04zcUoqdFgoPHNPOk1SOElEdlUqPGJNZ18rbHRpPVY+'@; put 'UVk6ZCxRRCF3RXZQL1lxTjdXeUJbTmtqa0Q8LHhQLENwaHBNX1pGXktaTUhjTzYlVW9EVDk3Y2Bed3JmKDwsK1pBTzZNOGooJS9QbGNtJSpfVWJlZSwlL0NuIXVjZSNqYSFSayVldUROLCQpXkpeaE4hR0ZPbWtwdkZ1amZVVzN9RV9ROnJmOUpMX1p6TjdYODFSfWZIKTw8RkYzbGl7YjRLb2Z3'@; put 'O10oIkJkRXkwXzJvaVZEJlRSX3o+dC5vI3xTa3xPRSJlZWJAKD58TjVXQjNiUGc6U0g3dndePHM1SzxRfltnckY4QmReYWN2Pz8pblEuMXY5SHtNKThPYz03dG9jKk97MHklL3N2USRDWHd3akJSVDlEPzpkPkFEOyhpKyZbdDJHbGZ2IXQme143XTJMa0ZOQWYoeENNKFhlODpiUGp6fDt0ZSUo'@; put 'THsoVWRGIWFeL0NASkZ8ZUpVb1opYjcjYjhnZVhUcSwmcUFDfCFVMHMsOCRwM1FNSSMmWCFMQWskdyFnanNsQ1ZrcytdVkJMSVE8ZzolTjZrKjFhOk4yblJSSEpdMm86Mz5OMUN+enJxLmxAJFh8OXdYSmU5dSRmVGBHaSQ0SHMpOVpiUWdzTVRaUiw2QWNATkxFRSNnZyYlSW8pNUNZaiI8c19B'@; put 'Kl86ZnJEe2lLZEp1fCwvNj9bQWhDUFpaLzdDXkU5ZUxxc1JxS3toOyF3My5OUFs4KktEfj9SQT5NUE1wU0x3RGd+dkBsNEBbOThrSmdYdVF2JHtTSTgzTyU6floubF9MQVYqPGdVX0IoSW96T3IiMlF5OmpwKTprWEg3QXUzQjpfRT5EZTlSMVA7dDp4N1NkRk4yNjkmb3o6IlJSMDB9d1oxcTJv'@; put 'eDBtUmRMW0wqOytHfDleQyw8WiUqNGEwZm1TfkZWZmBETTJxN0VaOl5RKEIlOSJfZSlONUhHUz1FcHl6XW01RzRAQ3NPZ214Slg2OSEwWiNOIiE3XW17PTxEUDdweU1Je2B4K2Y9PlprX1lkLl1iR0dYWnlmKnI3Pmtwciw3ZismfSVYPUs9Y2plcHBwIU1JUEdsO2NmSDZpKXRsOzVydlMyNEhX'@; put 'MGswJXg0IVdaInYqd1ZqcHVjcklaPCxtY3o7K1g/YH1AOGMsVEhfZkx3IX52RDAiK2FBUXJKYlZzLlJ2dF5HWmBAczlJXV1wd3RVdSt6Z158ZHB3Tm9WMzgmRkxxeEZuTmxOPV8zT15LYyk4VUE8JkYiTE1gRD5+WTw+YnVIQ1R2WkhtIll5KWZTPSQyYkIySCU0ZnxlVX1VUCtQMz1eRilgWGdy'@; put 'djwwVTg1fUsjcDQvZmJkKyhAVCQ9O3klaTFVSy83V0kmN0lhMWt2ZF8mYVhIYSpmZkRmeWk6IisiWiQlRFNUYG1VaFh6JH1hcF5ycjcjODdMQ0VtXVdHfHs5blkoWlU4MTBkYGo2ezZ6V3NWMVs3ay51IT5aVT5VYU8kTypsW0s3ZSFKeztwVndwR3tGMzRxMFt9UCpVIip0fV1MdTtzN2UkaHNO'@; put 'RCw3VSEyYDkmNixtfXUxVyozO09iRmdxKGN0b0ZSeFIzJTRKYH5uQyYkPiVBN3o4Qil2aEJJaEpGK2E7ciZmV3R4TGZfeFohV1s1TE8waXopRSs7OSksaUVAOyZ4enYwMSFWM1VicTg4eEBKX3xhTChUKixhUDwlcCVNVTJGeXVpZ0NBMjgjWzomMVlOKFcsSENUKD1TWV8vfS9DeT52MWdTeVhj'@; put 'M2YhP2pgPnNVUzxDQjJeSiRhVTlYZ2pPLkcmTnJvUkp2VXgzM3FHaWdxWlMjOSFqdmpXP1VvLmJvZX5fYFJpUlJjXzsweUFAelZOfi9CKjEybER8an5fUixRRWZXTkEuZUV4MiwwWSxYfXU0VX06fn5lIncwV24mOUVaKXw1fCllXlZzP09LZXFSMnUkeGFPV0pFdnJnd21hQilEWXlKcjVqJTd7'@; put 'ezxfakJpeFNxZjtRI3UsX1daOn1LK2wsLllLd1EuQ35CSSJIPEA2eEZ9LmxjfCV4RGI3e3BXdkZSTlJaQnAoQDtlXiE3cS8kUkJ5PiZJSzQ7LllRV2A9UU9qekV4KGI3Z2BCWDRFOHQzRHkmLDA6UXJWZilISXFmLy8xPU5WNXRVY1V6SUpEUno0NmY+Zk1JUnMhWFBRQltMOWl4SWpkYFZiQ2c5'@; put 'eVs9NVRyNi9gTEtsUDo5a3o3YEMiKEhCcX51Q3RHUU53P21wcjcjPm1GSjhhfHchQ09+SFBVSGIkMnBRVUBeRSwsQVlAZCNGT11DP291Mkw2R1FON15rQlZJMy9tXTRMcTE+ViY1Y217e3BbLG1scFduVkssJFIpc1t9eykrJW5IRy5Na1I+U0VpNnkqYWREZWRybHAmKUhedDNVajZSREg3U0N0'@; put 'R0JEc3hpXylXbldqS31HUzFYYnNVa3JpWyZULl84TDxRSj1NRjl0ZTJ9KStJcW81RUt9U2w2W1VUOjA6cy9vVUpqN1dJWk8ye18hVl1nTilVbEM0bylydzMiQyhJYE8jSUdVUlMlNHxiNWUrMHg2enlbKktFIUQyUW91cmhRdzJfZH4lJSJjbVpHfnMmNlt5a3dsRk5RO1ByKFM0cTZ4bDdeMStj'@; put 'aGRCNnpwNjNhTClYOS9mY3Q7XjJaOWoyNzVtVl9TYCs1S3lZU3V0THxIPzJRan06VExEbChlZyRmTDFxTXpLV3l3fU52LDxvQT1LOnJxbTQvUGdKRjdleHZ2ZyJfZj8kLlRoZHglOzNfJj1IcilrMTQ8UzRhJFgiZjxpajJIMD43Kj4rL0ZCeUQzKDtlWyh5bWdeT3VZXz1vaVpoK1Q4OF1KLjxL'@; put 'MDZTX35OfH1tW0U3MUtZNkZIcyJSZC9JWHw0VDEud1F3RDchZXgkMj1GYC49Q2RSfHZDVWY6XkoqYFheUDF4eVdOe2lgI3VbYE5GOSk8Q2MlZntOZXliflh4WS48SjlITms8Q148OXsxbDZ5QyN3KHAjWTdyRFVdI3VaT2s2RDEhK3VSMDomTllKVyxEWHsraThNamkxYy5lRTFNJVtdSURwNV9t'@; put 'WHFTezBAcS4yOnNIPkd4QUVXc0sxZD5eRHl1Tzd1bil2X309KERDPWlKUHhUKDJhbmE/W3VqRXN6ZCZ5M3V0dzU6KGpIUyR7KGdIflNQVmRoPChLWVo4bHFHeX5XYXM2NH1NT1UkbGheP1B3RzlucngpJE0uL3pzQyxtTz8kX0NlXmNRWkBjJGYpMl59cWd5SStJYU5KW1NZcnlKPDxFJElwIntV'@; put 'dGx+dWRrfEcsYXF0dFMhcUhaOHdxWVFidX58QD0uRXYpaV57ZD8yczA8dExmbUo+JiY6QW5Sb0I0UjNpdSZjZmNLQGMkOWxXajpMTTRjMjxnfiMwQHlKJkkxOFArPHxCQGl9OGs4ZnhvLGRoY0JlTH1NUHBeK1Z7bGMlPnZ5RjJ5WXNyTGRmRnpsa003O1pgYCxLe3gkPn50RiQ0XzR3TXZzfi44'@; put 'TzIpTmlHQCokPkpnKD9KK1JxTDwsJigiV3t5fHkqXzgqdyg9PlZEZnh9K2o4W191OCRZfG5ROyFuaVtCZkFjJDtrPld2XUV3YmMwfTU6W0VNSlk8PkcyTWNLaFdPQGNaISlpPDNnXXk4fSVzN35MNUhXKDhVYEtxeFtbYzJLQCVyQHpgTC5IIywyQ19dO0dPTjc+V2NgU0RhVTI6Iyo4Lyl3WTcr'@; put 'TmlMZX11OmhyQzpFJTI4R1EyeEYhe15kaGF8cylUOkRYfn58THA/NkNmSXBeL312X1lXPEZeYmxdPk5gYUcueTAwIWQ+fF5+bG0yWSFKSzZbVGJKNUFwLi5sNSJmP3RCQjtofFtTQmNsI0c1bHo9PVZoa3ZdYTNPOUpBODd3WC46XVRyRldnQG96bDgzVG5sZ2QvNCp9YSs4fThDXyh4V3wqZlNR'@; put 'T3tndkUqfFhlTiJnOk9FZjIxW0Z3XXw2digoJHJAcS9YL0cxcV9SSCIwVUEld041Tm1wdX1xWmB4YE1xJkIxa3l3TzREV2hKXzVnaDNqTEpfcVt6W05SSDZuanxCaE4ldTBXcF8le2tyaH4hVVRsajhDfE5dX21LY301enhnUUQpWCt1SENddlVPMnFLXUg+LE4/dSlhKVhWREs8N2k5NFYiSS4m'@; put 'PTJbbTRCdmduLyVbZHB1TUt1S3pUKjZUWS5iQUl5RU5YfmA2Pyp1c2ZaTD9RY35sSXMhWTV4Q2h6R354VSh4Q2BBbWkjOiM5Tj42dWxSfm9UJmEwc1JncDFgdnhsVnJkQjlWZW58Lkh8cj5MdytqJkVfJD09LFIqcFZ6MX1lPHhKL0RoSVFiTkYqRCMxOnRHVmJRI1VkWDs+NyRAZlBqPjoiYSw/'@; put 'V09SV2h8dXh8QSFGZUpYJWg3MWYyQEQyd2lYbWlVWnwoV0ksWCs0YkxtUylQLGBAdEIkNTpKPH5WPUg4UGZRXzdrW0UyNkIkRHhIUE9ecjJkYGF5QlUuLGpjZyVUO3QjRHMudmU7IXZaamVfNl5AeXE+YTc1LlFEPUM0e3RPWHN0WkZ2Lmd9RW0xbkRvL1lUYFdyYUVWcXpoNXA1VztgXiNYSDtx'@; put 'cGQzS01lemNOXn5SfEFYP3EuXTcifGhRK2lFR0FHZi9YNzU0bG54TTRyRVcmcCkkd1ZjZD9HLEdlbX58MWVReSR7eE4uZlIuPkp8fVNEcXwjO1pUXUUzcVhQU14mKV5RcjRrYywrSEI5Y2NGRlZDMktrVlhFYyRKYy90Llh+VTZ+KDl7V3llRl1jXz58M0c5d0l4WEFeT0lIXV09U0YoZDk8VyQp'@; put 'L2h1WyNpKTU2bilPMFZXUm41YFF1WS55Oz9kZkMxcyFBfF5AQzcyIzcoVDp6dXZKXlowJTV3WltTYEZAUlMyM3x2eSZsNCJvYWZHdVRBQ1BubG4lRHA9QSFVRSxqLjlmSEJlLz0vPHFue31Ac2lQW1N4W3YoV3Q1L3BJJDwuIlR4Vj9tZHEiMU5JW1hgcDl1ekd2SFVjOz9WPC96Yj4mL01MemY6'@; put 'MCtrQVkpNCJvPlV3UWdRVmc5KztdeVhDRDl6OkhLQVZLenciOXNOXXpee1JFQUpkdmJ0Qj9ffm9iLHF5WCZVMDUzUG0kLnFOSUVaOEtCdDI2ZFp+QUlmWCk1Tjs0N1Z6WkxDTWVdUixuX0NmcVgxZlY9XWo5RExLJXsrYVJwLFAxazUjSFU8RD0oe1VjcWZJTzZWa1cyTlQ2Kz8rT0hYODRwfXo+'@; put 'TjB8YDNeOC9VXX5pTXUiW25uIlI1MUs9amBXZEhvJVhHW11JIy5bSzsjLCNTXnJJfX51KzJmcVlvezdYK0U1WEcoV35jfVkjcn09UkhXVGlkTz50UjsiaUxJczpmcFRyKzNaVExDZjVqTTU9K11rZX1ROG5wXiRWaHtAOVh0KW9ZMmQ6TVM3MG02YjdHQjMlLj9LZXV2aVQpTF18PFN1dE1XKERN'@; put 'OWwlfUkxIXxUfVFBZ2RNPmduMV1aM0AjLH1qPjJVZGUvX156OkBkYDdofUJnM2trWGpZNFM1K3o8fEt8KX5ZP2x1OGg2dVVhL2hhSGsjUlZudGlHTjtiP3I1X3FgbDdgb2hESTw7M2hKUSwoQldTdCNeRzlMeEd4MmlRWjQrUld3eldWbmAycnpWSW5VcDttWHs5cGpxaCV0NzEwSTp2Z0IwTnBP'@; put 'MlV2Smp3c25LfjpqQzpuX1c5Mno6NF4qIX46OEhdZEgxLHd7dDFzeGtFNHNAQytWcTJoL0pCQUNLcEohU0N9UjU5PDhZcDgmTyRvQndkNHhCQGlXZFt9YmJ+MXdEekswRn1oQFF6SGUpTDF8OW4waFdxLHsoIWxsYCY8OCNmcDRlS1QoWmAxYHBeayRoYXdmbXY8dHIlM3U+JjVZK19FNlU9MHVe'@; put 'SWNVYzhBJGJVOipUKkdsYUw9UGdNTHEpRzBdLih8WXZ+clNBW3xKLFciTnxrJlohRi5MV2M3ODxSWVE2eTNzIWZ9dVFdWDR4JFZWV2l+Rj5saWYiMTVVSX1hJmFzZXNwQj5oW218PURPdmAqQmNgTCUyd1l0MFRfZC9CLzAmQmJdTH1fI3xGKXF5Oz9uUi9BclZsfW9sNDd2LHJeaXB9R3FDMlp0'@; put 'US5YZG86ZCRnR3NJbkpleFtiSFIyMlkwJXF4MERed3xsMz9oSnNyQ1FkKl0ybmB1N042NFMmVjhOMnh9ckFsPy4kdjhoX0hITGBIJD0ke1VATil+SFhrVjhTTGpwQ0pNK09vbSswYDhDYVBrWDlBNENpdWhiLnM2Ly4leShOfHheK1NtakZ2Oit2N0hmPWlkKndwdi91aHh3e2BUYGpfKDI1QUg8'@; put 'bGwmQHtOIypaIyhkQFI2ZVhYVWZIIkdbZy9AQlNRWFhaciwkb1YyMXh3fDxKOzJLIWNrUmE8bnZyc2pvJXtTWU0+c1NRTDVbcChJdjQ8OmpifWx2eE4lN14veUVVeE80eFovJXx4NUZgayFGYTs0T2dAKGt0L1oqK1dHZzNOQlFSIW93an48OUgrRWVEWS9+amUuUE9DWlFVJEdjaENufXl+bDJv'@; put 'QWhgcWVTLHw5VXxvMSZ4R3o8cmwhXzMycVhpfV1LMVkxcVVFSjF6NVMxQ3tGSl91ND16bHJpQlp9VHxtJjxsND9ZMCZlXVc2JD53Y3dmOnRIdkZbL0tucjtbPz4/IVZjMjZLeiYyIz1HRHRITDxGOlolIU9yWHJOZ3JJTixQQkozU2ZARCl3Yjs7U0wjTjJ9UFRGbXttezl0RDUmems3aC92TyFw'@; put 'YGI9LyVLVF5KNjtqYz5XX0w8OUJ7U0Q5M2J8fGU+Pm1MLGJqVDFfWj4lSFRtI2ZBRShiL1FDaVt0NnA2Ml9hfSNFdV10T0pkdj9tRG12eDJ4LmxWNUkuOlI9VCNsKSgoYiJoOGN7K2poSUFSTzEmMTBvW1pUdj5pZjhdYTIqbGpPPGNoPUkkM3NoTTVUZW56Y1lrYmRrMFlkRHtkdiNIWzJhU0k6'@; put 'ZnpVRG5fPE5OTlt2bV1hSEIuantEIXA2JU5nMUxqWWxiemxrRTNnIn5FMztwSGRjMzlfVkJSJHRISSR5ay9nXX40bFtXQWM6cUpZRzN8KTMkOldReXFHZGdjMUlIVFhkQ0cpKSpwbHxTbWhkZ3wkfS9heHNzPjBUY2tdMXBOUnU2SXVpYXxMd0pmV3VUSVQkTE8zJjoyXVg8TEtwLnJhNTpoNTpl'@; put 'UUgmbn5KKFljQTZTQkNdJl9mdE8pd29VZ3pJJjFTTno/SCsvQD44IiwhPn07JSo9YW9uKlg2WXQ9My9LRktmLFEqXypTYkxhOFZqbE49I1U6d3RibH1DdG9hZUAhIz9kdTI9OE4yMUVSdWBrXz5tPi9RQzFgXzd9WlUuMVUqNXcwZCltdFl5bXtURyE0ZD9aUDdMfFM8I3xTMytjOTFJNUkwVmZ7'@; put 'ejduWFI3KS56cy89KWxiLkNsTWcyS11rXWA9Nm4ve3lNN2oqVSVJV3c2MTB1KjE7NEA6WkdFWTExKSlNXkBEYFhPS15iWXtDbXtVYEpZSUcpWldEIng7KFhnV1EkcSkwcyFqMiR1IUpLcGZvPWs5LFJ1OyxCLFlpQWdXVGBKWnZxfWBda0J+flgiPkFhPFkvaVE8IyxpMT9YeigoPmlzUzEvIXE4'@; put 'Py9JU2l2SmM+O3heJk5ePHFGUk8la3pgQFR0Y0F3YS4iVG5LT3VXU0w1JUZvYFpYKCgsPSJSInswZ0UqWjxUdn0vT005OEpDMGxrKjBjMHNnPkg6NGUuV0s0dWk0ZlJfUXh2Lm8qfFNbKyNURFpEbnFCOUk6USpoczl7IzVtVjN0W0J6TDxQWjEoa1YzcTU7amRUKm5LbSleWytSKyNhNnF0ekxU'@; put 'XSVXMCJHfHReZHpZJmVXfF9hKmJ7KnxnSCNlbX1aTipTYCNqVnpWV0tCSiV4QDBjbSl9OS9yTy8qK3lHWmdbLFNpQCVOQGJsPih+KFUyJShdP2Uya3x5TS8jX3JvUD99UWdAMmVfQWJhSyV6eltHZi5HaFFRMitge0l+cV85OG18fDhdb3YoTnk2bDdSUTNkLyM4U1shalpCOlE4JFNiTElGeTlR'@; put 'ZTB8djp2N2pabz9iUUBAIztLdCFCSyxhTSQwQjAsPSVKLiNiL3pIUCpJXW5DTi5vazdyT0ZObGN5U05YOSFaKVlUKVA7TE5FbWAoTypxcGR+ajsjWF8zPilGcyVPUG56b05QMi5EK00pSWBGVHE5KHJ+OyJEQ1VYSjw/O2MmdXNPV3xnW2B6MlUoa0VWWSxKYDJaXUxFNiNHfGZCKl1aNj4uemhk'@; put 'VFhre0x6Z01WOl5Aa0VsQn4pJjx6fSNddWxpb1tUNWhQXS45SlE4UVMlbEdGWV9LX2wkNGY5TTYzWiJjfmBWUF84dkUpemFYdDZ5V3d7X3ZbUXBkJC9dNHcoT20veC90P102RXZNcTJDP31RNnQ9SU06RktyeSNTXiVqfW4pQnR3SSNLbGVzTndTQEFhRyQrcXUjI1Q/LjdyMzQkMmZXVFI5eVoj'@; put 'Iy8vSkRAQks+YzFLP2FYVHYzXk9EW1pmJC5QSjtGXWddeSU6Mk8qZ1d9dXQwTFpYPVdvUnFGO1UjZV9oeG13L3xiQj4wVilpa25sIlAiWVtGc3kqZjpMJipmNXFVQUQzVVV5fEFibW9AK2x3IjIvXzBnWXZtKFcyW0V4dmhMbVZrSjJ9cyZ0ajE2PS5UfUwuPWhwcyspPjNFZ1FJLlFVNyMyOkhg'@; put 'ZUJfazxWeEshbTBSIUFmTkd0UGI4YF5YYmMrMFlTaX0/XjlbN3J6JDlKWzFnIUU8O3d+dX50TFZPPz1QSlBTUHo7STJPezYzcTZjTlU1IXY6RiZvaT5eNjE8ZVtlRSZXZlMseWlRaXE3WzZvc09GXzFscHwlMl5aR0NsWmZ+Y2hnLnVZY0VPYlVQekJLNjp9ezolREFpRFJ7bnxzO0AzO1MqKytA'@; put 'K30/N1pWJClNWm9vZnJpUXx1QEM9bmB4fWdIa1BbWG0/ODtPMU0/XzdRVC4lNUkyNEZsdEUxPFZlWjFzTGI/YU9TWTdKO1hdRnR7TDdVITAyLnNVZ2BIPS43V2I5e1laVGcyflQ0Q1F+XTQ3LyhkXjFvN3Q7QHtteU9hMX5HNDk1eSg0amk5bVZWfSJzQGlEdWYuJUY1KGtpRk5RWlU3SVhWVHVU'@; put 'WEhqYFIwbXR4RFBtdF9DW2w4fm5FWntkfmdsWlcyQG8mZlZ3VTg0VDFRUz8sITNXMX0/Qi43cn1Gd1E+JHQvaERMQ0VXIXNaYjFBMTk9THI4MV9VcWNaRVZobj1ZVk9ycEBpJXt9ZWZRbmRjQlprLz9yP2o4NVMpNmg6fEp5fEpydU1TITZ2MVdrdlpUbl1tI097MWg8dHlLNnNRdk43M09AKGZr'@; put 'SFkxbkhXa1Ixd2BUUG4yeWd3PiI2WShPXixnOzc8SC80Y2FUOS58aXlZVjsrRDhZNiI6LF00dis9ajI/YjVKTT4uZng4WSk7L0RUWUQuPW5obXNYe0tpP0V5bTNKanJ5eF9qPnAkQExzbXwoVkJKdFJWSXRjPyp7eEV2Y3VKW1k9c3VQam9rNkAyUyJwUUN+QF9LRE5PP3lXI3N7eDNPSm5vNiZz'@; put 'MFBmWnBMQHhlUWhZJTdKel4ucllZK3QrZVMja3J4MDRRcVQmZTFsWT9QImpSRlQzRyVSXkFGeX4qWShASmlGN1NwcnFuOHZeYy9DcUorRH5Pcnl0aUFtO2tybkg5NTZhV0pGdXV8K31aL1RiWjZedUo0KTtsU1B9TEBdeXBxIk14NV4/aTBPcF49QXhGOS46PyhPK0sofikmUC5ERjk3QU9fN1N2'@; put 'W0hxSixDTHxRMFl8Z2BdRGZLJEB2I2Uuayx3KDtTYHt8N0VWM05WQiwyU1YlIlR5TzdbZF9JQkoxL1F1SmJWPD95cnZNPzBWL1oxZFFAbjtufm0yNUo7NmBgaGZAXiZYdnRtbWc2TCZHbkpfbXwiTSlVeFM3fW1fXVFHY1tJOWBPI0JJKmFQaWBWcn50Wl9QdTdqLnpHUWtQcUVFbG9HemMweD1D'@; put 'NXM2diFfL1N7WnlTOn55MEVSYXQlOVM6VjxNNV01NGplc1NQSkNzNHYlZyJqWUtPW015ISIvW3JmUE1HY01teGRIYlIxXUlncmNyJVZwT3E0XjFBcUJOX1F6YUtQKEVweFhuV11qYzY9N35tWzJjYTomP2B5bG46ci59L3xyR1srJD1LN0suL30hNXAifHdwY052UjFRaz4vdDMiMC9gdTNqPC5h'@; put 'T1cpKD9Ab1BGSmFeKn5KJWUzeDp9OzRHSlhDY2AhQlRSIzF2XTNJP3srMWRzcD0kJFNNImBpbjpFNFleWlc2SmxfJjdkWGdFTU43dzd9Tn0pUDprQ2NrS0NYTjBgd3t6JX5vLGJoWXdCV2dCflR3MUtLZ31oUUkuJSFZIS5dZ2h4JC9hSSUhJnwvP100I3FUQCohWm0rWi50REksd0ZyX0pGZmsh'@; put 'c3BqV2ZJQHVOM3A/PStkal80MXp2OWNzW01dRVApZGp2eXJ0WWNgO0klXiN9fDhoVF83UCFCZSpbXk0mS28mOVY1Qz5FZiRsSl9zRytKP2pWdkJbTn0kbWllelhJIUtZPThBXWt8QXprZ3E9dEIzUD1TXVFbdCxgRHdOVipBcTU9M0FeY110TH14JWFJJF9GM0pDXjc+T3BddzdnTk9NYnp1PW9l'@; put 'bmI/e2BlaUFRSWNMZnpwJk52MF9hYzg5cXx0XU1OYE06K1lxemtmWGx7JnI0c1ZqPyk4XjIlJlJFYk4saD03NVhtU3JnJHo5SmNBVHF3W0x1fHFoTyYyVE1PeEhtUGA5a2swVmh1QGh8NTQxMTwkPmhTUDw8THI8OCxtTi9aViw+V0J1N1JaX0VuOmpaUWMhSTdOZzFRb1tqRVFZR08wU0lleylP'@; put 'UUNtRXRUZSgsUHNxKWJGIyhGRyslYk4jTEpxMyVoTi9rMHtXLjE4aFF7KkZ9V3RTRDl6OD1oMCEwYnt7OEZ4cyIkSDh8bXN8NW5ZcTV6S0c1dnZuemlmbjY3QjRnP2RpPDolZ3RmJnhOS3A1IWNxZDpKfVdWSkN0TTZKZSZjUTpaLk5FakR8X1gsdTtDdTJNRCU8OEJLS0E0SV17IztKWFdDNFBF'@; put 'YndlRjYkM11vW1VmTHgzT0ZIZmZmVTJQXnx2SEIxJD5kIj9LUl1MT1ZPUHIyI1lsZ31jOlZdd18/JTZuRTF1biV+OkxrOHNkfTZgUS9JbHwpZT9aSWRfWURIfn1mQUpkYzF8MnB0YWFoLio3Y2hpMWJ0KnlJNypSI0o+e3tiajdFOmVvO2lBcEhJbCp1fVZycFZLd1U/Zm9TTEUwPUhbSzZgSWJG'@; put 'PyY8WWBJcn06UXJjZHMvNyN+fkkrSm1jZHZLayMoUEokZzEuPCQzUncqTCpKO1QxdXY8fWAxSFhOIW0iTDUpZTtWdzpDZ2o9Tys9a0d1VCUmW0EoLHRYPj08ZlklWW0rUGVzTlgxKG5vcVtQNEg9d3wsQl9GUVM7NTR2WWhTQWY3dnQ8Xns8KUdyfUBFUld5RWdtKy8pciVQcDt+ek1qRy4sPGt4'@; put 'Kn1sO1RGNnE/My4jJlBSL1Y1JG42U3t4TnxEeVJNdnJ4JkVBMEc0aXQ7bH18JU1zTk95IVFsUSkhODJ5My9NdXY4fmFAIm1CNEVKenVwMENHMzBBKjJnd3pzWk10JT5oeVgzd0hhLk5WRT59Wj9QKXBEeDE3ZWJOWXhDNHw9OUpVY3pJbTxpWCtgcFM3d10/S3lrKUtzSS5UVD9DRUNJV0R1Snh7'@; put 'dV9neHxVI3tbZXZfKz5TQnshZzFRUSs6KSorSV0yUy5LYncrVjs4OCpAL1hXNEhRbSx3Z1JeYm9VeilDVHolVnhzTCtlJXpraWRjPEZaIyVkcUU7cm1oXjAvZDY4Vmt7Y1pRcFBbe2FwPUxEXjxAVXFPcmkyKW5MJlJjRDVkVkdpNiE4RXZsYl0rTGs5SjY9XmkoaExldyNUX3U9V3JDW054RFlU'@; put 'UGc9dVhIXiFNQyo0eFguTngiI3g1ITtzckYlLjVuQHY2bUs8dCNUIkNkTHdBI012R1JDej58dVk5cEFxeyE1WEpMSH1KI0cjWmVFc2dQI11uZyk+K2hLNGc8fWE5Zm1ZXkBMOUh4MXRqLkxpOUh+a3lbUmJKaWhjVHdvakk3NktJV0xyLlFCIkI5SCJHZV1+Qll8JS4pIW5WNiReai9nYmM5eyQv'@; put 'YVdBWiNtMVFEUGd5P0svUXlZND8yfjI5L1o3ditSSSIkMnNISGRNenNHK3NFVH4yK2A1QHZGaUI5ZFc8RHAjL0RvT1dnemdXPzk6M3kmTn5GLF1CQEQsKzpKWCI/d0ZLZEt3fWcvdGd1JG5ubDc3bm52Qkt6JFNKMisjQ1daSzgpLFdpfk8rTCpIS0ZpeTZ7MDJHYnNreCpeNDx+SD4qSjxjZj1Z'@; put 'ajRlUyx3VVo3ZUtxbVF5ITJ1V11hdXZfIXc6d1pRTFNgcHRveG40bTZ+USFYVmRDaT0oVG15YFNza19uTERQUzZPPWg2OzNtSG1wVEpSMHRDVmQ1ZHk7QVQ9Xi9hSSx9YSZ0alR6STJ4UFs1K0psX28oWUJULEo7PGc2PmUobksiW2pKSEpfd2kkdSpsel9Kb31iV3puWzNTLGg9Xmt+PyEpYzJ5'@; put 'd0lHOEpATyQ4YjVhRHd8JWdzLFZQT2AzKzZJKHYoVnRJOUd2MGdyVGdkWlp1JHBJL3Zba19mYjtwSj9OWT5BSltnflRQISw5TSs0bDBnUGRQbkVoO3UzOzE7V356RVJhMH5QPjNqIjd7TjE/QD8uVSIuc1VpYyVVS0xwLkpaSiFXUF4sUiheeGRLLkRbe25GVlF5IWYiVEN3JTtkYS80TzZyY2cj'@; put 'MH5Je3NdXUA2e0Z9MjBxej5UdGoiPjIvV19bQWs7PktZWmlgK2I1d0V5d2lMckBoejhkKD1vKiVWPzM/dTdRNzpnIUBkIXZGdnAjaVY8I3xaRTJARD5YRmxgUm4jaDU1W2wjMCFHIzYuQyV3MixGeXFzZl0mIzdadG56ei9PZDowWmJ7bHVOO1NzZEd0NG0mVGtPVXpKJV0uIVJAVVcmQio+JTRm'@; put 'YTVOL01eQ283eXI5I0spNihPLjtRJl5JYjEvZUtnKEMvVmYuYXJ3NWBlYVsuNiRTdFFHcytYWENqSGJVQnREQnlHOlc5I1Y1VWojV1khamI4NXpDMU8jbTNLLnJaSktuSCF0ZUAyQyVORyRRXypHOnc6PCtVOHg8S2lLcURHLF95NEIsTnRJODFfUzhQbyxCdDwwRVFOZSImeSxwe1BfXWVWeSVb'@; put 'YHIlcnkrOU0pQ3FZVVRERXh9K2NgUXRWY3pmPXFELEdfRC96RTA6SmZ4O15PRGNEMU9Ae0YkdyIqbFJII0RlUFMmV0A+ailNJm17TCJYKHZEfislfHdMR2IsNTxMWEw4fHN9STliSlJ1SjkoXlJOVF1AVXxPLytXKjw8JXpNSEBuL0opfFgzWil2NnY4PCpyM3FbT1RYOHhfTzhNZykvSlBJaTF8'@; put 'ZzxEQEkiPVRjNFNVcz89b35iXSpiXVtzKHxuLGRfeU5yYzlCUTl0LyI0T0U8R2ZWczY2eX1HLEExKHxNZntaciFjUWt5aihae1RXP31IdHR6TH1BLjZgOS5WRzRYaTBjQlBhYXcwTjlgLmtHcTFoKjwrQCo4Y2l9ekprdzQrIU07X09KN0l9SmlFbWlOcCMhRjV7LyNXXyxvM3pEWDRffDN9XiEr'@; put 'KXNOQlBbS0ppc1Yyfl9hI1ZHRD02dz9jK1ZpMkdkXUZsYGhaeHRXREx0MSN+JCxnN0Y9T19XfHAyPDkvbD9Ad0x7VjV+fWlsMFVTVX5DY0l+WTR8Wi5oUG08OXV6N0lkIkhQcSJkc3JCX0UveC9SOUIlRj8lLHxbU2QlRElVRER6O3w3YHo4WDlfflFdZDlxWEVxcUdgIlFTWEhvSSpORitiVVYy'@; put 'bXxESyp5QGh5Q1ZTMkN0bHAkUllsIiI/NVdER2UscnwsZGgyL0gld0NpVTZnalVsO3xTY2BNM1BNaW8sWFtMZGY/JmUxfHcjRVg3T2FfLyYvUkZLTyheWCpGQWhmaHBHNnU8e2RzKVR5TV04NWVacEgxc3dhTWJYLlVYP3ZuPWN8RyZoPWN1UEddZ3F6V15iU1BiI1J4a2UiYy84aDx8XWpmOFFR'@; put 'fT1KKzdvR0pHdGU9W0doa2pYYFtAVmEoOT91bkFjMWhuLnMoczMvYFAlKkVpIyxaRjVyTlp6WGpZayJFcXpKKHxyXVZvdzBeSSZTI3g+TXRFcVtAUVtGYmcoRUdaTW9gRUA8NitrZHFqVXArXlk8MXVlZGtxVUZ5UD8zeG5qSD13SDdCMEUzYDZ0aGY5bD5EPFpEPVRdITdYIjw8dTNDVSJmfnx7'@; put 'dztvTV5RJFpzSk1YOHtha0peVXwsT0ZXbUB8bktIIncpVV5CIUpOKjc0U2B3ejFqUkdNZzNydT5xO0lNUF1xdTF8eEQ/WWdrLHF3KFRIW29xRjpgZExme1BfWDFAI25sfWN7PUcrcDY0U0U1NiFgMzUuLCpfS31wQlFReTI4KHl6YmUuRHdkLntOaW10TVchZTp7I1AxUTg9JGNNXU04OTVJT0t5'@; put 'bDVgXkYkU2MzNz56QnpNVzNyVzRRJVJaKD0kUXl4bmtqOlN8IVglfTE7N0ptN2A5LzFiUTlmMkEiQUYwW0xgJGFTK19yZyt+TUhGbkZLNTV6U1lzOSFqX0YydHI2LmA2PEddSSE0KDF3akRvUWpTTiEjVnJuKX05eSt5bV9sQUV6N2Q5KFp6SnR+aE9gPThfUkBKdl8zR0l7NjBYYG9KJTEhcmh1'@; put 'MnY+cTR3NV9bbiFDVShtRFlVW2BKO2x+cjE1ZGA/XWA1QURfIVFRWzNnSFE2bCE0Y05hOUBafFIvZnc+QmFvaFtse0lQKilAJkM+LDZYOlhuMlcvcGYifjsoRjtwMn5NVEJjbHFAKGFrZDYxIUlEW3R0Pi9mcHlsdyg4byldYG87e0RRZTNMayhENzJfXypzLl87T3VlLDQ+eG9VeVZIPStqQkks'@; put 'JHc0czdzbSZBaSVAU2teMFs/MXRJIjQlVEJAdDF5SkE0X0h0X3NvQz9HeCk1Wjh9Nkk7QWtSWXM5IToheTg1RHZtQz9VUD83NWRab3xEP2leOUR8THZ6fFIsODZqJjQqaWUuPWR2W2c0QzBhc1puMG4rQiNFVjhdMG1IWEw2XkEkI2UpQEAxTF4reChhcWJoUmNTQVdbLHlrZmlBWmorVDhieHZT'@; put 'VjRBI34xRkZIez44YlMwfT89X3Yzc2ouMTglPyQpdmtaTnB8azhlaSlJImVEL01SOUFOWn1OV1NIeGlyK3VMO1FAXzZmfXBqNXssPXReaWZoUzc2M1N8OSR1QyhkXTlzJSZjPXM9R3J4a35XWm4xcH5NKDUqdjdJdVYvUjxxNVRfPmVnTEE1MHw9XntHZDphJG8wN1BzR25vbzYzT1BFYjp5I287'@; put 'SVtZWXU/Mjx8a11pUm9lSj1nXShYKVRoU0FQc202dWM8N0MySmJIeWV+NTBkSG0xdj1XVmRBNVI/cUs2NlsqMmtpS3tuZipdWCpQRHouXndyQ3QsfTBrZ0dsOng/eyw4NUZUNFNRUGZbOGEhXyRlKUZYaTFrNFM3R011L3IsSF54ZWViYjF9SHtuWDduZC9sMGRlV2d+W3R8fGBMWy9kXl18Qzss'@; put 'ZmlkLFdDVHdHfEcsb2d8V2UzS3NeXjN1KDpNbCJELlRoQ31gfCwqWF1zWSRZPSZhJmBkeUxuLzZTZDxlI35rY0lkOVdtUGN1NSt7KlU8OnFmbDAyQ2A7fGhDQ0xCQXU3fm8kWTl3VCFUL35LSHtORS47bHxxb05WMXt4dmRQJD93IVJYcC8sPyw5SC4lbTgjbyo/N3N3ancuUUFgJGsmcWp4dUpR'@; put 'ako1Lj5IMHhLOHR9PFImaDlYT35kWVkwPzN1QzRfKXRqUGM3SUt+Uk0zVDoqeU01djFiU3syKSN4WnQwPyNDR0I6eWR1P31eVyFsY3ZebileIXopIXAvWE92M2RYa1RRajgwQSwmWGA7eEU5ZzUvZlM8dndSY2ZwJUMze14zTmlfOHlLL0plfkosTkM1RXlURHIrUk1KdGdWKUUqRTB3VFZSKDJb'@; put 'OnNxUXB0PTRuflkzIWpPTHIwNnVlRClYaTMpZVVIYFdRXV10c1ZpcGQ7IWN0ak8mVFE4OyRKbUpgRUEiXSI2P050MSxML1o6aHtDQGQxSyNdYmx5OjY8fnk4cTNrT057VG5zJlJ7dCpwW31pbkYsM14xeHxGaSJaNTwuW0FyY2RSNnl1fDQuT058PkQ0fS8uTnxDLFJDW0FuLj9nXUpAZiRCTTVZ'@; put 'TEs5UmBvRkosNVVJX0kyQmcyKCh7SztWTGNwM0UjXys6ciIhVjg4NnxoNFEiPSZRa1Y5KDhAXlJPY3tXUU1JIkZnXW8xQTJmTGc9eDNOKD5jTn4reEVHdXBzelsuO0VqZz9Ec2t1ZXkxJnBlKzdiaDAsQ1MsbDs2dn0kb1VQay4zUTMld2B1O0JIOkdLRVNPS3NBXWg8aXN6OU5uPVZFREcoT1Es'@; put 'RVNbJSVQRjYmNH01eVs9QkpKdzwuRVdXMHlsUDJzMi5DUCtjM2opbHRhdWNsfi9McTZFNHI2ZmtuOUpkM0IuN3VwSjVoNEVjSXc1OGY2c3c4ZHI/cE9iLF03ck4+PVJ2XVFUU3x2WkApYEpwWiM5MjU8SHwrYj9YIj9mdDk1SjUua1QwPE1jLG5zN1Q7P2AqJitUWGZ2YzAxV0h5VUhRTSsjWVBb'@; put 'UzVATlRkPUJZJixMaXQuMHhZRTE6Slo9VSVuLExrU3p5b3ZycTBQeDNyQXRlLG5rV116JE9ZUngufX59Nl1jPzFbXTErYlRkVnZIeyRqWV5hQzpESEdAeTg7KkAyOzEkP1czP0NqM0FPNkIlbi9uPjFIKH5heCFDZD5DWlhUImM4LDEvdUJlMU13c3FlYyw5L3pTKDBnbTd1TjZYPjheMCokRENI'@; put 'QS83dnZQb2RyN0xqR0J7JS9pVGBTKlFwbnJedjlQS3E4M0xYbURVN2t+NChDaV5ZPU0rcCl1L0xjckIwWk4/KGI4dVNPZWg+dFV8anB1UVheRDt5eDokPn51I0Y/aU1td2N0LE8iKTYwWTEyYDtATSJwZXlWfCRGbyx3JnFCbCNtMTYiW0J1WnJPKS5WRV1CZFsxODpFJHk1an1rLFtudWtQPyFy'@; put 'PTt4eF5zX0hFbXdLazN9JSxPVHFPRm03KytNaFgpUHE9XzdYSDgoXjkxTCJnUTgxPnYzY0RAJDZLOEZJOmdtYD1JSCQ8enRHST9RbHopd1RrSlVuaDoreUBgYkouME9+PENbcEZJenlFWG57PTtNaWg7NlQ6OitgeDMjRmIpfjVYQkVsZUxdM1tDSWo1WmRxSTMmZU9xdXJ+OnR8Rl8wKkFDfDZb'@; put 'fnElYW1ZRjkyWj5TYHE6dV1UQmdXWHYxPmpNT0FkdyF3RHdgfUleJnQ7KyxsOVM1R2h4SlNJVEpzKVlbZWVaeUlKaSEmS1hmem9kViVDVFhhKyZuYDc7LHc1MSZWVl08Mzk1OzVfSldpSUlVQmVFa2U0U2ciYDl+dng9QlpGZDNGNzo7fS94JkNdOW5nTFRPZkBybEdEYXpTfEpwInI+XlR9ZUdI'@; put 'fWciKVc7ekVScnhjVXFQaHtjUF5KVmlIZiIrIj1SQmQkbEZ6Ulc1T3lfMSgxJE44S2BaVSY8czFEZTVScUB3dXwsYmZ8aWMwbSwoMTtMKCFYfFFfLltkaE9hM0lFOCxuKVA4IkFyJVB3PWQ6dGteSW17K3xiKnd3W0ZmYk1JZ1BjbW41ZlVbX3YocCgxdFtRPHs1R1pqKDYuT2NNTlRxeSRPL2pG'@; put 'eW1UYz5fOkxTUUE/RyQoNTw0eDciI2E2QTxbMGlhfEdGPEdnWlIvcmNsYUtmZWE6RipNT2o1O0JOJGFSPjEsSzEqQ31LaUlgezBPUTkkekNvMlBkaUlUe18uVVVbaC9ddHhUNU9CJVpsdEIhU1dnVSNXTWA/M0E5cEt2ZmVCU0UpN1F5U1Rsa0lCdUVUeVg+LGNAKCJtOSgleXI2ZkB+cipaXjBu'@; put 'P2F0THFoV2EmKklAPSopWEhTUHtwSV9YXSl2cjY0SFFKdlhLYmUyei99dUZhRCRRayVHKnd9TF9yMlc2ckNfLzdifUJqY2dFVDc1fWUjd1B7bXo1aX5MNmNRL3ZfJFc3PEkjRy9jVUpZIklrO0UqJWZGK31UclRhdGNSX20vRCxWKklYejBDWWdDY0NgJjZdWE1bWkRnPUJXfExJW0shbmVvUXlb'@; put 'aUUyPjsoTntEJn1yUiM5KDB7ciQ1UXdqZGMxO0xiVUthLE9PYmM7ZEFYbnc0RXpUQzsjS2tPcm9WREBNRmA4P3lFYG9lYF8oZU9NTzwsZjM2S0dZTyYxcHwmdXskKi5ObmhuP0lzfkYjb350PEdffG89W2tpJC5iajRfbHQ4blBocWU5UTNbPT1IMntaeHNfKz4wWWFgNVA6ZyYsdyouKjNUX3Ru'@; put 'RitpLkYmNkNpbVs3RT1HfH0paUAjeyspJEg7WTUpV21ncC9DRjJhZEJbYzRgUUBeTjxYZ1FVJmVMRCxaVkJDPnF2MXFeUGpgVFR2akwoeWpmdVt1Wz5LR2BwaiNHbVVWT3M3UiFFRWd8L1dbQ1k5KUZGKEohTyRaLm4rKGUlU11tSkhrZHJ2fit1NFVpcmgkaVdILz96TjJpRyliSFheZSlpUjlB'@; put 'eH0zQkhYfWsmOS5wQSJ+Vk5+aWVNJUdURnB9QHBhWFhpNncqTm93X313WjRSUGolUkh9MiRKJTB9c31INT5jdTpUfXQxUVYrO2I5MDlIOVZHRkJUKyghXXA5ITVJM3d6JG82WFU3OTF6KnA2KXE7a11dW2NiaWdQeWtAMFdre347d3dKekJAWGA0Pj8iRmFbYitSKDZRYiMkMmBdd3wqZT9oZ1N+'@; put 'KEtgb0hSSSEvfExQcHBrR2x0azl8NjQxLmlQfHUwIU9JJXE3b3Q0eW8ldDU5LDZTZllJMzYkWDh7ZCNGQ1A0REtCKytqSFVVPmtOJDs1VltKOzJ4RV9BX3k1TEg/KUshdSpxWWowN3ZEZyFxQlFmbTZnPUtVTUd8dWQ0U0U4O1g6PzIiQTEvP01SWkhde15gdjB8fHswPGgvRm0yYl9CMFU2S1tr'@; put 'RS5XTl4jT203eD1gJWE1M1kld0ZMIXAwL2NgMWVCYTtEUSt4NjBmJGt2ZSw5TXw9Nig6K1EwLltRQ2trfWNATGJpcDohN0N4UXZVQjElQyxmfD1zezoqK0p2fXBie2UwWFhkS2lQIiY7OEszeTQ6PFJjJk0lOXBQYUJtWWBLenswXy5YYTZrLmEiMmNIMyw5VmFwPi8rMCppYGxlVDozZGhHclA9'@; put 'd3pNcDx1RC5JS3BgQmg/dUNpaUt7K0tCQyI/ZGBbMk5+RzZHWkVpKV5iLkw1cFUiT1pLMnkmTU9ISmkoQDRHTH4mSjVEL08wWj5kMVldU0xJQDQ2aCo0cnpNQ2Y1fm43YWtfWHgzbDhtL2k8RyprTzxXW2xsMjdgISZebDpFP1ZjdSFlP2FqcTtNd00vLHZic20iZm5ZSCUkKGZAYmQjMmRoMEZ2'@; put 'eEJicjNoPEJ7STh7NVpZbFEoViRCRCFnIyQ5KH14cFZSPWFTK2wySloqIk51eTc/RT9QS09xYEAqLnBOc0BPYyJVaUtiWXRCcSNNYl0hUU8/LE9oUW4ra3lRRHVzWEI2WjEuVDIjPnhhPyJ4ZGRdLDJ4KDpJbkhzIiRDT3h0ZV5FWXZkd2cqam40PUY9ZSM4NWI9RiJqTHY6bjJyVjpkREdETSNb'@; put 'bF1SR18ofEQvO1JmRGlCU0dEfiRMMGFdZEYycTZsMkk7amRDJkMsaHpeYXFGYDlNNGlvQHRMJGhrQlssSHM1UXJuXmB6RUVfeCplWElQTz1+alorRyV5alRhYkVzPSZ1P3A7flc4K18kaWU7eUR0STU8QjhJZkVxY0s0UjQ2czhMMWBWdWB6Rk5xKUhISypsO15mNVNlUVlNSVd1JjxpUTN5b1tO'@; put 'ciskc19JUHt4MC9HMz1qO0RlaXF3WntOJEpmVzhUa2E1fHpse0MwV0x9OUgqaClNIUR4K0tJPEtvQXImfUdsekFjRU5Qdzw/TkJPTDAsJEUlTE02dHhGcmguVVVWdmp6Vj9xbz42K2o2Sl1fRyt8XlJATyY4RU5fcHorT1J0YlQ5ViVmcH5LdVZfcF97enQ1OyVRK0RpI1o9TW9VN0Rxdmt4UHNr'@; put 'eERnOFptZG9eI0wmMilOV2gvSFp9JE1jRl5NcENgWCY1RypsOkM2dWt9V0s4T1ZINTYuSShoaml0YF5ycykiW3BxQ3lTU0oxMm8zK0lfLm1CXVsqNHhDNG5CdmpEcFhiISlHcVdyX1o5emFdYEheQiVuIWwreDxkenEobl1KeXxldld2OyR1K3J4R2V2anorY3o4Z0Y4Q0BiPUl9NmM8bXhVfCN9'@; put 'Un5JZiJiX05APjJ6R3RNYFQyakZoLyQoLHR1cC5RKHRKY0hONHtGJGlPcmQzKU46ZGZJO1l6UU0yPD5TS1FQM10sYCNHakA+a2x6KjNuQWJTKjBGQUZuIm9Ed1E1K3s2SiY3PC9xJH5vJldEIzVGdzdVRGwxeW5MVWw/YiNRUER3czpQMixsWTglWjE+MC5vXixDdzdQaWQ4Z2FyIjkpbHNjdy5a'@; put 'TyFCYyR6eylUOXMsKyojTCZYLG0/JUNBMl51XyNbWXo2WXw3cF58UXMzSmpLamh7cCM3TVR9bShsL0hlaGJuUTpqdi5QOnkwK0luSFc6N0oiP1RsSkh0QT9KWjZGcWlQS0RQM19QSEE1QDxeMTR6elgvSU5FU35yMmpxZnZOZ1dwTFhySlJoNnZiSDNeZktpTFV9YzxuSHVuXmN1KipHUUpDd1Y9'@; put 'ZFlVPmJMTmElZ3pbXlIsXzJGK0JfPHZuXTU/fnZQW2AwTy5Ob2FufCtFJSs1fW1rfH5mN2xlNUJ7akxdWSkmVk9gSzk1cTEsa3VQRix8QUVvdGNMYEROSGYwYHJNNF5kWEo6VEVHOHxEciwmNGNsWHdNIndCfVB+UWRuWEluKVVKL1NjSWxMdUNkcmciNmk9KG5rYWNjYiF6fTQld31feXR8K0JZ'@; put 'Yy9IOXtdTTM9eD9lKFYkX25IeShMMkp9QUVIfFZtWDA9b31ba2cvQElGaURocHB0KDBbQXtnJUBVLGJUOyswU09yR2oocWVFYDJyR2BdPFd8ak1gSW1SUlEwXiQ+Kk1KbSNZI3B+NC4mWzhKJGFFL0xlKkZAXWNRajxOayhiO3A7K2t3eHFIU2IrTHFBK2RKPXxkPVBjJWNUdTlJLGNaK1A0RX16'@; put 'WXJtQiQsT0AlPGo/QilleCh4W1h5PCNMQUFrTVB+MjpVeHxCXXpgQzFFPkchaCE1aDRRRDc5ViYqSXc9ISJgSnxKVDVHITtEYywrYGhhc0EpRl5TOzIiaz5RfnRMd0MlYWc/Jk5jTHZVUl1xfl1pU2lsWX1SK04rMlFGUTI4SXNbTmclcCo8IXNeUGQxTHtqc2o+MWNjajVSZFh6aixkJkdzRDYh'@; put 'RkI0RTVPbTMxcVZpbmwjZy46KlchbkN9QjJXSl5ZblhmZUZwYnpmbGU0bkYiLFtmOXEiS09nNDBkOGd3Yn1IbjdmWSlnbURZM308UF9yTCk5dmpaWTUyKG9iP2JnNGFlKGQ6SmpGWi9ualkvcVFFPURZbHpAX1pUIj0rUjxueG5rZH5RXUQzTiZUe1VyTXoye24qIVIvKCViSDgjXyJLYmA7cz9d'@; put 'fD8qXkpSWm9CTEoxJUo1NjEjP2glWiJAVEFfUDA5NjlCeXtDITByQmBeeWRRV2xteTRyXS95YSxLTyQrT0EwdGx8TEwhWX1JXS9FeEJ9R0tBcWVrLExxYH13X3NXfVM+IUslIXxmWTE3fHlnOH1Wcj1abSQ+bUlsUXc2JCtzUm5VMltmNnJhYSV+d0ZvdUBlOGwyZX5uXl52WFt0SiUsTSQ/a2t2'@; put 'd3VjOGJAZzd1SCN0dl0wW0JgP2JjeCQlQ2Y+OWpuSjNXfldvN0RTdm9tVlhVS0skUkgkRVRIdSEhKCN4cjsqSFBuOVAjeDQxXWJPQ0Q5WStiZmRWfkw6YD5Vd0ltUnQsTmx9KE12WShnam4xKVQ/ZGAuYCh4PVdtfD8+YGF4Y11RPXNRYGNDcypEUjZ+TGBhR2MqTSRENW4wQEVRLzJNV25wcW5m'@; put 'XyNKOjlNVytRYVdqY2J5Rj0jL2F2dU9ffi8yREEsR005JC96PXA7MClRQzl3KWlRKj9mfX54X2suck5yY3c8c3libXFvK3FYV1tKPDl5dDhrVmp6P2NHUDJiVnApek86cUBMRi4rMT42P0svOnsmZzRkOmdgUn1JdUB6a0xLNDtTV2d3LEhOV21RZWdOb2pvMWpmelJRUjpxPFp8QUZCRVs+L3J2'@; put 'NjNzXmY9TEwsQk9BcTdTPUYkdGBAai5GKTBrIUI1TnhpKW1lKHsrJjgwPkFnVF4oSDNFKFFWKDRMVH1EekhzIkYsdEw1VjpIeyxPQFcrZmJkNCk7M0BBWmxIcTJLP2N+KlteZ0YyeUA+MTZBYmdiKTFCSSVseGdAaU1qN1YmN1lWdzpVRWNLYnd5b08xe19DO0xXT28ieyJqZHMwe0RHZF4uQkg+'@; put 'RE1Va3hCLGshJVgyOG95a0cpSyl2K15Zd1V3bns+KmY+QnVMRWhuZ0RJSj92U3pHK2M0bjRyUUV+KDRvQk5hR2tLSGwrQlNQZTZbeTg+NjJEWnRNV1RnL3JUdyxuLlosdys2cDsvdnZ2Xzp9UGFNL04lMj1AJFJUb2hEQmlDYE5RKikrVyVzQHsmX1d9Pj1mYlR6cD17bkIqe0swbk1eeG1hVWVS'@; put 'Y3pJKXJxPXs9MXFMWUpqeDd9ez9BYSNscmBKUWc7bTo3TXReW0decDs7dE5IUU5VRyp0c2lvUihZfXpkVFJnZFs1dStad05OYF1WKDNfXk89R2FMcCx5Tm5oOXtoRHxLaUlFSWAyZnVLRUwwKGZmcyVndnxqUj5PbThYRiVoRTxgLCRyNkVUciZSVUlEP3R3eVhwVzhuaUAsc0xRcCMvezY7JDN8'@; put 'TGpPO3MyQ0xmJm8hP2hyOzhvSUdzVkJoZWU1V30+aFdAX2EwJlp7aHB8JGtTWFN9ZHdPfn1USi9Qd3VJRyJ7Z3UxWkR4Kz9+OU5za0tjfWxSSFhLSHZyYzkjSVU9fntiPjA/TXhJOzFBMUxjR2YxIU4ifFN9c000dHNjfFg+SExKOix0Kl40b2ttIiEvbGFUMyIxITA1KWxQUGBMb3g7eUhhflI8'@; put 'PSNPQlhZYj4kPjRgWUtrKlR7V09DJWNSe0g/WklRayFWV19tbGlhWzYsKGMwO3ZVc0o9aXdAbChQImg6R1k8QXNuNUphQSZEZGt2X2IjflcxWXI0fHMvRTVuSXc6XyE1dzEpPWZdeDQySH1edDJaMzJbMmVXN3lqdWN6Y092LkJyVm5PKjlZayxZXWhrWzZDZSgrOjVYUFhSTl8+eH4rLCM1TVU/'@; put 'MUclTF9xd3lwXis6YyQqQ3p2ZWIxbnZVTU9JMXMudlNvIWY9PF5jaVJ8QEpwN2RsSnRMdDFYQzYrNEc7LjZUKXxULjdSdThmeElCPDo4JVszI3I/eEI8JV5zY2tWU3hNJnVsO2RpQWV7KyhrJk1LISNVa0tJcHdFXXFNW3VUfTBBVjoySEpsZEk2Q0xbTU9gV3hwX1Qvbj5uODdOW3hee1s+ZUdX'@; put 'MS5bN1U5TjU9az1CdXp0fV4yOjBxLFtkJGA2Kl9qLFQ4dlRKcTt0TCYkVk5hJklNaThWbzh9JEwqU1RwSEllRHwoXVoqU2dxIyYsO3EyZXRabz9rISJBditkWTZWIlRVbX5CZFlAMkRPPyFdSmNMYXt7ZE8lP3p9KXx6KkI4NldiUX1mQ2MpIVhtMjNlU0ByKUVSRFE7YiNJPzEzU21Jb00wd2JH'@; put 'S20+SlVZUGhEfUMvIls4ZXF5ZF1Qb2BRVXR5VW99Zz0ifGMhX1pmR2lUQFhWXk1+XUY1OUErKSEoT2xoRDFnM08+b1creGpuQlBFJD06PD1nMT4+Wz1qWnpAW3NGSSF2UTU0RWo8STFCN1FKPG15ISJYbWNETkEpYF1YeyZ9VmVmbjxKU1EsOz1QLE1eVjsrWzVqK0ZfPVh2YUNHZHw7JDNDQ3VI'@; put 'bFUqP2UodE9ZP3gyVCsyN1A/bWxoaTRTL2p2YkgrST0lYSxHcyI/RSxidmsjOWQmR1Q8RHA5c2pkUXsiW154YmVwc0BZdlQ4TWR1VVF2dmluRkklOVk/WHd5JCV6I2ArNWdRRG5gNC50Y09iYCJoOkdBLGddO1AmIXdmM0olOn4jbmgmaiVtelZBN2MsaVopZDt9N29ALHpKZEM6Rn5OejpTQ1B6'@; put 'UTk0aTR+ZTQpZVssOklbN3J5OixQYWk/U0tqfE45TXNWYkBKPyhZZ1dBNDZgXWtgMytkQCZpWyNgTE99cDVbRkkhVy5uXkArO3phaXd7Yl1gUnVnW2wuQUFAWzFeazc6JUsxZy9HO3lQYkRdL1BGQFJDLDJzKjNjfk0kVFVaJkQvV0VkcmxwLyU+e1ZyJHdnQ2RCbGRvLDVeWHZ3YDYjbjUzT19T'@; put 'Izg0JWRUOURnW15HPHtJa1tWT1s9VSYlZEJdNlE4cWUucjAvMURAbiojIzFKT3FZWXRiak9wRDRKbFtIXV45X1cxd1VCe1BoMWZOYSJZPz4saSttPnNmR09pUCsmOnFxdXluTFI5ISM0clVTVSxuZyVUOCE0TEkmWlA/LzFGL0JoSHEleCxXQGNpIUkmVDxxSGI/NDhbcEp6MD5qeUhIMXhSVmgs'@; put 'SXgwWlJBIU0sME1CcXx3PXs1MjFQPTsxcShEaWhtZHsqT0FEdW1IP2x4aSQzO1Q1SUdyWysoYWkydnFZcWpJIWhuXSU9eV5iayxQVVplZCMxUzI8Uy5iV34/W3FMZlBsdUVHJE4iPTR0KFBjTkRIYCRSS1VOb0h5ejRSR0RWejZvYVdxWG48KWZ5bUgwPlgkI1AvVnZ2aEQsaiVkQCFdMihXcy8y'@; put 'PntNO3t3WDFzbikiO3YvMTdsOTEobj1QaUJoSG9MUyV1dlFmdX5Te316JltnSD89ZEspblpeJipbKXJ8dmtrRCFVY0VsMnRJbyU3cSJAUj14YzFSZiljZWYydVV9bGQkKChlSUA3c1lMR1ddeGpXemwqM3xALC9bLGZXZ0MyY1tIUyJtcyt+RU4mZTxKeU1ZKFU5IjooJXc0S05MYTYzYHZFZG1u'@; put 'N2w6JTVOVDkmZ1d4WEJAcHRUcz5tdzldOGk3UT5nSjhyX0xrZF14NzVIVFoseWhBLENMK3hkXnxwe3FKezIpRmJMSUdlJjApbHd5bnkpIm1CWkdLZ1k4a119UGZNbjBJQ0spaGZtNGUuNzZycSg2RmcyeSxUdCYyW1J2VjZGaHs3OXxHKjhLJWV3RDAscXt4dltMTT07YiZlQVslckA6QEc9cGRv'@; put 'OSQkLEl7UzFJTitdS0RxVUJEU30yb19zPFVNSDMkQyFhSm9KL1ljOGJ8NXp7T3lsaWEsIilnbXYxeCtBVk5ZXX4yNyQiLkQ8MitJYjo3aVRzWExnOzIjWkQjUCV+Mm1iTlc/cnkxdkFMQyouX3R7aUw+Ukw3bDttMV0/JkA5X1JfaDMkPnB2e31qYXpwe0k4ZGckJS4qeCVuO2xdaFpmQShbPUJI'@; put 'NVZfdCsjd1R+T3F7PExaN1tgK2xWOmF2VFJ1LyMlK2lTMDlMOjYvKkQ8VGtbZjU3MmpCVy5IJUwwZD8zLmRVdDpeY3x1R1hfaVNLb25TLFQpP1NMbWhvYChGNjBYWkpoPXBII006Yjt+dXBwXkkpcG89aXxtYVlpUUpELGBTPFQkeT5QZ1NDTyNdPHY1NGNWPHc7dUVweHVUZT0mW00lZVBLMmlv'@; put 'MG49OmQmc2RNVEVIIWNOe0gjeTdeeUU8YzJuNXl8O0lDO3FuUlFRfitHTTAkYUZ6UVZbJGJwKGxvYVlqaF8yMiRxS2FZaHw5eUt5a3smd01CR3hkfk9idi9HUiFfZiFTY0hCazNvYW9gbHssVGhiUmBRYDxVLGM4SlFdVGlzNDlyaGhAPztPLCsmWUBgNiNTcVdLI1s5NGthYmo1fndqL3R4WV1o'@; put 'KF9eNWJBaklzJk5TaCtERGE6bX5xWW1dTU5wW1hqRC9reWgjO0JMU3pGTipHTTYvei8jPD17WyQ4bH1ZOldUMTNNQDREaiRvbWNOWmQma1dQVTE+P2M0YyI+ZCRhMD85Sj44NShYU0l2QXUubXNUUlU4dUFKUzpBQGNqY3h9OS5pb21wfm4qKnhsIyFuWl9FOWNaQUI/WDU7TW1UUlAlTyRwJiRv'@; put 'Xy9bTGxoPVdTRz1EN21wJXRUIVdZdzFdRWxxck0wZ1kmUzI5SV5FIXhWUC5NPShXbUVDLklqSX5EPmZefVsoSjJva1Vte1ojNGY1QD9DZzorMmBZNnEmPyU7e3Z5YHtHP0YlPkFTOl9GYVkjNWA5T2BROyppYmJoY2BqW3M4fEAmUSglUWt+bkB4fCwxOSUsNH1kW0xJWThzakNgRGdQbEpBZ1tZ'@; put 'UTQrbW00Ynw8fVMkbWY8SUVXTkMoSUxgUnklNk0sfiwlLkIoKXJKXXoodTRJJWM8UCU/ZENfVCZ4dX02RChGUyxXcCRiZUJqSmVweCE0M25EYUwuPUp6U1QpQHxZKW5pPj4iM0t3VFppPHZ1Xk5nYShQRGJVNlkiPVZafG1ue204fVJWP3w5Xl9ETUcsNk4sbDRCQU5Hdj8rKUtIKjdjaVV7Y1Jw'@; put 'MHFXe01NdyhQK147I1R8elY+MUh6fDRgTXlvIjZrK2BORSk8b2dEVn44OS8rTVIyV0Y+JTttWkkkODxRTW9RMnk5SCwiTE9QXituTCJUTGNlPWImWV8pVzxTUWQ/Lm91KHRuViFKMEpTcD98NmZMSzJuIjoxUEB9Km48Ynhoc3dhW3JyflVDay8+eHplXm44KF49aG5SeTt4c21EYGsvMj9uKUJC'@; put 'dDpEWFE8WCt2bVhDOmFNcGJ2TV5OSER0eEJudGRyVl1SNUlrI1UselFNQn1BeTdGbnFgS0s5YTIxTjpSQUxqOEBmfj4le0VpPW9jOVNlaURTPGhhYjpLWjZEMiFuSV1ALmleI3lsR0tzNzdRPWciRSw6JlVAU2cvX0NOfixfOVlJViIoXUk2ZkRKcTokfFdYPC8kZmg6KFFLaURKMFdlKSM/Mlor'@; put 'KWU7KG5UImU6JTQjZSVsKFohbUgoYlhSdD9+Kzd1OSk8O0hgU2I3ay97cUQ1emc3ZjBKWzxwVEZ4bUh7Q2l2enl7dm88YCxDOWtQIlB5OGpIUT58KztsPTgrSUo5Uy9HSCVEP0B9NWhddHRWTVk1cTw9Y0dpYGk3fmUyT3d2UUQ7W1YxdixPPUYyMmpRN2poQk41MnB4W31WM34uLGEldDpqOnwv'@; put 'XXMqJClGTHQ7VmIvcHp6NjkwdVdXMDFrVyoob2luKGlCdlo4fWQ/Tjx7JllWV3tDTjV5IzZnfHErWEdFIW5yfnJlNXVUNEE9Tm8iOyh8e1RdTnBANl06cz9GQ2lgMGo+dSZxTEdSIUtoLGBPe09iSFRrdkRse0J0NCk+LEpaekA8cm44d2JDfjheTS5eQH5oKUg6aUZPa0RMT0lWa1ZdVE8kQyFl'@; put 'LkkuVDx2KWVlV1ByJFYsVGlfdWJyK1ZCS1BPMkZ5TXs1X1hoTnssaCJOdEM4Q2wsP0s+OjtQISQwRzEuNHZyUDxPSCspfjRiSkVxLmI7WkNYb04iIkNOTiwydz8uMCtMNzdOQkdaaSl+VFE+W054XWpQfCEkYzhsPDxMUzIjXlhxSTd0PGpERGA1Q01KSF1XKXEyWkNJcGtVL3dbQSl8I24+Vz5N'@; put 'OFRwMUVeQiQ3X3dSO1ZEQC9WRUlIQ3xSI0I+KktNUz9PeXhReFMoTTkxfGFAJChibFcqNXZ0KEI+R10lfkVBfWJlPk9Wc3cwdzpJOm9UdXoiV0R4SmBzaUUhP1dQK0R2Wj42RWI3KHxjQ3x3ZEZDW1tiWV9ITyxqT2tvdE9xdTFYWyJpZSVkRzsydT5reitxbEJvVlI+WW1fT1k4Q0xJKGUxM0Um'@; put 'YDImP24vNTVpOitdUllnSWdlbGtNb2FnVHd+a1tzP0wyNm9+clhibzE/I3VhSyZvXkt5Lkh6VkNQdXB3VXxiZSE+T0hHL3BveCRlZGNBJVZoZitfOCokKztddldRIiF0ZExJampUVHFYWktiViUpSTxIdUJaaHl+fHVLX2tTZUVmUDEwSnZYc1deZElnfFhUflMmVCxKJH4qRnBKOTFQU0xdREwq'@; put 'WzgsMGYlRWZlNmZ1enRRdyw0QkJBKjtyRGNaMVE1QCI+SCQ8JGdVeldUdExNOlQ2YiJzKWJfM0VTb3dkVDY8X3IyQFlyfCJwe1c4OG4qOVclZCxbYCYxez1KZjRuUlVkI3EicjdLbUxyKyomYEBTKjcqWHgqdSF0WGhtLjdGUnR8fkxEJldvcEAue0UwNigqXzBOKThYb1hWXyQ8dz1AS3E7Wml1'@; put 'dyZsPnBTNj84KH43KkZJeSw8Vm1qPzIiV3h0dl8+Ikk+JlUuVV56WmsoUThFbzB2TnJkey5yJStPLFtBND40XyQ6MWddVldXeWlJXj1rY2YoP2JuNFI3TXwpdX5hRExrTDF3THhqRz1BWkhBQX5AJTVmPD5ab3xhd1Muazw5Qlc7XncvJG5jTzRNX08zaUp8X148K01xdUYhY3djMTQ5JCMuQHxt'@; put 'SW51dmxTYCFOSjxoY2tRbmZAbmYpPSVaaVswVyk2PCNdSFRWMSxwW08wVG9KXmlPeXtYdzpJJCUxIX16QyZfWSRQfiV8Pk5PXjNBUWBxQTl1JVFVLGNoQ0gkUmVAO2k0LEB9ME5jWmJjcWtoXlAlKDBvWTk2U0ZLXTF7MFh6VFIlKXROW3ZNViljQUB1dXgmeFdRZmU1JE14b2FIPUhhcS9eNkIl'@; put 'V2l3W3FjJnU1Xz8pUE1TRyl6TiUmITpgcGg+WDhUeXlffEU4NEZnYHZ4Snd1LmEkWz9ATnw7bl4xVG8rflRAS2R4aiE8QygzPSM6L08kOEJZO2IrUUk8WzhlNVdPRFcwdzdTeFVyNHpbJWtaMU56YHghZjFhNTNHVEtqLGlQTSRvLD87U2JfQj5Sb1JKQDA+XzpXdUc6a3l9TlEsSmMwPVNNWSZ3'@; put 'Z1sxRy54ZU1FbEJQXVcxfGBbWz9VXj9CT1FCfHU1UHUzNm9PKkhiI2F4OmB9TU5lN1A3aENje01IaEZzcX53Sk00IntPYX5iLE9SITJaRX5xKUwrTX01dXxzRjt0XnB0RVVDPztYKThwOz9ISzcmeSxpTiRnN0IqVmFGN3d6OGRfV2BNXldBUSYybU1LV2FZVF4hKDIsLHR6Z1toOUREU1dUQzdX'@; put 'dGhMVjZRN2kmKiZLK0VHKGcjYl1zYkxCXiZCWjRDPDlNUnxvPlgpT3QrMGhFXXQ6MUtvXShvVVkofGA4LDtxeywmczxDVFp2MSVlS1tWJDIyc10sMGNCakRfLEMqSClnen5TWHJEV0RBY3xLPVt7b2FxUjR6YWI/UF1xIktkZ3Y9P0l3OVRxKEVXSTo8QjJUPz4sVT5xNjd0RGUmW142R1tCY1Fh'@; put 'USErUmtDZzBhSkpXKkNQfDh6byo2MGNae0x5cVBXOyR2bEtbfXlUeXdNeWIqdEI2blN8RTYvWVpMeHs5KyQrNDwzWVpNczxCPEk3XXk4KyhIYDlQT1t7Qy8xIihXbmtlXnJdYERvJkZ8WDZPVyZPOytgQ3YiPFZhOSY4SV0mUkxLcD5ZUC9YVy42VyZVYGcjVEpPTjZaUlRQMUpAT1ImTDd8bTQh'@; put 'b2NbZGN0eFEjKEdZWFQyVVouUyxCUlNgUGZsYHhmcmgiZD1XQXBeNlE2WE8rKCt2O2xKOSZDQz9iTjYuV01wLkBEVkd8UyNxa3kzeipzTFdbZ2xNIX1tQ1FPXk1pUFs2SFF7RVhueGtrJFk9XWxFY1JeczlHaGg0Zmo0JU81PCxCV1FII1EwUHA9UVtvMENkKHxqUlZnKHY1KG04PGN1WCJRNEV1'@; put 'JUpwM3NMaHE2UH0oQUFJdF1eejYzdVtLUE90XS8+ciREfU1ffFo6SE55KTF0ND9KRz50QDxEcz4sUmchPjBdQ3dxMl0jLFpqLHEpQSFpTT0qU1QycCNUbFspW1tHIVk+Q156KH5ERXhyYn4zOGohfTlJcW1sfVpaTGVlfXRZNTp+b1Mre3VfYzYuN1AqPW4oYGJ6O3wjRDFIQWFEP308dkRSWXM3'@; put 'OmpaeiVFcz5+Z0deV2xKYTBlYCFaWm9SfD8lRXN7V2kvXVo+L0MmVTNIRmFpfjs6ZG1sciRSIkNwJG5sciR2d11jYyxFYEolSWFNTU5tUUBkVS9zK0NjZXM1XW01fGhkUiwodWlMJHI6PSMjRnhaMkpJd2RPP1tLflZwaTVERTYrX0lMQkh3cVdhTS9obnxSVVJsfldfRSlNNCsiRjE5RTZ0MU4p'@; put 'S0VsKzwxeyQiSVQyYmpVZiJpUFYqTDM4S04heUVSMnBuWyNIa14iUDwpfElVWW58L2NmKGw9JVtQIV9sX1VYTUN+cXEyPGs3cXEoPmQpTDVRRVYheENnQnc4YjZoKStVaH0xaHQrL3A3bHpNe2RmMCVidGk4Y1lfM14mOmUvbkhvJG1QN1BpKHg6NGkqclBfcC5rQytYMH5icjIkI2pTR1o7bSo9'@; put 'fCV7SDlyTV93N05NNFUlRyhwLGg3QjVlRFVHXlhJbnU/I3trYTVJJWhnRnFVMFhXK3kmL1JnYmlhbFZadWN5USR8YTchMEZHKlB2Zno/PVFoPGlpOV5nWH0qVThEaVdValsjJkUmd3Q1JHlydWdjWVRFSjF6eE1zTz9ERElQXnoxMGlEJFd3UTdAZE1WfHhodXhFazFkNVgqOHdTZF02ZXpWZlcl'@; put 'NlBIdFtGXVtXVyU7N282SDgzb2hueE1ZVE5sMWkrR3lucyxXKF81b3woOmpDaT5HNWh2Qj1+USsofVQkLnA+eix8dCtRS1JLK0lYTGY8X19SfHI+WkRAeDV1XVA0RyxZQClFIjp8ZU9XYXZfPW1COUNGezFJW1AhWlhBciUwSmNNVHJ1YiVDMlhGQy5SY3NuTUxqYiY/dD5EalZETTZ2U11XeDh+'@; put 'd2QyLFJtUkBTS35gU1RpMG5OPF1ddHl9QkNWQnpJRFRCU29VJiZacV1JVkhiVC84dmc1TDt5bm1xKH5KPWFVUUFue25YZ0dsRDZfR2JuZGc5eyxmayIoRWNwckEsWkpqUy44UT1TRkchd1lAN1JMWl5aQ0Q7NC5EPzBOUHM2JTQwXTJqS29PUCVkPTlGbCtgJF9TWGBQKX5jekE0a1ZtfjBZfUVw'@; put 'fS59e0QlUV8rNnJpTV9uKVg8WjltOF8lZk9xXWVjRzxuUD4weWRSZmJ9MjhoWyhEcnpuWTB8WVZETTxaX2VTK31uOWo8c1VeIVpkeDl4Q0lke3dDSS8vLmAyb2AlOXc8O0llSyZ3NGghfTJeU2FwfFdiNyVfR0E/b2IhYUokQi46ZTN7TiF5JkBsTUBUYT9ENzhIaXlCc0t5a1dCZF9tcDVfYjl+'@; put 'STsoTUAiblNNTFhgS2U1Rj8qbihNNEooXXp1L244JCNobHRhJW8lODd2TjkvTX5HS2d5RDxlUkBuQChyM25VQ0F4KyYlSG1zUCg2KzJoZTleMWpOQnVbInE2YlZqSXtIOiJ+WkJMNixQW2RfbEJOYWUqc2gqQUw0dGA8e28lMnRGc3RNcThpYjNKQjlOSUNLTXpDMTdAb2RQJUV3Pj0iZGlpfF8/'@; put 'NHAvbDVjeHImTlV8OCojbSxec0YqcDxjLHRTKVh0IkxnantlS2FyeD9sP3ZPKTkuNUsiXWVbRGFPT1cwQXxdLGdtTnteUlQvb3dIT2V+Qi9xPUx8YX1dWVdFTUldZG10M0E/ZixGVz5FTGIpcSEmK2tSZ3o5fTNNOm03MV45WnAjVCJdKj1dMzVxZk94YkhAaks7UTNXfSx0ZTNQQHpTWk5YPEt5'@; put 'd2NrdTJUUmxpRmNjL1klWEBeTCFlW2g1S1U4T0drT1FuJC52cnFdMCxLWTRzSipDVUhLYjxmR3NxV1hrYkEudU9EQldTO2pPeHEoR0BHJGdtKWx0Ql8kJH59fX1UVWRvan1vKSFZNEMxM3JZI2d+PGQxVXFGdzNoMXJuMiZodEFiXVZMPz9QfjgwZTg6KnVCUFo5LGQ6JHM/fCYyUFYsRXQvJihl'@; put 'QT4ibSYhLmFTWSJdJDpxYn5xXlZkTWtXeVtRRX5HdDBSQXZDXzI7KUt7NTx2dzovUHpFSDAmc1F2Okw8dFZtK0EzOy9RWG9ieElEQ31bdUxFRnA0SUlSUC5SUWRJYXcufi4yZUBjPyFeZ3BJMVB8MStaTXslSTFYKy5JcCFGdFp0Ql1LSlF8KkRNQnBkJWc1PnhJWUp7ZiV0V21fcGNMcUg3aldS'@; put 'dHt5KEY0LFY9JS53JHkmREtPYEVEJls4VnNab1ZAYTQse3Ijb0YvSX1Uemg+fDYoP2JjJnZgc2VTP20xfTMlKy9EJlpxQVsyeWczMjghcVUyL11NNDMsQGQuI3BVOHpuU2duIVFMdShLUW59QzYzbUM1U0FITTEoaTFxSjE8SSR5UTdoQ0k5Vj9tYWt1YmN9dSJlPWwiREhfWUdUP2tVOyhXSmRL'@; put 'VlJoaSVqaHNzVUA5a0xLV0VCdjVqP1RCQVRTeVJXfmVNK3w8fiteYVciNFhyPD9RMk0uenE7c3plfG5gQWVrdVI1XXZ2VzlBa2U5WXx+PHJ8TTZKbiVbXWE8MEc7cXs1SVQjcEhiaylBaVEpSSw5ZGZ7R3xJXlcmSH15WiwsQyRIcCN7WjJfKC5+SygiNXUqXWoiTmt9WlpIejp6VEE2JjpAfH09'@; put 'Y0VVdjU3T159Mz10UiEvbkxFUWkpWmFYPXZyPHs7ZklOZltiaDlHRz9DM055dCUvbUtDM0slPGV9e2dMRWB9QypyTyxCPjAlNzpXOHQ6WzpnZHlOcHtQPklPe0l7U1VVKzFLaisrRDA5WyExPSI4VSVQZmUsNlkoeEZPUzo+JV1YZW9VWUs3Jl57Sm0yMTZvR0FTXlI+UHJDbilxUTx1dVB3TiRH'@; put 'SXlFRC5yeHEiW3dKe14jTG8uTkpYUCVIekh5UkNmMGR2PyFYL001ZzJHZVk0XjRdT3k9M3p0ZEZRSFIjLEpvbGR6e2ZTbkdfdFVaeT4vUEY2TG9keDMqc3tGQFsmRUQkN29YJUZwOUVtJjQ6ZC5TR3U5cTlJJE5KYEJbMj4lJFFxR3FfVUhTczlFdn1qYWJCeCJyVWVMbSFHNl1AbGB5UkZfRjgm'@; put 'WmV0XWBXQEJ+azxsTj8rfDlpOEU8KXRMWSxvKypKbjNkSjJhLzElUzpzSXZ2dmpUSlRqcCx0cGdSOS8jSk1zJTchSXc5a0Emc3pEQjF+K305THt3bllFOis4TmkoUXE0IXswNT40MTRzLEAzdTszOkBXOT9AWFQ7O0oyLjM8OXxHUXFYW0E6Lzx1KVohb3ZCJnxnR3lUbF02TSJxQXtrMV9fNXFJ'@; put 'Y05RNWd1eSYzQTtDTlo3Yl1ZTSNXdUt8ZSRIMHN3L1laI2x1bnNST29uP1RGR29OSE5FR0diVVIwezZ+TDNfaH5jfl5waSx1RT1ifUBaISk8XXxLY2tuITt2LmNLPjUrXlp3VlQ2QXNPY2VWZF89Wld2aTkpQERKPm0oMUIsOCpzMVllJTlnS3IlYkpdSk1rbVNQUVA8L180c1JjdlhfYGdAVkQ3'@; put 'VnZhc0lOeXFtP0ldPGZMLDA/RCJKKG5WT34sPkRgTTZYdSV1cW1pZ3o/XkI4ITRMZUU8RkJgfWtge2pKODIhOUA4aVdRJUh2OV1NbipXa3BreSZIQXxvXUhtSSQ/ekhyW3d9VGV5MVtJYHBOWCZrJGpwVz95OW0rZl0pRX0rVn17OTFyNChfZEs9c2U5YzNecTZgK3VeO3J2b2IjUkVVMi96RFpM'@; put 'V0hZPTshalcqW1ZiWHMvQyEjdGtTMX5MKCowbmgke3R3RDp4XzNtdE46dkRaRCJddygpQ1syIShncytRakV+PUlsOEQwc1ZYOjUpcmpEUD5rU1RYM3pkTSR9dSN9JEw+JFhmTGR8KmE6SW49Tk5vYXh3I2FSUTpkZU94KnNbXnNQMCF5RSttN1csZHA4bi82YjlOcHBzMiJSQkFoXj5GXVU6RTVo'@; put 'TDhfQ113d08sXikzQldbOz0zQ3IlTVlwVFFYTk1rUSZSanwqNl5SZiRxNHd3cjFzVjUjZ2YyTH1SOm9wdzZUfWUuQ0E/W21jfV5kNiVwL2tzUCVUI2tJcSMqPlREZj5oalRfek95eixmSURGWihQOFN7fDl9N2BVTjhXbWAzcU4xJGx5cERHPCYlX0xLP1h+UGdwc2VteXVSUVpvUzlOflF8YkBu'@; put 'RHJ1Q2peemYlUkhgL1NpLHMyY29FODklNyYwUDleW2dgYElxcyVaMWJqe2g/JkAxc3NpV2RnbmFzXyhjQzhaV0R6UTluKm5WSD1PU0EjaEZwKiFJcGxePGF8MS4lNWVzbShucmNDPkBjMTFJcSx4XjcxO0ZXbntTRG97NFReUEMsPF5mdDdjUCFCWFNyW341YyEjVn0laSY2IkBxbyw3OSVlfmBJ'@; put 'Y1J3NUdTKFc6dWM4YX5hVD0uVSxmQiZpcGU2Yjp0Kjl4P3tiUk9ndWd1WUsrZzomZUJbXzQpcnVDRVE8ZjVodCxoYWhUYUVGQ0hRS2FTblEqZndURTBhISwjMVgkRkpHV3hbbnEzXV1dZngjSVtuMmldVk5hT2FZbChbQ05Ya0clTD80VD5MZHEjYV9AL19KbWIySUteJEw/SWlsdmNwb2E/P25z'@; put 'NDZuc2lRRT8zaDhXbUd8LFNkUDJze2RrXSpWI195YjZVJSJEPFA3PC9zRkN5JWtnRU1SKmZrfit6THdCRjxdNyh0cjhpen4mNiJKVVNHY0lAMDY4R0Z7akpHPTtdL042YCYwRGR3ZTVvX2dnWTAweiJTJTRJUnF3QEBAd0M2Y21LZiZKb29UblB6SVplQDp3O29rZ2BIRjU4IUJLOmgob0RHWWFO'@; put 'RGh1Kmc4Rz5yWE9DVTJdJUJKP1lCWXBjWURQLmYxK0NVbk9dbFtFTVN9OThbSFB3KHAvcHohOGZlanRbNCNTUnBwYj0wZElAREkhbT57VHxyOyxiXVtrdUYoLDFFWEIjcCI7djhten5lLHFdVzhzJHg2KzhDeF1AQC5vLEZja0FVNS9GS3lQXUlXejJ8XjNGVE9kOD1pcz1ZSG0jNyVdN3ghcVhE'@; put 'X3ghcUNnJTl8VjNaaVdfdldWdSU9eSIkazI/UHcoRnQ0SzhUaE5pNkhBdk1ZUy9RO21wVD0mRjMjdV1ndWtZVWlQWjhQQURaO2pMTnIxIWYhTEszVG9RcWFOdl9SWW9ve3FJfXU3PToiVzFNKSFgKkFsYXxWfStne3Y7X2QmRDYqYzwyXiVsek8xdzErbkJ0WEdvUF5wX0wjKj0mXTBPNyI4PGRL'@; put 'RzZ9Y3B8R0Q+bltkXVRVeVt7ZnpeamM+W3klMFBOM2wsN2VVS3M5QX5eWl0sKjZiRGl8bUtrSU44flpLZV1kPShUUjlHZDs+JjFJc2VCSzRtbVg9S0JVeHA5S3drUyE2IiJNNCwmemAhJHF8cnNVZzk3dFhHMVkjLz5leT1tJnQ4Z2VtM1hgMj1mVj8hcnhbOjFvbVUiTGolckNWTkcpJXMrSkY8'@; put 'dmNnfGVZY2tUYz9eYklmVn5QZWpNbWZ1PVlMOCVPOVo7Qy5bYFNaUXMmXmhwI3ksY19zfHUxMXVGKUcsajxuOndifXhab18yTn1MODV0cXBYZ00lc2c7Kj9pVmw0M3c6eW5Ycnd4NFFGe11FfHtndXtFYSY7R3ZfLClfNmF+bDo3OkA/KTpdP1teaDIqUDQsJXt2LypQRzFtXlR6fi5ldXkpUStJ'@; put 'bnwuX207KmI6SmIkUk9dNXouO24sYD9UMiNlI2ZkQCRaVXBnMz46NXFDYnU7LG1QTT06VjNjOk03OylOXXt1Ols0Z1lLPXJQIW9AT10jajs5O1pZVUJPZFg0UT43O3FoW1RwMWx+b1pVXU80REN5IWlQTmErYmRpOXdjRn5sJTpXLzVJJlVZb29SfkN0TikzQXc1eiE0Qm9vfERRR0YoOn1OI291'@; put 'd3ZdX206aE0/fVpeO2A1byE7RURiZyFLNnp4JFs/fjpZLkBtVSN8MUpmR2U6P1ByUEZJNXFIJE0pOz5VaDliKTE7WTlgL1Q7RUx5fkliLlBfYSRSUWY/P0tTYkphdk8xVkNHRVEyTDcxdTt3dVZjcyVPJXgrM0tnODdLOkMwJXs6ZnxfRktnV1pRUnc1VVVVRig/cEghPWRbd1hkU05WL2FkdkdG'@; put 'SFBtV2ZLVT4rXT9nL05pTnQ2L1l5QnhSRyIkIjJpcz5zL3RIL1FoaEpFeEEvPjo6W1pbOGdUMThgQUxXazxTNyovMX5QQSUiMllbUDNAOmRZcjc7VyFOVDg2TVA4K3dDZUYhMH5WY1s2ZU51cmQrTGhIfnltOjgzcG9pT1RjKDlCeVsqS0Q7S0hdRz07WmVZRH0yWmV3dip3aVd5emoxUkp8bWte'@; put 'THtHZXB6M1h8fCJNcTlFfDpLaTs4SjNXPyl9eXRbVyVKbiJIO2kwOGYkK01bMXR6PnA6OWZ5MHY2PGlaUVp1Vms6aU5GKz9lfkk3SHwhZjVxez8kQzQvcHNWMGFdZ2R5amBPe2hWNypjOGpbKkBwSTtpRCxyeyQpTip7NVFAeCluZlUuQSZsUmpsbS5lTU0lc3coaWtAeSlbJWdoV1lALkEmNTEv'@; put 'LFppJGFwZSkxbE4/Z08hY3E8TEReXmZHZTR2TTo8I0dCOUJGTjlGX0V5QDhDbHJlQkxFTVIhWXk4TGZ8THpLRTBkPCJCfEh0QGhQOj5sT3h6JnEiTiMuLH1TenF6UEw8TX1YLDQvKVc7VHs0cHc3S1ZsTHVMX01VeFh9SFdvbGBhRFAqXlchKUpVNmkmNHFoZVczX25Nayp+cHxzOUs8bV9VO2th'@; put 'XT0qbVM7WilpeFF6Y0hBJl9GOlFCWDZtOWFBOjNnN1BoVjJhOFdbZl80MjZWJFAxVWFZS3FUdCFKOnFbUmpUcS9AfkB5Z2xgc282VzgxPW13ZU10Y25xeD5mIUxeO148PTNsYDpEe1QvUGl5V2YufDR8aXE+d285cXAmJUw/KG0sI2dWUXJ9ekJAOHF9eiZWfUNmbiRQYntfKjNpbj5rYk1hN2E5'@; put 'eixSKCU+Z0JfNF1bNV92PCxjUnJxZWxAYUNqWXorUiZZXl1jJjE5RytmcCJfYm9JZCllTGBlOVUxJDgkS3pGRHUvWTo7YjtvckNDPEA3cmMsRzBUfT5WKkZgciUyKUl2WW49QXEzKUJqWC9uW2JAYUEsSCVuPDFMS2B9MjBRZlNYZ0YpLF9vYDxNY1EoXlsrMDpIdCVMRVVMV2lSJT5nJWY5QUp8'@; put 'eiVaNGJYZHwmM2c9OHJjPT5gZDFVVSRWdWgjMDJCOTsiblUrRlsxeDh+Q2s3IigkRkV8SjpLYEZjbG9vJkQjOzlpMXtKT3p7NFIkQ1ZpQH1sPUJsUXldVWh6e3tSdWpgdnpqRz52S05pe3Q6dD1lPnI0Rz8+NHI0dD9vbHo/T2pmXkRKOTwkdCp2MSxvV3hOWFcuKV9Xan1UY3MvK1dzUiU9cFRb'@; put 'Vy9Lc29ibCY9dkI1RXJyTWBTL2hFPl04OVlyTVR+OnImbDpFTHZCRkhmUnNlY29HZU9eLj88S35IPV1vOWwlXUJJRUJVNVVkaCJ6PjpETEk/WWU+KXUxIWF2KXVuYGRDSUF9UyRUSENYXjtIQ1E3M2h0dV1AXmJNWmZGdltnMHQ5KX13djwkc3dJXXl8JklpNEo/SjBSOHxQP3IidkclYzwlfFJ8'@; put 'aGUuQCZGcFB0RW9ZPHBodHs/Y2Q0X1QpZ0Z7YDklPnVbfTBzQEQ1aCRLQ293KTNbKX5LL2RsVSNxd0hPekQjfU9QViFhbmAkQ15uISV9OUxCbHBDdV9BL28qT3c1PWxCZkNIPVNoQD9YY11zQi9TcEdSRVssaGc2Wj89LnlENCNrUTpAbF1uaHIvbSsqfXVKZlZbIVpyQHw9Zy5DYF1mXmVvaS9I'@; put 'Q0o9QXpkSm07WVdrdWF+YSY+Z2IxVWhQUlcxfjNZJEk8TSRDQkxMYVtgLjYiRH5hNCw0VVZYOFZ7QF1HZVl0cXNVX044VmBRQ0JRcmhMUz9OWzo2MFBsXXJ4IyxDMl1EPE09MVt9OCtVPUlGZH4zJTJJZmZ0VHgzRT1MVi9eKXhQOzxfbm9HRj1yPmR0cyQxcG8sP1opOCRSPCNSKWpzJWhlPjEw'@; put 'KDZ+aHU0ezRjP3BURDYoLGJRRiZaajEsQV48RFB+bWBvQGpZIjdofC8qbCVsIjovWEpDVDklTFNsVXU1MjtEYSsvJHBBUXdJQTk7b0piWmZ2SUNaPTlhYzUoXWVsbWNTVSxrfX54Yi92OltfcT46YzY0X3NCXiMhXnFxWGBXMFpxUHw3REhbOz9vaUJoTTovJlhaNGdpL0lpJlB2YDc5PGg4aC4m'@; put 'RyE9VlUvPEM5Nms5KzhnXTFVK3N+XiszOXM8WzNWYmlaPHltPkQoMWY0e3FFVnciaTY4PGAvUz17OlVvRSNBJntANnMmVDNxJlRMXS55RHB1flFBTT1QRjBjZnVOMGQ9TnVCdUZkKX1FMUMvMlJsSVgyP1llMT9ZZVA5N1t6UlVbOFZSY3kiJW9FPjQ8SWFVKG4me3VSY2RbejdVclFAMU1RJGRo'@; put 'XmJ5ZGY0YCI0JkU8OHNHLCo3WSxudlNnbEZlc3h3RWpEUHp2Pm51JmM2Y1NTKFdTJFAjW1NwcShMOWBDenVeOHFOUExaZDBBeDpOQFl0WVZHYy5UJWY2JndJbEAqWEEpLz88XWhiaDEsdmxWdVVrZyNpOyo2PzN2VHglOEtoZjQwPXArXnJ7Wl5FOzl3VkNlNlRpblp2YTRnVWxWRTA3b0shV3E4'@; put 'LDhLTXNNfE9Fem5qUi9vPXxWSncjWDUuT1UhOXxOTlNnKCtvczx2OG84ZEpOO0BIUHEwSkpRYX1dJTdEOSZTezZeYm5gRUtYTmYpQGU7Wz5lOksseSRMP143KTZ3bVgrdUdiKGwvSEQjNiYmKklPWjJlKHBodC5+N2ErIWlFXjpkQjtsZnlTVmV0e2Erb29acE5EOiE5ZElqPExPM1lwa2ZOT2om'@; put 'aytmZDIsNnVvQEFRTVt6dzA2MlU3fFpZQCgzZlZeMHB4bDRuOjN3dz1dc051Q156cXY3YHV4NTNPKXxjZW1GTyNdXU9lISNNQnJgKmI1YG12NDdmQmpeIm5gW1VROF5lKGt3VXRSTyFadzNpbTNLe1pZbEFbQExGdzh9aSohc3lFZTQ2clRSaXghMD4peyk7LyJGO0taSzs/Zng3YU07bzN9ezxG'@; put 'ZUJxIXoya1phKXBHLGNuJlNLUH52aXxgVlEzWDhkMnlbajs0VEM4MlRRc2FoeyJzeTsza0A5LE02ZCN3KC5kZTR4W2JPTShKRmJ+SX5NOHVlNiZidEhNdEl8dF1CLzJrTyRuSGZnZkdCS0siaTpLKUlLZDRQMmteWkxDe2BLbUI8Izh2Zl1QajRNS3t3K2Q6RjdNfEhWP245bjxHIX4qUTh6d3Jx'@; put 'TCMpKE5sPkZ8MjdlUTZ5NWAhMy9tc29nXUlmYGwzQCQvUkZQMGQ1ZmFFW3Vpb2FlL3M3QEdOK1pNOCljMkc8MnBDKkRXbkFLKlhqcVg4O2ZlPk1yYXBwM3FDMk9TXjA9JHYiOCtPYjxBckdSdUQ0Xl5OSVRJN0pddWYuKT1BUF14VHRrVjE2dFRgQlIvTjQqJEtHLGw3R2FMQm9bVG9sQStwY24+'@; put 'QEBNPz5vQkk0NnQwc3FReG5xPDpkSjZCJktOX2I+TSVBY3lhKnEydCNkQ0hTQ3s/cnV9aHR3JiVPZ3J+YEhObUZaTHt9OTs/WG5mPEpVYVVeVXAzJjliS3Rra1V0KnZXfUNLVTIsdj10N2kwLjUsI3xUaWhzO259cDtmbVs7ZDl5K1txWH0ubyV6eGhGOmp5RmZpX1E6bkdRb3h0aEwxLzNRMEdS'@; put 'NF8yP3A7VFU5NFBXOjh3cSRDLkRzfTtqXjlrSVZYWlI3WUI3cyQpRFBYUlBULCtEJjJSRUhOTi45MCMlV349PSRmJjFtOzAse0chZ3BUNEJmPSFCPF84JVFNZkViaXVQKEhjKWZIQX0jYmxEdCw/TT10VztXQiIucVM6S1srMVJTK2QqMEV4emBxXnd+aHU0eXQ0Mkp1KnxDJF9pLGldOjRtSHlK'@; put 'dT1bXT1ONU5KR1hLMSxZYlNeYHlxS3hCNSU+dEldNHJjflFkRE5Tc0xwIzhTdmx9Ri9PTTNUNGg1Wi9ESkcyelh6UXBSSmhbaHpwUmZTamFyQl9maDxgM2dhY1RQNC5gW149fWhLUG9DVFooS3cyeEcpJmFDZUZ+NGJxQDR8fUYseUU2a0AuZFBwYHR+SEp7JWhYWllWZillTSR9QksxUkZkcENk'@; put 'IlU6d195U3g5eXFWNkdoKSgzY3BiVGZMQF97LGVaWy9SQ19TZipAWVZSazVJRnJDWEI/SjZLXzQyYmNQVmU5Rl8lK1dMRSUwUDU8PGBoWkRVcjk8IiZEW0ouKkZZfEowfXJARzh+OyYrYEw7eHdQOjowPT5KQytQTE1vY1VAYyg3anl0LzlKT3p3cntQKFZlayRha3JFfCtFcGBrQDpqV2N1ayVS'@; put 'L0BIM2oxJnchNiJOPWFOciwyYjxQNnxjT2x6R09PUVt2LDFhOy4/dWVjLDoySmV+LmsmJWd9Xl4zUUl9QkVdWU0vTmY0WVY6ITl2Wjt6YmZOMjtHUmU0KC5mPigqWmNAb2lXLkk+VChUfEdeWG1paUBKSFt1REY5YSE1JV1NZ009ImdbLnI/Y1tsRDdbMV4iSVkwMVNdJSoqMkpjVEFsKn19Sk0m'@; put 'aX50Xz1EJkJDfk9PRmFrWDxeQ3IyeDhRPUR5RCxvekpRT3M2SU8sWHJ0Wz9wVH5HNEBhRDVzYEY+alE9UmZLSSxaZHM3XUtSPH1rKkgyPWcrLkVdNTU0cDxGPEMwZyk+K1FAO2h5Lyp+aTpSUmkyYmZWQE0iW0koenpCXWwhI35rOk49YkZ5QjxUXTpOPW5Cekdja3c0U1Q9NDFFTG17aUIybS9U'@; put 'dlBbeTJWPE1rN1ImPDY2cE1CU0hVUUo7eF4+OXYxOCtTakx5UjQxfWBIbVM7U3gmLHBdMlV0QDk4RDFKQ0tCTFlme0RZaFhCNTQ0QFAkK008c0QifCpRdUw4R1ZEYm4sQ2ZrdXNyQCMue0w0SilPWzliZCYiZEpzWHJ8WG0kJX1LZmhWa3drQzw7bV1nc3hUQDBtSHA4VzhzOCEiLCt8NVQrd2F4'@; put 'V25wS19nS3ZqbkkkJTpdP189JX5HQE0rUWN1PnU5R0xMSVFzWG0/cilTTHpbYEVNe3NPeWlzY0M6UjwlNzglMDB2QlVpeXl8U2Rhe01zLlE2akVyeHZ3IzhLRDx9cDIsP0M5b01MQClkbk5YLjQyO2BWX0BLUXVMdWZ3NV5LLFBUdUZJPCpZRE9tP31KNzdHeHZFIVA5MDFbV1VpY2h6WCg4TUNX'@; put 'RTdteSFmK1ooVypYZTsmcWY+KnZ7YmREU3gyPUVyVXxuLnBEYntSQS9HMyU3LFhCWCtxNDhzIzRhMEZbb0EwJjkudVE4TTMzbXVYWyltO3p8fXQqfFFIbj5heXp5R2V4TkUwfEA4PEJ2cUBFRl5Qfk5ZQkFUInlKNFgjJkIlRSlyKW1BSil4XUdUVGY5RiJwQ2tfYW14cz5mTUkmTyhjeGdgJS82'@; put 'RkRqc1tHQ2t3KUg8UlFzbGNZPE9LQV5acDxQRU5dVl4vUSNfR0ZGTjFlc2xSUTtXVGBiQipFbn1yPW1VdC9dIWRYOFdtPypUbUk1QiRZLEIxUXtVKz5JYU94elZrX3YoRHUjb21IQkFKeUpDS1BeZDhkOFREMihvYmR0WU0rYjpVYms7VjV8cEtgUS8laFQ1WTR0OzImUUorO0VESDc/K2ddZjRu'@; put 'V1YrK1MsczJReTVENjUyLmREMUhxLHxrOipVKWkseXc6aFAufmVMTDI/d040MSVwaHlVanJ6YyVlWTB9KiFkWTB6QFopbGt3M3x5Qis+QndHZXRSYm1wPzcjTixnYz49MChGWWEkVTwhTVtgYmN5JlZaLFR1MHAvQFdeXTcqdXlAbFE6W0lkZXBhfCM0Ym5XVHdNIXw8PSImJlRtMFhAZ3kjJUB1'@; put 'eDdlNjJ5KUBAMWBEXSw3aTFnKEg1NSN8UD5VdTIpVGx4UkkxMHBUV3xvVSgsNThmbW9geTFJfWRjMG9SQCt6TVIoPyZIfDFyKGBfYytvTkRVVnVDdzg0Q2pHd3xae1QuOj82KXdQRGhHTmwzXU82Rnp9US9VTzNwSHFdfVJ3bExVN20vOmFRNFAuNU1MeTNvbXZ2RHZLS3l8dzh6fGxBVV0wK3Zv'@; put 'VX1dPHc2Pn1GQ0d6ZyY9bXNWUC4rIWRGZEZJVjhRcnFIa3tUeVVlUjNtNj5NOmBCYzdjMlF6TjBeelpbO0c7OklrO01pY21TI2I1ZDlnN2A9WiQ8d0g7WyUsRTMpblIqcTcpQ1NSNSVHWVdENE41WlsqdX56ZmtSSjh4cTR2cypjO3BSYVNvaXlCKV5vVD09eCQpYWovO2I3KW1hSV0qOj1nWTk3'@; put 'Qj46YGQmJlNEMlYoW1JQZElOODwzZT14JkNdZmg1aWNham1rdEs6NiFKW1k2L3NIR14hd143K3R6d3FlIld1R05fX0U6SkZsXlt3PzkhdUJdInp3ZEJhKTo3V1dpSVlXakokL2plYGpgXWp8LiJ4WDZ1ZV5WaFE/YUxVKlEiZFVTanMjX0Q6JH1EUVB1eFldRl1nezV7T0hjPVVlKHFpO1IxZCRn'@; put 'dGtLL0VnNHhoVjcwaH1DcyoiKyZ8bGA4KGJRI3MxeFNrRzA/Z1J9djFZWTNDXUk2dmFubGAwLnZYK3x8S1NhYGVpKGlPQTRkVDttdXc3XW0pL3o/dldubExMSyJiMU9DaiU4MS47IlglNmlzKzsiTzhfUj55SltVYCF9Y0dmOCJia3sxLkxLbHxkfDIyTk13IzREPjsuL2hdR11AW1trUnA5SyUx'@; put 'QU03aUZIN1JiSm1SJDc+O21wWjUxNlAwQXpwTyldVERAQEBAQ0tHIWBUT3pzSEtUTkdlYmxUQEB9d2lzb2VuIksqNXhKVmdzRmN7UFIlMFk4LkQmRDJPeiNlPTE5LHp1QSxKZnJwOUskOzhnVE1+TzpreVpmImBlKlFyWnIwKmhIKnx0Mz0scjNBdk0weTVWUXJIOj5dcCRgI0ApTWNrZnBdUzpP'@; put 'e0dSISVgeVhPRWFYUFlhYUdfMHttRjVLK0JnamNFTV11TntHW3p3Rzh8VnQoX01aaW9XRX5vdztUUl1pI3tnQ3dpanZ+XmFaOGR1YT1wXSQmWXgvWEhxYWk2VndAfmNzc0I5TndCKWN3QXVuVyo1ck1yYXcwTmlOUUI2bjFGNTNGdSNHez5UTF0odVdbU1J3MzJvenkpIyl6bDpraTZnKWlocEd7'@; put 'SCpLXV9GWj5YT0dnRFZwNVpYdj5KPT0qXlBzYXAjelA+dz1adktkY2c2ek1OO1ZHdyZaIUN9eD9MeXxgcGVZOFs3WFgrfjNIQ05sU0RhTVo6ZmRvU21IPEJHXVRFSGp5eXxWNGFpSV1yYzkyIm82b0pyRX4hZippJHwzZSppQn4vZF5vXW9tSXNHdGEjWSFzJk5IcWp2cTNYNjA1WHFLakpyRm1N'@; put 'NigpTT54fHYmPlA9KktdVCFlSm42OyklI1VIZi4vYE9ueC4zTiV9L1VmTzVoLls4PU9fIWV2Pmd9fGBKfUF5VTYwNSg6VkdZWjhSbmE+fXQqRTc9WUJMZjZhYl4hOigxTCZlTl9ALiwhbjd6TUVzNSFXTmt2amx0cSV6QjB+K25vODx+fUdXcHtqWSRaNHZMbncuRjVxM0ZZSVN2XjtXZXJWKTk9'@; put 'OUl9UT10bWFIKkU8JUdeeXh8LkxHYDxWVnJNQFNaJVMrL1FiSzx0Q307b18+aGBoNHtMUlNiQ1RRKmlYSi9ZcjsjbF5LaHFZYzl0KmUkSFFQaWU+QSZhakkpZFREZzBIVSs6Uk5pTkZLankie3A8UV4qNT1vVnsqQE5BYyh+UG5BW1goeDV4eyspcThfOlYpTysxOHJ9U08hUCxhY3IwZmxjPHxV'@; put 'VX0vOGxlUS93TzBsWCtRd1hROHk2VjErWy93UkhGJmxmMEZPIyp8Jn5OUF8xTk9La31UYyw+MEBMPkwrWno4L0kpM1dXd3ptJWY1R2psb3wmXUhsdV5+dT9mPklRK3c7dVgodFF2SFt1O2B+bjZMbVMiJV5ePUlCSFUrWlVdT3ZIa1lfemZWSih1UTwkekMwZzlgUk9DZUN2SHlUcE4hQ3ZAIVYl'@; put 'VjtCLlgjY2Q0eWI8Zy9kJmxZMGk9SzdAcTlZZSghRH1KUHd7W244e1Mhc1E3a0UxPENYJEwhZUxSLlA2cGhIZiUmZHBsSSh6Nk56RW1sJi5RazJvPV5KJUhwZClAK0UvT11xOUEpITd2YDpkTStpWCFsOkRGJkE+UzVMU1RhfGNzezQkTWR7WkxXMkk/TzMmbzB5c0spWEREKX5xTSRZWGBFRnYi'@; put 'Vl5sSX1dQ1h1I2tKZUFoTXs1VlN5XUI4VzNiJkM+XjFCRnRGX3h7fD9xNXlAKC9aPnlkS0Ixam9IdkhGc31ZUzN2WDlNcVswT2Nmbi9KXTQhKVs6UyJbNHxzcyFgOipCSGNJOX1SRlModUI4NjQuQU1kbk1SekZNLEwpNjZVfmpuJUdPdVhQTll7I1d5IkI2PnQscUBFTCowOkh7Jj86Xl5BfWlm'@; put 'TTUxdSxPbmBHQCF7cUVUMyo3UFA9OyozI3gjPUV+WDBRXjsqXzdDVyVuPSo+bzx+VWdyJSNafF9STVBecnFiZkUpNjFkVXN4PFpnakNPR2J1OykjaE04WiN4NCVeN09ocD4jQkc8dCxbVnNTTTF4JHglX0l7XiZnW2FkOjddRiNhPEUjKDJRVW42LlUyYUAxImA1SDRQRThWaSh7U0Z7I1MjXkRC'@; put 'ZTJmZT5oLDxhJk1LTlpSQFclKX0/fW5XPGNralFTYlYyQ0VLQktKdCM2Jl1DeThjUzJ4aSw2JjZaMCNVa2hTdy9VOVZfUGleVX5lYz02dWlFVlRgXj9VSlpua1p3RzVdVy5RO1ckaSplPW8xSF9sZXRROjlRfHc4JSpWIjg+IXcxSFRuRTpHMiRaLjx2a1I7dyhyTSM9VGhyVmZHZTdtQSlySjo9'@; put 'b1E0Lzp4dlBoVDgsNj1DIUJePCNBT0c7MGg/d218NiZ6dkhpQntaIm56dzE7YCs+eClSUCNKczRYVUE3eFM2YmgjJjcrdmBLIzZ0XmcvVmNRbDxQd0AhaSxtaU8/Zj14M3ZZX044d21JYjxkTDdyVUtqSWY5SThsTyEvSWNhXVZ4dUBmOFdNZj4kWGJoeHhvdk5KQG8oLy9wc0dXW0w0XzwpbFAx'@; put 'cGNxL0AiKmVGYCslYG1rUEMkeDVNPm1BOSxgemZIZDB7aUB7d0kzenpAMDwsJGJEUGYwdSE5fTE9SmREUGRSUV85SFpTODJZeWghVnRrdX1SJmopKzwpJXw7ZGJGb1g2aUU4SyNaeEtEZGJsVFZxWHI3PV56W0llTDFWOi9fM1pmYHk1RSJGcnFDMzZhIiwwR253Vz0/Qjl9fTE8bGJyL3dIRD5U'@; put 'UUc4a192YFheMG9veE5oYHdvSjN7KyVXTjhUJUZmOGRAdVhhY1BmYWxldUcvcXYyYlRmM1Q+Z1Z2Ql9iOnJyaEVbZml9MTBoSF57W3M3Ikx9REM4TjE+JGxnRThKW0FpUzVDcE44V0s4YTQxZTYvXXdtNTNOYyl1NiVZV1JpS1JTPy5HIXFWQmJGUG4rfGMkVDZ8P25CTCRmRyNxJiJoYHdvcm1o'@; put 'PDBtWF8/WVUyfSosd0cpMmh8bHFkUFoqO1ksdVJ0VDh6R2U7SStTaWxVaWxxWS9kPSh6US9xbVZpOEo8VDcjVG1RUmxUXWpsMWx1c2BMRlM/XT5PIUJMTU9ITnFmV1kwOHhRZXhrcChaVEVmKUx9RStsQXosMGdDfV43dUgvdGFAIzcyR3YoREBqWX5Gd2I/Nj18eDF+UH5YOnAoUDF4UUtnKXp3'@; put 'MmgydHJgZWNLbURqYns1YkoyV3NsU3MyWkNYRWBObm9iKTRTIyRvYEZQKitFZmoraUR9ZSsjcXkvO0xvNi5dQExLRl1jNitkfXtUNn1zIUNQbSZqeXZ1aCl9PUBaaS8kVmA1Mjo/PWRjd3guUz09dEF8Lzt2e1FdQEB+a1BSQ2UhO34wdWlfcU1UWXlwRTsjTU8mK2BzbnohdmZvUFB2SEtSQCpb'@; put 'YGozYEN7NFgiSVdjSl56InhrMEMzWCE5ZktWWnJvKStJYHYvJnpXSTM7TCoqSiROUFBufHlxKiJhUis+X3x2bXIvZzFeZlZpKVszVVVDd3x3KzFNWz57TklnW29pWjdAQDZ0fSMjUUBySFJjM1YxfmV0LiVsTzhXYV1HRFh8b1JaUCMzL0Y6OT05WT5eLk9eaz9pZk5eVXMjcEM7KFY/WjFufVYx'@; put 'cmlPIXdfRixGZnF4OGpWSntTLDZBNFZVR2VaTUNlSzxqdC8iZX1NaU9eV3JoJStYfnEueWs/ISZYQiJ6RmBBMV1QUFU7YTdEK1siNHdYYCUoQntJbWNUcFpAPz5GWEVHJlkzKDxMYUw0OEhNI2ZraTAkPGdAbWVqN2gzYSFdKGRqIlJIOSZJKDAoa2k+SStjbGN3enhRLGpLeT9JRnR0QSVBQFhS'@; put 'WmFFQWdzODVpcCtqT1ppYyFdS0Y8MF9sRXBHezloOyl+SXxYbklzVi9uZyoxKyw+RmlWYHYmKDdSUn5FcTMsQlVoZztoXUwocXZIKE4qeCt5d3FsUTE4VG8mJHx2cGZ+KTNXTHU1aFJ6Z155XXlnM2FAdWVld1glQnJqZnI8Z2o5Un16cCFSbS9DKENkRUosTnVDTyZ5b0pYN29+PHJmdltWc3gq'@; put 'TVFjIXN8JnUpISEiRT55Rm9pPWwlLD5qMmw6S3thQ1IpfVZRQmRLLEhVOVpmQDkqPCo/Vzcmcmw6Q0I5O1NVc3hvenZ+bSQqR0M7dUNoS1I5SS8yNlVGVUdjLjI5ayVoQFpremAuQkFKXUVRZlZJUCJpOkMqfU5hLFRDIzgwPTZvXz9NSl9zUC5RJSkvaj9AUGpKTyhFKVM+JGglIyxJN0AmRD15'@; put 'Q2kyYSRUOVJvWVsvelg7Uz9BS2xlXz9CbiNFI0wqcW4yXzdwNWNTO29BcTtxXzQlXUVlPXhYL1kvJnxUO2tqZjhpOCshb2RKPFZdLHdrVT1ZRkxZL3s/Ui57ZWQ6NXIpdXx4Kz5NSXAvPW96LH5PIT1HPTxiZkZsJU9pXSp5Vjt2U2JyR2k3R2BpY3FwQ09DMmhLdEMrS3FrcX10PUJTQUpvRnYw'@; put 'ezNwfUdxN2p0eEYmdUkrQUpGcVR5YkUvSS9wZFVyT1dgNzttdyFDc2c9aCkzLzohRWUlPzVdS0YyODp+RDIhK2woPzFGPDhOK341VVQhby8qMl1DW0xKIUpeIyxUc1sraC93dj0rakMrPkc7bHQjKVlxWm5pZl5bS1AyQSUsYHplRiV2PS9HfkkrPnJFKCZBbTpJSVUhcDN9PFp3Omwwe2xmWjFp'@; put 'diUwamJnc1goJjh+fSpSPGVjeU44L3wuXUhgNGAqPGp1SH1VKWchIzRLM0ZRZlFQZ044UWVBb15PSVA5OW0qcG5HLj5qTUpmQDpxbVEucEwheW9mNWFkWXIufnJ6WmVWVWwwYkpkKzxiRFp4XmJpZmk5V0MxcW49KTZodkZMTm9oWUR1ODV7ZixqPVtCYitEaHBAL2x1K3xyVHN6TyklbXNNcHM2'@; put 'MUNTOVQ6JXFbQ0JQRnEvRlplRHVBTV13TjhYJSlrKkxGbEBpWjk9SDZMZ0FvSmBpYF49SSZCV1I4VT87QE9wQD4sVCg5SFlyeFNGS3FUY3BATE1DfEp5b1hyPzEwISRxPWJZdjUyXT8pb20sKzYreEAlYlRES0k6Xm1AZXsxb1M4em9ZUmE+OEUrUTtRISt6NV1FY2NrU1s1VnRdbV02SDJJZStq'@; put 'NkUrdGRUSWU1YF5KMHEyLmRlaGV8UjhMO308aHBVNWNAeGRMTj44a0Z0Okd4UUJQKHBoXTEwLkhbYDQsOm5VMk1xfSVAc1AwZjVnbmt+YSRiQDFOLGZwZWE6L20sRjZlOyFmYUgwX0ImSHZgISojR14kelJ6a2VgU3VUOixhUlVbPjkhciFvN0BVaUNYZ3V2XWNLeF4pWGU+KkxBeGBJSWppSU1K'@; put 'Qy95RWNqflIqNmthXj9CMmxFLmZIRSo/PylUUmxlZzElUiV2YT1ZcDVWRExbNjcufV5sYU44MCJ5Q3Ywdl1MUDNhL1JiX0RDJi5vaV9bWUtsY0xpbG9HTFRKM3pmOWF0UThWIU8wNT9IeFJzSUgjdHxaITN6MlchJXVSS1VhST5OUnNVc2RHIXtAbCVyQF5hNk5oNjQoVSUhK3ZHR2BfTnx9Vmxq'@; put 'cyJNP019XUVLd2ckQUlZLlsoQnwyaGZmKEt1bUVGKiRWYWd3aTlQWCF2Tl9HZjhzRnxbNl45ZD1pXzwjQ157d0BAYDI0NlZsNSVXaEAyNE48LktuM0FEaXdIOTdreSMjQ2JXbEY0e05fSERWIyNDVFclQ01UbGFSITJOTilzPT8xPVhbLiZZZDF9XSZmLyxQfU16ZGZhcF1XNyFYL1VIel1JJHR6'@; put 'OUlwdGNXT0B+XXt+bGBTPjI0Rk1WNCsjUjF3Wls2ODVWJHU6KzNKaXRZRDgucl5ERUB8TFldMHZgcSV5InF8QEtfYyYhPW1ReD4pOFFzQ15PZCk7I3EwKV5OYS9HXVdnc3NOKH51Ol92SGpEWXU/d0dgNjgka35yXXVbUWY0bypPIkk2TnlwRzU6VWJoZV12VVUhLloxImo/NFBrMHViaXhFVSpC'@; put 'QkN4RkhDb1hyIm1ue2spKko+KTd9YWtuMXcqLnt7VnxBVil2NzJXKzAjJG9QdkgkSUlVUEhmTy9qbXgmcUB4UEhQOmg+UE1Id0dxR1E7XkVEU1pbb3AvMzxNaUxlMjYxLy91PDBHQlBIUyFYdmNhc1Q6QCMvenVsfWZZM2diSXFgej19I1QlXmJ6STldYnBSTWNpLDc7KTUkeHZFJk95SXFJVWQm'@; put 'M1NtOmN4OWRCTU92K1kyd2ZsKnc1KSN6dXZZeUJZRFZ8ZFc8fEN7YGpbTi9fPGUwej1VOD9rZmRWbUlqfCx1M2FWI2NfVltqVyQ7UCEjMyRHaihsRVY0cWdkZXNPSGVnR15JKytHXT9vOFdtQCYrYX14fHVDamE1QX1sUVI3UG9meldbOThoVCNnV15pcCx0X3QrdzUpMVtePWJLRSFgR2wyNyZZ'@; put 'aCkyWjwlY1NNcTQ+bnVaNnZ8RXczemhyczdvLj9+NkNIOzJDN3g6ayU6MlF4QHNOUCtGL1RAc0ooenlAc1I7UF8oRGBOY1pnPTRQMmJmTnRkPHhGb1lITEhFcTdmeCh3akk1MSRlUjdVPzRYJF0laTdKc0lYdHV2XjkvZFV7Ni81QjArZ21sW1IlY0c4VEMpMil5XiwwTD88e3w6fm8wMltzY1pk'@; put 'aCRIQE92SzZ3fC8pfl97fDdWQ1BuSHplWCFDY2R4bi9se0U4cWc/d1tdZD9AUzxDP1tmTyhGcXJHYGBFNmVTamlNQXdAQlcxcm5yUHVNbWlBPHhuN2c5Rl5hWVdhKkZKQzMsdXQpWXYua2d9U1F6fXBUMWV9YVQ8I11rPGZNdWBjOUkjIldlbVBnIVd0e1lzRFZPcyF8WWtZcjVxSEBXaUxNREh0'@; put 'aX1WM25yfXs2eDooPVEzSnBkdX5ebWUzXkRUaHcrSjV6VTliI1FNYFsyQnU0eDxMMWVHTFAoR3Jja15tdTBLK0FvTCo6Zy5lI15tbSZTbTxDSm4leX0vJWl7YlomWXkxN3ZMZ1lHTzleaVUyNXFme1BxdksieVF3V3Q4Q0RaKkNELnkrNHx6fnEiYE5eYVZAejYzJjRCe0cqSWJ9UyskYFckYkk7'@; put 'eCgmeUF9fTJ8XXdyU187V3pmPjA4REsqQnRsWTFhZGhHN2dZXnJiVWBtZ2U5V3Q9Z3l6SkQqRC8+Lj8ydUgscHZgPDZZQl97NGtiak1HNSxye0UhSC9SSy8uWF5SUUV9UltnLGNuJlNeRUBIW087TyxPT2RjNkxvMU5lRHA7JTRCSHJFVFg6YDEsYlF5QlRJVmZOUDM1LFgsdVssaDQmTzo2XTpw'@; put 'LyZ6XTpiZHc8Nyk8K293V0gpckI0R1dMaXldfmpGXSshNlRIOHo5NCx0M2tpRzU3XllHTlN1bjl2a1JyYF4uODwsJm1MWktaQmteTl9Jc1RdXjMrLikmbVlZWEpiUUxhV00zWHNqKFtJZ14sUnxbRVgsdmBMWk5tRXdCb19ANTVNLGZkeldLLFgyLHd3JmdQeG4jXWNaTF1oa3RoaiI7ZkMkJkVk'@; put 'Tjs3U1BfbVcxWzVTOixbWnxARFBAWiJwNj1wdFdfIldKfWZPV2BwMj5bbWVpPGk1c2A5MlA4SmlUOEppTlkpNWBIbURIM35xPWA7KjUxMEoiQjJHdWRSTmhNMWxZPi5hSFZEWStbOklGeEpSQjVtdUElflBuZlZocTIuNEFAUmFVR1ReJSFiNSNyOVdfWE5tVi8vMDRRaXh0VjFgcDRseTVzIzt5'@; put 'KmIsIkI2PkJQMywiQjVoZjFDIjU3LzklYE43SHxLQVJXPl02LkczeHdsPG5LK3VJITtCNmVkTHdnTCozYyxOM0gqSjxLYUAmNHd7WzF2RCppdVQ9Rmk0Q1JBI1pgMmIqUFokT2p7S3FgVmRoOWp0UXdoYClZKF03dUtpSWFhKDA0byp6SERJPH0qeE9jOHY+aVdva1hOIUVmQ0pDWntMYnwsRS9j'@; put 'RXRCZGdCQCludHJpfnxDbVllJltwJF9Db2l9aEJ8MTdVRnpsc0h4RF0/XUl4fnQ3Inx7bUVEbHl7WWY4JEpsUFlsTi9SPmdNWnw5TXMmN14qMTF4KFtyYi51ciVxdVk+RjBVbVNrWGg6MTVWeng5UD1tVmNAYWpYdHUoTnd6ZUZDfmBhIUtTb3lFNVh3azBnOjllUUpiRGZzcCMsJkVVS1VVdXJU'@; put 'XWlLQGd3Zls2WXFJTn0ub1gyaWNDdFt4LEAuIV1CXXBGJXVXVXx5diFpIVFPPzk8S09XRVBfJE9YJU1ILmE8cDxCK29vQnMxYnE5N09sekldQilPMVFmbyEyekR9Pmk2ODArU1dEJip5ImRQayhMZl9XbVgyNFo9XXpmLzc5aCJ0biU+VyRvek0+STR7dF55R3c8SEg0ezQ0PHR+fHx2XmIlP0I1'@; put 'L0lrKV9weUY+VC4sRkBfRT07Ild3PUJMZXRqNn49Z1lZZjFdUEZ7eWdqX3E/WFZHUl8yJlA3Pj1tdFRMfVRXdDtXYF5FWGJecWAjaSlrL35FQGY8RkBac1UuQGU/Xi45fGp3ODpNWkpSPSJVRWFdWGQvcTE8UzF4ZGZQY2RrIWB4amVwcDpdTF1EazwiPSYpWEJPVTZbUXFZL2llMXVscjBPdmou'@; put 'UE01X0pnW3ZCbUZiZ0dAX2NtJXBmUS9SNXNgfCgidyZxXk9FJiFpeEVpIU1oLGk8eHBjXXlmcmRoL0s5PChkTU1pOXRDUmYpS3oqM1AyUXhhOzl6ZXE5IlthKV9ZeGxuQ2hJT3BtTzVrcjs4InE4eCQ5dDB3diFrRz1AND1PT1pDXUI9b2F7L3tsZCFvcltxMkM6elU+VE03SC4ubWQ0SkY+ajlH'@; put 'cms+K2E1eURlMUJ7YUIrWiY6ISs5XmhfSUdrXkNhazp8Z2RMWStHbF5iekRCfj0sX0BPZnQ0QSk/QExGbUsofGI7dWA7Z3tEd3dHUT9mPlkldmNEc1ovTCQxIUp+NjNtZUJFPClKITdMP3N6fXpFUG0rPCR3eCUuUltLKXcsTEkxbVUjI3FbJW9RY0xFUE9xRTFHXn5ta2BOW3BAREppVmZNRHdo'@; put 'WGdURTw+JFJbPUhdLmdQT3suUTZqa3RhWW5lQXEoIjhtYjAxay9LPTg6OTksPHYsWCwqM2xQSFZ2UWtyI1o2QlI/YCJya21NbiRGKVdzVlgxdjF5VHwsY110Szc3ayZicCYiP3c4eS5zPWMkSU4hemNROVc+UjMkSSg4XmBxeHBKVz8yKXheekdUejM6KEAoR0ZGKyN6TjRnX3J0KFNVN3VNZDx4'@; put 'Ij8mUU1OPmopYkEmUmU3WFlVLjZ0ZjArLGNJK0x3WTdLY3tqTEtbTzw9cXhUOHJjYWZJYGo4PCJ8SX5bdHw/ITFDSHJ0O0pXKkJES2lxQWh+KSIhaENvVTh0OilYYUBwLnRoLmlgdjtGO1FycyQxeyZnejh9bWJHRmZobSlNOmcjd21nckp4KDl1JktDOyMwXWt9QE1SXlViO0k7cGZRNWNmfEM+'@; put 'IXxCaWg4RjNbSThqImAhQUNwYGk5OCpYZTcyNCNTd0tzN1FldE5EQy9RaF54eXNaekQ5KV9mezhrcnNtR2ZsaC4qKkdzYGMlfkV2fHdlPWEpeDRMfmU/aixuJV5iIS48cjpvJG1LNGdAaDhaRyVMWCt7eSxFWiQqUHlKQjk7Uz5ZKUtgNjVYVigodCJLYGk1OElMejl6OSFXNWZ5XWB2O3F6dzIz'@; put 'S2ZYS3dSUEl+amk7PC9PSSxScXF7aWYsfXhdTml8ZX55TUxMc1s4S25wXmZ3RyQ4US9hV2Z2Kig2ZXs5JXFjezZEfnRkfXE2T3c1KSRRV3c7PntYKldxeCIyajF3cGF3IlUwOnVqWTomYjUpYFhOe3Ukd2R8ZzhXUX1xd3xNSEsxQjQsRGowMyoqWG9yZDJ6d2BbVyo2QUwvSUQwc3xsbHcsflY+'@; put 'UmVxIzV4a0I7JXw9ZEkqbHNTLjdeUUVgeSNhbUplZT04YyxqZTw4bCwuNGUpeTorP2l5RSEralBnZytmbWFteDFNazg8QiwrSXFWbmBCOj0hI1s4Ji9TYkRNN2pNazxMV2ojVkNmUDhPe3shaGZYJSs6JEVFdDpDfjNoUDlFbGg2aGtwbDVmYjFAdVNvS3FRKFl4JGdBeU9fYDExWTIkdntlalNl'@; put 'SUNWTmNbUGtBLGJrKE00fDdWRzMpRjMrO3oya09oX1YsfCUoTGk1WissIUIjRE1MTGEpW3hoP2hdMGNnbC9ie1UqZ3tadj9uL1hyIVYoaHJlPlUoMjo5RWRjLFgobktgQVs1NkwsRHgwRGZoZTFdc2pgR1Jna2VbflgqRGpXJF1UaGRDU15AVDJNYVJAYEtmVGVaZUo4SiJaWCQ9cDkvPlthVUQ/'@; put 'd3ZwcTkwMng0Y1EiSWs3RUx4ZDhFeiFlQSx+N1NMejVjKkJlc0VbdWYjLm9LOXUmbG0rdUw9XSs0PTJKZVo7NCwqeUYmKV54dlZman1AQ25sWWhZZU1xamlLM3loblFJQ0YyJX1OUk1nY3BJWCNpcXNPNkVjRXN1WzNwNz1pcGdXYyFMW20yWixeeFEvVzk4Jk4xPHchXSFnTixCM2NgYSR+MDA8'@; put 'Mi4/eDxtRFp0YU94I09eeUVGcjI+eXhrNmgsbSk2M1gvfGpKIU55X1AvZVVCWFBiPzFKYjEuXU90fUhwN3xPQ1EvRWpUIVp0NCEuWlEkIVl4KlZnKlIsTXVkdUxuMmI6e100fDopVmozOmw+bFkxLFJ1bzJ5cT0sYFYmWEZzb0NoN3YhRzFBTzQlMUAkdSlERHE9eUJGQ1pWbmlzdjZaWGpAUjw5'@; put 'ZlkkWkVMWTdhXU5obWM+MFAhY2M+Mkprcm9ONHpEVCphXVlXXT1sbWdfO1NROkU0JXNANiZ6Zz9VSn5HOClLZWhzblAuWXZ9I31ZZG92U29daCEwVS46biVkMjIzVWkwYHNAbFJdMVVPZjFhbHdEbm9AZSg3c2ZnU04kLjtwKlpUQnI3Njo3S2IoPFpMXk1hayVQTzdFVEdOOkh1NHxVMi4jSklT'@; put 'T2ZyZj1ibCVPUVovYEoqTWpYbXJhMVUxKDgub0VoVGpUUyVAW29WTWNLOFElNyJxfUIyVjxRZH1nYz9Gcj87aENwRFB7V2ApOmZAST9MQ2FbVGkrYX1YSG5gfSVRKUs3WFhPV3VreUM6OClLZkVnOUBfdWZ+MT1Dd2tYYVJqRWhzWEU6TDg8V1MxVX4iPVhIbmBpIiFYSUlROkslcz1tPmpsR15u'@; put 'Kl5RdXhxfFM1R1IuLmZhLCJEPFY1TUNTS1l+QlFha3xIUG5KYjJ9bmBoc00qKiNtcldMUithfFk8VShBZmBAaSM5ZiU0OkQuLEZIVU8pbT9HXylZJTgoWTVEVjt5PENnK1c5OihtdUxmTSFHRFI2aCQmIWVWJDBobTYxcXEpNEpGfl1CNmRKXWJffDB+STZwMSs7fmh4RT99cSRWdzFIJFg3am9I'@; put 'XmU+OXpmSlI6QmkmJldTKDlLcmZ4MT9vRjA2bFVPclRUM3U4T1haYU5zPTZnY2R5an5MTERqcjVJPFJ3NVYkXW1DRkZLSi8saCQ0eGRgOz4sbCk0bXlfeH5BPk5KViYwd0JfOyI7Li9DKCJsLnRFQ1MqSnd4LipZQXk6KkA/RDoseHZAfW46bVhIUlp+dzRte1M9WX1uRz9Xb3JxdW5JeWZ1Y2Fs'@; put 'VUMvWWdQYlhlPTpXMkNJc2xzMWl2OWJUaCo2Yl1zL1dNcXNCakc0RzNiSVh1OnlqJlM7PXQ2OFM4TC9tXUx6XVZpVGlKKXZ0PXwzWF1pSHBAfm4+YT0uK1AhZ0pLcit8Rik5P3AqeD06YHFkUzloZF4kfix3b0FwZzsicFouPiVGTVBaJVBEV0E6QXtFN1M9WHxnZHg+ajxWLDJjM15hYko4eEBU'@; put 'WiE7Q0w3Lik9X0IoSl5yJlJJVFVsZ2ZAOTFiVFRwSmRUPWZQLH5CWzhSPVJ8Uz13dTpqVTFVYTB2KyUqNj84Zz5VKipWb0hrSnAzRU9fNl1Ne0RSR2JOZTVDR3xLKykrUF4uZFVwQUA7fC5UPVgoXVs1LGJRZldVbGpgTGQ7Sj4uTFRfIktUOmdNL2NZQjJsSE85PTNnfWF4L11qOGlEcnMkLD9L'@; put 'TmYzXzNnKW9Wdi8iamVCXUVsW0g1KkdzKUg0Z2l2RGw5SVBrKU9paH4sY0xudUE4U0JEbTcoJF5ROGY2ZGk9LlleRX0jcXAudzVSX15jdVpQdytXfVk2VWcoaHFrOnZbLyZQY191RUxLWWExNyVlcEt2ZmpHbDhyJGBKKlcwWk9eKTZ5V3IkcGJqRXk7RiRbaXY8XThIbjU2RHtVLmNoSjw1JT40'@; put 'eDkhIzdHZjRvOltUYFs3Sn19QzZYcndDRjlgNTZpfV1IV19uWyFOZylHUjhhQCopJk1zc2JRZHQ/RiNST2djZT9pOltyeHt0QFJDOG1nbWxjOnpOIjBUdSYqVmFabWU6cyEreHpKIW5zISN1Xys3L1Iqfl5tPi8/aD59Sk05T0g5VkNLVTBkWjs5TUtFXTdRTDwzJjRNTU5jZDgoeCw9ciRFO2Yo'@; put 'WGBmX0YjS1FKJFZJV148d1YoJUI+WXZeW0FvaithcjwiVHhKXWdKb28vd3UlWV9pO0pIS3loXkppVSkoMl53VCFkW0tRWDFDS1RfeVhmfDklfUooWC9yOCxwNShKOV0we2pwbEN6dmkmdEU/NHlUXlRuP1hyJktodUdgflZsRiRDTEB0cU4hTj0mW05ifmpwOVU8e0M2LFMqUVcie1J3UytNXjAs'@; put 'NX5ARXtgcWRxdUNoRF8oUnU+MGlRN003MlFdbEB3YGVCRT9SWFsxbCFwYEdYZ3xdMGxRbmJLKGVYX3kkUHM7QEVrO01oW3I8ZGlPO1lXIypZZUZTW3ViSFBrKSJpbj5ZSXF2Oig1OFRELDpXTXdfenIyeURTNTx8bXRSMjQ4PGFBNFpgT1hJSHJAcUJtcy5QeiE/VUBsekNYNU1fLHBSfVBPfWly'@; put 'RSZvcEZ1RHR7cFs4S1FKTSlzYEtkY2pSNj49PUgwb0IxZW13RlI6fW9rVURoNHpPWjosOjJwQCgyIVdXMyR4bnZ0YGl5NXxTK2hiZzQkSCUyPjdYaHZsPlkrdyJiJGJXbmtbRVFQeCJfdH55bjwzK1EiTi9dUE5feEdEa1RKemJbKD1pMndTPDJtbzhuXiFucExLM3k2QGxdQE1OcWhjSjx5bGJG'@; put 'UEoqMHZIX1hEVixsUThHVXVhWmArdkZHNkt5IW50U1Y9TFEkRUZnbishW2Yvd3xAcml9SFRPUCsiRyJVLEpUPXRCI1sqfEZ5QEo+a3FoaihaPFZdWmtdX0RWWCR4clBJKHp9KCosdHtEOz5SMXtPaFldQlUqM2NXXTtvNWI6TmxfLypPczshZFRkQkd7ezJCUVl7LzhWUUN8SWAoLDA/R180KXg1'@; put 'L2labj9eJGVzO3VTP3xnIXN7RyRBekV5Nz4va0VFUSFvN0UkTyNFRGVjantLal1md2tLXjs/KSUiVWo5WmhxRC8iPlI+bTUlJi9GdHsre2dEOHJWJWt6dipEaSwoSHRNditPdSJHZj8rL0RUKEQ3XjtiVVhNV3ZyfCs5Wis2bngrYnxTMENrQU42WmQrXzgvcl9TISMucTRLU3dfTT1hSUx3Lypi'@; put 'QnhTMUhxNjpxRD84YWo3IWAvWXkleFlQZDl8VkE6eSQuQ1tVOixvfCpRMGJ1eWFuND1HbEd6Tj8xSXY7SnpqSzl3X2RlSjxrajImKzNUWSg2UVdyUjpEfmxOLH5ROFM1e1EidzxsLjV3NF9qSFRzeTA3IlkqKnlgRWR3SDc3MnQld1lVfjh8Uj9TOGM0YkQydDBjdWlRLFtEMShfQn1SRW4iXzU7'@; put 'TEMxYykyXXtdKHxBNF1bK0xQeEl5dVd8WCFPWmBseW4hRFk+Y147Kk11QWheeUFBTCVJVTN+QkBCbDdBek0pY0QxcUtMSlJXL0dmaDguQyxDXkAjcitXJGNRK05FQkdFM3d3d2JJZ2RvdHYuPyJye0smOV93ZHRVSCs/WGlld29RImNQIzErJnw0UW8zTGp6d3UjYX1qZj94UTw3eiZHQFZ7Y2N4'@; put 'ZDtgdFE7PUVQJjxQQn0kW0FtbHolbERQU2h+NyNdYy80VnovS2lESVo+cT0yc0csSkFLPzNnMkZFXUJNYVpvVzsrN3ZwNDdNalFaN0F4Z0R5OzVzU2FYZTxAa31AK2MvaTM4IUxEWFdrJHlha05fRGMxTEZPdltvNE8vRDUoS01IdVE7PUVQJl46KiUzNC9zJWdeO257OFtoXWcjTjdTIXxKL3Ei'@; put 'ezBka19SQE99ZWZ1Q3R7SnwvbElySX1Hei5nPWFReTdNU3dQP2lQaitTS2ZFVmZURzZ4Wyh8WHBgWmVXYSExUVdRZV5IKU1JUXZLb2k/cHMod2tLQWJJO1YxY2Z4QVlQSEQ/VUZFbmM4PHJyeUlNe1guO3FgbVNtaCRNfTtqXT9rSV1fRlIoYko5bF47UVZqeTBuKFhUd0xIPDJvdT0pW0NHKUdi'@; put 'Ty92ciUiYnw+RmspNSZMTGpYZkk9aTY+ZUZCSlhgP187T3FhNyJpeTcxO3MmRkdAN2BFe0ZZYFdLZTxUcEQ3fEVNfXUpJVMscnxzcjxCcWB1OUV+ZDQ4RUxSJHdNRyhHeiE2W00mSHUjdjUhcG9aKWBbdnU0L2RmKyM4X0Z7fmE7MEM/Unl+ZStOWWUsaTEkXkh0e3xbSGkzNk14IXwhYDNMS2li'@; put 'e357KC8seSFzOEheRSRKXzRIfWdWRUhDOCZobTZBdldsdntCdjdtI3trbiFlPU9PNUNuRVhXbWVKdHtPeFgvXl9kOmRvMjozdkM/XW9bZFIsJDY3bCthYCR6OV1qUWI9LyQ5SnxjL2RzLCZxYkhPSSxbVkwqMzw6TC4lY2RnUS8ycEFgb2NjZXN7YDV4bE05eEdsI31IR3ZYSkd6dW4hWVR1fX0l'@; put 'UnlbZ1VnS21ESlF3eEtsZzFoOjBPP1dxNDQkLGwpV2M4OkVwfE9YQnxKXjtXelA1N0JBZGIqQD1hQkRDXzsqS2owXU5tS2R8ZHMkbjFJcnlYM3shNmh3Rm9pOCp4X0Q0bWAuaWhzc2xiMWVzOWdBMHtARygySUQ2UyNMNWB6Vy51Jl1UZFkvSndiaXUyX2ZrbWdhNGdBQykxPl1KSEN9LiosKU0i'@; put 'd3hRP1cuUSYsV0VNP309VDozPG4xWEZlRDApOWtHXz1aZ0EzenhkVlBTYSRFZm5AaCxCQ3xFSDF6YVMiRDcqP2dafDEkJFdKZUtWY18lbVlMN1Y7b05hUWlVL3dPS0JLP0ZXY0ImeERodygwMFBZLzd9SXJyI3J3W0pnfmB5TCF1VF5sfGFZVTB1cCRnY3N2OkBoRmN6XWdaPilZMmZ5XmIyX1Bf'@; put 'S0Y4Wm59ck82QmpqL2JiPW92RjNLT3pyWnwqUUIvbnRpO0t0cDdgcFRpJX14WGh6OV5+Vzl8VXc+VChaYmgwQF9aeEZCMGxzSCY0S3BYKUc8dShVbjRwYmBgK1AiYjxHfSltNDVVbGBDXTMsaEtvT3IkcHNKNEd8dHU2aUB1MiozYzF0fUxFKWZadTt1KjIhcGBnVmNMVlNfZWAuOXZjXkd0a2tD'@; put 'WE9WaUR2P1J1NiFCelB7R3RONXRJdT84aDV4di9lUXFie3tkaW53JktMLGwoJjZmeVs1JXFEfE5tJEwwfUpBdS9xKnskI0IuXy5lJGcoU3hKLyxaSjhpVGNpbm40OD84dEErNSZVL1JfZWUyaEhZKD1oYSxPXUNDczBFfV1+MlpRUypzRWtBbHxZbk4uQ2lJQ3B8USNydlIjbVRHKlVrXzR9L2BC'@; put 'fDRmTEFSKVt6XjVndH5RV1tqMz47M2Zac3BZUUtAZVBHQ3pad05pc2NNL05zUU1pd3ByVFtlfn59Tzo0SmRkOXlVfFp3NHZ0Yj1kc1hrPEY7Mk9xV3YzV0pSJDRrSWQhKmlpZ24+Sk9ISE0/JFZHWExFKSYhTU9HTT5kKSt1XnhJKWhLIUU0ey5MOH0sSmg0TDVsTnhubjk3fTVUQWZhUiRdIjRu'@; put 'ZmwxajxHUWd4L241aGRHPG9zP0EybU9vRUowY1AuIk5DQiE0IUZ4Ojkydk59QnIlVnl3MWgydDxvIS8zbjZPU0NyKUxiUipzZ2NIW0JbdnM/Q1kobnVQN1NyQmhIYVlCeGwjKFdkMCtHeWE/fWdDUTVBKjVfN25NZkxMMXIyOVUyXjtMQEI8Z0JwYm5HRGwwe3pmVUV9XSw/RygmWm9SZ31mUklU'@; put 'Wz0lX3RZd2dEVjhOcz9XYjAjNCFFRXU0dmlZWXk0XjlxU191RD9HakwqNFZtc110WH12QlJ1WnxUK31RTXVpa0VSX254QGF8KlFTRy9uKFh4ZXtHc2oyaHFBcSVxL1pkLzkwJV5YQyZFLlBacCwuW2lLbWB4cD93e3pXcl9oO3VgQ2NmVCo2fVUhMFpEdVQ/ZD53Wl9mQkV5X2lMYWFXSDd9UHgk'@; put 'KUgsaTNXajRfRjxdS3A4RGZIKSM0aHN8dUM/e14qT0l7c2VHLlVgL1hCbCJCdVgzaEc5JXBiLEg4ejFJZTl3JnEpV21yKCgya11STX52OGpwI3s0aTw7bT9jJnhyYTNEKVB8KHJyXik/KWNVTjluUz91MVZaVEUwdWYkN2xnak16bTpKREZ1fChyUVtgMDZxIipbeFIkQEcodHM1aGVLQFVNeEp3'@; put 'eGc5KmdVUEhNdnU4VlpeSSF2XTltMXNWYCRkWnNwZVJHOn5nKVkiLCVMZXxTWn5XOGh8VEA0eFIxKn0vM3ckYTpraHlNUHR7bmZNc1VIPmp5IjNocDokZC8qOTI+QyExRlZSN15xMmVtZTdZZ2g2d2RWb3g8X0xBUGhtJS4mTTN1Zit1JUtlPjdWcnhWOUBhd1NkdCEpMls4JjVKeTR2RUEreDR+'@; put 'QShfMT8peiklKmpMJnFJX0JjPipSbTxqRi5AfGJgMzVWUmlEQFhyRGlrU1BFZX55biwzd0RwYzExMDgkR3t4OkZNTjlGIXFsQiEzRjNWJXc4PXojTlttWHJycUJ7R0BNOFlVJEpFV0ZTOm9PNH13dyx5Pz9veUIzX3hTejh5d2dIfjwlV15zUjtmI3xRMEd7TSYldE11TDxwLjVMPDRKUFdKSEpE'@; put 'cERuTVJ0YkNucFAzeDcwJXJAa2V9RF9dWHJTPUpefUJXbntfaGsxNzRRK2RdWERzWUMhb0QrWGE4ZVN0cGJLUGZaPikkZ2VecEkxPz5YQWgsdFhsez43fSRtSi48SEhIQztlXlovJUVfLjo4SkU3ZUA0LFkuYjBpYnBXdSZncSN0UCFheCkhUCJeb2M+VXVDcU01V3xQNEdedmtOMlBqbEJiSndS'@; put 'Wm9sMihIP29ZRCY9TC9FJVtsV21xOHlJIjskPS5pVXs2OjFpM2guODgldjl4Ky96LFtTZ0wpS1YsQXFVOCtyVEIrWFZVQ3ppZFhAY3VdT0JfbjNJOlh5SFBBK2U6aW0oV3MmaVA/VWlgREgqRCRPTWA6LF5BK35qMkJ+MGdrPjJmUjwhdl0wWmZPWFVpKiFUcCwwXy9hP3NFPCNBKmArNmwidm4u'@; put 'RlVeRlQhSWUuK2dySU59RmRlVDVvQiZLRWxLQyxoS0tneGNkPW8sXkRsPD01MF1wRDoxW0lKNWxGM3xaR30uRGkqRjh3PVYjJTJXajdsIigreUhxTG9+WF46MzxMRyZzb29bdipNRWciKjYmb3tNcjhFaWo5RDRyXlBgQmM9Pj1qN0YyUi5ndzpLbEFUMjNbfntHUncoZkhuVFpyWEpxeW5ISnN2'@; put 'QlhiIjREP3lDOHJ7R2h4QGBGLlR6O01VYilMYHB3KkhmI0wpcFpMcHBIOklpRVIrSGkubiUoWzEwU1FyOnk+PVI7MD4qPmFBaEJNLCpZcDdleSl4eEI4YTYmcXM+OzB6R3dyaDFLfkBDPD84bC9dV19QPk5sZDlCX1U8d3ZmbH4oYW1bVyJyQiwmW0hSO3pfMm4lY21iVVhkMEF8XVIuJCRiQUFT'@; put 'VGIhY2dEU1MyN1dBNEcjST9eL2UuOC8qT2dhfGxLa3ImRyU/cShWNGZSR25eVTBEOXlqOlJMMElVeT8yV1NnUGFFXmEqQjdzTX5+T29dQGQvSV8oUGp4N0dEZzNCXn1kQWx6OWZTdmtzcHNlfDxQNyY5YiQxeDR8SUdlSCVseFBTXjsjdTQmdDFNWDlVNmdieVM0KmRnNi94e1VvaDMiZFhjO0h7'@; put 'RUQ8Qm0+OF9GKkRJWzhVdXgqdyFWXkxmVmR0Rjt3RU44UFBrSWYxVVQxelRVKG4wIjh1K2QuZSwrLDxCdH4/UFRHJHdXST8uQDt8bCpVeFB8WHJpaWtYQl1EcVAvVEdlSStuVjVJTVFJcDdgTmRWV1QmKFYvQy80XlYvQy97KFpyU3drMEs8Rk1FSFpxYDI5UixePnp+Qi5OOSxnLGNFfitZYCxe'@; put 'OG1ILlh1KUROJCFCPnk5S0VabWBTXTl2aSlHc0FSX1toUVs1fG9RMnF5MklzSWxEMl9IKlJpViQvSG5KRD9RTEJVNDxQM0Z5X20iNWMqU2t7U31feXhMc2x7WTQscWdPSEc8OmYzfFVia1ZbMGxlLy5rNG9ROkhkT2gjeD05dzFxVDxYT2wiOHxkOVttXShNLHF9VDlvQDF3YSR4R2U0cVhuJjI5'@; put 'TjU0fTpFdGxyZ2s0Ln1fOGlPcTFNMVleSHl8TlZyUkF7aTlMfWMuZXliSSQ0R0s4VHRfYkYzfXkhJixwe285b3spblV0aVdFan55XT55R29qQSslPS9pKSJyNlB8clNSLyozZyptcmtXfUg+XU5rbCVjbVgvUSMoU3hiVGg5QW86ZFJnYl54S0pie1s5dENlaz1lZEYhMi8vK3xfYzNkSVI3V1J5'@; put 'djhZV359N2BpVmoleTg7YCMzRjQuVERnQ0pLdnVOW0EpcVd1cnJOIVEpNDw5MWBsYSE7aE88Iix3UE5tcil1N1BYVFVJazU3cS9WZGxLQWFGRlhDWUJLQCMoZEtTIW5UcFN6ZHBlS0k9O3QpenclQGh9OH04LD4xNTBxNFIoVzt0KyY7bCs3ZSVDY3xRfEZaIkczfjA6cUIjeE5hV2FFd05XJnho'@; put 'eGREW2NHOkxuOHw1a1BhMWhdRU12ajJiLm1OVCN6PChnKzU9bXxsIllGenRoW0lxLD4qMDRecjVBSW9OODlePXI3X2FjZFIyInpIVEVXL2J7ZkwuLDBoeDlrVU5bXXNiaiQyV1MqTXlbeTB1TlJRVmVlQ2E2fmUlcWEhLmVwYmY9MFJ9K2lYSC8uX3I+Uk0leUY1QFo0MEUkc2tmL0s0RzVONFRw'@; put 'b003RGFHT0F1c0klUUFRP19aKERsZmY9fDQwP0NTc25Oaz1JW009OCNrRy9tImIxPCJXKSlLTGBgK0x9O2pDbzVKdWNVQzpte3olRnAyNEQlTGNfWmw6OEw5cEdzPyY/JExoWyIkX3wqX1UrbE56KDBMP0VlaFBebVpCWG0oTlR8UkhFIzs/PDVZWl5QIi8hOmtpTVFPVCE1ayl2N1cjY31yL29E'@; put 'VXY/TiFHSDhxIT5WaTc4M0tmI3xAcy91PTpvM31JTylEO0p7UT0vV3pRZz9qPkNWejd9aDgodUlpdz1DXl9uLldrMEF1YjsvUmBPYCNDLkwiLlVWY2xKMjk8V0tKN0VSLy5YQFdHVTFXeFklMV8lUWN4ITE3UjFEMnI0QzFlbT17WHJvOFYveDQzRi9lPzBBITEzI2tVbldJVSlINHNDSHg4Sk4p'@; put 'LmRxJEReY19jb0VzckosVXFvcHZAQ3ZFbU05OU44MSVAVDVZcEJydVg3d2N4bEJ+ZzxpKH1YNFchXm1qalhUWXl1cntSTVgoZTFAYHo0Vz5pWHN8L05teUFDKz9XM2xEXzpqRDVxKl9lRC5KfTt6JDsvT2RBe3NpVCF6VncwTTwsVWpxZUdzZVpYM3FEXl09ViZWWkd6S2NPLndCJEZOXyQpX3d8'@; put 'b1RSO2BwUy95X20mSi5FKDU0TXlfRCF7fGEvbUkifE1ffmQpY0V7ailrMFQwJmtEXlpBekZ4LGBxIkR6X0tGQ3YxaT1GfChjcDJlYVZHZShBUFdWMEB1RFIka21yL2czSWgjRCQ1XTg+Ukc2Qyt3fTk2LFNqJnN8WDU1b1o8SHBBaXNjTWNZaCNbaWB8YyhkPXRVSihUcTI+Pjt6fElZL0IwIn4v'@; put 'MSEvbytGeWR7dWZ+dVdaYUxISSY1d3toSG1yKiQqIWVAMjU1d3goXyhLV2Q+NHMvTT9oZTI0Mz94eXc4ZEhRV0hyblRgYztYYjBAYD9gQUgpW3F5eDJwQTNCY1NyZGd6KVsuImNlPSg8SGJzNjRaK3hYWF5FUnxSN3RsIXBYdzRtWSwoYyFieDYrKX1mTllPTHd1X28lfGxTRURtIldkPEA1WUou'@; put 'aGF5QCkhS1o7RUd8ITswYWk9LEdsRmIydiNdOSV8KG5ELnpSSH1DRktzcG0xJiU7WGZjMjciPmVEe3xVdShYK1RyQmxvUlZmUWF+ZnsoJjcyPylUS3AvXnkxT2l0V2ZPKGQ5QEprZUM4QEpLb01yMWJ5aXFbbEZfK0ojZUtPV3doRjF9QmhON3BxMTY3cS9VPmdefTxVbGhObk5KRnlOMHU7VSIj'@; put 'T2lVVnEiZkdQdTthOEg1ejtQJlpYZUdDa1FlZW02cVllMH5OX1lWcEl+UGMhT2lgUV9BMVtKbml+SCFhY01HZ0R2WChLTUNleC9pfHBMVVlgY3pIOH5IT25ILl9zJC47eio+fT94cnZKczlIPzh2MSUxWmxmWixHQilOZkVhdkRfTV1Oej9XXjZ4P29WUiN3Wkx0TiUsQTZ2RDYoYzRzTSE6UFBV'@; put 'MHY0LFRFSG93eSsrT0xIY1I2WXwiYFg4SEFZMm4zUkM2X1ElekowNFkiMkxIfkMjdURpNXwlKDssUFllNGNnIT99clVsMC5VQTolailsMTl7OzlgLjhzIVJ3QCY/I1AqW2MofEw2R21ge3xUdHNCRjg7cXlEZFVtJVRSVmVSL0kiWnk4JjpqJX1pRW53dHVLdEwqUUZKITl2JEshNXZNTG9pKkVY'@; put 'SUJOSXltfHVINSMqPllgNT5vaVNTQUFBemJDQXc0VkJ4RElIIlEsMUN1Sz12RkBBdEI6P1JEMnoxTiNPVWpoeC5MQUFBQUFBQUFBQUFBVFgoNCI5cHdhTi4lXmZocFglXWhtY0FJQzFEaU1IQ2oiNzQzY2EqOm9pRWdPdD1hIixLZjU7KjhYJCxNVV8sS29rQ0tSSlA+TGtuJHBfe1ttUnVHNk9A'@; put 'cHEjc1hRPiMoK3NKQGxCdFR0PG5gakg9djZDc11EbzckXUdzP0x9bUpOM2Bobklwd01YfGRXcDlXUEwyMFpwPi4xTkM4LGZpWW4oM3Q1RmBDfF0yZ2IuaD5gM0AuXiMuTl4jWE01VDg3b11GVWlFWDRFPHppQEgsflhWfi5aKH5jZUJuTWRUP1Qwd1ZObzpIMDQ4Mn42Qno6JDE8QGJne3c3LEJC'@; put 'QEQjMGY3Lmw3bmZtJEJyWHdDN148XjNCTlpSXjtxSi5bP2RrSShRT3RXZ1NoSndhLzRWQFc+T2ZVUW94XjdkPXlkWjV7ZT4pO3cjPjptbUtyYngyek1Hd2VhbjJWOmtVRFlgYG1hKloxVE0pNS5YKV9TKV04azgwWX1waDs0Yjp+NlRFMVU0U3lnMntIYSQrPn1RR3lrS2FnU3BrcGkpVUZSdzQj'@; put 'SkJoRFZSbH0xdyNhT3B5Y3BNeU1sOCs/bS5eLnh6dU0yS3o+e2RxKWFyTmIxc0lPOHEpaV9CQilLI1hUVEw3c3VeRFYxSVlKfEJNblpHNFVqXil8eV97XWR6QERKK3V4QWs1clM8b1RoJEJxIn48MyEqen5dZFp3ODdVYFFEI3g0Qkw4MGRCTHNXZjBATkQjbUhNV0pzcD1qUHV0d3w/T1lmJklo'@; put 'djl0P1s8azM7eGlvaj4uT0RyXitsaEJYUzY+OU4jU29HOzglemhBO2FaOCJSdF06TmxwNyYsJHZbTmo+UjJKPShLYDhkP2V5e0YyU1IrU1gyVT0vZjJdaT4yWStqaFIvOndUVlJydkhFK0g9YDx2ZTFiYC8zRlUpRFZ2N2p8RnpWRmREZy5BfjsoTFoqaEh6Umh+eTtXVVRaJj1iNyV8KyZjYH5Z'@; put 'U354dkFOSyNFW1RZPzlpPC9PbG5UPHdAIVo9QE9lTSJ8X0JAQ00zNSp5bCpNeV5kQjxSSi9UNl9NeE90cTRiP0pZR0dTLnhLRypSenJ7Xzh6UUYiU2taUUIqX1pyYXVYfT4ofH0rZCZ0T0sheT0zUX53dUhTM0FiLEZ6WTg5U2BGXlRYdm1dJloxdH1aejhERUgqdHBENj0jXmNaV3o+UGErNFtb'@; put 'VksmaCk2MztaKHA5T098RFtnbGduOXsyVTlMRVlLNGR3NUBMb0cybUc9bkpoQCRVWWpsIWZqeUZoLFg+IWRNfSZCODh2U1FkKjspYzNPLFNZZnE9O0QrKSh4QTJwbTVRb09CTW01bzJHXV9zYGkzZjkpZEM7NWUqSChwWlA1Q05lS1clfEM4RiZYKFd2Tis0WUY4O0laLDlTdkxGI0V4dSI+OHF0'@; put 'NGdKd0dgP0x5ZmAiMGNpPHkkZVZGenUpZS84U0pfZU9CVlg2JXdMdjEveGdWSEJOTlRqN2giJX1LJiVkaS4mYWNOVWRPfHNUcFRlVzp1cDM8RX1VNzNnQE0oZ0NTb2F4aD9hQGhVaH53Tnc6cj1ZeElMIVZAdEs1Szx9YllVXUVebE1md24oJVA4NTxaNH0ufVFOODQwSUhSPlhSe2Q3dHFjdVJK'@; put 'KiU+dTNqfClYb1hnbFh4TzxBUTFaOE4kTlk0UUReJFVRJHQjWCtvPUpITFhlU0FQTTRwY2l9PXxkeGx9WEslW05pR0d8RjhuWkM1LixlbmpGai9gLmswKyV+L25AUD1gQlI6dCRjNF1XZ3w5In5aTlFTKXVYSWtTSG0qX1FFX3VnNH0iPXM4KjxGQXA8IUkzfCIvcFNXTldzLmpSaVR4YzEoSjRw'@; put 'bGgvVkA/TF49TUlGXzRVfWUkaGIzRUM+ITglNjFfTCZPRTEvU14odCgqNmRSQlBvLyZ7NV0oc19iQT52XTUvXm00aXZ4W3tIKjRVayMkQC95YUJieD1tcHw1KHhlRDV1Mm9hOXsqMjsqclpMfiUxXnRMVFpWLF4+QkN3QiJLPDN7QGxvYHFTJjwoXnhjajZNWj94VmJTajozSjhec0UkNntOR0Ao'@; put 'Ln1bX2FdQkd6QF5YfWIsWztKPEgoWlN2Zyg5SFpDITg0WXdEPk9bc1UwUVhnJFVZY35jSGUvWFBUTnkpMSYmZURGdjRIUXdUe353SGYqNk4wYUNdNHQ2cmNbe1EjK3FqblA0MSliMVN2Nzt3fX02UTh6MEd2Um44NnFeXiwmXiFAO2x6SDhRXmQ9QUd6Kj9pe3g7IUt0ZFtTQiZmM11fak5QMHgy'@; put 'JUJlRUxpZE5KPHE+aWc2UDBlejx2elFCNFQ6RWlsdEBRSGNxZ3QrIUY8eEhjfTZoQ0BMTUwkYDNqKDN2X3NwaFtQY0g3cFViXWMhd0MhdHArKWhsYGFkNX4pPXI1d3pxR0BXcE86QmRucSowalMvQi56eHVAW0IkXXBYKztdIjQlN09PZzFjeVpmfE5aMENVWSk6VkomfSJfZ2s8Tm80b2lacTNv'@; put 'fE9bdXk8Q25WbFAlXm1dO1RSIyo2S3xlUiYrfTtIYUovO3VWMEBpPGkrSSpDWjBLXWc9WE1jQWBMbmMhXzloL0dyPkU+R343RWskdn08L3E0UG1mbyhqREpocVMhWyloRDZbZWl8ITZQdTlMUyFJOS9laj1WalM+W2dGLDxRJCpkMTFhak40anU1M3ZfKzBXZmJ9KyZyfEI0W3FCNlpkZDBEdyhM'@; put 'c0EjJE1KODBIcDFOZ2VYVlMuQ0w+KWtSLFRnLkNZNCp1WnlCXXpVZjNYNnBUTlgjQSNec3xPSmxeT2NEYFdsTEpiJEhXYGA3Pn1vbVs9QTAoW2RlNDpddjRMUT4xUVE2UGV4N2Mlbkd0bmJafnIpZnxyY2pmKTRGbCU+cV9vKV0xQDpENV0rR048X0ZPT2FdNkl6XkBIdX46SWY/Pmo9Oj5lck95'@; put 'ejFBaGRsaVdUYkdXdnczK1IuV0UlYltIa3FQLFRnUCFTekx5KWlYSzhsYD9GYSoyVGBxZj1yL2F5ajA/bSEuTjNSNVZ2aSFJWlEyUl83NHttUDlwN2djdUx+NF5oWEUwa1NQSVlCZUlvQFNhQGkqcHJPaHxNMC5MODVSIV9jP0N+NTZqayYyYmFdRClEa2dFOTZsJStWNTdIciw4Ik0rSXssWVI0'@; put 'Rm9hPnZse2p7YyJ+fHR6dl9qb3R1WXtKSioxQ3hGVD4hKURydipqbCVaMnVsa1YsTV1+ZlZoZ1NnME8rUVF2KjhjPE8lOT5uRzJkMSg3dVtfSHlJbzJEaT9BcHJJMHYzZGJ0VCN9ciM4ZkkzcEcrLCxgbnV7TVtFOGhEb2dEUDJrczpKaSZVJF8sX2BNZlpoPlQ9S0xhR3JvLG9iM2w2MlFOJW9T'@; put 'WiVhPDtYPn5LWlJRWmcxUGBDMjJFciUsPSZvSThka35EPE85Wkd0S0RsbFlwPnh5SzAlWHhoX1lzZXtoJTheJkw+R2hwelEmeSg3W0R1RV1UJWxGfW0/MzgzRmIlIVg3aEQsWU5DYHRneWRzfj5lcEJNXUloKDZ7cDA1fENUI0deSUs0OnR4bnxGT0kkKnQoLiU2VmZzQGcjYV1Vb1gpdFEqUDo6'@; put 'Ml0xRkclTXV8PFZldSJ5Y1pwelN2Qk86MXthO0k0RDp8fFRFPDlhcismakBCJVdjKW8qdnFXd2kpKVA5JkQwfkAjOFo0d0tBMEQxUC5xWERebkl0PFklXitUNFUme21kS2RrV3VkdzF9Ik1QckR2dDlHaV1fej13Sy5vTWFbYGdVKUJ9NUFFSWBHfDFGbiRuUFdhaDc+ejxNe3g5RmdqPyQzO3h6'@; put 'MGlMals5QD9iXk1ILllPMnJ9JE5iY1g7I2p8PSxVNz88O3dfVEcqaE5TVl9aUiZaSVNyPi5XYzNYW34ub18iQF5XYVlIfiRmeD1Re0I8UChtXzh0aDhzLE9HQSYmb3VkbVMrPXhfXzQqQ2BVbTcuX0YhKTVkKldMfH5gdTJaPDQkdDtXSCp2L3A4bV0qPHJpVm1GcmEkLzY8W283Kn1VcFhvYGlu'@; put 'ZCRae1J4U3MpSmohKVRWOSg1WCY/NGo6QG1zOUt2MmtrUCE/QyQ7JkR4IzR0TEQyMVYxPkZ+dUBiczJ8UGNZTF9PV1s8ai88KDVJJFN8UnNgQnhdIWdYNGROOD9AIzhLZzAydyw8SDEoUCVNJStyZDk5Wz8sMUI0Mk5GNDNaUFVCezB8VUFeJW1ZTmR9ZzVaOmA+IykqZChTUGY1Sm9sSCk5UEY+'@; put 'S0h8dk5EI0xbRkBoNlRfaG8iUmskO1hXJjI8Pkg2Z0IzRGYobUo3VjFiUktDWXk8fiJvan5KJkJ+dkxNRD90cC9yWXt5ZFFXek5BOz9DKUNiNGg7Ti9CR356RiN8XzR2YS41JjplQDg0UkhaUzM2aVdoTmshOVs/RTI/XjszUTRCVkxue3QkT0cvKj98YW18WkNeL3NLfGBVRiRZWlo2fllBSEo2'@; put 'bG0rUHtSVlpHJjoufS40KjZiTT81X25ncGd3I00/Q2gjSGY5dHNMfCtXU0tsR0VqPH5ycmlNRzU+SVU7Z0U/PXs6VnorTlY0bU47b1BUWUdUSUg4ZGpMSy51YmBmV1IzMiRiJil5NE9lWjspQ3dkMX5qWVNfJXY+ZT9NTkNTX151bClEVTpLQH4vNHVjPDkxa2I6XWEzazBfdSVXOmA2ND5HWVU5'@; put 'RVomc1NHZDk+ZDk6Wzp5JkhFTF83RVYyWj8ifCp+KzQ4MWZ5RlN5dkBIQzMqWzpaM244K0FwYztKLyZqWnV2d1Y/PVMic0VzcV8oViRqX1ZhREdeSFlmYUFHSHF5eFM/cXJIfXk7fFRAPlRGMyo9OHk7azp8JHA+RFZnMFNYYk9UfFg7VlVlP21Tdm44UHB6TlsvTmMkNyRKODJbXUAwbCpkRFlF'@; put 'dzEzL0lKLl1YdiREWilxPz9JeFtKJE4uTChFWjguaWBbRjhXeE17TzRsX3FsLCFdd0JNTWAsTXIzQyFoTVJ2YiEjPX5Se14+VXxhdms9c3x+JWlWP2txcDZPcSlgb35XcGJJWm5ARUkuUHBGTEY5MSV1MUc/Pz5oNj8veGBCYXFxRFJ1Njxjb1A+YWVjWitqO0U8QyVdaGxdVWUzX2FWb191Y0kl'@; put 'JTRfdVl5MWsiZCxbQVcoaXBdUHlBXzJOfVolOFFpOj5Ce1hyUk9BfmM4JlN2JH56OyZASmlRd1YzNyp2SDVbeiE9T1klZHdLPyN7YEpbckJCZ21eZmRxXnFhKGslYmU9eU5HQklTQFBjcVVzK3d7TFIpakYiclB+N0Q+JH5oIkcyNCVmQE8jaXFoVXc9cT1LQ2JtcnZ8MkJTSEx8VzMoTioqdUUz'@; put 'N28mRjtmUjQmNk5BayNTQTprfEtocFhZO0FFPGs/K2JjaltjckNYTll+SGxVQkQmYVt0Q1dIeUcmWGFjZU4hajsuVSFPTSFUVypETG5YUThxTkMha1daTD5lQGJ8Pmd7SSFzPyM+XkwwVCh8JUoyfHdAa1ZCWXV+M3g3ZlsqM2MzPGd5MFdLcE1FdFIsOXNjQGJ3SzFfUW9wIVpUZikkUz9tUywu'@; put 'WClYNWx3TWBPNyxMQWtFVWBpfUNJKU9kNmR4NiRBRnp+ekFMYDhPfFVUNm5LUkFJJTVlflQoUV1dM0hCZnlmSSVqKkJub2QpS2xlQyxFdGpMczBnRS4mbz5ZJDE4eyNuLjNZN2k4P3F6UlMwRTA2eyJeUF95U2E0RllBOXBGVGs+aV4oJGhoYnl2OWkiME52fFI7N1FIVFlyeTEjezZ2YSIlOFg5'@; put 'S2txaUZ0Jk86MldXRGJrM186OzxyOCRORldZTzNMTSlyZF04R2w4LCllNixBSjFeUUlEb21uPktJQzkpSz1fUlNVKTtkeXlDSWN8am47QypnY2krSGxYRFpYT3U0OzZibTZ7ZkE3QjgiMXFAQFRyL2JDNFBZIkY0R0tNYzp0RDQ+P1JGbUZHUUl6cT1OVERIYGE8VWpvY3QxS3x6WV1sL2lrTDY3'@; put 'TVdTVW8kKTJuIytRXTpFNHtnZVFuRWpxIW5wPz5sWHJBLiRVK3NpQypIQiosVSt9Y2ZzKXAhZkMmaUUvWyhTSnRjT3RmXTBQX3pEQjdCN1Y7Pm48WkVdY3A6aTlYViRjM35feiJtTDlSYilwWHp7dkFbKFJAZHNsM2JVJT5HLmhvSHphPjV6VGI7Lzp2ZXM5aSJsOHNSOzZtPV5sPkpVaXR2ckUr'@; put 'Z18xZ2JwLFV4Y0NbWyJhWnZKNVlZSlkyVCJzS0RsMUFBdkgzUG8sQnFhdVJKZV4jYkdoQHlKPTtPXVBoPyFALDM7YGZGVit9fFJean1dMlF7Mm9HSTtCcnp3LFdPRWFwUGR7PlUxJlkxVz94WzNNZWFqcy47eyZQcDtkO0xDZX5qJFAraStFeGksckcjOXhjX1ZWXXprflpGfiw8QDdObWM9dG5u'@; put 'LHdWZzp4Qy9UUU5DXkliezIlWU5RKktdWDZmXVJ4eFRfbTZ7PXB1STVtP3RlZkRDdnouYXYrbkp7SjRRRSleV3U5Qj1dQjJ4PDw0WikrbT4zK3NvdHFXRiZXRSN8NygpY2NUdHYjdVQjcWgvKWNXfkdsUkE0dy92QyE+Pl5hd31WaitYZHl0TGxuZj9YWSZ2LCpZelpFKTdqfC5wWjhEN0lKNT90'@; put 'S0YlSFg6WSN5NzU6LHE8OnRTdTl2NSp5OHBIem58cEBPI19hJDokMGdYMDlubnUicldFK0Ztfn5PIlZVWnQ1Wmx2ekd8b0slUzM0PHEvOk4veUVDUW5saXQ8cnd9Ty93OkU0IUdUbTxFOkNMSjsyQ1RXaHBGZ2VDcUoxX3hnQkhLTjxPfEluRUp5QitbcXc8XjhTe1lxV3kpbVohfGo0Y2J1enVW'@; put 'LlJMRFRjdmIzWW4qXyszTjIzSkgqRXFHam4hNipFRjFqNzBlckh5P1FrNGVrTmlAUltsLDIzJjJXbn1JV2xIQjBuUW5icD1xVi9mUlozN00yZDl2WkooJjIua0tWOD9qIlcpWThxayNqTCshKDJiTX0+QXM/d2JAXl17LGA8VUpOeGNeeUssPWRLTFVnVSlIWnh2WUBQSjRyJXhNbjsuciEmcj5U'@; put 'e3lEeSpaQjYuTDdpVml2UHVlcXlfYnApJGVnZis/akFCU3lIJlEmUXZuNV5EXUUyRUZhXlBIYztwOD1pJSFXcCp0eDo3XWgkX1tWZlNgYEhnc0pFUiY2eXp1XjRFLCopaiwqMkEmVEksPzEiUigydjRELF5Va0o8bDVYXjZnSy82KW1pSFRrViM0Rz9OdntfNV8xLHxJMWFhVjF1O19YZWVWeExB'@; put 'bERxaz85ZDxWUFAlY147UDlSLisveSZNdUxYL3FlIWNlNnJNcCM6P1JCS2lEPjxILHdXXTFjWjNUenM9QUpxW2gqOSM6JjFOYmpzPUZQRWpmL0p2a14pIWRtRSwqbllAVUhARHdxV0VCL2ZMNmRYVSVgNilUUWx2On0+aDxCcVRdVUlAN3tTdSldV3gqMj50ayU5KyRdbEVzTTl2JmV5M28vN28y'@; put 'MjVwbSxSel5AbEFlMHJAbCxBMjJWQW4yN1pxRkhBdUx9RkJSMCEvOk4sakF3Q2NTaiF9dkQ0eWh+ZUQ3OTNnd2c7RCx9QjolVnZATnVMLmU+PHIjaFNVWm8+YC9hbXZCS0lGIip7RF8kVVFYKDclZTA2ZWBPQTQ1SnlaWzd5LGlhdnBycTkrbmpIeVJGPk0kITU1VHVWbDJxWSJZcT9MZFciMVsw'@; put 'JFYhWzhUaHJSMyRsLkx3cXw4ezNnNHc+M3YydTQuRlU7aWF2amFebmRURFYqQiM8JGQ+anpXZHlpRVVnRnkwJi5iSjxfbUNNJkYlTzdWcDg3aiwxTlpJVWRNVGhbSTRRMzgyemhsVX1KUTY9VjtuOj4jeVQ8NXl2d1g1c0k6ZT9APjQwUlpmeihzVlFIPD1IVjFxSm1aMEg7YFQuNEhXbz9pcWFz'@; put 'TiJ5dlEmYEBSYn10NHZKOTRNOX5aals8e29nRjpCPyxLKF8oL1Q2ZDYhVFRuX3hLIWJhQHZOQStySFN2ez4zSGkqeFRzSSxyXkdRQm11Ykdtb1A7JTZkUmskVjxvP1daODBCZ3xDfil7Ly50RWhMd21OYmhKfCVDeDB5Unx+LjREemhDVFhAUCZ+WUUiT0huRl07Jkh1WH1icHZbdEtyPltWZiNe'@; put 'OUwucVNOfjNdaHYzQ31uPW1uaCpUbzJ8bWckeVslMG44Z0o0dm9QMk5JRXUue2BSQ1IoSkxEe1hBSnNnMGZdcCM4dFRjTGphUmNKTS9DISl6RlpTeDFsUXZEMX4hKVluMUpuKW56SkhMP1RtXVVZNnt6ey5NWTwuQ1cjJGU7JSRXRjklPFgxVWswIU0vcW5oe1NCQF9tXjpBfFV0cjhRI3g6dWdQ'@; put 'bCsyaklgU0AmUkkvODxocS8mVWNGL2FAZ0d2UmR4Tj0uQHo5VFRhO0J3clt9U35rXV8yUnBnJD4mcTF5RDNpNHVeRWdiJjRuRmRjWGBzKmQrOCNFOXU+fGF1a2ZxXmQxTFJjSWk3eDtuJWI5KjVNMzxIOlhZbFEvWGZqfF9qZnNjIUh1NShIQCRybG1tbWVwTmRFeGMhcz0rV0c7V3x+cWVOPVU2'@; put 'P3JvQChGbitEQWZ8cCQuUWxGKHFERFhEaFV0JEZIKHZGMVhgPzU2RnglO2lyT0Q1PiZVYVgpPWxSTCYvdHJreCp0I29hLjtLPXxLOGk6IX1TdWZ1WFc+VWZJYUBYcjp5c2VhYVsvfHZNIyVbMjZrM2d0XmNHY1VzJiNzZFI1T2dtRjlqN0dMXVZeXlZ2O2BFfWg+bjE6MUM4dDRwJFRwNEphUnRg'@; put 'NW5FI1g4XngkUV4jMHo9blRvI1JVbUsrTzdiLDZ+O1VKPWMrIl53Xzoyd1UhZl5fbSFhW0s4KHt2diVDNkdmblpBRipNMnVUXk4lZkFFJGBoPzgpPihRfUZvN2ZbdXprN0ckXXFXbUdkfERLcGhJKDVbW0tkZCllK1s1I2prfUZNMGt6KUJwPDo9QT96JWt9MT5VX2JbTi8mOXR6PTVHRlcsNm5p'@; put 'dVN8ZFI0bW9KUD9KbzEuQCFMNmFxbSIpciZDVHUpMWZPekh4eHtJVW4sJVQqPXlMNH1jcy9uZ00hOjpjVC5ASyRrcT5DKDssWHRKO2JWVmBGUj8jeE1PeSh0W2s7aXF6TXZeKHddKXE8W0VpMXtXcC5jaXQ+QFBpMXZFUmE5YGlCZGovSzhhMzthcz11dl54PHdzMHMmQExgMm9iTix2RjFkazQv'@; put 'fFAyJUB+NHdDWS4+JX1INURDcSJIVVEzPGh+eUMwbmNCdXBQVERhTEk+fEUjNUZTaWNRSSojQyFfe2wlW3JUcyRWQDI7IjUyRDk1MF9BJHR5Omd8MntsOj5JWkF1eDc3QkohPk9PSWxYZ0x5cE5kZXddJT5wN2Z+TSslNlo0XzVmSHxIRl9rOFhyJDhhLzBweD4vQWV0IThDPDQzMSRhQF10bCRU'@; put 'Wi9SXVolWWYxb0ZgXU5hITYsO0ovbUJHa1QrK2UxOV5zU3NbKE5edDIpTEhRRS40RWZnPX47ZGZsNzZPdnZ+ciZNKC5lZlR6RFY2KFtxaHElTjpzN0kwRSMuKWxiam4vOjNPbiQraCRmIl1TPS90Vjx2Y1lvK0BARzddcV98Zn44fT5AUm9tYlcoUEN8RF94MlRyMCl0KEFAbi5HbCYrbTcoVExd'@; put 'anJiOE5WMS80aEBURGhTQHk3e1IrdktFI1Q3VE9ocHxNO1oqJjZEKmMwODRTSCM3VFFWUn15LjBMeyldQUt8PnlUcmJmZjwlTWVhfTEyXilOVElZOzcvcEpNNilzQGRVO1pkVHQ/WnVGQDgoUyRyeSUvRUx8PUl2M0RFJnMuYXg/JFVmV0F5I1NIN1AiaEZze00vdFBCUl1sXzhIbDcuR1kjODFA'@; put 'NndpUzNlcjdoOzU6bFszPzgxXWs7MXx4bU9FRUxiaXc+WUowajxpNDFNKkNXZjMxZygmY2NHPih6WWpzKj9XJikzInxmaGhRKzU2cTw4aH1ndkgyaSg4PSklVGQuYiVqPW5+W0xbYk8wIyo+d2tQcnZ1eSRtdlJSVi5fMkt3K0FYM3U4SVhwe3RlR2p0amhgOlcrREN6JDdEd101PWIqRy9VYnB+'@; put 'KzI/PnY4R2NuXlsmanlvd3ZfOFlLcklMc3NCcSxka2I6WT9QbyosV0dsWHg8Y0tSVW1OXUI/X3dUK1tBRjNSZEFTQHVjcm46NSQwKDRLV3loPzB6KChNbWQ4Y0xQRSRUeklFWWksS0tpbDc6RGdJV1t+RDk8ckVqJSg+dE5PWUN6dE96Y1dCYSpCU1k7TGpmKT5ORzpOLjtxW2ohPEZvUUo2SkV0'@; put 'IXo4VjRLTExyTmlia0RRb2ZVd2R+OkxkIl9VYkY6Y1l8fCYiZyFzXkY2KnhWTlZfJVcmT2BvQXcyeVFpTiVpYmlCbmRER3lANm9BNEx+aDIvLmN6RSlKflgrQGlTRTp4IktKYW19JUZ9L3Q8JGE2RmheYDpKWSVCK3lsSzZoYnhQN1RZXkd4RUkmK3EmN09kJWB6WEJVP35iRkhkT0h1USZQVlo2'@; put 'YldRcyljRStjWmBqTEFRV09YfHFbKGVzT2kwPmkoLmFDZncsMSZyeEVMUCg6PlU3fXAzQXN3Ujl9VSpjMnU/OTJAKEdpREk/Ol4mQU44fUxvZkZMaEAsSjBoY2w9fVc7UXg9eF8kTGQ+Q199QHJJOFk5dGU1S31aIytTZk5ZcTEsd0h3Mz9le0gmWS9fRkgmdm59XjB6dH45cjN8RVtbZ0V8fks7'@; put 'XTpjI1Y3IWZyIX1ielROVHwmbmExfWR2cyJ6ZmlIbj5fZzcuZ1VTSGVaazQxNHg8ZElqMGc8cj9dOHAwakNCJTIkblFbXTh2biFGL3tVT2d4OnVsO3FMPDFmQWtbZFdtZFcvdlFXQVRqbXwhL21ARnM8KXVVQ1drbSV4UiRCOSpubnBZKE5tbnxMUHteSCQpUXYlOlR3VXBDTz1bViowXztGInhP'@; put 'Z1J1WmdnUiJtVk8/PWlJaUpadUgldVAzKSRLIkMpOjx6JmQpeCxCaFsvVkk7X3FMUGZDTDF1UEosZGwudmV4RlBEYTA0KEg4WUo1dnNFLnpuMzY0ez5aIyx3cktbIyptOntUZjJAUE1iX2NMV2BoOXVXIVYwMTBPY1M6b2FZfT1+OUtGLmg7THJlSWJ+NFpPR0ZnajlHRS84KCJ9ZmZ7X1lmLlku'@; put 'SD9iU0tQZ113UUh8Z0Rfc0MwKjVNKTBQakZXOjcxZF5OYGhwakkvJGwzfTpWSVUmMFdfOC50NHhfeEZUKjtXMEQpVXMwXiFUemQqUnQpSUVoRlpQNlRjYU9KQSR3RSJFUjNxQ3M3NUFVWEQmW15eKWNdVHcyWmZuISVtOytuIzJRfjBdLm5VcH1bPn5iM0VWdGJ8bSFwPC9CK2EwM0MqSSU7dC4v'@; put 'ITlSK35IOFVXJjZpbTImdz91PCtMbih8IU14UnUoITpVX0gwPXJeIT42dThybUpeOVgySj1OWmtdXUYxLEFvcmowSnJMfn5vXW1PVWV1VHJdajYuYjt1UTFBa28oc3JNelgzQk8vPTpefVFlTlhnPzNaTlMpbipvPWpUMThuQlY0VzhEU2l9VUppNCx4cSowdlJzbzpUPSUyPUs9MDhLNXZhPyN4'@; put 'PGRsZFIsLix5SEdtcVsyMlg8IiY2WHUzW01oNWwqPGVtcTRsP1BGUnkmaS9hPytldFlDOHdOSm9lYS4pI3N+N3hXend8djYhJSpVSFpTJTlaSD40cTUwWENEZ3tqMnZHYn5nZj5tVFFZZVoyVCFqOHxkSWRfUXM2fEI7QzlhPitdJjN4N3hZVVFOPjNoc2RUUyZFWV5adDlofUhCQiNnUmQjQ1Q6'@; put 'aSEhInxTS0J2QSNWeXI4KFk+dVsuRk99LC5sYCg6Knd2OGo6P2RHcWcwWj90JHUxYmRmMTdIPFs0Wyw2JX05VFFRVTc5PURNW344ey9hbTw2PkIvU3J6ZURfISVeRzhjTCNoWjtBdXF8Jm1JbipGPFRfL3ZCJC4xO0x2b09rYT4+bTpMR2E8Tmd4emR9aEh2fGtCYUNDKSE+bltDT3lLaERhbCVO'@; put 'RzREM1dCeyVyPFFGfGhQVFtHRSVQe1hwdXtgVVd3LH1MNXZDQlslZjxNRTtiRDY2VUlGdHdOTHVFai9gPnwqMjhFP0J0IXdDNl9hWGwyMUVAeE9EPFhwI0h0QHJpWF1DMFBecVYjPXBDKGFPKnNHZ0BSIkNsSnlqbEFhRV5KezcpRTZKPTdXLGs/NCxRQXtJdmtnUjoqZ11CTl8pWiMyUWRkY2Nl'@; put 'RCFtel9yTyYpUzJnbHliTkdKRCssbXZNOjFQYXlzO2swL3J3YFskcC9NUGRlPil5IkE/NW9wMDxjakNsY3o7YUhfNyh+aS9mNEE2NT9FNls8Sy5OTS96fk9UTlBNQWU8eS9daH5dZFEoMm9ZLFJ0OzdoIS4mUGU+fjNeWTBCInpPZCFEbGFWdkZXRzZoYHJnY2sjLGFnbWx8ciNfKXBUPCNVR1hG'@; put 'ZDgpMFRGPV9eMmRjR1JoSTdBNGQlT3d7UklQcSZLTTUiOFF2KmtrSkYoZGJqQE5aQXE6PyhEZCVeITQobHZ7OG95YUhwSl5WMDMwKT01YiVaTmYzRm0rPXJnOGZzXzZxPzB9bWxtVWtBV01Nc0t9aEJkKV51fEopfFBUNVp2WVZ7Zm5JIV07NnReXXU5eXpvWFFINFFfbHY4US5LMyp3QztkME5a'@; put 'WkdQJiRuTVg4Zz91eH01UzwsLzEkYj5RNDJMd2lwaz0sMUBwOmIvciVzZyoxPT4zenQpYHBpXXJNO1p0KkE+YUsySWJZVSQpSHAlRCprL3dNZ0lrcHxsNWV8cFk5QzJXZH0xc3w2OiNlO3lHVkxdT2F1VV9nazkidnNLfEt4Y2t+OGtYKnxhckFwNmBhb2slbzNOWno9dWhUY0A9NjkuKkg2W01U'@; put 'LzYiZm46eUhOUTZTUC9KX3trWF1QbH4mbUowe3EpWGA8YX4xIkB+dTxIWGQ8YzdXVl5LIS8vQVs8LGIqMmJqczd0I1NVdmxqO1N4TVt0QmJSKFo9ZHFyXUJqTzw7X1kvT0IuQCFWQFkqKDFZVio8VHA6JSlBcDQ7NW4mUX17fDNPemcmUFMqJGZGI0RRcSNmdUd3STk1OGVuRERPbG9mYXB4d0B+'@; put 'JTgvJHkvLnphY2VxdVpXXWVIVlA7QndJOCFyL1tzZitpMW06fTtSYF5AcUBANV4lbiUkRVckZ3pFKnBJQmtnV1Y5WXY1Rl9qdlQ+dWV9Qk9WT0g0VFZNTG9hTWNGJnteKUA7W3J5VH1IJHtfWGVUQjt8aW54WklHdU1eWk9LXlVjZWBaIVojS2coZnR4Vy9qb3hmP3VVRSpkPH5fbjsoIWBlJHE7'@; put 'bzJZO1tUR081QHlsPWB6QHROeDBrSFZgPk93a0dtPz53bU5vaD4xJHd6UFh2dUxxK31gI0NgeHR9VDEmTkRjYjpSQGNPVil6elV2cUowblJUSmEwe3RlPVExYmQ5OGM3WWlBaHkmLDZ2Rl5CZUhPYDE3flQ9bH15eH5IRTc5ajpEfG9QTjJgLENXNm9oYVFrKWZjez1uXjUhcU1vJC5Ac1ZYe08k'@; put 'Xn19ZW86JlRKMXc9VWwhUThaWHpOTFElK3ZtbGkmYnhmfnVQQ35bcVdEailsaUtmbWBIbTsia1dOaCU9PExrQnZ5Y0VyWDBueWpmMWNUWHh0Pjpga3YrWms9TC8pRSJiOlIsWEpGYyYhVik3VWtLW3YiMiIvUVslYGVJTCs2cVhNY2paJmYuS3o9VFdQSThXPEpvWU8mXS81THlVbGU1YSo2Wywk'@; put 'JXU5fFBaZkxURGwiLl80TH1gIlYmZ1tmXko/cVhZNU00V1E3bGlnd25ray85WmVffm9pRVByQUVSb2hsJG9Uc2RRNWt5ZDZ1OmhhdE5mcipOT0xuVSM4dyMhZS9QakNKNiUjX2RbNzNrZmVGLy5qJXxLaWZLMlt2VXd6SXFocEN2XSZlJFMrNWcxX2NOYnZXUmY1PDQqazVCMV5WTzBHcnMkK0x3'@; put 'SDhIQChdV3U1QUZWdDJuX09ATEwpSUlNWVI+WXhaayVMRSs0K3crZUxsXTxdRUNsNnRDK0ZeSyZEXkMlaygoSWQyQmFGUUg+ZUtBNDRWSntMO1Z0XSRDYlNqP0lkO3B4dD9WXjNaOSZCO1MvI3RsIjVlcEM0V2pSVlZFVk5ueFMhYyNldSgmfigpWCpedVZUUWA0KlNnQ205LzFHLkNbRC5fY3Vz'@; put 'dEYheiFRImpMTTE0PWhuTDNtRVROUSJJZE9pN0U3aiJ5TVpebzReWDpvMztNVlRLWkBbQGAhb2RfPWEkJXB+WipibD9hUmd8UC8vP0ErMV9+KXFqOXtkY0UxJG9nPl53M0kkMzU0cylrc1dqVkBqVSJvNismaChxJCh+cV5TM3RXNzcwTXprNHUofFF6TlNCNz5ANDszdGZFV2JrW2hHcDVlZCpX'@; put 'dWw1QDVDe0ZENjU+fDdodWg/Mjgydy5He2UmcEJBJn1rOGJDMWQ/bXppUj81WDFAMGtMY1lVQDMrbVZ2VjQ4P0NdcV9KWXc1eUFwR1ExMywlNVpNXl9vNSp5ZSFxPHA/ZlVBaHFETEVXTn4+NUIleXpwSklRPGJ5M2VyIWZaP1J4RTVJN158c0UkIU90WHZuY2JoJWw3Z2x1OGFiYnEkK3Q1V0BC'@; put 'dzxnYGJtJDY5UEBOPjc0U2RQTGRyRXB4RkZSTk10PUZaR2NxUkYjflsrTltHRUcoeTwkTWlvcnxrQl4rV15lPjtRcCNQV205cE9tMkFGaVZ7YzA7Xj18VDVGOC8zInV+Mmh0Y0tTKmEySUNXVERxL117VV8yOndmKmwlJXZsKyFjO1hrTjA3WjMpYHo+T0J2KzZ5cFdZU2dAUjxVKGhQWTk/Zixt'@; put 'S3dUWiROfTF0VVFrMGh3KGpgeCtwKWc+ajlfajhvWlNTfVU+YkpMR2Q5SnBJemFwOHd5YlEpWWxbVTddJCIoVjtYN2JnQ2dKc29qbWIoSDNmU3p+ZDZyfEc0JDorfU8yPjNpdjFzeiNRQFtlJkkpQ1ZXK1glL2MkO2dfI11VYUExeyF+fUdOczVIP3QyNHtqVyZLYngzWHhYR196X3lRKS4zfDFe'@; put 'TDNHIWRmS1p0WVhnS1JJV2lFIjxhVHc/RVppfEJHTD54fGxEeFVIajtQWltwUzVeJWg+fisvcHdkSXplbXE9WDVvWTgkO3NHOnM6ang5TkEhdD5mT3Jda05Ba3EyeGdFKnBSU0xRcz1KaTR7UylbJF8zOjkyd2JWZGJ1SUJmO2wmNHciZ2tjPU5QbC4qTCZ7Un1xOSlPRigkZ01xdWsrWCVAcEJU'@; put 'djR8NCxZaUEwRTc0RCt4SFNWeE1iUSQyYXdsQUokZilva0BndDUxcTY/bkBMcit2UXVlTUNsTVQpL11mWHhGVEtDQ1F1eVFdQkEqcEVrLDRHW0JyR0JhMjw0UWc5JElTWGlAM2RaRGBhanJuTVBvc18/VVlFP0dPdWhCJFozaDo+RUd8OS99QGl+a3Y0eGQiUyk+anwidXBzSWIzbnpiNjZ2TD09'@; put 'fjh8WXtoZUlRPkI7b0J2OEg3KkR8RDxBTWBXdnA8d3A2IT5WTjJBIUZOSWtbbDBSWVgzLnEpTitPeiVNLG8saD1ycXIiY3RkNkZBLiFwfndgeXg2Uk12dENLMXVLVE0oZ3wyan0vMltqRW8wV2ImaXZ3d0dLMD8mWWIvPCw4cXNsaD5GcTBPcyNEWEYxMjM9OCkzdkYyQk5fQyJpUUVwdmt2PE0h'@; put 'ZUxgTis3WntpPFE8PGgoMChSSF1dNSZ4Mi4hUzY/ZiFQWlouTmQ4U3Q4PHd6JFMkSiI2amp8bl81NVNxZiZ6LloifE9ZdVdDTnYjVj1mPWl5JkFlKTZoek5mSXRfcix2aipSK21HIlpPQCZwfWJDVUZFLn5iX0piKjRjd0JzeXNwbih8WXtmfjx+MisoeT9MJmRMV0VeVkh2NS5zb0x1XWtDX0tM'@; put 'RXJjRW1fSkV7WSJOZnE5Z3o+SE8xfWQ2WjIhdUU0SiI4U1pRQGtOZ2JWfVZoRGImSnkmTmU9OFkqWEghYHoxVmdAU3Q7VV57QFlUZHo4bXsmdzs3SXJpcGB3NnQ0RyxbR0Blfiw/PEpZISJMZUNxbExgRXNvTGltRjUqWVlpV1cmaD9OImk5I2hWOHZFaktNTkJUSFVwUEYkJXB8XXQlaW8pTjk4'@; put 'V1NlWi9dNjVWKEJYaElUJldnfD5QQHJTZGxmLFVpJnRHIlU7Pm1IWEghN2Q0fV04bWNFcVgmSn5YSTM8NktUfFE4KkB5Y0d5ISJPRUcrS0psRnhHRXk4Km5PXiZmSlckZks9UUs8O09ST1A0fF84NCRrMGBRJEZLNVNfLCIrRjxOI1JIZ15vXjExZjUpQXo1QSwzbCRgRlQ+fDEseV1+RywsIjI9'@; put 'UXdnbTM7YiRnejJrOld9PmMpWV58UmdGVy89I31IXnUpMV98W187VntpOCNvaXdQSiNRRC54K2sxUllYQVFvSlFLUixmQVVQaHc4VGxDTkNDSVRMeVRlTm5lK3skIzw6dSV1RlJ6dnc0PXhEUH1sXVBwW0RpbykwXXgkczU+cjZVaCJsJChwbHZTcm5OMHkyZXdAJjk8OChxLitzeFZjcVddOzVG'@; put 'PyFJc3htOSRsRDA+QXBORGg3SGwoSlR1e0JTRmNCVTZxTSZAL3ZiUUpkTDJ5VWEqdyxjK1h4akxzMTIlZltqNlFaY3t1fVU1YjFAdUd1Rz9hTXtLQngwUnwuKH1KP3Y6UTBfdjB4I2Q0WHRoYG5ac2kyPStVVH1NSz1PIWw/WFgyX2ptMiJsYERGalgjQVBeIyMlMilAVGduYU1+ciZPVG17c3tg'@; put 'Qy5aYEZMNT42R1RvNT5bODRTV1pxMy4qI0s1QmFfRFdoYVBbbVhSW11zLjVNcFNKZ1pKUlRRRCFPMzE8ZUs8eD9jI2RjZ0R7bnUoay5xaCNwL2UsVT82Qy8hdWUkdXIhcUZ1YUNneHUqbXFqc2tSI0c1bnViYEl2QD1eZzNqQS9DfSkjMUFNb1czTTFYcmRSY0U6NiJIWnVZJmxAWXxaXWNdbW5q'@; put 'L2BMIUhGMmI6bDk+XiFBSXMzYm0yVD5+Lilbal9MYVUhOlQ0cSltRjZJeWdET088SVF3XWdOcXxtMWtpVn1mL202PzBYczI8e1gsdGNyYW1YJDFqK3FIajhHJDdRUkZIQzFyQVBjRjI1WXhKNF1vcE9HbDx8JkgxUXNoRSloUWh2Qk07MX1oZWBhQzg6SDRAcClhOWgvUiYhRndII11KJSYrckVS'@; put 'V1F9LClyP0A0Y3x6fng0NGohJEhkWXpyeW5EM3FMWj5jPWU5OGhoQHBIWGZBNS9ucFpZcWIqLlgodFpXaGF0SyFVfjR3JmNxNlNreSIlNTZ3M31zc3VfamE4eSt5OUZmPzBKTTdnLzJNfENeWkVMeE4sNE02SCttVFt1PE9QPzssLmhBXmJ0MFZdZiwrYyNFdiJRQSwrWjlefFc2aD0vaD0+fmRE'@; put 'ZnU2SDVDPDdWfT9TcztrV3w/cDYjX0dIdi5PVi96SSgoNDRKYmo9YihlRVliUSlPbzBKSCM3MUoxenVqVF5+UW9LVDB2NClIKU9TQjtldnVVe0BkVSNTMzloam56Uz80YEsoWyY7N2lnQn0qaHkodHFHMnxeMHB6bUZ0eWFSanFiI3ZqVVcwRktBdWNzTmxNN2loK1g0JHNdJnAsMXMuSmEzLGpm'@; put 'Rm0/ZzdBTUkiYjUzekZrI1BVdTpxaiNuIjBCRERpbVdLdEpNOz5jcVk6L0JAWSJpVCtpSHZdL31XfTA4UVt4c01FbFM7eW0ie1JgJFQ+QiVCJGtzMUhneC8/dTxlN1lFWVZzYEsiaFVRWy9HOCZnPGY5bl87MXhFIzUoblNvWns2Qmp1ckVtU0NMImgxSFNWWjpXKm59QzF8NHJyWCZxSThvbXpj'@; put 'Kj1Ea1pufF5sNVVTOD50Ok59fnQ4VltlfVMoPHZ6LC5GYSJbLH1aTkU/JTlle2wlI3N5VXxyenJ8L3ZLaHV5Ojl3JlhxSjpbVns9QXJkLmt5ZyEuY2NaSmhpU35sPT1lIXxeczhEY1hkQ1VPYEwrL3hnWC9wMns6b21xUV5ZQ3cwMD9ScmE/IzQ+QHgwNDBqVmk0MTI1PHdKaVdUX3FYI01wI3FS'@; put 'WGhpfmVjOEkrUiF9X0YoWVZzTF1MUSN+ZnxFdSttM111KSJiMCorMm1SQzYqNSQwVmtqVD1tX0RQLD5VcFdKW1hNKiU+aUlNN08jYzZePGwjcV8wXz9tUjBlIj5MeSZyeltTL0xGbFtiQDgpK3dHWCtpYClrO2VnP0JBOGdNQ2xQXnhtbkU5OjxWZCU0Lz8wQH5HVm1Bdzo0bWczRDJuU2dpZD8m'@; put 'PmRkYUIlcyp+TUxCMEZAVnBSQ19IZSVPZ0Mod1FeaCFHR0BJPUNYX1hFKlNMcnVWMkVXRSlCcFlsRWNIMVdTP2lPUzU/TXR9dmh7ZnxkKF9GSCslOktUT2R3WjskKzQrXlpYeChqTFR6bER1P21RcV9WUzRIMyh+OXFXOnNpfGZKPFVbN0hmXjdVQHJjRytaaUQyV04+KXhVaGt9TGZiTDFvLHZa'@; put 'UCE/YClIPzRAP0hfUTRiVzdZZDg0ZmQxYUxGKT5yN0creE1hVT99Q1p5Q3AmdEFPXTBhJXQqSylfaFMsMyxmPlM7RntydjtHc0p5bkg2eUx2eEFbdTJzSmEjeEtLR1NIZVZOWXlgeHRKZ1FEMEppZjcpY1dgRnNsZzloI0lCVEw2bUVsbkx8aXVrPihfZWcpcXAhVFZaeykhdjJPcV9tYnkrX15U'@; put 'bkdtKiEkQ252OWlVKzssdDhhcl9CKkZjUjtGK3h0TGRhfT44R0ZEdTJsZCN7Uig8Sk4sT1BkLFZ7ZiN1UGpMM1AwUy95YSg9VUU0Ols8XypZV1RXZnsiRXVSN1hlZkh4ZCpVLD09WCEyYGZld2o0R3tbMCJYeCxZSzdONT1pRmZLQn5+SFFOakxfRUJmc1BnTXg7UW9DRk1CYEhnbH1fakw+VD47'@; put 'YHpgYGM9W0U6QEhDIipwbmxCNlhJemhHMD9Fbk5FRVFJMik5djQve0I/cWNgKzpeYl5RVyRVd3VLWlA/ZEV5Onp2S2AvazF9d204TEE3RTBQS2xtITksKnZRIkdOI314KCUmL3cjITNyOyFTWUo9Oy5CbTV1TyI9aitDZWdvUl8leWgsPHkiMWtnNzBeWk5yW2E1XlVLZWQqJEFNUjwibnNXTmld'@; put 'a29+VjZYcT44VjFqM2Z3c3dyUyh0JHo6KXUqcWtVcWk3Jl4mPzhyd2EqQi9YaiVHcllydT5zT2wqU29xY0RBKlIkVVVPU2p5WlQhPEImYGBRJShNQEBhcGs+PF9SfU1zI248UDRRWU9CcEZOWTRTeTNiaT1qTGhuQDxeKWFDJk1dKlp7fVs8P2BoTF83MTZRMClFZFNqbyEvfHs0LktsMyZORXlm'@; put 'Xil5YmQucChUN1lFWCl8PjR1b3x+LClMS0VJei9eWG5KWz5gNX08N0cmMW5NYkQxb1NoelR3JVRDI3FdYUA6eDg4aChTPVtfNEsoZ2cvO2JwfF9zPEMkJnl7fkdmY1AuKEduTyNWa2kpKW5fMjsqXiVZJk0jbGhpM0lxaS5TR3twUntgbkN6NDVkPywkVX55bUg2bCZMNCUkdip3YFYiblEmS04w'@; put 'YD5XQH5MQmhmNTh3O2t3V3BQVHl3Uy5EKHh0PHEyYGVMMjAiPXxOT3IiR3xPUW9rVlAlek41cVVfXjJ3clpmZTpTJXk8Xl11TUZzdWNvU1hoUEZ4S3A7XnMwZjRYcE1VYFQlNilOPVZ1S2ApI0M1YlpTZDZkcEJiW2NlVUlHT0NQfj0jI2l3PUt6QVlXdHxhMWNAbVIhPH5XI25aPFVUZD9zOHg+'@; put 'UFk8T1B+fl9Xdm1bRmdNLyNMKiNeb0pYJTI8RnVAMVBfUmB8MCtfMlh6ezA4cCEoQk8+WHJTVSQ6L2N6bnVwLCYkX0slIU0yV0IkKUxyfms8ZkZjPEl0Wj9PVnhsM0gjIy9scDsoaWJ2N2JXUC5fM3Y2dzZwZ2JPRXclaEQ5cDhVKDZTcDQ5diFvd0lDLiROM2VbbmNULFl4ZXtOOnhueG1FV14w'@; put 'LElLT3MpeTN1OHMub21VVTlBLHx4QDBuJGoiYW8qQyw5XUVePFZjUDI3QWF6Nn4kO0lYbm1yP3hTbGRKSj9hOGckT2djTDFKMXdAMk9lcWdSW08qWCNBOGEsIW1PbEJ+dU9qZnxnO3ttdT5jeGV1aTFHXThGOyNVKk5VY2NkUjA4YUpPZG4wJD9xOighTUZrOFp9L2tNO3Y/XykrKV08UnpaJV87'@; put 'ZH1qdSRCVz1JUlVCNF03WC9AOyN1NEQ0Ny86b0xFfXpwNXMhRl0kUGtjJC8+RW0iTWsmITcjQUVUdDZjRyE9K2ZnbHVhaW8kIW5GUUFAKX54aVBTdW9YOCQ7Yk1qZGsyUHAlXiNtPE84Olo2KXUpKXVPUGBiJUc9RTIqVjdGRyYpdiR7Wkh6PEU3Ry9LS00rXkUwQS5Sbz4vJm5kQTRObClseHJW'@; put 'fCw5NjhZPkY7U01taH5qOmlpPTlMKDV2QDhZZk08IzRLdG90RVl5d3pRJDRuSUV4W3dWL1tpYyNUUkZFWlgpcF82KSNrYlJTT0ssdz1fNGsuJm5KUWFSXmFQUkIlR1Z+WyEyUkp7UGA4O0dBZDo6fmdXWDE4aiQ/UTl6YiROflB8fHFafiV0W3g/WUQ8JmcvN1cvOn17VCIzRWlzazIzaEQmX15g'@; put 'R1RNLjV9a3tGN3UrKjA7UzlnI25OV29MWX5qJEZnVTYwdXxJI29vdl8sOXdEWFBJMnQ4fkNmcCNXTyp3IXYyJilKLmRdTExNQH40aShhfXVSQVpmRGA6T056cm44JDp+Qjk+MSkral54Zko5SzJ4TVtjZkh3LyJVNT1HRzVZTnddSlpebzIlOCpEbX1hW1NlMjhBRHU1eD10Q0RGcWNQeDcwPVI6'@; put 'RVV6YWgiUU4/NFV3aVcyVWpxRyVAOGhnbzRMd114b1ExQlZtYjNPK2ZWUVd6N3RjVUozMHsvRGMlNygwWW5tU2cwTT9LKEQ7L2c8MFIwXSEoWXhOeDZmUXcyLjQ3Ljp9THokMlsxMmtVOnJ4ZWQ2bjFlNCZ9PURUO2FLN3JLNTB3LE5ebmZbfWBgOntDU3daMmVxMnphWC4mZXxwMjNuI2cjTHMl'@; put 'VDUoLEd3M3dSOT1Qbjs6QHtPZDVqPFhPN0ZMW0pFdj1mV3BiRi9HTi9MV0srLElWNExWKWRJSj5ldCUmRjpuVnFQQ3RWaClgJXkjenhKfk1jM1cpdnV2dDx6YS9uRSYsRHt+W297e0hYRWQrU0lQTTt2Ikc+ZCxlMmwifEN4YSopa2siaUpSLkJrKCNlQjN2cz90VEVrWiVMYjlsdWwvcFlDL0xp'@; put 'aVdvQ0RbfWwrcVhrTmFpKkJ5O3pXP1FKPkk6WDwjckBePC5VU0VVY0sxVjJlRzMmL3c7fHl2M152d29dVX1pZH1oOUtpK1csaFVEWTFHUHBOJUdqKypvPT1FcXFdNWZre0pacT1uUCZZckMmQEVVcDBxKXx2ZjE/S1M+PikyXzhJTSVWeChZU3Bqa2VIPWs5b2pHZiMyfHIjRUxuMUNjbTh6QX5M'@; put 'S1t1aUxILmdpS3NXNDIwam1uaXI7dGJOYCxAKGIzO0xlZTpyLCRMeDFVSWNiQzsjPjhqSl4yUk1+ckghazcoRylfZ0I9TWMoeHJ4bEkubDE4MCguW0hPYiRoeXFNV2BAU3FPcURWfmtSenF4dW11TVdoTzwuXy8lbGRVYDFHXj1deWBSZ3d4TC44WUZMX242TlFiPlJZNSgme1VkZkR4JT1pcGMj'@; put 'LiVhRy98LDMxLEBOP2tdR3c4RXU8XlR2VFtqSnpWUDtAb3VDZzdjb2QzXjZPNVMuWFNAaip8elhONFZLKSVVXTtMPDNoUk07bX5EfT5zZHY9dmZ7fC8zclNWN3dZY2NQMjRyMlhyU0xmSz0oeERCL0pycXFBLjk3YltITj5ELEtgbkUlPzRvW1AiXUU6KzdbTUlzQENTR3VZWmlHaVRnVWJkYmZD'@; put 'VVg4RjI/aCorRmpaRF8lRnc6W2VVJVUpOTlBVF9HSDV1fnprWG4uNlIlfWEoTzI2YF5ORlRBd0pkTFdRdkwwUyI2eG9JZTdkWUVXbzlmPztLI3U4PncjKGFiJXArKlQ7JFpWYyhDbWs0MERrcStydWglNlYoS0xgZmRfcF1den5Dc29dN0V6XjtLREglNnlIK0ZWelsofSF3dTNMKEJLOGR+M1Ew'@; put 'KytwRWFUL31URGhQOTJsNzM6bHN1RTZ2fDx7MV1jbzRuUD0yLFd0a291KFhVRU9xSi5RQT5QSCtaJXlQeENAc0dWJiVEL2VwUHwpTFojTzBkTCImKmd7TyFQaSZxVDRaSz1wZCg1VnJTajBhY2lQaXMkQj9ocDV1RVtGWGptazp5XygsIjhtYHsubU9bXjFqUj1oVHgjU20rL2pzez50T0YjK3RP'@; put 'aEtuSGwlek5ZWX1rd2k7WD1Ra2RoeG5DV017aWZxWDltTnBoXTtRcSVmMlFFTDlkR3Z5eVFeSFtvQyY2PFhzUmgoLiNWeUtjcG9MRkdiKUF3RWgvaVY6fEJmcyFJQ2RbYU9qaSo0cilVa3pXNSYwNDFuUE00U147TCpaTHwpJWsqSy9tNXA7WVtgSDJdVHgmJkBQL2AkL0BOTDoiSjg2dW40enFd'@; put 'UnclLDQoVDUzdj9Wfk1HOWhPK2xFO3ZDMXpWciQzQCFNOF9JaD83R01UUkEkXyJjTCJLajoibztFem53QDQpXUh1dztsRH0hLkgwbHdiaWpdaFQ9IjNfazBKalpoPmtqelFNQlZeKnY9USV0M3V0R3hmLlsuZXU9RSFnaj09QkxqJmg8QVYkZnIrY3YiRWlpZCRZNW96JSEmbkx2KlJYJjR0RkdI'@; put 'Xlh8Y0FEO0ckckcpP3I5d2gvNXZHLH06WUBiTFRWfVh8TCp3Uk48b2FjQ3NOZT1yZnt7Und4MDxUSy59cmZbeWRaN25Mbyt1by5hN3Y8JDNWRzFhMjhWOGwzZ3FWOVc0QE08QDY3JXgjMHpKPV4pSDo+WX0wMjZTW2BMNHg8Z18heFpqYHErITgjRzpeRmthVDhxQ0FOIyZ7U0ZVcUxrUFRqO1Rj'@; put 'QHRDRmZtayRCT0NARiF4NVdZcTFwNCguQTxrUn1ANUQ+aFBTNG9mV2NDR2Y3Q08yMHpqd1lmaUpERTJBflAmWEZfOUhSISQyVnY3Z1RqVT80dWcrJjRkZ2FzcSszezp5bG54b0xIcituaSk/YjkhOU0me0Y/cVQlXUdMLDRecmcrJUtfOE9LP1NON31uOElCSjxdcC9tZm09RFMxLjtoaDZTKlg0'@; put 'anxCSkUqOTVwdytoQFNwaiV7TyttLHxGKX1SNVhjOHtYcD84PnM8VzJbSlREImoyJipGMU90KGU/dTZWZGE1RWc7eE05ZkgjNzdpdEcsLk0uYV1QcktsbHRmSjBHNTBrQCwzNnYyPi9dTzFHanFWYShvanxwNFsldmFSTDtoZD1iOWwvRVJuViZeaHxMTzRQbzZMMHEoMjMrWUJDbV1ZZCh2WGcq'@; put 'KD1kaVlzO09dcCFoWj97RmdFK04lRHRMbipNfHAjQCh4JXZVRyh6c05fI3pQaDpycVlhOVtsQVdZND9xdVs5UT4kb3o4XmpaIU9pdXFDbEAuW3JMPlkrXjRsVk5rS055Yz1gb3VJK34/RzptWkRJZn1IblhzXTNVWFppR34pTj5PRSR8VDxjLktedUlBRSFyeDJINyVtVkE8W3YpRFNLXXI8c2Jv'@; put 'W1BJUj4pL1tBeF4mSmBRb2ZkZDNWQ011b1YhT0VHSClAdT0obiVJYm51byU6KihrNlgzZ3FoSmxiOTBMQjlOMktCMHozfW8wfC9ad2JqPGd5YztfVik0dEFTVkRlKXVvMjdqMV45em9PeyFFWV4ybzN5K3FOfldpUSt+RSx+akRDRHp+MSsoLmMvPGtkRW92JkIoM3tUY3l0ZyhPeCVeUS9rNGVq'@; put 'L0BoeXZiTDkwfmkmJXVAYCN3TTFuP2tCRCglQSM+QHtGaGdXITk8JlEuTlNBO2M5Vzd3KG5BZzY/flpJKnlBX3w1VW1HUVY1JHQ0YGhaPUp0OTluRSRuKUdPJk4qfTVhKlBlfHQ3PXFVRS5fW1B+Pj5oXVE0fFlrTTtDbCQkRH5uKThxYGUpUmBsRXlHS1hodHU6MkA+Q116TVg/LC9MRH5ad301'@; put 'YEpwMV5FSTlgajQzUWIpOWljIXNEPGExV1g8ViVKUGxpPCRdcixaJXpObjV6P0B2VT9TQi9tY2p7aXZvPnJZVjU2QUBrRFJfIWZNS21APztyanZOOis1VHlpKjJnMiVRSUpOP1hgaHJTN2hbWWpwZDE8LnBOZmBJWztqZHI2NkQrUGpeajkqVGhTPD1bWWA4SlJ+e3s/cz9vQ3xPQ3QhNStZP0BW'@; put 'WEVxW0lsaDdDK3J9N1FKMSpvPF1ZTkhfcHJFXS4hRk9pfnpkWX1VYiRTSWVOOTFedW5ZIn0vVyRZbillK0pwQDU6KUAvJktzYiJrdj5MNXl0ZVVKYFJKMkU6T1hsQT9de0IoXnxLamg5eDg/NFIxJWI2fVtuVDhjY3xMQWNGVDd3THZRYkF1WnZjTmVoXnN8PVd0UDorSzcuaWVhcHd2LEdlXUY3'@; put 'aT5pKlZ2JWRCQV0kcnFvR1gkPVElKDZePV5LTVJpeTJISTZyZztOek9qXU5WbHM9PH0mc3oyYUVfQXtbbl07eTpqMVFRRTNIOk5SPXM0aG4zcXpHVzwvPWFyR3ZoUCxJVFRbNyFRc1daTkErXjVlPjJ7bTdvQ29VSVJGal1pZno2b0hyWlQxYVB1Nyt1LDVRPiZnJXFOZTd3PE4mbnViNDJ8REVO'@; put 'Q01TPTRVP1c9PWpaQmwwMXdzcS41Kn1qeklBQlIoUiQ/YGF1WiF5WTJDb05GY3V5I3RxV2Z8UjMqTSNDUUspekxlaDNQPlhfcG4lJH5qTk01c2ZDZSpgX1E/ck0jPEtUeT98ODZhQ2B1ZVIqMVQzNUZkUXg/MT96XklWUj8vc31RPkhsfi54WGkmW19UISRYRSZESVR0ZjtiPkBzPWpLRCRwIWFk'@; put 'VS9VIVEpN2EqWTRnVn46TS8qUk9DLk0oJF5VbGw9bUJ0KzEoVXRTQ084JVE2cklucVFleldKbGxpeyo0b2BDRVtJIlN2OF9LdTlGS2dqaSVtPHI0MUNDYFFfQm56c10+PThwRV1ROlgqcFpSRSthQ2J5Kjc+QlIhMDtXaGVfcmt8SjFJbXMyImVOQjVbKzlKXipHbC9Edl1oRHtDdmckMXliYD94'@; put 'V3o9YDVvaH1NdVEweDU0MD9KYTdFe01ANjhgMjZpV1U4fUVSdUVoekgsMyR0O2txJH15P0BSWyNnTStkQyliMy9WW1l9bF1iS3BCeCtlJURbQT4qNGBKaU9LdX5DZmE0NDleUF0pKno1cHk7Oz8qWlo6YE8pUl9ee1IsZ0tpR11CZ0dTdSxSZUloMyx1RGJBdmZUV0FGdU0heV9JMjRAZTU4RGos'@; put 'UEtjZHx3O35iXTxvODNHej9qajc4eUw1Zi4pYmFDeCNgUmxnO2hINCUkbmRIRCIsUi5vPEddRiZgcEJXV00/JHtJcnVbe1tFemlKbHEsTDsobVt2c3RXMzJ2MHEobTZPVDRAM2NpKnlaLEhzbyVpSTB+bigkU3wqVjNVVW9OJEt5R2R2dXVyLzo+O006KHclcThpPFFsT29fRHBSIWxwUkUjJXcj'@; put 'KWZ3ZkdzOkBhUGgjSk9TWGFPYXdsQ0ZaY1VOZzNiRHxWKSVvcyw8b3FoUl9ucl5NTnAsOSI1by85U3xGQ1RgNVprWVM0d3R+Qn5HY2s5RTRweV5FaH51dyg5O2V+NF5xU0hUejI3dyNyR2NsTF0uITFqLGM/fXRHQmF5M2lhfFVhRGF0NEpdcm44PGdsSC9sOmwvZGNveXsoQnhVTF5QXl1vNGI7'@; put 'O09eNTxRNFhTODk4JiIqZjgxOVMrOzAxZDR6ajNHZWZ1ZkdQRE9xQGN2RTFmYWBUVmFzajZURF9FPXNyWiRjfllTL1hecGc+QG5XMzFLNSZZSGQ3bFdXdHFjd29GLj1pRnxfTzsrQiNIWWlAOlZ6eEMmaERwaFM3PHJ8RUVWXUxbKUNCP1M7SU82Y28uJH50bSo3VW1dX20sWEdSLF49P2dAZXpI'@; put 'Z2hQTE1RK18mbT9IZ30yVkA8TjlaQyJOTG45aU5+d1dIQFEvNFtMbE92ZVl9U245ay9aNUVSUCZVWih4dUFWYyl3OW1DNjhtT3Ngcmw0PSMkbC8weSwzUmFMLDJkQ3c7IypFJWxyXjYiQ3JxZVRgUHgsXzoociRme3NFb0lVLEZZIT02MGs1IWslVCtpa2osQmVpO2I8SW9zQ1NQY2VfIVdYRmMu'@; put 'OENndGRmTkI8bXJCS3FqPG54dDFoakB1OnwwPnYjNFBSVTY4STtwR2lKbCx6dG98SUJvPChnQHFtbDFmTzorcyNneCZVTGF6cX1UOWcpfSg/Xjo8W09hc2IxeXRoQHNgODxtY30pVnZwY0p2TDdCSU0qTEF8OSFxTHhNQztObXFbUXBGeT1WQj9XTlBXUUA+Y1Qifko+bEFgWGQ0eVl3MklvZm0i'@; put 'VVdDVjk+TEorWkpxTiJdYXk9JV99TWd9cntEWkRfMz1rdlpdIzFVKSlBTyh2JXVFL1hTcWM1YS8mPCxWJV9oSX47XmVDN2NkZHlhclcsIXAubVcxPDNJO0Ahd1RmfXFLaSove31PL3Qxe2BTc1pYNzZMR1ZqcHBQajxJT2NFfW9ZaiM6PTEye0VifDZVSk9iU1A2YHpKfDNDSDd+YHtPUUddJFcq'@; put 'Z09AMSFMVVFqS3hiU012c3lSeTxMbW1rLlZYTi41WS9zZHpDP2NvSlBNUShNYz95QkRvVlB+Xi5+eUxqMmc5eHdTNmAxbzp5fWdMSysuWDE7L2wjS1gid35QOXU3SlREaX1gZX55VSR5XT5HXSxNLjZWbElsY15QPytzc1MrWkI+TW0ieUhHeHFmLi9QN29Te01QZkclPWk9LEk3cGJPMjpUOyp7'@; put 'LFR6U3k/WXAmXz5RfExTdjElY04wfUVtdFk7SlowdDVDR08qbGVgKHU9eilVPHBoVXB7fHMvPH1rIk8oRGldeVFfNFdwUlpEeWprVFN2KXJ8Im5FU3x7a2tuWWhPOiR8aFQzQ2lzX3xBJHp9cFZOem9aPT4uVHAkLkw0bWNLWnc2Rl0kWH1IOkdCJiVEPGdMeUUrSmZ1KUdbdkV+eHhffG03ZyMx'@; put 'eng+SmM9NTV4ZUMrNlUsZkJ5RktsYnUrR0UhNCxVKEI5Nz5aeywiYy9CS09aPy5XQVVedXR7Uj09UjZudGw5IlIuIkdqbDxWZl5zfXRRQzMudVAmcyRULGFaL2sxc2NRJiZtZUcyX3BueWsuVkhxRmIvNHhjI2U2X21dV3k2Wi5fOyw3eWk7ezFiYll5YX1QUXpQJTQrI3JZREB9cmZzJm5ke1p6'@; put 'a2FqOUhVe0ZmWGg0bX1bYUQySGJbck9zRC9dQDlIalpqM0d3ZVgma1pMXVpZYVB8Om4ubEFkel4ramk/Rz9kNGdaNChPd3shXVJjfSY7ZCtPP0pKMWcmemdNM11nMjZDRGVLZEFkOT9IOGhMKzgrVilqXUhqKj9udkBNZG1TQiNLZjhyVC8kVXdWSittN0UxN3o0b3Bnclp1P3lUWFllWDw0N3Uq'@; put 'Qm57dFFAVUAmOy9jZlNCOitLVWglRUo3Om16dXlgVVdMOlQvNkx8KXUhOyp9aGNYaX5ubSU4OywuNiZoIjlpaUhVS1g7JD5OJkREa31iYiZvQEtVMC94YVI4IXNpTjsqN21OSXt0LmY+cCVVfSN1aXJrNk1HREV0Ujw1Xz5bKkUrVF9bKDsmZUIpaGZAXzwuJTlaMUpXaUplXyM/Xm5dXjBiNW0p'@; put 'M2lzQF0kQ0Y3U1s0Kjo+by9+OUU6XXYsQ2pga0V6Okplazk+T35RVU09XzppRTw5VC82YDczRiN8bnBsdHA9ZVVnPE01YHY3Lzo1aEhFQ0xPSSgodFpHd2o/NUtlY3QqP017JnNgXUB7Yl46N3pnblRiS2UsJC8qSys0O01EI3Y9VXJfZV5jajdbb2pvcFB6QDRgLlReQEtfVFZtKigrW3x5M2gj'@; put 'UkxERVMlJCtNU1FRb21HaTN6biRjbCFCdV9sbEtHeWRzalhFWkY8ZjJyM2Yufkw+UTI2MmBYSWphSEdSQlJmUCt5QklmUVF1TVdgNVdYZFlGKGZzdUBHKlche2ZYXl5nV19re04ySkhvaXFQPDBETUcsY3NNNkhoWTJBJWtHWEZdYlZEWmp4UF1ONV1gRz02V2Vmd3Y0eGsoQko5QnZHTSNvK0x4'@; put 'TUpzZmsqXl1yV1hNWyNnI3JhI2hMWVVAYDxOTDNlOE1sc0dHYUEzQUZZaUAkRSQkM3x+SWRjYEJtcnVFajZRd2wqT0N2bzduOTJmOmRMcnM8Nz5bNmxdazxjSEhpRHgjPVNlez8uOVg9JChLdWBSSFFiXmwsdSFUdz02LEIzKnVzNSRleWV7cnVBJGVQIV03aVVOP142XlN0Xm0rbSQzalRHWUMi'@; put 'WXRYOSRPb19mVXh4QV0oTmByaGJpdHsjTitgWmRxV1BCUz1sfmJaOD5wW3NBXTVqRV4qJE5wY28lOCNLeSI1VWwvPTY6QGAoQnQzVGpZWmNWemlbXk5ALz5UYSw0THE1QzR5X1cuaFVAM2N2RWF1bkg6ME9+P3EpPU1mKiYmeVlwTjYoYzZfP001XnVBfmRUO0RKK3syX0l+NlYvRiFxSzVbXlc/'@; put 'WSNXRHg2R0koPko6ekZhPkI9RHpGYWtHM2BYWz1dP2kzXUBWeHhqQ3wxQihaO2BnYis/ISMuRC53aTlGPSRAPG5fdH1LPW0yOEdoOXlWcWlqbDEoVEdDU3VHM31TV2EmNGg/YiRbNDhfSkdNW3tFNFBjWVclWVlHSHU4KD9yKmNDJjY8YzpSTT5IY289bGNFRUVoQnxkJGYreWspRz1yKUA4YVhG'@; put 'Q2IqMCxtJUIwbXNqejdgfV8pbkUjfF5keUN2Mj9uLHl3c0RZSiNaKSkrZSE/Y14qeSVaT1hTQFVARUBSdkNQLHI5ejZVYyNrVyRFSmlBfGZrdW5SPGQjTTpOcHUmdWduQmRhOXE+JEtpIyF7ekVdbUphOl1qLEZAITxVeFRgVlI+ZCE+ckY/cCxwfCl+cTlLL1EmWCE3dmRnOVV7QG1bSFBeLlRm'@; put 'XVYvX11uI2NMaCg+Rkt5SHJ7NSRlVldFY31NdndoYygzVWl4V1BkUXVNSVAzPF5TL0lyOFQxRHBAV1JjPkEvNk1MIjB+ZmMwV1hye09ffUtsWEFuUmtgJmc7RkRXXn15NkVpeyhMc2FVKm9STE5jdUo2S0BlfU5HdFNEPXZgNTVKajZAc3NfZCZ8K3V4RVVUNl5rXyklXjw6VEx0fCtmJmY/YXJS'@; put 'dT5yNHElJDdxcUFPOm4pJnlEPUVgYUxVRWlSPypXQzcmTzAuUWAqSjImcEcydVYycHRIPEdLW3E5JDksViEyT1lYOlJHZHdpMlFwcX5POk9Zb2JRWSlMenMvQFYmdlh8cl4iVzB+PzpaL2VdaTZHPV13aGoyJlF9IUxHTUtuSEhkR0ptYy8zejFZZG0pW0hrRiE8WWhZVTR7bnhIQTgsYW1SKC95'@; put 'Vm0vWyxyPSh3eERiRyVqbTdLfVpoeFRrbGp7R29EW314Tj5SY25IQHs+RVtpRmBlb05weV0rI2tFKnghJjhoOCJdO0xfKFd9bjhjbiJMSiF+ISU6Skk7X0Y5e1hsUlo/OU9QZzEuVi84UjclXV17bSVDLzo5In1FNSsxNGt5KGE5b0JhLHgje14kcE9ZfT0mQzgmWEQzW2FjZ3ZGI0pPZHFbbzkv'@; put 'cU1KcU17T1tgaFRbX1NiNzkuWCpkPTckSDF8JDVBN3dEVzlvSjJ9JiJBfiEmVChHNiF+NTVFX0RNZExGVVVGSz8qRkUsIURZVDgwTiFwOGdLW3laQTM2SSxXMVdKIi5bSGk8YGNlZ2ZRK1BGVWBqOHViUWh6TDRJKUh8PjheanNFfWlgWismOmQ4fWFWPH53XWlraj5oLGxbTTJKX1R1Ons6fGt7'@; put 'dzpVMXNEWTRrYjFyNUZzLmJCbiJXU254Okg9SEhmUzcqKTVtJlBTMigvX0U2XS9BaTFnMG51LEtsaF1DKXBQMk5rSFFkbTR5NG5UNTwwbz1rZjcpJVZvMjphZD5NY0x1Qz94W35nSCtxM3ooVSw1UXclVmN7YFhuU3hfSjRTLzxtOmo/JkVgem83X1lFWUE1Vk1vNmJMUCM6N2kmaXx+RjhVZE5O'@; put 'YDJqdjMkW0lwKzleQFRWZylPWmBnIz9yMGNrZ05ne304Rj44bnMsTFcpWDl0PXQ+SWdINE1DQk1+YF52aUJUMTJNSWlXflBkUFVYVFNLYGV0Ly9oJWdNS0kuNnROQzs/VGVbTTYiUXJzY2IqInVabmIhQ1pOUzE6NGJjZXhZSS9TRHBgOUZVWTdFZ0B7dk1QXUpibDErT2B9P2F1NjwqfnFLWUBC'@; put 'fDIhJnMoakhOfX1VSn59UHUiOGArfWY9PTBQcWYsQnhoYUxgcn5GUks+KGglZ2tlKTJaX11EZDhzfW5IeEJAQX0hWkxXOHMoUWdGZ2RbMj43ZHpsfTlMXkpeYW4xZjM1KXlmZHBRVFt4bFVNUkA3JD9FWWs8NSlnUl12R1BlJWI/MVkuQCFETFJoPWlZUyh4QS41Jm4ocixaZnRKYyJJe0ZuQXE0'@; put 'YXd7fkhvPnVpP2NBd2BTT2lJXm5JdHA7PCo9MDYsW3VZP1ghaHFfQVMjaGRiPzQ3U2cqb3Q1a0I1ezNdMmRxJkh6Zj5TbFApSFJkZ0h2cmcpYF87UFFwdVs2dWJmUDJ5fihkKz9kYUloY2JWZDU+YUxvPmtDYz4xME46O0pEdDo9IVA3Q0QqYX1aJn1sXlNTT15bQEFZOWl2ayohZXcydFJIQlRv'@; put 'SFpfLC5TTHYuaHBQVVExTlovK3M6XVZvSF0vT1BjNlU+YzQ0NTs1WGh4dF5oSnJCemR7Xl8vSVdpaXhwaTUjKToiLjxzaUZjIltWTHEhc2Fwe0NbX0d1RUlOIzsmeHEufjpLZiRGbT1dai8hPXcrQGJsRls5amh9OWNSZUVNSXg8SDh4XyxiO04mRCo+XTs0RCRJRVtZaEEvJXlqNTcySXBDL25y'@; put 'JXZ8cSZTKFp7NUp7TEtPJUs1Njx8fUJJI0pgZy9hcVZddCxEKCojL2pVVlRsOjVTb09POGkiMFJUcjU8cm5XSSxtQ0IsKnIxLzgoc3s2OyxwOkowMlB9NFkwMz11Zn13PGpBYi9pbXREdG90MWo5Ny93XT9CT0RORCVzb1VpZWVxSENTdSZYQHYyZ1FRL3ReYTByIVlaRj8uQkZ0dGdxZnZgfjA3'@; put 'R3N+IkdlUlJRcCg5R1diQztDNGUsazNNVmYlQmN2MEtYNks0VzE1LGYzKT9ZRzNvK3RSZjxIdi5IUmheeHB6OGNTXjxFOCZ3N1Q8JDd7WTcsUEM/M2d8YSZ3K1NvWkRAV2k6RF5AKH1qOjp5L0RKanhaaSVoITkreiZ0OFdpa1t8ZXE/bi5GPT5MLH5iNnVwQXg5RXFHPyN4LkxIW0k2fXRkYS5J'@; put 'RHxLeUI7V0lWMV0kVGwiI01VeiRKTzUzIlU5OV56YjNESmxAQn09QyF8PU8mISpjTVAmYzkmRnFLc3xHJkVFW0NGb2VJL2Q2Ni5Pa2s/bUteJX43ZGB5W3VTMk9KTSN3QEY5cztqUCxwP2AlO1ttYCxrL2ZkbCk8cSk+bmpvTEpFSnozQi4ydHlKUztLQDJPTkZzaTB9JH05Pm9BT1hiVDduKW17'@; put 'RDNSI3dqJHRjODJXQGxXaGJRfHZ1cSt1az52NmcjKzk4LHJaTDkwS3RvKylGdD1DOilZI1hjSVhUUGpONz1bTzhYTGYlUTgqY2o5TGRDOVFdMUssdCsiVzpaW0kiYHRKMEM4K1NeTT89eUNkc1lzYCJJO2NKdXh6IS9tSk04Q2RCUW8jJXZDUE1NO0lMdUg9d0ReUD9RK29ocSRfKzxMfih+OWNH'@; put 'clIpSiFqM146PDlScXBmLnt+ZjphZ040QnRZXWpNcGU0WG1FYU0uc1hoTVhJUys+QVcuR09sQmxsSFNiOX5XYzFQfUV9TVphKXY2ZzFYW1tEKiZPRUFISCNgck5DKV1uYjhlRz0hImc8PC9odDhILDI7b0pRN0k1V3RNPVlqa1JjaD5+LDdadiVedigxI3cwR09eWVFwfGRVIlhDSnpQOjQqYzg2'@; put 'c1dJNkprYyZodDAxM0JiPWpNRTszVyJMbH1sVGs/aWJ3elM2TX1ffEV+KEg4bCQldEI7Nm18YT1AMVZART0yeXZGUCNCLD4lUz9sVTRlQjhxNlN1TyY6QTF9PFI/VTB6bU1EM0did113Q10rM1Q6bHlkOW00JnB2ZkA5SWxnekdiJCVYNl0iQjkwQ1RJWEpBd3F+NHJJN2dFW2oiVlAsYlszV0Mi'@; put 'XlczKTxoZDwzbnpbV3AxfmVgY3QrbnghbXJTOmh5NjQ4SCMiJDUyMDlvVz44Kmg0UEI4Nj9Oe0MiQ2RocHlYSV09MVBqdEc5YUMkK09qOUhUM2lnZXhqSy85c2VhKnhLKilAOV1OejR5RytnNEl1SSVdQTFFYUBNcCtQLnpdMk52KE9rfEQvbWZNM1ojZHxLJigyay5oVDw8LCFJPyRzd1RWUTpt'@; put 'JmthJmtrZ3JMU3FxNDB7ckVffXsjPSl5am91UmlRPzg9VWwqey5jYy5CfSFGflh+dzg8XyhCX3BbTS8rSDQ2Wnp4UkQxdWJdbEdebWVXVSR6WkF8LmBtdV4raHZvSVZFUHxPKlpeKD9pJGQqKDh1QFl1Rm1FYlh8bC82XzJCUF5vbmhaQjV5PHtBSTpubjE7TyU/SjswMDRzYDxMJjwoMTFNXlNQ'@; put 'LzFpZUE/M31fQWR7TmIifTtdO3QxQGNqSHlUZyldXWx1MSNCRD93dDMxUy5FYHQ7TnE5fFtASH5MJlMqJlkwZlhnS2pmQiZ6MGxFJG16RDRITUp4TF9ARnN5Ky8mTFNzJU9UKERbYz1CUV5hJFJBQTVKY1kudUZibD9pdDBQLDV0MWgkMTx+bi5II3tCQ2VDMEhqTG97WGMxe35nXm9LVUsyZGxn'@; put 'XTI3Zl14PFAzOD5MY2RRWT80UGhGZ3RKRV96fTBOU24ofGt+VnJNfEU0Ly90RVElQ0I4PlZkelF1VzFtQGQ2TDlTbWJ2KSFoOVFCd0lrLEBQKywkeUNfWHhpS2hWa2huM2tzUnUyX0llKnxefiJ6JExBYkdtT0RfSzk9T3J3KEtCe1NuWEBUe2VgQDswfD0/TEBpTVhWciF6RjB5SVV+VWhKQyRE'@; put 'VihDT2IlQVlqNWthOSxTc3V0RWksY3F1LkplSDRDPjF1cUU3Q3YpYHk0N294NSJQaVhJM1Y+QWtpdCRfOmtnbSppclI+IzxTfjNkfnZNK1RaVmFeXyVXfnpkeV9dbEgqUzFxUU9aUjc0cWtATyxgQzgiWlFMaTJ6ey93TVEycW89aXlxc2FDclhvTE5SSDNYJXchdU40Nio4RjRbdzFAeWh9eFk0'@; put 'blN0cmNbeEY+L0VWISpYPV9QTmRzS1NOOSU3W186Rls4TGUkQyl7KUh4azxRejsiUmZDUjA2b0lDeXN8d2pta2NiWSlSNVIpX103VVMzTShWdUh5WkUvVjY0R1Q5ZGozN1lEWHR8T1ljUHtxfGgueXUwIn5tIiI4TCVXYUJmbHhPP35yNjYwLmNgQFFPfmk4SU9hNWM6KDJyfXZWVEl3ZyYiS0Ah'@; put 'ZGBNOlV1Q0x6UUZaQD4zOHE/YHFXWmohby95OlI+W2NZUzVHXilqblUhRk04Nih6JHk7L25vTTR0I1d8cVAmNVVbMWhdRk99XkFfSz93UWRkSyUqJmlkfU5MJEM3SjhNblEpWjxiQUYuMGhFbj16aXx1XjgjUz83IndFSyUmJlkrTCVeTTpvYF55dCNZWFRZP25wc0UvZmJCRztvXmM0a25qVm9G'@; put 'Pl0lLjI4d1lGQCN3OFo2cmdaS1BkWVVFS2IkUTlKW35AMi5EbUcuY2kidFhoIjoqTVhMSyVVbiN1cTtoPFlOZ1YsYih5LDZjNiYyR0RITGUxXzQoWUx9b1ksRVNCRVVVLixwZXU+IX02LHFML1A1Z0BqYC96VF9wLzc9TlkqWmo6c2FSNyIrMU1iNiI4PEZbLkw2cyhSYk5GRHo9Yj5iejhrXyZU'@; put 'e2E1TkBjKyhVby81OSY3QUt4T2l6Wjp9eihVe05jR2AlM2BSank0eXFZMyRedV9PUDFrSD1AT0Elcj5TQDAmVSsucTNhZk46PVskW25Rc15JXiQoWlNjOUhlIURjZCJqQiI0UWVUcnVUaEx1PE1nWDVzSCMjfDU2JXp5eiF9Nl01aENIfVQjUnJvPjlBQ3k+VVBjTFk8NWgkZk8lJTwhKXojMj90'@; put 'WGpnJjg0c3JDVy9rMnNiPldVO3JiNVhoX3J4X1J2RSF4U0dFKWA4PiZTcTBpWCsrZHdgX1hpdz5XLzs+LHhrZVVKR3lkJTdISCVKIUZFa3AoeVd3WnZtdS5dc28pWGRPODZPVllSTEVLcVoiekMydn14dF9bQk9rSDErJVZfNlZtYypuV3ZQUUd0N2l8ano6TTRQPGI7WVlANjxJMiE1U0Q7OzJ3'@; put 'QzQ9bl8oU08jXmZ+RSZHbWRIaW82WjdaeiljREZDTVcpJDtDZSVSMzpjTjlVMnokNTl4fGAlfj46WkFdQDRZPHxIaE5WelgvSH1qdkhieV08M19SajxeOFRmTXRvWElYOXhBZWxGZFFjIkxOXjFsTCs4PiJXLn1aa1BxO15zQERyJVFfISs8LD08dyo9dTltY0BHcW5rZXhmLyNQME1UXjh0YGNM'@; put 'bW92KW4rfjpCdi8ueltAUnYwOktndD8lO2g7cyV6SngsSFBfQkc8OllyI0cxZT5ycV5hLFttdlljaU1wKHk4UjdyfT1UP1IkYl0xKmp5NFApMnFYdi5qJExLZVdYZVRXOl93SnkzQlFZejo2P1A9MWY6aE5iRm9KLCFoTFU7WHErXTclVXhDQiFhc1ZPITl3YzF0ZyMyViVuMVJAV0I1MT93ViFn'@; put 'fVkkfkdYUHFycCM2Ui54UGRYW1BbaTh+OXZwTD4+dWJ3blNHaitOSFthUUBXNCZeIzJTY1l7enxFVmh5WkhqbCZbT2VpYmtaNXUqZTo/fV42TS9teyg6TD9oe2FHMiQ5cm8vbVE9cDouazBrVyUzIjBINiRfOSovM3cyZ0c8UVQqWyp3cEZLVWEqY1dBJEZbbSo7OT46QHJTVUolOCg+b2dATUEl'@; put 'K0R+czxzVilxUEtjX0JUbjZMKmksX3w9LiNoKytZTEZERV5RdyNKeD5jSGBERygjajAmLzElXXA+fUZBRFRRVCpZfj9SdE8uRG9rZDRqKyUkVjwxemI0WCs0aV1CS2VuSyUyUzVzNS44dkhIPHhkKGZpSjxJYi83Q2Y7d0I/Pz9UPXVXJmYsZCFyPFJjTG9lSEF5Q1ZTLz1HQ3lDI1E+fVEzbipi'@; put 'ZyhmQjJvMD44bSgwPyRNK2ZZWTtNTFJjVS5HbzpecV1UaVlyQ2hsSk5BOVl7TzIlTkRpZjZKUSg0IWAqdVt6JD0oNlQmMTVQeGJDaCNtSHVnc0I1QD47UzgrTXVnMG5ERT8hKD5fMlswcExGdEZsTG1JemJQdTpOJktHIStlKGg2OCtFXjRwWWhhLEd8byl4KWIzJDUvQzRMengrUTVsfllnZUMs'@; put 'YC5WWzs7NTRzemh+aDY/MGJYUDxtcUg8fj5uIXRAWU1zRVR4Nkp1KSM0LE9Hcyw5fkRxSmtAVVtoPSkzTGx5ODtAZXZHLzY1ZTZ9SENjQzFXQGh4VX5Nfks9JDB1eWJsOldRL1JKQTwjfXs6PzhkWjI9U1I2dDBRaHZwSmlISVpdWXpHd1NYXzFESyNWSE99Pi41eSNZQEV9MHxjQTd5X0x5T3Qu'@; put 'eERRYU9mWEg2OFljeXJWZmpeW3ZuTF5gQlhyNV5mXWMlYGg3VmlKYGN3WjR5UWwqW2osbzhfdT1Lfn5JaCZpeWc1PDA3RSpuMjxuRGgwaipQU19Xdld8cV5fODt6JnBPUTpRfnMhcyRnQkdSeDUrW2AlKmBjcEJwK1QiYXNBXk43Wm5RKEMjTDVWXVdML3dbIiNidDVgPkczS0BhaSN1RCs+OzZd'@; put 'Xmg8SjhZPGNrMGRQXTN5fmYvd11gSSQ1NkBSeylae2l2cE8zTzpRL2g9YUMvbiJ0cV4pUFtoYlsjYj1Rb309dHtbRjc2R0VLM1dlOEJPU1kmSVdgLzdpekwmJEZLczEuN3xmbEo7O1BnPlZkXTdqJUd2KHtpZSouWkN+OixFZEhwP3N+MGxwZX5dLyVRIiEvJnJWYkBVan4uU0ZLV1J7LGJNLm1N'@; put 'R1YzQEFFO0YiQlZEREsxKCpiVDkqRkxBXUNqKyRxPmBrPzF1MiwmTjM8QSVWb3luVTlIb2goWjImZVRIUFN0RT8xWiF1biNdZUQpSyxxYTpzR1FwNHBVVilJZTgvdD9IRU4udkdvKU8/OjY3ZFchWV1vW0JQWjpkSX46cWJvRjkyRHdIcjovNXlSTjhhZkBHM05COWtfTWtSQExKXzQiWk02IT8w'@; put 'elRJMTJBdU14STRrfThJO2YpJChTRUtqQjFURk9aZSg3fXhUfUFpUnpgQGI3SUMiIkJNNEIhYlkzQnBKcjghUkRJfGB2PHYoZHN9a2ltTXlxLlsxaWEoUXcpcWphNWZBeEJZKVRyfFdeQURYLjNSNkJbL2dHO3cuciNfU241bkIkWmwxZDRbTzdZTTA6PFRzMmphLn1tbCg0PzRjIU49WGN0Y0Qu'@; put 'JCFULy9URTlTIVtscnQ6Z3p3PGthV1puPDFJb3Vkdzp3TmA7azooPWExR3NSY1RUNWB4c2Z+M21RVWRpfGd8UF4qKVtgPDc1bmFTO1J4Y0dkUT4oW3R1alZpdCtkVUFhb2RNU3MkY1QuUz52QUFLQjl6QUJda14+fk07UE5JeWwqLz4lW1ZIb21lQXdvPDg9SE92N1NUeiRNeyFWblRiPX1LVz5Q'@; put 'NFcyP2hfbXFZR2cqcGIwI31HWi54YTxbaEJOb3c7ZlBeNjV2fTtUQDM2V2dOInVbNVZAPFYkWWc2b2JCUnMkPzooeykucFpoJTRCO156RU5bL3cmSS45YztJSk9uQltHSm5OQihUR1E9fEw9a3RHZ1JoSylhcnFhUyZrbk8oMSRHY04yflQ/XncmPHkpMlFTRmc9SlBzKy5SUXtfM1VAZiljWFN9'@; put 'Z0pTdUI8WXJeb09eMHZNLH1eUWZOPFhZMCR6Om84SVNAUiEld3RHLFZUWEtwdSMsSFRiOGl1THcufWtuKXBJJHFsaXRePH1ybjVLZW81cEpzOGlhMFZodzZOYnpaSDFsQTBjQ0wwYyhjY3gjdGEsc1NMfVZYa3RrfUl+fWxvZjdKOmdHPn01ZCZfZDRwNUlVSis1ejc6QWlYNUhGSG4wdUw/K0A+'@; put 'MUpZVDFXVF41UTQ/eTVAbWQ2M1dNLjRSPEVxaTlRQmB8V1JWfF05N0lTWyx5SDBeJFZyZkVOeDw2PzQ2TT1GTU1IQT5hLGNrXSxFMG1ZMUN6emR4Y01HeUBrPSN1dipAY1g2ayw5MyRuJjZpcCYsZnpvcnk6Qn1hU0BeIjZbZnhIbndmfkMiKENBUkE/Wmlkd31JfXxIIzQodldCMERmOT1AOXpN'@; put 'N24yYSZAdVo0Lkc5JmdYTGdFY3lsPT9WJjwlRXgxSn19aHBvIVRTN19mKmgqcFZNfF5WTGx2ZzdHbnowTntlOkUjYmBWclt5ZnYlPkJ5dFhFSEFMNVRoIVEwRUI1eHpwTEJ6OjVfJTZPK0RvKFdDTGdia1ZgfH5BdUthLDJ4bE44YD5BdEUkTlFlUExwZyMvdSQlYjRfTFpIT3JUKzpCX294Ukw7'@; put 'WE58UjB5SCNgcWYwdlRqJGVheWpzQmBGOml0c1piYjlaamZINGlKcCl3ZGg4SnllSmg4RFoqNG4rV3xhR0s6UjwrSjpCQnQ3bS5TOmo/dkYyODBBInU1JWdnITRmfm1xfGs3KTdqUGlkdENWTUIkXyJMNDFCQyM9MWBjezlXaXs4KDhNXiNxYGBSPlRrK0hlcCIkOChQelt2JjswMl9iS21Renp3'@; put 'Nl0zJCUkcXE7dHReajQze2p0dXgyU3lhOU10Zyt5KUsre3hAUls6bXxUMlNQOyxRdTd2LDkzWTlAL0Flaz17MzUlV2E9RVZ4PjREZUBhazQ2Uk9WRVs4O21ANmJ7MFFWNTNoYXZBYzZFUzlQJk8xdGNQKnhrPEh+Ul9iREU0JFFjU0BOTChDJmF6Sit2Rk1TLEdZe3ZWRUttWixnZU1gLzVBSCgu'@; put 'Q15CTFUuPihDTWRoREk+NjZPR11bR0J3aztXP2VveGdvVlZTKV5eOW8rfkxIXl5LRSowbk8wfVBsYFRHR31zWzRSRjEzNTpJQHkhUWJjJm1ATXhBT3hANikmJGtzOl88dGxtXj56STFCWmVobGZlfTBVQnVEK2w3a2prInkoWnVTOjdaZXZwR09zPCk6PGR+UikwN2p1cFo6bXIlIixvNTdXKCZQ'@; put 'LFApKDNKKHswXVBTRXx6TDl5SjReJUI1UlJjfChebntuQiorfGhmOlBKMSlwczhfRlkyNiN+YyxJMC5pZnovXT1panE7KT5WW2hsfDtDWDw9e11FXU95PW91WWxdNUlGIU1JV1lIPm1sPXU5cjQ4dzIuXVM4alE1LDlnZ3J0Tj9aV146Nl89eWdvVzkiNW5GTnsrUFNdamtYZTMoTnFATl94O01V'@; put 'b2lQbGhLUV8rbGdlMFNWfTp1d207IShLP3A5ViF9OnNucSkxT1pELCtsI21PL2gyWzUpO2x9cTBGM09uOjA6KVREUEk6TCE3VEV4QTR3cmd2KDwvOnx5PntwRk5OQy9OX1hJPFtXSnIvTXg5blt7V0VwYkpfcls9QCo1SGB8OjA2TzVmWmg0WjNDe2hPRGQ2UnJ9NjdlQyQ4PTdOI2x0QVQ7Syt8'@; put 'dV5KSU94PU15V0J4X10sK3M3WiEvfVMyTnYmT3s+am99YyNCY2RqWGRxNWFMP201PEhsOk4qeVVLTWNWI25BUXk6NSM5LyZ3c2EoRnxyOGBLPldxe2VoZC8/Q3tuczswPTJ2ci9CPmh+Kz1jaTFaUHMzNSVybyI4Mj53KkRdW1V0VFdqRVpjI0VTIyxEWml8JGMoVSkvdkRLN3xrP3Q9fF0rbjhZ'@; put 'KnpNQ2N3WilkWz5QVFo8P1Q9fGR7RmlTJHZ0ZFVmcndAakNnbTFOZ3MyKHFeezVFb3opdCIhXmRnaCVhYXs7PGZ4aGd9aWtwNWA9PihDT0dDQ1BwbXk1PSszaHUiPnM6YSRGbndZTl5ib0JNQmhPVnpueyRwXVE7TC90RFQ2dUJ3Ii5dZHhTInIuNkhgTm52XlZzSENgPzFlUmw8fTMrcWZkXV4j'@; put 'XyMlRmtfVV4obCFRVnhbU34qUF54OVRJckE+aT5Ae2hbX25JZld4OXFoe1F4LDlWVDsmI0U2UXp4c2wxb3NwI2oiaHMueCpAZ2xkJEloOFJOODgofjNOWmpUTSo8VHd5MSkoTD1ocWNOK3pqQy9gPm8oTVM2UituO3FCV1M0MyRMbEQ2ZDRVVCV0aFMwOy9SREQ8JDomZiFaK1BGKjZoI2U1PiNq'@; put 'Qjs3Q2RDRG1qVEZIMkMzUFpBbWdMI25WcVVpP2BTbGhxeldjd19RdT45az1vaytzWGMzeUtLNWhMRUouPWUvNUpTIyRiOG5FSSg8VVpyVks3LklxeVQraTc4ez5Ja3xKNk9+Sm0rdHFhSFd7bT1Oai84W2c0cVliR35KZEBWVm4kdV9KeSxbV1VBOlYoZH59OylXKClNRDQ9TilhYzd8eDNockl5'@; put 'Xzo1YGdKKz5uMzEkInZdLig1Z1d7eikkMk9HMHcxTGtCYC9mTnQ0Uk9qamRgIzk1ZnZ6X2BTfF95IX5gd3ZifjV9Kkw2P2wkN0JRRyQzSTYvN3xHYkM5KzYoczZQZnx4biYzJm9vcmohL2lieD8sPlA/Knd7RVNIaDR+OHY2cWZDZ0BNPzJFcm0hZltWLFJFR3hfLHVXRHBYbmhKW1pIeldLSTs7'@; put 'dnk2LE0uSDZjXXBPcDljfk0+RVlVOEZKJkB1JC9teiEhPWdWNURPKlJPUkQ6VENkWGskd10uYWZ2dnBOYG5bTkk4O3RdNSNJa0EhK0RHXmkjJTcxSjw3P1ZNP2ZwQjwxP05PMVVRMF4rZXF7fHR7PyU1TGNaaiZFUWp9WSV+YzJucGZje2duI1RfVyhuKVNgNEBgaDVJbWM9UnUmNWhTY29sbixd'@; put 'UXgwRX1QI0Y+ZGg1SD9VeD8oTnJHQCZUJCpCKS5JMSxHUm1HTUlJQkk0RWd2RS88dSFHSCNiIUBFX2dfT3tsX3wpdmdpS2lqLkI2eWBHJDM8TG5wcFlTbysiNEJtYD1KS1Nsa3R5QjcqeD8lMT0wUXFDKndqdm5OcnN4WlYwXnAyeFZ2dnAwdC5mNDI5bmNlQGZjWHltVCMqTyU5RGI7YzR2WXAw'@; put 'VHBJSEYqdzc1Y0VYNFo2L2pUbzE+JTEmW1ZsK0JDQlY3Iyk4RFoxNXlVJXJvT3o1KCpZRWxmemZ6eHplYX1JKkd2eyFSbCNFM0dxcmgieXFAMlJ+dys9SENKISE6Jl9Wd1goQE92UiR9YCthX0Q/MjsrNkUpWmpCUmt1aXpEL3xSe1VdR2dRPikmQytFPCReUWk4Z2pBZU0jP3FZSioyU3dfckF3'@; put 'M1M2SCxFXVFvPFRBM2Mpbm5AVWpuRjptdHplPTMhYjYmMH1GeTZLRW9UM0VMR3huNkYvXy9JQFMxY2JXOE0rdnNsbEtpL2JCRzcqS1F0YzU2cVZ9UCwlT0FmW0plPCJiTz5dd2s4Tjc9LixJQztKK0o/QzldXnVXLGlgfD44RlBXPUY6fm04NzBwfkx3d2p5UF4kYUtuXkFRVT9kNW1YZFZiJEo0'@; put 'VnkkaHxbdkpZIUpra3ZvUFVFdFBUXzRBWmV8fW4/UFRRb0Y9ZiR0eTova0VnOmZpMGVCQytNPH0oek4yPDNBWU51Mj1oSDJNJj15QHtZfkw8YSZWRVpvcU13JXN6L3RkVTRuUFg8SVtELjY1I0ooO2wzQ3NXTix6MVVIdFtlUDNlKTozUipSfCh5WTgwNEomZnBhPSNNRVNqflpUSkd2JHZEQHB+'@; put 'JXQvcjhyfCJFMGQ9QFkkKnwmNl5zP3dnOXBrcVphYSJ4PmB1OU5sSmVJZSJdW1J8OS93emJxIyt9WE9hO3QuPXRHYSYzYi5tO349cG85fTspP3h2IiQvLnVDNTEpQjVvKzNfLChFbj1tPyVKTF5HZVdnNXBvam4wJXA/ajo1Tl1AM3h5PX1KKDJTUHs7Wlp2PGhGaDBEYi97VCtiM0cwZ2EoV1pd'@; put 'bDFgQz9PcjRoLGxeXmhTZz9HKH1DMS58YHdKYXczbSNlXTZeIyJxb19QNG1gQ099IV5XOCFeS30+RzJybTA8NVZLQlk0Myt5UztUZHRYUWw1dksiXl97emAvSioyb3Y4VVJ4eilBO015KWM5UlR8RzFbMCZxZUQ/bjtYdiswbFp+XjAjSD83Lz1iZ2pNZFpDYHE3KFFBJDNeYWkoakpvZHZ2LFND'@; put 'bTRwVWlwRzZsNVReZVQ7M0c6PE5Bb11lc3B3K2dCWjFBNXw4Q24oZiRfRkkhJCsreUZRN1s+eD93aDVrU31YPj41cDA6JTpgWkBHe0dALyRaJFM7IVBvKihAOzI3T08/PGtCb3o9PiMsNFY9UVBdVjtRfnYxYHtoeC5YZHw1QXhkWVJQSVlVcUFLfTNBZEo7fEMhbG9IfGJ6SE5ZVG59Q2xwSDAw'@; put 'W0NDSGk6fGk/K2crQ2EmMk0vQk5pSmssKHgzfFg+Kzp9Q0dQdSIkTGtHVFpYfWhpZDdIL3M9PFVRUX02YWY1SExoM3lQeTB+Q3U3RzplfF5tJWxLOFJdJXdDayhrMlJYLFp9ajRbfEBFODpSPWxSVHsrNipRI2xQTDV4PSRJM1RTIzwhM3VFMGd3bSw5PEMuIkl0SVFqajJ7PCNoZkE3L1BiaUV9'@; put 'dDl5O0UkcDtVOF83Nz1JTVJ4czhbVjx7OG4sME9HPSpvQyF2LCphfm9uTDt+OXRnViN3WCVCQSNOKSw9SkopNltTJm52SC53YCFGUypbfStjVzRmS1pCaSRhRU8zWVdCMVMlZCJDT3FtL3twLyhRJD9FKTJrWXJjaiRINExWJWRpOCsqPCRsWFJHQzlLUSEvOTQ3MUpuOkRRenZlPztZI2I6K2Fy'@; put 'JnBbQVRCUX5xb1M3TjlILjBjZkBrJUxgK2FPR2kiZlVMPDApP1pxfUpDQilVcm18W2oreH06eDVVKTl8PXlIWHpbQnRJd0R9TXhyb3RvS3BuWktnUj9OPHt4UiRifjk9eVY9azlKM09qN183aW1FRkVpNm1HRFVsa3N9SWNFWXNMZVtnZzYwWWU/fE86UWZbMWRNVVY9alQ5IXY3fEEwV20lfkFm'@; put 'U2t8KyFZeT5iN3Q/YmdpTFlTdjFVc0tMdiU0PnowNVRydnE5YjR2WUUjLmhxYUV6ek9TMWt6NjksWTVLdV00eD1DUHB2ZitQTWNsd0J1clIiX21jcnBjRGhhRE1qTEd7VE9jKmRiYzJbezozXzFGUk49Wjd2SUF9fHRUTlt2Y3ZLVDRUXWBJMGR5VFNETVcwVF95YHFCOnkiNz9TNHV5QygqQltb'@; put 'dkolMXloNnkrQFZSdnE8eEg3RTYyN1M1NSRkNVh4SkxzQm8se3RLPERWcTNIU1lMImdBJSY+JjVQTjM+WmIyYlZAKXc6R3YqWXY/eT44Q1o3WFB1UCgiSH1Rd2NpdXJ9S3JDfXg1TGRvTnUoPlp+K347bF57VHdhL0pKK2UuRE4wUG5wL1NPfWl6cXpKO35HN1JEXnd2e19vemZTYX4yRTU+anYw'@; put 'UlIxWyw6OTRkYD1pNE45YyNgdVJdSkZkX2MwfVhZUUosKng6UTlqPF5VaytPQjBFTGFdM2E4Tmw1cilYUyQ1UENuJVNtZHFDRzxnL2JvRml1dmsmYHlCQEksKllwT0UzOzhYfF50Tnk5W2VZYnloWSwiaTxbKi5uZTJla1JAekF3LGtjdHc2YCVEJiJBZmtIV3llbEAmazBSYXt2fE18LEsreDtC'@; put 'NSIweCQqVG9tcnpYLF9PIkR8cFV8ai9GXyM5aiQ9RlJXb2k+VUBpZTJfNyhYMCk2KG1NUSY+YEh8e0o/WjdSKnQhOjgvVldFLzJXOWtLdTxqdGJ1TFM5SklGNml1e2RAPW9ndSUoO0FRJUVpYS8qayhxTSFXMS5hZlI4ZyZmelMxTnB2Mng7NmdtR3tZMSRXVDRLdFpEKmA6Ql4sdnAoIldNcU5f'@; put 'OiZIOXBqT2QjfWJCaUBDSStgM1pfN3NTTn5JPXxTK3hsOVlgZXpvcjxTYW9LR1gqPDguSWJTNCJeVjAqLzprLyVZQE07YklnMn5vVXp0IS9zYit6bnRCPlE1XnV9VjNYS2A/ZWM8aTA7UEE3P05FOkpOITU2In48QkRLIUVSZUkxUTpUdUk/SlIqMU5WMCNweGhzYjYqTWZdOSgjZUVIaFJ5YF1M'@; put 'RilOeGd4YT40PSZVNVlUbnV3WGJYTFdaMWc2RSYpSUFKTlgjZE4xWiw/fG0raV05WG5vQ35oPVRHWVFLajgvXlJAZHFifWYuVSJ9V2M/cnJSaT1YamM4LldrQWNraEhuW2dsXUIyVC5pbHplJUg8I3lQS3dSU2ksaXpHS0ZxNz1yPGddIkdCK34vR34+fU0zRnVtMnJyT3J3PGZ+OiZYX31mWHk7'@; put 'VkpGQXBTPzYlQ35pOGZRITloSnxUK2Akblk0b1l6VCx5dThbfVBffSJybUE6VG1mYTJnbSFSWkZwUWJzOXRtSUB4NHhqYEk2YFpXdDNoYS99TFp+IXNyNnpQKUVrdG9CYm1wMnZNcz1balJtVVE5dSU7Z0leWG10KlN6RjVoc2tdXVtbfU9gPFokTGZtTTVbW2E0P2w0Zzg0YV01PnYhaV4icktw'@; put 'ckVJZkdUemZ3a3VMIWpucz1FKF1QeHVUZHpvVEMyUnUsM09PPyRuRHk/dmNdaEVeS0VpISgzMUVdWDVrcTBBUUVIREhQaj8mbDNZdF0hS086bmg8e2pMVVVJTSZOTSlBN1ZGJk1fZX5SSHVsTEZIUERINWQ6N3BTTUlZXztjTTZAeylWND1jXWo7bnNnazVNLmNvbnsqKHYvJlB+KjRQd1NtS0xK'@; put 'Rn13VnJyeG1LRjIwWkhyU3FvS1JJOXxocmlfdEZ1I1JlNik4P01OaWFmZmx9c3FGLnl0TzlZayRLeWljXSZxWVVrTjBsYDVtd0N4biVCXz5gVSx7fE9UaXBOajVme2ppWzw+dHBoP1dnSi96KzJ9flo1OkleXXQ4MjxSLHUvfENSKWZ1RzlEaiZTKSQxYXVINyElR2BUOyQ6dXh0X01zOFswRn1N'@; put 'NWNjTUNHdVR1XUg+dSZZbEsiWEpMbVEhXUN8VF0/Ty9HMlE6aTRLQmU0RFkyYEliR0hKIVMqW2VYNXJ6djh9b15oN2s8Uy5NNTg6Ukx3fERkLE5vdVVpN1QlVG9SI1s6OkZ4UnNRangpNzlXeiopQzEhWT9NLisuQFhhbiV8RDxkc300R2hkPDZ7RiFdVW89fW82M0BeekBFai9OQTI6SWlbezxY'@; put 'ViVFOW0kbnNoKyxRbyRPPk10UHBbTjM+STgvP25mV2UoWlFSPSomMHhRJWJATSg+b08weH4/MEorRWRVc29KL2xTaWpiWTkkZXRoSmJEIldtb1BATyNAYmw5JSkua2NETGB7aGNlVmA+IV0xS2tnU2k1amgvWiNAWVZfL15sQGI0X2BHO0g5eWtpPS5EcUBLI1p5SDh5eXhAPCZ6QyVGTm55NSkz'@; put 'VmIwY2x5VHJgXS9BRiJeUkhuZnNpRGgpS1hVOl5RZ3ZDY1giOXRKTiVrbFM2LHtTKnkxQlt6KEZYdiMkR0hLc1NqdnJwUDpHMXFfOiRdblo2ZC97UStkbmA1JENTUmtWMzRgZG5pa3pLZytpeE5AMFNlUF5rOH1MdCQ1PlU2WDdXY0QrZjc3Ynh2WTIzUDg7ZyN6Nk83ST1RMClsfHNuTSFAYTgm'@; put 'SUU/ckAwfWo0Nkc+RWUqKDZXVDFsRlgwYGleWG44YWQ5Q3kvaWs2bURIKEtNcW8ldTdmIVM3MUApNEsoV3NbPFAlOzR7I2AyM1oiIm59KHtAPERCTW44LygpWnVZfDpDRURkR1o+WyxzUlJWeStKUTg3e15GIV4yKixyTWdlR2loMmt+JjteSDpAeDBpc0BuY3dJamR1fkdKSF8yW31+YUVpPXIj'@; put 'VXBpZi4wdGd3RzpYYkY/fkJ6fVg2eyYuZlBndTRXZ2Z+bTsjXUA0ZG9eWE1nalJOdCl8PG07ZiFUbVJseGEzalNARWdSZjA6SnUrYGh1RFF9LGMqeyNuL1RUdF9GXys+REZ5aG1ZSkZ5S3ByKVcscjt8S3QidCloc0B0K0A1JjpadGQ/LlAxTmNjQngwNG42dV1pWERgWSZvXjQlYl1vUit0amd7'@; put 'aC87JXBVUFRFZnNaYkI3XklDRUIifjxAOXVnWF9Ve0BWTzYrenxXWHxxfmBoXjN5fm9QUSolYmkiZjZZdTtGVltOJGhoNls6KSVpKUwvWl8hUXViazQsWT1DcnVUJix4PmlNQ1VHISwuP0prW0VxcG15P0Y0PTR6ODclaChyIngzXixnbE4iTEBrUy5fJC8pMjdlTWFGMV1dRWFUKTdlVVZQSE9g'@; put 'bWo6OHtjPTBmQEJEQG5LYjNPLFJVeU0/OnxualpsVUZIO2B+UXJBP00kYGIpVnJeU09AO11lckc1UTRTdT8lQks/KFtXYV9gQkI0V0IuSUtLLkRPYVdFaGVnLiEuIzBsP3NRcyMhWEJzSip9N089PkN9UnErSzBrLHlUejlrOV9UJmp9KUl6emYrXyNFOXRsZyMkWVRhWVF8MkIvOXBxVHsqaz8v'@; put 'IWp6UGlRNC8kTUU1OD1VWFsuOy5QRzEvc3dlSkVRJXZhayhWfV07e3NDPk1TQmNTLH1mdVEiPDNVRSQ9cWlbJj13cyUoeU41eCtdOShKMFFORlZNUFROJks5aVopcS5JfXU1TFU5RWt8TEhhJEd7LFZ4SmI6IntkaEhPNipTLklFOlprd1AuSyE/fUkkWSQ8OnpsSzVkZ3VTUlRaMU1NKT5FXU12'@; put 'Pi4ufVZnazxINzdwSHFqYEdWJS90XXVYJjZzMnFBP3FbeCkjRDlkeltTen5waEgoKnB6VVtdTzh+bSJpKSVaMV1CdXVNcGlwPnI6Il5heDczcmxIaDtfO21+NEc3fXF1YHZ6WnxpKDFePXMhanR8cjpvTmJxWzB5IihrTUc2RDNbfEhgcDlNTEpsX358Y0E+bFpCRmwib3ZdQnRNITZOR3U/ZltF'@; put 'ci8/djxsUWg2dUZvWmNxV3RySlQ8ZkJTbz59SiZYU3kiTHNiYEEvMkV1dHQ3Il9HXlV5IWMlJEpaI0ldNmQ1bG8lW3A4aEFtSiRtKX0mZWs9NTNJdiE7anF6fXZ0YERWOkwrR3V2Ij5CaksucnEiK2ZgPEZdQ1U7b2wsT1YjT1AmaGlvNT86XkIiN1JWXXc3UmNBR1poPzJUKH0mVn1oNm1CMnJi'@; put 'V1d7ejhXQDZLa2wodXombSNGfSs6JGtJO15wdmF2eDh2RUU9b19gQHdxdGgrfXgrZzNeblolSnA6XTxrcDt4KXJ6JnA6YWE9MCp0TG1teFIlNVd+cDAscWQ8WW91QTUsdFBVdVpxI2pfflREZXhpSUF1fSw2aF8sKUA2L0diP2o7cX5FMV9IW3QuYXV7MXQ7XTpVPy9QWmJ1SyRAZShwQE9vaXoh'@; put 'QER4Ozl9ZkkoKjlYcyoxYyZsR0hWfVlbaHFBYSh5bW1rZVsjeGZ2SikxMSk4MThPUDtlL3hVVWBVfiRRPUw7VDFgUGUpZV4sKiEjX3FdSmJVX0l5OWFHZzV8XXBrSDZ4V1VaTEJfKFhtL3YxWkI2VWNeP1J8Lnl+UzZddTJGNjtfeSJXM289NWw1WmEuQ3xJNjRwViZfO2l9Pmw4RzdTQ3RmMHpf'@; put 'aDQqWHJZRzhJUDZCUFRZeiM+YV4jJGdhQmNlclVjNFAuKzZwVHRbRnIpaTVAJmZjaiFGVl5GSE4zYFRERDFzWzNPcTY3IWRiaFBEJGlsRTtRPSZCRC5ROm09V2RvPUdkI2l9UmMuQUQhfEIqaDphZzk8OEJWUG4vckZIUmk0WDs8c04uNV9pTWYrdHFtMGROJWFuNV83NE9tQD1JWmZfZUArMGBD'@; put 'Qz1ZKF9ZXVlOQCsocz9kYjVicGp3YW9eeHZpUyRPRn1ge2xCSTdfcDk4cW90VCZoVTRTJFMiQ056TXRwa2w4cSI5W01QIyF7Vj12YWNXUmp8MHdYL2VDSG9odGY1OTZwRXNkOmtrV3Z3PTJqUUt0Skp8OGI4LFBsQlhlMjZYfVtXVmNyRVVEUyFHYHckaz9fflhFfWArSkdqIzRyQSxnJU9WNl9U'@; put 'aSJHKDNyMysmbnlmMlFPZHlDUiNkclB8aW86R1k8P0ouRUdpWilaIzNiI205Nk1WS0lIPlY5ZEB7cyRkT3JZaWdXcWBOS1Y/fCs3c0x9QXVQc2l+WmE7PTdBKnBuV3RGflI1SH1OTzQrRV1ZKDlLXVdGSTw4Q304ZHZ1V3Uxcmp0VzhsS2dXYWBIX257YFtXZEwxfVkzbm1qflJxMEIsfHNFfGFk'@; put 'ZywsMnxzcSg9aWshWnhvSm8mSylod1YrV2tlMCFzfjs3bSFoNHtWRTVCXVMkMyR6Myx0O1pOdVRXaiZ5fkUkd1VxcWtvaW1eYmhCRihpVW1CRnZxZjNlZlRHKUI8fGB+ZTdWUiVXYHJyb250LjFnaF1CQ0Ywc3gxJnh1OD5NcCpDUSxuRyY2T1kiNzEmfG1OM3wwUEppLHEuS14yX2RlL1N6MzYk'@; put 'MUdRNS5yezchZT4jeXZAK25hRHpKPCosJXpjS2hCfSprTWdzdThtd1Q3RGMwbWZ5fWBCPVVOaURqfFtFM2A6Xio3X1suN1t6KE5zbnwpRX5CUEJiJDFqb3dSY15DZXB8VzNePj5MUHpjVi5FVE9RYUkqKXs6ejwlIVBVJEYuTHYxIig6OlMxJi9UUEpdR09GSDdDUDh2S2d4e20rUiNPNEcmMW9I'@; put 'I3MhZyQ7emFHc2VFJWg6O0AhKTR7U2VsOFV6VUI7JVRVNkxfIyNvWFg8SlI5I042enw4QDBiensjX1p9RVJXIyJ7UGB+UzllaC91RmQwWztvfUx6cVRYU1Y/anhONEN9WmohMmYpVT1MMH16d0JGelUxakVscHFSdUhLNjhvZUhwNVg4KGxPeGlqTi5kLmtMM2ZvNHRqPSZoLzlTSEU8THooZj07'@; put 'UDY0T0BRNnApSTYxMCVOSiZbZ2tAPXZ7JTV7KjBOJVJmWUJKcStaKGQ1R25PbiReVE5fSn1MRkR3QzttK0R9dnVZUHUicEYiPTVRcz83U2RpPGtwJENGaGxdeCY0R1hBb1VhKGNmWngoJF42WGF8cDJmey90OGxRI318InI4SzxnczUwaVJmTSFAU1cyQ1tdTGQ1UThON0t0Rk1JZHpYSjcsPS9M'@; put 'MWRpYTJMP1FnO014NTBCM1olY1M4ZCt9KDEvJml6IStvTXAvYzNdMHFdfSkvSD9KRHMhSHVNQGd6O3owPk1xLzwvNzBEaSlybGM3Yjl9ITJhaTZ1alNsXSRCP3dhM1E2NEdmPktPSSZeXyo6WDVkc35qSkVlS1UkSkdSYyJZM30ibEpYJWdgLllTMF9rRW49cmk9entzeCZ8fkVxISV5NU9OfGpB'@; put 'U0hqY3sxWkQuOktOdX1mfjlPTTNnRUtKdzlmSTJOUXNER1FROnVHJUEvSiliXncjdWYvLE58Qzp5a3NLeS5lOnJweHppYklQL2omVjEhaUdCO3w8Z0sxL19Aakxdfm8xJjxtMHhYQyFQaTF+S1VnVnxeMTlvSmkjaDE+Sld8VlVdXUBBMHJMaSEvY0d6LH11X1hfa0ByaCg/Uy5ofTlqPnpaOGMm'@; put 'KVhrfSJINGUzcE8kZXswKCVdWEAvdTVpXXN4WCk9JX5kemVyPVFhajY4ITM2OTpVPlpiX0d8flc+PVg9TlBRYDBGK0V6WCYxfHMlM0N8WyEjfjB3fnc1Pl5oQ3h8VlY/aCpwcUxVIURSYDdxWkBmYF41KC47OSNjWj86XXdZVU9FRF5DKVtYLFp4enR+Q1YuKCpzZHViUDlbKkI/b1VwPCsjUzR6'@; put 'LHFZSUsueCl2JFpTMkxPMn08UCpKbCRsWitvRHc/PEFoNiUxOHw0RWhXYUNZQ1RMXzhieX0pe0w+clFzMFlfS3EkPFI5N3U8U0tLdH4pRl1PV1lzXjVRTzBiRVt9eWolOzJWYjxbcnZvfmQsOCF+fjckYCY4cm4pIUR1QjVjc2VNImNrP2NYK0wvYXBpMEcibXNub2EiPkd5WWl2KiguUC93M1Nz'@; put 'cl9KciFkO1JUXWZ5S0dTMzJRXmlTcDJiNHw+KiZ+KCV0TVJVYnBleU9SOWNdUUBdRFJHKWEkWzkmMDkyVWgrZmlEQUJXOUI2T0hqNy4pa2tqdyYvcCN8REJZbjheSUdMaTJLSzxOZFp4PzFsdTtlQUVSNXZUWEdVSDdhKX5YPCN4Y3hobnplalAkVXJMbzVscisrcHkkKUlhOk4iNis5eV19QEZa'@; put 'XlZPYFt7a0tra183fXVVOXIlb25qPlglKGYhSSltYG9FYVcmKktmTWt6Kk8mQFI6Uz8sYUlRP0Q2K3N0UyRKYFo1ODI/LD5KU2xUUiloOHNXNSg2fT56TnJ3THxyLH1vYF95UThPQX5uOzI/ZyFeREpoajVoS2pGM3FZNVRQQyFCLz9QIzlPM2FCVXkrVD03THpJKTlWIyMlc3Q/MFcsQ1ombW1C'@; put 'fUN7TXB2cjptdyRSWE1vQH1MJTU+QylxcnF2V0RFPjl4OWBTeVZKZiJyfWJYYiQrPlQ3eF9MPTVSKihMbDtJNjZGQ00vTF0wMkBpPSt2dylkUkMpezQveCMkWWFab0kmKSw1O3U/cGBuUSo9eT5jMCxERSVDZiY/L1NKQSJPX2U5OW9CPS83KTdUfmckMUByQ0o1SE98MF8/fSVrSzJiLyhQe01i'@; put 'RUVWfiY4Qz1xM2NtXm1zSGhdOSl7bWpnc2c/Ky4lX1EyZzBBX25qS3AuQF1rQHBMTSQ7Xmksa3I9LmouYGBnUChzS3UuJWlRTXNDZTxPRnkyNypXcmdxQnJucj06K2Y3Sk07YHx1ZiJLIj5GRkNUaCxoLDI9cz96PFg/NXxfJm5BNmxpUERoMS9ecVdlbjEkKzZWfkNrRkBIfUVvOkokblApVGdo'@; put 'THc4M0R3VWckSkE8bytIbWlKdH4sdVhwZVRqe25sXnxhfVs2PkdDK3dEViE9Nm0oPD9veyJwMkIyMHk+UnhoTV1XeT1eMCQ1Y0ldNjFQcjd5WztCOjc5RSJCU3ZaQiglWipQU004cz0/d1tSL0M+fTt2Wjk2RkRfKHsjS0BjOUIyfG93SVdBLl9eVXFGTWV0fT5TclJxbFEsOzlpJTpiZjlKbFE+'@; put 'WSZGRiFeS0dbI2Q7Zz9YMnpZdXVoLC44dj5eMkpALElIUGM/Vl9gTjk/Kz13eCZPeTlNcHE2OEVxXU13UzQzJmdPeUwsZmthT3dhL0hwX0UySDt4WCNQbEY6JT12VH1QJGJme0paaHJZUyV7XlM6XTRFJEUjdSlEYCtTPG00aTZrRVFyKDYwME0sVEE6aEkkci9mJVl0LEZsam1zVDJmbF9tQjFi'@; put 'Qll9TWJ6WChPLDpwNDt5VG5ge11eWkhZKG1KNVFdQENBZCM0aFYkPXBvNVBAeSNVc1ZlNlEqaVR1O09iQEwpV1RLOUMuOjk1OXA5eiJ5Tkk8bWdtalRVW1lJM0glbG0xWkJ+JUtpdilgLkY3YCQvU0VtPXRfVE14THJUZnJ7YExFWnFreF4kdCo6NW9LSnBbT2p0UGluLFVtWSs9U1JlXVdEME5k'@; put 'W1kiMEBrSSlbPmVYVzlHN15AOyojTGQ/IWxDUEA8I0ZMcXVvbUVJPD56YSF7JXsuY19Adih9OzxNfCU3WShlKmJFMmZ2U35wRldfW3AvUDdMRzJ7bmFpUUAlT2pub0txPl42IkFJO1svLyZPTG5CXjZ+V0skLzdvLlZJQ0NSNGRLKVFXdmFwdX4vbmtTRz89VVsreCVacXF9a3RwZUNSczZ+Tyx4'@; put 'NXVaO0xHZk9qRDI0Sj8+YDVye2tgKCZvPExhZzdWVU41ImtCQUV8I2okWm9JUHpKKGlePG1SKC9VJkxqe047NU9NNH5DKzIxT0RCW0BKemNbT3N8Rk82aXtkOXVjO347V2dtPkdnfkJbPFpHenQqK0NyYyxUJkRCfVRlezZ8Iy9XX3xAUExiSWh4LGA8RmhRI3wuaXBqbW5yRSlodj8uNHZ8ZHUv'@; put 'I2V5QTB0N2RFPVMiXTp1QmAiWWQ3LGs4SGAiTWNOZEthIUpqRi5rN21CciJVPkhia0dDSSVAWnpmI01QcFF4a01VR2V7Slt3TGRQJkg8PyMqRklHJXtpdXxZLD1lWW5CSHUzU2ltXzRfPHoiPiFdQlFHeW0vMDtqQEcxY20pRWRrcExLMCwifGxzSUI0NG8uTUJsZGcuWyRxPWU/PFR7VXNqbGNr'@; put 'YEpaWH0oLllTIUVqYUJXRStaclRUMUVNS2hbeW16NzVIZWNQU3FPQkk0KHw1NEBmZixnVStPL3ozJUFvTGlnXm8qdHg7RyZXU3cqZ1dRMX4qVTFSLn5tdlZZXTEybngkd0RmSXI4Lm42dVc/NGszSmZpQnVeOG1iMlkxUihOVlNwOzJTTkF8PFBjaiN9UF51LnlfUFI7eG0lTzJbUVs5NzoxP2Ei'@; put 'UW1zUUopUCU7OFYubyNialMoQ0dUZWtROT13cDw8WGNaJU5PcEpIU0ZnKkZ3MTgke01hbyNzallLZiVlY24yITxOb3tMe1ckOV4zc2U/dGVYYzR8OTFtTyRUfWklMy5tJjxTWWMxNUFUaiVDKnRMSSRIazI0ZVBhM3JlVkJ6cDFgfWMxe0c2cXE/PE0+RkY5OztWK2dBfihiUyRdVm4zOyF6RXI1'@; put 'dVBSVCMwV3Z5VDxjZm9AUTw5MjhnJDVAODR9eUUoIyllVHdIcnBSIyU5LnVjKHtbeGwwUGEzbTZDSVdbZzppdiFIe3xAd016dGxFWlJsZWxFRCY2S0w3JXsvX20uZWpbcmZYSm1fUVMydkp1eCJKKDtCci9IPXI1eWlgMmk6d1lheyxePF18TFhMTFFVU0UqWF5DTlljUERyNGdgZUpJOjN4cV0+'@; put 'ZGdMcmdsNCU0WFo5UGMufnJZfFEvRnhiRihOb21qa0Z5PD9sOS5CWHNaRld8REcqPmYjYjIzST5uV2FkISJMbG8pRjQxRltXPmE7ZixlQzBmeipwRV1wNmsiJl9veSRlUVtSJUJHV0M9cylmQDYyOWkoLD1TcjpmOC9zcWRhZXIxP318fk1pZF9uMVBAMEpdY3E7Y0p1b1g5I2Q8Zl03ITw8MjIx'@; put 'Qnt3SGUsbGZhX3tda1YjP1N1SCx+dihwUndKSUA0PStHakkoZDtRbm0ve2wqIlZ3Kk0wa2kjb0FwcXIxLzcydyZQQ3YzMTowOSU4dGdYUWA8VCVTWCNlVSxxOWtpTSo2K0hHZm8vUnc0WCRaJHhHKkZwaV5WUG09SCVDO3Z8MWIhcHhsUVFTa3BPSlJ8QkM3TW5DRUFyamRpLDU2YHo6RmNycWh2'@; put 'WFNFWk5mREdRTl5HOmVBSHVWeD45ZWYqfT5fNSxHdEQveDJSR1pHJHU/QDxfbTVMSTFhXVc1NTk8Tk9RZ3pzI1daQn1ZRm55MThuUTd+I1Rsa3V2QittWCNhIylXfTtMTmxJJEJ5OFtZP2J7IV9ybSM9LmlrKzExPipAYEBefWkpJn1WdFFaPWY8Vz53VExmLld1JS9XejR2Wl9rYFp3T0JSbDYh'@; put 'RmFecnV5eyY9YnFafS9ONT5jUzpkZWFoUkM6JF5UcTIuckghY1F9cSN4PzZBSCtOMjRZMDU0VkchbiVEfF5LQlYrN1g7K1VTdmVeLCkrKXVIPVJlazkreE8hMT1TRmhdbGx7VmFeMDhLPXJeY3heSyVDMDJpZkBEWC9uPDNEeyNaa3RMKlVwd0E9Ti4mRys3OF5faj9geSEvbTY4bW1DL25bN3Im'@; put 'QElaO1BdJnpFIytfTWRybzg0OXlVIUllNENFY0JDZz9DM3VMRylCOUlwcz0kOXJBVlhTWGsvamd7biRoYHV5YzlZLEQ4ai8iI1IoYT9MRmZpdS5ZWTlIUnh7QW5uLnVXWl1qRz1OMnx7d2tzaitYPWlTRitAcUNRRT48bGpiMEVHWVZCeF9Gd00zSnlAOWZzIVpsSnshaUtnKmpjJkIoeW51bjEu'@; put 'X0IoQ25Hai8mWXg7a2dxKzhmQXE2S0x9d3RkbHt6WTsmJFpNWHNXNUZ4djYjYFFnSlp9S0ZYIl0/JlZNa1IrQ2xkTUs2bF9OMkloWz1qZWMscGRNNDNlQipTMj04WiokQk9sQkM7ajZHUnw4OUI1bDY1aVk0SVsia0koZldMQGRZdHdQKElBW0hJTzpVTXJ9al9wPnBjRmR5NF1NUyY+ZyMqdFVG'@; put 'WSxYcTZoN3Y0bnpLZ05neisqPX0qXzVtZXZwQ05zKjtWdTNRNXJHbyloKm52KUtVKWg1QkZ7QVlvZzF4bChRezUmalozcGVfNXMqJDtkZVohRXVuYFgxKnQsXzF7Lzx4UntAWGohNXZeeltsWnlhUzNhcG9dT0wpYVlZcihRblV9OihkaDJWfFo3WGUlQ2pydUJnNFhZLmArcTgrdDEkeE1lKmds'@; put 'I01TWjRLUzMrUE1wPmwlPF52S3ohPS53fWdqU3ZmcEM7ZEs9Pk9PQT1qUUg+USkjYm99eXlLYFhFYD5RdGYqRX56ODpbJU1SLzIsQUpmSlF2XWVpWTkuQDpIWE1URkZuY2s+UTF1MUkod3g+L3ZwRkhwQH0+cyV9OS46aD9wT3Q+QSt9JSolK28uOGBxTkEiay8yMzNxN0FUK11hZzksSyRhb158'@; put 'WipCKjYoS2ZHUEt3MHVYaj99WGdIOmhePkp1NnI4Nl08XTdhKWh2IkRlcDc4SDs6dUo/KzM6NlFlZ2puWX1EUUhUSG0uXX4zcnc+anFVTExyLnViQDMwV3Y6VlB0IXZxX0RCM1M5SnNvOj01WTtFeCs5PHN0JW4xaW8iYj88MjFPPDRbOVRxNTFbRE1oNVYiSlpFNiM4WDpfV3Yoa3dRNFV5aFZ4'@; put 'WT0oOE51XnU/bntpYXJZNHx1Q0g1bzZKYyUmX34uaix9UWdGTz1QIzRdbExUPkBfJjNMRDZ0Lnw/dl5rdX0zKGNiVEZ0ZklIbDRzSnYwMlI+JSprN31GYi81ZFFqWndjUXJ6bnNdQUIlYjQsIzRIeG9OXVVQZTcmZFpTc191YykxJWBiVGIia0tHSFUwJW0/bFNsX04pajB5cllIJGBdJHUiLG9u'@; put 'Klg9fmVnWEMjfUNYZSUhQHJ2K2M2Vz5ka3dgYWY8cF1rP3MldENURSV1emFPRGJmTyJoWTUwKStveWdveTdpITlkaE4mYXZ2dD15UlRtd05JTUYqLjBBc2tOOFJ6VUY2Oi5Zc3tyQytueXplZGMrJHA2Yis+dX5ONVhMMD8jZzs3cz59c2AwOUFrO1BWYDdTVT9aQmB6OXY+MnE7LF5jPWJqbzl+'@; put 'PzlKUEpQK1tJJGxEUSp6bzglLnlIVyZLfTRIMWlPRVt0W3RFU2twI0JHXV4kVThlQFUqMyl0ck1RcHRqR1l1fFdVPlA+cCwlPTMpUDBkYGBAI0lOZGE3KmxYJTYkNnBebE4ueGdpRlU0XVtrYkJNeGhdcTdYMDFNTnJXZTA1ITpzT1Y4fH5fe0RFTkEkY009NDVGWTYqWiFdSFFkOiJvdmEyIXA6'@; put 'WCY4IVcrLmQ/MkxJTWcpPCMmUXg/Pjs5I0JZOWcmKVkpKSw5RDFPMT5LQ0N7akg7aHQpKSNCT0xxUTRyNFV5ZEAzN2JvSTpGMW9hITNARGpWVFg+czw0dT0ld1s1JUpuQjpDIkxdRTxqfUlLcUs7PVdGWV9ZOU46TWg3YFs4ZD96KFN5PzQyOnBLP2p5SS43dCF1Y2cwN0sva0ldPm5JfTg3W1t4'@; put 'OVBMYXg+Nj1yKGlLNlhUdUFvLEB5KC4zWEp6WzY8dEwlSmYsMChhLyI6OGM2Ly9Fc1tVRmI0QUVkMTdANEdHPEQ3cFE4dHZ6YSF6bFV3aDpNPzRWJTgvNVFIPnpAWyhzWFpyfFlxWzMjbV8+PTQuaEh1I0JbKmRLOHdBRF9Ud3pYfTBaPFp8RkFrTDtYVFg0Tmk0cUMqcFkyYURhXVBRTTJaUiEk'@; put 'RkBOLz1gaUFIeEdHLnZyY3o1TyY5ZFkjUik/VyFxOltXYUU3YVZ8YXcmRl0/XWdDRkxJflcqbz9ofT9dSSNaZlZeY35uLkF0K2g1PV5CRkQzYlkpTUpyNmVIM1t1L1kvWCI4Tih5aW8xdWVAaDIrUE9UZ11RXVBYMEl1JE55flZsTFhNI0wpTCZkYnN3R05OO2d3KkR1PlBPVDhjUlhoczp0NyFo'@; put 'dko7RWtTWUR8YzBde2lgTWhhWzRdKXQ7MXZhQXlhcklsRGphbio/OT9FbFBTUjoxfCF0UlNyJnJHYD9QKmVeYkQkUUdkVlhqJUc3OUJJNjM9VkM/LnxtWlB1IWUxT0c3TD1IYXtsJCo0XUptSldkRGcqbDlVMShxPjxNVUJZJCJwRTZBaWdgcHsxaGBpZVQsNipgSDRadUA0Nnl6ak9LTF0wRSw+'@; put 'NntCQDVTUCVMRC9bZC9MaE1JRCRXYVRxL2orX0xET2xJOWRpdSgoLnIqWjsjQGoofEtSciszS042Ojl6VS54VUVuSG07RCZLPjQ6YmhpWDs3YUYsMSExfWYxeno+LFBIfFZPNjwmcTlMbmVycXV6PmdBYS4qNDpqMHBFPExwKWFeUHl7SXdzazAvXndEWWNBPmczLkBFKD95cFllZ341O1chNDFt'@; put 'NSFuYV1FdE1oVGNmOz0pUmhFS0NIS01VMjpdd2FgLDd7VXQ+UXR0YSpqUi5TRj00JCkmLiQhPj1eRmt4QjRmfkleN259dms0fit3KFh5QUopWn1jbURfdkB7PH5FLjA9OW5lVmdmbC9tU244USsoRD8hUkZJUy43OD1heCZvMVIyQCRsWkxqWSFHcVJSUDx3c05ILExFNXNBWVAjN0kxPno0UnN0'@; put 'fHtYJGdAMGdAbDIhUGl4QiR3R0E0S0l7VGRHJjkjWDc8IWVWT3Z0JkkwNUQub1FpaFJ3fUYxdlhxeUo7S2gpJUljL0x2cnR6cTx2NkdrISY/aFg4NTQ6dWUobmlxXSUrcnp7IzVbUHJhNzQ6dnphLkpqellbflIsZmBOcj1abjRQKUNSRzttSl5ITmxwIm9KbXZpTEV0JipsM3tSRjt5KF5GXWss'@; put 'V3k4ZjZMMnAlUld2SjZoNy95KTI1d0EkPCk9Y198alooSm9jKiNhJTZRKHRWWzNacyR5S1pIQDQ5UCM9c2dAKHtCM0YqJDVbM1t2PC5uOjYzRTN1S3MkY15iMis+X2VjWD4ydlBqKyt8T3VbNDFhbXVsOkpDe2wuW0ZnOSs8a3AiJSRnImMwIUMha1N9fjhWcUY3UlQyOGwxLigkYmxiK0FJKX1F'@; put 'UX5xU0NdR1VMcjoiNyMmY3AiNSxRfEs7NkBzdj9IeDFRTWMxcS5ZcnZfQitqd1RIQ1lpeTFIfXdxNzlLaFMuLipIOEdzNk8rSkAlPFVmWkw4M3tWa0hqZzgzYTNbZk9WMTFMJDJBLyMsSmAkZG5WXUVSbHhONEUlWFpoW1Bqd3IqUTRPYDcuOUwhdTthImosXjZRPDt8eD1jQks0eDFfPyx4W1tT'@; put 'bW0vVTUkJipMdEo9dzszQ31VfEVHO2FgVm4yWU9GfUZLXl0wVyN6NlpKXn1HKytxWWE3WmJJKzI5cTFAbSJwSXYyPFdaIz0rfiIzNy9SKit3NjApflhBQHlMWCVQNmVjK0NPImJASjpiLC5TJDVLVz02V11TVVZyQiE7dT5wP34hOyF3NDRBRE1CRDVgNyZzIXZ9YGg0dzxkfEUhZGUsbHgsQmIv'@; put 'Wm5Eb05bNjdOVl1oSGxzMnZrS2ZSRyJLcW4xY30jWm9vQ2pFMUQsamY+K0RmZzdJYSJwYV93ZkhaKz9VMz9mcVJmTHI7ZDlMNExaYU03bClGajZIJl55Ikk6R1deNWBxJT9WU2dyaDVCVyQsUk44cF8jRHhAZHtYdy5CM3ZJTyxjZTFyNlBJQ21VfkszIzdZTUpYVk9xYDlxIm0mSzosUntWbjp+'@; put 'fil2SG8qcHBNcklgRmQ5S19XTHcoMjhJXm94TFlgfGJNXVt8Y2ksK3JMd3V5LktndkhPSmp1Z3JNTnleQlhnXTBrQUdrOVJkaFp+US5ERyM6KFpSIXlBUzR3aEkqOF8obEVJR2YpazBddGl9RU99VUFzcSw6MXNLbyRwOWR9ZWhOMH5SKU1xNSV6NTo5XzI1KEtuOWluXUs7SGVWcUA+P0kyTyFB'@; put 'YyZqaFJCQUl2ZlB3Vjo3QXh4YGd8KitJWHc8a3k7Vks1c21HOGNuOn06Q11mbEwjVkhEQjA5ekZvMz07YmNQQWowfStFK3V7eyg0OWNOVEgjbTwjenY4aXkrYDpdXkM8ak93dl1LaEteJnxxc0t5Ii49Okdud3BVWDVXLz13Sm59Y1UuPHBDRVNxc0daO0xdcTh0dk5bMlFufGhBMz45QilFN3ZV'@; put 'YXFNJWs+ZFtNRXBjRTB3TW5xeyYqdDhWYW02ZERBMnsiQ2N4a1FGWG02eTE7PH0yRXBIKkd2fXxXLHJQdmE/NENYJEVwc24ye2N2ZUkvUX4sfFArYmchZjd9Jn1zWkBvflo8KTxNam42blloOXdJXXFTZD9dKmpVTW5MdzdXVWBoZUNdZllzZ15xeylNPClUcWp5UGhnZnpSQFUsSig3UGg7MH5s'@; put 'Q3o/VFhjeHVMW1hpUnpQTStufVRifCpmTVRadXh3N0RKU10yV2tFd0VgIkZpPSU8ME9kQz5AMnJpNlZCMHJDdi51SyswImg3UT5eI1ZOXj82QjVdeS9tWGxZUFcxK1RkOiFLeUV3X1t3cGslb1Z3ZnhdLHxoMDEiYTg+RkY8d210VHs8I0l7MHJCNkc+V3w7aiFIQCE7bXNmdVpKQj5DLE42YiZl'@; put 'YmlPeyxaP0Z0SUojZ09wRyM1KlY+K0ZHIz9mWFNqOlJnYFNTSHRkVGRacn46ISNdYWMrLlVfNDw/YzxbWXJyK2ExL3wkNipaIzttYilwQSJ6IlA+JGNvIz04IlpTR3pxIUFZRSJvdW9ZVFhMYWxoQXg5UikqUnVDRXU0eTxWL1VIKEZ5U04wUURNcDx7Lmd9M2tobkliRE05ck94ejljX0hIaWJp'@; put 'akIoJEVnNjtsfTtKeD83OXMzMWkiN2ooYUUqIXZeOXx1Ml9kdzY3ek5+MXttOW0kfXIjQlYjUXVKOWpVeWN8eGI9SUVYQnJ0RGZyZlR8diNZTUAjTyxIX3k2fjEjK1k5bipOP3IoRCR4fTpuMmB0VlpKY1IySChwNHM/NzpRfDxaWnJ8PEh2dX53SDZpMFI3PHhiOSw6QTcuY3o0NSFbL25wKj1Z'@; put 'N0x7cUJeKlN+TjBgQUohTXl9VVp5QlVeKHFQYi90djN4bnNWT35CcUZHXkJ0QnA9PWEvYEh1PX5oWHVWejY8KW52Zz5qTns+bTB0flB0fCt2UkgpKUgvdDMsSzYpOnlvY3dCe1RIMVg9dGNBeDpRYyxOJjQ0N0t3R09FI3Y+Z2giMiUmM2R2M0U0WDtHZGJodV0xOHJAXl1CbyxDb2VoUzJHIiIu'@; put 'aDg6PENydDdYRjYza1pEMSZSd1BfYjVpKHxbLEZOW25OLyQ1eSUjOVQ/a2p1N1VIJEwhNzp7RSs+YmMpdV5tWkwpV3FeUi55XWZ5YF1wPSZTb0siWSMwZVgjfGw0cV5fWjQhLEBrPk1kTixZMFNRNVtXISl2SnxSOTh8fDc8b3RlfV1JOGYjZntkQmNyfjtwWUxZRC9HdUpQZWZiaDMsI0BnTSVR'@; put 'cFBfcHRfZHNBI3smNGdxb3xtIUBecixLfl1CaisxaixmYnY7Ok4iLGZdP1ssfVBUY1tNXUpIaSNUTyU3SWxjZzZkeEo9ei4qZmxuND9tZDNNXWVwaTQuKldgWlAkQ2xjblRlJX5QUkRdRm9dV01Jey4jV2RNKHZxOSJ8Q3RvIT0/fTliL2pCXzF4RT0rMUtNYWFfPSsxPShyaFl2ZT1lQk5LUS55'@; put 'VG5FfHZtR25rKiUkPFtVZ2pAdXlhMTFDfGNLQXtsb3BRQC5VWWgmQFgwdzo4VjdoIVlwfjlxQD42JHErOD0od10ibD5RPnoqM21RVjQqQ2NmMmNUNEdEeX1POyM0bkBpdUR3TllaYEtLWWFHL1NKQ31TSm5gIm1rSzIxPytrTWlGLDM3ZzwwRVFFLEdMVEhTcEFedW9jZlMkaW1gOEI6I0Y7N0F3'@; put 'YkUhZSs9Sk1UUm1PY1ZoYmpXVTQkSyxYa14jViVhT0ZbZ01kVmhRSnFgKkNqXjxuMkZFaFFKcWBEMTtgKi48cDVgRTxENmI9e3hfI1hON3FlaVQvM3pnU0F7OXQ2IU5FZExjUjBvdyF0eiNVQnlZWzVtSU8iejFWanU8Rz52QEtLNm9gK1BvTntMdDN+YH1GKWJsYEsvaUIsW0QxYmo+Vno1JjM1'@; put 'aixxSWdSenQ0Ql9kKEojeDlBaDFHO1ZCNTdHc1QiO2ZLQnpzPlVZNy4pdk0wNSRbTHhILDhAL35yfXRuRllnOUsiVTs5WTY+UGMsQiY7OlFeNHRAd19YZyUldm96L344S1EuS3BNazR6Pn1ZNm1mPjBnZklqb0lsJCVdPSVOT1Ihd29sdlA9RS5FdklgV1NLZVQpI2pyLF53UWtNX0MiUHksWHF2'@; put 'TTd8UG9lYzttL2ZVYDRXREUjcmVdLjxgK3NtbWszRGYxQmMvZFAzdVV3RGZzdW0qcWklUDRwUFszOlBPU0RBKUAuP04mP0gvSWFsdXohX2JBe3BHSShXJlVKUC5jLmltb2h+WSRvdVd3bGZEQ1A7PEBgQz10VCwyYnNBNH0vO2p9YDssSU9AOXR8SG5feXZqKFVhR1huTHhqTm4ocmt1WH1yPjlQ'@; put 'STBFOXZMJXQ2QVU7SnMmdEpeRUV5d0okX25kNFVbW211Iko6TkkoOztzfTtLeVJPYk9MIlc1PV5efFFpeWUlY1c6S3IkX0JONS5AJFZpWG5yUjV3UlgqPUNPZzlnZVY8N01dWT85aF02OUgxQCxMbTkrPHFILDdhaEJpYCtWeVUhWi4mS300JWskP3EjPW45cio5T0BWS3FvT3speTFOTUVHOkJp'@; put 'eClSY1t1TDZVYTFAYV1YMUhVdjVDd2JFTWMvQ0lLPmReVVRGblVJPy5QdyRpXiw0Y0ZeVTw6LyR6LEImKXIkOy5ZZ1ZgPn5vOCwrPFArbmRrfmAxRn17YU5EOm02b3xUNjJUcy5dXyklcyFVYytmZkd0VFosKlhEOXB9WDNbXkJuR0tiWUlSRldYNUQ/Y0lDU3pZL3ZpLERnVltlYTQlVU5jMURu'@; put 'QnFPLm9hNFNSPHUjcXRENlV+QXpHIkBRMjB5YSNzPGAzYXh0czhUVXkkZ1ArSWBVODFmTj5mS3J1a1BNc0l0fG0uRHFWYWY3cVMpcWAyKWIxLml4MWVMUE07V2ByKXxbI3RgKTtxdFVlOkBnW2FSM25vNGpVe0JZaVpJQil7KSZLMllyRSZgT047RncwRGYjQmghL091Q3c3XnksOVp7bEJNcUBg'@; put 'Ind7R3VXUXdtZCEwYlg0dUlMIzFlYzw8d3d2MiUsIX5IcCM7WGZXKmhwYnQvfCw2NnwsSzRSWmdpR29PIkMqeXosd3oyaGFzZ1B5fis4dT9OOUVNXS4kZXBpeSRUM3lVJXdXbzpyK1hNM2hyd0AhNiRPaHAwaWNUN292eyNFVFp3SWN+OX1IW29OQUVrc3lYX344N2JrO182fTxscCJ7Zz8vPld5'@; put 'Ul5wWX5GQjNqb0kwV3hxYWdqWV1GRDlrb2o1KnxgeVlhN0xBcltyMXZkWSFgTk1kRzFZLnFaW2pWViNLPFVGYnA8cDhZZV4lNztwdWlfLD5LW2hYfk1yIzN0b3pPUTsyNVpmM3l3XW1FOmU5RmIoKDQ0TGYjXWRJRGlJS09eVlMvUUZeVShWO3A+U259cV9tdUtIZUJKTC80RDZhfmVQPXQjNT1W'@; put 'NDZSNStQcUNuSTQ1SXRuZEJnZF49X1U4RzhDOExASyglRFJEJjIwX2IoV1piPmUzR08jSDIpeTQrIVdYKHMwWGVCYEh5RHIjTFg7cCE4bEhLPmh8K09RSU9TNHVwaGpEaTx6ImBRT1ZvVUh8SkJ4R2J3NUhEV0ZIR21mLyNOd0h2d31eSjd1I1ooSkZlM1lBP1tlanpENzgsNXdgRFByI3liW21F'@; put 'fDs5UnpbOzhGPlpqZ0p4QFdIPDBYYCNiWDcqWEFrX0V0R08sTGlHb09Te0loM3U1eHlBMDNNRWh2OUlBbTxwdzxzMWhWMnZQU0JeKnFqOGNEaTEpR0ltZVo+OF91VVQ1fWNRa2dPTUx2azBHTnIrbTliWFhIUmNxdEpLOGZ7QzN1ZHhpIjlyUUF8V2JFQXpEMytba0tIIXxEQXBKNVhLQGh5aU16'@; put 'fW96S2d3NVg6KXNFdS9LekQzYUZRWTpMOShyWiJILCZHekcxQGo3UWcpayhpLHs7I2B4fXtpIWV0KC5pSEx0Vmoxc0Y9I0IoU1I8Q0g4RGUiVn5dKkU1bG50d2t8QDhrT3w7SDU6fH10S0g9MGZkXnw1dDU4fjB5d0A7UzUxV2pWN2dZNGkmXXRpfG85IzUmantPTjhDQHY3Slo9SE96UjlWSX0w'@; put 'M01pTD9XX3chfWFOWiImUUFmNnZAXWZWNXZvSmJXOzU3RGZtRjkxYjhRNXVSNzhpRz5NZlhzU2J3JE1XL007cGtgIkB0PHZPM3c8PlVqcWpkMixxUGMvZVg7eWc8ODwmSGZ5fUs/Sl5GQWN1O1RPNjA0SCsxOHBWLlQ1OnpFT3ZxMHc4dilHdFBrNVVPYWdLS0BTL1tMSzNgIVgxMFpkK3F0Rlhl'@; put 'Yio8OmA+a0g+TV4oPj0zKmRwLjNfaGFPd0hbdTo4ZXddM0FpSk8zOVY4TjtmWTkkfEBpR1lSZU1UZ3U0SU8oa3JlfWUvODIxPjRFNGdpLih6ZUlgMUNMVl49PVJNc1dCKXtJVE9fTXdgb2tOcHhUdU1zZ1ZbI0NiNytZaSJhNlpIIUlsIV84Q30hJjoocClabTUjdXkvQkgvQj9JVU1SQHd1UE5N'@; put 'aTk4aXooWzpaUkRgY3BjNWgwZTVofHRPb1NELEY0X3g+RFhdQ2YhJElONiQ4bzkiSDZfUF8jRz5Db3FSWHlDJl9nQDtiRFgwc3IpcDVabGFDOW0lY2dzRD45WDVXbkdbTm9JdilxTGpaXjtDdlo/RldxdShkZVNpdExsbnEzPnJ0OjdFSzhrYHExMjUzYmt+RnBWKVFuQz97djQ4fHhbTWVWVXcz'@; put 'Rlo9Y1Rfa29vL0thInI0ZDc+QiJIbmZ6bTQ0eVl5fFA9UGR6V0wrXygjVFZKWUZTNlhaK29DP2B9X0g7aCMxUHtARn1YYytnY15Wdl86NXYpIz1tWE9WZX0mdUIvdiQ9SC5mPllVZV5QMFRjdVRCfH1SS2VgaSRPel93aDR3VixLTlVWQi9XPjYqUE05V1VLWTZeSF47ZnVncXolN3N8THtQdyRR'@; put 'L1RVSTA5JUwmZXRVT0tKRlBEeFtLIlF4fUpqK1oiKHdgb35zJlZ2VyFJPFZ5MzFLK3B6dTZyMWlXTzAjd1U/QEZwR2FwPWU1dm5AYGk3fHB1b0ZFYUdtSWdmbz9MVSlNP1FYWERMaUJFJSxOMVJRKDAvRldWSThqU2FjW3QjLGNib29EVnhnYn56aFBKeCZzKnNYUFc2fnl+cyQ/fHN8dzoyc25g'@; put 'JnwhO2ZNNF9+PHx0IykpOW9bXmB6JXQ2UWNbSFtfWHlyWVVWak1AfkVTbXRUeEg/Ij0xJDgwdkBlJDE4eXlnOkFWIzF8XyN6KXdvJThSKGBua2orW0I0e1k5Oix6bnZRfThpQExWXXRRNnF5VjVhSHM0Yz4/YEpFRWgvOFc2YlM/OWxERDdFMDllYihCRjleLk0vTjFaW1F1dF9IfFAxdFVIUDVj'@; put 'OzRZbSNHLnxQQXV7QUtkM2ZVVkh9IltxemFDM0VHbCMsXk08IzF0bHooWDNaKWFGYUchaShgYmpmYjkyPis7USw3XWdWNHh7clBreTRTTDVKTE9ScXJwZkkqfGNDcmglSHsmVnglKHNFKHxXXzJJTyp4KCRFbCJOUHZkM2tMcGNCSmpVTSRNQ1oicU5pIS9SUEFCQVJEUHlAPkJnKXtTMyI1TGVS'@; put 'MUgkfCtgNExlNWM3OUtwZ0lZaythQ21nQ0NXSl15OU16dElfU1E/P2pmfGA/JmFDaGYmQFZKP3J1NV1uR0s7KyZRRHo5L0xSKkg1Lz9qSm1kTV1ocCpEZnl1T1BBQnh1YVkwY3pEXWhETnd1MXRNSHl3VlhVellPW0EhWSZhIyhiRF1oeEI5Qk9CVU5oTj1ob3VxSXEiUEd7ITJLeSZoI3EhP1Bp'@; put 'eHE5d1M/KnQjcFJSUEdsR11nVjd8WDZUNiRGenp9XUlnX142KWdVNTh9Yj1pNCIqeCJqVVdXalI2MVtyTDdlRHZuc2g8aUtfeyJ0SWptNGowZE9sJWt5Sj81U3JmWzs4Wl4wPnpWeipLJGkvIUlaTVoxayx2eFpNWktILCkqREw0KHxCezssVlVyVF8zNWgxSF84L08jXVFFZXM2Wz5yK1U+OWIv'@; put 'bj5GKDZ1fWpsVEVKendYS0dNTjhmXzB2anBJSF1yVnw5a1VUZWVyV2FwISlORGJ8WzxnVmxCV0I2Zj1HWj82VSE1VGMubFM1VmZZK10veXJTKVk5M19JUlM3ckQifSJYTGoyYVohVShjK1IvLlhodDIuW1c+Yj40NHZxIjdoOjtDYlRad0RYL1Y2dnZXfld1Jn18RT5fTFg5fWhTKGtzLy8uaCNM'@; put 'PCxMRUxpenUmP01jYlRqd1gzbUZSfi5zRkt2eV1QRCQ4IXg/XzQ8IS8yOSF4JkwzOTlFaG15OSF4W185dGklR18yOnpIZmk8Yl15UXlhImtqc20yLlFiVkxyU1FGZCRUMT07M2t2KXJTWD9obGo3NmRCUUo9fHg9KnJTWD9obDx3IiQ2NGN0I1M3alRbflg0LkYpOi5iZSYwOF05ajdMTGVyKWJx'@; put 'Uj8hYjdYeFh6ZzFoQktHLF0hQCZLZUFrMEd7blNPMCRlY3NUKz5PUj9ATmlnc1lqKlleVkFSL1Bed1YyalpPXWtWIltqLm4lWGliRUtGOVhtPjF7NmtUIVpmS3AkRSg7b3pfO1VAWnVyKk1+QX4oOUZ6QEBCKHBKWCU7RClAfSpGViJLJCxlJTA0amkzXWdHQX11aFg6UUNYVy5QeyZfSWsyLCJN'@; put 'NGNiJG9RSG87bk4lIVgjXiVVXU9Ga3tOVT1YYWRPcisjTiYkNDxVJGtVUzE0Yjoxdix8TkxhaWlbNDY7IlhGJWkoUFVFWVtKeXx4dHtHfFkkT1J1QERqJTQ1c0tlXm5hSE9CVHYjIkBhK1gyRDYzb1tefGpWcXVrelpScVVYb0pkPElNdDRNe3VHejByIl0iJj40Oks0bilDOmg3YTJia1tOMVk+'@; put 'a05iMD9jdSYueFdRbVYzZk9XMl0xeiVhWF9zUz1HWUR8UiRQL1toITZpb0UvKVlpd2M+PXoxXXxKK25YPXxjRWJ5MTw2OjRrQVN6QSlqXk9uZG1EMFIhJC5TNzwsQy81PTBbWWRlO290Yk55TFVldDVmOkhURj13Tyo9QzBHPXtHcHlPQzMiR1sxTktmQV4yT0pzNC8xZlR5IXk0PC95W3diOzAv'@; put 'N0AsdHMoOj1gfkZVWWwpT2ExX357MlM5V3ExYFdYTCtFVHgqZ35CPjZfQSh9VGwpV1IodFR4dzFocHlfSndFb3FaKmkza1pDdXRfJjtaWT9Ec3BqNDlZY3wjQ29MWGlwQlBPMDE1NC5uPTg0NzlmRFgzdHw+dW5ASiowTWN9XSFRYUNCXWlaPWlsMXkjJE1nWVEkfUljXVo/bSNfb3c4PVtaZE5K'@; put 'eGl0dUVLbjdNKlgvQ3JKfDIrUChqaCtVckRsTmJYPCFzdXB2YlBeOzs4VTgzQl56Q2YhWEg6JEs9PT5sTTsid11DSUlhYHtYYkhXaVlFfUR8ZWlROEV7NWpLSUoleltTT10jPGwxYTd9SDxmTGBlUy5MZGxtWk5SRjN2NzNpVXZYNzhMKHRyc0VFd3VvTntDM3UmQ15pVmprQTtoVHZvb0VZY0Rm'@; put 'RyZ1Mm55UV5IcnZYNzhMa2BhTEMrQD4jZntDM3UrQ3l6Iys6dFdPckJCR0UrODo6LkBTXnpyb3Bzb21WOGlHRE5ERGt0Z3w1djVKWW1deGQwZUFpfmFYRCpFZkV6QXcuTCUvdGMiIntGc2wlOH5YfCYlZU8pJlQhfnpMR0c/OXVIOSIzREpGSThPe09bOU10dlEzNUJ7O114KmNbdG0uIytxUj1S'@; put 'QGlsIy9tM3tTY15FKzZLN0h3UjFub25mcW9FTT5pe0BmMGBeMmVDW1ZsNyNfTnRPUjFwOixLOlsxM280OH1ZOjhDa2dyR1A5NVtIOnE4R3diRXMwNTluWy81TVpPcmFYdHxyV1N7OHtvWj1NZTZVWlckPHluVk1EIXpxPmhKXV5nc0gmIUIkP0coYDRSVjxnYHRpa3VfSl9eV258eTVYZHxMb2Bx'@; put 'Mm9HKH5CKDZaZ3o+UWk0JHdscUUrUFN2W3FnaWBkIl1ZM0Rzfl5bVyprZm9XekVXeTMiOyRwZWFMP3EyNF16OjgjXT1aOHwhXzMofGgqfXZSfWwrPTl+MlNQRndYeTVkY1oxOFNAc0kjKEhERDYpXXZ1cDxNOHduY1FjV3t6JUBvbU5ZWVNjPlJWRyp2eDtJeyk7QjVIUEg2JUIjbEFDdUdTYXx4'@; put 'Y1EmTW1HbDAlM1FfbUJNVVcvUVMrW24oYFcoQWR1S1AsSXV5WSYkRWZ2MjpOcE5nJlJhJXZ6Z0VgQ0BEfSg9UFdpNlJvL3psWkgmc1Rdd1BjU0pAKmdnZStXSkA/Z3U1P0BVPWFVZntrZT4zIjNWWSNWKl1ET3heOTA7LCU9P28kRVspTEZSO1lLdWUxISNDfWV9aCZbLltIZEpwNV9LdXtWVVZD'@; put 'XnJueTZRUGJqI1NXVClzdVI3fCVlOVs1JjduPERYPF4zNlp5KVE9YzRWNHQhYVpbNkJZK1ZVZ1t1IipbUGg0bW1lMHd3L1E+RGsoZjIzK3FDQGFIPyJpfXh0RXFuMCk2Kj5KJDlPeCZUU3UqVFZCOFtxTjsoPkpANHJDXz5aTnRNc0N9RURCaHcwXkdocXdWaHJzaTFIUWU5T0xxdXciWDFlTGlX'@; put 'e21YOEg5YHApclp1fHRKUU9iZWxyLyt1JE5vJCp3bEpeOEF7WGVGfixsbTkzJisscTMlUFNhNGxsNmhFRmZVNSVhVElFXXV+aCFOPH5mfl1qez1CSUgzP0RjYyp1XzV7VCErKXNDQio6Xk49THB6fWY4TFBXN25Ua3MoSjBRZTRHUmJIMn0jIn1lUHxIV3dCP1tRRWwjSU0vWVRrS2hRSiU/MjU7'@; put 'KXd7VV1YO1hfeUtRZTJrUjxwe1k0NDVFLzx7UitkRlNPTHd3Ikw7KlVuOV8xYD1yXyUuYilxX21rX3AmYHQsPS5MdXFVdTQzb3R3Wl9pNEVYaUZVTkRhKEV7YHY0Xnlxbz5tUTd1WHpPd2VUOFEjbVFEQ2x9KzwkOVdPSE1LJEVZIkYhZW1QVXcqQlFERVh3bEJHbmFXNmJEU0RXTkBQdiYmXkB5'@; put 'PitWZkdNbCVbRFQ2YUM5LGQ0TDMqLiJAZ1JaYUBOOTx6eDJmT0ZfXXUwKCJDfV5HZ3BGeFI4dmpbaSUzK3Rtb0g3OWBvaCsxZDRvPz5gQCsuRWs6W3Z3NGgha3wyKjhpMU5RPEBTbjYmWyskeHB1Y291SHNlbT5gKEZTKy8kXkM2JGFzKHRwUGZbNS87aXAkYjgic319W3QkbCV1d3tzND5ufW9+'@; put 'bElCVkNaKWkzNmpTI3VIVkM8P0ZDPERzT25zJWlSJWswVGZUJWRjOmNnL2M3Pn0kT3lHcUdPOl5JWF9bMUNEWSNkdmNzamYvR1E8cWgoQ051QF03OTk6cWNka2BKUHI1VUs2TDhTZ3lDL1VuOUwwOzJlUDZpNnNUfVovfjBpQiU3e0JCL1MzNls7Z3wvJFc/VCEmNGRWUElPS19BWEN+bjosTypv'@; put 'MjBwcEEpZTtaPCFrWVZ+MyhkKyFoYyVfejNOI3lAfjt4Q3N9LmVocG0lVVM7OSJmTHsiUGs8enVSVHImJGUhJEFXRColJCNrMEVdTzhRMyo4QyZEJkQmRCZETHdmQD8mPS8lJiJDOVF4P0hsSWw8WkRkOWFCXW5Pc04zPCFrMEU1aUh1XnxdMi8wZTtfZiFxIitjVnxHKjR8ODduTGZwPVdrWTtB'@; put 'bUUkKkhacEhqRSQ7VlFHdHh9XSh0cUAodFF1alhZYkBGJjJGK3opOmErIy96TyR5LjUmOU9IVy8uekNGLilhOFs2ZWAhK10oS3hsbTRXYWRNVihaV2E9PmJfcjhvWzgue3M0QHI/XUZmWGM6bUhIRixUVX1RQDw4O2FtNVtYOls8LHRuYG05IXxFam44QEI2cWswYig9OSE0I3UkdVM4IihiaG1z'@; put 'VCFiPkpnJUE1aCJ1N3MhaH1dQnI5ZTNdLC9SNnJVajVqUkkoS016VEhYZG5bWFUlbzRMM3sjaC9qQmkuKSU2YXYwTGJ+cWw1Q1RtJSUlLHglPWZtWGgrWUNjc2s5b3M7XnFeZUFkeUNEe2oySTR0LlklYi96LnNybFg3azlgeUtLRlc8ZiMmO21zfWZqLy4zbnw2aFpVU2EhfFluWlVoOTUjSng/'@; put 'fUtzI2BCZ146XWx7ImJwLlk3NFJhIyQ1aHVXKkQrKl8iS0VVeS9GYSlUPHVwaHhAXmpndEV3SHYkQ11uJENdfmdFelF8SStBQnQ8fUA9XlIrUVN4KylgS0dYbjpZa0s0aGJbb1txfmBWPH1gSF1TcjJub1UhVFM+ajBTS3g2PHVwOCpscEhwdzRXdT9SZVpVMSklV297YXBpM2hESUgwR0l9ZkU1'@; put 'fiRPLmdwdj9LMiRwblV6R3Y2Uiw+LltSRlFSRG5HWFAzYHJtOyYyTGNZM2J8SCVQdWBgOHZjejZyVV08YEt+cjBHKF19KUtUOWV2d2U0VHhfKGV8ZnlaIVcvLFR0aHhTQnhRaSJ4NHFTcz1eOEMyRHNWRGs1Q3VtbmQ3ITtAdntge05fMTElW0FaXW1+YlV5NWRWeWhzX0ltTGlNTDN6bW05PHg8'@; put 'Jjo9X3tPL3VmUD0zSHZAZE5YSmIsI34ocldnSm9QOVNyQXl0Ln1uYSlfI01bJXR+JFpENmsmWWxobmtWO2YxNXdBclhkJHRSfGo7RzE9WUVwTjN5VTRULk5GS01lZVlFaVh3WXNlJiUvREg9aUMzZkBSYiolZSxdPypeenspU2J0WnJ9VDQvWFVmdywqYlVEMyVdYVVSeXBFS2NdclglUGU5O0km'@; put 'd20vRHR2PzlTNHApdHR+YiUzPWd1LlZTJlJVI2E4O21XXyZqOz1GUHBzM3h2QGxLbFM3T2RmP21IOCVQKyE9dXkyZzkkJk5MOyh3P2UlXmExZSJYalVjL2tCaF8+WlIreipmI2c5UDgrMWF2JTczb2RSYiJiUjJyPHtIeUxUSUtdQGBdYls0c0huMkN4ckFuSUtJITs5TE95c097fEJsOiN9JXR1'@; put 'XkA9azp7e3tRK3wyXW1rOCVBNDpeWVNFO19bSTVqVmN1fkE5d1kjJnk6LiFVYkpnODlRZT1EWnkpcTFvJVF0PTEidFIuZHhbWTZXRyh+bXZmeHdGZ1pma2hxamkvOltFeGJsQFFKeElhV08jUW1ALzBaI3JnKy9lRHQudXMjWiV9Zi9lMSF8KzV9fWVjZTBKNC9pKn1lY1VHbylyc0NOVj8pfWtJ'@; put 'RXVNSXhbKld6MXx9ZGYkYVBicmA0aGIsZUQpNyV9a0kmPzl1PDo4fWtJS35lYyYoeFtIdzNoYmxkSCxgNVcvUXFWWndOe3NpJGE/YnsoR3JTTiVaZ3owZysvJnxyX2thUTkyInFPaGxvN040Wk1tIy53KUI1ZTBAeyhQeipXRmMsTFopQ09deUU2KUJGYTMsQHRvTCR8KzU8TGhzI1pMYUUwWFli'@; put 'MSZ8Kk0pZ0ZjempsMFhZMjBnRjplO0ZNNHQlOi40WyVNIyxMTSJCaCNVRTsrPVA/QEFYKV1sezxofEQrV3FJQX1wUUFDWShJMDRCbHxlUj5AOXVIWyZ9OEltYGVYQkA2fThJWTVZWCpPQXl9dWlIRGdsMT9eZU9SV1F2UjxYUipPTjdjRX59Zi91V1dXUXZrfDk0LzQpfTBJcWBlWHBRIUdNSi8s'@; put 'LlElZzZMWnxPUkF7ZVgzKW58T1IuQDl1UUNCPzcpXzA5R0I7P30wSWdgZVgzKW18T1JgYGVYMGA4fTBJOT85dXdhZHNhRTh8OTRkNiN8T1JOKmVEV2xtc2J4fX1mL1cxOXx+UT8qZUQ4ek1QdURLMCRhOjZtfH5RPEA5dXNHRE8rVzZJcEdsYUJ1Nj5FRytXZG41RTxpcGd7KV5XNzwqJDJhbngr'@; put 'b0VZYGNaV1JDQE0hWzh4VlI0REdjTmlZakddOHgkUWdNWFd6dSpMZ1pZbENtUEd7b000YSlMUkdjXShsI3c6ZzQzUj1gO1k6eXN8bE1IRCR8WlE7aWhzSHhEaSh0QzBxej5ATSVFRXVzSHgyZ0ZjVCVkUEMwZ3g4dTd8WlFsWG9zSHhtcVMxdkBETjEqbXMwYTtmQG5TMWYkWyQ1W2x7XVA7SXhr'@; put 'N18+TSZ8dVIhQDl1NTczRGpVYnhzWVYmJitYKHZTciwrVyZJQX1wUT5AdyNUV1N2Z1ZuNDJ6fGBDal9rU09oRUN+VmxIOHBRPkBlQkR7dEtRQ3VzLHNqZjNzaUVTcHtSeVk/clhFQSwpfVVJajV4dWNueiV9SXdYazQ8d2Vec2lDNnt2dkdiYEkwVEheV2JlYFt4JmpIflc3ZSxEcnd7X1loO0RR'@; put 'JTRlVzZoO0VjXW4kZjlqdyUvSiVbfUNKKUdyQlF3WDRbY0lrYFptRnJ4USNRQ3syYlZoVDVUV0l2cHFENjVdaSZ5Rkx7SGg8MmdYQi5NKFpRRkhlRm9PMjs9cTAzfmJHZGUxa2RdRSEieFojaHkuVmxTRSRLdzMkX0M/RClZcnxROWhmKDhzeFEiNig7ZlttdzgyQ0lSWjooLi5taFNVSUVzJkNW'@; put 'WDwxcEd+TXNEbyV7Y0VgV3RwXkdLWnMzJkMwLjdwLCMuLEhlb3Q4Xj14ekBBbjxwYCooTyxec0AzQ1E+O0NwfEh1XypqOjtDIlQofVNbPF1KQUIzdFRDX1ozbGlEUTUsXVNBRis+QmBkdDpWREA6SylrUUtBVXRaM21nVTM1VTl4TSU3Wkc+ZF5vN2BRJDVTUFUjW280VDh0aWRlNyY3KzlFLDc9'@; put 'bWJUO0o3c2dxeTdZJmhLPXdMTFlxMT5fPnZ2fkNjPT8yJF9udDhKOWVQblBvNEF5Qy9oUj05aDBKdXE9Q0dSdi45d3FRIT1GdzovZjpBWG1xJm99Z29bQkY1eWVMJFVYOiwpTEA8dj4uJmQ9dypPPHhUVXVxNWEoQzllKHV4dk9kI3RZcFU6UFk6dGZzQitmdGllQUdkOCF0T3NlVW1iPERyVT89'@; put 'd1dNO2BUI1txbUJ3fFNMNVVtb3deP2FXViRXb0piMHh2QUMuXT9pP15nZi8sI30sZntgbyIrJXRLUWIjY1RveytPbWE0aXxVJHomI04iUH5rUVBPX2xZR21aJnc0dTNgPGdEWWh6LCwlb3c4ZDdJbUEwa3BEPEIkcFRrPzl0ITdienhXOG91fFBuTiUmKFAoPnhyMDpvWDxbKllCc0NVcHoyN05J'@; put 'NG5bQUEoMzIzcWJndHZ2ekBLPmxvPl18P20xI2VyTys7eDBDQVNaeEZbMlVScGRFKWg6PXN9Q3JkJCIvUWJjVWhjODBzdF1+UnxLM2RBTSZuUjRocXM/M0MvVDwyXntJYzFmPzREXVhgXlh9cWRGYXs6Tlg+e1lmdVUwUzBZYHk8TzVmbnJnPnhFTiVtUWVucGc9IUpIWTheZmJeR1V0fCojdTdb'@; put 'dWxhaGYoWkZiRlhqKXdYMUt1X3gqZW1UUFNSVm1PaHJUNVZiOWYiTyJfTnozJEJAVj16RWJGISEpX2JCJnBkVnRCeCRKT1NIU0pdb1FJVTZ7XzdxcnMhZVJEOEhBdTpJTWMmWzFYTThkJjtXMjUqNjNzIVcoQ0tmQEl2fF5ga1hUXXR5aHRibEdQQVVtTF9PcSNwVGlpYkY7elVfJSNLRnlMTyV1'@; put 'I3BUdyMiRGI9dF1tJChyUCw8JTRLNjMiLnBEQzMiZ0k/NCQpfXBERWhjRj92Z0pNY2tHVVhpWWs+Ql9YeyVkTDx0fS8sKClpdWRCKTp0K0ovSztQJWZXSyx0QGVaWVdNOFcwbm87cmYqUV9Kb1hUaTBrO2g6VmdNTDYzcSQsfkEzSVRifFpvPk95QF5zalF5SipHSkU4SkssNlhbNmo5UXA/PEA4'@; put 'RixpZHtYW3UzaHkiXipLQmE1YlRPZDt7aDp6PnBIRyNsR1ksXlZGeFIzY3BZKTVqfEskcURZVWhyT3s3O1tyZT0pKj9qeTtnVVYxOzRofWY0PXUufWZUXytWV2ZmVD9eeUBOJXhVOlcpPzI1MH1HTlo9KHZHcV08dFZFeUU6ekAkNFlvPFdRUnp5UUF+c3ttcnM1YFolZF0zQ2A3Um1+e3lVPT1W'@; put 'TkUxbGlJTlJaIkwmXS40ai52SEIlSytCW0dLOXhOeUIuLCtGUHA/MTxCQDJdXlVoZCFsbEBDeX5qRUckaDRfV2VuLjdgZmUsdGRURT50XiF1PUFOQXBSbixfKmg6QiRKVFNfOyNKVENfdT5LPGZiYH00dilyMnZiPXYyaUlhVWIzKEJzJThDPV1PMzJvaF9SKSpvfD5KLiFbJHhXL083Z0RKRDVt'@; put 'X3RIQiRHYzZiY3gwMCRrUkU/S2VbXkhvbEtPU1B8IUIhJF91PUAjVW0zJFFTfCRTdS9dJXlbSntvW142QWBdYj9yPH17QG9AMTJbfiZgI2dXTGhBNVRtcndZM2JlPFV4bWtmQCRGMUY7PXtOaXtDKVJbKCMjYjl7OjAuXyhrO3RAcXlqZ3NYU3xLPmc4fDpdUnJhViJ5T0ZsOW1SZmxzIlNzJFh7'@; put 'ci98VTNmeHJKLldNcU5NZzx+cn0oPTNEVU9KQX11JC90PGlEW2drRkBmTSlLPDk2IUY7MFFCUC9vXXJbcWZzRExeKUQzaHFUL2lLM3hTb3E1MF88LGguS3Vxb0RreV1ZcyIjS1I1cUdxXjMqbyJYUzRuMHpgSG4oRTk4Q0dWQFsxZGlwdTJ7XilVb3RreEVJTUwyWkMmRVorNT1IfSl8SExhJV1e'@; put 'fXtnfk5hbFIqOGRpLylKNVhhSksoPWVrUDtZdk9GVWxpQ3xtZWkvKW5VUSx2L0BXInJQXygjS1Z5cVUpdFltaU8yYio1IVI6Sz1oJEs8MGBpQmpOPyMzS2hMbilGUXBzKF0weWZCd3smcjM2Q11KeS5zMFZPcyMzcHpDLnlqWCVVeywwKTcyTHVDY0VIdCVuVUVFRXtDS2o9LnEwVDR+Q0sxYWFe'@; put 'US9dW0kzK1NDVlgwPHpsZjQyOzh0ZGArKn4+bXIxMjR9MV0uVVV6PywyYjdKfFVdQDVCNSN9P2tAQncqRyp6cU4uUi8hK3pyNnNOYGE/MXE+NjdeeTJ8bTo7NlUxWG9dL3FmISVjaXpTYjJkN0kjbmZGcVsrQiFwJmYlPmduUUVHPCJWT2o4OH0xbF9sP1IwST99ck9odXZnPCg5LnAsUTk4e1px'@; put 'd0MsKTRxUFtQL2NoYGpPOFQvfG9HaEtSNSM0REg5bldwPSh2cXw/Uk5TMTBvclk1UG88ImttYUkie0toe2E6K0xrTmAhJS47Pn02VWYyTmJwdUZSO29zZ3crYmt+VEdTPUxMOG1ScCx8cDlvM2lSIVhgZCF6SWFFV3Y1KWFpbEpvaWFgP20/ME5tflFWfEtLdHZWKyhYMylfX31TYUVDVF9ubnpv'@; put 'LGNpa207R0lxTUNad0YvWG01K3VaN0YoR3lqLHRvVixpNkV0X3RTUGtOUE4kfF59PyZvdVsvfCltYCphL2J2Z1M9TGVwXnxZXixxYmkwTn5ObUxzZyYqYGBPW3hCZn5kPU8hYF16eVFiOjJzVT0yQS9lMUY1PGpuYSNnVl52MDZbSjw8TFRNI1FDdzB4OjMwKmFxfjwrVVtNO0RTb0VLTU93eFop'@; put 'NzA2SWFVJm5scD13ald2P3o4V0spVmVCSm89RigzaHM1QUcubEFIRDhCSERaYVcrRU02fk5vXS8hSiI/Q2NuKyF8eEpbaitnbUc9aWtvXS9aZkx9eTlbWD1WPCFOKEsiKnJBZD53L0t8Iy87KV4oMXldJFJ0cltxYzZET1JDUlpiV0p6OS5wXmdobVZZUTNCTygpT0glJjlnaG9JfkEyc2p0T353'@; put 'QElhJipodyNDdVY0Kzd7N0tbVj9yemVLbjdVfiZLJjx7QT4sWnJgIi84NW9OZGlvdUpoSG1VIS92fEA0bHZ9WHUsbURHWG5TJFZffUcvKykufFNCLm88TXl1W0BwIihEZV4lfFp4LkV+LzthaEk8Kl58cmxDJip1WjdbLyFGeTVdMCksYDx6PXdacCU/TUBnOTBiKEdxe0Z5X3Zfc1dzQWc1RXBl'@; put 'dm1GKDBtUF4pWm9rQlUiSjBuXXove05aV0cse09bOkVJcXZsVnw3enx8JV0jVm1MUG1VPTBtOD1zPjBtcz0wbVt4em4sMEs9JE9PZj56SVszX2FwPVp2T007NF1vbzUsWDE9Q20sYT9LO25oSGp6eDRmc1FnOWZBPDlLO1MoJm80NDkkflMlaDFRfG9efDRDI3ZwIiUsJlpzam55KTAsfXBePyJ3'@; put 'Tj8iOW1dQ1tdbDYhbyo3bj5nUHlGJl5OaVNzdmxLIkRfUDlHfUdzLE43VUpaWmV9fVI4Rnt4QUsydjhyMTdVXjgzQC54ZXMhfFV0O0VkKyhlR15iOHh7OTtacHQhIXUyT15rYjheZyxedip2SWwmOn1NKXZvN3dXfjA1SUZSZ3ZNUl4oLk13anJIXntXZEdhSWJEfl89Iz8+OXdacHx0Nk1fPEIl'@; put 'ODkrOE0rSykvfmxySGcsd0JuPklMYERnUDlrZV8veDojczh6VzR6PkJ+L31vcD0oanRXWCJzVlo9e2I8WjEyX1czfTlPPlVObDBkfikzbHM2c2xaXkVTZWEjMl5qWjw5V1Z+VjEqOHdtemYmMjxbPFM7OCNSSmlGQV5kPkE8R0w2Rk09QWgkISp2O0BeKXFgUztJemNrYzt9RmxFYDEoQyFHW1th'@; put 'dEZMdys4U1RTJT1+TiRnLDEpMXtteTNWTWdUJmttVGpNJVU6PlZlK2R6TF97fTsrJTxxcj9hYykjITU1fGB7WCtCe312c202V2RfdHk5JWtSMUpQY2lfKEMjMWRpP0JbVWQyfVExK3wzRTBYOGd9XipPYUdeLHcsOS56d0YyZGpGUkZtUkF3ZX1ORnRveDRhKD8rTWMxYF9EI1ttITFdb1V4Q15r'@; put 'SUZ5fCpHS0g4PW9ONTxCTGJBZW91JC42ajIxQW1zcEdzfUdGU2FlQnQ8cjFvXipbdH5fKWlFQjUiPTs3QGZXWzcwKTZXcH4vQzhnSHJlPCNFazN0ZCM5KS5FeEVrPFtTOS9Tbl5wZ317S3pedUtgNmJFa1YzU0pJZjUhLHJvZHhwUCR7SmZmfGpSe3xnQ0lbWz13MnBtbTQvLCslVm9LPFMxJTlE'@; put 'PXx0MFthXXcuNDlhL0g4Tz18JE17OnhMbHxvQGFmQitWczlmS1huRFpkazdhPi4+P2l8dzgkP3FxSkBkJndPTzRTIUpdYDR2Zz8kLHdwfUBEIUJTemtGdzh7TDYqPmFqPDddYzpqKlI3bVt7YXRqUW5kP1dVTG5Pe0Yse29LNHF+dyhUbmFJS2NGUDVxWT4vb3ZIRzRgWjZ2YH1+NXApLz1sPmh4'@; put 'PHcuc2ZfMGhPOzk7cTI5Qy5dR1E8MUU3V34/eiImRkBvfEFyTDBIWyNUXTNLZU5SY1dwRllONCRVaD9rQE59LC9xQT10al8zS2VMMzs/MWJGUDAuczFBakxGWC81NkBmJHAveyRLTUksMkgzcWoxK0ZSeTEwakluUzwwI2pLPkBOfiRJI0B2XjQ7JF94aj8/SkpSRXx9NzM4QFMhUDBffTJSNX19'@; put 'VGJbTyk7OiIzdjwia1VrRXhrMTAsaUM6Myl3REx1PFdiQVNYZ3RAZVA4V0wydWc7MFAxaFlMZV9NZSY0bVo8aWZdfVk7VVRlcWUzRmxDa15FfSVYYD4ofHI+fCVTeyhwSzl4YDRYZyUpeFJEMCsudDNHcXxydlY7OVgoVmBBRWV5emVMVWJ6R0ZUNCMsY3BlM2Jed0huXXc9V3E0bVNVSFY7XSY9'@; put 'TUtgbSpTQyMpTEIvLDhuUFFtcVtsNDlyRmxXbF94RHIsYEgqYDtCJFlXXih0eD0pQlA8bFRwT2xMIVh0OnNsOH5lYmljaSRCcWBxcEBURDNgPkYhbXI4W01YQyxsVVp1aUcvS09YJkM3XXhya3Uib1kqKFZwUUtMMn5ONH5ASTdzT1RRZThPbGxRVGNrbEwhMGxIOG1mfmk3fEQvR1lefipxO2By'@; put 'ODV0RFdeeUkvWDBaaEsvJXZbcXg/clFRfkMxSjRBVVlVVHUkfEkzOj1zOG44Om95anlILnNpMyVrITFCPCYsOi9jLGwxZVBWPVdlSVB9LDlzKWAyMCJALDhSRCpER1AjYDJdLmAuVzF1dFFvUj9sdWo9cyxLL1pBRjFPOjY7c20kbFV7PmkoSys/OF13Mns2bFlWa0cwMmx2PEFwKnAqUG5zKSlQ'@; put 'fXUvUWQ5NSRZcCFvJG9PfUhlZGtSb3tJTVshJVRSY3BwbXUrcXk8Z2pXKyhscmtvSnxnd3hwNVUwVWJoNC9KaWhxYXBYWjlleWxeW09Afi9HckdjKzcoKk0lX0ZRPmJsKmZXWEE3TXMvfFo1WUdeNjVLOz03aHJaKH5ie1NeI0FmfEwlV1pPYmh4djx6MD1AVF5hVV5xQy4vUzU+KlZnYXdtWWY2'@; put 'LiJvfSZiNnVUTVtLTzRLIkt9JmFKU1VYUVUxZ0dvcz9lOl0jVSpzWHljfXF+IU95KjR7TzMmQl5PV2puLi9xLDk9dF5RP0AjIV94YnNwQlEoRUZxbjY4cEQ+MD1sTFpUdVMrMCV9RU88MkhpMjkyO2h5bG5aY1VdOCZ6OFE+OSVHYVcrVnY3Vzt8YUldRFFsS2kzfHdvYFgsLH5qWlomWCMhXTJI'@; put 'L1I1UDN6KkwhXUoiMlJdMUovcTVGN31ldit5azoyWSUkWnY2QCs5Oyh4JjFjP0R0dmRAZVt9U3B5MnclVS5xOCxmO0VmfnFIL0ZdcUFYUThUWHZrPXpCUHB1MVRiNnFFWHwsNnl+aWF4bytfXnw+PXwvRjorc2RqWHxWV25bPFNkLm8oNnR4WDFbKSVKaWhPfGpfVHBgQmU0YSMrTzFzbU9FaS85'@; put 'KiY+ayplYWBybCFDdjZvUVBBLyYydnA1JXxXU2wjLGt2YDZyXSxSZkpFWzh8MjZ9QyhoL1B9MyIkSUV4SXxGRStHYVlVLE4xLHMzeChsOitydSYlI2lmX0RvZ3ZkM0MlfCYhPD1DL2xmfExUNEsyUXl0SX5gOldELyRle1BffGAmSXtaSGl8OXRaKTR7fExCK3pGUV4zb2RtNF9LVXhPdWNlODxD'@; put 'L3NVI1pwU34xQzYhI28+QDk3SFVuV3NzfXpMOFIudSFRZUJ7c1tCajxtfGFXZzx2dHx5bmJufHZHeVJ7diFAW3BCIiYhUlUvNTZfRlt9TkU+RlZRVyxkPF18WiM/LkNiIjNJSCQ2NUNQfkpUIV47TktQXi5jWz5sPCFdS3VIcHp8O1sqZWR2QHA9NCRQdXV5PUV+bigmZ1RUISRvYyw2fVBVQlom'@; put 'azhnQF0rJXZRRUM7aD0uIX41aihfMj9qODVlWmFjKFR9Pj1bcHtxfGslOEg/V2BpcDEuST1PJnQwJX1XMz1PcSNGI0dedVlRL25xRDduWXg6TlcsSyQuTzUmfXJ4UT8od2pXRzpVKE5kUmNQLixZbFJ+IXhyTm4sUSlVUWlkIz1pKks8NlMxPjhxPz9vezV3UTc0c3h1X1RUOnBSOW4pYzIoUjA/'@; put 'PVVpXyJdVmxmdFUyPFgsQ3RTLyw9YiRJIT1KdkpGSWQ7dXgvN108PVdSV21BKi9Ya1tebThEODNwS1M0cypKZjs4XnwkZTE0bn00Q1hGS15HKEFgVWp2NGwlWCFrViZvcThCT2A6NDJFSTlIQCluVD5NO3lEPH1HdH5xTl44aUE9eU05UUtfOjp0VjtIYXdheXVXZiU/VmwzT3h1JTRpRm9xdmZD'@; put 'PUdObTp9UXNNeEh+JUVveHA9KHI6KERrPCk/KmV3RC5FVmMsUn1ka1UpQmJHazE6WzVWVj0/Y2g5ZXV+cVNQO1J8QCI0PGd2TiFlNmd+cT0lOF5WaHlvXV5JO1FyPHg7V2w0dD12aTNwOTxpVX1YQEJyNCM3V0pnODMvWzNOe2s6fn1ZeHtKYFtRbnV7Pm9CMFI+Zjk4SFdpd0g8Vn1eQSF9R2Z1'@; put 'bHNpdVhad0ZYNH1Oen5PeyFXaGk4Q1NEWVYobjA1LjxULCk0RnQka1p7ZGgka1FMdE5tJU5mcyZAcmI2YyVIJXxwSkBJajZIXi5VM3IxPHRnVkVXRWBncz0oQ3pCTU09ZHVoUHk2OlVYIXZOfVZRY2Bla0JiTFZSIXZfMmAwejYmWz1GcTRgWyl5KkI7YS5JOUt+ImRQeGlnK2VHNUJQT2BjdCMm'@; put 'WmFvOHJUL2hgQUlTdEY7LiFGZyRNRmdyI1Evb3xrND1NP1dNSGpYc0lEYTJ1WGQqQXFAJnZrQ3J5LFhHWDdpLDRma3heWTM4Qm5wNF4yNFo9NGVMQFRpeSRzQElzOEViP3k0NngmNF1YQUpbNDR6Y08mWjZkQUlOPHIlUDpFNk9paTdEcGExKUwxT0N4TXpGTl1scSV4OEp4Xk1+d3h6RXtMQWFf'@; put 'fmo1YXojKV1iLkE1S3lwZUFyKzo7QiNbLFBPSF9PL2ZdSmUzZEQ8MVBjKz0vOWB1UygkemdmRHB3Sl5EOH1Db1QjaV0ub2JlIkkrZnslLCxKcm1eQ09uTjtAOGAxTlMvOW96V0FoKVtIRXdqazMhanNiOUh6RjJbOz1VKFp7TUZZK2dLKjlkXyFoR0Z6XihPNTl3TCFbSEY9bGJ2e0YpaVVXM09l'@; put 'Q3MvIUpmKmN9ODEqSDJKb1EkRHRWSE8zN34xejF6MWwjMzdRZyhMRHg/dXRZKnkoQigodilNUU1RTVFNUS5NY0diRVR3WjZTI2VNdHd4fHM7Vk1YeCg/Nk5kdztxS0w5SD1udl1bV3VYJGdQe3MjOylzWGY8N2F2aj5Ee054RDZbP3hONWYxelZNQ2RpeXVfXz4pJldWRGZgZylhZiVpN3FDJWhn'@; put 'bU44W2RPOyhwdGI5NWApPm5UWHhZNTk6b05uaSJERG02JUJ4KkclLDlIOixjcG52LEYrRD9XM3EmTW1veWg0UXx3aWZGO3hzcCVWRlpNXmUvYWFwIltYPlshQWZCfm1OOmpSPHxbZWU+KV5AOX0jeDY+RUZPeU46MmZVekMpNC9xYFBfZkRVUyZ6RUpeQzhhV055d18jLDQ/cmBnOzk6I2BpSkQy'@; put 'bHVzX15oOUxYSEk8bF1qLDhpUm9qYm1bV2dgYSxeWWg5KWl9XSQiaz9QJjJdNWt+RTZRRzlVb15vdFliRjd0I2gvOUtANjM5VzcjJmVPLyMxKy42UTU5ekRHQihxUj81XS5Ecy8hSnp4Lm8vNCgzMDV0c2p7JD9zNEtGdnV9cW45Y3prQjI4U2c+XV1MRnhGe119a1RNcVgiU3dGdXVjLCt2PEM1'@; put 'QztUdls0d3N+fmBsX1h1JDFrfHQhV2J4OUI+UDVZZ1ltT2pISUcpQSl3WmwzV0NOJjFDaUwmW0Y2WWpMP0NGZ3o0Omx8Xz5yYFN1UEdbdUUkdT9ALGcwdDYuK09mWn1MeGQjV0VEKXcsN2c0eGB3UEdHb1lJdyNtZEo4dyFudGsrezMxQDNLTDwvL09ObUs1eCpiSTh2MWtWOFo1Ykc4KF1faTQ0'@; put 'OmJbLjZZV3s8UCVaPWFVSHJvZ05JaVtkYjIxU1BvZWJZRFkySGJAaF4jVV1fIz9uZXZpNGd4TUFVfFdWVXZnTGZjO2oqTDk2JXg3NlUlPCxYP29zZ2dVREt2KiU8WlVJMGl4eDE7XX0pZm4yZzFuSSx+WUVRSTJtIz1deCpJL1FaZl4iNyNkUkxucVArMGM7I1JWNyhIOUd3YkV8N1dudkt+ZFs2'@; put 'RSV2YyR2V0g0X3dCLy5AW2txV0lgdS8jNSlDc0c5RjtudFs9cSw8SSNDOzdLP2BGLiRDfWxCSSQkT28iL2RdZHZLaG5uUExldkd1LEEpLDA3ZDNMNDU+RUlPT0NYQCpsJnAhS3tXSnlPYyspS1dZV0pwMTlJJHt0WW5IXmVmV1tIckFIRW4zPXA0Ujt8QHBUJWYhR3xlYio3blBmWmVuViEycGJq'@; put 'ayVHPDhxZTtGWCU9REdQUG5CJipRfkRZK1Z3bDc2VUg7YWRbZHVIUFUwSl5EJWUyPkBhMVczQ1F+NT15d3ZjRGVFQE0kdTR+JjtxclVfOnEyYn1BYnNiZDQ7NHApV1NLZT8sPUdXQjw6Ylt0ZFA7NTQ7cEEkNz88Oj1iWjhjKSpIMnNRVHZqITtBajpvKi5VRDRtdlM2NEVdVnkqRnZsaDg3Mmp3'@; put 'KENRYUVrSTNmUUd6YCYyUFReUnlvJHUkVW1xb1QlVVJWOW9jX0UjWypYSE9gR106Wk90WGphOCRlUWUsU0Q4NjhwMnNGWCRnUHtoWyF+RDxzcnZEIVQuUFpkeT50ezxudC4+RjRocSI4fW5MYVchRE4/d3ZdcUkwbVsudUojXTpmbSY0ZHxwSEB1Zn0lW3EvZXJncWJELF8mO1hCXmxAdmgoOUI+'@; put 'cnMjMEI8UGY0Vz9VNDJyRVdeWndEdCwpJHhRcH5+cVBJZmNVU09mUyhxUkIoJV8qRHZsbSU2fVU7IyZLZHNZVnU7RFRtXlVvS2JyaG9QcmlOIz00V21oflUjWExaaDkvZDleMTBHSG97XWJ6I3EqPlpBNVk3WihCV158MEYwMHcrUXFHUGE4VmpHNDEzZHJRT1thfn1uZV87N3VlUjR9KG9qTip+'@; put 'eVRAaS4meFglfVtMQXAzP198TStlU3U+dk5+dDxFP3tvRF9bPyJeS248aDRke01fcyxCcCZFUXZ3eTFSWCMsJVVPJGhnLDFZY3FxPFRnJGlvSWRIQ0s7TDxfRE84dW9WfklLTFdlTTxtWH0zR0JmUlVFNnk6YnImblZmUDs/e1VEViRrT0Q/P1NGJGhfe3Q8P15ITiZhIVhmN1NDKmQkWXYoMUFU'@; put 'MlpGRWd4TmV1JTVRcGFvL2pYTDtOIyIvbH1BViU3PEFyZnpyRjshWlBUfVU2ZDdHPF51d2gkWmxaREM3QkVHczRJRlYiS3ghR1VhaFBWPWpjJilHXSRuIUljI2Y1T1t8Y2g5QTRfOiZ1ISJ0WmAvOFVRRlFPQVJHRz48ZClbXk9zOSI+IWU5K3V8QkdIUVV0WCpjKyN3SEFEbysqTUlVJWxUdilN'@; put 'YWUpOkFyXUx5SmN9IitoX2UofjM4JU59Jnw+RHJIXXAvX1UyO1hySDp4Tz98IXRlbHVVQ0omXng7IUtAIT9pdFVDMnJhZnhdPXMrSX01SiRHcStBK2BLaSUsXnxSUnomRCRSUSVISFghdT9lW0I9QGBtamdqVzNqfHJuUFRQK2A+bm1fIjkyPEp2W3xndWlDJHolLHVNSVF3M2duLnp0NyJHfGIp'@; put 'RWpOPX5yLjtWc18oV3JZcX0jbURqW0U7YSFPRlJpQzFzNiwkdzpATCteJVd2ODp1OUJ7YkJNblhRfFdHTllFNlV3aE9KbEl+SHdEL3d5bno5RkRGLG80IXByRHMkIlEjNFA8YmZ+V3JRbUt6Lz10fEF7KlAvbyxvVU8mWWVLZSFxN1smMG1XcWBQMXQ0RUlQdyU6MCZhWmMjOkJCQzxvIUc3QjZJ'@; put 'UjlBXmNON0QhVDNkdCpxMSt2Qzc5VzVqWDg7ZDZxb3NSSyY1VG5GYm5jV30ka19UZTQ/UzAoYiJNfDUxSS9YRzNwXUN4UU1FQS9ydXtJK0xEYURPYCsrL0A2MzEqa1M1fE1YSylGeFo+WyJ0RFhOX2FXS2t3fCtmUnNBMm5vYkkoRmArLm84RlBQYXA9ai5IIllJanI/LlE+LGEwJkJ2KjtIMDpI'@; put 'Tzdbem5nV1t8a2d1YD8qKGApOzdlTGUuTUZsRVApU3FIdytobmwlRVs1NG5xenJkcSk4bFlqa3dGRU43Knw1L25nVVl7e29ZdWI4VGwxNGBoeSt2dHdIWixNVnpSJH59UyQqZClMOXB4NyVjeUkqNlFjUW1WSlh2fFMwXyE3Q18odiR4THhELkVEVmBWfFJ2W1IvfiZ0KCI+LiVffkV8SjROITIm'@; put 'azReTSlPLzl0IXgxfWwsK3lhJUd6b1E3OX5ZeGpmfXMiKFppMDUqaC9EO0IvZWUmMUJ2X2RRaXlUJiJ7KXVdRXQ+MHB4YTtqajhGfjB5bDJnTFVFbTslQjBAKSU5aDFxMz8oVSFoPDFXX3E8WG9waVhfZ3NzdCQ+PVcmfiU3Mn1XfChPbGtbKFUjc3BFUi5RXmhMe3s7Wn1zeiJITXFHXnwmR15I'@; put 'MUtxW10kVnRwYmMlaG1ee1QzSHElbmBsXStbQj4qfXpCXkxoc0p1P0ZhQVdNWWp4KFNESUc2TzNYKixBNCMybnEsbis4QFc8XkRaNUl6RH04SihTQkt1fl1WfjQrdkh7O0h7bk13ViJ7MUw/akg/Wmo9c0NfWEN1RDZIZTlfUV9gP2cufTV2fVRgS3B8MEwiVU5APnZzWD9ePTlgLEE0TDI2WW4p'@; put 'dW5Lb1BEemY9Yzw/R2dHUzh9ZF1hfExfXVAwIX14dkB3MV9qfE8yLzl+TykyPihfUXVPXihWPV1fSHdpcCs0VCZQZUNMb0AzVyt5VSQ6QzEyW1gqc3B3KCl4Zj9wfCMuVXg1IVQjZHMkMnh9aHB7O3NyfF5+dytiUmQkcmxGKi5rNHk5XlZAXU5XSD8uJXZxTEcmfm5QNSNYLzA5WCZlTWEwa19e'@; put 'PT9FMCE3QVJYK2h4ZE18XV0lQVBELkl4akpGUV9iUHBHR28pKlM3aEh4NE92aGl4cExCPFQhbXlLTDwyZipZOXJdeCtSbjZ1PDIsQz5SLEE8PUA5fnNLUChUKVpqUUFScTFLTDNzfj5ZYltqLnhHMy5JPUFbekN7O10qKXhNJDhwVTcyL1BRUDJ+fWolRFVPZndWQVsvS3hGVkV+USZLTSRrflta'@; put 'YEYwc1FGP3YyMz5bPUlteENRcHtFaSxoMk5gMWFwbG9YUCRhVz9EZnhleiE2czpbZ2hPNGg4WzJUXVpxbi54fnRnYCo+dndwYFZjZSQva2xyZSh4ZUY2U3VUPj5lTW11biJSTk1tSTcudD41UjpWeEFzQXBgbzJbUDRAVkw2I0JnJmN8fkdAJW5xLylqTHh4XkV3I2t5Lm1jdUhkR1pgTWwsO2BN'@; put 'KHt1NHJOIyhrci95YC5SQ014MHshWT8lcWZocSMoamxUb1E5cm1DMl5BcVshP2FrWWsmcXVCSEVZd0dhK2NtI09XZ0AjVXdNU0JeMVkpdm5pPiEmdjEpaz5hO3BweEw3JiZPRURGMTk7I3lkNmZTZCt6YXFHZEwrb3JLVXZ7YWFkREk2Si9LezEwPzBtQSV1PTFeLCYyXkJAQW9wMmBtTlBMWypV'@; put 'LGBrLlV0SGpUckdDelImWlgxeGhjQEs9Nmdve0JddUlqTSg+ZSQxbT4zL2B3aztwdXIvPjBydUAvNVMzW1EhRG19JDJmQDQ3TV91fWtSfGNrVXNvQT9+KEQyPFMmL3IqPDokWTdSU3p0RTEqMzYkUzg3OUVBLHc4NkVwMXhse203UncpQ0djYG1ULnkqY21zLmo1eDEpayZFeGtyLnR2QFJwXT8+'@; put 'QFdsZzBlLmVkNF1vfV9pd3wyXi9dbiZwZjowN3pwNSsoczteIWIuQjxDZ2NFa05DWGR4cXomaFIhJnBJLCEqXyFvPGlKZjwpWmkkdCRqV3hSNE0sciYld21VO3pRRTNYaG5RO1FiUUExVCRHPWt9NmclR0t6SFUqTUw2KTsyZ3opa3JkJE59IkJzTkg2QTBtIVhOPSRUUj0kPDpuampnPyRAWTVi'@; put 'eHhYbkM+ZXUibmlUPz09eEElIUo7Rm9DQU47cVd4S3YhJWFpQXl2VSI5NSZoIVJXX0R+akFTbHc/a217LypmbF8rNz0pRTFKZ2k0UlZYdXxxZFMrXV8iPUk4fnlAcGgwWDBpRj81QG1LU1VxUkV4bix0fURdTV5UJSsuaT5JfVJEeXF6RCtOLD0xVCRBJX1rcyIvK3R1WC5kSyJOS2hlWHZ3bHlL'@; put 'M3VTR0ohNVRyOkAoT2pNdmc0KUJAY0BDW0JrQVNTel5uQVN9TXJ4WldmN1JVYGI8V3F8ZlMjRzYkLDp4eGNzXl1gY2h4I1F0Ymp4L3ZSYU5+UChUWFR2NSZfaTd6X0l2cE01KixOW1RJPEFfX1VYO1pJS2tgJCxKbXkpN1FgajlMJGpvYV5dbnhwcVtnXmUlR0l+KiwhWzAsXVdgNn1ZRW5yRklh'@; put 'amhsM15EOjU9RVl8cE4+LC4hI1JUeURUYXMoLCE9cWRPTGt8Z2xHNGF7emF+Ozx5cEdDeVgwUz1XWHN1NH4wYTssUU5MJndZWSp7IU87NT57cVpCcVs6MjdvbS5AbDIuMG8rWXNFQ1RsJkVkN0A1cXRNYjdoXS5XIVM2Kz08JmBdQGxXNEt+Uy9xTks6MGNmI0JiKThpOENBT245SzppUD9VX0M+'@; put 'ZGxUMSxkPkY+UWZCKCZiLjIvQV9bXilqXUJdQE5+czZhemVzWix0fWAyfTY4U3JaZ1pRRXBxLF48PUgpK15qS2pUMWUoSllmOVZaPnI4a1c7YVJtJWxgYVg1ZjtHbyhSQHZCNWZlODYsVFlIVmRQeSRFOzFJbjFjWk5oZG5kek4wbCVsKnUvfm1qXjwjPiohKE9OayU9cl5Ab2xoTlZgMnxXYG9A'@; put 'UiZYblZ8T25EOVU7dkdrQWssKnFNc3dBQHVjeCN+MUsjTVUpcGJ8Lz0mYkIzQzNQZzkzUHBTVFJSJm90cU8oX3NxUVNmVmZ3WH12WyVZMVpAX09xWy49QDYqPnNCXyljIyp1T0Y2WTAqIUorbSssMDljKComck0sfj0qK1NmU28hISVpe113STBGSHRiYzVSZGVFKzhiWkJIYXZPbk0kKmQhKEko'@; put 'VTJ3I0x9cHVSbCw1RSRwZyxAZ11mMUNgIUBwY3BHMm02emlQIVhQV2YlUGk7ek9FSj1pT1JkRS9HYDVYdm8seGZVbUgyeXt2XlBrPlIiPW5hRjxiY3pgcEdlKVYkQDBxQD5sOyVvPks0VTBUR3hEckcxNm9mOzltZlosNXBad09oXk15OFg5SmZTO0JpcHAmJTUsbzlUSWh4Y2g0bCg9fmJ7I2Am'@; put 'K3VtYCMpKytPOWdxckU8PzF2NixAPS4wc0o2a2wsUj5VKDRYcnw1PXU5aCJmPlNoTHtiQk1xYzEiLC97RCthSUxeNXE2KmVnYng5JDxAfV1KX1pXXyEkOEd8LEhQMTx7WUROR3ZtTC4zLmhFMW1ybWE7UXZXXnx0XixTPlo9SVopMS53LEl5YFk+anhDel1GZEUpS0h1V11ZfEZbKXxPQ3YyV1JN'@; put 'RT8wbyxeUl52MSlBUWNPSHU0RTozPVc7NlRTT0w9PW9zT281QTpQK19rPzRmYG5oSUcsLlMqT0ImQWgsbSwoWW5SbV1DeFFQMTh9RFAmOzMwKlZneTUxYVhRQ2QxKkVQPXJENz5ZeU5GKz5HS0x8eX0rSW9OPCFFbTZKRi8ybiE2ISR7empueHhkfnRUbVlwKCU4WUMsYHkyKz56Xk03XTY+RHRy'@; put 'OXN9XXMhJDNCam5gSzl1c3J9c1BxMVEldTMkKEBgRFowUTU1VSUmblUwXkhzNHxyTFlGK35eYiUyIVh9STdOS2UvKktgelVjKHlCLzh2PDtEMlFlcn1yOixOVH5+eFp3JlQoakxTTFhRSjw6eTZxX0ErP0VwP3BWI3V+WURBT2ZaPENbL0kuJkpxPExwcygsNnwpfFRjeF5bazp5eXpdKVUhcWh3'@; put 'fHJ7PDYhVlgxJjNUW31wc3JoLkZtTXp5ekZtU15dYkwkM104aTh+Qk9CPUA/OjwlVmkuOzs+Tjg7JSt2PEIuQWt2Vk55QjJ0RUUyQi5BazhlIjI0ciJWRSNhJU87fHtNYShDbiRkJCxdTz0wbXJvTyN6QDBtY2oyW0w9SH5QayQmYTheczNTe3JkPzByYEkzK35SdFV6VThgVzZKcSZgQ3NCK2ha'@; put 'fD9oPkBmcyNXcHEvTSVEK0FVXiVEYjdqNyZJMlYuKHpyNiY7Pmw3VXo7e1J2QEFzMSN9PzVCfVM8cC5zTndFY2JKYlUuTk9UVitCQGkuWGkyQnRhVGFbQDkwPDAqTmNIKllkWkMidihgTkMid0RlTHZaaSFsNToqXkRCKzxCZUc+d3JObER+QSVjNTEzUiUqW0ZDQUFBQUE6Q1BqMkFBQS4zJWxj'@; put 'ezw2ISEzVCZBMmh3QH5tUT9CQzpGbGI9SDw6YSEyeXxpM09+NT9kMDI/Sn17V3s+VXZqN2pkQ189fC9+YDM/QHl1aVl8ZzNHcVRNWndlalBUSFMlaDIxVSQ/U3QmQHI9VWZhOHtTIiNLMzByZEprZExCRGZ4YUouREdPOklsaHtSaTVYKHdFcixUPFghdyVRUWgzS2pwaHcoKU8lcjIxYkVve1VI'@; put 'PkJsNkBDXkB8QEdoRV40fn1nc25wY3JiMiUlfkBUOiV1M21zbzRdVFN4KldOdjRSVWkyZ1BZfWdxKSpuVyROb1BpO2lSTzhXSyRReTlJeWYvO2hROCxeRU4+OF9GUkc9P2sicT1dMFAkYlAhN1ZII3VSW2V8N3U2PGZOWzdlWXZvdkFKXjxwZllUYm9FT3l9MzdsVjMrQi4+KT05Y1ZgYHFIXV40'@; put 'Oj1HcnYvOi88JlAsNHU8RjoiYTlyMHZETUI3KD1iejl4RFt4RG58UTs/I311L217WCtIKGtLa3ZUR1pZT0s7RylpY0s+YXg0ITl3b3F9JS9EPyZmb2JnZHwuMWdiKWtrY1t7ZmtAamglR2QlYmRYez9zUGAsWD9+SiFPVCU1bUQ9KW0sd2JWYF8uQHkyI0N4QzhZaEM2Q3kpKk1rOmkwPXBzJnJr'@; put 'XXZnVU81RGZqOG97QGNGQHoxUWY2ZzRNYSUxNF5pNFV1UnZ0Km0qW11ye2dHRm0hI0FjfVBjdkdebjslQE5HJD4+NWFbTjdLR1Q1UW5eUDc8NClTJD9vbT1OeTN9US9Yb3pHSyZJcWkrRCZTW2Zbb3xGOmdidyMsX0Nxe25ycCN8OC5nTzk0Q0hPXkdlb3tqPSF6d1c2S2F4Vm9xKmZ6WC8pTiY+'@; put 'MlhhUUxfb3xqXkBrWXtrJjJocE8pXV9NKWFKaG1WRjBlZTVffGlkS05HTmkoKFRJYFdjUk0vLCQjPXlTKDFkTi5dI2RgZyVrSEZSdX1IUXd8U0lwdHAhUyNAeCxLLjI7d1s8W0QxOmMoMFImUHEifHRFQGxzfVpCMHZdXj1qPmhpW2YlTGVUQUVIXT19WmtRdj4wZkp8eUh8Kz96QDFwbGl4c3J2'@; put 'bTkrWDV4bT4xVnxqS1FdLEt0eC9HJF4xKz9HflovQlUzQW97YHc1ZiM2Yk5YakRZWzxfTm9MPGVTL3Y/PjA7eDo2Jnx3dGs5L1RGKUdXazpTNVZudDZdRnhuYSIhZH1wRG9dcmhURVZoZk8jPl4vZn0wIWYqMVNgTDUhXTtobUJpfiIlL2YzNCElQ3ZuQXV4ZXNTNE1lMmF6Uj1mb31DLmltaXs3'@; put 'UDEufiZOQHJ4W3c9ZDREMUV4VU91XXE8PW5wS1p0SiRhVERTeDUpI0s9Zzx4IUhKfTh0M0xdKiVtb104c3pKalNjRk4vOE4/YXliWkRTJE1dT3szajdCSyYwLHtMImBUYnlZM0hiY3BSQkliWFY1WTxvfkZOY3xGJGBoOWcuY142bE13WHpnWU9hQkZgZnZlSW11alZrVFJsX2o9NiNAR0l+QVF5'@; put 'Rk5aZy89NntYSnxlMTdYUCNwY2wrQDY0aE1qPU9OLk50MCp0dDR5dEw6ITk2Jll0bTlpL2VdXzldU1dWWzgiOmBySU9lI1pCeHNrYXpbZjVFQGAvMXs3M257WFcjQl5Jc10/P2d6Ll0+QytRZTUpMTsqYC5yOjNvMyVmciJRajBtOUZKRExwZCZOfmZ4OGY7SjdTUXZuS216dFN6VFJuSjZ4MjAs'@; put 'ZFFUb3wlcHRSJVVpbGZSIXk8WGhlUG1SY1Y2OVIsP0xlTysrTltpOUJaWmltWCZtKCI0NH1sR1kmfEZ3bHdldnQwRmhodTFhRVRWdT5wNkZJfElsNERBOj1iWSxLVzhNYz9mNF4ydF9ffl1ydGpfWEdNKTIoZzN6WzdePG5vTEdbYmRddS4oVl1kJV4zP046U15CP18paytadEooI3c6TEVPZV9l'@; put 'TkNReXpWRV4mXmczRlojOWN5d0dXK3VXTHskbWtIYlpUQzIjaXFhO0E2bzpGSDFMNlVLKEQpK2MrcCV5bCNpd1ZIQj4oXSlSbXd7Nm9IKiYhI2k5PnFjJloqdkdAdH16OytoPjc3LF1lI3ZxZzVWRz85P15uZnwzbz4jZko/Ty9Ebj9jIS8kTHF4cFZeaGk/OEZbXyh3LmVqLzV3IXBwbSpQIm1R'@; put 'WUNXZiREO3Z2O3FrREUwe1pgcyF1RyV3NlpIQTBfbkllIXMqUjZxX3Z2Q2FYbTFSVFdgRD14KXlOYUUlV3RXanAoVmBqUU5fVSQ9TX1rfFNEKyRyIzMvaTl9bEVvMjFaNmp2S205e353bjpxJSQ4eSU/UjhXOWB6XT5obzBQa3FqVkYoIlM0SyRUQmF7NUdhfHsoODhGJE1Xd10kcShZbWcoU2xo'@; put 'S3g3dS5JWEVHa0B4KDppXlRtcW1GI3gyfChSXXRvdng6ZW5iKWw9SUhibjA7SFo/ZXNvMSlUSlRPNWQ6NDNgR34zZTRsWXFvY2UicntZXXk4K1VldUVnQiYpbjV4YVE8TWckS2VfM3B+KmJOYnRYJml2OG1sXjtHPUtWPjQvOmAqfmosOkNUOFhVUThXTX02RDZHQFg6eCxeOnFnJltjVEl+Mysi'@; put 'P2cpPUZRMDp5dWdmOk9QYC5RQCt7RVR5MCRSRE4jeikicS9+OjgjNHJIQE18ai9kR2hsWFhpP3VmVUdmIUlkT2VZQSZEI1AjOC9oUCtUcHh+WllLPDN0KztufDJGK2NvO34uMTFNflpsdytFUW03IlUkczthe0Bve1A5TkdFa0tMMXgyal1SN2djYGcofjpWKk1ORWghWm53MmlFLigmLFAkQUgs'@; put 'bEZ+aTJ0Q1VbTSg6fUBeNGh5RWhwO2R+Wk97Om5mO3pkP35jeVA/UTZBME1FPFdoTSxXQm15V3c5ZCF7LiZZdnNCM0tRPjdEa1hFeiozeVhWSU48YWI6e2E6a1csS3klfVY+OXx1OEVGczFDOjxkd0k1UGx+Z0x5JmxARipmYlU5PWZLVWdtcmxuRDJTOGsxdHNUUldzYTkzaX4yTyV6QWZabWZR'@; put 'NT4kLCQxQ20vW3BoRmJtR3Q0WCMqZywvQmQkc1NJQno1Kld6L0diPXEhVEAzUEJQSmEqTFVNX2B2VXNJTWJzTVFwIjZGRVdCRThVZy8oSlBFRHRzMk18NDdZMlliI0YxT09qVzVldzdFclVvJl13VCx3cEhtWiV6QyFIRzltQjEkVVkvV21nOEhbPmxXJnBBcX5INXpwejBKcE9eK25ia246Zi8/'@; put 'Q1c4SHxuZnFSMFszNjhORXttJSJEQUVOZE9YVXhYNGVCJnVvYjc3UWo6QXY5TnpgIW5gcml1TX5+dEQlSk1xW3hpMXg9Pm9ZeXR3aWZwJXBlRDVFUF8mQGw5bmJvZih8N3dsW0BQfVkwSz50UiJuZGFzQm1fKjRVKCplMnNMJF16M0lmam9mZ21fSGZeUjEoankuYyVMZ3MxP31ZZ0BiTWdtYC9O'@; put 'OXN3SG5BKmJIQ2pqdUJTTFl0OUF6SG5LUHZ+fFczVWhZO3JaTDVYRiYrRjZkYjVFRTEocllnNHpeJjdeRHVLVkA/VnM4X2BpazN1KCReVSwpMk01SzVdZWwkYEpXNkByJXx2ckhueUoxQyF0Rk9+T3osIzJJcXQ8LmpMSTtNeEVzZTRea3NHYSs9a1VqXlpZJERAUTZbSX1Ndm8mRmZHJUpXVWUl'@; put 'I0ljIS8+NUZQdDpRK1o/UVBWKztXKC8jU0FNMTd1O3FpY3t+fD82P0BdcTZObjpGfjlhI0NCbHcrLitNcUsyXytHP2dMd2xNPUJqRTMpeWs0MmN7X19KVVNVWUdzRVRIPmYlRTV7XykkKlA+X21aRnM9QncpbTskdi53NG1LanxsZCUjUiRDdDIvN3VaaHlYSE1EIVgid1gucl57b2IpK2F0fTRl'@; put 'dTZYUW9MeVVwPSlYO05LTCt4Z1hJVWxheCxnTlRKJHBWL1EiK3NqI0dCdT1QOV1hWXppals6dXNJOUQqUkhrMj5+dDghT3hEZWR2aTd5Jm1YT2htLi4kbyE1SndJM2wwZUQyeU1PcTdWNGBSQCxAQThjX3YwYXg9diEvWHozUEw+NWgiZDJ0Lko/P2F4RX04VDBjMG5bT0xZXnlWXU1kV118SnVC'@; put 'QS5sW3YwOCxRfGp6XkhIQFhqMyxWJnxwPjxHcT8oKWAsWy92X11nemsvQ1h2IiVPaVowNV92MDVnL0Z1ZCMvNXp7e3g2fGJkSDBZL1lJI1BKPT4wQFgxWWo/WXg6eCUkeHFtNWRYNXsvejttXzxuakd+YWZIMXt4aC9wVyNPVyRVR0B+TXQ1S0tNdlsxRnJEeV9MeFsjK1t0e2FRXyMiYHZhRmsk'@; put 'QyFGeEg3QEB7KiVCRXtlOmx4Zko0PnJoJnVVR29vMzIxa2hCMzJaSGIyMysjV1clWTNjal44QTEyamdzOClhcXl1dnw/LGJIQD5mOVlAUkFaRklmbGRFYlNwRncpZFt8Z2szI05SRSZ7SVdRfWA9PzBeKWdDK0lwbW4xU09edkA8ZG0rJl5IP0JzZlclfU0sIVZTJlVbL31ZbHlUIj96XlZdNm83'@; put 'Lm90UGhCWD96cGQ2KC9We0NYcSosfDZeSEI5T3cwaTklYzpIOWloNkhYcSgjXmxYZW9hUFZjbHpYZkp8PnQ2UGAic2YoS0hoaXdgPGllRUBGaU4sQS5oVlFSX0psN3w1dFFaMHBCezN+bXpbJld8digqL2gzLEtUW0wkY35lLDAzemxFam9TfUB0cHNVWGJYREtlfV8yVjlsO3gvdWBVTUd9WmBU'@; put 'V3Z9TzxSb29ANE1hekQ+W1kpV1IpO09WNVMkPVR6Mmk3ezw3Wy9CSjhKWjNwJlhSJVowdmxdTntmN1ZhUmZTfFs4a25gPXJMRihDSjV+NTdhRTIkPG5DbSpOW2dmNzchfCtoZlYpIXdsV2Q/PiZhLlklI2NzJlolIkEuaDNtNyh3YEBDNyh8d3VmSDFoaXQpSjA2YT88b28+QmdNXmdhKjdQTDZu'@; put 'SXMqaE16XmluIjd9dk44RmMqMCh7fSpeaVsodjtjMT9aPV9WIU5NLFBtd1pOTjtuc0p7fihTKUtsJTJLfU0wYi5jJjhlUTxVZStJPmRPKWY7dzZPbD8sSHx0QXxzRnQzfjUmKkhHVFcsSTgmaX4/aClzVkhzRC9jUmdueH1eZUQqaCJIZE9OWix+QmNOciFIPXJQc1VSWTJUUyh4VXpTfXR0fDc3'@; put 'V3xGZ0g/IXBGUUpoIyNiKF1fKi47K3kuNjQqTDBXXXlDS2pwOjFHJGQ2Tm5CXkpLXUswTjxtKyFoYUovTy5Xb2VHZGcpVldWSzZKOjhSbjI1IigyRD1jPChJY3xgX1VYdEBNYSxhT2FZZiYoJlI5MVpSNzoqMXAifnUhNSxidzVfLmVEfSJjZ091eyFWZHd5bVlkMzdfQ2hxZkJAYnJJcD54PilH'@; put 'ZylrdHFVfkImYjV6OnNPSi9zdXs/NS9gSHtXaUVAX1RIUHVrJCs5UHRHZTcxTTIlSmo3MH1qLltmQ3QyQ0dQQSxyWUg2SHAoSjAjSH5fWzo9cjc2SGsmP1lgfX5nd1Y1K11MKnRgOmghRF1oYSNnNEIoUXpzI0pyI1lwZ2k5SWMsJmU7MStxUT9UNUosQHtLI2xnLE13NnhvOFtwYjkqSSh9c00u'@; put 'ZXBDK3pUKF9feldUTDhwLiYxcnIwPzwoSl1INk8iNGk1RDBbRTxzIWpNb0xHU2ZYPy56MnhjTC9kO2tTYHlERlMxUE1uKjNzMHNhUjR+Xm5zXWhUYTJna1ZDPHtyZSIkK2h5OUlsPWpgaXFrdig6cWxKKjd9fnNMYjZ4PjVMb0VIemYmYFApQ0V3RWY8W0Z9UnArQVhWQ35RW3VeXXxdITw0WC8r'@; put 'OkxoMTFoVihGOCpPRSpyTHNsRk13M19JP15QTmt4dDhPUHJOaXk/bn1pKmhEbU4/ISQxY24pd1cjan05ZUxwW0lrKzBiRC8xKjxIOjBSRzNKOlcjRilkZTRdUk86e1hdP3klPjpkT209TWE+KHp0SHpzdDVVS2k7Ll5IKXxlTTZ5Sjk5NlJvTyErKHhCXTZrTjUxLF0oI1IsWHdtSV1EVnEveTN+'@; put 'XllxKiQiSXNmN2pYVSZIPHIrJTZZImBlVXRJJnQieiJaMikke3VUMm4jQD1IaCZfQiIzI2dycEVvQyRleyY2VnNkdSxrMzJ3SnI2T094aHRKKnpELyxrPX53UV0pRytRS0VJSTlFfW1LM1FfaDJxPWNJZVI2NWZbMVJuPnVbe3JRLlEpUX1INmgxYm1zYUJsdk1jJj5BRGQ3aXNrSiF7YkBpNDYq'@; put 'M3xDdVFAUWJwN2dBITBaQD52Jl8mRGN3JXgkWXRlOyp2XXFkQGR3IUp4YmdvSm42ME1vbmBPPmk7T2NjUFp9fUMrPG5xN2NDL1tAIVlrTk1uPiFZeG1IdlFIdl5tXUQoXS9tQnd7RHEsQj1FakQ9clN5bjRhJV9+cjIxWExYO25iYWVkWEk/M28uekY/MztEaFJdWlJpSkp0PmchTC46SjhZQyI/'@; put 'XkUmblciVjs2Mi9ePHlDMS94WlFxdGRYOzoqRntKNGk6QFpxTGZuYzxAMyFfOkkxOmckemROOCxNOSlgMn5qPCtALCp2ZSt3WUF0Imk0NGR3OHZQfClRPV5KYGR5SFk0fVVuPFlbYWlALltjbnJkISV+PHo+P1RlRyREQiJGR0JQeDJNODosSChXOW9nOD9bey86eTROUXxaSyshP3BoI3VMLENx'@; put 'WytwbSZrc3xRWSw4Iy5mMzNpPTxXU0tROFclLCUpL3BWJTZXQFU2TXdVZk89Yns6ImZ2aDJ+bkspZVJQO2ZCWWRTQXJ4MFBKeUlDUyV1fGhsQiljXyVJXlkwb1JwaypUXjlKL3xtQ2EvaytNVlBIPm02ITFDQT0/VGpsdighfXRJRCJZRkx5QlYwN3xqWlBHdVBDJDw5Iz4oOGttL0gpLkJuI2lW'@; put 'RWBiJV9rMHo2NWhdTXoyI2NfSn5QI1F3bWdJaEBmX2I5dV03Lmx1JVtrY3NEPVYvQzFGR2M0MSxnQSVrSmB9VFJrWStuezAlS0c0fXZ6U21SZi5fLHdGRnspeElaMilaenhVRFdMUWZJaipBcWg9InpIVF1GVjBlKV10TjFJN0RQZkRLaDA7IiFzVCQiZTlWVT14SGh4RlQybiFfU00kMiFjfiIs'@; put 'JiQ+elE+TyQodW9jRjIyWCpgYlJ9W1BaYWkxaDJGaGAkSTAuMmIyMEY/ZmdeTFZJcTtIZUUrLzdQclpPL14iMyh6L3tHI0FrRisraiMlXVQzO2A7SClwcCF2I0YvaCMsJXomLiRHJUQ0Tz8lLy4pMCU8P1FZbElhRVpUUmBuZkhQOVNTUjg/MiJ4VnFfdEkqTF51ZyZJaU9UP31zXyghZyZXQFQ2'@; put 'aXJiWGBtLCtPKzRbNDgiTnA6ZVFLTk9uNV9UQHFXeHZkRl0janE9dDNNOzhObzRnQlNeaHhePThIbSVLL0E7TV9GbkdnJW0yRj1mRkdQZkp8bmtQek1sOHNORGpZRHFvd1YqUU8zRCkoSjtEWikyW3dfTylObzEiMHE3QUQ5a1NWPnI+SFs4Q09gKCMwbyY6P1dYd0llKnFYNyhdVFRiPEhtMTBA'@; put 'a1FiM3g6RzJFRSVDTUFYc2p5VXYhQFJVIU5oen5nOigvfHNQVWBtTGdGVEkzZ3U8a2QsdT1taT9LMn1NVVBBdlBLKGMwY1coVU5TWSp8eCxPUmQme0JhVn5QLH15bD9MM34hUz51UEQ3ezksblEpOklEUmZCMmxubWtCQzQ/QlNQdmBMPH41eTd6SzFFKFY2JktwJGlYUFhIMDFOLyRjWHhKOEN5'@; put 'QURxP01pRG40QiU6d1VDc2NET2xHZTlQUUclPVBGP2t3NFVMblFePVEsfltmN2diQyZNSlVIazBpMSZddjFSbXh8TjtmI25kOTo1eVMxOjQlK0tVfkFsbF5VXlthKjlvVjFSYHAwb2wyQEo5K3dfeVdfQElvcD5+U247fXlITHFjInRiR0tLVU9xdG0xWkM/Xng1U0s7Vn0oUGZnIVFvezZVcVQ3'@; put 'Ml03Vj0+SVd9UW85STVeZHBsIU1pJloxe0NPIXplQHRjLD9EWloqJG89d0xTQ0c6bklUTDNPJUdMVihIQSlJWDQ5UHoxY3l6X35dczc2cjVMZ2BpPU9kcEFiYSVDfSUocjRKNz1mZltBI0dONkx5fil4ZENqVT1IY2EpP1k4R1tzaF9NQEszPntaeXtCKmZFKTBoOWFNKiE5d0RgYEd2KkJATUxj'@; put 'ZjBWdUIycXYxYE1JR3N2LiRwc3VfaF5fb0EoRGxKOW5YPE4vdT1kLj5rOEUqN0Ukbm1IYm1DMmphK3U+QXpkNmk6UCV8S1duSnwxQldkWnprJVN+Z3c6aklXUjJRWnppeWNDM1VhQ0B8LmsoW3RsPWx5NUdsVERNLGVgJFR4eiIsMHBQdThhWEwyWiRuUz9pOnZTNGZoVUkjMW9yeyU+THpSd3p1'@; put 'QHovNit4PyNNaEooYXlqaWh2cjRxSX4xUTo8TyRPej9+eklLMFBXMHVYQFQ/MVkkYHc4dFh2JlgicnAxPThtW31uNl1yTCxATj54UzpRfEhEPWc/VG03NnE6PmxeTUFgWyVqNmo5cn5yNm4sI3JpWnQrP2k/c24kI2NlTnhMSTQoYEllL05jQ3JZdjRLZVJOZioranRoNHhARlZxcCYqeXgwaClD'@; put 'eCV6UlBFYnN6bXt4XltgSnoob2FvMXBGKHxERl9EYXZrTTx7RHFvekxRVlZaSl5wdStDNXs4Tn5xWjg0ezR6c1trQz4oZXlFejQ6VEIhd2FjLmolXVFeW2htVV1xfVQ9K01RVUkxJk9NPi42SXkzUTB4bjJodDQ1aTtELjwyUTlnfTtWTl9HYnRwNHNONkk8SU1CfGJvUnxCLnFZRlI6Jl06VkVM'@; put 'bGVbT3okam04VFkuWDF7T1VqfXN6M0Z3UFRQVUFrOnJyN3ptWWF2ZWMwSWt1Z1M3fU5nYWdKV0VrME1Aa2Y9am5oLnJGMklDVyxCQ1U7Oj9POH15QFNudGQ1PFhaVShuKThsLHo9cDB1bFcvQ1R2YU8yfllBJitaS1JUdmxwYUJRYEMyPnJ9eGNEUnojfEZsJm4rRGsofCY4LiplUXd8RyxCU0Rn'@; put 'e0YyNHJBPiNpSSYkTjRieDBGJWArMlguaHJyQCRFVldkUktmdmJJYF46N0w+TCl+JjMwR29eOn47JEg1dV4rWSl+I015bkllZHBoR3hBVyw5P1M6IXpARkdifmVmRn4lXXk3PF9jfnBlQXs0cUNyJDgoYVlRMTZmWCE8Zz9NLiN+ZjxXN1t7WDR1MW1rdVo5T2kmRFJOOnQkVTQifVd3Jip9Iyl4'@; put 'V0ZBcHFeRk87Qls6Vml0KVF9VDslY3dPMV4+cXpkTVJ8cjZsR2cuPzBtKkYkOkQ/XV1uKjk6WXdwbHNaUS9lMTJ0NSN4RHUlPF1lRnMvMilKN2YxdnNvW3BlYzQ1e0puPG9xM3FzI3ZUbTNOd2EuIXNnMjFTIW5Pe18zQCopI05SVyJtWyU8JVo9dkIkNCI0RWslQzwqPlU4RTE+fGczdFkrdWR8'@; put 'PFRgN1R3ekhfRVp6OnJRQnkmaTJYVG8jdWFGL0wsVFhpNj1rJjI3b0dQSigrMnlMU0lwYnoqKygvO0k6UWpDXVYuIV5wKHcsK1lzMXlQbiN3cFU6dH0sWnxERlhifkJkJV4/eEsvPyV6TipSPUB9VykkLzspSyRQOEd7RyVOI1IyRGpZKFpqVzpiKnQsNk5wVkZwU3Y3W2REe015RUErMHJlOHtf'@; put 'Rz9QVmxfdTojQmtWa0k+eGIkdis+KzhEa05ZfTFweSt7LDt1dip1UDhybHRFTjUsWDI8JTcrQVVnO1t2JVc8fT1sdFtjaVt5X2lBKzxaJX1BPCpqTVtRPHdDMT1BO2NGZ3dSRkBAP0tGRm5+RmY5NlF6SiJtR2xFbn1mXjZ6MzF0S286TWAqNTtzQDQ1YCJKPmpPOzxxTWY2dH5XSyZjNSUuMmAy'@; put 'KFgiUD1fPitJOkBjQiFQTm8oY1BOSEYrS0V8amNNfXlNbWxNQ2Q4KChyU2BESGkxWiJ4IzJJRmVSODs/TjtPV0YpRExwOU91LHgkYX1uSVVqOW5nXnR3b1R+QCJGMCpFIkshSl94VGE2S3BzdkNoTXZGI0xuektXfUFTUGp8KEczZDAibjY0QGpkOzB9Z1Y8PCtNPG9dRWReXnRhaW1zR3BeJSN9'@; put 'bncsfGI1ek5vQW0wenRJRzNve0NMQGlEQFB3c2xhMmV3b3RZeGtfYiVHTTdBTjdEIWU5JV1RMFRqLHc2OFR+cnRKe3omay8/Pyl7L05Haz5lI0F5bWRjc198MGYpZmJQLGIwU2dVI3x7b0xmc3NGcVI5OW5ockdtWW9SXnFNaGg4fTclMEx2anJDKER0PiV3ZmB1UmM5YF5JejV1KDh6MGBRT1Re'@; put 'IlUrV0lhRllgeDsyWklUYlFBTntLK2BPWD5GZz5AJFBUImJtVWpETHFHekh0dzZZfXUrd3A0cStyLGMxV047QnImdCZVdlp0bEVIJmhaekkqPEw5S24oPGJVPl1CQERqb0hOM3I9ZWtNJld5XT1YM3hoY2M7fXR0a1M0M2BiMn4mXX1lcV47XkZZU1V7N3VFVyNFKkM8Qz9rYCFwe21LJTRQYmJs'@; put 'fkY0eTA+dD5FaV1RcHxdQXZlbDpQNFQoRUt0cnAzd0Mzb0o0XlRKTWBOY2hNUC54TUklXTZhIVoqTWtzQjwmUGBAQWJ6cytHXVh+PG0kQmJsdGYvdzt4KU9jJnpPKT9GY0tsXmtDJipTL21lZC8qTiJoWXVNaTlvUW8vL3pFKERqalFLNUcvalB6cmlMS0A8JlJ3Znl2cHhNN0UiTTFMN0IjYFpG'@; put 'JVIlYmhEWk1MKjlRL01VamJKaGVmdWhzbmIhUk99KWhNQTVrWU1MVlVkSkNKdnljfjRAT2t5NzIufU9CdiVxIV1wQ0VfZDBIX3FxPmJvSVMoOkQmWjQ7W18/SiNLXWsqKVpKS2UuOFVkX2YjXixAY3pKXWtPYkghTT5fVV0sMyRuJGR4R08jUGkkZWR8QTxXeFFwOD89YCJhOnZaT3pSW3tOS2FA'@; put 'Lk9jW3whOywmdm9Gb0x0Qk5kN0IvPGQ2cktYMmhhWyV4MCRvPT4lLzkoYU5yaz5XYXUvVHN1Mkx0W3txNi8wcUFDdW57fCRUMVN6S2tKbjFNTnVHbCEvSC5DcCkzJj5JPlh8RlooRCEwLEMsdV1xdWtuI11AY1dTPmI3WTIrInlRWCkyTn1OWz1XMURIK3d0V3UoUS9TPkp9XkFQM101WXA7RVAz'@; put 'e2hwPlB6Yk5vSD8kK3lBWC9WTm86IndFJih2QSpHLiR4Rl8xSzcvSkh1LDk+ayNePGJQYFdMP1F3YlMlPE5uMUA2aEN7bnAvc2NsVkZWRzM4TmEzX29EfX1xNFdVZi40dmBxY0RnI0B+ekMyYCp7PThuRThzUDU8MSgsc01EYjhabStRTjBjYDM5aSFDdjoofCU5VE8kazQwX2xQentYMDtESntW'@; put 'YXxZP1ZFenU1Y1Q5e2EpUmIqSjw0dzo/bFcyRXpkYiFtWHglTXl3JCJDO1IsRGV9aVtIdCNbKXEiQVhocCRoayVgWEppVTt1dmBOKnR6QWFjMHRJZHtQY0RxdVs6b1skbXMldXMxYkxtKDt6QkMyREhLQSNUYj9wQFNBb2toamBQZUc2T0RCWCJuPTJtOEtlWGxURjFZYkFSdjZJcztqeEw2TilO'@; put 'Py9iYmAyeTZBYzYhdCQ7XVFFMyY8eFtAVCIvUj81ciVnQGw/U31GcDpCenVqfFpJaENGeEZPVlJqfCt8UFZ3Ul0yW0hbOEFiXkNMJnhUfn1Fd1Q3aV5MP2oqOk1uQy9IPn0wTiFGND1xQUs7d0tqfmJkcVtANCZuVVdKKHB1fSJyMkJZNGVqJG13KyU1ZXk7eylPNjk/KU9mN0AvfHk9aFcwZDNb'@; put 'SyJ3JGkuKVt1cVMyKG94fk5PUUJYJXhKM2YzMGRQbzZwdjRtMmJHP0goXTwqYGZwMFlYant8YVlaNTZyMzcoZGVOZmdtbXozckZ4OjlHey5YcTFDciwuMHxwZTVfLiR2P0hpQmxzUTwwa15mantCMiY6TllwYEtKcmRdb0k1ViledGNaJj4/MjlqLnJFJX5rTi5+IVkuL3lsLHwmVDtDbUNKRXp4'@; put 'Xzk6ZXg5YylOK1JKaTg5eEQmLGdDKjxLelFNWXd0cjMuKVlUTmZQeTVkWFZ4Y1BjP3teeUUiSjZqRCxoV0tTT2UzVipKQ3g2c3BHd1MhM2dwNGc8W1JQeXE0SzttVHpleEpeMFAvb2RQTUJWSnE7Zns5LmJSelM0UUEiODBhIU1mLDZoYiNSLGxxeDtvPXBEeDFaQzEqNy5EczBfKD8sXXZRTGNJ'@; put 'YWk6bEh8OndBcjU4W1NSbkoiR18lek1BI2E1aDAkTyZkdDRQUSVYNyIwaTFLNjBCRXFWNVMvX11Ldz19dGBecXM/ISxRMTtwaGlBdHpffmIyJndGVHI6fj1DSXR8YHN7QDpiQFZEKm8/anF9R3N9YC42KHpmJGlOXlZnVj94RTFdaiw3PnN3bFR1WixsOkNLTX09WSVKKHMuek0rZ1VANDplPS41'@; put 'X1slUzYsQysrUS89X1NCW2hYZGJ2PGRHUmtVbjwjLiMqbD82TFdOT3ZRYXdIKUJUMmBQYE1PUHg6cUl0MkM6Tl0mMkI7YSU7ZTxRfFhQcF9PdnxHYGpfODNlfGJRfEs1JXE+bD17KncxaCU6LilbQVhQb19gWUVTa1QkO0dsM1BeSy8iU3deQldoenNSPl5FNnJkZF53amA8ZHFwJVFGYC4hZ2E3'@; put 'KFJPK2NRW0w6T0dCRllNczdHJi8hVjpQQk5BOVlCOTUkOn45fHpwak9PckJ3P3dib1pEYkZpdWsmfj0qenJRLCk8aiFgfnNtWihZUjd6ImRsPkZ0MF5EKyVzdUJ1T29bSn1FaylFSWZedn5mLFhVbGRdZUtESTgqeG5WWjVFSnd9ZzlAOyV0anJoWX4iQClHcTZSZTY4SnUsNmlHTVMrOXRaZ1RT'@; put 'KVM+O3IwQjdLPmQmfTp4JkEvXStLeVJuNVg3N2M8ZHFlelNBTnVmbn51RVArLG1wTE5PKDxFIWZmaj89TXclRUVQbjBXcjQhPUMlfE8iTHk0eHZnT2I5ZytPNyN5Yn5IRiwmeyhaUV1wMyJOVm8kMVghXUU5RWJve1BqVlheQ3xhaiY/L3toSFRNLiw6OGw8UWJ0eitaamtaKVlJXyhSUXM7djVK'@; put 'KUZ6PiouYn5KPHV8W3dGQlo0Rkwmc3EybC9GUk1tJmxjQD59VDokSVE5XiREKyFPdno7Z1M0VUtaUHpSKzkifGBldXNjSlJJZW1eS1hqdk50PSxVO2oieXxydFJnSmpnemZrNm1fUXc8ZFFnSiNva2A4YlI7b2Q2fXRtYW0wbngkWilQSHgoeUN3am9GeSUjd0h4NDM7KWdEVjspK3t8QytZSSZ8'@; put 'eHRPTUNYeEBFRXVgWVJ4K1dqSHAhQ1VAb018ZH0kT2pfMmlIcz02fWdVPnhuPFo2TyJyY3MhT2NZY0c4WlRySH4kMXY6dXszcmc0aWlGT2Q1TzQmLylYTW89PWV7eSY9Vn0zKzNPVS9HPVE+UVUvIkMmQyNMN18xcFVgbG5DTWRPIy5oPnBCQklCTiFKQTEjSGtSUSo3Qy5RIThvSnZRfEYlfDA9'@; put 'IVM2N3ImS19MaVNWLEYsQ1FOZ0lXJH46eiQuN1haeXo2PVBXdml9dDBKezdGcUp4TFI5OyZGdDVdPHFCOGByamIlL3o1aS5aTm8yPE06bklFZ0I0Q1djOXd2UGdCaD92ajxXJmNkUj1zc1gzKlFOeGJwaDNweixOKUxoXlk7ImsrXURHeXRpImFlPm5xfVs/KTBZNzd4U2cvSih+JU1EVkF2bUV+'@; put 'a1RkV1ZMPEMzRz01T0hYV2gmI3ppQDxTN2dFSTk/eUNQZVU0fklXaEYvUktFV1o/STBMfiFJJi8rcDlKOChVQHVsQmxiXlchR1p1cSt5MWRAViV8YD51bXhZazhLaEhtKzImMkB7WyJqSmk5X3lrRih2N31ONzp3WCFKN2wwVlI+XWNMT0VIIklkYzo4YHUyfHIwRWdUZGxGXTxPJngqIz0uJk5L'@; put 'Q2ZyOyFaekBPX3xFVypsamsxc3VtQmJ8OnhXfl5Kal5AS1QwUTxFdTgpPHRaWHJpPTNQOWcqRCNMaktPe3E+X20qfVY3UVlAfD44aXUsUmZNSF5QK11XJDRtcS9qWCkmSV00UEdwP2QyQCxeJEA1M35aSjAkU2dITSliNDE4JiQvb25qVS9ffl9hMHhvQlZSPVtULDRvS243fkgyPWJgI10mcHBe'@; put 'bTdYWCFrJFh8WU9XJCxDa0M8M2lzLHQ4cSl3cjRSOCYmNHZNdF41P3pxfkVZRFNWYD9tUEopJFZzNHhEIXkrUVFwWXU8bXY8emJgOjl+amYmMEg+YG0rM1ZDaWF9cVFGIyRdWyRfSHNpeitLfEdSKGNsR2ZVbmNJcjJZQitgTCp1cmdqKH5EcDJnU0o1ZDohUGNgVWMpRlVyYH0+JGhoZ2B8Y1NG'@; put 'e1BLUGJyMGojZT5KejkyXiU5dD5paWl0X18pcjxKLjI7MCQkeV9JeCRsa0tjTDQkfihPVWQ4TlF2WUNifXw2NT1fIk5FQCZab09PeGU8Knh2NytIPW1RJWcobldgLms2TDcoMEskaHM4NCRAZCI3THpwT1txOVZEdlExSEIrJEp2JE4rJWllYjo/d2pGb3t4cm09cWx3dS5jNixeOzJdIVk1a1Za'@; put 'KStYW3FjPT9dR3N0NTQqdkczPEooIztKOip5TnlBe2ZSM0RHVClvREN3PHR6PGlIX0xAY307IkBtQUFgTF1pcFFIeDQ8MjtRe3c5SCoqTE0sdnkpWzMlYXB3KDwiUXExfUsoamhrZ218Y35LIj5tPWkmPD1IJnp1ZnYsTU05Kjp8ZTYjO2FKY2JscUZndlpYUz9qb0JxKCwrJUNMeTo0R3c2ciUr'@; put 'bj05LzF3Vj5XPHN2STwvSl9YI1peREUjLi5nUCR2YFQ2KDVFSDV3Qk0/NSUlOUdjQDZPclJLdmQ9b0w8en5fQEtHITR8OGlIY2dGa2owV0U9allhWTVnK0E0O3ptRmJ5WlNKXkNfZVojViplfnwqeWZOaWhRZF85UVhXWTkxUngvP0VOVV8wKCoyPHVwbVVYZzpjS0NWIkBRfiFFNyw2UCRnQG1m'@; put 'YGUke2dXYigpfVFPLDkzeG9DeSNqMHRUNzVaelg3fWhFJltvUkxWWVdFZ21hempabVhhQXFQPm5jcCpIU1ZlRDcibCYvVmtGPz1HZ0tpb0U9Tz44LyRtLkRZOiMrPTJnZEBqJCZteyxZaVNwIW1aeGR8YTUjKCNzWnNSUVFIZ04kdlRiKEgzdkFfO35tWXxEOk9ucFVJKEtPQT0hITlMN017O1ds'@; put 'TjpEOE19R1omO0hANUJsdW9RfDpRZ1puMWh6OFVTe09NciNsIUZ8XTIsU3BEOzgxMyJJKzxZVHlZcmNRR3xnaH5CY29YLFo4alFsZTowck1DaWloPC5wMk1eLzgwWHpUMDFeLn0mMlZjdD8kI359JEV0NjZ6PS4xTmEiRVE0My4uLnU9fGVbeV1SaXhLUzdjLyV+OzxIWj96JWAkPVAwXVAqTkRw'@; put 'KiFaKjZMVWlxQV5USCgyIkVQLFk1a0VmREpQP1hBK0lVVDVCaHlSMFM0aHkxUDJPRC5KZWVmWk5kVHAkTyQ3TlcjbntQfCZ1ZEViZyV7OV5sXT5aIlAzM1smaTBwMXsuSSgsbj1mSmxoXkJuZS5kcTw4eWx+TGRtfGsqPm9EPjJLWkplTVR+bj96PDpMMGAySWlCSUpab0c2c3ljTz5pZDBHZUha'@; put 'TFdDbjdoSH5zOk1fcD8+V0JuZipJMntOQE5+VEdBSHh5djE9JFViYl5mSDQ5I1ppZkQlLzQ7TE9FT3x+QDF8MCQsejc6OSFNYHwjal5hezpxYzMsakIvN1FOX0tdajMmY2AlOFJpcX0qMUU3b2RwJVdsSm9TQSY5R1RgTUBzTkRHPzxoZi9wOSZTeU1TdTtoVXw/RnJPeV8vKklPa2I+d35TITZ9'@; put 'PGEuNWFjcDtGeUMpY096WE92ZlNONjRdNzdiWyEzZF9TPGQmbn14QlYoMmMiYWBXWD09T15vSnNldV9uKShNdjJwSEplViRLXypeKD85Wy9EeXdIWndGUkNoeGtMSFsrIz1lSDdGMXx9K2xyazVmSyVWTWImPlJoJj5AY0NAaSU3XUo5az9US0diOERYMyV2OihYcmFyUHk4OShfN2RbP0tBJUl2'@; put 'WTs9TUcvei42aFRzR0NpfDxiZlBCInwpK1hjMnhzQCw6UUEwVkA7MnxHPVJ0dWtSMEEqUyxxdTNaRTwsK2NpRH49LGJ5JE5OZF97LiZqfSVzXUArJi4lamRMbUtHfW1bdTdacnN8M0ZKamtVdjlyO04iYSolS25VSz9fRHxVcFhhU3RmTEc4bjkjVDM1RD9NT3l7OW1jJjteIUU0Vjl3emFZYkAj'@; put 'Xlspd3JoR2RGYzgzNEJ5fHA9KkV0YC9oITomQy4rRTtBXShRcjNrJkdhPjE5bzlDMChbV1N+N2hRY1NqbjdmbUhlQmJrZWV7OjhOWnt4VE1aTjohM1dfdGJSfkAsNkxmMlU0bz94TEBqUkIhUmhMTihnaD46eUJzTnpUQDNSSDBzViRTcFBffiU3RDFOa1dWV0ZGSXVBPF46TXdNSS9MYkRwM0ZO'@; put 'STNAYnEldVdnSDNGciFeYCZ4NWRWW0tSIXVAVUYiNnB5akQyd1J6NTMzJix7eDkkfU5ITDd7dnlZIilTISgmVkhqQWBscVQicjgkcUJUfDFJWUczezorSVl0PD5OJTRPOUNHQX4zcmVNJD49SlkjJlZGImlOLmRrSTQiTmwzSGJWeUJwM2VnZGZYcTdvOyhyYTZMQnFWNXhuWiFSKSRJVS5HPyxd'@; put 'P2UsNUNHd2RWP3VqKjh5KVN+UFNSQXdhZTB5cUdRQEElKCt5TTNEY2MuNzJgZTZkd0p5ZEc7TTkpOXZyKn1HcCgwM2pzRkVkVEJxPm9JVjx3P1NrWzVXfkxCJGdxL1MhTFJ4dEpIanR8fTtXYTlEUkBFZSUybzJddGJ2LiRQVSFWZlErQkA7YjgkZTFyaGx4eEhIVCkzNEIlMlBAP0MjWjg/RzV5'@; put 'VCVRUl5LMWZoekBWTU8hQit5QHEpY09UIlV9M1UpQTswVCFCYFAkKH5fSy9pOkRmIzNeWThYUURiMVp6SHB9JnlmYXFJeWZiaW03LllEcUY/TDdTPDcuK3p5QUxmVG5bXmooSSslW2QiL315O2NwXyhLSFNzQDgodF8/UGBxdkZkJmApI208JEM4IyNxcXw9VnRTXXt8aTRWOl9PNmMyUmVfdEpx'@; put 'eUgmXndnIyVjUGM5bkppVG8qOnh1RXpwLjxMNjp6fGd1I20pQzZII0VgJTt0RyQ5cTUoR35ZVkBfbVRGMHwlQlNrW1pwMEdtcnxMWUZAaVoxM2UuUjpDQndNKDYqZkpaVkpbakMpVTBNfnlDPWBrVWFYVFh1ZiwvW0tNPVAsVVJ3NiJUSWxDfE5DUjtNVDdLSXhoWDh6ZVVtcm5CRUhKKG9rP0tX'@; put 'P3s0PSlDeF11aHlwTzpPPHJyKEhtaUF0WUNXcjg+fUlVIVBUWCREZys0MUp7T0ttKDZLOEU9e3YmKkE0LG9aTHlmTEM4SU5ORDBEQX1qIWBRK29PMW9wN3M4RGh+MVVIWy4idVI9ezZrR1p4Tj54ITwpQjcvbH5AcGsuMz58NmNdU2BAPEtMRSVyPU9KSk1VZkM5YjU8SldrbkdBdCViIzZLQWBg'@; put 'MksiXkRvNn1vUmR2b3RKMHcoQk8hO3w6UW48TmhbZjRxY0thfThAVEx2YSp+TGdNMTJQLjdVQGB3ZXpyKEdfKVRhKExzTXtpVm1PME8iJnZoLm4jIUQ+T14hWnxwKXxMZU59VkowLHFeNmssI3tjU3JLellTb35aaEpxLzZdMU00enVHaThpYmxAfW5UNSZudy5kKTRHJll1UGJwSz4/S1c0ODZb'@; put 'NyFQfmJ+clZsZlpPZiJJaTIrVW04SC5wcUZ1Q1lpOWx2MixvUjdvXmZAd1cwcnZiPyUpdGRndGh4WlJ0MU1nQEB1Ulo8dFBdUlZqR193VHVwKElENyYkI2suMG1XUT1rQ1l4ditiSmYoV1trRHhKUiVEMzMzJVJkdHhOMy8jSG9deSJGazdWS11KdmlnSntSamlLXWlmXngle3BZTn5GcztYaE5U'@; put 'fC4sNzhJKV9SalZRZS9tNCV6bzBkNF1AU2V2bFg3aE42V1FxZ1U3ZXhYfVl6fHJvTmBbQmlSSixeL3IidGRUOWRzNnN4SjVKWipMVSlqfHwwUiFwVHthL0UyK298X3tGSVNgclI9M1RQNDcleHI0R1A9ZzRNSTNsaWJha1haRjcuPDBaWTp8dG9iLFVOcG4+LFlXKT8jIzpWRCg9VVszdEJRc1lW'@; put 'bW5eL2Z8dXZydFZ7eXJHX0tOJmNRdj86em9mOTheaUZPcngmaUFxWDc8WVVMNnxAZ3NlaGpbcCtDJFE4OW8xZWdGK2s/fm4/IkJza2AwQlVkT3FiTUI6ZiRsS1ohS1Z+bDdZMF5lPU5zP0I6Mip5Tyw4X0B5SEM1USpsLGE5SispPmldbmdrQyIwK11JRWdJdTRTPFNESXVMemNmfmVNRFgyfj9W'@; put 'PW5GKGtQcyVRLzFBJChneVVBcjlqXnpLdTdqeEd6WDc6V15BTVQiJSxEdFEkPUssS0kmQ3VMQGxrRVZxUj5haS87N2pJQWY1KyowYFNLP0xyNyhVRUU5NkhYKDxIaj5fQkMleXN1YVY2RU5QTz13ZUVGMSpIIXpgPn52fGV6UTtgaSExWVpVR3FGRyN4elsma1dKSjcmQjF4TDE8ZWNwRFB6fnEq'@; put 'OHckLElxb2kpQD1hbm18M0IwM2c4OWpZZ1hUTkNXLFhaezUsJGRONF5kcXptMT5adk1MZjFxKlMkWTdtQ311Zy5xIWFodDpnVFFnIzEycHw1enFdcltSW1BpKl1SM2xlTUNVOHBpV1V0fGp8aWxsYGwwemEwWmQ3NSNEakg2XWhjJj1mYjh6alRAMzpDWS9eKmR1bmpScEYlWUV7fT8wLGQ8MmU1'@; put 'Qld0P2diKEt0UU1SISt+JnEwd2FKX18oQHFjVGV8KE1bZSNEXUhNTS9rKW0zT1pLZ302R1pVMExxWCEmJHNudCt2N1Q/OWtpVXsxe2lxOFE1Q3QofE5rTSUuYyRSTCsiaW4hN2JXZz5WQERKYlBKO3UxZnMkeX16WFpZV05CSDNxKiN6Qz8xVUhIUDNNal1NPFspbkV3YmJUdlZvZVJvO0t6LGo+'@; put 'NCVTSEFaWjVdOyFHeSxfV1RPVmU4R0lYZzFwKz8lOGlQW1haZ3BiI21ubTNpYk9QMEdxczJPcC9pNihafVAoeC5PRWJGUzBlXzdFOk9QUl5EPFNNK3FXeVZaPnVFT35eYTleJSJ6X0AkNHgqbFpWZFgiJjFKLEh3dXAiSm9jO2FSQTlbXX52WUhfe1J7SDpkd1E6bmVkUlMyaTtseFFZfFk4QTM6'@; put 'LGRuT2hOS1ZDQHZTSmNUPzYlWCpRJE8sVytleDNYTStue1BweGxEV11YJGllcFV1MmBPWmI/MTtuOXd0bVRnaTkrNlszSHAickFFYiFeOCJRSHM0bG9iUmEianpTMExGOzdoezM9PE5AVTluczM3cE9ZT3xiJFJIYnwuKXljUDxiO1suWWUxIUtreElEZyFKcipDQUslTFVqL30re05sLD5ua3xw'@; put 'SXtORUJzRilxezYrLmIwMEBwckNPXyZtfUZibUx2Sls+JEkxWzt2YXR1eCZiJklyd3FnVipMO2BDTCh1P1MmSlN6TjtpPl82OE9CPzl5YEd1eVB0dVclWnY/IStwODssZmZhWXtjY2RCKjc5LmQoV3dhcl9FKH5SMVdvYGNbMVN8UFo+RWlIcD47LCZ7VmFsITlsSzg8ME4wa2N5UkV4Z1BoPXpY'@; put 'a1dXT3FIWiV6ay94OXJWejVjOzBRY3srVmdXaUdXUzp+KCwvKyJHT0NwVixRe2FEOX1MXkNLdCp9OiRTYUlvSmltbXtNSVk8W0pKaUJ4WVQ1V2F9Nn44Wz02Yz9CdlB8dy5sM1hjcVAjVz80XytqMT08XXQ/V2tqKU9FIV9QVDJxbj1lRlZASV9WMXg2TXFPcVtieHJxXyVkcEBWNmIrd1hgQylU'@; put 'eHk+SnE2LzlWKk9HPGg0ISRRKHhiUm8qPkw/ND0rW2wqcFY9MVNVNDJja3hPdFBDUCFZYzp0JFkuWDImKD9FInRQJkxuKElqM0AkNDoxV1ZERTU3NUtqWHlxMlVdV3B9UGg8LCl0TFNoVEQydC8sYCJCJjc/by9xSCw9I0xqQVVeNUwheDZaLi9VXm1oWGsjelhvLF9+PzFGbVV1TmpWREY4JWZu'@; put 'X1A1fEdjVyh7e146SVMwcSpMUH5FKSUoTmQoe2p6S0AyNCp9Jmx4R25VPyxxRGtgV08oVnZyYUgvJm43YSJHfSxQMClQYklzL3FWdTttaS92ZyNefjhjczZqckNQMCZpUWQ+MDwuWzJmdyZuIXpnJmouZTp3NGVbPDk6ZnBKIzJDIiUoblZgUzojTUopLz9SKXFeKTVmdVBxKS8vPzpgJDwkITZr'@; put 'UWg6U1g2NlJmN24rNV1+WkpTbE5oaWplNWNgL1tOTV1rLmYmRjVfa080QkNzSTxbP1JzRm0oS3VsPThAQDRld19RY29lKTlnSDo6ST5oUSgkLHpYI1A6WDNfTWUjNj1aZCskIVt1OnNvKCpNcTJ8O0ldNEFJNnBWWy93I1NGNlBaRjB+Py8reThgL3ltUHkzVmxSa2YuKXdYeF16L1cwNXdJd302'@; put 'NkFWOl9tK0NxV1FwRyMzJGopJmIqLjomST1TLktCLD1XRTB6IWUlLlJ9ZltKO3chalcse0lGbloxTihLX0dVRDUsRC9oOnkhOy9CbX1pISxXYWpYd3x4NDkvSCQ8WzF5YD08TkQkeG1fR2BIRCJlUDw0ZklAPGVFQjk5fCNXfTFYLEJCLCZEJChtTjE5V0VTLmA9MHFjNyF0OUhbNyVJOEl0bVY3'@; put 'NWBvL1MkM0c8XTx1OVhKNjU6cSldJWhAOjVxdndjYCRPIkl7R3ZpaUovOS5QSU90b148cSNMRlhBJmJiIW9ObjI4Jl0iZCo0IX5OSntyUnwrZEZTdEM0bitJUjF8Kk51W1VJLkh4Xk82VFo0OFpONkx9XV1JRF4kKixlI2RSZXBzaFB5K2NtWmEyWE1uOCojKkJZfE94LEJsN0IiPHhPQVcpeTAi'@; put 'Q25XN2ZzN1V3fmJ3dWBNRjp0cnNHME4wTFRvaTAiRkdlM0AwIz97Mj9ZMCtnKWU2VlFkWjhVPldNKHtFaCxuMDc2ZWNpaU44eFVTP1A4b217IVJPRzZ4L21ZWSVgVDF2eGJeKnJYIlJEN00obTVOViVfcmMsTC95I3lCZVV5PW9ga34zRmVwJSkiK0UzRk90Y3h2NUpmREosbzgqSC5NXzlFVDBT'@; put 'cyhmRW16OVZDKyIhQ3pBI3RQWFg5O2FlR303aCghMDI6PXk+M2cvOzkwMUdKL20yMl1gbyR0RXUuSzQ/dmYwJVI2RGNWKzdKbmooX2txX3pnSGJ7QkhQenUqL0ZkI1ZqakY4fHwhIVVNN0QpbnZMTDlCKl5VV0FTd3YzMXY4V1hTdlVueG40VEk5fShKaV0yTWdNYSF7cHtBPGgkKlZifE0sJD04'@; put 'YVRhXlZaYHdNYz5CMFk6ZyF9OmdYNWxYKCpWYWEqNXZ3THxqbEMlY0oodUpqSFtnQlsod3wmLGhYcUNFQ0Z8UVU3cWFabSR4eT0xW2QiK1gkXS9GMns5U3NLakRoVmRJTzlhVyVJMUYlZ3RqezhGazA2YTRHTn5GUlM4Wlh8YkwsS3pBbTdSbWl5L3J2TmBiN2lAJGZaOD4pQV1DcW9IV19uaUll'@; put 'JlZdeVFtO29uRDZAQTcrek4lYGQkcz1QSDpIMnx9OzA0I2FlalQ2VWhWLklNcW8kNUB4TWVeSUZbL11VLiFnakJyb3tUdkkkR2c5eWAhYG8jNiIuNjNmZDo6W3ciUk06Wy51fFtnckU3RXlqY0UsOnlSW3pNLm4jczI0RERlaCNXUDtXZW9ub2FOPSsjPWI6JlJsPEM6V2JjQCEqMnl3QlN5UFF6'@; put 'PCZ1TyVFcEMwJVA4S0x+ekp8MipFdlJ0OXxqZ0R6dFQlYCVUI0hVUzUiMDVARmB3d2FlRSEsWzdMcipiTGZOe1tsVSR8cyVEW0FdQHM1Z3tkUG1fUmJSd29PUDgqbWlGTjxrOTQ0THhTZnBmd0NqZE9vdCZVLFdpd3xNUGlFOnw6WTsoailDfVh6OnphblpOPylJPXkxXSUrSixlZUV5cWZIYXo9'@; put 'WTp2PC5CV2JyWl07fT04VklJI1IiOWdKJjBoREhdI3F5aXd5MzBde3xkQG5jWjEjcmlIbGxuNW5FY2Y7cSlPYE9YeUxAIjFyVX5XRUssPl9bSUFLS0o8UlU9T3J2dnFrW1hQJH0uZVV5WE5EVXF7Nj9hWSo/dTl2UW1bbXdEb05OQF58P0BjPk5yUTdBeG93bUdFUix3KCQ8PkR0WlVoSk03RCtG'@; put 'JEcpV2h+X15ZUTAqZHZaZitbc3psWF1yWkNLPmhnRHAjJCJFSz5LbEpKUEB3I0p6eVYzRnt3M1sveEZUJG8wKjBIPHl5YjN2IlEjXiNnPXVFOy58N0pUPFlPXUEkVy9yYHxPSnBAMnFUb3JvV3ApKzZ3bUdRRkhZaCQ3PWg6ST44dWx7dnVze1YvJHQ1fjxDZToyZHZWejxRR0hGaDhLV3tIbFIp'@; put 'PEtOQFFeL1ZQJHo2byJaRHBhZTZZMXl7VV1CM2JAUXFuYHdqQTRiRlkrbWUvOVZ3X1gpK2BxPCQkeSJ2ODY1MkgwSERCSCw+PHhvdEl+OExwa2h0MVNfaGkxTCh8UFRwLlpHZypaPj5sc0BYc3JtbElDWkNOUFBlMnQ/WllaXWQxOTQ/W29YQnUmOE0lV284XUZIb3Y3Zz55P3d1Tl40PlZwT3ZZ'@; put 'VFtfIkFNVE11PFZkP1t1N1I4Q012c18mKj4lRFgxRzo/fFV8fD5sZ05yakdCQzMiW3ZFeH1oMixLQlZbXXJlK3RXMDo5aTV6ajRLQHlOWUpsIUBELipyanEuaD1hRUpYSE13NSh3JmA+OWYoL05mRUwrT2N6TkA3SDlAQyVLLk5kOENRR1coQi5pPm9mSDlXXlhJViI8MTpaTntRdCQwWm5hJEEi'@; put 'TEUyI1FyOW5Fc21UW3Yidk5vLi53KzEoNzF3d3EyXSgsS0p2JnU8N2BObUVhTWc4SilZImdiNmYsMFgyWG01Syx5QFVxaGNaV35aP3kyXXFVOF5FVDVQQD5gLFRIMS83ajBGb2giayM6KHp0X05heFQoM3NZK01adlpMMzFAdzImVjs+Xkk7SUpddWJIPDdIXypbVEtKbXRNcDNPKE1nY1B7In4+'@; put 'K0puViFNTG5kR2V5QmgmRG9nO15qWHx4a312NEJBfiNfaVkleGJXOTI1QFdBOXBRKW9Ca3ZnUixrZiZ7IVooW3N6Q1gibkhSbiw7WW1vZCtrNCtkLG5xeHhmfnZhSUg2YTBafDVTWTczMnNmOkI1Mk1EaUtAKlhkKnY0YCVmbFR1S1AoUHpKL2NZdk5rfUh3PGFablY+MTtlbC5ORlRzNyNPNFlr'@; put 'cVs8OTdabjdPfT1Be0lVKytQemdfP2toPHMpO3IwTyJkQT0qNHBVaVJyKzwkImJCejo8fFB4YHRgeX1mb1JqamcqQ2FCai51QnVMeyZbWSp6YTUvanssT2J3eUJiLzFrTiUwNik0PmwwVG9IW1MoNDRPI2deaDE9WyREOlpHQXxsSykmdSNJL1U+MHIpaVc7fkBHNFo+c2xkV1lmOSFNKEhZIVVP'@; put 'RXtCZmtMP0FDPUlfQH4rJUwqLlZ0L0JQazRrYS85UjdZJk5FMmg7Sz95KHw6e01iL11rc3dSOD1AYitYRCpVbjgsZn1yb3lPT1FaOUVjekU7MCRNJTUoNE1jdWRkQlpIcjRLcjpOTEF+Pl9sVldqd0J8PUl+cXFgOiNIaCZ9emtwaSFeczUyLGo4Sik/TFIlNFdmLjN5UT1MRWBaYjdDXzN+VyZf'@; put 'fCxEXiZhKG1nNVJlbiQuOjRdbmBTUDV4YDF7KyRJcD1FPk5tdF80SnVrJTp8TVcrVXoofFc+QXx6UD9AcWw/VnFFMj4/W0tDSUtzUj0oPFFvYl0+M3R5b3JdJipNeE1xRTN9ZmlMcy53OENoRDBZei9nVGhTQkd9Nk84VypeL31YWSgqN287TWJEUD1fQFhDIj9yV2c9LlA3PXBTXT1YTTk/JCJD'@; put 'W201Z2QjI1Y5dmtKd04rIUUpL2UyOk5EPjp2TldnZi5ueilLSzxjJWVxZytoenZuKzVRSiNaR0M7NFJwe2Z1OyVSYltga3FzbDBuYXYwej1GUD88U3s/WS4rYT5SRDFhWXd2KnhYVV5WeDIpRWskblt8RiwzXXxkV2MqOmRIYS5HNypTWzV6S19DVXh0W0M8ZDskMUUjS2FoViI7LF9UbnxxdXtD'@; put 'QChabldROzJbKmpIXU89Q0hrfSoxKyJwKSo6bnpAIX4lWmhPdH5BVCNfIkRdcGJZbyFle1kqI1ZMdCNeWm9XXnEwOVZTLnJbfjZIYjlKTENhWWxtLlpkLEUjKyI5XytMI3kvQk1wX319X21VLkxTZmU/SGp6OzxXbzQ6WE4jVTY1bGU6JiI8azZEaWNMJlJPemM7Qn0vSkleOiR2Q3tjYH1eXjJj'@; put 'QiQkK0ZYP110M1lkQV1aJlNjcz0kZGRoQmQhOzNHe0xKRTAwJUk0TmBDMEo3MUV9eFVxe3BaTDFZVXx4YnRsSUJnYT9OU2VdQUthNHF4ZjBqJXtFQ0R6UF1WL2FZIyEqSDlyQnJwMHhzSmZvSiQ3IUMwQjpNJldxIkc0OExWKSYlSiN4dzxnTHwmTX14aUUybT1xeD9nRU1NZTxeIU88RVFla2dq'@; put 'bDxKRmYiO0M4fWFPdj9HdGp1TkQsd3s/NCZpelR4Rnc5SVBTNFZPelZQLiQ2dGFwYVBmcHpqNyhNbm8sKTNgQHVAY0tAR2JQT1Y1KDZsfE90MG1Mb2Q0MU9TTDNESHQ3OVZ1YXhSRVFLaU0rLF1vWzJuPlBTdEYrdVQ/WyU3LzV+el4/WjoocSs0PSpPMUdYXVV2SUdSdkdOUUhve315cSppdkcs'@; put 'Sy97JTVyXy8rYXNBUEBlMyZ7Ky83b08yLmJtVmx0aSM4cnpVcHw3RXp+LF9JeXtVKVhaIiw0NzZRfnZBXnI6Xmxde05oInI+VXFfU0JYOTFNVERvWjo5Kjt5ZV8wPF5VZDNeSVBpNldXPiomK2hEWjc3Syh+IjUxZkhpOl8sfElhe1BeJiNZODouO2EmXXM1QEw9N0YhVz15Xyl5QXJlPVVKJSE2'@; put 'fWR3flh+NmxGSTRfP0YmJTB3XixkSCgvOmpnfGJBMmQzL0Y2XlFgKUwkcShqSHNXbzlOJEBJK1hCdFJBZHF6bWhvYzRtJnJ7fiY0aDtLcUIjNDshWSJRbm84SzhCVCE1KkhLWC4pK2RERzM1dkJEeGR8SHNOJTZCR3NDQkErWlp0LjQveGFoSUlGYU5IVjZnflptZUA2IkBnfExhaHhCZSNBdSNy'@; put 'bk0ueXxRKmNEZD5wPmpnMyY+dChrLkNKd2doQCpGQnZfKFBnJldTUS5ETS8xcT1tRXV4XSw1b35ASE19ezF9SmkxTkI1TGF7Y2Y7KVVYXi9leFpsPTFpdkBXa1VtZEcoWEx4Nnksa0EufnUsNUIpRG4jJX1ddl9bYG5PVXdiZHJFLig4THIpMVdTcVglcEIyTW0sYHs2V1d6bHYwNjJeeTRoSTM/'@; put 'aXhjRCkmJDpjTGFdKnJCY0V6YFc4UzRqez1RS21GTkBKcW1VQU9nY0t7VFgoTjlLZkoxbHIyL1htImZUQSQ6WzNfL3lASCErclkzO0lHeVd6Qj9Yfk16S3pNSDg3dkdaYj93dCxzdiEwfmUhTjZbUEl4cEI3ZCV9SUFQVEBOWUxnMmNgPzFiWkRbZFAweEUsV1JpPi9kbU4vLHRkRkg1Y0ZjWWtY'@; put 'WkI/aWUjJnFUdWZ4JnNhQ2twQFBOdCZZMGc9Y1ZyfWs9ZVdyQERZbzN+XkxURDpUaCtqTSE7cF0zQTwsQWBmOTI7Mzl2d0ZVNUYkZEZQOUpORlNScTZodk9yfmBEdn5aTVhbe3sqOn0xJWhFYW1HPWhhP3x2dzloTn1zIU5rV35HOX1VdEx1fkBHLz07P2hvVTRAMlMpYjJPV2hKQi91QXtdUEBv'@; put 'QCpCd2BjZCplcjxAfCs9R2BQYUtockZWc3UpK29TQ0h2MnUmT3sieHpJMnFOSTRyaz1bZEw6YSNHR10qfkJLIj0qekJKP0ZsL0FecD4rIlM+fCo2TiopSk81bFA4eGxyfSs3P1h7TkVpRmF9LjttTmY5ZX5JUnAkKENGanc+Skc5QTtyM0xwcl4ue05GZGhLYiJecytrbT5dJjVVTSk9e3JSKUtA'@; put 'PV4kOFo7W2BPYTk4eXI5TkB1flRIWks5MFA5fi5zaytuZDVWLFhwcmdHNTB3eklidDcyeFtHNXIlZzJsSGtQK319cCYwVXI7LC5jKElRN0I5JCR+MX46bSs9dHRvKjViTDtneU05KCNqemUzQTRJLyhGcVd1WT9dLmU0WTRxIlZAOW1sS0pvaEMxa1lwP2trW1p2M1FgSkEwMlVYI01ZQWQ/eks/'@; put 'Rz8pITVsW1FFW0prZip3bl4jY0h7czxmZFdLRkAiKl0iTEo5WztKQiQhUU8qXlB6dVZAbkt3bF9vKH1lN0pxYlJCOkpqIlFTZGcyYTglR1RGKlVQOlNdc15GQ187ay93Z1lGbjMofFFycFVEeUIqYmFmSH1OTTlqen5FRV0+QyhJOCV2KT5tZ2lTaVYufjxYWlFvLHZHXWFaZ2FuS0J6XTNwd3xC'@; put 'JjNnJTNRRX01UXMiSnlrMF9lQHpyUixNQkdidWhTNElHUTMxJVAuND9bOWZWTzo0Mz5qdUU4R0JyempZO342SCgiXj1KVz9Je0NFQEVkS1dWQ2JDQSU5UnRbekFxTm8+ajdWbVNTLzI4OlYsNFNndkJkLHUkQTd1fWFURnIsXSMhekI1RyQ/QWM0eCJYQy97aSZSSjlgfnw3fXBAOz1lIlhbSDFN'@; put 'X0pfKE5DeyhhYE1We2tGNlBCI3E2K2YlcExCY2piO1N6ayV9eHs7LDFeR0pFU2l8Y0YsKSgjNUBTZnJzM1giZWM5SjpEQ2hHRW9bJHRQPEtWZVBhcWBYSiNTcTIiKTdiWlEiYXloIkM0LFJXZkxMQW12X0c0I3MuXltPYCl4KmolTCs9W05ZfFl2UV5yPDx7dGd0eSF4Z190clMlMjZCYkQ6Q2Z6'@; put 'OG8jOWNeMEY3cjtCcWxCcmx6NlVGb342ez5TSllySHU3cSxiNnw9Q1hMTkBYfWIkVU1fez1NQl91Y08lI2s6UztmLEcldXIpKHRpd0IlLz87THBSZTZaL35ZV3RSVyEwaml0WCE4Slk/fXIlQT9DTWxHOk8jbV5ZNEJGMylQPEtAN0RzJH1MN0FJSHVaQ3ZXLjk0JituazVRdl4oUX13N0xLcX5Q'@; put 'a148dXpiaUBDSV98WXpkKzRqYWNPTW92bH4/Wj1eejNANCwvQSkrIyJvODQzWnppdSx6bXtaPWUwNERLd2I/Sj01bms6cDAyQDcqSGlSY0ZDVSluIzhzSEBBdkl5LyR7UCUvZUhdNDh7YlpBdjBNfm05WER3W0dpQyQ/X0osb3syKVNmWltjaVN7dlRYcGx3XV1HW1YzeyVVOmVDM3xIaDFpY3c5'@; put 'X1E0QSI9UDsyb3V4fSM/IiNrfVY2YGshSi5rWlBtNjplbHI+KFJ6Xl5LIlY+ZWFKdzdHKmhTZy56S2ozZ0Z9S2IkZWthJSkuaSF8dl96ey4rbCVkRm5JOyY0NmtKSCltIiFYQktHU3YxX2ZaW3hjY2BgZFJYKkQ9em53eyR7P0ddUVB8SVRVJC9wSjZZJT4oWShMInMyLjtASTFNeXkvdHRzZX5A'@; put 'Q3dOY11pcjtbWEFJNFgjU2BUQzlpdTpLOEglOkFIVnR3QkA1Izl0UFNRbWgjazRaRyh5Ym9hbGBlSGtednMlMDNOWFgoJT0yVGNdZFNpKHQ3cmBocTkrcnRHRWMoL2c1bSklISNGOj04bjJOVHFuWGA3eEhHYkBiUStCR0lGbGUmbUxeRGldOkFqX0xmZGVwQj09QXlQfEVoV2xnYGA8SUB7PXd+'@; put 'cU1yMVp+XilLZU9+KHZJTl1HaEc8Z1s7KiYrekBIQnY/NU0+NzJFUiRGLztQOWlLRXVpT0BdPVJ1Ql9UPWRSeE5iUXY3e1ZjPWZfWEBKc25UUUJ1TTxjVXA3Wk9nP3pgbi5CI1BldiMpPlUyZyNLUEVwZ2gyXSs9cFV7bExhezZ9fGJSR3U6TX5EV1IpZGZlO05aOFAwUCkmYD9+NiNqIzRFO3tY'@; put 'Wjk4P2diZyhXPT9RbWMpQ0Akekx8eVdYNFB8K35tbltKN0VUaz08blFRbmFoallPcF0pPWhxMmxvSCpINkBNPV1OXS5tWD1PVDNxWzNqLitYdiVKTFdyX0xKOl8wc2lXZ3c3VExDfldUOzZCay8hRkNWO0RzSTQmQ2FqfitjYWhwTUY1c3chVCFsd0ArJU1AP3V2eDFJZ3YrOl0+XUB+N0leMyZR'@; put 'aUcpfGVDXj9HITJAez1mIi5KI3JgM3BlIXF9LndDbitDbUxpVi5TO2pTKkBWbzZoVCF5NVJGZXFxS0pXcm5rdX4/ZE1HM2NyXy5TKjw6aTM6JjZ3JjNQQFkzKXRaYmdsOFIya0tETT87S2dgRVdOO0t0aC5UQkIpZDd8WzNfTXJCQ3pvbEYoQmIrNTZfQT14WDc7YEN3SWQsSlgiWVkvQXUuaHsk'@; put 'VyU5WFZ4YDAiQ2skMlJ3eyZqZ1ZOaCNnPW1CK0MoInZZMWhIPWZqVDpeO3Iia0tybj9YZ1R4fEhOY2skbDJfVDBQaiNQanIuRXIxV0d6YzQsfDw8W1srTVRIR3VMX2Imb25XM3pyQDhkOG5pUGl4a15PbyVKM1J6akhiZC9gSE1MdndoZmgwMDRoRX0yS24xWTU4M3AxcEAxZm1HdUNiUHFOano8'@; put 'ZEtzNlFITi5AYGA+Rlh+OX1AOzgiWV91ISFwK1JoLlt2Ll1Xci49Wn0xYnFmRTFFO2FgPCpUWGJhOWRqWGtMU2JWe3VtXSRTazt8InJALHJTbSk+Rig4XmliP2ElTGQvL04/VnchRjtlR2hjSHRLI3x7ODUsRUJXU1tWfXxWaXlgSlhSJEtOaUsjfEU6JF1vWyp5Km5aeEFhWFpGbXx1RFhFKGhm'@; put 'S08xTGYkeHVJSHorJDtBaCt1Iy9BUDdWe1JqJmFRMShaXl5PNWcjcGlANmEpSjFeMnhCaXB5Pj9VRDI0LGV+Wk85QSVfMmRQdDNsYjw1MC9mNVRzYCE4Uz46Ikk+NUAjZkIjSThvZz02OClXMk9+allONFRmbjhFRjQlS3ZgUmRqQDBiaFsjZSRUUmB0VDpYcjBXW1ZvM0xmPD9geiJbWihVSCsq'@; put 'P2k0RVEofkUlUjdrOix0W0UiY2NLamZuSU1UOXNDVFZqMFM5cjd4a2tRaVI7YiF+TzE8SilIdTFDYjJhaGpHTDlEVFRdVW9LeDhnK09kVVFtYEpmJCpxdHBfY1cmRnpQby87Tkg2Y3QwZ1NqWCFlQDVWdDZMMHlqOFV7a24wVWdwdlI7fiZndkR7SGtFP3dFcW4zeC9hMlImfWhnR3dfOX0lSDAh'@; put 'dG9XOX5hP34vXTN0cXxfZiIhKzk7MjdoT00rLGh6Q3VdISRXXzVrWXtpej1jNlJ3ZU04VjpUUCg7WX4pPyw4IV02VUI6fURjdF9uU01GQW4lTmJoS1RkLCQ2QSZQTSJdRENuRkYwMn51K1hsanQkdEdrbzhIOW8lcyJwLlFQNzB+JWR6WTo4dylFeWJQZndUaF85a29SPzBZW09rbm9WKGtIc34/'@; put 'LypfXkYiNClucXJuK0o0K05VX2RuIV5zSS9AfSVmXiohcjk0bEJlPEw4Nk8yPypHJGBAKlsheCN0Xl1yUlVfYD8qd0RbY0tIbUliPk0/RFkuZ3J1cWJ8a14pWVZxZigiRFQrV0xleUdFaDNpYiltT2JpTX1fPDFedVB4Mmw5XWNbOls+My5TdE51VF4yKzZyI3ZIMU5MalM3an5VQzlLPz5ZbS5V'@; put 'VjVfITc9JGQvI3VpUCtmNDROdHU3e0ZzbnFaaSNpJC9IJGx8RnlGdEJwNXIsRmU5IzpQaV5DQDBCVCFkc0ZhXl8vNj1GOHJLZDpPbiN8QFEzYldGezBfI0ZzdUFybHBkTDsxSSx6Oj1de2AkanxVXU4hUWRZTHshYCFuJjtbPVFSSTNHcUhORDdDa1trdiZWUHROdjc/TVRkV1o+JjkjeXdNb3pA'@; put 'KmdDaj5SLyE5eV4kaGdjTnllMDNoKGgicE1SNEQmImZCVj9eQGBGRWMlVDFFcSw8SXV+L29WNytJU2t9cXksPjhQel0vNHIqSDUiaEZ8NCEoPm0wbzZKZCthRTdZX2NeOitAS205ZkZFK0RPVVB0REswVEV0IUQyVTR3UHJmZ0k4ViVWcXlDQTwzVStpalglJXB6ZDpOIz97InVkUlU7MEZMS3Jm'@; put 'VGNkcl5Tfk5gS1chNm9LbW40TnJIaDElSVsqSyhaX1s8PyJsflZPTXthWzdkRVNKTEgsJFBAfGhwXmw5VV49e0F1JVhLIkVoNGN2LkNdIVIoIXRJbXRaKThqd01XQnRBOTFsWTg3Ul1BJWl9dWU5WnhxTl52RWpVOz5IPXZfMisoaHJEZkhDTngjcCxlbipLXiEhQH1SN25QOGFJKHl+RH5pPkdd'@; put 'RV47UDRTWWlwImo4djR6WkQrS3BuODFbMSVSOGAxTih4I3huNDFbNXdQV3k6aD0iPk5taG8qOENie1Iwen48RDJWeDsxe3Q1YlpNKiRmQ1lmM0ghaik/b218VGp7QSpAITF6IWxCPz96RUg1W1VuXUc4biJgQjhRKkp3eGFSVWtzX29gQkR7NVNqZXwpfXJkOWJrb342U11JeWpUSFhtR2VLIlJN'@; put 'LFlaXlJueWVMSX0uMUsxPEhLInVzLCRxKnJXKHl1aSh4T3M4eCxOaHJKb1pmX2pKKGA5VEU7IUw2dDhCQklmcDJHcXhUMUFfbTkkakQ7dStEYF1SWztdWDNnSkI3aGc3KSs+S2BTbnhIelo8QyEhZTtFQmMwQlspSS83RDJuJEs0PGcwajlYRlMxTWdjZi9ALnh7dlpuQFI+KEAoamQ4dSFBRSww'@; put 'PCtKJG5RTWFKJD96alU5dEhkckUze1pLSmFzJG1ibDc6LDRBXlM9KkxZJHlHSm1EKFRyVGdsWmJjIUpFTk40Jk1Be1pfOGU6ITJ+eVF9WXpLVVExWkIyJUohd0cmfm9kP09NdD4yLnQhQVp8JUBdcFc7a09xd2NsY0s7c3g3LEp7Z0VAN2hSM0JPdzk7Mik2T1Eqb1t7QTYodyVVeDR1ajlrOmtO'@; put 'ZHI7S2c9I24yX2l+NC5rQUlqR31RQmkxayRPe3FRWU8vbDh2eU09K09KaEBXYGRGIjhURzVuem4mMyRPIXJlJFtvO1k6e2A0cElJdFZSLnMrP2J3JiU2eklpS1t8UV4vV1hZWjFzQ05FYFQpdCFTUDg4R08qYXsxLFs1SkpSZ1E4ZzxlbiFLT3FvUUZoLmJSaWc4eTlKfipNRDhlfitWcSpleCxt'@; put 'NSgoSi8+a1klSV17Y1hFWXF7bz88OG1nfiZad0NrQ1tWKC8mM3hWKVFXVkVOVno+R1VIaWNMPTEvYSZYekZKUVE7NjJOZmNnKUs3K1AwdTNHaFg+USRLIyxhVjQkL0hHdSw7JipFYjZuclZicTw0fVhXYXw/ZkBAUSElPHpaSSw2QzBIYlpEa2xLenBPZGhCVW1GUilIQz1Iays6Q0wmN1coKj9Y'@; put 'Z2QwczhoNzlVVVYoWDNhe008U0QmO2BMaHIzSFYiPGdIXmQ7dnB3YkdWIzxxYGx+R2tofHojJEc+bUpDY0YzaX1ucUlAb0ddbkUmTzR7Q3gvNmNRUGNJVyF2YUp8bDw8XSRecUh2PGYvVzlebSh8KmVQImhrXUgpeWw8ZSFaXUNmN1Q5Q2lucE1EVXtTVVEwVWMlTjdlKU57UD5GaHs+NyZiazA4'@; put 'YG5wKFEqPTN+NGhWbSNOJlc1ekIwWGZhSzR9a3JJej40eD96cncpPTchUXl7fjFrMXJSVXdIRk4rQXZrUHZTR1sjYUEzI2F3d0JZYTE+VlVIST9XXjZhdipZWEBvfUNtMX1Xfjg6VHxsUDE4OXBld2V6OlR1ZGcxaGIsaklJXUVFQDJYPiF6QWckQmBCdHNyUiNEVHcpci46Xi9WUEBeUzRkOFcq'@; put 'NiFGOiFYUkpmaEBiWyFGL0BUPzxFJH5rfXh0VC8hK3YmZHo8bFJdWnFgcE1pc0lGKGZxa089P0dUckVPR15OMHY4R04mL1U8WjpFKV4yWDM9eUUhSjZkOEpCaThZcTdCUCZVQHx2aUBLMH5ZOUUpU3hbMktjLFAmSEt+MWVQLjF+SmBkSG9Kd2JxMCZZeSZYclg/bC4vPW4vflFpbDUraEtAJHR9'@; put 'eyhtclkmZjZWbSpAXT1vb2MiNjZjPSJuQDUzYUBqY3NufjtieUs3SilWfVVAJnk2ImFwJGlLSSV4fld9VylnI2NgQCteX3NqKy9yUEZPUTYvNVRCMThiYlVpaUZJInlvI31oInw+X0s4KUxuWlE3M3J8WnZMXmddVWdeQVhUPlNPXjtkKlB8PF42Oj5FUyEvUkciTThvWDddIkN1Y2k9NS9VZXdx'@; put 'dW1GdCFePnBIS2BKSFdKPUt+a1M4MXxiTD4sUmQuYjAxQ2hqW2kuNVdMIkZ5RXU9Jl5GKWMrNlNXMH59VD1MUzBrJX1POk4zJFBFTTwwPV06eSMwJVVyTDg1TSwjVlNXYHovcGBgT31+WDNDeVMhd0EuP3NRLiNkdjB6KnsxYD9lOXMpJmk2V3xoMWZsdHEySW5kQ3M1MX5NSzdha0tDckJkI1ZY'@; put 'PXksTzFEKnAoZSY8JVlJIy46PHtbRDlOaSE8UG1OXmo3K1ZPWEUjZlkzYXQ5QG5vKX08RjFYO3VGPl9RUTsuJHF1Il1qfXohJExzMFVPZVUrZSlWbz1uQnA3ezwxJSJRNiV8PSUzNU91fDciPC9+NmckOXQheXU8VHQxSXppcldLRGNNSzd7X1kkQm16TnMySC4mclNXJjRSc14mQ0Y7fmc5SzNl'@; put 'KXJyZU5dMm5nZj5JbmQ2RmRXRk0iQ083ekEzIVkoSzt8TVN9LEFoeWl4SnY+PTtsZ25VdD06K2s+QmxxKVA7NFlJXTlLeHh3d14zbmMzZHoodD5jc191a3wuYEwzbiY0fGkjWEE0e357TTtWUFJzRFtiPno/RTp1X1haNkheR2NDVXBGazMwemx7MjRZamMhMyolbDZuc3ckRHx3YkwoPCFzcG1E'@; put 'Nz5qQTlySHwzYXQ7UG4yL29tYztAOTdEeH57KmIjans0YiZdN0g4VTBVX2laNUJvdTMvIkpjeUV3JFVvbWdFOzJidXB3QXBzMCZoYiZReztQRVMzcl9aMko8Uz58NU0iOmMhPyVDMmQ9UVMsVShJWnokYCNiZFlrNzJZcTh8X2g+bHghOmZxImM9fnFGT1hbPFt+Q1Q8c04+STJ6dnRIbnMiZnBV'@; put 'OjlqLlpUfEp4ajw1cF44eEpkZSpgTHVTIk0wN0QvRUIhYlFQWGw7SFpvZFN4Oj9eI2g1bEApSylGYjNZeS9DTXxjVzMwa1hAN2ElNiw8VU1neGpDV0l9JWlQI00sWC5dMThBeE04Z0JLKEVpWHdPcjJPQ2lAREpoQ2YlXmt1cDg7YWlLWE58eWdbXi5pKDlNTnx6cWkjaUQqQE4vTGZSa15MUDI0'@; put 'aHcpYS5+Xlh5YzBrNlFiUFQrI1piJEBpJm9qMlNzaGpDQWk0K2tYMl1zeWFTMH1XdDA7IzspNEVyJDNXalp0JEtUOTFIPz43SnN6blRuYksyOEgrdDtOVX1rO3pOMyJhbildeU5xMmlpaEpaQDIpSlZhVFhEYnhGK3hVWWtUTFVeJEFWKiZwbnh9ej1VYjl8fFs6fSVufCJtITh7bDwpdj0sWCZo'@; put 'XU9WTixxQGh5RUAuUT5nL2x3dk8kP1E5YzkzMTo0R1dSRS9TMHFIbWZ0ZG9IX3E1eT49XmU4N2IhSHJgbzpwMT84TFQ9TV9TWyx9Ji5sUlFSdE9OXzhwLjZ+TXI4TDEsUltiKi9eflc1Uyg3U2tLN1NHITQ9cnFXLjM7JXlKKzV4dHI2aXdUI3VoWX05SnNheE1nVD5STkI/VWwqZTtfbnl7KTRZ'@; put 'Iyw2WjZ2RmsoL3MvPEM7JnNucztAaE0+NE83LklYY1kvV2dUMDVFX2M1dm5oYjRDVTo7Y1A8cUk9PGtdNylWJVloeFo0eHMse3RNcXJVOm40U006KVFqI1RSUlJeJGM8L2A+c0BsfCEkVSRPVn02Xmo6M1l9R3R0KDJhL3BibEA7TnhOTCtzSzV3Vy47XUNVWS4pfCYsc2hQOC9EPSJLd2s+RGg4'@; put 'P1IyLHsxbzNFdzppP0cvZUJDREFWSyhAYWlka0BtNzduM0coVCJHaGU7I0l4T2twMFRARGA9em15R2xTYWU8UFtWM1ZGXy8uI0IuUjNaQFZNI2RIYnRxIjElaStAcmRCYkc7e3paWCZxRi9jWmMoPTY6LEBvPlV8RkQ8PURhXV5+K28/OmY9enxrazZ6NisyYUIvKFc7bmM4PDNyNUpaOzx2RkRe'@; put 'OEZNM0gkLmd4XXg3SHl3SiI1T3dmKTJiSjJpLjNwaVBrT1MmY21kODJBVXgvIVI+N35VK05SZ0prcEI2TFBCVVpMYDQrNTNGeDVCd3YsOkI4VnVed2kxUF1de2k7JlIkYCUzVCJ7N2E3djgoYWwwUldZd3ZRKCFHfF5QOTFUZFRnS2FJNF10VClEUDZbS2doNSFicCFTV1p3YTkoaVp0cSFlekp7'@; put 'VjMhWT9AfCZ2VTZTeilWMzY2T3RvfE8mVj9jXzNZb251NGFMenElNHRHe0dNdzN2OiMlLzp1PXhCSFRsLG8oRkZyfWN4JnczeWI+bCNKcHheQVBveiNueHQsfkxAVmdyV1E5aGorYzdFW1RNdWQkRWFlYHZJcVk7MjYlc31ZIUJ4dDlqUWQjcDlwVUQvdSE4bS9GPVlTMWdDWVMuXTE0JHRHOF17'@; put 'Z35vMFYwOm5bMjcsMXRVYjpkQzl6WHxLP1JMcWI1ZitmPlpoYCh7UjgwJns6NHVqWWB3cSV6aig1YVMuNkZUa2BaeW91fGhjKnZIaEVuSXg+USF2Nkk2KGdLTX5yenh2eVhtSDheWS9XMVtkalJeW1llZHJ+bH43fEdTQVBhTn04SyplbTwrJGJzU21NY24ldTdOPEM+Yko3YilaNltWR1ArbXAo'@; put 'OGU5eG83InUzaCZjJm1iNVRlNE4rdGQ2RUdPXj0ycXhUbjwvN2B3LnYsbHNEbnFLP2RJYzVzaHdDYXJfeyFIUS8/fTU7I24payUmOChaQFVYKTJxKSZbemdQUHFSezwqSDd6eGY0VGQhYWBiX1dbLn5uQTJmNTRAcz99NzM5YTZMT2IkNTpvWnI0T05YKlUkPzJ0JjNNNVZjfnFhVGdtOWpWdVpp'@; put 'SzpYfmFWPmM7TUJfeDFXWDgscm0yTiZbb0NQeygwZFJ3djF7aTRufFIjZTJxbns8OyJjUyZdfnB6dUdMSDpuYEMhRT49fDRjMnd3LjZSNzg6Xi9me3dSK152JEpgeG0jVlhRNGdVSlQ2VnRWblZhZzJSK0pdL2A3L2ssKlloaCVMbEdJNXosejJ4KW11Yk9PZGFOdmZMRXR9RHR+eTVEOnFwdXpl'@; put 'Zm9AYEx1fFZILGxvPypUajAhY2kiMUgxQWpLITJMflBSQjIsRS8/RGBiWztXeE9fMU5+Q3woLjIqZ0Q/JElvJFtocUYwXXJpJEhpVk9+Kj9XYFdifjtSKld6eyN6PjdeN1Y0V0VLMH1VYlVZZm5vWkdpWUkjNHcpbU1AUzUzQl9lRnhgZGArajh2U28uU0lwOFpuU0ZnJUIxRWVacmMrQGQ3dDBb'@; put 'NDd8cXNubFgrWXtdQSk5UEBUYFlPY3omZXJrSHR9fnlQWXZpT2BhMm1NLkReKTdqeHtmaVo7TmF8a0RPVnAqMmxwYis9YDhUTkdPTVUqPFlnREdKfVBzXzI0YXZbRUkiTkcpNF5qKGd7bjBWdDRtdUZbfFArUjsjIXROW2Q2VlBnVWFoXVpQa2c+YSxhOCMxXWJ7ZTZ2MjxVPy5sRV9WNj1LPWck'@; put 'b241WjpwYT8vcXgxPUIwWVVZcTlQJENIe0MyWHgoKWI0eU4qJDZrcjRJQWh7cCYhTX1aVXJUW1N+MS46R0oqKDZRKVIlOz1mRlF7TlkpUkpfWHw5djd5YD5iV1JAWm9tb2h9azVGZ21WXlVFOSg+Q0JKc2dSY11MVSU6QiZfSHQqUlhRWXA9czlTUDtZXn0zY0oiWHVeMkk6ZHgje10uT3doV3lW'@; put 'dl9APD07Y34sWFh0bFRTa1Qlck00PlYvZ1BpY3pNZXJ9Ni5tMHJdbnhWeTEsRm8hW1k0KE06Ql5yQTNuTXl2OWc0IjFSNCh5ZSlrSChmOX1IPT5IbEVQWVRCdUB5TT4kRktXLi5xQS9bTG9OLyNmJVROc0hkbF1ALmp6NldTRlEmeyVVNnFiSUlFIy9yV1k+NEZIOSwzUjY5dU5ScWdQNC89dkVH'@; put 'WjV4Unh1JGxZRERHblc0TGRhY3pWbiE4WiQsKjo9JVRBIUMqbF9xaGJDemt2Wyo0NFQxVyZXfFBJbFBgU1ddKXllOT9+KlIwfEp7XyhhOFNnLjJfRjZmWCl8TVRGREsveFo2NEVebl5kQ0M/R2w1RyZFMU9Pak9XP15jaCFEJjk8a1lmKSMrYENxYVM/RGZGT28wTS9PdnBZfVFhODUxWDUyVVdK'@; put 'fkNpYEI1W3RoXl1EKk82OCw7JkFaKFRdYT04STJHSz5gYCx3R1hZWUVNSnpONTFbLi5OOmk3MXo/ITd1I09GXnk1QnZtbjFmdmJrTT08MUZSR0J0L3s4UFM8dSJofHFRbywvOXcuRkVpVXtPYWY6TGdEJCFHcmJHMC9xTUZtdiVLPnR0c2MqJUBUS31NanlVM182SEBuUz5EYmB5en5KOE0hQlNl'@; put 'LnE6aD5zaEM9bGIlcnR7dz5QSV80QXZyTEh7NU5CcE99QGF9cmxjZlRzb306OlEoKzpaSS5oJEVdazJmQEdBWmJPZ3coMDk2V2NLTGVKMXc7KVNJcE1ZdmFkIjxnLGJudGN0dElSL1YvJS48TSN7ZTU2fXNEaTgqV3RKO1liWDdpRVJuQT91JXJXMUpZNksyKyxFWnNhKS9hPnslcyE0ZihsRDVs'@; put 'eH55VFU5bTtoPzZeUmNUXXxUMC8iajlVVj1Qbis7MjomP2dvblc8PU1FfEl1aEdaNDYsajJ6dVBvUSZuSj5nV0psV0MjeFlGWHhMLkMoUTFCQWpRUlBnUTJzb1FbZyV5UFdsXiVmSSRbQTI8djV8az1abCZiQExNS3o/I2Ewc1A4LjFEMkx0Wil8IyZsM1MsO0ImajVdXz92PV9wIzNeVldxe34l'@; put 'YUpLVlpJR3UseGl0OWFJTmQ2eC5pMXxwNSZORkl7MCF0M2l+KjssaFgwZkBaSXphZUM3YXshfWZ+Z3wobDZUTmRLWmRdOlMjOW9FKnVkSURDMiFjejFgaGZfMCxSXV9wSlhpUWBFSzZ3N1dYUWl4UiZlPndeM35lPFReSWR8d0Rhe1tWakksUl5yXzt+aVIhVTE7VjRZJjspfFdfaUVfWVdUM31R'@; put 'MTVJcm4hQjlwcyl9ZGxDe2VIMHpZfkZUcXhNPSY5bGApTnFPTiNKZFs+OyFvbm9fImxyUX42Pm4qYm1JfmpqMnl2XmVDO3lwLDJdPzRvNzloMGdeJS85cV9HIj9zdFY+MkgoL3p8RFFIT3k3cjF3aW9MNSEySnN9RD9lZkxRUENGWV82MTlKXjRjPkEsSFY3a05xclVDQlImJkt+Z091JXZqP1I6'@; put 'cFZkcVMjTEpfN21iSVYjbT1nQTtLe2FvXTx3XjskMS5sZ1J6TjMxM2wrbGQkP31NfktfNU1OWEA5bn5Ze2Fqbn5mLGBrcmt2T2slemY/RERvbS9kYGQ7SDx9eEVHPWUleEkue1I3USk3O1lCfUgsajBYbnxdRW5IZlp0Wj5MZlE7cm11MSo1VlFuLEs+OylMUHhUeHZLQyZ2ZWlyR3V3YWEvZCIo'@; put 'WVF6W3pJUFp9Vm9LdzgvaF1CcThAPzB8aShtYH51OmA5MVF2ZV93Zmx2eGN1aWo5fkw3JS9AUD5kfSNrKXJ4MSp7QmZhVTEpKCRhZCUjdXomRmQ4ZWEyZCo4X1BLMzJ+IzVLSThUPTZlJnIyOWMqRjJyMHtQYHdCKitCKU93RCNjZHZbO0ZqTixFaHkhcCZ8fTp4Ml04fCghQThTIkNlVTlzLHE9'@; put 'ZUJ9Y3c2P0R0N2hQQmUkZ0FkPS5fMCk2NFoqLCVmYWZGd2diMGBsbG1EdCVUaiZJdjQ0NU9VQypCfkJYTHFSaWdPfiFaeXBqaD4iXSF1Njw0YS8mfHU/VEZVQUlCKiI3TGpVQDpsOWp2VVZsenFOWGdpRUwyb3xCVTRjdDgxTzIyMSlTamdILjFKd2NWOEA4TksqKlNZMC46L0VuLFYyWTJTXjop'@; put 'Vy9BYTQodkcqODlEJDUodTMxWzZIOE4jTChAOlBxK3A5QCp5OXF0MzgkQ1Nobj9HO3JVM305PSY8cWNiXitaNkQpfEEzMWJMWzIlRElWNmlZKUZLbCs5RG5lKT5uL0NMciFrOiJob0AiR3tgZlRLUHUjT1BHMUxLKkl6Im86ZTBiSSkzPmpRdVU2SjUwKEJgbDdydVhiSShUaT58LjkvR0JSSzhn'@; put 'eHQ6e2VlQX0uc3k9ezRbX3lhVy8+bl0pfCU9cEkhT3RdQjdkPjlqU3JdPC4wKHwuZj01ZV8mNGxgKzZjZUEqUXVCcVM4bz9zciUjL0Y6ZGpqXzUmM0ddaHQkN1FgMUBPT3U3JV5rb1N2LH0qNDdVQz4+fTg9WHlVND4sZDo9PkV4MF1BMnVwKkd3Yzg9PElWJSRaZGZaUEAseHhQYERpPmA1RlZR'@; put 'SGNiQ2lYI2JDNillLF9rP3pyJERWSF1dMFgre0wraV0xXnk5KXZWYmNdKX1yVU1GXnlufC5ENC98Vn5DOHhrcWF0fTliJixEJEtyVTYrPzZhITpFM3QwRUNhVGxmUnQwa0k7Xjg0UE5MYEJuYEg7eTlHRH4hKzZne3k0LHtJQm1jPU4wIiVLZ0pRVDI7NDguYFkpUmlsalEyImw8W1c+OjAxTXxd'@; put 'PXZsZTgvfCkray5qel9Pe0BEM19LYkh7eCxtcXhBOHRCQzEsJX1ZLG5MM2VTNHIkJFdDVUY8MHJ5VSNdPXI7YFBGTE9oOno1UkM9LFFPO0c9ZixkYmpddV52cmspUXlESipRV1FMTiQxfjxdSEc2bz4wRnN8IlcvIzlNTkYyQFRJWWAqNE5dZThYcTxleEZzRCo3eTNWfT46LEZpcml6IShPMT9R'@; put 'ZzBGcXk6PTY5bGRTXiY4QG9WRXMxYzQ8Nn19NXVzZUVNWi48PSwqc29TSVp6QiJ+dF9MJDtgeCU4ZStEP1FOOH1JfXU+RmVCNmZCZiVrbkBYfDxMSFpkO1BpK1Q6YExEfil2THxwfmxbNkRCSTFzJDVkSVJWXUxRXUJaKi98dClPT3BVajN+U3k4ekNXYzx4azgwRl19M2xXRmR2R1hDQWxRaiM4'@; put 'PUtYIkBgYGI2Ull1LGVUR0s4Vkk1WX0+TDM7WVUxZkB4KixXODZ5PDhnUiUoJHJTcGVbMWZPXyZNQEohIVlRISZ5TlNkb3JqNT5iaTM6XUM2Q35vI3dYMW9iPkM/SnhEITV1QyZVOSg2d1lAR1pNLCF3UjAseztjOGN7QkQrLjBgeVRVczd2IkYsb3hFRTFKNzwkanI8MWx+bm1TS0VPbG43aSMh'@; put 'dltDVkUreF4pMlB2JSwvMkRHeVFVKXAsTHczVUJQSXsyRXN8OEg0a15oR0NTTTZkNUpqJHx8PEhSfHxAMj5wXi89R3UwLlJiNXJrbS5wNWE0KlRTcXFBVEtYaSxZaH57KUQ0cShlMDptaGM2WCxBe0tSW1IvYE0/fW5IeUhaRjUkMDMxMGQoUSk6PCxpTkFhI2k7XilFJjkjbWZ+d10jXSw4KEBl'@; put 'KVl3T3B8MUpqP1h9bjtfWVlhcVVZQDUkOiFMKnkzOSVVXisue15RfmJSYjFScnFmKnFObE9kS28/bGdSZig3I3JlVkllUH04Wz9iITtlIXd1QzZUYCVPKEpON0Q2V1p6U3lFO3orPnAsZGZhfTFlLzJSITRpR2RwT2hwRTorPXk7JC8rMnF3anZLR19tSzIwX2siUSYxSWFWZkN7Y2J1NiElJHFE'@; put 'eyNebzU9TztfWDxndz8/T3ksaFl2OlAkQSk9QXpeemtVdys4ZFlnIjczK2QqQnJAXSM1OUUmPEl9MDV4ez8kQ0RQIm5lWnMjK3hsOV95WUUyX3NYe3ovfUh9dXUhUHQuU1YjNEVaRj16cCs5Zk43IzNOLDJ5LE88RF99dTpQajc+YFl4NDtYIllIOWF+NGtXRis/YllPJWFyTy9JO3hOeWg9YlM0'@; put 'S0BVbW5zcV55LEkqdzprJkI1blNMTWJLdi89O0VGTz5YfEZuQCpjLi9uQFlEcip5dkh8IU94ZlpYTC40OCphcV1dcyk0V0gwaD8kMzp9QX59VGg4U0w6R0xyK1F2UCklW3o3PTclaHFTPmpINnVAUExyISFaRDN6Vjh5THs0flFrZEBSTEF6Nlc2fSF3ZGBDMWs1NFgrLnV4fH4qUmJeMVU3Il9F'@; put 'NX1TdDZ1NG14Pkcsck46VmE2ekg+UjhYe01LamE4PHw7RXtKKiEoYTJ1PFJhfl1qdC5XKEEjS346Y1IxRCg5fVRmcGA6eF00X1F1R3xAenNjdys1eyo0aTxQNWU6SEAlSzhjb3wvP2FnWHszV3c2aCVpYjEhK3clfUd6NW4oRUo8Q1ExUm1iUGFkIkcsZiUjY3w4cltQWXV8RHhTLzhgOSMqdExY'@; put 'fmhXU1NbWF54XzM2U3NASUMrPSVsanwzOSVRYTozVCQ3a1YzLzFoTWpPcDJ5WkE9OyVUez0jNyJ7Rkc5KGVsZ2JTOGlGTVooTyZDamp2K2EjdlttYFVdP0NYYGRmRVFqfkpMfXxfYyElI1AsSUk2JWlQWG1JMml3NCx2dkouTTpNfTM7N2VRYWZiQT4qPG1haGBbWyZEQEoqOjgpTXZsTy9vNChh'@; put 'IUkoPT1iWG5MLFlKfStoYF48Ki4hfkRpODpPSiRDRERiSGR4S11YOEtTQCQwJV5MfUw5QUNaU1E/WGh5XXZDbHB+Lzo0JnooKlglcSUzPGBVU31FWjBiLElnRkpoblRVV3tRbkJdcz01SyN0cndFWVRTb1Q2VTNvUSNQZ0ZoL3Z+MG15XVc+SC42VV0rendjayZ8dmd1KU00T3YjOHFZW3FwTjdw'@; put 'Mn13Um8/ZmAhbipRY0QwcFd3VTZpRFBiIXFCP2wqfCk/Vl0kd3kyUC9GQHF5aG5bNGBWY2xvUXlgNGNsO3gkanpGL1YwLHEhRW8/dCNrWzpEOC8hTjE7WGlYWUZdJGpuXjRFL1BedUlZZDxpKyxzdGZ2fTZTT3lnZmJ3biRxb3BhRXt4LnxKfSVhWWNtSEtEe0RLbDpUblhyTlsjeUhaSzJANl5u'@; put 'UzBlRjtpXSpLfUdnSGpbJkBlKU8wO2JudWR+U1BxQFFRMl17WXpySD9hYUlNQmRnQ1cjVCN7W1VZPlEoa0MpeypMZTBqczpRflpuSnRUWyRMM3EkMEF3MGNVYSJQWlllSF5tNSMwYWIiMGcoOjsoXSooRz5PXyorRXNydl1vPFR5RzJDaVpTdn5haTtuWDowdV1za2A5aGtuY3VTWGg7UG5BNHZV'@; put 'JiZuYDhSOWhgMUhGYE1AbDFUdytzbFNgbTxQJGhdQW8jeStgNmxZbFVDWD8yUTdgVmBXSCs+ODpJSlZvRl10QnFOR0xgPmNEcV8kSlNBfH5ydHNiUmdBUHhXPiRhMUkwJSg+NW9TSllwZVRJQW1HbmlTaEp3LnJ9cjZJN0RzMmU/N00wPEpxTXY4OCk4eWxrKW5aZkxtc3VbJTUlXkdPX3l6fXNP'@; put 'fWw3I1JzLnAoQFt7cGMxdy9OSl1EbUoqU2hSMEB5MEQyKFtxTVhwK3Q5RVNuOTc/QnElbCk0YVNxOEQ9c35QaDM3I2p0ZUNOVFBdPkJyJWkqNGFTJlEsJGYjVVo1PTVMZUJHZGxMfDAyXmRONTxkSCN9KSU2cnwkXXA+UTdMR2ZsL2w4MXpkdC9KME1neyk5NiNyK3Axcl1YZioyRTdVJU4sVW5L'@; put 'bFNBQ1ZBU2pYOnZ8SmgoZDc3YV1gPFM4Vz1OTUk3blpLcEJ+Uk9rKU80RCwha3lGOm1VWS84MEh5cmA6IyRqfD5lY1Q2RiEzfCV6OCk2OUlve0whWHY1c0IyPnZvXSE7I3JyUEBSQFFxJX4yZyNaSzdfViQpKlsjbGd+dThGbUhYNmFVUUBCVTY5XzwmSnp9VDxaRnh7TDprOSx2dXZmfE1eV1Ev'@; put 'MWdwTyNyTHEvQUs4b10jRTkxK1MqNUY0YnteK05tTnJ0T2ozdWdFOUJhNXlociE4alZufFFlT19QQ2NtZi9sO0xIQj5lfF8mS3ZSdVYmRUUzJmJlWW4zTEJiUCsxaDF9Kzp8PzcuOmxdU3pgMVFSYjMzK35MSWNPNGxOLj0kXnJVUkw0c1tsdVlNb3pIMiZTYnsleSgyME5ZekQhditRP0hjdmMi'@; put 'L1EycG8yQWwrQmwoZ3B1YTBiXjNsMSFwL25RcS9eazJWQmxIfiMhRVFlSHp6aFYxP3B9ZldvZDBhPWsodTBKXlR0TTZXVyV4TDgqJjM1aitxQUc3QjN1Kzt1b1hzaFJ1cU0mYzJlQCpMTnZXSTA+OkBaemxuSnFyWG1saVA6fDU+IWZhKUgjMHptXyt1MWBvOHZyIyV6bUhxW1psej9ONTAlVXU4'@; put 'SCFlQShVYVtNJmczRitNTDFPY2xwNWMsbFk1Q2kyT0MmRHNNUzdnRkVoUUEsNSFQQGRkT3I8Rzo4SDZqSj1CKGpBOTYjZyZWNUN+ek5QZHtsfCxdd2V+UmJWd2VkLl99aFVLXyREWV1wUStUfWE+ZTVQLDtXbFNDa1N0QGg1ajZuKUs5XnFRejF7XkJKfWpRbnopZHF9dUB1VmlaO0BEST4hUnhh'@; put 'MFchcGw1KzJrZWlrMmRbTGQlOVlRP2RrUyNnd1UiPDVEI21pPXR+e0x6MUAra3guSlRwQ3lMejwuRVI6IUVUX0BEfGQhX0FITFk+LygxV1MjRm1SYVJfYWlIJVljI35HPDx8aHxoTUQwIyUmYFFDbH5PS3UrcW5eaiRtaDVxQF19STJHJSNOe1B4KHJPRz4wYy97QiIzUEZCbSs0ciJTIzRnWktP'@; put 'JnxYIVNIWTMmd1EsRGk7VzpWYV5GMyZjNiMkVXFkPyImZmo2en5wO1BqXmRoWDJ8JXRVRzxNMn1NWDg9XnhrKns8WlNxXlNuMWduI207ZXJmZy5JLnMxPWA9UCtsZD0zLz88dlJJeklIeCZab311XldAcDtbI3ZdOHIyfUQ9Ml1ifnl8eDZWb2hzajhnQEVpfkFfaXJDU0VYczVdRDtGQTZnUSRR'@; put 'WzdnXzVoZjxmMWZgRW5ibnR0bTlnXz81aVY5JV9+THBXVzBgeE5IXkA8X3A0amMxaSowTCVoeC48cn4oS1t1MHJnLG9yYzlKVCV9SFR+aFRnQyU9Qk8sRS86dldPWDdxUWQ1WWUofjc8Ym80dmEobmdySy8jR24pLkE3RzB3KmpRe2swQiRzTFF2Qj9vLkxwTk8jMU1eUDpDRWU5fGRQTjJFMiUz'@; put 'PTdGfTdXYkwkTzFXOllncXchVmRjdGg4aE1sampmTjBQVkQyeClFPGN6XTQxSVtxUVJldnQ4WyNpInV5RVAyQ281dnZga2NLQGRBSW4pR0VDIzIxRjttUkd5Y0AydVBCdXVWSGJJdXVZSlVVUzJYNTI4S0IuNypKVGkkc24ibCh5fm92Pm5RVlIwa2VJKXJ2NlRlK3UqYWFpTj1ubVdyeDVdPjky'@; put 'OFhyRUIzY09mYllVUjFSRF5YQn5dOS92KisjZUEjN2lGbkx4c0NIWVd6UTxLK2ZCMU9JdG4zJjhDJGI2eCIqenVJP0pkJHw8WiY9TEF3ZHsoMVJUdHVUNUQzeihwN1syNFM7JiNJUSxkdyQlTGV6YixLfkZBdTtRWEV9PE48Sjw9WzRHZWV1cTtBMCpWMTs6QVJQZndvaVZLZSsiZl8kOF1JOWta'@; put 'dE1gUkpAe2JJSzcke0FxfklfIWt2dHpRcGJaP1t9Qz5OaHJkPys+ZCl+MUVTa2cwTmBAd0Z6MWFPKW5rU2BXazMsUXRdX01oen0ha2xRJHY4YGtxd0wpcl9mKUJbXTRbbG0xWGhaY1o4JXBkQDZNekRtanZyKDJQYX1JeD43L1lOdmxJIn47NDA+SjMhJVFXQHdVVVM8TCI4Xjh1MFE+USFjRm4z'@; put 'U1U4MXtpW10hWz8rNzVMdjYjQltdd3hqL2ZhNkRWfUdTPTx+UjApIllhOWtNKGwjayF+SV9gMGJAPTUuWn0+OmNXZjJtTUFeKyZlfUNAKCFBWnN6RUNjalRdMiJRbytmdihFJWZ7cDU7TGN8d0o4fkhNTD5jYjk9Qjk/UzJVZ05BbS8jQnFWMiVtSGRgSEFtIVFrR1JgckhaNTFHKEZQWCFFT05A'@; put 'Pj5ORCNocjkvc0FxTX1UOW1PcGN7cnV5X0s9aEx1JUZhKCNGOT5YeVgvVjFkZihKVnBDN3U2akt1JURMN158KEN7WnFnTiY1W2tWO2FbUUphajZKPXJYVHpIdmZ6ZTI6dGpebWNQXXE3JitdTnEkZDo7QiRXMmFhdD9iTVg2ZSl3KytNWTs0RiFLdEw7QkpWOVBaMnQ8PHxHRnEkSXAxdENyP3Jk'@; put 'cHIxWkFIa21GNColK08zMiwjYiFsSjw9KlI0Z2h+aVt4bDpqS10mIV4sQkRnKU8xb2VkMVFhX3YyeU9TXyUxcnpIZ1AwU2MvO3Z9OEtHb2BCa0JEJiJEU3tgW0lzJFQvXV1RS1Q8JkpQalhvVGJmLCZ9Nl56OSxedHFlKl1mYnAlRyJnW3dyUyoxSWt5a15Oczh7dGtSd1BvfVVafF5EZXZUMEo+'@; put 'TyZFQDtTLzJgYDtOIiVTdjNhLmgoQ1MpYyp1RThhUl5+N11+MyswKGpiVjh2aWhVPWk2OCY0W259YlNWdypiYCZeZ3hEYCZIXTI1JkxbXWwuO0A0O2I7TX40Tz8qVFY3WHs1ekZYIXh6UUZtOyJDdmdofiM+WF5EZ2xKeDliUHZ7QE1COzlVIzYjVnlbbHhmW017cz5xTGpNRk1IJGk1d11US3Bs'@; put 'ZH4iKmk0YjhPe2hNPEhacV5XWDYuPW5SO3cyMXhGelZrNldsRkJGTmFnK1NmT1BAWHYlZj90SX1NST9jQV1jT2guSXNRKiRWWW8jUj0wQmwqYmgySGY2XzY3cyV9TGYvITNlXyUlKXYjQ0kiM0pidmJeX2d1IywyZWkzdUtGSCRrZyFWQFtld1RoZClnSzpfKDhXeDFmaHFxVU0uaW5hYWFdRn1U'@; put 'OW5GP18lXkdZVHtPImJ1fnFwSWV1Zz5wZWdYQE8zazNuT3lBZ3hjQSU9RSFxeyxtTzAyPWw4TzRmQSp8di5rIiFgWWFgNndxUiVVMVBCXW9MRml7OFhjKDYzUTZUb1JwWjRuXkgpcysrfGNMLFEjM1c0JHY4WD5qRyIzeDZzOzljOVo9LEVlXygqb3FgMWxBeFo1N0M2Izk6fUk2VDgpWX1bfE9U'@; put 'TXRkb0tSaVh+Ulo0elg/Wlh7ZXR0TFNPJHU1UDNDb0MveEtDNUVETVghRXJdSUNrQD4yWEtwV0Z6SHMybTJqNE4mUERgMlJbbiNTbXs/JihmMGcudXBVSlE3LCMjPmVoaDR3dC8/flIpdjNlQygmcX47JFptV0FrKWk+eChbJTIoN1kyaU5HN2dTNis/d2tFM3QoWGVIO2dHNyMzbDZzNVd1SjMr'@; put 'T1tiZCwpbHtKNVo2dHEjdTRISF5Xd3d9VElCXjttWjpdPix2Ty8sLkBYMmIqcGQ0STxyQGJ4OTFbZ0J8M2lRPWI8bCRVb0VESSpqR3Bld1l8OVsoLmcwfUc5fmxvMkIjZ3thPkQqXU0vPn5BfCFETGI3bDNfNWozJEJAS0pWU3Frfng+O3pvPFZQbH1XK1pfLEBoUnI4Nk5sMFNiMk5iMTZiOk5s'@; put 'MFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZi'@; put 'Ok5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk5sMFNiMk5iMTZiOk9dMTYwNmI6TmwwU2IyYiU5YSZCQi8vOnNofiZPYjE2YjpObDBTYjJOYjE2YjpObDBTYjJOYjE2YjpObDBTYjJOYjE2YjpObDBTYjJOYjE2YjpObDBTYjJOYjE2YjpObEI3YjpObDZA'@; put 'fnt0MCkqZDJOYjE2R3lXbDw6IjNGOndbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtB'@; put 'LyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjMyNzI3fVZ7clt8KmB1W0EvIjN9Vnty'@; put 'W3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8O3JqPiIzfVZ7ckd5TFd7cmN+Mn1RfGZfOT5lKDdzY34yfVF8Zl85PmUoNzdGIVteQF4vbktOZXxaNjEsdDJrfjJ9UXxmXzk+ZSg3c2N+Mn1RfGZfOT5lKDdzY34y'@; put 'fVF8Zl85PmUoN3NjfjJ9UXxmXzk+ZSg3c2N+Mn1RfGZfOT5lKDdzY34yfVF8Zl85PmUoN3NjfjJ9UXxmXzk+ZSg3c2N+Mn1RfGZfOT5lKDdzY34yfVF8Zl85PmUoN3NjfjJ9UXxmXzk+ZSg3c2N+Mn1RfGZfOT5lKDdzY34yfVF8Zl85PmUoN3NjfjJ9UXxmXzk+ZSg3c2N+Mn1RfGZfOT5lKDdz'@; put 'Y34yfVF8Zl85PmUoN3NjfjJ9UXxmXzk+ZShRZEUrKGg8OnQ+ZSg3c2N+Mn1RfGZfOT5lKDdzY34yfVF8Zl85PmUoN3NjfjJ9UXxmXzk+ZSg3c2N+Mn1RfGZfOT5lKDdzY34yfVF8Zl85PmUoN3NjfjJ9UXxIYy5qfn4yfVF8cm8vflF8US9EXW1CPEM5RmZMIVdodCYiJiImIiYiJiImImk2RnMw'@; put 'MG95dFR6YWdmLChwMD0iI0tgIiYiJiImIiYiJiImIiYiJiImIiYiJiImIiYiJiImInF0JiImIiYiJiImIiYiJiImIiYiJiImIiYiJiImIiYicXQmIiYiJiImIiYiJiImIiYiJiImIiYiJiImIiYiJiJxdCYiJiImIiYiJiImIiYiJiImIiYiJiImIiYiJiImIiYiJiImIiYiJiImIiYiJiImIiYi'@; put 'JiImIiYiJiImImFkRSteaDw6c2h9JTdIfm4+OSgmfjtoaEJtIzlwbExaYSVHTktbdW8yQzlEIzc6MSxVK2VHeTwoS2lOXnFpVlViQnMqWTxFSF1AUkY5dCV5N0hkclpGOXRMenB5cl8mInJfeUs8RVkxXVY2Qz0oVnFaRjl0cl95S2RCYD5LVjZDPShWcVpGVW8rNThDImd8S2BwSSNkQmA+V3hg'@; put 'PktWNkM9KD52PTspci8xLFVZLjVfN0NWfDcja3VhSj44MFY1TlZ7ZkgjQ1hFdUlCUkNpRSlHdUxDWEV1SUJSQ2lFKVM6Q1dhYVVaKjJhNjlQSD9WLEx1I0tYRXVJQlJDaUUpR3VMQ1hFdUlCUkNpRSlHdUxDWEV1SUJSQ2lFKUd1TENYRXVJQlJDaUUpR3VMQ1hFdUlCUkNpRSlHdUxDWEV1SUJS'@; put 'Q2lFKUd1TENYRXVJQlJDaUUpR3VMQ1hFdUlCUkNpRSlHdUxDWEV1SUJSQ2lFKUd1TENYRXVJQlJDaUUpR3VMQ1hFdUlCUjpLQ2pkOl97dmhxcj45KCZ+O2hoQm0jOXBsTFphJUdOS1t1b2xGX08jN3J2R3lSKWdSMXtHdVVVJENxKlk8Kyxxb2xGX0NDanpfQjEmQ0xLaHVVWHdEV2NbdEZIczQq'@; put 'QkxPe1d3RFdjW3RGSHM0azBVe1hlKFZBPlVRa2owWDA3NkdTLjc0KkJMT3tXd0RXY1t0RkhzNCpCTE97V3dEV2NbdEZIczQqQkxPe1d3RFdjW3RGSHM0KkJMT3tXd0RXY1t0RkhzNCpCTE97V3dEV2NbdEZIczQqQkxPe1d3RFdjW3RGSHM0KkJMT3tXd0RXY1t0RkhzNCpCTE97V3dEV2NTYUxL'@; put 'cDJiJVB9Nz0sczxeKShfe0VpcXIyZHxVUy56TyhTRjIsVTI2NlNNNzoxLFVsOUtLXjRvdXYheUQ+LGpLbGZHeXBjVylZPGEqWTwrQiw2dXk3ZFI1bEhjN2dZO08yYyV3N2RSNWxIYzdnWTtPRGxCTE82NDVpYk5kPEgkOlYsaTVqVjxPMmMldzdkUjVsSGM3Z1k7TzJjJXc3ZFI1bEhjN2dZO08y'@; put 'YyV3N2RSNWxIYzdnWTtPMmMldzdkUjVsSGM3Z1k7TzJjJXc3ZFI1bEhjN2dZO090bypsUFs0XXpvTX5hJX4iPF5KKV97UjdecGkyTWRybElTMXtQYmVsMmM0UjF7LmdWVVRaP0NDalNIIzFhcjohS0s0NXF1diEzd3YhPU9SYmdHYlI8QmI2e01yTytaTGF7Y3h6VzBbNUZOck8rWkxhe2N4eihk'@; put 'PDpCU2pQRDR1S0ZPTisxaHkyWD9wMFkpMktabTd1Q3BreDg9I2pCJig/MT9VYU0hfTBhUXw6LmN7Y3h6VzBbNUZOck8rWkxhe2N4elcwWzVGTnJPK1pMYXtjeHooZCJAdjtjLlU7TVtXfXpvX0JiJWhDOD0oNDc9cWx3YUA3aC5ZPCNTczcrWnIrWTxTcGBAb1FzTEd5T2QmaU5eVixxb1YxO0Yl'@; put 'RWI2cXV2IWtsa2xrbEIrMGpZMENkeD9hNlEwaCY5MS4lWzU3PXF5cntfXUdOak5hPFk4cnJZRUVoUCVDR05rMSMxTWV8NXExezBqaT8wK1JVSzhFfWQmR24zXkxOM01HUlArR2dFelZpeTJXaWFhVitWd1tPI0dRKEhUUShyVCsmanp9JD1FOFo2ITxIdHI2ITA/VWE2X1YsVndIfSwzfTpiejl9'@; put 'QWMwak1tLzxoaHtsIzl+Uz1ldTJfbFkuJEhTLms3XnBzNG5CelssPEM3Rk5zN2xUQ2pbOmZ2R3l1ZCVpTl4mRF1AR1d3UEUrKjdoUjF7WURwb0U0eW84ckQ3Nz1xeX46P21WU3E+JiY8WW9oOUBQVTZfKXc1dSxAeCpAZF8mQ0B5fClbP2JPN1tYP29xXW8kR2Q4SCVmNy5DMklfe21ULiFhfCxG'@; put 'MVdwUj9dWHhpTHBaZDw7MGR8SkNgeXw4RFBvcVduQiJZK31wNl0pREs0RmZWdnxObTRlNzs5JjRVZmN3aD9len5kPD14eH5WT3pnQ2pmPG5mYWB4UCNZZDpJKlp+LHJHeTp2YmorfVhANWErKz5+ODhXeVJUM0Y0cTM/Q3kvQzd1ejAlOXlvd3goeVpQZjYzcSxmeSRBOGpPfT9Uezo6TWQyPVUr'@; put 'Nl9iZ0dsImQie2JWXk9VTFVgNzdhOCw9W2I4YU87fDAwJClHIylLRzFfcSl6MXxieEQwVF47ZmJJa0hAejJMKC5TKSgiTU45PSNLUl51YnEjRUsxLzNPJlYkN0hDTUk+JllQTk45WjsxUSJGMGUlXmF7SDhWYDpRPTh0OSgqSzRPJj95PWdFbjk0fjBhOGhWeTk8V29peDdlUjF7c3ZHeVspZ1Ix'@; put 'e0h1VVV2RnEqWTw6LHFvRExuWng3OUVMSzw5bipZPHlILCxPfkZmR3leZShpTl4xR11AMHNhUk5+eDcyNlZqTl5Kb2BAOktdV0tLaHVAd3Yha1ojMWFyIkNwb15iTEt4IWQqWTw7U2BAU3k8TENqZTshMSxVfHRVVUZqW3d2IU9QR2Y3R2MxREttZilBX0ZKK2dlcylIdkVqYHd2IWxheDEsVXgj'@; put 'K0B7OWFmZyxjeUdqRV5iYUxLVyMhU2c/bTlLS1cjb3V2IXtEUWhaTVM7fnVgQDszJFBFKy9QTGlOXmA8emQ3TlFEUDw+I2g4MSk6OD1nVVBMZ3MpYEh5Iy5NXy54O31vMUluOUZsNmxrTU1gWnBsOF4ufjtodkxgdHRdbH5XL1B+SUY8PiMjZjVsRmZ5I3F7cGtNXl0xLiVJWVZVS0VVSENqW3ll'@; put 'UjBwL0lXVUtFOEhDalt5S2lOXih0YEBvUWZmR3l3WHxYKFkqTFcpWTwmNStmQEYhalArR3ZVVXZGSzFFVylnJW1qKzFoMClaOzFoQC9oTUAvWzhkcDwsfldSai5RfElOPDshb1lITlQ6RmY9ITtIaD8yeiFdNFJ5OEZVM3VnfEwhJHFtWmkmZHBSRCwwQHlVWSswXkdWPFg2c0x0SmxEMmlaIlF0'@; put 'bF9IXUQ9QCs2dlheI2FOYGRnU01He1o2P1M2SU48W1MqRmBJRWZmallQTGdjbDZsa00yO3dneD9tOS9ddz54O2ZqMyFZbmNQRVlPUUJHRTFCd3csQioqanVpb0pnJVBWbzllUWB1LiwlZSE7ZD5maVgkI0hJXyFfQGh6P2hNWTFodiFdVFZrPmhNYU1JIUxFVCZvWWk4QGwie3AoI0hdc2RFL342'@; put 'SXE5PzkmK1B4X1licCUrKzBqcTJsTGcuRCNKZzt4I2dTSFJ3cVd6XXVnUH5XcU1Nb3cvWjtjanFUSSE1Ky99UzpaekhsK2wxaUtvYG5Kdzl1VTgxaUw8LEt0TFJ9cjEsKEkkaUc3SztLOUxgPGU8OyFZQGRNL0w/UjQhI0VTMXJ4UUVsRiVlMXozLGVYVFIpRVVqQ3lwWnBoUUpdRkpsW3cpWX11'@; put 'SmhiTVUxeSNCVDZHYElhMW9JZFAvWjFIJXZNXmF9REs4MyNmcGBbO00qKFlzezxMLigpMGhNR0IjMCJDYVYlMCxRSDI5Wj9lWSZPU3o2TGRlNk5tUG4oTmNSLDJbPXk+dzJzKXUsb0BoKWxOcCJSbU9kUjxPfVBQelpgejhQMzlwWm9qP0l3ZSk4JiF+KytEYnt1Kl8rL11tZiV6S3opJXk5V31L'@; put 'QFhgJV91LE1ZTH4ue2J8P0soOX0/MUh4UyNaMl18bFErQWl+eVdiTCV4fF9ePUhNVyg5Pz1jVGciRmVQJVpeN0BJc2YmfXVEK3hKL0xJKFE+UH04cT0rYSxVKk1zZiYuQndoaE15ZnZ9XVNEU2pQIXxzO2EsUT0/Z0YsOUh4X3tKcndWaWk4ZXxWOUJqSFFLKngrLFZSZ3ZiOH1eJExeMyprXzBx'@; put 'YXJiJlYzJXJNUEQrejA9PTlAZyYkK05gaiF+X1QjTWsiLl1hTV1eeHVqOlJFZmcmQixMVyltMD1YbyROOnJgITtVWGxmcyZyW3p1cUMsPXc6IVZgNWpLKlNmUnhXZnhodn0xcGE7KV5fPEE0bHE7ZDgvVjVwWStuMSpWXjokVm9sYXJnbWxJPnEldSxgWHE8d15dPFQ8LFojaTdAPWEzKitqfUxT'@; put 'bjF0Y2JNK15fb2ZtUjZtNjAoP2FqVSx8ISlAYiEiJTF9Tj92KnFoW0o0KmIsOSY2cXRRRT1kXiEhWTM8YnNsIyFYTTMrRHBmUmtoXVsqanRRa2hQK2R5UyMheGtVXjY/YSI1ez1mVnMvKkdSPj8hZ1VdJU96VDI+PXdvQ1Amei5QZWoocS5IOXt8QDI/V29peDQ8IiVMXj5FZV42QD8haXp7bD4y'@; put 'Y1ROIzRaRV9fPTkhP2tEYGtTbC5PUU5uVXc8PSNTdTNbJWRmMjZsLF9kL3dxVEo1Z3lDJmJlTyFeelppQHA9W1Y7NzxeIUo5eTtUIzUraTg/bVQuP05RKEZUUndfWTM8NnBzcDhwWHNlLG9mYW5ZYkVNPjN6ZV49ImlXXjlyfm5tUHdyJnlaOWVsYm5HZiF4Tzp8VHVReyQ0ODozb3ZYQyFqdTlw'@; put 'WEglPklfWihAfUQ4cGZzP0sxXUFdaSZoVmZxIXxZZXQ3OnhJOE8mLiUsODckVCNEb2JUXz9ULkE+ZSxGPTZuOmxLfXMkZnwubjU8UlVtb2BJcn0ie19mKzI1PDhWP1Z4ZVQ8I1o3enk/ak9KRzFyelouaXY5VU1raHBZZk4xfDgrMXxUUmxrdTk7SDJqNW16UUhJUShjP2B3QD1fWnltdypxdD5y'@; put 'VVZ9cDB6KCYqam1wVl5wZkBeK01KfVc9MU4/WV87NGY2LFVaMkgxR31qWXFkfT44Kk1kTmxreik5M1AmMkV8bDNmYm4hSjk7MlQwLCE+Vzlpc3wkJCtycCROZkAxP3ApRGh+JUV5WyF2a3xpNyxoVHVxNW1Mc19ZZTwyfXFtY0BWLGd8JmVoYHo8cWtwPCslfCNYfnt3WFBjfmV9TCVoaVleYk4u'@; put 'a0NgbjVwUFUxYk92WTM4UypFcU8mcDcjdUBQSSV3RzVMaGVyeFp4SGZ6d3orMyRnX1kjXmdiTWJzcEpjfjAhIU5eW191KSVZPyU4YFNjbjkmJiplKHhnJGIlfUZ2K2pEZypKTz0iJTV8MTNrcSladixZbl93Uj1vPn4lPyU+PWVvay47SjI1NHA4cjdURDlLbHJOdTM8SW4yRHx3O113VSoyMT14'@; put 'O3h5R1BkTyU9fTo1QiV7MX5wOX1GIzl0cnpySytiYnB5MyYhOX1rKDMzd181Xjt4RCZBUXtTbXBQTzw9MSslOFJlQUtVfnV9WH5BJlciSnNRJSFJZ3BUTVE5fGZwfGUsQD9hUGYwKSV0JHpUcHBQT1clXUVQUX5mRF92bWZuNyxqZkExTyV4Z1RtdlErQlBkT29yIVdgbT1HSz0rSFY2X0VgI0px'@; put 'RSl4PnI0cG0kOSQjSDUkNCRsKnteKz9lfSNxd1BCPnElRXh8WTgmSTA8ISFIOEhUeH1fQjBwazw9OjREeUkxQyUwOWtgR2Z8e10lOUd2KUkxXypDcUNROEAsQHteZyZTPHA3N3o5JGROQlFuZks4ZCQ+KUZsN2FPYWBeYV80PmIxVzlwc3xJYV9FekNQdVl+UGghOX1lTjtsKFFjQEgxLiV2JD5I'@; put 'ITlQWitRbzVlfEBuXmdEWWFReCE0LGRiZ21SZVJuS2tRekRUUCRXc3JAOjAiLE4oT3IvJkkwSVF6YWhgcmZqYE88QT5ifjY8ZHwuQEUvZCxXOUZ9TEo7andeMDV5bSwlWG00UEpHKCVIX0JsSF87bnopSz43M3kwMTtaOU9nQHBQYCxkMzZjJE9lNSRtWkVnUnt1cyJyNT9gWVdyNT9iYVsrUTQx'@; put 'NntHa3E3ciNzNT9zLDx6KHFBYEhRQm55ZTJiQz51IUElNHE1SnxZWiw1K2VzcTk6allaWD08RSIsXWllfFRKLmQmOFA7K3t+OWYqKjszVEJ2SEA0SmhAYFk3O149WUAqcik9MVRycFgmbiFxfVFgdXlCaEdiUkNXKjF5Zn5PZUtrNixPMDROaiRtfig/ZWpQQGV9Z3w1S3h5JngmeCZ4NFU5fDQp'@; put 'IXFLfkJRcX0zeU16dkdkKzZfU0wucl5vaT9AKzwvfWZZcWVeZG87OH5fcyVLejwvPER8JF1JRmV5WWBdQy5tYHMldyxUKD56c2YhU31wSmtiWkhRO2xPWkk5ZHFrel9bTWVMJTdsbXtzJW55W1JwdnxvMV1fYygpSE1zOTUzbCoiXzE/fG9ISTg1aklHfiYwZTFyYF41SXx3K3BrRFZ+ZyRpJVI3'@; put 'O04kbTElbX0zVTxEJVlWJnIzZjRNZmhtV1glVX0xSHk5VHJUeWAmeixqVF0lTXoocXI8QF56SS88SCY7S0coZH1yKjp6cWYkMD9dZTFLaG14TyhAX14vaDFLaCNaX1leW3NtaywrOHk7VD9zTiJQZCY4cUlfWlBfUiwyTF4xP3NOZ045XmQ+KStbIVBndExQZyw5SFE/X3csdVN7ZkIjXys1OF8r'@; put 'N3s+PTFxXTtSRS5WYmdoPE5lMlk7fU0hYSYsYUJ4cEpIbiNzN204QEBSRk83L3lAQHRjT3lmY1AsZXlmY1BMKlksLDhBSS9uJW00UDJZXSRNKEVKd21VSWVnPElhJCRSWSVWaXlte142XlAleWZOa09nejJGJCgqRjJESXBmJVJZJX0/YV4wcjM2QEgmVTYhcHskKWFeI2FrLlAoVFAzY0s4ay55'@; put 'MnI2QTI0TTFHYk1ZVjtsJVFQWj89cXklJWwkJmVWWlZiZXN4KU96Xi5ASzA/OFBYJTBsQF17SX1oKD9PayROSHE7bGNAUG1hLEpvRWdBJlVNUFp8PVopOSFyRzBlOCtNISspOFpbcCk/flVrR2FOT1pWRE92MSlFRmVqMSxlS3BAPWY4UmI2UnlVb2YhPDFOZER5VW9ue3BOND04Ui5qM016ZyxW'@; put 'QCtPMThSLmpUZyJORyQqbSh6Nlg0cTxPKHo7VT9afGRieSFhJiEiOTtJYHVXVmJgeGdMdE0lJilJLFA9NmVXKzErL01kUFNlIk4mcjlQUHxKJEU0NUpCYVA/QDFBMHFmaVA8QDcueTx3Vj9lWSZAX2QpW1Z+JHg4ezosM10hUjA5QEZmTTIve1pRJmRMJSl9TjFePTNhNnFhLms4Qmg1fElUd0pX'@; put 'elBfLzttYXJ6XzZpYGt7bWBvPlo8dTl4KEVZbix2Qi9HUGRBJm9CXSUsc3pzUHE0TlpNSElCcUg6SVBLVE4mOCZSZSY8QSZ4Zm4sR1FfZGJvYWoxaUElTDI0eXQkXS92YUtbLDVgbmhlZCs1ZjlxTm9sNkxkQ3A3UEZJUnldYT43WSRYWiJ1UT84OHdSZThAKzArWSMwK0xrK2VtUXdlPmlZZ0Em'@; put 'bzxBbkNgIX0oMV0hOiVkJmVoK0pzM3YsQ19YPVpQSiZpYiFzQSZueSw7Jit5KXwudSRXYE9nSl87eCJIJnJfKlJfNjApJSoyVyZAY0QmVSVCfCYvWSRrWWFuI0owPyZRKz9AeDohd1BCPk4sL15LcVtLPFI2LEJ8eiFaQE42bFJZczV8byx+JXYpI1FLdmEsMmhdcDFWSTxMZn40ISU+SHRRIzpk'@; put 'LHAwellsVGM3YixjP2ZvRjFEPkk5ZE5WbkBFcGFrfXpoRj1iLCs9X1o3O1JsIkBNKGE/XVpoVC8oQnxQJiFJYF0wPmw3KXU7XiJUQklNR2VnNXxYMS4+WDEqJTtAIzJhSyJQQlc0bU14MD42NXsja1k7a2whMnsxQTRaJjhFP1RtM19MSn1wTV5oXixhR1NTRXs7SF9FeDp+fVM0bUokZWpgKzdQ'@; put 'MypuaEBfcHlvZjFtdXhmbkU/SWBkcVZtJW04K0YxMmpYJlpSdztoMCw9Tlk3OzdxUm15OVUqMCtad3U5RXxFbWZIe1o3OzZfJE9kfX57YT9EPSV+ZXNleGQkbHlaMXxzMjleJjNoSzk6ajB+UGhtWUhoMyk5KkFNdClsfjdHMGk+ZV82NiptSHBxRzpHXzZ3UV5RQmYsdSpRJWw3PHdPJjl7WlA0'@; put 'TklQPHJDQCk/XitiLF4rWWFtajp6YjlgYzQ3cTJAX29HKS9QTmBpblBMKSFAU2t3ZmRUN1QjZW9Oe0lpLDlANjhXeVRtUjZ7VUlLdllJPlswZm0xb2RvOyE3IUFJKzVEOWNAW2U/MXZaNE9namgscjd7YWgsNztfMS5fck53eGNoQDslMFppMjluUGEsN3VZPW8jYURhUCFqSjVtUClOLjlMXkdR'@; put 'OnJPMUtoL0BlfGpQc3hhUGdSU0ZBfGtZI0t4RDpYXWNrMTVEOltOQDpAQF5hQCRwRHF3XllUZTN3YUNeLDxwODx4YGlmSzwhTEZrO0o4LlgkNHMrbF17KEVgRGQ3NyQpOmpmclRGe1llPEV5Kmk+JXUsOWxDJlZgZEtKPnhUN2omKCVIck01dUExSCsuI0U/XVplZlR7USY0OGYuM04qYSN7TnZG'@; put 'V3lgbzppNiVPYjBMKTklKT94JDldUzhwSyNwMWhqXntLaE0je3A3Y29Oa28hQzlwSDIvczkua2JfJHBiWFV5Vn1IJXtrNXFtN0koaWwpSmNIPVU3LGAzQzI6enV6MHFlO3RUfCVGekZIQmRBOmFvJHtwdyh5ciM6ekxwMCVvTmJYJWJZJjZoX2ZZJlhDIWooMjh1a0swYEoqaFpPWFR5WDZzdyIl'@; put 'Zk0oZU8mfXtPe11eOzZoKUJiMVo1bWtQMyVSLlsvclp3UnYpLzs9MUk0JHUqdW4zL1tAK3YwRj0xME16LF5AK3YwRWBhalArIz16WjklKE1qXjtkT1FpfTJ1bUt3K04hQ2M+diU1OnB2IyMyRFYrPEEuJFM3XmVzYWp6YFUwQUUvKyFhdTo9M0xKMCxeZj9lKk03TDR2YT49eUdAUURtWm0pXiVI'@; put 'JFo5OzxIK1NnXmUsbCQ8ejFLW3QkQC85ajZSV3pgejxpU2JpWjVtLzl1cTxWUkQ9VStJfkdsXiNyVDV4UGU7LFNPXlU8bExRRD4lZ2A2PH01YGImdiRNJit3Ujx5ciNKV29KUHclNSI1cixoXXhaSUp6PDklLmQsMGokWWAlNSFMVklaVz9tLHFuenMmdmc8ciViP2U1QFUxfSRWYDY4MGpQc0xX'@; put 'PzY4bC85MVV5PDckYTJwS045SFBncD5yKyVITVBtUjBaJEo9T2cwQFlmQzdkWXJZZk5WUEtQZFlpXnA8QXBwQFhheW1JZFR6SSQ/VjV3M2RsZlR4W1J5VmBnb3FkfSlnb3FRUE4rKFYhTko1ZFl4bS5yUlc/NkMvQCEvajZSa3B7ODd6P2E0cWpzXS5EXSVMNSt0WWozUTtzOl1VaVR7UCs9ezZV'@; put 'cihWfVBOKz8mMDA7ZHpZNyxBYFZ6OnBkdztkaCxMeiQ5ZjFDOiNaOmVPZnE+dUhYTWEsTToqO3BofGt9R1VeLyUpeCs4TTlOSVshXj0xSV8hXj97d01vOX1oNzRqI1k3SjBsMmNVZXNha0h9P1M4ZFlfJVZmNEdeTkNbJF1OOykjWTBdVkE+aGxPMW5mSTlVLGdmfjhYNmZyKGFVYEtFejBSVz82'@; put 'c2w5UUpsVVAvOnhUeVNfJXRAcDB+XnwxYS43VnpDaT0wNzxZM1ZOJjolOUA2NURSQTRgYlBFLGY2XnM6bWNffHV5IV09VUgpOnp9WjRiZCQvO3pPYjBIQG1eIW89S253SUp5ZmlofVZTJUFJVWAzOG1eKnIucjlzM213PSY/RHFNVXkhSWhtcGpQbGtnd1ImcU0uNV86WSZ2WnB8a3JqUDEsaVRA'@; put 'KXYwc2ZrJDh2U1YsP3BqIUolISNKa31QblFGPUd6Z1I7PiZIeHhYfVNJPkhnZ2pkJEhUQllIJVVWay5lczFRWjA+cmVwd31JQDR7Q3FbIUo+WT9yPj5XYXNVVk45ZGA2L0xeRW55KjVfQCE4UztsZHEvbTVnY1ZNUUI+Qk1ocW5zOnJNUF5LcHZFL09tMylwPE5ANkBoJFUudDlwRldEYnM8UyF4'@; put 'ZUlkeilNRDlAXmZgXj0/WWpUY1A5dk8oVkpWa0YuOyFQa2NAbyEvezFobDhhVGJxX1ZdZVtuZV4wMDFLUFZicjhfI2piRSJ2bWk7WCh2YUZnVmVxY3I4X0AhT3ZyKTNLUSYkcWhge1V+ODg3eCNTK1ZsLlF6VT1iOUNscTIrJnpiJlo8UCtXXUZ6ejBgdz0hLzxkcmssZnspS3okQThGejx6JHhz'@; put 'ek0oZ118QExdKHE5d3dyUz45aVszLDE9T2ZWUnp5UiRkKHEweV1sak54KCthSkoqb1ZIbyo/KnpaKXptZkk5WTp2WmJyN3FpbyFKRHhNYjNLVGBHQG8kVV4lfFJmb2NWYUs4c28wUmtSXW4+VEV8JVZWKlloW2J4YnJEV3BWPVZ2YSwjanZeYTw2M3VaQEtTLGFAWDxkZ0xqTDE7SC4xW190PHtL'@; put 'fnVPKD5WdVE2MEZfOFZTa0NQXypSJiVZVStMUUJoMWpkcSF8Lj9NNjslWkNOK1IhdVEjOClyMSRbZSgwMFRKfURxZThuPHtsSTxIX0VnYyx5eX09MCtGenowWiZAckJZYmdwfERxdHlzTkZldCx4JGZ8b2YjSC5qditJWEQld1AkVlU9R28xX3s/Zk1JUCZCRG07bDV7XT0iaHUkWGhPXih4Z1ZU'@; put 'fXkyTWpgK0V6RXhPXjhtbCQyaCNTO2xRJVc9QkxkJCZARCFqczI9WTlKJDc4bkguRlhNSEAxMGRgYmUwIShkMXlOWVFlOXxTSWJNeGdpP0JgWmpyeTA5Z3dCSygpQkA2bj9tckAxPz9tMlBuMFUxeSEsPyF9PiF1M0VvZTt+bS41PXp9angrX15LalloNSxZZjo9dGAkakFWfHtYVFkmbU1FL1Z6'@; put 'WiZlamk/Vl5Hbm8wYTlJTFd2e143VjhHNUBaK3clPHpreGVJPkBuIUA9NU1YcyRfQCtySmQkSWg9RDUsfXBtLzJ7e2tJOH5SLDxaODUpejBhUThsXXVbd01nZWFVSygpVzErITddZnE3cWNURiMuSj5AcyZUJU9lKT9GZi9uIjlAezxGNGxoUElyVVQmMEptSFdRJjdnYiYsPztSVnJ5KjFJdj1E'@; put 'eC5aYD0wbVJnVWZfWypqSElCX2JRTSszZ0FFRnklcVkxX2p7XnheZjxac08mOTNdUUhsRCZsKlZ3IW4re3Zabz5xa3hUMl9XTTAsaDFHajJeSl84X0AheVFBJWtweWUwPV1aOSYkOXl1eGgvPjRYdCgvcHdQZnNWZVZgVD1FZz5pZzFyUXh1REl8STgsQXEhSks5JnJ5bFlnfm5VVH0lQTBOMWIp'@; put 'KlNESW57Om0hLHUkW2VwQCs/OiUjXzVqfnB3UGAhLnB3UDBwSEl4PDA7fSRmJnpweXB8bVtlOCxmd2RvL1FkNm9teTJDQHIqbWZlTkU9aiRbTy45eyNUZld+MjA2PXN6YCE0VUVgM2hVbXJAVSh7aWd0UWFVKGAxZSxjUiNWWlBZKkdkIk42MyJ4Mj0/fSVqVWElLClxOjkhLDBoT2UlfDdHYVFF'@; put 'bF8uVCZ7ZFpReCFgWVloL2prOG1re153bVF9Wk5JckprQl9Qck1oV3prXUFdI3FISyMpd1JTZVIueCwobT4xIl53K2k4IywxaDFAazhhMTA5ZnJiJnVxZURrXmxrLytEbiEmdiU8ekpLK2poTTNndT04USptNj14aGcxMykmeEV8UV4+QDcsTTFJaFkmQTBGeVBZb3E4LDdfWSZ9c0IuJHxzeGBU'@; put 'cHZEK0hodW80cHM5Pk9nTllWaGBjdWhSZWpkP1phT3NhOXI8KlFpdiQsZWAmUEg8UFkkK0t6LFE7fVteOXU3MChZRl87VVRsTSVXczZ+fThnV0AlSTBWNDNtYSN8Zzc8TU45LkpQWlM5X3V8YToyPjFIdTkiLyg8SD0vcEkxNzJFVD5uYiE0amExI1JXejRLOVE6WXd9OTlRJm5TO1p9MC5kNG1n'@; put 'Pyk7fWY0OH01UShiPyZ4SFAvU09zKyUrUFdfQF5wdkhZdFRteDJwVj0lam53LG0vTCJIdilIeDUrKCEpPU0he18jez94I3tTUWk4JmxDOVlzV0BFR2V5ZUlRJjtWOFZCa31WWF43T0FyfFooYD1NfFNGLjl6ezZAI3BTRWJ4cUFvQ3NHYEFAZDkjIVgxZndYMUMjfW5aZU5uNWFDYEArK3wzbHcs'@; put 'Mm9YXXsmcVh+bThwcmg6LmRgJVJpVmFiblJabUZ8LjB+NjJxaDp0X3BqZFBNQCh3TE11WSo3aFlBb3tfbCNmKkI6IWlVLDdWdEVUeHxOWj0iJTh9bjNjZ302YyVlOHdQMFFkPmYsImdIaFBoW0BePSEhckUvMm48OF8lallyPV1ucCYlPmdvOWI/WW47W3gsUz18Xlk1eGUsOGdJX1BYc3VKOXs1'@; put 'fG0kTDp7YWhUQy54OXMkI0hWPHdfcGo0cDxWYVF4ITZSbmBPaGFuVzxQaD89PiY/IWJuKlBRJmBhe0ltYlV3Ll5CYDVUSlk+Z0YsPDJZUTAoPGRPUSYpRXgjQFc9LGFCeGZmNHVDeFZgVm5lUGhqM2hsalA9TTE+TzhwfiVMdG1EP2dqTkNFLDIyPltwMSxhbmVzbTtMaDolJHhnZC5dQFM0bXxt'@; put 'STkjMiIlfV9+MHk5QmojcX4wKSV+XnhlSzhRKGFnZWFTQFNJSDE2PXUke19vIT59bnAiSHxtalByKmplSj5FcWRQU2VvXk47YVFYQ1diTm4rSjRqVm4/bXRxQDtSRSg4byRycTsyU2d9Xl9tSGhkJGVdPSF1UUE+dyQhSjwyMjAuXlklej40PH17SCtzKkdyeyxkQClpN1RAcnNOZnM8cnYjU1Bi'@; put 'bzhyNTUwWTpjNClVMVlvMi9ePUAqQV03d34sRjF9NSpPK200ZV17UV5pMCh3Wyx8MFVLRnFVaXI6cjBoVk5VS1JKWVErOFFneTxiXW9NQFAlQn07Pi80ZUBnLnBrWEYkL11oKFpPaTUpLkIqVVQvZ3pBe3dqfWsmNSovbj9IcSN0WXYsd0FzQUlrcFI9dz0uYTVvKm1xemYldCZfM0oqdyRFbmZz'@; put 'RlM9LG01Wnk8KCl2OWJVSFQydTJiQUcxOmkxWyVYemdGKlZ4fFVkNVtjSGJaelBGMGJnM3RUIVdtVUlSVDYvV1dHMFAjNkhZaFR6bktjQD5OVnpNOHgmXnExLEwjWzJTTjNjRzFQMi9UUVZQJT8kNTJtZkxEIzhpenBdeWYjMFVLeyFbXyRlKmhFfG1wZGJZeHo1PyltXkBEMV9LIk1QVlEjPEE+'@; put 'Y2JUKmR9MkRvaFRHIl5jfVlhbHhkR2ttKyYpTH07aDhfRW0sN3coSz9Ybnp2SygsdlBXPSo5d003NC5OX3ZiISwxSTNCQG01QjhXPkUsWG8wIW1HWkswK1V+OHBiJDRmdSFaPnVmY1ZdfiUjRzRMLGFKKltOZFo5TT9QXk9XOSNfLy9XVlFANEBCUG90aEc9W2k3Kmg2MD1gTkNsdFBRLn0/bTFo'@; put 'LzlqVW1fZCtyKGA5LHZiYG9sZHNGRCN+Z3F7figiX2VLflc1bFc8QnQobys9MUIiWzV+WmI5NDhmfClabWxFXVQkODAvaGcsYUFgdWQ4MUM/MFBGOUw+UnRQZksrZkhvKS5FIVZLWEJWN25Vdk1uJFFaKn4yP1NNZmBbZV1+PXFOLkdMcX5tem40YVpgVUF0MT1HTD9+cn0jVEljLihYPi9LQXRW'@; put 'RCt9WHpdfmtwc3wuQn59e15oKz1+ZXhWTFhnOyRHSihaamlwVmd+MihTRSVAdzlrfih1Zm50TUt6R0s7aGU/dH1ybXc/VHMmWjwhMjA2Uj4ofkJ5MzpJOSU9I0koQ0JITlRJMytAUyQwWCRzdXsmX2djYT16KjBbTS4leTlgdyVZLzN9VlJ6RE92OC5+LF09Mjt9V3pzKFN0IyQ1fHlodWB1KG9Q'@; put 'NH1wWHc/cSU6d2RuNGw3Q307UnlUfH0qJX52YSk+a0BQUWxzakkiSm1+VnlyKEleUFFiKHA4M1E8fF51WlslXUltcFQieTE9Mis5X1d+ezRJTyJBNGJbRm1NUU9rN2RjWXd3RnNXWFdjcWpPZGNXcXpESFVZbU5WZC9gQ3U+MTt7T3puUkZLPCh5N0YvQloqeFc3QyZveWRZKXdid1cqZmtSJn5n'@; put 'OTx8bntlc0ldPHNqWXhbdTAjZ1s+KmVifGg2VFdBMUome0BgZVRoWmBURWlzIlAsbyYqZzkzfF5TXX5RJUZxVzBAQlVTLy8kJTJ9bXAmc2Btfn5bO1g0fVFPJVdjTXZhTjdlbSVmfCkxPVgxQmQwTVc7QkIiLnQiKzZ9O2QzaDFUO1oubWQjZnEiSmtNJHM/W3p5PE8uY1Z+aGxvV0UwJHRyXm9G'@; put 'enw9KXF+K3VjX0hIejBgZXs3QGJnI1IuenMhRS59aTI2cyN4S2NdWko0emBAZGZtKzc7YCF1aHxhQiN+IVBgfnlqWiMzREV4Q21pOV55STU4WWFATEFuNWxTL1grJDxpdih+RjcrRXkobllMU2VGQTRuZ1lpNCFtPlE/L2o1dGs1WiQvbWlsVHM6b3JUfHY+XyUrfXN4JmBVWVA0T3hqNXV4YWtq'@; put 'WnhiXjk5X25gJGV8JHdZRWc1Ujt2SUEqa3Ira0U9MGBoQER+V1NANFczZEBmRjhlKTM0fnpoMlIqe0s6L3NWME0uWnhZVFhnfiNgI2BfR0BgcjNVfl8yY1dfJW1WXyVzdkoyXTVZTUtDPSZiZGRHeDhJflJASHJYdEhoN2RzL2lQJG51X0dyKUNyOnp9e2IhSlNpKmF5YzxWMGkzZDhZNmJ2N216'@; put 'Q3UwcEx6JlQ6OFcwb0JraXx6Ri8rPWlfUERCfkdyUzRNe3g1VkZRSk4vbHg7azBIQnlrXyM0Ljk0Tks/KDYwQGkiV0UyTCImWzNxQE1WeihCIkxGP0dLckBrNGkxKW5wWzR+InMoenNbfnA5eWJFKl1kbG8+dSwjPSxYWGtjNk1PaGxvXVYuejR4MS9OVToxVCVAUDlRKCt7MDsjUnA4WF1NZV1k'@; put 'SXlDTixoWSsqKkZ9SW9SKjZeeEN6LHhlLDcjRzY7aylIZ1JzYGdVO2hDXWxnfkIzOGhWcyo9LG5rdiYkd0FpMEhuaygxWklOenxSQCxZdylXalYzLiQzMWl5RUUyYGpsMXJie1d9UkdNey9PaVRGPU5YPSR2cUUoMWpLTTZadHZHRXpFQUlYfVJuQmZbXV4oT1Qyayk0ZE8rTjArbTBKeS9Xd0kw'@; put 'REIpZnAqfEp+WW5oIl9mME1ZJXI/b3VDWzZlUXFPM1FOU3drO0wiSSQzXX50eDpVSj80anxSTUtZOTRldng+Ln5JPF5MTCpZdzUqWWVQZC5DWztudF97JGRWVSNuKGhIVzsyP0M+cEJET2o1QHJeakMyb1tzU0wubVNEX05TTC5HNXRnK09QUzw+RUBPS2xkOjZTYWwwNi5ZSCU3VGdRZ25VbT11'@; put 'Vz11UixANHk0ZExCUzplI09DRlFvQko7aG47b3crJH5UQUJuSiVsVDNjIz5vSHU/SjE0MnR6SW5KJWx7dXRnYVNSb3lYYjBJUnBLdHpvTEc/ISlJVGNVZ1RtbjRMUFlNKWxVby5adENyNENaQlNLR09rL1o0IzBMd28uMi4qPXRCNkF4KmUlNltlL0N0eEdaQlVrZFs3aWhkaEhqZzE0OHRWXjJX'@; put 'KyF4PTNudnVuRThFQ3lYLzdAUFtVNm5NTXdiMzJTN29PJXcrUENsTDM7TSU4NCI0X3QrLklyMDMsTzY/RkpHYltBe0RnLlhASFhTVWYsNEReJSUkcFV9QkZHQ2t7eHFuSnUhZl9PVWtOYyxiSSl7KkdKXSJwdEs2XSJ3IVJdPjIrJE8veFUqQnNDcWJ8KE1EJldNd3B0LkBLUyVSUWEyaj46QUAw'@; put 'ZEJ5QUE/IkYxQUBqZzJXP01ETWM2YyQ8XVUzST8jQlh5SEVVWWhRYjlubmoiS0xgdDZpJWdGSEBKekM/Tmckb0FZQy9gbm51VXxVcD5bP0ZEdlkreit6TCl4PVdVV3QoQkR4RUVBNmckY3R5V00sZiIzSSpicj9DeVcveW5sTl5We1okXlVjOlczMDtRWFF7NnMreyosV3hDXXAwLm5naDRBW0R2'@; put 'VlB4U0RNMDIiSW4mOjZlWkB3XjlBSSRjKDNGdjk8PW9AMlZ1Z3hLRCQ0Qk47b1M3L1Q/L0ZNOjZadjlnPGZffG5iTnRmRS9OX0ViNDcvfTlQYyJ5VUZKOSFtb25PMDtJUytUQzM1fTR7dCNCYH13QHo9fj4mdVVDOEtue0dFej1iQFEiPWBSSXtVajowYnt5eEciQkJgMFV3Z2pjISsjQ3lJflY4'@; put 'Ull6cC4sPkhCSEZOMUslMjQlRy5ULGl7e0pvQ1tzXXddZE4rRDlgJmdoTFdoZmRFQGQjd25vb2tRRzFZemFbcVU6eWdKcGM6NiJZOFg+LF5hZGp1TU8jaGtqb1MsdFlVWyl1dGJ8VjhvPVRCQjdla25jPzxJNVp9TUZLRT9mQkhGVltuYnEvRUxuT2EzO0lFUSkpfk1ESz5UfChCVXwodEFzbWBw'@; put 'Q2BvYmUvc246RXdhbnYxeGQjWjR5WHIpVGFmSEg3IS5IVTRCM0NqZlAzI1RndDpBe0lrMEcwUi9GK0Z5bz1Bams9VSwsT01VMG54SkBHNy5RY1dYS057RHtVSEhZQHJaX0o4Unp3TG9PIkdBT0F9VUYlYnR0YiNkXlNERlBvZXpsIkklaj9DS1RVbW92M2VvL0RgUC89SS5eOkcwI1t2VylCKEdJ'@; put 'Tm9XdSFlJVhrVzNhemNGMlRxSzk+MU5GRzJhR091Kzh2ZCJIa09nZk1RUjgkPDw4Zm86eG5MdTBDQWVuUXBSRls9Snw+cUMsQS5nODxNT3k0az9+ZGEzW2QmNkczP3R3Q2VpUEklZ1BwJSRQWGxDSkV0aDRzOjZjMnt4PjJNdUtBMVBNXzVaVGM/eXtIIk9GUGlXWWs3a3BASlp9PSFwNnFnfTJT'@; put 'bDpSQF9XNENbZChLLl5XL2l0eWN5VUJfcUM9dn1NZCMkazhuL2ghaytwczNAXnMrZkh2al0/O1BJSiwkR3RTRFA7WlE8VFR0RXV4R0oxcy5VL010REIqZFZoVDNAVDsiRDQ/TXR6XXFPL2A2dyg+Rk9FITIxW3pXUEFTeE1GXlQ5REwjXzJFImlZLlguWGJVWXc5MGgkT09db1JAa0N+MH08W3Av'@; put 'b20ifUozLF1UfFZPMTtec25WdXdPTVIua2spd0RxJUwpdHdANiZrJS45bnxwWiw+dF8wfXJbenZiSCVAUHNSOHo7UHoucW51VXxBKlQ7V1d2TUZVfSRnR08+WzRDQ0J+ZzQ7cy4+PkZYME8wYTpgWW83VWpGIzRIYl1HeGIrKzxEOUEraSRnRyUmV25NYUh3bzg8bW5FIjRdQkolJWMyUDJPL0os'@; put 'NytEOnF9I2UyazBXPzBCR01EdmJaS08vYXRwTy9gUUBycEMuRFMyPFlRYWNkN2tAS08jSWRVLl49SmtEYlU4eH1NRkh2biVVWkBaQjh4KkI7bz1OL1RsKStKWH57V35oN2BpPU8zLj5BRUl0U0Qoalh6UjlkNGx0fTo4RHR3TC85VWcuYEUjazM0anV3Q0BzekIsNihbWzZANihbMzQzM3EiJURJ'@; put 'V349YiNjLz1bMCglQTJNQlMwPFFTYjRHdTVET0UjZGgjVm9idVd3cVlvWk9MZFt7e25VW1RkSGNLKn5WKjZgUG9CMGRLelQvKi9Ad2daQGkwN3dGNiYmIm5vQzBDTyRuJmo6aT1CRGFCQTR9TSVOJSRnYjdwYXVIN2grKENDKV1UTyR9NExSdGRSWiRPVmkwKFRdRmFGSFZjaWt1a2I2T0pMb1tA'@; put 'bUBzVV17Yzk6PjJBaUorWSpOSm9wTHxBOTBlRzxVfDBqQSE2dzY3ZUtvVSJwMltlc0dwVkZVKHlxek86KlpwZntPRHlUb1dYVUpzVU15Pm8wekczQ0QiZ1F2c1Z3ZyVbaEJJSDVCIWU6b3p6bW43W3pYTzc3NEUweSVoPzp1KWRxQCZAPUYwPCNPPG93LDVFTE5zMGJea1U2PDdPeFNgIzxQJFRj'@; put 'MyhdeWdbPkZYflBdIkR1W1BhSFNdYV0oJGBXR0RaTTlWTjEiWWQ/dEYvPFJJR30wYS9vNGJNWEdCeVlFcyRnMjpXQGFNZ1osTzssVHJsJUlLWSVJbEk3UDN4KE9CTERKRlpLWDdvQGpYL0tNWHg9a0BfTXU1SzVUSVtSUVFUQERCckVyflJRWzI4NVUxaGhKMWtuRT9HeXNASVlqK0l2PmdWQiUk'@; put 'QVVaa2QvZnxbUXdgMlNDQ2JTVWMiV3F0M1ZJa1IxRko9SjMoNUFISjQueTpZLzMvfSw1UX13JU4qNnpXQEJER013fHJ6ZDxUVlhndkJ2aHRWS0N1K09Nb0JbUFY0MiFmVEIqTkxPVU99W2JCLEN+Z0NLK1tFQXtkY1cpSSI1YVE1ZzhkYzR0LCtCSVd+ZF58cyU9KDg3ZGtPM3BANkNdUGlUbWc0'@; put 'bmF9Okk3RzF3R0hLUTJhcC9vWU5ZSjZSKVdGdz5lUlB1JUdvSCpQSWsvamwwbiVsbmcpNip0RT9DeFYsN003P1twWylJMT9KJHJZRVFjRT5FaylELE8vUXdmJW1ua1g6Qk1MVFRAa1JjSSxSd31DV2F7e3VDT2M8eTwxe3lOMU9PK2tvL0VVdDB9UjhSTEwkZ0YlQnR9Q3ltamQlZ2A+TUFhSmFt'@; put 'NEV3YXx5QjJxMmE6SGJdemhrKC5FV0BrUjlkL1klWCkhRiNSKjFjOHx4VC95L3kvQ3RfYTxSRitNTXNqfVpLT2xjYE42ND50ZXdITTJhKCgkbjpFYkdsSTohMm9fMHdnKVsxKFdGVEZkUGBxSUs4PWNAJkFrRFhIJU4uTmRvXUBYNXw0dFgsQ11KP2Z8NyRnQzMkWEdWLnAxXk49JFhNU2UjZTR7'@; put 'NHgzcW8xXkBVVVE4X19XdGAhOjY6aFZbaGs4PDA7KDJ1X3R1TTFrbCs7TzVLeGlJeEV5Oj4wQzZKO0RsJEtvJkxDUFl6ZUdQb0J2eHhhbVZrcCszdXllbmJTb35Ae0FCRUs5RDNqS2ZIa2dsK2d2LD9kWyNNSFouZENQSlE8bFZLKVs5WCRxZzhsVTFuTVl5Kj9ecDp7MlpYbEdaQkZLaW9hOnxh'@; put 'Y1dRSW8lQE1wI3ZucT8lLCksfFczXktTaj15VVV0dERRRjpdVWtmM29MYlN8UUkyeTpxbnVvfHh2Tis2XnpVQDZ1L3Y2RWIyOURIYi9tb241dClDPkE7bHhnajQiTDZIM3c3byFrKlRVcF9PNkhfI2NVTzd3QCJBcVIiSGd9OUJhbX1NJFQ1KzREKFZ7WisvdkBDLiNDcnI7bEUzPFtCdlF5T2dK'@; put 'UWo5Yy90b10uazNWOl46LnY/dChiRytIVSZ5bjBxMixuQTh2Tn1NJk5uK0RdVERxSGQlLzZQLyFCUytqQ05Ucn5nOCwvaSsrWipHKFhqZ102eCgyeDlyRzxmTDp7dj5ZREdreW5Sb3QsRn1bUEFgNWBzLlE/eHBiKndMeWZoLj1tQUIrNjVuUD4sM15uJl4iYmczLiV6cUR0QFpQPVZrRjNMWDZt'@; put 'cFQ6LktVdkA8SVdhaSlHSnMuO2JuM091KHdeZ2hkaWR6bl5iK2JXJWpxbkVrb1Z7S3tnSFVscy54bk8uWFdANFFnZkhaSTQ3SHc0Wk54RzJqVGMlcnF8Xz5vMENfWXUySHduY1oqP3xyek8zbnYmMjA9JikmYGpEMyM1P3c2Vkc5SkAkcnFzK0BMQDFRYUsxayRDJXEvNlsrb2tdVyJBJU8kY1Vr'@; put 'JCFucys4SHBLNV40LkolYitIU219QHpmayQuRnQ8XUxEX3BkJVpbXjYpVCIzJDMiYml0aXpTVGhYPUVyJCZicFUvKVpBeXZzQFtHWzJ0b1hGOk1gKlNRVVFeanZYejtSUXMuSiVJdkg4YTgoYGxWJSR2bikrYE0xbUV2M143XjFGSmhtdX1FbUdYSjZrJWAlWFFCd18xKStEYDdjODpgaGIyeEBe'@; put 'OUVycj9eIXhrZF1pcnIlM20lN2sqRlBCKFZCMC5KLD9sVjdvaEwlQlZrfjJpInZkZXB2by5KaihsLlFuLGBaL3xUTVJ4TSZmfVl7VTtgLzZwcmhHM3QhWVYpJDdrZDNVPEJsbj00SyVIVSFFcFJ0fG4za2QvNkdrT3YzUXpgITp5YmQlZC4uVCJLQnlJcll6YDosXjJ7NisrW08pQnBOdSR4LC4m'@; put 'bnE/UEJCQ1FnRiVdKHRBLlMxYmgkaTYlQmtKLzZjODZWdDNtJU0lejwwPUBbWUNBM1pHRUk6cWRyJENAMzR4fXIsKnh4R0pOU3B2Om9GOnhFfWk5dE55fDwmNixfVFNQO2R4XWs9PVRTLzYvKl9uTiIhWSU6cFpAazk9QFs8dW95ZmRFNWVIS0A5WDlPIzY/Xi5eUW8+ei5Ke1clOlhjQ1g9QEsy'@; put 'bms8QGcwaWsuQWFbTTNVSl8yIT1tQTtVSVF4PUc/YD9KSiM2MWJuXVovaiRvLkdYQzM6VEVbPjpUU3t7dHRRWFlbOk0yVF4/aT5de0RaMnRgYlJuYzg2YFVvPnouSnBSKFYoJi5eUW9tei8yQkdoPXdXJUA+OiNPaVdVcHpbTTMzdzZbJjM7cWxUMS9QYVJTaXlDVWYzdm88V1R2NiFURGtEWGlw'@; put 'ZFUsRk9gczN8N00/UV5+Wn1GISFUP35PYEVoTS9dflR9I0E/UWR+Kl12d35+Ln1lOytlKj4sflp7cF1oNnNXLH5Qe1QpL0NBIjx+en1HN1JxfH5Eflo6M31gfnh8JUtYNCR+eH1mQTV5JH5FcCJ+Il81UyJzan4pKmQrX3NyfFI2QXQ+fl1fcVAoaCJ4ZlpIb0E+Vz4lZGV+MjQySCFvaWNmLyQo'@; put 'NilfPUZ6PG88by40ezxVMDxveVdiP1ImR2NPY3BbNUM/YGpFQSJFflokXSZiaTErZ2Nwa256eTYiMS5iSU9kdlZFODV0Vz5+Ol9+e0JdQiI2fiRaTz07TWtIV1JlcWlXfjcpWmNYKkFZditecHc6QyF9SkBVJHJPUE8wUyFffT00dUpibXZSeXRXMnw4NXRXLjQ8aHk/KWh8fktiQSJpc0c2YHNd'@; put 'JDpzLlR+czpzcmVfc2lXaDRfczV+YWZCIklje2tQYWszSEg1OGVxenxjYGUvOH0leW1iS31hUGZnRi9HN0YvSkdkTjFFSm85clJMMyI3emJ2IlNJaCpmQXRTRGMyMmhBSWUkcXBzO2ZxOXhnTSRXVntrOFJ6UShaPkclZnY/U304KDohIUI6OmZZXV44b1VicStienBiUilnOj9XX0w7NGd7PDY5'@; put 'TWUjMztmWzZmQExdNzM9en49JndPZ2cqYV53Kyg9YFR1eXpoalQmZD09KlFwajJeIiQ1c1UoZH1KZltPKkAmUHVmcEpMeClZZnA4WXxCWUs1bWEsYT9xa0J8Ol97I0ckIV9JfkBdTFFgQFFePX19YWI2cEh5KFhnIThQUC8rd3FSZmNfQHNPK0lbR1Z3fFRLO2N+JXZQSVZyL100VjZgUUldaDlN'@; put 'JmNtWyZjRkFdP3pOXlBUOSwoXWcyfFdiPHxpTDFrM21ROlg0cExlM0tiejV2bDFiPnghWTpPVU1XRCVXJmdaVWxAKGoxWyxTXzsxRWBVU15bfUQ4N2llJkc5S0RxUUkofV1VdmYuaU17el92ZnhxNWlOQFMxZmVKI0JiPjZxOl49cj50LyM/Q05eVUdfZW85Sz09I3FXRnZLT15QVF82TjZkQGx3'@; put 'bmdAbC93I2lxOTtkUk1ZV0F6Y3hqVUUjbj91IUJySSV7JCNzNUtqfnZkTStEb1QuSSslcV9ANHZbLD4sVUY5OVNiUWZNV0hWWmYkK1VGdU43VktAdDxUJGJkaDJfJiNqeWY0IXs5ekhaZ0FXNG1NKHchMV9INWcmZD1UVE47LGYscCklPHR2Z01xLGZjJkxiV05yPlE6UGRPMXdLaDJOJSkvJXpL'@; put 'bG9ORj1lYEIoJUchM2Ewak99P0JzWjZ2JCkkOiVZXzBNWXlOJFNKWXM9O2wqXiFjPHB3YFk2emEzW1JDMV5TbE16VT1ifit3YngkWSZJK2tHTGIwPkldKT04Pnwrd2IyPiVQMmIiLyEvU00jOiUhWl5sel1TeCw/JWlidyF7VXwxbDF9Z00ha1tyTFl9WnppZjhIfHxmVSI9a106cC9mR3dgenBQ'@; put 'QCVRPTZhTnIvNkZ6YTFQZ0JWX20jWnBKfT1eJlM6KSFjJlFFNW1Acjc6UiFnUltwb2p3Lzo8LztNISZRTzY8XSNvcX07eFRZeDdGVnE+fCtlUiE/KT1rMm1kKjE+ZW9JMTwzPiNPPEczMWB6PEc2OWtbUTx5Vm9ocF5zQEpbcUAzVmQkOjM6cnchRUkyVkV+e00vaGksdn5JXXNsLlFWbipbaTI9'@; put 'bmZofmlEX3sjLjxNdWM1cyxDYlEpblVSbkBgdCtwa1hsTCVRPTZwajwubXwlbD1dez9dZDokYFRdd1YjZih0cD5RfGtkMCVPJU1eeCwvI3V5T2clTHopXj13Kms3ckpkJERWMmNBfG5VVnpdNF9kV29VJj06MlIuMWF1R11vU3IpN3Y+a35tYWhYZyRVMkU0VmBdUFpJUm9qQ2YsU3owM3FfWyJP'@; put 'dEAzPTZRSCZLPztpM2J4UmZPejApKl1eaX5jV3dATEwqck9MSDV7bDViL29bYjFdVjJHJmxPTWVlcys5MUJ2X3BtRyZ5OS9qXj1oUFpibFdJbWVWRiNaLlpWT18xWmV6RjE3TUtfaFNxe2llOGEsLlJiYXJnXS9fTUVmbCJkJnFxe2lnJi5zYUZgLzhAcy8xMGdZNjhqZGk4RFU2KVN2T2JRKkt4'@; put 'UHJnNUB7XjE2JFNaMHNhNjNoczc5OjNGZVtnKHptXWprV048cF08YmFqc08rKFtySHB7XS9wODZCUWgxR0hWRl1TJmNtVkFrN2g7a0VFVClnJW1vVE5fSGpKPlg6cE5PMUg+XT1kYiIvTDpiZGgmYzZNKGB3PTolSjhhSGdCOzx5ODN8TzUkNU5dKkFgOyRYVDc2W2x8JWwqL2RaP08xdEgmRGBN'@; put 'bilqa3w2Q34wPGprfEthViFbOElZeSN7ak56YFlvUi4iZzpYTzdNKGhiUnBkUE1ARDFRYjhfQVIhfFlAIiVBOHtkMDcvNjJhWzxiYU9kQiV+TkIuI3EiZHBHSSYvODVCUWhPcjJfNl52SCtRYEkmRjVWOWt4TXUpU31AOEhxNlVBYXIzczs7Lno5XVZjfFdEUyNNcU5yMl9jWGE8Si4mKXN0d2Vo'@; put 'c3IwUmtLfEU6IUViOiJvOEA/Und9LDxDbDA9ZmBLUSElTGFZRHkxR3szPWEhMFA6Zng+MUlFZ2NhRmdzKjtkLzteIT5AX2c6ciFMXzw+cCxmKC89VXAqNUQuO31vVVApWXBwPTRRcSMhMEZ5L3B6e2teTX5efDFlSzlkMmJXbHBvdnZxeGMoNno1c1l3MEdASGkxUExINU42Tll8a1lORFZPbzxO'@; put 'TDpCKCVHXk8vUUYoOnpXZkFlXWVxTiRSeSQiT1FpcjptbC96UGRRaXI6WntAbGpOSVdCL099flYuLzNdMU4hcWcpTWBdOzFwNWxqI25xX0AzQ1AhYzY1QFhOaEdkXyR1WDJ3Pl1aITFHJixpZiowKnkhV11YSV56THJRYXRdZm9DOVErUmRWe1g1JFBoLEkrVmxZZkloTCRZX0lAXz9bZEk4a1tk'@; put 'YlglR0U3L3gwW2dCNWlgVHpTXWg4VWRocz19XiU0VTM2ZG5OKypQSH1PZ2xLenNkZXVvKVZtdiw6QCZ2UlMsVV5OfDVjLHNnMU5vdyxfNkAjREliNi41fTozK1VNclFxPT4rNGcqOiFxfSsvTSVRTzZSSDgmPCsrQExSJi5TMHU5JWo3YXtrVSZ4KTg5aXs6WE1xIXF3IVhkWSY3OiFxcGpaMWVs'@; put 'ZlZfN0BOKEAzTz1iQ2JLI1p5Sl8wUGQyMjlUVipTUURiUUk+U2d7eTY9JVIuZWJPfGk5PiVAQjhvajBhSXNaSztzek9QZHVxV2RLZlQ6UD1wbStaLCg+KWtmSTVgUTdqVnc4dT1saiNAU2J6W25IbVFoJUFoR3xJLjtHanVyQGY1enojOSVFeERvIT87a1p9Tl5bLEM7VmIiLyhxNlJdPWE5bHJD'@; put 'TWttRzk7K3ghNjBDcFNeQmxCJHZndHs/UEpSWD15ME0oaHNge1JrKSVSITExTD1dU1dvIiVQbXJ1a1kicHJFeFUyUVR4IV1eJW55UnE0WjRlRj1wazw9RXpzJUIpRT4pa15DNjhiPUN4L3BgIXghQnxZPUgmZnFvVDY8XVVDRWFEfElJVnczQz5WXngsdyFHajQ4bmRYI35rMW1nX3k8cyFYPUha'@; put 'YVYkbnp7Lj9LaXYpaF0jcUA3JnxtKTZndDwlfmo+RylCYio7fk1HUD5fcj1mKFN6ak06ZnBmIUsoOVUuOXZ0O3ZhPklzMnc4ZEBFI11ZTHA9PDczeWM1K1loeTNhVmhfTTZUck9xUGBAdX02JkpLOG9qUzIqemFWSVBxcGE7OHcwPVNnPGo4SXFCaCEkcHFLZENdekZeJE8rPHNrez87cCZBZXYl'@; put 'VUdWXmU9emZXTSVRPT9Le3FfKTptWnNzZUs4ayhWJlAkcU1yNmsoUkc7M2xxO2RJSjtvL2JDXnlieDpjMk5rMmI5XldtXyt6emokfE1INSwse3d2a0FhIXBhLHYwejBQazp6elVeJVdsfjhAI1ZefDB+ckR6djpAYX5rO05vOyMlUi4iIWBNTE17SSg4fUBzZV5OcmhSKCQvVHZkd1JDIjV8TWd5'@; put 'X3Znc0hALDU9PDx6amhkJDp6UiFLOFEoIypHb0E3USglNyNObWtNb2RlPFNsRDlRZXFgcD9PbDQ2MFkmeWxibn0scWdISzA2UGlmcXhtOzpNbzs4cXgkXyltRyssO2lodHZoYiIvIWpabkcoVT1RXX5QM2NEeC5jYyVnbVhzcU4ydmsxSmtpYFdNOTpEX3ghXSZvV3M6Tn08bSNFOl4lO3xiSjIz'@; put 'bVo2ek1kRHxOKjQpKUFsQ2guWywxdGgiWlJ1IWxUdldyQG1qTkMuPWVfJld1flpbK0xFUDw6M1IjMjA2MCQ/O2U/UlkhQWwsdTtkKnJ4ZzI5fUxUMl4mTG9LSn1wUHloVkhpTXloVlo8OlNQPD4/b21abipYKTJZRiYxV2BoOEUveiNeb253PFUobSxxWUZaQDZjNSt3fj1eMyUjUlNlWSZOcUQ6'@; put 'Qjc6ZFk4eSErNXY9QXlqOVQ9Uzx4N0pfbTJ5VmQhNi9OMWJlWCVoZkN+aWhSfSVPaSxnKHBHcTh5M2RxN3FhOz10aT8wWj4xTDp5JHgjPGZHY3V6MEsoVllQRD50Yk9fUFRCdlk9e1d7Z3N2R1ZCVmdhT3EvZl82WDZzTHRKdHxlc2hFKD0kOHJ6IiVvLGJnWUZNVyJESzsyMFk/WyhDK2UoRUAq'@; put 'amZwTFlrYmtRaCEuXlUxNDhCPl1ifjZ4RzF1Sl9eZnhidlE9Yk1aTGVfWkpbVHFsT04+LDtBfGYmUUo5USQyYUszWWQmc05INGVOXkJrMTA9bDIiJW13OiFxeFtSUi5tS2ptXWVgXiZsSnp3LGx5X1ZwfWQ3fW5PK182Sl9eZjgzPEdmVnovSjVSXkZMdTk8U2xxWmRdWkklPkIvXTkmSyQ5Lzty'@; put 'WiRJNHJORmVPPCQrWDFLaCxaYV9IKFtuRyZpJmhWd3E3XkpGci8+cGRfRWtUXkJ2ZVZhelUuX15kUCQyPDtHb2xJWVZ3cWs1VGRDPisweTNYZHZTITFqb3VLITNwLEM7PCFbSVEmRDJOUE8odlE9Yit9aDs0VTRtQ1tfdUFuWm5wQCI1WyxxOy5KMmdvODp4MTAxaCNxZTtgdFslfmosJVgxTSxX'@; put 'bzU4ZnU8YjBsP29dXnw1Mn1QaGhpMCtxaD1pbCRYPW1Nb0opakk/JGo1OnRsMXx8bFptVm9lRGk7IXEjJV1gek1hemg8alJQZz9lck1FMUlifEBnfCxpZFRkTjBMLC5wOEVqY1Jmb0dWZ3tpeXdxczp+ezVtLzlJSyZ8RF5TLnFNISV1LDx3W2c2LHk8cyFESStwVG0yTmplQFpZeT0hcVRjQGNL'@; put 'bllkeTVLXjRWNmsoPiwseC9iV1BPKHsxK0BxaF88K2xJazFHYG9NcShxK216MmgoPixgOjVQbF54cEphfns3fDNhM3FyR3BQcT58Tz1ieT5gQClEOXplUkZlRU1LeERvSVJ4UTJRPWI/b152KHBNeWhWak9CdkpfIVNIKG0sW218Wz1qcjp1b3IpO2Q5Xk8/fk1FUktaL3dgJkVxVm5xbW84R25z'@; put 'PkArL1VaKGd7P20sTWU4MiV0VXtZeyRFeSRyKkBMMVlaeGYwKihZTUhkMjswW0F5JHA+TD5RUFI7TXFEcWRxJiUwVFcyKDUvMHAsPXlYSSMpYCY3UmBATD5SIXJeTjtBeGhsb21rUDdAND5MPi5lSTkkXU0rLC58UFpiKz95SUghMj40ZW8wUiE9emJoaGVNZ2gjfF5bbkFIaThBJikvSG45IyNI'@; put 'Xz9NeDEkbDEmcHhlYzswKiFqSTk1UHxAMko0bHRySztKTXE5ZV1BXTJANSxEZyV6fXBmcjZsLGQ5QCxpYW5FSS9mYGc4QGpSXWUwcE0oISpvZi9RZl84XTtrQTJyYCgjKH1HMWhiMCp1S2p7NWFbKUpjSDR9UHwwLylmeWhWZio3XiR9WkRzcEhxQUZGXzZheygjQFQrcWs7ZyM0PGpkJGE6SDpV'@; put 'MSFfVVNkQC9uMDtgR05xM3p5M35wNHBISWc/P1lbcDM+MnBLKCQhdFRaJHwjS3FNaHM9PWtRRWk7YGkuaUBLR3xCfko7NGl1OUJAKGVSPmZ7USVQJkZiLDhZJFZgY0tlKC5zRz5iOWtdNk9HWClacywmeElnfCEhaixpTjZSZml2fFBJK2IpWntCT05sTXN7WnxASCYjTHVZWihsb18qTXpiMToj'@; put 'fTpwdil6JGp6c1pLeiROeXI6Q244M3Q7Q25eaTJiKlZ6Ty9obT82OENmTHBPNkMoNUdZajhASUtGUzRORWpMcEUoQFJnZVJ7V2ZfPW88ZWA6WCEsflA9YT07cmU/PU5gemVmZioyaTFfODJscTBPaHZTPm4oOG5eMG1aNyhva3k5eDYhVDI6cnVsfFtFPmExMWYvanByKFNQPGd8WHkvOio7UHBD'@; put 'OVBadU5Oez95aWE1bXteU3txVD1ibnMybHdPMnpGNGtiJikrYm5gcXhbJXdjSmFXI2QkJDBObzUkcjN4ZWU7WF1EbGhQQlsyP0BsXzZGNk42e3owSyxtUXIxcFA1aWAkWVlxTWhZXX1aOG56ZVAlKV05QD9STXN0T086WjlZPyNxJlJEUGsqRHwrcHRLXiosOTlLRHFUZyRVaF5OOzteYnZzSjBq'@; put 'I1lmZCRiQmFgYSZ2WGR1LC8rNnsyWX17Pjo3UTVOdU4qNFpIJEgqYn5QSFZPVVdzdDYuPGtkbCFAK1Z3TGRGOV9dfTtIazhdK0lRMEY6P2ZPbzlRbWRkMksrQCpNVXw2PlhqfTAkWmJvalsmZmwyL1smKl41I24wLzhfXTw7N1EvTk1wKGtaeyM1fGhEKUhYRnVpVTw7Xi5DbDhjQVRIZUNYVntD'@; put 'MihgJDdQLn5oMmJzRGx3YikpJlIzSmp5QHtNMCNQRlIseVZOMVkpTyxkbmUmZGw9a096XSZYOihTIzhzOk9hRDJ9R21ZUCVkOkBfKzN3Sy9rL01lNmEwdl42OyMjNT0+aXt6KSosZXpPdlIrcFI1RTs3UXRoODFfXUl8VWQ1JlJkOCMua3heZ1l0YT9tPX0jZDc3P2IkN3gmelFuUypqbWRWeyhq'@; put 'QiZhUlBlN3daSHZ8I2RDMmNAb1RBLGkjYVYyLyFqWzBKOGksWFoxbUohZ19LNlhXSGpyZy50UjJ1Xy97KmxZVDxmXW9iY01eMVZKNkJiKCpncm9dTl8oPTVfUGA9fWs3YkQoMHhLPX1WKkhrTGRTPjcxUTAhbHdjaUImXTtuNXUpJSI0Mj1lOGY/UyVsdzdRTCtxb30jcmc2Qk4melEuZFFmLl08'@; put 'YWZ3ZnlxKzdRXz9dUys7bWx2fnNyVzkqXjZlNWE1Nk06c1N0U34wcWd1Sl5NODs/ZmAsRjFFcF83OjViVEV9O2REfDY9dyopbE8xRWk1Nj0sYFN2U3ZTITE8I0U/O2t5JF03aUR7N2lEKzlONnU5L15fPDtebU1YJC96cnB3Z2lQd2goJUM8RDJyLChtMXFHaztsJkxhLCgpVy5fNmJAfWYvXTdR'@; put 'ZVQmbGFyaFVzfFtHKztDTX5dXjZ3PXU7JjlBOSl4d3NCe196WztHKFEmXlk2TnBUdWh8QF1afElQJmkmdSxlbE5RMzkrOW5AcyxBbyFOZjJHMXIpIl58RiM2LD16blQ4YiF0Zko2anl8dyp1S1IxVlNwQ307TCxBc2QraUM3Tz8hYnw0b0Qla2ZyfUdaMCZAQ1FOXy46JTh3VlNwWzdYQDMocSFO'@; put 'dnw2PEJ5RjgzQDpWTjBMezwhMEgodXl8d1EjZzZPaXM/eDhfRjlUe21EekF4WjlPLFI9Tl1mcTo5cENrSV8ydiY4UERKcGhMZGtqNmU9UVArYVY1TXpVdWBdNys8Vzo0TkhzY29Wb3V1MmZFVEojZXMiZH4rbTlROkF2UWRqMkwoQXxJIWU2ZyFSZWcoIk9YU2QzY3x7ZHNmeH5+NyF1OTpEfX43'@; put 'cGplMWFndEg+ZlU4L19PRThhOXpoalFkajJle0IocSFmd1lASE19cHJNPyE8ejhhOlJ2WzJLKnciaV83aURaJE5kQyR6JndNeGEjaTZRUD59WnQkTzFdJFMlNGdCO3hlM2wzWE8xL2Q4K01kfjBmTllnLmplNi4rRyRgd0hATllnbmc8TyoxT0puPG56XytxJEB9Ny9OKHpsbGMhamI8LE55LEBX'@; put 'dypQbXEwIXt8cXpzPVoxUFBRUDUpN0A2YU59ezBZeyNTLnIxZ3UwKCV5OTBLOzA1am52KFkiUkhRX2FdUl5dNm4yQzJfckZWW2hVZ0tLNW9CZkR6VXg5czlRcSlzYilUO1pfSmQwejFoUyhNVmhgRmpRaFUoOlMrclpxM3YvdzdAbmpaMV09TlFAPUZ4T1g/MTReX2FNVyE4NzZYPVNJOE44JSgh'@; put 'OEE1di93YndFTWtKWzp7fHlWc0ArNndxOF1KI2tgY05iN2t5RWVUIU15XytaPDRlSXc1OVhaMl5bc2xWaGBDMmhgYkImYGosO0kqYFN5OUN3Kys9QlVPXn5WSSorJiteM2srejwySHBYKV9afjkzKnUzWT5JXlEmSSsrZnVzMmw3YVBwW1JKUUl7P21HIzRlQD8panZSJlhANi9rND43X0x7dVNz'@; put 'ellsUV9UXTU2ND80cDVOTXNuQ1RfPDs3UTByZjYmUj44NHEoYSlsPTNJbDUmVnJye3MpZjZye19dPDs4OWNoMSNGe14mUTpROlBkdXExT0NqI1FuXSk5Ij08OU9MNjh+Uz1ldTJfbFkuJEhTLms3XnBBZCJaIioielcwaTJELjcmITdYe1ZqTl5DaFZVSnxvdXYhJnZgQGU+PkhDantieDFhclpp'@; put 'U25RX0F8S0l5ZSlhenQwOmZ2LzxCL0pmUGVQSlNkQytEeTtjOkRxOndzW3pNTmpUQDRmWjUoYjd7QnBVP2wleVBlITw8dkYqNHArIyVjM0JIZGJMWmEvdHJacmdqeiMjP0ZqR1FBeVcvIz5tX1Nja1hPZTJfeVRia0MwMHtQTUlnWE5KP2AheHp1MTU9WXNvQXZLQH1LZUFLTzl4TG1ySDdMYHx+'@; put 'REVQXjI+Smx8N1NDPzVSTys1Ul1mPWhZIktoKWsjOkN1bzdIR3N6UTsuT2FEczRpc1BiOVFxYUgob0V3ZylMZlJmWjFCYUw9ZkQuNElNbF5lcCt3KEE6KE57NlZULno9LyRAXWY2Sy5ZWTB0eG40dUlxdWhZZFtdZl5QMGNrWld4PVhDUmF5bXFORUNoKjRTIUlKMUtHeTc9bTZOI04vUzt4RGtR'@; put 'Nl93d2tjaVJxT0lmaExmOD5vbkUsITw6ZTdQQ0NSSE9NMHpnPEwrVzVHczFfMGc+UDdvdTpPRzsoM2BqXkBuRFpsczVOJiF1O1tKOFFEYWRsbnJDc2NuRU41dU5KbUY7ZTJpQ151SDc0NCpURXp1YXUmKlNWTl4kPTAkNDdTU10wa1I4UiQqU35CLGQ4KncuKSNeeWNML2YlUXdsMUpHIjZQZnVX'@; put 'Y3ZFJUFoU095OGc9NH1uQlRVPzVyXlBpRUM6XVFtT0Y7WW9xSz9aeDttN2JDI0tiKXJPRjtuO2U2KHlUemU3YkNiJX1ybGhje0t5X3VDZnEvVWMjRXR6VHE8OChlc1oqdSVnRXc3NHpKYzJYO0I2UTtBNUxGYDE3UEk1ekpVQ0JlMi9TOyoiKWJFYjVZOjomKSJDUzZFOjJdQ04lKUYqWmQpOiVY'@; put 'O1BfRGMjM11mbVpRKz43UCw3eC4wX1F6XmRQO0csW2RdWWhxM1dWb2AoSHQoSzk/akYmeFI8MzdRamUyd0VGM2FpNEJPcjxVaSt4XypVXlgxb1BWQCJkSGQ4V2pOaHJCIktKWjFvPFdBVyo1b2dCTVBmakZPaXBzPDxffTZGXzRvaHhISXJ7JmlRR2Y8WWRlZzpPVnYsUk1eRkV1cUMkP3k6L05B'@; put 'az83d1Ysd2gqPWh7fCk4JDpkW0B0dTJMZlBlNiF1TSZMQlpzWWFwbEJHTyVFNWdCTUIhai83K1JkYXBodDgoYUkyOXYvblp9SjV8X0txZU51JmtEbG8pUk1URjYzQFFWYGZKcytQQiE/TEZ4SHZHO1M2SUckI1NHaSRUZDV5X2g4NzpETkEuLj59RGc/SVlxbH1SRiVTWXhLR0plREBRXlBacWor'@; put 'fD5ycGx3RioxaTJBaD08ZihbYFJodCZ8ZTh1Qj9pOmkjZUA0WUtSLEdKKX0uRyksLn0/ZE5QUGJoU048U2ZxYC5HeUJPTj54eTE5UzE0cjFobHcxbDJ3byoqQmZJRWM3U0ZLXlt3di9mODZkdmJjKXsyMVJGI0ZxOVFSKnowfjlwYHkxYys0OjN2M2Quen4mSFBSQXk7fXFAKWY3JkJOaSVAcmpm'@; put 'QzdPWnQmTH5Mdy5OY2dKZ0RyTGFkeGZhSmpqVHlyL3tSUGIyYFtSRDh3ZUZ1e0FOQiN8KDM3PTphMml7aldCNG44WUYqOXQmTzgjUVImM0JTfEpaVTphMmkkR1IySXt+fnI4PnhCMVdYP0khWV1KM09oQTlbcEg/JXFgZ1UrITJZR0YkR09mImBRWUVyQSJROXhic3V9RWsuNlY8ckpwPVlaWFti'@; put 'ckkhfCk2N35hYUM1VVJVL2siMFdeUHVpUCxpYSQ3di9BLjJke1hddU5sPWNCNk4jQVpJR1BtaU16T3k5dUdqLHMrZCNiPyV3SFRZOkwjV2M1eHNIQEV3R3FxeFZ0VlVKKkZGYUxJWVIrUWdhVkskdn1AaXlnRUdEYHVCNTkoIUkjY3QrLG0+Yy5Sb3VHdHxYPEVfN1RGJHZAc0l5fixZZStPajoq'@; put 'SHYsezd7WysvMkxOY1NReTtNQjdieDQoUzVScDpoNDFFPiUkJGY8IUVPQihTNiEzbUk1PjJsWnJ1K29QK2MpaEoseFJZLGJzOWxaajY4dyV5YFIsNWovNDEkdno4cTAyQCVJX0NAQShje3YwLl1qKHZbQ2Q2SXJCSnVvbVkpTDVxanhTRiN6R1EuTUhnQT90QjxmQX0xL3RCZmJrMVBVVlg3djlM'@; put 'bjB+YHhSNClGd0RmOyY6XiFGamVfdmQ5Wkx2RCo1InRsZkQ2V3t2MmRYeTJzQisocXU2T2NNfnRuZXEpWGNuK3tANUxZZX00MXQ5MG5vZzp+SEw9cFtGWHEwKDUhWjBfWGVmW0p0PTw3UkRfam44TX5MY01FTWMvISJiN3BNbCZlcixYI3VzNGVFbH19KUg3ZjpLLCZUUkgidyQrYEphaVI5SyRV'@; put 'UnhDJldnZ3swflI2Q31RMENtNXdtQWtaXUVLJGE4Rk4lKFt0eD1PTzNnVUdNQCUrcXoiOHRMdU94SlRYU2p1IWtXMlNmTHk9PldrKTVWYkp5QjVHMnQjPCt0UEwsM0ImNCh4ZDlKdTY2Wy80V3swYGNgWEhEPmxXb2EhfVJPWFlRZmAkTVVHU1pyMkwvUkpdUUpnb0NGaHwsVU9PcH5gRlZdQkh2'@; put 'O2ZbSDZGNlJFME5YfVJCdXJPdUcuejpvTk9UMzxoaV0ieTEufVk4KSE1VUR3WjFaZExBdU5YclI0LzJVbUNoJDEvI3dgKCI5X2Rzcz9ySGdobHQjKlo4eSt8QzFVN2BYLE5meHZHKTxHS2l4fUNDNmFjaitDRmRsdEJKRE4kQVNZfUxJfVlzTFhTO3kyTGEpXXBiP1UyQEFpNyE1YmskRDd0JUZu'@; put 'Tj9wYUV3Si5TLyp7JihRZHpxQn1KZSpjRUpHI1N1K0g9OUpsIX1rNyhZQF5DTylbQlBCXSpmWHljVlEkel11TUFAR1dEYEEudjtxJkExVz4lOVA0b0MkcylPN2FTdmBqTD9EKHYiQyR3OFtnV14oXU8ieTd7MlsrQyR7Rk45KmlKeTZIN1BqfiFCVVF6JUZ6dFAlOkxaTSs2b1dwaUZMT2xrQy5P'@; put 'd0JOdCZ0S0FWe3QrcVdxKUNLJHB5PFNvVzptd29XeTI5KVsqemJuL3hCIVdoWFM3NHlALFVYUGFiYTtBZnZ1KTRaPTBZVyhgYkt4KXlTSHRXRSlmUXQmZE1KQjJAb3Q8OXVuRylYeDR4TilFeHNzQCZSXXc3Tm9mOUREIlAiX054c3tpMUwlVzNbNXhtR35MbEd6T003NjVgeywrLjE7eW5HV1Ns'@; put 'QU1AbGx+eT9lR1NDRlB1PWssR1ZCV3ZpfXsrd1h3Yjp1ZkRPRypbYzxxeDcjTm1qO1lSfCFiKXsxLEB5aSV5L09fW2I2SWtWY3k5VnRfRmIpcWYsTzB4Nj1RJktvTz9JMkNBdVpOVlQsdWJSSEt0aU1NSUxMenZJSGpkV1pxUElrUkMjPykzNTdmSndnRjQsXzEvdTF6WW1GamQ4ayRZZzlDY0Rm'@; put 'WHg1bn5JZGBeSDApZktlJUlXTDBOSz9jL1p3M3huN0l6bmU4Nk14QiNMNzpaeHNLK1cpVHhkPkBIfmh0IkZobFlPQTttNDNiTkFMPU59YzMyIyJDOExgZEtIaEk9UWUlb1dYWm1dfC9uWkdGbWxlWnRsUzs7Y2B2UjJYUn1kMDQ9eVQlMTBJfmJJRFpKKzFELE9Me2pIQDQiYEhQcSZiMzc3JTV5'@; put 'Ojcid2d8bTBvV3RjJk1iXy8uYyw2czMuVGQsYEE+eFdVSUBjZG9tPDBWWSlFJm8ydDw0JFV5WztPQ1JrSCl1fGAxbHNjS2A1P3xSPnVOQ2l1bV91Vy5TWmAodiMuTzxLfURaJnR0TCo5KXlVQ1paQSpIR0tSYl4vPmhCNWd0NC9MVHE0aVc1U0k3dn0maiphOWFjfDJwMSxzYFhCRT1+NkMmV2Jw'@; put 'ZC9bdHExe2R6ZDJ0MlJ2NXM4Ml0wRVRLYSR8ZDU1OHV8X0JBVSIyXV95U2FJTTJHO2MoIkF4eVl8ZVE7Ji90NT8rVkhTNUhCeTR2Vyt1MWd5Sihwfk02NDRjI1drdHp1TX5tPDY2R091RTsobGxhOnZpYXw6OUdRW2MrZXhEPEUydH16SD9bQDojMlZeblAyUWo2U010VktmYiV9TD0rTTxDI0dv'@; put 'UiUjaXc4Q0h2N2hOZ1M+dm5LTFY1UVM4SlF3M19wbWdCdmxxTzIheTo6WTdkPz9JbS8jek9xeWFjTlAwNTBHL1JkKTdXLyMyVmw1Q0ZmJjhFRG1Adj9XUShhJGZseURBUTB2PDpgWjZXKVhlbzd1c01jWHhGS0tYNjRESFJOTWIlZFhYWD1MfFdTJjZTTGVmRDJnT1BaYVo5TW1ZdU1ES1s9diQh'@; put 'WnhOW1pEWkU+IVgsajllSXhadEJwVnNvN3V+dGRaPzVYe2VDWCl0LzJMOjllY0xmZzV5NEtgXlAhfTV0Y0BwW35EJloye2FhaFpvXmBvIzdkLDojUnReY3FCK2lMN3AuaC98ekZ7MWwiRlM2MikvbFA3c2JfPk47UmovI1EkNEUxNnMuLzo3WDcrNmklODFsOjEvYHw5OEVVNXpKUSIjUk9HV29B'@; put 'diN2RUouQUpeUGJubHsiTHNFJjlYRUdZUjkodng2U3VSc0MjRFtgSTh0Y192VmkiVl1XMW80Q010V0NGJTlYYElYRGJHW0c8WVNQRkJBUSVOd2x5aTdYWTQ0WXdXYXBBKVhZREc1ZzxMOnFtT01ZJFc5RTxoW1kyUlglOVh5P3BIciErLF5QdzF+WWU0bU9je2UyTF47RlBCJFMwTH1LIUxAJjJd'@; put 'RlV8MjJMS29VODpVTG9OTW40OWUpWyhhI3VwJjQ2b0tLQFhKN3xlOGhTMGRGQkFNTm8lcG1UNWo1dz96alkmMmhDJUV6cT0qamdWbFgySFtJRzhETGEoZCp0KV0hWiJ8SzY5ZUFEVUNhKjskdVdmcVNhPkJDelBlKyJ4PXo9WjFXYzIzPWsxP3wmSFBReyR6WCUmTnJsPSlgcGdNNltRO1kpZE1m'@; put 'dG5aTU1KW1FKPUV6elFALkd3SHwzekxRdEl7RUk0a0Q3b2dKTVljXkdvPzFCMjZpZltqMS5aWy5HO0NNaVdLYnR6OmxCdytzZUAvSFBBRClVTFR3V0dHbTw2dW1eM3pDSih7JiRdQzkocU9dZF15dG9aO0RKd1dRbnZYYUpFRnB0SEovM0JBJVtKT3g8dlRMLE5TfEkuTzE0MHxVVEVHYmxHQDFY'@; put 'U3M4d0I7UiZmR3FjflkyOlkrUXZrfTgwXWNNQmFWNDRjWSJjLEVnZHZwTWNnWlZhN2trc2gkQk1GI0xJWCk5fHdNTX12VGMpL09FUV84dmdxK3ZGYDFBZXZAMCtIbUU/YXdGeGQ8cChKVGBxOlZHQ19DXkNKM3pJcERePm0wSnNDdSUkbGhjdSlrbGBqZ1JkdVBULC5LZU8xZF5IV01oRWRsP0NJ'@; put 'TFZTPk9yQHh4cT11Ingxe2UveTIufGVXLGxUY0dBIz5GbnUpP05pXipvQn5iRz16MTwjM2EsWFNDN04lKSQvODRaYjlGLEcmVGVjQ0lOSiZGbm5xNm0wOGpYWE1PKFFeTFNoQipjcWJLSmxXLGxEYUBTJkJJRkRxKnlCRndHdFpZRz17VHZ5T2N3WkBJZDRoWEZReTUrRTtDfURZKUpWOyp1Vkpb'@; put 'U3Y5Qmo3NjJCREMweEQ8MGhQaz9BeT10VG0zaiZyT3ZJU29iLCwuT24iITJqQ1QsIjB5blIpY0JUamlhJjBqZ05CPld6MlNeTkVNKVJEI3A6aHZ0JHk5NFQsXU14dEVacHhGRCFsVkJ1NkhaOld6MnkjMnVzbiU0UXNnRFR6TTozazRqYHlWRHNNfDFzU2VESWI4Lng/WSwkU3ppIi8hWU0ub0dV'@; put 'RSk0Jk5LeUskQmxtaWsxcSlMLiF1UkI5Y3EwX2JVdmk5MmJHIWxKKnQ1JT8/czB4VW0rbVphazpDcllaJkZGVzBsQlRtUkxPbUozR0d6dEdgTG0wSWF4SyR3NHlxUHQmZEtpVUlFcjY0R2FULDVId3RJXkFBRTo/akh5T0c3V0R0azBPTnYockVJSUZaNnFwMzcrXzZON3YsTWIzSS9OPS8/akFY'@; put 'KFBuR1VjfjxYI21VbkJwWmQsLikhWnFCSEE6Z1BNTUV7Qzk0KzxiMHB3XjFGTXNjTGtAST1CVSVXRyxHNTJmVUxWRCMwOkc5Tnc6SHZEbzZTeG1xVCJlJWZNbDlHL0l3NHpwRFYpTnpjIyNGVlc1Y1gke2pXODJYd3poUHw0flhLQ3R0VmNNWyssYjtnTWtEVjZASEFgVzBOcCJwdyJ8cThMdnV5'@; put 'WEAvQSFhMCQ6KkA9SiI5ejl7L0x2LixjM3EhSUklO3Z2PENVIkR+MWRhUyMoKEJyU083bzU1WUNsL0xvOnQqYS9ERy5kNSU+SWZ4NlY1dFgpfls+Q3hwc2YxJXVJQEBrU0o9R0RaWXZQckZtIWxVbDkqRW5PNyluZSk8cTFlWndSenRaNHNtZTloeClbQGVuSiZ5YmZbTHBVUXBZUExQZGpPR3ha'@; put 'aEdLSFEsZTd2Rz5sJExEbFF1dkVzIzpfK09vQVNBO1hyMj5oPk1+MTJYTUtmenduQUFwKVBwcE0xeH0kTko2dXh6RGZOKnUrUzZWYlh8Lz8vaDNhWlR0biVEITZEaz5sS2lvZyNDSHtMP2ZaLmIrNE90PXRgIypxfFU0KGRSZXNeQzhScHdubj5sST9VT1dlckl2I0UpbWg3QVR3WXAiSlR2ez4r'@; put 'Mjp5UlBiTFM3PGlHQT5sY3RFKnYsfDlXMjNrXiJzc3pEVnA4andNaWVvIXtrQnVpPSg3bD1iUD5sLihvNCVYSHclXiRBcUZaQjhpJTtFKSU9Jm86VjEpJUYvdTcrYGolO0RYRSovb3wwW1pxRiU6L2wxOjElN1IzJj9YYTdlcz5CKVg2eShYazc0SiVXUG94TX41aXQ4X0QicnxtImAjIjFeWDN0'@; put 'N3lldlg7RyJRSGswJGNXVG9hZEc1UlNsLjxBZykweV1ONzRKL083ZE9pVE5qZV02VWlWI2RZbDloRSZGeCxwZDp3OSE/dXRWbTJfU3RmJGprcTtmPTNrWVYvYTQ2ZzIlN1IrKERQO2NALzpXPmhnSnxlVEY+bCtXO1R2LHwpfkw1d3AhXUFGKTpnVkMzJVkhL19IW35sNktneSVaWjdkOlRYOTVm'@; put 'bW06fEI+YV1fZldsNSI4N0RWSmF3ZXRocEcvcHMqeGRLLmdsQ1RYMS42Q0NsWk1wQkRQYWtnNSh4TiZNRyRtQXdhaU1AYEtvPEw3Vy5UQC5BREdWSHBCbS5VfGZ4WUFScEVMaU8idlp4dHVRZDlGJnRhKT01flB3OF9FfD4xSVBPakc6dUlOdkRqZDROTnZhXTVbWkZtVWBoRFIyKzJJMSVVR35q'@; put 'Z1NPQkh6ckJwWHRCTSwyRy9naURHbyxIXV18L0d7V1IkRW5aXmFxSkA+L0ltQzA5MDY+VmFDRW9OSnFhcjJfeUtTNih9RUhbUGlKVi5rS0NsOTZ4P3ZlNXhSNTRLNztTRUh2VlpkNTY0S1hCTHJ6dmtrL2l+ZUxIO3lnXXs8UlphXk95LkY3dHRFZ1kwSCk3QXgvSSVCdUxHSyVnYUFMVkZCcTIl'@; put 'OzYpV3VgP0VNcEJDTS52NVA9Ong8ZUcpITBhNXU9Y3pMNXFZTD51YCNNWH1VNV1+RmltejF8KDxmfWg0OlBdWz0rRig2N1pwR18+fVhOKixhbDk4dik0Pygha00udDg/ems8UVRJNzBgQGpbI3goVUQhKFtGckN6IV01YCNXbDNKO1t6WExiMmk4WSI5e1J2WH1mTnsrPjRJIkxjQ3RvYStVaVlZ'@; put 'aF0jQkliWCVIaWEyS0tGd2ZPek5lNCh4P1RMSGVWezI+U2dBe1hOQz5lOzpXTiNKPFNsUkkwckIxdD19RkI9dDpnWE1wTEFePixfcTgzKFNjMzVMeGR8PTBnRjl8eWB2UjlDRVpMTz5WLCtnaV4wNklJc2k0O3lneWBOY1QsMEdbKH5lWF11dU9nMEFUPD9UYjV3bX5FfUlpdHF6I0RlXUA+Tzwh'@; put 'QlRtOGNObzwpX3IpZl5tXSJXJkVTLk9iQX1BZTxwRlRYalApQWp6QX1uN0ska19FdH00MkVWSlFjPWNuWFFEYTRhLjkhY3VjMGFHZCxqfDFCKC89dTohJCNHaF4oOWQ4I1FBUEhfYTFkOiE/T3I9Vnd3RyZBLmg5VjE0cHVVLHxkQGg9Qm1MZC9INU4xWlhDNm0wZ1hOant2YTVwdT8+e0Yiak9r'@; put 'STd8P1s7YEgpYjo1N2EjZ3tKYkxfRDohLGF9LzU3R0omTm5MTWk8N0xVVSxuTn56Nls3blZKKSQmRHc2anQqWEZnXmEzW0EzO3VMdHclM2pbUTg3anJhWXNdfEJHT1NocDUzaVMpQ1BUbUdlOnk2d0thKzhYdkxBU0IxVzpPWTU6Ikk8VUVFd21lZWtzfj5hSU0zaiMwS3Q0S1taQjpLQ3huUGI9'@; put 'VGNJbTwlKFEhMlI1RWh9MUhqcFJJUXc0allCYCsuRHNPdCNxbjhZS0AmbGhYeUpgUXd1PTdBSmdyP0p3ZzMqc3pKVGtMXSZJMm5FZiN+REdkKjcqLFUsI0ZidCEoV1hxdV0+aStOQkYqdVltPGhYcExGd1hjd0lpTn4xYChvT0A3KmxYZTpMdUkqSFEoTkJAKFQoWUduMFFufEJsYWhMcHVoWHAl'@; put 'ZmBsRUJlXyt+SWZARk1+eTtCU3VBP01NO2gxZHw9WDJDb1dCXkRHdmp4V3FJTWljWiRYUWEreDA5eStRYkx7Y313NW86IVcvYDlRMiU4UHUoTjRjdXB6M3ljQzF+ZEo/JH1GSF50KF9ueDVjZjgxXn1XJVpSQ0Vrazh9IXNWczQ4ZFc1W0RjfC5vVUBsUz1CQGpPaUlOKFtMN0pYK2xyaFZFdld8'@; put 'SyxnVXo2MUQ9a2pgfmBlT3RSN3UhY0AqWm5DJEc/RVRgW1E7PTphMmlbRGZjMkZvW1RTPzhuMnBMJEdqXjZ9azAmLkpwPVl4Py5GR35BdEVVeipPbUUlOllCJDNkJH5XN2klVE4hfDI3VD9PQnt+KSNYQ1Jme35KaWR2Km4/fipINEwlKG5+ZGFjZXd+TDgoPVdHSW9gQ3svS3gxRWFQTjVjW3h6'@; put 'clEvWF5vbjN8VjMoR2IsWFtWfjN9XnlkODBLLHIxfnpvQixJSkIjfGtjTXYqdVB4WC49Q2dLXSk9fUpPcERPelU8VltzImJfQERpKTp0Pm1Zczs1dC41Rlh1QzdNT0FLRWRGaCNIVFcjTSM7VCs2XVFpOnl3Sz40LnNKVk8pZk10TiVgO3YrUWd5QUsjd3wsdFMhbGNHOldfXlFKeGglRVIqJihK'@; put 'WWR0VU9rfko3MClINmJFRkVwSU8peFl9QGdOSCRuUHxITjFpTlElU21UKylqOXcvYWBhNEZubilOayskVGxuOkxWMiJbUSgjbTc/fj9jXUtXRVloVkhPIzJaQ3M0Pn5ZeihDdU1ocCNuTXY7fGxGSktXdm1dZzQqbX1NSFB5KnEpTytCUUhgK3l5aVNIRyFIaERaTlU4bmkiL0NZL1goaTQ6Yj1J'@; put 'b2cjWGxbU1MwVztKS1hpZ2dnVjA5dXBudXZNS3xxQTxEMVp1MDd5JDN1QUhhOUpjU3lhfGJ8PCwpKjB3ZkhCLzwkY29mLC4qSSpYVl8+LlFxQmJLc2Frb05sfnZPekxacU1SdCMuUWlDP3BML14vcHBaWlErYSJuTyIiRm5WJS9dR0YwPnFGZjR2UkN5T182UUQ/VGlaZ3t9V3NuTyRzSiFPRkJO'@; put 'Pl5DNzNldjpfKTk1RTNUNUUwTX0ycSV9MihYMkRjNyg5SndEVjR6QVUqQ2ZoTE9AP25MbHpnS0hCTktJKktAZWlUaVhJTF1WIzlCTXNVL3E6WFk9SlZfMCtnZ249dXg5XSg1cnBbYmAyVDNpVWBpKVZmRF9gQSk5c3ZOOUYzMzFGcV8rbjJXQkJVdzRiaCsjP3Q0ejhZU3ooJmU/OD0mR1Q7LC9A'@; put 'eDFsTGMmPUcoOEVjYnYjX2cvKGF5eWF1JG5OJXkxPHhlWFJ5LnlUeGlBbWdqZV0icypNRF00NShRM29mUWAqKGR4WiNASWkoYXk9SyMqbV9UdEdCdk5NUl1OaUtxPlE3fHZJdHNMJE5iWGlxYVY4cjAob0Q0RihxPkttQytfemM1STBPQjlDRXo7P3ovRjVwZ2IyQHZ0W0pIamQ1K3FpcUB7NihE'@; put 'W0B4fXlldXBgWVNQLEBtc1VCLzp2anF8ZjApI2gvdz9WRGY7Xy9uPENqRTgoYkclRVEzdWFbZz1obSsmNS9Ee0RyL0EmPDNVKyFaIXttd3ZqNSNtPUxxaWEkXiI7OHxidnhbY2k3WzlKekslVXIrKjM2RF5bMUxHIWBzOjZIPnFfV3x7SkJBRkcwSC9AKUUuVGxaalF6PD9tLHdlOUN6YTdqTyZD'@; put 'Y1VnK0pPbWJldiUiJDg0TW1tQHohWjY9VDdqKCQkMz9gPkdGN0djd21WbFlPXT0iR2g1Q19MI157TmR9UmNoMld6eEBsTDBaKmMuLlFfNVluP3s0NWtoSVtGQDJ+Y31KPko8dkk5PDcraVJ5Llp6YmI8PXk8RVNDZT9vNXRGV0lmQiokMyMrT0JLMjRSKE9NM19yMlddX3pEYXgqUkJCMDlFVnJV'@; put 'dHR0OkRQTnAjOVUqTFJyY25Bd3tUMklDdF5ScXR9RXxLWXFgeWRKJUN5VUlJcyZLVTVnYFRqTDY+bVhPQU5aSV5hKEp3NGdKeVheYGY8cnJ4Ui5ka0B2fnkyVChSVSNNSWcrPzNHaGFrJTVyOXQ/R3F6NF0yLCRGfF9rLjI0KilbVlk9TnouZGxYV0ZAKCR9NTNnPWBZRGY0Zz9ZR1Z4eHxOK2pX'@; put 'Sjsqcn5IciU7JD0+KmZJOzErNFtlQCN1RkoiQiRxUntRUWs1TGlLPlhIbFt6IXlRaUVNWW1zV2s3cHhuMktEQjdqaD1lU1ArTk13RGNCP0RfM3xMRDcvYkBKPmAmSzx4OnxeTmp1bFZ8aVlXbUI9Lls6I0ZbWDBHcWJOYkIqZUJvTHQ1cnViJSlGalE9RzJ4LDtjVVcoZ1RiXiIoU1MhRDhBMjMp'@; put 'QXwoPVdqcnpuW0tBazIpTVAwLHxPbU9OMk4/W2wjekR5YmxCKGhnVDNkdSE5KSowI0RPfiojUXtIKD8sb205cTcwV2loTEJPaEhOdV08TCheJSU9SXslYEpBY2tRQCZTUEs/VClBXjxFQXYyOTJ3dUBpMlhAPlUhTVNuUittWFV1cU1UPCF2dmNBKzBrRjddX2d+W1FPMj43eVA/eHB0bDM9Zzdw'@; put 'cmNoeFdeOHFUUl4+QEo4S30uIVheVDNUc0VWfTpDV1JSUjBBVjMqPDN2R3ZldzkrK2EsaXpOdlFyPzpiVFRXSzhkPkt7eFkufld1UzlnK0w6OUN5aktYQ3Z1SkNaY1JXOjdIJXl1cHdTfGdaTUpNIXdkeG5HL3QqaWtqYW8/dnUpImdLa2xba3UvQDtkWnFnPSRrLnNYLjhNeDdXSi96WER5bmhT'@; put 'e1tRJnZ3Qn5XSFZ4RlUmSTc0dzkiJFB8K2IsfF52Y11feXw5TU1XfFdOX3hqIz0pYTJ0K3ZUOkxFXVFMU3oxeXFRY0opU05MTWs4I3Z9I0V1Vl9NYzFbdyFYKDdWYHFLS2deKjRaL1RFWTovQE8kSWN7KWdWfFBXKSgiIik1YHxEOyY6bz0qaSosZjJ6e2siPXdFVz5mcyF1VEU8ekJ1fVskb20h'@; put 'TD51Y3c9Y0wiWyYpZnBlImo5VSVtTnh5I3Ijd3x5NDwqeDxxSXdkaGxnOSg6bFpMQDFlYDtqa3pZSXdBW2BBTnNzZ14mKXdCMG9XWTppJG1RaSwoLHs8aTMxcD12RT5GN0NTS0xbZn1sfkszXnkqKygxXlI2SVAoN3V8Mk9vWnMjUkBUSl0lVGR2KTx7dGd4VnMoIWNzdElFeWAxR25qTiJ5KUJa'@; put 'IShYbXhyVHo0I3FoWmBAdClgV2FHWnhTM25zQDRddnh2WiI7a3xGcmJiPSJLUX46VDR9ZCoxP1lgTSx5WHJJc3lvRHolL1t6X0EhQ2clWGJhOGFmelttTE9aPyR6WUJaeStfSm5CV1E/cFgvdEdZJGkmOWpDPGJYKUJ0N2NlfFBNfFEqdl5IWVZwQmBFPkxDfnpYJiQ1UFd6c3ZEYTApcXQ4OFln'@; put 'dUMzNXAuJXJ0OGE/bTp1cG9jUlMyM0NKeXsoZ0N5Yi5yUE8rPTxyJkNTRn1XPHh9IltBR0NrJUJPUVQ5OzB2NEdoNWthcjoxQF5fV21dO2pGalk9ZXtsczZSLHxzK05TaTNVZFBYRyJOaClzdihNTmdYRzJ3QSJ9Q01nbzRlaixRaig2anc9KGNVOEV7fFQ8Q10pWHxxbUk+WEB7WXY3blBOJkZP'@; put 'TGA5cD5TTjxxYjQvVktXWlp6PSpyTnh0Q2NiOk0jTHNKRkIiXmRsKW9dX3A+bilROjpYWUhwRlhHTD9LejssKUJvSWpVKzEvQ19GezNqSyVnTG1hK0ghSlU0R0pGQktMREoxPUh5Xy4vUFc2TSlpR3xGRVhLey9ILEUqWEg0RkpaTXxgQmIoY2skVS81YUNMTW48JW9MZitLJFRmRGlIdlJQV2co'@; put 'QHQrV0g+S08obzU0bkIjTmZ3dCtuNkpDW0YkbXJpYy4yWH4yNkN5RntUbzJFJjBuLClJTkpWY24jLGUmaCNkLzZYXWQkN29Ne0dNTXtAR1NGImViZG9LV1VpP3tHaH0+T0BQRV1mY3N7cjE9TyNrQ1JLVXdtW0FEOFVjNHtSYkVZZEVfc1BTb0ZgJDVmLjtTP1h6WCIyeSVYXnNHJTVFb0l0fSVY'@; put 'ejlfNFUqLlFmQFY1QzlxYXR0dCM4aitjZ0ZGO3xXQ3tKaWVtXyFfWHJ0RH1DWihgazVUKkNdJTdQVzBPRDQmd3Q5TEB6eUIiVC8xTndwInJTSEw5d3syPTV1XT1HN1ghYVlmJk5iNCtnfl9MVlhxbit4TS55VjdsbjIzL3gxOSkwfnAjVmkqXXpHT05EZX09fip4K18lY21LXUg0T3xicGNZfEsh'@; put 'Il1gIktGaWZwSWgsUlIvLmdXQT80aXxlKDB+RlBLYiwyYmZNTytpNy4iaVVPdCpeeVd0JV5baXs+bjUuRXRdN2ouZEgzRmhCZHFtSD1fS2A1KSUiSERPVCF0ME1dUWc5Z1piW0MpXnd1JEdmWkN3dURtbEJmZXcpdXowYStxVCM3eUZxSTZtc0tYZ2wodGFgSWdFNkBuPllOQnROanNpUnlNZTVW'@; put 'WiRQV2xbQyp3QUlYd2lFRU1pNDR5alZMPzU9PUg8QCVaYU5qMUF6YkpiPGBNUFNFYkxvOkl+KjYkZjl5cS9LNmU+OyFqW3MxWWE4RSUvfU83RSF0XSpVMzZrIXBdLCZaS2V6MUNLPDl4aHEycWMmJGVzeU1eR3JPRjZlYT9RcHkmK15pVyNhJDYrPVsmSHxHMmxWd0tSIkYrd3IkPn5WI1RTcVNx'@; put 'VCY9VjRSV0l6ImNQPVFXSUI+TD5vPi5QOT88XzVzaFRhMXx6d0tIRnFPcVhmU3BwcEs2WlhndFR6VCkufm1XejBnRyViP0coe2l2UVNyfV92a2JNZDgwPTAhfm1fY3NtcmlLcVhHazhFLkcsdkB2M187PSt2e1YuVV81JSh3e11EMCJ+O31RYDslIyw3MEssO0AleTpEKTthSS9sOEheI2NnXUBp'@; put 'PTd9QUZLViI6KzdRJWolY2dEUk1CYnNiX0E/RWBodVp1WisiP0Ngam5lPV1TSjkmTUQrJVB9eHlbImBufHJnMHZQK3NrbFZ3NlpdYn5jQks/UHsuZ0krViMqTGR9YSZLK3grcFN+ZloiQSVROUsjKzsyfmZrJnJiJi85NV1qVHtVL0kxayZRbmlUPDl9L31YUXpycVdAS0hBam5+JChyVzluaF1O'@; put 'UGV9TXNHe148X1d5bmh2NSljfU03NV9bSmgwNXNWSEZxTypXcmlrOFlnaU9HSSN3dypOMFlnOU5HSUFkcz1IalJSe0k4eH57OGdzUTc1QHBxfEEhWHpPQTx4V1BYU2JKPl4/Yj1QZj17P2shd009USxgWHNpRlAoMz5SbDJTNT8mbUE0b3dKIT9HWTQ2ayoqbitjRXxUP0c6bkVhYT8oTkF1YmVn'@; put 'WXI9NT8oSnI9aSkmbS5ufS90JHx5ej9vJElwWzRxMzpuI0xOVVQpMClNPVlBKz5oSnBSV1heQjJ5IVJIQkswP2BQKzskfERIaTBITSxuQ29HZy5XejBnNiNnfDxMYGY9OCVFPW9MZ3tmMThybUxtbCNrbV53VyRjT3tXdEkqRmZMIiZSOlszc0AxTmJSKENPXlN5cS9US1lMUUBaRnFuR10pbSVs'@; put 'UiFCQVk0ZmxhQ0Asc0VKd3BJeSJENjNzcndlbnIzdnchJEguPnAmXnJbKT4mKW1WZz1pW18lO3s8cGNtemRxeXN5fXl+fX1UOWksdlJtTS4hSkoiVzxKSUpgQHc5Q24jI0R5K0xxKj1VQXs2VzZCXSxEc3F+SUt6ak5fT0d+TUUjVEY1anolMzNeZXpvfWp1L3QyUk8mV3tgQi5Vflo0SDM2ZkJB'@; put 'ZWZ+VzIoQX5CbksrVmhZfTJZTEx5TU1+b0hRZ2UpZC9CWmNVSCY3M0Q4NGB4SVJ2R1oyRitPZVIiPHd1MSZpN0hqIT1QKW9bRDVfUll7Yk96Lk9QNSV5JmksYTVCaDQ/Xn54b30icC9JeWMoTko1PG95YyYkNzRCRlZRK35NNTpxKTZ+MkBucipjSD5uaip+MkE9eDt1VzI4cm0rbGIpKG1MZ3w8'@; put 'emxxbSZSOmlkO2dDKU49PyhKVCZfPH1tRlNdPXg7VyRYPTI4LCtiZX04O3lPZ3w8bkolRWxHaSFAU3orMGJhb3M/V3Z4Oj19I3ckR1Qic1dwfSYzS250YXhiO012en5DY1ZRMGVMdjc/byZLTHZ9OUQ6clpVRjooYi91Q0dKN1pNWHduSEx5LzpGbGRpenFpXkpmPVgwOFR1TDgkQ1F8flh+WENx'@; put 'T2JVMkoqYlcwP0VWPztoNWAmODBAU3VwL05KOCl4SVIzKj4/W194dX5ESXMoTnchVCxfJTYqfmxZcihCdyMkfHwmWFt+L1hpbj9gMWUqfnp1JE1PJVdHbG4hQ18+ZnxAfnJtaW5rfVBnfHN6NCFUX3xERVt+MFdpbi5gVVspfkpzKT50WzltJH1tRD5+I1ZpbnM/XkUkfWA1cmpUM0h3c3ZQVjhp'@; put 'NzMpTD1SZmdTTmY9MmheRT9PbTJIM0ElVkVDb3NPdklYQntRYj9STVhxLD5KInk0fkl6dGd4eVpiOS88UFZCUnJPV1QiaGpQMlphbyw0WkVuSVtuc09mSXxqNCR6ZltCfDVoaEZCZ34/dzBAdlhtdllMTlU3X0cwMU4yOiEpRXIpPl0pPTJ0K0B+UFZpbm8/X3gjfX09NF5CIzBAQXUySWJaOkBF'@; put 'TShNTzFTTVEmLjU8diVfVGs3a29bN1Jsdnorfn4ySmIuVzBdRGFTSi9dY21UZkomfVYlV2guSVFrNX5NTjF5UGV9S1swe2M1UCMsSTRRW0hkJkpPayNGdTd6RjFvdTd6RkkjXXM2MGRhYj4veH19VT00RUNiT3heOklJQSJlMj04Y1RCI2oiUmFsXV52aVRxdnEhNTc0Nz4jLmAyMUN0MjxuOyEy'@; put 'KlNEa3d4Xn1MLkB+dFAjM0kqX1ltKTxPa2VvU34rLlRNLD91SVIuYz51fElLOCxNTzEhPFEmJlsrLzVKXVN7cy8rPjVOZFcyOXNVZ2FvcXRYdkkxXj4reGZPVXVePmQ8NDE/Lm9bQjJCOEI7VFMzYFBIS25sdGVlVltJTWt1LlpzcGpJM0k6ZTFVJjM3KU0sLHUiSUQlJmBfWWdwTSwodVhSNm0y'@; put 'MmVHYUo6eFtDQSJ5Y3VgPnFyNTFaL15pKzlfVXMjRlk8PGtHLldXaXlnPkx2VjcsSkB8dTU8PnZMVTJ+SyJGcFt9X1V0ZCsoK3hga1lYNUYrQyUsfEMzUVJqVjQvPVtgc1JbZCsocSJzNnwiNyMzdjVxVSwvR1smYE9OcU8qRyUoZVc2am5WVkdvXTIxPy5tUiskcy9GWiIxbClNNkV5aFZVRmtF'@; put 'WDBhREdTRW93P2Yub1tIYT8ubmtRWCIxZUoqd0oub1slb30sdHk+Ljo1dWBfWXU+fWM6TU0uXTZPSkZYelFePzVrRUFYJjBFdVMqPzpoYUMrTVcqOEhORy9PPmlwbkddaCMyMV9FTi9Ad3ZaSklSXWBjSGwlajBNKD54WTtacHdEWFJdPX5JSyk+KSlmZ2B9KS9gc08zIVQ8fF8lIX5NVHIoZ3Yh'@; put 'VCFfSEkpfkhTcihwLj0yZnxtcj9zZmFfUyQwRF5yZ1J9MTBoTTRHS3pfSXYhVTZHOV1uJmxPIVghb3tfSSxlaXYmXXQpTzx8dDJha0YlZXskPSMlOGJFLGY6REg8bFtnZSwoNUIvfn0jZnN+JW03ZFdXOF9benNUXjdNe3w6dFpMUXZJVkJ+emNlfkwhe0gvYEl0Un4jSF5LZTN2KEBOd3xoMCh+'@; put 'RjpGNzhgUnFyTEdGWEwjJFlASTFUfDZIZX5kd28oZElobk12ZmdxP0hJanw3MFdXKXBrJTE/ITslfWVhSjRKbStvTy93OXJ8YFMjcyQxUXFUXSs7On1VcmgoQXhRcXF+cXBmX3s9I1FFfmI1UChGe35+ZTApaGs/Tkc2fjF8ZyhMLG1JfXozWS59Ryo5fWtHVygoOmVXc0EvdjIvO012P2I8MXNV'@; put 'OlE5enNASWooR09ScUp9QHQwfFApIn1ndCx+LCR8fnJpYH5LYH5+XXEiczVWdFdbRl1YP0Q8Lzp7NHg0eW9hPC9GdF5rQ0A2SGkxN01xKzlHU3s9dSg+OXEicy58VXhyflsoPVFwNzNZXXM0N2VXPz5mbik2WSpdfEI2aH47dTdUfmwxcj5CUFEsRC5WejNraEI/PWVqfFk1c35yPCFoJE1SfF1D'@; put 'TGNbdEJhcX07MFRXcl1mJGxzYFpURUZCSiZdK3VEXXNuNDJyanUpaGd+PkRAfjBWPFFWSFV4dV1UPHV+a0E8c01nQkhUQC5sPFE+LFVCPz9NQl1gQUI1cy95UyghYmB+OEx1KF9AbzF7fXc/IXN4Z2xJYndCYUdAYjxWfCpNaCh4PCZ8Nn0xKGlzcG5ncyp5Nj5XfGNfNEgic090KWhSP3s7anxE'@; put 'WWp+OkkzaF1PRU9iOjEhcV94K2soZWAoOGRzOEZjcyZ8REU5PyVDYX5QZH1+JU11KEpbbkl9fXZpI3NQbWxJUXhCYTB9OkhkczN4Zm4/fV1wMj5rX2NfSyVISXgqb0Y2fUhDZ34peCJ+fkR1KCt7MFpUfC41a3NaLlE0d2NkK34oTE06fXE1bDFYKVVCS3shLGQoI3kzPlBjUXxAMiloWWByOHF+'@; put 'aEsjaE5WbUlZei9pe3NCRDV5SHVZKk9+WjhsMWQpVUIyfUhDaHNAaFMoVGMycmt2KWg8fj0rPX43d21JajpiTVZgS15sV1QmNHkjdVkqXnNsQyUsM2BkIi59XyE2PlZ8MXJjTS8mZltvMX5+KlN+fm41M1kyfUUqbHNnRFI0fSlPajRgbHElcz9FJSxtPzNBNHxlTiE+UmpRfFl9cy9wc3NjaCgz'@; put 'M0ljL1kkdEkuKk9tfCwpVUxzdTRsPX47IShoOytiOClfNDFWTDQrJGRwc30+RE9Qe0p5bF8qdSl9KXNuKCszUWRWfWxnOzk1ZTwyYUMyciFgYHtMTGRYNzU0QmlzXmdibWI5dl5OIm5OX1YpRl9oOFlCYFZXP01kPFpefVdMQmY/PEgvU2dBZ009VlguMkkxWGd3an4/Uyl9JF43NjZDdEJxbj5J'@; put 'Nl1NbGhWOXtUK19SKlE5Y3J0dTRkQlVsKlJkbV5waDd3ejUqI0AqeXFZa2AodGo8MVt7REBUUlg7LHNFKzdoeC9tdEJIKUhmcF9aUkdgPWtnKUBUJmdWfmNBXWp2ejxXQnQ1VisqSUpxOTQuLzpsUl8vLzF9OyZ0U0djan11U0puRE1dbmJtdWVKPElSMiUiUkZnLjhNbnJ2TX0yaHRwRHdKSFhd'@; put 'RlRIeTxKTG5uXUl4NHkqX1hLQ0FrbEcsTCI5R1F4aXpQakVDNlRPMEZFc1hGPUlkTTxFJn1ROnNQZTJhfHxFQys+YWtrUEMhbDZMUjUyRDVCRVhIRV91RHptOzlNV0NxL1lSWlo3Vnx9XjE/Ll1fNlBFNEw4UEcxcUQ6NWkocjZFVjw4Vn00dX5rVzVmdE5XR0U1YH5DOjtWandvc2g1WHg8UTla'@; put 'aVU1fWVHXSlsP3ZRSGA2Tkpsa044Lj99cUxAVkB0elYhQlU6Zn5kaXdbeiFAaiRDZkVnX35sW3x6MF4xQiJvZ3VHW0xzYztPIklBMzcrKShoSU5SckJmRCp5VyU/dTpHc1k3UGBTeD17REFHb1tXdEo0KioqYGtSfFJ1KFNeOz9YfElNWm1vTX5ZRDAjKUNHPT57SlsqcGAvWU45WE8vdD9qdFtN'@; put 'dHJJUEdEaTFGaVRidEU0bzF1Ryh+MnosNTp1SF07Q2pQISNQJCkzWjxhRlZ+UjVCLyQhKEg1YyYxRi9VRClvYTRXeGVPYnhkR2R0fiZUJGZsMzMpfUBpezNDSFhyVStWb0NIWTQzLipISXdmMkBfPHQqXz5SRWM5U3pkKX0wNF5WYDp8TzB6Sk5WTE5jIyFxQDh3W1ZhMVE/PHcxaFBwW0BiRFpM'@; put 'aHRqdmBSTVhVRlM3VUVMND1DR1tKUSw/QDFvfG4jL2dGdk0wY19KQipgRlltU34uNS87RmhBZSp1al0sKitiVl1oPGhUfGA1O1ExLmxCWXtHSkJGWVIkR3F8N1ldSTQuXT92amBqeXUlfVE9RzZpI350ZUxFLEx8NSRHJXxVYmojfkBNfS5TUTRZYGB6ZCY+Nll7cjdmY013aXYqfkNEKmZ9RFgj'@; put 'OlcyaX5hLy9WJXVyfHxiJmJJY0hiNjwka0l3REtAdzlHJitJPS9WIzp4VnF8djZzc2haR01LYk02aj9KIVFoYlA+X0dOdnQpUCNHeChGXiExVHVRfnJQK0FVOVthRFVYPnM/REBBb3JqQGF3ZmJYPUNwSXErLGVBcUNqIyglcngzZyV8VTtpOklXdUVbUCtIXygyWzEiQmpCPTArLzBKUEdZUj9+'@; put 'aUhPc3JCUUFZTFQzeDZiU2FDIV86djZTV1NvTGBYQXdCIipUK29xKl13QiI6Pndbd2Y9U2Q6Qi8rbExnNH5Ua3B2KkFqRGFIMiheJDRwYlB8XzFRQlgqUDZOYFJ2XnxSMG5rVz1Se1FSYEp3R3d6UFlHL30yWEE0ZGcmUXV4Z190VkFDKm86cmI/LCRuYkVPXXRgOC9aUUJyInh3QiVee2Y6YUxO'@; put 'SkguJnNUWzQxbXtjeCxSSERTblRIfWtkMEl0O1IzLyxgRGlrRUcsZUBIST98Nkd9KShGT2NWfWl0X3JXNFhSZ1krdXp+UCIiLlQ6bjdkTGApdURifGNIVkYrJCJMWH1eV0NXa0YyRV9YKkxjc0IyQS9HQSRNTyIrRmtJcjRPaTFOLEh5KG5FTDpvSShYeSlLRSxqbHN5V145MWk8T3BhfGVmQmVx'@; put 'JD11WXVpVGFifGt4SVdGdTdMRkVvKzV9UFBacjhyaDNmLzVVNClUVylxL2Q+MFIvX0VLQ35ub0VOZUs1ZEF8cikyfTRpdGV1YShySTpJWCxOdSpSVSJ6WHBgIiNzY0pad0JkQkw6T1cpbyRbX0tCKUBIbVd4Y3pFM2tUSFEhMUBJMSt8MlNYIW91Pkc6fWBoNnJOTGVsUE05SSk+YV0/LmtFUmpf'@; put 'MlMxdUQieyJOO2JsK35PUH5wTEUvUil+YGtjS204VG9Scno3IXY8RU1IQ3ducVlpQ2FZdW9qJXUuKiolWyoqc3BqTXFaRDk3S2Y0JVQiQ0ZYSC9WV11LNWZ4SiYsR3tsUDokaHQwRCJMMEFgVkYiJUkqWTY4cFArdDx9QzFFWDhNNFhBNFYiInxCL199RmMkZjd6RkRedGNIdVtxNF0hIXlydT5E'@; put 'LyoiMy8lfFVtI1IoZU9YU3FRdHhYY3JfSUZhKWdGNG86bEhGNCoxWE88LEdSd3tgalRsakhCU3UrKERDVlFnREUifkFZdllrR3U2WyIscmBOa2MlV0l3dnVqUCNeQFFacmZzeEEkOX1xNmFTRixDJDd5bXg6SXQrR2RyWU9BOXJ+MytjYEtPRDU+STdLQjR8Jk9TaVVFNUZsP1V4Y09bVztBISIl'@; put 'azZTZG1NdippektzRUc3aCpGKzpDYk5AQ2tFaG49MFY+Z0plKShCOih+Q0xOP1ZadWY8e0UvQiF9WU09ViF2X2d5SyRNcH5zXzxWfnlgW1s0cHw0PmEyb1Z+ZWU7Wn44WmQwdzw9VnhaPWJPayVZVTVrSS54LG1mZS8xRCEmIjB3UlBfSStoVSlCU1dNWyhzVW9fb3gsclEiMnFgLGp+ImMhKlBX'@; put 'ekVZdkNTbF5BTkFbKVQrTzpXPmhgUnhpSUlnU0tEdld0a2NHUko0azlrXiluNy9vSC5rQEczKn1wRTxjSnR+LGVCPDRoeFMzOkIoWGMjcj8qT1k/MixHQ29oIUdtcztaalV0QmZHbkJBODJ5JmF7cjB3dzQrbkNnaG40SU0yX0kyT0s3Q2A/QSh8O1RPWDVwUyIlc1cvfTNFRGN2TjVqL0s0VEBY'@; put 'eiFjQEdKdFBIbVt+QGFiPERifHtFYGpaTkJZbk5gUzFCZCN8KEZYOz9Xam4qRWZQenB6NClkRkl0RUYiQ0BDQSs+cWxPblgzTCthVS8yZXVVVjAiOW1OaSJILEt1YXZYQl1VVnhdfWcqcm4hUkcwWSM0OEBpenAsP0YyTDQmdEVmJEdpWW5+UWMjTWtFcCZmKUs8OGZeP3hDQU1jLDxvPll9LnV1'@; put 'XnYqWyloJFM+Y0tGNSg+dl0xKUZQU3w4TTJvSUpTNy88fVFvIjNlTm5CXSh2MT5zPEE2PDM6TFAydD8sWFlufF5MMVtQInY1byhGfTNtQ092RztDY3NkUl8zNUA5fUhMJDhnKC5vKm9uRWUyZmhWeEVofj9GcV0vKmdoWit+YzR+LnNEYT9uI3prfSljW09FeklmMFFxREg2PDFWSFJpTHRfT0RN'@; put 'Y182VkQhP2FWeG8zR1BOWyZgKjpoamFATUVVKng/alc/M3YkQH1RZ3Ngcj92ImFNaTR5VzVJRiFQQkRXWHw+e3pmVGt8KUkvKCNpNkNvYHRPKywjaiwycV9dUVU8dVpfWWI6YkxTS0guLktIQl1yLCxVUk8sX2sjZ3h3SVljTCFDdChQWCpmfXdmVmJQNFh7Mz9BLm0lQkJvOX55Kzs4US8iYTRk'@; put 'YTFmZ3Zbcn0kLkl7QHo/fW5MI3JjbUdta2Q/LF5FMkA6O2VhX1NPQmhXVkV0a1ZSVFE1RkV0NX19PkM0Qll6fHxMMik1fU11IjNuUz5rfn49K0dEbkQ1L0xUcC5WQnFFcTEkeDAzbGUkRzg3ankmfTU/RD0ueSx0Pmg1bmFDeUE9Q2sleS5bI016fH0jWX5nR2t2THQ1VVVHWFl8MlNLYU1iXnY5'@; put 'fiFIeUByI3Z8O3ZFaSJWPiw+cXMha35ZREUxNHR3UVN1TnMrQWdpOFklbGZXMltza2R0W1BydmMhMWh0UCpvKShzSFJsWSFUayNwajQiWllHYmY5Xz9JRDNqVV98PUV9QD1tIX1tQ0pgX3BJYXRVUkxLSiEkdGk1TyF8NHYlKlo2Y3xxUGZna0gzIUQ9b2hXOmRgdmd+fiU/XlVWPWoiQHxLdTpw'@; put 'WmRHKWY9fXIjUjBzSD9EVSpaeEB3PTtRbFc8KyFUIXNeNDtXdnhgaEQzSkozK0FXenlqfTVlRmpZfCo+e0MmPG5qIV1zfGokUEBBSXxDQ3ksXyptM3ldekRVUUdUWEFFbnU6RCN1VGtCbC8/VHxkbjM6I20yZGhnSn5wWG9gOkR2K1g0aS9deTZqQVY5MEsvbmc7fT14Yis/K3c9On0hT2NuSjAm'@; put 'fnlYKXMoNEBXPTtMVWdNXi5NUl94dSs4JC5PbV8+STc2MT0sZW0wcEJmbnBCVChoY29MZWZdbShNVyhkYytNRTFtTjtJRzpva2R3XzE/SCVZYmhhZ0QuX21iYmptaURpNlNgdXZTV0xaQSJmTXRNIm90VlNTaCVwPylYTjFWJUx4OFUmO1hNMz8wR0srQXpFImRgTm9YT29fPF1IdTRIJWpUZlV3'@; put 'OCpNO3RJLiQwc3cpT0A/aip0R3VXIW5CckxLfmtheit3PXpzbSZiTmxaZWNANWleUERLTzElSkZuL2J2WDlFJSVFKFhsP2J2UFFBd0VjRVVLdERVTEdoNCNARVVLQkRmRTBOL2J2aCMwfD9HOVB6bi5CdFV7RUtpIT4xWyl+XiwoX2NIeXNDdTtEdFoxRnA0fXZMfVhrTUxEOERVOXM0c2Ercl0q'@; put 'bXtjXilzQ3NZYitiXVhRUEw9Pnc9ZFd9JkUlaVc0JkUlTFVkLkMzaW0weVY6QzMsfW17eXlkeUUld3xqOklMSktIb24/RHRHYko0d0YmW1JXel1bJEtbdX1pPDd3Uld3YUhvQWAqNlBAfD9BRjR9UDt5eTR4RSUuKFV2fnkiSyE0MUVpUjs/dWJZKHZ5Ilc2fCFhLnkuZENzSklIb1tfdXxgRn1G'@; put 'XUY+KVImMWVRb2J2Z1NxIXl5O3dEVW98emFJTEtISG87X1hrUih+LjZuL19NMUxMfT1CS3VzNVphK11bdWJuZ2NXKFsiPyk5bXZVPCpbJk54cFtGS31edVpbN0hwUG9OS3piaiFdNFRkbDgkaHptM1hQNkRvPXc9UUxZPX5+cDVGT0F+PUwkLm9bK18jZ1t+YUdMYyxfQGRbfktHTGMrX0difFhN'@; put 'L3t8JFhYYixCdFVAMmBJOVRYIVVUaEEyRSVrP2A6UFt+ODR6azR+Um1NL1N+eENyV0xPMnVYcj5mTXlwdll2OW0qIWxGSV5kMDU8PEtMMV8mW08yW118KX5YV00vW3xZYGBzfnZHN2p8Pl4mRnNkI217TEdaSiNPdlBRNWRuTDhNWGpPSm4vYUNofktyVzRxP1pdZ34qcVc0JWBlXiF+N0tXNCRg'@; put 'JD0hfj1VW0x4MVFnfU1NRFZqOV81ImtFVH1ZdjcqKH5VQm5obXVbfXBYWEJPYTghfSgjQDVfMz0hOGgwWXNmZjBhYlVxVyopYSNyfkFwVzQ4YGowQH5ARUxjI187OCF+V0pXNExTRXQmSzt8Uyw9fjoyOF9NcDU+IUNBUl5yUlFxV09bUl16Q2E6IVBIeFgxck5FcGRZYHFVZWxGRXJPTW1mZWx3'@; put 'LEt6Tz5rdW1PUm0lWU5MNkFiV3VtKHtkbSF+XlNNL1J+aWZfc191RzdoN0hMWTZybWR8TTU9fnJETGMzXzpQIX5uR1c0Nkxwc313OHxZdkMkYWUzUDFfWFlAfntDTGMwX3x9OX5UU0xjYy80ci8xfV85TTxpWHVHN1t9bVRfc34sd2Q3fUJTX3NIQntfKGEuejhSb19xTllSIVJVNn53ZWxdVj5u'@; put 'UHNneCgxMFtZfDpmPX5bQkxjdV9TMzl+ZVJwTChrbnYyakEiMzN7fFl2d3trYFIxbktRTiE4eFNtZmE6d2U4TyNJeEJMY3Nfe3I5fk9STGNyX2RtOX5+UU0vJnxHcmBzenQwW1Z8OHBeInJEZW03YCNfMmFtQC4/X2k5SlpEcVcvQGk/XTFTW1dLP3VTSnMyLm4yYD1fPkUkPT9+fTBGT1Z8JUs9'@; put 'fj9II3xVaGNuPilRQ3FXOUA2ZiZ+fkFXNC9SJn52T21iYE9NMHprQH5+QENIOn5VIzBbP35OVSJzZn5iV2J2WnUib0hIJWoxNWdgXXJnYFNyL3BONHIzaz9lT0daXWk1KSp1P35kYF18c1c2fit6TGMlfkhrTS9BbFg0ZH1FcjF+a344eE0vKD4hQ3FSR1pNP1d2UElYTzYqQFBeWn5rT3NHX0xC'@; put 'Im85RjdqS3FRO2l9MGo6clREPCpOJHo/MFNHWmd0SzV9c0B+W305eyYsbzF0VyJzYixBdCo+In4kcz4jKWhefmt+QWBScT5+JX1WZXkoYj85MkNUWk5ba34vSGZkflcsTGNgczxuek5OMn5+On0yek1+ZzEufV4wPX5QQHs3REF0KGlzMCsoNipaM3doTmZ8Kz9NLlZ1alE0en47eDprc1syRz9L'@; put 'KyVPXXx3bkBzWzJsfCZScnZ6ay99Vyg7SmlPPy4mamhWXjAhfjY5emt6c0BKMVEoMltoKlR9Vmw9bXJSV2ArVz5KU0shbShiVT8/TCo3O0hpLEp7eWNuPno4PlI3TEg0SC9tcilAK3g5UVBOYlRDbjk5I1IoPzZXbytsOkM9fnxIL315djdUXnkxVGx+MVRTYGlIP35qOz56b2I+LmJJJDMzUXtz'@; put 'OF1NSlQoVEM2fFVoclcjfVsicVd5fl44VzROfSFEWDRJYEI2e3NvXSpPXX4hOkNILH5FPz56KlVBImA0fnhkYntKV1QvX3htMT90IXVHZz1aWlFUTGM4Lj1HMmBQWV59aWw/c1dUZXpQW1h3L3wlOlYoc216W1BbKDxVV3NtVzQyYDFlZn5iLjhKMWBEQV59SilVV0QhbldCbSUsdTIwUk5bYkUv'@; put 'fE8qKH5CIWRfQW0hJHUyOlBOWz5EL3x7dHF+fmhLTEI8cVdBVG1iWS45RzFgWHdxflo8Wlp3MkFOTltkR159dyFSNHgybE9efXUhYHMxdlpHKGBHQEs6JWt1fHVaK2NmWmU/Rk1HWllNOCl8fUViWUcrKGI/JU1HZkpvZz9WJkVFay8+NWhtTzUhfmkkV0t3LDBFSElmZyJ1eWd+W0lnVFRjZ0Yx'@; put 'eDV6TzEpfVtqenAjN2VRJnErbHhvfCVpI3koaEZBflsoZldrLzk8PHxiZldbYypCfH5UPyNaXy9dUTxWKG10VXswXlEhYTxRdkdBfWEjRnhXS2oieEU5R1lOTURgKTlfIXksYG53I1lGKmd3P0spTnFNR1pJQTYpMFJycnZ+flt+YDdZPHlmPXEjVFF3aTkqX08rSWV6K0lQR3A+eVIuYSwvK2hl'@; put 'PzV1NUp3OzNqYmBYME0sMCVuSmhWT0RRUiYzN3tyY2NNIlhyPzhCIyhFeTRlSmBfRi8xKFU5P3Yuc35RfnkzSmYkM2wpTTBJOjhsc0Fsc1JAI09BXWpmWWtQTFN0fGtba0hadVdmWVh+S0Z7b3pvMm90ej15R05qTyRSOF8rK0RiK2NMUmI/KEtsVTRrMSVXS2phNUl6W2cvaE8+NU5pU0Znfnw5'@; put 'fF9mS1IxO1ZsVEcleWhSN3lAKXVmdFFbWHdhRHtELGcwWTc1UnV9Ql9aR0osPTVubj97elhFd0UodSImP0xVaHlGRzJYSyNUX1gzVkMrMmdQM2k/KlpnfTM7WltXUz5OZTM4LlgzcG9pRFNSfWdwViFKSj9GdlM7K3RYVktXNC5nZzI9PEB3Uzh6eWFvckEvOCkyZW5VUiVhMVUxKGJKOWhrNm83'@; put 'fXZ3R2M2e2NtYTtCfEZ6b3ZHUDY9PF5sX20kMCNFM0cxfGF4LCFsaE1uQGh6ejB2UURZeSw+el5ZXnhIUENeZ0lIZF8haSEueXxnaGI5I3VLTEVoW3chJHEsODNUWD1aKD8mM2g5aEk9Wi5jJFNyQmhPJjNQJnw/TmUsXyVDK2xQIS4sbEMmciFVXkojKWlpPyJfUzgpckl8Omx1cXU3PHBuK3xt'@; put 'W3BAXldNI0VfJWZyRkByPnFrI19HKDl7RkQ6KT5IRFkuJUojUlBGVFU9JCtlPCY4Rn5AXSg7ZEtwUG48U1FNPmF7czljamBpYzAwaFJwQlEmUT8rYCh4UElTfnVIZn04SHNndldyIlp4PkskamxZPThRbzhOKykqUVI0cEMmZnJ6XUo5SUtnTk4jRWA6WTgsbDIpYjYwRl9QNj16e3s2SkMrLjJw'@; put 'OV5ZSVNIUTMlPG5rSS55Wm1OK0pNdilXP2EsayRzQElLITc2RzwyYTFlXWBdKW02ZWtQM003OFd6XnVFb0JoUUVuPDh9Jjgsakp+QF1zJG5mNjlfPT49TVQ4Mk8mdHsxalFyfjA8cHU5eT1dJTV8OF0wPk99KTthdlBEWVMheUVjbzQ3RD9aNi5RJGlPdSVibCNfaixfeUAoKTBHTjdSSGY3JTEq'@; put 'JTgpRV0jMjlMP29lfnRyLCEhWk5tUXxCdztEMGoraHYlWnFYflJmbnFBbW57Lz95cEUjJGJuJUxDWyZgK0NoOXBGb3RIJWgvIVpsZ04qIXBvIWNTeSkuYUJOX0g1d35JQyJdRGY3aWRwJE1OR1o9aCF9Wl4pOiNNfmpkeU1LKyldfUJOP3QjWmAjcUZYPF1DZSMzTlUpJFNrWiJGI3pKb1kwKWd1'@; put 'fGl5PmZDOls5czVkbEpmUTIkWm14eHo9bGBTIix7bUwwJXcvPkAuUmNbYitaYCNYVzB2N1crY3lQJD9HT1s+eldsRU1hTXk3V2JYMldXLzxbe0I9bmNFVXRIVXl5eHpEal16fih5eS40JT12eGA4Ykl4QmMoaTA/NXgydUU6Izc4V2FtPV95c3V4TjE6dlJFYHxQOnV4ekRqODF5OXZGIUJYTzlv'@; put 'V1h0NDliKUY3RkZAR2F7L1ViY3ZePEZtcnQ6RmxoaEZMNntIWlRYcTJZK1pMOXZ5ZF50Kno4M0xyQT5PNCNlZV5OYHR4elVnU1RHWDZSOWxedGVVLkchP1cwdk91JWNiZEpCKllxR0I4LnQ8KD9tdTY0QE1uQ3p5MD1vd2hUMUpVN3c1T0NtWSN9dU91JW0lZT9OfTBIa2N3UXBCaVc2QEx2WUs3'@; put 'VUNkIm8kNTYpWns0UkM1O2BZSTE6YFE2QHd3SDNiUE4wPzV5TH5JSzhWIUE7RipwNGxjUVd7Nm9DLzRRam1aYll6RWk/dzJgUWpIb219NG5MTmAwWSJveyllIyRRXXU9VDlfSHJvbXw7PCw1TWhsOTV8QDFMU1F6TigjYnh8N0kpbWhZMFgzUXdAelNHcEx7bWh0Yy9UYUo+QkcjPGxYditObHYo'@; put 'Qk5CZ0VIPSpES016MHlJSjRdViFzbi9vbUIobmZsfjU5IithQlorWkVDZzJ5OTR5ZF49SnBoUG8/OEhKOyhQRFV0a08mWipXfFJTZV58JERLWjx5W31AdVVOPHQiWDBZIm9QalB2K0QyVyNkTCErfGw2KmM0WClGaXRVeyNaNkE3QyM0O2lRT2lOUW93PnosJVR7ZVFkbUhAaDVkOUpUWGhFTmcr'@; put 'Qixkd090VWVHQ1RfbkdII3ozYl43eiIpZyo0fGMxLytlZVpYb3hbNlhXNnhUOz1HKy9GcUkheTowNilIRGBRcClAUXApM2hnTyZabFdFU1Q7JEFHUlBWYUIpSUBRZTdJI2RPdGcyeXNFL1M4OFVrN3lBaiZhS0N2aEwzV05SdGJPJlpWV2tTVDt8TGtOOShbOUZOMFdsUXh4U0g9SmVkcHpxc2lr'@; put 'azghNUZtLjx5Nm1Ic11HMCwoOltkSk5wWUlDPFF6KVMlImQwUHc3eWMhXTE+PiFQL2N2KUNiaywvZkUzdnZeLGRFO0FPcDI2dmF6PXpOWGpodj8mLncuRiwhNTR9dUd6QERwQnpjcHpLcz92XzcoWCEqKCM1WGV1KVNkR3hOOkFFNn5bdlt4REUiOz5zUHZMWzo0XzI8NkZsTyFfMENlWmUzWGJQ'@; put 'Qkg3Uz9eMGJQOHlDZCJvKW83KWRLKk56dH5sJksvamdsRWZ7WEdpfGB1T3RVOmNlP09GKDlEeVIqZDRhXV52T1dEWnsydU90VWNHZT9PRiozWlVrSGZgQDJ+eWxIUCIuIT9tT08hXyU7OzskWS5EcitLPHRNc0xyYnBKbWtwPTlfJTs4TVUyOVddMHVDYzcwTDAudCpzRTdTSWhyMmYmUyZwSiY8'@; put 'OCNoeE91WzJhTXUlV1JNdjglRlQhN3UyUEdrSzM3flI6R0ldYUxNYTViT08hX208KFIiKFlObEF1MDdmN14+MjBaNWJzX2I/OyE7Q18+I0dEdX5GeDVUeGR6LG5XZVkwWDNjY2U/OyFjLCkxZXhwX1BXezg6dTJQL0Brel1HJEdlcVRtU3VxemhYdHR5OTFecnpscil7TCFiUm91Lkc4QVhYXzhe'@; put 'YCN2S2QwWSJvVlNjI3VaMEYqaG9HUHk6ZDZTWmlNRkdrV2glWnVMPCkrZWxDcGhsS2lMRkZIREIyPWZRY0FKSyxYZVkwKWdjYylOcml9ZWFGLyszT0giN0xUVDhlfCh+UWJNdFVLaXc4V3lBd3c2XlgrL2NrMjZSUV5IT2whU0pCfSkkRXtIXkN7dUUpPDo1dH1NWkB3SnZpfFV8bnhjc3VhY3dh'@; put 'RUxIUG40UHZ1RTojRXJSWmEya0AsaEVIRiJmMkU8VCs8Ty9baVJxQkUubFNmel1ZanZvMnw5e1V6bFFZU3EwRUQqUVdfOFlFM0MqLCZLR058e3wpO3ZeZF0qcU5gaWdBd2NxRHtuYGREc3ViM05ETUxIX31yYDZTaC9xVT5oLFRlSj9fcmkmaWNxOl1HWnM2cEg3TnZVRk5iWXNvfWRqYjZbL2Er'@; put 'WU43XnUkeW8wTi9GNn5bUFpZdlphR219UyVjZlo0dXxQOjZ3UzdGMlFnKUlhey9meXNFejB+YEl3WXs2eXlWLHBeOkF1QUtue1pJey9hRjNJM2x9clAhS2wxaG83UWIjKGpeXnE8WWR5L2QpOyh0W19rTik1RlRuZGk2dy5kTzh5RG8yMHp0a0hhQXo6dlgjW0RLdUBkbHJqPUF0dGkwKkIkeTw8'@; put 'ZHE0WXd1byN2T3UlMUxjZSRNbE4uPk15OGNgOGw0THpJIjdjNVJvZEg2MW42bF1hXjpGQj5yLklkZWZ2byNiY2xoSCpKaEpbS1UiKUlpcVNNYU15XXY5X35EanlpQUNDMlJzT31TI1NGMnNkWXVVJSk5NEQqX1JKMnVLaT9mWi9IT0FPV0A5eHdLTF1taEd1S3R3Yy8yIShaayNbTzUlY3YwSWkh'@; put 'eTFOOjdeLCIwfFVBOnJvNENKRWlpJTp+KjwwYHR7fGZKbjxyaWh2blFAX152TEE+PDcoclNLRHtrRXd5dSg0alk/U1J4cWxIKXs+MyxHPFZGVSohZXw1aExYcTxmbSZsQmpUU3h1RUc7fmBTeT1bYTo2aiZ6elcmL3dRdj91Ti5JfHFebVtCYWl7UlNtNDohKXttQS5KbUxaKXgqMyNIVHA5RHg8'@; put 'U0tQbzQ1bWxfKVBvOnVMdF5YSUF4PFEkL0ZacVVZK1pVXVZSImMoR2AvYEtkeDtmJXAxOjRZM0I7dmRmczM/I0RhbGcoWF83OFM1QXhRPmFDSzxMeEdHZ3QiWCkodXFAT3U1RnY/N2NwelNVOywrZSJ2aztCWkl0V3hTZ2Y1UFsrNkRIMUVYTyZaX0oua2s4KTUpfmBla3ZHKjI+Q3BQVGQuQm9E'@; put 'TGl1bTRATSRucjN5OXYvQiJzSl9GYGsjXUlSdGx2TSNNRUVPTkJkIm9MWFl2LHdBfUIiLHFTTitoMig8KTs6enZTdnk/e1FaMFdLLEZlP1JNOHlCIjdAfFJ+QjokYGtBOEtGJlBARFYhSGF7L1B5MkV5SEUzfn5LUCQxPFBrKXFaX2RgbyxqRWYodjVjcHpicGlrazhZQCV+YGV3dlVBNTEiPixV'@; put 'OXgrfT92VkE5ZitaUjtmMnk5Qno9fSloNDMxbnJDdCFjQ3FlNlhta2ZaTFBNYWo5SCplcUZ3fUBCIkVdOkY4Rkh6Xm45I3ZSRFE8I0I1QE1dWzEvK2VCd3F+bkk6LnBFYS9bTVRhPFRmXmhBM1tDYXsvNS54RXlIImB+fktQUzwuYjYhJFBIWDxUQ2V3UWJ2Wk8mWnJVRVNUO3x8QiJSdStZMUM8'@; put 'KUJyZnYhZmM8eFdVZCtaLC82MXk5RnpBIllsQTBZWEN1WVV3QypALkk/V1oyd3V4eiYyYllJaEpNenxBdHduTGZLVSt1UU5+MHIueTYkOHdjcHoyb2lrazhaQCV+QDkyeDdXK1VoRmUvdCxwbz5ZOlpiWCtaaS5mMnk5Rno9fT9RU0c5TCJdNjpNZmYyXmghMD5jO0lZMCo9TXc5Xy5HXyxCIkw9'@; put 'RkxoTDU6JmMmTGlSK0JqempXM0pzaSRHZHlpd1F7SSpkeGVPTWYuZEB8KWgmIzRMYlJodzwsNzpwW0IiYSxVdkoqTCZ2IXIwQzNGOyRZaV19RF5BfShVQ3RZUk1EPUtXJUw6JExicUkmSy50PkxfNEJ6bSZoI2VNR2x9UlV3Pzo7dCFkR2FEQH4qIUUuJDpCPXg2RiJsYzV2LzNnJHI4aXJ1Jlcp'@; put 'cj5BR15SN1tgQ2tlZmhWVkpLMzRvamkpVUlHXWx1NDI0eWV4TGUyRCEkVD9YJnd5JjNZeVVhWS9OblQ4SVZDQE9FNj5lLi5wMU5pTDdTUXRVKmg8NHFjVnlnbSpEe2syKXhQIj59eng3KE05ZTVEJV9ga3tSPEJEMmswejcoTV1AdS8lVCtPL0IldG5YdV18ZV9MfTEse0Z2QWFnQkdTSU9NRUlI'@; put 'VXtXPjFzZ1FTWllRVGcoVyYkY3c9WHMyd1txMU41TGZ+P3JJI3c/dj1YQ2g4WFcidHU6SFhPcio2Ilk0cWNyPThyTj8ydXE0cHpBeWNNbTVeRlBrQ2ElR3pYZU91N2xYWVB+Nz5vXWpBTWtuSVlkQmoqUCxAWjtDZ3ZIW3hgNC5IOjZZIkJKTT5KRXc5WF5SS3piViF4bWUlSEd1WkBOSmhKYmA9'@; put 'bj92PEVeS3MwbWZfIm1mYDoiJjhHdW9iejF0Nj1kbG5aUlFoSnM6X1lodENlR2tfRUZnMyhKZl06Y2NgVnVjb3VsWjkieFlWO28vIzpibCJ6blhKdF9rQFJaImUmXTYmOm4lcG82U1J6OFpRQmVvVSg0IWlkKjQrcXt2eit7a30ud0xnVXRGQXY+QFk/SDdISFosWSFMI3dPSGUqNFJTK189eFpH'@; put 'ZF5FVzAod2JIO0xgalZdUCwhOVtAQEBGXWkmez5meSZAcCV0JU4pSWdSckl3aVROQXY5Pzk0NUZASVRLckh3Zl9FX00lZHNpXXJYRHJ2bG1LekdMPmFKS3pHPkVJeGF5KnlvdVRkTWIiKGQkO09ENj9lV2FKTih0d3IlYG1udzBhJlJoV0trLE0/LGhjWXJpK3JtMmRYOEsobUdtPEN7KHo2PHcs'@; put 'NFRhdGhud1JSJF44a3o6eEIoWTZpVmE/Yi54W0Y1OlhYO2gpVG1hP1o7N0kwL2IvRHhCPi9idi42TkZAaSEjTG0ueFpGRipiWCg0ZU17TW5SWFg3Ml99O1J4TXZTOGNAQmd8QlpuN3ZhNT47dEdeVk4pfl5IOSNvRXptXlIzY2EqSUx5OVhmQFlgSntKem04S2tKbHBaKWc0Plk1KnhJeWNRW0Qy'@; put 'X0gjdUU6QFd3I0kjKU1peWEkUC5zdX00JVo0R3EibzRTSkVgNyNUT31LLHBoVDttNmM5TylqNmRzIXVOX3E3Tj5GZUVfPFs5WUx4QlRtNm8uVzxGdUxSX2lSYCguayVkejJ4MUdaOXtXIilrL1J5dm47TUIzamMxLFdHRzBJN3glYClrLkExYVRta1tPYEFnKUdvIltMRSF5VH40YS5GUyZnW1F5'@; put 'dTQoQnRqWEhlOmFGZzVDelhsdF9aOjt1Wmcqe1EkNyNYfklPNXR0TWxIQSJlckd7S2hjdTtOTF51SSlyI2kzWilEeTQ4STc6ejIsLnd+KFRYMzlFRn40QHRfU0dSOnZsNHc4KGoxMHpXZno0KW5dSihIUEMpOkc4WEtZT1pBZ1hjUHBSX2FXS3RINy9GIz0+LywsTk9QcFNoSEUzXUI8STB8JX1J'@; put 'TXUiZT5sZDJodXYrWlZWOHRQfTQ9Ok15X1M5MSMpa1pKUm4lYTNDaWVTRnhOWDYyc0JGKCJ5UWdeJThNIUsraDBDeC5lQkBMeEc0YSw6ITJXZk10TlhNaVhGOlVTTldgbXF4SVRKKTFOWG9gOihlUCt6QlBUNSgkQkI/aGJLMEAodSZmflg1elVZMT0lWm4wMFVOaDEiU1lwSVVAS0lnNmVgZnEw'@; put 'VXkmJEIoRmVKU1E+QndVZTJtdFBwQmQ8UV9XMV80TDNrU2RMaU0kVHp9VzYyPHZ7aEcya0VWdClXR246Q0JQblQwLklSPmM+LygqY0V7dT9HfmREYTU+RV9uTkZSL0hGSU41MFc/N3lxTEt5aWROW0NWNjBrUFRLXW9Me3QrLkdIJFNBTW9mfTBNYmJ2ejcpeUxrLmM8RllMTG1aIXV0Lml2THt0'@; put 'NFM9eSNXN1YuT0lJanY0RHRHOjc0NHNFcmJGSks6NyhAJD4+WzU0N2ApYiVMSCJgQC9EM24pMnNOL1U3L29dakhKNVBFbHQudyFwWCQiYWxRd34xYi9CYDFuWEoxRU0mUFQsNSR5IiwsNTFRXlg5QmFrQ0ZtXzIwLldeVmdnQGc+L04zUTV7Q1MrZjdSQC58JEssRHx6TFtOQT8/RyE0Ol1xNz1j'@; put 'a0xCQkRQWT9JemosVSVjPUNgQFUhPnR2dU01MzBSM3BGLldjTGUuV1BHMDAjaCFDNG98RTZWYzJbLyxjdUdBLE59UDc0cS4uK19BTi4/KWhlYUxoRW5eQDA2bjVIcyI+QDw0U1ckWmMxLy4qIzxWaEZzIjtya0xAR0FEWjZGazZLMDIpNy9gfDZ0QiYvSyErZiZDNChtei40T2NkV1tEWWpxdW1r'@; put 'QUc/TW4/NWRDYWQ4ZWU/W3sweTokL0JRJiFMfWxtNE4oRENZIjokeUVFJldnOUwvMjFrWklaJTFbUH00V0Rjdz52S31ETTAuU0RyanZTaiEiSTApYkI5N1BAdWB3am4iKzU3cVprPldyWl1CW3MrLlJYN0hdejJRZDQicClHIjU0eUxrNWYuL1ZpUWYkOzZ5Vls7OlpdLlB8WDg6bStiZW9vTkw8'@; put 'QVZ7QWRjQXhCZj5edlBDNHdVWUNkWzdWIVNoX1FqTGAvK0BNTXRgb0BNfT1FIXZZdzJaX2tkYDJMdVYuaH46QjohYThYXVgiJCJtTjd8SndjYitBW1RYMU4wU2Q0MG0+T3pqQTtUMEcoTDF2TE1JODdYbXcxfTp+Jj89XW5pWj0ifnxHSFVTSkJNfU5fU28mYWFNTjEmNFBNdGlaV3hzOT9UUGFD'@; put 'Nk1CQkgjJFpqNDhrJntDPXFXQExYa0UjTlA9WjR3YTQ4Iz1taFY+T2xWUSxhNDJLMXR6ZVlaLCw6NUVCT0Q3V3VuSkl+RjFQaX03LG9NTHR7Q2xed1lCZFgpcnQsI1QwM3dPUGgxWiV7KFpOJUprN05ALnx2SWpITE1WMV12WGY+UHZXRjRQLl5vVTQ+Rk4sb01yTE9sZGxCNkVjaHQ9aH5rMChX'@; put 'Y0lESmJSZCl2MW93QHcrZFg0YzkpMms3IlI3NE14QzppKkxEOlR0Uk9CR24/Z1Q8ckhbPU9oYk06STYxW0IxRjNjTTxyO2pyNWd0MmtrZ0dEXiw3KkUxXlZufi5nJlg6eXlkckMyV0ZtVEhkYEA7Sk12blJkQ0NlQ0FZI046N3U6RG9bUmFGRGZuYl4oPHd2dTl8ZCo0YHhEWGRYdS5sKWB0Vl48'@; put 'RVo1WGMvc1BkWGczSD94TVhYKmVDNzI1PmNMRjc6TlhGeS9CNiooeytCdm94QismNyNeaG5ib0xXb1JzdFgzVzIzPEZ6ZCtjKks9ZmF1cV5xTGpQa3k8PmwwUzBeLCF3OiVZV0E+PShVM0w1MWI2MSR2QmZQZVpdPFA3PDBHM1VsR1IqQFRZQEh+XV00NCthZUdmW0NhbnN4V2Y5MHllS051RmFh'@; put 'WEhLR2lLRVJ0LmVhWkk8N3ZqLyxOWCxFSDRue0V3Lk59ZjIxSVFKKU82QCVCZFAjWGxnTUx6Uk1DSD17Qk5uNElPPENdYzk0eWJxWF1rTTU1bHZUJT91ejQ5ZS9DJEkiV31GVjBuSncpYyJXKThlemtYUH04V0NKZDVFTUhGRnY/NmUwWyNUaGNgOS5iRGxheXxrVko3Z1VMZj9ee2lNUnh+VH1j'@; put 'PmlgK1E7MSFvUlo0W0M2WHhFP2gpa0tdK0RuVGNpckMhayNkaWlOY3x3NnlAQm02eHxyRkh0VjdkP2hxdlA5OEhQM0w2Rj1MYmUsN3ZuQVQpTWhtK0QhZVZaZzNQP2FdZCJERDJSJSxgQXZ1M1oiNV1JOXguYjlYQnRSJEBCK0t4W0RIQ2dOY3sqKGFMKzMjMmwzTE90aTcpM01jMSlMdHRmUGZR'@; put 'O3d3QnpPP0J4T2NRW2kjMV9hSGtKPFUuJHYyITFVJHAuWyxnLm85VC9EQXVHMlciXUl9S29KOXtSR3EydEZCPlBnQm5uLjd6SVhCUTYhNVE7VFh2UC9HQ1dBZWFVRnZRdDd5dUhHS1M/OkhvNjhkMF5sWHFGV297dD5NajtbWnE0JTs+Q2V8WFpMOG1PQ0slWUpZfU9AaF1FQVImTkNQXlA9MSRU'@; put 'eGBBOH1LaFo7a3srKUQlTHRlQGkhRWJkWkZ7REIsY3B9b0tde0NwRilXMEQkT19IT2lmOGRTI0ZWVjxpSlhrRFIsLkJTe2RLZUNRT2FkS0NyMEZ0dS8sMSImTlhlPz1MLyohTWUyb2F+USRNdTI7Z2liL3lyaj9KZUo6b3JEYHliLG05JERDIT1OLE5XezppfUFrSzhAJTtuLFNDdTRLTzElZkch'@; put 'R2UlWi5tOTJ4S1JYazdyakgkNVNGSlhocz5sN01tbjApfnJGZGxSKzQqJF1lXSpITTQ7VlhaY2V0YS9AUUdDUSVLJFRkNXg2RilOQGZra0NpeHNUbVp0TGgsRCEhajFZdiZAbnNUbUpqe1h2djt5N1NgVyg6TyI0bDRaXTp1KmFxWmxkOSNeP0M7OTpFK0F5Q1oqQjUlUFBHO3orfFYkTCt7d0Nz'@; put 'PFc9Z1VhbmU1aDcyIWljRUJFektfOEFeV0dsb1YoWlRHbGd2amlpSUlYe09GbndBUSVaVGdmbEMjNTphNDJxaVRqOFk4QEw9dUA8b1cvMWluXngoMG9tdDhATD16aiMzYCNBWjhFM2ttRlRJSW96bW1gX1hQelt8YWxFaWJEJWxlLFYkInQxTGYrcCorOjJBX0MpY0NmUTttd1tOY3dOY3c1IkVY'@; put 'TmxzajwxbFg8V3VZRGdHVHZqVktDQkJQUE5bTD15Q2pZa205Sml9X2shTX1FLzlkYjlbfDUkKmlDQXZ5S1h0dVc5eXBtQTU9NFIxYmFlMn1RZysjNDRoOTRWS3pLfEJHR1RUcGJedmJMdmg4TD5bNHZUMyVkL01uVHh1IlRQZXNpXUEhT0V3Tzc3dURfOl1uK0hQbzd6Yz9WMjxnMmdMblJndDpg'@; put 'SFBrSGYyOC8zIS5jcUQ6Pmp6KWk3ZV92Q0IjbTFAYWx7VyE0L1peZV5DY0RPK3dTczRaSCooT05tdUtQQ05xU150RzBvNXBIKVlLYSgsOGVQT2NjVTVzU3o6PFRhVj5IP3ZbSVF2WTA7OmJ2b0I5WXNBZFN3cW0hMGNKUkIzXUBZNHYoWjtCbENaNnxnaXBMcnVrRS5MUnYyV0FBQUFBQX5sZ0FF'@; put 'TVFhdTVbNXhEJklpb245Vyg+d2tzL31jOzhOeTQ5KjQ9XjZSITx1IVNoRnRSXkBocXooWX4jTjc8fE5sQkYheiJtWTduNjFrcFh3SHhAVjtkT3V3MmUpOEwxTUZSPXN5I2hhKF81NCNXcGRRSmVCOytZZjJ9SjowSm4reGZUQ2VfYE1tWyUyV0pFNERRUkp8RXZ9LixqOVhkZT4paFJCUUBkeWRY'@; put 'Jk9dSzV+P21zSlFQcz9WRj84TF9PeWtpKGFmTks+bDxpdUYsLzYqNmIjRGclQnpzTilPXkdpZjl3P19rRW9lKV5oITFFJVN6fC5mNF1ePUY+JiV+Vl01c1c+K2AiP1IhOCFxMkUwPXR0NWJkN20rRXguQD9pPUssbVlELy9TU0ZEVi5LQ1FNeXVqWnNzfjNvLy9LOkdCOHNJXlI8UkdZc1ZsajpV'@; put 'PlZZcyZhejkrOiRjK21ddXByWUc0TEduc2x7UHV3dlU9ZUdqbnRKWEBvckZlXng+fHdgOmUoRlMkK2R3U1lyOmFNcFM0WT5CRVVKdnw1YnVqV3BiVTVoMyhTck5PTTEvVFZKQzNJIX5ldz9fcCltQHwqbU96VHRsMT5xVXBzRnVjaVVCVTk0QjwzTkBvYUorbSgxbyYsUVd9NnBDdy82WyNrMG5Y'@; put 'YWwociRKQGRaO29fI29RLHV+dHtiZUlHKWUoWi9AIltHMkJZVDt2JWgyJm1eRkFITmZFZHRWbWdIelNSfVZWdCI8bDUrbTJPNXx3L2J9KH5wRUBRfix0QnV2L0BecSx9RGFPZl0vW3BGVCVvUTdsSEtLVFFZemgwfktWdGlVJkl7RWliVWJhP2pXb3hSNmY8MngiaHV5SWBJIztJVGZWen5oRHQq'@; put 'b3RVXV9BLE5kfnY4cjsvWGcuek49cC5BYERNdTNybn0uUCtEaXkyNFtfb1t9b0Z5W09FLF9zbktTaXRuczo2UDBEZ2U+YHNXaF83OjVkYVdDVStGYClMKyg/QkwlUis7YmRzM105c2UlNk9nQntyI0JFN18/b0d1aT1udVVoRF42aSNTcSZbZnlufW9PQnVFYWE7OTxrSUZyeUdoZFZbRkttVVRs'@; put 'WTQ2TnM8RE11andTWl0jam83NHEyJFFATFNicFQ4SUZYeWk8eCkhdVAuUGRAd19KbXt9MilfYGA/b1hFRjcqQ3NuK1VxYzpsaGBeQiN+eHRlSyE5KCFTLHMoU1hfcXo0Jn5UbnckKUFeXmpeYHxNYmdOM0V6TiNeZ3hKUkA3b1txKjsqcjBFa2RLeGRmIX0pQTQlMi8/cXlOSH5eT1teQ2VxPWR3'@; put 'IzM4ZFk2IU1DOmw5JlYwZ2J+ajA6W3JIbVF3YnpaMnluU3o1dHVeW307eTBOekpFeXosU2xELk54Omo2ODZfXlhzQjlCd2tiPFQ7ZGlONWpEJGdzRnQkOFQwL2J5bmVNbkg4eTkpZH5JK09tTmdTQnxTW01fPlY5Wnc9SjUofSEkeTpMU0dMcltafT0rOzM9PEMjUlJpZFJeU34jJCZ4dmQhSDRM'@; put 'SX1MP0syPzhCVXNvM1BFVnd8KXA+dyNiJSpKYUBUQiR0Old5bykuOjJ5fXIyUGw3cnI2T1NpcHxKT1NiXSFSbVVWRjdENHxTR3pSbX03NDlqc0BNMkVxJltNU0wlfFAmcTBqR0YubEA2UUlqNzRdPnpLcUg+aSYoWXQpUSV0K2t7STpHLEQkfmc9UiouaWAmJlRnSSR0NmFKailvMkVEeWldJTRA'@; put 'cG0pe3k9fmVqR2BUZ0JPYk43WVhHaCNFd1NAWktuaXRZTDlYdV00WW1MS14rfXtELyp+aClKKm1xSltHc3JrZD9teEFJXzEuYkZTOj0lenZYKn50XjpAOFNjV05xUkd3OXd0SGYxS0JPOV4wbmU7QSxWJX5aITtIN3lhflohbS59Nk1DV2FlWTBgO21gMkhsNWllYUJjREhyIXV6L3R1M0ZZRXhr'@; put 'ZXo6cnMmT2sobGZscjcodlFxVG8rQlkpZyZSXWNNTChnOGpJRFZ7KDshPEg2Uzw8biZ6a1NKJDAhKWplLyVSJmlOfTtXRHZPa1VbSi92JUlsNSwvYlAqLmpQbUlyZTpOZ3dbXz1gWFpfYD42XkJ1RWFbe3xeZ3VFbk4kWF4oRD15JmgjPDNHVitddEZHK3pUaS4jWW1yQVdzKSh4PlEzUkZdSWpf'@; put 'MkEke3RxWF1OeGUvJDpzX2tQeTYsS3tyNz8yMTt4Xmx0eGh0Qj9bWyF6al9tN0ZgZypDITVGcHJ6PztePEFfWDE4NkwoOi5wR0JVQmBDZlc5SVtOO3k7MSE9dGFyL3h5PykxaVdZTzcwImo7RCF9W1cjPlVTPjt8TG95ST5ofj8yJTczJTdQQlRbRFRiPWFvVnJsUG1DbSZAfCRnWV5hbCt5MiY5'@; put 'OzAwVFg7JWdGWkQoSm10LEp+NnJxZ15pbXg/MEU5ekdeI0RPMUpxMXElMWYwNylkbmNecXlLfVNNdFIie0I8MCNpNk1mPXgsIzg1NGAoQzVXdFlseS9NOT5yMkQxMileVWZvSmIvRkowPm5AO2dZI1Zva2QzX2xfcUAwVHR5LHZBPyskKEMuJSRycVBwJTpCTDFnKHQ9SChyWzpJanc5NyI1PmUj'@; put 'aDtZUXdmS1VPLHthKXZALnh+dlA7XzhRcmBRPlNZcFIiM0ZNWC44ZnBKXX0+QEhVQ3RaMkFDJkxeVkR8OkxqcmJYeEIsP1t6dDlyYEV+XkxHT0JIP0ZYflsuJHpTUzB7UzN6R2tWInkoeFM0bSZALlc6LjhPKmc4TTAjMFUyMDBLfHQmWU5VfGxBYUNgZCFNLD1zXzVtQ35xP2hbWmBQbHtxdCVA'@; put 'JmRSVy41Y2drVihhKTU5bD43alB9T05JLGZsN29HYnRITlM/KixyZExsQlJrT0hTU3VyNUVsKCxsTStoOCF6bjEkNG5KfDpaISljJEtzM2FiS3c6UkZqNHFJMkl1LCJlb2RTTDg+SnM4b31+dUpAellsZysqbThaI2skdHVkbmJBfUdgYS50cHMrOGliIzZ0KElBISVbOG5EXnpSLzwpT0pKLHZX'@; put 'fE0lP01uNHo4Z3lNZGkxMUZPbiE4aTZ5aEZGYCgsKk1pbU8kI35QZVE4KGhQZUB1MTY1NDEqY21tSzFoWkNFOVRjN2ZzKjs2WDZhcmFVYnF2YG9bP1ooZEtYKWBSI0hxZSpMLix8JWZIM11FLHRtfVlaJWBAKH5iQDEvcSN7eWlke0VJLnU6bDFdO0tWJHVnUUhTLmptd0Uxa0hAVXxYcSNhUHAs'@; put 'S1ZLQ28rNjlHQWcuQV1MSCt6bG0mNyExJSp7Un5ANXwhYTRYbWc3XSw7SFthazRgQDUoRlZeQmUrIWE4QEVKNTBGXi9Yc2NOTXY0L2JHWE45ZTJEZDFdNiNbVjFqODoyM3dwTzUvISl8THptZFo+M3NRTi8vI0g3aldfeiFSZlJIQkdtZlpRNDZQTGZoYnV6bztgfDFPd1VlemJ3PUZ+KXBkKCZh'@; put 'JX4sSXwmIyVzTDFDemt2QTo/MUlKeERuIS5WSjQjVl1bWzA7bUtVQ0tYXj9FbEROfD8udkc1bl00cC8sK2w4ejNnYEJodmBVeUh0SGhldmhWamAjT0xkPjEsQCIueXM2JC41JTUrVGQ2NW83KXIrfDI8PCxeSCo7VU8uQTczXUdDRVlKL0A6UUB3T3BReWZeZSJbZFBaTm9fZHpAfTBmbiI6T293'@; put 'bSJsL0Z9YnpOOD87clZoWWJiNXY+aGUrRG0/bksyJlRFcXxqbitsUzJ+LkRZVn5gei9eXyY6UUlnZmM0IjVjPmZxMzllUlsuJm16cTdUIXteWmJLTEI4MEFJeHlUcl06KG83XmU2SlJaTjdeY3dLKS9eLm9rX1spY05wPytMVXlxTHwjKHR1VE5pOzVsKUc/bFhrbHUlJHxSbXcvLFhqQCUwanNW'@; put 'ZjVTMVtYcyxGPz9LRVFubEArdGpdU1tAL3NmVTtWXyFxNixLPUk5eX54Z3h9aT19QHA3fD58U1paT1JYck9nNytuT15+emNhRUNndDhHV3dLdnBfPkVxcCQ7Wyl5aExvYF4zZE5WbzJWP3ZAa28jcmdeTTQ+VjBlR1k1QkxMRyJ6alk1SnNbfVlMOHxrPHA7ajRmVXxqdEo8NzwoKTVaNUJ9aXVw'@; put 'YSh9NUAuMz9iMGdCZEB7YzJ+dnMrPCxVNyZ7RW1RYVZjQ3FSYTArRiVXNzI8TTNgSmRWflQ3JTFKdk52cipjV1h5TFpHTkBqJW5SMFo1TjR+M3Z8b3hrKiUjWitBR1RxZCYibk0sS08pKTZIQmdxQlFDKHcobW03djdRb1pzcUlRcWdDRSE8ZDJ9ZFh8MUosN2dTb1csKzxpZkR5T1VPWCtyKzRa'@; put 'SmxlbDQhQjswNkJdUjNtWTJwb0ZvW2pWIU1QaHh1RHR4cVJIfHY7SVg8SllPLks2bldYR0ckTSZzVGJ9YjdCVDRNTVB0JWFwcy5GVH5FbjBNSl0wNl93Vj9aL1k7cytGWEFBfn1mRGJ9fHNJNVt7SmEjV0gxI1QxNEc4NVk5SyZ2UlRnMHlaU3FAUEF5JWg8UXVIezIhUUpCbTNteWhHI1NQQ356'@; put 'OzY4K0p0NkpPanJOQFA2cysrRks6ajQqaGZRQj5QVj5SUXBNTHZ6aFlObHN6PUBEfUQ5eDpIbVJgPnQsNmM7elB1VSE1YWhpcXRBYWNgajJzbk5CNTloamtaMHoxVCVqQ1hzaW1raURoQClDLnYqUkoiVzpKM14lWFEhJCFddW1IVGwzTW0qRj5mTmUsezZ1UlFXITBPQjJGU293cTVDZ0dFUHBO'@; put 'Yl9GQWplJEJSPiNLcGJtLE88SzEsIkklOV5iezNIK1RgemMxQFt6TyQheWtVQk0xYSxTTnBGPzpkMHFmaWlocVBbMWl8JGs6V0xONTM4MzE0JiF1WTApK2A0cFBKfiVAYmkuYXleXVouW1BTfGQuW3IiWSJmelBxXXJ4a0FwKHFfTmNUYW1FMTxSQWE3emlodiErbik7OSFuYk57fnFPNX1eLHhf'@; put 'WV4oS0xPOGw8eCw8WENCdywleTFGL2xAeDc0PVFFJGNNY05NOktGLzlOZHUsSS96LjVdaXkmaUIzcnpFVnklTXxnUHM4fjxsWDc4cnEuN0FkVDgkXXVUNjhbMjBsQmlKfTRqVCkmeC95VHljY3A8Wngva0whUTR4WER6JXs+fmlXPUs1eXFoZitDOGErJngzQilqRjchZ1plazNPSFNwWmAkVnoq'@; put 'LD41fDJWZklGfVkwQnpXaE8/VS5NWD0+clpmaUx3e3svL1c/byUuRSt8SXt7JGs7U1Jfemc8amhQPEtLaGQyOHVMNDQyfWxSJV5pTF9QKiQ/ITUxMTdbV2plX0Z1anIwbFR9JF8/WSYhXnM4e058RE5PeFMqN1Q0TiNxXXUyTm0yOSs2VktFaCwyWFIoZDwvMGEyc3R4VEh0cCl4Jj8+IW49KUlg'@; put 'O3xOdDkpRExrdDJNZC5sVip1IzVCKTZgPW19cmlNIUV7c3JxNilUc2BESFBxS2xmT3lqOFlzX2EzSTF7eElsbEx2eUpsPC5tOTByMkYvNiEiZGltdTRkWig1QiElUSYwPTVPQFlVImJfZDp0VVAibllkc1JeWGtVN0lfbiQ/ZEI8WTRqO3ZFbXxPMG4iWT85NjBaQ3JPZGI8aUNVZFdsOlZeflg7'@; put 'OmwvfXpRdGVPVTcsJENEZ3RydiJWSCl7Oyl6VlZjUWFaLGtbQmlleWFlIWRiOGp1Y0NUT0w2dVhbZ3srN0xHaXBeI0pOJUokaG5TMXJXJEldJVtxKDM2az5CL3dENkcwNnBDLil5PVk+PmU8QypWOFphWTd5PjVYSHt2V3FzRmxzdlJydlEzfSpxT3JdOCkyUEohVztLbTF7QyorYkV4LzZXPUFs'@; put 'NTZrMjxmSnp7XnBjKituZGFTKk1gX2F+RGkiYlBYQ2JsfXlMfVJbNiQ4QSE1KXJIImhMe2t3JWgpeDJsYCYrPHR8cVQ8VmZiKGBbVCp7K2NIPi8oP2YwVmtHZE5rfTk5Z0xLUlY+KyNjOTYwfmM2aFVuPk45ZFhxOXtGT2xyPCl9Ii4+VUlqLkNmdVRgYiFZUDM4OktaNE81VkdmM01bPnRfaFNA'@; put 'KThIRC46eShXI3Z3T28+UnAmfl81fVNifSFNRkQhYSMjYGNJSzBOZD1fX3J1JTc4Myp1NHxtW1U2ckdhKUlMWzNCP1V3aShWdl88SjwzRGclUXJlT1ouTEdGVSVkbiUqLElRVnhLMD1fXXQxciJFUntLRSorXTBlfCRfW0duPXNNRmovO2M0RnJOXWEhUEJIWG0zdV5AeUROR2YudkEwYmlhXkM/'@; put 'bVVxbEA+UjFvRFM2cSVwRzNTRz4qUmF5STl7ZXooentIQG1FfTBRJHplM3lnPTNdZj40PT08Q3NHYVBgKyNbWGIxdjxdP3ZeS0gsZiwjd0M8YDk5e3dwWzB0UTYqWn03NkJTTCxzM2lLN2M5LFYua2t1eGw5NF1zNFl0PG8yJFFRPT0ibDZrM0dCI1hoTS4lT05KaHdHYn1fL1ZdOV45U1B0W3x2'@; put 'ek58Y2ZTZ0JELzZLLjpBPUUwUnFXJjA/VWd0Y0luPkleM317SXxzZyJ0L2tkPVcudmA7eCg2QSsqZlImLEBATlFHODdrMDRqKDZXY1djNlNkdEMqfnVKfWciUDF6OXg+djlDZmJqVig0JlJzXSFlbn5XT3BgYjRNX2VMdk9lWXVzIjhaSX5HNk1jdktsOllkY0t8ailZW19tMlJVdThiRzJBLzk3'@; put 'SkReVFF0O0ldM10jO00vaX5pYm5pfl93OkRePDh8ciN4VysuUmA2S3FLeD1Efi47XjpVU2NkbXtZQUNYJmNQUWB4MzcyNnxeKikyKll6Zkc7eFZtM3RhZzl7NDJLOGtCbigsb3U5en03PThLK34/MjQ5e2B6dCw+bmklNF0jI1sjVGxlZjVtSVFXOntYdGJTZnp+T1lCKilMJlJBO1Z5Xkopb3Jh'@; put 'TEJIRkwpQ208MX5eM0w1eixaTmw8X3s4WndBMX5gXzxZfGc2W1lGRjJaNmJ0eWRzW2woJlVHe1AlRHJrW307IW5jQlU+aEVxeyZEITVkOWwxb2V0fS9JVkwjPnVWWippeDVNfmhbSmBTd0UpcWMid2Z4ZF1YSS5KKmx4P1F1Pjc1WV9aSV1QP0UqQ3tbVmtWRkt3dFIzdDJUWWFESm80Wi5tbiRj'@; put 'Q1AlWz5FRGZsTWJhMiJqTDRFRTwuVEFSdSsldCpsUDVFZz5yLlYseW1wTkFRZ25TXjVlTX14JWBEPFhidD5mPCFfM180QyNqXWpTaSZZZTY1fTc2UXNiVkdWaTphU1lGfltnM1lPe0hWXm1vdDNYJj4qTjlXQnAqSSU4VDk+NmpqWEBKSS5iRH1MNCpVT3JFSzVgWEJvUnJaS1VTamIoQTJXXUs9'@; put 'NXhzJjx3T1YwNTNyODV4UG1OWkFuSzAlM2MrdU9FMlQ2WWk+emI/fClxNCU4ZHBFVVkySmUqZzQ9ISNNPCVfVnRbNXJPVztzIzxNWTwzS0BAOktGYl5yOEouWX56IWtxdTArY1khbSl4KUtLLl9mfiFSKCZYckklPDtgM1UycElvIixxXnh4ciF3JFUjOW07PEJLUTRgP1NxM3lndXRQNEJoa1ZQ'@; put 'dEBLYDVUbEl4a2djPF0oOk53QmA0T0M6cyVlS2JEPiZdc1Qoe1omTExvdihGSE5OJFE+VTxzJGw8emJ1eElPMHdfTyYiTDh7biIsTGhhaUhad19+aU0+LyFrZy99REZqM0NHOCowY35fV3xLODMzV3RJSXtFelR5M2xvKmcrOD84N00vSD9oeGJmUVZKbDBYJlljI15KM3NVUyVML3l8IUJxJjFj'@; put 'bGNWfWc9eWlyd0dVZFc3eiFOQkkxUk99bHJ9NipMIUw+IklYTDNGdGQ8PndiL2w2flo4L0RDTURsQEIrekZmZDhXY1Jabnt0KzJLM2BLdn42MDhfSU9CZGAwd3lofGpZVC9TLiVdaV9naj1kODZIPmImNjx1WCw9QmRiPj44Y3lWMVMkQH4lYks5I2RGW1VXa2I5M1Z8YjlBeWs/ajhIKHR5S0g4'@; put 'NUR0fW0mXm9TUFZkNWhLeU9eIi8ydGwpJW9pNWRndmJbaEN0IVcrYWpuXlJCR0lSV2lEZXUuZTNIe2RSZWEuLyFaOlA4akBhWWglQW51N2h4KTpMTjtZWG0hWixbKFV6dCgrNTpTWVlKdyN3Qn1xKTsoVThnXk58bHkqa1U6Yjs4fkxLQmpuZWpNNEJaZ2ZzNyRHR05xMF8sN21PSis9bDBmV2o4'@; put 'YTdyeT9obnRuKlp4YCVuTFJCJmRPMEI8fFErVmJbS3YyJFpOencocjU+STt1QiMkMW5DRmFUbHhGcnlUKkVXOSR1V3Q+Vl4jJG9QMmtod1Y0SEBHQC9Qc010NTUsPUN1SjAyP3tJUDRLZ0MrJE14ZElRc0F9RTNQMGJVSSgkfX5bOXN1ek9rUjh+VDcxRFlyY1B5QSZNUiRLRGA9SVhdaUtXJVZB'@; put 'NjZVdUdDMDcoVk9oN1V+az1mPXclPXtXZyMveE4qR017OipMdmVDc2BCQUBRdFZFT0dgRDNmaEhrWU5KfEZ1KVpMbElQJFh9Mmg+N2pvdj4qQDU0PmowKEcufmsmdEFHSSRQNHckTiFJS0Q+b2U7XyZzWyg7Zi9JbkJFeG1SZ00kT0liJnAmV1FJSTVuIyt5T0dORnRIX2FeWiQ9YXV1dGhlZ3p4'@; put 'aChRcCo+ekUxenVmZ2NqYF5iUFNiPEJTMltMLlQpNWxDfVsmKWBPcWFucCRjTTxlP21afnA/cjR9dElran1qJlNSdk1OOjFEclcmRzc0QG9qfXIvbWQvXWRJQmJ6QVNBb3h6R1lnbldsOSYjRmBXdWJvdnxPeipWfX41fXVlMzM5IzlSUypJNzlqJSx5QnxIZVFmPG19NERZfU9eZz9yN0t4P1cq'@; put 'cElASkVIa3pbPGxYfUJpMTczZWZMYjpwQTUsXyl2ZEk/QTFxYkVtbWV1WzQ4Iml2L0RMLmR4JD5UNktlfF1HVDwmM3o2WWIlJiEzczhCaylAJC9FN1N6dUczNltATHcvXUw5YGolL35UOVVYaWFfR0s2WUcxSz5lSF9CVTp3ZkRndmMxInlCcEhtKn5NSHAiTXhqdW1oflkyNGZSUW8hL2Vlcjs+'@; put 'UGx1ZjsqXilQQCEjKVRvZnxbZl8xNkF5JEZtQF1GOCVCenBVezRCMWBNezQlOSEoOF1CTilNNEpOTV9tampEJWE3YHFZMExxUCFkKjBDX2ZqRE9geGh+Z0kmaTgheE9ve007Vnh0KnRsYUNsSVI4PEdMOSJZJlZpbXZZKjMmT3FVU0J9M3dTcVROTThlWXxtNTBEVElQX0oieSVRO0NCcjhBaHRz'@; put 'NllGPXlMUioheTFCKj5FcCZSRWFEUX4ufnhLR0d0TERbKCs/JUlaKSFKY15VMjV8a1g1dCl+LldYRUArfENIZUN0NkIiYDNrb1FmSV5hZFA0bk9zN1QzWGQ4NXpMPFp5aW1RPkNbI0Z2RmddO3FxTHozSGtSdH5TIVc7b25ENS9nKVFWPys5WiJpdDdOZSNaQlN3bjZraE5adTVgZHdxNUgpJWRT'@; put 'VEZgclc1X2c+ZFQ4Ki4ldkF0dDB6VV92YWkkNTwoM188a1dDLllmXWg+VCVuRXVDZkQmPENKcEMxYnV0S0goMkZtODtRdFFZZVA2Y2JjVTMlciRFUWxeXWBKTW5QSGpTSlY3e3FjZElBYCpoKGA9XTleSl9yfm5MMH1taUVVK2s6bHc8aSpVRU9jfURrLllZTUVDK0p1I2MuSyZ3azRnNVlsLkcr'@; put 'JChgKWI1dnxgYGZDeVpnZ1M2aFt1OW1UdTBrRi48Z1NuZSM5YHRtW3VKSi8mNlNfP2E6IVI/cGVDJFEsLCt7TjRBQEV3Z2lYUHIkS1dXb0UhdFo+fjhuSTJ5VnxNOHNYQSFWcFBYPVU3Qk9pZTRadDFkNzlWSm52IiQrPVF3PVghaHluVHRdWkZEMmJeODFANWVMO29Bd2U5W3B1ZU5jRHpzcTY9'@; put 'ZWJUTjpybn41YUtZfXJDWllmTmlWWm8xZGM/XkJqJT16YndTMjUsI3Y/RlU9KUUyfChnfTdKQkEwTDlpSFNEQG8rKGdLVjVFSktudUZeJDU1M3tTPSRuVyp3dSwuL2dyLFErMiN3LnVGU31GJWBte1UyVD19Sj9yMFpeKE9SJC9IU28/XndaeChSYFtJQ1cvfUopcGV4dXBPNz0+aHsyeEx6Lj0z'@; put 'Y2tUN1ZbXUhdcHR1ZmNFPEszJjpCNTUxfmliM15kREI9emVNcFQuI2BaQG50cTd3cjIwSzV+c293a3MhOj42XyFvWihGJTteVDJjWX0+NXJPM0FvaDhHeklwTnBZNVRVVmh3SllFTVNOfkxKbWFkNE5rOjxjK0NEczRiN1Z3YUUiXk8rek5FUyZrUn4wYW8mTXt6Q3F0ZDFEfVYwN2htOE5sMnI9'@; put 'Lj40eyY1c2tFUTgwOHd7QD5uPl5VeXNGQzomamArUDhrfEtaXyJVYVZtbW4pMHlCL3V3JXpZcVY2RTQzSF54bE9DTn1BV2FiK3N1ZD9QIjgsKDQ3X0V6SiZZKjYyOnRPPCxzRihvU0d3aHgqdzxbaUAkMS5mO0NybVBqbEA8JlRoRn1XdnY1X3FsIjZdN1h7Uzg8WCFKcXtDWSw8VGtVMyNiYSJ2'@; put 'ekguRGV0fGlkQ1I5amw3bldJYmEvMEQxcDcjcXVbW0lxSk04YClrKSRHSDxuWkdId1RjP0w8Rz8sMXdtX0o6ZGJFNHFyZ2AufUtULnElYnBKO2Z2NkkvXWBgNyU8VD1NS1k/JGkvOzoocXsoeHtSRUtbeGdjTFh+IUZXS19MSmRwMXJ9PnQhOmdQKXYlcXpiNFh4TX5rSEw0Z1ckRyg8YDBMUCVb'@; put 'Rz5uVjhWQHolTjxOWF1sbmFNPEM3InhLPDY4VT9XRCRyR3dvWkhnc3xnbERQV2lSWCIoQF9VQDs1QHJzKmhUJTVHMF9bKz0rSWtAP3BCSj9DLkRLV3pxZk5CS1UwUDRLdWpTPFlwbThYSmJ0dT8oN2pCPGBxb1g8OlhtI3JFWz4yY0IsZm1KYSNVSSZGOSMqYTcqfngqfk0xYztLOCFhZi4kdCJ6'@; put 'XVZMNVBAP3BhQ3xVWlR2PnlnT0hWUX10RXpjbCtDJXEoNiMyZGkiLlpTYC9IZilqMil3VkxqQ00jIn51YkxkdEhGTVIvKGFrK1RBfV1SfGJjOnEwfFdSa3ZJLmsyI1poNnBxfXpfVGRTYSRJeD9xKSV6e2laLDd+cywzZipKdDtvfCNkXSMubFIiUUxZQF1Vend5VCtYM35xTjwue2JHX3N1NTtL'@; put 'anNDRWsxUTNtdHRFdEZ8aXx3bD4zQ3QrKiEodDY1QmA2JCM2fUlAejh4Oit+STtXQUl7XiVpYzk3bmReaUxmfX1jUX13MDFqaXIwcz5naFJjWVd7fU4sQyZHR3AoN0I3dkB6JS49ZCxkR3ojJFlFfkR8KHJ9Vk54YXM/JX1GTFtoQz89T01EdThgYlBXKl9SLEF0Wih4NlF9OjhGOi4zW0dme1pl'@; put 'eWooT1ouUC55UH40P34sLlNOcyJ7c1VLbWw4JUJBdH5aV0ZtTThbQz88eXhyZTs5Pyp6aypVU3E9T3FafUtwVWs9aGEqZVtGQVZqYltIVE84Vz5pMEpMNWxIKUpWPEN+cWE1MHRRMXg/R0Elbk1ARkVkK3VyU0ohKV9bYWJjNEsofSxpR0VsdnFgLCYveSNSQHRuUlM6eTlKfFV0JVhXW2lYOS9f'@; put 'S0Q5K3xHTXxPTGI0QFo+UWB3Z2BdJk5nRS5rInhKW2g8Z3p9b3FHeDU3YyVqRURmUENbOEJadCJBSyhyVVUiKzBDbSQ0L1dpSj9zXXcjUlFtTn1OUEBPOk5hRmdQL2tLMjtmZFo+NCE9QGZye09WczJYU19ab01fRz9rbklqUERVKSYxW00mfXhbM2Modm0vWkEkV2JuVm1QVHYxYmszX0p7TjEs'@; put 'YXdRe20qLCFfb19QZHVmfW5xbEAlJitJXTVsJXE6NlY9PDFdeX54SyZnUTVxOWJjdzxBQlcoL3VDdTBaQnQ0N1FEL217TnF0V0I3a2sqdSopVkswe3MxZHVvaXRTaS9AcE5XejdTbXA4OF5wIU4jOjp1fVFCMWo0IyMwfVRiIks6ZV8+a3gsWGh6djdySX5wajlCWEtZXSs5NFskXXE5VGFpIVQy'@; put 'UWhxJGJxZCJQQCZtQyp+clB4Wz0rVEt3PGdYfWxjNEE3ZXd7eVhrVFlmJSMjInBUUns5bT8sWEh4fVBeZmcqJjxzaGBIfjR1YnE7R28vO11OJiNDSjZfWnFMVD9rfj5UVGMpRTBNaCMuZHAmT0o7S30iSGxOey9BdmIyJkhWfk1ZYi5BYHZsVWs5eXVjfCQsfDxQPyUiQHo4bFRkQ1drYnMofE9l'@; put 'JjB9V20rLGFnS2VwRlt3bnVEPVJee1hAVWNKTFk4WzB3Z0BDaihoaldHeiMpJEtncT9TRnc/d3h9MTMoKnRhbDA1RkskLHVfW0NYO21dYz99MVR2el4udlZSbFlxanlweTZHRnRoRkVVOVNKU24xWSpoUEckOERzSyY9aGEqUz8vWFNgeHBYZGJmSG5bODVqRXFibUVrZj1neiFYQ1tpdSkvVT5s'@; put 'V35deCh9d28oWmMjfnw4QVBTL2Z0Q3dOT2t8Ynt9S1heIzZzQk86KzdzfX5za1QiPlJyPnlOI0dOVSFxQHh4c1A4ZnFOayQ4eH5HOCJELldLXmFJTSVqRiZyVS9iUERbdmpLMDNGd3VuVHBDPy9We0hgMFEvQzM8OD9jM31hZE0sMV8rem9pLlRwaUBncF1YeSZgbE5BRjVsQnUoTHImK2dyV3xK'@; put 'SzJDd3tsIi9NYFVqJD5ST3dFKGVpXyxfVEFFd3orL01HJUkkfSY5P0U0TSZ7WTpWa31ZYXxQSUAlRW15WSNZT08we2M8UUVYdyNBayQ5bztoIVV3VlpreD4mJV47OSE6WGwwX1d5T05wNzl4QUgoXi81UGwjbkhhTV1VYmcvT3ZQSkQhOHJ6UEpVJSFWTSY9aEd5WnNFM2pEM10+U1l0Q2coSXpM'@; put 'VkNwNGNBcTs4QlRNdSFiaklISHJ1PDleNEp1QUA9bzFmdm1WSnFjQlZkLnReOFVNLEtyPjV1QGckc3ZzMi9NaTpfaCoqJi5WZitCY2dwJil9K1ttJXBxTHp0PGVGWk0hM1tjYnhpYHEsLCErYmVSVntjZjhQIkxQK1hfPkIwWFJdfV1HVXlYYSp9OTlpc1ssOGFMR0o+KWA6WEsmYFBUT0Y/e1Ez'@; put 'Mnd3PSFISnF2bWUvcDg1a1k8MTBgXTN1fjldLz0lWFIkRVVOLjJabjIzcTFpc2F0S3xUKSRXLHcmIlFpMUxnIW1ac3RMUW9NSCUpMlVDIyE+JjFuNy5ufSxFL2MqeCpiTU96c2dkNitdPHFtRSxIIzBtRFIuNlRnRDxMV0J7KzkySz1Zd19tSixjdVZdLEJKfltuUFFvUztOOlczSzExPi9zPFVJ'@; put 'N0ZfQiR+UHtNNzUvKkc6Pi9Kci9UVU1vOF9ndyk5PH1yTCVSZVF4eFAwOD9jRG52NXdZflYhQk1qUipnPj1aanVpPkZ+V0cpamJReGJSMTlONzc/bm56WGh4Smk5WFlBWVU2LmQ6a0lwOm0yfFdwPm8wOkU7UURJeSJfYVVuSSlOZWtlcD1TMjhTbGZ0cDpXJEl9MSZJZz9YalReRFtjWF81UiYj'@; put 'W3djTWNTJXMqQFBPNDA9fXdHO1ckVEshKmlDfmhMT0dVbDdtM3tZIS48ZjI0a309Lkd+Py9nc253Zy5fPTwkc091JEgidTNIYS8ic3g3Nm4xN0ByNml0NnpLOFkhayJFcWVCN0AuSW1wdGheZkBvTE9iXn1GW0JgNXVANUZ3P0FUTThCKjslVzJgMDNxXUo6bm8rPi89S2R9Oz1PamFKN3VQYTlK'@; put 'Kl8lKW8wTjdnb1ZTNiMkcltxPXttMWN5aXIlSGJPMEwzVThEUy9yQzozNnEvW2BFOjJ6M0xRRDs6NWw6ezdRMW1sZjt7fTR8P2khVD52fn1xTj1HYz5IIl0wajgoaitUV1F8bnM7TnJaemlrOmJ2JStrIypsSUcrcSM3ezlASmU0YGlCcFpjL3FwLk5iZTldZDw0JFNFc0B+Vz9XWVVsSi8sZlUk'@; put 'aU1iTCo8JmgjeXB2PylCRklALDtOWD5uXWplTG9jdSR4bXZHX1F7Sz1KViZeK35YMTopQGl3Y1phdDZFe2NjTk9BQTxNMVs2YkwzbSUpSFlyNENyMmRIb2QqeSsqUShJazdnPDE0QF1qRDYlZHZefGJQeHhQNkUqLm5XazMqU0N9TzYzdVB5c005QCFNWD9UbVM9Vk1ec0tTMTleeDJlMkNJWW9j'@; put 'JXxFa0dgPy4ycTZMfD1QdkRWayxga0liWHNZQ340Qnl1Pjt9KXt2RU84eT1OWywjP2Z8WXlbdnJkdyRJW0s+YiRNRn5uKE17P007VzgpNnYja241fVE9PlN5WlZ5Y3M9PkFebmk9e0ZGKTgzWz81STlKSTNjXU9dI0ZBIipWe2txPkU2NTIwYXVFOWxoeF9kZHB5d2FtPiZGcmIoa1RvU3Q1STtC'@; put 'XUxQO1dnJEssNUxBZSs+UTRHMEYicSg/Tll9IVVefkdNeThBLHhKOUR4Rk93SVUjRHUrKXopJEBPZUNUVG9mTDFdX0kwbDwvKntzYmUob2xOXmBqK0g8aUQwfm8ye3N9TlZITTFwLDc8RkRvZip9cFNaQDRdZHk5aTtQQW1pYG5fXlQsciZdS2t4eVpgKEdSLysjdixUWC9Hck9qeTZEfG59Jkth'@; put 'RGBYYXAxNFhicWRjMCNrd2pzYElUJnNfMz9IcXhybDxtZCxDIVFrbEYhczlVbyRjTV1ALzpmZUBEJFhgQ1lxZ0VuQml3YUNITk1JLypaYXBOLz95V05PcjNHZ3hhIksxZV08ITIhWSs9KEJxfmhDdzFfNWpXQFtUI3U1XzwueCZtJmptZS84S2Z5JXIqR09dPTRAZX04QFEyPUUiI2hvZH0ke1Rn'@; put 'KWtuc2Moe1tKd1dKUDR8M2JYbEElc3NTcDR0dnszYiljSD5WdHcsWWlGaiVic2FdYiViRlRUPV44UzFNRytkSDtmZ0lbLzpKOEZLPlpYMntsXkszc0ooJCRYTDZVPW1BMDpgbVNCTkgoQmwvRDI2P1p9akt9JG89S3JJQ2AkIkliYERGQXIqSDIqYmZJaDpuPSRTUzMxIUdnNHczWCtrViVXIVR4'@; put 'RClTfCZ+ZyQ7XW5uVlFnWnd4fX55TS8kIiFjZ0A4dU5KbVMuIykkOE9pKlVHOl1KKytyKG1IUVhFQTdqdElwMmpRY1pPIiQoMyFeSWgqYHVgcUNkfWhPa0ZITHo2SixbSWtvMW9CQ299V3R2S0UwXXpOSEcicUU7PkIjNVpQeX5lOXlSQHZEaEw4TmZoNElRdHpgIWk+RC5yRz5SUUxvYW5xYmFX'@; put 'YyIqYUYzQjFONDBSJk58cGdWdHd7KHJON2suPn1EV0BfbGdsa2ElbGpCNSQ8SEx9fkQlYjY9dGZncytVanNDI0dIcjIzMU9rJjdaJE1oPyVMIWdKaEtnZ2ZLPkxKZDVMbitPMnVsTEhWcF9ZRDAkdl9Gak9ubiE/Yi9SQiIuN2VuYjVAMG1qbyQmLnttJlhYO1VqcFlAY1Z+RjVQcF43Wj8yIlpY'@; put 'OE9bK21QLngiTD8oYHR0KGpaJVhQYDUjaSsqW1dmJD16TTdsMUpZRipuIj5TfE1wT3JMSndgek5JKGVEfmpEQFBAcXlfUV9iKWIwJFI7YGZseEdnL2ZQaXUzYU8zbjs2U1p1OzYqX0FNalRbPEBAaF1JI1VqUV1AU3s6R3hUYUB2aGUpX1JuIldyM1txVDo4PVFfXVEhRW42YmBJLjIrL343a09G'@; put 'L2p1KkFpMnp3ZV1jTEJdLi5qKCQlLzlTezZqSks1W35LT0l5fDZnSSttbFU/Y19mVlE3KE5wQ2klNGF4JlZ4MUV8XXA9bDlIVykrLHlxcl1jPFsvfGp+RUJrcEkkUDE1b15UM1EjS0wzJlpAczwvI3IvdUt4MHhecGlxMUAvMURoTlRjOE5OKH1DVjpKajEkbXg9MjJTIjlENUBBSjA1OD5AKUs6'@; put 'bytxWHxvTD1VMCUxbl5mdldmWiY1Q31kU3g/O3xSPCkqLFY0Z3ldLHRGblJ+cWFWbnEqYXthdlR1MT1kenFbOUx+PlhXMkE5bTdOfkljKmBtTkJleV9WTmNFYUVlT0d9Pj4vO340d1d5bnUzTzI3Wi5sTHErIV52cX41ayQhMEojTF4lMX5FNGouRkV6OGBjdCojNk9WR2dfPHs5fFE4Y2cwV0RA'@; put 'Rml0ZSpMc0p0Yz1YcndEU1Q+SkxGaTshdiU6MWpeZklWIjlfJj54RFddbkVYT3p0UT9qZUdsQ0d4JHprc248JjA8Vm9jKCE3fERqTFVIS0B4OGAxT1ZhSUIlNDxuamkyR3NZYVpWX0RtKCFjfSx5UExeMXgxczFweCZUTVpMTkdfe3puZXtmdkN6PUp0T2N3LEpyJUVUViEkcipnZWgmfnVCLzZW'@; put 'PG1AUiU5LjZjYTQuIyIpUkoyfHxNNEw4K1FkXzFtLndCYVM3dj1aWV07NkgzSTljZlR9eVExcCRSTS8sVT4rWyRFa0duSkFEQlsxLiNMXSRrKHl6SWVtXm9DNndEekkyVHNuZmRXdTM3MU99bnJ8TlNMe21lM1Vgcn1pd1BGZF9UUE04Nyp+eTQpVHhNUV02RzhvI0J6ZDZyPkwvRzdUM0dRQXl9'@; put 'ZWZCO0E/dVZLaW13Miprb2Ftc1BGTXN6O3lQN3RRP3Q6Xjk/NFFCQTFYbSp2IWFEfkleKmZ2UkNabkpDL0ZVJldvJGwoR25Eeyk4bG9Wc0YzOFpXVnMoO3oqSVFBQjp3eyFYU3tlIVt1aFhhdCN0K0ZjMEtxM0whaUV+LztWbF40KmlYfHR0djNLNmE2T1kjTyU1U3I5U09dMnI9ZChsZDlHUiwu'@; put 'PFhLdVJIRSFiJkxJOXpuX3p+PXcpPlRRQCxtSUguNnwwO1Z4T15TOEIyRUpAVDZHM1V2SGJ4SVpQUV94cnYsOyI+QDUkVVIzSFkzS0xMQT5tR3QuKS8+NVtpNDtqPjZJWF5DQSIrLzVbJEkoYX1SdnNKYGN+N3drJHg0bnx0ZlFQJXNEdHliSX5SfS9CfEpJdzVoY0FVcmxnI09mYS55N1BlQWpj'@; put 'em1ZPTJeXU08fFJqTjhPUV0odVMod3c9X15hbVcpXzpCN1gkd0A8QjVXWj5tdGtvdFVQeiZXPUxNOVkqO0o8OlslUjpWNzNGTytte2c4dXs/JXpoKWExM2ldfkRZe2QwQ1YkeCZ8OTYqJkZpelhOSFh2PzhsbUErRUdOZyR2OHxSQ2VUa0ppZ01scXdmX0RsZkFBS0Zge3cpLDxYNmVYMWcvUCpQ'@; put 'OXZUbE0pMEtfTVQhU1NtSkNQYl0oYSoxSjNKX0QhXi5fRmwicFg5V0ovTko/XVd5P08zXXs2fi9ebXJFMGRhTjp9XmlrSl0oRCVHezUhLiwzUEUuMVEkP1hHLCFIQSVvXilCYSwlcTBReTU6IzBINWM7cylOUEQ9Y3dRUHdzLFkiXSspP1JdPDUmbyIvQklfdW92cWpFbyRqWy98L2ZnW00qbXdD'@; put 'cD0hSiV+WytSbz01IXUhY2dtfGs5U1F1cSskLEl8c35fYCxiLjdEL3JvclZ6JlhzW2dsTzFCZGZ8TmY7elYqMCkzY05WdH1GM0hQQ3VpMihgR0I+Q05sR1ZPfl8pfVhvRyVAYjI/dG48M1dsYmg+W3JyT0taUkhXc2dJYj4xRzlaW1gmQE9DcyEkRGEoKU8sWkxmN1Baa0Y5N28wZm4zVUUoInki'@; put 'WUlQdHRPdy5EeCFkOXdTPjdnZ0lhQiRmbCkyLiYyaWYvR1lrKHwxXXttUHsxPzR0Wzg2UXU2WCU2NXQ6JVFoV3UkYXlPdUlITmM5JS8oOGpRNSVPVnpTWVhEMGJ1V3B1cX1NJn0qZ3dlP3xza09AZk4lZD9iPkojUEI9Vn5VLDxwampVaUFtZjM8bUw7RGNNLmVFfUFbSDNmZmZ+JEh3Z1djfE8h'@; put 'TiRlaWBDfEsmYEZ6Jk5Rb0YlaTd+YV93LjQkfnlyTy4+PikrYTshNElIQChIbkY1R2hHW2VHPzRyPFhUKVheQEh8YzJtL3N6dzg2KXk3biVyI1l6KmgzS1thbXZWamo8MjlZPCZeaEdbP1BsdV8wIl81YiY1ZGxHLighTTcxPHg7KykhNzNGYCx9SU54QmEvSD9wTTl6SW95bWNqLFg0L2JYY0N8'@; put 'TjM8OHFHKXl8STEiSUpYU0FQa3tTWkBaRDVKU0tPeV53JksqLEYqdWt3ZTx7elRNU2gxa1NKTl1XP1VjK19xanFmaSw0fkdWbUtSRGl7fUZLZE1OXUl1UTlqZEo3Sk98W3puby9fenE1RW1OQ1hlWztRQ0ZzNmxOJixnfGksOVtSMXZvRl95L3hkMXsoSDZhRX1lfC5RdElhOnFsJkIjRXlTLGFr'@; put 'WVMyfX5kUjJuYmpTU3NjJCg/PihYPmk5JlR+PlVVI0c1SD1NKW19Ln54MkM4VmNtSC4qIzhiNXcseGpoRmY9dVU9fFc6WGtGOzhCLmtiRG9aSCtZOzRpOn1pdEc2e1IkMyVMRSV9TXd2eSN4UVhVNkFuKiQ5X05Gb3dSOFZlVXwrX01XP1IvYFB6Z2YmRXlRLCxbLFt7ekNvREZEOmopYm88fGha'@; put 'eSZFNHszWm9MYHRmOFhbUnYocUd2MipAdVopZ1EzZzskOWU4RUZ8OGpgSlcicjdLMjovZT58aCQxQixgVGhEUy9FPWsxUHU4fUhVXzZ+aFJqRSkhZy5zcF8lV203UWhWWk03YWxgbHg1eH51QmVCWWZxVUFpbExibmF8TzdiY3pKK29Be3FTIURYUjt+UTJTdWBKKTN1JVJIbzhrX0g+XzdIRUFK'@; put 'XT1sbHU3Jlc9TFk+UTVXJUAvWT4vKUkyZlNETmdzJj5YVnwkcil7QlY2eUJ4T3tgd0lrWzh4QWNWQDh9RVBDNGQpT3RENTtwXjA0aElNPm46LzZEaVB+X0ZJN3k2S0BwXTZJeC40cjBDbnQ2TWxzKXhvK3hLOnh7VyhrN1JdW2AvLnc9d08+UDQ0QD1jZVNFIXteWVJRQ0IzSjAxbURXbz9yZEFA'@; put 'dnArZkB1QG9zYUFHdFRVJFs8V0hXOCE2JT13byVXPHB+UTdqJWVwP3RWIVRCSWpoZXU7UT9LQE1yYDIkRUtwKEhYW3hgM10pclUxQmZ7fFZGYztDeGRLIUhWTzJKWSU+bEJNeUReM3EkKkUvUm1oa3w5NF8vVzFVZ2kvMk9kYGZUa15qcW5QPXFMek0pOmhqOVAzbDd0TzNhITZCOkJJbVpwMT1d'@; put 'XiYlMDRyTmZAOipUVmtJWTMucGVBT3AvUWBuUEtlVnghUiRzcThdVmNMRiFHVHxVRDU7aFhwQjBuXXMxPUQ/S31AOTEwSz4jfjM/MklmTDE/M0M9N1JWdz9aSXFSbSp1eUMwPDhncTlzWFR6Ly5bOGh3ZnNaVV1IWGoxKVh6QihDOUZmckd+fFpoeio8VERvKylPVHgsZGFGOERzQllCMHgvPHMl'@; put 'IU46UUVKWH0xPGJOSDBDSUJVSXYqXllnWDtbYSs3fThXT1FuW31SOHFbKm9UWl9JXU8wPXdqJWojR1VZTkdtUDM/JFsqZGZXb0k8JGE2SFdANTwvYCMkTj91bk8kPTt3ak0xdjVjL2xsJjhTRlVPRTQ4Izl9b2NIJk52Wm59UjpFS0NIKnpnY3N+K3RbZDBHZCorNUpPWkBFV286Xm92P11Nampo'@; put 'LFNaM1N7K1NWb0pgKSF1OUhgJXJYNU5rVTNEVFp3WHpTO3xpPFZ0ckhnOndENUFsTkIwNnskfmZkdjBdRXQ7eFc+V3c5WTZ2eDNlZk8maHBxVUpMfCNgKH11fVBVOmt9ZSE8SmkmKmt4LFlOeSVKKjlAWCkrWSQlaHJbXnh5XyE6SWVXMFF7Z2dgam4yNVorOml6SmtaInFRRXNtKzhEd3BbKTI8'@; put 'OGJPTCFTPWBgIkJUY3lzKFY9JSxobUBEXzY5Z2NXIjBVWFA8Nk43YV1CakYvMyVZdHdyS2tUO3EoSVg4bysmWVhvKGZ9Kl43ejhVbEM1TUhTY1p7ZVlidUcmYmk1QUtXen54PzIkLyNjTEhpb3FOTCFBL0skTE57aXIuYlAhRl5zZzkoWUxFeEEyL1tFfmIxMjQ6Vit9I25HZmdJRDI+Sy8haXsy'@; put 'cy9LSXNrMnkrNUJoSCVrbzhtUnF+PmliTiZKdDxwOn1fdVgrS3N9LkJSMVlqOjN9P1VGXlNEXkV5aTl2QCguS0JPRllmIVJpTEJSY3FscmI0ci8zR35rNHlAUmdSKlR6e1FhKjFdM0ReNHlQeTFKY3h6WFMqWCs1RThweHhPZ25qaCxsWjQvdiFSRjovdDNLWEBLNS48W3o0MCZHWmFvNDUkcSo8'@; put 'NHpoRVMoXyM3OnlJTUh4VW4qPFl0P1R4NFtHODtbNU10aGI6QmpQUU87MzNiYV82QGh4KVd0am0jaiNGQ0x6QXp9cWJmfkleOSMwc1tSa1JeSysjcWtnJCt9ZG81fENlKS5tMDkzVFJKY3BaeSo1IklXbXtDOXolWzdVJj10VENxJm13RG18O31gdzBhIV8pVCZXPHpsbjVxPUZ2dy5Ra2ssX0RT'@; put 'S0NdJjR+RWVEQ048ekspNXZZPmg9TWJ4eVhQUW9vNX1YZi9ZMTlWa0ModzB0PVF3QV59Nng4b0dkWiw/flNHMi8qQF8rXndYfWgiQ1U6Wys3LjtWYUJxP2dqOkxOQ1VvTFsxPTt+ZypQYnYvSnNqM1M6dlUwbSJKPjBUc2ZILExvKjsuVFd8SSx+YXBtVn5nZ0Q1dzwjOj1Xbz1VO0M7Rjo7Ujl1'@; put 'TD5HWGV1NEE2NitDKmM5VTFmVUxoQ0dJRGEmVChmcGk7SU5QMDljO0pMY08uSEAwMlo+Nn0yek5yMnBjPlViPGg0ekExLkh+Zjs3eSopZ01dOFZfWThCOWdDYnwmaUM3MC5GdEt6fUB8WHQzRT88IXEpW0UxYCVCV1QkX3FYWEtdIztfKzxFL3I5I1RmNWNpaSwoNFY+SyhiaFJEfT9aVSoqSFNO'@; put 'PyZEIW4zVERCPigzbDhsemZPLDtsP0tRRkxOJUJqPCo6VTckSk9iSihVLnJwcH4hbHYkbUY0Wyw7KVE8QGRVQGYrOWQ2JCZlIk42dHJ1L3lZcjN7Ri9wRlgiW3YsdXkmWX14d3xuQXJ7cCxEZUkxZU9fRkp1dDJxfWVLbyFAdVF7ZipOaXlJclF8PkFTOUUpazQ+RDA+Y05lQG5EcGErM3kibGBf'@; put 'U1c4OVdYYTE8RTM2L3o4N3l6VkRUfShSPE9gWXhEMUgme309YVd1QGJrVmlUVVo2PSE+KjxudD9BcXllXlYmPj9hKywlbns0RTJua3E3PlIuPmswLE9KU19jQHhbR3JzLiN5U2JrMTdRUzgiVD5FTnt2QDJJN1czPnF5W0xoK3A5SFVnOjsyaXhmTXA9NGw9anlEUiImbG5+UC9JcnBYaz85ajsy'@; put 'K0RiNWg9bEZ0X3hKNmxOU0BUIWNXT1tyfWAlISk6M0QjK0o8QFRkTTZqISE+W1NzV3lVSlI4bCUxMF48I3huTms7Pil6YkJZX0oxKjglTG1ibnY5YCteKiZiY0lfO3Q+eyImP1hvWCg0e15fe1BzUzF3cVlSYEUvYyt5eGFxNUtVZFksPjJMMntBW0VEO0Y/KyZrWENpZDVONCU8Wz5uW11VImRH'@; put 'cDZJYEc+S00sM0RiYSZNKXZySmt4fl4mVH4pRTFDN3YzTnVpUEJKbU9YMzc7ZX53OCYic1FYMFdJeHdmXUEkITdAK3x5LyJJTTF8d2p0Xyg4Q2c2ZCN9ck9hXzluQzxCSn1KcDpCLnE6MEBPXX1IQXkxKmQzLG1GeyozZCM8ZDJ7Sz1+flNGbihEMm97NlNzbXBVK3I9ckomYjQ7NDZVSnMjSHhY'@; put 'On5rfSskNnF0U29hKGlrYmlGQFh+ViMoL2Q0biM0d0wzRTkqJH0lTnIyQ14iRyFKPntYIlhZT0NRXzwrfFkvWlBuR3B+Njp4KVlwZFolIkJbN3ElZFQqNWd3Vysld2whbUdvb2EzbFg2Kkd6QlA4bGolQGxIZWJdcD9oJCFJcm5LfXwwPTQ9Qmt9WWdAUXU7PC8xYW1JfGNYOXBsTX5RdiJkfl5o'@; put 'WT1gW1RRfFR1fVp2aTAjVXhlX0JFYn1nTlR+czBIaTskMkJQcihjYFoiaTI2Smx5cCxoPypwIWpMIyUhezJ6TWxQWVc5JH4yLG1GPFY4Pz13UCF3MCEhMHJXZUkhSDZTJHhJNXd8RHRHMEV3V0ZdTkFaZTd1fFZve0F2YF1vbmoxQWM/X11yTXlIVkRXbWZJNUphVz8rSyNQZGx0RikvfFlJMzU0'@; put 'flp+LnlKUFtJLjwjNzpGXV1adGNSI3ZFLnw6WT0xQH48THhHKUA2YSNVcCUmKUEwQHRXQiVJckZ+dDdtYUd2M2I6fDNTeVBIdWg/OmZ2RnkiNEJoXXh2PmokV3k5djhZOGJkSGR3LnR2NlQiY21scH1zQnZuKFh6Z0lhKFVhPEZENm5ORHBFcm9nI3JrbS5fJX0xR3x4QENmJGY5aV1IaCRpQlJ7'@; put 'JnlLX2Z+MmdZeEApVVRwNjAmVDtfMWRvZyZ3SiZKX08wJn5yOEB0LnV4UzRbbDk1JnFTfiZvMCFqMklSUXJ0aylmNDFobEVOZHgoPjBULGRfa3YueHZWLzY6RT93czhTSyk/JiNhS3AwPUszfnFsL3NSbnw1bn4yYzpaR2ApUTlJX05OMiU2PVQlJGB9emFdNj43fC92IVNjVTZFc1ZQNFJ9eUMl'@; put 'cS5eKUw5ZT5qNmo/U2Z4RWtgTF0mTSE2WVNXYns9X0o7IjYxd3M1JGh9WDl7cCthXkVELDYxbj81M1czK2M4azlae2RPcVFwOmEudilTTU9WPWxGbSV8NTlGNFsvTl1CIUE9e3dzSm5udkRSci5Ie29OT3FnOz0yN2phZWExeEsvTTdoYlVlMzlyIzl8e0QuU15uS01rOSw/U3twQCU8Z1R5eCV4'@; put 'Sil6VVpvZF5NMU84NXVdcWI3aFkhVDdUO0BQI3x1Y2N6S31FMC59YXV5RiNKJS9jXS5VOTZ6WTVYPXJFcE1wSChCJWZnN3RTelNjSkRKcURKaDkibVlGK1UxVHh6RTJxelNpdUFNdy5Ga2ZLKWFZTDcqJDAwIlpbZGVoRH19Ny8iKnx4bU8qRTorekdhL2N9NCo5O3NBOENyUlk+MXdXOU5KZFc2'@; put 'WWlZdDQpSnNLMzY3QE5SLChMaWRybW54aHo3K24oOHMkZl9xa0o9RT9bdC9CemEhYnZDPVBULmBJbV5gcCxXfE45MyVQITEveT5hS21TbTN4YD9AZGtjSytIQl9gN1g8aSYxMnd3IiN3cXElcTdscD52KFtoQVpTaGYocVYoSTg4O05PbVF2eX17ZGlzJDIyeGc9ZH5TM3dWcXA2V3NPa2lRaXVZ'@; put 'NUg9cGI+SzYvVmQ9M0FhRmA9Jm9WIUhJaWpHaD1FdlI+T3s+ZDY0PHJefFM3Omp9N2BGW09jMzw2XkohT15kMyJhdzZBL1M5KU1sXldXU0lKL24hcUpNP3R5PktgZkx6UEg6VDBtWSljQWtKRW93eW5lZnpqbUN8dGZSZnRAODcwIzlaKDF2MlNCeSw1PHU/Z3o6QSZ3TVc0O1lGYzkkUHBNV2Ux'@; put 'TWBWL3QzT1gxaFNhP1dnY3ZYflZVQnw2aHtrdE1feHk0KUkrYiEjOW5DWF9lVXxrNlJaakp2VUcvOGt1Rn5+W3ZINU5bMEVHQX19VmBrL3BqZFRjbUAwdExqZXFjfGFPMzBoZmdncSg9QjVLImczYS9qPVRAbjtqYTFgeTBQV2Zgd2hnfHl8Tig/PDBdeFt6bltnXUBSczhrMn13UTdCbikvPGtS'@; put 'JlBHMXw8RmZ5O3kwfTZYTEp8WCZueUpGXndRXl55OVZjN0wiVWtNcDl7ViJge3dSZTAvXmcmQUQvLGRSaCMvNkUyXkM4ZFhBK2ZrRzVfXSsrWTlFJDh7dURvPS4lPE1uMHdQe3woUixEWHhAcmJHaDY6eCNjTCJPT2c/L3pSX2VFMyxULkB9P0h4QmUzNE9dYUltTks+dVp3L2wrWEozXlBWQXVN'@; put 'TlsySDw+SX5zR3F5RDImTTRHSz51NThbPmVEREptbSE2Oy5YbFpdd1Z2QSUoYXdgO3d3bClMUk5FWyI7WCM7QzNjbjRkWjA1dUQjJjYydF8vPW08K1Fxe2tGW0lLbyhOdytefiNOQHM1O1RWfUJsVm19YEdLWW0sdUpoLGJXJjMxamd2SnUvZDRAd3NASCF5N2hIL2VFKysoQDJjZGlDNSZufHJ3'@; put 'dVhQKVNpI2ElOkZCdXlWdFZWQ3c9RDhjXjNXdCxYRUA6JT1kdmBXSUh1Yzd1XnFAT25keCx+Z3R1ZClbJTdMXUd2XWF1Vjh0QkhFJno0V0c6SipHXk96d0NySixvP155YXZRQVJ9X3cxWG1OVjNkdSQvekZqaEFAT0IrZC4/VSosIi9CV1NQTm4yOzhaPGUhRkZ6eUA4YyhoZzRBVU1uZiheNCFX'@; put 'eypqcFBiQXR7T0QoKlB5Tm10Qjp0cHVCYXhaIi9+fWk8YEU6fF9uZ1tKKk5YPTBee0kicE5CYU88Kko3YjZUVSM+S25wQEl0d3NXXyI/UnxqeFlzZH1jOWpvNjFndypbQlhKYn48aiFnITQ4NDlsP25tbFpPeVEqYDNiSmdaQGkiVD1tK2E/XU5JU2Y4W3ljT21MTW1VVnArPWwiP2JsKi55VUt0'@; put 'b3RodnJBVzQ9Vmp9RTZAemkzKGspL30vOCZlYFc3clFhfTFyQl9uRG4vOEc2UEczVSxRTnViNmZjMk5KWk0hX1oiW3dWXzYqZ0ZJQD4kMitNPE92W0FEO0lKVTxuK2FiN25lJlNNZ3ZaQEsjZSRWYGg+bX1HT1huYHQvLk9dVGsrO2JxUSs0NlsyK0JCNSM+NWoqXT0uSSFXKCRCQlU2KiM6N05Y'@; put 'RkUvW1pTYXA3JHsqRUM3JXVSKHgpUjdaRFg3bTpmVXx2fjAvZXEzMi4ve2pOPWlpTyRUQDUhamRBZn44SCJne1Z5OyxKc0orY2IrQVE/alZuNyFyZkQlWi8oPW9kVmdMNytPbm1kTHIscit7WzF4cDF1aUVQcXF9LD9pPkoiZzI5U1duRmFyTDc7ezw/ZkM1Ump5fmIzQ3M2Jn4xZkRtRkF6YChF'@; put 'YFFnQHlNbUo4aXRdfiZKcn07fnpfbjBCR19HM3tOTXpeME90Y0M8TDEqNV5XMWcpUWFsNnV+OmtHcml7bykqcURPKTAyOTxNOFo0KF12NzlCUD91bEleXk0+KGJ1SVF3Lnp6PFVYbj5bWSU/X0JacF1uYVZKaFlNKmtEa1ImfiMpRHU9UmkiU0RMKko7PGhSPyl9S0g1ZFdgVSt9YFNjOihlc25o'@; put 'RXZeIzZ9eFsoKHp4bi8weT17I3xLbHNOJmtxSzxYQlBXQDl5eUVVd3A/RS4yYCJuVEIiLDtZIT1TKXZqNSg6IlhMRElHO2NSKndnTSFKc1Z1QHB7O1VRRHM7eWpIOjtzVFJLd3IzfncpWXYzdmZqQXV3c2FXRUZMMENNeiQsa21Ldi5SRlFvR1AvUU0qaz4+X3E/VWl0W0dzd0JgKHdma2dJLExV'@; put 'bDglfng4VU93blNDPl5LQGhWbDlCMj96RyhUVnRJPWVWT3owY3tEOFlSfnt+JFM9Pz0kbk5sZ3RPTzQ0L106IV03WSwzQG47bDlyS3hZZzx+Vz5AQiU9STlmZ2A1bjBYKjM3VFBsKFNzREJzcVhneypSaD5FbzloVk5mQWU0dTMwRiVmKmQpQiYkMDdZamI0ZmlLQE9mRk1dNWB5fmhYZUgrU0Q9'@; put 'Uj5RcTRzc0pbdjFLJS4mdVQ3UltOcUAkbGEvQ2AjWU1IOSYpXjJRYE91T2Qxa0c1ekN3Zk1vVGg3fDZfKTYkIT8rUEc0YHF0MHZtI2tNXWJHWF06eEs9MjF1aVBQNkY2MTs1XnVPIiJfS1EudkJ8aTk9IyQqZSZxdVhiJXFiZE9qbDtVdkEicDMqPWRxdCkzMnNAXmcuVzhLZ2k6dDlnfio7Z0l3'@; put 'Q0g7eVpFRXhHIz05L05DOG47YkFyQ05jaHRsPklbd2FqO0RiYnxKYzNRKCx3IVhuP15jKkJbPENCRyJyZn1rXjNXZDkmSnNFUV52bUkiOltzaXVGTURIaWBCQ2NSfUt+Qn1lc19sfTc4SFA9OTFhQU8mMzUhPFFbU2t+KUJsfjgkTnEmdD4jQGdXL1A8blgmVEtgMWxZNElZdjFQel1LbHpOc2lb'@; put 'JihBO0VtX3J6IyltbEVybCF+S0lNUmtHYndPfTV3Q3x2QlVDZk1VVzlwUlBdS2JPLiozd3QqImlRczZYeDZpNHJNPEg9NFJEQC4mfiIzQWo/W095PUxBdy9Td2olTCQ8RzNtUFFtPVtJYXleYHdRYnhiXXw2LG11TEBBPltickAiM0hnekJTK1o7UiJUfCQsYXNeKCxSejdZPmd6KSt2eWQmTiZz'@; put 'cT5ATHI4el10TlNBc2AqJkBxPUJSW0xgPDM8eSNeezY/V1UuMyN9L3NFOjBaS3IvUjc8ZENhS1JDNk47LlhtbiNERj4va0VUZyQ7WjU9Pk1XMXV+XWd3MXw4YUB1YUBdKFAmZnsjVS44YClLQUZ1M3RzYlhEeTR0I1M9NCQpSzl6WDM4Ik5nNDRSSDNMMDBzY3RMNkJ9b3AlY3gkNWsxLGRoX0Bf'@; put 'X2k0fm9mQTMrLDxKWTBRNUsuP2dCI0F3SUFncT1QWFhkPFRRXmNYW0xHaXBDOm1JUVpXZmxdKX5qIzcmKEkqTSpfQjlnN2tHPEVYO1MlX3VjcH4vU2crQGEwamVmfCQxeklEazplZm9mfSw1JF5kbXM7P0IvUiosJEN8Vk4yUksqZlVnIVJwKFA2O1psdnVeI3EzI15nKnBdcj5NYD96Y0J6bW48'@; put 'OCh0PTVyX3xnSyF8MlR0fmlZeDk6ajRXSnROWXhncVE/TH5ARkRMNCFOWGIreXZ5LyltPTo9OTt1Lms5OVNNaEZNYVVHajBKZFU9WzFjYmZlQHYmUko4bVphbFNXeSt2eHo7fnMyKVppMmNsdTlub116ZV5QWWxkJVhxITl0fHB6TGsuJGx5fjMwOCVYKUdPX2NPUGAxI1goYlsrWlRrXT5xcitw'@; put 'TX5xaVtsRTpQUGZibGxDfF4xbkRpKUE4cFVsYXYoNDczPXpWVXxjNU9jaXIqWSVDMztHOD5veW17alZMRDA+cjE0QyRTe3dwQSxuST9zTU5ncmUyflUzb3hZUjJOcjVZfDA7O35RJU5kWTIjNGNxaT48LiomX2k+O2kiQ0VgME4kNUomIzZqI2Q4ZClHPUhFXzB2fTJMdlpmJVZQMUpmSX1AUU4u'@; put 'K1lsfStwRUZrdWNPSFVoL3wiLG10TDVWLjY7dGtTZ1h+dW40alkuYSRyKFtgXW8zZVA1allBWCUvKzRKVV1SQUBbdkljdTBZY1ZTP0t7M2g4eCNNNG42cyVCYSs9OHJ2XT1oJFd5eHMkNks6Mm9ta0goZURYZEE0IUBnaWx9IyFURCkibzBjVz4zUGArTWw8RVZ3UztIOVtjd1hvWXx5ZigiN1JO'@; put 'VUw6ZF9MJkdVVElabncpZilzJmEuLCE/UGVJbHl0fCtVZnRmfkNge1Y9ej8mc0VJcVlLUFhOKUVMOkkjal58eVNVdHZqKDtGdihfbUxHYG9JOCpYcixZT3tvSXFHXUU1Ojt5NEJFMHpTWEo8MEorPSZGUV1neTZ4Q0VVUlRJUEIqfj1MPVRVQkBbdU8/JltIbk9ISihRTkljNkBeInhMcTQ+KVhG'@; put 'THo1OV1Pdk14YERlKkYkYyluVHJQe3EsVDVkais4NXY/a1FHWDtxaiJ8STQ+cW9aMzYqIXtZSHRBI2glMHZgSjNtT31wKWM6Y3hKfDlCenMsTmY0RFtCUEIuPXJZOkhsdWBvTERzc3IvR1hhNUlXdFZdLFNAMXQ8ZEY+Z1VdOzlfVHxsVy5gVUspTHNETkRxdnp2KkJgb05IemlKO3cud2RaQ29U'@; put 'ajFiOCo2KVd2V1Q5UkoqQj4yQmU4PDJyaDRKSE9jYXw8ME1CV3hoO2R0R2VqX0lEPGNsSUs4LH03Nm0pWzExdzZTc0dkOiUxfWl2dGxhaFdWMFtdNit5bH5ONGFrIVIkb2RGP01jaytiP19IOls1Nk1fWT1gWWs4e3UzQXRqNjM7YlJfaU4kNk9ic3hlVHlxWSpaQyx5QnAodng9R3dCaGZlXj0l'@; put 'UWJAUFV1TVBvaXtRS2hXODV5SXBQLygxUyhPUyZYV3dINjdDJixoViorNTJdSVQyUXsocjl5U1BYdHQhN0Y3cjdBTy5RWGVdbittSnF8VilNTnhFbjRXMWtRdTJEbXFpLHQkM0sobTtqbilNaWtOcHNfdjhhJnMiK3l6WSlyWVEmQVMiTFJERE8sPEhjQlMiYnIjY18qdm18YyFGaHw2IlUkRy9Q'@; put 'anxyQihRLnVyOVdNLy94Wyw2dmxyZX5oPGVzI0Imdj09Ky9jTzopKjI9Xlp9M0wlQiYqZTA+bUEjUT86YEtvTjlzSjd1UVFVZChOfDlMU1ZGfDhsdEJnekh6IXg3eS5sWUM1eGpHbGFVQV9qU280RClFOEl+NCkxMHd3TDZJL1tUdy5xbE4sTTVFeixlNEdKZnNoPTFbMyVmbz1wVUJAXnR0dFpU'@; put 'Xzk0czZQb106YSg1RE5OT2NHPil9O2J7YDF4UER3TTtsLEV5WHVPRUIqZU1FTjAzIWR1SlpJdVB0TihiRV5DVCZHXllVKHV8KjkrMSZiOm41ZCwkWSY+bnRfQ1tAKF49cn5peDBEbCVLRnVzX2kuK0YjMms/Ik5udG5ROVBYP082WStUaUN+ZU97a3l6M1ZBRD9uWCU6PGw2bHcydkglNUdjdC5P'@; put 'PlJVcDduKUdAWWt4azBhXkgsaW0jTztoNiQobT0oY2QsdCEzaHg2fCl6TjglOX1KfG1PdDxuS2FTUG1YakQvSkMyWWpUKkJMNlBEYiFDMlMvdzwkQlZzN0EmQUY0VjpjUVpDQHRuIU88dCs6KDouekwsJVFzMGljRkI1X0ckenYwJkU2Z0d5QW1dfilPPi9xKUtjSiEjbEdncWdqRGtASDRMJj4/'@; put 'P0dOVmx4elJeKTdsdCJuUSwhOERESWlrQDM2fExMYiNuKHNLSGR7fnAjKThRbUc1QzdPT3VZdUFXO3lYSXZHa08wdj1ybFZtOH5xUlpIWXkrSTEhQzNuPTApNzJ2Ukd3Sl5xLnZGNXpEcE5beDQwXn0wd2ttcTFdeXY+OT1zKWJBMCMuWmF9V3cyT2A/TlAyWG1zdWo0UWNwUzpGaXk0PEs/dHgp'@; put 'PFVaQXoqRlUrVn5SY1kubVB7UWR4anFDdT1rLlUmSCpZcUdZOkMrN00mL3RrWkJGe30rT2JNayJfRl8wJVZgRnM6VzdBR3BjPEN1en1lNWpyNVUrWDszLHVYcWA3OVk2Q1crbXkrL1ApSFhEP0hbN1YiR1hOa1o+e18rMnNSKjlkR1YlS2ROKkNJa3csMn4jIUpucVIkWHMiIT56ODFKTE86OFJU'@; put 'fX0vV3VWQmtRISg8bUpWKlhRciVrfGtIZjBaP1FlNFBIMnhyJih5Y0JWRiUkQlduXywrN35wSW58Y1Z3YHo6LDtJTzFkZFJ1K2Aybl8/bFFpLHhxW0IkbE96WEFPayN7K3g5RzpRa1FfMERxRHcudSt4T1o0Uz8jUCFXPFJvOGBddWVZfi87LEVRJiVVeHRtZnJNbz9sRGRXPnV4Nz5NSnMkOF5I'@; put 'ejc2N2lEVVQwKUVnOnVRZ0ZsJGs2bVlCUEQkTHZfa3VnVE17RHQrTEJ6SWtFNzIheWJseF99JV8vbCNRL3RIVWA/MiZYQVlGJU5UTkNyIj4iamkxOHBQRFBPfksrRmsud2NteHZ2M1ZbRCF6bnU1cUU2cT5TPnwqeEU3TGpRWWxrQHwiIVlQYG8laG4kK2pnNk17Rm9OODNlKSg5aC5SX0hNZStt'@; put 'SElEM3FNYzNMdW5gRlghcUZPPyUyPHZ0UE5IcCFvaVBMei9wT1AqWkVSdnFzOmlYRF9VaFFWQmpXelV9MGRPbU9NY1lMd3I+NSlxYlMjKTs7RU0lUVJeLD8rKnt1P3ouS0tHeHA7NW5+UD9VYDphfnUreSgjQDRZSV8valhtYyV6b0ZAcWlqeD02a2ZFTUVkPDxOSHs/MW0ka1dqZGdkWSxgZD90'@; put 'XXMmOzIjUXo5OG1FYE9WUytQUHJPNSxtT3N+YjA0W2tNTG9KXk4vQSZOQW9faltqRXtNOGtrUGpAdi94Pk19ekYpcVldNCVRYjtQej1NbkBvNFEwOHVtOWprLzsxaiVSc08saFoycmBefDclXT1lJksxbHp6Ijc8YWl6JnY6fEtZK2p8amhNa3dWYiM6O2pOTzphUnUreT9XJjxkI3JVKmBxSlMv'@; put 'eUxoPUd3VjFMaV0wdU0+ITxeIVleckA/PnlzW2cwX2UyUmFCQkFvRyY5ZTxpJTpJLlVaTXFzXWIsd2NYPltDcGhXLFlVVXtbamJaJVt4OFUvRGZ8aGFuT2NDfCZJMlp9KF02aSRVWmdrS2s5RSt7QzV6SEl+cWBFZGI9fUxJXT5NOHxudUh8QE54PzNvVlthN2cxb00qbjFdKjZPaEAxXzJVSVBx'@; put 'anpwU3JaLk1eIjgxPXc0dWFOKE9qWG9BbUJ8W0ROQF84WW9ZfW8uPzY7KkMzbExFcXt7P2VZUGw3OjBZeEc/OjB2Z113anNmWmZkT1o6aW1CcCtQWURESX5GUnssaUBXS29nI2FzY0BqWlNrb3o7JDIhdXNZMjZHWGpyPyFqflh3UV9NTCtDa35fSXZJPlBsLmVHO2x7NHZmSSF7PDBVLlFAUS9T'@; put 'X2EzWmo/UD5dWE89O11Pd2Mqbko3fTFMcnRrI0tsT3c4XWtrXT82dS4rOEpsKD46bVJDKEM0RU9KdCM0dUxETFlhZzlGPld8TGdkTiNkIXNQYHo3ZUcjVE1vI3FPUTw9MH43KnllP0FUe28lTz1fRDF9VHxyImksNXlhPWRsQj8me2l3Smwmeiw+Z3t1SD5LQ3tRI2psRDRQUzk7MFYpQ1oqPz4+'@; put 'eEQ3RDhFYSVOKkJaZU5sQlJ0TkRjMXEra0V9VHZUXSJJT3R+SSpWPkZUcyEiMVVAcmdUR3MmM244XXV1a35iQyl0JlpgSDZlOVRZOVdsaGNPdFNDZS92RzdxO1Y/bnAlfl9lKm1jUnpBZmZaKyFla2dQSzJBJE9KNXVVMF45czdRWStRMz1YbnVfeixIRyM+M0kjdCx3Rzo6VSZBUC9SISVXfWVQ'@; put 'clJKYFJOUnhRNzF8T2BBQylfeE17VHZjPGF6NysmJGpzSUxxTGVKWGElQjV0IWEqbS5XJXlQfCF0S19QezIqQChYPmBDY2hSYU9TQDpWcTdNdmgzd3tNU3ZKX1RZYj4lPHZmZ3BuaGBPb3J5dmVldzAqZ0VSdl9VIk1mVE5rTiI2Wz5MMlVAN0shd3VGMjZVWkFNe3h2SE9XM3VBakpfND1uaEJ2'@; put 'blY0e3BPKDU9WkYqIVs5akZbdWlqayxhYkx2WF5EKlprVn1MY3dXSzVfRSwyZnxCMGY9SFYjdzt3UnRKOmlnd1c+KGZJUTRUIiZCSlNDNC5LLDZrQXpoYkkyZ2xpVEtVb09XPVZYfVJHX0NsMDZib0oqOT4sJE81T3IxNGBxOE1XVzk0RUNoK1VfQnEoTV9sfUE0aU1rcCZZdDgsL3RVaiMjPHFN'@; put 'OXl9IXhbWyFQOC44RmI+Zm9aQlI2fHJPd3NgOi56Z3pLeGM6MnIiSzNqWj9UKVhecjw6Wj14N0E4YCRyW1RrYT4xMXkxZUslYGIzMkxBTWxhdWNqKXdQalJAVnNkcTJCQUNRRE5lWE1PVHo9bzhvPyZNcl53YWhiZT9KViNCfXYqTUBZNSxKfUw8eE1IKy9PYzIpInJkNDBiPytQYjR6UWg+YXAm'@; put 'I0JkeFNZVFpkV1Zsen0pNlgyPDdvPSQlbC8sRnw7cnY4YDl2eFcjNURkXX4+OCx3JSEoSFZKdmhCZi5pYDNmKWRGQ3s3WElufSYoaVUzfStnSisyVDZNeF47OXh5KUFXdU5UZVBDS2FmJjVbV1ticS8qUiJwWkNOeTFJaF42OEg2JmdPaU8uSUx6NkJLVlk3OitsJWU/MUtJcE9HK25PZk4qd2dQ'@; put 'S0cydGw0UiVSdE9wPXxCbk4jfUp0YHlpZzpvfnc/fGUzRywqSjdIaUdMWF1xcWYuUlB0K2c+ejhSbjVTOHpLMG5AS1BoWkY5WW8mUypJLEtUVTlHODhGYUYyRD4pKXRzXzR3WUU1ciRMKFdmMm9OJiliaG9wSkZFYHg0cHkucTs2WTJ4NWBxeFhIP3wifCsuQkNBc35ZUStWTWJGcD9oJH1XdzEk'@; put 'Y0o7SUdKMl8jP0luOn0qOG1KeXV2SWFxQVRAKjowb3VvbE9fPXJpeUQlfjt8UWE+OkVnbT5YWFk6cWI2S29TZ0k/dENTPjxGOVpZTCVlblZXQCk1e0NHTlI0O304SHxRWU5WU20pLyIoYlN0TDpNKj1IISZtaFIhJXd7VEBNS05KKnhUTlBdVVhPfDRCc30hRShGPSt5TCJdQUVRX2h0PU9xJm0h'@; put 'XTJGKlp4RCIhbj8hNGZFLkl9fDs0TkNdbFFpdVNlZnFyOC9rTig6YT5yRW0vOClbZTZANzk3SGp5ZEJvQ3suKSJzUzJUb1IsRzM5UldsMHQmPVsoNkhoOFpGOnhpTl9jQjpyOjpNPG1HcG5kI2J3SFIjOjk2SGg3eWpMMlVERyxicHZRdmF1OiZZcSNdJnAualoodW87cCpFYXBzUFpzM3U1ei9x'@; put 'fCRgR19gZCZMMF4vPjhraUdKRGxdekokZCpEJFV3VGZEVi96fWtATXMuYW56PSIrVVY+V0smSjpIY1tJU1U1UjtfVkc+bzplMG5oND5leHJ8SS5KUm9OTn0+THxiQiMsTkorRkpPRz85eSQ5fDg3QHFnL2BSVl5JT3JRbFc+OkdqNDI1RjhRRlRIT1U0b3R+fmMyNEpMJEo+Y0ZNaHkjanpvWyFT'@; put 'UHs/Y0w0ZHpqfC9ZNGZQYWpnUWp8KHY7bUl3IT0wV01ZPkovNH5WTi9ecF9NQ2Rjb110Yz9SKGdSa0k6V0lFPXl6NlZlbD9lJlNpMl5fbSNROGRmbF1pejk4Wkp4Oj8lL1lSWT4wT0olJkFEeUVKZX4rVk8mZlVrQVtgPkddcTtQQkZmQDA3RyhyYkJpVGkhTUdBTiYkNG9IVk5MeXpyMC4zTWJC'@; put 'eHB6Kk1oelA7amFiSyN+UUFAMXVMJmtAImFIKmRKIVQzJmUqX2M6QkRIcGQmMVd6QXd8TGZtKEtnKSsuaGdWW1MrfnIpQ1E6dEUkWzBDQVcvbHJgNm1abU5nQX11IWR5ZX5TS3trPE1rQFY5b1lfQDwkcildWjl5Ik9FSztBR0h5Ky5PSUU/JjAoR2cuTXc9Tk5YL3IsVXdXeH4jMjIyaTZZN3FW'@; put 'UVlSeHZlZzMpVnRseVo/bEs2fW1GV3xueH1DU0tUMkV8SWVpNTRrYUBtbGd6VXdtWGJHOV1femtsMWFUOkZuW3YwNlc+N1I2TyI3PWM+VDwvc1ZvdUx5eDkuXkoqZ1Z2JW50dFAsdk5gWXdrSlp2PjJGTXJ8T3djSXNMb0QuMm9xTGlFVmFFMUYuaCpIO010X3tjJHhWUDU3bigvKUJlQTN3ZkJp'@; put 'W2JWdy9TQy97OG8yeFYsKFtsaWYiK0ohKzp2UUk+MjdJWUMqbTVFdXlfP3Qib3Z6fkxeMyJhM289MWgmbUp2eW5VZ3phWTokOFkrdXBmTjdLTURbS20sWzY1OmZMZVNSRW5Eek9nUEg8PEdFfSFHKF1taj9uS305QUIwe3JHOE9EKXFoIyp0czJqZFI4Sk07KCM9djlWd0VkNlNeVkJ1bUtIMFR5'@; put 'R0xQNlVTN25JY09iWUMyeVRgXyxkSlV4NzBJRDd3X015MWZKZU5KaEJ+JllXWy5AMUUwX0o+JjkoJFRxQ2ldPGh2K1dPVXYlKjdkNjs2aFl7e0dGWDNjbCJXVG5OeFVYS0dvZnsrd3A3PDYuKWJRUmh+SWlwbGdRVjtwVDtmOHgpLylFUkN9UTpNYkVkfTdpdkE4MCY2eyFHMyQ7XW97Vjdfazss'@; put 'UG9CJjwzViloLypTWDZHfmVnJHpBVi9YTn1tKEtkPnomK1I7O3N8RnFwKE5we0hjJFlwcUpZR2xaKHFfaWRHcSxZQThLdTZRMEphP3srOUhbNndxWnJVWjNwQDtjc3BsdWBpUSpnflQ3Jig1X3k3OXZxRFhkPV4jO10vOFYvPixWQjVUXmNWV09CbENsL2NmYjp2V3x0VkRGOVBjUlpAXyN6RE1N'@; put 'KktNOSM2Rl1QU29UMlJ8LzZ2ajlya3dgVCEwOjRkZjBQWj9oJCNIeE4jZ2FGbUgjYjE4OnlxZ0luK0ZoL25BKmhSW10kcnVGQCw3TC5LPGk+V2suX211ZjpYTXwwNXFQIzZ5c01LTXhrNUB0OjwqTi5TO1ksRV58XVBfeGxFRV5MV2hiWGdHSkxNV0hgcnk6TFJwPTVQPndHLjJ4N31PQGYqVm1k'@; put 'VXB0SEgxeDd9T1EjVTVHYU1Zd2JoPl52IkNIISUrdjR2RCZXS1p3Ql5dODMiK3tIQ244Ni88a1FhUGBsPTA6KyE4fi8oWTdSblJVb3YzW1p0U0FyKl9dY2NZK013ZkZLMHFMQ3tRZXtIKCM6OXg+a1N2QmhzWW0jW1YwQEJNWFh8WFZYNVF3VzpDZ0FpQE5RblgyZExuSGo5NG1AVjRdfGhXdGhw'@; put 'PzxWdGRBJHBwcUNfPlRYQEBTNWxIb3xIbj86YzNEYEVxRFswLlJSdlQ1P3JiYEZhc3lUNGA8dXJKbi9idiU/Rz5QbFNUZWRJbkBER2YqSmVEbVpjKUJ6NFJlKHN7KlElWmpLa2BIL3JzLGB7UiZ8VytAVnRjO2VHcnM6aXo+JkImQj4/OkxrKio/LFJScWBmeEl3NUlbRUNWYyVoLlFiZSZbekcz'@; put 'c0BnXyhlOCVvey5LZSgjLD5yU0YpcUV2OyRGeDw1bDgkZnNZeHVqO21QZm83ZWdAVj5RXV1KSD9WWztlLDU0dy9bWnNeTllgO2IyNmJAOF8penFOe24iOSNzcHk2K0RLcnkvcXZ1XnZ1K0QzYHVediJDZkd8cVBAanNhK0NiOF4oSzovNWVYP09GcS9US2U1R2drPj14QSUrUiVgSHhyZ0JCLiVj'@; put 'Qk50W1FVRWksa0VeeTZWfmk4WUYqIXVuUXcpbGdfXyE5XyE/REFpUEdGZT51UjdMM1FscmFZSmomOm4oTkAiMlFuL2J2S1VfYF9XIU19Z1omNUx+THVpcl9ARTpGIkY7ViMoVyNtMy84SWh6X1pGZnR8Mzl6bXhianRfJilFbWp2b3FJWGRTOCleKU4vdkVeeS9JPzltKCJIQSl0UDl4Ry5xMT1k'@; put 'bThAUEdsJmhvWXVDRUhtK0IhWjYoUzEpO3dlPnpJQTguRzlyZXZvKnFrSjh4SUBxcHJOKTlwa0QyM0hyKz5eZTA2MXpKfCtjVVQyW114bjl4fTZMZGZoLzBXMmNvaGk0cVM6NUhvd2hSeiJkfVtKS2cmKF83XTNaSWAxKEpHWSE0Wi9DSlljPlRUdkx3SG5fKiNSRDZAUV0lVS9IJT9HL0lJS3hX'@; put 'amtickBLZXY/QVBPZVd+RCY+Lj9fN1Q8KTsmTSlhMmxIRnMyUzIqTUNBZUBMWmciRW45QlZFWC9XZnZVR3lUYjJ8a3grKTdKYEI4RHg3TnByUHpGJm4qZSxNb0lWdHFNeEg9TW9DWFRSKzNhbnY+ajlMK0J5VF9dOi43TT1hMSV1dXJgXiElb0tKJkxyJWsla1gkUlc5Qk5WNig8ZFRiaVEzL2Rh'@; put 'WCYsWlVjYTV+cnRdUmUjcW1RMy8+YlU+fWY9OG5PfUc4eXQmI1lIcHcoO3dXX2ZkbFFUfEFdWXkjXUVDXjNUTV0yMkVxZm8wKGRvbERVIXFfWCZKTXJocmd3ZD1RODw4cmQlPnF0Nm4kQk5yaHJBVDcjcDdwR2MvNTtjOSZaM1UyKTpEUSZ2X31keE05cjxsVnI5LlI7NUlAcW1gU0U5cE53LmIv'@; put 'ZHlacWFWRkw4JGVee0Zfb3tucWJjfjtCKClpeFNSPEdXKzQvP2RNQjhSKm1vWmBgUGlwKzE6S05tPGBkY2Z7SHRYNl8/K101ZUxueEJ9N3kuYmgoUi8/P3poOGFtR2BWP2Z5M15FeTZ9dC8pOEJUI1FmYkI4OUVtLjgmYnQjXWhieF88WENxVEBBJjlFKXVBZ0V8cFJvZU0zajhmZFRZen0xUDBg'@; put 'MllzRURgWUtJQjMlQF42akxobHd3WShHKSZ9TUNoO09iOEBbd3E5YE9nTi5oRDVzW3QvKHRLMHpOYkJEYVApXyRhXmRdWk4/MiNjMWZ3bjluR18zQlM1Q0NsWmFOP1BPPEVOKzowSE5pV35QYjVJYkBmV1coUG04Lk9uOT5gQ24kUVg8V2dYKGBbcCo1ZHhnJkR2OSZIbjRafFRYLm52QH0vdGwx'@; put 'X29YRW5+fX5kZkN4UW1UTX5HOjlIX2h2MWBXQF9OYlMxWix1JkFlP2NlTmFuYytvcH0/alZxTGdFRnJPTml4YmI5fGxmSGIxcS9rLzAscX5XbEo+bG44PW9hZD5aPmVIMix3OGRebXV1PnpJPiZmNl0+RTFfJG9IcSlkInAiTHJEXSN1MDl6UmtQc05qQnc/WCE4Qjp7ZVpUYVhnQj5TZEwuJCtN'@; put 'PjBFQWtAPDAuLyR8OCtpcz0rNEs0PE5ydmNJfEMuZEwjKz1CbE8yNU03bTZBfTk1SWZod1JiV0IxN21SPmBrYWVZXi8ySTZzUWphSz0rMjQ4Zk9yeCpKRVo8S0JtTyNufiYiVzMrJEhQWm14JjJkcWY/eFQ4cDhCWF5wQ1BuL2QqL2szfT5Ca0wmVXpHel8sU0Q1U0l7WmJwXkd3Oks2OEM+c0Nj'@; put 'JXYhXi5IVTZNVXY4YzcxQHpmJT5jWUI4JmpPIk9FVUx6cDAqLyM4S2RyJUtgTmNLPi9wZUl2bj51czZIP2MqaCNwOSkhLCpbPG15YGNmIURRI1NfV25geWRnTUVOSj5ZVmAqJVFHMD1oS2k/XVdbbFFHWHdDPTlJRkJAOyE0S2JHVChqaFhbJHY0WTghcEwjLG8pbCY4dy5NLFAvL1UpKSp1OUIu'@; put 'T3clclRlPTFMbEx1RjIkcVVCTk0xcTpIWGwkQHQ0XjxKRWdxaWksO1hReixrWjVfZHVVfFZCQC8kWmAoZmU7RDh1M09JdiVMYSJweHNfa0A1M31FJFtnUVd8VD92NnRRQi58bHJbPj15UGFLc0hUeHs6ej1EJl0mR2ZtNnRGMERyLDA6Ll48JC5FJTEhYW5aQUVFd35BQ3w6OjsxPWYocjVTPnhm'@; put 'JnBQYEVwUC4pajBlP1BaVzohc0VTPz8iVEFNYFR6Qkx8ckZOR3VGQ1kxOGM9Vi4pVjw6VTJZTTdLW3QvXzR5S1cxRn47azFJKDFXSTMyTWdgeGBnSV9ob0g1L0l3PEovJnxGQithYSZgNTFmQX52Tk53TEFsLEh6MUo+ZF4+WTZXMTdlZWlHa1NtYWQvZkdzSiRIez0mQjhWfE01NEx3WnhJS1ZS'@; put 'dS9nRjFvOmFedmtuP3U/K19sRytVb3NBbXEoMGM/RD85cDoxW3NUcHQlLFFwVDclOXlJX3oyQm5OTTVjRk5FYD9pR259WWl0PTw8I1VKLldLTz1xOjtXcCRPPWh1OncuNVcscmorWiI8KU94Xk0oRDpnLjwoOCU5MXM+UmQucXddJktAYDgvRDxPKyZtQCVVa3B3SGlzdGUkMDxZQFNDY2dWaEwr'@; put 'ZWx6IntQJFFLbXtUZExpazZAaEQ3bnpmLkpuIUAxTGI/RD5rTypCLFhJPndVQ19NM3w7SCkqcVA8LGVtfWgzKlYkKVorK15gKGZRZF1GJjROOnskez9CKE4hRStWaVpzb1djdXM0KEQmeCpWUTIuKUZOKUVtRDd4Pk9ZKztdPEx1WnwuRmM9fGsqNVlqRnxFVSl4e3lRZnRfMDN2LCJue1Y7LypG'@; put 'RlZVKSpDUXoyQGVDKiFncS4obmMxKCRsI05rQC4zKEImRih9JF9MfE5rTm55VDdnaXNRT0NxaEpfVEBPfXs5TEVuZCE7NnNHVnhLI01yW2t7JVtfakZlc2UkNElCOFsoJSx+cWVaJHBGQV5iNUwwZX43VXIrdSxJbyZqdTk2V2BJZUhJPGA+Z2prUkUmVnI9LDI4ITpZYTBLK2h1WiYwUGlweEVQ'@; put 'fj0sXmxzbnw1L2dHXUxrTl9uISlWZG0wYEgqQW5QJiVyQlZnJiorKmlKKEpNaz5II15TNDU3KyxjLFNHIzY0ZXM5fWRUbi40P1tXZyZGQD4lOmhmfmlHNywjNDRhR0g9aihfenQ8PFBDV3FFd3p9Mm1gZ30rR2JNaGZiOUIhTzE/OEJzJkhCKEg1Yz51NiR7Mnh5ImtuTnAuZ1YpeWtQVytFJWNg'@; put 'ci9IcTx6cGZ8NjNUJCguZG9rPmBCRmQmVS9EPikkOG1hSV18KChiMSNwOUZINjI1QT1vJnZoTndudzs9RChhfjAyVDR1NnVAak9AVmNHTUE9amlgNHVvR1NJSEAhdE0+Yl9NK21eWT4qXklTWF5Fdjc5IUxQNXIwTzJtRFVnWmBUL3BmcjFWKH10WXFPRFlqd3F8cTlHc3I4MVJpVFN1aEBLPntH'@; put 'RWFeX20wM304ckpDNFA6czhbQ2olQyZrcGI4Ul5oMXF0YjBZd1lPKDpAQnh8VytBMm0xVnJZPWcuRiVFSlEmTVRdWyhQdFdMOyxjL2RrNVg1eyZ2UFRlRSVaR2N9L0xCVnUmSW8se1dkMSRIS3Z9RCtQQWxxRFVuNU5EUCpEPFcmKUpDWnJVZDwiWGpoK15kKDZ7Vy9GVlk9bSQ+PkBMVmgiRl5k'@; put 'RD5PVG9xc1tdJWFTI0MyJVJ5SitfOyt9OGk2MEtufDsxZmBjbVsrODJUaDorSGVUWm15PEduW0ZdWi5SMSl9Qk4mUjpBcWIoeCNMRUIhKkRsfEZHNFE6bihOR315dmZ8YWhUNmthfCRvaDVYaEtFJTtRZXxQPDplMml9eiV5a3VjOEImYkVWQ1B8YChgQTE+PHsxVE9yQ3Z2OUBySkE9eyJsfjZr'@; put 'XSZ0U2grPFQwTHhEaDZfc0d0Vks9NTVMP2syU25fWSQkaU5wcjs+dlRgdzJaSHFLbnZwNF0oeShCcSpZJmY0OCxHdDFqS2dAfUs8eX1iOksvakpHTEpZUzpdS104LElPJjJHYUdeXjI3JmZAfV4+Yk1mKEd+YnF+cztlb2IpUiRWYjR9I3JbOTZVKCFzfHxySk58Xz4vVldpRVJjcWw0QHM1YHE/'@; put 'ckVQaEFrMSEzJnFfQ1YiNl0jZElneEdEIVY0ei9KKCwpRl5sNi90dV19M2BCISh+fH1hfEVjLH4kVC5pJl9fRn5LYyEvQ2N8VVs2KjY5ZVZmJGJzTlI3VEs6cmNhI318Yl0jaSVRREowUlN+UXtBRzJRTSFPRGhxZXAvOTkpPGt8I2xbYGlHaCphay5yfEFgRmtec3dzSmgmPmhXQiRYND5RTFtN'@; put 'QkNIKz4iQmJufj51NyVzVFpJVkpjcylYOEhMOm8rb1M0Ii8iRDM+OU15azM1Tl8lNlRFaH5Je2NSPTtZMjkyamgydj9AR35Nez40PTtkPzJeeStgW007Pi59cn5mNmA0TF9LaCM7PHUmUzw/WCkuKl17ViQ8OCRpV1Y2KDBKUDtbcDZSInZxfjh9emkvdGF9JntRXWVheTEoMHhuSThgRjoqdUhX'@; put 'TEtkR31fTGQ0aEI7QmF5SH5gV008UTwoKWwxaCJMfmY2fTVIUkwqc2RiQTljcy5wfXNSWmgyfnk+UWxbUH1jUno5RShRPVZ8XVttOz87UTI5Mm5oLHNZRml9PlshcG1XNX1lfCM+KXN7a2dOZ257XSpAYW5zMTQxUFZ5U3wjVlsqIl9zdX5gcXwjRFtiJFVXIn1SWXJXOmVUYUNIMVleLEF4MGh8'@; put 'RVBUVldWfCNJNj50fiNmXWVMTCFKImZfemUlRDUrPnNvP3RFJF96ZFVOWGBlQH1HKDgpfiRkVCNbPD8qLChST3ZpL3ppRzBAMVNkUjc/IUx2VkgoUjdZZC8/ZmxSRTA+VVhtKkh2OCIjTGl0akRKI1toNCVzWSQoUnFqfHxFP3lrUj19KzBvX0hqcHU8UjU+W3Z0NzZxL10rb0kmdGFsUTFEWWdy'@; put 'MWghSD4uN2UrW2EhOW8uajtvI2N0PEFiVUVhUjhna0dqLyM3b0ltWGFsUTF5PTE6KlRfOyM7YXkvWDdue0lDVlhuPFV5R0J4YiN+dC5JYFVLMyFWfmhxMjlDUGl3Q35uZERuVyJEdGA2Rzl2QEkrXTZHdXM1OUVIc0plIVtqOXBMSGVRX0RpL3l8WkRzXz48YjZsKl98Nmd8I1FpIWc+MHMvcilw'@; put 'fkI8ZiUkOF00djhrRm45Tkk5L0drUTErckkwTGdRMVNIPWA6aH5CUnsuNFlFUGlaKjh9JiEjNX5DZmZIRXpXQzdhJVlnP1VzeHBVaEYuTFdSZUZHLEZNUS99Q0h5dD82R1JmVTM1UlpaQjkxYSxEPW9XT0RuUDgxTElAOUdqW0ZOcy5Ccld4P1Q5dXBVY2tZK3AxaEEmKFlbKDlgTk0mZVE/d3NH'@; put 'WERNJmVRZyxrRT0oUUY5Z01lKSVabDpgS3tmJVBQdlJZRFNxOWckIkAoPShASlhCaTN2VSImcV9mJUhQalgudDIsSDpUUWkzYzlWM1VxOWdaelMkcHBJXTdYe3RwJSRNZlFZLFk3YFBKYmRYWzJdN2c+MWYzYzhqMVt+OVgvKVM/YmV7TW0sbG5WfmErZEZabmJja1RnPmZRMShTdjdGWmFEZVEk'@; put 'RFYsKFRQWVNaSDVYSndNYWFxZndEJlVnVlJjKXMxQi5VZ1ZJWChUWzhiNDs7LmpnWkx5RmhRMSUjIVt+OThbW1I1VWZQY002JGtdODhWaCQ0bHA7WnoxKDM5NSJDTlF3d1hITSwpW0owcXRWRVtoKkJtcFNVQSF4RGJtYTRgODIsVGE8b3NJIVZ5aj9vZHdlTU9FdkcjLmRZMkZ+ej1MUUplUUks'@; put 'KFtaUWZReUR8MFpZcGFbdG9VeylidjFhQmRvVSFNZlFFLCZreVZRfWxWP308WUJ9cDQlWjY1VltLNEd3OWo/fTo5SEwpVmtNcmNqUUA/W0wxViNMWlh9YkUjVUQmUndTXm40O0dtJHpUKnB3Iy9SVDAxP0dRI2pHd2VIZFM/bFc5VzpVbCt7S2JjOGZoO2dnNl1mR2NNIVZYMm4zaClEdHswOilY'@; put 'P3hEQ3R9ajFIZ2wmIys6X29iUEx6NlNIJURkSmdUSEY7XVphIy5lTltZO2xuQGhDbUJYalBNQWB5RyRqdS9ibDltWlMhUFBIdUMrSmZAd3tXYXIqRzRZP0hFUFsoanRLNj5SSGl7fTtZaXpVJCtuR1M8aVdrOGhESHs0TU9LP30kOjRPR3ldWVlvKVRQaFl+LipRR3Q3b2diPlhiRS5TZCUyNmxY'@; put 'QzFWW2cyMis2QlExJHVQN18ya2xKTGZCVTh6WjFoN0tSLzFMcj82WyZ7VDFRRFZma1lrVjdILEV0PFcwNlpeeXF1Sk85eXdeOkIlJWxOUXZJKWhxNV95dXpaM0I6fWN9ezlYSFR7KCkzRWhFTj9TOXV1YllISGFhclBtRk02cFpXWXhEKy88ZlZWeSNDVy9OXT06cDlnTGR5NHRPYWx0TzFrdG5I'@; put 'bDJwQC5RUGtIISl+NmI6KWNDJkFldEkscSklNCZHSDhmO0MlZkFnXWBjMSJDOkYmPSNEODtdaDA2N2NeS3dGeCIhNUB1JERFUiRgVEZdOFZpbylZRlM+fEx7PWY3WUksM0J7MHpRUm14YlUuMCtnKDc2SHpxQXYxZEt4Vns2cHhyJiM/XS9iK2AxWzs+LHAmWywzKnhDXyxhPk03R0VzUk9gfFlL'@; put 'bDoyMXlIfHEyTjBdLyxRbEhfMmNAPSh8SzJEPk5yaGkpdUtnfkJEYFJeWy9WdGt7KVgvMmhUQThvb0ZoQEZmcHczKEI3Nk9ucVFiOkBoXWUkN0NQbTc2UV9fJXVFcXwiZ1B7USxgWz9dUkBnW2giR1hab3grVjl5NzdbKEdvTjBUd3hTKSRFZUE8R25QX2tMKWV7aFQpeHF+T3B3YXUxfTJjLmU3'@; put 'PlU3TlZjMTo3aVBNRGJhU1NZVn1xXnNoamJxVVc6YUpgIVlzOiYmcXA0JSJRWntsLFs7Y058aDVxWWcxajA2U31bezEkZUoiZHw+dzEqcVEscjtIcURNM1QlPFkyUWwqV1gybCh3PUc7NWY5Uzl9SWl7e1E2eVdkOlJ8NixEcUJhUVQvc0NYS2l3VDxEMlpKcXNobGdLOElgVHBCcWxicj58YSxq'@; put 'aj5tVm5WRD4lNCJeKi55blM1OU9tQ1cyOHJLUC9fR3NKTyojUV8rTk1feVlyZilqcHl4U1hJdyssI1Ffdkk/b258X2FeL1Z0b3txKTJUVDJ+ZEc3Q0wiRSglQjE/XU1wK2BGKG5SfT1aXX1HN1JMJiRKdFNLQmF8QmBaZ1l3QThCai47TFk9ZzooeksoRTdbVEtAezMkWHszOmppYjFHdnpzcG1m'@; put 'M2tOSiZNckxrRWp5dmxzeWFFYC4yOFMwNmdnT0A3KGRLaGRgQT5yczxjSX5AbjlnZ2lfaltlPTpwJSRRRWshO1ZqYnc7bzc7OD9lZDB3bFk3b149U1UlT3JaYU94eHNMW09aTl9sLDQ4Ozh5RjA6aD4lJk1iKnt1Ykw+YEVBZSp7KyxyJlcjJV1gI1JxeGBfeWdedF5CaWFtPDpsI35kd3hpcFNo'@; put 'REc4OiNGO20oYSk0IUQscUVkU3lUenB8ZWA+ZWg8ZTdzI2JuNSxwe1d8PlkqPzQ5Tj5GdyNtbkh9R0ArSittIUFqIUxCN2E2ZHE0JU1iRnVJTEFWRmUsN1VpX193dkdfPlUlZUNpTUBfciVDVUl1SWx1cm9kSXB6TGJtNURXJTNHSX5iNVU3Zj1AOns0eS44RWxMOzpiUW4rX3BRbyN6Rnh2SGJF'@; put 'JmZmMDZ4QVtlQDtxKCxjWSxKLiNVcCMoeDdDWiY/SVdLU311SzpJYWRxZjEkX0t5LGt3WXtoZTsySHtXLiY4YShEO2h5Vj5IMiJeKDh9R0VHVXExNndheVh6aD9DU2VgQXApeD1iVUc+aDgvOCxMRS9mPEI+XzksTH1Oc3c/cXhNUHlXYUdAaVQzOWU3YjUuK1kmbSZCfDY5MmVgJS5VRXVCSypI'@; put 'XyZoTXxrNlFEe3x0R250JiJkMipCKHtaV2IwLFI7MlArYGZbNU06cDIqKjNXdVFdUEswNjBHSnFnY1VUPigzPG45T3hZKW9uS3E5Wj5mdzswKn5kfE1GcVM5MGA0dUdleD9RZjYkSnhnciF8R2twaEc5ViNqUkY0T2IrO0x4IVhnckJUIUdDRVpKUjBRSSVxWWp9L0tlX0BfNz43T2tkPm13aHBI'@; put 'eWJxSzJFaWtZS3d8Z2ZORXJRRFVleFt8SztjYWhuO3o8ejlKN2hwU2ghRi9QbnMkYyE9TVhnXiQ2blJyN3F8P2VOOHdsWDBKfWhzbS45cWBtbjI2aHhbL2VHPiE9Yl5xfHxHN1poJjFjeWF9V35xbWZuOEUrbDcvb1huai97I3BOJUV4NVY+bT5WZ2lUS3kpdVlCL04wQGpHb1ozVVI3QzNTcXNb'@; put 'LjdYWlB7RkI1UU13OSUrY0Z+IT1UO3hHb3BnY0NYP3FGWUhIRUQ/N3RqfDh8XjYlKVNAMCs7bzl8R1opfHRiSUc/ZDF9L05sY0FDPl9kKUQiaypiIyU0JiVHb2JGOFFsMFppbER0S1BPYDZAaVRSYkkuRnlhPilEVi8uR3hgQlZHcSxXfWUlV0tMRk52VyFGdVEyXUtrJDYsaXI3JltwOEheWzxa'@; put 'cU5uSV9PMUtxSDZVOT80VispMXZ9NXcuSnl9JUFBW1BoPFtyU0EzWCZtRz03ZlJ2XzppTW41fm45flVScU1IISJbJnxjfWt8SmZ7R3hIfEJxQWVNd2UxbHlrcFFrfWYqaEdgOHs4eWNeWHRRfTsmWTRzZy83WnFuTX4vcWVxe3x4JWRMZTB7bl13Myo2KlYsMl86IjhMXkY8Sl8kVT1nNmpiKHx4'@; put 'JDZPJTV4cDJEOChWNkBsPyYlQTpEVm1KaXU2VmxiJDtxT2UsbzhwKllwXXRLZ0EuYlFYPkpFPC5KVCpxfCNEJkFlcixBU1NYNDxjSTlqMDZ3L15LdUxORzRaNVVSakVST3tAeWA4LlopKSwuMEI9a2ZlTitnUW5de2RUWSg1WXtDQHouNENQNjk/aDtXSilUcEBeVD9iP3pnYjgjfURyLHhPejlL'@; put 'MiFibFQmRiEwdld9emdibz11U1dXOzo4WSYycUB2UypDK1Q7Ol5UcUBAYFE/ZlY7OjFOQjI+Q2csO2JBU0tGITBUWTE5dzw5cSNgflI7fWg5PkM8YmJSZkdzRCUoZmMhZGgve3hPRDs/OWVlMEZndFUzNDN2b2ZeTj0ycH57K202SFgyenJJTSl+QF5XJmdlUjxiMlFZSGYlN0JtWUpCTEdmcTUp'@; put 'aj90YHZ+SS5AQH5ASDZiNl40OXF5OSJ1PSFIaDREJlUwI0JaZlBTP1owK2VhKWFEQkFiP1c6NklVMy8rYGFwRzxvPjE7dChxTGwwdl5WalBJP1RtK2VHKSF8O2VfXVVeZCxDYDEwQlk1MFlCWTkzZ05KQDF3I0Bvb1p0akk6UjN3I3t6fXolWXJYOXU7Yj5JJERwYj5JSURmYT8xQDE5ZD8/dS80'@; put 'Py5wVFBTYEhOeGlDWls1WGo7UENBQDE0OG8lJUR2NytbfWpDTlVYdEdxemZgZmUiTnV2Jk5YMDV2Ik08cjFudkA7ckRkbnhoKC9ZVFdQTyNRbyVzMFlgUD5id15fdFV9ekpBX3JWbl5FcDpCNDt6RnVAJkFPcEBDP0o0Vj1eWSVNX3A1N08yP2JVSEF6WkxKP3NvZkppOTx1YE8ocnNJXUFBTjhX'@; put 'eyt+NUM1NXF7My94dXo7dl9NIjQpWkcseyx1JSM8S28iQUYoTE8xRSJKdk5LNWh+b24/eitabHV1QCNyT01CLFhMZ3I/YiIpV0RgMytDLFR1eDFkP2JGYn16MlpGWUI6UCx7LHlpe3FWSChSJForW0w/clsseCtETH1EOXY6XlslTlN6JXZuKlhvP1ZPUmh8alRCdGBhUW97cWZKQix1bXNqZ0cj'@; put 'NHpBKUtxVnRFQU5FbXNqPy8jZ35OKjRvYjlMOkYiWldjdGo/L0cxQDFVaXFWb0Q5M143O3VkRE1KMiIofVZ7SilyNlhaZFIqLnhCTk9eaTtffld3N3R4Zmd5Qi9JQ0hPR2AyMHlAd0AoN2gsc2k2PEV1V19ITk49P1ZCMX5rQUEwWX17S0xYNnJtRUIsTHNYaHVqRldEQ3ZARmMqfFpRQmFLcyVE'@; put 'MEdvcndOZjB3b01dR21bW2ZyIWVBR2RlKm5aWHtdflJudXg7QDFMUFhPOi5rdypUQWJAdyFldWNvYilHTU0hMG89Mzw+cnNqbnRdNDlxLiR2U1U0VU59XSIhNUlMd2Qvemc8WDBuP3pbWXtWTU1VcVdKJiMzIXJtRk1+Tmp7P086cmpAKHojeyZLYHMwR3JqIWMuWy59I11bZ0AxX2A4W1hKYUUy'@; put 'OnJwWCVrc25eOz88Tih3eER1YFZkb0xVM2hFJTNdTzhLITBHWEp+cSRPODxUQWI8WWlXcUNHd1VlTis8YilHU0ZnLC98fStCNWpYPSEvTTlAOW5HdE99fStCNVFYblhgTjc2cTJmRnxHPkU8bmhjKFphXWdVPWxRfkoxPjhyUHs0Sj5DXlZGTCFUJk4kKDJEditOeiFMSnp7e3V3bTpfdkJXWTV4'@; put 'ZGZld31xT3QkQykxWDh1WU8xWzEzezQkPz8qNE9rLiVEVF1Sakp4Qmx0QS5PSUlsMlErZDNMLCltZ2VZcHUyJjNLUFFtSjlGM3ciX1UpdmV4ZDdYO3dOOXdjUjkqWXcydm0iQ0lIPm5qUz4rVU0vQWVnQWYzI1dzTzh0KCNkUCJaRnJqZWN3L25dMjdoXUBBP3pjWERZTzcuKFs+YkooV3JqZWMu'@; put 'Wz1IJV5gZXJIbF4zd3ssOTx3WlAjRCt+bX5vWn16PHI2bU9uJT1NKVI2W2MvK2RCKytkPlBae196fFdIViJ5IWVzYTwqQkppP3RgZFptVXVWR1pRdXssYjRAb0F9QShXaH1FQDFtQiRbb0cuOjl2KFV0RThZZlBuK1RQNWtuLG5EeVdgTklkKnhQaiFbYGZ6SUsoWHZDdlYzcW90aj15SmJIMUZe'@; put 'eksxTC5AcTRVPSUoS3Y6PXs5Sk0qRkMrRC4oeyxMeV4lOUMqK1BAJnl7UFgkLlRZW1l3UWhDR2NFWF1IaH1kNzhWTSlJaT1lYTpXXjFiWDBTNXg+KyRWTXJiYSpBNVkxdjpgPk5uKnNXPygpNT4jWyE3OW12czY3PXs+VTp0IjVHaF53eShnRWJCa09xQGd0LjNLaEgjVmYpLDlENl5hbFNeRWFi'@; put 'O0I9Z3U4fHshKVFiQzRLZlZEMX5TaHx5SEkmeD9PVnY6PDYyZEAxdTpAb318Lls0UmpEQDEqYDhbKH0kW2JdfSt8M0hYdjQ0W2slOXspKX5ANFMifXdoVFJRQH1JRyEkXz5KMXRTKGhQWEk1dHR2TDxCRno0dUpZaTxWRDFobTNJX1ZvI3hZdik3WCJqJm1AJkE8aG58Xzp6T1oiSXpSZFNbPyJI'@; put 'S3F+SXYyJVE7Q0dMXW56UXxsV2BdX2NTLD9XVHtLT0kjdHdDWFp3NTdFa1F7T3xAflI7TSVnelNUe2N5ZUJAb1g6WS5zNmw8RFl9XSZHLkZieTE0Xi5vVjQvdk5yai9iLlshYDZiQDJdT01HKm9FT2AocjZsSGk5UkpUSmwibkkoUk4raS9OWT5QYURtKypJKnJzaisuRl9nRTpAO1QrbnFieytt'@; put 'S0Q1ai5lVFdiIWJsXmxGT0VjVjAjUldnOEZjOUJAMW5kP28mfmlhaH5Ad2BRXjt5QXd3aUMwfHY4bDRnak0zfi9dTi98R1ducD9aS25oOVU0NGU+UWhrRU9LP3NvOk1VM2hFZFZNM1dYV1c5VlIvfStPS0M1RVJ9emRVSzV2X19oQDJ0Tm9HITBOalJHVWBfelJZfDRGXU1bNHssOkwoKFIrTmgv'@; put 'akM1TnUyPmIyQGdZTnVEe1JHclJ8O3I2c0BVM0YwZ05+OUt+SylIU1k2enlVVzl+YnM4fntuQHp9VERZdD4vJjo7X3p9VFN1WSY7Yls/a3dOYj96LlRHWUVKUj9+RilTJU1WS2t6Z2ImYnM+SEgkIWJ+amBGSz4uVytUYFV6IXEscGl3ZWUpdTNURlpiZj9iZ0B+QFRLP21TaTkzIUspRzksOCQ3'@; put 'JCN6YGF9eEUsXnNbdUNIJSphPDlbdTt1T1Yrc2JEMF0pI2B3ek1WWG17WCFlNzlxZWpGTj5peW5lZkZtWExeIiFuXVQ1RFF3MUAxZTovYV5ab2owTj5Fd1BwLnssWlU1ZztZIks0aHB+WH5zfXcofkBUKl5xP3IyLHssYSVvJTd6QDFVam9YZlh+PlZkYUppOSFLNnJhJCI+VmQvTSVnRFNTZFJi'@; put 'SzpAX3Z6JGtZa1tbQ01vKzBrTlt1el47JiZ9On1ZMClAJD97dlshWVI3eVM4RjpzazRpPiJ9cmoxbilbWTJwSX45YitWUjRgX35xLmR8QnVPUkZKN35fQ1Z4SFY2eSJmY0xqc2haLCUhfFowVDRCQjBjIV9+UnF5MFV6WzxpQ34hMzpTaGcmSEkpUTlBZmgoNmomX21QVGA+QEZ1KXxYbyUpPX1J'@; put 'TSM3aUhXXWUzS2N6Zld8JTlHWG4xcEZUfWpBVSNyX1gpUHROMGZBJEB2SSV4XXk0Rn1raUohVDM3ekUjUFplRCIrfjFHOF9XOk5tcGx7K0RMKlNDYzNCciZvekAxI2E7byladGp5RSg0bCJUUyx1VSFZfE08cEYmOyJYZGhIczhtdH1eczpVZEc+aldgbTsldVZxTEcqdjd2aENjfF9ueEZuVysz'@; put 'dGV+cl12fSMoKEoiIX47fC54UkxseU1PPmomaF4sUUJsPmxVfnM6MjA4aXZBclpxPDtXIStESX1KXXg0KmRLOjkraWZLTFk2M05sLlNdant0PjtSbCFsfH4oOzsiNCF6eH5wX2t0eVE3UjVTaHxxW2o2c34/fHJ3eUY0UTMoI0lpaCt5bCFZcVY2UHhALG8qbCZOWzhtUnIiSTRUSHpUPCZ9JGJ8'@; put 'IyMoNEJ9PGVdaTMyOzFzO3x4SDMqLFszLiJOZkBKJCJLMUReRUt7djIyPlRYVVJTfjlyKnZ8XSxZejk0WElGJmAsVTRGLz9xM09EKnFEITZDLCFMPDl9Jk1ITGtgI0EwOVZrWEZhXSUicENrfkEuYU16fGY1N3ZxKmhDcF9RIndrZmhneGBMcD95cFBXVUdsIU1+UU8qdksqUC50czxWd0J6eXNo'@; put 'MUQiUER9S0JydVcmWkhAWG9fUXZQTEg8L2Fofn5lMSo8fTlpM31kPXJbajg3PHAmbC9KSiY6MWV5SCZgYTtKIip9OmBIZ1Q0fk5pTmwhUH40WzIqUnw5ejo7JjRAMXAmakp7bGMpRm1GNE9ZeEsxNVksQWxjcyJld2tbc0wmNEZ9OF98QFAmaDtldldsIVdzZjBsIVUoWkp3OlI0Xl8rVXtMUUBf'@; put 'anwzIVlWIWF8WEw+aTVfVGRUbkg4QTF9fUEyLml5X15SZ18ocz5fIjN5dmp8eHRpQmZ6UnFJaVIjcnZVUmN8N1d0Rjd3cENMfSZxSy9OP0BMS1Y2fU54Wilqd2NzPyxsdWxfVGQuZUxAOixlcyNNYitte1VSRmh4e1hGa11TM3BDUH0ocXl5UmBpcDomUFZ7U2AvU1goOShXZVRefHZdT1Q0UVg5'@; put 'cWYjfT5gIUssO2E0OEpZJiQuU0VBQFF2bWh6SihFeF8zL1JXelYiJGZuQH48Y3s7VXhiflh7IzRdSzghYWZqVkMxKyZqW0opVF9uN3JKcnxGISJCYXtDZy5lWUwiUEB8KmoqdjYqSC5sc2B8Xkk7USlzam0vQ3J7UFt6e2x1I3JtazZNS11uNnBrPV43WT8uRUhXNFM0aXRaeX1GRntqYFdueDJU'@; put 'PC99cHJ+ZipgSGl2RmNgOzBSSmswd2l7Jm9YRkJoRHApdkxWdHN1XUZYZFg7W1FXRUJ0TEM0MzNEU0A1dGdTdkRuYj0qJFc1bmdnZEQobjZ5Z0daVjVbZ0FlIVhXakh9c1UzOGI9fEwxYmJYeTxkZiNSK1MvVTc+SztGflN1bjdNIT04JE1wVGVJV2pePWVFSVgxWytrXmd2L1tbPXE9SCRrbjxZ'@; put 'MH1KbD4jPnMoS3t9V3diS25PTjZQeD4/WStKWTNWZyMzekhmelArVFUpbiZsMEY+OmlqQjhnWz9qZ3Nnb0x3YS9EOE1zP2s6NkAzPj9WbllDVFkrNEBTb1RpPFJUL0U0fl1ibFZKLylJIzheYn1fKHo+M01aZTRKZ1M6I1k/VGFUXSRhaUFXc0BtaVVYV1oqZztiUnA4bCReLmlfenVWdjYwcVk0'@; put 'emExMVhvOUx6WWpgXnp5OjEobGpvUUhVeVk8ZUV4PDx0eDZdKVhfKlMqSlJBcz1bLzxaX20la0ZrWGx4NChfUStGZz16XXNqUWM3QWlTT0pzamlYMjpbcmNhLzJJW3x5W0x3YT9vNmoofD9PbnN4MDBAUWdUcWc5N2ZjQ1sxLi8oITlLQ2cyKSUpV2ApeCFPZmlIVFZqbE9+X15wP1YvRywyMFps'@; put 'KUpJNj0jQXAwbjJxbWokREIpekwmTC5NI2lrQHFofFN8UEV1XyFpe0BjYHQuKV5lO0A+IjslQCt1JjJ4dFtFQVNeb0J1UHMxdm9Kb2ovNEElXyNhXixqejNYKCFdaGV3dlNgXSErb3dudiMyO3luYnMkS1ZTQTg3PUc6WmUxYi9CYjB+IzZwN0NlO2ZkUFc0WX1xXSlbRWw3KXVuOnwsPldfaTBF'@; put 'bWQ1IiZ7IShKIjtOcVNjbTw0NHomOkFBbTt1NVFgKDloVXY/YCQkRj9fN3JGanBuN15TYzRySDYxMWVjKU99TCZHOTVWQSZ8NypEJntSMW87eTNkTHElQCw3XWlpdDouWFAhW3tQTGRIUzAmaH1xYm9RW21ZXmwvX2Z7KUNTTXZnei5RQkRpWztLUCJAbUVII19sJk4lQWVLVE5DYC51Yl9WUjYj'@; put 'KkJqVzU+TzJOciNaMXUueCgxdzMpPC9mPTNkNjxkcFVAdSw4Jklvcz9pKV1mIXApU293SGRVP2ksXUtqMl0qd3o2Iks4UWd2cEAzYkA3PzFCNnd2Lishe0xtZ2lyTTg7IXRvPUYhVSZXaC5LVEM9P2NvR0JmaXlkZG1lZzdxfiEhIVBsIiJEPXRdJD9jQFtuUFNFJWJ1LFskT1V7VypgdTxXMT5M'@; put 'MDhpcihaZ24vd0JuUTorLkomekR2RnxPKEtkVEsrRkU5eD98ai5WJSVHKm8pdlUmQCF2YHw3MSQlM3Z0XkAkb1YoMX19SVplPjg0NWhXZFdMdkxWJT9vb0JhQCN2YUNOKmZ3US9Sd0pWM20rLDt1JFQ1KEpIO1okdSpwQFleey9rSlJBNyJ+dlomTnZPOVk4SnNIbzIvfEAiUzY0KyJ4XSZ3YSZ5'@; put 'JGgvNnYsdCxpdyooIjhHQFtib0VEZD1FL2g1Q3YyV2tIOVtWNnRON3tnQkI7elVkUylBSDRSaVA3cSF2SjpuNzFbI0YkSF5jPWEyR0NNcmN+QyskTSxCITEsZmpbdTNfUzl5VDRCfERrdHo1Sio8Ji5IdzhgfT8uKl8oLGhSUnhSWF8jXmRTNHBMVDhgPy9WNl0wJikwc2xmW1pgc0ZSJTpYYEI2'@; put 'QS9VdFU9K150Yzl7RzFmKyZZXW9TTXY4T3RFXj90cSgwNFlHQi9AW2xQRSw9ckYiSClGWTZKbHBXLyokfkQiTjl9Wm45fHM8dWBzWltSTHRWYCFqRHFtLHlRZXdYUj5yMmM1NjFyVkJVX0xUcCgoK2FkR09WT1FRJFlmWkpuLDBhIXYlQE0haDY7R05aIzReVFFoR0shfDU+aXsyYWMxWCkkaD02'@; put 'TG5ddWgmQD8sJXIvcHR8ZVNmXThmWTB0OFdRRldhQ3RePG04IzpKd0JIdHdZPn5OQ3cuSmxXdll7cTZwO2Y+JSJaa0dOMiRreCY3PDgoaTdRPjF7TmhPNDQ5V11ubGVCeXBYZnRUYFZUUF9ZSGwlPDA0M1dbU3w2RjYje0hLTm5LWCY/Q3F1M2o1JCZUKmsyOUMqOk4pJkwhOj44KCF8NTM0TS9A'@; put 'OVIqSiNBZkdwMzY5VFYjYGVXfWBpN3hVaTY0KG17WnNvVTtCZXYlOF55S3klWFpBb3FNSFo0WTFPcmFbe3pbJTd7XysvI1oxRllqMGNVe0pEYCFdZVNEYHwvTzUkLkwuczN8Uyw5RzchJm57fDRkfUQxMHIiMjNhbXZ3QUNtfkNlQDRaa1huZVVZPl5UJDNlSCkzP31+PFhZeisqVzBbLDR8QyRV'@; put 'OCNVeTpGU2I5MWFXVkJCenc3YFd8O1FvNU1Mb2YldUxpP0xCaG83NCZebGB0eUF3NVMqbDppajlPZk9rMUJVWVhjUlN5LCxjbH14aU5vVmYvQkYvI2ZUfmQwVmtbeT11ZEJudlJtNFlFeldaSzQiV2tCbnpENUZPMCZrTUF4YnluMC5VRC80OyFyS2UxKEU2QnVJfUtJM1dgV3QhMCpXI3lQX3Uq'@; put 'OlBdfTU7d1ZGcnIvIXI4TG13PEIoKWAkNEBAZWBlO28zaF5lWVkxKHBldUp7bzY5S0I1NnZCa28kRFArT3o5dCtTc3FjTGBRKk9jd3YpWXFobTJ3XWdbbHYubTo/cGVVKStfci48d1AsST9MaX4/YXxteEJyMWM5bkR2dmlEXW4pQERxe0BnL3BxcF05WFdrbGN6XVVqUXRbcntIWCZVSVBZU0d3'@; put 'NyZ6UmM/aWY1NiMqbi9lXyk9STc0TmU+KkMrJTc2d0U1Vl9xNyolOkk3NlZCIXVXb1llPStwP2l8MzxSRypRfDMpN3RKbT44NCxbeyhVeXBiUnBPOEg5N1dJRjhvLz0kZXglREU6e043fmB1OmJEcFBvTC81dGVtdkgoXVgzTz8lRjt5K2pvKzFZbUEzWC4wMUshNUElT0hYIklrPz90UG1wYHYv'@; put 'Yk1scWpGSys6WSNnbl9gN0oiR0o7dEYzIT5DNG1heDduKzc/XitSRUApYUArajhAdW1ZPWVBaXM0KzoqRkA2Vy90Z35qYHZeV3h5cEwjcSZ2IWMwZiNRWWVtfFQmKSlOI3VzdTlNcV4hYmZuQFZWT3tKXl5EIl9hQ3haVENwJUxDVj1CQmlRdSIvamNRZDowYU9JTyV8ckoxbz1kQz51M2pedjtb'@; put 'XkwmdVhjQikobWxufllRQTVzbkYxd0ElazRJWlglRXs0TSl7dFA/MkJCdW1xUyRWdk87czR9a0ZGISxqKX0iR0BnUzF4Wjo5e0pZNkF+PF8/KCtNeTNYYztKIjNDWEtfWmQmfjZqUHx5KW9lZjVaWDAuVUV5YD0sSigjZ2hUbHo0PHJJWjg6KTx0WTlwRyw2V2RGYXRgZV5XX1UmOT1EWm42ZWAp'@; put 'bkd4UStDMyxrRnlJUTx8ZEZvekFdfWB2QnEsaShSSCFMUEhebkhvS0g1SyxvNnQjLixDfHA/WHFrfCk1cis6Vls1OGh4QCoyWVRMMCxgM1ldRDEmaV90c0ovR2ZmS1pqciIsfHQ8SDVSIV5pOigkNik8NSNFVjdTaHg9QS5FdSt4dn0sXnRQYXh7O34yLlZVdD1lMmBrRiFxaSJ5XWMjd1Y4dVNz'@; put 'bTYuN2hSKXluV3t7ZHR1fSpMWTJ1X2B6alI/cWE0Wzh8Q2VXSStuKHdUay4yWWcqLmJOQkNfeUI7fVYyKi9yKUMjWCsofUhEOUY9THw/ND07Yzd4NiVtTkAzOXtSRjFoIi4vWUZKY3FUYW0hSkk0OzooRjxVNEhdT2csSHRtVWc9OUNCWzo7TjlDRzc7L3x1Q09qMl9IOVRxfkQ8eGp3Sj85MlFU'@; put 'W05sMXFaQ3BfNTdQUz99cyNaVztfdm17Ol9SWm5zP3FodyRtMD4ofFozTUldTz0kc0FdTWhKIzBoY0NLPXVfRS5TNypSZS8zdCN4WXk2bGI0b0ciTSltUyZJUTE9Z0UxMnw8V1phTFUsejV7fE5RPz1JaDNoSVQzNVApLFosQzBwKmhfIl5CV3JSNT5YdiguVjdiXV8wLyJvUy84bks4R1pWeDsp'@; put 'eH0jYVZYKXomY2JuREdKMCh8bHV7JURaaTJSb2t5OVMibEU2cGtxMV1TPHwlMFUzVTNdSG1DL15pRmI1X104KCt6YXczeVVLSERmaC8iZ2BXV09BaihwK2MwdToqWHI8LjAzVSgsR0E+ZSpGbC5acVZQWkpRV1hMLFojbjg5Q35ZRXBmQlk9STJQJlF3QXtxS2pFTzFeJHJEMWBzbm9CSlBoOl8x'@; put 'ITVnJD4md2d4KWB2WFo+QCIyRmFQPCpgIXYwVzEhTzxzal5DTjMlcVZRfUQuNGUoZGtaVVleM1dwS1dVQFUraT1jPClUe0lDK2MlQSlXay80OTZUWXh8aVN5OFBSK0N4ZS5GPlt3QGAkaytoZCRBT1o8QnJLYDVUMyVuJnNMRCJlTElQaiJUNmYzcnlyQywoe09MX0d6X2Nze30jfVNWNmpnQmAm'@; put 'YCVje0FTPm53TkBia3U4MGdEOng3VXRHMlQ/PnYhLj9AOnwmPW50MFVkZEB8I3QsTW1YWnxGMTFZVlg1ZE9TTEFMMF5tVFozfjEsdkNuIUBMWCRoPUZHYkE2TGg0JV45emdvc0xMTmNuV2w0K3k5OjN5WlptfltJaDJfR3ZvPkBWUnNYLFRuYFNlNz5fckYvSCJ7L1tqaGFwaXo5Wz8raWx6S2J5'@; put 'e00oMj5mXTh1cTd4TSpoNGUvXUgqdk1TOnleeE0iU1RdTyxaR2UrYGIuYHFXOW5EOlQiNlJbcXY9bDBwODBCaGBmejVbPUdFWU19MTBCfEEzX340YmgmTG9ZMEw0fW4mVDY3TH1veC9xUlhUe2UoZShJYltue2FkJDY5XWpaIXBoOE86a2QrZD1nVzhIUjJEOyI/NFB2MXBJe1Z6SEEwP3hlPU9f'@; put 'dlVeXzMhalsjVlgoJS5MYzZzVT47MXhJJUtvOGN6SF9SeTluYzsxeU04WTM3NDxSTmVYK1BxIlUsK2N+RS5vfSJWflMwOHtxY340M0RiUDQxRWxVanx4YkVMal1bJEBNQi9iWUY0UG9WNllmPGUqTiFZPztIWl5OOmAjXTRNNFIqfXVJP3RAQElMNyZ1djVxeXRuaER5bTc8Tl0iLDQkJCZVR3s3'@; put 'TW18RT40IlgyfH1uUD5pe1RSOU98d08/W09JQ3RjeDM0OiF2b31DP1glOWo5TnRiO2UobjwzPmljVVg4Qn0pNGc5QiN8WWB1elclLk5OTFNvJH0oTmRNMDJtISgrNSh+cFk+d1ZJd2hJX3A1fEBMIVRdYyg9bjJbWU1ubj5VbDB9PWdCOGBXKG9kOTpZNXBqaDk/RHZBXz8mJDAvJmx5IWchPWpg'@; put 'K10+P2xgZD1ge21JJEtVaHx1e15lWyY4WjJfNFcjfTleKU12WHk3ayZlTywsJjlbQVB9eGlKKiZNKFYiX3AmMGlfO11UOXYmTDNHQ3BZNE0qZVF3RDJAZH5LQlcyNVkuWDB4bTB+eF9PM305bn1hN0I1ckMlaEMyT35EQGNUMF5lQ2E7flNfIjlAOD1lfm4hKUJoQFVRcl5lfENUWDR8QGJUO1Nm'@; put 'VU5obFd2dllsOGlxclMzaClQXmY5QD93O29yOWtlfFYkd3I8fEJPRi5hIWNVJSg4JXNmQygxPC5Ke3MuTTgrNGd1PVpOMj1IRUhKcjh3ckNGQSJnPXR3eSxdVmdrZzRANjZHWUZUZ3QwYF18R2VoOT83a1cuWyRtNC4kTEUsajRwKFZFRFFxfi4iQjtpWWdMVS43dVJ0XmxxLGYzZSVRLF5Ucmlm'@; put 'N3I8LjRXbTJ9MyhgYEAqK1BJOSgwP0p7UDN7eiMkZURCPGY5TzolfWolKiVDZT5UWjhJJiEsZ0J2fTtkeTZ1emw3WkBIWiJwYj9yMCRnPUhtfWB8ZE1iWlhrPXpzLkJ9a0pjU2YqIylEOjA4RnI0Qzxicn1kezdYWk1VeTpWQn01KzcqU1omXyNYSHxUYlhyVl1hTnNVXW8qcW90KnxjOCkjdWI9'@; put 'M2o0aCV6YjZfMHUlMEs5WmtgS2dbNTtIUSE7QkBeXUgyOX5wZ2slTy5kJlhbeCNRb14pOV1hKnZwVyhDRyRxIj8+PmwoSlBAQGlVRG9CX3RxKHBTejVie3UrJioyLHh4OkN6KltEU2FeY1deckBlWEBQIiNrN0xuOFJvb2Q0VkI0aTJrcSwha0JtN3RXREBVOjsxX1AjZ30xKjlscUtmIiowVD8o'@; put 'OUYiYiJQPV8ud15zX1hnMUJsV1s7eSU4fDxPVExqR3lkKHF4Smc3eHAhTH57M3Nye1o1cVt7RUlwXVQpVWdjZiYmd31sdStzan5Ld3hQbEszb2w6az0pYTszTiZHMl43TDp0TVBQeiQvMyR8RnBSJlA5anN9MTUzd1Q0eWJ9bkxGej4jIyVqJEloMH5QYEJfeCx6OGhHTzFeZnMweSNVQy9zVGgy'@; put 'U34uWzFIJCEkQjUmTVB4O0InKSksQ3d8fChDdz1PSmUoe3dhc21CaW5hcnk6WFUsbG9jYXRlRmlsZTp2b2lkIDB9KSksQ3cpLnRoZW4obD0+bmV3IERUKGwpKX1zdGF0aWMgdW5sb2FkKCl7Q3cmJihDdz12b2lkIDApfXZlcnNpb24oKXtyZXR1cm4gdGhpcy5fbW9kdWxlLkdyYXBodml6LnBy'@; put 'b3RvdHlwZS52ZXJzaW9uKCl9bGF5b3V0KGwsYT0ic3ZnIixkPSJkb3QiLGgpe2lmKCFsKXJldHVybiIiO2NvbnN0IGY9bmV3IHRoaXMuX21vZHVsZS5HcmFwaHZpeihoPy55SW52ZXJ0PzE6MCxoPy5ub3A/aD8ubm9wOjApO2xldCBfPSIiLFQ9IiI7dHJ5eyFmdW5jdGlvbihXLGllKXtjb25z'@; put 'dCBwZT17aW1hZ2VzOltdLGZpbGVzOltdLC4uLmllfTt2YXIgd2U7Wy4uLnBlLmZpbGVzLC4uLih3ZT1wZS5pbWFnZXMsd2UubWFwKFBKZSkpXS5mb3JFYWNoKEVlPT5XLmNyZWF0ZUZpbGUoRWUucGF0aCxFZS5kYXRhKSl9KGYsaCk7dHJ5e189Zi5sYXlvdXQobCxhLGQpfWNhdGNoKFcpe1Q9'@; put 'Vy5tZXNzYWdlfVQ9Zi5sYXN0RXJyb3IoKXx8VH1maW5hbGx5e3RoaXMuX21vZHVsZS5kZXN0cm95KGYpfWlmKCFfJiZUKXRocm93IG5ldyBFcnJvcihUKTtyZXR1cm4gX31jaXJjbyhsLGE9InN2ZyIsZCl7cmV0dXJuIHRoaXMubGF5b3V0KGwsYSwiY2lyY28iLGQpfWRvdChsLGE9InN2ZyIs'@; put 'ZCl7cmV0dXJuIHRoaXMubGF5b3V0KGwsYSwiZG90IixkKX1mZHAobCxhPSJzdmciLGQpe3JldHVybiB0aGlzLmxheW91dChsLGEsImZkcCIsZCl9c2ZkcChsLGE9InN2ZyIsZCl7cmV0dXJuIHRoaXMubGF5b3V0KGwsYSwic2ZkcCIsZCl9bmVhdG8obCxhPSJzdmciLGQpe3JldHVybiB0aGlz'@; put 'LmxheW91dChsLGEsIm5lYXRvIixkKX1vc2FnZShsLGE9InN2ZyIsZCl7cmV0dXJuIHRoaXMubGF5b3V0KGwsYSwib3NhZ2UiLGQpfXBhdGNod29yayhsLGE9InN2ZyIsZCl7cmV0dXJuIHRoaXMubGF5b3V0KGwsYSwicGF0Y2h3b3JrIixkKX10d29waShsLGE9InN2ZyIsZCl7cmV0dXJuIHRo'@; put 'aXMubGF5b3V0KGwsYSwidHdvcGkiLGQpfX1mdW5jdGlvbiBJVChjKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxjKX1mdW5jdGlvbiBjNChjKXtyZXR1cm4gTWF0aC5yb3VuZCgxMDAqYykvMTAwfWZ1bmN0aW9uIG5sZShjLGwpe2lmKCJwb2x5Z29uIj09Yy50YWcpeyhhPUlUKGMpKS50YWc9'@; put 'InBhdGgiO3ZhciBoPUlUKGQ9Yy5hdHRyaWJ1dGVzKSxmPWQucG9pbnRzO2lmKCJwb2x5Z29uIj09bC50YWcpeyhfPWMuYmJveCkuY3g9Xy54K18ud2lkdGgvMixfLmN5PV8ueStfLmhlaWdodC8yO2Zvcih2YXIgVz1kLnBvaW50cy5zcGxpdCgiICIpLGllPVcubWFwKGZ1bmN0aW9uKE9uKXt2'@; put 'YXIgRnI9T24uc3BsaXQoIiwiKTtyZXR1cm5bRnJbMF0tXy5jeCxGclsxXS1fLmN5XX0pLHBlPWllW2llLmxlbmd0aC0xXVswXSx3ZT1pZVtpZS5sZW5ndGgtMV1bMV0sRWU9MDtFZTxpZS5sZW5ndGg7RWUrKyxwZT1aZSx3ZT1pdCl7dmFyIGV0PShaZT1pZVtFZV1bMF0pLXBlO2lmKDAhPSh5'@; put 'dD0oaXQ9aWVbRWVdWzFdKS13ZSkmJjA8PShFdD1wZS13ZSpldC95dCkmJkV0PDEvMCYmKHBlPD1FdCYmRXQ8PVplfHxaZTw9RXQmJkV0PD1wZSkpYnJlYWt9dmFyIFN0PVtbXy5jeCtFdCxfLmN5KzBdLmpvaW4oIiwiKV07Zj0oU3Q9KFN0PVN0LmNvbmNhdChXLnNsaWNlKEVlKSkpLmNvbmNh'@; put 'dChXLnNsaWNlKDAsRWUpKSkuam9pbigiICIpfWguZD0iTSIrZisieiIsZGVsZXRlIGgucG9pbnRzLGEuYXR0cmlidXRlcz1ofWVsc2V7dmFyIGE7KGE9SVQoYykpLnRhZz0icGF0aCIsaD1JVChkPWMuYXR0cmlidXRlcyk7dmFyIGQsWmUsaXQsRXQsSnQ9ZC5jeCxubj1kLmN5LHZuPWQucngs'@; put 'Tm49ZC5yeTtpZigicG9seWdvbiI9PWwudGFnKXt2YXIgXzsoXz1sLmJib3gpLmN4PV8ueCtfLndpZHRoLzIsXy5jeT1fLnkrXy5oZWlnaHQvMjt2YXIgY3I9bC5hdHRyaWJ1dGVzLnBvaW50cy5zcGxpdCgiICIpWzBdLnNwbGl0KCIsIikseXQ9KGV0PWNyWzBdLV8uY3gsY3JbMV0tXy5jeSks'@; put 'SWk9TWF0aC5zcXJ0KE1hdGgucG93KGV0LDIpK01hdGgucG93KHl0LDIpKSxmcj1ldC9JaSxpaT0teXQvSWl9ZWxzZSBmcj0xLGlpPTA7aC5kPSJNICIrSnQrIiAiK25uKyIgbSAiKyhaZT12bipmcikrIiwiKyhpdD0tTm4qaWkpKyIgYSAiK3ZuKyIsIitObisiIDAgMSwwICIrKGV0PShFdD12'@; put 'biotZnIpLVplKSsiLCIrKHl0PS1ObiotaWktaXQpKyIgYSAiK3ZuKyIsIitObisiIDAgMSwwICIrLWV0KyIsIisteXQrInoiLGRlbGV0ZSBoLmN4LGRlbGV0ZSBoLmN5LGRlbGV0ZSBoLnJ4LGRlbGV0ZSBoLnJ5LGEuYXR0cmlidXRlcz1ofXJldHVybiBhfWZ1bmN0aW9uIE5KZSgpe3RyeXtE'@; put 'VC5sb2FkKCkudGhlbihhPT57YS5sYXlvdXQoIiIsInN2ZyIsImRvdCIpLHRoaXMubGF5b3V0U3luYz1hLmxheW91dC5iaW5kKGEpLG51bGw9PXRoaXMuX3dvcmtlciYmdGhpcy5fZGlzcGF0Y2guY2FsbCgiaW5pdEVuZCIsdGhpcyksdGhpcy5fYWZ0ZXJJbml0JiZ0aGlzLl9hZnRlckluaXQo'@; put 'KX0pfWNhdGNoe31pZihudWxsIT10aGlzLl93b3JrZXIpe3ZhciBjPXRoaXMuX3ZpelVSTCxsPXRoaXM7dGhpcy5fd29ya2VyUG9ydC5vbm1lc3NhZ2U9ZnVuY3Rpb24oYSl7bC5fd29ya2VyQ2FsbGJhY2tzLnNoaWZ0KCkuY2FsbChsLGEpfSxjLm1hdGNoKC9eaHR0cHM/OlwvXC98XlwvXC8v'@; put 'aSl8fChjPW5ldyB3aW5kb3cuVVJMKGMsZG9jdW1lbnQubG9jYXRpb24uaHJlZikuaHJlZiksSlUuY2FsbCh0aGlzLHt0eXBlOiJsYXlvdXQiLGRvdDoiIixlbmdpbmU6ImRvdCIsdml6VVJMOmN9LGZ1bmN0aW9uKGEpe30pLEpVLmNhbGwodGhpcyx7dHlwZToidmVyc2lvbiJ9LGZ1bmN0aW9u'@; put 'KGEpeyJ2ZXJzaW9uIj09PWEuZGF0YS50eXBlJiYobC5fZ3JhcGh2aXpWZXJzaW9uPWEuZGF0YS52ZXJzaW9uLGwuX2Rpc3BhdGNoLmNhbGwoImluaXRFbmQiLHRoaXMpKX0pfX1mdW5jdGlvbiBKVShjLGwpe3RoaXMuX3dvcmtlckNhbGxiYWNrcy5wdXNoKGwpLHRoaXMuX3dvcmtlclBvcnQu'@; put 'cG9zdE1lc3NhZ2UoYyl9ZnVuY3Rpb24gakplKGMsbCl7dmFyIGE9dGhpcy5fb3B0aW9ucy5rZXlNb2RlLGQ9dGhpcy5fb3B0aW9ucy50d2VlblBhdGhzLGg9dGhpcy5fb3B0aW9ucy50d2VlblNoYXBlcztpZigic3RyaW5nIj09dHlwZW9mIHRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24m'@; put 'JnRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24uaW5jbHVkZXMoIiUiKSl2YXIgZj0rdGhpcy5fb3B0aW9ucy50d2VlblByZWNpc2lvbi5zcGxpdCgiJSIpWzBdLzEwMCxfPXRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24uaW5jbHVkZXMoIiUiKTtlbHNlIGY9dGhpcy5fb3B0aW9ucy50'@; put 'd2VlblByZWNpc2lvbixfPSExO3ZhciBUPXRoaXMuX29wdGlvbnMuZ3Jvd0VudGVyaW5nRWRnZXMsVz17fSxpZT10aGlzLl9kaWN0aW9uYXJ5fHx7fSxwZT17fSx3ZT10aGlzLl9ub2RlRGljdGlvbmFyeXx8e307ZnVuY3Rpb24gRXQoZnIsaWk9MCxqcil7KGZ1bmN0aW9uIEVlKGZyLGlpKXt2'@; put 'YXIganI9ZnIudGFnO2lmKCJpbmRleCI9PWEpZnIua2V5PWlpO2Vsc2UgaWYoIiMiIT1qclswXSlpZigiaWQiPT1hKWZyLmtleT1mci5hdHRyaWJ1dGVzLmlkO2Vsc2UgaWYoInRpdGxlIj09YSl7dmFyIE9uPWZyLmNoaWxkcmVuLmZpbmQoZnVuY3Rpb24oRnIpe3JldHVybiJ0aXRsZSI9PUZy'@; put 'LnRhZ30pO09uJiYoZnIua2V5PU9uLmNoaWxkcmVuLmxlbmd0aD4wP09uLmNoaWxkcmVuWzBdLnRleHQ6IiIpfW51bGw9PWZyLmtleSYmKGgmJigiZWxsaXBzZSI9PWpyfHwicG9seWdvbiI9PWpyKSYmKGpyPSJwYXRoIiksZnIua2V5PWpyKyItIitpaSl9KShmcixpaSksZnVuY3Rpb24gWmUo'@; put 'ZnIsaWkpe2ZyLmlkPShpaT9paS5pZCsiLiI6IiIpK2ZyLmtleX0oZnIsanIpO3ZhciBGcj1pZVtmci5pZF07KGZ1bmN0aW9uIGl0KGZyKXtXW2ZyLmlkXT1mcn0pKGZyKSxmdW5jdGlvbiBldChmcixpaSl7aCYmZnIuaWQgaW4gaWUmJigicG9seWdvbiI9PWlpLnRhZ3x8ImVsbGlwc2UiPT1p'@; put 'aS50YWd8fCJwYXRoIj09aWkudGFnKSYmKGlpLnRhZyE9ZnIudGFnfHwicG9seWdvbiI9PWZyLnRhZykmJigicGF0aCIhPWlpLnRhZyYmKGZyLmFsdGVybmF0aXZlT2xkPW5sZShpaSxmcikpLCJwYXRoIiE9ZnIudGFnJiYoZnIuYWx0ZXJuYXRpdmVOZXc9bmxlKGZyLGlpKSkpfShmcixGciks'@; put 'ZnVuY3Rpb24geXQoZnIsaWkpe2lmKGQmJmlpJiYoInBhdGgiPT1paS50YWd8fGZyLmFsdGVybmF0aXZlT2xkJiYicGF0aCI9PWZyLmFsdGVybmF0aXZlT2xkLnRhZykpe3ZhciBqcj0oZnIuYWx0ZXJuYXRpdmVOZXd8fGZyKS5hdHRyaWJ1dGVzLmQ7aWYoZnIuYWx0ZXJuYXRpdmVPbGQpdmFy'@; put 'IE9uPVpVKGZyLmFsdGVybmF0aXZlT2xkKTtlbHNlIE9uPVpVKGlpKTsoZnIuYWx0ZXJuYXRpdmVPbGR8fChmci5hbHRlcm5hdGl2ZU9sZD17fSkpLnBvaW50cz1mdW5jdGlvbiBwSmUoYyxsLGEsZCl7Y29uc3QgaD1jLGY9aC5jbG9uZU5vZGUoKSxfPWguZ2V0VG90YWxMZW5ndGgoKSxUPShm'@; put 'LnNldEF0dHJpYnV0ZSgiZCIsbCksZikuZ2V0VG90YWxMZW5ndGgoKSxXPVswXTtsZXQgaWU9MDtjb25zdCBwZT1kP2E6YS9NYXRoLm1heChfLFQpO2Zvcig7KGllKz1wZSk8MTspVy5wdXNoKGllKTtyZXR1cm4gVy5wdXNoKDEpLFcubWFwKGZ1bmN0aW9uKEVlKXtjb25zdCBaZT1oLmdldFBv'@; put 'aW50QXRMZW5ndGgoRWUqXyksaXQ9Zi5nZXRQb2ludEF0TGVuZ3RoKEVlKlQpO3JldHVybltbWmUueCxaZS55XSxbaXQueCxpdC55XV19KX0oT24sanIsZixfKX19KGZyLEZyKTt2YXIgUW49e307ZnIuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihNcil7dmFyIF9yPU1yLnRhZzsoImVsbGlw'@; put 'c2UiPT1fcnx8InBvbHlnb24iPT1fcikmJihfcj0icGF0aCIpLG51bGw9PVFuW19yXSYmKFFuW19yXT0wKSxFdChNcixRbltfcl0rKyxmcil9KX1mdW5jdGlvbiBubihmcil7KGZ1bmN0aW9uIFN0KGZyKXtpZihUJiZmci5wYXJlbnQmJiJub2RlIj09ZnIucGFyZW50LmF0dHJpYnV0ZXMuY2xh'@; put 'c3MmJiJ0aXRsZSI9PWZyLnRhZyl7aWYoZnIuY2hpbGRyZW4ubGVuZ3RoPjApdmFyIE9uPWZyLmNoaWxkcmVuWzBdLnRleHQ7ZWxzZSBPbj0iIjtwZVtPbl09ZnIucGFyZW50fX0pKGZyKSxmdW5jdGlvbiBKdChmcil7dmFyIGpyPWZyLnRhZztpZihUJiYhaWVbZnIuaWRdJiZmci5wYXJlbnQm'@; put 'JkphZShmcikmJigicGF0aCI9PWpyfHwicG9seWdvbiI9PWpyKSl7aWYoInBvbHlnb24iPT1qcil7dmFyIEZyPWZyLnBhcmVudC5jaGlsZHJlbi5maW5kKGZ1bmN0aW9uKFlyKXtyZXR1cm4icGF0aCI9PVlyLnRhZ30pO0ZyJiYoZnIudG90YWxMZW5ndGg9RnIudG90YWxMZW5ndGgpfXZhciBR'@; put 'bj1mdW5jdGlvbiB2SmUoYyl7cmV0dXJuIGZ1bmN0aW9uIG1KZShjKXtyZXR1cm4iZWRnZSI9PWMucGFyZW50LmF0dHJpYnV0ZXMuY2xhc3M/Yy5wYXJlbnQ6Yy5wYXJlbnQucGFyZW50LnBhcmVudH0oYykuY2hpbGRyZW4uZmluZChmdW5jdGlvbihsKXtyZXR1cm4idGl0bGUiPT1sLnRhZ30p'@; put 'fShmciksTXI9UW4uY2hpbGRyZW5bMF0sX3I9TXIudGV4dC5zcGxpdCgiLT4iKTsyIT1fci5sZW5ndGgmJihfcj1Nci50ZXh0LnNwbGl0KCItLSIpKTt2YXIgdnQ9X3JbMF0sT3Q9cGVbdnRdLGNuPXdlW3Z0XTtpZihjbil7aWYoKFBuPU90LmNoaWxkcmVuLmZpbmRJbmRleChmdW5jdGlvbihZ'@; put 'cixOcil7cmV0dXJuImciPT1Zci50YWd9KSk+PTApe3ZhciBFbj1PdC5jaGlsZHJlbltQbl0uY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKFlyLE5yKXtyZXR1cm4iYSI9PVlyLnRhZ30pO090PU90LmNoaWxkcmVuW1BuXS5jaGlsZHJlbltFbl19KFBuPWNuLmNoaWxkcmVuLmZpbmRJbmRl'@; put 'eChmdW5jdGlvbihZcixOcil7cmV0dXJuImciPT1Zci50YWd9KSk+PTAmJihFbj1jbi5jaGlsZHJlbltQbl0uY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKE5yLFJpKXtyZXR1cm4iYSI9PU5yLnRhZ30pLGNuPWNuLmNoaWxkcmVuW1BuXS5jaGlsZHJlbltFbl0pO2Zvcih2YXIgSm49T3Qu'@; put 'Y2hpbGRyZW4sUG49MDtQbjxKbi5sZW5ndGg7UG4rKylpZigicG9seWdvbiI9PUpuW1BuXS50YWd8fCJlbGxpcHNlIj09Sm5bUG5dLnRhZ3x8InBhdGgiPT1KbltQbl0udGFnfHwidGV4dCI9PUpuW1BuXS50YWcpe3ZhciBQcj1KbltQbl07YnJlYWt9dmFyIE9yPWNuLmNoaWxkcmVuO2ZvcihQ'@; put 'bj0wO1BuPE9yLmxlbmd0aDtQbisrKWlmKCJwb2x5Z29uIj09T3JbUG5dLnRhZ3x8ImVsbGlwc2UiPT1PcltQbl0udGFnfHwicGF0aCI9PU9yW1BuXS50YWd8fCJ0ZXh0Ij09T3JbUG5dLnRhZyl7dmFyICRyPU9yW1BuXTticmVha31mci5vZmZzZXQ9JHImJlByP3t4OiRyLmNlbnRlci54LVBy'@; put 'LmNlbnRlci54LHk6JHIuY2VudGVyLnktUHIuY2VudGVyLnl9Ont4OjAseTowfX19fShmciksZnIuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihpaSl7bm4oaWkpfSl9dGhpcy5fZGlzcGF0Y2guY2FsbCgibGF5b3V0RW5kIix0aGlzKTt2YXIgdm49a3MoZG9jdW1lbnQuY3JlYXRlRG9jdW1l'@; put 'bnRGcmFnbWVudCgpKS5hcHBlbmQoImRpdiIpLGNyPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGMsImltYWdlL3N2Zyt4bWwiKTt2bi5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gY3IuZG9jdW1lbnRFbGVtZW50fSk7dmFyIEVpPVhnKHZuLnNlbGVjdCgic3ZnIikp'@; put 'O3RoaXMuX2Rpc3BhdGNoLmNhbGwoImRhdGFFeHRyYWN0RW5kIix0aGlzKSxFdChFaSksdGhpcy5fZGlzcGF0Y2guY2FsbCgiZGF0YVByb2Nlc3NQYXNzMUVuZCIsdGhpcyksbm4oRWkpLHRoaXMuX2Rpc3BhdGNoLmNhbGwoImRhdGFQcm9jZXNzUGFzczJFbmQiLHRoaXMpLHRoaXMuX2RhdGE9'@; put 'RWksdGhpcy5fZGljdGlvbmFyeT1XLHRoaXMuX25vZGVEaWN0aW9uYXJ5PXBlLHRoaXMuX2V4dHJhY3REYXRhPWZ1bmN0aW9uKGZyLGlpLGpyKXt2YXIgT249WGcoZnIpO3JldHVybiBFdChPbixpaSxqciksbm4oT24pLE9ufSx0aGlzLl9idXN5PSExLHRoaXMuX2Rpc3BhdGNoLmNhbGwoImRh'@; put 'dGFQcm9jZXNzRW5kIix0aGlzKSxsJiZsLmNhbGwodGhpcyksdGhpcy5fcXVldWUubGVuZ3RoPjAmJnRoaXMuX3F1ZXVlLnNoaWZ0KCkuY2FsbCh0aGlzKX1mdW5jdGlvbiBMVChjLGwpe2lmKChhPShjPWw/Yy50b0V4cG9uZW50aWFsKGwtMSk6Yy50b0V4cG9uZW50aWFsKCkpLmluZGV4T2Yo'@; put 'ImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgYSxkPWMuc2xpY2UoMCxhKTtyZXR1cm5bZC5sZW5ndGg+MT9kWzBdK2Quc2xpY2UoMik6ZCwrYy5zbGljZShhKzEpXX12YXIgcmxlLGhRZT0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4p'@; put 'PyhbYS16JV0pPyQvaTtmdW5jdGlvbiBRVShjKXtpZighKGw9aFFlLmV4ZWMoYykpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrYyk7dmFyIGw7cmV0dXJuIG5ldyBlWih7ZmlsbDpsWzFdLGFsaWduOmxbMl0sc2lnbjpsWzNdLHN5bWJvbDpsWzRdLHplcm86bFs1XSx3aWR0'@; put 'aDpsWzZdLGNvbW1hOmxbN10scHJlY2lzaW9uOmxbOF0mJmxbOF0uc2xpY2UoMSksdHJpbTpsWzldLHR5cGU6bFsxMF19KX1mdW5jdGlvbiBlWihjKXt0aGlzLmZpbGw9dm9pZCAwPT09Yy5maWxsPyIgIjpjLmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT1jLmFsaWduPyI+IjpjLmFsaWdu'@; put 'KyIiLHRoaXMuc2lnbj12b2lkIDA9PT1jLnNpZ24/Ii0iOmMuc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT1jLnN5bWJvbD8iIjpjLnN5bWJvbCsiIix0aGlzLnplcm89ISFjLnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT1jLndpZHRoP3ZvaWQgMDorYy53aWR0aCx0aGlzLmNvbW1hPSEh'@; put 'Yy5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT1jLnByZWNpc2lvbj92b2lkIDA6K2MucHJlY2lzaW9uLHRoaXMudHJpbT0hIWMudHJpbSx0aGlzLnR5cGU9dm9pZCAwPT09Yy50eXBlPyIiOmMudHlwZSsiIn1mdW5jdGlvbiBpbGUoYyxsKXt2YXIgYT1MVChjLGwpO2lmKCFhKXJldHVy'@; put 'biBjKyIiO3ZhciBkPWFbMF0saD1hWzFdO3JldHVybiBoPDA/IjAuIituZXcgQXJyYXkoLWgpLmpvaW4oIjAiKStkOmQubGVuZ3RoPmgrMT9kLnNsaWNlKDAsaCsxKSsiLiIrZC5zbGljZShoKzEpOmQrbmV3IEFycmF5KGgtZC5sZW5ndGgrMikuam9pbigiMCIpfVFVLnByb3RvdHlwZT1lWi5w'@; put 'cm90b3R5cGUsZVoucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvPyIwIjoiIikrKHZvaWQgMD09PXRoaXMud2lkdGg/IiI6TWF0aC5tYXgoMSwwfHRoaXMud2lkdGgpKSsodGhp'@; put 'cy5jb21tYT8iLCI6IiIpKyh2b2lkIDA9PT10aGlzLnByZWNpc2lvbj8iIjoiLiIrTWF0aC5tYXgoMCwwfHRoaXMucHJlY2lzaW9uKSkrKHRoaXMudHJpbT8ifiI6IiIpK3RoaXMudHlwZX07Y29uc3Qgb2xlPXsiJSI6KGMsbCk9PigxMDAqYykudG9GaXhlZChsKSxiOmM9Pk1hdGgucm91bmQo'@; put 'YykudG9TdHJpbmcoMiksYzpjPT5jKyIiLGQ6ZnVuY3Rpb24gbFFlKGMpe3JldHVybiBNYXRoLmFicyhjPU1hdGgucm91bmQoYykpPj0xZTIxP2MudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTpjLnRvU3RyaW5nKDEwKX0sZTooYyxsKT0+Yy50b0V4cG9uZW50aWFsKGwp'@; put 'LGY6KGMsbCk9PmMudG9GaXhlZChsKSxnOihjLGwpPT5jLnRvUHJlY2lzaW9uKGwpLG86Yz0+TWF0aC5yb3VuZChjKS50b1N0cmluZyg4KSxwOihjLGwpPT5pbGUoMTAwKmMsbCkscjppbGUsczpmdW5jdGlvbiBwUWUoYyxsKXt2YXIgYT1MVChjLGwpO2lmKCFhKXJldHVybiBjKyIiO3ZhciBk'@; put 'PWFbMF0saD1hWzFdLGY9aC0ocmxlPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKGgvMykpKSkrMSxfPWQubGVuZ3RoO3JldHVybiBmPT09Xz9kOmY+Xz9kK25ldyBBcnJheShmLV8rMSkuam9pbigiMCIpOmY+MD9kLnNsaWNlKDAsZikrIi4iK2Quc2xpY2UoZik6IjAuIitu'@; put 'ZXcgQXJyYXkoMS1mKS5qb2luKCIwIikrTFQoYyxNYXRoLm1heCgwLGwrZi0xKSlbMF19LFg6Yz0+TWF0aC5yb3VuZChjKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSx4OmM9Pk1hdGgucm91bmQoYykudG9TdHJpbmcoMTYpfTtmdW5jdGlvbiBzbGUoYyl7cmV0dXJuIGN9dmFyIFJULHdk'@; put 'LGFsZT1BcnJheS5wcm90b3R5cGUubWFwLGxsZT1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIlx4YjUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTshZnVuY3Rpb24gdlFlKGMpe1JUPWZ1bmN0aW9uIGdRZShjKXt2YXIgbD12b2lkIDA9PT1jLmdyb3VwaW5nfHx2'@; put 'b2lkIDA9PT1jLnRob3VzYW5kcz9zbGU6ZnVuY3Rpb24gdVFlKGMsbCl7cmV0dXJuIGZ1bmN0aW9uKGEsZCl7Zm9yKHZhciBoPWEubGVuZ3RoLGY9W10sXz0wLFQ9Y1swXSxXPTA7aD4wJiZUPjAmJihXK1QrMT5kJiYoVD1NYXRoLm1heCgxLGQtVykpLGYucHVzaChhLnN1YnN0cmluZyhoLT1U'@; put 'LGgrVCkpLCEoKFcrPVQrMSk+ZCkpOylUPWNbXz0oXysxKSVjLmxlbmd0aF07cmV0dXJuIGYucmV2ZXJzZSgpLmpvaW4obCl9fShhbGUuY2FsbChjLmdyb3VwaW5nLE51bWJlciksYy50aG91c2FuZHMrIiIpLGE9dm9pZCAwPT09Yy5jdXJyZW5jeT8iIjpjLmN1cnJlbmN5WzBdKyIiLGQ9dm9p'@; put 'ZCAwPT09Yy5jdXJyZW5jeT8iIjpjLmN1cnJlbmN5WzFdKyIiLGg9dm9pZCAwPT09Yy5kZWNpbWFsPyIuIjpjLmRlY2ltYWwrIiIsZj12b2lkIDA9PT1jLm51bWVyYWxzP3NsZTpmdW5jdGlvbiBkUWUoYyl7cmV0dXJuIGZ1bmN0aW9uKGwpe3JldHVybiBsLnJlcGxhY2UoL1swLTldL2csZnVu'@; put 'Y3Rpb24oYSl7cmV0dXJuIGNbK2FdfSl9fShhbGUuY2FsbChjLm51bWVyYWxzLFN0cmluZykpLF89dm9pZCAwPT09Yy5wZXJjZW50PyIlIjpjLnBlcmNlbnQrIiIsVD12b2lkIDA9PT1jLm1pbnVzPyJcdTIyMTIiOmMubWludXMrIiIsVz12b2lkIDA9PT1jLm5hbj8iTmFOIjpjLm5hbisiIjtm'@; put 'dW5jdGlvbiBpZSh3ZSl7dmFyIEVlPSh3ZT1RVSh3ZSkpLmZpbGwsWmU9d2UuYWxpZ24saXQ9d2Uuc2lnbixldD13ZS5zeW1ib2wseXQ9d2UuemVybyxFdD13ZS53aWR0aCxTdD13ZS5jb21tYSxKdD13ZS5wcmVjaXNpb24sbm49d2UudHJpbSx2bj13ZS50eXBlOyJuIj09PXZuPyhTdD0hMCx2'@; put 'bj0iZyIpOm9sZVt2bl18fCh2b2lkIDA9PT1KdCYmKEp0PTEyKSxubj0hMCx2bj0iZyIpLCh5dHx8IjAiPT09RWUmJiI9Ij09PVplKSYmKHl0PSEwLEVlPSIwIixaZT0iPSIpO3ZhciBObj0iJCI9PT1ldD9hOiIjIj09PWV0JiYvW2JveFhdLy50ZXN0KHZuKT8iMCIrdm4udG9Mb3dlckNhc2Uo'@; put 'KToiIixjcj0iJCI9PT1ldD9kOi9bJXBdLy50ZXN0KHZuKT9fOiIiLElyPW9sZVt2bl0sRWk9L1tkZWZncHJzJV0vLnRlc3Qodm4pO2Z1bmN0aW9uIElpKGZyKXt2YXIgT24sRnIsUW4saWk9Tm4sanI9Y3I7aWYoImMiPT09dm4panI9SXIoZnIpK2pyLGZyPSIiO2Vsc2V7dmFyIE1yPShmcj0r'@; put 'ZnIpPDB8fDEvZnI8MDtpZihmcj1pc05hTihmcik/VzpJcihNYXRoLmFicyhmciksSnQpLG5uJiYoZnI9ZnVuY3Rpb24gZlFlKGMpe2U6Zm9yKHZhciBoLGw9Yy5sZW5ndGgsYT0xLGQ9LTE7YTxsOysrYSlzd2l0Y2goY1thXSl7Y2FzZSIuIjpkPWg9YTticmVhaztjYXNlIjAiOjA9PT1kJiYo'@; put 'ZD1hKSxoPWE7YnJlYWs7ZGVmYXVsdDppZighK2NbYV0pYnJlYWsgZTtkPjAmJihkPTApfXJldHVybiBkPjA/Yy5zbGljZSgwLGQpK2Muc2xpY2UoaCsxKTpjfShmcikpLE1yJiYwPT0rZnImJiIrIiE9PWl0JiYoTXI9ITEpLGlpPShNcj8iKCI9PT1pdD9pdDpUOiItIj09PWl0fHwiKCI9PT1p'@; put 'dD8iIjppdCkraWksanI9KCJzIj09PXZuP2xsZVs4K3JsZS8zXToiIikranIrKE1yJiYiKCI9PT1pdD8iKSI6IiIpLEVpKWZvcihPbj0tMSxGcj1mci5sZW5ndGg7KytPbjxGcjspaWYoNDg+KFFuPWZyLmNoYXJDb2RlQXQoT24pKXx8UW4+NTcpe2pyPSg0Nj09PVFuP2grZnIuc2xpY2UoT24r'@; put 'MSk6ZnIuc2xpY2UoT24pKStqcixmcj1mci5zbGljZSgwLE9uKTticmVha319U3QmJiF5dCYmKGZyPWwoZnIsMS8wKSk7dmFyIF9yPWlpLmxlbmd0aCtmci5sZW5ndGgranIubGVuZ3RoLHZ0PV9yPEV0P25ldyBBcnJheShFdC1fcisxKS5qb2luKEVlKToiIjtzd2l0Y2goU3QmJnl0JiYoZnI9'@; put 'bCh2dCtmcix2dC5sZW5ndGg/RXQtanIubGVuZ3RoOjEvMCksdnQ9IiIpLFplKXtjYXNlIjwiOmZyPWlpK2ZyK2pyK3Z0O2JyZWFrO2Nhc2UiPSI6ZnI9aWkrdnQrZnIranI7YnJlYWs7Y2FzZSJeIjpmcj12dC5zbGljZSgwLF9yPXZ0Lmxlbmd0aD4+MSkraWkrZnIranIrdnQuc2xpY2UoX3Ip'@; put 'O2JyZWFrO2RlZmF1bHQ6ZnI9dnQraWkrZnIranJ9cmV0dXJuIGYoZnIpfXJldHVybiBKdD12b2lkIDA9PT1KdD82Oi9bZ3Byc10vLnRlc3Qodm4pP01hdGgubWF4KDEsTWF0aC5taW4oMjEsSnQpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLEp0KSksSWkudG9TdHJpbmc9ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gd2UrIiJ9LElpfXJldHVybntmb3JtYXQ6aWUsZm9ybWF0UHJlZml4OmZ1bmN0aW9uIHBlKHdlLEVlKXt2YXIgWmU9aWUoKCh3ZT1RVSh3ZSkpLnR5cGU9ImYiLHdlKSksaXQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoZnVuY3Rpb24gY1FlKGMpe3JldHVybihj'@; put 'PUxUKE1hdGguYWJzKGMpKSk/Y1sxXTpOYU59KEVlKS8zKSkpLGV0PU1hdGgucG93KDEwLC1pdCkseXQ9bGxlWzgraXQvM107cmV0dXJuIGZ1bmN0aW9uKEV0KXtyZXR1cm4gWmUoZXQqRXQpK3l0fX19fShjKSx3ZD1SVC5mb3JtYXR9KHt0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJy'@; put 'ZW5jeTpbIiQiLCIiXX0pO2NvbnN0IHRaPU1hdGguUEksblo9Mip0WixRZz0xZS02LHlRZT1uWi1RZztmdW5jdGlvbiBjbGUoYyl7dGhpcy5fKz1jWzBdO2ZvcihsZXQgbD0xLGE9Yy5sZW5ndGg7bDxhOysrbCl0aGlzLl8rPWFyZ3VtZW50c1tsXStjW2xdfWNsYXNzIHJae2NvbnN0cnVjdG9y'@; put 'KGwpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPSIiLHRoaXMuX2FwcGVuZD1udWxsPT1sP2NsZTpmdW5jdGlvbiB3UWUoYyl7bGV0IGw9TWF0aC5mbG9vcihjKTtpZighKGw+PTApKXRocm93IG5ldyBFcnJvcihgaW52YWxpZCBkaWdpdHM6ICR7Y31g'@; put 'KTtpZihsPjE1KXJldHVybiBjbGU7Y29uc3QgYT0xMCoqbDtyZXR1cm4gZnVuY3Rpb24oZCl7dGhpcy5fKz1kWzBdO2ZvcihsZXQgaD0xLGY9ZC5sZW5ndGg7aDxmOysraCl0aGlzLl8rPU1hdGgucm91bmQoYXJndW1lbnRzW2hdKmEpL2ErZFtoXX19KGwpfW1vdmVUbyhsLGEpe3RoaXMuX2Fw'@; put 'cGVuZGBNJHt0aGlzLl94MD10aGlzLl94MT0rbH0sJHt0aGlzLl95MD10aGlzLl95MT0rYX1gfWNsb3NlUGF0aCgpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuX2FwcGVuZGBaYCl9bGluZVRvKGwsYSl7dGhpcy5fYXBwZW5kYEwk'@; put 'e3RoaXMuX3gxPStsfSwke3RoaXMuX3kxPSthfWB9cXVhZHJhdGljQ3VydmVUbyhsLGEsZCxoKXt0aGlzLl9hcHBlbmRgUSR7K2x9LCR7K2F9LCR7dGhpcy5feDE9K2R9LCR7dGhpcy5feTE9K2h9YH1iZXppZXJDdXJ2ZVRvKGwsYSxkLGgsZixfKXt0aGlzLl9hcHBlbmRgQyR7K2x9LCR7K2F9'@; put 'LCR7K2R9LCR7K2h9LCR7dGhpcy5feDE9K2Z9LCR7dGhpcy5feTE9K199YH1hcmNUbyhsLGEsZCxoLGYpe2lmKGw9K2wsYT0rYSxkPStkLGg9K2gsKGY9K2YpPDApdGhyb3cgbmV3IEVycm9yKGBuZWdhdGl2ZSByYWRpdXM6ICR7Zn1gKTtsZXQgXz10aGlzLl94MSxUPXRoaXMuX3kxLFc9ZC1s'@; put 'LGllPWgtYSxwZT1fLWwsd2U9VC1hLEVlPXBlKnBlK3dlKndlO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl9hcHBlbmRgTSR7dGhpcy5feDE9bH0sJHt0aGlzLl95MT1hfWA7ZWxzZSBpZihFZT5RZylpZihNYXRoLmFicyh3ZSpXLWllKnBlKT5RZyYmZil7bGV0IFplPWQtXyxpdD1oLVQsZXQ9'@; put 'VypXK2llKmllLHl0PVplKlplK2l0Kml0LEV0PU1hdGguc3FydChldCksU3Q9TWF0aC5zcXJ0KEVlKSxKdD1mKk1hdGgudGFuKCh0Wi1NYXRoLmFjb3MoKGV0K0VlLXl0KS8oMipFdCpTdCkpKS8yKSxubj1KdC9TdCx2bj1KdC9FdDtNYXRoLmFicyhubi0xKT5RZyYmdGhpcy5fYXBwZW5kYEwk'@; put 'e2wrbm4qcGV9LCR7YStubip3ZX1gLHRoaXMuX2FwcGVuZGBBJHtmfSwke2Z9LDAsMCwkeysod2UqWmU+cGUqaXQpfSwke3RoaXMuX3gxPWwrdm4qV30sJHt0aGlzLl95MT1hK3ZuKmllfWB9ZWxzZSB0aGlzLl9hcHBlbmRgTCR7dGhpcy5feDE9bH0sJHt0aGlzLl95MT1hfWB9YXJjKGwsYSxk'@; put 'LGgsZixfKXtpZihsPStsLGE9K2EsXz0hIV8sKGQ9K2QpPDApdGhyb3cgbmV3IEVycm9yKGBuZWdhdGl2ZSByYWRpdXM6ICR7ZH1gKTtsZXQgVD1kKk1hdGguY29zKGgpLFc9ZCpNYXRoLnNpbihoKSxpZT1sK1QscGU9YStXLHdlPTFeXyxFZT1fP2gtZjpmLWg7bnVsbD09PXRoaXMuX3gxP3Ro'@; put 'aXMuX2FwcGVuZGBNJHtpZX0sJHtwZX1gOihNYXRoLmFicyh0aGlzLl94MS1pZSk+UWd8fE1hdGguYWJzKHRoaXMuX3kxLXBlKT5RZykmJnRoaXMuX2FwcGVuZGBMJHtpZX0sJHtwZX1gLGQmJihFZTwwJiYoRWU9RWUlblorblopLEVlPnlRZT90aGlzLl9hcHBlbmRgQSR7ZH0sJHtkfSwwLDEs'@; put 'JHt3ZX0sJHtsLVR9LCR7YS1XfUEke2R9LCR7ZH0sMCwxLCR7d2V9LCR7dGhpcy5feDE9aWV9LCR7dGhpcy5feTE9cGV9YDpFZT5RZyYmdGhpcy5fYXBwZW5kYEEke2R9LCR7ZH0sMCwkeysoRWU+PXRaKX0sJHt3ZX0sJHt0aGlzLl94MT1sK2QqTWF0aC5jb3MoZil9LCR7dGhpcy5feTE9YStk'@; put 'Kk1hdGguc2luKGYpfWApfXJlY3QobCxhLGQsaCl7dGhpcy5fYXBwZW5kYE0ke3RoaXMuX3gwPXRoaXMuX3gxPStsfSwke3RoaXMuX3kwPXRoaXMuX3kxPSthfWgke2Q9K2R9diR7K2h9aCR7LWR9WmB9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5ffX1mdW5jdGlvbiB1bGUoKXtyZXR1cm4gbmV3'@; put 'IHJafWZ1bmN0aW9uIENRZShjLGwsYSxkKXtyZXR1cm4gbD0tbCxkPS1kLFtjLGxdPVtjKmEtbCpkLGMqZCtsKmFdLFtjLGw9LWxdfWZ1bmN0aW9uIGRsZShjLGwsYSxkLGgsZixfKXt2YXIgVz1YZyhnbGUuY2FsbCh0aGlzLGYpKTtjLmRhdGEoW1ddKSxfdy5jYWxsKGMubm9kZSgpLFcpLGhs'@; put 'ZShjLGwsYSxkLGgsZixfKX1mdW5jdGlvbiBobGUoYyxsLGEsZCxoLGYsXyl7dmFyIFQ9Xy5zaG9ydGVuaW5nfHwwLHdlPVtbMCwtMy41XSxbMTAsMF0sWzAsMy41XSxbMCwtMy41XV0sRWU9ZC1sLFplPWgtYSxpdD1NYXRoLnNxcnQoRWUqRWUrWmUqWmUpO2lmKDA9PWl0KXZhciBldD0xLHl0'@; put 'PTA7ZWxzZSBldD1FZS9pdCx5dD1aZS9pdDtpZihkPWwrKGl0LVQtMTAtLjEpKmV0LGg9YSsoaXQtVC0xMC0uMSkqeXQsZi5VUkx8fGYudG9vbHRpcCl2YXIgRXQ9Yy5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiYSIpLFN0'@; put 'PUV0LnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInBhdGgiKSxKdD1FdC5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJwb2x5Z29uIik7ZWxzZSBTdD1jLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInBhdGgiKSxKdD1jLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRp'@; put 'b24oInBvbHlnb24iKTt2YXIgbm49dWxlKCk7bm4ubW92ZVRvKGwsYSksbm4ubGluZVRvKGQsaCksU3QuYXR0cigiZCIsbm4pLGQ9bCsoaXQtVC0xMCkqZXQsaD1hKyhpdC1ULTEwKSp5dDtmb3IodmFyIHZuPTA7dm48d2UubGVuZ3RoO3ZuKyspd2Vbdm5dPUNRZSgoTm49d2Vbdm5dKVswXSxO'@; put 'blsxXSxldCx5dCk7Zm9yKHZuPTA7dm48d2UubGVuZ3RoO3ZuKyspd2Vbdm5dPVtkKyhObj13ZVt2bl0pWzBdLGgrTm5bMV1dO3ZhciBjcj1bXTtmb3Iodm49MDt2bjx3ZS5sZW5ndGg7dm4rKyl7dmFyIE5uO2NyLnB1c2goKE5uPXdlW3ZuXSkuam9pbigiLCIpKX12YXIgSXI9Y3Iuam9pbigi'@; put 'ICIpO3JldHVybiBKdC5hdHRyKCJwb2ludHMiLElyKSx0aGlzfWZ1bmN0aW9uIGZsZSgpe3JldHVybiB0aGlzLl9kcmF3bkVkZ2U/KHRoaXMuX2RyYXduRWRnZS5nLnJlbW92ZSgpLHRoaXMuX2RyYXduRWRnZT1udWxsLHRoaXMpOnRoaXN9ZnVuY3Rpb24gcGxlKCl7cmV0dXJuIHRoaXMuX2Ry'@; put 'YXduRWRnZT90aGlzLl9kcmF3bkVkZ2UuZzprcyhudWxsKX1mdW5jdGlvbiBnbGUoYyl7dmFyIGw9IiI7Zm9yKHZhciBhIG9mIE9iamVjdC5rZXlzKGMpKW51bGwhPWNbYV0mJihsKz0nICInK2ErJyI9IicrY1thXSsnIicpO3ZhciBoPXRoaXMubGF5b3V0U3luYygiZGlncmFwaCB7YSAtPiBi'@; put 'IFsiK2wrIl19Iiwic3ZnIiwiZG90IiksXz0obmV3IHdpbmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhoLCJpbWFnZS9zdmcreG1sIik7cmV0dXJuIGtzKGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIF8uZG9jdW1lbnRF'@; put 'bGVtZW50fSkuc2VsZWN0KCIuZWRnZSIpfWZ1bmN0aW9uIG1sZShjLGwsYSxkLGgsZil7dmFyIFQ9WGcoeWxlLmNhbGwodGhpcyxkLGgpKTtyZXR1cm4gYy5kYXRhKFtUXSksX3cuY2FsbChjLm5vZGUoKSxUKSx2bGUoYyxsLGEsaCksdGhpc31mdW5jdGlvbiB2bGUoYyxsLGEsZCxoKXtpZihk'@; put 'LlVSTHx8ZC50b29sdGlwKXZhciBmPWMuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImEiKTtlbHNlIGY9Yzt2YXIgXz1mLnNlbGVjdEFsbCgiZWxsaXBzZSxwb2x5Z29uLHBhdGgscG9seWxpbmUiKSxUPWMuc2VsZWN0V2l0'@; put 'aG91dERhdGFQcm9wYWdhdGlvbigidGV4dCIpO2lmKDAhPV8uc2l6ZSgpKXt2YXIgVz1fLm5vZGUoKS5nZXRCQm94KCk7Vy5jeD1XLngrVy53aWR0aC8yLFcuY3k9Vy55K1cuaGVpZ2h0LzJ9ZWxzZSAwIT1ULnNpemUoKSYmKFc9e3g6K1QuYXR0cigieCIpLHk6K1QuYXR0cigieSIpLHdpZHRo'@; put 'OjAsaGVpZ2h0OjAsY3g6K1QuYXR0cigieCIpLGN5OitULmF0dHIoInkiKX0pO3JldHVybiBfLmVhY2goZnVuY3Rpb24oaWUscGUpe3ZhciB3ZT1rcyh0aGlzKTtpZih3ZS5hdHRyKCJjeCIpKXdlLmF0dHIoImN4IixjNChsKSkuYXR0cigiY3kiLGM0KGEpKTtlbHNlIGlmKHdlLmF0dHIoInBv'@; put 'aW50cyIpKXt2YXIgRWU9d2UuYXR0cigicG9pbnRzIikudHJpbSgpO3dlLmF0dHIoInBvaW50cyIsZnVuY3Rpb24gRkplKGYsbCxhKXt2YXIgaCxkPShoPWYuc3BsaXQoIiAiKSkubWFwKGZ1bmN0aW9uKF8pe3JldHVybiBfLnNwbGl0KCIsIil9KTtyZXR1cm4gZD1oLm1hcChmdW5jdGlvbihf'@; put 'KXtyZXR1cm5bYzQoK2wrICtfLnNwbGl0KCIsIilbMF0pLGM0KCthKyArXy5zcGxpdCgiLCIpWzFdKV19KSwoaD1kLm1hcChmdW5jdGlvbihfKXtyZXR1cm4gXy5qb2luKCIsIil9KSkuam9pbigiICIpfShFZSxsLVcuY3gsYS1XLmN5KSl9ZWxzZXt2YXIgWmU9d2UuYXR0cigiZCIpO3dlLmF0'@; put 'dHIoImQiLGZ1bmN0aW9uIEhKZShjLGwsYSl7KGY9Yy5zcGxpdCgvW0EtWiBdLykpLnNoaWZ0KCk7dmFyIGQ9Yy5zcGxpdCgvW15bQS1aIF0rLyksZj0oZi5tYXAoZnVuY3Rpb24oXyl7cmV0dXJuIF8uc3BsaXQoIiwiKX0pLGYubWFwKGZ1bmN0aW9uKF8pe3JldHVybltjNCgrbCsgK18uc3Bs'@; put 'aXQoIiwiKVswXSksYzQoK2ErICtfLnNwbGl0KCIsIilbMV0pXX0pLm1hcChmdW5jdGlvbihfKXtyZXR1cm4gXy5qb2luKCIsIil9KSk7cmV0dXJuIGQucmVkdWNlKGZ1bmN0aW9uKF8sVCxXKXtyZXR1cm4gXy5jb25jYXQoVCxmW1ddKX0sW10pLmpvaW4oIiIpfShaZSxsLVcuY3gsYS1XLmN5'@; put 'KSl9fSksMCE9VC5zaXplKCkmJlQuYXR0cigieCIsYzQoK1QuYXR0cigieCIpK2wtVy5jeCkpLmF0dHIoInkiLGM0KCtULmF0dHIoInkiKSthLVcuY3kpKSx0aGlzfWZ1bmN0aW9uIF9sZSgpe2lmKCF0aGlzLl9kcmF3bk5vZGUpcmV0dXJuIHRoaXM7dmFyIGM9dGhpcy5fZHJhd25Ob2RlLmc7'@; put 'cmV0dXJuIGMuZW1wdHkoKXx8Yy5yZW1vdmUoKSx0aGlzLl9kcmF3bk5vZGU9bnVsbCx0aGlzfWZ1bmN0aW9uIGJsZSgpe3JldHVybiB0aGlzLl9kcmF3bk5vZGU/dGhpcy5fZHJhd25Ob2RlLmc6a3MobnVsbCl9ZnVuY3Rpb24geWxlKGMsbCl7dmFyIGE9IiI7Zm9yKHZhciBkIG9mIE9iamVj'@; put 'dC5rZXlzKGwpKW51bGwhPWxbZF0mJihhKz0nICInK2QrJyI9IicrbFtkXSsnIicpO3ZhciBmPXRoaXMubGF5b3V0U3luYygnZ3JhcGggeyInK2MrJyIgWycrYSsiXX0iLCJzdmciLCJkb3QiKSxUPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGYsImltYWdlL3N2Zyt4'@; put 'bWwiKTtyZXR1cm4ga3MoZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gVC5kb2N1bWVudEVsZW1lbnR9KS5zZWxlY3QoIi5ub2RlIil9ZnVuY3Rpb24gT1QoYyl7c2VsZi5kb2N1bWVudD17fSxjLmFkZEV2ZW50TGlzdGVuZXIoIm1l'@; put 'c3NhZ2UiLGZ1bmN0aW9uKGwpe2xldCBhPXNlbGZbIkBocGNjLWpzL3dhc20iXTtudWxsPT1hJiZsLmRhdGEudml6VVJMJiYoaW1wb3J0U2NyaXB0cyhsLmRhdGEudml6VVJMKSxhPXNlbGZbIkBocGNjLWpzL3dhc20iXSksInZlcnNpb24iIT1sLmRhdGEudHlwZT9hLkdyYXBodml6LmxvYWQo'@; put 'KS50aGVuKGQ9Pntjb25zdCBoPWQubGF5b3V0KGwuZGF0YS5kb3QsInN2ZyIsbC5kYXRhLmVuZ2luZSxsLmRhdGEub3B0aW9ucyk7Yy5wb3N0TWVzc2FnZShoP3t0eXBlOiJkb25lIixzdmc6aH06bC5kYXRhLnZpelVSTD97dHlwZToiaW5pdCJ9Ont0eXBlOiJza2lwIn0pfSkuY2F0Y2goZD0+'@; put 'e2MucG9zdE1lc3NhZ2Uoe3R5cGU6ImVycm9yIixlcnJvcjpkLm1lc3NhZ2V9KX0pOmEuR3JhcGh2aXoubG9hZCgpLnRoZW4oZD0+e2MucG9zdE1lc3NhZ2Uoe3R5cGU6InZlcnNpb24iLHZlcnNpb246ZC52ZXJzaW9uKCl9KX0pfSl9ZnVuY3Rpb24gSVFlKCl7T1Qoc2VsZil9ZnVuY3Rpb24g'@; put 'TFFlKCl7c2VsZi5vbmNvbm5lY3Q9ZnVuY3Rpb24oYyl7Y29uc3QgbD1jLnBvcnRzWzBdO09UKGwpLGwuc3RhcnQoKX19ZnVuY3Rpb24gaVooYyxsKXtpZih0aGlzLl9vcHRpb25zPXt1c2VXb3JrZXI6ITAsdXNlU2hhcmVkV29ya2VyOiExLGVuZ2luZToiZG90IixrZXlNb2RlOiJ0aXRsZSIs'@; put 'ZmFkZTohMCx0d2VlblBhdGhzOiEwLHR3ZWVuU2hhcGVzOiEwLGNvbnZlcnRFcXVhbFNpZGVkUG9seWdvbnM6ITAsdHdlZW5QcmVjaXNpb246MSxncm93RW50ZXJpbmdFZGdlczohMCx6b29tOiEwLHpvb21TY2FsZUV4dGVudDpbLjEsMTBdLHpvb21UcmFuc2xhdGVFeHRlbnQ6W1stMS8wLC0x'@; put 'LzBdLFsxLzAsMS8wXV0sd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxzY2FsZToxLGZpdDohMX0sbCBpbnN0YW5jZW9mIE9iamVjdClmb3IodmFyIGEgb2YgT2JqZWN0LmtleXMobCkpdGhpcy5fb3B0aW9uc1thXT1sW2FdO2Vsc2UiYm9vbGVhbiI9PXR5cGVvZiBsJiYodGhpcy5fb3B0aW9ucy51'@; put 'c2VXb3JrZXI9bCk7dmFyIGQ9dGhpcy5fb3B0aW9ucy51c2VXb3JrZXIsaD10aGlzLl9vcHRpb25zLnVzZVNoYXJlZFdvcmtlcjtpZih0eXBlb2YgV29ya2VyPiJ1IiYmKGQ9ITEpLHR5cGVvZiBTaGFyZWRXb3JrZXI+InUiJiYoaD0hMSksZHx8aCl7dmFyIF89TVUoInNjcmlwdCIpLmZpbHRl'@; put 'cihmdW5jdGlvbigpe3JldHVybiJqYXZhc2NyaXB0L3dvcmtlciI9PWtzKHRoaXMpLmF0dHIoInR5cGUiKXx8a3ModGhpcykuYXR0cigic3JjIikmJmtzKHRoaXMpLmF0dHIoInNyYyIpLm1hdGNoKC8uKlwvQGhwY2MtanNcL3dhc20vKX0pOzA9PV8uc2l6ZSgpPyhjb25zb2xlLndhcm4oJ05v'@; put 'IHNjcmlwdCB0YWcgb2YgdHlwZSAiamF2YXNjcmlwdC93b3JrZXIiIHdhcyBmb3VuZCBhbmQgInVzZVdvcmtlciIgaXMgdHJ1ZS4gTm90IHVzaW5nIHdlYiB3b3JrZXIuJyksZD0hMSxoPSExKToodGhpcy5fdml6VVJMPV8uYXR0cigic3JjIiksdGhpcy5fdml6VVJMfHwoY29uc29sZS53YXJu'@; put 'KCdObyAic3JjIiBhdHRyaWJ1dGUgb2Ygd2FzIGZvdW5kIG9uIHRoZSAiamF2YXNjcmlwdC93b3JrZXIiIHNjcmlwdCB0YWcgYW5kICJ1c2VXb3JrZXIiIGlzIHRydWUuIE5vdCB1c2luZyB3ZWIgd29ya2VyLicpLGQ9ITEsaD0hMSkpfWlmKGgpe2NvbnN0IGllPSJkYXRhOmFwcGxpY2F0aW9u'@; put 'L2phdmFzY3JpcHQ7YmFzZTY0LCIrYnRvYShPVC50b1N0cmluZygpKyIoIitMUWUudG9TdHJpbmcoKSsiKSgpIik7dGhpcy5fd29ya2VyPXRoaXMuX3dvcmtlcj1uZXcgU2hhcmVkV29ya2VyKGllKSx0aGlzLl93b3JrZXJQb3J0PXRoaXMuX3dvcmtlci5wb3J0LHRoaXMuX3dvcmtlclBvcnRD'@; put 'bG9zZT10aGlzLl93b3JrZXIucG9ydC5jbG9zZS5iaW5kKHRoaXMuX3dvcmtlclBvcnQpLHRoaXMuX3dvcmtlci5wb3J0LnN0YXJ0KCksdGhpcy5fd29ya2VyQ2FsbGJhY2tzPVtdfWVsc2UgaWYoZCl7dmFyIFQ9bmV3IEJsb2IoW09ULnRvU3RyaW5nKCkrIigiK0lRZS50b1N0cmluZygpKyIp'@; put 'KCkiXSksVz13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChUKTt0aGlzLl93b3JrZXI9bmV3IFdvcmtlcihXKSx0aGlzLl93b3JrZXJQb3J0PXRoaXMuX3dvcmtlcix0aGlzLl93b3JrZXJQb3J0Q2xvc2U9dGhpcy5fd29ya2VyLnRlcm1pbmF0ZS5iaW5kKHRoaXMuX3dvcmtlciksdGhpcy5f'@; put 'd29ya2VyQ2FsbGJhY2tzPVtdfWVsc2UgRFQubG9hZCgpLnRoZW4oKGllPT57dGhpcy5fZ3JhcGh2aXpWZXJzaW9uPWllLnZlcnNpb24oKX0pLmJpbmQodGhpcykpO3RoaXMuX3NlbGVjdGlvbj1jLHRoaXMuX2FjdGl2ZT0hMSx0aGlzLl9idXN5PSExLHRoaXMuX2pvYnM9W10sdGhpcy5fcXVl'@; put 'dWU9W10sdGhpcy5fa2V5TW9kZXM9bmV3IFNldChbInRpdGxlIiwiaWQiLCJ0YWctaW5kZXgiLCJpbmRleCJdKSx0aGlzLl9pbWFnZXM9W10sdGhpcy5fdHJhbnNsYXRpb249dm9pZCAwLHRoaXMuX3NjYWxlPXZvaWQgMCx0aGlzLl9ldmVudFR5cGVzPVsiaW5pdEVuZCIsInN0YXJ0IiwibGF5'@; put 'b3V0U3RhcnQiLCJsYXlvdXRFbmQiLCJkYXRhRXh0cmFjdEVuZCIsImRhdGFQcm9jZXNzUGFzczFFbmQiLCJkYXRhUHJvY2Vzc1Bhc3MyRW5kIiwiZGF0YVByb2Nlc3NFbmQiLCJyZW5kZXJTdGFydCIsInJlbmRlckVuZCIsInRyYW5zaXRpb25TdGFydCIsInRyYW5zaXRpb25FbmQiLCJyZXN0'@; put 'b3JlRW5kIiwiZW5kIiwiem9vbSJdLHRoaXMuX2Rpc3BhdGNoPXhVKC4uLnRoaXMuX2V2ZW50VHlwZXMpLE5KZS5jYWxsKHRoaXMpLGMubm9kZSgpLl9fZ3JhcGh2aXpfXz10aGlzfWZ1bmN0aW9uIFBUKGMsbCl7cmV0dXJuIGtzKGMpLmdyYXBodml6KGwpfXVsZS5wcm90b3R5cGU9cloucHJv'@; put 'dG90eXBlLGlaLnByb3RvdHlwZT1QVC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmlaLGVuZ2luZTpmdW5jdGlvbiBYSmUoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMuZW5naW5lPWMsdGhpc30sYWRkSW1hZ2U6ZnVuY3Rpb24gSkplKGMsbCxhKXtyZXR1cm4gdGhpcy5faW1hZ2VzLnB1c2goe3Bh'@; put 'dGg6Yyx3aWR0aDpsLGhlaWdodDphfSksdGhpc30sa2V5TW9kZTpmdW5jdGlvbiBRSmUoYyl7aWYoIXRoaXMuX2tleU1vZGVzLmhhcyhjKSl0aHJvdyBFcnJvcigiSWxsZWdhbCBrZXlNb2RlOiAiK2MpO2lmKGMhPXRoaXMuX29wdGlvbnMua2V5TW9kZSYmbnVsbCE9dGhpcy5fZGF0YSl0aHJv'@; put 'dyBFcnJvcigiVG9vIGxhdGUgdG8gY2hhbmdlIGtleU1vZGUiKTtyZXR1cm4gdGhpcy5fb3B0aW9ucy5rZXlNb2RlPWMsdGhpc30sZmFkZTpmdW5jdGlvbiBlUWUoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMuZmFkZT1jLHRoaXN9LHR3ZWVuUGF0aHM6ZnVuY3Rpb24gdFFlKGMpe3JldHVybiB0'@; put 'aGlzLl9vcHRpb25zLnR3ZWVuUGF0aHM9Yyx0aGlzfSx0d2VlblNoYXBlczpmdW5jdGlvbiBuUWUoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMudHdlZW5TaGFwZXM9YyxjJiYodGhpcy5fb3B0aW9ucy50d2VlblBhdGhzPSEwKSx0aGlzfSxjb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zOmZ1bmN0'@; put 'aW9uIHJRZShjKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5jb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zPWMsdGhpc30sdHdlZW5QcmVjaXNpb246ZnVuY3Rpb24gaVFlKGMpe3JldHVybiB0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uPWMsdGhpc30sZ3Jvd0VudGVyaW5nRWRnZXM6ZnVuY3Rp'@; put 'b24gb1FlKGMpe3JldHVybiB0aGlzLl9vcHRpb25zLmdyb3dFbnRlcmluZ0VkZ2VzPWMsdGhpc30sem9vbTpmdW5jdGlvbiBhSmUoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMuem9vbT1jLHRoaXMuX29wdGlvbnMuem9vbSYmIXRoaXMuX3pvb21CZWhhdmlvcj9LYWUuY2FsbCh0aGlzKTohdGhp'@; put 'cy5fb3B0aW9ucy56b29tJiZ0aGlzLl96b29tQmVoYXZpb3ImJih0aGlzLl96b29tU2VsZWN0aW9uLm9uKCIuem9vbSIsbnVsbCksdGhpcy5fem9vbUJlaGF2aW9yPW51bGwpLHRoaXN9LHJlc2V0Wm9vbTpmdW5jdGlvbiBsSmUoYyl7dmFyIGw9dGhpcy5fem9vbVNlbGVjdGlvbjtyZXR1cm4g'@; put 'YyYmKGw9bC50cmFuc2l0aW9uKGMpKSxsLmNhbGwodGhpcy5fem9vbUJlaGF2aW9yLnRyYW5zZm9ybSx0aGlzLl9vcmlnaW5hbFRyYW5zZm9ybSksdGhpc30sem9vbUJlaGF2aW9yOmZ1bmN0aW9uIGRKZSgpe3JldHVybiB0aGlzLl96b29tQmVoYXZpb3J8fG51bGx9LHpvb21TZWxlY3Rpb246'@; put 'ZnVuY3Rpb24gaEplKCl7cmV0dXJuIHRoaXMuX3pvb21TZWxlY3Rpb258fG51bGx9LHpvb21TY2FsZUV4dGVudDpmdW5jdGlvbiBjSmUoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMuem9vbVNjYWxlRXh0ZW50PWMsdGhpc30sem9vbVRyYW5zbGF0ZUV4dGVudDpmdW5jdGlvbiB1SmUoYyl7cmV0'@; put 'dXJuIHRoaXMuX29wdGlvbnMuem9vbVRyYW5zbGF0ZUV4dGVudD1jLHRoaXN9LHJlbmRlcjpmdW5jdGlvbiBfSmUoYyl7cmV0dXJuIHRoaXMuX2J1c3k/KHRoaXMuX3F1ZXVlLnB1c2godGhpcy5yZW5kZXIuYmluZCh0aGlzLGMpKSx0aGlzKToodGhpcy5fZGlzcGF0Y2guY2FsbCgicmVuZGVy'@; put 'U3RhcnQiLHRoaXMpLHRoaXMuX3RyYW5zaXRpb25GYWN0b3J5P2hUKGZ1bmN0aW9uKCl7dGhpcy5fdHJhbnNpdGlvbj1WVSh0aGlzLl90cmFuc2l0aW9uRmFjdG9yeSgpKSxRYWUuY2FsbCh0aGlzLGMpfS5iaW5kKHRoaXMpLDApOlFhZS5jYWxsKHRoaXMsYyksdGhpcyl9LGxheW91dDpmdW5j'@; put 'dGlvbiBWSmUoYyxsLGEsZCl7aWYodGhpcy5fd29ya2VyKUpVLmNhbGwodGhpcyx7dHlwZToibGF5b3V0Iixkb3Q6YyxlbmdpbmU6bCxvcHRpb25zOmF9LGZ1bmN0aW9uKGYpe2QuY2FsbCh0aGlzLGYuZGF0YSl9KTtlbHNlIHRyeXt2YXIgaD10aGlzLmxheW91dFN5bmMoYywic3ZnIixsLGEp'@; put 'O2QuY2FsbCh0aGlzLHt0eXBlOiJkb25lIixzdmc6aH0pfWNhdGNoKGYpe2QuY2FsbCh0aGlzLHt0eXBlOiJlcnJvciIsZXJyb3I6Zi5tZXNzYWdlfSl9fSxkb3Q6ZnVuY3Rpb24gQkplKGMsbCl7dmFyIGE9dGhpcyxoPXRoaXMuX29wdGlvbnMuZW5naW5lLGY9dGhpcy5faW1hZ2VzO3JldHVy'@; put 'biB0aGlzLl9kaXNwYXRjaC5jYWxsKCJzdGFydCIsdGhpcyksdGhpcy5fYnVzeT0hMCx0aGlzLl9kaXNwYXRjaC5jYWxsKCJsYXlvdXRTdGFydCIsdGhpcyksdGhpcy5fd29ya2VyfHxudWxsIT10aGlzLmxheW91dFN5bmM/KHRoaXMubGF5b3V0KGMsaCx7aW1hZ2VzOmZ9LGZ1bmN0aW9uKFQp'@; put 'e3N3aXRjaChULnR5cGUpe2Nhc2UiZXJyb3IiOmlmKCFhLl9vbmVycm9yKXRocm93IFQuZXJyb3IubWVzc2FnZTthLl9vbmVycm9yKFQuZXJyb3IpO2JyZWFrO2Nhc2UiZG9uZSI6akplLmNhbGwodGhpcyxULnN2ZyxsKX19KSx0aGlzKToodGhpcy5fYWZ0ZXJJbml0PXRoaXMuZG90LmJpbmQo'@; put 'dGhpcyxjLGwpLHRoaXMpfSxkYXRhOmZ1bmN0aW9uIGdKZSgpe3JldHVybiB0aGlzLl9kYXRhfHxudWxsfSxyZW5kZXJEb3Q6ZnVuY3Rpb24gekplKGMsbCl7dmFyIGE9dGhpcztyZXR1cm4gdGhpcy5kb3QoYyxmdW5jdGlvbiBkKCl7YS5yZW5kZXIobCl9KSx0aGlzfSx0cmFuc2l0aW9uOmZ1'@; put 'bmN0aW9uIFVKZShjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEZ1bmN0aW9uP3RoaXMuX3RyYW5zaXRpb25GYWN0b3J5PWM6dGhpcy5fdHJhbnNpdGlvbj1WVShjKSx0aGlzfSxhY3RpdmU6ZnVuY3Rpb24gWkplKGMpe3ZhciBhPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3Bh'@; put 'Z2F0aW9uKCJzdmciKTtyZXR1cm4gMCE9YS5zaXplKCk/ZnVuY3Rpb24gQlhlKGMsbCl7dmFyIGQsaCxhPWMuX190cmFuc2l0aW9uO2lmKGEpZm9yKGggaW4gbD1udWxsPT1sP251bGw6bCsiIixhKWlmKChkPWFbaF0pLnN0YXRlPjEmJmQubmFtZT09PWwpcmV0dXJuIG5ldyBMaChbW2NdXSxW'@; put 'WGUsbCwraCk7cmV0dXJuIG51bGx9KGEubm9kZSgpLGMpOm51bGx9LG9wdGlvbnM6ZnVuY3Rpb24gWUplKGMpe2lmKHR5cGVvZiBjPiJ1IilyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9vcHRpb25zKTtmb3IodmFyIGwgb2YgT2JqZWN0LmtleXMoYykpdGhpcy5fb3B0aW9uc1tsXT1j'@; put 'W2xdO3JldHVybiB0aGlzfSx3aWR0aDpmdW5jdGlvbiBXSmUoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMud2lkdGg9Yyx0aGlzfSxoZWlnaHQ6ZnVuY3Rpb24gR0plKGMpe3JldHVybiB0aGlzLl9vcHRpb25zLmhlaWdodD1jLHRoaXN9LHNjYWxlOmZ1bmN0aW9uICRKZShjKXtyZXR1cm4gdGhp'@; put 'cy5fb3B0aW9ucy5zY2FsZT1jLHRoaXN9LGZpdDpmdW5jdGlvbiBxSmUoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMuZml0PWMsdGhpc30sYXR0cmlidXRlcjpmdW5jdGlvbiBLSmUoYyl7cmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXI9Yyx0aGlzfSxvbjpmdW5jdGlvbiBzUWUoYyxsKXtyZXR1cm4g'@; put 'dGhpcy5fZGlzcGF0Y2gub24oYyxsKSx0aGlzfSxvbmVycm9yOmZ1bmN0aW9uIGFRZShjKXtyZXR1cm4gdGhpcy5fb25lcnJvcj1jLHRoaXN9LGxvZ0V2ZW50czpmdW5jdGlvbiBfUWUoYyl7dmFyIGw9RGF0ZS5ub3coKSxhPXt9LGQ9dGhpcy5fZXZlbnRUeXBlcyxoPU1hdGgubWF4KC4uLmQu'@; put 'bWFwKFc9PlcubGVuZ3RoKSk7Zm9yKGxldCBXPTA7VzxkLmxlbmd0aDtXKyspe2xldCBpZT1kW1ddO2FbaWVdPVtdO3ZhciBfLFQsZj10aGlzO3RoaXMub24oaWUrIi5sb2ciLGM/ZnVuY3Rpb24oKXt2YXIgcGU9RGF0ZS5ub3coKSx3ZT1hW2llXS5sZW5ndGg7YVtpZV0ucHVzaChwZSk7dmFy'@; put 'IEVlPSIiO2lmKEVlKz0iRXZlbnQgIixFZSs9d2QoIiA+MiIpKFcpKyIgIixFZSs9aWUrIiAiLnJlcGVhdChoLWllLmxlbmd0aCksRWUrPXdkKCIgPjUiKShwZS1sKSsiICIsImluaXRFbmQiIT1pZSYmKEVlKz13ZCgiID41IikocGUtYS5zdGFydFt3ZV0pKSwiZGF0YVByb2Nlc3NFbmQiPT1p'@; put 'ZSYmKEVlKz0iIHByZXBhcmUgICAgICAgICAgICAgICAgICIrd2QoIiA+NSIpKHBlLWEubGF5b3V0RW5kW3dlXSkpLCJyZW5kZXJFbmQiPT1pZSYmZi5fdHJhbnNpdGlvbiYmKEVlKz0iIHRyYW5zaXRpb24gc3RhcnQgbWFyZ2luICIrd2QoIiA+NSIpKGYuX3RyYW5zaXRpb24uZGVsYXkoKS0o'@; put 'cGUtYS5yZW5kZXJTdGFydFt3ZV0pKSxfPWYuX3RyYW5zaXRpb24uZGVsYXkoKSxUPWYuX3RyYW5zaXRpb24uZHVyYXRpb24oKSksInRyYW5zaXRpb25TdGFydCI9PWllKXt2YXIgWmU9cGUtYS5yZW5kZXJTdGFydFt3ZV07RWUrPSIgdHJhbnNpdGlvbiBkZWxheSAgICAgICAgIit3ZCgiID41'@; put 'IikocGUtYS5yZW5kZXJTdGFydFt3ZV0pLEVlKz0iIGV4cGVjdGVkICIrd2QoIiA+NSIpKF8pLEVlKz0iIGRpZmYgIit3ZCgiID41IikoWmUtXyl9aWYoInRyYW5zaXRpb25FbmQiPT1pZSl7dmFyIGl0PXBlLWEudHJhbnNpdGlvblN0YXJ0W3dlXTtFZSs9IiB0cmFuc2l0aW9uIGR1cmF0aW9u'@; put 'ICAgICAiK3dkKCIgPjUiKShpdCksRWUrPSIgZXhwZWN0ZWQgIit3ZCgiID41IikoVCksRWUrPSIgZGlmZiAiK3dkKCIgPjUiKShpdC1UKX1jb25zb2xlLmxvZyhFZSksbD1wZX06bnVsbCl9cmV0dXJuIHRoaXN9LGRlc3Ryb3k6ZnVuY3Rpb24gYlFlKCl7cmV0dXJuIGRlbGV0ZSB0aGlzLl9z'@; put 'ZWxlY3Rpb24ubm9kZSgpLl9fZ3JhcGh2aXpfXyx0aGlzLl93b3JrZXImJnRoaXMuX3dvcmtlclBvcnRDbG9zZSgpLHRoaXN9LGRyYXdFZGdlOmZ1bmN0aW9uIFNRZShjLGwsYSxkLGgsZj17fSl7aWYoKGg9T2JqZWN0LmFzc2lnbih7fSxoKSkuc3R5bGUmJmguc3R5bGUuaW5jbHVkZXMoImlu'@; put 'dmlzIikpdmFyIF89a3MobnVsbCk7ZWxzZXt2YXIgaWU9dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSx3ZT1YZyhnbGUuY2FsbCh0aGlzLGgpKTtfPWllLmFwcGVuZCgiZyIpLmRhdGEo'@; put 'W3dlXSksX3cuY2FsbChfLm5vZGUoKSx3ZSksZGxlLmNhbGwodGhpcyxfLGMsbCxhLGQsaCxmKX1yZXR1cm4gdGhpcy5fZHJhd25FZGdlPXtnOl8seDE6Yyx5MTpsLHgyOmEseTI6ZCxhdHRyaWJ1dGVzOmh9LHRoaXN9LHVwZGF0ZURyYXduRWRnZTpmdW5jdGlvbiBNUWUoYyxsLGEsZCxoPXt9'@; put 'LGY9e30pe2lmKCF0aGlzLl9kcmF3bkVkZ2UpdGhyb3cgRXJyb3IoIk5vIGVkZ2UgaGFzIGJlZW4gZHJhd24iKTt2YXIgXz10aGlzLl9kcmF3bkVkZ2UuZztyZXR1cm4gaD1PYmplY3QuYXNzaWduKHRoaXMuX2RyYXduRWRnZS5hdHRyaWJ1dGVzLGgpLHRoaXMuX2RyYXduRWRnZS54MT1jLHRo'@; put 'aXMuX2RyYXduRWRnZS55MT1sLHRoaXMuX2RyYXduRWRnZS54Mj1hLHRoaXMuX2RyYXduRWRnZS55Mj1kLCFfLmVtcHR5KCl8fGguc3R5bGUmJmguc3R5bGUuaW5jbHVkZXMoImludmlzIil8fChfPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5z'@; put 'ZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuYXBwZW5kKCJnIiksdGhpcy5fZHJhd25FZGdlLmc9XyksXy5lbXB0eSgpfHxkbGUuY2FsbCh0aGlzLF8sYyxsLGEsZCxoLGYpLHRoaXN9LG1vdmVEcmF3bkVkZ2VFbmRQb2ludDpmdW5jdGlvbiB4UWUoYyxsLGE9e30pe2lmKCF0aGlz'@; put 'Ll9kcmF3bkVkZ2UpdGhyb3cgRXJyb3IoIk5vIGVkZ2UgaGFzIGJlZW4gZHJhd24iKTt2YXIgZD10aGlzLl9kcmF3bkVkZ2UuZyxoPXRoaXMuX2RyYXduRWRnZS54MSxmPXRoaXMuX2RyYXduRWRnZS55MSxfPXRoaXMuX2RyYXduRWRnZS5hdHRyaWJ1dGVzO3JldHVybiB0aGlzLl9kcmF3bkVk'@; put 'Z2UueDI9Yyx0aGlzLl9kcmF3bkVkZ2UueTI9bCxobGUoZCxoLGYsYyxsLF8sYSksdGhpc30saW5zZXJ0RHJhd25FZGdlOmZ1bmN0aW9uIEVRZShjKXtpZighdGhpcy5fZHJhd25FZGdlKXRocm93IEVycm9yKCJObyBlZGdlIGhhcyBiZWVuIGRyYXduIik7dmFyIGw9dGhpcy5fZHJhd25FZGdl'@; put 'Lmc7aWYobC5lbXB0eSgpKXJldHVybiB0aGlzO2wuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGl0bGUiKS50ZXh0KGMpO3ZhciBfPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJn'@; put 'IiksVD1fLmRhdHVtKCksVz10aGlzLl9leHRyYWN0RGF0YShsLFQuY2hpbGRyZW4ubGVuZ3RoLF8uZGF0dW0oKSk7cmV0dXJuIFQuY2hpbGRyZW4ucHVzaChXKSxZVShsLFcpLHRoaXMuX2RyYXduRWRnZT1udWxsLHRoaXN9LHJlbW92ZURyYXduRWRnZTpmbGUscmVtb3ZlRHJhd25FZGdlOmZs'@; put 'ZSxkcmF3bkVkZ2VTZWxlY3Rpb246cGxlLGRyYXduRWRnZVNlbGVjdGlvbjpwbGUsZHJhd05vZGU6ZnVuY3Rpb24ga1FlKGMsbCxhLGQ9e30saD17fSl7aWYoKGQ9T2JqZWN0LmFzc2lnbih7fSxkKSkuc3R5bGUmJmQuc3R5bGUuaW5jbHVkZXMoImludmlzIikpdmFyIGY9a3MobnVsbCk7ZWxz'@; put 'ZXt2YXIgVz10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLHBlPVhnKHlsZS5jYWxsKHRoaXMsYSxkKSk7Zj1XLmFwcGVuZCgiZyIpLmRhdGEoW3BlXSksX3cuY2FsbChmLm5vZGUoKSxw'@; put 'ZSksbWxlLmNhbGwodGhpcyxmLGMsbCxhLGQsaCl9cmV0dXJuIHRoaXMuX2RyYXduTm9kZT17ZzpmLG5vZGVJZDphLHg6Yyx5OmwsYXR0cmlidXRlczpkfSx0aGlzfSx1cGRhdGVEcmF3bk5vZGU6ZnVuY3Rpb24gQVFlKGMsbCxhLGQ9e30saD17fSl7aWYoIXRoaXMuX2RyYXduTm9kZSl0aHJv'@; put 'dyBFcnJvcigiTm8gbm9kZSBoYXMgYmVlbiBkcmF3biIpO3ZhciBmPXRoaXMuX2RyYXduTm9kZS5nO3JldHVybiBudWxsPT1hJiYoYT10aGlzLl9kcmF3bk5vZGUubm9kZUlkKSxkPU9iamVjdC5hc3NpZ24odGhpcy5fZHJhd25Ob2RlLmF0dHJpYnV0ZXMsZCksdGhpcy5fZHJhd25Ob2RlLm5v'@; put 'ZGVJZD1hLHRoaXMuX2RyYXduTm9kZS54PWMsdGhpcy5fZHJhd25Ob2RlLnk9bCwhZi5lbXB0eSgpfHxkLnN0eWxlJiZkLnN0eWxlLmluY2x1ZGVzKCJpbnZpcyIpfHwoZj10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2VsZWN0V2l0aG91dERh'@; put 'dGFQcm9wYWdhdGlvbigiZyIpLmFwcGVuZCgiZyIpLHRoaXMuX2RyYXduTm9kZS5nPWYpLGYuZW1wdHkoKXx8bWxlLmNhbGwodGhpcyxmLGMsbCxhLGQsaCksdGhpc30sbW92ZURyYXduTm9kZTpmdW5jdGlvbiBUUWUoYyxsLGE9e30pe2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3Io'@; put 'Ik5vIG5vZGUgaGFzIGJlZW4gZHJhd24iKTt2YXIgZD10aGlzLl9kcmF3bk5vZGUuZyxoPXRoaXMuX2RyYXduTm9kZS5hdHRyaWJ1dGVzO3JldHVybiB0aGlzLl9kcmF3bk5vZGUueD1jLHRoaXMuX2RyYXduTm9kZS55PWwsZC5lbXB0eSgpfHx2bGUoZCxjLGwsaCksdGhpc30saW5zZXJ0RHJh'@; put 'd25Ob2RlOmZ1bmN0aW9uIERRZShjKXtpZighdGhpcy5fZHJhd25Ob2RlKXRocm93IEVycm9yKCJObyBub2RlIGhhcyBiZWVuIGRyYXduIik7bnVsbD09YyYmKGM9dGhpcy5fZHJhd25Ob2RlLm5vZGVJZCk7dmFyIGw9dGhpcy5fZHJhd25Ob2RlLmc7aWYobC5lbXB0eSgpKXJldHVybiB0aGlz'@; put 'O3ZhciBhPXRoaXMuX2RyYXduTm9kZS5hdHRyaWJ1dGVzO2lmKGwuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGl0bGUiKS50ZXh0KGMpLGEuVVJMfHxhLnRvb2x0aXApdmFyIGY9bC5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuc2VsZWN0V2l0aG91dERhdGFQcm9w'@; put 'YWdhdGlvbigiYSIpLFQ9KGYuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZWxsaXBzZSxwb2x5Z29uLHBhdGgscG9seWxpbmUiKSxmLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInRleHQiKSk7ZWxzZSBsLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImVsbGlwc2Us'@; put 'cG9seWdvbixwYXRoLHBvbHlsaW5lIiksVD1sLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInRleHQiKTtULnRleHQoYS5sYWJlbHx8Yyk7dmFyIHBlPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3Bh'@; put 'Z2F0aW9uKCJnIiksd2U9cGUuZGF0dW0oKSxFZT10aGlzLl9leHRyYWN0RGF0YShsLHdlLmNoaWxkcmVuLmxlbmd0aCxwZS5kYXR1bSgpKTtyZXR1cm4gd2UuY2hpbGRyZW4ucHVzaChFZSksWVUobCxFZSksdGhpcy5fZHJhd25Ob2RlPW51bGwsdGhpc30scmVtb3ZlRHJhd25Ob2RlOl9sZSxy'@; put 'ZW1vdmVEcmF3bk5vZGU6X2xlLGRyYXduTm9kZVNlbGVjdGlvbjpibGUsZHJhd25Ob2RlU2VsZWN0aW9uOmJsZSxncmFwaHZpelZlcnNpb246ZnVuY3Rpb24gYkplKCl7cmV0dXJuIHRoaXMuX2dyYXBodml6VmVyc2lvbn19LFlnLnByb3RvdHlwZS5ncmFwaHZpej1mdW5jdGlvbiBSUWUoYyl7'@; put 'dmFyIGw9dGhpcy5ub2RlKCkuX19ncmFwaHZpel9fO3JldHVybiBsPyhsLm9wdGlvbnMoYyksaFQoZnVuY3Rpb24oKXtsLl9kaXNwYXRjaC5jYWxsKCJpbml0RW5kIix0aGlzKX0uYmluZCh0aGlzKSwwKSk6bD1uZXcgaVoodGhpcyxjKSxsfSxZZy5wcm90b3R5cGUuc2VsZWN0V2l0aG91dERh'@; put 'dGFQcm9wYWdhdGlvbj1mdW5jdGlvbiBPUWUoYyl7cmV0dXJuIGtzKHRoaXMuc2l6ZSgpPjA/dGhpcy5ub2RlKCkucXVlcnlTZWxlY3RvcihjKTpudWxsKX07dmFyIFBRZT1GKDg4NzAwKTtmdW5jdGlvbiBGUWUoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwyOCl9ZnVuY3Rpb24gSFFlKGMs'@; put 'bCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWljb24iLDI5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4gaC5saWJyYXJpZXNTZWFyY2g9IiIsanQoaC5saWJyYXJ5T25GaWx0ZXIoKSl9KSx5ZSgpfX1mdW5jdGlvbiBOUWUoYyxsKXtp'@; put 'ZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwyMikoMSwiZGl2IiwyMykoMiwiaW5wdXQiLDI0LDI1KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkubGlicmFyaWVzU2VhcmNoPWgpfSkoImtleXVwIixmdW5jdGlvbigp'@; put 'e3JldHVybiBCdChhKSxqdChWZSgpLmxpYnJhcnlPbkZpbHRlcigpKX0pLHllKCksSmUoNCxGUWUsMSwwLCJjbHItaWNvbiIsMjYpLEplKDUsSFFlLDEsMCwiY2xyLWljb24iLDI3KSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPSRpKDMpLGQ9VmUoKTtDZSgyKSxSZSgibmdNb2RlbCIsZC5saWJy'@; put 'YXJpZXNTZWFyY2gpLENlKDIpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aDwxKSxDZSgxKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIFZRZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDI4KX1mdW5jdGlvbiBCUWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtt'@; put 'ZSgwLCJjbHItaWNvbiIsMjkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKSxWZSgpO2NvbnN0IGg9JGkoMyksZj1WZSgyKS4kaW1wbGljaXQsXz1WZSgpO3JldHVybiBoLnZhbHVlPSIiLGYuc2VhcmNoU3RyaW5nPSIiLGp0KF8udHJlZU9uRmlsdGVyKGYsInRhYmxlcy5UQUJMRU5BTUUi'@; put 'KSl9KSx5ZSgpfX1mdW5jdGlvbiBqUWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwyMikoMSwiZGl2IiwyMykoMiwiaW5wdXQiLDM1LDM2KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLiRpbXBsaWNp'@; put 'dC5zZWFyY2hTdHJpbmc9aCl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkudHJlZU9uRmlsdGVyKGgsInRhYmxlcy5UQUJMRU5BTUUiKSl9KSx5ZSgpLEplKDQsVlFlLDEsMCwiY2xyLWljb24iLDI2KSxKZSg1LEJRZSwx'@; put 'LDAsImNsci1pY29uIiwyNykseWUoKSgpfWlmKDImYyl7Y29uc3QgYT0kaSgzKSxkPVZlKDIpLiRpbXBsaWNpdDtDZSgyKSxSZSgibmdNb2RlbCIsZC5zZWFyY2hTdHJpbmcpLENlKDIpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aDwxKSxDZSgxKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+'@; put 'MCl9fWZ1bmN0aW9uIHpRZShjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDI4KX1mdW5jdGlvbiBVUWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItaWNvbiIsMjkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKSxWZSgpO2NvbnN0IGg9JGkoMyksZj1WZSgpLiRpbXBs'@; put 'aWNpdCxfPVZlKDMpO3JldHVybiBoLnZhbHVlPSIiLGYuc2VhcmNoU3RyaW5nPSIiLGp0KF8udHJlZU9uRmlsdGVyKGYsImNvbHVtbnMuQ09MTkFNRSIpKX0pLHllKCl9fWZ1bmN0aW9uIFpRZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDIyKSgxLCJk'@; put 'aXYiLDIzKSgyLCJpbnB1dCIsMzksMzYpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPWgpfSkoImtleXVwIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZl'@; put 'KDMpLnRyZWVPbkZpbHRlcihoLCJjb2x1bW5zLkNPTE5BTUUiKSl9KSx5ZSgpLEplKDQselFlLDEsMCwiY2xyLWljb24iLDI2KSxKZSg1LFVRZSwxLDAsImNsci1pY29uIiwyNykseWUoKSgpfWlmKDImYyl7Y29uc3QgYT0kaSgzKSxkPVZlKCkuJGltcGxpY2l0O0NlKDIpLFJlKCJuZ01vZGVs'@; put 'IixkLnNlYXJjaFN0cmluZyksQ2UoMiksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPDEpLENlKDEpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gWVFlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIpKDEsImJ1dHRvbiIsNDApLHh0'@; put 'KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdCxfPVZlKCkuJGltcGxpY2l0LFQ9VmUoMikuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLmNvbHVtbk9uQ2xpY2soZixULF8pKX0pLHF0KDIsImNsci1pY29uIiw0MSksTmUoMykseWUoKSgpfWlmKDImYyl7Y29uc3Qg'@; put 'YT1sLiRpbXBsaWNpdCxkPVZlKDQpO0NlKDEpLGRyKCJjb2x1bW4tYWN0aXZlIixkLmxpYkNvbHVtbkFjdGl2ZShhLkNPTFVSSSkpLENlKDIpLGdyKCIgIixhLkNPTE5BTUUsIiAiKX19ZnVuY3Rpb24gV1FlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIs'@; put 'MzEpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7Y29uc3QgXz1CdChhKS4kaW1wbGljaXQsVD1WZSgyKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkudHJlZU5vZGVDbGlja2VkKGgsXyxULnRhYmxlcykpfSkoImNsckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4ganQoQnQoYSku'@; put 'JGltcGxpY2l0LmV4cGFuZGVkPWgpfSksbWUoMSwicCIsMzcpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdCxfPVZlKDIpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS50YWJsZU9uQ2xpY2soZi5UQUJMRVVSSSxmLF8pKX0pLHF0KDIsImNsci1pY29uIiwz'@; put 'OCksTmUoMykseWUoKSxKZSg0LFpRZSw2LDMsImNsci10cmVlLW5vZGUiLDEpLEplKDUsWVFlLDQsMywiY2xyLXRyZWUtbm9kZSIsMikseWUoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZHIoImNsci1leHBhbmRlZCIsYS5leHBhbmRlZCksUmUoImNsckV4cGFuZGVkIixhLmV4cGFu'@; put 'ZGVkKSgiY2xyTG9hZGluZyIsYS5sb2FkaW5nQ29sdW1ucyYmIWEuY29sdW1ucyksQ2UoMSksUmUoImlkIixhLlRBQkxFVVJJKSxDZSgyKSxncigiICIsYS5UQUJMRU5BTUUsIiAiKSxDZSgxKSxSZSgibmdJZiIsYS5jb2x1bW5zKSxDZSgxKSxSZSgibmdGb3JPZiIsYS5jb2x1bW5zKX19ZnVu'@; put 'Y3Rpb24gR1FlKGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIsMzEpLHh0KCJjbGljayIsZnVuY3Rpb24oaCl7QnQoYSk7Y29uc3QgZj1WZSgpLiRpbXBsaWNpdCxfPVZlKCk7cmV0dXJuIGp0KF8udHJlZU5vZGVDbGlja2VkKGgsZixfLmxpYnJhcnlMaXN0'@; put 'KSl9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLiRpbXBsaWNpdC5leHBhbmRlZD1oKX0pLG1lKDEsInAiLDMyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpLiRpbXBsaWNpdCxmPVZlKCk7cmV0dXJuIGYubGli'@; put 'PWguTElCUkFSWUlELGp0KGYubGlicmFyeU9uQ2xpY2soZi5saWJ8fCIiLGgpKX0pLHF0KDIsImNsci1pY29uIiwzMyksTmUoMykseWUoKSxKZSg0LGpRZSw2LDMsImNsci10cmVlLW5vZGUiLDEpLEplKDUsV1FlLDYsOCwiY2xyLXRyZWUtbm9kZSIsMzQpLHllKCl9aWYoMiZjKXtjb25zdCBh'@; put 'PVZlKCkuJGltcGxpY2l0O2RyKCJjbHItZXhwYW5kZWQiLGEuZXhwYW5kZWQpLFJlKCJjbHJFeHBhbmRlZCIsYS5leHBhbmRlZCkoImNsckxvYWRpbmciLGEubG9hZGluZ1RhYmxlcyYmIWEudGFibGVzKSxDZSgzKSxncigiICIsYS5MSUJSQVJZTkFNRSwiICIpLENlKDEpLFJlKCJuZ0lmIixh'@; put 'LnRhYmxlcyksQ2UoMSksUmUoIm5nRm9yT2YiLGEudGFibGVzKX19ZnVuY3Rpb24gJFFlKGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSxHUWUsNiw3LCJjbHItdHJlZS1ub2RlIiwzMCksenIoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLFJlKCJuZ0lmIiwhYS5oaWRkZW4mJmEu'@; put 'aW5Gb3JlZ3JvdW5kKX19ZnVuY3Rpb24gcVFlKGMsbCl7MSZjJiYobWUoMCwiZGl2Iiw0MikoMSwic3BhbiIsNDMpLE5lKDIsIiBMb2FkaW5nLi4uICIpLHllKCkoKSl9ZnVuY3Rpb24gS1FlKGMsbCl7MSZjJiYobWUoMCwiZGl2Iiw0NCkscXQoMSwiY2xyLWljb24iLDQ1KSxtZSgyLCJoMyIs'@; put 'NDYpLE5lKDMsIlBsZWFzZSBzZWxlY3QgYSBjb2x1bW4gb3IgdGFibGUiKSx5ZSgpKCkpfWZ1bmN0aW9uIFhRZShjLGwpe2lmKDEmYyYmKG1lKDAsImgzIiw1NSksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLGdyKCIgIixhLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbj9h'@; put 'LmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlKyIuIithLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbjphLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlLCIgIil9fWZ1bmN0aW9uIEpRZShjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsNTMpLEplKDEsWFFlLDIsMSwiaDMiLDU0KSx5ZSgpKSwy'@; put 'JmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUoIm5nSWYiLCFhLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbiYmIWEuY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGUpfX1mdW5jdGlvbiBRUWUoYyxsKXtpZigxJmMmJihtZSgwLCJzcGFuIiksTmUoMSksbWUoMiwiYSIsNTYpLE5lKDMpLHllKCks'@; put 'TmUoNCkseWUoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLGdyKCIgIixhLmxpbmVhZ2VUYWJsZU5hbWUuc3BsaXQoIi4iKVswXSwiLiIpLENlKDEpLFJlKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvZGF0YS8iK2EubGluZWFnZVRhYmxlTmFtZSksQ2UoMSksb3IoYS5saW5lYWdlVGFibGVOYW1l'@; put 'LnNwbGl0KCIuIilbMV0pLENlKDEpLGdyKCIiLGEubGluZWFnZUNvbHVtbk5hbWUubGVuZ3RoPjA/Ii4iK2EubGluZWFnZUNvbHVtbk5hbWU6IiIsIiAiKX19ZnVuY3Rpb24gZWV0KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw2NikseHQoImNsaWNrIixmdW5jdGlvbigp'@; put 'e3JldHVybiBCdChhKSxqdChWZSg0KS5kb3dubG9hZFBORygpKX0pLE5lKDEsIiBQTkcgIikseWUoKX19ZnVuY3Rpb24gdGV0KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2Iiw2NikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSg0KS5kb3dubG9h'@; put 'ZENTVigpKX0pLE5lKDEsIiBDU1YgIikseWUoKX19ZnVuY3Rpb24gbmV0KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiLDY1KSgxLCJkaXYiLDY2KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLmRvd25sb2FkU1ZH'@; put 'KCkpfSksTmUoMiwiU1ZHIikseWUoKSxKZSgzLGVldCwyLDAsImRpdiIsNjcpLG1lKDQsImRpdiIsNjYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMykuZG93bmxvYWREb3QoKSl9KSxOZSg1LCJEb3QiKSx5ZSgpLEplKDYsdGV0LDIsMCwiZGl2Iiw2NykseWUo'@; put 'KX1pZigyJmMpe2NvbnN0IGE9VmUoMyk7Q2UoMyksUmUoIm5nSWYiLCFhLmhlbHBlclNlcnZpY2UuaXNNaWNyb3NvZnQpLENlKDMpLFJlKCJuZ0lmIixhLmZsYXRkYXRhKX19ZnVuY3Rpb24gcmV0KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWNoZWNrYm94LXdyYXBwZXIi'@; put 'LDY4KSgxLCJpbnB1dCIsNjkpLHh0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLmdlbmVyYXRlR3JhcGgoKSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLnJlZnJlc2hDYWNoZT1oKX0pLHllKCksbWUoMiwibGFi'@; put 'ZWwiKSxOZSgzLCJSZWZyZXNoIENhY2hlIikseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgzKTtDZSgxKSxSZSgibmdNb2RlbCIsYS5yZWZyZXNoQ2FjaGUpfX1mdW5jdGlvbiBpZXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDU3KSgxLCJidXR0b24iLDU4KSx4dCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmxpbWl0RG90RGVwdGg9ITApfSksTmUoMiwiIExpbWl0IGRlcHRoICIpLHllKCksbWUoMywiZGl2Iiw1OSkoNCwiZGl2Iiw2MCkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoMik7cmV0dXJuIGgu'@; put 'Zm9yd2FyZExpbmVhZ2U9ITEsanQoaC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJjb2x1bW4iKT9oLm9uR2VuZXJhdGVDbGljaygpOmgub25HZW5lcmF0ZUdyYXBoVGFibGVDbGljaygpKX0pLHF0KDUsImlucHV0Iiw2MSksbWUoNiwibGFiZWwiKSxOZSg3LCJCYWNrd2FyZCIpLHllKCkoKSxtZSg4'@; put 'LCJkaXYiLDYwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4gaC5mb3J3YXJkTGluZWFnZT0hMCxqdChoLnJvdXRlci51cmwuaW5jbHVkZXMoImNvbHVtbiIpP2gub25HZW5lcmF0ZUNsaWNrKCk6aC5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkp'@; put 'fSkscXQoOSwiaW5wdXQiLDYxKSxtZSgxMCwibGFiZWwiKSxOZSgxMSwiRm9yd2FyZCIpLHllKCkoKSgpLG1lKDEyLCJjbHItZHJvcGRvd24iLDYyKSgxMywiYnV0dG9uIiw2MyksTmUoMTQsIiBEb3dubG9hZCAiKSxxdCgxNSwiY2xyLWljb24iLDE5KSx5ZSgpLEplKDE2LG5ldCw3LDIsImNs'@; put 'ci1kcm9wZG93bi1tZW51IiwyMCkseWUoKSxKZSgxNyxyZXQsNCwxLCJjbHItY2hlY2tib3gtd3JhcHBlciIsNjQpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpO0NlKDUpLFJlKCJjaGVja2VkIiwhYS5mb3J3YXJkTGluZWFnZSksQ2UoNCksUmUoImNoZWNrZWQiLGEuZm9yd2FyZExpbmVh'@; put 'Z2UpLENlKDQpLFJlKCJkaXNhYmxlZCIsIWEuY29sdW1uJiYhYS50YWJsZSksQ2UoNCksUmUoIm5nSWYiLGEuY29sdW1uKX19ZnVuY3Rpb24gb2V0KGMsbCl7MSZjJiYobWUoMCwic3BhbiIsNzMpLE5lKDEsIiBMb2FkaW5nLi4uICIpLHllKCkpfWZ1bmN0aW9uIHNldChjLGwpezEmYyYmcXQo'@; put 'MCwic3BhbiIsNDMpfWZ1bmN0aW9uIGFldChjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsNzQpKDEsImRpdiIsNzUpLEplKDIsc2V0LDEsMCwic3BhbiIsNzYpLHllKCkscXQoMywiZGl2Iiw3NykseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDIpLFJlKCJuZ0lmIixhLmdyYXBoUmVuZGVy'@; put 'aW5nKX19ZnVuY3Rpb24gY2V0KGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IikoMSwiZGl2Iiw3MCksSmUoMixvZXQsMiwwLCJzcGFuIiw3MSksSmUoMyxhZXQsNCwxLCJkaXYiLDcyKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtkcigibXQtMiIsYS50YWJsZUZsYWcpLENlKDIpLFJlKCJu'@; put 'Z0lmIixhLmdyYXBoTG9hZGluZyksQ2UoMSksUmUoIm5nSWYiLCFhLmdyYXBoTG9hZGluZyl9fWZ1bmN0aW9uIHVldChjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsSlFlLDIsMSwiZGl2Iiw0NyksbWUoMiwiZGl2Iiw0OCkoMywic2VjdGlvbiIsNDkpKDQsImRpdiIsNTApLEplKDUsUVFlLDUs'@; put 'NCwic3BhbiIsNykseWUoKSxKZSg2LGlldCwxOCw0LCJkaXYiLDUxKSx5ZSgpLEplKDcsY2V0LDQsNCwiZGl2Iiw1MikseWUoKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgxKSxSZSgibmdJZiIsIWEuZ3JhcGhDb250YWluZXIpLENlKDQpLFJlKCJuZ0lmIixhLmxpbmVhZ2VUYWJsZU5h'@; put 'bWUubGVuZ3RoPjApLENlKDEpLFJlKCJuZ0lmIixhLmdyYXBoQ29udGFpbmVyKSxDZSgxKSxSZSgibmdJZiIsYS5ncmFwaENvbnRhaW5lcil9fWZ1bmN0aW9uIGRldChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImRpdiIsNjYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'QnQoYSksanQoVmUoMikucmVuZGVyVG9Eb3dubG9hZCgiUE5HIikpfSksTmUoMSwiIFBORyAiKSx5ZSgpfX1mdW5jdGlvbiBoZXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItZHJvcGRvd24tbWVudSIsNjUpKDEsImRpdiIsNjYpLHh0KCJjbGljayIsZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gQnQoYSksanQoVmUoKS5yZW5kZXJUb0Rvd25sb2FkKCJTVkciKSl9KSxOZSgyLCJTVkciKSx5ZSgpLEplKDMsZGV0LDIsMCwiZGl2Iiw2NyksbWUoNCwiZGl2Iiw2NikseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKTtyZXR1cm4gaC5kb3dubG9hZERvdCgp'@; put 'LGp0KGguY2FuY2VsUmVuZGVyaW5nR3JhcGgoKSl9KSxOZSg1LCIgRG90ICIpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoKTtDZSgzKSxSZSgibmdJZiIsIWEuaGVscGVyU2VydmljZS5pc01pY3Jvc29mdCl9fWNvbnN0IGZldD1GKDE2Njc2KTtsZXQgRlQ9KCgpPT57Y2xhc3MgY3tjb25z'@; put 'dHJ1Y3RvcihhLGQsaCxmLF8sVCxXLGllKXt0aGlzLmxpY2VuY2VTZXJ2aWNlPWEsdGhpcy5zYXNTZXJ2aWNlPWQsdGhpcy5yb3V0ZT1oLHRoaXMucm91dGVyPWYsdGhpcy5sb2NhdGlvbj1fLHRoaXMuZXZlbnRTZXJ2aWNlPVQsdGhpcy5sb2dnZXJTZXJ2aWNlPVcsdGhpcy5oZWxwZXJTZXJ2'@; put 'aWNlPWllLHRoaXMuc3dpdGNoRmxhZz0hMSx0aGlzLnRhYmxlRmxhZz0hMCx0aGlzLmZvcndhcmRMaW5lYWdlPSExLHRoaXMuZmxhdGRhdGE9W10sdGhpcy5ncmFwaExvYWRpbmc9ITEsdGhpcy5ncmFwaFJlbmRlcmluZz0hMSx0aGlzLmdyYXBoQ29udGFpbmVyPSExLHRoaXMudml6SW5wdXQ9'@; put 'IiIsdGhpcy5saWJyYXJpZXNQYWdpbmc9ITEsdGhpcy5saWJyYXJ5VGFibGVzUmVmPSIiLHRoaXMubGlicmFyaWVzU2VhcmNoPSIiLHRoaXMudGFibGVDb2x1bW5zUmVmPSIiLHRoaXMubGluZWFnZVRhYmxlTmFtZT0iIix0aGlzLmxpbmVhZ2VDb2x1bW5OYW1lPSIiLHRoaXMubGliPW51bGws'@; put 'dGhpcy50YWJsZURpc2FibGU9ITEsdGhpcy5yZWZyZXNoQ2FjaGU9ITEsdGhpcy5jdXJyZW50TGluZWFnZVBhdGhMaWJUYWJsZT0iIix0aGlzLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbj0iIix0aGlzLmxhcmdlRG90RmlsZUxpbmVzPW51bGwsdGhpcy5sYXJnZURvdEZpbGVMaW1pdD0xZTMs'@; put 'dGhpcy5saW1pdERvdERlcHRoPSExLHRoaXMucGVuZGluZ1JlbmRlckRvd25sb2FkPW51bGwsdGhpcy5kZWJvdW5jZVRpbWU9MjAwfXNob3dUYWJsZVNlbGVjdCgpe3RoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxlRmxhZ310YWJsZU9uQ2xpY2soYSxkLGgsZj0hMSl7dmFyIF89dGhpcztyZXR1'@; put 'cm4gZmkoZnVuY3Rpb24qKCl7ZC5jb2x1bW5zPyhkLmV4cGFuZGVkPSFkLmV4cGFuZGVkLCEwPT09ZC5leHBhbmRlZCYmKF8udGFibGU9YSxmfHxfLm9uR2VuZXJhdGVHcmFwaFRhYmxlQ2xpY2soKSkpOihkLmV4cGFuZGVkPSFkLmV4cGFuZGVkLGQubG9hZGluZ0NvbHVtbnM9ITAsXy50YWJs'@; put 'ZT1hLF8uY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGU9ZC5MSUJOQU1FKyIuIitkLlRBQkxFTkFNRSx5aWVsZCBfLnNlbGVjdFRhYmxlKGEsZCksZnx8Xy5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkpLF8uY29sbGFwc2VUcmVlSXRlbXMoaC50YWJsZXMsZCl9KSgpfXNlbGVjdFRhYmxl'@; put 'KGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7aC5jb2x1bW5zTGlzdD1bXTtsZXQgZj17U0FTQ29udHJvbFRhYmxlOlt7dGFibGV1cmk6YX1dfTt5aWVsZCBoLnNhc1NlcnZpY2UucmVxdWVzdCgibGluZWFnZS9nZXRtZXRhY29scyIsZikudGhlbihfPT57aC5jb2x1bW5z'@; put 'TGlzdD1fLm1ldGFjb2xzLGguY29sdW1uc0xpc3QmJmguY29sdW1uc0xpc3QubGVuZ3RoPjAmJihkLmNvbHVtbnM9aC5jb2x1bW5zTGlzdCxkLmV4cGFuZGVkPSEwLGQubG9hZGluZ0NvbHVtbnM9ITEpfSkuY2F0Y2goXz0+XyksaC5zZXRHbG9iYWxEYXRhKCl9KSgpfWxvYWRNb3JlTGlicmFy'@; put 'aWVzKCl7dGhpcy5saWJyYXJpZXNQYWdpbmd8fCh0aGlzLmxpYnJhcmllc1BhZ2luZz0hMCx0aGlzLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyh0aGlzLmxpYnJhcnlMaXN0LCEwKSx0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSl9Y29sbGFwc2VUcmVlSXRlbXMoYSxkKXthLmZvckVh'@; put 'Y2goaD0+e0pTT04uc3RyaW5naWZ5KGgpIT09SlNPTi5zdHJpbmdpZnkoZCkmJihoLmV4cGFuZGVkPSExKX0pfXRyZWVOb2RlQ2xpY2tlZChhLGQsaCl7IkNvbGxhcHNlIj09PWEudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKGgsZCl9bGlicmFyeU9uQ2xpY2soYSxkKXt2'@; put 'YXIgaD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtkLmluRm9yZWdyb3VuZD0hMCxkLnRhYmxlcz9kLmV4cGFuZGVkPSFkLmV4cGFuZGVkOihkLmxvYWRpbmdUYWJsZXM9ITAseWllbGQgaC5zZWxlY3RMaWJyYXJ5KGEsZCkpLGguY29sbGFwc2VUcmVlSXRlbXMoaC5saWJyYXJ5TGlzdCxk'@; put 'KX0pKCl9c2VsZWN0TGlicmFyeShhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2gudGFibGVzTGlzdD1bXSxoLmNvbHVtbnNMaXN0PVtdO2xldCBmPXtTQVNDb250cm9sVGFibGU6W3tsaWJ1cmk6YX1dfTt5aWVsZCBoLnNhc1NlcnZpY2UucmVxdWVzdCgibGluZWFnZS9n'@; put 'ZXRtZXRhdGFibGVzIixmKS50aGVuKF89PntoLnRhYmxlc0xpc3Q9Xy5tZXRhdGFibGVzLGgudGFibGVzTGlzdCYmaC50YWJsZXNMaXN0Lmxlbmd0aD4wJiYoZC50YWJsZXM9aC50YWJsZXNMaXN0LGQuZXhwYW5kZWQ9ITApLGguc2V0R2xvYmFsRGF0YSgpfSkuY2F0Y2goXz0+XyksZC5sb2Fk'@; put 'aW5nVGFibGVzPSExfSkoKX1jb2x1bW5PbkNsaWNrKGEsZCxoKXt0aGlzLmxpYj1kLkxJQlJBUllJRCx0aGlzLnRhYmxlPWguVEFCTEVVUkksdGhpcy5jb2x1bW49YS5DT0xVUkksdGhpcy5zZXRHbG9iYWxEYXRhKCksdGhpcy5vbkdlbmVyYXRlQ2xpY2soKX10cmVlT25GaWx0ZXIoYSxkKXt0'@; put 'aGlzLmhlbHBlclNlcnZpY2UudHJlZU9uRmlsdGVyKGEsZCl9bGlicmFyeU9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLmxpYnJhcnlMaXN0LHRoaXMubGlicmFyaWVzU2VhcmNoLCJMSUJSQVJZTkFNRSIpLEduLmxpbmVhZ2UubGlicmFyaWVzU2Vh'@; put 'cmNoPXRoaXMubGlicmFyaWVzU2VhcmNofWxpYkNvbHVtbkFjdGl2ZShhKXtpZighdGhpcy5jb2x1bW4pcmV0dXJuITE7bGV0IGQ9YS5zcGxpdCgiXFwiKSxoPXRoaXMuY29sdW1uLnNwbGl0KCJcXCIpO3JldHVybiBkW2QubGVuZ3RoLTFdPT1oW2gubGVuZ3RoLTFdfXNldEdsb2JhbERhdGEo'@; put 'KXtHbi5saW5lYWdlLmxpYnJhcnlMaXN0PXRoaXMubGlicmFyeUxpc3QsR24ubGluZWFnZS50YWJsZXNMaXN0PXRoaXMudGFibGVzTGlzdCxHbi5saW5lYWdlLmNvbHVtbnNMaXN0PXRoaXMuY29sdW1uc0xpc3QsR24ubGluZWFnZS5saWI9dGhpcy5saWIsR24ubGluZWFnZS50YWJsZT10aGlz'@; put 'LnRhYmxlLEduLmxpbmVhZ2UuY29sdW1uPXRoaXMuY29sdW1ufWxvYWRHbG9iYWxEYXRhKCl7dGhpcy5saWJyYXJ5TGlzdD1Hbi5saW5lYWdlLmxpYnJhcnlMaXN0LHRoaXMudGFibGVzTGlzdD1Hbi5saW5lYWdlLnRhYmxlc0xpc3QsdGhpcy5jb2x1bW5zTGlzdD1Hbi5saW5lYWdlLmNvbHVt'@; put 'bnNMaXN0LHRoaXMubGlicmFyaWVzU2VhcmNoPUduLmxpbmVhZ2UubGlicmFyaWVzU2VhcmNofXJlc3VibWl0V2l0aE1heERlcHRoKGEpe2xldCBkO3RoaXMuY2FuY2VsUmVuZGVyaW5nR3JhcGgoKSxhJiYoZD17bWF4X2RlcHRoOmF9KSx0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSx7cmVsYXRp'@; put 'dmVUbzp0aGlzLnJvdXRlLHF1ZXJ5UGFyYW1zOmR9KX1uZ09uSW5pdCgpe0duLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSJ2aWV3L2xpbmVhZ2UiO2xldCBhPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnJlbG9hZDtpZih2b2lkIDAhPT1hKXtsZXQgZD10aGlzLnJvdXRlci51cmw7InJl'@; put 'bG9hZCI9PT1hP2xvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaXJzdExvYWQiKT8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpcnN0TG9hZCIpLHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGQuc2xpY2UoMCxkLmxhc3RJbmRleE9mKCIvIikpKSk6KGxvY2FsU3RvcmFnZS5maXJzdExvYWQ9'@; put 'ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0sMmUzKSk6dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoZC5zbGljZSgwLGQubGFzdEluZGV4T2YoIi8iKSkpfXRoaXMuaW5pdERhdGEoKX1pbml0RGF0YSgpe3ZhciBhPXRoaXM7cmV0dXJuIGZpKGZ1'@; put 'bmN0aW9uKigpe0duLmxpbmVhZ2UubGlicmFyeUxpc3QmJihHbi5saW5lYWdlLmxpYnJhcnlMaXN0Lmxlbmd0aD4wP2EubG9hZEdsb2JhbERhdGEoKTp5aWVsZCBhLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXdsaWJzIixudWxsKS50aGVuKF89PnthLmxpYnJhcnlMaXN0PV8uc2Fz'@; put 'bGlicyxhLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyhhLmxpYnJhcnlMaXN0KSxhLmxpYnJhcnlMaXN0JiZhLmxpYnJhcnlMaXN0Lmxlbmd0aD4wJiYoYS5saWI9YS5saWJyYXJ5TGlzdFswXS5MSUJSQVJZSUQpLGEuc2V0R2xvYmFsRGF0YSgpfSkuY2F0Y2goXz0+XyksYS5yb3V0'@; put 'ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoXz0+e2Eub25Sb3V0ZUNoYW5nZSgpfSksYS5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKF89PnthLm9uUm91dGVDaGFuZ2UoKX0pKX0pKCl9b25Sb3V0ZUNoYW5nZSgpe2NsZWFyVGltZW91dCh0aGlzLmRlYm91bmNlVGltZW91dCksdGhpcy5kZWJvdW5j'@; put 'ZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e2NvbnN0IGE9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuY29sdXJpLGQ9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZGlyZWN0aW9uLGg9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudGFibGVpZCxmPXRoaXMucm91dGUuc25hcHNob3Qu'@; put 'cXVlcnlQYXJhbXMubWF4X2RlcHRoO2EmJmQmJih0aGlzLmZvcndhcmRMaW5lYWdlPSJGT1JXQVJEIj09PWQsdGhpcy5jb2x1bW49YSx0aGlzLmdlbmVyYXRlR3JhcGgoYSxkLGYpKSwhdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJjb2x1bW4iKSYmaCYmZCYmKHRoaXMuZm9yd2FyZExpbmVh'@; put 'Z2U9IkZPUldBUkQiPT09ZCx0aGlzLnRhYmxlPWgsdGhpcy5nZW5lcmF0ZUdyYXBoVGFibGVMZXZlbChoLGQsZikpfSx0aGlzLmRlYm91bmNlVGltZSl9bmdBZnRlckNvbnRlbnRJbml0KCl7fWRpcmVjdGlvblRleHQoKXtyZXR1cm4gdGhpcy5mb3J3YXJkTGluZWFnZT8iRk9SV0FSRCI6IlJF'@; put 'VkVSU0UifW9uR2VuZXJhdGVDbGljaygpe2xldCBhPXRoaXMuZGlyZWN0aW9uVGV4dCgpLGQ9dGhpcy5jb2x1bW4/dGhpcy5jb2x1bW4uc3Vic3RyaW5nKHRoaXMuY29sdW1uLmluZGV4T2YoIlxcIikrMSk6bnVsbDt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9saW5lYWdlL2Nv'@; put 'bHVtbi8iK2QrIi8iK2EpfW9uR2VuZXJhdGVHcmFwaFRhYmxlQ2xpY2soKXtsZXQgYT10aGlzLmRpcmVjdGlvblRleHQoKSxkPXRoaXMudGFibGUuaW5jbHVkZXMoIlxcIik/dGhpcy50YWJsZS5zcGxpdCgiXFwiKVsxXTp0aGlzLnRhYmxlO3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92'@; put 'aWV3L2xpbmVhZ2UvIitkKyIvIithKX1nZW5lcmF0ZUdyYXBoVGFibGVMZXZlbChhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7bGV0IF89e1NBU0NvbnRyb2xUYWJsZTpbe3RhYmxlX2lkOmEsZGlyZWN0aW9uOmR8fGYuZGlyZWN0aW9uVGV4dCgpfV19O3JldHVybiJ1'@; put 'bmRlZmluZWQiPT09Xy5TQVNDb250cm9sVGFibGVbMF0udGFibGVfaWQmJmYuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKCJnZW5lcmF0ZUdyYXBoVGFibGVMZXZlbCgpIiwidGFibGVfaWQgaXMgdW5kZWZpbmVkLiIsdm9pZCAwLCJGcm9udGVuZCBlcnJvciIpLGgmJihfLlNBU0NvbnRy'@; put 'b2xUYWJsZVswXS5tYXhfZGVwdGg9aCksZi50YWJsZUZsYWc9ITEsZi5zd2l0Y2hGbGFnPSEwLGYuZ3JhcGhDb250YWluZXI9ITAsZi5ncmFwaExvYWRpbmc9ITAsZi52aXpJbnB1dD0iIixuZXcgUHJvbWlzZSgoVCxXKT0+e2Yuc2FzU2VydmljZS5yZXF1ZXN0KCJsaW5lYWdlL2ZldGNodGFi'@; put 'bGVsaW5lYWdlIixfKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGllPWZpKGZ1bmN0aW9uKihwZSl7aWYocGUuZmxhdGRhdGEubGVuZ3RoPjAmJmYubGljZW5jZVNlcnZpY2UuY2hlY2tMaW5lYWdlTGltaXQoKSlyZXR1cm4gZi5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiTm90aWNlIiwiWW91'@; put 'IGhhdmUgcmVhY2hlZCBkYWlseSBtYXhpbXVtIG9mIGxpbmVhZ2UgZGlhZ3JhbSByZW5kZXJpbmdzLiBUbyB1bmxvY2sgYWRkaXRpb25hbCBkaWFncmFtcywgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIiksdm9pZCBmLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9saW5l'@; put 'YWdlIik7aWYoInN0cmluZyI9PXR5cGVvZiBwZSlyZXR1cm4gZi52aXpJbnB1dD0iZGlncmFwaCBHIHtTQVMgRXJyb3J9Iix2b2lkIGYuYnVpbGRHcmFwaCgpO2YubGluZWFnZVRhYmxlTmFtZT1wZS5pbmZvWzBdLkxJQlJFRisiLiIrcGUuaW5mb1swXS5UQUJMRU5BTUU7bGV0IHdlPXBlLmZp'@; put 'bmFsZmluYWwsRWU9IiI7Zm9yKGxldCBaZT0wO1plPHdlLmxlbmd0aDtaZSsrKUVlKz11bmVzY2FwZSh3ZVtaZV0uTElORSkrIlxuIjtpZihmLmZsYXRkYXRhPXBlLmZsYXRkYXRhLGYubGlicmFyeUxpc3Qpe2xldCBaZT1mLmxpYnJhcnlMaXN0LmZpbmQoaXQ9PnBlLmluZm9bMF0uTElCVVJJ'@; put 'LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoaXQuTElCUkFSWUlELnRvVXBwZXJDYXNlKCkpKTtpZihaZSl7bGV0IGl0O2lmKHlpZWxkIGYubGlicmFyeU9uQ2xpY2soWmUuTElCUkFSWUlELFplKSxaZS50YWJsZXMmJihpdD1aZS50YWJsZXMuZmluZChldD0+ZXQuVEFCTEVVUkkudG9VcHBlckNh'@; put 'c2UoKS5pbmNsdWRlcyhwZS5pbmZvWzBdLlRBQkxFSUQudG9VcHBlckNhc2UoKSkpLGl0KSl7aWYoZi50YWJsZT1pdC5UQUJMRVVSSSxmLnRhYmxlKXtjb25zdCBldD1mLnRhYmxlLnJlcGxhY2UoIlxcIiwiXFxcXCIpO3NldFRpbWVvdXQoKCk9PntsZXQgeXQ9ZG9jdW1lbnQucXVlcnlTZWxl'@; put 'Y3RvcihgW2lkPScke2V0fSddYCk7eXQmJnl0LnNjcm9sbEludG9WaWV3KCl9LDFlMyl9Zi50YWJsZU9uQ2xpY2soaXQuVEFCTEVVUkksaXQsWmUsdm9pZCAwIT09ZCl9WmUmJihaZS5leHBhbmRlZD0hMCksaXQmJihpdC5leHBhbmRlZD0hMCl9fWYudml6SW5wdXQ9RWV8fCJkaWdyYXBoIEcg'@; put 'e05vIExpbmVhZ2UgQXZhaWxhYmxlfSIsZi52aXpJbnB1dD1mLnZpeklucHV0LnJlcGxhY2UoL1xzZHM6L2csIlxuZHM6IikucmVwbGFjZSgvXHNcbi9nLCJcbiIpLGYuaWRsb29rdXA9cGUuaWRsb29rdXAscGUuZmluYWxmaW5hbC5sZW5ndGg+Zi5sYXJnZURvdEZpbGVMaW1pdD9mLmxhcmdl'@; put 'RG90RmlsZUxpbmVzPXBlLmZpbmFsZmluYWwubGVuZ3RoOmYuYnVpbGRHcmFwaCgpLFQoKX0pO3JldHVybiBmdW5jdGlvbihwZSl7cmV0dXJuIGllLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLmNhdGNoKGllPT57Zi5ncmFwaExvYWRpbmc9ITEsZi5ncmFwaENvbnRhaW5lcj0hMX0pfSl9'@; put 'KSgpfWNhbmNlbFJlbmRlcmluZ0dyYXBoKCl7dGhpcy52aXpJbnB1dD0iZGlncmFwaCBHIHtObyBMaW5lYWdlIEF2YWlsYWJsZX0iLHRoaXMubGFyZ2VEb3RGaWxlTGluZXM9bnVsbCx0aGlzLmJ1aWxkR3JhcGgoKX1jb250aW51ZVJlbmRlcmluZ0dyYXBoKCl7dGhpcy5sYXJnZURvdEZpbGVM'@; put 'aW5lcz1udWxsLHRoaXMuYnVpbGRHcmFwaCgoKT0+e2lmKG51bGwhPT10aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZCl7c3dpdGNoKHRoaXMucGVuZGluZ1JlbmRlckRvd25sb2FkKXtjYXNlIlBORyI6dGhpcy5kb3dubG9hZFBORygpO2JyZWFrO2Nhc2UiU1ZHIjp0aGlzLmRvd25sb2FkU1ZH'@; put 'KCl9dGhpcy5wZW5kaW5nUmVuZGVyRG93bmxvYWQ9bnVsbCx0aGlzLnZpeklucHV0PSJkaWdyYXBoIEcge05vIExpbmVhZ2UgQXZhaWxhYmxlfSIsdGhpcy5idWlsZEdyYXBoKCl9fSl9cmVuZGVyVG9Eb3dubG9hZChhKXtzd2l0Y2goYSl7Y2FzZSJQTkciOnRoaXMucGVuZGluZ1JlbmRlckRv'@; put 'd25sb2FkPSJQTkciLHRoaXMuY29udGludWVSZW5kZXJpbmdHcmFwaCgpO2JyZWFrO2Nhc2UiU1ZHIjp0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZD0iU1ZHIix0aGlzLmNvbnRpbnVlUmVuZGVyaW5nR3JhcGgoKX19bWFrZUdyYXBoTGlua2FibGUoYSl7bGV0IGQ9ZG9jdW1lbnQucXVlcnlT'@; put 'ZWxlY3RvckFsbCgiI2dyYXBoIC5ub2RlIik7Zm9yKGxldCBoIG9mIGQpe2xldCBULGY9aC5xdWVyeVNlbGVjdG9yKCJ0aXRsZSIpLmlubmVySFRNTCxfPWEuZmluZChXPT5XLk1FVEFJRD09PWYpO18mJihUPSJUQUJMRSI9PT1fLk1FVEFUWVBFPyIvdmlldy9kYXRhLyIrXy5NRVRBTkFNRToi'@; put 'L3ZpZXcvbWV0YWRhdGEvb2JqZWN0LyIrXy5NRVRBSUQsaC5jbGFzc0xpc3QuYWRkKCJjdXJzb3ItcG9pbnRlciIpLGguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFc9Pnt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFQpfSkpfX1nZW5lcmF0ZUdyYXBoKGEsZCxoKXt2YXIgZj10aGlzO3Jl'@; put 'dHVybiBmaShmdW5jdGlvbiooKXtsZXQgXz17U0FTQ29udHJvbFRhYmxlOlt7Y29sdXJpOmF8fGYuY29sdW1uLGRpcmVjdGlvbjpkfHxmLmRpcmVjdGlvblRleHQoKSxyZWZyZXNoOmYucmVmcmVzaENhY2hlPzE6MH1dfTtyZXR1cm4idW5kZWZpbmVkIj09PV8uU0FTQ29udHJvbFRhYmxlWzBd'@; put 'LmNvbHVyaSYmZi5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoImdlbmVyYXRlR3JhcGgoKSIsImNvbHVyaSBpcyB1bmRlZmluZWQuIix2b2lkIDAsIkZyb250ZW5kIGVycm9yIiksaCYmKF8uU0FTQ29udHJvbFRhYmxlWzBdLm1heF9kZXB0aD1oKSxmLnRhYmxlRmxhZz0hMSxmLnN3aXRj'@; put 'aEZsYWc9ITAsZi5ncmFwaENvbnRhaW5lcj0hMCxmLmdyYXBoTG9hZGluZz0hMCxmLnZpeklucHV0PSIiLG5ldyBQcm9taXNlKChULFcpPT57Zi5zYXNTZXJ2aWNlLnJlcXVlc3QoImxpbmVhZ2UvZmV0Y2hjb2xsaW5lYWdlIixfKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGllPWZpKGZ1bmN0aW9u'@; put 'KihwZSl7aWYocGUuZmxhdGRhdGEubGVuZ3RoPjAmJmYubGljZW5jZVNlcnZpY2UuY2hlY2tMaW5lYWdlTGltaXQoKSlyZXR1cm4gZi5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiTm90aWNlIiwiWW91IGhhdmUgcmVhY2hlZCBkYWlseSBtYXhpbXVtIG9mIGxpbmVhZ2UgZGlhZ3JhbSBy'@; put 'ZW5kZXJpbmdzLiBUbyB1bmxvY2sgYWRkaXRpb25hbCBkaWFncmFtcywgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIiksdm9pZCBmLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9saW5lYWdlIik7aWYoInN0cmluZyI9PXR5cGVvZiBwZSlyZXR1cm4gZi52aXpJbnB1dD0i'@; put 'ZGlncmFwaCBHIHtTQVMgRXJyb3J9Iix2b2lkIGYuYnVpbGRHcmFwaCgpO2YubGluZWFnZVRhYmxlTmFtZT1wZS5pbmZvWzBdLkxJQlJFRisiLiIrcGUuaW5mb1swXS5UQUJOQU1FLGYubGluZWFnZUNvbHVtbk5hbWU9cGUuaW5mb1swXS5DT0xOQU1FLGYuaWRsb29rdXA9cGUuaWRsb29rdXA7'@; put 'bGV0IHdlPXBlLmZyb21zYXMsRWU9IiI7Zm9yKGxldCBaZT0wO1plPHdlLmxlbmd0aDtaZSsrKUVlKz11bmVzY2FwZSh3ZVtaZV0uU1RSSU5HKSsiXG4iO2lmKGYudml6SW5wdXQ9RWV8fCJkaWdyYXBoIEcge05vIExpbmVhZ2UgQXZhaWxhYmxlfSIsZi52aXpJbnB1dD1mLnZpeklucHV0LnJl'@; put 'cGxhY2UoL1xzZHM6L2csIlxuZHM6IikucmVwbGFjZSgvXHNcbi9nLCJcbiIpLGYuZmxhdGRhdGE9cGUuZmxhdGRhdGEsZi5saWJyYXJ5TGlzdCl7bGV0IGl0LFplPWYubGlicmFyeUxpc3QuZmluZChldD0+cGUuaW5mb1swXT8uTElCVVJJPy50b1VwcGVyQ2FzZSgpPy5pbmNsdWRlcyhldD8u'@; put 'TElCUkFSWUlEPy50b1VwcGVyQ2FzZSgpKSk7WmUmJih5aWVsZCBmLmxpYnJhcnlPbkNsaWNrKFplLkxJQlJBUllJRCxaZSksWmUudGFibGVzJiYoaXQ9WmUudGFibGVzLmZpbmQoZXQ9PmV0LlRBQkxFVVJJPT09cGUuaW5mb1swXS5UQUJVUkkpLGl0JiZmLnRhYmxlT25DbGljayhpdC5UQUJM'@; put 'RVVSSSxpdCxaZSwhMCkudGhlbigoKT0+e2xldCBldD1pdC5UQUJMRVVSSTtpZihldCl7Y29uc3QgeXQ9ZXQucmVwbGFjZSgiXFwiLCJcXFxcIik7bGV0IEV0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtpZD0nJHt5dH0nXWApO3NldFRpbWVvdXQoKCk9PntFdCYmKGYubG9nZ2VyU2Vydmlj'@; put 'ZS5sb2coImxpYnJhcnlUb1NlbGVjdCIsWmUpLEV0LnNjcm9sbEludG9WaWV3KCkpfSwxZTMpfX0pKSxaZSYmKFplLmV4cGFuZGVkPSEwKSxpdCYmKGl0LmV4cGFuZGVkPSEwKSl9cGUuZnJvbXNhcy5sZW5ndGg+Zi5sYXJnZURvdEZpbGVMaW1pdD9mLmxhcmdlRG90RmlsZUxpbmVzPXBlLmZy'@; put 'b21zYXMubGVuZ3RoOmYuYnVpbGRHcmFwaCgpLFQoKX0pO3JldHVybiBmdW5jdGlvbihwZSl7cmV0dXJuIGllLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLmNhdGNoKGllPT57Zi5ncmFwaExvYWRpbmc9ITEsZi5ncmFwaENvbnRhaW5lcj0hMX0pfSl9KSgpfWdldFNWR1VSTCgpe2xldCBh'@; put 'PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFwaCIpLGQ9bmV3IFhNTFNlcmlhbGl6ZXIsaD1uZXcgQmxvYihbZC5zZXJpYWxpemVUb1N0cmluZyhhKV0se3R5cGU6ImltYWdlL3N2Zyt4bWwifSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwoaCl9Z2V0U1ZHQmxvYigpe2xldCBhPWRv'@; put 'Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFwaCIpLGQ9bmV3IFhNTFNlcmlhbGl6ZXI7cmV0dXJuIG5ldyBCbG9iKFtkLnNlcmlhbGl6ZVRvU3RyaW5nKGEpXSx7dHlwZToiaW1hZ2Uvc3ZnK3htbCJ9KX1kb3dubG9hZFNWRygpe2lmKFBUKCIjZ3JhcGgiKS5yZXNldFpvb20oKSxuYXZpZ2F0'@; put 'b3IuYXBwVmVyc2lvbi50b1N0cmluZygpLmluZGV4T2YoIi5ORVQiKT4wKXdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYih0aGlzLmdldFNWR0Jsb2IoKSx0aGlzLmNvbnN0cnVjdE5hbWUoInN2ZyIpKTtlbHNle2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTthLmhyZWY9dGhp'@; put 'cy5nZXRTVkdVUkwoKSxhLmRvd25sb2FkPXRoaXMuY29uc3RydWN0TmFtZSgic3ZnIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKX19ZG93bmxvYWRQTkcoKXt2YXIgYT10aGlzO3JldHVybiBmaShmdW5jdGlvbioo'@; put 'KXtQVCgiI2dyYXBoIikucmVzZXRab29tKCksUFFlLnNhdmVTdmdBc1BuZyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZ3JhcGggc3ZnIiksYS5jb25zdHJ1Y3ROYW1lKCJwbmciKSl9KSgpfWRvd25sb2FkQ1NWKCl7bGV0IGE9dGhpcy5mbGF0ZGF0YTtjb25zdCBkPShwZSx3ZSk9Pm51bGw9'@; put 'PT13ZT8iIjp3ZSxoPU9iamVjdC5rZXlzKGFbMF0pO2xldCBmPWEubWFwKHBlPT5oLm1hcCh3ZT0+SlNPTi5zdHJpbmdpZnkocGVbd2VdLGQpKS5qb2luKCIsIikpO2YudW5zaGlmdChoLmpvaW4oIiwiKSk7bGV0IF89Zi5qb2luKCJcclxuIik7dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu'@; put 'dCgiYSIpLFc9bmV3IEJsb2IoW19dLHt0eXBlOiJ0ZXh0L2NzdiJ9KTtpZihuYXZpZ2F0b3IuYXBwVmVyc2lvbi50b1N0cmluZygpLmluZGV4T2YoIi5ORVQiKT4wKXdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYihXLHRoaXMuY29uc3RydWN0TmFtZSgiY3N2IikpO2Vsc2V7dmFyIGllPXdp'@; put 'bmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKFcpO1QuaHJlZj1pZSxULmRvd25sb2FkPXRoaXMuY29uc3RydWN0TmFtZSgiY3N2IiksVC5jbGljaygpLHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGllKSxULnJlbW92ZSgpfX1nZXREb3RVcmwoKXtsZXQgZD1uZXcgQmxvYihbdGhpcy52aXpJ'@; put 'bnB1dF0se3R5cGU6InRleHQvcGxhaW4ifSk7cmV0dXJuIHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGQpfWdldERvdEJsb2IoKXtyZXR1cm4gbmV3IEJsb2IoW3RoaXMudml6SW5wdXRdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pfWRvd25sb2FkRG90KCl7aWYobmF2aWdhdG9yLmFwcFZlcnNp'@; put 'b24udG9TdHJpbmcoKS5pbmRleE9mKCIuTkVUIik+MCl3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IodGhpcy5nZXREb3RCbG9iKCksdGhpcy5jb25zdHJ1Y3ROYW1lKCJ0eHQiKSk7ZWxzZXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YS5ocmVmPXRoaXMuZ2V0RG90VXJs'@; put 'KCksYS5kb3dubG9hZD10aGlzLmNvbnN0cnVjdE5hbWUoInR4dCIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSl9fXNob3dTdmcoKXt3aW5kb3cub3Blbih0aGlzLmdldFNWR1VSTCgpLCJfYmxhbmsiKX1idWlsZEdy'@; put 'YXBoKGEpe3RoaXMuZXZlbnRTZXJ2aWNlLmNsb3NlU2lkZWJhcigpLHRoaXMuZ3JhcGhMb2FkaW5nPSExLHRoaXMuZ3JhcGhSZW5kZXJpbmc9ITAsc2V0VGltZW91dCgoKT0+e1BUKCIjZ3JhcGgiKS56b29tKCEwKS5hZGRJbWFnZSgiaHR0cHM6Ly9kYXRhY29udHJvbGxlci5pby93cC1jb250'@; put 'ZW50L3VwbG9hZHMvMjAyMC8wMS9mYzEucG5nIiwiMzBweCIsIjMwcHgiKS5yZW5kZXJEb3QodGhpcy52aXpJbnB1dCwoKT0+e3RoaXMuZ3JhcGhSZW5kZXJpbmc9ITEsdGhpcy5pZGxvb2t1cCYmdGhpcy5tYWtlR3JhcGhMaW5rYWJsZSh0aGlzLmlkbG9va3VwKSxhJiZhKCl9KX0sMTAwKX1j'@; put 'b25zdHJ1Y3ROYW1lKGEpe2xldCBkPSIiLGg9IiIsZj0iIixfPWZldCgpLmZvcm1hdCgiWVlNTUREX0hIbW0iKTtpZih0aGlzLmxpYnJhcnlMaXN0JiZ0aGlzLmxpYnJhcnlMaXN0Lmxlbmd0aCl7bGV0IFQ9dGhpcy5saWJyYXJ5TGlzdC5maW5kKFc9PlcuTElCUkFSWUlEPT10aGlzLmxpYik7'@; put 'VCYmKGQ9YF8ke1QuTElCUkFSWU5BTUV9YCl9aWYodGhpcy50YWJsZXNMaXN0JiZ0aGlzLnRhYmxlc0xpc3QubGVuZ3RoKXtsZXQgVD10aGlzLnRhYmxlc0xpc3QuZmluZChXPT5XLlRBQkxFVVJJPT10aGlzLnRhYmxlKTtUJiYoaD1gXyR7VC5UQUJMRU5BTUV9YCl9aWYodGhpcy5jb2x1bW5z'@; put 'TGlzdCYmdGhpcy5jb2x1bW5zTGlzdC5sZW5ndGgpe2xldCBUPXRoaXMuY29sdW1uc0xpc3QuZmluZChXPT5XLkNPTFVSST09dGhpcy5jb2x1bW4pO1QmJihmPWBfJHtULkNPTE5BTUV9YCl9cmV0dXJuYCR7dGhpcy5kaXJlY3Rpb25UZXh0KCl9JHtkfSR7aH0ke2Z9XyR7X30uJHthfWB9fXJl'@; put 'dHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KEMwKSx0dChvYSksdHQoR2wpLHR0KERzKSx0dChKZCksdHQodmwpLHR0KHcwKSx0dChUYykpfSxjLlx1MDI3NWNtcD13cih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtbGluZWFnZSJdXSxob3N0QXR0cnM6'@; put 'WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6NTgsdmFyczoxMSxjb25zdHM6W1szLCJzY3JvbGxlZFRvQm90dG9tIl0sWyJjbGFzcyIsInNlYXJjaC1ub2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJ3LTEwMCB0ZXh0LWNlbnRlciIsNCwibmdJZiJd'@; put 'LFsxLCJjb250ZW50LWFyZWEiXSxbMSwiY2FyZCJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsQ2xvc2FibGUiXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJtb2RhbC1m'@; put 'b290ZXIiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiJdLFsxLCJiaWdsaW5lYWdlLXJvdyIsIm1iLTBpIl0sWyJ0eXBlIiwibnVtYmVyIiwibWluIiwiMSIsInBsYWNlaG9sZGVyIiwiTWF4IGRlcHRoIHZhbHVlIiwxLCJjbHItaW5wdXQiLCJtYXgtZGVwdGgtaW5wdXQiXSxbIm1heERlcHRoRG90'@; put 'IiwiIl0sWzEsIm1iLTIwIl0sWzEsImJpZ2xpbmVhZ2Utcm93Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImNsckRyb3Bkb3duVHJpZ2dlciIsIiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLCJtdC0zLW5lZ2F0'@; put 'aXZlIiwzLCJkaXNhYmxlZCJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0Iiw0LCJjbHJJZk9wZW4iXSxbIm1heERlcHRoIiwiIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxh'@; put 'Y2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMi'@; put 'LDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJFeHBhbmRl'@; put 'ZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJyYWNrLXNlcnZlciJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbHItZXhwYW5kZWQiLCJjbGljayIsImNsckV4'@; put 'cGFuZGVkQ2hhbmdlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJUYWJsZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaFRyZWVJbnB1dCIs'@; put 'IiJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiaWQiLCJjbGljayJdLFsic2hhcGUiLCJ0YWJsZSJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkNvbHVtbnMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdl'@; put 'Iiwia2V5dXAiXSxbMSwiY2xyLXRyZWVub2RlLWxpbmsiLDMsImNsaWNrIl0sWyJzaGFwZSIsIm9iamVjdHMiXSxbMSwidy0xMDAiLCJ0ZXh0LWNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSJdLFsxLCJuby10YWJsZS1zZWxlY3RlZCJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5k'@; put 'YXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIiwiaWNvbi1kYy1maWxsIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsiY2xhc3MiLCJjYXJkLWhlYWRlciBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciIsNCwibmdJZiJdLFsxLCJjYXJkLWJsb2Nr'@; put 'Il0sWzEsImZvcm0tYmxvY2siLCJzdyIsInBvc2l0aW9uLXJlbGF0aXZlIiwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsImxpbmFnZS10aXRsZS13cmFwcGVyIiwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIiwiZm9udC13ZWlnaHQtYm9sZCIsInBvc2l0aW9uLWFic29s'@; put 'dXRlIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQiLDQsIm5nSWYiXSxbMywibXQtMiIsNCwibmdJZiJdLFsxLCJjYXJkLWhlYWRlciIsImQtZmxleCIsImZsZXgtY29sdW1uIiwianVzdGlmeS1jb250ZW50LWNlbnRlciJd'@; put 'LFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBwYi0xMCIsNCwibmdJZiJdLFsxLCJ0ZXh0LWNlbnRlciIsInBiLTEwIl0sWzMsInJvdXRlckxpbmsiXSxbMSwiY2xyLWNvbC1tZC0xMiIsInRleHQtY2VudGVyIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWVuZCJdLFsidHlwZSIsImJ1dHRvbiIs'@; put 'MSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWzEsImJ0bi1ncm91cCIsImQtYmxvY2siXSxbMSwicmFkaW8iLCJidG4iLDMsImNsaWNrIl0sWyJ0eXBlIiwicmFkaW8iLCJuYW1lIiwiYnRuLWdyb3VwLWRlbW8tcmFkaW9zIiwzLCJjaGVja2VkIl0sWzEsIm1yLTEwIl0sWyJjbHJE'@; put 'cm9wZG93blRyaWdnZXIiLCIiLDEsImJ0biIsImJ0bi1pbmZvLW91dGxpbmUiLDMsImRpc2FibGVkIl0sWyJjbGFzcyIsImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiXSxbImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xp'@; put 'Y2siXSxbImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIsIm5hbWUiLCJyZWZyZXNoQ2FjaGUiLDMsIm5nTW9kZWwiLCJjaGFuZ2UiLCJuZ01v'@; put 'ZGVsQ2hhbmdlIl0sWzEsInRleHQtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwicG9zaXRpb24tcmVsYXRpdmUiLDQsIm5nSWYiXSxbMSwic3Bpbm5lciJdLFsxLCJwb3NpdGlvbi1yZWxhdGl2ZSJdLFsxLCJncmFwaC1yZW5kZXItc3Bpbm5lciJdLFsi'@; put 'Y2xhc3MiLCJzcGlubmVyIHNwaW5uZXItc20iLDQsIm5nSWYiXSxbImlkIiwiZ3JhcGgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXtpZigxJmEpe2NvbnN0IGg9Vm4oKTttZSgwLCJhcHAtc2lkZWJhciIsMCkseHQoInNjcm9sbGVkVG9Cb3R0b20iLGZ1bmN0aW9uKCl7cmV0dXJuIGQubG9h'@; put 'ZE1vcmVMaWJyYXJpZXMoKX0pLG1lKDEsImNsci10cmVlIiksSmUoMixOUWUsNiwzLCJjbHItdHJlZS1ub2RlIiwxKSxKZSgzLCRRZSwyLDEsIm5nLWNvbnRhaW5lciIsMikseWUoKSxKZSg0LHFRZSwzLDAsImRpdiIsMykseWUoKSxtZSg1LCJkaXYiLDQpKDYsImRpdiIsNSksSmUoNyxLUWUs'@; put 'NCwwLCJkaXYiLDYpLEplKDgsdWV0LDgsNCwibmctY29udGFpbmVyIiw3KSx5ZSgpKCksbWUoOSwiY2xyLW1vZGFsIiw4KSgxMCwiaDMiLDkpLE5lKDExLCJMaW1pdCBEZXB0aCIpLHllKCksbWUoMTIsImRpdiIsMTApKDEzLCJwIiksTmUoMTQsIkVudGVyIHRoZSBkZXB0aCBudW1iZXIgeW91'@; put 'IHdvdWxkIGxpa2UgdG8gbGltaXQgRE9UIHJlbmRlcmluZyB0bzoiKSx5ZSgpKCksbWUoMTUsImRpdiIsMTEpKDE2LCJkaXYiLDEyKSxxdCgxNywiaW5wdXQiLDEzLDE0KSx5ZSgpLG1lKDE5LCJjbHItY29udHJvbC1oZWxwZXIiLDE1KSxOZSgyMCwiVG8gcmVuZGVyIHdpdGggdW5saW1pdGVk'@; put 'IGRlcHRoLCBsZWF2ZSB0aGUgaW5wdXQgZW1wdHkiKSx5ZSgpLG1lKDIxLCJkaXYiLDE2KSgyMiwiYnV0dG9uIiwxNykseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmxpbWl0RG90RGVwdGg9ITF9KSxOZSgyMywiIENhbmNlbCAiKSx5ZSgpLG1lKDI0LCJidXR0b24iLDE3KSx4dCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKCl7QnQoaCk7Y29uc3QgXz0kaSgxOCk7cmV0dXJuIGQucmVzdWJtaXRXaXRoTWF4RGVwdGgoXy52YWx1ZSksanQoZC5saW1pdERvdERlcHRoPSExKX0pLE5lKDI1LCIgUmVzdWJtaXQgIikseWUoKSgpKCkoKSxtZSgyNiwiY2xyLW1vZGFsIiw4KSgyNywiaDMiLDkp'@; put 'LE5lKDI4LCJXYXJuaW5nIikseWUoKSxtZSgyOSwiZGl2IiwxMCkoMzAsInAiKSxOZSgzMSkseWUoKSgpLG1lKDMyLCJkaXYiLDExKSgzMywiZGl2IiwxNikoMzQsInAiKSxOZSgzNSwiUmVuZGVyIGFueXdheSAodGhpcyBtYXkgdGFrZSBhIGxvbmcgdGltZSkiKSx5ZSgpLG1lKDM2LCJidXR0'@; put 'b24iLDE3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY29udGludWVSZW5kZXJpbmdHcmFwaCgpfSksTmUoMzcsIiBSZW5kZXIgIikseWUoKSgpLG1lKDM4LCJkaXYiLDE2KSgzOSwicCIpLE5lKDQwLCJEb3dubG9hZCB0aGUgcmVzdWx0IChQTkcgJiBTVkcgcmVxdWlyZSByZW5k'@; put 'ZXJpbmcpIikseWUoKSxtZSg0MSwiY2xyLWRyb3Bkb3duIikoNDIsImJ1dHRvbiIsMTgpLE5lKDQzLCIgRG93bmxvYWQgIikscXQoNDQsImNsci1pY29uIiwxOSkseWUoKSxKZSg0NSxoZXQsNiwxLCJjbHItZHJvcGRvd24tbWVudSIsMjApLHllKCkoKSxtZSg0NiwiZGl2IiwxNikoNDcsInAi'@; put 'KSxOZSg0OCwiUmVzdWJtaXQgd2l0aCBhIG1heC1kZXB0aCAoc3BlY2lmeSBkZXB0aCkiKSx5ZSgpLHF0KDQ5LCJpbnB1dCIsMTMsMjEpLG1lKDUxLCJidXR0b24iLDE3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoaCk7Y29uc3QgXz0kaSg1MCk7cmV0dXJuIGp0KGQucmVzdWJtaXRXaXRo'@; put 'TWF4RGVwdGgoXy52YWx1ZSkpfSksTmUoNTIsIiBSZXN1Ym1pdCAiKSx5ZSgpKCksbWUoNTMsImRpdiIsMTYpKDU0LCJwIiksTmUoNTUsIkNhbmNlbCB0aGlzIHN1Ym1pc3Npb24iKSx5ZSgpLG1lKDU2LCJidXR0b24iLDE3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2FuY2Vs'@; put 'UmVuZGVyaW5nR3JhcGgoKX0pLE5lKDU3LCIgQ2FuY2VsICIpLHllKCkoKSgpKCl9MiZhJiYoQ2UoMiksUmUoIm5nSWYiLGQubGlicmFyeUxpc3QpLENlKDEpLFJlKCJuZ0Zvck9mIixkLmxpYnJhcnlMaXN0KSxDZSgxKSxSZSgibmdJZiIsZC5saWJyYXJpZXNQYWdpbmcpLENlKDMpLFJlKCJu'@; put 'Z0lmIiwhZC5jb2x1bW4mJiFkLnRhYmxlKSxDZSgxKSxSZSgibmdJZiIsZC5jb2x1bW58fGQudGFibGUpLENlKDEpLFJlKCJjbHJNb2RhbE9wZW4iLGQubGltaXREb3REZXB0aCkoImNsck1vZGFsQ2xvc2FibGUiLCExKSxDZSgxNyksUmUoImNsck1vZGFsT3BlbiIsbnVsbCE9PWQubGFyZ2VE'@; put 'b3RGaWxlTGluZXMpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksQ2UoNSksZ3IoIiBUaGUgZ2VuZXJhdGVkIGRvdCBmaWxlIGhhcyAiLGQubGFyZ2VEb3RGaWxlTGluZXMsIiBsaW5lcy4gUmVuZGVyaW5nIG1heSB0YWtlIGEgbG9uZyB0aW1lLCBob3cgd291bGQgeW91IGxpa2UgdG8gcHJvY2Vl'@; put 'ZD8gIiksQ2UoMTEpLFJlKCJkaXNhYmxlZCIsIWQuY29sdW1uJiYhZC50YWJsZSkpfSxkZXBlbmRlbmNpZXM6W3hzLFppLEJ1LFdhLFMwLEJzLE9zLGRkLGcxLERwLGthLG91LHN1LFp1LGMyLFVzLEhGLEQwLFQwLGYxLE5mLGFnLGxnLEs4LG4zXSxzdHlsZXM6WyIudG9nZ2xlLXN3aXRjaFtf'@; put 'bmdjb250ZW50LSVDT01QJV0gICBpbnB1dFt0eXBlPWNoZWNrYm94XVtfbmdjb250ZW50LSVDT01QJV06Y2hlY2tlZCArIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjojMzE0MzUxIWltcG9ydGFudDt0cmFuc2l0'@; put 'aW9uOi4xNXMgZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yfSNncmFwaFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OmNhbGMoMTAwdmggLSAxOTVweCk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6Ymxv'@; put 'Y2s7d2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkICNlNGU0ZTQ7bWFyZ2luLXRvcDoxMHB4fS5zZWxlY3Rpb24td3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTttYXgtd2lkdGg6NjcwcHh9LmNvbHVtbi1hY3RpdmVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6'@; put 'I2Q4ZTNlOTtjb2xvcjojMDAwfS5jb250ZW50LWFyZWFbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fS5jb250ZW50LWFyZWFbX25nY29udGVudC0lQ09NUCVdICAgLmNhcmRbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6Y2FsYygxMDB2aCAtIDEyMHB4'@; put 'KX0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jYXJkLWJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41cmVtIC4zNXJlbSFpbXBvcnRhbnR9Y2xyLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0gICBidXR0'@; put 'b25bX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0uZ3JhcGgtcmVuZGVyLXNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDox'@; put 'MHB4fS5iaWdsaW5lYWdlLXJvd1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOjIwcHh9Lm1vZGFsLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRl'@; put 'bnQtJUNPTVAlXXttYXJnaW46MH0ubGluZWFnZS10aXRsZS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtsZWZ0OjEycHh9Lm1heC1kZXB0aC1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX1AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpey50b2dnbGUtc3dpdGNoLWNvbnRh'@; put 'aW5lcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWJvdHRvbToyMHB4fX0iXX0pLGN9KSgpO2Z1bmN0aW9uIHBldChjLGwpe2lmKDEmYyYmKG1lKDAsIm9wdGlvbiIsMTEpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtFYygidmFsdWUiLGEpLENlKDEpLGdyKCIgIixh'@; put 'LCIgIil9fWZ1bmN0aW9uIGdldChjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDE4KX1mdW5jdGlvbiBtZXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItaWNvbiIsMTkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpO3JldHVybiBoLm1ldGFE'@; put 'YXRhU2VhcmNoPSIiLGp0KGgubWV0YUxpc3RPbkZpbHRlcigpKX0pLHllKCl9fWZ1bmN0aW9uIHZldChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDEyKSgxLCJkaXYiLDEzKSgyLCJpbnB1dCIsMTQsMTUpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlv'@; put 'bihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS5tZXRhRGF0YVNlYXJjaD1oKX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5tZXRhTGlzdE9uRmlsdGVyKCkpfSkseWUoKSxKZSg0LGdldCwxLDAsImNsci1pY29uIiwxNiksSmUoNSxtZXQsMSwwLCJjbHItaWNvbiIs'@; put 'MTcpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMyksZD1WZSgpO0NlKDIpLFJlKCJuZ01vZGVsIixkLm1ldGFEYXRhU2VhcmNoKSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBfZXQoYyxsKXtp'@; put 'ZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwyMSkseHQoImNsaWNrIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCkuJGltcGxpY2l0LF89VmUoKTtyZXR1cm4ganQoXy50cmVlTm9kZUNsaWNrZWQoaCxmLF8ubWV0YURhdGFMaXN0KSl9KSgiY2xyRXhwYW5k'@; put 'ZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLiRpbXBsaWNpdC5leHBhbmRlZD1oKX0pLG1lKDEsInAiLDIyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpLiRpbXBsaWNpdCxmPVZlKCk7cmV0dXJuIGYubWV0YURhdGFJZD1oLklELGp0'@; put 'KGYubWV0YURhdGFPbkNsaWNrKGYubWV0YURhdGFJZCxoKSl9KSxxdCgyLCJjbHItaWNvbiIsMjMpLE5lKDMpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7UmUoImNsckV4cGFuZGVkIixhLmV4cGFuZGVkKSgiY2xyTG9hZGluZyIsYS5sb2FkaW5nVGFibGVzJiYhYS50'@; put 'YWJsZXMpLENlKDMpLGdyKCIgIixhLklELCIgIil9fWZ1bmN0aW9uIGJldChjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsX2V0LDQsMywiY2xyLXRyZWUtbm9kZSIsMjApLHpyKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgxKSxSZSgibmdJZiIsIWEuaGlkZGVuKX19ZnVuY3Rpb24g'@; put 'eWV0KGMsbCl7MSZjJiYobWUoMCwiZGl2IiwyNCkscXQoMSwiY2xyLWljb24iLDI1KSxtZSgyLCJoMyIsMjYpLE5lKDMsIlBsZWFzZSBzZWxlY3QgYSB0eXBlIikseWUoKSgpKX1mdW5jdGlvbiB3ZXQoYyxsKXsxJmMmJihtZSgwLCJoNCIpLE5lKDEsIkxvYWRpbmcgbWV0YWRhdGEgdHlwZXMi'@; put 'KSx5ZSgpKX1mdW5jdGlvbiBDZXQoYyxsKXsxJmMmJihtZSgwLCJoNCIpLE5lKDEsIkxvYWRpbmcgbWV0YWRhdGEgb2JqZWN0cyIpLHllKCkpfWZ1bmN0aW9uIE1ldChjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIpLEplKDEsd2V0LDIsMCwiaDQiLDI5KSxKZSgyLENldCwyLDAsImg0IiwyOSks'@; put 'eWUoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDEpLFJlKCJuZ0lmIixhLm1ldGF0eXBlc0xvYWRpbmcpLENlKDEpLFJlKCJuZ0lmIiwhYS5tZXRhdHlwZXNMb2FkaW5nKX19ZnVuY3Rpb24geGV0KGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwyNykoMSwic3BhbiIsMjgpLE5lKDIsIiBMb2Fk'@; put 'aW5nLi4uICIpLHllKCksSmUoMyxNZXQsMywyLCJkaXYiLDI5KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSgzKSxSZSgibmdJZiIsYS5sb2FkaW5nKX19ZnVuY3Rpb24gRWV0KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiZGl2IiwzNikoMSwiaW5wdXQiLDM3LDM4KSx4dCgi'@; put 'bmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLm1ldGFPYmplY3RTZWFyY2g9aCl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLm1ldGFPYmplY3RPbkZpbHRlcigpKX0pLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoMik7'@; put 'Q2UoMSksUmUoIm5nTW9kZWwiLGEubWV0YU9iamVjdFNlYXJjaCl9fWZ1bmN0aW9uIGtldChjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDQyKX1mdW5jdGlvbiBBZXQoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwyMyl9ZnVuY3Rpb24gVGV0KGMsbCl7aWYoMSZjJiYobWUoMCwicCIsNTMp'@; put 'LE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdDtDZSgxKSxncigiICIsYS5VUkksIiAiKX19ZnVuY3Rpb24gRGV0KGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXRyZWUtbm9kZSIsNDgpKDEsImRpdiIsNDkpLEplKDIsa2V0LDEsMCwiY2xyLWljb24iLDUwKSxKZSgzLEFl'@; put 'dCwxLDAsImNsci1pY29uIiw1MSksTmUoNCksSmUoNSxUZXQsMiwxLCJwIiw1MikseWUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7UmUoImNsckV4cGFuZGFibGUiLCEwKSxDZSgxKSxkcigib2JqZWN0LWhlYWRlciIsIWEuY291bnQpLENlKDEpLFJlKCJuZ0lmIiwhYS5jb3VudCks'@; put 'Q2UoMSksUmUoIm5nSWYiLGEuY291bnQpLENlKDEpLGdyKCIgIixhLmRpc3BsYXksIiAiKSxDZSgxKSxSZSgibmdJZiIsIWEuY291bnQpfX1mdW5jdGlvbiBJZXQoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdHJlZSIsNDYpLEplKDEsRGV0LDYsNywiY2xyLXRyZWUtbm9kZSIsNDcpLGJhKDIs'@; put 'ImFzeW5jIikseWUoKSksMiZjKXtjb25zdCBhPVZlKDYpO1JlKCJjbHJMYXp5IiwhMCksQ2UoMSksUmUoImNsclJlY3Vyc2l2ZUZvck9mIixabCgyLDMsYS5yb290JCkpKCJjbHJSZWN1cnNpdmVGb3JHZXRDaGlsZHJlbiIsYS5nZXRDaGlsZHJlbil9fWZ1bmN0aW9uIExldChjLGwpe2lmKDEm'@; put 'YyYmKG1lKDAsImNsci1hY2NvcmRpb24tY29udGVudCIpLEplKDEsSWV0LDMsNSwiY2xyLXRyZWUiLDQ1KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoNSk7Q2UoMSksUmUoIm5nSWYiLGEuc2hvd0FjYyl9fWZ1bmN0aW9uIFJldChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1h'@; put 'Y2NvcmRpb24tcGFuZWwiLDQxKSx4dCgiY2xyQWNjb3JkaW9uUGFuZWxPcGVuQ2hhbmdlIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCkuJGltcGxpY2l0LF89VmUoMyk7cmV0dXJuIGp0KGg/Xy5wYW5lbENoYW5nZShoLGYpOiIiKX0pLG1lKDEsImNsci1hY2NvcmRpb24tdGl0bGUi'@; put 'KSxxdCgyLCJjbHItaWNvbiIsNDIpLE5lKDMpLG1lKDQsInAiLDQzKSxOZSg1KSx5ZSgpKCksSmUoNixMZXQsMiwxLCJjbHItYWNjb3JkaW9uLWNvbnRlbnQiLDQ0KSx5ZSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdDtDZSgzKSxncigiICIsYS5OQU1FLCIgIiksQ2UoMiksb3Io'@; put 'YS5JRCl9fWZ1bmN0aW9uIE9ldChjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsUmV0LDcsMiwiY2xyLWFjY29yZGlvbi1wYW5lbCIsNDApLHpyKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgxKSxSZSgibmdJZiIsIWEuaGlkZGVuKX19ZnVuY3Rpb24gUGV0KGMsbCl7aWYoMSZjJiYo'@; put 'bWUoMCwiZGl2IiwzOSkoMSwiY2xyLWFjY29yZGlvbiIpLEplKDIsT2V0LDIsMSwibmctY29udGFpbmVyIiw0KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgyKSxSZSgibmdGb3JPZiIsYS5tZXRhT2JqZWN0U2hvd0xpc3QpfX1mdW5jdGlvbiBGZXQoYyxsKXsxJmMmJnF0KDAsImNs'@; put 'ci1pY29uIiw0Mil9ZnVuY3Rpb24gSGV0KGMsbCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsMjMpfWZ1bmN0aW9uIE5ldChjLGwpe2lmKDEmYyYmKG1lKDAsInAiLDUzKSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7Q2UoMSksZ3IoIiAiLGEuVVJJLCIgIil9fWZ1bmN0'@; put 'aW9uIFZldChjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10cmVlLW5vZGUiLDQ4KSgxLCJkaXYiLDQ5KSxKZSgyLEZldCwxLDAsImNsci1pY29uIiw1MCksSmUoMyxIZXQsMSwwLCJjbHItaWNvbiIsNTEpLE5lKDQpLEplKDUsTmV0LDIsMSwicCIsNTIpLHllKCkoKSksMiZjKXtjb25zdCBhPWwu'@; put 'JGltcGxpY2l0O1JlKCJjbHJFeHBhbmRhYmxlIiwhMCksQ2UoMSksZHIoIm9iamVjdC1oZWFkZXIiLCFhLmNvdW50KSxDZSgxKSxSZSgibmdJZiIsIWEuY291bnQpLENlKDEpLFJlKCJuZ0lmIixhLmNvdW50KSxDZSgxKSxncigiICIsYS5kaXNwbGF5LCIgIiksQ2UoMSksUmUoIm5nSWYiLCFh'@; put 'LmNvdW50KX19ZnVuY3Rpb24gQmV0KGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLXRyZWUiLDQ2KSxKZSgxLFZldCw2LDcsImNsci10cmVlLW5vZGUiLDQ3KSxiYSgyLCJhc3luYyIpLHllKCkpLDImYyl7Y29uc3QgYT1WZSg0KTtSZSgiY2xyTGF6eSIsITApLENlKDEpLFJlKCJjbHJSZWN1cnNp'@; put 'dmVGb3JPZiIsWmwoMiwzLGEucm9vdCQpKSgiY2xyUmVjdXJzaXZlRm9yR2V0Q2hpbGRyZW4iLGEuZ2V0Q2hpbGRyZW4pfX1mdW5jdGlvbiBqZXQoYyxsKXtpZigxJmMmJihWcigwKSxtZSgxLCJkaXYiLDU0KSxxdCgyLCJjbHItaWNvbiIsNDIpLG1lKDMsImRpdiIsNTUpKDQsInAiLDU2KSxO'@; put 'ZSg1KSx5ZSgpLG1lKDYsInAiLDU3KSxOZSg3KSx5ZSgpKCkoKSxKZSg4LEJldCwzLDUsImNsci10cmVlIiw0NSksenIoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoMyk7Q2UoNSksZ3IoIiAiLGEuTkFNRSwiICIpLENlKDIpLGdyKCIgIixhLklELCIgIiksQ2UoMSksUmUoIm5n'@; put 'SWYiLGQuc2hvd0FjYyl9fWZ1bmN0aW9uIHpldChjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMzkpLEplKDEsamV0LDksMywibmctY29udGFpbmVyIiw0KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksUmUoIm5nRm9yT2YiLGEubWV0YU9iamVjdFNob3dMaXN0KX19ZnVuY3Rpb24g'@; put 'VWV0KGMsbCl7aWYoMSZjJiYobWUoMCwiY2xyLWRnLXJvdyIpKDEsImNsci1kZy1jZWxsIiksTmUoMikseWUoKSxtZSgzLCJjbHItZGctY2VsbCIpLE5lKDQpLHllKCksbWUoNSwiY2xyLWRnLWNlbGwiKSxOZSg2KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtDZSgyKSxvcihh'@; put 'LlRZUEUpLENlKDIpLG9yKGEuTkFNRSksQ2UoMiksb3IoYS5WQUxVRSl9fWNvbnN0IFpldD1mdW5jdGlvbigpe3JldHVyblsxMCwyMCw1MCwxMDBdfTtmdW5jdGlvbiBZZXQoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItZGF0YWdyaWQiLDU4KSgxLCJjbHItZGctY29sdW1uIiksTmUoMiwiIFRZ'@; put 'UEUgIikscXQoMywiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDU5KSx5ZSgpLG1lKDQsImNsci1kZy1jb2x1bW4iKSxOZSg1LCIgTkFNRSAiKSxxdCg2LCJjbHItZGctc3RyaW5nLWZpbHRlciIsNTkpLHllKCksbWUoNywiY2xyLWRnLWNvbHVtbiIpLE5lKDgsIiBWQUxVRSAiKSxxdCg5LCJjbHIt'@; put 'ZGctc3RyaW5nLWZpbHRlciIsNTkpLHllKCksSmUoMTAsVWV0LDcsMywiY2xyLWRnLXJvdyIsNjApLG1lKDExLCJjbHItZGctZm9vdGVyIikoMTIsImNsci1kZy1wYWdpbmF0aW9uIiw2MSw2MikoMTQsImNsci1kZy1wYWdlLXNpemUiLDYzKSxOZSgxNSwiQXR0cmlidXRlcyBwZXIgcGFnZSIp'@; put 'LHllKCksTmUoMTYpLHllKCkoKSgpKSwyJmMpe2NvbnN0IGE9JGkoMTMpLGQ9VmUoMik7Q2UoMyksUmUoImNsckRnU3RyaW5nRmlsdGVyIixkLnR5cGVGaWx0ZXIpLENlKDMpLFJlKCJjbHJEZ1N0cmluZ0ZpbHRlciIsZC5uYW1lRmlsdGVyKSxDZSgzKSxSZSgiY2xyRGdTdHJpbmdGaWx0ZXIi'@; put 'LGQudmFsdWVGaWx0ZXIpLENlKDEpLFJlKCJjbHJEZ0l0ZW1zT2YiLGQubWV0YU9iamVjdEF0dHJpYnV0ZXMpLENlKDIpLFJlKCJjbHJEZ1BhZ2VTaXplIiwxMCksQ2UoMiksUmUoImNsclBhZ2VTaXplT3B0aW9ucyIsJHMoOSxaZXQpKSxDZSgyKSxiMCgiICIsYS5maXJzdEl0ZW0rMSwiIC0g'@; put 'IixhLmxhc3RJdGVtKzEsIiBvZiAiLGEudG90YWxJdGVtcywiIEF0dHJpYnV0ZXMgIil9fWZ1bmN0aW9uIFdldChjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMzApKDEsImRpdiIsMzEpLEplKDIsRWV0LDMsMSwiZGl2IiwzMikscXQoMywiYnIiKSxKZSg0LFBldCwzLDEsImRpdiIsMzMpLEpl'@; put 'KDUsemV0LDIsMSwiZGl2IiwzMykseWUoKSxtZSg2LCJkaXYiLDM0KSg3LCJoMyIpLE5lKDgpLHllKCksSmUoOSxZZXQsMTcsMTAsImNsci1kYXRhZ3JpZCIsMzUpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKCk7Q2UoMiksUmUoIm5nSWYiLGEubWV0YU9iamVjdExpc3QmJiFhLm9iamVjdFJv'@; put 'dXRlKSxDZSgyKSxSZSgibmdJZiIsIWEub2JqZWN0VmlldyksQ2UoMSksUmUoIm5nSWYiLGEub2JqZWN0VmlldyksQ2UoMyksb3IoYS5hc3NvT2JqZWN0U2VsZWN0ZWQpLENlKDEpLFJlKCJuZ0lmIixhLnNob3dUYWJsZSl9fWxldCBvWj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxo'@; put 'LGYsXyxUKXt0aGlzLmV2ZW50U2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMuaGVscGVyU2VydmljZT1oLHRoaXMubG9jYXRpb249Zix0aGlzLnJvdXRlcj1fLHRoaXMucm91dGU9VCx0aGlzLm1ldGFEYXRhU2VhcmNoPSIiLHRoaXMubWV0YU9iamVjdFNlYXJjaD0iIix0aGlzLm1l'@; put 'dGFPYmplY3RBc3NvY2lhdGlvbnM9W10sdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLnNob3dUYWJsZT0hMSx0aGlzLnNob3dBY2M9ITEsdGhpcy5tZXRhRGF0YUlkPSIiLHRoaXMubG9hZGluZz0hMCx0aGlzLm1ldGF0eXBlc0xvYWRpbmc9ITAsdGhpcy5tZXRhT2JqZWN0U2l6'@; put 'ZT0yMDAsdGhpcy5hc3NvVHlwZVNlbGVjdGVkPSIiLHRoaXMuYXNzb09iamVjdFNlbGVjdGVkPSIiLHRoaXMucmVwb3NpdG9yeT0iIix0aGlzLm9iamVjdFJvdXRlPSExLHRoaXMuc2hvd0RhdGE9ITEsdGhpcy5vYmplY3RWaWV3PSExLHRoaXMuZ2V0Q2hpbGRyZW49Vz0+Vy5jb3VudD9XaShX'@; put 'LmRldGFpbHMpOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGFkZXRhaWxzIix7U0FTQ29udHJvbFRhYmxlOlt7b2JqZWN0dXJpOlcuQVNTT0NVUkl9XX0pLnRoZW4ocGU9Pnt0aGlzLnNob3dUYWJsZT0hMCx0aGlzLm1ldGFPYmplY3RBdHRyaWJ1dGVzPXBlLmF0dHJpYnV0'@; put 'ZXMsdGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9Vy5OQU1FO2xldCB3ZT10aGlzLnJvdXRlci51cmw7cmV0dXJuIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHRoaXMub2JqZWN0Um91dGU/d2Uuc2xpY2UoMCx3ZS5sYXN0SW5kZXhPZigib2JqZWN0IikpKyJvYmplY3QvIitXLkFTU09DVVJJ'@; put 'LnNsaWNlKDErVy5BU1NPQ1VSSS5pbmRleE9mKCJcXCIpKTp3ZSsiL29iamVjdC8iK1cuQVNTT0NVUkkuc2xpY2UoMStXLkFTU09DVVJJLmluZGV4T2YoIlxcIikpKSx0aGlzLmdldEFzc29zaWF0aW9uc0NvdW50KHBlLmFzc29jaWF0aW9ucyl9KSx0aGlzLmRlYm91bmNlPSExfW5nT25Jbml0'@; put 'KCl7R24udmlld2VyLmN1cnJlbnRTZWxlY3Rpb249InZpZXcvbWV0YWRhdGEiLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiL3ZpZXcvbWV0YWRhdGEvb2JqZWN0LyIpJiYodGhpcy5vYmplY3RSb3V0ZT0hMCx0aGlzLm9iamVjdFZpZXc9ITApLHRoaXMucGFnZVNpemU9NSxHbi5tZXRhZGF0'@; put 'YS5tZXRhRGF0YUxpc3QmJkduLm1ldGFkYXRhLm1ldGFSZXBvc2l0b3JpZXMmJiF0aGlzLm9iamVjdFJvdXRlPyh0aGlzLm1ldGFEYXRhTGlzdD1Hbi5tZXRhZGF0YS5tZXRhRGF0YUxpc3QsdGhpcy5yZXBvc2l0b3JpZXM9R24ubWV0YWRhdGEubWV0YVJlcG9zaXRvcmllcyx0aGlzLnJlcG9z'@; put 'aXRvcnk9R24ubWV0YWRhdGEuc2VsZWN0ZWRSZXBvc2l0b3J5LHRoaXMubG9hZGluZz0hMSx0aGlzLm1ldGF0eXBlc0xvYWRpbmc9ITEsdGhpcy5tZXRhRGF0YVNlYXJjaD1Hbi5tZXRhZGF0YS5tZXRhRGF0YVNlYXJjaCk6KHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGF0'@; put 'eXBlcyIsbnVsbCkudGhlbihhPT57dGhpcy5tZXRhRGF0YUxpc3Q9YS50eXBlcyxHbi5tZXRhZGF0YS5tZXRhRGF0YUxpc3Q9dGhpcy5tZXRhRGF0YUxpc3QsdGhpcy5sb2FkaW5nPSExLHRoaXMubWV0YXR5cGVzTG9hZGluZz0hMX0pLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2'@; put 'L21ldGFyZXBvcyIsbnVsbCkudGhlbihhPT57bGV0IGQ9ITE7dGhpcy5yZXBvc2l0b3JpZXM9W107Zm9yKGxldCBoPTA7aDxhLm91dHJlcG9zLmxlbmd0aDtoKyspdGhpcy5yZXBvc2l0b3JpZXMucHVzaChhLm91dHJlcG9zW2hdLk5BTUUpLCJGb3VuZGF0aW9uIj09PWEub3V0cmVwb3NbaF0u'@; put 'TkFNRSYmKGQ9ITApO2lmKHRoaXMucmVwb3NpdG9yeT1kPyJGb3VuZGF0aW9uIjphLm91dHJlcG9zWzBdLk5BTUUsR24ubWV0YWRhdGEubWV0YVJlcG9zaXRvcmllcz10aGlzLnJlcG9zaXRvcmllcyxHbi5tZXRhZGF0YS5zZWxlY3RlZFJlcG9zaXRvcnk9dGhpcy5yZXBvc2l0b3J5LHRoaXMu'@; put 'b2JqZWN0Um91dGUpe3RoaXMuZXZlbnRTZXJ2aWNlLmNsb3NlU2lkZWJhcigpLHRoaXMuc2hvd0RhdGE9ITA7bGV0IGg9IiIsZj10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5vYmplY3RJRDt0aGlzLm1ldGFPYmplY3RMaXN0PVtdLHRoaXMubWV0YU9iamVjdExpc3QucHVzaCh7SUQ6ZixO'@; put 'QU1FOmh9KSx0aGlzLm1ldGFPYmplY3RTaG93TGlzdD10aGlzLm1ldGFPYmplY3RMaXN0LHRoaXMubWV0YU9iamVjdE9uQ2xpY2sodGhpcy5tZXRhT2JqZWN0U2hvd0xpc3RbMF0uSUQsdGhpcy5tZXRhT2JqZWN0U2hvd0xpc3RbMF0pfX0pKX10cmVlTm9kZUNsaWNrZWQoYSxkLGgpeyJDb2xs'@; put 'YXBzZSI9PT1hLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZVRyZWVJdGVtcyhoLGQpfWNvbGxhcHNlVHJlZUl0ZW1zKGEsZCl7YS5mb3JFYWNoKGg9PntKU09OLnN0cmluZ2lmeShoKSE9PUpTT04uc3RyaW5naWZ5KGQpJiYoaC5leHBhbmRlZD0hMSl9KX1tZXRhRGF0YU9uQ2xpY2soYSxk'@; put 'KXt0aGlzLm9iamVjdFZpZXc9ITEsdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoIi92aWV3L21ldGFkYXRhIiksdGhpcy5zaG93RGF0YT0hMSx0aGlzLmxvYWRpbmc9ITAsdGhpcy5zZWxlY3RtZXRhRGF0YShhLGQpfW1ldGFPYmplY3RPbkNsaWNrKGEsZCl7dGhpcy5hc3NvT2JqZWN0U2Vs'@; put 'ZWN0ZWQ9IiAuICIsdGhpcy5zaG93QWNjPSExLHRoaXMubWV0YU9iamVjdEF0dHJpYnV0ZXM9W10sdGhpcy5zZWxlY3RtZXRhT2JqZWN0KGEsZCl9c2VsZWN0bWV0YURhdGEoYSxkKXt2YXIgaD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtoLnNhc1NlcnZpY2UucmVxdWVzdCgibWV0YW5h'@; put 'di9tZXRhb2JqZWN0cyIse1NBU0NvbnRyb2xUYWJsZTpbe21ldGF0eXBlOmEscmVwbzpoLnJlcG9zaXRvcnl9XX0pLnRoZW4oXz0+e2gubWV0YU9iamVjdExpc3Q9Xy5vYmplY3RzLGguZ2V0TWV0YU9iamVjdEF0dHJpYnV0ZXMoaC5tZXRhT2JqZWN0U2l6ZSksaC5sb2FkaW5nPSExLGguYXNz'@; put 'b1R5cGVTZWxlY3RlZD1hLGguZXZlbnRTZXJ2aWNlLmNsb3NlU2lkZWJhcigpLGguc2hvd0RhdGE9ITB9KX0pKCl9c2VsZWN0bWV0YU9iamVjdChhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2guc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGFkZXRhaWxzIix7'@; put 'U0FTQ29udHJvbFRhYmxlOlt7b2JqZWN0dXJpOmF9XX0pLnRoZW4oXz0+e2gubWV0YU9iamVjdEFzc29jaWF0aW9ucz1fLmFzc29jaWF0aW9ucyxoLnJvb3QkPVdpKGguZ2V0QXNzb3NpYXRpb25zQ291bnQoXy5hc3NvY2lhdGlvbnMpKSxoLnNob3dBY2M9ITAsaC5zaG93VGFibGU9ITA7bGV0'@; put 'IFQ9Xy5hdHRyaWJ1dGVzLmZpbmQoaWU9PiJOYW1lIj09PWllLk5BTUUpLlZBTFVFO2guYXNzb09iamVjdFNlbGVjdGVkPVQsZC5OQU1FPVQ7bGV0IFc9aC5yb3V0ZXIudXJsO2gubG9jYXRpb24ucmVwbGFjZVN0YXRlKGgub2JqZWN0Um91dGU/Vy5zbGljZSgwLFcubGFzdEluZGV4T2YoIm9i'@; put 'amVjdCIpKSsib2JqZWN0LyIrYS5zbGljZSgxK2EuaW5kZXhPZigiXFwiKSk6VysiL29iamVjdC8iK2Euc2xpY2UoMSthLmluZGV4T2YoIlxcIikpKSxoLm1ldGFPYmplY3RBdHRyaWJ1dGVzPV8uYXR0cmlidXRlc30pfSkoKX1zZWxlY3RBc3Nvc2lhdGlvbnNEZXRhaWxzKGEsZCl7dmFyIGg9'@; put 'dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7aC5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YWRldGFpbHMiLHtTQVNDb250cm9sVGFibGU6W3tvYmplY3R1cmk6YX1dfSkudGhlbihfPT57aC5tZXRhT2JqZWN0QXR0cmlidXRlcz1fLmF0dHJpYnV0ZXMsaC5zaG93VGFibGU9ITB9'@; put 'KX0pKCl9Z2V0QXNzb3NpYXRpb25zQ291bnQoYSl7bGV0IGQ9bmV3IE1hcDtmb3IobGV0IGYgb2YgYSl7ZC5oYXMoZi5BU1NPQyl8fGQuc2V0KGYuQVNTT0Mse2NvdW50OjAsZGV0YWlsczpbXX0pO2xldCBfPWQuZ2V0KGYuQVNTT0MpO18uY291bnQrKyxfLmRldGFpbHMucHVzaCh7QVNTT0NV'@; put 'Ukk6Zi5BU1NPQ1VSSSxOQU1FOmYuTkFNRSxkaXNwbGF5OmYuTkFNRSxVUkk6Zi5BU1NPQ1VSSS5zbGljZShmLkFTU09DVVJJLmluZGV4T2YoIjoiKSsxKX0pfWxldCBoPVtdO3JldHVybiBkLmZvckVhY2goZnVuY3Rpb24oZixfKXtoLnB1c2goe0FTU09DOl8sY291bnQ6Zi5jb3VudCxkZXRh'@; put 'aWxzOmYuZGV0YWlscyxkaXNwbGF5Ol8rIiAoICIrZi5jb3VudCsiICkifSl9KSxofXNldFR5cGVBc3Nvc2lhdGlvbnMoYSl7bGV0IGQ9W107Zm9yKGxldCBoIG9mIHRoaXMubWV0YU9iamVjdEFzc29jaWF0aW9ucyloLkFTU09DPT09YSYmZC5wdXNoKGgpO3JldHVybiB0aGlzLmFzc29zaWF0'@; put 'aW9uTmFtZXM9ZCxkfWFzc29zaWF0aW9uTmFtZU9uQ2xpY2soYSl7dGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9IiAuICIsdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLnNob3dUYWJsZT0hMSx0aGlzLnNlbGVjdEFzc29zaWF0aW9uc0RldGFpbHMoYSl9bWV0YUxpc3RPbkZpbHRl'@; put 'cigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5tZXRhRGF0YUxpc3QsdGhpcy5tZXRhRGF0YVNlYXJjaCwiSUQiKSxHbi5tZXRhZGF0YS5tZXRhRGF0YVNlYXJjaD10aGlzLm1ldGFEYXRhU2VhcmNofW1ldGFPYmplY3RPbkZpbHRlcigpe3RoaXMubWV0YU9iamVj'@; put 'dEF0dHJpYnV0ZXM9W10sdGhpcy5oZWxwZXJTZXJ2aWNlLm1ldGFPYmplY3RPbkZpbHRlcih0aGlzLm1ldGFPYmplY3RMaXN0LHRoaXMubWV0YU9iamVjdFNlYXJjaCwiTkFNRSIpLHRoaXMuZ2V0TWV0YU9iamVjdEF0dHJpYnV0ZXModGhpcy5tZXRhT2JqZWN0U2l6ZSksR24ubWV0YWRhdGEu'@; put 'bWV0YU9iamVjdFNlYXJjaD10aGlzLm1ldGFPYmplY3RTZWFyY2h9Z2V0TWV0YU9iamVjdEF0dHJpYnV0ZXMoYSl7aWYodm9pZCAwIT09dGhpcy5tZXRhT2JqZWN0TGlzdCYmdGhpcy5tZXRhT2JqZWN0TGlzdC5sZW5ndGg+YSl7bGV0IGQ9MCxoPS0xO2ZvcihsZXQgZj0wO2Y8dGhpcy5tZXRh'@; put 'T2JqZWN0TGlzdC5sZW5ndGg7ZisrKWlmKCh2b2lkIDA9PT10aGlzLm1ldGFPYmplY3RMaXN0W2ZdLmhpZGRlbnx8ITE9PT10aGlzLm1ldGFPYmplY3RMaXN0W2ZdLmhpZGRlbikmJmQrKyxkPT09YSl7aD1mO2JyZWFrfXRoaXMubWV0YU9iamVjdFNob3dMaXN0PS0xIT09aD90aGlzLm1ldGFP'@; put 'YmplY3RMaXN0LnNsaWNlKDAsaCk6dGhpcy5tZXRhT2JqZWN0TGlzdH1lbHNlIHRoaXMubWV0YU9iamVjdFNob3dMaXN0PXRoaXMubWV0YU9iamVjdExpc3R9cGFuZWxDaGFuZ2UoYSxkKXt0aGlzLmRlYm91bmNlfHwodGhpcy5tZXRhT2JqZWN0T25DbGljayhkLklELGQpLHRoaXMuZGVib3Vu'@; put 'Y2U9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuZGVib3VuY2U9ITF9LDYwMCkpfXVwZGF0ZVNlbGVjdGVkUmVwb3NpdG9yeSgpe0duLm1ldGFkYXRhLnNlbGVjdGVkUmVwb3NpdG9yeT10aGlzLnJlcG9zaXRvcnl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8'@; put 'fGMpKHR0KHZsKSx0dChvYSksdHQoVGMpLHR0KEpkKSx0dChEcyksdHQoR2wpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLW1ldGFkYXRhIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxNyx2YXJzOjgsY29uc3RzOltbMSwicmVw'@; put 'by1kcm9wZG93biJdLFsiY2xyU2VsZWN0IiwiIiwiaWQiLCJyZXBvc2l0b3J5IiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImNoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInNlYXJjaC1ub2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdG'@; put 'b3JPZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbMSwiY2FyZCIsImJhY2tncm91bmQtdHJhbnNwYXJlbnQtaSJdLFsxLCJjb2xvci1ncmF5Il0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIs'@; put 'ImNsci1yb3cgY2xyLWZsZXgtZ3Jvdy0xIiw0LCJuZ0lmIl0sWzMsInZhbHVlIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJzZWFyY2ggU0FTIFR5cGVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBs'@; put 'ZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBl'@; put 'IiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSJdLFsxLCJtLTAiLCJjdXJzb3It'@; put 'cG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYmxvY2siXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdyYXkiXSxbMSwi'@; put 'bG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFs0LCJuZ0lmIl0sWzEsImNsci1yb3ciLCJjbHItZmxleC1ncm93LTEiXSxbMSwiY2xyLWNvbC02Il0sWyJjbGFzcyIsInNlYXJjaC1pbnB1dCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvYmplY3RzLWNvbCIsNCwibmdJZiJdLFsxLCJjbHIt'@; put 'Y29sLTYiLCJ0ZXh0LWNlbnRlciJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIiw0LCJuZ0lmIl0sWzEsInNlYXJjaC1pbnB1dCJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsInNlYXJjaCIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdN'@; put 'b2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoT2JqVHJlZUlucHV0IiwiIl0sWzEsIm9iamVjdHMtY29sIl0sWzMsImNsckFjY29yZGlvblBhbmVsT3BlbkNoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UiXSxbInNoYXBlIiwicmFj'@; put 'ay1zZXJ2ZXIiXSxbMSwiZmxvYXQtcmlnaHQiXSxbNCwiY2xySWZFeHBhbmRlZCJdLFszLCJjbHJMYXp5Iiw0LCJuZ0lmIl0sWzMsImNsckxhenkiXSxbMywiY2xyRXhwYW5kYWJsZSIsNCwiY2xyUmVjdXJzaXZlRm9yIiwiY2xyUmVjdXJzaXZlRm9yT2YiLCJjbHJSZWN1cnNpdmVGb3JHZXRD'@; put 'aGlsZHJlbiJdLFszLCJjbHJFeHBhbmRhYmxlIl0sWzEsImZ1bGwtd2lkdGgiXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiLDQsIm5nSWYiXSxbInNoYXBlIiwiYmxvY2siLDQsIm5nSWYiXSxbImNsYXNzIiwiZmxvYXQtcmlnaHQgb2JqZWN0LXVyaSIsNCwibmdJZiJdLFsxLCJmbG9hdC1yaWdo'@; put 'dCIsIm9iamVjdC11cmkiXSxbMSwiY29scy1oZWFkIl0sWzEsIm9iamVjdC10ZXh0Il0sWzEsIm0tMCIsIndvcmQtYnJlYWsiLCJtci0yMCJdLFsxLCJmbG9hdC1yaWdodCIsIm1sLTMiXSxbMSwiZGF0YWdyaWQtY3VzdG9tLWZvb3RlciJdLFszLCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFs0LCJj'@; put 'bHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09mIl0sWzMsImNsckRnUGFnZVNpemUiXSxbInBhZ2luYXRpb24iLCIiXSxbMywiY2xyUGFnZVNpemVPcHRpb25zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwiYXBwLXNpZGViYXIiKSgxLCJkaXYiLDApKDIsImNsci1zZWxlY3Qt'@; put 'Y29udGFpbmVyIikoMywibGFiZWwiKSxOZSg0LCJNZXRhZGF0YSBSZXBvc2l0b3J5IikseWUoKSxtZSg1LCJzZWxlY3QiLDEpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5yZXBvc2l0b3J5PWZ9KSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBkLnVwZGF0ZVNl'@; put 'bGVjdGVkUmVwb3NpdG9yeSgpfSksSmUoNixwZXQsMiwyLCJvcHRpb24iLDIpLHllKCkoKSgpLG1lKDcsImNsci10cmVlIiksSmUoOCx2ZXQsNiwzLCJjbHItdHJlZS1ub2RlIiwzKSxKZSg5LGJldCwyLDEsIm5nLWNvbnRhaW5lciIsNCkseWUoKSgpLG1lKDEwLCJkaXYiLDUpKDExLCJkaXYi'@; put 'LDYpKDEyLCJoMyIsNyksTmUoMTMpLHllKCksSmUoMTQseWV0LDQsMCwiZGl2Iiw4KSxKZSgxNSx4ZXQsNCwxLCJkaXYiLDkpLEplKDE2LFdldCwxMCw1LCJkaXYiLDEwKSx5ZSgpKCkpLDImYSYmKENlKDUpLFJlKCJuZ01vZGVsIixkLnJlcG9zaXRvcnkpLENlKDEpLFJlKCJuZ0Zvck9mIixk'@; put 'LnJlcG9zaXRvcmllcyksQ2UoMiksUmUoIm5nSWYiLGQubWV0YURhdGFMaXN0KSxDZSgxKSxSZSgibmdGb3JPZiIsZC5tZXRhRGF0YUxpc3QpLENlKDQpLG9yKGQuYXNzb1R5cGVTZWxlY3RlZCksQ2UoMSksUmUoIm5nSWYiLCFkLmxvYWRpbmcmJiFkLm1ldGFPYmplY3RMaXN0KSxDZSgxKSxS'@; put 'ZSgibmdJZiIsZC5sb2FkaW5nKSxDZSgxKSxSZSgibmdJZiIsZC5zaG93RGF0YSkpfSxkZXBlbmRlbmNpZXM6W3hzLFppLGwxLGMxLFdhLE0wLEJzLE9zLFc4LFRwLHRnLFBFLFU4LGdILEZFLG5nLFNRLHJnLGlnLCQ4LG9nLEI4LGtwLHo4LFFGLGRkLGcxLERRLGthLFp1LHpKLFVzLGYxLE44'@; put 'LEg4LFRKLF9FLElKLERKLExKLEVGLG4zLHV4XSxzdHlsZXM6WyIub2JqZWN0cy1jb2xbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo3NXZoO292ZXJmbG93OnNjcm9sbDtib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7YmFja2dyb3VuZDp3aGl0ZTtib3JkZXItcmFkaXVzOjRweH0uY29scy1o'@; put 'ZWFkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiNmYWZhZmE7Ym9yZGVyOjFweCBzb2xpZCAjY2NjY2NjO3BhZGRpbmc6MTBweDtkaXNwbGF5OmZsZXh9Lm9iamVjdC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtqdXN0'@; put 'aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tbGVmdDoxMHB4O2ZsZXg6MX0ucmVwby1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjE1cHg7bWFyZ2luLWxlZnQ6MTVweDttYXJnaW4tYm90dG9tOjEwcHh9LmNsci1hY2NvcmRpb24tdGl0bGVbX25nY29u'@; put 'dGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmZsb2F0LXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MDtmbG9hdDpyaWdodH0uZnVsbC13aWR0aFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0ub2JqZWN0LXVyaVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjVweCAwIDB9'@; put 'Lm9iamVjdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctbGVmdDozcHg7cGFkZGluZy1yaWdodDozcHh9Lm9iamVjdC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtib3JkZXItcmFkaXVzOjNweH0uZGF0YWdyaWQtaG9z'@; put 'dFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTp1bnNldCFpbXBvcnRhbnR9LmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MDtmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5n'@; put 'Oi41cmVtIWltcG9ydGFudDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufSJdfSksYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKTtmdW5jdGlvbiBHZXQoYyxsKXsxJmMmJnF0KDAsImNsci1pY29u'@; put 'IiwxMil9ZnVuY3Rpb24gJGV0KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWljb24iLDEzKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4gaC5yb2xlU2VhcmNoPSIiLGp0KGgucm9sZUxpc3RPbkZpbHRlcigpKX0pLHllKCl9fWZ1'@; put 'bmN0aW9uIHFldChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDgsOSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLnJvbGVTZWFyY2g9aCl9KSgia2V5dXAiLGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkucm9sZUxpc3RPbkZpbHRlcigpKX0pLHllKCksSmUoNCxHZXQsMSwwLCJjbHItaWNvbiIsMTApLEplKDUsJGV0LDEsMCwiY2xyLWljb24iLDExKSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPSRpKDMpLGQ9VmUoKTtDZSgyKSxSZSgibmdNb2Rl'@; put 'bCIsZC5yb2xlU2VhcmNoKSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBLZXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwxNSkseHQoImNsaWNrIixmdW5j'@; put 'dGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkucm9sZU9uQ2xpY2soaCkpfSksbWUoMSwicCIsMTYpLHF0KDIsImNsci1pY29uIiwxNyksTmUoMykseWUoKSgpfWlmKDImYyl7Y29uc3QgYT1WZSgpLiRpbXBsaWNpdCxkPVZlKCk7ZHIoInRhYmxlLWFj'@; put 'dGl2ZSIsYS5ST0xFVVJJPT09ZC5yb2xlVXJpKSxDZSgzKSxncigiICIsYS5ST0xFTkFNRSwiICIpfX1mdW5jdGlvbiBYZXQoYyxsKXtpZigxJmMmJihWcigwKSxKZSgxLEtldCw0LDMsImNsci10cmVlLW5vZGUiLDE0KSx6cigpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMSksUmUo'@; put 'Im5nSWYiLCFhLmhpZGRlbil9fWZ1bmN0aW9uIEpldChjLGwpezEmYyYmKG1lKDAsImRpdiIsMTgpKDEsInNwYW4iLDE5KSxOZSgyLCIgTG9hZGluZy4uLiAiKSx5ZSgpKCkpfWZ1bmN0aW9uIFFldChjLGwpezEmYyYmKG1lKDAsImg1IiksTmUoMSwiTm8gTWVtYmVycyBQcmVzZW50IikseWUo'@; put 'KSl9ZnVuY3Rpb24gZXR0KGMsbCl7aWYoMSZjJiYobWUoMCwidHIiLDMyKSgxLCJ0ZCIsMzApLE5lKDIpLHllKCksbWUoMywidGQiLDMwKSxOZSg0KSx5ZSgpLG1lKDUsInRkIiwzMCksTmUoNikseWUoKSxtZSg3LCJ0ZCIsMzApLE5lKDgpLHllKCkoKSksMiZjKXtjb25zdCBhPWwuJGltcGxp'@; put 'Y2l0O1JlKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi91c2Vycy8iK2EuVVJJTUVNKSxDZSgyKSxvcihhLk1FTUJFUk5BTUUpLENlKDIpLG9yKGEuRU1BSUwpLENlKDIpLG9yKGEuTUVNQkVSQ1JFQVRFRCksQ2UoMiksb3IoYS5NRU1CRVJVUERBVEVEKX19ZnVuY3Rpb24gdHR0KGMsbCl7'@; put 'aWYoMSZjJiYobWUoMCwidGFibGUiLDI4KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDI5KSg0LCJiIiksTmUoNSwiTkFNRSIpLHllKCkoKSxtZSg2LCJ0ZCIsMjkpKDcsImIiKSxOZSg4LCJFTUFJTCIpLHllKCkoKSxtZSg5LCJ0ZCIsMjkpKDEwLCJiIiksTmUoMTEsIkNSRUFURUQiKSx5'@; put 'ZSgpKCksbWUoMTIsInRkIiwzMCkoMTMsImIiKSxOZSgxNCwiVVBEQVRFRCIpLHllKCkoKSgpKCksbWUoMTUsInRib2R5IiksSmUoMTYsZXR0LDksNSwidHIiLDMxKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgxNiksUmUoIm5nRm9yT2YiLGEucm9sZU1lbWJlcnMpfX1mdW5jdGlv'@; put 'biBudHQoYyxsKXsxJmMmJihtZSgwLCJoNSIpLE5lKDEsIk5vIEdyb3VwcyBQcmVzZW50ICEiKSx5ZSgpKX1mdW5jdGlvbiBydHQoYyxsKXtpZigxJmMmJihtZSgwLCJ0ciIsMzIpKDEsInRkIiwzMCksTmUoMikseWUoKSxtZSgzLCJ0ZCIsMzApLE5lKDQpLHllKCksbWUoNSwidGQiLDMwKSxO'@; put 'ZSg2KSx5ZSgpLG1lKDcsInRkIiwzMCksTmUoOCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7UmUoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L2dyb3Vwcy8iK2EuVVJJTUVNKSxDZSgyKSxvcihhLk1FTUJFUk5BTUUpLENlKDIpLG9yKGEuRU1BSUwpLENlKDIpLG9yKGEu'@; put 'TUVNQkVSQ1JFQVRFRCksQ2UoMiksb3IoYS5NRU1CRVJVUERBVEVEKX19ZnVuY3Rpb24gaXR0KGMsbCl7aWYoMSZjJiYobWUoMCwidGFibGUiLDI4KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDI5KSg0LCJiIiksTmUoNSwiTkFNRSIpLHllKCkoKSxtZSg2LCJ0ZCIsMjkpKDcsImIiKSxO'@; put 'ZSg4LCJFTUFJTCIpLHllKCkoKSxtZSg5LCJ0ZCIsMjkpKDEwLCJiIiksTmUoMTEsIkNSRUFURUQiKSx5ZSgpKCksbWUoMTIsInRkIiwzMCkoMTMsImIiKSxOZSgxNCwiVVBEQVRFRCIpLHllKCkoKSgpKCksbWUoMTUsInRib2R5IiksSmUoMTYscnR0LDksNSwidHIiLDMxKSx5ZSgpKCkpLDIm'@; put 'Yyl7Y29uc3QgYT1WZSgyKTtDZSgxNiksUmUoIm5nRm9yT2YiLGEucm9sZUdyb3Vwcyl9fWZ1bmN0aW9uIG90dChjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIpKDEsImRpdiIsMjApKDIsImRpdiIsMjEpKDMsInRhYmxlIiwyMikoNCwidGJvZHkiKSg1LCJ0ciIpKDYsInRkIiwyMykoNywicCIs'@; put 'MjQpKDgsImIiKSxOZSg5KSx5ZSgpKCkoKSgpLG1lKDEwLCJ0ciIpKDExLCJ0ZCIsMjMpKDEyLCJpIiksTmUoMTMpLHllKCkoKSgpKCkoKSgpKCksbWUoMTQsImRpdiIsMjApKDE1LCJkaXYiLDIxKSgxNiwiZGl2IiwyNSkoMTcsImRpdiIpKDE4LCJoMyIpLE5lKDE5KSx5ZSgpLEplKDIwLFFl'@; put 'dCwyLDAsImg1Iiw1KSxtZSgyMSwiZGl2IiwyNiksSmUoMjIsdHR0LDE3LDEsInRhYmxlIiwyNykseWUoKSgpLHF0KDIzLCJociIpLG1lKDI0LCJkaXYiKSgyNSwiaDMiKSxOZSgyNikseWUoKSxKZSgyNyxudHQsMiwwLCJoNSIsNSksbWUoMjgsImRpdiIsMjYpLEplKDI5LGl0dCwxNywxLCJ0'@; put 'YWJsZSIsMjcpLHllKCkoKSxxdCgzMCwiYnIiKSx5ZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9VmUoKTtDZSg5KSxvcihhLnJvbGVOYW1lKSxDZSg0KSxvcihhLnJvbGVEZXNjKSxDZSg2KSxncigiTUVNQkVSUyAoIixhLnJvbGVNZW1iZXJzQ291bnQsIikiKSxDZSgxKSxSZSgibmdJZiIsMD09'@; put 'YS5yb2xlTWVtYmVyc0NvdW50KSxDZSgyKSxSZSgibmdJZiIsMCE9YS5yb2xlTWVtYmVyc0NvdW50KSxDZSg0KSxncigiR3JvdXBzICgiLGEucm9sZUdyb3Vwc0NvdW50LCIpIiksQ2UoMSksUmUoIm5nSWYiLDA9PWEucm9sZUdyb3Vwc0NvdW50KSxDZSgyKSxSZSgibmdJZiIsMCE9YS5yb2xl'@; put 'R3JvdXBzQ291bnQpfX1sZXQgd2xlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfKXt0aGlzLnNhc1NlcnZpY2U9YSx0aGlzLmhlbHBlclNlcnZpY2U9ZCx0aGlzLnJvdXRlcj1oLHRoaXMubG9jYXRpb249Zix0aGlzLnJvdXRlPV8sdGhpcy5yb2xlU2VhcmNoPSIiLHRoaXMu'@; put 'cm9sZVVyaT0iIix0aGlzLnJvbGVOYW1lPSIiLHRoaXMucm9sZURlc2M9IiIsdGhpcy5wYXJhbVByZXNlbnQ9ITEsdGhpcy5wYXJhbVVSST0iIix0aGlzLmxvYWRpbmc9ITF9bmdPbkluaXQoKXtHbi52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy91c2VybmF2L3JvbGVzIix2b2lkIDAh'@; put 'PT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkmJih0aGlzLnBhcmFtUHJlc2VudD0hMCx0aGlzLnBhcmFtVVJJPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSksR24udXNlcm5hdi5yb2xlTGlzdCYmIXRoaXMucGFyYW1QcmVzZW50Pyh0aGlzLnJvbGVzPUduLnVzZXJuYXYu'@; put 'cm9sZUxpc3QsdGhpcy5yb2xlU2VhcmNoPUduLnVzZXJuYXYucm9sZVNlYXJjaCk6dm9pZCAwPT09R24udXNlcm5hdi5yb2xlTGlzdD8odGhpcy5sb2FkaW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJyb2xlcyIsbnVsbCkudGhlbihhPT57aWYodGhpcy5sb2Fk'@; put 'aW5nPSExLHRoaXMucm9sZXM9YS5yb2xlcyxHbi51c2VybmF2LnJvbGVMaXN0PWEucm9sZXMsdGhpcy5wYXJhbVByZXNlbnQmJnZvaWQgMCE9PXRoaXMucm9sZXMpe2xldCBkPXRoaXMuZmluZFJvbGUodGhpcy5yb2xlcyx0aGlzLnBhcmFtVVJJKTshMSE9PWQmJih0aGlzLmxvYWRpbmc9ITAs'@; put 'dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieXJvbGUiLHtpd2FudDpbe3JvbGVpZDp0aGlzLnBhcmFtVVJJfV19KS50aGVuKGY9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlTWVtYmVycz1mLnNhc21lbWJlcnMsdGhpcy5yb2xlTWVtYmVyc0NvdW50PWYu'@; put 'c2FzbWVtYmVycy5sZW5ndGgsdGhpcy5yb2xlR3JvdXBzPWYuc2FzZ3JvdXBzLHRoaXMucm9sZUdyb3Vwc0NvdW50PWYuc2FzZ3JvdXBzLmxlbmd0aCx0aGlzLnJvbGVVcmk9ZC5ST0xFVVJJLHRoaXMucm9sZU5hbWU9ZC5ST0xFTkFNRSx0aGlzLnJvbGVEZXNjPWQuUk9MRURFU0N9KSl9fSkp'@; put 'Oih0aGlzLnJvbGVzPUduLnVzZXJuYXYucm9sZUxpc3QsdGhpcy5yb2xlU2VhcmNoPUduLnVzZXJuYXYucm9sZVNlYXJjaCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2Vycm9sZXMiLG51bGwpLnRoZW4oYT0+e2lmKHRoaXMucm9sZXM9YS5yb2xlcyxHbi51c2VybmF2LnJv'@; put 'bGVMaXN0PWEucm9sZXMsdGhpcy5wYXJhbVByZXNlbnQmJnZvaWQgMCE9PXRoaXMucm9sZXMpe2xldCBkPXRoaXMuZmluZFJvbGUodGhpcy5yb2xlcyx0aGlzLnBhcmFtVVJJKTshMSE9PWQmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1l'@; put 'bWJlcnNieXJvbGUiLHtpd2FudDpbe3JvbGVpZDp0aGlzLnBhcmFtVVJJfV19KS50aGVuKGY9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlTWVtYmVycz1mLnNhc21lbWJlcnMsdGhpcy5yb2xlTWVtYmVyc0NvdW50PWYuc2FzbWVtYmVycy5sZW5ndGgsdGhpcy5yb2xlR3JvdXBzPWYuc2Fz'@; put 'Z3JvdXBzLHRoaXMucm9sZUdyb3Vwc0NvdW50PWYuc2FzZ3JvdXBzLmxlbmd0aCx0aGlzLnJvbGVVcmk9ZC5ST0xFVVJJLHRoaXMucm9sZU5hbWU9ZC5ST0xFTkFNRSx0aGlzLnJvbGVEZXNjPWQuUk9MRURFU0N9KSl9fSkpfXJvbGVMaXN0T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2Uu'@; put 'bGlicmFyeU9uRmlsdGVyKHRoaXMucm9sZXMsdGhpcy5yb2xlU2VhcmNoLCJST0xFTkFNRSIpLEduLnVzZXJuYXYucm9sZVNlYXJjaD10aGlzLnJvbGVTZWFyY2h9cm9sZU9uQ2xpY2soYSl7dGhpcy5sb2FkaW5nPSEwO2xldCBkPXRoaXMucm91dGVyLnVybDt0aGlzLmxvY2F0aW9uLnJlcGxh'@; put 'Y2VTdGF0ZSh0aGlzLnBhcmFtUHJlc2VudD9kLnNsaWNlKDAsZC5sYXN0SW5kZXhPZigiLyIpKSsiLyIrZW5jb2RlVVJJKGEuUk9MRVVSSSk6ZCsiLyIrZW5jb2RlVVJJKGEuUk9MRVVSSSkpLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJtZW1iZXJzYnlyb2xlIix7aXdh'@; put 'bnQ6W3tyb2xlaWQ6YS5ST0xFVVJJfV19KS50aGVuKGY9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlTWVtYmVycz1mLnNhc21lbWJlcnMsdGhpcy5yb2xlTWVtYmVyc0NvdW50PWYuc2FzbWVtYmVycy5sZW5ndGgsdGhpcy5yb2xlR3JvdXBzPWYuc2FzZ3JvdXBzLHRoaXMucm9sZUdyb3Vw'@; put 'c0NvdW50PWYuc2FzZ3JvdXBzLmxlbmd0aCx0aGlzLnJvbGVVcmk9YS5ST0xFVVJJLHRoaXMucm9sZU5hbWU9YS5ST0xFTkFNRSx0aGlzLnJvbGVEZXNjPWEuUk9MRURFU0N9KX1maW5kUm9sZShhLGQpe2xldCBoPSExO3JldHVybiBhLmZvckVhY2goZj0+e2YuUk9MRVVSST09PWQmJihoPWYp'@; put 'fSksaH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQob2EpLHR0KFRjKSx0dChEcyksdHQoSmQpLHR0KEdsKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1yb2xlIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250'@; put 'YWluZXIiXSxkZWNsczo3LHZhcnM6NCxjb25zdHM6W1sxLCJzaWRlYmFyLWhlaWdodCJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIsImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWzQs'@; put 'Im5nSWYiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkZpbHRlciBieSBSb2xlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJr'@; put 'ZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJ0YWJsZS1hY3RpdmUiLCJj'@; put 'bGljayIsNCwibmdJZiJdLFszLCJjbGljayJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsImxpc3QtcGFkZGluZyJdLFsic2hhcGUiLCJibG9ja3MtZ3JvdXAiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFsxLCJjbHItcm93Il0sWzEsImNsci1jb2wtOCJdLFsxLCJ0'@; put 'YWJsZSIsInJvbGUtaW5mbyJdLFsxLCJsZWZ0Il0sWzEsInJvbGUtaW5mby10ZXh0Il0sWzEsImNhcmQiLCJyb2xlLWRhdGEiXSxbMSwidGFibGUtY29udGFpbmVyIl0sWyJjbGFzcyIsInRhYmxlIG1lbWJlci10YWJsZSIsNCwibmdJZiJdLFsxLCJ0YWJsZSIsIm1lbWJlci10YWJsZSJdLFsx'@; put 'LCJ3aWR0aC0yNSJdLFsxLCIiXSxbMywicm91dGVyTGluayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInJvdXRlckxpbmsiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJhcHAtc2lkZWJhciIsMCkoMSwiY2xyLXRyZWUiKSxKZSgyLHFldCw2LDMsImNsci10cmVlLW5v'@; put 'ZGUiLDEpLEplKDMsWGV0LDIsMSwibmctY29udGFpbmVyIiwyKSx5ZSgpKCksbWUoNCwiZGl2IiwzKSxKZSg1LEpldCwzLDAsImRpdiIsNCksSmUoNixvdHQsMzEsOCwiZGl2Iiw1KSx5ZSgpKSwyJmEmJihDZSgyKSxSZSgibmdJZiIsZC5yb2xlcyksQ2UoMSksUmUoIm5nRm9yT2YiLGQucm9s'@; put 'ZXMpLENlKDIpLFJlKCJuZ0lmIixkLmxvYWRpbmcpLENlKDEpLFJlKCJuZ0lmIixkLnJvbGVNZW1iZXJzJiYhZC5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbeHMsWmksQnUsV2EsQnMsT3MsZGQsZzEsa2EsZjEsbjNdLHN0eWxlczpbIi5zaWRlYmFyLWhlaWdodFtfbmdjb250ZW50LSVDT01Q'@; put 'JV17aGVpZ2h0OjEwMCV9LnJvbGUtaW5mby10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MjBweH0ucm9sZS1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyOjFweCBzb2xpZCAjYTdhN2E3O2JvcmRl'@; put 'ci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9LnJvbGUtaW5mb1tfbmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnJvbGUtZGF0YVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlm'@; put 'OWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS5yb2xlLWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6dW5zZXR9LnJvbGUtZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250'@; put 'ZW50LSVDT01QJV0sIC5yb2xlLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTt3aWR0aDoxMDAlfS5tZW1iZXItdGFi'@; put 'bGVbX25nY29udGVudC0lQ09NUCVdICAgdGhlYWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2RhZGFkYX0ubWVtYmVyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3Zlcnti'@; put 'YWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7Y3Vyc29yOnBvaW50ZXJ9LnRhYmxlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3cteTpzY3JvbGw7bWF4LWhlaWdodDo3MDBweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LnJvbGUtZGF0YVtfbmdjb250'@; put 'ZW50LSVDT01QJV17bWluLWhlaWdodDp1bnNldCFpbXBvcnRhbnR9fSJdfSksY30pKCksc3R0PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD13cih7dHlw'@; put 'ZTpjLHNlbGVjdG9yczpbWyJhcHAtdXNlcm5hdi1yb3V0ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJnF0KDAsInJvdXRlci1vdXRsZXQiKX0sZGVwZW5kZW5jaWVzOltmcF19KSxjfSkoKSxh'@; put 'dHQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe31uZ09uSW5pdCgpe31uZ09uRGVzdHJveSgpe319cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC12aWV3LXJvdXRlIl1dLGhv'@; put 'c3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmcXQoMCwicm91dGVyLW91dGxldCIpfSxkZXBlbmRlbmNpZXM6W2ZwXX0pLGN9KSgpO2Z1bmN0aW9uIGx0dChjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDEy'@; put 'KX1mdW5jdGlvbiBjdHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItaWNvbiIsMTMpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpO3JldHVybiBoLnVzZXJTZWFyY2g9IiIsanQoaC51c2VyTGlzdE9uRmlsdGVyKCkpfSkseWUoKX19ZnVuY3Rp'@; put 'b24gdXR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIsNikoMSwiZGl2Iiw3KSgyLCJpbnB1dCIsOCw5KSx4dCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkudXNlclNlYXJjaD1oKX0pKCJrZXl1cCIsZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS51c2VyTGlzdE9uRmlsdGVyKCkpfSkseWUoKSxKZSg0LGx0dCwxLDAsImNsci1pY29uIiwxMCksSmUoNSxjdHQsMSwwLCJjbHItaWNvbiIsMTEpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMyksZD1WZSgpO0NlKDIpLFJlKCJuZ01vZGVsIixk'@; put 'LnVzZXJTZWFyY2gpLENlKDIpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aDwxKSxDZSgxKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIGR0dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10cmVlLW5vZGUiLDE1KSx4dCgiY2xpY2siLGZ1bmN0aW9u'@; put 'KCl7QnQoYSk7Y29uc3QgaD1WZSgpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS51c2VyT25DbGljayhoKSl9KSxtZSgxLCJwIiwxNikscXQoMiwiY2xyLWljb24iLDE3KSxOZSgzKSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0LGQ9VmUoKTtkcigidGFibGUtYWN0aXZl'@; put 'IiwobnVsbD09ZC51c2VySW5mbz9udWxsOmQudXNlckluZm8uVVJJKT09PWEuVVJJKSxDZSgzKSxncigiICIsYS5OQU1FLCIgIil9fWZ1bmN0aW9uIGh0dChjLGwpe2lmKDEmYyYmKFZyKDApLEplKDEsZHR0LDQsMywiY2xyLXRyZWUtbm9kZSIsMTQpLHpyKCkpLDImYyl7Y29uc3QgYT1sLiRp'@; put 'bXBsaWNpdDtDZSgxKSxSZSgibmdJZiIsIWEuaGlkZGVuKX19ZnVuY3Rpb24gZnR0KGMsbCl7MSZjJiYobWUoMCwiZGl2IiwxOCkoMSwic3BhbiIsMTkpLE5lKDIsIiBMb2FkaW5nLi4uICIpLHllKCkoKSl9ZnVuY3Rpb24gcHR0KGMsbCl7aWYoMSZjJiYoVnIoMCksbWUoMSwidHIiKSgyLCJ0'@; put 'ZCIsMjcpLE5lKDMsIiBNZXRhZGF0YSBDcmVhdGVkOiAiKSxtZSg0LCJiIiksTmUoNSkseWUoKSgpKCksbWUoNiwidHIiKSg3LCJ0ZCIsMjcpLE5lKDgsIiBNZXRhZGF0YSBVcGRhdGVkOiAiKSxtZSg5LCJiIiksTmUoMTApLHllKCkoKSgpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSg1'@; put 'KSxvcihhLnVzZXJJbmZvLk1FVEFEQVRBQ1JFQVRFRCksQ2UoNSksb3IoYS51c2VySW5mby5NRVRBREFUQVVQREFURUQpfX1mdW5jdGlvbiBndHQoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDIxKSgxLCJkaXYiLDIyKSgyLCJ0YWJsZSIsMjYpKDMsInRib2R5IikoNCwidHIiKSg1LCJ0ZCIs'@; put 'MjcpKDYsInAiLDI4KSg3LCJiIiksTmUoOCkseWUoKSgpKCkoKSxtZSg5LCJ0ciIpKDEwLCJ0ZCIsMjcpKDExLCJwIiwyOCkoMTIsImIiKSxOZSgxMykseWUoKSgpKCkoKSxKZSgxNCxwdHQsMTEsMiwibmctY29udGFpbmVyIiw1KSx5ZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2Uo'@; put 'OCksb3IoYS51c2VySW5mby5OQU1FKSxDZSg1KSxvcihhLnVzZXJJbmZvLkRJU1BMQVlOQU1FKSxDZSgxKSxSZSgibmdJZiIsYS5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhczkpfX1mdW5jdGlvbiBtdHQoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDIxKSgxLCJkaXYiLDIyKSgyLCJ0'@; put 'YWJsZSIsMjYpKDMsInRib2R5IikoNCwidHIiKSg1LCJ0ZCIsMjcpKDYsInAiLDI4KSg3LCJiIiksTmUoOCkseWUoKSgpKCkoKSxtZSg5LCJ0ciIpKDEwLCJ0ZCIsMjcpLE5lKDExLCIgVXNlciBJRDogIiksbWUoMTIsImIiKSxOZSgxMykseWUoKSgpKCksbWUoMTQsInRyIikoMTUsInRkIiwy'@; put 'NyksTmUoMTYsIiBVc2VyIHByb3ZpZGVyIElEOiAiKSxtZSgxNywiYiIpLE5lKDE4KSx5ZSgpKCkoKSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoOCksb3IoYS51c2VySW5mby5OQU1FKSxDZSg1KSxvcihhLnVzZXJJbmZvLlVSSSksQ2UoNSksb3IoYS51c2VySW5mby5QUk9WSURF'@; put 'Uil9fWZ1bmN0aW9uIHZ0dChjLGwpezEmYyYmKG1lKDAsImg1IiksTmUoMSwiTm8gRW1haWxzIFByZXNlbnQiKSx5ZSgpKX1mdW5jdGlvbiBfdHQoYyxsKXtpZigxJmMmJihtZSgwLCJ0ciIpKDEsInRkIiwzMSksTmUoMikseWUoKSxtZSgzLCJ0ZCIsMzEpLE5lKDQpLHllKCkoKSksMiZjKXtj'@; put 'b25zdCBhPWwuJGltcGxpY2l0O0NlKDIpLG9yKGEuRU1BSUwpLENlKDIpLG9yKGEuVFlQRSl9fWZ1bmN0aW9uIGJ0dChjLGwpe2lmKDEmYyYmKG1lKDAsInRhYmxlIiwyOSkoMSwidGhlYWQiKSgyLCJ0ciIpKDMsInRkIiwzMCkoNCwiYiIpLE5lKDUsIkVNQUlMIikseWUoKSgpLG1lKDYsInRk'@; put 'IiwzMSkoNywiYiIpLE5lKDgsIlRZUEUiKSx5ZSgpKCkoKSgpLG1lKDksInRib2R5IiksSmUoMTAsX3R0LDUsMiwidHIiLDIpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEwKSxSZSgibmdGb3JPZiIsYS51c2VyRW1haWxzKX19ZnVuY3Rpb24geXR0KGMsbCl7aWYoMSZjJiYobWUo'@; put 'MCwiZGl2IikoMSwiaDMiKSxOZSgyKSx5ZSgpLEplKDMsdnR0LDIsMCwiaDUiLDUpLG1lKDQsImRpdiIsMjQpLEplKDUsYnR0LDExLDEsInRhYmxlIiwyNSkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMiksZ3IoIkVNQUlMUyAoIixhLnVzZXJFbWFpbHNDb3VudHx8IjAiLCIpIiks'@; put 'Q2UoMSksUmUoIm5nSWYiLDA9PWEudXNlckVtYWlsc0NvdW50KSxDZSgyKSxSZSgibmdJZiIsMCE9YS51c2VyRW1haWxzQ291bnQpfX1mdW5jdGlvbiB3dHQoYyxsKXsxJmMmJnF0KDAsImhyIil9ZnVuY3Rpb24gQ3R0KGMsbCl7MSZjJiYobWUoMCwiaDUiKSxOZSgxLCJObyBHcm91cHMgUHJl'@; put 'c2VudCIpLHllKCkpfWZ1bmN0aW9uIFN0dChjLGwpe2lmKDEmYyYmKG1lKDAsInRkIiwzMyksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0O1JlKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi9ncm91cHMvIithLlVSSSksQ2UoMSksZ3IoIiAiLGEuR1JPVVBOQU1F'@; put 'LCIgIil9fWZ1bmN0aW9uIE10dChjLGwpe2lmKDEmYyYmKFZyKDApLG1lKDEsInRkIiwzMyksTmUoMikseWUoKSx6cigpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7Q2UoMSksUmUoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L2dyb3Vwcy8iKyhhLkdST1VQVVJJfHxhLlVSSSkp'@; put 'LENlKDEpLGdyKCIgIixhLkdST1VQTkFNRSwiICIpfX1mdW5jdGlvbiB4dHQoYyxsKXtpZigxJmMmJihtZSgwLCJ0ciIpLEplKDEsU3R0LDIsMiwidGQiLDMyKSxKZSgyLE10dCwzLDIsIm5nLWNvbnRhaW5lciIsNSkseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLFJlKCJuZ0lmIixh'@; put 'LnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2FzVml5YSksQ2UoMSksUmUoIm5nSWYiLGEuc2VydmVyVHlwZSE9PWEuU2VydmVyVHlwZS5TYXNWaXlhKX19ZnVuY3Rpb24gRXR0KGMsbCl7aWYoMSZjJiYobWUoMCwidGFibGUiLDI5KSgxLCJ0Ym9keSIpLEplKDIseHR0LDMsMiwidHIiLDIp'@; put 'LHllKCkoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDIpLFJlKCJuZ0Zvck9mIixhLnVzZXJHcm91cHMpfX1mdW5jdGlvbiBrdHQoYyxsKXsxJmMmJnF0KDAsImhyIil9ZnVuY3Rpb24gQXR0KGMsbCl7MSZjJiYobWUoMCwiaDUiKSxOZSgxLCJObyBSb2xlcyBQcmVzZW50IikseWUoKSl9ZnVu'@; put 'Y3Rpb24gVHR0KGMsbCl7aWYoMSZjJiYobWUoMCwidHIiKSgxLCJ0ZCIsMzQpLE5lKDIpLHllKCkoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoNCk7Q2UoMSksUmUoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L3JvbGVzLyIrZC5nZXRSb2xlVVJJKGEuUk9MRVVSSSkpLENl'@; put 'KDEpLGdyKCIgIixhLlJPTEVOQU1FLCIgIil9fWZ1bmN0aW9uIER0dChjLGwpe2lmKDEmYyYmKG1lKDAsInRhYmxlIiwyOSkoMSwidGJvZHkiKSxKZSgyLFR0dCwzLDIsInRyIiwyKSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgyKSxSZSgibmdGb3JPZiIsYS51c2VyUm9sZXMpfX1m'@; put 'dW5jdGlvbiBJdHQoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiKSgxLCJoMyIpLE5lKDIpLHllKCksSmUoMyxBdHQsMiwwLCJoNSIsNSksbWUoNCwiZGl2IiwyNCksSmUoNSxEdHQsMywxLCJ0YWJsZSIsMjUpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKDIpO0NlKDIpLGdyKCJST0xFUyAoIixh'@; put 'LnVzZXJSb2xlc0NvdW50fHwiMCIsIikiKSxDZSgxKSxSZSgibmdJZiIsMD09YS51c2VyUm9sZXNDb3VudCksQ2UoMiksUmUoIm5nSWYiLDAhPWEudXNlclJvbGVzQ291bnQpfX1mdW5jdGlvbiBMdHQoYyxsKXsxJmMmJnF0KDAsImhyIil9ZnVuY3Rpb24gUnR0KGMsbCl7MSZjJiYobWUoMCwi'@; put 'aDUiKSxOZSgxLCJObyBMb2dpbnMgUHJlc2VudCIpLHllKCkpfWZ1bmN0aW9uIE90dChjLGwpe2lmKDEmYyYmKG1lKDAsInRyIikoMSwidGQiLDMxKSxOZSgyKSx5ZSgpLG1lKDMsInRkIiwzMSksTmUoNCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7Q2UoMiksb3IoYS5ET01B'@; put 'SU4pLENlKDIpLG9yKGEuVVNFUklEKX19ZnVuY3Rpb24gUHR0KGMsbCl7aWYoMSZjJiYobWUoMCwidGFibGUiLDI5KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDMwKSg0LCJiIiksTmUoNSwiRE9NQUlOIikseWUoKSgpLG1lKDYsInRkIikoNywiYiIpLE5lKDgsIlVTRVIgSUQiKSx5ZSgp'@; put 'KCkoKSgpLG1lKDksInRib2R5IiksSmUoMTAsT3R0LDUsMiwidHIiLDIpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEwKSxSZSgibmdGb3JPZiIsYS51c2VyTG9naW5zKX19ZnVuY3Rpb24gRnR0KGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IikoMSwiaDMiKSxOZSgyKSx5ZSgpLEpl'@; put 'KDMsUnR0LDIsMCwiaDUiLDUpLG1lKDQsImRpdiIsMjQpLEplKDUsUHR0LDExLDEsInRhYmxlIiwyNSkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMiksZ3IoIkxPR0lOUyAoIixhLnVzZXJMb2dpbnNDb3VudHx8IjAiLCIpIiksQ2UoMSksUmUoIm5nSWYiLDA9PWEudXNlckxvZ2lu'@; put 'c0NvdW50KSxDZSgyKSxSZSgibmdJZiIsMCE9YS51c2VyTG9naW5zQ291bnQpfX1mdW5jdGlvbiBIdHQoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiKSxKZSgxLGd0dCwxNSwzLCJkaXYiLDIwKSxKZSgyLG10dCwxOSwzLCJkaXYiLDIwKSxtZSgzLCJkaXYiLDIxKSg0LCJkaXYiLDIyKSg1LCJk'@; put 'aXYiLDIzKSxKZSg2LHl0dCw2LDMsImRpdiIsNSksSmUoNyx3dHQsMSwwLCJociIsNSksbWUoOCwiZGl2IikoOSwiaDMiKSxOZSgxMCkseWUoKSxKZSgxMSxDdHQsMiwwLCJoNSIsNSksbWUoMTIsImRpdiIsMjQpLEplKDEzLEV0dCwzLDEsInRhYmxlIiwyNSkseWUoKSgpLEplKDE0LGt0dCwx'@; put 'LDAsImhyIiw1KSxKZSgxNSxJdHQsNiwzLCJkaXYiLDUpLEplKDE2LEx0dCwxLDAsImhyIiw1KSxKZSgxNyxGdHQsNiwzLCJkaXYiLDUpLHF0KDE4LCJiciIpLHllKCkoKSgpKCkpLDImYyl7Y29uc3QgYT1WZSgpO0NlKDEpLFJlKCJuZ0lmIixhLnNlcnZlclR5cGUhPT1hLlNlcnZlclR5cGUu'@; put 'U2FzVml5YSksQ2UoMSksUmUoIm5nSWYiLGEuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXNWaXlhJiZhLnVzZXJJbmZvKSxDZSg0KSxSZSgibmdJZiIsYS5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhczkpLENlKDEpLFJlKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5'@; put 'cGUuU2FzOSksQ2UoMyksZ3IoIkdST1VQUyAoIixhLnVzZXJHcm91cHNDb3VudHx8IjAiLCIpIiksQ2UoMSksUmUoIm5nSWYiLDA9PWEudXNlckdyb3Vwc0NvdW50KSxDZSgyKSxSZSgibmdJZiIsMCE9YS51c2VyR3JvdXBzQ291bnQpLENlKDEpLFJlKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1h'@; put 'LlNlcnZlclR5cGUuU2FzOSksQ2UoMSksUmUoIm5nSWYiLGEuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXM5KSxDZSgxKSxSZSgibmdJZiIsYS5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhczkpLENlKDEpLFJlKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2Fz'@; put 'OSl9fWxldCBDbGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLF8pe3RoaXMuaGVscGVyU2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMucm91dGU9aCx0aGlzLmxvY2F0aW9uPWYsdGhpcy5yb3V0ZXI9Xyx0aGlzLmxvYWRpbmc9ITEsdGhpcy51c2VyU2VhcmNoPSIi'@; put 'LHRoaXMucGFyYW1QcmVzZW50PSExLHRoaXMucGFyYW1OYW1lPSIiLHRoaXMuc2FzanNDb25maWc9bmV3IHIxLlNBU2pzQ29uZmlnLHRoaXMuaXNWaXlhPSExLHRoaXMuc2VydmVyVHlwZT0iIix0aGlzLlNlcnZlclR5cGU9WmMuRCx0aGlzLnNlcnZlclR5cGU9dGhpcy5zYXNTZXJ2aWNlLmdl'@; put 'dFNlcnZlclR5cGUoKSx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLCJTQVNWSVlBIj09PXRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSYmKHRoaXMuaXNWaXlhPSEwKX1uZ09uSW5pdCgpe2lmKEduLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSJ2'@; put 'aWV3L3VzZXJuYXYvdXNlcnMiLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSYmKHRoaXMucGFyYW1QcmVzZW50PSEwLHRoaXMucGFyYW1OYW1lPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSksR24udXNlcm5hdi51c2VyTGlzdCYmIXRoaXMucGFyYW1QcmVz'@; put 'ZW50KXRoaXMudXNlcnM9R24udXNlcm5hdi51c2VyTGlzdCx0aGlzLnVzZXJTZWFyY2g9R24udXNlcm5hdi51c2VyU2VhcmNoO2Vsc2UgaWYodm9pZCAwPT09R24udXNlcm5hdi51c2VyTGlzdD8odGhpcy5sb2FkaW5nPSEwLHRoaXMuaXNWaXlhP2ZldGNoKHRoaXMuc2FzanNDb25maWcuc2Vy'@; put 'dmVyVXJsKyIvaWRlbnRpdGllcy91c2Vycz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGE9PmEudGV4dCgpKS50aGVuKGE9PntsZXQgaD1KU09OLnBhcnNlKGEpLml0ZW1zLm1hcChmPT4oe05BTUU6Zi5uYW1lLFVSSTpmLmlkLFBST1ZJ'@; put 'REVSOmYucHJvdmlkZXJJZH0pKTt0aGlzLmxvYWRpbmc9ITEsdGhpcy51c2Vycz1oLEduLnVzZXJuYXYudXNlckxpc3Q9aH0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJtZW1iZXJzIixudWxsKS50aGVuKGE9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy51c2Vycz1hLnVz'@; put 'ZXJzLEduLnVzZXJuYXYudXNlckxpc3Q9YS51c2Vyc30pKToodGhpcy51c2Vycz1Hbi51c2VybmF2LnVzZXJMaXN0LHRoaXMudXNlclNlYXJjaD1Hbi51c2VybmF2LnVzZXJTZWFyY2gpLHRoaXMucGFyYW1QcmVzZW50KWlmKHRoaXMubG9hZGluZz0hMCx0aGlzLmlzVml5YSl7bGV0IGE9dGhp'@; put 'cy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpO2ZldGNoKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy91c2Vycy8iK2ErIi9tZW1iZXJzaGlwcz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGQ9PmQudGV4dCgp'@; put 'KS50aGVuKGQ9PntsZXQgaD1KU09OLnBhcnNlKGQpO3RoaXMudXNlckRhdGE9aCx0aGlzLmxvYWRpbmc9ITE7bGV0IGY9aC5pdGVtcy5tYXAoXz0+KHtHUk9VUE5BTUU6Xy5uYW1lLFVSSTpfLmlkfSkpO3RoaXMudXNlckdyb3Vwcz1mLHRoaXMudXNlckdyb3Vwc0NvdW50PWYubGVuZ3RoLHRo'@; put 'aXMudXNlcnMmJih0aGlzLnVzZXJJbmZvPXRoaXMudXNlcnMuZmluZChfPT5fLlVSST09PWEpKX0pfWVsc2V7Y29uc3QgYT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmk7dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcmdyb3Vwc2J5bWVtYmVyIix7aXdhbnQ6W3t1'@; put 'cmk6YX1dfSkudGhlbihoPT57c3dpdGNoKHRoaXMubG9hZGluZz0hMSx0aGlzLnNlcnZlclR5cGUpe2Nhc2UgWmMuRC5TYXM5OnRoaXMudXNlckluZm89aC5pbmZvWzBdLHRoaXMudXNlckVtYWlscz1oLmVtYWlscyx0aGlzLnVzZXJFbWFpbHNDb3VudD1oLmVtYWlscy5sZW5ndGgsdGhpcy51'@; put 'c2VyUm9sZXM9aC5yb2xlcyx0aGlzLnVzZXJSb2xlc0NvdW50PWgucm9sZXMubGVuZ3RoLHRoaXMudXNlckxvZ2lucz1oLmxvZ2lucyx0aGlzLnVzZXJMb2dpbnNDb3VudD1oLmxvZ2lucy5sZW5ndGg7YnJlYWs7Y2FzZSBaYy5ELlNhc2pzOmlmKHRoaXMudXNlcnMpdGhpcy51c2VySW5mbz10'@; put 'aGlzLnVzZXJzLmZpbmQoZj0+Zi5VUkk9PT1hKTtlbHNle2NvbnN0IGY9aC5ncm91cHNbMF07dGhpcy51c2VySW5mbz17VVJJOmYuSUQsTkFNRTpmLk5BTUUsRElTUExBWU5BTUU6Zi5OQU1FfX19dGhpcy51c2VyRGF0YT1oLHRoaXMudXNlckdyb3Vwcz1oLmdyb3Vwcyx0aGlzLnVzZXJHcm91'@; put 'cHNDb3VudD1oLmdyb3Vwcy5sZW5ndGh9KX19dXNlckxpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy51c2Vycyx0aGlzLnVzZXJTZWFyY2gsIk5BTUUiKSxHbi51c2VybmF2LnVzZXJTZWFyY2g9dGhpcy51c2VyU2VhcmNofXVzZXJPbkNsaWNr'@; put 'KGEpe3RoaXMubG9hZGluZz0hMDtsZXQgZD10aGlzLnJvdXRlci51cmw7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5wYXJhbVByZXNlbnQ/ZC5zbGljZSgwLGQubGFzdEluZGV4T2YoIi8iKSkrIi8iK2VuY29kZVVSSShhLlVSSSk6ZCsiLyIrZW5jb2RlVVJJKGEuVVJJKSksdGhp'@; put 'cy5pc1ZpeWE/ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL3VzZXJzLyIrYS5VUkkrIi9tZW1iZXJzaGlwcz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGg9PmgudGV4dCgpKS50aGVuKGg9PntsZXQg'@; put 'Zj1KU09OLnBhcnNlKGgpO3RoaXMudXNlckRhdGE9Zix0aGlzLmxvYWRpbmc9ITE7bGV0IF89Zi5pdGVtcy5tYXAoVD0+KHtHUk9VUE5BTUU6VC5uYW1lLFVSSTpULmlkfSkpO3RoaXMudXNlckdyb3Vwcz1fLHRoaXMudXNlckdyb3Vwc0NvdW50PV8ubGVuZ3RoLHRoaXMudXNlcnMmJih0aGlz'@; put 'LnVzZXJJbmZvPXRoaXMudXNlcnMuZmluZChUPT5ULlVSST09PWEuVVJJKSl9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VyZ3JvdXBzYnltZW1iZXIiLHtpd2FudDpbe3VyaTphLlVSSX1dfSkudGhlbihmPT57c3dpdGNoKHRoaXMubG9hZGluZz0hMSx0aGlzLnNlcnZl'@; put 'clR5cGUpe2Nhc2UgWmMuRC5TYXM5OnRoaXMudXNlckluZm89Zi5pbmZvWzBdLHRoaXMudXNlckVtYWlscz1mLmVtYWlscyx0aGlzLnVzZXJFbWFpbHNDb3VudD1mLmVtYWlscy5sZW5ndGgsdGhpcy51c2VyUm9sZXM9Zi5yb2xlcyx0aGlzLnVzZXJSb2xlc0NvdW50PWYucm9sZXMubGVuZ3Ro'@; put 'LHRoaXMudXNlckxvZ2lucz1mLmxvZ2lucyx0aGlzLnVzZXJMb2dpbnNDb3VudD1mLmxvZ2lucy5sZW5ndGg7YnJlYWs7Y2FzZSBaYy5ELlNhc2pzOmlmKHRoaXMudXNlcnMpdGhpcy51c2VySW5mbz10aGlzLnVzZXJzLmZpbmQoXz0+Xy5VUkk9PT1hLlVSSSk7ZWxzZXtjb25zdCBfPWYuZ3Jv'@; put 'dXBzWzBdO3RoaXMudXNlckluZm89e1VSSTpfLklELE5BTUU6Xy5OQU1FLERJU1BMQVlOQU1FOl8uTkFNRX19fXRoaXMudXNlckRhdGE9Zix0aGlzLnVzZXJHcm91cHM9Zi5ncm91cHMsdGhpcy51c2VyR3JvdXBzQ291bnQ9Zi5ncm91cHMubGVuZ3RofSl9Z2V0Um9sZVVSSShhKXtyZXR1cm4g'@; put 'YS5zcGxpdCgiT01TT0JKOklkZW50aXR5R3JvdXAiKVsxXS5zbGljZSgxKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVGMpLHR0KG9hKSx0dChHbCksdHQoSmQpLHR0KERzKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltb'@; put 'ImFwcC11c2VyIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo3LHZhcnM6NCxjb25zdHM6W1sxLCJzaWRlYmFyLWhlaWdodCJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1hcmVhIl0s'@; put 'WyJjbGFzcyIsImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkZpbHRlciBieSBVc2VycyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0'@; put 'ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIs'@; put 'InRpbWVzIiwzLCJjbGljayJdLFszLCJ0YWJsZS1hY3RpdmUiLCJjbGljayIsNCwibmdJZiJdLFszLCJjbGljayJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsImxpc3QtcGFkZGluZyJdLFsic2hhcGUiLCJ1c2VyIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbImNs'@; put 'YXNzIiwiY2xyLXJvdyIsNCwibmdJZiJdLFsxLCJjbHItcm93Il0sWzEsImNsci1jb2wtOCJdLFsxLCJjYXJkIiwidXNlci1kYXRhIl0sWzEsInRhYmxlLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJ0YWJsZSB1c2VyLXRhYmxlIiw0LCJuZ0lmIl0sWzEsInRhYmxlIiwidXNlci1pbmZvIl0sWzEs'@; put 'ImxlZnQiXSxbMSwidXNlci1pbmZvLXRleHQiXSxbMSwidGFibGUiLCJ1c2VyLXRhYmxlIl0sWzEsIndpZHRoLTUwIl0sWzEsIiJdLFsicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsImNsYXNzIiwiIiwzLCJyb3V0ZXJMaW5rIiw0LCJuZ0lmIl0sWyJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0'@; put 'aXZlIiwxLCIiLDMsInJvdXRlckxpbmsiXSxbMywicm91dGVyTGluayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKG1lKDAsImFwcC1zaWRlYmFyIiwwKSgxLCJjbHItdHJlZSIpLEplKDIsdXR0LDYsMywiY2xyLXRyZWUtbm9kZSIsMSksSmUoMyxodHQsMiwxLCJuZy1jb250YWlu'@; put 'ZXIiLDIpLHllKCkoKSxtZSg0LCJkaXYiLDMpLEplKDUsZnR0LDMsMCwiZGl2Iiw0KSxKZSg2LEh0dCwxOSwxMSwiZGl2Iiw1KSx5ZSgpKSwyJmEmJihDZSgyKSxSZSgibmdJZiIsZC51c2VycyksQ2UoMSksUmUoIm5nRm9yT2YiLGQudXNlcnMpLENlKDIpLFJlKCJuZ0lmIixkLmxvYWRpbmcp'@; put 'LENlKDEpLFJlKCJuZ0lmIixkLnVzZXJEYXRhJiYhZC5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbeHMsWmksQnUsR18sV2EsQnMsT3MsZGQsZzEsa2EsZjEsbjNdLHN0eWxlczpbIi5zaWRlYmFyLWhlaWdodFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCV9LnVzZXItaW5mby10ZXh0'@; put 'W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MjBweH0udXNlci1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyOjFweCBzb2xpZCAjYTdhN2E3O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHgg'@; put 'NXB4ICNkYWQ3ZDd9LnVzZXItaW5mb1tfbmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnVzZXItZGF0YVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNzti'@; put 'b3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS51c2VyLWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6YXV0b30udXNlci1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnVzZXItZGF0YVtfbmdjb250'@; put 'ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnVzZXItdGFibGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTt3aWR0aDoxMDAlfS51c2VyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoZWFkW19uZ2Nv'@; put 'bnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNkYWRhZGF9LnVzZXItdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGJvZHlbX25nY29udGVudC0lQ09NUCVdICAgdHJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtjdXJzb3I6cG9pbnRl'@; put 'cn0ud2lkdGgtNTBbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjUwJX0ud2lkdGgtMzNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjMzJX0udGFibGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy15OnNjcm9sbDttYXgtaGVpZ2h0OjUwMHB4fUBtZWRpYSBzY3JlZW4g'@; put 'YW5kIChtYXgtd2lkdGg6IDc2OHB4KXsudXNlci1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OnVuc2V0IWltcG9ydGFudH19Il19KSxjfSkoKSxOdHQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuaHR0cD1hLHRoaXMuYXBwU3RvcmVTZXJ2aWNlPWQsdGhp'@; put 'cy52aXlhQXBpcz17QW5hbHl0aWNzX0luc2lnaHRzOntpbnNpZ2h0czoiL2luc2lnaHRzIn0sVmlzdWFsaXNhdGlvbjp7cmVwb3J0czoiL3JlcG9ydHMiLHJlcG9ydEltYWdlczoiL3JlcG9ydEltYWdlcyIscmVwb3J0VHJhbnNmb3JtczoiL3JlcG9ydFRyYW5zZm9ybXMiLHZpc3VhbEFuYWx5'@; put 'dGljczoiL3Zpc3VhbEFuYWx5dGljcyJ9LENvbXB1dGU6e2pvYnM6Ii9qb2JEZWZpbml0aW9ucyIsam9iRXhlY3V0aW9uOiIvam9iRXhlY3V0aW9uIn0sRGVjaXNpb25fTWFuYWdlbWVudDp7bW9kZWxNYW5hZ2VtZW50OiIvbW9kZWxNYW5hZ2VtZW50Iixtb2RlbFJlcG9zaXRvcnk6Ii9tb2Rl'@; put 'bFJlcG9zaXRvcnkiLG1vZGVsUHVibGlzaDoiL21vZGVsUHVibGlzaCIsbWljcm9hbmFseXRpY1Njb3JlOiIvbWljcm9hbmFseXRpY1Njb3JlIixkYXRhTWluaW5nOiIvZGF0YU1pbmluZyIsYnVzaW5lc3NSdWxlczoiL2J1c2luZXNzUnVsZXMiLHJlZmVyZW5jZURhdGE6Ii9yZWZlcmVuY2VE'@; put 'YXRhIix0cmVhdG1lbnREZWZpbml0aW9uczoiL3RyZWF0bWVudERlZmluaXRpb25zIixzdWJqZWN0Q29udGFjdHM6Ii9zdWJqZWN0Q29udGFjdHMiLGRlY2lzaW9uc1J1bnRpbWVCdWlsZGVyOiIvZGVjaXNpb25zUnVudGltZUJ1aWxkZXIifSxDb3JlX1NlcnZpY2VzOntmb2xkZXJzOiIvZm9s'@; put 'ZGVycyIsZmlsZXM6Ii9maWxlcyIsYW5ub3RhdGlvbnM6Ii9hbm5vdGF0aW9ucyIsYXV0aG9yaXphdGlvbjoiL2F1dGhvcml6YXRpb24iLHJlbGF0aW9uc2hpcHM6Ii9yZWxhdGlvbnNoaXBzIixTQVNMb2dvbjoiL1NBU0xvZ29uIn0sQXV0b21hdGVkX01hY2hpbmVfTGVhcm5pbmc6e21sUGlw'@; put 'ZWxpbmVBdXRvbWF0aW9uOiIvbWxQaXBlbGluZUF1dG9tYXRpb24ifSxPdGhlcjp7aWRlbnRpdGllczoiL2lkZW50aXRpZXMifX0sdGhpcy5zZXJ2ZXJVcmw9IiI7Y29uc3QgaD10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpO3RoaXMuc2VydmVyVXJsPWg/LnNl'@; put 'cnZlclVybHx8IiIsdGhpcy5nZXRCeUNvbGxlY3Rpb24oImpvYnMiKS5zdWJzY3JpYmUoZj0+e2NvbnNvbGUubG9nKCJyZXMiLGYpfSl9Z2V0QWxsQ29sbGVjdGlvbnMoKXtyZXR1cm4gdGhpcy52aXlhQXBpc31nZXRCeVVybChhKXtyZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnNlcnZl'@; put 'clVybH0ke2F9YCx7d2l0aENyZWRlbnRpYWxzOiEwfSl9Z2V0QnlDb2xsZWN0aW9uKGEpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc2VydmVyVXJsfSR7YX1gLHt3aXRoQ3JlZGVudGlhbHM6ITB9KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8'@; put 'YykoYXIoaFApLGFyKGU4KSl9LGMuXHUwMjc1cHJvdj1ocih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksY30pKCk7ZnVuY3Rpb24gVnR0KGMsbCl7MSZjJiZxdCgwLCJkaXYiLDkpfWZ1bmN0aW9uIEJ0dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1Wbigp'@; put 'O21lKDAsInNwYW4iLDEwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS5vblZhbHVlQ2xpY2soaCkpfSksTmUoMSkseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7Q2UoMSksb3IoYS5kZXNjcmlwdGlv'@; put 'bil9fWZ1bmN0aW9uIGp0dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsInNlY3Rpb24iLDExKSgxLCJuZ3gtanNvbi12aWV3ZXIiLDEyKSx4dCgic2VnbWVudExpbmtDbGlja2VkIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoMikub25TZWdtZW50TGlua0NsaWNrKGgp'@; put 'KX0pLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQsZD1WZSgpO0NlKDEpLFJlKCJqc29uIixhLnZhbHVlKSgiZXhwYW5kZWQiLGQuZXhwYW5kZWQpKCJkZXB0aCIsZC5kZXB0aCkoIl9jdXJyZW50RGVwdGgiLGQuX2N1cnJlbnREZXB0aCsxKX19Y29uc3QgenR0PWZ1bmN0'@; put 'aW9uKGMpe3JldHVyblsic2VnbWVudCIsY119LFV0dD1mdW5jdGlvbihjLGwpe3JldHVybnsic2VnbWVudC1tYWluIjohMCxleHBhbmRhYmxlOmMsZXhwYW5kZWQ6bH19O2Z1bmN0aW9uIFp0dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsInNlY3Rpb24iLDIpKDEsInNlY3Rpb24i'@; put 'LDMpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBmPUJ0KGEpLiRpbXBsaWNpdDtyZXR1cm4ganQoVmUoKS50b2dnbGUoZikpfSksSmUoMixWdHQsMSwwLCJkaXYiLDQpLG1lKDMsInNwYW4iLDUpLE5lKDQpLHllKCksbWUoNSwic3BhbiIsNiksTmUoNiwiOiAiKSx5ZSgpLEplKDcsQnR0'@; put 'LDIsMSwic3BhbiIsNykseWUoKSxKZSg4LGp0dCwyLDQsInNlY3Rpb24iLDgpLHllKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9VmUoKTtSZSgibmdDbGFzcyIsSjIoNix6dHQsInNlZ21lbnQtdHlwZS0iK2EudHlwZSkpLENlKDEpLFJlKCJuZ0NsYXNzIixRMig4LFV0dCxkLmlz'@; put 'RXhwYW5kYWJsZShhKSxhLmV4cGFuZGVkKSksQ2UoMSksUmUoIm5nSWYiLGQuaXNFeHBhbmRhYmxlKGEpKSxDZSgyKSxvcihhLmtleSksQ2UoMyksUmUoIm5nSWYiLCFhLmV4cGFuZGVkfHwhZC5pc0V4cGFuZGFibGUoYSkpLENlKDEpLFJlKCJuZ0lmIixhLmV4cGFuZGVkJiZkLmlzRXhwYW5k'@; put 'YWJsZShhKSl9fWxldCBZdHQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXhwYW5kZWQ9ITAsdGhpcy5kZXB0aD0tMSx0aGlzLl9jdXJyZW50RGVwdGg9MCx0aGlzLnNlZ21lbnRMaW5rQ2xpY2tlZD1uZXcgRXIsdGhpcy5zZWdtZW50cz1bXX1uZ09uQ2hhbmdlcygpe3RoaXMu'@; put 'c2VnbWVudHM9W10sdGhpcy5qc29uPXRoaXMuZGVjeWNsZSh0aGlzLmpzb24pLCJvYmplY3QiPT10eXBlb2YgdGhpcy5qc29uP09iamVjdC5rZXlzKHRoaXMuanNvbikuZm9yRWFjaChhPT57dGhpcy5zZWdtZW50cy5wdXNoKHRoaXMucGFyc2VLZXlWYWx1ZShhLHRoaXMuanNvblthXSkpfSk6'@; put 'dGhpcy5zZWdtZW50cy5wdXNoKHRoaXMucGFyc2VLZXlWYWx1ZShgKCR7dHlwZW9mIHRoaXMuanNvbn0pYCx0aGlzLmpzb24pKX1pc0V4cGFuZGFibGUoYSl7cmV0dXJuIm9iamVjdCI9PT1hLnR5cGV8fCJhcnJheSI9PT1hLnR5cGV9dG9nZ2xlKGEpe3RoaXMuaXNFeHBhbmRhYmxlKGEpJiYo'@; put 'YS5leHBhbmRlZD0hYS5leHBhbmRlZCl9b25WYWx1ZUNsaWNrKGEpeyJsaW5rIj09PWEudHlwZSYmdGhpcy5zZWdtZW50TGlua0NsaWNrZWQuZW1pdChhLnZhbHVlKX1vblNlZ21lbnRMaW5rQ2xpY2soYSl7dGhpcy5zZWdtZW50TGlua0NsaWNrZWQuZW1pdChhKX1wYXJzZUtleVZhbHVlKGEs'@; put 'ZCl7Y29uc3QgaD17a2V5OmEsdmFsdWU6ZCx0eXBlOnZvaWQgMCxkZXNjcmlwdGlvbjoiIitkLGV4cGFuZGVkOnRoaXMuaXNFeHBhbmRlZCgpfTtzd2l0Y2godHlwZW9mIGgudmFsdWUpe2Nhc2UibnVtYmVyIjpoLnR5cGU9Im51bWJlciI7YnJlYWs7Y2FzZSJib29sZWFuIjpoLnR5cGU9ImJv'@; put 'b2xlYW4iO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmgudHlwZT0iZnVuY3Rpb24iO2JyZWFrO2Nhc2Uic3RyaW5nIjppZih0aGlzLmlzTGluayhoLnZhbHVlKSl7aC50eXBlPSJsaW5rIjticmVha31oLnR5cGU9InN0cmluZyIsaC5kZXNjcmlwdGlvbj0nIicraC52YWx1ZSsnIic7YnJlYWs7Y2Fz'@; put 'ZSJ1bmRlZmluZWQiOmgudHlwZT0idW5kZWZpbmVkIixoLmRlc2NyaXB0aW9uPSJ1bmRlZmluZWQiO2JyZWFrO2Nhc2Uib2JqZWN0IjpudWxsPT09aC52YWx1ZT8oaC50eXBlPSJudWxsIixoLmRlc2NyaXB0aW9uPSJudWxsIik6QXJyYXkuaXNBcnJheShoLnZhbHVlKT8oaC50eXBlPSJhcnJh'@; put 'eSIsaC5kZXNjcmlwdGlvbj0iQXJyYXlbIitoLnZhbHVlLmxlbmd0aCsiXSAiK0pTT04uc3RyaW5naWZ5KGgudmFsdWUpKTpoLnZhbHVlIGluc3RhbmNlb2YgRGF0ZT9oLnR5cGU9ImRhdGUiOihoLnR5cGU9Im9iamVjdCIsaC5kZXNjcmlwdGlvbj0iT2JqZWN0ICIrSlNPTi5zdHJpbmdpZnko'@; put 'aC52YWx1ZSkpfXJldHVybiBofWlzTGluayhhKXtyZXR1cm4iaHR0cHM6Ly8iPT09YS5zdWJzdHJpbmcoMCw4KXx8Imh0dHA6Ly8iPT09YS5zdWJzdHJpbmcoMCw3KXx8Ii8iPT09YVswXX1pc0V4cGFuZGVkKCl7cmV0dXJuIHRoaXMuZXhwYW5kZWQmJiEodGhpcy5kZXB0aD4tMSYmdGhpcy5f'@; put 'Y3VycmVudERlcHRoPj10aGlzLmRlcHRoKX1kZWN5Y2xlKGEpe2NvbnN0IGQ9bmV3IFdlYWtNYXA7cmV0dXJuIGZ1bmN0aW9uIGgoZixfKXtsZXQgVCxXO3JldHVybiJvYmplY3QiIT10eXBlb2YgZnx8bnVsbD09PWZ8fGYgaW5zdGFuY2VvZiBCb29sZWFufHxmIGluc3RhbmNlb2YgRGF0ZXx8'@; put 'ZiBpbnN0YW5jZW9mIE51bWJlcnx8ZiBpbnN0YW5jZW9mIFJlZ0V4cHx8ZiBpbnN0YW5jZW9mIFN0cmluZz9mOihUPWQuZ2V0KGYpLHZvaWQgMCE9PVQ/eyRyZWY6VH06KGQuc2V0KGYsXyksQXJyYXkuaXNBcnJheShmKT8oVz1bXSxmLmZvckVhY2goZnVuY3Rpb24oaWUscGUpe1dbcGVdPWgo'@; put 'aWUsXysiWyIrcGUrIl0iKX0pKTooVz17fSxPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKGllKXtXW2llXT1oKGZbaWVdLF8rIlsiK0pTT04uc3RyaW5naWZ5KGllKSsiXSIpfSkpLFcpKX0oYSwiJCIpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhh'@; put 'fHxjKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1sibmd4LWpzb24tdmlld2VyIl1dLGlucHV0czp7anNvbjoianNvbiIsZXhwYW5kZWQ6ImV4cGFuZGVkIixkZXB0aDoiZGVwdGgiLF9jdXJyZW50RGVwdGg6Il9jdXJyZW50RGVwdGgifSxvdXRwdXRzOntzZWdtZW50TGlu'@; put 'a0NsaWNrZWQ6InNlZ21lbnRMaW5rQ2xpY2tlZCJ9LGZlYXR1cmVzOlt2YV0sZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbMSwibmd4LWpzb24tdmlld2VyIl0sWzMsIm5nQ2xhc3MiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJuZ0NsYXNzIl0sWzMsIm5nQ2xhc3MiLCJjbGljayJdLFsiY2xh'@; put 'c3MiLCJ0b2dnbGVyIiw0LCJuZ0lmIl0sWzEsInNlZ21lbnQta2V5Il0sWzEsInNlZ21lbnQtc2VwYXJhdG9yIl0sWyJjbGFzcyIsInNlZ21lbnQtdmFsdWUiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNoaWxkcmVuIiw0LCJuZ0lmIl0sWzEsInRvZ2dsZXIiXSxbMSwic2VnbWVu'@; put 'dC12YWx1ZSIsMywiY2xpY2siXSxbMSwiY2hpbGRyZW4iXSxbMywianNvbiIsImV4cGFuZGVkIiwiZGVwdGgiLCJfY3VycmVudERlcHRoIiwic2VnbWVudExpbmtDbGlja2VkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYobWUoMCwic2VjdGlvbiIsMCksSmUoMSxadHQsOSwxMSwi'@; put 'c2VjdGlvbiIsMSkseWUoKSksMiZhJiYoQ2UoMSksUmUoIm5nRm9yT2YiLGQuc2VnbWVudHMpKX0sZGVwZW5kZW5jaWVzOltkYyx4cyxaaSxjXSxzdHlsZXM6WydAY2hhcnNldCAiVVRGLTgiOy5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVde2ZvbnQtZmFtaWx5OnZhcigtLW5n'@; put 'eC1qc29uLWZvbnQtZmFtaWx5LCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTp2YXIoLS1uZ3gtanNvbi1mb250LXNpemUsIDFlbSk7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0g'@; put 'ICAuc2VnbWVudFtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHg7bWFyZ2luOjFweCAxcHggMXB4IDEycHh9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudFtfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAl'@; put 'XXt3b3JkLXdyYXA6YnJlYWstd29yZH0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdICAgLnRvZ2dsZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFi'@; put 'c29sdXRlO21hcmdpbi1sZWZ0Oi0xNHB4O21hcmdpbi10b3A6M3B4O2ZvbnQtc2l6ZTouOGVtO2xpbmUtaGVpZ2h0OjEuMmVtO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtjb2xvcjp2YXIoLS1uZ3gtanNvbi10b2dnbGVyLCAjNzg3ODc4KX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXSAgIC5zZWdtZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdICAgLnRvZ2dsZXJbX25nY29udGVudC0lQ09NUCVdOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbnRlbnQ6IlxcMjViYSI7dHJhbnNpdGlvbjp0cmFuc2Zvcm0g'@; put 'LjFzIGVhc2UtaW59Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudFtfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LWtleVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpz'@; put 'b24ta2V5LCAjNEUxODdDKX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtc2VwYXJhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2'@; put 'YXIoLS1uZ3gtanNvbi1zZXBhcmF0b3IsICM5OTkpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnRbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01Q'@; put 'JV17Y29sb3I6dmFyKC0tbmd4LWpzb24tdmFsdWUsICMwMDApfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNoaWxkcmVuW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDoxMnB4fS5uZ3gtanNvbi12aWV3'@; put 'ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1zdHJpbmdbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tc3RyaW5nLCAj'@; put 'RkY2QjZCKX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXR5cGUtbnVtYmVyW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZh'@; put 'cigtLW5neC1qc29uLW51bWJlciwgIzAwOTY4OCl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLWJvb2xlYW5bX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdj'@; put 'b250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tYm9vbGVhbiwgI0I5MzhBNCl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLWRhdGVbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0g'@; put 'PiAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tZGF0ZSwgIzA1NjY4RCl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLWFycmF5W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LW1haW5b'@; put 'X25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5neC1qc29uLWFycmF5LCAjOTk5KX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXR5cGUtb2JqZWN0W19uZ2NvbnRlbnQtJUNPTVAl'@; put 'XSA+IC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5neC1qc29uLW9iamVjdCwgIzk5OSl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLWZ1bmN0'@; put 'aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5neC1qc29uLWZ1bmN0aW9uLCAjOTk5KX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAl'@; put 'XSAgIC5zZWdtZW50LXR5cGUtbGlua1tfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2YXIoLS1uZ3gtanNvbi1saW5rLCAjOUI1OUI2KX0ubmd4LWpzb24tdmlld2Vy'@; put 'W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXR5cGUtbnVsbFtfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2YXIoLS1uZ3gtanNvbi1udWxsLCAjZmZmKX0u'@; put 'bmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXR5cGUtdW5kZWZpbmVkW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5n'@; put 'eC1qc29uLXVuZGVmaW5lZCwgI2ZmZil9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLW51bGxbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVD'@; put 'T01QJV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1uZ3gtanNvbi1udWxsLWJnLCByZWQpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS11bmRlZmluZWRbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01Q'@; put 'JV0gPiAuc2VnbWVudC1rZXlbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5neC1qc29uLXVuZGVmaW5lZC1rZXksICM5OTkpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS11bmRlZmluZWRbX25nY29udGVudC0lQ09NUCVdID4gLnNl'@; put 'Z21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1uZ3gtanNvbi11bmRlZmluZWQta2V5LCAjOTk5KX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50'@; put 'LXR5cGUtbGlua1tfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5uZ3gtanNvbi12aWV3ZXJbX25nY29u'@; put 'dGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1vYmplY3RbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0sIC5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1hcnJheVtfbmdjb250ZW50LSVDT01Q'@; put 'JV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuZXhwYW5kZWRbX25nY29udGVudC0lQ09NUCVdID4gLnRvZ2dsZXJbX25nY29udGVudC0lQ09NUCVdOmFmdGVye3RyYW5z'@; put 'Zm9ybTpyb3RhdGUoOTBkZWcpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGFuZGFibGVbX25nY29udGVudC0lQ09NUCVdLCAubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBhbmRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b2dn'@; put 'bGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcn0nXX0pLGN9KSgpLFd0dD0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9dmkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPW1pKHtpbXBvcnRz'@; put 'Oltvb119KSxjfSkoKSxHdHQ9KCgpPT57Y2xhc3MgY3t0cmFuc2Zvcm0oYSl7aWYoIWEuaW5jbHVkZXMoIi8iKSlyZXR1cm4gYTtsZXQgZD0iIjtjb25zdCBoPWEuc3BsaXQoIi8iKTtmb3IobGV0IGY9MDtmPGgubGVuZ3RoO2YrKylpZigiIiE9PWhbZl0pe2NvbnN0IF89aFtmXTtkKz0iLyIr'@; put 'XyxoW2ZdPWA8YSBocmVmPSR7ZH0+JHtffTwvYT5gfXJldHVybiBoLmpvaW4oIi8iKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cGlwZT1OYSh7bmFtZToibGlua2luemUiLHR5cGU6YyxwdXJlOiEwfSksY30pKCksJHR0PSgoKT0+'@; put 'e2NsYXNzIGN7dHJhbnNmb3JtKGEpe3JldHVybiBKU09OLnN0cmluZ2lmeShhLG51bGwsMil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXBpcGU9TmEoe25hbWU6InByZXR0eWpzb24iLHR5cGU6YyxwdXJlOiEwfSksY30pKCk7ZnVu'@; put 'Y3Rpb24gcXR0KGMsbCl7aWYoMSZjJiYobWUoMCwib3B0aW9uIiwyMiksTmUoMSkseWUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0VjKCJ2YWx1ZSIsYS52YWx1ZSksQ2UoMSksZ3IoIiAiLGEua2V5LCIgIil9fWZ1bmN0aW9uIEt0dChjLGwpe2lmKDEmYyYmKG1lKDAsIm9wdGdyb3Vw'@; put 'IiwyMCksSmUoMSxxdHQsMiwyLCJvcHRpb24iLDIxKSxiYSgyLCJrZXl2YWx1ZSIpLHllKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPVZlKCk7UmUoImxhYmVsIixhLmtleSksQ2UoMSksUmUoIm5nRm9yT2YiLFpsKDIsMixkLmNvbGxlY3Rpb25zW2Eua2V5XSkpfX1mdW5jdGlvbiBY'@; put 'dHQoYyxsKXsxJmMmJihtZSgwLCJwIiwyMyksTmUoMSwiIFNlbGVjdCBjb2xsZWN0aW9uIHRvIHN0YXJ0ICIpLHllKCkpfWZ1bmN0aW9uIEp0dChjLGwpezEmYyYmcXQoMCwiY2xyLXNwaW5uZXIiLDI0KX1mdW5jdGlvbiBRdHQoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwzMSl9ZnVuY3Rp'@; put 'b24gZW50KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWljb24iLDMyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4gaC5saW5rc1NlYXJjaD0iIixqdChoLmxpbmtzTGlzdE9uRmlsdGVyKCkpfSkseWUoKX19ZnVuY3Rpb24gdG50'@; put 'KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIsMjUpKDEsImRpdiIsMjYpKDIsImlucHV0IiwyNywyOCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLmxpbmtzU2VhcmNoPWgpfSkoImtleXVwIixmdW5jdGlv'@; put 'bigpe3JldHVybiBCdChhKSxqdChWZSgpLmxpbmtzTGlzdE9uRmlsdGVyKCkpfSkseWUoKSxKZSg0LFF0dCwxLDAsImNsci1pY29uIiwyOSksSmUoNSxlbnQsMSwwLCJjbHItaWNvbiIsMzApLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMyksZD1WZSgpO0NlKDIpLFJlKCJuZ01vZGVsIixk'@; put 'LmxpbmtzU2VhcmNoKSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBubnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwzNCkseHQoImNsaWNrIixmdW5jdGlv'@; put 'bihoKXtCdChhKTtjb25zdCBmPVZlKCkuJGltcGxpY2l0LF89VmUoKTtyZXR1cm4ganQoXy50cmVlTm9kZUNsaWNrZWQoaCxmLF8uZW5kcG9pbnRMaW5rcykpfSkoImNsckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS4kaW1wbGljaXQuZXhwYW5kZWQ9'@; put 'aCl9KSxtZSgxLCJwIiwzNSkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEpO2NvbnN0IGg9VmUoKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkubGlua09uQ2xpY2soaCkpfSkscXQoMiwiY2xyLWljb24iLDM2KSxOZSgzKSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0'@; put 'O1JlKCJjbHJFeHBhbmRlZCIsYS5leHBhbmRlZCkoImNsckxvYWRpbmciLCEhYS5sb2FkaW5nVGFibGVzJiYhYS50YWJsZXMpLENlKDMpLHpjKCIgIixhLm1ldGhvZCwiICIsYS5yZWwsIiAiKX19ZnVuY3Rpb24gcm50KGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSxubnQsNCw0LCJjbHItdHJl'@; put 'ZS1ub2RlIiwzMyksenIoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLFJlKCJuZ0lmIiwhYS5oaWRkZW4pfX1mdW5jdGlvbiBpbnQoYyxsKXsxJmMmJnF0KDAsImNsci1pY29uIiwzMSl9ZnVuY3Rpb24gb250KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLWlj'@; put 'b24iLDMyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgyKTtyZXR1cm4gaC5pdGVtc1NlYXJjaD0iIixqdChoLml0ZW1zTGlzdE9uRmlsdGVyKCkpfSkseWUoKX19ZnVuY3Rpb24gc250KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9k'@; put 'ZSIsMjUpKDEsImRpdiIsMjYpKDIsImlucHV0IiwzNywzOCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLml0ZW1zU2VhcmNoPWgpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSgpLml0ZW1zTGlzdE9uRmlsdGVyKCkp'@; put 'fSkseWUoKSxKZSg0LGludCwxLDAsImNsci1pY29uIiwyOSksSmUoNSxvbnQsMSwwLCJjbHItaWNvbiIsMzApLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMyksZD1WZSgpO0NlKDIpLFJlKCJuZ01vZGVsIixkLml0ZW1zU2VhcmNoKSxDZSgyKSxSZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8'@; put 'MSksQ2UoMSksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBhbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiwzNCkseHQoImNsaWNrIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCkuJGltcGxpY2l0LF89VmUoKTtyZXR1'@; put 'cm4ganQoXy50cmVlTm9kZUNsaWNrZWQoaCxmLF8uZW5kcG9pbnRJdGVtcykpfSkoImNsckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS4kaW1wbGljaXQuZXhwYW5kZWQ9aCl9KSxtZSgxLCJwIiwzNSkseHQoImNsaWNrIixmdW5jdGlvbigpe0J0KGEp'@; put 'O2NvbnN0IGg9VmUoKS4kaW1wbGljaXQ7cmV0dXJuIGp0KFZlKCkuaXRlbU9uQ2xpY2soaCkpfSkscXQoMiwiY2xyLWljb24iLDM2KSxOZSgzKSx5ZSgpKCl9aWYoMiZjKXtjb25zdCBhPVZlKCkuJGltcGxpY2l0O1JlKCJjbHJFeHBhbmRlZCIsYS5leHBhbmRlZCkoImNsckxvYWRpbmciLCEh'@; put 'YS5sb2FkaW5nVGFibGVzJiYhYS50YWJsZXMpLENlKDMpLGdyKCIgIixhLm5hbWV8fGEuaWQsIiAiKX19ZnVuY3Rpb24gbG50KGMsbCl7aWYoMSZjJiYoVnIoMCksSmUoMSxhbnQsNCwzLCJjbHItdHJlZS1ub2RlIiwzMyksenIoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O0NlKDEpLFJl'@; put 'KCJuZ0lmIiwhYS5oaWRkZW4pfX1mdW5jdGlvbiBjbnQoYyxsKXsxJmMmJnF0KDAsImNsci1zcGlubmVyIiwzOSl9ZnVuY3Rpb24gdW50KGMsbCl7aWYoMSZjKXtjb25zdCBhPVZuKCk7bWUoMCwibmd4LWpzb24tdmlld2VyIiw0OSkseHQoInNlZ21lbnRMaW5rQ2xpY2tlZCIsZnVuY3Rpb24o'@; put 'aCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLm9uSnNvbkxpbmtDbGljayhoKSl9KSx5ZSgpfTImYyYmUmUoImpzb24iLFZlKDMpLmVuZHBvaW50SnNvbikoImV4cGFuZGVkIiwhMSl9ZnVuY3Rpb24gZG50KGMsbCl7aWYoMSZjJiYoVnIoMCksTmUoMSksYmEoMiwicHJldHR5anNvbiIpLHpyKCkp'@; put 'LDImYyl7Y29uc3QgYT1WZSgzKTtDZSgxKSxncigiXG4gICAgICAgICAgICAiLFpsKDIsMSxhLmVuZHBvaW50SnNvbiksIlxuICAgICAgICAgICIpfX1mdW5jdGlvbiBobnQoYyxsKXtpZigxJmMmJihWcigwKSxOZSgxLCJcbiAgICAgICAgICAiKSxKZSgyLHVudCwxLDIsIm5neC1qc29uLXZp'@; put 'ZXdlciIsNDgpLE5lKDMsIlxuICAgICAgICAgICIpLEplKDQsZG50LDMsMywibmctY29udGFpbmVyIiwxOSksTmUoNSwiXG4gICAgICAgICIpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSgyKTtDZSgyKSxSZSgibmdJZiIsIWEucmF3SnNvbiksQ2UoMiksUmUoIm5nSWYiLGEucmF3SnNvbil9fWZ1'@; put 'bmN0aW9uIGZudChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO1ZyKDApLG1lKDEsImRpdiIsNDApKDIsInNwYW4iLDQxKSxOZSgzLCIgR0VUICIpLG1lKDQsInAiLDQyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLm9uQnJlYWRjdW1zQ2xpY2soaCkpfSks'@; put 'YmEoNSwibGlua2luemUiKSx5ZSgpLG1lKDYsImJ1dHRvbiIsMTQpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoKS5jb3B5QnJlYWRjcnVtcygpKX0pLHF0KDcsImNsci1pY29uIiwxNSkseWUoKSgpLG1lKDgsImRpdiIsNDMpKDksImNsci1pbnB1dC1jb250YWlu'@; put 'ZXIiLDEyKSgxMCwibGFiZWwiKSxOZSgxMSwiU3RhcnQiKSx5ZSgpLG1lKDEyLCJpbnB1dCIsNDQpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS5lbmRwb2ludC5zdGFydD1oKX0pLHllKCkoKSxtZSgxMywiY2xyLWlucHV0LWNvbnRhaW5lciIs'@; put 'MTIpKDE0LCJsYWJlbCIpLE5lKDE1LCJMaW1pdCIpLHllKCksbWUoMTYsImlucHV0Iiw0NCkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgpLmVuZHBvaW50LmxpbWl0PWgpfSkseWUoKSgpLG1lKDE3LCJidXR0b24iLDQ1KSx4dCgiY2xpY2siLGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuYXBwbHlRdWVyeVBhcmFtcygpKX0pLHF0KDE4LCJjbHItaWNvbiIsNDYpLHllKCkoKSgpLG1lKDE5LCJwcmUiLDQ3KSxOZSgyMCwiICAgICAgICAiKSxKZSgyMSxobnQsNiwyLCJuZy1jb250YWluZXIiLDE5KSxOZSgyMiwiXG4gICAgICAi'@; put 'KSx5ZSgpLHpyKCl9aWYoMiZjKXtjb25zdCBhPVZlKCk7Q2UoNCksUmUoImlubmVySFRNTCIsWmwoNSw3LGEuZW5kcG9pbnQudXJsKSxxMiksQ2UoOCksUmUoIm5nTW9kZWwiLGEuZW5kcG9pbnQuc3RhcnQpKCJkaXNhYmxlZCIsdm9pZCAwPT09YS5lbmRwb2ludC5zdGFydCksQ2UoNCksUmUo'@; put 'Im5nTW9kZWwiLGEuZW5kcG9pbnQubGltaXQpKCJkaXNhYmxlZCIsdm9pZCAwPT09YS5lbmRwb2ludC5saW1pdCksQ2UoMSksUmUoImRpc2FibGVkIix2b2lkIDA9PT1hLmVuZHBvaW50LmxpbWl0JiZ2b2lkIDA9PT1hLmVuZHBvaW50LnN0YXJ0KSxDZSg0KSxSZSgibmdJZiIsYS5lbmRwb2lu'@; put 'dEpzb24pfX1sZXQgcG50PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5oZWxwZXJTZXJ2aWNlPWEsdGhpcy5zYXNWaXlhU2VydmljZT1kLHRoaXMuc2FzU2VydmljZT1oLHRoaXMuZXZlbnRTZXJ2aWNlPWYsdGhpcy5jb2xsZWN0aW9ucz17fSx0aGlzLmNvbGxlY3Rp'@; put 'b249IiIsdGhpcy5lbmRwb2ludExpbmtzPVtdLHRoaXMuZW5kcG9pbnRJdGVtcz1bXSx0aGlzLmVuZHBvaW50PXt1cmw6IiIsc3RhcnQ6LTEsbGltaXQ6LTF9LHRoaXMuZW5kcG9pbnRMb2FkaW5nPSExLHRoaXMuY29sbGVjdGlvbkxvYWRpbmc9ITEsdGhpcy5yYXdKc29uPSExLHRoaXMubGlu'@; put 'a3NTZWFyY2g9IiIsdGhpcy5pdGVtc1NlYXJjaD0iIix0aGlzLnNhc2pzQ29uZmlnPW5ldyByMS5TQVNqc0NvbmZpZ31uZ09uSW5pdCgpe3RoaXMuc2FzanNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksdGhpcy5jb2xsZWN0aW9ucz10aGlzLnNhc1ZpeWFTZXJ2aWNl'@; put 'LmdldEFsbENvbGxlY3Rpb25zKCl9bGlua3NMaXN0T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMuZW5kcG9pbnRMaW5rcyx0aGlzLmxpbmtzU2VhcmNoLCJyZWwiKSxHbi52aXlhQXBpLmxpbmtzc1NlYXJjaD10aGlzLmxpbmtzU2VhcmNofWl0ZW1z'@; put 'TGlzdE9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLmVuZHBvaW50SXRlbXMsdGhpcy5pdGVtc1NlYXJjaCwibmFtZSIpLEduLnZpeWFBcGkuaXRlbXNTZWFyY2g9dGhpcy5pdGVtc1NlYXJjaH1saW5rT25DbGljayhhKXt0aGlzLmxvYWRVcmwoYS5o'@; put 'cmVmKX1pdGVtT25DbGljayhhKXt0aGlzLmxvYWRVcmwoYS5saW5rc1swXS5ocmVmKX10cmVlTm9kZUNsaWNrZWQoYSxkLGgpeyJDb2xsYXBzZSI9PT1hLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZVRyZWVJdGVtcyhoLGQpfWNvbGxhcHNlVHJlZUl0ZW1zKGEsZCl7YS5mb3JFYWNoKGg9'@; put 'PntKU09OLnN0cmluZ2lmeShoKSE9PUpTT04uc3RyaW5naWZ5KGQpJiYoaC5leHBhbmRlZD0hMSl9KX11cGRhdGVTZWxlY3RlZENvbGxlY3Rpb24oKXtHbi52aXlhQXBpLnNlbGVjdGVkQ29sbGVjdGlvbj10aGlzLmNvbGxlY3Rpb24sdGhpcy5lbmRwb2ludC51cmw9dGhpcy5jb2xsZWN0aW9u'@; put 'LHRoaXMuY29sbGVjdGlvbkxvYWRpbmc9ITAsdGhpcy5zYXNWaXlhU2VydmljZS5nZXRCeUNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uKS5zdWJzY3JpYmUoYT0+e3RoaXMuZW5kcG9pbnRMaW5rcz1hLmxpbmtzLHRoaXMuZW5kcG9pbnRJdGVtcz1hLml0ZW1zP2EuaXRlbXM6W10sdGhpcy5j'@; put 'b2xsZWN0aW9uTG9hZGluZz0hMSx0aGlzLmVuZHBvaW50SnNvbj1hLHRoaXMuZW5kcG9pbnQuc3RhcnQ9YS5zdGFydCx0aGlzLmVuZHBvaW50LmxpbWl0PWEubGltaXR9LGE9Pnt0aGlzLmNvbGxlY3Rpb25Mb2FkaW5nPSExO2xldCBkPSJFcnJvciBvY2N1cnJlZCB3aGlsZSBzZW5kaW5nIHJl'@; put 'cXVlc3QiO2EubWVzc2FnZSYmKGQ9YS5tZXNzYWdlKSxhLmVycm9yJiYoYS5lcnJvci5tZXNzYWdlJiYoZD1hLmVycm9yLm1lc3NhZ2UpLGEuZXJyb3IucmVtZWRpYXRpb24mJihkPWAke2R9XG4ke2EuZXJyb3IucmVtZWRpYXRpb259YCkpLHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1v'@; put 'ZGFsKG51bGwsZCxudWxsLCJIVFRQIEVycm9yIil9KX1vbkpzb25MaW5rQ2xpY2soYSl7dGhpcy5sb2FkVXJsKGEpfW9uSnNvbkNsaWNrKGEpe2lmKGEucHJldmVudERlZmF1bHQoKSwiQSI9PT1hLnNyY0VsZW1lbnQudGFnTmFtZSl7Y29uc3QgZD1hLnNyY0VsZW1lbnQuaHJlZi5zcGxpdChh'@; put 'LnNyY0VsZW1lbnQuaG9zdClbMV07dGhpcy5sb2FkVXJsKGQpfX1vbkJyZWFkY3Vtc0NsaWNrKGEpe2lmKGEucHJldmVudERlZmF1bHQoKSwhYS5zcmNFbGVtZW50LmhyZWYpcmV0dXJuO2NvbnN0IGQ9YS5zcmNFbGVtZW50LmhyZWYuc3BsaXQoYS5zcmNFbGVtZW50Lmhvc3QpWzFdO3RoaXMu'@; put 'bG9hZFVybChkKX1jb3B5SnNvbigpe3RoaXMuZW5kcG9pbnRKc29uJiZuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0aGlzLmVuZHBvaW50SnNvbixudWxsLDIpKX1jb3B5QnJlYWRjcnVtcygpe3RoaXMuZW5kcG9pbnQmJnRoaXMuZW5kcG9pbnQudXJsJiZu'@; put 'YXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLmVuZHBvaW50LnVybCl9YXBwbHlRdWVyeVBhcmFtcygpe2NvbnN0IGE9dGhpcy5lbmRwb2ludC5zdGFydCxkPXRoaXMuZW5kcG9pbnQubGltaXQsaD1gPyR7dm9pZCAwIT09YT8ic3RhcnQ9IithOiIifSR7dm9pZCAwIT09ZD8iJmxp'@; put 'bWl0PSIrZDoiIn1gLGY9YCR7dGhpcy5lbmRwb2ludC51cmwuc3BsaXQoIj8iKVswXX0ke2h9YDt0aGlzLmxvYWRVcmwoZil9bG9hZFVybChhKXt0aGlzLmVuZHBvaW50TG9hZGluZz0hMCx0aGlzLnNhc1ZpeWFTZXJ2aWNlLmdldEJ5VXJsKGEpLnN1YnNjcmliZShkPT57dGhpcy5lbmRwb2lu'@; put 'dExpbmtzPWQubGlua3MsdGhpcy5lbmRwb2ludEl0ZW1zPWQuaXRlbXM/ZC5pdGVtczpbXSx0aGlzLmVuZHBvaW50SnNvbj1kLHRoaXMuZW5kcG9pbnRMb2FkaW5nPSExLHRoaXMuZW5kcG9pbnQudXJsPWEsdGhpcy5lbmRwb2ludC5zdGFydD1kLnN0YXJ0LHRoaXMuZW5kcG9pbnQubGltaXQ9'@; put 'ZC5saW1pdH0sZD0+e3RoaXMuZW5kcG9pbnRMb2FkaW5nPSExO2xldCBoPSJFcnJvciBvY2N1cnJlZCB3aGlsZSBzZW5kaW5nIHJlcXVlc3QiO2QubWVzc2FnZSYmKGg9ZC5tZXNzYWdlKSxkLmVycm9yJiYoZC5lcnJvci5tZXNzYWdlJiYoaD1kLmVycm9yLm1lc3NhZ2UpLGQuZXJyb3IucmVt'@; put 'ZWRpYXRpb24mJihoPWAke2h9XG4ke2QuZXJyb3IucmVtZWRpYXRpb259YCkpLHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsaCxudWxsLCJIVFRQIEVycm9yIil9KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykodHQoVGMpLHR0'@; put 'KE50dCksdHQob2EpLHR0KHZsKSl9LGMuXHUwMjc1Y21wPXdyKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC12aXlhLWFwaS1leHBsb3JlciJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MzMsdmFyczoxMyxjb25zdHM6W1sxLCJhcGktY29sbGVjdGlvbi1kcm9w'@; put 'ZG93biJdLFsiY2xyU2VsZWN0IiwiIiwiaWQiLCJyZXBvc2l0b3J5IiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImNoYW5nZSJdLFszLCJsYWJlbCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImQtZmxleCIsImNs'@; put 'ci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIiwiaC0xMDAiLCJwLTEwIiwiZC1mbGV4IiwiY2xy'@; put 'LWZsZXgtY29sdW1uIl0sWzEsInctMTAwIiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwic2l0aW9uLXJlbGF0aXZlIl0sWzEsImpzb24tdG9nZ2xlIiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJt'@; put 'LTAiXSxbInR5cGUiLCJjaGVja2JveCIsImNsclRvZ2dsZSIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1saW5rIiwiYnRuLXNtIiwzLCJjbGljayJdLFsic2hhcGUiLCJjb3B5Il0sWzEsInRleHQtY2VudGVyIiwibS0wIl0s'@; put 'WyJjbHJTbWFsbCIsIiIsNCwibmdJZiJdLFsxLCJ3LTEwMCIsImxpZ2h0Il0sWzQsIm5nSWYiXSxbMywibGFiZWwiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSJdLFsxLCJ3LTEwMCIsInRleHQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiXSxbMSwic2VhcmNo'@; put 'LW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCBsaW5rcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGlua3NU'@; put 'cmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwi'@; put 'Y2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYmxvY2siXSxbImNscklucHV0IiwiIiwicGxhY2Vo'@; put 'b2xkZXIiLCJTZWFyY2ggaXRlbXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaEl0ZW1zVHJlZUlucHV0IiwiIl0sWyJjbHJTbWFsbCIsIiJdLFsxLCJkLWZsZXgiLCJjbHItYWxpZ24taXRl'@; put 'bXMtY2VudGVyIiwiY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIl0sWzEsImQtZmxleCIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJlbmRwb2ludC1icmVhZGNydW1zIiwzLCJpbm5lckhUTUwiLCJjbGljayJdLFsxLCJkLWZsZXgiLCJjbHItYWxpZ24t'@; put 'aXRlbXMtY2VudGVyIiwicXVlcnktcGFyYW1zIl0sWyJjbHJJbnB1dCIsIiIsInR5cGUiLCJudW1iZXIiLDMsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1saW5rIiwiYnRuLXNtIiwzLCJkaXNhYmxlZCIsImNsaWNr'@; put 'Il0sWyJzaGFwZSIsInBsYXkiXSxbMSwianNvbi1hcmVhIl0sWyJjbGFzcyIsImQtYmxvY2siLDMsImpzb24iLCJleHBhbmRlZCIsInNlZ21lbnRMaW5rQ2xpY2tlZCIsNCwibmdJZiJdLFsxLCJkLWJsb2NrIiwzLCJqc29uIiwiZXhwYW5kZWQiLCJzZWdtZW50TGlua0NsaWNrZWQiXV0sdGVt'@; put 'cGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihtZSgwLCJhcHAtc2lkZWJhciIpKDEsImRpdiIsMCkoMiwiY2xyLXNlbGVjdC1jb250YWluZXIiKSgzLCJsYWJlbCIpLE5lKDQsIkFQSSBDb2xsZWN0aW9uIikseWUoKSxtZSg1LCJzZWxlY3QiLDEpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlv'@; put 'bihmKXtyZXR1cm4gZC5jb2xsZWN0aW9uPWZ9KSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBkLnVwZGF0ZVNlbGVjdGVkQ29sbGVjdGlvbigpfSksSmUoNixLdHQsMyw0LCJvcHRncm91cCIsMiksYmEoNywia2V5dmFsdWUiKSx5ZSgpKCkoKSxKZSg4LFh0dCwyLDAsInAiLDMpLG1lKDks'@; put 'ImRpdiIsNCksSmUoMTAsSnR0LDEsMCwiY2xyLXNwaW5uZXIiLDUpLHllKCksbWUoMTEsImNsci10cmVlIiksSmUoMTIsdG50LDYsMywiY2xyLXRyZWUtbm9kZSIsNiksSmUoMTMscm50LDIsMSwibmctY29udGFpbmVyIiw3KSx5ZSgpLG1lKDE0LCJjbHItdHJlZSIpLEplKDE1LHNudCw2LDMs'@; put 'ImNsci10cmVlLW5vZGUiLDYpLEplKDE2LGxudCwyLDEsIm5nLWNvbnRhaW5lciIsNykseWUoKSgpLG1lKDE3LCJkaXYiLDgpKDE4LCJkaXYiLDkpKDE5LCJkaXYiLDEwKSgyMCwiZGl2IiwxMSkoMjEsImNsci10b2dnbGUtY29udGFpbmVyIiwxMikoMjIsImNsci10b2dnbGUtd3JhcHBlciIp'@; put 'KDIzLCJpbnB1dCIsMTMpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5yYXdKc29uPWZ9KSx5ZSgpLG1lKDI0LCJsYWJlbCIpLE5lKDI1LCJSQVcgSnNvbiIpLHllKCkoKSgpLG1lKDI2LCJidXR0b24iLDE0KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQu'@; put 'Y29weUpzb24oKX0pLHF0KDI3LCJjbHItaWNvbiIsMTUpLHllKCkoKSxtZSgyOCwiaDQiLDE2KSxOZSgyOSwiIEFQSSBFeHBsb3JlciAiKSxKZSgzMCxjbnQsMSwwLCJjbHItc3Bpbm5lciIsMTcpLHllKCkoKSxxdCgzMSwiaHIiLDE4KSxKZSgzMixmbnQsMjMsOSwibmctY29udGFpbmVyIiwx'@; put 'OSkseWUoKSgpKSwyJmEmJihDZSg1KSxSZSgibmdNb2RlbCIsZC5jb2xsZWN0aW9uKSxDZSgxKSxSZSgibmdGb3JPZiIsWmwoNywxMSxkLmNvbGxlY3Rpb25zKSksQ2UoMiksUmUoIm5nSWYiLGQuZW5kcG9pbnRMaW5rcy5sZW5ndGg8MSYmIWQuY29sbGVjdGlvbkxvYWRpbmcpLENlKDIpLFJl'@; put 'KCJuZ0lmIixkLmNvbGxlY3Rpb25Mb2FkaW5nKSxDZSgyKSxSZSgibmdJZiIsZC5lbmRwb2ludExpbmtzLmxlbmd0aD4wKSxDZSgxKSxSZSgibmdGb3JPZiIsZC5lbmRwb2ludExpbmtzKSxDZSgyKSxSZSgibmdJZiIsZC5lbmRwb2ludEl0ZW1zLmxlbmd0aD4wKSxDZSgxKSxSZSgibmdGb3JP'@; put 'ZiIsZC5lbmRwb2ludEl0ZW1zKSxDZSg3KSxSZSgibmdNb2RlbCIsZC5yYXdKc29uKSxDZSg3KSxSZSgibmdJZiIsZC5lbmRwb2ludExvYWRpbmcpLENlKDIpLFJlKCJuZ0lmIixkLmNvbGxlY3Rpb24ubGVuZ3RoPjApKX0sZGVwZW5kZW5jaWVzOlt4cyxaaSxsMSxjMSxXYSxhRSxTMCxNMCxC'@; put 'cyxPcyxkZCxnMSxrYSxadSxVcyxEMCxEOCxUMCxmMSxqRixOOCxIOCx1MixuMyxZdHQsZHgsR3R0LCR0dF0sc3R5bGVzOlsiLmFwaS1jb2xsZWN0aW9uLWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDoxNXB4O21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1ib3R0b206'@; put 'MTBweH0uanNvbi1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0b30uanNvbi1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgYXt0ZXh0LWRlY29yYXRpb246bm9uZX0u'@; put 'anNvbi1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSAgICA+bmd4LWpzb24tdmlld2Vye2hlaWdodDoxMDAlfS5qc29uLWFyZWFbX25nY29udGVudC0lQ09NUCVdICAgID5uZ3gtanNvbi12aWV3ZXI+Lm5neC1qc29uLXZpZXdlcntvdmVyZmxvdzphdXRvfS5qc29uLXRvZ2dsZVtfbmdjb250ZW50'@; put 'LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMHB4O21hcmdpbjowfS5lbmRwb2ludC1icmVhZGNydW1zW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDAgMTBweH0ucXVlcnktcGFyYW1zW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3'@; put 'aWR0aDo3MHB4fSJdfSksY30pKCk7Y29uc3QgZ250PW5ldyBTaSgiV2luZG93VG9rZW4iLHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuZG9jdW1lbnQ/e3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PndpbmRvd306e3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pnt9fSk7bGV0'@; put 'IG1udD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLm5nWm9uZT1hLHRoaXMuZG9jdW1lbnQ9ZCx0aGlzLndpbmRvdz1oLHRoaXMuY29weVN1YmplY3Q9bmV3IGJlLHRoaXMuY29weVJlc3BvbnNlJD10aGlzLmNvcHlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLHRoaXMuY29u'@; put 'ZmlnPXt9fWNvbmZpZ3VyZShhKXt0aGlzLmNvbmZpZz1hfWNvcHkoYSl7aWYoIXRoaXMuaXNTdXBwb3J0ZWR8fCFhKXJldHVybiB0aGlzLnB1c2hDb3B5UmVzcG9uc2Uoe2lzU3VjY2VzczohMSxjb250ZW50OmF9KTtjb25zdCBkPXRoaXMuY29weUZyb21Db250ZW50KGEpO3JldHVybiB0aGlz'@; put 'LnB1c2hDb3B5UmVzcG9uc2UoZD97Y29udGVudDphLGlzU3VjY2VzczpkfTp7aXNTdWNjZXNzOiExLGNvbnRlbnQ6YX0pfWdldCBpc1N1cHBvcnRlZCgpe3JldHVybiEhdGhpcy5kb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQmJiEhdGhpcy5kb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBw'@; put 'b3J0ZWQoImNvcHkiKSYmISF0aGlzLndpbmRvd31pc1RhcmdldFZhbGlkKGEpe2lmKGEgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50fHxhIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCl7aWYoYS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpdGhyb3cgbmV3IEVycm9yKCdJbnZh'@; put 'bGlkICJ0YXJnZXQiIGF0dHJpYnV0ZS4gUGxlYXNlIHVzZSAicmVhZG9ubHkiIGluc3RlYWQgb2YgImRpc2FibGVkIiBhdHRyaWJ1dGUnKTtyZXR1cm4hMH10aHJvdyBuZXcgRXJyb3IoIlRhcmdldCBzaG91bGQgYmUgaW5wdXQgb3IgdGV4dGFyZWEiKX1jb3B5RnJvbUlucHV0RWxlbWVudChh'@; put 'LGQ9ITApe3RyeXt0aGlzLnNlbGVjdFRhcmdldChhKTtjb25zdCBoPXRoaXMuY29weVRleHQoKTtyZXR1cm4gdGhpcy5jbGVhclNlbGVjdGlvbihkP2E6dm9pZCAwLHRoaXMud2luZG93KSxoJiZ0aGlzLmlzQ29weVN1Y2Nlc3NJbklFMTEoKX1jYXRjaHtyZXR1cm4hMX19aXNDb3B5U3VjY2Vz'@; put 'c0luSUUxMSgpe2NvbnN0IGE9dGhpcy53aW5kb3cuY2xpcGJvYXJkRGF0YTtyZXR1cm4hKGEmJmEuZ2V0RGF0YSYmIWEuZ2V0RGF0YSgiVGV4dCIpKX1jb3B5RnJvbUNvbnRlbnQoYSxkPXRoaXMuZG9jdW1lbnQuYm9keSl7aWYodGhpcy50ZW1wVGV4dEFyZWEmJiFkLmNvbnRhaW5zKHRoaXMu'@; put 'dGVtcFRleHRBcmVhKSYmdGhpcy5kZXN0cm95KHRoaXMudGVtcFRleHRBcmVhLnBhcmVudEVsZW1lbnR8fHZvaWQgMCksIXRoaXMudGVtcFRleHRBcmVhKXt0aGlzLnRlbXBUZXh0QXJlYT10aGlzLmNyZWF0ZVRlbXBUZXh0QXJlYSh0aGlzLmRvY3VtZW50LHRoaXMud2luZG93KTt0cnl7ZC5h'@; put 'cHBlbmRDaGlsZCh0aGlzLnRlbXBUZXh0QXJlYSl9Y2F0Y2h7dGhyb3cgbmV3IEVycm9yKCJDb250YWluZXIgc2hvdWxkIGJlIGEgRG9tIGVsZW1lbnQiKX19dGhpcy50ZW1wVGV4dEFyZWEudmFsdWU9YTtjb25zdCBoPXRoaXMuY29weUZyb21JbnB1dEVsZW1lbnQodGhpcy50ZW1wVGV4dEFy'@; put 'ZWEsITEpO3JldHVybiB0aGlzLmNvbmZpZy5jbGVhblVwQWZ0ZXJDb3B5JiZ0aGlzLmRlc3Ryb3kodGhpcy50ZW1wVGV4dEFyZWEucGFyZW50RWxlbWVudHx8dm9pZCAwKSxofWRlc3Ryb3koYT10aGlzLmRvY3VtZW50LmJvZHkpe3RoaXMudGVtcFRleHRBcmVhJiYoYS5yZW1vdmVDaGlsZCh0'@; put 'aGlzLnRlbXBUZXh0QXJlYSksdGhpcy50ZW1wVGV4dEFyZWE9dm9pZCAwKX1zZWxlY3RUYXJnZXQoYSl7cmV0dXJuIGEuc2VsZWN0KCksYS5zZXRTZWxlY3Rpb25SYW5nZSgwLGEudmFsdWUubGVuZ3RoKSxhLnZhbHVlLmxlbmd0aH1jb3B5VGV4dCgpe3JldHVybiB0aGlzLmRvY3VtZW50LmV4'@; put 'ZWNDb21tYW5kKCJjb3B5Iil9Y2xlYXJTZWxlY3Rpb24oYSxkKXthJiZhLmZvY3VzKCksZC5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCl9Y3JlYXRlVGVtcFRleHRBcmVhKGEsZCl7Y29uc3QgaD0icnRsIj09PWEuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGlyIik7'@; put 'bGV0IGY7cmV0dXJuIGY9YS5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLGYuc3R5bGUuZm9udFNpemU9IjEycHQiLGYuc3R5bGUuYm9yZGVyPSIwIixmLnN0eWxlLnBhZGRpbmc9IjAiLGYuc3R5bGUubWFyZ2luPSIwIixmLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZi5zdHlsZVtoPyJy'@; put 'aWdodCI6ImxlZnQiXT0iLTk5OTlweCIsZi5zdHlsZS50b3A9KGQucGFnZVlPZmZzZXR8fGEuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCkrInB4IixmLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCIiKSxmfXB1c2hDb3B5UmVzcG9uc2UoYSl7dGhpcy5jb3B5U3ViamVjdC5vYnNlcnZlcnMu'@; put 'bGVuZ3RoPjAmJnRoaXMubmdab25lLnJ1bigoKT0+e3RoaXMuY29weVN1YmplY3QubmV4dChhKX0pfXB1c2hDb3B5UmVwb25zZShhKXt0aGlzLnB1c2hDb3B5UmVzcG9uc2UoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKGFyKE5vKSxhcihMcyks'@; put 'YXIoZ250LDgpKX0sYy5cdTAyNzVwcm92PWhyKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSx2bnQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLm5nWm9uZT1hLHRoaXMuaG9zdD1kLHRoaXMucmVuZGVyZXI9aCx0'@; put 'aGlzLmNsaXBib2FyZFNydj1mLHRoaXMuY2JPblN1Y2Nlc3M9bmV3IEVyLHRoaXMuY2JPbkVycm9yPW5ldyBFcix0aGlzLm9uQ2xpY2s9Xz0+e3RoaXMuY2xpcGJvYXJkU3J2LmlzU3VwcG9ydGVkP3RoaXMudGFyZ2V0RWxtJiZ0aGlzLmNsaXBib2FyZFNydi5pc1RhcmdldFZhbGlkKHRoaXMu'@; put 'dGFyZ2V0RWxtKT90aGlzLmhhbmRsZVJlc3VsdCh0aGlzLmNsaXBib2FyZFNydi5jb3B5RnJvbUlucHV0RWxlbWVudCh0aGlzLnRhcmdldEVsbSksdGhpcy50YXJnZXRFbG0udmFsdWUsXyk6dGhpcy5jYkNvbnRlbnQmJnRoaXMuaGFuZGxlUmVzdWx0KHRoaXMuY2xpcGJvYXJkU3J2LmNvcHlG'@; put 'cm9tQ29udGVudCh0aGlzLmNiQ29udGVudCx0aGlzLmNvbnRhaW5lciksdGhpcy5jYkNvbnRlbnQsXyk6dGhpcy5oYW5kbGVSZXN1bHQoITEsdm9pZCAwLF8pfX1uZ09uSW5pdCgpe3RoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5jbGlja0xpc3RlbmVyPXRoaXMucmVu'@; put 'ZGVyZXIubGlzdGVuKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJjbGljayIsdGhpcy5vbkNsaWNrKX0pfW5nT25EZXN0cm95KCl7dGhpcy5jbGlja0xpc3RlbmVyJiZ0aGlzLmNsaWNrTGlzdGVuZXIoKSx0aGlzLmNsaXBib2FyZFNydi5kZXN0cm95KHRoaXMuY29udGFpbmVyKX1oYW5kbGVS'@; put 'ZXN1bHQoYSxkLGgpe2xldCBmPXtpc1N1Y2Nlc3M6YSxjb250ZW50OmQsc3VjY2Vzc01lc3NhZ2U6dGhpcy5jYlN1Y2Nlc3NNc2csZXZlbnQ6aH07YT90aGlzLmNiT25TdWNjZXNzLm9ic2VydmVkJiZ0aGlzLm5nWm9uZS5ydW4oKCk9Pnt0aGlzLmNiT25TdWNjZXNzLmVtaXQoZil9KTp0aGlz'@; put 'LmNiT25FcnJvci5vYnNlcnZlZCYmdGhpcy5uZ1pvbmUucnVuKCgpPT57dGhpcy5jYk9uRXJyb3IuZW1pdChmKX0pLHRoaXMuY2xpcGJvYXJkU3J2LnB1c2hDb3B5UmVzcG9uc2UoZil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKHR0KE5vKSx0dChO'@; put 'aSksdHQoRm8pLHR0KG1udCkpfSxjLlx1MDI3NWRpcj1Dcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJuZ3hDbGlwYm9hcmQiLCIiXV0saW5wdXRzOnt0YXJnZXRFbG06WyJuZ3hDbGlwYm9hcmQiLCJ0YXJnZXRFbG0iXSxjb250YWluZXI6ImNvbnRhaW5lciIsY2JDb250ZW50OiJjYkNvbnRl'@; put 'bnQiLGNiU3VjY2Vzc01zZzoiY2JTdWNjZXNzTXNnIn0sb3V0cHV0czp7Y2JPblN1Y2Nlc3M6ImNiT25TdWNjZXNzIixjYk9uRXJyb3I6ImNiT25FcnJvciJ9fSksY30pKCksX250PSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMp'@; put 'fSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W29vXX0pLGN9KSgpO3ZhciBibnQ9Rig1MTcxNCk7bGV0IHludD0oKCk9PntjbGFzcyBje3RyYW5zZm9ybShhLC4uLmQpe2NvbnN0IGg9cGFyc2VJbnQoZFswXSl8fDIsZj0ibnVtYmVyIiE9dHlwZW9m'@; put 'IGE/cGFyc2VJbnQoYSk6YTtyZXR1cm4oMCxibnQuUikoZixoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cGlwZT1OYSh7bmFtZToiY29udmVydFNpemUiLHR5cGU6YyxwdXJlOiEwfSksY30pKCk7Y29uc3Qgd250PVsicXVlcnlG'@; put 'aWx0ZXIiXTtmdW5jdGlvbiBDbnQoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDUwKSxxdCgxLCJjbHItc3Bpbm5lciIsNTEpLHllKCkpfWZ1bmN0aW9uIFNudChjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDU4KX1mdW5jdGlvbiBNbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJj'@; put 'bHItaWNvbiIsNTkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPVZlKDIpO3JldHVybiBoLmxpYnJhcmllc1NlYXJjaD0iIixqdChoLmxpYnJhcnlPbkZpbHRlcigpKX0pLHllKCl9fWZ1bmN0aW9uIHhudChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci10'@; put 'cmVlLW5vZGUiLDUyKSgxLCJkaXYiLDUzKSgyLCJpbnB1dCIsNTQsNTUpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoKS5saWJyYXJpZXNTZWFyY2g9aCl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkubGlicmFyeU9u'@; put 'RmlsdGVyKCkpfSkseWUoKSxKZSg0LFNudCwxLDAsImNsci1pY29uIiw1NiksSmUoNSxNbnQsMSwwLCJjbHItaWNvbiIsNTcpLHllKCkoKX1pZigyJmMpe2NvbnN0IGE9JGkoMyksZD1WZSgpO0NlKDIpLFJlKCJuZ01vZGVsIixkLmxpYnJhcmllc1NlYXJjaCksQ2UoMiksUmUoIm5nSWYiLGEu'@; put 'dmFsdWUubGVuZ3RoPDEpLENlKDEpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gRW50KGMsbCl7MSZjJiZxdCgwLCJjbHItaWNvbiIsNTgpfWZ1bmN0aW9uIGtudChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImNsci1pY29uIiw1OSkseHQoImNsaWNrIixm'@; put 'dW5jdGlvbigpe0J0KGEpLFZlKCk7Y29uc3QgaD0kaSgzKSxmPVZlKDIpLiRpbXBsaWNpdCxfPVZlKCk7cmV0dXJuIGgudmFsdWU9IiIsZi5zZWFyY2hTdHJpbmc9IiIsanQoXy50cmVlT25GaWx0ZXIoZiwidGFibGVzIikpfSkseWUoKX19ZnVuY3Rpb24gQW50KGMsbCl7aWYoMSZjKXtjb25z'@; put 'dCBhPVZuKCk7bWUoMCwiY2xyLXRyZWUtbm9kZSIsNTIpKDEsImRpdiIsNTMpKDIsImlucHV0Iiw2NCw2NSkseHQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiBCdChhKSxqdChWZSgyKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPWgpfSkoImtleXVwIixmdW5jdGlvbigpe0J0'@; put 'KGEpO2NvbnN0IGg9VmUoMikuJGltcGxpY2l0O3JldHVybiBqdChWZSgpLnRyZWVPbkZpbHRlcihoLCJ0YWJsZXMiKSl9KSx5ZSgpLEplKDQsRW50LDEsMCwiY2xyLWljb24iLDU2KSxKZSg1LGtudCwxLDAsImNsci1pY29uIiw1NykseWUoKSgpfWlmKDImYyl7Y29uc3QgYT0kaSgzKSxkPVZl'@; put 'KDIpLiRpbXBsaWNpdDtDZSgyKSxSZSgiaWQiLCJzZWFyY2hfIitkLkxJQlJBUllSRUYpKCJuZ01vZGVsIixkLnNlYXJjaFN0cmluZyksQ2UoMiksUmUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPDEpLENlKDEpLFJlKCJuZ0lmIixhLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gVG50KGMsbCl7'@; put 'MSZjJiZxdCgwLCJjbHItaWNvbiIsNzMpfWZ1bmN0aW9uIERudChjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDc0KX1mdW5jdGlvbiBJbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJidXR0b24iLDY5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSk7Y29uc3QgaD1WZSgp'@; put 'Lm5nVmFyLGY9VmUoKS4kaW1wbGljaXQsXz1WZSgyKS4kaW1wbGljaXQsVD1WZSgpO3JldHVybiBqdChoPyIiOlQub25UYWJsZUNsaWNrKGYsXykpfSksVnIoMSw3MCksSmUoMixUbnQsMSwwLCJjbHItaWNvbiIsNzEpLEplKDMsRG50LDEsMCwiY2xyLWljb24iLDcyKSx6cigpLE5lKDQpLHll'@; put 'KCl9aWYoMiZjKXtjb25zdCBhPVZlKCkubmdWYXIsZD1WZSgpLiRpbXBsaWNpdCxoPVZlKDIpLiRpbXBsaWNpdCxmPVZlKCk7ZHIoImRjLWxvY2tlZC1jb250cm9sIixhKSgidGFibGUtYWN0aXZlIixmLmxpYlRhYkFjdGl2ZShoLkxJQlJBUllSRUYsZCkpLENlKDEpLFJlKCJuZ1N3aXRjaCIs'@; put 'ZC5pbmNsdWRlcygiLUZDIikpLENlKDEpLFJlKCJuZ1N3aXRjaENhc2UiLCEwKSxDZSgxKSxSZSgibmdTd2l0Y2hDYXNlIiwhMSksQ2UoMSksZ3IoIiAiLGQucmVwbGFjZSgiLUZDIiwiIiksIiAiKX19ZnVuY3Rpb24gTG50KGMsbCl7MSZjJiYobWUoMCwic3BhbiIpLE5lKDEsIiBUbyB1bmxv'@; put 'Y2sgYWxsIHRhYmxlcywgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvICIpLHllKCkpfWZ1bmN0aW9uIFJudChjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10b29sdGlwLWNvbnRlbnQiLDc1KSxKZSgxLExudCwyLDAsInNwYW4iLDM4KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS5u'@; put 'Z1ZhcjtDZSgxKSxSZSgibmdJZiIsYSl9fWZ1bmN0aW9uIE9udChjLGwpe2lmKDEmYyYmKG1lKDAsImNsci10b29sdGlwIiksSmUoMSxJbnQsNSw4LCJidXR0b24iLDY3KSxKZSgyLFJudCwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDY4KSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoKS4kaW1w'@; put 'bGljaXQ7Q2UoMSksUmUoIm5nSWYiLGEubGVuZ3RoPjApfX1mdW5jdGlvbiBQbnQoYyxsKXtpZigxJmMmJihtZSgwLCJjbHItdHJlZS1ub2RlIiksSmUoMSxPbnQsMywxLCJjbHItdG9vbHRpcCIsNjYpLHllKCkpLDImYyl7Y29uc3QgYT1sLmluZGV4LGQ9VmUoMyk7Q2UoMSksUmUoIm5nVmFy'@; put 'IixhKzE+ZC5saWNlbmNlU3RhdGUudmFsdWUudGFibGVzX2luX2xpYnJhcnlfbGltaXQpfX1mdW5jdGlvbiBGbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItdHJlZS1ub2RlIiw2MSkseHQoImNsaWNrIixmdW5jdGlvbihoKXtCdChhKTtjb25zdCBmPVZlKCkuJGltcGxp'@; put 'Y2l0O3JldHVybiBqdChWZSgpLnRyZWVOb2RlQ2xpY2tlZChoLGYpKX0pKCJjbHJFeHBhbmRlZENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkuJGltcGxpY2l0LmV4cGFuZGVkPWgpfSksbWUoMSwicCIsNjIpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtCdChhKTtjb25z'@; put 'dCBoPVZlKCkuJGltcGxpY2l0LGY9VmUoKTtyZXR1cm4gZi5saWI9aC5MSUJSQVJZUkVGLGp0KGYubGlicmFyeU9uQ2xpY2soaC5MSUJSQVJZUkVGLGgpKX0pLHF0KDIsImNsci1pY29uIiw2MyksTmUoMykseWUoKSxKZSg0LEFudCw2LDQsImNsci10cmVlLW5vZGUiLDIpLEplKDUsUG50LDIs'@; put 'MSwiY2xyLXRyZWUtbm9kZSIsMykseWUoKX1pZigyJmMpe2NvbnN0IGE9VmUoKS4kaW1wbGljaXQ7ZHIoImNsci1leHBhbmRlZCIsYS5leHBhbmRlZCksUmUoImNsckV4cGFuZGVkIixhLmV4cGFuZGVkKSgiY2xyTG9hZGluZyIsYS5sb2FkaW5nVGFibGVzJiYhYS50YWJsZXMpLENlKDMpLGdy'@; put 'KCIgIixhLkxJQlJBUllOQU1FLCIgIiksQ2UoMSksUmUoIm5nSWYiLGEudGFibGVzKSxDZSgxKSxSZSgibmdGb3JPZiIsYS50YWJsZXMpfX1mdW5jdGlvbiBIbnQoYyxsKXtpZigxJmMmJihWcigwKSxKZSgxLEZudCw2LDcsImNsci10cmVlLW5vZGUiLDYwKSx6cigpKSwyJmMpe2NvbnN0IGE9'@; put 'bC4kaW1wbGljaXQ7Q2UoMSksUmUoIm5nSWYiLCFhLmhpZGRlbiYmYS5pbkZvcmVncm91bmQpfX1mdW5jdGlvbiBObnQoYyxsKXsxJmMmJihtZSgwLCJkaXYiLDc2KSgxLCJzcGFuIiw3NyksTmUoMiwiIExvYWRpbmcuLi4gIikseWUoKSgpKX1mdW5jdGlvbiBWbnQoYyxsKXtpZigxJmMpe2Nv'@; put 'bnN0IGE9Vm4oKTttZSgwLCJkaXYiLDc4KSgxLCJkaXYiLDc5KSgyLCJkaXYiLDgwKSgzLCJkaXYiLDgxKSg0LCJidXR0b24iLDgyKSxxdCg1LCJjbHItaWNvbiIsODMpLHllKCksbWUoNiwiaDMiLDQzKSxOZSg3LCJFcnJvciIpLHllKCkoKSxtZSg4LCJkaXYiLDEwKSg5LCJwIiksTmUoMTAs'@; put 'IllvdSBjYW5ub3Qgc3VibWl0IGVtcHR5IGNsYXVzZXMiKSx5ZSgpKCksbWUoMTEsImRpdiIsMjEpKDEyLCJidXR0b24iLDg0KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKCkubnVsbFZhcmlhYmxlcz0hMSl9KSxOZSgxMywiIE9rICIpLHllKCkoKSgpKCkoKX19'@; put 'ZnVuY3Rpb24gQm50KGMsbCl7MSZjJiZxdCgwLCJkaXYiLDg1KX1mdW5jdGlvbiBqbnQoYyxsKXsxJmMmJnF0KDAsImFwcC1xdWVyeSIsbnVsbCw4Nil9ZnVuY3Rpb24gem50KGMsbCl7MSZjJiYobWUoMCwiZGl2Iiw4NykoMSwic3BhbiIsODgpLE5lKDIsIiBMb2FkaW5nLi4uICIpLHllKCks'@; put 'bWUoMywiZGl2IikoNCwiaDQiKSxOZSg1LCJMb2FkaW5nIHRhYmxlIHZpZXdlciIpLHllKCkoKSgpKX1mdW5jdGlvbiBVbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItaWNvbiIsMTE0KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7QnQoYSksVmUoKTtjb25zdCBoPSRpKDUp'@; put 'O3JldHVybiBqdChWZSgyKS5zZWFyY2hUYWJsZShoKSl9KSx5ZSgpfX1mdW5jdGlvbiBabnQoYyxsKXsxJmMmJihtZSgwLCJzcGFuIiwxMTUpLE5lKDEsIiBMb2FkaW5nLi4uICIpLHllKCkpfWZ1bmN0aW9uIFludChjLGwpezEmYyYmcXQoMCwiY2xyLWljb24iLDExNil9ZnVuY3Rpb24gV250'@; put 'KGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIsMTE3KSxOZSgxKSx5ZSgpKSwyJmMpe2NvbnN0IGE9VmUoMyk7Q2UoMSksZ3IoIiAiLG51bGw9PWEudGFibGVUaXRsZT9udWxsOmEudGFibGVUaXRsZS5yZXBsYWNlKCItRkMiLCIiKSwiICIpfX1mdW5jdGlvbiBHbnQoYyxsKXtpZigxJmMmJiht'@; put 'ZSgwLCJjbHItdG9vbHRpcC1jb250ZW50IiwxMTgpLE5lKDEpLHllKCkpLDImYyl7Y29uc3QgYT1WZSgzKTtDZSgxKSxncigiICIsYS5kc05vdGUsIiAiKX19ZnVuY3Rpb24gJG50KGMsbCl7aWYoMSZjJiYobWUoMCwic3BhbiIpLE5lKDEpLGJhKDIsInRob3VzYW5kU2VwYXJhdG9yIikseWUo'@; put 'KSksMiZjKXtjb25zdCBhPVZlKDQpO0NlKDEpLHc1KCIgKCIsTTUoMiw0LGEubnVtYmVyT2ZSb3dzLCIsIiksIiAiLDE9PT1hLm51bWJlck9mUm93cz8icm93Ijoicm93cyIsIiwgIixhLmZpbHRlckNvbHMubGVuZ3RoLCIiLDE9PT1hLmZpbHRlckNvbHMubGVuZ3RoPyIgY29sIjoiIGNvbHMi'@; put 'LCIpICIpfX1mdW5jdGlvbiBxbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxKZSgxLCRudCwzLDcsInNwYW4iLDM4KSxtZSgyLCJjbHItaWNvbiIsMTE5KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDMpLnJlbG9hZFRhYmxlRGF0YSgpKX0pLHll'@; put 'KCksenIoKX1pZigyJmMpe2NvbnN0IGE9VmUoMyk7Q2UoMSksUmUoIm5nSWYiLG51bGwhPT1hLm51bWJlck9mUm93cyl9fWZ1bmN0aW9uIEtudChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsImJ1dHRvbiIsMTI1KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0'@; put 'KFZlKDUpLmVkaXRUYWJsZSgpKX0pLHF0KDEsImNsci1pY29uIiwxMzIpLG1lKDIsInNwYW4iKSxOZSgzLCJFZGl0IikseWUoKSgpfX1mdW5jdGlvbiBYbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJidXR0b24iLDEyNSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBC'@; put 'dChhKSxqdChWZSg1KS5nb1RvTGluZWFnZSgpKX0pLHF0KDEsImNsci1pY29uIiwxMzMpLG1lKDIsInNwYW4iKSxOZSgzLCJMaW5lYWdlIikseWUoKSgpfX1mdW5jdGlvbiBKbnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJjbHItZHJvcGRvd24tbWVudSIsMTI0KSgxLCJidXR0'@; put 'b24iLDEyNSkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSg0KS5uZXdWaWV3Ym94KCkpfSkscXQoMiwiY2xyLWljb24iLDEyNiksbWUoMywic3BhbiIpLE5lKDQsIlZpZXdib3hlcyIpLHllKCkoKSxKZSg1LEtudCw0LDAsImJ1dHRvbiIsMTI3KSxKZSg2LFhudCw0'@; put 'LDAsImJ1dHRvbiIsMTI3KSxtZSg3LCJidXR0b24iLDEyOCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSg0KS5vcGVuUWIoKSl9KSxxdCg4LCJjbHItaWNvbiIsMTI5KSxtZSg5LCJzcGFuIiksTmUoMTAsIkZpbHRlciIpLHllKCkoKSxtZSgxMSwiYnV0dG9uIiwx'@; put 'MjUpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoNCkub3BlbkRvd25sb2FkPSEwKX0pLHF0KDEyLCJjbHItaWNvbiIsMTMwKSxtZSgxMywic3BhbiIpLE5lKDE0LCJEb3dubG9hZCIpLHllKCkoKSxtZSgxNSwiYnV0dG9uIiwxMjUpLHh0KCJjbGljayIsZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gQnQoYSksanQoVmUoNCkuc2hvd1dlYlF1ZXJ5KCkpfSkscXQoMTYsImNsci1pY29uIiwxMzEpLG1lKDE3LCJzcGFuIiksTmUoMTgsIldlYiBRdWVyeSBVUkwiKSx5ZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9VmUoNCk7Q2UoNSksUmUoIm5nSWYiLGEudGFibGVFZGl0RXhp'@; put 'c3RzKCkpLENlKDEpLFJlKCJuZ0lmIixhLnRhYmxldXJpKX19ZnVuY3Rpb24gUW50KGMsbCl7MSZjJiYobWUoMCwiY2xyLWRyb3Bkb3duIiwxMjApKDEsImJ1dHRvbiIsMTIxKSxxdCgyLCJjbHItaWNvbiIsMTIyKSxOZSgzLCIgb3B0aW9ucyAiKSx5ZSgpLEplKDQsSm50LDE5LDIsImNsci1k'@; put 'cm9wZG93bi1tZW51IiwxMjMpLHllKCkpLDImYyYmUmUoImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiwhMCl9ZnVuY3Rpb24gZXJ0KGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwxMzQpKDEsInNwYW4iKSxOZSgyLCJGSUxURVIgOiAiKSxtZSgzLCJiIiksTmUoNCkseWUoKSgpKCkpLDImYyl7'@; put 'Y29uc3QgYT1WZSgzKTtDZSg0KSxvcihhLnF1ZXJ5VGV4dCl9fWNvbnN0IHRydD1mdW5jdGlvbigpe3JldHVyblsiIiwiICJdfTtmdW5jdGlvbiBucnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTttZSgwLCJkaXYiLDk1KSgxLCJzZWN0aW9uIiw5NikoMiwiZm9ybSIsOTcpKDMsImRpdiIs'@; put 'OTgpKDQsImlucHV0Iiw5OSwxMDApLHh0KCJrZXl1cC5lbnRlciIsZnVuY3Rpb24oKXtCdChhKTtjb25zdCBoPSRpKDUpO3JldHVybiBqdChWZSgyKS5zZWFyY2hUYWJsZShoKSl9KSx5ZSgpLEplKDYsVW50LDEsMCwiY2xyLWljb24iLDEwMSksSmUoNyxabnQsMiwwLCJzcGFuIiwxMDIpLHll'@; put 'KCksbWUoOCwiY2xyLWNoZWNrYm94LWNvbnRhaW5lciIpKDksImNsci1jaGVja2JveC13cmFwcGVyIikoMTAsImlucHV0IiwxMDMpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtyZXR1cm4gQnQoYSksanQoVmUoMikuc2VhcmNoTnVtZXJpYz1oKX0pLHllKCksbWUoMTEsImxhYmVs'@; put 'IiksTmUoMTIsIk51bWVyaWMiKSx5ZSgpKCkoKSgpKCksbWUoMTMsImRpdiIsMTA0KSgxNCwiaDMiLDEwNSkoMTUsImNsci10b29sdGlwIiwxMDYpKDE2LCJjbHItaWNvbiIsMTA3KSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIEJ0KGEpLGp0KFZlKDIpLmRhdGFzZXRJbmZvPSEwKX0p'@; put 'LHllKCksSmUoMTcsWW50LDEsMCwiY2xyLWljb24iLDEwOCksSmUoMTgsV250LDIsMSwic3BhbiIsMTA5KSxKZSgxOSxHbnQsMiwxLCJjbHItdG9vbHRpcC1jb250ZW50IiwxMTApLHllKCksSmUoMjAscW50LDMsMSwibmctY29udGFpbmVyIiwzOCkseWUoKSgpLG1lKDIxLCJkaXYiLDExMSks'@; put 'SmUoMjIsUW50LDUsMSwiY2xyLWRyb3Bkb3duIiwxMTIpLHllKCksSmUoMjMsZXJ0LDUsMSwiZGl2IiwxMTMpLHllKCl9aWYoMiZjKXtjb25zdCBhPVZlKDIpO0NlKDQpLFJlKCJ0eXBlIixhLnNlYXJjaE51bWVyaWM/Im51bWJlciI6InRleHQiKSxDZSgyKSxSZSgibmdJZiIsIWEuc2VhcmNo'@; put 'TG9hZGluZyksQ2UoMSksUmUoIm5nSWYiLGEuc2VhcmNoTG9hZGluZyksQ2UoMyksUmUoIm5nTW9kZWwiLGEuc2VhcmNoTnVtZXJpYyksQ2UoNyksUmUoIm5nSWYiLG51bGw9PWEudGFibGVUaXRsZT9udWxsOmEudGFibGVUaXRsZS5pbmNsdWRlcygiLUZDIikpLENlKDEpLFJlKCJuZ0lmIixh'@; put 'LnRhYmxlVGl0bGUmJmEudGFibGVUaXRsZS5sZW5ndGg+MCksQ2UoMiksUmUoIm5nSWYiLGEudGFibGVUaXRsZSYmYS50YWJsZVRpdGxlLmxlbmd0aD4wKSxDZSgyKSxSZSgibmdJZiIsYS50YWJsZVRpdGxlJiYhYS5hYm9ydEFjdGl2ZSksQ2UoMSksUmUoIm5nSWYiLCIxPTEiIT09YS5xdWVy'@; put 'eVRleHQmJiEkcyg5LHRydCkuaW5jbHVkZXMoYS5xdWVyeVRleHQpJiYhYS5hYm9ydEFjdGl2ZSl9fWZ1bmN0aW9uIHJydChjLGwpezEmYyYmKG1lKDAsImRpdiIsMTM1KSxxdCgxLCJjbHItaWNvbiIsMTM2KSxtZSgyLCJoMyIsMTM3KSxOZSgzLCJQbGVhc2Ugc2VsZWN0IGEgbGlicmFyeSIp'@; put 'LHllKCkoKSl9ZnVuY3Rpb24gaXJ0KGMsbCl7MSZjJiZxdCgwLCJjbHItc3Bpbm5lciIsNTEpfWZ1bmN0aW9uIG9ydChjLGwpezEmYyYmKG1lKDAsImRpdiIsMTQ1KSxxdCgxLCJjbHItaWNvbiIsMTQ2KSxtZSgyLCJoMyIsMTM3KSxOZSgzLCJQbGVhc2Ugc2VsZWN0IGEgdGFibGUiKSx5ZSgp'@; put 'KCkpfWZ1bmN0aW9uIHNydChjLGwpe2lmKDEmYyl7Y29uc3QgYT1WbigpO21lKDAsInAiLDE0OSksTmUoMSwiIE5vIGxpYnJhcnkgaW5mbyBmb3VuZC4gQ2xpY2sgIiksbWUoMiwiY2xyLWljb24iLDE1MCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBCdChhKSxqdChWZSg0KS5yZWxv'@; put 'YWRMaWJJbmZvKCkpfSkseWUoKSxOZSgzLCIgYnV0dG9uIHRvIHJlZnJlc2guICIpLHllKCl9fWZ1bmN0aW9uIGFydChjLGwpe2lmKDEmYyYmKG1lKDAsInRyIikoMSwidGQiLDE1MSksTmUoMiwiRU5HSU5FOiIpLHllKCksbWUoMywidGQiLDE1MiksTmUoNCkseWUoKSgpKSwyJmMpe2NvbnN0'@; put 'IGE9VmUoNSk7Q2UoNCksZ3IoIiAiLGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uRU5HSU5FOiIiLCIgIil9fWZ1bmN0aW9uIGxydChjLGwpe2lmKDEmYyYmKG1lKDAsInRyIikoMSwidGQiLDE1MSksTmUoMiwiTElCSUQ6IikseWUoKSxtZSgzLCJ0ZCIsMTUyKSxOZSg0KSx5ZSgpKCkpLDIm'@; put 'Yyl7Y29uc3QgYT1WZSg1KTtDZSg0KSxncigiICIsYS5saWJpbmZvWzBdP2EubGliaW5mb1swXS5MSUJJRDoiIiwiICIpfX1mdW5jdGlvbiBjcnQoYyxsKXtpZigxJmMmJihtZSgwLCJ0ciIpKDEsInRkIiwxNTEpLE5lKDIsIkxJQk5BTUU6IikseWUoKSxtZSgzLCJ0ZCIsMTUyKSxOZSg0KSx5'@; put 'ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSg1KTtDZSg0KSxncigiICIsYS5saWJpbmZvWzBdP2EubGliaW5mb1swXS5MSUJOQU1FOiIiLCIgIil9fWZ1bmN0aW9uIHVydChjLGwpe2lmKDEmYyYmKG1lKDAsInRyIikoMSwidGQiLDE1MSksTmUoMiwiTElCU0laRToiKSx5ZSgpLG1lKDMsInRkIiwx'@; put 'NTIpLE5lKDQpLGJhKDUsImNvbnZlcnRTaXplIikseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoNSk7Q2UoNCksZ3IoIiAiLGEubGliaW5mb1swXT9abCg1LDEsYS5saWJpbmZvWzBdLkxJQlNJWkUpOiIiLCIgIil9fWZ1bmN0aW9uIGRydChjLGwpe2lmKDEmYyYmKG1lKDAsInRyIikoMSwidGQi'@; put 'LDE1MSksTmUoMiwiT1dORVJTOiIpLHllKCksbWUoMywidGQiLDE1MiksTmUoNCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoNSk7Q2UoNCksZ3IoIiAiLGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uT1dORVJTOiIiLCIgIil9fWZ1bmN0aW9uIGhydChjLGwpe2lmKDEmYyYmKG1lKDAsInRy'@; put 'IikoMSwidGQiLDE1MSksTmUoMiwiUEFUSFM6IikseWUoKSxtZSgzLCJ0ZCIsMTUyKSxOZSg0KSx5ZSgpKCkpLDImYyl7Y29uc3QgYT1WZSg1KTtDZSg0KSxncigiICIsYS5saWJpbmZvWzBdP2EubGliaW5mb1swXS5QQVRIUzoiIiwiICIpfX1mdW5jdGlvbiBmcnQoYyxsKXtpZigxJmMmJiht'@; put 'ZSgwLCJ0ciIpKDEsInRkIiwxNTEpLE5lKDIsIlBFUk1TOiIpLHllKCksbWUoMywidGQiLDE1MiksTmUoNCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoNSk7Q2UoNCksZ3IoIiAiLGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uUEVSTVM6IiIsIiAiKX19ZnVuY3Rpb24gcHJ0KGMsbCl7aWYo'@; put 'MSZjJiYobWUoMCwidHIiKSgxLCJ0ZCIsMTUxKSxOZSgyLCJTQ0hFTUFTOiIpLHllKCksbWUoMywidGQiLDE1MiksTmUoNCkseWUoKSgpKSwyJmMpe2NvbnN0IGE9VmUoNSk7Q2UoNCksZ3IoIiAiLGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uU0NIRU1BUzoiIiwiICIpfX1mdW5jdGlvbiBn'@; put 'cnQoYyxsKXtpZigxJmMmJihtZSgwLCJ0ciIpKDEsInRkIiwxNTEpLE5lKDIsIlRBQkxFX0NOVDoiKSx5ZSgpLG1lKDMsInRkIiwxNTIpLE5lKDQpLHllKCkoKSksMiZjKXtjb25zdCBhPVZlKDUpO0NlKDQpLGdyKCIgIixhLmxpYmluZm9bMF0/YS5saWJpbmZvWzBdLlRBQkxFX0NOVDoiIiwi'@; put 'ICIpfX1mdW5jdGlvbiBtcnQoYyxsKXtpZigxJmMmJihWcigwKSxtZSgxLCJ0YWJsZSIpLEplKDIsYXJ0LDUsMSwidHIiLDM4KSxKZSgzLGxydCw1LDEsInRyIiwzOCksSmUoNCxjcnQsNSwxLCJ0ciIsMzgpLEplKDUsdXJ0LDYsMywidHIiLDM4KSxKZSg2LGRydCw1LDEsInRyIiwzOCksSmUo'@; put 'NyxocnQsNSwxLCJ0ciIsMzgpLEplKDgsZnJ0LDUsMSwidHIiLDM4KSxKZSg5LHBydCw1LDEsInRyIiwzOCksSmUoMTAsZ3J0LDUsMSwidHIiLDM4KSx5ZSgpLHpyKCkpLDImYyl7Y29uc3QgYT1WZSg0KTtDZSgyKSxSZSgibmdJZiIsIiIhPT1hLmxpYmluZm9bMF0uRU5HSU5FKSxDZSgxKSxS'@; put 'ZSgibmdJZiIsIiIhPT1hLmxpYmluZm9bMF0uTElCSUQpLENlKDEpLFJlKCJuZ0lmIiwiIiE9PWEubGliaW5mb1swXS5MSUJOQU1FKSxDZSgxKSxSZSgibmdJZiIsbnVsbCE9PWEubGliaW5mb1swXS5MSUJTSVpFKSxDZSgxKSxSZSgibmdJZiIsIiIhPT1hLmxpYmluZm9bMF0uT1dORVJTKSxD'@; put 'ZSgxKSxSZSgibmdJZiIsIiIhPT1hLmxpYmluZm9bMF0uUEFUSFMpLENlKDEpLFJlKCJuZ0lmIiwiIiE9PWEubGliaW5mb1swXS5QRVJNUyksQ2UoMSksUmUoIm5nSWYiLCIiIT09YS5saWJpbmZvWzBdLlNDSEVNQVMpLENlKDEpLFJlKCJuZ0lmIixudWxsIT09YS5saWJpbmZvWzBdLlRBQkxF'@; put 'X0NOVCl9fWZ1bmN0aW9uIHZydChjLGwpe2lmKDEmYyYmKG1lKDAsImRpdiIsMTQ3KSxKZSgxLHNydCw0LDAsInAiLDE0OCksSmUoMixtcnQsMTEsOSwibmctY29udGFpbmVyIiwzOCkseWUoKSksMiZjKXtjb25zdCBhPVZlKDMpO0NlKDEpLFJlKCJuZ0lmIixhLmxpYmluZm8ubGVuZ3RoPDEp'@; put 'LENlKDEpLFJlKCJuZ0lmIixhLmxpYmluZm8ubGVuZ3RoPjApfX1mdW5jdGlvbiBfcnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9Vm4oKTtWcigwKSxtZSgxLCJkaXYiLDEzOCkscXQoMiwic2VjdGlvbiIsOTYpLG1lKDMsImRpdiIsMTM5KSg0LCJoMyIsMTQwKSxOZSg1KSx5ZSgpLG1lKDYsImNs'@; put 'ci1pY29uIiwxMTkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gQnQoYSksanQoVmUoMikucmVsb2FkTGliSW5mbygpKX0pLHllKCkoKSxxdCg3LCJkaXYiLDExMSkseWUoKSxtZSg4LCJkaXYiLDE0MSksSmUoOSxpcnQsMSwwLCJjbHItc3Bpbm5lciIsMTQyKSx5ZSgpLEplKDEwLG9y'@; put 'dCw0LDAsImRpdiIsMTQzKSxKZSgxMSx2cnQsMywyLCJkaXYiLDE0NCksenIoKX1pZigyJmMpe2NvbnN0IGE9VmUoMik7Q2UoNSksZ3IoIiAiLGEubGliLCIgIiksQ2UoNCksUmUoIm5nSWYiLG51bGw9PT1hLmxpYmluZm8pLENlKDEpLFJlKCJuZ0lmIixudWxsIT09YS5saWJpbmZvKSxDZSgx'@; put 'KSxSZSgibmdJZiIsbnVsbCE9PWEubGliaW5mbyl9fWZ1bmN0aW9uIGJydChjLGwpezEmYyYmKG1lKDAsImgzIiwxMzcpLE5lKDEsIiBObyBkYXRhIGZvdW5kIHdpdGggZ2l2ZW4gY29uZGl0aW9ucyAiKSx5ZSgpKX1mdW5jdGlvbiB5cnQoYyxsKXsxJmMmJihtZSgwLCJoMyIsMTM3KSxOZSgx'@; put 'LCIgTm8gZGF0YSBmb3VuZCBkdWUgdG8gc2FzIHJlcXVlc3QgZXJyb3IgIikseWUoKSl9ZnVuY3Rpb24gd3J0KGMsbCl7aWYoMSZjJiYobWUoMCwiZGl2IiwxNTMpLHF0KDEsImNsci1pY29uIiwxNTQpLEplKDIsYnJ0LDIsMCwiaDMiLDE1NSksSmUoMyx5cnQsMiwwLCJoMyIsMTU1KSx5ZSgp'@; put 'KSwyJmMpe2NvbnN0IGE9VmUoMik7Q2UoMiksUmUoIm5nSWYiLGEubm9EYXRhKSxDZSgxKSxSZSgibmdJZiIsYS5ub0RhdGFSZXFFcnIpfX1mdW5jdGlvbiBDcnQoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDE1NikscXQoMSwiaG90LXRhYmxlIiwxNTcpLHllKCkpLDImYyl7Y29uc3QgYT1W'@; put 'ZSgyKTtDZSgxKSxSZSgibXVsdGlDb2x1bW5Tb3J0aW5nIiwhMCkoInZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0Iiw1MCkoImRhdGEiLGEuaG90VGFibGUuZGF0YSkoImNvbEhlYWRlcnMiLGEuaG90VGFibGUuY29sSGVhZGVycykoImNvbHVtbnMiLGEuaG90VGFibGUuY29sdW1ucykoImNv'@; put 'cHlQYXN0ZSIsYS5ob3RUYWJsZS5jb3B5UGFzdGUpKCJjb250ZXh0TWVudSIsYS5ob3RUYWJsZS5jb250ZXh0TWVudSkoImZpbHRlcnMiLCEwKSgiZHJvcGRvd25NZW51IixhLmhvdFRhYmxlLmRyb3Bkb3duTWVudSkoImhlaWdodCIsYS5ob3RUYWJsZS5oZWlnaHQpKCJtb2RpZnlDb2xXaWR0'@; put 'aCIsYS5tYXhXaWR0aENoZWtlcikoImNlbGxzIixhLmhvdFRhYmxlLmNlbGxzKSgibWF4Um93cyIsYS5ob3RUYWJsZS5tYXhSb3dzKSgibWFudWFsQ29sdW1uUmVzaXplIiwhMCkoInJvd0hlYWRlcnMiLGEuaG90VGFibGUucm93SGVhZGVycykoInJvd0hlYWRlcldpZHRoIixhLmhvdFRhYmxl'@; put 'LnJvd0hlYWRlcldpZHRoKSgicm93SGVpZ2h0cyIsYS5ob3RUYWJsZS5yb3dIZWlnaHRzKSgibGljZW5zZUtleSIsYS5ob3RUYWJsZS5saWNlbnNlS2V5KX19ZnVuY3Rpb24gU3J0KGMsbCl7aWYoMSZjJiYobWUoMCwicCIsMTU4KSxOZSgxKSxxdCgyLCJjb250YWN0LWxpbmsiKSx5ZSgpKSwy'@; put 'JmMpe2NvbnN0IGE9VmUoMik7Q2UoMSksZ3IoIiBUbyBkaXNwbGF5IG1vcmUgdGhhbiAiLGEubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdlcl9yb3dzX2FsbG93ZWQsIiByb3dzLCBjb250YWN0ICIpfX1mdW5jdGlvbiBNcnQoYyxsKXtpZigxJmMmJihtZSgwLCJkaXYiLDg5KSxKZSgxLG5ydCwy'@; put 'NCwxMCwiZGl2Iiw5MCksSmUoMixycnQsNCwwLCJkaXYiLDkxKSxKZSgzLF9ydCwxMiw0LCJuZy1jb250YWluZXIiLDM4KSxKZSg0LHdydCw0LDIsImRpdiIsOTIpLEplKDUsQ3J0LDIsMTgsImRpdiIsOTMpLG1lKDYsImRpdiIpLEplKDcsU3J0LDMsMSwicCIsOTQpLHllKCkoKSksMiZjKXtj'@; put 'b25zdCBhPVZlKCk7Q2UoMSksUmUoIm5nSWYiLGEudGFibGUpLENlKDEpLFJlKCJuZ0lmIiwhKGEubGlifHxhLnRhYmxlfHxhLm5vRGF0YVJlcUVycnx8YS5ub0RhdGEpKSxDZSgxKSxSZSgibmdJZiIsIWEubm9EYXRhJiYhYS5ub0RhdGFSZXFFcnImJiFhLnRhYmxlJiZhLmxpYiksQ2UoMSks'@; put 'UmUoIm5nSWYiLGEubm9EYXRhfHxhLm5vRGF0YVJlcUVyciksQ2UoMSksUmUoIm5nSWYiLCFhLm5vRGF0YSYmIWEubm9EYXRhUmVxRXJyJiZhLnRhYmxlKSxDZSgyKSxSZSgibmdJZiIsYS5saWNlbmNlU3RhdGUudmFsdWUudmlld2VyX3Jvd3NfYWxsb3dlZCE9PWEuSW5maW5pdHkmJmEuaG90'@; put 'VGFibGUuZGF0YSYmYS5ob3RUYWJsZS5kYXRhLmxlbmd0aD5hLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3ZXJfcm93c19hbGxvd2VkKX19bGV0IEhUPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZixfLFQsVyxpZSxwZSx3ZSl7dGhpcy5saWNlbmNlU2VydmljZT1hLHRoaXMuc2Fz'@; put 'U3RvcmVTZXJ2aWNlPWQsdGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5yb3V0ZXI9Zix0aGlzLnJvdXRlPV8sdGhpcy5ldmVudFNlcnZpY2U9VCx0aGlzLmxvZ2dlclNlcnZpY2U9Vyx0aGlzLmhlbHBlclNlcnZpY2U9aWUsdGhpcy5sb2NhdGlvbj1wZSx0aGlzLmNkZj13ZSx0aGlzLnF1ZXJ5Rmls'@; put 'dGVyQ29tcExpc3Q9bmV3IGVoLHRoaXMubGlicmFyaWVzUGFnaW5nPSExLHRoaXMubGlicmFyaWVzU2VhcmNoPSIiLHRoaXMubGlicmFyeVRhYmxlc1JlZj0iIix0aGlzLmxpYnJhcmllc1RyZWVFeHBhbmRlZD0hMSx0aGlzLmxpYmluZm89bnVsbCx0aGlzLnRhYmxldXJpPW51bGwsdGhpcy5m'@; put 'aWx0ZXI9ITEsdGhpcy5maWx0ZXJDb2xzPVtdLHRoaXMubnVsbFZhcmlhYmxlcz0hMSx0aGlzLmFib3J0QWN0aXZlPSExLHRoaXMudXJsRmlsdGVyUGs9bnVsbCx0aGlzLnF1ZXJ5VGV4dD0iIix0aGlzLndlYlF1ZXJ5VGV4dD0iIix0aGlzLnF1ZXJ5RXJyPSExLHRoaXMudGFibGVGbGFnPSEw'@; put 'LHRoaXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLmxvYWRpbmdUYWJsZVZpZXc9ITEsdGhpcy5zd2l0Y2hGbGFnPSExLHRoaXMubm9EYXRhPSExLHRoaXMubm9EYXRhUmVxRXJyPSExLHRoaXMudGFibGVEaXNhYmxlPSExLHRoaXMuYWN0aW9uRGlzYWJsZT0hMSx0aGlzLm9wZW5Eb3dubG9h'@; put 'ZD0hMSx0aGlzLndlYlF1ZXJ5PSExLHRoaXMud2ViUXVlcnlUYWI9ITEsdGhpcy5kb3dubG9hZEZvcm1hdD0iQ1NWIix0aGlzLnNhc2pzQ29uZmlnPW5ldyByMS5TQVNqc0NvbmZpZyx0aGlzLnNlYXJjaExvYWRpbmc9ITEsdGhpcy5zZWFyY2hOdW1lcmljPSExLHRoaXMubnVtYmVyT2ZSb3dz'@; put 'PW51bGwsdGhpcy5oZWFkZXJQa3M9W10sdGhpcy4kZGF0YUZvcm1hdHM9bnVsbCx0aGlzLmRhdGFzZXRJbmZvPSExLHRoaXMuZHNtZXRhPVtdLHRoaXMuZHNOb3RlPSIiLHRoaXMubGljZW5jZVN0YXRlPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVN0YXRlLHRoaXMuSW5maW5pdHk9MS8w'@; put 'LHRoaXMuaG90VGFibGU9e2RhdGE6W10sY29sSGVhZGVyczpbXSxjb2x1bW5zOltdLGhlaWdodDoiMTAwJSIsbWF4Um93czp0aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3ZXJfcm93c19hbGxvd2VkfHwxLzAsc2V0dGluZ3M6e30sYWZ0ZXJHZXRDb2xIZWFkZXI6dm9pZCAwLGxpY2Vuc2VL'@; put 'ZXk6dm9pZCAwLHJvd0hlYWRlcnM6RWU9PiIgIixyb3dIZWFkZXJXaWR0aDoxNSxyb3dIZWlnaHRzOjIwLGNvbnRleHRNZW51OlsiY29weV93aXRoX2NvbHVtbl9oZWFkZXJzIiwiY29weV9jb2x1bW5faGVhZGVyc19vbmx5Il0sY29weVBhc3RlOntjb3B5Q29sdW1uSGVhZGVyczohMCxjb3B5'@; put 'Q29sdW1uSGVhZGVyc09ubHk6ITB9LGRyb3Bkb3duTWVudTp7aXRlbXM6e21ha2VfcmVhZF9vbmx5OntuYW1lOiJtYWtlX3JlYWRfb25seSJ9LGFsaWdubWVudDp7bmFtZToiYWxpZ25tZW50In0sc3AxOntuYW1lOiItLS0tLS0tLS0ifSxpbmZvOntuYW1lOiJ0ZXN0IGluZm8iLHJlbmRlcmVy'@; put 'OihFZSxaZSxpdCxldCx5dCxFdCk9Pntjb25zdCBTdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bGV0IEp0LG5uPSJObyBpbmZvIGZvdW5kIjtpZih0aGlzLmhvdEluc3RhbmNlKXtjb25zdCB2bj10aGlzLmhvdEluc3RhbmNlLmdldFNlbGVjdGVkKCl8fFtdLE5uPXZuP3ZuWzBd'@; put 'WzFdOi0xLGNyPXRoaXMuaG90SW5zdGFuY2U/LmNvbFRvUHJvcChObik7SnQ9dGhpcy4kZGF0YUZvcm1hdHM/LnZhcnNbY3JdLEp0JiYobm49YExBQkVMOiAke0p0Py5sYWJlbH08YnI+VFlQRTogJHtKdD8udHlwZX08YnI+TEVOR1RIOiAke0p0Py5sZW5ndGh9PGJyPkZPUk1BVDogJHtKdD8u'@; put 'Zm9ybWF0fWApfXJldHVybiBTdC5pbm5lckhUTUw9bm4sU3R9fX19fSx0aGlzLmhvdEluc3RhbmNlPW51bGwsdGhpcy5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXI9ITEsdGhpcy52aWV3Ym94T3Blbj0hMSx0aGlzLmhvdFRhYmxlUmVnaXN0ZXJlcj1uZXcgQWcsdGhpcy5zYXNqc0NvbmZpZz10'@; put 'aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKX1uZ09uSW5pdCgpeyIiIT09R24udmlld2VyLmN1cnJlbnRTZWxlY3Rpb24mJjA9PT1PYmplY3Qua2V5cyh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcykubGVuZ3RoJiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZShbR24udmlld2VyLmN1cnJl'@; put 'bnRTZWxlY3Rpb25dLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KSx2b2lkIDAhPT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0mJihHbi52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy9kYXRhIiksdGhpcy5saWNlbmNlU2VydmljZS5ob3RfbGljZW5zZV9r'@; put 'ZXkuc3Vic2NyaWJlKGE9Pnt0aGlzLmhvdFRhYmxlLmxpY2Vuc2VLZXk9YX0pfW5ld1ZpZXdib3goKXt0aGlzLnZpZXdib3hPcGVuPSEwfXJlc2V0RmlsdGVyKCl7dGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0LmZpcnN0JiZ0aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3QuZmlyc3QucmVzZXRGaWx0'@; put 'ZXIoKX1zZWFyY2hUYWJsZShhKXt2YXIgZD10aGlzO3JldHVybiBmaShmdW5jdGlvbiooKXtkLnNlYXJjaExvYWRpbmc9ITA7bGV0IGg9YS52YWx1ZSxmPWQubGliKyIuIitkLnRhYmxlLF89cGFyc2VJbnQoZC5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpfHwwO3lpZWxkIGQuc2Fz'@; put 'U3RvcmVTZXJ2aWNlLnZpZXdEYXRhU2VhcmNoKGgsZC5zZWFyY2hOdW1lcmljLGYsXykudGhlbihUPT57VC5zYXNwYXJhbXN8fFQudmlld0RhdGE/KGQuaG90VGFibGUuZGF0YT1ULnZpZXdkYXRhLGQuJGRhdGFGb3JtYXRzPVQuJHZpZXdkYXRhLGQuZHNtZXRhPVQuZHNtZXRhLGQuc2V0RFNO'@; put 'b3RlKCksZC5udW1iZXJPZlJvd3M9VC5zYXNwYXJhbXNbMF0uTk9CUyxkLnF1ZXJ5VGV4dD1ULnNhc3BhcmFtc1swXS5GSUxURVJfVEVYVCxkLmhlYWRlclBrcz1ULnNhc3BhcmFtc1swXS5QS19GSUVMRFMuc3BsaXQoIiAiKSwwPT09ZC5ob3RUYWJsZS5kYXRhLmxlbmd0aD9kLm5vRGF0YT0h'@; put 'MDooZC5ub0RhdGE9ITEsZC50YWJsZUZsYWc9ITEsZC5zZXR1cEhvdCgpKSk6ZC5zZWFyY2hMb2FkaW5nPSExfSkuY2F0Y2goVD0+e2QubG9nZ2VyU2VydmljZS5lcnJvcihUKX0pLGQuc2VhcmNoTG9hZGluZz0hMX0pKCl9cmVsb2FkVGFibGVEYXRhKCl7dGhpcy52aWV3RGF0YSh0aGlzLnVy'@; put 'bEZpbHRlclBrfHwwKX1yZWxvYWRMaWJJbmZvKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7YS5saWJpbmZvPW51bGwsYS5zYXNTdG9yZVNlcnZpY2UucmVmcmVzaExpYkluZm8oYS5saWIpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZD1maShmdW5jdGlvbiooaCl7YS5saWJpbmZv'@; put 'PWgubGliaW5mbyxHbi52aWV3ZXIubGliaW5mbz1hLmxpYmluZm87Y29uc3QgZj1hLmxpYnJhcmllcy5maW5kKF89Pl8uTElCUkFSWVJFRj09PWEubGliKTtmJiYoZi5saWJpbmZvPWEubGliaW5mbyl9KTtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMp'@; put 'fX0oKSxkPT57YS5sb2dnZXJTZXJ2aWNlLmVycm9yKGQpLG51bGw9PT1hLmxpYmluZm8mJihhLmxpYmluZm89W10pfSl9KSgpfWZpbHRlckZuKGEpe3RoaXMubGlicmFyaWVzPXRoaXMubGlicmFyaWVzLmZpbHRlcihoPT4tMSE9PWguTElCUkFSWU5BTUUudG9Mb3dlckNhc2UoKS5pbmRleE9m'@; put 'KGEudG9Mb2NhbGVMb3dlckNhc2UoKSkpfWRvd25sb2FkRGF0YSgpe2xldCBhPXRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLGQ9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2M7Y29uc3QgaD10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO2xldCBXLGY9IiZ0eXBlPSIrdGhpcy5k'@; put 'b3dubG9hZEZvcm1hdCxfPSImdGFibGU9Iit0aGlzLnRhYmxlVGl0bGUsVD0iU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU/YCZfY29udGV4dG5hbWU9JHt0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lfWA6IiI7Vz10eXBlb2YgdGhpcy5yb3V0ZS5zbmFwc2hvdC5w'@; put 'YXJhbXMuZmlsdGVySWQ+InUiPzA6cGFyc2VJbnQodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpLHdpbmRvdy5vcGVuKGEraCsiLz9fcHJvZ3JhbT0iK2QrIi9zZXJ2aWNlcy9wdWJsaWMvZ2V0cmF3ZGF0YSIrZitfK1QrIiZmaWx0ZXI9IitXKSx0aGlzLm9wZW5Eb3dubG9h'@; put 'ZD0hMX1kb3dubG9hZERETCgpe2xldCBhPXRoaXMubGliLGQ9dGhpcy50YWJsZSxoPXRoaXMuZG93bmxvYWRGb3JtYXQucmVwbGFjZSgiX0RETCIsIiIpLGY9dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsXz10aGlzLnNhc2pzQ29uZmlnLmFwcExvYztjb25zdCBUPXRoaXMuc2FzU2Vydmlj'@; put 'ZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oZitUKyIvP19wcm9ncmFtPSIrXysiL3NlcnZpY2VzL3B1YmxpYy9nZXRkZGwiK2AmZHM9JHtkfSZsaWJyZWY9JHthfSZmbGF2b3VyPSR7aH0keyJTQVNWSVlBIj09PXRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT9gJl9jb250ZXh0'@; put 'bmFtZT0ke3RoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWV9YDoiIn1gKSx0aGlzLm9wZW5Eb3dubG9hZD0hMX1vbkNsaUNvbW1hbmRGb2N1cyhhKXthLnByZXZlbnREZWZhdWx0KCksYS50YXJnZXQuc2VsZWN0KCl9ZWRpdFRhYmxlKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2Vk'@; put 'aXRvci8iK3RoaXMubGliVGFiKX10YWJsZUVkaXRFeGlzdHMoKXtsZXQgYT17fTthPUduLmVkaXRvci5saWJzQW5kVGFibGVzO2xldCBkPXRoaXMubGliVGFiLnNwbGl0KCIuIilbMV0saD10aGlzLmxpYlRhYi5zcGxpdCgiLiIpWzBdO3JldHVybiEhYVtoXSYmYVtoXS5pbmNsdWRlcyhkKX1n'@; put 'b1RvTGluZWFnZSgpe2xldCBkPWAvdmlldy9saW5lYWdlLyR7dGhpcy50YWJsZXVyaS5zcGxpdCgiXFwiKVsxXX0vUkVWRVJTRWA7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChkKX1zaG93V2ViUXVlcnkoKXtsZXQgYTt0aGlzLndlYlF1ZXJ5PSEwLGE9dHlwZW9mIHRoaXMucm91dGUuc25h'@; put 'cHNob3QucGFyYW1zLmZpbHRlcklkPiJ1Ij8wOnBhcnNlSW50KHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkKTtsZXQgZD13aW5kb3cubG9jYXRpb24ucG9ydC5sZW5ndGg+MD8iOiIrd2luZG93LmxvY2F0aW9uLnBvcnQ6IiI7Y29uc3QgaD10aGlzLnNhc1NlcnZpY2UuZ2V0'@; put 'RXhlY3V0aW9uUGF0aCgpO2xldCBfPWAke3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfSR7ZH0vJHtofS8/X3Byb2dyYW09JHt0aGlzLnNhc2pzQ29uZmlnLmFwcExvY30vc2VydmljZXMvcHVibGljL2dldHJhd2RhdGEmdHlwZT1XRUIke3Ro'@; put 'aXMud2ViUXVlcnlUYWI/IlRBQiI6IkNTViJ9JnRhYmxlPSR7dGhpcy50YWJsZVRpdGxlfSR7IiZmaWx0ZXI9IithfWA7dGhpcy53ZWJRdWVyeVRleHQ9Xy5yZXBsYWNlKC8gL2dpbSwiJTIwIil9Y29weVRvQ2xpcCgpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7'@; put 'YS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGEuc3R5bGUubGVmdD0iMCIsYS5zdHlsZS50b3A9IjAiLGEuc3R5bGUub3BhY2l0eT0iMCIsYS52YWx1ZT10aGlzLndlYlF1ZXJ5VGV4dCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuZm9jdXMoKSxhLnNlbGVjdCgpLGRvY3VtZW50LmV4'@; put 'ZWNDb21tYW5kKCJjb3B5IiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKX1nb1RvVmlld2VyKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YSIpfXNob3dUYWJsZVNlbGVjdCgpe3RoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxlRmxhZ31jaGVja0V4cGFuZChhKXt9'@; put 'Y29sbGFwc2VMaWJyYXJ5SXRlbXMoYSxkKXthLmZvckVhY2goaD0+e2guTElCUkFSWVJFRiE9PWQuTElCUkFSWVJFRiYmKGguZXhwYW5kZWQ9ITEpfSl9bG9hZE1vcmVMaWJyYXJpZXMoKXt0aGlzLmxpYnJhcmllc1BhZ2luZ3x8KHRoaXMubGlicmFyaWVzUGFnaW5nPSEwLHRoaXMuaGVscGVy'@; put 'U2VydmljZS5kaXNwbGF5TGlicmFyaWVzKHRoaXMubGlicmFyaWVzLCEwKSx0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSl9dHJlZU5vZGVDbGlja2VkKGEsZCl7IkNvbGxhcHNlIj09PWEudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlTGlicmFyeUl0ZW1zKHRoaXMubGlicmFyaWVzLGQpfWxp'@; put 'YnJhcnlFeHBhbmRlZENoYW5nZShhLGQpe2EmJnRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsZCl9bGlicmFyeU9uQ2xpY2soYSxkLGgpe3ZhciBmPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2lmKGQudGFibGVzP2QuZXhwYW5kZWQ9ISFofHwhZC5leHBhbmRl'@; put 'ZDp5aWVsZCBmLnNlbGVjdFRhYmxlKGEsITEsZCksZC5leHBhbmRlZCl7Zi5jZGYuZGV0ZWN0Q2hhbmdlcygpO2xldCBfPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCNzZWFyY2hfJHtkLkxJQlJBUllSRUZ9YCk7Zi5sb2dnZXJTZXJ2aWNlLmxvZygiW2xpYlRyZWVTZWFyY2hJbnB1dF0iLF8p'@; put 'LF8mJl8uZm9jdXMoKSxkJiZkLmxpYmluZm8mJihmLmxpYmluZm89ZC5saWJpbmZvKSxmLmxpYiYmZi50YWJsZSYmIWg/Zi5yb3V0ZXIubmF2aWdhdGUoWyIvdmlldy9kYXRhIl0se3NraXBMb2NhdGlvbkNoYW5nZTohMCxxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KS50aGVuKCgp'@; put 'PT57Zi5yb3V0ZXIubmF2aWdhdGUoWyIvdmlldy9kYXRhLyIrZi5saWJdLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KX0pOmYubGliJiYhZi50YWJsZSYmZi5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoIi92aWV3L2RhdGEvIitmLmxpYil9Zi5jb2xsYXBzZUxpYnJhcnlJdGVtcyhm'@; put 'LmxpYnJhcmllcyxkKX0pKCl9b25UYWJsZUNsaWNrKGEsZCl7dGhpcy5saWI9ZC5MSUJSQVJZUkVGLHRoaXMudGFibGU9YSx0aGlzLnNlbGVjdExpYlRhYmxlKGEpLHRoaXMudmlld0RhdGEoMCl9c2VsZWN0VGFibGUoYSxkLGgpe3ZhciBmPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2gu'@; put 'bG9hZGluZ1RhYmxlcz0hMCxmLnRhYmxlPSExLGYudGFibGVEaXNhYmxlPSEwLCJQbGVhc2Ugc2VsZWN0IGxpYnJhcnkiIT09YT9Hbi52aWV3ZXIudGFibGVzU2V0JiZkPyhmLmFib3J0QWN0aXZlPSExLGYudGFibGVEaXNhYmxlPSExLGYudGFibGVzPUduLnZpZXdlci50YWJsZXMsZi5saWJp'@; put 'bmZvPUduLnZpZXdlci5saWJpbmZvKTooZi5saWJpbmZvPW51bGwseWllbGQgZi5zYXNTdG9yZVNlcnZpY2Uudmlld1RhYmxlcyhhKS50aGVuKF89PntmLmFib3J0QWN0aXZlPSExLGYudGFibGVEaXNhYmxlPSExO2xldCBUPV8ubXB0YWJsZXMubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBXLk1F'@; put 'TU5BTUV9KTtmLmxpYmluZm89Xy5saWJpbmZvfHxbXSxmLnRhYmxlcz1ULGgmJihoLnRhYmxlcz1ULGgubGliaW5mbz1mLmxpYmluZm8pLEduLnZpZXdlci5saWJyYXJpZXM9Zi5saWJyYXJpZXMsR24udmlld2VyLmxpYnJhcnk9Zi5saWIsR24udmlld2VyLnRhYmxlcz1mLnRhYmxlcyxHbi52'@; put 'aWV3ZXIubGliaW5mbz1mLmxpYmluZm8sR24udmlld2VyLnRhYmxlc1NldD0hMH0pLmNhdGNoKF89PntmLmxvZ2dlclNlcnZpY2UuZXJyb3IoXyksZi5hYm9ydEFjdGl2ZT0hMCxmLm5vRGF0YT0hMCxmLnRhYmxlVGl0bGU9IiIsZi50YWJsZURpc2FibGU9ITB9KSk6Zi50YWJsZURpc2FibGU9'@; put 'ITAsR24udmlld2VyLmxpYnJhcnk9Zi5saWIsZHx8Zi5jbGVhckdsb2JhbHNGaWx0ZXIoKSxoLmxvYWRpbmdUYWJsZXM9ITEsaC5leHBhbmRlZD0haC5leHBhbmRlZH0pKCl9c2VsZWN0TGliVGFibGUoYSxkKXsiUGxlYXNlIHNlbGVjdCB0YWJsZSIhPT1hPyh0aGlzLmFjdGlvbkRpc2FibGU9'@; put 'ITEsdGhpcy5saWJUYWI9dGhpcy5saWIrIi4iK3RoaXMudGFibGUpOnRoaXMuYWN0aW9uRGlzYWJsZT0hMCxHbi52aWV3ZXIudGFibGU9YSxkfHx0aGlzLmNsZWFyR2xvYmFsc0ZpbHRlcigpLHRoaXMubG9nZ2VyU2VydmljZS5sb2codGhpcy5saWJUYWIpfWNsZWFyR2xvYmFsc0ZpbHRlcigp'@; put 'e0duLnZpZXdlci5maWx0ZXIubGliZHM9IiIsR24udmlld2VyLmZpbHRlci53aGVyZUNsYXVzZT0iIixHbi52aWV3ZXIuZmlsdGVyLmdyb3VwTG9naWM9IiIsR24udmlld2VyLmZpbHRlci5jbGF1c2VzPVtdLEduLnZpZXdlci5maWx0ZXIuY29scz1bXSxHbi52aWV3ZXIuZmlsdGVyLnZhbHM9'@; put 'W119bGliVGFiQWN0aXZlKGEsZCl7cmV0dXJuISF0aGlzLmxpYlRhYiYmYSsiLiIrZD09PXRoaXMubGliVGFifXRyZWVPbkZpbHRlcihhLGQpe3RoaXMuaGVscGVyU2VydmljZS50cmVlT25GaWx0ZXIoYSxkKX1saWJyYXJ5T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9u'@; put 'RmlsdGVyKHRoaXMubGlicmFyaWVzLHRoaXMubGlicmFyaWVzU2VhcmNoLCJMSUJSQVJZTkFNRSIpLEduLnZpZXdlci5saWJyYXJpZXNTZWFyY2g9dGhpcy5saWJyYXJpZXNTZWFyY2h9bGlicmFyeVJlc2V0RmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLnJlc2V0QXJyYXlGaWx0ZXIodGhp'@; put 'cy5saWJyYXJpZXMpfXZpZXdEYXRhKGEpe3ZhciBkPXRoaXM7cmV0dXJuIGZpKGZ1bmN0aW9uKigpe2xldCBoO2lmKGQubG9hZGluZ1RhYmxlVmlldz0hMCx0eXBlb2YgZC5saWJEYXRhc2V0PiJ1IiloPWQubGliKyIuIitkLnRhYmxlO2Vsc2UgaWYodHlwZW9mIGQubGliPiJ1IiYmdHlwZW9m'@; put 'IGQudGFibGU+InUiKXtsZXQgVD1bXTtpZihUPWQubGliRGF0YXNldC5zcGxpdCgiLiIpLEduLnZpZXdlci5zdGFydHVwU2V0P2QubGlicmFyaWVzPUduLnZpZXdlci5saWJyYXJpZXM6eWllbGQgZC5zYXNTdG9yZVNlcnZpY2Uudmlld0xpYnMoKS50aGVuKFc9PntkLmxpYnJhcmllcz1XLnNh'@; put 'c2xpYnN9KS5jYXRjaChXPT57ZC5sb2dnZXJTZXJ2aWNlLmVycm9yKFcpfSksZC5saWI9VFswXSxHbi52aWV3ZXIuc3RhcnR1cFNldClkLnRhYmxlcz1Hbi52aWV3ZXIudGFibGVzO2Vsc2V7bGV0IFc9ZC5saWJyYXJpZXMuZmluZChpZT0+aWUuTElCUkFSWVJFRi50b0xvd2VyQ2FzZSgpPT09'@; put 'ZC5saWIudG9Mb3dlckNhc2UoKSk7eWllbGQgZC5zYXNTdG9yZVNlcnZpY2Uudmlld1RhYmxlcyhkLmxpYikudGhlbihpZT0+e2QudGFibGVzPWllLm1wdGFibGVzLm1hcChmdW5jdGlvbihwZSl7cmV0dXJuIHBlLk1FTU5BTUV9KSxXLnRhYmxlcz1kLnRhYmxlcyxHbi52aWV3ZXIubGlicmFy'@; put 'aWVzPWQubGlicmFyaWVzLEduLnZpZXdlci50YWJsZXM9ZC50YWJsZXMsR24udmlld2VyLnN0YXJ0dXBTZXQ9ITB9KS5jYXRjaChpZT0+e2QubG9nZ2VyU2VydmljZS5lcnJvcihpZSl9KX1kLnRhYmxlPVRbMV0sZC50YWJsZUZsYWc9ITEsaD1kLmxpYkRhdGFzZXQsZC5saWJUYWI9aH1lbHNl'@; put 'IEduLnZpZXdlci5zdGFydHVwU2V0P2QubGlicmFyaWVzPUduLnZpZXdlci5saWJyYXJpZXM6eWllbGQgZC5zYXNTdG9yZVNlcnZpY2Uudmlld0xpYnMoKS50aGVuKFQ9PntkLmxpYnJhcmllcz1ULnNhc2xpYnN9KS5jYXRjaChUPT57ZC5sb2dnZXJTZXJ2aWNlLmVycm9yKFQpfSksdHlwZW9m'@; put 'IGQudGFibGU8InUiJiYoR24udmlld2VyLnN0YXJ0dXBTZXQ/ZC50YWJsZXM9R24udmlld2VyLnRhYmxlczp5aWVsZCBkLnNhc1N0b3JlU2VydmljZS52aWV3VGFibGVzKGQubGliKS50aGVuKFQ9PntkLnRhYmxlcz1ULm1wdGFibGVzLm1hcChmdW5jdGlvbihXKXtyZXR1cm4gVy5NRU1OQU1F'@; put 'fSl9KS5jYXRjaChUPT57ZC5sb2dnZXJTZXJ2aWNlLmVycm9yKFQpLGQucm91dGVyLm5hdmlnYXRlKFsiL3ZpZXcvZGF0YSJdLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KX0pLGQudGFibGVGbGFnPSExLGg9ZC5saWIrIi4iK2QudGFibGUsZC50YWJsZVRpdGxlPWgsZC5saWJU'@; put 'YWI9aCk7ZC5yb3V0ZXIudXJsLnNwbGl0KCIvIikubGVuZ3RoPjMmJmgmJih5aWVsZCBkLnNhc1N0b3JlU2VydmljZS52aWV3RGF0YShoLGEpLnRoZW4oVD0+e2lmKFQucXVlcnkubGVuZ3RoPjAmJiJ2aWV3Ij09PUduLnJvb3RQYXJhbSYmMD09PUduLnZpZXdlci5maWx0ZXIuY2xhdXNlcy5s'@; put 'ZW5ndGgmJihHbi52aWV3ZXIuZmlsdGVyLnF1ZXJ5PWQuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoVC5xdWVyeSksR24udmlld2VyLmZpbHRlci5saWJkcz1kLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0sZC5zYXNTdG9yZVNlcnZpY2UuaW5pdGlhbGl6ZUdsb2JhbEZpbHRlckNsYXVz'@; put 'ZSgidmlld2VyIixULmNvbHMpKSxkLmFib3J0QWN0aXZlPSExLGQuZmlsdGVyQ29scz1ULmNvbHMsenooZC5maWx0ZXJDb2xzLFtdLFQuJHZpZXdkYXRhKSxkLm51bWJlck9mUm93cz1ULnNhc3BhcmFtc1swXS5OT0JTLGQuaGVhZGVyUGtzPVQuc2FzcGFyYW1zWzBdLlBLX0ZJRUxEUy5zcGxp'@; put 'dCgiICIpLCJTQVM5Ij09PWQuc2FzanNDb25maWcuc2VydmVyVHlwZSl7bGV0IEVlPVQuc2FzcGFyYW1zWzBdLlRBQkxFVVJJO0VlJiZFZS5sZW5ndGg+MCYmKGQudGFibGV1cmk9RWUpfWQuaG90VGFibGUuZGF0YT1ULnZpZXdkYXRhLGQuJGRhdGFGb3JtYXRzPVQuJHZpZXdkYXRhLGQuZHNt'@; put 'ZXRhPVQuZHNtZXRhLGQuc2V0RFNOb3RlKCksZC5xdWVyeVRleHQ9VC5zYXNwYXJhbXNbMF0uRklMVEVSX1RFWFQ7bGV0IFc9W10saWU9W107Zm9yKGxldCBFZSBpbiBULnZpZXdkYXRhWzBdKUVlJiZpZS5wdXNoKEVlKTtmb3IobGV0IEVlPTA7RWU8aWUubGVuZ3RoO0VlKyspVy5wdXNoKHtk'@; put 'YXRhOmllW0VlXX0pO2QuaG90VGFibGUuY29sSGVhZGVycz1pZSxkLmhvdFRhYmxlLmNvbHVtbnM9VyxkLmhvdFRhYmxlLmNlbGxzPWZ1bmN0aW9uKCl7cmV0dXJue3JlYWRPbmx5OiEwfX0sZC50YWJsZUZsYWc9ITE7bGV0IHdlPVtdO3dlPWguc3BsaXQoIi4iKSxkLmxpYj13ZVswXSxkLnRh'@; put 'YmxlPXdlWzFdLDA9PT1kLmhvdFRhYmxlLmRhdGEubGVuZ3RoPyhkLm5vRGF0YT0hMCxkLnRhYmxlRmxhZz0hMCk6KGQubm9EYXRhPSExLGQudGFibGVGbGFnPSExKSxkLm5vRGF0YVJlcUVycj0hMX0pLmNhdGNoKFQ9PntkLmxvZ2dlclNlcnZpY2UuZXJyb3IoVCksZC5hYm9ydEFjdGl2ZT0h'@; put 'MCxkLm5vRGF0YVJlcUVycj0hMH0pKSxkLnJvdXRlci51cmwuaW5jbHVkZXMoIi9kYXRhIikmJmgmJmQucm91dGVyLm5hdmlnYXRlKDAhPT1hP1siL3ZpZXcvZGF0YS8iK2grIi8iK2FdOlsiL3ZpZXcvZGF0YS8iK2hdLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KTtsZXQgZj1k'@; put 'LnRhYmxlLF89ZC5saWJyYXJpZXMuZmluZChUPT5ULkxJQlJBUllSRUYudG9Mb3dlckNhc2UoKT09PWQubGliLnRvTG93ZXJDYXNlKCkpO18/KEduLnZpZXdlci5saWJyYXJpZXMubGVuZ3RoPjAmJihkLmxpYnJhcmllcz1Hbi52aWV3ZXIubGlicmFyaWVzLGQubGlicmFyaWVzU2VhcmNoPUdu'@; put 'LnZpZXdlci5saWJyYXJpZXNTZWFyY2gpLGQubGlicmFyeU9uQ2xpY2soZC5saWIsXywhMCkpOmQubGliaW5mbz1bXSxkLnRhYmxlPWZ8fGQudGFibGUsZC5saWJyYXJpZXMmJmQuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFyaWVzKGQubGlicmFyaWVzKSxkLnJvdXRlci51cmwuaW5jbHVk'@; put 'ZXMoIi9kYXRhIikmJmQuZXZlbnRTZXJ2aWNlLmNsb3NlU2lkZWJhcigpLGQubG9hZGluZ1RhYmxlVmlldz0hMSwhZC5ub0RhdGEmJiFkLm5vRGF0YVJlcUVyciYmaCYmZC5zZXR1cEhvdCgpLGQuaG90SW5zdGFuY2VDbGlja0xpc3RlbmVyfHxzZXRUaW1lb3V0KCgpPT57bGV0IFQ9ZG9jdW1l'@; put 'bnQuZ2V0RWxlbWVudEJ5SWQoImhvdEluc3RhbmNlIik7VCYmKFQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixXPT57c2V0VGltZW91dCgoKT0+e2xldCBpZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZGVidWctc3dpdGNoLWl0ZW0iKXx8dm9pZCAwO2llJiZpZS5jbGljaygpfSwx'@; put 'MDApfSksZC5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXI9ITApfSwyZTMpfSkoKX1tYXhXaWR0aENoZWtlcihhLGQpe3JldHVybiBhPjIwMD8yMDA6YX1vcGVuUWIoKXt0aGlzLmZpbHRlcj0hMCx0aGlzLmNkZi5kZXRlY3RDaGFuZ2VzKCksdGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2V0UXVlcnlW'@; put 'YXJpYWJsZXModGhpcy5saWIrIi4iK3RoaXMudGFibGUsdGhpcy5maWx0ZXJDb2xzKX1zZW5kQ2xhdXNlKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7YS5zdWJtaXRMb2FkaW5nPSEwO2xldCBkPVtdLGg9W107aWYodHlwZW9mIGEuY2xhdXNlcz4idSIpcmV0dXJuIGEubnVs'@; put 'bFZhcmlhYmxlcz0hMCx2b2lkKGEuc3VibWl0TG9hZGluZz0hMSk7e2xldCBmPWEuY2xhdXNlcy5xdWVyeU9iajtpZihmWzBdLmVsZW1lbnRzLmxlbmd0aDwxKXJldHVybiJ2aWV3Ij09PUduLnJvb3RQYXJhbSYmKEduLnZpZXdlci5maWx0ZXIuY2xhdXNlcz1bXSxHbi52aWV3ZXIuZmlsdGVy'@; put 'LnF1ZXJ5PVtdLEduLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz0iIiksdm9pZCBhLnJvdXRlci5uYXZpZ2F0ZShbIi92aWV3L2RhdGEvIithLmxpYmRzXSx7cXVlcnlQYXJhbXNIYW5kbGluZzoicHJlc2VydmUifSk7Zm9yKGxldCBfPTA7XzxmLmxlbmd0aDtfKyspe2NvbnN0IFQ9ZltfXS5l'@; put 'bGVtZW50cztkPVQuZmlsdGVyKGZ1bmN0aW9uKFcpe3JldHVybiBudWxsPT09Vy52YXJpYWJsZX0pLGQubGVuZ3RoJiZoLnB1c2goVCl9fWlmKGgubGVuZ3RoKXJldHVybiBhLm51bGxWYXJpYWJsZXM9ITAsdm9pZChhLnN1Ym1pdExvYWRpbmc9ITEpO3tjb25zdCBmPXtncm91cExvZ2ljOmEu'@; put 'Y2xhdXNlcy5ncm91cExvZ2ljLGZpbHRlckdyb3VwczpbXX07YS5jbGF1c2VzLnF1ZXJ5T2JqLmZvckVhY2goVD0+e2NvbnN0IFc9e2ZpbHRlckNsYXVzZXM6W119O1QuZWxlbWVudHMuZm9yRWFjaChpZT0+e1cuZmlsdGVyQ2xhdXNlcy5wdXNoKGEuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUo'@; put 'aWUpKX0pLFcuY2xhdXNlTG9naWM9VC5jbGF1c2VMb2dpYyxmLmZpbHRlckdyb3Vwcy5wdXNoKGEuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoVykpfSk7Y29uc3QgXz1hLnNhc1N0b3JlU2VydmljZS5jcmVhdGVGaWx0ZXJRdWVyeVRhYmxlKGYpO3lpZWxkIGEuc2FzU3RvcmVTZXJ2aWNlLnNh'@; put 'dmVRdWVyeShhLmxpYmRzLF8pLnRoZW4oVD0+e2EucXVlcnlUZXh0PVQucmVzdWx0WzBdLkZJTFRFUl9URVhUO2xldCBXPVQucmVzdWx0WzBdLkZJTFRFUl9SSzthLnJvdXRlci5uYXZpZ2F0ZShbIi92aWV3L2RhdGEvIithLmxpYmRzKyIvIitXXSx7cXVlcnlQYXJhbXNIYW5kbGluZzoicHJl'@; put 'c2VydmUifSksYS52aWV3RGF0YShXKSxhLmZpbHRlcj0hMX0pLmNhdGNoKFQ9PnthLmxvZ2dlclNlcnZpY2UuZXJyb3IoVCl9KSxhLnN1Ym1pdExvYWRpbmc9ITF9fSkoKX1yZW1vdmVRdWVyeSgpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlbW92ZUNsYXVzZSgpfXNldERTTm90ZSgpe2NvbnN0'@; put 'IGE9dGhpcy5kc21ldGEuZmluZChmPT4iTk9URVMiPT09Zi5OQU1FKSxkPXRoaXMuZHNtZXRhLmZpbmQoZj0+IkREX0xPTkdERVNDIj09PWYuTkFNRSksaD10aGlzLmRzbWV0YS5maW5kKGY9PiJERF9TSE9SVERFU0MiPT09Zi5OQU1FKTt0aGlzLmRzTm90ZT1hJiZhLlZBTFVFP2EuVkFMVUU6'@; put 'ZCYmZC5WQUxVRT9kLlZBTFVFOmgmJmguVkFMVUU/aC5WQUxVRToiIn1zZXR1cEhvdCgpe3NldFRpbWVvdXQoKCk9PnshdGhpcy5sb2FkaW5nVGFibGVWaWV3JiZ0aGlzLmxpYkRhdGFzZXQmJih0aGlzLmhvdEluc3RhbmNlPXRoaXMuaG90VGFibGVSZWdpc3RlcmVyLmdldEluc3RhbmNlKCJo'@; put 'b3RJbnN0YW5jZSIpLHRoaXMuaG90SW5zdGFuY2UmJnRoaXMuaG90SW5zdGFuY2UudXBkYXRlU2V0dGluZ3Moe2hlaWdodDp0aGlzLmhvdFRhYmxlLmhlaWdodCxtb2RpZnlDb2xXaWR0aDpmdW5jdGlvbihhLGQpe3JldHVybiBhPjUwMD81MDA6YX0sYWZ0ZXJHZXRDb2xIZWFkZXI6KGEsZCk9'@; put 'Pntjb25zdCBoPXRoaXMuaG90SW5zdGFuY2U/LmNvbFRvUHJvcChhKTtoJiZ0aGlzLmhlYWRlclBrcy5pbmRleE9mKGgpPi0xJiZkLmNsYXNzTGlzdC5hZGQoInByaW1hcnlLZXlIZWFkZXJTdHlsZSIpfX0pKX0sMWUzKX1sb2FkV2l0aFBhcmFtZXRlcnMoKXt2YXIgYT10aGlzO3JldHVybiBm'@; put 'aShmdW5jdGlvbiooKXthLnN3aXRjaEZsYWc9ITAsYS50YWJsZVRpdGxlPWEucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbXx8MCxhLnVybEZpbHRlclBrPXBhcnNlSW50KGEucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkfHwiMCIpO2xldCBoPWEucm91dGUuc25hcHNob3QucGFy'@; put 'YW1zLmxpYk1lbTthLmxpYkRhdGFzZXQ9aCxoLmluY2x1ZGVzKCIuIil8fChhLmxpYj1oKSx5aWVsZCBhLnZpZXdEYXRhKGEudXJsRmlsdGVyUGspLGEubm9EYXRhP3NldFRpbWVvdXQoKCk9PnthLnRhYmxlRmxhZz0hMH0sMTIwMCk6c2V0VGltZW91dCgoKT0+e2EudGFibGVGbGFnPSExfSwx'@; put 'MjAwKX0pKCl9bG9hZFdpdGhvdXRQYXJhbWV0ZXJzKCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7YS5zd2l0Y2hGbGFnPSExLGEubGlicmFyaWVzTG9hZGluZz0hMCxHbi52aWV3ZXIuc3RhcnR1cFNldD9zZXRUaW1lb3V0KCgpPT57YS5saWJyYXJpZXM9R24udmlld2VyLmxp'@; put 'YnJhcmllcyxhLmxpYnJhcmllc1NlYXJjaD1Hbi52aWV3ZXIubGlicmFyaWVzU2VhcmNoLGEubGliPUduLnZpZXdlci5saWJyYXJ5LGEubGlicmFyaWVzVHJlZUV4cGFuZGVkPSEwLGEubGlicmFyaWVzTG9hZGluZz0hMSxhLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyhhLmxpYnJh'@; put 'cmllcyl9LDEwMCk6KGEubm9EYXRhUmVxRXJyPSExLHlpZWxkIGEuc2FzU3RvcmVTZXJ2aWNlLnZpZXdMaWJzKCkudGhlbihkPT57YS5saWJyYXJpZXM9ZC5zYXNsaWJzLEduLnZpZXdlci5saWJyYXJpZXM9YS5saWJyYXJpZXMsR24udmlld2VyLnN0YXJ0dXBTZXQ9ITAsYS5saWJyYXJpZXNM'@; put 'b2FkaW5nPSExLGEuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFyaWVzKGEubGlicmFyaWVzKX0pLmNhdGNoKGQ9PnthLmxvZ2dlclNlcnZpY2UuZXJyb3IoZCksYS5saWJyYXJpZXNMb2FkaW5nPSExLGEubm9EYXRhUmVxRXJyPSEwfSkpfSkoKX1uZ0FmdGVyVmlld0luaXQoKXt9bmdBZnRl'@; put 'ckNvbnRlbnRJbml0KCl7dmFyIGE9dGhpcztyZXR1cm4gZmkoZnVuY3Rpb24qKCl7YS5ob3RUYWJsZS5kYXRhLmxlbmd0aD4wJiYoYS50YWJsZUZsYWc9ITApLGEuX3F1ZXJ5PWEuc2FzU3RvcmVTZXJ2aWNlLnF1ZXJ5LnN1YnNjcmliZShkPT57YS53aGVyZVN0cmluZz1kLnN0cmluZyxhLmNs'@; put 'YXVzZXM9ZC5vYmosYS5saWJkcz1kLmxpYmRzfSksdHlwZW9mIGEucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbTwidSI/YS5sb2FkV2l0aFBhcmFtZXRlcnMoKTphLmxvYWRXaXRob3V0UGFyYW1ldGVycygpfSkoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBu'@; put 'ZXcoYXx8YykodHQoQzApLHR0KGJkKSx0dChvYSksdHQoRHMpLHR0KEdsKSx0dCh2bCksdHQodzApLHR0KFRjKSx0dChKZCksdHQoVWEpKX0sYy5cdTAyNzVjbXA9d3Ioe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXZpZXdlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJlJv'@; put 'KHdudCw1KSwyJmEpe2xldCBoO2FpKGg9bGkoKSkmJihkLnF1ZXJ5RmlsdGVyQ29tcExpc3Q9aCl9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6OTUsdmFyczoyOSxjb25zdHM6W1szLCJzY3JvbGxlZFRvQm90dG9tIl0sWyJjbGFzcyIsIm15LTEwLW14LWF1dG8g'@; put 'dGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJtb2RhbCB6LWluZGV4LWhpZ2hl'@; put 'c3QiLDQsIm5nSWYiXSxbImNsYXNzIiwibW9kYWwtYmFja2Ryb3AiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIiwiY2VudGVyIiwidGV4dC1jZW50ZXIi'@; put 'LCJjb2xvci1kYXJrZXItZ3JheSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsImNsci1jb2wtbWQtNiJdLFsxLCJkb3dubG9hZC1zZWxlY3QiXSxbImNsclNlbGVjdCIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbInZhbHVlIiwiQ1NWIl0sWyJ2YWx1ZSIsIlNBUyJdLFsidmFsdWUi'@; put 'LCJQR1NRTF9EREwiXSxbInZhbHVlIiwiU0FTX0RETCJdLFsidmFsdWUiLCJUU1FMX0RETCJdLFsidmFsdWUiLCJFWENFTCJdLFsidmFsdWUiLCJNQVJLRE9XTiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJj'@; put 'bGljayJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiaWQiLCJjbGljayJdLFsxLCJtb2RhbC1ib2R5Iiwid2ViLXF1ZXJ5Il0sWzEsInJvdyJdLFsxLCJjbHItY29sLWxnLTEyIiwiY2xyLWNvbC1tZC0xMiIsImNsci1jb2wtc20t'@; put 'MTIiLCJjbHItY29sLXhzLTEyIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiJdLFsxLCJidG4tZ3JvdXAiXSxbMSwicmFkaW8iLCJidG4iLDMsImNsaWNrIl0sWyJ0eXBlIiwicmFkaW8iLCJuYW1lIiwiYnRuLWdyb3VwLWRl'@; put 'bW8tcmFkaW9zIiwzLCJjaGVja2VkIl0sWzEsImNhcmQtYmxvY2siLCJ3b3JkLWJyZWFrLWFsbCJdLFsicm93cyIsIjQiLCJjb2xzIiwiNTAiLCJ0eXBlIiwidGV4dCIsInJlYWRvbmx5IiwiIiwxLCJ3ZWItcXVlcnktdGV4dCIsInctMTAwIiwzLCJ2YWx1ZSIsImZvY3VzIl0sWyJjbGlDb21t'@; put 'YW5kSW5wdXQiLCIiXSxbMSwiY2FyZC1mb290ZXIiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWxpbmsiLDMsIm5neENsaXBib2FyZCIsImNsaWNrIl0sWyJhcmlhLW1vZGFsIiwidHJ1ZSIsMSwiZmlsdGVyLW1vZGFsIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2Rh'@; put 'bENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJidG4tc20iLDMsImNsaWNrIl0sWyJ0eXBl'@; put 'Iiwic3VibWl0IiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0'@; put 'bGluZSIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjYXJkIGgtMTAwIGQtZmxleCBjbHItZmxleC1jb2x1bW4iLDQsIm5nSWYiXSxbMywib3Bl'@; put 'biIsImRzbWV0YSIsIm9wZW5DaGFuZ2UiXSxbMywidmlld2JveE1vZGFsIiwidmlld2JveE1vZGFsQ2hhbmdlIl0sWzEsIm15LTEwLW14LWF1dG8iLCJ0ZXh0LWNlbnRlciJdLFsiY2xyTWVkaXVtIiwiIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNs'@; put 'cklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxb'@; put 'InNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdJZiJd'@; put 'LFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJyYWNrLXNlcnZlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUi'@; put 'LCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywiaWQiLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hUcmVlSW5wdXQiLCIiXSxbNCwibmdWYXIiXSxbImNsclRvb2x0aXBUcmlnZ2VyIiwiIiwiY2xhc3MiLCJjbHItdHJlZW5vZGUtbGluayIsMywiZGMt'@; put 'bG9ja2VkLWNvbnRyb2wiLCJ0YWJsZS1hY3RpdmUiLCJjbGljayIsNCwibmdJZiJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tcmlnaHQiLCJjbHJTaXplIiwibGciLDQsImNscklmT3BlbiJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLDEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJd'@; put 'LFszLCJuZ1N3aXRjaCJdLFsic2hhcGUiLCJib2x0Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInNoYXBlIiwidGFibGUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic2hhcGUiLCJib2x0Il0sWyJzaGFwZSIsInRhYmxlIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCIsImNsclNpemUiLCJsZyJd'@; put 'LFsxLCJ3LTEwMCIsInRleHQtY2VudGVyIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLXNtIl0sWzEsIm1vZGFsIiwiei1pbmRleC1oaWdoZXN0Il0sWyJyb2xlIiwiZGlhbG9nIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtb2RhbC1kaWFsb2ciXSxbMSwibW9kYWwtY29udGVudCJdLFsxLCJt'@; put 'b2RhbC1oZWFkZXIiXSxbImFyaWEtbGFiZWwiLCJDbG9zZSIsInR5cGUiLCJidXR0b24iLDEsImNsb3NlIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJzaGFwZSIsImNsb3NlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImFy'@; put 'aWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtYmFja2Ryb3AiXSxbInF1ZXJ5RmlsdGVyIiwiIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbMSwiY2FyZCIsImgtMTAwIiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIl0sWyJjbGFzcyIsImhlYWRlci1yb3cgY2xyLXJv'@; put 'dyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBtLTAiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tdGFibGUtc2VsZWN0ZWQiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2FyZC1ibG9jayBub0RhdGEiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xy'@; put 'LWZsZXgtMSIsNCwibmdJZiJdLFsiY2xhc3MiLCJtdC0yLWkgdy0xMDAgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiaGVhZGVyLXJvdyIsImNsci1yb3ciLCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwidy0xMDAiLCJtLTAiXSxbMSwi'@; put 'Zm9ybS1ibG9jayIsInRhYmxlLXNlYXJjaC13cmFwcGVyIiwic3ciLCJjbHItY29sLW1kIl0sWyJjbHJGb3JtIiwiIiwxLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbMSwiaW5wdXQtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm5hbWUi'@; put 'LCJzZWFyY2gtaW5wdXQiLDMsInR5cGUiLCJrZXl1cC5lbnRlciJdLFsic2VhcmNoRWwiLCIiXSxbInNoYXBlIiwic2VhcmNoIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItaW5saW5lIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVj'@; put 'a2JveCIsIiIsIm5hbWUiLCJudW1lcmljX2NoZWNrIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsxLCJ0aXRsZS1jb2wiLCJjbHItY29sLWF1dG8iLCJjbHItZmxleC1jb2x1bW4iLCJjbHItZmxleC1zbS1yb3ciXSxbMSwidmlld2VyVGl0bGUiLCJjbHItZmxleC1jb2x1bW4iLCJk'@; put 'LWZsZXgiLCJjbHItZmxleC1zbS1yb3ciLCJjbHItYWxpZ24taXRlbXMtY2VudGVyIiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiZC1mbGV4Il0sWyJjbHJUb29sdGlwVHJpZ2dlciIsIiIsInNoYXBlIiwiaW5mby1jaXJjbGUiLCJzaXplIiwiMjQiLDEsImlzLWhpZ2hsaWdo'@; put 'dCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJib2x0IiwiY2xhc3MiLCJjb2xvci15ZWxsb3cgbXQtNSBtci01Iiw0LCJuZ0lmIl0sWyJjbHJUb29sdGlwVHJpZ2dlciIsIiIsNCwibmdJZiJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tbGVmdCIsImNsclNpemUiLCJs'@; put 'ZyIsNCwiY2xySWZPcGVuIl0sWzEsIm9wdGlvbnMtY29sIiwiY2xyLWNvbC1tZCJdLFsiY2xhc3MiLCJvcHRpb25zLWRyb3Bkb3duIiwzLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItY29sLW1kLTEyIGluZm9CYXIiLDQsIm5nSWYiXSxbInNoYXBl'@; put 'Iiwic2VhcmNoIiwzLCJjbGljayJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiXSxbInNoYXBlIiwiYm9sdCIsMSwiY29sb3IteWVsbG93IiwibXQtNSIsIm1yLTUiXSxbImNsclRvb2x0aXBUcmlnZ2VyIiwiIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0IiwiY2xyU2l6ZSIs'@; put 'ImxnIl0sWyJzaGFwZSIsInJlZnJlc2giLDEsInJlZnJlc2gtdGFibGUiLDMsImNsaWNrIl0sWzEsIm9wdGlvbnMtZHJvcGRvd24iLDMsImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwxLCJidG4iLCJidG4tc20iLCJi'@; put 'dG4tb3V0bGluZSIsImZpbHRlclNpZGUiXSxbInNoYXBlIiwiY29nIiwic2l6ZSIsIjE1Il0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCIsNCwiY2xySWZPcGVuIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCJdLFsidHlwZSIsImJ1dHRvbiIsImNsckRyb3Bkb3duSXRlbSIs'@; put 'IiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siXSxbInNoYXBlIiwidmlldy1jYXJkcyJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4tc3VjY2Vzcy1vdXRsaW5lIiwiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayIs'@; put 'NCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsImNsckRyb3Bkb3duSXRlbSIsIiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJidG4tYmxvY2siLDMsImNsaWNrIl0sWyJzaGFwZSIsImZpbHRlciJdLFsic2hhcGUiLCJkb3dubG9hZCJdLFsic2hhcGUiLCJkb3dubG9hZC1jbG91'@; put 'ZCJdLFsic2hhcGUiLCJwZW5jaWwiXSxbInNoYXBlIiwic3dpdGNoIl0sWzEsImNsci1jb2wtbWQtMTIiLCJpbmZvQmFyIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxb'@; put 'MSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5Il0sWzEsImhlYWRlci1yb3ciLCJjbHItcm93IiwiYm9yZGVyLWJvdHRvbS1kaXZpZGVyIiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iLCJ3LTEwMCIsIm0tMCJdLFsxLCJ0aXRsZS1jb2wiLCJjbHItY29sLWF1dG8iXSxbMSwidmlld2VyVGl0'@; put 'bGUiLCJtdC0xNyJdLFsxLCJ0ZXh0LWNlbnRlciIsIm10LTEwIl0sWyJjbHJNZWRpdW0iLCIiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tdGFibGUtc2VsZWN0ZWQtaW5mbyBwb2ludGVyLWV2ZW50cy1ub25lIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImxpYmluZm8gbS0wIGNsci1yb3ciLDQsIm5n'@; put 'SWYiXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQtaW5mbyIsInBvaW50ZXItZXZlbnRzLW5vbmUiXSxbInNoYXBlIiwiaW5mby1zdGFuZGFyZCIsInNpemUiLCI0MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsxLCJsaWJpbmZvIiwibS0wIiwiY2xyLXJvdyJdLFsiY2xhc3MiLCJ0ZXh0'@; put 'LWNlbnRlciBtLTAgdy0xMDAiLDQsIm5nSWYiXSxbMSwidGV4dC1jZW50ZXIiLCJtLTAiLCJ3LTEwMCJdLFsic2hhcGUiLCJyZWZyZXNoIiwxLCJyZWZyZXNoLXRhYmxlIiwibS0wIiwzLCJjbGljayJdLFsxLCJtLTAiXSxbMSwibS0wIiwiZm9udC1ib2xkIl0sWzEsImNhcmQtYmxvY2siLCJu'@; put 'b0RhdGEiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBjb2xvci1ncmF5Iiw0LCJuZ0lmIl0sWzEsImNsci1mbGV4LTEiXSxbImhvdElkIiwiaG90SW5zdGFuY2UiLCJpZCIsImhvdFRhYmxlIiwic3Ry'@; put 'ZXRjaEgiLCJhbGwiLDMsIm11bHRpQ29sdW1uU29ydGluZyIsInZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0IiwiZGF0YSIsImNvbEhlYWRlcnMiLCJjb2x1bW5zIiwiY29weVBhc3RlIiwiY29udGV4dE1lbnUiLCJmaWx0ZXJzIiwiZHJvcGRvd25NZW51IiwiaGVpZ2h0IiwibW9kaWZ5Q29s'@; put 'V2lkdGgiLCJjZWxscyIsIm1heFJvd3MiLCJtYW51YWxDb2x1bW5SZXNpemUiLCJyb3dIZWFkZXJzIiwicm93SGVhZGVyV2lkdGgiLCJyb3dIZWlnaHRzIiwibGljZW5zZUtleSJdLFsxLCJtdC0yLWkiLCJ3LTEwMCIsInRleHQtY2VudGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7aWYo'@; put 'MSZhJiYobWUoMCwiYXBwLXNpZGViYXIiLDApLHh0KCJzY3JvbGxlZFRvQm90dG9tIixmdW5jdGlvbigpe3JldHVybiBkLmxvYWRNb3JlTGlicmFyaWVzKCl9KSxKZSgxLENudCwyLDAsImRpdiIsMSksbWUoMiwiY2xyLXRyZWUiKSxKZSgzLHhudCw2LDMsImNsci10cmVlLW5vZGUiLDIpLEpl'@; put 'KDQsSG50LDIsMSwibmctY29udGFpbmVyIiwzKSx5ZSgpLEplKDUsTm50LDMsMCwiZGl2Iiw0KSx5ZSgpLG1lKDYsImRpdiIsNSksSmUoNyxWbnQsMTQsMCwiZGl2Iiw2KSxKZSg4LEJudCwxLDAsImRpdiIsNyksbWUoOSwiY2xyLW1vZGFsIiw4KSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixm'@; put 'dW5jdGlvbihmKXtyZXR1cm4gZC5vcGVuRG93bmxvYWQ9Zn0pLG1lKDEwLCJoMyIsOSksTmUoMTEsIkRvd25sb2FkIikseWUoKSxtZSgxMiwiZGl2IiwxMCkoMTMsImRpdiIsMTEpKDE0LCJjbHItc2VsZWN0LWNvbnRhaW5lciIsMTIpKDE1LCJsYWJlbCIpLE5lKDE2LCJQbGVhc2UgY2hvb3Nl'@; put 'IGRvd25sb2FkIGZvcm1hdCIpLHllKCksbWUoMTcsInNlbGVjdCIsMTMpLHh0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5kb3dubG9hZEZvcm1hdD1mfSksbWUoMTgsIm9wdGlvbiIsMTQpLE5lKDE5LCJDU1YiKSx5ZSgpLG1lKDIwLCJvcHRpb24iLDE1KSxOZSgyMSwi'@; put 'RGF0YWxpbmVzIChjYXJkcyBmaWxlKSIpLHllKCksbWUoMjIsIm9wdGlvbiIsMTYpLE5lKDIzLCJEREwgKFBHU1FMIEZsYXZvdXIpIikseWUoKSxtZSgyNCwib3B0aW9uIiwxNyksTmUoMjUsIkRETCAoU0FTIEZsYXZvdXIpIikseWUoKSxtZSgyNiwib3B0aW9uIiwxOCksTmUoMjcsIkRETCAo'@; put 'VFNRTCBGbGF2b3VyKSIpLHllKCksbWUoMjgsIm9wdGlvbiIsMTkpLE5lKDI5LCJFeGNlbCAoLnhsc3gpIikseWUoKSxtZSgzMCwib3B0aW9uIiwyMCksTmUoMzEsIk1hcmtkb3duICgubWQpIikseWUoKSgpKCkoKSgpLG1lKDMyLCJkaXYiLDIxKSgzMywiYnV0dG9uIiwyMikseHQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe3JldHVybiBkLm9wZW5Eb3dubG9hZD0hMX0pLE5lKDM0LCIgQ2FuY2VsICIpLHllKCksbWUoMzUsImJ1dHRvbiIsMjMpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5kb3dubG9hZEZvcm1hdC5pbmNsdWRlcygiRERMIik/ZC5kb3dubG9hZERETCgpOmQuZG93'@; put 'bmxvYWREYXRhKCl9KSxOZSgzNiwiIE9rICIpLHllKCkoKSgpLG1lKDM3LCJjbHItbW9kYWwiLDgpLHh0KCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBkLndlYlF1ZXJ5PWZ9KSxtZSgzOCwiaDMiLDkpLE5lKDM5LCIgV2ViIFF1ZXJ5IFVSTCAiKSx5ZSgpLG1lKDQw'@; put 'LCJkaXYiLDI0KSg0MSwiZGl2IiwyNSkoNDIsImRpdiIsMjYpKDQzLCJkaXYiLDI3KSg0NCwiZGl2IiwyOCkoNDUsInNwYW4iKSxOZSg0NiwiQ29weSB0aGUgYmVsb3cgaW50byB5b3VyIHByZWZlcnJlZCBjbGllbnQgdG9vbDoiKSx5ZSgpLG1lKDQ3LCJkaXYiLDI5KSg0OCwiZGl2IiwzMCks'@; put 'eHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLndlYlF1ZXJ5VGFiPSEwLGQuc2hvd1dlYlF1ZXJ5KCl9KSxxdCg0OSwiaW5wdXQiLDMxKSxtZSg1MCwibGFiZWwiKSxOZSg1MSwiVEFCIikseWUoKSgpLG1lKDUyLCJkaXYiLDMwKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQu'@; put 'd2ViUXVlcnlUYWI9ITEsZC5zaG93V2ViUXVlcnkoKX0pLHF0KDUzLCJpbnB1dCIsMzEpLG1lKDU0LCJsYWJlbCIpLE5lKDU1LCJDU1YiKSx5ZSgpKCkoKSgpLG1lKDU2LCJkaXYiLDMyKSg1NywidGV4dGFyZWEiLDMzLDM0KSx4dCgiZm9jdXMiLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uQ2xp'@; put 'Q29tbWFuZEZvY3VzKGYpfSksTmUoNTksIiAgICAgICAgICAgICAgIikseWUoKSgpLG1lKDYwLCJkaXYiLDM1KSg2MSwiYnV0dG9uIiwzNikseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmNvcHlUb0NsaXAoKX0pLE5lKDYyLCIgY29weSB0byBjbGlwYm9hcmQgIikseWUoKSgpKCko'@; put 'KSgpKCksbWUoNjMsImRpdiIsMjEpKDY0LCJidXR0b24iLDIyKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQud2ViUXVlcnk9ITF9KSxOZSg2NSwiIGNsb3NlICIpLHllKCkoKSgpLG1lKDY2LCJjbHItbW9kYWwiLDM3KSx4dCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihm'@; put 'KXtyZXR1cm4gZC5maWx0ZXI9Zn0pLG1lKDY3LCJoMyIsOSksTmUoNjgsIiBGaWx0ZXIgZm9yIHRhYmxlOiIpLG1lKDY5LCJzcGFuIiksTmUoNzApLHllKCkoKSxtZSg3MSwiZGl2IiwxMCksSmUoNzIsam50LDIsMCwiYXBwLXF1ZXJ5IiwzOCkseWUoKSxtZSg3MywiZGl2IiwyMSkoNzQsImJ1'@; put 'dHRvbiIsMzkpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5yZXNldEZpbHRlcigpfSksTmUoNzUsIiByZXNldCBmaWx0ZXIgIikseWUoKSxtZSg3NiwiYnV0dG9uIiw0MCkseHQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmZpbHRlcj0hMSxkLnJlbW92ZVF1ZXJ5KCl9KSxO'@; put 'ZSg3NywiIENhbmNlbCAiKSx5ZSgpLG1lKDc4LCJidXR0b24iLDQxKSx4dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuc2VuZENsYXVzZSgpfSksTmUoNzksIiBPayAiKSx5ZSgpKCkoKSxtZSg4MCwiY2xyLW1vZGFsIiw0MikseHQoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24o'@; put 'Zil7cmV0dXJuIGQucXVlcnlFcnI9Zn0pLG1lKDgxLCJoMyIsNDMpLE5lKDgyLCJFcnJvciIpLHllKCksbWUoODMsImRpdiIsMTApKDg0LCJwIiksTmUoODUpLHllKCkoKSxtZSg4NiwiZGl2IiwyMSkoODcsImJ1dHRvbiIsNDQpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5xdWVy'@; put 'eUVycj0hMX0pLE5lKDg4LCIgQ2FuY2VsICIpLHllKCksbWUoODksImJ1dHRvbiIsNDUpLHh0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5xdWVyeUVycj0hMX0pLE5lKDkwLCIgT2sgIikseWUoKSgpKCksSmUoOTEsem50LDYsMCwiZGl2Iiw0NiksSmUoOTIsTXJ0LDgsNiwiZGl2Iiw0'@; put 'NykseWUoKSxtZSg5MywiYXBwLWRhdGFzZXQtaW5mbyIsNDgpLHh0KCJvcGVuQ2hhbmdlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5kYXRhc2V0SW5mbz1mfSkseWUoKSxtZSg5NCwiYXBwLXZpZXdib3hlcyIsNDkpLHh0KCJ2aWV3Ym94TW9kYWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBk'@; put 'LnZpZXdib3hPcGVuPWZ9KSx5ZSgpKSwyJmEpe2NvbnN0IGg9JGkoNTgpO0NlKDEpLFJlKCJuZ0lmIixkLmxpYnJhcmllc0xvYWRpbmcpLENlKDIpLFJlKCJuZ0lmIixkLmxpYnJhcmllcyksQ2UoMSksUmUoIm5nRm9yT2YiLGQubGlicmFyaWVzKSxDZSgxKSxSZSgibmdJZiIsZC5saWJyYXJp'@; put 'ZXNQYWdpbmcpLENlKDIpLFJlKCJuZ0lmIixkLm51bGxWYXJpYWJsZXMpLENlKDEpLFJlKCJuZ0lmIixkLm51bGxWYXJpYWJsZXMpLENlKDEpLFJlKCJjbHJNb2RhbE9wZW4iLGQub3BlbkRvd25sb2FkKSgiY2xyTW9kYWxTaXplIiwibWQiKSxDZSg4KSxSZSgibmdNb2RlbCIsZC5kb3dubG9h'@; put 'ZEZvcm1hdCksQ2UoMTgpLFJlKCJpZCIsZC50YWJsZVRpdGxlKSxDZSgyKSxSZSgiY2xyTW9kYWxPcGVuIixkLndlYlF1ZXJ5KSgiY2xyTW9kYWxTaXplIiwibGciKSxDZSgxMiksUmUoImNoZWNrZWQiLGQud2ViUXVlcnlUYWIpLENlKDQpLFJlKCJjaGVja2VkIiwhZC53ZWJRdWVyeVRhYiks'@; put 'Q2UoNCksRWMoInZhbHVlIixkLndlYlF1ZXJ5VGV4dCksQ2UoNCksUmUoIm5neENsaXBib2FyZCIsaCksQ2UoNSksUmUoImNsck1vZGFsT3BlbiIsZC5maWx0ZXIpKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksQ2UoNCksZ3IoIiAiLGQubGliVGFiLCIgIiks'@; put 'Q2UoMiksUmUoIm5nSWYiLGQuZmlsdGVyKSxDZSg2KSxSZSgiY2xyTG9hZGluZyIsZC5zdWJtaXRMb2FkaW5nKSxDZSgyKSxSZSgiY2xyTW9kYWxPcGVuIixkLnF1ZXJ5RXJyKSxDZSg1KSxvcihkLnF1ZXJ5RXJyTWVzc2FnZSksQ2UoNiksUmUoIm5nSWYiLGQubG9hZGluZ1RhYmxlVmlldyks'@; put 'Q2UoMSksUmUoIm5nSWYiLCFkLmxvYWRpbmdUYWJsZVZpZXcpLENlKDEpLFJlKCJvcGVuIixkLmRhdGFzZXRJbmZvKSgiZHNtZXRhIixkLmRzbWV0YSksQ2UoMSksUmUoInZpZXdib3hNb2RhbCIsZC52aWV3Ym94T3Blbil9fSxkZXBlbmRlbmNpZXM6W3hzZSx4cyxaaSxuZCx0aCx2bnQsQ3As'@; put 'bDEsYzEsV2EsUzAsTTAsQnMsd3AsT3MscjIsZGQsZzEsRHAsa2Esb3Usc3UsWnUsYzIsZGgsVXMsWEosRDAsRDgsVDAsZjEsTjgsSDgsTmYsYWcsbGcsSzgsamIsVWIsemIsdTIseHksbjMsQXNlLGpFLGNVLFU3LERzZSx5bnRdLHN0eWxlczpbIi5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtt'@; put 'YXJnaW4tdG9wOjA7ZmxleDoxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Y2xyLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0udG9nZ2xlLXN3aXRjaFtfbmdjb250ZW50LSVDT01Q'@; put 'JV0gICBpbnB1dFt0eXBlPWNoZWNrYm94XVtfbmdjb250ZW50LSVDT01QJV06Y2hlY2tlZCArIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjojMzE0MzUxIWltcG9ydGFudDt0cmFuc2l0aW9uOi4xNXMgZWFzZS1p'@; put 'bjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yfS5oZWFkZXItcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50aXRsZS1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmhlYWRlci1yb3dbX25nY29u'@; put 'dGVudC0lQ09NUCVdICAgLm9wdGlvbnMtY29sW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zd1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjFyZW0gMHJlbSAuNXJlbSAxcmVtfS5pbmZvQmFyW19uZ2NvbnRlbnQtJUNPTVAlXXtt'@; put 'YXJnaW4tdG9wOjEwcHg7YmFja2dyb3VuZDojNDk1OTY3O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozcHg7Zm9udC1zaXplOjE2cHh9LmZpbHRlclNpZGVbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MjZweDttYXJnaW4tYm90dG9tOjE5cHh9Lm9wdGlvbnMt'@; put 'ZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaWNvbnttYXJnaW4tcmlnaHQ6NXB4fS52aWV3ZXJUaXRsZVtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbToxNXB4fS5kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0'@; put 'aDoxODBweDttYXJnaW4tdG9wOi0xOHB4O3BhZGRpbmc6MH0uZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuYnRuW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO3RleHQtdHJhbnNmb3JtOm5vbmV9LmNhcmRGbGV4W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZs'@; put 'ZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubm9EYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MX0uZmlsdGVyQnRuW19uZ2NvbnRlbnQtJUNPTVAl'@; put 'XXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5lZGl0QnRuW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmJ0blZpZXdbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIWltcG9ydGFudH0uY29udGVudC1h'@; put 'cmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41cmVtIWltcG9ydGFudDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5kb3dubG9hZC1zZWxlY3RbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLXNlbGVjdC13cmFwcGVye21heC1oZWlnaHQ6dW5zZXQhaW1wb3J0'@; put 'YW50fS5yZWZyZXNoLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjttYXJnaW4tbGVmdDo1cHh9LmxpYmluZm9bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MTBweCAyMHB4O292ZXJmbG93OmF1dG99aG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnBy'@; put 'aW1hcnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kOnJnYmEoNDgsMTA3LDAsLjQzMTM3MjU0OSl9Lm5vLXRhYmxlLXNlbGVjdGVkLWluZm9bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6bm9uZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNv'@; put 'bHVtbn0ud2ViLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjM1dmh9LndlYi1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAud2ViLXF1ZXJ5LXRleHRbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6MTAwcHg7bWF4LWhlaWdodDoxMDBweH1AbWVkaWEgc2NyZWVu'@; put 'IGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmZpbHRlckJ0bltfbmdjb250ZW50LSVDT01QJV0sIC5lZGl0QnRuW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KXsucm93W19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXXttYXJnaW4tcmlnaHQ6MHJlbTttYXJnaW4tbGVmdDowcmVtfX0iXX0pLGN9KSgpO2NvbnN0IHhydD1be3BhdGg6IiIsY29tcG9uZW50OmF0dCxjaGlsZHJlbjpbe3BhdGg6IiIscGF0aE1hdGNoOiJmdWxsIixyZWRpcmVjdFRvOiJkYXRhIn0se3BhdGg6ImRhdGEiLGNvbXBvbmVudDpI'@; put 'VH0se3BhdGg6ImRhdGEiLGNvbXBvbmVudDpIVH0se3BhdGg6ImRhdGEvOmxpYk1lbS86ZmlsdGVySWQiLGNvbXBvbmVudDpIVH0se3BhdGg6ImRhdGEvOmxpYk1lbSIsY29tcG9uZW50OkhUfSx7cGF0aDoibGluZWFnZSIsY29tcG9uZW50OkZUfSx7cGF0aDoibGluZWFnZS86dGFibGVpZC86'@; put 'ZGlyZWN0aW9uIixjb21wb25lbnQ6RlR9LHtwYXRoOiJsaW5lYWdlL2NvbHVtbi86Y29sdXJpLzpkaXJlY3Rpb24iLGNvbXBvbmVudDpGVH0se3BhdGg6ImxpbmVhZ2UvY29sdW1uLzpjb2x1cmkvOmRpcmVjdGlvbi86cmVsb2FkIixjb21wb25lbnQ6RlR9LHtwYXRoOiJ2aXlhLWFwaS1leHBs'@; put 'b3JlciIsY29tcG9uZW50OnBudH0se3BhdGg6Im1ldGFkYXRhIixjb21wb25lbnQ6b1p9LHtwYXRoOiJtZXRhZGF0YS9vYmplY3QvOm9iamVjdElEIixjb21wb25lbnQ6b1p9LHtwYXRoOiJtZXRhZGF0YS9vYmplY3QvOm9iamVjdElELzpvYmplY3ROYW1lIixjb21wb25lbnQ6b1p9LHtwYXRo'@; put 'OiJ1c2VybmF2Iixjb21wb25lbnQ6c3R0LGNoaWxkcmVuOlt7cGF0aDoiIixwYXRoTWF0Y2g6ImZ1bGwiLHJlZGlyZWN0VG86Imdyb3VwcyJ9LHtwYXRoOiJ1c2VycyIsY29tcG9uZW50OkNsZX0se3BhdGg6InVzZXJzLzp1cmkiLGNvbXBvbmVudDpDbGV9LHtwYXRoOiJncm91cHMiLGNvbXBv'@; put 'bmVudDplYWV9LHtwYXRoOiJncm91cHMvOnVyaSIsY29tcG9uZW50OmVhZX0se3BhdGg6InJvbGVzIixjb21wb25lbnQ6d2xlfSx7cGF0aDoicm9sZXMvOnVyaSIsY29tcG9uZW50OndsZX1dfV19XTtsZXQgRXJ0PSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihh'@; put 'KXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W2hjLmZvckNoaWxkKHhydCksaGNdfSksY30pKCksa3J0PSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMp'@; put 'fSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9bWkoe2ltcG9ydHM6W0ZzZSxvbyxFcnQsX250LHFsLF91LF83LmZvclJvb3QoKSxCNyxWNyx0dyxmVSxDMl19KSxjfSkoKTtjb25zdCBUcnQ9aGMuZm9yUm9vdChbe3BhdGg6IiIscmVkaXJlY3RUbzoiaG9tZSIscGF0aE1h'@; put 'dGNoOiJmdWxsIn0se3BhdGg6InZpZXciLGxvYWRDaGlsZHJlbjooKT0+a3J0fSx7cGF0aDoicmV2aWV3Iixjb21wb25lbnQ6QkdlLGNoaWxkcmVuOlt7cGF0aDoiIixwYXRoTWF0Y2g6ImZ1bGwiLHJlZGlyZWN0VG86InRvYXBwcm92ZSJ9LHtwYXRoOiIiLGxvYWRDaGlsZHJlbjooKT0+Vkdl'@; put 'fV19LHtwYXRoOiJsaWNlbnNpbmciLGxvYWRDaGlsZHJlbjooKT0+c1dlfSx7cGF0aDoiaG9tZSIsbG9hZENoaWxkcmVuOigpPT5oVX0se3BhdGg6ImVkaXRvciIsbG9hZENoaWxkcmVuOigpPT52WWV9LHtwYXRoOiJzdGFnZSIsbG9hZENoaWxkcmVuOigpPT5HR2V9LHtwYXRoOiJzeXN0ZW0i'@; put 'LGxvYWRDaGlsZHJlbjooKT0+cyRlfSx7cGF0aDoiZGVwbG95Iixsb2FkQ2hpbGRyZW46KCk9PlRFZX0se3BhdGg6IioqIixjb21wb25lbnQ6WXhlfV0se3VzZUhhc2g6ITB9KTtsZXQgRHJ0PSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3'@; put 'KGF8fGMpfSxjLlx1MDI3NW1vZD12aSh7dHlwZTpjLGJvb3RzdHJhcDpbcVNlXX0pLGMuXHUwMjc1aW5qPW1pKHtwcm92aWRlcnM6W1V4LGJkLHBVXSxpbXBvcnRzOltaeGUsRUcscWwsRDZlLEZoZSxUcnQsVjcsX3UsQjcsaFUsdHcsQzIsV3R0XX0pLGN9KSgpO0wxZSgpLmJvb3RzdHJhcE1v'@; put 'ZHVsZShEcnQpfSw1NjMyMTooYXQsSWUsRik9Pnt2YXIgYWU9RigxNzE1NikuZGVmYXVsdDtzZWxmLGF0LmV4cG9ydHM9KCgpPT57dmFyIHg9ezI2NTY6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oayl7cmV0'@; put 'dXJuIGsmJmsuX19lc01vZHVsZT9rOntkZWZhdWx0Omt9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5kZWNvZGVUb2tlbj1PLmhhc1Rva2VuRXhwaXJlZD1PLmlzUmVmcmVzaFRva2VuRXhwaXJpbmc9Ty5pc0FjY2Vzc1Rva2VuRXhwaXJpbmc9'@; put 'dm9pZCAwO3ZhciBLPXooUig2MjQ1KSk7ZnVuY3Rpb24gSShrLEUpe3JldHVybigwLEsuZGVmYXVsdCkoaykuZXhwLShuZXcgRGF0ZSkudmFsdWVPZigpLzFlMzw9RX1PLmlzQWNjZXNzVG9rZW5FeHBpcmluZz1mdW5jdGlvbihrLEUpe3JldHVybiB2b2lkIDA9PT1FJiYoRT0zNjAwKSwha3x8'@; put 'SShrLEUpfSxPLmlzUmVmcmVzaFRva2VuRXhwaXJpbmc9ZnVuY3Rpb24oayxFKXtyZXR1cm4gdm9pZCAwPT09RSYmKEU9MzApLCFrfHxJKGssRSl9LE8uaGFzVG9rZW5FeHBpcmVkPWZ1bmN0aW9uKGspe3JldHVybiFrfHxJKGssMCl9LE8uZGVjb2RlVG9rZW49ZnVuY3Rpb24oayl7dmFyIEU7'@; put 'dHJ5e0U9KDAsSy5kZWZhdWx0KShrKX1jYXRjaHt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdG9rZW4gc3VwcGxpZWQuIil9cmV0dXJuIEV9fSw2Nzk5OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRl'@; put 'P2Z1bmN0aW9uKEksayxFLGope3ZvaWQgMD09PWomJihqPUUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShJLGose2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGtbRV19fSl9OmZ1bmN0aW9uKEksayxFLGope3ZvaWQgMD09PWomJihqPUUpLElbal09a1tFXX0pLEs9dGhpcyYm'@; put 'dGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKEksayl7Zm9yKHZhciBFIGluIEkpImRlZmF1bHQiPT09RXx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGssRSl8fHooayxJLEUpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSks'@; put 'SyhSKDI2NTYpLE8pfSwzMjU5OmZ1bmN0aW9uKE0sTyl7InVzZSBzdHJpY3QiO3ZhciBSPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oeil7Zm9yKHZhciBLLEk9MSxrPWFyZ3VtZW50cy5sZW5ndGg7STxrO0krKylmb3Io'@; put 'dmFyIEUgaW4gSz1hcmd1bWVudHNbSV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEssRSkmJih6W0VdPUtbRV0pO3JldHVybiB6fSxSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8u'@; put 'cHJlZml4TWVzc2FnZT12b2lkIDAsTy5wcmVmaXhNZXNzYWdlPWZ1bmN0aW9uKHosSyl7aWYoIm9iamVjdCI9PXR5cGVvZiB6KWlmKHouaGFzT3duUHJvcGVydHkoIm1lc3NhZ2UiKSl6Lm1lc3NhZ2U9Syt6Lm1lc3NhZ2U7ZWxzZXtpZighei5oYXNPd25Qcm9wZXJ0eSgiYm9keSIpKXJldHVy'@; put 'biBSKFIoe30seikse21lc3NhZ2U6S30pO2lmKCJvYmplY3QiPT10eXBlb2Ygei5ib2R5JiYoei5tZXNzYWdlPXouYm9keS5tZXNzYWdlP0srei5ib2R5Lm1lc3NhZ2U6SyksInN0cmluZyI9PXR5cGVvZiB6LmJvZHkpe3ZhciBJPXZvaWQgMDt0cnl7ST1KU09OLnBhcnNlKHouYm9keSl9Y2F0'@; put 'Y2h7cmV0dXJuIHoubWVzc2FnZT1LLHp9cmV0dXJuIEkubWVzc2FnZT1JLm1lc3NhZ2U/SytJLm1lc3NhZ2U6Syx6LmJvZHk9SSx6fX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIHomJih6PUsreiksen19LDk3Nzg6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlz'@; put 'Ll9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAwPT09aiYmKGo9RSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEksaix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga1tFXX19KX06ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAw'@; put 'PT09aiYmKGo9RSksSVtqXT1rW0VdfSksSz10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oSSxrKXtmb3IodmFyIEUgaW4gSSkiZGVmYXVsdCI9PT1FfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoayxFKXx8eihrLEksRSl9O09iamVjdC5kZWZpbmVQcm9w'@; put 'ZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxLKFIoMzI1OSksTyksSyhSKDEwNjQpLE8pfSwxMDY0OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHosSz10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHo9ZnVuY3Rpb24oVixCKXtyZXR1cm4oej1PYmplY3Quc2V0UHJvdG90'@; put 'eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oWSxYKXtZLl9fcHJvdG9fXz1YfXx8ZnVuY3Rpb24oWSxYKXtmb3IodmFyIFUgaW4gWClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoWCxVKSYmKFlbVV09WFtVXSl9KShWLEIpfSxmdW5j'@; put 'dGlvbihWLEIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBCJiZudWxsIT09Qil0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKEIpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIFkoKXt0aGlzLmNvbnN0cnVjdG9yPVZ9eihW'@; put 'LEIpLFYucHJvdG90eXBlPW51bGw9PT1CP09iamVjdC5jcmVhdGUoQik6KFkucHJvdG90eXBlPUIucHJvdG90eXBlLG5ldyBZKX0pLEk9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKFYsQil7dmFyIFk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmVltTeW1ib2wuaXRlcmF0b3JdO2lm'@; put 'KCFZKXJldHVybiBWO3ZhciBYLFUscT1ZLmNhbGwoViksZWU9W107dHJ5e2Zvcig7KHZvaWQgMD09PUJ8fEItLSA+MCkmJiEoWD1xLm5leHQoKSkuZG9uZTspZWUucHVzaChYLnZhbHVlKX1jYXRjaCh0ZSl7VT17ZXJyb3I6dGV9fWZpbmFsbHl7dHJ5e1gmJiFYLmRvbmUmJihZPXEucmV0dXJu'@; put 'KSYmWS5jYWxsKHEpfWZpbmFsbHl7aWYoVSl0aHJvdyBVLmVycm9yfX1yZXR1cm4gZWV9LGs9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihWLEIsWSl7aWYoWXx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciBYLFU9MCxxPUIubGVuZ3RoO1U8cTtVKyspIVgmJlUgaW4g'@; put 'Qnx8KFh8fChYPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKEIsMCxVKSksWFtVXT1CW1VdKTtyZXR1cm4gVi5jb25jYXQoWHx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoQikpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5TZXJ2ZXJU'@; put 'eXBlRXJyb3I9dm9pZCAwO3ZhciBFPVIoMzkwMCksaj1mdW5jdGlvbihWKXtmdW5jdGlvbiBCKFkpe3ZvaWQgMD09PVkmJihZPVtdKTt2YXIgWD10aGlzLFU9KFk9ayhbXSxJKG5ldyBTZXQoWSkpLCExKSkubGVuZ3RoP1kuam9pbigiLCAiKS50cmltKCk6W0UuU2VydmVyVHlwZS5TYXNWaXlh'@; put 'LEUuU2VydmVyVHlwZS5TYXM5LEUuU2VydmVyVHlwZS5TYXNqc10uam9pbigiLCAiKS50cmltKCk7cmV0dXJuIFU9VS5yZXBsYWNlKC8sXHMoW14sXSopJC8sIiBhbmQgJDEiKSwoWD1WLmNhbGwodGhpcywiSW52YWxpZCBzZXJ2ZXIgdHlwZTogdmFsaWQgb3B0aW9uIi5jb25jYXQoMSE9PVku'@; put 'bGVuZ3RoPyJzIjoiIiwiICIpLmNvbmNhdCgxIT09WS5sZW5ndGg/ImFyZSI6ImlzIiwiICIpLmNvbmNhdChVKSl8fHRoaXMpLm5hbWU9IlNlcnZlclR5cGVFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKFgsQi5wcm90b3R5cGUpLFh9cmV0dXJuIEsoQixWKSxCfShFcnJvcik7Ty5TZXJ2'@; put 'ZXJUeXBlRXJyb3I9an0sMzkwNjpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihZLFgsVSxxKXtyZXR1cm4gbmV3KFV8fChVPVByb21pc2UpKShmdW5jdGlvbihlZSx0ZSl7ZnVuY3Rpb24gb2UodWUpe3RyeXtoZShxLm5l'@; put 'eHQodWUpKX1jYXRjaChjZSl7dGUoY2UpfX1mdW5jdGlvbiBzZSh1ZSl7dHJ5e2hlKHEudGhyb3codWUpKX1jYXRjaChjZSl7dGUoY2UpfX1mdW5jdGlvbiBoZSh1ZSl7dmFyIGNlO3VlLmRvbmU/ZWUodWUudmFsdWUpOihjZT11ZS52YWx1ZSxjZSBpbnN0YW5jZW9mIFU/Y2U6bmV3IFUoZnVu'@; put 'Y3Rpb24oRyl7RyhjZSl9KSkudGhlbihvZSxzZSl9aGUoKHE9cS5hcHBseShZLFh8fFtdKSkubmV4dCgpKX0pfSxLPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFksWCl7dmFyIFUscSxlZSx0ZSxvZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZlZVswXSl0aHJvdyBl'@; put 'ZVsxXTtyZXR1cm4gZWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gdGU9e25leHQ6c2UoMCksdGhyb3c6c2UoMSkscmV0dXJuOnNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYodGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksdGU7ZnVuY3Rp'@; put 'b24gc2UoaGUpe3JldHVybiBmdW5jdGlvbih1ZSl7cmV0dXJuIGZ1bmN0aW9uKGNlKXtpZihVKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYoVT0xLHEmJihlZT0yJmNlWzBdP3EucmV0dXJuOmNlWzBdP3EudGhy'@; put 'b3d8fCgoZWU9cS5yZXR1cm4pJiZlZS5jYWxsKHEpLDApOnEubmV4dCkmJiEoZWU9ZWUuY2FsbChxLGNlWzFdKSkuZG9uZSlyZXR1cm4gZWU7c3dpdGNoKHE9MCxlZSYmKGNlPVsyJmNlWzBdLGVlLnZhbHVlXSksY2VbMF0pe2Nhc2UgMDpjYXNlIDE6ZWU9Y2U7YnJlYWs7Y2FzZSA0OnJldHVy'@; put 'biBvZS5sYWJlbCsrLHt2YWx1ZTpjZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxxPWNlWzFdLGNlPVswXTtjb250aW51ZTtjYXNlIDc6Y2U9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChlZT0oZWU9b2UudHJ5cykubGVuZ3RoPjAmJmVl'@; put 'W2VlLmxlbmd0aC0xXSl8fDYhPT1jZVswXSYmMiE9PWNlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09Y2VbMF0mJighZWV8fGNlWzFdPmVlWzBdJiZjZVsxXTxlZVszXSkpe29lLmxhYmVsPWNlWzFdO2JyZWFrfWlmKDY9PT1jZVswXSYmb2UubGFiZWw8ZWVbMV0pe29lLmxhYmVsPWVlWzFd'@; put 'LGVlPWNlO2JyZWFrfWlmKGVlJiZvZS5sYWJlbDxlZVsyXSl7b2UubGFiZWw9ZWVbMl0sb2Uub3BzLnB1c2goY2UpO2JyZWFrfWVlWzJdJiZvZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZX1jZT1YLmNhbGwoWSxvZSl9Y2F0Y2goRyl7Y2U9WzYsR10scT0wfWZpbmFsbHl7VT1l'@; put 'ZT0wfWlmKDUmY2VbMF0pdGhyb3cgY2VbMV07cmV0dXJue3ZhbHVlOmNlWzBdP2NlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2hlLHVlXSl9fX0sST10aGlzJiZ0aGlzLl9fcmVhZHx8ZnVuY3Rpb24oWSxYKXt2YXIgVT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZZW1N5bWJvbC5pdGVyYXRv'@; put 'cl07aWYoIVUpcmV0dXJuIFk7dmFyIHEsZWUsdGU9VS5jYWxsKFkpLG9lPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1YfHxYLS0gPjApJiYhKHE9dGUubmV4dCgpKS5kb25lOylvZS5wdXNoKHEudmFsdWUpfWNhdGNoKHNlKXtlZT17ZXJyb3I6c2V9fWZpbmFsbHl7dHJ5e3EmJiFxLmRvbmUmJihV'@; put 'PXRlLnJldHVybikmJlUuY2FsbCh0ZSl9ZmluYWxseXtpZihlZSl0aHJvdyBlZS5lcnJvcn19cmV0dXJuIG9lfSxrPXRoaXMmJnRoaXMuX19zcHJlYWRBcnJheXx8ZnVuY3Rpb24oWSxYLFUpe2lmKFV8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcSxlZT0wLHRlPVgubGVuZ3RoO2Vl'@; put 'PHRlO2VlKyspIXEmJmVlIGluIFh8fChxfHwocT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChYLDAsZWUpKSxxW2VlXT1YW2VlXSk7cmV0dXJuIFkuY29uY2F0KHF8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFgpKX0sRT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rp'@; put 'b24oWSl7cmV0dXJuIFkmJlkuX19lc01vZHVsZT9ZOntkZWZhdWx0Oll9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy51cGRhdGVDc3Y9Ty5jcmVhdGVDc3Y9Ty5yZWFkQ3N2PXZvaWQgMDt2YXIgaj1SKDE1NTkpLFY9RShSKDc1NjUpKTtPLnJl'@; put 'YWRDc3Y9ZnVuY3Rpb24oWSl7cmV0dXJuIHoodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKFgpe3N3aXRjaChYLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAsai5yZWFkRmlsZSkoWSldO2Nhc2UgMTpyZXR1cm5bMixYLnNlbnQoKS5zcGxp'@; put 'dCgiXG4iKS5maWx0ZXIoZnVuY3Rpb24oVSl7cmV0dXJuIFUubGVuZ3RofSkubWFwKGZ1bmN0aW9uKFUpe3JldHVybiBVLnNwbGl0KCIsIil9KV19fSl9KX0sTy5jcmVhdGVDc3Y9ZnVuY3Rpb24oWSxYLFUpe3JldHVybiB6KHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHE7'@; put 'cmV0dXJuIEsodGhpcyxmdW5jdGlvbihlZSl7c3dpdGNoKGVlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHE9KDAsVi5kZWZhdWx0KShYLHtoZWFkZXI6MT09PVgubGVuZ3RoLGNvbHVtbnM6VX0pLFs0LCgwLGouY3JlYXRlRmlsZSkoWSxxKV07Y2FzZSAxOnJldHVybiBlZS5zZW50KCksWzJdfX0p'@; put 'fSl9LE8udXBkYXRlQ3N2PWZ1bmN0aW9uKFksWCxVLHEpe3JldHVybiB6KHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGVlLHRlLG9lO3JldHVybiBLKHRoaXMsZnVuY3Rpb24oc2Upe3N3aXRjaChzZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LEIoWSxYLFUscSldO2Nhc2Ug'@; put 'MTpyZXR1cm4gZWU9c2Uuc2VudCgpLHEmJih0ZT0wPT09ZWUubGVuZ3RoPzE6ZWUubGVuZ3RoLChvZT1VLmZpbmRJbmRleChmdW5jdGlvbihoZSl7cmV0dXJuIGhlPT09cX0pKT4tMT9YLnNwbGljZShvZSwwLHRlKTooVS5zcGxpY2UoMCwwLHEpLFguc3BsaWNlKDAsMCx0ZSkpKSxlZS5wdXNo'@; put 'KFgpLFs0LCgwLE8uY3JlYXRlQ3N2KShZLGVlLFUpXTtjYXNlIDI6cmV0dXJuIHNlLnNlbnQoKSxbMl19fSl9KX07dmFyIEI9ZnVuY3Rpb24oWSxYLFUscSl7cmV0dXJuIHoodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZWUsdGUsb2Usc2U7cmV0dXJuIEsodGhpcyxmdW5j'@; put 'dGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6aWYoWC5sZW5ndGghPT1VLmxlbmd0aCl7aWYoWC5sZW5ndGg+VS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbW9yZSBmaWVsZHMgdGhhbiBwcm92aWRlZCBjb2x1bW5zIik7aWYoIXF8fFgubGVu'@; put 'Z3RoKzEhPT1VLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImEgcmVjb3JkIGNhbiBub3QgaGF2ZSBsZXNzIGZpZWxkcyB0aGFuIHByb3ZpZGVkIGNvbHVtbnMiKX1lbHNlIGlmKHEmJlUuaW5jbHVkZXMocSkpdGhyb3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbW9yZSBmaWVs'@; put 'ZHMgdGhhbiBwcm92aWRlZCBjb2x1bW5zIik7cmV0dXJuWzQsKDAsTy5yZWFkQ3N2KShZKS5jYXRjaChmdW5jdGlvbih1ZSl7cmV0dXJuW119KV07Y2FzZSAxOmlmKGVlPWhlLnNlbnQoKSx0ZT1lZVswXSl7aWYoVS5sZW5ndGg+dGUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigibnVtYmVyIG9m'@; put 'IHByb3ZpZGVkIGNvbHVtbnMgYXJlIGdyZWF0ZXIgdGhhbiBudW1iZXIgb2YgZXhpc3RpbmcgY29sdW1ucyIpO2lmKFUubGVuZ3RoPHRlLmxlbmd0aCl7aWYoIXF8fFUubGVuZ3RoKzEhPT10ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJudW1iZXIgb2YgcHJvdmlkZWQgY29sdW1ucyBhcmUg'@; put 'bGVzcyB0aGFuIG51bWJlciBvZiBleGlzdGluZyBjb2x1bW5zIik7aWYob2U9dGUuZmluZEluZGV4KGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWU9PT1xfSksc2U9ayhbXSxJKFUpLCExKSwhKG9lPi0xKSl0aHJvdyBuZXcgRXJyb3IoInByb3ZpZGVkIGNvbHVtbnMgZG9lcyBub3QgbWF0Y2ggZXhp'@; put 'c3RpbmcgY29sdW1ucyIpO2lmKHNlLnNwbGljZShvZSwwLHEpLEpTT04uc3RyaW5naWZ5KFUpIT09SlNPTi5zdHJpbmdpZnkoc2UpKXRocm93IG5ldyBFcnJvcigicHJvdmlkZWQgY29sdW1ucyBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBjb2x1bW5zIil9ZWxzZXtpZihKU09OLnN0cmluZ2lm'@; put 'eShVKSE9PUpTT04uc3RyaW5naWZ5KHRlKSl0aHJvdyBuZXcgRXJyb3IoInByb3ZpZGVkIGNvbHVtbnMgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgY29sdW1ucyIpO2lmKHEmJiFVLmluY2x1ZGVzKHEpKXRocm93IG5ldyBFcnJvcigiY2FuIG5vdCBhZGQgbmV3IGlkIHRvIGV4aXN0aW5nIGRh'@; put 'dGEiKX19cmV0dXJuWzIsZWVdfX0pfSl9fSwxNTU5OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEcsYixELEgpe3ZvaWQgMD09PUgmJihIPUQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0'@; put 'eShHLEgse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGJbRF19fSl9OmZ1bmN0aW9uKEcsYixELEgpe3ZvaWQgMD09PUgmJihIPUQpLEdbSF09YltEXX0pLEs9dGhpcyYmdGhpcy5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEcsYil7T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KEcsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmJ9KX06ZnVuY3Rpb24oRyxiKXtHLmRlZmF1bHQ9Yn0pLEk9dGhpcyYmdGhpcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKEcpe2lmKEcmJkcuX19lc01vZHVsZSlyZXR1cm4gRzt2YXIgYj17fTtpZihu'@; put 'dWxsIT1HKWZvcih2YXIgRCBpbiBHKSJkZWZhdWx0IiE9PUQmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChHLEQpJiZ6KGIsRyxEKTtyZXR1cm4gSyhiLEcpLGJ9LGs9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEcsYixELEgpe3JldHVybiBuZXcoRHx8KEQ9'@; put 'UHJvbWlzZSkpKGZ1bmN0aW9uKE4sZyl7ZnVuY3Rpb24gQyhwKXt0cnl7dihILm5leHQocCkpfWNhdGNoKHcpe2codyl9fWZ1bmN0aW9uIFMocCl7dHJ5e3YoSC50aHJvdyhwKSl9Y2F0Y2godyl7Zyh3KX19ZnVuY3Rpb24gdihwKXt2YXIgdztwLmRvbmU/TihwLnZhbHVlKToodz1wLnZhbHVl'@; put 'LHcgaW5zdGFuY2VvZiBEP3c6bmV3IEQoZnVuY3Rpb24oSil7Sih3KX0pKS50aGVuKEMsUyl9digoSD1ILmFwcGx5KEcsYnx8W10pKS5uZXh0KCkpfSl9LEU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oRyxiKXt2YXIgRCxILE4sZyxDPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24o'@; put 'KXtpZigxJk5bMF0pdGhyb3cgTlsxXTtyZXR1cm4gTlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBnPXtuZXh0OlMoMCksdGhyb3c6UygxKSxyZXR1cm46UygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGdbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlz'@; put 'fSksZztmdW5jdGlvbiBTKHYpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gZnVuY3Rpb24odyl7aWYoRCl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtDOyl0cnl7aWYoRD0xLEgmJihOPTImd1swXT9ILnJldHVybjp3WzBdP0gu'@; put 'dGhyb3d8fCgoTj1ILnJldHVybikmJk4uY2FsbChIKSwwKTpILm5leHQpJiYhKE49Ti5jYWxsKEgsd1sxXSkpLmRvbmUpcmV0dXJuIE47c3dpdGNoKEg9MCxOJiYodz1bMiZ3WzBdLE4udmFsdWVdKSx3WzBdKXtjYXNlIDA6Y2FzZSAxOk49dzticmVhaztjYXNlIDQ6cmV0dXJuIEMubGFiZWwr'@; put 'Kyx7dmFsdWU6d1sxXSxkb25lOiExfTtjYXNlIDU6Qy5sYWJlbCsrLEg9d1sxXSx3PVswXTtjb250aW51ZTtjYXNlIDc6dz1DLm9wcy5wb3AoKSxDLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChOPShOPUMudHJ5cykubGVuZ3RoPjAmJk5bTi5sZW5ndGgtMV0pfHw2IT09d1sw'@; put 'XSYmMiE9PXdbMF0pKXtDPTA7Y29udGludWV9aWYoMz09PXdbMF0mJighTnx8d1sxXT5OWzBdJiZ3WzFdPE5bM10pKXtDLmxhYmVsPXdbMV07YnJlYWt9aWYoNj09PXdbMF0mJkMubGFiZWw8TlsxXSl7Qy5sYWJlbD1OWzFdLE49dzticmVha31pZihOJiZDLmxhYmVsPE5bMl0pe0MubGFiZWw9'@; put 'TlsyXSxDLm9wcy5wdXNoKHcpO2JyZWFrfU5bMl0mJkMub3BzLnBvcCgpLEMudHJ5cy5wb3AoKTtjb250aW51ZX13PWIuY2FsbChHLEMpfWNhdGNoKEope3c9WzYsSl0sSD0wfWZpbmFsbHl7RD1OPTB9aWYoNSZ3WzBdKXRocm93IHdbMV07cmV0dXJue3ZhbHVlOndbMF0/d1sxXTp2b2lkIDAs'@; put 'ZG9uZTohMH19KFt2LHBdKX19fSxqPXRoaXMmJnRoaXMuX19yZWFkfHxmdW5jdGlvbihHLGIpe3ZhciBEPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJkdbU3ltYm9sLml0ZXJhdG9yXTtpZighRClyZXR1cm4gRzt2YXIgSCxOLGc9RC5jYWxsKEcpLEM9W107dHJ5e2Zvcig7KHZvaWQgMD09'@; put 'PWJ8fGItLSA+MCkmJiEoSD1nLm5leHQoKSkuZG9uZTspQy5wdXNoKEgudmFsdWUpfWNhdGNoKFMpe049e2Vycm9yOlN9fWZpbmFsbHl7dHJ5e0gmJiFILmRvbmUmJihEPWcucmV0dXJuKSYmRC5jYWxsKGcpfWZpbmFsbHl7aWYoTil0aHJvdyBOLmVycm9yfX1yZXR1cm4gQ30sVj10aGlzJiZ0'@; put 'aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKEcsYixEKXtpZihEfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIEgsTj0wLGc9Yi5sZW5ndGg7TjxnO04rKykhSCYmTiBpbiBifHwoSHx8KEg9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYiwwLE4pKSxIW05dPWJbTl0pO3JldHVy'@; put 'biBHLmNvbmNhdChIfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChiKSl9LEI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKEcpe3JldHVybiBHJiZHLl9fZXNNb2R1bGU/Rzp7ZGVmYXVsdDpHfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2'@; put 'YWx1ZTohMH0pLE8uaXNUZXN0RmlsZT1PLnRlc3RGaWxlUmVnRXhwPU8uY3JlYXRlUmVhZFN0cmVhbT1PLmNyZWF0ZVdyaXRlU3RyZWFtPU8uZ2V0UmVhbFBhdGg9Ty5iYXNlNjRFbmNvZGVGaWxlPU8uYmFzZTY0RW5jb2RlSW1hZ2VGaWxlPU8ucGF0aFNlcEVzY2FwZWQ9Ty5jb3B5PU8ubW92'@; put 'ZUZpbGU9Ty5nZXRSZWxhdGl2ZVBhdGg9Ty51bmlmeUZpbGVQYXRoPU8uZGVsZXRlRm9sZGVyPU8uZGVsZXRlRmlsZT1PLmNyZWF0ZUZpbGU9Ty5jcmVhdGVGb2xkZXI9Ty5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9Ty5saXN0U3ViRm9sZGVyc0luRm9sZGVyPU8ubGlzdFNhc0Zp'@; put 'bGVzSW5Gb2xkZXI9Ty5saXN0SW5pRmlsZXNJbkZvbGRlcj1PLmxpc3RGaWxlc0luRm9sZGVyPU8ucmVhZEZpbGVCaW5hcnk9Ty5yZWFkRmlsZT1PLmlzRm9sZGVyPU8uZm9sZGVyRXhpc3RzPU8uZmlsZUV4aXN0cz12b2lkIDA7dmFyIFk9QihSKDU2NzQpKSxYPUIoUig5ODQpKSxVPUIoUigy'@; put 'NTIwKSkscT1SKDYyNjYpLGVlPUkoUigyOTc1KSk7ZnVuY3Rpb24gdGUoRyl7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihiKXtyZXR1cm5bMixZLmRlZmF1bHQucHJvbWlzZXMuYWNjZXNzKEcsWS5kZWZhdWx0LmNvbnN0YW50'@; put 'cy5GX09LKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSldfSl9KX1mdW5jdGlvbiBvZShHKXtyZXR1cm4gayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKGIpe3JldHVyblsyLFkuZGVmYXVs'@; put 'dC5wcm9taXNlcy5yZWFkRmlsZShHKV19KX0pfWZ1bmN0aW9uIHNlKEcpe3JldHVybiBrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuWzIsWS5kZWZhdWx0LnByb21pc2VzLnJlYWRkaXIoRyx7d2l0aEZpbGVUeXBlczohMH0p'@; put 'LnRoZW4oZnVuY3Rpb24oRCl7cmV0dXJuIEQuZmlsdGVyKGZ1bmN0aW9uKEgpe3JldHVybiFILmlzRGlyZWN0b3J5KCl9KS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIEgubmFtZX0pfSldfSl9KX1mdW5jdGlvbiBoZShHLGIsRCl7cmV0dXJuIHZvaWQgMD09PWImJihiPSEwKSx2b2lkIDA9PT1E'@; put 'JiYoRD1bXSksayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSD10aGlzO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oTil7cmV0dXJuWzIsWS5kZWZhdWx0LnByb21pc2VzLnJlYWRkaXIoRyx7d2l0aEZpbGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oZyl7cmV0dXJuIGsoSCx2'@; put 'b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEMsUz10aGlzO3JldHVybiBFKHRoaXMsZnVuY3Rpb24odil7c3dpdGNoKHYubGFiZWwpe2Nhc2UgMDpyZXR1cm4gYiYmZy5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaXNEaXJlY3RvcnkoKX0pLmxlbmd0aD8oQz1bXSxbNCwoMCxxLmFz'@; put 'eW5jRm9yRWFjaCkoZy5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaXNEaXJlY3RvcnkoKX0pLGZ1bmN0aW9uKHApe3JldHVybiBrKFMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB3LEosbmU7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihkZSl7c3dpdGNoKGRlLmxhYmVsKXtjYXNl'@; put 'IDA6cmV0dXJuIEQuaW5jbHVkZXModz1wLm5hbWUpP1szLDJdOihKPVUuZGVmYXVsdC5qb2luKEcsdyksbmU9W1YoW10saihDKSwhMSldLFs0LGhlKEosYixEKV0pO2Nhc2UgMTpDPVYuYXBwbHkodm9pZCAwLG5lLmNvbmNhdChbai5hcHBseSh2b2lkIDAsW2RlLnNlbnQoKS5tYXAoZnVuY3Rp'@; put 'b24oZmUpe3JldHVybiBVLmRlZmF1bHQuam9pbih3LGZlKX0pXSksITFdKSksZGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9KV0pOlszLDJdO2Nhc2UgMTpyZXR1cm4gdi5zZW50KCksWzIsVihWKFtdLGooZy5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIXAuaXNEaXJlY3Rvcnko'@; put 'KX0pLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5uYW1lfSkpLCExKSxqKEMpLCExKV07Y2FzZSAyOnJldHVyblsyLGcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLm5hbWV9KV19fSl9KX0pXX0pfSl9ZnVuY3Rpb24gdWUoRyl7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihiKXtyZXR1cm5bMixZLmRlZmF1bHQucHJvbWlzZXMubWtkaXIoRyx7cmVjdXJzaXZlOiEwfSldfSl9KX1mdW5jdGlvbiBjZShHLGIsRCl7dm9pZCAwPT09YiYmKGI9VS5kZWZhdWx0LnNlcCksdm9pZCAwPT09RCYmKEQ9Ii8iKTt2YXIgSD17dW5p'@; put 'eDoiLyIsd2luOiJcXCJ9LE49T2JqZWN0LmtleXMoSCkuZmluZChmdW5jdGlvbihDKXtyZXR1cm4gSFtDXT09PWJ9KTtpZihOKXt2YXIgZz1IW09iamVjdC5rZXlzKEgpLmZpbmQoZnVuY3Rpb24oQyl7cmV0dXJuIEMhPT1OfSldO3JldHVybiBOPUhbTl0sRy5zcGxpdChnKS5qb2luKE4pfXJl'@; put 'dHVybiBHLnNwbGl0KEQpLmpvaW4oYil9Ty5maWxlRXhpc3RzPWZ1bmN0aW9uKEcpe3JldHVybiBrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuWzIsWS5kZWZhdWx0LnByb21pc2VzLmFjY2VzcyhHLFkuZGVmYXVsdC5jb25z'@; put 'dGFudHMuRl9PSykudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pXX0pfSl9LE8uZm9sZGVyRXhpc3RzPXRlLE8uaXNGb2xkZXI9ZnVuY3Rpb24oRyl7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhp'@; put 'cyxmdW5jdGlvbihiKXtyZXR1cm5bMixZLmRlZmF1bHQucHJvbWlzZXMubHN0YXQoRykudGhlbihmdW5jdGlvbihEKXtyZXR1cm4gRC5pc0RpcmVjdG9yeSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pXX0pfSl9LE8ucmVhZEZpbGU9ZnVuY3Rpb24oRyxiKXtyZXR1cm4gdm9pZCAw'@; put 'PT09YiYmKGI9InV0ZjgiKSxrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsZnVuY3Rpb24oRCl7cmV0dXJuWzIsWS5kZWZhdWx0LnByb21pc2VzLnJlYWRGaWxlKEcsYildfSl9KX0sTy5yZWFkRmlsZUJpbmFyeT1vZSxPLmxpc3RGaWxlc0luRm9sZGVyPXNl'@; put 'LE8ubGlzdEluaUZpbGVzSW5Gb2xkZXI9ZnVuY3Rpb24oRyl7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihiKXtzd2l0Y2goYi5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHNlKEcpXTtjYXNlIDE6cmV0dXJuWzIsYi5zZW50KCku'@; put 'ZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBELmVuZHNXaXRoKCIuaW5pIil9KV19fSl9KX0sTy5saXN0U2FzRmlsZXNJbkZvbGRlcj1mdW5jdGlvbihHLGIsRCl7cmV0dXJuIHZvaWQgMD09PWImJihiPSExKSx2b2lkIDA9PT1EJiYoRD1bXSksayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKE4pe3N3aXRjaChOLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsaGUoRyxiLEQpXTtjYXNlIDE6cmV0dXJuWzIsTi5zZW50KCkuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiBnLmVuZHNXaXRoKCIuc2FzIil9KV19fSl9KX0sTy5saXN0U3ViRm9s'@; put 'ZGVyc0luRm9sZGVyPWZ1bmN0aW9uKEcpe3JldHVybiBrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuWzIsWS5kZWZhdWx0LnByb21pc2VzLnJlYWRkaXIoRyx7d2l0aEZpbGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oRCl7'@; put 'cmV0dXJuIEQuZmlsdGVyKGZ1bmN0aW9uKEgpe3JldHVybiBILmlzRGlyZWN0b3J5KCl9KS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIEgubmFtZX0pfSldfSl9KX0sTy5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9aGUsTy5jcmVhdGVGb2xkZXI9dWUsTy5jcmVhdGVGaWxlPWZ1bmN0'@; put 'aW9uKEcsYixEKXtyZXR1cm4gayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSCxOO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oZyl7c3dpdGNoKGcubGFiZWwpe2Nhc2UgMDpyZXR1cm4oRz1jZShHKSkuc3BsaXQoVS5kZWZhdWx0LnNlcCkubGVuZ3RoPjE/KChIPUcuc3BsaXQo'@; put 'VS5kZWZhdWx0LnNlcCkpLnBvcCgpLFs0LHRlKE49SC5qb2luKFUuZGVmYXVsdC5zZXApKV0pOlszLDNdO2Nhc2UgMTpyZXR1cm4gZy5zZW50KCk/WzMsM106WzQsdWUoTildO2Nhc2UgMjpnLnNlbnQoKSxnLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyLFkuZGVmYXVsdC5wcm9taXNlcy53cml0'@; put 'ZUZpbGUoRyxiLEQpXX19KX0pfSxPLmRlbGV0ZUZpbGU9ZnVuY3Rpb24oRyl7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihiKXtyZXR1cm5bMixZLmRlZmF1bHQucmVtb3ZlKEcpXX0pfSl9LE8uZGVsZXRlRm9sZGVyPWZ1bmN0'@; put 'aW9uKEcpe3JldHVybiBrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuWzIsbmV3IFByb21pc2UoZnVuY3Rpb24oRCxIKXsoMCxYLmRlZmF1bHQpKEcse30sZnVuY3Rpb24oTil7cmV0dXJuIE4/SChOKTpEKCl9KX0pXX0pfSl9'@; put 'LE8udW5pZnlGaWxlUGF0aD1jZSxPLmdldFJlbGF0aXZlUGF0aD1mdW5jdGlvbihHLGIpe3ZhciBEPUcuc3BsaXQoVS5kZWZhdWx0LnNlcCksSD1iLnNwbGl0KFUuZGVmYXVsdC5zZXApLE49W10sZz1bXTtELmZvckVhY2goZnVuY3Rpb24ocCx3KXt2b2lkIDAhPT1IW3ddJiZEW3ddPT09SFt3'@; put 'XT9OLnB1c2gocCk6cCYmZy5wdXNoKHApfSk7dmFyIEM9Ti5qb2luKFUuZGVmYXVsdC5zZXApLFM9bmV3IFJlZ0V4cCgiXiIuY29uY2F0KFUuZGVmYXVsdC5zZXAucmVwbGFjZSgvXFwvZywiXFxcXCIpKSksdj1uZXcgUmVnRXhwKCIiLmNvbmNhdChVLmRlZmF1bHQuc2VwLnJlcGxhY2UoL1xc'@; put 'L2csIlxcXFwiKSwiJCIpKTtyZXR1cm4oZy5sZW5ndGg/Ii4uIi5jb25jYXQoVS5kZWZhdWx0LnNlcCkucmVwZWF0KGcubGVuZ3RoKToiLiIuY29uY2F0KFUuZGVmYXVsdC5zZXApKStiLnJlcGxhY2UoQywiIikucmVwbGFjZShTLCIiKS5yZXBsYWNlKHYsIiIpfSxPLm1vdmVGaWxlPWZ1bmN0'@; put 'aW9uKEcsYil7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihEKXtyZXR1cm5bMixZLmRlZmF1bHQucHJvbWlzZXMucmVuYW1lKEcsYildfSl9KX0sTy5jb3B5PWZ1bmN0aW9uKEcsYil7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9p'@; put 'ZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihEKXtyZXR1cm5bMixZLmRlZmF1bHQuY29weShHLGIpXX0pfSl9LE8ucGF0aFNlcEVzY2FwZWQ9VS5kZWZhdWx0LnNlcC5yZXBsYWNlKC9cXC9nLCJcXFxcIiksTy5iYXNlNjRFbmNvZGVJbWFnZUZpbGU9ZnVuY3Rpb24oRyl7'@; put 'cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihiKXtyZXR1cm5bMixvZShHKS50aGVuKGZ1bmN0aW9uKEQpe3ZhciBIPVUuZGVmYXVsdC5leHRuYW1lKEcpLnN1YnN0cigxKXx8InBuZyI7cmV0dXJuInN2ZyI9PT1IJiYoSD0ic3Zn'@; put 'K3htbCIpLCJkYXRhOmltYWdlLyIrSCsiO2Jhc2U2NCwiK0QudG9TdHJpbmcoImJhc2U2NCIpfSldfSl9KX0sTy5iYXNlNjRFbmNvZGVGaWxlPWZ1bmN0aW9uKEcpe3JldHVybiBrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJu'@; put 'WzIsWS5kZWZhdWx0LnByb21pc2VzLnJlYWRGaWxlKEcse2VuY29kaW5nOiJiYXNlNjQifSldfSl9KX0sTy5nZXRSZWFsUGF0aD1mdW5jdGlvbihHKXtyZXR1cm4gWS5kZWZhdWx0LnJlYWxwYXRoU3luYyhHKX0sTy5jcmVhdGVXcml0ZVN0cmVhbT1mdW5jdGlvbihHKXtyZXR1cm4gayh0aGlz'@; put 'LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKGIpe3N3aXRjaChiLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZWUuZmlsZUV4aXN0cyhHKV07Y2FzZSAxOnJldHVybiBiLnNlbnQoKT9bMixZLmRlZmF1bHQuY3JlYXRlV3JpdGVTdHJlYW0oRyx7ZmxhZ3M6'@; put 'ImEifSldOls0LGVlLmNyZWF0ZUZpbGUoRywiIildO2Nhc2UgMjpyZXR1cm4gYi5zZW50KCksWzIsWS5kZWZhdWx0LmNyZWF0ZVdyaXRlU3RyZWFtKEcse2ZsYWdzOiJhIn0pXX19KX0pfSxPLmNyZWF0ZVJlYWRTdHJlYW09ZnVuY3Rpb24oRyl7cmV0dXJuIGsodm9pZCAwLHZvaWQgMCx2b2lk'@; put 'IDAsZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKGIpe3JldHVyblsyLFkuZGVmYXVsdC5jcmVhdGVSZWFkU3RyZWFtKEcpXX0pfSl9LE8udGVzdEZpbGVSZWdFeHA9L1wudGVzdFwuKFxkK1wuKT9zYXMkL2ksTy5pc1Rlc3RGaWxlPWZ1bmN0aW9uKEcpe3JldHVybiBPLnRlc3RG'@; put 'aWxlUmVnRXhwLnRlc3QoRyl9fSw1NjI2OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGspe3JldHVybiBrJiZrLl9fZXNNb2R1bGU/azp7ZGVmYXVsdDprfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9f'@; put 'ZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2V0QWJzb2x1dGVQYXRoPXZvaWQgMDt2YXIgSz16KFIoMjUyMCkpLEk9eihSKDc0MzUpKTtPLmdldEFic29sdXRlUGF0aD1mdW5jdGlvbihrLEUpe3JldHVybiBLLmRlZmF1bHQuaXNBYnNvbHV0ZShrKXx8L15+Ly5leGVjKGspP0suZGVmYXVsdC5u'@; put 'b3JtYWxpemUoay5yZXBsYWNlKC9efi8sSS5kZWZhdWx0LmhvbWVkaXIoKSkpOksuZGVmYXVsdC5qb2luKEUsayl9fSwyOTc1OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEUsaixW'@; put 'LEIpe3ZvaWQgMD09PUImJihCPVYpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFLEIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGpbVl19fSl9OmZ1bmN0aW9uKEUsaixWLEIpe3ZvaWQgMD09PUImJihCPVYpLEVbQl09altWXX0pLEs9dGhpcyYmdGhpcy5fX2V4cG9ydFN0'@; put 'YXJ8fGZ1bmN0aW9uKEUsail7Zm9yKHZhciBWIGluIEUpImRlZmF1bHQiPT09Vnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGosVil8fHooaixFLFYpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5yZWFkQ3N2PU8uY3Jl'@; put 'YXRlQ3N2PU8udXBkYXRlQ3N2PU8udGVzdEZpbGVSZWdFeHA9Ty5pc1Rlc3RGaWxlPU8uZ2V0UmVhbFBhdGg9Ty5iYXNlNjRFbmNvZGVGaWxlPU8uYmFzZTY0RW5jb2RlSW1hZ2VGaWxlPU8uY29weT1PLnBhdGhTZXBFc2NhcGVkPU8ubW92ZUZpbGU9Ty51bmlmeUZpbGVQYXRoPU8uZ2V0UmVs'@; put 'YXRpdmVQYXRoPU8uZGVsZXRlRm9sZGVyPU8uZGVsZXRlRmlsZT1PLmNyZWF0ZVdyaXRlU3RyZWFtPU8uY3JlYXRlUmVhZFN0cmVhbT1PLmNyZWF0ZUZvbGRlcj1PLmNyZWF0ZUZpbGU9Ty5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9Ty5saXN0U3ViRm9sZGVyc0luRm9sZGVyPU8u'@; put 'bGlzdFNhc0ZpbGVzSW5Gb2xkZXI9Ty5saXN0SW5pRmlsZXNJbkZvbGRlcj1PLmxpc3RGaWxlc0luRm9sZGVyPU8ucmVhZEZpbGVCaW5hcnk9Ty5yZWFkRmlsZT1PLmlzRm9sZGVyPU8uZm9sZGVyRXhpc3RzPU8uZmlsZUV4aXN0cz12b2lkIDA7dmFyIEk9UigxNTU5KTtPYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHkoTywiZmlsZUV4aXN0cyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkuZmlsZUV4aXN0c319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiZm9sZGVyRXhpc3RzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5mb2xkZXJFeGlz'@; put 'dHN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImlzRm9sZGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5pc0ZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywicmVhZEZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJ'@; put 'LnJlYWRGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJyZWFkRmlsZUJpbmFyeSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkucmVhZEZpbGVCaW5hcnl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImxpc3RGaWxlc0luRm9sZGVyIix7ZW51bWVyYWJs'@; put 'ZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5saXN0RmlsZXNJbkZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywibGlzdEluaUZpbGVzSW5Gb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmxpc3RJbmlGaWxlc0luRm9sZGVyfX0pLE9iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShPLCJsaXN0U2FzRmlsZXNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkubGlzdFNhc0ZpbGVzSW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImxpc3RTdWJGb2xkZXJzSW5Gb2xkZXIiLHtlbnVtZXJhYmxl'@; put 'OiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmxpc3RTdWJGb2xkZXJzSW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImxpc3RGaWxlc0FuZFN1YkZvbGRlcnNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkubGlzdEZpbGVzQW5kU3Vi'@; put 'Rm9sZGVyc0luRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJjcmVhdGVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5jcmVhdGVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJjcmVhdGVGb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdl'@; put 'dDpmdW5jdGlvbigpe3JldHVybiBJLmNyZWF0ZUZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiY3JlYXRlUmVhZFN0cmVhbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkuY3JlYXRlUmVhZFN0cmVhbX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywi'@; put 'Y3JlYXRlV3JpdGVTdHJlYW0iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmNyZWF0ZVdyaXRlU3RyZWFtfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJkZWxldGVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5kZWxldGVGaWxl'@; put 'fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJkZWxldGVGb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmRlbGV0ZUZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiZ2V0UmVsYXRpdmVQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gSS5nZXRSZWxhdGl2ZVBhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sInVuaWZ5RmlsZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLnVuaWZ5RmlsZVBhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIm1vdmVGaWxlIix7'@; put 'ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5tb3ZlRmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywicGF0aFNlcEVzY2FwZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLnBhdGhTZXBFc2NhcGVkfX0pLE9iamVjdC5kZWZpbmVQcm9w'@; put 'ZXJ0eShPLCJjb3B5Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5jb3B5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJiYXNlNjRFbmNvZGVJbWFnZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmJhc2U2NEVuY29kZUltYWdl'@; put 'RmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiYmFzZTY0RW5jb2RlRmlsZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkuYmFzZTY0RW5jb2RlRmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiZ2V0UmVhbFBhdGgiLHtlbnVtZXJhYmxlOiEwLGdl'@; put 'dDpmdW5jdGlvbigpe3JldHVybiBJLmdldFJlYWxQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJpc1Rlc3RGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5pc1Rlc3RGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJ0ZXN0RmlsZVJlZ0V4'@; put 'cCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkudGVzdEZpbGVSZWdFeHB9fSk7dmFyIGs9UigzOTA2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywidXBkYXRlQ3N2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gay51cGRhdGVDc3Z9fSksT2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KE8sImNyZWF0ZUNzdiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGsuY3JlYXRlQ3N2fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJyZWFkQ3N2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gay5yZWFkQ3N2'@; put 'fX0pLEsoUig1NjI2KSxPKX0sMjc3NzooTSxPLFIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLm5ld0xpbmU9Ty5jYXBpdGFsaXplRmlyc3RDaGFyPU8uc2FuaXRpemVTcGVjaWFsQ2hhcnM9Ty5wYWRXaXRoTnVtYmVy'@; put 'PXZvaWQgMDt2YXIgej1SKDUzMDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJwYWRXaXRoTnVtYmVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gei5wYWRXaXRoTnVtYmVyfX0pO3ZhciBLPVIoOTI3NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sInNhbml0aXpl'@; put 'U3BlY2lhbENoYXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSy5zYW5pdGl6ZVNwZWNpYWxDaGFyc319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiY2FwaXRhbGl6ZUZpcnN0Q2hhciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsuY2Fw'@; put 'aXRhbGl6ZUZpcnN0Q2hhcn19KTt2YXIgST1SKDE2MjgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJuZXdMaW5lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5uZXdMaW5lfX0pfSw1MzA2OihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0'@; put 'eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLnBhZFdpdGhOdW1iZXI9dm9pZCAwLE8ucGFkV2l0aE51bWJlcj1mdW5jdGlvbihSLHope3JldHVybiB2b2lkIDA9PT16JiYoej0wKSxSPjk/UjoiIi5jb25jYXQoeikuY29uY2F0KFIpfX0sMTYyODooTSxPLFIpPT57InVzZSBzdHJpY3Qi'@; put 'O3ZhciB6PVIoNDE1NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8ubmV3TGluZT12b2lkIDAsTy5uZXdMaW5lPWZ1bmN0aW9uKCl7cmV0dXJuIndpbjMyIj09PXoucGxhdGZvcm0/IlxcclxcbiI6IlxcbiJ9fSw5Mjc1OihNLE8pPT57InVzZSBz'@; put 'dHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmNhcGl0YWxpemVGaXJzdENoYXI9Ty5zYW5pdGl6ZVNwZWNpYWxDaGFycz12b2lkIDAsTy5zYW5pdGl6ZVNwZWNpYWxDaGFycz1mdW5jdGlvbihSKXtyZXR1cm4gUi5yZXBsYWNlKC9bXHUw'@; put 'MDFiXHUwMDliXVtbKCkjOz9dKig/OlswLTldezEsNH0oPzo7WzAtOV17MCw0fSkqKT9bMC05QS1PUlpjZi1ucXJ5PT48XS9nLCIiKX0sTy5jYXBpdGFsaXplRmlyc3RDaGFyPWZ1bmN0aW9uKFIpe3JldHVybiBSLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK1Iuc2xpY2UoMSl9fSw2NDY3OmZ1'@; put 'bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKEkpe3JldHVybiBJJiZJLl9fZXNNb2R1bGU/STp7ZGVmYXVsdDpJfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uaXNT'@; put 'cGVjaWFsTWlzc2luZz1PLmNob2ljZVZhbGlkYXRvcj1PLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1PLnVybFZhbGlkYXRvcj12b2lkIDA7dmFyIEs9eihSKDQ4MSkpO08udXJsVmFsaWRhdG9yPWZ1bmN0aW9uKEksayl7cmV0dXJuISFLLmRlZmF1bHQuaXNIdHRwVXJpKEkpfHwhIUsuZGVmYXVs'@; put 'dC5pc0h0dHBzVXJpKEkpfHwiIj09PUl8fGt9LE8uY29uZmlybWF0aW9uVmFsaWRhdG9yPWZ1bmN0aW9uKEkpe3JldHVybiEwPT09SXx8ITE9PT1JfSxPLmNob2ljZVZhbGlkYXRvcj1mdW5jdGlvbihJLGssRSl7cmV0dXJuIEk+MCYmSTw9a3x8RX0sTy5pc1NwZWNpYWxNaXNzaW5nPWZ1bmN0'@; put 'aW9uKEkpe3JldHVybigic3RyaW5nIiE9dHlwZW9mIEl8fCFJLmluY2x1ZGVzKCIuLiIpKSYmbmV3IFJlZ0V4cCgiXihcXC4pP1thLXpfLl17MX0kIiwiaSIpLnRlc3QoSSl9fSw3NzU3OihNLE8sUik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUi'@; put 'LHt2YWx1ZTohMH0pLE8uZ2VuZXJhdGVUaW1lc3RhbXA9Ty50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTPXZvaWQgMDt2YXIgej1SKDEzMDIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJ0aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gei50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJnZW5lcmF0ZVRpbWVzdGFtcCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHouZ2VuZXJhdGVUaW1lc3RhbXB9fSl9LDEzMDI6KE0sTyxSKT0+eyJ1c2Ugc3Ry'@; put 'aWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5nZW5lcmF0ZVRpbWVzdGFtcD1PLnRpbWVzdGFtcFRvWVlZWU1NRERISE1NU1M9dm9pZCAwO3ZhciB6PVIoMjc3Nyk7Ty50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTPWZ1bmN0aW9uKEspe3Zv'@; put 'aWQgMD09PUsmJihLPURhdGUubm93KCkpO3ZhciBJPW5ldyBEYXRlKEspO3JldHVybltJLmdldEZ1bGxZZWFyKCksKDAsei5wYWRXaXRoTnVtYmVyKShJLmdldE1vbnRoKCkrMSksKDAsei5wYWRXaXRoTnVtYmVyKShJLmdldERhdGUoKSldLmpvaW4oIi8iKSsiICIrWygwLHoucGFkV2l0aE51'@; put 'bWJlcikoSS5nZXRIb3VycygpKSwoMCx6LnBhZFdpdGhOdW1iZXIpKEkuZ2V0TWludXRlcygpKSwoMCx6LnBhZFdpdGhOdW1iZXIpKEkuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpfSxPLmdlbmVyYXRlVGltZXN0YW1wPWZ1bmN0aW9uKEssSSl7dm9pZCAwPT09SyYmKEs9IiIpO3ZhciBrPW5l'@; put 'dyBEYXRlLEU9W2suZ2V0VVRDRnVsbFllYXIoKSxrLmdldFVUQ01vbnRoKCkrMSxrLmdldFVUQ0RhdGUoKSxrLmdldFVUQ0hvdXJzKCksay5nZXRVVENNaW51dGVzKCksay5nZXRVVENTZWNvbmRzKCldO3JldHVybiBFPUUubWFwKGZ1bmN0aW9uKGope3JldHVybigwLHoucGFkV2l0aE51bWJl'@; put 'cikoail9KSxJJiZLJiZJPEUubGVuZ3RoJiZJPj0wJiZFLnNwbGljZShJLDAsSyksRS5qb2luKEk/IiI6Syl9fSw4MjM5OihNLE8pPT57InVzZSBzdHJpY3QiO3ZhciBSO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLkNvbmZpZ1R5cGVzPXZvaWQg'@; put 'MCwoUj1PLkNvbmZpZ1R5cGVzfHwoTy5Db25maWdUeXBlcz17fSkpLkJ1aWxkPSJidWlsZENvbmZpZyIsUi5TZXJ2aWNlPSJzZXJ2aWNlQ29uZmlnIixSLkpvYj0iam9iQ29uZmlnIixSLlRlc3Q9InRlc3RDb25maWciLFIuRG9jPSJkb2NDb25maWciLFIuRGVwbG95PSJkZXBsb3lDb25maWci'@; put 'LFIuU3RyZWFtPSJzdHJlYW1Db25maWciLFIuQXV0aD0iYXV0aENvbmZpZyJ9LDI0Mjc6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwxODk6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwzNjkyOihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNjkzOTooTSxPKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgUjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywi'@; put 'X19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5NZW1iZXJUeXBlPXZvaWQgMCwoUj1PLk1lbWJlclR5cGV8fChPLk1lbWJlclR5cGU9e30pKS5zZXJ2aWNlPSJzZXJ2aWNlIixSLmZpbGU9ImZpbGUiLFIuZm9sZGVyPSJmb2xkZXIifSwzMzI3OihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5k'@; put 'ZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNTE2NTooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDM5MDA6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0'@; put 'aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAwPT09aiYmKGo9RSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEksaix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga1tFXX19KX06ZnVuY3Rpb24oSSxrLEUsail7dm9p'@; put 'ZCAwPT09aiYmKGo9RSksSVtqXT1rW0VdfSksSz10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oSSxrKXtmb3IodmFyIEUgaW4gSSkiZGVmYXVsdCI9PT1FfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoayxFKXx8eihrLEksRSl9O09iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxLKFIoODIzOSksTyksSyhSKDI0MjcpLE8pLEsoUigxODkpLE8pLEsoUigzNjkyKSxPKSxLKFIoNjkzOSksTyksSyhSKDMzMjcpLE8pLEsoUig1MTY1KSxPKSxLKFIoNDA2OSksTyksSyhSKDg5MzIpLE8pLEsoUig0KSxPKSxLKFIo'@; put 'MjAxNSksTyksSyhSKDg1MTUpLE8pLEsoUig1MzEzKSxPKSxLKFIoODk3OSksTyl9LDQwNjk6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uaXNNYWNyb1ZhcnM9dm9pZCAwLE8uaXNNYWNyb1ZhcnM9ZnVuY3Rp'@; put 'b24oUil7cmV0dXJuIFImJiJvYmplY3QiPT10eXBlb2YgUi5tYWNyb1ZhcnMmJiFBcnJheS5pc0FycmF5KFIubWFjcm9WYXJzKX19LDg5MzI6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw0OihNLE8pPT57InVz'@; put 'ZSBzdHJpY3QiO3ZhciBSO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLlNBU0pzRmlsZVR5cGU9dm9pZCAwLChSPU8uU0FTSnNGaWxlVHlwZXx8KE8uU0FTSnNGaWxlVHlwZT17fSkpLnNlcnZpY2U9IlNlcnZpY2UiLFIuam9iPSJKb2IiLFIudGVz'@; put 'dD0iVGVzdCIsUi5maWxlPSJGaWxlIn0sMjAxNTooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDg1MTU6KE0sTyk9PnsidXNlIHN0cmljdCI7dmFyIFI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1'@; put 'bGUiLHt2YWx1ZTohMH0pLE8uU2VydmVyVHlwZT12b2lkIDAsKFI9Ty5TZXJ2ZXJUeXBlfHwoTy5TZXJ2ZXJUeXBlPXt9KSkuU2FzVml5YT0iU0FTVklZQSIsUi5TYXM5PSJTQVM5IixSLlNhc2pzPSJTQVNKUyJ9LDUzMTM6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4OTc5OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gej1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihqKXtmb3IodmFyIFYsQj0xLFk9YXJndW1lbnRz'@; put 'Lmxlbmd0aDtCPFk7QisrKWZvcih2YXIgWCBpbiBWPWFyZ3VtZW50c1tCXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVixYKSYmKGpbWF09VltYXSk7cmV0dXJuIGp9LHouYXBwbHkodGhpcyxhcmd1bWVudHMpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01v'@; put 'ZHVsZSIse3ZhbHVlOiEwfSksTy5UYXJnZXQ9dm9pZCAwO3ZhciBLPVIoODIzOSksST1SKDg1MTUpLGs9Uig2NzgxKSxFPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaihWLEIpe3ZhciBZPXRoaXM7dm9pZCAwPT09QiYmKEI9e30pLHRoaXMuX3NlcnZlclR5cGU9SS5TZXJ2ZXJUeXBlLlNhc1ZpeWEs'@; put 'dGhpcy5nZXRDb25maWc9ZnVuY3Rpb24oWCxVKXtyZXR1cm4geih6KHt9LFkuX2NvbmZpZ1tYXXx8e30pLFVbWF0pfTt0cnl7aWYoIVYpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRhcmdldDogSW5wdXQgSlNPTiBpcyBudWxsIG9yIHVuZGVmaW5lZC4iKTt0aGlzLl9jb25maWc9Qix0aGlz'@; put 'Ll9uYW1lPSgwLGsudmFsaWRhdGVUYXJnZXROYW1lKShWLm5hbWUpLHRoaXMuX3NlcnZlclVybD0oMCxrLnZhbGlkYXRlU2VydmVyVXJsKShWLnNlcnZlclVybCksdGhpcy5fc2VydmVyVHlwZT0oMCxrLnZhbGlkYXRlU2VydmVyVHlwZSkoVi5zZXJ2ZXJUeXBlKSx0aGlzLl9odHRwc0FnZW50'@; put 'T3B0aW9ucz0oMCxrLnZhbGlkYXRlSHR0cHNBZ2VudE9wdGlvbnMpKFYuaHR0cHNBZ2VudE9wdGlvbnMpLHRoaXMuX2FwcExvYz0oMCxrLnZhbGlkYXRlQXBwTG9jKShWLmFwcExvYyksdGhpcy5fY29udGV4dE5hbWU9KDAsay52YWxpZGF0ZUNvbnRleHROYW1lKShWLmNvbnRleHROYW1lLHRo'@; put 'aXMuX3NlcnZlclR5cGUpLHRoaXMuX3NlcnZlck5hbWU9KDAsay52YWxpZGF0ZVNlcnZlck5hbWUpKFYuc2VydmVyTmFtZSx0aGlzLl9zZXJ2ZXJUeXBlKSx0aGlzLl9zeW5jRm9sZGVyPSgwLGsudmFsaWRhdGVTeW5jRm9sZGVyKShWLnN5bmNGb2xkZXIpLHRoaXMuX3JlcG9zaXRvcnlOYW1l'@; put 'PSgwLGsudmFsaWRhdGVSZXBvc2l0b3J5TmFtZSkoVi5yZXBvc2l0b3J5TmFtZSx0aGlzLl9zZXJ2ZXJUeXBlKSxWLmRvY0NvbmZpZyYmKHRoaXMuX2RvY0NvbmZpZz0oMCxrLnZhbGlkYXRlRG9jQ29uZmlnKSh0aGlzLmdldENvbmZpZyhLLkNvbmZpZ1R5cGVzLkRvYyxWKSkpLFYuYXV0aENv'@; put 'bmZpZyYmKHRoaXMuX2F1dGhDb25maWc9KDAsay52YWxpZGF0ZUF1dGhDb25maWcpKHRoaXMuZ2V0Q29uZmlnKEsuQ29uZmlnVHlwZXMuQXV0aCxWKSkpLFYuYXV0aENvbmZpZ1NhczkmJih0aGlzLl9hdXRoQ29uZmlnU2FzOT0oMCxrLnZhbGlkYXRlQXV0aENvbmZpZ1NhczkpKFYuYXV0aENv'@; put 'bmZpZ1NhczkpKSxWLmJ1aWxkQ29uZmlnJiYodGhpcy5fYnVpbGRDb25maWc9KDAsay52YWxpZGF0ZUJ1aWxkQ29uZmlnKSh0aGlzLmdldENvbmZpZyhLLkNvbmZpZ1R5cGVzLkJ1aWxkLFYpLHRoaXMuX25hbWUpKSx0aGlzLl9kZXBsb3lDb25maWc9KDAsay52YWxpZGF0ZURlcGxveUNvbmZp'@; put 'ZykoVi5kZXBsb3lDb25maWc/dGhpcy5nZXRDb25maWcoSy5Db25maWdUeXBlcy5EZXBsb3ksVik6e2RlcGxveVNlcnZpY2VQYWNrOiEwLGRlcGxveVNjcmlwdHM6W119KSxWLnNlcnZpY2VDb25maWcmJih0aGlzLl9zZXJ2aWNlQ29uZmlnPSgwLGsudmFsaWRhdGVTZXJ2aWNlQ29uZmlnKSh0'@; put 'aGlzLmdldENvbmZpZyhLLkNvbmZpZ1R5cGVzLlNlcnZpY2UsVikpKSxWLmpvYkNvbmZpZyYmKHRoaXMuX2pvYkNvbmZpZz0oMCxrLnZhbGlkYXRlSm9iQ29uZmlnKSh0aGlzLmdldENvbmZpZyhLLkNvbmZpZ1R5cGVzLkpvYixWKSkpLFYuc3RyZWFtQ29uZmlnJiYodGhpcy5fc3RyZWFtQ29u'@; put 'ZmlnPSgwLGsudmFsaWRhdGVTdHJlYW1Db25maWcpKHRoaXMuZ2V0Q29uZmlnKEsuQ29uZmlnVHlwZXMuU3RyZWFtLFYpKSksVi50ZXN0Q29uZmlnJiYodGhpcy5fdGVzdENvbmZpZz0oMCxrLnZhbGlkYXRlVGVzdENvbmZpZykodGhpcy5nZXRDb25maWcoSy5Db25maWdUeXBlcy5UZXN0LFYp'@; put 'KSksVi5tYWNyb0ZvbGRlcnMmJlYubWFjcm9Gb2xkZXJzLmxlbmd0aCYmKHRoaXMuX21hY3JvRm9sZGVycz1WLm1hY3JvRm9sZGVycyksVi5wcm9ncmFtRm9sZGVycyYmVi5wcm9ncmFtRm9sZGVycy5sZW5ndGgmJih0aGlzLl9wcm9ncmFtRm9sZGVycz1WLnByb2dyYW1Gb2xkZXJzKSxWLmJp'@; put 'bmFyeUZvbGRlcnMmJlYuYmluYXJ5Rm9sZGVycy5sZW5ndGgmJih0aGlzLl9iaW5hcnlGb2xkZXJzPVYuYmluYXJ5Rm9sZGVycyksVi5zeW5jRGlyZWN0b3JpZXMmJlYuc3luY0RpcmVjdG9yaWVzLmxlbmd0aCYmKHRoaXMuX3N5bmNEaXJlY3Rvcmllcz0oMCxrLnZhbGlkYXRlU3luY0RpcmVj'@; put 'dG9yaWVzKShWLnN5bmNEaXJlY3RvcmllcykpfWNhdGNoKFgpe3Rocm93IG5ldyBFcnJvcigiRXJyb3IgcGFyc2luZyB0YXJnZXQ6ICIuY29uY2F0KFgubWVzc2FnZSkpfX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJzZXJ2ZXJVcmwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VydmVyVXJsfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0p'@; put 'LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwic2VydmVyVHlwZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2ZXJUeXBlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwiaHR0cHNBZ2Vu'@; put 'dE9wdGlvbnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faHR0cHNBZ2VudE9wdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJhcHBMb2MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBw'@; put 'TG9jfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwiZG9jQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RvY0NvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoai5wcm90b3R5cGUsImF1dGhDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXV0aENvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoai5wcm90b3R5cGUsImF1dGhDb25maWdTYXM5Iix7Z2V0'@; put 'OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F1dGhDb25maWdTYXM5fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwiYnVpbGRDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVpbGRDb25maWd9LGVu'@; put 'dW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJkZXBsb3lDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVwbG95Q29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZp'@; put 'bmVQcm9wZXJ0eShqLnByb3RvdHlwZSwic2VydmljZUNvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2aWNlQ29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwiam9iQ29uZmlnIix7Z2V0'@; put 'OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2pvYkNvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoai5wcm90b3R5cGUsInN0cmVhbUNvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJlYW1Db25maWd9LGVudW1l'@; put 'cmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJtYWNyb0ZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFjcm9Gb2xkZXJzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShqLnByb3RvdHlwZSwicHJvZ3JhbUZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvZ3JhbUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJiaW5hcnlGb2xkZXJzIix7'@; put 'Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JpbmFyeUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJjb250ZXh0TmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZXh0TmFtZX0s'@; put 'ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoai5wcm90b3R5cGUsInNlcnZlck5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VydmVyTmFtZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHkoai5wcm90b3R5cGUsInJlcG9zaXRvcnlOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlOYW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwidGVzdENvbmZpZyIse2dl'@; put 'dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90ZXN0Q29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwic3luY0ZvbGRlciIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zeW5jRm9sZGVyfSxlbnVtZXJh'@; put 'YmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwic3luY0RpcmVjdG9yaWVzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N5bmNEaXJlY3Rvcmllc30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxqLnByb3RvdHlw'@; put 'ZS50b0pzb249ZnVuY3Rpb24oVil7dmFyIEIsWSxYO3ZvaWQgMD09PVYmJihWPSEwKTt2YXIgVT17bmFtZTp0aGlzLm5hbWUsc2VydmVyVXJsOnRoaXMuc2VydmVyVXJsLHNlcnZlclR5cGU6dGhpcy5zZXJ2ZXJUeXBlLGh0dHBzQWdlbnRPcHRpb25zOnRoaXMuaHR0cHNBZ2VudE9wdGlvbnMs'@; put 'YXBwTG9jOnRoaXMuYXBwTG9jLGRvY0NvbmZpZzp0aGlzLmRvY0NvbmZpZyxkZXBsb3lDb25maWc6dGhpcy5kZXBsb3lDb25maWd9O3JldHVybiEobnVsbD09PShCPXRoaXMubWFjcm9Gb2xkZXJzKXx8dm9pZCAwPT09QikmJkIubGVuZ3RoJiYoVS5tYWNyb0ZvbGRlcnM9dGhpcy5tYWNyb0Zv'@; put 'bGRlcnMpLCEobnVsbD09PShZPXRoaXMucHJvZ3JhbUZvbGRlcnMpfHx2b2lkIDA9PT1ZKSYmWS5sZW5ndGgmJihVLnByb2dyYW1Gb2xkZXJzPXRoaXMucHJvZ3JhbUZvbGRlcnMpLCEobnVsbD09PShYPXRoaXMuYmluYXJ5Rm9sZGVycyl8fHZvaWQgMD09PVgpJiZYLmxlbmd0aCYmKFUuYmlu'@; put 'YXJ5Rm9sZGVycz10aGlzLmJpbmFyeUZvbGRlcnMpLHRoaXMuYXV0aENvbmZpZyYmKFUuYXV0aENvbmZpZz10aGlzLmF1dGhDb25maWcpLHRoaXMuYXV0aENvbmZpZ1NhczkmJihVLmF1dGhDb25maWdTYXM5PXRoaXMuYXV0aENvbmZpZ1NhczkpLHRoaXMuc3luY0RpcmVjdG9yaWVzP1Uuc3lu'@; put 'Y0RpcmVjdG9yaWVzPXRoaXMuc3luY0RpcmVjdG9yaWVzOlYmJihVLnN5bmNEaXJlY3Rvcmllcz1bXSksdGhpcy5idWlsZENvbmZpZz9VLmJ1aWxkQ29uZmlnPXRoaXMuYnVpbGRDb25maWc6ViYmKFUuYnVpbGRDb25maWc9e2luaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLGJ1aWxkT3V0'@; put 'cHV0RmlsZU5hbWU6IiIuY29uY2F0KHRoaXMubmFtZSwiLnNhcyIpLGJ1aWxkT3V0cHV0Rm9sZGVyOiJzYXNqc2J1aWxkIixidWlsZFJlc3VsdHNGb2xkZXI6InNhc2pzcmVzdWx0cyIsbWFjcm9WYXJzOnt9fSksdGhpcy5qb2JDb25maWc/VS5qb2JDb25maWc9dGhpcy5qb2JDb25maWc6ViYm'@; put 'KFUuam9iQ29uZmlnPXtqb2JGb2xkZXJzOltdLGluaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLG1hY3JvVmFyczp7fX0pLHRoaXMuc2VydmljZUNvbmZpZz9VLnNlcnZpY2VDb25maWc9dGhpcy5zZXJ2aWNlQ29uZmlnOlYmJihVLnNlcnZpY2VDb25maWc9e3NlcnZpY2VGb2xkZXJzOltd'@; put 'LGluaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLG1hY3JvVmFyczp7fX0pLHRoaXMuc3RyZWFtQ29uZmlnP1Uuc3RyZWFtQ29uZmlnPXRoaXMuc3RyZWFtQ29uZmlnOlYmJihVLnN0cmVhbUNvbmZpZz17c3RyZWFtV2ViRm9sZGVyOiIiLHN0cmVhbVdlYjohMSx3ZWJTb3VyY2VQYXRoOiIi'@; put 'LHN0cmVhbVNlcnZpY2VOYW1lOiIiLGFzc2V0UGF0aHM6W119KSx0aGlzLnRlc3RDb25maWc/VS50ZXN0Q29uZmlnPXRoaXMudGVzdENvbmZpZzpWJiYoVS50ZXN0Q29uZmlnPXtpbml0UHJvZ3JhbToiIix0ZXJtUHJvZ3JhbToiIixtYWNyb1ZhcnM6e30sdGVzdFNldFVwOiIiLHRlc3RUZWFy'@; put 'RG93bjoiIn0pLHRoaXMuc2VydmVyVHlwZT09PUkuU2VydmVyVHlwZS5TYXNWaXlhP1UuY29udGV4dE5hbWU9dGhpcy5jb250ZXh0TmFtZTp0aGlzLnNlcnZlclR5cGU9PT1JLlNlcnZlclR5cGUuU2FzOSYmKFUuc2VydmVyTmFtZT10aGlzLnNlcnZlck5hbWUsVS5yZXBvc2l0b3J5TmFtZT10'@; put 'aGlzLnJlcG9zaXRvcnlOYW1lKSxVfSxqfSgpO08uVGFyZ2V0PUV9LDY3ODE6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oayl7cmV0dXJuIGsmJmsuX19lc01vZHVsZT9rOntkZWZhdWx0Omt9fTtPYmplY3Qu'@; put 'ZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy52YWxpZGF0ZVN5bmNEaXJlY3Rvcmllcz1PLnZhbGlkYXRlUmVwb3NpdG9yeU5hbWU9Ty52YWxpZGF0ZVN5bmNGb2xkZXI9Ty52YWxpZGF0ZVNlcnZlck5hbWU9Ty52YWxpZGF0ZUNvbnRleHROYW1lPU8udmFsaWRh'@; put 'dGVTdHJlYW1Db25maWc9Ty52YWxpZGF0ZURlcGxveUNvbmZpZz1PLnZhbGlkYXRlSm9iQ29uZmlnPU8udmFsaWRhdGVUZXN0Q29uZmlnPU8udmFsaWRhdGVTZXJ2aWNlQ29uZmlnPU8udmFsaWRhdGVCdWlsZENvbmZpZz1PLnZhbGlkYXRlQXV0aENvbmZpZ1Nhczk9Ty52YWxpZGF0ZUF1dGhD'@; put 'b25maWc9Ty52YWxpZGF0ZURvY0NvbmZpZz1PLnZhbGlkYXRlQXBwTG9jPU8udmFsaWRhdGVIdHRwc0FnZW50T3B0aW9ucz1PLnZhbGlkYXRlU2VydmVyVXJsPU8udmFsaWRhdGVUYXJnZXROYW1lPU8udmFsaWRhdGVTZXJ2ZXJUeXBlPXZvaWQgMDt2YXIgSz16KFIoNDgxKSksST1SKDM5MDAp'@; put 'O08udmFsaWRhdGVTZXJ2ZXJUeXBlPWZ1bmN0aW9uKGspe2lmKCFrKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZXJ2ZXIgdHlwZTogYHNlcnZlclR5cGVgIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtpZihrIT09SS5TZXJ2ZXJUeXBlLlNhczkmJmshPT1JLlNlcnZlclR5cGUu'@; put 'U2FzVml5YSYmayE9PUkuU2VydmVyVHlwZS5TYXNqcyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmVyIHR5cGU6IFN1cHBvcnRlZCB2YWx1ZXMgZm9yICBgc2VydmVyVHlwZWAgYXJlICIuY29uY2F0KEkuU2VydmVyVHlwZS5TYXNWaXlhLCIsICIpLmNvbmNhdChJLlNlcnZlclR5cGUu'@; put 'U2FzOSwiIGFuZCAiKS5jb25jYXQoSS5TZXJ2ZXJUeXBlLlNhc2pzLCIuIikpO3JldHVybiBrfSxPLnZhbGlkYXRlVGFyZ2V0TmFtZT1mdW5jdGlvbihrKXtpZighayl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGFyZ2V0IG5hbWU6IGBuYW1lYCBjYW5ub3QgYmUgZW1wdHksIG51bGwgb3Ig'@; put 'dW5kZWZpbmVkLiIpO2lmKGsudHJpbSgpLmluY2x1ZGVzKCIgIikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRhcmdldCBuYW1lOiBgbmFtZWAgY2Fubm90IGluY2x1ZGUgc3BhY2VzLiIpO2lmKCEvXlthLXpBLVowLTlcLV0rJC9pLnRlc3QoaykpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlk'@; put 'IHRhcmdldCBuYW1lOiBgbmFtZWAgY2FuIG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgZGFzaGVzLiIpO3JldHVybiBrfSxPLnZhbGlkYXRlU2VydmVyVXJsPWZ1bmN0aW9uKGspe2lmKG51bGw9PWsmJihrPSIiKSwiIiE9PWsmJiFLLmRlZmF1bHQuaXNIdHRwVXJp'@; put 'KGspJiYhSy5kZWZhdWx0LmlzSHR0cHNVcmkoaykpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNlcnZlciBVUkw6IGBzZXJ2ZXJVcmxgIHNob3VsZCBlaXRoZXIgYmUgYW4gZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgVVJMIG9mIHRoZSBmb3JtIGh0dHAocyk6Ly95b3VyLXNlcnZlci5jb20o'@; put 'OnBvcnQpLiIpO3JldHVybiBrfSxPLnZhbGlkYXRlSHR0cHNBZ2VudE9wdGlvbnM9ZnVuY3Rpb24oayl7aWYoayl7aWYoIm9iamVjdCIhPXR5cGVvZiBrKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB2YWx1ZTogYGh0dHBzQWdlbnRPcHRpb25zYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5'@; put 'IG9yIGFuIG9iamVjdCBvZiBgSHR0cHNBZ2VudE9wdGlvbnNgIik7aWYobnVsbD09ay5hbGxvd0luc2VjdXJlUmVxdWVzdHMpay5hbGxvd0luc2VjdXJlUmVxdWVzdHM9ITE7ZWxzZSBpZigiYm9vbGVhbiIhPXR5cGVvZiBrLmFsbG93SW5zZWN1cmVSZXF1ZXN0cyl0aHJvdyBuZXcgRXJyb3Io'@; put 'IkludmFsaWQgdmFsdWU6IGBodHRwc0FnZW50T3B0aW9ucy5hbGxvd0luc2VjdXJlUmVxdWVzdHNgIHNob3VsZCBlaXRoZXIgYmUgYW4gZW1wdHkgb3IgYSBib29sZWFuIik7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBrLmNhUGF0aCYmKGsuY2FQYXRoPXZvaWQgMCksInN0cmluZyIhPXR5cGVv'@; put 'ZiBrLmtleVBhdGgmJihrLmtleVBhdGg9dm9pZCAwKSwic3RyaW5nIiE9dHlwZW9mIGsuY2VydFBhdGgmJihrLmNlcnRQYXRoPXZvaWQgMCksa319LE8udmFsaWRhdGVBcHBMb2M9ZnVuY3Rpb24oayl7aWYoIWspdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGFwcCBsb2NhdGlvbjogYGFwcExv'@; put 'Y2AgY2Fubm90IGJlIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZC4iKTtpZighay5zdGFydHNXaXRoKCIvIikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGFwcCBsb2NhdGlvbjogYGFwcExvY2AgbXVzdCBzdGFydCB3aXRoIGEgYC9gLiIpO3JldHVybiBrfSxPLnZhbGlkYXRlRG9jQ29uZmln'@; put 'PWZ1bmN0aW9uKGspe2lmKGt8fChrPXt9KSwiYm9vbGVhbiIhPXR5cGVvZiBrLmRpc3BsYXlNYWNyb0NvcmUmJihrLmRpc3BsYXlNYWNyb0NvcmU9dm9pZCAwKSwiYm9vbGVhbiIhPXR5cGVvZiBrLmVuYWJsZUxpbmVhZ2UmJihrLmVuYWJsZUxpbmVhZ2U9dm9pZCAwKSwic3RyaW5nIiE9dHlw'@; put 'ZW9mIGsub3V0RGlyZWN0b3J5JiYoay5vdXREaXJlY3Rvcnk9dm9pZCAwKSwic3RyaW5nIj09dHlwZW9mIGsuZGF0YUNvbnRyb2xsZXJVcmwpe2lmKCIiIT09ay5kYXRhQ29udHJvbGxlclVybCYmIUsuZGVmYXVsdC5pc0h0dHBVcmkoay5kYXRhQ29udHJvbGxlclVybCkmJiFLLmRlZmF1bHQu'@; put 'aXNIdHRwc1VyaShrLmRhdGFDb250cm9sbGVyVXJsKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgRGF0YSBDb250cm9sbGVyIFVybDogYGRhdGFDb250cm9sbGVyVXJsYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IHN0cmluZyBvciBhIHZhbGlkIFVSTCBvZiB0aGUgZm9ybSBodHRwKHMp'@; put 'Oi8veW91ci1zZXJ2ZXIuY29tKDpwb3J0KS4iKX1lbHNlIGsuZGF0YUNvbnRyb2xsZXJVcmw9dm9pZCAwO3JldHVybiBrfSxPLnZhbGlkYXRlQXV0aENvbmZpZz1mdW5jdGlvbihrKXtpZighayl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXV0aCBjb25maWc6IEpTT04gY2Fubm90IGJlIG51'@; put 'bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBrfSxPLnZhbGlkYXRlQXV0aENvbmZpZ1Nhczk9ZnVuY3Rpb24oayl7aWYoIWspdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGggY29uZmlnIGZvciBzYXM5OiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtpZighay51c2Vy'@; put 'TmFtZXx8IWsucGFzc3dvcmQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGggY29uZmlnIGZvciBzYXM5OiB1c2VyTmFtZSBhbmQgcGFzc3dvcmQgY2FuIG5vdCBiZSBlbXB0eSIpO3JldHVybiBrfSxPLnZhbGlkYXRlQnVpbGRDb25maWc9ZnVuY3Rpb24oayxFKXtpZighayl0aHJvdyBu'@; put 'ZXcgRXJyb3IoIkludmFsaWQgYnVpbGQgY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gay5idWlsZFJlc3VsdHNGb2xkZXJ8fChrLmJ1aWxkUmVzdWx0c0ZvbGRlcj0ic2FzanNyZXN1bHRzIiksay5idWlsZE91dHB1dEZvbGRlcnx8KGsuYnVpbGRP'@; put 'dXRwdXRGb2xkZXI9InNhc2pzYnVpbGQiKSxrLmJ1aWxkT3V0cHV0RmlsZU5hbWV8fChrLmJ1aWxkT3V0cHV0RmlsZU5hbWU9IiIuY29uY2F0KEUsIi5zYXMiKSksay5pbml0UHJvZ3JhbXx8KGsuaW5pdFByb2dyYW09IiIpLGsudGVybVByb2dyYW18fChrLnRlcm1Qcm9ncmFtPSIiKSxrLm1h'@; put 'Y3JvVmFyc3x8KGsubWFjcm9WYXJzPXt9KSxrfSxPLnZhbGlkYXRlU2VydmljZUNvbmZpZz1mdW5jdGlvbihrKXtpZighayl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmljZSBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBrLmluaXRQcm9n'@; put 'cmFtfHwoay5pbml0UHJvZ3JhbT0iIiksay50ZXJtUHJvZ3JhbXx8KGsudGVybVByb2dyYW09IiIpLGsuc2VydmljZUZvbGRlcnN8fChrLnNlcnZpY2VGb2xkZXJzPVtdKSxrLm1hY3JvVmFyc3x8KGsubWFjcm9WYXJzPXt9KSxrfSxPLnZhbGlkYXRlVGVzdENvbmZpZz1mdW5jdGlvbihrKXtp'@; put 'Zighayl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGVzdCBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBrLmluaXRQcm9ncmFtfHwoay5pbml0UHJvZ3JhbT0iIiksay50ZXJtUHJvZ3JhbXx8KGsudGVybVByb2dyYW09IiIpLGsubWFjcm9WYXJz'@; put 'fHwoay5tYWNyb1ZhcnM9e30pLGsudGVzdFNldFVwfHwoay50ZXN0U2V0VXA9IiIpLGsudGVzdFRlYXJEb3dufHwoay50ZXN0VGVhckRvd249IiIpLGt9LE8udmFsaWRhdGVKb2JDb25maWc9ZnVuY3Rpb24oayl7aWYoIWspdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGpvYiBjb25maWc6IEpT'@; put 'T04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBrLmluaXRQcm9ncmFtfHwoay5pbml0UHJvZ3JhbT0iIiksay50ZXJtUHJvZ3JhbXx8KGsudGVybVByb2dyYW09IiIpLGsuam9iRm9sZGVyc3x8KGsuam9iRm9sZGVycz1bXSksay5tYWNyb1ZhcnN8fChrLm1hY3JvVmFy'@; put 'cz17fSksa30sTy52YWxpZGF0ZURlcGxveUNvbmZpZz1mdW5jdGlvbihrKXtpZighayl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGVwbG95IGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIGsuZGVwbG95U2VydmljZVBhY2s9ISFrLmRlcGxveVNl'@; put 'cnZpY2VQYWNrLGsuZGVwbG95U2NyaXB0c3x8KGsuZGVwbG95U2NyaXB0cz1bXSksa30sTy52YWxpZGF0ZVN0cmVhbUNvbmZpZz1mdW5jdGlvbihrKXtpZighayl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQu'@; put 'Iik7aWYoITAhPT1rLnN0cmVhbVdlYiYmITEhPT1rLnN0cmVhbVdlYil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogYHN0cmVhbVdlYmAgY2Fubm90IGJlIGEgbm9uLWJvb2xlYW4gdmFsdWUuIik7aWYoay5zdHJlYW1XZWImJiFrLnN0cmVhbVdlYkZvbGRlcil0aHJv'@; put 'dyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogYHN0cmVhbVdlYkZvbGRlcmAgY2Fubm90IGJlIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGBzdHJlYW1XZWJgIGlzIHRydWUuIik7aWYoay5zdHJlYW1XZWImJiFrLndlYlNvdXJjZVBhdGgpdGhyb3cgbmV3IEVycm9y'@; put 'KCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IGB3ZWJTb3VyY2VQYXRoYCBjYW5ub3QgYmUgZW1wdHksIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBrLnN0cmVhbUxvZ28mJiJzdHJpbmciIT10eXBlb2Ygay5zdHJlYW1Mb2dvJiYoay5zdHJlYW1Mb2dvPXZvaWQgMCksay5hc3NldFBhdGhz'@; put 'fHwoay5hc3NldFBhdGhzPVtdKSxrLnN0cmVhbVNlcnZpY2VOYW1lfHwoay5zdHJlYW1TZXJ2aWNlTmFtZT0iY2xpY2ttZSIpLGt9LE8udmFsaWRhdGVDb250ZXh0TmFtZT1mdW5jdGlvbihrLEUpe3JldHVybiBFIT09SS5TZXJ2ZXJUeXBlLlNhc1ZpeWF8fGs/azoiU0FTIEpvYiBFeGVjdXRp'@; put 'b24gY29tcHV0ZSBjb250ZXh0In0sTy52YWxpZGF0ZVNlcnZlck5hbWU9ZnVuY3Rpb24oayxFKXtyZXR1cm4gRSE9PUkuU2VydmVyVHlwZS5TYXM5fHxrP2s6IlNBU0FwcCJ9LE8udmFsaWRhdGVTeW5jRm9sZGVyPWZ1bmN0aW9uKGspe2lmKCJzdHJpbmciPT10eXBlb2YgayYmaylyZXR1cm4g'@; put 'a30sTy52YWxpZGF0ZVJlcG9zaXRvcnlOYW1lPWZ1bmN0aW9uKGssRSl7cmV0dXJuIEUhPT1JLlNlcnZlclR5cGUuU2FzOXx8az9rOiJGb3VuZGF0aW9uIn0sTy52YWxpZGF0ZVN5bmNEaXJlY3Rvcmllcz1mdW5jdGlvbihrKXtpZighayl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3luY0Rp'@; put 'cmVjdG9yaWVzIGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIGsuZm9yRWFjaChmdW5jdGlvbihFKXtpZighRS5sb2NhbHx8IUUucmVtb3RlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzeW5jRGlyZWN0b3J5IGNvbmZpZzogdmFsdWVzIG9mIHBy'@; put 'b3BlcnR5ICdsb2NhbCcgYW5kICdyZW1vdGUgY2FuIG5vdCBiZSBlbXB0eSBvciB1bmRlZmluZWQiKX0pLGt9fSwyOTI3OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9Uig4NzY0KS5CdWZmZXIsSz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oRSl7cmV0'@; put 'dXJuIEUmJkUuX19lc01vZHVsZT9FOntkZWZhdWx0OkV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5kZWNvZGVGcm9tQmFzZTY0PU8uZW5jb2RlVG9CYXNlNjQ9dm9pZCAwO3ZhciBJPUsoUig1ODM1KSksaz0ie3Nhc2pzX2VuY29kZWR9IjtP'@; put 'LmVuY29kZVRvQmFzZTY0PWZ1bmN0aW9uKEUpe3ZhciBqPUkuZGVmYXVsdC5yYW5kb21CeXRlcygxMDApLnRvU3RyaW5nKCJoZXgiKSxWPXouZnJvbShqK0UpLnRvU3RyaW5nKCJiYXNlNjQiKTtyZXR1cm4gaytWfSxPLmRlY29kZUZyb21CYXNlNjQ9ZnVuY3Rpb24oRSl7cmV0dXJuIEUuc3Rh'@; put 'cnRzV2l0aChrKT8oRT1FLnJlcGxhY2UoL157c2FzanNfZW5jb2RlZH0vLCIiKSx6LmZyb20oRSwiYmFzZTY0IikudG9TdHJpbmcoKS5zdWJzdHJpbmcoMjAwKSk6RX19LDU4MTooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVl'@; put 'OiEwfSksTy5ieXRlc1RvU2l6ZT12b2lkIDAsTy5ieXRlc1RvU2l6ZT1mdW5jdGlvbihSLHosSyl7aWYodm9pZCAwPT09eiYmKHo9MSksdm9pZCAwPT09SyYmKEs9MTA5OTUxMTYyNzc3NiksMD09PVIpcmV0dXJuIjAgQiI7Uj1SPks/SzpSO3ZhciBJPXo8MD8wOnosaz1NYXRoLmZsb29yKE1h'@; put 'dGgubG9nKFIpL01hdGgubG9nKDEwMjQpKTtyZXR1cm4oUi9NYXRoLnBvdygxMDI0LGspKS50b0ZpeGVkKEkpKyIgIitbIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdW2tdfX0sODY1MzooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3Zh'@; put 'bHVlOiEwfSksTy5jaHVuaz12b2lkIDAsTy5jaHVuaz1mdW5jdGlvbihSLHope3JldHVybiB2b2lkIDA9PT16JiYoej0yMjApLFIubGVuZ3RoPD16P1tSXTooUi5tYXRjaChuZXcgUmVnRXhwKCIuezEsIit6KyJ9IiwiZyIpKXx8W10pLmZpbHRlcihmdW5jdGlvbihLKXtyZXR1cm4hIUt9KX19'@; put 'LDY0NTc6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmljdCI7dmFyIFI9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKEssSSl7dmFyIGs9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmS1tTeW1ib2wuaXRlcmF0b3JdO2lmKCFrKXJldHVybiBLO3ZhciBFLGosVj1rLmNhbGwoSyksQj1bXTt0'@; put 'cnl7Zm9yKDsodm9pZCAwPT09SXx8SS0tID4wKSYmIShFPVYubmV4dCgpKS5kb25lOylCLnB1c2goRS52YWx1ZSl9Y2F0Y2goWSl7aj17ZXJyb3I6WX19ZmluYWxseXt0cnl7RSYmIUUuZG9uZSYmKGs9Vi5yZXR1cm4pJiZrLmNhbGwoVil9ZmluYWxseXtpZihqKXRocm93IGouZXJyb3J9fXJl'@; put 'dHVybiBCfSx6PXRoaXMmJnRoaXMuX19zcHJlYWRBcnJheXx8ZnVuY3Rpb24oSyxJLGspe2lmKGt8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgRSxqPTAsVj1JLmxlbmd0aDtqPFY7aisrKSFFJiZqIGluIEl8fChFfHwoRT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChJLDAsaikp'@; put 'LEVbal09SVtqXSk7cmV0dXJuIEsuY29uY2F0KEV8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKEkpKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZGlmZj12b2lkIDAsTy5kaWZmPWZ1bmN0aW9uKEssSSl7dmFyIGs9Sy5maWx0ZXIoZnVu'@; put 'Y3Rpb24oail7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBqPyFKU09OLnN0cmluZ2lmeShJKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeShqKSk6IUkuaW5jbHVkZXMoail9KSxFPUkuZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiJvYmplY3QiPT10eXBlb2Ygaj8hSlNPTi5zdHJpbmdpZnkoSyku'@; put 'aW5jbHVkZXMoSlNPTi5zdHJpbmdpZnkoaikpOiFLLmluY2x1ZGVzKGopfSk7cmV0dXJuIHooeihbXSxSKGspLCExKSxSKEUpLCExKX19LDE1Mjk6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2V0RXhlY3V0'@; put 'b3JQYXRoPXZvaWQgMDt2YXIgUj17U0FTVklZQToiL1NBU0pvYkV4ZWN1dGlvbiIsU0FTOToiL1NBU1N0b3JlZFByb2Nlc3MvZG8ifTtPLmdldEV4ZWN1dG9yUGF0aD1mdW5jdGlvbih6KXtyZXR1cm4gej8oej16LnRvVXBwZXJDYXNlKCksUlt6XXx8IiIpOiIifX0sMzMxNjooTSxPLFIpPT57'@; put 'InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmdldFRyZWVFeGFtcGxlPU8uaXNGaWxlVHJlZT12b2lkIDA7dmFyIHo9UigzOTAwKTtPLmlzRmlsZVRyZWU9ZnVuY3Rpb24oRSl7cmV0dXJuIEUmJkUubWVtYmVycyYmQXJyYXku'@; put 'aXNBcnJheShFLm1lbWJlcnMpJiYwPT09RS5tZW1iZXJzLmZpbHRlcihmdW5jdGlvbihqKXtyZXR1cm4hSyhqKSYmIUkoaikmJiFrKGopfSkubGVuZ3RofTt2YXIgSz1mdW5jdGlvbihFKXtyZXR1cm4gRSYmInN0cmluZyI9PXR5cGVvZiBFLm5hbWUmJkUudHlwZT09PXouTWVtYmVyVHlwZS5z'@; put 'ZXJ2aWNlJiYic3RyaW5nIj09dHlwZW9mIEUuY29kZX0sST1mdW5jdGlvbihFKXtyZXR1cm4gRSYmInN0cmluZyI9PXR5cGVvZiBFLm5hbWUmJkUudHlwZT09PXouTWVtYmVyVHlwZS5maWxlJiYic3RyaW5nIj09dHlwZW9mIEUuY29kZX0saz1mdW5jdGlvbihFKXtyZXR1cm4gRSYmInN0cmlu'@; put 'ZyI9PXR5cGVvZiBFLm5hbWUmJkUudHlwZT09PXouTWVtYmVyVHlwZS5mb2xkZXImJkUubWVtYmVycyYmQXJyYXkuaXNBcnJheShFLm1lbWJlcnMpJiYwPT09RS5tZW1iZXJzLmZpbHRlcihmdW5jdGlvbihqKXtyZXR1cm4hSyhqKSYmIUkoaikmJiFrKGopfSkubGVuZ3RofTtPLmdldFRyZWVF'@; put 'eGFtcGxlPWZ1bmN0aW9uKCl7cmV0dXJue21lbWJlcnM6W3tuYW1lOiJqb2JzIix0eXBlOnouTWVtYmVyVHlwZS5mb2xkZXIsbWVtYmVyczpbe25hbWU6ImV4dHJhY3QiLHR5cGU6ei5NZW1iZXJUeXBlLmZvbGRlcixtZW1iZXJzOlt7bmFtZToibWFrZWRhdGExIix0eXBlOnouTWVtYmVyVHlw'@; put 'ZS5zZXJ2aWNlLGNvZGU6IiVwdXQgSGVsbG8gV29ybGQhOyJ9XX1dfV19fX0sNjI2NjpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihYLFUscSxlZSl7dm9pZCAwPT09ZWUmJihlZT1x'@; put 'KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWCxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVVtxXX19KX06ZnVuY3Rpb24oWCxVLHEsZWUpe3ZvaWQgMD09PWVlJiYoZWU9cSksWFtlZV09VVtxXX0pLEs9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFgs'@; put 'VSl7Zm9yKHZhciBxIGluIFgpImRlZmF1bHQiPT09cXx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUscSl8fHooVSxYLHEpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5jaHVuaz1PLmRpZmY9Ty5ieXRlc1RvU2l6ZT1P'@; put 'LmdldEV4ZWN1dG9yUGF0aD1PLmRlY29kZUZyb21CYXNlNjQ9Ty5lbmNvZGVUb0Jhc2U2ND1PLnVybE9yaWdpbj1PLmdlbmVyYXRlUGF0aEZvclNhcz1PLmdldE1hY3Jvc1BhdGg9Ty5lc2NhcGVXaW5TbGFzaGVzPU8uaXNMaW51eD1PLmlzV2luZG93cz1PLnVuaXFBcnJheT1PLmFzeW5jRm9y'@; put 'RWFjaD1PLnV1aWR2ND12b2lkIDA7dmFyIEk9UigxMTMxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywidXVpZHY0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS51dWlkdjR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImFzeW5jRm9yRWFjaCIse2VudW1lcmFi'@; put 'bGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkuYXN5bmNGb3JFYWNofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJ1bmlxQXJyYXkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLnVuaXFBcnJheX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiaXNXaW5k'@; put 'b3dzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSS5pc1dpbmRvd3N9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImlzTGludXgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmlzTGludXh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8s'@; put 'ImVzY2FwZVdpblNsYXNoZXMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmVzY2FwZVdpblNsYXNoZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImdldE1hY3Jvc1BhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBJLmdldE1hY3Jv'@; put 'c1BhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImdlbmVyYXRlUGF0aEZvclNhcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEkuZ2VuZXJhdGVQYXRoRm9yU2FzfX0pLEsoUigzMzE2KSxPKTt2YXIgaz1SKDk2NTIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShP'@; put 'LCJ1cmxPcmlnaW4iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBrLnVybE9yaWdpbn19KTt2YXIgRT1SKDI5MjcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJlbmNvZGVUb0Jhc2U2NCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEUuZW5jb2Rl'@; put 'VG9CYXNlNjR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sImRlY29kZUZyb21CYXNlNjQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBFLmRlY29kZUZyb21CYXNlNjR9fSk7dmFyIGo9UigxNTI5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiZ2V0RXhlY3V0b3JQ'@; put 'YXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gai5nZXRFeGVjdXRvclBhdGh9fSk7dmFyIFY9Uig1ODEpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJieXRlc1RvU2l6ZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFYuYnl0ZXNUb1NpemV9'@; put 'fSk7dmFyIEI9Uig2NDU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiZGlmZiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEIuZGlmZn19KTt2YXIgWT1SKDg2NTMpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJjaHVuayIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIFkuY2h1bmt9fSl9LDk2NTI6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8udXJsT3JpZ2luPXZvaWQgMCxPLnVybE9yaWdpbj1mdW5jdGlvbihSKXtpZigiIj09PVIpcmV0dXJuIFI7dmFy'@; put 'IHo7dHJ5e3o9bmV3IFVSTChSKS5vcmlnaW59Y2F0Y2h7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFVSTC4iKX1yZXR1cm4gen19LDExMzE6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUpLEs9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGosVixCLFkp'@; put 'e3JldHVybiBuZXcoQnx8KEI9UHJvbWlzZSkpKGZ1bmN0aW9uKFgsVSl7ZnVuY3Rpb24gcShvZSl7dHJ5e3RlKFkubmV4dChvZSkpfWNhdGNoKHNlKXtVKHNlKX19ZnVuY3Rpb24gZWUob2Upe3RyeXt0ZShZLnRocm93KG9lKSl9Y2F0Y2goc2Upe1Uoc2UpfX1mdW5jdGlvbiB0ZShvZSl7dmFy'@; put 'IHNlO29lLmRvbmU/WChvZS52YWx1ZSk6KHNlPW9lLnZhbHVlLHNlIGluc3RhbmNlb2YgQj9zZTpuZXcgQihmdW5jdGlvbihoZSl7aGUoc2UpfSkpLnRoZW4ocSxlZSl9dGUoKFk9WS5hcHBseShqLFZ8fFtdKSkubmV4dCgpKX0pfSxJPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9u'@; put 'KGosVil7dmFyIEIsWSxYLFUscT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZYWzBdKXRocm93IFhbMV07cmV0dXJuIFhbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gVT17bmV4dDplZSgwKSx0aHJvdzplZSgxKSxyZXR1cm46ZWUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1i'@; put 'b2wmJihVW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFU7ZnVuY3Rpb24gZWUodGUpe3JldHVybiBmdW5jdGlvbihvZSl7cmV0dXJuIGZ1bmN0aW9uKHNlKXtpZihCKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4i'@; put 'KTtmb3IoO3E7KXRyeXtpZihCPTEsWSYmKFg9MiZzZVswXT9ZLnJldHVybjpzZVswXT9ZLnRocm93fHwoKFg9WS5yZXR1cm4pJiZYLmNhbGwoWSksMCk6WS5uZXh0KSYmIShYPVguY2FsbChZLHNlWzFdKSkuZG9uZSlyZXR1cm4gWDtzd2l0Y2goWT0wLFgmJihzZT1bMiZzZVswXSxYLnZhbHVl'@; put 'XSksc2VbMF0pe2Nhc2UgMDpjYXNlIDE6WD1zZTticmVhaztjYXNlIDQ6cmV0dXJuIHEubGFiZWwrKyx7dmFsdWU6c2VbMV0sZG9uZTohMX07Y2FzZSA1OnEubGFiZWwrKyxZPXNlWzFdLHNlPVswXTtjb250aW51ZTtjYXNlIDc6c2U9cS5vcHMucG9wKCkscS50cnlzLnBvcCgpO2NvbnRpbnVl'@; put 'O2RlZmF1bHQ6aWYoISgoWD0oWD1xLnRyeXMpLmxlbmd0aD4wJiZYW1gubGVuZ3RoLTFdKXx8NiE9PXNlWzBdJiYyIT09c2VbMF0pKXtxPTA7Y29udGludWV9aWYoMz09PXNlWzBdJiYoIVh8fHNlWzFdPlhbMF0mJnNlWzFdPFhbM10pKXtxLmxhYmVsPXNlWzFdO2JyZWFrfWlmKDY9PT1zZVsw'@; put 'XSYmcS5sYWJlbDxYWzFdKXtxLmxhYmVsPVhbMV0sWD1zZTticmVha31pZihYJiZxLmxhYmVsPFhbMl0pe3EubGFiZWw9WFsyXSxxLm9wcy5wdXNoKHNlKTticmVha31YWzJdJiZxLm9wcy5wb3AoKSxxLnRyeXMucG9wKCk7Y29udGludWV9c2U9Vi5jYWxsKGoscSl9Y2F0Y2goaGUpe3NlPVs2'@; put 'LGhlXSxZPTB9ZmluYWxseXtCPVg9MH1pZig1JnNlWzBdKXRocm93IHNlWzFdO3JldHVybnt2YWx1ZTpzZVswXT9zZVsxXTp2b2lkIDAsZG9uZTohMH19KFt0ZSxvZV0pfX19LGs9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGope3JldHVybiBqJiZqLl9fZXNNb2R1bGU/'@; put 'ajp7ZGVmYXVsdDpqfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2VuZXJhdGVQYXRoRm9yU2FzPU8uZ2V0TWFjcm9zUGF0aD1PLmVzY2FwZVdpblNsYXNoZXM9Ty5pc0xpbnV4PU8uaXNXaW5kb3dzPU8udW5pcUFycmF5PU8udXVpZHY0PU8u'@; put 'YXN5bmNGb3JFYWNoPXZvaWQgMDt2YXIgRT1rKFIoMjUyMCkpO08uYXN5bmNGb3JFYWNoPWZ1bmN0aW9uKGosVil7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEI7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihZKXtzd2l0Y2goWS5sYWJlbCl7Y2FzZSAwOkI9MCxZ'@; put 'LmxhYmVsPTE7Y2FzZSAxOnJldHVybiBCPGoubGVuZ3RoP1s0LFYoaltCXSxCLGopXTpbMyw0XTtjYXNlIDI6WS5zZW50KCksWS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gQisrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sTy51dWlkdjQ9ZnVuY3Rpb24oKXtyZXR1cm4ieHh4eHh4eHgt'@; put 'eHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZnVuY3Rpb24oail7dmFyIFY9MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PWo/VjozJlZ8OCkudG9TdHJpbmcoMTYpfSl9LE8udW5pcUFycmF5PWZ1bmN0aW9uKGope3JldHVybiBBcnJheS5mcm9tKG5l'@; put 'dyBTZXQoaikpfSxPLmlzV2luZG93cz1mdW5jdGlvbigpe3JldHVybiJ3aW4zMiI9PT16LnBsYXRmb3JtfSxPLmlzTGludXg9ZnVuY3Rpb24oKXtyZXR1cm4ibGludXgiPT09ei5wbGF0Zm9ybX0sTy5lc2NhcGVXaW5TbGFzaGVzPWZ1bmN0aW9uKGope3JldHVybigwLE8uaXNXaW5kb3dzKSgp'@; put 'P2oucmVwbGFjZSgvXFwvZywiXFxcXCIpOmp9LE8uZ2V0TWFjcm9zUGF0aD1mdW5jdGlvbigpe3JldHVybiBFLmRlZmF1bHQuam9pbigiLyIsIi4uIiwibWFjcm9zIil9LE8uZ2VuZXJhdGVQYXRoRm9yU2FzPWZ1bmN0aW9uKGope3JldHVybiBqLnJlcGxhY2UoL1xcL2csIi8iKX19LDk4MDk6'@; put 'KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PU87ei5iaWdudW09Uig0NTkwKSx6LmRlZmluZT1SKDI1MDApLmRlZmluZSx6LmJhc2U9UigxOTc5KSx6LmNvbnN0YW50cz1SKDY4MjYpLHouZGVjb2RlcnM9Uig4MzA3KSx6LmVuY29kZXJzPVIoNjU3OSl9LDI1MDA6KE0sTyxSKT0+eyJ1'@; put 'c2Ugc3RyaWN0Ijtjb25zdCB6PVIoNjU3OSksSz1SKDgzMDcpLEk9Uig1NzE3KTtmdW5jdGlvbiBrKEUsail7dGhpcy5uYW1lPUUsdGhpcy5ib2R5PWosdGhpcy5kZWNvZGVycz17fSx0aGlzLmVuY29kZXJzPXt9fU8uZGVmaW5lPWZ1bmN0aW9uKEUsail7cmV0dXJuIG5ldyBrKEUsail9LGsu'@; put 'cHJvdG90eXBlLl9jcmVhdGVOYW1lZD1mdW5jdGlvbihFKXtjb25zdCBqPXRoaXMubmFtZTtmdW5jdGlvbiBWKEIpe3RoaXMuX2luaXROYW1lZChCLGopfXJldHVybiBJKFYsRSksVi5wcm90b3R5cGUuX2luaXROYW1lZD1mdW5jdGlvbihCLFkpe0UuY2FsbCh0aGlzLEIsWSl9LG5ldyBWKHRo'@; put 'aXMpfSxrLnByb3RvdHlwZS5fZ2V0RGVjb2Rlcj1mdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5kZWNvZGVycy5oYXNPd25Qcm9wZXJ0eShFPUV8fCJkZXIiKXx8KHRoaXMuZGVjb2RlcnNbRV09dGhpcy5fY3JlYXRlTmFtZWQoS1tFXSkpLHRoaXMuZGVjb2RlcnNbRV19LGsucHJvdG90eXBlLmRl'@; put 'Y29kZT1mdW5jdGlvbihFLGosVil7cmV0dXJuIHRoaXMuX2dldERlY29kZXIoaikuZGVjb2RlKEUsVil9LGsucHJvdG90eXBlLl9nZXRFbmNvZGVyPWZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVuY29kZXJzLmhhc093blByb3BlcnR5KEU9RXx8ImRlciIpfHwodGhpcy5lbmNvZGVyc1tFXT10'@; put 'aGlzLl9jcmVhdGVOYW1lZCh6W0VdKSksdGhpcy5lbmNvZGVyc1tFXX0say5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKEUsaixWKXtyZXR1cm4gdGhpcy5fZ2V0RW5jb2RlcihqKS5lbmNvZGUoRSxWKX19LDY2MjU6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoNTcxNyksSz1S'@; put 'KDg0NjUpLmIsST1SKDIzOTkpLkJ1ZmZlcjtmdW5jdGlvbiBrKGosVil7Sy5jYWxsKHRoaXMsViksSS5pc0J1ZmZlcihqKT8odGhpcy5iYXNlPWosdGhpcy5vZmZzZXQ9MCx0aGlzLmxlbmd0aD1qLmxlbmd0aCk6dGhpcy5lcnJvcigiSW5wdXQgbm90IEJ1ZmZlciIpfWZ1bmN0aW9uIEUoaixW'@; put 'KXtpZihBcnJheS5pc0FycmF5KGopKXRoaXMubGVuZ3RoPTAsdGhpcy52YWx1ZT1qLm1hcChmdW5jdGlvbihCKXtyZXR1cm4gRS5pc0VuY29kZXJCdWZmZXIoQil8fChCPW5ldyBFKEIsVikpLHRoaXMubGVuZ3RoKz1CLmxlbmd0aCxCfSx0aGlzKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2Yg'@; put 'ail7aWYoISgwPD1qJiZqPD0yNTUpKXJldHVybiBWLmVycm9yKCJub24tYnl0ZSBFbmNvZGVyQnVmZmVyIHZhbHVlIik7dGhpcy52YWx1ZT1qLHRoaXMubGVuZ3RoPTF9ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGopdGhpcy52YWx1ZT1qLHRoaXMubGVuZ3RoPUkuYnl0ZUxlbmd0aChqKTtl'@; put 'bHNle2lmKCFJLmlzQnVmZmVyKGopKXJldHVybiBWLmVycm9yKCJVbnN1cHBvcnRlZCB0eXBlOiAiK3R5cGVvZiBqKTt0aGlzLnZhbHVlPWosdGhpcy5sZW5ndGg9ai5sZW5ndGh9fXooayxLKSxPLkM9ayxrLmlzRGVjb2RlckJ1ZmZlcj1mdW5jdGlvbihqKXtyZXR1cm4gaiBpbnN0YW5jZW9m'@; put 'IGt8fCJvYmplY3QiPT10eXBlb2YgaiYmSS5pc0J1ZmZlcihqLmJhc2UpJiYiRGVjb2RlckJ1ZmZlciI9PT1qLmNvbnN0cnVjdG9yLm5hbWUmJiJudW1iZXIiPT10eXBlb2Ygai5vZmZzZXQmJiJudW1iZXIiPT10eXBlb2Ygai5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBqLnNhdmUmJiJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBqLnJlc3RvcmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBqLmlzRW1wdHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBqLnJlYWRVSW50OCYmImZ1bmN0aW9uIj09dHlwZW9mIGouc2tpcCYmImZ1bmN0aW9uIj09dHlwZW9mIGoucmF3fSxrLnByb3RvdHlwZS5zYXZlPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjpLLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9fSxrLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKGope2NvbnN0IFY9bmV3IGsodGhpcy5iYXNlKTtyZXR1cm4gVi5vZmZzZXQ9ai5vZmZzZXQsVi5sZW5ndGg9dGhp'@; put 'cy5vZmZzZXQsdGhpcy5vZmZzZXQ9ai5vZmZzZXQsSy5wcm90b3R5cGUucmVzdG9yZS5jYWxsKHRoaXMsai5yZXBvcnRlciksVn0say5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9mZnNldD09PXRoaXMubGVuZ3RofSxrLnByb3RvdHlwZS5yZWFkVUludDg9ZnVu'@; put 'Y3Rpb24oail7cmV0dXJuIHRoaXMub2Zmc2V0KzE8PXRoaXMubGVuZ3RoP3RoaXMuYmFzZS5yZWFkVUludDgodGhpcy5vZmZzZXQrKywhMCk6dGhpcy5lcnJvcihqfHwiRGVjb2RlckJ1ZmZlciBvdmVycnVuIil9LGsucHJvdG90eXBlLnNraXA9ZnVuY3Rpb24oaixWKXtpZighKHRoaXMub2Zm'@; put 'c2V0K2o8PXRoaXMubGVuZ3RoKSlyZXR1cm4gdGhpcy5lcnJvcihWfHwiRGVjb2RlckJ1ZmZlciBvdmVycnVuIik7Y29uc3QgQj1uZXcgayh0aGlzLmJhc2UpO3JldHVybiBCLl9yZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsQi5vZmZzZXQ9dGhpcy5vZmZzZXQsQi5sZW5ndGg9'@; put 'dGhpcy5vZmZzZXQraix0aGlzLm9mZnNldCs9aixCfSxrLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24oail7cmV0dXJuIHRoaXMuYmFzZS5zbGljZShqP2oub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sTy5SPUUsRS5pc0VuY29kZXJCdWZmZXI9ZnVuY3Rpb24oail7cmV0dXJuIGog'@; put 'aW5zdGFuY2VvZiBFfHwib2JqZWN0Ij09dHlwZW9mIGomJiJFbmNvZGVyQnVmZmVyIj09PWouY29uc3RydWN0b3IubmFtZSYmIm51bWJlciI9PXR5cGVvZiBqLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIGouam9pbn0sRS5wcm90b3R5cGUuam9pbj1mdW5jdGlvbihqLFYpe3JldHVybiBq'@; put 'fHwoaj1JLmFsbG9jKHRoaXMubGVuZ3RoKSksVnx8KFY9MCksMD09PXRoaXMubGVuZ3RofHwoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKT90aGlzLnZhbHVlLmZvckVhY2goZnVuY3Rpb24oQil7Qi5qb2luKGosViksVis9Qi5sZW5ndGh9KTooIm51bWJlciI9PXR5cGVvZiB0aGlzLnZhbHVl'@; put 'P2pbVl09dGhpcy52YWx1ZToic3RyaW5nIj09dHlwZW9mIHRoaXMudmFsdWU/ai53cml0ZSh0aGlzLnZhbHVlLFYpOkkuaXNCdWZmZXIodGhpcy52YWx1ZSkmJnRoaXMudmFsdWUuY29weShqLFYpLFYrPXRoaXMubGVuZ3RoKSksan19LDE5Nzk6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25z'@; put 'dCB6PU87ei5SZXBvcnRlcj1SKDg0NjUpLmIsei5EZWNvZGVyQnVmZmVyPVIoNjYyNSkuQyx6LkVuY29kZXJCdWZmZXI9Uig2NjI1KS5SLHouTm9kZT1SKDE5NDkpfSwxOTQ5OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDg0NjUpLmIsSz1SKDY2MjUpLlIsST1SKDY2MjUpLkMs'@; put 'az1SKDk3NDYpLEU9WyJzZXEiLCJzZXFvZiIsInNldCIsInNldG9mIiwib2JqaWQiLCJib29sIiwiZ2VudGltZSIsInV0Y3RpbWUiLCJudWxsXyIsImVudW0iLCJpbnQiLCJvYmpEZXNjIiwiYml0c3RyIiwiYm1wc3RyIiwiY2hhcnN0ciIsImdlbnN0ciIsImdyYXBoc3RyIiwiaWE1c3RyIiwi'@; put 'aXNvNjQ2c3RyIiwibnVtc3RyIiwib2N0c3RyIiwicHJpbnRzdHIiLCJ0NjFzdHIiLCJ1bmlzdHIiLCJ1dGY4c3RyIiwidmlkZW9zdHIiXSxqPVsia2V5Iiwib2JqIiwidXNlIiwib3B0aW9uYWwiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiZGVmIiwiY2hvaWNlIiwiYW55IiwiY29udGFpbnMi'@; put 'XS5jb25jYXQoRSk7ZnVuY3Rpb24gVihZLFgsVSl7Y29uc3QgcT17fTt0aGlzLl9iYXNlU3RhdGU9cSxxLm5hbWU9VSxxLmVuYz1ZLHEucGFyZW50PVh8fG51bGwscS5jaGlsZHJlbj1udWxsLHEudGFnPW51bGwscS5hcmdzPW51bGwscS5yZXZlcnNlQXJncz1udWxsLHEuY2hvaWNlPW51bGws'@; put 'cS5vcHRpb25hbD0hMSxxLmFueT0hMSxxLm9iaj0hMSxxLnVzZT1udWxsLHEudXNlRGVjb2Rlcj1udWxsLHEua2V5PW51bGwscS5kZWZhdWx0PW51bGwscS5leHBsaWNpdD1udWxsLHEuaW1wbGljaXQ9bnVsbCxxLmNvbnRhaW5zPW51bGwscS5wYXJlbnR8fChxLmNoaWxkcmVuPVtdLHRoaXMu'@; put 'X3dyYXAoKSl9TS5leHBvcnRzPVY7Y29uc3QgQj1bImVuYyIsInBhcmVudCIsImNoaWxkcmVuIiwidGFnIiwiYXJncyIsInJldmVyc2VBcmdzIiwiY2hvaWNlIiwib3B0aW9uYWwiLCJhbnkiLCJvYmoiLCJ1c2UiLCJhbHRlcmVkVXNlIiwia2V5IiwiZGVmYXVsdCIsImV4cGxpY2l0IiwiaW1w'@; put 'bGljaXQiLCJjb250YWlucyJdO1YucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7Y29uc3QgWT10aGlzLl9iYXNlU3RhdGUsWD17fTtCLmZvckVhY2goZnVuY3Rpb24ocSl7WFtxXT1ZW3FdfSk7Y29uc3QgVT1uZXcgdGhpcy5jb25zdHJ1Y3RvcihYLnBhcmVudCk7cmV0dXJuIFUuX2Jhc2VT'@; put 'dGF0ZT1YLFV9LFYucHJvdG90eXBlLl93cmFwPWZ1bmN0aW9uKCl7Y29uc3QgWT10aGlzLl9iYXNlU3RhdGU7ai5mb3JFYWNoKGZ1bmN0aW9uKFgpe3RoaXNbWF09ZnVuY3Rpb24oKXtjb25zdCBVPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO3JldHVybiBZLmNoaWxkcmVuLnB1c2goVSks'@; put 'VVtYXS5hcHBseShVLGFyZ3VtZW50cyl9fSx0aGlzKX0sVi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oWSl7Y29uc3QgWD10aGlzLl9iYXNlU3RhdGU7ayhudWxsPT09WC5wYXJlbnQpLFkuY2FsbCh0aGlzKSxYLmNoaWxkcmVuPVguY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKFUpe3JldHVy'@; put 'biBVLl9iYXNlU3RhdGUucGFyZW50PT09dGhpc30sdGhpcyksay5lcXVhbChYLmNoaWxkcmVuLmxlbmd0aCwxLCJSb290IG5vZGUgY2FuIGhhdmUgb25seSBvbmUgY2hpbGQiKX0sVi5wcm90b3R5cGUuX3VzZUFyZ3M9ZnVuY3Rpb24oWSl7Y29uc3QgWD10aGlzLl9iYXNlU3RhdGUsVT1ZLmZp'@; put 'bHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3J9LHRoaXMpO1k9WS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIShxIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil9LHRoaXMpLDAhPT1VLmxlbmd0aCYmKGsobnVsbD09PVguY2hpbGRyZW4p'@; put 'LFguY2hpbGRyZW49VSxVLmZvckVhY2goZnVuY3Rpb24ocSl7cS5fYmFzZVN0YXRlLnBhcmVudD10aGlzfSx0aGlzKSksMCE9PVkubGVuZ3RoJiYoayhudWxsPT09WC5hcmdzKSxYLmFyZ3M9WSxYLnJldmVyc2VBcmdzPVkubWFwKGZ1bmN0aW9uKHEpe2lmKCJvYmplY3QiIT10eXBlb2YgcXx8'@; put 'cS5jb25zdHJ1Y3RvciE9PU9iamVjdClyZXR1cm4gcTtjb25zdCBlZT17fTtyZXR1cm4gT2JqZWN0LmtleXMocSkuZm9yRWFjaChmdW5jdGlvbih0ZSl7dGU9PSgwfHRlKSYmKHRlfD0wKSxlZVtxW3RlXV09dGV9KSxlZX0pKX0sWyJfcGVla1RhZyIsIl9kZWNvZGVUYWciLCJfdXNlIiwiX2Rl'@; put 'Y29kZVN0ciIsIl9kZWNvZGVPYmppZCIsIl9kZWNvZGVUaW1lIiwiX2RlY29kZU51bGwiLCJfZGVjb2RlSW50IiwiX2RlY29kZUJvb2wiLCJfZGVjb2RlTGlzdCIsIl9lbmNvZGVDb21wb3NpdGUiLCJfZW5jb2RlU3RyIiwiX2VuY29kZU9iamlkIiwiX2VuY29kZVRpbWUiLCJfZW5jb2RlTnVs'@; put 'bCIsIl9lbmNvZGVJbnQiLCJfZW5jb2RlQm9vbCJdLmZvckVhY2goZnVuY3Rpb24oWSl7Vi5wcm90b3R5cGVbWV09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoWSsiIG5vdCBpbXBsZW1lbnRlZCBmb3IgZW5jb2Rpbmc6ICIrdGhpcy5fYmFzZVN0YXRlLmVuYyl9fSksRS5mb3JFYWNoKGZ1'@; put 'bmN0aW9uKFkpe1YucHJvdG90eXBlW1ldPWZ1bmN0aW9uKCl7Y29uc3QgWD10aGlzLl9iYXNlU3RhdGUsVT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBrKG51bGw9PT1YLnRhZyksWC50YWc9WSx0aGlzLl91c2VBcmdzKFUpLHRoaXN9fSksVi5wcm90b3R5'@; put 'cGUudXNlPWZ1bmN0aW9uKFkpe2soWSk7Y29uc3QgWD10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGsobnVsbD09PVgudXNlKSxYLnVzZT1ZLHRoaXN9LFYucHJvdG90eXBlLm9wdGlvbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jhc2VTdGF0ZS5vcHRpb25hbD0hMCx0aGlzfSxWLnByb3Rv'@; put 'dHlwZS5kZWY9ZnVuY3Rpb24oWSl7Y29uc3QgWD10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGsobnVsbD09PVguZGVmYXVsdCksWC5kZWZhdWx0PVksWC5vcHRpb25hbD0hMCx0aGlzfSxWLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbihZKXtjb25zdCBYPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1'@; put 'cm4gayhudWxsPT09WC5leHBsaWNpdCYmbnVsbD09PVguaW1wbGljaXQpLFguZXhwbGljaXQ9WSx0aGlzfSxWLnByb3RvdHlwZS5pbXBsaWNpdD1mdW5jdGlvbihZKXtjb25zdCBYPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gayhudWxsPT09WC5leHBsaWNpdCYmbnVsbD09PVguaW1wbGljaXQp'@; put 'LFguaW1wbGljaXQ9WSx0aGlzfSxWLnByb3RvdHlwZS5vYmo9ZnVuY3Rpb24oKXtjb25zdCBZPXRoaXMuX2Jhc2VTdGF0ZSxYPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIFkub2JqPSEwLDAhPT1YLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhYKSx0aGlzfSxW'@; put 'LnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24oWSl7Y29uc3QgWD10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGsobnVsbD09PVgua2V5KSxYLmtleT1ZLHRoaXN9LFYucHJvdG90eXBlLmFueT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iYXNlU3RhdGUuYW55PSEwLHRoaXN9LFYucHJvdG90eXBlLmNo'@; put 'b2ljZT1mdW5jdGlvbihZKXtjb25zdCBYPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gayhudWxsPT09WC5jaG9pY2UpLFguY2hvaWNlPVksdGhpcy5fdXNlQXJncyhPYmplY3Qua2V5cyhZKS5tYXAoZnVuY3Rpb24oVSl7cmV0dXJuIFlbVV19KSksdGhpc30sVi5wcm90b3R5cGUuY29udGFpbnM9'@; put 'ZnVuY3Rpb24oWSl7Y29uc3QgWD10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGsobnVsbD09PVgudXNlKSxYLmNvbnRhaW5zPVksdGhpc30sVi5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbihZLFgpe2NvbnN0IFU9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1VLnBhcmVudClyZXR1cm4gWS53'@; put 'cmFwUmVzdWx0KFUuY2hpbGRyZW5bMF0uX2RlY29kZShZLFgpKTtsZXQgcSxlZT1VLmRlZmF1bHQsdGU9ITAsb2U9bnVsbDtpZihudWxsIT09VS5rZXkmJihvZT1ZLmVudGVyS2V5KFUua2V5KSksVS5vcHRpb25hbCl7bGV0IHNlPW51bGw7aWYobnVsbCE9PVUuZXhwbGljaXQ/c2U9VS5leHBs'@; put 'aWNpdDpudWxsIT09VS5pbXBsaWNpdD9zZT1VLmltcGxpY2l0Om51bGwhPT1VLnRhZyYmKHNlPVUudGFnKSxudWxsIT09c2V8fFUuYW55KXtpZih0ZT10aGlzLl9wZWVrVGFnKFksc2UsVS5hbnkpLFkuaXNFcnJvcih0ZSkpcmV0dXJuIHRlfWVsc2V7Y29uc3QgaGU9WS5zYXZlKCk7dHJ5e251'@; put 'bGw9PT1VLmNob2ljZT90aGlzLl9kZWNvZGVHZW5lcmljKFUudGFnLFksWCk6dGhpcy5fZGVjb2RlQ2hvaWNlKFksWCksdGU9ITB9Y2F0Y2h7dGU9ITF9WS5yZXN0b3JlKGhlKX19aWYoVS5vYmomJnRlJiYocT1ZLmVudGVyT2JqZWN0KCkpLHRlKXtpZihudWxsIT09VS5leHBsaWNpdCl7Y29u'@; put 'c3QgaGU9dGhpcy5fZGVjb2RlVGFnKFksVS5leHBsaWNpdCk7aWYoWS5pc0Vycm9yKGhlKSlyZXR1cm4gaGU7WT1oZX1jb25zdCBzZT1ZLm9mZnNldDtpZihudWxsPT09VS51c2UmJm51bGw9PT1VLmNob2ljZSl7bGV0IGhlO1UuYW55JiYoaGU9WS5zYXZlKCkpO2NvbnN0IHVlPXRoaXMuX2Rl'@; put 'Y29kZVRhZyhZLG51bGwhPT1VLmltcGxpY2l0P1UuaW1wbGljaXQ6VS50YWcsVS5hbnkpO2lmKFkuaXNFcnJvcih1ZSkpcmV0dXJuIHVlO1UuYW55P2VlPVkucmF3KGhlKTpZPXVlfWlmKFgmJlgudHJhY2smJm51bGwhPT1VLnRhZyYmWC50cmFjayhZLnBhdGgoKSxzZSxZLmxlbmd0aCwidGFn'@; put 'Z2VkIiksWCYmWC50cmFjayYmbnVsbCE9PVUudGFnJiZYLnRyYWNrKFkucGF0aCgpLFkub2Zmc2V0LFkubGVuZ3RoLCJjb250ZW50IiksVS5hbnl8fChlZT1udWxsPT09VS5jaG9pY2U/dGhpcy5fZGVjb2RlR2VuZXJpYyhVLnRhZyxZLFgpOnRoaXMuX2RlY29kZUNob2ljZShZLFgpKSxZLmlz'@; put 'RXJyb3IoZWUpKXJldHVybiBlZTtpZihVLmFueXx8bnVsbCE9PVUuY2hvaWNlfHxudWxsPT09VS5jaGlsZHJlbnx8VS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGhlKXtoZS5fZGVjb2RlKFksWCl9KSxVLmNvbnRhaW5zJiYoIm9jdHN0ciI9PT1VLnRhZ3x8ImJpdHN0ciI9PT1VLnRhZykp'@; put 'e2NvbnN0IGhlPW5ldyBJKGVlKTtlZT10aGlzLl9nZXRVc2UoVS5jb250YWlucyxZLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShoZSxYKX19cmV0dXJuIFUub2JqJiZ0ZSYmKGVlPVkubGVhdmVPYmplY3QocSkpLG51bGw9PT1VLmtleXx8bnVsbD09PWVlJiYhMCE9PXRlP251bGwhPT1v'@; put 'ZSYmWS5leGl0S2V5KG9lKTpZLmxlYXZlS2V5KG9lLFUua2V5LGVlKSxlZX0sVi5wcm90b3R5cGUuX2RlY29kZUdlbmVyaWM9ZnVuY3Rpb24oWSxYLFUpe2NvbnN0IHE9dGhpcy5fYmFzZVN0YXRlO3JldHVybiJzZXEiPT09WXx8InNldCI9PT1ZP251bGw6InNlcW9mIj09PVl8fCJzZXRvZiI9'@; put 'PT1ZP3RoaXMuX2RlY29kZUxpc3QoWCxZLHEuYXJnc1swXSxVKTovc3RyJC8udGVzdChZKT90aGlzLl9kZWNvZGVTdHIoWCxZLFUpOiJvYmppZCI9PT1ZJiZxLmFyZ3M/dGhpcy5fZGVjb2RlT2JqaWQoWCxxLmFyZ3NbMF0scS5hcmdzWzFdLFUpOiJvYmppZCI9PT1ZP3RoaXMuX2RlY29kZU9i'@; put 'amlkKFgsbnVsbCxudWxsLFUpOiJnZW50aW1lIj09PVl8fCJ1dGN0aW1lIj09PVk/dGhpcy5fZGVjb2RlVGltZShYLFksVSk6Im51bGxfIj09PVk/dGhpcy5fZGVjb2RlTnVsbChYLFUpOiJib29sIj09PVk/dGhpcy5fZGVjb2RlQm9vbChYLFUpOiJvYmpEZXNjIj09PVk/dGhpcy5fZGVjb2Rl'@; put 'U3RyKFgsWSxVKToiaW50Ij09PVl8fCJlbnVtIj09PVk/dGhpcy5fZGVjb2RlSW50KFgscS5hcmdzJiZxLmFyZ3NbMF0sVSk6bnVsbCE9PXEudXNlP3RoaXMuX2dldFVzZShxLnVzZSxYLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShYLFUpOlguZXJyb3IoInVua25vd24gdGFnOiAiK1kp'@; put 'fSxWLnByb3RvdHlwZS5fZ2V0VXNlPWZ1bmN0aW9uKFksWCl7Y29uc3QgVT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIFUudXNlRGVjb2Rlcj10aGlzLl91c2UoWSxYKSxrKG51bGw9PT1VLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5wYXJlbnQpLFUudXNlRGVjb2Rlcj1VLnVzZURlY29kZXIuX2Jh'@; put 'c2VTdGF0ZS5jaGlsZHJlblswXSxVLmltcGxpY2l0IT09VS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQmJihVLnVzZURlY29kZXI9VS51c2VEZWNvZGVyLmNsb25lKCksVS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQ9VS5pbXBsaWNpdCksVS51c2VEZWNvZGVyfSxWLnBy'@; put 'b3RvdHlwZS5fZGVjb2RlQ2hvaWNlPWZ1bmN0aW9uKFksWCl7Y29uc3QgVT10aGlzLl9iYXNlU3RhdGU7bGV0IHE9bnVsbCxlZT0hMTtyZXR1cm4gT2JqZWN0LmtleXMoVS5jaG9pY2UpLnNvbWUoZnVuY3Rpb24odGUpe2NvbnN0IG9lPVkuc2F2ZSgpLHNlPVUuY2hvaWNlW3RlXTt0cnl7Y29u'@; put 'c3QgaGU9c2UuX2RlY29kZShZLFgpO2lmKFkuaXNFcnJvcihoZSkpcmV0dXJuITE7cT17dHlwZTp0ZSx2YWx1ZTpoZX0sZWU9ITB9Y2F0Y2h7cmV0dXJuIFkucmVzdG9yZShvZSksITF9cmV0dXJuITB9LHRoaXMpLGVlP3E6WS5lcnJvcigiQ2hvaWNlIG5vdCBtYXRjaGVkIil9LFYucHJvdG90'@; put 'eXBlLl9jcmVhdGVFbmNvZGVyQnVmZmVyPWZ1bmN0aW9uKFkpe3JldHVybiBuZXcgSyhZLHRoaXMucmVwb3J0ZXIpfSxWLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKFksWCxVKXtjb25zdCBxPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsIT09cS5kZWZhdWx0JiZxLmRlZmF1bHQ9PT1ZKXJl'@; put 'dHVybjtjb25zdCBlZT10aGlzLl9lbmNvZGVWYWx1ZShZLFgsVSk7cmV0dXJuIHZvaWQgMD09PWVlfHx0aGlzLl9za2lwRGVmYXVsdChlZSxYLFUpP3ZvaWQgMDplZX0sVi5wcm90b3R5cGUuX2VuY29kZVZhbHVlPWZ1bmN0aW9uKFksWCxVKXtjb25zdCBxPXRoaXMuX2Jhc2VTdGF0ZTtpZihu'@; put 'dWxsPT09cS5wYXJlbnQpcmV0dXJuIHEuY2hpbGRyZW5bMF0uX2VuY29kZShZLFh8fG5ldyB6KTtsZXQgZWU9bnVsbDtpZih0aGlzLnJlcG9ydGVyPVgscS5vcHRpb25hbCYmdm9pZCAwPT09WSl7aWYobnVsbD09PXEuZGVmYXVsdClyZXR1cm47WT1xLmRlZmF1bHR9bGV0IHRlPW51bGwsb2U9'@; put 'ITE7aWYocS5hbnkpZWU9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihZKTtlbHNlIGlmKHEuY2hvaWNlKWVlPXRoaXMuX2VuY29kZUNob2ljZShZLFgpO2Vsc2UgaWYocS5jb250YWlucyl0ZT10aGlzLl9nZXRVc2UocS5jb250YWlucyxVKS5fZW5jb2RlKFksWCksb2U9ITA7ZWxzZSBpZihx'@; put 'LmNoaWxkcmVuKXRlPXEuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKHNlKXtpZigibnVsbF8iPT09c2UuX2Jhc2VTdGF0ZS50YWcpcmV0dXJuIHNlLl9lbmNvZGUobnVsbCxYLFkpO2lmKG51bGw9PT1zZS5fYmFzZVN0YXRlLmtleSlyZXR1cm4gWC5lcnJvcigiQ2hpbGQgc2hvdWxkIGhhdmUgYSBr'@; put 'ZXkiKTtjb25zdCBoZT1YLmVudGVyS2V5KHNlLl9iYXNlU3RhdGUua2V5KTtpZigib2JqZWN0IiE9dHlwZW9mIFkpcmV0dXJuIFguZXJyb3IoIkNoaWxkIGV4cGVjdGVkLCBidXQgaW5wdXQgaXMgbm90IG9iamVjdCIpO2NvbnN0IHVlPXNlLl9lbmNvZGUoWVtzZS5fYmFzZVN0YXRlLmtleV0s'@; put 'WCxZKTtyZXR1cm4gWC5sZWF2ZUtleShoZSksdWV9LHRoaXMpLmZpbHRlcihmdW5jdGlvbihzZSl7cmV0dXJuIHNlfSksdGU9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcih0ZSk7ZWxzZSBpZigic2Vxb2YiPT09cS50YWd8fCJzZXRvZiI9PT1xLnRhZyl7aWYoIXEuYXJnc3x8MSE9PXEuYXJn'@; put 'cy5sZW5ndGgpcmV0dXJuIFguZXJyb3IoIlRvbyBtYW55IGFyZ3MgZm9yIDogIitxLnRhZyk7aWYoIUFycmF5LmlzQXJyYXkoWSkpcmV0dXJuIFguZXJyb3IoInNlcW9mL3NldG9mLCBidXQgZGF0YSBpcyBub3QgQXJyYXkiKTtjb25zdCBzZT10aGlzLmNsb25lKCk7c2UuX2Jhc2VTdGF0ZS5p'@; put 'bXBsaWNpdD1udWxsLHRlPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWS5tYXAoZnVuY3Rpb24oaGUpe3JldHVybiB0aGlzLl9nZXRVc2UodGhpcy5fYmFzZVN0YXRlLmFyZ3NbMF0sWSkuX2VuY29kZShoZSxYKX0sc2UpKX1lbHNlIG51bGwhPT1xLnVzZT9lZT10aGlzLl9nZXRVc2UocS51'@; put 'c2UsVSkuX2VuY29kZShZLFgpOih0ZT10aGlzLl9lbmNvZGVQcmltaXRpdmUocS50YWcsWSksb2U9ITApO2lmKCFxLmFueSYmbnVsbD09PXEuY2hvaWNlKXtjb25zdCBzZT1udWxsIT09cS5pbXBsaWNpdD9xLmltcGxpY2l0OnEudGFnLGhlPW51bGw9PT1xLmltcGxpY2l0PyJ1bml2ZXJzYWwi'@; put 'OiJjb250ZXh0IjtudWxsPT09c2U/bnVsbD09PXEudXNlJiZYLmVycm9yKCJUYWcgY291bGQgYmUgb21pdHRlZCBvbmx5IGZvciAudXNlKCkiKTpudWxsPT09cS51c2UmJihlZT10aGlzLl9lbmNvZGVDb21wb3NpdGUoc2Usb2UsaGUsdGUpKX1yZXR1cm4gbnVsbCE9PXEuZXhwbGljaXQmJihl'@; put 'ZT10aGlzLl9lbmNvZGVDb21wb3NpdGUocS5leHBsaWNpdCwhMSwiY29udGV4dCIsZWUpKSxlZX0sVi5wcm90b3R5cGUuX2VuY29kZUNob2ljZT1mdW5jdGlvbihZLFgpe2NvbnN0IFU9dGhpcy5fYmFzZVN0YXRlLHE9VS5jaG9pY2VbWS50eXBlXTtyZXR1cm4gcXx8ayghMSxZLnR5cGUrIiBu'@; put 'b3QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhVLmNob2ljZSkpKSxxLl9lbmNvZGUoWS52YWx1ZSxYKX0sVi5wcm90b3R5cGUuX2VuY29kZVByaW1pdGl2ZT1mdW5jdGlvbihZLFgpe2NvbnN0IFU9dGhpcy5fYmFzZVN0YXRlO2lmKC9zdHIkLy50ZXN0KFkpKXJldHVy'@; put 'biB0aGlzLl9lbmNvZGVTdHIoWCxZKTtpZigib2JqaWQiPT09WSYmVS5hcmdzKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChYLFUucmV2ZXJzZUFyZ3NbMF0sVS5hcmdzWzFdKTtpZigib2JqaWQiPT09WSlyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoWCxudWxsLG51bGwpO2lmKCJnZW50aW1l'@; put 'Ij09PVl8fCJ1dGN0aW1lIj09PVkpcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUoWCxZKTtpZigibnVsbF8iPT09WSlyZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO2lmKCJpbnQiPT09WXx8ImVudW0iPT09WSlyZXR1cm4gdGhpcy5fZW5jb2RlSW50KFgsVS5hcmdzJiZVLnJldmVyc2VBcmdzWzBd'@; put 'KTtpZigiYm9vbCI9PT1ZKXJldHVybiB0aGlzLl9lbmNvZGVCb29sKFgpO2lmKCJvYmpEZXNjIj09PVkpcmV0dXJuIHRoaXMuX2VuY29kZVN0cihYLFkpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdGFnOiAiK1kpfSxWLnByb3RvdHlwZS5faXNOdW1zdHI9ZnVuY3Rpb24oWSl7cmV0'@; put 'dXJuL15bMC05IF0qJC8udGVzdChZKX0sVi5wcm90b3R5cGUuX2lzUHJpbnRzdHI9ZnVuY3Rpb24oWSl7cmV0dXJuL15bQS1aYS16MC05ICcoKSssLS4vOj0/XSokLy50ZXN0KFkpfX0sODQ2NTooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig1NzE3KTtmdW5jdGlvbiBLKGspe3Ro'@; put 'aXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczprfHx7fSxlcnJvcnM6W119fWZ1bmN0aW9uIEkoayxFKXt0aGlzLnBhdGg9ayx0aGlzLnJldGhyb3coRSl9Ty5iPUssSy5wcm90b3R5cGUuaXNFcnJvcj1mdW5jdGlvbihrKXtyZXR1cm4gayBpbnN0YW5jZW9mIEl9'@; put 'LEsucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24oKXtjb25zdCBrPXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJue29iajprLm9iaixwYXRoTGVuOmsucGF0aC5sZW5ndGh9fSxLLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKGspe2NvbnN0IEU9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtFLm9iaj1r'@; put 'Lm9iaixFLnBhdGg9RS5wYXRoLnNsaWNlKDAsay5wYXRoTGVuKX0sSy5wcm90b3R5cGUuZW50ZXJLZXk9ZnVuY3Rpb24oayl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKGspfSxLLnByb3RvdHlwZS5leGl0S2V5PWZ1bmN0aW9uKGspe2NvbnN0IEU9dGhpcy5fcmVwb3J0'@; put 'ZXJTdGF0ZTtFLnBhdGg9RS5wYXRoLnNsaWNlKDAsay0xKX0sSy5wcm90b3R5cGUubGVhdmVLZXk9ZnVuY3Rpb24oayxFLGope2NvbnN0IFY9dGhpcy5fcmVwb3J0ZXJTdGF0ZTt0aGlzLmV4aXRLZXkoayksbnVsbCE9PVYub2JqJiYoVi5vYmpbRV09ail9LEsucHJvdG90eXBlLnBhdGg9ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVwb3J0ZXJTdGF0ZS5wYXRoLmpvaW4oIi8iKX0sSy5wcm90b3R5cGUuZW50ZXJPYmplY3Q9ZnVuY3Rpb24oKXtjb25zdCBrPXRoaXMuX3JlcG9ydGVyU3RhdGUsRT1rLm9iajtyZXR1cm4gay5vYmo9e30sRX0sSy5wcm90b3R5cGUubGVhdmVPYmplY3Q9'@; put 'ZnVuY3Rpb24oayl7Y29uc3QgRT10aGlzLl9yZXBvcnRlclN0YXRlLGo9RS5vYmo7cmV0dXJuIEUub2JqPWssan0sSy5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oayl7bGV0IEU7Y29uc3Qgaj10aGlzLl9yZXBvcnRlclN0YXRlLFY9ayBpbnN0YW5jZW9mIEk7aWYoRT1WP2s6bmV3IEkoai5w'@; put 'YXRoLm1hcChmdW5jdGlvbihCKXtyZXR1cm4iWyIrSlNPTi5zdHJpbmdpZnkoQikrIl0ifSkuam9pbigiIiksay5tZXNzYWdlfHxrLGsuc3RhY2spLCFqLm9wdGlvbnMucGFydGlhbCl0aHJvdyBFO3JldHVybiBWfHxqLmVycm9ycy5wdXNoKEUpLEV9LEsucHJvdG90eXBlLndyYXBSZXN1bHQ9'@; put 'ZnVuY3Rpb24oayl7Y29uc3QgRT10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybiBFLm9wdGlvbnMucGFydGlhbD97cmVzdWx0OnRoaXMuaXNFcnJvcihrKT9udWxsOmssZXJyb3JzOkUuZXJyb3JzfTprfSx6KEksRXJyb3IpLEkucHJvdG90eXBlLnJldGhyb3c9ZnVuY3Rpb24oayl7aWYodGhp'@; put 'cy5tZXNzYWdlPWsrIiBhdDogIisodGhpcy5wYXRofHwiKHNoYWxsb3cpIiksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsSSksIXRoaXMuc3RhY2spdHJ5e3Rocm93IG5ldyBFcnJvcih0aGlzLm1lc3NhZ2UpfWNhdGNoKEUpe3RoaXMuc3Rh'@; put 'Y2s9RS5zdGFja31yZXR1cm4gdGhpc319LDE2MDooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBSKHope2NvbnN0IEs9e307cmV0dXJuIE9iamVjdC5rZXlzKHopLmZvckVhY2goZnVuY3Rpb24oSSl7KDB8SSk9PUkmJihJfD0wKSxLW3pbSV1dPUl9KSxLfU8udGFnQ2xhc3M9ezA6InVu'@; put 'aXZlcnNhbCIsMToiYXBwbGljYXRpb24iLDI6ImNvbnRleHQiLDM6InByaXZhdGUifSxPLnRhZ0NsYXNzQnlOYW1lPVIoTy50YWdDbGFzcyksTy50YWc9ezA6ImVuZCIsMToiYm9vbCIsMjoiaW50IiwzOiJiaXRzdHIiLDQ6Im9jdHN0ciIsNToibnVsbF8iLDY6Im9iamlkIiw3OiJvYmpEZXNj'@; put 'Iiw4OiJleHRlcm5hbCIsOToicmVhbCIsMTA6ImVudW0iLDExOiJlbWJlZCIsMTI6InV0ZjhzdHIiLDEzOiJyZWxhdGl2ZU9pZCIsMTY6InNlcSIsMTc6InNldCIsMTg6Im51bXN0ciIsMTk6InByaW50c3RyIiwyMDoidDYxc3RyIiwyMToidmlkZW9zdHIiLDIyOiJpYTVzdHIiLDIzOiJ1dGN0'@; put 'aW1lIiwyNDoiZ2VudGltZSIsMjU6ImdyYXBoc3RyIiwyNjoiaXNvNjQ2c3RyIiwyNzoiZ2Vuc3RyIiwyODoidW5pc3RyIiwyOToiY2hhcnN0ciIsMzA6ImJtcHN0ciJ9LE8udGFnQnlOYW1lPVIoTy50YWcpfSw2ODI2OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1PO3ouX3JldmVy'@; put 'c2U9ZnVuY3Rpb24oSyl7Y29uc3QgST17fTtyZXR1cm4gT2JqZWN0LmtleXMoSykuZm9yRWFjaChmdW5jdGlvbihrKXsoMHxrKT09ayYmKGt8PTApLElbS1trXV09a30pLEl9LHouZGVyPVIoMTYwKX0sMTY3MTooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig1NzE3KSxLPVIoNDU5'@; put 'MCksST1SKDY2MjUpLkMsaz1SKDE5NDkpLEU9UigxNjApO2Z1bmN0aW9uIGooWCl7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1lPVgubmFtZSx0aGlzLmVudGl0eT1YLHRoaXMudHJlZT1uZXcgVix0aGlzLnRyZWUuX2luaXQoWC5ib2R5KX1mdW5jdGlvbiBWKFgpe2suY2FsbCh0aGlzLCJkZXIi'@; put 'LFgpfWZ1bmN0aW9uIEIoWCxVKXtsZXQgcT1YLnJlYWRVSW50OChVKTtpZihYLmlzRXJyb3IocSkpcmV0dXJuIHE7Y29uc3QgZWU9RS50YWdDbGFzc1txPj42XSx0ZT0wPT0oMzImcSk7aWYoMzE9PSgzMSZxKSl7bGV0IG9lPXE7Zm9yKHE9MDsxMjg9PSgxMjgmb2UpOyl7aWYob2U9WC5yZWFk'@; put 'VUludDgoVSksWC5pc0Vycm9yKG9lKSlyZXR1cm4gb2U7cTw8PTcscXw9MTI3Jm9lfX1lbHNlIHEmPTMxO3JldHVybntjbHM6ZWUscHJpbWl0aXZlOnRlLHRhZzpxLHRhZ1N0cjpFLnRhZ1txXX19ZnVuY3Rpb24gWShYLFUscSl7bGV0IGVlPVgucmVhZFVJbnQ4KHEpO2lmKFguaXNFcnJvcihl'@; put 'ZSkpcmV0dXJuIGVlO2lmKCFVJiYxMjg9PT1lZSlyZXR1cm4gbnVsbDtpZighKDEyOCZlZSkpcmV0dXJuIGVlO2NvbnN0IHRlPTEyNyZlZTtpZih0ZT40KXJldHVybiBYLmVycm9yKCJsZW5ndGggb2N0ZWN0IGlzIHRvbyBsb25nIik7ZWU9MDtmb3IobGV0IG9lPTA7b2U8dGU7b2UrKyl7ZWU8'@; put 'PD04O2NvbnN0IHNlPVgucmVhZFVJbnQ4KHEpO2lmKFguaXNFcnJvcihzZSkpcmV0dXJuIHNlO2VlfD1zZX1yZXR1cm4gZWV9TS5leHBvcnRzPWosai5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKFgsVSl7cmV0dXJuIEkuaXNEZWNvZGVyQnVmZmVyKFgpfHwoWD1uZXcgSShYLFUpKSx0aGlz'@; put 'LnRyZWUuX2RlY29kZShYLFUpfSx6KFYsayksVi5wcm90b3R5cGUuX3BlZWtUYWc9ZnVuY3Rpb24oWCxVLHEpe2lmKFguaXNFbXB0eSgpKXJldHVybiExO2NvbnN0IGVlPVguc2F2ZSgpLHRlPUIoWCwnRmFpbGVkIHRvIHBlZWsgdGFnOiAiJytVKyciJyk7cmV0dXJuIFguaXNFcnJvcih0ZSk/'@; put 'dGU6KFgucmVzdG9yZShlZSksdGUudGFnPT09VXx8dGUudGFnU3RyPT09VXx8dGUudGFnU3RyKyJvZiI9PT1VfHxxKX0sVi5wcm90b3R5cGUuX2RlY29kZVRhZz1mdW5jdGlvbihYLFUscSl7Y29uc3QgZWU9QihYLCdGYWlsZWQgdG8gZGVjb2RlIHRhZyBvZiAiJytVKyciJyk7aWYoWC5pc0Vy'@; put 'cm9yKGVlKSlyZXR1cm4gZWU7bGV0IHRlPVkoWCxlZS5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mICInK1UrJyInKTtpZihYLmlzRXJyb3IodGUpKXJldHVybiB0ZTtpZighcSYmZWUudGFnIT09VSYmZWUudGFnU3RyIT09VSYmZWUudGFnU3RyKyJvZiIhPT1VKXJldHVybiBY'@; put 'LmVycm9yKCdGYWlsZWQgdG8gbWF0Y2ggdGFnOiAiJytVKyciJyk7aWYoZWUucHJpbWl0aXZlfHxudWxsIT09dGUpcmV0dXJuIFguc2tpcCh0ZSwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK1UrJyInKTtjb25zdCBvZT1YLnNhdmUoKSxzZT10aGlzLl9za2lwVW50aWxFbmQoWCwnRmFp'@; put 'bGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gWC5pc0Vycm9yKHNlKT9zZToodGU9WC5vZmZzZXQtb2Uub2Zmc2V0LFgucmVzdG9yZShvZSksWC5za2lwKHRlLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrVSsnIicpKX0sVi5w'@; put 'cm90b3R5cGUuX3NraXBVbnRpbEVuZD1mdW5jdGlvbihYLFUpe2Zvcig7Oyl7Y29uc3QgcT1CKFgsVSk7aWYoWC5pc0Vycm9yKHEpKXJldHVybiBxO2NvbnN0IGVlPVkoWCxxLnByaW1pdGl2ZSxVKTtpZihYLmlzRXJyb3IoZWUpKXJldHVybiBlZTtsZXQgdGU7aWYodGU9cS5wcmltaXRpdmV8'@; put 'fG51bGwhPT1lZT9YLnNraXAoZWUpOnRoaXMuX3NraXBVbnRpbEVuZChYLFUpLFguaXNFcnJvcih0ZSkpcmV0dXJuIHRlO2lmKCJlbmQiPT09cS50YWdTdHIpYnJlYWt9fSxWLnByb3RvdHlwZS5fZGVjb2RlTGlzdD1mdW5jdGlvbihYLFUscSxlZSl7Y29uc3QgdGU9W107Zm9yKDshWC5pc0Vt'@; put 'cHR5KCk7KXtjb25zdCBvZT10aGlzLl9wZWVrVGFnKFgsImVuZCIpO2lmKFguaXNFcnJvcihvZSkpcmV0dXJuIG9lO2NvbnN0IHNlPXEuZGVjb2RlKFgsImRlciIsZWUpO2lmKFguaXNFcnJvcihzZSkmJm9lKWJyZWFrO3RlLnB1c2goc2UpfXJldHVybiB0ZX0sVi5wcm90b3R5cGUuX2RlY29k'@; put 'ZVN0cj1mdW5jdGlvbihYLFUpe2lmKCJiaXRzdHIiPT09VSl7Y29uc3QgcT1YLnJlYWRVSW50OCgpO3JldHVybiBYLmlzRXJyb3IocSk/cTp7dW51c2VkOnEsZGF0YTpYLnJhdygpfX1pZigiYm1wc3RyIj09PVUpe2NvbnN0IHE9WC5yYXcoKTtpZihxLmxlbmd0aCUyPT0xKXJldHVybiBYLmVy'@; put 'cm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCIpO2xldCBlZT0iIjtmb3IobGV0IHRlPTA7dGU8cS5sZW5ndGgvMjt0ZSsrKWVlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHEucmVhZFVJbnQxNkJFKDIqdGUpKTtyZXR1cm4gZWV9aWYoIm51bXN0ciI9'@; put 'PT1VKXtjb25zdCBxPVgucmF3KCkudG9TdHJpbmcoImFzY2lpIik7cmV0dXJuIHRoaXMuX2lzTnVtc3RyKHEpP3E6WC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzIil9aWYoIm9jdHN0ciI9PT1VfHwib2JqRGVzYyI9PT1VKXJl'@; put 'dHVybiBYLnJhdygpO2lmKCJwcmludHN0ciI9PT1VKXtjb25zdCBxPVgucmF3KCkudG9TdHJpbmcoImFzY2lpIik7cmV0dXJuIHRoaXMuX2lzUHJpbnRzdHIocSk/cTpYLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfXJl'@; put 'dHVybi9zdHIkLy50ZXN0KFUpP1gucmF3KCkudG9TdHJpbmcoKTpYLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitVKyIgdW5zdXBwb3J0ZWQiKX0sVi5wcm90b3R5cGUuX2RlY29kZU9iamlkPWZ1bmN0aW9uKFgsVSxxKXtsZXQgZWU7Y29uc3QgdGU9W107bGV0IG9lPTAsc2U9'@; put 'MDtmb3IoOyFYLmlzRW1wdHkoKTspc2U9WC5yZWFkVUludDgoKSxvZTw8PTcsb2V8PTEyNyZzZSwhKDEyOCZzZSkmJih0ZS5wdXNoKG9lKSxvZT0wKTtpZigxMjgmc2UmJnRlLnB1c2gob2UpLGVlPXE/dGU6W3RlWzBdLzQwfDAsdGVbMF0lNDBdLmNvbmNhdCh0ZS5zbGljZSgxKSksVSl7bGV0'@; put 'IGNlPVVbZWUuam9pbigiICIpXTt2b2lkIDA9PT1jZSYmKGNlPVVbZWUuam9pbigiLiIpXSksdm9pZCAwIT09Y2UmJihlZT1jZSl9cmV0dXJuIGVlfSxWLnByb3RvdHlwZS5fZGVjb2RlVGltZT1mdW5jdGlvbihYLFUpe2NvbnN0IHE9WC5yYXcoKS50b1N0cmluZygpO2xldCBlZSx0ZSxvZSxz'@; put 'ZSxoZSx1ZTtpZigiZ2VudGltZSI9PT1VKWVlPTB8cS5zbGljZSgwLDQpLHRlPTB8cS5zbGljZSg0LDYpLG9lPTB8cS5zbGljZSg2LDgpLHNlPTB8cS5zbGljZSg4LDEwKSxoZT0wfHEuc2xpY2UoMTAsMTIpLHVlPTB8cS5zbGljZSgxMiwxNCk7ZWxzZXtpZigidXRjdGltZSIhPT1VKXJldHVy'@; put 'biBYLmVycm9yKCJEZWNvZGluZyAiK1UrIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7ZWU9MHxxLnNsaWNlKDAsMiksdGU9MHxxLnNsaWNlKDIsNCksb2U9MHxxLnNsaWNlKDQsNiksc2U9MHxxLnNsaWNlKDYsOCksaGU9MHxxLnNsaWNlKDgsMTApLHVlPTB8cS5zbGljZSgxMCwxMiks'@; put 'ZWU9ZWU8NzA/MmUzK2VlOjE5MDArZWV9cmV0dXJuIERhdGUuVVRDKGVlLHRlLTEsb2Usc2UsaGUsdWUsMCl9LFYucHJvdG90eXBlLl9kZWNvZGVOdWxsPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LFYucHJvdG90eXBlLl9kZWNvZGVCb29sPWZ1bmN0aW9uKFgpe2NvbnN0IFU9WC5yZWFkVUlu'@; put 'dDgoKTtyZXR1cm4gWC5pc0Vycm9yKFUpP1U6MCE9PVV9LFYucHJvdG90eXBlLl9kZWNvZGVJbnQ9ZnVuY3Rpb24oWCxVKXtjb25zdCBxPVgucmF3KCk7bGV0IGVlPW5ldyBLKHEpO3JldHVybiBVJiYoZWU9VVtlZS50b1N0cmluZygxMCldfHxlZSksZWV9LFYucHJvdG90eXBlLl91c2U9ZnVu'@; put 'Y3Rpb24oWCxVKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgWCYmKFg9WChVKSksWC5fZ2V0RGVjb2RlcigiZGVyIikudHJlZX19LDgzMDc6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PU87ei5kZXI9UigxNjcxKSx6LnBlbT1SKDk2MzEpfSw5NjMxOihNLE8sUik9PnsidXNlIHN0'@; put 'cmljdCI7Y29uc3Qgej1SKDU3MTcpLEs9UigyMzk5KS5CdWZmZXIsST1SKDE2NzEpO2Z1bmN0aW9uIGsoRSl7SS5jYWxsKHRoaXMsRSksdGhpcy5lbmM9InBlbSJ9eihrLEkpLE0uZXhwb3J0cz1rLGsucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihFLGope2NvbnN0IFY9RS50b1N0cmluZygp'@; put 'LnNwbGl0KC9bXHJcbl0rL2cpLEI9ai5sYWJlbC50b1VwcGVyQ2FzZSgpLFk9L14tLS0tLShCRUdJTnxFTkQpIChbXi1dKyktLS0tLSQvO2xldCBYPS0xLFU9LTE7Zm9yKGxldCB0ZT0wO3RlPFYubGVuZ3RoO3RlKyspe2NvbnN0IG9lPVZbdGVdLm1hdGNoKFkpO2lmKG51bGwhPT1vZSYmb2Vb'@; put 'Ml09PT1CKXtpZigtMSE9PVgpe2lmKCJFTkQiIT09b2VbMV0pYnJlYWs7VT10ZTticmVha31pZigiQkVHSU4iIT09b2VbMV0pYnJlYWs7WD10ZX19aWYoLTE9PT1YfHwtMT09PVUpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK0IpO2NvbnN0IHE9Vi5zbGlj'@; put 'ZShYKzEsVSkuam9pbigiIik7cS5yZXBsYWNlKC9bXmEtejAtOSsvPV0rL2dpLCIiKTtjb25zdCBlZT1LLmZyb20ocSwiYmFzZTY0Iik7cmV0dXJuIEkucHJvdG90eXBlLmRlY29kZS5jYWxsKHRoaXMsZWUsail9fSw2OTg0OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDU3MTcp'@; put 'LEs9UigyMzk5KS5CdWZmZXIsST1SKDE5NDkpLGs9UigxNjApO2Z1bmN0aW9uIEUoQil7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1lPUIubmFtZSx0aGlzLmVudGl0eT1CLHRoaXMudHJlZT1uZXcgaix0aGlzLnRyZWUuX2luaXQoQi5ib2R5KX1mdW5jdGlvbiBqKEIpe0kuY2FsbCh0aGlzLCJk'@; put 'ZXIiLEIpfWZ1bmN0aW9uIFYoQil7cmV0dXJuIEI8MTA/IjAiK0I6Qn1NLmV4cG9ydHM9RSxFLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oQixZKXtyZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUoQixZKS5qb2luKCl9LHooaixJKSxqLnByb3RvdHlwZS5fZW5jb2RlQ29tcG9zaXRlPWZ1bmN0'@; put 'aW9uKEIsWSxYLFUpe2NvbnN0IHE9ZnVuY3Rpb24ob2Usc2UsaGUsdWUpe2xldCBjZTtpZigic2Vxb2YiPT09b2U/b2U9InNlcSI6InNldG9mIj09PW9lJiYob2U9InNldCIpLGsudGFnQnlOYW1lLmhhc093blByb3BlcnR5KG9lKSljZT1rLnRhZ0J5TmFtZVtvZV07ZWxzZXtpZigibnVtYmVy'@; put 'IiE9dHlwZW9mIG9lfHwoMHxvZSkhPT1vZSlyZXR1cm4gdWUuZXJyb3IoIlVua25vd24gdGFnOiAiK29lKTtjZT1vZX1yZXR1cm4gY2U+PTMxP3VlLmVycm9yKCJNdWx0aS1vY3RldCB0YWcgZW5jb2RpbmcgdW5zdXBwb3J0ZWQiKTooc2V8fChjZXw9MzIpLGNlfD1rLnRhZ0NsYXNzQnlOYW1l'@; put 'W2hlfHwidW5pdmVyc2FsIl08PDYsY2UpfShCLFksWCx0aGlzLnJlcG9ydGVyKTtpZihVLmxlbmd0aDwxMjgpe2NvbnN0IG9lPUsuYWxsb2MoMik7cmV0dXJuIG9lWzBdPXEsb2VbMV09VS5sZW5ndGgsdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbb2UsVV0pfWxldCBlZT0xO2ZvcihsZXQg'@; put 'b2U9VS5sZW5ndGg7b2U+PTI1NjtvZT4+PTgpZWUrKztjb25zdCB0ZT1LLmFsbG9jKDIrZWUpO3RlWzBdPXEsdGVbMV09MTI4fGVlO2ZvcihsZXQgb2U9MStlZSxzZT1VLmxlbmd0aDtzZT4wO29lLS0sc2U+Pj04KXRlW29lXT0yNTUmc2U7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZm'@; put 'ZXIoW3RlLFVdKX0sai5wcm90b3R5cGUuX2VuY29kZVN0cj1mdW5jdGlvbihCLFkpe2lmKCJiaXRzdHIiPT09WSlyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMHxCLnVudXNlZCxCLmRhdGFdKTtpZigiYm1wc3RyIj09PVkpe2NvbnN0IFg9Sy5hbGxvYygyKkIubGVuZ3RoKTtm'@; put 'b3IobGV0IFU9MDtVPEIubGVuZ3RoO1UrKylYLndyaXRlVUludDE2QkUoQi5jaGFyQ29kZUF0KFUpLDIqVSk7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWCl9cmV0dXJuIm51bXN0ciI9PT1ZP3RoaXMuX2lzTnVtc3RyKEIpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoQik6'@; put 'dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0ciBzdXBwb3J0cyBvbmx5IGRpZ2l0cyBhbmQgc3BhY2UiKToicHJpbnRzdHIiPT09WT90aGlzLl9pc1ByaW50c3RyKEIpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoQik6dGhpcy5yZXBvcnRlci5l'@; put 'cnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzIG9ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmlndGggcGFyZW50aGVzaXMsIHBsdXMgc2lnbiwgY29tbWEsIGh5'@; put 'cGhlbiwgZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sIHF1ZXN0aW9uIG1hcmsiKTovc3RyJC8udGVzdChZKXx8Im9iakRlc2MiPT09WT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEIpOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiAiK1krIiB1'@; put 'bnN1cHBvcnRlZCIpfSxqLnByb3RvdHlwZS5fZW5jb2RlT2JqaWQ9ZnVuY3Rpb24oQixZLFgpe2lmKCJzdHJpbmciPT10eXBlb2YgQil7aWYoIVkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoInN0cmluZyBvYmppZCBnaXZlbiwgYnV0IG5vIHZhbHVlcyBtYXAgZm91bmQiKTtpZighWS5o'@; put 'YXNPd25Qcm9wZXJ0eShCKSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigib2JqaWQgbm90IGZvdW5kIGluIHZhbHVlcyBtYXAiKTtCPVlbQl0uc3BsaXQoL1tccy5dKy9nKTtmb3IobGV0IHRlPTA7dGU8Qi5sZW5ndGg7dGUrKylCW3RlXXw9MH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoQikp'@; put 'e0I9Qi5zbGljZSgpO2ZvcihsZXQgdGU9MDt0ZTxCLmxlbmd0aDt0ZSsrKUJbdGVdfD0wfWlmKCFBcnJheS5pc0FycmF5KEIpKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJvYmppZCgpIHNob3VsZCBiZSBlaXRoZXIgYXJyYXkgb3Igc3RyaW5nLCBnb3Q6ICIrSlNPTi5zdHJpbmdpZnko'@; put 'QikpO2lmKCFYKXtpZihCWzFdPj00MClyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU2Vjb25kIG9iamlkIGlkZW50aWZpZXIgT09CIik7Qi5zcGxpY2UoMCwyLDQwKkJbMF0rQlsxXSl9bGV0IFU9MDtmb3IobGV0IHRlPTA7dGU8Qi5sZW5ndGg7dGUrKyl7bGV0IG9lPUJbdGVdO2ZvcihV'@; put 'Kys7b2U+PTEyODtvZT4+PTcpVSsrfWNvbnN0IHE9Sy5hbGxvYyhVKTtsZXQgZWU9cS5sZW5ndGgtMTtmb3IobGV0IHRlPUIubGVuZ3RoLTE7dGU+PTA7dGUtLSl7bGV0IG9lPUJbdGVdO2ZvcihxW2VlLS1dPTEyNyZvZTsob2U+Pj03KT4wOylxW2VlLS1dPTEyOHwxMjcmb2V9cmV0dXJuIHRo'@; put 'aXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIocSl9LGoucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKEIsWSl7bGV0IFg7Y29uc3QgVT1uZXcgRGF0ZShCKTtyZXR1cm4iZ2VudGltZSI9PT1ZP1g9W1YoVS5nZXRVVENGdWxsWWVhcigpKSxWKFUuZ2V0VVRDTW9udGgoKSsxKSxWKFUuZ2V0'@; put 'VVRDRGF0ZSgpKSxWKFUuZ2V0VVRDSG91cnMoKSksVihVLmdldFVUQ01pbnV0ZXMoKSksVihVLmdldFVUQ1NlY29uZHMoKSksIloiXS5qb2luKCIiKToidXRjdGltZSI9PT1ZP1g9W1YoVS5nZXRVVENGdWxsWWVhcigpJTEwMCksVihVLmdldFVUQ01vbnRoKCkrMSksVihVLmdldFVUQ0RhdGUo'@; put 'KSksVihVLmdldFVUQ0hvdXJzKCkpLFYoVS5nZXRVVENNaW51dGVzKCkpLFYoVS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2RpbmcgIitZKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpLHRoaXMuX2VuY29kZVN0cihYLCJvY3Rz'@; put 'dHIiKX0sai5wcm90b3R5cGUuX2VuY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcigiIil9LGoucHJvdG90eXBlLl9lbmNvZGVJbnQ9ZnVuY3Rpb24oQixZKXtpZigic3RyaW5nIj09dHlwZW9mIEIpe2lmKCFZKXJldHVybiB0aGlzLnJlcG9ydGVy'@; put 'LmVycm9yKCJTdHJpbmcgaW50IG9yIGVudW0gZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIik7aWYoIVkuaGFzT3duUHJvcGVydHkoQikpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlZhbHVlcyBtYXAgZG9lc24ndCBjb250YWluOiAiK0pTT04uc3RyaW5naWZ5KEIpKTtCPVlbQl19aWYo'@; put 'Im51bWJlciIhPXR5cGVvZiBCJiYhSy5pc0J1ZmZlcihCKSl7Y29uc3QgcT1CLnRvQXJyYXkoKTshQi5zaWduJiYxMjgmcVswXSYmcS51bnNoaWZ0KDApLEI9Sy5mcm9tKHEpfWlmKEsuaXNCdWZmZXIoQikpe2xldCBxPUIubGVuZ3RoOzA9PT1CLmxlbmd0aCYmcSsrO2NvbnN0IGVlPUsuYWxs'@; put 'b2MocSk7cmV0dXJuIEIuY29weShlZSksMD09PUIubGVuZ3RoJiYoZWVbMF09MCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihlZSl9aWYoQjwxMjgpcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoQik7aWYoQjwyNTYpcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIo'@; put 'WzAsQl0pO2xldCBYPTE7Zm9yKGxldCBxPUI7cT49MjU2O3E+Pj04KVgrKztjb25zdCBVPW5ldyBBcnJheShYKTtmb3IobGV0IHE9VS5sZW5ndGgtMTtxPj0wO3EtLSlVW3FdPTI1NSZCLEI+Pj04O3JldHVybiAxMjgmVVswXSYmVS51bnNoaWZ0KDApLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZm'@; put 'ZXIoSy5mcm9tKFUpKX0sai5wcm90b3R5cGUuX2VuY29kZUJvb2w9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoQj8yNTU6MCl9LGoucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24oQixZKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQiYmKEI9QihZKSksQi5f'@; put 'Z2V0RW5jb2RlcigiZGVyIikudHJlZX0sai5wcm90b3R5cGUuX3NraXBEZWZhdWx0PWZ1bmN0aW9uKEIsWSxYKXtjb25zdCBVPXRoaXMuX2Jhc2VTdGF0ZTtsZXQgcTtpZihudWxsPT09VS5kZWZhdWx0KXJldHVybiExO2NvbnN0IGVlPUIuam9pbigpO2lmKHZvaWQgMD09PVUuZGVmYXVsdEJ1'@; put 'ZmZlciYmKFUuZGVmYXVsdEJ1ZmZlcj10aGlzLl9lbmNvZGVWYWx1ZShVLmRlZmF1bHQsWSxYKS5qb2luKCkpLGVlLmxlbmd0aCE9PVUuZGVmYXVsdEJ1ZmZlci5sZW5ndGgpcmV0dXJuITE7Zm9yKHE9MDtxPGVlLmxlbmd0aDtxKyspaWYoZWVbcV0hPT1VLmRlZmF1bHRCdWZmZXJbcV0pcmV0'@; put 'dXJuITE7cmV0dXJuITB9fSw2NTc5OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1PO3ouZGVyPVIoNjk4NCksei5wZW09UigyODgzKX0sMjg4MzooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig1NzE3KSxLPVIoNjk4NCk7ZnVuY3Rpb24gSShrKXtLLmNhbGwodGhpcyxr'@; put 'KSx0aGlzLmVuYz0icGVtIn16KEksSyksTS5leHBvcnRzPUksSS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKGssRSl7Y29uc3Qgaj1LLnByb3RvdHlwZS5lbmNvZGUuY2FsbCh0aGlzLGspLnRvU3RyaW5nKCJiYXNlNjQiKSxWPVsiLS0tLS1CRUdJTiAiK0UubGFiZWwrIi0tLS0tIl07Zm9y'@; put 'KGxldCBCPTA7QjxqLmxlbmd0aDtCKz02NClWLnB1c2goai5zbGljZShCLEIrNjQpKTtyZXR1cm4gVi5wdXNoKCItLS0tLUVORCAiK0UubGFiZWwrIi0tLS0tIiksVi5qb2luKCJcbiIpfX0sNDU5MDpmdW5jdGlvbihNLE8sUil7IWZ1bmN0aW9uKHosSyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9u'@; put 'IEkoZyxDKXtpZighZyl0aHJvdyBuZXcgRXJyb3IoQ3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBrKGcsQyl7Zy5zdXBlcl89Qzt2YXIgUz1mdW5jdGlvbigpe307Uy5wcm90b3R5cGU9Qy5wcm90b3R5cGUsZy5wcm90b3R5cGU9bmV3IFMsZy5wcm90b3R5cGUuY29uc3RydWN0b3I9'@; put 'Z31mdW5jdGlvbiBFKGcsQyxTKXtpZihFLmlzQk4oZykpcmV0dXJuIGc7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWcmJigibGUiIT09QyYmImJlIiE9PUN8fChTPUMsQz0xMCksdGhpcy5faW5pdChnfHwwLEN8fDEw'@; put 'LFN8fCJiZSIpKX12YXIgajsib2JqZWN0Ij09dHlwZW9mIHo/ei5leHBvcnRzPUU6Sy5CTj1FLEUuQk49RSxFLndvcmRTaXplPTI2O3RyeXtqPXR5cGVvZiB3aW5kb3c8InUiJiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6Uig5NTApLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rp'@; put 'b24gVihnLEMpe3ZhciBTPWcuY2hhckNvZGVBdChDKTtyZXR1cm4gUz49NjUmJlM8PTcwP1MtNTU6Uz49OTcmJlM8PTEwMj9TLTg3OlMtNDgmMTV9ZnVuY3Rpb24gQihnLEMsUyl7dmFyIHY9VihnLFMpO3JldHVybiBTLTE+PUMmJih2fD1WKGcsUy0xKTw8NCksdn1mdW5jdGlvbiBZKGcsQyxT'@; put 'LHYpe2Zvcih2YXIgcD0wLHc9TWF0aC5taW4oZy5sZW5ndGgsUyksSj1DO0o8dztKKyspe3ZhciBuZT1nLmNoYXJDb2RlQXQoSiktNDg7cCo9dixwKz1uZT49NDk/bmUtNDkrMTA6bmU+PTE3P25lLTE3KzEwOm5lfXJldHVybiBwfUUuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5j'@; put 'ZW9mIEV8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9mIGcmJmcuY29uc3RydWN0b3Iud29yZFNpemU9PT1FLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSxFLm1heD1mdW5jdGlvbihnLEMpe3JldHVybiBnLmNtcChDKT4wP2c6Q30sRS5taW49ZnVuY3Rpb24oZyxDKXtyZXR1'@; put 'cm4gZy5jbXAoQyk8MD9nOkN9LEUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGcsQyxTKXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyxDLFMpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcsQyxTKTsiaGV4Ij09'@; put 'PUMmJihDPTE2KSxJKEM9PT0oMHxDKSYmQz49MiYmQzw9MzYpO3ZhciB2PTA7Ii0iPT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih2KyssdGhpcy5uZWdhdGl2ZT0xKSx2PGcubGVuZ3RoJiYoMTY9PT1DP3RoaXMuX3BhcnNlSGV4KGcsdixTKToodGhpcy5fcGFy'@; put 'c2VCYXNlKGcsQyx2KSwibGUiPT09UyYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLEMsUykpKX0sRS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyxDLFMpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZn'@; put 'XSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEkoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0s'@; put 'dGhpcy5sZW5ndGg9MyksImxlIj09PVMmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxDLFMpfSxFLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcsQyxTKXtpZihJKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVsw'@; put 'XSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKGcubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHY9MDt2PHRoaXMubGVuZ3RoO3YrKyl0aGlzLndvcmRzW3ZdPTA7dmFyIHAsdyxKPTA7aWYoImJlIj09PVMpZm9yKHY9'@; put 'Zy5sZW5ndGgtMSxwPTA7dj49MDt2LT0zKXRoaXMud29yZHNbcF18PSh3PWdbdl18Z1t2LTFdPDw4fGdbdi0yXTw8MTYpPDxKJjY3MTA4ODYzLHRoaXMud29yZHNbcCsxXT13Pj4+MjYtSiY2NzEwODg2MywoSis9MjQpPj0yNiYmKEotPTI2LHArKyk7ZWxzZSBpZigibGUiPT09Uylmb3Iodj0w'@; put 'LHA9MDt2PGcubGVuZ3RoO3YrPTMpdGhpcy53b3Jkc1twXXw9KHc9Z1t2XXxnW3YrMV08PDh8Z1t2KzJdPDwxNik8PEomNjcxMDg4NjMsdGhpcy53b3Jkc1twKzFdPXc+Pj4yNi1KJjY3MTA4ODYzLChKKz0yNCk+PTI2JiYoSi09MjYscCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3Rv'@; put 'dHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyxDLFMpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoZy5sZW5ndGgtQykvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdj0wO3Y8dGhpcy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09MDt2YXIgcCx3PTAsSj0wO2lm'@; put 'KCJiZSI9PT1TKWZvcih2PWcubGVuZ3RoLTE7dj49Qzt2LT0yKXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O2Vsc2UgZm9yKHY9KGcubGVuZ3RoLUMpJTI9PTA/QysxOkM7djxnLmxlbmd0'@; put 'aDt2Kz0yKXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O3RoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLEMsUyl7dGhpcy53b3Jkcz1bMF0sdGhpcy5s'@; put 'ZW5ndGg9MTtmb3IodmFyIHY9MCxwPTE7cDw9NjcxMDg4NjM7cCo9Qyl2Kys7di0tLHA9cC9DfDA7Zm9yKHZhciB3PWcubGVuZ3RoLVMsSj13JXYsbmU9TWF0aC5taW4odyx3LUopK1MsZGU9MCxmZT1TO2ZlPG5lO2ZlKz12KWRlPVkoZyxmZSxmZSt2LEMpLHRoaXMuaW11bG4ocCksdGhpcy53'@; put 'b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1kZTp0aGlzLl9pYWRkbihkZSk7aWYoMCE9PUope3ZhciB4ZT0xO2ZvcihkZT1ZKGcsZmUsZy5sZW5ndGgsQyksZmU9MDtmZTxKO2ZlKyspeGUqPUM7dGhpcy5pbXVsbih4ZSksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlz'@; put 'LndvcmRzWzBdKz1kZTp0aGlzLl9pYWRkbihkZSl9dGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKylnLndvcmRzW0NdPXRoaXMud29yZHNbQ107Zy5sZW5n'@; put 'dGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVkPXRoaXMucmVkfSxFLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyBFKG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sRS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3Ro'@; put 'aXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sRS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3Jt'@; put 'U2lnbigpfSxFLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sRS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6'@; put 'IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWD1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw'@; put 'MDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxVPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUs'@; put 'NSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLHE9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIx'@; put 'NiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2'@; put 'NjE3Nl07ZnVuY3Rpb24gZWUoZyxDLFMpe1MubmVnYXRpdmU9Qy5uZWdhdGl2ZV5nLm5lZ2F0aXZlO3ZhciB2PWcubGVuZ3RoK0MubGVuZ3RofDA7Uy5sZW5ndGg9dix2PXYtMXwwO3ZhciBwPTB8Zy53b3Jkc1swXSx3PTB8Qy53b3Jkc1swXSxKPXAqdyxkZT1KLzY3MTA4ODY0fDA7Uy53b3Jk'@; put 'c1swXT02NzEwODg2MyZKO2Zvcih2YXIgZmU9MTtmZTx2O2ZlKyspe2Zvcih2YXIgeGU9ZGU+Pj4yNixMZT02NzEwODg2MyZkZSxGZT1NYXRoLm1pbihmZSxDLmxlbmd0aC0xKSxPZT1NYXRoLm1heCgwLGZlLWcubGVuZ3RoKzEpO09lPD1GZTtPZSsrKXhlKz0oSj0ocD0wfGcud29yZHNbZmUt'@; put 'T2V8MF0pKih3PTB8Qy53b3Jkc1tPZV0pK0xlKS82NzEwODg2NHwwLExlPTY3MTA4ODYzJko7Uy53b3Jkc1tmZV09MHxMZSxkZT0wfHhlfXJldHVybiAwIT09ZGU/Uy53b3Jkc1tmZV09MHxkZTpTLmxlbmd0aC0tLFMuc3RyaXAoKX1FLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihnLEMp'@; put 'e3ZhciBTO2lmKEM9MHxDfHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe1M9IiI7Zm9yKHZhciB2PTAscD0wLHc9MDt3PHRoaXMubGVuZ3RoO3crKyl7dmFyIEo9dGhpcy53b3Jkc1t3XSxuZT0oMTY3NzcyMTUmKEo8PHZ8cCkpLnRvU3RyaW5nKDE2KTtTPTAhPShwPUo+Pj4yNC12JjE2'@; put 'Nzc3MjE1KXx8dyE9PXRoaXMubGVuZ3RoLTE/WFs2LW5lLmxlbmd0aF0rbmUrUzpuZStTLCh2Kz0yKT49MjYmJih2LT0yNix3LS0pfWZvcigwIT09cCYmKFM9cC50b1N0cmluZygxNikrUyk7Uy5sZW5ndGglQyE9MDspUz0iMCIrUztyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihTPSItIitT'@; put 'KSxTfWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBkZT1VW2ddLGZlPXFbZ107Uz0iIjt2YXIgeGU9dGhpcy5jbG9uZSgpO2Zvcih4ZS5uZWdhdGl2ZT0wOyF4ZS5pc1plcm8oKTspe3ZhciBMZT14ZS5tb2RuKGZlKS50b1N0cmluZyhnKTtTPSh4ZT14ZS5pZGl2bihmZSkpLmlzWmVy'@; put 'bygpP0xlK1M6WFtkZS1MZS5sZW5ndGhdK0xlK1N9Zm9yKHRoaXMuaXNaZXJvKCkmJihTPSIwIitTKTtTLmxlbmd0aCVDIT0wOylTPSIwIitTO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFM9Ii0iK1MpLFN9SSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxFLnBy'@; put 'b3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlz'@; put 'LndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJkkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LEUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sRS5wcm90b3R5'@; put 'cGUudG9CdWZmZXI9ZnVuY3Rpb24oZyxDKXtyZXR1cm4gSSh2b2lkIDAhPT1qKSx0aGlzLnRvQXJyYXlMaWtlKGosZyxDKX0sRS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLEMpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcsQyl9LEUucHJvdG90eXBlLnRvQXJyYXlMaWtl'@; put 'PWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj10aGlzLmJ5dGVMZW5ndGgoKSxwPVN8fE1hdGgubWF4KDEsdik7SSh2PD1wLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksSShwPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgdyxK'@; put 'LG5lPSJsZSI9PT1DLGRlPW5ldyBnKHApLGZlPXRoaXMuY2xvbmUoKTtpZihuZSl7Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4oOCksZGVbSl09dztmb3IoO0o8cDtKKyspZGVbSl09MH1lbHNle2ZvcihKPTA7SjxwLXY7SisrKWRlW0pdPTA7Zm9y'@; put 'KEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4oOCksZGVbcC1KLTFdPXd9cmV0dXJuIGRlfSxFLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciBDPWcs'@; put 'Uz0wO3JldHVybiBDPj00MDk2JiYoUys9MTMsQz4+Pj0xMyksQz49NjQmJihTKz03LEM+Pj49NyksQz49OCYmKFMrPTQsQz4+Pj00KSxDPj0yJiYoUys9MixDPj4+PTIpLFMrQ30sRS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgQz1nLFM9'@; put 'MDtyZXR1cm4hKDgxOTEmQykmJihTKz0xMyxDPj4+PTEzKSwhKDEyNyZDKSYmKFMrPTcsQz4+Pj03KSwhKDE1JkMpJiYoUys9NCxDPj4+PTQpLCEoMyZDKSYmKFMrPTIsQz4+Pj0yKSwhKDEmQykmJlMrKyxTfSxFLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgQz10aGlzLl9j'@; put 'b3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStDfSxFLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAsQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz10'@; put 'aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW0NdKTtpZihnKz1TLDI2IT09UylicmVha31yZXR1cm4gZ30sRS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sRS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGcpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0s'@; put 'RS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LEUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxFLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlz'@; put 'Lm5lZ2F0aXZlXj0xKSx0aGlzfSxFLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIEM9MDtDPGcubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXRoaXMud29yZHNbQ118Zy53b3Jk'@; put 'c1tDXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sRS5wcm90b3R5cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3Ro'@; put 'aXMuY2xvbmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0sRS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpnLmNsb25lKCkuaXVvcih0aGlzKX0sRS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24o'@; put 'Zyl7dmFyIEM7Qz10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7Zm9yKHZhciBTPTA7UzxDLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1NdJmcud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPUMubGVuZ3RoLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaWFuZD1m'@; put 'dW5jdGlvbihnKXtyZXR1cm4gSSgwPT0odGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sRS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0s'@; put 'RS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sRS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIEMsUzt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oQz10'@; put 'aGlzLFM9Zyk6KEM9ZyxTPXRoaXMpO2Zvcih2YXIgdj0wO3Y8Uy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09Qy53b3Jkc1t2XV5TLndvcmRzW3ZdO2lmKHRoaXMhPT1DKWZvcig7djxDLmxlbmd0aDt2KyspdGhpcy53b3Jkc1t2XT1DLndvcmRzW3ZdO3JldHVybiB0aGlzLmxlbmd0aD1DLmxl'@; put 'bmd0aCx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LEUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5j'@; put 'bG9uZSgpLml4b3IoZyk6Zy5jbG9uZSgpLml4b3IodGhpcyl9LEUucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LEUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9u'@; put 'KGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz0wfE1hdGguY2VpbChnLzI2KSxTPWclMjY7dGhpcy5fZXhwYW5kKEMpLFM+MCYmQy0tO2Zvcih2YXIgdj0wO3Y8Qzt2KyspdGhpcy53b3Jkc1t2XT02NzEwODg2MyZ+dGhpcy53b3Jkc1t2XTtyZXR1cm4gUz4wJiYodGhpcy53'@; put 'b3Jkc1t2XT1+dGhpcy53b3Jkc1t2XSY2NzEwODg2Mz4+MjYtUyksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LEUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyxDKXtJKCJudW1iZXIiPT10eXBlb2YgZyYm'@; put 'Zz49MCk7dmFyIFM9Zy8yNnwwLHY9ZyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFMrMSksdGhpcy53b3Jkc1tTXT1DP3RoaXMud29yZHNbU118MTw8djp0aGlzLndvcmRzW1NdJn4oMTw8diksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciBDLFMsdjtpZigw'@; put 'IT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxDPXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAsQz10'@; put 'aGlzLmlzdWIoZyksZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHA9MCx3PTA7dzx2Lmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT02NzEwODg2MyYoQz0oMHxTLndvcmRzW3ddKSsoMHx2Lndv'@; put 'cmRzW3ddKStwKSxwPUM+Pj4yNjtmb3IoOzAhPT1wJiZ3PFMubGVuZ3RoO3crKyl0aGlzLndvcmRzW3ddPTY3MTA4ODYzJihDPSgwfFMud29yZHNbd10pK3ApLHA9Qz4+PjI2O2lmKHRoaXMubGVuZ3RoPVMubGVuZ3RoLDAhPT1wKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXAsdGhpcy5sZW5n'@; put 'dGgrKztlbHNlIGlmKFMhPT10aGlzKWZvcig7dzxTLmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT1TLndvcmRzW3ddO3JldHVybiB0aGlzfSxFLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIEM7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2'@; put 'ZT0wLEM9dGhpcy5zdWIoZyksZy5uZWdhdGl2ZV49MSxDKTowPT09Zy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxDPWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxDKTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNs'@; put 'b25lKCkuaWFkZCh0aGlzKX0sRS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnKXtpZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciBDPXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMu'@; put 'bmVnYXRpdmU9MCx0aGlzLmlhZGQoZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFMsdixwPXRoaXMuY21wKGcpO2lmKDA9PT1wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztwPjA/KFM9dGhpcyx2PWcpOihT'@; put 'PWcsdj10aGlzKTtmb3IodmFyIHc9MCxKPTA7Sjx2Lmxlbmd0aDtKKyspdz0oQz0oMHxTLndvcmRzW0pdKS0oMHx2LndvcmRzW0pdKSt3KT4+MjYsdGhpcy53b3Jkc1tKXT02NzEwODg2MyZDO2Zvcig7MCE9PXcmJko8Uy5sZW5ndGg7SisrKXc9KEM9KDB8Uy53b3Jkc1tKXSkrdyk+PjI2LHRo'@; put 'aXMud29yZHNbSl09NjcxMDg4NjMmQztpZigwPT09dyYmSjxTLmxlbmd0aCYmUyE9PXRoaXMpZm9yKDtKPFMubGVuZ3RoO0orKyl0aGlzLndvcmRzW0pdPVMud29yZHNbSl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEopLFMhPT10aGlzJiYodGhpcy5uZWdhdGl2'@; put 'ZT0xKSx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciB0ZT1mdW5jdGlvbihnLEMsUyl7dmFyIHYscCx3LEo9Zy53b3JkcyxuZT1DLndvcmRzLGRlPVMud29yZHMsZmU9MCx4ZT0wfEpbMF0sTGU9ODE5MSZ4'@; put 'ZSxGZT14ZT4+PjEzLE9lPTB8SlsxXSxqZT04MTkxJk9lLFdlPU9lPj4+MTMsS2U9MHxKWzJdLFllPTgxOTEmS2UsUWU9S2U+Pj4xMyxsdD0wfEpbM10sUGU9ODE5MSZsdCxiZT1sdD4+PjEzLEFlPTB8Sls0XSxUZT04MTkxJkFlLHFlPUFlPj4+MTMsWGU9MHxKWzVdLFVlPTgxOTEmWGUsaHQ9'@; put 'WGU+Pj4xMyxNZT0wfEpbNl0sRGU9ODE5MSZNZSx6ZT1NZT4+PjEzLG90PTB8Sls3XSx1dD04MTkxJm90LE10PW90Pj4+MTMsSHQ9MHxKWzhdLFB0PTgxOTEmSHQsb249SHQ+Pj4xMyxDbj0wfEpbOV0sVXQ9ODE5MSZDbixibj1Dbj4+PjEzLFduPTB8bmVbMF0sZW49ODE5MSZXbiwkbj1Xbj4+'@; put 'PjEzLEhuPTB8bmVbMV0sZnQ9ODE5MSZIbixmbj1Ibj4+PjEzLGhuPTB8bmVbMl0sd3Q9ODE5MSZobixYdD1obj4+PjEzLF90PTB8bmVbM10sTnQ9ODE5MSZfdCxtbj1fdD4+PjEzLHJ0PTB8bmVbNF0sSXQ9ODE5MSZydCxRdD1ydD4+PjEzLER0PTB8bmVbNV0scHQ9ODE5MSZEdCxZdD1EdD4+'@; put 'PjEzLEluPTB8bmVbNl0senQ9ODE5MSZJbix5bj1Jbj4+PjEzLHhuPTB8bmVbN10sc249ODE5MSZ4bixCbj14bj4+PjEzLFJuPTB8bmVbOF0sJHQ9ODE5MSZSbixGbj1Sbj4+PjEzLG5pPTB8bmVbOV0sbG49ODE5MSZuaSxqbj1uaT4+PjEzO1MubmVnYXRpdmU9Zy5uZWdhdGl2ZV5DLm5lZ2F0'@; put 'aXZlLFMubGVuZ3RoPTE5O3ZhciBxcj0oZmUrKHY9TWF0aC5pbXVsKExlLGVuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChMZSwkbikpK01hdGguaW11bChGZSxlbil8MCkpPDwxMyl8MDtmZT0oKHc9TWF0aC5pbXVsKEZlLCRuKSkrKHA+Pj4xMyl8MCkrKHFyPj4+MjYpfDAscXImPTY3'@; put 'MTA4ODYzLHY9TWF0aC5pbXVsKGplLGVuKSxwPShwPU1hdGguaW11bChqZSwkbikpK01hdGguaW11bChXZSxlbil8MCx3PU1hdGguaW11bChXZSwkbik7dmFyIGdpPShmZSsodj12K01hdGguaW11bChMZSxmdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLGZuKXwwKStNYXRo'@; put 'LmltdWwoRmUsZnQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLGZuKXwwKSsocD4+PjEzKXwwKSsoZ2k+Pj4yNil8MCxnaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoWWUsZW4pLHA9KHA9TWF0aC5pbXVsKFllLCRuKSkrTWF0aC5pbXVsKFFlLGVuKXwwLHc9TWF0aC5pbXVsKFFl'@; put 'LCRuKSx2PXYrTWF0aC5pbXVsKGplLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsZm4pfDApK01hdGguaW11bChXZSxmdCl8MCx3PXcrTWF0aC5pbXVsKFdlLGZuKXwwO3ZhciB4cj0oZmUrKHY9ditNYXRoLmltdWwoTGUsd3QpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxY'@; put 'dCl8MCkrTWF0aC5pbXVsKEZlLHd0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxYdCl8MCkrKHA+Pj4xMyl8MCkrKHhyPj4+MjYpfDAseHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFBlLGVuKSxwPShwPU1hdGguaW11bChQZSwkbikpK01hdGguaW11bChiZSxlbil8MCx3PU1h'@; put 'dGguaW11bChiZSwkbiksdj12K01hdGguaW11bChZZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLGZuKXwwKStNYXRoLmltdWwoUWUsZnQpfDAsdz13K01hdGguaW11bChRZSxmbil8MCx2PXYrTWF0aC5pbXVsKGplLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWHQpfDApK01hdGguaW11'@; put 'bChXZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFdlLFh0KXwwO3ZhciBVaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsTnQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxtbil8MCkrTWF0aC5pbXVsKEZlLE50KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxtbil8MCkr'@; put 'KHA+Pj4xMyl8MCkrKFVpPj4+MjYpfDAsVWkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFRlLGVuKSxwPShwPU1hdGguaW11bChUZSwkbikpK01hdGguaW11bChxZSxlbil8MCx3PU1hdGguaW11bChxZSwkbiksdj12K01hdGguaW11bChQZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLGZuKXww'@; put 'KStNYXRoLmltdWwoYmUsZnQpfDAsdz13K01hdGguaW11bChiZSxmbil8MCx2PXYrTWF0aC5pbXVsKFllLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWHQpfDApK01hdGguaW11bChRZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFFlLFh0KXwwLHY9ditNYXRoLmltdWwoamUsTnQpfDAscD0ocD1w'@; put 'K01hdGguaW11bChqZSxtbil8MCkrTWF0aC5pbXVsKFdlLE50KXwwLHc9dytNYXRoLmltdWwoV2UsbW4pfDA7dmFyIEtyPShmZSsodj12K01hdGguaW11bChMZSxJdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLFF0KXwwKStNYXRoLmltdWwoRmUsSXQpfDApKTw8MTMpfDA7'@; put 'ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLFF0KXwwKSsocD4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVWUsZW4pLHA9KHA9TWF0aC5pbXVsKFVlLCRuKSkrTWF0aC5pbXVsKGh0LGVuKXwwLHc9TWF0aC5pbXVsKGh0LCRuKSx2PXYrTWF0aC5pbXVsKFRlLGZ0'@; put 'KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsZm4pfDApK01hdGguaW11bChxZSxmdCl8MCx3PXcrTWF0aC5pbXVsKHFlLGZuKXwwLHY9ditNYXRoLmltdWwoUGUsd3QpfDAscD0ocD1wK01hdGguaW11bChQZSxYdCl8MCkrTWF0aC5pbXVsKGJlLHd0KXwwLHc9dytNYXRoLmltdWwoYmUsWHQpfDAs'@; put 'dj12K01hdGguaW11bChZZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLG1uKXwwKStNYXRoLmltdWwoUWUsTnQpfDAsdz13K01hdGguaW11bChRZSxtbil8MCx2PXYrTWF0aC5pbXVsKGplLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsUXQpfDApK01hdGguaW11bChXZSxJdCl8MCx3PXcr'@; put 'TWF0aC5pbXVsKFdlLFF0KXwwO3ZhciBubz0oZmUrKHY9ditNYXRoLmltdWwoTGUscHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxZdCl8MCkrTWF0aC5pbXVsKEZlLHB0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxZdCl8MCkrKHA+Pj4xMyl8MCkrKG5v'@; put 'Pj4+MjYpfDAsbm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKERlLGVuKSxwPShwPU1hdGguaW11bChEZSwkbikpK01hdGguaW11bCh6ZSxlbil8MCx3PU1hdGguaW11bCh6ZSwkbiksdj12K01hdGguaW11bChVZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLGZuKXwwKStNYXRoLmltdWwoaHQs'@; put 'ZnQpfDAsdz13K01hdGguaW11bChodCxmbil8MCx2PXYrTWF0aC5pbXVsKFRlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWHQpfDApK01hdGguaW11bChxZSx3dCl8MCx3PXcrTWF0aC5pbXVsKHFlLFh0KXwwLHY9ditNYXRoLmltdWwoUGUsTnQpfDAscD0ocD1wK01hdGguaW11bChQZSxt'@; put 'bil8MCkrTWF0aC5pbXVsKGJlLE50KXwwLHc9dytNYXRoLmltdWwoYmUsbW4pfDAsdj12K01hdGguaW11bChZZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLFF0KXwwKStNYXRoLmltdWwoUWUsSXQpfDAsdz13K01hdGguaW11bChRZSxRdCl8MCx2PXYrTWF0aC5pbXVsKGplLHB0KXwwLHA9'@; put 'KHA9cCtNYXRoLmltdWwoamUsWXQpfDApK01hdGguaW11bChXZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFdlLFl0KXwwO3ZhciBIcj0oZmUrKHY9ditNYXRoLmltdWwoTGUsenQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSx5bil8MCkrTWF0aC5pbXVsKEZlLHp0KXwwKSk8PDEz'@; put 'KXwwO2ZlPSgodz13K01hdGguaW11bChGZSx5bil8MCkrKHA+Pj4xMyl8MCkrKEhyPj4+MjYpfDAsSHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKHV0LGVuKSxwPShwPU1hdGguaW11bCh1dCwkbikpK01hdGguaW11bChNdCxlbil8MCx3PU1hdGguaW11bChNdCwkbiksdj12K01hdGguaW11bChE'@; put 'ZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoemUsZnQpfDAsdz13K01hdGguaW11bCh6ZSxmbil8MCx2PXYrTWF0aC5pbXVsKFVlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsWHQpfDApK01hdGguaW11bChodCx3dCl8MCx3PXcrTWF0aC5pbXVsKGh0LFh0'@; put 'KXwwLHY9ditNYXRoLmltdWwoVGUsTnQpfDAscD0ocD1wK01hdGguaW11bChUZSxtbil8MCkrTWF0aC5pbXVsKHFlLE50KXwwLHc9dytNYXRoLmltdWwocWUsbW4pfDAsdj12K01hdGguaW11bChQZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLFF0KXwwKStNYXRoLmltdWwoYmUsSXQpfDAs'@; put 'dz13K01hdGguaW11bChiZSxRdCl8MCx2PXYrTWF0aC5pbXVsKFllLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWXQpfDApK01hdGguaW11bChRZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFFlLFl0KXwwLHY9ditNYXRoLmltdWwoamUsenQpfDAscD0ocD1wK01hdGguaW11bChqZSx5bil8MCkr'@; put 'TWF0aC5pbXVsKFdlLHp0KXwwLHc9dytNYXRoLmltdWwoV2UseW4pfDA7dmFyIHFpPShmZSsodj12K01hdGguaW11bChMZSxzbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLEJuKXwwKStNYXRoLmltdWwoRmUsc24pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZl'@; put 'LEJuKXwwKSsocD4+PjEzKXwwKSsocWk+Pj4yNil8MCxxaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoUHQsZW4pLHA9KHA9TWF0aC5pbXVsKFB0LCRuKSkrTWF0aC5pbXVsKG9uLGVuKXwwLHc9TWF0aC5pbXVsKG9uLCRuKSx2PXYrTWF0aC5pbXVsKHV0LGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwo'@; put 'dXQsZm4pfDApK01hdGguaW11bChNdCxmdCl8MCx3PXcrTWF0aC5pbXVsKE10LGZuKXwwLHY9ditNYXRoLmltdWwoRGUsd3QpfDAscD0ocD1wK01hdGguaW11bChEZSxYdCl8MCkrTWF0aC5pbXVsKHplLHd0KXwwLHc9dytNYXRoLmltdWwoemUsWHQpfDAsdj12K01hdGguaW11bChVZSxOdCl8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKFVlLG1uKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsdz13K01hdGguaW11bChodCxtbil8MCx2PXYrTWF0aC5pbXVsKFRlLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsUXQpfDApK01hdGguaW11bChxZSxJdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFF0KXwwLHY9'@; put 'ditNYXRoLmltdWwoUGUscHQpfDAscD0ocD1wK01hdGguaW11bChQZSxZdCl8MCkrTWF0aC5pbXVsKGJlLHB0KXwwLHc9dytNYXRoLmltdWwoYmUsWXQpfDAsdj12K01hdGguaW11bChZZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKFllLHluKXwwKStNYXRoLmltdWwoUWUsenQpfDAsdz13K01h'@; put 'dGguaW11bChRZSx5bil8MCx2PXYrTWF0aC5pbXVsKGplLHNuKXwwLHA9KHA9cCtNYXRoLmltdWwoamUsQm4pfDApK01hdGguaW11bChXZSxzbil8MCx3PXcrTWF0aC5pbXVsKFdlLEJuKXwwO3ZhciBKaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsJHQpfDApfDApKygoODE5MSYocD0ocD1wK01h'@; put 'dGguaW11bChMZSxGbil8MCkrTWF0aC5pbXVsKEZlLCR0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxGbil8MCkrKHA+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGVuKSxwPShwPU1hdGguaW11bChVdCwkbikpK01hdGguaW11bChi'@; put 'bixlbil8MCx3PU1hdGguaW11bChibiwkbiksdj12K01hdGguaW11bChQdCxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LGZuKXwwKStNYXRoLmltdWwob24sZnQpfDAsdz13K01hdGguaW11bChvbixmbil8MCx2PXYrTWF0aC5pbXVsKHV0LHd0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWHQp'@; put 'fDApK01hdGguaW11bChNdCx3dCl8MCx3PXcrTWF0aC5pbXVsKE10LFh0KXwwLHY9ditNYXRoLmltdWwoRGUsTnQpfDAscD0ocD1wK01hdGguaW11bChEZSxtbil8MCkrTWF0aC5pbXVsKHplLE50KXwwLHc9dytNYXRoLmltdWwoemUsbW4pfDAsdj12K01hdGguaW11bChVZSxJdCl8MCxwPShw'@; put 'PXArTWF0aC5pbXVsKFVlLFF0KXwwKStNYXRoLmltdWwoaHQsSXQpfDAsdz13K01hdGguaW11bChodCxRdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWXQpfDApK01hdGguaW11bChxZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFl0KXwwLHY9ditNYXRo'@; put 'LmltdWwoUGUsenQpfDAscD0ocD1wK01hdGguaW11bChQZSx5bil8MCkrTWF0aC5pbXVsKGJlLHp0KXwwLHc9dytNYXRoLmltdWwoYmUseW4pfDAsdj12K01hdGguaW11bChZZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFllLEJuKXwwKStNYXRoLmltdWwoUWUsc24pfDAsdz13K01hdGguaW11'@; put 'bChRZSxCbil8MCx2PXYrTWF0aC5pbXVsKGplLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsRm4pfDApK01hdGguaW11bChXZSwkdCl8MCx3PXcrTWF0aC5pbXVsKFdlLEZuKXwwO3ZhciBhbz0oZmUrKHY9ditNYXRoLmltdWwoTGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11'@; put 'bChMZSxqbil8MCkrTWF0aC5pbXVsKEZlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGFvPj4+MjYpfDAsYW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGZ0KSxwPShwPU1hdGguaW11bChVdCxmbikpK01hdGguaW11bChibixmdCl8'@; put 'MCx3PU1hdGguaW11bChibixmbiksdj12K01hdGguaW11bChQdCx3dCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFh0KXwwKStNYXRoLmltdWwob24sd3QpfDAsdz13K01hdGguaW11bChvbixYdCl8MCx2PXYrTWF0aC5pbXVsKHV0LE50KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsbW4pfDApK01h'@; put 'dGguaW11bChNdCxOdCl8MCx3PXcrTWF0aC5pbXVsKE10LG1uKXwwLHY9ditNYXRoLmltdWwoRGUsSXQpfDAscD0ocD1wK01hdGguaW11bChEZSxRdCl8MCkrTWF0aC5pbXVsKHplLEl0KXwwLHc9dytNYXRoLmltdWwoemUsUXQpfDAsdj12K01hdGguaW11bChVZSxwdCl8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKFVlLFl0KXwwKStNYXRoLmltdWwoaHQscHQpfDAsdz13K01hdGguaW11bChodCxZdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHp0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUseW4pfDApK01hdGguaW11bChxZSx6dCl8MCx3PXcrTWF0aC5pbXVsKHFlLHluKXwwLHY9ditNYXRoLmltdWwo'@; put 'UGUsc24pfDAscD0ocD1wK01hdGguaW11bChQZSxCbil8MCkrTWF0aC5pbXVsKGJlLHNuKXwwLHc9dytNYXRoLmltdWwoYmUsQm4pfDAsdj12K01hdGguaW11bChZZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLEZuKXwwKStNYXRoLmltdWwoUWUsJHQpfDAsdz13K01hdGguaW11bChRZSxG'@; put 'bil8MDt2YXIgcm89KGZlKyh2PXYrTWF0aC5pbXVsKGplLGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoamUsam4pfDApK01hdGguaW11bChXZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoV2Usam4pfDApKyhwPj4+MTMpfDApKyhybz4+PjI2KXwwLHJvJj02'@; put 'NzEwODg2Myx2PU1hdGguaW11bChVdCx3dCkscD0ocD1NYXRoLmltdWwoVXQsWHQpKStNYXRoLmltdWwoYm4sd3QpfDAsdz1NYXRoLmltdWwoYm4sWHQpLHY9ditNYXRoLmltdWwoUHQsTnQpfDAscD0ocD1wK01hdGguaW11bChQdCxtbil8MCkrTWF0aC5pbXVsKG9uLE50KXwwLHc9dytNYXRo'@; put 'LmltdWwob24sbW4pfDAsdj12K01hdGguaW11bCh1dCxJdCl8MCxwPShwPXArTWF0aC5pbXVsKHV0LFF0KXwwKStNYXRoLmltdWwoTXQsSXQpfDAsdz13K01hdGguaW11bChNdCxRdCl8MCx2PXYrTWF0aC5pbXVsKERlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsWXQpfDApK01hdGguaW11'@; put 'bCh6ZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHplLFl0KXwwLHY9ditNYXRoLmltdWwoVWUsenQpfDAscD0ocD1wK01hdGguaW11bChVZSx5bil8MCkrTWF0aC5pbXVsKGh0LHp0KXwwLHc9dytNYXRoLmltdWwoaHQseW4pfDAsdj12K01hdGguaW11bChUZSxzbil8MCxwPShwPXArTWF0aC5pbXVs'@; put 'KFRlLEJuKXwwKStNYXRoLmltdWwocWUsc24pfDAsdz13K01hdGguaW11bChxZSxCbil8MCx2PXYrTWF0aC5pbXVsKFBlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoUGUsRm4pfDApK01hdGguaW11bChiZSwkdCl8MCx3PXcrTWF0aC5pbXVsKGJlLEZuKXwwO3ZhciBpbz0oZmUrKHY9ditNYXRo'@; put 'LmltdWwoWWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChZZSxqbil8MCkrTWF0aC5pbXVsKFFlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChRZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LE50'@; put 'KSxwPShwPU1hdGguaW11bChVdCxtbikpK01hdGguaW11bChibixOdCl8MCx3PU1hdGguaW11bChibixtbiksdj12K01hdGguaW11bChQdCxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFF0KXwwKStNYXRoLmltdWwob24sSXQpfDAsdz13K01hdGguaW11bChvbixRdCl8MCx2PXYrTWF0aC5p'@; put 'bXVsKHV0LHB0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWXQpfDApK01hdGguaW11bChNdCxwdCl8MCx3PXcrTWF0aC5pbXVsKE10LFl0KXwwLHY9ditNYXRoLmltdWwoRGUsenQpfDAscD0ocD1wK01hdGguaW11bChEZSx5bil8MCkrTWF0aC5pbXVsKHplLHp0KXwwLHc9dytNYXRoLmltdWwo'@; put 'emUseW4pfDAsdj12K01hdGguaW11bChVZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFVlLEJuKXwwKStNYXRoLmltdWwoaHQsc24pfDAsdz13K01hdGguaW11bChodCxCbil8MCx2PXYrTWF0aC5pbXVsKFRlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsRm4pfDApK01hdGguaW11bChxZSwk'@; put 'dCl8MCx3PXcrTWF0aC5pbXVsKHFlLEZuKXwwO3ZhciBHaT0oZmUrKHY9ditNYXRoLmltdWwoUGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQZSxqbil8MCkrTWF0aC5pbXVsKGJlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChiZSxqbil8MCkrKHA+Pj4x'@; put 'Myl8MCkrKEdpPj4+MjYpfDAsR2kmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LEl0KSxwPShwPU1hdGguaW11bChVdCxRdCkpK01hdGguaW11bChibixJdCl8MCx3PU1hdGguaW11bChibixRdCksdj12K01hdGguaW11bChQdCxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFl0KXwwKStNYXRo'@; put 'LmltdWwob24scHQpfDAsdz13K01hdGguaW11bChvbixZdCl8MCx2PXYrTWF0aC5pbXVsKHV0LHp0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQseW4pfDApK01hdGguaW11bChNdCx6dCl8MCx3PXcrTWF0aC5pbXVsKE10LHluKXwwLHY9ditNYXRoLmltdWwoRGUsc24pfDAscD0ocD1wK01hdGgu'@; put 'aW11bChEZSxCbil8MCkrTWF0aC5pbXVsKHplLHNuKXwwLHc9dytNYXRoLmltdWwoemUsQm4pfDAsdj12K01hdGguaW11bChVZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLEZuKXwwKStNYXRoLmltdWwoaHQsJHQpfDAsdz13K01hdGguaW11bChodCxGbil8MDt2YXIgaG89KGZlKyh2PXYr'@; put 'TWF0aC5pbXVsKFRlLGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoVGUsam4pfDApK01hdGguaW11bChxZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwocWUsam4pfDApKyhwPj4+MTMpfDApKyhobz4+PjI2KXwwLGhvJj02NzEwODg2Myx2PU1hdGguaW11bChV'@; put 'dCxwdCkscD0ocD1NYXRoLmltdWwoVXQsWXQpKStNYXRoLmltdWwoYm4scHQpfDAsdz1NYXRoLmltdWwoYm4sWXQpLHY9ditNYXRoLmltdWwoUHQsenQpfDAscD0ocD1wK01hdGguaW11bChQdCx5bil8MCkrTWF0aC5pbXVsKG9uLHp0KXwwLHc9dytNYXRoLmltdWwob24seW4pfDAsdj12K01h'@; put 'dGguaW11bCh1dCxzbil8MCxwPShwPXArTWF0aC5pbXVsKHV0LEJuKXwwKStNYXRoLmltdWwoTXQsc24pfDAsdz13K01hdGguaW11bChNdCxCbil8MCx2PXYrTWF0aC5pbXVsKERlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsRm4pfDApK01hdGguaW11bCh6ZSwkdCl8MCx3PXcrTWF0aC5p'@; put 'bXVsKHplLEZuKXwwO3ZhciB5cj0oZmUrKHY9ditNYXRoLmltdWwoVWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChVZSxqbil8MCkrTWF0aC5pbXVsKGh0LGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChodCxqbil8MCkrKHA+Pj4xMyl8MCkrKHlyPj4+MjYp'@; put 'fDAseXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHp0KSxwPShwPU1hdGguaW11bChVdCx5bikpK01hdGguaW11bChibix6dCl8MCx3PU1hdGguaW11bChibix5biksdj12K01hdGguaW11bChQdCxzbil8MCxwPShwPXArTWF0aC5pbXVsKFB0LEJuKXwwKStNYXRoLmltdWwob24sc24pfDAs'@; put 'dz13K01hdGguaW11bChvbixCbil8MCx2PXYrTWF0aC5pbXVsKHV0LCR0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsRm4pfDApK01hdGguaW11bChNdCwkdCl8MCx3PXcrTWF0aC5pbXVsKE10LEZuKXwwO3ZhciBQaT0oZmUrKHY9ditNYXRoLmltdWwoRGUsbG4pfDApfDApKygoODE5MSYocD0o'@; put 'cD1wK01hdGguaW11bChEZSxqbil8MCkrTWF0aC5pbXVsKHplLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bCh6ZSxqbil8MCkrKHA+Pj4xMyl8MCkrKFBpPj4+MjYpfDAsUGkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHNuKSxwPShwPU1hdGguaW11bChVdCxCbikpK01hdGgu'@; put 'aW11bChibixzbil8MCx3PU1hdGguaW11bChibixCbiksdj12K01hdGguaW11bChQdCwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LEZuKXwwKStNYXRoLmltdWwob24sJHQpfDAsdz13K01hdGguaW11bChvbixGbil8MDt2YXIgTG89KGZlKyh2PXYrTWF0aC5pbXVsKHV0LGxuKXwwKXwwKSso'@; put 'KDgxOTEmKHA9KHA9cCtNYXRoLmltdWwodXQsam4pfDApK01hdGguaW11bChNdCxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoTXQsam4pfDApKyhwPj4+MTMpfDApKyhMbz4+PjI2KXwwLExvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCwkdCkscD0ocD1NYXRoLmltdWwoVXQs'@; put 'Rm4pKStNYXRoLmltdWwoYm4sJHQpfDAsdz1NYXRoLmltdWwoYm4sRm4pO3ZhciBocz0oZmUrKHY9ditNYXRoLmltdWwoUHQsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQdCxqbil8MCkrTWF0aC5pbXVsKG9uLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChv'@; put 'bixqbil8MCkrKHA+Pj4xMyl8MCkrKGhzPj4+MjYpfDAsaHMmPTY3MTA4ODYzO3ZhciBycz0oZmUrKHY9TWF0aC5pbXVsKFV0LGxuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChVdCxqbikpK01hdGguaW11bChibixsbil8MCkpPDwxMyl8MDtyZXR1cm4gZmU9KCh3PU1hdGguaW11bChi'@; put 'bixqbikpKyhwPj4+MTMpfDApKyhycz4+PjI2KXwwLHJzJj02NzEwODg2MyxkZVswXT1xcixkZVsxXT1naSxkZVsyXT14cixkZVszXT1VaSxkZVs0XT1LcixkZVs1XT1ubyxkZVs2XT1IcixkZVs3XT1xaSxkZVs4XT1KaSxkZVs5XT1hbyxkZVsxMF09cm8sZGVbMTFdPWlvLGRlWzEyXT1HaSxk'@; put 'ZVsxM109aG8sZGVbMTRdPXlyLGRlWzE1XT1QaSxkZVsxNl09TG8sZGVbMTddPWhzLGRlWzE4XT1ycywwIT09ZmUmJihkZVsxOV09ZmUsUy5sZW5ndGgrKyksU307ZnVuY3Rpb24gb2UoZyxDLFMpe3JldHVybihuZXcgc2UpLm11bHAoZyxDLFMpfWZ1bmN0aW9uIHNlKGcsQyl7dGhpcy54PWcs'@; put 'dGhpcy55PUN9TWF0aC5pbXVsfHwodGU9ZWUpLEUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGcsQyl7dmFyIHY9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09Zy5sZW5ndGg/dGUodGhpcyxnLEMpOnY8NjM/ZWUodGhpcyxnLEMpOnY8MTAyND9m'@; put 'dW5jdGlvbihwLHcsSil7Si5uZWdhdGl2ZT13Lm5lZ2F0aXZlXnAubmVnYXRpdmUsSi5sZW5ndGg9cC5sZW5ndGgrdy5sZW5ndGg7Zm9yKHZhciBuZT0wLGRlPTAsZmU9MDtmZTxKLmxlbmd0aC0xO2ZlKyspe3ZhciB4ZT1kZTtkZT0wO2Zvcih2YXIgTGU9NjcxMDg4NjMmbmUsRmU9TWF0aC5t'@; put 'aW4oZmUsdy5sZW5ndGgtMSksT2U9TWF0aC5tYXgoMCxmZS1wLmxlbmd0aCsxKTtPZTw9RmU7T2UrKyl7dmFyIFdlPSgwfHAud29yZHNbZmUtT2VdKSooMHx3LndvcmRzW09lXSksS2U9NjcxMDg4NjMmV2U7TGU9NjcxMDg4NjMmKEtlPUtlK0xlfDApLGRlKz0oeGU9KHhlPXhlKyhXZS82NzEw'@; put 'ODg2NHwwKXwwKSsoS2U+Pj4yNil8MCk+Pj4yNix4ZSY9NjcxMDg4NjN9Si53b3Jkc1tmZV09TGUsbmU9eGUseGU9ZGV9cmV0dXJuIDAhPT1uZT9KLndvcmRzW2ZlXT1uZTpKLmxlbmd0aC0tLEouc3RyaXAoKX0odGhpcyxnLEMpOm9lKHRoaXMsZyxDKX0sc2UucHJvdG90eXBlLm1ha2VSQlQ9'@; put 'ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPUUucHJvdG90eXBlLl9jb3VudEJpdHMoZyktMSx2PTA7djxnO3YrKylDW3ZdPXRoaXMucmV2QmluKHYsUyxnKTtyZXR1cm4gQ30sc2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLEMsUyl7aWYoMD09PWd8fGc9PT1TLTEp'@; put 'cmV0dXJuIGc7Zm9yKHZhciB2PTAscD0wO3A8QztwKyspdnw9KDEmZyk8PEMtcC0xLGc+Pj0xO3JldHVybiB2fSxzZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLEMsUyx2LHAsdyl7Zm9yKHZhciBKPTA7Sjx3O0orKyl2W0pdPUNbZ1tKXV0scFtKXT1TW2dbSl1dfSxzZS5wcm90b3R5'@; put 'cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGcsQyxTLHYscCx3KXt0aGlzLnBlcm11dGUodyxnLEMsUyx2LHApO2Zvcih2YXIgSj0xO0o8cDtKPDw9MSlmb3IodmFyIG5lPUo8PDEsZGU9TWF0aC5jb3MoMipNYXRoLlBJL25lKSxmZT1NYXRoLnNpbigyKk1hdGguUEkvbmUpLHhlPTA7eGU8cDt4ZSs9'@; put 'bmUpZm9yKHZhciBMZT1kZSxGZT1mZSxPZT0wO09lPEo7T2UrKyl7dmFyIGplPVNbeGUrT2VdLFdlPXZbeGUrT2VdLEtlPVNbeGUrT2UrSl0sWWU9dlt4ZStPZStKXSxRZT1MZSpLZS1GZSpZZTtZZT1MZSpZZStGZSpLZSxTW3hlK09lXT1qZSsoS2U9UWUpLHZbeGUrT2VdPVdlK1llLFNbeGUr'@; put 'T2UrSl09amUtS2Usdlt4ZStPZStKXT1XZS1ZZSxPZSE9PW5lJiYoUWU9ZGUqTGUtZmUqRmUsRmU9ZGUqRmUrZmUqTGUsTGU9UWUpfX0sc2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcsQyl7dmFyIFM9MXxNYXRoLm1heChDLGcpLHY9MSZTLHA9MDtmb3IoUz1TLzJ8MDtTO1M+'@; put 'Pj49MSlwKys7cmV0dXJuIDE8PHArMSt2fSxzZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGcsQyxTKXtpZighKFM8PTEpKWZvcih2YXIgdj0wO3Y8Uy8yO3YrKyl7dmFyIHA9Z1t2XTtnW3ZdPWdbUy12LTFdLGdbUy12LTFdPXAscD1DW3ZdLENbdl09LUNbUy12LTFdLENbUy12LTFd'@; put 'PS1wfX0sc2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLEMpe2Zvcih2YXIgUz0wLHY9MDt2PEMvMjt2Kyspe3ZhciBwPTgxOTIqTWF0aC5yb3VuZChnWzIqdisxXS9DKStNYXRoLnJvdW5kKGdbMip2XS9DKStTO2dbdl09NjcxMDg4NjMmcCxTPXA8NjcxMDg4NjQ/MDpwLzY3'@; put 'MTA4ODY0fDB9cmV0dXJuIGd9LHNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9MDt3PEM7dysrKVNbMip3XT04MTkxJihwKz0wfGdbd10pLFNbMip3KzFdPTgxOTEmKHA+Pj49MTMpLHA+Pj49MTM7Zm9yKHc9MipDO3c8djsrK3cpU1t3XT0w'@; put 'O0koMD09PXApLEkoMD09KC04MTkyJnApKX0sc2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPTA7UzxnO1MrKylDW1NdPTA7cmV0dXJuIEN9LHNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj0yKnRoaXMuZ3Vlc3NMZW4x'@; put 'M2IoZy5sZW5ndGgsQy5sZW5ndGgpLHA9dGhpcy5tYWtlUkJUKHYpLHc9dGhpcy5zdHViKHYpLEo9bmV3IEFycmF5KHYpLG5lPW5ldyBBcnJheSh2KSxkZT1uZXcgQXJyYXkodiksZmU9bmV3IEFycmF5KHYpLHhlPW5ldyBBcnJheSh2KSxMZT1uZXcgQXJyYXkodiksRmU9Uy53b3JkcztGZS5s'@; put 'ZW5ndGg9dix0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0aCxKLHYpLHRoaXMuY29udmVydDEzYihDLndvcmRzLEMubGVuZ3RoLGZlLHYpLHRoaXMudHJhbnNmb3JtKEosdyxuZSxkZSx2LHApLHRoaXMudHJhbnNmb3JtKGZlLHcseGUsTGUsdixwKTtmb3IodmFyIE9lPTA7T2U8djtP'@; put 'ZSsrKXt2YXIgamU9bmVbT2VdKnhlW09lXS1kZVtPZV0qTGVbT2VdO2RlW09lXT1uZVtPZV0qTGVbT2VdK2RlW09lXSp4ZVtPZV0sbmVbT2VdPWplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShuZSxkZSx2KSx0aGlzLnRyYW5zZm9ybShuZSxkZSxGZSx3LHYscCksdGhpcy5jb25qdWdhdGUoRmUs'@; put 'dyx2KSx0aGlzLm5vcm1hbGl6ZTEzYihGZSx2KSxTLm5lZ2F0aXZlPWcubmVnYXRpdmVeQy5uZWdhdGl2ZSxTLmxlbmd0aD1nLmxlbmd0aCtDLmxlbmd0aCxTLnN0cmlwKCl9LEUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcg'@; put 'QXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8oZyxDKX0sRS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLG9lKHRoaXMsZyxDKX0sRS5wcm90b3R5cGUu'@; put 'aW11bD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKGcsdGhpcyl9LEUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnKSxJKGc8NjcxMDg4NjQpO2Zvcih2YXIgQz0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIHY9KDB8dGhp'@; put 'cy53b3Jkc1tTXSkqZyxwPSg2NzEwODg2MyZ2KSsoNjcxMDg4NjMmQyk7Qz4+PTI2LEMrPXYvNjcxMDg4NjR8MCxDKz1wPj4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZwfXJldHVybiAwIT09QyYmKHRoaXMud29yZHNbU109Qyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5t'@; put 'dWxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oZyl9LEUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sRS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sRS5wcm90b3R5'@; put 'cGUucG93PWZ1bmN0aW9uKGcpe3ZhciBDPWZ1bmN0aW9uKHcpe2Zvcih2YXIgSj1uZXcgQXJyYXkody5iaXRMZW5ndGgoKSksbmU9MDtuZTxKLmxlbmd0aDtuZSsrKXt2YXIgZmU9bmUlMjY7SltuZV09KHcud29yZHNbbmUvMjZ8MF0mMTw8ZmUpPj4+ZmV9cmV0dXJuIEp9KGcpO2lmKDA9PT1D'@; put 'Lmxlbmd0aClyZXR1cm4gbmV3IEUoMSk7Zm9yKHZhciBTPXRoaXMsdj0wO3Y8Qy5sZW5ndGgmJjA9PT1DW3ZdO3YrKyxTPVMuc3FyKCkpO2lmKCsrdjxDLmxlbmd0aClmb3IodmFyIHA9Uy5zcXIoKTt2PEMubGVuZ3RoO3YrKyxwPXAuc3FyKCkpMCE9PUNbdl0mJihTPVMubXVsKHApKTtyZXR1'@; put 'cm4gU30sRS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQyxTPWclMjYsdj0oZy1TKS8yNixwPTY3MTA4ODYzPj4+MjYtUzw8MjYtUztpZigwIT09Uyl7dmFyIHc9MDtmb3IoQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgSj10'@; put 'aGlzLndvcmRzW0NdJnA7dGhpcy53b3Jkc1tDXT0oMHx0aGlzLndvcmRzW0NdKS1KPDxTfHcsdz1KPj4+MjYtU313JiYodGhpcy53b3Jkc1tDXT13LHRoaXMubGVuZ3RoKyspfWlmKDAhPT12KXtmb3IoQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0tKXRoaXMud29yZHNbQyt2XT10aGlzLndvcmRz'@; put 'W0NdO2ZvcihDPTA7Qzx2O0MrKyl0aGlzLndvcmRzW0NdPTA7dGhpcy5sZW5ndGgrPXZ9cmV0dXJuIHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSxFLnByb3RvdHlwZS5pdXNocm49'@; put 'ZnVuY3Rpb24oZyxDLFMpe3ZhciB2O0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKSx2PUM/KEMtQyUyNikvMjY6MDt2YXIgcD1nJTI2LHc9TWF0aC5taW4oKGctcCkvMjYsdGhpcy5sZW5ndGgpLEo9NjcxMDg4NjNeNjcxMDg4NjM+Pj5wPDxwLG5lPVM7aWYodi09dyx2PU1hdGgubWF4KDAs'@; put 'diksbmUpe2Zvcih2YXIgZGU9MDtkZTx3O2RlKyspbmUud29yZHNbZGVdPXRoaXMud29yZHNbZGVdO25lLmxlbmd0aD13fWlmKDAhPT13KWlmKHRoaXMubGVuZ3RoPncpZm9yKHRoaXMubGVuZ3RoLT13LGRlPTA7ZGU8dGhpcy5sZW5ndGg7ZGUrKyl0aGlzLndvcmRzW2RlXT10aGlzLndvcmRz'@; put 'W2RlK3ddO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIGZlPTA7Zm9yKGRlPXRoaXMubGVuZ3RoLTE7ZGU+PTAmJigwIT09ZmV8fGRlPj12KTtkZS0tKXt2YXIgeGU9MHx0aGlzLndvcmRzW2RlXTt0aGlzLndvcmRzW2RlXT1mZTw8MjYtcHx4ZT4+PnAsZmU9eGUmSn1y'@; put 'ZXR1cm4gbmUmJjAhPT1mZSYmKG5lLndvcmRzW25lLmxlbmd0aCsrXT1mZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyxDLFMpe3JldHVybiBJKDA9PT10aGlzLm5lZ2F0'@; put 'aXZlKSx0aGlzLml1c2hybihnLEMsUyl9LEUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sRS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZyl9LEUucHJvdG90eXBlLnNocm49ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihnKX0sRS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LEUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1n'@; put 'JTI2LFM9KGctQykvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9U3x8ISh0aGlzLndvcmRzW1NdJjE8PEMpKX0sRS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuIEkoMD09PXRoaXMubmVn'@; put 'YXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1TP3RoaXM6KDAhPT1DJiZTKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oUyx0aGlzLmxlbmd0aCksMCE9PUMmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEw'@; put 'ODg2Mz4+PkM8PEMpLHRoaXMuc3RyaXAoKSl9LEUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSxFLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzww'@; put 'P3RoaXMuaXN1Ym4oLWcpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5u'@; put 'ZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGcpfSxFLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0NdPj02NzEwODg2NDtDKyspdGhpcy53b3Jkc1tDXS09NjcxMDg4NjQsQz09PXRo'@; put 'aXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tDKzFdPTE6dGhpcy53b3Jkc1tDKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEMrMSksdGhpc30sRS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYoSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2'@; put 'NCksZzwwKXJldHVybiB0aGlzLmlhZGRuKC1nKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlz'@; put 'LndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbQ108MDtDKyspdGhpcy53b3Jkc1tDXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tDKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90'@; put 'eXBlLmFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihnKX0sRS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSxFLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlz'@; put 'fSxFLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sRS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdixwO3RoaXMuX2V4cGFuZChnLmxlbmd0aCtTKTt2YXIgSj0wO2Zvcih2PTA7djxnLmxlbmd0aDt2Kyspe3A9'@; put 'KDB8dGhpcy53b3Jkc1t2K1NdKStKO3ZhciBuZT0oMHxnLndvcmRzW3ZdKSpDO0o9KChwLT02NzEwODg2MyZuZSk+PjI2KS0obmUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnB9Zm9yKDt2PHRoaXMubGVuZ3RoLVM7disrKUo9KHA9KDB8dGhpcy53b3Jkc1t2K1NdKStK'@; put 'KT4+MjYsdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnA7aWYoMD09PUopcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoSSgtMT09PUopLEo9MCx2PTA7djx0aGlzLmxlbmd0aDt2KyspSj0ocD0tKDB8dGhpcy53b3Jkc1t2XSkrSik+PjI2LHRoaXMud29yZHNbdl09NjcxMDg4NjMmcDtyZXR1cm4g'@; put 'dGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oZyxDKXt2YXIgUyx2PXRoaXMuY2xvbmUoKSxwPWcsdz0wfHAud29yZHNbcC5sZW5ndGgtMV07MCE9KFM9MjYtdGhpcy5fY291bnRCaXRzKHcpKSYmKHA9cC51c2hsbihTKSx2Lml1c2hs'@; put 'bihTKSx3PTB8cC53b3Jkc1twLmxlbmd0aC0xXSk7dmFyIEosbmU9di5sZW5ndGgtcC5sZW5ndGg7aWYoIm1vZCIhPT1DKXsoSj1uZXcgRShudWxsKSkubGVuZ3RoPW5lKzEsSi53b3Jkcz1uZXcgQXJyYXkoSi5sZW5ndGgpO2Zvcih2YXIgZGU9MDtkZTxKLmxlbmd0aDtkZSsrKUoud29yZHNb'@; put 'ZGVdPTB9dmFyIGZlPXYuY2xvbmUoKS5faXNobG5zdWJtdWwocCwxLG5lKTswPT09ZmUubmVnYXRpdmUmJih2PWZlLEomJihKLndvcmRzW25lXT0xKSk7Zm9yKHZhciB4ZT1uZS0xO3hlPj0wO3hlLS0pe3ZhciBMZT02NzEwODg2NCooMHx2LndvcmRzW3AubGVuZ3RoK3hlXSkrKDB8di53b3Jk'@; put 'c1twLmxlbmd0aCt4ZS0xXSk7Zm9yKExlPU1hdGgubWluKExlL3d8MCw2NzEwODg2Myksdi5faXNobG5zdWJtdWwocCxMZSx4ZSk7MCE9PXYubmVnYXRpdmU7KUxlLS0sdi5uZWdhdGl2ZT0wLHYuX2lzaGxuc3VibXVsKHAsMSx4ZSksdi5pc1plcm8oKXx8KHYubmVnYXRpdmVePTEpO0omJihK'@; put 'LndvcmRzW3hlXT1MZSl9cmV0dXJuIEomJkouc3RyaXAoKSx2LnN0cmlwKCksImRpdiIhPT1DJiYwIT09UyYmdi5pdXNocm4oUykse2RpdjpKfHxudWxsLG1vZDp2fX0sRS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcsQyxTKXtyZXR1cm4gSSghZy5pc1plcm8oKSksdGhpcy5pc1plcm8o'@; put 'KT97ZGl2Om5ldyBFKDApLG1vZDpuZXcgRSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcsQyksIm1vZCIhPT1DJiYodj13LmRpdi5uZWcoKSksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5p'@; put 'YWRkKGcpKSx7ZGl2OnYsbW9kOnB9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmU/KHc9dGhpcy5kaXZtb2QoZy5uZWcoKSxDKSwibW9kIiE9PUMmJih2PXcuZGl2Lm5lZygpKSx7ZGl2OnYsbW9kOncubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZlPyh3PXRoaXMubmVn'@; put 'KCkuZGl2bW9kKGcubmVnKCksQyksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pc3ViKGcpKSx7ZGl2OncuZGl2LG1vZDpwfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgRSgwKSxtb2Q6dGhpc306MT09PWcubGVu'@; put 'Z3RoPyJkaXYiPT09Qz97ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1DP3tkaXY6bnVsbCxtb2Q6bmV3IEUodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyBFKHRoaXMubW9kbihnLndvcmRzWzBdKSl9'@; put 'OnRoaXMuX3dvcmREaXYoZyxDKTt2YXIgdixwLHd9LEUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSxFLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEpLm1vZH0sRS5wcm90'@; put 'b3R5cGUudW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMCkubW9kfSxFLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgQz10aGlzLmRpdm1vZChnKTtpZihDLm1vZC5pc1plcm8oKSlyZXR1cm4gQy5kaXY7dmFyIFM9MCE9PUMuZGl2Lm5lZ2F0'@; put 'aXZlP0MubW9kLmlzdWIoZyk6Qy5tb2Qsdj1nLnVzaHJuKDEpLHA9Zy5hbmRsbigxKSx3PVMuY21wKHYpO3JldHVybiB3PDB8fDE9PT1wJiYwPT09dz9DLmRpdjowIT09Qy5kaXYubmVnYXRpdmU/Qy5kaXYuaXN1Ym4oMSk6Qy5kaXYuaWFkZG4oMSl9LEUucHJvdG90eXBlLm1vZG49ZnVuY3Rp'@; put 'b24oZyl7SShnPD02NzEwODg2Myk7Zm9yKHZhciBDPTY3MTA4ODY0JWcsUz0wLHY9dGhpcy5sZW5ndGgtMTt2Pj0wO3YtLSlTPShDKlMrKDB8dGhpcy53b3Jkc1t2XSkpJWc7cmV0dXJuIFN9LEUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe0koZzw9NjcxMDg4NjMpO2Zvcih2YXIgQz0w'@; put 'LFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl7dmFyIHY9KDB8dGhpcy53b3Jkc1tTXSkrNjcxMDg4NjQqQzt0aGlzLndvcmRzW1NdPXYvZ3wwLEM9diVnfXJldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihn'@; put 'KX0sRS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHY9bmV3IEUoMSkscD1uZXcgRSgwKSx3PW5ldyBFKDAp'@; put 'LEo9bmV3IEUoMSksbmU9MDtDLmlzRXZlbigpJiZTLmlzRXZlbigpOylDLml1c2hybigxKSxTLml1c2hybigxKSwrK25lO2Zvcih2YXIgZGU9Uy5jbG9uZSgpLGZlPUMuY2xvbmUoKTshQy5pc1plcm8oKTspe2Zvcih2YXIgeGU9MCxMZT0xOyEoQy53b3Jkc1swXSZMZSkmJnhlPDI2OysreGUs'@; put 'TGU8PD0xKTtpZih4ZT4wKWZvcihDLml1c2hybih4ZSk7eGUtLSA+MDspKHYuaXNPZGQoKXx8cC5pc09kZCgpKSYmKHYuaWFkZChkZSkscC5pc3ViKGZlKSksdi5pdXNocm4oMSkscC5pdXNocm4oMSk7Zm9yKHZhciBGZT0wLE9lPTE7IShTLndvcmRzWzBdJk9lKSYmRmU8MjY7KytGZSxPZTw8'@; put 'PTEpO2lmKEZlPjApZm9yKFMuaXVzaHJuKEZlKTtGZS0tID4wOykody5pc09kZCgpfHxKLmlzT2RkKCkpJiYody5pYWRkKGRlKSxKLmlzdWIoZmUpKSx3Lml1c2hybigxKSxKLml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHYuaXN1Yih3KSxwLmlzdWIoSikpOihTLmlzdWIoQyks'@; put 'dy5pc3ViKHYpLEouaXN1YihwKSl9cmV0dXJue2E6dyxiOkosZ2NkOlMuaXVzaGxuKG5lKX19LEUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9k'@; put 'KGcpOkMuY2xvbmUoKTtmb3IodmFyIHYscD1uZXcgRSgxKSx3PW5ldyBFKDApLEo9Uy5jbG9uZSgpO0MuY21wbigxKT4wJiZTLmNtcG4oMSk+MDspe2Zvcih2YXIgbmU9MCxkZT0xOyEoQy53b3Jkc1swXSZkZSkmJm5lPDI2OysrbmUsZGU8PD0xKTtpZihuZT4wKWZvcihDLml1c2hybihuZSk7'@; put 'bmUtLSA+MDspcC5pc09kZCgpJiZwLmlhZGQoSikscC5pdXNocm4oMSk7Zm9yKHZhciBmZT0wLHhlPTE7IShTLndvcmRzWzBdJnhlKSYmZmU8MjY7KytmZSx4ZTw8PTEpO2lmKGZlPjApZm9yKFMuaXVzaHJuKGZlKTtmZS0tID4wOyl3LmlzT2RkKCkmJncuaWFkZChKKSx3Lml1c2hybigxKTtD'@; put 'LmNtcChTKT49MD8oQy5pc3ViKFMpLHAuaXN1Yih3KSk6KFMuaXN1YihDKSx3LmlzdWIocCkpfXJldHVybih2PTA9PT1DLmNtcG4oMSk/cDp3KS5jbXBuKDApPDAmJnYuaWFkZChnKSx2fSxFLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMo'@; put 'KTtpZihnLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBDPXRoaXMuY2xvbmUoKSxTPWcuY2xvbmUoKTtDLm5lZ2F0aXZlPTAsUy5uZWdhdGl2ZT0wO2Zvcih2YXIgdj0wO0MuaXNFdmVuKCkmJlMuaXNFdmVuKCk7disrKUMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9y'@; put 'KDtDLmlzRXZlbigpOylDLml1c2hybigxKTtmb3IoO1MuaXNFdmVuKCk7KVMuaXVzaHJuKDEpO3ZhciBwPUMuY21wKFMpO2lmKHA8MCl7dmFyIHc9QztDPVMsUz13fWVsc2UgaWYoMD09PXB8fDA9PT1TLmNtcG4oMSkpYnJlYWs7Qy5pc3ViKFMpfXJldHVybiBTLml1c2hsbih2KX0sRS5wcm90'@; put 'b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5lZ2NkKGcpLmEudW1vZChnKX0sRS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxFLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRz'@; put 'WzBdKX0sRS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMud29yZHNbMF0mZ30sRS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciBDPWclMjYsUz0oZy1DKS8yNix2PTE8PEM7aWYodGhpcy5sZW5ndGg8PVMpcmV0dXJu'@; put 'IHRoaXMuX2V4cGFuZChTKzEpLHRoaXMud29yZHNbU118PXYsdGhpcztmb3IodmFyIHA9dix3PVM7MCE9PXAmJnc8dGhpcy5sZW5ndGg7dysrKXt2YXIgSj0wfHRoaXMud29yZHNbd107cD0oSis9cCk+Pj4yNix0aGlzLndvcmRzW3ddPUomPTY3MTA4ODYzfXJldHVybiAwIT09cCYmKHRoaXMu'@; put 'd29yZHNbd109cCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sRS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgQyxTPWc8MDtpZigwIT09dGhpcy5uZWdhdGl2'@; put 'ZSYmIVMpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJlMpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpQz0xO2Vsc2V7UyYmKGc9LWcpLEkoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHY9MHx0aGlzLndvcmRzWzBdO0M9dj09PWc/MDp2'@; put 'PGc/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtQzpDfSxFLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIg'@; put 'Qz10aGlzLnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LUM6Q30sRS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEM9MCxTPXRoaXMubGVu'@; put 'Z3RoLTE7Uz49MDtTLS0pe3ZhciB2PTB8dGhpcy53b3Jkc1tTXSxwPTB8Zy53b3Jkc1tTXTtpZih2IT09cCl7djxwP0M9LTE6dj5wJiYoQz0xKTticmVha319cmV0dXJuIEN9LEUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sRS5wcm90b3R5cGUu'@; put 'Z3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcChnKX0sRS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSxFLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSxFLnByb3RvdHlwZS5sdG49ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LEUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LEUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sRS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiB0aGlzLmNtcChnKTw9MH0sRS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSxFLnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSxFLnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IEgoZyl9LEUucHJv'@; put 'dG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVk'@; put 'KGcpfSxFLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sRS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0'@; put 'aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LEUucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5yZWRBZGQ9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVk'@; put 'IG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRJU3ViPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJl'@; put 'ZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMs'@; put 'Zyl9LEUucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LEUucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSVNxciB3'@; put 'b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp'@; put 'cy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sRS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlu'@; put 'dm0odGhpcyl9LEUucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIEkodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIGhlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdWUoZyxD'@; put 'KXt0aGlzLm5hbWU9Zyx0aGlzLnA9bmV3IEUoQywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IEUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIGNlKCl7dWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZm'@; put 'ZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBHKCl7dWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEi'@; put 'KX1mdW5jdGlvbiBiKCl7dWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBEKCl7dWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZm'@; put 'ZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBIKGcpe2lmKCJzdHJpbmciPT10eXBlb2YgZyl7dmFyIEM9RS5fcHJpbWUoZyk7dGhpcy5tPUMucCx0aGlzLnByaW1lPUN9ZWxzZSBJKGcuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlz'@; put 'Lm09Zyx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTihnKXtILmNhbGwodGhpcyxnKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBFKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0'@; put 'aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5y'@; put 'LnN1Yih0aGlzLm1pbnYpfXVlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IEUobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSx1ZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgQyxTPWc7ZG97dGhpcy5z'@; put 'cGxpdChTLHRoaXMudG1wKSxDPShTPShTPXRoaXMuaW11bEsoUykpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShDPnRoaXMubik7dmFyIHY9Qzx0aGlzLm4/LTE6Uy51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT12PyhTLndvcmRzWzBdPTAsUy5sZW5ndGg9MSk6dj4wP1MuaXN1'@; put 'Yih0aGlzLnApOnZvaWQgMCE9PVMuc3RyaXA/Uy5zdHJpcCgpOlMuX3N0cmlwKCksU30sdWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcsQyl7Zy5pdXNocm4odGhpcy5uLDAsQyl9LHVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LGsoY2Us'@; put 'dWUpLGNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLEMpe2Zvcih2YXIgUz00MTk0MzAzLHY9TWF0aC5taW4oZy5sZW5ndGgsOSkscD0wO3A8djtwKyspQy53b3Jkc1twXT1nLndvcmRzW3BdO2lmKEMubGVuZ3RoPXYsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcu'@; put 'bGVuZ3RoPTEpO3ZhciB3PWcud29yZHNbOV07Zm9yKEMud29yZHNbQy5sZW5ndGgrK109dyZTLHA9MTA7cDxnLmxlbmd0aDtwKyspe3ZhciBKPTB8Zy53b3Jkc1twXTtnLndvcmRzW3AtMTBdPShKJlMpPDw0fHc+Pj4yMix3PUp9Zy53b3Jkc1twLTEwXT13Pj4+PTIyLGcubGVuZ3RoLT0wPT09'@; put 'dyYmZy5sZW5ndGg+MTA/MTA6OX0sY2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgQz0wLFM9MDtTPGcubGVuZ3RoO1MrKyl7dmFyIHY9MHxnLndvcmRzW1NdO2cud29yZHNb'@; put 'U109NjcxMDg4NjMmKEMrPTk3Nyp2KSxDPTY0KnYrKEMvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sayhHLHVlKSxrKGIsdWUpLGsoRCx1ZSksRC5wcm90b3R5cGUu'@; put 'aW11bEs9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPTAsUz0wO1M8Zy5sZW5ndGg7UysrKXt2YXIgdj0xOSooMHxnLndvcmRzW1NdKStDLHA9NjcxMDg4NjMmdjt2Pj4+PTI2LGcud29yZHNbU109cCxDPXZ9cmV0dXJuIDAhPT1DJiYoZy53b3Jkc1tnLmxlbmd0aCsrXT1DKSxnfSxFLl9wcmltZT1m'@; put 'dW5jdGlvbihnKXtpZihoZVtnXSlyZXR1cm4gaGVbZ107dmFyIEM7aWYoImsyNTYiPT09ZylDPW5ldyBjZTtlbHNlIGlmKCJwMjI0Ij09PWcpQz1uZXcgRztlbHNlIGlmKCJwMTkyIj09PWcpQz1uZXcgYjtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJp'@; put 'bWUgIitnKTtDPW5ldyBEfXJldHVybiBoZVtnXT1DLEN9LEgucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGcpe0koMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnBy'@; put 'b3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLEMpe0koMD09KGcubmVnYXRpdmV8Qy5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCYmZy5yZWQ9PT1DLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5p'@; put 'bW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMu'@; put 'bS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5hZGQoQyk7cmV0dXJuIFMuY21wKHRoaXMubSk+PTAmJlMuaXN1Yih0aGlzLm0pLFMuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5pYWRk'@; put 'PWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuaWFkZChDKTtyZXR1cm4gUy5jbXAodGhpcy5tKT49MCYmUy5pc3ViKHRoaXMubSksU30sSC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuc3ViKEMpO3JldHVybiBT'@; put 'LmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksUy5fZm9yY2VSZWQodGhpcyl9LEgucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5pc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksU30sSC5wcm90b3R5cGUuc2hs'@; put 'PWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoZyksdGhpcy5pbW9kKGcudXNobG4oQykpfSxILnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5pbXVsKEMpKX0sSC5wcm90b3R5cGUubXVsPWZ1bmN0aW9u'@; put 'KGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5tdWwoQykpfSxILnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxILnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LEgu'@; put 'cHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYoZy5pc1plcm8oKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPXRoaXMubS5hbmRsbigzKTtpZihJKEMlMj09MSksMz09PUMpe3ZhciBTPXRoaXMubS5hZGQobmV3IEUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyxTKX1mb3IodmFy'@; put 'IHY9dGhpcy5tLnN1Ym4oMSkscD0wOyF2LmlzWmVybygpJiYwPT09di5hbmRsbigxKTspcCsrLHYuaXVzaHJuKDEpO0koIXYuaXNaZXJvKCkpO3ZhciB3PW5ldyBFKDEpLnRvUmVkKHRoaXMpLEo9dy5yZWROZWcoKSxuZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksZGU9dGhpcy5tLmJpdExl'@; put 'bmd0aCgpO2ZvcihkZT1uZXcgRSgyKmRlKmRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coZGUsbmUpLmNtcChKKTspZGUucmVkSUFkZChKKTtmb3IodmFyIGZlPXRoaXMucG93KGRlLHYpLHhlPXRoaXMucG93KGcsdi5hZGRuKDEpLml1c2hybigxKSksTGU9dGhpcy5wb3coZyx2KSxGZT1w'@; put 'OzAhPT1MZS5jbXAodyk7KXtmb3IodmFyIE9lPUxlLGplPTA7MCE9PU9lLmNtcCh3KTtqZSsrKU9lPU9lLnJlZFNxcigpO0koamU8RmUpO3ZhciBXZT10aGlzLnBvdyhmZSxuZXcgRSgxKS5pdXNobG4oRmUtamUtMSkpO3hlPXhlLnJlZE11bChXZSksZmU9V2UucmVkU3FyKCksTGU9TGUucmVk'@; put 'TXVsKGZlKSxGZT1qZX1yZXR1cm4geGV9LEgucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7dmFyIEM9Zy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PUMubmVnYXRpdmU/KEMubmVnYXRpdmU9MCx0aGlzLmltb2QoQykucmVkTmVnKCkpOnRoaXMuaW1vZChDKX0sSC5wcm90b3R5cGUucG93'@; put 'PWZ1bmN0aW9uKGcsQyl7aWYoQy5pc1plcm8oKSlyZXR1cm4gbmV3IEUoMSkudG9SZWQodGhpcyk7aWYoMD09PUMuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBTPW5ldyBBcnJheSgxNik7U1swXT1uZXcgRSgxKS50b1JlZCh0aGlzKSxTWzFdPWc7Zm9yKHZhciB2PTI7djxTLmxlbmd0'@; put 'aDt2KyspU1t2XT10aGlzLm11bChTW3YtMV0sZyk7dmFyIHA9U1swXSx3PTAsSj0wLG5lPUMuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1uZSYmKG5lPTI2KSx2PUMubGVuZ3RoLTE7dj49MDt2LS0pe2Zvcih2YXIgZGU9Qy53b3Jkc1t2XSxmZT1uZS0xO2ZlPj0wO2ZlLS0pe3ZhciB4ZT1kZT4+'@; put 'ZmUmMTtwIT09U1swXSYmKHA9dGhpcy5zcXIocCkpLDAhPT14ZXx8MCE9PXc/KHc8PD0xLHd8PXhlLCg0PT0rK0p8fDA9PT12JiYwPT09ZmUpJiYocD10aGlzLm11bChwLFNbd10pLEo9MCx3PTApKTpKPTB9bmU9MjZ9cmV0dXJuIHB9LEgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihn'@; put 'KXt2YXIgQz1nLnVtb2QodGhpcy5tKTtyZXR1cm4gQz09PWc/Qy5jbG9uZSgpOkN9LEgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPWcuY2xvbmUoKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxFLm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBOKGcpfSxrKE4sSCks'@; put 'Ti5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltb2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LE4ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxO'@; put 'LnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5pc1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgUz1nLmltdWwoQyksdj1TLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwo'@; put 'dGhpcy5tKSxwPVMuaXN1Yih2KS5pdXNocm4odGhpcy5zaGlmdCksdz1wO3JldHVybiBwLmNtcCh0aGlzLm0pPj0wP3c9cC5pc3ViKHRoaXMubSk6cC5jbXBuKDApPDAmJih3PXAuaWFkZCh0aGlzLm0pKSx3Ll9mb3JjZVJlZCh0aGlzKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7'@; put 'aWYoZy5pc1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gbmV3IEUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBTPWcubXVsKEMpLHY9Uy5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscD1TLmlzdWIodikuaXVzaHJuKHRoaXMu'@; put 'c2hpZnQpLHc9cDtyZXR1cm4gcC5jbXAodGhpcy5tKT49MD93PXAuaXN1Yih0aGlzLm0pOnAuY21wbigwKTwwJiYodz1wLmlhZGQodGhpcy5tKSksdy5fZm9yY2VSZWQodGhpcyl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0p'@; put 'Lm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oTT1SLm5tZChNKSx0aGlzKX0sOTI4MjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDE1NSksSz1SKDUxMDgpO2Z1bmN0aW9uIEkoZmUpe3JldHVybihJPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10'@; put 'eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHhlKXtyZXR1cm4gdHlwZW9mIHhlfTpmdW5jdGlvbih4ZSl7cmV0dXJuIHhlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ4ZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmeGUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVv'@; put 'ZiB4ZX0pKGZlKX12YXIgayxFLGo9UigyMTM2KS5jb2RlcyxWPWouRVJSX0FNQklHVU9VU19BUkdVTUVOVCxCPWouRVJSX0lOVkFMSURfQVJHX1RZUEUsWT1qLkVSUl9JTlZBTElEX0FSR19WQUxVRSxYPWouRVJSX0lOVkFMSURfUkVUVVJOX1ZBTFVFLFU9ai5FUlJfTUlTU0lOR19BUkdTLHE9'@; put 'Uig1OTYxKSxlZT1SKDk1MzkpLmluc3BlY3QsdGU9Uig5NTM5KS50eXBlcyxvZT10ZS5pc1Byb21pc2Usc2U9dGUuaXNSZWdFeHAsaGU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduOlIoODA5MSkuYXNzaWduLHVlPU9iamVjdC5pcz9PYmplY3QuaXM6Uig2MDkpO2Z1bmN0aW9uIGNlKCl7'@; put 'dmFyIGZlPVIoOTE1OCk7az1mZS5pc0RlZXBFcXVhbCxFPWZlLmlzRGVlcFN0cmljdEVxdWFsfXZhciBHPSExLGI9TS5leHBvcnRzPWcsRD17fTtmdW5jdGlvbiBIKGZlKXt0aHJvdyBmZS5tZXNzYWdlIGluc3RhbmNlb2YgRXJyb3I/ZmUubWVzc2FnZTpuZXcgcShmZSl9ZnVuY3Rpb24gTihm'@; put 'ZSx4ZSxMZSxGZSl7aWYoIUxlKXt2YXIgT2U9ITE7aWYoMD09PXhlKU9lPSEwLEZlPSJObyB2YWx1ZSBhcmd1bWVudCBwYXNzZWQgdG8gYGFzc2VydC5vaygpYCI7ZWxzZSBpZihGZSBpbnN0YW5jZW9mIEVycm9yKXRocm93IEZlO3ZhciBqZT1uZXcgcSh7YWN0dWFsOkxlLGV4cGVjdGVkOiEw'@; put 'LG1lc3NhZ2U6RmUsb3BlcmF0b3I6Ij09IixzdGFja1N0YXJ0Rm46ZmV9KTt0aHJvdyBqZS5nZW5lcmF0ZWRNZXNzYWdlPU9lLGplfX1mdW5jdGlvbiBnKCl7Zm9yKHZhciBmZT1hcmd1bWVudHMubGVuZ3RoLHhlPW5ldyBBcnJheShmZSksTGU9MDtMZTxmZTtMZSsrKXhlW0xlXT1hcmd1bWVu'@; put 'dHNbTGVdO04uYXBwbHkodm9pZCAwLFtnLHhlLmxlbmd0aF0uY29uY2F0KHhlKSl9Yi5mYWlsPWZ1bmN0aW9uIGZlKHhlLExlLEZlLE9lLGplKXt2YXIgV2UsS2U9YXJndW1lbnRzLmxlbmd0aDtpZigwPT09S2U/V2U9IkZhaWxlZCI6MT09PUtlPyhGZT14ZSx4ZT12b2lkIDApOighMT09PUcm'@; put 'JihHPSEwLCh6LmVtaXRXYXJuaW5nP3ouZW1pdFdhcm5pbmc6Sy53YXJuLmJpbmQoSykpKCJhc3NlcnQuZmFpbCgpIHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGFzc2VydC5zdHJpY3RFcXVhbCgpIGluc3RlYWQgb3Igb25seSBwYXNzIGEg'@; put 'bWVzc2FnZS4iLCJEZXByZWNhdGlvbldhcm5pbmciLCJERVAwMDk0IikpLDI9PT1LZSYmKE9lPSIhPSIpKSxGZSBpbnN0YW5jZW9mIEVycm9yKXRocm93IEZlO3ZhciBZZT17YWN0dWFsOnhlLGV4cGVjdGVkOkxlLG9wZXJhdG9yOnZvaWQgMD09PU9lPyJmYWlsIjpPZSxzdGFja1N0YXJ0Rm46'@; put 'amV8fGZlfTt2b2lkIDAhPT1GZSYmKFllLm1lc3NhZ2U9RmUpO3ZhciBRZT1uZXcgcShZZSk7dGhyb3cgV2UmJihRZS5tZXNzYWdlPVdlLFFlLmdlbmVyYXRlZE1lc3NhZ2U9ITApLFFlfSxiLkFzc2VydGlvbkVycm9yPXEsYi5vaz1nLGIuZXF1YWw9ZnVuY3Rpb24gZmUoeGUsTGUsRmUpe2lm'@; put 'KGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgVSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTt4ZSE9TGUmJkgoe2FjdHVhbDp4ZSxleHBlY3RlZDpMZSxtZXNzYWdlOkZlLG9wZXJhdG9yOiI9PSIsc3RhY2tTdGFydEZuOmZlfSl9LGIubm90RXF1YWw9ZnVuY3Rpb24gZmUoeGUsTGUsRmUpe2lm'@; put 'KGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgVSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTt4ZT09TGUmJkgoe2FjdHVhbDp4ZSxleHBlY3RlZDpMZSxtZXNzYWdlOkZlLG9wZXJhdG9yOiIhPSIsc3RhY2tTdGFydEZuOmZlfSl9LGIuZGVlcEVxdWFsPWZ1bmN0aW9uIGZlKHhlLExlLEZlKXtp'@; put 'Zihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IFUoImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09ayYmY2UoKSxrKHhlLExlKXx8SCh7YWN0dWFsOnhlLGV4cGVjdGVkOkxlLG1lc3NhZ2U6RmUsb3BlcmF0b3I6ImRlZXBFcXVhbCIsc3RhY2tTdGFydEZuOmZlfSl9LGIubm90RGVl'@; put 'cEVxdWFsPWZ1bmN0aW9uIGZlKHhlLExlLEZlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IFUoImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09ayYmY2UoKSxrKHhlLExlKSYmSCh7YWN0dWFsOnhlLGV4cGVjdGVkOkxlLG1lc3NhZ2U6RmUsb3BlcmF0b3I6Im5vdERlZXBF'@; put 'cXVhbCIsc3RhY2tTdGFydEZuOmZlfSl9LGIuZGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIGZlKHhlLExlLEZlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IFUoImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09ayYmY2UoKSxFKHhlLExlKXx8SCh7YWN0dWFsOnhlLGV4cGVj'@; put 'dGVkOkxlLG1lc3NhZ2U6RmUsb3BlcmF0b3I6ImRlZXBTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOmZlfSl9LGIubm90RGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIGZlKHhlLExlLEZlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IFUoImFjdHVhbCIsImV4cGVjdGVkIik7dm9p'@; put 'ZCAwPT09ayYmY2UoKSxFKHhlLExlKSYmSCh7YWN0dWFsOnhlLGV4cGVjdGVkOkxlLG1lc3NhZ2U6RmUsb3BlcmF0b3I6Im5vdERlZXBTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOmZlfSl9LGIuc3RyaWN0RXF1YWw9ZnVuY3Rpb24gZmUoeGUsTGUsRmUpe2lmKGFyZ3VtZW50cy5sZW5ndGg8'@; put 'Mil0aHJvdyBuZXcgVSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTt1ZSh4ZSxMZSl8fEgoe2FjdHVhbDp4ZSxleHBlY3RlZDpMZSxtZXNzYWdlOkZlLG9wZXJhdG9yOiJzdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOmZlfSl9LGIubm90U3RyaWN0RXF1YWw9ZnVuY3Rpb24gZmUoeGUsTGUsRmUpe2lm'@; put 'KGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgVSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTt1ZSh4ZSxMZSkmJkgoe2FjdHVhbDp4ZSxleHBlY3RlZDpMZSxtZXNzYWdlOkZlLG9wZXJhdG9yOiJub3RTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOmZlfSl9O3ZhciBDPWZ1bmN0aW9uIGZlKHhl'@; put 'LExlLEZlKXt2YXIgT2U9dGhpczsoZnVuY3Rpb24oamUsV2Upe2lmKCEoamUgaW5zdGFuY2VvZiBXZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGZlKSxMZS5mb3JFYWNoKGZ1bmN0aW9uKGplKXtqZSBpbiB4ZSYmKE9l'@; put 'W2plXT12b2lkIDAhPT1GZSYmInN0cmluZyI9PXR5cGVvZiBGZVtqZV0mJnNlKHhlW2plXSkmJnhlW2plXS50ZXN0KEZlW2plXSk/RmVbamVdOnhlW2plXSl9KX07ZnVuY3Rpb24gUyhmZSx4ZSxMZSxGZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHhlKXtpZihzZSh4ZSkpcmV0dXJuIHhlLnRl'@; put 'c3QoZmUpO2lmKDI9PT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBCKCJleHBlY3RlZCIsWyJGdW5jdGlvbiIsIlJlZ0V4cCJdLHhlKTtpZigib2JqZWN0IiE9PUkoZmUpfHxudWxsPT09ZmUpe3ZhciBPZT1uZXcgcSh7YWN0dWFsOmZlLGV4cGVjdGVkOnhlLG1lc3NhZ2U6TGUsb3BlcmF0'@; put 'b3I6ImRlZXBTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOkZlfSk7dGhyb3cgT2Uub3BlcmF0b3I9RmUubmFtZSxPZX12YXIgamU9T2JqZWN0LmtleXMoeGUpO2lmKHhlIGluc3RhbmNlb2YgRXJyb3IpamUucHVzaCgibmFtZSIsIm1lc3NhZ2UiKTtlbHNlIGlmKDA9PT1qZS5sZW5ndGgpdGhy'@; put 'b3cgbmV3IFkoImVycm9yIix4ZSwibWF5IG5vdCBiZSBhbiBlbXB0eSBvYmplY3QiKTtyZXR1cm4gdm9pZCAwPT09ayYmY2UoKSxqZS5mb3JFYWNoKGZ1bmN0aW9uKFdlKXsic3RyaW5nIj09dHlwZW9mIGZlW1dlXSYmc2UoeGVbV2VdKSYmeGVbV2VdLnRlc3QoZmVbV2VdKXx8ZnVuY3Rpb24o'@; put 'S2UsWWUsUWUsbHQsUGUsYmUpe2lmKCEoUWUgaW4gS2UpfHwhRShLZVtRZV0sWWVbUWVdKSl7aWYoIWx0KXt2YXIgQWU9bmV3IEMoS2UsUGUpLFRlPW5ldyBDKFllLFBlLEtlKSxxZT1uZXcgcSh7YWN0dWFsOkFlLGV4cGVjdGVkOlRlLG9wZXJhdG9yOiJkZWVwU3RyaWN0RXF1YWwiLHN0YWNr'@; put 'U3RhcnRGbjpiZX0pO3Rocm93IHFlLmFjdHVhbD1LZSxxZS5leHBlY3RlZD1ZZSxxZS5vcGVyYXRvcj1iZS5uYW1lLHFlfUgoe2FjdHVhbDpLZSxleHBlY3RlZDpZZSxtZXNzYWdlOmx0LG9wZXJhdG9yOmJlLm5hbWUsc3RhY2tTdGFydEZuOmJlfSl9fShmZSx4ZSxXZSxMZSxqZSxGZSl9KSwh'@; put 'MH1yZXR1cm4gdm9pZCAwIT09eGUucHJvdG90eXBlJiZmZSBpbnN0YW5jZW9mIHhlfHwhRXJyb3IuaXNQcm90b3R5cGVPZih4ZSkmJiEwPT09eGUuY2FsbCh7fSxmZSl9ZnVuY3Rpb24gdihmZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGZlKXRocm93IG5ldyBCKCJmbiIsIkZ1bmN0aW9uIixm'@; put 'ZSk7dHJ5e2ZlKCl9Y2F0Y2goeGUpe3JldHVybiB4ZX1yZXR1cm4gRH1mdW5jdGlvbiBwKGZlKXtyZXR1cm4gb2UoZmUpfHxudWxsIT09ZmUmJiJvYmplY3QiPT09SShmZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBmZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgZmUuY2F0Y2h9ZnVuY3Rpb24g'@; put 'dyhmZSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgeGU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGZlKXtpZighcCh4ZT1mZSgpKSl0aHJvdyBuZXcgWCgiaW5zdGFuY2Ugb2YgUHJvbWlzZSIsInByb21pc2VGbiIseGUpfWVsc2V7aWYoIXAoZmUpKXRocm93'@; put 'IG5ldyBCKCJwcm9taXNlRm4iLFsiRnVuY3Rpb24iLCJQcm9taXNlIl0sZmUpO3hlPWZlfXJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHhlfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBEfSkuY2F0Y2goZnVuY3Rpb24oTGUpe3JldHVybiBMZX0pfSl9'@; put 'ZnVuY3Rpb24gSihmZSx4ZSxMZSxGZSl7aWYoInN0cmluZyI9PXR5cGVvZiBMZSl7aWYoND09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEIoImVycm9yIixbIk9iamVjdCIsIkVycm9yIiwiRnVuY3Rpb24iLCJSZWdFeHAiXSxMZSk7aWYoIm9iamVjdCI9PT1JKHhlKSYmbnVsbCE9PXhl'@; put 'KXtpZih4ZS5tZXNzYWdlPT09TGUpdGhyb3cgbmV3IFYoImVycm9yL21lc3NhZ2UiLCdUaGUgZXJyb3IgbWVzc2FnZSAiJy5jb25jYXQoeGUubWVzc2FnZSwnIiBpcyBpZGVudGljYWwgdG8gdGhlIG1lc3NhZ2UuJykpfWVsc2UgaWYoeGU9PT1MZSl0aHJvdyBuZXcgVigiZXJyb3IvbWVzc2Fn'@; put 'ZSIsJ1RoZSBlcnJvciAiJy5jb25jYXQoeGUsJyIgaXMgaWRlbnRpY2FsIHRvIHRoZSBtZXNzYWdlLicpKTtGZT1MZSxMZT12b2lkIDB9ZWxzZSBpZihudWxsIT1MZSYmIm9iamVjdCIhPT1JKExlKSYmImZ1bmN0aW9uIiE9dHlwZW9mIExlKXRocm93IG5ldyBCKCJlcnJvciIsWyJPYmplY3Qi'@; put 'LCJFcnJvciIsIkZ1bmN0aW9uIiwiUmVnRXhwIl0sTGUpO2lmKHhlPT09RCl7dmFyIE9lPSIiO0xlJiZMZS5uYW1lJiYoT2UrPSIgKCIuY29uY2F0KExlLm5hbWUsIikiKSksT2UrPUZlPyI6ICIuY29uY2F0KEZlKToiLiIsSCh7YWN0dWFsOnZvaWQgMCxleHBlY3RlZDpMZSxvcGVyYXRvcjpm'@; put 'ZS5uYW1lLG1lc3NhZ2U6Ik1pc3NpbmcgZXhwZWN0ZWQgIi5jb25jYXQoInJlamVjdHMiPT09ZmUubmFtZT8icmVqZWN0aW9uIjoiZXhjZXB0aW9uIikuY29uY2F0KE9lKSxzdGFja1N0YXJ0Rm46ZmV9KX1pZihMZSYmIVMoeGUsTGUsRmUsZmUpKXRocm93IHhlfWZ1bmN0aW9uIG5lKGZlLHhl'@; put 'LExlLEZlKXtpZih4ZSE9PUQpe2lmKCJzdHJpbmciPT10eXBlb2YgTGUmJihGZT1MZSxMZT12b2lkIDApLCFMZXx8Uyh4ZSxMZSkpe3ZhciBPZT1GZT8iOiAiLmNvbmNhdChGZSk6Ii4iO0goe2FjdHVhbDp4ZSxleHBlY3RlZDpMZSxvcGVyYXRvcjpmZS5uYW1lLG1lc3NhZ2U6IkdvdCB1bndh'@; put 'bnRlZCAiLmNvbmNhdCgiZG9lc05vdFJlamVjdCI9PT1mZS5uYW1lPyJyZWplY3Rpb24iOiJleGNlcHRpb24iKS5jb25jYXQoT2UsIlxuIikrJ0FjdHVhbCBtZXNzYWdlOiAiJy5jb25jYXQoeGUmJnhlLm1lc3NhZ2UsJyInKSxzdGFja1N0YXJ0Rm46ZmV9KX10aHJvdyB4ZX19ZnVuY3Rpb24g'@; put 'ZGUoKXtmb3IodmFyIGZlPWFyZ3VtZW50cy5sZW5ndGgseGU9bmV3IEFycmF5KGZlKSxMZT0wO0xlPGZlO0xlKyspeGVbTGVdPWFyZ3VtZW50c1tMZV07Ti5hcHBseSh2b2lkIDAsW2RlLHhlLmxlbmd0aF0uY29uY2F0KHhlKSl9Yi50aHJvd3M9ZnVuY3Rpb24gZmUoeGUpe2Zvcih2YXIgTGU9'@; put 'YXJndW1lbnRzLmxlbmd0aCxGZT1uZXcgQXJyYXkoTGU+MT9MZS0xOjApLE9lPTE7T2U8TGU7T2UrKylGZVtPZS0xXT1hcmd1bWVudHNbT2VdO0ouYXBwbHkodm9pZCAwLFtmZSx2KHhlKV0uY29uY2F0KEZlKSl9LGIucmVqZWN0cz1mdW5jdGlvbiBmZSh4ZSl7Zm9yKHZhciBMZT1hcmd1bWVu'@; put 'dHMubGVuZ3RoLEZlPW5ldyBBcnJheShMZT4xP0xlLTE6MCksT2U9MTtPZTxMZTtPZSsrKUZlW09lLTFdPWFyZ3VtZW50c1tPZV07cmV0dXJuIHcoeGUpLnRoZW4oZnVuY3Rpb24oamUpe3JldHVybiBKLmFwcGx5KHZvaWQgMCxbZmUsamVdLmNvbmNhdChGZSkpfSl9LGIuZG9lc05vdFRocm93'@; put 'PWZ1bmN0aW9uIGZlKHhlKXtmb3IodmFyIExlPWFyZ3VtZW50cy5sZW5ndGgsRmU9bmV3IEFycmF5KExlPjE/TGUtMTowKSxPZT0xO09lPExlO09lKyspRmVbT2UtMV09YXJndW1lbnRzW09lXTtuZS5hcHBseSh2b2lkIDAsW2ZlLHYoeGUpXS5jb25jYXQoRmUpKX0sYi5kb2VzTm90UmVqZWN0'@; put 'PWZ1bmN0aW9uIGZlKHhlKXtmb3IodmFyIExlPWFyZ3VtZW50cy5sZW5ndGgsRmU9bmV3IEFycmF5KExlPjE/TGUtMTowKSxPZT0xO09lPExlO09lKyspRmVbT2UtMV09YXJndW1lbnRzW09lXTtyZXR1cm4gdyh4ZSkudGhlbihmdW5jdGlvbihqZSl7cmV0dXJuIG5lLmFwcGx5KHZvaWQgMCxb'@; put 'ZmUsamVdLmNvbmNhdChGZSkpfSl9LGIuaWZFcnJvcj1mdW5jdGlvbiBmZSh4ZSl7aWYobnVsbCE9eGUpe3ZhciBMZT0iaWZFcnJvciBnb3QgdW53YW50ZWQgZXhjZXB0aW9uOiAiOyJvYmplY3QiPT09SSh4ZSkmJiJzdHJpbmciPT10eXBlb2YgeGUubWVzc2FnZT9MZSs9MD09PXhlLm1lc3Nh'@; put 'Z2UubGVuZ3RoJiZ4ZS5jb25zdHJ1Y3Rvcj94ZS5jb25zdHJ1Y3Rvci5uYW1lOnhlLm1lc3NhZ2U6TGUrPWVlKHhlKTt2YXIgRmU9bmV3IHEoe2FjdHVhbDp4ZSxleHBlY3RlZDpudWxsLG9wZXJhdG9yOiJpZkVycm9yIixtZXNzYWdlOkxlLHN0YWNrU3RhcnRGbjpmZX0pLE9lPXhlLnN0YWNr'@; put 'O2lmKCJzdHJpbmciPT10eXBlb2YgT2Upe3ZhciBqZT1PZS5zcGxpdCgiXG4iKTtqZS5zaGlmdCgpO2Zvcih2YXIgV2U9RmUuc3RhY2suc3BsaXQoIlxuIiksS2U9MDtLZTxqZS5sZW5ndGg7S2UrKyl7dmFyIFllPVdlLmluZGV4T2YoamVbS2VdKTtpZigtMSE9PVllKXtXZT1XZS5zbGljZSgw'@; put 'LFllKTticmVha319RmUuc3RhY2s9IiIuY29uY2F0KFdlLmpvaW4oIlxuIiksIlxuIikuY29uY2F0KGplLmpvaW4oIlxuIikpfXRocm93IEZlfX0sYi5zdHJpY3Q9aGUoZGUsYix7ZXF1YWw6Yi5zdHJpY3RFcXVhbCxkZWVwRXF1YWw6Yi5kZWVwU3RyaWN0RXF1YWwsbm90RXF1YWw6Yi5ub3RT'@; put 'dHJpY3RFcXVhbCxub3REZWVwRXF1YWw6Yi5ub3REZWVwU3RyaWN0RXF1YWx9KSxiLnN0cmljdC5zdHJpY3Q9Yi5zdHJpY3R9LDU5NjE6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUpO2Z1bmN0aW9uIEsoTixnLEMpe3JldHVybiBnIGluIE4/T2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KE4sZyx7dmFsdWU6QyxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOk5bZ109QyxOfWZ1bmN0aW9uIGsoTixnKXtyZXR1cm4hZ3x8Im9iamVjdCIhPT1YKGcpJiYiZnVuY3Rpb24iIT10eXBlb2YgZz9FKE4pOmd9ZnVuY3Rpb24gRShOKXtpZih2b2lkIDA9'@; put 'PT1OKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIE59ZnVuY3Rpb24gaihOKXt2YXIgZz0iZnVuY3Rpb24iPT10eXBlb2YgTWFwP25ldyBNYXA6dm9pZCAwO3JldHVybiBq'@; put 'PWZ1bmN0aW9uKEMpe2lmKG51bGw9PT1DfHwtMT09PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwoQykuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpKXJldHVybiBDO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBDKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIg'@; put 'YmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7aWYodm9pZCAwIT09Zyl7aWYoZy5oYXMoQykpcmV0dXJuIGcuZ2V0KEMpO2cuc2V0KEMsdil9ZnVuY3Rpb24gdigpe3JldHVybiBWKEMsYXJndW1lbnRzLFkodGhpcykuY29uc3RydWN0b3IpfXJldHVybiB2LnByb3RvdHlwZT1PYmplY3QuY3JlYXRl'@; put 'KEMucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dixlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxCKHYsQyl9LGooTil9ZnVuY3Rpb24gVihOLGcsQyl7cmV0dXJuKFY9ZnVuY3Rpb24oKXtpZih0eXBlb2YgUmVmbGVjdD4idSJ8fCFSZWZsZWN0LmNv'@; put 'bnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0'@; put 'Y2h7cmV0dXJuITF9fSgpP1JlZmxlY3QuY29uc3RydWN0OmZ1bmN0aW9uKFMsdixwKXt2YXIgdz1bbnVsbF07dy5wdXNoLmFwcGx5KHcsdik7dmFyIEo9bmV3KEZ1bmN0aW9uLmJpbmQuYXBwbHkoUyx3KSk7cmV0dXJuIHAmJkIoSixwLnByb3RvdHlwZSksSn0pLmFwcGx5KG51bGwsYXJndW1l'@; put 'bnRzKX1mdW5jdGlvbiBCKE4sZyl7cmV0dXJuKEI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihDLFMpe3JldHVybiBDLl9fcHJvdG9fXz1TLEN9KShOLGcpfWZ1bmN0aW9uIFkoTil7cmV0dXJuKFk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpm'@; put 'dW5jdGlvbihnKXtyZXR1cm4gZy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihnKX0pKE4pfWZ1bmN0aW9uIFgoTil7cmV0dXJuKFg9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5'@; put 'cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShOKX12YXIgVT1SKDk1MzkpLmluc3BlY3QscT1SKDIxMzYpLmNvZGVzLkVS'@; put 'Ul9JTlZBTElEX0FSR19UWVBFO2Z1bmN0aW9uIGVlKE4sZyxDKXtyZXR1cm4odm9pZCAwPT09Q3x8Qz5OLmxlbmd0aCkmJihDPU4ubGVuZ3RoKSxOLnN1YnN0cmluZyhDLWcubGVuZ3RoLEMpPT09Z312YXIgdGU9IiIsb2U9IiIsc2U9IiIsaGU9IiIsdWU9e2RlZXBTdHJpY3RFcXVhbDoiRXhw'@; put 'ZWN0ZWQgdmFsdWVzIHRvIGJlIHN0cmljdGx5IGRlZXAtZXF1YWw6IixzdHJpY3RFcXVhbDoiRXhwZWN0ZWQgdmFsdWVzIHRvIGJlIHN0cmljdGx5IGVxdWFsOiIsc3RyaWN0RXF1YWxPYmplY3Q6J0V4cGVjdGVkICJhY3R1YWwiIHRvIGJlIHJlZmVyZW5jZS1lcXVhbCB0byAiZXhwZWN0ZWQi'@; put 'OicsZGVlcEVxdWFsOiJFeHBlY3RlZCB2YWx1ZXMgdG8gYmUgbG9vc2VseSBkZWVwLWVxdWFsOiIsZXF1YWw6IkV4cGVjdGVkIHZhbHVlcyB0byBiZSBsb29zZWx5IGVxdWFsOiIsbm90RGVlcFN0cmljdEVxdWFsOidFeHBlY3RlZCAiYWN0dWFsIiBub3QgdG8gYmUgc3RyaWN0bHkgZGVlcC1l'@; put 'cXVhbCB0bzonLG5vdFN0cmljdEVxdWFsOidFeHBlY3RlZCAiYWN0dWFsIiB0byBiZSBzdHJpY3RseSB1bmVxdWFsIHRvOicsbm90U3RyaWN0RXF1YWxPYmplY3Q6J0V4cGVjdGVkICJhY3R1YWwiIG5vdCB0byBiZSByZWZlcmVuY2UtZXF1YWwgdG8gImV4cGVjdGVkIjonLG5vdERlZXBFcXVh'@; put 'bDonRXhwZWN0ZWQgImFjdHVhbCIgbm90IHRvIGJlIGxvb3NlbHkgZGVlcC1lcXVhbCB0bzonLG5vdEVxdWFsOidFeHBlY3RlZCAiYWN0dWFsIiB0byBiZSBsb29zZWx5IHVuZXF1YWwgdG86Jyxub3RJZGVudGljYWw6IlZhbHVlcyBpZGVudGljYWwgYnV0IG5vdCByZWZlcmVuY2UtZXF1YWw6'@; put 'In07ZnVuY3Rpb24gRyhOKXt2YXIgZz1PYmplY3Qua2V5cyhOKSxDPU9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKE4pKTtyZXR1cm4gZy5mb3JFYWNoKGZ1bmN0aW9uKFMpe0NbU109TltTXX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDLCJtZXNzYWdlIix7dmFsdWU6Ti5t'@; put 'ZXNzYWdlfSksQ31mdW5jdGlvbiBiKE4pe3JldHVybiBVKE4se2NvbXBhY3Q6ITEsY3VzdG9tSW5zcGVjdDohMSxkZXB0aDoxZTMsbWF4QXJyYXlMZW5ndGg6MS8wLHNob3dIaWRkZW46ITEsYnJlYWtMZW5ndGg6MS8wLHNob3dQcm94eTohMSxzb3J0ZWQ6ITAsZ2V0dGVyczohMH0pfXZhciBI'@; put 'PWZ1bmN0aW9uKE4pe2Z1bmN0aW9uIGcocCl7dmFyIHc7aWYoZnVuY3Rpb24oWWUsUWUpe2lmKCEoWWUgaW5zdGFuY2VvZiBRZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZyksIm9iamVjdCIhPT1YKHApfHxudWxsPT09'@; put 'cCl0aHJvdyBuZXcgcSgib3B0aW9ucyIsIk9iamVjdCIscCk7dmFyIEo9cC5tZXNzYWdlLG5lPXAub3BlcmF0b3IsZGU9cC5zdGFja1N0YXJ0Rm4sZmU9cC5hY3R1YWwseGU9cC5leHBlY3RlZCxMZT1FcnJvci5zdGFja1RyYWNlTGltaXQ7aWYoRXJyb3Iuc3RhY2tUcmFjZUxpbWl0PTAsbnVs'@; put 'bCE9Sil3PWsodGhpcyxZKGcpLmNhbGwodGhpcyxTdHJpbmcoSikpKTtlbHNlIGlmKHouc3RkZXJyJiZ6LnN0ZGVyci5pc1RUWSYmKHouc3RkZXJyJiZ6LnN0ZGVyci5nZXRDb2xvckRlcHRoJiYxIT09ei5zdGRlcnIuZ2V0Q29sb3JEZXB0aCgpPyh0ZT0iXHgxYlszNG0iLG9lPSJceDFiWzMy'@; put 'bSIsaGU9Ilx4MWJbMzltIixzZT0iXHgxYlszMW0iKToodGU9IiIsb2U9IiIsaGU9IiIsc2U9IiIpKSwib2JqZWN0Ij09PVgoZmUpJiZudWxsIT09ZmUmJiJvYmplY3QiPT09WCh4ZSkmJm51bGwhPT14ZSYmInN0YWNrImluIGZlJiZmZSBpbnN0YW5jZW9mIEVycm9yJiYic3RhY2siaW4geGUm'@; put 'JnhlIGluc3RhbmNlb2YgRXJyb3ImJihmZT1HKGZlKSx4ZT1HKHhlKSksImRlZXBTdHJpY3RFcXVhbCI9PT1uZXx8InN0cmljdEVxdWFsIj09PW5lKXc9ayh0aGlzLFkoZykuY2FsbCh0aGlzLGZ1bmN0aW9uIEQoTixnLEMpe3ZhciBTPSIiLHY9IiIscD0wLHc9IiIsSj0hMSxuZT1iKE4pLGRl'@; put 'PW5lLnNwbGl0KCJcbiIpLGZlPWIoZykuc3BsaXQoIlxuIikseGU9MCxMZT0iIjtpZigic3RyaWN0RXF1YWwiPT09QyYmIm9iamVjdCI9PT1YKE4pJiYib2JqZWN0Ij09PVgoZykmJm51bGwhPT1OJiZudWxsIT09ZyYmKEM9InN0cmljdEVxdWFsT2JqZWN0IiksMT09PWRlLmxlbmd0aCYmMT09'@; put 'PWZlLmxlbmd0aCYmZGVbMF0hPT1mZVswXSl7dmFyIEZlPWRlWzBdLmxlbmd0aCtmZVswXS5sZW5ndGg7aWYoRmU8PTEwKXtpZighKCJvYmplY3QiPT09WChOKSYmbnVsbCE9PU58fCJvYmplY3QiPT09WChnKSYmbnVsbCE9PWd8fDA9PT1OJiYwPT09ZykpcmV0dXJuIiIuY29uY2F0KHVlW0Nd'@; put 'LCJcblxuIikrIiIuY29uY2F0KGRlWzBdLCIgIT09ICIpLmNvbmNhdChmZVswXSwiXG4iKX1lbHNlIGlmKCJzdHJpY3RFcXVhbE9iamVjdCIhPT1DJiZGZTwoei5zdGRlcnImJnouc3RkZXJyLmlzVFRZP3ouc3RkZXJyLmNvbHVtbnM6ODApKXtmb3IoO2RlWzBdW3hlXT09PWZlWzBdW3hlXTsp'@; put 'eGUrKzt4ZT4yJiYoTGU9IlxuICAiLmNvbmNhdChmdW5jdGlvbihxZSxYZSl7aWYoWGU9TWF0aC5mbG9vcihYZSksMD09cWUubGVuZ3RofHwwPT1YZSlyZXR1cm4iIjt2YXIgVWU9cWUubGVuZ3RoKlhlO2ZvcihYZT1NYXRoLmZsb29yKE1hdGgubG9nKFhlKS9NYXRoLmxvZygyKSk7WGU7KXFl'@; put 'Kz1xZSxYZS0tO3JldHVybiBxZStxZS5zdWJzdHJpbmcoMCxVZS1xZS5sZW5ndGgpfSgiICIseGUpLCJeIikseGU9MCl9fWZvcih2YXIgT2U9ZGVbZGUubGVuZ3RoLTFdLGplPWZlW2ZlLmxlbmd0aC0xXTtPZT09PWplJiYoeGUrKzwyP3c9IlxuICAiLmNvbmNhdChPZSkuY29uY2F0KHcpOlM9'@; put 'T2UsZGUucG9wKCksZmUucG9wKCksMCE9PWRlLmxlbmd0aCYmMCE9PWZlLmxlbmd0aCk7KU9lPWRlW2RlLmxlbmd0aC0xXSxqZT1mZVtmZS5sZW5ndGgtMV07dmFyIFdlPU1hdGgubWF4KGRlLmxlbmd0aCxmZS5sZW5ndGgpO2lmKDA9PT1XZSl7dmFyIEtlPW5lLnNwbGl0KCJcbiIpO2lmKEtl'@; put 'Lmxlbmd0aD4zMClmb3IoS2VbMjZdPSIiLmNvbmNhdCh0ZSwiLi4uIikuY29uY2F0KGhlKTtLZS5sZW5ndGg+Mjc7KUtlLnBvcCgpO3JldHVybiIiLmNvbmNhdCh1ZS5ub3RJZGVudGljYWwsIlxuXG4iKS5jb25jYXQoS2Uuam9pbigiXG4iKSwiXG4iKX14ZT4zJiYodz0iXG4iLmNvbmNhdCh0'@; put 'ZSwiLi4uIikuY29uY2F0KGhlKS5jb25jYXQodyksSj0hMCksIiIhPT1TJiYodz0iXG4gICIuY29uY2F0KFMpLmNvbmNhdCh3KSxTPSIiKTt2YXIgWWU9MCxRZT11ZVtDXSsiXG4iLmNvbmNhdChvZSwiKyBhY3R1YWwiKS5jb25jYXQoaGUsIiAiKS5jb25jYXQoc2UsIi0gZXhwZWN0ZWQiKS5j'@; put 'b25jYXQoaGUpLGx0PSIgIi5jb25jYXQodGUsIi4uLiIpLmNvbmNhdChoZSwiIExpbmVzIHNraXBwZWQiKTtmb3IoeGU9MDt4ZTxXZTt4ZSsrKXt2YXIgUGU9eGUtcDtpZihkZS5sZW5ndGg8eGUrMSlQZT4xJiZ4ZT4yJiYoUGU+ND8odis9IlxuIi5jb25jYXQodGUsIi4uLiIpLmNvbmNhdCho'@; put 'ZSksSj0hMCk6UGU+MyYmKHYrPSJcbiAgIi5jb25jYXQoZmVbeGUtMl0pLFllKyspLHYrPSJcbiAgIi5jb25jYXQoZmVbeGUtMV0pLFllKyspLHA9eGUsUys9IlxuIi5jb25jYXQoc2UsIi0iKS5jb25jYXQoaGUsIiAiKS5jb25jYXQoZmVbeGVdKSxZZSsrO2Vsc2UgaWYoZmUubGVuZ3RoPHhl'@; put 'KzEpUGU+MSYmeGU+MiYmKFBlPjQ/KHYrPSJcbiIuY29uY2F0KHRlLCIuLi4iKS5jb25jYXQoaGUpLEo9ITApOlBlPjMmJih2Kz0iXG4gICIuY29uY2F0KGRlW3hlLTJdKSxZZSsrKSx2Kz0iXG4gICIuY29uY2F0KGRlW3hlLTFdKSxZZSsrKSxwPXhlLHYrPSJcbiIuY29uY2F0KG9lLCIrIiku'@; put 'Y29uY2F0KGhlLCIgIikuY29uY2F0KGRlW3hlXSksWWUrKztlbHNle3ZhciBiZT1mZVt4ZV0sQWU9ZGVbeGVdLFRlPUFlIT09YmUmJighZWUoQWUsIiwiKXx8QWUuc2xpY2UoMCwtMSkhPT1iZSk7VGUmJmVlKGJlLCIsIikmJmJlLnNsaWNlKDAsLTEpPT09QWUmJihUZT0hMSxBZSs9IiwiKSxU'@; put 'ZT8oUGU+MSYmeGU+MiYmKFBlPjQ/KHYrPSJcbiIuY29uY2F0KHRlLCIuLi4iKS5jb25jYXQoaGUpLEo9ITApOlBlPjMmJih2Kz0iXG4gICIuY29uY2F0KGRlW3hlLTJdKSxZZSsrKSx2Kz0iXG4gICIuY29uY2F0KGRlW3hlLTFdKSxZZSsrKSxwPXhlLHYrPSJcbiIuY29uY2F0KG9lLCIrIiku'@; put 'Y29uY2F0KGhlLCIgIikuY29uY2F0KEFlKSxTKz0iXG4iLmNvbmNhdChzZSwiLSIpLmNvbmNhdChoZSwiICIpLmNvbmNhdChiZSksWWUrPTIpOih2Kz1TLFM9IiIsMSE9PVBlJiYwIT09eGV8fCh2Kz0iXG4gICIuY29uY2F0KEFlKSxZZSsrKSl9aWYoWWU+MjAmJnhlPFdlLTIpcmV0dXJuIiIu'@; put 'Y29uY2F0KFFlKS5jb25jYXQobHQsIlxuIikuY29uY2F0KHYsIlxuIikuY29uY2F0KHRlLCIuLi4iKS5jb25jYXQoaGUpLmNvbmNhdChTLCJcbiIpKyIiLmNvbmNhdCh0ZSwiLi4uIikuY29uY2F0KGhlKX1yZXR1cm4iIi5jb25jYXQoUWUpLmNvbmNhdChKP2x0OiIiLCJcbiIpLmNvbmNhdCh2'@; put 'KS5jb25jYXQoUykuY29uY2F0KHcpLmNvbmNhdChMZSl9KGZlLHhlLG5lKSkpO2Vsc2UgaWYoIm5vdERlZXBTdHJpY3RFcXVhbCI9PT1uZXx8Im5vdFN0cmljdEVxdWFsIj09PW5lKXt2YXIgRmU9dWVbbmVdLE9lPWIoZmUpLnNwbGl0KCJcbiIpO2lmKCJub3RTdHJpY3RFcXVhbCI9PT1uZSYm'@; put 'Im9iamVjdCI9PT1YKGZlKSYmbnVsbCE9PWZlJiYoRmU9dWUubm90U3RyaWN0RXF1YWxPYmplY3QpLE9lLmxlbmd0aD4zMClmb3IoT2VbMjZdPSIiLmNvbmNhdCh0ZSwiLi4uIikuY29uY2F0KGhlKTtPZS5sZW5ndGg+Mjc7KU9lLnBvcCgpO3c9ayh0aGlzLDE9PT1PZS5sZW5ndGg/WShnKS5j'@; put 'YWxsKHRoaXMsIiIuY29uY2F0KEZlLCIgIikuY29uY2F0KE9lWzBdKSk6WShnKS5jYWxsKHRoaXMsIiIuY29uY2F0KEZlLCJcblxuIikuY29uY2F0KE9lLmpvaW4oIlxuIiksIlxuIikpKX1lbHNle3ZhciBqZT1iKGZlKSxXZT0iIixLZT11ZVtuZV07Im5vdERlZXBFcXVhbCI9PT1uZXx8Im5v'@; put 'dEVxdWFsIj09PW5lPyhqZT0iIi5jb25jYXQodWVbbmVdLCJcblxuIikuY29uY2F0KGplKSkubGVuZ3RoPjEwMjQmJihqZT0iIi5jb25jYXQoamUuc2xpY2UoMCwxMDIxKSwiLi4uIikpOihXZT0iIi5jb25jYXQoYih4ZSkpLGplLmxlbmd0aD41MTImJihqZT0iIi5jb25jYXQoamUuc2xpY2Uo'@; put 'MCw1MDkpLCIuLi4iKSksV2UubGVuZ3RoPjUxMiYmKFdlPSIiLmNvbmNhdChXZS5zbGljZSgwLDUwOSksIi4uLiIpKSwiZGVlcEVxdWFsIj09PW5lfHwiZXF1YWwiPT09bmU/amU9IiIuY29uY2F0KEtlLCJcblxuIikuY29uY2F0KGplLCJcblxuc2hvdWxkIGVxdWFsXG5cbiIpOldlPSIgIi5j'@; put 'b25jYXQobmUsIiAiKS5jb25jYXQoV2UpKSx3PWsodGhpcyxZKGcpLmNhbGwodGhpcywiIi5jb25jYXQoamUpLmNvbmNhdChXZSkpKX1yZXR1cm4gRXJyb3Iuc3RhY2tUcmFjZUxpbWl0PUxlLHcuZ2VuZXJhdGVkTWVzc2FnZT0hSixPYmplY3QuZGVmaW5lUHJvcGVydHkoRSh3KSwibmFtZSIs'@; put 'e3ZhbHVlOiJBc3NlcnRpb25FcnJvciBbRVJSX0FTU0VSVElPTl0iLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdy5jb2RlPSJFUlJfQVNTRVJUSU9OIix3LmFjdHVhbD1mZSx3LmV4cGVjdGVkPXhlLHcub3BlcmF0b3I9bmUsRXJyb3IuY2FwdHVyZVN0YWNr'@; put 'VHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKEUodyksZGUpLHcubmFtZT0iQXNzZXJ0aW9uRXJyb3IiLGsodyl9dmFyIFM7cmV0dXJuIGZ1bmN0aW9uKHAsdyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHcmJm51bGwhPT13KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Np'@; put 'b24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7cC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3JiZ3LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnAsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHcmJkIocCx3KX0oZyxOKSxTPVt7a2V5OiJ0b1N0cmlu'@; put 'ZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iIi5jb25jYXQodGhpcy5uYW1lLCIgWyIpLmNvbmNhdCh0aGlzLmNvZGUsIl06ICIpLmNvbmNhdCh0aGlzLm1lc3NhZ2UpfX0se2tleTpVLmN1c3RvbSx2YWx1ZTpmdW5jdGlvbihwLHcpe3JldHVybiBVKHRoaXMsZnVuY3Rpb24oSil7Zm9yKHZh'@; put 'ciBuZT0xO25lPGFyZ3VtZW50cy5sZW5ndGg7bmUrKyl7dmFyIGRlPW51bGwhPWFyZ3VtZW50c1tuZV0/YXJndW1lbnRzW25lXTp7fSxmZT1PYmplY3Qua2V5cyhkZSk7ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihmZT1mZS5jb25jYXQoT2JqZWN0'@; put 'LmdldE93blByb3BlcnR5U3ltYm9scyhkZSkuZmlsdGVyKGZ1bmN0aW9uKHhlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkZSx4ZSkuZW51bWVyYWJsZX0pKSksZmUuZm9yRWFjaChmdW5jdGlvbih4ZSl7SyhKLHhlLGRlW3hlXSl9KX1yZXR1cm4gSn0oe30sdyx7'@; put 'Y3VzdG9tSW5zcGVjdDohMSxkZXB0aDowfSkpfX1dLFMmJmZ1bmN0aW9uIEkoTixnKXtmb3IodmFyIEM9MDtDPGcubGVuZ3RoO0MrKyl7dmFyIFM9Z1tDXTtTLmVudW1lcmFibGU9Uy5lbnVtZXJhYmxlfHwhMSxTLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gUyYmKFMud3JpdGFibGU9ITAp'@; put 'LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOLFMua2V5LFMpfX0oZy5wcm90b3R5cGUsUyksZ30oaihFcnJvcikpO00uZXhwb3J0cz1IfSwyMTM2OihNLE8sUik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24geihYKXtyZXR1cm4oej0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09'@; put 'dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihVKXtyZXR1cm4gdHlwZW9mIFV9OmZ1bmN0aW9uKFUpe3JldHVybiBVJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZVLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZVIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgVX0p'@; put 'KFgpfWZ1bmN0aW9uIEkoWCl7cmV0dXJuKEk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihVKXtyZXR1cm4gVS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihVKX0pKFgpfWZ1bmN0aW9uIGsoWCxVKXtyZXR1cm4oaz1PYmplY3Qu'@; put 'c2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKHEsZWUpe3JldHVybiBxLl9fcHJvdG9fXz1lZSxxfSkoWCxVKX12YXIgRSxqLFY9e307ZnVuY3Rpb24gQihYLFUscSl7cXx8KHE9RXJyb3IpO3ZhciBlZT1mdW5jdGlvbih0ZSl7ZnVuY3Rpb24gb2Uoc2UsaGUsdWUpe3ZhciBjZTtyZXR1cm4gZnVu'@; put 'Y3Rpb24oRyxiKXtpZighKEcgaW5zdGFuY2VvZiBiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvZSksY2U9ZnVuY3Rpb24gSyhYLFUpe3JldHVybiFVfHwib2JqZWN0IiE9PXooVSkmJiJmdW5jdGlvbiIhPXR5cGVvZiBV'@; put 'P2Z1bmN0aW9uKHEpe2lmKHZvaWQgMD09PXEpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gcX0oWCk6VX0odGhpcyxJKG9lKS5jYWxsKHRoaXMsInN0cmluZyI9PXR5cGVv'@; put 'ZiBVP1U6VShzZSxoZSx1ZSkpKSxjZS5jb2RlPVgsY2V9cmV0dXJuIGZ1bmN0aW9uKHNlLGhlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgaGUmJm51bGwhPT1oZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIp'@; put 'O3NlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGhlJiZoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpzZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksaGUmJmsoc2UsaGUpfShvZSx0ZSksb2V9KHEpO1ZbWF09ZWV9ZnVuY3Rpb24gWShYLFUpe2lmKEFycmF5LmlzQXJy'@; put 'YXkoWCkpe3ZhciBxPVgubGVuZ3RoO3JldHVybiBYPVgubWFwKGZ1bmN0aW9uKGVlKXtyZXR1cm4gU3RyaW5nKGVlKX0pLHE+Mj8ib25lIG9mICIuY29uY2F0KFUsIiAiKS5jb25jYXQoWC5zbGljZSgwLHEtMSkuam9pbigiLCAiKSwiLCBvciAiKStYW3EtMV06Mj09PXE/Im9uZSBvZiAiLmNv'@; put 'bmNhdChVLCIgIikuY29uY2F0KFhbMF0sIiBvciAiKS5jb25jYXQoWFsxXSk6Im9mICIuY29uY2F0KFUsIiAiKS5jb25jYXQoWFswXSl9cmV0dXJuIm9mICIuY29uY2F0KFUsIiAiKS5jb25jYXQoU3RyaW5nKFgpKX1CKCJFUlJfQU1CSUdVT1VTX0FSR1VNRU5UIiwnVGhlICIlcyIgYXJndW1l'@; put 'bnQgaXMgYW1iaWd1b3VzLiAlcycsVHlwZUVycm9yKSxCKCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZnVuY3Rpb24oWCxVLHEpe3ZhciBlZSxzZSx1ZSxHO2lmKHZvaWQgMD09PUUmJihFPVIoOTI4MikpLEUoInN0cmluZyI9PXR5cGVvZiBYLCInbmFtZScgbXVzdCBiZSBhIHN0cmluZyIpLCJz'@; put 'dHJpbmciPT10eXBlb2YgVSYmIm5vdCAiPT09VS5zdWJzdHIoMCw0KT8oZWU9Im11c3Qgbm90IGJlIixVPVUucmVwbGFjZSgvXm5vdCAvLCIiKSk6ZWU9Im11c3QgYmUiLHVlPVgsKHZvaWQgMD09PUd8fEc+dWUubGVuZ3RoKSYmKEc9dWUubGVuZ3RoKSwiIGFyZ3VtZW50Ij09PXVlLnN1YnN0'@; put 'cmluZyhHLTksRykpc2U9IlRoZSAiLmNvbmNhdChYLCIgIikuY29uY2F0KGVlLCIgIikuY29uY2F0KFkoVSwidHlwZSIpKTtlbHNle3ZhciBoZT1mdW5jdGlvbih1ZSxjZSxHKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIEcmJihHPTApLCEoRysxPnVlLmxlbmd0aCkmJi0xIT09dWUuaW5kZXhP'@; put 'ZigiLiIsRyl9KFgpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtzZT0nVGhlICInLmNvbmNhdChYLCciICcpLmNvbmNhdChoZSwiICIpLmNvbmNhdChlZSwiICIpLmNvbmNhdChZKFUsInR5cGUiKSl9cmV0dXJuIHNlKyIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQoeihxKSl9LFR5cGVFcnJvciks'@; put 'QigiRVJSX0lOVkFMSURfQVJHX1ZBTFVFIixmdW5jdGlvbihYLFUpe3ZhciBxPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiaXMgaW52YWxpZCI7dm9pZCAwPT09aiYmKGo9Uig5NTM5KSk7dmFyIGVlPWouaW5zcGVjdChVKTtyZXR1cm4g'@; put 'ZWUubGVuZ3RoPjEyOCYmKGVlPSIiLmNvbmNhdChlZS5zbGljZSgwLDEyOCksIi4uLiIpKSwiVGhlIGFyZ3VtZW50ICciLmNvbmNhdChYLCInICIpLmNvbmNhdChxLCIuIFJlY2VpdmVkICIpLmNvbmNhdChlZSl9LFR5cGVFcnJvcixSYW5nZUVycm9yKSxCKCJFUlJfSU5WQUxJRF9SRVRVUk5f'@; put 'VkFMVUUiLGZ1bmN0aW9uKFgsVSxxKXt2YXIgZWU7cmV0dXJuIGVlPXEmJnEuY29uc3RydWN0b3ImJnEuY29uc3RydWN0b3IubmFtZT8iaW5zdGFuY2Ugb2YgIi5jb25jYXQocS5jb25zdHJ1Y3Rvci5uYW1lKToidHlwZSAiLmNvbmNhdCh6KHEpKSwiRXhwZWN0ZWQgIi5jb25jYXQoWCwnIHRv'@; put 'IGJlIHJldHVybmVkIGZyb20gdGhlICInKS5jb25jYXQoVSwnIicpKyIgZnVuY3Rpb24gYnV0IGdvdCAiLmNvbmNhdChlZSwiLiIpfSxUeXBlRXJyb3IpLEIoIkVSUl9NSVNTSU5HX0FSR1MiLGZ1bmN0aW9uKCl7Zm9yKHZhciBYPWFyZ3VtZW50cy5sZW5ndGgsVT1uZXcgQXJyYXkoWCkscT0w'@; put 'O3E8WDtxKyspVVtxXT1hcmd1bWVudHNbcV07dm9pZCAwPT09RSYmKEU9Uig5MjgyKSksRShVLmxlbmd0aD4wLCJBdCBsZWFzdCBvbmUgYXJnIG5lZWRzIHRvIGJlIHNwZWNpZmllZCIpO3ZhciBlZT0iVGhlICIsdGU9VS5sZW5ndGg7c3dpdGNoKFU9VS5tYXAoZnVuY3Rpb24ob2Upe3JldHVy'@; put 'biciJy5jb25jYXQob2UsJyInKX0pLHRlKXtjYXNlIDE6ZWUrPSIiLmNvbmNhdChVWzBdLCIgYXJndW1lbnQiKTticmVhaztjYXNlIDI6ZWUrPSIiLmNvbmNhdChVWzBdLCIgYW5kICIpLmNvbmNhdChVWzFdLCIgYXJndW1lbnRzIik7YnJlYWs7ZGVmYXVsdDplZSs9VS5zbGljZSgwLHRlLTEp'@; put 'LmpvaW4oIiwgIiksZWUrPSIsIGFuZCAiLmNvbmNhdChVW3RlLTFdLCIgYXJndW1lbnRzIil9cmV0dXJuIiIuY29uY2F0KGVlLCIgbXVzdCBiZSBzcGVjaWZpZWQiKX0sVHlwZUVycm9yKSxNLmV4cG9ydHMuY29kZXM9Vn0sOTE1ODooTSxPLFIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHoo'@; put 'YmUsQWUpe3JldHVybiBmdW5jdGlvbihUZSl7aWYoQXJyYXkuaXNBcnJheShUZSkpcmV0dXJuIFRlfShiZSl8fGZ1bmN0aW9uKFRlLHFlKXt2YXIgWGU9W10sVWU9ITAsaHQ9ITEsTWU9dm9pZCAwO3RyeXtmb3IodmFyIERlLHplPVRlW1N5bWJvbC5pdGVyYXRvcl0oKTshKFVlPShEZT16ZS5u'@; put 'ZXh0KCkpLmRvbmUpJiYoWGUucHVzaChEZS52YWx1ZSksIXFlfHxYZS5sZW5ndGghPT1xZSk7VWU9ITApO31jYXRjaChvdCl7aHQ9ITAsTWU9b3R9ZmluYWxseXt0cnl7VWV8fG51bGw9PXplLnJldHVybnx8emUucmV0dXJuKCl9ZmluYWxseXtpZihodCl0aHJvdyBNZX19cmV0dXJuIFhlfShi'@; put 'ZSxBZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSgpfWZ1bmN0aW9uIEsoYmUpe3JldHVybihLPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2Yg'@; put 'U3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKEFlKXtyZXR1cm4gdHlwZW9mIEFlfTpmdW5jdGlvbihBZSl7cmV0dXJuIEFlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZBZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmQWUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBBZX0p'@; put 'KGJlKX12YXIgST12b2lkIDAhPT0vYS9nLmZsYWdzLGs9ZnVuY3Rpb24oYmUpe3ZhciBBZT1bXTtyZXR1cm4gYmUuZm9yRWFjaChmdW5jdGlvbihUZSl7cmV0dXJuIEFlLnB1c2goVGUpfSksQWV9LEU9ZnVuY3Rpb24oYmUpe3ZhciBBZT1bXTtyZXR1cm4gYmUuZm9yRWFjaChmdW5jdGlvbihU'@; put 'ZSxxZSl7cmV0dXJuIEFlLnB1c2goW3FlLFRlXSl9KSxBZX0saj1PYmplY3QuaXM/T2JqZWN0LmlzOlIoNjA5KSxWPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbigpe3JldHVybltdfSxCPU51bWJlci5pc05hTj9OdW1i'@; put 'ZXIuaXNOYU46UigzNjApO2Z1bmN0aW9uIFkoYmUpe3JldHVybiBiZS5jYWxsLmJpbmQoYmUpfXZhciBYPVkoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSksVT1ZKE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUpLHE9WShPYmplY3QucHJvdG90eXBlLnRvU3Ry'@; put 'aW5nKSxlZT1SKDk1MzkpLnR5cGVzLHRlPWVlLmlzQW55QXJyYXlCdWZmZXIsb2U9ZWUuaXNBcnJheUJ1ZmZlclZpZXcsc2U9ZWUuaXNEYXRlLGhlPWVlLmlzTWFwLHVlPWVlLmlzUmVnRXhwLGNlPWVlLmlzU2V0LEc9ZWUuaXNOYXRpdmVFcnJvcixiPWVlLmlzQm94ZWRQcmltaXRpdmUsRD1l'@; put 'ZS5pc051bWJlck9iamVjdCxIPWVlLmlzU3RyaW5nT2JqZWN0LE49ZWUuaXNCb29sZWFuT2JqZWN0LGc9ZWUuaXNCaWdJbnRPYmplY3QsQz1lZS5pc1N5bWJvbE9iamVjdCxTPWVlLmlzRmxvYXQzMkFycmF5LHY9ZWUuaXNGbG9hdDY0QXJyYXk7ZnVuY3Rpb24gcChiZSl7aWYoMD09PWJlLmxl'@; put 'bmd0aHx8YmUubGVuZ3RoPjEwKXJldHVybiEwO2Zvcih2YXIgQWU9MDtBZTxiZS5sZW5ndGg7QWUrKyl7dmFyIFRlPWJlLmNoYXJDb2RlQXQoQWUpO2lmKFRlPDQ4fHxUZT41NylyZXR1cm4hMH1yZXR1cm4gMTA9PT1iZS5sZW5ndGgmJmJlPj1NYXRoLnBvdygyLDMyKX1mdW5jdGlvbiB3KGJl'@; put 'KXtyZXR1cm4gT2JqZWN0LmtleXMoYmUpLmZpbHRlcihwKS5jb25jYXQoVihiZSkuZmlsdGVyKE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuYmluZChiZSkpKX1mdW5jdGlvbiBKKGJlLEFlKXtpZihiZT09PUFlKXJldHVybiAwO2Zvcih2YXIgVGU9YmUubGVuZ3RoLHFl'@; put 'PUFlLmxlbmd0aCxYZT0wLFVlPU1hdGgubWluKFRlLHFlKTtYZTxVZTsrK1hlKWlmKGJlW1hlXSE9PUFlW1hlXSl7VGU9YmVbWGVdLHFlPUFlW1hlXTticmVha31yZXR1cm4gVGU8cWU/LTE6cWU8VGU/MTowfXZhciBmZT0wLHhlPTEsTGU9MixGZT0zO2Z1bmN0aW9uIE9lKGJlLEFlLFRlLHFl'@; put 'KXtpZihiZT09PUFlKXJldHVybiAwIT09YmV8fCFUZXx8aihiZSxBZSk7aWYoVGUpe2lmKCJvYmplY3QiIT09SyhiZSkpcmV0dXJuIm51bWJlciI9PXR5cGVvZiBiZSYmQihiZSkmJkIoQWUpO2lmKCJvYmplY3QiIT09SyhBZSl8fG51bGw9PT1iZXx8bnVsbD09PUFlfHxPYmplY3QuZ2V0UHJv'@; put 'dG90eXBlT2YoYmUpIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKEFlKSlyZXR1cm4hMX1lbHNle2lmKG51bGw9PT1iZXx8Im9iamVjdCIhPT1LKGJlKSlyZXR1cm4obnVsbD09PUFlfHwib2JqZWN0IiE9PUsoQWUpKSYmYmU9PUFlO2lmKG51bGw9PT1BZXx8Im9iamVjdCIhPT1LKEFlKSlyZXR1'@; put 'cm4hMX12YXIgWGUsVWUsaHQsTWUsSHQsUHQsRGU9cShiZSk7aWYoRGUhPT1xKEFlKSlyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KGJlKSl7aWYoYmUubGVuZ3RoIT09QWUubGVuZ3RoKXJldHVybiExO3ZhciB6ZT13KGJlKSxvdD13KEFlKTtyZXR1cm4gemUubGVuZ3RoPT09b3QubGVuZ3Ro'@; put 'JiZXZShiZSxBZSxUZSxxZSx4ZSx6ZSl9aWYoIltvYmplY3QgT2JqZWN0XSI9PT1EZSYmKCFoZShiZSkmJmhlKEFlKXx8IWNlKGJlKSYmY2UoQWUpKSlyZXR1cm4hMTtpZihzZShiZSkpe2lmKCFzZShBZSl8fERhdGUucHJvdG90eXBlLmdldFRpbWUuY2FsbChiZSkhPT1EYXRlLnByb3RvdHlw'@; put 'ZS5nZXRUaW1lLmNhbGwoQWUpKXJldHVybiExfWVsc2UgaWYodWUoYmUpKXtpZighdWUoQWUpfHwoaHQ9YmUsTWU9QWUsIShJP2h0LnNvdXJjZT09PU1lLnNvdXJjZSYmaHQuZmxhZ3M9PT1NZS5mbGFnczpSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaHQpPT09UmVnRXhwLnByb3Rv'@; put 'dHlwZS50b1N0cmluZy5jYWxsKE1lKSkpKXJldHVybiExfWVsc2UgaWYoRyhiZSl8fGJlIGluc3RhbmNlb2YgRXJyb3Ipe2lmKGJlLm1lc3NhZ2UhPT1BZS5tZXNzYWdlfHxiZS5uYW1lIT09QWUubmFtZSlyZXR1cm4hMX1lbHNle2lmKG9lKGJlKSl7aWYoVGV8fCFTKGJlKSYmIXYoYmUpKXtp'@; put 'ZigoSHQ9YmUpLmJ5dGVMZW5ndGghPT0oUHQ9QWUpLmJ5dGVMZW5ndGh8fDAhPT1KKG5ldyBVaW50OEFycmF5KEh0LmJ1ZmZlcixIdC5ieXRlT2Zmc2V0LEh0LmJ5dGVMZW5ndGgpLG5ldyBVaW50OEFycmF5KFB0LmJ1ZmZlcixQdC5ieXRlT2Zmc2V0LFB0LmJ5dGVMZW5ndGgpKSlyZXR1cm4h'@; put 'MX1lbHNlIGlmKCFmdW5jdGlvbihIdCxQdCl7aWYoSHQuYnl0ZUxlbmd0aCE9PVB0LmJ5dGVMZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBvbj0wO29uPEh0LmJ5dGVMZW5ndGg7b24rKylpZihIdFtvbl0hPT1QdFtvbl0pcmV0dXJuITE7cmV0dXJuITB9KGJlLEFlKSlyZXR1cm4hMTt2YXIgdXQ9'@; put 'dyhiZSksTXQ9dyhBZSk7cmV0dXJuIHV0Lmxlbmd0aD09PU10Lmxlbmd0aCYmV2UoYmUsQWUsVGUscWUsZmUsdXQpfWlmKGNlKGJlKSlyZXR1cm4hKCFjZShBZSl8fGJlLnNpemUhPT1BZS5zaXplKSYmV2UoYmUsQWUsVGUscWUsTGUpO2lmKGhlKGJlKSlyZXR1cm4hKCFoZShBZSl8fGJlLnNp'@; put 'emUhPT1BZS5zaXplKSYmV2UoYmUsQWUsVGUscWUsRmUpO2lmKHRlKGJlKSl7aWYoKFhlPWJlKS5ieXRlTGVuZ3RoIT09KFVlPUFlKS5ieXRlTGVuZ3RofHwwIT09SihuZXcgVWludDhBcnJheShYZSksbmV3IFVpbnQ4QXJyYXkoVWUpKSlyZXR1cm4hMX1lbHNlIGlmKGIoYmUpJiYhZnVuY3Rp'@; put 'b24oSHQsUHQpe3JldHVybiBEKEh0KT9EKFB0KSYmaihOdW1iZXIucHJvdG90eXBlLnZhbHVlT2YuY2FsbChIdCksTnVtYmVyLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUHQpKTpIKEh0KT9IKFB0KSYmU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoSHQpPT09U3RyaW5nLnByb3RvdHlw'@; put 'ZS52YWx1ZU9mLmNhbGwoUHQpOk4oSHQpP04oUHQpJiZCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoSHQpPT09Qm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFB0KTpnKEh0KT9nKFB0KSYmQmlnSW50LnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoSHQpPT09QmlnSW50LnByb3Rv'@; put 'dHlwZS52YWx1ZU9mLmNhbGwoUHQpOkMoUHQpJiZTeW1ib2wucHJvdG90eXBlLnZhbHVlT2YuY2FsbChIdCk9PT1TeW1ib2wucHJvdG90eXBlLnZhbHVlT2YuY2FsbChQdCl9KGJlLEFlKSlyZXR1cm4hMX1yZXR1cm4gV2UoYmUsQWUsVGUscWUsZmUpfWZ1bmN0aW9uIGplKGJlLEFlKXtyZXR1'@; put 'cm4gQWUuZmlsdGVyKGZ1bmN0aW9uKFRlKXtyZXR1cm4gVShiZSxUZSl9KX1mdW5jdGlvbiBXZShiZSxBZSxUZSxxZSxYZSxVZSl7aWYoNT09PWFyZ3VtZW50cy5sZW5ndGgpe1VlPU9iamVjdC5rZXlzKGJlKTt2YXIgaHQ9T2JqZWN0LmtleXMoQWUpO2lmKFVlLmxlbmd0aCE9PWh0Lmxlbmd0'@; put 'aClyZXR1cm4hMX1mb3IodmFyIE1lPTA7TWU8VWUubGVuZ3RoO01lKyspaWYoIVgoQWUsVWVbTWVdKSlyZXR1cm4hMTtpZihUZSYmNT09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBEZT1WKGJlKTtpZigwIT09RGUubGVuZ3RoKXt2YXIgemU9MDtmb3IoTWU9MDtNZTxEZS5sZW5ndGg7TWUrKyl7'@; put 'dmFyIG90PURlW01lXTtpZihVKGJlLG90KSl7aWYoIVUoQWUsb3QpKXJldHVybiExO1VlLnB1c2gob3QpLHplKyt9ZWxzZSBpZihVKEFlLG90KSlyZXR1cm4hMX12YXIgdXQ9VihBZSk7aWYoRGUubGVuZ3RoIT09dXQubGVuZ3RoJiZqZShBZSx1dCkubGVuZ3RoIT09emUpcmV0dXJuITF9ZWxz'@; put 'ZXt2YXIgTXQ9VihBZSk7aWYoMCE9PU10Lmxlbmd0aCYmMCE9PWplKEFlLE10KS5sZW5ndGgpcmV0dXJuITF9fWlmKDA9PT1VZS5sZW5ndGgmJihYZT09PWZlfHxYZT09PXhlJiYwPT09YmUubGVuZ3RofHwwPT09YmUuc2l6ZSkpcmV0dXJuITA7aWYodm9pZCAwPT09cWUpcWU9e3ZhbDE6bmV3'@; put 'IE1hcCx2YWwyOm5ldyBNYXAscG9zaXRpb246MH07ZWxzZXt2YXIgSHQ9cWUudmFsMS5nZXQoYmUpO2lmKHZvaWQgMCE9PUh0KXt2YXIgUHQ9cWUudmFsMi5nZXQoQWUpO2lmKHZvaWQgMCE9PVB0KXJldHVybiBIdD09PVB0fXFlLnBvc2l0aW9uKyt9cWUudmFsMS5zZXQoYmUscWUucG9zaXRp'@; put 'b24pLHFlLnZhbDIuc2V0KEFlLHFlLnBvc2l0aW9uKTt2YXIgb249ZnVuY3Rpb24oQ24sVXQsYm4sV24sZW4sJG4pe3ZhciBIbj0wO2lmKCRuPT09TGUpe2lmKCFmdW5jdGlvbih3dCxYdCxfdCxOdCl7Zm9yKHZhciBtbj1udWxsLHJ0PWsod3QpLEl0PTA7SXQ8cnQubGVuZ3RoO0l0Kyspe3Zh'@; put 'ciBRdD1ydFtJdF07aWYoIm9iamVjdCI9PT1LKFF0KSYmbnVsbCE9PVF0KW51bGw9PT1tbiYmKG1uPW5ldyBTZXQpLG1uLmFkZChRdCk7ZWxzZSBpZighWHQuaGFzKFF0KSl7aWYoX3R8fCFRZSh3dCxYdCxRdCkpcmV0dXJuITE7bnVsbD09PW1uJiYobW49bmV3IFNldCksbW4uYWRkKFF0KX19'@; put 'aWYobnVsbCE9PW1uKXtmb3IodmFyIER0PWsoWHQpLHB0PTA7cHQ8RHQubGVuZ3RoO3B0Kyspe3ZhciBZdD1EdFtwdF07aWYoIm9iamVjdCI9PT1LKFl0KSYmbnVsbCE9PVl0KXtpZighS2UobW4sWXQsX3QsTnQpKXJldHVybiExfWVsc2UgaWYoIV90JiYhd3QuaGFzKFl0KSYmIUtlKG1uLFl0'@; put 'LF90LE50KSlyZXR1cm4hMX1yZXR1cm4gMD09PW1uLnNpemV9cmV0dXJuITB9KENuLFV0LGJuLGVuKSlyZXR1cm4hMX1lbHNlIGlmKCRuPT09RmUpe2lmKCFmdW5jdGlvbih3dCxYdCxfdCxOdCl7Zm9yKHZhciBtbj1udWxsLHJ0PUUod3QpLEl0PTA7SXQ8cnQubGVuZ3RoO0l0Kyspe3ZhciBR'@; put 'dD16KHJ0W0l0XSwyKSxEdD1RdFswXSxwdD1RdFsxXTtpZigib2JqZWN0Ij09PUsoRHQpJiZudWxsIT09RHQpbnVsbD09PW1uJiYobW49bmV3IFNldCksbW4uYWRkKER0KTtlbHNle3ZhciBZdD1YdC5nZXQoRHQpO2lmKHZvaWQgMD09PVl0JiYhWHQuaGFzKER0KXx8IU9lKHB0LFl0LF90LE50'@; put 'KSl7aWYoX3R8fCFsdCh3dCxYdCxEdCxwdCxOdCkpcmV0dXJuITE7bnVsbD09PW1uJiYobW49bmV3IFNldCksbW4uYWRkKER0KX19fWlmKG51bGwhPT1tbil7Zm9yKHZhciBJbj1FKFh0KSx6dD0wO3p0PEluLmxlbmd0aDt6dCsrKXt2YXIgeW49eihJblt6dF0sMikseG49KER0PXluWzBdLHlu'@; put 'WzFdKTtpZigib2JqZWN0Ij09PUsoRHQpJiZudWxsIT09RHQpe2lmKCFQZShtbix3dCxEdCx4bixfdCxOdCkpcmV0dXJuITF9ZWxzZSBpZighKF90fHx3dC5oYXMoRHQpJiZPZSh3dC5nZXQoRHQpLHhuLCExLE50KXx8UGUobW4sd3QsRHQseG4sITEsTnQpKSlyZXR1cm4hMX1yZXR1cm4gMD09'@; put 'PW1uLnNpemV9cmV0dXJuITB9KENuLFV0LGJuLGVuKSlyZXR1cm4hMX1lbHNlIGlmKCRuPT09eGUpZm9yKDtIbjxDbi5sZW5ndGg7SG4rKyl7aWYoIVgoQ24sSG4pKXtpZihYKFV0LEhuKSlyZXR1cm4hMTtmb3IodmFyIGZ0PU9iamVjdC5rZXlzKENuKTtIbjxmdC5sZW5ndGg7SG4rKyl7dmFy'@; put 'IGZuPWZ0W0huXTtpZighWChVdCxmbil8fCFPZShDbltmbl0sVXRbZm5dLGJuLGVuKSlyZXR1cm4hMX1yZXR1cm4gZnQubGVuZ3RoPT09T2JqZWN0LmtleXMoVXQpLmxlbmd0aH1pZighWChVdCxIbil8fCFPZShDbltIbl0sVXRbSG5dLGJuLGVuKSlyZXR1cm4hMX1mb3IoSG49MDtIbjxXbi5s'@; put 'ZW5ndGg7SG4rKyl7dmFyIGhuPVduW0huXTtpZighT2UoQ25baG5dLFV0W2huXSxibixlbikpcmV0dXJuITF9cmV0dXJuITB9KGJlLEFlLFRlLFVlLHFlLFhlKTtyZXR1cm4gcWUudmFsMS5kZWxldGUoYmUpLHFlLnZhbDIuZGVsZXRlKEFlKSxvbn1mdW5jdGlvbiBLZShiZSxBZSxUZSxxZSl7'@; put 'Zm9yKHZhciBYZT1rKGJlKSxVZT0wO1VlPFhlLmxlbmd0aDtVZSsrKXt2YXIgaHQ9WGVbVWVdO2lmKE9lKEFlLGh0LFRlLHFlKSlyZXR1cm4gYmUuZGVsZXRlKGh0KSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBZZShiZSl7c3dpdGNoKEsoYmUpKXtjYXNlInVuZGVmaW5lZCI6cmV0dXJuIG51bGw7'@; put 'Y2FzZSJvYmplY3QiOnJldHVybjtjYXNlInN5bWJvbCI6cmV0dXJuITE7Y2FzZSJzdHJpbmciOmJlPStiZTtjYXNlIm51bWJlciI6aWYoQihiZSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gUWUoYmUsQWUsVGUpe3ZhciBxZT1ZZShUZSk7cmV0dXJuIHFlPz8oQWUuaGFzKHFlKSYmIWJl'@; put 'LmhhcyhxZSkpfWZ1bmN0aW9uIGx0KGJlLEFlLFRlLHFlLFhlKXt2YXIgVWU9WWUoVGUpO2lmKG51bGwhPVVlKXJldHVybiBVZTt2YXIgaHQ9QWUuZ2V0KFVlKTtyZXR1cm4hKHZvaWQgMD09PWh0JiYhQWUuaGFzKFVlKXx8IU9lKHFlLGh0LCExLFhlKSkmJiFiZS5oYXMoVWUpJiZPZShxZSxo'@; put 'dCwhMSxYZSl9ZnVuY3Rpb24gUGUoYmUsQWUsVGUscWUsWGUsVWUpe2Zvcih2YXIgaHQ9ayhiZSksTWU9MDtNZTxodC5sZW5ndGg7TWUrKyl7dmFyIERlPWh0W01lXTtpZihPZShUZSxEZSxYZSxVZSkmJk9lKHFlLEFlLmdldChEZSksWGUsVWUpKXJldHVybiBiZS5kZWxldGUoRGUpLCEwfXJl'@; put 'dHVybiExfU0uZXhwb3J0cz17aXNEZWVwRXF1YWw6ZnVuY3Rpb24oYmUsQWUpe3JldHVybiBPZShiZSxBZSwhMSl9LGlzRGVlcFN0cmljdEVxdWFsOmZ1bmN0aW9uKGJlLEFlKXtyZXR1cm4gT2UoYmUsQWUsITApfX19LDgyMjQ6TT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9ZnVuY3Rpb24o'@; put 'Tyl7cmV0dXJuIE99fSw5NjY5OihNLE8sUik9PntNLmV4cG9ydHM9UigxNjA5KX0sNTQ0ODooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDg2NyksSz1SKDYwMjYpLEk9Uig0MzcyKSxrPVIoNTMyNyksRT1SKDQwOTcpLGo9Uig0MTA5KSxWPVIoNzk4NSksQj1SKDc4NzQpLFk9Uigy'@; put 'NjQ4KSxYPVIoNjQ0KSxVPVIoMjA1KTtNLmV4cG9ydHM9ZnVuY3Rpb24ocSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGVlLHRlKXt2YXIgb2Usc2U9cS5kYXRhLGhlPXEuaGVhZGVycyx1ZT1xLnJlc3BvbnNlVHlwZTtmdW5jdGlvbiBjZSgpe3EuY2FuY2VsVG9rZW4mJnEuY2FuY2Vs'@; put 'VG9rZW4udW5zdWJzY3JpYmUob2UpLHEuc2lnbmFsJiZxLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsb2UpfXouaXNGb3JtRGF0YShzZSkmJnouaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSYmZGVsZXRlIGhlWyJDb250ZW50LVR5cGUiXTt2YXIgRz1uZXcgWE1MSHR0cFJlcXVl'@; put 'c3Q7aWYocS5hdXRoKXt2YXIgYj1xLmF1dGgudXNlcm5hbWV8fCIiLEQ9cS5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChxLmF1dGgucGFzc3dvcmQpKToiIjtoZS5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EoYisiOiIrRCl9dmFyIEg9RShxLmJhc2VVUkws'@; put 'cS51cmwpO2Z1bmN0aW9uIE4oKXtpZihHKXt2YXIgUz0iZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIEc/aihHLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTpudWxsO0soZnVuY3Rpb24ocCl7ZWUocCksY2UoKX0sZnVuY3Rpb24ocCl7dGUocCksY2UoKX0se2RhdGE6dWUmJiJ0ZXh0IiE9PXVl'@; put 'JiYianNvbiIhPT11ZT9HLnJlc3BvbnNlOkcucmVzcG9uc2VUZXh0LHN0YXR1czpHLnN0YXR1cyxzdGF0dXNUZXh0Okcuc3RhdHVzVGV4dCxoZWFkZXJzOlMsY29uZmlnOnEscmVxdWVzdDpHfSksRz1udWxsfX1pZihHLm9wZW4ocS5tZXRob2QudG9VcHBlckNhc2UoKSxrKEgscS5wYXJhbXMs'@; put 'cS5wYXJhbXNTZXJpYWxpemVyKSwhMCksRy50aW1lb3V0PXEudGltZW91dCwib25sb2FkZW5kImluIEc/Ry5vbmxvYWRlbmQ9TjpHLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe0cmJjQ9PT1HLnJlYWR5U3RhdGUmJigwIT09Ry5zdGF0dXN8fEcucmVzcG9uc2VVUkwmJjA9PT1HLnJl'@; put 'c3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpJiZzZXRUaW1lb3V0KE4pfSxHLm9uYWJvcnQ9ZnVuY3Rpb24oKXtHJiYodGUobmV3IFkoIlJlcXVlc3QgYWJvcnRlZCIsWS5FQ09OTkFCT1JURUQscSxHKSksRz1udWxsKX0sRy5vbmVycm9yPWZ1bmN0aW9uKCl7dGUobmV3IFkoIk5ldHdvcmsg'@; put 'RXJyb3IiLFkuRVJSX05FVFdPUksscSxHLEcpKSxHPW51bGx9LEcub250aW1lb3V0PWZ1bmN0aW9uKCl7dmFyIFM9cS50aW1lb3V0PyJ0aW1lb3V0IG9mICIrcS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiO3EudGltZW91dEVycm9yTWVzc2FnZSYmKFM9cS50aW1l'@; put 'b3V0RXJyb3JNZXNzYWdlKSx0ZShuZXcgWShTLChxLnRyYW5zaXRpb25hbHx8QikuY2xhcmlmeVRpbWVvdXRFcnJvcj9ZLkVUSU1FRE9VVDpZLkVDT05OQUJPUlRFRCxxLEcpKSxHPW51bGx9LHouaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSl7dmFyIGc9KHEud2l0aENyZWRlbnRpYWxzfHxWKEgp'@; put 'KSYmcS54c3JmQ29va2llTmFtZT9JLnJlYWQocS54c3JmQ29va2llTmFtZSk6dm9pZCAwO2cmJihoZVtxLnhzcmZIZWFkZXJOYW1lXT1nKX0ic2V0UmVxdWVzdEhlYWRlciJpbiBHJiZ6LmZvckVhY2goaGUsZnVuY3Rpb24oUyx2KXt2b2lkIDA9PT1zZSYmImNvbnRlbnQtdHlwZSI9PT12LnRv'@; put 'TG93ZXJDYXNlKCk/ZGVsZXRlIGhlW3ZdOkcuc2V0UmVxdWVzdEhlYWRlcih2LFMpfSksei5pc1VuZGVmaW5lZChxLndpdGhDcmVkZW50aWFscyl8fChHLndpdGhDcmVkZW50aWFscz0hIXEud2l0aENyZWRlbnRpYWxzKSx1ZSYmImpzb24iIT09dWUmJihHLnJlc3BvbnNlVHlwZT1xLnJlc3Bv'@; put 'bnNlVHlwZSksImZ1bmN0aW9uIj09dHlwZW9mIHEub25Eb3dubG9hZFByb2dyZXNzJiZHLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixxLm9uRG93bmxvYWRQcm9ncmVzcyksImZ1bmN0aW9uIj09dHlwZW9mIHEub25VcGxvYWRQcm9ncmVzcyYmRy51cGxvYWQmJkcudXBsb2FkLmFkZEV2'@; put 'ZW50TGlzdGVuZXIoInByb2dyZXNzIixxLm9uVXBsb2FkUHJvZ3Jlc3MpLChxLmNhbmNlbFRva2VufHxxLnNpZ25hbCkmJihvZT1mdW5jdGlvbihTKXtHJiYodGUoIVN8fFMmJlMudHlwZT9uZXcgWDpTKSxHLmFib3J0KCksRz1udWxsKX0scS5jYW5jZWxUb2tlbiYmcS5jYW5jZWxUb2tlbi5z'@; put 'dWJzY3JpYmUob2UpLHEuc2lnbmFsJiYocS5zaWduYWwuYWJvcnRlZD9vZSgpOnEuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvZSkpKSxzZXx8KHNlPW51bGwpO3ZhciBDPVUoSCk7QyYmLTE9PT1bImh0dHAiLCJodHRwcyIsImZpbGUiXS5pbmRleE9mKEMpP3RlKG5ldyBZKCJV'@; put 'bnN1cHBvcnRlZCBwcm90b2NvbCAiK0MrIjoiLFkuRVJSX0JBRF9SRVFVRVNULHEpKTpHLnNlbmQoc2UpfSl9fSwxNjA5OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0ODY3KSxLPVIoMTg0OSksST1SKDMyMSksaz1SKDcxODUpLEU9ZnVuY3Rpb24gaihWKXt2YXIgQj1uZXcgSShW'@; put 'KSxZPUsoSS5wcm90b3R5cGUucmVxdWVzdCxCKTtyZXR1cm4gei5leHRlbmQoWSxJLnByb3RvdHlwZSxCKSx6LmV4dGVuZChZLEIpLFkuY3JlYXRlPWZ1bmN0aW9uKFgpe3JldHVybiBqKGsoVixYKSl9LFl9KFIoNTU0NikpO0UuQXhpb3M9SSxFLkNhbmNlbGVkRXJyb3I9Uig2NDQpLEUuQ2Fu'@; put 'Y2VsVG9rZW49Uig0OTcyKSxFLmlzQ2FuY2VsPVIoNjUwMiksRS5WRVJTSU9OPVIoNzI4OCkudmVyc2lvbixFLnRvRm9ybURhdGE9Uig3Njc1KSxFLkF4aW9zRXJyb3I9UigyNjQ4KSxFLkNhbmNlbD1FLkNhbmNlbGVkRXJyb3IsRS5hbGw9ZnVuY3Rpb24oail7cmV0dXJuIFByb21pc2UuYWxs'@; put 'KGopfSxFLnNwcmVhZD1SKDg3MTMpLEUuaXNBeGlvc0Vycm9yPVIoNjI2OCksTS5leHBvcnRzPUUsTS5leHBvcnRzLmRlZmF1bHQ9RX0sNDk3MjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNjQ0KTtmdW5jdGlvbiBLKEkpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBJKXRocm93IG5l'@; put 'dyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTt2YXIgazt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oail7az1qfSk7dmFyIEU9dGhpczt0aGlzLnByb21pc2UudGhlbihmdW5jdGlvbihqKXtpZihFLl9saXN0ZW5lcnMpe3ZhciBWLEI9RS5fbGlz'@; put 'dGVuZXJzLmxlbmd0aDtmb3IoVj0wO1Y8QjtWKyspRS5fbGlzdGVuZXJzW1ZdKGopO0UuX2xpc3RlbmVycz1udWxsfX0pLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKGope3ZhciBWLEI9bmV3IFByb21pc2UoZnVuY3Rpb24oWSl7RS5zdWJzY3JpYmUoWSksVj1ZfSkudGhlbihqKTtyZXR1'@; put 'cm4gQi5jYW5jZWw9ZnVuY3Rpb24oKXtFLnVuc3Vic2NyaWJlKFYpfSxCfSxJKGZ1bmN0aW9uKGope0UucmVhc29ufHwoRS5yZWFzb249bmV3IHooaiksayhFLnJlYXNvbikpfSl9Sy5wcm90b3R5cGUudGhyb3dJZlJlcXVlc3RlZD1mdW5jdGlvbigpe2lmKHRoaXMucmVhc29uKXRocm93IHRo'@; put 'aXMucmVhc29ufSxLLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oSSl7dGhpcy5yZWFzb24/SSh0aGlzLnJlYXNvbik6dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKEkpOnRoaXMuX2xpc3RlbmVycz1bSV19LEsucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9u'@; put 'KEkpe2lmKHRoaXMuX2xpc3RlbmVycyl7dmFyIGs9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoSSk7LTEhPT1rJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGssMSl9fSxLLnNvdXJjZT1mdW5jdGlvbigpe3ZhciBJO3JldHVybnt0b2tlbjpuZXcgSyhmdW5jdGlvbihrKXtJPWt9KSxjYW5jZWw6'@; put 'SX19LE0uZXhwb3J0cz1LfSw2NDQ6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDI2NDgpO2Z1bmN0aW9uIEsoSSl7ei5jYWxsKHRoaXMsST8/ImNhbmNlbGVkIix6LkVSUl9DQU5DRUxFRCksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1SKDQ4NjcpLmluaGVyaXRzKEsseix7X19D'@; put 'QU5DRUxfXzohMH0pLE0uZXhwb3J0cz1LfSw2NTAyOk09PnsidXNlIHN0cmljdCI7TS5leHBvcnRzPWZ1bmN0aW9uKE8pe3JldHVybiEoIU98fCFPLl9fQ0FOQ0VMX18pfX0sMzIxOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0ODY3KSxLPVIoNTMyNyksST1SKDc4Miksaz1SKDM1'@; put 'NzIpLEU9Uig3MTg1KSxqPVIoNDA5NyksVj1SKDQ4NzUpLEI9Vi52YWxpZGF0b3JzO2Z1bmN0aW9uIFkoWCl7dGhpcy5kZWZhdWx0cz1YLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBJLHJlc3BvbnNlOm5ldyBJfX1ZLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKFgsVSl7InN0'@; put 'cmluZyI9PXR5cGVvZiBYPyhVPVV8fHt9KS51cmw9WDpVPVh8fHt9LFUubWV0aG9kPShVPUUodGhpcy5kZWZhdWx0cyxVKSkubWV0aG9kP1UubWV0aG9kLnRvTG93ZXJDYXNlKCk6dGhpcy5kZWZhdWx0cy5tZXRob2Q/dGhpcy5kZWZhdWx0cy5tZXRob2QudG9Mb3dlckNhc2UoKToiZ2V0Ijt2'@; put 'YXIgcT1VLnRyYW5zaXRpb25hbDt2b2lkIDAhPT1xJiZWLmFzc2VydE9wdGlvbnMocSx7c2lsZW50SlNPTlBhcnNpbmc6Qi50cmFuc2l0aW9uYWwoQi5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpCLnRyYW5zaXRpb25hbChCLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Qi50cmFu'@; put 'c2l0aW9uYWwoQi5ib29sZWFuKX0sITEpO3ZhciBlZT1bXSx0ZT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oYil7ImZ1bmN0aW9uIj09dHlwZW9mIGIucnVuV2hlbiYmITE9PT1iLnJ1bldoZW4oVSl8fCh0ZT10ZSYmYi5zeW5jaHJvbm91cyxlZS51bnNo'@; put 'aWZ0KGIuZnVsZmlsbGVkLGIucmVqZWN0ZWQpKX0pO3ZhciBvZSxzZT1bXTtpZih0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3NlLnB1c2goYi5mdWxmaWxsZWQsYi5yZWplY3RlZCl9KSwhdGUpe3ZhciBoZT1bayx2b2lkIDBdO2ZvcihBcnJheS5wcm90'@; put 'b3R5cGUudW5zaGlmdC5hcHBseShoZSxlZSksaGU9aGUuY29uY2F0KHNlKSxvZT1Qcm9taXNlLnJlc29sdmUoVSk7aGUubGVuZ3RoOylvZT1vZS50aGVuKGhlLnNoaWZ0KCksaGUuc2hpZnQoKSk7cmV0dXJuIG9lfWZvcih2YXIgdWU9VTtlZS5sZW5ndGg7KXt2YXIgY2U9ZWUuc2hpZnQoKSxH'@; put 'PWVlLnNoaWZ0KCk7dHJ5e3VlPWNlKHVlKX1jYXRjaChiKXtHKGIpO2JyZWFrfX10cnl7b2U9ayh1ZSl9Y2F0Y2goYil7cmV0dXJuIFByb21pc2UucmVqZWN0KGIpfWZvcig7c2UubGVuZ3RoOylvZT1vZS50aGVuKHNlLnNoaWZ0KCksc2Uuc2hpZnQoKSk7cmV0dXJuIG9lfSxZLnByb3RvdHlw'@; put 'ZS5nZXRVcmk9ZnVuY3Rpb24oWCl7WD1FKHRoaXMuZGVmYXVsdHMsWCk7dmFyIFU9aihYLmJhc2VVUkwsWC51cmwpO3JldHVybiBLKFUsWC5wYXJhbXMsWC5wYXJhbXNTZXJpYWxpemVyKX0sei5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihYKXtZ'@; put 'LnByb3RvdHlwZVtYXT1mdW5jdGlvbihVLHEpe3JldHVybiB0aGlzLnJlcXVlc3QoRShxfHx7fSx7bWV0aG9kOlgsdXJsOlUsZGF0YToocXx8e30pLmRhdGF9KSl9fSksei5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oWCl7ZnVuY3Rpb24gVShxKXtyZXR1cm4gZnVu'@; put 'Y3Rpb24oZWUsdGUsb2Upe3JldHVybiB0aGlzLnJlcXVlc3QoRShvZXx8e30se21ldGhvZDpYLGhlYWRlcnM6cT97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6ZWUsZGF0YTp0ZX0pKX19WS5wcm90b3R5cGVbWF09VSgpLFkucHJvdG90eXBlW1grIkZvcm0i'@; put 'XT1VKCEwKX0pLE0uZXhwb3J0cz1ZfSwyNjQ4OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0ODY3KTtmdW5jdGlvbiBLKEUsaixWLEIsWSl7RXJyb3IuY2FsbCh0aGlzKSx0aGlzLm1lc3NhZ2U9RSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLGomJih0aGlzLmNvZGU9aiksViYmKHRo'@; put 'aXMuY29uZmlnPVYpLEImJih0aGlzLnJlcXVlc3Q9QiksWSYmKHRoaXMucmVzcG9uc2U9WSl9ei5pbmhlcml0cyhLLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixu'@; put 'dW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVz'@; put 'cG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fX0pO3ZhciBJPUsucHJvdG90eXBlLGs9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJF'@; put 'UlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIl0uZm9yRWFjaChmdW5jdGlvbihFKXtrW0VdPXt2YWx1ZTpFfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEssayksT2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KEksImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSksSy5mcm9tPWZ1bmN0aW9uKEUsaixWLEIsWSxYKXt2YXIgVT1PYmplY3QuY3JlYXRlKEkpO3JldHVybiB6LnRvRmxhdE9iamVjdChFLFUsZnVuY3Rpb24ocSl7cmV0dXJuIHEhPT1FcnJvci5wcm90b3R5cGV9'@; put 'KSxLLmNhbGwoVSxFLm1lc3NhZ2UsaixWLEIsWSksVS5uYW1lPUUubmFtZSxYJiZPYmplY3QuYXNzaWduKFUsWCksVX0sTS5leHBvcnRzPUt9LDc4MjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDg2Nyk7ZnVuY3Rpb24gSygpe3RoaXMuaGFuZGxlcnM9W119Sy5wcm90b3R5cGUu'@; put 'dXNlPWZ1bmN0aW9uKEksayxFKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6SSxyZWplY3RlZDprLHN5bmNocm9ub3VzOiEhRSYmRS5zeW5jaHJvbm91cyxydW5XaGVuOkU/RS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxLLnByb3RvdHlwZS5l'@; put 'amVjdD1mdW5jdGlvbihJKXt0aGlzLmhhbmRsZXJzW0ldJiYodGhpcy5oYW5kbGVyc1tJXT1udWxsKX0sSy5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihJKXt6LmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihrKXtudWxsIT09ayYmSShrKX0pfSxNLmV4cG9ydHM9S30sNDA5Nzoo'@; put 'TSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoMTc5MyksSz1SKDczMDMpO00uZXhwb3J0cz1mdW5jdGlvbihJLGspe3JldHVybiBJJiYheihrKT9LKEksayk6a319LDM1NzI6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQ4NjcpLEs9Uig4NTI3KSxJPVIoNjUwMiksaz1SKDU1'@; put 'NDYpLEU9Uig2NDQpO2Z1bmN0aW9uIGooVil7aWYoVi5jYW5jZWxUb2tlbiYmVi5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksVi5zaWduYWwmJlYuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEV9TS5leHBvcnRzPWZ1bmN0aW9uKFYpe3JldHVybiBqKFYpLFYuaGVhZGVycz1WLmhl'@; put 'YWRlcnN8fHt9LFYuZGF0YT1LLmNhbGwoVixWLmRhdGEsVi5oZWFkZXJzLFYudHJhbnNmb3JtUmVxdWVzdCksVi5oZWFkZXJzPXoubWVyZ2UoVi5oZWFkZXJzLmNvbW1vbnx8e30sVi5oZWFkZXJzW1YubWV0aG9kXXx8e30sVi5oZWFkZXJzKSx6LmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJo'@; put 'ZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sZnVuY3Rpb24oQil7ZGVsZXRlIFYuaGVhZGVyc1tCXX0pLChWLmFkYXB0ZXJ8fGsuYWRhcHRlcikoVikudGhlbihmdW5jdGlvbihCKXtyZXR1cm4gaihWKSxCLmRhdGE9Sy5jYWxsKFYsQi5kYXRhLEIuaGVhZGVycyxWLnRyYW5z'@; put 'Zm9ybVJlc3BvbnNlKSxCfSxmdW5jdGlvbihCKXtyZXR1cm4gSShCKXx8KGooViksQiYmQi5yZXNwb25zZSYmKEIucmVzcG9uc2UuZGF0YT1LLmNhbGwoVixCLnJlc3BvbnNlLmRhdGEsQi5yZXNwb25zZS5oZWFkZXJzLFYudHJhbnNmb3JtUmVzcG9uc2UpKSksUHJvbWlzZS5yZWplY3QoQil9'@; put 'KX19LDcxODU6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQ4NjcpO00uZXhwb3J0cz1mdW5jdGlvbihLLEkpe0k9SXx8e307dmFyIGs9e307ZnVuY3Rpb24gRShVLHEpe3JldHVybiB6LmlzUGxhaW5PYmplY3QoVSkmJnouaXNQbGFpbk9iamVjdChxKT96Lm1lcmdlKFUscSk6ei5p'@; put 'c1BsYWluT2JqZWN0KHEpP3oubWVyZ2Uoe30scSk6ei5pc0FycmF5KHEpP3Euc2xpY2UoKTpxfWZ1bmN0aW9uIGooVSl7cmV0dXJuIHouaXNVbmRlZmluZWQoSVtVXSk/ei5pc1VuZGVmaW5lZChLW1VdKT92b2lkIDA6RSh2b2lkIDAsS1tVXSk6RShLW1VdLElbVV0pfWZ1bmN0aW9uIFYoVSl7'@; put 'aWYoIXouaXNVbmRlZmluZWQoSVtVXSkpcmV0dXJuIEUodm9pZCAwLElbVV0pfWZ1bmN0aW9uIEIoVSl7cmV0dXJuIHouaXNVbmRlZmluZWQoSVtVXSk/ei5pc1VuZGVmaW5lZChLW1VdKT92b2lkIDA6RSh2b2lkIDAsS1tVXSk6RSh2b2lkIDAsSVtVXSl9ZnVuY3Rpb24gWShVKXtyZXR1cm4g'@; put 'VSBpbiBJP0UoS1tVXSxJW1VdKTpVIGluIEs/RSh2b2lkIDAsS1tVXSk6dm9pZCAwfXZhciBYPXt1cmw6VixtZXRob2Q6VixkYXRhOlYsYmFzZVVSTDpCLHRyYW5zZm9ybVJlcXVlc3Q6Qix0cmFuc2Zvcm1SZXNwb25zZTpCLHBhcmFtc1NlcmlhbGl6ZXI6Qix0aW1lb3V0OkIsdGltZW91dE1l'@; put 'c3NhZ2U6Qix3aXRoQ3JlZGVudGlhbHM6QixhZGFwdGVyOkIscmVzcG9uc2VUeXBlOkIseHNyZkNvb2tpZU5hbWU6Qix4c3JmSGVhZGVyTmFtZTpCLG9uVXBsb2FkUHJvZ3Jlc3M6QixvbkRvd25sb2FkUHJvZ3Jlc3M6QixkZWNvbXByZXNzOkIsbWF4Q29udGVudExlbmd0aDpCLG1heEJvZHlM'@; put 'ZW5ndGg6QixiZWZvcmVSZWRpcmVjdDpCLHRyYW5zcG9ydDpCLGh0dHBBZ2VudDpCLGh0dHBzQWdlbnQ6QixjYW5jZWxUb2tlbjpCLHNvY2tldFBhdGg6QixyZXNwb25zZUVuY29kaW5nOkIsdmFsaWRhdGVTdGF0dXM6WX07cmV0dXJuIHouZm9yRWFjaChPYmplY3Qua2V5cyhLKS5jb25jYXQo'@; put 'T2JqZWN0LmtleXMoSSkpLGZ1bmN0aW9uKFUpe3ZhciBxPVhbVV18fGosZWU9cShVKTt6LmlzVW5kZWZpbmVkKGVlKSYmcSE9PVl8fChrW1VdPWVlKX0pLGt9fSw2MDI2OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9UigyNjQ4KTtNLmV4cG9ydHM9ZnVuY3Rpb24oSyxJLGspe3ZhciBF'@; put 'PWsuY29uZmlnLnZhbGlkYXRlU3RhdHVzO2suc3RhdHVzJiZFJiYhRShrLnN0YXR1cyk/SShuZXcgeigiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2suc3RhdHVzLFt6LkVSUl9CQURfUkVRVUVTVCx6LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3Ioay5zdGF0dXMvMTAw'@; put 'KS00XSxrLmNvbmZpZyxrLnJlcXVlc3QsaykpOksoayl9fSw4NTI3OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0ODY3KSxLPVIoNTU0Nik7TS5leHBvcnRzPWZ1bmN0aW9uKEksayxFKXt2YXIgaj10aGlzfHxLO3JldHVybiB6LmZvckVhY2goRSxmdW5jdGlvbihWKXtJPVYuY2Fs'@; put 'bChqLEksayl9KSxJfX0sNTU0NjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDE1NSksSz1SKDQ4NjcpLEk9Uig2MDE2KSxrPVIoMjY0OCksRT1SKDc4NzQpLGo9Uig3Njc1KSxWPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn07ZnVu'@; put 'Y3Rpb24gQihVLHEpeyFLLmlzVW5kZWZpbmVkKFUpJiZLLmlzVW5kZWZpbmVkKFVbIkNvbnRlbnQtVHlwZSJdKSYmKFVbIkNvbnRlbnQtVHlwZSJdPXEpfXZhciBZLFg9e3RyYW5zaXRpb25hbDpFLGFkYXB0ZXI6KCh0eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUifHx2b2lkIDAhPT16JiYiW29i'@; put 'amVjdCBwcm9jZXNzXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeikpJiYoWT1SKDU0NDgpKSxZKSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihVLHEpe2lmKEkocSwiQWNjZXB0IiksSShxLCJDb250ZW50LVR5cGUiKSxLLmlzRm9ybURhdGEoVSl8fEsuaXNBcnJheUJ1'@; put 'ZmZlcihVKXx8Sy5pc0J1ZmZlcihVKXx8Sy5pc1N0cmVhbShVKXx8Sy5pc0ZpbGUoVSl8fEsuaXNCbG9iKFUpKXJldHVybiBVO2lmKEsuaXNBcnJheUJ1ZmZlclZpZXcoVSkpcmV0dXJuIFUuYnVmZmVyO2lmKEsuaXNVUkxTZWFyY2hQYXJhbXMoVSkpcmV0dXJuIEIocSwiYXBwbGljYXRpb24v'@; put 'eC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKSxVLnRvU3RyaW5nKCk7dmFyIGVlLHRlPUsuaXNPYmplY3QoVSksb2U9cSYmcVsiQ29udGVudC1UeXBlIl07aWYoKGVlPUsuaXNGaWxlTGlzdChVKSl8fHRlJiYibXVsdGlwYXJ0L2Zvcm0tZGF0YSI9PT1vZSl7dmFyIHNlPXRo'@; put 'aXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gaihlZT97ImZpbGVzW10iOlV9OlUsc2UmJm5ldyBzZSl9cmV0dXJuIHRlfHwiYXBwbGljYXRpb24vanNvbiI9PT1vZT8oQihxLCJhcHBsaWNhdGlvbi9qc29uIiksZnVuY3Rpb24oaGUsdWUsY2Upe2lmKEsuaXNTdHJpbmcoaGUpKXRy'@; put 'eXtyZXR1cm4oMCxKU09OLnBhcnNlKShoZSksSy50cmltKGhlKX1jYXRjaChHKXtpZigiU3ludGF4RXJyb3IiIT09Ry5uYW1lKXRocm93IEd9cmV0dXJuKDAsSlNPTi5zdHJpbmdpZnkpKGhlKX0oVSkpOlV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oVSl7dmFyIHE9dGhpcy50cmFu'@; put 'c2l0aW9uYWx8fFgudHJhbnNpdGlvbmFsLG9lPSEocSYmcS5zaWxlbnRKU09OUGFyc2luZykmJiJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKG9lfHxxJiZxLmZvcmNlZEpTT05QYXJzaW5nJiZLLmlzU3RyaW5nKFUpJiZVLmxlbmd0aCl0cnl7cmV0dXJuIEpTT04ucGFyc2UoVSl9Y2F0'@; put 'Y2goc2Upe2lmKG9lKXRocm93IlN5bnRheEVycm9yIj09PXNlLm5hbWU/ay5mcm9tKHNlLGsuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6c2V9cmV0dXJuIFV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJY'@; put 'LVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOlIoMTYyMyl9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKFUpe3JldHVybiBVPj0yMDAmJlU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwg'@; put 'dGV4dC9wbGFpbiwgKi8qIn19fTtLLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIl0sZnVuY3Rpb24oVSl7WC5oZWFkZXJzW1VdPXt9fSksSy5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oVSl7WC5oZWFkZXJzW1VdPUsubWVyZ2UoVil9KSxNLmV4cG9ydHM9'@; put 'WH0sNzg3NDpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX19LDcyODg6TT0+e00uZXhwb3J0cz17dmVyc2lvbjoiMC4yNy4yIn19LDE4NDk6TT0+eyJ1c2Ugc3RyaWN0IjtN'@; put 'LmV4cG9ydHM9ZnVuY3Rpb24oTyxSKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHo9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLEs9MDtLPHoubGVuZ3RoO0srKyl6W0tdPWFyZ3VtZW50c1tLXTtyZXR1cm4gTy5hcHBseShSLHopfX19LDUzMjc6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgej1SKDQ4NjcpO2Z1bmN0aW9uIEsoSSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChJKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVw'@; put 'bGFjZSgvJTVEL2dpLCJdIil9TS5leHBvcnRzPWZ1bmN0aW9uKEksayxFKXtpZighaylyZXR1cm4gSTt2YXIgajtpZihFKWo9RShrKTtlbHNlIGlmKHouaXNVUkxTZWFyY2hQYXJhbXMoaykpaj1rLnRvU3RyaW5nKCk7ZWxzZXt2YXIgVj1bXTt6LmZvckVhY2goayxmdW5jdGlvbihZLFgpe251'@; put 'bGwhPVkmJih6LmlzQXJyYXkoWSk/WCs9IltdIjpZPVtZXSx6LmZvckVhY2goWSxmdW5jdGlvbihVKXt6LmlzRGF0ZShVKT9VPVUudG9JU09TdHJpbmcoKTp6LmlzT2JqZWN0KFUpJiYoVT1KU09OLnN0cmluZ2lmeShVKSksVi5wdXNoKEsoWCkrIj0iK0soVSkpfSkpfSksaj1WLmpvaW4oIiYi'@; put 'KX1pZihqKXt2YXIgQj1JLmluZGV4T2YoIiMiKTstMSE9PUImJihJPUkuc2xpY2UoMCxCKSksSSs9KC0xPT09SS5pbmRleE9mKCI/Iik/Ij8iOiImIikran1yZXR1cm4gSX19LDczMDM6TT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9ZnVuY3Rpb24oTyxSKXtyZXR1cm4gUj9PLnJlcGxhY2Uo'@; put 'L1wvKyQvLCIiKSsiLyIrUi5yZXBsYWNlKC9eXC8rLywiIik6T319LDQzNzI6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQ4NjcpO00uZXhwb3J0cz16LmlzU3RhbmRhcmRCcm93c2VyRW52KCk/e3dyaXRlOmZ1bmN0aW9uKEssSSxrLEUsaixWKXt2YXIgQj1bXTtCLnB1c2goSysi'@; put 'PSIrZW5jb2RlVVJJQ29tcG9uZW50KEkpKSx6LmlzTnVtYmVyKGspJiZCLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShrKS50b0dNVFN0cmluZygpKSx6LmlzU3RyaW5nKEUpJiZCLnB1c2goInBhdGg9IitFKSx6LmlzU3RyaW5nKGopJiZCLnB1c2goImRvbWFpbj0iK2opLCEwPT09ViYmQi5w'@; put 'dXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Qi5qb2luKCI7ICIpfSxyZWFkOmZ1bmN0aW9uKEspe3ZhciBJPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitLKyIpPShbXjtdKikiKSk7cmV0dXJuIEk/ZGVjb2RlVVJJQ29tcG9uZW50KElbM10pOm51'@; put 'bGx9LHJlbW92ZTpmdW5jdGlvbihLKXt0aGlzLndyaXRlKEssIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19LDE3OTM6TT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9ZnVu'@; put 'Y3Rpb24oTyl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChPKX19LDYyNjg6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQ4NjcpO00uZXhwb3J0cz1mdW5jdGlvbihLKXtyZXR1cm4gei5pc09iamVjdChLKSYmITA9PT1LLmlzQXhpb3NFcnJvcn19LDc5'@; put 'ODU6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQ4NjcpO00uZXhwb3J0cz16LmlzU3RhbmRhcmRCcm93c2VyRW52KCk/ZnVuY3Rpb24oKXt2YXIgSyxJPS8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJh'@; put 'Iik7ZnVuY3Rpb24gRShqKXt2YXIgVj1qO3JldHVybiBJJiYoay5zZXRBdHRyaWJ1dGUoImhyZWYiLFYpLFY9ay5ocmVmKSxrLnNldEF0dHJpYnV0ZSgiaHJlZiIsVikse2hyZWY6ay5ocmVmLHByb3RvY29sOmsucHJvdG9jb2w/ay5wcm90b2NvbC5yZXBsYWNlKC86JC8sIiIpOiIiLGhvc3Q6'@; put 'ay5ob3N0LHNlYXJjaDprLnNlYXJjaD9rLnNlYXJjaC5yZXBsYWNlKC9eXD8vLCIiKToiIixoYXNoOmsuaGFzaD9rLmhhc2gucmVwbGFjZSgvXiMvLCIiKToiIixob3N0bmFtZTprLmhvc3RuYW1lLHBvcnQ6ay5wb3J0LHBhdGhuYW1lOiIvIj09PWsucGF0aG5hbWUuY2hhckF0KDApP2sucGF0'@; put 'aG5hbWU6Ii8iK2sucGF0aG5hbWV9fXJldHVybiBLPUUod2luZG93LmxvY2F0aW9uLmhyZWYpLGZ1bmN0aW9uKGope3ZhciBWPXouaXNTdHJpbmcoaik/RShqKTpqO3JldHVybiBWLnByb3RvY29sPT09Sy5wcm90b2NvbCYmVi5ob3N0PT09Sy5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiEw'@; put 'fX0sNjAxNjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDg2Nyk7TS5leHBvcnRzPWZ1bmN0aW9uKEssSSl7ei5mb3JFYWNoKEssZnVuY3Rpb24oayxFKXtFIT09SSYmRS50b1VwcGVyQ2FzZSgpPT09SS50b1VwcGVyQ2FzZSgpJiYoS1tJXT1rLGRlbGV0ZSBLW0VdKX0pfX0sMTYy'@; put 'MzpNPT57TS5leHBvcnRzPW51bGx9LDQxMDk6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQ4NjcpLEs9WyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQt'@; put 'c2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXTtNLmV4cG9ydHM9ZnVuY3Rpb24oSSl7dmFyIGssRSxqLFY9'@; put 'e307cmV0dXJuIEkmJnouZm9yRWFjaChJLnNwbGl0KCJcbiIpLGZ1bmN0aW9uKEIpe2lmKGo9Qi5pbmRleE9mKCI6Iiksaz16LnRyaW0oQi5zdWJzdHIoMCxqKSkudG9Mb3dlckNhc2UoKSxFPXoudHJpbShCLnN1YnN0cihqKzEpKSxrKXtpZihWW2tdJiZLLmluZGV4T2Yoayk+PTApcmV0dXJu'@; put 'O1Zba109InNldC1jb29raWUiPT09az8oVltrXT9WW2tdOltdKS5jb25jYXQoW0VdKTpWW2tdP1Zba10rIiwgIitFOkV9fSksVn19LDIwNTpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1mdW5jdGlvbihPKXt2YXIgUj0vXihbLStcd117MSwyNX0pKDo/XC9cL3w6KS8uZXhlYyhPKTtyZXR1'@; put 'cm4gUiYmUlsxXXx8IiJ9fSw4NzEzOk09PnsidXNlIHN0cmljdCI7TS5leHBvcnRzPWZ1bmN0aW9uKE8pe3JldHVybiBmdW5jdGlvbihSKXtyZXR1cm4gTy5hcHBseShudWxsLFIpfX19LDc2NzU6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDg3NjQpLkJ1ZmZlcixLPVIoNDg2Nyk7'@; put 'TS5leHBvcnRzPWZ1bmN0aW9uKEksayl7az1rfHxuZXcgRm9ybURhdGE7dmFyIEU9W107ZnVuY3Rpb24gaihWKXtyZXR1cm4gbnVsbD09PVY/IiI6Sy5pc0RhdGUoVik/Vi50b0lTT1N0cmluZygpOksuaXNBcnJheUJ1ZmZlcihWKXx8Sy5pc1R5cGVkQXJyYXkoVik/ImZ1bmN0aW9uIj09dHlw'@; put 'ZW9mIEJsb2I/bmV3IEJsb2IoW1ZdKTp6LmZyb20oVik6Vn1yZXR1cm4gZnVuY3Rpb24gVihCLFkpe2lmKEsuaXNQbGFpbk9iamVjdChCKXx8Sy5pc0FycmF5KEIpKXtpZigtMSE9PUUuaW5kZXhPZihCKSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrWSk7'@; put 'RS5wdXNoKEIpLEsuZm9yRWFjaChCLGZ1bmN0aW9uKFgsVSl7aWYoIUsuaXNVbmRlZmluZWQoWCkpe3ZhciBxLGVlPVk/WSsiLiIrVTpVO2lmKFgmJiFZJiYib2JqZWN0Ij09dHlwZW9mIFgpaWYoSy5lbmRzV2l0aChVLCJ7fSIpKVg9SlNPTi5zdHJpbmdpZnkoWCk7ZWxzZSBpZihLLmVuZHNX'@; put 'aXRoKFUsIltdIikmJihxPUsudG9BcnJheShYKSkpcmV0dXJuIHZvaWQgcS5mb3JFYWNoKGZ1bmN0aW9uKHRlKXshSy5pc1VuZGVmaW5lZCh0ZSkmJmsuYXBwZW5kKGVlLGoodGUpKX0pO1YoWCxlZSl9fSksRS5wb3AoKX1lbHNlIGsuYXBwZW5kKFksaihCKSl9KEkpLGt9fSw0ODc1OihNLE8s'@; put 'Uik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig1MTA4KSxLPVIoNzI4OCkudmVyc2lvbixJPVIoMjY0OCksaz17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goZnVuY3Rpb24oaixWKXtrW2pdPWZ1bmN0aW9uKEIpe3Jl'@; put 'dHVybiB0eXBlb2YgQj09PWp8fCJhIisoVjwxPyJuICI6IiAiKStqfX0pO3ZhciBFPXt9O2sudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGosVixCKXtmdW5jdGlvbiBZKFgsVSl7cmV0dXJuIltBeGlvcyB2IitLKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrWCsiJyIrVSsoQj8iLiAiK0I6IiIp'@; put 'fXJldHVybiBmdW5jdGlvbihYLFUscSl7aWYoITE9PT1qKXRocm93IG5ldyBJKFkoVSwiIGhhcyBiZWVuIHJlbW92ZWQiKyhWPyIgaW4gIitWOiIiKSksSS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIFYmJiFFW1VdJiYoRVtVXT0hMCx6Lndhcm4oWShVLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBz'@; put 'aW5jZSB2IitWKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCFqfHxqKFgsVSxxKX19LE0uZXhwb3J0cz17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihqLFYsQil7aWYoIm9iamVjdCIhPXR5cGVvZiBqKXRocm93IG5ldyBJKCJvcHRpb25zIG11c3QgYmUgYW4g'@; put 'b2JqZWN0IixJLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtmb3IodmFyIFk9T2JqZWN0LmtleXMoaiksWD1ZLmxlbmd0aDtYLS0gPjA7KXt2YXIgVT1ZW1hdLHE9VltVXTtpZihxKXt2YXIgZWU9altVXSx0ZT12b2lkIDA9PT1lZXx8cShlZSxVLGopO2lmKCEwIT09dGUpdGhyb3cgbmV3IEkoIm9w'@; put 'dGlvbiAiK1UrIiBtdXN0IGJlICIrdGUsSS5FUlJfQkFEX09QVElPTl9WQUxVRSl9ZWxzZSBpZighMCE9PUIpdGhyb3cgbmV3IEkoIlVua25vd24gb3B0aW9uICIrVSxJLkVSUl9CQURfT1BUSU9OKX19LHZhbGlkYXRvcnM6a319LDQ4Njc6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgeixL'@; put 'PVIoMTg0OSksST1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGs9KHo9T2JqZWN0LmNyZWF0ZShudWxsKSxmdW5jdGlvbihHKXt2YXIgYj1JLmNhbGwoRyk7cmV0dXJuIHpbYl18fCh6W2JdPWIuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KTtmdW5jdGlvbiBFKEcpe3JldHVybiBHPUcu'@; put 'dG9Mb3dlckNhc2UoKSxmdW5jdGlvbihiKXtyZXR1cm4gayhiKT09PUd9fWZ1bmN0aW9uIGooRyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoRyl9ZnVuY3Rpb24gVihHKXtyZXR1cm4gdm9pZCAwPT09R312YXIgQj1FKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIFkoRyl7cmV0dXJuIG51bGwhPT1H'@; put 'JiYib2JqZWN0Ij09dHlwZW9mIEd9ZnVuY3Rpb24gWChHKXtpZigib2JqZWN0IiE9PWsoRykpcmV0dXJuITE7dmFyIGI9T2JqZWN0LmdldFByb3RvdHlwZU9mKEcpO3JldHVybiBudWxsPT09Ynx8Yj09PU9iamVjdC5wcm90b3R5cGV9dmFyIFU9RSgiRGF0ZSIpLHE9RSgiRmlsZSIpLGVlPUUo'@; put 'IkJsb2IiKSx0ZT1FKCJGaWxlTGlzdCIpO2Z1bmN0aW9uIG9lKEcpe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1JLmNhbGwoRyl9dmFyIHNlPUUoIlVSTFNlYXJjaFBhcmFtcyIpO2Z1bmN0aW9uIGhlKEcsYil7aWYobnVsbCE9RylpZigib2JqZWN0IiE9dHlwZW9mIEcmJihHPVtHXSks'@; put 'aihHKSlmb3IodmFyIEQ9MCxIPUcubGVuZ3RoO0Q8SDtEKyspYi5jYWxsKG51bGwsR1tEXSxELEcpO2Vsc2UgZm9yKHZhciBOIGluIEcpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEcsTikmJmIuY2FsbChudWxsLEdbTl0sTixHKX12YXIgdWUsY2U9KHVlPXR5cGVvZiBV'@; put 'aW50OEFycmF5PCJ1IiYmT2JqZWN0LmdldFByb3RvdHlwZU9mKFVpbnQ4QXJyYXkpLGZ1bmN0aW9uKEcpe3JldHVybiB1ZSYmRyBpbnN0YW5jZW9mIHVlfSk7TS5leHBvcnRzPXtpc0FycmF5OmosaXNBcnJheUJ1ZmZlcjpCLGlzQnVmZmVyOmZ1bmN0aW9uKEcpe3JldHVybiBudWxsIT09RyYm'@; put 'IVYoRykmJm51bGwhPT1HLmNvbnN0cnVjdG9yJiYhVihHLmNvbnN0cnVjdG9yKSYmImZ1bmN0aW9uIj09dHlwZW9mIEcuY29uc3RydWN0b3IuaXNCdWZmZXImJkcuY29uc3RydWN0b3IuaXNCdWZmZXIoRyl9LGlzRm9ybURhdGE6ZnVuY3Rpb24oRyl7dmFyIGI9IltvYmplY3QgRm9ybURhdGFd'@; put 'IjtyZXR1cm4gRyYmKCJmdW5jdGlvbiI9PXR5cGVvZiBGb3JtRGF0YSYmRyBpbnN0YW5jZW9mIEZvcm1EYXRhfHxJLmNhbGwoRyk9PT1ifHxvZShHLnRvU3RyaW5nKSYmRy50b1N0cmluZygpPT09Yil9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKEcpe3JldHVybiB0eXBlb2YgQXJyYXlC'@; put 'dWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXIuaXNWaWV3KEcpOkcmJkcuYnVmZmVyJiZCKEcuYnVmZmVyKX0saXNTdHJpbmc6ZnVuY3Rpb24oRyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBHfSxpc051bWJlcjpmdW5jdGlvbihHKXtyZXR1cm4ibnVtYmVyIj09dHlw'@; put 'ZW9mIEd9LGlzT2JqZWN0OlksaXNQbGFpbk9iamVjdDpYLGlzVW5kZWZpbmVkOlYsaXNEYXRlOlUsaXNGaWxlOnEsaXNCbG9iOmVlLGlzRnVuY3Rpb246b2UsaXNTdHJlYW06ZnVuY3Rpb24oRyl7cmV0dXJuIFkoRykmJm9lKEcucGlwZSl9LGlzVVJMU2VhcmNoUGFyYW1zOnNlLGlzU3RhbmRh'@; put 'cmRCcm93c2VyRW52OmZ1bmN0aW9uKCl7cmV0dXJuKHR5cGVvZiBuYXZpZ2F0b3I+InUifHwiUmVhY3ROYXRpdmUiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOYXRpdmVTY3JpcHQiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOUyIhPT1uYXZpZ2F0b3IucHJvZHVjdCkmJnR5cGVvZiB3aW5kb3c8'@; put 'InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUifSxmb3JFYWNoOmhlLG1lcmdlOmZ1bmN0aW9uIEcoKXt2YXIgYj17fTtmdW5jdGlvbiBEKGcsQyl7YltDXT1YKGJbQ10pJiZYKGcpP0coYltDXSxnKTpYKGcpP0coe30sZyk6aihnKT9nLnNsaWNlKCk6Z31mb3IodmFyIEg9MCxOPWFyZ3VtZW50cy5s'@; put 'ZW5ndGg7SDxOO0grKyloZShhcmd1bWVudHNbSF0sRCk7cmV0dXJuIGJ9LGV4dGVuZDpmdW5jdGlvbihHLGIsRCl7cmV0dXJuIGhlKGIsZnVuY3Rpb24oSCxOKXtHW05dPUQmJiJmdW5jdGlvbiI9PXR5cGVvZiBIP0soSCxEKTpIfSksR30sdHJpbTpmdW5jdGlvbihHKXtyZXR1cm4gRy50cmlt'@; put 'P0cudHJpbSgpOkcucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSxzdHJpcEJPTTpmdW5jdGlvbihHKXtyZXR1cm4gNjUyNzk9PT1HLmNoYXJDb2RlQXQoMCkmJihHPUcuc2xpY2UoMSkpLEd9LGluaGVyaXRzOmZ1bmN0aW9uKEcsYixELEgpe0cucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYi5w'@; put 'cm90b3R5cGUsSCksRy5wcm90b3R5cGUuY29uc3RydWN0b3I9RyxEJiZPYmplY3QuYXNzaWduKEcucHJvdG90eXBlLEQpfSx0b0ZsYXRPYmplY3Q6ZnVuY3Rpb24oRyxiLEQpe3ZhciBILE4sZyxDPXt9O2I9Ynx8e307ZG97Zm9yKE49KEg9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoRykp'@; put 'Lmxlbmd0aDtOLS0gPjA7KUNbZz1IW05dXXx8KGJbZ109R1tnXSxDW2ddPSEwKTtHPU9iamVjdC5nZXRQcm90b3R5cGVPZihHKX13aGlsZShHJiYoIUR8fEQoRyxiKSkmJkchPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gYn0sa2luZE9mOmssa2luZE9mVGVzdDpFLGVuZHNXaXRoOmZ1bmN0'@; put 'aW9uKEcsYixEKXtHPVN0cmluZyhHKSwodm9pZCAwPT09RHx8RD5HLmxlbmd0aCkmJihEPUcubGVuZ3RoKTt2YXIgSD1HLmluZGV4T2YoYixELT1iLmxlbmd0aCk7cmV0dXJuLTEhPT1IJiZIPT09RH0sdG9BcnJheTpmdW5jdGlvbihHKXtpZighRylyZXR1cm4gbnVsbDt2YXIgYj1HLmxlbmd0'@; put 'aDtpZihWKGIpKXJldHVybiBudWxsO2Zvcih2YXIgRD1uZXcgQXJyYXkoYik7Yi0tID4wOylEW2JdPUdbYl07cmV0dXJuIER9LGlzVHlwZWRBcnJheTpjZSxpc0ZpbGVMaXN0OnRlfX0sNTYyMzpNPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIE8oSyxJLGspe0sgaW5zdGFuY2VvZiBSZWdFeHAm'@; put 'JihLPVIoSyxrKSksSSBpbnN0YW5jZW9mIFJlZ0V4cCYmKEk9UihJLGspKTt2YXIgRT16KEssSSxrKTtyZXR1cm4gRSYme3N0YXJ0OkVbMF0sZW5kOkVbMV0scHJlOmsuc2xpY2UoMCxFWzBdKSxib2R5Omsuc2xpY2UoRVswXStLLmxlbmd0aCxFWzFdKSxwb3N0Omsuc2xpY2UoRVsxXStJLmxl'@; put 'bmd0aCl9fWZ1bmN0aW9uIFIoSyxJKXt2YXIgaz1JLm1hdGNoKEspO3JldHVybiBrP2tbMF06bnVsbH1mdW5jdGlvbiB6KEssSSxrKXt2YXIgRSxqLFYsQixZLFg9ay5pbmRleE9mKEspLFU9ay5pbmRleE9mKEksWCsxKSxxPVg7aWYoWD49MCYmVT4wKXtpZihLPT09SSlyZXR1cm5bWCxVXTtm'@; put 'b3IoRT1bXSxWPWsubGVuZ3RoO3E+PTAmJiFZOylxPT1YPyhFLnB1c2gocSksWD1rLmluZGV4T2YoSyxxKzEpKToxPT1FLmxlbmd0aD9ZPVtFLnBvcCgpLFVdOigoaj1FLnBvcCgpKTxWJiYoVj1qLEI9VSksVT1rLmluZGV4T2YoSSxxKzEpKSxxPVg8VSYmWD49MD9YOlU7RS5sZW5ndGgmJihZ'@; put 'PVtWLEJdKX1yZXR1cm4gWX1NLmV4cG9ydHM9TyxPLnJhbmdlPXp9LDk3NDI6KE0sTyk9PnsidXNlIHN0cmljdCI7Ty5ieXRlTGVuZ3RoPWZ1bmN0aW9uKEIpe3ZhciBZPWooQiksVT1ZWzFdO3JldHVybiAzKihZWzBdK1UpLzQtVX0sTy50b0J5dGVBcnJheT1mdW5jdGlvbihCKXt2YXIgWSxY'@; put 'LGNlLFU9aihCKSxxPVVbMF0sZWU9VVsxXSx0ZT1uZXcgSygzKihxKyhjZT1lZSkpLzQtY2UpLG9lPTAsc2U9ZWU+MD9xLTQ6cTtmb3IoWD0wO1g8c2U7WCs9NClZPXpbQi5jaGFyQ29kZUF0KFgpXTw8MTh8eltCLmNoYXJDb2RlQXQoWCsxKV08PDEyfHpbQi5jaGFyQ29kZUF0KFgrMildPDw2'@; put 'fHpbQi5jaGFyQ29kZUF0KFgrMyldLHRlW29lKytdPVk+PjE2JjI1NSx0ZVtvZSsrXT1ZPj44JjI1NSx0ZVtvZSsrXT0yNTUmWTtyZXR1cm4gMj09PWVlJiYoWT16W0IuY2hhckNvZGVBdChYKV08PDJ8eltCLmNoYXJDb2RlQXQoWCsxKV0+PjQsdGVbb2UrK109MjU1JlkpLDE9PT1lZSYmKFk9'@; put 'eltCLmNoYXJDb2RlQXQoWCldPDwxMHx6W0IuY2hhckNvZGVBdChYKzEpXTw8NHx6W0IuY2hhckNvZGVBdChYKzIpXT4+Mix0ZVtvZSsrXT1ZPj44JjI1NSx0ZVtvZSsrXT0yNTUmWSksdGV9LE8uZnJvbUJ5dGVBcnJheT1mdW5jdGlvbihCKXtmb3IodmFyIFksWD1CLmxlbmd0aCxVPVglMyxx'@; put 'PVtdLHRlPTAsb2U9WC1VO3RlPG9lO3RlKz0xNjM4MylxLnB1c2goVihCLHRlLHRlKzE2MzgzPm9lP29lOnRlKzE2MzgzKSk7cmV0dXJuIDE9PT1VP3EucHVzaChSWyhZPUJbWC0xXSk+PjJdK1JbWTw8NCY2M10rIj09Iik6Mj09PVUmJnEucHVzaChSWyhZPShCW1gtMl08PDgpK0JbWC0xXSk+'@; put 'PjEwXStSW1k+PjQmNjNdK1JbWTw8MiY2M10rIj0iKSxxLmpvaW4oIiIpfTtmb3IodmFyIFI9W10sej1bXSxLPXR5cGVvZiBVaW50OEFycmF5PCJ1Ij9VaW50OEFycmF5OkFycmF5LEk9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2'@; put 'Nzg5Ky8iLGs9MDtrPDY0OysraylSW2tdPUlba10seltJLmNoYXJDb2RlQXQoayldPWs7ZnVuY3Rpb24gaihCKXt2YXIgWT1CLmxlbmd0aDtpZihZJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgWD1CLmlu'@; put 'ZGV4T2YoIj0iKTtyZXR1cm4tMT09PVgmJihYPVkpLFtYLFg9PT1ZPzA6NC1YJTRdfWZ1bmN0aW9uIFYoQixZLFgpe2Zvcih2YXIgcSxlZT1bXSx0ZT1ZO3RlPFg7dGUrPTMpZWUucHVzaChSWyhxPShCW3RlXTw8MTYmMTY3MTE2ODApKyhCW3RlKzFdPDw4JjY1MjgwKSsoMjU1JkJbdGUrMl0p'@; put 'KT4+MTgmNjNdK1JbcT4+MTImNjNdK1JbcT4+NiY2M10rUls2MyZxXSk7cmV0dXJuIGVlLmpvaW4oIiIpfXpbIi0iLmNoYXJDb2RlQXQoMCldPTYyLHpbIl8iLmNoYXJDb2RlQXQoMCldPTYzfSwzNTUwOmZ1bmN0aW9uKE0sTyxSKXshZnVuY3Rpb24oeixLKXsidXNlIHN0cmljdCI7ZnVuY3Rp'@; put 'b24gSSh2LHApe2lmKCF2KXRocm93IG5ldyBFcnJvcihwfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGsodixwKXt2LnN1cGVyXz1wO3ZhciB3PWZ1bmN0aW9uKCl7fTt3LnByb3RvdHlwZT1wLnByb3RvdHlwZSx2LnByb3RvdHlwZT1uZXcgdyx2LnByb3RvdHlwZS5jb25zdHJ1Y3Rv'@; put 'cj12fWZ1bmN0aW9uIEUodixwLHcpe2lmKEUuaXNCTih2KSlyZXR1cm4gdjt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09diYmKCJsZSIhPT1wJiYiYmUiIT09cHx8KHc9cCxwPTEwKSx0aGlzLl9pbml0KHZ8fDAscHx8'@; put 'MTAsd3x8ImJlIikpfXZhciBqOyJvYmplY3QiPT10eXBlb2Ygej96LmV4cG9ydHM9RTpLLkJOPUUsRS5CTj1FLEUud29yZFNpemU9MjY7dHJ5e2o9dHlwZW9mIHdpbmRvdzwidSImJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpSKDY2MDEpLkJ1ZmZlcn1jYXRjaHt9ZnVu'@; put 'Y3Rpb24gVih2LHApe3ZhciB3PXYuY2hhckNvZGVBdChwKTtyZXR1cm4gdz49NDgmJnc8PTU3P3ctNDg6dz49NjUmJnc8PTcwP3ctNTU6dz49OTcmJnc8PTEwMj93LTg3OnZvaWQgSSghMSwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gIit2KX1mdW5jdGlvbiBCKHYscCx3KXt2YXIgSj1WKHYsdyk7'@; put 'cmV0dXJuIHctMT49cCYmKEp8PVYodix3LTEpPDw0KSxKfWZ1bmN0aW9uIFkodixwLHcsSil7Zm9yKHZhciBuZT0wLGRlPTAsZmU9TWF0aC5taW4odi5sZW5ndGgsdykseGU9cDt4ZTxmZTt4ZSsrKXt2YXIgTGU9di5jaGFyQ29kZUF0KHhlKS00ODtuZSo9SixkZT1MZT49NDk/TGUtNDkrMTA6'@; put 'TGU+PTE3P0xlLTE3KzEwOkxlLEkoTGU+PTAmJmRlPEosIkludmFsaWQgY2hhcmFjdGVyIiksbmUrPWRlfXJldHVybiBuZX1mdW5jdGlvbiBYKHYscCl7di53b3Jkcz1wLndvcmRzLHYubGVuZ3RoPXAubGVuZ3RoLHYubmVnYXRpdmU9cC5uZWdhdGl2ZSx2LnJlZD1wLnJlZH1pZihFLmlzQk49'@; put 'ZnVuY3Rpb24odil7cmV0dXJuIHYgaW5zdGFuY2VvZiBFfHxudWxsIT09diYmIm9iamVjdCI9PXR5cGVvZiB2JiZ2LmNvbnN0cnVjdG9yLndvcmRTaXplPT09RS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh2LndvcmRzKX0sRS5tYXg9ZnVuY3Rpb24odixwKXtyZXR1cm4gdi5jbXAocCk+MD92'@; put 'OnB9LEUubWluPWZ1bmN0aW9uKHYscCl7cmV0dXJuIHYuY21wKHApPDA/djpwfSxFLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih2LHAsdyl7aWYoIm51bWJlciI9PXR5cGVvZiB2KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHYscCx3KTtpZigib2JqZWN0Ij09dHlwZW9mIHYpcmV0dXJuIHRo'@; put 'aXMuX2luaXRBcnJheSh2LHAsdyk7ImhleCI9PT1wJiYocD0xNiksSShwPT09KDB8cCkmJnA+PTImJnA8PTM2KTt2YXIgSj0wOyItIj09PSh2PXYudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoSisrLHRoaXMubmVnYXRpdmU9MSksSjx2Lmxlbmd0aCYmKDE2PT09cD90aGlz'@; put 'Ll9wYXJzZUhleCh2LEosdyk6KHRoaXMuX3BhcnNlQmFzZSh2LHAsSiksImxlIj09PXcmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxwLHcpKSl9LEUucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHYscCx3KXt2PDAmJih0aGlzLm5lZ2F0aXZlPTEsdj0tdiksdjw2NzEw'@; put 'ODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdl0sdGhpcy5sZW5ndGg9MSk6djw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ2LHYvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihJKHY8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4'@; put 'NjMmdix2LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT13JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkscCx3KX0sRS5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih2LHAsdyl7aWYoSSgibnVtYmVyIj09dHlwZW9mIHYubGVuZ3RoKSx2Lmxl'@; put 'bmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh2Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBKPTA7Sjx0aGlzLmxlbmd0aDtKKyspdGhpcy53b3Jkc1tKXT0wO3Zh'@; put 'ciBuZSxkZSxmZT0wO2lmKCJiZSI9PT13KWZvcihKPXYubGVuZ3RoLTEsbmU9MDtKPj0wO0otPTMpdGhpcy53b3Jkc1tuZV18PShkZT12W0pdfHZbSi0xXTw8OHx2W0otMl08PDE2KTw8ZmUmNjcxMDg4NjMsdGhpcy53b3Jkc1tuZSsxXT1kZT4+PjI2LWZlJjY3MTA4ODYzLChmZSs9MjQpPj0y'@; put 'NiYmKGZlLT0yNixuZSsrKTtlbHNlIGlmKCJsZSI9PT13KWZvcihKPTAsbmU9MDtKPHYubGVuZ3RoO0orPTMpdGhpcy53b3Jkc1tuZV18PShkZT12W0pdfHZbSisxXTw8OHx2W0orMl08PDE2KTw8ZmUmNjcxMDg4NjMsdGhpcy53b3Jkc1tuZSsxXT1kZT4+PjI2LWZlJjY3MTA4ODYzLChmZSs9'@; put 'MjQpPj0yNiYmKGZlLT0yNixuZSsrKTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sRS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHYscCx3KXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHYubGVuZ3RoLXApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEo9'@; put 'MDtKPHRoaXMubGVuZ3RoO0orKyl0aGlzLndvcmRzW0pdPTA7dmFyIG5lLGRlPTAsZmU9MDtpZigiYmUiPT09dylmb3IoSj12Lmxlbmd0aC0xO0o+PXA7Si09MiluZT1CKHYscCxKKTw8ZGUsdGhpcy53b3Jkc1tmZV18PTY3MTA4ODYzJm5lLGRlPj0xOD8oZGUtPTE4LHRoaXMud29yZHNbZmUr'@; put 'PTFdfD1uZT4+PjI2KTpkZSs9ODtlbHNlIGZvcihKPSh2Lmxlbmd0aC1wKSUyPT0wP3ArMTpwO0o8di5sZW5ndGg7Sis9MiluZT1CKHYscCxKKTw8ZGUsdGhpcy53b3Jkc1tmZV18PTY3MTA4ODYzJm5lLGRlPj0xOD8oZGUtPTE4LHRoaXMud29yZHNbZmUrPTFdfD1uZT4+PjI2KTpkZSs9ODt0'@; put 'aGlzLl9zdHJpcCgpfSxFLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKHYscCx3KXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgSj0wLG5lPTE7bmU8PTY3MTA4ODYzO25lKj1wKUorKztKLS0sbmU9bmUvcHwwO2Zvcih2YXIgZGU9di5sZW5ndGgtdyxmZT1kZSVK'@; put 'LHhlPU1hdGgubWluKGRlLGRlLWZlKSt3LExlPTAsRmU9dztGZTx4ZTtGZSs9SilMZT1ZKHYsRmUsRmUrSixwKSx0aGlzLmltdWxuKG5lKSx0aGlzLndvcmRzWzBdK0xlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPUxlOnRoaXMuX2lhZGRuKExlKTtpZigwIT09ZmUpe3ZhciBPZT0xO2ZvcihM'@; put 'ZT1ZKHYsRmUsdi5sZW5ndGgscCksRmU9MDtGZTxmZTtGZSsrKU9lKj1wO3RoaXMuaW11bG4oT2UpLHRoaXMud29yZHNbMF0rTGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9TGU6dGhpcy5faWFkZG4oTGUpfXRoaXMuX3N0cmlwKCl9LEUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odil7di53'@; put 'b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgcD0wO3A8dGhpcy5sZW5ndGg7cCsrKXYud29yZHNbcF09dGhpcy53b3Jkc1twXTt2Lmxlbmd0aD10aGlzLmxlbmd0aCx2Lm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsdi5yZWQ9dGhpcy5yZWR9LEUucHJvdG90eXBlLl9tb3ZlPWZ1'@; put 'bmN0aW9uKHYpe1godix0aGlzKX0sRS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdj1uZXcgRShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHYpLHZ9LEUucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odil7Zm9yKDt0aGlzLmxlbmd0aDx2Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3Ro'@; put 'KytdPTA7cmV0dXJuIHRoaXN9LEUucHJvdG90eXBlLl9zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LEUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5j'@; put 'dGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSx0eXBlb2YgU3ltYm9sPCJ1IiYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3IpdHJ5e0UucHJvdG90eXBlW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmlu'@; put 'c3BlY3QuY3VzdG9tIildPVV9Y2F0Y2h7RS5wcm90b3R5cGUuaW5zcGVjdD1VfWVsc2UgRS5wcm90b3R5cGUuaW5zcGVjdD1VO2Z1bmN0aW9uIFUoKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In12YXIgcT1bIiIsIjAiLCIwMCIsIjAw'@; put 'MCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAw'@; put 'MDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAw'@; put 'MCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxlZT1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSx0ZT1bMCwwLDMzNTU0NDMyLDQzMDQ2'@; put 'NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0'@; put 'MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBvZSh2LHAsdyl7dy5uZWdhdGl2ZT1wLm5lZ2F0aXZlXnYubmVn'@; put 'YXRpdmU7dmFyIEo9di5sZW5ndGgrcC5sZW5ndGh8MDt3Lmxlbmd0aD1KLEo9Si0xfDA7dmFyIG5lPTB8di53b3Jkc1swXSxkZT0wfHAud29yZHNbMF0sZmU9bmUqZGUsTGU9ZmUvNjcxMDg4NjR8MDt3LndvcmRzWzBdPTY3MTA4ODYzJmZlO2Zvcih2YXIgRmU9MTtGZTxKO0ZlKyspe2Zvcih2'@; put 'YXIgT2U9TGU+Pj4yNixqZT02NzEwODg2MyZMZSxXZT1NYXRoLm1pbihGZSxwLmxlbmd0aC0xKSxLZT1NYXRoLm1heCgwLEZlLXYubGVuZ3RoKzEpO0tlPD1XZTtLZSsrKU9lKz0oZmU9KG5lPTB8di53b3Jkc1tGZS1LZXwwXSkqKGRlPTB8cC53b3Jkc1tLZV0pK2plKS82NzEwODg2NHwwLGpl'@; put 'PTY3MTA4ODYzJmZlO3cud29yZHNbRmVdPTB8amUsTGU9MHxPZX1yZXR1cm4gMCE9PUxlP3cud29yZHNbRmVdPTB8TGU6dy5sZW5ndGgtLSx3Ll9zdHJpcCgpfUUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHYscCl7dmFyIHc7aWYocD0wfHB8fDEsMTY9PT0odj12fHwxMCl8fCJoZXgi'@; put 'PT09dil7dz0iIjtmb3IodmFyIEo9MCxuZT0wLGRlPTA7ZGU8dGhpcy5sZW5ndGg7ZGUrKyl7dmFyIGZlPXRoaXMud29yZHNbZGVdLHhlPSgxNjc3NzIxNSYoZmU8PEp8bmUpKS50b1N0cmluZygxNik7bmU9ZmU+Pj4yNC1KJjE2Nzc3MjE1LChKKz0yKT49MjYmJihKLT0yNixkZS0tKSx3PTAh'@; put 'PT1uZXx8ZGUhPT10aGlzLmxlbmd0aC0xP3FbNi14ZS5sZW5ndGhdK3hlK3c6eGUrd31mb3IoMCE9PW5lJiYodz1uZS50b1N0cmluZygxNikrdyk7dy5sZW5ndGglcCE9MDspdz0iMCIrdztyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih3PSItIit3KSx3fWlmKHY9PT0oMHx2KSYmdj49MiYm'@; put 'djw9MzYpe3ZhciBMZT1lZVt2XSxGZT10ZVt2XTt3PSIiO3ZhciBPZT10aGlzLmNsb25lKCk7Zm9yKE9lLm5lZ2F0aXZlPTA7IU9lLmlzWmVybygpOyl7dmFyIGplPU9lLm1vZHJuKEZlKS50b1N0cmluZyh2KTt3PShPZT1PZS5pZGl2bihGZSkpLmlzWmVybygpP2plK3c6cVtMZS1qZS5sZW5n'@; put 'dGhdK2plK3d9Zm9yKHRoaXMuaXNaZXJvKCkmJih3PSIwIit3KTt3Lmxlbmd0aCVwIT0wOyl3PSIwIit3O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHc9Ii0iK3cpLHd9SSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxFLnByb3RvdHlwZS50b051bWJlcj1mdW5j'@; put 'dGlvbigpe3ZhciB2PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD92Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/dis9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3Ro'@; put 'PjImJkkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy12OnZ9LEUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2LDIpfSxqJiYoRS5wcm90b3R5cGUudG9CdWZmZXI9ZnVu'@; put 'Y3Rpb24odixwKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShqLHYscCl9KSxFLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHYscCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksdixwKX0sRS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24odixwLHcpe3RoaXMuX3N0cmlw'@; put 'KCk7dmFyIEo9dGhpcy5ieXRlTGVuZ3RoKCksbmU9d3x8TWF0aC5tYXgoMSxKKTtJKEo8PW5lLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksSShuZT4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKTt2YXIgZmUseGUsZGU9KHhlPW5lLChmZT12KS5hbGxv'@; put 'Y1Vuc2FmZT9mZS5hbGxvY1Vuc2FmZSh4ZSk6bmV3IGZlKHhlKSk7cmV0dXJuIHRoaXNbIl90b0FycmF5TGlrZSIrKCJsZSI9PT1wPyJMRSI6IkJFIildKGRlLEopLGRlfSxFLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbih2LHApe2Zvcih2YXIgdz0wLEo9MCxuZT0wLGRlPTA7'@; put 'bmU8dGhpcy5sZW5ndGg7bmUrKyl7dmFyIGZlPXRoaXMud29yZHNbbmVdPDxkZXxKO3ZbdysrXT0yNTUmZmUsdzx2Lmxlbmd0aCYmKHZbdysrXT1mZT4+OCYyNTUpLHc8di5sZW5ndGgmJih2W3crK109ZmU+PjE2JjI1NSksNj09PWRlPyh3PHYubGVuZ3RoJiYodlt3KytdPWZlPj4yNCYyNTUp'@; put 'LEo9MCxkZT0wKTooSj1mZT4+PjI0LGRlKz0yKX1pZih3PHYubGVuZ3RoKWZvcih2W3crK109Sjt3PHYubGVuZ3RoOyl2W3crK109MH0sRS5wcm90b3R5cGUuX3RvQXJyYXlMaWtlQkU9ZnVuY3Rpb24odixwKXtmb3IodmFyIHc9di5sZW5ndGgtMSxKPTAsbmU9MCxkZT0wO25lPHRoaXMubGVu'@; put 'Z3RoO25lKyspe3ZhciBmZT10aGlzLndvcmRzW25lXTw8ZGV8Sjt2W3ctLV09MjU1JmZlLHc+PTAmJih2W3ctLV09ZmU+PjgmMjU1KSx3Pj0wJiYodlt3LS1dPWZlPj4xNiYyNTUpLDY9PT1kZT8odz49MCYmKHZbdy0tXT1mZT4+MjQmMjU1KSxKPTAsZGU9MCk6KEo9ZmU+Pj4yNCxkZSs9Mil9'@; put 'aWYodz49MClmb3Iodlt3LS1dPUo7dz49MDspdlt3LS1dPTB9LEUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbih2KXtyZXR1cm4gMzItTWF0aC5jbHozMih2KX06ZnVuY3Rpb24odil7dmFyIHA9dix3PTA7cmV0dXJuIHA+PTQwOTYmJih3Kz0xMyxwPj4+PTEzKSxw'@; put 'Pj02NCYmKHcrPTcscD4+Pj03KSxwPj04JiYodys9NCxwPj4+PTQpLHA+PTImJih3Kz0yLHA+Pj49MiksdytwfSxFLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24odil7aWYoMD09PXYpcmV0dXJuIDI2O3ZhciBwPXYsdz0wO3JldHVybiEoODE5MSZwKSYmKHcrPTEzLHA+Pj49MTMpLCEo'@; put 'MTI3JnApJiYodys9NyxwPj4+PTcpLCEoMTUmcCkmJih3Kz00LHA+Pj49NCksISgzJnApJiYodys9MixwPj4+PTIpLCEoMSZwKSYmdysrLHd9LEUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBwPXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTty'@; put 'ZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3B9LEUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHY9MCxwPTA7cDx0aGlzLmxlbmd0aDtwKyspe3ZhciB3PXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbcF0pO2lmKHYrPXcs'@; put 'MjYhPT13KWJyZWFrfXJldHVybiB2fSxFLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxFLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24odil7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5v'@; put 'dG4odikuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxFLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy50ZXN0bih2LTEpP3RoaXMubm90bih2KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxFLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAw'@; put 'IT09dGhpcy5uZWdhdGl2ZX0sRS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LEUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LEUucHJvdG90eXBlLml1b3I9'@; put 'ZnVuY3Rpb24odil7Zm9yKDt0aGlzLmxlbmd0aDx2Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgcD0wO3A8di5sZW5ndGg7cCsrKXRoaXMud29yZHNbcF09dGhpcy53b3Jkc1twXXx2LndvcmRzW3BdO3JldHVybiB0aGlzLl9zdHJpcCgpfSxFLnByb3RvdHlw'@; put 'ZS5pb3I9ZnVuY3Rpb24odil7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8di5uZWdhdGl2ZSkpLHRoaXMuaXVvcih2KX0sRS5wcm90b3R5cGUub3I9ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMubGVuZ3RoPnYubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3Iodik6di5jbG9uZSgpLmlvcih0aGlz'@; put 'KX0sRS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmxlbmd0aD52Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih2KTp2LmNsb25lKCkuaXVvcih0aGlzKX0sRS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24odil7dmFyIHA7cD10aGlzLmxlbmd0aD52Lmxlbmd0aD92OnRo'@; put 'aXM7Zm9yKHZhciB3PTA7dzxwLmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT10aGlzLndvcmRzW3ddJnYud29yZHNbd107cmV0dXJuIHRoaXMubGVuZ3RoPXAubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LEUucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24odil7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRp'@; put 'dmV8di5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQodil9LEUucHJvdG90eXBlLmFuZD1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5sZW5ndGg+di5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQodik6di5jbG9uZSgpLmlhbmQodGhpcyl9LEUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24odil7cmV0dXJu'@; put 'IHRoaXMubGVuZ3RoPnYubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh2KTp2LmNsb25lKCkuaXVhbmQodGhpcyl9LEUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHYpe3ZhciBwLHc7dGhpcy5sZW5ndGg+di5sZW5ndGg/KHA9dGhpcyx3PXYpOihwPXYsdz10aGlzKTtmb3IodmFyIEo9MDtK'@; put 'PHcubGVuZ3RoO0orKyl0aGlzLndvcmRzW0pdPXAud29yZHNbSl1edy53b3Jkc1tKXTtpZih0aGlzIT09cClmb3IoO0o8cC5sZW5ndGg7SisrKXRoaXMud29yZHNbSl09cC53b3Jkc1tKXTtyZXR1cm4gdGhpcy5sZW5ndGg9cC5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sRS5wcm90b3R5cGUuaXhv'@; put 'cj1mdW5jdGlvbih2KXtyZXR1cm4gSSgwPT0odGhpcy5uZWdhdGl2ZXx2Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih2KX0sRS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmxlbmd0aD52Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih2KTp2LmNsb25lKCkuaXhvcih0aGlz'@; put 'KX0sRS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5sZW5ndGg+di5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHYpOnYuY2xvbmUoKS5pdXhvcih0aGlzKX0sRS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24odil7SSgibnVtYmVyIj09dHlwZW9mIHYmJnY+PTApO3Zh'@; put 'ciBwPTB8TWF0aC5jZWlsKHYvMjYpLHc9diUyNjt0aGlzLl9leHBhbmQocCksdz4wJiZwLS07Zm9yKHZhciBKPTA7SjxwO0orKyl0aGlzLndvcmRzW0pdPTY3MTA4ODYzJn50aGlzLndvcmRzW0pdO3JldHVybiB3PjAmJih0aGlzLndvcmRzW0pdPX50aGlzLndvcmRzW0pdJjY3MTA4ODYzPj4y'@; put 'Ni13KSx0aGlzLl9zdHJpcCgpfSxFLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4odil9LEUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24odixwKXtJKCJudW1iZXIiPT10eXBlb2YgdiYmdj49MCk7dmFyIHc9di8yNnwwLEo9diUyNjtyZXR1cm4g'@; put 'dGhpcy5fZXhwYW5kKHcrMSksdGhpcy53b3Jkc1t3XT1wP3RoaXMud29yZHNbd118MTw8Sjp0aGlzLndvcmRzW3ddJn4oMTw8SiksdGhpcy5fc3RyaXAoKX0sRS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih2KXt2YXIgcCx3LEo7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT12Lm5lZ2F0aXZl'@; put 'KXJldHVybiB0aGlzLm5lZ2F0aXZlPTAscD10aGlzLmlzdWIodiksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09di5uZWdhdGl2ZSlyZXR1cm4gdi5uZWdhdGl2ZT0wLHA9dGhpcy5pc3ViKHYpLHYubmVnYXRpdmU9MSxwLl9ub3Jt'@; put 'U2lnbigpO3RoaXMubGVuZ3RoPnYubGVuZ3RoPyh3PXRoaXMsSj12KToodz12LEo9dGhpcyk7Zm9yKHZhciBuZT0wLGRlPTA7ZGU8Si5sZW5ndGg7ZGUrKyl0aGlzLndvcmRzW2RlXT02NzEwODg2MyYocD0oMHx3LndvcmRzW2RlXSkrKDB8Si53b3Jkc1tkZV0pK25lKSxuZT1wPj4+MjY7Zm9y'@; put 'KDswIT09bmUmJmRlPHcubGVuZ3RoO2RlKyspdGhpcy53b3Jkc1tkZV09NjcxMDg4NjMmKHA9KDB8dy53b3Jkc1tkZV0pK25lKSxuZT1wPj4+MjY7aWYodGhpcy5sZW5ndGg9dy5sZW5ndGgsMCE9PW5lKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPW5lLHRoaXMubGVuZ3RoKys7ZWxzZSBpZih3'@; put 'IT09dGhpcylmb3IoO2RlPHcubGVuZ3RoO2RlKyspdGhpcy53b3Jkc1tkZV09dy53b3Jkc1tkZV07cmV0dXJuIHRoaXN9LEUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih2KXt2YXIgcDtyZXR1cm4gMCE9PXYubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh2Lm5lZ2F0aXZlPTAscD10aGlz'@; put 'LnN1Yih2KSx2Lm5lZ2F0aXZlXj0xLHApOjA9PT12Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHA9di5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHApOnRoaXMubGVuZ3RoPnYubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHYpOnYuY2xvbmUoKS5pYWRk'@; put 'KHRoaXMpfSxFLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHYpe2lmKDAhPT12Lm5lZ2F0aXZlKXt2Lm5lZ2F0aXZlPTA7dmFyIHA9dGhpcy5pYWRkKHYpO3JldHVybiB2Lm5lZ2F0aXZlPTEscC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0w'@; put 'LHRoaXMuaWFkZCh2KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgdyxKLG5lPXRoaXMuY21wKHYpO2lmKDA9PT1uZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7bmU+MD8odz10aGlzLEo9dik6KHc9dixKPXRo'@; put 'aXMpO2Zvcih2YXIgZGU9MCxmZT0wO2ZlPEoubGVuZ3RoO2ZlKyspZGU9KHA9KDB8dy53b3Jkc1tmZV0pLSgwfEoud29yZHNbZmVdKStkZSk+PjI2LHRoaXMud29yZHNbZmVdPTY3MTA4ODYzJnA7Zm9yKDswIT09ZGUmJmZlPHcubGVuZ3RoO2ZlKyspZGU9KHA9KDB8dy53b3Jkc1tmZV0pK2Rl'@; put 'KT4+MjYsdGhpcy53b3Jkc1tmZV09NjcxMDg4NjMmcDtpZigwPT09ZGUmJmZlPHcubGVuZ3RoJiZ3IT09dGhpcylmb3IoO2ZlPHcubGVuZ3RoO2ZlKyspdGhpcy53b3Jkc1tmZV09dy53b3Jkc1tmZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLGZlKSx3IT09dGhp'@; put 'cyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5fc3RyaXAoKX0sRS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih2KX07dmFyIHNlPWZ1bmN0aW9uKHYscCx3KXt2YXIgSixuZSxkZSxmZT12LndvcmRzLHhlPXAud29yZHMsTGU9dy53b3JkcyxGZT0w'@; put 'LE9lPTB8ZmVbMF0samU9ODE5MSZPZSxXZT1PZT4+PjEzLEtlPTB8ZmVbMV0sWWU9ODE5MSZLZSxRZT1LZT4+PjEzLGx0PTB8ZmVbMl0sUGU9ODE5MSZsdCxiZT1sdD4+PjEzLEFlPTB8ZmVbM10sVGU9ODE5MSZBZSxxZT1BZT4+PjEzLFhlPTB8ZmVbNF0sVWU9ODE5MSZYZSxodD1YZT4+PjEz'@; put 'LE1lPTB8ZmVbNV0sRGU9ODE5MSZNZSx6ZT1NZT4+PjEzLG90PTB8ZmVbNl0sdXQ9ODE5MSZvdCxNdD1vdD4+PjEzLEh0PTB8ZmVbN10sUHQ9ODE5MSZIdCxvbj1IdD4+PjEzLENuPTB8ZmVbOF0sVXQ9ODE5MSZDbixibj1Dbj4+PjEzLFduPTB8ZmVbOV0sZW49ODE5MSZXbiwkbj1Xbj4+PjEz'@; put 'LEhuPTB8eGVbMF0sZnQ9ODE5MSZIbixmbj1Ibj4+PjEzLGhuPTB8eGVbMV0sd3Q9ODE5MSZobixYdD1obj4+PjEzLF90PTB8eGVbMl0sTnQ9ODE5MSZfdCxtbj1fdD4+PjEzLHJ0PTB8eGVbM10sSXQ9ODE5MSZydCxRdD1ydD4+PjEzLER0PTB8eGVbNF0scHQ9ODE5MSZEdCxZdD1EdD4+PjEz'@; put 'LEluPTB8eGVbNV0senQ9ODE5MSZJbix5bj1Jbj4+PjEzLHhuPTB8eGVbNl0sc249ODE5MSZ4bixCbj14bj4+PjEzLFJuPTB8eGVbN10sJHQ9ODE5MSZSbixGbj1Sbj4+PjEzLG5pPTB8eGVbOF0sbG49ODE5MSZuaSxqbj1uaT4+PjEzLHFyPTB8eGVbOV0sZ2k9ODE5MSZxcix4cj1xcj4+PjEz'@; put 'O3cubmVnYXRpdmU9di5uZWdhdGl2ZV5wLm5lZ2F0aXZlLHcubGVuZ3RoPTE5O3ZhciBVaT0oRmUrKEo9TWF0aC5pbXVsKGplLGZ0KSl8MCkrKCg4MTkxJihuZT0obmU9TWF0aC5pbXVsKGplLGZuKSkrTWF0aC5pbXVsKFdlLGZ0KXwwKSk8PDEzKXwwO0ZlPSgoZGU9TWF0aC5pbXVsKFdlLGZu'@; put 'KSkrKG5lPj4+MTMpfDApKyhVaT4+PjI2KXwwLFVpJj02NzEwODg2MyxKPU1hdGguaW11bChZZSxmdCksbmU9KG5lPU1hdGguaW11bChZZSxmbikpK01hdGguaW11bChRZSxmdCl8MCxkZT1NYXRoLmltdWwoUWUsZm4pO3ZhciBLcj0oRmUrKEo9SitNYXRoLmltdWwoamUsd3QpfDApfDApKygo'@; put 'ODE5MSYobmU9KG5lPW5lK01hdGguaW11bChqZSxYdCl8MCkrTWF0aC5pbXVsKFdlLHd0KXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKFdlLFh0KXwwKSsobmU+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLEo9TWF0aC5pbXVsKFBlLGZ0KSxuZT0obmU9TWF0aC5p'@; put 'bXVsKFBlLGZuKSkrTWF0aC5pbXVsKGJlLGZ0KXwwLGRlPU1hdGguaW11bChiZSxmbiksSj1KK01hdGguaW11bChZZSx3dCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFllLFh0KXwwKStNYXRoLmltdWwoUWUsd3QpfDAsZGU9ZGUrTWF0aC5pbXVsKFFlLFh0KXwwO3ZhciBubz0oRmUrKEo9SitN'@; put 'YXRoLmltdWwoamUsTnQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChqZSxtbil8MCkrTWF0aC5pbXVsKFdlLE50KXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKFdlLG1uKXwwKSsobmU+Pj4xMyl8MCkrKG5vPj4+MjYpfDAsbm8mPTY3MTA4ODYzLEo9TWF0aC5p'@; put 'bXVsKFRlLGZ0KSxuZT0obmU9TWF0aC5pbXVsKFRlLGZuKSkrTWF0aC5pbXVsKHFlLGZ0KXwwLGRlPU1hdGguaW11bChxZSxmbiksSj1KK01hdGguaW11bChQZSx3dCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFBlLFh0KXwwKStNYXRoLmltdWwoYmUsd3QpfDAsZGU9ZGUrTWF0aC5pbXVsKGJl'@; put 'LFh0KXwwLEo9SitNYXRoLmltdWwoWWUsTnQpfDAsbmU9KG5lPW5lK01hdGguaW11bChZZSxtbil8MCkrTWF0aC5pbXVsKFFlLE50KXwwLGRlPWRlK01hdGguaW11bChRZSxtbil8MDt2YXIgSHI9KEZlKyhKPUorTWF0aC5pbXVsKGplLEl0KXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRo'@; put 'LmltdWwoamUsUXQpfDApK01hdGguaW11bChXZSxJdCl8MCkpPDwxMyl8MDtGZT0oKGRlPWRlK01hdGguaW11bChXZSxRdCl8MCkrKG5lPj4+MTMpfDApKyhIcj4+PjI2KXwwLEhyJj02NzEwODg2MyxKPU1hdGguaW11bChVZSxmdCksbmU9KG5lPU1hdGguaW11bChVZSxmbikpK01hdGguaW11'@; put 'bChodCxmdCl8MCxkZT1NYXRoLmltdWwoaHQsZm4pLEo9SitNYXRoLmltdWwoVGUsd3QpfDAsbmU9KG5lPW5lK01hdGguaW11bChUZSxYdCl8MCkrTWF0aC5pbXVsKHFlLHd0KXwwLGRlPWRlK01hdGguaW11bChxZSxYdCl8MCxKPUorTWF0aC5pbXVsKFBlLE50KXwwLG5lPShuZT1uZStNYXRo'@; put 'LmltdWwoUGUsbW4pfDApK01hdGguaW11bChiZSxOdCl8MCxkZT1kZStNYXRoLmltdWwoYmUsbW4pfDAsSj1KK01hdGguaW11bChZZSxJdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFllLFF0KXwwKStNYXRoLmltdWwoUWUsSXQpfDAsZGU9ZGUrTWF0aC5pbXVsKFFlLFF0KXwwO3ZhciBxaT0o'@; put 'RmUrKEo9SitNYXRoLmltdWwoamUscHQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChqZSxZdCl8MCkrTWF0aC5pbXVsKFdlLHB0KXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKFdlLFl0KXwwKSsobmU+Pj4xMyl8MCkrKHFpPj4+MjYpfDAscWkmPTY3MTA4ODYz'@; put 'LEo9TWF0aC5pbXVsKERlLGZ0KSxuZT0obmU9TWF0aC5pbXVsKERlLGZuKSkrTWF0aC5pbXVsKHplLGZ0KXwwLGRlPU1hdGguaW11bCh6ZSxmbiksSj1KK01hdGguaW11bChVZSx3dCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFVlLFh0KXwwKStNYXRoLmltdWwoaHQsd3QpfDAsZGU9ZGUrTWF0'@; put 'aC5pbXVsKGh0LFh0KXwwLEo9SitNYXRoLmltdWwoVGUsTnQpfDAsbmU9KG5lPW5lK01hdGguaW11bChUZSxtbil8MCkrTWF0aC5pbXVsKHFlLE50KXwwLGRlPWRlK01hdGguaW11bChxZSxtbil8MCxKPUorTWF0aC5pbXVsKFBlLEl0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUGUsUXQpfDAp'@; put 'K01hdGguaW11bChiZSxJdCl8MCxkZT1kZStNYXRoLmltdWwoYmUsUXQpfDAsSj1KK01hdGguaW11bChZZSxwdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFllLFl0KXwwKStNYXRoLmltdWwoUWUscHQpfDAsZGU9ZGUrTWF0aC5pbXVsKFFlLFl0KXwwO3ZhciBKaT0oRmUrKEo9SitNYXRoLmlt'@; put 'dWwoamUsenQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChqZSx5bil8MCkrTWF0aC5pbXVsKFdlLHp0KXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKFdlLHluKXwwKSsobmU+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLEo9TWF0aC5pbXVsKHV0'@; put 'LGZ0KSxuZT0obmU9TWF0aC5pbXVsKHV0LGZuKSkrTWF0aC5pbXVsKE10LGZ0KXwwLGRlPU1hdGguaW11bChNdCxmbiksSj1KK01hdGguaW11bChEZSx3dCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLFh0KXwwKStNYXRoLmltdWwoemUsd3QpfDAsZGU9ZGUrTWF0aC5pbXVsKHplLFh0KXww'@; put 'LEo9SitNYXRoLmltdWwoVWUsTnQpfDAsbmU9KG5lPW5lK01hdGguaW11bChVZSxtbil8MCkrTWF0aC5pbXVsKGh0LE50KXwwLGRlPWRlK01hdGguaW11bChodCxtbil8MCxKPUorTWF0aC5pbXVsKFRlLEl0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoVGUsUXQpfDApK01hdGguaW11bChxZSxJ'@; put 'dCl8MCxkZT1kZStNYXRoLmltdWwocWUsUXQpfDAsSj1KK01hdGguaW11bChQZSxwdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFBlLFl0KXwwKStNYXRoLmltdWwoYmUscHQpfDAsZGU9ZGUrTWF0aC5pbXVsKGJlLFl0KXwwLEo9SitNYXRoLmltdWwoWWUsenQpfDAsbmU9KG5lPW5lK01hdGgu'@; put 'aW11bChZZSx5bil8MCkrTWF0aC5pbXVsKFFlLHp0KXwwLGRlPWRlK01hdGguaW11bChRZSx5bil8MDt2YXIgYW89KEZlKyhKPUorTWF0aC5pbXVsKGplLHNuKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoamUsQm4pfDApK01hdGguaW11bChXZSxzbil8MCkpPDwxMyl8MDtG'@; put 'ZT0oKGRlPWRlK01hdGguaW11bChXZSxCbil8MCkrKG5lPj4+MTMpfDApKyhhbz4+PjI2KXwwLGFvJj02NzEwODg2MyxKPU1hdGguaW11bChQdCxmdCksbmU9KG5lPU1hdGguaW11bChQdCxmbikpK01hdGguaW11bChvbixmdCl8MCxkZT1NYXRoLmltdWwob24sZm4pLEo9SitNYXRoLmltdWwo'@; put 'dXQsd3QpfDAsbmU9KG5lPW5lK01hdGguaW11bCh1dCxYdCl8MCkrTWF0aC5pbXVsKE10LHd0KXwwLGRlPWRlK01hdGguaW11bChNdCxYdCl8MCxKPUorTWF0aC5pbXVsKERlLE50KXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsbW4pfDApK01hdGguaW11bCh6ZSxOdCl8MCxkZT1kZStNYXRo'@; put 'LmltdWwoemUsbW4pfDAsSj1KK01hdGguaW11bChVZSxJdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFVlLFF0KXwwKStNYXRoLmltdWwoaHQsSXQpfDAsZGU9ZGUrTWF0aC5pbXVsKGh0LFF0KXwwLEo9SitNYXRoLmltdWwoVGUscHQpfDAsbmU9KG5lPW5lK01hdGguaW11bChUZSxZdCl8MCkr'@; put 'TWF0aC5pbXVsKHFlLHB0KXwwLGRlPWRlK01hdGguaW11bChxZSxZdCl8MCxKPUorTWF0aC5pbXVsKFBlLHp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUGUseW4pfDApK01hdGguaW11bChiZSx6dCl8MCxkZT1kZStNYXRoLmltdWwoYmUseW4pfDAsSj1KK01hdGguaW11bChZZSxzbil8MCxu'@; put 'ZT0obmU9bmUrTWF0aC5pbXVsKFllLEJuKXwwKStNYXRoLmltdWwoUWUsc24pfDAsZGU9ZGUrTWF0aC5pbXVsKFFlLEJuKXwwO3ZhciBybz0oRmUrKEo9SitNYXRoLmltdWwoamUsJHQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChqZSxGbil8MCkrTWF0aC5pbXVsKFdlLCR0'@; put 'KXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKFdlLEZuKXwwKSsobmU+Pj4xMyl8MCkrKHJvPj4+MjYpfDAscm8mPTY3MTA4ODYzLEo9TWF0aC5pbXVsKFV0LGZ0KSxuZT0obmU9TWF0aC5pbXVsKFV0LGZuKSkrTWF0aC5pbXVsKGJuLGZ0KXwwLGRlPU1hdGguaW11bChibixmbiks'@; put 'Sj1KK01hdGguaW11bChQdCx3dCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFB0LFh0KXwwKStNYXRoLmltdWwob24sd3QpfDAsZGU9ZGUrTWF0aC5pbXVsKG9uLFh0KXwwLEo9SitNYXRoLmltdWwodXQsTnQpfDAsbmU9KG5lPW5lK01hdGguaW11bCh1dCxtbil8MCkrTWF0aC5pbXVsKE10LE50'@; put 'KXwwLGRlPWRlK01hdGguaW11bChNdCxtbil8MCxKPUorTWF0aC5pbXVsKERlLEl0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsUXQpfDApK01hdGguaW11bCh6ZSxJdCl8MCxkZT1kZStNYXRoLmltdWwoemUsUXQpfDAsSj1KK01hdGguaW11bChVZSxwdCl8MCxuZT0obmU9bmUrTWF0aC5p'@; put 'bXVsKFVlLFl0KXwwKStNYXRoLmltdWwoaHQscHQpfDAsZGU9ZGUrTWF0aC5pbXVsKGh0LFl0KXwwLEo9SitNYXRoLmltdWwoVGUsenQpfDAsbmU9KG5lPW5lK01hdGguaW11bChUZSx5bil8MCkrTWF0aC5pbXVsKHFlLHp0KXwwLGRlPWRlK01hdGguaW11bChxZSx5bil8MCxKPUorTWF0aC5p'@; put 'bXVsKFBlLHNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoUGUsQm4pfDApK01hdGguaW11bChiZSxzbil8MCxkZT1kZStNYXRoLmltdWwoYmUsQm4pfDAsSj1KK01hdGguaW11bChZZSwkdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFllLEZuKXwwKStNYXRoLmltdWwoUWUsJHQpfDAsZGU9ZGUr'@; put 'TWF0aC5pbXVsKFFlLEZuKXwwO3ZhciBpbz0oRmUrKEo9SitNYXRoLmltdWwoamUsbG4pfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChqZSxqbil8MCkrTWF0aC5pbXVsKFdlLGxuKXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKFdlLGpuKXwwKSsobmU+Pj4xMyl8'@; put 'MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLEo9TWF0aC5pbXVsKGVuLGZ0KSxuZT0obmU9TWF0aC5pbXVsKGVuLGZuKSkrTWF0aC5pbXVsKCRuLGZ0KXwwLGRlPU1hdGguaW11bCgkbixmbiksSj1KK01hdGguaW11bChVdCx3dCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFV0LFh0KXwwKStN'@; put 'YXRoLmltdWwoYm4sd3QpfDAsZGU9ZGUrTWF0aC5pbXVsKGJuLFh0KXwwLEo9SitNYXRoLmltdWwoUHQsTnQpfDAsbmU9KG5lPW5lK01hdGguaW11bChQdCxtbil8MCkrTWF0aC5pbXVsKG9uLE50KXwwLGRlPWRlK01hdGguaW11bChvbixtbil8MCxKPUorTWF0aC5pbXVsKHV0LEl0KXwwLG5l'@; put 'PShuZT1uZStNYXRoLmltdWwodXQsUXQpfDApK01hdGguaW11bChNdCxJdCl8MCxkZT1kZStNYXRoLmltdWwoTXQsUXQpfDAsSj1KK01hdGguaW11bChEZSxwdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLFl0KXwwKStNYXRoLmltdWwoemUscHQpfDAsZGU9ZGUrTWF0aC5pbXVsKHplLFl0'@; put 'KXwwLEo9SitNYXRoLmltdWwoVWUsenQpfDAsbmU9KG5lPW5lK01hdGguaW11bChVZSx5bil8MCkrTWF0aC5pbXVsKGh0LHp0KXwwLGRlPWRlK01hdGguaW11bChodCx5bil8MCxKPUorTWF0aC5pbXVsKFRlLHNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoVGUsQm4pfDApK01hdGguaW11bChx'@; put 'ZSxzbil8MCxkZT1kZStNYXRoLmltdWwocWUsQm4pfDAsSj1KK01hdGguaW11bChQZSwkdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFBlLEZuKXwwKStNYXRoLmltdWwoYmUsJHQpfDAsZGU9ZGUrTWF0aC5pbXVsKGJlLEZuKXwwLEo9SitNYXRoLmltdWwoWWUsbG4pfDAsbmU9KG5lPW5lK01h'@; put 'dGguaW11bChZZSxqbil8MCkrTWF0aC5pbXVsKFFlLGxuKXwwLGRlPWRlK01hdGguaW11bChRZSxqbil8MDt2YXIgR2k9KEZlKyhKPUorTWF0aC5pbXVsKGplLGdpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoamUseHIpfDApK01hdGguaW11bChXZSxnaSl8MCkpPDwxMyl8'@; put 'MDtGZT0oKGRlPWRlK01hdGguaW11bChXZSx4cil8MCkrKG5lPj4+MTMpfDApKyhHaT4+PjI2KXwwLEdpJj02NzEwODg2MyxKPU1hdGguaW11bChlbix3dCksbmU9KG5lPU1hdGguaW11bChlbixYdCkpK01hdGguaW11bCgkbix3dCl8MCxkZT1NYXRoLmltdWwoJG4sWHQpLEo9SitNYXRoLmlt'@; put 'dWwoVXQsTnQpfDAsbmU9KG5lPW5lK01hdGguaW11bChVdCxtbil8MCkrTWF0aC5pbXVsKGJuLE50KXwwLGRlPWRlK01hdGguaW11bChibixtbil8MCxKPUorTWF0aC5pbXVsKFB0LEl0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUHQsUXQpfDApK01hdGguaW11bChvbixJdCl8MCxkZT1kZStN'@; put 'YXRoLmltdWwob24sUXQpfDAsSj1KK01hdGguaW11bCh1dCxwdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHV0LFl0KXwwKStNYXRoLmltdWwoTXQscHQpfDAsZGU9ZGUrTWF0aC5pbXVsKE10LFl0KXwwLEo9SitNYXRoLmltdWwoRGUsenQpfDAsbmU9KG5lPW5lK01hdGguaW11bChEZSx5bil8'@; put 'MCkrTWF0aC5pbXVsKHplLHp0KXwwLGRlPWRlK01hdGguaW11bCh6ZSx5bil8MCxKPUorTWF0aC5pbXVsKFVlLHNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoVWUsQm4pfDApK01hdGguaW11bChodCxzbil8MCxkZT1kZStNYXRoLmltdWwoaHQsQm4pfDAsSj1KK01hdGguaW11bChUZSwkdCl8'@; put 'MCxuZT0obmU9bmUrTWF0aC5pbXVsKFRlLEZuKXwwKStNYXRoLmltdWwocWUsJHQpfDAsZGU9ZGUrTWF0aC5pbXVsKHFlLEZuKXwwLEo9SitNYXRoLmltdWwoUGUsbG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChQZSxqbil8MCkrTWF0aC5pbXVsKGJlLGxuKXwwLGRlPWRlK01hdGguaW11bChi'@; put 'ZSxqbil8MDt2YXIgaG89KEZlKyhKPUorTWF0aC5pbXVsKFllLGdpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWWUseHIpfDApK01hdGguaW11bChRZSxnaSl8MCkpPDwxMyl8MDtGZT0oKGRlPWRlK01hdGguaW11bChRZSx4cil8MCkrKG5lPj4+MTMpfDApKyhobz4+PjI2'@; put 'KXwwLGhvJj02NzEwODg2MyxKPU1hdGguaW11bChlbixOdCksbmU9KG5lPU1hdGguaW11bChlbixtbikpK01hdGguaW11bCgkbixOdCl8MCxkZT1NYXRoLmltdWwoJG4sbW4pLEo9SitNYXRoLmltdWwoVXQsSXQpfDAsbmU9KG5lPW5lK01hdGguaW11bChVdCxRdCl8MCkrTWF0aC5pbXVsKGJu'@; put 'LEl0KXwwLGRlPWRlK01hdGguaW11bChibixRdCl8MCxKPUorTWF0aC5pbXVsKFB0LHB0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUHQsWXQpfDApK01hdGguaW11bChvbixwdCl8MCxkZT1kZStNYXRoLmltdWwob24sWXQpfDAsSj1KK01hdGguaW11bCh1dCx6dCl8MCxuZT0obmU9bmUrTWF0'@; put 'aC5pbXVsKHV0LHluKXwwKStNYXRoLmltdWwoTXQsenQpfDAsZGU9ZGUrTWF0aC5pbXVsKE10LHluKXwwLEo9SitNYXRoLmltdWwoRGUsc24pfDAsbmU9KG5lPW5lK01hdGguaW11bChEZSxCbil8MCkrTWF0aC5pbXVsKHplLHNuKXwwLGRlPWRlK01hdGguaW11bCh6ZSxCbil8MCxKPUorTWF0'@; put 'aC5pbXVsKFVlLCR0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoVWUsRm4pfDApK01hdGguaW11bChodCwkdCl8MCxkZT1kZStNYXRoLmltdWwoaHQsRm4pfDAsSj1KK01hdGguaW11bChUZSxsbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFRlLGpuKXwwKStNYXRoLmltdWwocWUsbG4pfDAsZGU9'@; put 'ZGUrTWF0aC5pbXVsKHFlLGpuKXwwO3ZhciB5cj0oRmUrKEo9SitNYXRoLmltdWwoUGUsZ2kpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChQZSx4cil8MCkrTWF0aC5pbXVsKGJlLGdpKXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKGJlLHhyKXwwKSsobmU+Pj4x'@; put 'Myl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLEo9TWF0aC5pbXVsKGVuLEl0KSxuZT0obmU9TWF0aC5pbXVsKGVuLFF0KSkrTWF0aC5pbXVsKCRuLEl0KXwwLGRlPU1hdGguaW11bCgkbixRdCksSj1KK01hdGguaW11bChVdCxwdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFV0LFl0KXww'@; put 'KStNYXRoLmltdWwoYm4scHQpfDAsZGU9ZGUrTWF0aC5pbXVsKGJuLFl0KXwwLEo9SitNYXRoLmltdWwoUHQsenQpfDAsbmU9KG5lPW5lK01hdGguaW11bChQdCx5bil8MCkrTWF0aC5pbXVsKG9uLHp0KXwwLGRlPWRlK01hdGguaW11bChvbix5bil8MCxKPUorTWF0aC5pbXVsKHV0LHNuKXww'@; put 'LG5lPShuZT1uZStNYXRoLmltdWwodXQsQm4pfDApK01hdGguaW11bChNdCxzbil8MCxkZT1kZStNYXRoLmltdWwoTXQsQm4pfDAsSj1KK01hdGguaW11bChEZSwkdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLEZuKXwwKStNYXRoLmltdWwoemUsJHQpfDAsZGU9ZGUrTWF0aC5pbXVsKHpl'@; put 'LEZuKXwwLEo9SitNYXRoLmltdWwoVWUsbG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChVZSxqbil8MCkrTWF0aC5pbXVsKGh0LGxuKXwwLGRlPWRlK01hdGguaW11bChodCxqbil8MDt2YXIgUGk9KEZlKyhKPUorTWF0aC5pbXVsKFRlLGdpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRo'@; put 'LmltdWwoVGUseHIpfDApK01hdGguaW11bChxZSxnaSl8MCkpPDwxMyl8MDtGZT0oKGRlPWRlK01hdGguaW11bChxZSx4cil8MCkrKG5lPj4+MTMpfDApKyhQaT4+PjI2KXwwLFBpJj02NzEwODg2MyxKPU1hdGguaW11bChlbixwdCksbmU9KG5lPU1hdGguaW11bChlbixZdCkpK01hdGguaW11'@; put 'bCgkbixwdCl8MCxkZT1NYXRoLmltdWwoJG4sWXQpLEo9SitNYXRoLmltdWwoVXQsenQpfDAsbmU9KG5lPW5lK01hdGguaW11bChVdCx5bil8MCkrTWF0aC5pbXVsKGJuLHp0KXwwLGRlPWRlK01hdGguaW11bChibix5bil8MCxKPUorTWF0aC5pbXVsKFB0LHNuKXwwLG5lPShuZT1uZStNYXRo'@; put 'LmltdWwoUHQsQm4pfDApK01hdGguaW11bChvbixzbil8MCxkZT1kZStNYXRoLmltdWwob24sQm4pfDAsSj1KK01hdGguaW11bCh1dCwkdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHV0LEZuKXwwKStNYXRoLmltdWwoTXQsJHQpfDAsZGU9ZGUrTWF0aC5pbXVsKE10LEZuKXwwLEo9SitNYXRo'@; put 'LmltdWwoRGUsbG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChEZSxqbil8MCkrTWF0aC5pbXVsKHplLGxuKXwwLGRlPWRlK01hdGguaW11bCh6ZSxqbil8MDt2YXIgTG89KEZlKyhKPUorTWF0aC5pbXVsKFVlLGdpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoVWUseHIpfDAp'@; put 'K01hdGguaW11bChodCxnaSl8MCkpPDwxMyl8MDtGZT0oKGRlPWRlK01hdGguaW11bChodCx4cil8MCkrKG5lPj4+MTMpfDApKyhMbz4+PjI2KXwwLExvJj02NzEwODg2MyxKPU1hdGguaW11bChlbix6dCksbmU9KG5lPU1hdGguaW11bChlbix5bikpK01hdGguaW11bCgkbix6dCl8MCxkZT1N'@; put 'YXRoLmltdWwoJG4seW4pLEo9SitNYXRoLmltdWwoVXQsc24pfDAsbmU9KG5lPW5lK01hdGguaW11bChVdCxCbil8MCkrTWF0aC5pbXVsKGJuLHNuKXwwLGRlPWRlK01hdGguaW11bChibixCbil8MCxKPUorTWF0aC5pbXVsKFB0LCR0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUHQsRm4pfDAp'@; put 'K01hdGguaW11bChvbiwkdCl8MCxkZT1kZStNYXRoLmltdWwob24sRm4pfDAsSj1KK01hdGguaW11bCh1dCxsbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHV0LGpuKXwwKStNYXRoLmltdWwoTXQsbG4pfDAsZGU9ZGUrTWF0aC5pbXVsKE10LGpuKXwwO3ZhciBocz0oRmUrKEo9SitNYXRoLmlt'@; put 'dWwoRGUsZ2kpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChEZSx4cil8MCkrTWF0aC5pbXVsKHplLGdpKXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUrTWF0aC5pbXVsKHplLHhyKXwwKSsobmU+Pj4xMyl8MCkrKGhzPj4+MjYpfDAsaHMmPTY3MTA4ODYzLEo9TWF0aC5pbXVsKGVu'@; put 'LHNuKSxuZT0obmU9TWF0aC5pbXVsKGVuLEJuKSkrTWF0aC5pbXVsKCRuLHNuKXwwLGRlPU1hdGguaW11bCgkbixCbiksSj1KK01hdGguaW11bChVdCwkdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFV0LEZuKXwwKStNYXRoLmltdWwoYm4sJHQpfDAsZGU9ZGUrTWF0aC5pbXVsKGJuLEZuKXww'@; put 'LEo9SitNYXRoLmltdWwoUHQsbG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChQdCxqbil8MCkrTWF0aC5pbXVsKG9uLGxuKXwwLGRlPWRlK01hdGguaW11bChvbixqbil8MDt2YXIgcnM9KEZlKyhKPUorTWF0aC5pbXVsKHV0LGdpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwo'@; put 'dXQseHIpfDApK01hdGguaW11bChNdCxnaSl8MCkpPDwxMyl8MDtGZT0oKGRlPWRlK01hdGguaW11bChNdCx4cil8MCkrKG5lPj4+MTMpfDApKyhycz4+PjI2KXwwLHJzJj02NzEwODg2MyxKPU1hdGguaW11bChlbiwkdCksbmU9KG5lPU1hdGguaW11bChlbixGbikpK01hdGguaW11bCgkbiwk'@; put 'dCl8MCxkZT1NYXRoLmltdWwoJG4sRm4pLEo9SitNYXRoLmltdWwoVXQsbG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChVdCxqbil8MCkrTWF0aC5pbXVsKGJuLGxuKXwwLGRlPWRlK01hdGguaW11bChibixqbil8MDt2YXIgUmM9KEZlKyhKPUorTWF0aC5pbXVsKFB0LGdpKXwwKXwwKSsoKDgx'@; put 'OTEmKG5lPShuZT1uZStNYXRoLmltdWwoUHQseHIpfDApK01hdGguaW11bChvbixnaSl8MCkpPDwxMyl8MDtGZT0oKGRlPWRlK01hdGguaW11bChvbix4cil8MCkrKG5lPj4+MTMpfDApKyhSYz4+PjI2KXwwLFJjJj02NzEwODg2MyxKPU1hdGguaW11bChlbixsbiksbmU9KG5lPU1hdGguaW11'@; put 'bChlbixqbikpK01hdGguaW11bCgkbixsbil8MCxkZT1NYXRoLmltdWwoJG4sam4pO3ZhciB1bD0oRmUrKEo9SitNYXRoLmltdWwoVXQsZ2kpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChVdCx4cil8MCkrTWF0aC5pbXVsKGJuLGdpKXwwKSk8PDEzKXwwO0ZlPSgoZGU9ZGUr'@; put 'TWF0aC5pbXVsKGJuLHhyKXwwKSsobmU+Pj4xMyl8MCkrKHVsPj4+MjYpfDAsdWwmPTY3MTA4ODYzO3ZhciBPYz0oRmUrKEo9TWF0aC5pbXVsKGVuLGdpKSl8MCkrKCg4MTkxJihuZT0obmU9TWF0aC5pbXVsKGVuLHhyKSkrTWF0aC5pbXVsKCRuLGdpKXwwKSk8PDEzKXwwO3JldHVybiBGZT0o'@; put 'KGRlPU1hdGguaW11bCgkbix4cikpKyhuZT4+PjEzKXwwKSsoT2M+Pj4yNil8MCxPYyY9NjcxMDg4NjMsTGVbMF09VWksTGVbMV09S3IsTGVbMl09bm8sTGVbM109SHIsTGVbNF09cWksTGVbNV09SmksTGVbNl09YW8sTGVbN109cm8sTGVbOF09aW8sTGVbOV09R2ksTGVbMTBdPWhvLExlWzEx'@; put 'XT15cixMZVsxMl09UGksTGVbMTNdPUxvLExlWzE0XT1ocyxMZVsxNV09cnMsTGVbMTZdPVJjLExlWzE3XT11bCxMZVsxOF09T2MsMCE9PUZlJiYoTGVbMTldPUZlLHcubGVuZ3RoKyspLHd9O2Z1bmN0aW9uIGhlKHYscCx3KXt3Lm5lZ2F0aXZlPXAubmVnYXRpdmVedi5uZWdhdGl2ZSx3Lmxl'@; put 'bmd0aD12Lmxlbmd0aCtwLmxlbmd0aDtmb3IodmFyIEo9MCxuZT0wLGRlPTA7ZGU8dy5sZW5ndGgtMTtkZSsrKXt2YXIgZmU9bmU7bmU9MDtmb3IodmFyIHhlPTY3MTA4ODYzJkosTGU9TWF0aC5taW4oZGUscC5sZW5ndGgtMSksRmU9TWF0aC5tYXgoMCxkZS12Lmxlbmd0aCsxKTtGZTw9TGU7'@; put 'RmUrKyl7dmFyIGplPSgwfHYud29yZHNbZGUtRmVdKSooMHxwLndvcmRzW0ZlXSksV2U9NjcxMDg4NjMmamU7eGU9NjcxMDg4NjMmKFdlPVdlK3hlfDApLG5lKz0oZmU9KGZlPWZlKyhqZS82NzEwODg2NHwwKXwwKSsoV2U+Pj4yNil8MCk+Pj4yNixmZSY9NjcxMDg4NjN9dy53b3Jkc1tkZV09'@; put 'eGUsSj1mZSxmZT1uZX1yZXR1cm4gMCE9PUo/dy53b3Jkc1tkZV09Sjp3Lmxlbmd0aC0tLHcuX3N0cmlwKCl9ZnVuY3Rpb24gdWUodixwLHcpe3JldHVybiBoZSh2LHAsdyl9ZnVuY3Rpb24gY2UodixwKXt0aGlzLng9dix0aGlzLnk9cH1NYXRoLmltdWx8fChzZT1vZSksRS5wcm90b3R5cGUu'@; put 'bXVsVG89ZnVuY3Rpb24odixwKXt2YXIgdz10aGlzLmxlbmd0aCt2Lmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT12Lmxlbmd0aD9zZSh0aGlzLHYscCk6dzw2Mz9vZSh0aGlzLHYscCk6dzwxMDI0P2hlKHRoaXMsdixwKTp1ZSh0aGlzLHYscCl9LGNlLnByb3RvdHlwZS5t'@; put 'YWtlUkJUPWZ1bmN0aW9uKHYpe2Zvcih2YXIgcD1uZXcgQXJyYXkodiksdz1FLnByb3RvdHlwZS5fY291bnRCaXRzKHYpLTEsSj0wO0o8djtKKyspcFtKXT10aGlzLnJldkJpbihKLHcsdik7cmV0dXJuIHB9LGNlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24odixwLHcpe2lmKDA9PT12fHx2'@; put 'PT09dy0xKXJldHVybiB2O2Zvcih2YXIgSj0wLG5lPTA7bmU8cDtuZSsrKUp8PSgxJnYpPDxwLW5lLTEsdj4+PTE7cmV0dXJuIEp9LGNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHYscCx3LEosbmUsZGUpe2Zvcih2YXIgZmU9MDtmZTxkZTtmZSsrKUpbZmVdPXBbdltmZV1dLG5lW2Zl'@; put 'XT13W3ZbZmVdXX0sY2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih2LHAsdyxKLG5lLGRlKXt0aGlzLnBlcm11dGUoZGUsdixwLHcsSixuZSk7Zm9yKHZhciBmZT0xO2ZlPG5lO2ZlPDw9MSlmb3IodmFyIHhlPWZlPDwxLExlPU1hdGguY29zKDIqTWF0aC5QSS94ZSksRmU9TWF0aC5z'@; put 'aW4oMipNYXRoLlBJL3hlKSxPZT0wO09lPG5lO09lKz14ZSlmb3IodmFyIGplPUxlLFdlPUZlLEtlPTA7S2U8ZmU7S2UrKyl7dmFyIFllPXdbT2UrS2VdLFFlPUpbT2UrS2VdLGx0PXdbT2UrS2UrZmVdLFBlPUpbT2UrS2UrZmVdLGJlPWplKmx0LVdlKlBlO1BlPWplKlBlK1dlKmx0LHdbT2Ur'@; put 'S2VdPVllKyhsdD1iZSksSltPZStLZV09UWUrUGUsd1tPZStLZStmZV09WWUtbHQsSltPZStLZStmZV09UWUtUGUsS2UhPT14ZSYmKGJlPUxlKmplLUZlKldlLFdlPUxlKldlK0ZlKmplLGplPWJlKX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih2LHApe3ZhciB3PTF8TWF0'@; put 'aC5tYXgocCx2KSxKPTEmdyxuZT0wO2Zvcih3PXcvMnwwO3c7dz4+Pj0xKW5lKys7cmV0dXJuIDE8PG5lKzErSn0sY2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih2LHAsdyl7aWYoISh3PD0xKSlmb3IodmFyIEo9MDtKPHcvMjtKKyspe3ZhciBuZT12W0pdO3ZbSl09dlt3LUotMV0s'@; put 'dlt3LUotMV09bmUsbmU9cFtKXSxwW0pdPS1wW3ctSi0xXSxwW3ctSi0xXT0tbmV9fSxjZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKHYscCl7Zm9yKHZhciB3PTAsSj0wO0o8cC8yO0orKyl7dmFyIG5lPTgxOTIqTWF0aC5yb3VuZCh2WzIqSisxXS9wKStNYXRoLnJvdW5kKHZb'@; put 'MipKXS9wKSt3O3ZbSl09NjcxMDg4NjMmbmUsdz1uZTw2NzEwODg2ND8wOm5lLzY3MTA4ODY0fDB9cmV0dXJuIHZ9LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHYscCx3LEope2Zvcih2YXIgbmU9MCxkZT0wO2RlPHA7ZGUrKyl3WzIqZGVdPTgxOTEmKG5lKz0wfHZbZGVdKSx3'@; put 'WzIqZGUrMV09ODE5MSYobmU+Pj49MTMpLG5lPj4+PTEzO2ZvcihkZT0yKnA7ZGU8SjsrK2RlKXdbZGVdPTA7SSgwPT09bmUpLEkoMD09KC04MTkyJm5lKSl9LGNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHYpe2Zvcih2YXIgcD1uZXcgQXJyYXkodiksdz0wO3c8djt3KyspcFt3XT0wO3Jl'@; put 'dHVybiBwfSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbih2LHAsdyl7dmFyIEo9Mip0aGlzLmd1ZXNzTGVuMTNiKHYubGVuZ3RoLHAubGVuZ3RoKSxuZT10aGlzLm1ha2VSQlQoSiksZGU9dGhpcy5zdHViKEopLGZlPW5ldyBBcnJheShKKSx4ZT1uZXcgQXJyYXkoSiksTGU9bmV3IEFycmF5'@; put 'KEopLEZlPW5ldyBBcnJheShKKSxPZT1uZXcgQXJyYXkoSiksamU9bmV3IEFycmF5KEopLFdlPXcud29yZHM7V2UubGVuZ3RoPUosdGhpcy5jb252ZXJ0MTNiKHYud29yZHMsdi5sZW5ndGgsZmUsSiksdGhpcy5jb252ZXJ0MTNiKHAud29yZHMscC5sZW5ndGgsRmUsSiksdGhpcy50cmFuc2Zv'@; put 'cm0oZmUsZGUseGUsTGUsSixuZSksdGhpcy50cmFuc2Zvcm0oRmUsZGUsT2UsamUsSixuZSk7Zm9yKHZhciBLZT0wO0tlPEo7S2UrKyl7dmFyIFllPXhlW0tlXSpPZVtLZV0tTGVbS2VdKmplW0tlXTtMZVtLZV09eGVbS2VdKmplW0tlXStMZVtLZV0qT2VbS2VdLHhlW0tlXT1ZZX1yZXR1cm4g'@; put 'dGhpcy5jb25qdWdhdGUoeGUsTGUsSiksdGhpcy50cmFuc2Zvcm0oeGUsTGUsV2UsZGUsSixuZSksdGhpcy5jb25qdWdhdGUoV2UsZGUsSiksdGhpcy5ub3JtYWxpemUxM2IoV2UsSiksdy5uZWdhdGl2ZT12Lm5lZ2F0aXZlXnAubmVnYXRpdmUsdy5sZW5ndGg9di5sZW5ndGgrcC5sZW5ndGgs'@; put 'dy5fc3RyaXAoKX0sRS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHYpe3ZhciBwPW5ldyBFKG51bGwpO3JldHVybiBwLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt2Lmxlbmd0aCksdGhpcy5tdWxUbyh2LHApfSxFLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKHYpe3ZhciBwPW5ldyBFKG51'@; put 'bGwpO3JldHVybiBwLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt2Lmxlbmd0aCksdWUodGhpcyx2LHApfSxFLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8odix0aGlzKX0sRS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odil7dmFyIHA9'@; put 'djwwO3AmJih2PS12KSxJKCJudW1iZXIiPT10eXBlb2YgdiksSSh2PDY3MTA4ODY0KTtmb3IodmFyIHc9MCxKPTA7Sjx0aGlzLmxlbmd0aDtKKyspe3ZhciBuZT0oMHx0aGlzLndvcmRzW0pdKSp2LGRlPSg2NzEwODg2MyZuZSkrKDY3MTA4ODYzJncpO3c+Pj0yNix3Kz1uZS82NzEwODg2NHww'@; put 'LHcrPWRlPj4+MjYsdGhpcy53b3Jkc1tKXT02NzEwODg2MyZkZX1yZXR1cm4gMCE9PXcmJih0aGlzLndvcmRzW0pdPXcsdGhpcy5sZW5ndGgrKykscD90aGlzLmluZWcoKTp0aGlzfSxFLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4odil9LEUu'@; put 'cHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sRS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sRS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHYpe3ZhciBwPWZ1bmN0aW9uKGRlKXtmb3IodmFyIGZl'@; put 'PW5ldyBBcnJheShkZS5iaXRMZW5ndGgoKSkseGU9MDt4ZTxmZS5sZW5ndGg7eGUrKylmZVt4ZV09ZGUud29yZHNbeGUvMjZ8MF0+Pj54ZSUyNiYxO3JldHVybiBmZX0odik7aWYoMD09PXAubGVuZ3RoKXJldHVybiBuZXcgRSgxKTtmb3IodmFyIHc9dGhpcyxKPTA7SjxwLmxlbmd0aCYmMD09'@; put 'PXBbSl07SisrLHc9dy5zcXIoKSk7aWYoKytKPHAubGVuZ3RoKWZvcih2YXIgbmU9dy5zcXIoKTtKPHAubGVuZ3RoO0orKyxuZT1uZS5zcXIoKSkwIT09cFtKXSYmKHc9dy5tdWwobmUpKTtyZXR1cm4gd30sRS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHYpe0koIm51bWJlciI9PXR5cGVv'@; put 'ZiB2JiZ2Pj0wKTt2YXIgcCx3PXYlMjYsSj0odi13KS8yNixuZT02NzEwODg2Mz4+PjI2LXc8PDI2LXc7aWYoMCE9PXcpe3ZhciBkZT0wO2ZvcihwPTA7cDx0aGlzLmxlbmd0aDtwKyspe3ZhciBmZT10aGlzLndvcmRzW3BdJm5lO3RoaXMud29yZHNbcF09KDB8dGhpcy53b3Jkc1twXSktZmU8'@; put 'PHd8ZGUsZGU9ZmU+Pj4yNi13fWRlJiYodGhpcy53b3Jkc1twXT1kZSx0aGlzLmxlbmd0aCsrKX1pZigwIT09Sil7Zm9yKHA9dGhpcy5sZW5ndGgtMTtwPj0wO3AtLSl0aGlzLndvcmRzW3ArSl09dGhpcy53b3Jkc1twXTtmb3IocD0wO3A8SjtwKyspdGhpcy53b3Jkc1twXT0wO3RoaXMubGVu'@; put 'Z3RoKz1KfXJldHVybiB0aGlzLl9zdHJpcCgpfSxFLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih2KXtyZXR1cm4gSSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4odil9LEUucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih2LHAsdyl7dmFyIEo7SSgibnVtYmVyIj09dHlwZW9mIHYm'@; put 'JnY+PTApLEo9cD8ocC1wJTI2KS8yNjowO3ZhciBuZT12JTI2LGRlPU1hdGgubWluKCh2LW5lKS8yNix0aGlzLmxlbmd0aCksZmU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5uZTw8bmUseGU9dztpZihKLT1kZSxKPU1hdGgubWF4KDAsSikseGUpe2Zvcih2YXIgTGU9MDtMZTxkZTtMZSsrKXhlLndv'@; put 'cmRzW0xlXT10aGlzLndvcmRzW0xlXTt4ZS5sZW5ndGg9ZGV9aWYoMCE9PWRlKWlmKHRoaXMubGVuZ3RoPmRlKWZvcih0aGlzLmxlbmd0aC09ZGUsTGU9MDtMZTx0aGlzLmxlbmd0aDtMZSsrKXRoaXMud29yZHNbTGVdPXRoaXMud29yZHNbTGUrZGVdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRo'@; put 'aXMubGVuZ3RoPTE7dmFyIEZlPTA7Zm9yKExlPXRoaXMubGVuZ3RoLTE7TGU+PTAmJigwIT09RmV8fExlPj1KKTtMZS0tKXt2YXIgT2U9MHx0aGlzLndvcmRzW0xlXTt0aGlzLndvcmRzW0xlXT1GZTw8MjYtbmV8T2U+Pj5uZSxGZT1PZSZmZX1yZXR1cm4geGUmJjAhPT1GZSYmKHhlLndvcmRz'@; put 'W3hlLmxlbmd0aCsrXT1GZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuX3N0cmlwKCl9LEUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHYscCx3KXtyZXR1cm4gSSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4odixwLHcpfSxF'@; put 'LnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4odil9LEUucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKHYpfSxFLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25l'@; put 'KCkuaXNocm4odil9LEUucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHYpfSxFLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih2KXtJKCJudW1iZXIiPT10eXBlb2YgdiYmdj49MCk7dmFyIHA9diUyNix3PSh2LXApLzI2O3JldHVybiEodGhp'@; put 'cy5sZW5ndGg8PXd8fCEodGhpcy53b3Jkc1t3XSYxPDxwKSl9LEUucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih2KXtJKCJudW1iZXIiPT10eXBlb2YgdiYmdj49MCk7dmFyIHA9diUyNix3PSh2LXApLzI2O3JldHVybiBJKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3'@; put 'aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9dz90aGlzOigwIT09cCYmdysrLHRoaXMubGVuZ3RoPU1hdGgubWluKHcsdGhpcy5sZW5ndGgpLDAhPT1wJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5wPDxwKSx0aGlzLl9zdHJpcCgp'@; put 'KX0sRS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24odil9LEUucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKHYpe3JldHVybiBJKCJudW1iZXIiPT10eXBlb2YgdiksSSh2PDY3MTA4ODY0KSx2PDA/dGhpcy5pc3Vibigtdik6MCE9PXRoaXMu'@; put 'bmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTw9dj8odGhpcy53b3Jkc1swXT12LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4odiksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lh'@; put 'ZGRuKHYpfSxFLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24odil7dGhpcy53b3Jkc1swXSs9djtmb3IodmFyIHA9MDtwPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3BdPj02NzEwODg2NDtwKyspdGhpcy53b3Jkc1twXS09NjcxMDg4NjQscD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tw'@; put 'KzFdPTE6dGhpcy53b3Jkc1twKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHArMSksdGhpc30sRS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24odil7aWYoSSgibnVtYmVyIj09dHlwZW9mIHYpLEkodjw2NzEwODg2NCksdjwwKXJldHVybiB0aGlzLmlhZGRu'@; put 'KC12KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4odiksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09diwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBd'@; put 'LHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgcD0wO3A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbcF08MDtwKyspdGhpcy53b3Jkc1twXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1twKzFdLT0xO3JldHVybiB0aGlzLl9zdHJpcCgpfSxFLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHYpe3Jl'@; put 'dHVybiB0aGlzLmNsb25lKCkuaWFkZG4odil9LEUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih2KX0sRS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sRS5wcm90b3R5cGUuYWJzPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LEUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih2LHAsdyl7dmFyIEosbmU7dGhpcy5fZXhwYW5kKHYubGVuZ3RoK3cpO3ZhciBmZT0wO2ZvcihKPTA7Sjx2Lmxlbmd0aDtKKyspe25lPSgwfHRoaXMud29yZHNbSit3XSkr'@; put 'ZmU7dmFyIHhlPSgwfHYud29yZHNbSl0pKnA7ZmU9KChuZS09NjcxMDg4NjMmeGUpPj4yNiktKHhlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbSit3XT02NzEwODg2MyZuZX1mb3IoO0o8dGhpcy5sZW5ndGgtdztKKyspZmU9KG5lPSgwfHRoaXMud29yZHNbSit3XSkrZmUpPj4yNix0aGlzLndv'@; put 'cmRzW0ord109NjcxMDg4NjMmbmU7aWYoMD09PWZlKXJldHVybiB0aGlzLl9zdHJpcCgpO2ZvcihJKC0xPT09ZmUpLGZlPTAsSj0wO0o8dGhpcy5sZW5ndGg7SisrKWZlPShuZT0tKDB8dGhpcy53b3Jkc1tKXSkrZmUpPj4yNix0aGlzLndvcmRzW0pdPTY3MTA4ODYzJm5lO3JldHVybiB0aGlz'@; put 'Lm5lZ2F0aXZlPTEsdGhpcy5fc3RyaXAoKX0sRS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24odixwKXt2YXIgdyxKPXRoaXMuY2xvbmUoKSxuZT12LGRlPTB8bmUud29yZHNbbmUubGVuZ3RoLTFdOzAhPSh3PTI2LXRoaXMuX2NvdW50Qml0cyhkZSkpJiYobmU9bmUudXNobG4odyksSi5p'@; put 'dXNobG4odyksZGU9MHxuZS53b3Jkc1tuZS5sZW5ndGgtMV0pO3ZhciBmZSx4ZT1KLmxlbmd0aC1uZS5sZW5ndGg7aWYoIm1vZCIhPT1wKXsoZmU9bmV3IEUobnVsbCkpLmxlbmd0aD14ZSsxLGZlLndvcmRzPW5ldyBBcnJheShmZS5sZW5ndGgpO2Zvcih2YXIgTGU9MDtMZTxmZS5sZW5ndGg7'@; put 'TGUrKylmZS53b3Jkc1tMZV09MH12YXIgRmU9Si5jbG9uZSgpLl9pc2hsbnN1Ym11bChuZSwxLHhlKTswPT09RmUubmVnYXRpdmUmJihKPUZlLGZlJiYoZmUud29yZHNbeGVdPTEpKTtmb3IodmFyIE9lPXhlLTE7T2U+PTA7T2UtLSl7dmFyIGplPTY3MTA4ODY0KigwfEoud29yZHNbbmUubGVu'@; put 'Z3RoK09lXSkrKDB8Si53b3Jkc1tuZS5sZW5ndGgrT2UtMV0pO2ZvcihqZT1NYXRoLm1pbihqZS9kZXwwLDY3MTA4ODYzKSxKLl9pc2hsbnN1Ym11bChuZSxqZSxPZSk7MCE9PUoubmVnYXRpdmU7KWplLS0sSi5uZWdhdGl2ZT0wLEouX2lzaGxuc3VibXVsKG5lLDEsT2UpLEouaXNaZXJvKCl8'@; put 'fChKLm5lZ2F0aXZlXj0xKTtmZSYmKGZlLndvcmRzW09lXT1qZSl9cmV0dXJuIGZlJiZmZS5fc3RyaXAoKSxKLl9zdHJpcCgpLCJkaXYiIT09cCYmMCE9PXcmJkouaXVzaHJuKHcpLHtkaXY6ZmV8fG51bGwsbW9kOkp9fSxFLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24odixwLHcpe3JldHVy'@; put 'biBJKCF2LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IEUoMCksbW9kOm5ldyBFKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXYubmVnYXRpdmU/KGRlPXRoaXMubmVnKCkuZGl2bW9kKHYscCksIm1vZCIhPT1wJiYoSj1kZS5kaXYubmVnKCkpLCJkaXYiIT09cCYmKG5lPWRl'@; put 'Lm1vZC5uZWcoKSx3JiYwIT09bmUubmVnYXRpdmUmJm5lLmlhZGQodikpLHtkaXY6Sixtb2Q6bmV9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXYubmVnYXRpdmU/KGRlPXRoaXMuZGl2bW9kKHYubmVnKCkscCksIm1vZCIhPT1wJiYoSj1kZS5kaXYubmVnKCkpLHtkaXY6Sixtb2Q6ZGUubW9k'@; put 'fSk6dGhpcy5uZWdhdGl2ZSZ2Lm5lZ2F0aXZlPyhkZT10aGlzLm5lZygpLmRpdm1vZCh2Lm5lZygpLHApLCJkaXYiIT09cCYmKG5lPWRlLm1vZC5uZWcoKSx3JiYwIT09bmUubmVnYXRpdmUmJm5lLmlzdWIodikpLHtkaXY6ZGUuZGl2LG1vZDpuZX0pOnYubGVuZ3RoPnRoaXMubGVuZ3RofHx0'@; put 'aGlzLmNtcCh2KTwwP3tkaXY6bmV3IEUoMCksbW9kOnRoaXN9OjE9PT12Lmxlbmd0aD8iZGl2Ij09PXA/e2Rpdjp0aGlzLmRpdm4odi53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09cD97ZGl2Om51bGwsbW9kOm5ldyBFKHRoaXMubW9kcm4odi53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2'@; put 'bih2LndvcmRzWzBdKSxtb2Q6bmV3IEUodGhpcy5tb2Rybih2LndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYodixwKTt2YXIgSixuZSxkZX0sRS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmRpdm1vZCh2LCJkaXYiLCExKS5kaXZ9LEUucHJvdG90eXBlLm1vZD1mdW5j'@; put 'dGlvbih2KXtyZXR1cm4gdGhpcy5kaXZtb2QodiwibW9kIiwhMSkubW9kfSxFLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmRpdm1vZCh2LCJtb2QiLCEwKS5tb2R9LEUucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHYpe3ZhciBwPXRoaXMuZGl2bW9kKHYpO2lm'@; put 'KHAubW9kLmlzWmVybygpKXJldHVybiBwLmRpdjt2YXIgdz0wIT09cC5kaXYubmVnYXRpdmU/cC5tb2QuaXN1Yih2KTpwLm1vZCxKPXYudXNocm4oMSksbmU9di5hbmRsbigxKSxkZT13LmNtcChKKTtyZXR1cm4gZGU8MHx8MT09PW5lJiYwPT09ZGU/cC5kaXY6MCE9PXAuZGl2Lm5lZ2F0aXZl'@; put 'P3AuZGl2LmlzdWJuKDEpOnAuZGl2LmlhZGRuKDEpfSxFLnByb3RvdHlwZS5tb2Rybj1mdW5jdGlvbih2KXt2YXIgcD12PDA7cCYmKHY9LXYpLEkodjw9NjcxMDg4NjMpO2Zvcih2YXIgdz02NzEwODg2NCV2LEo9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pSj0odypKKygwfHRoaXMu'@; put 'd29yZHNbbmVdKSkldjtyZXR1cm4gcD8tSjpKfSxFLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLm1vZHJuKHYpfSxFLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih2KXt2YXIgcD12PDA7cCYmKHY9LXYpLEkodjw9NjcxMDg4NjMpO2Zvcih2YXIgdz0wLEo9dGhpcy5s'@; put 'ZW5ndGgtMTtKPj0wO0otLSl7dmFyIG5lPSgwfHRoaXMud29yZHNbSl0pKzY3MTA4ODY0Knc7dGhpcy53b3Jkc1tKXT1uZS92fDAsdz1uZSV2fXJldHVybiB0aGlzLl9zdHJpcCgpLHA/dGhpcy5pbmVnKCk6dGhpc30sRS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5j'@; put 'bG9uZSgpLmlkaXZuKHYpfSxFLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHYpe0koMD09PXYubmVnYXRpdmUpLEkoIXYuaXNaZXJvKCkpO3ZhciBwPXRoaXMsdz12LmNsb25lKCk7cD0wIT09cC5uZWdhdGl2ZT9wLnVtb2Qodik6cC5jbG9uZSgpO2Zvcih2YXIgSj1uZXcgRSgxKSxuZT1uZXcg'@; put 'RSgwKSxkZT1uZXcgRSgwKSxmZT1uZXcgRSgxKSx4ZT0wO3AuaXNFdmVuKCkmJncuaXNFdmVuKCk7KXAuaXVzaHJuKDEpLHcuaXVzaHJuKDEpLCsreGU7Zm9yKHZhciBMZT13LmNsb25lKCksRmU9cC5jbG9uZSgpOyFwLmlzWmVybygpOyl7Zm9yKHZhciBPZT0wLGplPTE7IShwLndvcmRzWzBd'@; put 'JmplKSYmT2U8MjY7KytPZSxqZTw8PTEpO2lmKE9lPjApZm9yKHAuaXVzaHJuKE9lKTtPZS0tID4wOykoSi5pc09kZCgpfHxuZS5pc09kZCgpKSYmKEouaWFkZChMZSksbmUuaXN1YihGZSkpLEouaXVzaHJuKDEpLG5lLml1c2hybigxKTtmb3IodmFyIFdlPTAsS2U9MTshKHcud29yZHNbMF0m'@; put 'S2UpJiZXZTwyNjsrK1dlLEtlPDw9MSk7aWYoV2U+MClmb3Iody5pdXNocm4oV2UpO1dlLS0gPjA7KShkZS5pc09kZCgpfHxmZS5pc09kZCgpKSYmKGRlLmlhZGQoTGUpLGZlLmlzdWIoRmUpKSxkZS5pdXNocm4oMSksZmUuaXVzaHJuKDEpO3AuY21wKHcpPj0wPyhwLmlzdWIodyksSi5pc3Vi'@; put 'KGRlKSxuZS5pc3ViKGZlKSk6KHcuaXN1YihwKSxkZS5pc3ViKEopLGZlLmlzdWIobmUpKX1yZXR1cm57YTpkZSxiOmZlLGdjZDp3Lml1c2hsbih4ZSl9fSxFLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24odil7SSgwPT09di5uZWdhdGl2ZSksSSghdi5pc1plcm8oKSk7dmFyIHA9dGhpcyx3'@; put 'PXYuY2xvbmUoKTtwPTAhPT1wLm5lZ2F0aXZlP3AudW1vZCh2KTpwLmNsb25lKCk7Zm9yKHZhciBKLG5lPW5ldyBFKDEpLGRlPW5ldyBFKDApLGZlPXcuY2xvbmUoKTtwLmNtcG4oMSk+MCYmdy5jbXBuKDEpPjA7KXtmb3IodmFyIHhlPTAsTGU9MTshKHAud29yZHNbMF0mTGUpJiZ4ZTwyNjsr'@; put 'K3hlLExlPDw9MSk7aWYoeGU+MClmb3IocC5pdXNocm4oeGUpO3hlLS0gPjA7KW5lLmlzT2RkKCkmJm5lLmlhZGQoZmUpLG5lLml1c2hybigxKTtmb3IodmFyIEZlPTAsT2U9MTshKHcud29yZHNbMF0mT2UpJiZGZTwyNjsrK0ZlLE9lPDw9MSk7aWYoRmU+MClmb3Iody5pdXNocm4oRmUpO0Zl'@; put 'LS0gPjA7KWRlLmlzT2RkKCkmJmRlLmlhZGQoZmUpLGRlLml1c2hybigxKTtwLmNtcCh3KT49MD8ocC5pc3ViKHcpLG5lLmlzdWIoZGUpKToody5pc3ViKHApLGRlLmlzdWIobmUpKX1yZXR1cm4oSj0wPT09cC5jbXBuKDEpP25lOmRlKS5jbXBuKDApPDAmJkouaWFkZCh2KSxKfSxFLnByb3Rv'@; put 'dHlwZS5nY2Q9ZnVuY3Rpb24odil7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gdi5hYnMoKTtpZih2LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBwPXRoaXMuY2xvbmUoKSx3PXYuY2xvbmUoKTtwLm5lZ2F0aXZlPTAsdy5uZWdhdGl2ZT0wO2Zvcih2YXIgSj0wO3AuaXNFdmVuKCkm'@; put 'JncuaXNFdmVuKCk7SisrKXAuaXVzaHJuKDEpLHcuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtwLmlzRXZlbigpOylwLml1c2hybigxKTtmb3IoO3cuaXNFdmVuKCk7KXcuaXVzaHJuKDEpO3ZhciBuZT1wLmNtcCh3KTtpZihuZTwwKXt2YXIgZGU9cDtwPXcsdz1kZX1lbHNlIGlmKDA9PT1uZXx8'@; put 'MD09PXcuY21wbigxKSlicmVhaztwLmlzdWIodyl9cmV0dXJuIHcuaXVzaGxuKEopfSxFLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmVnY2QodikuYS51bW9kKHYpfSxFLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1sw'@; put 'XSl9LEUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxFLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ2fSxFLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih2KXtJKCJudW1iZXIiPT10eXBlb2Yg'@; put 'dik7dmFyIHA9diUyNix3PSh2LXApLzI2LEo9MTw8cDtpZih0aGlzLmxlbmd0aDw9dylyZXR1cm4gdGhpcy5fZXhwYW5kKHcrMSksdGhpcy53b3Jkc1t3XXw9Six0aGlzO2Zvcih2YXIgbmU9SixkZT13OzAhPT1uZSYmZGU8dGhpcy5sZW5ndGg7ZGUrKyl7dmFyIGZlPTB8dGhpcy53b3Jkc1tk'@; put 'ZV07bmU9KGZlKz1uZSk+Pj4yNix0aGlzLndvcmRzW2RlXT1mZSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1uZSYmKHRoaXMud29yZHNbZGVdPW5lLHRoaXMubGVuZ3RoKyspLHRoaXN9LEUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlz'@; put 'LndvcmRzWzBdfSxFLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHYpe3ZhciBwLHc9djwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhdylyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmdylyZXR1cm4gMTtpZih0aGlzLl9zdHJpcCgpLHRoaXMubGVuZ3RoPjEpcD0xO2Vsc2V7dyYmKHY9'@; put 'LXYpLEkodjw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIEo9MHx0aGlzLndvcmRzWzBdO3A9Sj09PXY/MDpKPHY/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtcDpwfSxFLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24odil7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9'@; put 'PT12Lm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09di5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgcD10aGlzLnVjbXAodik7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXA6cH0sRS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbih2KXtpZih0aGlzLmxlbmd0aD52'@; put 'Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx2Lmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHA9MCx3PXRoaXMubGVuZ3RoLTE7dz49MDt3LS0pe3ZhciBKPTB8dGhpcy53b3Jkc1t3XSxuZT0wfHYud29yZHNbd107aWYoSiE9PW5lKXtKPG5lP3A9LTE6Sj5uZSYmKHA9MSk7YnJlYWt9'@; put 'fXJldHVybiBwfSxFLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24odil7cmV0dXJuIDE9PT10aGlzLmNtcG4odil9LEUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHYpe3JldHVybiAxPT09dGhpcy5jbXAodil9LEUucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMuY21wbih2KT49'@; put 'MH0sRS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNtcCh2KT49MH0sRS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHYpe3JldHVybi0xPT09dGhpcy5jbXBuKHYpfSxFLnByb3RvdHlwZS5sdD1mdW5jdGlvbih2KXtyZXR1cm4tMT09PXRoaXMuY21wKHYpfSxFLnByb3Rv'@; put 'dHlwZS5sdGVuPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLmNtcG4odik8PTB9LEUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5jbXAodik8PTB9LEUucHJvdG90eXBlLmVxbj1mdW5jdGlvbih2KXtyZXR1cm4gMD09PXRoaXMuY21wbih2KX0sRS5wcm90b3R5cGUuZXE9'@; put 'ZnVuY3Rpb24odil7cmV0dXJuIDA9PT10aGlzLmNtcCh2KX0sRS5yZWQ9ZnVuY3Rpb24odil7cmV0dXJuIG5ldyBDKHYpfSxFLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih2KXtyZXR1cm4gSSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxJKDA9'@; put 'PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHYuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh2KX0sRS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGlu'@; put 'IHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LEUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5yZWQ9dix0aGlzfSxFLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih2KXtyZXR1cm4gSSghdGhpcy5yZWQsIkFscmVh'@; put 'ZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh2KX0sRS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHYpe3JldHVybiBJKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdil9LEUu'@; put 'cHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odil7cmV0dXJuIEkodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHYpfSxFLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odil7cmV0dXJuIEkodGhpcy5yZWQsInJlZFN1'@; put 'YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx2KX0sRS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih2KXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdil9'@; put 'LEUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih2KXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHYpfSxFLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odil7cmV0dXJuIEkodGhpcy5yZWQsInJlZE11'@; put 'bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHYpLHRoaXMucmVkLm11bCh0aGlzLHYpfSxFLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHYpe3JldHVybiBJKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJz'@; put 'IiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx2KSx0aGlzLnJlZC5pbXVsKHRoaXMsdil9LEUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhp'@; put 'cy5yZWQuc3FyKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sRS5wcm90b3R5cGUucmVk'@; put 'U3FydD1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LEUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJl'@; put 'ZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxFLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVt'@; put 'YmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sRS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHYpe3JldHVybiBJKHRoaXMucmVkJiYhdi5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93'@; put 'KHRoaXMsdil9O3ZhciBHPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gYih2LHApe3RoaXMubmFtZT12LHRoaXMucD1uZXcgRShwLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgRSgxKS5pdXNobG4odGhpcy5uKS5p'@; put 'c3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRCgpe2IuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBIKCl7Yi5jYWxsKHRoaXMs'@; put 'InAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIE4oKXtiLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVu'@; put 'Y3Rpb24gZygpe2IuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBDKHYpe2lmKCJzdHJpbmciPT10eXBlb2Ygdil7dmFyIHA9RS5fcHJpbWUodik7dGhpcy5tPXAu'@; put 'cCx0aGlzLnByaW1lPXB9ZWxzZSBJKHYuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09dix0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gUyh2KXtDLmNhbGwodGhpcyx2KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0w'@; put 'JiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBFKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5p'@; put 'c3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfWIucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgdj1uZXcgRShudWxsKTtyZXR1cm4gdi53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWls'@; put 'KHRoaXMubi8xMykpLHZ9LGIucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24odil7dmFyIHAsdz12O2Rve3RoaXMuc3BsaXQodyx0aGlzLnRtcCkscD0odz0odz10aGlzLmltdWxLKHcpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUocD50aGlzLm4pO3ZhciBKPXA8dGhpcy5u'@; put 'Py0xOncudWNtcCh0aGlzLnApO3JldHVybiAwPT09Sj8ody53b3Jkc1swXT0wLHcubGVuZ3RoPTEpOko+MD93LmlzdWIodGhpcy5wKTp2b2lkIDAhPT13LnN0cmlwP3cuc3RyaXAoKTp3Ll9zdHJpcCgpLHd9LGIucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHYscCl7di5pdXNocm4odGhpcy5u'@; put 'LDAscCl9LGIucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHYpe3JldHVybiB2LmltdWwodGhpcy5rKX0sayhELGIpLEQucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHYscCl7Zm9yKHZhciB3PTQxOTQzMDMsSj1NYXRoLm1pbih2Lmxlbmd0aCw5KSxuZT0wO25lPEo7bmUrKylwLndvcmRzW25l'@; put 'XT12LndvcmRzW25lXTtpZihwLmxlbmd0aD1KLHYubGVuZ3RoPD05KXJldHVybiB2LndvcmRzWzBdPTAsdm9pZCh2Lmxlbmd0aD0xKTt2YXIgZGU9di53b3Jkc1s5XTtmb3IocC53b3Jkc1twLmxlbmd0aCsrXT1kZSZ3LG5lPTEwO25lPHYubGVuZ3RoO25lKyspe3ZhciBmZT0wfHYud29yZHNb'@; put 'bmVdO3Yud29yZHNbbmUtMTBdPShmZSZ3KTw8NHxkZT4+PjIyLGRlPWZlfXYud29yZHNbbmUtMTBdPWRlPj4+PTIyLHYubGVuZ3RoLT0wPT09ZGUmJnYubGVuZ3RoPjEwPzEwOjl9LEQucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHYpe3Yud29yZHNbdi5sZW5ndGhdPTAsdi53b3Jkc1t2Lmxl'@; put 'bmd0aCsxXT0wLHYubGVuZ3RoKz0yO2Zvcih2YXIgcD0wLHc9MDt3PHYubGVuZ3RoO3crKyl7dmFyIEo9MHx2LndvcmRzW3ddO3Yud29yZHNbd109NjcxMDg4NjMmKHArPTk3NypKKSxwPTY0KkorKHAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT12LndvcmRzW3YubGVuZ3RoLTFdJiYodi5sZW5n'@; put 'dGgtLSwwPT09di53b3Jkc1t2Lmxlbmd0aC0xXSYmdi5sZW5ndGgtLSksdn0sayhILGIpLGsoTixiKSxrKGcsYiksZy5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odil7Zm9yKHZhciBwPTAsdz0wO3c8di5sZW5ndGg7dysrKXt2YXIgSj0xOSooMHx2LndvcmRzW3ddKStwLG5lPTY3MTA4ODYz'@; put 'Jko7Sj4+Pj0yNix2LndvcmRzW3ddPW5lLHA9Sn1yZXR1cm4gMCE9PXAmJih2LndvcmRzW3YubGVuZ3RoKytdPXApLHZ9LEUuX3ByaW1lPWZ1bmN0aW9uKHYpe2lmKEdbdl0pcmV0dXJuIEdbdl07dmFyIHA7aWYoImsyNTYiPT09dilwPW5ldyBEO2Vsc2UgaWYoInAyMjQiPT09dilwPW5ldyBI'@; put 'O2Vsc2UgaWYoInAxOTIiPT09dilwPW5ldyBOO2Vsc2V7aWYoInAyNTUxOSIhPT12KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3YpO3A9bmV3IGd9cmV0dXJuIEdbdl09cCxwfSxDLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih2KXtJKDA9PT12Lm5lZ2F0aXZlLCJyZWQg'@; put 'd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEkodi5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sQy5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24odixwKXtJKDA9PSh2Lm5lZ2F0aXZlfHAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZl'@; put 'cyIpLEkodi5yZWQmJnYucmVkPT09cC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sQy5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UodikuX2ZvcmNlUmVkKHRoaXMpOihYKHYsdi51bW9kKHRoaXMu'@; put 'bSkuX2ZvcmNlUmVkKHRoaXMpKSx2KX0sQy5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHYpe3JldHVybiB2LmlzWmVybygpP3YuY2xvbmUoKTp0aGlzLm0uc3ViKHYpLl9mb3JjZVJlZCh0aGlzKX0sQy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHYscCl7dGhpcy5fdmVyaWZ5Mih2LHApO3ZhciB3'@; put 'PXYuYWRkKHApO3JldHVybiB3LmNtcCh0aGlzLm0pPj0wJiZ3LmlzdWIodGhpcy5tKSx3Ll9mb3JjZVJlZCh0aGlzKX0sQy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih2LHApe3RoaXMuX3ZlcmlmeTIodixwKTt2YXIgdz12LmlhZGQocCk7cmV0dXJuIHcuY21wKHRoaXMubSk+PTAmJncuaXN1'@; put 'Yih0aGlzLm0pLHd9LEMucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih2LHApe3RoaXMuX3ZlcmlmeTIodixwKTt2YXIgdz12LnN1YihwKTtyZXR1cm4gdy5jbXBuKDApPDAmJncuaWFkZCh0aGlzLm0pLHcuX2ZvcmNlUmVkKHRoaXMpfSxDLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHYscCl7dGhp'@; put 'cy5fdmVyaWZ5Mih2LHApO3ZhciB3PXYuaXN1YihwKTtyZXR1cm4gdy5jbXBuKDApPDAmJncuaWFkZCh0aGlzLm0pLHd9LEMucHJvdG90eXBlLnNobD1mdW5jdGlvbih2LHApe3JldHVybiB0aGlzLl92ZXJpZnkxKHYpLHRoaXMuaW1vZCh2LnVzaGxuKHApKX0sQy5wcm90b3R5cGUuaW11bD1m'@; put 'dW5jdGlvbih2LHApe3JldHVybiB0aGlzLl92ZXJpZnkyKHYscCksdGhpcy5pbW9kKHYuaW11bChwKSl9LEMucHJvdG90eXBlLm11bD1mdW5jdGlvbih2LHApe3JldHVybiB0aGlzLl92ZXJpZnkyKHYscCksdGhpcy5pbW9kKHYubXVsKHApKX0sQy5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih2'@; put 'KXtyZXR1cm4gdGhpcy5pbXVsKHYsdi5jbG9uZSgpKX0sQy5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHYpe3JldHVybiB0aGlzLm11bCh2LHYpfSxDLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHYpe2lmKHYuaXNaZXJvKCkpcmV0dXJuIHYuY2xvbmUoKTt2YXIgcD10aGlzLm0uYW5kbG4oMyk7'@; put 'aWYoSShwJTI9PTEpLDM9PT1wKXt2YXIgdz10aGlzLm0uYWRkKG5ldyBFKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHYsdyl9Zm9yKHZhciBKPXRoaXMubS5zdWJuKDEpLG5lPTA7IUouaXNaZXJvKCkmJjA9PT1KLmFuZGxuKDEpOyluZSsrLEouaXVzaHJuKDEpO0koIUouaXNaZXJv'@; put 'KCkpO3ZhciBkZT1uZXcgRSgxKS50b1JlZCh0aGlzKSxmZT1kZS5yZWROZWcoKSx4ZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksTGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihMZT1uZXcgRSgyKkxlKkxlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coTGUseGUpLmNtcChmZSk7KUxlLnJl'@; put 'ZElBZGQoZmUpO2Zvcih2YXIgRmU9dGhpcy5wb3coTGUsSiksT2U9dGhpcy5wb3codixKLmFkZG4oMSkuaXVzaHJuKDEpKSxqZT10aGlzLnBvdyh2LEopLFdlPW5lOzAhPT1qZS5jbXAoZGUpOyl7Zm9yKHZhciBLZT1qZSxZZT0wOzAhPT1LZS5jbXAoZGUpO1llKyspS2U9S2UucmVkU3FyKCk7'@; put 'SShZZTxXZSk7dmFyIFFlPXRoaXMucG93KEZlLG5ldyBFKDEpLml1c2hsbihXZS1ZZS0xKSk7T2U9T2UucmVkTXVsKFFlKSxGZT1RZS5yZWRTcXIoKSxqZT1qZS5yZWRNdWwoRmUpLFdlPVllfXJldHVybiBPZX0sQy5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih2KXt2YXIgcD12Ll9pbnZtcCh0'@; put 'aGlzLm0pO3JldHVybiAwIT09cC5uZWdhdGl2ZT8ocC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChwKS5yZWROZWcoKSk6dGhpcy5pbW9kKHApfSxDLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odixwKXtpZihwLmlzWmVybygpKXJldHVybiBuZXcgRSgxKS50b1JlZCh0aGlzKTtpZigwPT09cC5jbXBu'@; put 'KDEpKXJldHVybiB2LmNsb25lKCk7dmFyIHc9bmV3IEFycmF5KDE2KTt3WzBdPW5ldyBFKDEpLnRvUmVkKHRoaXMpLHdbMV09djtmb3IodmFyIEo9MjtKPHcubGVuZ3RoO0orKyl3W0pdPXRoaXMubXVsKHdbSi0xXSx2KTt2YXIgbmU9d1swXSxkZT0wLGZlPTAseGU9cC5iaXRMZW5ndGgoKSUy'@; put 'Njtmb3IoMD09PXhlJiYoeGU9MjYpLEo9cC5sZW5ndGgtMTtKPj0wO0otLSl7Zm9yKHZhciBMZT1wLndvcmRzW0pdLEZlPXhlLTE7RmU+PTA7RmUtLSl7dmFyIE9lPUxlPj5GZSYxO25lIT09d1swXSYmKG5lPXRoaXMuc3FyKG5lKSksMCE9PU9lfHwwIT09ZGU/KGRlPDw9MSxkZXw9T2UsKDQ9'@; put 'PSsrZmV8fDA9PT1KJiYwPT09RmUpJiYobmU9dGhpcy5tdWwobmUsd1tkZV0pLGZlPTAsZGU9MCkpOmZlPTB9eGU9MjZ9cmV0dXJuIG5lfSxDLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24odil7dmFyIHA9di51bW9kKHRoaXMubSk7cmV0dXJuIHA9PT12P3AuY2xvbmUoKTpwfSxDLnBy'@; put 'b3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih2KXt2YXIgcD12LmNsb25lKCk7cmV0dXJuIHAucmVkPW51bGwscH0sRS5tb250PWZ1bmN0aW9uKHYpe3JldHVybiBuZXcgUyh2KX0sayhTLEMpLFMucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5pbW9kKHYu'@; put 'dXNobG4odGhpcy5zaGlmdCkpfSxTLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih2KXt2YXIgcD10aGlzLmltb2Qodi5tdWwodGhpcy5yaW52KSk7cmV0dXJuIHAucmVkPW51bGwscH0sUy5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih2LHApe2lmKHYuaXNaZXJvKCl8fHAuaXNaZXJv'@; put 'KCkpcmV0dXJuIHYud29yZHNbMF09MCx2Lmxlbmd0aD0xLHY7dmFyIHc9di5pbXVsKHApLEo9dy5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksbmU9dy5pc3ViKEopLml1c2hybih0aGlzLnNoaWZ0KSxkZT1uZTtyZXR1cm4g'@; put 'bmUuY21wKHRoaXMubSk+PTA/ZGU9bmUuaXN1Yih0aGlzLm0pOm5lLmNtcG4oMCk8MCYmKGRlPW5lLmlhZGQodGhpcy5tKSksZGUuX2ZvcmNlUmVkKHRoaXMpfSxTLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odixwKXtpZih2LmlzWmVybygpfHxwLmlzWmVybygpKXJldHVybiBuZXcgRSgwKS5f'@; put 'Zm9yY2VSZWQodGhpcyk7dmFyIHc9di5tdWwocCksSj13Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxuZT13LmlzdWIoSikuaXVzaHJuKHRoaXMuc2hpZnQpLGRlPW5lO3JldHVybiBuZS5jbXAodGhpcy5tKT49MD9kZT1u'@; put 'ZS5pc3ViKHRoaXMubSk6bmUuY21wbigwKTwwJiYoZGU9bmUuaWFkZCh0aGlzLm0pKSxkZS5fZm9yY2VSZWQodGhpcyl9LFMucHJvdG90eXBlLmludm09ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMuaW1vZCh2Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0o'@; put 'TT1SLm5tZChNKSx0aGlzKX0sMzY0NDooTSxPLFIpPT57dmFyIHo9UigxMDQ4KSxLPVIoNTYyMyk7TS5leHBvcnRzPWZ1bmN0aW9uKHNlKXtyZXR1cm4gc2U/KCJ7fSI9PT1zZS5zdWJzdHIoMCwyKSYmKHNlPSJcXHtcXH0iK3NlLnN1YnN0cigyKSksb2UoKGhlPXNlLGhlLnNwbGl0KCJcXFxc'@; put 'Iikuam9pbihJKS5zcGxpdCgiXFx7Iikuam9pbihrKS5zcGxpdCgiXFx9Iikuam9pbihFKS5zcGxpdCgiXFwsIikuam9pbihqKS5zcGxpdCgiXFwuIikuam9pbihWKSksITApLm1hcChZKSk6W107dmFyIGhlfTt2YXIgST0iXDBTTEFTSCIrTWF0aC5yYW5kb20oKSsiXDAiLGs9IlwwT1BFTiIr'@; put 'TWF0aC5yYW5kb20oKSsiXDAiLEU9IlwwQ0xPU0UiK01hdGgucmFuZG9tKCkrIlwwIixqPSJcMENPTU1BIitNYXRoLnJhbmRvbSgpKyJcMCIsVj0iXDBQRVJJT0QiK01hdGgucmFuZG9tKCkrIlwwIjtmdW5jdGlvbiBCKHNlKXtyZXR1cm4gcGFyc2VJbnQoc2UsMTApPT1zZT9wYXJzZUludChz'@; put 'ZSwxMCk6c2UuY2hhckNvZGVBdCgwKX1mdW5jdGlvbiBZKHNlKXtyZXR1cm4gc2Uuc3BsaXQoSSkuam9pbigiXFwiKS5zcGxpdChrKS5qb2luKCJ7Iikuc3BsaXQoRSkuam9pbigifSIpLnNwbGl0KGopLmpvaW4oIiwiKS5zcGxpdChWKS5qb2luKCIuIil9ZnVuY3Rpb24gWChzZSl7aWYoIXNl'@; put 'KXJldHVyblsiIl07dmFyIGhlPVtdLHVlPUsoInsiLCJ9IixzZSk7aWYoIXVlKXJldHVybiBzZS5zcGxpdCgiLCIpO3ZhciBHPXVlLmJvZHksYj11ZS5wb3N0LEQ9dWUucHJlLnNwbGl0KCIsIik7RFtELmxlbmd0aC0xXSs9InsiK0crIn0iO3ZhciBIPVgoYik7cmV0dXJuIGIubGVuZ3RoJiYo'@; put 'RFtELmxlbmd0aC0xXSs9SC5zaGlmdCgpLEQucHVzaC5hcHBseShELEgpKSxoZS5wdXNoLmFwcGx5KGhlLEQpLGhlfWZ1bmN0aW9uIFUoc2Upe3JldHVybiJ7IitzZSsifSJ9ZnVuY3Rpb24gcShzZSl7cmV0dXJuL14tPzBcZC8udGVzdChzZSl9ZnVuY3Rpb24gZWUoc2UsaGUpe3JldHVybiBz'@; put 'ZTw9aGV9ZnVuY3Rpb24gdGUoc2UsaGUpe3JldHVybiBzZT49aGV9ZnVuY3Rpb24gb2Uoc2UsaGUpe3ZhciB1ZT1bXSxjZT1LKCJ7IiwifSIsc2UpO2lmKCFjZXx8L1wkJC8udGVzdChjZS5wcmUpKXJldHVybltzZV07dmFyIEcsYj0vXi0/XGQrXC5cLi0/XGQrKD86XC5cLi0/XGQrKT8kLy50'@; put 'ZXN0KGNlLmJvZHkpLEQ9L15bYS16QS1aXVwuXC5bYS16QS1aXSg/OlwuXC4tP1xkKyk/JC8udGVzdChjZS5ib2R5KSxIPWJ8fEQsTj1jZS5ib2R5LmluZGV4T2YoIiwiKT49MDtpZighSCYmIU4pcmV0dXJuIGNlLnBvc3QubWF0Y2goLywuKlx9Lyk/b2Uoc2U9Y2UucHJlKyJ7IitjZS5ib2R5'@; put 'K0UrY2UucG9zdCk6W3NlXTtpZihIKUc9Y2UuYm9keS5zcGxpdCgvXC5cLi8pO2Vsc2UgaWYoMT09PShHPVgoY2UuYm9keSkpLmxlbmd0aCYmMT09PShHPW9lKEdbMF0sITEpLm1hcChVKSkubGVuZ3RoKXJldHVybihTPWNlLnBvc3QubGVuZ3RoP29lKGNlLnBvc3QsITEpOlsiIl0pLm1hcChm'@; put 'dW5jdGlvbihLZSl7cmV0dXJuIGNlLnByZStHWzBdK0tlfSk7dmFyIGcsQz1jZS5wcmUsUz1jZS5wb3N0Lmxlbmd0aD9vZShjZS5wb3N0LCExKTpbIiJdO2lmKEgpe3ZhciB2PUIoR1swXSkscD1CKEdbMV0pLHc9TWF0aC5tYXgoR1swXS5sZW5ndGgsR1sxXS5sZW5ndGgpLEo9Mz09Ry5sZW5n'@; put 'dGg/TWF0aC5hYnMoQihHWzJdKSk6MSxuZT1lZTtwPHYmJihKKj0tMSxuZT10ZSk7dmFyIGRlPUcuc29tZShxKTtnPVtdO2Zvcih2YXIgZmU9djtuZShmZSxwKTtmZSs9Sil7dmFyIHhlO2lmKEQpIlxcIj09PSh4ZT1TdHJpbmcuZnJvbUNoYXJDb2RlKGZlKSkmJih4ZT0iIik7ZWxzZSBpZih4'@; put 'ZT1TdHJpbmcoZmUpLGRlKXt2YXIgTGU9dy14ZS5sZW5ndGg7aWYoTGU+MCl7dmFyIEZlPW5ldyBBcnJheShMZSsxKS5qb2luKCIwIik7eGU9ZmU8MD8iLSIrRmUreGUuc2xpY2UoMSk6RmUreGV9fWcucHVzaCh4ZSl9fWVsc2UgZz16KEcsZnVuY3Rpb24oS2Upe3JldHVybiBvZShLZSwhMSl9'@; put 'KTtmb3IodmFyIE9lPTA7T2U8Zy5sZW5ndGg7T2UrKylmb3IodmFyIGplPTA7amU8Uy5sZW5ndGg7amUrKyl7dmFyIFdlPUMrZ1tPZV0rU1tqZV07KCFoZXx8SHx8V2UpJiZ1ZS5wdXNoKFdlKX1yZXR1cm4gdWV9fSw5OTMxOihNLE8sUik9Pnt2YXIgejtmdW5jdGlvbiBLKGspe3RoaXMucmFu'@; put 'ZD1rfWlmKE0uZXhwb3J0cz1mdW5jdGlvbihrKXtyZXR1cm4genx8KHo9bmV3IEsobnVsbCkpLHouZ2VuZXJhdGUoayl9LE0uZXhwb3J0cy5SYW5kPUssSy5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oayl7cmV0dXJuIHRoaXMuX3JhbmQoayl9LEsucHJvdG90eXBlLl9yYW5kPWZ1bmN0'@; put 'aW9uKGspe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKGspO2Zvcih2YXIgRT1uZXcgVWludDhBcnJheShrKSxqPTA7ajxFLmxlbmd0aDtqKyspRVtqXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiBFfSwib2JqZWN0Ij09dHlwZW9mIHNlbGYpc2Vs'@; put 'Zi5jcnlwdG8mJnNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcz9LLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihrKXt2YXIgRT1uZXcgVWludDhBcnJheShrKTtyZXR1cm4gc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKEUpLEV9OnNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0'@; put 'UmFuZG9tVmFsdWVzP0sucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKGspe3ZhciBFPW5ldyBVaW50OEFycmF5KGspO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhFKSxFfToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKEsucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKCl7'@; put 'dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQgeWV0Iil9KTtlbHNlIHRyeXt2YXIgST1SKDkyMTQpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBJLnJhbmRvbUJ5dGVzKXRocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCIpO0sucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKGspe3Jl'@; put 'dHVybiBJLnJhbmRvbUJ5dGVzKGspfX1jYXRjaHt9fSw0NDk3OihNLE8sUik9Pnt2YXIgej1SKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBLKEIpe3ouaXNCdWZmZXIoQil8fChCPXouZnJvbShCKSk7Zm9yKHZhciBZPUIubGVuZ3RoLzR8MCxYPW5ldyBBcnJheShZKSxVPTA7VTxZO1UrKylYW1Vd'@; put 'PUIucmVhZFVJbnQzMkJFKDQqVSk7cmV0dXJuIFh9ZnVuY3Rpb24gSShCKXtmb3IoOzA8Qi5sZW5ndGg7QisrKUJbMF09MH1mdW5jdGlvbiBrKEIsWSxYLFUscSl7Zm9yKHZhciBlZSx0ZSxvZSxzZSxoZT1YWzBdLHVlPVhbMV0sY2U9WFsyXSxHPVhbM10sYj1CWzBdXllbMF0sRD1CWzFdXllb'@; put 'MV0sSD1CWzJdXllbMl0sTj1CWzNdXllbM10sZz00LEM9MTtDPHE7QysrKWVlPWhlW2I+Pj4yNF1edWVbRD4+PjE2JjI1NV1eY2VbSD4+PjgmMjU1XV5HWzI1NSZOXV5ZW2crK10sdGU9aGVbRD4+PjI0XV51ZVtIPj4+MTYmMjU1XV5jZVtOPj4+OCYyNTVdXkdbMjU1JmJdXllbZysrXSxvZT1o'@; put 'ZVtIPj4+MjRdXnVlW04+Pj4xNiYyNTVdXmNlW2I+Pj44JjI1NV1eR1syNTUmRF1eWVtnKytdLHNlPWhlW04+Pj4yNF1edWVbYj4+PjE2JjI1NV1eY2VbRD4+PjgmMjU1XV5HWzI1NSZIXV5ZW2crK10sYj1lZSxEPXRlLEg9b2UsTj1zZTtyZXR1cm4gZWU9KFVbYj4+PjI0XTw8MjR8VVtEPj4+'@; put 'MTYmMjU1XTw8MTZ8VVtIPj4+OCYyNTVdPDw4fFVbMjU1Jk5dKV5ZW2crK10sdGU9KFVbRD4+PjI0XTw8MjR8VVtIPj4+MTYmMjU1XTw8MTZ8VVtOPj4+OCYyNTVdPDw4fFVbMjU1JmJdKV5ZW2crK10sb2U9KFVbSD4+PjI0XTw8MjR8VVtOPj4+MTYmMjU1XTw8MTZ8VVtiPj4+OCYyNTVdPDw4'@; put 'fFVbMjU1JkRdKV5ZW2crK10sc2U9KFVbTj4+PjI0XTw8MjR8VVtiPj4+MTYmMjU1XTw8MTZ8VVtEPj4+OCYyNTVdPDw4fFVbMjU1JkhdKV5ZW2crK10sW2VlPj4+PTAsdGU+Pj49MCxvZT4+Pj0wLHNlPj4+PTBdfXZhciBFPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxqPWZ1bmN0'@; put 'aW9uKCl7Zm9yKHZhciBCPW5ldyBBcnJheSgyNTYpLFk9MDtZPDI1NjtZKyspQltZXT1ZPDEyOD9ZPDwxOlk8PDFeMjgzO2Zvcih2YXIgWD1bXSxVPVtdLHE9W1tdLFtdLFtdLFtdXSxlZT1bW10sW10sW10sW11dLHRlPTAsb2U9MCxzZT0wO3NlPDI1NjsrK3NlKXt2YXIgaGU9b2Veb2U8PDFe'@; put 'b2U8PDJeb2U8PDNeb2U8PDQ7WFt0ZV09aGU9aGU+Pj44XjI1NSZoZV45OSxVW2hlXT10ZTt2YXIgdWU9Qlt0ZV0sY2U9Qlt1ZV0sRz1CW2NlXSxiPTI1NypCW2hlXV4xNjg0MzAwOCpoZTtxWzBdW3RlXT1iPDwyNHxiPj4+OCxxWzFdW3RlXT1iPDwxNnxiPj4+MTYscVsyXVt0ZV09Yjw8OHxi'@; put 'Pj4+MjQscVszXVt0ZV09YixlZVswXVtoZV09KGI9MTY4NDMwMDkqR142NTUzNypjZV4yNTcqdWVeMTY4NDMwMDgqdGUpPDwyNHxiPj4+OCxlZVsxXVtoZV09Yjw8MTZ8Yj4+PjE2LGVlWzJdW2hlXT1iPDw4fGI+Pj4yNCxlZVszXVtoZV09YiwwPT09dGU/dGU9b2U9MToodGU9dWVeQltCW0Jb'@; put 'R151ZV1dXSxvZV49QltCW29lXV0pfXJldHVybntTQk9YOlgsSU5WX1NCT1g6VSxTVUJfTUlYOnEsSU5WX1NVQl9NSVg6ZWV9fSgpO2Z1bmN0aW9uIFYoQil7dGhpcy5fa2V5PUsoQiksdGhpcy5fcmVzZXQoKX1WLmJsb2NrU2l6ZT0xNixWLmtleVNpemU9MzIsVi5wcm90b3R5cGUuYmxvY2tT'@; put 'aXplPVYuYmxvY2tTaXplLFYucHJvdG90eXBlLmtleVNpemU9Vi5rZXlTaXplLFYucHJvdG90eXBlLl9yZXNldD1mdW5jdGlvbigpe2Zvcih2YXIgQj10aGlzLl9rZXksWT1CLmxlbmd0aCxYPVkrNixVPTQqKFgrMSkscT1bXSxlZT0wO2VlPFk7ZWUrKylxW2VlXT1CW2VlXTtmb3IoZWU9WTtl'@; put 'ZTxVO2VlKyspe3ZhciB0ZT1xW2VlLTFdO2VlJVk9PTA/KHRlPWouU0JPWFsodGU9dGU8PDh8dGU+Pj4yNCk+Pj4yNF08PDI0fGouU0JPWFt0ZT4+PjE2JjI1NV08PDE2fGouU0JPWFt0ZT4+PjgmMjU1XTw8OHxqLlNCT1hbMjU1JnRlXSx0ZV49RVtlZS9ZfDBdPDwyNCk6WT42JiZlZSVZPT00'@; put 'JiYodGU9ai5TQk9YW3RlPj4+MjRdPDwyNHxqLlNCT1hbdGU+Pj4xNiYyNTVdPDwxNnxqLlNCT1hbdGU+Pj44JjI1NV08PDh8ai5TQk9YWzI1NSZ0ZV0pLHFbZWVdPXFbZWUtWV1edGV9Zm9yKHZhciBvZT1bXSxzZT0wO3NlPFU7c2UrKyl7dmFyIGhlPVUtc2UsdWU9cVtoZS0oc2UlND8wOjQp'@; put 'XTtvZVtzZV09c2U8NHx8aGU8PTQ/dWU6ai5JTlZfU1VCX01JWFswXVtqLlNCT1hbdWU+Pj4yNF1dXmouSU5WX1NVQl9NSVhbMV1bai5TQk9YW3VlPj4+MTYmMjU1XV1eai5JTlZfU1VCX01JWFsyXVtqLlNCT1hbdWU+Pj44JjI1NV1dXmouSU5WX1NVQl9NSVhbM11bai5TQk9YWzI1NSZ1ZV1d'@; put 'fXRoaXMuX25Sb3VuZHM9WCx0aGlzLl9rZXlTY2hlZHVsZT1xLHRoaXMuX2ludktleVNjaGVkdWxlPW9lfSxWLnByb3RvdHlwZS5lbmNyeXB0QmxvY2tSYXc9ZnVuY3Rpb24oQil7cmV0dXJuIGsoQj1LKEIpLHRoaXMuX2tleVNjaGVkdWxlLGouU1VCX01JWCxqLlNCT1gsdGhpcy5fblJvdW5k'@; put 'cyl9LFYucHJvdG90eXBlLmVuY3J5cHRCbG9jaz1mdW5jdGlvbihCKXt2YXIgWT10aGlzLmVuY3J5cHRCbG9ja1JhdyhCKSxYPXouYWxsb2NVbnNhZmUoMTYpO3JldHVybiBYLndyaXRlVUludDMyQkUoWVswXSwwKSxYLndyaXRlVUludDMyQkUoWVsxXSw0KSxYLndyaXRlVUludDMyQkUoWVsy'@; put 'XSw4KSxYLndyaXRlVUludDMyQkUoWVszXSwxMiksWH0sVi5wcm90b3R5cGUuZGVjcnlwdEJsb2NrPWZ1bmN0aW9uKEIpe3ZhciBZPShCPUsoQikpWzFdO0JbMV09QlszXSxCWzNdPVk7dmFyIFg9ayhCLHRoaXMuX2ludktleVNjaGVkdWxlLGouSU5WX1NVQl9NSVgsai5JTlZfU0JPWCx0aGlz'@; put 'Ll9uUm91bmRzKSxVPXouYWxsb2NVbnNhZmUoMTYpO3JldHVybiBVLndyaXRlVUludDMyQkUoWFswXSwwKSxVLndyaXRlVUludDMyQkUoWFszXSw0KSxVLndyaXRlVUludDMyQkUoWFsyXSw4KSxVLndyaXRlVUludDMyQkUoWFsxXSwxMiksVX0sVi5wcm90b3R5cGUuc2NydWI9ZnVuY3Rpb24o'@; put 'KXtJKHRoaXMuX2tleVNjaGVkdWxlKSxJKHRoaXMuX2ludktleVNjaGVkdWxlKSxJKHRoaXMuX2tleSl9LE0uZXhwb3J0cy5BRVM9Vn0sNDg0ODooTSxPLFIpPT57dmFyIHo9Uig0NDk3KSxLPVIoOTUwOSkuQnVmZmVyLEk9UigxMDI3KSxrPVIoNTcxNyksRT1SKDMyODgpLGo9Uig3Mjk1KSxW'@; put 'PVIoNjg1KTtmdW5jdGlvbiBCKFksWCxVLHEpe0kuY2FsbCh0aGlzKTt2YXIgZWU9Sy5hbGxvYyg0LDApO3RoaXMuX2NpcGhlcj1uZXcgei5BRVMoWCk7dmFyIHRlPXRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2soZWUpO3RoaXMuX2doYXNoPW5ldyBFKHRlKSxVPWZ1bmN0aW9uKG9lLHNlLGhl'@; put 'KXtpZigxMj09PXNlLmxlbmd0aClyZXR1cm4gb2UuX2ZpbklEPUsuY29uY2F0KFtzZSxLLmZyb20oWzAsMCwwLDFdKV0pLEsuY29uY2F0KFtzZSxLLmZyb20oWzAsMCwwLDJdKV0pO3ZhciB1ZT1uZXcgRShoZSksY2U9c2UubGVuZ3RoLEc9Y2UlMTY7dWUudXBkYXRlKHNlKSxHJiZ1ZS51cGRh'@; put 'dGUoSy5hbGxvYyhHPTE2LUcsMCkpLHVlLnVwZGF0ZShLLmFsbG9jKDgsMCkpO3ZhciBiPTgqY2UsRD1LLmFsbG9jKDgpO0Qud3JpdGVVSW50QkUoYiwwLDgpLHVlLnVwZGF0ZShEKSxvZS5fZmluSUQ9dWUuc3RhdGU7dmFyIEg9Sy5mcm9tKG9lLl9maW5JRCk7cmV0dXJuIFYoSCksSH0odGhp'@; put 'cyxVLHRlKSx0aGlzLl9wcmV2PUsuZnJvbShVKSx0aGlzLl9jYWNoZT1LLmFsbG9jVW5zYWZlKDApLHRoaXMuX3NlY0NhY2hlPUsuYWxsb2NVbnNhZmUoMCksdGhpcy5fZGVjcnlwdD1xLHRoaXMuX2FsZW49MCx0aGlzLl9sZW49MCx0aGlzLl9tb2RlPVksdGhpcy5fYXV0aFRhZz1udWxsLHRo'@; put 'aXMuX2NhbGxlZD0hMX1rKEIsSSksQi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihZKXtpZighdGhpcy5fY2FsbGVkJiZ0aGlzLl9hbGVuKXt2YXIgWD0xNi10aGlzLl9hbGVuJTE2O1g8MTYmJihYPUsuYWxsb2MoWCwwKSx0aGlzLl9naGFzaC51cGRhdGUoWCkpfXRoaXMuX2NhbGxlZD0h'@; put 'MDt2YXIgVT10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxZKTtyZXR1cm4gdGhpcy5fZ2hhc2gudXBkYXRlKHRoaXMuX2RlY3J5cHQ/WTpVKSx0aGlzLl9sZW4rPVkubGVuZ3RoLFV9LEIucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHQmJiF0aGlzLl9hdXRoVGFn'@; put 'KXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dmFyIFk9aih0aGlzLl9naGFzaC5maW5hbCg4KnRoaXMuX2FsZW4sOCp0aGlzLl9sZW4pLHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKTtpZih0'@; put 'aGlzLl9kZWNyeXB0JiZmdW5jdGlvbihYLFUpe3ZhciBxPTA7WC5sZW5ndGghPT1VLmxlbmd0aCYmcSsrO2Zvcih2YXIgZWU9TWF0aC5taW4oWC5sZW5ndGgsVS5sZW5ndGgpLHRlPTA7dGU8ZWU7Kyt0ZSlxKz1YW3RlXV5VW3RlXTtyZXR1cm4gcX0oWSx0aGlzLl9hdXRoVGFnKSl0aHJvdyBu'@; put 'ZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3RoaXMuX2F1dGhUYWc9WSx0aGlzLl9jaXBoZXIuc2NydWIoKX0sQi5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHR8fCFLLmlzQnVmZmVyKHRo'@; put 'aXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30sQi5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbihZKXtpZighdGhpcy5fZGVjcnlwdCl0aHJvdyBuZXcg'@; put 'RXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fYXV0aFRhZz1ZfSxCLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oWSl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVu'@; put 'c3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKFkpLHRoaXMuX2FsZW4rPVkubGVuZ3RofSxNLmV4cG9ydHM9Qn0sNDY5NjooTSxPLFIpPT57dmFyIHo9UigxNDk0KSxLPVIoNjE5MyksST1SKDQ5NDYpO08uY3JlYXRlQ2lwaGVyPU8uQ2lwaGVyPXouY3JlYXRlQ2lwaGVyLE8u'@; put 'Y3JlYXRlQ2lwaGVyaXY9Ty5DaXBoZXJpdj16LmNyZWF0ZUNpcGhlcml2LE8uY3JlYXRlRGVjaXBoZXI9Ty5EZWNpcGhlcj1LLmNyZWF0ZURlY2lwaGVyLE8uY3JlYXRlRGVjaXBoZXJpdj1PLkRlY2lwaGVyaXY9Sy5jcmVhdGVEZWNpcGhlcml2LE8ubGlzdENpcGhlcnM9Ty5nZXRDaXBoZXJz'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKEkpfX0sNjE5MzooTSxPLFIpPT57dmFyIHo9Uig0ODQ4KSxLPVIoOTUwOSkuQnVmZmVyLEk9Uig0NSksaz1SKDU5NjkpLEU9UigxMDI3KSxqPVIoNDQ5NyksVj1SKDMwNDgpO2Z1bmN0aW9uIEIoVSxxLGVlKXtFLmNhbGwodGhpcyksdGhp'@; put 'cy5fY2FjaGU9bmV3IFksdGhpcy5fbGFzdD12b2lkIDAsdGhpcy5fY2lwaGVyPW5ldyBqLkFFUyhxKSx0aGlzLl9wcmV2PUsuZnJvbShlZSksdGhpcy5fbW9kZT1VLHRoaXMuX2F1dG9wYWRkaW5nPSEwfWZ1bmN0aW9uIFkoKXt0aGlzLmNhY2hlPUsuYWxsb2NVbnNhZmUoMCl9ZnVuY3Rpb24g'@; put 'WChVLHEsZWUpe3ZhciB0ZT1JW1UudG9Mb3dlckNhc2UoKV07aWYoIXRlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgZWUmJihlZT1LLmZyb20oZWUpKSwiR0NNIiE9PXRlLm1vZGUmJmVlLmxlbmd0aCE9PXRlLml2KXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaXYgbGVuZ3RoICIrZWUubGVuZ3RoKTtpZigic3RyaW5nIj09dHlwZW9mIHEmJihxPUsuZnJvbShxKSkscS5sZW5ndGghPT10ZS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitxLmxlbmd0aCk7cmV0dXJuInN0'@; put 'cmVhbSI9PT10ZS50eXBlP25ldyBrKHRlLm1vZHVsZSxxLGVlLCEwKToiYXV0aCI9PT10ZS50eXBlP25ldyB6KHRlLm1vZHVsZSxxLGVlLCEwKTpuZXcgQih0ZS5tb2R1bGUscSxlZSl9Uig1NzE3KShCLEUpLEIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oVSl7dmFyIHEsZWU7dGhpcy5f'@; put 'Y2FjaGUuYWRkKFUpO2Zvcih2YXIgdGU9W107cT10aGlzLl9jYWNoZS5nZXQodGhpcy5fYXV0b3BhZGRpbmcpOyllZT10aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxxKSx0ZS5wdXNoKGVlKTtyZXR1cm4gSy5jb25jYXQodGUpfSxCLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgVT10'@; put 'aGlzLl9jYWNoZS5mbHVzaCgpO2lmKHRoaXMuX2F1dG9wYWRkaW5nKXJldHVybiBmdW5jdGlvbihxKXt2YXIgZWU9cVsxNV07aWYoZWU8MXx8ZWU+MTYpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7Zm9yKHZhciB0ZT0tMTsrK3RlPGVlOylpZihxW3RlKygxNi1l'@; put 'ZSldIT09ZWUpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7aWYoMTYhPT1lZSlyZXR1cm4gcS5zbGljZSgwLDE2LWVlKX0odGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsVSkpO2lmKFUpdGhyb3cgbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBs'@; put 'ZW5ndGgiKX0sQi5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oVSl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhVSx0aGlzfSxZLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oVSl7dGhpcy5jYWNoZT1LLmNvbmNhdChbdGhpcy5jYWNoZSxVXSl9LFkucHJvdG90eXBlLmdldD1m'@; put 'dW5jdGlvbihVKXt2YXIgcTtpZihVKXtpZih0aGlzLmNhY2hlLmxlbmd0aD4xNilyZXR1cm4gcT10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNikscX1lbHNlIGlmKHRoaXMuY2FjaGUubGVuZ3RoPj0xNilyZXR1cm4gcT10aGlzLmNhY2hlLnNs'@; put 'aWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNikscTtyZXR1cm4gbnVsbH0sWS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aClyZXR1cm4gdGhpcy5jYWNoZX0sTy5jcmVhdGVEZWNpcGhlcj1mdW5jdGlvbihVLHEpe3ZhciBlZT1J'@; put 'W1UudG9Mb3dlckNhc2UoKV07aWYoIWVlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciB0ZT1WKHEsITEsZWUua2V5LGVlLml2KTtyZXR1cm4gWChVLHRlLmtleSx0ZS5pdil9LE8uY3JlYXRlRGVjaXBoZXJpdj1YfSwxNDk0OihNLE8sUik9Pnt2YXIgej1S'@; put 'KDQ1KSxLPVIoNDg0OCksST1SKDk1MDkpLkJ1ZmZlcixrPVIoNTk2OSksRT1SKDEwMjcpLGo9Uig0NDk3KSxWPVIoMzA0OCk7ZnVuY3Rpb24gQihxLGVlLHRlKXtFLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IFgsdGhpcy5fY2lwaGVyPW5ldyBqLkFFUyhlZSksdGhpcy5fcHJldj1JLmZy'@; put 'b20odGUpLHRoaXMuX21vZGU9cSx0aGlzLl9hdXRvcGFkZGluZz0hMH1SKDU3MTcpKEIsRSksQi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihxKXt2YXIgZWUsdGU7dGhpcy5fY2FjaGUuYWRkKHEpO2Zvcih2YXIgb2U9W107ZWU9dGhpcy5fY2FjaGUuZ2V0KCk7KXRlPXRoaXMuX21vZGUu'@; put 'ZW5jcnlwdCh0aGlzLGVlKSxvZS5wdXNoKHRlKTtyZXR1cm4gSS5jb25jYXQob2UpfTt2YXIgWT1JLmFsbG9jKDE2LDE2KTtmdW5jdGlvbiBYKCl7dGhpcy5jYWNoZT1JLmFsbG9jVW5zYWZlKDApfWZ1bmN0aW9uIFUocSxlZSx0ZSl7dmFyIG9lPXpbcS50b0xvd2VyQ2FzZSgpXTtpZighb2Up'@; put 'dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBlZSYmKGVlPUkuZnJvbShlZSkpLGVlLmxlbmd0aCE9PW9lLmtleS84KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQga2V5IGxlbmd0aCAiK2VlLmxlbmd0aCk7aWYoInN0cmlu'@; put 'ZyI9PXR5cGVvZiB0ZSYmKHRlPUkuZnJvbSh0ZSkpLCJHQ00iIT09b2UubW9kZSYmdGUubGVuZ3RoIT09b2UuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIit0ZS5sZW5ndGgpO3JldHVybiJzdHJlYW0iPT09b2UudHlwZT9uZXcgayhvZS5tb2R1bGUsZWUsdGUp'@; put 'OiJhdXRoIj09PW9lLnR5cGU/bmV3IEsob2UubW9kdWxlLGVlLHRlKTpuZXcgQihvZS5tb2R1bGUsZWUsdGUpfUIucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBxPXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIHE9dGhpcy5fbW9kZS5lbmNy'@; put 'eXB0KHRoaXMscSksdGhpcy5fY2lwaGVyLnNjcnViKCkscTtpZighcS5lcXVhbHMoWSkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCksbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0sQi5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24ocSl7'@; put 'cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhcSx0aGlzfSxYLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24ocSl7dGhpcy5jYWNoZT1JLmNvbmNhdChbdGhpcy5jYWNoZSxxXSl9LFgucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgcT10aGlzLmNh'@; put 'Y2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHF9cmV0dXJuIG51bGx9LFgucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBxPTE2LXRoaXMuY2FjaGUubGVuZ3RoLGVlPUkuYWxsb2NVbnNhZmUocSksdGU9LTE7Kyt0ZTxxOyll'@; put 'ZS53cml0ZVVJbnQ4KHEsdGUpO3JldHVybiBJLmNvbmNhdChbdGhpcy5jYWNoZSxlZV0pfSxPLmNyZWF0ZUNpcGhlcml2PVUsTy5jcmVhdGVDaXBoZXI9ZnVuY3Rpb24ocSxlZSl7dmFyIHRlPXpbcS50b0xvd2VyQ2FzZSgpXTtpZighdGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBz'@; put 'dWl0ZSB0eXBlIik7dmFyIG9lPVYoZWUsITEsdGUua2V5LHRlLml2KTtyZXR1cm4gVShxLG9lLmtleSxvZS5pdil9fSwzMjg4OihNLE8sUik9Pnt2YXIgej1SKDk1MDkpLkJ1ZmZlcixLPXouYWxsb2MoMTYsMCk7ZnVuY3Rpb24gSShFKXt2YXIgaj16LmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4g'@; put 'ai53cml0ZVVJbnQzMkJFKEVbMF0+Pj4wLDApLGoud3JpdGVVSW50MzJCRShFWzFdPj4+MCw0KSxqLndyaXRlVUludDMyQkUoRVsyXT4+PjAsOCksai53cml0ZVVJbnQzMkJFKEVbM10+Pj4wLDEyKSxqfWZ1bmN0aW9uIGsoRSl7dGhpcy5oPUUsdGhpcy5zdGF0ZT16LmFsbG9jKDE2LDApLHRo'@; put 'aXMuY2FjaGU9ei5hbGxvY1Vuc2FmZSgwKX1rLnByb3RvdHlwZS5naGFzaD1mdW5jdGlvbihFKXtmb3IodmFyIGo9LTE7KytqPEUubGVuZ3RoOyl0aGlzLnN0YXRlW2pdXj1FW2pdO3RoaXMuX211bHRpcGx5KCl9LGsucHJvdG90eXBlLl9tdWx0aXBseT1mdW5jdGlvbigpe2Zvcih2YXIgRSxq'@; put 'LFYsQj1bKEU9dGhpcy5oKS5yZWFkVUludDMyQkUoMCksRS5yZWFkVUludDMyQkUoNCksRS5yZWFkVUludDMyQkUoOCksRS5yZWFkVUludDMyQkUoMTIpXSxZPVswLDAsMCwwXSxYPS0xOysrWDwxMjg7KXtmb3IodGhpcy5zdGF0ZVt+fihYLzgpXSYxPDw3LVglOCYmKFlbMF1ePUJbMF0sWVsx'@; put 'XV49QlsxXSxZWzJdXj1CWzJdLFlbM11ePUJbM10pLFY9MCE9KDEmQlszXSksaj0zO2o+MDtqLS0pQltqXT1CW2pdPj4+MXwoMSZCW2otMV0pPDwzMTtCWzBdPUJbMF0+Pj4xLFYmJihCWzBdPS01MjAwOTM2OTZeQlswXSl9dGhpcy5zdGF0ZT1JKFkpfSxrLnByb3RvdHlwZS51cGRhdGU9ZnVu'@; put 'Y3Rpb24oRSl7dmFyIGo7Zm9yKHRoaXMuY2FjaGU9ei5jb25jYXQoW3RoaXMuY2FjaGUsRV0pO3RoaXMuY2FjaGUubGVuZ3RoPj0xNjspaj10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksdGhpcy5naGFzaChqKX0say5wcm90b3R5cGUuZmlu'@; put 'YWw9ZnVuY3Rpb24oRSxqKXtyZXR1cm4gdGhpcy5jYWNoZS5sZW5ndGgmJnRoaXMuZ2hhc2goei5jb25jYXQoW3RoaXMuY2FjaGUsS10sMTYpKSx0aGlzLmdoYXNoKEkoWzAsRSwwLGpdKSksdGhpcy5zdGF0ZX0sTS5leHBvcnRzPWt9LDY4NTpNPT57TS5leHBvcnRzPWZ1bmN0aW9uKE8pe2Zv'@; put 'cih2YXIgUix6PU8ubGVuZ3RoO3otLTspe2lmKDI1NSE9PShSPU8ucmVhZFVJbnQ4KHopKSl7UisrLE8ud3JpdGVVSW50OChSLHopO2JyZWFrfU8ud3JpdGVVSW50OCgwLHopfX19LDUyOTI6KE0sTyxSKT0+e3ZhciB6PVIoNzI5NSk7Ty5lbmNyeXB0PWZ1bmN0aW9uKEssSSl7dmFyIGs9eihJ'@; put 'LEsuX3ByZXYpO3JldHVybiBLLl9wcmV2PUsuX2NpcGhlci5lbmNyeXB0QmxvY2soayksSy5fcHJldn0sTy5kZWNyeXB0PWZ1bmN0aW9uKEssSSl7dmFyIGs9Sy5fcHJldjtLLl9wcmV2PUk7dmFyIEU9Sy5fY2lwaGVyLmRlY3J5cHRCbG9jayhJKTtyZXR1cm4geihFLGspfX0sNjMxMTooTSxP'@; put 'LFIpPT57dmFyIHo9Uig5NTA5KS5CdWZmZXIsSz1SKDcyOTUpO2Z1bmN0aW9uIEkoayxFLGope3ZhciBWPUUubGVuZ3RoLEI9SyhFLGsuX2NhY2hlKTtyZXR1cm4gay5fY2FjaGU9ay5fY2FjaGUuc2xpY2UoViksay5fcHJldj16LmNvbmNhdChbay5fcHJldixqP0U6Ql0pLEJ9Ty5lbmNyeXB0'@; put 'PWZ1bmN0aW9uKGssRSxqKXtmb3IodmFyIFYsQj16LmFsbG9jVW5zYWZlKDApO0UubGVuZ3RoOyl7aWYoMD09PWsuX2NhY2hlLmxlbmd0aCYmKGsuX2NhY2hlPWsuX2NpcGhlci5lbmNyeXB0QmxvY2soay5fcHJldiksay5fcHJldj16LmFsbG9jVW5zYWZlKDApKSwhKGsuX2NhY2hlLmxlbmd0'@; put 'aDw9RS5sZW5ndGgpKXtCPXouY29uY2F0KFtCLEkoayxFLGopXSk7YnJlYWt9Qj16LmNvbmNhdChbQixJKGssRS5zbGljZSgwLFY9ay5fY2FjaGUubGVuZ3RoKSxqKV0pLEU9RS5zbGljZShWKX1yZXR1cm4gQn19LDE1MTA6KE0sTyxSKT0+e3ZhciB6PVIoOTUwOSkuQnVmZmVyO2Z1bmN0aW9u'@; put 'IEsoayxFLGope2Zvcih2YXIgVixCLFk9LTEsWD0wOysrWTw4OylWPUUmMTw8Ny1ZPzEyODowLFgrPSgxMjgmKEI9ay5fY2lwaGVyLmVuY3J5cHRCbG9jayhrLl9wcmV2KVswXV5WKSk+PlklOCxrLl9wcmV2PUkoay5fcHJldixqP1Y6Qik7cmV0dXJuIFh9ZnVuY3Rpb24gSShrLEUpe3ZhciBq'@; put 'PWsubGVuZ3RoLFY9LTEsQj16LmFsbG9jVW5zYWZlKGsubGVuZ3RoKTtmb3Ioaz16LmNvbmNhdChbayx6LmZyb20oW0VdKV0pOysrVjxqOylCW1ZdPWtbVl08PDF8a1tWKzFdPj43O3JldHVybiBCfU8uZW5jcnlwdD1mdW5jdGlvbihrLEUsail7Zm9yKHZhciBWPUUubGVuZ3RoLEI9ei5hbGxv'@; put 'Y1Vuc2FmZShWKSxZPS0xOysrWTxWOylCW1ldPUsoayxFW1ldLGopO3JldHVybiBCfX0sMTk2NDooTSxPLFIpPT57dmFyIHo9Uig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gSyhJLGssRSl7dmFyIGo9SS5fY2lwaGVyLmVuY3J5cHRCbG9jayhJLl9wcmV2KVswXV5rO3JldHVybiBJLl9wcmV2PXou'@; put 'Y29uY2F0KFtJLl9wcmV2LnNsaWNlKDEpLHouZnJvbShbRT9rOmpdKV0pLGp9Ty5lbmNyeXB0PWZ1bmN0aW9uKEksayxFKXtmb3IodmFyIGo9ay5sZW5ndGgsVj16LmFsbG9jVW5zYWZlKGopLEI9LTE7KytCPGo7KVZbQl09SyhJLGtbQl0sRSk7cmV0dXJuIFZ9fSw2MDA5OihNLE8sUik9Pnt2'@; put 'YXIgej1SKDcyOTUpLEs9Uig5NTA5KS5CdWZmZXIsST1SKDY4NSk7ZnVuY3Rpb24gayhFKXt2YXIgaj1FLl9jaXBoZXIuZW5jcnlwdEJsb2NrUmF3KEUuX3ByZXYpO3JldHVybiBJKEUuX3ByZXYpLGp9Ty5lbmNyeXB0PWZ1bmN0aW9uKEUsail7dmFyIFY9TWF0aC5jZWlsKGoubGVuZ3RoLzE2'@; put 'KSxCPUUuX2NhY2hlLmxlbmd0aDtFLl9jYWNoZT1LLmNvbmNhdChbRS5fY2FjaGUsSy5hbGxvY1Vuc2FmZSgxNipWKV0pO2Zvcih2YXIgWT0wO1k8VjtZKyspe3ZhciBYPWsoRSksVT1CKzE2Klk7RS5fY2FjaGUud3JpdGVVSW50MzJCRShYWzBdLFUrMCksRS5fY2FjaGUud3JpdGVVSW50MzJC'@; put 'RShYWzFdLFUrNCksRS5fY2FjaGUud3JpdGVVSW50MzJCRShYWzJdLFUrOCksRS5fY2FjaGUud3JpdGVVSW50MzJCRShYWzNdLFUrMTIpfXZhciBxPUUuX2NhY2hlLnNsaWNlKDAsai5sZW5ndGgpO3JldHVybiBFLl9jYWNoZT1FLl9jYWNoZS5zbGljZShqLmxlbmd0aCkseihqLHEpfX0sMTA4'@; put 'NDooTSxPKT0+e08uZW5jcnlwdD1mdW5jdGlvbihSLHope3JldHVybiBSLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHopfSxPLmRlY3J5cHQ9ZnVuY3Rpb24oUix6KXtyZXR1cm4gUi5fY2lwaGVyLmRlY3J5cHRCbG9jayh6KX19LDQ1OihNLE8sUik9Pnt2YXIgej17RUNCOlIoMTA4NCksQ0JDOlIo'@; put 'NTI5MiksQ0ZCOlIoNjMxMSksQ0ZCODpSKDE5NjQpLENGQjE6UigxNTEwKSxPRkI6Uig4ODYxKSxDVFI6Uig2MDA5KSxHQ006Uig2MDA5KX0sSz1SKDQ5NDYpO2Zvcih2YXIgSSBpbiBLKUtbSV0ubW9kdWxlPXpbS1tJXS5tb2RlXTtNLmV4cG9ydHM9S30sODg2MTooTSxPLFIpPT57dmFyIHo9'@; put 'Uig4NzY0KS5CdWZmZXIsSz1SKDcyOTUpO2Z1bmN0aW9uIEkoayl7cmV0dXJuIGsuX3ByZXY9ay5fY2lwaGVyLmVuY3J5cHRCbG9jayhrLl9wcmV2KSxrLl9wcmV2fU8uZW5jcnlwdD1mdW5jdGlvbihrLEUpe2Zvcig7ay5fY2FjaGUubGVuZ3RoPEUubGVuZ3RoOylrLl9jYWNoZT16LmNvbmNh'@; put 'dChbay5fY2FjaGUsSShrKV0pO3ZhciBqPWsuX2NhY2hlLnNsaWNlKDAsRS5sZW5ndGgpO3JldHVybiBrLl9jYWNoZT1rLl9jYWNoZS5zbGljZShFLmxlbmd0aCksSyhFLGopfX0sNTk2OTooTSxPLFIpPT57dmFyIHo9Uig0NDk3KSxLPVIoOTUwOSkuQnVmZmVyLEk9UigxMDI3KTtmdW5jdGlv'@; put 'biBrKEUsaixWLEIpe0kuY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IHouQUVTKGopLHRoaXMuX3ByZXY9Sy5mcm9tKFYpLHRoaXMuX2NhY2hlPUsuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9Sy5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PUIsdGhpcy5fbW9kZT1FfVIo'@; put 'NTcxNykoayxJKSxrLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxFLHRoaXMuX2RlY3J5cHQpfSxrLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sTS5leHBvcnRzPWt9LDM2MTQ6KE0s'@; put 'TyxSKT0+e3ZhciB6PVIoNzY2NyksSz1SKDQ2OTYpLEk9Uig0NSksaz1SKDk3MTUpLEU9UigzMDQ4KTtmdW5jdGlvbiBqKEIsWSxYKXtpZihCPUIudG9Mb3dlckNhc2UoKSxJW0JdKXJldHVybiBLLmNyZWF0ZUNpcGhlcml2KEIsWSxYKTtpZihrW0JdKXJldHVybiBuZXcgeih7a2V5OlksaXY6'@; put 'WCxtb2RlOkJ9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1mdW5jdGlvbiBWKEIsWSxYKXtpZihCPUIudG9Mb3dlckNhc2UoKSxJW0JdKXJldHVybiBLLmNyZWF0ZURlY2lwaGVyaXYoQixZLFgpO2lmKGtbQl0pcmV0dXJuIG5ldyB6KHtrZXk6WSxpdjpYLG1v'@; put 'ZGU6QixkZWNyeXB0OiEwfSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIil9Ty5jcmVhdGVDaXBoZXI9Ty5DaXBoZXI9ZnVuY3Rpb24oQixZKXt2YXIgWCxVO2lmKEI9Qi50b0xvd2VyQ2FzZSgpLElbQl0pWD1JW0JdLmtleSxVPUlbQl0uaXY7ZWxzZXtpZigha1tC'@; put 'XSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtYPTgqa1tCXS5rZXksVT1rW0JdLml2fXZhciBxPUUoWSwhMSxYLFUpO3JldHVybiBqKEIscS5rZXkscS5pdil9LE8uY3JlYXRlQ2lwaGVyaXY9Ty5DaXBoZXJpdj1qLE8uY3JlYXRlRGVjaXBoZXI9Ty5EZWNpcGhl'@; put 'cj1mdW5jdGlvbihCLFkpe3ZhciBYLFU7aWYoQj1CLnRvTG93ZXJDYXNlKCksSVtCXSlYPUlbQl0ua2V5LFU9SVtCXS5pdjtlbHNle2lmKCFrW0JdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO1g9OCprW0JdLmtleSxVPWtbQl0uaXZ9dmFyIHE9RShZLCExLFgs'@; put 'VSk7cmV0dXJuIFYoQixxLmtleSxxLml2KX0sTy5jcmVhdGVEZWNpcGhlcml2PU8uRGVjaXBoZXJpdj1WLE8ubGlzdENpcGhlcnM9Ty5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKGspLmNvbmNhdChLLmdldENpcGhlcnMoKSl9fSw3NjY3OihNLE8sUik9Pnt2YXIg'@; put 'ej1SKDEwMjcpLEs9Uig1MjUxKSxJPVIoNTcxNyksaz1SKDk1MDkpLkJ1ZmZlcixFPXsiZGVzLWVkZTMtY2JjIjpLLkNCQy5pbnN0YW50aWF0ZShLLkVERSksImRlcy1lZGUzIjpLLkVERSwiZGVzLWVkZS1jYmMiOksuQ0JDLmluc3RhbnRpYXRlKEsuRURFKSwiZGVzLWVkZSI6Sy5FREUsImRl'@; put 'cy1jYmMiOksuQ0JDLmluc3RhbnRpYXRlKEsuREVTKSwiZGVzLWVjYiI6Sy5ERVN9O2Z1bmN0aW9uIGooVil7ei5jYWxsKHRoaXMpO3ZhciBCLFk9Vi5tb2RlLnRvTG93ZXJDYXNlKCksWD1FW1ldO0I9Vi5kZWNyeXB0PyJkZWNyeXB0IjoiZW5jcnlwdCI7dmFyIFU9Vi5rZXk7ay5pc0J1ZmZl'@; put 'cihVKXx8KFU9ay5mcm9tKFUpKSwiZGVzLWVkZSIhPT1ZJiYiZGVzLWVkZS1jYmMiIT09WXx8KFU9ay5jb25jYXQoW1UsVS5zbGljZSgwLDgpXSkpO3ZhciBxPVYuaXY7ay5pc0J1ZmZlcihxKXx8KHE9ay5mcm9tKHEpKSx0aGlzLl9kZXM9WC5jcmVhdGUoe2tleTpVLGl2OnEsdHlwZTpCfSl9'@; put 'RS5kZXM9RVsiZGVzLWNiYyJdLEUuZGVzMz1FWyJkZXMtZWRlMy1jYmMiXSxNLmV4cG9ydHM9aixJKGoseiksai5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihWKXtyZXR1cm4gay5mcm9tKHRoaXMuX2Rlcy51cGRhdGUoVikpfSxqLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gay5mcm9tKHRoaXMuX2Rlcy5maW5hbCgpKX19LDk3MTU6KE0sTyk9PntPWyJkZXMtZWNiIl09e2tleTo4LGl2OjB9LE9bImRlcy1jYmMiXT1PLmRlcz17a2V5OjgsaXY6OH0sT1siZGVzLWVkZTMtY2JjIl09Ty5kZXMzPXtrZXk6MjQsaXY6OH0sT1siZGVzLWVkZTMiXT17a2V5OjI0LGl2'@; put 'OjB9LE9bImRlcy1lZGUtY2JjIl09e2tleToxNixpdjo4fSxPWyJkZXMtZWRlIl09e2tleToxNixpdjowfX0sMzY2MzooTSxPLFIpPT57dmFyIHo9Uig4NzY0KS5CdWZmZXIsSz1SKDM1NTApLEk9UigxNzk4KTtmdW5jdGlvbiBrKGope3ZhciBWLEI9ai5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtk'@; put 'b3tWPW5ldyBLKEkoQikpfXdoaWxlKFYuY21wKGoubW9kdWx1cyk+PTB8fCFWLnVtb2Qoai5wcmltZTEpfHwhVi51bW9kKGoucHJpbWUyKSk7cmV0dXJuIFZ9ZnVuY3Rpb24gRShqLFYpe3ZhciBjZSxHLEI9e2JsaW5kZXI6KEc9ayhjZT1WKSkudG9SZWQoSy5tb250KGNlLm1vZHVsdXMpKS5y'@; put 'ZWRQb3cobmV3IEsoY2UucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCksdW5ibGluZGVyOkcuaW52bShjZS5tb2R1bHVzKX0sWT1WLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLFg9bmV3IEsoaikubXVsKEIuYmxpbmRlcikudW1vZChWLm1vZHVsdXMpLFU9WC50b1JlZChLLm1vbnQoVi5wcmltZTEp'@; put 'KSxxPVgudG9SZWQoSy5tb250KFYucHJpbWUyKSksZWU9Vi5jb2VmZmljaWVudCx0ZT1WLnByaW1lMSxvZT1WLnByaW1lMixzZT1VLnJlZFBvdyhWLmV4cG9uZW50MSkuZnJvbVJlZCgpLGhlPXEucmVkUG93KFYuZXhwb25lbnQyKS5mcm9tUmVkKCksdWU9c2UuaXN1YihoZSkuaW11bChlZSku'@; put 'dW1vZCh0ZSkuaW11bChvZSk7cmV0dXJuIGhlLmlhZGQodWUpLmltdWwoQi51bmJsaW5kZXIpLnVtb2QoVi5tb2R1bHVzKS50b0FycmF5TGlrZSh6LCJiZSIsWSl9RS5nZXRyPWssTS5leHBvcnRzPUV9LDYwNDI6KE0sTyxSKT0+e00uZXhwb3J0cz1SKDUyMDcpfSw0NzQzOihNLE8sUik9Pnt2'@; put 'YXIgej1SKDk1MDkpLkJ1ZmZlcixLPVIoMzQ4MiksST1SKDg0NzMpLGs9Uig1NzE3KSxFPVIoMjk1Nyksaj1SKDc3NTMpLFY9Uig1MjA3KTtmdW5jdGlvbiBCKHEpe0kuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgZWU9VltxXTtpZighZWUpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG1lc3Nh'@; put 'Z2UgZGlnZXN0Iik7dGhpcy5faGFzaFR5cGU9ZWUuaGFzaCx0aGlzLl9oYXNoPUsoZWUuaGFzaCksdGhpcy5fdGFnPWVlLmlkLHRoaXMuX3NpZ25UeXBlPWVlLnNpZ259ZnVuY3Rpb24gWShxKXtJLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIGVlPVZbcV07aWYoIWVlKXRocm93IG5ldyBFcnJv'@; put 'cigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2g9SyhlZS5oYXNoKSx0aGlzLl90YWc9ZWUuaWQsdGhpcy5fc2lnblR5cGU9ZWUuc2lnbn1mdW5jdGlvbiBYKHEpe3JldHVybiBuZXcgQihxKX1mdW5jdGlvbiBVKHEpe3JldHVybiBuZXcgWShxKX1PYmplY3Qua2V5cyhWKS5m'@; put 'b3JFYWNoKGZ1bmN0aW9uKHEpe1ZbcV0uaWQ9ei5mcm9tKFZbcV0uaWQsImhleCIpLFZbcS50b0xvd2VyQ2FzZSgpXT1WW3FdfSksayhCLEkuV3JpdGFibGUpLEIucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihxLGVlLHRlKXt0aGlzLl9oYXNoLnVwZGF0ZShxKSx0ZSgpfSxCLnByb3RvdHlw'@; put 'ZS51cGRhdGU9ZnVuY3Rpb24ocSxlZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBxJiYocT16LmZyb20ocSxlZSkpLHRoaXMuX2hhc2gudXBkYXRlKHEpLHRoaXN9LEIucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24ocSxlZSl7dGhpcy5lbmQoKTt2YXIgdGU9dGhpcy5faGFzaC5kaWdlc3QoKSxv'@; put 'ZT1FKHRlLHEsdGhpcy5faGFzaFR5cGUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKTtyZXR1cm4gZWU/b2UudG9TdHJpbmcoZWUpOm9lfSxrKFksSS5Xcml0YWJsZSksWS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHEsZWUsdGUpe3RoaXMuX2hhc2gudXBkYXRlKHEpLHRlKCl9LFkucHJv'@; put 'dG90eXBlLnVwZGF0ZT1mdW5jdGlvbihxLGVlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHEmJihxPXouZnJvbShxLGVlKSksdGhpcy5faGFzaC51cGRhdGUocSksdGhpc30sWS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKHEsZWUsdGUpeyJzdHJpbmciPT10eXBlb2YgZWUmJihlZT16LmZy'@; put 'b20oZWUsdGUpKSx0aGlzLmVuZCgpO3ZhciBvZT10aGlzLl9oYXNoLmRpZ2VzdCgpO3JldHVybiBqKGVlLG9lLHEsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sTS5leHBvcnRzPXtTaWduOlgsVmVyaWZ5OlUsY3JlYXRlU2lnbjpYLGNyZWF0ZVZlcmlmeTpVfX0sMjk1NzooTSxPLFIpPT57'@; put 'dmFyIHo9Uig5NTA5KS5CdWZmZXIsSz1SKDgzNTUpLEk9UigzNjYzKSxrPVIoNjk0OCkuZWMsRT1SKDM1NTApLGo9Uig5ODApLFY9UigxMzA4KTtmdW5jdGlvbiBCKHEsZWUsdGUsb2Upe2lmKChxPXouZnJvbShxLnRvQXJyYXkoKSkpLmxlbmd0aDxlZS5ieXRlTGVuZ3RoKCkpe3ZhciBzZT16'@; put 'LmFsbG9jKGVlLmJ5dGVMZW5ndGgoKS1xLmxlbmd0aCk7cT16LmNvbmNhdChbc2UscV0pfXZhciBoZT10ZS5sZW5ndGgsdWU9ZnVuY3Rpb24oYixEKXtiPShiPVkoYixEKSkubW9kKEQpO3ZhciBIPXouZnJvbShiLnRvQXJyYXkoKSk7aWYoSC5sZW5ndGg8RC5ieXRlTGVuZ3RoKCkpe3ZhciBO'@; put 'PXouYWxsb2MoRC5ieXRlTGVuZ3RoKCktSC5sZW5ndGgpO0g9ei5jb25jYXQoW04sSF0pfXJldHVybiBIfSh0ZSxlZSksY2U9ei5hbGxvYyhoZSk7Y2UuZmlsbCgxKTt2YXIgRz16LmFsbG9jKGhlKTtyZXR1cm4gRz1LKG9lLEcpLnVwZGF0ZShjZSkudXBkYXRlKHouZnJvbShbMF0pKS51cGRh'@; put 'dGUocSkudXBkYXRlKHVlKS5kaWdlc3QoKSxjZT1LKG9lLEcpLnVwZGF0ZShjZSkuZGlnZXN0KCkse2s6Rz1LKG9lLEcpLnVwZGF0ZShjZSkudXBkYXRlKHouZnJvbShbMV0pKS51cGRhdGUocSkudXBkYXRlKHVlKS5kaWdlc3QoKSx2OmNlPUsob2UsRykudXBkYXRlKGNlKS5kaWdlc3QoKX19'@; put 'ZnVuY3Rpb24gWShxLGVlKXt2YXIgdGU9bmV3IEUocSksb2U9KHEubGVuZ3RoPDwzKS1lZS5iaXRMZW5ndGgoKTtyZXR1cm4gb2U+MCYmdGUuaXNocm4ob2UpLHRlfWZ1bmN0aW9uIFgocSxlZSx0ZSl7dmFyIG9lLHNlO2Rve2ZvcihvZT16LmFsbG9jKDApOzgqb2UubGVuZ3RoPHEuYml0TGVu'@; put 'Z3RoKCk7KWVlLnY9Syh0ZSxlZS5rKS51cGRhdGUoZWUudikuZGlnZXN0KCksb2U9ei5jb25jYXQoW29lLGVlLnZdKTtzZT1ZKG9lLHEpLGVlLms9Syh0ZSxlZS5rKS51cGRhdGUoZWUudikudXBkYXRlKHouZnJvbShbMF0pKS5kaWdlc3QoKSxlZS52PUsodGUsZWUuaykudXBkYXRlKGVlLnYp'@; put 'LmRpZ2VzdCgpfXdoaWxlKC0xIT09c2UuY21wKHEpKTtyZXR1cm4gc2V9ZnVuY3Rpb24gVShxLGVlLHRlLG9lKXtyZXR1cm4gcS50b1JlZChFLm1vbnQodGUpKS5yZWRQb3coZWUpLmZyb21SZWQoKS5tb2Qob2UpfU0uZXhwb3J0cz1mdW5jdGlvbihxLGVlLHRlLG9lLHNlKXt2YXIgaGU9aihl'@; put 'ZSk7aWYoaGUuY3VydmUpe2lmKCJlY2RzYSIhPT1vZSYmImVjZHNhL3JzYSIhPT1vZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24oYixEKXt2YXIgSD1WW0QuY3VydmUuam9pbigiLiIpXTtpZighSCl0aHJvdyBuZXcgRXJyb3IoInVu'@; put 'a25vd24gY3VydmUgIitELmN1cnZlLmpvaW4oIi4iKSk7dmFyIGc9bmV3IGsoSCkua2V5RnJvbVByaXZhdGUoRC5wcml2YXRlS2V5KS5zaWduKGIpO3JldHVybiB6LmZyb20oZy50b0RFUigpKX0ocSxoZSl9aWYoImRzYSI9PT1oZS50eXBlKXtpZigiZHNhIiE9PW9lKXRocm93IG5ldyBFcnJv'@; put 'cigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbihiLEQsSCl7Zm9yKHZhciBOLGc9RC5wYXJhbXMucHJpdl9rZXksQz1ELnBhcmFtcy5wLFM9RC5wYXJhbXMucSx2PUQucGFyYW1zLmcscD1uZXcgRSgwKSx3PVkoYixTKS5tb2QoUyksSj0hMSxuZT1CKGcsUyxiLEgp'@; put 'OyExPT09SjspcD1VKHYsTj1YKFMsbmUsSCksQyxTKSwwPT09KEo9Ti5pbnZtKFMpLmltdWwody5hZGQoZy5tdWwocCkpKS5tb2QoUykpLmNtcG4oMCkmJihKPSExLHA9bmV3IEUoMCkpO3JldHVybiBmdW5jdGlvbihkZSxmZSl7ZGU9ZGUudG9BcnJheSgpLGZlPWZlLnRvQXJyYXkoKSwxMjgm'@; put 'ZGVbMF0mJihkZT1bMF0uY29uY2F0KGRlKSksMTI4JmZlWzBdJiYoZmU9WzBdLmNvbmNhdChmZSkpO3ZhciBMZT1bNDgsZGUubGVuZ3RoK2ZlLmxlbmd0aCs0LDIsZGUubGVuZ3RoXTtyZXR1cm4gTGU9TGUuY29uY2F0KGRlLFsyLGZlLmxlbmd0aF0sZmUpLHouZnJvbShMZSl9KHAsSil9KHEs'@; put 'aGUsdGUpfWlmKCJyc2EiIT09b2UmJiJlY2RzYS9yc2EiIT09b2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cT16LmNvbmNhdChbc2UscV0pO2Zvcih2YXIgdWU9aGUubW9kdWx1cy5ieXRlTGVuZ3RoKCksY2U9WzAsMV07cS5sZW5ndGgrY2UubGVuZ3RoKzE8'@; put 'dWU7KWNlLnB1c2goMjU1KTtjZS5wdXNoKDApO2Zvcih2YXIgRz0tMTsrK0c8cS5sZW5ndGg7KWNlLnB1c2gocVtHXSk7cmV0dXJuIEkoY2UsaGUpfSxNLmV4cG9ydHMuZ2V0S2V5PUIsTS5leHBvcnRzLm1ha2VLZXk9WH0sNzc1MzooTSxPLFIpPT57dmFyIHo9Uig5NTA5KS5CdWZmZXIsSz1S'@; put 'KDM1NTApLEk9Uig2OTQ4KS5lYyxrPVIoOTgwKSxFPVIoMTMwOCk7ZnVuY3Rpb24gaihWLEIpe2lmKFYuY21wbigwKTw9MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIik7aWYoVi5jbXAoQik+PUIpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpZyIpfU0uZXhwb3J0cz1mdW5jdGlv'@; put 'bihWLEIsWSxYLFUpe3ZhciBxPWsoWSk7aWYoImVjIj09PXEudHlwZSl7aWYoImVjZHNhIiE9PVgmJiJlY2RzYS9yc2EiIT09WCl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbihjZSxHLGIpe3ZhciBEPUVbYi5kYXRhLmFsZ29yaXRobS5j'@; put 'dXJ2ZS5qb2luKCIuIildO2lmKCFEKXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK2IuZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpKTtyZXR1cm4gbmV3IEkoRCkudmVyaWZ5KEcsY2UsYi5kYXRhLnN1YmplY3RQcml2YXRlS2V5LmRhdGEpfShWLEIscSl9aWYoImRzYSI9'@; put 'PT1xLnR5cGUpe2lmKCJkc2EiIT09WCl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbihjZSxHLGIpe3ZhciBEPWIuZGF0YS5wLEg9Yi5kYXRhLnEsTj1iLmRhdGEuZyxnPWIuZGF0YS5wdWJfa2V5LEM9ay5zaWduYXR1cmUuZGVjb2RlKGNl'@; put 'LCJkZXIiKSxTPUMucyx2PUMucjtqKFMsSCksaih2LEgpO3ZhciBwPUsubW9udChEKSx3PVMuaW52bShIKTtyZXR1cm4gMD09PU4udG9SZWQocCkucmVkUG93KG5ldyBLKEcpLm11bCh3KS5tb2QoSCkpLmZyb21SZWQoKS5tdWwoZy50b1JlZChwKS5yZWRQb3codi5tdWwodykubW9kKEgpKS5m'@; put 'cm9tUmVkKCkpLm1vZChEKS5tb2QoSCkuY21wKHYpfShWLEIscSl9aWYoInJzYSIhPT1YJiYiZWNkc2EvcnNhIiE9PVgpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtCPXouY29uY2F0KFtVLEJdKTtmb3IodmFyIGVlPXEubW9kdWx1cy5ieXRlTGVuZ3RoKCksdGU9'@; put 'WzFdLG9lPTA7Qi5sZW5ndGgrdGUubGVuZ3RoKzI8ZWU7KXRlLnB1c2goMjU1KSxvZSsrO3RlLnB1c2goMCk7Zm9yKHZhciBzZT0tMTsrK3NlPEIubGVuZ3RoOyl0ZS5wdXNoKEJbc2VdKTt0ZT16LmZyb20odGUpO3ZhciBoZT1LLm1vbnQocS5tb2R1bHVzKTtWPShWPW5ldyBLKFYpLnRvUmVk'@; put 'KGhlKSkucmVkUG93KG5ldyBLKHEucHVibGljRXhwb25lbnQpKSxWPXouZnJvbShWLmZyb21SZWQoKS50b0FycmF5KCkpO3ZhciB1ZT1vZTw4PzE6MDtmb3IoZWU9TWF0aC5taW4oVi5sZW5ndGgsdGUubGVuZ3RoKSxWLmxlbmd0aCE9PXRlLmxlbmd0aCYmKHVlPTEpLHNlPS0xOysrc2U8ZWU7'@; put 'KXVlfD1WW3NlXV50ZVtzZV07cmV0dXJuIDA9PT11ZX19LDcyOTU6KE0sTyxSKT0+e3ZhciB6PVIoODc2NCkuQnVmZmVyO00uZXhwb3J0cz1mdW5jdGlvbihLLEkpe2Zvcih2YXIgaz1NYXRoLm1pbihLLmxlbmd0aCxJLmxlbmd0aCksRT1uZXcgeihrKSxqPTA7ajxrOysrailFW2pdPUtbal1e'@; put 'SVtqXTtyZXR1cm4gRX19LDg3NjQ6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDUxMDgpO2NvbnN0IEs9Uig5NzQyKSxJPVIoNjQ1KSxrPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoIm5vZGVqcy51dGls'@; put 'Lmluc3BlY3QuY3VzdG9tIik6bnVsbDtPLkJ1ZmZlcj1WLE8uU2xvd0J1ZmZlcj1mdW5jdGlvbihNZSl7cmV0dXJuK01lIT1NZSYmKE1lPTApLFYuYWxsb2MoK01lKX0sTy5JTlNQRUNUX01BWF9CWVRFUz01MDtjb25zdCBFPTIxNDc0ODM2NDc7ZnVuY3Rpb24gaihNZSl7aWYoTWU+RSl0aHJv'@; put 'dyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK01lKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTtjb25zdCBEZT1uZXcgVWludDhBcnJheShNZSk7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihEZSxWLnByb3RvdHlwZSksRGV9ZnVuY3Rpb24gVihNZSxEZSx6ZSl7'@; put 'aWYoIm51bWJlciI9PXR5cGVvZiBNZSl7aWYoInN0cmluZyI9PXR5cGVvZiBEZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gWChNZSl9cmV0dXJuIEIoTWUsRGUs'@; put 'emUpfWZ1bmN0aW9uIEIoTWUsRGUsemUpe2lmKCJzdHJpbmciPT10eXBlb2YgTWUpcmV0dXJuIGZ1bmN0aW9uKE10LEh0KXtpZigic3RyaW5nIj09dHlwZW9mIEh0JiYiIiE9PUh0fHwoSHQ9InV0ZjgiKSwhVi5pc0VuY29kaW5nKEh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVu'@; put 'Y29kaW5nOiAiK0h0KTtjb25zdCBQdD0wfHRlKE10LEh0KTtsZXQgb249aihQdCk7Y29uc3QgQ249b24ud3JpdGUoTXQsSHQpO3JldHVybiBDbiE9PVB0JiYob249b24uc2xpY2UoMCxDbikpLG9ufShNZSxEZSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KE1lKSlyZXR1cm4gZnVuY3Rpb24oTXQp'@; put 'e2lmKFRlKE10LFVpbnQ4QXJyYXkpKXtjb25zdCBIdD1uZXcgVWludDhBcnJheShNdCk7cmV0dXJuIHEoSHQuYnVmZmVyLEh0LmJ5dGVPZmZzZXQsSHQuYnl0ZUxlbmd0aCl9cmV0dXJuIFUoTXQpfShNZSk7aWYobnVsbD09TWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3Vt'@; put 'ZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgTWUpO2lmKFRlKE1lLEFycmF5QnVmZmVyKXx8TWUmJlRlKE1lLmJ1ZmZlcixBcnJheUJ1ZmZlcil8fHR5'@; put 'cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcjwidSImJihUZShNZSxTaGFyZWRBcnJheUJ1ZmZlcil8fE1lJiZUZShNZS5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gcShNZSxEZSx6ZSk7aWYoIm51bWJlciI9PXR5cGVvZiBNZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVl'@; put 'IiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtjb25zdCBvdD1NZS52YWx1ZU9mJiZNZS52YWx1ZU9mKCk7aWYobnVsbCE9b3QmJm90IT09TWUpcmV0dXJuIFYuZnJvbShvdCxEZSx6ZSk7Y29uc3QgdXQ9ZnVuY3Rpb24oTXQpe2lm'@; put 'KFYuaXNCdWZmZXIoTXQpKXtjb25zdCBIdD0wfGVlKE10Lmxlbmd0aCksUHQ9aihIdCk7cmV0dXJuIDA9PT1QdC5sZW5ndGh8fE10LmNvcHkoUHQsMCwwLEh0KSxQdH1yZXR1cm4gdm9pZCAwIT09TXQubGVuZ3RoPyJudW1iZXIiIT10eXBlb2YgTXQubGVuZ3RofHxxZShNdC5sZW5ndGgpP2oo'@; put 'MCk6VShNdCk6IkJ1ZmZlciI9PT1NdC50eXBlJiZBcnJheS5pc0FycmF5KE10LmRhdGEpP1UoTXQuZGF0YSk6dm9pZCAwfShNZSk7aWYodXQpcmV0dXJuIHV0O2lmKHR5cGVvZiBTeW1ib2w8InUiJiZudWxsIT1TeW1ib2wudG9QcmltaXRpdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBNZVtTeW1i'@; put 'b2wudG9QcmltaXRpdmVdKXJldHVybiBWLmZyb20oTWVbU3ltYm9sLnRvUHJpbWl0aXZlXSgic3RyaW5nIiksRGUsemUpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXks'@; put 'IG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIE1lKX1mdW5jdGlvbiBZKE1lKXtpZigibnVtYmVyIiE9dHlwZW9mIE1lKXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyk7aWYoTWU8MCl0aHJvdyBu'@; put 'ZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK01lKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKX1mdW5jdGlvbiBYKE1lKXtyZXR1cm4gWShNZSksaihNZTwwPzA6MHxlZShNZSkpfWZ1bmN0aW9uIFUoTWUpe2NvbnN0IERlPU1lLmxlbmd0aDwwPzA6MHxlZShNZS5sZW5ndGgp'@; put 'LHplPWooRGUpO2ZvcihsZXQgb3Q9MDtvdDxEZTtvdCs9MSl6ZVtvdF09MjU1Jk1lW290XTtyZXR1cm4gemV9ZnVuY3Rpb24gcShNZSxEZSx6ZSl7aWYoRGU8MHx8TWUuYnl0ZUxlbmd0aDxEZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91'@; put 'bmRzJyk7aWYoTWUuYnl0ZUxlbmd0aDxEZSsoemV8fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtsZXQgb3Q7cmV0dXJuIG90PXZvaWQgMD09PURlJiZ2b2lkIDA9PT16ZT9uZXcgVWludDhBcnJheShNZSk6dm9pZCAwPT09'@; put 'emU/bmV3IFVpbnQ4QXJyYXkoTWUsRGUpOm5ldyBVaW50OEFycmF5KE1lLERlLHplKSxPYmplY3Quc2V0UHJvdG90eXBlT2Yob3QsVi5wcm90b3R5cGUpLG90fWZ1bmN0aW9uIGVlKE1lKXtpZihNZT49RSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIg'@; put 'bGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrRS50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfE1lfWZ1bmN0aW9uIHRlKE1lLERlKXtpZihWLmlzQnVmZmVyKE1lKSlyZXR1cm4gTWUubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyhNZSl8fFRlKE1lLEFycmF5QnVmZmVy'@; put 'KSlyZXR1cm4gTWUuYnl0ZUxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIE1lKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBN'@; put 'ZSk7Y29uc3QgemU9TWUubGVuZ3RoLG90PWFyZ3VtZW50cy5sZW5ndGg+MiYmITA9PT1hcmd1bWVudHNbMl07aWYoIW90JiYwPT09emUpcmV0dXJuIDA7bGV0IHV0PSExO2Zvcig7Oylzd2l0Y2goRGUpe2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHplO2Nh'@; put 'c2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIFBlKE1lKS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKnplO2Nhc2UiaGV4IjpyZXR1cm4gemU+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYmUoTWUpLmxlbmd0aDtk'@; put 'ZWZhdWx0OmlmKHV0KXJldHVybiBvdD8tMTpQZShNZSkubGVuZ3RoO0RlPSgiIitEZSkudG9Mb3dlckNhc2UoKSx1dD0hMH19ZnVuY3Rpb24gb2UoTWUsRGUsemUpe2xldCBvdD0hMTtpZigodm9pZCAwPT09RGV8fERlPDApJiYoRGU9MCksRGU+dGhpcy5sZW5ndGh8fCgodm9pZCAwPT09emV8'@; put 'fHplPnRoaXMubGVuZ3RoKSYmKHplPXRoaXMubGVuZ3RoKSx6ZTw9MCl8fCh6ZT4+Pj0wKTw9KERlPj4+PTApKXJldHVybiIiO2ZvcihNZXx8KE1lPSJ1dGY4Iik7Oylzd2l0Y2goTWUpe2Nhc2UiaGV4IjpyZXR1cm4gcCh0aGlzLERlLHplKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVy'@; put 'biBnKHRoaXMsRGUsemUpO2Nhc2UiYXNjaWkiOnJldHVybiBTKHRoaXMsRGUsemUpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHYodGhpcyxEZSx6ZSk7Y2FzZSJiYXNlNjQiOnJldHVybiBOKHRoaXMsRGUsemUpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxl'@; put 'IjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gdyh0aGlzLERlLHplKTtkZWZhdWx0OmlmKG90KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrTWUpO01lPShNZSsiIikudG9Mb3dlckNhc2UoKSxvdD0hMH19ZnVuY3Rpb24gc2UoTWUsRGUsemUpe2NvbnN0IG90PU1lW0Rl'@; put 'XTtNZVtEZV09TWVbemVdLE1lW3plXT1vdH1mdW5jdGlvbiBoZShNZSxEZSx6ZSxvdCx1dCl7aWYoMD09PU1lLmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIHplPyhvdD16ZSx6ZT0wKTp6ZT4yMTQ3NDgzNjQ3P3plPTIxNDc0ODM2NDc6emU8LTIxNDc0ODM2NDgmJih6ZT0t'@; put 'MjE0NzQ4MzY0OCkscWUoemU9K3plKSYmKHplPXV0PzA6TWUubGVuZ3RoLTEpLHplPDAmJih6ZT1NZS5sZW5ndGgremUpLHplPj1NZS5sZW5ndGgpe2lmKHV0KXJldHVybi0xO3plPU1lLmxlbmd0aC0xfWVsc2UgaWYoemU8MCl7aWYoIXV0KXJldHVybi0xO3plPTB9aWYoInN0cmluZyI9PXR5'@; put 'cGVvZiBEZSYmKERlPVYuZnJvbShEZSxvdCkpLFYuaXNCdWZmZXIoRGUpKXJldHVybiAwPT09RGUubGVuZ3RoPy0xOnVlKE1lLERlLHplLG90LHV0KTtpZigibnVtYmVyIj09dHlwZW9mIERlKXJldHVybiBEZSY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5p'@; put 'bmRleE9mP3V0P1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChNZSxEZSx6ZSk6VWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChNZSxEZSx6ZSk6dWUoTWUsW0RlXSx6ZSxvdCx1dCk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUgc3RyaW5nLCBu'@; put 'dW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gdWUoTWUsRGUsemUsb3QsdXQpe2xldCBNdCxIdD0xLFB0PU1lLmxlbmd0aCxvbj1EZS5sZW5ndGg7aWYodm9pZCAwIT09b3QmJigidWNzMiI9PT0ob3Q9U3RyaW5nKG90KS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PW90fHwidXRmMTZsZSI9'@; put 'PT1vdHx8InV0Zi0xNmxlIj09PW90KSl7aWYoTWUubGVuZ3RoPDJ8fERlLmxlbmd0aDwyKXJldHVybi0xO0h0PTIsUHQvPTIsb24vPTIsemUvPTJ9ZnVuY3Rpb24gQ24oVXQsYm4pe3JldHVybiAxPT09SHQ/VXRbYm5dOlV0LnJlYWRVSW50MTZCRShibipIdCl9aWYodXQpe2xldCBVdD0tMTtm'@; put 'b3IoTXQ9emU7TXQ8UHQ7TXQrKylpZihDbihNZSxNdCk9PT1DbihEZSwtMT09PVV0PzA6TXQtVXQpKXtpZigtMT09PVV0JiYoVXQ9TXQpLE10LVV0KzE9PT1vbilyZXR1cm4gVXQqSHR9ZWxzZS0xIT09VXQmJihNdC09TXQtVXQpLFV0PS0xfWVsc2UgZm9yKHplK29uPlB0JiYoemU9UHQtb24p'@; put 'LE10PXplO010Pj0wO010LS0pe2xldCBVdD0hMDtmb3IobGV0IGJuPTA7Ym48b247Ym4rKylpZihDbihNZSxNdCtibikhPT1DbihEZSxibikpe1V0PSExO2JyZWFrfWlmKFV0KXJldHVybiBNdH1yZXR1cm4tMX1mdW5jdGlvbiBjZShNZSxEZSx6ZSxvdCl7emU9TnVtYmVyKHplKXx8MDtjb25z'@; put 'dCB1dD1NZS5sZW5ndGgtemU7b3Q/KG90PU51bWJlcihvdCkpPnV0JiYob3Q9dXQpOm90PXV0O2NvbnN0IE10PURlLmxlbmd0aDtsZXQgSHQ7Zm9yKG90Pk10LzImJihvdD1NdC8yKSxIdD0wO0h0PG90OysrSHQpe2NvbnN0IFB0PXBhcnNlSW50KERlLnN1YnN0cigyKkh0LDIpLDE2KTtpZihx'@; put 'ZShQdCkpcmV0dXJuIEh0O01lW3plK0h0XT1QdH1yZXR1cm4gSHR9ZnVuY3Rpb24gRyhNZSxEZSx6ZSxvdCl7cmV0dXJuIEFlKFBlKERlLE1lLmxlbmd0aC16ZSksTWUsemUsb3QpfWZ1bmN0aW9uIGIoTWUsRGUsemUsb3Qpe3JldHVybiBBZShmdW5jdGlvbih1dCl7Y29uc3QgTXQ9W107Zm9y'@; put 'KGxldCBIdD0wO0h0PHV0Lmxlbmd0aDsrK0h0KU10LnB1c2goMjU1JnV0LmNoYXJDb2RlQXQoSHQpKTtyZXR1cm4gTXR9KERlKSxNZSx6ZSxvdCl9ZnVuY3Rpb24gRChNZSxEZSx6ZSxvdCl7cmV0dXJuIEFlKGJlKERlKSxNZSx6ZSxvdCl9ZnVuY3Rpb24gSChNZSxEZSx6ZSxvdCl7cmV0dXJu'@; put 'IEFlKGZ1bmN0aW9uKHV0LE10KXtsZXQgSHQsUHQsb247Y29uc3QgQ249W107Zm9yKGxldCBVdD0wO1V0PHV0Lmxlbmd0aCYmISgoTXQtPTIpPDApOysrVXQpSHQ9dXQuY2hhckNvZGVBdChVdCksUHQ9SHQ+Pjgsb249SHQlMjU2LENuLnB1c2gob24pLENuLnB1c2goUHQpO3JldHVybiBDbn0o'@; put 'RGUsTWUubGVuZ3RoLXplKSxNZSx6ZSxvdCl9ZnVuY3Rpb24gTihNZSxEZSx6ZSl7cmV0dXJuIEsuZnJvbUJ5dGVBcnJheSgwPT09RGUmJnplPT09TWUubGVuZ3RoP01lOk1lLnNsaWNlKERlLHplKSl9ZnVuY3Rpb24gZyhNZSxEZSx6ZSl7emU9TWF0aC5taW4oTWUubGVuZ3RoLHplKTtjb25z'@; put 'dCBvdD1bXTtsZXQgdXQ9RGU7Zm9yKDt1dDx6ZTspe2NvbnN0IE10PU1lW3V0XTtsZXQgSHQ9bnVsbCxQdD1NdD4yMzk/NDpNdD4yMjM/MzpNdD4xOTE/MjoxO2lmKHV0K1B0PD16ZSl7bGV0IG9uLENuLFV0LGJuO3N3aXRjaChQdCl7Y2FzZSAxOk10PDEyOCYmKEh0PU10KTticmVhaztjYXNl'@; put 'IDI6b249TWVbdXQrMV0sMTI4PT0oMTkyJm9uKSYmKGJuPSgzMSZNdCk8PDZ8NjMmb24sYm4+MTI3JiYoSHQ9Ym4pKTticmVhaztjYXNlIDM6b249TWVbdXQrMV0sQ249TWVbdXQrMl0sMTI4PT0oMTkyJm9uKSYmMTI4PT0oMTkyJkNuKSYmKGJuPSgxNSZNdCk8PDEyfCg2MyZvbik8PDZ8NjMm'@; put 'Q24sYm4+MjA0NyYmKGJuPDU1Mjk2fHxibj41NzM0MykmJihIdD1ibikpO2JyZWFrO2Nhc2UgNDpvbj1NZVt1dCsxXSxDbj1NZVt1dCsyXSxVdD1NZVt1dCszXSwxMjg9PSgxOTImb24pJiYxMjg9PSgxOTImQ24pJiYxMjg9PSgxOTImVXQpJiYoYm49KDE1Jk10KTw8MTh8KDYzJm9uKTw8MTJ8'@; put 'KDYzJkNuKTw8Nnw2MyZVdCxibj42NTUzNSYmYm48MTExNDExMiYmKEh0PWJuKSl9fW51bGw9PT1IdD8oSHQ9NjU1MzMsUHQ9MSk6SHQ+NjU1MzUmJihIdC09NjU1MzYsb3QucHVzaChIdD4+PjEwJjEwMjN8NTUyOTYpLEh0PTU2MzIwfDEwMjMmSHQpLG90LnB1c2goSHQpLHV0Kz1QdH1yZXR1'@; put 'cm4gZnVuY3Rpb24oTXQpe2NvbnN0IEh0PU10Lmxlbmd0aDtpZihIdDw9QylyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsTXQpO2xldCBQdD0iIixvbj0wO2Zvcig7b248SHQ7KVB0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxNdC5zbGljZShvbixv'@; put 'bis9QykpO3JldHVybiBQdH0ob3QpfU8ua01heExlbmd0aD1FLChWLlRZUEVEX0FSUkFZX1NVUFBPUlQ9ZnVuY3Rpb24oKXt0cnl7Y29uc3QgTWU9bmV3IFVpbnQ4QXJyYXkoMSksRGU9e2ZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoRGUs'@; put 'VWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihNZSxEZSksNDI9PT1NZS5mb28oKX1jYXRjaHtyZXR1cm4hMX19KCkpfHx2b2lkIDA9PT16fHwiZnVuY3Rpb24iIT10eXBlb2Ygei5lcnJvcnx8ei5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5'@; put 'IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFYucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJh'@; put 'YmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKFYuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihWLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0'@; put 'aGlzLmJ5dGVPZmZzZXR9fSksVi5wb29sU2l6ZT04MTkyLFYuZnJvbT1mdW5jdGlvbihNZSxEZSx6ZSl7cmV0dXJuIEIoTWUsRGUsemUpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YoVi5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihWLFVpbnQ4'@; put 'QXJyYXkpLFYuYWxsb2M9ZnVuY3Rpb24oTWUsRGUsemUpe3JldHVybiB1dD1EZSxNdD16ZSxZKG90PU1lKSxvdDw9MD9qKG90KTp2b2lkIDAhPT11dD8ic3RyaW5nIj09dHlwZW9mIE10P2oob3QpLmZpbGwodXQsTXQpOmoob3QpLmZpbGwodXQpOmoob3QpO3ZhciBvdCx1dCxNdH0sVi5hbGxv'@; put 'Y1Vuc2FmZT1mdW5jdGlvbihNZSl7cmV0dXJuIFgoTWUpfSxWLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihNZSl7cmV0dXJuIFgoTWUpfSxWLmlzQnVmZmVyPWZ1bmN0aW9uKE1lKXtyZXR1cm4gbnVsbCE9TWUmJiEwPT09TWUuX2lzQnVmZmVyJiZNZSE9PVYucHJvdG90eXBlfSxWLmNvbXBh'@; put 'cmU9ZnVuY3Rpb24oTWUsRGUpe2lmKFRlKE1lLFVpbnQ4QXJyYXkpJiYoTWU9Vi5mcm9tKE1lLE1lLm9mZnNldCxNZS5ieXRlTGVuZ3RoKSksVGUoRGUsVWludDhBcnJheSkmJihEZT1WLmZyb20oRGUsRGUub2Zmc2V0LERlLmJ5dGVMZW5ndGgpKSwhVi5pc0J1ZmZlcihNZSl8fCFWLmlzQnVm'@; put 'ZmVyKERlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZihNZT09PURlKXJldHVybiAwO2xldCB6ZT1NZS5sZW5ndGgsb3Q9RGUubGVuZ3RoO2ZvcihsZXQgdXQ9MCxN'@; put 'dD1NYXRoLm1pbih6ZSxvdCk7dXQ8TXQ7Kyt1dClpZihNZVt1dF0hPT1EZVt1dF0pe3plPU1lW3V0XSxvdD1EZVt1dF07YnJlYWt9cmV0dXJuIHplPG90Py0xOm90PHplPzE6MH0sVi5pc0VuY29kaW5nPWZ1bmN0aW9uKE1lKXtzd2l0Y2goU3RyaW5nKE1lKS50b0xvd2VyQ2FzZSgpKXtjYXNl'@; put 'ImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LFYuY29u'@; put 'Y2F0PWZ1bmN0aW9uKE1lLERlKXtpZighQXJyYXkuaXNBcnJheShNZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT1NZS5sZW5ndGgpcmV0dXJuIFYuYWxsb2MoMCk7bGV0IHplO2lmKHZvaWQgMD09PURl'@; put 'KWZvcihEZT0wLHplPTA7emU8TWUubGVuZ3RoOysremUpRGUrPU1lW3plXS5sZW5ndGg7Y29uc3Qgb3Q9Vi5hbGxvY1Vuc2FmZShEZSk7bGV0IHV0PTA7Zm9yKHplPTA7emU8TWUubGVuZ3RoOysremUpe2xldCBNdD1NZVt6ZV07aWYoVGUoTXQsVWludDhBcnJheSkpdXQrTXQubGVuZ3RoPm90'@; put 'Lmxlbmd0aD8oVi5pc0J1ZmZlcihNdCl8fChNdD1WLmZyb20oTXQpKSxNdC5jb3B5KG90LHV0KSk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwob3QsTXQsdXQpO2Vsc2V7aWYoIVYuaXNCdWZmZXIoTXQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJl'@; put 'IGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtNdC5jb3B5KG90LHV0KX11dCs9TXQubGVuZ3RofXJldHVybiBvdH0sVi5ieXRlTGVuZ3RoPXRlLFYucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxWLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXtjb25zdCBNZT10aGlzLmxlbmd0aDtpZihNZSUyIT0w'@; put 'KXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2ZvcihsZXQgRGU9MDtEZTxNZTtEZSs9MilzZSh0aGlzLERlLERlKzEpO3JldHVybiB0aGlzfSxWLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24oKXtjb25zdCBNZT10aGlz'@; put 'Lmxlbmd0aDtpZihNZSU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2ZvcihsZXQgRGU9MDtEZTxNZTtEZSs9NClzZSh0aGlzLERlLERlKzMpLHNlKHRoaXMsRGUrMSxEZSsyKTtyZXR1cm4gdGhpc30sVi5wcm90'@; put 'b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7Y29uc3QgTWU9dGhpcy5sZW5ndGg7aWYoTWUlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IobGV0IERlPTA7RGU8TWU7RGUrPTgpc2UodGhpcyxEZSxEZSs3KSxz'@; put 'ZSh0aGlzLERlKzEsRGUrNiksc2UodGhpcyxEZSsyLERlKzUpLHNlKHRoaXMsRGUrMyxEZSs0KTtyZXR1cm4gdGhpc30sVi5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9Vi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtjb25zdCBNZT10aGlzLmxlbmd0aDtyZXR1cm4gMD09PU1lPyIi'@; put 'OjA9PT1hcmd1bWVudHMubGVuZ3RoP2codGhpcywwLE1lKTpvZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFYucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihNZSl7aWYoIVYuaXNCdWZmZXIoTWUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1'@; put 'cm4gdGhpcz09PU1lfHwwPT09Vi5jb21wYXJlKHRoaXMsTWUpfSxWLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7bGV0IE1lPSIiO2NvbnN0IERlPU8uSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIE1lPXRoaXMudG9TdHJpbmcoImhleCIsMCxEZSkucmVwbGFjZSgvKC57Mn0pL2csIiQx'@; put 'ICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5EZSYmKE1lKz0iIC4uLiAiKSwiPEJ1ZmZlciAiK01lKyI+In0sayYmKFYucHJvdG90eXBlW2tdPVYucHJvdG90eXBlLmluc3BlY3QpLFYucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24oTWUsRGUsemUsb3QsdXQpe2lmKFRlKE1lLFVpbnQ4QXJyYXkp'@; put 'JiYoTWU9Vi5mcm9tKE1lLE1lLm9mZnNldCxNZS5ieXRlTGVuZ3RoKSksIVYuaXNCdWZmZXIoTWUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9m'@; put 'IE1lKTtpZih2b2lkIDA9PT1EZSYmKERlPTApLHZvaWQgMD09PXplJiYoemU9TWU/TWUubGVuZ3RoOjApLHZvaWQgMD09PW90JiYob3Q9MCksdm9pZCAwPT09dXQmJih1dD10aGlzLmxlbmd0aCksRGU8MHx8emU+TWUubGVuZ3RofHxvdDwwfHx1dD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFu'@; put 'Z2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYob3Q+PXV0JiZEZT49emUpcmV0dXJuIDA7aWYob3Q+PXV0KXJldHVybi0xO2lmKERlPj16ZSlyZXR1cm4gMTtpZih0aGlzPT09TWUpcmV0dXJuIDA7bGV0IE10PSh1dD4+Pj0wKS0ob3Q+Pj49MCksSHQ9KHplPj4+PTApLShEZT4+Pj0w'@; put 'KTtjb25zdCBQdD1NYXRoLm1pbihNdCxIdCksb249dGhpcy5zbGljZShvdCx1dCksQ249TWUuc2xpY2UoRGUsemUpO2ZvcihsZXQgVXQ9MDtVdDxQdDsrK1V0KWlmKG9uW1V0XSE9PUNuW1V0XSl7TXQ9b25bVXRdLEh0PUNuW1V0XTticmVha31yZXR1cm4gTXQ8SHQ/LTE6SHQ8TXQ/MTowfSxW'@; put 'LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihNZSxEZSx6ZSl7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YoTWUsRGUsemUpfSxWLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKE1lLERlLHplKXtyZXR1cm4gaGUodGhpcyxNZSxEZSx6ZSwhMCl9LFYucHJvdG90eXBlLmxhc3RJbmRleE9m'@; put 'PWZ1bmN0aW9uKE1lLERlLHplKXtyZXR1cm4gaGUodGhpcyxNZSxEZSx6ZSwhMSl9LFYucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKE1lLERlLHplLG90KXtpZih2b2lkIDA9PT1EZSlvdD0idXRmOCIsemU9dGhpcy5sZW5ndGgsRGU9MDtlbHNlIGlmKHZvaWQgMD09PXplJiYic3RyaW5nIj09'@; put 'dHlwZW9mIERlKW90PURlLHplPXRoaXMubGVuZ3RoLERlPTA7ZWxzZXtpZighaXNGaW5pdGUoRGUpKXRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTtEZT4+Pj0wLGlzRmluaXRl'@; put 'KHplKT8oemU+Pj49MCx2b2lkIDA9PT1vdCYmKG90PSJ1dGY4IikpOihvdD16ZSx6ZT12b2lkIDApfWNvbnN0IHV0PXRoaXMubGVuZ3RoLURlO2lmKCh2b2lkIDA9PT16ZXx8emU+dXQpJiYoemU9dXQpLE1lLmxlbmd0aD4wJiYoemU8MHx8RGU8MCl8fERlPnRoaXMubGVuZ3RoKXRocm93IG5l'@; put 'dyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO290fHwob3Q9InV0ZjgiKTtsZXQgTXQ9ITE7Zm9yKDs7KXN3aXRjaChvdCl7Y2FzZSJoZXgiOnJldHVybiBjZSh0aGlzLE1lLERlLHplKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBH'@; put 'KHRoaXMsTWUsRGUsemUpO2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGIodGhpcyxNZSxEZSx6ZSk7Y2FzZSJiYXNlNjQiOnJldHVybiBEKHRoaXMsTWUsRGUsemUpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxl'@; put 'IjpyZXR1cm4gSCh0aGlzLE1lLERlLHplKTtkZWZhdWx0OmlmKE10KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrb3QpO290PSgiIitvdCkudG9Mb3dlckNhc2UoKSxNdD0hMH19LFYucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZm'@; put 'ZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07Y29uc3QgQz00MDk2O2Z1bmN0aW9uIFMoTWUsRGUsemUpe2xldCBvdD0iIjt6ZT1NYXRoLm1pbihNZS5sZW5ndGgsemUpO2ZvcihsZXQgdXQ9RGU7dXQ8emU7Kyt1dClvdCs9U3RyaW5nLmZy'@; put 'b21DaGFyQ29kZSgxMjcmTWVbdXRdKTtyZXR1cm4gb3R9ZnVuY3Rpb24gdihNZSxEZSx6ZSl7bGV0IG90PSIiO3plPU1hdGgubWluKE1lLmxlbmd0aCx6ZSk7Zm9yKGxldCB1dD1EZTt1dDx6ZTsrK3V0KW90Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKE1lW3V0XSk7cmV0dXJuIG90fWZ1bmN0aW9u'@; put 'IHAoTWUsRGUsemUpe2NvbnN0IG90PU1lLmxlbmd0aDsoIURlfHxEZTwwKSYmKERlPTApLCghemV8fHplPDB8fHplPm90KSYmKHplPW90KTtsZXQgdXQ9IiI7Zm9yKGxldCBNdD1EZTtNdDx6ZTsrK010KXV0Kz1YZVtNZVtNdF1dO3JldHVybiB1dH1mdW5jdGlvbiB3KE1lLERlLHplKXtjb25z'@; put 'dCBvdD1NZS5zbGljZShEZSx6ZSk7bGV0IHV0PSIiO2ZvcihsZXQgTXQ9MDtNdDxvdC5sZW5ndGgtMTtNdCs9Mil1dCs9U3RyaW5nLmZyb21DaGFyQ29kZShvdFtNdF0rMjU2Km90W010KzFdKTtyZXR1cm4gdXR9ZnVuY3Rpb24gSihNZSxEZSx6ZSl7aWYoTWUlMSE9MHx8TWU8MCl0aHJvdyBu'@; put 'ZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoTWUrRGU+emUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBuZShNZSxEZSx6ZSxvdCx1dCxNdCl7aWYoIVYuaXNCdWZmZXIoTWUpKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihEZT51dHx8RGU8TXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHplK290Pk1lLmxlbmd0aCl0aHJvdyBuZXcg'@; put 'UmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gZGUoTWUsRGUsemUsb3QsdXQpe0tlKERlLG90LHV0LE1lLHplLDcpO2xldCBNdD1OdW1iZXIoRGUmQmlnSW50KDQyOTQ5NjcyOTUpKTtNZVt6ZSsrXT1NdCxNdD4+PTgsTWVbemUrK109TXQsTXQ+Pj04LE1lW3plKytd'@; put 'PU10LE10Pj49OCxNZVt6ZSsrXT1NdDtsZXQgSHQ9TnVtYmVyKERlPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7cmV0dXJuIE1lW3plKytdPUh0LEh0Pj49OCxNZVt6ZSsrXT1IdCxIdD4+PTgsTWVbemUrK109SHQsSHQ+Pj04LE1lW3plKytdPUh0LHplfWZ1bmN0aW9uIGZlKE1l'@; put 'LERlLHplLG90LHV0KXtLZShEZSxvdCx1dCxNZSx6ZSw3KTtsZXQgTXQ9TnVtYmVyKERlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7TWVbemUrN109TXQsTXQ+Pj04LE1lW3plKzZdPU10LE10Pj49OCxNZVt6ZSs1XT1NdCxNdD4+PTgsTWVbemUrNF09TXQ7bGV0IEh0PU51bWJlcihEZT4+QmlnSW50'@; put 'KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiBNZVt6ZSszXT1IdCxIdD4+PTgsTWVbemUrMl09SHQsSHQ+Pj04LE1lW3plKzFdPUh0LEh0Pj49OCxNZVt6ZV09SHQsemUrOH1mdW5jdGlvbiB4ZShNZSxEZSx6ZSxvdCx1dCxNdCl7aWYoemUrb3Q+TWUubGVuZ3RoKXRocm93IG5ldyBS'@; put 'YW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZih6ZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBMZShNZSxEZSx6ZSxvdCx1dCl7cmV0dXJuIERlPStEZSx6ZT4+Pj0wLHV0fHx4ZShNZSwwLHplLDQpLEkud3JpdGUoTWUsRGUs'@; put 'emUsb3QsMjMsNCksemUrNH1mdW5jdGlvbiBGZShNZSxEZSx6ZSxvdCx1dCl7cmV0dXJuIERlPStEZSx6ZT4+Pj0wLHV0fHx4ZShNZSwwLHplLDgpLEkud3JpdGUoTWUsRGUsemUsb3QsNTIsOCksemUrOH1WLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihNZSxEZSl7Y29uc3QgemU9dGhpcy5s'@; put 'ZW5ndGg7KE1lPX5+TWUpPDA/KE1lKz16ZSk8MCYmKE1lPTApOk1lPnplJiYoTWU9emUpLChEZT12b2lkIDA9PT1EZT96ZTp+fkRlKTwwPyhEZSs9emUpPDAmJihEZT0wKTpEZT56ZSYmKERlPXplKSxEZTxNZSYmKERlPU1lKTtjb25zdCBvdD10aGlzLnN1YmFycmF5KE1lLERlKTtyZXR1cm4g'@; put 'T2JqZWN0LnNldFByb3RvdHlwZU9mKG90LFYucHJvdG90eXBlKSxvdH0sVi5wcm90b3R5cGUucmVhZFVpbnRMRT1WLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKE1lLERlLHplKXtNZT4+Pj0wLERlPj4+PTAsemV8fEooTWUsRGUsdGhpcy5sZW5ndGgpO2xldCBvdD10aGlzW01lXSx1'@; put 'dD0xLE10PTA7Zm9yKDsrK010PERlJiYodXQqPTI1Nik7KW90Kz10aGlzW01lK010XSp1dDtyZXR1cm4gb3R9LFYucHJvdG90eXBlLnJlYWRVaW50QkU9Vi5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbihNZSxEZSx6ZSl7TWU+Pj49MCxEZT4+Pj0wLHplfHxKKE1lLERlLHRoaXMubGVu'@; put 'Z3RoKTtsZXQgb3Q9dGhpc1tNZSstLURlXSx1dD0xO2Zvcig7RGU+MCYmKHV0Kj0yNTYpOylvdCs9dGhpc1tNZSstLURlXSp1dDtyZXR1cm4gb3R9LFYucHJvdG90eXBlLnJlYWRVaW50OD1WLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24oTWUsRGUpe3JldHVybiBNZT4+Pj0wLERlfHxK'@; put 'KE1lLDEsdGhpcy5sZW5ndGgpLHRoaXNbTWVdfSxWLnByb3RvdHlwZS5yZWFkVWludDE2TEU9Vi5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKE1lLERlKXtyZXR1cm4gTWU+Pj49MCxEZXx8SihNZSwyLHRoaXMubGVuZ3RoKSx0aGlzW01lXXx0aGlzW01lKzFdPDw4fSxWLnByb3Rv'@; put 'dHlwZS5yZWFkVWludDE2QkU9Vi5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKE1lLERlKXtyZXR1cm4gTWU+Pj49MCxEZXx8SihNZSwyLHRoaXMubGVuZ3RoKSx0aGlzW01lXTw8OHx0aGlzW01lKzFdfSxWLnByb3RvdHlwZS5yZWFkVWludDMyTEU9Vi5wcm90b3R5cGUucmVhZFVJ'@; put 'bnQzMkxFPWZ1bmN0aW9uKE1lLERlKXtyZXR1cm4gTWU+Pj49MCxEZXx8SihNZSw0LHRoaXMubGVuZ3RoKSwodGhpc1tNZV18dGhpc1tNZSsxXTw8OHx0aGlzW01lKzJdPDwxNikrMTY3NzcyMTYqdGhpc1tNZSszXX0sVi5wcm90b3R5cGUucmVhZFVpbnQzMkJFPVYucHJvdG90eXBlLnJlYWRV'@; put 'SW50MzJCRT1mdW5jdGlvbihNZSxEZSl7cmV0dXJuIE1lPj4+PTAsRGV8fEooTWUsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1tNZV0rKHRoaXNbTWUrMV08PDE2fHRoaXNbTWUrMl08PDh8dGhpc1tNZSszXSl9LFYucHJvdG90eXBlLnJlYWRCaWdVSW50NjRMRT1VZShmdW5jdGlvbihN'@; put 'ZSl7WWUoTWU+Pj49MCwib2Zmc2V0Iik7Y29uc3QgRGU9dGhpc1tNZV0semU9dGhpc1tNZSs3XTt2b2lkIDAhPT1EZSYmdm9pZCAwIT09emV8fFFlKE1lLHRoaXMubGVuZ3RoLTgpO2NvbnN0IG90PURlKzI1Nip0aGlzWysrTWVdKzY1NTM2KnRoaXNbKytNZV0rdGhpc1srK01lXSoyKioyNCx1'@; put 'dD10aGlzWysrTWVdKzI1Nip0aGlzWysrTWVdKzY1NTM2KnRoaXNbKytNZV0remUqMioqMjQ7cmV0dXJuIEJpZ0ludChvdCkrKEJpZ0ludCh1dCk8PEJpZ0ludCgzMikpfSksVi5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NEJFPVVlKGZ1bmN0aW9uKE1lKXtZZShNZT4+Pj0wLCJvZmZzZXQiKTtj'@; put 'b25zdCBEZT10aGlzW01lXSx6ZT10aGlzW01lKzddO3ZvaWQgMCE9PURlJiZ2b2lkIDAhPT16ZXx8UWUoTWUsdGhpcy5sZW5ndGgtOCk7Y29uc3Qgb3Q9RGUqMioqMjQrNjU1MzYqdGhpc1srK01lXSsyNTYqdGhpc1srK01lXSt0aGlzWysrTWVdLHV0PXRoaXNbKytNZV0qMioqMjQrNjU1MzYq'@; put 'dGhpc1srK01lXSsyNTYqdGhpc1srK01lXSt6ZTtyZXR1cm4oQmlnSW50KG90KTw8QmlnSW50KDMyKSkrQmlnSW50KHV0KX0pLFYucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbihNZSxEZSx6ZSl7TWU+Pj49MCxEZT4+Pj0wLHplfHxKKE1lLERlLHRoaXMubGVuZ3RoKTtsZXQgb3Q9dGhp'@; put 'c1tNZV0sdXQ9MSxNdD0wO2Zvcig7KytNdDxEZSYmKHV0Kj0yNTYpOylvdCs9dGhpc1tNZStNdF0qdXQ7cmV0dXJuIHV0Kj0xMjgsb3Q+PXV0JiYob3QtPU1hdGgucG93KDIsOCpEZSkpLG90fSxWLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24oTWUsRGUsemUpe01lPj4+PTAsRGU+Pj49'@; put 'MCx6ZXx8SihNZSxEZSx0aGlzLmxlbmd0aCk7bGV0IG90PURlLHV0PTEsTXQ9dGhpc1tNZSstLW90XTtmb3IoO290PjAmJih1dCo9MjU2KTspTXQrPXRoaXNbTWUrLS1vdF0qdXQ7cmV0dXJuIHV0Kj0xMjgsTXQ+PXV0JiYoTXQtPU1hdGgucG93KDIsOCpEZSkpLE10fSxWLnByb3RvdHlwZS5y'@; put 'ZWFkSW50OD1mdW5jdGlvbihNZSxEZSl7cmV0dXJuIE1lPj4+PTAsRGV8fEooTWUsMSx0aGlzLmxlbmd0aCksMTI4JnRoaXNbTWVdPy0xKigyNTUtdGhpc1tNZV0rMSk6dGhpc1tNZV19LFYucHJvdG90eXBlLnJlYWRJbnQxNkxFPWZ1bmN0aW9uKE1lLERlKXtNZT4+Pj0wLERlfHxKKE1lLDIs'@; put 'dGhpcy5sZW5ndGgpO2NvbnN0IHplPXRoaXNbTWVdfHRoaXNbTWUrMV08PDg7cmV0dXJuIDMyNzY4JnplPzQyOTQ5MDE3NjB8emU6emV9LFYucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKE1lLERlKXtNZT4+Pj0wLERlfHxKKE1lLDIsdGhpcy5sZW5ndGgpO2NvbnN0IHplPXRoaXNb'@; put 'TWUrMV18dGhpc1tNZV08PDg7cmV0dXJuIDMyNzY4JnplPzQyOTQ5MDE3NjB8emU6emV9LFYucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKE1lLERlKXtyZXR1cm4gTWU+Pj49MCxEZXx8SihNZSw0LHRoaXMubGVuZ3RoKSx0aGlzW01lXXx0aGlzW01lKzFdPDw4fHRoaXNbTWUrMl08'@; put 'PDE2fHRoaXNbTWUrM108PDI0fSxWLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbihNZSxEZSl7cmV0dXJuIE1lPj4+PTAsRGV8fEooTWUsNCx0aGlzLmxlbmd0aCksdGhpc1tNZV08PDI0fHRoaXNbTWUrMV08PDE2fHRoaXNbTWUrMl08PDh8dGhpc1tNZSszXX0sVi5wcm90b3R5cGUu'@; put 'cmVhZEJpZ0ludDY0TEU9VWUoZnVuY3Rpb24oTWUpe1llKE1lPj4+PTAsIm9mZnNldCIpO2NvbnN0IERlPXRoaXNbTWVdLHplPXRoaXNbTWUrN107cmV0dXJuIHZvaWQgMCE9PURlJiZ2b2lkIDAhPT16ZXx8UWUoTWUsdGhpcy5sZW5ndGgtOCksKEJpZ0ludCh0aGlzW01lKzRdKzI1Nip0aGlz'@; put 'W01lKzVdKzY1NTM2KnRoaXNbTWUrNl0rKHplPDwyNCkpPDxCaWdJbnQoMzIpKStCaWdJbnQoRGUrMjU2KnRoaXNbKytNZV0rNjU1MzYqdGhpc1srK01lXSsxNjc3NzIxNip0aGlzWysrTWVdKX0pLFYucHJvdG90eXBlLnJlYWRCaWdJbnQ2NEJFPVVlKGZ1bmN0aW9uKE1lKXtZZShNZT4+Pj0w'@; put 'LCJvZmZzZXQiKTtjb25zdCBEZT10aGlzW01lXSx6ZT10aGlzW01lKzddO3ZvaWQgMCE9PURlJiZ2b2lkIDAhPT16ZXx8UWUoTWUsdGhpcy5sZW5ndGgtOCk7Y29uc3Qgb3Q9KERlPDwyNCkrNjU1MzYqdGhpc1srK01lXSsyNTYqdGhpc1srK01lXSt0aGlzWysrTWVdO3JldHVybihCaWdJbnQo'@; put 'b3QpPDxCaWdJbnQoMzIpKStCaWdJbnQoMTY3NzcyMTYqdGhpc1srK01lXSs2NTUzNip0aGlzWysrTWVdKzI1Nip0aGlzWysrTWVdK3plKX0pLFYucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKE1lLERlKXtyZXR1cm4gTWU+Pj49MCxEZXx8SihNZSw0LHRoaXMubGVuZ3RoKSxJLnJl'@; put 'YWQodGhpcyxNZSwhMCwyMyw0KX0sVi5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24oTWUsRGUpe3JldHVybiBNZT4+Pj0wLERlfHxKKE1lLDQsdGhpcy5sZW5ndGgpLEkucmVhZCh0aGlzLE1lLCExLDIzLDQpfSxWLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24oTWUsRGUp'@; put 'e3JldHVybiBNZT4+Pj0wLERlfHxKKE1lLDgsdGhpcy5sZW5ndGgpLEkucmVhZCh0aGlzLE1lLCEwLDUyLDgpfSxWLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24oTWUsRGUpe3JldHVybiBNZT4+Pj0wLERlfHxKKE1lLDgsdGhpcy5sZW5ndGgpLEkucmVhZCh0aGlzLE1lLCExLDUy'@; put 'LDgpfSxWLnByb3RvdHlwZS53cml0ZVVpbnRMRT1WLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbihNZSxEZSx6ZSxvdCl7TWU9K01lLERlPj4+PTAsemU+Pj49MCwhb3QmJm5lKHRoaXMsTWUsRGUsemUsTWF0aC5wb3coMiw4KnplKS0xLDApO2xldCB1dD0xLE10PTA7Zm9yKHRoaXNb'@; put 'RGVdPTI1NSZNZTsrK010PHplJiYodXQqPTI1Nik7KXRoaXNbRGUrTXRdPU1lL3V0JjI1NTtyZXR1cm4gRGUremV9LFYucHJvdG90eXBlLndyaXRlVWludEJFPVYucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKE1lLERlLHplLG90KXtNZT0rTWUsRGU+Pj49MCx6ZT4+Pj0wLCFvdCYm'@; put 'bmUodGhpcyxNZSxEZSx6ZSxNYXRoLnBvdygyLDgqemUpLTEsMCk7bGV0IHV0PXplLTEsTXQ9MTtmb3IodGhpc1tEZSt1dF09MjU1Jk1lOy0tdXQ+PTAmJihNdCo9MjU2KTspdGhpc1tEZSt1dF09TWUvTXQmMjU1O3JldHVybiBEZSt6ZX0sVi5wcm90b3R5cGUud3JpdGVVaW50OD1WLnByb3Rv'@; put 'dHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKE1lLERlLHplKXtyZXR1cm4gTWU9K01lLERlPj4+PTAsemV8fG5lKHRoaXMsTWUsRGUsMSwyNTUsMCksdGhpc1tEZV09MjU1Jk1lLERlKzF9LFYucHJvdG90eXBlLndyaXRlVWludDE2TEU9Vi5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlv'@; put 'bihNZSxEZSx6ZSl7cmV0dXJuIE1lPStNZSxEZT4+Pj0wLHplfHxuZSh0aGlzLE1lLERlLDIsNjU1MzUsMCksdGhpc1tEZV09MjU1Jk1lLHRoaXNbRGUrMV09TWU+Pj44LERlKzJ9LFYucHJvdG90eXBlLndyaXRlVWludDE2QkU9Vi5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbihN'@; put 'ZSxEZSx6ZSl7cmV0dXJuIE1lPStNZSxEZT4+Pj0wLHplfHxuZSh0aGlzLE1lLERlLDIsNjU1MzUsMCksdGhpc1tEZV09TWU+Pj44LHRoaXNbRGUrMV09MjU1Jk1lLERlKzJ9LFYucHJvdG90eXBlLndyaXRlVWludDMyTEU9Vi5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihNZSxE'@; put 'ZSx6ZSl7cmV0dXJuIE1lPStNZSxEZT4+Pj0wLHplfHxuZSh0aGlzLE1lLERlLDQsNDI5NDk2NzI5NSwwKSx0aGlzW0RlKzNdPU1lPj4+MjQsdGhpc1tEZSsyXT1NZT4+PjE2LHRoaXNbRGUrMV09TWU+Pj44LHRoaXNbRGVdPTI1NSZNZSxEZSs0fSxWLnByb3RvdHlwZS53cml0ZVVpbnQzMkJF'@; put 'PVYucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oTWUsRGUsemUpe3JldHVybiBNZT0rTWUsRGU+Pj49MCx6ZXx8bmUodGhpcyxNZSxEZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tEZV09TWU+Pj4yNCx0aGlzW0RlKzFdPU1lPj4+MTYsdGhpc1tEZSsyXT1NZT4+PjgsdGhpc1tEZSsz'@; put 'XT0yNTUmTWUsRGUrNH0sVi5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRMRT1VZShmdW5jdGlvbihNZSxEZT0wKXtyZXR1cm4gZGUodGhpcyxNZSxEZSxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KSxWLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NEJFPVVlKGZ1bmN0'@; put 'aW9uKE1lLERlPTApe3JldHVybiBmZSh0aGlzLE1lLERlLEJpZ0ludCgwKSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pLFYucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24oTWUsRGUsemUsb3Qpe2lmKE1lPStNZSxEZT4+Pj0wLCFvdCl7Y29uc3QgUHQ9TWF0aC5wb3coMiw4'@; put 'KnplLTEpO25lKHRoaXMsTWUsRGUsemUsUHQtMSwtUHQpfWxldCB1dD0wLE10PTEsSHQ9MDtmb3IodGhpc1tEZV09MjU1Jk1lOysrdXQ8emUmJihNdCo9MjU2KTspTWU8MCYmMD09PUh0JiYwIT09dGhpc1tEZSt1dC0xXSYmKEh0PTEpLHRoaXNbRGUrdXRdPShNZS9NdD4+MCktSHQmMjU1O3Jl'@; put 'dHVybiBEZSt6ZX0sVi5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihNZSxEZSx6ZSxvdCl7aWYoTWU9K01lLERlPj4+PTAsIW90KXtjb25zdCBQdD1NYXRoLnBvdygyLDgqemUtMSk7bmUodGhpcyxNZSxEZSx6ZSxQdC0xLC1QdCl9bGV0IHV0PXplLTEsTXQ9MSxIdD0wO2Zvcih0aGlz'@; put 'W0RlK3V0XT0yNTUmTWU7LS11dD49MCYmKE10Kj0yNTYpOylNZTwwJiYwPT09SHQmJjAhPT10aGlzW0RlK3V0KzFdJiYoSHQ9MSksdGhpc1tEZSt1dF09KE1lL010Pj4wKS1IdCYyNTU7cmV0dXJuIERlK3plfSxWLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24oTWUsRGUsemUpe3JldHVy'@; put 'biBNZT0rTWUsRGU+Pj49MCx6ZXx8bmUodGhpcyxNZSxEZSwxLDEyNywtMTI4KSxNZTwwJiYoTWU9MjU1K01lKzEpLHRoaXNbRGVdPTI1NSZNZSxEZSsxfSxWLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24oTWUsRGUsemUpe3JldHVybiBNZT0rTWUsRGU+Pj49MCx6ZXx8bmUodGhp'@; put 'cyxNZSxEZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tEZV09MjU1Jk1lLHRoaXNbRGUrMV09TWU+Pj44LERlKzJ9LFYucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbihNZSxEZSx6ZSl7cmV0dXJuIE1lPStNZSxEZT4+Pj0wLHplfHxuZSh0aGlzLE1lLERlLDIsMzI3NjcsLTMyNzY4KSx0'@; put 'aGlzW0RlXT1NZT4+PjgsdGhpc1tEZSsxXT0yNTUmTWUsRGUrMn0sVi5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKE1lLERlLHplKXtyZXR1cm4gTWU9K01lLERlPj4+PTAsemV8fG5lKHRoaXMsTWUsRGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW0RlXT0yNTUmTWUs'@; put 'dGhpc1tEZSsxXT1NZT4+PjgsdGhpc1tEZSsyXT1NZT4+PjE2LHRoaXNbRGUrM109TWU+Pj4yNCxEZSs0fSxWLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24oTWUsRGUsemUpe3JldHVybiBNZT0rTWUsRGU+Pj49MCx6ZXx8bmUodGhpcyxNZSxEZSw0LDIxNDc0ODM2NDcsLTIxNDc0'@; put 'ODM2NDgpLE1lPDAmJihNZT00Mjk0OTY3Mjk1K01lKzEpLHRoaXNbRGVdPU1lPj4+MjQsdGhpc1tEZSsxXT1NZT4+PjE2LHRoaXNbRGUrMl09TWU+Pj44LHRoaXNbRGUrM109MjU1Jk1lLERlKzR9LFYucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1VZShmdW5jdGlvbihNZSxEZT0wKXtyZXR1'@; put 'cm4gZGUodGhpcyxNZSxEZSwtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pLFYucHJvdG90eXBlLndyaXRlQmlnSW50NjRCRT1VZShmdW5jdGlvbihNZSxEZT0wKXtyZXR1cm4gZmUodGhpcyxNZSxEZSwtQmlnSW50KCIweDgwMDAw'@; put 'MDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pLFYucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbihNZSxEZSx6ZSl7cmV0dXJuIExlKHRoaXMsTWUsRGUsITAsemUpfSxWLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24oTWUsRGUsemUpe3Jl'@; put 'dHVybiBMZSh0aGlzLE1lLERlLCExLHplKX0sVi5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbihNZSxEZSx6ZSl7cmV0dXJuIEZlKHRoaXMsTWUsRGUsITAsemUpfSxWLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKE1lLERlLHplKXtyZXR1cm4gRmUodGhpcyxNZSxE'@; put 'ZSwhMSx6ZSl9LFYucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTWUsRGUsemUsb3Qpe2lmKCFWLmlzQnVmZmVyKE1lKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZih6ZXx8KHplPTApLG90fHwwPT09b3R8fChvdD10aGlzLmxlbmd0aCksRGU+'@; put 'PU1lLmxlbmd0aCYmKERlPU1lLmxlbmd0aCksRGV8fChEZT0wKSxvdD4wJiZvdDx6ZSYmKG90PXplKSxvdD09PXplfHwwPT09TWUubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoRGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIp'@; put 'O2lmKHplPDB8fHplPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYob3Q8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtvdD50aGlzLmxlbmd0aCYmKG90PXRoaXMubGVuZ3RoKSxNZS5sZW5n'@; put 'dGgtRGU8b3QtemUmJihvdD1NZS5sZW5ndGgtRGUremUpO2NvbnN0IHV0PW90LXplO3JldHVybiB0aGlzPT09TWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluP3RoaXMuY29weVdpdGhpbihEZSx6ZSxvdCk6VWludDhBcnJheS5wcm90b3R5cGUu'@; put 'c2V0LmNhbGwoTWUsdGhpcy5zdWJhcnJheSh6ZSxvdCksRGUpLHV0fSxWLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKE1lLERlLHplLG90KXtpZigic3RyaW5nIj09dHlwZW9mIE1lKXtpZigic3RyaW5nIj09dHlwZW9mIERlPyhvdD1EZSxEZT0wLHplPXRoaXMubGVuZ3RoKToic3RyaW5nIj09'@; put 'dHlwZW9mIHplJiYob3Q9emUsemU9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PW90JiYic3RyaW5nIiE9dHlwZW9mIG90KXRocm93IG5ldyBUeXBlRXJyb3IoImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmciKTtpZigic3RyaW5nIj09dHlwZW9mIG90JiYhVi5pc0VuY29kaW5nKG90KSl0aHJvdyBu'@; put 'ZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK290KTtpZigxPT09TWUubGVuZ3RoKXtjb25zdCBNdD1NZS5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1vdCYmTXQ8MTI4fHwibGF0aW4xIj09PW90KSYmKE1lPU10KX19ZWxzZSJudW1iZXIiPT10eXBlb2YgTWU/TWUmPTI1NToiYm9v'@; put 'bGVhbiI9PXR5cGVvZiBNZSYmKE1lPU51bWJlcihNZSkpO2lmKERlPDB8fHRoaXMubGVuZ3RoPERlfHx0aGlzLmxlbmd0aDx6ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoemU8PURlKXJldHVybiB0aGlzO2xldCB1dDtpZihEZT4+Pj0wLHplPXZvaWQg'@; put 'MD09PXplP3RoaXMubGVuZ3RoOnplPj4+MCxNZXx8KE1lPTApLCJudW1iZXIiPT10eXBlb2YgTWUpZm9yKHV0PURlO3V0PHplOysrdXQpdGhpc1t1dF09TWU7ZWxzZXtjb25zdCBNdD1WLmlzQnVmZmVyKE1lKT9NZTpWLmZyb20oTWUsb3QpLEh0PU10Lmxlbmd0aDtpZigwPT09SHQpdGhyb3cg'@; put 'bmV3IFR5cGVFcnJvcignVGhlIHZhbHVlICInK01lKyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3IodXQ9MDt1dDx6ZS1EZTsrK3V0KXRoaXNbdXQrRGVdPU10W3V0JUh0XX1yZXR1cm4gdGhpc307Y29uc3QgT2U9e307ZnVuY3Rpb24gamUoTWUsRGUsemUpe09lW01l'@; put 'XT1jbGFzcyBleHRlbmRzIHple2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibWVzc2FnZSIse3ZhbHVlOkRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0aGlzLm5hbWU9YCR7dGhpcy5uYW1lfSBb'@; put 'JHtNZX1dYCxkZWxldGUgdGhpcy5uYW1lfWdldCBjb2RlKCl7cmV0dXJuIE1lfXNldCBjb2RlKG90KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY29kZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm90LHdyaXRhYmxlOiEwfSl9dG9TdHJpbmcoKXtyZXR1cm5g'@; put 'JHt0aGlzLm5hbWV9IFske01lfV06ICR7dGhpcy5tZXNzYWdlfWB9fX1mdW5jdGlvbiBXZShNZSl7bGV0IERlPSIiLHplPU1lLmxlbmd0aDtjb25zdCBvdD0iLSI9PT1NZVswXT8xOjA7Zm9yKDt6ZT49b3QrNDt6ZS09MylEZT1gXyR7TWUuc2xpY2UoemUtMyx6ZSl9JHtEZX1gO3JldHVybmAk'@; put 'e01lLnNsaWNlKDAsemUpfSR7RGV9YH1mdW5jdGlvbiBLZShNZSxEZSx6ZSxvdCx1dCxNdCl7aWYoTWU+emV8fE1lPERlKXtjb25zdCBIdD0iYmlnaW50Ij09dHlwZW9mIERlPyJuIjoiIjtsZXQgUHQ7dGhyb3cgUHQ9TXQ+Mz8wPT09RGV8fERlPT09QmlnSW50KDApP2A+PSAwJHtIdH0gYW5k'@; put 'IDwgMiR7SHR9ICoqICR7OCooTXQrMSl9JHtIdH1gOmA+PSAtKDIke0h0fSAqKiAkezgqKE10KzEpLTF9JHtIdH0pIGFuZCA8IDIgKiogJHs4KihNdCsxKS0xfSR7SHR9YDpgPj0gJHtEZX0ke0h0fSBhbmQgPD0gJHt6ZX0ke0h0fWAsbmV3IE9lLkVSUl9PVVRfT0ZfUkFOR0UoInZhbHVlIixQ'@; put 'dCxNZSl9dmFyIEh0LFB0LG9uO0h0PW90LG9uPU10LFllKFB0PXV0LCJvZmZzZXQiKSx2b2lkIDAhPT1IdFtQdF0mJnZvaWQgMCE9PUh0W1B0K29uXXx8UWUoUHQsSHQubGVuZ3RoLShvbisxKSl9ZnVuY3Rpb24gWWUoTWUsRGUpe2lmKCJudW1iZXIiIT10eXBlb2YgTWUpdGhyb3cgbmV3IE9l'@; put 'LkVSUl9JTlZBTElEX0FSR19UWVBFKERlLCJudW1iZXIiLE1lKX1mdW5jdGlvbiBRZShNZSxEZSx6ZSl7dGhyb3cgTWF0aC5mbG9vcihNZSkhPT1NZT8oWWUoTWUsemUpLG5ldyBPZS5FUlJfT1VUX09GX1JBTkdFKHplfHwib2Zmc2V0IiwiYW4gaW50ZWdlciIsTWUpKTpEZTwwP25ldyBPZS5F'@; put 'UlJfQlVGRkVSX09VVF9PRl9CT1VORFM6bmV3IE9lLkVSUl9PVVRfT0ZfUkFOR0UoemV8fCJvZmZzZXQiLGA+PSAke3plPzE6MH0gYW5kIDw9ICR7RGV9YCxNZSl9amUoIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsZnVuY3Rpb24oTWUpe3JldHVybiBNZT9gJHtNZX0gaXMgb3V0c2lkZSBv'@; put 'ZiBidWZmZXIgYm91bmRzYDoiQXR0ZW1wdCB0byBhY2Nlc3MgbWVtb3J5IG91dHNpZGUgYnVmZmVyIGJvdW5kcyJ9LFJhbmdlRXJyb3IpLGplKCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZnVuY3Rpb24oTWUsRGUpe3JldHVybmBUaGUgIiR7TWV9IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUg'@; put 'bnVtYmVyLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIERlfWB9LFR5cGVFcnJvciksamUoIkVSUl9PVVRfT0ZfUkFOR0UiLGZ1bmN0aW9uKE1lLERlLHplKXtsZXQgb3Q9YFRoZSB2YWx1ZSBvZiAiJHtNZX0iIGlzIG91dCBvZiByYW5nZS5gLHV0PXplO3JldHVybiBOdW1iZXIuaXNJbnRlZ2Vy'@; put 'KHplKSYmTWF0aC5hYnMoemUpPjQyOTQ5NjcyOTY/dXQ9V2UoU3RyaW5nKHplKSk6ImJpZ2ludCI9PXR5cGVvZiB6ZSYmKHV0PVN0cmluZyh6ZSksKHplPkJpZ0ludCgyKSoqQmlnSW50KDMyKXx8emU8LShCaWdJbnQoMikqKkJpZ0ludCgzMikpKSYmKHV0PVdlKHV0KSksdXQrPSJuIiksb3Qr'@; put 'PWAgSXQgbXVzdCBiZSAke0RlfS4gUmVjZWl2ZWQgJHt1dH1gLG90fSxSYW5nZUVycm9yKTtjb25zdCBsdD0vW14rLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIFBlKE1lLERlKXtsZXQgemU7RGU9RGV8fDEvMDtjb25zdCBvdD1NZS5sZW5ndGg7bGV0IHV0PW51bGw7Y29uc3QgTXQ9W107Zm9y'@; put 'KGxldCBIdD0wO0h0PG90OysrSHQpe2lmKHplPU1lLmNoYXJDb2RlQXQoSHQpLHplPjU1Mjk1JiZ6ZTw1NzM0NCl7aWYoIXV0KXtpZih6ZT41NjMxOSl7KERlLT0zKT4tMSYmTXQucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYoSHQrMT09PW90KXsoRGUtPTMpPi0xJiZNdC5wdXNoKDIz'@; put 'OSwxOTEsMTg5KTtjb250aW51ZX11dD16ZTtjb250aW51ZX1pZih6ZTw1NjMyMCl7KERlLT0zKT4tMSYmTXQucHVzaCgyMzksMTkxLDE4OSksdXQ9emU7Y29udGludWV9emU9NjU1MzYrKHV0LTU1Mjk2PDwxMHx6ZS01NjMyMCl9ZWxzZSB1dCYmKERlLT0zKT4tMSYmTXQucHVzaCgyMzksMTkx'@; put 'LDE4OSk7aWYodXQ9bnVsbCx6ZTwxMjgpe2lmKChEZS09MSk8MClicmVhaztNdC5wdXNoKHplKX1lbHNlIGlmKHplPDIwNDgpe2lmKChEZS09Mik8MClicmVhaztNdC5wdXNoKHplPj42fDE5Miw2MyZ6ZXwxMjgpfWVsc2UgaWYoemU8NjU1MzYpe2lmKChEZS09Myk8MClicmVhaztNdC5wdXNo'@; put 'KHplPj4xMnwyMjQsemU+PjYmNjN8MTI4LDYzJnplfDEyOCl9ZWxzZXtpZighKHplPDExMTQxMTIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iik7aWYoKERlLT00KTwwKWJyZWFrO010LnB1c2goemU+PjE4fDI0MCx6ZT4+MTImNjN8MTI4LHplPj42JjYzfDEyOCw2MyZ6'@; put 'ZXwxMjgpfX1yZXR1cm4gTXR9ZnVuY3Rpb24gYmUoTWUpe3JldHVybiBLLnRvQnl0ZUFycmF5KGZ1bmN0aW9uKERlKXtpZigoRGU9KERlPURlLnNwbGl0KCI9IilbMF0pLnRyaW0oKS5yZXBsYWNlKGx0LCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDtEZS5sZW5ndGglNCE9MDspRGUrPSI9'@; put 'IjtyZXR1cm4gRGV9KE1lKSl9ZnVuY3Rpb24gQWUoTWUsRGUsemUsb3Qpe2xldCB1dDtmb3IodXQ9MDt1dDxvdCYmISh1dCt6ZT49RGUubGVuZ3RofHx1dD49TWUubGVuZ3RoKTsrK3V0KURlW3V0K3plXT1NZVt1dF07cmV0dXJuIHV0fWZ1bmN0aW9uIFRlKE1lLERlKXtyZXR1cm4gTWUgaW5z'@; put 'dGFuY2VvZiBEZXx8bnVsbCE9TWUmJm51bGwhPU1lLmNvbnN0cnVjdG9yJiZudWxsIT1NZS5jb25zdHJ1Y3Rvci5uYW1lJiZNZS5jb25zdHJ1Y3Rvci5uYW1lPT09RGUubmFtZX1mdW5jdGlvbiBxZShNZSl7cmV0dXJuIE1lIT1NZX1jb25zdCBYZT1mdW5jdGlvbigpe2NvbnN0IE1lPSIwMTIz'@; put 'NDU2Nzg5YWJjZGVmIixEZT1uZXcgQXJyYXkoMjU2KTtmb3IobGV0IHplPTA7emU8MTY7Kyt6ZSl7Y29uc3Qgb3Q9MTYqemU7Zm9yKGxldCB1dD0wO3V0PDE2OysrdXQpRGVbb3QrdXRdPU1lW3plXStNZVt1dF19cmV0dXJuIERlfSgpO2Z1bmN0aW9uIFVlKE1lKXtyZXR1cm4gdHlwZW9mIEJp'@; put 'Z0ludD4idSI/aHQ6TWV9ZnVuY3Rpb24gaHQoKXt0aHJvdyBuZXcgRXJyb3IoIkJpZ0ludCBub3Qgc3VwcG9ydGVkIil9fSwxOTI0OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9UigyMTApLEs9Uig1NTU5KSxJPUsoeigiU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mIikpO00uZXhwb3J0'@; put 'cz1mdW5jdGlvbihrLEUpe3ZhciBqPXooaywhIUUpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBqJiZJKGssIi5wcm90b3R5cGUuIik+LTE/SyhqKTpqfX0sNTU1OTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoODYxMiksSz1SKDIxMCksST1LKCIlRnVuY3Rpb24ucHJvdG90eXBl'@; put 'LmFwcGx5JSIpLGs9SygiJUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsJSIpLEU9SygiJVJlZmxlY3QuYXBwbHklIiwhMCl8fHouY2FsbChrLEkpLGo9SygiJU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IlIiwhMCksVj1LKCIlT2JqZWN0LmRlZmluZVByb3BlcnR5JSIsITApLEI9Sygi'@; put 'JU1hdGgubWF4JSIpO2lmKFYpdHJ5e1Yoe30sImEiLHt2YWx1ZToxfSl9Y2F0Y2h7Vj1udWxsfU0uZXhwb3J0cz1mdW5jdGlvbihYKXt2YXIgVT1FKHosayxhcmd1bWVudHMpO3JldHVybiBqJiZWJiZqKFUsImxlbmd0aCIpLmNvbmZpZ3VyYWJsZSYmVihVLCJsZW5ndGgiLHt2YWx1ZToxK0Io'@; put 'MCxYLmxlbmd0aC0oYXJndW1lbnRzLmxlbmd0aC0xKSl9KSxVfTt2YXIgWT1mdW5jdGlvbigpe3JldHVybiBFKHosSSxhcmd1bWVudHMpfTtWP1YoTS5leHBvcnRzLCJhcHBseSIse3ZhbHVlOll9KTpNLmV4cG9ydHMuYXBwbHk9WX0sMTAyNzooTSxPLFIpPT57dmFyIHo9Uig5NTA5KS5CdWZm'@; put 'ZXIsSz1SKDI4MzApLlRyYW5zZm9ybSxJPVIoMjU1MykuU3RyaW5nRGVjb2RlcjtmdW5jdGlvbiBrKEUpe0suY2FsbCh0aGlzKSx0aGlzLmhhc2hNb2RlPSJzdHJpbmciPT10eXBlb2YgRSx0aGlzLmhhc2hNb2RlP3RoaXNbRV09dGhpcy5fZmluYWxPckRpZ2VzdDp0aGlzLmZpbmFsPXRoaXMu'@; put 'X2ZpbmFsT3JEaWdlc3QsdGhpcy5fZmluYWwmJih0aGlzLl9fZmluYWw9dGhpcy5fZmluYWwsdGhpcy5fZmluYWw9bnVsbCksdGhpcy5fZGVjb2Rlcj1udWxsLHRoaXMuX2VuY29kaW5nPW51bGx9Uig1NzE3KShrLEspLGsucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihFLGosVil7InN0cmlu'@; put 'ZyI9PXR5cGVvZiBFJiYoRT16LmZyb20oRSxqKSk7dmFyIEI9dGhpcy5fdXBkYXRlKEUpO3JldHVybiB0aGlzLmhhc2hNb2RlP3RoaXM6KFYmJihCPXRoaXMuX3RvU3RyaW5nKEIsVikpLEIpfSxrLnByb3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbigpe30say5wcm90b3R5cGUuZ2V0'@; put 'QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxrLnByb3RvdHlwZS5zZXRBdXRoVGFnPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3Vw'@; put 'cG9ydGVkIHN0YXRlIil9LGsucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIHNldCBhYWQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0say5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihFLGosVil7dmFyIEI7dHJ5e3RoaXMuaGFzaE1v'@; put 'ZGU/dGhpcy5fdXBkYXRlKEUpOnRoaXMucHVzaCh0aGlzLl91cGRhdGUoRSkpfWNhdGNoKFkpe0I9WX1maW5hbGx5e1YoQil9fSxrLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oRSl7dmFyIGo7dHJ5e3RoaXMucHVzaCh0aGlzLl9fZmluYWwoKSl9Y2F0Y2goVil7aj1WfUUoail9LGsucHJv'@; put 'dG90eXBlLl9maW5hbE9yRGlnZXN0PWZ1bmN0aW9uKEUpe3ZhciBqPXRoaXMuX19maW5hbCgpfHx6LmFsbG9jKDApO3JldHVybiBFJiYoaj10aGlzLl90b1N0cmluZyhqLEUsITApKSxqfSxrLnByb3RvdHlwZS5fdG9TdHJpbmc9ZnVuY3Rpb24oRSxqLFYpe2lmKHRoaXMuX2RlY29kZXJ8fCh0'@; put 'aGlzLl9kZWNvZGVyPW5ldyBJKGopLHRoaXMuX2VuY29kaW5nPWopLHRoaXMuX2VuY29kaW5nIT09ail0aHJvdyBuZXcgRXJyb3IoImNhbid0IHN3aXRjaCBlbmNvZGluZ3MiKTt2YXIgQj10aGlzLl9kZWNvZGVyLndyaXRlKEUpO3JldHVybiBWJiYoQis9dGhpcy5fZGVjb2Rlci5lbmQoKSks'@; put 'Qn0sTS5leHBvcnRzPWt9LDEwNDg6TT0+e00uZXhwb3J0cz1mdW5jdGlvbihSLHope2Zvcih2YXIgSz1bXSxJPTA7STxSLmxlbmd0aDtJKyspe3ZhciBrPXooUltJXSxJKTtPKGspP0sucHVzaC5hcHBseShLLGspOksucHVzaChrKX1yZXR1cm4gS307dmFyIE89QXJyYXkuaXNBcnJheXx8ZnVu'@; put 'Y3Rpb24oUil7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSKX19LDUxMDg6KE0sTyxSKT0+e3ZhciB6PVIoOTUzOSksSz1SKDkyODIpO2Z1bmN0aW9uIEkoKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX12YXIgayxFPUFycmF5LnBy'@; put 'b3RvdHlwZS5zbGljZSxqPXt9O2s9dm9pZCAwIT09Ui5nJiZSLmcuY29uc29sZT9SLmcuY29uc29sZTp0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmNvbnNvbGU/d2luZG93LmNvbnNvbGU6e307Zm9yKHZhciBWPVtbZnVuY3Rpb24oKXt9LCJsb2ciXSxbZnVuY3Rpb24oKXtrLmxvZy5hcHBs'@; put 'eShrLGFyZ3VtZW50cyl9LCJpbmZvIl0sW2Z1bmN0aW9uKCl7ay5sb2cuYXBwbHkoayxhcmd1bWVudHMpfSwid2FybiJdLFtmdW5jdGlvbigpe2sud2Fybi5hcHBseShrLGFyZ3VtZW50cyl9LCJlcnJvciJdLFtmdW5jdGlvbihxKXtqW3FdPUkoKX0sInRpbWUiXSxbZnVuY3Rpb24ocSl7dmFy'@; put 'IGVlPWpbcV07aWYoIWVlKXRocm93IG5ldyBFcnJvcigiTm8gc3VjaCBsYWJlbDogIitxKTtkZWxldGUgaltxXTt2YXIgdGU9SSgpLWVlO2subG9nKHErIjogIit0ZSsibXMiKX0sInRpbWVFbmQiXSxbZnVuY3Rpb24oKXt2YXIgcT1uZXcgRXJyb3I7cS5uYW1lPSJUcmFjZSIscS5tZXNzYWdl'@; put 'PXouZm9ybWF0LmFwcGx5KG51bGwsYXJndW1lbnRzKSxrLmVycm9yKHEuc3RhY2spfSwidHJhY2UiXSxbZnVuY3Rpb24ocSl7ay5sb2coei5pbnNwZWN0KHEpKyJcbiIpfSwiZGlyIl0sW2Z1bmN0aW9uKHEpe2lmKCFxKXt2YXIgZWU9RS5jYWxsKGFyZ3VtZW50cywxKTtLLm9rKCExLHouZm9y'@; put 'bWF0LmFwcGx5KG51bGwsZWUpKX19LCJhc3NlcnQiXV0sQj0wO0I8Vi5sZW5ndGg7QisrKXt2YXIgWT1WW0JdLFU9WVsxXTtrW1VdfHwoa1tVXT1ZWzBdKX1NLmV4cG9ydHM9a30sNjM5MzooTSxPLFIpPT57dmFyIHo9Uig4NzY0KS5CdWZmZXIsSz1SKDY5NDgpLEk9Uig2NDI2KTtNLmV4cG9y'@; put 'dHM9ZnVuY3Rpb24oVil7cmV0dXJuIG5ldyBFKFYpfTt2YXIgaz17c2VjcDI1NmsxOntuYW1lOiJzZWNwMjU2azEiLGJ5dGVMZW5ndGg6MzJ9LHNlY3AyMjRyMTp7bmFtZToicDIyNCIsYnl0ZUxlbmd0aDoyOH0scHJpbWUyNTZ2MTp7bmFtZToicDI1NiIsYnl0ZUxlbmd0aDozMn0scHJpbWUx'@; put 'OTJ2MTp7bmFtZToicDE5MiIsYnl0ZUxlbmd0aDoyNH0sZWQyNTUxOTp7bmFtZToiZWQyNTUxOSIsYnl0ZUxlbmd0aDozMn0sc2VjcDM4NHIxOntuYW1lOiJwMzg0IixieXRlTGVuZ3RoOjQ4fSxzZWNwNTIxcjE6e25hbWU6InA1MjEiLGJ5dGVMZW5ndGg6NjZ9fTtmdW5jdGlvbiBFKFYpe3Ro'@; put 'aXMuY3VydmVUeXBlPWtbVl0sdGhpcy5jdXJ2ZVR5cGV8fCh0aGlzLmN1cnZlVHlwZT17bmFtZTpWfSksdGhpcy5jdXJ2ZT1uZXcgSy5lYyh0aGlzLmN1cnZlVHlwZS5uYW1lKSx0aGlzLmtleXM9dm9pZCAwfWZ1bmN0aW9uIGooVixCLFkpe0FycmF5LmlzQXJyYXkoVil8fChWPVYudG9BcnJh'@; put 'eSgpKTt2YXIgWD1uZXcgeihWKTtpZihZJiZYLmxlbmd0aDxZKXt2YXIgVT1uZXcgeihZLVgubGVuZ3RoKTtVLmZpbGwoMCksWD16LmNvbmNhdChbVSxYXSl9cmV0dXJuIEI/WC50b1N0cmluZyhCKTpYfWsucDIyND1rLnNlY3AyMjRyMSxrLnAyNTY9ay5zZWNwMjU2cjE9ay5wcmltZTI1NnYx'@; put 'LGsucDE5Mj1rLnNlY3AxOTJyMT1rLnByaW1lMTkydjEsay5wMzg0PWsuc2VjcDM4NHIxLGsucDUyMT1rLnNlY3A1MjFyMSxFLnByb3RvdHlwZS5nZW5lcmF0ZUtleXM9ZnVuY3Rpb24oVixCKXtyZXR1cm4gdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMuZ2V0UHVibGlj'@; put 'S2V5KFYsQil9LEUucHJvdG90eXBlLmNvbXB1dGVTZWNyZXQ9ZnVuY3Rpb24oVixCLFkpe3JldHVybiBCPUJ8fCJ1dGY4Iix6LmlzQnVmZmVyKFYpfHwoVj1uZXcgeihWLEIpKSxqKHRoaXMuY3VydmUua2V5RnJvbVB1YmxpYyhWKS5nZXRQdWJsaWMoKS5tdWwodGhpcy5rZXlzLmdldFByaXZh'@; put 'dGUoKSkuZ2V0WCgpLFksdGhpcy5jdXJ2ZVR5cGUuYnl0ZUxlbmd0aCl9LEUucHJvdG90eXBlLmdldFB1YmxpY0tleT1mdW5jdGlvbihWLEIpe3ZhciBZPXRoaXMua2V5cy5nZXRQdWJsaWMoImNvbXByZXNzZWQiPT09QiwhMCk7cmV0dXJuImh5YnJpZCI9PT1CJiYoWVswXT1ZW1kubGVuZ3Ro'@; put 'LTFdJTI/Nzo2KSxqKFksVil9LEUucHJvdG90eXBlLmdldFByaXZhdGVLZXk9ZnVuY3Rpb24oVil7cmV0dXJuIGoodGhpcy5rZXlzLmdldFByaXZhdGUoKSxWKX0sRS5wcm90b3R5cGUuc2V0UHVibGljS2V5PWZ1bmN0aW9uKFYsQil7cmV0dXJuIEI9Qnx8InV0ZjgiLHouaXNCdWZmZXIoVil8'@; put 'fChWPW5ldyB6KFYsQikpLHRoaXMua2V5cy5faW1wb3J0UHVibGljKFYpLHRoaXN9LEUucHJvdG90eXBlLnNldFByaXZhdGVLZXk9ZnVuY3Rpb24oVixCKXtCPUJ8fCJ1dGY4Iix6LmlzQnVmZmVyKFYpfHwoVj1uZXcgeihWLEIpKTt2YXIgWT1uZXcgSShWKTtyZXR1cm4gWT1ZLnRvU3RyaW5n'@; put 'KDE2KSx0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5rZXlzLl9pbXBvcnRQcml2YXRlKFkpLHRoaXN9fSw2NDI2OmZ1bmN0aW9uKE0sTyxSKXshZnVuY3Rpb24oeixLKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gSShnLEMpe2lmKCFnKXRocm93IG5ldyBFcnJvcihDfHwi'@; put 'QXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGsoZyxDKXtnLnN1cGVyXz1DO3ZhciBTPWZ1bmN0aW9uKCl7fTtTLnByb3RvdHlwZT1DLnByb3RvdHlwZSxnLnByb3RvdHlwZT1uZXcgUyxnLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1nfWZ1bmN0aW9uIEUoZyxDLFMpe2lmKEUuaXNCTihnKSly'@; put 'ZXR1cm4gZzt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09ZyYmKCJsZSIhPT1DJiYiYmUiIT09Q3x8KFM9QyxDPTEwKSx0aGlzLl9pbml0KGd8fDAsQ3x8MTAsU3x8ImJlIikpfXZhciBqOyJvYmplY3QiPT10eXBlb2Yg'@; put 'ej96LmV4cG9ydHM9RTpLLkJOPUUsRS5CTj1FLEUud29yZFNpemU9MjY7dHJ5e2o9dHlwZW9mIHdpbmRvdzwidSImJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpSKDg2MjMpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gVihnLEMpe3ZhciBTPWcuY2hhckNvZGVBdChDKTty'@; put 'ZXR1cm4gUz49NjUmJlM8PTcwP1MtNTU6Uz49OTcmJlM8PTEwMj9TLTg3OlMtNDgmMTV9ZnVuY3Rpb24gQihnLEMsUyl7dmFyIHY9VihnLFMpO3JldHVybiBTLTE+PUMmJih2fD1WKGcsUy0xKTw8NCksdn1mdW5jdGlvbiBZKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9TWF0aC5taW4oZy5sZW5n'@; put 'dGgsUyksSj1DO0o8dztKKyspe3ZhciBuZT1nLmNoYXJDb2RlQXQoSiktNDg7cCo9dixwKz1uZT49NDk/bmUtNDkrMTA6bmU+PTE3P25lLTE3KzEwOm5lfXJldHVybiBwfUUuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIEV8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9m'@; put 'IGcmJmcuY29uc3RydWN0b3Iud29yZFNpemU9PT1FLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSxFLm1heD1mdW5jdGlvbihnLEMpe3JldHVybiBnLmNtcChDKT4wP2c6Q30sRS5taW49ZnVuY3Rpb24oZyxDKXtyZXR1cm4gZy5jbXAoQyk8MD9nOkN9LEUucHJvdG90eXBlLl9p'@; put 'bml0PWZ1bmN0aW9uKGcsQyxTKXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyxDLFMpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcsQyxTKTsiaGV4Ij09PUMmJihDPTE2KSxJKEM9PT0oMHxDKSYmQz49MiYmQzw9'@; put 'MzYpO3ZhciB2PTA7Ii0iPT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih2KyssdGhpcy5uZWdhdGl2ZT0xKSx2PGcubGVuZ3RoJiYoMTY9PT1DP3RoaXMuX3BhcnNlSGV4KGcsdixTKToodGhpcy5fcGFyc2VCYXNlKGcsQyx2KSwibGUiPT09UyYmdGhpcy5faW5p'@; put 'dEFycmF5KHRoaXMudG9BcnJheSgpLEMsUykpKX0sRS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyxDLFMpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0'@; put 'OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEkoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVMmJnRoaXMuX2lu'@; put 'aXRBcnJheSh0aGlzLnRvQXJyYXkoKSxDLFMpfSxFLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcsQyxTKXtpZihJKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9'@; put 'TWF0aC5jZWlsKGcubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHY9MDt2PHRoaXMubGVuZ3RoO3YrKyl0aGlzLndvcmRzW3ZdPTA7dmFyIHAsdyxKPTA7aWYoImJlIj09PVMpZm9yKHY9Zy5sZW5ndGgtMSxwPTA7dj49MDt2LT0zKXRoaXMud29y'@; put 'ZHNbcF18PSh3PWdbdl18Z1t2LTFdPDw4fGdbdi0yXTw8MTYpPDxKJjY3MTA4ODYzLHRoaXMud29yZHNbcCsxXT13Pj4+MjYtSiY2NzEwODg2MywoSis9MjQpPj0yNiYmKEotPTI2LHArKyk7ZWxzZSBpZigibGUiPT09Uylmb3Iodj0wLHA9MDt2PGcubGVuZ3RoO3YrPTMpdGhpcy53b3Jkc1tw'@; put 'XXw9KHc9Z1t2XXxnW3YrMV08PDh8Z1t2KzJdPDwxNik8PEomNjcxMDg4NjMsdGhpcy53b3Jkc1twKzFdPXc+Pj4yNi1KJjY3MTA4ODYzLChKKz0yNCk+PTI2JiYoSi09MjYscCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyxDLFMpe3Ro'@; put 'aXMubGVuZ3RoPU1hdGguY2VpbCgoZy5sZW5ndGgtQykvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdj0wO3Y8dGhpcy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09MDt2YXIgcCx3PTAsSj0wO2lmKCJiZSI9PT1TKWZvcih2PWcubGVuZ3RoLTE7dj49Qzt2'@; put 'LT0yKXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O2Vsc2UgZm9yKHY9KGcubGVuZ3RoLUMpJTI9PTA/QysxOkM7djxnLmxlbmd0aDt2Kz0yKXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tK'@; put 'XXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O3RoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLEMsUyl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHY9MCxwPTE7cDw9NjcxMDg4'@; put 'NjM7cCo9Qyl2Kys7di0tLHA9cC9DfDA7Zm9yKHZhciB3PWcubGVuZ3RoLVMsSj13JXYsbmU9TWF0aC5taW4odyx3LUopK1MsZGU9MCxmZT1TO2ZlPG5lO2ZlKz12KWRlPVkoZyxmZSxmZSt2LEMpLHRoaXMuaW11bG4ocCksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBd'@; put 'Kz1kZTp0aGlzLl9pYWRkbihkZSk7aWYoMCE9PUope3ZhciB4ZT0xO2ZvcihkZT1ZKGcsZmUsZy5sZW5ndGgsQyksZmU9MDtmZTxKO2ZlKyspeGUqPUM7dGhpcy5pbXVsbih4ZSksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1kZTp0aGlzLl9pYWRkbihkZSl9dGhp'@; put 'cy5zdHJpcCgpfSxFLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKylnLndvcmRzW0NdPXRoaXMud29yZHNbQ107Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5l'@; put 'Z2F0aXZlLGcucmVkPXRoaXMucmVkfSxFLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyBFKG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sRS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5n'@; put 'dGgrK109MDtyZXR1cm4gdGhpc30sRS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxFLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sRS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2'@; put 'YXIgWD1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw'@; put 'MDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIw'@; put 'MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxVPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLHE9'@; put 'WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2'@; put 'LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gZWUoZyxDLFMpe1MubmVnYXRp'@; put 'dmU9Qy5uZWdhdGl2ZV5nLm5lZ2F0aXZlO3ZhciB2PWcubGVuZ3RoK0MubGVuZ3RofDA7Uy5sZW5ndGg9dix2PXYtMXwwO3ZhciBwPTB8Zy53b3Jkc1swXSx3PTB8Qy53b3Jkc1swXSxKPXAqdyxkZT1KLzY3MTA4ODY0fDA7Uy53b3Jkc1swXT02NzEwODg2MyZKO2Zvcih2YXIgZmU9MTtmZTx2'@; put 'O2ZlKyspe2Zvcih2YXIgeGU9ZGU+Pj4yNixMZT02NzEwODg2MyZkZSxGZT1NYXRoLm1pbihmZSxDLmxlbmd0aC0xKSxPZT1NYXRoLm1heCgwLGZlLWcubGVuZ3RoKzEpO09lPD1GZTtPZSsrKXhlKz0oSj0ocD0wfGcud29yZHNbZmUtT2V8MF0pKih3PTB8Qy53b3Jkc1tPZV0pK0xlKS82NzEw'@; put 'ODg2NHwwLExlPTY3MTA4ODYzJko7Uy53b3Jkc1tmZV09MHxMZSxkZT0wfHhlfXJldHVybiAwIT09ZGU/Uy53b3Jkc1tmZV09MHxkZTpTLmxlbmd0aC0tLFMuc3RyaXAoKX1FLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihnLEMpe3ZhciBTO2lmKEM9MHxDfHwxLDE2PT09KGc9Z3x8MTAp'@; put 'fHwiaGV4Ij09PWcpe1M9IiI7Zm9yKHZhciB2PTAscD0wLHc9MDt3PHRoaXMubGVuZ3RoO3crKyl7dmFyIEo9dGhpcy53b3Jkc1t3XSxuZT0oMTY3NzcyMTUmKEo8PHZ8cCkpLnRvU3RyaW5nKDE2KTtTPTAhPShwPUo+Pj4yNC12JjE2Nzc3MjE1KXx8dyE9PXRoaXMubGVuZ3RoLTE/WFs2LW5l'@; put 'Lmxlbmd0aF0rbmUrUzpuZStTLCh2Kz0yKT49MjYmJih2LT0yNix3LS0pfWZvcigwIT09cCYmKFM9cC50b1N0cmluZygxNikrUyk7Uy5sZW5ndGglQyE9MDspUz0iMCIrUztyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihTPSItIitTKSxTfWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3Zh'@; put 'ciBkZT1VW2ddLGZlPXFbZ107Uz0iIjt2YXIgeGU9dGhpcy5jbG9uZSgpO2Zvcih4ZS5uZWdhdGl2ZT0wOyF4ZS5pc1plcm8oKTspe3ZhciBMZT14ZS5tb2RuKGZlKS50b1N0cmluZyhnKTtTPSh4ZT14ZS5pZGl2bihmZSkpLmlzWmVybygpP0xlK1M6WFtkZS1MZS5sZW5ndGhdK0xlK1N9Zm9y'@; put 'KHRoaXMuaXNaZXJvKCkmJihTPSIwIitTKTtTLmxlbmd0aCVDIT0wOylTPSIwIitTO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFM9Ii0iK1MpLFN9SSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxFLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBn'@; put 'PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJkkoITEsIk51'@; put 'bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LEUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sRS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oZyxDKXtyZXR1cm4g'@; put 'SSh2b2lkIDAhPT1qKSx0aGlzLnRvQXJyYXlMaWtlKGosZyxDKX0sRS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLEMpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcsQyl9LEUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj10aGlzLmJ5dGVM'@; put 'ZW5ndGgoKSxwPVN8fE1hdGgubWF4KDEsdik7SSh2PD1wLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksSShwPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgdyxKLG5lPSJsZSI9PT1DLGRlPW5ldyBnKHApLGZlPXRoaXMu'@; put 'Y2xvbmUoKTtpZihuZSl7Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4oOCksZGVbSl09dztmb3IoO0o8cDtKKyspZGVbSl09MH1lbHNle2ZvcihKPTA7SjxwLXY7SisrKWRlW0pdPTA7Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4o'@; put 'MjU1KSxmZS5pdXNocm4oOCksZGVbcC1KLTFdPXd9cmV0dXJuIGRlfSxFLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciBDPWcsUz0wO3JldHVybiBDPj00MDk2JiYoUys9MTMsQz4+Pj0x'@; put 'MyksQz49NjQmJihTKz03LEM+Pj49NyksQz49OCYmKFMrPTQsQz4+Pj00KSxDPj0yJiYoUys9MixDPj4+PTIpLFMrQ30sRS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgQz1nLFM9MDtyZXR1cm4hKDgxOTEmQykmJihTKz0xMyxDPj4+PTEz'@; put 'KSwhKDEyNyZDKSYmKFMrPTcsQz4+Pj03KSwhKDE1JkMpJiYoUys9NCxDPj4+PTQpLCEoMyZDKSYmKFMrPTIsQz4+Pj0yKSwhKDEmQykmJlMrKyxTfSxFLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgQz10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0x'@; put 'XSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStDfSxFLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAsQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW0NdKTtpZihn'@; put 'Kz1TLDI2IT09UylicmVha31yZXR1cm4gZ30sRS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sRS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygp'@; put 'Lmlub3RuKGcpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gMCE9PXRoaXMubmVnYXRpdmV9LEUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxFLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxFLnByb3RvdHlwZS5p'@; put 'dW9yPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIEM9MDtDPGcubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXRoaXMud29yZHNbQ118Zy53b3Jkc1tDXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3Rv'@; put 'dHlwZS5pb3I9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sRS5wcm90b3R5cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0'@; put 'aGlzKX0sRS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpnLmNsb25lKCkuaXVvcih0aGlzKX0sRS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFyIEM7Qz10aGlzLmxlbmd0aD5nLmxlbmd0aD9n'@; put 'OnRoaXM7Zm9yKHZhciBTPTA7UzxDLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1NdJmcud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPUMubGVuZ3RoLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gSSgwPT0odGhpcy5uZWdh'@; put 'dGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sRS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sRS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihnKXtyZXR1'@; put 'cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sRS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIEMsUzt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oQz10aGlzLFM9Zyk6KEM9ZyxTPXRoaXMpO2Zvcih2YXIgdj0w'@; put 'O3Y8Uy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09Qy53b3Jkc1t2XV5TLndvcmRzW3ZdO2lmKHRoaXMhPT1DKWZvcig7djxDLmxlbmd0aDt2KyspdGhpcy53b3Jkc1t2XT1DLndvcmRzW3ZdO3JldHVybiB0aGlzLmxlbmd0aD1DLmxlbmd0aCx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLml4'@; put 'b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LEUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoZyk6Zy5jbG9uZSgpLml4b3IodGhp'@; put 'cyl9LEUucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LEUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2'@; put 'YXIgQz0wfE1hdGguY2VpbChnLzI2KSxTPWclMjY7dGhpcy5fZXhwYW5kKEMpLFM+MCYmQy0tO2Zvcih2YXIgdj0wO3Y8Qzt2KyspdGhpcy53b3Jkc1t2XT02NzEwODg2MyZ+dGhpcy53b3Jkc1t2XTtyZXR1cm4gUz4wJiYodGhpcy53b3Jkc1t2XT1+dGhpcy53b3Jkc1t2XSY2NzEwODg2Mz4+'@; put 'MjYtUyksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LEUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyxDKXtJKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIFM9Zy8yNnwwLHY9ZyUyNjtyZXR1cm4g'@; put 'dGhpcy5fZXhwYW5kKFMrMSksdGhpcy53b3Jkc1tTXT1DP3RoaXMud29yZHNbU118MTw8djp0aGlzLndvcmRzW1NdJn4oMTw8diksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciBDLFMsdjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUp'@; put 'cmV0dXJuIHRoaXMubmVnYXRpdmU9MCxDPXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAsQz10aGlzLmlzdWIoZyksZy5uZWdhdGl2ZT0xLEMuX25vcm1T'@; put 'aWduKCk7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHA9MCx3PTA7dzx2Lmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT02NzEwODg2MyYoQz0oMHxTLndvcmRzW3ddKSsoMHx2LndvcmRzW3ddKStwKSxwPUM+Pj4yNjtmb3IoOzAhPT1wJiZ3'@; put 'PFMubGVuZ3RoO3crKyl0aGlzLndvcmRzW3ddPTY3MTA4ODYzJihDPSgwfFMud29yZHNbd10pK3ApLHA9Qz4+PjI2O2lmKHRoaXMubGVuZ3RoPVMubGVuZ3RoLDAhPT1wKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXAsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFMhPT10aGlzKWZvcig7dzxTLmxl'@; put 'bmd0aDt3KyspdGhpcy53b3Jkc1t3XT1TLndvcmRzW3ddO3JldHVybiB0aGlzfSxFLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIEM7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2ZT0wLEM9dGhpcy5zdWIoZyksZy5uZWdhdGl2ZV49MSxD'@; put 'KTowPT09Zy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxDPWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxDKTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNsb25lKCkuaWFkZCh0aGlzKX0sRS5wcm90b3R5cGUuaXN1'@; put 'Yj1mdW5jdGlvbihnKXtpZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciBDPXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoZyksdGhpcy5uZWdh'@; put 'dGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFMsdixwPXRoaXMuY21wKGcpO2lmKDA9PT1wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztwPjA/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHc9MCxKPTA7Sjx2Lmxl'@; put 'bmd0aDtKKyspdz0oQz0oMHxTLndvcmRzW0pdKS0oMHx2LndvcmRzW0pdKSt3KT4+MjYsdGhpcy53b3Jkc1tKXT02NzEwODg2MyZDO2Zvcig7MCE9PXcmJko8Uy5sZW5ndGg7SisrKXc9KEM9KDB8Uy53b3Jkc1tKXSkrdyk+PjI2LHRoaXMud29yZHNbSl09NjcxMDg4NjMmQztpZigwPT09dyYm'@; put 'SjxTLmxlbmd0aCYmUyE9PXRoaXMpZm9yKDtKPFMubGVuZ3RoO0orKyl0aGlzLndvcmRzW0pdPVMud29yZHNbSl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEopLFMhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLnN1'@; put 'Yj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciB0ZT1mdW5jdGlvbihnLEMsUyl7dmFyIHYscCx3LEo9Zy53b3JkcyxuZT1DLndvcmRzLGRlPVMud29yZHMsZmU9MCx4ZT0wfEpbMF0sTGU9ODE5MSZ4ZSxGZT14ZT4+PjEzLE9lPTB8SlsxXSxqZT04MTkxJk9l'@; put 'LFdlPU9lPj4+MTMsS2U9MHxKWzJdLFllPTgxOTEmS2UsUWU9S2U+Pj4xMyxsdD0wfEpbM10sUGU9ODE5MSZsdCxiZT1sdD4+PjEzLEFlPTB8Sls0XSxUZT04MTkxJkFlLHFlPUFlPj4+MTMsWGU9MHxKWzVdLFVlPTgxOTEmWGUsaHQ9WGU+Pj4xMyxNZT0wfEpbNl0sRGU9ODE5MSZNZSx6ZT1N'@; put 'ZT4+PjEzLG90PTB8Sls3XSx1dD04MTkxJm90LE10PW90Pj4+MTMsSHQ9MHxKWzhdLFB0PTgxOTEmSHQsb249SHQ+Pj4xMyxDbj0wfEpbOV0sVXQ9ODE5MSZDbixibj1Dbj4+PjEzLFduPTB8bmVbMF0sZW49ODE5MSZXbiwkbj1Xbj4+PjEzLEhuPTB8bmVbMV0sZnQ9ODE5MSZIbixmbj1Ibj4+'@; put 'PjEzLGhuPTB8bmVbMl0sd3Q9ODE5MSZobixYdD1obj4+PjEzLF90PTB8bmVbM10sTnQ9ODE5MSZfdCxtbj1fdD4+PjEzLHJ0PTB8bmVbNF0sSXQ9ODE5MSZydCxRdD1ydD4+PjEzLER0PTB8bmVbNV0scHQ9ODE5MSZEdCxZdD1EdD4+PjEzLEluPTB8bmVbNl0senQ9ODE5MSZJbix5bj1Jbj4+'@; put 'PjEzLHhuPTB8bmVbN10sc249ODE5MSZ4bixCbj14bj4+PjEzLFJuPTB8bmVbOF0sJHQ9ODE5MSZSbixGbj1Sbj4+PjEzLG5pPTB8bmVbOV0sbG49ODE5MSZuaSxqbj1uaT4+PjEzO1MubmVnYXRpdmU9Zy5uZWdhdGl2ZV5DLm5lZ2F0aXZlLFMubGVuZ3RoPTE5O3ZhciBxcj0oZmUrKHY9TWF0'@; put 'aC5pbXVsKExlLGVuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChMZSwkbikpK01hdGguaW11bChGZSxlbil8MCkpPDwxMyl8MDtmZT0oKHc9TWF0aC5pbXVsKEZlLCRuKSkrKHA+Pj4xMyl8MCkrKHFyPj4+MjYpfDAscXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKGplLGVuKSxwPShwPU1h'@; put 'dGguaW11bChqZSwkbikpK01hdGguaW11bChXZSxlbil8MCx3PU1hdGguaW11bChXZSwkbik7dmFyIGdpPShmZSsodj12K01hdGguaW11bChMZSxmdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLGZuKXwwKStNYXRoLmltdWwoRmUsZnQpfDApKTw8MTMpfDA7ZmU9KCh3PXcr'@; put 'TWF0aC5pbXVsKEZlLGZuKXwwKSsocD4+PjEzKXwwKSsoZ2k+Pj4yNil8MCxnaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoWWUsZW4pLHA9KHA9TWF0aC5pbXVsKFllLCRuKSkrTWF0aC5pbXVsKFFlLGVuKXwwLHc9TWF0aC5pbXVsKFFlLCRuKSx2PXYrTWF0aC5pbXVsKGplLGZ0KXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwoamUsZm4pfDApK01hdGguaW11bChXZSxmdCl8MCx3PXcrTWF0aC5pbXVsKFdlLGZuKXwwO3ZhciB4cj0oZmUrKHY9ditNYXRoLmltdWwoTGUsd3QpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxYdCl8MCkrTWF0aC5pbXVsKEZlLHd0KXwwKSk8PDEzKXww'@; put 'O2ZlPSgodz13K01hdGguaW11bChGZSxYdCl8MCkrKHA+Pj4xMyl8MCkrKHhyPj4+MjYpfDAseHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFBlLGVuKSxwPShwPU1hdGguaW11bChQZSwkbikpK01hdGguaW11bChiZSxlbil8MCx3PU1hdGguaW11bChiZSwkbiksdj12K01hdGguaW11bChZZSxm'@; put 'dCl8MCxwPShwPXArTWF0aC5pbXVsKFllLGZuKXwwKStNYXRoLmltdWwoUWUsZnQpfDAsdz13K01hdGguaW11bChRZSxmbil8MCx2PXYrTWF0aC5pbXVsKGplLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWHQpfDApK01hdGguaW11bChXZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFdlLFh0KXww'@; put 'O3ZhciBVaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsTnQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxtbil8MCkrTWF0aC5pbXVsKEZlLE50KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxtbil8MCkrKHA+Pj4xMyl8MCkrKFVpPj4+MjYpfDAsVWkmPTY3MTA4'@; put 'ODYzLHY9TWF0aC5pbXVsKFRlLGVuKSxwPShwPU1hdGguaW11bChUZSwkbikpK01hdGguaW11bChxZSxlbil8MCx3PU1hdGguaW11bChxZSwkbiksdj12K01hdGguaW11bChQZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLGZuKXwwKStNYXRoLmltdWwoYmUsZnQpfDAsdz13K01hdGguaW11'@; put 'bChiZSxmbil8MCx2PXYrTWF0aC5pbXVsKFllLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWHQpfDApK01hdGguaW11bChRZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFFlLFh0KXwwLHY9ditNYXRoLmltdWwoamUsTnQpfDAscD0ocD1wK01hdGguaW11bChqZSxtbil8MCkrTWF0aC5pbXVsKFdl'@; put 'LE50KXwwLHc9dytNYXRoLmltdWwoV2UsbW4pfDA7dmFyIEtyPShmZSsodj12K01hdGguaW11bChMZSxJdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLFF0KXwwKStNYXRoLmltdWwoRmUsSXQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLFF0KXwwKSsocD4+'@; put 'PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVWUsZW4pLHA9KHA9TWF0aC5pbXVsKFVlLCRuKSkrTWF0aC5pbXVsKGh0LGVuKXwwLHc9TWF0aC5pbXVsKGh0LCRuKSx2PXYrTWF0aC5pbXVsKFRlLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsZm4pfDApK01h'@; put 'dGguaW11bChxZSxmdCl8MCx3PXcrTWF0aC5pbXVsKHFlLGZuKXwwLHY9ditNYXRoLmltdWwoUGUsd3QpfDAscD0ocD1wK01hdGguaW11bChQZSxYdCl8MCkrTWF0aC5pbXVsKGJlLHd0KXwwLHc9dytNYXRoLmltdWwoYmUsWHQpfDAsdj12K01hdGguaW11bChZZSxOdCl8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKFllLG1uKXwwKStNYXRoLmltdWwoUWUsTnQpfDAsdz13K01hdGguaW11bChRZSxtbil8MCx2PXYrTWF0aC5pbXVsKGplLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsUXQpfDApK01hdGguaW11bChXZSxJdCl8MCx3PXcrTWF0aC5pbXVsKFdlLFF0KXwwO3ZhciBubz0oZmUrKHY9'@; put 'ditNYXRoLmltdWwoTGUscHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxZdCl8MCkrTWF0aC5pbXVsKEZlLHB0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxZdCl8MCkrKHA+Pj4xMyl8MCkrKG5vPj4+MjYpfDAsbm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVs'@; put 'KERlLGVuKSxwPShwPU1hdGguaW11bChEZSwkbikpK01hdGguaW11bCh6ZSxlbil8MCx3PU1hdGguaW11bCh6ZSwkbiksdj12K01hdGguaW11bChVZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLGZuKXwwKStNYXRoLmltdWwoaHQsZnQpfDAsdz13K01hdGguaW11bChodCxmbil8MCx2PXYr'@; put 'TWF0aC5pbXVsKFRlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWHQpfDApK01hdGguaW11bChxZSx3dCl8MCx3PXcrTWF0aC5pbXVsKHFlLFh0KXwwLHY9ditNYXRoLmltdWwoUGUsTnQpfDAscD0ocD1wK01hdGguaW11bChQZSxtbil8MCkrTWF0aC5pbXVsKGJlLE50KXwwLHc9dytNYXRo'@; put 'LmltdWwoYmUsbW4pfDAsdj12K01hdGguaW11bChZZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLFF0KXwwKStNYXRoLmltdWwoUWUsSXQpfDAsdz13K01hdGguaW11bChRZSxRdCl8MCx2PXYrTWF0aC5pbXVsKGplLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWXQpfDApK01hdGguaW11'@; put 'bChXZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFdlLFl0KXwwO3ZhciBIcj0oZmUrKHY9ditNYXRoLmltdWwoTGUsenQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSx5bil8MCkrTWF0aC5pbXVsKEZlLHp0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSx5bil8MCkr'@; put 'KHA+Pj4xMyl8MCkrKEhyPj4+MjYpfDAsSHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKHV0LGVuKSxwPShwPU1hdGguaW11bCh1dCwkbikpK01hdGguaW11bChNdCxlbil8MCx3PU1hdGguaW11bChNdCwkbiksdj12K01hdGguaW11bChEZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKERlLGZuKXww'@; put 'KStNYXRoLmltdWwoemUsZnQpfDAsdz13K01hdGguaW11bCh6ZSxmbil8MCx2PXYrTWF0aC5pbXVsKFVlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsWHQpfDApK01hdGguaW11bChodCx3dCl8MCx3PXcrTWF0aC5pbXVsKGh0LFh0KXwwLHY9ditNYXRoLmltdWwoVGUsTnQpfDAscD0ocD1w'@; put 'K01hdGguaW11bChUZSxtbil8MCkrTWF0aC5pbXVsKHFlLE50KXwwLHc9dytNYXRoLmltdWwocWUsbW4pfDAsdj12K01hdGguaW11bChQZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLFF0KXwwKStNYXRoLmltdWwoYmUsSXQpfDAsdz13K01hdGguaW11bChiZSxRdCl8MCx2PXYrTWF0aC5p'@; put 'bXVsKFllLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWXQpfDApK01hdGguaW11bChRZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFFlLFl0KXwwLHY9ditNYXRoLmltdWwoamUsenQpfDAscD0ocD1wK01hdGguaW11bChqZSx5bil8MCkrTWF0aC5pbXVsKFdlLHp0KXwwLHc9dytNYXRoLmltdWwo'@; put 'V2UseW4pfDA7dmFyIHFpPShmZSsodj12K01hdGguaW11bChMZSxzbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLEJuKXwwKStNYXRoLmltdWwoRmUsc24pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLEJuKXwwKSsocD4+PjEzKXwwKSsocWk+Pj4yNil8MCxx'@; put 'aSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoUHQsZW4pLHA9KHA9TWF0aC5pbXVsKFB0LCRuKSkrTWF0aC5pbXVsKG9uLGVuKXwwLHc9TWF0aC5pbXVsKG9uLCRuKSx2PXYrTWF0aC5pbXVsKHV0LGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsZm4pfDApK01hdGguaW11bChNdCxmdCl8MCx3PXcr'@; put 'TWF0aC5pbXVsKE10LGZuKXwwLHY9ditNYXRoLmltdWwoRGUsd3QpfDAscD0ocD1wK01hdGguaW11bChEZSxYdCl8MCkrTWF0aC5pbXVsKHplLHd0KXwwLHc9dytNYXRoLmltdWwoemUsWHQpfDAsdj12K01hdGguaW11bChVZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLG1uKXwwKStNYXRo'@; put 'LmltdWwoaHQsTnQpfDAsdz13K01hdGguaW11bChodCxtbil8MCx2PXYrTWF0aC5pbXVsKFRlLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsUXQpfDApK01hdGguaW11bChxZSxJdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFF0KXwwLHY9ditNYXRoLmltdWwoUGUscHQpfDAscD0ocD1wK01hdGgu'@; put 'aW11bChQZSxZdCl8MCkrTWF0aC5pbXVsKGJlLHB0KXwwLHc9dytNYXRoLmltdWwoYmUsWXQpfDAsdj12K01hdGguaW11bChZZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKFllLHluKXwwKStNYXRoLmltdWwoUWUsenQpfDAsdz13K01hdGguaW11bChRZSx5bil8MCx2PXYrTWF0aC5pbXVsKGpl'@; put 'LHNuKXwwLHA9KHA9cCtNYXRoLmltdWwoamUsQm4pfDApK01hdGguaW11bChXZSxzbil8MCx3PXcrTWF0aC5pbXVsKFdlLEJuKXwwO3ZhciBKaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsJHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxGbil8MCkrTWF0aC5pbXVsKEZlLCR0'@; put 'KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxGbil8MCkrKHA+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGVuKSxwPShwPU1hdGguaW11bChVdCwkbikpK01hdGguaW11bChibixlbil8MCx3PU1hdGguaW11bChibiwkbiksdj12K01h'@; put 'dGguaW11bChQdCxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LGZuKXwwKStNYXRoLmltdWwob24sZnQpfDAsdz13K01hdGguaW11bChvbixmbil8MCx2PXYrTWF0aC5pbXVsKHV0LHd0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWHQpfDApK01hdGguaW11bChNdCx3dCl8MCx3PXcrTWF0aC5p'@; put 'bXVsKE10LFh0KXwwLHY9ditNYXRoLmltdWwoRGUsTnQpfDAscD0ocD1wK01hdGguaW11bChEZSxtbil8MCkrTWF0aC5pbXVsKHplLE50KXwwLHc9dytNYXRoLmltdWwoemUsbW4pfDAsdj12K01hdGguaW11bChVZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLFF0KXwwKStNYXRoLmltdWwo'@; put 'aHQsSXQpfDAsdz13K01hdGguaW11bChodCxRdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWXQpfDApK01hdGguaW11bChxZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFl0KXwwLHY9ditNYXRoLmltdWwoUGUsenQpfDAscD0ocD1wK01hdGguaW11bChQ'@; put 'ZSx5bil8MCkrTWF0aC5pbXVsKGJlLHp0KXwwLHc9dytNYXRoLmltdWwoYmUseW4pfDAsdj12K01hdGguaW11bChZZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFllLEJuKXwwKStNYXRoLmltdWwoUWUsc24pfDAsdz13K01hdGguaW11bChRZSxCbil8MCx2PXYrTWF0aC5pbXVsKGplLCR0KXww'@; put 'LHA9KHA9cCtNYXRoLmltdWwoamUsRm4pfDApK01hdGguaW11bChXZSwkdCl8MCx3PXcrTWF0aC5pbXVsKFdlLEZuKXwwO3ZhciBhbz0oZmUrKHY9ditNYXRoLmltdWwoTGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxqbil8MCkrTWF0aC5pbXVsKEZlLGxuKXwwKSk8'@; put 'PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGFvPj4+MjYpfDAsYW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGZ0KSxwPShwPU1hdGguaW11bChVdCxmbikpK01hdGguaW11bChibixmdCl8MCx3PU1hdGguaW11bChibixmbiksdj12K01hdGguaW11'@; put 'bChQdCx3dCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFh0KXwwKStNYXRoLmltdWwob24sd3QpfDAsdz13K01hdGguaW11bChvbixYdCl8MCx2PXYrTWF0aC5pbXVsKHV0LE50KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsbW4pfDApK01hdGguaW11bChNdCxOdCl8MCx3PXcrTWF0aC5pbXVsKE10'@; put 'LG1uKXwwLHY9ditNYXRoLmltdWwoRGUsSXQpfDAscD0ocD1wK01hdGguaW11bChEZSxRdCl8MCkrTWF0aC5pbXVsKHplLEl0KXwwLHc9dytNYXRoLmltdWwoemUsUXQpfDAsdj12K01hdGguaW11bChVZSxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLFl0KXwwKStNYXRoLmltdWwoaHQscHQp'@; put 'fDAsdz13K01hdGguaW11bChodCxZdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHp0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUseW4pfDApK01hdGguaW11bChxZSx6dCl8MCx3PXcrTWF0aC5pbXVsKHFlLHluKXwwLHY9ditNYXRoLmltdWwoUGUsc24pfDAscD0ocD1wK01hdGguaW11bChQZSxCbil8'@; put 'MCkrTWF0aC5pbXVsKGJlLHNuKXwwLHc9dytNYXRoLmltdWwoYmUsQm4pfDAsdj12K01hdGguaW11bChZZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLEZuKXwwKStNYXRoLmltdWwoUWUsJHQpfDAsdz13K01hdGguaW11bChRZSxGbil8MDt2YXIgcm89KGZlKyh2PXYrTWF0aC5pbXVsKGpl'@; put 'LGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoamUsam4pfDApK01hdGguaW11bChXZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoV2Usam4pfDApKyhwPj4+MTMpfDApKyhybz4+PjI2KXwwLHJvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCx3dCkscD0ocD1N'@; put 'YXRoLmltdWwoVXQsWHQpKStNYXRoLmltdWwoYm4sd3QpfDAsdz1NYXRoLmltdWwoYm4sWHQpLHY9ditNYXRoLmltdWwoUHQsTnQpfDAscD0ocD1wK01hdGguaW11bChQdCxtbil8MCkrTWF0aC5pbXVsKG9uLE50KXwwLHc9dytNYXRoLmltdWwob24sbW4pfDAsdj12K01hdGguaW11bCh1dCxJ'@; put 'dCl8MCxwPShwPXArTWF0aC5pbXVsKHV0LFF0KXwwKStNYXRoLmltdWwoTXQsSXQpfDAsdz13K01hdGguaW11bChNdCxRdCl8MCx2PXYrTWF0aC5pbXVsKERlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsWXQpfDApK01hdGguaW11bCh6ZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHplLFl0KXww'@; put 'LHY9ditNYXRoLmltdWwoVWUsenQpfDAscD0ocD1wK01hdGguaW11bChVZSx5bil8MCkrTWF0aC5pbXVsKGh0LHp0KXwwLHc9dytNYXRoLmltdWwoaHQseW4pfDAsdj12K01hdGguaW11bChUZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFRlLEJuKXwwKStNYXRoLmltdWwocWUsc24pfDAsdz13'@; put 'K01hdGguaW11bChxZSxCbil8MCx2PXYrTWF0aC5pbXVsKFBlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoUGUsRm4pfDApK01hdGguaW11bChiZSwkdCl8MCx3PXcrTWF0aC5pbXVsKGJlLEZuKXwwO3ZhciBpbz0oZmUrKHY9ditNYXRoLmltdWwoWWUsbG4pfDApfDApKygoODE5MSYocD0ocD1w'@; put 'K01hdGguaW11bChZZSxqbil8MCkrTWF0aC5pbXVsKFFlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChRZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LE50KSxwPShwPU1hdGguaW11bChVdCxtbikpK01hdGguaW11'@; put 'bChibixOdCl8MCx3PU1hdGguaW11bChibixtbiksdj12K01hdGguaW11bChQdCxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFF0KXwwKStNYXRoLmltdWwob24sSXQpfDAsdz13K01hdGguaW11bChvbixRdCl8MCx2PXYrTWF0aC5pbXVsKHV0LHB0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQs'@; put 'WXQpfDApK01hdGguaW11bChNdCxwdCl8MCx3PXcrTWF0aC5pbXVsKE10LFl0KXwwLHY9ditNYXRoLmltdWwoRGUsenQpfDAscD0ocD1wK01hdGguaW11bChEZSx5bil8MCkrTWF0aC5pbXVsKHplLHp0KXwwLHc9dytNYXRoLmltdWwoemUseW4pfDAsdj12K01hdGguaW11bChVZSxzbil8MCxw'@; put 'PShwPXArTWF0aC5pbXVsKFVlLEJuKXwwKStNYXRoLmltdWwoaHQsc24pfDAsdz13K01hdGguaW11bChodCxCbil8MCx2PXYrTWF0aC5pbXVsKFRlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsRm4pfDApK01hdGguaW11bChxZSwkdCl8MCx3PXcrTWF0aC5pbXVsKHFlLEZuKXwwO3ZhciBH'@; put 'aT0oZmUrKHY9ditNYXRoLmltdWwoUGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQZSxqbil8MCkrTWF0aC5pbXVsKGJlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChiZSxqbil8MCkrKHA+Pj4xMyl8MCkrKEdpPj4+MjYpfDAsR2kmPTY3MTA4ODYzLHY9'@; put 'TWF0aC5pbXVsKFV0LEl0KSxwPShwPU1hdGguaW11bChVdCxRdCkpK01hdGguaW11bChibixJdCl8MCx3PU1hdGguaW11bChibixRdCksdj12K01hdGguaW11bChQdCxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFl0KXwwKStNYXRoLmltdWwob24scHQpfDAsdz13K01hdGguaW11bChvbixZ'@; put 'dCl8MCx2PXYrTWF0aC5pbXVsKHV0LHp0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQseW4pfDApK01hdGguaW11bChNdCx6dCl8MCx3PXcrTWF0aC5pbXVsKE10LHluKXwwLHY9ditNYXRoLmltdWwoRGUsc24pfDAscD0ocD1wK01hdGguaW11bChEZSxCbil8MCkrTWF0aC5pbXVsKHplLHNuKXww'@; put 'LHc9dytNYXRoLmltdWwoemUsQm4pfDAsdj12K01hdGguaW11bChVZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLEZuKXwwKStNYXRoLmltdWwoaHQsJHQpfDAsdz13K01hdGguaW11bChodCxGbil8MDt2YXIgaG89KGZlKyh2PXYrTWF0aC5pbXVsKFRlLGxuKXwwKXwwKSsoKDgxOTEmKHA9'@; put 'KHA9cCtNYXRoLmltdWwoVGUsam4pfDApK01hdGguaW11bChxZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwocWUsam4pfDApKyhwPj4+MTMpfDApKyhobz4+PjI2KXwwLGhvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCxwdCkscD0ocD1NYXRoLmltdWwoVXQsWXQpKStNYXRo'@; put 'LmltdWwoYm4scHQpfDAsdz1NYXRoLmltdWwoYm4sWXQpLHY9ditNYXRoLmltdWwoUHQsenQpfDAscD0ocD1wK01hdGguaW11bChQdCx5bil8MCkrTWF0aC5pbXVsKG9uLHp0KXwwLHc9dytNYXRoLmltdWwob24seW4pfDAsdj12K01hdGguaW11bCh1dCxzbil8MCxwPShwPXArTWF0aC5pbXVs'@; put 'KHV0LEJuKXwwKStNYXRoLmltdWwoTXQsc24pfDAsdz13K01hdGguaW11bChNdCxCbil8MCx2PXYrTWF0aC5pbXVsKERlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsRm4pfDApK01hdGguaW11bCh6ZSwkdCl8MCx3PXcrTWF0aC5pbXVsKHplLEZuKXwwO3ZhciB5cj0oZmUrKHY9ditNYXRo'@; put 'LmltdWwoVWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChVZSxqbil8MCkrTWF0aC5pbXVsKGh0LGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChodCxqbil8MCkrKHA+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHp0'@; put 'KSxwPShwPU1hdGguaW11bChVdCx5bikpK01hdGguaW11bChibix6dCl8MCx3PU1hdGguaW11bChibix5biksdj12K01hdGguaW11bChQdCxzbil8MCxwPShwPXArTWF0aC5pbXVsKFB0LEJuKXwwKStNYXRoLmltdWwob24sc24pfDAsdz13K01hdGguaW11bChvbixCbil8MCx2PXYrTWF0aC5p'@; put 'bXVsKHV0LCR0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsRm4pfDApK01hdGguaW11bChNdCwkdCl8MCx3PXcrTWF0aC5pbXVsKE10LEZuKXwwO3ZhciBQaT0oZmUrKHY9ditNYXRoLmltdWwoRGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChEZSxqbil8MCkrTWF0aC5pbXVs'@; put 'KHplLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bCh6ZSxqbil8MCkrKHA+Pj4xMyl8MCkrKFBpPj4+MjYpfDAsUGkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHNuKSxwPShwPU1hdGguaW11bChVdCxCbikpK01hdGguaW11bChibixzbil8MCx3PU1hdGguaW11bChibixCbiks'@; put 'dj12K01hdGguaW11bChQdCwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LEZuKXwwKStNYXRoLmltdWwob24sJHQpfDAsdz13K01hdGguaW11bChvbixGbil8MDt2YXIgTG89KGZlKyh2PXYrTWF0aC5pbXVsKHV0LGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwodXQsam4pfDAp'@; put 'K01hdGguaW11bChNdCxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoTXQsam4pfDApKyhwPj4+MTMpfDApKyhMbz4+PjI2KXwwLExvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCwkdCkscD0ocD1NYXRoLmltdWwoVXQsRm4pKStNYXRoLmltdWwoYm4sJHQpfDAsdz1NYXRoLmlt'@; put 'dWwoYm4sRm4pO3ZhciBocz0oZmUrKHY9ditNYXRoLmltdWwoUHQsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQdCxqbil8MCkrTWF0aC5pbXVsKG9uLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChvbixqbil8MCkrKHA+Pj4xMyl8MCkrKGhzPj4+MjYpfDAs'@; put 'aHMmPTY3MTA4ODYzO3ZhciBycz0oZmUrKHY9TWF0aC5pbXVsKFV0LGxuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChVdCxqbikpK01hdGguaW11bChibixsbil8MCkpPDwxMyl8MDtyZXR1cm4gZmU9KCh3PU1hdGguaW11bChibixqbikpKyhwPj4+MTMpfDApKyhycz4+PjI2KXwwLHJz'@; put 'Jj02NzEwODg2MyxkZVswXT1xcixkZVsxXT1naSxkZVsyXT14cixkZVszXT1VaSxkZVs0XT1LcixkZVs1XT1ubyxkZVs2XT1IcixkZVs3XT1xaSxkZVs4XT1KaSxkZVs5XT1hbyxkZVsxMF09cm8sZGVbMTFdPWlvLGRlWzEyXT1HaSxkZVsxM109aG8sZGVbMTRdPXlyLGRlWzE1XT1QaSxkZVsx'@; put 'Nl09TG8sZGVbMTddPWhzLGRlWzE4XT1ycywwIT09ZmUmJihkZVsxOV09ZmUsUy5sZW5ndGgrKyksU307ZnVuY3Rpb24gb2UoZyxDLFMpe3JldHVybihuZXcgc2UpLm11bHAoZyxDLFMpfWZ1bmN0aW9uIHNlKGcsQyl7dGhpcy54PWcsdGhpcy55PUN9TWF0aC5pbXVsfHwodGU9ZWUpLEUucHJv'@; put 'dG90eXBlLm11bFRvPWZ1bmN0aW9uKGcsQyl7dmFyIHY9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09Zy5sZW5ndGg/dGUodGhpcyxnLEMpOnY8NjM/ZWUodGhpcyxnLEMpOnY8MTAyND9mdW5jdGlvbihwLHcsSil7Si5uZWdhdGl2ZT13Lm5lZ2F0'@; put 'aXZlXnAubmVnYXRpdmUsSi5sZW5ndGg9cC5sZW5ndGgrdy5sZW5ndGg7Zm9yKHZhciBuZT0wLGRlPTAsZmU9MDtmZTxKLmxlbmd0aC0xO2ZlKyspe3ZhciB4ZT1kZTtkZT0wO2Zvcih2YXIgTGU9NjcxMDg4NjMmbmUsRmU9TWF0aC5taW4oZmUsdy5sZW5ndGgtMSksT2U9TWF0aC5tYXgoMCxm'@; put 'ZS1wLmxlbmd0aCsxKTtPZTw9RmU7T2UrKyl7dmFyIFdlPSgwfHAud29yZHNbZmUtT2VdKSooMHx3LndvcmRzW09lXSksS2U9NjcxMDg4NjMmV2U7TGU9NjcxMDg4NjMmKEtlPUtlK0xlfDApLGRlKz0oeGU9KHhlPXhlKyhXZS82NzEwODg2NHwwKXwwKSsoS2U+Pj4yNil8MCk+Pj4yNix4ZSY9'@; put 'NjcxMDg4NjN9Si53b3Jkc1tmZV09TGUsbmU9eGUseGU9ZGV9cmV0dXJuIDAhPT1uZT9KLndvcmRzW2ZlXT1uZTpKLmxlbmd0aC0tLEouc3RyaXAoKX0odGhpcyxnLEMpOm9lKHRoaXMsZyxDKX0sc2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShn'@; put 'KSxTPUUucHJvdG90eXBlLl9jb3VudEJpdHMoZyktMSx2PTA7djxnO3YrKylDW3ZdPXRoaXMucmV2QmluKHYsUyxnKTtyZXR1cm4gQ30sc2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLEMsUyl7aWYoMD09PWd8fGc9PT1TLTEpcmV0dXJuIGc7Zm9yKHZhciB2PTAscD0wO3A8QztwKysp'@; put 'dnw9KDEmZyk8PEMtcC0xLGc+Pj0xO3JldHVybiB2fSxzZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLEMsUyx2LHAsdyl7Zm9yKHZhciBKPTA7Sjx3O0orKyl2W0pdPUNbZ1tKXV0scFtKXT1TW2dbSl1dfSxzZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGcsQyxTLHYscCx3'@; put 'KXt0aGlzLnBlcm11dGUodyxnLEMsUyx2LHApO2Zvcih2YXIgSj0xO0o8cDtKPDw9MSlmb3IodmFyIG5lPUo8PDEsZGU9TWF0aC5jb3MoMipNYXRoLlBJL25lKSxmZT1NYXRoLnNpbigyKk1hdGguUEkvbmUpLHhlPTA7eGU8cDt4ZSs9bmUpZm9yKHZhciBMZT1kZSxGZT1mZSxPZT0wO09lPEo7'@; put 'T2UrKyl7dmFyIGplPVNbeGUrT2VdLFdlPXZbeGUrT2VdLEtlPVNbeGUrT2UrSl0sWWU9dlt4ZStPZStKXSxRZT1MZSpLZS1GZSpZZTtZZT1MZSpZZStGZSpLZSxTW3hlK09lXT1qZSsoS2U9UWUpLHZbeGUrT2VdPVdlK1llLFNbeGUrT2UrSl09amUtS2Usdlt4ZStPZStKXT1XZS1ZZSxPZSE9'@; put 'PW5lJiYoUWU9ZGUqTGUtZmUqRmUsRmU9ZGUqRmUrZmUqTGUsTGU9UWUpfX0sc2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcsQyl7dmFyIFM9MXxNYXRoLm1heChDLGcpLHY9MSZTLHA9MDtmb3IoUz1TLzJ8MDtTO1M+Pj49MSlwKys7cmV0dXJuIDE8PHArMSt2fSxzZS5wcm90'@; put 'b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGcsQyxTKXtpZighKFM8PTEpKWZvcih2YXIgdj0wO3Y8Uy8yO3YrKyl7dmFyIHA9Z1t2XTtnW3ZdPWdbUy12LTFdLGdbUy12LTFdPXAscD1DW3ZdLENbdl09LUNbUy12LTFdLENbUy12LTFdPS1wfX0sc2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1m'@; put 'dW5jdGlvbihnLEMpe2Zvcih2YXIgUz0wLHY9MDt2PEMvMjt2Kyspe3ZhciBwPTgxOTIqTWF0aC5yb3VuZChnWzIqdisxXS9DKStNYXRoLnJvdW5kKGdbMip2XS9DKStTO2dbdl09NjcxMDg4NjMmcCxTPXA8NjcxMDg4NjQ/MDpwLzY3MTA4ODY0fDB9cmV0dXJuIGd9LHNlLnByb3RvdHlwZS5j'@; put 'b252ZXJ0MTNiPWZ1bmN0aW9uKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9MDt3PEM7dysrKVNbMip3XT04MTkxJihwKz0wfGdbd10pLFNbMip3KzFdPTgxOTEmKHA+Pj49MTMpLHA+Pj49MTM7Zm9yKHc9MipDO3c8djsrK3cpU1t3XT0wO0koMD09PXApLEkoMD09KC04MTkyJnApKX0sc2UucHJv'@; put 'dG90eXBlLnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPTA7UzxnO1MrKylDW1NdPTA7cmV0dXJuIEN9LHNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj0yKnRoaXMuZ3Vlc3NMZW4xM2IoZy5sZW5ndGgsQy5sZW5ndGgpLHA9dGhpcy5tYWtl'@; put 'UkJUKHYpLHc9dGhpcy5zdHViKHYpLEo9bmV3IEFycmF5KHYpLG5lPW5ldyBBcnJheSh2KSxkZT1uZXcgQXJyYXkodiksZmU9bmV3IEFycmF5KHYpLHhlPW5ldyBBcnJheSh2KSxMZT1uZXcgQXJyYXkodiksRmU9Uy53b3JkcztGZS5sZW5ndGg9dix0aGlzLmNvbnZlcnQxM2IoZy53b3Jkcyxn'@; put 'Lmxlbmd0aCxKLHYpLHRoaXMuY29udmVydDEzYihDLndvcmRzLEMubGVuZ3RoLGZlLHYpLHRoaXMudHJhbnNmb3JtKEosdyxuZSxkZSx2LHApLHRoaXMudHJhbnNmb3JtKGZlLHcseGUsTGUsdixwKTtmb3IodmFyIE9lPTA7T2U8djtPZSsrKXt2YXIgamU9bmVbT2VdKnhlW09lXS1kZVtPZV0q'@; put 'TGVbT2VdO2RlW09lXT1uZVtPZV0qTGVbT2VdK2RlW09lXSp4ZVtPZV0sbmVbT2VdPWplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShuZSxkZSx2KSx0aGlzLnRyYW5zZm9ybShuZSxkZSxGZSx3LHYscCksdGhpcy5jb25qdWdhdGUoRmUsdyx2KSx0aGlzLm5vcm1hbGl6ZTEzYihGZSx2KSxTLm5l'@; put 'Z2F0aXZlPWcubmVnYXRpdmVeQy5uZWdhdGl2ZSxTLmxlbmd0aD1nLmxlbmd0aCtDLmxlbmd0aCxTLnN0cmlwKCl9LEUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMu'@; put 'bXVsVG8oZyxDKX0sRS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLG9lKHRoaXMsZyxDKX0sRS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9u'@; put 'ZSgpLm11bFRvKGcsdGhpcyl9LEUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnKSxJKGc8NjcxMDg4NjQpO2Zvcih2YXIgQz0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIHY9KDB8dGhpcy53b3Jkc1tTXSkqZyxwPSg2NzEwODg2MyZ2KSsoNjcx'@; put 'MDg4NjMmQyk7Qz4+PTI2LEMrPXYvNjcxMDg4NjR8MCxDKz1wPj4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZwfXJldHVybiAwIT09QyYmKHRoaXMud29yZHNbU109Qyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25l'@; put 'KCkuaW11bG4oZyl9LEUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sRS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sRS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcpe3ZhciBDPWZ1bmN0aW9u'@; put 'KHcpe2Zvcih2YXIgSj1uZXcgQXJyYXkody5iaXRMZW5ndGgoKSksbmU9MDtuZTxKLmxlbmd0aDtuZSsrKXt2YXIgZmU9bmUlMjY7SltuZV09KHcud29yZHNbbmUvMjZ8MF0mMTw8ZmUpPj4+ZmV9cmV0dXJuIEp9KGcpO2lmKDA9PT1DLmxlbmd0aClyZXR1cm4gbmV3IEUoMSk7Zm9yKHZhciBT'@; put 'PXRoaXMsdj0wO3Y8Qy5sZW5ndGgmJjA9PT1DW3ZdO3YrKyxTPVMuc3FyKCkpO2lmKCsrdjxDLmxlbmd0aClmb3IodmFyIHA9Uy5zcXIoKTt2PEMubGVuZ3RoO3YrKyxwPXAuc3FyKCkpMCE9PUNbdl0mJihTPVMubXVsKHApKTtyZXR1cm4gU30sRS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9u'@; put 'KGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQyxTPWclMjYsdj0oZy1TKS8yNixwPTY3MTA4ODYzPj4+MjYtUzw8MjYtUztpZigwIT09Uyl7dmFyIHc9MDtmb3IoQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgSj10aGlzLndvcmRzW0NdJnA7dGhpcy53b3Jkc1tDXT0oMHx0'@; put 'aGlzLndvcmRzW0NdKS1KPDxTfHcsdz1KPj4+MjYtU313JiYodGhpcy53b3Jkc1tDXT13LHRoaXMubGVuZ3RoKyspfWlmKDAhPT12KXtmb3IoQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0tKXRoaXMud29yZHNbQyt2XT10aGlzLndvcmRzW0NdO2ZvcihDPTA7Qzx2O0MrKyl0aGlzLndvcmRzW0Nd'@; put 'PTA7dGhpcy5sZW5ndGgrPXZ9cmV0dXJuIHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSxFLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyxDLFMpe3ZhciB2O0koIm51bWJlciI9'@; put 'PXR5cGVvZiBnJiZnPj0wKSx2PUM/KEMtQyUyNikvMjY6MDt2YXIgcD1nJTI2LHc9TWF0aC5taW4oKGctcCkvMjYsdGhpcy5sZW5ndGgpLEo9NjcxMDg4NjNeNjcxMDg4NjM+Pj5wPDxwLG5lPVM7aWYodi09dyx2PU1hdGgubWF4KDAsdiksbmUpe2Zvcih2YXIgZGU9MDtkZTx3O2RlKyspbmUu'@; put 'd29yZHNbZGVdPXRoaXMud29yZHNbZGVdO25lLmxlbmd0aD13fWlmKDAhPT13KWlmKHRoaXMubGVuZ3RoPncpZm9yKHRoaXMubGVuZ3RoLT13LGRlPTA7ZGU8dGhpcy5sZW5ndGg7ZGUrKyl0aGlzLndvcmRzW2RlXT10aGlzLndvcmRzW2RlK3ddO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMu'@; put 'bGVuZ3RoPTE7dmFyIGZlPTA7Zm9yKGRlPXRoaXMubGVuZ3RoLTE7ZGU+PTAmJigwIT09ZmV8fGRlPj12KTtkZS0tKXt2YXIgeGU9MHx0aGlzLndvcmRzW2RlXTt0aGlzLndvcmRzW2RlXT1mZTw8MjYtcHx4ZT4+PnAsZmU9eGUmSn1yZXR1cm4gbmUmJjAhPT1mZSYmKG5lLndvcmRzW25lLmxl'@; put 'bmd0aCsrXT1mZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyxDLFMpe3JldHVybiBJKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihnLEMsUyl9LEUucHJvdG90'@; put 'eXBlLnNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sRS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZyl9LEUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hy'@; put 'bihnKX0sRS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LEUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuISh0aGlzLmxlbmd0'@; put 'aDw9U3x8ISh0aGlzLndvcmRzW1NdJjE8PEMpKX0sRS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9z'@; put 'aXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1TP3RoaXM6KDAhPT1DJiZTKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oUyx0aGlzLmxlbmd0aCksMCE9PUMmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PkM8PEMpLHRoaXMuc3RyaXAoKSl9LEUucHJv'@; put 'dG90eXBlLm1hc2tuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSxFLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzwwP3RoaXMuaXN1Ym4oLWcpOjAhPT10aGlzLm5lZ2F0aXZl'@; put 'PzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGcpfSxF'@; put 'LnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0NdPj02NzEwODg2NDtDKyspdGhpcy53b3Jkc1tDXS09NjcxMDg4NjQsQz09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tDKzFdPTE6dGhp'@; put 'cy53b3Jkc1tDKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEMrMSksdGhpc30sRS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYoSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzwwKXJldHVybiB0aGlzLmlhZGRuKC1nKTtpZigw'@; put 'IT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVn'@; put 'YXRpdmU9MTtlbHNlIGZvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbQ108MDtDKyspdGhpcy53b3Jkc1tDXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tDKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMu'@; put 'Y2xvbmUoKS5pYWRkbihnKX0sRS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSxFLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxFLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sRS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdixwO3RoaXMuX2V4cGFuZChnLmxlbmd0aCtTKTt2YXIgSj0wO2Zvcih2PTA7djxnLmxlbmd0aDt2Kyspe3A9KDB8dGhpcy53b3Jkc1t2K1NdKStKO3ZhciBuZT0oMHxn'@; put 'LndvcmRzW3ZdKSpDO0o9KChwLT02NzEwODg2MyZuZSk+PjI2KS0obmUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnB9Zm9yKDt2PHRoaXMubGVuZ3RoLVM7disrKUo9KHA9KDB8dGhpcy53b3Jkc1t2K1NdKStKKT4+MjYsdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnA7'@; put 'aWYoMD09PUopcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoSSgtMT09PUopLEo9MCx2PTA7djx0aGlzLmxlbmd0aDt2KyspSj0ocD0tKDB8dGhpcy53b3Jkc1t2XSkrSik+PjI2LHRoaXMud29yZHNbdl09NjcxMDg4NjMmcDtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sRS5w'@; put 'cm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oZyxDKXt2YXIgUyx2PXRoaXMuY2xvbmUoKSxwPWcsdz0wfHAud29yZHNbcC5sZW5ndGgtMV07MCE9KFM9MjYtdGhpcy5fY291bnRCaXRzKHcpKSYmKHA9cC51c2hsbihTKSx2Lml1c2hsbihTKSx3PTB8cC53b3Jkc1twLmxlbmd0aC0xXSk7dmFy'@; put 'IEosbmU9di5sZW5ndGgtcC5sZW5ndGg7aWYoIm1vZCIhPT1DKXsoSj1uZXcgRShudWxsKSkubGVuZ3RoPW5lKzEsSi53b3Jkcz1uZXcgQXJyYXkoSi5sZW5ndGgpO2Zvcih2YXIgZGU9MDtkZTxKLmxlbmd0aDtkZSsrKUoud29yZHNbZGVdPTB9dmFyIGZlPXYuY2xvbmUoKS5faXNobG5zdWJt'@; put 'dWwocCwxLG5lKTswPT09ZmUubmVnYXRpdmUmJih2PWZlLEomJihKLndvcmRzW25lXT0xKSk7Zm9yKHZhciB4ZT1uZS0xO3hlPj0wO3hlLS0pe3ZhciBMZT02NzEwODg2NCooMHx2LndvcmRzW3AubGVuZ3RoK3hlXSkrKDB8di53b3Jkc1twLmxlbmd0aCt4ZS0xXSk7Zm9yKExlPU1hdGgubWlu'@; put 'KExlL3d8MCw2NzEwODg2Myksdi5faXNobG5zdWJtdWwocCxMZSx4ZSk7MCE9PXYubmVnYXRpdmU7KUxlLS0sdi5uZWdhdGl2ZT0wLHYuX2lzaGxuc3VibXVsKHAsMSx4ZSksdi5pc1plcm8oKXx8KHYubmVnYXRpdmVePTEpO0omJihKLndvcmRzW3hlXT1MZSl9cmV0dXJuIEomJkouc3RyaXAo'@; put 'KSx2LnN0cmlwKCksImRpdiIhPT1DJiYwIT09UyYmdi5pdXNocm4oUykse2RpdjpKfHxudWxsLG1vZDp2fX0sRS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcsQyxTKXtyZXR1cm4gSSghZy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBFKDApLG1vZDpuZXcgRSgwKX06MCE9'@; put 'PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcsQyksIm1vZCIhPT1DJiYodj13LmRpdi5uZWcoKSksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pYWRkKGcpKSx7ZGl2OnYsbW9kOnB9KTowPT09dGhpcy5u'@; put 'ZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmU/KHc9dGhpcy5kaXZtb2QoZy5uZWcoKSxDKSwibW9kIiE9PUMmJih2PXcuZGl2Lm5lZygpKSx7ZGl2OnYsbW9kOncubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcubmVnKCksQyksImRpdiIhPT1DJiYo'@; put 'cD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pc3ViKGcpKSx7ZGl2OncuZGl2LG1vZDpwfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgRSgwKSxtb2Q6dGhpc306MT09PWcubGVuZ3RoPyJkaXYiPT09Qz97ZGl2OnRoaXMuZGl2bihnLndv'@; put 'cmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1DP3tkaXY6bnVsbCxtb2Q6bmV3IEUodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyBFKHRoaXMubW9kbihnLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZyxDKTt2YXIgdixwLHd9LEUu'@; put 'cHJvdG90eXBlLmRpdj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSxFLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEpLm1vZH0sRS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhp'@; put 'cy5kaXZtb2QoZywibW9kIiwhMCkubW9kfSxFLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgQz10aGlzLmRpdm1vZChnKTtpZihDLm1vZC5pc1plcm8oKSlyZXR1cm4gQy5kaXY7dmFyIFM9MCE9PUMuZGl2Lm5lZ2F0aXZlP0MubW9kLmlzdWIoZyk6Qy5tb2Qsdj1nLnVzaHJu'@; put 'KDEpLHA9Zy5hbmRsbigxKSx3PVMuY21wKHYpO3JldHVybiB3PDB8fDE9PT1wJiYwPT09dz9DLmRpdjowIT09Qy5kaXYubmVnYXRpdmU/Qy5kaXYuaXN1Ym4oMSk6Qy5kaXYuaWFkZG4oMSl9LEUucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZyl7SShnPD02NzEwODg2Myk7Zm9yKHZhciBDPTY3'@; put 'MTA4ODY0JWcsUz0wLHY9dGhpcy5sZW5ndGgtMTt2Pj0wO3YtLSlTPShDKlMrKDB8dGhpcy53b3Jkc1t2XSkpJWc7cmV0dXJuIFN9LEUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe0koZzw9NjcxMDg4NjMpO2Zvcih2YXIgQz0wLFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl7dmFyIHY9'@; put 'KDB8dGhpcy53b3Jkc1tTXSkrNjcxMDg4NjQqQzt0aGlzLndvcmRzW1NdPXYvZ3wwLEM9diVnfXJldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sRS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtJ'@; put 'KDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHY9bmV3IEUoMSkscD1uZXcgRSgwKSx3PW5ldyBFKDApLEo9bmV3IEUoMSksbmU9MDtDLmlzRXZlbigpJiZTLmlz'@; put 'RXZlbigpOylDLml1c2hybigxKSxTLml1c2hybigxKSwrK25lO2Zvcih2YXIgZGU9Uy5jbG9uZSgpLGZlPUMuY2xvbmUoKTshQy5pc1plcm8oKTspe2Zvcih2YXIgeGU9MCxMZT0xOyEoQy53b3Jkc1swXSZMZSkmJnhlPDI2OysreGUsTGU8PD0xKTtpZih4ZT4wKWZvcihDLml1c2hybih4ZSk7'@; put 'eGUtLSA+MDspKHYuaXNPZGQoKXx8cC5pc09kZCgpKSYmKHYuaWFkZChkZSkscC5pc3ViKGZlKSksdi5pdXNocm4oMSkscC5pdXNocm4oMSk7Zm9yKHZhciBGZT0wLE9lPTE7IShTLndvcmRzWzBdJk9lKSYmRmU8MjY7KytGZSxPZTw8PTEpO2lmKEZlPjApZm9yKFMuaXVzaHJuKEZlKTtGZS0t'@; put 'ID4wOykody5pc09kZCgpfHxKLmlzT2RkKCkpJiYody5pYWRkKGRlKSxKLmlzdWIoZmUpKSx3Lml1c2hybigxKSxKLml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHYuaXN1Yih3KSxwLmlzdWIoSikpOihTLmlzdWIoQyksdy5pc3ViKHYpLEouaXN1YihwKSl9cmV0dXJue2E6dyxi'@; put 'OkosZ2NkOlMuaXVzaGxuKG5lKX19LEUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHYscD1uZXcgRSgx'@; put 'KSx3PW5ldyBFKDApLEo9Uy5jbG9uZSgpO0MuY21wbigxKT4wJiZTLmNtcG4oMSk+MDspe2Zvcih2YXIgbmU9MCxkZT0xOyEoQy53b3Jkc1swXSZkZSkmJm5lPDI2OysrbmUsZGU8PD0xKTtpZihuZT4wKWZvcihDLml1c2hybihuZSk7bmUtLSA+MDspcC5pc09kZCgpJiZwLmlhZGQoSikscC5p'@; put 'dXNocm4oMSk7Zm9yKHZhciBmZT0wLHhlPTE7IShTLndvcmRzWzBdJnhlKSYmZmU8MjY7KytmZSx4ZTw8PTEpO2lmKGZlPjApZm9yKFMuaXVzaHJuKGZlKTtmZS0tID4wOyl3LmlzT2RkKCkmJncuaWFkZChKKSx3Lml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHAuaXN1Yih3KSk6'@; put 'KFMuaXN1YihDKSx3LmlzdWIocCkpfXJldHVybih2PTA9PT1DLmNtcG4oMSk/cDp3KS5jbXBuKDApPDAmJnYuaWFkZChnKSx2fSxFLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMoKTtpZihnLmlzWmVybygpKXJldHVybiB0aGlzLmFicygp'@; put 'O3ZhciBDPXRoaXMuY2xvbmUoKSxTPWcuY2xvbmUoKTtDLm5lZ2F0aXZlPTAsUy5uZWdhdGl2ZT0wO2Zvcih2YXIgdj0wO0MuaXNFdmVuKCkmJlMuaXNFdmVuKCk7disrKUMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtDLmlzRXZlbigpOylDLml1c2hybigxKTtmb3IoO1Mu'@; put 'aXNFdmVuKCk7KVMuaXVzaHJuKDEpO3ZhciBwPUMuY21wKFMpO2lmKHA8MCl7dmFyIHc9QztDPVMsUz13fWVsc2UgaWYoMD09PXB8fDA9PT1TLmNtcG4oMSkpYnJlYWs7Qy5pc3ViKFMpfXJldHVybiBTLml1c2hsbih2KX0sRS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhp'@; put 'cy5lZ2NkKGcpLmEudW1vZChnKX0sRS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxFLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sRS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24o'@; put 'Zyl7cmV0dXJuIHRoaXMud29yZHNbMF0mZ30sRS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciBDPWclMjYsUz0oZy1DKS8yNix2PTE8PEM7aWYodGhpcy5sZW5ndGg8PVMpcmV0dXJuIHRoaXMuX2V4cGFuZChTKzEpLHRoaXMud29yZHNbU118'@; put 'PXYsdGhpcztmb3IodmFyIHA9dix3PVM7MCE9PXAmJnc8dGhpcy5sZW5ndGg7dysrKXt2YXIgSj0wfHRoaXMud29yZHNbd107cD0oSis9cCk+Pj4yNix0aGlzLndvcmRzW3ddPUomPTY3MTA4ODYzfXJldHVybiAwIT09cCYmKHRoaXMud29yZHNbd109cCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxF'@; put 'LnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sRS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgQyxTPWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIVMpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRp'@; put 'dmUmJlMpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpQz0xO2Vsc2V7UyYmKGc9LWcpLEkoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHY9MHx0aGlzLndvcmRzWzBdO0M9dj09PWc/MDp2PGc/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/'@; put 'MHwtQzpDfSxFLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgQz10aGlzLnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5l'@; put 'Z2F0aXZlPzB8LUM6Q30sRS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEM9MCxTPXRoaXMubGVuZ3RoLTE7Uz49MDtTLS0pe3ZhciB2PTB8dGhpcy53b3Jk'@; put 'c1tTXSxwPTB8Zy53b3Jkc1tTXTtpZih2IT09cCl7djxwP0M9LTE6dj5wJiYoQz0xKTticmVha319cmV0dXJuIEN9LEUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sRS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNt'@; put 'cChnKX0sRS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSxFLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSxFLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LEUu'@; put 'cHJvdG90eXBlLmx0PWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LEUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sRS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKTw9MH0sRS5wcm90b3R5cGUu'@; put 'ZXFuPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSxFLnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSxFLnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IEgoZyl9LEUucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJ'@; put 'KCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIEkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sRS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LEUu'@; put 'cHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZEFk'@; put 'ZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9'@; put 'LEUucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJ'@; put 'U3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9'@; put 'LEUucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24o'@; put 'Zyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxciB3'@; put 'b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LEUucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlz'@; put 'LnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3Fy'@; put 'dCh0aGlzKX0sRS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LEUucHJvdG90eXBlLnJlZE5lZz1mdW5j'@; put 'dGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQmJiFnLnJlZCwi'@; put 'cmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIGhlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdWUoZyxDKXt0aGlzLm5hbWU9Zyx0aGlzLnA9bmV3IEUoQywxNiks'@; put 'dGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IEUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIGNlKCl7dWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZm'@; put 'ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBHKCl7dWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBiKCl7dWUuY2FsbCh0aGlzLCJwMTky'@; put 'IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBEKCl7dWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1m'@; put 'dW5jdGlvbiBIKGcpe2lmKCJzdHJpbmciPT10eXBlb2YgZyl7dmFyIEM9RS5fcHJpbWUoZyk7dGhpcy5tPUMucCx0aGlzLnByaW1lPUN9ZWxzZSBJKGcuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09Zyx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTihn'@; put 'KXtILmNhbGwodGhpcyxnKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBFKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRo'@; put 'aXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXVlLnByb3RvdHlwZS5fdG1w'@; put 'PWZ1bmN0aW9uKCl7dmFyIGc9bmV3IEUobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSx1ZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgQyxTPWc7ZG97dGhpcy5zcGxpdChTLHRoaXMudG1wKSxDPShTPShTPXRoaXMuaW11'@; put 'bEsoUykpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShDPnRoaXMubik7dmFyIHY9Qzx0aGlzLm4/LTE6Uy51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT12PyhTLndvcmRzWzBdPTAsUy5sZW5ndGg9MSk6dj4wP1MuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVMuc3RyaXA/Uy5zdHJp'@; put 'cCgpOlMuX3N0cmlwKCksU30sdWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcsQyl7Zy5pdXNocm4odGhpcy5uLDAsQyl9LHVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LGsoY2UsdWUpLGNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihn'@; put 'LEMpe2Zvcih2YXIgUz00MTk0MzAzLHY9TWF0aC5taW4oZy5sZW5ndGgsOSkscD0wO3A8djtwKyspQy53b3Jkc1twXT1nLndvcmRzW3BdO2lmKEMubGVuZ3RoPXYsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcubGVuZ3RoPTEpO3ZhciB3PWcud29yZHNbOV07Zm9yKEMu'@; put 'd29yZHNbQy5sZW5ndGgrK109dyZTLHA9MTA7cDxnLmxlbmd0aDtwKyspe3ZhciBKPTB8Zy53b3Jkc1twXTtnLndvcmRzW3AtMTBdPShKJlMpPDw0fHc+Pj4yMix3PUp9Zy53b3Jkc1twLTEwXT13Pj4+PTIyLGcubGVuZ3RoLT0wPT09dyYmZy5sZW5ndGg+MTA/MTA6OX0sY2UucHJvdG90eXBl'@; put 'LmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgQz0wLFM9MDtTPGcubGVuZ3RoO1MrKyl7dmFyIHY9MHxnLndvcmRzW1NdO2cud29yZHNbU109NjcxMDg4NjMmKEMrPTk3Nyp2KSxDPTY0KnYrKEMv'@; put 'NjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sayhHLHVlKSxrKGIsdWUpLGsoRCx1ZSksRC5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPTAsUz0w'@; put 'O1M8Zy5sZW5ndGg7UysrKXt2YXIgdj0xOSooMHxnLndvcmRzW1NdKStDLHA9NjcxMDg4NjMmdjt2Pj4+PTI2LGcud29yZHNbU109cCxDPXZ9cmV0dXJuIDAhPT1DJiYoZy53b3Jkc1tnLmxlbmd0aCsrXT1DKSxnfSxFLl9wcmltZT1mdW5jdGlvbihnKXtpZihoZVtnXSlyZXR1cm4gaGVbZ107'@; put 'dmFyIEM7aWYoImsyNTYiPT09ZylDPW5ldyBjZTtlbHNlIGlmKCJwMjI0Ij09PWcpQz1uZXcgRztlbHNlIGlmKCJwMTkyIj09PWcpQz1uZXcgYjtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitnKTtDPW5ldyBEfXJldHVybiBoZVtnXT1DLEN9'@; put 'LEgucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGcpe0koMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLEMpe0ko'@; put 'MD09KGcubmVnYXRpdmV8Qy5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCYmZy5yZWQ9PT1DLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1l'@; put 'P3RoaXMucHJpbWUuaXJlZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3Rv'@; put 'dHlwZS5hZGQ9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5hZGQoQyk7cmV0dXJuIFMuY21wKHRoaXMubSk+PTAmJlMuaXN1Yih0aGlzLm0pLFMuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMp'@; put 'O3ZhciBTPWcuaWFkZChDKTtyZXR1cm4gUy5jbXAodGhpcy5tKT49MCYmUy5pc3ViKHRoaXMubSksU30sSC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksUy5fZm9y'@; put 'Y2VSZWQodGhpcyl9LEgucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5pc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksU30sSC5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3Zlcmlm'@; put 'eTEoZyksdGhpcy5pbW9kKGcudXNobG4oQykpfSxILnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5pbXVsKEMpKX0sSC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0'@; put 'aGlzLmltb2QoZy5tdWwoQykpfSxILnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxILnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LEgucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYoZy5p'@; put 'c1plcm8oKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPXRoaXMubS5hbmRsbigzKTtpZihJKEMlMj09MSksMz09PUMpe3ZhciBTPXRoaXMubS5hZGQobmV3IEUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyxTKX1mb3IodmFyIHY9dGhpcy5tLnN1Ym4oMSkscD0wOyF2LmlzWmVybygp'@; put 'JiYwPT09di5hbmRsbigxKTspcCsrLHYuaXVzaHJuKDEpO0koIXYuaXNaZXJvKCkpO3ZhciB3PW5ldyBFKDEpLnRvUmVkKHRoaXMpLEo9dy5yZWROZWcoKSxuZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksZGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihkZT1uZXcgRSgyKmRlKmRlKS50b1Jl'@; put 'ZCh0aGlzKTswIT09dGhpcy5wb3coZGUsbmUpLmNtcChKKTspZGUucmVkSUFkZChKKTtmb3IodmFyIGZlPXRoaXMucG93KGRlLHYpLHhlPXRoaXMucG93KGcsdi5hZGRuKDEpLml1c2hybigxKSksTGU9dGhpcy5wb3coZyx2KSxGZT1wOzAhPT1MZS5jbXAodyk7KXtmb3IodmFyIE9lPUxlLGpl'@; put 'PTA7MCE9PU9lLmNtcCh3KTtqZSsrKU9lPU9lLnJlZFNxcigpO0koamU8RmUpO3ZhciBXZT10aGlzLnBvdyhmZSxuZXcgRSgxKS5pdXNobG4oRmUtamUtMSkpO3hlPXhlLnJlZE11bChXZSksZmU9V2UucmVkU3FyKCksTGU9TGUucmVkTXVsKGZlKSxGZT1qZX1yZXR1cm4geGV9LEgucHJvdG90'@; put 'eXBlLmludm09ZnVuY3Rpb24oZyl7dmFyIEM9Zy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PUMubmVnYXRpdmU/KEMubmVnYXRpdmU9MCx0aGlzLmltb2QoQykucmVkTmVnKCkpOnRoaXMuaW1vZChDKX0sSC5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcsQyl7aWYoQy5pc1plcm8oKSlyZXR1'@; put 'cm4gbmV3IEUoMSkudG9SZWQodGhpcyk7aWYoMD09PUMuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBTPW5ldyBBcnJheSgxNik7U1swXT1uZXcgRSgxKS50b1JlZCh0aGlzKSxTWzFdPWc7Zm9yKHZhciB2PTI7djxTLmxlbmd0aDt2KyspU1t2XT10aGlzLm11bChTW3YtMV0sZyk7dmFy'@; put 'IHA9U1swXSx3PTAsSj0wLG5lPUMuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1uZSYmKG5lPTI2KSx2PUMubGVuZ3RoLTE7dj49MDt2LS0pe2Zvcih2YXIgZGU9Qy53b3Jkc1t2XSxmZT1uZS0xO2ZlPj0wO2ZlLS0pe3ZhciB4ZT1kZT4+ZmUmMTtwIT09U1swXSYmKHA9dGhpcy5zcXIocCkpLDAh'@; put 'PT14ZXx8MCE9PXc/KHc8PD0xLHd8PXhlLCg0PT0rK0p8fDA9PT12JiYwPT09ZmUpJiYocD10aGlzLm11bChwLFNbd10pLEo9MCx3PTApKTpKPTB9bmU9MjZ9cmV0dXJuIHB9LEgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIgQz1nLnVtb2QodGhpcy5tKTtyZXR1cm4gQz09'@; put 'PWc/Qy5jbG9uZSgpOkN9LEgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPWcuY2xvbmUoKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxFLm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBOKGcpfSxrKE4sSCksTi5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiB0aGlzLmltb2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LE4ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7aWYo'@; put 'Zy5pc1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgUz1nLmltdWwoQyksdj1TLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxwPVMuaXN1Yih2KS5pdXNocm4odGhpcy5z'@; put 'aGlmdCksdz1wO3JldHVybiBwLmNtcCh0aGlzLm0pPj0wP3c9cC5pc3ViKHRoaXMubSk6cC5jbXBuKDApPDAmJih3PXAuaWFkZCh0aGlzLm0pKSx3Ll9mb3JjZVJlZCh0aGlzKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5pc1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4g'@; put 'bmV3IEUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBTPWcubXVsKEMpLHY9Uy5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscD1TLmlzdWIodikuaXVzaHJuKHRoaXMuc2hpZnQpLHc9cDtyZXR1cm4gcC5jbXAodGhpcy5tKT49'@; put 'MD93PXAuaXN1Yih0aGlzLm0pOnAuY21wbigwKTwwJiYodz1wLmlhZGQodGhpcy5tKSksdy5fZm9yY2VSZWQodGhpcyl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0o'@; put 'TT1SLm5tZChNKSx0aGlzKX0sMzQ4MjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNTcxNyksSz1SKDIzMTgpLEk9Uig5Nzg1KSxrPVIoOTA3MiksRT1SKDEwMjcpO2Z1bmN0aW9uIGooVil7RS5jYWxsKHRoaXMsImRpZ2VzdCIpLHRoaXMuX2hhc2g9Vn16KGosRSksai5wcm90b3R5'@; put 'cGUuX3VwZGF0ZT1mdW5jdGlvbihWKXt0aGlzLl9oYXNoLnVwZGF0ZShWKX0sai5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LE0uZXhwb3J0cz1mdW5jdGlvbihWKXtyZXR1cm4ibWQ1Ij09PShWPVYudG9Mb3dlckNhc2UoKSk/bmV3IEs6'@; put 'InJtZDE2MCI9PT1WfHwicmlwZW1kMTYwIj09PVY/bmV3IEk6bmV3IGooayhWKSl9fSw4MDI4OihNLE8sUik9Pnt2YXIgej1SKDIzMTgpO00uZXhwb3J0cz1mdW5jdGlvbihLKXtyZXR1cm4obmV3IHopLnVwZGF0ZShLKS5kaWdlc3QoKX19LDgzNTU6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2'@; put 'YXIgej1SKDU3MTcpLEs9UigxMDMxKSxJPVIoMTAyNyksaz1SKDk1MDkpLkJ1ZmZlcixFPVIoODAyOCksaj1SKDk3ODUpLFY9Uig5MDcyKSxCPWsuYWxsb2MoMTI4KTtmdW5jdGlvbiBZKFgsVSl7SS5jYWxsKHRoaXMsImRpZ2VzdCIpLCJzdHJpbmciPT10eXBlb2YgVSYmKFU9ay5mcm9tKFUp'@; put 'KTt2YXIgcT0ic2hhNTEyIj09PVh8fCJzaGEzODQiPT09WD8xMjg6NjQ7dGhpcy5fYWxnPVgsdGhpcy5fa2V5PVUsVS5sZW5ndGg+cT9VPSgicm1kMTYwIj09PVg/bmV3IGo6VihYKSkudXBkYXRlKFUpLmRpZ2VzdCgpOlUubGVuZ3RoPHEmJihVPWsuY29uY2F0KFtVLEJdLHEpKTtmb3IodmFy'@; put 'IGVlPXRoaXMuX2lwYWQ9ay5hbGxvY1Vuc2FmZShxKSx0ZT10aGlzLl9vcGFkPWsuYWxsb2NVbnNhZmUocSksb2U9MDtvZTxxO29lKyspZWVbb2VdPTU0XlVbb2VdLHRlW29lXT05Ml5VW29lXTt0aGlzLl9oYXNoPSJybWQxNjAiPT09WD9uZXcgajpWKFgpLHRoaXMuX2hhc2gudXBkYXRlKGVl'@; put 'KX16KFksSSksWS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihYKXt0aGlzLl9oYXNoLnVwZGF0ZShYKX0sWS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIFg9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4oInJtZDE2MCI9PT10aGlzLl9hbGc/bmV3IGo6Vih0aGlzLl9hbGcp'@; put 'KS51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKFgpLmRpZ2VzdCgpfSxNLmV4cG9ydHM9ZnVuY3Rpb24oWCxVKXtyZXR1cm4icm1kMTYwIj09PShYPVgudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09WD9uZXcgWSgicm1kMTYwIixVKToibWQ1Ij09PVg/bmV3IEsoRSxVKTpuZXcgWShY'@; put 'LFUpfX0sMTAzMTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNTcxNyksSz1SKDk1MDkpLkJ1ZmZlcixJPVIoMTAyNyksaz1LLmFsbG9jKDEyOCksRT02NDtmdW5jdGlvbiBqKFYsQil7SS5jYWxsKHRoaXMsImRpZ2VzdCIpLCJzdHJpbmciPT10eXBlb2YgQiYmKEI9Sy5mcm9tKEIp'@; put 'KSx0aGlzLl9hbGc9Vix0aGlzLl9rZXk9QixCLmxlbmd0aD5FP0I9VihCKTpCLmxlbmd0aDxFJiYoQj1LLmNvbmNhdChbQixrXSxFKSk7Zm9yKHZhciBZPXRoaXMuX2lwYWQ9Sy5hbGxvY1Vuc2FmZShFKSxYPXRoaXMuX29wYWQ9Sy5hbGxvY1Vuc2FmZShFKSxVPTA7VTxFO1UrKylZW1VdPTU0'@; put 'XkJbVV0sWFtVXT05Ml5CW1VdO3RoaXMuX2hhc2g9W1ldfXooaixJKSxqLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFYpe3RoaXMuX2hhc2gucHVzaChWKX0sai5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIFY9dGhpcy5fYWxnKEsuY29uY2F0KHRoaXMuX2hhc2gpKTtyZXR1'@; put 'cm4gdGhpcy5fYWxnKEsuY29uY2F0KFt0aGlzLl9vcGFkLFZdKSl9LE0uZXhwb3J0cz1qfSw1ODM1OihNLE8sUik9PnsidXNlIHN0cmljdCI7Ty5yYW5kb21CeXRlcz1PLnJuZz1PLnBzZXVkb1JhbmRvbUJ5dGVzPU8ucHJuZz1SKDE3OTgpLE8uY3JlYXRlSGFzaD1PLkhhc2g9UigzNDgyKSxP'@; put 'LmNyZWF0ZUhtYWM9Ty5IbWFjPVIoODM1NSk7dmFyIHo9Uig2MDQyKSxLPU9iamVjdC5rZXlzKHopLEk9WyJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwibWQ1Iiwicm1kMTYwIl0uY29uY2F0KEspO08uZ2V0SGFzaGVzPWZ1bmN0aW9uKCl7cmV0dXJuIEl9O3Zh'@; put 'ciBrPVIoNTYzMik7Ty5wYmtkZjI9ay5wYmtkZjIsTy5wYmtkZjJTeW5jPWsucGJrZGYyU3luYzt2YXIgRT1SKDM2MTQpO08uQ2lwaGVyPUUuQ2lwaGVyLE8uY3JlYXRlQ2lwaGVyPUUuY3JlYXRlQ2lwaGVyLE8uQ2lwaGVyaXY9RS5DaXBoZXJpdixPLmNyZWF0ZUNpcGhlcml2PUUuY3JlYXRl'@; put 'Q2lwaGVyaXYsTy5EZWNpcGhlcj1FLkRlY2lwaGVyLE8uY3JlYXRlRGVjaXBoZXI9RS5jcmVhdGVEZWNpcGhlcixPLkRlY2lwaGVyaXY9RS5EZWNpcGhlcml2LE8uY3JlYXRlRGVjaXBoZXJpdj1FLmNyZWF0ZURlY2lwaGVyaXYsTy5nZXRDaXBoZXJzPUUuZ2V0Q2lwaGVycyxPLmxpc3RDaXBo'@; put 'ZXJzPUUubGlzdENpcGhlcnM7dmFyIGo9UigyNjA3KTtPLkRpZmZpZUhlbGxtYW5Hcm91cD1qLkRpZmZpZUhlbGxtYW5Hcm91cCxPLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cD1qLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cCxPLmdldERpZmZpZUhlbGxtYW49ai5nZXREaWZmaWVIZWxsbWFu'@; put 'LE8uY3JlYXRlRGlmZmllSGVsbG1hbj1qLmNyZWF0ZURpZmZpZUhlbGxtYW4sTy5EaWZmaWVIZWxsbWFuPWouRGlmZmllSGVsbG1hbjt2YXIgVj1SKDQ3NDMpO08uY3JlYXRlU2lnbj1WLmNyZWF0ZVNpZ24sTy5TaWduPVYuU2lnbixPLmNyZWF0ZVZlcmlmeT1WLmNyZWF0ZVZlcmlmeSxPLlZl'@; put 'cmlmeT1WLlZlcmlmeSxPLmNyZWF0ZUVDREg9Uig2MzkzKTt2YXIgQj1SKDc5MDApO08ucHVibGljRW5jcnlwdD1CLnB1YmxpY0VuY3J5cHQsTy5wcml2YXRlRW5jcnlwdD1CLnByaXZhdGVFbmNyeXB0LE8ucHVibGljRGVjcnlwdD1CLnB1YmxpY0RlY3J5cHQsTy5wcml2YXRlRGVjcnlwdD1C'@; put 'LnByaXZhdGVEZWNyeXB0O3ZhciBZPVIoNzk2Myk7Ty5yYW5kb21GaWxsPVkucmFuZG9tRmlsbCxPLnJhbmRvbUZpbGxTeW5jPVkucmFuZG9tRmlsbFN5bmMsTy5jcmVhdGVDcmVkZW50aWFscz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihbInNvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBp'@; put 'cyBub3QgaW1wbGVtZW50ZWQgeWV0Iiwid2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMiLCJodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnkiXS5qb2luKCJcbiIpKX0sTy5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9D'@; put 'SEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMs'@; put 'UlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSw1MDU2OihN'@; put 'LE8sUik9Pnt2YXIgej1SKDg3NjQpLkJ1ZmZlcjtjb25zdHtUcmFuc2Zvcm06S309UigyODMwKSxJPXouZnJvbShbMjM5LDE4NywxOTFdKTtjbGFzcyBrIGV4dGVuZHMgS3tjb25zdHJ1Y3RvcihjZT17fSl7c3VwZXIoe3dyaXRhYmxlT2JqZWN0TW9kZTohMCwuLi5jZX0pO2NvbnN0IEc9e307'@; put 'bGV0IGI7Zm9yKGxldCBEIGluIGNlKUdbQihEKV09Y2VbRF07aWYoYj10aGlzLm5vcm1hbGl6ZShHKSl0aHJvdyBiO3N3aXRjaChHLnJlY29yZF9kZWxpbWl0ZXIpe2Nhc2UiYXV0byI6Ry5yZWNvcmRfZGVsaW1pdGVyPW51bGw7YnJlYWs7Y2FzZSJ1bml4IjpHLnJlY29yZF9kZWxpbWl0ZXI9'@; put 'IlxuIjticmVhaztjYXNlIm1hYyI6Ry5yZWNvcmRfZGVsaW1pdGVyPSJcciI7YnJlYWs7Y2FzZSJ3aW5kb3dzIjpHLnJlY29yZF9kZWxpbWl0ZXI9IlxyXG4iO2JyZWFrO2Nhc2UiYXNjaWkiOkcucmVjb3JkX2RlbGltaXRlcj0iXHgxZSI7YnJlYWs7Y2FzZSJ1bmljb2RlIjpHLnJlY29yZF9k'@; put 'ZWxpbWl0ZXI9Ilx1MjAyOCJ9dGhpcy5vcHRpb25zPUcsdGhpcy5zdGF0ZT17c3RvcDohMX0sdGhpcy5pbmZvPXtyZWNvcmRzOjB9fW5vcm1hbGl6ZShjZSl7aWYobnVsbD09Y2UuYm9tfHwhMT09PWNlLmJvbSljZS5ib209ITE7ZWxzZSBpZighMCE9PWNlLmJvbSlyZXR1cm4gbmV3IGooIkNT'@; put 'Vl9PUFRJT05fQk9PTEVBTl9JTlZBTElEX1RZUEUiLFsib3B0aW9uIGBib21gIGlzIG9wdGlvbmFsIGFuZCBtdXN0IGJlIGEgYm9vbGVhbiB2YWx1ZSwiLGBnb3QgJHtKU09OLnN0cmluZ2lmeShjZS5ib20pfWBdKTtpZihudWxsPT1jZS5kZWxpbWl0ZXIpY2UuZGVsaW1pdGVyPSIsIjtlbHNl'@; put 'IGlmKHouaXNCdWZmZXIoY2UuZGVsaW1pdGVyKSljZS5kZWxpbWl0ZXI9Y2UuZGVsaW1pdGVyLnRvU3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIGNlLmRlbGltaXRlcilyZXR1cm4gbmV3IGooIkNTVl9PUFRJT05fREVMSU1JVEVSX0lOVkFMSURfVFlQRSIsWyJvcHRpb24gYGRl'@; put 'bGltaXRlcmAgbXVzdCBiZSBhIGJ1ZmZlciBvciBhIHN0cmluZywiLGBnb3QgJHtKU09OLnN0cmluZ2lmeShjZS5kZWxpbWl0ZXIpfWBdKTtpZihudWxsPT1jZS5xdW90ZSljZS5xdW90ZT0nIic7ZWxzZSBpZighMD09PWNlLnF1b3RlKWNlLnF1b3RlPSciJztlbHNlIGlmKCExPT09Y2UucXVv'@; put 'dGUpY2UucXVvdGU9IiI7ZWxzZSBpZih6LmlzQnVmZmVyKGNlLnF1b3RlKSljZS5xdW90ZT1jZS5xdW90ZS50b1N0cmluZygpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBjZS5xdW90ZSlyZXR1cm4gbmV3IGooIkNTVl9PUFRJT05fUVVPVEVfSU5WQUxJRF9UWVBFIixbIm9wdGlvbiBgcXVv'@; put 'dGVgIG11c3QgYmUgYSBib29sZWFuLCBhIGJ1ZmZlciBvciBhIHN0cmluZywiLGBnb3QgJHtKU09OLnN0cmluZ2lmeShjZS5xdW90ZSl9YF0pO2lmKG51bGwhPWNlLnF1b3RlZHx8KGNlLnF1b3RlZD0hMSksbnVsbCE9Y2UucXVvdGVkX2VtcHR5fHwoY2UucXVvdGVkX2VtcHR5PXZvaWQgMCks'@; put 'bnVsbD09Y2UucXVvdGVkX21hdGNofHwhMT09PWNlLnF1b3RlZF9tYXRjaD9jZS5xdW90ZWRfbWF0Y2g9bnVsbDpBcnJheS5pc0FycmF5KGNlLnF1b3RlZF9tYXRjaCl8fChjZS5xdW90ZWRfbWF0Y2g9W2NlLnF1b3RlZF9tYXRjaF0pLGNlLnF1b3RlZF9tYXRjaClmb3IobGV0IEcgb2YgY2Uu'@; put 'cXVvdGVkX21hdGNoKXtjb25zdCBiPUcgaW5zdGFuY2VvZiBSZWdFeHA7aWYoInN0cmluZyIhPXR5cGVvZiBHJiYhYilyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiBxdW90ZWRfbWF0Y2ggbXVzdCBiZSBhIHN0cmluZyBvciBhIHJlZ2V4LCBnb3QgJHtKU09OLnN0cmluZ2lmeShHKX1g'@; put 'KX1pZihudWxsIT1jZS5xdW90ZWRfc3RyaW5nfHwoY2UucXVvdGVkX3N0cmluZz0hMSksbnVsbCE9Y2UuZW9mfHwoY2UuZW9mPSEwKSxudWxsPT1jZS5lc2NhcGUpY2UuZXNjYXBlPSciJztlbHNlIGlmKHouaXNCdWZmZXIoY2UuZXNjYXBlKSljZS5lc2NhcGU9Y2UuZXNjYXBlLnRvU3RyaW5n'@; put 'KCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIGNlLmVzY2FwZSlyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiBlc2NhcGUgbXVzdCBiZSBhIGJ1ZmZlciBvciBhIHN0cmluZywgZ290ICR7SlNPTi5zdHJpbmdpZnkoY2UuZXNjYXBlKX1gKTtpZihjZS5lc2NhcGUubGVuZ3RoPjEpcmV0'@; put 'dXJuIEVycm9yKGBJbnZhbGlkIE9wdGlvbjogZXNjYXBlIG11c3QgYmUgb25lIGNoYXJhY3RlciwgZ290ICR7Y2UuZXNjYXBlLmxlbmd0aH0gY2hhcmFjdGVyc2ApO2lmKG51bGwhPWNlLmhlYWRlcnx8KGNlLmhlYWRlcj0hMSksY2UuY29sdW1ucz10aGlzLm5vcm1hbGl6ZV9jb2x1bW5zKGNl'@; put 'LmNvbHVtbnMpLG51bGwhPWNlLnF1b3RlZHx8KGNlLnF1b3RlZD0hMSksbnVsbCE9Y2UuY2FzdHx8KGNlLmNhc3Q9e30pLG51bGwhPWNlLmNhc3QuYmlnaW50fHwoY2UuY2FzdC5iaWdpbnQ9Rz0+IiIrRyksbnVsbCE9Y2UuY2FzdC5ib29sZWFufHwoY2UuY2FzdC5ib29sZWFuPUc9Pkc/IjEi'@; put 'OiIiKSxudWxsIT1jZS5jYXN0LmRhdGV8fChjZS5jYXN0LmRhdGU9Rz0+IiIrRy5nZXRUaW1lKCkpLG51bGwhPWNlLmNhc3QubnVtYmVyfHwoY2UuY2FzdC5udW1iZXI9Rz0+IiIrRyksbnVsbCE9Y2UuY2FzdC5vYmplY3R8fChjZS5jYXN0Lm9iamVjdD1HPT5KU09OLnN0cmluZ2lmeShHKSks'@; put 'bnVsbCE9Y2UuY2FzdC5zdHJpbmd8fChjZS5jYXN0LnN0cmluZz1mdW5jdGlvbihHKXtyZXR1cm4gR30pLG51bGw9PWNlLnJlY29yZF9kZWxpbWl0ZXIpY2UucmVjb3JkX2RlbGltaXRlcj0iXG4iO2Vsc2UgaWYoei5pc0J1ZmZlcihjZS5yZWNvcmRfZGVsaW1pdGVyKSljZS5yZWNvcmRfZGVs'@; put 'aW1pdGVyPWNlLnJlY29yZF9kZWxpbWl0ZXIudG9TdHJpbmcoKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgY2UucmVjb3JkX2RlbGltaXRlcilyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiByZWNvcmRfZGVsaW1pdGVyIG11c3QgYmUgYSBidWZmZXIgb3IgYSBzdHJpbmcsIGdvdCAk'@; put 'e0pTT04uc3RyaW5naWZ5KGNlLnJlY29yZF9kZWxpbWl0ZXIpfWApfV90cmFuc2Zvcm0oY2UsRyxiKXtpZighMD09PXRoaXMuc3RhdGUuc3RvcClyZXR1cm47aWYoIUFycmF5LmlzQXJyYXkoY2UpJiYib2JqZWN0IiE9dHlwZW9mIGNlKXJldHVybiB0aGlzLnN0YXRlLnN0b3A9ITAsYihFcnJv'@; put 'cihgSW52YWxpZCBSZWNvcmQ6IGV4cGVjdCBhbiBhcnJheSBvciBhbiBvYmplY3QsIGdvdCAke0pTT04uc3RyaW5naWZ5KGNlKX1gKSk7aWYoMD09PXRoaXMuaW5mby5yZWNvcmRzKWlmKEFycmF5LmlzQXJyYXkoY2UpKXtpZighMD09PXRoaXMub3B0aW9ucy5oZWFkZXImJiF0aGlzLm9wdGlv'@; put 'bnMuY29sdW1ucylyZXR1cm4gdGhpcy5zdGF0ZS5zdG9wPSEwLGIoRXJyb3IoIlVuZGlzY292ZXJhYmxlIENvbHVtbnM6IGhlYWRlciBvcHRpb24gcmVxdWlyZXMgY29sdW1uIG9wdGlvbiBvciBvYmplY3QgcmVjb3JkcyIpKX1lbHNlIG51bGwhPXRoaXMub3B0aW9ucy5jb2x1bW5zfHwodGhp'@; put 'cy5vcHRpb25zLmNvbHVtbnM9dGhpcy5ub3JtYWxpemVfY29sdW1ucyhPYmplY3Qua2V5cyhjZSkpKTswPT09dGhpcy5pbmZvLnJlY29yZHMmJih0aGlzLmJvbSgpLHRoaXMuaGVhZGVycygpKTt0cnl7dGhpcy5lbWl0KCJyZWNvcmQiLGNlLHRoaXMuaW5mby5yZWNvcmRzKX1jYXRjaChIKXty'@; put 'ZXR1cm4gdGhpcy5zdGF0ZS5zdG9wPSEwLHRoaXMuZW1pdCgiZXJyb3IiLEgpfWxldCBEO2lmKHRoaXMub3B0aW9ucy5lb2Ype2lmKEQ9dGhpcy5zdHJpbmdpZnkoY2UpLHZvaWQgMD09PUQpcmV0dXJuO0QrPXRoaXMub3B0aW9ucy5yZWNvcmRfZGVsaW1pdGVyfWVsc2V7aWYoRD10aGlzLnN0'@; put 'cmluZ2lmeShjZSksdm9pZCAwPT09RClyZXR1cm47KHRoaXMub3B0aW9ucy5oZWFkZXJ8fHRoaXMuaW5mby5yZWNvcmRzKSYmKEQ9dGhpcy5vcHRpb25zLnJlY29yZF9kZWxpbWl0ZXIrRCl9dGhpcy5pbmZvLnJlY29yZHMrKyx0aGlzLnB1c2goRCksYigpfV9mbHVzaChjZSl7MD09PXRoaXMu'@; put 'aW5mby5yZWNvcmRzJiYodGhpcy5ib20oKSx0aGlzLmhlYWRlcnMoKSksY2UoKX1zdHJpbmdpZnkoY2UsRz0hMSl7aWYoIm9iamVjdCIhPXR5cGVvZiBjZSlyZXR1cm4gY2U7Y29uc3R7Y29sdW1uczpifT10aGlzLm9wdGlvbnMsSD1bXTtpZihBcnJheS5pc0FycmF5KGNlKSl7YiYmY2Uuc3Bs'@; put 'aWNlKGIubGVuZ3RoKTtmb3IobGV0IGc9MDtnPGNlLmxlbmd0aDtnKyspe2NvbnN0IEM9Y2VbZ10sW1Msdl09dGhpcy5fX2Nhc3QoQyx7aW5kZXg6Zyxjb2x1bW46ZyxyZWNvcmRzOnRoaXMuaW5mby5yZWNvcmRzLGhlYWRlcjpHfSk7aWYoUylyZXR1cm4gdm9pZCB0aGlzLmVtaXQoImVycm9y'@; put 'IixTKTtIW2ddPVt2LENdfX1lbHNlIGlmKGIpZm9yKGxldCBnPTA7ZzxiLmxlbmd0aDtnKyspe2NvbnN0IEM9aGUoY2UsYltnXS5rZXkpLFtTLHZdPXRoaXMuX19jYXN0KEMse2luZGV4OmcsY29sdW1uOmJbZ10ua2V5LHJlY29yZHM6dGhpcy5pbmZvLnJlY29yZHMsaGVhZGVyOkd9KTtpZihT'@; put 'KXJldHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLFMpO0hbZ109W3YsQ119ZWxzZSBmb3IobGV0IGcgb2YgY2Upe2NvbnN0IEM9Y2VbZ10sW1Msdl09dGhpcy5fX2Nhc3QoQyx7aW5kZXg6aSxjb2x1bW46YltpXS5rZXkscmVjb3Jkczp0aGlzLmluZm8ucmVjb3JkcyxoZWFkZXI6R30pO2lm'@; put 'KFMpcmV0dXJuIHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsUyk7SC5wdXNoKFt2LENdKX1sZXQgTj0iIjtmb3IobGV0IGc9MDtnPEgubGVuZ3RoO2crKyl7bGV0IEMsUyxbdixwXT1IW2ddO2lmKCJzdHJpbmciPT10eXBlb2YgdilDPXRoaXMub3B0aW9ucztlbHNlIGlmKFYodikpe2lmKEM9dix2'@; put 'PUMudmFsdWUsZGVsZXRlIEMudmFsdWUsInN0cmluZyIhPXR5cGVvZiB2JiZudWxsIT12KXJldHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLEVycm9yKGBJbnZhbGlkIENhc3RpbmcgVmFsdWU6IHJldHVybmVkIHZhbHVlIG11c3QgcmV0dXJuIGEgc3RyaW5nLCBudWxsIG9yIHVuZGVmaW5l'@; put 'ZCwgZ290ICR7SlNPTi5zdHJpbmdpZnkodil9YCkpO2lmKEM9ey4uLnRoaXMub3B0aW9ucywuLi5DfSxTPXRoaXMubm9ybWFsaXplKEMpKXJldHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLFMpfWVsc2V7aWYobnVsbCE9dilyZXR1cm4gdm9pZCB0aGlzLmVtaXQoImVycm9yIixFcnJvcihg'@; put 'SW52YWxpZCBDYXN0aW5nIFZhbHVlOiByZXR1cm5lZCB2YWx1ZSBtdXN0IHJldHVybiBhIHN0cmluZywgYW4gb2JqZWN0LCBudWxsIG9yIHVuZGVmaW5lZCwgZ290ICR7SlNPTi5zdHJpbmdpZnkodil9YCkpO0M9dGhpcy5vcHRpb25zfWNvbnN0e2RlbGltaXRlcjp3LGVzY2FwZTpKLHF1b3Rl'@; put 'Om5lLHF1b3RlZDpkZSxxdW90ZWRfZW1wdHk6ZmUscXVvdGVkX3N0cmluZzp4ZSxxdW90ZWRfbWF0Y2g6TGUscmVjb3JkX2RlbGltaXRlcjpGZX09QztpZih2KXtpZigic3RyaW5nIiE9dHlwZW9mIHYpcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLEVycm9yKGBGb3JtYXR0ZXIgbXVzdCByZXR1'@; put 'cm4gYSBzdHJpbmcsIG51bGwgb3IgdW5kZWZpbmVkLCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2KX1gKSksbnVsbDtjb25zdCBPZT13Lmxlbmd0aCYmdi5pbmRleE9mKHcpPj0wLGplPSIiIT09bmUmJnYuaW5kZXhPZihuZSk+PTAsV2U9di5pbmRleE9mKEopPj0wJiZKIT09bmUsS2U9di5pbmRl'@; put 'eE9mKEZlKT49MCxZZT14ZSYmInN0cmluZyI9PXR5cGVvZiBwO2xldCBRZT1MZSYmTGUuZmlsdGVyKFBlPT4ic3RyaW5nIj09dHlwZW9mIFBlPy0xIT09di5pbmRleE9mKFBlKTpQZS50ZXN0KHYpKTtRZT1RZSYmUWUubGVuZ3RoPjA7Y29uc3QgbHQ9ITA9PT1qZXx8T2V8fEtlfHxkZXx8WWV8'@; put 'fFFlO2lmKCEwPT09bHQmJiEwPT09V2Upe2NvbnN0IFBlPSJcXCI9PT1KP25ldyBSZWdFeHAoSitKLCJnIik6bmV3IFJlZ0V4cChKLCJnIik7dj12LnJlcGxhY2UoUGUsSitKKX1pZighMD09PWplKXtjb25zdCBQZT1uZXcgUmVnRXhwKG5lLCJnIik7dj12LnJlcGxhY2UoUGUsSituZSl9ITA9'@; put 'PT1sdCYmKHY9bmUrdituZSksTis9dn1lbHNlKCEwPT09ZmV8fCIiPT09cCYmITA9PT14ZSYmITEhPT1mZSkmJihOKz1uZStuZSk7ZyE9PUgubGVuZ3RoLTEmJihOKz13KX1yZXR1cm4gTn1ib20oKXshMD09PXRoaXMub3B0aW9ucy5ib20mJnRoaXMucHVzaChJKX1oZWFkZXJzKCl7aWYoITE9'@; put 'PT10aGlzLm9wdGlvbnMuaGVhZGVyfHx2b2lkIDA9PT10aGlzLm9wdGlvbnMuY29sdW1ucylyZXR1cm47bGV0IGNlPXRoaXMub3B0aW9ucy5jb2x1bW5zLm1hcChHPT5HLmhlYWRlcik7Y2U9dGhpcy5vcHRpb25zLmVvZj90aGlzLnN0cmluZ2lmeShjZSwhMCkrdGhpcy5vcHRpb25zLnJlY29y'@; put 'ZF9kZWxpbWl0ZXI6dGhpcy5zdHJpbmdpZnkoY2UpLHRoaXMucHVzaChjZSl9X19jYXN0KGNlLEcpe2NvbnN0IGI9dHlwZW9mIGNlO3RyeXtyZXR1cm4ic3RyaW5nIj09PWI/W3ZvaWQgMCx0aGlzLm9wdGlvbnMuY2FzdC5zdHJpbmcoY2UsRyldOiJiaWdpbnQiPT09Yj9bdm9pZCAwLHRoaXMu'@; put 'b3B0aW9ucy5jYXN0LmJpZ2ludChjZSxHKV06Im51bWJlciI9PT1iP1t2b2lkIDAsdGhpcy5vcHRpb25zLmNhc3QubnVtYmVyKGNlLEcpXToiYm9vbGVhbiI9PT1iP1t2b2lkIDAsdGhpcy5vcHRpb25zLmNhc3QuYm9vbGVhbihjZSxHKV06Y2UgaW5zdGFuY2VvZiBEYXRlP1t2b2lkIDAsdGhp'@; put 'cy5vcHRpb25zLmNhc3QuZGF0ZShjZSxHKV06Im9iamVjdCI9PT1iJiZudWxsIT09Y2U/W3ZvaWQgMCx0aGlzLm9wdGlvbnMuY2FzdC5vYmplY3QoY2UsRyldOlt2b2lkIDAsY2UsY2VdfWNhdGNoKEQpe3JldHVybltEXX19bm9ybWFsaXplX2NvbHVtbnMoY2Upe2lmKG51bGwhPWNlKXtpZigi'@; put 'b2JqZWN0IiE9dHlwZW9mIGNlKXRocm93IEVycm9yKCdJbnZhbGlkIG9wdGlvbiAiY29sdW1ucyI6IGV4cGVjdCBhbiBhcnJheSBvciBhbiBvYmplY3QnKTtpZihBcnJheS5pc0FycmF5KGNlKSl7Y29uc3QgRz1bXTtmb3IobGV0IGIgb2YgY2UpaWYoInN0cmluZyI9PXR5cGVvZiBiKUcucHVz'@; put 'aCh7a2V5OmIsaGVhZGVyOmJ9KTtlbHNle2lmKCJvYmplY3QiIT10eXBlb2YgYnx8dm9pZCAwPT09Ynx8QXJyYXkuaXNBcnJheShiKSl0aHJvdyBFcnJvcigiSW52YWxpZCBjb2x1bW4gZGVmaW5pdGlvbjogZXhwZWN0IGEgc3RyaW5nIG9yIGFuIG9iamVjdCIpO2lmKCFiLmtleSl0aHJvdyBF'@; put 'cnJvcignSW52YWxpZCBjb2x1bW4gZGVmaW5pdGlvbjogcHJvcGVydHkgImtleSIgaXMgcmVxdWlyZWQnKTt2b2lkIDA9PT1iLmhlYWRlciYmKGIuaGVhZGVyPWIua2V5KSxHLnB1c2goYil9Y2U9R31lbHNle2NvbnN0IEc9W107Zm9yKGxldCBiIGluIGNlKUcucHVzaCh7a2V5OmIsaGVhZGVy'@; put 'OmNlW2JdfSk7Y2U9R31yZXR1cm4gY2V9fX1jb25zdCBFPWZ1bmN0aW9uKCl7bGV0IHVlLGNlLEc7Zm9yKGxldCBEIGluIGFyZ3VtZW50cyl7Y29uc3QgSD1hcmd1bWVudHNbRF0sTj10eXBlb2YgSDtpZih2b2lkIDA9PT11ZSYmQXJyYXkuaXNBcnJheShIKSl1ZT1IO2Vsc2UgaWYodm9pZCAw'@; put 'PT09Y2UmJlYoSCkpY2U9SDtlbHNle2lmKHZvaWQgMCE9PUd8fCJmdW5jdGlvbiIhPT1OKXRocm93IG5ldyBqKCJDU1ZfSU5WQUxJRF9BUkdVTUVOVCIsWyJJbnZhbGlkIGFyZ3VtZW50OiIsYGdvdCAke0pTT04uc3RyaW5naWZ5KEgpfSBhdCBpbmRleCAke0R9YF0pO0c9SH19Y29uc3QgYj1u'@; put 'ZXcgayhjZSk7aWYoRyl7Y29uc3QgRD1bXTtiLm9uKCJyZWFkYWJsZSIsZnVuY3Rpb24oKXtsZXQgSDtmb3IoO251bGwhPT0oSD10aGlzLnJlYWQoKSk7KUQucHVzaChIKX0pLGIub24oImVycm9yIixmdW5jdGlvbihIKXtHKEgpfSksYi5vbigiZW5kIixmdW5jdGlvbigpe0codm9pZCAwLEQu'@; put 'am9pbigiIikpfSl9aWYodm9pZCAwIT09dWUpaWYoImZ1bmN0aW9uIj09dHlwZW9mIHNldEltbWVkaWF0ZSlzZXRJbW1lZGlhdGUoZnVuY3Rpb24oKXtmb3IobGV0IEQgb2YgdWUpYi53cml0ZShEKTtiLmVuZCgpfSk7ZWxzZXtmb3IobGV0IEQgb2YgdWUpYi53cml0ZShEKTtiLmVuZCgpfXJl'@; put 'dHVybiBifTtjbGFzcyBqIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoY2UsRywuLi5iKXtBcnJheS5pc0FycmF5KEcpJiYoRz1HLmpvaW4oIiAiKSksc3VwZXIoRyksdm9pZCAwIT09RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsaiksdGhp'@; put 'cy5jb2RlPWNlO2Zvcihjb25zdCBEIG9mIGIpZm9yKGNvbnN0IEggaW4gRCl7Y29uc3QgTj1EW0hdO3RoaXNbSF09ei5pc0J1ZmZlcihOKT9OLnRvU3RyaW5nKCk6bnVsbD09Tj9OOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoTikpfX19RS5TdHJpbmdpZmllcj1rLEUuQ3N2RXJyb3I9aixN'@; put 'LmV4cG9ydHM9RTtjb25zdCBWPWZ1bmN0aW9uKHVlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHVlJiZudWxsIT09dWUmJiFBcnJheS5pc0FycmF5KHVlKX0sQj1mdW5jdGlvbih1ZSl7cmV0dXJuIHVlLnJlcGxhY2UoLyhbQS1aXSkvZyxmdW5jdGlvbihjZSxHKXtyZXR1cm4iXyIrRy50b0xv'@; put 'd2VyQ2FzZSgpfSl9LFk9Ii4iLmNoYXJDb2RlQXQoMCksWD0vXFwoXFwpPy9nLFU9UmVnRXhwKCJbXi5bXFxdXSt8XFxbKD86KFteXCInXVteW10qKXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKSIs'@; put 'ImciKSxxPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGVlPS9eXHcqJC8sdGU9ZnVuY3Rpb24odWUpe2NvbnN0IGNlPXR5cGVvZiB1ZTtyZXR1cm4ic3ltYm9sIj09PWNlfHwib2JqZWN0Ij09PWNlJiZ1ZSYmIltvYmplY3QgU3ltYm9sXSI9PT1P'@; put 'YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodWUpfSxzZT1mdW5jdGlvbih1ZSl7aWYoInN0cmluZyI9PXR5cGVvZiB1ZXx8dGUodWUpKXJldHVybiB1ZTtjb25zdCBjZT1gJHt1ZX1gO3JldHVybiIwIj09Y2UmJjEvdWU9PS1JTkZJTklUWT8iLTAiOmNlfSxoZT1mdW5jdGlvbih1ZSxj'@; put 'ZSl7bGV0IEc9MDtjb25zdCBiPShjZT1mdW5jdGlvbih1ZSxjZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodWUpP3VlOmZ1bmN0aW9uKEcsYil7aWYoQXJyYXkuaXNBcnJheShHKSlyZXR1cm4hMTtjb25zdCBEPXR5cGVvZiBHO3JldHVybiEoIm51bWJlciIhPT1EJiYic3ltYm9sIiE9PUQmJiJi'@; put 'b29sZWFuIiE9PUQmJkcmJiF0ZShHKSl8fGVlLnRlc3QoRyl8fCFxLnRlc3QoRyl8fG51bGwhPWImJkcgaW4gT2JqZWN0KGIpfSh1ZSxjZSk/W3VlXTpmdW5jdGlvbihHKXtjb25zdCBiPVtdO3JldHVybiBHLmNoYXJDb2RlQXQoMCk9PT1ZJiZiLnB1c2goIiIpLEcucmVwbGFjZShVLGZ1bmN0'@; put 'aW9uKEQsSCxOLGcpe2xldCBDPUQ7Tj9DPWcucmVwbGFjZShYLCIkMSIpOkgmJihDPUgudHJpbSgpKSxiLnB1c2goQyl9KSxifSh1ZSl9KGNlLHVlKSkubGVuZ3RoO2Zvcig7bnVsbCE9dWUmJkc8YjspdWU9dWVbc2UoY2VbRysrXSldO3JldHVybiBHJiZHPT09Yj91ZTp2b2lkIDB9fSw3NTY1'@; put 'OihNLE8sUik9Pnt2YXIgej1SKDg3NjQpLkJ1ZmZlcjtjb25zdCBLPVIoNTA1Nikse1N0cmluZ0RlY29kZXI6SX09UigyNTUzKTtNLmV4cG9ydHM9ZnVuY3Rpb24oayxFPXt9KXtjb25zdCBqPVtdO2Z1bmN0aW9uIFYoWSl7WSYmai5wdXNoKFkudG9TdHJpbmcoKSl9ei5pc0J1ZmZlcihrKSYm'@; put 'KGs9KG5ldyBJKS53cml0ZShrKSk7bGV0IEI9bmV3IEsuU3RyaW5naWZpZXIoRSk7Qi5vbigiZGF0YSIsVik7Zm9yKGxldCBZIG9mIGspQi53cml0ZShZKTtyZXR1cm4gQi5lbmQoKSxCLm9mZigiZGF0YSIsViksai5qb2luKCIiKX19LDQyODk6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIg'@; put 'ej1SKDIyMTUpLEs9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2woImZvbyIpLEk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxrPUFycmF5LnByb3RvdHlwZS5jb25jYXQsRT1PYmplY3QuZGVmaW5lUHJvcGVydHksaj1SKDEwNDQpKCksVj1FJiZq'@; put 'LEI9ZnVuY3Rpb24oWCxVLHEsZWUpe2lmKFUgaW4gWClpZighMD09PWVlKXtpZihYW1VdPT09cSlyZXR1cm59ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2YodGU9ZWUpfHwiW29iamVjdCBGdW5jdGlvbl0iIT09SS5jYWxsKHRlKXx8IWVlKCkpcmV0dXJuO3ZhciB0ZTtWP0UoWCxVLHtjb25m'@; put 'aWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpxLHdyaXRhYmxlOiEwfSk6WFtVXT1xfSxZPWZ1bmN0aW9uKFgsVSl7dmFyIHE9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp7fSxlZT16KFUpO0smJihlZT1rLmNhbGwoZWUsT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9s'@; put 'cyhVKSkpO2Zvcih2YXIgdGU9MDt0ZTxlZS5sZW5ndGg7dGUrPTEpQihYLGVlW3RlXSxVW2VlW3RlXV0scVtlZVt0ZV1dKX07WS5zdXBwb3J0c0Rlc2NyaXB0b3JzPSEhVixNLmV4cG9ydHM9WX0sNTI1MTooTSxPLFIpPT57InVzZSBzdHJpY3QiO08udXRpbHM9UigxMjc4KSxPLkNpcGhlcj1S'@; put 'KDU3NTYpLE8uREVTPVIoMzI3KSxPLkNCQz1SKDkwNTEpLE8uRURFPVIoNjUxKX0sOTA1MTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoOTc0NiksSz1SKDU3MTcpLEk9e307ZnVuY3Rpb24gayhFKXt6LmVxdWFsKEUubGVuZ3RoLDgsIkludmFsaWQgSVYgbGVuZ3RoIiksdGhpcy5p'@; put 'dj1uZXcgQXJyYXkoOCk7Zm9yKHZhciBqPTA7ajx0aGlzLml2Lmxlbmd0aDtqKyspdGhpcy5pdltqXT1FW2pdfU8uaW5zdGFudGlhdGU9ZnVuY3Rpb24oRSl7ZnVuY3Rpb24gaihYKXtFLmNhbGwodGhpcyxYKSx0aGlzLl9jYmNJbml0KCl9SyhqLEUpO2Zvcih2YXIgVj1PYmplY3Qua2V5cyhJ'@; put 'KSxCPTA7QjxWLmxlbmd0aDtCKyspe3ZhciBZPVZbQl07ai5wcm90b3R5cGVbWV09SVtZXX1yZXR1cm4gai5jcmVhdGU9ZnVuY3Rpb24oWCl7cmV0dXJuIG5ldyBqKFgpfSxqfSxJLl9jYmNJbml0PWZ1bmN0aW9uKCl7dmFyIEU9bmV3IGsodGhpcy5vcHRpb25zLml2KTt0aGlzLl9jYmNTdGF0'@; put 'ZT1FfSxJLl91cGRhdGU9ZnVuY3Rpb24oRSxqLFYsQil7dmFyIFg9dGhpcy5jb25zdHJ1Y3Rvci5zdXBlcl8ucHJvdG90eXBlLFU9dGhpcy5fY2JjU3RhdGUuaXY7aWYoImVuY3J5cHQiPT09dGhpcy50eXBlKXtmb3IodmFyIHE9MDtxPHRoaXMuYmxvY2tTaXplO3ErKylVW3FdXj1FW2orcV07'@; put 'Zm9yKFguX3VwZGF0ZS5jYWxsKHRoaXMsVSwwLFYsQikscT0wO3E8dGhpcy5ibG9ja1NpemU7cSsrKVVbcV09VltCK3FdfWVsc2V7Zm9yKFguX3VwZGF0ZS5jYWxsKHRoaXMsRSxqLFYsQikscT0wO3E8dGhpcy5ibG9ja1NpemU7cSsrKVZbQitxXV49VVtxXTtmb3IocT0wO3E8dGhpcy5ibG9j'@; put 'a1NpemU7cSsrKVVbcV09RVtqK3FdfX19LDU3NTY6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDk3NDYpO2Z1bmN0aW9uIEsoSSl7dGhpcy5vcHRpb25zPUksdGhpcy50eXBlPXRoaXMub3B0aW9ucy50eXBlLHRoaXMuYmxvY2tTaXplPTgsdGhpcy5faW5pdCgpLHRoaXMuYnVmZmVy'@; put 'PW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSksdGhpcy5idWZmZXJPZmY9MH1NLmV4cG9ydHM9SyxLLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbigpe30sSy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEkpe3JldHVybiAwPT09SS5sZW5ndGg/W106ImRlY3J5cHQiPT09dGhpcy50eXBlP3Ro'@; put 'aXMuX3VwZGF0ZURlY3J5cHQoSSk6dGhpcy5fdXBkYXRlRW5jcnlwdChJKX0sSy5wcm90b3R5cGUuX2J1ZmZlcj1mdW5jdGlvbihJLGspe2Zvcih2YXIgRT1NYXRoLm1pbih0aGlzLmJ1ZmZlci5sZW5ndGgtdGhpcy5idWZmZXJPZmYsSS5sZW5ndGgtayksaj0wO2o8RTtqKyspdGhpcy5idWZm'@; put 'ZXJbdGhpcy5idWZmZXJPZmYral09SVtrK2pdO3JldHVybiB0aGlzLmJ1ZmZlck9mZis9RSxFfSxLLnByb3RvdHlwZS5fZmx1c2hCdWZmZXI9ZnVuY3Rpb24oSSxrKXtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsSSxrKSx0aGlzLmJ1ZmZlck9mZj0wLHRoaXMuYmxvY2tTaXpl'@; put 'fSxLLnByb3RvdHlwZS5fdXBkYXRlRW5jcnlwdD1mdW5jdGlvbihJKXt2YXIgaz0wLEU9MCxWPW5ldyBBcnJheSgoKHRoaXMuYnVmZmVyT2ZmK0kubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZXwwKSp0aGlzLmJsb2NrU2l6ZSk7MCE9PXRoaXMuYnVmZmVyT2ZmJiYoays9dGhpcy5fYnVmZmVyKEks'@; put 'ayksdGhpcy5idWZmZXJPZmY9PT10aGlzLmJ1ZmZlci5sZW5ndGgmJihFKz10aGlzLl9mbHVzaEJ1ZmZlcihWLEUpKSk7Zm9yKHZhciBCPUkubGVuZ3RoLShJLmxlbmd0aC1rKSV0aGlzLmJsb2NrU2l6ZTtrPEI7ays9dGhpcy5ibG9ja1NpemUpdGhpcy5fdXBkYXRlKEksayxWLEUpLEUrPXRo'@; put 'aXMuYmxvY2tTaXplO2Zvcig7azxJLmxlbmd0aDtrKyssdGhpcy5idWZmZXJPZmYrKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZl09SVtrXTtyZXR1cm4gVn0sSy5wcm90b3R5cGUuX3VwZGF0ZURlY3J5cHQ9ZnVuY3Rpb24oSSl7Zm9yKHZhciBrPTAsRT0wLGo9TWF0aC5jZWlsKCh0aGlz'@; put 'LmJ1ZmZlck9mZitJLmxlbmd0aCkvdGhpcy5ibG9ja1NpemUpLTEsVj1uZXcgQXJyYXkoaip0aGlzLmJsb2NrU2l6ZSk7aj4wO2otLSlrKz10aGlzLl9idWZmZXIoSSxrKSxFKz10aGlzLl9mbHVzaEJ1ZmZlcihWLEUpO3JldHVybiBrKz10aGlzLl9idWZmZXIoSSxrKSxWfSxLLnByb3RvdHlw'@; put 'ZS5maW5hbD1mdW5jdGlvbihJKXt2YXIgayxFO3JldHVybiBJJiYoaz10aGlzLnVwZGF0ZShJKSksRT0iZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZmluYWxFbmNyeXB0KCk6dGhpcy5fZmluYWxEZWNyeXB0KCksaz9rLmNvbmNhdChFKTpFfSxLLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9u'@; put 'KEksayl7aWYoMD09PWspcmV0dXJuITE7Zm9yKDtrPEkubGVuZ3RoOylJW2srK109MDtyZXR1cm4hMH0sSy5wcm90b3R5cGUuX2ZpbmFsRW5jcnlwdD1mdW5jdGlvbigpe2lmKCF0aGlzLl9wYWQodGhpcy5idWZmZXIsdGhpcy5idWZmZXJPZmYpKXJldHVybltdO3ZhciBJPW5ldyBBcnJheSh0'@; put 'aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwwLEksMCksSX0sSy5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKEkpe3JldHVybiBJfSxLLnByb3RvdHlwZS5fZmluYWxEZWNyeXB0PWZ1bmN0aW9uKCl7ei5lcXVhbCh0aGlzLmJ1ZmZlck9mZix0aGlzLmJs'@; put 'b2NrU2l6ZSwiTm90IGVub3VnaCBkYXRhIHRvIGRlY3J5cHQiKTt2YXIgST1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl9mbHVzaEJ1ZmZlcihJLDApLHRoaXMuX3VucGFkKEkpfX0sMzI3OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig5NzQ2KSxLPVIoNTcx'@; put 'NyksST1SKDEyNzgpLGs9Uig1NzU2KTtmdW5jdGlvbiBFKCl7dGhpcy50bXA9bmV3IEFycmF5KDIpLHRoaXMua2V5cz1udWxsfWZ1bmN0aW9uIGooQil7ay5jYWxsKHRoaXMsQik7dmFyIFk9bmV3IEU7dGhpcy5fZGVzU3RhdGU9WSx0aGlzLmRlcml2ZUtleXMoWSxCLmtleSl9SyhqLGspLE0u'@; put 'ZXhwb3J0cz1qLGouY3JlYXRlPWZ1bmN0aW9uKEIpe3JldHVybiBuZXcgaihCKX07dmFyIFY9WzEsMSwyLDIsMiwyLDIsMiwxLDIsMiwyLDIsMiwyLDFdO2oucHJvdG90eXBlLmRlcml2ZUtleXM9ZnVuY3Rpb24oQixZKXtCLmtleXM9bmV3IEFycmF5KDMyKSx6LmVxdWFsKFkubGVuZ3RoLHRo'@; put 'aXMuYmxvY2tTaXplLCJJbnZhbGlkIGtleSBsZW5ndGgiKTt2YXIgWD1JLnJlYWRVSW50MzJCRShZLDApLFU9SS5yZWFkVUludDMyQkUoWSw0KTtJLnBjMShYLFUsQi50bXAsMCksWD1CLnRtcFswXSxVPUIudG1wWzFdO2Zvcih2YXIgcT0wO3E8Qi5rZXlzLmxlbmd0aDtxKz0yKXt2YXIgZWU9'@; put 'VltxPj4+MV07WD1JLnIyOHNobChYLGVlKSxVPUkucjI4c2hsKFUsZWUpLEkucGMyKFgsVSxCLmtleXMscSl9fSxqLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEIsWSxYLFUpe3ZhciBxPXRoaXMuX2Rlc1N0YXRlLGVlPUkucmVhZFVJbnQzMkJFKEIsWSksdGU9SS5yZWFkVUludDMyQkUo'@; put 'QixZKzQpO0kuaXAoZWUsdGUscS50bXAsMCksZWU9cS50bXBbMF0sdGU9cS50bXBbMV0sImVuY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX2VuY3J5cHQocSxlZSx0ZSxxLnRtcCwwKTp0aGlzLl9kZWNyeXB0KHEsZWUsdGUscS50bXAsMCksdGU9cS50bXBbMV0sSS53cml0ZVVJbnQzMkJFKFgs'@; put 'ZWU9cS50bXBbMF0sVSksSS53cml0ZVVJbnQzMkJFKFgsdGUsVSs0KX0sai5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbihCLFkpe2Zvcih2YXIgWD1CLmxlbmd0aC1ZLFU9WTtVPEIubGVuZ3RoO1UrKylCW1VdPVg7cmV0dXJuITB9LGoucHJvdG90eXBlLl91bnBhZD1mdW5jdGlvbihCKXtmb3Io'@; put 'dmFyIFk9QltCLmxlbmd0aC0xXSxYPUIubGVuZ3RoLVk7WDxCLmxlbmd0aDtYKyspei5lcXVhbChCW1hdLFkpO3JldHVybiBCLnNsaWNlKDAsQi5sZW5ndGgtWSl9LGoucHJvdG90eXBlLl9lbmNyeXB0PWZ1bmN0aW9uKEIsWSxYLFUscSl7Zm9yKHZhciBlZT1ZLHRlPVgsb2U9MDtvZTxCLmtl'@; put 'eXMubGVuZ3RoO29lKz0yKXt2YXIgc2U9Qi5rZXlzW29lXSxoZT1CLmtleXNbb2UrMV07SS5leHBhbmQodGUsQi50bXAsMCk7dmFyIHVlPUkuc3Vic3RpdHV0ZShzZV49Qi50bXBbMF0saGVePUIudG1wWzFdKSxjZT10ZTt0ZT0oZWVeSS5wZXJtdXRlKHVlKSk+Pj4wLGVlPWNlfUkucmlwKHRl'@; put 'LGVlLFUscSl9LGoucHJvdG90eXBlLl9kZWNyeXB0PWZ1bmN0aW9uKEIsWSxYLFUscSl7Zm9yKHZhciBlZT1YLHRlPVksb2U9Qi5rZXlzLmxlbmd0aC0yO29lPj0wO29lLT0yKXt2YXIgc2U9Qi5rZXlzW29lXSxoZT1CLmtleXNbb2UrMV07SS5leHBhbmQoZWUsQi50bXAsMCk7dmFyIHVlPUku'@; put 'c3Vic3RpdHV0ZShzZV49Qi50bXBbMF0saGVePUIudG1wWzFdKSxjZT1lZTtlZT0odGVeSS5wZXJtdXRlKHVlKSk+Pj4wLHRlPWNlfUkucmlwKGVlLHRlLFUscSl9fSw2NTE6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDk3NDYpLEs9Uig1NzE3KSxJPVIoNTc1Niksaz1SKDMyNyk7'@; put 'ZnVuY3Rpb24gRShWLEIpe3ouZXF1YWwoQi5sZW5ndGgsMjQsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBZPUIuc2xpY2UoMCw4KSxYPUIuc2xpY2UoOCwxNiksVT1CLnNsaWNlKDE2LDI0KTt0aGlzLmNpcGhlcnM9ImVuY3J5cHQiPT09Vj9bay5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtl'@; put 'eTpZfSksay5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpYfSksay5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpVfSldOltrLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OlV9KSxrLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Olh9KSxrLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIs'@; put 'a2V5Oll9KV19ZnVuY3Rpb24gaihWKXtJLmNhbGwodGhpcyxWKTt2YXIgQj1uZXcgRSh0aGlzLnR5cGUsdGhpcy5vcHRpb25zLmtleSk7dGhpcy5fZWRlU3RhdGU9Qn1LKGosSSksTS5leHBvcnRzPWosai5jcmVhdGU9ZnVuY3Rpb24oVil7cmV0dXJuIG5ldyBqKFYpfSxqLnByb3RvdHlwZS5f'@; put 'dXBkYXRlPWZ1bmN0aW9uKFYsQixZLFgpe3ZhciBVPXRoaXMuX2VkZVN0YXRlO1UuY2lwaGVyc1swXS5fdXBkYXRlKFYsQixZLFgpLFUuY2lwaGVyc1sxXS5fdXBkYXRlKFksWCxZLFgpLFUuY2lwaGVyc1syXS5fdXBkYXRlKFksWCxZLFgpfSxqLnByb3RvdHlwZS5fcGFkPWsucHJvdG90eXBl'@; put 'Ll9wYWQsai5wcm90b3R5cGUuX3VucGFkPWsucHJvdG90eXBlLl91bnBhZH0sMTI3ODooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPLnJlYWRVSW50MzJCRT1mdW5jdGlvbihJLGspe3JldHVybihJWzAra108PDI0fElbMStrXTw8MTZ8SVsyK2tdPDw4fElbMytrXSk+Pj4wfSxPLndyaXRlVUludDMy'@; put 'QkU9ZnVuY3Rpb24oSSxrLEUpe0lbMCtFXT1rPj4+MjQsSVsxK0VdPWs+Pj4xNiYyNTUsSVsyK0VdPWs+Pj44JjI1NSxJWzMrRV09MjU1Jmt9LE8uaXA9ZnVuY3Rpb24oSSxrLEUsail7Zm9yKHZhciBWPTAsQj0wLFk9NjtZPj0wO1ktPTIpe2Zvcih2YXIgWD0wO1g8PTI0O1grPTgpVjw8PTEs'@; put 'Vnw9az4+PlgrWSYxO2ZvcihYPTA7WDw9MjQ7WCs9OClWPDw9MSxWfD1JPj4+WCtZJjF9Zm9yKFk9NjtZPj0wO1ktPTIpe2ZvcihYPTE7WDw9MjU7WCs9OClCPDw9MSxCfD1rPj4+WCtZJjE7Zm9yKFg9MTtYPD0yNTtYKz04KUI8PD0xLEJ8PUk+Pj5YK1kmMX1FW2orMF09Vj4+PjAsRVtqKzFd'@; put 'PUI+Pj4wfSxPLnJpcD1mdW5jdGlvbihJLGssRSxqKXtmb3IodmFyIFY9MCxCPTAsWT0wO1k8NDtZKyspZm9yKHZhciBYPTI0O1g+PTA7WC09OClWPDw9MSxWfD1rPj4+WCtZJjEsVjw8PTEsVnw9ST4+PlgrWSYxO2ZvcihZPTQ7WTw4O1krKylmb3IoWD0yNDtYPj0wO1gtPTgpQjw8PTEsQnw9'@; put 'az4+PlgrWSYxLEI8PD0xLEJ8PUk+Pj5YK1kmMTtFW2orMF09Vj4+PjAsRVtqKzFdPUI+Pj4wfSxPLnBjMT1mdW5jdGlvbihJLGssRSxqKXtmb3IodmFyIFY9MCxCPTAsWT03O1k+PTU7WS0tKXtmb3IodmFyIFg9MDtYPD0yNDtYKz04KVY8PD0xLFZ8PWs+PlgrWSYxO2ZvcihYPTA7WDw9MjQ7'@; put 'WCs9OClWPDw9MSxWfD1JPj5YK1kmMX1mb3IoWD0wO1g8PTI0O1grPTgpVjw8PTEsVnw9az4+WCtZJjE7Zm9yKFk9MTtZPD0zO1krKyl7Zm9yKFg9MDtYPD0yNDtYKz04KUI8PD0xLEJ8PWs+PlgrWSYxO2ZvcihYPTA7WDw9MjQ7WCs9OClCPDw9MSxCfD1JPj5YK1kmMX1mb3IoWD0wO1g8PTI0'@; put 'O1grPTgpQjw8PTEsQnw9ST4+WCtZJjE7RVtqKzBdPVY+Pj4wLEVbaisxXT1CPj4+MH0sTy5yMjhzaGw9ZnVuY3Rpb24oSSxrKXtyZXR1cm4gSTw8ayYyNjg0MzU0NTV8ST4+PjI4LWt9O3ZhciBSPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwy'@; put 'MSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO08ucGMyPWZ1bmN0aW9uKEksayxFLGope2Zvcih2YXIgVj0wLEI9MCxZPVIubGVuZ3RoPj4+MSxYPTA7WDxZO1grKylWPDw9MSxWfD1JPj4+UltYXSYxO2Zv'@; put 'cihYPVk7WDxSLmxlbmd0aDtYKyspQjw8PTEsQnw9az4+PlJbWF0mMTtFW2orMF09Vj4+PjAsRVtqKzFdPUI+Pj4wfSxPLmV4cGFuZD1mdW5jdGlvbihJLGssRSl7dmFyIGo9MCxWPTA7aj0oMSZJKTw8NXxJPj4+Mjc7Zm9yKHZhciBCPTIzO0I+PTE1O0ItPTQpajw8PTYsanw9ST4+PkImNjM7'@; put 'Zm9yKEI9MTE7Qj49MztCLT00KVZ8PUk+Pj5CJjYzLFY8PD02O1Z8PSgzMSZJKTw8MXxJPj4+MzEsa1tFKzBdPWo+Pj4wLGtbRSsxXT1WPj4+MH07dmFyIHo9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcs'@; put 'OCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3'@; put 'LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwx'@; put 'NSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMs'@; put 'OCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwx'@; put 'MiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEz'@; put 'LDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIs'@; put 'MTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07Ty5zdWJzdGl0dXRl'@; put 'PWZ1bmN0aW9uKEksayl7Zm9yKHZhciBFPTAsaj0wO2o8NDtqKyspRTw8PTQsRXw9els2NCpqKyhJPj4+MTgtNipqJjYzKV07Zm9yKGo9MDtqPDQ7aisrKUU8PD00LEV8PXpbMjU2KzY0KmorKGs+Pj4xOC02KmomNjMpXTtyZXR1cm4gRT4+PjB9O3ZhciBLPVsxNiwyNSwxMiwxMSwzLDIwLDQs'@; put 'MTUsMzEsMTcsOSw2LDI3LDE0LDEsMjIsMzAsMjQsOCwxOCwwLDUsMjksMjMsMTMsMTksMiwyNiwxMCwyMSwyOCw3XTtPLnBlcm11dGU9ZnVuY3Rpb24oSSl7Zm9yKHZhciBrPTAsRT0wO0U8Sy5sZW5ndGg7RSsrKWs8PD0xLGt8PUk+Pj5LW0VdJjE7cmV0dXJuIGs+Pj4wfSxPLnBhZFNwbGl0'@; put 'PWZ1bmN0aW9uKEksayxFKXtmb3IodmFyIGo9SS50b1N0cmluZygyKTtqLmxlbmd0aDxrOylqPSIwIitqO2Zvcih2YXIgVj1bXSxCPTA7QjxrO0IrPUUpVi5wdXNoKGouc2xpY2UoQixCK0UpKTtyZXR1cm4gVi5qb2luKCIgIil9fSwyNjA3OihNLE8sUik9Pnt2YXIgej1SKDg3NjQpLkJ1ZmZl'@; put 'cixLPVIoMzU5MCksST1SKDk3OTkpLGs9Uig3NDI2KSxFPXtiaW5hcnk6ITAsaGV4OiEwLGJhc2U2NDohMH07Ty5EaWZmaWVIZWxsbWFuR3JvdXA9Ty5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9Ty5nZXREaWZmaWVIZWxsbWFuPWZ1bmN0aW9uKGope3ZhciBWPW5ldyB6KElbal0ucHJpbWUs'@; put 'ImhleCIpLEI9bmV3IHooSVtqXS5nZW4sImhleCIpO3JldHVybiBuZXcgayhWLEIpfSxPLmNyZWF0ZURpZmZpZUhlbGxtYW49Ty5EaWZmaWVIZWxsbWFuPWZ1bmN0aW9uIGooVixCLFksWCl7cmV0dXJuIHouaXNCdWZmZXIoQil8fHZvaWQgMD09PUVbQl0/aihWLCJiaW5hcnkiLEIsWSk6KEI9'@; put 'Qnx8ImJpbmFyeSIsWD1YfHwiYmluYXJ5IixZPVl8fG5ldyB6KFsyXSksei5pc0J1ZmZlcihZKXx8KFk9bmV3IHooWSxYKSksIm51bWJlciI9PXR5cGVvZiBWP25ldyBrKEsoVixZKSxZLCEwKTooei5pc0J1ZmZlcihWKXx8KFY9bmV3IHooVixCKSksbmV3IGsoVixZLCEwKSkpfX0sNzQyNjoo'@; put 'TSxPLFIpPT57dmFyIHo9Uig4NzY0KS5CdWZmZXIsSz1SKDM2MjApLEk9bmV3KFIoMzA0NykpLGs9bmV3IEsoMjQpLEU9bmV3IEsoMTEpLGo9bmV3IEsoMTApLFY9bmV3IEsoMyksQj1uZXcgSyg3KSxZPVIoMzU5MCksWD1SKDE3OTgpO2Z1bmN0aW9uIFUoc2UsaGUpe3JldHVybiBoZT1oZXx8'@; put 'InV0ZjgiLHouaXNCdWZmZXIoc2UpfHwoc2U9bmV3IHooc2UsaGUpKSx0aGlzLl9wdWI9bmV3IEsoc2UpLHRoaXN9ZnVuY3Rpb24gcShzZSxoZSl7cmV0dXJuIGhlPWhlfHwidXRmOCIsei5pc0J1ZmZlcihzZSl8fChzZT1uZXcgeihzZSxoZSkpLHRoaXMuX3ByaXY9bmV3IEsoc2UpLHRoaXN9'@; put 'TS5leHBvcnRzPXRlO3ZhciBlZT17fTtmdW5jdGlvbiB0ZShzZSxoZSx1ZSl7dGhpcy5zZXRHZW5lcmF0b3IoaGUpLHRoaXMuX19wcmltZT1uZXcgSyhzZSksdGhpcy5fcHJpbWU9Sy5tb250KHRoaXMuX19wcmltZSksdGhpcy5fcHJpbWVMZW49c2UubGVuZ3RoLHRoaXMuX3B1Yj12b2lkIDAs'@; put 'dGhpcy5fcHJpdj12b2lkIDAsdGhpcy5fcHJpbWVDb2RlPXZvaWQgMCx1ZT8odGhpcy5zZXRQdWJsaWNLZXk9VSx0aGlzLnNldFByaXZhdGVLZXk9cSk6dGhpcy5fcHJpbWVDb2RlPTh9ZnVuY3Rpb24gb2Uoc2UsaGUpe3ZhciB1ZT1uZXcgeihzZS50b0FycmF5KCkpO3JldHVybiBoZT91ZS50'@; put 'b1N0cmluZyhoZSk6dWV9T2JqZWN0LmRlZmluZVByb3BlcnR5KHRlLnByb3RvdHlwZSwidmVyaWZ5RXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdGhpcy5fcHJpbWVDb2RlJiYodGhpcy5fcHJpbWVDb2RlPWZ1bmN0aW9uKHNlLGhl'@; put 'KXt2YXIgdWU9aGUudG9TdHJpbmcoImhleCIpLGNlPVt1ZSxzZS50b1N0cmluZygxNildLmpvaW4oIl8iKTtpZihjZSBpbiBlZSlyZXR1cm4gZWVbY2VdO3ZhciBHLGI9MDtpZihzZS5pc0V2ZW4oKXx8IVkuc2ltcGxlU2lldmV8fCFZLmZlcm1hdFRlc3Qoc2UpfHwhSS50ZXN0KHNlKSlyZXR1'@; put 'cm4gYis9MSxlZVtjZV09Yis9IjAyIj09PXVlfHwiMDUiPT09dWU/ODo0LGI7c3dpdGNoKEkudGVzdChzZS5zaHJuKDEpKXx8KGIrPTIpLHVlKXtjYXNlIjAyIjpzZS5tb2QoaykuY21wKEUpJiYoYis9OCk7YnJlYWs7Y2FzZSIwNSI6KEc9c2UubW9kKGopKS5jbXAoVikmJkcuY21wKEIpJiYo'@; put 'Yis9OCk7YnJlYWs7ZGVmYXVsdDpiKz00fXJldHVybiBlZVtjZV09YixifSh0aGlzLl9fcHJpbWUsdGhpcy5fX2dlbikpLHRoaXMuX3ByaW1lQ29kZX19KSx0ZS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ByaXZ8fCh0aGlzLl9wcml2PW5ldyBLKFgo'@; put 'dGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0aGlzLmdldFB1YmxpY0tleSgpfSx0ZS5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihzZSl7dmFyIGhlPShzZT0oc2U9bmV3'@; put 'IEsoc2UpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCksdWU9bmV3IHooaGUudG9BcnJheSgpKSxjZT10aGlzLmdldFByaW1lKCk7aWYodWUubGVuZ3RoPGNlLmxlbmd0aCl7dmFyIEc9bmV3IHooY2UubGVuZ3RoLXVlLmxlbmd0aCk7Ry5maWxsKDAp'@; put 'LHVlPXouY29uY2F0KFtHLHVlXSl9cmV0dXJuIHVlfSx0ZS5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKHNlKXtyZXR1cm4gb2UodGhpcy5fcHViLHNlKX0sdGUucHJvdG90eXBlLmdldFByaXZhdGVLZXk9ZnVuY3Rpb24oc2Upe3JldHVybiBvZSh0aGlzLl9wcml2LHNlKX0sdGUu'@; put 'cHJvdG90eXBlLmdldFByaW1lPWZ1bmN0aW9uKHNlKXtyZXR1cm4gb2UodGhpcy5fX3ByaW1lLHNlKX0sdGUucHJvdG90eXBlLmdldEdlbmVyYXRvcj1mdW5jdGlvbihzZSl7cmV0dXJuIG9lKHRoaXMuX2dlbixzZSl9LHRlLnByb3RvdHlwZS5zZXRHZW5lcmF0b3I9ZnVuY3Rpb24oc2UsaGUp'@; put 'e3JldHVybiBoZT1oZXx8InV0ZjgiLHouaXNCdWZmZXIoc2UpfHwoc2U9bmV3IHooc2UsaGUpKSx0aGlzLl9fZ2VuPXNlLHRoaXMuX2dlbj1uZXcgSyhzZSksdGhpc319LDM1OTA6KE0sTyxSKT0+e3ZhciB6PVIoMTc5OCk7TS5leHBvcnRzPXNlLHNlLnNpbXBsZVNpZXZlPXRlLHNlLmZlcm1h'@; put 'dFRlc3Q9b2U7dmFyIEs9UigzNjIwKSxJPW5ldyBLKDI0KSxrPW5ldyhSKDMwNDcpKSxFPW5ldyBLKDEpLGo9bmV3IEsoMiksVj1uZXcgSyg1KSxCPShuZXcgSygxNiksbmV3IEsoOCksbmV3IEsoMTApKSxZPW5ldyBLKDMpLFg9KG5ldyBLKDcpLG5ldyBLKDExKSksVT1uZXcgSyg0KSxxPShu'@; put 'ZXcgSygxMiksbnVsbCk7ZnVuY3Rpb24gdGUoaGUpe2Zvcih2YXIgdWU9ZnVuY3Rpb24gZWUoKXtpZihudWxsIT09cSlyZXR1cm4gcTt2YXIgaGU9W107aGVbMF09Mjtmb3IodmFyIHVlPTEsY2U9MztjZTwxMDQ4NTc2O2NlKz0yKXtmb3IodmFyIEc9TWF0aC5jZWlsKE1hdGguc3FydChjZSkp'@; put 'LGI9MDtiPHVlJiZoZVtiXTw9RyYmY2UlaGVbYl0hPTA7YisrKTt1ZSE9PWImJmhlW2JdPD1HfHwoaGVbdWUrK109Y2UpfXJldHVybiBxPWhlLGhlfSgpLGNlPTA7Y2U8dWUubGVuZ3RoO2NlKyspaWYoMD09PWhlLm1vZG4odWVbY2VdKSlyZXR1cm4gMD09PWhlLmNtcG4odWVbY2VdKTtyZXR1'@; put 'cm4hMH1mdW5jdGlvbiBvZShoZSl7dmFyIHVlPUsubW9udChoZSk7cmV0dXJuIDA9PT1qLnRvUmVkKHVlKS5yZWRQb3coaGUuc3VibigxKSkuZnJvbVJlZCgpLmNtcG4oMSl9ZnVuY3Rpb24gc2UoaGUsdWUpe2lmKGhlPDE2KXJldHVybiBuZXcgSygyPT09dWV8fDU9PT11ZT9bMTQwLDEyM106'@; put 'WzE0MCwzOV0pO3ZhciBjZSxHO2Zvcih1ZT1uZXcgSyh1ZSk7Oyl7Zm9yKGNlPW5ldyBLKHooTWF0aC5jZWlsKGhlLzgpKSk7Y2UuYml0TGVuZ3RoKCk+aGU7KWNlLmlzaHJuKDEpO2lmKGNlLmlzRXZlbigpJiZjZS5pYWRkKEUpLGNlLnRlc3RuKDEpfHxjZS5pYWRkKGopLHVlLmNtcChqKSl7'@; put 'aWYoIXVlLmNtcChWKSlmb3IoO2NlLm1vZChCKS5jbXAoWSk7KWNlLmlhZGQoVSl9ZWxzZSBmb3IoO2NlLm1vZChJKS5jbXAoWCk7KWNlLmlhZGQoVSk7aWYodGUoRz1jZS5zaHJuKDEpKSYmdGUoY2UpJiZvZShHKSYmb2UoY2UpJiZrLnRlc3QoRykmJmsudGVzdChjZSkpcmV0dXJuIGNlfX19'@; put 'LDM2MjA6ZnVuY3Rpb24oTSxPLFIpeyFmdW5jdGlvbih6LEspeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBJKGcsQyl7aWYoIWcpdGhyb3cgbmV3IEVycm9yKEN8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gayhnLEMpe2cuc3VwZXJfPUM7dmFyIFM9ZnVuY3Rpb24oKXt9O1MucHJvdG90'@; put 'eXBlPUMucHJvdG90eXBlLGcucHJvdG90eXBlPW5ldyBTLGcucHJvdG90eXBlLmNvbnN0cnVjdG9yPWd9ZnVuY3Rpb24gRShnLEMsUyl7aWYoRS5pc0JOKGcpKXJldHVybiBnO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwh'@; put 'PT1nJiYoImxlIiE9PUMmJiJiZSIhPT1DfHwoUz1DLEM9MTApLHRoaXMuX2luaXQoZ3x8MCxDfHwxMCxTfHwiYmUiKSl9dmFyIGo7Im9iamVjdCI9PXR5cGVvZiB6P3ouZXhwb3J0cz1FOksuQk49RSxFLkJOPUUsRS53b3JkU2l6ZT0yNjt0cnl7aj10eXBlb2Ygd2luZG93PCJ1IiYmdm9pZCAw'@; put 'IT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOlIoNzc0OCkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBWKGcsQyl7dmFyIFM9Zy5jaGFyQ29kZUF0KEMpO3JldHVybiBTPj02NSYmUzw9NzA/Uy01NTpTPj05NyYmUzw9MTAyP1MtODc6Uy00OCYxNX1mdW5jdGlvbiBCKGcsQyxTKXt2YXIg'@; put 'dj1WKGcsUyk7cmV0dXJuIFMtMT49QyYmKHZ8PVYoZyxTLTEpPDw0KSx2fWZ1bmN0aW9uIFkoZyxDLFMsdil7Zm9yKHZhciBwPTAsdz1NYXRoLm1pbihnLmxlbmd0aCxTKSxKPUM7Sjx3O0orKyl7dmFyIG5lPWcuY2hhckNvZGVBdChKKS00ODtwKj12LHArPW5lPj00OT9uZS00OSsxMDpuZT49'@; put 'MTc/bmUtMTcrMTA6bmV9cmV0dXJuIHB9RS5pc0JOPWZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2YgRXx8bnVsbCE9PWcmJiJvYmplY3QiPT10eXBlb2YgZyYmZy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PUUud29yZFNpemUmJkFycmF5LmlzQXJyYXkoZy53b3Jkcyl9LEUubWF4PWZ1'@; put 'bmN0aW9uKGcsQyl7cmV0dXJuIGcuY21wKEMpPjA/ZzpDfSxFLm1pbj1mdW5jdGlvbihnLEMpe3JldHVybiBnLmNtcChDKTwwP2c6Q30sRS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oZyxDLFMpe2lmKCJudW1iZXIiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihnLEMsUyk7'@; put 'aWYoIm9iamVjdCI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0QXJyYXkoZyxDLFMpOyJoZXgiPT09QyYmKEM9MTYpLEkoQz09PSgwfEMpJiZDPj0yJiZDPD0zNik7dmFyIHY9MDsiLSI9PT0oZz1nLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHYrKyx0aGlzLm5lZ2F0'@; put 'aXZlPTEpLHY8Zy5sZW5ndGgmJigxNj09PUM/dGhpcy5fcGFyc2VIZXgoZyx2LFMpOih0aGlzLl9wYXJzZUJhc2UoZyxDLHYpLCJsZSI9PT1TJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksQyxTKSkpfSxFLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihnLEMsUyl7Zzww'@; put 'JiYodGhpcy5uZWdhdGl2ZT0xLGc9LWcpLGc8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmddLHRoaXMubGVuZ3RoPTEpOmc8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooSShnPDkwMDcx'@; put 'OTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09UyYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLEMsUyl9LEUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oZyxDLFMpe2lmKEko'@; put 'Im51bWJlciI9PXR5cGVvZiBnLmxlbmd0aCksZy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoZy5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdj0wO3Y8dGhp'@; put 'cy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09MDt2YXIgcCx3LEo9MDtpZigiYmUiPT09Uylmb3Iodj1nLmxlbmd0aC0xLHA9MDt2Pj0wO3YtPTMpdGhpcy53b3Jkc1twXXw9KHc9Z1t2XXxnW3YtMV08PDh8Z1t2LTJdPDwxNik8PEomNjcxMDg4NjMsdGhpcy53b3Jkc1twKzFdPXc+Pj4yNi1K'@; put 'JjY3MTA4ODYzLChKKz0yNCk+PTI2JiYoSi09MjYscCsrKTtlbHNlIGlmKCJsZSI9PT1TKWZvcih2PTAscD0wO3Y8Zy5sZW5ndGg7dis9Myl0aGlzLndvcmRzW3BdfD0odz1nW3ZdfGdbdisxXTw8OHxnW3YrMl08PDE2KTw8SiY2NzEwODg2Myx0aGlzLndvcmRzW3ArMV09dz4+PjI2LUomNjcx'@; put 'MDg4NjMsKEorPTI0KT49MjYmJihKLT0yNixwKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihnLEMsUyl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChnLmxlbmd0aC1DKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9y'@; put 'KHZhciB2PTA7djx0aGlzLmxlbmd0aDt2KyspdGhpcy53b3Jkc1t2XT0wO3ZhciBwLHc9MCxKPTA7aWYoImJlIj09PVMpZm9yKHY9Zy5sZW5ndGgtMTt2Pj1DO3YtPTIpcD1CKGcsQyx2KTw8dyx0aGlzLndvcmRzW0pdfD02NzEwODg2MyZwLHc+PTE4Pyh3LT0xOCx0aGlzLndvcmRzW0orPTFd'@; put 'fD1wPj4+MjYpOncrPTg7ZWxzZSBmb3Iodj0oZy5sZW5ndGgtQyklMj09MD9DKzE6Qzt2PGcubGVuZ3RoO3YrPTIpcD1CKGcsQyx2KTw8dyx0aGlzLndvcmRzW0pdfD02NzEwODg2MyZwLHc+PTE4Pyh3LT0xOCx0aGlzLndvcmRzW0orPTFdfD1wPj4+MjYpOncrPTg7dGhpcy5zdHJpcCgpfSxF'@; put 'LnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKGcsQyxTKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgdj0wLHA9MTtwPD02NzEwODg2MztwKj1DKXYrKzt2LS0scD1wL0N8MDtmb3IodmFyIHc9Zy5sZW5ndGgtUyxKPXcldixuZT1NYXRoLm1pbih3LHctSikrUyxk'@; put 'ZT0wLGZlPVM7ZmU8bmU7ZmUrPXYpZGU9WShnLGZlLGZlK3YsQyksdGhpcy5pbXVsbihwKSx0aGlzLndvcmRzWzBdK2RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWRlOnRoaXMuX2lhZGRuKGRlKTtpZigwIT09Sil7dmFyIHhlPTE7Zm9yKGRlPVkoZyxmZSxnLmxlbmd0aCxDKSxmZT0wO2Zl'@; put 'PEo7ZmUrKyl4ZSo9Qzt0aGlzLmltdWxuKHhlKSx0aGlzLndvcmRzWzBdK2RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWRlOnRoaXMuX2lhZGRuKGRlKX10aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZyl7Zy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zv'@; put 'cih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7QysrKWcud29yZHNbQ109dGhpcy53b3Jkc1tDXTtnLmxlbmd0aD10aGlzLmxlbmd0aCxnLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsZy5yZWQ9dGhpcy5yZWR9LEUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IEUobnVsbCk7cmV0'@; put 'dXJuIHRoaXMuY29weShnKSxnfSxFLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8ZzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxFLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09'@; put 'PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LEUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlz'@; put 'fSxFLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBYPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAw'@; put 'MDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwMCJdLFU9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0scT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2'@; put 'NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTEx'@; put 'MTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBlZShnLEMsUyl7Uy5uZWdhdGl2ZT1DLm5lZ2F0aXZlXmcubmVnYXRpdmU7dmFyIHY9Zy5sZW5ndGgrQy5sZW5ndGh8MDtTLmxlbmd0aD12LHY9di0xfDA7dmFy'@; put 'IHA9MHxnLndvcmRzWzBdLHc9MHxDLndvcmRzWzBdLEo9cCp3LGRlPUovNjcxMDg4NjR8MDtTLndvcmRzWzBdPTY3MTA4ODYzJko7Zm9yKHZhciBmZT0xO2ZlPHY7ZmUrKyl7Zm9yKHZhciB4ZT1kZT4+PjI2LExlPTY3MTA4ODYzJmRlLEZlPU1hdGgubWluKGZlLEMubGVuZ3RoLTEpLE9lPU1h'@; put 'dGgubWF4KDAsZmUtZy5sZW5ndGgrMSk7T2U8PUZlO09lKyspeGUrPShKPShwPTB8Zy53b3Jkc1tmZS1PZXwwXSkqKHc9MHxDLndvcmRzW09lXSkrTGUpLzY3MTA4ODY0fDAsTGU9NjcxMDg4NjMmSjtTLndvcmRzW2ZlXT0wfExlLGRlPTB8eGV9cmV0dXJuIDAhPT1kZT9TLndvcmRzW2ZlXT0w'@; put 'fGRlOlMubGVuZ3RoLS0sUy5zdHJpcCgpfUUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKGcsQyl7dmFyIFM7aWYoQz0wfEN8fDEsMTY9PT0oZz1nfHwxMCl8fCJoZXgiPT09Zyl7Uz0iIjtmb3IodmFyIHY9MCxwPTAsdz0wO3c8dGhpcy5sZW5ndGg7dysrKXt2YXIgSj10aGlzLndvcmRz'@; put 'W3ddLG5lPSgxNjc3NzIxNSYoSjw8dnxwKSkudG9TdHJpbmcoMTYpO1M9MCE9KHA9Sj4+PjI0LXYmMTY3NzcyMTUpfHx3IT09dGhpcy5sZW5ndGgtMT9YWzYtbmUubGVuZ3RoXStuZStTOm5lK1MsKHYrPTIpPj0yNiYmKHYtPTI2LHctLSl9Zm9yKDAhPT1wJiYoUz1wLnRvU3RyaW5nKDE2KStT'@; put 'KTtTLmxlbmd0aCVDIT0wOylTPSIwIitTO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFM9Ii0iK1MpLFN9aWYoZz09PSgwfGcpJiZnPj0yJiZnPD0zNil7dmFyIGRlPVVbZ10sZmU9cVtnXTtTPSIiO3ZhciB4ZT10aGlzLmNsb25lKCk7Zm9yKHhlLm5lZ2F0aXZlPTA7IXhlLmlzWmVybygp'@; put 'Oyl7dmFyIExlPXhlLm1vZG4oZmUpLnRvU3RyaW5nKGcpO1M9KHhlPXhlLmlkaXZuKGZlKSkuaXNaZXJvKCk/TGUrUzpYW2RlLUxlLmxlbmd0aF0rTGUrU31mb3IodGhpcy5pc1plcm8oKSYmKFM9IjAiK1MpO1MubGVuZ3RoJUMhPTA7KVM9IjAiK1M7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZl'@; put 'JiYoUz0iLSIrUyksU31JKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LEUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP2crPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMu'@; put 'bGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9nKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmSSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LWc6Z30sRS5wcm90'@; put 'b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxFLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihnLEMpe3JldHVybiBJKHZvaWQgMCE9PWopLHRoaXMudG9BcnJheUxpa2UoaixnLEMpfSxFLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKGcsQyl7'@; put 'cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksZyxDKX0sRS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oZyxDLFMpe3ZhciB2PXRoaXMuYnl0ZUxlbmd0aCgpLHA9U3x8TWF0aC5tYXgoMSx2KTtJKHY8PXAsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgi'@; put 'KSxJKHA+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciB3LEosbmU9ImxlIj09PUMsZGU9bmV3IGcocCksZmU9dGhpcy5jbG9uZSgpO2lmKG5lKXtmb3IoSj0wOyFmZS5pc1plcm8oKTtKKyspdz1mZS5hbmRsbigyNTUpLGZlLml1c2hybig4KSxkZVtK'@; put 'XT13O2Zvcig7SjxwO0orKylkZVtKXT0wfWVsc2V7Zm9yKEo9MDtKPHAtdjtKKyspZGVbSl09MDtmb3IoSj0wOyFmZS5pc1plcm8oKTtKKyspdz1mZS5hbmRsbigyNTUpLGZlLml1c2hybig4KSxkZVtwLUotMV09d31yZXR1cm4gZGV9LEUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHoz'@; put 'Mj9mdW5jdGlvbihnKXtyZXR1cm4gMzItTWF0aC5jbHozMihnKX06ZnVuY3Rpb24oZyl7dmFyIEM9ZyxTPTA7cmV0dXJuIEM+PTQwOTYmJihTKz0xMyxDPj4+PTEzKSxDPj02NCYmKFMrPTcsQz4+Pj03KSxDPj04JiYoUys9NCxDPj4+PTQpLEM+PTImJihTKz0yLEM+Pj49MiksUytDfSxFLnBy'@; put 'b3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oZyl7aWYoMD09PWcpcmV0dXJuIDI2O3ZhciBDPWcsUz0wO3JldHVybiEoODE5MSZDKSYmKFMrPTEzLEM+Pj49MTMpLCEoMTI3JkMpJiYoUys9NyxDPj4+PTcpLCEoMTUmQykmJihTKz00LEM+Pj49NCksISgzJkMpJiYoUys9MixDPj4+PTIpLCEo'@; put 'MSZDKSYmUysrLFN9LEUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBDPXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK0N9LEUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5p'@; put 'c1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIGc9MCxDPTA7Qzx0aGlzLmxlbmd0aDtDKyspe3ZhciBTPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbQ10pO2lmKGcrPVMsMjYhPT1TKWJyZWFrfXJldHVybiBnfSxFLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgu'@; put 'Y2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxFLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oZykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxFLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4g'@; put 'dGhpcy50ZXN0bihnLTEpP3RoaXMubm90bihnKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxFLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sRS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVn'@; put 'KCl9LEUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LEUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zv'@; put 'cih2YXIgQz0wO0M8Zy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109dGhpcy53b3Jkc1tDXXxnLndvcmRzW0NdO3JldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihnKXtyZXR1cm4gSSgwPT0odGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdW9yKGcp'@; put 'fSxFLnByb3RvdHlwZS5vcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihnKTpnLmNsb25lKCkuaW9yKHRoaXMpfSxFLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUo'@; put 'KS5pdW9yKGcpOmcuY2xvbmUoKS5pdW9yKHRoaXMpfSxFLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihnKXt2YXIgQztDPXRoaXMubGVuZ3RoPmcubGVuZ3RoP2c6dGhpcztmb3IodmFyIFM9MDtTPEMubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPXRoaXMud29yZHNbU10mZy53b3Jkc1tTXTty'@; put 'ZXR1cm4gdGhpcy5sZW5ndGg9Qy5sZW5ndGgsdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGcpe3JldHVybiBJKDA9PSh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1YW5kKGcpfSxFLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMu'@; put 'bGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKGcpOmcuY2xvbmUoKS5pYW5kKHRoaXMpfSxFLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoZyk6Zy5jbG9uZSgpLml1YW5kKHRoaXMpfSxFLnBy'@; put 'b3RvdHlwZS5pdXhvcj1mdW5jdGlvbihnKXt2YXIgQyxTO3RoaXMubGVuZ3RoPmcubGVuZ3RoPyhDPXRoaXMsUz1nKTooQz1nLFM9dGhpcyk7Zm9yKHZhciB2PTA7djxTLmxlbmd0aDt2KyspdGhpcy53b3Jkc1t2XT1DLndvcmRzW3ZdXlMud29yZHNbdl07aWYodGhpcyE9PUMpZm9yKDt2PEMu'@; put 'bGVuZ3RoO3YrKyl0aGlzLndvcmRzW3ZdPUMud29yZHNbdl07cmV0dXJuIHRoaXMubGVuZ3RoPUMubGVuZ3RoLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gSSgwPT0odGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihnKX0sRS5w'@; put 'cm90b3R5cGUueG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihnKTpnLmNsb25lKCkuaXhvcih0aGlzKX0sRS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgp'@; put 'Lml1eG9yKGcpOmcuY2xvbmUoKS5pdXhvcih0aGlzKX0sRS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciBDPTB8TWF0aC5jZWlsKGcvMjYpLFM9ZyUyNjt0aGlzLl9leHBhbmQoQyksUz4wJiZDLS07Zm9yKHZhciB2PTA7djxDO3Yr'@; put 'Kyl0aGlzLndvcmRzW3ZdPTY3MTA4ODYzJn50aGlzLndvcmRzW3ZdO3JldHVybiBTPjAmJih0aGlzLndvcmRzW3ZdPX50aGlzLndvcmRzW3ZdJjY3MTA4ODYzPj4yNi1TKSx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90'@; put 'bihnKX0sRS5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihnLEMpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgUz1nLzI2fDAsdj1nJTI2O3JldHVybiB0aGlzLl9leHBhbmQoUysxKSx0aGlzLndvcmRzW1NdPUM/dGhpcy53b3Jkc1tTXXwxPDx2OnRoaXMud29yZHNbU10mfigxPDx2'@; put 'KSx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyl7dmFyIEMsUyx2O2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLEM9dGhpcy5pc3ViKGcpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtp'@; put 'ZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmUpcmV0dXJuIGcubmVnYXRpdmU9MCxDPXRoaXMuaXN1YihnKSxnLm5lZ2F0aXZlPTEsQy5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oUz10aGlzLHY9Zyk6KFM9Zyx2PXRoaXMpO2Zvcih2YXIgcD0wLHc9MDt3PHYu'@; put 'bGVuZ3RoO3crKyl0aGlzLndvcmRzW3ddPTY3MTA4ODYzJihDPSgwfFMud29yZHNbd10pKygwfHYud29yZHNbd10pK3ApLHA9Qz4+PjI2O2Zvcig7MCE9PXAmJnc8Uy5sZW5ndGg7dysrKXRoaXMud29yZHNbd109NjcxMDg4NjMmKEM9KDB8Uy53b3Jkc1t3XSkrcCkscD1DPj4+MjY7aWYodGhp'@; put 'cy5sZW5ndGg9Uy5sZW5ndGgsMCE9PXApdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09cCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoUyE9PXRoaXMpZm9yKDt3PFMubGVuZ3RoO3crKyl0aGlzLndvcmRzW3ddPVMud29yZHNbd107cmV0dXJuIHRoaXN9LEUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihn'@; put 'KXt2YXIgQztyZXR1cm4gMCE9PWcubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhnLm5lZ2F0aXZlPTAsQz10aGlzLnN1YihnKSxnLm5lZ2F0aXZlXj0xLEMpOjA9PT1nLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLEM9Zy5zdWIodGhpcyksdGhpcy5u'@; put 'ZWdhdGl2ZT0xLEMpOnRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGcpOmcuY2xvbmUoKS5pYWRkKHRoaXMpfSxFLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcpe2lmKDAhPT1nLm5lZ2F0aXZlKXtnLm5lZ2F0aXZlPTA7dmFyIEM9dGhpcy5pYWRkKGcpO3JldHVybiBn'@; put 'Lm5lZ2F0aXZlPTEsQy5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgUyx2LHA9dGhpcy5jbXAoZyk7aWYoMD09PXApcmV0dXJuIHRoaXMubmVnYXRp'@; put 'dmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO3A+MD8oUz10aGlzLHY9Zyk6KFM9Zyx2PXRoaXMpO2Zvcih2YXIgdz0wLEo9MDtKPHYubGVuZ3RoO0orKyl3PShDPSgwfFMud29yZHNbSl0pLSgwfHYud29yZHNbSl0pK3cpPj4yNix0aGlzLndvcmRzW0pdPTY3MTA4ODYz'@; put 'JkM7Zm9yKDswIT09dyYmSjxTLmxlbmd0aDtKKyspdz0oQz0oMHxTLndvcmRzW0pdKSt3KT4+MjYsdGhpcy53b3Jkc1tKXT02NzEwODg2MyZDO2lmKDA9PT13JiZKPFMubGVuZ3RoJiZTIT09dGhpcylmb3IoO0o8Uy5sZW5ndGg7SisrKXRoaXMud29yZHNbSl09Uy53b3Jkc1tKXTtyZXR1cm4g'@; put 'dGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsSiksUyE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihnKX07dmFyIHRlPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdixw'@; put 'LHcsSj1nLndvcmRzLG5lPUMud29yZHMsZGU9Uy53b3JkcyxmZT0wLHhlPTB8SlswXSxMZT04MTkxJnhlLEZlPXhlPj4+MTMsT2U9MHxKWzFdLGplPTgxOTEmT2UsV2U9T2U+Pj4xMyxLZT0wfEpbMl0sWWU9ODE5MSZLZSxRZT1LZT4+PjEzLGx0PTB8SlszXSxQZT04MTkxJmx0LGJlPWx0Pj4+'@; put 'MTMsQWU9MHxKWzRdLFRlPTgxOTEmQWUscWU9QWU+Pj4xMyxYZT0wfEpbNV0sVWU9ODE5MSZYZSxodD1YZT4+PjEzLE1lPTB8Sls2XSxEZT04MTkxJk1lLHplPU1lPj4+MTMsb3Q9MHxKWzddLHV0PTgxOTEmb3QsTXQ9b3Q+Pj4xMyxIdD0wfEpbOF0sUHQ9ODE5MSZIdCxvbj1IdD4+PjEzLENu'@; put 'PTB8Sls5XSxVdD04MTkxJkNuLGJuPUNuPj4+MTMsV249MHxuZVswXSxlbj04MTkxJlduLCRuPVduPj4+MTMsSG49MHxuZVsxXSxmdD04MTkxJkhuLGZuPUhuPj4+MTMsaG49MHxuZVsyXSx3dD04MTkxJmhuLFh0PWhuPj4+MTMsX3Q9MHxuZVszXSxOdD04MTkxJl90LG1uPV90Pj4+MTMscnQ9'@; put 'MHxuZVs0XSxJdD04MTkxJnJ0LFF0PXJ0Pj4+MTMsRHQ9MHxuZVs1XSxwdD04MTkxJkR0LFl0PUR0Pj4+MTMsSW49MHxuZVs2XSx6dD04MTkxJkluLHluPUluPj4+MTMseG49MHxuZVs3XSxzbj04MTkxJnhuLEJuPXhuPj4+MTMsUm49MHxuZVs4XSwkdD04MTkxJlJuLEZuPVJuPj4+MTMsbmk9'@; put 'MHxuZVs5XSxsbj04MTkxJm5pLGpuPW5pPj4+MTM7Uy5uZWdhdGl2ZT1nLm5lZ2F0aXZlXkMubmVnYXRpdmUsUy5sZW5ndGg9MTk7dmFyIHFyPShmZSsodj1NYXRoLmltdWwoTGUsZW4pKXwwKSsoKDgxOTEmKHA9KHA9TWF0aC5pbXVsKExlLCRuKSkrTWF0aC5pbXVsKEZlLGVuKXwwKSk8PDEz'@; put 'KXwwO2ZlPSgodz1NYXRoLmltdWwoRmUsJG4pKSsocD4+PjEzKXwwKSsocXI+Pj4yNil8MCxxciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoamUsZW4pLHA9KHA9TWF0aC5pbXVsKGplLCRuKSkrTWF0aC5pbXVsKFdlLGVuKXwwLHc9TWF0aC5pbXVsKFdlLCRuKTt2YXIgZ2k9KGZlKyh2PXYrTWF0'@; put 'aC5pbXVsKExlLGZ0KXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoTGUsZm4pfDApK01hdGguaW11bChGZSxmdCl8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoRmUsZm4pfDApKyhwPj4+MTMpfDApKyhnaT4+PjI2KXwwLGdpJj02NzEwODg2Myx2PU1hdGguaW11bChZZSxl'@; put 'bikscD0ocD1NYXRoLmltdWwoWWUsJG4pKStNYXRoLmltdWwoUWUsZW4pfDAsdz1NYXRoLmltdWwoUWUsJG4pLHY9ditNYXRoLmltdWwoamUsZnQpfDAscD0ocD1wK01hdGguaW11bChqZSxmbil8MCkrTWF0aC5pbXVsKFdlLGZ0KXwwLHc9dytNYXRoLmltdWwoV2UsZm4pfDA7dmFyIHhyPShm'@; put 'ZSsodj12K01hdGguaW11bChMZSx3dCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLFh0KXwwKStNYXRoLmltdWwoRmUsd3QpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLFh0KXwwKSsocD4+PjEzKXwwKSsoeHI+Pj4yNil8MCx4ciY9NjcxMDg4NjMsdj1NYXRo'@; put 'LmltdWwoUGUsZW4pLHA9KHA9TWF0aC5pbXVsKFBlLCRuKSkrTWF0aC5pbXVsKGJlLGVuKXwwLHc9TWF0aC5pbXVsKGJlLCRuKSx2PXYrTWF0aC5pbXVsKFllLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsZm4pfDApK01hdGguaW11bChRZSxmdCl8MCx3PXcrTWF0aC5pbXVsKFFlLGZuKXww'@; put 'LHY9ditNYXRoLmltdWwoamUsd3QpfDAscD0ocD1wK01hdGguaW11bChqZSxYdCl8MCkrTWF0aC5pbXVsKFdlLHd0KXwwLHc9dytNYXRoLmltdWwoV2UsWHQpfDA7dmFyIFVpPShmZSsodj12K01hdGguaW11bChMZSxOdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLG1uKXww'@; put 'KStNYXRoLmltdWwoRmUsTnQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLG1uKXwwKSsocD4+PjEzKXwwKSsoVWk+Pj4yNil8MCxVaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVGUsZW4pLHA9KHA9TWF0aC5pbXVsKFRlLCRuKSkrTWF0aC5pbXVsKHFlLGVuKXwwLHc9TWF0aC5p'@; put 'bXVsKHFlLCRuKSx2PXYrTWF0aC5pbXVsKFBlLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoUGUsZm4pfDApK01hdGguaW11bChiZSxmdCl8MCx3PXcrTWF0aC5pbXVsKGJlLGZuKXwwLHY9ditNYXRoLmltdWwoWWUsd3QpfDAscD0ocD1wK01hdGguaW11bChZZSxYdCl8MCkrTWF0aC5pbXVsKFFl'@; put 'LHd0KXwwLHc9dytNYXRoLmltdWwoUWUsWHQpfDAsdj12K01hdGguaW11bChqZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKGplLG1uKXwwKStNYXRoLmltdWwoV2UsTnQpfDAsdz13K01hdGguaW11bChXZSxtbil8MDt2YXIgS3I9KGZlKyh2PXYrTWF0aC5pbXVsKExlLEl0KXwwKXwwKSsoKDgx'@; put 'OTEmKHA9KHA9cCtNYXRoLmltdWwoTGUsUXQpfDApK01hdGguaW11bChGZSxJdCl8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoRmUsUXQpfDApKyhwPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2Myx2PU1hdGguaW11bChVZSxlbikscD0ocD1NYXRoLmltdWwoVWUsJG4p'@; put 'KStNYXRoLmltdWwoaHQsZW4pfDAsdz1NYXRoLmltdWwoaHQsJG4pLHY9ditNYXRoLmltdWwoVGUsZnQpfDAscD0ocD1wK01hdGguaW11bChUZSxmbil8MCkrTWF0aC5pbXVsKHFlLGZ0KXwwLHc9dytNYXRoLmltdWwocWUsZm4pfDAsdj12K01hdGguaW11bChQZSx3dCl8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKFBlLFh0KXwwKStNYXRoLmltdWwoYmUsd3QpfDAsdz13K01hdGguaW11bChiZSxYdCl8MCx2PXYrTWF0aC5pbXVsKFllLE50KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsbW4pfDApK01hdGguaW11bChRZSxOdCl8MCx3PXcrTWF0aC5pbXVsKFFlLG1uKXwwLHY9ditNYXRoLmltdWwo'@; put 'amUsSXQpfDAscD0ocD1wK01hdGguaW11bChqZSxRdCl8MCkrTWF0aC5pbXVsKFdlLEl0KXwwLHc9dytNYXRoLmltdWwoV2UsUXQpfDA7dmFyIG5vPShmZSsodj12K01hdGguaW11bChMZSxwdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLFl0KXwwKStNYXRoLmltdWwoRmUs'@; put 'cHQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLFl0KXwwKSsocD4+PjEzKXwwKSsobm8+Pj4yNil8MCxubyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoRGUsZW4pLHA9KHA9TWF0aC5pbXVsKERlLCRuKSkrTWF0aC5pbXVsKHplLGVuKXwwLHc9TWF0aC5pbXVsKHplLCRuKSx2PXYr'@; put 'TWF0aC5pbXVsKFVlLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsZm4pfDApK01hdGguaW11bChodCxmdCl8MCx3PXcrTWF0aC5pbXVsKGh0LGZuKXwwLHY9ditNYXRoLmltdWwoVGUsd3QpfDAscD0ocD1wK01hdGguaW11bChUZSxYdCl8MCkrTWF0aC5pbXVsKHFlLHd0KXwwLHc9dytNYXRo'@; put 'LmltdWwocWUsWHQpfDAsdj12K01hdGguaW11bChQZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLG1uKXwwKStNYXRoLmltdWwoYmUsTnQpfDAsdz13K01hdGguaW11bChiZSxtbil8MCx2PXYrTWF0aC5pbXVsKFllLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsUXQpfDApK01hdGguaW11'@; put 'bChRZSxJdCl8MCx3PXcrTWF0aC5pbXVsKFFlLFF0KXwwLHY9ditNYXRoLmltdWwoamUscHQpfDAscD0ocD1wK01hdGguaW11bChqZSxZdCl8MCkrTWF0aC5pbXVsKFdlLHB0KXwwLHc9dytNYXRoLmltdWwoV2UsWXQpfDA7dmFyIEhyPShmZSsodj12K01hdGguaW11bChMZSx6dCl8MCl8MCkr'@; put 'KCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLHluKXwwKStNYXRoLmltdWwoRmUsenQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLHluKXwwKSsocD4+PjEzKXwwKSsoSHI+Pj4yNil8MCxIciY9NjcxMDg4NjMsdj1NYXRoLmltdWwodXQsZW4pLHA9KHA9TWF0aC5pbXVsKHV0'@; put 'LCRuKSkrTWF0aC5pbXVsKE10LGVuKXwwLHc9TWF0aC5pbXVsKE10LCRuKSx2PXYrTWF0aC5pbXVsKERlLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsZm4pfDApK01hdGguaW11bCh6ZSxmdCl8MCx3PXcrTWF0aC5pbXVsKHplLGZuKXwwLHY9ditNYXRoLmltdWwoVWUsd3QpfDAscD0ocD1w'@; put 'K01hdGguaW11bChVZSxYdCl8MCkrTWF0aC5pbXVsKGh0LHd0KXwwLHc9dytNYXRoLmltdWwoaHQsWHQpfDAsdj12K01hdGguaW11bChUZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFRlLG1uKXwwKStNYXRoLmltdWwocWUsTnQpfDAsdz13K01hdGguaW11bChxZSxtbil8MCx2PXYrTWF0aC5p'@; put 'bXVsKFBlLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoUGUsUXQpfDApK01hdGguaW11bChiZSxJdCl8MCx3PXcrTWF0aC5pbXVsKGJlLFF0KXwwLHY9ditNYXRoLmltdWwoWWUscHQpfDAscD0ocD1wK01hdGguaW11bChZZSxZdCl8MCkrTWF0aC5pbXVsKFFlLHB0KXwwLHc9dytNYXRoLmltdWwo'@; put 'UWUsWXQpfDAsdj12K01hdGguaW11bChqZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKGplLHluKXwwKStNYXRoLmltdWwoV2UsenQpfDAsdz13K01hdGguaW11bChXZSx5bil8MDt2YXIgcWk9KGZlKyh2PXYrTWF0aC5pbXVsKExlLHNuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwo'@; put 'TGUsQm4pfDApK01hdGguaW11bChGZSxzbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoRmUsQm4pfDApKyhwPj4+MTMpfDApKyhxaT4+PjI2KXwwLHFpJj02NzEwODg2Myx2PU1hdGguaW11bChQdCxlbikscD0ocD1NYXRoLmltdWwoUHQsJG4pKStNYXRoLmltdWwob24sZW4pfDAs'@; put 'dz1NYXRoLmltdWwob24sJG4pLHY9ditNYXRoLmltdWwodXQsZnQpfDAscD0ocD1wK01hdGguaW11bCh1dCxmbil8MCkrTWF0aC5pbXVsKE10LGZ0KXwwLHc9dytNYXRoLmltdWwoTXQsZm4pfDAsdj12K01hdGguaW11bChEZSx3dCl8MCxwPShwPXArTWF0aC5pbXVsKERlLFh0KXwwKStNYXRo'@; put 'LmltdWwoemUsd3QpfDAsdz13K01hdGguaW11bCh6ZSxYdCl8MCx2PXYrTWF0aC5pbXVsKFVlLE50KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsbW4pfDApK01hdGguaW11bChodCxOdCl8MCx3PXcrTWF0aC5pbXVsKGh0LG1uKXwwLHY9ditNYXRoLmltdWwoVGUsSXQpfDAscD0ocD1wK01hdGgu'@; put 'aW11bChUZSxRdCl8MCkrTWF0aC5pbXVsKHFlLEl0KXwwLHc9dytNYXRoLmltdWwocWUsUXQpfDAsdj12K01hdGguaW11bChQZSxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLFl0KXwwKStNYXRoLmltdWwoYmUscHQpfDAsdz13K01hdGguaW11bChiZSxZdCl8MCx2PXYrTWF0aC5pbXVsKFll'@; put 'LHp0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUseW4pfDApK01hdGguaW11bChRZSx6dCl8MCx3PXcrTWF0aC5pbXVsKFFlLHluKXwwLHY9ditNYXRoLmltdWwoamUsc24pfDAscD0ocD1wK01hdGguaW11bChqZSxCbil8MCkrTWF0aC5pbXVsKFdlLHNuKXwwLHc9dytNYXRoLmltdWwoV2UsQm4p'@; put 'fDA7dmFyIEppPShmZSsodj12K01hdGguaW11bChMZSwkdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLEZuKXwwKStNYXRoLmltdWwoRmUsJHQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLEZuKXwwKSsocD4+PjEzKXwwKSsoSmk+Pj4yNil8MCxKaSY9Njcx'@; put 'MDg4NjMsdj1NYXRoLmltdWwoVXQsZW4pLHA9KHA9TWF0aC5pbXVsKFV0LCRuKSkrTWF0aC5pbXVsKGJuLGVuKXwwLHc9TWF0aC5pbXVsKGJuLCRuKSx2PXYrTWF0aC5pbXVsKFB0LGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoUHQsZm4pfDApK01hdGguaW11bChvbixmdCl8MCx3PXcrTWF0aC5p'@; put 'bXVsKG9uLGZuKXwwLHY9ditNYXRoLmltdWwodXQsd3QpfDAscD0ocD1wK01hdGguaW11bCh1dCxYdCl8MCkrTWF0aC5pbXVsKE10LHd0KXwwLHc9dytNYXRoLmltdWwoTXQsWHQpfDAsdj12K01hdGguaW11bChEZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKERlLG1uKXwwKStNYXRoLmltdWwo'@; put 'emUsTnQpfDAsdz13K01hdGguaW11bCh6ZSxtbil8MCx2PXYrTWF0aC5pbXVsKFVlLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsUXQpfDApK01hdGguaW11bChodCxJdCl8MCx3PXcrTWF0aC5pbXVsKGh0LFF0KXwwLHY9ditNYXRoLmltdWwoVGUscHQpfDAscD0ocD1wK01hdGguaW11bChU'@; put 'ZSxZdCl8MCkrTWF0aC5pbXVsKHFlLHB0KXwwLHc9dytNYXRoLmltdWwocWUsWXQpfDAsdj12K01hdGguaW11bChQZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLHluKXwwKStNYXRoLmltdWwoYmUsenQpfDAsdz13K01hdGguaW11bChiZSx5bil8MCx2PXYrTWF0aC5pbXVsKFllLHNuKXww'@; put 'LHA9KHA9cCtNYXRoLmltdWwoWWUsQm4pfDApK01hdGguaW11bChRZSxzbil8MCx3PXcrTWF0aC5pbXVsKFFlLEJuKXwwLHY9ditNYXRoLmltdWwoamUsJHQpfDAscD0ocD1wK01hdGguaW11bChqZSxGbil8MCkrTWF0aC5pbXVsKFdlLCR0KXwwLHc9dytNYXRoLmltdWwoV2UsRm4pfDA7dmFy'@; put 'IGFvPShmZSsodj12K01hdGguaW11bChMZSxsbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLGpuKXwwKStNYXRoLmltdWwoRmUsbG4pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLGpuKXwwKSsocD4+PjEzKXwwKSsoYW8+Pj4yNil8MCxhbyY9NjcxMDg4NjMs'@; put 'dj1NYXRoLmltdWwoVXQsZnQpLHA9KHA9TWF0aC5pbXVsKFV0LGZuKSkrTWF0aC5pbXVsKGJuLGZ0KXwwLHc9TWF0aC5pbXVsKGJuLGZuKSx2PXYrTWF0aC5pbXVsKFB0LHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoUHQsWHQpfDApK01hdGguaW11bChvbix3dCl8MCx3PXcrTWF0aC5pbXVsKG9u'@; put 'LFh0KXwwLHY9ditNYXRoLmltdWwodXQsTnQpfDAscD0ocD1wK01hdGguaW11bCh1dCxtbil8MCkrTWF0aC5pbXVsKE10LE50KXwwLHc9dytNYXRoLmltdWwoTXQsbW4pfDAsdj12K01hdGguaW11bChEZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKERlLFF0KXwwKStNYXRoLmltdWwoemUsSXQp'@; put 'fDAsdz13K01hdGguaW11bCh6ZSxRdCl8MCx2PXYrTWF0aC5pbXVsKFVlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsWXQpfDApK01hdGguaW11bChodCxwdCl8MCx3PXcrTWF0aC5pbXVsKGh0LFl0KXwwLHY9ditNYXRoLmltdWwoVGUsenQpfDAscD0ocD1wK01hdGguaW11bChUZSx5bil8'@; put 'MCkrTWF0aC5pbXVsKHFlLHp0KXwwLHc9dytNYXRoLmltdWwocWUseW4pfDAsdj12K01hdGguaW11bChQZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFBlLEJuKXwwKStNYXRoLmltdWwoYmUsc24pfDAsdz13K01hdGguaW11bChiZSxCbil8MCx2PXYrTWF0aC5pbXVsKFllLCR0KXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwoWWUsRm4pfDApK01hdGguaW11bChRZSwkdCl8MCx3PXcrTWF0aC5pbXVsKFFlLEZuKXwwO3ZhciBybz0oZmUrKHY9ditNYXRoLmltdWwoamUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChqZSxqbil8MCkrTWF0aC5pbXVsKFdlLGxuKXwwKSk8PDEzKXww'@; put 'O2ZlPSgodz13K01hdGguaW11bChXZSxqbil8MCkrKHA+Pj4xMyl8MCkrKHJvPj4+MjYpfDAscm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHd0KSxwPShwPU1hdGguaW11bChVdCxYdCkpK01hdGguaW11bChibix3dCl8MCx3PU1hdGguaW11bChibixYdCksdj12K01hdGguaW11bChQdCxO'@; put 'dCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LG1uKXwwKStNYXRoLmltdWwob24sTnQpfDAsdz13K01hdGguaW11bChvbixtbil8MCx2PXYrTWF0aC5pbXVsKHV0LEl0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsUXQpfDApK01hdGguaW11bChNdCxJdCl8MCx3PXcrTWF0aC5pbXVsKE10LFF0KXww'@; put 'LHY9ditNYXRoLmltdWwoRGUscHQpfDAscD0ocD1wK01hdGguaW11bChEZSxZdCl8MCkrTWF0aC5pbXVsKHplLHB0KXwwLHc9dytNYXRoLmltdWwoemUsWXQpfDAsdj12K01hdGguaW11bChVZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLHluKXwwKStNYXRoLmltdWwoaHQsenQpfDAsdz13'@; put 'K01hdGguaW11bChodCx5bil8MCx2PXYrTWF0aC5pbXVsKFRlLHNuKXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsQm4pfDApK01hdGguaW11bChxZSxzbil8MCx3PXcrTWF0aC5pbXVsKHFlLEJuKXwwLHY9ditNYXRoLmltdWwoUGUsJHQpfDAscD0ocD1wK01hdGguaW11bChQZSxGbil8MCkrTWF0'@; put 'aC5pbXVsKGJlLCR0KXwwLHc9dytNYXRoLmltdWwoYmUsRm4pfDA7dmFyIGlvPShmZSsodj12K01hdGguaW11bChZZSxsbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKFllLGpuKXwwKStNYXRoLmltdWwoUWUsbG4pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKFFlLGpu'@; put 'KXwwKSsocD4+PjEzKXwwKSsoaW8+Pj4yNil8MCxpbyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVXQsTnQpLHA9KHA9TWF0aC5pbXVsKFV0LG1uKSkrTWF0aC5pbXVsKGJuLE50KXwwLHc9TWF0aC5pbXVsKGJuLG1uKSx2PXYrTWF0aC5pbXVsKFB0LEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoUHQs'@; put 'UXQpfDApK01hdGguaW11bChvbixJdCl8MCx3PXcrTWF0aC5pbXVsKG9uLFF0KXwwLHY9ditNYXRoLmltdWwodXQscHQpfDAscD0ocD1wK01hdGguaW11bCh1dCxZdCl8MCkrTWF0aC5pbXVsKE10LHB0KXwwLHc9dytNYXRoLmltdWwoTXQsWXQpfDAsdj12K01hdGguaW11bChEZSx6dCl8MCxw'@; put 'PShwPXArTWF0aC5pbXVsKERlLHluKXwwKStNYXRoLmltdWwoemUsenQpfDAsdz13K01hdGguaW11bCh6ZSx5bil8MCx2PXYrTWF0aC5pbXVsKFVlLHNuKXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsQm4pfDApK01hdGguaW11bChodCxzbil8MCx3PXcrTWF0aC5pbXVsKGh0LEJuKXwwLHY9ditN'@; put 'YXRoLmltdWwoVGUsJHQpfDAscD0ocD1wK01hdGguaW11bChUZSxGbil8MCkrTWF0aC5pbXVsKHFlLCR0KXwwLHc9dytNYXRoLmltdWwocWUsRm4pfDA7dmFyIEdpPShmZSsodj12K01hdGguaW11bChQZSxsbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKFBlLGpuKXwwKStNYXRo'@; put 'LmltdWwoYmUsbG4pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKGJlLGpuKXwwKSsocD4+PjEzKXwwKSsoR2k+Pj4yNil8MCxHaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVXQsSXQpLHA9KHA9TWF0aC5pbXVsKFV0LFF0KSkrTWF0aC5pbXVsKGJuLEl0KXwwLHc9TWF0aC5pbXVsKGJu'@; put 'LFF0KSx2PXYrTWF0aC5pbXVsKFB0LHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoUHQsWXQpfDApK01hdGguaW11bChvbixwdCl8MCx3PXcrTWF0aC5pbXVsKG9uLFl0KXwwLHY9ditNYXRoLmltdWwodXQsenQpfDAscD0ocD1wK01hdGguaW11bCh1dCx5bil8MCkrTWF0aC5pbXVsKE10LHp0KXww'@; put 'LHc9dytNYXRoLmltdWwoTXQseW4pfDAsdj12K01hdGguaW11bChEZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKERlLEJuKXwwKStNYXRoLmltdWwoemUsc24pfDAsdz13K01hdGguaW11bCh6ZSxCbil8MCx2PXYrTWF0aC5pbXVsKFVlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsRm4pfDAp'@; put 'K01hdGguaW11bChodCwkdCl8MCx3PXcrTWF0aC5pbXVsKGh0LEZuKXwwO3ZhciBobz0oZmUrKHY9ditNYXRoLmltdWwoVGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChUZSxqbil8MCkrTWF0aC5pbXVsKHFlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChx'@; put 'ZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGhvPj4+MjYpfDAsaG8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHB0KSxwPShwPU1hdGguaW11bChVdCxZdCkpK01hdGguaW11bChibixwdCl8MCx3PU1hdGguaW11bChibixZdCksdj12K01hdGguaW11bChQdCx6dCl8MCxwPShwPXArTWF0aC5pbXVs'@; put 'KFB0LHluKXwwKStNYXRoLmltdWwob24senQpfDAsdz13K01hdGguaW11bChvbix5bil8MCx2PXYrTWF0aC5pbXVsKHV0LHNuKXwwLHA9KHA9cCtNYXRoLmltdWwodXQsQm4pfDApK01hdGguaW11bChNdCxzbil8MCx3PXcrTWF0aC5pbXVsKE10LEJuKXwwLHY9ditNYXRoLmltdWwoRGUsJHQp'@; put 'fDAscD0ocD1wK01hdGguaW11bChEZSxGbil8MCkrTWF0aC5pbXVsKHplLCR0KXwwLHc9dytNYXRoLmltdWwoemUsRm4pfDA7dmFyIHlyPShmZSsodj12K01hdGguaW11bChVZSxsbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKFVlLGpuKXwwKStNYXRoLmltdWwoaHQsbG4pfDAp'@; put 'KTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKGh0LGpuKXwwKSsocD4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVXQsenQpLHA9KHA9TWF0aC5pbXVsKFV0LHluKSkrTWF0aC5pbXVsKGJuLHp0KXwwLHc9TWF0aC5pbXVsKGJuLHluKSx2PXYrTWF0aC5p'@; put 'bXVsKFB0LHNuKXwwLHA9KHA9cCtNYXRoLmltdWwoUHQsQm4pfDApK01hdGguaW11bChvbixzbil8MCx3PXcrTWF0aC5pbXVsKG9uLEJuKXwwLHY9ditNYXRoLmltdWwodXQsJHQpfDAscD0ocD1wK01hdGguaW11bCh1dCxGbil8MCkrTWF0aC5pbXVsKE10LCR0KXwwLHc9dytNYXRoLmltdWwo'@; put 'TXQsRm4pfDA7dmFyIFBpPShmZSsodj12K01hdGguaW11bChEZSxsbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKERlLGpuKXwwKStNYXRoLmltdWwoemUsbG4pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKHplLGpuKXwwKSsocD4+PjEzKXwwKSsoUGk+Pj4yNil8MCxQ'@; put 'aSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVXQsc24pLHA9KHA9TWF0aC5pbXVsKFV0LEJuKSkrTWF0aC5pbXVsKGJuLHNuKXwwLHc9TWF0aC5pbXVsKGJuLEJuKSx2PXYrTWF0aC5pbXVsKFB0LCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoUHQsRm4pfDApK01hdGguaW11bChvbiwkdCl8MCx3PXcr'@; put 'TWF0aC5pbXVsKG9uLEZuKXwwO3ZhciBMbz0oZmUrKHY9ditNYXRoLmltdWwodXQsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bCh1dCxqbil8MCkrTWF0aC5pbXVsKE10LGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChNdCxqbil8MCkrKHA+Pj4xMyl8MCkrKExv'@; put 'Pj4+MjYpfDAsTG8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LCR0KSxwPShwPU1hdGguaW11bChVdCxGbikpK01hdGguaW11bChibiwkdCl8MCx3PU1hdGguaW11bChibixGbik7dmFyIGhzPShmZSsodj12K01hdGguaW11bChQdCxsbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVs'@; put 'KFB0LGpuKXwwKStNYXRoLmltdWwob24sbG4pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKG9uLGpuKXwwKSsocD4+PjEzKXwwKSsoaHM+Pj4yNil8MCxocyY9NjcxMDg4NjM7dmFyIHJzPShmZSsodj1NYXRoLmltdWwoVXQsbG4pKXwwKSsoKDgxOTEmKHA9KHA9TWF0aC5pbXVsKFV0'@; put 'LGpuKSkrTWF0aC5pbXVsKGJuLGxuKXwwKSk8PDEzKXwwO3JldHVybiBmZT0oKHc9TWF0aC5pbXVsKGJuLGpuKSkrKHA+Pj4xMyl8MCkrKHJzPj4+MjYpfDAscnMmPTY3MTA4ODYzLGRlWzBdPXFyLGRlWzFdPWdpLGRlWzJdPXhyLGRlWzNdPVVpLGRlWzRdPUtyLGRlWzVdPW5vLGRlWzZdPUhy'@; put 'LGRlWzddPXFpLGRlWzhdPUppLGRlWzldPWFvLGRlWzEwXT1ybyxkZVsxMV09aW8sZGVbMTJdPUdpLGRlWzEzXT1obyxkZVsxNF09eXIsZGVbMTVdPVBpLGRlWzE2XT1MbyxkZVsxN109aHMsZGVbMThdPXJzLDAhPT1mZSYmKGRlWzE5XT1mZSxTLmxlbmd0aCsrKSxTfTtmdW5jdGlvbiBvZShn'@; put 'LEMsUyl7cmV0dXJuKG5ldyBzZSkubXVscChnLEMsUyl9ZnVuY3Rpb24gc2UoZyxDKXt0aGlzLng9Zyx0aGlzLnk9Q31NYXRoLmltdWx8fCh0ZT1lZSksRS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oZyxDKXt2YXIgdj10aGlzLmxlbmd0aCtnLmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxl'@; put 'bmd0aCYmMTA9PT1nLmxlbmd0aD90ZSh0aGlzLGcsQyk6djw2Mz9lZSh0aGlzLGcsQyk6djwxMDI0P2Z1bmN0aW9uKHAsdyxKKXtKLm5lZ2F0aXZlPXcubmVnYXRpdmVecC5uZWdhdGl2ZSxKLmxlbmd0aD1wLmxlbmd0aCt3Lmxlbmd0aDtmb3IodmFyIG5lPTAsZGU9MCxmZT0wO2ZlPEoubGVu'@; put 'Z3RoLTE7ZmUrKyl7dmFyIHhlPWRlO2RlPTA7Zm9yKHZhciBMZT02NzEwODg2MyZuZSxGZT1NYXRoLm1pbihmZSx3Lmxlbmd0aC0xKSxPZT1NYXRoLm1heCgwLGZlLXAubGVuZ3RoKzEpO09lPD1GZTtPZSsrKXt2YXIgV2U9KDB8cC53b3Jkc1tmZS1PZV0pKigwfHcud29yZHNbT2VdKSxLZT02'@; put 'NzEwODg2MyZXZTtMZT02NzEwODg2MyYoS2U9S2UrTGV8MCksZGUrPSh4ZT0oeGU9eGUrKFdlLzY3MTA4ODY0fDApfDApKyhLZT4+PjI2KXwwKT4+PjI2LHhlJj02NzEwODg2M31KLndvcmRzW2ZlXT1MZSxuZT14ZSx4ZT1kZX1yZXR1cm4gMCE9PW5lP0oud29yZHNbZmVdPW5lOkoubGVuZ3Ro'@; put 'LS0sSi5zdHJpcCgpfSh0aGlzLGcsQyk6b2UodGhpcyxnLEMpfSxzZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihnKXtmb3IodmFyIEM9bmV3IEFycmF5KGcpLFM9RS5wcm90b3R5cGUuX2NvdW50Qml0cyhnKS0xLHY9MDt2PGc7disrKUNbdl09dGhpcy5yZXZCaW4odixTLGcpO3JldHVy'@; put 'biBDfSxzZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKGcsQyxTKXtpZigwPT09Z3x8Zz09PVMtMSlyZXR1cm4gZztmb3IodmFyIHY9MCxwPTA7cDxDO3ArKyl2fD0oMSZnKTw8Qy1wLTEsZz4+PTE7cmV0dXJuIHZ9LHNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGcsQyxTLHYscCx3'@; put 'KXtmb3IodmFyIEo9MDtKPHc7SisrKXZbSl09Q1tnW0pdXSxwW0pdPVNbZ1tKXV19LHNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZyxDLFMsdixwLHcpe3RoaXMucGVybXV0ZSh3LGcsQyxTLHYscCk7Zm9yKHZhciBKPTE7SjxwO0o8PD0xKWZvcih2YXIgbmU9Sjw8MSxkZT1NYXRo'@; put 'LmNvcygyKk1hdGguUEkvbmUpLGZlPU1hdGguc2luKDIqTWF0aC5QSS9uZSkseGU9MDt4ZTxwO3hlKz1uZSlmb3IodmFyIExlPWRlLEZlPWZlLE9lPTA7T2U8SjtPZSsrKXt2YXIgamU9U1t4ZStPZV0sV2U9dlt4ZStPZV0sS2U9U1t4ZStPZStKXSxZZT12W3hlK09lK0pdLFFlPUxlKktlLUZl'@; put 'KlllO1llPUxlKlllK0ZlKktlLFNbeGUrT2VdPWplKyhLZT1RZSksdlt4ZStPZV09V2UrWWUsU1t4ZStPZStKXT1qZS1LZSx2W3hlK09lK0pdPVdlLVllLE9lIT09bmUmJihRZT1kZSpMZS1mZSpGZSxGZT1kZSpGZStmZSpMZSxMZT1RZSl9fSxzZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVu'@; put 'Y3Rpb24oZyxDKXt2YXIgUz0xfE1hdGgubWF4KEMsZyksdj0xJlMscD0wO2ZvcihTPVMvMnwwO1M7Uz4+Pj0xKXArKztyZXR1cm4gMTw8cCsxK3Z9LHNlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZyxDLFMpe2lmKCEoUzw9MSkpZm9yKHZhciB2PTA7djxTLzI7disrKXt2YXIgcD1n'@; put 'W3ZdO2dbdl09Z1tTLXYtMV0sZ1tTLXYtMV09cCxwPUNbdl0sQ1t2XT0tQ1tTLXYtMV0sQ1tTLXYtMV09LXB9fSxzZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKGcsQyl7Zm9yKHZhciBTPTAsdj0wO3Y8Qy8yO3YrKyl7dmFyIHA9ODE5MipNYXRoLnJvdW5kKGdbMip2KzFdL0Mp'@; put 'K01hdGgucm91bmQoZ1syKnZdL0MpK1M7Z1t2XT02NzEwODg2MyZwLFM9cDw2NzEwODg2ND8wOnAvNjcxMDg4NjR8MH1yZXR1cm4gZ30sc2UucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oZyxDLFMsdil7Zm9yKHZhciBwPTAsdz0wO3c8Qzt3KyspU1syKnddPTgxOTEmKHArPTB8Z1t3'@; put 'XSksU1syKncrMV09ODE5MSYocD4+Pj0xMykscD4+Pj0xMztmb3Iodz0yKkM7dzx2OysrdylTW3ddPTA7SSgwPT09cCksSSgwPT0oLTgxOTImcCkpfSxzZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihnKXtmb3IodmFyIEM9bmV3IEFycmF5KGcpLFM9MDtTPGc7UysrKUNbU109MDtyZXR1cm4g'@; put 'Q30sc2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZyxDLFMpe3ZhciB2PTIqdGhpcy5ndWVzc0xlbjEzYihnLmxlbmd0aCxDLmxlbmd0aCkscD10aGlzLm1ha2VSQlQodiksdz10aGlzLnN0dWIodiksSj1uZXcgQXJyYXkodiksbmU9bmV3IEFycmF5KHYpLGRlPW5ldyBBcnJheSh2KSxmZT1u'@; put 'ZXcgQXJyYXkodikseGU9bmV3IEFycmF5KHYpLExlPW5ldyBBcnJheSh2KSxGZT1TLndvcmRzO0ZlLmxlbmd0aD12LHRoaXMuY29udmVydDEzYihnLndvcmRzLGcubGVuZ3RoLEosdiksdGhpcy5jb252ZXJ0MTNiKEMud29yZHMsQy5sZW5ndGgsZmUsdiksdGhpcy50cmFuc2Zvcm0oSix3LG5l'@; put 'LGRlLHYscCksdGhpcy50cmFuc2Zvcm0oZmUsdyx4ZSxMZSx2LHApO2Zvcih2YXIgT2U9MDtPZTx2O09lKyspe3ZhciBqZT1uZVtPZV0qeGVbT2VdLWRlW09lXSpMZVtPZV07ZGVbT2VdPW5lW09lXSpMZVtPZV0rZGVbT2VdKnhlW09lXSxuZVtPZV09amV9cmV0dXJuIHRoaXMuY29uanVnYXRl'@; put 'KG5lLGRlLHYpLHRoaXMudHJhbnNmb3JtKG5lLGRlLEZlLHcsdixwKSx0aGlzLmNvbmp1Z2F0ZShGZSx3LHYpLHRoaXMubm9ybWFsaXplMTNiKEZlLHYpLFMubmVnYXRpdmU9Zy5uZWdhdGl2ZV5DLm5lZ2F0aXZlLFMubGVuZ3RoPWcubGVuZ3RoK0MubGVuZ3RoLFMuc3RyaXAoKX0sRS5wcm90'@; put 'b3R5cGUubXVsPWZ1bmN0aW9uKGcpe3ZhciBDPW5ldyBFKG51bGwpO3JldHVybiBDLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksdGhpcy5tdWxUbyhnLEMpfSxFLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGcpe3ZhciBDPW5ldyBFKG51bGwpO3JldHVybiBDLndvcmRz'@; put 'PW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksb2UodGhpcyxnLEMpfSxFLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oZyx0aGlzKX0sRS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcpLEko'@; put 'Zzw2NzEwODg2NCk7Zm9yKHZhciBDPTAsUz0wO1M8dGhpcy5sZW5ndGg7UysrKXt2YXIgdj0oMHx0aGlzLndvcmRzW1NdKSpnLHA9KDY3MTA4ODYzJnYpKyg2NzEwODg2MyZDKTtDPj49MjYsQys9di82NzEwODg2NHwwLEMrPXA+Pj4yNix0aGlzLndvcmRzW1NdPTY3MTA4ODYzJnB9cmV0dXJu'@; put 'IDAhPT1DJiYodGhpcy53b3Jkc1tTXT1DLHRoaXMubGVuZ3RoKyspLHRoaXN9LEUucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihnKX0sRS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxFLnByb3RvdHlw'@; put 'ZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxFLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyl7dmFyIEM9ZnVuY3Rpb24odyl7Zm9yKHZhciBKPW5ldyBBcnJheSh3LmJpdExlbmd0aCgpKSxuZT0wO25lPEoubGVuZ3RoO25lKyspe3ZhciBmZT1uZSUy'@; put 'NjtKW25lXT0ody53b3Jkc1tuZS8yNnwwXSYxPDxmZSk+Pj5mZX1yZXR1cm4gSn0oZyk7aWYoMD09PUMubGVuZ3RoKXJldHVybiBuZXcgRSgxKTtmb3IodmFyIFM9dGhpcyx2PTA7djxDLmxlbmd0aCYmMD09PUNbdl07disrLFM9Uy5zcXIoKSk7aWYoKyt2PEMubGVuZ3RoKWZvcih2YXIgcD1T'@; put 'LnNxcigpO3Y8Qy5sZW5ndGg7disrLHA9cC5zcXIoKSkwIT09Q1t2XSYmKFM9Uy5tdWwocCkpO3JldHVybiBTfSxFLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciBDLFM9ZyUyNix2PShnLVMpLzI2LHA9NjcxMDg4NjM+Pj4yNi1T'@; put 'PDwyNi1TO2lmKDAhPT1TKXt2YXIgdz0wO2ZvcihDPTA7Qzx0aGlzLmxlbmd0aDtDKyspe3ZhciBKPXRoaXMud29yZHNbQ10mcDt0aGlzLndvcmRzW0NdPSgwfHRoaXMud29yZHNbQ10pLUo8PFN8dyx3PUo+Pj4yNi1TfXcmJih0aGlzLndvcmRzW0NdPXcsdGhpcy5sZW5ndGgrKyl9aWYoMCE9'@; put 'PXYpe2ZvcihDPXRoaXMubGVuZ3RoLTE7Qz49MDtDLS0pdGhpcy53b3Jkc1tDK3ZdPXRoaXMud29yZHNbQ107Zm9yKEM9MDtDPHY7QysrKXRoaXMud29yZHNbQ109MDt0aGlzLmxlbmd0aCs9dn1yZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihnKXtyZXR1'@; put 'cm4gSSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oZyl9LEUucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihnLEMsUyl7dmFyIHY7SSgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApLHY9Qz8oQy1DJTI2KS8yNjowO3ZhciBwPWclMjYsdz1NYXRoLm1pbigoZy1wKS8yNix0aGlzLmxl'@; put 'bmd0aCksSj02NzEwODg2M142NzEwODg2Mz4+PnA8PHAsbmU9UztpZih2LT13LHY9TWF0aC5tYXgoMCx2KSxuZSl7Zm9yKHZhciBkZT0wO2RlPHc7ZGUrKyluZS53b3Jkc1tkZV09dGhpcy53b3Jkc1tkZV07bmUubGVuZ3RoPXd9aWYoMCE9PXcpaWYodGhpcy5sZW5ndGg+dylmb3IodGhpcy5s'@; put 'ZW5ndGgtPXcsZGU9MDtkZTx0aGlzLmxlbmd0aDtkZSsrKXRoaXMud29yZHNbZGVdPXRoaXMud29yZHNbZGUrd107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgZmU9MDtmb3IoZGU9dGhpcy5sZW5ndGgtMTtkZT49MCYmKDAhPT1mZXx8ZGU+PXYpO2RlLS0pe3ZhciB4'@; put 'ZT0wfHRoaXMud29yZHNbZGVdO3RoaXMud29yZHNbZGVdPWZlPDwyNi1wfHhlPj4+cCxmZT14ZSZKfXJldHVybiBuZSYmMCE9PWZlJiYobmUud29yZHNbbmUubGVuZ3RoKytdPWZlKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgp'@; put 'fSxFLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihnLEMsUyl7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKGcsQyxTKX0sRS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGcpfSxFLnByb3RvdHlwZS51c2hsbj1mdW5j'@; put 'dGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihnKX0sRS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGcpfSxFLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihnKX0sRS5wcm90'@; put 'b3R5cGUudGVzdG49ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciBDPWclMjYsUz0oZy1DKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1TfHwhKHRoaXMud29yZHNbU10mMTw8QykpfSxFLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09'@; put 'dHlwZW9mIGcmJmc+PTApO3ZhciBDPWclMjYsUz0oZy1DKS8yNjtyZXR1cm4gSSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVM/dGhpczooMCE9PUMmJlMrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihTLHRo'@; put 'aXMubGVuZ3RoKSwwIT09QyYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+Qzw8QyksdGhpcy5zdHJpcCgpKX0sRS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZyl9LEUucHJvdG90eXBlLmlhZGRu'@; put 'PWZ1bmN0aW9uKGcpe3JldHVybiBJKCJudW1iZXIiPT10eXBlb2YgZyksSShnPDY3MTA4ODY0KSxnPDA/dGhpcy5pc3VibigtZyk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxnPyh0aGlzLndvcmRzWzBdPWctKDB8dGhpcy53b3Jkc1swXSks'@; put 'dGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oZyl9LEUucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihnKXt0aGlzLndvcmRzWzBdKz1nO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGgm'@; put 'JnRoaXMud29yZHNbQ10+PTY3MTA4ODY0O0MrKyl0aGlzLndvcmRzW0NdLT02NzEwODg2NCxDPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW0MrMV09MTp0aGlzLndvcmRzW0MrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsQysxKSx0aGlzfSxFLnByb3Rv'@; put 'dHlwZS5pc3Vibj1mdW5jdGlvbihnKXtpZihJKCJudW1iZXIiPT10eXBlb2YgZyksSShnPDY3MTA4ODY0KSxnPDApcmV0dXJuIHRoaXMuaWFkZG4oLWcpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhp'@; put 'cztpZih0aGlzLndvcmRzWzBdLT1nLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciBDPTA7Qzx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tDXTwwO0MrKyl0aGlzLndvcmRzW0Nd'@; put 'Kz02NzEwODg2NCx0aGlzLndvcmRzW0MrMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGcpfSxFLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4o'@; put 'Zyl9LEUucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LEUucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxFLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oZyxDLFMpe3ZhciB2LHA7'@; put 'dGhpcy5fZXhwYW5kKGcubGVuZ3RoK1MpO3ZhciBKPTA7Zm9yKHY9MDt2PGcubGVuZ3RoO3YrKyl7cD0oMHx0aGlzLndvcmRzW3YrU10pK0o7dmFyIG5lPSgwfGcud29yZHNbdl0pKkM7Sj0oKHAtPTY3MTA4ODYzJm5lKT4+MjYpLShuZS82NzEwODg2NHwwKSx0aGlzLndvcmRzW3YrU109Njcx'@; put 'MDg4NjMmcH1mb3IoO3Y8dGhpcy5sZW5ndGgtUzt2KyspSj0ocD0oMHx0aGlzLndvcmRzW3YrU10pK0opPj4yNix0aGlzLndvcmRzW3YrU109NjcxMDg4NjMmcDtpZigwPT09SilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihJKC0xPT09SiksSj0wLHY9MDt2PHRoaXMubGVuZ3RoO3YrKylKPShw'@; put 'PS0oMHx0aGlzLndvcmRzW3ZdKStKKT4+MjYsdGhpcy53b3Jkc1t2XT02NzEwODg2MyZwO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihnLEMpe3ZhciBTLHY9dGhpcy5jbG9uZSgpLHA9Zyx3PTB8cC53b3Jkc1twLmxl'@; put 'bmd0aC0xXTswIT0oUz0yNi10aGlzLl9jb3VudEJpdHModykpJiYocD1wLnVzaGxuKFMpLHYuaXVzaGxuKFMpLHc9MHxwLndvcmRzW3AubGVuZ3RoLTFdKTt2YXIgSixuZT12Lmxlbmd0aC1wLmxlbmd0aDtpZigibW9kIiE9PUMpeyhKPW5ldyBFKG51bGwpKS5sZW5ndGg9bmUrMSxKLndvcmRz'@; put 'PW5ldyBBcnJheShKLmxlbmd0aCk7Zm9yKHZhciBkZT0wO2RlPEoubGVuZ3RoO2RlKyspSi53b3Jkc1tkZV09MH12YXIgZmU9di5jbG9uZSgpLl9pc2hsbnN1Ym11bChwLDEsbmUpOzA9PT1mZS5uZWdhdGl2ZSYmKHY9ZmUsSiYmKEoud29yZHNbbmVdPTEpKTtmb3IodmFyIHhlPW5lLTE7eGU+'@; put 'PTA7eGUtLSl7dmFyIExlPTY3MTA4ODY0KigwfHYud29yZHNbcC5sZW5ndGgreGVdKSsoMHx2LndvcmRzW3AubGVuZ3RoK3hlLTFdKTtmb3IoTGU9TWF0aC5taW4oTGUvd3wwLDY3MTA4ODYzKSx2Ll9pc2hsbnN1Ym11bChwLExlLHhlKTswIT09di5uZWdhdGl2ZTspTGUtLSx2Lm5lZ2F0aXZl'@; put 'PTAsdi5faXNobG5zdWJtdWwocCwxLHhlKSx2LmlzWmVybygpfHwodi5uZWdhdGl2ZV49MSk7SiYmKEoud29yZHNbeGVdPUxlKX1yZXR1cm4gSiYmSi5zdHJpcCgpLHYuc3RyaXAoKSwiZGl2IiE9PUMmJjAhPT1TJiZ2Lml1c2hybihTKSx7ZGl2Okp8fG51bGwsbW9kOnZ9fSxFLnByb3RvdHlw'@; put 'ZS5kaXZtb2Q9ZnVuY3Rpb24oZyxDLFMpe3JldHVybiBJKCFnLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IEUoMCksbW9kOm5ldyBFKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmU/KHc9dGhpcy5uZWcoKS5kaXZtb2QoZyxDKSwibW9kIiE9PUMmJih2PXcu'@; put 'ZGl2Lm5lZygpKSwiZGl2IiE9PUMmJihwPXcubW9kLm5lZygpLFMmJjAhPT1wLm5lZ2F0aXZlJiZwLmlhZGQoZykpLHtkaXY6dixtb2Q6cH0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZT8odz10aGlzLmRpdm1vZChnLm5lZygpLEMpLCJtb2QiIT09QyYmKHY9dy5kaXYubmVn'@; put 'KCkpLHtkaXY6dixtb2Q6dy5tb2R9KTp0aGlzLm5lZ2F0aXZlJmcubmVnYXRpdmU/KHc9dGhpcy5uZWcoKS5kaXZtb2QoZy5uZWcoKSxDKSwiZGl2IiE9PUMmJihwPXcubW9kLm5lZygpLFMmJjAhPT1wLm5lZ2F0aXZlJiZwLmlzdWIoZykpLHtkaXY6dy5kaXYsbW9kOnB9KTpnLmxlbmd0aD50'@; put 'aGlzLmxlbmd0aHx8dGhpcy5jbXAoZyk8MD97ZGl2Om5ldyBFKDApLG1vZDp0aGlzfToxPT09Zy5sZW5ndGg/ImRpdiI9PT1DP3tkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PUM/e2RpdjpudWxsLG1vZDpuZXcgRSh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp7'@; put 'ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bmV3IEUodGhpcy5tb2RuKGcud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihnLEMpO3ZhciB2LHAsd30sRS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJkaXYiLCExKS5kaXZ9LEUucHJvdG90eXBl'@; put 'Lm1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMSkubW9kfSxFLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2QiLCEwKS5tb2R9LEUucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGcpe3ZhciBDPXRoaXMuZGl2'@; put 'bW9kKGcpO2lmKEMubW9kLmlzWmVybygpKXJldHVybiBDLmRpdjt2YXIgUz0wIT09Qy5kaXYubmVnYXRpdmU/Qy5tb2QuaXN1YihnKTpDLm1vZCx2PWcudXNocm4oMSkscD1nLmFuZGxuKDEpLHc9Uy5jbXAodik7cmV0dXJuIHc8MHx8MT09PXAmJjA9PT13P0MuZGl2OjAhPT1DLmRpdi5uZWdh'@; put 'dGl2ZT9DLmRpdi5pc3VibigxKTpDLmRpdi5pYWRkbigxKX0sRS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihnKXtJKGc8PTY3MTA4ODYzKTtmb3IodmFyIEM9NjcxMDg4NjQlZyxTPTAsdj10aGlzLmxlbmd0aC0xO3Y+PTA7di0tKVM9KEMqUysoMHx0aGlzLndvcmRzW3ZdKSklZztyZXR1cm4g'@; put 'U30sRS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZyl7SShnPD02NzEwODg2Myk7Zm9yKHZhciBDPTAsUz10aGlzLmxlbmd0aC0xO1M+PTA7Uy0tKXt2YXIgdj0oMHx0aGlzLndvcmRzW1NdKSs2NzEwODg2NCpDO3RoaXMud29yZHNbU109di9nfDAsQz12JWd9cmV0dXJuIHRoaXMuc3RyaXAo'@; put 'KX0sRS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGcpfSxFLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGcpe0koMD09PWcubmVnYXRpdmUpLEkoIWcuaXNaZXJvKCkpO3ZhciBDPXRoaXMsUz1nLmNsb25lKCk7Qz0wIT09Qy5uZWdhdGl2ZT9D'@; put 'LnVtb2QoZyk6Qy5jbG9uZSgpO2Zvcih2YXIgdj1uZXcgRSgxKSxwPW5ldyBFKDApLHc9bmV3IEUoMCksSj1uZXcgRSgxKSxuZT0wO0MuaXNFdmVuKCkmJlMuaXNFdmVuKCk7KUMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpLCsrbmU7Zm9yKHZhciBkZT1TLmNsb25lKCksZmU9Qy5jbG9uZSgpOyFD'@; put 'LmlzWmVybygpOyl7Zm9yKHZhciB4ZT0wLExlPTE7IShDLndvcmRzWzBdJkxlKSYmeGU8MjY7Kyt4ZSxMZTw8PTEpO2lmKHhlPjApZm9yKEMuaXVzaHJuKHhlKTt4ZS0tID4wOykodi5pc09kZCgpfHxwLmlzT2RkKCkpJiYodi5pYWRkKGRlKSxwLmlzdWIoZmUpKSx2Lml1c2hybigxKSxwLml1'@; put 'c2hybigxKTtmb3IodmFyIEZlPTAsT2U9MTshKFMud29yZHNbMF0mT2UpJiZGZTwyNjsrK0ZlLE9lPDw9MSk7aWYoRmU+MClmb3IoUy5pdXNocm4oRmUpO0ZlLS0gPjA7KSh3LmlzT2RkKCl8fEouaXNPZGQoKSkmJih3LmlhZGQoZGUpLEouaXN1YihmZSkpLHcuaXVzaHJuKDEpLEouaXVzaHJu'@; put 'KDEpO0MuY21wKFMpPj0wPyhDLmlzdWIoUyksdi5pc3ViKHcpLHAuaXN1YihKKSk6KFMuaXN1YihDKSx3LmlzdWIodiksSi5pc3ViKHApKX1yZXR1cm57YTp3LGI6SixnY2Q6Uy5pdXNobG4obmUpfX0sRS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGcpe0koMD09PWcubmVnYXRpdmUpLEko'@; put 'IWcuaXNaZXJvKCkpO3ZhciBDPXRoaXMsUz1nLmNsb25lKCk7Qz0wIT09Qy5uZWdhdGl2ZT9DLnVtb2QoZyk6Qy5jbG9uZSgpO2Zvcih2YXIgdixwPW5ldyBFKDEpLHc9bmV3IEUoMCksSj1TLmNsb25lKCk7Qy5jbXBuKDEpPjAmJlMuY21wbigxKT4wOyl7Zm9yKHZhciBuZT0wLGRlPTE7IShD'@; put 'LndvcmRzWzBdJmRlKSYmbmU8MjY7KytuZSxkZTw8PTEpO2lmKG5lPjApZm9yKEMuaXVzaHJuKG5lKTtuZS0tID4wOylwLmlzT2RkKCkmJnAuaWFkZChKKSxwLml1c2hybigxKTtmb3IodmFyIGZlPTAseGU9MTshKFMud29yZHNbMF0meGUpJiZmZTwyNjsrK2ZlLHhlPDw9MSk7aWYoZmU+MClm'@; put 'b3IoUy5pdXNocm4oZmUpO2ZlLS0gPjA7KXcuaXNPZGQoKSYmdy5pYWRkKEopLHcuaXVzaHJuKDEpO0MuY21wKFMpPj0wPyhDLmlzdWIoUykscC5pc3ViKHcpKTooUy5pc3ViKEMpLHcuaXN1YihwKSl9cmV0dXJuKHY9MD09PUMuY21wbigxKT9wOncpLmNtcG4oMCk8MCYmdi5pYWRkKGcpLHZ9'@; put 'LEUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihnKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBnLmFicygpO2lmKGcuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIEM9dGhpcy5jbG9uZSgpLFM9Zy5jbG9uZSgpO0MubmVnYXRpdmU9MCxTLm5lZ2F0aXZlPTA7Zm9yKHZhciB2PTA7Qy5p'@; put 'c0V2ZW4oKSYmUy5pc0V2ZW4oKTt2KyspQy5pdXNocm4oMSksUy5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO0MuaXNFdmVuKCk7KUMuaXVzaHJuKDEpO2Zvcig7Uy5pc0V2ZW4oKTspUy5pdXNocm4oMSk7dmFyIHA9Qy5jbXAoUyk7aWYocDwwKXt2YXIgdz1DO0M9UyxTPXd9ZWxzZSBpZigwPT09'@; put 'cHx8MD09PVMuY21wbigxKSlicmVhaztDLmlzdWIoUyl9cmV0dXJuIFMuaXVzaGxuKHYpfSxFLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmVnY2QoZykuYS51bW9kKGcpfSxFLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jk'@; put 'c1swXSl9LEUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxFLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZnfSxFLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihnKXtJKCJudW1iZXIiPT10eXBl'@; put 'b2YgZyk7dmFyIEM9ZyUyNixTPShnLUMpLzI2LHY9MTw8QztpZih0aGlzLmxlbmd0aDw9UylyZXR1cm4gdGhpcy5fZXhwYW5kKFMrMSksdGhpcy53b3Jkc1tTXXw9dix0aGlzO2Zvcih2YXIgcD12LHc9UzswIT09cCYmdzx0aGlzLmxlbmd0aDt3Kyspe3ZhciBKPTB8dGhpcy53b3Jkc1t3XTtw'@; put 'PShKKz1wKT4+PjI2LHRoaXMud29yZHNbd109SiY9NjcxMDg4NjN9cmV0dXJuIDAhPT1wJiYodGhpcy53b3Jkc1t3XT1wLHRoaXMubGVuZ3RoKyspLHRoaXN9LEUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxF'@; put 'LnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGcpe3ZhciBDLFM9ZzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhUylyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmUylyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlDPTE7ZWxzZXtTJiYoZz0tZyksSShnPD02NzEw'@; put 'ODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgdj0wfHRoaXMud29yZHNbMF07Qz12PT09Zz8wOnY8Zz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1DOkN9LEUucHJvdG90eXBlLmNtcD1mdW5jdGlvbihnKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUp'@; put 'cmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiAxO3ZhciBDPXRoaXMudWNtcChnKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtQzpDfSxFLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGcpe2lmKHRoaXMubGVuZ3RoPmcubGVuZ3RoKXJldHVy'@; put 'biAxO2lmKHRoaXMubGVuZ3RoPGcubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgQz0wLFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl7dmFyIHY9MHx0aGlzLndvcmRzW1NdLHA9MHxnLndvcmRzW1NdO2lmKHYhPT1wKXt2PHA/Qz0tMTp2PnAmJihDPTEpO2JyZWFrfX1yZXR1cm4gQ30sRS5wcm90'@; put 'b3R5cGUuZ3RuPWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhpcy5jbXBuKGcpfSxFLnByb3RvdHlwZS5ndD1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wKGcpfSxFLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk+PTB9LEUucHJvdG90eXBlLmd0'@; put 'ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk+PTB9LEUucHJvdG90eXBlLmx0bj1mdW5jdGlvbihnKXtyZXR1cm4tMT09PXRoaXMuY21wbihnKX0sRS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcChnKX0sRS5wcm90b3R5cGUubHRlbj1mdW5jdGlv'@; put 'bihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPD0wfSxFLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPD0wfSxFLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oZyl9LEUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGcpe3JldHVy'@; put 'biAwPT09dGhpcy5jbXAoZyl9LEUucmVkPWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgSChnKX0sRS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksSSgwPT09dGhpcy5uZWdhdGl2ZSwi'@; put 'cmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxnLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoZyl9LEUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4'@; put 'dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxFLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucmVkPWcsdGhpc30sRS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJl'@; put 'ZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoZyl9LEUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRJQWRk'@; put 'PWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRo'@; put 'IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRT'@; put 'aGw9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRo'@; put 'IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5tdWwodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJp'@; put 'ZnkyKHRoaXMsZyksdGhpcy5yZWQuaW11bCh0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0s'@; put 'RS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LEUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gSSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxFLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZEludm0gd29ya3Mg'@; put 'b25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sRS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5f'@; put 'dmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LEUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCYmIWcucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLGcpfTt2YXIgaGU9'@; put 'e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB1ZShnLEMpe3RoaXMubmFtZT1nLHRoaXMucD1uZXcgRShDLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgRSgxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhp'@; put 'cy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gY2UoKXt1ZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIEcoKXt1ZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZm'@; put 'ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIGIoKXt1ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEQoKXt1'@; put 'ZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIEgoZyl7aWYoInN0cmluZyI9PXR5cGVvZiBnKXt2YXIgQz1FLl9wcmltZShnKTt0aGlzLm09Qy5wLHRoaXMucHJp'@; put 'bWU9Q31lbHNlIEkoZy5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1nLHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBOKGcpe0guY2FsbCh0aGlzLGcpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNo'@; put 'aWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IEUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRp'@; put 'dih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dWUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgZz1uZXcgRShudWxsKTtyZXR1cm4gZy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8x'@; put 'MykpLGd9LHVlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKGcpe3ZhciBDLFM9Zztkb3t0aGlzLnNwbGl0KFMsdGhpcy50bXApLEM9KFM9KFM9dGhpcy5pbXVsSyhTKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKEM+dGhpcy5uKTt2YXIgdj1DPHRoaXMubj8tMTpTLnVj'@; put 'bXAodGhpcy5wKTtyZXR1cm4gMD09PXY/KFMud29yZHNbMF09MCxTLmxlbmd0aD0xKTp2PjA/Uy5pc3ViKHRoaXMucCk6dm9pZCAwIT09Uy5zdHJpcD9TLnN0cmlwKCk6Uy5fc3RyaXAoKSxTfSx1ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZyxDKXtnLml1c2hybih0aGlzLm4sMCxDKX0s'@; put 'dWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe3JldHVybiBnLmltdWwodGhpcy5rKX0sayhjZSx1ZSksY2UucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcsQyl7Zm9yKHZhciBTPTQxOTQzMDMsdj1NYXRoLm1pbihnLmxlbmd0aCw5KSxwPTA7cDx2O3ArKylDLndvcmRzW3BdPWcud29y'@; put 'ZHNbcF07aWYoQy5sZW5ndGg9dixnLmxlbmd0aDw9OSlyZXR1cm4gZy53b3Jkc1swXT0wLHZvaWQoZy5sZW5ndGg9MSk7dmFyIHc9Zy53b3Jkc1s5XTtmb3IoQy53b3Jkc1tDLmxlbmd0aCsrXT13JlMscD0xMDtwPGcubGVuZ3RoO3ArKyl7dmFyIEo9MHxnLndvcmRzW3BdO2cud29yZHNbcC0x'@; put 'MF09KEomUyk8PDR8dz4+PjIyLHc9Sn1nLndvcmRzW3AtMTBdPXc+Pj49MjIsZy5sZW5ndGgtPTA9PT13JiZnLmxlbmd0aD4xMD8xMDo5fSxjZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zy53b3Jkc1tnLmxlbmd0aF09MCxnLndvcmRzW2cubGVuZ3RoKzFdPTAsZy5sZW5ndGgrPTI7'@; put 'Zm9yKHZhciBDPTAsUz0wO1M8Zy5sZW5ndGg7UysrKXt2YXIgdj0wfGcud29yZHNbU107Zy53b3Jkc1tTXT02NzEwODg2MyYoQys9OTc3KnYpLEM9NjQqdisoQy82NzEwODg2NHwwKX1yZXR1cm4gMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJihnLmxlbmd0aC0tLDA9PT1nLndvcmRzW2cubGVu'@; put 'Z3RoLTFdJiZnLmxlbmd0aC0tKSxnfSxrKEcsdWUpLGsoYix1ZSksayhELHVlKSxELnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtmb3IodmFyIEM9MCxTPTA7UzxnLmxlbmd0aDtTKyspe3ZhciB2PTE5KigwfGcud29yZHNbU10pK0MscD02NzEwODg2MyZ2O3Y+Pj49MjYsZy53b3Jkc1tT'@; put 'XT1wLEM9dn1yZXR1cm4gMCE9PUMmJihnLndvcmRzW2cubGVuZ3RoKytdPUMpLGd9LEUuX3ByaW1lPWZ1bmN0aW9uKGcpe2lmKGhlW2ddKXJldHVybiBoZVtnXTt2YXIgQztpZigiazI1NiI9PT1nKUM9bmV3IGNlO2Vsc2UgaWYoInAyMjQiPT09ZylDPW5ldyBHO2Vsc2UgaWYoInAxOTIiPT09'@; put 'ZylDPW5ldyBiO2Vsc2V7aWYoInAyNTUxOSIhPT1nKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK2cpO0M9bmV3IER9cmV0dXJuIGhlW2ddPUMsQ30sSC5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oZyl7SSgwPT09Zy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBw'@; put 'b3NpdGl2ZXMiKSxJKGcucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LEgucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKGcsQyl7SSgwPT0oZy5uZWdhdGl2ZXxDLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxJKGcucmVkJiZnLnJl'@; put 'ZD09PUMucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LEgucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGcpLl9mb3JjZVJlZCh0aGlzKTpnLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LEgu'@; put 'cHJvdG90eXBlLm5lZz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pc1plcm8oKT9nLmNsb25lKCk6dGhpcy5tLnN1YihnKS5fZm9yY2VSZWQodGhpcyl9LEgucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnLEMpe3RoaXMuX3ZlcmlmeTIoZyxDKTt2YXIgUz1nLmFkZChDKTtyZXR1cm4gUy5jbXAodGhp'@; put 'cy5tKT49MCYmUy5pc3ViKHRoaXMubSksUy5fZm9yY2VSZWQodGhpcyl9LEgucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5pYWRkKEMpO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wJiZTLmlzdWIodGhpcy5tKSxTfSxILnByb3RvdHlwZS5z'@; put 'dWI9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5zdWIoQyk7cmV0dXJuIFMuY21wbigwKTwwJiZTLmlhZGQodGhpcy5tKSxTLl9mb3JjZVJlZCh0aGlzKX0sSC5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnLEMpe3RoaXMuX3ZlcmlmeTIoZyxDKTt2YXIgUz1nLmlz'@; put 'dWIoQyk7cmV0dXJuIFMuY21wbigwKTwwJiZTLmlhZGQodGhpcy5tKSxTfSxILnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oZyxDKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShnKSx0aGlzLmltb2QoZy51c2hsbihDKSl9LEgucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyxDKXtyZXR1cm4gdGhpcy5f'@; put 'dmVyaWZ5MihnLEMpLHRoaXMuaW1vZChnLmltdWwoQykpfSxILnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyxDKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihnLEMpLHRoaXMuaW1vZChnLm11bChDKSl9LEgucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW11bChnLGcuY2xv'@; put 'bmUoKSl9LEgucHJvdG90eXBlLnNxcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5tdWwoZyxnKX0sSC5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihnKXtpZihnLmlzWmVybygpKXJldHVybiBnLmNsb25lKCk7dmFyIEM9dGhpcy5tLmFuZGxuKDMpO2lmKEkoQyUyPT0xKSwzPT09Qyl7dmFyIFM9'@; put 'dGhpcy5tLmFkZChuZXcgRSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhnLFMpfWZvcih2YXIgdj10aGlzLm0uc3VibigxKSxwPTA7IXYuaXNaZXJvKCkmJjA9PT12LmFuZGxuKDEpOylwKyssdi5pdXNocm4oMSk7SSghdi5pc1plcm8oKSk7dmFyIHc9bmV3IEUoMSkudG9SZWQodGhp'@; put 'cyksSj13LnJlZE5lZygpLG5lPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxkZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKGRlPW5ldyBFKDIqZGUqZGUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhkZSxuZSkuY21wKEopOylkZS5yZWRJQWRkKEopO2Zvcih2YXIgZmU9dGhpcy5wb3coZGUs'@; put 'dikseGU9dGhpcy5wb3coZyx2LmFkZG4oMSkuaXVzaHJuKDEpKSxMZT10aGlzLnBvdyhnLHYpLEZlPXA7MCE9PUxlLmNtcCh3KTspe2Zvcih2YXIgT2U9TGUsamU9MDswIT09T2UuY21wKHcpO2plKyspT2U9T2UucmVkU3FyKCk7SShqZTxGZSk7dmFyIFdlPXRoaXMucG93KGZlLG5ldyBFKDEp'@; put 'Lml1c2hsbihGZS1qZS0xKSk7eGU9eGUucmVkTXVsKFdlKSxmZT1XZS5yZWRTcXIoKSxMZT1MZS5yZWRNdWwoZmUpLEZlPWplfXJldHVybiB4ZX0sSC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXt2YXIgQz1nLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09Qy5uZWdhdGl2ZT8oQy5uZWdh'@; put 'dGl2ZT0wLHRoaXMuaW1vZChDKS5yZWROZWcoKSk6dGhpcy5pbW9kKEMpfSxILnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyxDKXtpZihDLmlzWmVybygpKXJldHVybiBuZXcgRSgxKS50b1JlZCh0aGlzKTtpZigwPT09Qy5jbXBuKDEpKXJldHVybiBnLmNsb25lKCk7dmFyIFM9bmV3IEFycmF5'@; put 'KDE2KTtTWzBdPW5ldyBFKDEpLnRvUmVkKHRoaXMpLFNbMV09Zztmb3IodmFyIHY9Mjt2PFMubGVuZ3RoO3YrKylTW3ZdPXRoaXMubXVsKFNbdi0xXSxnKTt2YXIgcD1TWzBdLHc9MCxKPTAsbmU9Qy5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PW5lJiYobmU9MjYpLHY9Qy5sZW5ndGgtMTt2Pj0w'@; put 'O3YtLSl7Zm9yKHZhciBkZT1DLndvcmRzW3ZdLGZlPW5lLTE7ZmU+PTA7ZmUtLSl7dmFyIHhlPWRlPj5mZSYxO3AhPT1TWzBdJiYocD10aGlzLnNxcihwKSksMCE9PXhlfHwwIT09dz8odzw8PTEsd3w9eGUsKDQ9PSsrSnx8MD09PXYmJjA9PT1mZSkmJihwPXRoaXMubXVsKHAsU1t3XSksSj0w'@; put 'LHc9MCkpOko9MH1uZT0yNn1yZXR1cm4gcH0sSC5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3ZhciBDPWcudW1vZCh0aGlzLm0pO3JldHVybiBDPT09Zz9DLmNsb25lKCk6Q30sSC5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIEM9Zy5jbG9uZSgpO3JldHVy'@; put 'biBDLnJlZD1udWxsLEN9LEUubW9udD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IE4oZyl9LGsoTixIKSxOLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLnVzaGxuKHRoaXMuc2hpZnQpKX0sTi5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24o'@; put 'Zyl7dmFyIEM9dGhpcy5pbW9kKGcubXVsKHRoaXMucmludikpO3JldHVybiBDLnJlZD1udWxsLEN9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyxDKXtpZihnLmlzWmVybygpfHxDLmlzWmVybygpKXJldHVybiBnLndvcmRzWzBdPTAsZy5sZW5ndGg9MSxnO3ZhciBTPWcuaW11bChDKSx2'@; put 'PVMubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHA9Uy5pc3ViKHYpLml1c2hybih0aGlzLnNoaWZ0KSx3PXA7cmV0dXJuIHAuY21wKHRoaXMubSk+PTA/dz1wLmlzdWIodGhpcy5tKTpwLmNtcG4oMCk8MCYmKHc9cC5pYWRk'@; put 'KHRoaXMubSkpLHcuX2ZvcmNlUmVkKHRoaXMpfSxOLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyxDKXtpZihnLmlzWmVybygpfHxDLmlzWmVybygpKXJldHVybiBuZXcgRSgwKS5fZm9yY2VSZWQodGhpcyk7dmFyIFM9Zy5tdWwoQyksdj1TLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1p'@; put 'bnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxwPVMuaXN1Yih2KS5pdXNocm4odGhpcy5zaGlmdCksdz1wO3JldHVybiBwLmNtcCh0aGlzLm0pPj0wP3c9cC5pc3ViKHRoaXMubSk6cC5jbXBuKDApPDAmJih3PXAuaWFkZCh0aGlzLm0pKSx3Ll9mb3JjZVJlZCh0aGlzKX0sTi5w'@; put 'cm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShNPVIubm1kKE0pLHRoaXMpfSw2OTQ4OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Tzt6LnZlcnNpb249Uig4NTk3KS5p'@; put 'OCx6LnV0aWxzPVIoOTUzKSx6LnJhbmQ9Uig5OTMxKSx6LmN1cnZlPVIoODI1NCksei5jdXJ2ZXM9Uig1NDI3KSx6LmVjPVIoNzk1NCksei5lZGRzYT1SKDU5ODApfSw0OTE4OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9UigzNzg1KSxLPVIoOTUzKSxJPUsuZ2V0TkFGLGs9Sy5nZXRK'@; put 'U0YsRT1LLmFzc2VydDtmdW5jdGlvbiBqKEIsWSl7dGhpcy50eXBlPUIsdGhpcy5wPW5ldyB6KFkucCwxNiksdGhpcy5yZWQ9WS5wcmltZT96LnJlZChZLnByaW1lKTp6Lm1vbnQodGhpcy5wKSx0aGlzLnplcm89bmV3IHooMCkudG9SZWQodGhpcy5yZWQpLHRoaXMub25lPW5ldyB6KDEpLnRv'@; put 'UmVkKHRoaXMucmVkKSx0aGlzLnR3bz1uZXcgeigyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5uPVkubiYmbmV3IHooWS5uLDE2KSx0aGlzLmc9WS5nJiZ0aGlzLnBvaW50RnJvbUpTT04oWS5nLFkuZ1JlZCksdGhpcy5fd25hZlQxPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDI9bmV3IEFycmF5'@; put 'KDQpLHRoaXMuX3duYWZUMz1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQ0PW5ldyBBcnJheSg0KSx0aGlzLl9iaXRMZW5ndGg9dGhpcy5uP3RoaXMubi5iaXRMZW5ndGgoKTowO3ZhciBYPXRoaXMubiYmdGhpcy5wLmRpdih0aGlzLm4pOyFYfHxYLmNtcG4oMTAwKT4wP3RoaXMucmVkTj1udWxs'@; put 'Oih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIFYoQixZKXt0aGlzLmN1cnZlPUIsdGhpcy50eXBlPVksdGhpcy5wcmVjb21wdXRlZD1udWxsfU0uZXhwb3J0cz1qLGoucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKCl7dGhy'@; put 'b3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sai5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxqLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24oQixZKXtFKEIucHJlY29tcHV0ZWQpO3ZhciBYPUIu'@; put 'X2dldERvdWJsZXMoKSxVPUkoWSwxLHRoaXMuX2JpdExlbmd0aCkscT0oMTw8WC5zdGVwKzEpLShYLnN0ZXAlMj09MD8yOjEpO3EvPTM7dmFyIGVlLHRlLG9lPVtdO2ZvcihlZT0wO2VlPFUubGVuZ3RoO2VlKz1YLnN0ZXApe3RlPTA7Zm9yKHZhciBzZT1lZStYLnN0ZXAtMTtzZT49ZWU7c2Ut'@; put 'LSl0ZT0odGU8PDEpK1Vbc2VdO29lLnB1c2godGUpfWZvcih2YXIgaGU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHVlPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxjZT1xO2NlPjA7Y2UtLSl7Zm9yKGVlPTA7ZWU8b2UubGVuZ3RoO2VlKyspKHRlPW9lW2VlXSk9PT1jZT91ZT11'@; put 'ZS5taXhlZEFkZChYLnBvaW50c1tlZV0pOnRlPT09LWNlJiYodWU9dWUubWl4ZWRBZGQoWC5wb2ludHNbZWVdLm5lZygpKSk7aGU9aGUuYWRkKHVlKX1yZXR1cm4gaGUudG9QKCl9LGoucHJvdG90eXBlLl93bmFmTXVsPWZ1bmN0aW9uKEIsWSl7Zm9yKHZhciBYPTQsVT1CLl9nZXROQUZQb2lu'@; put 'dHMoWCkscT1VLnBvaW50cyxlZT1JKFksWD1VLnduZCx0aGlzLl9iaXRMZW5ndGgpLHRlPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxvZT1lZS5sZW5ndGgtMTtvZT49MDtvZS0tKXtmb3IodmFyIHNlPTA7b2U+PTAmJjA9PT1lZVtvZV07b2UtLSlzZSsrO2lmKG9lPj0wJiZzZSsrLHRl'@; put 'PXRlLmRibHAoc2UpLG9lPDApYnJlYWs7dmFyIGhlPWVlW29lXTtFKDAhPT1oZSksdGU9ImFmZmluZSI9PT1CLnR5cGU/dGUubWl4ZWRBZGQoaGU+MD9xW2hlLTE+PjFdOnFbLWhlLTE+PjFdLm5lZygpKTp0ZS5hZGQoaGU+MD9xW2hlLTE+PjFdOnFbLWhlLTE+PjFdLm5lZygpKX1yZXR1cm4i'@; put 'YWZmaW5lIj09PUIudHlwZT90ZS50b1AoKTp0ZX0sai5wcm90b3R5cGUuX3duYWZNdWxBZGQ9ZnVuY3Rpb24oQixZLFgsVSxxKXt2YXIgZWUsdGUsb2Usc2U9dGhpcy5fd25hZlQxLGhlPXRoaXMuX3duYWZUMix1ZT10aGlzLl93bmFmVDMsY2U9MDtmb3IoZWU9MDtlZTxVO2VlKyspe3ZhciBH'@; put 'PShvZT1ZW2VlXSkuX2dldE5BRlBvaW50cyhCKTtzZVtlZV09Ry53bmQsaGVbZWVdPUcucG9pbnRzfWZvcihlZT1VLTE7ZWU+PTE7ZWUtPTIpe3ZhciBiPWVlLTEsRD1lZTtpZigxPT09c2VbYl0mJjE9PT1zZVtEXSl7dmFyIEg9W1lbYl0sbnVsbCxudWxsLFlbRF1dOzA9PT1ZW2JdLnkuY21w'@; put 'KFlbRF0ueSk/KEhbMV09WVtiXS5hZGQoWVtEXSksSFsyXT1ZW2JdLnRvSigpLm1peGVkQWRkKFlbRF0ubmVnKCkpKTowPT09WVtiXS55LmNtcChZW0RdLnkucmVkTmVnKCkpPyhIWzFdPVlbYl0udG9KKCkubWl4ZWRBZGQoWVtEXSksSFsyXT1ZW2JdLmFkZChZW0RdLm5lZygpKSk6KEhbMV09'@; put 'WVtiXS50b0ooKS5taXhlZEFkZChZW0RdKSxIWzJdPVlbYl0udG9KKCkubWl4ZWRBZGQoWVtEXS5uZWcoKSkpO3ZhciBOPVstMywtMSwtNSwtNywwLDcsNSwxLDNdLGc9ayhYW2JdLFhbRF0pO2ZvcihjZT1NYXRoLm1heChnWzBdLmxlbmd0aCxjZSksdWVbYl09bmV3IEFycmF5KGNlKSx1ZVtE'@; put 'XT1uZXcgQXJyYXkoY2UpLHRlPTA7dGU8Y2U7dGUrKyl1ZVtiXVt0ZV09TlszKigxKygwfGdbMF1bdGVdKSkrKDErKDB8Z1sxXVt0ZV0pKV0sdWVbRF1bdGVdPTAsaGVbYl09SH1lbHNlIHVlW2JdPUkoWFtiXSxzZVtiXSx0aGlzLl9iaXRMZW5ndGgpLHVlW0RdPUkoWFtEXSxzZVtEXSx0aGlz'@; put 'Ll9iaXRMZW5ndGgpLGNlPU1hdGgubWF4KHVlW2JdLmxlbmd0aCxjZSksY2U9TWF0aC5tYXgodWVbRF0ubGVuZ3RoLGNlKX12YXIgdj10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCkscD10aGlzLl93bmFmVDQ7Zm9yKGVlPWNlO2VlPj0wO2VlLS0pe2Zvcih2YXIgdz0wO2VlPj0wOyl7dmFy'@; put 'IEo9ITA7Zm9yKHRlPTA7dGU8VTt0ZSsrKXBbdGVdPTB8dWVbdGVdW2VlXSwwIT09cFt0ZV0mJihKPSExKTtpZighSilicmVhazt3KyssZWUtLX1pZihlZT49MCYmdysrLHY9di5kYmxwKHcpLGVlPDApYnJlYWs7Zm9yKHRlPTA7dGU8VTt0ZSsrKXt2YXIgbmU9cFt0ZV07MCE9PW5lJiYobmU+'@; put 'MD9vZT1oZVt0ZV1bbmUtMT4+MV06bmU8MCYmKG9lPWhlW3RlXVstbmUtMT4+MV0ubmVnKCkpLHY9ImFmZmluZSI9PT1vZS50eXBlP3YubWl4ZWRBZGQob2UpOnYuYWRkKG9lKSl9fWZvcihlZT0wO2VlPFU7ZWUrKyloZVtlZV09bnVsbDtyZXR1cm4gcT92OnYudG9QKCl9LGouQmFzZVBvaW50'@; put 'PVYsVi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxWLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnZhbGlkYXRlKHRoaXMpfSxqLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihC'@; put 'LFkpe0I9Sy50b0FycmF5KEIsWSk7dmFyIFg9dGhpcy5wLmJ5dGVMZW5ndGgoKTtpZigoND09PUJbMF18fDY9PT1CWzBdfHw3PT09QlswXSkmJkIubGVuZ3RoLTE9PTIqWClyZXR1cm4gNj09PUJbMF0/RShCW0IubGVuZ3RoLTFdJTI9PTApOjc9PT1CWzBdJiZFKEJbQi5sZW5ndGgtMV0lMj09'@; put 'MSksdGhpcy5wb2ludChCLnNsaWNlKDEsMStYKSxCLnNsaWNlKDErWCwxKzIqWCkpO2lmKCgyPT09QlswXXx8Mz09PUJbMF0pJiZCLmxlbmd0aC0xPT09WClyZXR1cm4gdGhpcy5wb2ludEZyb21YKEIuc2xpY2UoMSwxK1gpLDM9PT1CWzBdKTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcG9p'@; put 'bnQgZm9ybWF0Iil9LFYucHJvdG90eXBlLmVuY29kZUNvbXByZXNzZWQ9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMuZW5jb2RlKEIsITApfSxWLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKEIpe3ZhciBZPXRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCksWD10aGlzLmdldFgoKS50b0FycmF5'@; put 'KCJiZSIsWSk7cmV0dXJuIEI/W3RoaXMuZ2V0WSgpLmlzRXZlbigpPzI6M10uY29uY2F0KFgpOls0XS5jb25jYXQoWCx0aGlzLmdldFkoKS50b0FycmF5KCJiZSIsWSkpfSxWLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oQixZKXtyZXR1cm4gSy5lbmNvZGUodGhpcy5fZW5jb2RlKFkpLEIp'@; put 'fSxWLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKEIpe2lmKHRoaXMucHJlY29tcHV0ZWQpcmV0dXJuIHRoaXM7dmFyIFk9e2RvdWJsZXM6bnVsbCxuYWY6bnVsbCxiZXRhOm51bGx9O3JldHVybiBZLm5hZj10aGlzLl9nZXROQUZQb2ludHMoOCksWS5kb3VibGVzPXRoaXMuX2dldERv'@; put 'dWJsZXMoNCxCKSxZLmJldGE9dGhpcy5fZ2V0QmV0YSgpLHRoaXMucHJlY29tcHV0ZWQ9WSx0aGlzfSxWLnByb3RvdHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbihCKXtpZighdGhpcy5wcmVjb21wdXRlZClyZXR1cm4hMTt2YXIgWT10aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7cmV0dXJuISFZ'@; put 'JiZZLnBvaW50cy5sZW5ndGg+PU1hdGguY2VpbCgoQi5iaXRMZW5ndGgoKSsxKS9ZLnN0ZXApfSxWLnByb3RvdHlwZS5fZ2V0RG91Ymxlcz1mdW5jdGlvbihCLFkpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5k'@; put 'b3VibGVzO2Zvcih2YXIgWD1bdGhpc10sVT10aGlzLHE9MDtxPFk7cSs9Qil7Zm9yKHZhciBlZT0wO2VlPEI7ZWUrKylVPVUuZGJsKCk7WC5wdXNoKFUpfXJldHVybntzdGVwOkIscG9pbnRzOlh9fSxWLnByb3RvdHlwZS5fZ2V0TkFGUG9pbnRzPWZ1bmN0aW9uKEIpe2lmKHRoaXMucHJlY29t'@; put 'cHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQubmFmKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLm5hZjtmb3IodmFyIFk9W3RoaXNdLFg9KDE8PEIpLTEsVT0xPT09WD9udWxsOnRoaXMuZGJsKCkscT0xO3E8WDtxKyspWVtxXT1ZW3EtMV0uYWRkKFUpO3JldHVybnt3bmQ6Qixwb2ludHM6WX19LFYu'@; put 'cHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LFYucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24oQil7Zm9yKHZhciBZPXRoaXMsWD0wO1g8QjtYKyspWT1ZLmRibCgpO3JldHVybiBZfX0sMTEzODooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoOTUzKSxLPVIo'@; put 'Mzc4NSksST1SKDU3MTcpLGs9Uig0OTE4KSxFPXouYXNzZXJ0O2Z1bmN0aW9uIGooQil7dGhpcy50d2lzdGVkPTEhPSgwfEIuYSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJi0xPT0oMHxCLmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxrLmNhbGwodGhpcywiZWR3YXJkcyIsQiksdGhp'@; put 'cy5hPW5ldyBLKEIuYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IEsoQi5jLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5jMj10aGlzLmMucmVkU3FyKCksdGhpcy5kPW5ldyBLKEIuZCwxNikudG9SZWQodGhpcy5yZWQpLHRo'@; put 'aXMuZGQ9dGhpcy5kLnJlZEFkZCh0aGlzLmQpLEUoIXRoaXMudHdpc3RlZHx8MD09PXRoaXMuYy5mcm9tUmVkKCkuY21wbigxKSksdGhpcy5vbmVDPTE9PSgwfEIuYyl9ZnVuY3Rpb24gVihCLFksWCxVLHEpe2suQmFzZVBvaW50LmNhbGwodGhpcyxCLCJwcm9qZWN0aXZlIiksbnVsbD09PVkm'@; put 'Jm51bGw9PT1YJiZudWxsPT09VT8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlzLmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBLKFksMTYpLHRoaXMueT1uZXcgSyhYLDE2KSx0'@; put 'aGlzLno9VT9uZXcgSyhVLDE2KTp0aGlzLmN1cnZlLm9uZSx0aGlzLnQ9cSYmbmV3IEsocSwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5y'@; put 'ZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy50JiYhdGhpcy50LnJlZCYmKHRoaXMudD10aGlzLnQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmUsdGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCYm'@; put 'KHRoaXMudD10aGlzLngucmVkTXVsKHRoaXMueSksdGhpcy56T25lfHwodGhpcy50PXRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSkpKSl9SShqLGspLE0uZXhwb3J0cz1qLGoucHJvdG90eXBlLl9tdWxBPWZ1bmN0aW9uKEIpe3JldHVybiB0aGlzLm1PbmVBP0IucmVkTmVnKCk6dGhp'@; put 'cy5hLnJlZE11bChCKX0sai5wcm90b3R5cGUuX211bEM9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMub25lQz9COnRoaXMuYy5yZWRNdWwoQil9LGoucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihCLFksWCxVKXtyZXR1cm4gdGhpcy5wb2ludChCLFksWCxVKX0sai5wcm90b3R5cGUucG9pbnRG'@; put 'cm9tWD1mdW5jdGlvbihCLFkpeyhCPW5ldyBLKEIsMTYpKS5yZWR8fChCPUIudG9SZWQodGhpcy5yZWQpKTt2YXIgWD1CLnJlZFNxcigpLFU9dGhpcy5jMi5yZWRTdWIodGhpcy5hLnJlZE11bChYKSkscT10aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwoWCkp'@; put 'LGVlPVUucmVkTXVsKHEucmVkSW52bSgpKSx0ZT1lZS5yZWRTcXJ0KCk7aWYoMCE9PXRlLnJlZFNxcigpLnJlZFN1YihlZSkuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIG9lPXRlLmZyb21SZWQoKS5pc09kZCgpO3JldHVybihZJiYhb2V8fCFZ'@; put 'JiZvZSkmJih0ZT10ZS5yZWROZWcoKSksdGhpcy5wb2ludChCLHRlKX0sai5wcm90b3R5cGUucG9pbnRGcm9tWT1mdW5jdGlvbihCLFkpeyhCPW5ldyBLKEIsMTYpKS5yZWR8fChCPUIudG9SZWQodGhpcy5yZWQpKTt2YXIgWD1CLnJlZFNxcigpLFU9WC5yZWRTdWIodGhpcy5jMikscT1YLnJl'@; put 'ZE11bCh0aGlzLmQpLnJlZE11bCh0aGlzLmMyKS5yZWRTdWIodGhpcy5hKSxlZT1VLnJlZE11bChxLnJlZEludm0oKSk7aWYoMD09PWVlLmNtcCh0aGlzLnplcm8pKXtpZihZKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3JldHVybiB0aGlzLnBvaW50KHRoaXMuemVybyxCKX12'@; put 'YXIgdGU9ZWUucmVkU3FydCgpO2lmKDAhPT10ZS5yZWRTcXIoKS5yZWRTdWIoZWUpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3JldHVybiB0ZS5mcm9tUmVkKCkuaXNPZGQoKSE9PVkmJih0ZT10ZS5yZWROZWcoKSksdGhpcy5wb2ludCh0ZSxCKX0s'@; put 'ai5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oQil7aWYoQi5pc0luZmluaXR5KCkpcmV0dXJuITA7Qi5ub3JtYWxpemUoKTt2YXIgWT1CLngucmVkU3FyKCksWD1CLnkucmVkU3FyKCksVT1ZLnJlZE11bCh0aGlzLmEpLnJlZEFkZChYKSxxPXRoaXMuYzIucmVkTXVsKHRoaXMub25lLnJl'@; put 'ZEFkZCh0aGlzLmQucmVkTXVsKFkpLnJlZE11bChYKSkpO3JldHVybiAwPT09VS5jbXAocSl9LEkoVixrLkJhc2VQb2ludCksai5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihCKXtyZXR1cm4gVi5mcm9tSlNPTih0aGlzLEIpfSxqLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihC'@; put 'LFksWCxVKXtyZXR1cm4gbmV3IFYodGhpcyxCLFksWCxVKX0sVi5mcm9tSlNPTj1mdW5jdGlvbihCLFkpe3JldHVybiBuZXcgVihCLFlbMF0sWVsxXSxZWzJdKX0sVi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmlu'@; put 'aXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxWLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIDA9PT10aGlzLnguY21wbigwKSYmKDA9PT10aGlzLnkuY21wKHRoaXMueil8fHRoaXMuek9uZSYmMD09PXRoaXMueS5jbXAodGhpcy5jdXJ2ZS5jKSl9LFYucHJvdG90eXBlLl9leHREYmw9ZnVuY3Rpb24oKXt2YXIgQj10aGlzLngucmVkU3FyKCksWT10aGlzLnkucmVk'@; put 'U3FyKCksWD10aGlzLnoucmVkU3FyKCk7WD1YLnJlZElBZGQoWCk7dmFyIFU9dGhpcy5jdXJ2ZS5fbXVsQShCKSxxPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKS5yZWRJU3ViKEIpLnJlZElTdWIoWSksZWU9VS5yZWRBZGQoWSksdGU9ZWUucmVkU3ViKFgpLG9lPVUucmVkU3ViKFkp'@; put 'LHNlPXEucmVkTXVsKHRlKSxoZT1lZS5yZWRNdWwob2UpLHVlPXEucmVkTXVsKG9lKSxjZT10ZS5yZWRNdWwoZWUpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHNlLGhlLGNlLHVlKX0sVi5wcm90b3R5cGUuX3Byb2pEYmw9ZnVuY3Rpb24oKXt2YXIgQixZLFgsVSxxLGVlLHRlPXRoaXMueC5y'@; put 'ZWRBZGQodGhpcy55KS5yZWRTcXIoKSxvZT10aGlzLngucmVkU3FyKCksc2U9dGhpcy55LnJlZFNxcigpO2lmKHRoaXMuY3VydmUudHdpc3RlZCl7dmFyIGhlPShVPXRoaXMuY3VydmUuX211bEEob2UpKS5yZWRBZGQoc2UpO3RoaXMuek9uZT8oQj10ZS5yZWRTdWIob2UpLnJlZFN1YihzZSku'@; put 'cmVkTXVsKGhlLnJlZFN1Yih0aGlzLmN1cnZlLnR3bykpLFk9aGUucmVkTXVsKFUucmVkU3ViKHNlKSksWD1oZS5yZWRTcXIoKS5yZWRTdWIoaGUpLnJlZFN1YihoZSkpOihxPXRoaXMuei5yZWRTcXIoKSxlZT1oZS5yZWRTdWIocSkucmVkSVN1YihxKSxCPXRlLnJlZFN1YihvZSkucmVkSVN1'@; put 'YihzZSkucmVkTXVsKGVlKSxZPWhlLnJlZE11bChVLnJlZFN1YihzZSkpLFg9aGUucmVkTXVsKGVlKSl9ZWxzZSBVPW9lLnJlZEFkZChzZSkscT10aGlzLmN1cnZlLl9tdWxDKHRoaXMueikucmVkU3FyKCksZWU9VS5yZWRTdWIocSkucmVkU3ViKHEpLEI9dGhpcy5jdXJ2ZS5fbXVsQyh0ZS5y'@; put 'ZWRJU3ViKFUpKS5yZWRNdWwoZWUpLFk9dGhpcy5jdXJ2ZS5fbXVsQyhVKS5yZWRNdWwob2UucmVkSVN1YihzZSkpLFg9VS5yZWRNdWwoZWUpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEIsWSxYKX0sVi5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgp'@; put 'P3RoaXM6dGhpcy5jdXJ2ZS5leHRlbmRlZD90aGlzLl9leHREYmwoKTp0aGlzLl9wcm9qRGJsKCl9LFYucHJvdG90eXBlLl9leHRBZGQ9ZnVuY3Rpb24oQil7dmFyIFk9dGhpcy55LnJlZFN1Yih0aGlzLngpLnJlZE11bChCLnkucmVkU3ViKEIueCkpLFg9dGhpcy55LnJlZEFkZCh0aGlzLngp'@; put 'LnJlZE11bChCLnkucmVkQWRkKEIueCkpLFU9dGhpcy50LnJlZE11bCh0aGlzLmN1cnZlLmRkKS5yZWRNdWwoQi50KSxxPXRoaXMuei5yZWRNdWwoQi56LnJlZEFkZChCLnopKSxlZT1YLnJlZFN1YihZKSx0ZT1xLnJlZFN1YihVKSxvZT1xLnJlZEFkZChVKSxzZT1YLnJlZEFkZChZKSxoZT1l'@; put 'ZS5yZWRNdWwodGUpLHVlPW9lLnJlZE11bChzZSksY2U9ZWUucmVkTXVsKHNlKSxHPXRlLnJlZE11bChvZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoaGUsdWUsRyxjZSl9LFYucHJvdG90eXBlLl9wcm9qQWRkPWZ1bmN0aW9uKEIpe3ZhciBZLFgsVT10aGlzLnoucmVkTXVsKEIueikscT1V'@; put 'LnJlZFNxcigpLGVlPXRoaXMueC5yZWRNdWwoQi54KSx0ZT10aGlzLnkucmVkTXVsKEIueSksb2U9dGhpcy5jdXJ2ZS5kLnJlZE11bChlZSkucmVkTXVsKHRlKSxzZT1xLnJlZFN1YihvZSksaGU9cS5yZWRBZGQob2UpLHVlPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRNdWwoQi54LnJlZEFk'@; put 'ZChCLnkpKS5yZWRJU3ViKGVlKS5yZWRJU3ViKHRlKSxjZT1VLnJlZE11bChzZSkucmVkTXVsKHVlKTtyZXR1cm4gdGhpcy5jdXJ2ZS50d2lzdGVkPyhZPVUucmVkTXVsKGhlKS5yZWRNdWwodGUucmVkU3ViKHRoaXMuY3VydmUuX211bEEoZWUpKSksWD1zZS5yZWRNdWwoaGUpKTooWT1VLnJl'@; put 'ZE11bChoZSkucmVkTXVsKHRlLnJlZFN1YihlZSkpLFg9dGhpcy5jdXJ2ZS5fbXVsQyhzZSkucmVkTXVsKGhlKSksdGhpcy5jdXJ2ZS5wb2ludChjZSxZLFgpfSxWLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP0I6Qi5pc0luZmluaXR5KCk/dGhp'@; put 'czp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFkZChCKTp0aGlzLl9wcm9qQWRkKEIpfSxWLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oQil7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXMoQik/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyxCKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRo'@; put 'aXMsQil9LFYucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihCLFksWCl7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxZXSxbQixYXSwyLCExKX0sVi5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihCLFksWCl7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxb'@; put 'dGhpcyxZXSxbQixYXSwyLCEwKX0sVi5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciBCPXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKEIpLHRoaXMueT10aGlzLnkucmVkTXVsKEIpLHRoaXMudCYm'@; put 'KHRoaXMudD10aGlzLnQucmVkTXVsKEIpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LFYucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJl'@; put 'ZE5lZygpKX0sVi5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LFYucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxWLnByb3RvdHlwZS5lcT1m'@; put 'dW5jdGlvbihCKXtyZXR1cm4gdGhpcz09PUJ8fDA9PT10aGlzLmdldFgoKS5jbXAoQi5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKEIuZ2V0WSgpKX0sVi5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKEIpe3ZhciBZPUIudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnop'@; put 'O2lmKDA9PT10aGlzLnguY21wKFkpKXJldHVybiEwO2Zvcih2YXIgWD1CLmNsb25lKCksVT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYoWC5pYWRkKHRoaXMuY3VydmUubiksWC5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihZLnJlZElBZGQoVSksMD09PXRo'@; put 'aXMueC5jbXAoWSkpcmV0dXJuITB9fSxWLnByb3RvdHlwZS50b1A9Vi5wcm90b3R5cGUubm9ybWFsaXplLFYucHJvdG90eXBlLm1peGVkQWRkPVYucHJvdG90eXBlLmFkZH0sODI1NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PU87ei5iYXNlPVIoNDkxOCksei5zaG9ydD1SKDY2NzMp'@; put 'LHoubW9udD1SKDI4ODEpLHouZWR3YXJkcz1SKDExMzgpfSwyODgxOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9UigzNzg1KSxLPVIoNTcxNyksST1SKDQ5MTgpLGs9Uig5NTMpO2Z1bmN0aW9uIEUoVil7SS5jYWxsKHRoaXMsIm1vbnQiLFYpLHRoaXMuYT1uZXcgeihWLmEsMTYpLnRv'@; put 'UmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IHooVi5iLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5pND1uZXcgeig0KS50b1JlZCh0aGlzLnJlZCkucmVkSW52bSgpLHRoaXMudHdvPW5ldyB6KDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRk'@; put 'KHRoaXMudHdvKSl9ZnVuY3Rpb24gaihWLEIsWSl7SS5CYXNlUG9pbnQuY2FsbCh0aGlzLFYsInByb2plY3RpdmUiKSxudWxsPT09QiYmbnVsbD09PVk/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS56ZXJvKToodGhpcy54PW5ldyB6KEIsMTYpLHRoaXMuej1uZXcg'@; put 'eihZLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSkpfUsoRSxJKSxNLmV4cG9ydHM9RSxFLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihWKXt2YXIg'@; put 'Qj1WLm5vcm1hbGl6ZSgpLngsWT1CLnJlZFNxcigpLFg9WS5yZWRNdWwoQikucmVkQWRkKFkucmVkTXVsKHRoaXMuYSkpLnJlZEFkZChCKTtyZXR1cm4gMD09PVgucmVkU3FydCgpLnJlZFNxcigpLmNtcChYKX0sSyhqLEkuQmFzZVBvaW50KSxFLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5j'@; put 'dGlvbihWLEIpe3JldHVybiB0aGlzLnBvaW50KGsudG9BcnJheShWLEIpLDEpfSxFLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihWLEIpe3JldHVybiBuZXcgaih0aGlzLFYsQil9LEUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oVil7cmV0dXJuIGouZnJvbUpTT04odGhpcyxW'@; put 'KX0sai5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbigpe30sai5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9LGouZnJvbUpTT049ZnVuY3Rpb24oVixCKXtyZXR1cm4gbmV3'@; put 'IGooVixCWzBdLEJbMV18fFYub25lKX0sai5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5m'@; put 'cm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxqLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX0sai5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIFY9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLEI9dGhpcy54LnJl'@; put 'ZFN1Yih0aGlzLnopLnJlZFNxcigpLFk9Vi5yZWRTdWIoQiksWD1WLnJlZE11bChCKSxVPVkucmVkTXVsKEIucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChZKSkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFgsVSl9LGoucHJvdG90eXBlLmFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBF'@; put 'cnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LGoucHJvdG90eXBlLmRpZmZBZGQ9ZnVuY3Rpb24oVixCKXt2YXIgWT10aGlzLngucmVkQWRkKHRoaXMueiksWD10aGlzLngucmVkU3ViKHRoaXMueiksVT1WLngucmVkQWRkKFYueikscT1WLngucmVkU3ViKFYueiku'@; put 'cmVkTXVsKFkpLGVlPVUucmVkTXVsKFgpLHRlPUIuei5yZWRNdWwocS5yZWRBZGQoZWUpLnJlZFNxcigpKSxvZT1CLngucmVkTXVsKHEucmVkSVN1YihlZSkucmVkU3FyKCkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRlLG9lKX0sai5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFYpe2Zvcih2'@; put 'YXIgQj1WLmNsb25lKCksWT10aGlzLFg9dGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpLFU9W107MCE9PUIuY21wbigwKTtCLml1c2hybigxKSlVLnB1c2goQi5hbmRsbigxKSk7Zm9yKHZhciBxPVUubGVuZ3RoLTE7cT49MDtxLS0pMD09PVVbcV0/KFk9WS5kaWZmQWRkKFgsdGhpcyksWD1Y'@; put 'LmRibCgpKTooWD1ZLmRpZmZBZGQoWCx0aGlzKSxZPVkuZGJsKCkpO3JldHVybiBYfSxqLnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxqLnByb3RvdHlwZS5qdW1sQWRkPWZ1bmN0aW9uKCl7'@; put 'dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sai5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oVil7cmV0dXJuIDA9PT10aGlzLmdldFgoKS5jbXAoVi5nZXRYKCkpfSxqLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54'@; put 'PXRoaXMueC5yZWRNdWwodGhpcy56LnJlZEludm0oKSksdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXN9LGoucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnguZnJvbVJlZCgpfX0sNjY3MzooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6'@; put 'PVIoOTUzKSxLPVIoMzc4NSksST1SKDU3MTcpLGs9Uig0OTE4KSxFPXouYXNzZXJ0O2Z1bmN0aW9uIGooWSl7ay5jYWxsKHRoaXMsInNob3J0IixZKSx0aGlzLmE9bmV3IEsoWS5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBLKFkuYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMu'@; put 'dGludj10aGlzLnR3by5yZWRJbnZtKCksdGhpcy56ZXJvQT0wPT09dGhpcy5hLmZyb21SZWQoKS5jbXBuKDApLHRoaXMudGhyZWVBPTA9PT10aGlzLmEuZnJvbVJlZCgpLnN1Yih0aGlzLnApLmNtcG4oLTMpLHRoaXMuZW5kbz10aGlzLl9nZXRFbmRvbW9ycGhpc20oWSksdGhpcy5fZW5kb1du'@; put 'YWZUMT1uZXcgQXJyYXkoNCksdGhpcy5fZW5kb1duYWZUMj1uZXcgQXJyYXkoNCl9ZnVuY3Rpb24gVihZLFgsVSxxKXtrLkJhc2VQb2ludC5jYWxsKHRoaXMsWSwiYWZmaW5lIiksbnVsbD09PVgmJm51bGw9PT1VPyh0aGlzLng9bnVsbCx0aGlzLnk9bnVsbCx0aGlzLmluZj0hMCk6KHRoaXMu'@; put 'eD1uZXcgSyhYLDE2KSx0aGlzLnk9bmV3IEsoVSwxNikscSYmKHRoaXMueC5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCksdGhpcy55LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwo'@; put 'dGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuaW5mPSExKX1mdW5jdGlvbiBCKFksWCxVLHEpe2suQmFzZVBvaW50LmNhbGwodGhpcyxZLCJqYWNvYmlhbiIpLG51bGw9PT1YJiZudWxsPT09VSYmbnVsbD09PXE/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9'@; put 'dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PW5ldyBLKDApKToodGhpcy54PW5ldyBLKFgsMTYpLHRoaXMueT1uZXcgSyhVLDE2KSx0aGlzLno9bmV3IEsocSwxNikpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlz'@; put 'LnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZX1JKGosayksTS5leHBvcnRzPWosai5wcm90b3R5cGUuX2dldEVuZG9tb3JwaGlzbT1mdW5jdGlv'@; put 'bihZKXtpZih0aGlzLnplcm9BJiZ0aGlzLmcmJnRoaXMubiYmMT09PXRoaXMucC5tb2RuKDMpKXt2YXIgWCxVO2lmKFkuYmV0YSlYPW5ldyBLKFkuYmV0YSwxNikudG9SZWQodGhpcy5yZWQpO2Vsc2V7dmFyIHE9dGhpcy5fZ2V0RW5kb1Jvb3RzKHRoaXMucCk7WD0oWD1xWzBdLmNtcChxWzFd'@; put 'KTwwP3FbMF06cVsxXSkudG9SZWQodGhpcy5yZWQpfWlmKFkubGFtYmRhKVU9bmV3IEsoWS5sYW1iZGEsMTYpO2Vsc2V7dmFyIGVlPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pOzA9PT10aGlzLmcubXVsKGVlWzBdKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoWCkpP1U9ZWVbMF06RSgwPT09'@; put 'dGhpcy5nLm11bChVPWVlWzFdKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoWCkpKX1yZXR1cm57YmV0YTpYLGxhbWJkYTpVLGJhc2lzOlkuYmFzaXM/WS5iYXNpcy5tYXAoZnVuY3Rpb24odGUpe3JldHVybnthOm5ldyBLKHRlLmEsMTYpLGI6bmV3IEsodGUuYiwxNil9fSk6dGhpcy5fZ2V0RW5k'@; put 'b0Jhc2lzKFUpfX19LGoucHJvdG90eXBlLl9nZXRFbmRvUm9vdHM9ZnVuY3Rpb24oWSl7dmFyIFg9WT09PXRoaXMucD90aGlzLnJlZDpLLm1vbnQoWSksVT1uZXcgSygyKS50b1JlZChYKS5yZWRJbnZtKCkscT1VLnJlZE5lZygpLGVlPW5ldyBLKDMpLnRvUmVkKFgpLnJlZE5lZygpLnJlZFNx'@; put 'cnQoKS5yZWRNdWwoVSk7cmV0dXJuW3EucmVkQWRkKGVlKS5mcm9tUmVkKCkscS5yZWRTdWIoZWUpLmZyb21SZWQoKV19LGoucHJvdG90eXBlLl9nZXRFbmRvQmFzaXM9ZnVuY3Rpb24oWSl7Zm9yKHZhciBYLFUscSxlZSx0ZSxvZSxzZSxoZSx1ZSxjZT10aGlzLm4udXNocm4oTWF0aC5mbG9v'@; put 'cih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLEc9WSxiPXRoaXMubi5jbG9uZSgpLEQ9bmV3IEsoMSksSD1uZXcgSygwKSxOPW5ldyBLKDApLGc9bmV3IEsoMSksQz0wOzAhPT1HLmNtcG4oMCk7KXt2YXIgUz1iLmRpdihHKTtoZT1iLnN1YihTLm11bChHKSksdWU9Ti5zdWIoUy5tdWwoRCkpO3Zh'@; put 'ciB2PWcuc3ViKFMubXVsKEgpKTtpZighcSYmaGUuY21wKGNlKTwwKVg9c2UubmVnKCksVT1ELHE9aGUubmVnKCksZWU9dWU7ZWxzZSBpZihxJiYyPT0rK0MpYnJlYWs7c2U9aGUsYj1HLEc9aGUsTj1ELEQ9dWUsZz1ILEg9dn10ZT1oZS5uZWcoKSxvZT11ZTt2YXIgcD1xLnNxcigpLmFkZChl'@; put 'ZS5zcXIoKSk7cmV0dXJuIHRlLnNxcigpLmFkZChvZS5zcXIoKSkuY21wKHApPj0wJiYodGU9WCxvZT1VKSxxLm5lZ2F0aXZlJiYocT1xLm5lZygpLGVlPWVlLm5lZygpKSx0ZS5uZWdhdGl2ZSYmKHRlPXRlLm5lZygpLG9lPW9lLm5lZygpKSxbe2E6cSxiOmVlfSx7YTp0ZSxiOm9lfV19LGou'@; put 'cHJvdG90eXBlLl9lbmRvU3BsaXQ9ZnVuY3Rpb24oWSl7dmFyIFg9dGhpcy5lbmRvLmJhc2lzLFU9WFswXSxxPVhbMV0sZWU9cS5iLm11bChZKS5kaXZSb3VuZCh0aGlzLm4pLHRlPVUuYi5uZWcoKS5tdWwoWSkuZGl2Um91bmQodGhpcy5uKSxvZT1lZS5tdWwoVS5hKSxzZT10ZS5tdWwocS5h'@; put 'KSxoZT1lZS5tdWwoVS5iKSx1ZT10ZS5tdWwocS5iKTtyZXR1cm57azE6WS5zdWIob2UpLnN1YihzZSksazI6aGUuYWRkKHVlKS5uZWcoKX19LGoucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oWSxYKXsoWT1uZXcgSyhZLDE2KSkucmVkfHwoWT1ZLnRvUmVkKHRoaXMucmVkKSk7dmFy'@; put 'IFU9WS5yZWRTcXIoKS5yZWRNdWwoWSkucmVkSUFkZChZLnJlZE11bCh0aGlzLmEpKS5yZWRJQWRkKHRoaXMuYikscT1VLnJlZFNxcnQoKTtpZigwIT09cS5yZWRTcXIoKS5yZWRTdWIoVSkuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIGVlPXEu'@; put 'ZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKFgmJiFlZXx8IVgmJmVlKSYmKHE9cS5yZWROZWcoKSksdGhpcy5wb2ludChZLHEpfSxqLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihZKXtpZihZLmluZilyZXR1cm4hMDt2YXIgWD1ZLngsVT1ZLnkscT10aGlzLmEucmVkTXVsKFgpLGVlPVgu'@; put 'cmVkU3FyKCkucmVkTXVsKFgpLnJlZElBZGQocSkucmVkSUFkZCh0aGlzLmIpO3JldHVybiAwPT09VS5yZWRTcXIoKS5yZWRJU3ViKGVlKS5jbXBuKDApfSxqLnByb3RvdHlwZS5fZW5kb1duYWZNdWxBZGQ9ZnVuY3Rpb24oWSxYLFUpe2Zvcih2YXIgcT10aGlzLl9lbmRvV25hZlQxLGVlPXRo'@; put 'aXMuX2VuZG9XbmFmVDIsdGU9MDt0ZTxZLmxlbmd0aDt0ZSsrKXt2YXIgb2U9dGhpcy5fZW5kb1NwbGl0KFhbdGVdKSxzZT1ZW3RlXSxoZT1zZS5fZ2V0QmV0YSgpO29lLmsxLm5lZ2F0aXZlJiYob2UuazEuaW5lZygpLHNlPXNlLm5lZyghMCkpLG9lLmsyLm5lZ2F0aXZlJiYob2UuazIuaW5l'@; put 'ZygpLGhlPWhlLm5lZyghMCkpLHFbMip0ZV09c2UscVsyKnRlKzFdPWhlLGVlWzIqdGVdPW9lLmsxLGVlWzIqdGUrMV09b2UuazJ9Zm9yKHZhciB1ZT10aGlzLl93bmFmTXVsQWRkKDEscSxlZSwyKnRlLFUpLGNlPTA7Y2U8Mip0ZTtjZSsrKXFbY2VdPW51bGwsZWVbY2VdPW51bGw7cmV0dXJu'@; put 'IHVlfSxJKFYsay5CYXNlUG9pbnQpLGoucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKFksWCxVKXtyZXR1cm4gbmV3IFYodGhpcyxZLFgsVSl9LGoucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oWSxYKXtyZXR1cm4gVi5mcm9tSlNPTih0aGlzLFksWCl9LFYucHJvdG90eXBlLl9n'@; put 'ZXRCZXRhPWZ1bmN0aW9uKCl7aWYodGhpcy5jdXJ2ZS5lbmRvKXt2YXIgWT10aGlzLnByZWNvbXB1dGVkO2lmKFkmJlkuYmV0YSlyZXR1cm4gWS5iZXRhO3ZhciBYPXRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE11bCh0aGlzLmN1cnZlLmVuZG8uYmV0YSksdGhpcy55KTtpZihZKXt2YXIg'@; put 'VT10aGlzLmN1cnZlLHE9ZnVuY3Rpb24oZWUpe3JldHVybiBVLnBvaW50KGVlLngucmVkTXVsKFUuZW5kby5iZXRhKSxlZS55KX07WS5iZXRhPVgsWC5wcmVjb21wdXRlZD17YmV0YTpudWxsLG5hZjpZLm5hZiYme3duZDpZLm5hZi53bmQscG9pbnRzOlkubmFmLnBvaW50cy5tYXAocSl9LGRv'@; put 'dWJsZXM6WS5kb3VibGVzJiZ7c3RlcDpZLmRvdWJsZXMuc3RlcCxwb2ludHM6WS5kb3VibGVzLnBvaW50cy5tYXAocSl9fX1yZXR1cm4gWH19LFYucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByZWNvbXB1dGVkP1t0aGlzLngsdGhpcy55LHRoaXMucHJlY29tcHV0'@; put 'ZWQmJntkb3VibGVzOnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcyYme3N0ZXA6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnN0ZXAscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5wb2ludHMuc2xpY2UoMSl9LG5hZjp0aGlzLnByZWNvbXB1dGVkLm5hZiYme3duZDp0aGlzLnByZWNv'@; put 'bXB1dGVkLm5hZi53bmQscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQubmFmLnBvaW50cy5zbGljZSgxKX19XTpbdGhpcy54LHRoaXMueV19LFYuZnJvbUpTT049ZnVuY3Rpb24oWSxYLFUpeyJzdHJpbmciPT10eXBlb2YgWCYmKFg9SlNPTi5wYXJzZShYKSk7dmFyIHE9WS5wb2ludChYWzBdLFhb'@; put 'MV0sVSk7aWYoIVhbMl0pcmV0dXJuIHE7ZnVuY3Rpb24gZWUob2Upe3JldHVybiBZLnBvaW50KG9lWzBdLG9lWzFdLFUpfXZhciB0ZT1YWzJdO3JldHVybiBxLnByZWNvbXB1dGVkPXtiZXRhOm51bGwsZG91Ymxlczp0ZS5kb3VibGVzJiZ7c3RlcDp0ZS5kb3VibGVzLnN0ZXAscG9pbnRzOltx'@; put 'XS5jb25jYXQodGUuZG91Ymxlcy5wb2ludHMubWFwKGVlKSl9LG5hZjp0ZS5uYWYmJnt3bmQ6dGUubmFmLnduZCxwb2ludHM6W3FdLmNvbmNhdCh0ZS5uYWYucG9pbnRzLm1hcChlZSkpfX0scX0sVi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHko'@; put 'KT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxWLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5m'@; put 'fSxWLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oWSl7aWYodGhpcy5pbmYpcmV0dXJuIFk7aWYoWS5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcShZKSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKFkpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYoMD09'@; put 'PXRoaXMueC5jbXAoWS54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBYPXRoaXMueS5yZWRTdWIoWS55KTswIT09WC5jbXBuKDApJiYoWD1YLnJlZE11bCh0aGlzLngucmVkU3ViKFkueCkucmVkSW52bSgpKSk7dmFyIFU9WC5yZWRTcXIoKS5yZWRJU3ViKHRoaXMu'@; put 'eCkucmVkSVN1YihZLngpLHE9WC5yZWRNdWwodGhpcy54LnJlZFN1YihVKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFUscSl9LFYucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciBZPXRoaXMueS5yZWRBZGQodGhp'@; put 'cy55KTtpZigwPT09WS5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIFg9dGhpcy5jdXJ2ZS5hLFU9dGhpcy54LnJlZFNxcigpLHE9WS5yZWRJbnZtKCksZWU9VS5yZWRBZGQoVSkucmVkSUFkZChVKS5yZWRJQWRkKFgpLnJlZE11bChxKSx0ZT1lZS5yZWRT'@; put 'cXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSksb2U9ZWUucmVkTXVsKHRoaXMueC5yZWRTdWIodGUpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodGUsb2UpfSxWLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueC5mcm9tUmVk'@; put 'KCl9LFYucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55LmZyb21SZWQoKX0sVi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFkpe3JldHVybiBZPW5ldyBLKFksMTYpLHRoaXMuaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5faGFzRG91YmxlcyhZKT90aGlzLmN1cnZlLl9maXhl'@; put 'ZE5hZk11bCh0aGlzLFkpOnRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbdGhpc10sW1ldKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsWSl9LFYucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihZLFgsVSl7dmFyIHE9W3RoaXMsWF0sZWU9W1ksVV07cmV0dXJu'@; put 'IHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChxLGVlKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEscSxlZSwyKX0sVi5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihZLFgsVSl7dmFyIHE9W3RoaXMsWF0sZWU9W1ksVV07cmV0dXJuIHRoaXMuY3VydmUuZW5k'@; put 'bz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChxLGVlLCEwKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEscSxlZSwyLCEwKX0sVi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oWSl7cmV0dXJuIHRoaXM9PT1ZfHx0aGlzLmluZj09PVkuaW5mJiYodGhpcy5pbmZ8fDA9PT10aGlzLnguY21wKFku'@; put 'eCkmJjA9PT10aGlzLnkuY21wKFkueSkpfSxWLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oWSl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIFg9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpKTtpZihZJiZ0aGlzLnByZWNvbXB1dGVkKXt2YXIgVT10aGlzLnByZWNv'@; put 'bXB1dGVkLHE9ZnVuY3Rpb24oZWUpe3JldHVybiBlZS5uZWcoKX07WC5wcmVjb21wdXRlZD17bmFmOlUubmFmJiZ7d25kOlUubmFmLnduZCxwb2ludHM6VS5uYWYucG9pbnRzLm1hcChxKX0sZG91YmxlczpVLmRvdWJsZXMmJntzdGVwOlUuZG91Ymxlcy5zdGVwLHBvaW50czpVLmRvdWJsZXMu'@; put 'cG9pbnRzLm1hcChxKX19fXJldHVybiBYfSxWLnByb3RvdHlwZS50b0o9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmY/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnksdGhpcy5jdXJ2ZS5vbmUpfSxJKEIsay5CYXNlUG9p'@; put 'bnQpLGoucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihZLFgsVSl7cmV0dXJuIG5ldyBCKHRoaXMsWSxYLFUpfSxCLnByb3RvdHlwZS50b1A9ZnVuY3Rpb24oKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBZPXRoaXMuei5yZWRJ'@; put 'bnZtKCksWD1ZLnJlZFNxcigpLFU9dGhpcy54LnJlZE11bChYKSxxPXRoaXMueS5yZWRNdWwoWCkucmVkTXVsKFkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFUscSl9LEIucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LnJl'@; put 'ZE5lZygpLHRoaXMueil9LEIucHJvdG90eXBlLmFkZD1mdW5jdGlvbihZKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gWTtpZihZLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgWD1ZLnoucmVkU3FyKCksVT10aGlzLnoucmVkU3FyKCkscT10aGlzLngucmVkTXVsKFgpLGVlPVku'@; put 'eC5yZWRNdWwoVSksdGU9dGhpcy55LnJlZE11bChYLnJlZE11bChZLnopKSxvZT1ZLnkucmVkTXVsKFUucmVkTXVsKHRoaXMueikpLHNlPXEucmVkU3ViKGVlKSxoZT10ZS5yZWRTdWIob2UpO2lmKDA9PT1zZS5jbXBuKDApKXJldHVybiAwIT09aGUuY21wbigwKT90aGlzLmN1cnZlLmpwb2lu'@; put 'dChudWxsLG51bGwsbnVsbCk6dGhpcy5kYmwoKTt2YXIgdWU9c2UucmVkU3FyKCksY2U9dWUucmVkTXVsKHNlKSxHPXEucmVkTXVsKHVlKSxiPWhlLnJlZFNxcigpLnJlZElBZGQoY2UpLnJlZElTdWIoRykucmVkSVN1YihHKSxEPWhlLnJlZE11bChHLnJlZElTdWIoYikpLnJlZElTdWIodGUu'@; put 'cmVkTXVsKGNlKSksSD10aGlzLnoucmVkTXVsKFkueikucmVkTXVsKHNlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoYixELEgpfSxCLnByb3RvdHlwZS5taXhlZEFkZD1mdW5jdGlvbihZKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gWS50b0ooKTtpZihZLmlzSW5maW5pdHkoKSly'@; put 'ZXR1cm4gdGhpczt2YXIgWD10aGlzLnoucmVkU3FyKCksVT10aGlzLngscT1ZLngucmVkTXVsKFgpLGVlPXRoaXMueSx0ZT1ZLnkucmVkTXVsKFgpLnJlZE11bCh0aGlzLnopLG9lPVUucmVkU3ViKHEpLHNlPWVlLnJlZFN1Yih0ZSk7aWYoMD09PW9lLmNtcG4oMCkpcmV0dXJuIDAhPT1zZS5j'@; put 'bXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBoZT1vZS5yZWRTcXIoKSx1ZT1oZS5yZWRNdWwob2UpLGNlPVUucmVkTXVsKGhlKSxHPXNlLnJlZFNxcigpLnJlZElBZGQodWUpLnJlZElTdWIoY2UpLnJlZElTdWIoY2UpLGI9c2UucmVkTXVs'@; put 'KGNlLnJlZElTdWIoRykpLnJlZElTdWIoZWUucmVkTXVsKHVlKSksRD10aGlzLnoucmVkTXVsKG9lKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoRyxiLEQpfSxCLnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKFkpe2lmKDA9PT1ZKXJldHVybiB0aGlzO2lmKHRoaXMuaXNJbmZpbml0eSgpKXJl'@; put 'dHVybiB0aGlzO2lmKCFZKXJldHVybiB0aGlzLmRibCgpO3ZhciBYO2lmKHRoaXMuY3VydmUuemVyb0F8fHRoaXMuY3VydmUudGhyZWVBKXt2YXIgVT10aGlzO2ZvcihYPTA7WDxZO1grKylVPVUuZGJsKCk7cmV0dXJuIFV9dmFyIHE9dGhpcy5jdXJ2ZS5hLGVlPXRoaXMuY3VydmUudGludix0'@; put 'ZT10aGlzLngsb2U9dGhpcy55LHNlPXRoaXMueixoZT1zZS5yZWRTcXIoKS5yZWRTcXIoKSx1ZT1vZS5yZWRBZGQob2UpO2ZvcihYPTA7WDxZO1grKyl7dmFyIGNlPXRlLnJlZFNxcigpLEc9dWUucmVkU3FyKCksYj1HLnJlZFNxcigpLEQ9Y2UucmVkQWRkKGNlKS5yZWRJQWRkKGNlKS5yZWRJ'@; put 'QWRkKHEucmVkTXVsKGhlKSksSD10ZS5yZWRNdWwoRyksTj1ELnJlZFNxcigpLnJlZElTdWIoSC5yZWRBZGQoSCkpLGc9SC5yZWRJU3ViKE4pLEM9RC5yZWRNdWwoZyk7Qz1DLnJlZElBZGQoQykucmVkSVN1YihiKTt2YXIgUz11ZS5yZWRNdWwoc2UpO1grMTxZJiYoaGU9aGUucmVkTXVsKGIp'@; put 'KSx0ZT1OLHNlPVMsdWU9Q31yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQodGUsdWUucmVkTXVsKGVlKSxzZSl9LEIucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuemVyb0E/dGhpcy5femVyb0RibCgpOnRoaXMuY3VydmUu'@; put 'dGhyZWVBP3RoaXMuX3RocmVlRGJsKCk6dGhpcy5fZGJsKCl9LEIucHJvdG90eXBlLl96ZXJvRGJsPWZ1bmN0aW9uKCl7dmFyIFksWCxVO2lmKHRoaXMuek9uZSl7dmFyIHE9dGhpcy54LnJlZFNxcigpLGVlPXRoaXMueS5yZWRTcXIoKSx0ZT1lZS5yZWRTcXIoKSxvZT10aGlzLngucmVkQWRk'@; put 'KGVlKS5yZWRTcXIoKS5yZWRJU3ViKHEpLnJlZElTdWIodGUpO29lPW9lLnJlZElBZGQob2UpO3ZhciBzZT1xLnJlZEFkZChxKS5yZWRJQWRkKHEpLGhlPXNlLnJlZFNxcigpLnJlZElTdWIob2UpLnJlZElTdWIob2UpLHVlPXRlLnJlZElBZGQodGUpO3VlPSh1ZT11ZS5yZWRJQWRkKHVlKSku'@; put 'cmVkSUFkZCh1ZSksWT1oZSxYPXNlLnJlZE11bChvZS5yZWRJU3ViKGhlKSkucmVkSVN1Yih1ZSksVT10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgY2U9dGhpcy54LnJlZFNxcigpLEc9dGhpcy55LnJlZFNxcigpLGI9Ry5yZWRTcXIoKSxEPXRoaXMueC5yZWRBZGQoRykucmVkU3Fy'@; put 'KCkucmVkSVN1YihjZSkucmVkSVN1YihiKTtEPUQucmVkSUFkZChEKTt2YXIgSD1jZS5yZWRBZGQoY2UpLnJlZElBZGQoY2UpLE49SC5yZWRTcXIoKSxnPWIucmVkSUFkZChiKTtnPShnPWcucmVkSUFkZChnKSkucmVkSUFkZChnKSxZPU4ucmVkSVN1YihEKS5yZWRJU3ViKEQpLFg9SC5yZWRN'@; put 'dWwoRC5yZWRJU3ViKFkpKS5yZWRJU3ViKGcpLFU9KFU9dGhpcy55LnJlZE11bCh0aGlzLnopKS5yZWRJQWRkKFUpfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChZLFgsVSl9LEIucHJvdG90eXBlLl90aHJlZURibD1mdW5jdGlvbigpe3ZhciBZLFgsVTtpZih0aGlzLnpPbmUpe3ZhciBxPXRo'@; put 'aXMueC5yZWRTcXIoKSxlZT10aGlzLnkucmVkU3FyKCksdGU9ZWUucmVkU3FyKCksb2U9dGhpcy54LnJlZEFkZChlZSkucmVkU3FyKCkucmVkSVN1YihxKS5yZWRJU3ViKHRlKTtvZT1vZS5yZWRJQWRkKG9lKTt2YXIgc2U9cS5yZWRBZGQocSkucmVkSUFkZChxKS5yZWRJQWRkKHRoaXMuY3Vy'@; put 'dmUuYSksaGU9c2UucmVkU3FyKCkucmVkSVN1YihvZSkucmVkSVN1YihvZSk7WT1oZTt2YXIgdWU9dGUucmVkSUFkZCh0ZSk7dWU9KHVlPXVlLnJlZElBZGQodWUpKS5yZWRJQWRkKHVlKSxYPXNlLnJlZE11bChvZS5yZWRJU3ViKGhlKSkucmVkSVN1Yih1ZSksVT10aGlzLnkucmVkQWRkKHRo'@; put 'aXMueSl9ZWxzZXt2YXIgY2U9dGhpcy56LnJlZFNxcigpLEc9dGhpcy55LnJlZFNxcigpLGI9dGhpcy54LnJlZE11bChHKSxEPXRoaXMueC5yZWRTdWIoY2UpLnJlZE11bCh0aGlzLngucmVkQWRkKGNlKSk7RD1ELnJlZEFkZChEKS5yZWRJQWRkKEQpO3ZhciBIPWIucmVkSUFkZChiKSxOPShI'@; put 'PUgucmVkSUFkZChIKSkucmVkQWRkKEgpO1k9RC5yZWRTcXIoKS5yZWRJU3ViKE4pLFU9dGhpcy55LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLnJlZElTdWIoRykucmVkSVN1YihjZSk7dmFyIGc9Ry5yZWRTcXIoKTtnPShnPShnPWcucmVkSUFkZChnKSkucmVkSUFkZChnKSkucmVkSUFkZChn'@; put 'KSxYPUQucmVkTXVsKEgucmVkSVN1YihZKSkucmVkSVN1YihnKX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoWSxYLFUpfSxCLnByb3RvdHlwZS5fZGJsPWZ1bmN0aW9uKCl7dmFyIFk9dGhpcy5jdXJ2ZS5hLFg9dGhpcy54LFU9dGhpcy55LHE9dGhpcy56LGVlPXEucmVkU3FyKCkucmVkU3Fy'@; put 'KCksdGU9WC5yZWRTcXIoKSxvZT1VLnJlZFNxcigpLHNlPXRlLnJlZEFkZCh0ZSkucmVkSUFkZCh0ZSkucmVkSUFkZChZLnJlZE11bChlZSkpLGhlPVgucmVkQWRkKFgpLHVlPShoZT1oZS5yZWRJQWRkKGhlKSkucmVkTXVsKG9lKSxjZT1zZS5yZWRTcXIoKS5yZWRJU3ViKHVlLnJlZEFkZCh1'@; put 'ZSkpLEc9dWUucmVkSVN1YihjZSksYj1vZS5yZWRTcXIoKTtiPShiPShiPWIucmVkSUFkZChiKSkucmVkSUFkZChiKSkucmVkSUFkZChiKTt2YXIgRD1zZS5yZWRNdWwoRykucmVkSVN1YihiKSxIPVUucmVkQWRkKFUpLnJlZE11bChxKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoY2UsRCxI'@; put 'KX0sQi5wcm90b3R5cGUudHJwbD1mdW5jdGlvbigpe2lmKCF0aGlzLmN1cnZlLnplcm9BKXJldHVybiB0aGlzLmRibCgpLmFkZCh0aGlzKTt2YXIgWT10aGlzLngucmVkU3FyKCksWD10aGlzLnkucmVkU3FyKCksVT10aGlzLnoucmVkU3FyKCkscT1YLnJlZFNxcigpLGVlPVkucmVkQWRkKFkp'@; put 'LnJlZElBZGQoWSksdGU9ZWUucmVkU3FyKCksb2U9dGhpcy54LnJlZEFkZChYKS5yZWRTcXIoKS5yZWRJU3ViKFkpLnJlZElTdWIocSksc2U9KG9lPShvZT0ob2U9b2UucmVkSUFkZChvZSkpLnJlZEFkZChvZSkucmVkSUFkZChvZSkpLnJlZElTdWIodGUpKS5yZWRTcXIoKSxoZT1xLnJlZElB'@; put 'ZGQocSk7aGU9KGhlPShoZT1oZS5yZWRJQWRkKGhlKSkucmVkSUFkZChoZSkpLnJlZElBZGQoaGUpO3ZhciB1ZT1lZS5yZWRJQWRkKG9lKS5yZWRTcXIoKS5yZWRJU3ViKHRlKS5yZWRJU3ViKHNlKS5yZWRJU3ViKGhlKSxjZT1YLnJlZE11bCh1ZSk7Y2U9KGNlPWNlLnJlZElBZGQoY2UpKS5y'@; put 'ZWRJQWRkKGNlKTt2YXIgRz10aGlzLngucmVkTXVsKHNlKS5yZWRJU3ViKGNlKTtHPShHPUcucmVkSUFkZChHKSkucmVkSUFkZChHKTt2YXIgYj10aGlzLnkucmVkTXVsKHVlLnJlZE11bChoZS5yZWRJU3ViKHVlKSkucmVkSVN1YihvZS5yZWRNdWwoc2UpKSk7Yj0oYj0oYj1iLnJlZElBZGQo'@; put 'YikpLnJlZElBZGQoYikpLnJlZElBZGQoYik7dmFyIEQ9dGhpcy56LnJlZEFkZChvZSkucmVkU3FyKCkucmVkSVN1YihVKS5yZWRJU3ViKHNlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoRyxiLEQpfSxCLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oWSxYKXtyZXR1cm4gWT1uZXcgSyhZLFgp'@; put 'LHRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxZKX0sQi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oWSl7aWYoImFmZmluZSI9PT1ZLnR5cGUpcmV0dXJuIHRoaXMuZXEoWS50b0ooKSk7aWYodGhpcz09PVkpcmV0dXJuITA7dmFyIFg9dGhpcy56LnJlZFNxcigpLFU9WS56LnJlZFNxcigpO2lmKDAh'@; put 'PT10aGlzLngucmVkTXVsKFUpLnJlZElTdWIoWS54LnJlZE11bChYKSkuY21wbigwKSlyZXR1cm4hMTt2YXIgcT1YLnJlZE11bCh0aGlzLnopLGVlPVUucmVkTXVsKFkueik7cmV0dXJuIDA9PT10aGlzLnkucmVkTXVsKGVlKS5yZWRJU3ViKFkueS5yZWRNdWwocSkpLmNtcG4oMCl9LEIucHJv'@; put 'dG90eXBlLmVxWFRvUD1mdW5jdGlvbihZKXt2YXIgWD10aGlzLnoucmVkU3FyKCksVT1ZLnRvUmVkKHRoaXMuY3VydmUucmVkKS5yZWRNdWwoWCk7aWYoMD09PXRoaXMueC5jbXAoVSkpcmV0dXJuITA7Zm9yKHZhciBxPVkuY2xvbmUoKSxlZT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKFgpOzsp'@; put 'e2lmKHEuaWFkZCh0aGlzLmN1cnZlLm4pLHEuY21wKHRoaXMuY3VydmUucCk+PTApcmV0dXJuITE7aWYoVS5yZWRJQWRkKGVlKSwwPT09dGhpcy54LmNtcChVKSlyZXR1cm4hMH19LEIucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBK'@; put 'UG9pbnQgSW5maW5pdHk+IjoiPEVDIEpQb2ludCB4OiAiK3RoaXMueC50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnoudG9TdHJpbmcoMTYsMikrIj4ifSxCLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10'@; put 'aGlzLnouY21wbigwKX19LDU0Mjc6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgeixLPU8sST1SKDM3MTUpLGs9Uig4MjU0KSxFPVIoOTUzKS5hc3NlcnQ7ZnVuY3Rpb24gaihCKXt0aGlzLmN1cnZlPSJzaG9ydCI9PT1CLnR5cGU/bmV3IGsuc2hvcnQoQik6ImVkd2FyZHMiPT09Qi50eXBl'@; put 'P25ldyBrLmVkd2FyZHMoQik6bmV3IGsubW9udChCKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5oYXNoPUIuaGFzaCxFKHRoaXMuZy52YWxpZGF0ZSgpLCJJbnZhbGlkIGN1cnZlIiksRSh0aGlzLmcubXVsKHRoaXMubikuaXNJbmZpbml0eSgpLCJJbnZh'@; put 'bGlkIGN1cnZlLCBHKk4gIT0gTyIpfWZ1bmN0aW9uIFYoQixZKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoSyxCLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgWD1uZXcgaihZKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEssQix7Y29uZmln'@; put 'dXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6WH0pLFh9fSl9Sy5QcmVzZXRDdXJ2ZT1qLFYoInAxOTIiLHt0eXBlOiJzaG9ydCIscHJpbWU6InAxOTIiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZm'@; put 'ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiNjQyMTA1MTkgZTU5YzgwZTcgMGZhN2U5YWIgNzIyNDMwNDkgZmViOGRlZWMgYzE0NmI5YjEiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDk5ZGVmODM2IDE0NmJjOWIxIGI0ZDIyODMxIixoYXNoOkku'@; put 'c2hhMjU2LGdSZWQ6ITEsZzpbIjE4OGRhODBlIGIwMzA5MGY2IDdjYmYyMGViIDQzYTE4ODAwIGY0ZmYwYWZkIDgyZmYxMDEyIiwiMDcxOTJiOTUgZmZjOGRhNzggNjMxMDExZWQgNmIyNGNkZDUgNzNmOTc3YTEgMWU3OTQ4MTEiXX0pLFYoInAyMjQiLHt0eXBlOiJzaG9ydCIscHJpbWU6InAy'@; put 'MjQiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSIsYjoiYjQwNTBhODUgMGMwNGIzYWIgZjU0MTMy'@; put 'NTYgNTA0NGIwYjcgZDdiZmQ4YmEgMjcwYjM5NDMgMjM1NWZmYjQiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmYxNmEyIGUwYjhmMDNlIDEzZGQyOTQ1IDVjNWMyYTNkIixoYXNoOkkuc2hhMjU2LGdSZWQ6ITEsZzpbImI3MGUwY2JkIDZiYjRiZjdmIDMyMTM5MGI5IDRhMDNj'@; put 'MWQzIDU2YzIxMTIyIDM0MzI4MGQ2IDExNWMxZDIxIiwiYmQzNzYzODggYjVmNzIzZmIgNGMyMmRmZTYgY2Q0Mzc1YTAgNWEwNzQ3NjQgNDRkNTgxOTkgODUwMDdlMzQiXX0pLFYoInAyNTYiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiJmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAw'@; put 'MDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjVhYzYzNWQ4IGFhM2E5M2U3IGIzZWJiZDU1IDc2OTg4NmJjIDY1MWQw'@; put 'NmIwIGNjNTNiMGY2IDNiY2UzYzNlIDI3ZDI2MDRiIixuOiJmZmZmZmZmZiAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBiY2U2ZmFhZCBhNzE3OWU4NCBmM2I5Y2FjMiBmYzYzMjU1MSIsaGFzaDpJLnNoYTI1NixnUmVkOiExLGc6WyI2YjE3ZDFmMiBlMTJjNDI0NyBmOGJjZTZlNSA2M2E0'@; put 'NDBmMiA3NzAzN2Q4MSAyZGViMzNhMCBmNGExMzk0NSBkODk4YzI5NiIsIjRmZTM0MmUyIGZlMWE3ZjliIDhlZTdlYjRhIDdjMGY5ZTE2IDJiY2UzMzU3IDZiMzE1ZWNlIGNiYjY0MDY4IDM3YmY1MWY1Il19KSxWKCJwMzg0Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZjIixiOiJiMzMxMmZhNyBlMjNlZTdlNCA5ODhlMDU2YiBlM2Y4MmQxOSAxODFkOWM2ZSBmZTgxNDExMiAwMzE0MDg4ZiA1MDEzODc1YSBjNjU2Mzk4ZCA4YTJlZDE5ZCAyYTg1YzhlZCBkM2VjMmFlZiIsbjoiZmZm'@; put 'ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgYzc2MzRkODEgZjQzNzJkZGYgNTgxYTBkYjIgNDhiMGE3N2EgZWNlYzE5NmEgY2NjNTI5NzMiLGhhc2g6SS5zaGEzODQsZ1JlZDohMSxnOlsiYWE4N2NhMjIgYmU4YjA1MzcgOGViMWM3MWUgZjMyMGFk'@; put 'NzQgNmUxZDNiNjIgOGJhNzliOTggNTlmNzQxZTAgODI1NDJhMzggNTUwMmYyNWQgYmY1NTI5NmMgM2E1NDVlMzggNzI3NjBhYjciLCIzNjE3ZGU0YSA5NjI2MmM2ZiA1ZDllOThiZiA5MjkyZGMyOSBmOGY0MWRiZCAyODlhMTQ3YyBlOWRhMzExMyBiNWYwYjhjMCAwYTYwYjFjZSAxZDdlODE5'@; put 'ZCA3YTQzMWQ3YyA5MGVhMGU1ZiJdfSksVigicDUyMSIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm'@; put 'ZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIixhOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZm'@; put 'ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiMDAwMDAwNTEgOTUzZWI5NjEgOGUxYzlhMWYgOTI5YTIxYTAgYjY4NTQwZWUgYTJkYTcyNWIgOTliMzE1ZjMgYjhiNDg5OTEgOGVmMTA5ZTEgNTYxOTM5NTEgZWM3ZTkzN2IgMTY1MmMwYmQgM2JiMWJmMDcgMzU3'@; put 'M2RmODggM2QyYzM0ZjEgZWY0NTFmZDQgNmI1MDNmMDAiLG46IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZhIDUxODY4NzgzIGJmMmY5NjZiIDdmY2MwMTQ4IGY3MDlhNWQwIDNiYjVjOWI4IDg5'@; put 'OWM0N2FlIGJiNmZiNzFlIDkxMzg2NDA5IixoYXNoOkkuc2hhNTEyLGdSZWQ6ITEsZzpbIjAwMDAwMGM2IDg1OGUwNmI3IDA0MDRlOWNkIDllM2VjYjY2IDIzOTViNDQyIDljNjQ4MTM5IDA1M2ZiNTIxIGY4MjhhZjYwIDZiNGQzZGJhIGExNGI1ZTc3IGVmZTc1OTI4IGZlMWRjMTI3IGEyZmZh'@; put 'OGRlIDMzNDhiM2MxIDg1NmE0MjliIGY5N2U3ZTMxIGMyZTViZDY2IiwiMDAwMDAxMTggMzkyOTZhNzggOWEzYmMwMDQgNWM4YTVmYjQgMmM3ZDFiZDkgOThmNTQ0NDkgNTc5YjQ0NjggMTdhZmJkMTcgMjczZTY2MmMgOTdlZTcyOTkgNWVmNDI2NDAgYzU1MGI5MDEgM2ZhZDA3NjEgMzUzYzcw'@; put 'ODYgYTI3MmMyNDAgODhiZTk0NzYgOWZkMTY2NTAiXX0pLFYoImN1cnZlMjU1MTkiLHt0eXBlOiJtb250IixwcmltZToicDI1NTE5IixwOiI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIixhOiI3NmQwNiIsYjoiMSIs'@; put 'bjoiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZCIsaGFzaDpJLnNoYTI1NixnUmVkOiExLGc6WyI5Il19KSxWKCJlZDI1NTE5Iix7dHlwZToiZWR3YXJkcyIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZm'@; put 'ZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiLTEiLGM6IjEiLGQ6IjUyMDM2Y2VlMmI2ZmZlNzMgOGNjNzQwNzk3Nzc5ZTg5OCAwMDcwMGE0ZDQxNDFkOGFiIDc1ZWI0ZGNhMTM1OTc4YTMiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAw'@; put 'MDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6SS5zaGEyNTYsZ1JlZDohMSxnOlsiMjE2OTM2ZDNjZDZlNTNmZWMwYTRlMjMxZmRkNmRjNWM2OTJjYzc2MDk1MjVhN2IyYzk1NjJkNjA4ZjI1ZDUxYSIsIjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2'@; put 'NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NTgiXX0pO3RyeXt6PVIoMTAzNyl9Y2F0Y2h7ej12b2lkIDB9Vigic2VjcDI1NmsxIix7dHlwZToic2hvcnQiLHByaW1lOiJrMjU2IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZm'@; put 'ZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIsYToiMCIsYjoiNyIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDEiLGg6IjEiLGhhc2g6SS5zaGEyNTYsYmV0YToiN2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMz'@; put 'NDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZSIsbGFtYmRhOiI1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyIixiYXNpczpbe2E6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1IixiOiItZTQ0'@; put 'MzdlZDYwMTBlODgyODZmNTQ3ZmE5MGFiZmU0YzMifSx7YToiMTE0Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4IixiOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSJ9XSxnUmVkOiExLGc6WyI3OWJlNjY3ZWY5ZGNiYmFjNTVhMDYyOTVjZTg3MGIwNzAyOWJmY2RiMmRj'@; put 'ZTI4ZDk1OWYyODE1YjE2ZjgxNzk4IiwiNDgzYWRhNzcyNmEzYzQ2NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOCIsel19KX0sNzk1NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoMzc4NSksSz1SKDIxNTYpLEk9Uig5NTMpLGs9Uig1NDI3'@; put 'KSxFPVIoOTkzMSksaj1JLmFzc2VydCxWPVIoMTI1MSksQj1SKDYxMSk7ZnVuY3Rpb24gWShYKXtpZighKHRoaXMgaW5zdGFuY2VvZiBZKSlyZXR1cm4gbmV3IFkoWCk7InN0cmluZyI9PXR5cGVvZiBYJiYoaihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoayxYKSwiVW5r'@; put 'bm93biBjdXJ2ZSAiK1gpLFg9a1tYXSksWCBpbnN0YW5jZW9mIGsuUHJlc2V0Q3VydmUmJihYPXtjdXJ2ZTpYfSksdGhpcy5jdXJ2ZT1YLmN1cnZlLmN1cnZlLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5uaD10aGlzLm4udXNocm4oMSksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLmc9WC5j'@; put 'dXJ2ZS5nLHRoaXMuZy5wcmVjb21wdXRlKFguY3VydmUubi5iaXRMZW5ndGgoKSsxKSx0aGlzLmhhc2g9WC5oYXNofHxYLmN1cnZlLmhhc2h9TS5leHBvcnRzPVksWS5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbihYKXtyZXR1cm4gbmV3IFYodGhpcyxYKX0sWS5wcm90b3R5cGUua2V5RnJv'@; put 'bVByaXZhdGU9ZnVuY3Rpb24oWCxVKXtyZXR1cm4gVi5mcm9tUHJpdmF0ZSh0aGlzLFgsVSl9LFkucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oWCxVKXtyZXR1cm4gVi5mcm9tUHVibGljKHRoaXMsWCxVKX0sWS5wcm90b3R5cGUuZ2VuS2V5UGFpcj1mdW5jdGlvbihYKXtYfHwo'@; put 'WD17fSk7Zm9yKHZhciBVPW5ldyBLKHtoYXNoOnRoaXMuaGFzaCxwZXJzOlgucGVycyxwZXJzRW5jOlgucGVyc0VuY3x8InV0ZjgiLGVudHJvcHk6WC5lbnRyb3B5fHxFKHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLGVudHJvcHlFbmM6WC5lbnRyb3B5JiZYLmVudHJvcHlFbmN8fCJ1dGY4Iixu'@; put 'b25jZTp0aGlzLm4udG9BcnJheSgpfSkscT10aGlzLm4uYnl0ZUxlbmd0aCgpLGVlPXRoaXMubi5zdWIobmV3IHooMikpOzspe3ZhciB0ZT1uZXcgeihVLmdlbmVyYXRlKHEpKTtpZighKHRlLmNtcChlZSk+MCkpcmV0dXJuIHRlLmlhZGRuKDEpLHRoaXMua2V5RnJvbVByaXZhdGUodGUpfX0s'@; put 'WS5wcm90b3R5cGUuX3RydW5jYXRlVG9OPWZ1bmN0aW9uKFgsVSl7dmFyIHE9OCpYLmJ5dGVMZW5ndGgoKS10aGlzLm4uYml0TGVuZ3RoKCk7cmV0dXJuIHE+MCYmKFg9WC51c2hybihxKSksIVUmJlguY21wKHRoaXMubik+PTA/WC5zdWIodGhpcy5uKTpYfSxZLnByb3RvdHlwZS5zaWduPWZ1'@; put 'bmN0aW9uKFgsVSxxLGVlKXsib2JqZWN0Ij09dHlwZW9mIHEmJihlZT1xLHE9bnVsbCksZWV8fChlZT17fSksVT10aGlzLmtleUZyb21Qcml2YXRlKFUscSksWD10aGlzLl90cnVuY2F0ZVRvTihuZXcgeihYLDE2KSk7Zm9yKHZhciB0ZT10aGlzLm4uYnl0ZUxlbmd0aCgpLG9lPVUuZ2V0UHJp'@; put 'dmF0ZSgpLnRvQXJyYXkoImJlIix0ZSksc2U9WC50b0FycmF5KCJiZSIsdGUpLGhlPW5ldyBLKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5Om9lLG5vbmNlOnNlLHBlcnM6ZWUucGVycyxwZXJzRW5jOmVlLnBlcnNFbmN8fCJ1dGY4In0pLHVlPXRoaXMubi5zdWIobmV3IHooMSkpLGNlPTA7O2Nl'@; put 'Kyspe3ZhciBHPWVlLms/ZWUuayhjZSk6bmV3IHooaGUuZ2VuZXJhdGUodGhpcy5uLmJ5dGVMZW5ndGgoKSkpO2lmKCEoKEc9dGhpcy5fdHJ1bmNhdGVUb04oRywhMCkpLmNtcG4oMSk8PTB8fEcuY21wKHVlKT49MCkpe3ZhciBiPXRoaXMuZy5tdWwoRyk7aWYoIWIuaXNJbmZpbml0eSgpKXt2'@; put 'YXIgRD1iLmdldFgoKSxIPUQudW1vZCh0aGlzLm4pO2lmKDAhPT1ILmNtcG4oMCkpe3ZhciBOPUcuaW52bSh0aGlzLm4pLm11bChILm11bChVLmdldFByaXZhdGUoKSkuaWFkZChYKSk7aWYoMCE9PShOPU4udW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgZz0oYi5nZXRZKCkuaXNPZGQoKT8x'@; put 'OjApfCgwIT09RC5jbXAoSCk/MjowKTtyZXR1cm4gZWUuY2Fub25pY2FsJiZOLmNtcCh0aGlzLm5oKT4wJiYoTj10aGlzLm4uc3ViKE4pLGdePTEpLG5ldyBCKHtyOkgsczpOLHJlY292ZXJ5UGFyYW06Z30pfX19fX19LFkucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihYLFUscSxlZSl7WD10'@; put 'aGlzLl90cnVuY2F0ZVRvTihuZXcgeihYLDE2KSkscT10aGlzLmtleUZyb21QdWJsaWMocSxlZSk7dmFyIHRlPShVPW5ldyBCKFUsImhleCIpKS5yLG9lPVUucztpZih0ZS5jbXBuKDEpPDB8fHRlLmNtcCh0aGlzLm4pPj0wfHxvZS5jbXBuKDEpPDB8fG9lLmNtcCh0aGlzLm4pPj0wKXJldHVy'@; put 'biExO3ZhciBzZSxoZT1vZS5pbnZtKHRoaXMubiksdWU9aGUubXVsKFgpLnVtb2QodGhpcy5uKSxjZT1oZS5tdWwodGUpLnVtb2QodGhpcy5uKTtyZXR1cm4gdGhpcy5jdXJ2ZS5fbWF4d2VsbFRyaWNrPyEoc2U9dGhpcy5nLmptdWxBZGQodWUscS5nZXRQdWJsaWMoKSxjZSkpLmlzSW5maW5p'@; put 'dHkoKSYmc2UuZXFYVG9QKHRlKTohKHNlPXRoaXMuZy5tdWxBZGQodWUscS5nZXRQdWJsaWMoKSxjZSkpLmlzSW5maW5pdHkoKSYmMD09PXNlLmdldFgoKS51bW9kKHRoaXMubikuY21wKHRlKX0sWS5wcm90b3R5cGUucmVjb3ZlclB1YktleT1mdW5jdGlvbihYLFUscSxlZSl7aigoMyZxKT09'@; put 'PXEsIlRoZSByZWNvdmVyeSBwYXJhbSBpcyBtb3JlIHRoYW4gdHdvIGJpdHMiKSxVPW5ldyBCKFUsZWUpO3ZhciB0ZT10aGlzLm4sb2U9bmV3IHooWCksc2U9VS5yLGhlPVUucyx1ZT0xJnEsY2U9cT4+MTtpZihzZS5jbXAodGhpcy5jdXJ2ZS5wLnVtb2QodGhpcy5jdXJ2ZS5uKSk+PTAmJmNl'@; put 'KXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgc2VuY29uZCBrZXkgY2FuZGluYXRlIik7c2U9dGhpcy5jdXJ2ZS5wb2ludEZyb21YKGNlP3NlLmFkZCh0aGlzLmN1cnZlLm4pOnNlLHVlKTt2YXIgRz1VLnIuaW52bSh0ZSksYj10ZS5zdWIob2UpLm11bChHKS51bW9kKHRlKSxEPWhl'@; put 'Lm11bChHKS51bW9kKHRlKTtyZXR1cm4gdGhpcy5nLm11bEFkZChiLHNlLEQpfSxZLnByb3RvdHlwZS5nZXRLZXlSZWNvdmVyeVBhcmFtPWZ1bmN0aW9uKFgsVSxxLGVlKXtpZihudWxsIT09KFU9bmV3IEIoVSxlZSkpLnJlY292ZXJ5UGFyYW0pcmV0dXJuIFUucmVjb3ZlcnlQYXJhbTtmb3Io'@; put 'dmFyIHRlPTA7dGU8NDt0ZSsrKXt2YXIgb2U7dHJ5e29lPXRoaXMucmVjb3ZlclB1YktleShYLFUsdGUpfWNhdGNoe2NvbnRpbnVlfWlmKG9lLmVxKHEpKXJldHVybiB0ZX10aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZhbGlkIHJlY292ZXJ5IGZhY3RvciIpfX0sMTI1MTooTSxP'@; put 'LFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoMzc4NSksSz1SKDk1MykuYXNzZXJ0O2Z1bmN0aW9uIEkoayxFKXt0aGlzLmVjPWssdGhpcy5wcml2PW51bGwsdGhpcy5wdWI9bnVsbCxFLnByaXYmJnRoaXMuX2ltcG9ydFByaXZhdGUoRS5wcml2LEUucHJpdkVuYyksRS5wdWImJnRoaXMuX2lt'@; put 'cG9ydFB1YmxpYyhFLnB1YixFLnB1YkVuYyl9TS5leHBvcnRzPUksSS5mcm9tUHVibGljPWZ1bmN0aW9uKGssRSxqKXtyZXR1cm4gRSBpbnN0YW5jZW9mIEk/RTpuZXcgSShrLHtwdWI6RSxwdWJFbmM6an0pfSxJLmZyb21Qcml2YXRlPWZ1bmN0aW9uKGssRSxqKXtyZXR1cm4gRSBpbnN0YW5j'@; put 'ZW9mIEk/RTpuZXcgSShrLHtwcml2OkUscHJpdkVuYzpqfSl9LEkucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7dmFyIGs9dGhpcy5nZXRQdWJsaWMoKTtyZXR1cm4gay5pc0luZmluaXR5KCk/e3Jlc3VsdDohMSxyZWFzb246IkludmFsaWQgcHVibGljIGtleSJ9OmsudmFsaWRhdGUo'@; put 'KT9rLm11bCh0aGlzLmVjLmN1cnZlLm4pLmlzSW5maW5pdHkoKT97cmVzdWx0OiEwLHJlYXNvbjpudWxsfTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSAqIE4gIT0gTyJ9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5IGlzIG5vdCBhIHBvaW50In19LEkucHJvdG90eXBlLmdl'@; put 'dFB1YmxpYz1mdW5jdGlvbihrLEUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgayYmKEU9ayxrPW51bGwpLHRoaXMucHVifHwodGhpcy5wdWI9dGhpcy5lYy5nLm11bCh0aGlzLnByaXYpKSxFP3RoaXMucHViLmVuY29kZShFLGspOnRoaXMucHVifSxJLnByb3RvdHlwZS5nZXRQcml2YXRlPWZ1'@; put 'bmN0aW9uKGspe3JldHVybiJoZXgiPT09az90aGlzLnByaXYudG9TdHJpbmcoMTYsMik6dGhpcy5wcml2fSxJLnByb3RvdHlwZS5faW1wb3J0UHJpdmF0ZT1mdW5jdGlvbihrLEUpe3RoaXMucHJpdj1uZXcgeihrLEV8fDE2KSx0aGlzLnByaXY9dGhpcy5wcml2LnVtb2QodGhpcy5lYy5jdXJ2'@; put 'ZS5uKX0sSS5wcm90b3R5cGUuX2ltcG9ydFB1YmxpYz1mdW5jdGlvbihrLEUpe2lmKGsueHx8ay55KXJldHVybiJtb250Ij09PXRoaXMuZWMuY3VydmUudHlwZT9LKGsueCwiTmVlZCB4IGNvb3JkaW5hdGUiKToic2hvcnQiIT09dGhpcy5lYy5jdXJ2ZS50eXBlJiYiZWR3YXJkcyIhPT10aGlz'@; put 'LmVjLmN1cnZlLnR5cGV8fEsoay54JiZrLnksIk5lZWQgYm90aCB4IGFuZCB5IGNvb3JkaW5hdGUiKSx2b2lkKHRoaXMucHViPXRoaXMuZWMuY3VydmUucG9pbnQoay54LGsueSkpO3RoaXMucHViPXRoaXMuZWMuY3VydmUuZGVjb2RlUG9pbnQoayxFKX0sSS5wcm90b3R5cGUuZGVyaXZlPWZ1'@; put 'bmN0aW9uKGspe3JldHVybiBrLnZhbGlkYXRlKCl8fEsoay52YWxpZGF0ZSgpLCJwdWJsaWMgcG9pbnQgbm90IHZhbGlkYXRlZCIpLGsubXVsKHRoaXMucHJpdikuZ2V0WCgpfSxJLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKGssRSxqKXtyZXR1cm4gdGhpcy5lYy5zaWduKGssdGhpcyxFLGop'@; put 'fSxJLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oayxFKXtyZXR1cm4gdGhpcy5lYy52ZXJpZnkoayxFLHRoaXMpfSxJLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAi'@; put 'Kyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sNjExOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9UigzNzg1KSxLPVIoOTUzKSxJPUsuYXNzZXJ0O2Z1bmN0aW9uIGsoWSxYKXtpZihZIGluc3RhbmNlb2YgaylyZXR1cm4gWTt0aGlzLl9pbXBvcnRERVIoWSxYKXx8'@; put 'KEkoWS5yJiZZLnMsIlNpZ25hdHVyZSB3aXRob3V0IHIgb3IgcyIpLHRoaXMucj1uZXcgeihZLnIsMTYpLHRoaXMucz1uZXcgeihZLnMsMTYpLHRoaXMucmVjb3ZlcnlQYXJhbT12b2lkIDA9PT1ZLnJlY292ZXJ5UGFyYW0/bnVsbDpZLnJlY292ZXJ5UGFyYW0pfWZ1bmN0aW9uIEUoKXt0aGlz'@; put 'LnBsYWNlPTB9ZnVuY3Rpb24gaihZLFgpe3ZhciBVPVlbWC5wbGFjZSsrXTtpZighKDEyOCZVKSlyZXR1cm4gVTt2YXIgcT0xNSZVO2lmKDA9PT1xfHxxPjQpcmV0dXJuITE7Zm9yKHZhciBlZT0wLHRlPTAsb2U9WC5wbGFjZTt0ZTxxO3RlKyssb2UrKyllZTw8PTgsZWV8PVlbb2VdLGVlPj4+'@; put 'PTA7cmV0dXJuIShlZTw9MTI3KSYmKFgucGxhY2U9b2UsZWUpfWZ1bmN0aW9uIFYoWSl7Zm9yKHZhciBYPTAsVT1ZLmxlbmd0aC0xOyFZW1hdJiYhKDEyOCZZW1grMV0pJiZYPFU7KVgrKztyZXR1cm4gMD09PVg/WTpZLnNsaWNlKFgpfWZ1bmN0aW9uIEIoWSxYKXtpZihYPDEyOClZLnB1c2go'@; put 'WCk7ZWxzZXt2YXIgVT0xKyhNYXRoLmxvZyhYKS9NYXRoLkxOMj4+PjMpO2ZvcihZLnB1c2goMTI4fFUpOy0tVTspWS5wdXNoKFg+Pj4oVTw8MykmMjU1KTtZLnB1c2goWCl9fU0uZXhwb3J0cz1rLGsucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24oWSxYKXtZPUsudG9BcnJheShZLFgp'@; put 'O3ZhciBVPW5ldyBFO2lmKDQ4IT09WVtVLnBsYWNlKytdKXJldHVybiExO3ZhciBxPWooWSxVKTtpZighMT09PXF8fHErVS5wbGFjZSE9PVkubGVuZ3RofHwyIT09WVtVLnBsYWNlKytdKXJldHVybiExO3ZhciBlZT1qKFksVSk7aWYoITE9PT1lZSlyZXR1cm4hMTt2YXIgdGU9WS5zbGljZShV'@; put 'LnBsYWNlLGVlK1UucGxhY2UpO2lmKFUucGxhY2UrPWVlLDIhPT1ZW1UucGxhY2UrK10pcmV0dXJuITE7dmFyIG9lPWooWSxVKTtpZighMT09PW9lfHxZLmxlbmd0aCE9PW9lK1UucGxhY2UpcmV0dXJuITE7dmFyIHNlPVkuc2xpY2UoVS5wbGFjZSxvZStVLnBsYWNlKTtpZigwPT09dGVbMF0p'@; put 'e2lmKCEoMTI4JnRlWzFdKSlyZXR1cm4hMTt0ZT10ZS5zbGljZSgxKX1pZigwPT09c2VbMF0pe2lmKCEoMTI4JnNlWzFdKSlyZXR1cm4hMTtzZT1zZS5zbGljZSgxKX1yZXR1cm4gdGhpcy5yPW5ldyB6KHRlKSx0aGlzLnM9bmV3IHooc2UpLHRoaXMucmVjb3ZlcnlQYXJhbT1udWxsLCEwfSxr'@; put 'LnByb3RvdHlwZS50b0RFUj1mdW5jdGlvbihZKXt2YXIgWD10aGlzLnIudG9BcnJheSgpLFU9dGhpcy5zLnRvQXJyYXkoKTtmb3IoMTI4JlhbMF0mJihYPVswXS5jb25jYXQoWCkpLDEyOCZVWzBdJiYoVT1bMF0uY29uY2F0KFUpKSxYPVYoWCksVT1WKFUpOyEoVVswXXx8MTI4JlVbMV0pOylV'@; put 'PVUuc2xpY2UoMSk7dmFyIHE9WzJdO0IocSxYLmxlbmd0aCksKHE9cS5jb25jYXQoWCkpLnB1c2goMiksQihxLFUubGVuZ3RoKTt2YXIgZWU9cS5jb25jYXQoVSksdGU9WzQ4XTtyZXR1cm4gQih0ZSxlZS5sZW5ndGgpLHRlPXRlLmNvbmNhdChlZSksSy5lbmNvZGUodGUsWSl9fSw1OTgwOihN'@; put 'LE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9UigzNzE1KSxLPVIoNTQyNyksST1SKDk1Myksaz1JLmFzc2VydCxFPUkucGFyc2VCeXRlcyxqPVIoOTA4NyksVj1SKDM2MjIpO2Z1bmN0aW9uIEIoWSl7aWYoaygiZWQyNTUxOSI9PT1ZLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFy'@; put 'IiksISh0aGlzIGluc3RhbmNlb2YgQikpcmV0dXJuIG5ldyBCKFkpO3RoaXMuY3VydmU9WT1LW1ldLmN1cnZlLHRoaXMuZz1ZLmcsdGhpcy5nLnByZWNvbXB1dGUoWS5uLmJpdExlbmd0aCgpKzEpLHRoaXMucG9pbnRDbGFzcz1ZLnBvaW50KCkuY29uc3RydWN0b3IsdGhpcy5lbmNvZGluZ0xl'@; put 'bmd0aD1NYXRoLmNlaWwoWS5uLmJpdExlbmd0aCgpLzgpLHRoaXMuaGFzaD16LnNoYTUxMn1NLmV4cG9ydHM9QixCLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKFksWCl7WT1FKFkpO3ZhciBVPXRoaXMua2V5RnJvbVNlY3JldChYKSxxPXRoaXMuaGFzaEludChVLm1lc3NhZ2VQcmVmaXgoKSxZ'@; put 'KSxlZT10aGlzLmcubXVsKHEpLHRlPXRoaXMuZW5jb2RlUG9pbnQoZWUpLG9lPXRoaXMuaGFzaEludCh0ZSxVLnB1YkJ5dGVzKCksWSkubXVsKFUucHJpdigpKSxzZT1xLmFkZChvZSkudW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6ZWUsUzpzZSxSZW5j'@; put 'b2RlZDp0ZX0pfSxCLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oWSxYLFUpe1k9RShZKSxYPXRoaXMubWFrZVNpZ25hdHVyZShYKTt2YXIgcT10aGlzLmtleUZyb21QdWJsaWMoVSksZWU9dGhpcy5oYXNoSW50KFguUmVuY29kZWQoKSxxLnB1YkJ5dGVzKCksWSksdGU9dGhpcy5nLm11bChY'@; put 'LlMoKSk7cmV0dXJuIFguUigpLmFkZChxLnB1YigpLm11bChlZSkpLmVxKHRlKX0sQi5wcm90b3R5cGUuaGFzaEludD1mdW5jdGlvbigpe2Zvcih2YXIgWT10aGlzLmhhc2goKSxYPTA7WDxhcmd1bWVudHMubGVuZ3RoO1grKylZLnVwZGF0ZShhcmd1bWVudHNbWF0pO3JldHVybiBJLmludEZy'@; put 'b21MRShZLmRpZ2VzdCgpKS51bW9kKHRoaXMuY3VydmUubil9LEIucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oWSl7cmV0dXJuIGouZnJvbVB1YmxpYyh0aGlzLFkpfSxCLnByb3RvdHlwZS5rZXlGcm9tU2VjcmV0PWZ1bmN0aW9uKFkpe3JldHVybiBqLmZyb21TZWNyZXQodGhp'@; put 'cyxZKX0sQi5wcm90b3R5cGUubWFrZVNpZ25hdHVyZT1mdW5jdGlvbihZKXtyZXR1cm4gWSBpbnN0YW5jZW9mIFY/WTpuZXcgVih0aGlzLFkpfSxCLnByb3RvdHlwZS5lbmNvZGVQb2ludD1mdW5jdGlvbihZKXt2YXIgWD1ZLmdldFkoKS50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0'@; put 'aCk7cmV0dXJuIFhbdGhpcy5lbmNvZGluZ0xlbmd0aC0xXXw9WS5nZXRYKCkuaXNPZGQoKT8xMjg6MCxYfSxCLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihZKXt2YXIgWD0oWT1JLnBhcnNlQnl0ZXMoWSkpLmxlbmd0aC0xLFU9WS5zbGljZSgwLFgpLmNvbmNhdCgtMTI5JllbWF0p'@; put 'LHE9MCE9KDEyOCZZW1hdKSxlZT1JLmludEZyb21MRShVKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludEZyb21ZKGVlLHEpfSxCLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIFkudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfSxCLnByb3RvdHlwZS5kZWNv'@; put 'ZGVJbnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIEkuaW50RnJvbUxFKFkpfSxCLnByb3RvdHlwZS5pc1BvaW50PWZ1bmN0aW9uKFkpe3JldHVybiBZIGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzfX0sOTA4NzooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoOTUzKSxLPXouYXNzZXJ0LEk9'@; put 'ei5wYXJzZUJ5dGVzLGs9ei5jYWNoZWRQcm9wZXJ0eTtmdW5jdGlvbiBFKGosVil7dGhpcy5lZGRzYT1qLHRoaXMuX3NlY3JldD1JKFYuc2VjcmV0KSxqLmlzUG9pbnQoVi5wdWIpP3RoaXMuX3B1Yj1WLnB1Yjp0aGlzLl9wdWJCeXRlcz1JKFYucHViKX1FLmZyb21QdWJsaWM9ZnVuY3Rpb24o'@; put 'aixWKXtyZXR1cm4gViBpbnN0YW5jZW9mIEU/VjpuZXcgRShqLHtwdWI6Vn0pfSxFLmZyb21TZWNyZXQ9ZnVuY3Rpb24oaixWKXtyZXR1cm4gViBpbnN0YW5jZW9mIEU/VjpuZXcgRShqLHtzZWNyZXQ6Vn0pfSxFLnByb3RvdHlwZS5zZWNyZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2Vj'@; put 'cmV0fSxrKEUsInB1YkJ5dGVzIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSksayhFLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRk'@; put 'c2EuZy5tdWwodGhpcy5wcml2KCkpfSksayhFLCJwcml2Qnl0ZXMiLGZ1bmN0aW9uKCl7dmFyIGo9dGhpcy5lZGRzYSxWPXRoaXMuaGFzaCgpLEI9ai5lbmNvZGluZ0xlbmd0aC0xLFk9Vi5zbGljZSgwLGouZW5jb2RpbmdMZW5ndGgpO3JldHVybiBZWzBdJj0yNDgsWVtCXSY9MTI3LFlbQl18'@; put 'PTY0LFl9KSxrKEUsInByaXYiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpfSksayhFLCJoYXNoIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCl9KSxrKEUsIm1l'@; put 'c3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksRS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihqKXtyZXR1cm4gSyh0aGlzLl9zZWNyZXQsIktleVBhaXIgY2FuIG9ubHkgdmVyaWZ5IiksdGhpcy5lZGRz'@; put 'YS5zaWduKGosdGhpcyl9LEUucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihqLFYpe3JldHVybiB0aGlzLmVkZHNhLnZlcmlmeShqLFYsdGhpcyl9LEUucHJvdG90eXBlLmdldFNlY3JldD1mdW5jdGlvbihqKXtyZXR1cm4gSyh0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHki'@; put 'KSx6LmVuY29kZSh0aGlzLnNlY3JldCgpLGopfSxFLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oail7cmV0dXJuIHouZW5jb2RlKHRoaXMucHViQnl0ZXMoKSxqKX0sTS5leHBvcnRzPUV9LDM2MjI6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDM3ODUpLEs9Uig5NTMpLEk9'@; put 'Sy5hc3NlcnQsaz1LLmNhY2hlZFByb3BlcnR5LEU9Sy5wYXJzZUJ5dGVzO2Z1bmN0aW9uIGooVixCKXt0aGlzLmVkZHNhPVYsIm9iamVjdCIhPXR5cGVvZiBCJiYoQj1FKEIpKSxBcnJheS5pc0FycmF5KEIpJiYoQj17UjpCLnNsaWNlKDAsVi5lbmNvZGluZ0xlbmd0aCksUzpCLnNsaWNlKFYu'@; put 'ZW5jb2RpbmdMZW5ndGgpfSksSShCLlImJkIuUywiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTIiksVi5pc1BvaW50KEIuUikmJih0aGlzLl9SPUIuUiksQi5TIGluc3RhbmNlb2YgeiYmKHRoaXMuX1M9Qi5TKSx0aGlzLl9SZW5jb2RlZD1BcnJheS5pc0FycmF5KEIuUik/Qi5SOkIuUmVuY29k'@; put 'ZWQsdGhpcy5fU2VuY29kZWQ9QXJyYXkuaXNBcnJheShCLlMpP0IuUzpCLlNlbmNvZGVkfWsoaiwiUyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5TZW5jb2RlZCgpKX0pLGsoaiwiUiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2lu'@; put 'dCh0aGlzLlJlbmNvZGVkKCkpfSksayhqLCJSZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLlIoKSl9KSxrKGosIlNlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZUludCh0aGlzLlMoKSl9KSxqLnByb3RvdHlw'@; put 'ZS50b0J5dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX0sai5wcm90b3R5cGUudG9IZXg9ZnVuY3Rpb24oKXtyZXR1cm4gSy5lbmNvZGUodGhpcy50b0J5dGVzKCksImhleCIpLnRvVXBwZXJDYXNlKCl9LE0uZXhwb3J0cz1qfSwx'@; put 'MDM3Ok09PntNLmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDczOTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMy'@; put 'Y2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4'@; put 'NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRkMjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJdLFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1'@; put 'NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQw'@; put 'YTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2'@; put 'NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5'@; put 'OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3'@; put 'YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRmMThmMjk0NTZhMDBkIl0sWyJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVl'@; put 'Njg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQy'@; put 'YmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAiLCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0'@; put 'NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBiNzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNhOTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1'@; put 'ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgw'@; put 'ZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIxNjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2'@; put 'YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDli'@; put 'ZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdm'@; put 'ODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjkyMjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4'@; put 'ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0sWyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZh'@; put 'NmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRh'@; put 'ZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUz'@; put 'MGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdjZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2'@; put 'ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZkNzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAzMmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJh'@; put 'YTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJl'@; put 'OWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWEx'@; put 'ZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQiLCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYz'@; put 'MjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVkNDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBh'@; put 'ZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgzOWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhjYjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVl'@; put 'ODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFl'@; put 'MTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNh'@; put 'MzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5'@; put 'NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2UwNmRlMWRhZGYxNmU1NjYxZGIzYzRiM2FlNmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4'@; put 'NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0sWyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0'@; put 'NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1'@; put 'MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUz'@; put 'MjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgi'@; put 'XSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZlNThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNlZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYy'@; put 'OWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNmYzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5'@; put 'YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJl'@; put 'MjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJj'@; put 'ZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5'@; put 'ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFhNmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFi'@; put 'NmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5'@; put 'IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5'@; put 'ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIzOTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3'@; put 'ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5'@; put 'MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRkNmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxbIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1'@; put 'MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1'@; put 'Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcw'@; put 'Zjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5'@; put 'Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5Nzlh'@; put 'ZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEz'@; put 'YTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkz'@; put 'Mzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4'@; put 'ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhmYTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMxY2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3'@; put 'OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMz'@; put 'MTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0sWyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2'@; put 'MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJj'@; put 'YTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFk'@; put 'ZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYx'@; put 'YiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUz'@; put 'MDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgiXSxbImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRm'@; put 'YWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5'@; put 'M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIsIjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIx'@; put 'MDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgy'@; put 'NzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJm'@; put 'NTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdk'@; put 'YiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZm'@; put 'MTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlk'@; put 'NjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0'@; put 'OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxbIjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2Yjli'@; put 'OGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2Zh'@; put 'OWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQz'@; put 'NDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzIiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJd'@; put 'LFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVj'@; put 'N2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1'@; put 'MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2Ux'@; put 'M2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMy'@; put 'YTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNh'@; put 'NzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2Yy'@; put 'YjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJdLFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIs'@; put 'IjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQx'@; put 'ODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNm'@; put 'MmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBk'@; put 'YTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1'@; put 'NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUy'@; put 'ZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3'@; put 'MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJd'@; put 'LFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZh'@; put 'YmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4'@; put 'YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4'@; put 'ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2'@; put 'MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4'@; put 'MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2'@; put 'NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkIl0sWyJhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQw'@; put 'IiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1'@; put 'M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIx'@; put 'Mjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMx'@; put 'YzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3'@; put 'MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1'@; put 'ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUx'@; put 'ZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJd'@; put 'LFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFm'@; put 'YTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZi'@; put 'MzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5'@; put 'YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNSIsIjIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2'@; put 'YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYz'@; put 'YTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMz'@; put 'ODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0sWyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2Iiwi'@; put 'ZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZi'@; put 'MzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjlj'@; put 'ZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdm'@; put 'MzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExIl0sWyIyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3'@; put 'MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRl'@; put 'MDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYz'@; put 'NDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVh'@; put 'MDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1'@; put 'MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4'@; put 'ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3'@; put 'NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3'@; put 'YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEw'@; put 'ZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJdLFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2Nj'@; put 'NTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlk'@; put 'NjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBj'@; put 'ZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4'@; put 'Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4'@; put 'MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAz'@; put 'ZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlk'@; put 'OGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNiIsIjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRl'@; put 'ZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2'@; put 'M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2Mw'@; put 'MDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzciXSxbImRmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2Nl'@; put 'ZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBj'@; put 'NTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5'@; put 'OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUx'@; put 'NGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJdLFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFj'@; put 'ZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMx'@; put 'MGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRj'@; put 'MWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMSIsImNkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3'@; put 'NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQy'@; put 'NGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhl'@; put 'N2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhm'@; put 'ODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIsImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUy'@; put 'Mjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4'@; put 'NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcw'@; put 'NTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4'@; put 'M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3'@; put 'MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmIiwiZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2'@; put 'OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNj'@; put 'MzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0sWyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFk'@; put 'ZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMx'@; put 'ZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2'@; put 'OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0'@; put 'NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2Vj'@; put 'MWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZm'@; put 'MTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0'@; put 'ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTciLCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVh'@; put 'Mzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0'@; put 'NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYy'@; put 'MzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMx'@; put 'ODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19LDk1MzooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PU8sSz1SKDM3ODUpLEk9Uig5NzQ2KSxrPVIoNDUwNCk7ei5hc3NlcnQ9SSx6LnRvQXJyYXk9ay50'@; put 'b0FycmF5LHouemVybzI9ay56ZXJvMix6LnRvSGV4PWsudG9IZXgsei5lbmNvZGU9ay5lbmNvZGUsei5nZXROQUY9ZnVuY3Rpb24oRSxqLFYpe3ZhciBCPW5ldyBBcnJheShNYXRoLm1heChFLmJpdExlbmd0aCgpLFYpKzEpO0IuZmlsbCgwKTtmb3IodmFyIFk9MTw8aisxLFg9RS5jbG9uZSgp'@; put 'LFU9MDtVPEIubGVuZ3RoO1UrKyl7dmFyIHEsZWU9WC5hbmRsbihZLTEpO1guaXNPZGQoKT9YLmlzdWJuKHE9ZWU+KFk+PjEpLTE/KFk+PjEpLWVlOmVlKTpxPTAsQltVXT1xLFguaXVzaHJuKDEpfXJldHVybiBCfSx6LmdldEpTRj1mdW5jdGlvbihFLGope3ZhciBWPVtbXSxbXV07RT1FLmNs'@; put 'b25lKCksaj1qLmNsb25lKCk7Zm9yKHZhciBCLFk9MCxYPTA7RS5jbXBuKC1ZKT4wfHxqLmNtcG4oLVgpPjA7KXt2YXIgVSxxLGVlPUUuYW5kbG4oMykrWSYzLHRlPWouYW5kbG4oMykrWCYzOzM9PT1lZSYmKGVlPS0xKSwzPT09dGUmJih0ZT0tMSksVT0xJmVlPzMhPShCPUUuYW5kbG4oNykr'@; put 'WSY3KSYmNSE9PUJ8fDIhPT10ZT9lZTotZWU6MCxWWzBdLnB1c2goVSkscT0xJnRlPzMhPShCPWouYW5kbG4oNykrWCY3KSYmNSE9PUJ8fDIhPT1lZT90ZTotdGU6MCxWWzFdLnB1c2gocSksMipZPT09VSsxJiYoWT0xLVkpLDIqWD09PXErMSYmKFg9MS1YKSxFLml1c2hybigxKSxqLml1c2hy'@; put 'bigxKX1yZXR1cm4gVn0sei5jYWNoZWRQcm9wZXJ0eT1mdW5jdGlvbihFLGosVil7dmFyIEI9Il8iK2o7RS5wcm90b3R5cGVbal09ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpc1tCXT90aGlzW0JdOnRoaXNbQl09Vi5jYWxsKHRoaXMpfX0sei5wYXJzZUJ5dGVzPWZ1bmN0aW9uKEUp'@; put 'e3JldHVybiJzdHJpbmciPT10eXBlb2YgRT96LnRvQXJyYXkoRSwiaGV4Iik6RX0sei5pbnRGcm9tTEU9ZnVuY3Rpb24oRSl7cmV0dXJuIG5ldyBLKEUsImhleCIsImxlIil9fSwzNzg1OmZ1bmN0aW9uKE0sTyxSKXshZnVuY3Rpb24oeixLKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gSShnLEMp'@; put 'e2lmKCFnKXRocm93IG5ldyBFcnJvcihDfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGsoZyxDKXtnLnN1cGVyXz1DO3ZhciBTPWZ1bmN0aW9uKCl7fTtTLnByb3RvdHlwZT1DLnByb3RvdHlwZSxnLnByb3RvdHlwZT1uZXcgUyxnLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1nfWZ1bmN0'@; put 'aW9uIEUoZyxDLFMpe2lmKEUuaXNCTihnKSlyZXR1cm4gZzt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09ZyYmKCJsZSIhPT1DJiYiYmUiIT09Q3x8KFM9QyxDPTEwKSx0aGlzLl9pbml0KGd8fDAsQ3x8MTAsU3x8ImJl'@; put 'IikpfXZhciBqOyJvYmplY3QiPT10eXBlb2Ygej96LmV4cG9ydHM9RTpLLkJOPUUsRS5CTj1FLEUud29yZFNpemU9MjY7dHJ5e2o9dHlwZW9mIHdpbmRvdzwidSImJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpSKDU1NjgpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gVihn'@; put 'LEMpe3ZhciBTPWcuY2hhckNvZGVBdChDKTtyZXR1cm4gUz49NjUmJlM8PTcwP1MtNTU6Uz49OTcmJlM8PTEwMj9TLTg3OlMtNDgmMTV9ZnVuY3Rpb24gQihnLEMsUyl7dmFyIHY9VihnLFMpO3JldHVybiBTLTE+PUMmJih2fD1WKGcsUy0xKTw8NCksdn1mdW5jdGlvbiBZKGcsQyxTLHYpe2Zv'@; put 'cih2YXIgcD0wLHc9TWF0aC5taW4oZy5sZW5ndGgsUyksSj1DO0o8dztKKyspe3ZhciBuZT1nLmNoYXJDb2RlQXQoSiktNDg7cCo9dixwKz1uZT49NDk/bmUtNDkrMTA6bmU+PTE3P25lLTE3KzEwOm5lfXJldHVybiBwfUUuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIEV8'@; put 'fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9mIGcmJmcuY29uc3RydWN0b3Iud29yZFNpemU9PT1FLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSxFLm1heD1mdW5jdGlvbihnLEMpe3JldHVybiBnLmNtcChDKT4wP2c6Q30sRS5taW49ZnVuY3Rpb24oZyxDKXtyZXR1cm4gZy5j'@; put 'bXAoQyk8MD9nOkN9LEUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGcsQyxTKXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyxDLFMpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcsQyxTKTsiaGV4Ij09PUMmJihD'@; put 'PTE2KSxJKEM9PT0oMHxDKSYmQz49MiYmQzw9MzYpO3ZhciB2PTA7Ii0iPT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih2KyssdGhpcy5uZWdhdGl2ZT0xKSx2PGcubGVuZ3RoJiYoMTY9PT1DP3RoaXMuX3BhcnNlSGV4KGcsdixTKToodGhpcy5fcGFyc2VCYXNl'@; put 'KGcsQyx2KSwibGUiPT09UyYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLEMsUykpKX0sRS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyxDLFMpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlz'@; put 'Lmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEkoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5s'@; put 'ZW5ndGg9MyksImxlIj09PVMmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxDLFMpfSxFLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcsQyxTKXtpZihJKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlz'@; put 'Lmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKGcubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHY9MDt2PHRoaXMubGVuZ3RoO3YrKyl0aGlzLndvcmRzW3ZdPTA7dmFyIHAsdyxKPTA7aWYoImJlIj09PVMpZm9yKHY9Zy5sZW5n'@; put 'dGgtMSxwPTA7dj49MDt2LT0zKXRoaXMud29yZHNbcF18PSh3PWdbdl18Z1t2LTFdPDw4fGdbdi0yXTw8MTYpPDxKJjY3MTA4ODYzLHRoaXMud29yZHNbcCsxXT13Pj4+MjYtSiY2NzEwODg2MywoSis9MjQpPj0yNiYmKEotPTI2LHArKyk7ZWxzZSBpZigibGUiPT09Uylmb3Iodj0wLHA9MDt2'@; put 'PGcubGVuZ3RoO3YrPTMpdGhpcy53b3Jkc1twXXw9KHc9Z1t2XXxnW3YrMV08PDh8Z1t2KzJdPDwxNik8PEomNjcxMDg4NjMsdGhpcy53b3Jkc1twKzFdPXc+Pj4yNi1KJjY3MTA4ODYzLChKKz0yNCk+PTI2JiYoSi09MjYscCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5f'@; put 'cGFyc2VIZXg9ZnVuY3Rpb24oZyxDLFMpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoZy5sZW5ndGgtQykvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdj0wO3Y8dGhpcy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09MDt2YXIgcCx3PTAsSj0wO2lmKCJiZSI9'@; put 'PT1TKWZvcih2PWcubGVuZ3RoLTE7dj49Qzt2LT0yKXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O2Vsc2UgZm9yKHY9KGcubGVuZ3RoLUMpJTI9PTA/QysxOkM7djxnLmxlbmd0aDt2Kz0y'@; put 'KXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O3RoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLEMsUyl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9'@; put 'MTtmb3IodmFyIHY9MCxwPTE7cDw9NjcxMDg4NjM7cCo9Qyl2Kys7di0tLHA9cC9DfDA7Zm9yKHZhciB3PWcubGVuZ3RoLVMsSj13JXYsbmU9TWF0aC5taW4odyx3LUopK1MsZGU9MCxmZT1TO2ZlPG5lO2ZlKz12KWRlPVkoZyxmZSxmZSt2LEMpLHRoaXMuaW11bG4ocCksdGhpcy53b3Jkc1sw'@; put 'XStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1kZTp0aGlzLl9pYWRkbihkZSk7aWYoMCE9PUope3ZhciB4ZT0xO2ZvcihkZT1ZKGcsZmUsZy5sZW5ndGgsQyksZmU9MDtmZTxKO2ZlKyspeGUqPUM7dGhpcy5pbXVsbih4ZSksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRz'@; put 'WzBdKz1kZTp0aGlzLl9pYWRkbihkZSl9dGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKylnLndvcmRzW0NdPXRoaXMud29yZHNbQ107Zy5sZW5ndGg9dGhp'@; put 'cy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVkPXRoaXMucmVkfSxFLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyBFKG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sRS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVu'@; put 'Z3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sRS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigp'@; put 'fSxFLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sRS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjog'@; put 'IikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWD1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAi'@; put 'LCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIs'@; put 'IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxVPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUs'@; put 'NSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLHE9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEz'@; put 'NzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07'@; put 'ZnVuY3Rpb24gZWUoZyxDLFMpe1MubmVnYXRpdmU9Qy5uZWdhdGl2ZV5nLm5lZ2F0aXZlO3ZhciB2PWcubGVuZ3RoK0MubGVuZ3RofDA7Uy5sZW5ndGg9dix2PXYtMXwwO3ZhciBwPTB8Zy53b3Jkc1swXSx3PTB8Qy53b3Jkc1swXSxKPXAqdyxkZT1KLzY3MTA4ODY0fDA7Uy53b3Jkc1swXT02'@; put 'NzEwODg2MyZKO2Zvcih2YXIgZmU9MTtmZTx2O2ZlKyspe2Zvcih2YXIgeGU9ZGU+Pj4yNixMZT02NzEwODg2MyZkZSxGZT1NYXRoLm1pbihmZSxDLmxlbmd0aC0xKSxPZT1NYXRoLm1heCgwLGZlLWcubGVuZ3RoKzEpO09lPD1GZTtPZSsrKXhlKz0oSj0ocD0wfGcud29yZHNbZmUtT2V8MF0p'@; put 'Kih3PTB8Qy53b3Jkc1tPZV0pK0xlKS82NzEwODg2NHwwLExlPTY3MTA4ODYzJko7Uy53b3Jkc1tmZV09MHxMZSxkZT0wfHhlfXJldHVybiAwIT09ZGU/Uy53b3Jkc1tmZV09MHxkZTpTLmxlbmd0aC0tLFMuc3RyaXAoKX1FLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihnLEMpe3ZhciBT'@; put 'O2lmKEM9MHxDfHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe1M9IiI7Zm9yKHZhciB2PTAscD0wLHc9MDt3PHRoaXMubGVuZ3RoO3crKyl7dmFyIEo9dGhpcy53b3Jkc1t3XSxuZT0oMTY3NzcyMTUmKEo8PHZ8cCkpLnRvU3RyaW5nKDE2KTtTPTAhPShwPUo+Pj4yNC12JjE2Nzc3MjE1'@; put 'KXx8dyE9PXRoaXMubGVuZ3RoLTE/WFs2LW5lLmxlbmd0aF0rbmUrUzpuZStTLCh2Kz0yKT49MjYmJih2LT0yNix3LS0pfWZvcigwIT09cCYmKFM9cC50b1N0cmluZygxNikrUyk7Uy5sZW5ndGglQyE9MDspUz0iMCIrUztyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihTPSItIitTKSxTfWlm'@; put 'KGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBkZT1VW2ddLGZlPXFbZ107Uz0iIjt2YXIgeGU9dGhpcy5jbG9uZSgpO2Zvcih4ZS5uZWdhdGl2ZT0wOyF4ZS5pc1plcm8oKTspe3ZhciBMZT14ZS5tb2RuKGZlKS50b1N0cmluZyhnKTtTPSh4ZT14ZS5pZGl2bihmZSkpLmlzWmVybygpP0xl'@; put 'K1M6WFtkZS1MZS5sZW5ndGhdK0xlK1N9Zm9yKHRoaXMuaXNaZXJvKCkmJihTPSIwIitTKTtTLmxlbmd0aCVDIT0wOylTPSIwIitTO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFM9Ii0iK1MpLFN9SSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxFLnByb3RvdHlw'@; put 'ZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRz'@; put 'WzFdOnRoaXMubGVuZ3RoPjImJkkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LEUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sRS5wcm90b3R5cGUudG9C'@; put 'dWZmZXI9ZnVuY3Rpb24oZyxDKXtyZXR1cm4gSSh2b2lkIDAhPT1qKSx0aGlzLnRvQXJyYXlMaWtlKGosZyxDKX0sRS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLEMpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcsQyl9LEUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0'@; put 'aW9uKGcsQyxTKXt2YXIgdj10aGlzLmJ5dGVMZW5ndGgoKSxwPVN8fE1hdGgubWF4KDEsdik7SSh2PD1wLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksSShwPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgdyxKLG5lPSJs'@; put 'ZSI9PT1DLGRlPW5ldyBnKHApLGZlPXRoaXMuY2xvbmUoKTtpZihuZSl7Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4oOCksZGVbSl09dztmb3IoO0o8cDtKKyspZGVbSl09MH1lbHNle2ZvcihKPTA7SjxwLXY7SisrKWRlW0pdPTA7Zm9yKEo9MDsh'@; put 'ZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4oOCksZGVbcC1KLTFdPXd9cmV0dXJuIGRlfSxFLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciBDPWcsUz0wO3Jl'@; put 'dHVybiBDPj00MDk2JiYoUys9MTMsQz4+Pj0xMyksQz49NjQmJihTKz03LEM+Pj49NyksQz49OCYmKFMrPTQsQz4+Pj00KSxDPj0yJiYoUys9MixDPj4+PTIpLFMrQ30sRS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgQz1nLFM9MDtyZXR1'@; put 'cm4hKDgxOTEmQykmJihTKz0xMyxDPj4+PTEzKSwhKDEyNyZDKSYmKFMrPTcsQz4+Pj03KSwhKDE1JkMpJiYoUys9NCxDPj4+PTQpLCEoMyZDKSYmKFMrPTIsQz4+Pj0yKSwhKDEmQykmJlMrKyxTfSxFLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgQz10aGlzLl9jb3VudEJp'@; put 'dHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStDfSxFLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAsQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz10aGlzLl96'@; put 'ZXJvQml0cyh0aGlzLndvcmRzW0NdKTtpZihnKz1TLDI2IT09UylicmVha31yZXR1cm4gZ30sRS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sRS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiAw'@; put 'IT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGcpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sRS5wcm90'@; put 'b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LEUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxFLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0'@; put 'aXZlXj0xKSx0aGlzfSxFLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIEM9MDtDPGcubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXRoaXMud29yZHNbQ118Zy53b3Jkc1tDXTty'@; put 'ZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sRS5wcm90b3R5cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xv'@; put 'bmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0sRS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpnLmNsb25lKCkuaXVvcih0aGlzKX0sRS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFy'@; put 'IEM7Qz10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7Zm9yKHZhciBTPTA7UzxDLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1NdJmcud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPUMubGVuZ3RoLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaWFuZD1mdW5jdGlv'@; put 'bihnKXtyZXR1cm4gSSgwPT0odGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sRS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sRS5wcm90'@; put 'b3R5cGUudWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sRS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIEMsUzt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oQz10aGlzLFM9'@; put 'Zyk6KEM9ZyxTPXRoaXMpO2Zvcih2YXIgdj0wO3Y8Uy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09Qy53b3Jkc1t2XV5TLndvcmRzW3ZdO2lmKHRoaXMhPT1DKWZvcig7djxDLmxlbmd0aDt2KyspdGhpcy53b3Jkc1t2XT1DLndvcmRzW3ZdO3JldHVybiB0aGlzLmxlbmd0aD1DLmxlbmd0aCx0'@; put 'aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LEUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgp'@; put 'Lml4b3IoZyk6Zy5jbG9uZSgpLml4b3IodGhpcyl9LEUucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LEUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGcpe0ko'@; put 'Im51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz0wfE1hdGguY2VpbChnLzI2KSxTPWclMjY7dGhpcy5fZXhwYW5kKEMpLFM+MCYmQy0tO2Zvcih2YXIgdj0wO3Y8Qzt2KyspdGhpcy53b3Jkc1t2XT02NzEwODg2MyZ+dGhpcy53b3Jkc1t2XTtyZXR1cm4gUz4wJiYodGhpcy53b3Jkc1t2'@; put 'XT1+dGhpcy53b3Jkc1t2XSY2NzEwODg2Mz4+MjYtUyksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LEUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyxDKXtJKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7'@; put 'dmFyIFM9Zy8yNnwwLHY9ZyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFMrMSksdGhpcy53b3Jkc1tTXT1DP3RoaXMud29yZHNbU118MTw8djp0aGlzLndvcmRzW1NdJn4oMTw8diksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciBDLFMsdjtpZigwIT09dGhp'@; put 'cy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxDPXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAsQz10aGlzLmlz'@; put 'dWIoZyksZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHA9MCx3PTA7dzx2Lmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT02NzEwODg2MyYoQz0oMHxTLndvcmRzW3ddKSsoMHx2LndvcmRzW3dd'@; put 'KStwKSxwPUM+Pj4yNjtmb3IoOzAhPT1wJiZ3PFMubGVuZ3RoO3crKyl0aGlzLndvcmRzW3ddPTY3MTA4ODYzJihDPSgwfFMud29yZHNbd10pK3ApLHA9Qz4+PjI2O2lmKHRoaXMubGVuZ3RoPVMubGVuZ3RoLDAhPT1wKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXAsdGhpcy5sZW5ndGgrKztl'@; put 'bHNlIGlmKFMhPT10aGlzKWZvcig7dzxTLmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT1TLndvcmRzW3ddO3JldHVybiB0aGlzfSxFLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIEM7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2ZT0wLEM9'@; put 'dGhpcy5zdWIoZyksZy5uZWdhdGl2ZV49MSxDKTowPT09Zy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxDPWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxDKTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNsb25lKCku'@; put 'aWFkZCh0aGlzKX0sRS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnKXtpZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciBDPXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRp'@; put 'dmU9MCx0aGlzLmlhZGQoZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFMsdixwPXRoaXMuY21wKGcpO2lmKDA9PT1wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztwPjA/KFM9dGhpcyx2PWcpOihTPWcsdj10'@; put 'aGlzKTtmb3IodmFyIHc9MCxKPTA7Sjx2Lmxlbmd0aDtKKyspdz0oQz0oMHxTLndvcmRzW0pdKS0oMHx2LndvcmRzW0pdKSt3KT4+MjYsdGhpcy53b3Jkc1tKXT02NzEwODg2MyZDO2Zvcig7MCE9PXcmJko8Uy5sZW5ndGg7SisrKXc9KEM9KDB8Uy53b3Jkc1tKXSkrdyk+PjI2LHRoaXMud29y'@; put 'ZHNbSl09NjcxMDg4NjMmQztpZigwPT09dyYmSjxTLmxlbmd0aCYmUyE9PXRoaXMpZm9yKDtKPFMubGVuZ3RoO0orKyl0aGlzLndvcmRzW0pdPVMud29yZHNbSl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEopLFMhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0'@; put 'aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciB0ZT1mdW5jdGlvbihnLEMsUyl7dmFyIHYscCx3LEo9Zy53b3JkcyxuZT1DLndvcmRzLGRlPVMud29yZHMsZmU9MCx4ZT0wfEpbMF0sTGU9ODE5MSZ4ZSxGZT14'@; put 'ZT4+PjEzLE9lPTB8SlsxXSxqZT04MTkxJk9lLFdlPU9lPj4+MTMsS2U9MHxKWzJdLFllPTgxOTEmS2UsUWU9S2U+Pj4xMyxsdD0wfEpbM10sUGU9ODE5MSZsdCxiZT1sdD4+PjEzLEFlPTB8Sls0XSxUZT04MTkxJkFlLHFlPUFlPj4+MTMsWGU9MHxKWzVdLFVlPTgxOTEmWGUsaHQ9WGU+Pj4x'@; put 'MyxNZT0wfEpbNl0sRGU9ODE5MSZNZSx6ZT1NZT4+PjEzLG90PTB8Sls3XSx1dD04MTkxJm90LE10PW90Pj4+MTMsSHQ9MHxKWzhdLFB0PTgxOTEmSHQsb249SHQ+Pj4xMyxDbj0wfEpbOV0sVXQ9ODE5MSZDbixibj1Dbj4+PjEzLFduPTB8bmVbMF0sZW49ODE5MSZXbiwkbj1Xbj4+PjEzLEhu'@; put 'PTB8bmVbMV0sZnQ9ODE5MSZIbixmbj1Ibj4+PjEzLGhuPTB8bmVbMl0sd3Q9ODE5MSZobixYdD1obj4+PjEzLF90PTB8bmVbM10sTnQ9ODE5MSZfdCxtbj1fdD4+PjEzLHJ0PTB8bmVbNF0sSXQ9ODE5MSZydCxRdD1ydD4+PjEzLER0PTB8bmVbNV0scHQ9ODE5MSZEdCxZdD1EdD4+PjEzLElu'@; put 'PTB8bmVbNl0senQ9ODE5MSZJbix5bj1Jbj4+PjEzLHhuPTB8bmVbN10sc249ODE5MSZ4bixCbj14bj4+PjEzLFJuPTB8bmVbOF0sJHQ9ODE5MSZSbixGbj1Sbj4+PjEzLG5pPTB8bmVbOV0sbG49ODE5MSZuaSxqbj1uaT4+PjEzO1MubmVnYXRpdmU9Zy5uZWdhdGl2ZV5DLm5lZ2F0aXZlLFMu'@; put 'bGVuZ3RoPTE5O3ZhciBxcj0oZmUrKHY9TWF0aC5pbXVsKExlLGVuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChMZSwkbikpK01hdGguaW11bChGZSxlbil8MCkpPDwxMyl8MDtmZT0oKHc9TWF0aC5pbXVsKEZlLCRuKSkrKHA+Pj4xMyl8MCkrKHFyPj4+MjYpfDAscXImPTY3MTA4ODYz'@; put 'LHY9TWF0aC5pbXVsKGplLGVuKSxwPShwPU1hdGguaW11bChqZSwkbikpK01hdGguaW11bChXZSxlbil8MCx3PU1hdGguaW11bChXZSwkbik7dmFyIGdpPShmZSsodj12K01hdGguaW11bChMZSxmdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLGZuKXwwKStNYXRoLmltdWwo'@; put 'RmUsZnQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLGZuKXwwKSsocD4+PjEzKXwwKSsoZ2k+Pj4yNil8MCxnaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoWWUsZW4pLHA9KHA9TWF0aC5pbXVsKFllLCRuKSkrTWF0aC5pbXVsKFFlLGVuKXwwLHc9TWF0aC5pbXVsKFFlLCRuKSx2'@; put 'PXYrTWF0aC5pbXVsKGplLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsZm4pfDApK01hdGguaW11bChXZSxmdCl8MCx3PXcrTWF0aC5pbXVsKFdlLGZuKXwwO3ZhciB4cj0oZmUrKHY9ditNYXRoLmltdWwoTGUsd3QpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxYdCl8MCkr'@; put 'TWF0aC5pbXVsKEZlLHd0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxYdCl8MCkrKHA+Pj4xMyl8MCkrKHhyPj4+MjYpfDAseHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFBlLGVuKSxwPShwPU1hdGguaW11bChQZSwkbikpK01hdGguaW11bChiZSxlbil8MCx3PU1hdGguaW11'@; put 'bChiZSwkbiksdj12K01hdGguaW11bChZZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLGZuKXwwKStNYXRoLmltdWwoUWUsZnQpfDAsdz13K01hdGguaW11bChRZSxmbil8MCx2PXYrTWF0aC5pbXVsKGplLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWHQpfDApK01hdGguaW11bChXZSx3'@; put 'dCl8MCx3PXcrTWF0aC5pbXVsKFdlLFh0KXwwO3ZhciBVaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsTnQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxtbil8MCkrTWF0aC5pbXVsKEZlLE50KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxtbil8MCkrKHA+Pj4x'@; put 'Myl8MCkrKFVpPj4+MjYpfDAsVWkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFRlLGVuKSxwPShwPU1hdGguaW11bChUZSwkbikpK01hdGguaW11bChxZSxlbil8MCx3PU1hdGguaW11bChxZSwkbiksdj12K01hdGguaW11bChQZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLGZuKXwwKStNYXRo'@; put 'LmltdWwoYmUsZnQpfDAsdz13K01hdGguaW11bChiZSxmbil8MCx2PXYrTWF0aC5pbXVsKFllLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWHQpfDApK01hdGguaW11bChRZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFFlLFh0KXwwLHY9ditNYXRoLmltdWwoamUsTnQpfDAscD0ocD1wK01hdGgu'@; put 'aW11bChqZSxtbil8MCkrTWF0aC5pbXVsKFdlLE50KXwwLHc9dytNYXRoLmltdWwoV2UsbW4pfDA7dmFyIEtyPShmZSsodj12K01hdGguaW11bChMZSxJdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLFF0KXwwKStNYXRoLmltdWwoRmUsSXQpfDApKTw8MTMpfDA7ZmU9KCh3'@; put 'PXcrTWF0aC5pbXVsKEZlLFF0KXwwKSsocD4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVWUsZW4pLHA9KHA9TWF0aC5pbXVsKFVlLCRuKSkrTWF0aC5pbXVsKGh0LGVuKXwwLHc9TWF0aC5pbXVsKGh0LCRuKSx2PXYrTWF0aC5pbXVsKFRlLGZ0KXwwLHA9'@; put 'KHA9cCtNYXRoLmltdWwoVGUsZm4pfDApK01hdGguaW11bChxZSxmdCl8MCx3PXcrTWF0aC5pbXVsKHFlLGZuKXwwLHY9ditNYXRoLmltdWwoUGUsd3QpfDAscD0ocD1wK01hdGguaW11bChQZSxYdCl8MCkrTWF0aC5pbXVsKGJlLHd0KXwwLHc9dytNYXRoLmltdWwoYmUsWHQpfDAsdj12K01h'@; put 'dGguaW11bChZZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLG1uKXwwKStNYXRoLmltdWwoUWUsTnQpfDAsdz13K01hdGguaW11bChRZSxtbil8MCx2PXYrTWF0aC5pbXVsKGplLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsUXQpfDApK01hdGguaW11bChXZSxJdCl8MCx3PXcrTWF0aC5p'@; put 'bXVsKFdlLFF0KXwwO3ZhciBubz0oZmUrKHY9ditNYXRoLmltdWwoTGUscHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxZdCl8MCkrTWF0aC5pbXVsKEZlLHB0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxZdCl8MCkrKHA+Pj4xMyl8MCkrKG5vPj4+MjYp'@; put 'fDAsbm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKERlLGVuKSxwPShwPU1hdGguaW11bChEZSwkbikpK01hdGguaW11bCh6ZSxlbil8MCx3PU1hdGguaW11bCh6ZSwkbiksdj12K01hdGguaW11bChVZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLGZuKXwwKStNYXRoLmltdWwoaHQsZnQpfDAs'@; put 'dz13K01hdGguaW11bChodCxmbil8MCx2PXYrTWF0aC5pbXVsKFRlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWHQpfDApK01hdGguaW11bChxZSx3dCl8MCx3PXcrTWF0aC5pbXVsKHFlLFh0KXwwLHY9ditNYXRoLmltdWwoUGUsTnQpfDAscD0ocD1wK01hdGguaW11bChQZSxtbil8MCkr'@; put 'TWF0aC5pbXVsKGJlLE50KXwwLHc9dytNYXRoLmltdWwoYmUsbW4pfDAsdj12K01hdGguaW11bChZZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLFF0KXwwKStNYXRoLmltdWwoUWUsSXQpfDAsdz13K01hdGguaW11bChRZSxRdCl8MCx2PXYrTWF0aC5pbXVsKGplLHB0KXwwLHA9KHA9cCtN'@; put 'YXRoLmltdWwoamUsWXQpfDApK01hdGguaW11bChXZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFdlLFl0KXwwO3ZhciBIcj0oZmUrKHY9ditNYXRoLmltdWwoTGUsenQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSx5bil8MCkrTWF0aC5pbXVsKEZlLHp0KXwwKSk8PDEzKXwwO2Zl'@; put 'PSgodz13K01hdGguaW11bChGZSx5bil8MCkrKHA+Pj4xMyl8MCkrKEhyPj4+MjYpfDAsSHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKHV0LGVuKSxwPShwPU1hdGguaW11bCh1dCwkbikpK01hdGguaW11bChNdCxlbil8MCx3PU1hdGguaW11bChNdCwkbiksdj12K01hdGguaW11bChEZSxmdCl8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoemUsZnQpfDAsdz13K01hdGguaW11bCh6ZSxmbil8MCx2PXYrTWF0aC5pbXVsKFVlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsWHQpfDApK01hdGguaW11bChodCx3dCl8MCx3PXcrTWF0aC5pbXVsKGh0LFh0KXwwLHY9'@; put 'ditNYXRoLmltdWwoVGUsTnQpfDAscD0ocD1wK01hdGguaW11bChUZSxtbil8MCkrTWF0aC5pbXVsKHFlLE50KXwwLHc9dytNYXRoLmltdWwocWUsbW4pfDAsdj12K01hdGguaW11bChQZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLFF0KXwwKStNYXRoLmltdWwoYmUsSXQpfDAsdz13K01h'@; put 'dGguaW11bChiZSxRdCl8MCx2PXYrTWF0aC5pbXVsKFllLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWXQpfDApK01hdGguaW11bChRZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFFlLFl0KXwwLHY9ditNYXRoLmltdWwoamUsenQpfDAscD0ocD1wK01hdGguaW11bChqZSx5bil8MCkrTWF0aC5p'@; put 'bXVsKFdlLHp0KXwwLHc9dytNYXRoLmltdWwoV2UseW4pfDA7dmFyIHFpPShmZSsodj12K01hdGguaW11bChMZSxzbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLEJuKXwwKStNYXRoLmltdWwoRmUsc24pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLEJuKXww'@; put 'KSsocD4+PjEzKXwwKSsocWk+Pj4yNil8MCxxaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoUHQsZW4pLHA9KHA9TWF0aC5pbXVsKFB0LCRuKSkrTWF0aC5pbXVsKG9uLGVuKXwwLHc9TWF0aC5pbXVsKG9uLCRuKSx2PXYrTWF0aC5pbXVsKHV0LGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsZm4p'@; put 'fDApK01hdGguaW11bChNdCxmdCl8MCx3PXcrTWF0aC5pbXVsKE10LGZuKXwwLHY9ditNYXRoLmltdWwoRGUsd3QpfDAscD0ocD1wK01hdGguaW11bChEZSxYdCl8MCkrTWF0aC5pbXVsKHplLHd0KXwwLHc9dytNYXRoLmltdWwoemUsWHQpfDAsdj12K01hdGguaW11bChVZSxOdCl8MCxwPShw'@; put 'PXArTWF0aC5pbXVsKFVlLG1uKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsdz13K01hdGguaW11bChodCxtbil8MCx2PXYrTWF0aC5pbXVsKFRlLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsUXQpfDApK01hdGguaW11bChxZSxJdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFF0KXwwLHY9ditNYXRo'@; put 'LmltdWwoUGUscHQpfDAscD0ocD1wK01hdGguaW11bChQZSxZdCl8MCkrTWF0aC5pbXVsKGJlLHB0KXwwLHc9dytNYXRoLmltdWwoYmUsWXQpfDAsdj12K01hdGguaW11bChZZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKFllLHluKXwwKStNYXRoLmltdWwoUWUsenQpfDAsdz13K01hdGguaW11'@; put 'bChRZSx5bil8MCx2PXYrTWF0aC5pbXVsKGplLHNuKXwwLHA9KHA9cCtNYXRoLmltdWwoamUsQm4pfDApK01hdGguaW11bChXZSxzbil8MCx3PXcrTWF0aC5pbXVsKFdlLEJuKXwwO3ZhciBKaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsJHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11'@; put 'bChMZSxGbil8MCkrTWF0aC5pbXVsKEZlLCR0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxGbil8MCkrKHA+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGVuKSxwPShwPU1hdGguaW11bChVdCwkbikpK01hdGguaW11bChibixlbil8'@; put 'MCx3PU1hdGguaW11bChibiwkbiksdj12K01hdGguaW11bChQdCxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LGZuKXwwKStNYXRoLmltdWwob24sZnQpfDAsdz13K01hdGguaW11bChvbixmbil8MCx2PXYrTWF0aC5pbXVsKHV0LHd0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWHQpfDApK01h'@; put 'dGguaW11bChNdCx3dCl8MCx3PXcrTWF0aC5pbXVsKE10LFh0KXwwLHY9ditNYXRoLmltdWwoRGUsTnQpfDAscD0ocD1wK01hdGguaW11bChEZSxtbil8MCkrTWF0aC5pbXVsKHplLE50KXwwLHc9dytNYXRoLmltdWwoemUsbW4pfDAsdj12K01hdGguaW11bChVZSxJdCl8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKFVlLFF0KXwwKStNYXRoLmltdWwoaHQsSXQpfDAsdz13K01hdGguaW11bChodCxRdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWXQpfDApK01hdGguaW11bChxZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFl0KXwwLHY9ditNYXRoLmltdWwo'@; put 'UGUsenQpfDAscD0ocD1wK01hdGguaW11bChQZSx5bil8MCkrTWF0aC5pbXVsKGJlLHp0KXwwLHc9dytNYXRoLmltdWwoYmUseW4pfDAsdj12K01hdGguaW11bChZZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFllLEJuKXwwKStNYXRoLmltdWwoUWUsc24pfDAsdz13K01hdGguaW11bChRZSxC'@; put 'bil8MCx2PXYrTWF0aC5pbXVsKGplLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsRm4pfDApK01hdGguaW11bChXZSwkdCl8MCx3PXcrTWF0aC5pbXVsKFdlLEZuKXwwO3ZhciBhbz0oZmUrKHY9ditNYXRoLmltdWwoTGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxq'@; put 'bil8MCkrTWF0aC5pbXVsKEZlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGFvPj4+MjYpfDAsYW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGZ0KSxwPShwPU1hdGguaW11bChVdCxmbikpK01hdGguaW11bChibixmdCl8MCx3PU1h'@; put 'dGguaW11bChibixmbiksdj12K01hdGguaW11bChQdCx3dCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFh0KXwwKStNYXRoLmltdWwob24sd3QpfDAsdz13K01hdGguaW11bChvbixYdCl8MCx2PXYrTWF0aC5pbXVsKHV0LE50KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsbW4pfDApK01hdGguaW11'@; put 'bChNdCxOdCl8MCx3PXcrTWF0aC5pbXVsKE10LG1uKXwwLHY9ditNYXRoLmltdWwoRGUsSXQpfDAscD0ocD1wK01hdGguaW11bChEZSxRdCl8MCkrTWF0aC5pbXVsKHplLEl0KXwwLHc9dytNYXRoLmltdWwoemUsUXQpfDAsdj12K01hdGguaW11bChVZSxwdCl8MCxwPShwPXArTWF0aC5pbXVs'@; put 'KFVlLFl0KXwwKStNYXRoLmltdWwoaHQscHQpfDAsdz13K01hdGguaW11bChodCxZdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHp0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUseW4pfDApK01hdGguaW11bChxZSx6dCl8MCx3PXcrTWF0aC5pbXVsKHFlLHluKXwwLHY9ditNYXRoLmltdWwoUGUsc24p'@; put 'fDAscD0ocD1wK01hdGguaW11bChQZSxCbil8MCkrTWF0aC5pbXVsKGJlLHNuKXwwLHc9dytNYXRoLmltdWwoYmUsQm4pfDAsdj12K01hdGguaW11bChZZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLEZuKXwwKStNYXRoLmltdWwoUWUsJHQpfDAsdz13K01hdGguaW11bChRZSxGbil8MDt2'@; put 'YXIgcm89KGZlKyh2PXYrTWF0aC5pbXVsKGplLGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoamUsam4pfDApK01hdGguaW11bChXZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoV2Usam4pfDApKyhwPj4+MTMpfDApKyhybz4+PjI2KXwwLHJvJj02NzEwODg2'@; put 'Myx2PU1hdGguaW11bChVdCx3dCkscD0ocD1NYXRoLmltdWwoVXQsWHQpKStNYXRoLmltdWwoYm4sd3QpfDAsdz1NYXRoLmltdWwoYm4sWHQpLHY9ditNYXRoLmltdWwoUHQsTnQpfDAscD0ocD1wK01hdGguaW11bChQdCxtbil8MCkrTWF0aC5pbXVsKG9uLE50KXwwLHc9dytNYXRoLmltdWwo'@; put 'b24sbW4pfDAsdj12K01hdGguaW11bCh1dCxJdCl8MCxwPShwPXArTWF0aC5pbXVsKHV0LFF0KXwwKStNYXRoLmltdWwoTXQsSXQpfDAsdz13K01hdGguaW11bChNdCxRdCl8MCx2PXYrTWF0aC5pbXVsKERlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsWXQpfDApK01hdGguaW11bCh6ZSxw'@; put 'dCl8MCx3PXcrTWF0aC5pbXVsKHplLFl0KXwwLHY9ditNYXRoLmltdWwoVWUsenQpfDAscD0ocD1wK01hdGguaW11bChVZSx5bil8MCkrTWF0aC5pbXVsKGh0LHp0KXwwLHc9dytNYXRoLmltdWwoaHQseW4pfDAsdj12K01hdGguaW11bChUZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFRlLEJu'@; put 'KXwwKStNYXRoLmltdWwocWUsc24pfDAsdz13K01hdGguaW11bChxZSxCbil8MCx2PXYrTWF0aC5pbXVsKFBlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoUGUsRm4pfDApK01hdGguaW11bChiZSwkdCl8MCx3PXcrTWF0aC5pbXVsKGJlLEZuKXwwO3ZhciBpbz0oZmUrKHY9ditNYXRoLmltdWwo'@; put 'WWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChZZSxqbil8MCkrTWF0aC5pbXVsKFFlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChRZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LE50KSxwPShw'@; put 'PU1hdGguaW11bChVdCxtbikpK01hdGguaW11bChibixOdCl8MCx3PU1hdGguaW11bChibixtbiksdj12K01hdGguaW11bChQdCxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFF0KXwwKStNYXRoLmltdWwob24sSXQpfDAsdz13K01hdGguaW11bChvbixRdCl8MCx2PXYrTWF0aC5pbXVsKHV0'@; put 'LHB0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWXQpfDApK01hdGguaW11bChNdCxwdCl8MCx3PXcrTWF0aC5pbXVsKE10LFl0KXwwLHY9ditNYXRoLmltdWwoRGUsenQpfDAscD0ocD1wK01hdGguaW11bChEZSx5bil8MCkrTWF0aC5pbXVsKHplLHp0KXwwLHc9dytNYXRoLmltdWwoemUseW4p'@; put 'fDAsdj12K01hdGguaW11bChVZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFVlLEJuKXwwKStNYXRoLmltdWwoaHQsc24pfDAsdz13K01hdGguaW11bChodCxCbil8MCx2PXYrTWF0aC5pbXVsKFRlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsRm4pfDApK01hdGguaW11bChxZSwkdCl8MCx3'@; put 'PXcrTWF0aC5pbXVsKHFlLEZuKXwwO3ZhciBHaT0oZmUrKHY9ditNYXRoLmltdWwoUGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQZSxqbil8MCkrTWF0aC5pbXVsKGJlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChiZSxqbil8MCkrKHA+Pj4xMyl8MCkr'@; put 'KEdpPj4+MjYpfDAsR2kmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LEl0KSxwPShwPU1hdGguaW11bChVdCxRdCkpK01hdGguaW11bChibixJdCl8MCx3PU1hdGguaW11bChibixRdCksdj12K01hdGguaW11bChQdCxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFl0KXwwKStNYXRoLmltdWwo'@; put 'b24scHQpfDAsdz13K01hdGguaW11bChvbixZdCl8MCx2PXYrTWF0aC5pbXVsKHV0LHp0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQseW4pfDApK01hdGguaW11bChNdCx6dCl8MCx3PXcrTWF0aC5pbXVsKE10LHluKXwwLHY9ditNYXRoLmltdWwoRGUsc24pfDAscD0ocD1wK01hdGguaW11bChE'@; put 'ZSxCbil8MCkrTWF0aC5pbXVsKHplLHNuKXwwLHc9dytNYXRoLmltdWwoemUsQm4pfDAsdj12K01hdGguaW11bChVZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLEZuKXwwKStNYXRoLmltdWwoaHQsJHQpfDAsdz13K01hdGguaW11bChodCxGbil8MDt2YXIgaG89KGZlKyh2PXYrTWF0aC5p'@; put 'bXVsKFRlLGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoVGUsam4pfDApK01hdGguaW11bChxZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwocWUsam4pfDApKyhwPj4+MTMpfDApKyhobz4+PjI2KXwwLGhvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCxwdCks'@; put 'cD0ocD1NYXRoLmltdWwoVXQsWXQpKStNYXRoLmltdWwoYm4scHQpfDAsdz1NYXRoLmltdWwoYm4sWXQpLHY9ditNYXRoLmltdWwoUHQsenQpfDAscD0ocD1wK01hdGguaW11bChQdCx5bil8MCkrTWF0aC5pbXVsKG9uLHp0KXwwLHc9dytNYXRoLmltdWwob24seW4pfDAsdj12K01hdGguaW11'@; put 'bCh1dCxzbil8MCxwPShwPXArTWF0aC5pbXVsKHV0LEJuKXwwKStNYXRoLmltdWwoTXQsc24pfDAsdz13K01hdGguaW11bChNdCxCbil8MCx2PXYrTWF0aC5pbXVsKERlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsRm4pfDApK01hdGguaW11bCh6ZSwkdCl8MCx3PXcrTWF0aC5pbXVsKHpl'@; put 'LEZuKXwwO3ZhciB5cj0oZmUrKHY9ditNYXRoLmltdWwoVWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChVZSxqbil8MCkrTWF0aC5pbXVsKGh0LGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChodCxqbil8MCkrKHA+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXIm'@; put 'PTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHp0KSxwPShwPU1hdGguaW11bChVdCx5bikpK01hdGguaW11bChibix6dCl8MCx3PU1hdGguaW11bChibix5biksdj12K01hdGguaW11bChQdCxzbil8MCxwPShwPXArTWF0aC5pbXVsKFB0LEJuKXwwKStNYXRoLmltdWwob24sc24pfDAsdz13K01h'@; put 'dGguaW11bChvbixCbil8MCx2PXYrTWF0aC5pbXVsKHV0LCR0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsRm4pfDApK01hdGguaW11bChNdCwkdCl8MCx3PXcrTWF0aC5pbXVsKE10LEZuKXwwO3ZhciBQaT0oZmUrKHY9ditNYXRoLmltdWwoRGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01h'@; put 'dGguaW11bChEZSxqbil8MCkrTWF0aC5pbXVsKHplLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bCh6ZSxqbil8MCkrKHA+Pj4xMyl8MCkrKFBpPj4+MjYpfDAsUGkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHNuKSxwPShwPU1hdGguaW11bChVdCxCbikpK01hdGguaW11bChi'@; put 'bixzbil8MCx3PU1hdGguaW11bChibixCbiksdj12K01hdGguaW11bChQdCwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LEZuKXwwKStNYXRoLmltdWwob24sJHQpfDAsdz13K01hdGguaW11bChvbixGbil8MDt2YXIgTG89KGZlKyh2PXYrTWF0aC5pbXVsKHV0LGxuKXwwKXwwKSsoKDgxOTEm'@; put 'KHA9KHA9cCtNYXRoLmltdWwodXQsam4pfDApK01hdGguaW11bChNdCxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoTXQsam4pfDApKyhwPj4+MTMpfDApKyhMbz4+PjI2KXwwLExvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCwkdCkscD0ocD1NYXRoLmltdWwoVXQsRm4pKStN'@; put 'YXRoLmltdWwoYm4sJHQpfDAsdz1NYXRoLmltdWwoYm4sRm4pO3ZhciBocz0oZmUrKHY9ditNYXRoLmltdWwoUHQsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQdCxqbil8MCkrTWF0aC5pbXVsKG9uLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChvbixqbil8'@; put 'MCkrKHA+Pj4xMyl8MCkrKGhzPj4+MjYpfDAsaHMmPTY3MTA4ODYzO3ZhciBycz0oZmUrKHY9TWF0aC5pbXVsKFV0LGxuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChVdCxqbikpK01hdGguaW11bChibixsbil8MCkpPDwxMyl8MDtyZXR1cm4gZmU9KCh3PU1hdGguaW11bChibixqbikp'@; put 'KyhwPj4+MTMpfDApKyhycz4+PjI2KXwwLHJzJj02NzEwODg2MyxkZVswXT1xcixkZVsxXT1naSxkZVsyXT14cixkZVszXT1VaSxkZVs0XT1LcixkZVs1XT1ubyxkZVs2XT1IcixkZVs3XT1xaSxkZVs4XT1KaSxkZVs5XT1hbyxkZVsxMF09cm8sZGVbMTFdPWlvLGRlWzEyXT1HaSxkZVsxM109'@; put 'aG8sZGVbMTRdPXlyLGRlWzE1XT1QaSxkZVsxNl09TG8sZGVbMTddPWhzLGRlWzE4XT1ycywwIT09ZmUmJihkZVsxOV09ZmUsUy5sZW5ndGgrKyksU307ZnVuY3Rpb24gb2UoZyxDLFMpe3JldHVybihuZXcgc2UpLm11bHAoZyxDLFMpfWZ1bmN0aW9uIHNlKGcsQyl7dGhpcy54PWcsdGhpcy55'@; put 'PUN9TWF0aC5pbXVsfHwodGU9ZWUpLEUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGcsQyl7dmFyIHY9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09Zy5sZW5ndGg/dGUodGhpcyxnLEMpOnY8NjM/ZWUodGhpcyxnLEMpOnY8MTAyND9mdW5jdGlv'@; put 'bihwLHcsSil7Si5uZWdhdGl2ZT13Lm5lZ2F0aXZlXnAubmVnYXRpdmUsSi5sZW5ndGg9cC5sZW5ndGgrdy5sZW5ndGg7Zm9yKHZhciBuZT0wLGRlPTAsZmU9MDtmZTxKLmxlbmd0aC0xO2ZlKyspe3ZhciB4ZT1kZTtkZT0wO2Zvcih2YXIgTGU9NjcxMDg4NjMmbmUsRmU9TWF0aC5taW4oZmUs'@; put 'dy5sZW5ndGgtMSksT2U9TWF0aC5tYXgoMCxmZS1wLmxlbmd0aCsxKTtPZTw9RmU7T2UrKyl7dmFyIFdlPSgwfHAud29yZHNbZmUtT2VdKSooMHx3LndvcmRzW09lXSksS2U9NjcxMDg4NjMmV2U7TGU9NjcxMDg4NjMmKEtlPUtlK0xlfDApLGRlKz0oeGU9KHhlPXhlKyhXZS82NzEwODg2NHww'@; put 'KXwwKSsoS2U+Pj4yNil8MCk+Pj4yNix4ZSY9NjcxMDg4NjN9Si53b3Jkc1tmZV09TGUsbmU9eGUseGU9ZGV9cmV0dXJuIDAhPT1uZT9KLndvcmRzW2ZlXT1uZTpKLmxlbmd0aC0tLEouc3RyaXAoKX0odGhpcyxnLEMpOm9lKHRoaXMsZyxDKX0sc2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rp'@; put 'b24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPUUucHJvdG90eXBlLl9jb3VudEJpdHMoZyktMSx2PTA7djxnO3YrKylDW3ZdPXRoaXMucmV2QmluKHYsUyxnKTtyZXR1cm4gQ30sc2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLEMsUyl7aWYoMD09PWd8fGc9PT1TLTEpcmV0dXJu'@; put 'IGc7Zm9yKHZhciB2PTAscD0wO3A8QztwKyspdnw9KDEmZyk8PEMtcC0xLGc+Pj0xO3JldHVybiB2fSxzZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLEMsUyx2LHAsdyl7Zm9yKHZhciBKPTA7Sjx3O0orKyl2W0pdPUNbZ1tKXV0scFtKXT1TW2dbSl1dfSxzZS5wcm90b3R5cGUudHJh'@; put 'bnNmb3JtPWZ1bmN0aW9uKGcsQyxTLHYscCx3KXt0aGlzLnBlcm11dGUodyxnLEMsUyx2LHApO2Zvcih2YXIgSj0xO0o8cDtKPDw9MSlmb3IodmFyIG5lPUo8PDEsZGU9TWF0aC5jb3MoMipNYXRoLlBJL25lKSxmZT1NYXRoLnNpbigyKk1hdGguUEkvbmUpLHhlPTA7eGU8cDt4ZSs9bmUpZm9y'@; put 'KHZhciBMZT1kZSxGZT1mZSxPZT0wO09lPEo7T2UrKyl7dmFyIGplPVNbeGUrT2VdLFdlPXZbeGUrT2VdLEtlPVNbeGUrT2UrSl0sWWU9dlt4ZStPZStKXSxRZT1MZSpLZS1GZSpZZTtZZT1MZSpZZStGZSpLZSxTW3hlK09lXT1qZSsoS2U9UWUpLHZbeGUrT2VdPVdlK1llLFNbeGUrT2UrSl09'@; put 'amUtS2Usdlt4ZStPZStKXT1XZS1ZZSxPZSE9PW5lJiYoUWU9ZGUqTGUtZmUqRmUsRmU9ZGUqRmUrZmUqTGUsTGU9UWUpfX0sc2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcsQyl7dmFyIFM9MXxNYXRoLm1heChDLGcpLHY9MSZTLHA9MDtmb3IoUz1TLzJ8MDtTO1M+Pj49MSlw'@; put 'Kys7cmV0dXJuIDE8PHArMSt2fSxzZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGcsQyxTKXtpZighKFM8PTEpKWZvcih2YXIgdj0wO3Y8Uy8yO3YrKyl7dmFyIHA9Z1t2XTtnW3ZdPWdbUy12LTFdLGdbUy12LTFdPXAscD1DW3ZdLENbdl09LUNbUy12LTFdLENbUy12LTFdPS1wfX0s'@; put 'c2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLEMpe2Zvcih2YXIgUz0wLHY9MDt2PEMvMjt2Kyspe3ZhciBwPTgxOTIqTWF0aC5yb3VuZChnWzIqdisxXS9DKStNYXRoLnJvdW5kKGdbMip2XS9DKStTO2dbdl09NjcxMDg4NjMmcCxTPXA8NjcxMDg4NjQ/MDpwLzY3MTA4ODY0'@; put 'fDB9cmV0dXJuIGd9LHNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9MDt3PEM7dysrKVNbMip3XT04MTkxJihwKz0wfGdbd10pLFNbMip3KzFdPTgxOTEmKHA+Pj49MTMpLHA+Pj49MTM7Zm9yKHc9MipDO3c8djsrK3cpU1t3XT0wO0koMD09'@; put 'PXApLEkoMD09KC04MTkyJnApKX0sc2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPTA7UzxnO1MrKylDW1NdPTA7cmV0dXJuIEN9LHNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj0yKnRoaXMuZ3Vlc3NMZW4xM2IoZy5s'@; put 'ZW5ndGgsQy5sZW5ndGgpLHA9dGhpcy5tYWtlUkJUKHYpLHc9dGhpcy5zdHViKHYpLEo9bmV3IEFycmF5KHYpLG5lPW5ldyBBcnJheSh2KSxkZT1uZXcgQXJyYXkodiksZmU9bmV3IEFycmF5KHYpLHhlPW5ldyBBcnJheSh2KSxMZT1uZXcgQXJyYXkodiksRmU9Uy53b3JkcztGZS5sZW5ndGg9'@; put 'dix0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0aCxKLHYpLHRoaXMuY29udmVydDEzYihDLndvcmRzLEMubGVuZ3RoLGZlLHYpLHRoaXMudHJhbnNmb3JtKEosdyxuZSxkZSx2LHApLHRoaXMudHJhbnNmb3JtKGZlLHcseGUsTGUsdixwKTtmb3IodmFyIE9lPTA7T2U8djtPZSsrKXt2'@; put 'YXIgamU9bmVbT2VdKnhlW09lXS1kZVtPZV0qTGVbT2VdO2RlW09lXT1uZVtPZV0qTGVbT2VdK2RlW09lXSp4ZVtPZV0sbmVbT2VdPWplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShuZSxkZSx2KSx0aGlzLnRyYW5zZm9ybShuZSxkZSxGZSx3LHYscCksdGhpcy5jb25qdWdhdGUoRmUsdyx2KSx0'@; put 'aGlzLm5vcm1hbGl6ZTEzYihGZSx2KSxTLm5lZ2F0aXZlPWcubmVnYXRpdmVeQy5uZWdhdGl2ZSxTLmxlbmd0aD1nLmxlbmd0aCtDLmxlbmd0aCxTLnN0cmlwKCl9LEUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXko'@; put 'dGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8oZyxDKX0sRS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLG9lKHRoaXMsZyxDKX0sRS5wcm90b3R5cGUuaW11bD1m'@; put 'dW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKGcsdGhpcyl9LEUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnKSxJKGc8NjcxMDg4NjQpO2Zvcih2YXIgQz0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIHY9KDB8dGhpcy53b3Jk'@; put 'c1tTXSkqZyxwPSg2NzEwODg2MyZ2KSsoNjcxMDg4NjMmQyk7Qz4+PTI2LEMrPXYvNjcxMDg4NjR8MCxDKz1wPj4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZwfXJldHVybiAwIT09QyYmKHRoaXMud29yZHNbU109Qyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5tdWxuPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oZyl9LEUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sRS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sRS5wcm90b3R5cGUucG93'@; put 'PWZ1bmN0aW9uKGcpe3ZhciBDPWZ1bmN0aW9uKHcpe2Zvcih2YXIgSj1uZXcgQXJyYXkody5iaXRMZW5ndGgoKSksbmU9MDtuZTxKLmxlbmd0aDtuZSsrKXt2YXIgZmU9bmUlMjY7SltuZV09KHcud29yZHNbbmUvMjZ8MF0mMTw8ZmUpPj4+ZmV9cmV0dXJuIEp9KGcpO2lmKDA9PT1DLmxlbmd0'@; put 'aClyZXR1cm4gbmV3IEUoMSk7Zm9yKHZhciBTPXRoaXMsdj0wO3Y8Qy5sZW5ndGgmJjA9PT1DW3ZdO3YrKyxTPVMuc3FyKCkpO2lmKCsrdjxDLmxlbmd0aClmb3IodmFyIHA9Uy5zcXIoKTt2PEMubGVuZ3RoO3YrKyxwPXAuc3FyKCkpMCE9PUNbdl0mJihTPVMubXVsKHApKTtyZXR1cm4gU30s'@; put 'RS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQyxTPWclMjYsdj0oZy1TKS8yNixwPTY3MTA4ODYzPj4+MjYtUzw8MjYtUztpZigwIT09Uyl7dmFyIHc9MDtmb3IoQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgSj10aGlzLndv'@; put 'cmRzW0NdJnA7dGhpcy53b3Jkc1tDXT0oMHx0aGlzLndvcmRzW0NdKS1KPDxTfHcsdz1KPj4+MjYtU313JiYodGhpcy53b3Jkc1tDXT13LHRoaXMubGVuZ3RoKyspfWlmKDAhPT12KXtmb3IoQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0tKXRoaXMud29yZHNbQyt2XT10aGlzLndvcmRzW0NdO2Zv'@; put 'cihDPTA7Qzx2O0MrKyl0aGlzLndvcmRzW0NdPTA7dGhpcy5sZW5ndGgrPXZ9cmV0dXJuIHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSxFLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rp'@; put 'b24oZyxDLFMpe3ZhciB2O0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKSx2PUM/KEMtQyUyNikvMjY6MDt2YXIgcD1nJTI2LHc9TWF0aC5taW4oKGctcCkvMjYsdGhpcy5sZW5ndGgpLEo9NjcxMDg4NjNeNjcxMDg4NjM+Pj5wPDxwLG5lPVM7aWYodi09dyx2PU1hdGgubWF4KDAsdiksbmUp'@; put 'e2Zvcih2YXIgZGU9MDtkZTx3O2RlKyspbmUud29yZHNbZGVdPXRoaXMud29yZHNbZGVdO25lLmxlbmd0aD13fWlmKDAhPT13KWlmKHRoaXMubGVuZ3RoPncpZm9yKHRoaXMubGVuZ3RoLT13LGRlPTA7ZGU8dGhpcy5sZW5ndGg7ZGUrKyl0aGlzLndvcmRzW2RlXT10aGlzLndvcmRzW2RlK3dd'@; put 'O2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIGZlPTA7Zm9yKGRlPXRoaXMubGVuZ3RoLTE7ZGU+PTAmJigwIT09ZmV8fGRlPj12KTtkZS0tKXt2YXIgeGU9MHx0aGlzLndvcmRzW2RlXTt0aGlzLndvcmRzW2RlXT1mZTw8MjYtcHx4ZT4+PnAsZmU9eGUmSn1yZXR1cm4g'@; put 'bmUmJjAhPT1mZSYmKG5lLndvcmRzW25lLmxlbmd0aCsrXT1mZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyxDLFMpe3JldHVybiBJKDA9PT10aGlzLm5lZ2F0aXZlKSx0'@; put 'aGlzLml1c2hybihnLEMsUyl9LEUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sRS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZyl9LEUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24o'@; put 'Zyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihnKX0sRS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LEUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9'@; put 'KGctQykvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9U3x8ISh0aGlzLndvcmRzW1NdJjE8PEMpKX0sRS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUs'@; put 'ImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1TP3RoaXM6KDAhPT1DJiZTKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oUyx0aGlzLmxlbmd0aCksMCE9PUMmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+'@; put 'PkM8PEMpLHRoaXMuc3RyaXAoKSl9LEUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSxFLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzwwP3RoaXMu'@; put 'aXN1Ym4oLWcpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5uZWdhdGl2'@; put 'ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGcpfSxFLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0NdPj02NzEwODg2NDtDKyspdGhpcy53b3Jkc1tDXS09NjcxMDg4NjQsQz09PXRoaXMubGVu'@; put 'Z3RoLTE/dGhpcy53b3Jkc1tDKzFdPTE6dGhpcy53b3Jkc1tDKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEMrMSksdGhpc30sRS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYoSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzww'@; put 'KXJldHVybiB0aGlzLmlhZGRuKC1nKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRz'@; put 'WzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbQ108MDtDKyspdGhpcy53b3Jkc1tDXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tDKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmFk'@; put 'ZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihnKX0sRS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSxFLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxFLnBy'@; put 'b3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sRS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdixwO3RoaXMuX2V4cGFuZChnLmxlbmd0aCtTKTt2YXIgSj0wO2Zvcih2PTA7djxnLmxlbmd0aDt2Kyspe3A9KDB8dGhp'@; put 'cy53b3Jkc1t2K1NdKStKO3ZhciBuZT0oMHxnLndvcmRzW3ZdKSpDO0o9KChwLT02NzEwODg2MyZuZSk+PjI2KS0obmUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnB9Zm9yKDt2PHRoaXMubGVuZ3RoLVM7disrKUo9KHA9KDB8dGhpcy53b3Jkc1t2K1NdKStKKT4+MjYs'@; put 'dGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnA7aWYoMD09PUopcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoSSgtMT09PUopLEo9MCx2PTA7djx0aGlzLmxlbmd0aDt2KyspSj0ocD0tKDB8dGhpcy53b3Jkc1t2XSkrSik+PjI2LHRoaXMud29yZHNbdl09NjcxMDg4NjMmcDtyZXR1cm4gdGhpcy5u'@; put 'ZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oZyxDKXt2YXIgUyx2PXRoaXMuY2xvbmUoKSxwPWcsdz0wfHAud29yZHNbcC5sZW5ndGgtMV07MCE9KFM9MjYtdGhpcy5fY291bnRCaXRzKHcpKSYmKHA9cC51c2hsbihTKSx2Lml1c2hsbihTKSx3'@; put 'PTB8cC53b3Jkc1twLmxlbmd0aC0xXSk7dmFyIEosbmU9di5sZW5ndGgtcC5sZW5ndGg7aWYoIm1vZCIhPT1DKXsoSj1uZXcgRShudWxsKSkubGVuZ3RoPW5lKzEsSi53b3Jkcz1uZXcgQXJyYXkoSi5sZW5ndGgpO2Zvcih2YXIgZGU9MDtkZTxKLmxlbmd0aDtkZSsrKUoud29yZHNbZGVdPTB9'@; put 'dmFyIGZlPXYuY2xvbmUoKS5faXNobG5zdWJtdWwocCwxLG5lKTswPT09ZmUubmVnYXRpdmUmJih2PWZlLEomJihKLndvcmRzW25lXT0xKSk7Zm9yKHZhciB4ZT1uZS0xO3hlPj0wO3hlLS0pe3ZhciBMZT02NzEwODg2NCooMHx2LndvcmRzW3AubGVuZ3RoK3hlXSkrKDB8di53b3Jkc1twLmxl'@; put 'bmd0aCt4ZS0xXSk7Zm9yKExlPU1hdGgubWluKExlL3d8MCw2NzEwODg2Myksdi5faXNobG5zdWJtdWwocCxMZSx4ZSk7MCE9PXYubmVnYXRpdmU7KUxlLS0sdi5uZWdhdGl2ZT0wLHYuX2lzaGxuc3VibXVsKHAsMSx4ZSksdi5pc1plcm8oKXx8KHYubmVnYXRpdmVePTEpO0omJihKLndvcmRz'@; put 'W3hlXT1MZSl9cmV0dXJuIEomJkouc3RyaXAoKSx2LnN0cmlwKCksImRpdiIhPT1DJiYwIT09UyYmdi5pdXNocm4oUykse2RpdjpKfHxudWxsLG1vZDp2fX0sRS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcsQyxTKXtyZXR1cm4gSSghZy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2'@; put 'Om5ldyBFKDApLG1vZDpuZXcgRSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcsQyksIm1vZCIhPT1DJiYodj13LmRpdi5uZWcoKSksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pYWRkKGcp'@; put 'KSx7ZGl2OnYsbW9kOnB9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmU/KHc9dGhpcy5kaXZtb2QoZy5uZWcoKSxDKSwibW9kIiE9PUMmJih2PXcuZGl2Lm5lZygpKSx7ZGl2OnYsbW9kOncubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2'@; put 'bW9kKGcubmVnKCksQyksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pc3ViKGcpKSx7ZGl2OncuZGl2LG1vZDpwfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgRSgwKSxtb2Q6dGhpc306MT09PWcubGVuZ3RoPyJk'@; put 'aXYiPT09Qz97ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1DP3tkaXY6bnVsbCxtb2Q6bmV3IEUodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyBFKHRoaXMubW9kbihnLndvcmRzWzBdKSl9OnRoaXMu'@; put 'X3dvcmREaXYoZyxDKTt2YXIgdixwLHd9LEUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSxFLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEpLm1vZH0sRS5wcm90b3R5cGUu'@; put 'dW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMCkubW9kfSxFLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgQz10aGlzLmRpdm1vZChnKTtpZihDLm1vZC5pc1plcm8oKSlyZXR1cm4gQy5kaXY7dmFyIFM9MCE9PUMuZGl2Lm5lZ2F0aXZlP0Mu'@; put 'bW9kLmlzdWIoZyk6Qy5tb2Qsdj1nLnVzaHJuKDEpLHA9Zy5hbmRsbigxKSx3PVMuY21wKHYpO3JldHVybiB3PDB8fDE9PT1wJiYwPT09dz9DLmRpdjowIT09Qy5kaXYubmVnYXRpdmU/Qy5kaXYuaXN1Ym4oMSk6Qy5kaXYuaWFkZG4oMSl9LEUucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZyl7'@; put 'SShnPD02NzEwODg2Myk7Zm9yKHZhciBDPTY3MTA4ODY0JWcsUz0wLHY9dGhpcy5sZW5ndGgtMTt2Pj0wO3YtLSlTPShDKlMrKDB8dGhpcy53b3Jkc1t2XSkpJWc7cmV0dXJuIFN9LEUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe0koZzw9NjcxMDg4NjMpO2Zvcih2YXIgQz0wLFM9dGhp'@; put 'cy5sZW5ndGgtMTtTPj0wO1MtLSl7dmFyIHY9KDB8dGhpcy53b3Jkc1tTXSkrNjcxMDg4NjQqQzt0aGlzLndvcmRzW1NdPXYvZ3wwLEM9diVnfXJldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sRS5w'@; put 'cm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHY9bmV3IEUoMSkscD1uZXcgRSgwKSx3PW5ldyBFKDApLEo9bmV3'@; put 'IEUoMSksbmU9MDtDLmlzRXZlbigpJiZTLmlzRXZlbigpOylDLml1c2hybigxKSxTLml1c2hybigxKSwrK25lO2Zvcih2YXIgZGU9Uy5jbG9uZSgpLGZlPUMuY2xvbmUoKTshQy5pc1plcm8oKTspe2Zvcih2YXIgeGU9MCxMZT0xOyEoQy53b3Jkc1swXSZMZSkmJnhlPDI2OysreGUsTGU8PD0x'@; put 'KTtpZih4ZT4wKWZvcihDLml1c2hybih4ZSk7eGUtLSA+MDspKHYuaXNPZGQoKXx8cC5pc09kZCgpKSYmKHYuaWFkZChkZSkscC5pc3ViKGZlKSksdi5pdXNocm4oMSkscC5pdXNocm4oMSk7Zm9yKHZhciBGZT0wLE9lPTE7IShTLndvcmRzWzBdJk9lKSYmRmU8MjY7KytGZSxPZTw8PTEpO2lm'@; put 'KEZlPjApZm9yKFMuaXVzaHJuKEZlKTtGZS0tID4wOykody5pc09kZCgpfHxKLmlzT2RkKCkpJiYody5pYWRkKGRlKSxKLmlzdWIoZmUpKSx3Lml1c2hybigxKSxKLml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHYuaXN1Yih3KSxwLmlzdWIoSikpOihTLmlzdWIoQyksdy5pc3Vi'@; put 'KHYpLEouaXN1YihwKSl9cmV0dXJue2E6dyxiOkosZ2NkOlMuaXVzaGxuKG5lKX19LEUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMu'@; put 'Y2xvbmUoKTtmb3IodmFyIHYscD1uZXcgRSgxKSx3PW5ldyBFKDApLEo9Uy5jbG9uZSgpO0MuY21wbigxKT4wJiZTLmNtcG4oMSk+MDspe2Zvcih2YXIgbmU9MCxkZT0xOyEoQy53b3Jkc1swXSZkZSkmJm5lPDI2OysrbmUsZGU8PD0xKTtpZihuZT4wKWZvcihDLml1c2hybihuZSk7bmUtLSA+'@; put 'MDspcC5pc09kZCgpJiZwLmlhZGQoSikscC5pdXNocm4oMSk7Zm9yKHZhciBmZT0wLHhlPTE7IShTLndvcmRzWzBdJnhlKSYmZmU8MjY7KytmZSx4ZTw8PTEpO2lmKGZlPjApZm9yKFMuaXVzaHJuKGZlKTtmZS0tID4wOyl3LmlzT2RkKCkmJncuaWFkZChKKSx3Lml1c2hybigxKTtDLmNtcChT'@; put 'KT49MD8oQy5pc3ViKFMpLHAuaXN1Yih3KSk6KFMuaXN1YihDKSx3LmlzdWIocCkpfXJldHVybih2PTA9PT1DLmNtcG4oMSk/cDp3KS5jbXBuKDApPDAmJnYuaWFkZChnKSx2fSxFLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMoKTtpZihn'@; put 'LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBDPXRoaXMuY2xvbmUoKSxTPWcuY2xvbmUoKTtDLm5lZ2F0aXZlPTAsUy5uZWdhdGl2ZT0wO2Zvcih2YXIgdj0wO0MuaXNFdmVuKCkmJlMuaXNFdmVuKCk7disrKUMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtDLmlz'@; put 'RXZlbigpOylDLml1c2hybigxKTtmb3IoO1MuaXNFdmVuKCk7KVMuaXVzaHJuKDEpO3ZhciBwPUMuY21wKFMpO2lmKHA8MCl7dmFyIHc9QztDPVMsUz13fWVsc2UgaWYoMD09PXB8fDA9PT1TLmNtcG4oMSkpYnJlYWs7Qy5pc3ViKFMpfXJldHVybiBTLml1c2hsbih2KX0sRS5wcm90b3R5cGUu'@; put 'aW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5lZ2NkKGcpLmEudW1vZChnKX0sRS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxFLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0s'@; put 'RS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMud29yZHNbMF0mZ30sRS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciBDPWclMjYsUz0oZy1DKS8yNix2PTE8PEM7aWYodGhpcy5sZW5ndGg8PVMpcmV0dXJuIHRoaXMu'@; put 'X2V4cGFuZChTKzEpLHRoaXMud29yZHNbU118PXYsdGhpcztmb3IodmFyIHA9dix3PVM7MCE9PXAmJnc8dGhpcy5sZW5ndGg7dysrKXt2YXIgSj0wfHRoaXMud29yZHNbd107cD0oSis9cCk+Pj4yNix0aGlzLndvcmRzW3ddPUomPTY3MTA4ODYzfXJldHVybiAwIT09cCYmKHRoaXMud29yZHNb'@; put 'd109cCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sRS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgQyxTPWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIVMp'@; put 'cmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJlMpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpQz0xO2Vsc2V7UyYmKGc9LWcpLEkoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHY9MHx0aGlzLndvcmRzWzBdO0M9dj09PWc/MDp2PGc/LTE6'@; put 'MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtQzpDfSxFLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgQz10aGlz'@; put 'LnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LUM6Q30sRS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEM9MCxTPXRoaXMubGVuZ3RoLTE7'@; put 'Uz49MDtTLS0pe3ZhciB2PTB8dGhpcy53b3Jkc1tTXSxwPTB8Zy53b3Jkc1tTXTtpZih2IT09cCl7djxwP0M9LTE6dj5wJiYoQz0xKTticmVha319cmV0dXJuIEN9LEUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sRS5wcm90b3R5cGUuZ3Q9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcChnKX0sRS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSxFLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSxFLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LEUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LEUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sRS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0'@; put 'aGlzLmNtcChnKTw9MH0sRS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSxFLnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSxFLnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IEgoZyl9LEUucHJvdG90eXBl'@; put 'LnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcpfSxF'@; put 'LnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sRS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LEUucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24o'@; put 'Zyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJl'@; put 'cnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9u'@; put 'KGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1i'@; put 'ZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9LEUu'@; put 'cHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LEUucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBv'@; put 'bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu'@; put 'X3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sRS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhp'@; put 'cyl9LEUucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIEkodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIGhlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdWUoZyxDKXt0aGlz'@; put 'Lm5hbWU9Zyx0aGlzLnA9bmV3IEUoQywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IEUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIGNlKCl7dWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZm'@; put 'ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBHKCl7dWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5j'@; put 'dGlvbiBiKCl7dWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBEKCl7dWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZm'@; put 'ZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBIKGcpe2lmKCJzdHJpbmciPT10eXBlb2YgZyl7dmFyIEM9RS5fcHJpbWUoZyk7dGhpcy5tPUMucCx0aGlzLnByaW1lPUN9ZWxzZSBJKGcuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09Zyx0'@; put 'aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTihnKXtILmNhbGwodGhpcyxnKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBFKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIy'@; put 'PXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0'@; put 'aGlzLm1pbnYpfXVlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IEUobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSx1ZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgQyxTPWc7ZG97dGhpcy5zcGxpdChT'@; put 'LHRoaXMudG1wKSxDPShTPShTPXRoaXMuaW11bEsoUykpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShDPnRoaXMubik7dmFyIHY9Qzx0aGlzLm4/LTE6Uy51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT12PyhTLndvcmRzWzBdPTAsUy5sZW5ndGg9MSk6dj4wP1MuaXN1Yih0aGlz'@; put 'LnApOnZvaWQgMCE9PVMuc3RyaXA/Uy5zdHJpcCgpOlMuX3N0cmlwKCksU30sdWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcsQyl7Zy5pdXNocm4odGhpcy5uLDAsQyl9LHVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LGsoY2UsdWUpLGNl'@; put 'LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLEMpe2Zvcih2YXIgUz00MTk0MzAzLHY9TWF0aC5taW4oZy5sZW5ndGgsOSkscD0wO3A8djtwKyspQy53b3Jkc1twXT1nLndvcmRzW3BdO2lmKEMubGVuZ3RoPXYsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcubGVuZ3Ro'@; put 'PTEpO3ZhciB3PWcud29yZHNbOV07Zm9yKEMud29yZHNbQy5sZW5ndGgrK109dyZTLHA9MTA7cDxnLmxlbmd0aDtwKyspe3ZhciBKPTB8Zy53b3Jkc1twXTtnLndvcmRzW3AtMTBdPShKJlMpPDw0fHc+Pj4yMix3PUp9Zy53b3Jkc1twLTEwXT13Pj4+PTIyLGcubGVuZ3RoLT0wPT09dyYmZy5s'@; put 'ZW5ndGg+MTA/MTA6OX0sY2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgQz0wLFM9MDtTPGcubGVuZ3RoO1MrKyl7dmFyIHY9MHxnLndvcmRzW1NdO2cud29yZHNbU109Njcx'@; put 'MDg4NjMmKEMrPTk3Nyp2KSxDPTY0KnYrKEMvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sayhHLHVlKSxrKGIsdWUpLGsoRCx1ZSksRC5wcm90b3R5cGUuaW11bEs9'@; put 'ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPTAsUz0wO1M8Zy5sZW5ndGg7UysrKXt2YXIgdj0xOSooMHxnLndvcmRzW1NdKStDLHA9NjcxMDg4NjMmdjt2Pj4+PTI2LGcud29yZHNbU109cCxDPXZ9cmV0dXJuIDAhPT1DJiYoZy53b3Jkc1tnLmxlbmd0aCsrXT1DKSxnfSxFLl9wcmltZT1mdW5jdGlv'@; put 'bihnKXtpZihoZVtnXSlyZXR1cm4gaGVbZ107dmFyIEM7aWYoImsyNTYiPT09ZylDPW5ldyBjZTtlbHNlIGlmKCJwMjI0Ij09PWcpQz1uZXcgRztlbHNlIGlmKCJwMTkyIj09PWcpQz1uZXcgYjtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitn'@; put 'KTtDPW5ldyBEfXJldHVybiBoZVtnXT1DLEN9LEgucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGcpe0koMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlw'@; put 'ZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLEMpe0koMD09KGcubmVnYXRpdmV8Qy5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCYmZy5yZWQ9PT1DLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5pbW9kPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMubS5zdWIo'@; put 'ZykuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5hZGQoQyk7cmV0dXJuIFMuY21wKHRoaXMubSk+PTAmJlMuaXN1Yih0aGlzLm0pLFMuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5pYWRkPWZ1bmN0'@; put 'aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuaWFkZChDKTtyZXR1cm4gUy5jbXAodGhpcy5tKT49MCYmUy5pc3ViKHRoaXMubSksU30sSC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuc3ViKEMpO3JldHVybiBTLmNtcG4o'@; put 'MCk8MCYmUy5pYWRkKHRoaXMubSksUy5fZm9yY2VSZWQodGhpcyl9LEgucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5pc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksU30sSC5wcm90b3R5cGUuc2hsPWZ1bmN0'@; put 'aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoZyksdGhpcy5pbW9kKGcudXNobG4oQykpfSxILnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5pbXVsKEMpKX0sSC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7'@; put 'cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5tdWwoQykpfSxILnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxILnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LEgucHJvdG90'@; put 'eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYoZy5pc1plcm8oKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPXRoaXMubS5hbmRsbigzKTtpZihJKEMlMj09MSksMz09PUMpe3ZhciBTPXRoaXMubS5hZGQobmV3IEUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyxTKX1mb3IodmFyIHY9dGhp'@; put 'cy5tLnN1Ym4oMSkscD0wOyF2LmlzWmVybygpJiYwPT09di5hbmRsbigxKTspcCsrLHYuaXVzaHJuKDEpO0koIXYuaXNaZXJvKCkpO3ZhciB3PW5ldyBFKDEpLnRvUmVkKHRoaXMpLEo9dy5yZWROZWcoKSxuZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksZGU9dGhpcy5tLmJpdExlbmd0aCgp'@; put 'O2ZvcihkZT1uZXcgRSgyKmRlKmRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coZGUsbmUpLmNtcChKKTspZGUucmVkSUFkZChKKTtmb3IodmFyIGZlPXRoaXMucG93KGRlLHYpLHhlPXRoaXMucG93KGcsdi5hZGRuKDEpLml1c2hybigxKSksTGU9dGhpcy5wb3coZyx2KSxGZT1wOzAhPT1M'@; put 'ZS5jbXAodyk7KXtmb3IodmFyIE9lPUxlLGplPTA7MCE9PU9lLmNtcCh3KTtqZSsrKU9lPU9lLnJlZFNxcigpO0koamU8RmUpO3ZhciBXZT10aGlzLnBvdyhmZSxuZXcgRSgxKS5pdXNobG4oRmUtamUtMSkpO3hlPXhlLnJlZE11bChXZSksZmU9V2UucmVkU3FyKCksTGU9TGUucmVkTXVsKGZl'@; put 'KSxGZT1qZX1yZXR1cm4geGV9LEgucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7dmFyIEM9Zy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PUMubmVnYXRpdmU/KEMubmVnYXRpdmU9MCx0aGlzLmltb2QoQykucmVkTmVnKCkpOnRoaXMuaW1vZChDKX0sSC5wcm90b3R5cGUucG93PWZ1bmN0'@; put 'aW9uKGcsQyl7aWYoQy5pc1plcm8oKSlyZXR1cm4gbmV3IEUoMSkudG9SZWQodGhpcyk7aWYoMD09PUMuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBTPW5ldyBBcnJheSgxNik7U1swXT1uZXcgRSgxKS50b1JlZCh0aGlzKSxTWzFdPWc7Zm9yKHZhciB2PTI7djxTLmxlbmd0aDt2Kysp'@; put 'U1t2XT10aGlzLm11bChTW3YtMV0sZyk7dmFyIHA9U1swXSx3PTAsSj0wLG5lPUMuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1uZSYmKG5lPTI2KSx2PUMubGVuZ3RoLTE7dj49MDt2LS0pe2Zvcih2YXIgZGU9Qy53b3Jkc1t2XSxmZT1uZS0xO2ZlPj0wO2ZlLS0pe3ZhciB4ZT1kZT4+ZmUmMTtw'@; put 'IT09U1swXSYmKHA9dGhpcy5zcXIocCkpLDAhPT14ZXx8MCE9PXc/KHc8PD0xLHd8PXhlLCg0PT0rK0p8fDA9PT12JiYwPT09ZmUpJiYocD10aGlzLm11bChwLFNbd10pLEo9MCx3PTApKTpKPTB9bmU9MjZ9cmV0dXJuIHB9LEgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIg'@; put 'Qz1nLnVtb2QodGhpcy5tKTtyZXR1cm4gQz09PWc/Qy5jbG9uZSgpOkN9LEgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPWcuY2xvbmUoKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxFLm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBOKGcpfSxrKE4sSCksTi5wcm90'@; put 'b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltb2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LE4ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxOLnByb3Rv'@; put 'dHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5pc1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgUz1nLmltdWwoQyksdj1TLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5t'@; put 'KSxwPVMuaXN1Yih2KS5pdXNocm4odGhpcy5zaGlmdCksdz1wO3JldHVybiBwLmNtcCh0aGlzLm0pPj0wP3c9cC5pc3ViKHRoaXMubSk6cC5jbXBuKDApPDAmJih3PXAuaWFkZCh0aGlzLm0pKSx3Ll9mb3JjZVJlZCh0aGlzKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5p'@; put 'c1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gbmV3IEUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBTPWcubXVsKEMpLHY9Uy5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscD1TLmlzdWIodikuaXVzaHJuKHRoaXMuc2hpZnQp'@; put 'LHc9cDtyZXR1cm4gcC5jbXAodGhpcy5tKT49MD93PXAuaXN1Yih0aGlzLm0pOnAuY21wbigwKTwwJiYodz1wLmlhZGQodGhpcy5tKSksdy5fZm9yY2VSZWQodGhpcyl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11bCh0'@; put 'aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oTT1SLm5tZChNKSx0aGlzKX0sODA5MTpNPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIE8oUix6KXtpZihudWxsPT1SKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGZpcnN0IGFyZ3VtZW50IHRvIG9iamVjdCIpO2Zvcih2YXIg'@; put 'Sz1PYmplY3QoUiksST0xO0k8YXJndW1lbnRzLmxlbmd0aDtJKyspe3ZhciBrPWFyZ3VtZW50c1tJXTtpZihudWxsIT1rKWZvcih2YXIgRT1PYmplY3Qua2V5cyhPYmplY3QoaykpLGo9MCxWPUUubGVuZ3RoO2o8VjtqKyspe3ZhciBCPUVbal0sWT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj'@; put 'cmlwdG9yKGssQik7dm9pZCAwIT09WSYmWS5lbnVtZXJhYmxlJiYoS1tCXT1rW0JdKX19cmV0dXJuIEt9TS5leHBvcnRzPXthc3NpZ246Tyxwb2x5ZmlsbDpmdW5jdGlvbigpe09iamVjdC5hc3NpZ258fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QsImFzc2lnbiIse2VudW1lcmFibGU6'@; put 'ITEsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk99KX19fSw3MTg3OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHosSz1SKDUxMDgpLEk9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0P1JlZmxlY3Q6bnVsbCxrPUkmJiJmdW5jdGlvbiI9PXR5cGVvZiBJLmFwcGx5P0kuYXBw'@; put 'bHk6ZnVuY3Rpb24oaGUsdWUsY2Upe3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChoZSx1ZSxjZSl9O3o9SSYmImZ1bmN0aW9uIj09dHlwZW9mIEkub3duS2V5cz9JLm93bktleXM6T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbihoZSl7cmV0dXJuIE9i'@; put 'amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGhlKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhoZSkpfTpmdW5jdGlvbihoZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGhlKX07dmFyIEU9TnVtYmVyLmlzTmFOfHxmdW5jdGlvbihoZSl7cmV0dXJuIGhl'@; put 'IT1oZX07ZnVuY3Rpb24gaigpe2ouaW5pdC5jYWxsKHRoaXMpfU0uZXhwb3J0cz1qLE0uZXhwb3J0cy5vbmNlPWZ1bmN0aW9uKGhlLHVlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oY2UsRyl7ZnVuY3Rpb24gYihIKXtoZS5yZW1vdmVMaXN0ZW5lcih1ZSxEKSxHKEgpfWZ1bmN0aW9u'@; put 'IEQoKXsiZnVuY3Rpb24iPT10eXBlb2YgaGUucmVtb3ZlTGlzdGVuZXImJmhlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsYiksY2UoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX12YXIgSDtzZShoZSx1ZSxELHtvbmNlOiEwfSksImVycm9yIiE9PXVlJiYiZnVuY3Rpb24iPT10eXBlb2YoSD1o'@; put 'ZSkub24mJnNlKEgsImVycm9yIixiLHtvbmNlOiEwfSl9KX0sai5FdmVudEVtaXR0ZXI9aixqLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCxqLnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxqLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzPXZvaWQgMDt2YXIgVj0xMDtmdW5jdGlvbiBCKGhlKXtp'@; put 'ZigiZnVuY3Rpb24iIT10eXBlb2YgaGUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJsaXN0ZW5lciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGhlKX1mdW5jdGlvbiBZKGhlKXtyZXR1cm4gdm9pZCAwPT09aGUuX21heExpc3Rl'@; put 'bmVycz9qLmRlZmF1bHRNYXhMaXN0ZW5lcnM6aGUuX21heExpc3RlbmVyc31mdW5jdGlvbiBYKGhlLHVlLGNlLEcpe3ZhciBiLEQsSDtpZihCKGNlKSx2b2lkIDA9PT0oRD1oZS5fZXZlbnRzKT8oRD1oZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksaGUuX2V2ZW50c0NvdW50PTApOih2'@; put 'b2lkIDAhPT1ELm5ld0xpc3RlbmVyJiYoaGUuZW1pdCgibmV3TGlzdGVuZXIiLHVlLGNlLmxpc3RlbmVyP2NlLmxpc3RlbmVyOmNlKSxEPWhlLl9ldmVudHMpLEg9RFt1ZV0pLHZvaWQgMD09PUgpSD1EW3VlXT1jZSwrK2hlLl9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBIP0g9RFt1ZV09Rz9bY2UsSF06W0gsY2VdOkc/SC51bnNoaWZ0KGNlKTpILnB1c2goY2UpLChiPVkoaGUpKT4wJiZILmxlbmd0aD5iJiYhSC53YXJuZWQpe0gud2FybmVkPSEwO3ZhciBnPW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAi'@; put 'K0gubGVuZ3RoKyIgIitTdHJpbmcodWUpKyIgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdCIpO2cubmFtZT0iTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nIixnLmVtaXR0ZXI9aGUsZy50eXBlPXVlLGcuY291bnQ9SC5s'@; put 'ZW5ndGgsSyYmSy53YXJuJiZLLndhcm4oZyl9cmV0dXJuIGhlfWZ1bmN0aW9uIFUoKXtpZighdGhpcy5maXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlz'@; put 'dGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1bWVudHMpfWZ1bmN0aW9uIHEoaGUsdWUsY2Upe3ZhciBHPXtmaXJlZDohMSx3cmFwRm46dm9pZCAwLHRhcmdldDpoZSx0eXBlOnVlLGxpc3RlbmVyOmNlfSxiPVUuYmluZChHKTtyZXR1'@; put 'cm4gYi5saXN0ZW5lcj1jZSxHLndyYXBGbj1iLGJ9ZnVuY3Rpb24gZWUoaGUsdWUsY2Upe3ZhciBHPWhlLl9ldmVudHM7aWYodm9pZCAwPT09RylyZXR1cm5bXTt2YXIgYj1HW3VlXTtyZXR1cm4gdm9pZCAwPT09Yj9bXToiZnVuY3Rpb24iPT10eXBlb2YgYj9jZT9bYi5saXN0ZW5lcnx8Yl06'@; put 'W2JdOmNlP2Z1bmN0aW9uKEQpe2Zvcih2YXIgSD1uZXcgQXJyYXkoRC5sZW5ndGgpLE49MDtOPEgubGVuZ3RoOysrTilIW05dPURbTl0ubGlzdGVuZXJ8fERbTl07cmV0dXJuIEh9KGIpOm9lKGIsYi5sZW5ndGgpfWZ1bmN0aW9uIHRlKGhlKXt2YXIgdWU9dGhpcy5fZXZlbnRzO2lmKHZvaWQg'@; put 'MCE9PXVlKXt2YXIgY2U9dWVbaGVdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjZSlyZXR1cm4gMTtpZih2b2lkIDAhPT1jZSlyZXR1cm4gY2UubGVuZ3RofXJldHVybiAwfWZ1bmN0aW9uIG9lKGhlLHVlKXtmb3IodmFyIGNlPW5ldyBBcnJheSh1ZSksRz0wO0c8dWU7KytHKWNlW0ddPWhlW0dd'@; put 'O3JldHVybiBjZX1mdW5jdGlvbiBzZShoZSx1ZSxjZSxHKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgaGUub24pRy5vbmNlP2hlLm9uY2UodWUsY2UpOmhlLm9uKHVlLGNlKTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBoZS5hZGRFdmVudExpc3RlbmVyKXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'J1RoZSAiZW1pdHRlciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBoZSk7aGUuYWRkRXZlbnRMaXN0ZW5lcih1ZSxmdW5jdGlvbiBiKEQpe0cub25jZSYmaGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih1ZSxiKSxjZShEKX0pfX1P'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoaiwiZGVmYXVsdE1heExpc3RlbmVycyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LHNldDpmdW5jdGlvbihoZSl7aWYoIm51bWJlciIhPXR5cGVvZiBoZXx8aGU8MHx8RShoZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2'@; put 'YWx1ZSBvZiAiZGVmYXVsdE1heExpc3RlbmVycyIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJytoZSsiLiIpO1Y9aGV9fSksai5pbml0PWZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5fZXZlbnRzJiZ0aGlzLl9ldmVudHMhPT1P'@; put 'YmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50c3x8KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApLHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH0sai5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJz'@; put 'PWZ1bmN0aW9uKGhlKXtpZigibnVtYmVyIiE9dHlwZW9mIGhlfHxoZTwwfHxFKGhlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK2hlKyIuIik7cmV0dXJu'@; put 'IHRoaXMuX21heExpc3RlbmVycz1oZSx0aGlzfSxqLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzKX0sai5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihoZSl7Zm9yKHZhciB1ZT1bXSxjZT0xO2NlPGFyZ3VtZW50cy5sZW5ndGg7Y2UrKyl1ZS5wdXNo'@; put 'KGFyZ3VtZW50c1tjZV0pO3ZhciBHPSJlcnJvciI9PT1oZSxiPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT1iKUc9RyYmdm9pZCAwPT09Yi5lcnJvcjtlbHNlIGlmKCFHKXJldHVybiExO2lmKEcpe3ZhciBEO2lmKHVlLmxlbmd0aD4wJiYoRD11ZVswXSksRCBpbnN0YW5jZW9mIEVycm9yKXRo'@; put 'cm93IEQ7dmFyIEg9bmV3IEVycm9yKCJVbmhhbmRsZWQgZXJyb3IuIisoRD8iICgiK0QubWVzc2FnZSsiKSI6IiIpKTt0aHJvdyBILmNvbnRleHQ9RCxIfXZhciBOPWJbaGVdO2lmKHZvaWQgMD09PU4pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE4payhOLHRoaXMsdWUpO2Vsc2V7'@; put 'dmFyIGc9Ti5sZW5ndGgsQz1vZShOLGcpO2ZvcihjZT0wO2NlPGc7KytjZSlrKENbY2VdLHRoaXMsdWUpfXJldHVybiEwfSxqLnByb3RvdHlwZS5vbj1qLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihoZSx1ZSl7cmV0dXJuIFgodGhpcyxoZSx1ZSwhMSl9LGoucHJvdG90eXBlLnBy'@; put 'ZXBlbmRMaXN0ZW5lcj1mdW5jdGlvbihoZSx1ZSl7cmV0dXJuIFgodGhpcyxoZSx1ZSwhMCl9LGoucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oaGUsdWUpe3JldHVybiBCKHVlKSx0aGlzLm9uKGhlLHEodGhpcyxoZSx1ZSkpLHRoaXN9LGoucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXI9'@; put 'ZnVuY3Rpb24oaGUsdWUpe3JldHVybiBCKHVlKSx0aGlzLnByZXBlbmRMaXN0ZW5lcihoZSxxKHRoaXMsaGUsdWUpKSx0aGlzfSxqLnByb3RvdHlwZS5vZmY9ai5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oaGUsdWUpe3ZhciBjZSxHLGIsRCxIO2lmKEIodWUpLHZvaWQgMD09'@; put 'PShHPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09KGNlPUdbaGVdKSlyZXR1cm4gdGhpcztpZihjZT09PXVlfHxjZS5saXN0ZW5lcj09PXVlKTA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6KGRlbGV0ZSBHW2hlXSxH'@; put 'LnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixoZSxjZS5saXN0ZW5lcnx8dWUpKTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBjZSl7Zm9yKGI9LTEsRD1jZS5sZW5ndGgtMTtEPj0wO0QtLSlpZihjZVtEXT09PXVlfHxjZVtEXS5saXN0ZW5lcj09PXVlKXtI'@; put 'PWNlW0RdLmxpc3RlbmVyLGI9RDticmVha31pZihiPDApcmV0dXJuIHRoaXM7MD09PWI/Y2Uuc2hpZnQoKTpmdW5jdGlvbihOLGcpe2Zvcig7ZysxPE4ubGVuZ3RoO2crKylOW2ddPU5bZysxXTtOLnBvcCgpfShjZSxiKSwxPT09Y2UubGVuZ3RoJiYoR1toZV09Y2VbMF0pLHZvaWQgMCE9PUcu'@; put 'cmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLGhlLEh8fHVlKX1yZXR1cm4gdGhpc30sai5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGhlKXt2YXIgdWUsY2UsRztpZih2b2lkIDA9PT0oY2U9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztp'@; put 'Zih2b2lkIDA9PT1jZS5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApOnZvaWQgMCE9PWNlW2hlXSYmKDA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRz'@; put 'PU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIGNlW2hlXSksdGhpcztpZigwPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIGIsRD1PYmplY3Qua2V5cyhjZSk7Zm9yKEc9MDtHPEQubGVuZ3RoOysrRykicmVtb3ZlTGlzdGVuZXIiIT09KGI9RFtHXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJz'@; put 'KGIpO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKHVlPWNlW2hlXSkpdGhpcy5yZW1vdmVMaXN0ZW5lciho'@; put 'ZSx1ZSk7ZWxzZSBpZih2b2lkIDAhPT11ZSlmb3IoRz11ZS5sZW5ndGgtMTtHPj0wO0ctLSl0aGlzLnJlbW92ZUxpc3RlbmVyKGhlLHVlW0ddKTtyZXR1cm4gdGhpc30sai5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKGhlKXtyZXR1cm4gZWUodGhpcyxoZSwhMCl9LGoucHJvdG90eXBl'@; put 'LnJhd0xpc3RlbmVycz1mdW5jdGlvbihoZSl7cmV0dXJuIGVlKHRoaXMsaGUsITEpfSxqLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24oaGUsdWUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBoZS5saXN0ZW5lckNvdW50P2hlLmxpc3RlbmVyQ291bnQodWUpOnRlLmNhbGwoaGUsdWUpfSxqLnBy'@; put 'b3RvdHlwZS5saXN0ZW5lckNvdW50PXRlLGoucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD96KHRoaXMuX2V2ZW50cyk6W119fSwzMDQ4OihNLE8sUik9Pnt2YXIgej1SKDk1MDkpLkJ1ZmZlcixLPVIoMjMxOCk7TS5leHBvcnRzPWZ1'@; put 'bmN0aW9uKEksayxFLGope2lmKHouaXNCdWZmZXIoSSl8fChJPXouZnJvbShJLCJiaW5hcnkiKSksayYmKHouaXNCdWZmZXIoayl8fChrPXouZnJvbShrLCJiaW5hcnkiKSksOCE9PWsubGVuZ3RoKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic2FsdCBzaG91bGQgYmUgQnVmZmVyIHdpdGggOCBi'@; put 'eXRlIGxlbmd0aCIpO2Zvcih2YXIgVj1FLzgsQj16LmFsbG9jKFYpLFk9ei5hbGxvYyhqfHwwKSxYPXouYWxsb2MoMCk7Vj4wfHxqPjA7KXt2YXIgVT1uZXcgSztVLnVwZGF0ZShYKSxVLnVwZGF0ZShJKSxrJiZVLnVwZGF0ZShrKSxYPVUuZGlnZXN0KCk7dmFyIHE9MDtpZihWPjApe3ZhciBl'@; put 'ZT1CLmxlbmd0aC1WO3E9TWF0aC5taW4oVixYLmxlbmd0aCksWC5jb3B5KEIsZWUsMCxxKSxWLT1xfWlmKHE8WC5sZW5ndGgmJmo+MCl7dmFyIHRlPVkubGVuZ3RoLWosb2U9TWF0aC5taW4oaixYLmxlbmd0aC1xKTtYLmNvcHkoWSx0ZSxxLHErb2UpLGotPW9lfX1yZXR1cm4gWC5maWxsKDAp'@; put 'LHtrZXk6QixpdjpZfX19LDQwMjk6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDUzMjApLEs9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxJPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7TS5leHBvcnRzPWZ1bmN0aW9uKGssRSxqKXtpZigheihFKSl0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJpdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTt2YXIgVjthcmd1bWVudHMubGVuZ3RoPj0zJiYoVj1qKSwiW29iamVjdCBBcnJheV0iPT09Sy5jYWxsKGspP2Z1bmN0aW9uKEIsWSxYKXtmb3IodmFyIFU9MCxxPUIubGVuZ3RoO1U8cTtVKyspSS5jYWxsKEIsVSkmJihu'@; put 'dWxsPT1YP1koQltVXSxVLEIpOlkuY2FsbChYLEJbVV0sVSxCKSl9KGssRSxWKToic3RyaW5nIj09dHlwZW9mIGs/ZnVuY3Rpb24oQixZLFgpe2Zvcih2YXIgVT0wLHE9Qi5sZW5ndGg7VTxxO1UrKyludWxsPT1YP1koQi5jaGFyQXQoVSksVSxCKTpZLmNhbGwoWCxCLmNoYXJBdChVKSxVLEIp'@; put 'fShrLEUsVik6ZnVuY3Rpb24oQixZLFgpe2Zvcih2YXIgVSBpbiBCKUkuY2FsbChCLFUpJiYobnVsbD09WD9ZKEJbVV0sVSxCKTpZLmNhbGwoWCxCW1VdLFUsQikpfShrLEUsVil9fSw2MjMwOk09PntNLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBzZWxmP3NlbGYuRm9ybURhdGE6d2luZG93'@; put 'LkZvcm1EYXRhfSw1MzAyOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KSxLPVIoNTEwOCk7Y29uc3QgST1SKDc3KSxrPVIoMjUyMCksRT1SKDEzODEpLm1rZGlyc1N5bmMsaj1SKDMxOCkudXRpbWVzTWlsbGlzU3luYyxWPVIoMjczMyk7ZnVuY3Rpb24gQihxLGVlLHRlLG9l'@; put 'KXtjb25zdCBzZT0ob2UuZGVyZWZlcmVuY2U/SS5zdGF0U3luYzpJLmxzdGF0U3luYykoZWUpO2lmKHNlLmlzRGlyZWN0b3J5KCkpcmV0dXJuIGhlPXNlLGNlPWVlLEc9dGUsYj1vZSxxP1UoY2UsRyxiKTooRD1oZS5tb2RlLEg9Y2UsZz1iLEkubWtkaXJTeW5jKE49RyksVShILE4sZyksWChO'@; put 'LEQpKTt2YXIgaGUsY2UsRyxiLEQsSCxOLGc7aWYoc2UuaXNGaWxlKCl8fHNlLmlzQ2hhcmFjdGVyRGV2aWNlKCl8fHNlLmlzQmxvY2tEZXZpY2UoKSlyZXR1cm4gZnVuY3Rpb24oaGUsdWUsY2UsRyxiKXtyZXR1cm4gdWU/ZnVuY3Rpb24oRCxILE4sZyl7aWYoZy5vdmVyd3JpdGUpcmV0dXJu'@; put 'IEkudW5saW5rU3luYyhOKSxZKEQsSCxOLGcpO2lmKGcuZXJyb3JPbkV4aXN0KXRocm93IG5ldyBFcnJvcihgJyR7Tn0nIGFscmVhZHkgZXhpc3RzYCl9KGhlLGNlLEcsYik6WShoZSxjZSxHLGIpfShzZSxxLGVlLHRlLG9lKTtpZihzZS5pc1N5bWJvbGljTGluaygpKXJldHVybiBmdW5jdGlv'@; put 'bihoZSx1ZSxjZSxHKXtsZXQgYj1JLnJlYWRsaW5rU3luYyh1ZSk7aWYoRy5kZXJlZmVyZW5jZSYmKGI9ay5yZXNvbHZlKHouY3dkKCksYikpLGhlKXtsZXQgRDt0cnl7RD1JLnJlYWRsaW5rU3luYyhjZSl9Y2F0Y2goSCl7aWYoIkVJTlZBTCI9PT1ILmNvZGV8fCJVTktOT1dOIj09PUguY29k'@; put 'ZSlyZXR1cm4gSS5zeW1saW5rU3luYyhiLGNlKTt0aHJvdyBIfWlmKEcuZGVyZWZlcmVuY2UmJihEPWsucmVzb2x2ZSh6LmN3ZCgpLEQpKSxWLmlzU3JjU3ViZGlyKGIsRCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY29weSAnJHtifScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAn'@; put 'JHtEfScuYCk7aWYoSS5zdGF0U3luYyhjZSkuaXNEaXJlY3RvcnkoKSYmVi5pc1NyY1N1YmRpcihELGIpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSAnJHtEfScgd2l0aCAnJHtifScuYCk7cmV0dXJuIGZ1bmN0aW9uKEgsTil7cmV0dXJuIEkudW5saW5rU3luYyhOKSxJLnN5'@; put 'bWxpbmtTeW5jKEgsTil9KGIsY2UpfXJldHVybiBJLnN5bWxpbmtTeW5jKGIsY2UpfShxLGVlLHRlLG9lKTt0aHJvdyBzZS5pc1NvY2tldCgpP25ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBzb2NrZXQgZmlsZTogJHtlZX1gKTpzZS5pc0ZJRk8oKT9uZXcgRXJyb3IoYENhbm5vdCBjb3B5IGEg'@; put 'RklGTyBwaXBlOiAke2VlfWApOm5ldyBFcnJvcihgVW5rbm93biBmaWxlOiAke2VlfWApfWZ1bmN0aW9uIFkocSxlZSx0ZSxvZSl7cmV0dXJuIEkuY29weUZpbGVTeW5jKGVlLHRlKSxvZS5wcmVzZXJ2ZVRpbWVzdGFtcHMmJihoZT1lZSx1ZT10ZSwwPT0oMTI4JihzZT1xLm1vZGUpKSYmWCh1'@; put 'ZSwxMjh8c2UpLGZ1bmN0aW9uKGNlLEcpe2NvbnN0IGI9SS5zdGF0U3luYyhjZSk7aihHLGIuYXRpbWUsYi5tdGltZSl9KGhlLHVlKSksWCh0ZSxxLm1vZGUpO3ZhciBzZSxoZSx1ZX1mdW5jdGlvbiBYKHEsZWUpe3JldHVybiBJLmNobW9kU3luYyhxLGVlKX1mdW5jdGlvbiBVKHEsZWUsdGUp'@; put 'e0kucmVhZGRpclN5bmMocSkuZm9yRWFjaChvZT0+ZnVuY3Rpb24oc2UsaGUsdWUsY2Upe2NvbnN0IEc9ay5qb2luKGhlLHNlKSxiPWsuam9pbih1ZSxzZSkse2Rlc3RTdGF0OkR9PVYuY2hlY2tQYXRoc1N5bmMoRyxiLCJjb3B5IixjZSk7cmV0dXJuIGZ1bmN0aW9uKEgsTixnLEMpe2lmKCFD'@; put 'LmZpbHRlcnx8Qy5maWx0ZXIoTixnKSlyZXR1cm4gQihILE4sZyxDKX0oRCxHLGIsY2UpfShvZSxxLGVlLHRlKSl9TS5leHBvcnRzPWZ1bmN0aW9uKHEsZWUsdGUpeyJmdW5jdGlvbiI9PXR5cGVvZiB0ZSYmKHRlPXtmaWx0ZXI6dGV9KSwodGU9dGV8fHt9KS5jbG9iYmVyPSEoImNsb2JiZXIi'@; put 'aW4gdGUpfHwhIXRlLmNsb2JiZXIsdGUub3ZlcndyaXRlPSJvdmVyd3JpdGUiaW4gdGU/ISF0ZS5vdmVyd3JpdGU6dGUuY2xvYmJlcix0ZS5wcmVzZXJ2ZVRpbWVzdGFtcHMmJiJpYTMyIj09PXouYXJjaCYmSy53YXJuKCJmcy1leHRyYTogVXNpbmcgdGhlIHByZXNlcnZlVGltZXN0YW1wcyBv'@; put 'cHRpb24gaW4gMzItYml0IG5vZGUgaXMgbm90IHJlY29tbWVuZGVkO1xuXG4gICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHJpY2hhcmRzb24vbm9kZS1mcy1leHRyYS9pc3N1ZXMvMjY5Iik7Y29uc3R7c3JjU3RhdDpvZSxkZXN0U3RhdDpzZX09Vi5jaGVja1BhdGhzU3luYyhxLGVlLCJj'@; put 'b3B5Iix0ZSk7cmV0dXJuIFYuY2hlY2tQYXJlbnRQYXRoc1N5bmMocSxvZSxlZSwiY29weSIpLGZ1bmN0aW9uKGhlLHVlLGNlLEcpe2lmKEcuZmlsdGVyJiYhRy5maWx0ZXIodWUsY2UpKXJldHVybjtjb25zdCBiPWsuZGlybmFtZShjZSk7cmV0dXJuIEkuZXhpc3RzU3luYyhiKXx8RShiKSxC'@; put 'KGhlLHVlLGNlLEcpfShzZSxxLGVlLHRlKX19LDg2OTA6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9e2NvcHlTeW5jOlIoNTMwMil9fSw3MTg5OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KSxLPVIoNTEwOCk7Y29uc3QgST1SKDc3KSxrPVIoMjUyMCksRT1S'@; put 'KDEzODEpLm1rZGlycyxqPVIoOTI1NykucGF0aEV4aXN0cyxWPVIoMzE4KS51dGltZXNNaWxsaXMsQj1SKDI3MzMpO2Z1bmN0aW9uIFkodWUsY2UsRyxiLEQpe2NvbnN0IEg9ay5kaXJuYW1lKEcpO2ooSCwoTixnKT0+Tj9EKE4pOmc/VSh1ZSxjZSxHLGIsRCk6dm9pZCBFKEgsQz0+Qz9EKEMp'@; put 'OlUodWUsY2UsRyxiLEQpKSl9ZnVuY3Rpb24gWCh1ZSxjZSxHLGIsRCxIKXtQcm9taXNlLnJlc29sdmUoRC5maWx0ZXIoRyxiKSkudGhlbihOPT5OP3VlKGNlLEcsYixELEgpOkgoKSxOPT5IKE4pKX1mdW5jdGlvbiBVKHVlLGNlLEcsYixEKXsoYi5kZXJlZmVyZW5jZT9JLnN0YXQ6SS5sc3Rh'@; put 'dCkoY2UsKEgsTik9PntyZXR1cm4gSD9EKEgpOk4uaXNEaXJlY3RvcnkoKT8oZz1OLFM9Y2Usdj1HLHA9Yix3PUQsdWU/b2UoUyx2LHAsdyk6KEo9Zy5tb2RlLG5lPVMsZmU9cCx4ZT13LHZvaWQgSS5ta2RpcihkZT12LExlPT57aWYoTGUpcmV0dXJuIHhlKExlKTtvZShuZSxkZSxmZSxGZT0+'@; put 'RmU/eGUoRmUpOnRlKGRlLEoseGUpKX0pKSk6Ti5pc0ZpbGUoKXx8Ti5pc0NoYXJhY3RlckRldmljZSgpfHxOLmlzQmxvY2tEZXZpY2UoKT9mdW5jdGlvbihnLEMsUyx2LHAsdyl7cmV0dXJuIEM/ZnVuY3Rpb24oSixuZSxkZSxmZSx4ZSl7aWYoIWZlLm92ZXJ3cml0ZSlyZXR1cm4gZmUuZXJy'@; put 'b3JPbkV4aXN0P3hlKG5ldyBFcnJvcihgJyR7ZGV9JyBhbHJlYWR5IGV4aXN0c2ApKTp4ZSgpO0kudW5saW5rKGRlLExlPT5MZT94ZShMZSk6cShKLG5lLGRlLGZlLHhlKSl9KGcsUyx2LHAsdyk6cShnLFMsdixwLHcpfShOLHVlLGNlLEcsYixEKTpOLmlzU3ltYm9saWNMaW5rKCk/ZnVuY3Rp'@; put 'b24gaGUodWUsY2UsRyxiLEQpe0kucmVhZGxpbmsoY2UsKEgsTik9Pkg/RChIKTooYi5kZXJlZmVyZW5jZSYmKE49ay5yZXNvbHZlKHouY3dkKCksTikpLHVlP3ZvaWQgSS5yZWFkbGluayhHLChnLEMpPT5nPyJFSU5WQUwiPT09Zy5jb2RlfHwiVU5LTk9XTiI9PT1nLmNvZGU/SS5zeW1saW5r'@; put 'KE4sRyxEKTpEKGcpOihiLmRlcmVmZXJlbmNlJiYoQz1rLnJlc29sdmUoei5jd2QoKSxDKSksQi5pc1NyY1N1YmRpcihOLEMpP0QobmV3IEVycm9yKGBDYW5ub3QgY29weSAnJHtOfScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAnJHtDfScuYCkpOnVlLmlzRGlyZWN0b3J5KCkmJkIu'@; put 'aXNTcmNTdWJkaXIoQyxOKT9EKG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSAnJHtDfScgd2l0aCAnJHtOfScuYCkpOmZ1bmN0aW9uKFMsdixwKXtJLnVubGluayh2LHc9Pnc/cCh3KTpJLnN5bWxpbmsoUyx2LHApKX0oTixHLEQpKSk6SS5zeW1saW5rKE4sRyxEKSkpfSh1ZSxjZSxHLGIs'@; put 'RCk6Ti5pc1NvY2tldCgpP0QobmV3IEVycm9yKGBDYW5ub3QgY29weSBhIHNvY2tldCBmaWxlOiAke2NlfWApKTpOLmlzRklGTygpP0QobmV3IEVycm9yKGBDYW5ub3QgY29weSBhIEZJRk8gcGlwZTogJHtjZX1gKSk6RChuZXcgRXJyb3IoYFVua25vd24gZmlsZTogJHtjZX1gKSk7dmFyIGcs'@; put 'Uyx2LHAsdyxKLG5lLGRlLGZlLHhlfSl9ZnVuY3Rpb24gcSh1ZSxjZSxHLGIsRCl7SS5jb3B5RmlsZShjZSxHLEg9PntyZXR1cm4gSD9EKEgpOmIucHJlc2VydmVUaW1lc3RhbXBzPyhnPWNlLEM9RyxTPUQsMD09KDEyOCYoTj11ZS5tb2RlKSk/dGUoQywxMjh8Tix2PT52P1Modik6ZWUoTixn'@; put 'LEMsUykpOmVlKE4sZyxDLFMpKTp0ZShHLHVlLm1vZGUsRCk7dmFyIE4sZyxDLFN9KX1mdW5jdGlvbiBlZSh1ZSxjZSxHLGIpe3ZhciBILE47SD1HLE49RD0+RD9iKEQpOnRlKEcsdWUsYiksSS5zdGF0KGNlLChnLEMpPT5nP04oZyk6VihILEMuYXRpbWUsQy5tdGltZSxOKSl9ZnVuY3Rpb24g'@; put 'dGUodWUsY2UsRyl7cmV0dXJuIEkuY2htb2QodWUsY2UsRyl9ZnVuY3Rpb24gb2UodWUsY2UsRyxiKXtJLnJlYWRkaXIodWUsKEQsSCk9PkQ/YihEKTpzZShILHVlLGNlLEcsYikpfWZ1bmN0aW9uIHNlKHVlLGNlLEcsYixEKXtjb25zdCBIPXVlLnBvcCgpO3JldHVybiBIP2Z1bmN0aW9uKE4s'@; put 'ZyxDLFMsdixwKXtjb25zdCB3PWsuam9pbihDLGcpLEo9ay5qb2luKFMsZyk7Qi5jaGVja1BhdGhzKHcsSiwiY29weSIsdiwobmUsZGUpPT57aWYobmUpcmV0dXJuIHAobmUpO2NvbnN0e2Rlc3RTdGF0OmZlfT1kZTt2YXIgeGUsTGUsRmUsT2UsamU7eGU9ZmUsTGU9dyxGZT1KLGplPXhlPT54'@; put 'ZT9wKHhlKTpzZShOLEMsUyx2LHApLChPZT12KS5maWx0ZXI/WChVLHhlLExlLEZlLE9lLGplKTpVKHhlLExlLEZlLE9lLGplKX0pfSh1ZSxILGNlLEcsYixEKTpEKCl9TS5leHBvcnRzPWZ1bmN0aW9uKHVlLGNlLEcsYil7ImZ1bmN0aW9uIiE9dHlwZW9mIEd8fGI/ImZ1bmN0aW9uIj09dHlw'@; put 'ZW9mIEcmJihHPXtmaWx0ZXI6R30pOihiPUcsRz17fSksYj1ifHxmdW5jdGlvbigpe30sKEc9R3x8e30pLmNsb2JiZXI9ISgiY2xvYmJlciJpbiBHKXx8ISFHLmNsb2JiZXIsRy5vdmVyd3JpdGU9Im92ZXJ3cml0ZSJpbiBHPyEhRy5vdmVyd3JpdGU6Ry5jbG9iYmVyLEcucHJlc2VydmVUaW1l'@; put 'c3RhbXBzJiYiaWEzMiI9PT16LmFyY2gmJksud2FybigiZnMtZXh0cmE6IFVzaW5nIHRoZSBwcmVzZXJ2ZVRpbWVzdGFtcHMgb3B0aW9uIGluIDMyLWJpdCBub2RlIGlzIG5vdCByZWNvbW1lbmRlZDtcblxuICAgIHNlZSBodHRwczovL2dpdGh1Yi5jb20vanByaWNoYXJkc29uL25vZGUtZnMt'@; put 'ZXh0cmEvaXNzdWVzLzI2OSIpLEIuY2hlY2tQYXRocyh1ZSxjZSwiY29weSIsRywoRCxIKT0+e2lmKEQpcmV0dXJuIGIoRCk7Y29uc3R7c3JjU3RhdDpOLGRlc3RTdGF0Omd9PUg7Qi5jaGVja1BhcmVudFBhdGhzKHVlLE4sY2UsImNvcHkiLEM9PkM/YihDKTpHLmZpbHRlcj9YKFksZyx1ZSxj'@; put 'ZSxHLGIpOlkoZyx1ZSxjZSxHLGIpKX0pfX0sNjQ2NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig4OTgxKS5mcm9tQ2FsbGJhY2s7TS5leHBvcnRzPXtjb3B5OnooUig3MTg5KSl9fSw1NTkwOihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDg5ODEpLmZyb21Qcm9t'@; put 'aXNlLEs9Uig3NzQ5KSxJPVIoMjUyMCksaz1SKDEzODEpLEU9Uig0NTQyKSxqPXooZnVuY3Rpb24oKXt2YXIgQj1hZShmdW5jdGlvbiooWSl7bGV0IFg7dHJ5e1g9eWllbGQgSy5yZWFkZGlyKFkpfWNhdGNoe3JldHVybiBrLm1rZGlycyhZKX1yZXR1cm4gUHJvbWlzZS5hbGwoWC5tYXAoVT0+'@; put 'RS5yZW1vdmUoSS5qb2luKFksVSkpKSl9KTtyZXR1cm4gZnVuY3Rpb24oWSl7cmV0dXJuIEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSk7ZnVuY3Rpb24gVihCKXtsZXQgWTt0cnl7WT1LLnJlYWRkaXJTeW5jKEIpfWNhdGNoe3JldHVybiBrLm1rZGlyc1N5bmMoQil9WS5mb3JFYWNoKFg9'@; put 'PntYPUkuam9pbihCLFgpLEUucmVtb3ZlU3luYyhYKX0pfU0uZXhwb3J0cz17ZW1wdHlEaXJTeW5jOlYsZW1wdHlkaXJTeW5jOlYsZW1wdHlEaXI6aixlbXB0eWRpcjpqfX0sNjUzMDooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig4OTgxKS5mcm9tQ2FsbGJhY2ssSz1SKDI1MjAp'@; put 'LEk9Uig3Nyksaz1SKDEzODEpO00uZXhwb3J0cz17Y3JlYXRlRmlsZTp6KGZ1bmN0aW9uKEUsail7ZnVuY3Rpb24gVigpe0kud3JpdGVGaWxlKEUsIiIsQj0+e2lmKEIpcmV0dXJuIGooQik7aigpfSl9SS5zdGF0KEUsKEIsWSk9PntpZighQiYmWS5pc0ZpbGUoKSlyZXR1cm4gaigpO2NvbnN0'@; put 'IFg9Sy5kaXJuYW1lKEUpO0kuc3RhdChYLChVLHEpPT57aWYoVSlyZXR1cm4iRU5PRU5UIj09PVUuY29kZT9rLm1rZGlycyhYLGVlPT57aWYoZWUpcmV0dXJuIGooZWUpO1YoKX0pOmooVSk7cS5pc0RpcmVjdG9yeSgpP1YoKTpJLnJlYWRkaXIoWCxlZT0+e2lmKGVlKXJldHVybiBqKGVlKX0p'@; put 'fSl9KX0pLGNyZWF0ZUZpbGVTeW5jOmZ1bmN0aW9uKEUpe2xldCBqO3RyeXtqPUkuc3RhdFN5bmMoRSl9Y2F0Y2h7fWlmKGomJmouaXNGaWxlKCkpcmV0dXJuO2NvbnN0IFY9Sy5kaXJuYW1lKEUpO3RyeXtJLnN0YXRTeW5jKFYpLmlzRGlyZWN0b3J5KCl8fEkucmVhZGRpclN5bmMoVil9Y2F0'@; put 'Y2goQil7aWYoIUJ8fCJFTk9FTlQiIT09Qi5jb2RlKXRocm93IEI7ay5ta2RpcnNTeW5jKFYpfUkud3JpdGVGaWxlU3luYyhFLCIiKX19fSwxNzIwOihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDY1MzApLEs9Uig0MTQ3KSxJPVIoMzYzNSk7TS5leHBvcnRzPXtjcmVhdGVGaWxl'@; put 'OnouY3JlYXRlRmlsZSxjcmVhdGVGaWxlU3luYzp6LmNyZWF0ZUZpbGVTeW5jLGVuc3VyZUZpbGU6ei5jcmVhdGVGaWxlLGVuc3VyZUZpbGVTeW5jOnouY3JlYXRlRmlsZVN5bmMsY3JlYXRlTGluazpLLmNyZWF0ZUxpbmssY3JlYXRlTGlua1N5bmM6Sy5jcmVhdGVMaW5rU3luYyxlbnN1cmVM'@; put 'aW5rOksuY3JlYXRlTGluayxlbnN1cmVMaW5rU3luYzpLLmNyZWF0ZUxpbmtTeW5jLGNyZWF0ZVN5bWxpbms6SS5jcmVhdGVTeW1saW5rLGNyZWF0ZVN5bWxpbmtTeW5jOkkuY3JlYXRlU3ltbGlua1N5bmMsZW5zdXJlU3ltbGluazpJLmNyZWF0ZVN5bWxpbmssZW5zdXJlU3ltbGlua1N5bmM6'@; put 'SS5jcmVhdGVTeW1saW5rU3luY319LDQxNDc6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoODk4MSkuZnJvbUNhbGxiYWNrLEs9UigyNTIwKSxJPVIoNzcpLGs9UigxMzgxKSxFPVIoOTI1NykucGF0aEV4aXN0cyx7YXJlSWRlbnRpY2FsOmp9PVIoMjczMyk7TS5leHBvcnRzPXtj'@; put 'cmVhdGVMaW5rOnooZnVuY3Rpb24oVixCLFkpe2Z1bmN0aW9uIFgoVSxxKXtJLmxpbmsoVSxxLGVlPT57aWYoZWUpcmV0dXJuIFkoZWUpO1kobnVsbCl9KX1JLmxzdGF0KEIsKFUscSk9PntJLmxzdGF0KFYsKGVlLHRlKT0+e2lmKGVlKXJldHVybiBlZS5tZXNzYWdlPWVlLm1lc3NhZ2UucmVw'@; put 'bGFjZSgibHN0YXQiLCJlbnN1cmVMaW5rIiksWShlZSk7aWYocSYmaih0ZSxxKSlyZXR1cm4gWShudWxsKTtjb25zdCBvZT1LLmRpcm5hbWUoQik7RShvZSwoc2UsaGUpPT5zZT9ZKHNlKTpoZT9YKFYsQik6dm9pZCBrLm1rZGlycyhvZSx1ZT0+e2lmKHVlKXJldHVybiBZKHVlKTtYKFYsQil9'@; put 'KSl9KX0pfSksY3JlYXRlTGlua1N5bmM6ZnVuY3Rpb24oVixCKXtsZXQgWTt0cnl7WT1JLmxzdGF0U3luYyhCKX1jYXRjaHt9dHJ5e2NvbnN0IFU9SS5sc3RhdFN5bmMoVik7aWYoWSYmaihVLFkpKXJldHVybn1jYXRjaChVKXt0aHJvdyBVLm1lc3NhZ2U9VS5tZXNzYWdlLnJlcGxhY2UoImxz'@; put 'dGF0IiwiZW5zdXJlTGluayIpLFV9Y29uc3QgWD1LLmRpcm5hbWUoQik7cmV0dXJuIEkuZXhpc3RzU3luYyhYKXx8ay5ta2RpcnNTeW5jKFgpLEkubGlua1N5bmMoVixCKX19fSw2MDcyOihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDI1MjApLEs9Uig3NyksST1SKDkyNTcpLnBh'@; put 'dGhFeGlzdHM7TS5leHBvcnRzPXtzeW1saW5rUGF0aHM6ZnVuY3Rpb24oayxFLGope2lmKHouaXNBYnNvbHV0ZShrKSlyZXR1cm4gSy5sc3RhdChrLFY9PlY/KFYubWVzc2FnZT1WLm1lc3NhZ2UucmVwbGFjZSgibHN0YXQiLCJlbnN1cmVTeW1saW5rIiksaihWKSk6aihudWxsLHt0b0N3ZDpr'@; put 'LHRvRHN0Omt9KSk7e2NvbnN0IFY9ei5kaXJuYW1lKEUpLEI9ei5qb2luKFYsayk7cmV0dXJuIEkoQiwoWSxYKT0+WT9qKFkpOlg/aihudWxsLHt0b0N3ZDpCLHRvRHN0Omt9KTpLLmxzdGF0KGssVT0+VT8oVS5tZXNzYWdlPVUubWVzc2FnZS5yZXBsYWNlKCJsc3RhdCIsImVuc3VyZVN5bWxp'@; put 'bmsiKSxqKFUpKTpqKG51bGwse3RvQ3dkOmssdG9Ec3Q6ei5yZWxhdGl2ZShWLGspfSkpKX19LHN5bWxpbmtQYXRoc1N5bmM6ZnVuY3Rpb24oayxFKXtsZXQgajtpZih6LmlzQWJzb2x1dGUoaykpe2lmKGo9Sy5leGlzdHNTeW5jKGspLCFqKXRocm93IG5ldyBFcnJvcigiYWJzb2x1dGUgc3Jj'@; put 'cGF0aCBkb2VzIG5vdCBleGlzdCIpO3JldHVybnt0b0N3ZDprLHRvRHN0Omt9fXtjb25zdCBWPXouZGlybmFtZShFKSxCPXouam9pbihWLGspO2lmKGo9Sy5leGlzdHNTeW5jKEIpLGopcmV0dXJue3RvQ3dkOkIsdG9Ec3Q6a307aWYoaj1LLmV4aXN0c1N5bmMoayksIWopdGhyb3cgbmV3IEVy'@; put 'cm9yKCJyZWxhdGl2ZSBzcmNwYXRoIGRvZXMgbm90IGV4aXN0Iik7cmV0dXJue3RvQ3dkOmssdG9Ec3Q6ei5yZWxhdGl2ZShWLGspfX19fX0sOTI1OTooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig3Nyk7TS5leHBvcnRzPXtzeW1saW5rVHlwZTpmdW5jdGlvbihLLEksayl7aWYo'@; put 'az0iZnVuY3Rpb24iPT10eXBlb2YgST9JOmssST0iZnVuY3Rpb24iIT10eXBlb2YgSSYmSSlyZXR1cm4gayhudWxsLEkpO3oubHN0YXQoSywoRSxqKT0+e2lmKEUpcmV0dXJuIGsobnVsbCwiZmlsZSIpO0k9aiYmai5pc0RpcmVjdG9yeSgpPyJkaXIiOiJmaWxlIixrKG51bGwsSSl9KX0sc3lt'@; put 'bGlua1R5cGVTeW5jOmZ1bmN0aW9uKEssSSl7bGV0IGs7aWYoSSlyZXR1cm4gSTt0cnl7az16LmxzdGF0U3luYyhLKX1jYXRjaHtyZXR1cm4iZmlsZSJ9cmV0dXJuIGsmJmsuaXNEaXJlY3RvcnkoKT8iZGlyIjoiZmlsZSJ9fX0sMzYzNTooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9'@; put 'Uig4OTgxKS5mcm9tQ2FsbGJhY2ssSz1SKDI1MjApLEk9Uig3NzQ5KSxrPVIoMTM4MSksRT1rLm1rZGlycyxqPWsubWtkaXJzU3luYyxWPVIoNjA3MiksQj1WLnN5bWxpbmtQYXRocyxZPVYuc3ltbGlua1BhdGhzU3luYyxYPVIoOTI1OSksVT1YLnN5bWxpbmtUeXBlLHE9WC5zeW1saW5rVHlw'@; put 'ZVN5bmMsZWU9Uig5MjU3KS5wYXRoRXhpc3RzLHthcmVJZGVudGljYWw6dGV9PVIoMjczMyk7ZnVuY3Rpb24gb2Uoc2UsaGUsdWUsY2Upe0Ioc2UsaGUsKEcsYik9PntpZihHKXJldHVybiBjZShHKTtzZT1iLnRvRHN0LFUoYi50b0N3ZCx1ZSwoRCxIKT0+e2lmKEQpcmV0dXJuIGNlKEQpO2Nv'@; put 'bnN0IE49Sy5kaXJuYW1lKGhlKTtlZShOLChnLEMpPT5nP2NlKGcpOkM/SS5zeW1saW5rKHNlLGhlLEgsY2UpOnZvaWQgRShOLFM9PntpZihTKXJldHVybiBjZShTKTtJLnN5bWxpbmsoc2UsaGUsSCxjZSl9KSl9KX0pfU0uZXhwb3J0cz17Y3JlYXRlU3ltbGluazp6KGZ1bmN0aW9uKHNlLGhl'@; put 'LHVlLGNlKXtjZT0iZnVuY3Rpb24iPT10eXBlb2YgdWU/dWU6Y2UsdWU9ImZ1bmN0aW9uIiE9dHlwZW9mIHVlJiZ1ZSxJLmxzdGF0KGhlLChHLGIpPT57IUcmJmIuaXNTeW1ib2xpY0xpbmsoKT9Qcm9taXNlLmFsbChbSS5zdGF0KHNlKSxJLnN0YXQoaGUpXSkudGhlbigoW0QsSF0pPT57aWYo'@; put 'dGUoRCxIKSlyZXR1cm4gY2UobnVsbCk7b2Uoc2UsaGUsdWUsY2UpfSk6b2Uoc2UsaGUsdWUsY2UpfSl9KSxjcmVhdGVTeW1saW5rU3luYzpmdW5jdGlvbihzZSxoZSx1ZSl7bGV0IGNlO3RyeXtjZT1JLmxzdGF0U3luYyhoZSl9Y2F0Y2h7fWlmKGNlJiZjZS5pc1N5bWJvbGljTGluaygpKXtj'@; put 'b25zdCBEPUkuc3RhdFN5bmMoc2UpLEg9SS5zdGF0U3luYyhoZSk7aWYodGUoRCxIKSlyZXR1cm59Y29uc3QgRz1ZKHNlLGhlKTtzZT1HLnRvRHN0LHVlPXEoRy50b0N3ZCx1ZSk7Y29uc3QgYj1LLmRpcm5hbWUoaGUpO3JldHVybiBJLmV4aXN0c1N5bmMoYil8fGooYiksSS5zeW1saW5rU3lu'@; put 'YyhzZSxoZSx1ZSl9fX0sNzc0OTooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig4OTgxKS5mcm9tQ2FsbGJhY2ssSz1SKDc3KSxJPVsiYWNjZXNzIiwiYXBwZW5kRmlsZSIsImNobW9kIiwiY2hvd24iLCJjbG9zZSIsImNvcHlGaWxlIiwiZmNobW9kIiwiZmNob3duIiwiZmRhdGFz'@; put 'eW5jIiwiZnN0YXQiLCJmc3luYyIsImZ0cnVuY2F0ZSIsImZ1dGltZXMiLCJsY2htb2QiLCJsY2hvd24iLCJsaW5rIiwibHN0YXQiLCJta2RpciIsIm1rZHRlbXAiLCJvcGVuIiwib3BlbmRpciIsInJlYWRkaXIiLCJyZWFkRmlsZSIsInJlYWRsaW5rIiwicmVhbHBhdGgiLCJyZW5hbWUiLCJy'@; put 'bSIsInJtZGlyIiwic3RhdCIsInN5bWxpbmsiLCJ0cnVuY2F0ZSIsInVubGluayIsInV0aW1lcyIsIndyaXRlRmlsZSJdLmZpbHRlcihrPT4iZnVuY3Rpb24iPT10eXBlb2YgS1trXSk7T2JqZWN0LmFzc2lnbihPLEspLEkuZm9yRWFjaChrPT57T1trXT16KEtba10pfSksTy5yZWFscGF0aC5u'@; put 'YXRpdmU9eihLLnJlYWxwYXRoLm5hdGl2ZSksTy5leGlzdHM9ZnVuY3Rpb24oayxFKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgRT9LLmV4aXN0cyhrLEUpOm5ldyBQcm9taXNlKGo9PksuZXhpc3RzKGssaikpfSxPLnJlYWQ9ZnVuY3Rpb24oayxFLGosVixCLFkpe3JldHVybiJmdW5jdGlv'@; put 'biI9PXR5cGVvZiBZP0sucmVhZChrLEUsaixWLEIsWSk6bmV3IFByb21pc2UoKFgsVSk9PntLLnJlYWQoayxFLGosVixCLChxLGVlLHRlKT0+e2lmKHEpcmV0dXJuIFUocSk7WCh7Ynl0ZXNSZWFkOmVlLGJ1ZmZlcjp0ZX0pfSl9KX0sTy53cml0ZT1mdW5jdGlvbihrLEUsLi4uail7cmV0dXJu'@; put 'ImZ1bmN0aW9uIj09dHlwZW9mIGpbai5sZW5ndGgtMV0/Sy53cml0ZShrLEUsLi4uaik6bmV3IFByb21pc2UoKFYsQik9PntLLndyaXRlKGssRSwuLi5qLChZLFgsVSk9PntpZihZKXJldHVybiBCKFkpO1Yoe2J5dGVzV3JpdHRlbjpYLGJ1ZmZlcjpVfSl9KX0pfSwiZnVuY3Rpb24iPT10eXBl'@; put 'b2YgSy53cml0ZXYmJihPLndyaXRldj1mdW5jdGlvbihrLEUsLi4uail7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGpbai5sZW5ndGgtMV0/Sy53cml0ZXYoayxFLC4uLmopOm5ldyBQcm9taXNlKChWLEIpPT57Sy53cml0ZXYoayxFLC4uLmosKFksWCxVKT0+e2lmKFkpcmV0dXJuIEIoWSk7'@; put 'Vih7Ynl0ZXNXcml0dGVuOlgsYnVmZmVyczpVfSl9KX0pfSl9LDU2NzQ6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9ey4uLlIoNzc0OSksLi4uUig4NjkwKSwuLi5SKDY0NjQpLC4uLlIoNTU5MCksLi4uUigxNzIwKSwuLi5SKDY1NzMpLC4uLlIoMTM4MSksLi4uUig0MDI2KSwu'@; put 'Li5SKDUzMCksLi4uUigxMzE1KSwuLi5SKDkyNTcpLC4uLlIoNDU0Mil9fSw2NTczOihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDg5ODEpLmZyb21Qcm9taXNlLEs9Uig3MTgzKTtLLm91dHB1dEpzb249eihSKDM1MDgpKSxLLm91dHB1dEpzb25TeW5jPVIoOTU3OCksSy5vdXRw'@; put 'dXRKU09OPUsub3V0cHV0SnNvbixLLm91dHB1dEpTT05TeW5jPUsub3V0cHV0SnNvblN5bmMsSy53cml0ZUpTT049Sy53cml0ZUpzb24sSy53cml0ZUpTT05TeW5jPUsud3JpdGVKc29uU3luYyxLLnJlYWRKU09OPUsucmVhZEpzb24sSy5yZWFkSlNPTlN5bmM9Sy5yZWFkSnNvblN5bmMsTS5l'@; put 'eHBvcnRzPUt9LDcxODM6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoNjgxMyk7TS5leHBvcnRzPXtyZWFkSnNvbjp6LnJlYWRGaWxlLHJlYWRKc29uU3luYzp6LnJlYWRGaWxlU3luYyx3cml0ZUpzb246ei53cml0ZUZpbGUsd3JpdGVKc29uU3luYzp6LndyaXRlRmlsZVN5bmN9'@; put 'fSw5NTc4OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3R7c3RyaW5naWZ5Onp9PVIoNjc4MCkse291dHB1dEZpbGVTeW5jOkt9PVIoMTMxNSk7TS5leHBvcnRzPWZ1bmN0aW9uKEksayxFKXtjb25zdCBqPXooayxFKTtLKEksaixFKX19LDM1MDg6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtj'@; put 'b25zdHtzdHJpbmdpZnk6en09Uig2NzgwKSx7b3V0cHV0RmlsZTpLfT1SKDEzMTUpO00uZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBJPWFlKGZ1bmN0aW9uKihrLEUsaj17fSl7Y29uc3QgVj16KEUsaik7eWllbGQgSyhrLFYsail9KTtyZXR1cm4gZnVuY3Rpb24oayxFKXtyZXR1cm4gSS5hcHBs'@; put 'eSh0aGlzLGFyZ3VtZW50cyl9fSgpfSwxMzgxOihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDg5ODEpLmZyb21Qcm9taXNlLHttYWtlRGlyOkssbWFrZURpclN5bmM6SX09Uig4MjMzKSxrPXooSyk7TS5leHBvcnRzPXtta2RpcnM6ayxta2RpcnNTeW5jOkksbWtkaXJwOmssbWtk'@; put 'aXJwU3luYzpJLGVuc3VyZURpcjprLGVuc3VyZURpclN5bmM6SX19LDgyMzM6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoNzc0OSkse2NoZWNrUGF0aDpLfT1SKDM0NjgpLEk9az0+Im51bWJlciI9PXR5cGVvZiBrP2s6e21vZGU6NTExLC4uLmt9Lm1vZGU7TS5leHBvcnRzLm1h'@; put 'a2VEaXI9ZnVuY3Rpb24oKXt2YXIgaz1hZShmdW5jdGlvbiooRSxqKXtyZXR1cm4gSyhFKSx6Lm1rZGlyKEUse21vZGU6SShqKSxyZWN1cnNpdmU6ITB9KX0pO3JldHVybiBmdW5jdGlvbihFLGope3JldHVybiBrLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksTS5leHBvcnRzLm1ha2VEaXJT'@; put 'eW5jPShrLEUpPT4oSyhrKSx6Lm1rZGlyU3luYyhrLHttb2RlOkkoRSkscmVjdXJzaXZlOiEwfSkpfSwzNDY4OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KTtjb25zdCBLPVIoMjUyMCk7TS5leHBvcnRzLmNoZWNrUGF0aD1mdW5jdGlvbihJKXtpZigid2luMzIiPT09ei5w'@; put 'bGF0Zm9ybSYmL1s8PjoifD8qXS8udGVzdChJLnJlcGxhY2UoSy5wYXJzZShJKS5yb290LCIiKSkpe2NvbnN0IGs9bmV3IEVycm9yKGBQYXRoIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyczogJHtJfWApO3Rocm93IGsuY29kZT0iRUlOVkFMIixrfX19LDQwMjY6KE0sTyxSKT0+eyJ1c2Ug'@; put 'c3RyaWN0IjtNLmV4cG9ydHM9e21vdmVTeW5jOlIoNjAwNil9fSw2MDA2OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDc3KSxLPVIoMjUyMCksST1SKDg2OTApLmNvcHlTeW5jLGs9Uig0NTQyKS5yZW1vdmVTeW5jLEU9UigxMzgxKS5ta2RpcnBTeW5jLGo9UigyNzMzKTtmdW5j'@; put 'dGlvbiBWKEIsWSxYKXt0cnl7ei5yZW5hbWVTeW5jKEIsWSl9Y2F0Y2goVSl7aWYoIkVYREVWIiE9PVUuY29kZSl0aHJvdyBVO3JldHVybiBJKHE9QixZLHtvdmVyd3JpdGU6WCxlcnJvck9uRXhpc3Q6ITB9KSxrKHEpfXZhciBxfU0uZXhwb3J0cz1mdW5jdGlvbihCLFksWCl7Y29uc3QgVT0o'@; put 'WD1YfHx7fSkub3ZlcndyaXRlfHxYLmNsb2JiZXJ8fCExLHtzcmNTdGF0OnEsaXNDaGFuZ2luZ0Nhc2U6ZWU9ITF9PWouY2hlY2tQYXRoc1N5bmMoQixZLCJtb3ZlIixYKTtyZXR1cm4gai5jaGVja1BhcmVudFBhdGhzU3luYyhCLHEsWSwibW92ZSIpLGZ1bmN0aW9uKHRlKXtjb25zdCBvZT1L'@; put 'LmRpcm5hbWUodGUpO3JldHVybiBLLnBhcnNlKG9lKS5yb290PT09b2V9KFkpfHxFKEsuZGlybmFtZShZKSksZnVuY3Rpb24odGUsb2Usc2UsaGUpe2lmKGhlKXJldHVybiBWKHRlLG9lLHNlKTtpZihzZSlyZXR1cm4gayhvZSksVih0ZSxvZSxzZSk7aWYoei5leGlzdHNTeW5jKG9lKSl0aHJv'@; put 'dyBuZXcgRXJyb3IoImRlc3QgYWxyZWFkeSBleGlzdHMuIik7cmV0dXJuIFYodGUsb2Usc2UpfShCLFksVSxlZSl9fSw1MzA6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoODk4MSkuZnJvbUNhbGxiYWNrO00uZXhwb3J0cz17bW92ZTp6KFIoNDM2KSl9fSw0MzY6KE0sTyxSKT0+'@; put 'eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoNzcpLEs9UigyNTIwKSxJPVIoNjQ2NCkuY29weSxrPVIoNDU0MikucmVtb3ZlLEU9UigxMzgxKS5ta2RpcnAsaj1SKDkyNTcpLnBhdGhFeGlzdHMsVj1SKDI3MzMpO2Z1bmN0aW9uIEIoWCxVLHEsZWUsdGUpe3JldHVybiBlZT9ZKFgsVSxxLHRlKTpx'@; put 'P2soVSxvZT0+b2U/dGUob2UpOlkoWCxVLHEsdGUpKTp2b2lkIGooVSwob2Usc2UpPT5vZT90ZShvZSk6c2U/dGUobmV3IEVycm9yKCJkZXN0IGFscmVhZHkgZXhpc3RzLiIpKTpZKFgsVSxxLHRlKSl9ZnVuY3Rpb24gWShYLFUscSxlZSl7ei5yZW5hbWUoWCxVLHRlPT57cmV0dXJuIHRlPyJF'@; put 'WERFViIhPT10ZS5jb2RlP2VlKHRlKToodWU9ZWUsdm9pZCBJKG9lPVgsVSx7b3ZlcndyaXRlOnEsZXJyb3JPbkV4aXN0OiEwfSxHPT5HP3VlKEcpOmsob2UsdWUpKSk6ZWUoKTt2YXIgb2UsdWV9KX1NLmV4cG9ydHM9ZnVuY3Rpb24oWCxVLHEsZWUpeyJmdW5jdGlvbiI9PXR5cGVvZiBxJiYo'@; put 'ZWU9cSxxPXt9KTtjb25zdCB0ZT1xLm92ZXJ3cml0ZXx8cS5jbG9iYmVyfHwhMTtWLmNoZWNrUGF0aHMoWCxVLCJtb3ZlIixxLChvZSxzZSk9PntpZihvZSlyZXR1cm4gZWUob2UpO2NvbnN0e3NyY1N0YXQ6aGUsaXNDaGFuZ2luZ0Nhc2U6dWU9ITF9PXNlO1YuY2hlY2tQYXJlbnRQYXRocyhY'@; put 'LGhlLFUsIm1vdmUiLGNlPT5jZT9lZShjZSk6ZnVuY3Rpb24oRyl7Y29uc3QgYj1LLmRpcm5hbWUoRyk7cmV0dXJuIEsucGFyc2UoYikucm9vdD09PWJ9KFUpP0IoWCxVLHRlLHVlLGVlKTp2b2lkIEUoSy5kaXJuYW1lKFUpLEc9Pkc/ZWUoRyk6QihYLFUsdGUsdWUsZWUpKSl9KX19LDEzMTU6'@; put 'KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoODk4MSkuZnJvbUNhbGxiYWNrLEs9Uig3NyksST1SKDI1MjApLGs9UigxMzgxKSxFPVIoOTI1NykucGF0aEV4aXN0cztNLmV4cG9ydHM9e291dHB1dEZpbGU6eihmdW5jdGlvbihqLFYsQixZKXsiZnVuY3Rpb24iPT10eXBlb2YgQiYm'@; put 'KFk9QixCPSJ1dGY4Iik7Y29uc3QgWD1JLmRpcm5hbWUoaik7RShYLChVLHEpPT5VP1koVSk6cT9LLndyaXRlRmlsZShqLFYsQixZKTp2b2lkIGsubWtkaXJzKFgsZWU9PntpZihlZSlyZXR1cm4gWShlZSk7Sy53cml0ZUZpbGUoaixWLEIsWSl9KSl9KSxvdXRwdXRGaWxlU3luYzpmdW5jdGlv'@; put 'bihqLC4uLlYpe2NvbnN0IEI9SS5kaXJuYW1lKGopO2lmKEsuZXhpc3RzU3luYyhCKSlyZXR1cm4gSy53cml0ZUZpbGVTeW5jKGosLi4uVik7ay5ta2RpcnNTeW5jKEIpLEsud3JpdGVGaWxlU3luYyhqLC4uLlYpfX19LDkyNTc6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB6PVIoODk4'@; put 'MSkuZnJvbVByb21pc2UsSz1SKDc3NDkpO00uZXhwb3J0cz17cGF0aEV4aXN0czp6KGZ1bmN0aW9uKEkpe3JldHVybiBLLmFjY2VzcyhJKS50aGVuKCgpPT4hMCkuY2F0Y2goKCk9PiExKX0pLHBhdGhFeGlzdHNTeW5jOksuZXhpc3RzU3luY319LDQ1NDI6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijtjb25zdCB6PVIoNzcpLEs9Uig4OTgxKS5mcm9tQ2FsbGJhY2ssST1SKDM0NTYpO00uZXhwb3J0cz17cmVtb3ZlOksoZnVuY3Rpb24oayxFKXtpZih6LnJtKXJldHVybiB6LnJtKGsse3JlY3Vyc2l2ZTohMCxmb3JjZTohMH0sRSk7SShrLEUpfSkscmVtb3ZlU3luYzpmdW5jdGlvbihrKXtp'@; put 'Zih6LnJtU3luYylyZXR1cm4gei5ybVN5bmMoayx7cmVjdXJzaXZlOiEwLGZvcmNlOiEwfSk7SS5zeW5jKGspfX19LDM0NTY6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUpO2NvbnN0IEs9Uig3NyksST1SKDI1MjApLGs9Uig5MjgyKSxFPSJ3aW4zMiI9PT16LnBsYXRmb3Jt'@; put 'O2Z1bmN0aW9uIGoodGUpe1sidW5saW5rIiwiY2htb2QiLCJzdGF0IiwibHN0YXQiLCJybWRpciIsInJlYWRkaXIiXS5mb3JFYWNoKG9lPT57dGVbb2VdPXRlW29lXXx8S1tvZV0sdGVbb2UrPSJTeW5jIl09dGVbb2VdfHxLW29lXX0pLHRlLm1heEJ1c3lUcmllcz10ZS5tYXhCdXN5VHJpZXN8'@; put 'fDN9ZnVuY3Rpb24gVih0ZSxvZSxzZSl7bGV0IGhlPTA7ImZ1bmN0aW9uIj09dHlwZW9mIG9lJiYoc2U9b2Usb2U9e30pLGsodGUsInJpbXJhZjogbWlzc2luZyBwYXRoIiksay5zdHJpY3RFcXVhbCh0eXBlb2YgdGUsInN0cmluZyIsInJpbXJhZjogcGF0aCBzaG91bGQgYmUgYSBzdHJpbmci'@; put 'KSxrLnN0cmljdEVxdWFsKHR5cGVvZiBzZSwiZnVuY3Rpb24iLCJyaW1yYWY6IGNhbGxiYWNrIGZ1bmN0aW9uIHJlcXVpcmVkIiksayhvZSwicmltcmFmOiBpbnZhbGlkIG9wdGlvbnMgYXJndW1lbnQgcHJvdmlkZWQiKSxrLnN0cmljdEVxdWFsKHR5cGVvZiBvZSwib2JqZWN0IiwicmltcmFm'@; put 'OiBvcHRpb25zIHNob3VsZCBiZSBvYmplY3QiKSxqKG9lKSxCKHRlLG9lLGZ1bmN0aW9uIHVlKGNlKXtpZihjZSl7aWYoKCJFQlVTWSI9PT1jZS5jb2RlfHwiRU5PVEVNUFRZIj09PWNlLmNvZGV8fCJFUEVSTSI9PT1jZS5jb2RlKSYmaGU8b2UubWF4QnVzeVRyaWVzKXJldHVybiBoZSsrLHNl'@; put 'dFRpbWVvdXQoKCk9PkIodGUsb2UsdWUpLDEwMCpoZSk7IkVOT0VOVCI9PT1jZS5jb2RlJiYoY2U9bnVsbCl9c2UoY2UpfSl9ZnVuY3Rpb24gQih0ZSxvZSxzZSl7ayh0ZSksayhvZSksaygiZnVuY3Rpb24iPT10eXBlb2Ygc2UpLG9lLmxzdGF0KHRlLChoZSx1ZSk9PmhlJiYiRU5PRU5UIj09'@; put 'PWhlLmNvZGU/c2UobnVsbCk6aGUmJiJFUEVSTSI9PT1oZS5jb2RlJiZFP1kodGUsb2UsaGUsc2UpOnVlJiZ1ZS5pc0RpcmVjdG9yeSgpP1UodGUsb2UsaGUsc2UpOnZvaWQgb2UudW5saW5rKHRlLGNlPT57aWYoY2Upe2lmKCJFTk9FTlQiPT09Y2UuY29kZSlyZXR1cm4gc2UobnVsbCk7aWYo'@; put 'IkVQRVJNIj09PWNlLmNvZGUpcmV0dXJuIEU/WSh0ZSxvZSxjZSxzZSk6VSh0ZSxvZSxjZSxzZSk7aWYoIkVJU0RJUiI9PT1jZS5jb2RlKXJldHVybiBVKHRlLG9lLGNlLHNlKX1yZXR1cm4gc2UoY2UpfSkpfWZ1bmN0aW9uIFkodGUsb2Usc2UsaGUpe2sodGUpLGsob2UpLGsoImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIGhlKSxvZS5jaG1vZCh0ZSw0MzgsdWU9Pnt1ZT9oZSgiRU5PRU5UIj09PXVlLmNvZGU/bnVsbDpzZSk6b2Uuc3RhdCh0ZSwoY2UsRyk9PntjZT9oZSgiRU5PRU5UIj09PWNlLmNvZGU/bnVsbDpzZSk6Ry5pc0RpcmVjdG9yeSgpP1UodGUsb2Usc2UsaGUpOm9lLnVubGluayh0'@; put 'ZSxoZSl9KX0pfWZ1bmN0aW9uIFgodGUsb2Usc2Upe2xldCBoZTtrKHRlKSxrKG9lKTt0cnl7b2UuY2htb2RTeW5jKHRlLDQzOCl9Y2F0Y2godWUpe2lmKCJFTk9FTlQiPT09dWUuY29kZSlyZXR1cm47dGhyb3cgc2V9dHJ5e2hlPW9lLnN0YXRTeW5jKHRlKX1jYXRjaCh1ZSl7aWYoIkVOT0VO'@; put 'VCI9PT11ZS5jb2RlKXJldHVybjt0aHJvdyBzZX1oZS5pc0RpcmVjdG9yeSgpP2VlKHRlLG9lLHNlKTpvZS51bmxpbmtTeW5jKHRlKX1mdW5jdGlvbiBVKHRlLG9lLHNlLGhlKXtrKHRlKSxrKG9lKSxrKCJmdW5jdGlvbiI9PXR5cGVvZiBoZSksb2Uucm1kaXIodGUsdWU9Pnt2YXIgY2UsRyxi'@; put 'OyF1ZXx8IkVOT1RFTVBUWSIhPT11ZS5jb2RlJiYiRUVYSVNUIiE9PXVlLmNvZGUmJiJFUEVSTSIhPT11ZS5jb2RlP2hlKHVlJiYiRU5PVERJUiI9PT11ZS5jb2RlP3NlOnVlKTooRz1vZSxiPWhlLGsoY2U9dGUpLGsoRyksaygiZnVuY3Rpb24iPT10eXBlb2YgYiksRy5yZWFkZGlyKGNlLChE'@; put 'LEgpPT57aWYoRClyZXR1cm4gYihEKTtsZXQgTixnPUgubGVuZ3RoO2lmKDA9PT1nKXJldHVybiBHLnJtZGlyKGNlLGIpO0guZm9yRWFjaChDPT57VihJLmpvaW4oY2UsQyksRyxTPT57aWYoIU4pcmV0dXJuIFM/YihOPVMpOnZvaWQoMD09LS1nJiZHLnJtZGlyKGNlLGIpKX0pfSl9KSl9KX1m'@; put 'dW5jdGlvbiBxKHRlLG9lKXtsZXQgc2U7aihvZT1vZXx8e30pLGsodGUsInJpbXJhZjogbWlzc2luZyBwYXRoIiksay5zdHJpY3RFcXVhbCh0eXBlb2YgdGUsInN0cmluZyIsInJpbXJhZjogcGF0aCBzaG91bGQgYmUgYSBzdHJpbmciKSxrKG9lLCJyaW1yYWY6IG1pc3Npbmcgb3B0aW9ucyIp'@; put 'LGsuc3RyaWN0RXF1YWwodHlwZW9mIG9lLCJvYmplY3QiLCJyaW1yYWY6IG9wdGlvbnMgc2hvdWxkIGJlIG9iamVjdCIpO3RyeXtzZT1vZS5sc3RhdFN5bmModGUpfWNhdGNoKGhlKXtpZigiRU5PRU5UIj09PWhlLmNvZGUpcmV0dXJuOyJFUEVSTSI9PT1oZS5jb2RlJiZFJiZYKHRlLG9lLGhl'@; put 'KX10cnl7c2UmJnNlLmlzRGlyZWN0b3J5KCk/ZWUodGUsb2UsbnVsbCk6b2UudW5saW5rU3luYyh0ZSl9Y2F0Y2goaGUpe2lmKCJFTk9FTlQiPT09aGUuY29kZSlyZXR1cm47aWYoIkVQRVJNIj09PWhlLmNvZGUpcmV0dXJuIEU/WCh0ZSxvZSxoZSk6ZWUodGUsb2UsaGUpO2lmKCJFSVNESVIi'@; put 'IT09aGUuY29kZSl0aHJvdyBoZTtlZSh0ZSxvZSxoZSl9fWZ1bmN0aW9uIGVlKHRlLG9lLHNlKXtrKHRlKSxrKG9lKTt0cnl7b2Uucm1kaXJTeW5jKHRlKX1jYXRjaChoZSl7aWYoIkVOT1RESVIiPT09aGUuY29kZSl0aHJvdyBzZTtpZigiRU5PVEVNUFRZIj09PWhlLmNvZGV8fCJFRVhJU1Qi'@; put 'PT09aGUuY29kZXx8IkVQRVJNIj09PWhlLmNvZGUpIWZ1bmN0aW9uKHVlLGNlKXtpZihrKHVlKSxrKGNlKSxjZS5yZWFkZGlyU3luYyh1ZSkuZm9yRWFjaChHPT5xKEkuam9pbih1ZSxHKSxjZSkpLCFFKXJldHVybiBjZS5ybWRpclN5bmModWUsY2UpO3tjb25zdCBHPURhdGUubm93KCk7ZG97'@; put 'dHJ5e3JldHVybiBjZS5ybWRpclN5bmModWUsY2UpfWNhdGNoe319d2hpbGUoRGF0ZS5ub3coKS1HPDUwMCl9fSh0ZSxvZSk7ZWxzZSBpZigiRU5PRU5UIiE9PWhlLmNvZGUpdGhyb3cgaGV9fU0uZXhwb3J0cz1WLFYuc3luYz1xfSwyNzMzOihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qg'@; put 'ej1SKDc3NDkpLEs9UigyNTIwKSxJPVIoOTUzOSk7ZnVuY3Rpb24gayhCLFksWCl7Y29uc3QgVT1YLmRlcmVmZXJlbmNlP3E9Pnouc3RhdChxLHtiaWdpbnQ6ITB9KTpxPT56LmxzdGF0KHEse2JpZ2ludDohMH0pO3JldHVybiBQcm9taXNlLmFsbChbVShCKSxVKFkpLmNhdGNoKHE9PntpZigi'@; put 'RU5PRU5UIj09PXEuY29kZSlyZXR1cm4gbnVsbDt0aHJvdyBxfSldKS50aGVuKChbcSxlZV0pPT4oe3NyY1N0YXQ6cSxkZXN0U3RhdDplZX0pKX1mdW5jdGlvbiBFKEIsWSl7cmV0dXJuIFkuaW5vJiZZLmRldiYmWS5pbm89PT1CLmlubyYmWS5kZXY9PT1CLmRldn1mdW5jdGlvbiBqKEIsWSl7'@; put 'Y29uc3QgWD1LLnJlc29sdmUoQikuc3BsaXQoSy5zZXApLmZpbHRlcihxPT5xKSxVPUsucmVzb2x2ZShZKS5zcGxpdChLLnNlcCkuZmlsdGVyKHE9PnEpO3JldHVybiBYLnJlZHVjZSgocSxlZSx0ZSk9PnEmJlVbdGVdPT09ZWUsITApfWZ1bmN0aW9uIFYoQixZLFgpe3JldHVybmBDYW5ub3Qg'@; put 'JHtYfSAnJHtCfScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAnJHtZfScuYH1NLmV4cG9ydHM9e2NoZWNrUGF0aHM6ZnVuY3Rpb24oQixZLFgsVSxxKXtJLmNhbGxiYWNraWZ5KGspKEIsWSxVLChlZSx0ZSk9PntpZihlZSlyZXR1cm4gcShlZSk7Y29uc3R7c3JjU3RhdDpvZSxkZXN0'@; put 'U3RhdDpzZX09dGU7aWYoc2Upe2lmKEUob2Usc2UpKXtjb25zdCBoZT1LLmJhc2VuYW1lKEIpLHVlPUsuYmFzZW5hbWUoWSk7cmV0dXJuIm1vdmUiPT09WCYmaGUhPT11ZSYmaGUudG9Mb3dlckNhc2UoKT09PXVlLnRvTG93ZXJDYXNlKCk/cShudWxsLHtzcmNTdGF0Om9lLGRlc3RTdGF0OnNl'@; put 'LGlzQ2hhbmdpbmdDYXNlOiEwfSk6cShuZXcgRXJyb3IoIlNvdXJjZSBhbmQgZGVzdGluYXRpb24gbXVzdCBub3QgYmUgdGhlIHNhbWUuIikpfWlmKG9lLmlzRGlyZWN0b3J5KCkmJiFzZS5pc0RpcmVjdG9yeSgpKXJldHVybiBxKG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSBub24tZGly'@; put 'ZWN0b3J5ICcke1l9JyB3aXRoIGRpcmVjdG9yeSAnJHtCfScuYCkpO2lmKCFvZS5pc0RpcmVjdG9yeSgpJiZzZS5pc0RpcmVjdG9yeSgpKXJldHVybiBxKG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSBkaXJlY3RvcnkgJyR7WX0nIHdpdGggbm9uLWRpcmVjdG9yeSAnJHtCfScuYCkpfXJl'@; put 'dHVybiBvZS5pc0RpcmVjdG9yeSgpJiZqKEIsWSk/cShuZXcgRXJyb3IoVihCLFksWCkpKTpxKG51bGwse3NyY1N0YXQ6b2UsZGVzdFN0YXQ6c2V9KX0pfSxjaGVja1BhdGhzU3luYzpmdW5jdGlvbihCLFksWCxVKXtjb25zdHtzcmNTdGF0OnEsZGVzdFN0YXQ6ZWV9PWZ1bmN0aW9uKHRlLG9l'@; put 'LHNlKXtsZXQgaGU7Y29uc3QgdWU9c2UuZGVyZWZlcmVuY2U/Rz0+ei5zdGF0U3luYyhHLHtiaWdpbnQ6ITB9KTpHPT56LmxzdGF0U3luYyhHLHtiaWdpbnQ6ITB9KSxjZT11ZSh0ZSk7dHJ5e2hlPXVlKG9lKX1jYXRjaChHKXtpZigiRU5PRU5UIj09PUcuY29kZSlyZXR1cm57c3JjU3RhdDpj'@; put 'ZSxkZXN0U3RhdDpudWxsfTt0aHJvdyBHfXJldHVybntzcmNTdGF0OmNlLGRlc3RTdGF0OmhlfX0oQixZLFUpO2lmKGVlKXtpZihFKHEsZWUpKXtjb25zdCB0ZT1LLmJhc2VuYW1lKEIpLG9lPUsuYmFzZW5hbWUoWSk7aWYoIm1vdmUiPT09WCYmdGUhPT1vZSYmdGUudG9Mb3dlckNhc2UoKT09'@; put 'PW9lLnRvTG93ZXJDYXNlKCkpcmV0dXJue3NyY1N0YXQ6cSxkZXN0U3RhdDplZSxpc0NoYW5naW5nQ2FzZTohMH07dGhyb3cgbmV3IEVycm9yKCJTb3VyY2UgYW5kIGRlc3RpbmF0aW9uIG11c3Qgbm90IGJlIHRoZSBzYW1lLiIpfWlmKHEuaXNEaXJlY3RvcnkoKSYmIWVlLmlzRGlyZWN0b3J5'@; put 'KCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlIG5vbi1kaXJlY3RvcnkgJyR7WX0nIHdpdGggZGlyZWN0b3J5ICcke0J9Jy5gKTtpZighcS5pc0RpcmVjdG9yeSgpJiZlZS5pc0RpcmVjdG9yeSgpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSBkaXJlY3Rvcnkg'@; put 'JyR7WX0nIHdpdGggbm9uLWRpcmVjdG9yeSAnJHtCfScuYCl9aWYocS5pc0RpcmVjdG9yeSgpJiZqKEIsWSkpdGhyb3cgbmV3IEVycm9yKFYoQixZLFgpKTtyZXR1cm57c3JjU3RhdDpxLGRlc3RTdGF0OmVlfX0sY2hlY2tQYXJlbnRQYXRoczpmdW5jdGlvbiBCKFksWCxVLHEsZWUpe2NvbnN0'@; put 'IHRlPUsucmVzb2x2ZShLLmRpcm5hbWUoWSkpLG9lPUsucmVzb2x2ZShLLmRpcm5hbWUoVSkpO2lmKG9lPT09dGV8fG9lPT09Sy5wYXJzZShvZSkucm9vdClyZXR1cm4gZWUoKTt6LnN0YXQob2Use2JpZ2ludDohMH0sKHNlLGhlKT0+c2U/IkVOT0VOVCI9PT1zZS5jb2RlP2VlKCk6ZWUoc2Up'@; put 'OkUoWCxoZSk/ZWUobmV3IEVycm9yKFYoWSxVLHEpKSk6QihZLFgsb2UscSxlZSkpfSxjaGVja1BhcmVudFBhdGhzU3luYzpmdW5jdGlvbiBCKFksWCxVLHEpe2NvbnN0IGVlPUsucmVzb2x2ZShLLmRpcm5hbWUoWSkpLHRlPUsucmVzb2x2ZShLLmRpcm5hbWUoVSkpO2lmKHRlPT09ZWV8fHRl'@; put 'PT09Sy5wYXJzZSh0ZSkucm9vdClyZXR1cm47bGV0IG9lO3RyeXtvZT16LnN0YXRTeW5jKHRlLHtiaWdpbnQ6ITB9KX1jYXRjaChzZSl7aWYoIkVOT0VOVCI9PT1zZS5jb2RlKXJldHVybjt0aHJvdyBzZX1pZihFKFgsb2UpKXRocm93IG5ldyBFcnJvcihWKFksVSxxKSk7cmV0dXJuIEIoWSxY'@; put 'LHRlLHEpfSxpc1NyY1N1YmRpcjpqLGFyZUlkZW50aWNhbDpFfX0sMzE4OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDc3KTtNLmV4cG9ydHM9e3V0aW1lc01pbGxpczpmdW5jdGlvbihLLEksayxFKXt6Lm9wZW4oSywicisiLChqLFYpPT57aWYoailyZXR1cm4gRShqKTt6LmZ1'@; put 'dGltZXMoVixJLGssQj0+e3ouY2xvc2UoVixZPT57RSYmRShCfHxZKX0pfSl9KX0sdXRpbWVzTWlsbGlzU3luYzpmdW5jdGlvbihLLEksayl7Y29uc3QgRT16Lm9wZW5TeW5jKEssInIrIik7cmV0dXJuIHouZnV0aW1lc1N5bmMoRSxJLGspLHouY2xvc2VTeW5jKEUpfX19LDczMzQ6KE0sTyxS'@; put 'KT0+e3ZhciB6PVIoNDE1NSk7TS5leHBvcnRzPVksWS5yZWFscGF0aD1ZLFkuc3luYz1YLFkucmVhbHBhdGhTeW5jPVgsWS5tb25rZXlwYXRjaD1mdW5jdGlvbigpe0sucmVhbHBhdGg9WSxLLnJlYWxwYXRoU3luYz1YfSxZLnVubW9ua2V5cGF0Y2g9ZnVuY3Rpb24oKXtLLnJlYWxwYXRoPUks'@; put 'Sy5yZWFscGF0aFN5bmM9a307dmFyIEs9UigyNTM1KSxJPUsucmVhbHBhdGgsaz1LLnJlYWxwYXRoU3luYyxqPS9edlswLTVdXC4vLnRlc3Qoei52ZXJzaW9uKSxWPVIoNzA1OSk7ZnVuY3Rpb24gQihVKXtyZXR1cm4gVSYmInJlYWxwYXRoIj09PVUuc3lzY2FsbCYmKCJFTE9PUCI9PT1VLmNv'@; put 'ZGV8fCJFTk9NRU0iPT09VS5jb2RlfHwiRU5BTUVUT09MT05HIj09PVUuY29kZSl9ZnVuY3Rpb24gWShVLHEsZWUpe2lmKGopcmV0dXJuIEkoVSxxLGVlKTsiZnVuY3Rpb24iPT10eXBlb2YgcSYmKGVlPXEscT1udWxsKSxJKFUscSxmdW5jdGlvbih0ZSxvZSl7Qih0ZSk/Vi5yZWFscGF0aChV'@; put 'LHEsZWUpOmVlKHRlLG9lKX0pfWZ1bmN0aW9uIFgoVSxxKXtpZihqKXJldHVybiBrKFUscSk7dHJ5e3JldHVybiBrKFUscSl9Y2F0Y2goZWUpe2lmKEIoZWUpKXJldHVybiBWLnJlYWxwYXRoU3luYyhVLHEpO3Rocm93IGVlfX19LDcwNTk6KE0sTyxSKT0+e3ZhciB6PVIoNDE1NSksSz1SKDUx'@; put 'MDgpLEk9UigyNTIwKSxrPSJ3aW4zMiI9PT16LnBsYXRmb3JtLEU9UigyNTM1KSxqPXouZW52Lk5PREVfREVCVUcmJi9mcy8udGVzdCh6LmVudi5OT0RFX0RFQlVHKTtpZihrKXZhciBCPS8oLio/KSg/OltcL1xcXSt8JCkvZztlbHNlIEI9LyguKj8pKD86W1wvXSt8JCkvZztpZihrKXZhciBZ'@; put 'PS9eKD86W2EtekEtWl06fFtcXFwvXXsyfVteXFxcL10rW1xcXC9dW15cXFwvXSspP1tcXFwvXSovO2Vsc2UgWT0vXltcL10qLztPLnJlYWxwYXRoU3luYz1mdW5jdGlvbihYLFUpe2lmKFg9SS5yZXNvbHZlKFgpLFUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChVLFgp'@; put 'KXJldHVybiBVW1hdO3ZhciBxLGVlLHRlLG9lLHNlPVgsaGU9e30sdWU9e307ZnVuY3Rpb24gY2UoKXt2YXIgZz1ZLmV4ZWMoWCk7cT1nWzBdLmxlbmd0aCxlZT1nWzBdLHRlPWdbMF0sb2U9IiIsayYmIXVlW3RlXSYmKEUubHN0YXRTeW5jKHRlKSx1ZVt0ZV09ITApfWZvcihjZSgpO3E8WC5s'@; put 'ZW5ndGg7KXtCLmxhc3RJbmRleD1xO3ZhciBHPUIuZXhlYyhYKTtpZihvZT1lZSxlZSs9R1swXSxxPUIubGFzdEluZGV4LCEodWVbdGU9b2UrR1sxXV18fFUmJlVbdGVdPT09dGUpKXt2YXIgYjtpZihVJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVSx0ZSkpYj1VW3Rl'@; put 'XTtlbHNle3ZhciBEPUUubHN0YXRTeW5jKHRlKTtpZighRC5pc1N5bWJvbGljTGluaygpKXt1ZVt0ZV09ITAsVSYmKFVbdGVdPXRlKTtjb250aW51ZX12YXIgSD1udWxsO2lmKCFrKXt2YXIgTj1ELmRldi50b1N0cmluZygzMikrIjoiK0QuaW5vLnRvU3RyaW5nKDMyKTtoZS5oYXNPd25Qcm9w'@; put 'ZXJ0eShOKSYmKEg9aGVbTl0pfW51bGw9PT1IJiYoRS5zdGF0U3luYyh0ZSksSD1FLnJlYWRsaW5rU3luYyh0ZSkpLGI9SS5yZXNvbHZlKG9lLEgpLFUmJihVW3RlXT1iKSxrfHwoaGVbTl09SCl9WD1JLnJlc29sdmUoYixYLnNsaWNlKHEpKSxjZSgpfX1yZXR1cm4gVSYmKFVbc2VdPVgpLFh9'@; put 'LE8ucmVhbHBhdGg9ZnVuY3Rpb24oWCxVLHEpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBxJiYocT1mdW5jdGlvbiBWKFgpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBYP1g6ZnVuY3Rpb24oKXt2YXIgVTtpZihqKXt2YXIgcT1uZXcgRXJyb3I7VT1mdW5jdGlvbih0ZSl7dGUmJihxLm1lc3Nh'@; put 'Z2U9dGUubWVzc2FnZSxlZSh0ZT1xKSl9fWVsc2UgVT1lZTtyZXR1cm4gVTtmdW5jdGlvbiBlZSh0ZSl7aWYodGUpe2lmKHoudGhyb3dEZXByZWNhdGlvbil0aHJvdyB0ZTtpZighei5ub0RlcHJlY2F0aW9uKXt2YXIgb2U9ImZzOiBtaXNzaW5nIGNhbGxiYWNrICIrKHRlLnN0YWNrfHx0ZS5t'@; put 'ZXNzYWdlKTt6LnRyYWNlRGVwcmVjYXRpb24/Sy50cmFjZShvZSk6Sy5lcnJvcihvZSl9fX19KCl9KFUpLFU9bnVsbCksWD1JLnJlc29sdmUoWCksVSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsWCkpcmV0dXJuIHoubmV4dFRpY2socS5iaW5kKG51bGwsbnVsbCxV'@; put 'W1hdKSk7dmFyIGVlLHRlLG9lLHNlLGhlPVgsdWU9e30sY2U9e307ZnVuY3Rpb24gRygpe3ZhciBnPVkuZXhlYyhYKTtlZT1nWzBdLmxlbmd0aCx0ZT1nWzBdLG9lPWdbMF0sc2U9IiIsayYmIWNlW29lXT9FLmxzdGF0KG9lLGZ1bmN0aW9uKEMpe2lmKEMpcmV0dXJuIHEoQyk7Y2Vbb2VdPSEw'@; put 'LGIoKX0pOnoubmV4dFRpY2soYil9ZnVuY3Rpb24gYigpe2lmKGVlPj1YLmxlbmd0aClyZXR1cm4gVSYmKFVbaGVdPVgpLHEobnVsbCxYKTtCLmxhc3RJbmRleD1lZTt2YXIgZz1CLmV4ZWMoWCk7cmV0dXJuIHNlPXRlLHRlKz1nWzBdLGVlPUIubGFzdEluZGV4LGNlW29lPXNlK2dbMV1dfHxV'@; put 'JiZVW29lXT09PW9lP3oubmV4dFRpY2soYik6VSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsb2UpP04oVVtvZV0pOkUubHN0YXQob2UsRCl9ZnVuY3Rpb24gRChnLEMpe2lmKGcpcmV0dXJuIHEoZyk7aWYoIUMuaXNTeW1ib2xpY0xpbmsoKSlyZXR1cm4gY2Vbb2Vd'@; put 'PSEwLFUmJihVW29lXT1vZSksei5uZXh0VGljayhiKTtpZighayl7dmFyIFM9Qy5kZXYudG9TdHJpbmcoMzIpKyI6IitDLmluby50b1N0cmluZygzMik7aWYodWUuaGFzT3duUHJvcGVydHkoUykpcmV0dXJuIEgobnVsbCx1ZVtTXSxvZSl9RS5zdGF0KG9lLGZ1bmN0aW9uKHYpe2lmKHYpcmV0'@; put 'dXJuIHEodik7RS5yZWFkbGluayhvZSxmdW5jdGlvbihwLHcpe2t8fCh1ZVtTXT13KSxIKHAsdyl9KX0pfWZ1bmN0aW9uIEgoZyxDLFMpe2lmKGcpcmV0dXJuIHEoZyk7dmFyIHY9SS5yZXNvbHZlKHNlLEMpO1UmJihVW1NdPXYpLE4odil9ZnVuY3Rpb24gTihnKXtYPUkucmVzb2x2ZShnLFgu'@; put 'c2xpY2UoZWUpKSxHKCl9RygpfX0sNzY0ODpNPT57InVzZSBzdHJpY3QiO3ZhciBPPUFycmF5LnByb3RvdHlwZS5zbGljZSxSPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7TS5leHBvcnRzPWZ1bmN0aW9uKHope3ZhciBLPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEt8fCJbb2JqZWN0'@; put 'IEZ1bmN0aW9uXSIhPT1SLmNhbGwoSykpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgY2FsbGVkIG9uIGluY29tcGF0aWJsZSAiK0spO2Zvcih2YXIgSSxrPU8uY2FsbChhcmd1bWVudHMsMSksRT1NYXRoLm1heCgwLEsubGVuZ3RoLWsubGVuZ3RoKSxqPVtd'@; put 'LFY9MDtWPEU7VisrKWoucHVzaCgiJCIrVik7aWYoST1GdW5jdGlvbigiYmluZGVyIiwicmV0dXJuIGZ1bmN0aW9uICgiK2ouam9pbigiLCIpKyIpeyByZXR1cm4gYmluZGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsgfSIpKGZ1bmN0aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIEkpe3ZhciBZ'@; put 'PUsuYXBwbHkodGhpcyxrLmNvbmNhdChPLmNhbGwoYXJndW1lbnRzKSkpO3JldHVybiBPYmplY3QoWSk9PT1ZP1k6dGhpc31yZXR1cm4gSy5hcHBseSh6LGsuY29uY2F0KE8uY2FsbChhcmd1bWVudHMpKSl9KSxLLnByb3RvdHlwZSl7dmFyIEI9ZnVuY3Rpb24oKXt9O0IucHJvdG90eXBlPUsu'@; put 'cHJvdG90eXBlLEkucHJvdG90eXBlPW5ldyBCLEIucHJvdG90eXBlPW51bGx9cmV0dXJuIEl9fSw4NjEyOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig3NjQ4KTtNLmV4cG9ydHM9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmR8fHp9LDIxMDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3Zh'@; put 'ciB6LEs9U3ludGF4RXJyb3IsST1GdW5jdGlvbixrPVR5cGVFcnJvcixFPWZ1bmN0aW9uKFMpe3RyeXtyZXR1cm4gSSgnInVzZSBzdHJpY3QiOyByZXR1cm4gKCcrUysiKS5jb25zdHJ1Y3RvcjsiKSgpfWNhdGNoe319LGo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtpZihqKXRy'@; put 'eXtqKHt9LCIiKX1jYXRjaHtqPW51bGx9dmFyIFY9ZnVuY3Rpb24oKXt0aHJvdyBuZXcga30sQj1qP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBWfWNhdGNoe3RyeXtyZXR1cm4gaihhcmd1bWVudHMsImNhbGxlZSIpLmdldH1jYXRjaHtyZXR1cm4gVn19fSgpOlYsWT1SKDE0MDUpKCksWD1PYmpl'@; put 'Y3QuZ2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKFMpe3JldHVybiBTLl9fcHJvdG9fX30sVT17fSxxPXR5cGVvZiBVaW50OEFycmF5PiJ1Ij96OlgoVWludDhBcnJheSksZWU9eyIlQWdncmVnYXRlRXJyb3IlIjp0eXBlb2YgQWdncmVnYXRlRXJyb3I+InUiP3o6QWdncmVnYXRlRXJyb3IsIiVB'@; put 'cnJheSUiOkFycmF5LCIlQXJyYXlCdWZmZXIlIjp0eXBlb2YgQXJyYXlCdWZmZXI+InUiP3o6QXJyYXlCdWZmZXIsIiVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJSI6WT9YKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSk6eiwiJUFzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZSUiOnosIiVBc3lu'@; put 'Y0Z1bmN0aW9uJSI6VSwiJUFzeW5jR2VuZXJhdG9yJSI6VSwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lIjpVLCIlQXN5bmNJdGVyYXRvclByb3RvdHlwZSUiOlUsIiVBdG9taWNzJSI6dHlwZW9mIEF0b21pY3M+InUiP3o6QXRvbWljcywiJUJpZ0ludCUiOnR5cGVvZiBCaWdJbnQ+InUiP3o6'@; put 'QmlnSW50LCIlQmlnSW50NjRBcnJheSUiOnR5cGVvZiBCaWdJbnQ2NEFycmF5PiJ1Ij96OkJpZ0ludDY0QXJyYXksIiVCaWdVaW50NjRBcnJheSUiOnR5cGVvZiBCaWdVaW50NjRBcnJheT4idSI/ejpCaWdVaW50NjRBcnJheSwiJUJvb2xlYW4lIjpCb29sZWFuLCIlRGF0YVZpZXclIjp0eXBl'@; put 'b2YgRGF0YVZpZXc+InUiP3o6RGF0YVZpZXcsIiVEYXRlJSI6RGF0ZSwiJWRlY29kZVVSSSUiOmRlY29kZVVSSSwiJWRlY29kZVVSSUNvbXBvbmVudCUiOmRlY29kZVVSSUNvbXBvbmVudCwiJWVuY29kZVVSSSUiOmVuY29kZVVSSSwiJWVuY29kZVVSSUNvbXBvbmVudCUiOmVuY29kZVVSSUNv'@; put 'bXBvbmVudCwiJUVycm9yJSI6RXJyb3IsIiVldmFsJSI6ZXZhbCwiJUV2YWxFcnJvciUiOkV2YWxFcnJvciwiJUZsb2F0MzJBcnJheSUiOnR5cGVvZiBGbG9hdDMyQXJyYXk+InUiP3o6RmxvYXQzMkFycmF5LCIlRmxvYXQ2NEFycmF5JSI6dHlwZW9mIEZsb2F0NjRBcnJheT4idSI/ejpGbG9h'@; put 'dDY0QXJyYXksIiVGaW5hbGl6YXRpb25SZWdpc3RyeSUiOnR5cGVvZiBGaW5hbGl6YXRpb25SZWdpc3RyeT4idSI/ejpGaW5hbGl6YXRpb25SZWdpc3RyeSwiJUZ1bmN0aW9uJSI6SSwiJUdlbmVyYXRvckZ1bmN0aW9uJSI6VSwiJUludDhBcnJheSUiOnR5cGVvZiBJbnQ4QXJyYXk+InUiP3o6'@; put 'SW50OEFycmF5LCIlSW50MTZBcnJheSUiOnR5cGVvZiBJbnQxNkFycmF5PiJ1Ij96OkludDE2QXJyYXksIiVJbnQzMkFycmF5JSI6dHlwZW9mIEludDMyQXJyYXk+InUiP3o6SW50MzJBcnJheSwiJWlzRmluaXRlJSI6aXNGaW5pdGUsIiVpc05hTiUiOmlzTmFOLCIlSXRlcmF0b3JQcm90b3R5'@; put 'cGUlIjpZP1goWChbXVtTeW1ib2wuaXRlcmF0b3JdKCkpKTp6LCIlSlNPTiUiOiJvYmplY3QiPT10eXBlb2YgSlNPTj9KU09OOnosIiVNYXAlIjp0eXBlb2YgTWFwPiJ1Ij96Ok1hcCwiJU1hcEl0ZXJhdG9yUHJvdG90eXBlJSI6dHlwZW9mIE1hcDwidSImJlk/WCgobmV3IE1hcClbU3ltYm9s'@; put 'Lml0ZXJhdG9yXSgpKTp6LCIlTWF0aCUiOk1hdGgsIiVOdW1iZXIlIjpOdW1iZXIsIiVPYmplY3QlIjpPYmplY3QsIiVwYXJzZUZsb2F0JSI6cGFyc2VGbG9hdCwiJXBhcnNlSW50JSI6cGFyc2VJbnQsIiVQcm9taXNlJSI6dHlwZW9mIFByb21pc2U+InUiP3o6UHJvbWlzZSwiJVByb3h5JSI6'@; put 'dHlwZW9mIFByb3h5PiJ1Ij96OlByb3h5LCIlUmFuZ2VFcnJvciUiOlJhbmdlRXJyb3IsIiVSZWZlcmVuY2VFcnJvciUiOlJlZmVyZW5jZUVycm9yLCIlUmVmbGVjdCUiOnR5cGVvZiBSZWZsZWN0PiJ1Ij96OlJlZmxlY3QsIiVSZWdFeHAlIjpSZWdFeHAsIiVTZXQlIjp0eXBlb2YgU2V0PiJ1'@; put 'Ij96OlNldCwiJVNldEl0ZXJhdG9yUHJvdG90eXBlJSI6dHlwZW9mIFNldDwidSImJlk/WCgobmV3IFNldClbU3ltYm9sLml0ZXJhdG9yXSgpKTp6LCIlU2hhcmVkQXJyYXlCdWZmZXIlIjp0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI+InUiP3o6U2hhcmVkQXJyYXlCdWZmZXIsIiVTdHJpbmcl'@; put 'IjpTdHJpbmcsIiVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUiOlk/WCgiIltTeW1ib2wuaXRlcmF0b3JdKCkpOnosIiVTeW1ib2wlIjpZP1N5bWJvbDp6LCIlU3ludGF4RXJyb3IlIjpLLCIlVGhyb3dUeXBlRXJyb3IlIjpCLCIlVHlwZWRBcnJheSUiOnEsIiVUeXBlRXJyb3IlIjprLCIlVWlu'@; put 'dDhBcnJheSUiOnR5cGVvZiBVaW50OEFycmF5PiJ1Ij96OlVpbnQ4QXJyYXksIiVVaW50OENsYW1wZWRBcnJheSUiOnR5cGVvZiBVaW50OENsYW1wZWRBcnJheT4idSI/ejpVaW50OENsYW1wZWRBcnJheSwiJVVpbnQxNkFycmF5JSI6dHlwZW9mIFVpbnQxNkFycmF5PiJ1Ij96OlVpbnQxNkFy'@; put 'cmF5LCIlVWludDMyQXJyYXklIjp0eXBlb2YgVWludDMyQXJyYXk+InUiP3o6VWludDMyQXJyYXksIiVVUklFcnJvciUiOlVSSUVycm9yLCIlV2Vha01hcCUiOnR5cGVvZiBXZWFrTWFwPiJ1Ij96OldlYWtNYXAsIiVXZWFrUmVmJSI6dHlwZW9mIFdlYWtSZWY+InUiP3o6V2Vha1JlZiwiJVdl'@; put 'YWtTZXQlIjp0eXBlb2YgV2Vha1NldD4idSI/ejpXZWFrU2V0fTt0cnl7bnVsbC5lcnJvcn1jYXRjaChTKXt2YXIgdGU9WChYKFMpKTtlZVsiJUVycm9yLnByb3RvdHlwZSUiXT10ZX12YXIgb2U9ZnVuY3Rpb24gUyh2KXt2YXIgcDtpZigiJUFzeW5jRnVuY3Rpb24lIj09PXYpcD1FKCJhc3lu'@; put 'YyBmdW5jdGlvbiAoKSB7fSIpO2Vsc2UgaWYoIiVHZW5lcmF0b3JGdW5jdGlvbiUiPT09dilwPUUoImZ1bmN0aW9uKiAoKSB7fSIpO2Vsc2UgaWYoIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJSI9PT12KXA9RSgiYXN5bmMgZnVuY3Rpb24qICgpIHt9Iik7ZWxzZSBpZigiJUFzeW5jR2VuZXJh'@; put 'dG9yJSI9PT12KXt2YXIgdz1TKCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiKTt3JiYocD13LnByb3RvdHlwZSl9ZWxzZSBpZigiJUFzeW5jSXRlcmF0b3JQcm90b3R5cGUlIj09PXYpe3ZhciBKPVMoIiVBc3luY0dlbmVyYXRvciUiKTtKJiYocD1YKEoucHJvdG90eXBlKSl9cmV0dXJuIGVl'@; put 'W3ZdPXAscH0sc2U9eyIlQXJyYXlCdWZmZXJQcm90b3R5cGUlIjpbIkFycmF5QnVmZmVyIiwicHJvdG90eXBlIl0sIiVBcnJheVByb3RvdHlwZSUiOlsiQXJyYXkiLCJwcm90b3R5cGUiXSwiJUFycmF5UHJvdG9fZW50cmllcyUiOlsiQXJyYXkiLCJwcm90b3R5cGUiLCJlbnRyaWVzIl0sIiVB'@; put 'cnJheVByb3RvX2ZvckVhY2glIjpbIkFycmF5IiwicHJvdG90eXBlIiwiZm9yRWFjaCJdLCIlQXJyYXlQcm90b19rZXlzJSI6WyJBcnJheSIsInByb3RvdHlwZSIsImtleXMiXSwiJUFycmF5UHJvdG9fdmFsdWVzJSI6WyJBcnJheSIsInByb3RvdHlwZSIsInZhbHVlcyJdLCIlQXN5bmNGdW5j'@; put 'dGlvblByb3RvdHlwZSUiOlsiQXN5bmNGdW5jdGlvbiIsInByb3RvdHlwZSJdLCIlQXN5bmNHZW5lcmF0b3IlIjpbIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUFzeW5jR2VuZXJhdG9yUHJvdG90eXBlJSI6WyJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIiwicHJvdG90'@; put 'eXBlIiwicHJvdG90eXBlIl0sIiVCb29sZWFuUHJvdG90eXBlJSI6WyJCb29sZWFuIiwicHJvdG90eXBlIl0sIiVEYXRhVmlld1Byb3RvdHlwZSUiOlsiRGF0YVZpZXciLCJwcm90b3R5cGUiXSwiJURhdGVQcm90b3R5cGUlIjpbIkRhdGUiLCJwcm90b3R5cGUiXSwiJUVycm9yUHJvdG90eXBl'@; put 'JSI6WyJFcnJvciIsInByb3RvdHlwZSJdLCIlRXZhbEVycm9yUHJvdG90eXBlJSI6WyJFdmFsRXJyb3IiLCJwcm90b3R5cGUiXSwiJUZsb2F0MzJBcnJheVByb3RvdHlwZSUiOlsiRmxvYXQzMkFycmF5IiwicHJvdG90eXBlIl0sIiVGbG9hdDY0QXJyYXlQcm90b3R5cGUlIjpbIkZsb2F0NjRB'@; put 'cnJheSIsInByb3RvdHlwZSJdLCIlRnVuY3Rpb25Qcm90b3R5cGUlIjpbIkZ1bmN0aW9uIiwicHJvdG90eXBlIl0sIiVHZW5lcmF0b3IlIjpbIkdlbmVyYXRvckZ1bmN0aW9uIiwicHJvdG90eXBlIl0sIiVHZW5lcmF0b3JQcm90b3R5cGUlIjpbIkdlbmVyYXRvckZ1bmN0aW9uIiwicHJvdG90'@; put 'eXBlIiwicHJvdG90eXBlIl0sIiVJbnQ4QXJyYXlQcm90b3R5cGUlIjpbIkludDhBcnJheSIsInByb3RvdHlwZSJdLCIlSW50MTZBcnJheVByb3RvdHlwZSUiOlsiSW50MTZBcnJheSIsInByb3RvdHlwZSJdLCIlSW50MzJBcnJheVByb3RvdHlwZSUiOlsiSW50MzJBcnJheSIsInByb3RvdHlw'@; put 'ZSJdLCIlSlNPTlBhcnNlJSI6WyJKU09OIiwicGFyc2UiXSwiJUpTT05TdHJpbmdpZnklIjpbIkpTT04iLCJzdHJpbmdpZnkiXSwiJU1hcFByb3RvdHlwZSUiOlsiTWFwIiwicHJvdG90eXBlIl0sIiVOdW1iZXJQcm90b3R5cGUlIjpbIk51bWJlciIsInByb3RvdHlwZSJdLCIlT2JqZWN0UHJv'@; put 'dG90eXBlJSI6WyJPYmplY3QiLCJwcm90b3R5cGUiXSwiJU9ialByb3RvX3RvU3RyaW5nJSI6WyJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyJdLCIlT2JqUHJvdG9fdmFsdWVPZiUiOlsiT2JqZWN0IiwicHJvdG90eXBlIiwidmFsdWVPZiJdLCIlUHJvbWlzZVByb3RvdHlwZSUiOlsi'@; put 'UHJvbWlzZSIsInByb3RvdHlwZSJdLCIlUHJvbWlzZVByb3RvX3RoZW4lIjpbIlByb21pc2UiLCJwcm90b3R5cGUiLCJ0aGVuIl0sIiVQcm9taXNlX2FsbCUiOlsiUHJvbWlzZSIsImFsbCJdLCIlUHJvbWlzZV9yZWplY3QlIjpbIlByb21pc2UiLCJyZWplY3QiXSwiJVByb21pc2VfcmVzb2x2'@; put 'ZSUiOlsiUHJvbWlzZSIsInJlc29sdmUiXSwiJVJhbmdlRXJyb3JQcm90b3R5cGUlIjpbIlJhbmdlRXJyb3IiLCJwcm90b3R5cGUiXSwiJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJSI6WyJSZWZlcmVuY2VFcnJvciIsInByb3RvdHlwZSJdLCIlUmVnRXhwUHJvdG90eXBlJSI6WyJSZWdFeHAi'@; put 'LCJwcm90b3R5cGUiXSwiJVNldFByb3RvdHlwZSUiOlsiU2V0IiwicHJvdG90eXBlIl0sIiVTaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZSUiOlsiU2hhcmVkQXJyYXlCdWZmZXIiLCJwcm90b3R5cGUiXSwiJVN0cmluZ1Byb3RvdHlwZSUiOlsiU3RyaW5nIiwicHJvdG90eXBlIl0sIiVTeW1i'@; put 'b2xQcm90b3R5cGUlIjpbIlN5bWJvbCIsInByb3RvdHlwZSJdLCIlU3ludGF4RXJyb3JQcm90b3R5cGUlIjpbIlN5bnRheEVycm9yIiwicHJvdG90eXBlIl0sIiVUeXBlZEFycmF5UHJvdG90eXBlJSI6WyJUeXBlZEFycmF5IiwicHJvdG90eXBlIl0sIiVUeXBlRXJyb3JQcm90b3R5cGUlIjpb'@; put 'IlR5cGVFcnJvciIsInByb3RvdHlwZSJdLCIlVWludDhBcnJheVByb3RvdHlwZSUiOlsiVWludDhBcnJheSIsInByb3RvdHlwZSJdLCIlVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlIjpbIlVpbnQ4Q2xhbXBlZEFycmF5IiwicHJvdG90eXBlIl0sIiVVaW50MTZBcnJheVByb3RvdHlwZSUi'@; put 'OlsiVWludDE2QXJyYXkiLCJwcm90b3R5cGUiXSwiJVVpbnQzMkFycmF5UHJvdG90eXBlJSI6WyJVaW50MzJBcnJheSIsInByb3RvdHlwZSJdLCIlVVJJRXJyb3JQcm90b3R5cGUlIjpbIlVSSUVycm9yIiwicHJvdG90eXBlIl0sIiVXZWFrTWFwUHJvdG90eXBlJSI6WyJXZWFrTWFwIiwicHJv'@; put 'dG90eXBlIl0sIiVXZWFrU2V0UHJvdG90eXBlJSI6WyJXZWFrU2V0IiwicHJvdG90eXBlIl19LGhlPVIoODYxMiksdWU9Uig3NjQyKSxjZT1oZS5jYWxsKEZ1bmN0aW9uLmNhbGwsQXJyYXkucHJvdG90eXBlLmNvbmNhdCksRz1oZS5jYWxsKEZ1bmN0aW9uLmFwcGx5LEFycmF5LnByb3RvdHlw'@; put 'ZS5zcGxpY2UpLGI9aGUuY2FsbChGdW5jdGlvbi5jYWxsLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksRD1oZS5jYWxsKEZ1bmN0aW9uLmNhbGwsU3RyaW5nLnByb3RvdHlwZS5zbGljZSksSD1oZS5jYWxsKEZ1bmN0aW9uLmNhbGwsUmVnRXhwLnByb3RvdHlwZS5leGVjKSxOPS9bXiUuW1xd'@; put 'XSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwlJCkpL2csZz0vXFwoXFwpPy9nLEM9ZnVuY3Rpb24oUyx2KXt2YXIgcCx3PVM7aWYodWUoc2UsdykmJih3PSIlIisocD1zZVt3XSlbMF0r'@; put 'IiUiKSx1ZShlZSx3KSl7dmFyIEo9ZWVbd107aWYoSj09PVUmJihKPW9lKHcpKSx2b2lkIDA9PT1KJiYhdil0aHJvdyBuZXcgaygiaW50cmluc2ljICIrUysiIGV4aXN0cywgYnV0IGlzIG5vdCBhdmFpbGFibGUuIFBsZWFzZSBmaWxlIGFuIGlzc3VlISIpO3JldHVybnthbGlhczpwLG5hbWU6'@; put 'dyx2YWx1ZTpKfX10aHJvdyBuZXcgSygiaW50cmluc2ljICIrUysiIGRvZXMgbm90IGV4aXN0ISIpfTtNLmV4cG9ydHM9ZnVuY3Rpb24oUyx2KXtpZigic3RyaW5nIiE9dHlwZW9mIFN8fDA9PT1TLmxlbmd0aCl0aHJvdyBuZXcgaygiaW50cmluc2ljIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0'@; put 'eSBzdHJpbmciKTtpZihhcmd1bWVudHMubGVuZ3RoPjEmJiJib29sZWFuIiE9dHlwZW9mIHYpdGhyb3cgbmV3IGsoJyJhbGxvd01pc3NpbmciIGFyZ3VtZW50IG11c3QgYmUgYSBib29sZWFuJyk7aWYobnVsbD09PUgoL14lP1teJV0qJT8kLyxTKSl0aHJvdyBuZXcgSygiYCVgIG1heSBub3Qg'@; put 'YmUgcHJlc2VudCBhbnl3aGVyZSBidXQgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBpbnRyaW5zaWMgbmFtZSIpO3ZhciBwPWZ1bmN0aW9uKFllKXt2YXIgUWU9RChZZSwwLDEpLGx0PUQoWWUsLTEpO2lmKCIlIj09PVFlJiYiJSIhPT1sdCl0aHJvdyBuZXcgSygiaW52YWxpZCBp'@; put 'bnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBjbG9zaW5nIGAlYCIpO2lmKCIlIj09PWx0JiYiJSIhPT1RZSl0aHJvdyBuZXcgSygiaW52YWxpZCBpbnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBvcGVuaW5nIGAlYCIpO3ZhciBQZT1bXTtyZXR1cm4gYihZZSxOLGZ1bmN0aW9uKGJlLEFlLFRl'@; put 'LHFlKXtQZVtQZS5sZW5ndGhdPVRlP2IocWUsZywiJDEiKTpBZXx8YmV9KSxQZX0oUyksdz1wLmxlbmd0aD4wP3BbMF06IiIsSj1DKCIlIit3KyIlIix2KSxuZT1KLm5hbWUsZGU9Si52YWx1ZSxmZT0hMSx4ZT1KLmFsaWFzO3hlJiYodz14ZVswXSxHKHAsY2UoWzAsMV0seGUpKSk7Zm9yKHZh'@; put 'ciBMZT0xLEZlPSEwO0xlPHAubGVuZ3RoO0xlKz0xKXt2YXIgT2U9cFtMZV0samU9RChPZSwwLDEpLFdlPUQoT2UsLTEpO2lmKCgnIic9PT1qZXx8IiciPT09amV8fCJgIj09PWplfHwnIic9PT1XZXx8IiciPT09V2V8fCJgIj09PVdlKSYmamUhPT1XZSl0aHJvdyBuZXcgSygicHJvcGVydHkg'@; put 'bmFtZXMgd2l0aCBxdW90ZXMgbXVzdCBoYXZlIG1hdGNoaW5nIHF1b3RlcyIpO2lmKCJjb25zdHJ1Y3RvciIhPT1PZSYmRmV8fChmZT0hMCksdWUoZWUsbmU9IiUiKyh3Kz0iLiIrT2UpKyIlIikpZGU9ZWVbbmVdO2Vsc2UgaWYobnVsbCE9ZGUpe2lmKCEoT2UgaW4gZGUpKXtpZighdil0aHJv'@; put 'dyBuZXcgaygiYmFzZSBpbnRyaW5zaWMgZm9yICIrUysiIGV4aXN0cywgYnV0IHRoZSBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlLiIpO3JldHVybn1pZihqJiZMZSsxPj1wLmxlbmd0aCl7dmFyIEtlPWooZGUsT2UpO2RlPShGZT0hIUtlKSYmImdldCJpbiBLZSYmISgib3JpZ2luYWxWYWx1'@; put 'ZSJpbiBLZS5nZXQpP0tlLmdldDpkZVtPZV19ZWxzZSBGZT11ZShkZSxPZSksZGU9ZGVbT2VdO0ZlJiYhZmUmJihlZVtuZV09ZGUpfX1yZXR1cm4gZGV9fSw2NzcyOihNLE8sUik9Pnt2YXIgej1SKDQxNTUpO2Z1bmN0aW9uIEsocSxlZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3du'@; put 'UHJvcGVydHkuY2FsbChxLGVlKX1PLnNldG9wdHM9ZnVuY3Rpb24ocSxlZSx0ZSl7aWYodGV8fCh0ZT17fSksdGUubWF0Y2hCYXNlJiYtMT09PWVlLmluZGV4T2YoIi8iKSl7aWYodGUubm9nbG9ic3Rhcil0aHJvdyBuZXcgRXJyb3IoImJhc2UgbWF0Y2hpbmcgcmVxdWlyZXMgZ2xvYnN0YXIi'@; put 'KTtlZT0iKiovIitlZX12YXIgc2U7cS5zaWxlbnQ9ISF0ZS5zaWxlbnQscS5wYXR0ZXJuPWVlLHEuc3RyaWN0PSExIT09dGUuc3RyaWN0LHEucmVhbHBhdGg9ISF0ZS5yZWFscGF0aCxxLnJlYWxwYXRoQ2FjaGU9dGUucmVhbHBhdGhDYWNoZXx8T2JqZWN0LmNyZWF0ZShudWxsKSxxLmZvbGxv'@; put 'dz0hIXRlLmZvbGxvdyxxLmRvdD0hIXRlLmRvdCxxLm1hcms9ISF0ZS5tYXJrLHEubm9kaXI9ISF0ZS5ub2RpcixxLm5vZGlyJiYocS5tYXJrPSEwKSxxLnN5bmM9ISF0ZS5zeW5jLHEubm91bmlxdWU9ISF0ZS5ub3VuaXF1ZSxxLm5vbnVsbD0hIXRlLm5vbnVsbCxxLm5vc29ydD0hIXRlLm5v'@; put 'c29ydCxxLm5vY2FzZT0hIXRlLm5vY2FzZSxxLnN0YXQ9ISF0ZS5zdGF0LHEubm9wcm9jZXNzPSEhdGUubm9wcm9jZXNzLHEuYWJzb2x1dGU9ISF0ZS5hYnNvbHV0ZSxxLmZzPXRlLmZzfHxJLHEubWF4TGVuZ3RoPXRlLm1heExlbmd0aHx8MS8wLHEuY2FjaGU9dGUuY2FjaGV8fE9iamVjdC5j'@; put 'cmVhdGUobnVsbCkscS5zdGF0Q2FjaGU9dGUuc3RhdENhY2hlfHxPYmplY3QuY3JlYXRlKG51bGwpLHEuc3ltbGlua3M9dGUuc3ltbGlua3N8fE9iamVjdC5jcmVhdGUobnVsbCksKHNlPXEpLmlnbm9yZT10ZS5pZ25vcmV8fFtdLEFycmF5LmlzQXJyYXkoc2UuaWdub3JlKXx8KHNlLmlnbm9y'@; put 'ZT1bc2UuaWdub3JlXSksc2UuaWdub3JlLmxlbmd0aCYmKHNlLmlnbm9yZT1zZS5pZ25vcmUubWFwKFkpKSxxLmNoYW5nZWRDd2Q9ITE7dmFyIG9lPXouY3dkKCk7Syh0ZSwiY3dkIik/KHEuY3dkPWsucmVzb2x2ZSh0ZS5jd2QpLHEuY2hhbmdlZEN3ZD1xLmN3ZCE9PW9lKTpxLmN3ZD1vZSxx'@; put 'LnJvb3Q9dGUucm9vdHx8ay5yZXNvbHZlKHEuY3dkLCIvIikscS5yb290PWsucmVzb2x2ZShxLnJvb3QpLCJ3aW4zMiI9PT16LnBsYXRmb3JtJiYocS5yb290PXEucm9vdC5yZXBsYWNlKC9cXC9nLCIvIikpLHEuY3dkQWJzPWoocS5jd2QpP3EuY3dkOlgocSxxLmN3ZCksIndpbjMyIj09PXou'@; put 'cGxhdGZvcm0mJihxLmN3ZEFicz1xLmN3ZEFicy5yZXBsYWNlKC9cXC9nLCIvIikpLHEubm9tb3VudD0hIXRlLm5vbW91bnQsdGUubm9uZWdhdGU9ITAsdGUubm9jb21tZW50PSEwLHRlLmFsbG93V2luZG93c0VzY2FwZT0hMSxxLm1pbmltYXRjaD1uZXcgVihlZSx0ZSkscS5vcHRpb25zPXEu'@; put 'bWluaW1hdGNoLm9wdGlvbnN9LE8ub3duUHJvcD1LLE8ubWFrZUFicz1YLE8uZmluaXNoPWZ1bmN0aW9uKHEpe2Zvcih2YXIgZWU9cS5ub3VuaXF1ZSx0ZT1lZT9bXTpPYmplY3QuY3JlYXRlKG51bGwpLG9lPTAsc2U9cS5tYXRjaGVzLmxlbmd0aDtvZTxzZTtvZSsrKXt2YXIgaGU9cS5tYXRj'@; put 'aGVzW29lXTtpZihoZSYmMCE9PU9iamVjdC5rZXlzKGhlKS5sZW5ndGgpe3ZhciB1ZT1PYmplY3Qua2V5cyhoZSk7ZWU/dGUucHVzaC5hcHBseSh0ZSx1ZSk6dWUuZm9yRWFjaChmdW5jdGlvbihHKXt0ZVtHXT0hMH0pfWVsc2UgaWYocS5ub251bGwpe3ZhciBjZT1xLm1pbmltYXRjaC5nbG9i'@; put 'U2V0W29lXTtlZT90ZS5wdXNoKGNlKTp0ZVtjZV09ITB9fWlmKGVlfHwodGU9T2JqZWN0LmtleXModGUpKSxxLm5vc29ydHx8KHRlPXRlLnNvcnQoQikpLHEubWFyayl7Zm9yKG9lPTA7b2U8dGUubGVuZ3RoO29lKyspdGVbb2VdPXEuX21hcmsodGVbb2VdKTtxLm5vZGlyJiYodGU9dGUuZmls'@; put 'dGVyKGZ1bmN0aW9uKEcpe3ZhciBiPSEvXC8kLy50ZXN0KEcpLEQ9cS5jYWNoZVtHXXx8cS5jYWNoZVtYKHEsRyldO3JldHVybiBiJiZEJiYoYj0iRElSIiE9PUQmJiFBcnJheS5pc0FycmF5KEQpKSxifSkpfXEuaWdub3JlLmxlbmd0aCYmKHRlPXRlLmZpbHRlcihmdW5jdGlvbihHKXtyZXR1'@; put 'cm4hVShxLEcpfSkpLHEuZm91bmQ9dGV9LE8ubWFyaz1mdW5jdGlvbihxLGVlKXt2YXIgdGU9WChxLGVlKSxvZT1xLmNhY2hlW3RlXSxzZT1lZTtpZihvZSl7dmFyIGhlPSJESVIiPT09b2V8fEFycmF5LmlzQXJyYXkob2UpLHVlPSIvIj09PWVlLnNsaWNlKC0xKTtpZihoZSYmIXVlP3NlKz0i'@; put 'LyI6IWhlJiZ1ZSYmKHNlPXNlLnNsaWNlKDAsLTEpKSxzZSE9PWVlKXt2YXIgY2U9WChxLHNlKTtxLnN0YXRDYWNoZVtjZV09cS5zdGF0Q2FjaGVbdGVdLHEuY2FjaGVbY2VdPXEuY2FjaGVbdGVdfX1yZXR1cm4gc2V9LE8uaXNJZ25vcmVkPVUsTy5jaGlsZHJlbklnbm9yZWQ9ZnVuY3Rpb24o'@; put 'cSxlZSl7cmV0dXJuISFxLmlnbm9yZS5sZW5ndGgmJnEuaWdub3JlLnNvbWUoZnVuY3Rpb24odGUpe3JldHVybiEoIXRlLmdtYXRjaGVyfHwhdGUuZ21hdGNoZXIubWF0Y2goZWUpKX0pfTt2YXIgST1SKDM3MTApLGs9UigyNTIwKSxFPVIoMTE3MSksaj1SKDQwOTUpLFY9RS5NaW5pbWF0Y2g7'@; put 'ZnVuY3Rpb24gQihxLGVlKXtyZXR1cm4gcS5sb2NhbGVDb21wYXJlKGVlLCJlbiIpfWZ1bmN0aW9uIFkocSl7dmFyIGVlPW51bGw7aWYoIi8qKiI9PT1xLnNsaWNlKC0zKSl7dmFyIHRlPXEucmVwbGFjZSgvKFwvXCpcKikrJC8sIiIpO2VlPW5ldyBWKHRlLHtkb3Q6ITB9KX1yZXR1cm57bWF0'@; put 'Y2hlcjpuZXcgVihxLHtkb3Q6ITB9KSxnbWF0Y2hlcjplZX19ZnVuY3Rpb24gWChxLGVlKXt2YXIgdGU9ZWU7cmV0dXJuIHRlPSIvIj09PWVlLmNoYXJBdCgwKT9rLmpvaW4ocS5yb290LGVlKTpqKGVlKXx8IiI9PT1lZT9lZTpxLmNoYW5nZWRDd2Q/ay5yZXNvbHZlKHEuY3dkLGVlKTprLnJl'@; put 'c29sdmUoZWUpLCJ3aW4zMiI9PT16LnBsYXRmb3JtJiYodGU9dGUucmVwbGFjZSgvXFwvZywiLyIpKSx0ZX1mdW5jdGlvbiBVKHEsZWUpe3JldHVybiEhcS5pZ25vcmUubGVuZ3RoJiZxLmlnbm9yZS5zb21lKGZ1bmN0aW9uKHRlKXtyZXR1cm4gdGUubWF0Y2hlci5tYXRjaChlZSl8fCEoIXRl'@; put 'LmdtYXRjaGVyfHwhdGUuZ21hdGNoZXIubWF0Y2goZWUpKX0pfX0sMjg4NDooTSxPLFIpPT57dmFyIHo9Uig0MTU1KSxLPVIoNTEwOCk7TS5leHBvcnRzPXVlO3ZhciBJPVIoNzMzNCksaz1SKDExNzEpLEU9Uig1NzE3KSxqPVIoNzE4NykuRXZlbnRFbWl0dGVyLFY9UigyNTIwKSxCPVIoOTI4'@; put 'MiksWT1SKDQwOTUpLFg9Uig0NzUxKSxVPVIoNjc3MikscT1VLnNldG9wdHMsZWU9VS5vd25Qcm9wLHRlPVIoNzg0NCksb2U9KFIoOTUzOSksVS5jaGlsZHJlbklnbm9yZWQpLHNlPVUuaXNJZ25vcmVkLGhlPVIoNzc4KTtmdW5jdGlvbiB1ZShiLEQsSCl7aWYoImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IEQmJihIPUQsRD17fSksRHx8KEQ9e30pLEQuc3luYyl7aWYoSCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBwcm92aWRlZCB0byBzeW5jIGdsb2IiKTtyZXR1cm4gWChiLEQpfXJldHVybiBuZXcgRyhiLEQsSCl9dWUuc3luYz1YO3ZhciBjZT11ZS5HbG9iU3luYz1YLkdsb2JTeW5j'@; put 'O2Z1bmN0aW9uIEcoYixELEgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBEJiYoSD1ELEQ9bnVsbCksRCYmRC5zeW5jKXtpZihIKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIHByb3ZpZGVkIHRvIHN5bmMgZ2xvYiIpO3JldHVybiBuZXcgY2UoYixEKX1pZighKHRoaXMgaW5zdGFuY2Vv'@; put 'ZiBHKSlyZXR1cm4gbmV3IEcoYixELEgpO3EodGhpcyxiLEQpLHRoaXMuX2RpZFJlYWxQYXRoPSExO3ZhciBOPXRoaXMubWluaW1hdGNoLnNldC5sZW5ndGg7dGhpcy5tYXRjaGVzPW5ldyBBcnJheShOKSwiZnVuY3Rpb24iPT10eXBlb2YgSCYmKEg9aGUoSCksdGhpcy5vbigiZXJyb3IiLEgp'@; put 'LHRoaXMub24oImVuZCIsZnVuY3Rpb24ocCl7SChudWxsLHApfSkpO3ZhciBnPXRoaXM7aWYodGhpcy5fcHJvY2Vzc2luZz0wLHRoaXMuX2VtaXRRdWV1ZT1bXSx0aGlzLl9wcm9jZXNzUXVldWU9W10sdGhpcy5wYXVzZWQ9ITEsdGhpcy5ub3Byb2Nlc3MpcmV0dXJuIHRoaXM7aWYoMD09PU4p'@; put 'cmV0dXJuIHYoKTtmb3IodmFyIEM9ITAsUz0wO1M8TjtTKyspdGhpcy5fcHJvY2Vzcyh0aGlzLm1pbmltYXRjaC5zZXRbU10sUywhMSx2KTtmdW5jdGlvbiB2KCl7LS1nLl9wcm9jZXNzaW5nLGcuX3Byb2Nlc3Npbmc8PTAmJihDP3oubmV4dFRpY2soZnVuY3Rpb24oKXtnLl9maW5pc2goKX0p'@; put 'OmcuX2ZpbmlzaCgpKX1DPSExfXVlLmdsb2I9dWUsdWUuaGFzTWFnaWM9ZnVuY3Rpb24oYixEKXt2YXIgSD1mdW5jdGlvbihDLFMpe2lmKG51bGw9PT1TfHwib2JqZWN0IiE9dHlwZW9mIFMpcmV0dXJuIEM7Zm9yKHZhciB2PU9iamVjdC5rZXlzKFMpLHA9di5sZW5ndGg7cC0tOylDW3ZbcF1d'@; put 'PVNbdltwXV07cmV0dXJuIEN9KHt9LEQpO0gubm9wcm9jZXNzPSEwO3ZhciBOPW5ldyBHKGIsSCkubWluaW1hdGNoLnNldDtpZighYilyZXR1cm4hMTtpZihOLmxlbmd0aD4xKXJldHVybiEwO2Zvcih2YXIgZz0wO2c8TlswXS5sZW5ndGg7ZysrKWlmKCJzdHJpbmciIT10eXBlb2YgTlswXVtn'@; put 'XSlyZXR1cm4hMDtyZXR1cm4hMX0sdWUuR2xvYj1HLEUoRyxqKSxHLnByb3RvdHlwZS5fZmluaXNoPWZ1bmN0aW9uKCl7aWYoQih0aGlzIGluc3RhbmNlb2YgRyksIXRoaXMuYWJvcnRlZCl7aWYodGhpcy5yZWFscGF0aCYmIXRoaXMuX2RpZFJlYWxwYXRoKXJldHVybiB0aGlzLl9yZWFscGF0'@; put 'aCgpO1UuZmluaXNoKHRoaXMpLHRoaXMuZW1pdCgiZW5kIix0aGlzLmZvdW5kKX19LEcucHJvdG90eXBlLl9yZWFscGF0aD1mdW5jdGlvbigpe2lmKCF0aGlzLl9kaWRSZWFscGF0aCl7dGhpcy5fZGlkUmVhbHBhdGg9ITA7dmFyIGI9dGhpcy5tYXRjaGVzLmxlbmd0aDtpZigwPT09YilyZXR1'@; put 'cm4gdGhpcy5fZmluaXNoKCk7Zm9yKHZhciBEPXRoaXMsSD0wO0g8dGhpcy5tYXRjaGVzLmxlbmd0aDtIKyspdGhpcy5fcmVhbHBhdGhTZXQoSCxOKX1mdW5jdGlvbiBOKCl7MD09LS1iJiZELl9maW5pc2goKX19LEcucHJvdG90eXBlLl9yZWFscGF0aFNldD1mdW5jdGlvbihiLEQpe3ZhciBI'@; put 'PXRoaXMubWF0Y2hlc1tiXTtpZighSClyZXR1cm4gRCgpO3ZhciBOPU9iamVjdC5rZXlzKEgpLGc9dGhpcyxDPU4ubGVuZ3RoO2lmKDA9PT1DKXJldHVybiBEKCk7dmFyIFM9dGhpcy5tYXRjaGVzW2JdPU9iamVjdC5jcmVhdGUobnVsbCk7Ti5mb3JFYWNoKGZ1bmN0aW9uKHYscCl7dj1nLl9t'@; put 'YWtlQWJzKHYpLEkucmVhbHBhdGgodixnLnJlYWxwYXRoQ2FjaGUsZnVuY3Rpb24odyxKKXt3PyJzdGF0Ij09PXcuc3lzY2FsbD9TW3ZdPSEwOmcuZW1pdCgiZXJyb3IiLHcpOlNbSl09ITAsMD09LS1DJiYoZy5tYXRjaGVzW2JdPVMsRCgpKX0pfSl9LEcucHJvdG90eXBlLl9tYXJrPWZ1bmN0'@; put 'aW9uKGIpe3JldHVybiBVLm1hcmsodGhpcyxiKX0sRy5wcm90b3R5cGUuX21ha2VBYnM9ZnVuY3Rpb24oYil7cmV0dXJuIFUubWFrZUFicyh0aGlzLGIpfSxHLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuYWJvcnRlZD0hMCx0aGlzLmVtaXQoImFib3J0Iil9LEcucHJvdG90eXBl'@; put 'LnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5wYXVzZWR8fCh0aGlzLnBhdXNlZD0hMCx0aGlzLmVtaXQoInBhdXNlIikpfSxHLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtpZih0aGlzLnBhdXNlZCl7aWYodGhpcy5lbWl0KCJyZXN1bWUiKSx0aGlzLnBhdXNlZD0hMSx0aGlzLl9lbWl0UXVl'@; put 'dWUubGVuZ3RoKXt2YXIgYj10aGlzLl9lbWl0UXVldWUuc2xpY2UoMCk7dGhpcy5fZW1pdFF1ZXVlLmxlbmd0aD0wO2Zvcih2YXIgRD0wO0Q8Yi5sZW5ndGg7RCsrKXt2YXIgSD1iW0RdO3RoaXMuX2VtaXRNYXRjaChIWzBdLEhbMV0pfX1pZih0aGlzLl9wcm9jZXNzUXVldWUubGVuZ3RoKXt2'@; put 'YXIgTj10aGlzLl9wcm9jZXNzUXVldWUuc2xpY2UoMCk7Zm9yKHRoaXMuX3Byb2Nlc3NRdWV1ZS5sZW5ndGg9MCxEPTA7RDxOLmxlbmd0aDtEKyspe3ZhciBnPU5bRF07dGhpcy5fcHJvY2Vzc2luZy0tLHRoaXMuX3Byb2Nlc3MoZ1swXSxnWzFdLGdbMl0sZ1szXSl9fX19LEcucHJvdG90eXBl'@; put 'Ll9wcm9jZXNzPWZ1bmN0aW9uKGIsRCxILE4pe2lmKEIodGhpcyBpbnN0YW5jZW9mIEcpLEIoImZ1bmN0aW9uIj09dHlwZW9mIE4pLCF0aGlzLmFib3J0ZWQpaWYodGhpcy5fcHJvY2Vzc2luZysrLHRoaXMucGF1c2VkKXRoaXMuX3Byb2Nlc3NRdWV1ZS5wdXNoKFtiLEQsSCxOXSk7ZWxzZXtm'@; put 'b3IodmFyIGcsQz0wOyJzdHJpbmciPT10eXBlb2YgYltDXTspQysrO3N3aXRjaChDKXtjYXNlIGIubGVuZ3RoOnJldHVybiB2b2lkIHRoaXMuX3Byb2Nlc3NTaW1wbGUoYi5qb2luKCIvIiksRCxOKTtjYXNlIDA6Zz1udWxsO2JyZWFrO2RlZmF1bHQ6Zz1iLnNsaWNlKDAsQykuam9pbigiLyIp'@; put 'fXZhciBTLHY9Yi5zbGljZShDKTtudWxsPT09Zz9TPSIuIjooKFkoZyl8fFkoYi5tYXAoZnVuY3Rpb24odyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB3P3c6IlsqXSJ9KS5qb2luKCIvIikpKSYmKGcmJlkoZyl8fChnPSIvIitnKSksUz1nKTt2YXIgcD10aGlzLl9tYWtlQWJzKFMpO2lmKG9l'@; put 'KHRoaXMsUykpcmV0dXJuIE4oKTt2WzBdPT09ay5HTE9CU1RBUj90aGlzLl9wcm9jZXNzR2xvYlN0YXIoZyxTLHAsdixELEgsTik6dGhpcy5fcHJvY2Vzc1JlYWRkaXIoZyxTLHAsdixELEgsTil9fSxHLnByb3RvdHlwZS5fcHJvY2Vzc1JlYWRkaXI9ZnVuY3Rpb24oYixELEgsTixnLEMsUyl7'@; put 'dmFyIHY9dGhpczt0aGlzLl9yZWFkZGlyKEgsQyxmdW5jdGlvbihwLHcpe3JldHVybiB2Ll9wcm9jZXNzUmVhZGRpcjIoYixELEgsTixnLEMsdyxTKX0pfSxHLnByb3RvdHlwZS5fcHJvY2Vzc1JlYWRkaXIyPWZ1bmN0aW9uKGIsRCxILE4sZyxDLFMsdil7aWYoIVMpcmV0dXJuIHYoKTtmb3Io'@; put 'dmFyIHA9TlswXSx3PSEhdGhpcy5taW5pbWF0Y2gubmVnYXRlLG5lPXRoaXMuZG90fHwiLiI9PT1wLl9nbG9iLmNoYXJBdCgwKSxkZT1bXSxmZT0wO2ZlPFMubGVuZ3RoO2ZlKyspKCIuIiE9PShMZT1TW2ZlXSkuY2hhckF0KDApfHxuZSkmJih3JiYhYj8hTGUubWF0Y2gocCk6TGUubWF0Y2go'@; put 'cCkpJiZkZS5wdXNoKExlKTt2YXIgeGU9ZGUubGVuZ3RoO2lmKDA9PT14ZSlyZXR1cm4gdigpO2lmKDE9PT1OLmxlbmd0aCYmIXRoaXMubWFyayYmIXRoaXMuc3RhdCl7Zm9yKHRoaXMubWF0Y2hlc1tnXXx8KHRoaXMubWF0Y2hlc1tnXT1PYmplY3QuY3JlYXRlKG51bGwpKSxmZT0wO2ZlPHhl'@; put 'O2ZlKyspe3ZhciBMZT1kZVtmZV07YiYmKExlPSIvIiE9PWI/YisiLyIrTGU6YitMZSksIi8iIT09TGUuY2hhckF0KDApfHx0aGlzLm5vbW91bnR8fChMZT1WLmpvaW4odGhpcy5yb290LExlKSksdGhpcy5fZW1pdE1hdGNoKGcsTGUpfXJldHVybiB2KCl9Zm9yKE4uc2hpZnQoKSxmZT0wO2Zl'@; put 'PHhlO2ZlKyspTGU9ZGVbZmVdLGImJihMZT0iLyIhPT1iP2IrIi8iK0xlOmIrTGUpLHRoaXMuX3Byb2Nlc3MoW0xlXS5jb25jYXQoTiksZyxDLHYpO3YoKX0sRy5wcm90b3R5cGUuX2VtaXRNYXRjaD1mdW5jdGlvbihiLEQpe2lmKCF0aGlzLmFib3J0ZWQmJiFzZSh0aGlzLEQpKWlmKHRoaXMu'@; put 'cGF1c2VkKXRoaXMuX2VtaXRRdWV1ZS5wdXNoKFtiLERdKTtlbHNle3ZhciBIPVkoRCk/RDp0aGlzLl9tYWtlQWJzKEQpO2lmKHRoaXMubWFyayYmKEQ9dGhpcy5fbWFyayhEKSksdGhpcy5hYnNvbHV0ZSYmKEQ9SCksIXRoaXMubWF0Y2hlc1tiXVtEXSl7aWYodGhpcy5ub2Rpcil7dmFyIE49'@; put 'dGhpcy5jYWNoZVtIXTtpZigiRElSIj09PU58fEFycmF5LmlzQXJyYXkoTikpcmV0dXJufXRoaXMubWF0Y2hlc1tiXVtEXT0hMDt2YXIgZz10aGlzLnN0YXRDYWNoZVtIXTtnJiZ0aGlzLmVtaXQoInN0YXQiLEQsZyksdGhpcy5lbWl0KCJtYXRjaCIsRCl9fX0sRy5wcm90b3R5cGUuX3JlYWRk'@; put 'aXJJbkdsb2JTdGFyPWZ1bmN0aW9uKGIsRCl7aWYoIXRoaXMuYWJvcnRlZCl7aWYodGhpcy5mb2xsb3cpcmV0dXJuIHRoaXMuX3JlYWRkaXIoYiwhMSxEKTt2YXIgSD10aGlzLE49dGUoImxzdGF0XDAiK2IsZnVuY3Rpb24oZyxDKXtpZihnJiYiRU5PRU5UIj09PWcuY29kZSlyZXR1cm4gRCgp'@; put 'O3ZhciBTPUMmJkMuaXNTeW1ib2xpY0xpbmsoKTtILnN5bWxpbmtzW2JdPVMsU3x8IUN8fEMuaXNEaXJlY3RvcnkoKT9ILl9yZWFkZGlyKGIsITEsRCk6KEguY2FjaGVbYl09IkZJTEUiLEQoKSl9KTtOJiZILmZzLmxzdGF0KGIsTil9fSxHLnByb3RvdHlwZS5fcmVhZGRpcj1mdW5jdGlvbihi'@; put 'LEQsSCl7aWYoIXRoaXMuYWJvcnRlZCYmKEg9dGUoInJlYWRkaXJcMCIrYisiXDAiK0QsSCkpKXtpZihEJiYhZWUodGhpcy5zeW1saW5rcyxiKSlyZXR1cm4gdGhpcy5fcmVhZGRpckluR2xvYlN0YXIoYixIKTtpZihlZSh0aGlzLmNhY2hlLGIpKXt2YXIgTj10aGlzLmNhY2hlW2JdO2lmKCFO'@; put 'fHwiRklMRSI9PT1OKXJldHVybiBIKCk7aWYoQXJyYXkuaXNBcnJheShOKSlyZXR1cm4gSChudWxsLE4pfXRoaXMuZnMucmVhZGRpcihiLChnPXRoaXMsQz1iLFM9SCxmdW5jdGlvbih2LHApe3Y/Zy5fcmVhZGRpckVycm9yKEMsdixTKTpnLl9yZWFkZGlyRW50cmllcyhDLHAsUyl9KSl9dmFy'@; put 'IGcsQyxTfSxHLnByb3RvdHlwZS5fcmVhZGRpckVudHJpZXM9ZnVuY3Rpb24oYixELEgpe2lmKCF0aGlzLmFib3J0ZWQpe2lmKCF0aGlzLm1hcmsmJiF0aGlzLnN0YXQpZm9yKHZhciBOPTA7TjxELmxlbmd0aDtOKyspe3ZhciBnPURbTl07dGhpcy5jYWNoZVtnPSIvIj09PWI/YitnOmIrIi8i'@; put 'K2ddPSEwfXJldHVybiB0aGlzLmNhY2hlW2JdPUQsSChudWxsLEQpfX0sRy5wcm90b3R5cGUuX3JlYWRkaXJFcnJvcj1mdW5jdGlvbihiLEQsSCl7aWYoIXRoaXMuYWJvcnRlZCl7c3dpdGNoKEQuY29kZSl7Y2FzZSJFTk9UU1VQIjpjYXNlIkVOT1RESVIiOnZhciBOPXRoaXMuX21ha2VBYnMo'@; put 'Yik7aWYodGhpcy5jYWNoZVtOXT0iRklMRSIsTj09PXRoaXMuY3dkQWJzKXt2YXIgZz1uZXcgRXJyb3IoRC5jb2RlKyIgaW52YWxpZCBjd2QgIit0aGlzLmN3ZCk7Zy5wYXRoPXRoaXMuY3dkLGcuY29kZT1ELmNvZGUsdGhpcy5lbWl0KCJlcnJvciIsZyksdGhpcy5hYm9ydCgpfWJyZWFrO2Nh'@; put 'c2UiRU5PRU5UIjpjYXNlIkVMT09QIjpjYXNlIkVOQU1FVE9PTE9ORyI6Y2FzZSJVTktOT1dOIjp0aGlzLmNhY2hlW3RoaXMuX21ha2VBYnMoYildPSExO2JyZWFrO2RlZmF1bHQ6dGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJzKGIpXT0hMSx0aGlzLnN0cmljdCYmKHRoaXMuZW1pdCgiZXJyb3Ii'@; put 'LEQpLHRoaXMuYWJvcnQoKSksdGhpcy5zaWxlbnR8fEsuZXJyb3IoImdsb2IgZXJyb3IiLEQpfXJldHVybiBIKCl9fSxHLnByb3RvdHlwZS5fcHJvY2Vzc0dsb2JTdGFyPWZ1bmN0aW9uKGIsRCxILE4sZyxDLFMpe3ZhciB2PXRoaXM7dGhpcy5fcmVhZGRpcihILEMsZnVuY3Rpb24ocCx3KXt2'@; put 'Ll9wcm9jZXNzR2xvYlN0YXIyKGIsRCxILE4sZyxDLHcsUyl9KX0sRy5wcm90b3R5cGUuX3Byb2Nlc3NHbG9iU3RhcjI9ZnVuY3Rpb24oYixELEgsTixnLEMsUyx2KXtpZighUylyZXR1cm4gdigpO3ZhciBwPU4uc2xpY2UoMSksdz1iP1tiXTpbXSxKPXcuY29uY2F0KHApO3RoaXMuX3Byb2Nl'@; put 'c3MoSixnLCExLHYpO3ZhciBkZT1TLmxlbmd0aDtpZih0aGlzLnN5bWxpbmtzW0hdJiZDKXJldHVybiB2KCk7Zm9yKHZhciBmZT0wO2ZlPGRlO2ZlKyspaWYoIi4iIT09U1tmZV0uY2hhckF0KDApfHx0aGlzLmRvdCl7dmFyIHhlPXcuY29uY2F0KFNbZmVdLHApO3RoaXMuX3Byb2Nlc3MoeGUs'@; put 'ZywhMCx2KTt2YXIgTGU9dy5jb25jYXQoU1tmZV0sTik7dGhpcy5fcHJvY2VzcyhMZSxnLCEwLHYpfXYoKX0sRy5wcm90b3R5cGUuX3Byb2Nlc3NTaW1wbGU9ZnVuY3Rpb24oYixELEgpe3ZhciBOPXRoaXM7dGhpcy5fc3RhdChiLGZ1bmN0aW9uKGcsQyl7Ti5fcHJvY2Vzc1NpbXBsZTIoYixE'@; put 'LGcsQyxIKX0pfSxHLnByb3RvdHlwZS5fcHJvY2Vzc1NpbXBsZTI9ZnVuY3Rpb24oYixELEgsTixnKXtpZih0aGlzLm1hdGNoZXNbRF18fCh0aGlzLm1hdGNoZXNbRF09T2JqZWN0LmNyZWF0ZShudWxsKSksIU4pcmV0dXJuIGcoKTtpZihiJiZZKGIpJiYhdGhpcy5ub21vdW50KXt2YXIgQz0v'@; put 'W1wvXFxdJC8udGVzdChiKTsiLyI9PT1iLmNoYXJBdCgwKT9iPVYuam9pbih0aGlzLnJvb3QsYik6KGI9Vi5yZXNvbHZlKHRoaXMucm9vdCxiKSxDJiYoYis9Ii8iKSl9IndpbjMyIj09PXoucGxhdGZvcm0mJihiPWIucmVwbGFjZSgvXFwvZywiLyIpKSx0aGlzLl9lbWl0TWF0Y2goRCxiKSxn'@; put 'KCl9LEcucHJvdG90eXBlLl9zdGF0PWZ1bmN0aW9uKGIsRCl7dmFyIEg9dGhpcy5fbWFrZUFicyhiKSxOPSIvIj09PWIuc2xpY2UoLTEpO2lmKGIubGVuZ3RoPnRoaXMubWF4TGVuZ3RoKXJldHVybiBEKCk7aWYoIXRoaXMuc3RhdCYmZWUodGhpcy5jYWNoZSxIKSl7dmFyIGc9dGhpcy5jYWNo'@; put 'ZVtIXTtpZihBcnJheS5pc0FycmF5KGcpJiYoZz0iRElSIiksIU58fCJESVIiPT09ZylyZXR1cm4gRChudWxsLGcpO2lmKE4mJiJGSUxFIj09PWcpcmV0dXJuIEQoKX12YXIgQz10aGlzLnN0YXRDYWNoZVtIXTtpZih2b2lkIDAhPT1DKXtpZighMT09PUMpcmV0dXJuIEQobnVsbCxDKTt2YXIg'@; put 'Uz1DLmlzRGlyZWN0b3J5KCk/IkRJUiI6IkZJTEUiO3JldHVybiBOJiYiRklMRSI9PT1TP0QoKTpEKG51bGwsUyxDKX12YXIgdj10aGlzLHA9dGUoInN0YXRcMCIrSCxmdW5jdGlvbih3LEope2lmKEomJkouaXNTeW1ib2xpY0xpbmsoKSlyZXR1cm4gdi5mcy5zdGF0KEgsZnVuY3Rpb24obmUs'@; put 'ZGUpe25lP3YuX3N0YXQyKGIsSCxudWxsLEosRCk6di5fc3RhdDIoYixILG5lLGRlLEQpfSk7di5fc3RhdDIoYixILHcsSixEKX0pO3AmJnYuZnMubHN0YXQoSCxwKX0sRy5wcm90b3R5cGUuX3N0YXQyPWZ1bmN0aW9uKGIsRCxILE4sZyl7aWYoSCYmKCJFTk9FTlQiPT09SC5jb2RlfHwiRU5P'@; put 'VERJUiI9PT1ILmNvZGUpKXJldHVybiB0aGlzLnN0YXRDYWNoZVtEXT0hMSxnKCk7dmFyIEM9Ii8iPT09Yi5zbGljZSgtMSk7aWYodGhpcy5zdGF0Q2FjaGVbRF09TiwiLyI9PT1ELnNsaWNlKC0xKSYmTiYmIU4uaXNEaXJlY3RvcnkoKSlyZXR1cm4gZyhudWxsLCExLE4pO3ZhciBTPSEwO3Jl'@; put 'dHVybiBOJiYoUz1OLmlzRGlyZWN0b3J5KCk/IkRJUiI6IkZJTEUiKSx0aGlzLmNhY2hlW0RdPXRoaXMuY2FjaGVbRF18fFMsQyYmIkZJTEUiPT09Uz9nKCk6ZyhudWxsLFMsTil9fSw0NzUxOihNLE8sUik9Pnt2YXIgej1SKDUxMDgpLEs9Uig0MTU1KTtNLmV4cG9ydHM9ZWUsZWUuR2xvYlN5'@; put 'bmM9dGU7dmFyIEk9Uig3MzM0KSxrPVIoMTE3MSksRT0oUigyODg0KSxSKDk1MzkpLFIoMjUyMCkpLGo9Uig5MjgyKSxWPVIoNDA5NSksQj1SKDY3NzIpLFk9Qi5zZXRvcHRzLFg9Qi5vd25Qcm9wLFU9Qi5jaGlsZHJlbklnbm9yZWQscT1CLmlzSWdub3JlZDtmdW5jdGlvbiBlZShvZSxzZSl7'@; put 'aWYoImZ1bmN0aW9uIj09dHlwZW9mIHNlfHwzPT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBwcm92aWRlZCB0byBzeW5jIGdsb2JcblNlZTogaHR0cHM6Ly9naXRodWIuY29tL2lzYWFjcy9ub2RlLWdsb2IvaXNzdWVzLzE2NyIpO3JldHVybiBuZXcg'@; put 'dGUob2Usc2UpLmZvdW5kfWZ1bmN0aW9uIHRlKG9lLHNlKXtpZighb2UpdGhyb3cgbmV3IEVycm9yKCJtdXN0IHByb3ZpZGUgcGF0dGVybiIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzZXx8Mz09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgcHJvdmlk'@; put 'ZWQgdG8gc3luYyBnbG9iXG5TZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9pc2FhY3Mvbm9kZS1nbG9iL2lzc3Vlcy8xNjciKTtpZighKHRoaXMgaW5zdGFuY2VvZiB0ZSkpcmV0dXJuIG5ldyB0ZShvZSxzZSk7aWYoWSh0aGlzLG9lLHNlKSx0aGlzLm5vcHJvY2VzcylyZXR1cm4gdGhpczt2YXIg'@; put 'aGU9dGhpcy5taW5pbWF0Y2guc2V0Lmxlbmd0aDt0aGlzLm1hdGNoZXM9bmV3IEFycmF5KGhlKTtmb3IodmFyIHVlPTA7dWU8aGU7dWUrKyl0aGlzLl9wcm9jZXNzKHRoaXMubWluaW1hdGNoLnNldFt1ZV0sdWUsITEpO3RoaXMuX2ZpbmlzaCgpfXRlLnByb3RvdHlwZS5fZmluaXNoPWZ1bmN0'@; put 'aW9uKCl7aWYoai5vayh0aGlzIGluc3RhbmNlb2YgdGUpLHRoaXMucmVhbHBhdGgpe3ZhciBvZT10aGlzO3RoaXMubWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uKHNlLGhlKXt2YXIgdWU9b2UubWF0Y2hlc1toZV09T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IodmFyIGNlIGluIHNlKXRyeXtjZT1v'@; put 'ZS5fbWFrZUFicyhjZSksdWVbSS5yZWFscGF0aFN5bmMoY2Usb2UucmVhbHBhdGhDYWNoZSldPSEwfWNhdGNoKEcpe2lmKCJzdGF0IiE9PUcuc3lzY2FsbCl0aHJvdyBHO3VlW29lLl9tYWtlQWJzKGNlKV09ITB9fSl9Qi5maW5pc2godGhpcyl9LHRlLnByb3RvdHlwZS5fcHJvY2Vzcz1mdW5j'@; put 'dGlvbihvZSxzZSxoZSl7ai5vayh0aGlzIGluc3RhbmNlb2YgdGUpO2Zvcih2YXIgdWUsY2U9MDsic3RyaW5nIj09dHlwZW9mIG9lW2NlXTspY2UrKztzd2l0Y2goY2Upe2Nhc2Ugb2UubGVuZ3RoOnJldHVybiB2b2lkIHRoaXMuX3Byb2Nlc3NTaW1wbGUob2Uuam9pbigiLyIpLHNlKTtjYXNl'@; put 'IDA6dWU9bnVsbDticmVhaztkZWZhdWx0OnVlPW9lLnNsaWNlKDAsY2UpLmpvaW4oIi8iKX12YXIgRyxiPW9lLnNsaWNlKGNlKTtudWxsPT09dWU/Rz0iLiI6KChWKHVlKXx8VihvZS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBIP0g6IlsqXSJ9KS5qb2luKCIvIikp'@; put 'KSYmKHVlJiZWKHVlKXx8KHVlPSIvIit1ZSkpLEc9dWUpO3ZhciBEPXRoaXMuX21ha2VBYnMoRyk7VSh0aGlzLEcpfHwoYlswXT09PWsuR0xPQlNUQVI/dGhpcy5fcHJvY2Vzc0dsb2JTdGFyKHVlLEcsRCxiLHNlLGhlKTp0aGlzLl9wcm9jZXNzUmVhZGRpcih1ZSxHLEQsYixzZSxoZSkpfSx0'@; put 'ZS5wcm90b3R5cGUuX3Byb2Nlc3NSZWFkZGlyPWZ1bmN0aW9uKG9lLHNlLGhlLHVlLGNlLEcpe3ZhciBiPXRoaXMuX3JlYWRkaXIoaGUsRyk7aWYoYil7Zm9yKHZhciBEPXVlWzBdLEg9ISF0aGlzLm1pbmltYXRjaC5uZWdhdGUsZz10aGlzLmRvdHx8Ii4iPT09RC5fZ2xvYi5jaGFyQXQoMCks'@; put 'Qz1bXSxTPTA7UzxiLmxlbmd0aDtTKyspKCIuIiE9PSh3PWJbU10pLmNoYXJBdCgwKXx8ZykmJihIJiYhb2U/IXcubWF0Y2goRCk6dy5tYXRjaChEKSkmJkMucHVzaCh3KTt2YXIgdj1DLmxlbmd0aDtpZigwIT09dilpZigxIT09dWUubGVuZ3RofHx0aGlzLm1hcmt8fHRoaXMuc3RhdClmb3Io'@; put 'dWUuc2hpZnQoKSxTPTA7Uzx2O1MrKyl3PUNbU10sdGhpcy5fcHJvY2Vzcygob2U/W29lLHddOlt3XSkuY29uY2F0KHVlKSxjZSxHKTtlbHNlIGZvcih0aGlzLm1hdGNoZXNbY2VdfHwodGhpcy5tYXRjaGVzW2NlXT1PYmplY3QuY3JlYXRlKG51bGwpKSxTPTA7Uzx2O1MrKyl7dmFyIHc9Q1tT'@; put 'XTtvZSYmKHc9Ii8iIT09b2Uuc2xpY2UoLTEpP29lKyIvIit3Om9lK3cpLCIvIiE9PXcuY2hhckF0KDApfHx0aGlzLm5vbW91bnR8fCh3PUUuam9pbih0aGlzLnJvb3QsdykpLHRoaXMuX2VtaXRNYXRjaChjZSx3KX19fSx0ZS5wcm90b3R5cGUuX2VtaXRNYXRjaD1mdW5jdGlvbihvZSxzZSl7'@; put 'aWYoIXEodGhpcyxzZSkpe3ZhciBoZT10aGlzLl9tYWtlQWJzKHNlKTtpZih0aGlzLm1hcmsmJihzZT10aGlzLl9tYXJrKHNlKSksdGhpcy5hYnNvbHV0ZSYmKHNlPWhlKSwhdGhpcy5tYXRjaGVzW29lXVtzZV0pe2lmKHRoaXMubm9kaXIpe3ZhciB1ZT10aGlzLmNhY2hlW2hlXTtpZigiRElS'@; put 'Ij09PXVlfHxBcnJheS5pc0FycmF5KHVlKSlyZXR1cm59dGhpcy5tYXRjaGVzW29lXVtzZV09ITAsdGhpcy5zdGF0JiZ0aGlzLl9zdGF0KHNlKX19fSx0ZS5wcm90b3R5cGUuX3JlYWRkaXJJbkdsb2JTdGFyPWZ1bmN0aW9uKG9lKXtpZih0aGlzLmZvbGxvdylyZXR1cm4gdGhpcy5fcmVhZGRp'@; put 'cihvZSwhMSk7dmFyIHNlLGhlO3RyeXtoZT10aGlzLmZzLmxzdGF0U3luYyhvZSl9Y2F0Y2goY2Upe2lmKCJFTk9FTlQiPT09Y2UuY29kZSlyZXR1cm4gbnVsbH12YXIgdWU9aGUmJmhlLmlzU3ltYm9saWNMaW5rKCk7cmV0dXJuIHRoaXMuc3ltbGlua3Nbb2VdPXVlLHVlfHwhaGV8fGhlLmlz'@; put 'RGlyZWN0b3J5KCk/c2U9dGhpcy5fcmVhZGRpcihvZSwhMSk6dGhpcy5jYWNoZVtvZV09IkZJTEUiLHNlfSx0ZS5wcm90b3R5cGUuX3JlYWRkaXI9ZnVuY3Rpb24ob2Usc2Upe2lmKHNlJiYhWCh0aGlzLnN5bWxpbmtzLG9lKSlyZXR1cm4gdGhpcy5fcmVhZGRpckluR2xvYlN0YXIob2UpO2lm'@; put 'KFgodGhpcy5jYWNoZSxvZSkpe3ZhciBoZT10aGlzLmNhY2hlW29lXTtpZighaGV8fCJGSUxFIj09PWhlKXJldHVybiBudWxsO2lmKEFycmF5LmlzQXJyYXkoaGUpKXJldHVybiBoZX10cnl7cmV0dXJuIHRoaXMuX3JlYWRkaXJFbnRyaWVzKG9lLHRoaXMuZnMucmVhZGRpclN5bmMob2UpKX1j'@; put 'YXRjaCh1ZSl7cmV0dXJuIHRoaXMuX3JlYWRkaXJFcnJvcihvZSx1ZSksbnVsbH19LHRlLnByb3RvdHlwZS5fcmVhZGRpckVudHJpZXM9ZnVuY3Rpb24ob2Usc2Upe2lmKCF0aGlzLm1hcmsmJiF0aGlzLnN0YXQpZm9yKHZhciBoZT0wO2hlPHNlLmxlbmd0aDtoZSsrKXt2YXIgdWU9c2VbaGVd'@; put 'O3RoaXMuY2FjaGVbdWU9Ii8iPT09b2U/b2UrdWU6b2UrIi8iK3VlXT0hMH1yZXR1cm4gdGhpcy5jYWNoZVtvZV09c2Usc2V9LHRlLnByb3RvdHlwZS5fcmVhZGRpckVycm9yPWZ1bmN0aW9uKG9lLHNlKXtzd2l0Y2goc2UuY29kZSl7Y2FzZSJFTk9UU1VQIjpjYXNlIkVOT1RESVIiOnZhciBo'@; put 'ZT10aGlzLl9tYWtlQWJzKG9lKTtpZih0aGlzLmNhY2hlW2hlXT0iRklMRSIsaGU9PT10aGlzLmN3ZEFicyl7dmFyIHVlPW5ldyBFcnJvcihzZS5jb2RlKyIgaW52YWxpZCBjd2QgIit0aGlzLmN3ZCk7dGhyb3cgdWUucGF0aD10aGlzLmN3ZCx1ZS5jb2RlPXNlLmNvZGUsdWV9YnJlYWs7Y2Fz'@; put 'ZSJFTk9FTlQiOmNhc2UiRUxPT1AiOmNhc2UiRU5BTUVUT09MT05HIjpjYXNlIlVOS05PV04iOnRoaXMuY2FjaGVbdGhpcy5fbWFrZUFicyhvZSldPSExO2JyZWFrO2RlZmF1bHQ6aWYodGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJzKG9lKV09ITEsdGhpcy5zdHJpY3QpdGhyb3cgc2U7dGhpcy5z'@; put 'aWxlbnR8fHouZXJyb3IoImdsb2IgZXJyb3IiLHNlKX19LHRlLnByb3RvdHlwZS5fcHJvY2Vzc0dsb2JTdGFyPWZ1bmN0aW9uKG9lLHNlLGhlLHVlLGNlLEcpe3ZhciBiPXRoaXMuX3JlYWRkaXIoaGUsRyk7aWYoYil7dmFyIEQ9dWUuc2xpY2UoMSksSD1vZT9bb2VdOltdLE49SC5jb25jYXQo'@; put 'RCk7dGhpcy5fcHJvY2VzcyhOLGNlLCExKTt2YXIgZz1iLmxlbmd0aDtpZighdGhpcy5zeW1saW5rc1toZV18fCFHKWZvcih2YXIgQz0wO0M8ZztDKyspaWYoIi4iIT09YltDXS5jaGFyQXQoMCl8fHRoaXMuZG90KXt2YXIgUz1ILmNvbmNhdChiW0NdLEQpO3RoaXMuX3Byb2Nlc3MoUyxjZSwh'@; put 'MCk7dmFyIHY9SC5jb25jYXQoYltDXSx1ZSk7dGhpcy5fcHJvY2Vzcyh2LGNlLCEwKX19fSx0ZS5wcm90b3R5cGUuX3Byb2Nlc3NTaW1wbGU9ZnVuY3Rpb24ob2Usc2Upe3ZhciBoZT10aGlzLl9zdGF0KG9lKTtpZih0aGlzLm1hdGNoZXNbc2VdfHwodGhpcy5tYXRjaGVzW3NlXT1PYmplY3Qu'@; put 'Y3JlYXRlKG51bGwpKSxoZSl7aWYob2UmJlYob2UpJiYhdGhpcy5ub21vdW50KXt2YXIgdWU9L1tcL1xcXSQvLnRlc3Qob2UpOyIvIj09PW9lLmNoYXJBdCgwKT9vZT1FLmpvaW4odGhpcy5yb290LG9lKToob2U9RS5yZXNvbHZlKHRoaXMucm9vdCxvZSksdWUmJihvZSs9Ii8iKSl9IndpbjMy'@; put 'Ij09PUsucGxhdGZvcm0mJihvZT1vZS5yZXBsYWNlKC9cXC9nLCIvIikpLHRoaXMuX2VtaXRNYXRjaChzZSxvZSl9fSx0ZS5wcm90b3R5cGUuX3N0YXQ9ZnVuY3Rpb24ob2Upe3ZhciBzZT10aGlzLl9tYWtlQWJzKG9lKSxoZT0iLyI9PT1vZS5zbGljZSgtMSk7aWYob2UubGVuZ3RoPnRoaXMu'@; put 'bWF4TGVuZ3RoKXJldHVybiExO2lmKCF0aGlzLnN0YXQmJlgodGhpcy5jYWNoZSxzZSkpe3ZhciB1ZT10aGlzLmNhY2hlW3NlXTtpZihBcnJheS5pc0FycmF5KHVlKSYmKHVlPSJESVIiKSwhaGV8fCJESVIiPT09dWUpcmV0dXJuIHVlO2lmKGhlJiYiRklMRSI9PT11ZSlyZXR1cm4hMX12YXIg'@; put 'Y2U9dGhpcy5zdGF0Q2FjaGVbc2VdO2lmKCFjZSl7dmFyIEc7dHJ5e0c9dGhpcy5mcy5sc3RhdFN5bmMoc2UpfWNhdGNoKGIpe2lmKGImJigiRU5PRU5UIj09PWIuY29kZXx8IkVOT1RESVIiPT09Yi5jb2RlKSlyZXR1cm4gdGhpcy5zdGF0Q2FjaGVbc2VdPSExLCExfWlmKEcmJkcuaXNTeW1i'@; put 'b2xpY0xpbmsoKSl0cnl7Y2U9dGhpcy5mcy5zdGF0U3luYyhzZSl9Y2F0Y2h7Y2U9R31lbHNlIGNlPUd9cmV0dXJuIHRoaXMuc3RhdENhY2hlW3NlXT1jZSx1ZT0hMCxjZSYmKHVlPWNlLmlzRGlyZWN0b3J5KCk/IkRJUiI6IkZJTEUiKSx0aGlzLmNhY2hlW3NlXT10aGlzLmNhY2hlW3NlXXx8'@; put 'dWUsKCFoZXx8IkZJTEUiIT09dWUpJiZ1ZX0sdGUucHJvdG90eXBlLl9tYXJrPWZ1bmN0aW9uKG9lKXtyZXR1cm4gQi5tYXJrKHRoaXMsb2UpfSx0ZS5wcm90b3R5cGUuX21ha2VBYnM9ZnVuY3Rpb24ob2Upe3JldHVybiBCLm1ha2VBYnModGhpcyxvZSl9fSw3Mjk2OihNLE8sUik9PnsidXNl'@; put 'IHN0cmljdCI7dmFyIHo9UigyMTApKCIlT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciUiLCEwKTtpZih6KXRyeXt6KFtdLCJsZW5ndGgiKX1jYXRjaHt6PW51bGx9TS5leHBvcnRzPXp9LDY0NTg6TT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9ZnVuY3Rpb24oUil7aWYobnVsbD09'@; put 'PVJ8fCJvYmplY3QiIT10eXBlb2YgUilyZXR1cm4gUjtpZihSIGluc3RhbmNlb2YgT2JqZWN0KXZhciB6PXtfX3Byb3RvX186TyhSKX07ZWxzZSB6PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFIpLmZvckVhY2goZnVuY3Rpb24oSyl7T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KHosSyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFIsSykpfSksen07dmFyIE89T2JqZWN0LmdldFByb3RvdHlwZU9mfHxmdW5jdGlvbihSKXtyZXR1cm4gUi5fX3Byb3RvX199fSw3NzooTSxPLFIpPT57dmFyIHosSyxJPVIoNDE1NSksaz1SKDUx'@; put 'MDgpLEU9Uig1NDQzKSxqPVIoMjE2MSksVj1SKDg1MjApLEI9Uig2NDU4KSxZPVIoOTUzOSk7ZnVuY3Rpb24gWCh1ZSxjZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHVlLHose2dldDpmdW5jdGlvbigpe3JldHVybiBjZX19KX0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24i'@; put 'PT10eXBlb2YgU3ltYm9sLmZvcj8oej1TeW1ib2wuZm9yKCJncmFjZWZ1bC1mcy5xdWV1ZSIpLEs9U3ltYm9sLmZvcigiZ3JhY2VmdWwtZnMucHJldmlvdXMiKSk6KHo9Il9fX2dyYWNlZnVsLWZzLnF1ZXVlIixLPSJfX19ncmFjZWZ1bC1mcy5wcmV2aW91cyIpO3ZhciBVLHE9ZnVuY3Rpb24o'@; put 'KXt9O2Z1bmN0aW9uIHRlKHVlKXtqKHVlKSx1ZS5ncmFjZWZ1bGlmeT10ZSx1ZS5jcmVhdGVSZWFkU3RyZWFtPWZ1bmN0aW9uKGZlLHhlKXtyZXR1cm4gbmV3IHVlLlJlYWRTdHJlYW0oZmUseGUpfSx1ZS5jcmVhdGVXcml0ZVN0cmVhbT1mdW5jdGlvbihmZSx4ZSl7cmV0dXJuIG5ldyB1ZS5X'@; put 'cml0ZVN0cmVhbShmZSx4ZSl9O3ZhciBjZT11ZS5yZWFkRmlsZTt1ZS5yZWFkRmlsZT1mdW5jdGlvbihmZSx4ZSxMZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHhlJiYoTGU9eGUseGU9bnVsbCksZnVuY3Rpb24gRmUoT2UsamUsV2UsS2Upe3JldHVybiBjZShPZSxqZSxmdW5jdGlvbihZ'@; put 'ZSl7IVllfHwiRU1GSUxFIiE9PVllLmNvZGUmJiJFTkZJTEUiIT09WWUuY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgV2UmJldlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpvZShbRmUsW09lLGplLFdlXSxZZSxLZXx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oZmUseGUsTGUpfTt2YXIgRz11'@; put 'ZS53cml0ZUZpbGU7dWUud3JpdGVGaWxlPWZ1bmN0aW9uKGZlLHhlLExlLEZlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgTGUmJihGZT1MZSxMZT1udWxsKSxmdW5jdGlvbiBPZShqZSxXZSxLZSxZZSxRZSl7cmV0dXJuIEcoamUsV2UsS2UsZnVuY3Rpb24obHQpeyFsdHx8IkVNRklMRSIh'@; put 'PT1sdC5jb2RlJiYiRU5GSUxFIiE9PWx0LmNvZGU/ImZ1bmN0aW9uIj09dHlwZW9mIFllJiZZZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6b2UoW09lLFtqZSxXZSxLZSxZZV0sbHQsUWV8fERhdGUubm93KCksRGF0ZS5ub3coKV0pfSl9KGZlLHhlLExlLEZlKX07dmFyIGI9dWUuYXBwZW5kRmls'@; put 'ZTtiJiYodWUuYXBwZW5kRmlsZT1mdW5jdGlvbihmZSx4ZSxMZSxGZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIExlJiYoRmU9TGUsTGU9bnVsbCksZnVuY3Rpb24gT2UoamUsV2UsS2UsWWUsUWUpe3JldHVybiBiKGplLFdlLEtlLGZ1bmN0aW9uKGx0KXshbHR8fCJFTUZJTEUiIT09bHQu'@; put 'Y29kZSYmIkVORklMRSIhPT1sdC5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBZZSYmWWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOm9lKFtPZSxbamUsV2UsS2UsWWVdLGx0LFFlfHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShmZSx4ZSxMZSxGZSl9KTt2YXIgRD11ZS5jb3B5RmlsZTtEJiYo'@; put 'dWUuY29weUZpbGU9ZnVuY3Rpb24oZmUseGUsTGUsRmUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBMZSYmKEZlPUxlLExlPTApLGZ1bmN0aW9uIE9lKGplLFdlLEtlLFllLFFlKXtyZXR1cm4gRChqZSxXZSxLZSxmdW5jdGlvbihsdCl7IWx0fHwiRU1GSUxFIiE9PWx0LmNvZGUmJiJFTkZJ'@; put 'TEUiIT09bHQuY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgWWUmJlllLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpvZShbT2UsW2plLFdlLEtlLFllXSxsdCxRZXx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oZmUseGUsTGUsRmUpfSk7dmFyIEg9dWUucmVhZGRpcjt1ZS5yZWFkZGlyPWZ1bmN0'@; put 'aW9uKGZlLHhlLExlKXsiZnVuY3Rpb24iPT10eXBlb2YgeGUmJihMZT14ZSx4ZT1udWxsKTt2YXIgRmU9Ti50ZXN0KEkudmVyc2lvbik/ZnVuY3Rpb24oamUsV2UsS2UsWWUpe3JldHVybiBIKGplLE9lKGplLFdlLEtlLFllKSl9OmZ1bmN0aW9uKGplLFdlLEtlLFllKXtyZXR1cm4gSChqZSxX'@; put 'ZSxPZShqZSxXZSxLZSxZZSkpfTtyZXR1cm4gRmUoZmUseGUsTGUpO2Z1bmN0aW9uIE9lKGplLFdlLEtlLFllKXtyZXR1cm4gZnVuY3Rpb24oUWUsbHQpeyFRZXx8IkVNRklMRSIhPT1RZS5jb2RlJiYiRU5GSUxFIiE9PVFlLmNvZGU/KGx0JiZsdC5zb3J0JiZsdC5zb3J0KCksImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIEtlJiZLZS5jYWxsKHRoaXMsUWUsbHQpKTpvZShbRmUsW2plLFdlLEtlXSxRZSxZZXx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9fX07dmFyIE49L152WzAtNV1cLi87aWYoInYwLjgiPT09SS52ZXJzaW9uLnN1YnN0cigwLDQpKXt2YXIgZz1WKHVlKTt3PWcuUmVhZFN0cmVh'@; put 'bSxKPWcuV3JpdGVTdHJlYW19dmFyIEM9dWUuUmVhZFN0cmVhbTtDJiYody5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDLnByb3RvdHlwZSksdy5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBmZT10aGlzO2RlKGZlLnBhdGgsZmUuZmxhZ3MsZmUubW9kZSxmdW5jdGlvbih4ZSxMZSl7'@; put 'eGU/KGZlLmF1dG9DbG9zZSYmZmUuZGVzdHJveSgpLGZlLmVtaXQoImVycm9yIix4ZSkpOihmZS5mZD1MZSxmZS5lbWl0KCJvcGVuIixMZSksZmUucmVhZCgpKX0pfSk7dmFyIFM9dWUuV3JpdGVTdHJlYW07UyYmKEoucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUy5wcm90b3R5cGUpLEoucHJv'@; put 'dG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgZmU9dGhpcztkZShmZS5wYXRoLGZlLmZsYWdzLGZlLm1vZGUsZnVuY3Rpb24oeGUsTGUpe3hlPyhmZS5kZXN0cm95KCksZmUuZW1pdCgiZXJyb3IiLHhlKSk6KGZlLmZkPUxlLGZlLmVtaXQoIm9wZW4iLExlKSl9KX0pLE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eSh1ZSwiUmVhZFN0cmVhbSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3fSxzZXQ6ZnVuY3Rpb24oZmUpe3c9ZmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHVlLCJXcml0ZVN0cmVhbSIse2dldDpmdW5jdGlvbigpe3JldHVy'@; put 'biBKfSxzZXQ6ZnVuY3Rpb24oZmUpe0o9ZmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7dmFyIHY9dztPYmplY3QuZGVmaW5lUHJvcGVydHkodWUsIkZpbGVSZWFkU3RyZWFtIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LHNldDpmdW5jdGlvbihmZSl7dj1mZX0sZW51bWVy'@; put 'YWJsZTohMCxjb25maWd1cmFibGU6ITB9KTt2YXIgcD1KO2Z1bmN0aW9uIHcoZmUseGUpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygdz8oQy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcyk6dy5hcHBseShPYmplY3QuY3JlYXRlKHcucHJvdG90eXBlKSxhcmd1bWVudHMpfWZ1bmN0aW9uIEoo'@; put 'ZmUseGUpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgSj8oUy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcyk6Si5hcHBseShPYmplY3QuY3JlYXRlKEoucHJvdG90eXBlKSxhcmd1bWVudHMpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1ZSwiRmlsZVdyaXRlU3RyZWFtIix7Z2V0OmZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHB9LHNldDpmdW5jdGlvbihmZSl7cD1mZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTt2YXIgbmU9dWUub3BlbjtmdW5jdGlvbiBkZShmZSx4ZSxMZSxGZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIExlJiYoRmU9TGUsTGU9bnVsbCksZnVuY3Rpb24gT2Uo'@; put 'amUsV2UsS2UsWWUsUWUpe3JldHVybiBuZShqZSxXZSxLZSxmdW5jdGlvbihsdCxQZSl7IWx0fHwiRU1GSUxFIiE9PWx0LmNvZGUmJiJFTkZJTEUiIT09bHQuY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgWWUmJlllLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpvZShbT2UsW2plLFdlLEtlLFllXSxs'@; put 'dCxRZXx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oZmUseGUsTGUsRmUpfXJldHVybiB1ZS5vcGVuPWRlLHVlfWZ1bmN0aW9uIG9lKHVlKXtxKCJFTlFVRVVFIix1ZVswXS5uYW1lLHVlWzFdKSxFW3pdLnB1c2godWUpLGhlKCl9ZnVuY3Rpb24gc2UoKXtmb3IodmFyIHVlPURhdGUubm93'@; put 'KCksY2U9MDtjZTxFW3pdLmxlbmd0aDsrK2NlKUVbel1bY2VdLmxlbmd0aD4yJiYoRVt6XVtjZV1bM109dWUsRVt6XVtjZV1bNF09dWUpO2hlKCl9ZnVuY3Rpb24gaGUoKXtpZihjbGVhclRpbWVvdXQoVSksVT12b2lkIDAsMCE9PUVbel0ubGVuZ3RoKXt2YXIgdWU9RVt6XS5zaGlmdCgpLGNl'@; put 'PXVlWzBdLEc9dWVbMV0sYj11ZVsyXSxEPXVlWzNdLEg9dWVbNF07aWYodm9pZCAwPT09RClxKCJSRVRSWSIsY2UubmFtZSxHKSxjZS5hcHBseShudWxsLEcpO2Vsc2UgaWYoRGF0ZS5ub3coKS1EPj02ZTQpe3EoIlRJTUVPVVQiLGNlLm5hbWUsRyk7dmFyIE49Ry5wb3AoKTsiZnVuY3Rpb24i'@; put 'PT10eXBlb2YgTiYmTi5jYWxsKG51bGwsYil9ZWxzZXt2YXIgZz1EYXRlLm5vdygpLUgsQz1NYXRoLm1heChILUQsMSk7Zz49TWF0aC5taW4oMS4yKkMsMTAwKT8ocSgiUkVUUlkiLGNlLm5hbWUsRyksY2UuYXBwbHkobnVsbCxHLmNvbmNhdChbRF0pKSk6RVt6XS5wdXNoKHVlKX12b2lkIDA9'@; put 'PT1VJiYoVT1zZXRUaW1lb3V0KGhlLDApKX19WS5kZWJ1Z2xvZz9xPVkuZGVidWdsb2coImdmczQiKTovXGJnZnM0XGIvaS50ZXN0KEkuZW52Lk5PREVfREVCVUd8fCIiKSYmKHE9ZnVuY3Rpb24oKXt2YXIgdWU9WS5mb3JtYXQuYXBwbHkoWSxhcmd1bWVudHMpO3VlPSJHRlM0OiAiK3VlLnNw'@; put 'bGl0KC9cbi8pLmpvaW4oIlxuR0ZTNDogIiksay5lcnJvcih1ZSl9KSxFW3pdfHwoWChFLFIuZ1t6XXx8W10pLEUuY2xvc2U9ZnVuY3Rpb24odWUpe2Z1bmN0aW9uIGNlKEcsYil7cmV0dXJuIHVlLmNhbGwoRSxHLGZ1bmN0aW9uKEQpe0R8fHNlKCksImZ1bmN0aW9uIj09dHlwZW9mIGImJmIu'@; put 'YXBwbHkodGhpcyxhcmd1bWVudHMpfSl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjZSxLLHt2YWx1ZTp1ZX0pLGNlfShFLmNsb3NlKSxFLmNsb3NlU3luYz1mdW5jdGlvbih1ZSl7ZnVuY3Rpb24gY2UoRyl7dWUuYXBwbHkoRSxhcmd1bWVudHMpLHNlKCl9cmV0dXJuIE9iamVjdC5k'@; put 'ZWZpbmVQcm9wZXJ0eShjZSxLLHt2YWx1ZTp1ZX0pLGNlfShFLmNsb3NlU3luYyksL1xiZ2ZzNFxiL2kudGVzdChJLmVudi5OT0RFX0RFQlVHfHwiIikmJkkub24oImV4aXQiLGZ1bmN0aW9uKCl7cShFW3pdKSxSKDkyODIpLmVxdWFsKEVbel0ubGVuZ3RoLDApfSkpLFIuZ1t6XXx8WChSLmcs'@; put 'RVt6XSksTS5leHBvcnRzPXRlKEIoRSkpLEkuZW52LlRFU1RfR1JBQ0VGVUxfRlNfR0xPQkFMX1BBVENIJiYhRS5fX3BhdGNoZWQmJihNLmV4cG9ydHM9dGUoRSksRS5fX3BhdGNoZWQ9ITApfSw4NTIwOihNLE8sUik9Pnt2YXIgej1SKDQxNTUpLEs9UigyODMwKS5TdHJlYW07TS5leHBvcnRz'@; put 'PWZ1bmN0aW9uKEkpe3JldHVybntSZWFkU3RyZWFtOmZ1bmN0aW9uIGsoRSxqKXtpZighKHRoaXMgaW5zdGFuY2VvZiBrKSlyZXR1cm4gbmV3IGsoRSxqKTtLLmNhbGwodGhpcyk7dmFyIFY9dGhpczt0aGlzLnBhdGg9RSx0aGlzLmZkPW51bGwsdGhpcy5yZWFkYWJsZT0hMCx0aGlzLnBhdXNl'@; put 'ZD0hMSx0aGlzLmZsYWdzPSJyIix0aGlzLm1vZGU9NDM4LHRoaXMuYnVmZmVyU2l6ZT02NTUzNixqPWp8fHt9O2Zvcih2YXIgQj1PYmplY3Qua2V5cyhqKSxZPTAsWD1CLmxlbmd0aDtZPFg7WSsrKXt2YXIgVT1CW1ldO3RoaXNbVV09altVXX1pZih0aGlzLmVuY29kaW5nJiZ0aGlzLnNldEVu'@; put 'Y29kaW5nKHRoaXMuZW5jb2RpbmcpLHZvaWQgMCE9PXRoaXMuc3RhcnQpe2lmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5zdGFydCl0aHJvdyBUeXBlRXJyb3IoInN0YXJ0IG11c3QgYmUgYSBOdW1iZXIiKTtpZih2b2lkIDA9PT10aGlzLmVuZCl0aGlzLmVuZD0xLzA7ZWxzZSBpZigibnVtYmVy'@; put 'IiE9dHlwZW9mIHRoaXMuZW5kKXRocm93IFR5cGVFcnJvcigiZW5kIG11c3QgYmUgYSBOdW1iZXIiKTtpZih0aGlzLnN0YXJ0PnRoaXMuZW5kKXRocm93IG5ldyBFcnJvcigic3RhcnQgbXVzdCBiZSA8PSBlbmQiKTt0aGlzLnBvcz10aGlzLnN0YXJ0fW51bGw9PT10aGlzLmZkP0kub3Blbih0'@; put 'aGlzLnBhdGgsdGhpcy5mbGFncyx0aGlzLm1vZGUsZnVuY3Rpb24ocSxlZSl7aWYocSlyZXR1cm4gVi5lbWl0KCJlcnJvciIscSksdm9pZChWLnJlYWRhYmxlPSExKTtWLmZkPWVlLFYuZW1pdCgib3BlbiIsZWUpLFYuX3JlYWQoKX0pOnoubmV4dFRpY2soZnVuY3Rpb24oKXtWLl9yZWFkKCl9'@; put 'KX0sV3JpdGVTdHJlYW06ZnVuY3Rpb24gayhFLGope2lmKCEodGhpcyBpbnN0YW5jZW9mIGspKXJldHVybiBuZXcgayhFLGopO0suY2FsbCh0aGlzKSx0aGlzLnBhdGg9RSx0aGlzLmZkPW51bGwsdGhpcy53cml0YWJsZT0hMCx0aGlzLmZsYWdzPSJ3Iix0aGlzLmVuY29kaW5nPSJiaW5hcnki'@; put 'LHRoaXMubW9kZT00MzgsdGhpcy5ieXRlc1dyaXR0ZW49MCxqPWp8fHt9O2Zvcih2YXIgVj1PYmplY3Qua2V5cyhqKSxCPTAsWT1WLmxlbmd0aDtCPFk7QisrKXt2YXIgWD1WW0JdO3RoaXNbWF09altYXX1pZih2b2lkIDAhPT10aGlzLnN0YXJ0KXtpZigibnVtYmVyIiE9dHlwZW9mIHRoaXMu'@; put 'c3RhcnQpdGhyb3cgVHlwZUVycm9yKCJzdGFydCBtdXN0IGJlIGEgTnVtYmVyIik7aWYodGhpcy5zdGFydDwwKXRocm93IG5ldyBFcnJvcigic3RhcnQgbXVzdCBiZSA+PSB6ZXJvIik7dGhpcy5wb3M9dGhpcy5zdGFydH10aGlzLmJ1c3k9ITEsdGhpcy5fcXVldWU9W10sbnVsbD09PXRoaXMu'@; put 'ZmQmJih0aGlzLl9vcGVuPUkub3Blbix0aGlzLl9xdWV1ZS5wdXNoKFt0aGlzLl9vcGVuLHRoaXMucGF0aCx0aGlzLmZsYWdzLHRoaXMubW9kZSx2b2lkIDBdKSx0aGlzLmZsdXNoKCkpfX19fSwyMTYxOihNLE8sUik9Pnt2YXIgej1SKDQxNTUpLEs9UigzMjA4KSxJPXouY3dkLGs9bnVsbCxF'@; put 'PXouZW52LkdSQUNFRlVMX0ZTX1BMQVRGT1JNfHx6LnBsYXRmb3JtO3ouY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIGt8fChrPUkuY2FsbCh6KSksa307dHJ5e3ouY3dkKCl9Y2F0Y2h7fWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB6LmNoZGlyKXt2YXIgaj16LmNoZGlyO3ouY2hkaXI9ZnVuY3Rpb24o'@; put 'Vil7az1udWxsLGouY2FsbCh6LFYpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YmJk9iamVjdC5zZXRQcm90b3R5cGVPZih6LmNoZGlyLGopfU0uZXhwb3J0cz1mdW5jdGlvbihWKXt2YXIgc2Usb2U7ZnVuY3Rpb24gQihzZSl7cmV0dXJuIHNlJiZmdW5jdGlvbihoZSx1ZSxjZSl7cmV0dXJuIHNl'@; put 'LmNhbGwoVixoZSx1ZSxmdW5jdGlvbihHKXt0ZShHKSYmKEc9bnVsbCksY2UmJmNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfX1mdW5jdGlvbiBZKHNlKXtyZXR1cm4gc2UmJmZ1bmN0aW9uKGhlLHVlKXt0cnl7cmV0dXJuIHNlLmNhbGwoVixoZSx1ZSl9Y2F0Y2goY2Upe2lmKCF0ZShjZSkp'@; put 'dGhyb3cgY2V9fX1mdW5jdGlvbiBYKHNlKXtyZXR1cm4gc2UmJmZ1bmN0aW9uKGhlLHVlLGNlLEcpe3JldHVybiBzZS5jYWxsKFYsaGUsdWUsY2UsZnVuY3Rpb24oYil7dGUoYikmJihiPW51bGwpLEcmJkcuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9fWZ1bmN0aW9uIFUoc2Upe3JldHVybiBz'@; put 'ZSYmZnVuY3Rpb24oaGUsdWUsY2Upe3RyeXtyZXR1cm4gc2UuY2FsbChWLGhlLHVlLGNlKX1jYXRjaChHKXtpZighdGUoRykpdGhyb3cgR319fWZ1bmN0aW9uIHEoc2Upe3JldHVybiBzZSYmZnVuY3Rpb24oaGUsdWUsY2Upe2Z1bmN0aW9uIEcoYixEKXtEJiYoRC51aWQ8MCYmKEQudWlkKz00'@; put 'Mjk0OTY3Mjk2KSxELmdpZDwwJiYoRC5naWQrPTQyOTQ5NjcyOTYpKSxjZSYmY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB1ZSYmKGNlPXVlLHVlPW51bGwpLHVlP3NlLmNhbGwoVixoZSx1ZSxHKTpzZS5jYWxsKFYsaGUsRyl9fWZ1bmN0aW9uIGVl'@; put 'KHNlKXtyZXR1cm4gc2UmJmZ1bmN0aW9uKGhlLHVlKXt2YXIgY2U9dWU/c2UuY2FsbChWLGhlLHVlKTpzZS5jYWxsKFYsaGUpO3JldHVybiBjZSYmKGNlLnVpZDwwJiYoY2UudWlkKz00Mjk0OTY3Mjk2KSxjZS5naWQ8MCYmKGNlLmdpZCs9NDI5NDk2NzI5NikpLGNlfX1mdW5jdGlvbiB0ZShz'@; put 'ZSl7cmV0dXJuIXNlfHwiRU5PU1lTIj09PXNlLmNvZGV8fCEoei5nZXR1aWQmJjA9PT16LmdldHVpZCgpfHwiRUlOVkFMIiE9PXNlLmNvZGUmJiJFUEVSTSIhPT1zZS5jb2RlKX1LLmhhc093blByb3BlcnR5KCJPX1NZTUxJTksiKSYmei52ZXJzaW9uLm1hdGNoKC9edjBcLjZcLlswLTJdfF52'@; put 'MFwuNVwuLykmJigoc2U9VikubGNobW9kPWZ1bmN0aW9uKGhlLHVlLGNlKXtzZS5vcGVuKGhlLEsuT19XUk9OTFl8Sy5PX1NZTUxJTkssdWUsZnVuY3Rpb24oRyxiKXtHP2NlJiZjZShHKTpzZS5mY2htb2QoYix1ZSxmdW5jdGlvbihEKXtzZS5jbG9zZShiLGZ1bmN0aW9uKEgpe2NlJiZjZShE'@; put 'fHxIKX0pfSl9KX0sc2UubGNobW9kU3luYz1mdW5jdGlvbihoZSx1ZSl7dmFyIGNlLEc9c2Uub3BlblN5bmMoaGUsSy5PX1dST05MWXxLLk9fU1lNTElOSyx1ZSksYj0hMDt0cnl7Y2U9c2UuZmNobW9kU3luYyhHLHVlKSxiPSExfWZpbmFsbHl7aWYoYil0cnl7c2UuY2xvc2VTeW5jKEcpfWNh'@; put 'dGNoe31lbHNlIHNlLmNsb3NlU3luYyhHKX1yZXR1cm4gY2V9KSxWLmx1dGltZXN8fGZ1bmN0aW9uKHNlKXtLLmhhc093blByb3BlcnR5KCJPX1NZTUxJTksiKSYmc2UuZnV0aW1lcz8oc2UubHV0aW1lcz1mdW5jdGlvbihoZSx1ZSxjZSxHKXtzZS5vcGVuKGhlLEsuT19TWU1MSU5LLGZ1bmN0'@; put 'aW9uKGIsRCl7Yj9HJiZHKGIpOnNlLmZ1dGltZXMoRCx1ZSxjZSxmdW5jdGlvbihIKXtzZS5jbG9zZShELGZ1bmN0aW9uKE4pe0cmJkcoSHx8Til9KX0pfSl9LHNlLmx1dGltZXNTeW5jPWZ1bmN0aW9uKGhlLHVlLGNlKXt2YXIgRyxiPXNlLm9wZW5TeW5jKGhlLEsuT19TWU1MSU5LKSxEPSEw'@; put 'O3RyeXtHPXNlLmZ1dGltZXNTeW5jKGIsdWUsY2UpLEQ9ITF9ZmluYWxseXtpZihEKXRyeXtzZS5jbG9zZVN5bmMoYil9Y2F0Y2h7fWVsc2Ugc2UuY2xvc2VTeW5jKGIpfXJldHVybiBHfSk6c2UuZnV0aW1lcyYmKHNlLmx1dGltZXM9ZnVuY3Rpb24oaGUsdWUsY2UsRyl7RyYmei5uZXh0VGlj'@; put 'ayhHKX0sc2UubHV0aW1lc1N5bmM9ZnVuY3Rpb24oKXt9KX0oViksVi5jaG93bj1YKFYuY2hvd24pLFYuZmNob3duPVgoVi5mY2hvd24pLFYubGNob3duPVgoVi5sY2hvd24pLFYuY2htb2Q9QihWLmNobW9kKSxWLmZjaG1vZD1CKFYuZmNobW9kKSxWLmxjaG1vZD1CKFYubGNobW9kKSxWLmNo'@; put 'b3duU3luYz1VKFYuY2hvd25TeW5jKSxWLmZjaG93blN5bmM9VShWLmZjaG93blN5bmMpLFYubGNob3duU3luYz1VKFYubGNob3duU3luYyksVi5jaG1vZFN5bmM9WShWLmNobW9kU3luYyksVi5mY2htb2RTeW5jPVkoVi5mY2htb2RTeW5jKSxWLmxjaG1vZFN5bmM9WShWLmxjaG1vZFN5bmMp'@; put 'LFYuc3RhdD1xKFYuc3RhdCksVi5mc3RhdD1xKFYuZnN0YXQpLFYubHN0YXQ9cShWLmxzdGF0KSxWLnN0YXRTeW5jPWVlKFYuc3RhdFN5bmMpLFYuZnN0YXRTeW5jPWVlKFYuZnN0YXRTeW5jKSxWLmxzdGF0U3luYz1lZShWLmxzdGF0U3luYyksVi5jaG1vZCYmIVYubGNobW9kJiYoVi5sY2ht'@; put 'b2Q9ZnVuY3Rpb24oc2UsaGUsdWUpe3VlJiZ6Lm5leHRUaWNrKHVlKX0sVi5sY2htb2RTeW5jPWZ1bmN0aW9uKCl7fSksVi5jaG93biYmIVYubGNob3duJiYoVi5sY2hvd249ZnVuY3Rpb24oc2UsaGUsdWUsY2Upe2NlJiZ6Lm5leHRUaWNrKGNlKX0sVi5sY2hvd25TeW5jPWZ1bmN0aW9uKCl7'@; put 'fSksIndpbjMyIj09PUUmJihWLnJlbmFtZT0iZnVuY3Rpb24iIT10eXBlb2YgVi5yZW5hbWU/Vi5yZW5hbWU6ZnVuY3Rpb24oc2Upe2Z1bmN0aW9uIGhlKHVlLGNlLEcpe3ZhciBiPURhdGUubm93KCksRD0wO3NlKHVlLGNlLGZ1bmN0aW9uIEgoTil7aWYoTiYmKCJFQUNDRVMiPT09Ti5jb2Rl'@; put 'fHwiRVBFUk0iPT09Ti5jb2RlKSYmRGF0ZS5ub3coKS1iPDZlNClyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe1Yuc3RhdChjZSxmdW5jdGlvbihnLEMpe2cmJiJFTk9FTlQiPT09Zy5jb2RlP3NlKHVlLGNlLEgpOkcoTil9KX0sRCksdm9pZChEPDEwMCYmKEQrPTEwKSk7RyYmRyhOKX0p'@; put 'fXJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YmJk9iamVjdC5zZXRQcm90b3R5cGVPZihoZSxzZSksaGV9KFYucmVuYW1lKSksVi5yZWFkPSJmdW5jdGlvbiIhPXR5cGVvZiBWLnJlYWQ/Vi5yZWFkOmZ1bmN0aW9uKHNlKXtmdW5jdGlvbiBoZSh1ZSxjZSxHLGIsRCxIKXt2YXIgTjtpZihI'@; put 'JiYiZnVuY3Rpb24iPT10eXBlb2YgSCl7dmFyIGc9MDtOPWZ1bmN0aW9uKEMsUyx2KXtpZihDJiYiRUFHQUlOIj09PUMuY29kZSYmZzwxMClyZXR1cm4gZysrLHNlLmNhbGwoVix1ZSxjZSxHLGIsRCxOKTtILmFwcGx5KHRoaXMsYXJndW1lbnRzKX19cmV0dXJuIHNlLmNhbGwoVix1ZSxjZSxH'@; put 'LGIsRCxOKX1yZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mJiZPYmplY3Quc2V0UHJvdG90eXBlT2YoaGUsc2UpLGhlfShWLnJlYWQpLFYucmVhZFN5bmM9ImZ1bmN0aW9uIiE9dHlwZW9mIFYucmVhZFN5bmM/Vi5yZWFkU3luYzoob2U9Vi5yZWFkU3luYyxmdW5jdGlvbihzZSxoZSx1ZSxj'@; put 'ZSxHKXtmb3IodmFyIGI9MDs7KXRyeXtyZXR1cm4gb2UuY2FsbChWLHNlLGhlLHVlLGNlLEcpfWNhdGNoKEQpe2lmKCJFQUdBSU4iPT09RC5jb2RlJiZiPDEwKXtiKys7Y29udGludWV9dGhyb3cgRH19KX19LDEwNDQ6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDIxMCkoIiVPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHklIiwhMCksSz1mdW5jdGlvbigpe2lmKHopdHJ5e3JldHVybiB6KHt9LCJhIix7dmFsdWU6MX0pLCEwfWNhdGNoe3JldHVybiExfXJldHVybiExfTtLLmhhc0FycmF5TGVuZ3RoRGVmaW5lQnVnPWZ1bmN0aW9uKCl7aWYoIUsoKSlyZXR1cm4gbnVsbDt0cnl7cmV0'@; put 'dXJuIDEhPT16KFtdLCJsZW5ndGgiLHt2YWx1ZToxfSkubGVuZ3RofWNhdGNoe3JldHVybiEwfX0sTS5leHBvcnRzPUt9LDE0MDU6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej10eXBlb2YgU3ltYm9sPCJ1IiYmU3ltYm9sLEs9Uig1NDE5KTtNLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4iZnVuY3Rpb24iPT10eXBlb2YgeiYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiB6KCJmb28iKSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2woImJhciIpJiZLKCl9fSw1NDE5Ok09PnsidXNlIHN0cmljdCI7TS5leHBvcnRzPWZ1bmN0aW9uKCl7aWYoImZ1'@; put 'bmN0aW9uIiE9dHlwZW9mIFN5bWJvbHx8ImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpcmV0dXJuITE7aWYoInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IpcmV0dXJuITA7dmFyIE89e30sUj1TeW1ib2woInRlc3QiKSx6PU9iamVjdChSKTtp'@; put 'Zigic3RyaW5nIj09dHlwZW9mIFJ8fCJbb2JqZWN0IFN5bWJvbF0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFIpfHwiW29iamVjdCBTeW1ib2xdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh6KSlyZXR1cm4hMTtmb3IoUiBpbiBPW1JdPTQyLE8pcmV0dXJu'@; put 'ITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5rZXlzJiYwIT09T2JqZWN0LmtleXMoTykubGVuZ3RofHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMmJjAhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKS5sZW5ndGgpcmV0dXJuITE7dmFy'@; put 'IEs9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhPKTtpZigxIT09Sy5sZW5ndGh8fEtbMF0hPT1SfHwhT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKE8sUikpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl'@; put 'c2NyaXB0b3Ipe3ZhciBJPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTyxSKTtpZig0MiE9PUkudmFsdWV8fCEwIT09SS5lbnVtZXJhYmxlKXJldHVybiExfXJldHVybiEwfX0sNjQxMDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNTQxOSk7TS5leHBvcnRzPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIHooKSYmISFTeW1ib2wudG9TdHJpbmdUYWd9fSw3NjQyOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig4NjEyKTtNLmV4cG9ydHM9ei5jYWxsKEZ1bmN0aW9uLmNhbGwsT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSl9LDMzNDk6KE0sTyxSKT0+eyJ1'@; put 'c2Ugc3RyaWN0Ijt2YXIgej1SKDk1MDkpLkJ1ZmZlcixLPVIoODQ3MykuVHJhbnNmb3JtO2Z1bmN0aW9uIEkoayl7Sy5jYWxsKHRoaXMpLHRoaXMuX2Jsb2NrPXouYWxsb2NVbnNhZmUoayksdGhpcy5fYmxvY2tTaXplPWssdGhpcy5fYmxvY2tPZmZzZXQ9MCx0aGlzLl9sZW5ndGg9WzAsMCww'@; put 'LDBdLHRoaXMuX2ZpbmFsaXplZD0hMX1SKDU3MTcpKEksSyksSS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihrLEUsail7dmFyIFY9bnVsbDt0cnl7dGhpcy51cGRhdGUoayxFKX1jYXRjaChCKXtWPUJ9aihWKX0sSS5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKGspe3ZhciBFPW51'@; put 'bGw7dHJ5e3RoaXMucHVzaCh0aGlzLmRpZ2VzdCgpKX1jYXRjaChqKXtFPWp9ayhFKX0sSS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGssRSl7aWYoZnVuY3Rpb24oVSxxKXtpZighei5pc0J1ZmZlcihVKSYmInN0cmluZyIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkRhdGEg'@; put 'bXVzdCBiZSBhIHN0cmluZyBvciBhIGJ1ZmZlciIpfShrKSx0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt6LmlzQnVmZmVyKGspfHwoaz16LmZyb20oayxFKSk7Zm9yKHZhciBqPXRoaXMuX2Jsb2NrLFY9MDt0aGlzLl9ibG9ja09mZnNl'@; put 'dCtrLmxlbmd0aC1WPj10aGlzLl9ibG9ja1NpemU7KXtmb3IodmFyIEI9dGhpcy5fYmxvY2tPZmZzZXQ7Qjx0aGlzLl9ibG9ja1NpemU7KWpbQisrXT1rW1YrK107dGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MH1mb3IoO1Y8ay5sZW5ndGg7KWpbdGhpcy5fYmxvY2tPZmZzZXQr'@; put 'K109a1tWKytdO2Zvcih2YXIgWT0wLFg9OCprLmxlbmd0aDtYPjA7KytZKXRoaXMuX2xlbmd0aFtZXSs9WCwoWD10aGlzLl9sZW5ndGhbWV0vNDI5NDk2NzI5NnwwKT4wJiYodGhpcy5fbGVuZ3RoW1ldLT00Mjk0OTY3Mjk2KlgpO3JldHVybiB0aGlzfSxJLnByb3RvdHlwZS5fdXBkYXRlPWZ1'@; put 'bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxJLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oayl7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7dGhpcy5fZmluYWxpemVkPSEw'@; put 'O3ZhciBFPXRoaXMuX2RpZ2VzdCgpO3ZvaWQgMCE9PWsmJihFPUUudG9TdHJpbmcoaykpLHRoaXMuX2Jsb2NrLmZpbGwoMCksdGhpcy5fYmxvY2tPZmZzZXQ9MDtmb3IodmFyIGo9MDtqPDQ7KytqKXRoaXMuX2xlbmd0aFtqXT0wO3JldHVybiBFfSxJLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0'@; put 'aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxNLmV4cG9ydHM9SX0sMzcxNTooTSxPLFIpPT57dmFyIHo9Tzt6LnV0aWxzPVIoNjQzNiksei5jb21tb249Uig1NzcyKSx6LnNoYT1SKDkwNDEpLHoucmlwZW1kPVIoMjk0OSksei5obWFjPVIoMjM0'@; put 'NCksei5zaGExPXouc2hhLnNoYTEsei5zaGEyNTY9ei5zaGEuc2hhMjU2LHouc2hhMjI0PXouc2hhLnNoYTIyNCx6LnNoYTM4ND16LnNoYS5zaGEzODQsei5zaGE1MTI9ei5zaGEuc2hhNTEyLHoucmlwZW1kMTYwPXoucmlwZW1kLnJpcGVtZDE2MH0sNTc3MjooTSxPLFIpPT57InVzZSBzdHJp'@; put 'Y3QiO3ZhciB6PVIoNjQzNiksSz1SKDk3NDYpO2Z1bmN0aW9uIEkoKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tTaXplPXRoaXMuY29uc3RydWN0b3IuYmxvY2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5o'@; put 'bWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3RyZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlzLmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMy'@; put 'fU8uQmxvY2tIYXNoPUksSS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGssRSl7aWYoaz16LnRvQXJyYXkoayxFKSx0aGlzLnBlbmRpbmc9dGhpcy5wZW5kaW5nP3RoaXMucGVuZGluZy5jb25jYXQoayk6ayx0aGlzLnBlbmRpbmdUb3RhbCs9ay5sZW5ndGgsdGhpcy5wZW5kaW5nLmxlbmd0'@; put 'aD49dGhpcy5fZGVsdGE4KXt2YXIgaj0oaz10aGlzLnBlbmRpbmcpLmxlbmd0aCV0aGlzLl9kZWx0YTg7dGhpcy5wZW5kaW5nPWsuc2xpY2Uoay5sZW5ndGgtaixrLmxlbmd0aCksMD09PXRoaXMucGVuZGluZy5sZW5ndGgmJih0aGlzLnBlbmRpbmc9bnVsbCksaz16LmpvaW4zMihrLDAsay5s'@; put 'ZW5ndGgtaix0aGlzLmVuZGlhbik7Zm9yKHZhciBWPTA7VjxrLmxlbmd0aDtWKz10aGlzLl9kZWx0YTMyKXRoaXMuX3VwZGF0ZShrLFYsVit0aGlzLl9kZWx0YTMyKX1yZXR1cm4gdGhpc30sSS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKGspe3JldHVybiB0aGlzLnVwZGF0ZSh0aGlzLl9w'@; put 'YWQoKSksSyhudWxsPT09dGhpcy5wZW5kaW5nKSx0aGlzLl9kaWdlc3Qoayl9LEkucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oKXt2YXIgaz10aGlzLnBlbmRpbmdUb3RhbCxFPXRoaXMuX2RlbHRhOCxqPUUtKGsrdGhpcy5wYWRMZW5ndGgpJUUsVj1uZXcgQXJyYXkoait0aGlzLnBhZExlbmd0'@; put 'aCk7VlswXT0xMjg7Zm9yKHZhciBCPTE7QjxqO0IrKylWW0JdPTA7aWYoazw8PTMsImJpZyI9PT10aGlzLmVuZGlhbil7Zm9yKHZhciBZPTg7WTx0aGlzLnBhZExlbmd0aDtZKyspVltCKytdPTA7VltCKytdPTAsVltCKytdPTAsVltCKytdPTAsVltCKytdPTAsVltCKytdPWs+Pj4yNCYyNTUs'@; put 'VltCKytdPWs+Pj4xNiYyNTUsVltCKytdPWs+Pj44JjI1NSxWW0IrK109MjU1Jmt9ZWxzZSBmb3IoVltCKytdPTI1NSZrLFZbQisrXT1rPj4+OCYyNTUsVltCKytdPWs+Pj4xNiYyNTUsVltCKytdPWs+Pj4yNCYyNTUsVltCKytdPTAsVltCKytdPTAsVltCKytdPTAsVltCKytdPTAsWT04O1k8'@; put 'dGhpcy5wYWRMZW5ndGg7WSsrKVZbQisrXT0wO3JldHVybiBWfX0sMjM0NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNjQzNiksSz1SKDk3NDYpO2Z1bmN0aW9uIEkoayxFLGope2lmKCEodGhpcyBpbnN0YW5jZW9mIEkpKXJldHVybiBuZXcgSShrLEUsaik7dGhpcy5IYXNoPWss'@; put 'dGhpcy5ibG9ja1NpemU9ay5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9ay5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KHoudG9BcnJheShFLGopKX1NLmV4cG9ydHM9SSxJLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihrKXtrLmxlbmd0aD50'@; put 'aGlzLmJsb2NrU2l6ZSYmKGs9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZShrKS5kaWdlc3QoKSksSyhrLmxlbmd0aDw9dGhpcy5ibG9ja1NpemUpO2Zvcih2YXIgRT1rLmxlbmd0aDtFPHRoaXMuYmxvY2tTaXplO0UrKylrLnB1c2goMCk7Zm9yKEU9MDtFPGsubGVuZ3RoO0UrKylrW0VdXj01NDtm'@; put 'b3IodGhpcy5pbm5lcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKGspLEU9MDtFPGsubGVuZ3RoO0UrKylrW0VdXj0xMDY7dGhpcy5vdXRlcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKGspfSxJLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oayxFKXtyZXR1cm4gdGhpcy5pbm5lci51cGRhdGUo'@; put 'ayxFKSx0aGlzfSxJLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oayl7cmV0dXJuIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMuaW5uZXIuZGlnZXN0KCkpLHRoaXMub3V0ZXIuZGlnZXN0KGspfX0sMjk0OTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNjQzNiksSz1SKDU3NzIpLEk9'@; put 'ei5yb3RsMzIsaz16LnN1bTMyLEU9ei5zdW0zMl8zLGo9ei5zdW0zMl80LFY9Sy5CbG9ja0hhc2g7ZnVuY3Rpb24gQigpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEIpKXJldHVybiBuZXcgQjtWLmNhbGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3'@; put 'MzM4NzgsMzI4NTM3NzUyMF0sdGhpcy5lbmRpYW49ImxpdHRsZSJ9ZnVuY3Rpb24gWShzZSxoZSx1ZSxjZSl7cmV0dXJuIHNlPD0xNT9oZV51ZV5jZTpzZTw9MzE/aGUmdWV8fmhlJmNlOnNlPD00Nz8oaGV8fnVlKV5jZTpzZTw9NjM/aGUmY2V8dWUmfmNlOmhlXih1ZXx+Y2UpfWZ1bmN0aW9u'@; put 'IFgoc2Upe3JldHVybiBzZTw9MTU/MDpzZTw9MzE/MTUxODUwMDI0OTpzZTw9NDc/MTg1OTc3NTM5MzpzZTw9NjM/MjQwMDk1OTcwODoyODQwODUzODM4fWZ1bmN0aW9uIFUoc2Upe3JldHVybiBzZTw9MTU/MTM1MjgyOTkyNjpzZTw9MzE/MTU0ODYwMzY4NDpzZTw9NDc/MTgzNjA3MjY5MTpz'@; put 'ZTw9NjM/MjA1Mzk5NDIxNzowfXouaW5oZXJpdHMoQixWKSxPLnJpcGVtZDE2MD1CLEIuYmxvY2tTaXplPTUxMixCLm91dFNpemU9MTYwLEIuaG1hY1N0cmVuZ3RoPTE5MixCLnBhZExlbmd0aD02NCxCLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHNlLGhlKXtmb3IodmFyIHVlPXRoaXMu'@; put 'aFswXSxjZT10aGlzLmhbMV0sRz10aGlzLmhbMl0sYj10aGlzLmhbM10sRD10aGlzLmhbNF0sSD11ZSxOPWNlLGc9RyxDPWIsUz1ELHY9MDt2PDgwO3YrKyl7dmFyIHA9ayhJKGoodWUsWSh2LGNlLEcsYiksc2VbcVt2XStoZV0sWCh2KSksdGVbdl0pLEQpO3VlPUQsRD1iLGI9SShHLDEwKSxH'@; put 'PWNlLGNlPXAscD1rKEkoaihILFkoNzktdixOLGcsQyksc2VbZWVbdl0raGVdLFUodikpLG9lW3ZdKSxTKSxIPVMsUz1DLEM9SShnLDEwKSxnPU4sTj1wfXA9RSh0aGlzLmhbMV0sRyxDKSx0aGlzLmhbMV09RSh0aGlzLmhbMl0sYixTKSx0aGlzLmhbMl09RSh0aGlzLmhbM10sRCxIKSx0aGlz'@; put 'LmhbM109RSh0aGlzLmhbNF0sdWUsTiksdGhpcy5oWzRdPUUodGhpcy5oWzBdLGNlLGcpLHRoaXMuaFswXT1wfSxCLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHNlKXtyZXR1cm4iaGV4Ij09PXNlP3oudG9IZXgzMih0aGlzLmgsImxpdHRsZSIpOnouc3BsaXQzMih0aGlzLmgsImxpdHRs'@; put 'ZSIpfTt2YXIgcT1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0'@; put 'LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSxlZT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwz'@; put 'LDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSx0ZT1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQs'@; put 'OSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sb2U9WzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIs'@; put 'OCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdfSw5MDQxOihNLE8sUik9Pnsi'@; put 'dXNlIHN0cmljdCI7Ty5zaGExPVIoNDc2MSksTy5zaGEyMjQ9Uig3OTkpLE8uc2hhMjU2PVIoOTM0NCksTy5zaGEzODQ9Uig3NzIpLE8uc2hhNTEyPVIoNTkwMCl9LDQ3NjE6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDY0MzYpLEs9Uig1NzcyKSxJPVIoNzAzOCksaz16LnJvdGwz'@; put 'MixFPXouc3VtMzIsaj16LnN1bTMyXzUsVj1JLmZ0XzEsQj1LLkJsb2NrSGFzaCxZPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwzMzk1NDY5NzgyXTtmdW5jdGlvbiBYKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgWCkpcmV0dXJuIG5ldyBYO0IuY2FsbCh0aGlzKSx0aGlzLmg9'@; put 'WzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSx0aGlzLlc9bmV3IEFycmF5KDgwKX16LmluaGVyaXRzKFgsQiksTS5leHBvcnRzPVgsWC5ibG9ja1NpemU9NTEyLFgub3V0U2l6ZT0xNjAsWC5obWFjU3RyZW5ndGg9ODAsWC5wYWRMZW5ndGg9'@; put 'NjQsWC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihVLHEpe2Zvcih2YXIgZWU9dGhpcy5XLHRlPTA7dGU8MTY7dGUrKyllZVt0ZV09VVtxK3RlXTtmb3IoO3RlPGVlLmxlbmd0aDt0ZSsrKWVlW3RlXT1rKGVlW3RlLTNdXmVlW3RlLThdXmVlW3RlLTE0XV5lZVt0ZS0xNl0sMSk7dmFyIG9l'@; put 'PXRoaXMuaFswXSxzZT10aGlzLmhbMV0saGU9dGhpcy5oWzJdLHVlPXRoaXMuaFszXSxjZT10aGlzLmhbNF07Zm9yKHRlPTA7dGU8ZWUubGVuZ3RoO3RlKyspe3ZhciBHPX5+KHRlLzIwKSxiPWooayhvZSw1KSxWKEcsc2UsaGUsdWUpLGNlLGVlW3RlXSxZW0ddKTtjZT11ZSx1ZT1oZSxoZT1r'@; put 'KHNlLDMwKSxzZT1vZSxvZT1ifXRoaXMuaFswXT1FKHRoaXMuaFswXSxvZSksdGhpcy5oWzFdPUUodGhpcy5oWzFdLHNlKSx0aGlzLmhbMl09RSh0aGlzLmhbMl0saGUpLHRoaXMuaFszXT1FKHRoaXMuaFszXSx1ZSksdGhpcy5oWzRdPUUodGhpcy5oWzRdLGNlKX0sWC5wcm90b3R5cGUuX2Rp'@; put 'Z2VzdD1mdW5jdGlvbihVKXtyZXR1cm4iaGV4Ij09PVU/ei50b0hleDMyKHRoaXMuaCwiYmlnIik6ei5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3OTk6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDY0MzYpLEs9Uig5MzQ0KTtmdW5jdGlvbiBJKCl7aWYoISh0aGlzIGluc3RhbmNl'@; put 'b2YgSSkpcmV0dXJuIG5ldyBJO0suY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfXouaW5oZXJpdHMoSSxLKSxNLmV4cG9ydHM9SSxJLmJsb2NrU2l6'@; put 'ZT01MTIsSS5vdXRTaXplPTIyNCxJLmhtYWNTdHJlbmd0aD0xOTIsSS5wYWRMZW5ndGg9NjQsSS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihrKXtyZXR1cm4iaGV4Ij09PWs/ei50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKTp6LnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsNyks'@; put 'ImJpZyIpfX0sOTM0NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNjQzNiksSz1SKDU3NzIpLEk9Uig3MDM4KSxrPVIoOTc0NiksRT16LnN1bTMyLGo9ei5zdW0zMl80LFY9ei5zdW0zMl81LEI9SS5jaDMyLFk9SS5tYWozMixYPUkuczBfMjU2LFU9SS5zMV8yNTYscT1JLmcwXzI1'@; put 'NixlZT1JLmcxXzI1Nix0ZT1LLkJsb2NrSGFzaCxvZT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTky'@; put 'NTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMx'@; put 'MzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAw'@; put 'LDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3'@; put 'MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtmdW5jdGlvbiBzZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHNlKSlyZXR1cm4gbmV3IHNlO3RlLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkw'@; put 'NDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV0sdGhpcy5rPW9lLHRoaXMuVz1uZXcgQXJyYXkoNjQpfXouaW5oZXJpdHMoc2UsdGUpLE0uZXhwb3J0cz1zZSxzZS5ibG9ja1NpemU9NTEyLHNlLm91dFNpemU9MjU2LHNlLmhtYWNTdHJl'@; put 'bmd0aD0xOTIsc2UucGFkTGVuZ3RoPTY0LHNlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGhlLHVlKXtmb3IodmFyIGNlPXRoaXMuVyxHPTA7RzwxNjtHKyspY2VbR109aGVbdWUrR107Zm9yKDtHPGNlLmxlbmd0aDtHKyspY2VbR109aihlZShjZVtHLTJdKSxjZVtHLTddLHEoY2VbRy0x'@; put 'NV0pLGNlW0ctMTZdKTt2YXIgYj10aGlzLmhbMF0sRD10aGlzLmhbMV0sSD10aGlzLmhbMl0sTj10aGlzLmhbM10sZz10aGlzLmhbNF0sQz10aGlzLmhbNV0sUz10aGlzLmhbNl0sdj10aGlzLmhbN107Zm9yKGsodGhpcy5rLmxlbmd0aD09PWNlLmxlbmd0aCksRz0wO0c8Y2UubGVuZ3RoO0cr'@; put 'Kyl7dmFyIHA9Vih2LFUoZyksQihnLEMsUyksdGhpcy5rW0ddLGNlW0ddKSx3PUUoWChiKSxZKGIsRCxIKSk7dj1TLFM9QyxDPWcsZz1FKE4scCksTj1ILEg9RCxEPWIsYj1FKHAsdyl9dGhpcy5oWzBdPUUodGhpcy5oWzBdLGIpLHRoaXMuaFsxXT1FKHRoaXMuaFsxXSxEKSx0aGlzLmhbMl09'@; put 'RSh0aGlzLmhbMl0sSCksdGhpcy5oWzNdPUUodGhpcy5oWzNdLE4pLHRoaXMuaFs0XT1FKHRoaXMuaFs0XSxnKSx0aGlzLmhbNV09RSh0aGlzLmhbNV0sQyksdGhpcy5oWzZdPUUodGhpcy5oWzZdLFMpLHRoaXMuaFs3XT1FKHRoaXMuaFs3XSx2KX0sc2UucHJvdG90eXBlLl9kaWdlc3Q9ZnVu'@; put 'Y3Rpb24oaGUpe3JldHVybiJoZXgiPT09aGU/ei50b0hleDMyKHRoaXMuaCwiYmlnIik6ei5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3NzI6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDY0MzYpLEs9Uig1OTAwKTtmdW5jdGlvbiBJKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSSkp'@; put 'cmV0dXJuIG5ldyBJO0suY2FsbCh0aGlzKSx0aGlzLmg9WzM0MTgwNzAzNjUsMzIzODM3MTAzMiwxNjU0MjcwMjUwLDkxNDE1MDY2MywyNDM4NTI5MzcwLDgxMjcwMjk5OSwzNTU0NjIzNjAsNDE0NDkxMjY5NywxNzMxNDA1NDE1LDQyOTA3NzU4NTcsMjM5NDE4MDIzMSwxNzUwNjAzMDI1LDM2'@; put 'NzUwMDg1MjUsMTY5NDA3NjgzOSwxMjAzMDYyODEzLDMyMDQwNzU0MjhdfXouaW5oZXJpdHMoSSxLKSxNLmV4cG9ydHM9SSxJLmJsb2NrU2l6ZT0xMDI0LEkub3V0U2l6ZT0zODQsSS5obWFjU3RyZW5ndGg9MTkyLEkucGFkTGVuZ3RoPTEyOCxJLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9u'@; put 'KGspe3JldHVybiJoZXgiPT09az96LnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKTp6LnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LDU5MDA6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDY0MzYpLEs9Uig1NzcyKSxJPVIoOTc0Niksaz16LnJvdHI2'@; put 'NF9oaSxFPXoucm90cjY0X2xvLGo9ei5zaHI2NF9oaSxWPXouc2hyNjRfbG8sQj16LnN1bTY0LFk9ei5zdW02NF9oaSxYPXouc3VtNjRfbG8sVT16LnN1bTY0XzRfaGkscT16LnN1bTY0XzRfbG8sZWU9ei5zdW02NF81X2hpLHRlPXouc3VtNjRfNV9sbyxvZT1LLkJsb2NrSGFzaCxzZT1bMTEx'@; put 'NjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2'@; put 'MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4'@; put 'MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5'@; put 'OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4'@; put 'MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYz'@; put 'NTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2'@; put 'LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcy'@; put 'MzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQx'@; put 'ODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0'@; put 'LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1'@; put 'MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdO2Z1bmN0aW9uIGhlKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgaGUpKXJldHVybiBuZXcgaGU7b2UuY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcy'@; put 'MCwzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0Miw0MjcxMTc1NzIzLDI3NzM0ODA3NjIsMTU5NTc1MDEyOSwxMzU5ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1zZSx0'@; put 'aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gdWUodyxKLG5lLGRlLGZlKXt2YXIgeGU9dyZuZV5+dyZmZTtyZXR1cm4geGU8MCYmKHhlKz00Mjk0OTY3Mjk2KSx4ZX1mdW5jdGlvbiBjZSh3LEosbmUsZGUsZmUseGUpe3ZhciBMZT1KJmRlXn5KJnhlO3JldHVybiBMZTwwJiYoTGUrPTQy'@; put 'OTQ5NjcyOTYpLExlfWZ1bmN0aW9uIEcodyxKLG5lLGRlLGZlKXt2YXIgeGU9dyZuZV53JmZlXm5lJmZlO3JldHVybiB4ZTwwJiYoeGUrPTQyOTQ5NjcyOTYpLHhlfWZ1bmN0aW9uIGIodyxKLG5lLGRlLGZlLHhlKXt2YXIgTGU9SiZkZV5KJnhlXmRlJnhlO3JldHVybiBMZTwwJiYoTGUrPTQy'@; put 'OTQ5NjcyOTYpLExlfWZ1bmN0aW9uIEQodyxKKXt2YXIgbmU9ayh3LEosMjgpXmsoSix3LDIpXmsoSix3LDcpO3JldHVybiBuZTwwJiYobmUrPTQyOTQ5NjcyOTYpLG5lfWZ1bmN0aW9uIEgodyxKKXt2YXIgbmU9RSh3LEosMjgpXkUoSix3LDIpXkUoSix3LDcpO3JldHVybiBuZTwwJiYobmUr'@; put 'PTQyOTQ5NjcyOTYpLG5lfWZ1bmN0aW9uIE4odyxKKXt2YXIgbmU9ayh3LEosMTQpXmsodyxKLDE4KV5rKEosdyw5KTtyZXR1cm4gbmU8MCYmKG5lKz00Mjk0OTY3Mjk2KSxuZX1mdW5jdGlvbiBnKHcsSil7dmFyIG5lPUUodyxKLDE0KV5FKHcsSiwxOCleRShKLHcsOSk7cmV0dXJuIG5lPDAm'@; put 'JihuZSs9NDI5NDk2NzI5NiksbmV9ZnVuY3Rpb24gQyh3LEope3ZhciBuZT1rKHcsSiwxKV5rKHcsSiw4KV5qKHcsSiw3KTtyZXR1cm4gbmU8MCYmKG5lKz00Mjk0OTY3Mjk2KSxuZX1mdW5jdGlvbiBTKHcsSil7dmFyIG5lPUUodyxKLDEpXkUodyxKLDgpXlYodyxKLDcpO3JldHVybiBuZTww'@; put 'JiYobmUrPTQyOTQ5NjcyOTYpLG5lfWZ1bmN0aW9uIHYodyxKKXt2YXIgbmU9ayh3LEosMTkpXmsoSix3LDI5KV5qKHcsSiw2KTtyZXR1cm4gbmU8MCYmKG5lKz00Mjk0OTY3Mjk2KSxuZX1mdW5jdGlvbiBwKHcsSil7dmFyIG5lPUUodyxKLDE5KV5FKEosdywyOSleVih3LEosNik7cmV0dXJu'@; put 'IG5lPDAmJihuZSs9NDI5NDk2NzI5NiksbmV9ei5pbmhlcml0cyhoZSxvZSksTS5leHBvcnRzPWhlLGhlLmJsb2NrU2l6ZT0xMDI0LGhlLm91dFNpemU9NTEyLGhlLmhtYWNTdHJlbmd0aD0xOTIsaGUucGFkTGVuZ3RoPTEyOCxoZS5wcm90b3R5cGUuX3ByZXBhcmVCbG9jaz1mdW5jdGlvbih3'@; put 'LEope2Zvcih2YXIgbmU9dGhpcy5XLGRlPTA7ZGU8MzI7ZGUrKyluZVtkZV09d1tKK2RlXTtmb3IoO2RlPG5lLmxlbmd0aDtkZSs9Mil7dmFyIGZlPXYobmVbZGUtNF0sbmVbZGUtM10pLHhlPXAobmVbZGUtNF0sbmVbZGUtM10pLExlPW5lW2RlLTE0XSxGZT1uZVtkZS0xM10sT2U9QyhuZVtk'@; put 'ZS0zMF0sbmVbZGUtMjldKSxqZT1TKG5lW2RlLTMwXSxuZVtkZS0yOV0pLFdlPW5lW2RlLTMyXSxLZT1uZVtkZS0zMV07bmVbZGVdPVUoZmUseGUsTGUsRmUsT2UsamUsV2UsS2UpLG5lW2RlKzFdPXEoZmUseGUsTGUsRmUsT2UsamUsV2UsS2UpfX0saGUucHJvdG90eXBlLl91cGRhdGU9ZnVu'@; put 'Y3Rpb24odyxKKXt0aGlzLl9wcmVwYXJlQmxvY2sodyxKKTt2YXIgbmU9dGhpcy5XLGRlPXRoaXMuaFswXSxmZT10aGlzLmhbMV0seGU9dGhpcy5oWzJdLExlPXRoaXMuaFszXSxGZT10aGlzLmhbNF0sT2U9dGhpcy5oWzVdLGplPXRoaXMuaFs2XSxXZT10aGlzLmhbN10sS2U9dGhpcy5oWzhd'@; put 'LFllPXRoaXMuaFs5XSxRZT10aGlzLmhbMTBdLGx0PXRoaXMuaFsxMV0sUGU9dGhpcy5oWzEyXSxiZT10aGlzLmhbMTNdLEFlPXRoaXMuaFsxNF0sVGU9dGhpcy5oWzE1XTtJKHRoaXMuay5sZW5ndGg9PT1uZS5sZW5ndGgpO2Zvcih2YXIgcWU9MDtxZTxuZS5sZW5ndGg7cWUrPTIpe3ZhciBY'@; put 'ZT1BZSxVZT1UZSxodD1OKEtlLFllKSxNZT1nKEtlLFllKSxEZT11ZShLZSwwLFFlLDAsUGUpLHplPWNlKDAsWWUsMCxsdCwwLGJlKSxvdD10aGlzLmtbcWVdLHV0PXRoaXMua1txZSsxXSxNdD1uZVtxZV0sSHQ9bmVbcWUrMV0sUHQ9ZWUoWGUsVWUsaHQsTWUsRGUsemUsb3QsdXQsTXQsSHQp'@; put 'LG9uPXRlKFhlLFVlLGh0LE1lLERlLHplLG90LHV0LE10LEh0KTtYZT1EKGRlLGZlKSxVZT1IKGRlLGZlKSxodD1HKGRlLDAseGUsMCxGZSksTWU9YigwLGZlLDAsTGUsMCxPZSk7dmFyIENuPVkoWGUsVWUsaHQsTWUpLFV0PVgoWGUsVWUsaHQsTWUpO0FlPVBlLFRlPWJlLFBlPVFlLGJlPWx0'@; put 'LFFlPUtlLGx0PVllLEtlPVkoamUsV2UsUHQsb24pLFllPVgoV2UsV2UsUHQsb24pLGplPUZlLFdlPU9lLEZlPXhlLE9lPUxlLHhlPWRlLExlPWZlLGRlPVkoUHQsb24sQ24sVXQpLGZlPVgoUHQsb24sQ24sVXQpfUIodGhpcy5oLDAsZGUsZmUpLEIodGhpcy5oLDIseGUsTGUpLEIodGhpcy5o'@; put 'LDQsRmUsT2UpLEIodGhpcy5oLDYsamUsV2UpLEIodGhpcy5oLDgsS2UsWWUpLEIodGhpcy5oLDEwLFFlLGx0KSxCKHRoaXMuaCwxMixQZSxiZSksQih0aGlzLmgsMTQsQWUsVGUpfSxoZS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih3KXtyZXR1cm4iaGV4Ij09PXc/ei50b0hleDMyKHRo'@; put 'aXMuaCwiYmlnIik6ei5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3MDM4OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig2NDM2KS5yb3RyMzI7ZnVuY3Rpb24gSyhFLGosVil7cmV0dXJuIEUmal5+RSZWfWZ1bmN0aW9uIEkoRSxqLFYpe3JldHVybiBFJmpeRSZWXmomVn1mdW5jdGlv'@; put 'biBrKEUsaixWKXtyZXR1cm4gRV5qXlZ9Ty5mdF8xPWZ1bmN0aW9uKEUsaixWLEIpe3JldHVybiAwPT09RT9LKGosVixCKToxPT09RXx8Mz09PUU/ayhqLFYsQik6Mj09PUU/SShqLFYsQik6dm9pZCAwfSxPLmNoMzI9SyxPLm1hajMyPUksTy5wMzI9ayxPLnMwXzI1Nj1mdW5jdGlvbihFKXty'@; put 'ZXR1cm4geihFLDIpXnooRSwxMyleeihFLDIyKX0sTy5zMV8yNTY9ZnVuY3Rpb24oRSl7cmV0dXJuIHooRSw2KV56KEUsMTEpXnooRSwyNSl9LE8uZzBfMjU2PWZ1bmN0aW9uKEUpe3JldHVybiB6KEUsNyleeihFLDE4KV5FPj4+M30sTy5nMV8yNTY9ZnVuY3Rpb24oRSl7cmV0dXJuIHooRSwx'@; put 'NyleeihFLDE5KV5FPj4+MTB9fSw2NDM2OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig5NzQ2KSxLPVIoNTcxNyk7ZnVuY3Rpb24gSShWLEIpe3JldHVybiA1NTI5Nj09KDY0NTEyJlYuY2hhckNvZGVBdChCKSkmJiEoQjwwfHxCKzE+PVYubGVuZ3RoKSYmNTYzMjA9PSg2NDUxMiZW'@; put 'LmNoYXJDb2RlQXQoQisxKSl9ZnVuY3Rpb24gayhWKXtyZXR1cm4oVj4+PjI0fFY+Pj44JjY1MjgwfFY8PDgmMTY3MTE2ODB8KDI1NSZWKTw8MjQpPj4+MH1mdW5jdGlvbiBFKFYpe3JldHVybiAxPT09Vi5sZW5ndGg/IjAiK1Y6Vn1mdW5jdGlvbiBqKFYpe3JldHVybiA3PT09Vi5sZW5ndGg/'@; put 'IjAiK1Y6Nj09PVYubGVuZ3RoPyIwMCIrVjo1PT09Vi5sZW5ndGg/IjAwMCIrVjo0PT09Vi5sZW5ndGg/IjAwMDAiK1Y6Mz09PVYubGVuZ3RoPyIwMDAwMCIrVjoyPT09Vi5sZW5ndGg/IjAwMDAwMCIrVjoxPT09Vi5sZW5ndGg/IjAwMDAwMDAiK1Y6Vn1PLmluaGVyaXRzPUssTy50b0FycmF5'@; put 'PWZ1bmN0aW9uKFYsQil7aWYoQXJyYXkuaXNBcnJheShWKSlyZXR1cm4gVi5zbGljZSgpO2lmKCFWKXJldHVybltdO3ZhciBZPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgVilpZihCKXtpZigiaGV4Ij09PUIpZm9yKChWPVYucmVwbGFjZSgvW15hLXowLTldKy9naSwiIikpLmxlbmd0aCUyIT0w'@; put 'JiYoVj0iMCIrViksVT0wO1U8Vi5sZW5ndGg7VSs9MilZLnB1c2gocGFyc2VJbnQoVltVXStWW1UrMV0sMTYpKX1lbHNlIGZvcih2YXIgWD0wLFU9MDtVPFYubGVuZ3RoO1UrKyl7dmFyIHE9Vi5jaGFyQ29kZUF0KFUpO3E8MTI4P1lbWCsrXT1xOnE8MjA0OD8oWVtYKytdPXE+PjZ8MTkyLFlb'@; put 'WCsrXT02MyZxfDEyOCk6SShWLFUpPyhxPTY1NTM2KygoMTAyMyZxKTw8MTApKygxMDIzJlYuY2hhckNvZGVBdCgrK1UpKSxZW1grK109cT4+MTh8MjQwLFlbWCsrXT1xPj4xMiY2M3wxMjgsWVtYKytdPXE+PjYmNjN8MTI4LFlbWCsrXT02MyZxfDEyOCk6KFlbWCsrXT1xPj4xMnwyMjQsWVtY'@; put 'KytdPXE+PjYmNjN8MTI4LFlbWCsrXT02MyZxfDEyOCl9ZWxzZSBmb3IoVT0wO1U8Vi5sZW5ndGg7VSsrKVlbVV09MHxWW1VdO3JldHVybiBZfSxPLnRvSGV4PWZ1bmN0aW9uKFYpe2Zvcih2YXIgQj0iIixZPTA7WTxWLmxlbmd0aDtZKyspQis9RShWW1ldLnRvU3RyaW5nKDE2KSk7cmV0dXJu'@; put 'IEJ9LE8uaHRvbmw9ayxPLnRvSGV4MzI9ZnVuY3Rpb24oVixCKXtmb3IodmFyIFk9IiIsWD0wO1g8Vi5sZW5ndGg7WCsrKXt2YXIgVT1WW1hdOyJsaXR0bGUiPT09QiYmKFU9ayhVKSksWSs9aihVLnRvU3RyaW5nKDE2KSl9cmV0dXJuIFl9LE8uemVybzI9RSxPLnplcm84PWosTy5qb2luMzI9'@; put 'ZnVuY3Rpb24oVixCLFksWCl7dmFyIFU9WS1CO3ooVSU0PT0wKTtmb3IodmFyIHE9bmV3IEFycmF5KFUvNCksZWU9MCx0ZT1CO2VlPHEubGVuZ3RoO2VlKyssdGUrPTQpcVtlZV09KCJiaWciPT09WD9WW3RlXTw8MjR8Vlt0ZSsxXTw8MTZ8Vlt0ZSsyXTw8OHxWW3RlKzNdOlZbdGUrM108PDI0'@; put 'fFZbdGUrMl08PDE2fFZbdGUrMV08PDh8Vlt0ZV0pPj4+MDtyZXR1cm4gcX0sTy5zcGxpdDMyPWZ1bmN0aW9uKFYsQil7Zm9yKHZhciBZPW5ldyBBcnJheSg0KlYubGVuZ3RoKSxYPTAsVT0wO1g8Vi5sZW5ndGg7WCsrLFUrPTQpe3ZhciBxPVZbWF07ImJpZyI9PT1CPyhZW1VdPXE+Pj4yNCxZ'@; put 'W1UrMV09cT4+PjE2JjI1NSxZW1UrMl09cT4+PjgmMjU1LFlbVSszXT0yNTUmcSk6KFlbVSszXT1xPj4+MjQsWVtVKzJdPXE+Pj4xNiYyNTUsWVtVKzFdPXE+Pj44JjI1NSxZW1VdPTI1NSZxKX1yZXR1cm4gWX0sTy5yb3RyMzI9ZnVuY3Rpb24oVixCKXtyZXR1cm4gVj4+PkJ8Vjw8MzItQn0s'@; put 'Ty5yb3RsMzI9ZnVuY3Rpb24oVixCKXtyZXR1cm4gVjw8QnxWPj4+MzItQn0sTy5zdW0zMj1mdW5jdGlvbihWLEIpe3JldHVybiBWK0I+Pj4wfSxPLnN1bTMyXzM9ZnVuY3Rpb24oVixCLFkpe3JldHVybiBWK0IrWT4+PjB9LE8uc3VtMzJfND1mdW5jdGlvbihWLEIsWSxYKXtyZXR1cm4gVitC'@; put 'K1krWD4+PjB9LE8uc3VtMzJfNT1mdW5jdGlvbihWLEIsWSxYLFUpe3JldHVybiBWK0IrWStYK1U+Pj4wfSxPLnN1bTY0PWZ1bmN0aW9uKFYsQixZLFgpe3ZhciBxPVgrVltCKzFdPj4+MDtWW0JdPShxPFg/MTowKStZK1ZbQl0+Pj4wLFZbQisxXT1xfSxPLnN1bTY0X2hpPWZ1bmN0aW9uKFYs'@; put 'QixZLFgpe3JldHVybihCK1g+Pj4wPEI/MTowKStWK1k+Pj4wfSxPLnN1bTY0X2xvPWZ1bmN0aW9uKFYsQixZLFgpe3JldHVybiBCK1g+Pj4wfSxPLnN1bTY0XzRfaGk9ZnVuY3Rpb24oVixCLFksWCxVLHEsZWUsdGUpe3ZhciBvZT0wLHNlPUI7cmV0dXJuIG9lKz0oc2U9c2UrWD4+PjApPEI/'@; put 'MTowLG9lKz0oc2U9c2UrcT4+PjApPHE/MTowLFYrWStVK2VlKyhvZSs9KHNlPXNlK3RlPj4+MCk8dGU/MTowKT4+PjB9LE8uc3VtNjRfNF9sbz1mdW5jdGlvbihWLEIsWSxYLFUscSxlZSx0ZSl7cmV0dXJuIEIrWCtxK3RlPj4+MH0sTy5zdW02NF81X2hpPWZ1bmN0aW9uKFYsQixZLFgsVSxx'@; put 'LGVlLHRlLG9lLHNlKXt2YXIgaGU9MCx1ZT1CO3JldHVybiBoZSs9KHVlPXVlK1g+Pj4wKTxCPzE6MCxoZSs9KHVlPXVlK3E+Pj4wKTxxPzE6MCxoZSs9KHVlPXVlK3RlPj4+MCk8dGU/MTowLFYrWStVK2VlK29lKyhoZSs9KHVlPXVlK3NlPj4+MCk8c2U/MTowKT4+PjB9LE8uc3VtNjRfNV9s'@; put 'bz1mdW5jdGlvbihWLEIsWSxYLFUscSxlZSx0ZSxvZSxzZSl7cmV0dXJuIEIrWCtxK3RlK3NlPj4+MH0sTy5yb3RyNjRfaGk9ZnVuY3Rpb24oVixCLFkpe3JldHVybihCPDwzMi1ZfFY+Pj5ZKT4+PjB9LE8ucm90cjY0X2xvPWZ1bmN0aW9uKFYsQixZKXtyZXR1cm4oVjw8MzItWXxCPj4+WSk+'@; put 'Pj4wfSxPLnNocjY0X2hpPWZ1bmN0aW9uKFYsQixZKXtyZXR1cm4gVj4+Pll9LE8uc2hyNjRfbG89ZnVuY3Rpb24oVixCLFkpe3JldHVybihWPDwzMi1ZfEI+Pj5ZKT4+PjB9fSwyMTU2OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9UigzNzE1KSxLPVIoNDUwNCksST1SKDk3NDYpO2Z1'@; put 'bmN0aW9uIGsoRSl7aWYoISh0aGlzIGluc3RhbmNlb2YgaykpcmV0dXJuIG5ldyBrKEUpO3RoaXMuaGFzaD1FLmhhc2gsdGhpcy5wcmVkUmVzaXN0PSEhRS5wcmVkUmVzaXN0LHRoaXMub3V0TGVuPXRoaXMuaGFzaC5vdXRTaXplLHRoaXMubWluRW50cm9weT1FLm1pbkVudHJvcHl8fHRoaXMu'@; put 'aGFzaC5obWFjU3RyZW5ndGgsdGhpcy5fcmVzZWVkPW51bGwsdGhpcy5yZXNlZWRJbnRlcnZhbD1udWxsLHRoaXMuSz1udWxsLHRoaXMuVj1udWxsO3ZhciBqPUsudG9BcnJheShFLmVudHJvcHksRS5lbnRyb3B5RW5jfHwiaGV4IiksVj1LLnRvQXJyYXkoRS5ub25jZSxFLm5vbmNlRW5jfHwi'@; put 'aGV4IiksQj1LLnRvQXJyYXkoRS5wZXJzLEUucGVyc0VuY3x8ImhleCIpO0koai5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX2luaXQoaixWLEIpfU0uZXhwb3J0cz1rLGsu'@; put 'cHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKEUsaixWKXt2YXIgQj1FLmNvbmNhdChqKS5jb25jYXQoVik7dGhpcy5LPW5ldyBBcnJheSh0aGlzLm91dExlbi84KSx0aGlzLlY9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpO2Zvcih2YXIgWT0wO1k8dGhpcy5WLmxlbmd0aDtZKyspdGhpcy5LW1ld'@; put 'PTAsdGhpcy5WW1ldPTE7dGhpcy5fdXBkYXRlKEIpLHRoaXMuX3Jlc2VlZD0xLHRoaXMucmVzZWVkSW50ZXJ2YWw9MjgxNDc0OTc2NzEwNjU2fSxrLnByb3RvdHlwZS5faG1hYz1mdW5jdGlvbigpe3JldHVybiBuZXcgei5obWFjKHRoaXMuaGFzaCx0aGlzLkspfSxrLnByb3RvdHlwZS5fdXBk'@; put 'YXRlPWZ1bmN0aW9uKEUpe3ZhciBqPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS51cGRhdGUoWzBdKTtFJiYoaj1qLnVwZGF0ZShFKSksdGhpcy5LPWouZGlnZXN0KCksdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSxFJiYodGhpcy5LPXRoaXMuX2htYWMo'@; put 'KS51cGRhdGUodGhpcy5WKS51cGRhdGUoWzFdKS51cGRhdGUoRSkuZGlnZXN0KCksdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSl9LGsucHJvdG90eXBlLnJlc2VlZD1mdW5jdGlvbihFLGosVixCKXsic3RyaW5nIiE9dHlwZW9mIGomJihCPVYsVj1qLGo9bnVs'@; put 'bCksRT1LLnRvQXJyYXkoRSxqKSxWPUsudG9BcnJheShWLEIpLEkoRS5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX3VwZGF0ZShFLmNvbmNhdChWfHxbXSkpLHRoaXMuX3Jl'@; put 'c2VlZD0xfSxrLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihFLGosVixCKXtpZih0aGlzLl9yZXNlZWQ+dGhpcy5yZXNlZWRJbnRlcnZhbCl0aHJvdyBuZXcgRXJyb3IoIlJlc2VlZCBpcyByZXF1aXJlZCIpOyJzdHJpbmciIT10eXBlb2YgaiYmKEI9VixWPWosaj1udWxsKSxWJiYoVj1L'@; put 'LnRvQXJyYXkoVixCfHwiaGV4IiksdGhpcy5fdXBkYXRlKFYpKTtmb3IodmFyIFk9W107WS5sZW5ndGg8RTspdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSxZPVkuY29uY2F0KHRoaXMuVik7dmFyIFg9WS5zbGljZSgwLEUpO3JldHVybiB0aGlzLl91cGRhdGUo'@; put 'ViksdGhpcy5fcmVzZWVkKyssSy5lbmNvZGUoWCxqKX19LDY0NTooTSxPKT0+e08ucmVhZD1mdW5jdGlvbihSLHosSyxJLGspe3ZhciBFLGosVj04KmstSS0xLEI9KDE8PFYpLTEsWT1CPj4xLFg9LTcsVT1LP2stMTowLHE9Sz8tMToxLGVlPVJbeitVXTtmb3IoVSs9cSxFPWVlJigxPDwtWCkt'@; put 'MSxlZT4+PS1YLFgrPVY7WD4wO0U9MjU2KkUrUlt6K1VdLFUrPXEsWC09OCk7Zm9yKGo9RSYoMTw8LVgpLTEsRT4+PS1YLFgrPUk7WD4wO2o9MjU2KmorUlt6K1VdLFUrPXEsWC09OCk7aWYoMD09PUUpRT0xLVk7ZWxzZXtpZihFPT09QilyZXR1cm4gaj9OYU46MS8wKihlZT8tMToxKTtqKz1N'@; put 'YXRoLnBvdygyLEkpLEUtPVl9cmV0dXJuKGVlPy0xOjEpKmoqTWF0aC5wb3coMixFLUkpfSxPLndyaXRlPWZ1bmN0aW9uKFIseixLLEksayxFKXt2YXIgaixWLEIsWT04KkUtay0xLFg9KDE8PFkpLTEsVT1YPj4xLHE9MjM9PT1rP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxl'@; put 'ZT1JPzA6RS0xLHRlPUk/MTotMSxvZT16PDB8fDA9PT16JiYxL3o8MD8xOjA7Zm9yKHo9TWF0aC5hYnMoeiksaXNOYU4oeil8fHo9PT0xLzA/KFY9aXNOYU4oeik/MTowLGo9WCk6KGo9TWF0aC5mbG9vcihNYXRoLmxvZyh6KS9NYXRoLkxOMikseiooQj1NYXRoLnBvdygyLC1qKSk8MSYmKGot'@; put 'LSxCKj0yKSwoeis9aitVPj0xP3EvQjpxKk1hdGgucG93KDIsMS1VKSkqQj49MiYmKGorKyxCLz0yKSxqK1U+PVg/KFY9MCxqPVgpOmorVT49MT8oVj0oeipCLTEpKk1hdGgucG93KDIsayksais9VSk6KFY9eipNYXRoLnBvdygyLFUtMSkqTWF0aC5wb3coMixrKSxqPTApKTtrPj04O1JbSytl'@; put 'ZV09MjU1JlYsZWUrPXRlLFYvPTI1NixrLT04KTtmb3Ioaj1qPDxrfFYsWSs9aztZPjA7UltLK2VlXT0yNTUmaixlZSs9dGUsai89MjU2LFktPTgpO1JbSytlZS10ZV18PTEyOCpvZX19LDc4NDQ6KE0sTyxSKT0+e3ZhciB6PVIoNDE1NSksSz1SKDI0NzkpLEk9T2JqZWN0LmNyZWF0ZShudWxs'@; put 'KSxrPVIoNzc4KTtNLmV4cG9ydHM9SyhmdW5jdGlvbihFLGope3JldHVybiBJW0VdPyhJW0VdLnB1c2goaiksbnVsbCk6KElbRV09W2pdLFY9RSxrKGZ1bmN0aW9uIEIoKXt2YXIgWT1JW1ZdLFg9WS5sZW5ndGgsVT1mdW5jdGlvbihlZSl7Zm9yKHZhciB0ZT1lZS5sZW5ndGgsb2U9W10sc2U9'@; put 'MDtzZTx0ZTtzZSsrKW9lW3NlXT1lZVtzZV07cmV0dXJuIG9lfShhcmd1bWVudHMpO3RyeXtmb3IodmFyIHE9MDtxPFg7cSsrKVlbcV0uYXBwbHkobnVsbCxVKX1maW5hbGx5e1kubGVuZ3RoPlg/KFkuc3BsaWNlKDAsWCksei5uZXh0VGljayhmdW5jdGlvbigpe0IuYXBwbHkobnVsbCxVKX0p'@; put 'KTpkZWxldGUgSVtWXX19KSk7dmFyIFZ9KX0sNTcxNzpNPT57TS5leHBvcnRzPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKE8sUil7UiYmKE8uc3VwZXJfPVIsTy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShSLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVl'@; put 'Ok8sZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSkpfTpmdW5jdGlvbihPLFIpe2lmKFIpe08uc3VwZXJfPVI7dmFyIHo9ZnVuY3Rpb24oKXt9O3oucHJvdG90eXBlPVIucHJvdG90eXBlLE8ucHJvdG90eXBlPW5ldyB6LE8ucHJvdG90eXBlLmNvbnN0cnVjdG9y'@; put 'PU99fX0sMjU4NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNjQxMCkoKSxLPVIoMTkyNCkoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmciKSxJPWZ1bmN0aW9uKGope3JldHVybiEoeiYmaiYmIm9iamVjdCI9PXR5cGVvZiBqJiZTeW1ib2wudG9TdHJpbmdUYWcgaW4gaikmJiJb'@; put 'b2JqZWN0IEFyZ3VtZW50c10iPT09SyhqKX0saz1mdW5jdGlvbihqKXtyZXR1cm4hIUkoail8fG51bGwhPT1qJiYib2JqZWN0Ij09dHlwZW9mIGomJiJudW1iZXIiPT10eXBlb2Ygai5sZW5ndGgmJmoubGVuZ3RoPj0wJiYiW29iamVjdCBBcnJheV0iIT09SyhqKSYmIltvYmplY3QgRnVuY3Rp'@; put 'b25dIj09PUsoai5jYWxsZWUpfSxFPWZ1bmN0aW9uKCl7cmV0dXJuIEkoYXJndW1lbnRzKX0oKTtJLmlzTGVnYWN5QXJndW1lbnRzPWssTS5leHBvcnRzPUU/STprfSw1MzIwOk09PnsidXNlIHN0cmljdCI7dmFyIE8sUix6PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyxLPSJvYmplY3Qi'@; put 'PT10eXBlb2YgUmVmbGVjdCYmbnVsbCE9PVJlZmxlY3QmJlJlZmxlY3QuYXBwbHk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEsmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydHkpdHJ5e089T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJsZW5ndGgiLHtnZXQ6ZnVuY3Rp'@; put 'b24oKXt0aHJvdyBSfX0pLFI9e30sSyhmdW5jdGlvbigpe3Rocm93IDQyfSxudWxsLE8pfWNhdGNoKFUpe1UhPT1SJiYoSz1udWxsKX1lbHNlIEs9bnVsbDt2YXIgST0vXlxzKmNsYXNzXGIvLGs9ZnVuY3Rpb24oVSl7dHJ5e3ZhciBxPXouY2FsbChVKTtyZXR1cm4gSS50ZXN0KHEpfWNhdGNo'@; put 'e3JldHVybiExfX0sRT1mdW5jdGlvbihVKXt0cnl7cmV0dXJuIWsoVSkmJih6LmNhbGwoVSksITApfWNhdGNoe3JldHVybiExfX0saj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLFY9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmISFTeW1ib2wudG9TdHJpbmdUYWcsQj0hKDAgaW5bLF0p'@; put 'LFk9ZnVuY3Rpb24oKXtyZXR1cm4hMX07aWYoIm9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCl7dmFyIFg9ZG9jdW1lbnQuYWxsO2ouY2FsbChYKT09PWouY2FsbChkb2N1bWVudC5hbGwpJiYoWT1mdW5jdGlvbihVKXtpZigoQnx8IVUpJiYodm9pZCAwPT09VXx8Im9iamVjdCI9PXR5cGVvZiBV'@; put 'KSl0cnl7dmFyIHE9ai5jYWxsKFUpO3JldHVybigiW29iamVjdCBIVE1MQWxsQ29sbGVjdGlvbl0iPT09cXx8IltvYmplY3QgSFRNTCBkb2N1bWVudC5hbGwgY2xhc3NdIj09PXF8fCJbb2JqZWN0IEhUTUxDb2xsZWN0aW9uXSI9PT1xfHwiW29iamVjdCBPYmplY3RdIj09PXEpJiZudWxsPT1V'@; put 'KCIiKX1jYXRjaHt9cmV0dXJuITF9KX1NLmV4cG9ydHM9Sz9mdW5jdGlvbihVKXtpZihZKFUpKXJldHVybiEwO2lmKCFVfHwiZnVuY3Rpb24iIT10eXBlb2YgVSYmIm9iamVjdCIhPXR5cGVvZiBVKXJldHVybiExO3RyeXtLKFUsbnVsbCxPKX1jYXRjaChxKXtpZihxIT09UilyZXR1cm4hMX1y'@; put 'ZXR1cm4hayhVKSYmRShVKX06ZnVuY3Rpb24oVSl7aWYoWShVKSlyZXR1cm4hMDtpZighVXx8ImZ1bmN0aW9uIiE9dHlwZW9mIFUmJiJvYmplY3QiIT10eXBlb2YgVSlyZXR1cm4hMTtpZihWKXJldHVybiBFKFUpO2lmKGsoVSkpcmV0dXJuITE7dmFyIHE9ai5jYWxsKFUpO3JldHVybiEoIltv'@; put 'YmplY3QgRnVuY3Rpb25dIiE9PXEmJiJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIhPT1xJiYhL15cW29iamVjdCBIVE1MLy50ZXN0KHEpKSYmRShVKX19LDg2NjI6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgeixLPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsST1GdW5jdGlvbi5w'@; put 'cm90b3R5cGUudG9TdHJpbmcsaz0vXlxzKig/OmZ1bmN0aW9uKT9cKi8sRT1SKDY0MTApKCksaj1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7TS5leHBvcnRzPWZ1bmN0aW9uKFYpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBWKXJldHVybiExO2lmKGsudGVzdChJLmNhbGwoVikpKXJldHVybiEwO2lm'@; put 'KCFFKXJldHVybiJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PT1LLmNhbGwoVik7aWYoIWopcmV0dXJuITE7aWYodm9pZCAwPT09eil7dmFyIEI9ZnVuY3Rpb24oKXtpZighRSlyZXR1cm4hMTt0cnl7cmV0dXJuIEZ1bmN0aW9uKCJyZXR1cm4gZnVuY3Rpb24qKCkge30iKSgpfWNhdGNo'@; put 'e319KCk7ej0hIUImJmooQil9cmV0dXJuIGooVik9PT16fX0sODYxMTpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1mdW5jdGlvbihPKXtyZXR1cm4gTyE9T319LDM2MDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNTU1OSksSz1SKDQyODkpLEk9Uig4NjExKSxrPVIoOTQxNSks'@; put 'RT1SKDMxOTQpLGo9eihrKCksTnVtYmVyKTtLKGose2dldFBvbHlmaWxsOmssaW1wbGVtZW50YXRpb246SSxzaGltOkV9KSxNLmV4cG9ydHM9an0sOTQxNTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoODYxMSk7TS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5pc05h'@; put 'TiYmTnVtYmVyLmlzTmFOKE5hTikmJiFOdW1iZXIuaXNOYU4oImEiKT9OdW1iZXIuaXNOYU46en19LDMxOTQ6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQyODkpLEs9Uig5NDE1KTtNLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgST1LKCk7cmV0dXJuIHooTnVtYmVyLHtpc05hTjpJ'@; put 'fSx7aXNOYU46ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzTmFOIT09SX19KSxJfX0sNTY5MjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDAyOSksSz1SKDMwODMpLEk9UigxOTI0KSxrPUkoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmciKSxFPVIoNjQxMCkoKSxqPVIoNzI5'@; put 'NiksVj10eXBlb2YgZ2xvYmFsVGhpcz4idSI/Ui5nOmdsb2JhbFRoaXMsQj1LKCksWT1JKCJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiIsITApfHxmdW5jdGlvbihlZSx0ZSl7Zm9yKHZhciBvZT0wO29lPGVlLmxlbmd0aDtvZSs9MSlpZihlZVtvZV09PT10ZSlyZXR1cm4gb2U7cmV0dXJuLTF9'@; put 'LFg9SSgiU3RyaW5nLnByb3RvdHlwZS5zbGljZSIpLFU9e30scT1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7RSYmaiYmcSYmeihCLGZ1bmN0aW9uKGVlKXt2YXIgdGU9bmV3IFZbZWVdO2lmKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB0ZSl7dmFyIG9lPXEodGUpLHNlPWoob2UsU3ltYm9sLnRvU3Ry'@; put 'aW5nVGFnKTtpZighc2Upe3ZhciBoZT1xKG9lKTtzZT1qKGhlLFN5bWJvbC50b1N0cmluZ1RhZyl9VVtlZV09c2UuZ2V0fX0pLE0uZXhwb3J0cz1mdW5jdGlvbihlZSl7aWYoIWVlfHwib2JqZWN0IiE9dHlwZW9mIGVlKXJldHVybiExO2lmKCFFfHwhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBl'@; put 'ZSkpe3ZhciB0ZT1YKGsoZWUpLDgsLTEpO3JldHVybiBZKEIsdGUpPi0xfXJldHVybiEhaiYmKG9lPWVlLHNlPSExLHooVSxmdW5jdGlvbihoZSx1ZSl7aWYoIXNlKXRyeXtzZT1oZS5jYWxsKG9lKT09PXVlfWNhdGNoe319KSxzZSk7dmFyIG9lLHNlfX0sNjgxMzooTSxPLFIpPT57bGV0IHo7'@; put 'dHJ5e3o9Uig3Nyl9Y2F0Y2h7ej1SKDQxMjkpfWNvbnN0IEs9Uig4OTgxKSx7c3RyaW5naWZ5Okksc3RyaXBCb206a309Uig2NzgwKSxFPXtyZWFkRmlsZTpLLmZyb21Qcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGo9YWUoZnVuY3Rpb24qKFYsQj17fSl7InN0cmluZyI9PXR5cGVvZiBCJiYoQj17'@; put 'ZW5jb2Rpbmc6Qn0pO2NvbnN0IFk9Qi5mc3x8eixYPSEoInRocm93cyJpbiBCKXx8Qi50aHJvd3M7bGV0IFUscT15aWVsZCBLLmZyb21DYWxsYmFjayhZLnJlYWRGaWxlKShWLEIpO3E9ayhxKTt0cnl7VT1KU09OLnBhcnNlKHEsQj9CLnJldml2ZXI6bnVsbCl9Y2F0Y2goZWUpe2lmKFgpdGhy'@; put 'b3cgZWUubWVzc2FnZT1gJHtWfTogJHtlZS5tZXNzYWdlfWAsZWU7cmV0dXJuIG51bGx9cmV0dXJuIFV9KTtyZXR1cm4gZnVuY3Rpb24oVil7cmV0dXJuIGouYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkscmVhZEZpbGVTeW5jOmZ1bmN0aW9uKGosVj17fSl7InN0cmluZyI9PXR5cGVvZiBW'@; put 'JiYoVj17ZW5jb2Rpbmc6Vn0pO2NvbnN0IEI9Vi5mc3x8eixZPSEoInRocm93cyJpbiBWKXx8Vi50aHJvd3M7dHJ5e2xldCBYPUIucmVhZEZpbGVTeW5jKGosVik7cmV0dXJuIFg9ayhYKSxKU09OLnBhcnNlKFgsVi5yZXZpdmVyKX1jYXRjaChYKXtpZihZKXRocm93IFgubWVzc2FnZT1gJHtq'@; put 'fTogJHtYLm1lc3NhZ2V9YCxYO3JldHVybiBudWxsfX0sd3JpdGVGaWxlOksuZnJvbVByb21pc2UoZnVuY3Rpb24oKXt2YXIgaj1hZShmdW5jdGlvbiooVixCLFk9e30pe2NvbnN0IFg9WS5mc3x8eixVPUkoQixZKTt5aWVsZCBLLmZyb21DYWxsYmFjayhYLndyaXRlRmlsZSkoVixVLFkpfSk7'@; put 'cmV0dXJuIGZ1bmN0aW9uKFYsQil7cmV0dXJuIGouYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksd3JpdGVGaWxlU3luYzpmdW5jdGlvbihqLFYsQj17fSl7Y29uc3QgWT1CLmZzfHx6LFg9SShWLEIpO3JldHVybiBZLndyaXRlRmlsZVN5bmMoaixYLEIpfX07TS5leHBvcnRzPUV9LDY3ODA6'@; put 'KE0sTyxSKT0+e3ZhciB6PVIoODc2NCkuQnVmZmVyO00uZXhwb3J0cz17c3RyaW5naWZ5OmZ1bmN0aW9uKEsse0VPTDpJPSJcbiIsZmluYWxFT0w6az0hMCxyZXBsYWNlcjpFPW51bGwsc3BhY2VzOmp9PXt9KXtjb25zdCBWPWs/SToiIjtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoSyxFLGopLnJl'@; put 'cGxhY2UoL1xuL2csSSkrVn0sc3RyaXBCb206ZnVuY3Rpb24oSyl7cmV0dXJuIHouaXNCdWZmZXIoSykmJihLPUsudG9TdHJpbmcoInV0ZjgiKSksSy5yZXBsYWNlKC9eXHVGRUZGLywiIil9fX0sNjI0NTooTSxPLFIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHooail7dGhpcy5tZXNzYWdl'@; put 'PWp9Ui5yKE8pLFIuZChPLHtJbnZhbGlkVG9rZW5FcnJvcjooKT0+ayxkZWZhdWx0OigpPT5FfSksKHoucHJvdG90eXBlPW5ldyBFcnJvcikubmFtZT0iSW52YWxpZENoYXJhY3RlckVycm9yIjt2YXIgSz10eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmF0b2ImJndpbmRvdy5hdG9iLmJpbmQo'@; put 'd2luZG93KXx8ZnVuY3Rpb24oail7dmFyIFY9U3RyaW5nKGopLnJlcGxhY2UoLz0rJC8sIiIpO2lmKFYubGVuZ3RoJTQ9PTEpdGhyb3cgbmV3IHooIidhdG9iJyBmYWlsZWQ6IFRoZSBzdHJpbmcgdG8gYmUgZGVjb2RlZCBpcyBub3QgY29ycmVjdGx5IGVuY29kZWQuIik7Zm9yKHZhciBCLFks'@; put 'WD0wLFU9MCxxPSIiO1k9Vi5jaGFyQXQoVSsrKTt+WSYmKEI9WCU0PzY0KkIrWTpZLFgrKyU0KT9xKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZCPj4oLTIqWCY2KSk6MClZPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsv'@; put 'PSIuaW5kZXhPZihZKTtyZXR1cm4gcX07ZnVuY3Rpb24gayhqKXt0aGlzLm1lc3NhZ2U9an0oay5wcm90b3R5cGU9bmV3IEVycm9yKS5uYW1lPSJJbnZhbGlkVG9rZW5FcnJvciI7Y29uc3QgRT1mdW5jdGlvbihqLFYpe2lmKCJzdHJpbmciIT10eXBlb2Ygail0aHJvdyBuZXcgaygiSW52YWxp'@; put 'ZCB0b2tlbiBzcGVjaWZpZWQiKTt2YXIgQj0hMD09PShWPVZ8fHt9KS5oZWFkZXI/MDoxO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShmdW5jdGlvbiBJKGope3ZhciBWPWoucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIik7c3dpdGNoKFYubGVuZ3RoJTQpe2Nhc2UgMDpicmVhaztj'@; put 'YXNlIDI6Vis9Ij09IjticmVhaztjYXNlIDM6Vis9Ij0iO2JyZWFrO2RlZmF1bHQ6dGhyb3ciSWxsZWdhbCBiYXNlNjR1cmwgc3RyaW5nISJ9dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoSyhWKS5yZXBsYWNlKC8oLikvZyxmdW5jdGlvbihZLFgpe3ZhciBVPVguY2hhckNvZGVBdCgw'@; put 'KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gVS5sZW5ndGg8MiYmKFU9IjAiK1UpLCIlIitVfSkpfWNhdGNoe3JldHVybiBLKFYpfX0oai5zcGxpdCgiLiIpW0JdKSl9Y2F0Y2goWSl7dGhyb3cgbmV3IGsoIkludmFsaWQgdG9rZW4gc3BlY2lmaWVkOiAiK1kubWVzc2FnZSl9'@; put 'fX0sMjMxODooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNTcxNyksSz1SKDMzNDkpLEk9Uig5NTA5KS5CdWZmZXIsaz1uZXcgQXJyYXkoMTYpO2Z1bmN0aW9uIEUoKXtLLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1'@; put 'NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4Nzh9ZnVuY3Rpb24gaihVLHEpe3JldHVybiBVPDxxfFU+Pj4zMi1xfWZ1bmN0aW9uIFYoVSxxLGVlLHRlLG9lLHNlLGhlKXtyZXR1cm4gaihVKyhxJmVlfH5xJnRlKStvZStzZXwwLGhlKStxfDB9ZnVuY3Rpb24gQihVLHEsZWUsdGUsb2Usc2UsaGUp'@; put 'e3JldHVybiBqKFUrKHEmdGV8ZWUmfnRlKStvZStzZXwwLGhlKStxfDB9ZnVuY3Rpb24gWShVLHEsZWUsdGUsb2Usc2UsaGUpe3JldHVybiBqKFUrKHFeZWVedGUpK29lK3NlfDAsaGUpK3F8MH1mdW5jdGlvbiBYKFUscSxlZSx0ZSxvZSxzZSxoZSl7cmV0dXJuIGooVSsoZWVeKHF8fnRlKSkr'@; put 'b2Urc2V8MCxoZSkrcXwwfXooRSxLKSxFLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBVPWsscT0wO3E8MTY7KytxKVVbcV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCpxKTt2YXIgZWU9dGhpcy5fYSx0ZT10aGlzLl9iLG9lPXRoaXMuX2Msc2U9dGhpcy5fZDtlZT1W'@; put 'KGVlLHRlLG9lLHNlLFVbMF0sMzYxNDA5MDM2MCw3KSxzZT1WKHNlLGVlLHRlLG9lLFVbMV0sMzkwNTQwMjcxMCwxMiksb2U9VihvZSxzZSxlZSx0ZSxVWzJdLDYwNjEwNTgxOSwxNyksdGU9Vih0ZSxvZSxzZSxlZSxVWzNdLDMyNTA0NDE5NjYsMjIpLGVlPVYoZWUsdGUsb2Usc2UsVVs0XSw0'@; put 'MTE4NTQ4Mzk5LDcpLHNlPVYoc2UsZWUsdGUsb2UsVVs1XSwxMjAwMDgwNDI2LDEyKSxvZT1WKG9lLHNlLGVlLHRlLFVbNl0sMjgyMTczNTk1NSwxNyksdGU9Vih0ZSxvZSxzZSxlZSxVWzddLDQyNDkyNjEzMTMsMjIpLGVlPVYoZWUsdGUsb2Usc2UsVVs4XSwxNzcwMDM1NDE2LDcpLHNlPVYo'@; put 'c2UsZWUsdGUsb2UsVVs5XSwyMzM2NTUyODc5LDEyKSxvZT1WKG9lLHNlLGVlLHRlLFVbMTBdLDQyOTQ5MjUyMzMsMTcpLHRlPVYodGUsb2Usc2UsZWUsVVsxMV0sMjMwNDU2MzEzNCwyMiksZWU9VihlZSx0ZSxvZSxzZSxVWzEyXSwxODA0NjAzNjgyLDcpLHNlPVYoc2UsZWUsdGUsb2UsVVsx'@; put 'M10sNDI1NDYyNjE5NSwxMiksb2U9VihvZSxzZSxlZSx0ZSxVWzE0XSwyNzkyOTY1MDA2LDE3KSxlZT1CKGVlLHRlPVYodGUsb2Usc2UsZWUsVVsxNV0sMTIzNjUzNTMyOSwyMiksb2Usc2UsVVsxXSw0MTI5MTcwNzg2LDUpLHNlPUIoc2UsZWUsdGUsb2UsVVs2XSwzMjI1NDY1NjY0LDkpLG9l'@; put 'PUIob2Usc2UsZWUsdGUsVVsxMV0sNjQzNzE3NzEzLDE0KSx0ZT1CKHRlLG9lLHNlLGVlLFVbMF0sMzkyMTA2OTk5NCwyMCksZWU9QihlZSx0ZSxvZSxzZSxVWzVdLDM1OTM0MDg2MDUsNSksc2U9QihzZSxlZSx0ZSxvZSxVWzEwXSwzODAxNjA4Myw5KSxvZT1CKG9lLHNlLGVlLHRlLFVbMTVd'@; put 'LDM2MzQ0ODg5NjEsMTQpLHRlPUIodGUsb2Usc2UsZWUsVVs0XSwzODg5NDI5NDQ4LDIwKSxlZT1CKGVlLHRlLG9lLHNlLFVbOV0sNTY4NDQ2NDM4LDUpLHNlPUIoc2UsZWUsdGUsb2UsVVsxNF0sMzI3NTE2MzYwNiw5KSxvZT1CKG9lLHNlLGVlLHRlLFVbM10sNDEwNzYwMzMzNSwxNCksdGU9'@; put 'Qih0ZSxvZSxzZSxlZSxVWzhdLDExNjM1MzE1MDEsMjApLGVlPUIoZWUsdGUsb2Usc2UsVVsxM10sMjg1MDI4NTgyOSw1KSxzZT1CKHNlLGVlLHRlLG9lLFVbMl0sNDI0MzU2MzUxMiw5KSxvZT1CKG9lLHNlLGVlLHRlLFVbN10sMTczNTMyODQ3MywxNCksZWU9WShlZSx0ZT1CKHRlLG9lLHNl'@; put 'LGVlLFVbMTJdLDIzNjgzNTk1NjIsMjApLG9lLHNlLFVbNV0sNDI5NDU4ODczOCw0KSxzZT1ZKHNlLGVlLHRlLG9lLFVbOF0sMjI3MjM5MjgzMywxMSksb2U9WShvZSxzZSxlZSx0ZSxVWzExXSwxODM5MDMwNTYyLDE2KSx0ZT1ZKHRlLG9lLHNlLGVlLFVbMTRdLDQyNTk2NTc3NDAsMjMpLGVl'@; put 'PVkoZWUsdGUsb2Usc2UsVVsxXSwyNzYzOTc1MjM2LDQpLHNlPVkoc2UsZWUsdGUsb2UsVVs0XSwxMjcyODkzMzUzLDExKSxvZT1ZKG9lLHNlLGVlLHRlLFVbN10sNDEzOTQ2OTY2NCwxNiksdGU9WSh0ZSxvZSxzZSxlZSxVWzEwXSwzMjAwMjM2NjU2LDIzKSxlZT1ZKGVlLHRlLG9lLHNlLFVb'@; put 'MTNdLDY4MTI3OTE3NCw0KSxzZT1ZKHNlLGVlLHRlLG9lLFVbMF0sMzkzNjQzMDA3NCwxMSksb2U9WShvZSxzZSxlZSx0ZSxVWzNdLDM1NzI0NDUzMTcsMTYpLHRlPVkodGUsb2Usc2UsZWUsVVs2XSw3NjAyOTE4OSwyMyksZWU9WShlZSx0ZSxvZSxzZSxVWzldLDM2NTQ2MDI4MDksNCksc2U9'@; put 'WShzZSxlZSx0ZSxvZSxVWzEyXSwzODczMTUxNDYxLDExKSxvZT1ZKG9lLHNlLGVlLHRlLFVbMTVdLDUzMDc0MjUyMCwxNiksZWU9WChlZSx0ZT1ZKHRlLG9lLHNlLGVlLFVbMl0sMzI5OTYyODY0NSwyMyksb2Usc2UsVVswXSw0MDk2MzM2NDUyLDYpLHNlPVgoc2UsZWUsdGUsb2UsVVs3XSwx'@; put 'MTI2ODkxNDE1LDEwKSxvZT1YKG9lLHNlLGVlLHRlLFVbMTRdLDI4Nzg2MTIzOTEsMTUpLHRlPVgodGUsb2Usc2UsZWUsVVs1XSw0MjM3NTMzMjQxLDIxKSxlZT1YKGVlLHRlLG9lLHNlLFVbMTJdLDE3MDA0ODU1NzEsNiksc2U9WChzZSxlZSx0ZSxvZSxVWzNdLDIzOTk5ODA2OTAsMTApLG9l'@; put 'PVgob2Usc2UsZWUsdGUsVVsxMF0sNDI5MzkxNTc3MywxNSksdGU9WCh0ZSxvZSxzZSxlZSxVWzFdLDIyNDAwNDQ0OTcsMjEpLGVlPVgoZWUsdGUsb2Usc2UsVVs4XSwxODczMzEzMzU5LDYpLHNlPVgoc2UsZWUsdGUsb2UsVVsxNV0sNDI2NDM1NTU1MiwxMCksb2U9WChvZSxzZSxlZSx0ZSxV'@; put 'WzZdLDI3MzQ3Njg5MTYsMTUpLHRlPVgodGUsb2Usc2UsZWUsVVsxM10sMTMwOTE1MTY0OSwyMSksZWU9WChlZSx0ZSxvZSxzZSxVWzRdLDQxNDk0NDQyMjYsNiksc2U9WChzZSxlZSx0ZSxvZSxVWzExXSwzMTc0NzU2OTE3LDEwKSxvZT1YKG9lLHNlLGVlLHRlLFVbMl0sNzE4Nzg3MjU5LDE1'@; put 'KSx0ZT1YKHRlLG9lLHNlLGVlLFVbOV0sMzk1MTQ4MTc0NSwyMSksdGhpcy5fYT10aGlzLl9hK2VlfDAsdGhpcy5fYj10aGlzLl9iK3RlfDAsdGhpcy5fYz10aGlzLl9jK29lfDAsdGhpcy5fZD10aGlzLl9kK3NlfDB9LEUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9j'@; put 'a1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tPZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1'@; put 'NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgVT1JLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gVS53cml0ZUludDMyTEUodGhpcy5fYSww'@; put 'KSxVLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLFUud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksVS53cml0ZUludDMyTEUodGhpcy5fZCwxMiksVX0sTS5leHBvcnRzPUV9LDMwNDc6KE0sTyxSKT0+e3ZhciB6PVIoNjI0MCksSz1SKDk5MzEpO2Z1bmN0aW9uIEkoayl7dGhpcy5yYW5kPWt8fG5l'@; put 'dyBLLlJhbmR9TS5leHBvcnRzPUksSS5jcmVhdGU9ZnVuY3Rpb24oayl7cmV0dXJuIG5ldyBJKGspfSxJLnByb3RvdHlwZS5fcmFuZGJlbG93PWZ1bmN0aW9uKGspe3ZhciBFPWsuYml0TGVuZ3RoKCksaj1NYXRoLmNlaWwoRS84KTtkb3t2YXIgVj1uZXcgeih0aGlzLnJhbmQuZ2VuZXJhdGUo'@; put 'aikpfXdoaWxlKFYuY21wKGspPj0wKTtyZXR1cm4gVn0sSS5wcm90b3R5cGUuX3JhbmRyYW5nZT1mdW5jdGlvbihrLEUpe3ZhciBqPUUuc3ViKGspO3JldHVybiBrLmFkZCh0aGlzLl9yYW5kYmVsb3coaikpfSxJLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKGssRSxqKXt2YXIgVj1rLmJpdExl'@; put 'bmd0aCgpLEI9ei5tb250KGspLFk9bmV3IHooMSkudG9SZWQoQik7RXx8KEU9TWF0aC5tYXgoMSxWLzQ4fDApKTtmb3IodmFyIFg9ay5zdWJuKDEpLFU9MDshWC50ZXN0bihVKTtVKyspO2Zvcih2YXIgcT1rLnNocm4oVSksZWU9WC50b1JlZChCKTtFPjA7RS0tKXt2YXIgdGU9dGhpcy5fcmFu'@; put 'ZHJhbmdlKG5ldyB6KDIpLFgpO2omJmoodGUpO3ZhciBvZT10ZS50b1JlZChCKS5yZWRQb3cocSk7aWYoMCE9PW9lLmNtcChZKSYmMCE9PW9lLmNtcChlZSkpe2Zvcih2YXIgc2U9MTtzZTxVO3NlKyspe2lmKDA9PT0ob2U9b2UucmVkU3FyKCkpLmNtcChZKSlyZXR1cm4hMTtpZigwPT09b2Uu'@; put 'Y21wKGVlKSlicmVha31pZihzZT09PVUpcmV0dXJuITF9fXJldHVybiEwfSxJLnByb3RvdHlwZS5nZXREaXZpc29yPWZ1bmN0aW9uKGssRSl7dmFyIGo9ay5iaXRMZW5ndGgoKSxWPXoubW9udChrKSxCPW5ldyB6KDEpLnRvUmVkKFYpO0V8fChFPU1hdGgubWF4KDEsai80OHwwKSk7Zm9yKHZh'@; put 'ciBZPWsuc3VibigxKSxYPTA7IVkudGVzdG4oWCk7WCsrKTtmb3IodmFyIFU9ay5zaHJuKFgpLHE9WS50b1JlZChWKTtFPjA7RS0tKXt2YXIgZWU9dGhpcy5fcmFuZHJhbmdlKG5ldyB6KDIpLFkpLHRlPWsuZ2NkKGVlKTtpZigwIT09dGUuY21wbigxKSlyZXR1cm4gdGU7dmFyIG9lPWVlLnRv'@; put 'UmVkKFYpLnJlZFBvdyhVKTtpZigwIT09b2UuY21wKEIpJiYwIT09b2UuY21wKHEpKXtmb3IodmFyIHNlPTE7c2U8WDtzZSsrKXtpZigwPT09KG9lPW9lLnJlZFNxcigpKS5jbXAoQikpcmV0dXJuIG9lLmZyb21SZWQoKS5zdWJuKDEpLmdjZChrKTtpZigwPT09b2UuY21wKHEpKWJyZWFrfWlm'@; put 'KHNlPT09WClyZXR1cm4ob2U9b2UucmVkU3FyKCkpLmZyb21SZWQoKS5zdWJuKDEpLmdjZChrKX19cmV0dXJuITF9fSw2MjQwOmZ1bmN0aW9uKE0sTyxSKXshZnVuY3Rpb24oeixLKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gSShnLEMpe2lmKCFnKXRocm93IG5ldyBFcnJvcihDfHwiQXNzZXJ0'@; put 'aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGsoZyxDKXtnLnN1cGVyXz1DO3ZhciBTPWZ1bmN0aW9uKCl7fTtTLnByb3RvdHlwZT1DLnByb3RvdHlwZSxnLnByb3RvdHlwZT1uZXcgUyxnLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1nfWZ1bmN0aW9uIEUoZyxDLFMpe2lmKEUuaXNCTihnKSlyZXR1cm4g'@; put 'Zzt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09ZyYmKCJsZSIhPT1DJiYiYmUiIT09Q3x8KFM9QyxDPTEwKSx0aGlzLl9pbml0KGd8fDAsQ3x8MTAsU3x8ImJlIikpfXZhciBqOyJvYmplY3QiPT10eXBlb2Ygej96LmV4'@; put 'cG9ydHM9RTpLLkJOPUUsRS5CTj1FLEUud29yZFNpemU9MjY7dHJ5e2o9dHlwZW9mIHdpbmRvdzwidSImJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpSKDY2MTkpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gVihnLEMpe3ZhciBTPWcuY2hhckNvZGVBdChDKTtyZXR1cm4g'@; put 'Uz49NjUmJlM8PTcwP1MtNTU6Uz49OTcmJlM8PTEwMj9TLTg3OlMtNDgmMTV9ZnVuY3Rpb24gQihnLEMsUyl7dmFyIHY9VihnLFMpO3JldHVybiBTLTE+PUMmJih2fD1WKGcsUy0xKTw8NCksdn1mdW5jdGlvbiBZKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9TWF0aC5taW4oZy5sZW5ndGgsUyks'@; put 'Sj1DO0o8dztKKyspe3ZhciBuZT1nLmNoYXJDb2RlQXQoSiktNDg7cCo9dixwKz1uZT49NDk/bmUtNDkrMTA6bmU+PTE3P25lLTE3KzEwOm5lfXJldHVybiBwfUUuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIEV8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9mIGcmJmcu'@; put 'Y29uc3RydWN0b3Iud29yZFNpemU9PT1FLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSxFLm1heD1mdW5jdGlvbihnLEMpe3JldHVybiBnLmNtcChDKT4wP2c6Q30sRS5taW49ZnVuY3Rpb24oZyxDKXtyZXR1cm4gZy5jbXAoQyk8MD9nOkN9LEUucHJvdG90eXBlLl9pbml0PWZ1'@; put 'bmN0aW9uKGcsQyxTKXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyxDLFMpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcsQyxTKTsiaGV4Ij09PUMmJihDPTE2KSxJKEM9PT0oMHxDKSYmQz49MiYmQzw9MzYpO3Zh'@; put 'ciB2PTA7Ii0iPT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih2KyssdGhpcy5uZWdhdGl2ZT0xKSx2PGcubGVuZ3RoJiYoMTY9PT1DP3RoaXMuX3BhcnNlSGV4KGcsdixTKToodGhpcy5fcGFyc2VCYXNlKGcsQyx2KSwibGUiPT09UyYmdGhpcy5faW5pdEFycmF5'@; put 'KHRoaXMudG9BcnJheSgpLEMsUykpKX0sRS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyxDLFMpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0OTY/KHRo'@; put 'aXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEkoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVMmJnRoaXMuX2luaXRBcnJh'@; put 'eSh0aGlzLnRvQXJyYXkoKSxDLFMpfSxFLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcsQyxTKXtpZihJKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5j'@; put 'ZWlsKGcubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHY9MDt2PHRoaXMubGVuZ3RoO3YrKyl0aGlzLndvcmRzW3ZdPTA7dmFyIHAsdyxKPTA7aWYoImJlIj09PVMpZm9yKHY9Zy5sZW5ndGgtMSxwPTA7dj49MDt2LT0zKXRoaXMud29yZHNbcF18'@; put 'PSh3PWdbdl18Z1t2LTFdPDw4fGdbdi0yXTw8MTYpPDxKJjY3MTA4ODYzLHRoaXMud29yZHNbcCsxXT13Pj4+MjYtSiY2NzEwODg2MywoSis9MjQpPj0yNiYmKEotPTI2LHArKyk7ZWxzZSBpZigibGUiPT09Uylmb3Iodj0wLHA9MDt2PGcubGVuZ3RoO3YrPTMpdGhpcy53b3Jkc1twXXw9KHc9'@; put 'Z1t2XXxnW3YrMV08PDh8Z1t2KzJdPDwxNik8PEomNjcxMDg4NjMsdGhpcy53b3Jkc1twKzFdPXc+Pj4yNi1KJjY3MTA4ODYzLChKKz0yNCk+PTI2JiYoSi09MjYscCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyxDLFMpe3RoaXMubGVu'@; put 'Z3RoPU1hdGguY2VpbCgoZy5sZW5ndGgtQykvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdj0wO3Y8dGhpcy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09MDt2YXIgcCx3PTAsSj0wO2lmKCJiZSI9PT1TKWZvcih2PWcubGVuZ3RoLTE7dj49Qzt2LT0yKXA9'@; put 'QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O2Vsc2UgZm9yKHY9KGcubGVuZ3RoLUMpJTI9PTA/QysxOkM7djxnLmxlbmd0aDt2Kz0yKXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9Njcx'@; put 'MDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O3RoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLEMsUyl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHY9MCxwPTE7cDw9NjcxMDg4NjM7cCo9'@; put 'Qyl2Kys7di0tLHA9cC9DfDA7Zm9yKHZhciB3PWcubGVuZ3RoLVMsSj13JXYsbmU9TWF0aC5taW4odyx3LUopK1MsZGU9MCxmZT1TO2ZlPG5lO2ZlKz12KWRlPVkoZyxmZSxmZSt2LEMpLHRoaXMuaW11bG4ocCksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1kZTp0'@; put 'aGlzLl9pYWRkbihkZSk7aWYoMCE9PUope3ZhciB4ZT0xO2ZvcihkZT1ZKGcsZmUsZy5sZW5ndGgsQyksZmU9MDtmZTxKO2ZlKyspeGUqPUM7dGhpcy5pbXVsbih4ZSksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1kZTp0aGlzLl9pYWRkbihkZSl9dGhpcy5zdHJp'@; put 'cCgpfSxFLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKylnLndvcmRzW0NdPXRoaXMud29yZHNbQ107Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZl'@; put 'LGcucmVkPXRoaXMucmVkfSxFLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyBFKG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sRS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109'@; put 'MDtyZXR1cm4gdGhpc30sRS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxFLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sRS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWD1b'@; put 'IiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAw'@; put 'MCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxVPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLHE9WzAsMCwz'@; put 'MzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQx'@; put 'MDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gZWUoZyxDLFMpe1MubmVnYXRpdmU9Qy5u'@; put 'ZWdhdGl2ZV5nLm5lZ2F0aXZlO3ZhciB2PWcubGVuZ3RoK0MubGVuZ3RofDA7Uy5sZW5ndGg9dix2PXYtMXwwO3ZhciBwPTB8Zy53b3Jkc1swXSx3PTB8Qy53b3Jkc1swXSxKPXAqdyxkZT1KLzY3MTA4ODY0fDA7Uy53b3Jkc1swXT02NzEwODg2MyZKO2Zvcih2YXIgZmU9MTtmZTx2O2ZlKysp'@; put 'e2Zvcih2YXIgeGU9ZGU+Pj4yNixMZT02NzEwODg2MyZkZSxGZT1NYXRoLm1pbihmZSxDLmxlbmd0aC0xKSxPZT1NYXRoLm1heCgwLGZlLWcubGVuZ3RoKzEpO09lPD1GZTtPZSsrKXhlKz0oSj0ocD0wfGcud29yZHNbZmUtT2V8MF0pKih3PTB8Qy53b3Jkc1tPZV0pK0xlKS82NzEwODg2NHww'@; put 'LExlPTY3MTA4ODYzJko7Uy53b3Jkc1tmZV09MHxMZSxkZT0wfHhlfXJldHVybiAwIT09ZGU/Uy53b3Jkc1tmZV09MHxkZTpTLmxlbmd0aC0tLFMuc3RyaXAoKX1FLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihnLEMpe3ZhciBTO2lmKEM9MHxDfHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4'@; put 'Ij09PWcpe1M9IiI7Zm9yKHZhciB2PTAscD0wLHc9MDt3PHRoaXMubGVuZ3RoO3crKyl7dmFyIEo9dGhpcy53b3Jkc1t3XSxuZT0oMTY3NzcyMTUmKEo8PHZ8cCkpLnRvU3RyaW5nKDE2KTtTPTAhPShwPUo+Pj4yNC12JjE2Nzc3MjE1KXx8dyE9PXRoaXMubGVuZ3RoLTE/WFs2LW5lLmxlbmd0'@; put 'aF0rbmUrUzpuZStTLCh2Kz0yKT49MjYmJih2LT0yNix3LS0pfWZvcigwIT09cCYmKFM9cC50b1N0cmluZygxNikrUyk7Uy5sZW5ndGglQyE9MDspUz0iMCIrUztyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihTPSItIitTKSxTfWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBkZT1V'@; put 'W2ddLGZlPXFbZ107Uz0iIjt2YXIgeGU9dGhpcy5jbG9uZSgpO2Zvcih4ZS5uZWdhdGl2ZT0wOyF4ZS5pc1plcm8oKTspe3ZhciBMZT14ZS5tb2RuKGZlKS50b1N0cmluZyhnKTtTPSh4ZT14ZS5pZGl2bihmZSkpLmlzWmVybygpP0xlK1M6WFtkZS1MZS5sZW5ndGhdK0xlK1N9Zm9yKHRoaXMu'@; put 'aXNaZXJvKCkmJihTPSIwIitTKTtTLmxlbmd0aCVDIT0wOylTPSIwIitTO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFM9Ii0iK1MpLFN9SSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxFLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMu'@; put 'd29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJkkoITEsIk51bWJlciBj'@; put 'YW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LEUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sRS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oZyxDKXtyZXR1cm4gSSh2b2lk'@; put 'IDAhPT1qKSx0aGlzLnRvQXJyYXlMaWtlKGosZyxDKX0sRS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLEMpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcsQyl9LEUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj10aGlzLmJ5dGVMZW5ndGgo'@; put 'KSxwPVN8fE1hdGgubWF4KDEsdik7SSh2PD1wLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksSShwPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgdyxKLG5lPSJsZSI9PT1DLGRlPW5ldyBnKHApLGZlPXRoaXMuY2xvbmUo'@; put 'KTtpZihuZSl7Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4oOCksZGVbSl09dztmb3IoO0o8cDtKKyspZGVbSl09MH1lbHNle2ZvcihKPTA7SjxwLXY7SisrKWRlW0pdPTA7Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxm'@; put 'ZS5pdXNocm4oOCksZGVbcC1KLTFdPXd9cmV0dXJuIGRlfSxFLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciBDPWcsUz0wO3JldHVybiBDPj00MDk2JiYoUys9MTMsQz4+Pj0xMyksQz49'@; put 'NjQmJihTKz03LEM+Pj49NyksQz49OCYmKFMrPTQsQz4+Pj00KSxDPj0yJiYoUys9MixDPj4+PTIpLFMrQ30sRS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgQz1nLFM9MDtyZXR1cm4hKDgxOTEmQykmJihTKz0xMyxDPj4+PTEzKSwhKDEy'@; put 'NyZDKSYmKFMrPTcsQz4+Pj03KSwhKDE1JkMpJiYoUys9NCxDPj4+PTQpLCEoMyZDKSYmKFMrPTIsQz4+Pj0yKSwhKDEmQykmJlMrKyxTfSxFLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgQz10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0'@; put 'dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStDfSxFLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAsQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW0NdKTtpZihnKz1TLDI2'@; put 'IT09UylicmVha31yZXR1cm4gZ30sRS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sRS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3Ru'@; put 'KGcpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9'@; put 'PXRoaXMubmVnYXRpdmV9LEUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxFLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxFLnByb3RvdHlwZS5pdW9yPWZ1'@; put 'bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIEM9MDtDPGcubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXRoaXMud29yZHNbQ118Zy53b3Jkc1tDXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5p'@; put 'b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sRS5wcm90b3R5cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0s'@; put 'RS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpnLmNsb25lKCkuaXVvcih0aGlzKX0sRS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFyIEM7Qz10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7'@; put 'Zm9yKHZhciBTPTA7UzxDLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1NdJmcud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPUMubGVuZ3RoLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gSSgwPT0odGhpcy5uZWdhdGl2ZXxn'@; put 'Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sRS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sRS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhp'@; put 'cy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sRS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIEMsUzt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oQz10aGlzLFM9Zyk6KEM9ZyxTPXRoaXMpO2Zvcih2YXIgdj0wO3Y8Uy5s'@; put 'ZW5ndGg7disrKXRoaXMud29yZHNbdl09Qy53b3Jkc1t2XV5TLndvcmRzW3ZdO2lmKHRoaXMhPT1DKWZvcig7djxDLmxlbmd0aDt2KyspdGhpcy53b3Jkc1t2XT1DLndvcmRzW3ZdO3JldHVybiB0aGlzLmxlbmd0aD1DLmxlbmd0aCx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLml4b3I9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LEUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoZyk6Zy5jbG9uZSgpLml4b3IodGhpcyl9LEUu'@; put 'cHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LEUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz0w'@; put 'fE1hdGguY2VpbChnLzI2KSxTPWclMjY7dGhpcy5fZXhwYW5kKEMpLFM+MCYmQy0tO2Zvcih2YXIgdj0wO3Y8Qzt2KyspdGhpcy53b3Jkc1t2XT02NzEwODg2MyZ+dGhpcy53b3Jkc1t2XTtyZXR1cm4gUz4wJiYodGhpcy53b3Jkc1t2XT1+dGhpcy53b3Jkc1t2XSY2NzEwODg2Mz4+MjYtUyks'@; put 'dGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LEUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyxDKXtJKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIFM9Zy8yNnwwLHY9ZyUyNjtyZXR1cm4gdGhpcy5f'@; put 'ZXhwYW5kKFMrMSksdGhpcy53b3Jkc1tTXT1DP3RoaXMud29yZHNbU118MTw8djp0aGlzLndvcmRzW1NdJn4oMTw8diksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciBDLFMsdjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJu'@; put 'IHRoaXMubmVnYXRpdmU9MCxDPXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAsQz10aGlzLmlzdWIoZyksZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCk7'@; put 'dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHA9MCx3PTA7dzx2Lmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT02NzEwODg2MyYoQz0oMHxTLndvcmRzW3ddKSsoMHx2LndvcmRzW3ddKStwKSxwPUM+Pj4yNjtmb3IoOzAhPT1wJiZ3PFMubGVu'@; put 'Z3RoO3crKyl0aGlzLndvcmRzW3ddPTY3MTA4ODYzJihDPSgwfFMud29yZHNbd10pK3ApLHA9Qz4+PjI2O2lmKHRoaXMubGVuZ3RoPVMubGVuZ3RoLDAhPT1wKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXAsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFMhPT10aGlzKWZvcig7dzxTLmxlbmd0aDt3'@; put 'KyspdGhpcy53b3Jkc1t3XT1TLndvcmRzW3ddO3JldHVybiB0aGlzfSxFLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIEM7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2ZT0wLEM9dGhpcy5zdWIoZyksZy5uZWdhdGl2ZV49MSxDKTowPT09'@; put 'Zy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxDPWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxDKTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNsb25lKCkuaWFkZCh0aGlzKX0sRS5wcm90b3R5cGUuaXN1Yj1mdW5j'@; put 'dGlvbihnKXtpZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciBDPXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoZyksdGhpcy5uZWdhdGl2ZT0x'@; put 'LHRoaXMuX25vcm1TaWduKCk7dmFyIFMsdixwPXRoaXMuY21wKGcpO2lmKDA9PT1wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztwPjA/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHc9MCxKPTA7Sjx2Lmxlbmd0aDtK'@; put 'Kyspdz0oQz0oMHxTLndvcmRzW0pdKS0oMHx2LndvcmRzW0pdKSt3KT4+MjYsdGhpcy53b3Jkc1tKXT02NzEwODg2MyZDO2Zvcig7MCE9PXcmJko8Uy5sZW5ndGg7SisrKXc9KEM9KDB8Uy53b3Jkc1tKXSkrdyk+PjI2LHRoaXMud29yZHNbSl09NjcxMDg4NjMmQztpZigwPT09dyYmSjxTLmxl'@; put 'bmd0aCYmUyE9PXRoaXMpZm9yKDtKPFMubGVuZ3RoO0orKyl0aGlzLndvcmRzW0pdPVMud29yZHNbSl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEopLFMhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLnN1Yj1mdW5j'@; put 'dGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciB0ZT1mdW5jdGlvbihnLEMsUyl7dmFyIHYscCx3LEo9Zy53b3JkcyxuZT1DLndvcmRzLGRlPVMud29yZHMsZmU9MCx4ZT0wfEpbMF0sTGU9ODE5MSZ4ZSxGZT14ZT4+PjEzLE9lPTB8SlsxXSxqZT04MTkxJk9lLFdlPU9l'@; put 'Pj4+MTMsS2U9MHxKWzJdLFllPTgxOTEmS2UsUWU9S2U+Pj4xMyxsdD0wfEpbM10sUGU9ODE5MSZsdCxiZT1sdD4+PjEzLEFlPTB8Sls0XSxUZT04MTkxJkFlLHFlPUFlPj4+MTMsWGU9MHxKWzVdLFVlPTgxOTEmWGUsaHQ9WGU+Pj4xMyxNZT0wfEpbNl0sRGU9ODE5MSZNZSx6ZT1NZT4+PjEz'@; put 'LG90PTB8Sls3XSx1dD04MTkxJm90LE10PW90Pj4+MTMsSHQ9MHxKWzhdLFB0PTgxOTEmSHQsb249SHQ+Pj4xMyxDbj0wfEpbOV0sVXQ9ODE5MSZDbixibj1Dbj4+PjEzLFduPTB8bmVbMF0sZW49ODE5MSZXbiwkbj1Xbj4+PjEzLEhuPTB8bmVbMV0sZnQ9ODE5MSZIbixmbj1Ibj4+PjEzLGhu'@; put 'PTB8bmVbMl0sd3Q9ODE5MSZobixYdD1obj4+PjEzLF90PTB8bmVbM10sTnQ9ODE5MSZfdCxtbj1fdD4+PjEzLHJ0PTB8bmVbNF0sSXQ9ODE5MSZydCxRdD1ydD4+PjEzLER0PTB8bmVbNV0scHQ9ODE5MSZEdCxZdD1EdD4+PjEzLEluPTB8bmVbNl0senQ9ODE5MSZJbix5bj1Jbj4+PjEzLHhu'@; put 'PTB8bmVbN10sc249ODE5MSZ4bixCbj14bj4+PjEzLFJuPTB8bmVbOF0sJHQ9ODE5MSZSbixGbj1Sbj4+PjEzLG5pPTB8bmVbOV0sbG49ODE5MSZuaSxqbj1uaT4+PjEzO1MubmVnYXRpdmU9Zy5uZWdhdGl2ZV5DLm5lZ2F0aXZlLFMubGVuZ3RoPTE5O3ZhciBxcj0oZmUrKHY9TWF0aC5pbXVs'@; put 'KExlLGVuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChMZSwkbikpK01hdGguaW11bChGZSxlbil8MCkpPDwxMyl8MDtmZT0oKHc9TWF0aC5pbXVsKEZlLCRuKSkrKHA+Pj4xMyl8MCkrKHFyPj4+MjYpfDAscXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKGplLGVuKSxwPShwPU1hdGguaW11'@; put 'bChqZSwkbikpK01hdGguaW11bChXZSxlbil8MCx3PU1hdGguaW11bChXZSwkbik7dmFyIGdpPShmZSsodj12K01hdGguaW11bChMZSxmdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLGZuKXwwKStNYXRoLmltdWwoRmUsZnQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5p'@; put 'bXVsKEZlLGZuKXwwKSsocD4+PjEzKXwwKSsoZ2k+Pj4yNil8MCxnaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoWWUsZW4pLHA9KHA9TWF0aC5pbXVsKFllLCRuKSkrTWF0aC5pbXVsKFFlLGVuKXwwLHc9TWF0aC5pbXVsKFFlLCRuKSx2PXYrTWF0aC5pbXVsKGplLGZ0KXwwLHA9KHA9cCtNYXRo'@; put 'LmltdWwoamUsZm4pfDApK01hdGguaW11bChXZSxmdCl8MCx3PXcrTWF0aC5pbXVsKFdlLGZuKXwwO3ZhciB4cj0oZmUrKHY9ditNYXRoLmltdWwoTGUsd3QpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxYdCl8MCkrTWF0aC5pbXVsKEZlLHd0KXwwKSk8PDEzKXwwO2ZlPSgo'@; put 'dz13K01hdGguaW11bChGZSxYdCl8MCkrKHA+Pj4xMyl8MCkrKHhyPj4+MjYpfDAseHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFBlLGVuKSxwPShwPU1hdGguaW11bChQZSwkbikpK01hdGguaW11bChiZSxlbil8MCx3PU1hdGguaW11bChiZSwkbiksdj12K01hdGguaW11bChZZSxmdCl8MCxw'@; put 'PShwPXArTWF0aC5pbXVsKFllLGZuKXwwKStNYXRoLmltdWwoUWUsZnQpfDAsdz13K01hdGguaW11bChRZSxmbil8MCx2PXYrTWF0aC5pbXVsKGplLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWHQpfDApK01hdGguaW11bChXZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFdlLFh0KXwwO3ZhciBV'@; put 'aT0oZmUrKHY9ditNYXRoLmltdWwoTGUsTnQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxtbil8MCkrTWF0aC5pbXVsKEZlLE50KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxtbil8MCkrKHA+Pj4xMyl8MCkrKFVpPj4+MjYpfDAsVWkmPTY3MTA4ODYzLHY9'@; put 'TWF0aC5pbXVsKFRlLGVuKSxwPShwPU1hdGguaW11bChUZSwkbikpK01hdGguaW11bChxZSxlbil8MCx3PU1hdGguaW11bChxZSwkbiksdj12K01hdGguaW11bChQZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLGZuKXwwKStNYXRoLmltdWwoYmUsZnQpfDAsdz13K01hdGguaW11bChiZSxm'@; put 'bil8MCx2PXYrTWF0aC5pbXVsKFllLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWHQpfDApK01hdGguaW11bChRZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFFlLFh0KXwwLHY9ditNYXRoLmltdWwoamUsTnQpfDAscD0ocD1wK01hdGguaW11bChqZSxtbil8MCkrTWF0aC5pbXVsKFdlLE50KXww'@; put 'LHc9dytNYXRoLmltdWwoV2UsbW4pfDA7dmFyIEtyPShmZSsodj12K01hdGguaW11bChMZSxJdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLFF0KXwwKStNYXRoLmltdWwoRmUsSXQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLFF0KXwwKSsocD4+PjEzKXww'@; put 'KSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVWUsZW4pLHA9KHA9TWF0aC5pbXVsKFVlLCRuKSkrTWF0aC5pbXVsKGh0LGVuKXwwLHc9TWF0aC5pbXVsKGh0LCRuKSx2PXYrTWF0aC5pbXVsKFRlLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsZm4pfDApK01hdGguaW11'@; put 'bChxZSxmdCl8MCx3PXcrTWF0aC5pbXVsKHFlLGZuKXwwLHY9ditNYXRoLmltdWwoUGUsd3QpfDAscD0ocD1wK01hdGguaW11bChQZSxYdCl8MCkrTWF0aC5pbXVsKGJlLHd0KXwwLHc9dytNYXRoLmltdWwoYmUsWHQpfDAsdj12K01hdGguaW11bChZZSxOdCl8MCxwPShwPXArTWF0aC5pbXVs'@; put 'KFllLG1uKXwwKStNYXRoLmltdWwoUWUsTnQpfDAsdz13K01hdGguaW11bChRZSxtbil8MCx2PXYrTWF0aC5pbXVsKGplLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsUXQpfDApK01hdGguaW11bChXZSxJdCl8MCx3PXcrTWF0aC5pbXVsKFdlLFF0KXwwO3ZhciBubz0oZmUrKHY9ditNYXRo'@; put 'LmltdWwoTGUscHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxZdCl8MCkrTWF0aC5pbXVsKEZlLHB0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxZdCl8MCkrKHA+Pj4xMyl8MCkrKG5vPj4+MjYpfDAsbm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKERlLGVu'@; put 'KSxwPShwPU1hdGguaW11bChEZSwkbikpK01hdGguaW11bCh6ZSxlbil8MCx3PU1hdGguaW11bCh6ZSwkbiksdj12K01hdGguaW11bChVZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLGZuKXwwKStNYXRoLmltdWwoaHQsZnQpfDAsdz13K01hdGguaW11bChodCxmbil8MCx2PXYrTWF0aC5p'@; put 'bXVsKFRlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWHQpfDApK01hdGguaW11bChxZSx3dCl8MCx3PXcrTWF0aC5pbXVsKHFlLFh0KXwwLHY9ditNYXRoLmltdWwoUGUsTnQpfDAscD0ocD1wK01hdGguaW11bChQZSxtbil8MCkrTWF0aC5pbXVsKGJlLE50KXwwLHc9dytNYXRoLmltdWwo'@; put 'YmUsbW4pfDAsdj12K01hdGguaW11bChZZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLFF0KXwwKStNYXRoLmltdWwoUWUsSXQpfDAsdz13K01hdGguaW11bChRZSxRdCl8MCx2PXYrTWF0aC5pbXVsKGplLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWXQpfDApK01hdGguaW11bChXZSxw'@; put 'dCl8MCx3PXcrTWF0aC5pbXVsKFdlLFl0KXwwO3ZhciBIcj0oZmUrKHY9ditNYXRoLmltdWwoTGUsenQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSx5bil8MCkrTWF0aC5pbXVsKEZlLHp0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSx5bil8MCkrKHA+Pj4x'@; put 'Myl8MCkrKEhyPj4+MjYpfDAsSHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKHV0LGVuKSxwPShwPU1hdGguaW11bCh1dCwkbikpK01hdGguaW11bChNdCxlbil8MCx3PU1hdGguaW11bChNdCwkbiksdj12K01hdGguaW11bChEZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKERlLGZuKXwwKStNYXRo'@; put 'LmltdWwoemUsZnQpfDAsdz13K01hdGguaW11bCh6ZSxmbil8MCx2PXYrTWF0aC5pbXVsKFVlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsWHQpfDApK01hdGguaW11bChodCx3dCl8MCx3PXcrTWF0aC5pbXVsKGh0LFh0KXwwLHY9ditNYXRoLmltdWwoVGUsTnQpfDAscD0ocD1wK01hdGgu'@; put 'aW11bChUZSxtbil8MCkrTWF0aC5pbXVsKHFlLE50KXwwLHc9dytNYXRoLmltdWwocWUsbW4pfDAsdj12K01hdGguaW11bChQZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLFF0KXwwKStNYXRoLmltdWwoYmUsSXQpfDAsdz13K01hdGguaW11bChiZSxRdCl8MCx2PXYrTWF0aC5pbXVsKFll'@; put 'LHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWXQpfDApK01hdGguaW11bChRZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFFlLFl0KXwwLHY9ditNYXRoLmltdWwoamUsenQpfDAscD0ocD1wK01hdGguaW11bChqZSx5bil8MCkrTWF0aC5pbXVsKFdlLHp0KXwwLHc9dytNYXRoLmltdWwoV2UseW4p'@; put 'fDA7dmFyIHFpPShmZSsodj12K01hdGguaW11bChMZSxzbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLEJuKXwwKStNYXRoLmltdWwoRmUsc24pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLEJuKXwwKSsocD4+PjEzKXwwKSsocWk+Pj4yNil8MCxxaSY9Njcx'@; put 'MDg4NjMsdj1NYXRoLmltdWwoUHQsZW4pLHA9KHA9TWF0aC5pbXVsKFB0LCRuKSkrTWF0aC5pbXVsKG9uLGVuKXwwLHc9TWF0aC5pbXVsKG9uLCRuKSx2PXYrTWF0aC5pbXVsKHV0LGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsZm4pfDApK01hdGguaW11bChNdCxmdCl8MCx3PXcrTWF0aC5p'@; put 'bXVsKE10LGZuKXwwLHY9ditNYXRoLmltdWwoRGUsd3QpfDAscD0ocD1wK01hdGguaW11bChEZSxYdCl8MCkrTWF0aC5pbXVsKHplLHd0KXwwLHc9dytNYXRoLmltdWwoemUsWHQpfDAsdj12K01hdGguaW11bChVZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLG1uKXwwKStNYXRoLmltdWwo'@; put 'aHQsTnQpfDAsdz13K01hdGguaW11bChodCxtbil8MCx2PXYrTWF0aC5pbXVsKFRlLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsUXQpfDApK01hdGguaW11bChxZSxJdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFF0KXwwLHY9ditNYXRoLmltdWwoUGUscHQpfDAscD0ocD1wK01hdGguaW11bChQ'@; put 'ZSxZdCl8MCkrTWF0aC5pbXVsKGJlLHB0KXwwLHc9dytNYXRoLmltdWwoYmUsWXQpfDAsdj12K01hdGguaW11bChZZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKFllLHluKXwwKStNYXRoLmltdWwoUWUsenQpfDAsdz13K01hdGguaW11bChRZSx5bil8MCx2PXYrTWF0aC5pbXVsKGplLHNuKXww'@; put 'LHA9KHA9cCtNYXRoLmltdWwoamUsQm4pfDApK01hdGguaW11bChXZSxzbil8MCx3PXcrTWF0aC5pbXVsKFdlLEJuKXwwO3ZhciBKaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsJHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxGbil8MCkrTWF0aC5pbXVsKEZlLCR0KXwwKSk8'@; put 'PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxGbil8MCkrKHA+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGVuKSxwPShwPU1hdGguaW11bChVdCwkbikpK01hdGguaW11bChibixlbil8MCx3PU1hdGguaW11bChibiwkbiksdj12K01hdGguaW11'@; put 'bChQdCxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LGZuKXwwKStNYXRoLmltdWwob24sZnQpfDAsdz13K01hdGguaW11bChvbixmbil8MCx2PXYrTWF0aC5pbXVsKHV0LHd0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWHQpfDApK01hdGguaW11bChNdCx3dCl8MCx3PXcrTWF0aC5pbXVsKE10'@; put 'LFh0KXwwLHY9ditNYXRoLmltdWwoRGUsTnQpfDAscD0ocD1wK01hdGguaW11bChEZSxtbil8MCkrTWF0aC5pbXVsKHplLE50KXwwLHc9dytNYXRoLmltdWwoemUsbW4pfDAsdj12K01hdGguaW11bChVZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLFF0KXwwKStNYXRoLmltdWwoaHQsSXQp'@; put 'fDAsdz13K01hdGguaW11bChodCxRdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWXQpfDApK01hdGguaW11bChxZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFl0KXwwLHY9ditNYXRoLmltdWwoUGUsenQpfDAscD0ocD1wK01hdGguaW11bChQZSx5bil8'@; put 'MCkrTWF0aC5pbXVsKGJlLHp0KXwwLHc9dytNYXRoLmltdWwoYmUseW4pfDAsdj12K01hdGguaW11bChZZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFllLEJuKXwwKStNYXRoLmltdWwoUWUsc24pfDAsdz13K01hdGguaW11bChRZSxCbil8MCx2PXYrTWF0aC5pbXVsKGplLCR0KXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwoamUsRm4pfDApK01hdGguaW11bChXZSwkdCl8MCx3PXcrTWF0aC5pbXVsKFdlLEZuKXwwO3ZhciBhbz0oZmUrKHY9ditNYXRoLmltdWwoTGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxqbil8MCkrTWF0aC5pbXVsKEZlLGxuKXwwKSk8PDEzKXww'@; put 'O2ZlPSgodz13K01hdGguaW11bChGZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGFvPj4+MjYpfDAsYW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGZ0KSxwPShwPU1hdGguaW11bChVdCxmbikpK01hdGguaW11bChibixmdCl8MCx3PU1hdGguaW11bChibixmbiksdj12K01hdGguaW11bChQdCx3'@; put 'dCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFh0KXwwKStNYXRoLmltdWwob24sd3QpfDAsdz13K01hdGguaW11bChvbixYdCl8MCx2PXYrTWF0aC5pbXVsKHV0LE50KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsbW4pfDApK01hdGguaW11bChNdCxOdCl8MCx3PXcrTWF0aC5pbXVsKE10LG1uKXww'@; put 'LHY9ditNYXRoLmltdWwoRGUsSXQpfDAscD0ocD1wK01hdGguaW11bChEZSxRdCl8MCkrTWF0aC5pbXVsKHplLEl0KXwwLHc9dytNYXRoLmltdWwoemUsUXQpfDAsdj12K01hdGguaW11bChVZSxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLFl0KXwwKStNYXRoLmltdWwoaHQscHQpfDAsdz13'@; put 'K01hdGguaW11bChodCxZdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHp0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUseW4pfDApK01hdGguaW11bChxZSx6dCl8MCx3PXcrTWF0aC5pbXVsKHFlLHluKXwwLHY9ditNYXRoLmltdWwoUGUsc24pfDAscD0ocD1wK01hdGguaW11bChQZSxCbil8MCkrTWF0'@; put 'aC5pbXVsKGJlLHNuKXwwLHc9dytNYXRoLmltdWwoYmUsQm4pfDAsdj12K01hdGguaW11bChZZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLEZuKXwwKStNYXRoLmltdWwoUWUsJHQpfDAsdz13K01hdGguaW11bChRZSxGbil8MDt2YXIgcm89KGZlKyh2PXYrTWF0aC5pbXVsKGplLGxuKXww'@; put 'KXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoamUsam4pfDApK01hdGguaW11bChXZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoV2Usam4pfDApKyhwPj4+MTMpfDApKyhybz4+PjI2KXwwLHJvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCx3dCkscD0ocD1NYXRoLmlt'@; put 'dWwoVXQsWHQpKStNYXRoLmltdWwoYm4sd3QpfDAsdz1NYXRoLmltdWwoYm4sWHQpLHY9ditNYXRoLmltdWwoUHQsTnQpfDAscD0ocD1wK01hdGguaW11bChQdCxtbil8MCkrTWF0aC5pbXVsKG9uLE50KXwwLHc9dytNYXRoLmltdWwob24sbW4pfDAsdj12K01hdGguaW11bCh1dCxJdCl8MCxw'@; put 'PShwPXArTWF0aC5pbXVsKHV0LFF0KXwwKStNYXRoLmltdWwoTXQsSXQpfDAsdz13K01hdGguaW11bChNdCxRdCl8MCx2PXYrTWF0aC5pbXVsKERlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsWXQpfDApK01hdGguaW11bCh6ZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHplLFl0KXwwLHY9ditN'@; put 'YXRoLmltdWwoVWUsenQpfDAscD0ocD1wK01hdGguaW11bChVZSx5bil8MCkrTWF0aC5pbXVsKGh0LHp0KXwwLHc9dytNYXRoLmltdWwoaHQseW4pfDAsdj12K01hdGguaW11bChUZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFRlLEJuKXwwKStNYXRoLmltdWwocWUsc24pfDAsdz13K01hdGgu'@; put 'aW11bChxZSxCbil8MCx2PXYrTWF0aC5pbXVsKFBlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoUGUsRm4pfDApK01hdGguaW11bChiZSwkdCl8MCx3PXcrTWF0aC5pbXVsKGJlLEZuKXwwO3ZhciBpbz0oZmUrKHY9ditNYXRoLmltdWwoWWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGgu'@; put 'aW11bChZZSxqbil8MCkrTWF0aC5pbXVsKFFlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChRZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LE50KSxwPShwPU1hdGguaW11bChVdCxtbikpK01hdGguaW11bChibixO'@; put 'dCl8MCx3PU1hdGguaW11bChibixtbiksdj12K01hdGguaW11bChQdCxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFF0KXwwKStNYXRoLmltdWwob24sSXQpfDAsdz13K01hdGguaW11bChvbixRdCl8MCx2PXYrTWF0aC5pbXVsKHV0LHB0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWXQpfDAp'@; put 'K01hdGguaW11bChNdCxwdCl8MCx3PXcrTWF0aC5pbXVsKE10LFl0KXwwLHY9ditNYXRoLmltdWwoRGUsenQpfDAscD0ocD1wK01hdGguaW11bChEZSx5bil8MCkrTWF0aC5pbXVsKHplLHp0KXwwLHc9dytNYXRoLmltdWwoemUseW4pfDAsdj12K01hdGguaW11bChVZSxzbil8MCxwPShwPXAr'@; put 'TWF0aC5pbXVsKFVlLEJuKXwwKStNYXRoLmltdWwoaHQsc24pfDAsdz13K01hdGguaW11bChodCxCbil8MCx2PXYrTWF0aC5pbXVsKFRlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsRm4pfDApK01hdGguaW11bChxZSwkdCl8MCx3PXcrTWF0aC5pbXVsKHFlLEZuKXwwO3ZhciBHaT0oZmUr'@; put 'KHY9ditNYXRoLmltdWwoUGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQZSxqbil8MCkrTWF0aC5pbXVsKGJlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChiZSxqbil8MCkrKHA+Pj4xMyl8MCkrKEdpPj4+MjYpfDAsR2kmPTY3MTA4ODYzLHY9TWF0aC5p'@; put 'bXVsKFV0LEl0KSxwPShwPU1hdGguaW11bChVdCxRdCkpK01hdGguaW11bChibixJdCl8MCx3PU1hdGguaW11bChibixRdCksdj12K01hdGguaW11bChQdCxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFl0KXwwKStNYXRoLmltdWwob24scHQpfDAsdz13K01hdGguaW11bChvbixZdCl8MCx2'@; put 'PXYrTWF0aC5pbXVsKHV0LHp0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQseW4pfDApK01hdGguaW11bChNdCx6dCl8MCx3PXcrTWF0aC5pbXVsKE10LHluKXwwLHY9ditNYXRoLmltdWwoRGUsc24pfDAscD0ocD1wK01hdGguaW11bChEZSxCbil8MCkrTWF0aC5pbXVsKHplLHNuKXwwLHc9dytN'@; put 'YXRoLmltdWwoemUsQm4pfDAsdj12K01hdGguaW11bChVZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLEZuKXwwKStNYXRoLmltdWwoaHQsJHQpfDAsdz13K01hdGguaW11bChodCxGbil8MDt2YXIgaG89KGZlKyh2PXYrTWF0aC5pbXVsKFRlLGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtN'@; put 'YXRoLmltdWwoVGUsam4pfDApK01hdGguaW11bChxZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwocWUsam4pfDApKyhwPj4+MTMpfDApKyhobz4+PjI2KXwwLGhvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCxwdCkscD0ocD1NYXRoLmltdWwoVXQsWXQpKStNYXRoLmltdWwo'@; put 'Ym4scHQpfDAsdz1NYXRoLmltdWwoYm4sWXQpLHY9ditNYXRoLmltdWwoUHQsenQpfDAscD0ocD1wK01hdGguaW11bChQdCx5bil8MCkrTWF0aC5pbXVsKG9uLHp0KXwwLHc9dytNYXRoLmltdWwob24seW4pfDAsdj12K01hdGguaW11bCh1dCxzbil8MCxwPShwPXArTWF0aC5pbXVsKHV0LEJu'@; put 'KXwwKStNYXRoLmltdWwoTXQsc24pfDAsdz13K01hdGguaW11bChNdCxCbil8MCx2PXYrTWF0aC5pbXVsKERlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsRm4pfDApK01hdGguaW11bCh6ZSwkdCl8MCx3PXcrTWF0aC5pbXVsKHplLEZuKXwwO3ZhciB5cj0oZmUrKHY9ditNYXRoLmltdWwo'@; put 'VWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChVZSxqbil8MCkrTWF0aC5pbXVsKGh0LGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChodCxqbil8MCkrKHA+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHp0KSxwPShw'@; put 'PU1hdGguaW11bChVdCx5bikpK01hdGguaW11bChibix6dCl8MCx3PU1hdGguaW11bChibix5biksdj12K01hdGguaW11bChQdCxzbil8MCxwPShwPXArTWF0aC5pbXVsKFB0LEJuKXwwKStNYXRoLmltdWwob24sc24pfDAsdz13K01hdGguaW11bChvbixCbil8MCx2PXYrTWF0aC5pbXVsKHV0'@; put 'LCR0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsRm4pfDApK01hdGguaW11bChNdCwkdCl8MCx3PXcrTWF0aC5pbXVsKE10LEZuKXwwO3ZhciBQaT0oZmUrKHY9ditNYXRoLmltdWwoRGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChEZSxqbil8MCkrTWF0aC5pbXVsKHplLGxu'@; put 'KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bCh6ZSxqbil8MCkrKHA+Pj4xMyl8MCkrKFBpPj4+MjYpfDAsUGkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHNuKSxwPShwPU1hdGguaW11bChVdCxCbikpK01hdGguaW11bChibixzbil8MCx3PU1hdGguaW11bChibixCbiksdj12K01h'@; put 'dGguaW11bChQdCwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LEZuKXwwKStNYXRoLmltdWwob24sJHQpfDAsdz13K01hdGguaW11bChvbixGbil8MDt2YXIgTG89KGZlKyh2PXYrTWF0aC5pbXVsKHV0LGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwodXQsam4pfDApK01hdGgu'@; put 'aW11bChNdCxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoTXQsam4pfDApKyhwPj4+MTMpfDApKyhMbz4+PjI2KXwwLExvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCwkdCkscD0ocD1NYXRoLmltdWwoVXQsRm4pKStNYXRoLmltdWwoYm4sJHQpfDAsdz1NYXRoLmltdWwoYm4s'@; put 'Rm4pO3ZhciBocz0oZmUrKHY9ditNYXRoLmltdWwoUHQsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQdCxqbil8MCkrTWF0aC5pbXVsKG9uLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChvbixqbil8MCkrKHA+Pj4xMyl8MCkrKGhzPj4+MjYpfDAsaHMmPTY3'@; put 'MTA4ODYzO3ZhciBycz0oZmUrKHY9TWF0aC5pbXVsKFV0LGxuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChVdCxqbikpK01hdGguaW11bChibixsbil8MCkpPDwxMyl8MDtyZXR1cm4gZmU9KCh3PU1hdGguaW11bChibixqbikpKyhwPj4+MTMpfDApKyhycz4+PjI2KXwwLHJzJj02NzEw'@; put 'ODg2MyxkZVswXT1xcixkZVsxXT1naSxkZVsyXT14cixkZVszXT1VaSxkZVs0XT1LcixkZVs1XT1ubyxkZVs2XT1IcixkZVs3XT1xaSxkZVs4XT1KaSxkZVs5XT1hbyxkZVsxMF09cm8sZGVbMTFdPWlvLGRlWzEyXT1HaSxkZVsxM109aG8sZGVbMTRdPXlyLGRlWzE1XT1QaSxkZVsxNl09TG8s'@; put 'ZGVbMTddPWhzLGRlWzE4XT1ycywwIT09ZmUmJihkZVsxOV09ZmUsUy5sZW5ndGgrKyksU307ZnVuY3Rpb24gb2UoZyxDLFMpe3JldHVybihuZXcgc2UpLm11bHAoZyxDLFMpfWZ1bmN0aW9uIHNlKGcsQyl7dGhpcy54PWcsdGhpcy55PUN9TWF0aC5pbXVsfHwodGU9ZWUpLEUucHJvdG90eXBl'@; put 'Lm11bFRvPWZ1bmN0aW9uKGcsQyl7dmFyIHY9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09Zy5sZW5ndGg/dGUodGhpcyxnLEMpOnY8NjM/ZWUodGhpcyxnLEMpOnY8MTAyND9mdW5jdGlvbihwLHcsSil7Si5uZWdhdGl2ZT13Lm5lZ2F0aXZlXnAu'@; put 'bmVnYXRpdmUsSi5sZW5ndGg9cC5sZW5ndGgrdy5sZW5ndGg7Zm9yKHZhciBuZT0wLGRlPTAsZmU9MDtmZTxKLmxlbmd0aC0xO2ZlKyspe3ZhciB4ZT1kZTtkZT0wO2Zvcih2YXIgTGU9NjcxMDg4NjMmbmUsRmU9TWF0aC5taW4oZmUsdy5sZW5ndGgtMSksT2U9TWF0aC5tYXgoMCxmZS1wLmxl'@; put 'bmd0aCsxKTtPZTw9RmU7T2UrKyl7dmFyIFdlPSgwfHAud29yZHNbZmUtT2VdKSooMHx3LndvcmRzW09lXSksS2U9NjcxMDg4NjMmV2U7TGU9NjcxMDg4NjMmKEtlPUtlK0xlfDApLGRlKz0oeGU9KHhlPXhlKyhXZS82NzEwODg2NHwwKXwwKSsoS2U+Pj4yNil8MCk+Pj4yNix4ZSY9NjcxMDg4'@; put 'NjN9Si53b3Jkc1tmZV09TGUsbmU9eGUseGU9ZGV9cmV0dXJuIDAhPT1uZT9KLndvcmRzW2ZlXT1uZTpKLmxlbmd0aC0tLEouc3RyaXAoKX0odGhpcyxnLEMpOm9lKHRoaXMsZyxDKX0sc2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPUUu'@; put 'cHJvdG90eXBlLl9jb3VudEJpdHMoZyktMSx2PTA7djxnO3YrKylDW3ZdPXRoaXMucmV2QmluKHYsUyxnKTtyZXR1cm4gQ30sc2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLEMsUyl7aWYoMD09PWd8fGc9PT1TLTEpcmV0dXJuIGc7Zm9yKHZhciB2PTAscD0wO3A8QztwKyspdnw9KDEm'@; put 'Zyk8PEMtcC0xLGc+Pj0xO3JldHVybiB2fSxzZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLEMsUyx2LHAsdyl7Zm9yKHZhciBKPTA7Sjx3O0orKyl2W0pdPUNbZ1tKXV0scFtKXT1TW2dbSl1dfSxzZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGcsQyxTLHYscCx3KXt0aGlz'@; put 'LnBlcm11dGUodyxnLEMsUyx2LHApO2Zvcih2YXIgSj0xO0o8cDtKPDw9MSlmb3IodmFyIG5lPUo8PDEsZGU9TWF0aC5jb3MoMipNYXRoLlBJL25lKSxmZT1NYXRoLnNpbigyKk1hdGguUEkvbmUpLHhlPTA7eGU8cDt4ZSs9bmUpZm9yKHZhciBMZT1kZSxGZT1mZSxPZT0wO09lPEo7T2UrKyl7'@; put 'dmFyIGplPVNbeGUrT2VdLFdlPXZbeGUrT2VdLEtlPVNbeGUrT2UrSl0sWWU9dlt4ZStPZStKXSxRZT1MZSpLZS1GZSpZZTtZZT1MZSpZZStGZSpLZSxTW3hlK09lXT1qZSsoS2U9UWUpLHZbeGUrT2VdPVdlK1llLFNbeGUrT2UrSl09amUtS2Usdlt4ZStPZStKXT1XZS1ZZSxPZSE9PW5lJiYo'@; put 'UWU9ZGUqTGUtZmUqRmUsRmU9ZGUqRmUrZmUqTGUsTGU9UWUpfX0sc2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcsQyl7dmFyIFM9MXxNYXRoLm1heChDLGcpLHY9MSZTLHA9MDtmb3IoUz1TLzJ8MDtTO1M+Pj49MSlwKys7cmV0dXJuIDE8PHArMSt2fSxzZS5wcm90b3R5cGUu'@; put 'Y29uanVnYXRlPWZ1bmN0aW9uKGcsQyxTKXtpZighKFM8PTEpKWZvcih2YXIgdj0wO3Y8Uy8yO3YrKyl7dmFyIHA9Z1t2XTtnW3ZdPWdbUy12LTFdLGdbUy12LTFdPXAscD1DW3ZdLENbdl09LUNbUy12LTFdLENbUy12LTFdPS1wfX0sc2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlv'@; put 'bihnLEMpe2Zvcih2YXIgUz0wLHY9MDt2PEMvMjt2Kyspe3ZhciBwPTgxOTIqTWF0aC5yb3VuZChnWzIqdisxXS9DKStNYXRoLnJvdW5kKGdbMip2XS9DKStTO2dbdl09NjcxMDg4NjMmcCxTPXA8NjcxMDg4NjQ/MDpwLzY3MTA4ODY0fDB9cmV0dXJuIGd9LHNlLnByb3RvdHlwZS5jb252ZXJ0'@; put 'MTNiPWZ1bmN0aW9uKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9MDt3PEM7dysrKVNbMip3XT04MTkxJihwKz0wfGdbd10pLFNbMip3KzFdPTgxOTEmKHA+Pj49MTMpLHA+Pj49MTM7Zm9yKHc9MipDO3c8djsrK3cpU1t3XT0wO0koMD09PXApLEkoMD09KC04MTkyJnApKX0sc2UucHJvdG90eXBl'@; put 'LnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPTA7UzxnO1MrKylDW1NdPTA7cmV0dXJuIEN9LHNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj0yKnRoaXMuZ3Vlc3NMZW4xM2IoZy5sZW5ndGgsQy5sZW5ndGgpLHA9dGhpcy5tYWtlUkJUKHYp'@; put 'LHc9dGhpcy5zdHViKHYpLEo9bmV3IEFycmF5KHYpLG5lPW5ldyBBcnJheSh2KSxkZT1uZXcgQXJyYXkodiksZmU9bmV3IEFycmF5KHYpLHhlPW5ldyBBcnJheSh2KSxMZT1uZXcgQXJyYXkodiksRmU9Uy53b3JkcztGZS5sZW5ndGg9dix0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0'@; put 'aCxKLHYpLHRoaXMuY29udmVydDEzYihDLndvcmRzLEMubGVuZ3RoLGZlLHYpLHRoaXMudHJhbnNmb3JtKEosdyxuZSxkZSx2LHApLHRoaXMudHJhbnNmb3JtKGZlLHcseGUsTGUsdixwKTtmb3IodmFyIE9lPTA7T2U8djtPZSsrKXt2YXIgamU9bmVbT2VdKnhlW09lXS1kZVtPZV0qTGVbT2Vd'@; put 'O2RlW09lXT1uZVtPZV0qTGVbT2VdK2RlW09lXSp4ZVtPZV0sbmVbT2VdPWplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShuZSxkZSx2KSx0aGlzLnRyYW5zZm9ybShuZSxkZSxGZSx3LHYscCksdGhpcy5jb25qdWdhdGUoRmUsdyx2KSx0aGlzLm5vcm1hbGl6ZTEzYihGZSx2KSxTLm5lZ2F0aXZl'@; put 'PWcubmVnYXRpdmVeQy5uZWdhdGl2ZSxTLmxlbmd0aD1nLmxlbmd0aCtDLmxlbmd0aCxTLnN0cmlwKCl9LEUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8o'@; put 'ZyxDKX0sRS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLG9lKHRoaXMsZyxDKX0sRS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11'@; put 'bFRvKGcsdGhpcyl9LEUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnKSxJKGc8NjcxMDg4NjQpO2Zvcih2YXIgQz0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIHY9KDB8dGhpcy53b3Jkc1tTXSkqZyxwPSg2NzEwODg2MyZ2KSsoNjcxMDg4NjMm'@; put 'Qyk7Qz4+PTI2LEMrPXYvNjcxMDg4NjR8MCxDKz1wPj4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZwfXJldHVybiAwIT09QyYmKHRoaXMud29yZHNbU109Qyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW11'@; put 'bG4oZyl9LEUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sRS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sRS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcpe3ZhciBDPWZ1bmN0aW9uKHcpe2Zv'@; put 'cih2YXIgSj1uZXcgQXJyYXkody5iaXRMZW5ndGgoKSksbmU9MDtuZTxKLmxlbmd0aDtuZSsrKXt2YXIgZmU9bmUlMjY7SltuZV09KHcud29yZHNbbmUvMjZ8MF0mMTw8ZmUpPj4+ZmV9cmV0dXJuIEp9KGcpO2lmKDA9PT1DLmxlbmd0aClyZXR1cm4gbmV3IEUoMSk7Zm9yKHZhciBTPXRoaXMs'@; put 'dj0wO3Y8Qy5sZW5ndGgmJjA9PT1DW3ZdO3YrKyxTPVMuc3FyKCkpO2lmKCsrdjxDLmxlbmd0aClmb3IodmFyIHA9Uy5zcXIoKTt2PEMubGVuZ3RoO3YrKyxwPXAuc3FyKCkpMCE9PUNbdl0mJihTPVMubXVsKHApKTtyZXR1cm4gU30sRS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGcpe0ko'@; put 'Im51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQyxTPWclMjYsdj0oZy1TKS8yNixwPTY3MTA4ODYzPj4+MjYtUzw8MjYtUztpZigwIT09Uyl7dmFyIHc9MDtmb3IoQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgSj10aGlzLndvcmRzW0NdJnA7dGhpcy53b3Jkc1tDXT0oMHx0aGlzLndv'@; put 'cmRzW0NdKS1KPDxTfHcsdz1KPj4+MjYtU313JiYodGhpcy53b3Jkc1tDXT13LHRoaXMubGVuZ3RoKyspfWlmKDAhPT12KXtmb3IoQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0tKXRoaXMud29yZHNbQyt2XT10aGlzLndvcmRzW0NdO2ZvcihDPTA7Qzx2O0MrKyl0aGlzLndvcmRzW0NdPTA7dGhp'@; put 'cy5sZW5ndGgrPXZ9cmV0dXJuIHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSxFLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyxDLFMpe3ZhciB2O0koIm51bWJlciI9PXR5cGVv'@; put 'ZiBnJiZnPj0wKSx2PUM/KEMtQyUyNikvMjY6MDt2YXIgcD1nJTI2LHc9TWF0aC5taW4oKGctcCkvMjYsdGhpcy5sZW5ndGgpLEo9NjcxMDg4NjNeNjcxMDg4NjM+Pj5wPDxwLG5lPVM7aWYodi09dyx2PU1hdGgubWF4KDAsdiksbmUpe2Zvcih2YXIgZGU9MDtkZTx3O2RlKyspbmUud29yZHNb'@; put 'ZGVdPXRoaXMud29yZHNbZGVdO25lLmxlbmd0aD13fWlmKDAhPT13KWlmKHRoaXMubGVuZ3RoPncpZm9yKHRoaXMubGVuZ3RoLT13LGRlPTA7ZGU8dGhpcy5sZW5ndGg7ZGUrKyl0aGlzLndvcmRzW2RlXT10aGlzLndvcmRzW2RlK3ddO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3Ro'@; put 'PTE7dmFyIGZlPTA7Zm9yKGRlPXRoaXMubGVuZ3RoLTE7ZGU+PTAmJigwIT09ZmV8fGRlPj12KTtkZS0tKXt2YXIgeGU9MHx0aGlzLndvcmRzW2RlXTt0aGlzLndvcmRzW2RlXT1mZTw8MjYtcHx4ZT4+PnAsZmU9eGUmSn1yZXR1cm4gbmUmJjAhPT1mZSYmKG5lLndvcmRzW25lLmxlbmd0aCsr'@; put 'XT1mZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyxDLFMpe3JldHVybiBJKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihnLEMsUyl9LEUucHJvdG90eXBlLnNo'@; put 'bG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sRS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZyl9LEUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihnKX0s'@; put 'RS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LEUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9U3x8'@; put 'ISh0aGlzLndvcmRzW1NdJjE8PEMpKX0sRS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUg'@; put 'bnVtYmVycyIpLHRoaXMubGVuZ3RoPD1TP3RoaXM6KDAhPT1DJiZTKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oUyx0aGlzLmxlbmd0aCksMCE9PUMmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PkM8PEMpLHRoaXMuc3RyaXAoKSl9LEUucHJvdG90eXBl'@; put 'Lm1hc2tuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSxFLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzwwP3RoaXMuaXN1Ym4oLWcpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10'@; put 'aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGcpfSxFLnByb3Rv'@; put 'dHlwZS5faWFkZG49ZnVuY3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0NdPj02NzEwODg2NDtDKyspdGhpcy53b3Jkc1tDXS09NjcxMDg4NjQsQz09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tDKzFdPTE6dGhpcy53b3Jk'@; put 'c1tDKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEMrMSksdGhpc30sRS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYoSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzwwKXJldHVybiB0aGlzLmlhZGRuKC1nKTtpZigwIT09dGhp'@; put 'cy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9'@; put 'MTtlbHNlIGZvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbQ108MDtDKyspdGhpcy53b3Jkc1tDXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tDKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUo'@; put 'KS5pYWRkbihnKX0sRS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSxFLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxFLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp'@; put 'cy5jbG9uZSgpLmlhYnMoKX0sRS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdixwO3RoaXMuX2V4cGFuZChnLmxlbmd0aCtTKTt2YXIgSj0wO2Zvcih2PTA7djxnLmxlbmd0aDt2Kyspe3A9KDB8dGhpcy53b3Jkc1t2K1NdKStKO3ZhciBuZT0oMHxnLndvcmRz'@; put 'W3ZdKSpDO0o9KChwLT02NzEwODg2MyZuZSk+PjI2KS0obmUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnB9Zm9yKDt2PHRoaXMubGVuZ3RoLVM7disrKUo9KHA9KDB8dGhpcy53b3Jkc1t2K1NdKStKKT4+MjYsdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnA7aWYoMD09'@; put 'PUopcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoSSgtMT09PUopLEo9MCx2PTA7djx0aGlzLmxlbmd0aDt2KyspSj0ocD0tKDB8dGhpcy53b3Jkc1t2XSkrSik+PjI2LHRoaXMud29yZHNbdl09NjcxMDg4NjMmcDtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5'@; put 'cGUuX3dvcmREaXY9ZnVuY3Rpb24oZyxDKXt2YXIgUyx2PXRoaXMuY2xvbmUoKSxwPWcsdz0wfHAud29yZHNbcC5sZW5ndGgtMV07MCE9KFM9MjYtdGhpcy5fY291bnRCaXRzKHcpKSYmKHA9cC51c2hsbihTKSx2Lml1c2hsbihTKSx3PTB8cC53b3Jkc1twLmxlbmd0aC0xXSk7dmFyIEosbmU9'@; put 'di5sZW5ndGgtcC5sZW5ndGg7aWYoIm1vZCIhPT1DKXsoSj1uZXcgRShudWxsKSkubGVuZ3RoPW5lKzEsSi53b3Jkcz1uZXcgQXJyYXkoSi5sZW5ndGgpO2Zvcih2YXIgZGU9MDtkZTxKLmxlbmd0aDtkZSsrKUoud29yZHNbZGVdPTB9dmFyIGZlPXYuY2xvbmUoKS5faXNobG5zdWJtdWwocCwx'@; put 'LG5lKTswPT09ZmUubmVnYXRpdmUmJih2PWZlLEomJihKLndvcmRzW25lXT0xKSk7Zm9yKHZhciB4ZT1uZS0xO3hlPj0wO3hlLS0pe3ZhciBMZT02NzEwODg2NCooMHx2LndvcmRzW3AubGVuZ3RoK3hlXSkrKDB8di53b3Jkc1twLmxlbmd0aCt4ZS0xXSk7Zm9yKExlPU1hdGgubWluKExlL3d8'@; put 'MCw2NzEwODg2Myksdi5faXNobG5zdWJtdWwocCxMZSx4ZSk7MCE9PXYubmVnYXRpdmU7KUxlLS0sdi5uZWdhdGl2ZT0wLHYuX2lzaGxuc3VibXVsKHAsMSx4ZSksdi5pc1plcm8oKXx8KHYubmVnYXRpdmVePTEpO0omJihKLndvcmRzW3hlXT1MZSl9cmV0dXJuIEomJkouc3RyaXAoKSx2LnN0'@; put 'cmlwKCksImRpdiIhPT1DJiYwIT09UyYmdi5pdXNocm4oUykse2RpdjpKfHxudWxsLG1vZDp2fX0sRS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcsQyxTKXtyZXR1cm4gSSghZy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBFKDApLG1vZDpuZXcgRSgwKX06MCE9PXRoaXMu'@; put 'bmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcsQyksIm1vZCIhPT1DJiYodj13LmRpdi5uZWcoKSksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pYWRkKGcpKSx7ZGl2OnYsbW9kOnB9KTowPT09dGhpcy5uZWdhdGl2'@; put 'ZSYmMCE9PWcubmVnYXRpdmU/KHc9dGhpcy5kaXZtb2QoZy5uZWcoKSxDKSwibW9kIiE9PUMmJih2PXcuZGl2Lm5lZygpKSx7ZGl2OnYsbW9kOncubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcubmVnKCksQyksImRpdiIhPT1DJiYocD13Lm1v'@; put 'ZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pc3ViKGcpKSx7ZGl2OncuZGl2LG1vZDpwfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgRSgwKSxtb2Q6dGhpc306MT09PWcubGVuZ3RoPyJkaXYiPT09Qz97ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBd'@; put 'KSxtb2Q6bnVsbH06Im1vZCI9PT1DP3tkaXY6bnVsbCxtb2Q6bmV3IEUodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyBFKHRoaXMubW9kbihnLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZyxDKTt2YXIgdixwLHd9LEUucHJvdG90'@; put 'eXBlLmRpdj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSxFLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEpLm1vZH0sRS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZt'@; put 'b2QoZywibW9kIiwhMCkubW9kfSxFLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgQz10aGlzLmRpdm1vZChnKTtpZihDLm1vZC5pc1plcm8oKSlyZXR1cm4gQy5kaXY7dmFyIFM9MCE9PUMuZGl2Lm5lZ2F0aXZlP0MubW9kLmlzdWIoZyk6Qy5tb2Qsdj1nLnVzaHJuKDEpLHA9'@; put 'Zy5hbmRsbigxKSx3PVMuY21wKHYpO3JldHVybiB3PDB8fDE9PT1wJiYwPT09dz9DLmRpdjowIT09Qy5kaXYubmVnYXRpdmU/Qy5kaXYuaXN1Ym4oMSk6Qy5kaXYuaWFkZG4oMSl9LEUucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZyl7SShnPD02NzEwODg2Myk7Zm9yKHZhciBDPTY3MTA4ODY0'@; put 'JWcsUz0wLHY9dGhpcy5sZW5ndGgtMTt2Pj0wO3YtLSlTPShDKlMrKDB8dGhpcy53b3Jkc1t2XSkpJWc7cmV0dXJuIFN9LEUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe0koZzw9NjcxMDg4NjMpO2Zvcih2YXIgQz0wLFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl7dmFyIHY9KDB8dGhp'@; put 'cy53b3Jkc1tTXSkrNjcxMDg4NjQqQzt0aGlzLndvcmRzW1NdPXYvZ3wwLEM9diVnfXJldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sRS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtJKDA9PT1n'@; put 'Lm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHY9bmV3IEUoMSkscD1uZXcgRSgwKSx3PW5ldyBFKDApLEo9bmV3IEUoMSksbmU9MDtDLmlzRXZlbigpJiZTLmlzRXZlbigp'@; put 'OylDLml1c2hybigxKSxTLml1c2hybigxKSwrK25lO2Zvcih2YXIgZGU9Uy5jbG9uZSgpLGZlPUMuY2xvbmUoKTshQy5pc1plcm8oKTspe2Zvcih2YXIgeGU9MCxMZT0xOyEoQy53b3Jkc1swXSZMZSkmJnhlPDI2OysreGUsTGU8PD0xKTtpZih4ZT4wKWZvcihDLml1c2hybih4ZSk7eGUtLSA+'@; put 'MDspKHYuaXNPZGQoKXx8cC5pc09kZCgpKSYmKHYuaWFkZChkZSkscC5pc3ViKGZlKSksdi5pdXNocm4oMSkscC5pdXNocm4oMSk7Zm9yKHZhciBGZT0wLE9lPTE7IShTLndvcmRzWzBdJk9lKSYmRmU8MjY7KytGZSxPZTw8PTEpO2lmKEZlPjApZm9yKFMuaXVzaHJuKEZlKTtGZS0tID4wOyko'@; put 'dy5pc09kZCgpfHxKLmlzT2RkKCkpJiYody5pYWRkKGRlKSxKLmlzdWIoZmUpKSx3Lml1c2hybigxKSxKLml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHYuaXN1Yih3KSxwLmlzdWIoSikpOihTLmlzdWIoQyksdy5pc3ViKHYpLEouaXN1YihwKSl9cmV0dXJue2E6dyxiOkosZ2Nk'@; put 'OlMuaXVzaGxuKG5lKX19LEUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHYscD1uZXcgRSgxKSx3PW5l'@; put 'dyBFKDApLEo9Uy5jbG9uZSgpO0MuY21wbigxKT4wJiZTLmNtcG4oMSk+MDspe2Zvcih2YXIgbmU9MCxkZT0xOyEoQy53b3Jkc1swXSZkZSkmJm5lPDI2OysrbmUsZGU8PD0xKTtpZihuZT4wKWZvcihDLml1c2hybihuZSk7bmUtLSA+MDspcC5pc09kZCgpJiZwLmlhZGQoSikscC5pdXNocm4o'@; put 'MSk7Zm9yKHZhciBmZT0wLHhlPTE7IShTLndvcmRzWzBdJnhlKSYmZmU8MjY7KytmZSx4ZTw8PTEpO2lmKGZlPjApZm9yKFMuaXVzaHJuKGZlKTtmZS0tID4wOyl3LmlzT2RkKCkmJncuaWFkZChKKSx3Lml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHAuaXN1Yih3KSk6KFMuaXN1'@; put 'YihDKSx3LmlzdWIocCkpfXJldHVybih2PTA9PT1DLmNtcG4oMSk/cDp3KS5jbXBuKDApPDAmJnYuaWFkZChnKSx2fSxFLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMoKTtpZihnLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBD'@; put 'PXRoaXMuY2xvbmUoKSxTPWcuY2xvbmUoKTtDLm5lZ2F0aXZlPTAsUy5uZWdhdGl2ZT0wO2Zvcih2YXIgdj0wO0MuaXNFdmVuKCkmJlMuaXNFdmVuKCk7disrKUMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtDLmlzRXZlbigpOylDLml1c2hybigxKTtmb3IoO1MuaXNFdmVu'@; put 'KCk7KVMuaXVzaHJuKDEpO3ZhciBwPUMuY21wKFMpO2lmKHA8MCl7dmFyIHc9QztDPVMsUz13fWVsc2UgaWYoMD09PXB8fDA9PT1TLmNtcG4oMSkpYnJlYWs7Qy5pc3ViKFMpfXJldHVybiBTLml1c2hsbih2KX0sRS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5lZ2Nk'@; put 'KGcpLmEudW1vZChnKX0sRS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxFLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sRS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZyl7cmV0'@; put 'dXJuIHRoaXMud29yZHNbMF0mZ30sRS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciBDPWclMjYsUz0oZy1DKS8yNix2PTE8PEM7aWYodGhpcy5sZW5ndGg8PVMpcmV0dXJuIHRoaXMuX2V4cGFuZChTKzEpLHRoaXMud29yZHNbU118PXYsdGhp'@; put 'cztmb3IodmFyIHA9dix3PVM7MCE9PXAmJnc8dGhpcy5sZW5ndGg7dysrKXt2YXIgSj0wfHRoaXMud29yZHNbd107cD0oSis9cCk+Pj4yNix0aGlzLndvcmRzW3ddPUomPTY3MTA4ODYzfXJldHVybiAwIT09cCYmKHRoaXMud29yZHNbd109cCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3Rv'@; put 'dHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sRS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgQyxTPWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIVMpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJlMp'@; put 'cmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpQz0xO2Vsc2V7UyYmKGc9LWcpLEkoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHY9MHx0aGlzLndvcmRzWzBdO0M9dj09PWc/MDp2PGc/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtQzpD'@; put 'fSxFLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgQz10aGlzLnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZl'@; put 'PzB8LUM6Q30sRS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEM9MCxTPXRoaXMubGVuZ3RoLTE7Uz49MDtTLS0pe3ZhciB2PTB8dGhpcy53b3Jkc1tTXSxw'@; put 'PTB8Zy53b3Jkc1tTXTtpZih2IT09cCl7djxwP0M9LTE6dj5wJiYoQz0xKTticmVha319cmV0dXJuIEN9LEUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sRS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcChnKX0s'@; put 'RS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSxFLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSxFLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LEUucHJvdG90'@; put 'eXBlLmx0PWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LEUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sRS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKTw9MH0sRS5wcm90b3R5cGUuZXFuPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSxFLnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSxFLnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IEgoZyl9LEUucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlz'@; put 'LnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIEkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sRS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LEUucHJvdG90'@; put 'eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZEFkZCB3b3Jr'@; put 'cyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LEUucHJv'@; put 'dG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJU3ViIHdv'@; put 'cmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LEUucHJv'@; put 'dG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0'@; put 'dXJuIEkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBv'@; put 'bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LEUucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5f'@; put 'dmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlz'@; put 'KX0sRS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LEUucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigp'@; put 'e3JldHVybiBJKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93'@; put 'KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIGhlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdWUoZyxDKXt0aGlzLm5hbWU9Zyx0aGlzLnA9bmV3IEUoQywxNiksdGhpcy5u'@; put 'PXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IEUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIGNlKCl7dWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBHKCl7dWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBiKCl7dWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZm'@; put 'ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBEKCl7dWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlv'@; put 'biBIKGcpe2lmKCJzdHJpbmciPT10eXBlb2YgZyl7dmFyIEM9RS5fcHJpbWUoZyk7dGhpcy5tPUMucCx0aGlzLnByaW1lPUN9ZWxzZSBJKGcuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09Zyx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTihnKXtILmNh'@; put 'bGwodGhpcyxnKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBFKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmlu'@; put 'dj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXVlLnByb3RvdHlwZS5fdG1wPWZ1bmN0'@; put 'aW9uKCl7dmFyIGc9bmV3IEUobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSx1ZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgQyxTPWc7ZG97dGhpcy5zcGxpdChTLHRoaXMudG1wKSxDPShTPShTPXRoaXMuaW11bEsoUykp'@; put 'LmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShDPnRoaXMubik7dmFyIHY9Qzx0aGlzLm4/LTE6Uy51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT12PyhTLndvcmRzWzBdPTAsUy5sZW5ndGg9MSk6dj4wP1MuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVMuc3RyaXA/Uy5zdHJpcCgpOlMu'@; put 'X3N0cmlwKCksU30sdWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcsQyl7Zy5pdXNocm4odGhpcy5uLDAsQyl9LHVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LGsoY2UsdWUpLGNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLEMpe2Zv'@; put 'cih2YXIgUz00MTk0MzAzLHY9TWF0aC5taW4oZy5sZW5ndGgsOSkscD0wO3A8djtwKyspQy53b3Jkc1twXT1nLndvcmRzW3BdO2lmKEMubGVuZ3RoPXYsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcubGVuZ3RoPTEpO3ZhciB3PWcud29yZHNbOV07Zm9yKEMud29yZHNb'@; put 'Qy5sZW5ndGgrK109dyZTLHA9MTA7cDxnLmxlbmd0aDtwKyspe3ZhciBKPTB8Zy53b3Jkc1twXTtnLndvcmRzW3AtMTBdPShKJlMpPDw0fHc+Pj4yMix3PUp9Zy53b3Jkc1twLTEwXT13Pj4+PTIyLGcubGVuZ3RoLT0wPT09dyYmZy5sZW5ndGg+MTA/MTA6OX0sY2UucHJvdG90eXBlLmltdWxL'@; put 'PWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgQz0wLFM9MDtTPGcubGVuZ3RoO1MrKyl7dmFyIHY9MHxnLndvcmRzW1NdO2cud29yZHNbU109NjcxMDg4NjMmKEMrPTk3Nyp2KSxDPTY0KnYrKEMvNjcxMDg4'@; put 'NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sayhHLHVlKSxrKGIsdWUpLGsoRCx1ZSksRC5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPTAsUz0wO1M8Zy5s'@; put 'ZW5ndGg7UysrKXt2YXIgdj0xOSooMHxnLndvcmRzW1NdKStDLHA9NjcxMDg4NjMmdjt2Pj4+PTI2LGcud29yZHNbU109cCxDPXZ9cmV0dXJuIDAhPT1DJiYoZy53b3Jkc1tnLmxlbmd0aCsrXT1DKSxnfSxFLl9wcmltZT1mdW5jdGlvbihnKXtpZihoZVtnXSlyZXR1cm4gaGVbZ107dmFyIEM7'@; put 'aWYoImsyNTYiPT09ZylDPW5ldyBjZTtlbHNlIGlmKCJwMjI0Ij09PWcpQz1uZXcgRztlbHNlIGlmKCJwMTkyIj09PWcpQz1uZXcgYjtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitnKTtDPW5ldyBEfXJldHVybiBoZVtnXT1DLEN9LEgucHJv'@; put 'dG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGcpe0koMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLEMpe0koMD09KGcu'@; put 'bmVnYXRpdmV8Qy5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCYmZy5yZWQ9PT1DLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1lP3RoaXMu'@; put 'cHJpbWUuaXJlZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5h'@; put 'ZGQ9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5hZGQoQyk7cmV0dXJuIFMuY21wKHRoaXMubSk+PTAmJlMuaXN1Yih0aGlzLm0pLFMuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBT'@; put 'PWcuaWFkZChDKTtyZXR1cm4gUy5jbXAodGhpcy5tKT49MCYmUy5pc3ViKHRoaXMubSksU30sSC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksUy5fZm9yY2VSZWQo'@; put 'dGhpcyl9LEgucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5pc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksU30sSC5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoZyks'@; put 'dGhpcy5pbW9kKGcudXNobG4oQykpfSxILnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5pbXVsKEMpKX0sSC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmlt'@; put 'b2QoZy5tdWwoQykpfSxILnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxILnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LEgucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYoZy5pc1plcm8o'@; put 'KSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPXRoaXMubS5hbmRsbigzKTtpZihJKEMlMj09MSksMz09PUMpe3ZhciBTPXRoaXMubS5hZGQobmV3IEUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyxTKX1mb3IodmFyIHY9dGhpcy5tLnN1Ym4oMSkscD0wOyF2LmlzWmVybygpJiYwPT09'@; put 'di5hbmRsbigxKTspcCsrLHYuaXVzaHJuKDEpO0koIXYuaXNaZXJvKCkpO3ZhciB3PW5ldyBFKDEpLnRvUmVkKHRoaXMpLEo9dy5yZWROZWcoKSxuZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksZGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihkZT1uZXcgRSgyKmRlKmRlKS50b1JlZCh0aGlz'@; put 'KTswIT09dGhpcy5wb3coZGUsbmUpLmNtcChKKTspZGUucmVkSUFkZChKKTtmb3IodmFyIGZlPXRoaXMucG93KGRlLHYpLHhlPXRoaXMucG93KGcsdi5hZGRuKDEpLml1c2hybigxKSksTGU9dGhpcy5wb3coZyx2KSxGZT1wOzAhPT1MZS5jbXAodyk7KXtmb3IodmFyIE9lPUxlLGplPTA7MCE9'@; put 'PU9lLmNtcCh3KTtqZSsrKU9lPU9lLnJlZFNxcigpO0koamU8RmUpO3ZhciBXZT10aGlzLnBvdyhmZSxuZXcgRSgxKS5pdXNobG4oRmUtamUtMSkpO3hlPXhlLnJlZE11bChXZSksZmU9V2UucmVkU3FyKCksTGU9TGUucmVkTXVsKGZlKSxGZT1qZX1yZXR1cm4geGV9LEgucHJvdG90eXBlLmlu'@; put 'dm09ZnVuY3Rpb24oZyl7dmFyIEM9Zy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PUMubmVnYXRpdmU/KEMubmVnYXRpdmU9MCx0aGlzLmltb2QoQykucmVkTmVnKCkpOnRoaXMuaW1vZChDKX0sSC5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcsQyl7aWYoQy5pc1plcm8oKSlyZXR1cm4gbmV3'@; put 'IEUoMSkudG9SZWQodGhpcyk7aWYoMD09PUMuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBTPW5ldyBBcnJheSgxNik7U1swXT1uZXcgRSgxKS50b1JlZCh0aGlzKSxTWzFdPWc7Zm9yKHZhciB2PTI7djxTLmxlbmd0aDt2KyspU1t2XT10aGlzLm11bChTW3YtMV0sZyk7dmFyIHA9U1sw'@; put 'XSx3PTAsSj0wLG5lPUMuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1uZSYmKG5lPTI2KSx2PUMubGVuZ3RoLTE7dj49MDt2LS0pe2Zvcih2YXIgZGU9Qy53b3Jkc1t2XSxmZT1uZS0xO2ZlPj0wO2ZlLS0pe3ZhciB4ZT1kZT4+ZmUmMTtwIT09U1swXSYmKHA9dGhpcy5zcXIocCkpLDAhPT14ZXx8'@; put 'MCE9PXc/KHc8PD0xLHd8PXhlLCg0PT0rK0p8fDA9PT12JiYwPT09ZmUpJiYocD10aGlzLm11bChwLFNbd10pLEo9MCx3PTApKTpKPTB9bmU9MjZ9cmV0dXJuIHB9LEgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIgQz1nLnVtb2QodGhpcy5tKTtyZXR1cm4gQz09PWc/Qy5j'@; put 'bG9uZSgpOkN9LEgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPWcuY2xvbmUoKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxFLm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBOKGcpfSxrKE4sSCksTi5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3JldHVy'@; put 'biB0aGlzLmltb2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LE4ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5pc1pl'@; put 'cm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgUz1nLmltdWwoQyksdj1TLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxwPVMuaXN1Yih2KS5pdXNocm4odGhpcy5zaGlmdCks'@; put 'dz1wO3JldHVybiBwLmNtcCh0aGlzLm0pPj0wP3c9cC5pc3ViKHRoaXMubSk6cC5jbXBuKDApPDAmJih3PXAuaWFkZCh0aGlzLm0pKSx3Ll9mb3JjZVJlZCh0aGlzKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5pc1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gbmV3IEUo'@; put 'MCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBTPWcubXVsKEMpLHY9Uy5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscD1TLmlzdWIodikuaXVzaHJuKHRoaXMuc2hpZnQpLHc9cDtyZXR1cm4gcC5jbXAodGhpcy5tKT49MD93PXAu'@; put 'aXN1Yih0aGlzLm0pOnAuY21wbigwKTwwJiYodz1wLmlhZGQodGhpcy5tKSksdy5fZm9yY2VSZWQodGhpcyl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oTT1SLm5t'@; put 'ZChNKSx0aGlzKX0sOTc0NjpNPT57ZnVuY3Rpb24gTyhSLHope2lmKCFSKXRocm93IG5ldyBFcnJvcih6fHwiQXNzZXJ0aW9uIGZhaWxlZCIpfU0uZXhwb3J0cz1PLE8uZXF1YWw9ZnVuY3Rpb24oUix6LEspe2lmKFIhPXopdGhyb3cgbmV3IEVycm9yKEt8fCJBc3NlcnRpb24gZmFpbGVkOiAi'@; put 'K1IrIiAhPSAiK3opfX0sNDUwNDooTSxPKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgUj1PO2Z1bmN0aW9uIHooSSl7cmV0dXJuIDE9PT1JLmxlbmd0aD8iMCIrSTpJfWZ1bmN0aW9uIEsoSSl7Zm9yKHZhciBrPSIiLEU9MDtFPEkubGVuZ3RoO0UrKylrKz16KElbRV0udG9TdHJpbmcoMTYpKTtyZXR1'@; put 'cm4ga31SLnRvQXJyYXk9ZnVuY3Rpb24oSSxrKXtpZihBcnJheS5pc0FycmF5KEkpKXJldHVybiBJLnNsaWNlKCk7aWYoIUkpcmV0dXJuW107dmFyIEU9W107aWYoInN0cmluZyIhPXR5cGVvZiBJKXtmb3IodmFyIGo9MDtqPEkubGVuZ3RoO2orKylFW2pdPTB8SVtqXTtyZXR1cm4gRX1pZigi'@; put 'aGV4Ij09PWspZm9yKChJPUkucmVwbGFjZSgvW15hLXowLTldKy9naSwiIikpLmxlbmd0aCUyIT0wJiYoST0iMCIrSSksaj0wO2o8SS5sZW5ndGg7ais9MilFLnB1c2gocGFyc2VJbnQoSVtqXStJW2orMV0sMTYpKTtlbHNlIGZvcihqPTA7ajxJLmxlbmd0aDtqKyspe3ZhciBWPUkuY2hhckNv'@; put 'ZGVBdChqKSxCPVY+PjgsWT0yNTUmVjtCP0UucHVzaChCLFkpOkUucHVzaChZKX1yZXR1cm4gRX0sUi56ZXJvMj16LFIudG9IZXg9SyxSLmVuY29kZT1mdW5jdGlvbihJLGspe3JldHVybiJoZXgiPT09az9LKEkpOkl9fSwxMTcxOihNLE8sUik9Pnt2YXIgej1SKDUxMDgpO00uZXhwb3J0cz1l'@; put 'ZSxlZS5NaW5pbWF0Y2g9dGU7dmFyIEs9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFIoMjUyMCl9Y2F0Y2h7fX0oKXx8e3NlcDoiLyJ9O2VlLnNlcD1LLnNlcDt2YXIgST1lZS5HTE9CU1RBUj10ZS5HTE9CU1RBUj17fSxrPVIoMzY0NCksRT17IiEiOntvcGVuOiIoPzooPyEoPzoiLGNsb3NlOiIp'@; put 'KVteL10qPykifSwiPyI6e29wZW46Iig/OiIsY2xvc2U6Iik/In0sIisiOntvcGVuOiIoPzoiLGNsb3NlOiIpKyJ9LCIqIjp7b3BlbjoiKD86IixjbG9zZToiKSoifSwiQCI6e29wZW46Iig/OiIsY2xvc2U6IikifX0saj0iW14vXSIsVj1qKyIqPyIsWD0iKCkuKnt9Kz9bXV4kXFwhIi5zcGxp'@; put 'dCgiIikucmVkdWNlKGZ1bmN0aW9uKHVlLGNlKXtyZXR1cm4gdWVbY2VdPSEwLHVlfSx7fSksVT0vXC8rLztmdW5jdGlvbiBxKHVlLGNlKXtjZT1jZXx8e307dmFyIEc9e307cmV0dXJuIE9iamVjdC5rZXlzKHVlKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe0dbYl09dWVbYl19KSxPYmplY3Qua2V5'@; put 'cyhjZSkuZm9yRWFjaChmdW5jdGlvbihiKXtHW2JdPWNlW2JdfSksR31mdW5jdGlvbiBlZSh1ZSxjZSxHKXtyZXR1cm4gc2UoY2UpLEd8fChHPXt9KSwhKCFHLm5vY29tbWVudCYmIiMiPT09Y2UuY2hhckF0KDApKSYmbmV3IHRlKGNlLEcpLm1hdGNoKHVlKX1mdW5jdGlvbiB0ZSh1ZSxjZSl7'@; put 'aWYoISh0aGlzIGluc3RhbmNlb2YgdGUpKXJldHVybiBuZXcgdGUodWUsY2UpO3NlKHVlKSxjZXx8KGNlPXt9KSx1ZT11ZS50cmltKCksY2UuYWxsb3dXaW5kb3dzRXNjYXBlfHwiLyI9PT1LLnNlcHx8KHVlPXVlLnNwbGl0KEsuc2VwKS5qb2luKCIvIikpLHRoaXMub3B0aW9ucz1jZSx0aGlz'@; put 'LnNldD1bXSx0aGlzLnBhdHRlcm49dWUsdGhpcy5yZWdleHA9bnVsbCx0aGlzLm5lZ2F0ZT0hMSx0aGlzLmNvbW1lbnQ9ITEsdGhpcy5lbXB0eT0hMSx0aGlzLnBhcnRpYWw9ISFjZS5wYXJ0aWFsLHRoaXMubWFrZSgpfWZ1bmN0aW9uIG9lKHVlLGNlKXtyZXR1cm4gY2V8fChjZT10aGlzIGlu'@; put 'c3RhbmNlb2YgdGU/dGhpcy5vcHRpb25zOnt9KSxzZSh1ZT12b2lkIDA9PT11ZT90aGlzLnBhdHRlcm46dWUpLGNlLm5vYnJhY2V8fCEvXHsoPzooPyFceykuKSpcfS8udGVzdCh1ZSk/W3VlXTprKHVlKX1lZS5maWx0ZXI9ZnVuY3Rpb24odWUsY2Upe3JldHVybiBjZT1jZXx8e30sZnVuY3Rp'@; put 'b24oRyxiLEQpe3JldHVybiBlZShHLHVlLGNlKX19LGVlLmRlZmF1bHRzPWZ1bmN0aW9uKHVlKXtpZighdWV8fCJvYmplY3QiIT10eXBlb2YgdWV8fCFPYmplY3Qua2V5cyh1ZSkubGVuZ3RoKXJldHVybiBlZTt2YXIgY2U9ZWUsRz1mdW5jdGlvbihiLEQsSCl7cmV0dXJuIGNlKGIsRCxxKHVl'@; put 'LEgpKX07cmV0dXJuKEcuTWluaW1hdGNoPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIG5ldyBjZS5NaW5pbWF0Y2goYixxKHVlLEQpKX0pLmRlZmF1bHRzPWZ1bmN0aW9uKGIpe3JldHVybiBjZS5kZWZhdWx0cyhxKHVlLGIpKS5NaW5pbWF0Y2h9LEcuZmlsdGVyPWZ1bmN0aW9uKGIsRCl7cmV0dXJu'@; put 'IGNlLmZpbHRlcihiLHEodWUsRCkpfSxHLmRlZmF1bHRzPWZ1bmN0aW9uKGIpe3JldHVybiBjZS5kZWZhdWx0cyhxKHVlLGIpKX0sRy5tYWtlUmU9ZnVuY3Rpb24oYixEKXtyZXR1cm4gY2UubWFrZVJlKGIscSh1ZSxEKSl9LEcuYnJhY2VFeHBhbmQ9ZnVuY3Rpb24oYixEKXtyZXR1cm4gY2Uu'@; put 'YnJhY2VFeHBhbmQoYixxKHVlLEQpKX0sRy5tYXRjaD1mdW5jdGlvbihiLEQsSCl7cmV0dXJuIGNlLm1hdGNoKGIsRCxxKHVlLEgpKX0sR30sdGUuZGVmYXVsdHM9ZnVuY3Rpb24odWUpe3JldHVybiBlZS5kZWZhdWx0cyh1ZSkuTWluaW1hdGNofSx0ZS5wcm90b3R5cGUuZGVidWc9ZnVuY3Rp'@; put 'b24oKXt9LHRlLnByb3RvdHlwZS5tYWtlPWZ1bmN0aW9uKCl7dmFyIHVlPXRoaXMucGF0dGVybixjZT10aGlzLm9wdGlvbnM7aWYoY2Uubm9jb21tZW50fHwiIyIhPT11ZS5jaGFyQXQoMCkpaWYodWUpe3RoaXMucGFyc2VOZWdhdGUoKTt2YXIgRz10aGlzLmdsb2JTZXQ9dGhpcy5icmFjZUV4'@; put 'cGFuZCgpO2NlLmRlYnVnJiYodGhpcy5kZWJ1Zz1mdW5jdGlvbigpe3ouZXJyb3IuYXBwbHkoeixhcmd1bWVudHMpfSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sRyksRz10aGlzLmdsb2JQYXJ0cz1HLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5zcGxpdChVKX0pLHRoaXMuZGVidWcodGhp'@; put 'cy5wYXR0ZXJuLEcpLEc9Ry5tYXAoZnVuY3Rpb24oYixELEgpe3JldHVybiBiLm1hcCh0aGlzLnBhcnNlLHRoaXMpfSx0aGlzKSx0aGlzLmRlYnVnKHRoaXMucGF0dGVybixHKSxHPUcuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybi0xPT09Yi5pbmRleE9mKCExKX0pLHRoaXMuZGVidWcodGhp'@; put 'cy5wYXR0ZXJuLEcpLHRoaXMuc2V0PUd9ZWxzZSB0aGlzLmVtcHR5PSEwO2Vsc2UgdGhpcy5jb21tZW50PSEwfSx0ZS5wcm90b3R5cGUucGFyc2VOZWdhdGU9ZnVuY3Rpb24oKXt2YXIgdWU9dGhpcy5wYXR0ZXJuLGNlPSExLGI9MDtpZighdGhpcy5vcHRpb25zLm5vbmVnYXRlKXtmb3IodmFy'@; put 'IEQ9MCxIPXVlLmxlbmd0aDtEPEgmJiIhIj09PXVlLmNoYXJBdChEKTtEKyspY2U9IWNlLGIrKztiJiYodGhpcy5wYXR0ZXJuPXVlLnN1YnN0cihiKSksdGhpcy5uZWdhdGU9Y2V9fSxlZS5icmFjZUV4cGFuZD1mdW5jdGlvbih1ZSxjZSl7cmV0dXJuIG9lKHVlLGNlKX0sdGUucHJvdG90eXBl'@; put 'LmJyYWNlRXhwYW5kPW9lO3ZhciBzZT1mdW5jdGlvbih1ZSl7aWYoInN0cmluZyIhPXR5cGVvZiB1ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHBhdHRlcm4iKTtpZih1ZS5sZW5ndGg+NjU1MzYpdGhyb3cgbmV3IFR5cGVFcnJvcigicGF0dGVybiBpcyB0b28gbG9uZyIpfTt0ZS5w'@; put 'cm90b3R5cGUucGFyc2U9ZnVuY3Rpb24odWUsY2Upe3NlKHVlKTt2YXIgRz10aGlzLm9wdGlvbnM7aWYoIioqIj09PXVlKXtpZighRy5ub2dsb2JzdGFyKXJldHVybiBJO3VlPSIqIn1pZigiIj09PXVlKXJldHVybiIiO3ZhciBiLEQ9IiIsSD0hIUcubm9jYXNlLE49ITEsZz1bXSxDPVtdLFM9'@; put 'ITEsdj0tMSxwPS0xLHc9Ii4iPT09dWUuY2hhckF0KDApPyIiOkcuZG90PyIoPyEoPzpefFxcLylcXC57MSwyfSg/OiR8XFwvKSkiOiIoPyFcXC4pIixKPXRoaXM7ZnVuY3Rpb24gbmUoKXtpZihiKXtzd2l0Y2goYil7Y2FzZSIqIjpEKz1WLEg9ITA7YnJlYWs7Y2FzZSI/IjpEKz1qLEg9ITA7'@; put 'YnJlYWs7ZGVmYXVsdDpEKz0iXFwiK2J9Si5kZWJ1ZygiY2xlYXJTdGF0ZUNoYXIgJWogJWoiLGIsRCksYj0hMX19Zm9yKHZhciBkZSxmZT0wLHhlPXVlLmxlbmd0aDtmZTx4ZSYmKGRlPXVlLmNoYXJBdChmZSkpO2ZlKyspaWYodGhpcy5kZWJ1ZygiJXNcdCVzICVzICVqIix1ZSxmZSxELGRl'@; put 'KSxOJiZYW2RlXSlEKz0iXFwiK2RlLE49ITE7ZWxzZSBzd2l0Y2goZGUpe2Nhc2UiLyI6cmV0dXJuITE7Y2FzZSJcXCI6bmUoKSxOPSEwO2NvbnRpbnVlO2Nhc2UiPyI6Y2FzZSIqIjpjYXNlIisiOmNhc2UiQCI6Y2FzZSIhIjppZih0aGlzLmRlYnVnKCIlc1x0JXMgJXMgJWogPC0tIHN0YXRl'@; put 'Q2hhciIsdWUsZmUsRCxkZSksUyl7dGhpcy5kZWJ1ZygiICBpbiBjbGFzcyIpLCIhIj09PWRlJiZmZT09PXArMSYmKGRlPSJeIiksRCs9ZGU7Y29udGludWV9Si5kZWJ1ZygiY2FsbCBjbGVhclN0YXRlQ2hhciAlaiIsYiksbmUoKSxiPWRlLEcubm9leHQmJm5lKCk7Y29udGludWU7Y2FzZSIo'@; put 'IjppZihTKXtEKz0iKCI7Y29udGludWV9aWYoIWIpe0QrPSJcXCgiO2NvbnRpbnVlfWcucHVzaCh7dHlwZTpiLHN0YXJ0OmZlLTEscmVTdGFydDpELmxlbmd0aCxvcGVuOkVbYl0ub3BlbixjbG9zZTpFW2JdLmNsb3NlfSksdGhpcy5kZWJ1ZygicGxUeXBlICVqICVqIixiLEQrPSIhIj09PWI/'@; put 'Iig/Oig/ISg/OiI6Iig/OiIpLGI9ITE7Y29udGludWU7Y2FzZSIpIjppZihTfHwhZy5sZW5ndGgpe0QrPSJcXCkiO2NvbnRpbnVlfW5lKCksSD0hMDt2YXIgTGU9Zy5wb3AoKTtEKz1MZS5jbG9zZSwiISI9PT1MZS50eXBlJiZDLnB1c2goTGUpLExlLnJlRW5kPUQubGVuZ3RoO2NvbnRpbnVl'@; put 'O2Nhc2UifCI6aWYoU3x8IWcubGVuZ3RofHxOKXtEKz0iXFx8IixOPSExO2NvbnRpbnVlfW5lKCksRCs9InwiO2NvbnRpbnVlO2Nhc2UiWyI6aWYobmUoKSxTKXtEKz0iXFwiK2RlO2NvbnRpbnVlfVM9ITAscD1mZSx2PUQubGVuZ3RoLEQrPWRlO2NvbnRpbnVlO2Nhc2UiXSI6aWYoZmU9PT1w'@; put 'KzF8fCFTKXtEKz0iXFwiK2RlLE49ITE7Y29udGludWV9dmFyIEZlPXVlLnN1YnN0cmluZyhwKzEsZmUpO3RyeXtSZWdFeHAoIlsiK0ZlKyJdIil9Y2F0Y2h7dmFyIE9lPXRoaXMucGFyc2UoRmUsaGUpO0Q9RC5zdWJzdHIoMCx2KSsiXFxbIitPZVswXSsiXFxdIixIPUh8fE9lWzFdLFM9ITE7'@; put 'Y29udGludWV9SD0hMCxTPSExLEQrPWRlO2NvbnRpbnVlO2RlZmF1bHQ6bmUoKSxOP049ITE6IVhbZGVdfHwiXiI9PT1kZSYmU3x8KEQrPSJcXCIpLEQrPWRlfWZvcihTJiYoRmU9dWUuc3Vic3RyKHArMSksT2U9dGhpcy5wYXJzZShGZSxoZSksRD1ELnN1YnN0cigwLHYpKyJcXFsiK09lWzBd'@; put 'LEg9SHx8T2VbMV0pLExlPWcucG9wKCk7TGU7TGU9Zy5wb3AoKSl7dmFyIGplPUQuc2xpY2UoTGUucmVTdGFydCtMZS5vcGVuLmxlbmd0aCk7dGhpcy5kZWJ1Zygic2V0dGluZyB0YWlsIixELExlKSxqZT1qZS5yZXBsYWNlKC8oKD86XFx7Mn0pezAsNjR9KShcXD8pXHwvZyxmdW5jdGlvbihN'@; put 'ZSxEZSx6ZSl7cmV0dXJuIHplfHwoemU9IlxcIiksRGUrRGUremUrInwifSksdGhpcy5kZWJ1ZygidGFpbD0lalxuICAgJXMiLGplLGplLExlLEQpO3ZhciBXZT0iKiI9PT1MZS50eXBlP1Y6Ij8iPT09TGUudHlwZT9qOiJcXCIrTGUudHlwZTtIPSEwLEQ9RC5zbGljZSgwLExlLnJlU3RhcnQp'@; put 'K1dlKyJcXCgiK2plfW5lKCksTiYmKEQrPSJcXFxcIik7dmFyIEtlPSExO3N3aXRjaChELmNoYXJBdCgwKSl7Y2FzZSJbIjpjYXNlIi4iOmNhc2UiKCI6S2U9ITB9Zm9yKHZhciBZZT1DLmxlbmd0aC0xO1llPi0xO1llLS0pe3ZhciBRZT1DW1llXSxsdD1ELnNsaWNlKDAsUWUucmVTdGFydCks'@; put 'UGU9RC5zbGljZShRZS5yZVN0YXJ0LFFlLnJlRW5kLTgpLGJlPUQuc2xpY2UoUWUucmVFbmQtOCxRZS5yZUVuZCksQWU9RC5zbGljZShRZS5yZUVuZCk7YmUrPUFlO3ZhciBUZT1sdC5zcGxpdCgiKCIpLmxlbmd0aC0xLHFlPUFlO2ZvcihmZT0wO2ZlPFRlO2ZlKyspcWU9cWUucmVwbGFjZSgv'@; put 'XClbKyo/XT8vLCIiKTt2YXIgWGU9IiI7IiI9PT0oQWU9cWUpJiZjZSE9PWhlJiYoWGU9IiQiKSxEPWx0K1BlK0FlK1hlK2JlfWlmKCIiIT09RCYmSCYmKEQ9Iig/PS4pIitEKSxLZSYmKEQ9dytEKSxjZT09PWhlKXJldHVybltELEhdO2lmKCFIKXJldHVybiB1ZS5yZXBsYWNlKC9cXCguKS9n'@; put 'LCIkMSIpO3ZhciBVZT1HLm5vY2FzZT8iaSI6IiI7dHJ5e3ZhciBodD1uZXcgUmVnRXhwKCJeIitEKyIkIixVZSl9Y2F0Y2h7cmV0dXJuIG5ldyBSZWdFeHAoIiQuIil9cmV0dXJuIGh0Ll9nbG9iPXVlLGh0Ll9zcmM9RCxodH07dmFyIGhlPXt9O2VlLm1ha2VSZT1mdW5jdGlvbih1ZSxjZSl7'@; put 'cmV0dXJuIG5ldyB0ZSh1ZSxjZXx8e30pLm1ha2VSZSgpfSx0ZS5wcm90b3R5cGUubWFrZVJlPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWdleHB8fCExPT09dGhpcy5yZWdleHApcmV0dXJuIHRoaXMucmVnZXhwO3ZhciB1ZT10aGlzLnNldDtpZighdWUubGVuZ3RoKXJldHVybiB0aGlzLnJlZ2V4'@; put 'cD0hMSx0aGlzLnJlZ2V4cDt2YXIgY2U9dGhpcy5vcHRpb25zLEc9Y2Uubm9nbG9ic3Rhcj9WOmNlLmRvdD8iKD86KD8hKD86XFwvfF4pKD86XFwuezEsMn0pKCR8XFwvKSkuKSo/IjoiKD86KD8hKD86XFwvfF4pXFwuKS4pKj8iLGI9Y2Uubm9jYXNlPyJpIjoiIixEPXVlLm1hcChmdW5jdGlv'@; put 'bihIKXtyZXR1cm4gSC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE49PT1JP0c6InN0cmluZyI9PXR5cGVvZiBOP04ucmVwbGFjZSgvWy1bXF17fSgpKis/LixcXF4kfCNcc10vZywiXFwkJiIpOk4uX3NyY30pLmpvaW4oIlxcLyIpfSkuam9pbigifCIpO0Q9Il4oPzoiK0QrIikkIix0aGlzLm5l'@; put 'Z2F0ZSYmKEQ9Il4oPyEiK0QrIikuKiQiKTt0cnl7dGhpcy5yZWdleHA9bmV3IFJlZ0V4cChELGIpfWNhdGNoe3RoaXMucmVnZXhwPSExfXJldHVybiB0aGlzLnJlZ2V4cH0sZWUubWF0Y2g9ZnVuY3Rpb24odWUsY2UsRyl7dmFyIGI9bmV3IHRlKGNlLEc9R3x8e30pO3JldHVybiB1ZT11ZS5m'@; put 'aWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIGIubWF0Y2goRCl9KSxiLm9wdGlvbnMubm9udWxsJiYhdWUubGVuZ3RoJiZ1ZS5wdXNoKGNlKSx1ZX0sdGUucHJvdG90eXBlLm1hdGNoPWZ1bmN0aW9uKHVlLGNlKXtpZih2b2lkIDA9PT1jZSYmKGNlPXRoaXMucGFydGlhbCksdGhpcy5kZWJ1Zygi'@; put 'bWF0Y2giLHVlLHRoaXMucGF0dGVybiksdGhpcy5jb21tZW50KXJldHVybiExO2lmKHRoaXMuZW1wdHkpcmV0dXJuIiI9PT11ZTtpZigiLyI9PT11ZSYmY2UpcmV0dXJuITA7dmFyIEc9dGhpcy5vcHRpb25zOyIvIiE9PUsuc2VwJiYodWU9dWUuc3BsaXQoSy5zZXApLmpvaW4oIi8iKSksdWU9'@; put 'dWUuc3BsaXQoVSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sInNwbGl0Iix1ZSk7dmFyIGIsRCxIPXRoaXMuc2V0O2Zvcih0aGlzLmRlYnVnKHRoaXMucGF0dGVybiwic2V0IixIKSxEPXVlLmxlbmd0aC0xO0Q+PTAmJiEoYj11ZVtEXSk7RC0tKTtmb3IoRD0wO0Q8SC5sZW5ndGg7RCsrKXt2'@; put 'YXIgTj1IW0RdLGc9dWU7aWYoRy5tYXRjaEJhc2UmJjE9PT1OLmxlbmd0aCYmKGc9W2JdKSx0aGlzLm1hdGNoT25lKGcsTixjZSkpcmV0dXJuISFHLmZsaXBOZWdhdGV8fCF0aGlzLm5lZ2F0ZX1yZXR1cm4hRy5mbGlwTmVnYXRlJiZ0aGlzLm5lZ2F0ZX0sdGUucHJvdG90eXBlLm1hdGNoT25l'@; put 'PWZ1bmN0aW9uKHVlLGNlLEcpe3ZhciBiPXRoaXMub3B0aW9uczt0aGlzLmRlYnVnKCJtYXRjaE9uZSIse3RoaXM6dGhpcyxmaWxlOnVlLHBhdHRlcm46Y2V9KSx0aGlzLmRlYnVnKCJtYXRjaE9uZSIsdWUubGVuZ3RoLGNlLmxlbmd0aCk7Zm9yKHZhciBEPTAsSD0wLE49dWUubGVuZ3RoLGc9'@; put 'Y2UubGVuZ3RoO0Q8TiYmSDxnO0QrKyxIKyspe3RoaXMuZGVidWcoIm1hdGNoT25lIGxvb3AiKTt2YXIgQyxTPWNlW0hdLHY9dWVbRF07aWYodGhpcy5kZWJ1ZyhjZSxTLHYpLCExPT09UylyZXR1cm4hMTtpZihTPT09SSl7dGhpcy5kZWJ1ZygiR0xPQlNUQVIiLFtjZSxTLHZdKTt2YXIgcD1E'@; put 'LHc9SCsxO2lmKHc9PT1nKXtmb3IodGhpcy5kZWJ1ZygiKiogYXQgdGhlIGVuZCIpO0Q8TjtEKyspaWYoIi4iPT09dWVbRF18fCIuLiI9PT11ZVtEXXx8IWIuZG90JiYiLiI9PT11ZVtEXS5jaGFyQXQoMCkpcmV0dXJuITE7cmV0dXJuITB9Zm9yKDtwPE47KXt2YXIgSj11ZVtwXTtpZih0aGlz'@; put 'LmRlYnVnKCJcbmdsb2JzdGFyIHdoaWxlIix1ZSxwLGNlLHcsSiksdGhpcy5tYXRjaE9uZSh1ZS5zbGljZShwKSxjZS5zbGljZSh3KSxHKSlyZXR1cm4gdGhpcy5kZWJ1ZygiZ2xvYnN0YXIgZm91bmQgbWF0Y2ghIixwLE4sSiksITA7aWYoIi4iPT09Snx8Ii4uIj09PUp8fCFiLmRvdCYmIi4i'@; put 'PT09Si5jaGFyQXQoMCkpe3RoaXMuZGVidWcoImRvdCBkZXRlY3RlZCEiLHVlLHAsY2Usdyk7YnJlYWt9dGhpcy5kZWJ1ZygiZ2xvYnN0YXIgc3dhbGxvdyBhIHNlZ21lbnQsIGFuZCBjb250aW51ZSIpLHArK31yZXR1cm4hKCFHfHwodGhpcy5kZWJ1ZygiXG4+Pj4gbm8gbWF0Y2gsIHBhcnRp'@; put 'YWw/Iix1ZSxwLGNlLHcpLHAhPT1OKSl9aWYoInN0cmluZyI9PXR5cGVvZiBTP3RoaXMuZGVidWcoInN0cmluZyBtYXRjaCIsUyx2LEM9dj09PVMpOihDPXYubWF0Y2goUyksdGhpcy5kZWJ1ZygicGF0dGVybiBtYXRjaCIsUyx2LEMpKSwhQylyZXR1cm4hMX1pZihEPT09TiYmSD09PWcpcmV0'@; put 'dXJuITA7aWYoRD09PU4pcmV0dXJuIEc7aWYoSD09PWcpcmV0dXJuIEQ9PT1OLTEmJiIiPT09dWVbRF07dGhyb3cgbmV3IEVycm9yKCJ3dGY/Iil9fSw0MjQ0Ok09PnsidXNlIHN0cmljdCI7dmFyIE89ZnVuY3Rpb24oUil7cmV0dXJuIFIhPVJ9O00uZXhwb3J0cz1mdW5jdGlvbihSLHope3Jl'@; put 'dHVybiAwPT09UiYmMD09PXo/MS9SPT0xL3o6Uj09PXp8fCEoIU8oUil8fCFPKHopKX19LDYwOTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDI4OSksSz1SKDU1NTkpLEk9Uig0MjQ0KSxrPVIoNTYyNCksRT1SKDIyODEpLGo9SyhrKCksT2JqZWN0KTt6KGose2dldFBvbHlmaWxs'@; put 'OmssaW1wbGVtZW50YXRpb246SSxzaGltOkV9KSxNLmV4cG9ydHM9an0sNTYyNDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDI0NCk7TS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6en19LDIyODE6KE0sTyxS'@; put 'KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDU2MjQpLEs9Uig0Mjg5KTtNLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgST16KCk7cmV0dXJuIEsoT2JqZWN0LHtpczpJfSx7aXM6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmlzIT09SX19KSxJfX0sODk4NzooTSxPLFIpPT57InVzZSBzdHJpY3Qi'@; put 'O3ZhciB6O2lmKCFPYmplY3Qua2V5cyl7dmFyIEs9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxJPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaz1SKDE0MTQpLEU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxqPSFFLmNhbGwoe3RvU3RyaW5nOm51bGx9'@; put 'LCJ0b1N0cmluZyIpLFY9RS5jYWxsKGZ1bmN0aW9uKCl7fSwicHJvdG90eXBlIiksQj1bInRvU3RyaW5nIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZU9mIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJjb25zdHJ1Y3RvciJdLFk9ZnVu'@; put 'Y3Rpb24ocSl7dmFyIGVlPXEuY29uc3RydWN0b3I7cmV0dXJuIGVlJiZlZS5wcm90b3R5cGU9PT1xfSxYPXskYXBwbGljYXRpb25DYWNoZTohMCwkY29uc29sZTohMCwkZXh0ZXJuYWw6ITAsJGZyYW1lOiEwLCRmcmFtZUVsZW1lbnQ6ITAsJGZyYW1lczohMCwkaW5uZXJIZWlnaHQ6ITAsJGlu'@; put 'bmVyV2lkdGg6ITAsJG9ubW96ZnVsbHNjcmVlbmNoYW5nZTohMCwkb25tb3pmdWxsc2NyZWVuZXJyb3I6ITAsJG91dGVySGVpZ2h0OiEwLCRvdXRlcldpZHRoOiEwLCRwYWdlWE9mZnNldDohMCwkcGFnZVlPZmZzZXQ6ITAsJHBhcmVudDohMCwkc2Nyb2xsTGVmdDohMCwkc2Nyb2xsVG9wOiEw'@; put 'LCRzY3JvbGxYOiEwLCRzY3JvbGxZOiEwLCRzZWxmOiEwLCR3ZWJraXRJbmRleGVkREI6ITAsJHdlYmtpdFN0b3JhZ2VJbmZvOiEwLCR3aW5kb3c6ITB9LFU9ZnVuY3Rpb24oKXtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4hMTtmb3IodmFyIHEgaW4gd2luZG93KXRyeXtpZighWFsiJCIr'@; put 'cV0mJksuY2FsbCh3aW5kb3cscSkmJm51bGwhPT13aW5kb3dbcV0mJiJvYmplY3QiPT10eXBlb2Ygd2luZG93W3FdKXRyeXtZKHdpbmRvd1txXSl9Y2F0Y2h7cmV0dXJuITB9fWNhdGNoe3JldHVybiEwfXJldHVybiExfSgpO3o9ZnVuY3Rpb24ocSl7dmFyIGVlPW51bGwhPT1xJiYib2JqZWN0'@; put 'Ij09dHlwZW9mIHEsdGU9IltvYmplY3QgRnVuY3Rpb25dIj09PUkuY2FsbChxKSxvZT1rKHEpLHNlPWVlJiYiW29iamVjdCBTdHJpbmddIj09PUkuY2FsbChxKSxoZT1bXTtpZighZWUmJiF0ZSYmIW9lKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdC5rZXlzIGNhbGxlZCBvbiBhIG5vbi1v'@; put 'YmplY3QiKTt2YXIgdWU9ViYmdGU7aWYoc2UmJnEubGVuZ3RoPjAmJiFLLmNhbGwocSwwKSlmb3IodmFyIGNlPTA7Y2U8cS5sZW5ndGg7KytjZSloZS5wdXNoKFN0cmluZyhjZSkpO2lmKG9lJiZxLmxlbmd0aD4wKWZvcih2YXIgRz0wO0c8cS5sZW5ndGg7KytHKWhlLnB1c2goU3RyaW5nKEcp'@; put 'KTtlbHNlIGZvcih2YXIgYiBpbiBxKXVlJiYicHJvdG90eXBlIj09PWJ8fCFLLmNhbGwocSxiKXx8aGUucHVzaChTdHJpbmcoYikpO2lmKGopZm9yKHZhciBEPWZ1bmN0aW9uKE4pe2lmKHR5cGVvZiB3aW5kb3c+InUifHwhVSlyZXR1cm4gWShOKTt0cnl7cmV0dXJuIFkoTil9Y2F0Y2h7cmV0'@; put 'dXJuITF9fShxKSxIPTA7SDxCLmxlbmd0aDsrK0gpRCYmImNvbnN0cnVjdG9yIj09PUJbSF18fCFLLmNhbGwocSxCW0hdKXx8aGUucHVzaChCW0hdKTtyZXR1cm4gaGV9fU0uZXhwb3J0cz16fSwyMjE1OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9QXJyYXkucHJvdG90eXBlLnNsaWNl'@; put 'LEs9UigxNDE0KSxJPU9iamVjdC5rZXlzLGs9ST9mdW5jdGlvbihqKXtyZXR1cm4gSShqKX06Uig4OTg3KSxFPU9iamVjdC5rZXlzO2suc2hpbT1mdW5jdGlvbigpe2lmKE9iamVjdC5rZXlzKXt2YXIgaj1mdW5jdGlvbigpe3ZhciBWPU9iamVjdC5rZXlzKGFyZ3VtZW50cyk7cmV0dXJuIFYm'@; put 'JlYubGVuZ3RoPT09YXJndW1lbnRzLmxlbmd0aH0oMSwyKTtqfHwoT2JqZWN0LmtleXM9ZnVuY3Rpb24oVil7cmV0dXJuIEsoVik/RSh6LmNhbGwoVikpOkUoVil9KX1lbHNlIE9iamVjdC5rZXlzPWs7cmV0dXJuIE9iamVjdC5rZXlzfHxrfSxNLmV4cG9ydHM9a30sMTQxNDpNPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBPPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7TS5leHBvcnRzPWZ1bmN0aW9uKFIpe3ZhciB6PU8uY2FsbChSKSxLPSJbb2JqZWN0IEFyZ3VtZW50c10iPT09ejtyZXR1cm4gS3x8KEs9IltvYmplY3QgQXJyYXldIiE9PXomJm51bGwhPT1SJiYib2JqZWN0Ij09dHlwZW9m'@; put 'IFImJiJudW1iZXIiPT10eXBlb2YgUi5sZW5ndGgmJlIubGVuZ3RoPj0wJiYiW29iamVjdCBGdW5jdGlvbl0iPT09Ty5jYWxsKFIuY2FsbGVlKSksS319LDc3ODooTSxPLFIpPT57dmFyIHo9UigyNDc5KTtmdW5jdGlvbiBLKGspe3ZhciBFPWZ1bmN0aW9uKCl7cmV0dXJuIEUuY2FsbGVkP0Uu'@; put 'dmFsdWU6KEUuY2FsbGVkPSEwLEUudmFsdWU9ay5hcHBseSh0aGlzLGFyZ3VtZW50cykpfTtyZXR1cm4gRS5jYWxsZWQ9ITEsRX1mdW5jdGlvbiBJKGspe3ZhciBFPWZ1bmN0aW9uKCl7aWYoRS5jYWxsZWQpdGhyb3cgbmV3IEVycm9yKEUub25jZUVycm9yKTtyZXR1cm4gRS5jYWxsZWQ9ITAs'@; put 'RS52YWx1ZT1rLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cmV0dXJuIEUub25jZUVycm9yPShrLm5hbWV8fCJGdW5jdGlvbiB3cmFwcGVkIHdpdGggYG9uY2VgIikrIiBzaG91bGRuJ3QgYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlIixFLmNhbGxlZD0hMSxFfU0uZXhwb3J0cz16KEspLE0uZXhw'@; put 'b3J0cy5zdHJpY3Q9eihJKSxLLnByb3RvPUsoZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoRnVuY3Rpb24ucHJvdG90eXBlLCJvbmNlIix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzKX0sY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0'@; put 'aW9uLnByb3RvdHlwZSwib25jZVN0cmljdCIse3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9LDc0MzU6KE0sTyk9PntPLmVuZGlhbm5lc3M9ZnVuY3Rpb24oKXtyZXR1cm4iTEUifSxPLmhvc3RuYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVv'@; put 'ZiBsb2NhdGlvbjwidSI/bG9jYXRpb24uaG9zdG5hbWU6IiJ9LE8ubG9hZGF2Zz1mdW5jdGlvbigpe3JldHVybltdfSxPLnVwdGltZT1mdW5jdGlvbigpe3JldHVybiAwfSxPLmZyZWVtZW09ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLk1BWF9WQUxVRX0sTy50b3RhbG1lbT1mdW5jdGlvbigp'@; put 'e3JldHVybiBOdW1iZXIuTUFYX1ZBTFVFfSxPLmNwdXM9ZnVuY3Rpb24oKXtyZXR1cm5bXX0sTy50eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIkJyb3dzZXIifSxPLnJlbGVhc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSI/bmF2aWdhdG9yLmFwcFZlcnNpb246IiJ9LE8u'@; put 'bmV0d29ya0ludGVyZmFjZXM9Ty5nZXROZXR3b3JrSW50ZXJmYWNlcz1mdW5jdGlvbigpe3JldHVybnt9fSxPLmFyY2g9ZnVuY3Rpb24oKXtyZXR1cm4iamF2YXNjcmlwdCJ9LE8ucGxhdGZvcm09ZnVuY3Rpb24oKXtyZXR1cm4iYnJvd3NlciJ9LE8udG1wZGlyPU8udG1wRGlyPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIi90bXAifSxPLkVPTD0iXG4iLE8uaG9tZWRpcj1mdW5jdGlvbigpe3JldHVybiIvIn19LDI4MTg6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDk4MDkpO08uY2VydGlmaWNhdGU9UigxOTM0KTt2YXIgSz16LmRlZmluZSgiUlNBUHJpdmF0ZUtleSIsZnVuY3Rpb24o'@; put 'KXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhpcy5rZXkoInB1YmxpY0V4cG9uZW50IikuaW50KCksdGhpcy5rZXkoInByaXZhdGVFeHBvbmVudCIpLmludCgpLHRoaXMua2V5KCJwcmltZTEiKS5pbnQoKSx0aGlz'@; put 'LmtleSgicHJpbWUyIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MSIpLmludCgpLHRoaXMua2V5KCJleHBvbmVudDIiKS5pbnQoKSx0aGlzLmtleSgiY29lZmZpY2llbnQiKS5pbnQoKSl9KTtPLlJTQVByaXZhdGVLZXk9Szt2YXIgST16LmRlZmluZSgiUlNBUHVibGljS2V5IixmdW5jdGlv'@; put 'bigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhpcy5rZXkoInB1YmxpY0V4cG9uZW50IikuaW50KCkpfSk7Ty5SU0FQdWJsaWNLZXk9STt2YXIgaz16LmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhp'@; put 'cy5rZXkoImFsZ29yaXRobSIpLnVzZShFKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleSIpLmJpdHN0cigpKX0pO08uUHVibGljS2V5PWs7dmFyIEU9ei5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIp'@; put 'Lm9iamlkKCksdGhpcy5rZXkoIm5vbmUiKS5udWxsXygpLm9wdGlvbmFsKCksdGhpcy5rZXkoImN1cnZlIikub2JqaWQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInAiKS5pbnQoKSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIiku'@; put 'aW50KCkpLm9wdGlvbmFsKCkpfSksaj16LmRlZmluZSgiUHJpdmF0ZUtleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKEUpLHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0'@; put 'cigpKX0pO08uUHJpdmF0ZUtleT1qO3ZhciBWPXouZGVmaW5lKCJFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImRlY3J5cHQiKS5z'@; put 'ZXEoKS5vYmoodGhpcy5rZXkoImtkZSIpLnNlcSgpLm9iaih0aGlzLmtleSgiaWQiKS5vYmppZCgpLHRoaXMua2V5KCJrZGVwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInNhbHQiKS5vY3RzdHIoKSx0aGlzLmtleSgiaXRlcnMiKS5pbnQoKSkpLHRoaXMua2V5KCJjaXBoZXIiKS5zZXEo'@; put 'KS5vYmoodGhpcy5rZXkoImFsZ28iKS5vYmppZCgpLHRoaXMua2V5KCJpdiIpLm9jdHN0cigpKSkpLHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO08uRW5jcnlwdGVkUHJpdmF0ZUtleT1WO3ZhciBCPXouZGVmaW5lKCJEU0FQcml2YXRlS2V5IixmdW5jdGlvbigp'@; put 'e3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInAiKS5pbnQoKSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIikuaW50KCksdGhpcy5rZXkoInB1Yl9rZXkiKS5pbnQoKSx0aGlzLmtleSgicHJpdl9rZXkiKS5pbnQoKSl9KTtPLkRTQVBy'@; put 'aXZhdGVLZXk9QixPLkRTQXBhcmFtPXouZGVmaW5lKCJEU0FwYXJhbSIsZnVuY3Rpb24oKXt0aGlzLmludCgpfSk7dmFyIFk9ei5kZWZpbmUoIkVDUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJwcml2YXRl'@; put 'S2V5Iikub2N0c3RyKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDApLnVzZShYKSx0aGlzLmtleSgicHVibGljS2V5Iikub3B0aW9uYWwoKS5leHBsaWNpdCgxKS5iaXRzdHIoKSl9KTtPLkVDUHJpdmF0ZUtleT1ZO3ZhciBYPXouZGVmaW5lKCJFQ1BhcmFt'@; put 'ZXRlcnMiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe25hbWVkQ3VydmU6dGhpcy5vYmppZCgpfSl9KTtPLnNpZ25hdHVyZT16LmRlZmluZSgic2lnbmF0dXJlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJyIikuaW50KCksdGhpcy5rZXkoInMiKS5pbnQoKSl9KX0sMTkz'@; put 'NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoOTgwOSksSz16LmRlZmluZSgiVGltZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7dXRjVGltZTp0aGlzLnV0Y3RpbWUoKSxnZW5lcmFsVGltZTp0aGlzLmdlbnRpbWUoKX0pfSksST16LmRlZmluZSgiQXR0cmlidXRlVHlwZVZhbHVl'@; put 'IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0eXBlIikub2JqaWQoKSx0aGlzLmtleSgidmFsdWUiKS5hbnkoKSl9KSxrPXouZGVmaW5lKCJBbGdvcml0aG1JZGVudGlmaWVyIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5vYmpp'@; put 'ZCgpLHRoaXMua2V5KCJwYXJhbWV0ZXJzIikub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCkpfSksRT16LmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShr'@; put 'KSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleSIpLmJpdHN0cigpKX0pLGo9ei5kZWZpbmUoIlJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXRvZihJKX0pLFY9ei5kZWZpbmUoIlJETlNlcXVlbmNlIixmdW5jdGlvbigpe3RoaXMuc2Vxb2Yoail9KSxCPXou'@; put 'ZGVmaW5lKCJOYW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHtyZG5TZXF1ZW5jZTp0aGlzLnVzZShWKX0pfSksWT16LmRlZmluZSgiVmFsaWRpdHkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoIm5vdEJlZm9yZSIpLnVzZShLKSx0aGlzLmtleSgibm90QWZ0ZXIiKS51'@; put 'c2UoSykpfSksWD16LmRlZmluZSgiRXh0ZW5zaW9uIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJleHRuSUQiKS5vYmppZCgpLHRoaXMua2V5KCJjcml0aWNhbCIpLmJvb2woKS5kZWYoITEpLHRoaXMua2V5KCJleHRuVmFsdWUiKS5vY3RzdHIoKSl9KSxVPXouZGVmaW5l'@; put 'KCJUQlNDZXJ0aWZpY2F0ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmV4cGxpY2l0KDApLmludCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInNlcmlhbE51bWJlciIpLmludCgpLHRoaXMua2V5KCJzaWduYXR1cmUiKS51c2UoayksdGhpcy5rZXkoImlz'@; put 'c3VlciIpLnVzZShCKSx0aGlzLmtleSgidmFsaWRpdHkiKS51c2UoWSksdGhpcy5rZXkoInN1YmplY3QiKS51c2UoQiksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXlJbmZvIikudXNlKEUpLHRoaXMua2V5KCJpc3N1ZXJVbmlxdWVJRCIpLmltcGxpY2l0KDEpLmJpdHN0cigpLm9wdGlvbmFs'@; put 'KCksdGhpcy5rZXkoInN1YmplY3RVbmlxdWVJRCIpLmltcGxpY2l0KDIpLmJpdHN0cigpLm9wdGlvbmFsKCksdGhpcy5rZXkoImV4dGVuc2lvbnMiKS5leHBsaWNpdCgzKS5zZXFvZihYKS5vcHRpb25hbCgpKX0pLHE9ei5kZWZpbmUoIlg1MDlDZXJ0aWZpY2F0ZSIsZnVuY3Rpb24oKXt0aGlz'@; put 'LnNlcSgpLm9iaih0aGlzLmtleSgidGJzQ2VydGlmaWNhdGUiKS51c2UoVSksdGhpcy5rZXkoInNpZ25hdHVyZUFsZ29yaXRobSIpLnVzZShrKSx0aGlzLmtleSgic2lnbmF0dXJlVmFsdWUiKS5iaXRzdHIoKSl9KTtNLmV4cG9ydHM9cX0sNzYzMTooTSxPLFIpPT57dmFyIHo9L1Byb2MtVHlw'@; put 'ZTogNCxFTkNSWVBURURbXG5ccl0rREVLLUluZm86IEFFUy0oKD86MTI4KXwoPzoxOTIpfCg/OjI1NikpLUNCQywoWzAtOUEtSF0rKVtcblxyXSsoWzAtOUEtelxuXHIrLz1dKylbXG5ccl0rL20sSz0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tL20sST0vXi0t'@; put 'LS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tKFswLTlBLXpcblxyKy89XSspLS0tLS1FTkQgXDEtLS0tLSQvbSxrPVIoMzA0OCksRT1SKDQ2OTYpLGo9Uig5NTA5KS5CdWZmZXI7TS5leHBvcnRzPWZ1bmN0aW9uKFYsQil7dmFyIFksWD1WLnRvU3RyaW5nKCksVT1YLm1h'@; put 'dGNoKHopO2lmKFUpe3ZhciBxPSJhZXMiK1VbMV0sZWU9ai5mcm9tKFVbMl0sImhleCIpLHRlPWouZnJvbShVWzNdLnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0Iiksb2U9ayhCLGVlLnNsaWNlKDAsOCkscGFyc2VJbnQoVVsxXSwxMCkpLmtleSxzZT1bXSxoZT1FLmNyZWF0ZURlY2lw'@; put 'aGVyaXYocSxvZSxlZSk7c2UucHVzaChoZS51cGRhdGUodGUpKSxzZS5wdXNoKGhlLmZpbmFsKCkpLFk9ai5jb25jYXQoc2UpfWVsc2V7dmFyIHVlPVgubWF0Y2goSSk7WT1qLmZyb20odWVbMl0ucmVwbGFjZSgvW1xyXG5dL2csIiIpLCJiYXNlNjQiKX1yZXR1cm57dGFnOlgubWF0Y2goSylb'@; put 'MV0sZGF0YTpZfX19LDk4MDooTSxPLFIpPT57dmFyIHo9UigyODE4KSxLPVIoMjU2MiksST1SKDc2MzEpLGs9Uig0Njk2KSxFPVIoNTYzMiksaj1SKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBWKEIpe3ZhciBZOyJvYmplY3QiIT10eXBlb2YgQnx8ai5pc0J1ZmZlcihCKXx8KFk9Qi5wYXNzcGhy'@; put 'YXNlLEI9Qi5rZXkpLCJzdHJpbmciPT10eXBlb2YgQiYmKEI9ai5mcm9tKEIpKTt2YXIgWCxVLG9lLHNlLGhlLHVlLGNlLEcsYixELEgsTixnLHE9SShCLFkpLGVlPXEudGFnLHRlPXEuZGF0YTtzd2l0Y2goZWUpe2Nhc2UiQ0VSVElGSUNBVEUiOlU9ei5jZXJ0aWZpY2F0ZS5kZWNvZGUodGUs'@; put 'ImRlciIpLnRic0NlcnRpZmljYXRlLnN1YmplY3RQdWJsaWNLZXlJbmZvO2Nhc2UiUFVCTElDIEtFWSI6c3dpdGNoKFV8fChVPXouUHVibGljS2V5LmRlY29kZSh0ZSwiZGVyIikpLFg9VS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6'@; put 'cmV0dXJuIHouUlNBUHVibGljS2V5LmRlY29kZShVLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIik7Y2FzZSIxLjIuODQwLjEwMDQ1LjIuMSI6cmV0dXJuIFUuc3ViamVjdFByaXZhdGVLZXk9VS5zdWJqZWN0UHVibGljS2V5LHt0eXBlOiJlYyIsZGF0YTpVfTtjYXNlIjEuMi44NDAuMTAw'@; put 'NDAuNC4xIjpyZXR1cm4gVS5hbGdvcml0aG0ucGFyYW1zLnB1Yl9rZXk9ei5EU0FwYXJhbS5kZWNvZGUoVS5zdWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpLHt0eXBlOiJkc2EiLGRhdGE6VS5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkg'@; put 'aWQgIitYKX1jYXNlIkVOQ1JZUFRFRCBQUklWQVRFIEtFWSI6c2U9WSxoZT0ob2U9dGU9ei5FbmNyeXB0ZWRQcml2YXRlS2V5LmRlY29kZSh0ZSwiZGVyIikpLmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuc2FsdCx1ZT1wYXJzZUludChvZS5hbGdvcml0aG0uZGVjcnlwdC5rZGUu'@; put 'a2RlcGFyYW1zLml0ZXJzLnRvU3RyaW5nKCksMTApLGNlPUtbb2UuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxHPW9lLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5pdixiPW9lLnN1YmplY3RQcml2YXRlS2V5LEQ9cGFyc2VJbnQoY2Uuc3BsaXQoIi0iKVsxXSwx'@; put 'MCkvOCxIPUUucGJrZGYyU3luYyhzZSxoZSx1ZSxELCJzaGExIiksTj1rLmNyZWF0ZURlY2lwaGVyaXYoY2UsSCxHKSwoZz1bXSkucHVzaChOLnVwZGF0ZShiKSksZy5wdXNoKE4uZmluYWwoKSksdGU9ai5jb25jYXQoZyk7Y2FzZSJQUklWQVRFIEtFWSI6c3dpdGNoKFg9KFU9ei5Qcml2YXRl'@; put 'S2V5LmRlY29kZSh0ZSwiZGVyIikpLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gei5SU0FQcml2YXRlS2V5LmRlY29kZShVLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1'@; put 'cm57Y3VydmU6VS5hbGdvcml0aG0uY3VydmUscHJpdmF0ZUtleTp6LkVDUHJpdmF0ZUtleS5kZWNvZGUoVS5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIFUuYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT16LkRTQXBh'@; put 'cmFtLmRlY29kZShVLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKSx7dHlwZToiZHNhIixwYXJhbXM6VS5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgaWQgIitYKX1jYXNlIlJTQSBQVUJMSUMgS0VZIjpyZXR1cm4gei5SU0FQdWJsaWNLZXku'@; put 'ZGVjb2RlKHRlLCJkZXIiKTtjYXNlIlJTQSBQUklWQVRFIEtFWSI6cmV0dXJuIHouUlNBUHJpdmF0ZUtleS5kZWNvZGUodGUsImRlciIpO2Nhc2UiRFNBIFBSSVZBVEUgS0VZIjpyZXR1cm57dHlwZToiZHNhIixwYXJhbXM6ei5EU0FQcml2YXRlS2V5LmRlY29kZSh0ZSwiZGVyIil9O2Nhc2Ui'@; put 'RUMgUFJJVkFURSBLRVkiOnJldHVybntjdXJ2ZToodGU9ei5FQ1ByaXZhdGVLZXkuZGVjb2RlKHRlLCJkZXIiKSkucGFyYW1ldGVycy52YWx1ZSxwcml2YXRlS2V5OnRlLnByaXZhdGVLZXl9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSB0eXBlICIrZWUpfX1NLmV4cG9y'@; put 'dHM9VixWLnNpZ25hdHVyZT16LnNpZ25hdHVyZX0sNDA5NTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDE1NSk7ZnVuY3Rpb24gSyhrKXtyZXR1cm4iLyI9PT1rLmNoYXJBdCgwKX1mdW5jdGlvbiBJKGspe3ZhciBFPS9eKFthLXpBLVpdOnxbXFxcL117Mn1bXlxcXC9dK1tcXFwv'@; put 'XStbXlxcXC9dKyk/KFtcXFwvXSk/KFtcc1xTXSo/KSQvLmV4ZWMoayksaj1FWzFdfHwiIixWPSEoIWp8fCI6Ij09PWouY2hhckF0KDEpKTtyZXR1cm4hKCFFWzJdJiYhVil9TS5leHBvcnRzPSJ3aW4zMiI9PT16LnBsYXRmb3JtP0k6SyxNLmV4cG9ydHMucG9zaXg9SyxNLmV4cG9ydHMud2lu'@; put 'MzI9SX0sMTcyNTpNPT57TS5leHBvcnRzPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKE8sUil7Ty5zdXBlcl89UixPLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFIucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6TyxlbnVtZXJhYmxlOiExLHdyaXRhYmxl'@; put 'OiEwLGNvbmZpZ3VyYWJsZTohMH19KX06ZnVuY3Rpb24oTyxSKXtPLnN1cGVyXz1SO3ZhciB6PWZ1bmN0aW9uKCl7fTt6LnByb3RvdHlwZT1SLnByb3RvdHlwZSxPLnByb3RvdHlwZT1uZXcgeixPLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1PfX0sMjk3NDpNPT57TS5leHBvcnRzPWZ1bmN0aW9u'@; put 'KE8pe3JldHVybiBPJiYib2JqZWN0Ij09dHlwZW9mIE8mJiJmdW5jdGlvbiI9PXR5cGVvZiBPLmNvcHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBPLmZpbGwmJiJmdW5jdGlvbiI9PXR5cGVvZiBPLnJlYWRVSW50OH19LDgwNTk6KE0sTyxSKT0+e3ZhciB6PVIoNDE1NSksSz1SKDUxMDgpLEk9LyVb'@; put 'c2RqJV0vZztPLmZvcm1hdD1mdW5jdGlvbihTKXtpZighc2UoUykpe2Zvcih2YXIgdj1bXSxwPTA7cDxhcmd1bWVudHMubGVuZ3RoO3ArKyl2LnB1c2goaihhcmd1bWVudHNbcF0pKTtyZXR1cm4gdi5qb2luKCIgIil9cD0xO2Zvcih2YXIgdz1hcmd1bWVudHMsSj13Lmxlbmd0aCxuZT1TdHJp'@; put 'bmcoUykucmVwbGFjZShJLGZ1bmN0aW9uKGZlKXtpZigiJSUiPT09ZmUpcmV0dXJuIiUiO2lmKHA+PUopcmV0dXJuIGZlO3N3aXRjaChmZSl7Y2FzZSIlcyI6cmV0dXJuIFN0cmluZyh3W3ArK10pO2Nhc2UiJWQiOnJldHVybiBOdW1iZXIod1twKytdKTtjYXNlIiVqIjp0cnl7cmV0dXJuIEpT'@; put 'T04uc3RyaW5naWZ5KHdbcCsrXSl9Y2F0Y2h7cmV0dXJuIltDaXJjdWxhcl0ifWRlZmF1bHQ6cmV0dXJuIGZlfX0pLGRlPXdbcF07cDxKO2RlPXdbKytwXSl0ZShkZSl8fCFjZShkZSk/bmUrPSIgIitkZTpuZSs9IiAiK2ooZGUpO3JldHVybiBuZX0sTy5kZXByZWNhdGU9ZnVuY3Rpb24oUyx2'@; put 'KXtpZihoZShSLmcucHJvY2VzcykpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE8uZGVwcmVjYXRlKFMsdikuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtpZighMD09PXoubm9EZXByZWNhdGlvbilyZXR1cm4gUzt2YXIgcD0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighcCl7aWYoei50aHJvd0Rl'@; put 'cHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcih2KTt6LnRyYWNlRGVwcmVjYXRpb24/Sy50cmFjZSh2KTpLLmVycm9yKHYpLHA9ITB9cmV0dXJuIFMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIGssRT17fTtmdW5jdGlvbiBqKFMsdil7dmFyIHA9e3NlZW46W10sc3R5bGl6ZTpCfTtyZXR1'@; put 'cm4gYXJndW1lbnRzLmxlbmd0aD49MyYmKHAuZGVwdGg9YXJndW1lbnRzWzJdKSxhcmd1bWVudHMubGVuZ3RoPj00JiYocC5jb2xvcnM9YXJndW1lbnRzWzNdKSxlZSh2KT9wLnNob3dIaWRkZW49djp2JiZPLl9leHRlbmQocCx2KSxoZShwLnNob3dIaWRkZW4pJiYocC5zaG93SGlkZGVuPSEx'@; put 'KSxoZShwLmRlcHRoKSYmKHAuZGVwdGg9MiksaGUocC5jb2xvcnMpJiYocC5jb2xvcnM9ITEpLGhlKHAuY3VzdG9tSW5zcGVjdCkmJihwLmN1c3RvbUluc3BlY3Q9ITApLHAuY29sb3JzJiYocC5zdHlsaXplPVYpLFkocCxTLHAuZGVwdGgpfWZ1bmN0aW9uIFYoUyx2KXt2YXIgcD1qLnN0eWxl'@; put 'c1t2XTtyZXR1cm4gcD8iXHgxYlsiK2ouY29sb3JzW3BdWzBdKyJtIitTKyJceDFiWyIrai5jb2xvcnNbcF1bMV0rIm0iOlN9ZnVuY3Rpb24gQihTLHYpe3JldHVybiBTfWZ1bmN0aW9uIFkoUyx2LHApe2lmKFMuY3VzdG9tSW5zcGVjdCYmdiYmRCh2Lmluc3BlY3QpJiZ2Lmluc3BlY3QhPT1P'@; put 'Lmluc3BlY3QmJighdi5jb25zdHJ1Y3Rvcnx8di5jb25zdHJ1Y3Rvci5wcm90b3R5cGUhPT12KSl7dmFyIHc9di5pbnNwZWN0KHAsUyk7cmV0dXJuIHNlKHcpfHwodz1ZKFMsdyxwKSksd312YXIgSj1mdW5jdGlvbihqZSxXZSl7aWYoaGUoV2UpKXJldHVybiBqZS5zdHlsaXplKCJ1bmRlZmlu'@; put 'ZWQiLCJ1bmRlZmluZWQiKTtpZihzZShXZSkpe3ZhciBLZT0iJyIrSlNPTi5zdHJpbmdpZnkoV2UpLnJlcGxhY2UoL14ifCIkL2csIiIpLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKSsiJyI7cmV0dXJuIGplLnN0eWxpemUoS2UsInN0cmluZyIpfXJldHVybiBvZShX'@; put 'ZSk/amUuc3R5bGl6ZSgiIitXZSwibnVtYmVyIik6ZWUoV2UpP2plLnN0eWxpemUoIiIrV2UsImJvb2xlYW4iKTp0ZShXZSk/amUuc3R5bGl6ZSgibnVsbCIsIm51bGwiKTp2b2lkIDB9KFMsdik7aWYoSilyZXR1cm4gSjt2YXIgV2UsbmU9T2JqZWN0LmtleXModiksZGU9KFdlPXt9LG5lLmZv'@; put 'ckVhY2goZnVuY3Rpb24oS2UsWWUpe1dlW0tlXT0hMH0pLFdlKTtpZihTLnNob3dIaWRkZW4mJihuZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2KSksYih2KSYmKG5lLmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8bmUuaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIFgodik7'@; put 'aWYoMD09PW5lLmxlbmd0aCl7aWYoRCh2KSlyZXR1cm4gUy5zdHlsaXplKCJbRnVuY3Rpb24iKyh2Lm5hbWU/IjogIit2Lm5hbWU6IiIpKyJdIiwic3BlY2lhbCIpO2lmKHVlKHYpKXJldHVybiBTLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLCJyZWdleHAiKTtp'@; put 'ZihHKHYpKXJldHVybiBTLnN0eWxpemUoRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2KSwiZGF0ZSIpO2lmKGIodikpcmV0dXJuIFgodil9dmFyIHhlLExlPSIiLEZlPSExLE9lPVsieyIsIn0iXTtyZXR1cm4gcSh2KSYmKEZlPSEwLE9lPVsiWyIsIl0iXSksRCh2KSYmKExlPSIgW0Z1'@; put 'bmN0aW9uIisodi5uYW1lPyI6ICIrdi5uYW1lOiIiKSsiXSIpLHVlKHYpJiYoTGU9IiAiK1JlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2KSksRyh2KSYmKExlPSIgIitEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKHYpKSxiKHYpJiYoTGU9IiAiK1godikpLDAhPT1uZS5s'@; put 'ZW5ndGh8fEZlJiYwIT12Lmxlbmd0aD9wPDA/dWUodik/Uy5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2KSwicmVnZXhwIik6Uy5zdHlsaXplKCJbT2JqZWN0XSIsInNwZWNpYWwiKTooUy5zZWVuLnB1c2godikseGU9RmU/ZnVuY3Rpb24oamUsV2UsS2UsWWUsUWUp'@; put 'e2Zvcih2YXIgbHQ9W10sUGU9MCxiZT1XZS5sZW5ndGg7UGU8YmU7KytQZSlDKFdlLFN0cmluZyhQZSkpP2x0LnB1c2goVShqZSxXZSxLZSxZZSxTdHJpbmcoUGUpLCEwKSk6bHQucHVzaCgiIik7cmV0dXJuIFFlLmZvckVhY2goZnVuY3Rpb24oQWUpe0FlLm1hdGNoKC9eXGQrJC8pfHxsdC5w'@; put 'dXNoKFUoamUsV2UsS2UsWWUsQWUsITApKX0pLGx0fShTLHYscCxkZSxuZSk6bmUubWFwKGZ1bmN0aW9uKGplKXtyZXR1cm4gVShTLHYscCxkZSxqZSxGZSl9KSxTLnNlZW4ucG9wKCksZnVuY3Rpb24oamUsV2UsS2Upe3JldHVybiBqZS5yZWR1Y2UoZnVuY3Rpb24oUWUsbHQpe3JldHVybiBs'@; put 'dC5pbmRleE9mKCJcbiIpLFFlK2x0LnJlcGxhY2UoL1x1MDAxYlxbXGRcZD9tL2csIiIpLmxlbmd0aCsxfSwwKT42MD9LZVswXSsoIiI9PT1XZT8iIjpXZSsiXG4gIikrIiAiK2plLmpvaW4oIixcbiAgIikrIiAiK0tlWzFdOktlWzBdK1dlKyIgIitqZS5qb2luKCIsICIpKyIgIitLZVsxXX0o'@; put 'eGUsTGUsT2UpKTpPZVswXStMZStPZVsxXX1mdW5jdGlvbiBYKFMpe3JldHVybiJbIitFcnJvci5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChTKSsiXSJ9ZnVuY3Rpb24gVShTLHYscCx3LEosbmUpe3ZhciBkZSxmZSx4ZTtpZigoeGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2'@; put 'LEopfHx7dmFsdWU6dltKXX0pLmdldD9mZT1TLnN0eWxpemUoeGUuc2V0PyJbR2V0dGVyL1NldHRlcl0iOiJbR2V0dGVyXSIsInNwZWNpYWwiKTp4ZS5zZXQmJihmZT1TLnN0eWxpemUoIltTZXR0ZXJdIiwic3BlY2lhbCIpKSxDKHcsSil8fChkZT0iWyIrSisiXSIpLGZlfHwoUy5zZWVuLmlu'@; put 'ZGV4T2YoeGUudmFsdWUpPDA/KGZlPXRlKHApP1koUyx4ZS52YWx1ZSxudWxsKTpZKFMseGUudmFsdWUscC0xKSkuaW5kZXhPZigiXG4iKT4tMSYmKGZlPW5lP2ZlLnNwbGl0KCJcbiIpLm1hcChmdW5jdGlvbihMZSl7cmV0dXJuIiAgIitMZX0pLmpvaW4oIlxuIikuc3Vic3RyKDIpOiJcbiIr'@; put 'ZmUuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKExlKXtyZXR1cm4iICAgIitMZX0pLmpvaW4oIlxuIikpOmZlPVMuc3R5bGl6ZSgiW0NpcmN1bGFyXSIsInNwZWNpYWwiKSksaGUoZGUpKXtpZihuZSYmSi5tYXRjaCgvXlxkKyQvKSlyZXR1cm4gZmU7KGRlPUpTT04uc3RyaW5naWZ5KCIiK0op'@; put 'KS5tYXRjaCgvXiIoW2EtekEtWl9dW2EtekEtWl8wLTldKikiJC8pPyhkZT1kZS5zdWJzdHIoMSxkZS5sZW5ndGgtMiksZGU9Uy5zdHlsaXplKGRlLCJuYW1lIikpOihkZT1kZS5yZXBsYWNlKC8nL2csIlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykucmVwbGFjZSgvKF4ifCIkKS9nLCInIiks'@; put 'ZGU9Uy5zdHlsaXplKGRlLCJzdHJpbmciKSl9cmV0dXJuIGRlKyI6ICIrZmV9ZnVuY3Rpb24gcShTKXtyZXR1cm4gQXJyYXkuaXNBcnJheShTKX1mdW5jdGlvbiBlZShTKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBTfWZ1bmN0aW9uIHRlKFMpe3JldHVybiBudWxsPT09U31mdW5jdGlvbiBv'@; put 'ZShTKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIFN9ZnVuY3Rpb24gc2UoUyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBTfWZ1bmN0aW9uIGhlKFMpe3JldHVybiB2b2lkIDA9PT1TfWZ1bmN0aW9uIHVlKFMpe3JldHVybiBjZShTKSYmIltvYmplY3QgUmVnRXhwXSI9PT1IKFMpfWZ1bmN0aW9u'@; put 'IGNlKFMpe3JldHVybiJvYmplY3QiPT10eXBlb2YgUyYmbnVsbCE9PVN9ZnVuY3Rpb24gRyhTKXtyZXR1cm4gY2UoUykmJiJbb2JqZWN0IERhdGVdIj09PUgoUyl9ZnVuY3Rpb24gYihTKXtyZXR1cm4gY2UoUykmJigiW29iamVjdCBFcnJvcl0iPT09SChTKXx8UyBpbnN0YW5jZW9mIEVycm9y'@; put 'KX1mdW5jdGlvbiBEKFMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBTfWZ1bmN0aW9uIEgoUyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChTKX1mdW5jdGlvbiBOKFMpe3JldHVybiBTPDEwPyIwIitTLnRvU3RyaW5nKDEwKTpTLnRvU3RyaW5nKDEwKX1PLmRlYnVn'@; put 'bG9nPWZ1bmN0aW9uKFMpe2lmKGhlKGspJiYoaz16LmVudi5OT0RFX0RFQlVHfHwiIiksUz1TLnRvVXBwZXJDYXNlKCksIUVbU10paWYobmV3IFJlZ0V4cCgiXFxiIitTKyJcXGIiLCJpIikudGVzdChrKSl7dmFyIHY9ei5waWQ7RVtTXT1mdW5jdGlvbigpe3ZhciBwPU8uZm9ybWF0LmFwcGx5'@; put 'KE8sYXJndW1lbnRzKTtLLmVycm9yKCIlcyAlZDogJXMiLFMsdixwKX19ZWxzZSBFW1NdPWZ1bmN0aW9uKCl7fTtyZXR1cm4gRVtTXX0sTy5pbnNwZWN0PWosai5jb2xvcnM9e2JvbGQ6WzEsMjJdLGl0YWxpYzpbMywyM10sdW5kZXJsaW5lOls0LDI0XSxpbnZlcnNlOls3LDI3XSx3aGl0ZTpb'@; put 'MzcsMzldLGdyZXk6WzkwLDM5XSxibGFjazpbMzAsMzldLGJsdWU6WzM0LDM5XSxjeWFuOlszNiwzOV0sZ3JlZW46WzMyLDM5XSxtYWdlbnRhOlszNSwzOV0scmVkOlszMSwzOV0seWVsbG93OlszMywzOV19LGouc3R5bGVzPXtzcGVjaWFsOiJjeWFuIixudW1iZXI6InllbGxvdyIsYm9vbGVh'@; put 'bjoieWVsbG93Iix1bmRlZmluZWQ6ImdyZXkiLG51bGw6ImJvbGQiLHN0cmluZzoiZ3JlZW4iLGRhdGU6Im1hZ2VudGEiLHJlZ2V4cDoicmVkIn0sTy5pc0FycmF5PXEsTy5pc0Jvb2xlYW49ZWUsTy5pc051bGw9dGUsTy5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbihTKXtyZXR1cm4gbnVs'@; put 'bD09U30sTy5pc051bWJlcj1vZSxPLmlzU3RyaW5nPXNlLE8uaXNTeW1ib2w9ZnVuY3Rpb24oUyl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBTfSxPLmlzVW5kZWZpbmVkPWhlLE8uaXNSZWdFeHA9dWUsTy5pc09iamVjdD1jZSxPLmlzRGF0ZT1HLE8uaXNFcnJvcj1iLE8uaXNGdW5jdGlvbj1E'@; put 'LE8uaXNQcmltaXRpdmU9ZnVuY3Rpb24oUyl7cmV0dXJuIG51bGw9PT1TfHwiYm9vbGVhbiI9PXR5cGVvZiBTfHwibnVtYmVyIj09dHlwZW9mIFN8fCJzdHJpbmciPT10eXBlb2YgU3x8InN5bWJvbCI9PXR5cGVvZiBTfHx2b2lkIDA9PT1TfSxPLmlzQnVmZmVyPVIoMjk3NCk7dmFyIGc9WyJK'@; put 'YW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtmdW5jdGlvbiBDKFMsdil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChTLHYpfU8ubG9nPWZ1bmN0aW9uKCl7dmFyIFMsdjtLLmxv'@; put 'ZygiJXMgLSAlcyIsKHY9W04oKFM9bmV3IERhdGUpLmdldEhvdXJzKCkpLE4oUy5nZXRNaW51dGVzKCkpLE4oUy5nZXRTZWNvbmRzKCkpXS5qb2luKCI6IiksW1MuZ2V0RGF0ZSgpLGdbUy5nZXRNb250aCgpXSx2XS5qb2luKCIgIikpLE8uZm9ybWF0LmFwcGx5KE8sYXJndW1lbnRzKSl9LE8u'@; put 'aW5oZXJpdHM9UigxNzI1KSxPLl9leHRlbmQ9ZnVuY3Rpb24oUyx2KXtpZighdnx8IWNlKHYpKXJldHVybiBTO2Zvcih2YXIgcD1PYmplY3Qua2V5cyh2KSx3PXAubGVuZ3RoO3ctLTspU1twW3ddXT12W3Bbd11dO3JldHVybiBTfX0sMjUyMDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6'@; put 'PVIoNDE1NSksSz0id2luMzIiPT09ei5wbGF0Zm9ybSxJPVIoODA1OSk7ZnVuY3Rpb24gayhvZSxzZSl7Zm9yKHZhciBoZT1bXSx1ZT0wO3VlPG9lLmxlbmd0aDt1ZSsrKXt2YXIgY2U9b2VbdWVdO2NlJiYiLiIhPT1jZSYmKCIuLiI9PT1jZT9oZS5sZW5ndGgmJiIuLiIhPT1oZVtoZS5sZW5n'@; put 'dGgtMV0/aGUucG9wKCk6c2UmJmhlLnB1c2goIi4uIik6aGUucHVzaChjZSkpfXJldHVybiBoZX1mdW5jdGlvbiBFKG9lKXtmb3IodmFyIHNlPW9lLmxlbmd0aC0xLGhlPTA7aGU8PXNlJiYhb2VbaGVdO2hlKyspO2Zvcih2YXIgdWU9c2U7dWU+PTAmJiFvZVt1ZV07dWUtLSk7cmV0dXJuIDA9'@; put 'PT1oZSYmdWU9PT1zZT9vZTpoZT51ZT9bXTpvZS5zbGljZShoZSx1ZSsxKX12YXIgaj0vXihbYS16QS1aXTp8W1xcXC9dezJ9W15cXFwvXStbXFxcL10rW15cXFwvXSspPyhbXFxcL10pPyhbXHNcU10qPykkLyxWPS9eKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXFxcL10rP3wpKFwuW14uXC9c'@; put 'XF0qfCkpKD86W1xcXC9dKikkLyxCPXt9O2Z1bmN0aW9uIFkob2Upe3ZhciBzZT1qLmV4ZWMob2UpLGhlPShzZVsxXXx8IiIpKyhzZVsyXXx8IiIpLGNlPVYuZXhlYyhzZVszXXx8IiIpO3JldHVybltoZSxjZVsxXSxjZVsyXSxjZVszXV19ZnVuY3Rpb24gWChvZSl7dmFyIHNlPWouZXhlYyhv'@; put 'ZSksaGU9c2VbMV18fCIiLHVlPSEhaGUmJiI6IiE9PWhlWzFdO3JldHVybntkZXZpY2U6aGUsaXNVbmM6dWUsaXNBYnNvbHV0ZTp1ZXx8ISFzZVsyXSx0YWlsOnNlWzNdfX1mdW5jdGlvbiBVKG9lKXtyZXR1cm4iXFxcXCIrb2UucmVwbGFjZSgvXltcXFwvXSsvLCIiKS5yZXBsYWNlKC9bXFxc'@; put 'L10rL2csIlxcIil9Qi5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBvZT0iIixzZT0iIixoZT0hMSx1ZT1hcmd1bWVudHMubGVuZ3RoLTE7dWU+PS0xO3VlLS0pe3ZhciBjZTtpZih1ZT49MD9jZT1hcmd1bWVudHNbdWVdOm9lPyhjZT16LmVudlsiPSIrb2VdKSYmY2Uuc3Vic3RyKDAsMyku'@; put 'dG9Mb3dlckNhc2UoKT09PW9lLnRvTG93ZXJDYXNlKCkrIlxcInx8KGNlPW9lKyJcXCIpOmNlPXouY3dkKCksIUkuaXNTdHJpbmcoY2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzIik7aWYoY2Upe3ZhciBHPVgoY2UpLGI9'@; put 'Ry5kZXZpY2UsRD1HLmlzVW5jLEg9Ry5pc0Fic29sdXRlLE49Ry50YWlsO2lmKCghYnx8IW9lfHxiLnRvTG93ZXJDYXNlKCk9PT1vZS50b0xvd2VyQ2FzZSgpKSYmKG9lfHwob2U9YiksaGV8fChzZT1OKyJcXCIrc2UsaGU9SCksb2UmJmhlKSlicmVha319cmV0dXJuIEQmJihvZT1VKG9lKSks'@; put 'b2UrKGhlPyJcXCI6IiIpKyhzZT1rKHNlLnNwbGl0KC9bXFxcL10rLyksIWhlKS5qb2luKCJcXCIpKXx8Ii4ifSxCLm5vcm1hbGl6ZT1mdW5jdGlvbihvZSl7dmFyIHNlPVgob2UpLGhlPXNlLmRldmljZSx1ZT1zZS5pc1VuYyxjZT1zZS5pc0Fic29sdXRlLEc9c2UudGFpbCxiPS9bXFxcL10k'@; put 'Ly50ZXN0KEcpO3JldHVybihHPWsoRy5zcGxpdCgvW1xcXC9dKy8pLCFjZSkuam9pbigiXFwiKSl8fGNlfHwoRz0iLiIpLEcmJmImJihHKz0iXFwiKSx1ZSYmKGhlPVUoaGUpKSxoZSsoY2U/IlxcIjoiIikrR30sQi5pc0Fic29sdXRlPWZ1bmN0aW9uKG9lKXtyZXR1cm4gWChvZSkuaXNBYnNv'@; put 'bHV0ZX0sQi5qb2luPWZ1bmN0aW9uKCl7Zm9yKHZhciBvZT1bXSxzZT0wO3NlPGFyZ3VtZW50cy5sZW5ndGg7c2UrKyl7dmFyIGhlPWFyZ3VtZW50c1tzZV07aWYoIUkuaXNTdHJpbmcoaGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJp'@; put 'bmdzIik7aGUmJm9lLnB1c2goaGUpfXZhciB1ZT1vZS5qb2luKCJcXCIpO3JldHVybi9eW1xcXC9dezJ9W15cXFwvXS8udGVzdChvZVswXSl8fCh1ZT11ZS5yZXBsYWNlKC9eW1xcXC9dezIsfS8sIlxcIikpLEIubm9ybWFsaXplKHVlKX0sQi5yZWxhdGl2ZT1mdW5jdGlvbihvZSxzZSl7b2U9'@; put 'Qi5yZXNvbHZlKG9lKSxzZT1CLnJlc29sdmUoc2UpO2Zvcih2YXIgaGU9b2UudG9Mb3dlckNhc2UoKSx1ZT1zZS50b0xvd2VyQ2FzZSgpLGNlPUUoc2Uuc3BsaXQoIlxcIikpLEc9RShoZS5zcGxpdCgiXFwiKSksYj1FKHVlLnNwbGl0KCJcXCIpKSxEPU1hdGgubWluKEcubGVuZ3RoLGIubGVu'@; put 'Z3RoKSxIPUQsTj0wO048RDtOKyspaWYoR1tOXSE9PWJbTl0pe0g9TjticmVha31pZigwPT1IKXJldHVybiBzZTt2YXIgZz1bXTtmb3IoTj1IO048Ry5sZW5ndGg7TisrKWcucHVzaCgiLi4iKTtyZXR1cm4oZz1nLmNvbmNhdChjZS5zbGljZShIKSkpLmpvaW4oIlxcIil9LEIuX21ha2VMb25n'@; put 'PWZ1bmN0aW9uKG9lKXtpZighSS5pc1N0cmluZyhvZSkpcmV0dXJuIG9lO2lmKCFvZSlyZXR1cm4iIjt2YXIgc2U9Qi5yZXNvbHZlKG9lKTtyZXR1cm4vXlthLXpBLVpdXDpcXC8udGVzdChzZSk/IlxcXFw/XFwiK3NlOi9eXFxcXFtePy5dLy50ZXN0KHNlKT8iXFxcXD9cXFVOQ1xcIitzZS5z'@; put 'dWJzdHJpbmcoMik6b2V9LEIuZGlybmFtZT1mdW5jdGlvbihvZSl7dmFyIHNlPVkob2UpLGhlPXNlWzBdLHVlPXNlWzFdO3JldHVybiBoZXx8dWU/KHVlJiYodWU9dWUuc3Vic3RyKDAsdWUubGVuZ3RoLTEpKSxoZSt1ZSk6Ii4ifSxCLmJhc2VuYW1lPWZ1bmN0aW9uKG9lLHNlKXt2YXIgaGU9'@; put 'WShvZSlbMl07cmV0dXJuIHNlJiZoZS5zdWJzdHIoLTEqc2UubGVuZ3RoKT09PXNlJiYoaGU9aGUuc3Vic3RyKDAsaGUubGVuZ3RoLXNlLmxlbmd0aCkpLGhlfSxCLmV4dG5hbWU9ZnVuY3Rpb24ob2Upe3JldHVybiBZKG9lKVszXX0sQi5mb3JtYXQ9ZnVuY3Rpb24ob2Upe2lmKCFJLmlzT2Jq'@; put 'ZWN0KG9lKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXJhbWV0ZXIgJ3BhdGhPYmplY3QnIG11c3QgYmUgYW4gb2JqZWN0LCBub3QgIit0eXBlb2Ygb2UpO2lmKCFJLmlzU3RyaW5nKG9lLnJvb3R8fCIiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCIncGF0aE9iamVjdC5yb290JyBtdXN0IGJlIGEg'@; put 'c3RyaW5nIG9yIHVuZGVmaW5lZCwgbm90ICIrdHlwZW9mIG9lLnJvb3QpO3ZhciBoZT1vZS5kaXIsdWU9b2UuYmFzZXx8IiI7cmV0dXJuIGhlP2hlW2hlLmxlbmd0aC0xXT09PUIuc2VwP2hlK3VlOmhlK0Iuc2VwK3VlOnVlfSxCLnBhcnNlPWZ1bmN0aW9uKG9lKXtpZighSS5pc1N0cmluZyhv'@; put 'ZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGFyYW1ldGVyICdwYXRoU3RyaW5nJyBtdXN0IGJlIGEgc3RyaW5nLCBub3QgIit0eXBlb2Ygb2UpO3ZhciBzZT1ZKG9lKTtpZighc2V8fDQhPT1zZS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBwYXRoICciK29lKyInIik7cmV0'@; put 'dXJue3Jvb3Q6c2VbMF0sZGlyOnNlWzBdK3NlWzFdLnNsaWNlKDAsLTEpLGJhc2U6c2VbMl0sZXh0OnNlWzNdLG5hbWU6c2VbMl0uc2xpY2UoMCxzZVsyXS5sZW5ndGgtc2VbM10ubGVuZ3RoKX19LEIuc2VwPSJcXCIsQi5kZWxpbWl0ZXI9IjsiO3ZhciBxPS9eKFwvP3wpKFtcc1xTXSo/KSgo'@; put 'PzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikkLyxlZT17fTtmdW5jdGlvbiB0ZShvZSl7cmV0dXJuIHEuZXhlYyhvZSkuc2xpY2UoMSl9ZWUucmVzb2x2ZT1mdW5jdGlvbigpe2Zvcih2YXIgb2U9IiIsc2U9ITEsaGU9YXJndW1lbnRzLmxlbmd0aC0xO2hlPj0tMSYm'@; put 'IXNlO2hlLS0pe3ZhciB1ZT1oZT49MD9hcmd1bWVudHNbaGVdOnouY3dkKCk7aWYoIUkuaXNTdHJpbmcodWUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzIik7dWUmJihvZT11ZSsiLyIrb2Usc2U9Ii8iPT09dWVbMF0pfXJl'@; put 'dHVybihzZT8iLyI6IiIpKyhvZT1rKG9lLnNwbGl0KCIvIiksIXNlKS5qb2luKCIvIikpfHwiLiJ9LGVlLm5vcm1hbGl6ZT1mdW5jdGlvbihvZSl7dmFyIHNlPWVlLmlzQWJzb2x1dGUob2UpLGhlPW9lJiYiLyI9PT1vZVtvZS5sZW5ndGgtMV07cmV0dXJuKG9lPWsob2Uuc3BsaXQoIi8iKSwh'@; put 'c2UpLmpvaW4oIi8iKSl8fHNlfHwob2U9Ii4iKSxvZSYmaGUmJihvZSs9Ii8iKSwoc2U/Ii8iOiIiKStvZX0sZWUuaXNBYnNvbHV0ZT1mdW5jdGlvbihvZSl7cmV0dXJuIi8iPT09b2UuY2hhckF0KDApfSxlZS5qb2luPWZ1bmN0aW9uKCl7Zm9yKHZhciBvZT0iIixzZT0wO3NlPGFyZ3VtZW50'@; put 'cy5sZW5ndGg7c2UrKyl7dmFyIGhlPWFyZ3VtZW50c1tzZV07aWYoIUkuaXNTdHJpbmcoaGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzIik7aGUmJihvZSs9b2U/Ii8iK2hlOmhlKX1yZXR1cm4gZWUubm9ybWFsaXplKG9lKX0s'@; put 'ZWUucmVsYXRpdmU9ZnVuY3Rpb24ob2Usc2Upe29lPWVlLnJlc29sdmUob2UpLnN1YnN0cigxKSxzZT1lZS5yZXNvbHZlKHNlKS5zdWJzdHIoMSk7Zm9yKHZhciBoZT1FKG9lLnNwbGl0KCIvIikpLHVlPUUoc2Uuc3BsaXQoIi8iKSksY2U9TWF0aC5taW4oaGUubGVuZ3RoLHVlLmxlbmd0aCks'@; put 'Rz1jZSxiPTA7YjxjZTtiKyspaWYoaGVbYl0hPT11ZVtiXSl7Rz1iO2JyZWFrfXZhciBEPVtdO2ZvcihiPUc7YjxoZS5sZW5ndGg7YisrKUQucHVzaCgiLi4iKTtyZXR1cm4oRD1ELmNvbmNhdCh1ZS5zbGljZShHKSkpLmpvaW4oIi8iKX0sZWUuX21ha2VMb25nPWZ1bmN0aW9uKG9lKXtyZXR1'@; put 'cm4gb2V9LGVlLmRpcm5hbWU9ZnVuY3Rpb24ob2Upe3ZhciBzZT10ZShvZSksaGU9c2VbMF0sdWU9c2VbMV07cmV0dXJuIGhlfHx1ZT8odWUmJih1ZT11ZS5zdWJzdHIoMCx1ZS5sZW5ndGgtMSkpLGhlK3VlKToiLiJ9LGVlLmJhc2VuYW1lPWZ1bmN0aW9uKG9lLHNlKXt2YXIgaGU9dGUob2Up'@; put 'WzJdO3JldHVybiBzZSYmaGUuc3Vic3RyKC0xKnNlLmxlbmd0aCk9PT1zZSYmKGhlPWhlLnN1YnN0cigwLGhlLmxlbmd0aC1zZS5sZW5ndGgpKSxoZX0sZWUuZXh0bmFtZT1mdW5jdGlvbihvZSl7cmV0dXJuIHRlKG9lKVszXX0sZWUuZm9ybWF0PWZ1bmN0aW9uKG9lKXtpZighSS5pc09iamVj'@; put 'dChvZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGFyYW1ldGVyICdwYXRoT2JqZWN0JyBtdXN0IGJlIGFuIG9iamVjdCwgbm90ICIrdHlwZW9mIG9lKTtpZighSS5pc1N0cmluZyhvZS5yb290fHwiIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiJ3BhdGhPYmplY3Qucm9vdCcgbXVzdCBiZSBhIHN0'@; put 'cmluZyBvciB1bmRlZmluZWQsIG5vdCAiK3R5cGVvZiBvZS5yb290KTtyZXR1cm4ob2UuZGlyP29lLmRpcitlZS5zZXA6IiIpKyhvZS5iYXNlfHwiIil9LGVlLnBhcnNlPWZ1bmN0aW9uKG9lKXtpZighSS5pc1N0cmluZyhvZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGFyYW1ldGVyICdwYXRo'@; put 'U3RyaW5nJyBtdXN0IGJlIGEgc3RyaW5nLCBub3QgIit0eXBlb2Ygb2UpO3ZhciBzZT10ZShvZSk7aWYoIXNlfHw0IT09c2UubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgcGF0aCAnIitvZSsiJyIpO3JldHVybiBzZVsxXT1zZVsxXXx8IiIsc2VbMl09c2VbMl18fCIiLHNl'@; put 'WzNdPXNlWzNdfHwiIix7cm9vdDpzZVswXSxkaXI6c2VbMF0rc2VbMV0uc2xpY2UoMCwtMSksYmFzZTpzZVsyXSxleHQ6c2VbM10sbmFtZTpzZVsyXS5zbGljZSgwLHNlWzJdLmxlbmd0aC1zZVszXS5sZW5ndGgpfX0sZWUuc2VwPSIvIixlZS5kZWxpbWl0ZXI9IjoiLE0uZXhwb3J0cz1LP0I6'@; put 'ZWUsTS5leHBvcnRzLnBvc2l4PWVlLE0uZXhwb3J0cy53aW4zMj1CfSw1NjMyOihNLE8sUik9PntPLnBia2RmMj1SKDg2MzgpLE8ucGJrZGYyU3luYz1SKDEyNTcpfSw4NjM4OihNLE8sUik9Pnt2YXIgeixLLEk9Uig5NTA5KS5CdWZmZXIsaz1SKDczNTcpLEU9UigyMzY4KSxqPVIoMTI1Nyks'@; put 'Vj1SKDc3NzcpLEI9Ui5nLmNyeXB0byYmUi5nLmNyeXB0by5zdWJ0bGUsWT17c2hhOiJTSEEtMSIsInNoYS0xIjoiU0hBLTEiLHNoYTE6IlNIQS0xIixzaGEyNTY6IlNIQS0yNTYiLCJzaGEtMjU2IjoiU0hBLTI1NiIsc2hhMzg0OiJTSEEtMzg0Iiwic2hhLTM4NCI6IlNIQS0zODQiLCJzaGEt'@; put 'NTEyIjoiU0hBLTUxMiIsc2hhNTEyOiJTSEEtNTEyIn0sWD1bXTtmdW5jdGlvbiBVKCl7cmV0dXJuIEt8fChLPVIuZy5wcm9jZXNzJiZSLmcucHJvY2Vzcy5uZXh0VGljaz9SLmcucHJvY2Vzcy5uZXh0VGljazpSLmcucXVldWVNaWNyb3Rhc2s/Ui5nLnF1ZXVlTWljcm90YXNrOlIuZy5zZXRJ'@; put 'bW1lZGlhdGU/Ui5nLnNldEltbWVkaWF0ZTpSLmcuc2V0VGltZW91dCl9ZnVuY3Rpb24gcShlZSx0ZSxvZSxzZSxoZSl7cmV0dXJuIEIuaW1wb3J0S2V5KCJyYXciLGVlLHtuYW1lOiJQQktERjIifSwhMSxbImRlcml2ZUJpdHMiXSkudGhlbihmdW5jdGlvbih1ZSl7cmV0dXJuIEIuZGVyaXZl'@; put 'Qml0cyh7bmFtZToiUEJLREYyIixzYWx0OnRlLGl0ZXJhdGlvbnM6b2UsaGFzaDp7bmFtZTpoZX19LHVlLHNlPDwzKX0pLnRoZW4oZnVuY3Rpb24odWUpe3JldHVybiBJLmZyb20odWUpfSl9TS5leHBvcnRzPWZ1bmN0aW9uKGVlLHRlLG9lLHNlLGhlLHVlKXsiZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'aGUmJih1ZT1oZSxoZT12b2lkIDApO3ZhciBHLGIsY2U9WVsoaGU9aGV8fCJzaGExIikudG9Mb3dlckNhc2UoKV07aWYoY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBSLmcuUHJvbWlzZSl7aWYoayhvZSxzZSksZWU9VihlZSxFLCJQYXNzd29yZCIpLHRlPVYodGUsRSwiU2FsdCIpLCJmdW5jdGlv'@; put 'biIhPXR5cGVvZiB1ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMiIpO0c9ZnVuY3Rpb24oRyl7aWYoUi5nLnByb2Nlc3MmJiFSLmcucHJvY2Vzcy5icm93c2VyfHwhQnx8IUIuaW1wb3J0S2V5fHwhQi5kZXJpdmVCaXRzKXJldHVybiBQcm9taXNlLnJl'@; put 'c29sdmUoITEpO2lmKHZvaWQgMCE9PVhbR10pcmV0dXJuIFhbR107dmFyIGI9cSh6PXp8fEkuYWxsb2MoOCkseiwxMCwxMjgsRykudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pO3JldHVybiBYW0ddPWIsYn0oY2UpLnRoZW4oZnVuY3Rpb24o'@; put 'Ryl7cmV0dXJuIEc/cShlZSx0ZSxvZSxzZSxjZSk6aihlZSx0ZSxvZSxzZSxoZSl9KSxiPXVlLEcudGhlbihmdW5jdGlvbihEKXtVKCkoZnVuY3Rpb24oKXtiKG51bGwsRCl9KX0sZnVuY3Rpb24oRCl7VSgpKGZ1bmN0aW9uKCl7YihEKX0pfSl9ZWxzZSBVKCkoZnVuY3Rpb24oKXt2YXIgRzt0'@; put 'cnl7Rz1qKGVlLHRlLG9lLHNlLGhlKX1jYXRjaChiKXtyZXR1cm4gdWUoYil9dWUobnVsbCxHKX0pfX0sMjM2ODooTSxPLFIpPT57dmFyIHosSz1SKDQxNTUpO3o9Ui5nLnByb2Nlc3MmJlIuZy5wcm9jZXNzLmJyb3dzZXI/InV0Zi04IjpSLmcucHJvY2VzcyYmUi5nLnByb2Nlc3MudmVyc2lv'@; put 'bj9wYXJzZUludChLLnZlcnNpb24uc3BsaXQoIi4iKVswXS5zbGljZSgxKSwxMCk+PTY/InV0Zi04IjoiYmluYXJ5IjoidXRmLTgiLE0uZXhwb3J0cz16fSw3MzU3Ok09Pnt2YXIgTz1NYXRoLnBvdygyLDMwKS0xO00uZXhwb3J0cz1mdW5jdGlvbihSLHope2lmKCJudW1iZXIiIT10eXBlb2Yg'@; put 'Uil0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRpb25zIG5vdCBhIG51bWJlciIpO2lmKFI8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQgaXRlcmF0aW9ucyIpO2lmKCJudW1iZXIiIT10eXBlb2Ygeil0aHJvdyBuZXcgVHlwZUVycm9yKCJLZXkgbGVuZ3RoIG5vdCBhIG51bWJlciIpO2lm'@; put 'KHo8MHx8ej5PfHx6IT16KXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBrZXkgbGVuZ3RoIil9fSwxMjU3OihNLE8sUik9Pnt2YXIgej1SKDgwMjgpLEs9Uig5Nzg1KSxJPVIoOTA3Miksaz1SKDk1MDkpLkJ1ZmZlcixFPVIoNzM1Nyksaj1SKDIzNjgpLFY9Uig3Nzc3KSxCPWsuYWxsb2MoMTI4'@; put 'KSxZPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07ZnVuY3Rpb24gWChVLHEsZWUpe3ZhciBHLHRlPSJybWQxNjAiPT09KEc9VSl8fCJyaXBlbWQxNjAiPT09Rz9mdW5jdGlvbiBEKEgpe3JldHVy'@; put 'bihuZXcgSykudXBkYXRlKEgpLmRpZ2VzdCgpfToibWQ1Ij09PUc/ejpmdW5jdGlvbiBiKEgpe3JldHVybiBJKEcpLnVwZGF0ZShIKS5kaWdlc3QoKX0sb2U9InNoYTUxMiI9PT1VfHwic2hhMzg0Ij09PVU/MTI4OjY0O3EubGVuZ3RoPm9lP3E9dGUocSk6cS5sZW5ndGg8b2UmJihxPWsuY29u'@; put 'Y2F0KFtxLEJdLG9lKSk7Zm9yKHZhciBzZT1rLmFsbG9jVW5zYWZlKG9lK1lbVV0pLGhlPWsuYWxsb2NVbnNhZmUob2UrWVtVXSksdWU9MDt1ZTxvZTt1ZSsrKXNlW3VlXT01NF5xW3VlXSxoZVt1ZV09OTJecVt1ZV07dmFyIGNlPWsuYWxsb2NVbnNhZmUob2UrZWUrNCk7c2UuY29weShjZSww'@; put 'LDAsb2UpLHRoaXMuaXBhZDE9Y2UsdGhpcy5pcGFkMj1zZSx0aGlzLm9wYWQ9aGUsdGhpcy5hbGc9VSx0aGlzLmJsb2Nrc2l6ZT1vZSx0aGlzLmhhc2g9dGUsdGhpcy5zaXplPVlbVV19WC5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKFUscSl7cmV0dXJuIFUuY29weShxLHRoaXMuYmxvY2tzaXpl'@; put 'KSx0aGlzLmhhc2gocSkuY29weSh0aGlzLm9wYWQsdGhpcy5ibG9ja3NpemUpLHRoaXMuaGFzaCh0aGlzLm9wYWQpfSxNLmV4cG9ydHM9ZnVuY3Rpb24oVSxxLGVlLHRlLG9lKXtFKGVlLHRlKTt2YXIgc2U9bmV3IFgob2U9b2V8fCJzaGExIixVPVYoVSxqLCJQYXNzd29yZCIpLChxPVYocSxq'@; put 'LCJTYWx0IikpLmxlbmd0aCksaGU9ay5hbGxvY1Vuc2FmZSh0ZSksdWU9ay5hbGxvY1Vuc2FmZShxLmxlbmd0aCs0KTtxLmNvcHkodWUsMCwwLHEubGVuZ3RoKTtmb3IodmFyIGNlPTAsRz1ZW29lXSxiPU1hdGguY2VpbCh0ZS9HKSxEPTE7RDw9YjtEKyspe3VlLndyaXRlVUludDMyQkUoRCxx'@; put 'Lmxlbmd0aCk7Zm9yKHZhciBIPXNlLnJ1bih1ZSxzZS5pcGFkMSksTj1ILGc9MTtnPGVlO2crKyl7Tj1zZS5ydW4oTixzZS5pcGFkMik7Zm9yKHZhciBDPTA7QzxHO0MrKylIW0NdXj1OW0NdfUguY29weShoZSxjZSksY2UrPUd9cmV0dXJuIGhlfX0sNzc3NzooTSxPLFIpPT57dmFyIHo9Uig5'@; put 'NTA5KS5CdWZmZXI7TS5leHBvcnRzPWZ1bmN0aW9uKEssSSxrKXtpZih6LmlzQnVmZmVyKEspKXJldHVybiBLO2lmKCJzdHJpbmciPT10eXBlb2YgSylyZXR1cm4gei5mcm9tKEssSSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KEspKXJldHVybiB6LmZyb20oSy5idWZmZXIpO3Rocm93IG5ldyBU'@; put 'eXBlRXJyb3IoaysiIG11c3QgYmUgYSBzdHJpbmcsIGEgQnVmZmVyLCBhIHR5cGVkIGFycmF5IG9yIGEgRGF0YVZpZXciKX19LDQxNTU6TT0+e3ZhciBPLFIsej1NLmV4cG9ydHM9e307ZnVuY3Rpb24gSygpe3Rocm93IG5ldyBFcnJvcigic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5l'@; put 'ZCIpfWZ1bmN0aW9uIEkoKXt0aHJvdyBuZXcgRXJyb3IoImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIGsoZWUpe2lmKE89PT1zZXRUaW1lb3V0KXJldHVybiBzZXRUaW1lb3V0KGVlLDApO2lmKChPPT09S3x8IU8pJiZzZXRUaW1lb3V0KXJldHVybiBPPXNl'@; put 'dFRpbWVvdXQsc2V0VGltZW91dChlZSwwKTt0cnl7cmV0dXJuIE8oZWUsMCl9Y2F0Y2h7dHJ5e3JldHVybiBPLmNhbGwobnVsbCxlZSwwKX1jYXRjaHtyZXR1cm4gTy5jYWxsKHRoaXMsZWUsMCl9fX0hZnVuY3Rpb24oKXt0cnl7Tz0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRU'@; put 'aW1lb3V0Okt9Y2F0Y2h7Tz1LfXRyeXtSPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0Okl9Y2F0Y2h7Uj1JfX0oKTt2YXIgRSxqPVtdLFY9ITEsQj0tMTtmdW5jdGlvbiBZKCl7ViYmRSYmKFY9ITEsRS5sZW5ndGg/aj1FLmNvbmNhdChqKTpCPS0xLGoubGVu'@; put 'Z3RoJiZYKCkpfWZ1bmN0aW9uIFgoKXtpZighVil7dmFyIGVlPWsoWSk7Vj0hMDtmb3IodmFyIHRlPWoubGVuZ3RoO3RlOyl7Zm9yKEU9aixqPVtdOysrQjx0ZTspRSYmRVtCXS5ydW4oKTtCPS0xLHRlPWoubGVuZ3RofUU9bnVsbCxWPSExLGZ1bmN0aW9uKG9lKXtpZihSPT09Y2xlYXJUaW1l'@; put 'b3V0KXJldHVybiBjbGVhclRpbWVvdXQob2UpO2lmKChSPT09SXx8IVIpJiZjbGVhclRpbWVvdXQpcmV0dXJuIFI9Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dChvZSk7dHJ5e3JldHVybiBSKG9lKX1jYXRjaHt0cnl7cmV0dXJuIFIuY2FsbChudWxsLG9lKX1jYXRjaHtyZXR1cm4gUi5jYWxs'@; put 'KHRoaXMsb2UpfX19KGVlKX19ZnVuY3Rpb24gVShlZSx0ZSl7dGhpcy5mdW49ZWUsdGhpcy5hcnJheT10ZX1mdW5jdGlvbiBxKCl7fXoubmV4dFRpY2s9ZnVuY3Rpb24oZWUpe3ZhciB0ZT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZh'@; put 'ciBvZT0xO29lPGFyZ3VtZW50cy5sZW5ndGg7b2UrKyl0ZVtvZS0xXT1hcmd1bWVudHNbb2VdO2oucHVzaChuZXcgVShlZSx0ZSkpLDEhPT1qLmxlbmd0aHx8Vnx8ayhYKX0sVS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0sei50aXRs'@; put 'ZT0iYnJvd3NlciIsei5icm93c2VyPSEwLHouZW52PXt9LHouYXJndj1bXSx6LnZlcnNpb249IiIsei52ZXJzaW9ucz17fSx6Lm9uPXEsei5hZGRMaXN0ZW5lcj1xLHoub25jZT1xLHoub2ZmPXEsei5yZW1vdmVMaXN0ZW5lcj1xLHoucmVtb3ZlQWxsTGlzdGVuZXJzPXEsei5lbWl0PXEsei5w'@; put 'cmVwZW5kTGlzdGVuZXI9cSx6LnByZXBlbmRPbmNlTGlzdGVuZXI9cSx6Lmxpc3RlbmVycz1mdW5jdGlvbihlZSl7cmV0dXJuW119LHouYmluZGluZz1mdW5jdGlvbihlZSl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSx6LmN3ZD1mdW5jdGlv'@; put 'bigpe3JldHVybiIvIn0sei5jaGRpcj1mdW5jdGlvbihlZSl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sei51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX0sNjI0NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoMzY4OSksSz17fTtL'@; put 'LnJ1bGVzPVIoMzcwNCkubWFwKGZ1bmN0aW9uKEkpe3JldHVybntydWxlOkksc3VmZml4OkkucmVwbGFjZSgvXihcKlwufFwhKS8sIiIpLHB1bnlTdWZmaXg6LTEsd2lsZGNhcmQ6IioiPT09SS5jaGFyQXQoMCksZXhjZXB0aW9uOiIhIj09PUkuY2hhckF0KDApfX0pLEsuZW5kc1dpdGg9ZnVu'@; put 'Y3Rpb24oSSxrKXtyZXR1cm4tMSE9PUkuaW5kZXhPZihrLEkubGVuZ3RoLWsubGVuZ3RoKX0sSy5maW5kUnVsZT1mdW5jdGlvbihJKXt2YXIgaz16LnRvQVNDSUkoSSk7cmV0dXJuIEsucnVsZXMucmVkdWNlKGZ1bmN0aW9uKEUsail7cmV0dXJuLTE9PT1qLnB1bnlTdWZmaXgmJihqLnB1bnlT'@; put 'dWZmaXg9ei50b0FTQ0lJKGouc3VmZml4KSksSy5lbmRzV2l0aChrLCIuIitqLnB1bnlTdWZmaXgpfHxrPT09ai5wdW55U3VmZml4P2o6RX0sbnVsbCl9LE8uZXJyb3JDb2Rlcz17RE9NQUlOX1RPT19TSE9SVDoiRG9tYWluIG5hbWUgdG9vIHNob3J0LiIsRE9NQUlOX1RPT19MT05HOiJEb21h'@; put 'aW4gbmFtZSB0b28gbG9uZy4gSXQgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiAyNTUgY2hhcnMuIixMQUJFTF9TVEFSVFNfV0lUSF9EQVNIOiJEb21haW4gbmFtZSBsYWJlbCBjYW4gbm90IHN0YXJ0IHdpdGggYSBkYXNoLiIsTEFCRUxfRU5EU19XSVRIX0RBU0g6IkRvbWFpbiBuYW1lIGxhYmVs'@; put 'IGNhbiBub3QgZW5kIHdpdGggYSBkYXNoLiIsTEFCRUxfVE9PX0xPTkc6IkRvbWFpbiBuYW1lIGxhYmVsIHNob3VsZCBiZSBhdCBtb3N0IDYzIGNoYXJzIGxvbmcuIixMQUJFTF9UT09fU0hPUlQ6IkRvbWFpbiBuYW1lIGxhYmVsIHNob3VsZCBiZSBhdCBsZWFzdCAxIGNoYXJhY3RlciBsb25n'@; put 'LiIsTEFCRUxfSU5WQUxJRF9DSEFSUzoiRG9tYWluIG5hbWUgbGFiZWwgY2FuIG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciBkYXNoZXMuIn0sSy52YWxpZGF0ZT1mdW5jdGlvbihJKXt2YXIgaz16LnRvQVNDSUkoSSk7aWYoay5sZW5ndGg8MSlyZXR1cm4iRE9NQUlO'@; put 'X1RPT19TSE9SVCI7aWYoay5sZW5ndGg+MjU1KXJldHVybiJET01BSU5fVE9PX0xPTkciO2Zvcih2YXIgRSxqPWsuc3BsaXQoIi4iKSxWPTA7VjxqLmxlbmd0aDsrK1Ype2lmKCEoRT1qW1ZdKS5sZW5ndGgpcmV0dXJuIkxBQkVMX1RPT19TSE9SVCI7aWYoRS5sZW5ndGg+NjMpcmV0dXJuIkxB'@; put 'QkVMX1RPT19MT05HIjtpZigiLSI9PT1FLmNoYXJBdCgwKSlyZXR1cm4iTEFCRUxfU1RBUlRTX1dJVEhfREFTSCI7aWYoIi0iPT09RS5jaGFyQXQoRS5sZW5ndGgtMSkpcmV0dXJuIkxBQkVMX0VORFNfV0lUSF9EQVNIIjtpZighL15bYS16MC05XC1dKyQvLnRlc3QoRSkpcmV0dXJuIkxBQkVM'@; put 'X0lOVkFMSURfQ0hBUlMifX0sTy5wYXJzZT1mdW5jdGlvbihJKXtpZigic3RyaW5nIiE9dHlwZW9mIEkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRG9tYWluIG5hbWUgbXVzdCBiZSBhIHN0cmluZy4iKTt2YXIgaz1JLnNsaWNlKDApLnRvTG93ZXJDYXNlKCk7Ii4iPT09ay5jaGFyQXQoay5sZW5n'@; put 'dGgtMSkmJihrPWsuc2xpY2UoMCxrLmxlbmd0aC0xKSk7dmFyIEU9Sy52YWxpZGF0ZShrKTtpZihFKXJldHVybntpbnB1dDpJLGVycm9yOnttZXNzYWdlOk8uZXJyb3JDb2Rlc1tFXSxjb2RlOkV9fTt2YXIgaj17aW5wdXQ6SSx0bGQ6bnVsbCxzbGQ6bnVsbCxkb21haW46bnVsbCxzdWJkb21h'@; put 'aW46bnVsbCxsaXN0ZWQ6ITF9LFY9ay5zcGxpdCgiLiIpO2lmKCJsb2NhbCI9PT1WW1YubGVuZ3RoLTFdKXJldHVybiBqO3ZhciBCPWZ1bmN0aW9uKCl7cmV0dXJuL3huLS0vLnRlc3QoaykmJihqLmRvbWFpbiYmKGouZG9tYWluPXoudG9BU0NJSShqLmRvbWFpbikpLGouc3ViZG9tYWluJiYo'@; put 'ai5zdWJkb21haW49ei50b0FTQ0lJKGouc3ViZG9tYWluKSkpLGp9LFk9Sy5maW5kUnVsZShrKTtpZighWSlyZXR1cm4gVi5sZW5ndGg8Mj9qOihqLnRsZD1WLnBvcCgpLGouc2xkPVYucG9wKCksai5kb21haW49W2ouc2xkLGoudGxkXS5qb2luKCIuIiksVi5sZW5ndGgmJihqLnN1YmRvbWFp'@; put 'bj1WLnBvcCgpKSxCKCkpO2oubGlzdGVkPSEwO3ZhciBYPVkuc3VmZml4LnNwbGl0KCIuIiksVT1WLnNsaWNlKDAsVi5sZW5ndGgtWC5sZW5ndGgpO3JldHVybiBZLmV4Y2VwdGlvbiYmVS5wdXNoKFguc2hpZnQoKSksai50bGQ9WC5qb2luKCIuIiksVS5sZW5ndGg/KFkud2lsZGNhcmQmJihY'@; put 'LnVuc2hpZnQoVS5wb3AoKSksai50bGQ9WC5qb2luKCIuIikpLFUubGVuZ3RoJiYoai5zbGQ9VS5wb3AoKSxqLmRvbWFpbj1bai5zbGQsai50bGRdLmpvaW4oIi4iKSxVLmxlbmd0aCYmKGouc3ViZG9tYWluPVUuam9pbigiLiIpKSksQigpKTpCKCl9LE8uZ2V0PWZ1bmN0aW9uKEkpe3JldHVy'@; put 'biBJJiZPLnBhcnNlKEkpLmRvbWFpbnx8bnVsbH0sTy5pc1ZhbGlkPWZ1bmN0aW9uKEkpe3ZhciBrPU8ucGFyc2UoSSk7cmV0dXJuISghay5kb21haW58fCFrLmxpc3RlZCl9fSw3OTAwOihNLE8sUik9PntPLnB1YmxpY0VuY3J5cHQ9Uig2NTU5KSxPLnByaXZhdGVEZWNyeXB0PVIoNjEzOCks'@; put 'Ty5wcml2YXRlRW5jcnlwdD1mdW5jdGlvbih6LEspe3JldHVybiBPLnB1YmxpY0VuY3J5cHQoeixLLCEwKX0sTy5wdWJsaWNEZWNyeXB0PWZ1bmN0aW9uKHosSyl7cmV0dXJuIE8ucHJpdmF0ZURlY3J5cHQoeixLLCEwKX19LDkxOTk6KE0sTyxSKT0+e3ZhciB6PVIoMzQ4MiksSz1SKDk1MDkp'@; put 'LkJ1ZmZlcjtmdW5jdGlvbiBJKGspe3ZhciBFPUsuYWxsb2NVbnNhZmUoNCk7cmV0dXJuIEUud3JpdGVVSW50MzJCRShrLDApLEV9TS5leHBvcnRzPWZ1bmN0aW9uKGssRSl7Zm9yKHZhciBqLFY9Sy5hbGxvYygwKSxCPTA7Vi5sZW5ndGg8RTspaj1JKEIrKyksVj1LLmNvbmNhdChbVix6KCJz'@; put 'aGExIikudXBkYXRlKGspLnVwZGF0ZShqKS5kaWdlc3QoKV0pO3JldHVybiBWLnNsaWNlKDAsRSl9fSwyMTQ0OmZ1bmN0aW9uKE0sTyxSKXshZnVuY3Rpb24oeixLKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gSShnLEMpe2lmKCFnKXRocm93IG5ldyBFcnJvcihDfHwiQXNzZXJ0aW9uIGZhaWxl'@; put 'ZCIpfWZ1bmN0aW9uIGsoZyxDKXtnLnN1cGVyXz1DO3ZhciBTPWZ1bmN0aW9uKCl7fTtTLnByb3RvdHlwZT1DLnByb3RvdHlwZSxnLnByb3RvdHlwZT1uZXcgUyxnLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1nfWZ1bmN0aW9uIEUoZyxDLFMpe2lmKEUuaXNCTihnKSlyZXR1cm4gZzt0aGlzLm5l'@; put 'Z2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09ZyYmKCJsZSIhPT1DJiYiYmUiIT09Q3x8KFM9QyxDPTEwKSx0aGlzLl9pbml0KGd8fDAsQ3x8MTAsU3x8ImJlIikpfXZhciBqOyJvYmplY3QiPT10eXBlb2Ygej96LmV4cG9ydHM9RTpL'@; put 'LkJOPUUsRS5CTj1FLEUud29yZFNpemU9MjY7dHJ5e2o9dHlwZW9mIHdpbmRvdzwidSImJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpSKDcxMDgpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gVihnLEMpe3ZhciBTPWcuY2hhckNvZGVBdChDKTtyZXR1cm4gUz49NjUmJlM8'@; put 'PTcwP1MtNTU6Uz49OTcmJlM8PTEwMj9TLTg3OlMtNDgmMTV9ZnVuY3Rpb24gQihnLEMsUyl7dmFyIHY9VihnLFMpO3JldHVybiBTLTE+PUMmJih2fD1WKGcsUy0xKTw8NCksdn1mdW5jdGlvbiBZKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9TWF0aC5taW4oZy5sZW5ndGgsUyksSj1DO0o8dztK'@; put 'Kyspe3ZhciBuZT1nLmNoYXJDb2RlQXQoSiktNDg7cCo9dixwKz1uZT49NDk/bmUtNDkrMTA6bmU+PTE3P25lLTE3KzEwOm5lfXJldHVybiBwfUUuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIEV8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9mIGcmJmcuY29uc3RydWN0'@; put 'b3Iud29yZFNpemU9PT1FLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSxFLm1heD1mdW5jdGlvbihnLEMpe3JldHVybiBnLmNtcChDKT4wP2c6Q30sRS5taW49ZnVuY3Rpb24oZyxDKXtyZXR1cm4gZy5jbXAoQyk8MD9nOkN9LEUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGcs'@; put 'QyxTKXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyxDLFMpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcsQyxTKTsiaGV4Ij09PUMmJihDPTE2KSxJKEM9PT0oMHxDKSYmQz49MiYmQzw9MzYpO3ZhciB2PTA7Ii0i'@; put 'PT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih2KyssdGhpcy5uZWdhdGl2ZT0xKSx2PGcubGVuZ3RoJiYoMTY9PT1DP3RoaXMuX3BhcnNlSGV4KGcsdixTKToodGhpcy5fcGFyc2VCYXNlKGcsQyx2KSwibGUiPT09UyYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9B'@; put 'cnJheSgpLEMsUykpKX0sRS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyxDLFMpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9'@; put 'WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEkoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVMmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRv'@; put 'QXJyYXkoKSxDLFMpfSxFLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcsQyxTKXtpZihJKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKGcubGVu'@; put 'Z3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHY9MDt2PHRoaXMubGVuZ3RoO3YrKyl0aGlzLndvcmRzW3ZdPTA7dmFyIHAsdyxKPTA7aWYoImJlIj09PVMpZm9yKHY9Zy5sZW5ndGgtMSxwPTA7dj49MDt2LT0zKXRoaXMud29yZHNbcF18PSh3PWdbdl18'@; put 'Z1t2LTFdPDw4fGdbdi0yXTw8MTYpPDxKJjY3MTA4ODYzLHRoaXMud29yZHNbcCsxXT13Pj4+MjYtSiY2NzEwODg2MywoSis9MjQpPj0yNiYmKEotPTI2LHArKyk7ZWxzZSBpZigibGUiPT09Uylmb3Iodj0wLHA9MDt2PGcubGVuZ3RoO3YrPTMpdGhpcy53b3Jkc1twXXw9KHc9Z1t2XXxnW3Yr'@; put 'MV08PDh8Z1t2KzJdPDwxNik8PEomNjcxMDg4NjMsdGhpcy53b3Jkc1twKzFdPXc+Pj4yNi1KJjY3MTA4ODYzLChKKz0yNCk+PTI2JiYoSi09MjYscCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyxDLFMpe3RoaXMubGVuZ3RoPU1hdGgu'@; put 'Y2VpbCgoZy5sZW5ndGgtQykvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdj0wO3Y8dGhpcy5sZW5ndGg7disrKXRoaXMud29yZHNbdl09MDt2YXIgcCx3PTAsSj0wO2lmKCJiZSI9PT1TKWZvcih2PWcubGVuZ3RoLTE7dj49Qzt2LT0yKXA9QihnLEMsdik8'@; put 'PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O2Vsc2UgZm9yKHY9KGcubGVuZ3RoLUMpJTI9PTA/QysxOkM7djxnLmxlbmd0aDt2Kz0yKXA9QihnLEMsdik8PHcsdGhpcy53b3Jkc1tKXXw9NjcxMDg4NjMmcCx3'@; put 'Pj0xOD8ody09MTgsdGhpcy53b3Jkc1tKKz0xXXw9cD4+PjI2KTp3Kz04O3RoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLEMsUyl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHY9MCxwPTE7cDw9NjcxMDg4NjM7cCo9Qyl2Kys7di0t'@; put 'LHA9cC9DfDA7Zm9yKHZhciB3PWcubGVuZ3RoLVMsSj13JXYsbmU9TWF0aC5taW4odyx3LUopK1MsZGU9MCxmZT1TO2ZlPG5lO2ZlKz12KWRlPVkoZyxmZSxmZSt2LEMpLHRoaXMuaW11bG4ocCksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1kZTp0aGlzLl9pYWRk'@; put 'bihkZSk7aWYoMCE9PUope3ZhciB4ZT0xO2ZvcihkZT1ZKGcsZmUsZy5sZW5ndGgsQyksZmU9MDtmZTxKO2ZlKyspeGUqPUM7dGhpcy5pbXVsbih4ZSksdGhpcy53b3Jkc1swXStkZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1kZTp0aGlzLl9pYWRkbihkZSl9dGhpcy5zdHJpcCgpfSxFLnBy'@; put 'b3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKylnLndvcmRzW0NdPXRoaXMud29yZHNbQ107Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVkPXRo'@; put 'aXMucmVkfSxFLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyBFKG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sRS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4g'@; put 'dGhpc30sRS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxFLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'MT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sRS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWD1bIiIsIjAiLCIw'@; put 'MCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAw'@; put 'MDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxVPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLHE9WzAsMCwzMzU1NDQzMiw0'@; put 'MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYz'@; put 'Miw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gZWUoZyxDLFMpe1MubmVnYXRpdmU9Qy5uZWdhdGl2ZV5n'@; put 'Lm5lZ2F0aXZlO3ZhciB2PWcubGVuZ3RoK0MubGVuZ3RofDA7Uy5sZW5ndGg9dix2PXYtMXwwO3ZhciBwPTB8Zy53b3Jkc1swXSx3PTB8Qy53b3Jkc1swXSxKPXAqdyxkZT1KLzY3MTA4ODY0fDA7Uy53b3Jkc1swXT02NzEwODg2MyZKO2Zvcih2YXIgZmU9MTtmZTx2O2ZlKyspe2Zvcih2YXIg'@; put 'eGU9ZGU+Pj4yNixMZT02NzEwODg2MyZkZSxGZT1NYXRoLm1pbihmZSxDLmxlbmd0aC0xKSxPZT1NYXRoLm1heCgwLGZlLWcubGVuZ3RoKzEpO09lPD1GZTtPZSsrKXhlKz0oSj0ocD0wfGcud29yZHNbZmUtT2V8MF0pKih3PTB8Qy53b3Jkc1tPZV0pK0xlKS82NzEwODg2NHwwLExlPTY3MTA4'@; put 'ODYzJko7Uy53b3Jkc1tmZV09MHxMZSxkZT0wfHhlfXJldHVybiAwIT09ZGU/Uy53b3Jkc1tmZV09MHxkZTpTLmxlbmd0aC0tLFMuc3RyaXAoKX1FLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihnLEMpe3ZhciBTO2lmKEM9MHxDfHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe1M9'@; put 'IiI7Zm9yKHZhciB2PTAscD0wLHc9MDt3PHRoaXMubGVuZ3RoO3crKyl7dmFyIEo9dGhpcy53b3Jkc1t3XSxuZT0oMTY3NzcyMTUmKEo8PHZ8cCkpLnRvU3RyaW5nKDE2KTtTPTAhPShwPUo+Pj4yNC12JjE2Nzc3MjE1KXx8dyE9PXRoaXMubGVuZ3RoLTE/WFs2LW5lLmxlbmd0aF0rbmUrUzpu'@; put 'ZStTLCh2Kz0yKT49MjYmJih2LT0yNix3LS0pfWZvcigwIT09cCYmKFM9cC50b1N0cmluZygxNikrUyk7Uy5sZW5ndGglQyE9MDspUz0iMCIrUztyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihTPSItIitTKSxTfWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBkZT1VW2ddLGZlPXFb'@; put 'Z107Uz0iIjt2YXIgeGU9dGhpcy5jbG9uZSgpO2Zvcih4ZS5uZWdhdGl2ZT0wOyF4ZS5pc1plcm8oKTspe3ZhciBMZT14ZS5tb2RuKGZlKS50b1N0cmluZyhnKTtTPSh4ZT14ZS5pZGl2bihmZSkpLmlzWmVybygpP0xlK1M6WFtkZS1MZS5sZW5ndGhdK0xlK1N9Zm9yKHRoaXMuaXNaZXJvKCkm'@; put 'JihTPSIwIitTKTtTLmxlbmd0aCVDIT0wOylTPSIwIitTO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFM9Ii0iK1MpLFN9SSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxFLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMud29yZHNbMF07'@; put 'cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJkkoITEsIk51bWJlciBjYW4gb25seSBz'@; put 'YWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LEUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sRS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oZyxDKXtyZXR1cm4gSSh2b2lkIDAhPT1qKSx0'@; put 'aGlzLnRvQXJyYXlMaWtlKGosZyxDKX0sRS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLEMpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcsQyl9LEUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj10aGlzLmJ5dGVMZW5ndGgoKSxwPVN8fE1h'@; put 'dGgubWF4KDEsdik7SSh2PD1wLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksSShwPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgdyxKLG5lPSJsZSI9PT1DLGRlPW5ldyBnKHApLGZlPXRoaXMuY2xvbmUoKTtpZihuZSl7'@; put 'Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4oOCksZGVbSl09dztmb3IoO0o8cDtKKyspZGVbSl09MH1lbHNle2ZvcihKPTA7SjxwLXY7SisrKWRlW0pdPTA7Zm9yKEo9MDshZmUuaXNaZXJvKCk7SisrKXc9ZmUuYW5kbG4oMjU1KSxmZS5pdXNocm4o'@; put 'OCksZGVbcC1KLTFdPXd9cmV0dXJuIGRlfSxFLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciBDPWcsUz0wO3JldHVybiBDPj00MDk2JiYoUys9MTMsQz4+Pj0xMyksQz49NjQmJihTKz03'@; put 'LEM+Pj49NyksQz49OCYmKFMrPTQsQz4+Pj00KSxDPj0yJiYoUys9MixDPj4+PTIpLFMrQ30sRS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgQz1nLFM9MDtyZXR1cm4hKDgxOTEmQykmJihTKz0xMyxDPj4+PTEzKSwhKDEyNyZDKSYmKFMr'@; put 'PTcsQz4+Pj03KSwhKDE1JkMpJiYoUys9NCxDPj4+PTQpLCEoMyZDKSYmKFMrPTIsQz4+Pj0yKSwhKDEmQykmJlMrKyxTfSxFLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgQz10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0'@; put 'aGlzLmxlbmd0aC0xKStDfSxFLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAsQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW0NdKTtpZihnKz1TLDI2IT09UylicmVh'@; put 'a31yZXR1cm4gZ30sRS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sRS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGcpLmlhZGRu'@; put 'KDEpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sRS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVn'@; put 'YXRpdmV9LEUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxFLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxFLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGcp'@; put 'e2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIEM9MDtDPGcubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXRoaXMud29yZHNbQ118Zy53b3Jkc1tDXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pb3I9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sRS5wcm90b3R5cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0sRS5wcm90b3R5'@; put 'cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpnLmNsb25lKCkuaXVvcih0aGlzKX0sRS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFyIEM7Qz10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7Zm9yKHZhciBT'@; put 'PTA7UzxDLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1NdJmcud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPUMubGVuZ3RoLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gSSgwPT0odGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZl'@; put 'KSksdGhpcy5pdWFuZChnKX0sRS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sRS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+'@; put 'Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sRS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIEMsUzt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oQz10aGlzLFM9Zyk6KEM9ZyxTPXRoaXMpO2Zvcih2YXIgdj0wO3Y8Uy5sZW5ndGg7disr'@; put 'KXRoaXMud29yZHNbdl09Qy53b3Jkc1t2XV5TLndvcmRzW3ZdO2lmKHRoaXMhPT1DKWZvcig7djxDLmxlbmd0aDt2KyspdGhpcy53b3Jkc1t2XT1DLndvcmRzW3ZdO3JldHVybiB0aGlzLmxlbmd0aD1DLmxlbmd0aCx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIEkoMD09KHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LEUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoZyk6Zy5jbG9uZSgpLml4b3IodGhpcyl9LEUucHJvdG90eXBl'@; put 'LnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LEUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz0wfE1hdGguY2Vp'@; put 'bChnLzI2KSxTPWclMjY7dGhpcy5fZXhwYW5kKEMpLFM+MCYmQy0tO2Zvcih2YXIgdj0wO3Y8Qzt2KyspdGhpcy53b3Jkc1t2XT02NzEwODg2MyZ+dGhpcy53b3Jkc1t2XTtyZXR1cm4gUz4wJiYodGhpcy53b3Jkc1t2XT1+dGhpcy53b3Jkc1t2XSY2NzEwODg2Mz4+MjYtUyksdGhpcy5zdHJp'@; put 'cCgpfSxFLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LEUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyxDKXtJKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIFM9Zy8yNnwwLHY9ZyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFMr'@; put 'MSksdGhpcy53b3Jkc1tTXT1DP3RoaXMud29yZHNbU118MTw8djp0aGlzLndvcmRzW1NdJn4oMTw8diksdGhpcy5zdHJpcCgpfSxFLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciBDLFMsdjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVn'@; put 'YXRpdmU9MCxDPXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAsQz10aGlzLmlzdWIoZyksZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCk7dGhpcy5sZW5n'@; put 'dGg+Zy5sZW5ndGg/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHA9MCx3PTA7dzx2Lmxlbmd0aDt3KyspdGhpcy53b3Jkc1t3XT02NzEwODg2MyYoQz0oMHxTLndvcmRzW3ddKSsoMHx2LndvcmRzW3ddKStwKSxwPUM+Pj4yNjtmb3IoOzAhPT1wJiZ3PFMubGVuZ3RoO3crKyl0'@; put 'aGlzLndvcmRzW3ddPTY3MTA4ODYzJihDPSgwfFMud29yZHNbd10pK3ApLHA9Qz4+PjI2O2lmKHRoaXMubGVuZ3RoPVMubGVuZ3RoLDAhPT1wKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXAsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFMhPT10aGlzKWZvcig7dzxTLmxlbmd0aDt3KyspdGhpcy53'@; put 'b3Jkc1t3XT1TLndvcmRzW3ddO3JldHVybiB0aGlzfSxFLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIEM7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2ZT0wLEM9dGhpcy5zdWIoZyksZy5uZWdhdGl2ZV49MSxDKTowPT09Zy5uZWdhdGl2'@; put 'ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxDPWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxDKTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNsb25lKCkuaWFkZCh0aGlzKX0sRS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnKXtp'@; put 'ZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciBDPXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLEMuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25v'@; put 'cm1TaWduKCk7dmFyIFMsdixwPXRoaXMuY21wKGcpO2lmKDA9PT1wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztwPjA/KFM9dGhpcyx2PWcpOihTPWcsdj10aGlzKTtmb3IodmFyIHc9MCxKPTA7Sjx2Lmxlbmd0aDtKKyspdz0oQz0o'@; put 'MHxTLndvcmRzW0pdKS0oMHx2LndvcmRzW0pdKSt3KT4+MjYsdGhpcy53b3Jkc1tKXT02NzEwODg2MyZDO2Zvcig7MCE9PXcmJko8Uy5sZW5ndGg7SisrKXc9KEM9KDB8Uy53b3Jkc1tKXSkrdyk+PjI2LHRoaXMud29yZHNbSl09NjcxMDg4NjMmQztpZigwPT09dyYmSjxTLmxlbmd0aCYmUyE9'@; put 'PXRoaXMpZm9yKDtKPFMubGVuZ3RoO0orKyl0aGlzLndvcmRzW0pdPVMud29yZHNbSl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEopLFMhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnKXty'@; put 'ZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciB0ZT1mdW5jdGlvbihnLEMsUyl7dmFyIHYscCx3LEo9Zy53b3JkcyxuZT1DLndvcmRzLGRlPVMud29yZHMsZmU9MCx4ZT0wfEpbMF0sTGU9ODE5MSZ4ZSxGZT14ZT4+PjEzLE9lPTB8SlsxXSxqZT04MTkxJk9lLFdlPU9lPj4+MTMsS2U9'@; put 'MHxKWzJdLFllPTgxOTEmS2UsUWU9S2U+Pj4xMyxsdD0wfEpbM10sUGU9ODE5MSZsdCxiZT1sdD4+PjEzLEFlPTB8Sls0XSxUZT04MTkxJkFlLHFlPUFlPj4+MTMsWGU9MHxKWzVdLFVlPTgxOTEmWGUsaHQ9WGU+Pj4xMyxNZT0wfEpbNl0sRGU9ODE5MSZNZSx6ZT1NZT4+PjEzLG90PTB8Sls3'@; put 'XSx1dD04MTkxJm90LE10PW90Pj4+MTMsSHQ9MHxKWzhdLFB0PTgxOTEmSHQsb249SHQ+Pj4xMyxDbj0wfEpbOV0sVXQ9ODE5MSZDbixibj1Dbj4+PjEzLFduPTB8bmVbMF0sZW49ODE5MSZXbiwkbj1Xbj4+PjEzLEhuPTB8bmVbMV0sZnQ9ODE5MSZIbixmbj1Ibj4+PjEzLGhuPTB8bmVbMl0s'@; put 'd3Q9ODE5MSZobixYdD1obj4+PjEzLF90PTB8bmVbM10sTnQ9ODE5MSZfdCxtbj1fdD4+PjEzLHJ0PTB8bmVbNF0sSXQ9ODE5MSZydCxRdD1ydD4+PjEzLER0PTB8bmVbNV0scHQ9ODE5MSZEdCxZdD1EdD4+PjEzLEluPTB8bmVbNl0senQ9ODE5MSZJbix5bj1Jbj4+PjEzLHhuPTB8bmVbN10s'@; put 'c249ODE5MSZ4bixCbj14bj4+PjEzLFJuPTB8bmVbOF0sJHQ9ODE5MSZSbixGbj1Sbj4+PjEzLG5pPTB8bmVbOV0sbG49ODE5MSZuaSxqbj1uaT4+PjEzO1MubmVnYXRpdmU9Zy5uZWdhdGl2ZV5DLm5lZ2F0aXZlLFMubGVuZ3RoPTE5O3ZhciBxcj0oZmUrKHY9TWF0aC5pbXVsKExlLGVuKSl8'@; put 'MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChMZSwkbikpK01hdGguaW11bChGZSxlbil8MCkpPDwxMyl8MDtmZT0oKHc9TWF0aC5pbXVsKEZlLCRuKSkrKHA+Pj4xMyl8MCkrKHFyPj4+MjYpfDAscXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKGplLGVuKSxwPShwPU1hdGguaW11bChqZSwkbikp'@; put 'K01hdGguaW11bChXZSxlbil8MCx3PU1hdGguaW11bChXZSwkbik7dmFyIGdpPShmZSsodj12K01hdGguaW11bChMZSxmdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLGZuKXwwKStNYXRoLmltdWwoRmUsZnQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLGZu'@; put 'KXwwKSsocD4+PjEzKXwwKSsoZ2k+Pj4yNil8MCxnaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoWWUsZW4pLHA9KHA9TWF0aC5pbXVsKFllLCRuKSkrTWF0aC5pbXVsKFFlLGVuKXwwLHc9TWF0aC5pbXVsKFFlLCRuKSx2PXYrTWF0aC5pbXVsKGplLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUs'@; put 'Zm4pfDApK01hdGguaW11bChXZSxmdCl8MCx3PXcrTWF0aC5pbXVsKFdlLGZuKXwwO3ZhciB4cj0oZmUrKHY9ditNYXRoLmltdWwoTGUsd3QpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxYdCl8MCkrTWF0aC5pbXVsKEZlLHd0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGgu'@; put 'aW11bChGZSxYdCl8MCkrKHA+Pj4xMyl8MCkrKHhyPj4+MjYpfDAseHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFBlLGVuKSxwPShwPU1hdGguaW11bChQZSwkbikpK01hdGguaW11bChiZSxlbil8MCx3PU1hdGguaW11bChiZSwkbiksdj12K01hdGguaW11bChZZSxmdCl8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKFllLGZuKXwwKStNYXRoLmltdWwoUWUsZnQpfDAsdz13K01hdGguaW11bChRZSxmbil8MCx2PXYrTWF0aC5pbXVsKGplLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWHQpfDApK01hdGguaW11bChXZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFdlLFh0KXwwO3ZhciBVaT0oZmUrKHY9'@; put 'ditNYXRoLmltdWwoTGUsTnQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxtbil8MCkrTWF0aC5pbXVsKEZlLE50KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxtbil8MCkrKHA+Pj4xMyl8MCkrKFVpPj4+MjYpfDAsVWkmPTY3MTA4ODYzLHY9TWF0aC5pbXVs'@; put 'KFRlLGVuKSxwPShwPU1hdGguaW11bChUZSwkbikpK01hdGguaW11bChxZSxlbil8MCx3PU1hdGguaW11bChxZSwkbiksdj12K01hdGguaW11bChQZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLGZuKXwwKStNYXRoLmltdWwoYmUsZnQpfDAsdz13K01hdGguaW11bChiZSxmbil8MCx2PXYr'@; put 'TWF0aC5pbXVsKFllLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoWWUsWHQpfDApK01hdGguaW11bChRZSx3dCl8MCx3PXcrTWF0aC5pbXVsKFFlLFh0KXwwLHY9ditNYXRoLmltdWwoamUsTnQpfDAscD0ocD1wK01hdGguaW11bChqZSxtbil8MCkrTWF0aC5pbXVsKFdlLE50KXwwLHc9dytNYXRo'@; put 'LmltdWwoV2UsbW4pfDA7dmFyIEtyPShmZSsodj12K01hdGguaW11bChMZSxJdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLFF0KXwwKStNYXRoLmltdWwoRmUsSXQpfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLFF0KXwwKSsocD4+PjEzKXwwKSsoS3I+Pj4y'@; put 'Nil8MCxLciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoVWUsZW4pLHA9KHA9TWF0aC5pbXVsKFVlLCRuKSkrTWF0aC5pbXVsKGh0LGVuKXwwLHc9TWF0aC5pbXVsKGh0LCRuKSx2PXYrTWF0aC5pbXVsKFRlLGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsZm4pfDApK01hdGguaW11bChxZSxmdCl8'@; put 'MCx3PXcrTWF0aC5pbXVsKHFlLGZuKXwwLHY9ditNYXRoLmltdWwoUGUsd3QpfDAscD0ocD1wK01hdGguaW11bChQZSxYdCl8MCkrTWF0aC5pbXVsKGJlLHd0KXwwLHc9dytNYXRoLmltdWwoYmUsWHQpfDAsdj12K01hdGguaW11bChZZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLG1uKXww'@; put 'KStNYXRoLmltdWwoUWUsTnQpfDAsdz13K01hdGguaW11bChRZSxtbil8MCx2PXYrTWF0aC5pbXVsKGplLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsUXQpfDApK01hdGguaW11bChXZSxJdCl8MCx3PXcrTWF0aC5pbXVsKFdlLFF0KXwwO3ZhciBubz0oZmUrKHY9ditNYXRoLmltdWwoTGUs'@; put 'cHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxZdCl8MCkrTWF0aC5pbXVsKEZlLHB0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSxZdCl8MCkrKHA+Pj4xMyl8MCkrKG5vPj4+MjYpfDAsbm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKERlLGVuKSxwPShwPU1h'@; put 'dGguaW11bChEZSwkbikpK01hdGguaW11bCh6ZSxlbil8MCx3PU1hdGguaW11bCh6ZSwkbiksdj12K01hdGguaW11bChVZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLGZuKXwwKStNYXRoLmltdWwoaHQsZnQpfDAsdz13K01hdGguaW11bChodCxmbil8MCx2PXYrTWF0aC5pbXVsKFRlLHd0'@; put 'KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWHQpfDApK01hdGguaW11bChxZSx3dCl8MCx3PXcrTWF0aC5pbXVsKHFlLFh0KXwwLHY9ditNYXRoLmltdWwoUGUsTnQpfDAscD0ocD1wK01hdGguaW11bChQZSxtbil8MCkrTWF0aC5pbXVsKGJlLE50KXwwLHc9dytNYXRoLmltdWwoYmUsbW4pfDAs'@; put 'dj12K01hdGguaW11bChZZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLFF0KXwwKStNYXRoLmltdWwoUWUsSXQpfDAsdz13K01hdGguaW11bChRZSxRdCl8MCx2PXYrTWF0aC5pbXVsKGplLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoamUsWXQpfDApK01hdGguaW11bChXZSxwdCl8MCx3PXcr'@; put 'TWF0aC5pbXVsKFdlLFl0KXwwO3ZhciBIcj0oZmUrKHY9ditNYXRoLmltdWwoTGUsenQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSx5bil8MCkrTWF0aC5pbXVsKEZlLHp0KXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChGZSx5bil8MCkrKHA+Pj4xMyl8MCkrKEhy'@; put 'Pj4+MjYpfDAsSHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKHV0LGVuKSxwPShwPU1hdGguaW11bCh1dCwkbikpK01hdGguaW11bChNdCxlbil8MCx3PU1hdGguaW11bChNdCwkbiksdj12K01hdGguaW11bChEZSxmdCl8MCxwPShwPXArTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoemUs'@; put 'ZnQpfDAsdz13K01hdGguaW11bCh6ZSxmbil8MCx2PXYrTWF0aC5pbXVsKFVlLHd0KXwwLHA9KHA9cCtNYXRoLmltdWwoVWUsWHQpfDApK01hdGguaW11bChodCx3dCl8MCx3PXcrTWF0aC5pbXVsKGh0LFh0KXwwLHY9ditNYXRoLmltdWwoVGUsTnQpfDAscD0ocD1wK01hdGguaW11bChUZSxt'@; put 'bil8MCkrTWF0aC5pbXVsKHFlLE50KXwwLHc9dytNYXRoLmltdWwocWUsbW4pfDAsdj12K01hdGguaW11bChQZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFBlLFF0KXwwKStNYXRoLmltdWwoYmUsSXQpfDAsdz13K01hdGguaW11bChiZSxRdCl8MCx2PXYrTWF0aC5pbXVsKFllLHB0KXwwLHA9'@; put 'KHA9cCtNYXRoLmltdWwoWWUsWXQpfDApK01hdGguaW11bChRZSxwdCl8MCx3PXcrTWF0aC5pbXVsKFFlLFl0KXwwLHY9ditNYXRoLmltdWwoamUsenQpfDAscD0ocD1wK01hdGguaW11bChqZSx5bil8MCkrTWF0aC5pbXVsKFdlLHp0KXwwLHc9dytNYXRoLmltdWwoV2UseW4pfDA7dmFyIHFp'@; put 'PShmZSsodj12K01hdGguaW11bChMZSxzbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKExlLEJuKXwwKStNYXRoLmltdWwoRmUsc24pfDApKTw8MTMpfDA7ZmU9KCh3PXcrTWF0aC5pbXVsKEZlLEJuKXwwKSsocD4+PjEzKXwwKSsocWk+Pj4yNil8MCxxaSY9NjcxMDg4NjMsdj1N'@; put 'YXRoLmltdWwoUHQsZW4pLHA9KHA9TWF0aC5pbXVsKFB0LCRuKSkrTWF0aC5pbXVsKG9uLGVuKXwwLHc9TWF0aC5pbXVsKG9uLCRuKSx2PXYrTWF0aC5pbXVsKHV0LGZ0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsZm4pfDApK01hdGguaW11bChNdCxmdCl8MCx3PXcrTWF0aC5pbXVsKE10LGZu'@; put 'KXwwLHY9ditNYXRoLmltdWwoRGUsd3QpfDAscD0ocD1wK01hdGguaW11bChEZSxYdCl8MCkrTWF0aC5pbXVsKHplLHd0KXwwLHc9dytNYXRoLmltdWwoemUsWHQpfDAsdj12K01hdGguaW11bChVZSxOdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLG1uKXwwKStNYXRoLmltdWwoaHQsTnQpfDAs'@; put 'dz13K01hdGguaW11bChodCxtbil8MCx2PXYrTWF0aC5pbXVsKFRlLEl0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsUXQpfDApK01hdGguaW11bChxZSxJdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFF0KXwwLHY9ditNYXRoLmltdWwoUGUscHQpfDAscD0ocD1wK01hdGguaW11bChQZSxZdCl8MCkr'@; put 'TWF0aC5pbXVsKGJlLHB0KXwwLHc9dytNYXRoLmltdWwoYmUsWXQpfDAsdj12K01hdGguaW11bChZZSx6dCl8MCxwPShwPXArTWF0aC5pbXVsKFllLHluKXwwKStNYXRoLmltdWwoUWUsenQpfDAsdz13K01hdGguaW11bChRZSx5bil8MCx2PXYrTWF0aC5pbXVsKGplLHNuKXwwLHA9KHA9cCtN'@; put 'YXRoLmltdWwoamUsQm4pfDApK01hdGguaW11bChXZSxzbil8MCx3PXcrTWF0aC5pbXVsKFdlLEJuKXwwO3ZhciBKaT0oZmUrKHY9ditNYXRoLmltdWwoTGUsJHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxGbil8MCkrTWF0aC5pbXVsKEZlLCR0KXwwKSk8PDEzKXwwO2Zl'@; put 'PSgodz13K01hdGguaW11bChGZSxGbil8MCkrKHA+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGVuKSxwPShwPU1hdGguaW11bChVdCwkbikpK01hdGguaW11bChibixlbil8MCx3PU1hdGguaW11bChibiwkbiksdj12K01hdGguaW11bChQdCxmdCl8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKFB0LGZuKXwwKStNYXRoLmltdWwob24sZnQpfDAsdz13K01hdGguaW11bChvbixmbil8MCx2PXYrTWF0aC5pbXVsKHV0LHd0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWHQpfDApK01hdGguaW11bChNdCx3dCl8MCx3PXcrTWF0aC5pbXVsKE10LFh0KXwwLHY9'@; put 'ditNYXRoLmltdWwoRGUsTnQpfDAscD0ocD1wK01hdGguaW11bChEZSxtbil8MCkrTWF0aC5pbXVsKHplLE50KXwwLHc9dytNYXRoLmltdWwoemUsbW4pfDAsdj12K01hdGguaW11bChVZSxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLFF0KXwwKStNYXRoLmltdWwoaHQsSXQpfDAsdz13K01h'@; put 'dGguaW11bChodCxRdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsWXQpfDApK01hdGguaW11bChxZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHFlLFl0KXwwLHY9ditNYXRoLmltdWwoUGUsenQpfDAscD0ocD1wK01hdGguaW11bChQZSx5bil8MCkrTWF0aC5p'@; put 'bXVsKGJlLHp0KXwwLHc9dytNYXRoLmltdWwoYmUseW4pfDAsdj12K01hdGguaW11bChZZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFllLEJuKXwwKStNYXRoLmltdWwoUWUsc24pfDAsdz13K01hdGguaW11bChRZSxCbil8MCx2PXYrTWF0aC5pbXVsKGplLCR0KXwwLHA9KHA9cCtNYXRoLmlt'@; put 'dWwoamUsRm4pfDApK01hdGguaW11bChXZSwkdCl8MCx3PXcrTWF0aC5pbXVsKFdlLEZuKXwwO3ZhciBhbz0oZmUrKHY9ditNYXRoLmltdWwoTGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChMZSxqbil8MCkrTWF0aC5pbXVsKEZlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13'@; put 'K01hdGguaW11bChGZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGFvPj4+MjYpfDAsYW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LGZ0KSxwPShwPU1hdGguaW11bChVdCxmbikpK01hdGguaW11bChibixmdCl8MCx3PU1hdGguaW11bChibixmbiksdj12K01hdGguaW11bChQdCx3dCl8MCxwPShw'@; put 'PXArTWF0aC5pbXVsKFB0LFh0KXwwKStNYXRoLmltdWwob24sd3QpfDAsdz13K01hdGguaW11bChvbixYdCl8MCx2PXYrTWF0aC5pbXVsKHV0LE50KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsbW4pfDApK01hdGguaW11bChNdCxOdCl8MCx3PXcrTWF0aC5pbXVsKE10LG1uKXwwLHY9ditNYXRo'@; put 'LmltdWwoRGUsSXQpfDAscD0ocD1wK01hdGguaW11bChEZSxRdCl8MCkrTWF0aC5pbXVsKHplLEl0KXwwLHc9dytNYXRoLmltdWwoemUsUXQpfDAsdj12K01hdGguaW11bChVZSxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLFl0KXwwKStNYXRoLmltdWwoaHQscHQpfDAsdz13K01hdGguaW11'@; put 'bChodCxZdCl8MCx2PXYrTWF0aC5pbXVsKFRlLHp0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUseW4pfDApK01hdGguaW11bChxZSx6dCl8MCx3PXcrTWF0aC5pbXVsKHFlLHluKXwwLHY9ditNYXRoLmltdWwoUGUsc24pfDAscD0ocD1wK01hdGguaW11bChQZSxCbil8MCkrTWF0aC5pbXVsKGJl'@; put 'LHNuKXwwLHc9dytNYXRoLmltdWwoYmUsQm4pfDAsdj12K01hdGguaW11bChZZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFllLEZuKXwwKStNYXRoLmltdWwoUWUsJHQpfDAsdz13K01hdGguaW11bChRZSxGbil8MDt2YXIgcm89KGZlKyh2PXYrTWF0aC5pbXVsKGplLGxuKXwwKXwwKSsoKDgx'@; put 'OTEmKHA9KHA9cCtNYXRoLmltdWwoamUsam4pfDApK01hdGguaW11bChXZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoV2Usam4pfDApKyhwPj4+MTMpfDApKyhybz4+PjI2KXwwLHJvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCx3dCkscD0ocD1NYXRoLmltdWwoVXQsWHQp'@; put 'KStNYXRoLmltdWwoYm4sd3QpfDAsdz1NYXRoLmltdWwoYm4sWHQpLHY9ditNYXRoLmltdWwoUHQsTnQpfDAscD0ocD1wK01hdGguaW11bChQdCxtbil8MCkrTWF0aC5pbXVsKG9uLE50KXwwLHc9dytNYXRoLmltdWwob24sbW4pfDAsdj12K01hdGguaW11bCh1dCxJdCl8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKHV0LFF0KXwwKStNYXRoLmltdWwoTXQsSXQpfDAsdz13K01hdGguaW11bChNdCxRdCl8MCx2PXYrTWF0aC5pbXVsKERlLHB0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsWXQpfDApK01hdGguaW11bCh6ZSxwdCl8MCx3PXcrTWF0aC5pbXVsKHplLFl0KXwwLHY9ditNYXRoLmltdWwo'@; put 'VWUsenQpfDAscD0ocD1wK01hdGguaW11bChVZSx5bil8MCkrTWF0aC5pbXVsKGh0LHp0KXwwLHc9dytNYXRoLmltdWwoaHQseW4pfDAsdj12K01hdGguaW11bChUZSxzbil8MCxwPShwPXArTWF0aC5pbXVsKFRlLEJuKXwwKStNYXRoLmltdWwocWUsc24pfDAsdz13K01hdGguaW11bChxZSxC'@; put 'bil8MCx2PXYrTWF0aC5pbXVsKFBlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoUGUsRm4pfDApK01hdGguaW11bChiZSwkdCl8MCx3PXcrTWF0aC5pbXVsKGJlLEZuKXwwO3ZhciBpbz0oZmUrKHY9ditNYXRoLmltdWwoWWUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChZZSxq'@; put 'bil8MCkrTWF0aC5pbXVsKFFlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChRZSxqbil8MCkrKHA+Pj4xMyl8MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LE50KSxwPShwPU1hdGguaW11bChVdCxtbikpK01hdGguaW11bChibixOdCl8MCx3PU1h'@; put 'dGguaW11bChibixtbiksdj12K01hdGguaW11bChQdCxJdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFF0KXwwKStNYXRoLmltdWwob24sSXQpfDAsdz13K01hdGguaW11bChvbixRdCl8MCx2PXYrTWF0aC5pbXVsKHV0LHB0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQsWXQpfDApK01hdGguaW11'@; put 'bChNdCxwdCl8MCx3PXcrTWF0aC5pbXVsKE10LFl0KXwwLHY9ditNYXRoLmltdWwoRGUsenQpfDAscD0ocD1wK01hdGguaW11bChEZSx5bil8MCkrTWF0aC5pbXVsKHplLHp0KXwwLHc9dytNYXRoLmltdWwoemUseW4pfDAsdj12K01hdGguaW11bChVZSxzbil8MCxwPShwPXArTWF0aC5pbXVs'@; put 'KFVlLEJuKXwwKStNYXRoLmltdWwoaHQsc24pfDAsdz13K01hdGguaW11bChodCxCbil8MCx2PXYrTWF0aC5pbXVsKFRlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoVGUsRm4pfDApK01hdGguaW11bChxZSwkdCl8MCx3PXcrTWF0aC5pbXVsKHFlLEZuKXwwO3ZhciBHaT0oZmUrKHY9ditNYXRo'@; put 'LmltdWwoUGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQZSxqbil8MCkrTWF0aC5pbXVsKGJlLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChiZSxqbil8MCkrKHA+Pj4xMyl8MCkrKEdpPj4+MjYpfDAsR2kmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LEl0'@; put 'KSxwPShwPU1hdGguaW11bChVdCxRdCkpK01hdGguaW11bChibixJdCl8MCx3PU1hdGguaW11bChibixRdCksdj12K01hdGguaW11bChQdCxwdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LFl0KXwwKStNYXRoLmltdWwob24scHQpfDAsdz13K01hdGguaW11bChvbixZdCl8MCx2PXYrTWF0aC5p'@; put 'bXVsKHV0LHp0KXwwLHA9KHA9cCtNYXRoLmltdWwodXQseW4pfDApK01hdGguaW11bChNdCx6dCl8MCx3PXcrTWF0aC5pbXVsKE10LHluKXwwLHY9ditNYXRoLmltdWwoRGUsc24pfDAscD0ocD1wK01hdGguaW11bChEZSxCbil8MCkrTWF0aC5pbXVsKHplLHNuKXwwLHc9dytNYXRoLmltdWwo'@; put 'emUsQm4pfDAsdj12K01hdGguaW11bChVZSwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFVlLEZuKXwwKStNYXRoLmltdWwoaHQsJHQpfDAsdz13K01hdGguaW11bChodCxGbil8MDt2YXIgaG89KGZlKyh2PXYrTWF0aC5pbXVsKFRlLGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwo'@; put 'VGUsam4pfDApK01hdGguaW11bChxZSxsbil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwocWUsam4pfDApKyhwPj4+MTMpfDApKyhobz4+PjI2KXwwLGhvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCxwdCkscD0ocD1NYXRoLmltdWwoVXQsWXQpKStNYXRoLmltdWwoYm4scHQpfDAs'@; put 'dz1NYXRoLmltdWwoYm4sWXQpLHY9ditNYXRoLmltdWwoUHQsenQpfDAscD0ocD1wK01hdGguaW11bChQdCx5bil8MCkrTWF0aC5pbXVsKG9uLHp0KXwwLHc9dytNYXRoLmltdWwob24seW4pfDAsdj12K01hdGguaW11bCh1dCxzbil8MCxwPShwPXArTWF0aC5pbXVsKHV0LEJuKXwwKStNYXRo'@; put 'LmltdWwoTXQsc24pfDAsdz13K01hdGguaW11bChNdCxCbil8MCx2PXYrTWF0aC5pbXVsKERlLCR0KXwwLHA9KHA9cCtNYXRoLmltdWwoRGUsRm4pfDApK01hdGguaW11bCh6ZSwkdCl8MCx3PXcrTWF0aC5pbXVsKHplLEZuKXwwO3ZhciB5cj0oZmUrKHY9ditNYXRoLmltdWwoVWUsbG4pfDAp'@; put 'fDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChVZSxqbil8MCkrTWF0aC5pbXVsKGh0LGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChodCxqbil8MCkrKHA+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHp0KSxwPShwPU1hdGguaW11'@; put 'bChVdCx5bikpK01hdGguaW11bChibix6dCl8MCx3PU1hdGguaW11bChibix5biksdj12K01hdGguaW11bChQdCxzbil8MCxwPShwPXArTWF0aC5pbXVsKFB0LEJuKXwwKStNYXRoLmltdWwob24sc24pfDAsdz13K01hdGguaW11bChvbixCbil8MCx2PXYrTWF0aC5pbXVsKHV0LCR0KXwwLHA9'@; put 'KHA9cCtNYXRoLmltdWwodXQsRm4pfDApK01hdGguaW11bChNdCwkdCl8MCx3PXcrTWF0aC5pbXVsKE10LEZuKXwwO3ZhciBQaT0oZmUrKHY9ditNYXRoLmltdWwoRGUsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChEZSxqbil8MCkrTWF0aC5pbXVsKHplLGxuKXwwKSk8PDEz'@; put 'KXwwO2ZlPSgodz13K01hdGguaW11bCh6ZSxqbil8MCkrKHA+Pj4xMyl8MCkrKFBpPj4+MjYpfDAsUGkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFV0LHNuKSxwPShwPU1hdGguaW11bChVdCxCbikpK01hdGguaW11bChibixzbil8MCx3PU1hdGguaW11bChibixCbiksdj12K01hdGguaW11bChQ'@; put 'dCwkdCl8MCxwPShwPXArTWF0aC5pbXVsKFB0LEZuKXwwKStNYXRoLmltdWwob24sJHQpfDAsdz13K01hdGguaW11bChvbixGbil8MDt2YXIgTG89KGZlKyh2PXYrTWF0aC5pbXVsKHV0LGxuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwodXQsam4pfDApK01hdGguaW11bChNdCxs'@; put 'bil8MCkpPDwxMyl8MDtmZT0oKHc9dytNYXRoLmltdWwoTXQsam4pfDApKyhwPj4+MTMpfDApKyhMbz4+PjI2KXwwLExvJj02NzEwODg2Myx2PU1hdGguaW11bChVdCwkdCkscD0ocD1NYXRoLmltdWwoVXQsRm4pKStNYXRoLmltdWwoYm4sJHQpfDAsdz1NYXRoLmltdWwoYm4sRm4pO3ZhciBo'@; put 'cz0oZmUrKHY9ditNYXRoLmltdWwoUHQsbG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChQdCxqbil8MCkrTWF0aC5pbXVsKG9uLGxuKXwwKSk8PDEzKXwwO2ZlPSgodz13K01hdGguaW11bChvbixqbil8MCkrKHA+Pj4xMyl8MCkrKGhzPj4+MjYpfDAsaHMmPTY3MTA4ODYzO3Zh'@; put 'ciBycz0oZmUrKHY9TWF0aC5pbXVsKFV0LGxuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChVdCxqbikpK01hdGguaW11bChibixsbil8MCkpPDwxMyl8MDtyZXR1cm4gZmU9KCh3PU1hdGguaW11bChibixqbikpKyhwPj4+MTMpfDApKyhycz4+PjI2KXwwLHJzJj02NzEwODg2MyxkZVsw'@; put 'XT1xcixkZVsxXT1naSxkZVsyXT14cixkZVszXT1VaSxkZVs0XT1LcixkZVs1XT1ubyxkZVs2XT1IcixkZVs3XT1xaSxkZVs4XT1KaSxkZVs5XT1hbyxkZVsxMF09cm8sZGVbMTFdPWlvLGRlWzEyXT1HaSxkZVsxM109aG8sZGVbMTRdPXlyLGRlWzE1XT1QaSxkZVsxNl09TG8sZGVbMTddPWhz'@; put 'LGRlWzE4XT1ycywwIT09ZmUmJihkZVsxOV09ZmUsUy5sZW5ndGgrKyksU307ZnVuY3Rpb24gb2UoZyxDLFMpe3JldHVybihuZXcgc2UpLm11bHAoZyxDLFMpfWZ1bmN0aW9uIHNlKGcsQyl7dGhpcy54PWcsdGhpcy55PUN9TWF0aC5pbXVsfHwodGU9ZWUpLEUucHJvdG90eXBlLm11bFRvPWZ1'@; put 'bmN0aW9uKGcsQyl7dmFyIHY9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09Zy5sZW5ndGg/dGUodGhpcyxnLEMpOnY8NjM/ZWUodGhpcyxnLEMpOnY8MTAyND9mdW5jdGlvbihwLHcsSil7Si5uZWdhdGl2ZT13Lm5lZ2F0aXZlXnAubmVnYXRpdmUs'@; put 'Si5sZW5ndGg9cC5sZW5ndGgrdy5sZW5ndGg7Zm9yKHZhciBuZT0wLGRlPTAsZmU9MDtmZTxKLmxlbmd0aC0xO2ZlKyspe3ZhciB4ZT1kZTtkZT0wO2Zvcih2YXIgTGU9NjcxMDg4NjMmbmUsRmU9TWF0aC5taW4oZmUsdy5sZW5ndGgtMSksT2U9TWF0aC5tYXgoMCxmZS1wLmxlbmd0aCsxKTtP'@; put 'ZTw9RmU7T2UrKyl7dmFyIFdlPSgwfHAud29yZHNbZmUtT2VdKSooMHx3LndvcmRzW09lXSksS2U9NjcxMDg4NjMmV2U7TGU9NjcxMDg4NjMmKEtlPUtlK0xlfDApLGRlKz0oeGU9KHhlPXhlKyhXZS82NzEwODg2NHwwKXwwKSsoS2U+Pj4yNil8MCk+Pj4yNix4ZSY9NjcxMDg4NjN9Si53b3Jk'@; put 'c1tmZV09TGUsbmU9eGUseGU9ZGV9cmV0dXJuIDAhPT1uZT9KLndvcmRzW2ZlXT1uZTpKLmxlbmd0aC0tLEouc3RyaXAoKX0odGhpcyxnLEMpOm9lKHRoaXMsZyxDKX0sc2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPUUucHJvdG90eXBl'@; put 'Ll9jb3VudEJpdHMoZyktMSx2PTA7djxnO3YrKylDW3ZdPXRoaXMucmV2QmluKHYsUyxnKTtyZXR1cm4gQ30sc2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLEMsUyl7aWYoMD09PWd8fGc9PT1TLTEpcmV0dXJuIGc7Zm9yKHZhciB2PTAscD0wO3A8QztwKyspdnw9KDEmZyk8PEMtcC0x'@; put 'LGc+Pj0xO3JldHVybiB2fSxzZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLEMsUyx2LHAsdyl7Zm9yKHZhciBKPTA7Sjx3O0orKyl2W0pdPUNbZ1tKXV0scFtKXT1TW2dbSl1dfSxzZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGcsQyxTLHYscCx3KXt0aGlzLnBlcm11dGUo'@; put 'dyxnLEMsUyx2LHApO2Zvcih2YXIgSj0xO0o8cDtKPDw9MSlmb3IodmFyIG5lPUo8PDEsZGU9TWF0aC5jb3MoMipNYXRoLlBJL25lKSxmZT1NYXRoLnNpbigyKk1hdGguUEkvbmUpLHhlPTA7eGU8cDt4ZSs9bmUpZm9yKHZhciBMZT1kZSxGZT1mZSxPZT0wO09lPEo7T2UrKyl7dmFyIGplPVNb'@; put 'eGUrT2VdLFdlPXZbeGUrT2VdLEtlPVNbeGUrT2UrSl0sWWU9dlt4ZStPZStKXSxRZT1MZSpLZS1GZSpZZTtZZT1MZSpZZStGZSpLZSxTW3hlK09lXT1qZSsoS2U9UWUpLHZbeGUrT2VdPVdlK1llLFNbeGUrT2UrSl09amUtS2Usdlt4ZStPZStKXT1XZS1ZZSxPZSE9PW5lJiYoUWU9ZGUqTGUt'@; put 'ZmUqRmUsRmU9ZGUqRmUrZmUqTGUsTGU9UWUpfX0sc2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcsQyl7dmFyIFM9MXxNYXRoLm1heChDLGcpLHY9MSZTLHA9MDtmb3IoUz1TLzJ8MDtTO1M+Pj49MSlwKys7cmV0dXJuIDE8PHArMSt2fSxzZS5wcm90b3R5cGUuY29uanVnYXRl'@; put 'PWZ1bmN0aW9uKGcsQyxTKXtpZighKFM8PTEpKWZvcih2YXIgdj0wO3Y8Uy8yO3YrKyl7dmFyIHA9Z1t2XTtnW3ZdPWdbUy12LTFdLGdbUy12LTFdPXAscD1DW3ZdLENbdl09LUNbUy12LTFdLENbUy12LTFdPS1wfX0sc2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLEMpe2Zv'@; put 'cih2YXIgUz0wLHY9MDt2PEMvMjt2Kyspe3ZhciBwPTgxOTIqTWF0aC5yb3VuZChnWzIqdisxXS9DKStNYXRoLnJvdW5kKGdbMip2XS9DKStTO2dbdl09NjcxMDg4NjMmcCxTPXA8NjcxMDg4NjQ/MDpwLzY3MTA4ODY0fDB9cmV0dXJuIGd9LHNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0'@; put 'aW9uKGcsQyxTLHYpe2Zvcih2YXIgcD0wLHc9MDt3PEM7dysrKVNbMip3XT04MTkxJihwKz0wfGdbd10pLFNbMip3KzFdPTgxOTEmKHA+Pj49MTMpLHA+Pj49MTM7Zm9yKHc9MipDO3c8djsrK3cpU1t3XT0wO0koMD09PXApLEkoMD09KC04MTkyJnApKX0sc2UucHJvdG90eXBlLnN0dWI9ZnVu'@; put 'Y3Rpb24oZyl7Zm9yKHZhciBDPW5ldyBBcnJheShnKSxTPTA7UzxnO1MrKylDW1NdPTA7cmV0dXJuIEN9LHNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdj0yKnRoaXMuZ3Vlc3NMZW4xM2IoZy5sZW5ndGgsQy5sZW5ndGgpLHA9dGhpcy5tYWtlUkJUKHYpLHc9dGhpcy5z'@; put 'dHViKHYpLEo9bmV3IEFycmF5KHYpLG5lPW5ldyBBcnJheSh2KSxkZT1uZXcgQXJyYXkodiksZmU9bmV3IEFycmF5KHYpLHhlPW5ldyBBcnJheSh2KSxMZT1uZXcgQXJyYXkodiksRmU9Uy53b3JkcztGZS5sZW5ndGg9dix0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0aCxKLHYpLHRo'@; put 'aXMuY29udmVydDEzYihDLndvcmRzLEMubGVuZ3RoLGZlLHYpLHRoaXMudHJhbnNmb3JtKEosdyxuZSxkZSx2LHApLHRoaXMudHJhbnNmb3JtKGZlLHcseGUsTGUsdixwKTtmb3IodmFyIE9lPTA7T2U8djtPZSsrKXt2YXIgamU9bmVbT2VdKnhlW09lXS1kZVtPZV0qTGVbT2VdO2RlW09lXT1u'@; put 'ZVtPZV0qTGVbT2VdK2RlW09lXSp4ZVtPZV0sbmVbT2VdPWplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShuZSxkZSx2KSx0aGlzLnRyYW5zZm9ybShuZSxkZSxGZSx3LHYscCksdGhpcy5jb25qdWdhdGUoRmUsdyx2KSx0aGlzLm5vcm1hbGl6ZTEzYihGZSx2KSxTLm5lZ2F0aXZlPWcubmVnYXRp'@; put 'dmVeQy5uZWdhdGl2ZSxTLmxlbmd0aD1nLmxlbmd0aCtDLmxlbmd0aCxTLnN0cmlwKCl9LEUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8oZyxDKX0sRS5w'@; put 'cm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgQz1uZXcgRShudWxsKTtyZXR1cm4gQy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLG9lKHRoaXMsZyxDKX0sRS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKGcsdGhp'@; put 'cyl9LEUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnKSxJKGc8NjcxMDg4NjQpO2Zvcih2YXIgQz0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIHY9KDB8dGhpcy53b3Jkc1tTXSkqZyxwPSg2NzEwODg2MyZ2KSsoNjcxMDg4NjMmQyk7Qz4+PTI2'@; put 'LEMrPXYvNjcxMDg4NjR8MCxDKz1wPj4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZwfXJldHVybiAwIT09QyYmKHRoaXMud29yZHNbU109Qyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oZyl9LEUu'@; put 'cHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sRS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sRS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcpe3ZhciBDPWZ1bmN0aW9uKHcpe2Zvcih2YXIgSj1u'@; put 'ZXcgQXJyYXkody5iaXRMZW5ndGgoKSksbmU9MDtuZTxKLmxlbmd0aDtuZSsrKXt2YXIgZmU9bmUlMjY7SltuZV09KHcud29yZHNbbmUvMjZ8MF0mMTw8ZmUpPj4+ZmV9cmV0dXJuIEp9KGcpO2lmKDA9PT1DLmxlbmd0aClyZXR1cm4gbmV3IEUoMSk7Zm9yKHZhciBTPXRoaXMsdj0wO3Y8Qy5s'@; put 'ZW5ndGgmJjA9PT1DW3ZdO3YrKyxTPVMuc3FyKCkpO2lmKCsrdjxDLmxlbmd0aClmb3IodmFyIHA9Uy5zcXIoKTt2PEMubGVuZ3RoO3YrKyxwPXAuc3FyKCkpMCE9PUNbdl0mJihTPVMubXVsKHApKTtyZXR1cm4gU30sRS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9'@; put 'PXR5cGVvZiBnJiZnPj0wKTt2YXIgQyxTPWclMjYsdj0oZy1TKS8yNixwPTY3MTA4ODYzPj4+MjYtUzw8MjYtUztpZigwIT09Uyl7dmFyIHc9MDtmb3IoQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgSj10aGlzLndvcmRzW0NdJnA7dGhpcy53b3Jkc1tDXT0oMHx0aGlzLndvcmRzW0NdKS1K'@; put 'PDxTfHcsdz1KPj4+MjYtU313JiYodGhpcy53b3Jkc1tDXT13LHRoaXMubGVuZ3RoKyspfWlmKDAhPT12KXtmb3IoQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0tKXRoaXMud29yZHNbQyt2XT10aGlzLndvcmRzW0NdO2ZvcihDPTA7Qzx2O0MrKyl0aGlzLndvcmRzW0NdPTA7dGhpcy5sZW5ndGgr'@; put 'PXZ9cmV0dXJuIHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSxFLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyxDLFMpe3ZhciB2O0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0w'@; put 'KSx2PUM/KEMtQyUyNikvMjY6MDt2YXIgcD1nJTI2LHc9TWF0aC5taW4oKGctcCkvMjYsdGhpcy5sZW5ndGgpLEo9NjcxMDg4NjNeNjcxMDg4NjM+Pj5wPDxwLG5lPVM7aWYodi09dyx2PU1hdGgubWF4KDAsdiksbmUpe2Zvcih2YXIgZGU9MDtkZTx3O2RlKyspbmUud29yZHNbZGVdPXRoaXMu'@; put 'd29yZHNbZGVdO25lLmxlbmd0aD13fWlmKDAhPT13KWlmKHRoaXMubGVuZ3RoPncpZm9yKHRoaXMubGVuZ3RoLT13LGRlPTA7ZGU8dGhpcy5sZW5ndGg7ZGUrKyl0aGlzLndvcmRzW2RlXT10aGlzLndvcmRzW2RlK3ddO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIGZl'@; put 'PTA7Zm9yKGRlPXRoaXMubGVuZ3RoLTE7ZGU+PTAmJigwIT09ZmV8fGRlPj12KTtkZS0tKXt2YXIgeGU9MHx0aGlzLndvcmRzW2RlXTt0aGlzLndvcmRzW2RlXT1mZTw8MjYtcHx4ZT4+PnAsZmU9eGUmSn1yZXR1cm4gbmUmJjAhPT1mZSYmKG5lLndvcmRzW25lLmxlbmd0aCsrXT1mZSksMD09'@; put 'PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyxDLFMpe3JldHVybiBJKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihnLEMsUyl9LEUucHJvdG90eXBlLnNobG49ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sRS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZyl9LEUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihnKX0sRS5wcm90b3R5'@; put 'cGUudXNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LEUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9U3x8ISh0aGlzLndv'@; put 'cmRzW1NdJjE8PEMpKX0sRS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe0koIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgQz1nJTI2LFM9KGctQykvMjY7cmV0dXJuIEkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIp'@; put 'LHRoaXMubGVuZ3RoPD1TP3RoaXM6KDAhPT1DJiZTKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oUyx0aGlzLmxlbmd0aCksMCE9PUMmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PkM8PEMpLHRoaXMuc3RyaXAoKSl9LEUucHJvdG90eXBlLm1hc2tuPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSxFLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzwwP3RoaXMuaXN1Ym4oLWcpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0'@; put 'aCYmKDB8dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGcpfSxFLnByb3RvdHlwZS5faWFk'@; put 'ZG49ZnVuY3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0NdPj02NzEwODg2NDtDKyspdGhpcy53b3Jkc1tDXS09NjcxMDg4NjQsQz09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tDKzFdPTE6dGhpcy53b3Jkc1tDKzFdKys7'@; put 'cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEMrMSksdGhpc30sRS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYoSSgibnVtYmVyIj09dHlwZW9mIGcpLEkoZzw2NzEwODg2NCksZzwwKXJldHVybiB0aGlzLmlhZGRuKC1nKTtpZigwIT09dGhpcy5uZWdhdGl2'@; put 'ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZv'@; put 'cih2YXIgQz0wO0M8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbQ108MDtDKyspdGhpcy53b3Jkc1tDXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tDKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihn'@; put 'KX0sRS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSxFLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxFLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgp'@; put 'LmlhYnMoKX0sRS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcsQyxTKXt2YXIgdixwO3RoaXMuX2V4cGFuZChnLmxlbmd0aCtTKTt2YXIgSj0wO2Zvcih2PTA7djxnLmxlbmd0aDt2Kyspe3A9KDB8dGhpcy53b3Jkc1t2K1NdKStKO3ZhciBuZT0oMHxnLndvcmRzW3ZdKSpDO0o9'@; put 'KChwLT02NzEwODg2MyZuZSk+PjI2KS0obmUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnB9Zm9yKDt2PHRoaXMubGVuZ3RoLVM7disrKUo9KHA9KDB8dGhpcy53b3Jkc1t2K1NdKStKKT4+MjYsdGhpcy53b3Jkc1t2K1NdPTY3MTA4ODYzJnA7aWYoMD09PUopcmV0dXJu'@; put 'IHRoaXMuc3RyaXAoKTtmb3IoSSgtMT09PUopLEo9MCx2PTA7djx0aGlzLmxlbmd0aDt2KyspSj0ocD0tKDB8dGhpcy53b3Jkc1t2XSkrSik+PjI2LHRoaXMud29yZHNbdl09NjcxMDg4NjMmcDtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sRS5wcm90b3R5cGUuX3dvcmRE'@; put 'aXY9ZnVuY3Rpb24oZyxDKXt2YXIgUyx2PXRoaXMuY2xvbmUoKSxwPWcsdz0wfHAud29yZHNbcC5sZW5ndGgtMV07MCE9KFM9MjYtdGhpcy5fY291bnRCaXRzKHcpKSYmKHA9cC51c2hsbihTKSx2Lml1c2hsbihTKSx3PTB8cC53b3Jkc1twLmxlbmd0aC0xXSk7dmFyIEosbmU9di5sZW5ndGgt'@; put 'cC5sZW5ndGg7aWYoIm1vZCIhPT1DKXsoSj1uZXcgRShudWxsKSkubGVuZ3RoPW5lKzEsSi53b3Jkcz1uZXcgQXJyYXkoSi5sZW5ndGgpO2Zvcih2YXIgZGU9MDtkZTxKLmxlbmd0aDtkZSsrKUoud29yZHNbZGVdPTB9dmFyIGZlPXYuY2xvbmUoKS5faXNobG5zdWJtdWwocCwxLG5lKTswPT09'@; put 'ZmUubmVnYXRpdmUmJih2PWZlLEomJihKLndvcmRzW25lXT0xKSk7Zm9yKHZhciB4ZT1uZS0xO3hlPj0wO3hlLS0pe3ZhciBMZT02NzEwODg2NCooMHx2LndvcmRzW3AubGVuZ3RoK3hlXSkrKDB8di53b3Jkc1twLmxlbmd0aCt4ZS0xXSk7Zm9yKExlPU1hdGgubWluKExlL3d8MCw2NzEwODg2'@; put 'Myksdi5faXNobG5zdWJtdWwocCxMZSx4ZSk7MCE9PXYubmVnYXRpdmU7KUxlLS0sdi5uZWdhdGl2ZT0wLHYuX2lzaGxuc3VibXVsKHAsMSx4ZSksdi5pc1plcm8oKXx8KHYubmVnYXRpdmVePTEpO0omJihKLndvcmRzW3hlXT1MZSl9cmV0dXJuIEomJkouc3RyaXAoKSx2LnN0cmlwKCksImRp'@; put 'diIhPT1DJiYwIT09UyYmdi5pdXNocm4oUykse2RpdjpKfHxudWxsLG1vZDp2fX0sRS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcsQyxTKXtyZXR1cm4gSSghZy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBFKDApLG1vZDpuZXcgRSgwKX06MCE9PXRoaXMubmVnYXRpdmUm'@; put 'JjA9PT1nLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcsQyksIm1vZCIhPT1DJiYodj13LmRpdi5uZWcoKSksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxTJiYwIT09cC5uZWdhdGl2ZSYmcC5pYWRkKGcpKSx7ZGl2OnYsbW9kOnB9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcu'@; put 'bmVnYXRpdmU/KHc9dGhpcy5kaXZtb2QoZy5uZWcoKSxDKSwibW9kIiE9PUMmJih2PXcuZGl2Lm5lZygpKSx7ZGl2OnYsbW9kOncubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZlPyh3PXRoaXMubmVnKCkuZGl2bW9kKGcubmVnKCksQyksImRpdiIhPT1DJiYocD13Lm1vZC5uZWcoKSxT'@; put 'JiYwIT09cC5uZWdhdGl2ZSYmcC5pc3ViKGcpKSx7ZGl2OncuZGl2LG1vZDpwfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgRSgwKSxtb2Q6dGhpc306MT09PWcubGVuZ3RoPyJkaXYiPT09Qz97ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bnVs'@; put 'bH06Im1vZCI9PT1DP3tkaXY6bnVsbCxtb2Q6bmV3IEUodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyBFKHRoaXMubW9kbihnLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZyxDKTt2YXIgdixwLHd9LEUucHJvdG90eXBlLmRpdj1m'@; put 'dW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSxFLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEpLm1vZH0sRS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9k'@; put 'IiwhMCkubW9kfSxFLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgQz10aGlzLmRpdm1vZChnKTtpZihDLm1vZC5pc1plcm8oKSlyZXR1cm4gQy5kaXY7dmFyIFM9MCE9PUMuZGl2Lm5lZ2F0aXZlP0MubW9kLmlzdWIoZyk6Qy5tb2Qsdj1nLnVzaHJuKDEpLHA9Zy5hbmRsbigx'@; put 'KSx3PVMuY21wKHYpO3JldHVybiB3PDB8fDE9PT1wJiYwPT09dz9DLmRpdjowIT09Qy5kaXYubmVnYXRpdmU/Qy5kaXYuaXN1Ym4oMSk6Qy5kaXYuaWFkZG4oMSl9LEUucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZyl7SShnPD02NzEwODg2Myk7Zm9yKHZhciBDPTY3MTA4ODY0JWcsUz0wLHY9'@; put 'dGhpcy5sZW5ndGgtMTt2Pj0wO3YtLSlTPShDKlMrKDB8dGhpcy53b3Jkc1t2XSkpJWc7cmV0dXJuIFN9LEUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe0koZzw9NjcxMDg4NjMpO2Zvcih2YXIgQz0wLFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl7dmFyIHY9KDB8dGhpcy53b3Jkc1tT'@; put 'XSkrNjcxMDg4NjQqQzt0aGlzLndvcmRzW1NdPXYvZ3wwLEM9diVnfXJldHVybiB0aGlzLnN0cmlwKCl9LEUucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sRS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZl'@; put 'KSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHY9bmV3IEUoMSkscD1uZXcgRSgwKSx3PW5ldyBFKDApLEo9bmV3IEUoMSksbmU9MDtDLmlzRXZlbigpJiZTLmlzRXZlbigpOylDLml1c2hy'@; put 'bigxKSxTLml1c2hybigxKSwrK25lO2Zvcih2YXIgZGU9Uy5jbG9uZSgpLGZlPUMuY2xvbmUoKTshQy5pc1plcm8oKTspe2Zvcih2YXIgeGU9MCxMZT0xOyEoQy53b3Jkc1swXSZMZSkmJnhlPDI2OysreGUsTGU8PD0xKTtpZih4ZT4wKWZvcihDLml1c2hybih4ZSk7eGUtLSA+MDspKHYuaXNP'@; put 'ZGQoKXx8cC5pc09kZCgpKSYmKHYuaWFkZChkZSkscC5pc3ViKGZlKSksdi5pdXNocm4oMSkscC5pdXNocm4oMSk7Zm9yKHZhciBGZT0wLE9lPTE7IShTLndvcmRzWzBdJk9lKSYmRmU8MjY7KytGZSxPZTw8PTEpO2lmKEZlPjApZm9yKFMuaXVzaHJuKEZlKTtGZS0tID4wOykody5pc09kZCgp'@; put 'fHxKLmlzT2RkKCkpJiYody5pYWRkKGRlKSxKLmlzdWIoZmUpKSx3Lml1c2hybigxKSxKLml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHYuaXN1Yih3KSxwLmlzdWIoSikpOihTLmlzdWIoQyksdy5pc3ViKHYpLEouaXN1YihwKSl9cmV0dXJue2E6dyxiOkosZ2NkOlMuaXVzaGxu'@; put 'KG5lKX19LEUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtJKDA9PT1nLm5lZ2F0aXZlKSxJKCFnLmlzWmVybygpKTt2YXIgQz10aGlzLFM9Zy5jbG9uZSgpO0M9MCE9PUMubmVnYXRpdmU/Qy51bW9kKGcpOkMuY2xvbmUoKTtmb3IodmFyIHYscD1uZXcgRSgxKSx3PW5ldyBFKDApLEo9'@; put 'Uy5jbG9uZSgpO0MuY21wbigxKT4wJiZTLmNtcG4oMSk+MDspe2Zvcih2YXIgbmU9MCxkZT0xOyEoQy53b3Jkc1swXSZkZSkmJm5lPDI2OysrbmUsZGU8PD0xKTtpZihuZT4wKWZvcihDLml1c2hybihuZSk7bmUtLSA+MDspcC5pc09kZCgpJiZwLmlhZGQoSikscC5pdXNocm4oMSk7Zm9yKHZh'@; put 'ciBmZT0wLHhlPTE7IShTLndvcmRzWzBdJnhlKSYmZmU8MjY7KytmZSx4ZTw8PTEpO2lmKGZlPjApZm9yKFMuaXVzaHJuKGZlKTtmZS0tID4wOyl3LmlzT2RkKCkmJncuaWFkZChKKSx3Lml1c2hybigxKTtDLmNtcChTKT49MD8oQy5pc3ViKFMpLHAuaXN1Yih3KSk6KFMuaXN1YihDKSx3Lmlz'@; put 'dWIocCkpfXJldHVybih2PTA9PT1DLmNtcG4oMSk/cDp3KS5jbXBuKDApPDAmJnYuaWFkZChnKSx2fSxFLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMoKTtpZihnLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBDPXRoaXMuY2xv'@; put 'bmUoKSxTPWcuY2xvbmUoKTtDLm5lZ2F0aXZlPTAsUy5uZWdhdGl2ZT0wO2Zvcih2YXIgdj0wO0MuaXNFdmVuKCkmJlMuaXNFdmVuKCk7disrKUMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtDLmlzRXZlbigpOylDLml1c2hybigxKTtmb3IoO1MuaXNFdmVuKCk7KVMuaXVz'@; put 'aHJuKDEpO3ZhciBwPUMuY21wKFMpO2lmKHA8MCl7dmFyIHc9QztDPVMsUz13fWVsc2UgaWYoMD09PXB8fDA9PT1TLmNtcG4oMSkpYnJlYWs7Qy5pc3ViKFMpfXJldHVybiBTLml1c2hsbih2KX0sRS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5lZ2NkKGcpLmEudW1v'@; put 'ZChnKX0sRS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxFLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sRS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMu'@; put 'd29yZHNbMF0mZ30sRS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7SSgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciBDPWclMjYsUz0oZy1DKS8yNix2PTE8PEM7aWYodGhpcy5sZW5ndGg8PVMpcmV0dXJuIHRoaXMuX2V4cGFuZChTKzEpLHRoaXMud29yZHNbU118PXYsdGhpcztmb3IodmFy'@; put 'IHA9dix3PVM7MCE9PXAmJnc8dGhpcy5sZW5ndGg7dysrKXt2YXIgSj0wfHRoaXMud29yZHNbd107cD0oSis9cCk+Pj4yNix0aGlzLndvcmRzW3ddPUomPTY3MTA4ODYzfXJldHVybiAwIT09cCYmKHRoaXMud29yZHNbd109cCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxFLnByb3RvdHlwZS5pc1pl'@; put 'cm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sRS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgQyxTPWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIVMpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJlMpcmV0dXJuIDE7'@; put 'aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpQz0xO2Vsc2V7UyYmKGc9LWcpLEkoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHY9MHx0aGlzLndvcmRzWzBdO0M9dj09PWc/MDp2PGc/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtQzpDfSxFLnByb3Rv'@; put 'dHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgQz10aGlzLnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LUM6Q30s'@; put 'RS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEM9MCxTPXRoaXMubGVuZ3RoLTE7Uz49MDtTLS0pe3ZhciB2PTB8dGhpcy53b3Jkc1tTXSxwPTB8Zy53b3Jk'@; put 'c1tTXTtpZih2IT09cCl7djxwP0M9LTE6dj5wJiYoQz0xKTticmVha319cmV0dXJuIEN9LEUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sRS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcChnKX0sRS5wcm90b3R5'@; put 'cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSxFLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSxFLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LEUucHJvdG90eXBlLmx0PWZ1'@; put 'bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LEUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sRS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKTw9MH0sRS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSxFLnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSxFLnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IEgoZyl9LEUucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxy'@; put 'ZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhp'@; put 'cy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sRS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LEUucHJvdG90eXBlLmZvcmNl'@; put 'UmVkPWZ1bmN0aW9uKGcpe3JldHVybiBJKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSxFLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdp'@; put 'dGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LEUucHJvdG90eXBlLnJl'@; put 'ZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSxFLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkg'@; put 'd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBJKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LEUucHJvdG90eXBlLnJl'@; put 'ZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9LEUucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhp'@; put 'cy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sRS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGgg'@; put 'cmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LEUucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0'@; put 'aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sRS5wcm90'@; put 'b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LEUucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBJ'@; put 'KHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxFLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIEkodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51'@; put 'bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIGhlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdWUoZyxDKXt0aGlzLm5hbWU9Zyx0aGlzLnA9bmV3IEUoQywxNiksdGhpcy5uPXRoaXMucC5i'@; put 'aXRMZW5ndGgoKSx0aGlzLms9bmV3IEUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIGNlKCl7dWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYg'@; put 'ZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBHKCl7dWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBiKCl7dWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZm'@; put 'ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBEKCl7dWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBIKGcpe2lm'@; put 'KCJzdHJpbmciPT10eXBlb2YgZyl7dmFyIEM9RS5fcHJpbWUoZyk7dGhpcy5tPUMucCx0aGlzLnByaW1lPUN9ZWxzZSBJKGcuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09Zyx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTihnKXtILmNhbGwodGhpcyxn'@; put 'KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBFKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIu'@; put 'X2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXVlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFy'@; put 'IGc9bmV3IEUobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSx1ZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgQyxTPWc7ZG97dGhpcy5zcGxpdChTLHRoaXMudG1wKSxDPShTPShTPXRoaXMuaW11bEsoUykpLmlhZGQodGhp'@; put 'cy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShDPnRoaXMubik7dmFyIHY9Qzx0aGlzLm4/LTE6Uy51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT12PyhTLndvcmRzWzBdPTAsUy5sZW5ndGg9MSk6dj4wP1MuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVMuc3RyaXA/Uy5zdHJpcCgpOlMuX3N0cmlwKCks'@; put 'U30sdWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcsQyl7Zy5pdXNocm4odGhpcy5uLDAsQyl9LHVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LGsoY2UsdWUpLGNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLEMpe2Zvcih2YXIgUz00'@; put 'MTk0MzAzLHY9TWF0aC5taW4oZy5sZW5ndGgsOSkscD0wO3A8djtwKyspQy53b3Jkc1twXT1nLndvcmRzW3BdO2lmKEMubGVuZ3RoPXYsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcubGVuZ3RoPTEpO3ZhciB3PWcud29yZHNbOV07Zm9yKEMud29yZHNbQy5sZW5ndGgr'@; put 'K109dyZTLHA9MTA7cDxnLmxlbmd0aDtwKyspe3ZhciBKPTB8Zy53b3Jkc1twXTtnLndvcmRzW3AtMTBdPShKJlMpPDw0fHc+Pj4yMix3PUp9Zy53b3Jkc1twLTEwXT13Pj4+PTIyLGcubGVuZ3RoLT0wPT09dyYmZy5sZW5ndGg+MTA/MTA6OX0sY2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9u'@; put 'KGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgQz0wLFM9MDtTPGcubGVuZ3RoO1MrKyl7dmFyIHY9MHxnLndvcmRzW1NdO2cud29yZHNbU109NjcxMDg4NjMmKEMrPTk3Nyp2KSxDPTY0KnYrKEMvNjcxMDg4NjR8MCl9cmV0'@; put 'dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sayhHLHVlKSxrKGIsdWUpLGsoRCx1ZSksRC5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zm9yKHZhciBDPTAsUz0wO1M8Zy5sZW5ndGg7Uysr'@; put 'KXt2YXIgdj0xOSooMHxnLndvcmRzW1NdKStDLHA9NjcxMDg4NjMmdjt2Pj4+PTI2LGcud29yZHNbU109cCxDPXZ9cmV0dXJuIDAhPT1DJiYoZy53b3Jkc1tnLmxlbmd0aCsrXT1DKSxnfSxFLl9wcmltZT1mdW5jdGlvbihnKXtpZihoZVtnXSlyZXR1cm4gaGVbZ107dmFyIEM7aWYoImsyNTYi'@; put 'PT09ZylDPW5ldyBjZTtlbHNlIGlmKCJwMjI0Ij09PWcpQz1uZXcgRztlbHNlIGlmKCJwMTkyIj09PWcpQz1uZXcgYjtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitnKTtDPW5ldyBEfXJldHVybiBoZVtnXT1DLEN9LEgucHJvdG90eXBlLl92'@; put 'ZXJpZnkxPWZ1bmN0aW9uKGcpe0koMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLEMpe0koMD09KGcubmVnYXRpdmV8'@; put 'Qy5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksSShnLnJlZCYmZy5yZWQ9PT1DLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxILnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJl'@; put 'ZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5hZGQ9ZnVuY3Rp'@; put 'b24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5hZGQoQyk7cmV0dXJuIFMuY21wKHRoaXMubSk+PTAmJlMuaXN1Yih0aGlzLm0pLFMuX2ZvcmNlUmVkKHRoaXMpfSxILnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuaWFkZChD'@; put 'KTtyZXR1cm4gUy5jbXAodGhpcy5tKT49MCYmUy5pc3ViKHRoaXMubSksU30sSC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcsQyl7dGhpcy5fdmVyaWZ5MihnLEMpO3ZhciBTPWcuc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksUy5fZm9yY2VSZWQodGhpcyl9LEgu'@; put 'cHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyxDKXt0aGlzLl92ZXJpZnkyKGcsQyk7dmFyIFM9Zy5pc3ViKEMpO3JldHVybiBTLmNtcG4oMCk8MCYmUy5pYWRkKHRoaXMubSksU30sSC5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoZyksdGhpcy5pbW9k'@; put 'KGcudXNobG4oQykpfSxILnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5pbXVsKEMpKX0sSC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyxDKSx0aGlzLmltb2QoZy5tdWwo'@; put 'QykpfSxILnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxILnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LEgucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYoZy5pc1plcm8oKSlyZXR1cm4g'@; put 'Zy5jbG9uZSgpO3ZhciBDPXRoaXMubS5hbmRsbigzKTtpZihJKEMlMj09MSksMz09PUMpe3ZhciBTPXRoaXMubS5hZGQobmV3IEUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyxTKX1mb3IodmFyIHY9dGhpcy5tLnN1Ym4oMSkscD0wOyF2LmlzWmVybygpJiYwPT09di5hbmRsbigx'@; put 'KTspcCsrLHYuaXVzaHJuKDEpO0koIXYuaXNaZXJvKCkpO3ZhciB3PW5ldyBFKDEpLnRvUmVkKHRoaXMpLEo9dy5yZWROZWcoKSxuZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksZGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihkZT1uZXcgRSgyKmRlKmRlKS50b1JlZCh0aGlzKTswIT09dGhp'@; put 'cy5wb3coZGUsbmUpLmNtcChKKTspZGUucmVkSUFkZChKKTtmb3IodmFyIGZlPXRoaXMucG93KGRlLHYpLHhlPXRoaXMucG93KGcsdi5hZGRuKDEpLml1c2hybigxKSksTGU9dGhpcy5wb3coZyx2KSxGZT1wOzAhPT1MZS5jbXAodyk7KXtmb3IodmFyIE9lPUxlLGplPTA7MCE9PU9lLmNtcCh3'@; put 'KTtqZSsrKU9lPU9lLnJlZFNxcigpO0koamU8RmUpO3ZhciBXZT10aGlzLnBvdyhmZSxuZXcgRSgxKS5pdXNobG4oRmUtamUtMSkpO3hlPXhlLnJlZE11bChXZSksZmU9V2UucmVkU3FyKCksTGU9TGUucmVkTXVsKGZlKSxGZT1qZX1yZXR1cm4geGV9LEgucHJvdG90eXBlLmludm09ZnVuY3Rp'@; put 'b24oZyl7dmFyIEM9Zy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PUMubmVnYXRpdmU/KEMubmVnYXRpdmU9MCx0aGlzLmltb2QoQykucmVkTmVnKCkpOnRoaXMuaW1vZChDKX0sSC5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcsQyl7aWYoQy5pc1plcm8oKSlyZXR1cm4gbmV3IEUoMSkudG9S'@; put 'ZWQodGhpcyk7aWYoMD09PUMuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBTPW5ldyBBcnJheSgxNik7U1swXT1uZXcgRSgxKS50b1JlZCh0aGlzKSxTWzFdPWc7Zm9yKHZhciB2PTI7djxTLmxlbmd0aDt2KyspU1t2XT10aGlzLm11bChTW3YtMV0sZyk7dmFyIHA9U1swXSx3PTAsSj0w'@; put 'LG5lPUMuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1uZSYmKG5lPTI2KSx2PUMubGVuZ3RoLTE7dj49MDt2LS0pe2Zvcih2YXIgZGU9Qy53b3Jkc1t2XSxmZT1uZS0xO2ZlPj0wO2ZlLS0pe3ZhciB4ZT1kZT4+ZmUmMTtwIT09U1swXSYmKHA9dGhpcy5zcXIocCkpLDAhPT14ZXx8MCE9PXc/KHc8'@; put 'PD0xLHd8PXhlLCg0PT0rK0p8fDA9PT12JiYwPT09ZmUpJiYocD10aGlzLm11bChwLFNbd10pLEo9MCx3PTApKTpKPTB9bmU9MjZ9cmV0dXJuIHB9LEgucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIgQz1nLnVtb2QodGhpcy5tKTtyZXR1cm4gQz09PWc/Qy5jbG9uZSgpOkN9'@; put 'LEgucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPWcuY2xvbmUoKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxFLm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBOKGcpfSxrKE4sSCksTi5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmlt'@; put 'b2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LE4ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciBDPXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gQy5yZWQ9bnVsbCxDfSxOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5pc1plcm8oKXx8Qy5p'@; put 'c1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgUz1nLmltdWwoQyksdj1TLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxwPVMuaXN1Yih2KS5pdXNocm4odGhpcy5zaGlmdCksdz1wO3JldHVy'@; put 'biBwLmNtcCh0aGlzLm0pPj0wP3c9cC5pc3ViKHRoaXMubSk6cC5jbXBuKDApPDAmJih3PXAuaWFkZCh0aGlzLm0pKSx3Ll9mb3JjZVJlZCh0aGlzKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcsQyl7aWYoZy5pc1plcm8oKXx8Qy5pc1plcm8oKSlyZXR1cm4gbmV3IEUoMCkuX2ZvcmNl'@; put 'UmVkKHRoaXMpO3ZhciBTPWcubXVsKEMpLHY9Uy5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkscD1TLmlzdWIodikuaXVzaHJuKHRoaXMuc2hpZnQpLHc9cDtyZXR1cm4gcC5jbXAodGhpcy5tKT49MD93PXAuaXN1Yih0aGlz'@; put 'Lm0pOnAuY21wbigwKTwwJiYodz1wLmlhZGQodGhpcy5tKSksdy5fZm9yY2VSZWQodGhpcyl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oTT1SLm5tZChNKSx0aGlz'@; put 'KX0sNjEzODooTSxPLFIpPT57dmFyIHo9Uig5ODApLEs9Uig5MTk5KSxJPVIoNzg1OSksaz1SKDIxNDQpLEU9UigzNjYzKSxqPVIoMzQ4MiksVj1SKDQ4MTgpLEI9Uig5NTA5KS5CdWZmZXI7TS5leHBvcnRzPWZ1bmN0aW9uKFksWCxVKXt2YXIgcTtxPVkucGFkZGluZz9ZLnBhZGRpbmc6VT8x'@; put 'OjQ7dmFyIGVlLHRlPXooWSksb2U9dGUubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYoWC5sZW5ndGg+b2V8fG5ldyBrKFgpLmNtcCh0ZS5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtlZT1VP1YobmV3IGsoWCksdGUpOkUoWCx0ZSk7dmFyIHNlPUIuYWxs'@; put 'b2Mob2UtZWUubGVuZ3RoKTtpZihlZT1CLmNvbmNhdChbc2UsZWVdLG9lKSw0PT09cSlyZXR1cm4gZnVuY3Rpb24oaGUsdWUpe3ZhciBjZT1oZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxHPWooInNoYTEiKS51cGRhdGUoQi5hbGxvYygwKSkuZGlnZXN0KCksYj1HLmxlbmd0aDtpZigwIT09dWVb'@; put 'MF0pdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7dmFyIEQ9dWUuc2xpY2UoMSxiKzEpLEg9dWUuc2xpY2UoYisxKSxOPUkoRCxLKEgsYikpLGc9SShILEsoTixjZS1iLTEpKTtpZihmdW5jdGlvbihTLHYpe1M9Qi5mcm9tKFMpLHY9Qi5mcm9tKHYpO3ZhciBwPTAsdz1TLmxl'@; put 'bmd0aDtTLmxlbmd0aCE9PXYubGVuZ3RoJiYocCsrLHc9TWF0aC5taW4oUy5sZW5ndGgsdi5sZW5ndGgpKTtmb3IodmFyIEo9LTE7KytKPHc7KXArPVNbSl1edltKXTtyZXR1cm4gcH0oRyxnLnNsaWNlKDAsYikpKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO2Zvcih2YXIg'@; put 'Qz1iOzA9PT1nW0NdOylDKys7aWYoMSE9PWdbQysrXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gZy5zbGljZShDKX0odGUsZWUpO2lmKDE9PT1xKXJldHVybiBmdW5jdGlvbihoZSx1ZSxjZSl7Zm9yKHZhciBHPXVlLnNsaWNlKDAsMiksYj0yLEQ9MDswIT09'@; put 'dWVbYisrXTspaWYoYj49dWUubGVuZ3RoKXtEKys7YnJlYWt9dmFyIEg9dWUuc2xpY2UoMixiLTEpO2lmKCgiMDAwMiIhPT1HLnRvU3RyaW5nKCJoZXgiKSYmIWNlfHwiMDAwMSIhPT1HLnRvU3RyaW5nKCJoZXgiKSYmY2UpJiZEKyssSC5sZW5ndGg8OCYmRCsrLEQpdGhyb3cgbmV3IEVycm9y'@; put 'KCJkZWNyeXB0aW9uIGVycm9yIik7cmV0dXJuIHVlLnNsaWNlKGIpfSgwLGVlLFUpO2lmKDM9PT1xKXJldHVybiBlZTt0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpfX0sNjU1OTooTSxPLFIpPT57dmFyIHo9Uig5ODApLEs9UigxNzk4KSxJPVIoMzQ4Miksaz1SKDkxOTkpLEU9'@; put 'Uig3ODU5KSxqPVIoMjE0NCksVj1SKDQ4MTgpLEI9UigzNjYzKSxZPVIoOTUwOSkuQnVmZmVyO00uZXhwb3J0cz1mdW5jdGlvbihYLFUscSl7dmFyIGVlO2VlPVgucGFkZGluZz9YLnBhZGRpbmc6cT8xOjQ7dmFyIHRlLG9lPXooWCk7aWYoND09PWVlKXRlPWZ1bmN0aW9uKHNlLGhlKXt2YXIg'@; put 'dWU9c2UubW9kdWx1cy5ieXRlTGVuZ3RoKCksY2U9aGUubGVuZ3RoLEc9SSgic2hhMSIpLnVwZGF0ZShZLmFsbG9jKDApKS5kaWdlc3QoKSxiPUcubGVuZ3RoLEQ9MipiO2lmKGNlPnVlLUQtMil0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTt2YXIgSD1ZLmFsbG9jKHVlLWNl'@; put 'LUQtMiksTj11ZS1iLTEsZz1LKGIpLEM9RShZLmNvbmNhdChbRyxILFkuYWxsb2MoMSwxKSxoZV0sTiksayhnLE4pKSxTPUUoZyxrKEMsYikpO3JldHVybiBuZXcgaihZLmNvbmNhdChbWS5hbGxvYygxKSxTLENdLHVlKSl9KG9lLFUpO2Vsc2UgaWYoMT09PWVlKXRlPWZ1bmN0aW9uKHNlLGhl'@; put 'LHVlKXt2YXIgY2UsRz1oZS5sZW5ndGgsYj1zZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtpZihHPmItMTEpdGhyb3cgbmV3IEVycm9yKCJtZXNzYWdlIHRvbyBsb25nIik7cmV0dXJuIGNlPXVlP1kuYWxsb2MoYi1HLTMsMjU1KTpmdW5jdGlvbihEKXtmb3IodmFyIEgsTj1ZLmFsbG9jVW5zYWZl'@; put 'KEQpLGc9MCxDPUsoMipEKSxTPTA7ZzxEOylTPT09Qy5sZW5ndGgmJihDPUsoMipEKSxTPTApLChIPUNbUysrXSkmJihOW2crK109SCk7cmV0dXJuIE59KGItRy0zKSxuZXcgaihZLmNvbmNhdChbWS5mcm9tKFswLHVlPzE6Ml0pLGNlLFkuYWxsb2MoMSksaGVdLGIpKX0ob2UsVSxxKTtlbHNl'@; put 'e2lmKDMhPT1lZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpO2lmKCh0ZT1uZXcgaihVKSkuY21wKG9lLm1vZHVsdXMpPj0wKXRocm93IG5ldyBFcnJvcigiZGF0YSB0b28gbG9uZyBmb3IgbW9kdWx1cyIpfXJldHVybiBxP0IodGUsb2UpOlYodGUsb2UpfX0sNDgxODooTSxP'@; put 'LFIpPT57dmFyIHo9UigyMTQ0KSxLPVIoOTUwOSkuQnVmZmVyO00uZXhwb3J0cz1mdW5jdGlvbihJLGspe3JldHVybiBLLmZyb20oSS50b1JlZCh6Lm1vbnQoay5tb2R1bHVzKSkucmVkUG93KG5ldyB6KGsucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCkudG9BcnJheSgpKX19LDc4NTk6TT0+'@; put 'e00uZXhwb3J0cz1mdW5jdGlvbihPLFIpe2Zvcih2YXIgej1PLmxlbmd0aCxLPS0xOysrSzx6OylPW0tdXj1SW0tdO3JldHVybiBPfX0sMzY4OTooTSxPLFIpPT57InVzZSBzdHJpY3QiO1IucihPKSxSLmQoTyx7ZGVjb2RlOigpPT5vZSxkZWZhdWx0OigpPT5jZSxlbmNvZGU6KCk9PnNlLHRv'@; put 'QVNDSUk6KCk9PnVlLHRvVW5pY29kZTooKT0+aGUsdWNzMmRlY29kZTooKT0+VSx1Y3MyZW5jb2RlOigpPT5xfSk7Y29uc3Qgej0yMTQ3NDgzNjQ3LEs9MzYsST0vXnhuLS0vLGs9L1teXDAtXHg3Rl0vLEU9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLGo9e292ZXJmbG93OiJPdmVyZmxv'@; put 'dzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcyIsIm5vdC1iYXNpYyI6IklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludCkiLCJpbnZhbGlkLWlucHV0IjoiSW52YWxpZCBpbnB1dCJ9LFY9TWF0aC5mbG9vcixCPVN0cmluZy5mcm9tQ2hh'@; put 'ckNvZGU7ZnVuY3Rpb24gWShHKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihqW0ddKX1mdW5jdGlvbiBYKEcsYil7Y29uc3QgRD1HLnNwbGl0KCJAIik7bGV0IEg9IiI7cmV0dXJuIEQubGVuZ3RoPjEmJihIPURbMF0rIkAiLEc9RFsxXSksSCtmdW5jdGlvbihnLEMpe2NvbnN0IFM9W107bGV0IHY9'@; put 'Zy5sZW5ndGg7Zm9yKDt2LS07KVNbdl09QyhnW3ZdKTtyZXR1cm4gU30oKEc9Ry5yZXBsYWNlKEUsIi4iKSkuc3BsaXQoIi4iKSxiKS5qb2luKCIuIil9ZnVuY3Rpb24gVShHKXtjb25zdCBiPVtdO2xldCBEPTA7Y29uc3QgSD1HLmxlbmd0aDtmb3IoO0Q8SDspe2NvbnN0IE49Ry5jaGFyQ29k'@; put 'ZUF0KEQrKyk7aWYoTj49NTUyOTYmJk48PTU2MzE5JiZEPEgpe2NvbnN0IGc9Ry5jaGFyQ29kZUF0KEQrKyk7NTYzMjA9PSg2NDUxMiZnKT9iLnB1c2goKCgxMDIzJk4pPDwxMCkrKDEwMjMmZykrNjU1MzYpOihiLnB1c2goTiksRC0tKX1lbHNlIGIucHVzaChOKX1yZXR1cm4gYn1jb25zdCBx'@; put 'PUc9PlN0cmluZy5mcm9tQ29kZVBvaW50KC4uLkcpLGVlPWZ1bmN0aW9uKEcsYil7cmV0dXJuIEcrMjIrNzUqKEc8MjYpLSgoMCE9Yik8PDUpfSx0ZT1mdW5jdGlvbihHLGIsRCl7bGV0IEg9MDtmb3IoRz1EP1YoRy83MDApOkc+PjEsRys9VihHL2IpO0c+NDU1O0grPUspRz1WKEcvMzUpO3Jl'@; put 'dHVybiBWKEgrMzYqRy8oRyszOCkpfSxvZT1mdW5jdGlvbihHKXtjb25zdCBiPVtdLEQ9Ry5sZW5ndGg7bGV0IEg9MCxOPTEyOCxnPTcyLEM9Ry5sYXN0SW5kZXhPZigiLSIpO0M8MCYmKEM9MCk7Zm9yKGxldCB2PTA7djxDOysrdilHLmNoYXJDb2RlQXQodik+PTEyOCYmWSgibm90LWJhc2lj'@; put 'IiksYi5wdXNoKEcuY2hhckNvZGVBdCh2KSk7Zm9yKGxldCB2PUM+MD9DKzE6MDt2PEQ7KXtjb25zdCBwPUg7Zm9yKGxldCBKPTEsbmU9Szs7bmUrPUspe3Y+PUQmJlkoImludmFsaWQtaW5wdXQiKTtjb25zdCBkZT0oUz1HLmNoYXJDb2RlQXQodisrKSk+PTQ4JiZTPDU4P1MtNDgrMjY6Uz49'@; put 'NjUmJlM8OTE/Uy02NTpTPj05NyYmUzwxMjM/Uy05NzpLO2RlPj1LJiZZKCJpbnZhbGlkLWlucHV0IiksZGU+Vigoei1IKS9KKSYmWSgib3ZlcmZsb3ciKSxIKz1kZSpKO2NvbnN0IGZlPW5lPD1nPzE6bmU+PWcrMjY/MjY6bmUtZztpZihkZTxmZSlicmVhaztjb25zdCB4ZT1LLWZlO0o+Vih6'@; put 'L3hlKSYmWSgib3ZlcmZsb3ciKSxKKj14ZX1jb25zdCB3PWIubGVuZ3RoKzE7Zz10ZShILXAsdywwPT1wKSxWKEgvdyk+ei1OJiZZKCJvdmVyZmxvdyIpLE4rPVYoSC93KSxIJT13LGIuc3BsaWNlKEgrKywwLE4pfXZhciBTO3JldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5iKX0sc2U9'@; put 'ZnVuY3Rpb24oRyl7Y29uc3QgYj1bXSxEPShHPVUoRykpLmxlbmd0aDtsZXQgSD0xMjgsTj0wLGc9NzI7Zm9yKGNvbnN0IHYgb2YgRyl2PDEyOCYmYi5wdXNoKEIodikpO2NvbnN0IEM9Yi5sZW5ndGg7bGV0IFM9Qztmb3IoQyYmYi5wdXNoKCItIik7UzxEOyl7bGV0IHY9ejtmb3IoY29uc3Qg'@; put 'dyBvZiBHKXc+PUgmJnc8diYmKHY9dyk7Y29uc3QgcD1TKzE7di1IPlYoKHotTikvcCkmJlkoIm92ZXJmbG93IiksTis9KHYtSCkqcCxIPXY7Zm9yKGNvbnN0IHcgb2YgRylpZih3PEgmJisrTj56JiZZKCJvdmVyZmxvdyIpLHc9PT1IKXtsZXQgSj1OO2ZvcihsZXQgbmU9Szs7bmUrPUspe2Nv'@; put 'bnN0IGRlPW5lPD1nPzE6bmU+PWcrMjY/MjY6bmUtZztpZihKPGRlKWJyZWFrO2NvbnN0IGZlPUotZGUseGU9Sy1kZTtiLnB1c2goQihlZShkZStmZSV4ZSwwKSkpLEo9VihmZS94ZSl9Yi5wdXNoKEIoZWUoSiwwKSkpLGc9dGUoTixwLFM9PT1DKSxOPTAsKytTfSsrTiwrK0h9cmV0dXJuIGIu'@; put 'am9pbigiIil9LGhlPWZ1bmN0aW9uKEcpe3JldHVybiBYKEcsZnVuY3Rpb24oYil7cmV0dXJuIEkudGVzdChiKT9vZShiLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOmJ9KX0sdWU9ZnVuY3Rpb24oRyl7cmV0dXJuIFgoRyxmdW5jdGlvbihiKXtyZXR1cm4gay50ZXN0KGIpPyJ4bi0tIitzZShi'@; put 'KTpifSl9LGNlPXt2ZXJzaW9uOiIyLjEuMCIsdWNzMjp7ZGVjb2RlOlUsZW5jb2RlOnF9LGRlY29kZTpvZSxlbmNvZGU6c2UsdG9BU0NJSTp1ZSx0b1VuaWNvZGU6aGV9fSw3MTI5OihNLE8pPT57InVzZSBzdHJpY3QiO3ZhciBSPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVu'@; put 'Y3Rpb24geihJKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChJLnJlcGxhY2UoL1wrL2csIiAiKSl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIEsoSSl7dHJ5e3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoSSl9Y2F0Y2h7cmV0dXJuIG51bGx9fU8uc3RyaW5naWZ5PWZ1bmN0'@; put 'aW9uKEksayl7az1rfHwiIjt2YXIgRSxqLFY9W107Zm9yKGogaW4ic3RyaW5nIiE9dHlwZW9mIGsmJihrPSI/IiksSSlpZihSLmNhbGwoSSxqKSl7aWYoKEU9SVtqXSl8fG51bGwhPUUmJiFpc05hTihFKXx8KEU9IiIpLGo9SyhqKSxFPUsoRSksbnVsbD09PWp8fG51bGw9PT1FKWNvbnRpbnVl'@; put 'O1YucHVzaChqKyI9IitFKX1yZXR1cm4gVi5sZW5ndGg/aytWLmpvaW4oIiYiKToiIn0sTy5wYXJzZT1mdW5jdGlvbihJKXtmb3IodmFyIGssRT0vKFtePT8jJl0rKT0/KFteJl0qKS9nLGo9e307az1FLmV4ZWMoSSk7KXt2YXIgVj16KGtbMV0pLEI9eihrWzJdKTtudWxsPT09Vnx8bnVsbD09'@; put 'PUJ8fFYgaW4ganx8KGpbVl09Qil9cmV0dXJuIGp9fSwxNzk4OihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KSxLPTY1NTM2LGs9Uig5NTA5KS5CdWZmZXIsRT1SLmcuY3J5cHRvfHxSLmcubXNDcnlwdG87TS5leHBvcnRzPUUmJkUuZ2V0UmFuZG9tVmFsdWVzP2Z1bmN0aW9u'@; put 'KGosVil7aWYoaj40Mjk0OTY3Mjk1KXRocm93IG5ldyBSYW5nZUVycm9yKCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzIik7dmFyIEI9ay5hbGxvY1Vuc2FmZShqKTtpZihqPjApaWYoaj5LKWZvcih2YXIgWT0wO1k8ajtZKz1LKUUuZ2V0UmFuZG9tVmFsdWVzKEIuc2xpY2UoWSxZ'@; put 'K0spKTtlbHNlIEUuZ2V0UmFuZG9tVmFsdWVzKEIpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBWP3oubmV4dFRpY2soZnVuY3Rpb24oKXtWKG51bGwsQil9KTpCfTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3Vw'@; put 'cG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci5cblVzZSBDaHJvbWUsIEZpcmVmb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEiKX19LDc5NjM6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUpO2Z1bmN0aW9uIEsoKXt0aHJvdyBuZXcgRXJyb3IoInNlY3VyZSByYW5kb20gbnVtYmVy'@; put 'IGdlbmVyYXRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXJcbnVzZSBjaHJvbWUsIEZpcmVGb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEiKX12YXIgST1SKDk1MDkpLGs9UigxNzk4KSxFPUkuQnVmZmVyLGo9SS5rTWF4TGVuZ3RoLFY9Ui5nLmNyeXB0b3x8Ui5nLm1zQ3J5cHRv'@; put 'LEI9TWF0aC5wb3coMiwzMiktMTtmdW5jdGlvbiBZKHEsZWUpe2lmKCJudW1iZXIiIT10eXBlb2YgcXx8cSE9cSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIG51bWJlciIpO2lmKHE+Qnx8cTwwKXRocm93IG5ldyBUeXBlRXJyb3IoIm9mZnNldCBtdXN0IGJlIGEgdWlu'@; put 'dDMyIik7aWYocT5qfHxxPmVlKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gWChxLGVlLHRlKXtpZigibnVtYmVyIiE9dHlwZW9mIHF8fHEhPXEpdGhyb3cgbmV3IFR5cGVFcnJvcigic2l6ZSBtdXN0IGJlIGEgbnVtYmVyIik7aWYocT5CfHxx'@; put 'PDApdGhyb3cgbmV3IFR5cGVFcnJvcigic2l6ZSBtdXN0IGJlIGEgdWludDMyIik7aWYocStlZT50ZXx8cT5qKXRocm93IG5ldyBSYW5nZUVycm9yKCJidWZmZXIgdG9vIHNtYWxsIil9ZnVuY3Rpb24gVShxLGVlLHRlLG9lKXtpZih6LmJyb3dzZXIpe3ZhciBoZT1uZXcgVWludDhBcnJheShx'@; put 'LmJ1ZmZlcixlZSx0ZSk7cmV0dXJuIFYuZ2V0UmFuZG9tVmFsdWVzKGhlKSxvZT92b2lkIHoubmV4dFRpY2soZnVuY3Rpb24oKXtvZShudWxsLHEpfSk6cX1pZighb2UpcmV0dXJuIGsodGUpLmNvcHkocSxlZSkscTtrKHRlLGZ1bmN0aW9uKHVlLGNlKXtpZih1ZSlyZXR1cm4gb2UodWUpO2Nl'@; put 'LmNvcHkocSxlZSksb2UobnVsbCxxKX0pfVYmJlYuZ2V0UmFuZG9tVmFsdWVzfHwhei5icm93c2VyPyhPLnJhbmRvbUZpbGw9ZnVuY3Rpb24ocSxlZSx0ZSxvZSl7aWYoIShFLmlzQnVmZmVyKHEpfHxxIGluc3RhbmNlb2YgUi5nLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJi'@; put 'dWYiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlZSlvZT1lZSxlZT0wLHRlPXEubGVuZ3RoO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIHRlKW9lPXRlLHRlPXEubGVuZ3RoLWVlO2Vsc2UgaWYoImZ1bmN0aW9uIiE9'@; put 'dHlwZW9mIG9lKXRocm93IG5ldyBUeXBlRXJyb3IoJyJjYiIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7cmV0dXJuIFkoZWUscS5sZW5ndGgpLFgodGUsZWUscS5sZW5ndGgpLFUocSxlZSx0ZSxvZSl9LE8ucmFuZG9tRmlsbFN5bmM9ZnVuY3Rpb24ocSxlZSx0ZSl7aWYodm9pZCAw'@; put 'PT09ZWUmJihlZT0wKSwhKEUuaXNCdWZmZXIocSl8fHEgaW5zdGFuY2VvZiBSLmcuVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZiIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7cmV0dXJuIFkoZWUscS5sZW5ndGgpLHZvaWQgMD09PXRlJiYo'@; put 'dGU9cS5sZW5ndGgtZWUpLFgodGUsZWUscS5sZW5ndGgpLFUocSxlZSx0ZSl9KTooTy5yYW5kb21GaWxsPUssTy5yYW5kb21GaWxsU3luYz1LKX0sNDI4MTpNPT57InVzZSBzdHJpY3QiO3ZhciBPPXt9O2Z1bmN0aW9uIFIoSyxJLGspe2t8fChrPUVycm9yKTt2YXIgRT1mdW5jdGlvbihqKXt2'@; put 'YXIgVixCO2Z1bmN0aW9uIFkoWCxVLHEpe3JldHVybiBqLmNhbGwodGhpcywic3RyaW5nIj09dHlwZW9mIEk/STpJKFgsVSxxKSl8fHRoaXN9cmV0dXJuIEI9aiwoVj1ZKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShCLnByb3RvdHlwZSksVi5wcm90b3R5cGUuY29uc3RydWN0b3I9VixWLl9f'@; put 'cHJvdG9fXz1CLFl9KGspO0UucHJvdG90eXBlLm5hbWU9ay5uYW1lLEUucHJvdG90eXBlLmNvZGU9SyxPW0tdPUV9ZnVuY3Rpb24geihLLEkpe2lmKEFycmF5LmlzQXJyYXkoSykpe3ZhciBrPUsubGVuZ3RoO3JldHVybiBLPUsubWFwKGZ1bmN0aW9uKEUpe3JldHVybiBTdHJpbmcoRSl9KSxr'@; put 'PjI/Im9uZSBvZiAiLmNvbmNhdChJLCIgIikuY29uY2F0KEsuc2xpY2UoMCxrLTEpLmpvaW4oIiwgIiksIiwgb3IgIikrS1trLTFdOjI9PT1rPyJvbmUgb2YgIi5jb25jYXQoSSwiICIpLmNvbmNhdChLWzBdLCIgb3IgIikuY29uY2F0KEtbMV0pOiJvZiAiLmNvbmNhdChJLCIgIikuY29uY2F0'@; put 'KEtbMF0pfXJldHVybiJvZiAiLmNvbmNhdChJLCIgIikuY29uY2F0KFN0cmluZyhLKSl9UigiRVJSX0lOVkFMSURfT1BUX1ZBTFVFIixmdW5jdGlvbihLLEkpe3JldHVybidUaGUgdmFsdWUgIicrSSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gIicrSysnIid9LFR5cGVFcnJvciksUigiRVJS'@; put 'X0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKEssSSxrKXt2YXIgRSxCLFgscTtpZigic3RyaW5nIj09dHlwZW9mIEkmJiJub3QgIj09PUkuc3Vic3RyKDAsNCk/KEU9Im11c3Qgbm90IGJlIixJPUkucmVwbGFjZSgvXm5vdCAvLCIiKSk6RT0ibXVzdCBiZSIsWD1LLCh2b2lkIDA9PT1xfHxx'@; put 'PlgubGVuZ3RoKSYmKHE9WC5sZW5ndGgpLCIgYXJndW1lbnQiPT09WC5zdWJzdHJpbmcocS05LHEpKUI9IlRoZSAiLmNvbmNhdChLLCIgIikuY29uY2F0KEUsIiAiKS5jb25jYXQoeihJLCJ0eXBlIikpO2Vsc2V7dmFyIFk9ZnVuY3Rpb24oWCxVLHEpe3JldHVybiJudW1iZXIiIT10eXBlb2Yg'@; put 'cSYmKHE9MCksIShxKzE+WC5sZW5ndGgpJiYtMSE9PVguaW5kZXhPZigiLiIscSl9KEspPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtCPSdUaGUgIicuY29uY2F0KEssJyIgJykuY29uY2F0KFksIiAiKS5jb25jYXQoRSwiICIpLmNvbmNhdCh6KEksInR5cGUiKSl9cmV0dXJuIEIrIi4gUmVjZWl2'@; put 'ZWQgdHlwZSAiLmNvbmNhdCh0eXBlb2Ygayl9LFR5cGVFcnJvciksUigiRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRiIsInN0cmVhbS5wdXNoKCkgYWZ0ZXIgRU9GIiksUigiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLGZ1bmN0aW9uKEspe3JldHVybiJUaGUgIitLKyIgbWV0aG9kIGlz'@; put 'IG5vdCBpbXBsZW1lbnRlZCJ9KSxSKCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIsIlByZW1hdHVyZSBjbG9zZSIpLFIoIkVSUl9TVFJFQU1fREVTVFJPWUVEIixmdW5jdGlvbihLKXtyZXR1cm4iQ2Fubm90IGNhbGwgIitLKyIgYWZ0ZXIgYSBzdHJlYW0gd2FzIGRlc3Ryb3llZCJ9KSxS'@; put 'KCJFUlJfTVVMVElQTEVfQ0FMTEJBQ0siLCJDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSxSKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpLFIoIkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5EIiwid3JpdGUgYWZ0ZXIgZW5kIiks'@; put 'UigiRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyIsIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIixUeXBlRXJyb3IpLFIoIkVSUl9VTktOT1dOX0VOQ09ESU5HIixmdW5jdGlvbihLKXtyZXR1cm4iVW5rbm93biBlbmNvZGluZzogIitLfSxUeXBlRXJyb3IpLFIoIkVSUl9TVFJF'@; put 'QU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQiLCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudCIpLE0uZXhwb3J0cy5xPU99LDY3NTM6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUpLEs9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKFUpe3ZhciBxPVtdO2Zvcih2YXIg'@; put 'ZWUgaW4gVSlxLnB1c2goZWUpO3JldHVybiBxfTtNLmV4cG9ydHM9Qjt2YXIgST1SKDk0ODEpLGs9Uig0MjI5KTtSKDU3MTcpKEIsSSk7Zm9yKHZhciBFPUsoay5wcm90b3R5cGUpLGo9MDtqPEUubGVuZ3RoO2orKyl7dmFyIFY9RVtqXTtCLnByb3RvdHlwZVtWXXx8KEIucHJvdG90eXBlW1Zd'@; put 'PWsucHJvdG90eXBlW1ZdKX1mdW5jdGlvbiBCKFUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEIpKXJldHVybiBuZXcgQihVKTtJLmNhbGwodGhpcyxVKSxrLmNhbGwodGhpcyxVKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsVSYmKCExPT09VS5yZWFkYWJsZSYmKHRoaXMucmVhZGFibGU9ITEpLCEx'@; put 'PT09VS53cml0YWJsZSYmKHRoaXMud3JpdGFibGU9ITEpLCExPT09VS5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixZKSkpfWZ1bmN0aW9uIFkoKXt0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHx6Lm5leHRUaWNrKFgsdGhpcyl9ZnVuY3Rp'@; put 'b24gWChVKXtVLmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9w'@; put 'ZXJ0eShCLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLnByb3RvdHlwZSwid3Jp'@; put 'dGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQi5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZv'@; put 'aWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKFUpe3ZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUm'@; put 'JnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1VLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPVUpfX0pfSwyNzI1OihNLE8sUik9PnsidXNlIHN0cmljdCI7TS5leHBvcnRzPUs7dmFyIHo9Uig0NjA1KTtmdW5jdGlvbiBL'@; put 'KEkpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEspKXJldHVybiBuZXcgSyhJKTt6LmNhbGwodGhpcyxJKX1SKDU3MTcpKEsseiksSy5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihJLGssRSl7RShudWxsLEkpfX0sOTQ4MTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6LEs9Uig0MTU1'@; put 'KTtNLmV4cG9ydHM9SCxILlJlYWRhYmxlU3RhdGU9RCxSKDcxODcpO3ZhciBWLEk9ZnVuY3Rpb24oV2UsS2Upe3JldHVybiBXZS5saXN0ZW5lcnMoS2UpLmxlbmd0aH0saz1SKDI1MDMpLEU9Uig4NzY0KS5CdWZmZXIsaj0odm9pZCAwIT09Ui5nP1IuZzp0eXBlb2Ygd2luZG93PCJ1Ij93aW5k'@; put 'b3c6dHlwZW9mIHNlbGY8InUiP3NlbGY6e30pLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxCPVIoNDYxNik7Vj1CJiZCLmRlYnVnbG9nP0IuZGVidWdsb2coInN0cmVhbSIpOmZ1bmN0aW9uKCl7fTt2YXIgWSxYLFUscT1SKDczMjcpLGVlPVIoMTE5NSksdGU9UigyNDU3KS5nZXRIaWdoV2F0'@; put 'ZXJNYXJrLG9lPVIoNDI4MSkucSxzZT1vZS5FUlJfSU5WQUxJRF9BUkdfVFlQRSxoZT1vZS5FUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GLHVlPW9lLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELGNlPW9lLkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7Uig1NzE3KShILGsp'@; put 'O3ZhciBHPWVlLmVycm9yT3JEZXN0cm95LGI9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24gRChXZSxLZSxZZSl7ej16fHxSKDY3NTMpLCJib29sZWFuIiE9dHlwZW9mIFllJiYoWWU9S2UgaW5zdGFuY2VvZiB6KSx0aGlzLm9iamVjdE1vZGU9'@; put 'ISEoV2U9V2V8fHt9KS5vYmplY3RNb2RlLFllJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFXZS5yZWFkYWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz10ZSh0aGlzLFdlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLFllKSx0aGlzLmJ1ZmZlcj1uZXcgcSx0'@; put 'aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRh'@; put 'YmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT1XZS5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIVdlLmF1dG9EZXN0cm95LHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVm'@; put 'YXVsdEVuY29kaW5nPVdlLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLFdlLmVuY29kaW5nJiYoWXx8KFk9UigyNTUzKS5TdHJpbmdEZWNvZGVyKSx0aGlzLmRl'@; put 'Y29kZXI9bmV3IFkoV2UuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9V2UuZW5jb2RpbmcpfWZ1bmN0aW9uIEgoV2Upe2lmKHo9enx8Uig2NzUzKSwhKHRoaXMgaW5zdGFuY2VvZiBIKSlyZXR1cm4gbmV3IEgoV2UpO3RoaXMuX3JlYWRhYmxlU3RhdGU9bmV3IEQoV2UsdGhpcyx0aGlzIGluc3Rh'@; put 'bmNlb2YgeiksdGhpcy5yZWFkYWJsZT0hMCxXZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBXZS5yZWFkJiYodGhpcy5fcmVhZD1XZS5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgV2UuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9V2UuZGVzdHJveSkpLGsuY2FsbCh0aGlzKX1mdW5jdGlvbiBOKFdl'@; put 'LEtlLFllLFFlLGx0KXtWKCJyZWFkYWJsZUFkZENodW5rIixLZSk7dmFyIFBlLEFlLFRlLHFlLFhlLGJlPVdlLl9yZWFkYWJsZVN0YXRlO2lmKG51bGw9PT1LZSliZS5yZWFkaW5nPSExLGZ1bmN0aW9uKEFlLFRlKXtpZihWKCJvbkVvZkNodW5rIiksIVRlLmVuZGVkKXtpZihUZS5kZWNvZGVy'@; put 'KXt2YXIgcWU9VGUuZGVjb2Rlci5lbmQoKTtxZSYmcWUubGVuZ3RoJiYoVGUuYnVmZmVyLnB1c2gocWUpLFRlLmxlbmd0aCs9VGUub2JqZWN0TW9kZT8xOnFlLmxlbmd0aCl9VGUuZW5kZWQ9ITAsVGUuc3luYz92KEFlKTooVGUubmVlZFJlYWRhYmxlPSExLFRlLmVtaXR0ZWRSZWFkYWJsZXx8'@; put 'KFRlLmVtaXR0ZWRSZWFkYWJsZT0hMCxwKEFlKSkpfX0oV2UsYmUpO2Vsc2UgaWYobHR8fChBZT1iZSxFLmlzQnVmZmVyKFhlPVRlPUtlKXx8WGUgaW5zdGFuY2VvZiBqfHwic3RyaW5nIj09dHlwZW9mIFRlfHx2b2lkIDA9PT1UZXx8QWUub2JqZWN0TW9kZXx8KHFlPW5ldyBzZSgiY2h1bmsi'@; put 'LFsic3RyaW5nIiwiQnVmZmVyIiwiVWludDhBcnJheSJdLFRlKSksUGU9cWUpLFBlKUcoV2UsUGUpO2Vsc2UgaWYoYmUub2JqZWN0TW9kZXx8S2UmJktlLmxlbmd0aD4wKWlmKCJzdHJpbmciPT10eXBlb2YgS2V8fGJlLm9iamVjdE1vZGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihLZSk9PT1F'@; put 'LnByb3RvdHlwZXx8KEtlPWZ1bmN0aW9uKEFlKXtyZXR1cm4gRS5mcm9tKEFlKX0oS2UpKSxRZSliZS5lbmRFbWl0dGVkP0coV2UsbmV3IGNlKTpnKFdlLGJlLEtlLCEwKTtlbHNlIGlmKGJlLmVuZGVkKUcoV2UsbmV3IGhlKTtlbHNle2lmKGJlLmRlc3Ryb3llZClyZXR1cm4hMTtiZS5yZWFk'@; put 'aW5nPSExLGJlLmRlY29kZXImJiFZZT8oS2U9YmUuZGVjb2Rlci53cml0ZShLZSksYmUub2JqZWN0TW9kZXx8MCE9PUtlLmxlbmd0aD9nKFdlLGJlLEtlLCExKTp3KFdlLGJlKSk6ZyhXZSxiZSxLZSwhMSl9ZWxzZSBRZXx8KGJlLnJlYWRpbmc9ITEsdyhXZSxiZSkpO3JldHVybiFiZS5lbmRl'@; put 'ZCYmKGJlLmxlbmd0aDxiZS5oaWdoV2F0ZXJNYXJrfHwwPT09YmUubGVuZ3RoKX1mdW5jdGlvbiBnKFdlLEtlLFllLFFlKXtLZS5mbG93aW5nJiYwPT09S2UubGVuZ3RoJiYhS2Uuc3luYz8oS2UuYXdhaXREcmFpbj0wLFdlLmVtaXQoImRhdGEiLFllKSk6KEtlLmxlbmd0aCs9S2Uub2JqZWN0'@; put 'TW9kZT8xOlllLmxlbmd0aCxRZT9LZS5idWZmZXIudW5zaGlmdChZZSk6S2UuYnVmZmVyLnB1c2goWWUpLEtlLm5lZWRSZWFkYWJsZSYmdihXZSkpLHcoV2UsS2UpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihXZSl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPVdlKX19KSxILnByb3RvdHlwZS5kZXN0'@; put 'cm95PWVlLmRlc3Ryb3ksSC5wcm90b3R5cGUuX3VuZGVzdHJveT1lZS51bmRlc3Ryb3ksSC5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oV2UsS2Upe0tlKFdlKX0sSC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihXZSxLZSl7dmFyIFllLFFlPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJu'@; put 'IFFlLm9iamVjdE1vZGU/WWU9ITA6InN0cmluZyI9PXR5cGVvZiBXZSYmKChLZT1LZXx8UWUuZGVmYXVsdEVuY29kaW5nKSE9PVFlLmVuY29kaW5nJiYoV2U9RS5mcm9tKFdlLEtlKSxLZT0iIiksWWU9ITApLE4odGhpcyxXZSxLZSwhMSxZZSl9LEgucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rp'@; put 'b24oV2Upe3JldHVybiBOKHRoaXMsV2UsbnVsbCwhMCwhMSl9LEgucHJvdG90eXBlLmlzUGF1c2VkPWZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LEgucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKFdlKXtZfHwoWT1SKDI1NTMpLlN0cmlu'@; put 'Z0RlY29kZXIpO3ZhciBLZT1uZXcgWShXZSk7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPUtlLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgWWU9dGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuaGVh'@; put 'ZCxRZT0iIjtudWxsIT09WWU7KVFlKz1LZS53cml0ZShZZS5kYXRhKSxZZT1ZZS5uZXh0O3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09UWUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goUWUpLHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3Ro'@; put 'PVFlLmxlbmd0aCx0aGlzfTt2YXIgQz0xMDczNzQxODI0O2Z1bmN0aW9uIFMoV2UsS2Upe3JldHVybiBXZTw9MHx8MD09PUtlLmxlbmd0aCYmS2UuZW5kZWQ/MDpLZS5vYmplY3RNb2RlPzE6V2UhPVdlP0tlLmZsb3dpbmcmJktlLmxlbmd0aD9LZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDpL'@; put 'ZS5sZW5ndGg6KFdlPktlLmhpZ2hXYXRlck1hcmsmJihLZS5oaWdoV2F0ZXJNYXJrPSgoWWU9V2UpPj1DP1llPUM6KFllLS0sWWV8PVllPj4+MSxZZXw9WWU+Pj4yLFllfD1ZZT4+PjQsWWV8PVllPj4+OCxZZXw9WWU+Pj4xNixZZSsrKSxZZSkpLFdlPD1LZS5sZW5ndGg/V2U6S2UuZW5kZWQ/'@; put 'S2UubGVuZ3RoOihLZS5uZWVkUmVhZGFibGU9ITAsMCkpO3ZhciBZZX1mdW5jdGlvbiB2KFdlKXt2YXIgS2U9V2UuX3JlYWRhYmxlU3RhdGU7VigiZW1pdFJlYWRhYmxlIixLZS5uZWVkUmVhZGFibGUsS2UuZW1pdHRlZFJlYWRhYmxlKSxLZS5uZWVkUmVhZGFibGU9ITEsS2UuZW1pdHRlZFJl'@; put 'YWRhYmxlfHwoVigiZW1pdFJlYWRhYmxlIixLZS5mbG93aW5nKSxLZS5lbWl0dGVkUmVhZGFibGU9ITAsSy5uZXh0VGljayhwLFdlKSl9ZnVuY3Rpb24gcChXZSl7dmFyIEtlPVdlLl9yZWFkYWJsZVN0YXRlO1YoImVtaXRSZWFkYWJsZV8iLEtlLmRlc3Ryb3llZCxLZS5sZW5ndGgsS2UuZW5k'@; put 'ZWQpLEtlLmRlc3Ryb3llZHx8IUtlLmxlbmd0aCYmIUtlLmVuZGVkfHwoV2UuZW1pdCgicmVhZGFibGUiKSxLZS5lbWl0dGVkUmVhZGFibGU9ITEpLEtlLm5lZWRSZWFkYWJsZT0hS2UuZmxvd2luZyYmIUtlLmVuZGVkJiZLZS5sZW5ndGg8PUtlLmhpZ2hXYXRlck1hcmsseGUoV2UpfWZ1bmN0'@; put 'aW9uIHcoV2UsS2Upe0tlLnJlYWRpbmdNb3JlfHwoS2UucmVhZGluZ01vcmU9ITAsSy5uZXh0VGljayhKLFdlLEtlKSl9ZnVuY3Rpb24gSihXZSxLZSl7Zm9yKDshS2UucmVhZGluZyYmIUtlLmVuZGVkJiYoS2UubGVuZ3RoPEtlLmhpZ2hXYXRlck1hcmt8fEtlLmZsb3dpbmcmJjA9PT1LZS5s'@; put 'ZW5ndGgpOyl7dmFyIFllPUtlLmxlbmd0aDtpZihWKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLFdlLnJlYWQoMCksWWU9PT1LZS5sZW5ndGgpYnJlYWt9S2UucmVhZGluZ01vcmU9ITF9ZnVuY3Rpb24gbmUoV2Upe3ZhciBLZT1XZS5fcmVhZGFibGVTdGF0ZTtLZS5yZWFkYWJsZUxpc3Rlbmlu'@; put 'Zz1XZS5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsS2UucmVzdW1lU2NoZWR1bGVkJiYhS2UucGF1c2VkP0tlLmZsb3dpbmc9ITA6V2UubGlzdGVuZXJDb3VudCgiZGF0YSIpPjAmJldlLnJlc3VtZSgpfWZ1bmN0aW9uIGRlKFdlKXtWKCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDAiKSxX'@; put 'ZS5yZWFkKDApfWZ1bmN0aW9uIGZlKFdlLEtlKXtWKCJyZXN1bWUiLEtlLnJlYWRpbmcpLEtlLnJlYWRpbmd8fFdlLnJlYWQoMCksS2UucmVzdW1lU2NoZWR1bGVkPSExLFdlLmVtaXQoInJlc3VtZSIpLHhlKFdlKSxLZS5mbG93aW5nJiYhS2UucmVhZGluZyYmV2UucmVhZCgwKX1mdW5jdGlv'@; put 'biB4ZShXZSl7dmFyIEtlPVdlLl9yZWFkYWJsZVN0YXRlO2ZvcihWKCJmbG93IixLZS5mbG93aW5nKTtLZS5mbG93aW5nJiZudWxsIT09V2UucmVhZCgpOyk7fWZ1bmN0aW9uIExlKFdlLEtlKXtyZXR1cm4gMD09PUtlLmxlbmd0aD9udWxsOihLZS5vYmplY3RNb2RlP1llPUtlLmJ1ZmZlci5z'@; put 'aGlmdCgpOiFXZXx8V2U+PUtlLmxlbmd0aD8oWWU9S2UuZGVjb2Rlcj9LZS5idWZmZXIuam9pbigiIik6MT09PUtlLmJ1ZmZlci5sZW5ndGg/S2UuYnVmZmVyLmZpcnN0KCk6S2UuYnVmZmVyLmNvbmNhdChLZS5sZW5ndGgpLEtlLmJ1ZmZlci5jbGVhcigpKTpZZT1LZS5idWZmZXIuY29uc3Vt'@; put 'ZShXZSxLZS5kZWNvZGVyKSxZZSk7dmFyIFllfWZ1bmN0aW9uIEZlKFdlKXt2YXIgS2U9V2UuX3JlYWRhYmxlU3RhdGU7VigiZW5kUmVhZGFibGUiLEtlLmVuZEVtaXR0ZWQpLEtlLmVuZEVtaXR0ZWR8fChLZS5lbmRlZD0hMCxLLm5leHRUaWNrKE9lLEtlLFdlKSl9ZnVuY3Rpb24gT2UoV2Us'@; put 'S2Upe2lmKFYoImVuZFJlYWRhYmxlTlQiLFdlLmVuZEVtaXR0ZWQsV2UubGVuZ3RoKSwhV2UuZW5kRW1pdHRlZCYmMD09PVdlLmxlbmd0aCYmKFdlLmVuZEVtaXR0ZWQ9ITAsS2UucmVhZGFibGU9ITEsS2UuZW1pdCgiZW5kIiksV2UuYXV0b0Rlc3Ryb3kpKXt2YXIgWWU9S2UuX3dyaXRhYmxl'@; put 'U3RhdGU7KCFZZXx8WWUuYXV0b0Rlc3Ryb3kmJlllLmZpbmlzaGVkKSYmS2UuZGVzdHJveSgpfX1mdW5jdGlvbiBqZShXZSxLZSl7Zm9yKHZhciBZZT0wLFFlPVdlLmxlbmd0aDtZZTxRZTtZZSsrKWlmKFdlW1llXT09PUtlKXJldHVybiBZZTtyZXR1cm4tMX1ILnByb3RvdHlwZS5yZWFkPWZ1'@; put 'bmN0aW9uKFdlKXtWKCJyZWFkIixXZSksV2U9cGFyc2VJbnQoV2UsMTApO3ZhciBLZT10aGlzLl9yZWFkYWJsZVN0YXRlLFllPVdlO2lmKDAhPT1XZSYmKEtlLmVtaXR0ZWRSZWFkYWJsZT0hMSksMD09PVdlJiZLZS5uZWVkUmVhZGFibGUmJigoMCE9PUtlLmhpZ2hXYXRlck1hcms/S2UubGVu'@; put 'Z3RoPj1LZS5oaWdoV2F0ZXJNYXJrOktlLmxlbmd0aD4wKXx8S2UuZW5kZWQpKXJldHVybiBWKCJyZWFkOiBlbWl0UmVhZGFibGUiLEtlLmxlbmd0aCxLZS5lbmRlZCksMD09PUtlLmxlbmd0aCYmS2UuZW5kZWQ/RmUodGhpcyk6dih0aGlzKSxudWxsO2lmKDA9PT0oV2U9UyhXZSxLZSkpJiZL'@; put 'ZS5lbmRlZClyZXR1cm4gMD09PUtlLmxlbmd0aCYmRmUodGhpcyksbnVsbDt2YXIgUWUsbHQ9S2UubmVlZFJlYWRhYmxlO3JldHVybiBWKCJuZWVkIHJlYWRhYmxlIixsdCksKDA9PT1LZS5sZW5ndGh8fEtlLmxlbmd0aC1XZTxLZS5oaWdoV2F0ZXJNYXJrKSYmVigibGVuZ3RoIGxlc3MgdGhh'@; put 'biB3YXRlcm1hcmsiLGx0PSEwKSxLZS5lbmRlZHx8S2UucmVhZGluZz9WKCJyZWFkaW5nIG9yIGVuZGVkIixsdD0hMSk6bHQmJihWKCJkbyByZWFkIiksS2UucmVhZGluZz0hMCxLZS5zeW5jPSEwLDA9PT1LZS5sZW5ndGgmJihLZS5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQoS2UuaGln'@; put 'aFdhdGVyTWFyayksS2Uuc3luYz0hMSxLZS5yZWFkaW5nfHwoV2U9UyhZZSxLZSkpKSxudWxsPT09KFFlPVdlPjA/TGUoV2UsS2UpOm51bGwpPyhLZS5uZWVkUmVhZGFibGU9S2UubGVuZ3RoPD1LZS5oaWdoV2F0ZXJNYXJrLFdlPTApOihLZS5sZW5ndGgtPVdlLEtlLmF3YWl0RHJhaW49MCks'@; put 'MD09PUtlLmxlbmd0aCYmKEtlLmVuZGVkfHwoS2UubmVlZFJlYWRhYmxlPSEwKSxZZSE9PVdlJiZLZS5lbmRlZCYmRmUodGhpcykpLG51bGwhPT1RZSYmdGhpcy5lbWl0KCJkYXRhIixRZSksUWV9LEgucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKFdlKXtHKHRoaXMsbmV3IHVlKCJfcmVhZCgp'@; put 'IikpfSxILnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKFdlLEtlKXt2YXIgWWU9dGhpcyxRZT10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChRZS5waXBlc0NvdW50KXtjYXNlIDA6UWUucGlwZXM9V2U7YnJlYWs7Y2FzZSAxOlFlLnBpcGVzPVtRZS5waXBlcyxXZV07YnJlYWs7ZGVmYXVsdDpR'@; put 'ZS5waXBlcy5wdXNoKFdlKX1RZS5waXBlc0NvdW50Kz0xLFYoInBpcGUgY291bnQ9JWQgb3B0cz0laiIsUWUucGlwZXNDb3VudCxLZSk7dmFyIGx0PUtlJiYhMT09PUtlLmVuZHx8V2U9PT1LLnN0ZG91dHx8V2U9PT1LLnN0ZGVycj9NZTpiZTtmdW5jdGlvbiBiZSgpe1YoIm9uZW5kIiksV2Uu'@; put 'ZW5kKCl9UWUuZW5kRW1pdHRlZD9LLm5leHRUaWNrKGx0KTpZZS5vbmNlKCJlbmQiLGx0KSxXZS5vbigidW5waXBlIixmdW5jdGlvbiBQZShEZSx6ZSl7Vigib251bnBpcGUiKSxEZT09PVllJiZ6ZSYmITE9PT16ZS5oYXNVbnBpcGVkJiYoemUuaGFzVW5waXBlZD0hMCxWKCJjbGVhbnVwIiks'@; put 'V2UucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixVZSksV2UucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsaHQpLFdlLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsQWUpLFdlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsWGUpLFdlLnJlbW92ZUxpc3RlbmVyKCJ1bnBpcGUiLFBlKSxZZS5yZW1vdmVMaXN0'@; put 'ZW5lcigiZW5kIixiZSksWWUucmVtb3ZlTGlzdGVuZXIoImVuZCIsTWUpLFllLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixxZSksVGU9ITAsIVFlLmF3YWl0RHJhaW58fFdlLl93cml0YWJsZVN0YXRlJiYhV2UuX3dyaXRhYmxlU3RhdGUubmVlZERyYWlufHxBZSgpKX0pO3ZhciBEZSxBZT0oRGU9'@; put 'WWUsZnVuY3Rpb24oKXt2YXIgemU9RGUuX3JlYWRhYmxlU3RhdGU7VigicGlwZU9uRHJhaW4iLHplLmF3YWl0RHJhaW4pLHplLmF3YWl0RHJhaW4mJnplLmF3YWl0RHJhaW4tLSwwPT09emUuYXdhaXREcmFpbiYmSShEZSwiZGF0YSIpJiYoemUuZmxvd2luZz0hMCx4ZShEZSkpfSk7V2Uub24o'@; put 'ImRyYWluIixBZSk7dmFyIFRlPSExO2Z1bmN0aW9uIHFlKERlKXtWKCJvbmRhdGEiKTt2YXIgemU9V2Uud3JpdGUoRGUpO1YoImRlc3Qud3JpdGUiLHplKSwhMT09PXplJiYoKDE9PT1RZS5waXBlc0NvdW50JiZRZS5waXBlcz09PVdlfHxRZS5waXBlc0NvdW50PjEmJi0xIT09amUoUWUucGlw'@; put 'ZXMsV2UpKSYmIVRlJiYoVigiZmFsc2Ugd3JpdGUgcmVzcG9uc2UsIHBhdXNlIixRZS5hd2FpdERyYWluKSxRZS5hd2FpdERyYWluKyspLFllLnBhdXNlKCkpfWZ1bmN0aW9uIFhlKERlKXtWKCJvbmVycm9yIixEZSksTWUoKSxXZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLFhlKSwwPT09SShX'@; put 'ZSwiZXJyb3IiKSYmRyhXZSxEZSl9ZnVuY3Rpb24gVWUoKXtXZS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixodCksTWUoKX1mdW5jdGlvbiBodCgpe1YoIm9uZmluaXNoIiksV2UucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixVZSksTWUoKX1mdW5jdGlvbiBNZSgpe1YoInVucGlwZSIpLFllLnVu'@; put 'cGlwZShXZSl9cmV0dXJuIFllLm9uKCJkYXRhIixxZSksZnVuY3Rpb24oRGUsemUsb3Qpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBEZS5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIERlLnByZXBlbmRMaXN0ZW5lcih6ZSxvdCk7RGUuX2V2ZW50cyYmRGUuX2V2ZW50c1t6ZV0/QXJyYXkuaXNBcnJh'@; put 'eShEZS5fZXZlbnRzW3plXSk/RGUuX2V2ZW50c1t6ZV0udW5zaGlmdChvdCk6RGUuX2V2ZW50c1t6ZV09W290LERlLl9ldmVudHNbemVdXTpEZS5vbih6ZSxvdCl9KFdlLCJlcnJvciIsWGUpLFdlLm9uY2UoImNsb3NlIixVZSksV2Uub25jZSgiZmluaXNoIixodCksV2UuZW1pdCgicGlwZSIs'@; put 'WWUpLFFlLmZsb3dpbmd8fChWKCJwaXBlIHJlc3VtZSIpLFllLnJlc3VtZSgpKSxXZX0sSC5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKFdlKXt2YXIgS2U9dGhpcy5fcmVhZGFibGVTdGF0ZSxZZT17aGFzVW5waXBlZDohMX07aWYoMD09PUtlLnBpcGVzQ291bnQpcmV0dXJuIHRoaXM7aWYo'@; put 'MT09PUtlLnBpcGVzQ291bnQpcmV0dXJuIFdlJiZXZSE9PUtlLnBpcGVzfHwoV2V8fChXZT1LZS5waXBlcyksS2UucGlwZXM9bnVsbCxLZS5waXBlc0NvdW50PTAsS2UuZmxvd2luZz0hMSxXZSYmV2UuZW1pdCgidW5waXBlIix0aGlzLFllKSksdGhpcztpZighV2Upe3ZhciBRZT1LZS5waXBl'@; put 'cyxsdD1LZS5waXBlc0NvdW50O0tlLnBpcGVzPW51bGwsS2UucGlwZXNDb3VudD0wLEtlLmZsb3dpbmc9ITE7Zm9yKHZhciBQZT0wO1BlPGx0O1BlKyspUWVbUGVdLmVtaXQoInVucGlwZSIsdGhpcyx7aGFzVW5waXBlZDohMX0pO3JldHVybiB0aGlzfXZhciBiZT1qZShLZS5waXBlcyxXZSk7'@; put 'cmV0dXJuLTE9PT1iZXx8KEtlLnBpcGVzLnNwbGljZShiZSwxKSxLZS5waXBlc0NvdW50LT0xLDE9PT1LZS5waXBlc0NvdW50JiYoS2UucGlwZXM9S2UucGlwZXNbMF0pLFdlLmVtaXQoInVucGlwZSIsdGhpcyxZZSkpLHRoaXN9LEgucHJvdG90eXBlLmFkZExpc3RlbmVyPUgucHJvdG90eXBl'@; put 'Lm9uPWZ1bmN0aW9uKFdlLEtlKXt2YXIgWWU9ay5wcm90b3R5cGUub24uY2FsbCh0aGlzLFdlLEtlKSxRZT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PVdlPyhRZS5yZWFkYWJsZUxpc3RlbmluZz10aGlzLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCwhMSE9PVFlLmZs'@; put 'b3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT1XZSYmKFFlLmVuZEVtaXR0ZWR8fFFlLnJlYWRhYmxlTGlzdGVuaW5nfHwoUWUucmVhZGFibGVMaXN0ZW5pbmc9UWUubmVlZFJlYWRhYmxlPSEwLFFlLmZsb3dpbmc9ITEsUWUuZW1pdHRlZFJlYWRhYmxlPSExLFYoIm9uIHJlYWRh'@; put 'YmxlIixRZS5sZW5ndGgsUWUucmVhZGluZyksUWUubGVuZ3RoP3YodGhpcyk6UWUucmVhZGluZ3x8Sy5uZXh0VGljayhkZSx0aGlzKSkpLFllfSxILnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihXZSxLZSl7dmFyIFllPWsucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwo'@; put 'dGhpcyxXZSxLZSk7cmV0dXJuInJlYWRhYmxlIj09PVdlJiZLLm5leHRUaWNrKG5lLHRoaXMpLFllfSxILnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oV2Upe3ZhciBLZT1rLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Jl'@; put 'dHVybiJyZWFkYWJsZSIhPT1XZSYmdm9pZCAwIT09V2V8fEsubmV4dFRpY2sobmUsdGhpcyksS2V9LEgucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3ZhciBZZSxXZT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBXZS5mbG93aW5nfHwoVigicmVzdW1lIiksV2UuZmxvd2luZz0hV2Uu'@; put 'cmVhZGFibGVMaXN0ZW5pbmcsKFllPVdlKS5yZXN1bWVTY2hlZHVsZWR8fChZZS5yZXN1bWVTY2hlZHVsZWQ9ITAsSy5uZXh0VGljayhmZSx0aGlzLFllKSkpLFdlLnBhdXNlZD0hMSx0aGlzfSxILnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiBWKCJjYWxsIHBhdXNlIGZsb3dp'@; put 'bmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJihWKCJwYXVzZSIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikpLHRoaXMuX3JlYWRhYmxlU3RhdGUucGF1c2VkPSEwLHRo'@; put 'aXN9LEgucHJvdG90eXBlLndyYXA9ZnVuY3Rpb24oV2Upe3ZhciBLZT10aGlzLFllPXRoaXMuX3JlYWRhYmxlU3RhdGUsUWU9ITE7Zm9yKHZhciBsdCBpbiBXZS5vbigiZW5kIixmdW5jdGlvbigpe2lmKFYoIndyYXBwZWQgZW5kIiksWWUuZGVjb2RlciYmIVllLmVuZGVkKXt2YXIgYmU9WWUu'@; put 'ZGVjb2Rlci5lbmQoKTtiZSYmYmUubGVuZ3RoJiZLZS5wdXNoKGJlKX1LZS5wdXNoKG51bGwpfSksV2Uub24oImRhdGEiLGZ1bmN0aW9uKGJlKXtWKCJ3cmFwcGVkIGRhdGEiKSxZZS5kZWNvZGVyJiYoYmU9WWUuZGVjb2Rlci53cml0ZShiZSkpLFllLm9iamVjdE1vZGUmJm51bGw9PWJlfHwo'@; put 'WWUub2JqZWN0TW9kZXx8YmUmJmJlLmxlbmd0aCkmJihLZS5wdXNoKGJlKXx8KFFlPSEwLFdlLnBhdXNlKCkpKX0pLFdlKXZvaWQgMD09PXRoaXNbbHRdJiYiZnVuY3Rpb24iPT10eXBlb2YgV2VbbHRdJiYodGhpc1tsdF09ZnVuY3Rpb24oYmUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBX'@; put 'ZVtiZV0uYXBwbHkoV2UsYXJndW1lbnRzKX19KGx0KSk7Zm9yKHZhciBQZT0wO1BlPGIubGVuZ3RoO1BlKyspV2Uub24oYltQZV0sdGhpcy5lbWl0LmJpbmQodGhpcyxiW1BlXSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9uKGJlKXtWKCJ3cmFwcGVkIF9yZWFkIixiZSksUWUmJihRZT0h'@; put 'MSxXZS5yZXN1bWUoKSl9LHRoaXN9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihILnByb3RvdHlwZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09WCYmKFg9Uig1ODUwKSksWCh0aGlzKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3Rv'@; put 'dHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3RvdHlwZSwicmVhZGFibGVCdWZmZXIiLHtlbnVtZXJhYmxl'@; put 'OiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSC5wcm90b3R5cGUsInJlYWRhYmxlRmxvd2luZyIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sc2V0OmZ1bmN0aW9uKFdlKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPVdlKX19KSxILl9mcm9tTGlzdD1MZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSC5wcm90b3R5cGUsInJlYWRhYmxlTGVu'@; put 'Z3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGh9fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEguZnJvbT1mdW5jdGlvbihXZSxLZSl7cmV0dXJuIHZvaWQgMD09PVUmJihVPVIoNTE2NykpLFUoSCxXZSxLZSl9'@; put 'KX0sNDYwNTooTSxPLFIpPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1CO3ZhciB6PVIoNDI4MSkucSxLPXouRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsST16LkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxrPXouRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyxFPXouRVJSX1RS'@; put 'QU5TRk9STV9XSVRIX0xFTkdUSF8wLGo9Uig2NzUzKTtmdW5jdGlvbiBWKFUscSl7dmFyIGVlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2VlLnRyYW5zZm9ybWluZz0hMTt2YXIgdGU9ZWUud3JpdGVjYjtpZihudWxsPT09dGUpcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLG5ldyBJKTtlZS53cml0'@; put 'ZWNodW5rPW51bGwsZWUud3JpdGVjYj1udWxsLG51bGwhPXEmJnRoaXMucHVzaChxKSx0ZShVKTt2YXIgb2U9dGhpcy5fcmVhZGFibGVTdGF0ZTtvZS5yZWFkaW5nPSExLChvZS5uZWVkUmVhZGFibGV8fG9lLmxlbmd0aDxvZS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChvZS5oaWdoV2F0'@; put 'ZXJNYXJrKX1mdW5jdGlvbiBCKFUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEIpKXJldHVybiBuZXcgQihVKTtqLmNhbGwodGhpcyxVKSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06Vi5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRl'@; put 'Y2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsVSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBVLnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT1VLnRy'@; put 'YW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIFUuZmx1c2gmJih0aGlzLl9mbHVzaD1VLmZsdXNoKSksdGhpcy5vbigicHJlZmluaXNoIixZKX1mdW5jdGlvbiBZKCl7dmFyIFU9dGhpczsiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fZmx1c2h8fHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJv'@; put 'eWVkP1godGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKGZ1bmN0aW9uKHEsZWUpe1goVSxxLGVlKX0pfWZ1bmN0aW9uIFgoVSxxLGVlKXtpZihxKXJldHVybiBVLmVtaXQoImVycm9yIixxKTtpZihudWxsIT1lZSYmVS5wdXNoKGVlKSxVLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBu'@; put 'ZXcgRTtpZihVLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IGs7cmV0dXJuIFUucHVzaChudWxsKX1SKDU3MTcpKEIsaiksQi5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihVLHEpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLGoucHJv'@; put 'dG90eXBlLnB1c2guY2FsbCh0aGlzLFUscSl9LEIucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oVSxxLGVlKXtlZShuZXcgSygiX3RyYW5zZm9ybSgpIikpfSxCLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oVSxxLGVlKXt2YXIgdGU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7aWYodGUu'@; put 'd3JpdGVjYj1lZSx0ZS53cml0ZWNodW5rPVUsdGUud3JpdGVlbmNvZGluZz1xLCF0ZS50cmFuc2Zvcm1pbmcpe3ZhciBvZT10aGlzLl9yZWFkYWJsZVN0YXRlOyh0ZS5uZWVkVHJhbnNmb3JtfHxvZS5uZWVkUmVhZGFibGV8fG9lLmxlbmd0aDxvZS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVh'@; put 'ZChvZS5oaWdoV2F0ZXJNYXJrKX19LEIucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKFUpe3ZhciBxPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGw9PT1xLndyaXRlY2h1bmt8fHEudHJhbnNmb3JtaW5nP3EubmVlZFRyYW5zZm9ybT0hMDoocS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNm'@; put 'b3JtKHEud3JpdGVjaHVuayxxLndyaXRlZW5jb2RpbmcscS5hZnRlclRyYW5zZm9ybSkpfSxCLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihVLHEpe2oucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxVLGZ1bmN0aW9uKGVlKXtxKGVlKX0pfX0sNDIyOTooTSxPLFIpPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciB6LEs9Uig0MTU1KTtmdW5jdGlvbiBJKHcpe3ZhciBKPXRoaXM7dGhpcy5uZXh0PW51bGwsdGhpcy5lbnRyeT1udWxsLHRoaXMuZmluaXNoPWZ1bmN0aW9uKCl7IWZ1bmN0aW9uKG5lLGRlLGZlKXt2YXIgeGU9bmUuZW50cnk7Zm9yKG5lLmVudHJ5PW51bGw7eGU7KXt2YXIg'@; put 'TGU9eGUuY2FsbGJhY2s7ZGUucGVuZGluZ2NiLS0sTGUodm9pZCAwKSx4ZT14ZS5uZXh0fWRlLmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PW5lfShKLHcpfX1NLmV4cG9ydHM9SCxILldyaXRhYmxlU3RhdGU9RDt2YXIgQixrPXtkZXByZWNhdGU6Uig0OTI3KX0sRT1SKDI1MDMpLGo9Uig4NzY0'@; put 'KS5CdWZmZXIsVj0odm9pZCAwIT09Ui5nP1IuZzp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIHNlbGY8InUiP3NlbGY6e30pLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxZPVIoMTE5NSksWD1SKDI0NTcpLmdldEhpZ2hXYXRlck1hcmssVT1SKDQyODEpLnEscT1VLkVSUl9JTlZB'@; put 'TElEX0FSR19UWVBFLGVlPVUuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsdGU9VS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssb2U9VS5FUlJfU1RSRUFNX0NBTk5PVF9QSVBFLHNlPVUuRVJSX1NUUkVBTV9ERVNUUk9ZRUQsaGU9VS5FUlJfU1RSRUFNX05VTExfVkFMVUVTLHVlPVUuRVJSX1NU'@; put 'UkVBTV9XUklURV9BRlRFUl9FTkQsY2U9VS5FUlJfVU5LTk9XTl9FTkNPRElORyxHPVkuZXJyb3JPckRlc3Ryb3k7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBEKHcsSixuZSl7ej16fHxSKDY3NTMpLCJib29sZWFuIiE9dHlwZW9mIG5lJiYobmU9SiBpbnN0YW5jZW9mIHopLHRoaXMub2JqZWN0'@; put 'TW9kZT0hISh3PXd8fHt9KS5vYmplY3RNb2RlLG5lJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF3LndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPVgodGhpcyx3LCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLG5lKSx0aGlzLmZpbmFsQ2FsbGVkPSEx'@; put 'LHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmRlY29kZVN0cmluZ3M9ISghMT09PXcuZGVjb2RlU3RyaW5ncyksdGhpcy5kZWZhdWx0RW5jb2Rpbmc9dy5kZWZhdWx0RW5jb2Rpbmd8'@; put 'fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKGZlKXshZnVuY3Rpb24oeGUsTGUpe3ZhciBLZSxGZT14ZS5fd3JpdGFibGVTdGF0ZSxPZT1G'@; put 'ZS5zeW5jLGplPUZlLndyaXRlY2I7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGplKXRocm93IG5ldyB0ZTtpZigoS2U9RmUpLndyaXRpbmc9ITEsS2Uud3JpdGVjYj1udWxsLEtlLmxlbmd0aC09S2Uud3JpdGVsZW4sS2Uud3JpdGVsZW49MCxMZSkhZnVuY3Rpb24oS2UsWWUsUWUsbHQsUGUpey0t'@; put 'WWUucGVuZGluZ2NiLFFlPyhLLm5leHRUaWNrKFBlLGx0KSxLLm5leHRUaWNrKHAsS2UsWWUpLEtlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxHKEtlLGx0KSk6KFBlKGx0KSxLZS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsRyhLZSxsdCkscChLZSxZZSkpfSh4ZSxG'@; put 'ZSxPZSxMZSxqZSk7ZWxzZXt2YXIgV2U9UyhGZSl8fHhlLmRlc3Ryb3llZDtXZXx8RmUuY29ya2VkfHxGZS5idWZmZXJQcm9jZXNzaW5nfHwhRmUuYnVmZmVyZWRSZXF1ZXN0fHxDKHhlLEZlKSxPZT9LLm5leHRUaWNrKGcseGUsRmUsV2UsamUpOmcoeGUsRmUsV2UsamUpfX0oSixmZSl9LHRo'@; put 'aXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmVtaXRDbG9zZT0hMSE9'@; put 'PXcuZW1pdENsb3NlLHRoaXMuYXV0b0Rlc3Ryb3k9ISF3LmF1dG9EZXN0cm95LHRoaXMuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MCx0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgSSh0aGlzKX1mdW5jdGlvbiBIKHcpe3ZhciBKPXRoaXMgaW5zdGFuY2VvZih6PXp8fFIoNjc1MykpO2lmKCFK'@; put 'JiYhQi5jYWxsKEgsdGhpcykpcmV0dXJuIG5ldyBIKHcpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IEQodyx0aGlzLEopLHRoaXMud3JpdGFibGU9ITAsdyYmKCJmdW5jdGlvbiI9PXR5cGVvZiB3LndyaXRlJiYodGhpcy5fd3JpdGU9dy53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIHcud3Jp'@; put 'dGV2JiYodGhpcy5fd3JpdGV2PXcud3JpdGV2KSwiZnVuY3Rpb24iPT10eXBlb2Ygdy5kZXN0cm95JiYodGhpcy5fZGVzdHJveT13LmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiB3LmZpbmFsJiYodGhpcy5fZmluYWw9dy5maW5hbCkpLEUuY2FsbCh0aGlzKX1mdW5jdGlvbiBOKHcsSixu'@; put 'ZSxkZSxmZSx4ZSxMZSl7Si53cml0ZWxlbj1kZSxKLndyaXRlY2I9TGUsSi53cml0aW5nPSEwLEouc3luYz0hMCxKLmRlc3Ryb3llZD9KLm9ud3JpdGUobmV3IHNlKCJ3cml0ZSIpKTpuZT93Ll93cml0ZXYoZmUsSi5vbndyaXRlKTp3Ll93cml0ZShmZSx4ZSxKLm9ud3JpdGUpLEouc3luYz0h'@; put 'MX1mdW5jdGlvbiBnKHcsSixuZSxkZSl7dmFyIGZlLHhlO25lfHwoZmU9dywwPT09KHhlPUopLmxlbmd0aCYmeGUubmVlZERyYWluJiYoeGUubmVlZERyYWluPSExLGZlLmVtaXQoImRyYWluIikpKSxKLnBlbmRpbmdjYi0tLGRlKCkscCh3LEopfWZ1bmN0aW9uIEModyxKKXtKLmJ1ZmZlclBy'@; put 'b2Nlc3Npbmc9ITA7dmFyIG5lPUouYnVmZmVyZWRSZXF1ZXN0O2lmKHcuX3dyaXRldiYmbmUmJm5lLm5leHQpe3ZhciBmZT1uZXcgQXJyYXkoSi5idWZmZXJlZFJlcXVlc3RDb3VudCkseGU9Si5jb3JrZWRSZXF1ZXN0c0ZyZWU7eGUuZW50cnk9bmU7Zm9yKHZhciBMZT0wLEZlPSEwO25lOylm'@; put 'ZVtMZV09bmUsbmUuaXNCdWZ8fChGZT0hMSksbmU9bmUubmV4dCxMZSs9MTtmZS5hbGxCdWZmZXJzPUZlLE4odyxKLCEwLEoubGVuZ3RoLGZlLCIiLHhlLmZpbmlzaCksSi5wZW5kaW5nY2IrKyxKLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx4ZS5uZXh0PyhKLmNvcmtlZFJlcXVlc3RzRnJl'@; put 'ZT14ZS5uZXh0LHhlLm5leHQ9bnVsbCk6Si5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IEkoSiksSi5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7Zm9yKDtuZTspe3ZhciBPZT1uZS5jaHVuaztpZihOKHcsSiwhMSxKLm9iamVjdE1vZGU/MTpPZS5sZW5ndGgsT2UsbmUuZW5jb2RpbmcsbmUu'@; put 'Y2FsbGJhY2spLG5lPW5lLm5leHQsSi5idWZmZXJlZFJlcXVlc3RDb3VudC0tLEoud3JpdGluZylicmVha31udWxsPT09bmUmJihKLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCl9Si5idWZmZXJlZFJlcXVlc3Q9bmUsSi5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIFModyl7cmV0dXJu'@; put 'IHcuZW5kaW5nJiYwPT09dy5sZW5ndGgmJm51bGw9PT13LmJ1ZmZlcmVkUmVxdWVzdCYmIXcuZmluaXNoZWQmJiF3LndyaXRpbmd9ZnVuY3Rpb24gdih3LEope3cuX2ZpbmFsKGZ1bmN0aW9uKG5lKXtKLnBlbmRpbmdjYi0tLG5lJiZHKHcsbmUpLEoucHJlZmluaXNoZWQ9ITAsdy5lbWl0KCJw'@; put 'cmVmaW5pc2giKSxwKHcsSil9KX1mdW5jdGlvbiBwKHcsSil7dmFyIGZlLHhlLG5lPVMoSik7aWYobmUmJihmZT13LCh4ZT1KKS5wcmVmaW5pc2hlZHx8eGUuZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iIT10eXBlb2YgZmUuX2ZpbmFsfHx4ZS5kZXN0cm95ZWQ/KHhlLnByZWZpbmlzaGVkPSEw'@; put 'LGZlLmVtaXQoInByZWZpbmlzaCIpKTooeGUucGVuZGluZ2NiKysseGUuZmluYWxDYWxsZWQ9ITAsSy5uZXh0VGljayh2LGZlLHhlKSkpLDA9PT1KLnBlbmRpbmdjYiYmKEouZmluaXNoZWQ9ITAsdy5lbWl0KCJmaW5pc2giKSxKLmF1dG9EZXN0cm95KSkpe3ZhciBkZT13Ll9yZWFkYWJsZVN0'@; put 'YXRlOyghZGV8fGRlLmF1dG9EZXN0cm95JiZkZS5lbmRFbWl0dGVkKSYmdy5kZXN0cm95KCl9cmV0dXJuIG5lfVIoNTcxNykoSCxFKSxELnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHc9dGhpcy5idWZmZXJlZFJlcXVlc3QsSj1bXTt3OylKLnB1c2godyksdz13Lm5l'@; put 'eHQ7cmV0dXJuIEp9LGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShELnByb3RvdHlwZSwiYnVmZmVyIix7Z2V0OmsuZGVwcmVjYXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCl9LCJfd3JpdGFibGVTdGF0ZS5idWZmZXIgaXMgZGVwcmVjYXRlZC4gVXNl'@; put 'IF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciBpbnN0ZWFkLiIsIkRFUDAwMDMiKX0pfWNhdGNoe319KCksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmhhc0luc3RhbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0/'@; put 'KEI9RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEgsU3ltYm9sLmhhc0luc3RhbmNlLHt2YWx1ZTpmdW5jdGlvbih3KXtyZXR1cm4hIUIuY2FsbCh0aGlzLHcpfHx0aGlzPT09SCYmdyYmdy5fd3JpdGFibGVTdGF0ZSBpbnN0YW5j'@; put 'ZW9mIER9fSkpOkI9ZnVuY3Rpb24odyl7cmV0dXJuIHcgaW5zdGFuY2VvZiB0aGlzfSxILnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Ryh0aGlzLG5ldyBvZSl9LEgucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHcsSixuZSl7dmFyIGRlLEZlLE9lLGplLGZlPXRoaXMuX3dyaXRhYmxlU3Rh'@; put 'dGUseGU9ITEsTGU9IWZlLm9iamVjdE1vZGUmJihqLmlzQnVmZmVyKGRlPXcpfHxkZSBpbnN0YW5jZW9mIFYpO3JldHVybiBMZSYmIWouaXNCdWZmZXIodykmJih3PWouZnJvbSh3KSksImZ1bmN0aW9uIj09dHlwZW9mIEomJihuZT1KLEo9bnVsbCksTGU/Sj0iYnVmZmVyIjpKfHwoSj1mZS5k'@; put 'ZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiBuZSYmKG5lPWIpLGZlLmVuZGluZz8oRmU9dGhpcyxPZT1uZSxqZT1uZXcgdWUsRyhGZSxqZSksSy5uZXh0VGljayhPZSxqZSkpOihMZXx8ZnVuY3Rpb24oRmUsT2UsamUsV2Upe3ZhciBLZTtyZXR1cm4gbnVsbD09PWplP0tlPW5l'@; put 'dyBoZToic3RyaW5nIj09dHlwZW9mIGplfHxPZS5vYmplY3RNb2RlfHwoS2U9bmV3IHEoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciJdLGplKSksIUtlfHwoRyhGZSxLZSksSy5uZXh0VGljayhXZSxLZSksITEpfSh0aGlzLGZlLHcsbmUpKSYmKGZlLnBlbmRpbmdjYisrLHhlPWZ1bmN0aW9u'@; put 'KEZlLE9lLGplLFdlLEtlLFllKXtpZighamUpe3ZhciBRZT0oVGU9V2UsKEFlPU9lKS5vYmplY3RNb2RlfHwhMT09PUFlLmRlY29kZVN0cmluZ3N8fCJzdHJpbmciIT10eXBlb2YgVGV8fChUZT1qLmZyb20oVGUsS2UpKSxUZSk7V2UhPT1RZSYmKGplPSEwLEtlPSJidWZmZXIiLFdlPVFlKX12'@; put 'YXIgQWUsVGUsbHQ9T2Uub2JqZWN0TW9kZT8xOldlLmxlbmd0aDtPZS5sZW5ndGgrPWx0O3ZhciBQZT1PZS5sZW5ndGg8T2UuaGlnaFdhdGVyTWFyaztpZihQZXx8KE9lLm5lZWREcmFpbj0hMCksT2Uud3JpdGluZ3x8T2UuY29ya2VkKXt2YXIgYmU9T2UubGFzdEJ1ZmZlcmVkUmVxdWVzdDtP'@; put 'ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PXtjaHVuazpXZSxlbmNvZGluZzpLZSxpc0J1ZjpqZSxjYWxsYmFjazpZZSxuZXh0Om51bGx9LGJlP2JlLm5leHQ9T2UubGFzdEJ1ZmZlcmVkUmVxdWVzdDpPZS5idWZmZXJlZFJlcXVlc3Q9T2UubGFzdEJ1ZmZlcmVkUmVxdWVzdCxPZS5idWZmZXJlZFJl'@; put 'cXVlc3RDb3VudCs9MX1lbHNlIE4oRmUsT2UsITEsbHQsV2UsS2UsWWUpO3JldHVybiBQZX0odGhpcyxmZSxMZSx3LEosbmUpKSx4ZX0sSC5wcm90b3R5cGUuY29yaz1mdW5jdGlvbigpe3RoaXMuX3dyaXRhYmxlU3RhdGUuY29ya2VkKyt9LEgucHJvdG90eXBlLnVuY29yaz1mdW5jdGlvbigp'@; put 'e3ZhciB3PXRoaXMuX3dyaXRhYmxlU3RhdGU7dy5jb3JrZWQmJih3LmNvcmtlZC0tLHcud3JpdGluZ3x8dy5jb3JrZWR8fHcuYnVmZmVyUHJvY2Vzc2luZ3x8IXcuYnVmZmVyZWRSZXF1ZXN0fHxDKHRoaXMsdykpfSxILnByb3RvdHlwZS5zZXREZWZhdWx0RW5jb2Rpbmc9ZnVuY3Rpb24odyl7'@; put 'aWYoInN0cmluZyI9PXR5cGVvZiB3JiYodz13LnRvTG93ZXJDYXNlKCkpLCEoWyJoZXgiLCJ1dGY4IiwidXRmLTgiLCJhc2NpaSIsImJpbmFyeSIsImJhc2U2NCIsInVjczIiLCJ1Y3MtMiIsInV0ZjE2bGUiLCJ1dGYtMTZsZSIsInJhdyJdLmluZGV4T2YoKHcrIiIpLnRvTG93ZXJDYXNlKCkp'@; put 'Pi0xKSl0aHJvdyBuZXcgY2Uodyk7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPXcsdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEgucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'X3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEgucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRl'@; put 'LmhpZ2hXYXRlck1hcmt9fSksSC5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHcsSixuZSl7bmUobmV3IGVlKCJfd3JpdGUoKSIpKX0sSC5wcm90b3R5cGUuX3dyaXRldj1udWxsLEgucHJvdG90eXBlLmVuZD1mdW5jdGlvbih3LEosbmUpe3ZhciB4ZSxMZSxkZT10aGlzLl93cml0YWJsZVN0'@; put 'YXRlO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB3PyhuZT13LHc9bnVsbCxKPW51bGwpOiJmdW5jdGlvbiI9PXR5cGVvZiBKJiYobmU9SixKPW51bGwpLG51bGwhPXcmJnRoaXMud3JpdGUodyxKKSxkZS5jb3JrZWQmJihkZS5jb3JrZWQ9MSx0aGlzLnVuY29yaygpKSxkZS5lbmRpbmd8fChM'@; put 'ZT1uZSwoeGU9ZGUpLmVuZGluZz0hMCxwKHRoaXMseGUpLExlJiYoeGUuZmluaXNoZWQ/Sy5uZXh0VGljayhMZSk6dGhpcy5vbmNlKCJmaW5pc2giLExlKSkseGUuZW5kZWQ9ITAsdGhpcy53cml0YWJsZT0hMSksdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEgucHJvdG90eXBlLCJ3cml0'@; put 'YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9p'@; put 'ZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih3KXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9dyl9fSksSC5wcm90b3R5cGUuZGVzdHJveT1ZLmRlc3Ryb3ksSC5w'@; put 'cm90b3R5cGUuX3VuZGVzdHJveT1ZLnVuZGVzdHJveSxILnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih3LEope0oodyl9fSw1ODUwOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHosSz1SKDQxNTUpO2Z1bmN0aW9uIEkoaGUsdWUsY2Upe3JldHVybih1ZT0ic3ltYm9sIj09dHlwZW9m'@; put 'KGI9ZnVuY3Rpb24oRCxIKXtpZigib2JqZWN0IiE9dHlwZW9mIER8fG51bGw9PT1EKXJldHVybiBEO3ZhciBOPURbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1OKXt2YXIgZz1OLmNhbGwoRCwic3RyaW5nIik7aWYoIm9iamVjdCIhPXR5cGVvZiBnKXJldHVybiBnO3Rocm93IG5l'@; put 'dyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhEKX0odWUpKT9iOlN0cmluZyhiKSlpbiBoZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaGUsdWUse3ZhbHVlOmNlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxl'@; put 'OiEwLHdyaXRhYmxlOiEwfSk6aGVbdWVdPWNlLGhlO3ZhciBifXZhciBrPVIoODYxMCksRT1TeW1ib2woImxhc3RSZXNvbHZlIiksaj1TeW1ib2woImxhc3RSZWplY3QiKSxWPVN5bWJvbCgiZXJyb3IiKSxCPVN5bWJvbCgiZW5kZWQiKSxZPVN5bWJvbCgibGFzdFByb21pc2UiKSxYPVN5bWJv'@; put 'bCgiaGFuZGxlUHJvbWlzZSIpLFU9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBxKGhlLHVlKXtyZXR1cm57dmFsdWU6aGUsZG9uZTp1ZX19ZnVuY3Rpb24gZWUoaGUpe3ZhciB1ZT1oZVtFXTtpZihudWxsIT09dWUpe3ZhciBjZT1oZVtVXS5yZWFkKCk7bnVsbCE9PWNlJiYoaGVbWV09bnVs'@; put 'bCxoZVtFXT1udWxsLGhlW2pdPW51bGwsdWUocShjZSwhMSkpKX19ZnVuY3Rpb24gdGUoaGUpe0submV4dFRpY2soZWUsaGUpfXZhciBvZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZnVuY3Rpb24oKXt9KSxzZT1PYmplY3Quc2V0UHJvdG90eXBlT2YoKEkoej17Z2V0IHN0cmVhbSgpe3JldHVy'@; put 'biB0aGlzW1VdfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIGhlPXRoaXMsdWU9dGhpc1tWXTtpZihudWxsIT09dWUpcmV0dXJuIFByb21pc2UucmVqZWN0KHVlKTtpZih0aGlzW0JdKXJldHVybiBQcm9taXNlLnJlc29sdmUocSh2b2lkIDAsITApKTtpZih0aGlzW1VdLmRlc3Ryb3llZClyZXR1cm4g'@; put 'bmV3IFByb21pc2UoZnVuY3Rpb24oRCxIKXtLLm5leHRUaWNrKGZ1bmN0aW9uKCl7aGVbVl0/SChoZVtWXSk6RChxKHZvaWQgMCwhMCkpfSl9KTt2YXIgY2UsRCxILEc9dGhpc1tZXTtpZihHKWNlPW5ldyBQcm9taXNlKChEPUcsSD10aGlzLGZ1bmN0aW9uKE4sZyl7RC50aGVuKGZ1bmN0aW9u'@; put 'KCl7SFtCXT9OKHEodm9pZCAwLCEwKSk6SFtYXShOLGcpfSxnKX0pKTtlbHNle3ZhciBiPXRoaXNbVV0ucmVhZCgpO2lmKG51bGwhPT1iKXJldHVybiBQcm9taXNlLnJlc29sdmUocShiLCExKSk7Y2U9bmV3IFByb21pc2UodGhpc1tYXSl9cmV0dXJuIHRoaXNbWV09Y2UsY2V9fSxTeW1ib2wu'@; put 'YXN5bmNJdGVyYXRvcixmdW5jdGlvbigpe3JldHVybiB0aGlzfSksSSh6LCJyZXR1cm4iLGZ1bmN0aW9uKCl7dmFyIGhlPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHVlLGNlKXtoZVtVXS5kZXN0cm95KG51bGwsZnVuY3Rpb24oRyl7Rz9jZShHKTp1ZShxKHZvaWQgMCwhMCkp'@; put 'fSl9KX0pLHopLG9lKTtNLmV4cG9ydHM9ZnVuY3Rpb24oaGUpe3ZhciB1ZSxjZT1PYmplY3QuY3JlYXRlKHNlLChJKHVlPXt9LFUse3ZhbHVlOmhlLHdyaXRhYmxlOiEwfSksSSh1ZSxFLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksSSh1ZSxqLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSks'@; put 'SSh1ZSxWLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksSSh1ZSxCLHt2YWx1ZTpoZS5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkLHdyaXRhYmxlOiEwfSksSSh1ZSxYLHt2YWx1ZTpmdW5jdGlvbihHLGIpe3ZhciBEPWNlW1VdLnJlYWQoKTtEPyhjZVtZXT1udWxsLGNlW0VdPW51bGwsY2Vb'@; put 'al09bnVsbCxHKHEoRCwhMSkpKTooY2VbRV09RyxjZVtqXT1iKX0sd3JpdGFibGU6ITB9KSx1ZSkpO3JldHVybiBjZVtZXT1udWxsLGsoaGUsZnVuY3Rpb24oRyl7aWYoRyYmIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiE9PUcuY29kZSl7dmFyIGI9Y2Vbal07cmV0dXJuIG51bGwhPT1i'@; put 'JiYoY2VbWV09bnVsbCxjZVtFXT1udWxsLGNlW2pdPW51bGwsYihHKSksdm9pZChjZVtWXT1HKX12YXIgRD1jZVtFXTtudWxsIT09RCYmKGNlW1ldPW51bGwsY2VbRV09bnVsbCxjZVtqXT1udWxsLEQocSh2b2lkIDAsITApKSksY2VbQl09ITB9KSxoZS5vbigicmVhZGFibGUiLHRlLmJpbmQo'@; put 'bnVsbCxjZSkpLGNlfX0sNzMyNzooTSxPLFIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHooWSxYKXt2YXIgVT1PYmplY3Qua2V5cyhZKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFkpO1gmJihxPXEuZmlsdGVy'@; put 'KGZ1bmN0aW9uKGVlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihZLGVlKS5lbnVtZXJhYmxlfSkpLFUucHVzaC5hcHBseShVLHEpfXJldHVybiBVfWZ1bmN0aW9uIEsoWSl7Zm9yKHZhciBYPTE7WDxhcmd1bWVudHMubGVuZ3RoO1grKyl7dmFyIFU9bnVsbCE9YXJn'@; put 'dW1lbnRzW1hdP2FyZ3VtZW50c1tYXTp7fTtYJTI/eihPYmplY3QoVSksITApLmZvckVhY2goZnVuY3Rpb24ocSl7SShZLHEsVVtxXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhZLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny'@; put 'aXB0b3JzKFUpKTp6KE9iamVjdChVKSkuZm9yRWFjaChmdW5jdGlvbihxKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoWSxxLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVSxxKSl9KX1yZXR1cm4gWX1mdW5jdGlvbiBJKFksWCxVKXtyZXR1cm4oWD1FKFgpKWluIFk/T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KFksWCx7dmFsdWU6VSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOllbWF09VSxZfWZ1bmN0aW9uIEUoWSl7dmFyIFg9ZnVuY3Rpb24oVSxxKXtpZigib2JqZWN0IiE9dHlwZW9mIFV8fG51bGw9PT1VKXJldHVybiBVO3ZhciBlZT1VW1N5'@; put 'bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZWUpe3ZhciB0ZT1lZS5jYWxsKFUsInN0cmluZyIpO2lmKCJvYmplY3QiIT10eXBlb2YgdGUpcmV0dXJuIHRlO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0'@; put 'dXJuIFN0cmluZyhVKX0oWSk7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBYP1g6U3RyaW5nKFgpfXZhciBqPVIoODc2NCkuQnVmZmVyLFY9UigyMzYxKS5pbnNwZWN0LEI9ViYmVi5jdXN0b218fCJpbnNwZWN0IjtNLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBZKCl7KGZ1bmN0aW9uKGVl'@; put 'LHRlKXtpZighKGVlIGluc3RhbmNlb2YgdGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxZKSx0aGlzLmhlYWQ9bnVsbCx0aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfXZhciBYLFU7cmV0dXJuIFg9WSwoVT1be2tl'@; put 'eToicHVzaCIsdmFsdWU6ZnVuY3Rpb24oZWUpe3ZhciB0ZT17ZGF0YTplZSxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9dGU6dGhpcy5oZWFkPXRlLHRoaXMudGFpbD10ZSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oZWUpe3Zh'@; put 'ciB0ZT17ZGF0YTplZSxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPXRlKSx0aGlzLmhlYWQ9dGUsKyt0aGlzLmxlbmd0aH19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKDAhPT10aGlzLmxlbmd0aCl7dmFyIGVlPXRoaXMuaGVhZC5kYXRhO3Jl'@; put 'dHVybiB0aGlzLmhlYWQ9MT09PXRoaXMubGVuZ3RoP3RoaXMudGFpbD1udWxsOnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsZWV9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2'@; put 'YWx1ZTpmdW5jdGlvbihlZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgdGU9dGhpcy5oZWFkLG9lPSIiK3RlLmRhdGE7dGU9dGUubmV4dDspb2UrPWVlK3RlLmRhdGE7cmV0dXJuIG9lfX0se2tleToiY29uY2F0Iix2YWx1ZTpmdW5jdGlvbihlZSl7aWYoMD09PXRoaXMu'@; put 'bGVuZ3RoKXJldHVybiBqLmFsbG9jKDApO2Zvcih2YXIgaGU9ai5hbGxvY1Vuc2FmZShlZT4+PjApLHVlPXRoaXMuaGVhZCxjZT0wO3VlOylqLnByb3RvdHlwZS5jb3B5LmNhbGwodWUuZGF0YSxoZSxjZSksY2UrPXVlLmRhdGEubGVuZ3RoLHVlPXVlLm5leHQ7cmV0dXJuIGhlfX0se2tleToi'@; put 'Y29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24oZWUsdGUpe3ZhciBvZTtyZXR1cm4gZWU8dGhpcy5oZWFkLmRhdGEubGVuZ3RoPyhvZT10aGlzLmhlYWQuZGF0YS5zbGljZSgwLGVlKSx0aGlzLmhlYWQuZGF0YT10aGlzLmhlYWQuZGF0YS5zbGljZShlZSkpOm9lPWVlPT09dGhpcy5oZWFkLmRhdGEu'@; put 'bGVuZ3RoP3RoaXMuc2hpZnQoKTp0ZT90aGlzLl9nZXRTdHJpbmcoZWUpOnRoaXMuX2dldEJ1ZmZlcihlZSksb2V9fSx7a2V5OiJmaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OiJfZ2V0U3RyaW5nIix2YWx1ZTpmdW5jdGlvbihlZSl7dmFyIHRl'@; put 'PXRoaXMuaGVhZCxvZT0xLHNlPXRlLmRhdGE7Zm9yKGVlLT1zZS5sZW5ndGg7dGU9dGUubmV4dDspe3ZhciBoZT10ZS5kYXRhLHVlPWVlPmhlLmxlbmd0aD9oZS5sZW5ndGg6ZWU7aWYoc2UrPXVlPT09aGUubGVuZ3RoP2hlOmhlLnNsaWNlKDAsZWUpLDA9PShlZS09dWUpKXt1ZT09PWhlLmxl'@; put 'bmd0aD8oKytvZSx0aGlzLmhlYWQ9dGUubmV4dD90ZS5uZXh0OnRoaXMudGFpbD1udWxsKToodGhpcy5oZWFkPXRlLHRlLmRhdGE9aGUuc2xpY2UodWUpKTticmVha30rK29lfXJldHVybiB0aGlzLmxlbmd0aC09b2Usc2V9fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbihlZSl7'@; put 'dmFyIHRlPWouYWxsb2NVbnNhZmUoZWUpLG9lPXRoaXMuaGVhZCxzZT0xO2ZvcihvZS5kYXRhLmNvcHkodGUpLGVlLT1vZS5kYXRhLmxlbmd0aDtvZT1vZS5uZXh0Oyl7dmFyIGhlPW9lLmRhdGEsdWU9ZWU+aGUubGVuZ3RoP2hlLmxlbmd0aDplZTtpZihoZS5jb3B5KHRlLHRlLmxlbmd0aC1l'@; put 'ZSwwLHVlKSwwPT0oZWUtPXVlKSl7dWU9PT1oZS5sZW5ndGg/KCsrc2UsdGhpcy5oZWFkPW9lLm5leHQ/b2UubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1vZSxvZS5kYXRhPWhlLnNsaWNlKHVlKSk7YnJlYWt9KytzZX1yZXR1cm4gdGhpcy5sZW5ndGgtPXNlLHRlfX0se2tleTpC'@; put 'LHZhbHVlOmZ1bmN0aW9uKGVlLHRlKXtyZXR1cm4gVih0aGlzLEsoSyh7fSx0ZSkse30se2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSkmJmZ1bmN0aW9uIGsoWSxYKXtmb3IodmFyIFU9MDtVPFgubGVuZ3RoO1UrKyl7dmFyIHE9WFtVXTtxLmVudW1lcmFibGU9cS5lbnVtZXJhYmxl'@; put 'fHwhMSxxLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gcSYmKHEud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZLEUocS5rZXkpLHEpfX0oWC5wcm90b3R5cGUsVSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFgsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksWX0oKX0sMTE5'@; put 'NTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDE1NSk7ZnVuY3Rpb24gSyhFLGope2soRSxqKSxJKEUpfWZ1bmN0aW9uIEkoRSl7RS5fd3JpdGFibGVTdGF0ZSYmIUUuX3dyaXRhYmxlU3RhdGUuZW1pdENsb3NlfHxFLl9yZWFkYWJsZVN0YXRlJiYhRS5fcmVhZGFibGVTdGF0ZS5l'@; put 'bWl0Q2xvc2V8fEUuZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBrKEUsail7RS5lbWl0KCJlcnJvciIsail9TS5leHBvcnRzPXtkZXN0cm95OmZ1bmN0aW9uKEUsail7dmFyIFY9dGhpcztyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR8fHRo'@; put 'aXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPyhqP2ooRSk6RSYmKHRoaXMuX3dyaXRhYmxlU3RhdGU/dGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fCh0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCx6Lm5leHRUaWNrKGss'@; put 'dGhpcyxFKSk6ei5uZXh0VGljayhrLHRoaXMsRSkpLHRoaXMpOih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveShF'@; put 'fHxudWxsLGZ1bmN0aW9uKFgpeyFqJiZYP1YuX3dyaXRhYmxlU3RhdGU/Vi5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ/ei5uZXh0VGljayhJLFYpOihWLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCx6Lm5leHRUaWNrKEssVixYKSk6ei5uZXh0VGljayhLLFYsWCk6aj8oei5u'@; put 'ZXh0VGljayhJLFYpLGooWCkpOnoubmV4dFRpY2soSSxWKX0pLHRoaXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRoaXMuX3JlYWRhYmxl'@; put 'U3RhdGUuZW5kZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz0hMSx0'@; put 'aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9LGVycm9yT3JEZXN0cm95OmZ1bmN0aW9uKEUs'@; put 'ail7dmFyIFY9RS5fcmVhZGFibGVTdGF0ZSxCPUUuX3dyaXRhYmxlU3RhdGU7ViYmVi5hdXRvRGVzdHJveXx8QiYmQi5hdXRvRGVzdHJveT9FLmRlc3Ryb3koaik6RS5lbWl0KCJlcnJvciIsail9fX0sODYxMDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDI4MSkucS5FUlJfU1RS'@; put 'RUFNX1BSRU1BVFVSRV9DTE9TRTtmdW5jdGlvbiBLKCl7fU0uZXhwb3J0cz1mdW5jdGlvbiBJKGssRSxqKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgRSlyZXR1cm4gSShrLG51bGwsRSk7dmFyIGhlLHVlO0V8fChFPXt9KSxoZT1qfHxLLHVlPSExLGo9ZnVuY3Rpb24oKXtpZighdWUpe3VlPSEw'@; put 'O2Zvcih2YXIgY2U9YXJndW1lbnRzLmxlbmd0aCxHPW5ldyBBcnJheShjZSksYj0wO2I8Y2U7YisrKUdbYl09YXJndW1lbnRzW2JdO2hlLmFwcGx5KHRoaXMsRyl9fTt2YXIgVj1FLnJlYWRhYmxlfHwhMSE9PUUucmVhZGFibGUmJmsucmVhZGFibGUsQj1FLndyaXRhYmxlfHwhMSE9PUUud3Jp'@; put 'dGFibGUmJmsud3JpdGFibGUsWT1mdW5jdGlvbigpe2sud3JpdGFibGV8fFUoKX0sWD1rLl93cml0YWJsZVN0YXRlJiZrLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLFU9ZnVuY3Rpb24oKXtCPSExLFg9ITAsVnx8ai5jYWxsKGspfSxxPWsuX3JlYWRhYmxlU3RhdGUmJmsuX3JlYWRhYmxlU3Rh'@; put 'dGUuZW5kRW1pdHRlZCxlZT1mdW5jdGlvbigpe1Y9ITEscT0hMCxCfHxqLmNhbGwoayl9LHRlPWZ1bmN0aW9uKGhlKXtqLmNhbGwoayxoZSl9LG9lPWZ1bmN0aW9uKCl7dmFyIGhlO3JldHVybiBWJiYhcT8oay5fcmVhZGFibGVTdGF0ZSYmay5fcmVhZGFibGVTdGF0ZS5lbmRlZHx8KGhlPW5l'@; put 'dyB6KSxqLmNhbGwoayxoZSkpOkImJiFYPyhrLl93cml0YWJsZVN0YXRlJiZrLl93cml0YWJsZVN0YXRlLmVuZGVkfHwoaGU9bmV3IHopLGouY2FsbChrLGhlKSk6dm9pZCAwfSxzZT1mdW5jdGlvbigpe2sucmVxLm9uKCJmaW5pc2giLFUpfTtyZXR1cm4gZnVuY3Rpb24oaGUpe3JldHVybiBo'@; put 'ZS5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBoZS5hYm9ydH0oayk/KGsub24oImNvbXBsZXRlIixVKSxrLm9uKCJhYm9ydCIsb2UpLGsucmVxP3NlKCk6ay5vbigicmVxdWVzdCIsc2UpKTpCJiYhay5fd3JpdGFibGVTdGF0ZSYmKGsub24oImVuZCIsWSksay5vbigiY2xvc2UiLFkp'@; put 'KSxrLm9uKCJlbmQiLGVlKSxrLm9uKCJmaW5pc2giLFUpLCExIT09RS5lcnJvciYmay5vbigiZXJyb3IiLHRlKSxrLm9uKCJjbG9zZSIsb2UpLGZ1bmN0aW9uKCl7ay5yZW1vdmVMaXN0ZW5lcigiY29tcGxldGUiLFUpLGsucmVtb3ZlTGlzdGVuZXIoImFib3J0IixvZSksay5yZW1vdmVMaXN0'@; put 'ZW5lcigicmVxdWVzdCIsc2UpLGsucmVxJiZrLnJlcS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixVKSxrLnJlbW92ZUxpc3RlbmVyKCJlbmQiLFkpLGsucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixZKSxrLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLFUpLGsucmVtb3ZlTGlzdGVuZXIoImVuZCIs'@; put 'ZWUpLGsucmVtb3ZlTGlzdGVuZXIoImVycm9yIix0ZSksay5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLG9lKX19fSw1MTY3Ok09PntNLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlJlYWRhYmxlLmZyb20gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnJvd3NlciIpfX0sOTk0'@; put 'NjooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6LEs9Uig0MjgxKS5xLEk9Sy5FUlJfTUlTU0lOR19BUkdTLGs9Sy5FUlJfU1RSRUFNX0RFU1RST1lFRDtmdW5jdGlvbiBFKEIpe2lmKEIpdGhyb3cgQn1mdW5jdGlvbiBqKEIpe0IoKX1mdW5jdGlvbiBWKEIsWSl7cmV0dXJuIEIucGlwZShZ'@; put 'KX1NLmV4cG9ydHM9ZnVuY3Rpb24oKXtmb3IodmFyIEI9YXJndW1lbnRzLmxlbmd0aCxZPW5ldyBBcnJheShCKSxYPTA7WDxCO1grKylZW1hdPWFyZ3VtZW50c1tYXTt2YXIgVSx0ZSxxPSh0ZT1ZKS5sZW5ndGg/ImZ1bmN0aW9uIiE9dHlwZW9mIHRlW3RlLmxlbmd0aC0xXT9FOnRlLnBvcCgp'@; put 'OkU7aWYoQXJyYXkuaXNBcnJheShZWzBdKSYmKFk9WVswXSksWS5sZW5ndGg8Mil0aHJvdyBuZXcgSSgic3RyZWFtcyIpO3ZhciBlZT1ZLm1hcChmdW5jdGlvbih0ZSxvZSl7dmFyIHNlPW9lPFkubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKGhlLHVlLGNlLEcpe3ZhciBILE47SD1HLE49ITEs'@; put 'Rz1mdW5jdGlvbigpe058fChOPSEwLEguYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfTt2YXIgYj0hMTtoZS5vbigiY2xvc2UiLGZ1bmN0aW9uKCl7Yj0hMH0pLHZvaWQgMD09PXomJih6PVIoODYxMCkpLHooaGUse3JlYWRhYmxlOnVlLHdyaXRhYmxlOmNlfSxmdW5jdGlvbihIKXtpZihIKXJl'@; put 'dHVybiBHKEgpO2I9ITAsRygpfSk7dmFyIEQ9ITE7cmV0dXJuIGZ1bmN0aW9uKEgpe2lmKCFiJiYhRClyZXR1cm4gRD0hMCxmdW5jdGlvbihOKXtyZXR1cm4gTi5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBOLmFib3J0fShoZSk/aGUuYWJvcnQoKToiZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'aGUuZGVzdHJveT9oZS5kZXN0cm95KCk6dm9pZCBHKEh8fG5ldyBrKCJwaXBlIikpfX0odGUsc2Usb2U+MCxmdW5jdGlvbihoZSl7VXx8KFU9aGUpLGhlJiZlZS5mb3JFYWNoKGopLHNlfHwoZWUuZm9yRWFjaChqKSxxKFUpKX0pfSk7cmV0dXJuIFkucmVkdWNlKFYpfX0sMjQ1NzooTSxPLFIp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDI4MSkucS5FUlJfSU5WQUxJRF9PUFRfVkFMVUU7TS5leHBvcnRzPXtnZXRIaWdoV2F0ZXJNYXJrOmZ1bmN0aW9uKEssSSxrLEUpe3ZhciBWLGo9bnVsbCE9KFY9SSkuaGlnaFdhdGVyTWFyaz9WLmhpZ2hXYXRlck1hcms6RT9WW2tdOm51bGw7aWYo'@; put 'bnVsbCE9ail7aWYoIWlzRmluaXRlKGopfHxNYXRoLmZsb29yKGopIT09anx8ajwwKXRocm93IG5ldyB6KEU/azoiaGlnaFdhdGVyTWFyayIsaik7cmV0dXJuIE1hdGguZmxvb3Ioail9cmV0dXJuIEsub2JqZWN0TW9kZT8xNjoxNjM4NH19fSwyNTAzOihNLE8sUik9PntNLmV4cG9ydHM9Uig3'@; put 'MTg3KS5FdmVudEVtaXR0ZXJ9LDg0NzM6KE0sTyxSKT0+eyhPPU0uZXhwb3J0cz1SKDk0ODEpKS5TdHJlYW09TyxPLlJlYWRhYmxlPU8sTy5Xcml0YWJsZT1SKDQyMjkpLE8uRHVwbGV4PVIoNjc1MyksTy5UcmFuc2Zvcm09Uig0NjA1KSxPLlBhc3NUaHJvdWdoPVIoMjcyNSksTy5maW5pc2hl'@; put 'ZD1SKDg2MTApLE8ucGlwZWxpbmU9Uig5OTQ2KX0sNzQxODpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1mdW5jdGlvbihPLFIpe2lmKFI9Ui5zcGxpdCgiOiIpWzBdLCEoTz0rTykpcmV0dXJuITE7c3dpdGNoKFIpe2Nhc2UiaHR0cCI6Y2FzZSJ3cyI6cmV0dXJuIDgwIT09TztjYXNlImh0'@; put 'dHBzIjpjYXNlIndzcyI6cmV0dXJuIDQ0MyE9PU87Y2FzZSJmdHAiOnJldHVybiAyMSE9PU87Y2FzZSJnb3BoZXIiOnJldHVybiA3MCE9PU87Y2FzZSJmaWxlIjpyZXR1cm4hMX1yZXR1cm4gMCE9PU99fSw5ODQ6KE0sTyxSKT0+e3ZhciB6PVIoNDE1NSk7Y29uc3QgSz1SKDkyODIpLEk9Uigy'@; put 'NTIwKSxrPVIoNzIxNyk7bGV0IEU7dHJ5e0U9UigyODg0KX1jYXRjaHt9Y29uc3Qgaj17bm9zb3J0OiEwLHNpbGVudDohMH07bGV0IFY9MDtjb25zdCBCPSJ3aW4zMiI9PT16LnBsYXRmb3JtLFk9Y2U9PntpZihbInVubGluayIsImNobW9kIiwic3RhdCIsImxzdGF0Iiwicm1kaXIiLCJyZWFk'@; put 'ZGlyIl0uZm9yRWFjaChHPT57Y2VbR109Y2VbR118fGtbR10sY2VbRys9IlN5bmMiXT1jZVtHXXx8a1tHXX0pLGNlLm1heEJ1c3lUcmllcz1jZS5tYXhCdXN5VHJpZXN8fDMsY2UuZW1maWxlV2FpdD1jZS5lbWZpbGVXYWl0fHwxZTMsITE9PT1jZS5nbG9iJiYoY2UuZGlzYWJsZUdsb2I9ITAp'@; put 'LCEwIT09Y2UuZGlzYWJsZUdsb2ImJnZvaWQgMD09PUUpdGhyb3cgRXJyb3IoImdsb2IgZGVwZW5kZW5jeSBub3QgZm91bmQsIHNldCBgb3B0aW9ucy5kaXNhYmxlR2xvYiA9IHRydWVgIGlmIGludGVudGlvbmFsIik7Y2UuZGlzYWJsZUdsb2I9Y2UuZGlzYWJsZUdsb2J8fCExLGNlLmdsb2I9'@; put 'Y2UuZ2xvYnx8an0sWD0oY2UsRyxiKT0+eyJmdW5jdGlvbiI9PXR5cGVvZiBHJiYoYj1HLEc9e30pLEsoY2UsInJpbXJhZjogbWlzc2luZyBwYXRoIiksSy5lcXVhbCh0eXBlb2YgY2UsInN0cmluZyIsInJpbXJhZjogcGF0aCBzaG91bGQgYmUgYSBzdHJpbmciKSxLLmVxdWFsKHR5cGVvZiBi'@; put 'LCJmdW5jdGlvbiIsInJpbXJhZjogY2FsbGJhY2sgZnVuY3Rpb24gcmVxdWlyZWQiKSxLKEcsInJpbXJhZjogaW52YWxpZCBvcHRpb25zIGFyZ3VtZW50IHByb3ZpZGVkIiksSy5lcXVhbCh0eXBlb2YgRywib2JqZWN0IiwicmltcmFmOiBvcHRpb25zIHNob3VsZCBiZSBvYmplY3QiKSxZKEcp'@; put 'O2xldCBEPTAsSD1udWxsLE49MDtjb25zdCBnPShDLFMpPT5DP2IoQyk6KE49Uy5sZW5ndGgsMD09PU4/YigpOnZvaWQgUy5mb3JFYWNoKHY9Pntjb25zdCBwPXc9PntpZih3KXtpZigoIkVCVVNZIj09PXcuY29kZXx8IkVOT1RFTVBUWSI9PT13LmNvZGV8fCJFUEVSTSI9PT13LmNvZGUpJiZE'@; put 'PEcubWF4QnVzeVRyaWVzKXJldHVybiBEKyssc2V0VGltZW91dCgoKT0+VSh2LEcscCksMTAwKkQpO2lmKCJFTUZJTEUiPT09dy5jb2RlJiZWPEcuZW1maWxlV2FpdClyZXR1cm4gc2V0VGltZW91dCgoKT0+VSh2LEcscCksVisrKTsiRU5PRU5UIj09PXcuY29kZSYmKHc9bnVsbCl9Vj0wLEg9'@; put 'SHx8dywwPT0tLU4mJmIoSCl9O1UodixHLHApfSkpO2lmKEcuZGlzYWJsZUdsb2J8fCFFLmhhc01hZ2ljKGNlKSlyZXR1cm4gZyhudWxsLFtjZV0pO0cubHN0YXQoY2UsKEMsUyk9PntpZighQylyZXR1cm4gZyhudWxsLFtjZV0pO0UoY2UsRy5nbG9iLGcpfSl9LFU9KGNlLEcsYik9PntLKGNl'@; put 'KSxLKEcpLEsoImZ1bmN0aW9uIj09dHlwZW9mIGIpLEcubHN0YXQoY2UsKEQsSCk9PkQmJiJFTk9FTlQiPT09RC5jb2RlP2IobnVsbCk6KEQmJiJFUEVSTSI9PT1ELmNvZGUmJkImJnEoY2UsRyxELGIpLEgmJkguaXNEaXJlY3RvcnkoKT90ZShjZSxHLEQsYik6dm9pZCBHLnVubGluayhjZSxO'@; put 'PT57aWYoTil7aWYoIkVOT0VOVCI9PT1OLmNvZGUpcmV0dXJuIGIobnVsbCk7aWYoIkVQRVJNIj09PU4uY29kZSlyZXR1cm4gQj9xKGNlLEcsTixiKTp0ZShjZSxHLE4sYik7aWYoIkVJU0RJUiI9PT1OLmNvZGUpcmV0dXJuIHRlKGNlLEcsTixiKX1yZXR1cm4gYihOKX0pKSl9LHE9KGNlLEcs'@; put 'YixEKT0+e0soY2UpLEsoRyksSygiZnVuY3Rpb24iPT10eXBlb2YgRCksRy5jaG1vZChjZSw0MzgsSD0+e0g/RCgiRU5PRU5UIj09PUguY29kZT9udWxsOmIpOkcuc3RhdChjZSwoTixnKT0+e04/RCgiRU5PRU5UIj09PU4uY29kZT9udWxsOmIpOmcuaXNEaXJlY3RvcnkoKT90ZShjZSxHLGIs'@; put 'RCk6Ry51bmxpbmsoY2UsRCl9KX0pfSxlZT0oY2UsRyxiKT0+e0soY2UpLEsoRyk7dHJ5e0cuY2htb2RTeW5jKGNlLDQzOCl9Y2F0Y2goSCl7aWYoIkVOT0VOVCI9PT1ILmNvZGUpcmV0dXJuO3Rocm93IGJ9bGV0IEQ7dHJ5e0Q9Ry5zdGF0U3luYyhjZSl9Y2F0Y2goSCl7aWYoIkVOT0VOVCI9'@; put 'PT1ILmNvZGUpcmV0dXJuO3Rocm93IGJ9RC5pc0RpcmVjdG9yeSgpP2hlKGNlLEcsYik6Ry51bmxpbmtTeW5jKGNlKX0sdGU9KGNlLEcsYixEKT0+e0soY2UpLEsoRyksSygiZnVuY3Rpb24iPT10eXBlb2YgRCksRy5ybWRpcihjZSxIPT57IUh8fCJFTk9URU1QVFkiIT09SC5jb2RlJiYiRUVY'@; put 'SVNUIiE9PUguY29kZSYmIkVQRVJNIiE9PUguY29kZT9EKEgmJiJFTk9URElSIj09PUguY29kZT9iOkgpOm9lKGNlLEcsRCl9KX0sb2U9KGNlLEcsYik9PntLKGNlKSxLKEcpLEsoImZ1bmN0aW9uIj09dHlwZW9mIGIpLEcucmVhZGRpcihjZSwoRCxIKT0+e2lmKEQpcmV0dXJuIGIoRCk7bGV0'@; put 'IE4sZz1ILmxlbmd0aDtpZigwPT09ZylyZXR1cm4gRy5ybWRpcihjZSxiKTtILmZvckVhY2goQz0+e1goSS5qb2luKGNlLEMpLEcsUz0+e2lmKCFOKXJldHVybiBTP2IoTj1TKTp2b2lkKDA9PS0tZyYmRy5ybWRpcihjZSxiKSl9KX0pfSl9LHNlPShjZSxHKT0+e2xldCBiO2lmKFkoRz1HfHx7'@; put 'fSksSyhjZSwicmltcmFmOiBtaXNzaW5nIHBhdGgiKSxLLmVxdWFsKHR5cGVvZiBjZSwic3RyaW5nIiwicmltcmFmOiBwYXRoIHNob3VsZCBiZSBhIHN0cmluZyIpLEsoRywicmltcmFmOiBtaXNzaW5nIG9wdGlvbnMiKSxLLmVxdWFsKHR5cGVvZiBHLCJvYmplY3QiLCJyaW1yYWY6IG9wdGlv'@; put 'bnMgc2hvdWxkIGJlIG9iamVjdCIpLEcuZGlzYWJsZUdsb2J8fCFFLmhhc01hZ2ljKGNlKSliPVtjZV07ZWxzZSB0cnl7Ry5sc3RhdFN5bmMoY2UpLGI9W2NlXX1jYXRjaHtiPUUuc3luYyhjZSxHLmdsb2IpfWlmKGIubGVuZ3RoKWZvcihsZXQgRD0wO0Q8Yi5sZW5ndGg7RCsrKXtjb25zdCBI'@; put 'PWJbRF07bGV0IE47dHJ5e049Ry5sc3RhdFN5bmMoSCl9Y2F0Y2goZyl7aWYoIkVOT0VOVCI9PT1nLmNvZGUpcmV0dXJuOyJFUEVSTSI9PT1nLmNvZGUmJkImJmVlKEgsRyxnKX10cnl7TiYmTi5pc0RpcmVjdG9yeSgpP2hlKEgsRyxudWxsKTpHLnVubGlua1N5bmMoSCl9Y2F0Y2goZyl7aWYo'@; put 'IkVOT0VOVCI9PT1nLmNvZGUpcmV0dXJuO2lmKCJFUEVSTSI9PT1nLmNvZGUpcmV0dXJuIEI/ZWUoSCxHLGcpOmhlKEgsRyxnKTtpZigiRUlTRElSIiE9PWcuY29kZSl0aHJvdyBnO2hlKEgsRyxnKX19fSxoZT0oY2UsRyxiKT0+e0soY2UpLEsoRyk7dHJ5e0cucm1kaXJTeW5jKGNlKX1jYXRj'@; put 'aChEKXtpZigiRU5PRU5UIj09PUQuY29kZSlyZXR1cm47aWYoIkVOT1RESVIiPT09RC5jb2RlKXRocm93IGI7IkVOT1RFTVBUWSIhPT1ELmNvZGUmJiJFRVhJU1QiIT09RC5jb2RlJiYiRVBFUk0iIT09RC5jb2RlfHx1ZShjZSxHKX19LHVlPShjZSxHKT0+e0soY2UpLEsoRyksRy5yZWFkZGly'@; put 'U3luYyhjZSkuZm9yRWFjaChIPT5zZShJLmpvaW4oY2UsSCksRykpO2NvbnN0IGI9Qj8xMDA6MTtsZXQgRD0wO2Zvcig7Oyl7bGV0IEg9ITA7dHJ5e2NvbnN0IE49Ry5ybWRpclN5bmMoY2UsRyk7cmV0dXJuIEg9ITEsTn1maW5hbGx5e2lmKCsrRDxiJiZIKWNvbnRpbnVlfX19O00uZXhwb3J0'@; put 'cz1YLFguc3luYz1zZX0sOTc4NTooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoODc2NCkuQnVmZmVyLEs9Uig1NzE3KSxJPVIoMzM0OSksaz1uZXcgQXJyYXkoMTYpLEU9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAs'@; put 'OSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10saj1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAs'@; put 'MywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxWPVsxMSwx'@; put 'NCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDEx'@; put 'LDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSxCPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEs'@; put 'MTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSxZPVswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdLFg9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQy'@; put 'MTcsMF07ZnVuY3Rpb24gVSgpe0kuY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjB9ZnVuY3Rpb24gcSh1ZSxjZSl7cmV0dXJuIHVlPDxjZXx1ZT4+'@; put 'PjMyLWNlfWZ1bmN0aW9uIGVlKHVlLGNlLEcsYixELEgsTixnKXtyZXR1cm4gcSh1ZSsoY2VeR15iKStIK058MCxnKStEfDB9ZnVuY3Rpb24gdGUodWUsY2UsRyxiLEQsSCxOLGcpe3JldHVybiBxKHVlKyhjZSZHfH5jZSZiKStIK058MCxnKStEfDB9ZnVuY3Rpb24gb2UodWUsY2UsRyxiLEQs'@; put 'SCxOLGcpe3JldHVybiBxKHVlKygoY2V8fkcpXmIpK0grTnwwLGcpK0R8MH1mdW5jdGlvbiBzZSh1ZSxjZSxHLGIsRCxILE4sZyl7cmV0dXJuIHEodWUrKGNlJmJ8RyZ+YikrSCtOfDAsZykrRHwwfWZ1bmN0aW9uIGhlKHVlLGNlLEcsYixELEgsTixnKXtyZXR1cm4gcSh1ZSsoY2VeKEd8fmIp'@; put 'KStIK058MCxnKStEfDB9SyhVLEkpLFUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIHVlPWssY2U9MDtjZTwxNjsrK2NlKXVlW2NlXT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KmNlKTtmb3IodmFyIEc9MHx0aGlzLl9hLGI9MHx0aGlzLl9iLEQ9MHx0aGlzLl9jLEg9'@; put 'MHx0aGlzLl9kLE49MHx0aGlzLl9lLGc9MHx0aGlzLl9hLEM9MHx0aGlzLl9iLFM9MHx0aGlzLl9jLHY9MHx0aGlzLl9kLHA9MHx0aGlzLl9lLHc9MDt3PDgwO3crPTEpe3ZhciBKLG5lO3c8MTY/KEo9ZWUoRyxiLEQsSCxOLHVlW0Vbd11dLFlbMF0sVlt3XSksbmU9aGUoZyxDLFMsdixwLHVl'@; put 'W2pbd11dLFhbMF0sQlt3XSkpOnc8MzI/KEo9dGUoRyxiLEQsSCxOLHVlW0Vbd11dLFlbMV0sVlt3XSksbmU9c2UoZyxDLFMsdixwLHVlW2pbd11dLFhbMV0sQlt3XSkpOnc8NDg/KEo9b2UoRyxiLEQsSCxOLHVlW0Vbd11dLFlbMl0sVlt3XSksbmU9b2UoZyxDLFMsdixwLHVlW2pbd11dLFhb'@; put 'Ml0sQlt3XSkpOnc8NjQ/KEo9c2UoRyxiLEQsSCxOLHVlW0Vbd11dLFlbM10sVlt3XSksbmU9dGUoZyxDLFMsdixwLHVlW2pbd11dLFhbM10sQlt3XSkpOihKPWhlKEcsYixELEgsTix1ZVtFW3ddXSxZWzRdLFZbd10pLG5lPWVlKGcsQyxTLHYscCx1ZVtqW3ddXSxYWzRdLEJbd10pKSxHPU4s'@; put 'Tj1ILEg9cShELDEwKSxEPWIsYj1KLGc9cCxwPXYsdj1xKFMsMTApLFM9QyxDPW5lfXZhciBkZT10aGlzLl9iK0QrdnwwO3RoaXMuX2I9dGhpcy5fYytIK3B8MCx0aGlzLl9jPXRoaXMuX2QrTitnfDAsdGhpcy5fZD10aGlzLl9lK0crQ3wwLHRoaXMuX2U9dGhpcy5fYStiK1N8MCx0aGlzLl9h'@; put 'PWRlfSxVLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09m'@; put 'ZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIHVlPXou'@; put 'YWxsb2M/ei5hbGxvYygyMCk6bmV3IHooMjApO3JldHVybiB1ZS53cml0ZUludDMyTEUodGhpcy5fYSwwKSx1ZS53cml0ZUludDMyTEUodGhpcy5fYiw0KSx1ZS53cml0ZUludDMyTEUodGhpcy5fYyw4KSx1ZS53cml0ZUludDMyTEUodGhpcy5fZCwxMiksdWUud3JpdGVJbnQzMkxFKHRoaXMu'@; put 'X2UsMTYpLHVlfSxNLmV4cG9ydHM9VX0sOTUwOTooTSxPLFIpPT57dmFyIHo9Uig4NzY0KSxLPXouQnVmZmVyO2Z1bmN0aW9uIEkoRSxqKXtmb3IodmFyIFYgaW4gRSlqW1ZdPUVbVl19ZnVuY3Rpb24gayhFLGosVil7cmV0dXJuIEsoRSxqLFYpfUsuZnJvbSYmSy5hbGxvYyYmSy5hbGxvY1Vu'@; put 'c2FmZSYmSy5hbGxvY1Vuc2FmZVNsb3c/TS5leHBvcnRzPXo6KEkoeixPKSxPLkJ1ZmZlcj1rKSxrLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEsucHJvdG90eXBlKSxJKEssayksay5mcm9tPWZ1bmN0aW9uKEUsaixWKXtpZigibnVtYmVyIj09dHlwZW9mIEUpdGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gSyhFLGosVil9LGsuYWxsb2M9ZnVuY3Rpb24oRSxqLFYpe2lmKCJudW1iZXIiIT10eXBlb2YgRSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIEI9SyhFKTtyZXR1cm4g'@; put 'dm9pZCAwIT09aj8ic3RyaW5nIj09dHlwZW9mIFY/Qi5maWxsKGosVik6Qi5maWxsKGopOkIuZmlsbCgwKSxCfSxrLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKEUpe2lmKCJudW1iZXIiIT10eXBlb2YgRSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0'@; put 'dXJuIEsoRSl9LGsuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKEUpe2lmKCJudW1iZXIiIT10eXBlb2YgRSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIHouU2xvd0J1ZmZlcihFKX19LDIzOTk6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2'@; put 'YXIgeixLPVIoNDE1NSksST1SKDg3NjQpLGs9SS5CdWZmZXIsRT17fTtmb3IoeiBpbiBJKUkuaGFzT3duUHJvcGVydHkoeikmJiJTbG93QnVmZmVyIiE9PXomJiJCdWZmZXIiIT09eiYmKEVbel09SVt6XSk7dmFyIGo9RS5CdWZmZXI9e307Zm9yKHogaW4gaylrLmhhc093blByb3BlcnR5KHop'@; put 'JiYiYWxsb2NVbnNhZmUiIT09eiYmImFsbG9jVW5zYWZlU2xvdyIhPT16JiYoalt6XT1rW3pdKTtpZihFLkJ1ZmZlci5wcm90b3R5cGU9ay5wcm90b3R5cGUsai5mcm9tJiZqLmZyb20hPT1VaW50OEFycmF5LmZyb218fChqLmZyb209ZnVuY3Rpb24oVixCLFkpe2lmKCJudW1iZXIiPT10eXBl'@; put 'b2YgVil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBWKTtpZihWJiZ2b2lkIDA9PT1WLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQg'@; put 'bXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBWKTtyZXR1cm4gayhWLEIsWSl9KSxqLmFsbG9jfHwoai5hbGxvYz1mdW5jdGlvbihWLEIsWSl7aWYoIm51bWJl'@; put 'ciIhPXR5cGVvZiBWKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBWKTtpZihWPDB8fFY+PTIxNDc0ODM2NDgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytWKyci'@; put 'IGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgWD1rKFYpO3JldHVybiBCJiYwIT09Qi5sZW5ndGg/InN0cmluZyI9PXR5cGVvZiBZP1guZmlsbChCLFkpOlguZmlsbChCKTpYLmZpbGwoMCksWH0pLCFFLmtTdHJpbmdNYXhMZW5ndGgpdHJ5e0Uua1N0cmluZ01heExlbmd0aD1L'@; put 'LmJpbmRpbmcoImJ1ZmZlciIpLmtTdHJpbmdNYXhMZW5ndGh9Y2F0Y2h7fUUuY29uc3RhbnRzfHwoRS5jb25zdGFudHM9e01BWF9MRU5HVEg6RS5rTWF4TGVuZ3RofSxFLmtTdHJpbmdNYXhMZW5ndGgmJihFLmNvbnN0YW50cy5NQVhfU1RSSU5HX0xFTkdUSD1FLmtTdHJpbmdNYXhMZW5ndGgp'@; put 'KSxNLmV4cG9ydHM9RX0sNDE4OTooTSxPLFIpPT57dmFyIHo9Uig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gSyhJLGspe3RoaXMuX2Jsb2NrPXouYWxsb2MoSSksdGhpcy5fZmluYWxTaXplPWssdGhpcy5fYmxvY2tTaXplPUksdGhpcy5fbGVuPTB9Sy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9u'@; put 'KEksayl7InN0cmluZyI9PXR5cGVvZiBJJiYoST16LmZyb20oSSxrPWt8fCJ1dGY4IikpO2Zvcih2YXIgRT10aGlzLl9ibG9jayxqPXRoaXMuX2Jsb2NrU2l6ZSxWPUkubGVuZ3RoLEI9dGhpcy5fbGVuLFk9MDtZPFY7KXtmb3IodmFyIFg9QiVqLFU9TWF0aC5taW4oVi1ZLGotWCkscT0wO3E8'@; put 'VTtxKyspRVtYK3FdPUlbWStxXTtZKz1VLChCKz1VKSVqPT0wJiZ0aGlzLl91cGRhdGUoRSl9cmV0dXJuIHRoaXMuX2xlbis9Vix0aGlzfSxLLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oSSl7dmFyIGs9dGhpcy5fbGVuJXRoaXMuX2Jsb2NrU2l6ZTt0aGlzLl9ibG9ja1trXT0xMjgsdGhp'@; put 'cy5fYmxvY2suZmlsbCgwLGsrMSksaz49dGhpcy5fZmluYWxTaXplJiYodGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKSx0aGlzLl9ibG9jay5maWxsKDApKTt2YXIgRT04KnRoaXMuX2xlbjtpZihFPD00Mjk0OTY3Mjk1KXRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoRSx0aGlzLl9ibG9ja1Np'@; put 'emUtNCk7ZWxzZXt2YXIgaj0oNDI5NDk2NzI5NSZFKT4+PjA7dGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRSgoRS1qKS80Mjk0OTY3Mjk2LHRoaXMuX2Jsb2NrU2l6ZS04KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGosdGhpcy5fYmxvY2tTaXplLTQpfXRoaXMuX3VwZGF0ZSh0aGlzLl9i'@; put 'bG9jayk7dmFyIEI9dGhpcy5faGFzaCgpO3JldHVybiBJP0IudG9TdHJpbmcoSSk6Qn0sSy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzIil9LE0uZXhwb3J0cz1LfSw5MDcyOihNLE8s'@; put 'Uik9Pnt2YXIgej1NLmV4cG9ydHM9ZnVuY3Rpb24oSyl7Sz1LLnRvTG93ZXJDYXNlKCk7dmFyIEk9eltLXTtpZighSSl0aHJvdyBuZXcgRXJyb3IoSysiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKSIpO3JldHVybiBuZXcgSX07ei5zaGE9Uig0NDQ4KSx6LnNo'@; put 'YTE9Uig4MzM2KSx6LnNoYTIyND1SKDg0MzIpLHouc2hhMjU2PVIoNzQ5OSksei5zaGEzODQ9UigxNjg2KSx6LnNoYTUxMj1SKDc4MTYpfSw0NDQ4OihNLE8sUik9Pnt2YXIgej1SKDU3MTcpLEs9Uig0MTg5KSxJPVIoOTUwOSkuQnVmZmVyLGs9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5'@; put 'NDAwNzU4OCwtODk5NDk3NTE0XSxFPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gaigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9RSxLLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gVihZKXtyZXR1cm4gWTw8MzB8WT4+PjJ9ZnVuY3Rpb24gQihZLFgsVSxxKXtyZXR1cm4gMD09PVk/WCZVfH5YJnE6'@; put 'Mj09PVk/WCZVfFgmcXxVJnE6WF5VXnF9eihqLEspLGoucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9'@; put 'LGoucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oWSl7Zm9yKHZhciBYLFU9dGhpcy5fdyxxPTB8dGhpcy5fYSxlZT0wfHRoaXMuX2IsdGU9MHx0aGlzLl9jLG9lPTB8dGhpcy5fZCxzZT0wfHRoaXMuX2UsaGU9MDtoZTwxNjsrK2hlKVVbaGVdPVkucmVhZEludDMyQkUoNCpoZSk7Zm9yKDto'@; put 'ZTw4MDsrK2hlKVVbaGVdPVVbaGUtM11eVVtoZS04XV5VW2hlLTE0XV5VW2hlLTE2XTtmb3IodmFyIHVlPTA7dWU8ODA7Kyt1ZSl7dmFyIGNlPX5+KHVlLzIwKSxHPTB8KChYPXEpPDw1fFg+Pj4yNykrQihjZSxlZSx0ZSxvZSkrc2UrVVt1ZV0ra1tjZV07c2U9b2Usb2U9dGUsdGU9VihlZSks'@; put 'ZWU9cSxxPUd9dGhpcy5fYT1xK3RoaXMuX2F8MCx0aGlzLl9iPWVlK3RoaXMuX2J8MCx0aGlzLl9jPXRlK3RoaXMuX2N8MCx0aGlzLl9kPW9lK3RoaXMuX2R8MCx0aGlzLl9lPXNlK3RoaXMuX2V8MH0sai5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgWT1JLmFsbG9jVW5zYWZlKDIw'@; put 'KTtyZXR1cm4gWS53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLFkud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSxZLndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksWS53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxZLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLFl9LE0uZXhwb3J0cz1q'@; put 'fSw4MzM2OihNLE8sUik9Pnt2YXIgej1SKDU3MTcpLEs9Uig0MTg5KSxJPVIoOTUwOSkuQnVmZmVyLGs9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxFPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gaigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9RSxLLmNhbGwo'@; put 'dGhpcyw2NCw1Nil9ZnVuY3Rpb24gVihYKXtyZXR1cm4gWDw8NXxYPj4+Mjd9ZnVuY3Rpb24gQihYKXtyZXR1cm4gWDw8MzB8WD4+PjJ9ZnVuY3Rpb24gWShYLFUscSxlZSl7cmV0dXJuIDA9PT1YP1UmcXx+VSZlZToyPT09WD9VJnF8VSZlZXxxJmVlOlVecV5lZX16KGosSyksai5wcm90b3R5'@; put 'cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sai5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihYKXtmb3IodmFy'@; put 'IFUscT10aGlzLl93LGVlPTB8dGhpcy5fYSx0ZT0wfHRoaXMuX2Isb2U9MHx0aGlzLl9jLHNlPTB8dGhpcy5fZCxoZT0wfHRoaXMuX2UsdWU9MDt1ZTwxNjsrK3VlKXFbdWVdPVgucmVhZEludDMyQkUoNCp1ZSk7Zm9yKDt1ZTw4MDsrK3VlKXFbdWVdPShVPXFbdWUtM11ecVt1ZS04XV5xW3Vl'@; put 'LTE0XV5xW3VlLTE2XSk8PDF8VT4+PjMxO2Zvcih2YXIgY2U9MDtjZTw4MDsrK2NlKXt2YXIgRz1+fihjZS8yMCksYj1WKGVlKStZKEcsdGUsb2Usc2UpK2hlK3FbY2VdK2tbR118MDtoZT1zZSxzZT1vZSxvZT1CKHRlKSx0ZT1lZSxlZT1ifXRoaXMuX2E9ZWUrdGhpcy5fYXwwLHRoaXMuX2I9'@; put 'dGUrdGhpcy5fYnwwLHRoaXMuX2M9b2UrdGhpcy5fY3wwLHRoaXMuX2Q9c2UrdGhpcy5fZHwwLHRoaXMuX2U9aGUrdGhpcy5fZXwwfSxqLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBYPUkuYWxsb2NVbnNhZmUoMjApO3JldHVybiBYLndyaXRlSW50MzJCRSgwfHRoaXMuX2EsMCks'@; put 'WC53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLFgud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxYLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLFgud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksWH0sTS5leHBvcnRzPWp9LDg0MzI6KE0sTyxSKT0+e3ZhciB6PVIoNTcxNyksSz1SKDc0'@; put 'OTkpLEk9Uig0MTg5KSxrPVIoOTUwOSkuQnVmZmVyLEU9bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBqKCl7dGhpcy5pbml0KCksdGhpcy5fdz1FLEkuY2FsbCh0aGlzLDY0LDU2KX16KGosSyksai5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTMyMzgzNzEwMzIsdGhp'@; put 'cy5fYj05MTQxNTA2NjMsdGhpcy5fYz04MTI3MDI5OTksdGhpcy5fZD00MTQ0OTEyNjk3LHRoaXMuX2U9NDI5MDc3NTg1Nyx0aGlzLl9mPTE3NTA2MDMwMjUsdGhpcy5fZz0xNjk0MDc2ODM5LHRoaXMuX2g9MzIwNDA3NTQyOCx0aGlzfSxqLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3Zh'@; put 'ciBWPWsuYWxsb2NVbnNhZmUoMjgpO3JldHVybiBWLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLFYud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCksVi53cml0ZUludDMyQkUodGhpcy5fYyw4KSxWLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSxWLndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KSxWLndy'@; put 'aXRlSW50MzJCRSh0aGlzLl9mLDIwKSxWLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxWfSxNLmV4cG9ydHM9an0sNzQ5OTooTSxPLFIpPT57dmFyIHo9Uig1NzE3KSxLPVIoNDE4OSksST1SKDk1MDkpLkJ1ZmZlcixrPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5'@; put 'NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgs'@; put 'NjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1'@; put 'NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYx'@; put 'Niw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLEU9bmV3IEFycmF5'@; put 'KDY0KTtmdW5jdGlvbiBqKCl7dGhpcy5pbml0KCksdGhpcy5fdz1FLEsuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBWKHEsZWUsdGUpe3JldHVybiB0ZV5xJihlZV50ZSl9ZnVuY3Rpb24gQihxLGVlLHRlKXtyZXR1cm4gcSZlZXx0ZSYocXxlZSl9ZnVuY3Rpb24gWShxKXtyZXR1cm4ocT4+'@; put 'PjJ8cTw8MzApXihxPj4+MTN8cTw8MTkpXihxPj4+MjJ8cTw8MTApfWZ1bmN0aW9uIFgocSl7cmV0dXJuKHE+Pj42fHE8PDI2KV4ocT4+PjExfHE8PDIxKV4ocT4+PjI1fHE8PDcpfWZ1bmN0aW9uIFUocSl7cmV0dXJuKHE+Pj43fHE8PDI1KV4ocT4+PjE4fHE8PDE0KV5xPj4+M316KGosSyks'@; put 'ai5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3NzkwMzM3MDMsdGhpcy5fYj0zMTQ0MTM0Mjc3LHRoaXMuX2M9MTAxMzkwNDI0Mix0aGlzLl9kPTI3NzM0ODA3NjIsdGhpcy5fZT0xMzU5ODkzMTE5LHRoaXMuX2Y9MjYwMDgyMjkyNCx0aGlzLl9nPTUyODczNDYz'@; put 'NSx0aGlzLl9oPTE1NDE0NTkyMjUsdGhpc30sai5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihxKXtmb3IodmFyIGVlLHRlPXRoaXMuX3csb2U9MHx0aGlzLl9hLHNlPTB8dGhpcy5fYixoZT0wfHRoaXMuX2MsdWU9MHx0aGlzLl9kLGNlPTB8dGhpcy5fZSxHPTB8dGhpcy5fZixiPTB8dGhp'@; put 'cy5fZyxEPTB8dGhpcy5faCxIPTA7SDwxNjsrK0gpdGVbSF09cS5yZWFkSW50MzJCRSg0KkgpO2Zvcig7SDw2NDsrK0gpdGVbSF09MHwoKChlZT10ZVtILTJdKT4+PjE3fGVlPDwxNSleKGVlPj4+MTl8ZWU8PDEzKV5lZT4+PjEwKSt0ZVtILTddK1UodGVbSC0xNV0pK3RlW0gtMTZdO2Zvcih2'@; put 'YXIgTj0wO048NjQ7KytOKXt2YXIgZz1EK1goY2UpK1YoY2UsRyxiKStrW05dK3RlW05dfDAsQz1ZKG9lKStCKG9lLHNlLGhlKXwwO0Q9YixiPUcsRz1jZSxjZT11ZStnfDAsdWU9aGUsaGU9c2Usc2U9b2Usb2U9ZytDfDB9dGhpcy5fYT1vZSt0aGlzLl9hfDAsdGhpcy5fYj1zZSt0aGlzLl9i'@; put 'fDAsdGhpcy5fYz1oZSt0aGlzLl9jfDAsdGhpcy5fZD11ZSt0aGlzLl9kfDAsdGhpcy5fZT1jZSt0aGlzLl9lfDAsdGhpcy5fZj1HK3RoaXMuX2Z8MCx0aGlzLl9nPWIrdGhpcy5fZ3wwLHRoaXMuX2g9RCt0aGlzLl9ofDB9LGoucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHE9SS5h'@; put 'bGxvY1Vuc2FmZSgzMik7cmV0dXJuIHEud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCkscS53cml0ZUludDMyQkUodGhpcy5fYiw0KSxxLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLHEud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLHEud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLHEud3JpdGVJbnQz'@; put 'MkJFKHRoaXMuX2YsMjApLHEud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLHEud3JpdGVJbnQzMkJFKHRoaXMuX2gsMjgpLHF9LE0uZXhwb3J0cz1qfSwxNjg2OihNLE8sUik9Pnt2YXIgej1SKDU3MTcpLEs9Uig3ODE2KSxJPVIoNDE4OSksaz1SKDk1MDkpLkJ1ZmZlcixFPW5ldyBBcnJheSgx'@; put 'NjApO2Z1bmN0aW9uIGooKXt0aGlzLmluaXQoKSx0aGlzLl93PUUsSS5jYWxsKHRoaXMsMTI4LDExMil9eihqLEspLGoucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0aGlzLl9iaD0xNjU0MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhp'@; put 'cy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9MjM5NDE4MDIzMSx0aGlzLl9naD0zNjc1MDA4NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9ibD05MTQxNTA2NjMsdGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQx'@; put 'NDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAzMDI1LHRoaXMuX2dsPTE2OTQwNzY4MzksdGhpcy5faGw9MzIwNDA3NTQyOCx0aGlzfSxqLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBWPWsuYWxsb2NVbnNhZmUoNDgpO2Z1bmN0aW9uIEIoWSxYLFUp'@; put 'e1Yud3JpdGVJbnQzMkJFKFksVSksVi53cml0ZUludDMyQkUoWCxVKzQpfXJldHVybiBCKHRoaXMuX2FoLHRoaXMuX2FsLDApLEIodGhpcy5fYmgsdGhpcy5fYmwsOCksQih0aGlzLl9jaCx0aGlzLl9jbCwxNiksQih0aGlzLl9kaCx0aGlzLl9kbCwyNCksQih0aGlzLl9laCx0aGlzLl9lbCwz'@; put 'MiksQih0aGlzLl9maCx0aGlzLl9mbCw0MCksVn0sTS5leHBvcnRzPWp9LDc4MTY6KE0sTyxSKT0+e3ZhciB6PVIoNTcxNyksSz1SKDQxODkpLEk9Uig5NTA5KS5CdWZmZXIsaz1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5'@; put 'OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwx'@; put 'MzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQz'@; put 'NDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQw'@; put 'MTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1'@; put 'NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgy'@; put 'MDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIz'@; put 'NzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIs'@; put 'MTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMz'@; put 'OTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAz'@; put 'MTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEy'@; put 'NDYxODk1OTFdLEU9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gaigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9RSxLLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBWKHNlLGhlLHVlKXtyZXR1cm4gdWVec2UmKGhlXnVlKX1mdW5jdGlvbiBCKHNlLGhlLHVlKXtyZXR1cm4gc2UmaGV8dWUmKHNl'@; put 'fGhlKX1mdW5jdGlvbiBZKHNlLGhlKXtyZXR1cm4oc2U+Pj4yOHxoZTw8NCleKGhlPj4+MnxzZTw8MzApXihoZT4+Pjd8c2U8PDI1KX1mdW5jdGlvbiBYKHNlLGhlKXtyZXR1cm4oc2U+Pj4xNHxoZTw8MTgpXihzZT4+PjE4fGhlPDwxNCleKGhlPj4+OXxzZTw8MjMpfWZ1bmN0aW9uIFUoc2Us'@; put 'aGUpe3JldHVybihzZT4+PjF8aGU8PDMxKV4oc2U+Pj44fGhlPDwyNClec2U+Pj43fWZ1bmN0aW9uIHEoc2UsaGUpe3JldHVybihzZT4+PjF8aGU8PDMxKV4oc2U+Pj44fGhlPDwyNCleKHNlPj4+N3xoZTw8MjUpfWZ1bmN0aW9uIGVlKHNlLGhlKXtyZXR1cm4oc2U+Pj4xOXxoZTw8MTMpXiho'@; put 'ZT4+PjI5fHNlPDwzKV5zZT4+PjZ9ZnVuY3Rpb24gdGUoc2UsaGUpe3JldHVybihzZT4+PjE5fGhlPDwxMyleKGhlPj4+Mjl8c2U8PDMpXihzZT4+PjZ8aGU8PDI2KX1mdW5jdGlvbiBvZShzZSxoZSl7cmV0dXJuIHNlPj4+MDxoZT4+PjA/MTowfXooaixLKSxqLnByb3RvdHlwZS5pbml0PWZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FoPTE3NzkwMzM3MDMsdGhpcy5fYmg9MzE0NDEzNDI3Nyx0aGlzLl9jaD0xMDEzOTA0MjQyLHRoaXMuX2RoPTI3NzM0ODA3NjIsdGhpcy5fZWg9MTM1OTg5MzExOSx0aGlzLl9maD0yNjAwODIyOTI0LHRoaXMuX2doPTUyODczNDYzNSx0aGlzLl9oaD0x'@; put 'NTQxNDU5MjI1LHRoaXMuX2FsPTQwODkyMzU3MjAsdGhpcy5fYmw9MjIyNzg3MzU5NSx0aGlzLl9jbD00MjcxMTc1NzIzLHRoaXMuX2RsPTE1OTU3NTAxMjksdGhpcy5fZWw9MjkxNzU2NTEzNyx0aGlzLl9mbD03MjU1MTExOTksdGhpcy5fZ2w9NDIxNTM4OTU0Nyx0aGlzLl9obD0zMjcwMzMy'@; put 'MDksdGhpc30sai5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihzZSl7Zm9yKHZhciBoZT10aGlzLl93LHVlPTB8dGhpcy5fYWgsY2U9MHx0aGlzLl9iaCxHPTB8dGhpcy5fY2gsYj0wfHRoaXMuX2RoLEQ9MHx0aGlzLl9laCxIPTB8dGhpcy5fZmgsTj0wfHRoaXMuX2doLGc9MHx0aGlzLl9o'@; put 'aCxDPTB8dGhpcy5fYWwsUz0wfHRoaXMuX2JsLHY9MHx0aGlzLl9jbCxwPTB8dGhpcy5fZGwsdz0wfHRoaXMuX2VsLEo9MHx0aGlzLl9mbCxuZT0wfHRoaXMuX2dsLGRlPTB8dGhpcy5faGwsZmU9MDtmZTwzMjtmZSs9MiloZVtmZV09c2UucmVhZEludDMyQkUoNCpmZSksaGVbZmUrMV09c2Uu'@; put 'cmVhZEludDMyQkUoNCpmZSs0KTtmb3IoO2ZlPDE2MDtmZSs9Mil7dmFyIHhlPWhlW2ZlLTMwXSxMZT1oZVtmZS0zMCsxXSxGZT1VKHhlLExlKSxPZT1xKExlLHhlKSxqZT1lZSh4ZT1oZVtmZS00XSxMZT1oZVtmZS00KzFdKSxXZT10ZShMZSx4ZSksUWU9aGVbZmUtMzJdLGx0PWhlW2ZlLTMy'@; put 'KzFdLFBlPU9lK2hlW2ZlLTE0KzFdfDAsYmU9RmUraGVbZmUtMTRdK29lKFBlLE9lKXwwO2JlPShiZT1iZStqZStvZShQZT1QZStXZXwwLFdlKXwwKStRZStvZShQZT1QZStsdHwwLGx0KXwwLGhlW2ZlXT1iZSxoZVtmZSsxXT1QZX1mb3IodmFyIEFlPTA7QWU8MTYwO0FlKz0yKXtiZT1oZVtB'@; put 'ZV0sUGU9aGVbQWUrMV07dmFyIFRlPUIodWUsY2UsRykscWU9QihDLFMsdiksWGU9WSh1ZSxDKSxVZT1ZKEMsdWUpLGh0PVgoRCx3KSxNZT1YKHcsRCksRGU9a1tBZV0semU9a1tBZSsxXSxvdD1WKEQsSCxOKSx1dD1WKHcsSixuZSksTXQ9ZGUrTWV8MCxIdD1nK2h0K29lKE10LGRlKXwwO0h0'@; put 'PShIdD0oSHQ9SHQrb3Qrb2UoTXQ9TXQrdXR8MCx1dCl8MCkrRGUrb2UoTXQ9TXQremV8MCx6ZSl8MCkrYmUrb2UoTXQ9TXQrUGV8MCxQZSl8MDt2YXIgUHQ9VWUrcWV8MCxvbj1YZStUZStvZShQdCxVZSl8MDtnPU4sZGU9bmUsTj1ILG5lPUosSD1ELEo9dyxEPWIrSHQrb2Uodz1wK010fDAs'@; put 'cCl8MCxiPUcscD12LEc9Y2Usdj1TLGNlPXVlLFM9Qyx1ZT1IdCtvbitvZShDPU10K1B0fDAsTXQpfDB9dGhpcy5fYWw9dGhpcy5fYWwrQ3wwLHRoaXMuX2JsPXRoaXMuX2JsK1N8MCx0aGlzLl9jbD10aGlzLl9jbCt2fDAsdGhpcy5fZGw9dGhpcy5fZGwrcHwwLHRoaXMuX2VsPXRoaXMuX2Vs'@; put 'K3d8MCx0aGlzLl9mbD10aGlzLl9mbCtKfDAsdGhpcy5fZ2w9dGhpcy5fZ2wrbmV8MCx0aGlzLl9obD10aGlzLl9obCtkZXwwLHRoaXMuX2FoPXRoaXMuX2FoK3VlK29lKHRoaXMuX2FsLEMpfDAsdGhpcy5fYmg9dGhpcy5fYmgrY2Urb2UodGhpcy5fYmwsUyl8MCx0aGlzLl9jaD10aGlzLl9j'@; put 'aCtHK29lKHRoaXMuX2NsLHYpfDAsdGhpcy5fZGg9dGhpcy5fZGgrYitvZSh0aGlzLl9kbCxwKXwwLHRoaXMuX2VoPXRoaXMuX2VoK0Qrb2UodGhpcy5fZWwsdyl8MCx0aGlzLl9maD10aGlzLl9maCtIK29lKHRoaXMuX2ZsLEopfDAsdGhpcy5fZ2g9dGhpcy5fZ2grTitvZSh0aGlzLl9nbCxu'@; put 'ZSl8MCx0aGlzLl9oaD10aGlzLl9oaCtnK29lKHRoaXMuX2hsLGRlKXwwfSxqLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBzZT1JLmFsbG9jVW5zYWZlKDY0KTtmdW5jdGlvbiBoZSh1ZSxjZSxHKXtzZS53cml0ZUludDMyQkUodWUsRyksc2Uud3JpdGVJbnQzMkJFKGNlLEcrNCl9'@; put 'cmV0dXJuIGhlKHRoaXMuX2FoLHRoaXMuX2FsLDApLGhlKHRoaXMuX2JoLHRoaXMuX2JsLDgpLGhlKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxoZSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksaGUodGhpcy5fZWgsdGhpcy5fZWwsMzIpLGhlKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxoZSh0aGlzLl9n'@; put 'aCx0aGlzLl9nbCw0OCksaGUodGhpcy5faGgsdGhpcy5faGwsNTYpLHNlfSxNLmV4cG9ydHM9an0sMjgzMDooTSxPLFIpPT57TS5leHBvcnRzPUs7dmFyIHo9Uig3MTg3KS5FdmVudEVtaXR0ZXI7ZnVuY3Rpb24gSygpe3ouY2FsbCh0aGlzKX1SKDU3MTcpKEsseiksSy5SZWFkYWJsZT1SKDk0'@; put 'ODEpLEsuV3JpdGFibGU9Uig0MjI5KSxLLkR1cGxleD1SKDY3NTMpLEsuVHJhbnNmb3JtPVIoNDYwNSksSy5QYXNzVGhyb3VnaD1SKDI3MjUpLEsuZmluaXNoZWQ9Uig4NjEwKSxLLnBpcGVsaW5lPVIoOTk0NiksSy5TdHJlYW09SyxLLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKEksayl7dmFy'@; put 'IEU9dGhpcztmdW5jdGlvbiBqKGVlKXtJLndyaXRhYmxlJiYhMT09PUkud3JpdGUoZWUpJiZFLnBhdXNlJiZFLnBhdXNlKCl9ZnVuY3Rpb24gVigpe0UucmVhZGFibGUmJkUucmVzdW1lJiZFLnJlc3VtZSgpfUUub24oImRhdGEiLGopLEkub24oImRyYWluIixWKSxJLl9pc1N0ZGlvfHxrJiYh'@; put 'MT09PWsuZW5kfHwoRS5vbigiZW5kIixZKSxFLm9uKCJjbG9zZSIsWCkpO3ZhciBCPSExO2Z1bmN0aW9uIFkoKXtCfHwoQj0hMCxJLmVuZCgpKX1mdW5jdGlvbiBYKCl7Qnx8KEI9ITAsImZ1bmN0aW9uIj09dHlwZW9mIEkuZGVzdHJveSYmSS5kZXN0cm95KCkpfWZ1bmN0aW9uIFUoZWUpe2lm'@; put 'KHEoKSwwPT09ei5saXN0ZW5lckNvdW50KHRoaXMsImVycm9yIikpdGhyb3cgZWV9ZnVuY3Rpb24gcSgpe0UucmVtb3ZlTGlzdGVuZXIoImRhdGEiLGopLEkucmVtb3ZlTGlzdGVuZXIoImRyYWluIixWKSxFLnJlbW92ZUxpc3RlbmVyKCJlbmQiLFkpLEUucmVtb3ZlTGlzdGVuZXIoImNsb3Nl'@; put 'IixYKSxFLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsVSksSS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLFUpLEUucmVtb3ZlTGlzdGVuZXIoImVuZCIscSksRS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHEpLEkucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixxKX1yZXR1cm4gRS5vbigiZXJyb3IiLFUp'@; put 'LEkub24oImVycm9yIixVKSxFLm9uKCJlbmQiLHEpLEUub24oImNsb3NlIixxKSxJLm9uKCJjbG9zZSIscSksSS5lbWl0KCJwaXBlIixFKSxJfX0sMjU1MzooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoOTUwOSkuQnVmZmVyLEs9ei5pc0VuY29kaW5nfHxmdW5jdGlvbihxKXtzd2l0'@; put 'Y2goKHE9IiIrcSkmJnEudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJl'@; put 'dHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBJKHEpe3ZhciBlZTtzd2l0Y2godGhpcy5lbmNvZGluZz1mdW5jdGlvbih0ZSl7dmFyIG9lPWZ1bmN0aW9uKHNlKXtpZighc2UpcmV0dXJuInV0ZjgiO2Zvcih2YXIgaGU7Oylzd2l0Y2goc2Upe2Nhc2UidXRmOCI6Y2FzZSJ1dGYt'@; put 'OCI6cmV0dXJuInV0ZjgiO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4idXRmMTZsZSI7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4ibGF0aW4xIjtjYXNlImJhc2U2NCI6Y2FzZSJhc2NpaSI6Y2FzZSJoZXgiOnJldHVy'@; put 'biBzZTtkZWZhdWx0OmlmKGhlKXJldHVybjtzZT0oIiIrc2UpLnRvTG93ZXJDYXNlKCksaGU9ITB9fSh0ZSk7aWYoInN0cmluZyIhPXR5cGVvZiBvZSYmKHouaXNFbmNvZGluZz09PUt8fCFLKHRlKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3RlKTtyZXR1cm4gb2V8'@; put 'fHRlfShxKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD1qLHRoaXMuZW5kPVYsZWU9NDticmVhaztjYXNlInV0ZjgiOnRoaXMuZmlsbExhc3Q9RSxlZT00O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnRleHQ9Qix0aGlzLmVuZD1ZLGVlPTM7YnJlYWs7ZGVmYXVsdDpy'@; put 'ZXR1cm4gdGhpcy53cml0ZT1YLHZvaWQodGhpcy5lbmQ9VSl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj16LmFsbG9jVW5zYWZlKGVlKX1mdW5jdGlvbiBrKHEpe3JldHVybiBxPD0xMjc/MDpxPj41PT02PzI6cT4+ND09MTQ/MzpxPj4zPT0zMD80OnE+'@; put 'PjY9PTI/LTE6LTJ9ZnVuY3Rpb24gRShxKXt2YXIgZWU9dGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCx0ZT1mdW5jdGlvbihvZSxzZSxoZSl7aWYoMTI4IT0oMTkyJnNlWzBdKSlyZXR1cm4gb2UubGFzdE5lZWQ9MCwiXHVmZmZkIjtpZihvZS5sYXN0TmVlZD4xJiZzZS5sZW5ndGg+MSl7'@; put 'aWYoMTI4IT0oMTkyJnNlWzFdKSlyZXR1cm4gb2UubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZihvZS5sYXN0TmVlZD4yJiZzZS5sZW5ndGg+MiYmMTI4IT0oMTkyJnNlWzJdKSlyZXR1cm4gb2UubGFzdE5lZWQ9MiwiXHVmZmZkIn19KHRoaXMscSk7cmV0dXJuIHZvaWQgMCE9PXRlP3RlOnRoaXMu'@; put 'bGFzdE5lZWQ8PXEubGVuZ3RoPyhxLmNvcHkodGhpcy5sYXN0Q2hhcixlZSwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKSk6KHEuY29weSh0aGlzLmxhc3RDaGFyLGVlLDAscS5sZW5ndGgpLHZvaWQodGhpcy5s'@; put 'YXN0TmVlZC09cS5sZW5ndGgpKX1mdW5jdGlvbiBqKHEsZWUpe2lmKChxLmxlbmd0aC1lZSklMj09MCl7dmFyIHRlPXEudG9TdHJpbmcoInV0ZjE2bGUiLGVlKTtpZih0ZSl7dmFyIG9lPXRlLmNoYXJDb2RlQXQodGUubGVuZ3RoLTEpO2lmKG9lPj01NTI5NiYmb2U8PTU2MzE5KXJldHVybiB0'@; put 'aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXFbcS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1xW3EubGVuZ3RoLTFdLHRlLnNsaWNlKDAsLTEpfXJldHVybiB0ZX1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5s'@; put 'YXN0Q2hhclswXT1xW3EubGVuZ3RoLTFdLHEudG9TdHJpbmcoInV0ZjE2bGUiLGVlLHEubGVuZ3RoLTEpfWZ1bmN0aW9uIFYocSl7dmFyIGVlPXEmJnEubGVuZ3RoP3RoaXMud3JpdGUocSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZWUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZs'@; put 'ZSIsMCx0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkKTplZX1mdW5jdGlvbiBCKHEsZWUpe3ZhciB0ZT0ocS5sZW5ndGgtZWUpJTM7cmV0dXJuIDA9PT10ZT9xLnRvU3RyaW5nKCJiYXNlNjQiLGVlKToodGhpcy5sYXN0TmVlZD0zLXRlLHRoaXMubGFzdFRvdGFsPTMsMT09PXRlP3RoaXMu'@; put 'bGFzdENoYXJbMF09cVtxLmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT1xW3EubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09cVtxLmxlbmd0aC0xXSkscS50b1N0cmluZygiYmFzZTY0IixlZSxxLmxlbmd0aC10ZSkpfWZ1bmN0aW9uIFkocSl7dmFyIGVlPXEmJnEubGVuZ3RoP3RoaXMu'@; put 'd3JpdGUocSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZWUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygiYmFzZTY0IiwwLDMtdGhpcy5sYXN0TmVlZCk6ZWV9ZnVuY3Rpb24gWChxKXtyZXR1cm4gcS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBVKHEpe3JldHVybiBxJiZxLmxl'@; put 'bmd0aD90aGlzLndyaXRlKHEpOiIifU8uU3RyaW5nRGVjb2Rlcj1JLEkucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHEpe2lmKDA9PT1xLmxlbmd0aClyZXR1cm4iIjt2YXIgZWUsdGU7aWYodGhpcy5sYXN0TmVlZCl7aWYodm9pZCAwPT09KGVlPXRoaXMuZmlsbExhc3QocSkpKXJldHVybiIi'@; put 'O3RlPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2UgdGU9MDtyZXR1cm4gdGU8cS5sZW5ndGg/ZWU/ZWUrdGhpcy50ZXh0KHEsdGUpOnRoaXMudGV4dChxLHRlKTplZXx8IiJ9LEkucHJvdG90eXBlLmVuZD1mdW5jdGlvbihxKXt2YXIgZWU9cSYmcS5sZW5ndGg/dGhpcy53cml0'@; put 'ZShxKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD9lZSsiXHVmZmZkIjplZX0sSS5wcm90b3R5cGUudGV4dD1mdW5jdGlvbihxLGVlKXt2YXIgdGU9ZnVuY3Rpb24oc2UsaGUsdWUpe3ZhciBjZT1oZS5sZW5ndGgtMTtpZihjZTx1ZSlyZXR1cm4gMDt2YXIgRz1rKGhlW2NlXSk7cmV0dXJuIEc+'@; put 'PTA/KEc+MCYmKHNlLmxhc3ROZWVkPUctMSksRyk6LS1jZTx1ZXx8LTI9PT1HPzA6KEc9ayhoZVtjZV0pKT49MD8oRz4wJiYoc2UubGFzdE5lZWQ9Ry0yKSxHKTotLWNlPHVlfHwtMj09PUc/MDooRz1rKGhlW2NlXSkpPj0wPyhHPjAmJigyPT09Rz9HPTA6c2UubGFzdE5lZWQ9Ry0zKSxHKTow'@; put 'fSh0aGlzLHEsZWUpO2lmKCF0aGlzLmxhc3ROZWVkKXJldHVybiBxLnRvU3RyaW5nKCJ1dGY4IixlZSk7dGhpcy5sYXN0VG90YWw9dGU7dmFyIG9lPXEubGVuZ3RoLSh0ZS10aGlzLmxhc3ROZWVkKTtyZXR1cm4gcS5jb3B5KHRoaXMubGFzdENoYXIsMCxvZSkscS50b1N0cmluZygidXRmOCIs'@; put 'ZWUsb2UpfSxJLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlvbihxKXtpZih0aGlzLmxhc3ROZWVkPD1xLmxlbmd0aClyZXR1cm4gcS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmco'@; put 'dGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtxLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAscS5sZW5ndGgpLHRoaXMubGFzdE5lZWQtPXEubGVuZ3RofX0sNzg1NzooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9UigzNjg5KSxL'@; put 'PVIoNDU2NCksST1SKDc1Miksaz1SKDIyMjQpLnksRT1SKDU3NjEpLm0saj1SKDg5NzEpLlUsVj1SKDc2NTIpLEI9Uig0NTYpLHtmcm9tQ2FsbGJhY2s6WX09Uig3MDQxKSx7Z2V0Q3VzdG9tSW5zcGVjdFN5bWJvbDpYfT1SKDEyNjkpLFU9L15bXHgyMVx4MjMtXHgyQlx4MkQtXHgzQVx4M0Mt'@; put 'XHg1Qlx4NUQtXHg3RV0rJC8scT0vW1x4MDAtXHgxRl0vLGVlPVsiXG4iLCJcciIsIlwwIl0sdGU9L1tceDIwLVx4M0FceDNDLVx4N0VdKy8sb2U9L1tceDA5XHgyMC1ceDJGXHgzQi1ceDQwXHg1Qi1ceDYwXHg3Qi1ceDdFXS8sc2U9e2phbjowLGZlYjoxLG1hcjoyLGFwcjozLG1heTo0LGp1'@; put 'bjo1LGp1bDo2LGF1Zzo3LHNlcDo4LG9jdDo5LG5vdjoxMCxkZWM6MTF9LGhlPTIxNDc0ODM2NDdlMyx1ZT0nSW52YWxpZCBzYW1lU2l0ZUNvbnRleHQgb3B0aW9uIGZvciBnZXRDb29raWVzKCk7IGV4cGVjdGVkIG9uZSBvZiAic3RyaWN0IiwgImxheCIsIG9yICJub25lIic7ZnVuY3Rpb24g'@; put 'Y2UoUWUpe1YudmFsaWRhdGUoVi5pc05vbkVtcHR5U3RyaW5nKFFlKSxRZSk7Y29uc3QgbHQ9U3RyaW5nKFFlKS50b0xvd2VyQ2FzZSgpO3JldHVybiJub25lIj09PWx0fHwibGF4Ij09PWx0fHwic3RyaWN0Ij09PWx0P2x0Om51bGx9Y29uc3QgRz1PYmplY3QuZnJlZXplKHtTSUxFTlQ6InNp'@; put 'bGVudCIsU1RSSUNUOiJzdHJpY3QiLERJU0FCTEVEOiJ1bnNhZmUtZGlzYWJsZWQifSksYj0vKD86Xig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9JCl8KD86Xig/Oig/OlthLWZcZF17MSw0'@; put 'fTopezd9KD86W2EtZlxkXXsxLDR9fDopfCg/OlthLWZcZF17MSw0fTopezZ9KD86KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318OlthLWZcZF17MSw0fXw6KXwoPzpbYS1mXGRdezEsNH06'@; put 'KXs1fSg/OjooPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXwoPzo6W2EtZlxkXXsxLDR9KXsxLDJ9fDopfCg/OlthLWZcZF17MSw0fTopezR9KD86KD86OlthLWZcZF17MSw0fSl7MCwxfToo'@; put 'PzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXwoPzo6W2EtZlxkXXsxLDR9KXsxLDN9fDopfCg/OlthLWZcZF17MSw0fTopezN9KD86KD86OlthLWZcZF17MSw0fSl7MCwyfTooPzoyNVswLTVd'@; put 'fDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXwoPzo6W2EtZlxkXXsxLDR9KXsxLDR9fDopfCg/OlthLWZcZF17MSw0fTopezJ9KD86KD86OlthLWZcZF17MSw0fSl7MCwzfTooPzoyNVswLTVdfDJbMC00XVxk'@; put 'fDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXwoPzo6W2EtZlxkXXsxLDR9KXsxLDV9fDopfCg/OlthLWZcZF17MSw0fTopezF9KD86KD86OlthLWZcZF17MSw0fSl7MCw0fTooPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsx'@; put 'LTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXwoPzo6W2EtZlxkXXsxLDR9KXsxLDZ9fDopfCg/OjooPzooPzo6W2EtZlxkXXsxLDR9KXswLDV9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18'@; put 'MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsN318OikpKSQpLyxEPSJcblxcWz8oPzpcbig/OlthLWZBLUZcXGRdezEsNH06KXs3fSg/OlthLWZBLUZcXGRdezEsNH18Oil8XG4oPzpbYS1mQS1GXFxkXXsxLDR9Oil7Nn0oPzooPzoyNVswLTVdfDJb'@; put 'MC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fDpbYS1mQS1GXFxkXXsxLDR9fDopfFxuKD86W2EtZkEtRlxcZF17MSw0fTopezV9KD86Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEt'@; put 'OV1cXGR8XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSl7M318KD86OlthLWZBLUZcXGRdezEsNH0pezEsMn18Oil8XG4oPzpbYS1mQS1GXFxkXXsxLDR9Oil7NH0oPzooPzo6W2EtZkEtRlxcZF17MSw0fSl7MCwxfTooPzoyNVswLTVdfDJbMC00'@; put 'XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fCg/OjpbYS1mQS1GXFxkXXsxLDR9KXsxLDN9fDopfFxuKD86W2EtZkEtRlxcZF17MSw0fTopezN9KD86KD86OlthLWZBLUZcXGRdezEsNH0pezAsMn06'@; put 'KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKXszfXwoPzo6W2EtZkEtRlxcZF17MSw0fSl7MSw0fXw6KXxcbig/OlthLWZBLUZcXGRdezEsNH06KXsyfSg/Oig/OjpbYS1mQS1G'@; put 'XFxkXXsxLDR9KXswLDN9Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSl7M318KD86OlthLWZBLUZcXGRdezEsNH0pezEsNX18Oil8XG4oPzpbYS1mQS1GXFxkXXsxLDR9Oil7'@; put 'MX0oPzooPzo6W2EtZkEtRlxcZF17MSw0fSl7MCw0fTooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fCg/OjpbYS1mQS1GXFxkXXsxLDR9KXsxLDZ9fDopfFxuKD86Oig/'@; put 'Oig/OjpbYS1mQS1GXFxkXXsxLDR9KXswLDV9Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSl7M318KD86OlthLWZBLUZcXGRdezEsNH0pezEsN318OikpXG4pKD86JVswLTlh'@; put 'LXpBLVpdezEsfSk/XFxdP1xuIi5yZXBsYWNlKC9ccypcL1wvLiokL2dtLCIiKS5yZXBsYWNlKC9cbi9nLCIiKS50cmltKCksSD1uZXcgUmVnRXhwKGBeJHtEfSRgKTtmdW5jdGlvbiBOKFFlLGx0LFBlLGJlKXtsZXQgQWU9MDtmb3IoO0FlPFFlLmxlbmd0aDspe2NvbnN0IFRlPVFlLmNoYXJD'@; put 'b2RlQXQoQWUpO2lmKFRlPD00N3x8VGU+PTU4KWJyZWFrO0FlKyt9cmV0dXJuIEFlPGx0fHxBZT5QZT9udWxsOmJlfHxBZT09UWUubGVuZ3RoP3BhcnNlSW50KFFlLnN1YnN0cigwLEFlKSwxMCk6bnVsbH1mdW5jdGlvbiBnKFFlKXtjb25zdCBsdD1RZS5zcGxpdCgiOiIpLFBlPVswLDAsMF07'@; put 'aWYoMyE9PWx0Lmxlbmd0aClyZXR1cm4gbnVsbDtmb3IobGV0IGJlPTA7YmU8MztiZSsrKXtjb25zdCBUZT1OKGx0W2JlXSwxLDIsMj09YmUpO2lmKG51bGw9PT1UZSlyZXR1cm4gbnVsbDtQZVtiZV09VGV9cmV0dXJuIFBlfWZ1bmN0aW9uIEMoUWUpe1FlPVN0cmluZyhRZSkuc3Vic3RyKDAs'@; put 'MykudG9Mb3dlckNhc2UoKTtjb25zdCBsdD1zZVtRZV07cmV0dXJuIGx0Pj0wP2x0Om51bGx9ZnVuY3Rpb24gUyhRZSl7aWYoIVFlKXJldHVybjtjb25zdCBsdD1RZS5zcGxpdChvZSk7aWYoIWx0KXJldHVybjtsZXQgUGU9bnVsbCxiZT1udWxsLEFlPW51bGwsVGU9bnVsbCxxZT1udWxsLFhl'@; put 'PW51bGw7Zm9yKGxldCBVZT0wO1VlPGx0Lmxlbmd0aDtVZSsrKXtjb25zdCBodD1sdFtVZV0udHJpbSgpO2lmKCFodC5sZW5ndGgpY29udGludWU7bGV0IE1lO251bGw9PT1BZSYmKE1lPWcoaHQpLE1lKT8oUGU9TWVbMF0sYmU9TWVbMV0sQWU9TWVbMl0pOm51bGwhPT1UZXx8KE1lPU4oaHQs'@; put 'MSwyLCEwKSxudWxsPT09TWUpP251bGwhPT1xZXx8KE1lPUMoaHQpLG51bGw9PT1NZSk/bnVsbD09PVhlJiYoTWU9TihodCwyLDQsITApLG51bGwhPT1NZSYmKFhlPU1lLFhlPj03MCYmWGU8PTk5P1hlKz0xOTAwOlhlPj0wJiZYZTw9NjkmJihYZSs9MmUzKSkpOnFlPU1lOlRlPU1lfXJldHVy'@; put 'biBudWxsPT09VGV8fG51bGw9PT1xZXx8bnVsbD09PVhlfHxudWxsPT09QWV8fFRlPDF8fFRlPjMxfHxYZTwxNjAxfHxQZT4yM3x8YmU+NTl8fEFlPjU5P3ZvaWQgMDpuZXcgRGF0ZShEYXRlLlVUQyhYZSxxZSxUZSxQZSxiZSxBZSkpfWZ1bmN0aW9uIHYoUWUpe3JldHVybiBWLnZhbGlkYXRl'@; put 'KFYuaXNEYXRlKFFlKSxRZSksUWUudG9VVENTdHJpbmcoKX1mdW5jdGlvbiBwKFFlKXtyZXR1cm4gbnVsbD09UWU/bnVsbDooUWU9UWUudHJpbSgpLnJlcGxhY2UoL15cLi8sIiIpLEgudGVzdChRZSkmJihRZT1RZS5yZXBsYWNlKCJbIiwiIikucmVwbGFjZSgiXSIsIiIpKSx6JiYvW15cdTAw'@; put 'MDEtXHUwMDdmXS8udGVzdChRZSkmJihRZT16LnRvQVNDSUkoUWUpKSxRZS50b0xvd2VyQ2FzZSgpKX1mdW5jdGlvbiB3KFFlLGx0LFBlKXtpZihudWxsPT1RZXx8bnVsbD09bHQpcmV0dXJuIG51bGw7aWYoITEhPT1QZSYmKFFlPXAoUWUpLGx0PXAobHQpKSxRZT09bHQpcmV0dXJuITA7Y29u'@; put 'c3QgYmU9UWUubGFzdEluZGV4T2YobHQpO3JldHVybiEoYmU8PTB8fFFlLmxlbmd0aCE9PWx0Lmxlbmd0aCtiZXx8Ii4iIT09UWUuc3Vic3RyKGJlLTEsMSl8fGIudGVzdChRZSkpfWZ1bmN0aW9uIEooUWUpe2lmKCFRZXx8Ii8iIT09UWUuc3Vic3RyKDAsMSkpcmV0dXJuIi8iO2lmKCIvIj09'@; put 'PVFlKXJldHVybiBRZTtjb25zdCBsdD1RZS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiAwPT09bHQ/Ii8iOlFlLnNsaWNlKDAsbHQpfWZ1bmN0aW9uIGRlKFFlLGx0KXtpZihsdCYmIm9iamVjdCI9PXR5cGVvZiBsdHx8KGx0PXt9KSxWLmlzRW1wdHlTdHJpbmcoUWUpfHwhVi5pc1N0cmluZyhR'@; put 'ZSkpcmV0dXJuIG51bGw7Y29uc3QgUGU9KFFlPVFlLnRyaW0oKSkuaW5kZXhPZigiOyIpLGJlPWZ1bmN0aW9uIG5lKFFlLGx0KXtRZT1mdW5jdGlvbihxZSl7aWYoVi5pc0VtcHR5U3RyaW5nKHFlKSlyZXR1cm4gcWU7Zm9yKGxldCBYZT0wO1hlPGVlLmxlbmd0aDtYZSsrKXtjb25zdCBVZT1x'@; put 'ZS5pbmRleE9mKGVlW1hlXSk7LTEhPT1VZSYmKHFlPXFlLnN1YnN0cigwLFVlKSl9cmV0dXJuIHFlfShRZSksVi52YWxpZGF0ZShWLmlzU3RyaW5nKFFlKSxRZSk7bGV0IFBlLGJlLEFlPVFlLmluZGV4T2YoIj0iKTtpZihsdCkwPT09QWUmJihBZT0oUWU9UWUuc3Vic3RyKDEpKS5pbmRleE9m'@; put 'KCI9IikpO2Vsc2UgaWYoQWU8PTApcmV0dXJuO2lmKEFlPD0wPyhQZT0iIixiZT1RZS50cmltKCkpOihQZT1RZS5zdWJzdHIoMCxBZSkudHJpbSgpLGJlPVFlLnN1YnN0cihBZSsxKS50cmltKCkpLHEudGVzdChQZSl8fHEudGVzdChiZSkpcmV0dXJuO2NvbnN0IFRlPW5ldyBqZTtyZXR1cm4g'@; put 'VGUua2V5PVBlLFRlLnZhbHVlPWJlLFRlfSgtMT09PVBlP1FlOlFlLnN1YnN0cigwLFBlKSwhIWx0Lmxvb3NlKTtpZighYmUpcmV0dXJuO2lmKC0xPT09UGUpcmV0dXJuIGJlO2NvbnN0IEFlPVFlLnNsaWNlKFBlKzEpLnRyaW0oKTtpZigwPT09QWUubGVuZ3RoKXJldHVybiBiZTtjb25zdCBU'@; put 'ZT1BZS5zcGxpdCgiOyIpO2Zvcig7VGUubGVuZ3RoOyl7Y29uc3QgcWU9VGUuc2hpZnQoKS50cmltKCk7aWYoMD09PXFlLmxlbmd0aCljb250aW51ZTtjb25zdCBYZT1xZS5pbmRleE9mKCI9Iik7bGV0IFVlLGh0O3N3aXRjaCgtMT09PVhlPyhVZT1xZSxodD1udWxsKTooVWU9cWUuc3Vic3Ry'@; put 'KDAsWGUpLGh0PXFlLnN1YnN0cihYZSsxKSksVWU9VWUudHJpbSgpLnRvTG93ZXJDYXNlKCksaHQmJihodD1odC50cmltKCkpLFVlKXtjYXNlImV4cGlyZXMiOmlmKGh0KXtjb25zdCBNZT1TKGh0KTtNZSYmKGJlLmV4cGlyZXM9TWUpfWJyZWFrO2Nhc2UibWF4LWFnZSI6aWYoaHQmJi9eLT9b'@; put 'MC05XSskLy50ZXN0KGh0KSl7Y29uc3QgTWU9cGFyc2VJbnQoaHQsMTApO2JlLnNldE1heEFnZShNZSl9YnJlYWs7Y2FzZSJkb21haW4iOmlmKGh0KXtjb25zdCBNZT1odC50cmltKCkucmVwbGFjZSgvXlwuLywiIik7TWUmJihiZS5kb21haW49TWUudG9Mb3dlckNhc2UoKSl9YnJlYWs7Y2Fz'@; put 'ZSJwYXRoIjpiZS5wYXRoPWh0JiYiLyI9PT1odFswXT9odDpudWxsO2JyZWFrO2Nhc2Uic2VjdXJlIjpiZS5zZWN1cmU9ITA7YnJlYWs7Y2FzZSJodHRwb25seSI6YmUuaHR0cE9ubHk9ITA7YnJlYWs7Y2FzZSJzYW1lc2l0ZSI6c3dpdGNoKGh0P2h0LnRvTG93ZXJDYXNlKCk6IiIpe2Nhc2Ui'@; put 'c3RyaWN0IjpiZS5zYW1lU2l0ZT0ic3RyaWN0IjticmVhaztjYXNlImxheCI6YmUuc2FtZVNpdGU9ImxheCI7YnJlYWs7Y2FzZSJub25lIjpiZS5zYW1lU2l0ZT0ibm9uZSI7YnJlYWs7ZGVmYXVsdDpiZS5zYW1lU2l0ZT12b2lkIDB9YnJlYWs7ZGVmYXVsdDpiZS5leHRlbnNpb25zPWJlLmV4'@; put 'dGVuc2lvbnN8fFtdLGJlLmV4dGVuc2lvbnMucHVzaChxZSl9fXJldHVybiBiZX1mdW5jdGlvbiBmZShRZSl7bGV0IGx0O3RyeXtsdD1KU09OLnBhcnNlKFFlKX1jYXRjaChQZSl7cmV0dXJuIFBlfXJldHVybiBsdH1mdW5jdGlvbiB4ZShRZSl7aWYoIVFlfHxWLmlzRW1wdHlTdHJpbmcoUWUp'@; put 'KXJldHVybiBudWxsO2xldCBsdDtpZigic3RyaW5nIj09dHlwZW9mIFFlKXtpZihsdD1mZShRZSksbHQgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gbnVsbH1lbHNlIGx0PVFlO2NvbnN0IFBlPW5ldyBqZTtmb3IobGV0IGJlPTA7YmU8amUuc2VyaWFsaXphYmxlUHJvcGVydGllcy5sZW5ndGg7'@; put 'YmUrKyl7Y29uc3QgQWU9amUuc2VyaWFsaXphYmxlUHJvcGVydGllc1tiZV07dm9pZCAwIT09bHRbQWVdJiZsdFtBZV0hPT1PZVtBZV0mJihQZVtBZV09ImV4cGlyZXMiPT09QWV8fCJjcmVhdGlvbiI9PT1BZXx8Imxhc3RBY2Nlc3NlZCI9PT1BZT9udWxsPT09bHRbQWVdP251bGw6IkluZmlu'@; put 'aXR5Ij09bHRbQWVdPyJJbmZpbml0eSI6bmV3IERhdGUobHRbQWVdKTpsdFtBZV0pfXJldHVybiBQZX1mdW5jdGlvbiBMZShRZSxsdCl7Vi52YWxpZGF0ZShWLmlzT2JqZWN0KFFlKSxRZSksVi52YWxpZGF0ZShWLmlzT2JqZWN0KGx0KSxsdCk7bGV0IFBlPTA7cmV0dXJuIFBlPShsdC5wYXRo'@; put 'P2x0LnBhdGgubGVuZ3RoOjApLShRZS5wYXRoP1FlLnBhdGgubGVuZ3RoOjApLDAhPT1QZXx8KFBlPShRZS5jcmVhdGlvbj9RZS5jcmVhdGlvbi5nZXRUaW1lKCk6aGUpLShsdC5jcmVhdGlvbj9sdC5jcmVhdGlvbi5nZXRUaW1lKCk6aGUpLDAhPT1QZXx8KFBlPVFlLmNyZWF0aW9uSW5kZXgt'@; put 'bHQuY3JlYXRpb25JbmRleCkpLFBlfWZ1bmN0aW9uIEZlKFFlKXtpZihRZSBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gUWU7dHJ5e1FlPWRlY29kZVVSSShRZSl9Y2F0Y2h7fXJldHVybiBLKFFlKX1jb25zdCBPZT17a2V5OiIiLHZhbHVlOiIiLGV4cGlyZXM6IkluZmluaXR5IixtYXhBZ2U6'@; put 'bnVsbCxkb21haW46bnVsbCxwYXRoOm51bGwsc2VjdXJlOiExLGh0dHBPbmx5OiExLGV4dGVuc2lvbnM6bnVsbCxob3N0T25seTpudWxsLHBhdGhJc0RlZmF1bHQ6bnVsbCxjcmVhdGlvbjpudWxsLGxhc3RBY2Nlc3NlZDpudWxsLHNhbWVTaXRlOnZvaWQgMH07Y2xhc3MgamV7Y29uc3RydWN0'@; put 'b3IobHQ9e30pe2NvbnN0IFBlPVgoKTtQZSYmKHRoaXNbUGVdPXRoaXMuaW5zcGVjdCksT2JqZWN0LmFzc2lnbih0aGlzLE9lLGx0KSx0aGlzLmNyZWF0aW9uPXRoaXMuY3JlYXRpb258fG5ldyBEYXRlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJjcmVhdGlvbkluZGV4Iix7Y29uZmln'@; put 'dXJhYmxlOiExLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6KytqZS5jb29raWVzQ3JlYXRlZH0pfWluc3BlY3QoKXtjb25zdCBsdD1EYXRlLm5vdygpLFBlPW51bGwhPXRoaXMuaG9zdE9ubHk/dGhpcy5ob3N0T25seToiPyIsYmU9dGhpcy5jcmVhdGlvbj9sdC10aGlzLmNyZWF0'@; put 'aW9uLmdldFRpbWUoKSsibXMiOiI/IixBZT10aGlzLmxhc3RBY2Nlc3NlZD9sdC10aGlzLmxhc3RBY2Nlc3NlZC5nZXRUaW1lKCkrIm1zIjoiPyI7cmV0dXJuYENvb2tpZT0iJHt0aGlzLnRvU3RyaW5nKCl9OyBob3N0T25seT0ke1BlfTsgYUFnZT0ke0FlfTsgY0FnZT0ke2JlfSJgfXRvSlNP'@; put 'Tigpe2NvbnN0IGx0PXt9O2Zvcihjb25zdCBQZSBvZiBqZS5zZXJpYWxpemFibGVQcm9wZXJ0aWVzKXRoaXNbUGVdIT09T2VbUGVdJiYoImV4cGlyZXMiPT09UGV8fCJjcmVhdGlvbiI9PT1QZXx8Imxhc3RBY2Nlc3NlZCI9PT1QZT9sdFtQZV09bnVsbD09PXRoaXNbUGVdP251bGw6IkluZmlu'@; put 'aXR5Ij09dGhpc1tQZV0/IkluZmluaXR5Ijp0aGlzW1BlXS50b0lTT1N0cmluZygpOiJtYXhBZ2UiPT09UGU/bnVsbCE9PXRoaXNbUGVdJiYobHRbUGVdPXRoaXNbUGVdPT0xLzB8fHRoaXNbUGVdPT0tMS8wP3RoaXNbUGVdLnRvU3RyaW5nKCk6dGhpc1tQZV0pOnRoaXNbUGVdIT09T2VbUGVd'@; put 'JiYobHRbUGVdPXRoaXNbUGVdKSk7cmV0dXJuIGx0fWNsb25lKCl7cmV0dXJuIHhlKHRoaXMudG9KU09OKCkpfXZhbGlkYXRlKCl7aWYoIVUudGVzdCh0aGlzLnZhbHVlKXx8ISh0aGlzLmV4cGlyZXM9PTEvMHx8dGhpcy5leHBpcmVzIGluc3RhbmNlb2YgRGF0ZXx8Uyh0aGlzLmV4cGlyZXMp'@; put 'KXx8bnVsbCE9dGhpcy5tYXhBZ2UmJnRoaXMubWF4QWdlPD0wfHxudWxsIT10aGlzLnBhdGgmJiF0ZS50ZXN0KHRoaXMucGF0aCkpcmV0dXJuITE7Y29uc3QgbHQ9dGhpcy5jZG9tYWluKCk7cmV0dXJuIShsdCYmKGx0Lm1hdGNoKC9cLiQvKXx8bnVsbD09SS5nZXRQdWJsaWNTdWZmaXgobHQp'@; put 'KSl9c2V0RXhwaXJlcyhsdCl7dGhpcy5leHBpcmVzPWx0IGluc3RhbmNlb2YgRGF0ZT9sdDpTKGx0KXx8IkluZmluaXR5In1zZXRNYXhBZ2UobHQpe3RoaXMubWF4QWdlPWx0PT09MS8wfHxsdD09PS0xLzA/bHQudG9TdHJpbmcoKTpsdH1jb29raWVTdHJpbmcoKXtsZXQgbHQ9dGhpcy52YWx1'@; put 'ZTtyZXR1cm4gbnVsbD09bHQmJihsdD0iIiksIiI9PT10aGlzLmtleT9sdDpgJHt0aGlzLmtleX09JHtsdH1gfXRvU3RyaW5nKCl7bGV0IGx0PXRoaXMuY29va2llU3RyaW5nKCk7aWYodGhpcy5leHBpcmVzIT0xLzAmJih0aGlzLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRlP2x0Kz1gOyBFeHBp'@; put 'cmVzPSR7dih0aGlzLmV4cGlyZXMpfWA6bHQrPWA7IEV4cGlyZXM9JHt0aGlzLmV4cGlyZXN9YCksbnVsbCE9dGhpcy5tYXhBZ2UmJnRoaXMubWF4QWdlIT0xLzAmJihsdCs9YDsgTWF4LUFnZT0ke3RoaXMubWF4QWdlfWApLHRoaXMuZG9tYWluJiYhdGhpcy5ob3N0T25seSYmKGx0Kz1gOyBE'@; put 'b21haW49JHt0aGlzLmRvbWFpbn1gKSx0aGlzLnBhdGgmJihsdCs9YDsgUGF0aD0ke3RoaXMucGF0aH1gKSx0aGlzLnNlY3VyZSYmKGx0Kz0iOyBTZWN1cmUiKSx0aGlzLmh0dHBPbmx5JiYobHQrPSI7IEh0dHBPbmx5IiksdGhpcy5zYW1lU2l0ZSYmIm5vbmUiIT09dGhpcy5zYW1lU2l0ZSl7'@; put 'Y29uc3QgUGU9amUuc2FtZVNpdGVDYW5vbmljYWxbdGhpcy5zYW1lU2l0ZS50b0xvd2VyQ2FzZSgpXTtsdCs9YDsgU2FtZVNpdGU9JHtQZXx8dGhpcy5zYW1lU2l0ZX1gfXJldHVybiB0aGlzLmV4dGVuc2lvbnMmJnRoaXMuZXh0ZW5zaW9ucy5mb3JFYWNoKFBlPT57bHQrPWA7ICR7UGV9YH0p'@; put 'LGx0fVRUTChsdCl7aWYobnVsbCE9dGhpcy5tYXhBZ2UpcmV0dXJuIHRoaXMubWF4QWdlPD0wPzA6MWUzKnRoaXMubWF4QWdlO2xldCBQZT10aGlzLmV4cGlyZXM7cmV0dXJuIFBlIT0xLzA/KFBlIGluc3RhbmNlb2YgRGF0ZXx8KFBlPVMoUGUpfHwxLzApLFBlPT0xLzA/MS8wOlBlLmdldFRp'@; put 'bWUoKS0obHR8fERhdGUubm93KCkpKToxLzB9ZXhwaXJ5VGltZShsdCl7aWYobnVsbCE9dGhpcy5tYXhBZ2Upe2NvbnN0IGJlPXRoaXMubWF4QWdlPD0wPy0xLzA6MWUzKnRoaXMubWF4QWdlO3JldHVybihsdHx8dGhpcy5jcmVhdGlvbnx8bmV3IERhdGUpLmdldFRpbWUoKStiZX1yZXR1cm4g'@; put 'dGhpcy5leHBpcmVzPT0xLzA/MS8wOnRoaXMuZXhwaXJlcy5nZXRUaW1lKCl9ZXhwaXJ5RGF0ZShsdCl7Y29uc3QgUGU9dGhpcy5leHBpcnlUaW1lKGx0KTtyZXR1cm4gUGU9PTEvMD9uZXcgRGF0ZShoZSk6UGU9PS0xLzA/bmV3IERhdGUoMCk6bmV3IERhdGUoUGUpfWlzUGVyc2lzdGVudCgp'@; put 'e3JldHVybiBudWxsIT10aGlzLm1heEFnZXx8dGhpcy5leHBpcmVzIT0xLzB9Y2Fub25pY2FsaXplZERvbWFpbigpe3JldHVybiBudWxsPT10aGlzLmRvbWFpbj9udWxsOnAodGhpcy5kb21haW4pfWNkb21haW4oKXtyZXR1cm4gdGhpcy5jYW5vbmljYWxpemVkRG9tYWluKCl9fWZ1bmN0aW9u'@; put 'IFdlKFFlKXtpZihudWxsIT1RZSl7Y29uc3QgbHQ9UWUudG9Mb3dlckNhc2UoKTtzd2l0Y2gobHQpe2Nhc2UgRy5TVFJJQ1Q6Y2FzZSBHLlNJTEVOVDpjYXNlIEcuRElTQUJMRUQ6cmV0dXJuIGx0fX1yZXR1cm4gRy5TSUxFTlR9amUuY29va2llc0NyZWF0ZWQ9MCxqZS5wYXJzZT1kZSxqZS5m'@; put 'cm9tSlNPTj14ZSxqZS5zZXJpYWxpemFibGVQcm9wZXJ0aWVzPU9iamVjdC5rZXlzKE9lKSxqZS5zYW1lU2l0ZUxldmVsPXtzdHJpY3Q6MyxsYXg6Mixub25lOjF9LGplLnNhbWVTaXRlQ2Fub25pY2FsPXtzdHJpY3Q6IlN0cmljdCIsbGF4OiJMYXgifTtjbGFzcyBLZXtjb25zdHJ1Y3Rvcihs'@; put 'dCxQZT17cmVqZWN0UHVibGljU3VmZml4ZXM6ITB9KXsiYm9vbGVhbiI9PXR5cGVvZiBQZSYmKFBlPXtyZWplY3RQdWJsaWNTdWZmaXhlczpQZX0pLFYudmFsaWRhdGUoVi5pc09iamVjdChQZSksUGUpLHRoaXMucmVqZWN0UHVibGljU3VmZml4ZXM9UGUucmVqZWN0UHVibGljU3VmZml4ZXMs'@; put 'dGhpcy5lbmFibGVMb29zZU1vZGU9ISFQZS5sb29zZU1vZGUsdGhpcy5hbGxvd1NwZWNpYWxVc2VEb21haW49ImJvb2xlYW4iIT10eXBlb2YgUGUuYWxsb3dTcGVjaWFsVXNlRG9tYWlufHxQZS5hbGxvd1NwZWNpYWxVc2VEb21haW4sdGhpcy5zdG9yZT1sdHx8bmV3IEUsdGhpcy5wcmVmaXhT'@; put 'ZWN1cml0eT1XZShQZS5wcmVmaXhTZWN1cml0eSksdGhpcy5fY2xvbmVTeW5jPVllKCJjbG9uZSIpLHRoaXMuX2ltcG9ydENvb2tpZXNTeW5jPVllKCJfaW1wb3J0Q29va2llcyIpLHRoaXMuZ2V0Q29va2llc1N5bmM9WWUoImdldENvb2tpZXMiKSx0aGlzLmdldENvb2tpZVN0cmluZ1N5bmM9'@; put 'WWUoImdldENvb2tpZVN0cmluZyIpLHRoaXMuZ2V0U2V0Q29va2llU3RyaW5nc1N5bmM9WWUoImdldFNldENvb2tpZVN0cmluZ3MiKSx0aGlzLnJlbW92ZUFsbENvb2tpZXNTeW5jPVllKCJyZW1vdmVBbGxDb29raWVzIiksdGhpcy5zZXRDb29raWVTeW5jPVllKCJzZXRDb29raWUiKSx0aGlz'@; put 'LnNlcmlhbGl6ZVN5bmM9WWUoInNlcmlhbGl6ZSIpfXNldENvb2tpZShsdCxQZSxiZSxBZSl7bGV0IFRlO2lmKFYudmFsaWRhdGUoVi5pc05vbkVtcHR5U3RyaW5nKFBlKSxBZSxiZSksVi5pc0Z1bmN0aW9uKFBlKSlyZXR1cm4oQWU9UGUpKG5ldyBFcnJvcigiTm8gVVJMIHdhcyBzcGVjaWZp'@; put 'ZWQiKSk7Y29uc3QgcWU9RmUoUGUpO2lmKFYuaXNGdW5jdGlvbihiZSkmJihBZT1iZSxiZT17fSksVi52YWxpZGF0ZShWLmlzRnVuY3Rpb24oQWUpLEFlKSwhVi5pc05vbkVtcHR5U3RyaW5nKGx0KSYmIVYuaXNPYmplY3QobHQpJiZsdCBpbnN0YW5jZW9mIFN0cmluZyYmMD09bHQubGVuZ3Ro'@; put 'KXJldHVybiBBZShudWxsKTtjb25zdCBYZT1wKHFlLmhvc3RuYW1lKSxVZT1iZS5sb29zZXx8dGhpcy5lbmFibGVMb29zZU1vZGU7bGV0IGh0PW51bGw7aWYoYmUuc2FtZVNpdGVDb250ZXh0JiYoaHQ9Y2UoYmUuc2FtZVNpdGVDb250ZXh0KSwhaHQpKXJldHVybiBBZShuZXcgRXJyb3IodWUp'@; put 'KTtpZigic3RyaW5nIj09dHlwZW9mIGx0fHxsdCBpbnN0YW5jZW9mIFN0cmluZyl7aWYoIShsdD1qZS5wYXJzZShsdCx7bG9vc2U6VWV9KSkpcmV0dXJuIFRlPW5ldyBFcnJvcigiQ29va2llIGZhaWxlZCB0byBwYXJzZSIpLEFlKGJlLmlnbm9yZUVycm9yP251bGw6VGUpfWVsc2UgaWYoIShs'@; put 'dCBpbnN0YW5jZW9mIGplKSlyZXR1cm4gVGU9bmV3IEVycm9yKCJGaXJzdCBhcmd1bWVudCB0byBzZXRDb29raWUgbXVzdCBiZSBhIENvb2tpZSBvYmplY3Qgb3Igc3RyaW5nIiksQWUoYmUuaWdub3JlRXJyb3I/bnVsbDpUZSk7Y29uc3QgTWU9YmUubm93fHxuZXcgRGF0ZTtpZih0aGlzLnJl'@; put 'amVjdFB1YmxpY1N1ZmZpeGVzJiZsdC5kb21haW4mJm51bGw9PUkuZ2V0UHVibGljU3VmZml4KGx0LmNkb21haW4oKSx7YWxsb3dTcGVjaWFsVXNlRG9tYWluOnRoaXMuYWxsb3dTcGVjaWFsVXNlRG9tYWluLGlnbm9yZUVycm9yOmJlLmlnbm9yZUVycm9yfSkmJiFILnRlc3QobHQuZG9tYWlu'@; put 'KSlyZXR1cm4gVGU9bmV3IEVycm9yKCJDb29raWUgaGFzIGRvbWFpbiBzZXQgdG8gYSBwdWJsaWMgc3VmZml4IiksQWUoYmUuaWdub3JlRXJyb3I/bnVsbDpUZSk7aWYobHQuZG9tYWluKXtpZighdyhYZSxsdC5jZG9tYWluKCksITEpKXJldHVybiBUZT1uZXcgRXJyb3IoYENvb2tpZSBub3Qg'@; put 'aW4gdGhpcyBob3N0J3MgZG9tYWluLiBDb29raWU6JHtsdC5jZG9tYWluKCl9IFJlcXVlc3Q6JHtYZX1gKSxBZShiZS5pZ25vcmVFcnJvcj9udWxsOlRlKTtudWxsPT1sdC5ob3N0T25seSYmKGx0Lmhvc3RPbmx5PSExKX1lbHNlIGx0Lmhvc3RPbmx5PSEwLGx0LmRvbWFpbj1YZTtpZihsdC5w'@; put 'YXRoJiYiLyI9PT1sdC5wYXRoWzBdfHwobHQucGF0aD1KKHFlLnBhdGhuYW1lKSxsdC5wYXRoSXNEZWZhdWx0PSEwKSwhMT09PWJlLmh0dHAmJmx0Lmh0dHBPbmx5KXJldHVybiBUZT1uZXcgRXJyb3IoIkNvb2tpZSBpcyBIdHRwT25seSBhbmQgdGhpcyBpc24ndCBhbiBIVFRQIEFQSSIpLEFl'@; put 'KGJlLmlnbm9yZUVycm9yP251bGw6VGUpO2lmKCJub25lIiE9PWx0LnNhbWVTaXRlJiZ2b2lkIDAhPT1sdC5zYW1lU2l0ZSYmaHQmJiJub25lIj09PWh0KXJldHVybiBUZT1uZXcgRXJyb3IoIkNvb2tpZSBpcyBTYW1lU2l0ZSBidXQgdGhpcyBpcyBhIGNyb3NzLW9yaWdpbiByZXF1ZXN0Iiks'@; put 'QWUoYmUuaWdub3JlRXJyb3I/bnVsbDpUZSk7Y29uc3QgRGU9dGhpcy5wcmVmaXhTZWN1cml0eT09PUcuU0lMRU5UO2lmKHRoaXMucHJlZml4U2VjdXJpdHkhPT1HLkRJU0FCTEVEKXtsZXQgb3QsdXQ9ITE7aWYoVi52YWxpZGF0ZShWLmlzT2JqZWN0KE10PWx0KSxNdCksIU10LmtleS5zdGFy'@; put 'dHNXaXRoKCJfX1NlY3VyZS0iKXx8TXQuc2VjdXJlP2Z1bmN0aW9uKE10KXtyZXR1cm4gVi52YWxpZGF0ZShWLmlzT2JqZWN0KE10KSksIU10LmtleS5zdGFydHNXaXRoKCJfX0hvc3QtIil8fE10LnNlY3VyZSYmTXQuaG9zdE9ubHkmJm51bGwhPU10LnBhdGgmJiIvIj09PU10LnBhdGh9KGx0'@; put 'KXx8KHV0PSEwLG90PSJDb29raWUgaGFzIF9fSG9zdCBwcmVmaXggYnV0IGVpdGhlciBTZWN1cmUgb3IgSG9zdE9ubHkgYXR0cmlidXRlIGlzIG5vdCBzZXQgb3IgUGF0aCBpcyBub3QgJy8nIik6KHV0PSEwLG90PSJDb29raWUgaGFzIF9fU2VjdXJlIHByZWZpeCBidXQgU2VjdXJlIGF0dHJp'@; put 'YnV0ZSBpcyBub3Qgc2V0IiksdXQpcmV0dXJuIEFlKGJlLmlnbm9yZUVycm9yfHxEZT9udWxsOm5ldyBFcnJvcihvdCkpfXZhciBNdDtjb25zdCB6ZT10aGlzLnN0b3JlO3plLnVwZGF0ZUNvb2tpZXx8KHplLnVwZGF0ZUNvb2tpZT1mdW5jdGlvbihvdCx1dCxNdCl7dGhpcy5wdXRDb29raWUo'@; put 'dXQsTXQpfSksemUuZmluZENvb2tpZShsdC5kb21haW4sbHQucGF0aCxsdC5rZXksZnVuY3Rpb24ob3QsdXQpe2lmKG90KXJldHVybiBBZShvdCk7Y29uc3QgTXQ9ZnVuY3Rpb24oSHQpe2lmKEh0KXJldHVybiBBZShIdCk7QWUobnVsbCxsdCl9O2lmKHV0KXtpZighMT09PWJlLmh0dHAmJnV0'@; put 'Lmh0dHBPbmx5KXJldHVybiBvdD1uZXcgRXJyb3IoIm9sZCBDb29raWUgaXMgSHR0cE9ubHkgYW5kIHRoaXMgaXNuJ3QgYW4gSFRUUCBBUEkiKSxBZShiZS5pZ25vcmVFcnJvcj9udWxsOm90KTtsdC5jcmVhdGlvbj11dC5jcmVhdGlvbixsdC5jcmVhdGlvbkluZGV4PXV0LmNyZWF0aW9uSW5k'@; put 'ZXgsbHQubGFzdEFjY2Vzc2VkPU1lLHplLnVwZGF0ZUNvb2tpZSh1dCxsdCxNdCl9ZWxzZSBsdC5jcmVhdGlvbj1sdC5sYXN0QWNjZXNzZWQ9TWUsemUucHV0Q29va2llKGx0LE10KX0pfWdldENvb2tpZXMobHQsUGUsYmUpe1YudmFsaWRhdGUoVi5pc05vbkVtcHR5U3RyaW5nKGx0KSxiZSxs'@; put 'dCk7Y29uc3QgQWU9RmUobHQpO1YuaXNGdW5jdGlvbihQZSkmJihiZT1QZSxQZT17fSksVi52YWxpZGF0ZShWLmlzT2JqZWN0KFBlKSxiZSxQZSksVi52YWxpZGF0ZShWLmlzRnVuY3Rpb24oYmUpLGJlKTtjb25zdCBUZT1wKEFlLmhvc3RuYW1lKSxxZT1BZS5wYXRobmFtZXx8Ii8iO2xldCBY'@; put 'ZT1QZS5zZWN1cmU7bnVsbCE9WGV8fCFBZS5wcm90b2NvbHx8Imh0dHBzOiIhPUFlLnByb3RvY29sJiYid3NzOiIhPUFlLnByb3RvY29sfHwoWGU9ITApO2xldCBVZT0wO2lmKFBlLnNhbWVTaXRlQ29udGV4dCl7Y29uc3QgTXQ9Y2UoUGUuc2FtZVNpdGVDb250ZXh0KTtpZihVZT1qZS5zYW1l'@; put 'U2l0ZUxldmVsW010XSwhVWUpcmV0dXJuIGJlKG5ldyBFcnJvcih1ZSkpfWxldCBodD1QZS5odHRwO251bGw9PWh0JiYoaHQ9ITApO2NvbnN0IE1lPVBlLm5vd3x8RGF0ZS5ub3coKSxEZT0hMSE9PVBlLmV4cGlyZSx6ZT0hIVBlLmFsbFBhdGhzLG90PXRoaXMuc3RvcmU7ZnVuY3Rpb24gdXQo'@; put 'TXQpe2lmKE10Lmhvc3RPbmx5KXtpZihNdC5kb21haW4hPVRlKXJldHVybiExfWVsc2UgaWYoIXcoVGUsTXQuZG9tYWluLCExKSlyZXR1cm4hMTtyZXR1cm4hKCF6ZSYmIWoocWUsTXQucGF0aCl8fE10LnNlY3VyZSYmIVhlfHxNdC5odHRwT25seSYmIWh0fHxVZSYmamUuc2FtZVNpdGVMZXZl'@; put 'bFtNdC5zYW1lU2l0ZXx8Im5vbmUiXT5VZXx8RGUmJk10LmV4cGlyeVRpbWUoKTw9TWUmJihvdC5yZW1vdmVDb29raWUoTXQuZG9tYWluLE10LnBhdGgsTXQua2V5LCgpPT57fSksMSkpfW90LmZpbmRDb29raWVzKFRlLHplP251bGw6cWUsdGhpcy5hbGxvd1NwZWNpYWxVc2VEb21haW4sKE10'@; put 'LEh0KT0+e2lmKE10KXJldHVybiBiZShNdCk7SHQ9SHQuZmlsdGVyKHV0KSwhMSE9PVBlLnNvcnQmJihIdD1IdC5zb3J0KExlKSk7Y29uc3QgUHQ9bmV3IERhdGU7Zm9yKGNvbnN0IG9uIG9mIEh0KW9uLmxhc3RBY2Nlc3NlZD1QdDtiZShudWxsLEh0KX0pfWdldENvb2tpZVN0cmluZyguLi5s'@; put 'dCl7Y29uc3QgUGU9bHQucG9wKCk7Vi52YWxpZGF0ZShWLmlzRnVuY3Rpb24oUGUpLFBlKSxsdC5wdXNoKGZ1bmN0aW9uKGJlLEFlKXtiZT9QZShiZSk6UGUobnVsbCxBZS5zb3J0KExlKS5tYXAoVGU9PlRlLmNvb2tpZVN0cmluZygpKS5qb2luKCI7ICIpKX0pLHRoaXMuZ2V0Q29va2llcy5h'@; put 'cHBseSh0aGlzLGx0KX1nZXRTZXRDb29raWVTdHJpbmdzKC4uLmx0KXtjb25zdCBQZT1sdC5wb3AoKTtWLnZhbGlkYXRlKFYuaXNGdW5jdGlvbihQZSksUGUpLGx0LnB1c2goZnVuY3Rpb24oYmUsQWUpe2JlP1BlKGJlKTpQZShudWxsLEFlLm1hcChUZT0+VGUudG9TdHJpbmcoKSkpfSksdGhp'@; put 'cy5nZXRDb29raWVzLmFwcGx5KHRoaXMsbHQpfXNlcmlhbGl6ZShsdCl7Vi52YWxpZGF0ZShWLmlzRnVuY3Rpb24obHQpLGx0KTtsZXQgUGU9dGhpcy5zdG9yZS5jb25zdHJ1Y3Rvci5uYW1lO1YuaXNPYmplY3QoUGUpJiYoUGU9bnVsbCk7Y29uc3QgYmU9e3ZlcnNpb246YHRvdWdoLWNvb2tp'@; put 'ZUAke0J9YCxzdG9yZVR5cGU6UGUscmVqZWN0UHVibGljU3VmZml4ZXM6ISF0aGlzLnJlamVjdFB1YmxpY1N1ZmZpeGVzLGVuYWJsZUxvb3NlTW9kZTohIXRoaXMuZW5hYmxlTG9vc2VNb2RlLGFsbG93U3BlY2lhbFVzZURvbWFpbjohIXRoaXMuYWxsb3dTcGVjaWFsVXNlRG9tYWluLHByZWZp'@; put 'eFNlY3VyaXR5OldlKHRoaXMucHJlZml4U2VjdXJpdHkpLGNvb2tpZXM6W119O2lmKCF0aGlzLnN0b3JlLmdldEFsbENvb2tpZXN8fCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLnN0b3JlLmdldEFsbENvb2tpZXMpcmV0dXJuIGx0KG5ldyBFcnJvcigic3RvcmUgZG9lcyBub3Qgc3VwcG9ydCBn'@; put 'ZXRBbGxDb29raWVzIGFuZCBjYW5ub3QgYmUgc2VyaWFsaXplZCIpKTt0aGlzLnN0b3JlLmdldEFsbENvb2tpZXMoKEFlLFRlKT0+QWU/bHQoQWUpOihiZS5jb29raWVzPVRlLm1hcChxZT0+KGRlbGV0ZShxZT1xZSBpbnN0YW5jZW9mIGplP3FlLnRvSlNPTigpOnFlKS5jcmVhdGlvbkluZGV4'@; put 'LHFlKSksbHQobnVsbCxiZSkpKX10b0pTT04oKXtyZXR1cm4gdGhpcy5zZXJpYWxpemVTeW5jKCl9X2ltcG9ydENvb2tpZXMobHQsUGUpe2xldCBiZT1sdC5jb29raWVzO2lmKCFiZXx8IUFycmF5LmlzQXJyYXkoYmUpKXJldHVybiBQZShuZXcgRXJyb3IoInNlcmlhbGl6ZWQgamFyIGhhcyBu'@; put 'byBjb29raWVzIGFycmF5IikpO2JlPWJlLnNsaWNlKCk7Y29uc3QgQWU9VGU9PntpZihUZSlyZXR1cm4gUGUoVGUpO2lmKCFiZS5sZW5ndGgpcmV0dXJuIFBlKFRlLHRoaXMpO2xldCBxZTt0cnl7cWU9eGUoYmUuc2hpZnQoKSl9Y2F0Y2goWGUpe3JldHVybiBQZShYZSl9aWYobnVsbD09PXFl'@; put 'KXJldHVybiBBZShudWxsKTt0aGlzLnN0b3JlLnB1dENvb2tpZShxZSxBZSl9O0FlKCl9Y2xvbmUobHQsUGUpezE9PT1hcmd1bWVudHMubGVuZ3RoJiYoUGU9bHQsbHQ9bnVsbCksdGhpcy5zZXJpYWxpemUoKGJlLEFlKT0+e2lmKGJlKXJldHVybiBQZShiZSk7S2UuZGVzZXJpYWxpemUoQWUs'@; put 'bHQsUGUpfSl9Y2xvbmVTeW5jKGx0KXtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5fY2xvbmVTeW5jKCk7aWYoIWx0LnN5bmNocm9ub3VzKXRocm93IG5ldyBFcnJvcigiQ29va2llSmFyIGNsb25lIGRlc3RpbmF0aW9uIHN0b3JlIGlzIG5vdCBzeW5jaHJvbm91czsgdXNl'@; put 'IGFzeW5jIEFQSSBpbnN0ZWFkLiIpO3JldHVybiB0aGlzLl9jbG9uZVN5bmMobHQpfXJlbW92ZUFsbENvb2tpZXMobHQpe1YudmFsaWRhdGUoVi5pc0Z1bmN0aW9uKGx0KSxsdCk7Y29uc3QgUGU9dGhpcy5zdG9yZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUGUucmVtb3ZlQWxsQ29va2llcyYm'@; put 'UGUucmVtb3ZlQWxsQ29va2llcyE9PWsucHJvdG90eXBlLnJlbW92ZUFsbENvb2tpZXMpcmV0dXJuIFBlLnJlbW92ZUFsbENvb2tpZXMobHQpO1BlLmdldEFsbENvb2tpZXMoKGJlLEFlKT0+e2lmKGJlKXJldHVybiBsdChiZSk7aWYoMD09PUFlLmxlbmd0aClyZXR1cm4gbHQobnVsbCk7bGV0'@; put 'IFRlPTA7Y29uc3QgcWU9W107ZnVuY3Rpb24gWGUoVWUpe2lmKFVlJiZxZS5wdXNoKFVlKSxUZSsrLFRlPT09QWUubGVuZ3RoKXJldHVybiBsdChxZS5sZW5ndGg/cWVbMF06bnVsbCl9QWUuZm9yRWFjaChVZT0+e1BlLnJlbW92ZUNvb2tpZShVZS5kb21haW4sVWUucGF0aCxVZS5rZXksWGUp'@; put 'fSl9KX1zdGF0aWMgZGVzZXJpYWxpemUobHQsUGUsYmUpe2xldCBBZTtpZigzIT09YXJndW1lbnRzLmxlbmd0aCYmKGJlPVBlLFBlPW51bGwpLFYudmFsaWRhdGUoVi5pc0Z1bmN0aW9uKGJlKSxiZSksInN0cmluZyI9PXR5cGVvZiBsdCl7aWYoQWU9ZmUobHQpLEFlIGluc3RhbmNlb2YgRXJy'@; put 'b3IpcmV0dXJuIGJlKEFlKX1lbHNlIEFlPWx0O2NvbnN0IFRlPW5ldyBLZShQZSx7cmVqZWN0UHVibGljU3VmZml4ZXM6QWUucmVqZWN0UHVibGljU3VmZml4ZXMsbG9vc2VNb2RlOkFlLmVuYWJsZUxvb3NlTW9kZSxhbGxvd1NwZWNpYWxVc2VEb21haW46QWUuYWxsb3dTcGVjaWFsVXNlRG9t'@; put 'YWluLHByZWZpeFNlY3VyaXR5OkFlLnByZWZpeFNlY3VyaXR5fSk7VGUuX2ltcG9ydENvb2tpZXMoQWUscWU9PntpZihxZSlyZXR1cm4gYmUocWUpO2JlKG51bGwsVGUpfSl9c3RhdGljIGRlc2VyaWFsaXplU3luYyhsdCxQZSl7Y29uc3QgYmU9InN0cmluZyI9PXR5cGVvZiBsdD9KU09OLnBh'@; put 'cnNlKGx0KTpsdCxBZT1uZXcgS2UoUGUse3JlamVjdFB1YmxpY1N1ZmZpeGVzOmJlLnJlamVjdFB1YmxpY1N1ZmZpeGVzLGxvb3NlTW9kZTpiZS5lbmFibGVMb29zZU1vZGV9KTtpZighQWUuc3RvcmUuc3luY2hyb25vdXMpdGhyb3cgbmV3IEVycm9yKCJDb29raWVKYXIgc3RvcmUgaXMgbm90'@; put 'IHN5bmNocm9ub3VzOyB1c2UgYXN5bmMgQVBJIGluc3RlYWQuIik7cmV0dXJuIEFlLl9pbXBvcnRDb29raWVzU3luYyhiZSksQWV9fWZ1bmN0aW9uIFllKFFlKXtyZXR1cm4gZnVuY3Rpb24oLi4ubHQpe2lmKCF0aGlzLnN0b3JlLnN5bmNocm9ub3VzKXRocm93IG5ldyBFcnJvcigiQ29va2ll'@; put 'SmFyIHN0b3JlIGlzIG5vdCBzeW5jaHJvbm91czsgdXNlIGFzeW5jIEFQSSBpbnN0ZWFkLiIpO2xldCBQZSxiZTtpZih0aGlzW1FlXSguLi5sdCwoQWUsVGUpPT57UGU9QWUsYmU9VGV9KSxQZSl0aHJvdyBQZTtyZXR1cm4gYmV9fUtlLmZyb21KU09OPUtlLmRlc2VyaWFsaXplU3luYyxbIl9p'@; put 'bXBvcnRDb29raWVzIiwiY2xvbmUiLCJnZXRDb29raWVzIiwiZ2V0Q29va2llU3RyaW5nIiwiZ2V0U2V0Q29va2llU3RyaW5ncyIsInJlbW92ZUFsbENvb2tpZXMiLCJzZXJpYWxpemUiLCJzZXRDb29raWUiXS5mb3JFYWNoKFFlPT57S2UucHJvdG90eXBlW1FlXT1ZKEtlLnByb3RvdHlwZVtR'@; put 'ZV0pfSksS2UuZGVzZXJpYWxpemU9WShLZS5kZXNlcmlhbGl6ZSksTy52ZXJzaW9uPUIsTy5Db29raWVKYXI9S2UsTy5Db29raWU9amUsTy5TdG9yZT1rLE8uTWVtb3J5Q29va2llU3RvcmU9RSxPLnBhcnNlRGF0ZT1TLE8uZm9ybWF0RGF0ZT12LE8ucGFyc2U9ZGUsTy5mcm9tSlNPTj14ZSxP'@; put 'LmRvbWFpbk1hdGNoPXcsTy5kZWZhdWx0UGF0aD1KLE8ucGF0aE1hdGNoPWosTy5nZXRQdWJsaWNTdWZmaXg9SS5nZXRQdWJsaWNTdWZmaXgsTy5jb29raWVDb21wYXJlPUxlLE8ucGVybXV0ZURvbWFpbj1SKDczMjQpLnBlcm11dGVEb21haW4sTy5wZXJtdXRlUGF0aD1mdW5jdGlvbihRZSl7'@; put 'aWYoVi52YWxpZGF0ZShWLmlzU3RyaW5nKFFlKSksIi8iPT09UWUpcmV0dXJuWyIvIl07Y29uc3QgbHQ9W1FlXTtmb3IoO1FlLmxlbmd0aD4xOyl7Y29uc3QgUGU9UWUubGFzdEluZGV4T2YoIi8iKTtpZigwPT09UGUpYnJlYWs7UWU9UWUuc3Vic3RyKDAsUGUpLGx0LnB1c2goUWUpfXJldHVy'@; put 'biBsdC5wdXNoKCIvIiksbHR9LE8uY2Fub25pY2FsRG9tYWluPXAsTy5QcmVmaXhTZWN1cml0eUVudW09RyxPLlBhcmFtZXRlckVycm9yPVYuUGFyYW1ldGVyRXJyb3J9LDU3NjE6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdHtmcm9tQ2FsbGJhY2s6en09Uig3MDQxKSxLPVIoMjIyNCku'@; put 'eSxJPVIoNzMyNCkucGVybXV0ZURvbWFpbixrPVIoODk3MSkuVSx7Z2V0Q3VzdG9tSW5zcGVjdFN5bWJvbDpFLGdldFV0aWxJbnNwZWN0Omp9PVIoMTI2OSk7Y2xhc3MgViBleHRlbmRzIEt7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuc3luY2hyb25vdXM9ITAsdGhpcy5pZHg9T2JqZWN0'@; put 'LmNyZWF0ZShudWxsKTtjb25zdCBYPUUoKTtYJiYodGhpc1tYXT10aGlzLmluc3BlY3QpfWluc3BlY3QoKXtyZXR1cm5geyBpZHg6ICR7aihCKSh0aGlzLmlkeCwhMSwyKX0gfWB9ZmluZENvb2tpZShYLFUscSxlZSl7cmV0dXJuIGVlKG51bGwsdGhpcy5pZHhbWF0mJnRoaXMuaWR4W1hdW1Vd'@; put 'P3RoaXMuaWR4W1hdW1VdW3FdfHxudWxsOnZvaWQgMCl9ZmluZENvb2tpZXMoWCxVLHEsZWUpe2NvbnN0IHRlPVtdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBxJiYoZWU9cSxxPSEwKSwhWClyZXR1cm4gZWUobnVsbCxbXSk7bGV0IG9lO29lPVU/ZnVuY3Rpb24odWUpe09iamVjdC5rZXlzKHVl'@; put 'KS5mb3JFYWNoKGNlPT57aWYoayhVLGNlKSl7Y29uc3QgRz11ZVtjZV07Zm9yKGNvbnN0IGIgaW4gRyl0ZS5wdXNoKEdbYl0pfX0pfTpmdW5jdGlvbih1ZSl7Zm9yKGNvbnN0IGNlIGluIHVlKXtjb25zdCBHPXVlW2NlXTtmb3IoY29uc3QgYiBpbiBHKXRlLnB1c2goR1tiXSl9fTtjb25zdCBz'@; put 'ZT1JKFgscSl8fFtYXSxoZT10aGlzLmlkeDtzZS5mb3JFYWNoKHVlPT57Y29uc3QgY2U9aGVbdWVdO2NlJiZvZShjZSl9KSxlZShudWxsLHRlKX1wdXRDb29raWUoWCxVKXt0aGlzLmlkeFtYLmRvbWFpbl18fCh0aGlzLmlkeFtYLmRvbWFpbl09T2JqZWN0LmNyZWF0ZShudWxsKSksdGhpcy5p'@; put 'ZHhbWC5kb21haW5dW1gucGF0aF18fCh0aGlzLmlkeFtYLmRvbWFpbl1bWC5wYXRoXT1PYmplY3QuY3JlYXRlKG51bGwpKSx0aGlzLmlkeFtYLmRvbWFpbl1bWC5wYXRoXVtYLmtleV09WCxVKG51bGwpfXVwZGF0ZUNvb2tpZShYLFUscSl7dGhpcy5wdXRDb29raWUoVSxxKX1yZW1vdmVDb29r'@; put 'aWUoWCxVLHEsZWUpe3RoaXMuaWR4W1hdJiZ0aGlzLmlkeFtYXVtVXSYmdGhpcy5pZHhbWF1bVV1bcV0mJmRlbGV0ZSB0aGlzLmlkeFtYXVtVXVtxXSxlZShudWxsKX1yZW1vdmVDb29raWVzKFgsVSxxKXtyZXR1cm4gdGhpcy5pZHhbWF0mJihVP2RlbGV0ZSB0aGlzLmlkeFtYXVtVXTpkZWxl'@; put 'dGUgdGhpcy5pZHhbWF0pLHEobnVsbCl9cmVtb3ZlQWxsQ29va2llcyhYKXtyZXR1cm4gdGhpcy5pZHg9T2JqZWN0LmNyZWF0ZShudWxsKSxYKG51bGwpfWdldEFsbENvb2tpZXMoWCl7Y29uc3QgVT1bXSxxPXRoaXMuaWR4O09iamVjdC5rZXlzKHEpLmZvckVhY2goZWU9PntPYmplY3Qua2V5'@; put 'cyhxW2VlXSkuZm9yRWFjaCh0ZT0+e09iamVjdC5rZXlzKHFbZWVdW3RlXSkuZm9yRWFjaChvZT0+e251bGwhPT1vZSYmVS5wdXNoKHFbZWVdW3RlXVtvZV0pfSl9KX0pLFUuc29ydCgoZWUsdGUpPT4oZWUuY3JlYXRpb25JbmRleHx8MCktKHRlLmNyZWF0aW9uSW5kZXh8fDApKSxYKG51bGws'@; put 'VSl9fWZ1bmN0aW9uIEIoWSl7Y29uc3QgWD1PYmplY3Qua2V5cyhZKTtpZigwPT09WC5sZW5ndGgpcmV0dXJuIltPYmplY3Q6IG51bGwgcHJvdG90eXBlXSB7fSI7bGV0IFU9IltPYmplY3Q6IG51bGwgcHJvdG90eXBlXSB7XG4iO3JldHVybiBPYmplY3Qua2V5cyhZKS5mb3JFYWNoKChxLGVl'@; put 'KT0+e1UrPWZ1bmN0aW9uKHRlLG9lKXtsZXQgaGU9YCAgJyR7dGV9JzogW09iamVjdDogbnVsbCBwcm90b3R5cGVdIHtcbmA7cmV0dXJuIE9iamVjdC5rZXlzKG9lKS5mb3JFYWNoKCh1ZSxjZSxHKT0+e2hlKz1mdW5jdGlvbihiLEQpe2NvbnN0IEg9IiAgICAiO2xldCBOPWAke0h9JyR7Yn0n'@; put 'OiBbT2JqZWN0OiBudWxsIHByb3RvdHlwZV0ge1xuYDtyZXR1cm4gT2JqZWN0LmtleXMoRCkuZm9yRWFjaCgoZyxDLFMpPT57Tis9YCAgICAgICR7Z306ICR7RFtnXS5pbnNwZWN0KCl9YCxDPFMubGVuZ3RoLTEmJihOKz0iLCIpLE4rPSJcbiJ9KSxOKz1gJHtIfX1gLE59KHVlLG9lW3VlXSks'@; put 'Y2U8Ry5sZW5ndGgtMSYmKGhlKz0iLCIpLGhlKz0iXG4ifSksaGUrPSIgIH0iLGhlfShxLFlbcV0pLGVlPFgubGVuZ3RoLTEmJihVKz0iLCIpLFUrPSJcbiJ9KSxVKz0ifSIsVX1bImZpbmRDb29raWUiLCJmaW5kQ29va2llcyIsInB1dENvb2tpZSIsInVwZGF0ZUNvb2tpZSIsInJlbW92ZUNv'@; put 'b2tpZSIsInJlbW92ZUNvb2tpZXMiLCJyZW1vdmVBbGxDb29raWVzIiwiZ2V0QWxsQ29va2llcyJdLmZvckVhY2goWT0+e1YucHJvdG90eXBlW1ldPXooVi5wcm90b3R5cGVbWV0pfSksTy5tPVZ9LDg5NzE6KE0sTyk9PnsidXNlIHN0cmljdCI7Ty5VPWZ1bmN0aW9uKFIseil7cmV0dXJuIHo9'@; put 'PT1SfHwwPT09Ui5pbmRleE9mKHopJiYoIi8iPT09ei5zdWJzdHIoLTEpfHwiLyI9PT1SLnN1YnN0cih6Lmxlbmd0aCwxKSl9fSw3MzI0OihNLE8sUik9PnsidXNlIHN0cmljdCI7Y29uc3Qgej1SKDc1Mik7Ty5wZXJtdXRlRG9tYWluPWZ1bmN0aW9uKEssSSl7Y29uc3Qgaz16LmdldFB1Ymxp'@; put 'Y1N1ZmZpeChLLHthbGxvd1NwZWNpYWxVc2VEb21haW46SX0pO2lmKCFrKXJldHVybiBudWxsO2lmKGs9PUspcmV0dXJuW0tdOyIuIj09Sy5zbGljZSgtMSkmJihLPUsuc2xpY2UoMCwtMSkpO2NvbnN0IEU9Sy5zbGljZSgwLC0oay5sZW5ndGgrMSkpLnNwbGl0KCIuIikucmV2ZXJzZSgpO2xl'@; put 'dCBqPWs7Y29uc3QgVj1bal07Zm9yKDtFLmxlbmd0aDspaj1gJHtFLnNoaWZ0KCl9LiR7an1gLFYucHVzaChqKTtyZXR1cm4gVn19LDc1MjooTSxPLFIpPT57InVzZSBzdHJpY3QiO2NvbnN0IHo9Uig2MjQ0KSxLPVsibG9jYWwiLCJleGFtcGxlIiwiaW52YWxpZCIsImxvY2FsaG9zdCIsInRl'@; put 'c3QiXSxJPVsibG9jYWxob3N0IiwiaW52YWxpZCJdO08uZ2V0UHVibGljU3VmZml4PWZ1bmN0aW9uKGssRT17fSl7Y29uc3Qgaj1rLnNwbGl0KCIuIiksVj1qW2oubGVuZ3RoLTFdLFk9ISFFLmlnbm9yZUVycm9yO2lmKEUuYWxsb3dTcGVjaWFsVXNlRG9tYWluJiZLLmluY2x1ZGVzKFYpKXtp'@; put 'ZihqLmxlbmd0aD4xKXJldHVybmAke2pbai5sZW5ndGgtMl19LiR7Vn1gO2lmKEkuaW5jbHVkZXMoVikpcmV0dXJuYCR7Vn1gfWlmKCFZJiZLLmluY2x1ZGVzKFYpKXRocm93IG5ldyBFcnJvcihgQ29va2llIGhhcyBkb21haW4gc2V0IHRvIHRoZSBwdWJsaWMgc3VmZml4ICIke1Z9IiB3aGlj'@; put 'aCBpcyBhIHNwZWNpYWwgdXNlIGRvbWFpbi4gVG8gYWxsb3cgdGhpcywgY29uZmlndXJlIHlvdXIgQ29va2llSmFyIHdpdGgge2FsbG93U3BlY2lhbFVzZURvbWFpbjp0cnVlLCByZWplY3RQdWJsaWNTdWZmaXhlczogZmFsc2V9LmApO3JldHVybiB6LmdldChrKX19LDIyMjQ6KE0sTyk9Pnsi'@; put 'dXNlIHN0cmljdCI7Ty55PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zeW5jaHJvbm91cz0hMX1maW5kQ29va2llKFIseixLLEkpe3Rocm93IG5ldyBFcnJvcigiZmluZENvb2tpZSBpcyBub3QgaW1wbGVtZW50ZWQiKX1maW5kQ29va2llcyhSLHosSyxJKXt0aHJvdyBuZXcgRXJyb3IoImZp'@; put 'bmRDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXB1dENvb2tpZShSLHope3Rocm93IG5ldyBFcnJvcigicHV0Q29va2llIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXVwZGF0ZUNvb2tpZShSLHosSyl7dGhyb3cgbmV3IEVycm9yKCJ1cGRhdGVDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9'@; put 'cmVtb3ZlQ29va2llKFIseixLLEkpe3Rocm93IG5ldyBFcnJvcigicmVtb3ZlQ29va2llIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXJlbW92ZUNvb2tpZXMoUix6LEspe3Rocm93IG5ldyBFcnJvcigicmVtb3ZlQ29va2llcyBpcyBub3QgaW1wbGVtZW50ZWQiKX1yZW1vdmVBbGxDb29raWVzKFIp'@; put 'e3Rocm93IG5ldyBFcnJvcigicmVtb3ZlQWxsQ29va2llcyBpcyBub3QgaW1wbGVtZW50ZWQiKX1nZXRBbGxDb29raWVzKFIpe3Rocm93IG5ldyBFcnJvcigiZ2V0QWxsQ29va2llcyBpcyBub3QgaW1wbGVtZW50ZWQgKHRoZXJlZm9yZSBqYXIgY2Fubm90IGJlIHNlcmlhbGl6ZWQpIil9fX0s'@; put 'MTI2OTooTSxPLFIpPT57ZnVuY3Rpb24geigpe3RyeXtyZXR1cm4gUig5NTM5KX1jYXRjaHtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gSygpe3JldHVybiBTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpfU8uZ2V0VXRpbEluc3BlY3Q9ZnVuY3Rpb24oSSxrPXt9KXtjb25z'@; put 'dCBFPShrLnJlcXVpcmVVdGlsfHx6KSgpO3JldHVybiBmdW5jdGlvbihqLFYsQil7cmV0dXJuIEU/RS5pbnNwZWN0KGosVixCKTpJKGopfX0sTy5nZXRDdXN0b21JbnNwZWN0U3ltYm9sPWZ1bmN0aW9uKEk9e30pe3JldHVybihJLmxvb2t1cEN1c3RvbUluc3BlY3RTeW1ib2x8fEspKCl8fGZ1'@; put 'bmN0aW9uKGspe2NvbnN0IEU9KGsucmVxdWlyZVV0aWx8fHopKCk7cmV0dXJuIEU/RS5pbnNwZWN0LmN1c3RvbTpudWxsfShJKX19LDc2NTI6KE0sTyk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gUihrKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Yga31mdW5jdGlvbiB6KGspe3JldHVybiJz'@; put 'dHJpbmciPT10eXBlb2Yga3x8ayBpbnN0YW5jZW9mIFN0cmluZ31mdW5jdGlvbiBLKGspe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09dG9TdHJpbmcuY2FsbChrKX1jbGFzcyBJIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoLi4uRSl7c3VwZXIoLi4uRSl9fU8uUGFyYW1ldGVyRXJyb3I9'@; put 'SSxPLmlzRnVuY3Rpb249UixPLmlzTm9uRW1wdHlTdHJpbmc9ZnVuY3Rpb24oayl7cmV0dXJuIHooaykmJiIiIT09a30sTy5pc0RhdGU9ZnVuY3Rpb24oayl7cmV0dXJuIGZ1bmN0aW9uKEUsail7dHJ5e3JldHVybiBFIGluc3RhbmNlb2Ygan1jYXRjaHtyZXR1cm4hMX19KGssRGF0ZSkmJiJu'@; put 'dW1iZXIiPT10eXBlb2YoRT1rLmdldFRpbWUoKSkmJkUlMT09MDt2YXIgRX0sTy5pc0VtcHR5U3RyaW5nPWZ1bmN0aW9uKGspe3JldHVybiIiPT09a3x8ayBpbnN0YW5jZW9mIFN0cmluZyYmIiI9PT1rLnRvU3RyaW5nKCl9LE8uaXNTdHJpbmc9eixPLmlzT2JqZWN0PUssTy52YWxpZGF0ZT1m'@; put 'dW5jdGlvbihrLEUsail7aWYoUihFKXx8KGo9RSxFPW51bGwpLEsoail8fChqPXtFcnJvcjoiRmFpbGVkIENoZWNrIn0pLCFrKXtpZighRSl0aHJvdyBuZXcgSShqKTtFKG5ldyBJKGopKX19fSw0NTY6TT0+e00uZXhwb3J0cz0iNC4xLjMifSw3MDQxOihNLE8pPT57InVzZSBzdHJpY3QiO08u'@; put 'ZnJvbUNhbGxiYWNrPWZ1bmN0aW9uKFIpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV0pcmV0dXJuIG5ldyBQcm9taXNlKCh6LEspPT57YXJndW1lbnRzW2FyZ3VtZW50cy5s'@; put 'ZW5ndGhdPShJLGspPT57aWYoSSlyZXR1cm4gSyhJKTt6KGspfSxhcmd1bWVudHMubGVuZ3RoKyssUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTtSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIm5hbWUiLHt2YWx1ZTpSLm5hbWV9KX0sTy5mcm9tUHJvbWlzZT1mdW5jdGlvbihSKXtyZXR1cm4g'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7Y29uc3Qgej1hcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgeilyZXR1cm4gUi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZGVsZXRlIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoLTFdLGFy'@; put 'Z3VtZW50cy5sZW5ndGgtLSxSLmFwcGx5KHRoaXMsYXJndW1lbnRzKS50aGVuKEs9PnoobnVsbCxLKSx6KX0sIm5hbWUiLHt2YWx1ZTpSLm5hbWV9KX19LDY3MjpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IHo9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oVil7Zm9yKHZhciBCLFk9MSxYPWFyZ3VtZW50cy5sZW5ndGg7WTxYO1krKylmb3IodmFyIFUgaW4gQj1hcmd1bWVudHNbWV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEIsVSkmJihWW1VdPUJbVV0pO3JldHVybiBWfSx6'@; put 'LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sSz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oVixCLFksWCl7cmV0dXJuIG5ldyhZfHwoWT1Qcm9taXNlKSkoZnVuY3Rpb24oVSxxKXtmdW5jdGlvbiBlZShzZSl7dHJ5e29lKFgubmV4dChzZSkpfWNhdGNoKGhlKXtxKGhlKX19ZnVuY3Rp'@; put 'b24gdGUoc2Upe3RyeXtvZShYLnRocm93KHNlKSl9Y2F0Y2goaGUpe3EoaGUpfX1mdW5jdGlvbiBvZShzZSl7dmFyIGhlO3NlLmRvbmU/VShzZS52YWx1ZSk6KGhlPXNlLnZhbHVlLGhlIGluc3RhbmNlb2YgWT9oZTpuZXcgWShmdW5jdGlvbih1ZSl7dWUoaGUpfSkpLnRoZW4oZWUsdGUpfW9l'@; put 'KChYPVguYXBwbHkoVixCfHxbXSkpLm5leHQoKSl9KX0sST10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihWLEIpe3ZhciBZLFgsVSxxLGVlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJlVbMF0pdGhyb3cgVVsxXTtyZXR1cm4gVVsxXX0sdHJ5czpbXSxvcHM6W119O3Jl'@; put 'dHVybiBxPXtuZXh0OnRlKDApLHRocm93OnRlKDEpLHJldHVybjp0ZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSkscTtmdW5jdGlvbiB0ZShvZSl7cmV0dXJuIGZ1bmN0aW9uKHNlKXtyZXR1cm4gZnVu'@; put 'Y3Rpb24oaGUpe2lmKFkpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7ZWU7KXRyeXtpZihZPTEsWCYmKFU9MiZoZVswXT9YLnJldHVybjpoZVswXT9YLnRocm93fHwoKFU9WC5yZXR1cm4pJiZVLmNhbGwoWCksMCk6WC5uZXh0KSYm'@; put 'IShVPVUuY2FsbChYLGhlWzFdKSkuZG9uZSlyZXR1cm4gVTtzd2l0Y2goWD0wLFUmJihoZT1bMiZoZVswXSxVLnZhbHVlXSksaGVbMF0pe2Nhc2UgMDpjYXNlIDE6VT1oZTticmVhaztjYXNlIDQ6cmV0dXJuIGVlLmxhYmVsKysse3ZhbHVlOmhlWzFdLGRvbmU6ITF9O2Nhc2UgNTplZS5sYWJl'@; put 'bCsrLFg9aGVbMV0saGU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpoZT1lZS5vcHMucG9wKCksZWUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKFU9KFU9ZWUudHJ5cykubGVuZ3RoPjAmJlVbVS5sZW5ndGgtMV0pfHw2IT09aGVbMF0mJjIhPT1oZVswXSkpe2VlPTA7Y29udGludWV9'@; put 'aWYoMz09PWhlWzBdJiYoIVV8fGhlWzFdPlVbMF0mJmhlWzFdPFVbM10pKXtlZS5sYWJlbD1oZVsxXTticmVha31pZig2PT09aGVbMF0mJmVlLmxhYmVsPFVbMV0pe2VlLmxhYmVsPVVbMV0sVT1oZTticmVha31pZihVJiZlZS5sYWJlbDxVWzJdKXtlZS5sYWJlbD1VWzJdLGVlLm9wcy5wdXNo'@; put 'KGhlKTticmVha31VWzJdJiZlZS5vcHMucG9wKCksZWUudHJ5cy5wb3AoKTtjb250aW51ZX1oZT1CLmNhbGwoVixlZSl9Y2F0Y2godWUpe2hlPVs2LHVlXSxYPTB9ZmluYWxseXtZPVU9MH1pZig1JmhlWzBdKXRocm93IGhlWzFdO3JldHVybnt2YWx1ZTpoZVswXT9oZVsxXTp2b2lkIDAsZG9u'@; put 'ZTohMH19KFtvZSxzZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLkNvbnRleHRNYW5hZ2VyPXZvaWQgMDt2YXIgaz1SKDU5MjgpLEU9Uig5Nzc4KSxqPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gVihCLFkpe3RoaXMuc2VydmVyVXJsPUIsdGhp'@; put 'cy5yZXF1ZXN0Q2xpZW50PVksdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzPVsiQ0FTIEZvcm1hdHMgc2VydmljZSBjb21wdXRlIGNvbnRleHQiLCJEYXRhIE1pbmluZyBjb21wdXRlIGNvbnRleHQiLCJJbXBvcnQgOSBzZXJ2aWNlIGNvbXB1dGUgY29udGV4dCIsIlNBUyBKb2IgRXhlY3V0'@; put 'aW9uIGNvbXB1dGUgY29udGV4dCIsIlNBUyBNb2RlbCBNYW5hZ2VyIGNvbXB1dGUgY29udGV4dCIsIlNBUyBTdHVkaW8gY29tcHV0ZSBjb250ZXh0IiwiU0FTIFZpc3VhbCBGb3JlY2FzdGluZyBjb21wdXRlIGNvbnRleHQiXSx0aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzPVsiQ0FTIEZv'@; put 'cm1hdHMgc2VydmljZSBsYXVuY2hlciBjb250ZXh0IiwiRGF0YSBNaW5pbmcgbGF1bmNoZXIgY29udGV4dCIsIkltcG9ydCA5IHNlcnZpY2UgbGF1bmNoZXIgY29udGV4dCIsIkpvYiBGbG93IEV4ZWN1dGlvbiBsYXVuY2hlciBjb250ZXh0IiwiU0FTIEpvYiBFeGVjdXRpb24gbGF1bmNoZXIg'@; put 'Y29udGV4dCIsIlNBUyBNb2RlbCBNYW5hZ2VyIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgU3R1ZGlvIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgVmlzdWFsIEZvcmVjYXN0aW5nIGxhdW5jaGVyIGNvbnRleHQiXSxCJiYoMCxrLmlzVXJsKShCKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KFYucHJvdG90eXBlLCJnZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0c30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVi5wcm90b3R5cGUsImdldERl'@; put 'ZmF1bHRMYXVuY2hlckNvbnRleHRzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdExhdW5jaGVyQ29udGV4dHN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksVi5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRzPWZ1bmN0aW9uKEIpe3JldHVybiBLKHRoaXMs'@; put 'dm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBZO3JldHVybiBJKHRoaXMsZnVuY3Rpb24oWCl7c3dpdGNoKFgubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAw'@; put 'MDAiKSxCKS5jYXRjaChmdW5jdGlvbihVKXt0aHJvdygwLEUucHJlZml4TWVzc2FnZSkoVSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBjb21wdXRlIGNvbnRleHRzLiAiKX0pXTtjYXNlIDE6cmV0dXJuWzIsKChZPVguc2VudCgpLnJlc3VsdCkmJlkuaXRlbXM/WS5pdGVtczpbXSkubWFwKGZ1bmN0'@; put 'aW9uKFUpe3JldHVybntjcmVhdGVkQnk6VS5jcmVhdGVkQnksaWQ6VS5pZCxuYW1lOlUubmFtZSx2ZXJzaW9uOlUudmVyc2lvbixhdHRyaWJ1dGVzOnt9fX0pXX19KX0pfSxWLnByb3RvdHlwZS5nZXRMYXVuY2hlckNvbnRleHRzPWZ1bmN0aW9uKEIpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZv'@; put 'aWQgMCxmdW5jdGlvbigpe3ZhciBZO3JldHVybiBJKHRoaXMsZnVuY3Rpb24oWCl7c3dpdGNoKFgubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2xhdW5jaGVyL2NvbnRleHRzP2xpbWl0PTEwMDAwIiksQiku'@; put 'Y2F0Y2goZnVuY3Rpb24oVSl7dGhyb3coMCxFLnByZWZpeE1lc3NhZ2UpKFUsIkVycm9yIHdoaWxlIGdldHRpbmcgbGF1bmNoZXIgY29udGV4dHMuICIpfSldO2Nhc2UgMTpyZXR1cm5bMiwoKFk9WC5zZW50KCkucmVzdWx0KSYmWS5pdGVtcz9ZLml0ZW1zOltdKS5tYXAoZnVuY3Rpb24oVSl7'@; put 'cmV0dXJue2NyZWF0ZWRCeTpVLmNyZWF0ZWRCeSxpZDpVLmlkLG5hbWU6VS5uYW1lLHZlcnNpb246VS52ZXJzaW9uLGF0dHJpYnV0ZXM6e319fSldfX0pfSl9LFYucHJvdG90eXBlLmNyZWF0ZUNvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKEIsWSxYLFUscSxlZSl7cmV0dXJuIEsodGhpcyx2b2lk'@; put 'IDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHRlLG9lLHNlLGhlLHVlO3JldHVybiBJKHRoaXMsZnVuY3Rpb24oY2Upe3N3aXRjaChjZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnZhbGlkYXRlQ29udGV4dE5hbWUoQiksdGhpcy5pc0RlZmF1bHRDb250ZXh0KEIsdGhpcy5kZWZhdWx0Q29t'@; put 'cHV0ZUNvbnRleHRzLCJDb21wdXRlIGNvbnRleHQgJyIuY29uY2F0KEIsIicgYWxyZWFkeSBleGlzdHMuIikpLFs0LHRoaXMuZ2V0Q29tcHV0ZUNvbnRleHRzKHEpXTtjYXNlIDE6aWYoY2Uuc2VudCgpLmZpbmQoZnVuY3Rpb24oRyl7cmV0dXJuIEcubmFtZT09PUJ9KSl0aHJvdyBuZXcgRXJy'@; put 'b3IoIkNvbXB1dGUgY29udGV4dCAnIi5jb25jYXQoQiwiJyBhbHJlYWR5IGV4aXN0cy4iKSk7cmV0dXJuIFk/dGhpcy5kZWZhdWx0TGF1bmNoZXJDb250ZXh0cy5pbmNsdWRlcyhZKT9bMyw0XTpbNCx0aGlzLmdldExhdW5jaGVyQ29udGV4dHMocSldOlszLDRdO2Nhc2UgMjpyZXR1cm4gY2Uu'@; put 'c2VudCgpLmZpbmQoZnVuY3Rpb24oRyl7cmV0dXJuIEcubmFtZT09PVl9KT9bMyw0XToodGU9IlRoZSBsYXVuY2hlciBjb250ZXh0IGZvciAiLmNvbmNhdChZKSxbNCx0aGlzLmNyZWF0ZUxhdW5jaGVyQ29udGV4dChZLHRlLCJkaXJlY3QiLHEpLmNhdGNoKGZ1bmN0aW9uKEcpe3Rocm93IG5l'@; put 'dyBFcnJvcigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgbGF1bmNoZXIgY29udGV4dC4gIi5jb25jYXQoRykpfSldKTtjYXNlIDM6aWYoIShvZT1jZS5zZW50KCkpfHwhb2UubmFtZSl0aHJvdyBuZXcgRXJyb3IoIkVycm9yIHdoaWxlIGNyZWF0aW5nIGxhdW5jaGVyIGNvbnRleHQuIik7WT1vZS5u'@; put 'YW1lLGNlLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiBzZT17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxxJiYoc2UuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KHEpKSxoZT17cmV1c2VTZXJ2ZXJQcm9jZXNzZXM6ITB9LFgmJihoZT16KHooe30saGUpLHtydW5TZXJ2'@; put 'ZXJBczpYfSkpLHVlPXtuYW1lOkIsbGF1bmNoQ29udGV4dDp7Y29udGV4dE5hbWU6WXx8IiJ9LGF0dHJpYnV0ZXM6aGV9LGVlJiZlZS5sZW5ndGg/dWUuYXV0aG9yaXplZFVzZXJzPWVlOnVlLmF1dGhvcml6ZUFsbEF1dGhlbnRpY2F0ZWRVc2Vycz0hMCxVJiYodWUuZW52aXJvbm1lbnQ9e2F1'@; put 'dG9FeGVjTGluZXM6VX0pLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMiKSx1ZSxxKS5jYXRjaChmdW5jdGlvbihHKXt0aHJvdygwLEUucHJlZml4TWVzc2FnZSkoRywiRXJyb3Igd2hpbGUgY3JlYXRpbmcgY29t'@; put 'cHV0ZSBjb250ZXh0LiAiKX0pXTtjYXNlIDU6cmV0dXJuWzIsY2Uuc2VudCgpLnJlc3VsdF19fSl9KX0sVi5wcm90b3R5cGUuY3JlYXRlTGF1bmNoZXJDb250ZXh0PWZ1bmN0aW9uKEIsWSxYLFUpe3JldHVybiB2b2lkIDA9PT1YJiYoWD0iZGlyZWN0IiksSyh0aGlzLHZvaWQgMCx2b2lkIDAs'@; put 'ZnVuY3Rpb24oKXt2YXIgcSxlZTtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKHRlKXtzd2l0Y2godGUubGFiZWwpe2Nhc2UgMDppZighQil0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRDb250ZXh0KEIsdGhpcy5kZWZhdWx0'@; put 'TGF1bmNoZXJDb250ZXh0cywiTGF1bmNoZXIgY29udGV4dCAnIi5jb25jYXQoQiwiJyBhbHJlYWR5IGV4aXN0cy4iKSksWzQsdGhpcy5nZXRMYXVuY2hlckNvbnRleHRzKFUpXTtjYXNlIDE6aWYodGUuc2VudCgpLmZpbmQoZnVuY3Rpb24ob2Upe3JldHVybiBvZS5uYW1lPT09Qn0pKXRocm93'@; put 'IG5ldyBFcnJvcigiTGF1bmNoZXIgY29udGV4dCAnIi5jb25jYXQoQiwiJyBhbHJlYWR5IGV4aXN0cy4iKSk7cmV0dXJuIHE9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sVSYmKHEuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KFUpKSxlZT17bmFtZTpCLGRlc2Ny'@; put 'aXB0aW9uOlksbGF1bmNoVHlwZTpYfSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9sYXVuY2hlci9jb250ZXh0cyIpLGVlLFUpLmNhdGNoKGZ1bmN0aW9uKG9lKXt0aHJvdygwLEUucHJlZml4TWVzc2FnZSkob2UsIkVycm9yIHdoaWxlIGNy'@; put 'ZWF0aW5nIGxhdW5jaGVyIGNvbnRleHQuICIpfSldO2Nhc2UgMjpyZXR1cm5bMix0ZS5zZW50KCkucmVzdWx0XX19KX0pfSxWLnByb3RvdHlwZS5lZGl0Q29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oQixZLFgpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBVLHEs'@; put 'ZWUsdGU7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihvZSl7c3dpdGNoKG9lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMudmFsaWRhdGVDb250ZXh0TmFtZShCKSx0aGlzLmlzRGVmYXVsdENvbnRleHQoQix0aGlzLmRlZmF1bHRDb21wdXRlQ29udGV4dHMsIkVkaXRpbmcgZGVmYXVsdCBTQVMg'@; put 'Y29tcHV0ZSBjb250ZXh0cyBpcyBub3QgYWxsb3dlZC4iLCEwKSxbNCx0aGlzLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKEIsWCldO2Nhc2UgMTpyZXR1cm4oVT1vZS5zZW50KCkpP1szLDNdOls0LHRoaXMuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkKFkuaWQsWCldO2Nhc2UgMjpVPW9lLnNlbnQo'@; put 'KSxvZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMvIikuY29uY2F0KFUuaWQpLFgpLmNhdGNoKGZ1bmN0aW9uKHNlKXt0aHJvdyBzZSYmNDA0PT09c2Uuc3RhdHVzP25ldyBF'@; put 'cnJvcigiVGhlIGNvbnRleHQgJyIuY29uY2F0KEIsIicgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci4iKSk6c2V9KV07Y2FzZSA0OnJldHVybiBxPW9lLnNlbnQoKSx0ZT1xLmV0YWcsWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnB1dCgiL2NvbXB1dGUvY29udGV4dHMvIi5jb25jYXQoKGVl'@; put 'PXEucmVzdWx0KS5pZCkseih6KHooe30sZWUpLFkpLHthdHRyaWJ1dGVzOnooeih7fSxlZS5hdHRyaWJ1dGVzKSxZLmF0dHJpYnV0ZXMpfSksWCx7IklmLU1hdGNoIjp0ZX0pXTtjYXNlIDU6cmV0dXJuWzIsb2Uuc2VudCgpXX19KX0pfSxWLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5'@; put 'TmFtZT1mdW5jdGlvbihCLFkpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBYO3JldHVybiBJKHRoaXMsZnVuY3Rpb24oVSl7c3dpdGNoKFUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZl'@; put 'clVybCwnL2NvbXB1dGUvY29udGV4dHM/ZmlsdGVyPWVxKG5hbWUsICInKS5jb25jYXQoQiwnIiknKSxZKS5jYXRjaChmdW5jdGlvbihxKXt0aHJvdygwLEUucHJlZml4TWVzc2FnZSkocSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBjb21wdXRlIGNvbnRleHQgYnkgbmFtZS4gIil9KV07Y2FzZSAx'@; put 'OmlmKCEoWD1VLnNlbnQoKS5yZXN1bHQpfHwhWC5pdGVtc3x8IVguaXRlbXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVGhlIGNvbnRleHQgJyIuY29uY2F0KEIsIicgd2FzIG5vdCBmb3VuZCBhdCAnIikuY29uY2F0KHRoaXMuc2VydmVyVXJsLCInLiIpKTtyZXR1cm5bMixYLml0ZW1zWzBd'@; put 'XX19KX0pfSxWLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5SWQ9ZnVuY3Rpb24oQixZKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKFgpe3N3aXRjaChYLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0'@; put 'Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzLyIpLmNvbmNhdChCKSxZKS5jYXRjaChmdW5jdGlvbihVKXt0aHJvdygwLEUucHJlZml4TWVzc2FnZSkoVSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBjb21wdXRlIGNvbnRleHQgYnkgaWQuICIpfSld'@; put 'O2Nhc2UgMTpyZXR1cm5bMixYLnNlbnQoKS5yZXN1bHRdfX0pfSl9LFYucHJvdG90eXBlLmdldEV4ZWN1dGFibGVDb250ZXh0cz1mdW5jdGlvbihCLFkpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBYLFUscSxlZSx0ZSxvZSxzZSx1ZSxjZTtyZXR1cm4gSSh0'@; put 'aGlzLGZ1bmN0aW9uKEcpe3N3aXRjaChHLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzP2xpbWl0PTEwMDAwIiksWT8uYWNjZXNzX3Rva2VuKS5jYXRjaChmdW5jdGlvbihiKXt0'@; put 'aHJvdygwLEUucHJlZml4TWVzc2FnZSkoYiwiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgY29tcHV0ZSBjb250ZXh0cy4iKX0pXTtjYXNlIDE6WD1HLnNlbnQoKS5yZXN1bHQscT1bXSxlZT0oVT1YLml0ZW1zfHxbXSkubWFwKGZ1bmN0aW9uKGIpe3ZhciBEPVsiJXB1dCAmPXN5c3VzZXJpZDsiXTty'@; put 'ZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQigidGVzdC0iLmNvbmNhdChiLm5hbWUpLEQsYi5uYW1lLFksbnVsbCwhMSwhMCwhMCkuY2F0Y2goZnVuY3Rpb24oSCl7cmV0dXJuIEh9KX19KSx0ZT1bXSxvZT0wLHNlPWVlLEcubGFiZWw9MjtjYXNlIDI6cmV0dXJuIG9lPHNlLmxlbmd0aD8oY2U9'@; put 'KHVlPXRlKS5wdXNoLFs0LCgwLHNlW29lXSkoKV0pOlszLDVdO2Nhc2UgMzpjZS5hcHBseSh1ZSxbRy5zZW50KCldKSxHLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiBvZSsrLFszLDJdO2Nhc2UgNTpyZXR1cm4gdGUuZm9yRWFjaChmdW5jdGlvbihiLEQpe2lmKGImJmIubG9nKXRyeXt2YXIgTj0i'@; put 'IixnPWIubG9nLnNwbGl0KCJcbiIpLmZpbmQoZnVuY3Rpb24oQyl7cmV0dXJuIEMuc3RhcnRzV2l0aCgiU1lTVVNFUklEPSIpfSk7ZyYmKE49Zy5yZXBsYWNlKCJTWVNVU0VSSUQ9IiwiIikscS5wdXNoKHtjcmVhdGVkQnk6VVtEXS5jcmVhdGVkQnksaWQ6VVtEXS5pZCxuYW1lOlVbRF0ubmFt'@; put 'ZSx2ZXJzaW9uOlVbRF0udmVyc2lvbixhdHRyaWJ1dGVzOntzeXNVc2VySWQ6Tn19KSl9Y2F0Y2goQyl7dGhyb3cgQ319KSxbMixxXX19KX0pfSxWLnByb3RvdHlwZS5kZWxldGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihCLFkpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlv'@; put 'bigpe3ZhciBYLFU7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihxKXtzd2l0Y2gocS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnZhbGlkYXRlQ29udGV4dE5hbWUoQiksdGhpcy5pc0RlZmF1bHRDb250ZXh0KEIsdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzLCJEZWxldGluZyBkZWZhdWx0'@; put 'IFNBUyBjb21wdXRlIGNvbnRleHRzIGlzIG5vdCBhbGxvd2VkLiIsITApLFg9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sWSYmKFguQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KFkpKSxbNCx0aGlzLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKEIsWSldO2Nhc2Ug'@; put 'MTpyZXR1cm4gVT1xLnNlbnQoKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZGVsZXRlKCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMvIikuY29uY2F0KFUuaWQpLFkpXTtjYXNlIDI6cmV0dXJuWzIscS5zZW50KCldfX0pfSl9LFYucHJvdG90eXBlLnZhbGlkYXRl'@; put 'Q29udGV4dE5hbWU9ZnVuY3Rpb24oQil7aWYoIUIpdGhyb3cgbmV3IEVycm9yKCJDb250ZXh0IG5hbWUgaXMgcmVxdWlyZWQuIil9LFYucHJvdG90eXBlLmlzRGVmYXVsdENvbnRleHQ9ZnVuY3Rpb24oQixZLFgsVSl7aWYodm9pZCAwPT09WSYmKFk9dGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRl'@; put 'eHRzKSx2b2lkIDA9PT1YJiYoWD0iIiksdm9pZCAwPT09VSYmKFU9ITEpLFkuaW5jbHVkZXMoQikpdGhyb3cgbmV3IEVycm9yKCIiLmNvbmNhdChYKS5jb25jYXQoVT8iXG5EZWZhdWx0IGNvbnRleHRzOiIrWS5tYXAoZnVuY3Rpb24ocSxlZSl7cmV0dXJuIlxuIi5jb25jYXQoZWUrMSwiLiAi'@; put 'KS5jb25jYXQocSl9KToiIikpfSxWfSgpO08uQ29udGV4dE1hbmFnZXI9an0sODMwNjpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihYLFUscSxlZSl7cmV0dXJuIG5ldyhxfHwocT1Qcm9taXNlKSkoZnVuY3Rpb24odGUs'@; put 'b2Upe2Z1bmN0aW9uIHNlKGNlKXt0cnl7dWUoZWUubmV4dChjZSkpfWNhdGNoKEcpe29lKEcpfX1mdW5jdGlvbiBoZShjZSl7dHJ5e3VlKGVlLnRocm93KGNlKSl9Y2F0Y2goRyl7b2UoRyl9fWZ1bmN0aW9uIHVlKGNlKXt2YXIgRztjZS5kb25lP3RlKGNlLnZhbHVlKTooRz1jZS52YWx1ZSxH'@; put 'IGluc3RhbmNlb2YgcT9HOm5ldyBxKGZ1bmN0aW9uKGIpe2IoRyl9KSkudGhlbihzZSxoZSl9dWUoKGVlPWVlLmFwcGx5KFgsVXx8W10pKS5uZXh0KCkpfSl9LEs9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oWCxVKXt2YXIgcSxlZSx0ZSxvZSxzZT17bGFiZWw6MCxzZW50OmZ1'@; put 'bmN0aW9uKCl7aWYoMSZ0ZVswXSl0aHJvdyB0ZVsxXTtyZXR1cm4gdGVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gb2U9e25leHQ6aGUoMCksdGhyb3c6aGUoMSkscmV0dXJuOmhlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlv'@; put 'bigpe3JldHVybiB0aGlzfSksb2U7ZnVuY3Rpb24gaGUodWUpe3JldHVybiBmdW5jdGlvbihjZSl7cmV0dXJuIGZ1bmN0aW9uKEcpe2lmKHEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7c2U7KXRyeXtpZihxPTEsZWUmJih0ZT0y'@; put 'JkdbMF0/ZWUucmV0dXJuOkdbMF0/ZWUudGhyb3d8fCgodGU9ZWUucmV0dXJuKSYmdGUuY2FsbChlZSksMCk6ZWUubmV4dCkmJiEodGU9dGUuY2FsbChlZSxHWzFdKSkuZG9uZSlyZXR1cm4gdGU7c3dpdGNoKGVlPTAsdGUmJihHPVsyJkdbMF0sdGUudmFsdWVdKSxHWzBdKXtjYXNlIDA6Y2Fz'@; put 'ZSAxOnRlPUc7YnJlYWs7Y2FzZSA0OnJldHVybiBzZS5sYWJlbCsrLHt2YWx1ZTpHWzFdLGRvbmU6ITF9O2Nhc2UgNTpzZS5sYWJlbCsrLGVlPUdbMV0sRz1bMF07Y29udGludWU7Y2FzZSA3Okc9c2Uub3BzLnBvcCgpLHNlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh0ZT0o'@; put 'dGU9c2UudHJ5cykubGVuZ3RoPjAmJnRlW3RlLmxlbmd0aC0xXSl8fDYhPT1HWzBdJiYyIT09R1swXSkpe3NlPTA7Y29udGludWV9aWYoMz09PUdbMF0mJighdGV8fEdbMV0+dGVbMF0mJkdbMV08dGVbM10pKXtzZS5sYWJlbD1HWzFdO2JyZWFrfWlmKDY9PT1HWzBdJiZzZS5sYWJlbDx0ZVsx'@; put 'XSl7c2UubGFiZWw9dGVbMV0sdGU9RzticmVha31pZih0ZSYmc2UubGFiZWw8dGVbMl0pe3NlLmxhYmVsPXRlWzJdLHNlLm9wcy5wdXNoKEcpO2JyZWFrfXRlWzJdJiZzZS5vcHMucG9wKCksc2UudHJ5cy5wb3AoKTtjb250aW51ZX1HPVUuY2FsbChYLHNlKX1jYXRjaChiKXtHPVs2LGJdLGVl'@; put 'PTB9ZmluYWxseXtxPXRlPTB9aWYoNSZHWzBdKXRocm93IEdbMV07cmV0dXJue3ZhbHVlOkdbMF0/R1sxXTp2b2lkIDAsZG9uZTohMH19KFt1ZSxjZV0pfX19LEk9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihYLFUscSl7aWYocXx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9y'@; put 'KHZhciBlZSx0ZT0wLG9lPVUubGVuZ3RoO3RlPG9lO3RlKyspIWVlJiZ0ZSBpbiBVfHwoZWV8fChlZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChVLDAsdGUpKSxlZVt0ZV09VVt0ZV0pO3JldHVybiBYLmNvbmNhdChlZXx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoVSkpfTtPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5TQVM5QXBpQ2xpZW50PXZvaWQgMDt2YXIgaz1SKDc3NTcpLEU9Uig2MjMwKSxqPVIoNzk1KSxWPVIoNTkyOCksQj1mdW5jdGlvbigpe2Z1bmN0aW9uIFgoVSxxLGVlKXt0aGlzLnNlcnZlclVybD1VLHRoaXMu'@; put 'am9ic1BhdGg9cSxVJiYoMCxWLmlzVXJsKShVKSx0aGlzLnJlcXVlc3RDbGllbnQ9bmV3IGouU2FzOVJlcXVlc3RDbGllbnQoVSxlZSl9cmV0dXJuIFgucHJvdG90eXBlLmdldENvbmZpZz1mdW5jdGlvbigpe3JldHVybntzZXJ2ZXJVcmw6dGhpcy5zZXJ2ZXJVcmx9fSxYLnByb3RvdHlwZS5z'@; put 'ZXRDb25maWc9ZnVuY3Rpb24oVSl7VSYmKHRoaXMuc2VydmVyVXJsPVUpfSxYLnByb3RvdHlwZS5leGVjdXRlU2NyaXB0PWZ1bmN0aW9uKFUscSxlZSl7cmV0dXJuIHoodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHRlLG9lLHNlLGhlLHVlLGNlLEc7cmV0dXJuIEsodGhpcyxm'@; put 'dW5jdGlvbihiKXtzd2l0Y2goYi5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5sb2dpbihxLGVlLHRoaXMuam9ic1BhdGgpXTtjYXNlIDE6cmV0dXJuIGIuc2VudCgpLHRlPVsiZGF0YSBfbnVsbF87IiwiZmlsZSBfd2Vib3V0OyIsInB1dCAnRXhlY3V0ZWQgc2Fz'@; put 'anMgcnVuJzsiLCJydW47Il0sb2U9WShJKEkoW10sVSwhMCksdGUsITApLmpvaW4oIlxuIikpLHNlPSIvVXNlciBGb2xkZXJzLyIuY29uY2F0KHEsIi9NeSBGb2xkZXIvc2FzanMvcnVubmVyIiksaGU9Im11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIrb2UuZ2V0Qm91bmRhcnkoKSx1'@; put 'ZT1vZS5nZXRMZW5ndGhTeW5jKCksY2U9eyJjYWNoZS1jb250cm9sIjoibm8tY2FjaGUiLEFjY2VwdDoiKi8qIiwiQ29udGVudC1UeXBlIjpoZSwiQ29udGVudC1MZW5ndGgiOnVlLENvbm5lY3Rpb246ImtlZXAtYWxpdmUifSxHPSIiLmNvbmNhdCh0aGlzLmpvYnNQYXRoLCIvPyIpLmNvbmNh'@; put 'dCgiX3Byb2dyYW09IitzZSsiJl9kZWJ1Zz1sb2ciKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdChHLG9lLHZvaWQgMCxoZSxjZSldO2Nhc2UgMjpyZXR1cm5bMixiLnNlbnQoKS5yZXN1bHRdfX0pfSl9LFh9KCk7Ty5TQVM5QXBpQ2xpZW50PUI7dmFyIFk9ZnVuY3Rpb24oWCl7dmFyIFU9'@; put 'bmV3IEUscT0ic2FzanMtZXhlY3V0ZS1zYXM5LSIuY29uY2F0KCgwLGsuZ2VuZXJhdGVUaW1lc3RhbXApKCIiKSwiLnNhcyIpO3JldHVybiBVLmFwcGVuZChxLFgse2ZpbGVuYW1lOnEsY29udGVudFR5cGU6InRleHQvcGxhaW4ifSksVX19LDk4MjE6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3Ry'@; put 'aWN0Ijt2YXIgej1SKDQxNTUpLEs9Uig1MTA4KSxJPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihjZSxHLGIsRCl7cmV0dXJuIG5ldyhifHwoYj1Qcm9taXNlKSkoZnVuY3Rpb24oSCxOKXtmdW5jdGlvbiBnKHYpe3RyeXtTKEQubmV4dCh2KSl9Y2F0Y2gocCl7TihwKX19ZnVuY3Rp'@; put 'b24gQyh2KXt0cnl7UyhELnRocm93KHYpKX1jYXRjaChwKXtOKHApfX1mdW5jdGlvbiBTKHYpe3ZhciBwO3YuZG9uZT9IKHYudmFsdWUpOihwPXYudmFsdWUscCBpbnN0YW5jZW9mIGI/cDpuZXcgYihmdW5jdGlvbih3KXt3KHApfSkpLnRoZW4oZyxDKX1TKChEPUQuYXBwbHkoY2UsR3x8W10p'@; put 'KS5uZXh0KCkpfSl9LGs9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oY2UsRyl7dmFyIGIsRCxILE4sZz17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZIWzBdKXRocm93IEhbMV07cmV0dXJuIEhbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gTj17bmV4dDpDKDApLHRo'@; put 'cm93OkMoMSkscmV0dXJuOkMoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihOW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLE47ZnVuY3Rpb24gQyhTKXtyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuIGZ1bmN0aW9uKHApe2lmKGIpdGhyb3cgbmV3IFR5'@; put 'cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7ZzspdHJ5e2lmKGI9MSxEJiYoSD0yJnBbMF0/RC5yZXR1cm46cFswXT9ELnRocm93fHwoKEg9RC5yZXR1cm4pJiZILmNhbGwoRCksMCk6RC5uZXh0KSYmIShIPUguY2FsbChELHBbMV0pKS5kb25lKXJldHVy'@; put 'biBIO3N3aXRjaChEPTAsSCYmKHA9WzImcFswXSxILnZhbHVlXSkscFswXSl7Y2FzZSAwOmNhc2UgMTpIPXA7YnJlYWs7Y2FzZSA0OnJldHVybiBnLmxhYmVsKysse3ZhbHVlOnBbMV0sZG9uZTohMX07Y2FzZSA1OmcubGFiZWwrKyxEPXBbMV0scD1bMF07Y29udGludWU7Y2FzZSA3OnA9Zy5v'@; put 'cHMucG9wKCksZy50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoSD0oSD1nLnRyeXMpLmxlbmd0aD4wJiZIW0gubGVuZ3RoLTFdKXx8NiE9PXBbMF0mJjIhPT1wWzBdKSl7Zz0wO2NvbnRpbnVlfWlmKDM9PT1wWzBdJiYoIUh8fHBbMV0+SFswXSYmcFsxXTxIWzNdKSl7Zy5sYWJl'@; put 'bD1wWzFdO2JyZWFrfWlmKDY9PT1wWzBdJiZnLmxhYmVsPEhbMV0pe2cubGFiZWw9SFsxXSxIPXA7YnJlYWt9aWYoSCYmZy5sYWJlbDxIWzJdKXtnLmxhYmVsPUhbMl0sZy5vcHMucHVzaChwKTticmVha31IWzJdJiZnLm9wcy5wb3AoKSxnLnRyeXMucG9wKCk7Y29udGludWV9cD1HLmNhbGwo'@; put 'Y2UsZyl9Y2F0Y2godyl7cD1bNix3XSxEPTB9ZmluYWxseXtiPUg9MH1pZig1JnBbMF0pdGhyb3cgcFsxXTtyZXR1cm57dmFsdWU6cFswXT9wWzFdOnZvaWQgMCxkb25lOiEwfX0oW1Msdl0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLlNB'@; put 'U1ZpeWFBcGlDbGllbnQ9dm9pZCAwO3ZhciBFPVIoNTkyOCksaj1SKDYyMzApLFY9UigxMzk1KSxCPVIoNjkwMyksWT1SKDY3MiksWD1SKDkwOTcpLFU9Uig5Nzc4KSxxPVIoMTM0MyksZWU9Uig3MDQpLHRlPVIoNjQ5Niksb2U9UigxNjIyKSxzZT1SKDM1NjkpLGhlPVIoMzY2KSx1ZT1mdW5j'@; put 'dGlvbigpe2Z1bmN0aW9uIGNlKEcsYixELEgpe3RoaXMuc2VydmVyVXJsPUcsdGhpcy5yb290Rm9sZGVyTmFtZT1iLHRoaXMuY29udGV4dE5hbWU9RCx0aGlzLnJlcXVlc3RDbGllbnQ9SCx0aGlzLl9kZWJ1Zz0hMSx0aGlzLnNlc3Npb25NYW5hZ2VyPW5ldyBCLlNlc3Npb25NYW5hZ2VyKHRo'@; put 'aXMuc2VydmVyVXJsLHRoaXMuY29udGV4dE5hbWUsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlzLmNvbnRleHRNYW5hZ2VyPW5ldyBZLkNvbnRleHRNYW5hZ2VyKHRoaXMuc2VydmVyVXJsLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy5mb2xkZXJNYXA9bmV3IE1hcCxHJiYoMCxFLmlzVXJsKShH'@; put 'KX1yZXR1cm4gY2UucHJvdG90eXBlLmFwcGVuZFJlcXVlc3Q9ZnVuY3Rpb24oRyxiLEQpe3RoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KEcsYixEKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGNlLnByb3RvdHlwZSwiZGVidWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5f'@; put 'ZGVidWd9LHNldDpmdW5jdGlvbihHKXt0aGlzLl9kZWJ1Zz1HLHRoaXMuc2Vzc2lvbk1hbmFnZXImJih0aGlzLnNlc3Npb25NYW5hZ2VyLmRlYnVnPUcpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGNlLnByb3RvdHlwZS5nZXRKb2JzSW5Gb2xkZXI9ZnVuY3Rpb24oRyl7cmV0'@; put 'dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGI7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihEKXtzd2l0Y2goRC5sYWJlbCl7Y2FzZSAwOnJldHVybiBiPSgwLEUuaXNSZWxhdGl2ZVBhdGgpKEcpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0'@; put 'KEcpOkcsdGhpcy5mb2xkZXJNYXAuZ2V0KGIpP1syLHRoaXMuZm9sZGVyTWFwLmdldChiKV06WzQsdGhpcy5wb3B1bGF0ZUZvbGRlck1hcChiKV07Y2FzZSAxOnJldHVybiBELnNlbnQoKSxbMix0aGlzLmZvbGRlck1hcC5nZXQoYildfX0pfSl9LGNlLnByb3RvdHlwZS5nZXRDb25maWc9ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm57c2VydmVyVXJsOnRoaXMuc2VydmVyVXJsLHJvb3RGb2xkZXJOYW1lOnRoaXMucm9vdEZvbGRlck5hbWV9fSxjZS5wcm90b3R5cGUuc2V0Q29uZmlnPWZ1bmN0aW9uKEcsYil7RyYmKHRoaXMuc2VydmVyVXJsPUcpLGImJih0aGlzLnJvb3RGb2xkZXJOYW1lPWIpfSxj'@; put 'ZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRzPWZ1bmN0aW9uKEcpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oYil7c3dpdGNoKGIubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmdldENv'@; put 'bXB1dGVDb250ZXh0cyhHKV07Y2FzZSAxOnJldHVyblsyLGIuc2VudCgpXX19KX0pfSxjZS5wcm90b3R5cGUuZ2V0RGVmYXVsdENvbXB1dGVDb250ZXh0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHRNYW5hZ2VyLmdldERlZmF1bHRDb21wdXRlQ29udGV4dHN9LGNlLnByb3RvdHlw'@; put 'ZS5nZXRMYXVuY2hlckNvbnRleHRzPWZ1bmN0aW9uKEcpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oYil7c3dpdGNoKGIubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmdldExhdW5jaGVyQ29u'@; put 'dGV4dHMoRyldO2Nhc2UgMTpyZXR1cm5bMixiLnNlbnQoKV19fSl9KX0sY2UucHJvdG90eXBlLmdldEV4ZWN1dGFibGVDb250ZXh0cz1mdW5jdGlvbihHKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgYjtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKEQpe3N3aXRj'@; put 'aChELmxhYmVsKXtjYXNlIDA6cmV0dXJuIGI9dGhpcy5leGVjdXRlU2NyaXB0LmJpbmQodGhpcyksWzQsdGhpcy5jb250ZXh0TWFuYWdlci5nZXRFeGVjdXRhYmxlQ29udGV4dHMoYixHKV07Y2FzZSAxOnJldHVyblsyLEQuc2VudCgpXX19KX0pfSxjZS5wcm90b3R5cGUuY3JlYXRlU2Vzc2lv'@; put 'bj1mdW5jdGlvbihHLGIpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBELEgsTjtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKGcpe3N3aXRjaChnLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEQ9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYiYmKEQu'@; put 'QXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KGIpKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvY29tcHV0ZS9jb250ZXh0cz9saW1pdD0xMDAwMCIsYildO2Nhc2UgMTppZihIPWcuc2VudCgpLnJlc3VsdCwhKE49SC5pdGVtcyYmSC5pdGVtcy5sZW5ndGg/SC5pdGVtcy5maW5k'@; put 'KGZ1bmN0aW9uKEMpe3JldHVybiBDLm5hbWU9PT1HfSk6bnVsbCkpdGhyb3cgbmV3IEVycm9yKCJFeGVjdXRpb24gY29udGV4dCAiLmNvbmNhdChHLCIgbm90IGZvdW5kLiIpKTtyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiL2NvbXB1dGUvY29udGV4dHMvIi5jb25jYXQoTi5p'@; put 'ZCwiL3Nlc3Npb25zIikse30sYildO2Nhc2UgMjpyZXR1cm5bMixnLnNlbnQoKS5yZXN1bHRdfX0pfSl9LGNlLnByb3RvdHlwZS5jcmVhdGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihHLGIsRCxILE4sZyl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGso'@; put 'dGhpcyxmdW5jdGlvbihDKXtzd2l0Y2goQy5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuY3JlYXRlQ29tcHV0ZUNvbnRleHQoRyxiLEQsSCxOLGcpXTtjYXNlIDE6cmV0dXJuWzIsQy5zZW50KCldfX0pfSl9LGNlLnByb3RvdHlwZS5jcmVhdGVMYXVuY2hlckNv'@; put 'bnRleHQ9ZnVuY3Rpb24oRyxiLEQsSCl7cmV0dXJuIHZvaWQgMD09PUQmJihEPSJkaXJlY3QiKSxJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oTil7c3dpdGNoKE4ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2Vy'@; put 'LmNyZWF0ZUxhdW5jaGVyQ29udGV4dChHLGIsRCxIKV07Y2FzZSAxOnJldHVyblsyLE4uc2VudCgpXX19KX0pfSxjZS5wcm90b3R5cGUuZWRpdENvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKEcsYixEKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gayh0aGlz'@; put 'LGZ1bmN0aW9uKEgpe3N3aXRjaChILmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdlci5lZGl0Q29tcHV0ZUNvbnRleHQoRyxiLEQpXTtjYXNlIDE6cmV0dXJuWzIsSC5zZW50KCldfX0pfSl9LGNlLnByb3RvdHlwZS5kZWxldGVDb21wdXRlQ29udGV4dD1mdW5jdGlv'@; put 'bihHLGIpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oRCl7c3dpdGNoKEQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmRlbGV0ZUNvbXB1dGVDb250ZXh0KEcsYildO2Nhc2UgMTpyZXR1cm5b'@; put 'MixELnNlbnQoKV19fSl9KX0sY2UucHJvdG90eXBlLmV4ZWN1dGVTY3JpcHQ9ZnVuY3Rpb24oRyxiLEQsSCxOLGcsQyxTLHYscCx3KXtyZXR1cm4gdm9pZCAwPT09TiYmKE49bnVsbCksdm9pZCAwPT09ZyYmKGc9ITEpLHZvaWQgMD09PUMmJihDPSExKSx2b2lkIDA9PT1TJiYoUz0hMCksdm9p'@; put 'ZCAwPT09cCYmKHA9ITEpLEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihKKXtyZXR1cm5bMiwoMCxvZS5leGVjdXRlT25Db21wdXRlQXBpKSh0aGlzLnJlcXVlc3RDbGllbnQsdGhpcy5zZXNzaW9uTWFuYWdlcix0aGlzLnJvb3RGb2xkZXJO'@; put 'YW1lLEcsYixELEgsTixnLEMsUyx2LHAsdyldfSl9KX0sY2UucHJvdG90eXBlLmdldEZvbGRlcj1mdW5jdGlvbihHLGIpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oRCl7c3dpdGNoKEQubGFiZWwpe2Nhc2UgMDpyZXR1cm5b'@; put 'NCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9Ii5jb25jYXQoRyksYikudGhlbihmdW5jdGlvbihIKXtyZXR1cm4gSC5yZXN1bHR9KV07Y2FzZSAxOnJldHVyblsyLEQuc2VudCgpXX19KX0pfSxjZS5wcm90b3R5cGUuY3JlYXRlRmlsZT1mdW5j'@; put 'dGlvbihHLGIsRCxILE4pe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBnLEM7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihTKXtzd2l0Y2goUy5sYWJlbCl7Y2FzZSAwOmlmKCFEJiYhSCl0aHJvdyBuZXcgRXJyb3IoIlBhdGggb3IgVVJJIG9mIHRoZSBwYXJlbnQg'@; put 'Zm9sZGVyIGlzIHJlcXVpcmVkLiIpO3JldHVybiBIfHwhRD9bMywyXTpbNCx0aGlzLmdldEZvbGRlclVyaShELE4pXTtjYXNlIDE6SD1TLnNlbnQoKSxTLmxhYmVsPTI7Y2FzZSAyOnJldHVybiBnPXtBY2NlcHQ6ImFwcGxpY2F0aW9uL3ZuZC5zYXMuZmlsZStqc29uIiwiQ29udGVudC1EaXNw'@; put 'b3NpdGlvbiI6J2ZpbGVuYW1lPSInLmNvbmNhdChHLCciOycpfSwoQz1uZXcgaikuYXBwZW5kKCJmaWxlIixiLEcpLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCIvZmlsZXMvZmlsZXM/cGFyZW50Rm9sZGVyVXJpPSIuY29uY2F0KEgsIiZ0eXBlRGVmTmFtZT1maWxlI3Jhd1VwbG9hZCIp'@; put 'LEMsTiwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9IitDLl9ib3VuZGFyeSxnKV07Y2FzZSAzOnJldHVyblsyLFMuc2VudCgpLnJlc3VsdF19fSl9KX0sY2UucHJvdG90eXBlLmNyZWF0ZUZvbGRlcj1mdW5jdGlvbihHLGIsRCxILE4pe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQg'@; put 'MCxmdW5jdGlvbigpe3ZhciBnLEMsUyx2LHc7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihKKXtzd2l0Y2goSi5sYWJlbCl7Y2FzZSAwOmlmKGc9ei5sb2dnZXJ8fEssIWImJiFEKXRocm93IG5ldyBFcnJvcigiUGF0aCBvciBVUkkgb2YgdGhlIHBhcmVudCBmb2xkZXIgaXMgcmVxdWlyZWQuIik7'@; put 'cmV0dXJuIER8fCFiP1szLDZdOls0LHRoaXMuZ2V0Rm9sZGVyVXJpKGIsSCldO2Nhc2UgMTppZihEPUouc2VudCgpKXJldHVyblszLDNdO2lmKGcuaW5mbygiUGFyZW50IGZvbGRlciBhdCBwYXRoICciLmNvbmNhdChiLCInIGlzIG5vdCBwcmVzZW50LiIpKSxDPWIuc3Vic3RyaW5nKDAsYi5s'@; put 'YXN0SW5kZXhPZigiLyIpKSxTPSIiLmNvbmNhdChiLnNwbGl0KCIvIikucG9wKCkpLCIiPT09Qyl0aHJvdyBuZXcgVi5Sb290Rm9sZGVyTm90Rm91bmRFcnJvcihiLHRoaXMuc2VydmVyVXJsLEgpO3JldHVybiBnLmluZm8oIkNyZWF0aW5nIHBhcmVudCBmb2xkZXI6XG4nIi5jb25jYXQoUywi'@; put 'JyBpbiAnIikuY29uY2F0KEMsIiciKSksWzQsdGhpcy5jcmVhdGVGb2xkZXIoUyxDLHZvaWQgMCxIKV07Y2FzZSAyOnJldHVybiB2PUouc2VudCgpLGcuaW5mbygiUGFyZW50IGZvbGRlciAnIi5jb25jYXQoUywiJyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY3JlYXRlZC4iKSksRD0iL2ZvbGRl'@; put 'cnMvZm9sZGVycy8iLmNvbmNhdCh2LmlkKSxbMyw2XTtjYXNlIDM6cmV0dXJuIE4/WzQsdGhpcy5nZXRGb2xkZXJVcmkoYisiLyIrRyxIKV06WzMsNl07Y2FzZSA0OnJldHVybiBKLnNlbnQoKT9bNCx0aGlzLmRlbGV0ZUZvbGRlcihiKyIvIitHLEgpXTpbMyw2XTtjYXNlIDU6Si5zZW50KCks'@; put 'Si5sYWJlbD02O2Nhc2UgNjpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiL2ZvbGRlcnMvZm9sZGVycz9wYXJlbnRGb2xkZXJVcmk9Ii5jb25jYXQoRCkse25hbWU6Ryx0eXBlOiJmb2xkZXIifSxIKS5jYXRjaChmdW5jdGlvbihuZSl7dmFyIGRlPW5lLm1lc3NhZ2UsZmU9bmUu'@; put 'cmVzcG9uc2U7aWYoZGUmJmZlJiZmZS5kYXRhJiZmZS5kYXRhLm1lc3NhZ2Upe3ZhciB4ZT1mZS5zdGF0dXMsTGU9W2RlLGZlLmRhdGEubWVzc2FnZV0ubWFwKGZ1bmN0aW9uKEZlKXtyZXR1cm4vXC4kLy50ZXN0KEZlKT9GZToiIi5jb25jYXQoRmUsIi4iKX0pO3Rocm93IE58fDQwOSE9PXhl'@; put 'fHxMZS5wdXNoKCdUbyBvdmVycmlkZSwgcGxlYXNlIHNldCAiaXNGb3JjZWQiIHRvICJ0cnVlIi4nKSxMZS5qb2luKCIgIil9dGhyb3cgbmV9KV07Y2FzZSA3OnJldHVybiB3PUouc2VudCgpLnJlc3VsdCxbNCx0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKCIiLmNvbmNhdChiLCIvIikuY29uY2F0'@; put 'KEcpLEgpXTtjYXNlIDg6cmV0dXJuIEouc2VudCgpLFsyLHddfX0pfSl9LGNlLnByb3RvdHlwZS5jcmVhdGVKb2JEZWZpbml0aW9uPWZ1bmN0aW9uKEcsYixELEgsTil7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihnKXtzd2l0'@; put 'Y2goZy5sYWJlbCl7Y2FzZSAwOmlmKCFEJiYhSCl0aHJvdyBuZXcgRXJyb3IoIlBhdGggdG8gb3IgVVJJIG9mIHRoZSBwYXJlbnQgZm9sZGVyIGlzIHJlcXVpcmVkLiIpO3JldHVybiBIfHwhRD9bMywyXTpbNCx0aGlzLmdldEZvbGRlclVyaShELE4pXTtjYXNlIDE6SD1nLnNlbnQoKSxnLmxh'@; put 'YmVsPTI7Y2FzZSAyOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2pvYkRlZmluaXRpb25zL2RlZmluaXRpb25zP3BhcmVudEZvbGRlclVyaT0iKS5jb25jYXQoSCkse25hbWU6RyxwYXJhbWV0ZXJzOlt7bmFtZToiX2FkZGplc2Jl'@; put 'Z2luZW5kbWFjcm9zIix0eXBlOiJDSEFSQUNURVIiLGRlZmF1bHRWYWx1ZToiZmFsc2UifV0sdHlwZToiQ29tcHV0ZSIsY29kZTpifSxOKV07Y2FzZSAzOnJldHVyblsyLGcuc2VudCgpXX19KX0pfSxjZS5wcm90b3R5cGUuZ2V0QXV0aENvZGU9ZnVuY3Rpb24oRyl7cmV0dXJuIEkodGhpcyx2'@; put 'b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGIsRD10aGlzO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oSCl7c3dpdGNoKEgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gYj0iIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9TQVNMb2dvbi9vYXV0aC9hdXRob3JpemU/Y2xpZW50X2lkPSIpLmNvbmNh'@; put 'dChHLCImcmVzcG9uc2VfdHlwZT1jb2RlIiksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChiLHZvaWQgMCwidGV4dC9wbGFpbiIpLnRoZW4oZnVuY3Rpb24oTil7cmV0dXJuIE4ucmVzdWx0fSkudGhlbihmdW5jdGlvbihOKXtyZXR1cm4gSShELHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2'@; put 'YXIgZyxDLFMsdjtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKHApe3N3aXRjaChwLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGc9IiIsKDAsWC5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZCkoTik/WzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmF1dGhvcml6ZShOKV06WzMsMl07Y2FzZSAxOnJldHVybiBDPXAu'@; put 'c2VudCgpLFM9Qy5zcGxpdCgiPGJvZHk+IilbMV0uc3BsaXQoIjwvYm9keT4iKVswXSwodj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPVMsWzIsZz12LnF1ZXJ5U2VsZWN0b3IoIi5pbmZvYm94IGg0IikuaW5uZXJUZXh0XTtjYXNlIDI6cmV0dXJuIFM9Ti5zcGxp'@; put 'dCgiPGJvZHk+IilbMV0uc3BsaXQoIjwvYm9keT4iKVswXSwodj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPVMsdiYmKGc9di5xdWVyeVNlbGVjdG9yKCIuaW5mb2JveCBoNCIpLmlubmVyVGV4dCksWzIsZ119fSl9KX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IG51bGx9KV07Y2FzZSAxOnJldHVyblsyLEguc2VudCgpXX19KX0pfSxjZS5wcm90b3R5cGUuZ2V0QWNjZXNzVG9rZW49ZnVuY3Rpb24oRyxiLEQpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oSCl7cmV0dXJuWzIsKDAsc2Uu'@; put 'Z2V0QWNjZXNzVG9rZW5Gb3JWaXlhKSh0aGlzLnJlcXVlc3RDbGllbnQsRyxiLEQpXX0pfSl9LGNlLnByb3RvdHlwZS5yZWZyZXNoVG9rZW5zPWZ1bmN0aW9uKEcsYixEKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKEgpe3Jl'@; put 'dHVyblsyLCgwLGhlLnJlZnJlc2hUb2tlbnNGb3JWaXlhKSh0aGlzLnJlcXVlc3RDbGllbnQsRyxiLEQpXX0pfSl9LGNlLnByb3RvdHlwZS5kZWxldGVDbGllbnQ9ZnVuY3Rpb24oRyxiKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgRCxIO3JldHVybiBrKHRo'@; put 'aXMsZnVuY3Rpb24oTil7c3dpdGNoKE4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gRD10aGlzLnNlcnZlclVybCsiL29hdXRoL2NsaWVudHMvIi5jb25jYXQoRyksSD17fSxiJiYoSC5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoYikpLFs0LHRoaXMucmVxdWVzdENsaWVudC5kZWxldGUo'@; put 'RCxiKV07Y2FzZSAxOnJldHVyblsyLE4uc2VudCgpLnJlc3VsdF19fSl9KX0sY2UucHJvdG90eXBlLmV4ZWN1dGVDb21wdXRlSm9iPWZ1bmN0aW9uKEcsYixELEgsTixnLEMsUyx2LHApe3JldHVybiB2b2lkIDA9PT1nJiYoZz0hMCksdm9pZCAwPT09QyYmKEM9ITEpLHZvaWQgMD09PXYmJih2'@; put 'PSExKSxJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB3LEosbmUsZGUsZmUseGUsTGUsRmUsT2UsamUsV2U7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihLZSl7c3dpdGNoKEtlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHc9KE58fHt9KS5hY2Nlc3NfdG9rZW4sTj9bNCwoMCxlZS5n'@; put 'ZXRUb2tlbnMpKHRoaXMucmVxdWVzdENsaWVudCxOKV06WzMsMl07Y2FzZSAxOnc9S2Uuc2VudCgpLmFjY2Vzc190b2tlbixLZS5sYWJlbD0yO2Nhc2UgMjppZigoMCxFLmlzUmVsYXRpdmVQYXRoKShHKSYmIXRoaXMucm9vdEZvbGRlck5hbWUpdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBw'@; put 'YXRocyBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IHNwZWNpZnlpbmcgYSByb290IGZvbGRlciBuYW1lIik7cmV0dXJuIEo9Ry5zcGxpdCgiLyIpLG5lPUoucG9wKCksZGU9Si5qb2luKCIvIiksZmU9KDAsRS5pc1JlbGF0aXZlUGF0aCkoRyk/IiIuY29uY2F0KHRoaXMucm9vdEZvbGRlck5hbWUs'@; put 'Ii8iKS5jb25jYXQoZGUpOmRlLFs0LHRoaXMucG9wdWxhdGVGb2xkZXJNYXAoZmUsdykuY2F0Y2goZnVuY3Rpb24oWWUpe3Rocm93KDAsVS5wcmVmaXhNZXNzYWdlKShZZSwiRXJyb3Igd2hpbGUgcG9wdWxhdGluZyBmb2xkZXIgbWFwLiAiKX0pXTtjYXNlIDM6aWYoS2Uuc2VudCgpLCEoeGU9'@; put 'dGhpcy5mb2xkZXJNYXAuZ2V0KGZlKSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgZm9sZGVyICciLmNvbmNhdChmZSwiJyB3YXMgbm90IGZvdW5kIG9uICciKS5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIiciKSk7aWYoIShMZT14ZT8uZmluZChmdW5jdGlvbihZZSl7cmV0dXJuIFllLm5hbWU9PT1u'@; put 'ZX0pKSl0aHJvdyBuZXcgRXJyb3IoIkpvYiB3YXMgbm90IGZvdW5kLiIpO2lmKEZlPUxlPy5jb2RlKXJldHVyblszLDVdO2lmKCEoT2U9TGU/LmxpbmtzLmZpbmQoZnVuY3Rpb24oWWUpe3JldHVybiJnZXRSZXNvdXJjZSI9PT1ZZS5yZWx9KSkpdGhyb3cgbmV3IEVycm9yKCJVUkkgb2Ygam9i'@; put 'IGRlZmluaXRpb24gd2FzIG5vdCBmb3VuZC4iKTtyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KE9lLmhyZWYpLHcpLmNhdGNoKGZ1bmN0aW9uKFllKXt0aHJvdygwLFUucHJlZml4TWVzc2FnZSkoWWUsIkVycm9yIHdoaWxl'@; put 'IGdldHRpbmcgam9iIGRlZmluaXRpb24uICIpfSldO2Nhc2UgNDpqZT1LZS5zZW50KCkucmVzdWx0LExlLmNvZGU9RmU9amUuY29kZSxLZS5sYWJlbD01O2Nhc2UgNTpyZXR1cm4gRmV8fChGZT0iIiksV2U9RmUucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnNwbGl0KCJcbiIpLFs0LHRoaXMuZXhl'@; put 'Y3V0ZVNjcmlwdChHLFdlLGIsTixILEQsQyxnLFMsdixwKV07Y2FzZSA2OnJldHVyblsyLEtlLnNlbnQoKV19fSl9KX0sY2UucHJvdG90eXBlLmV4ZWN1dGVKb2I9ZnVuY3Rpb24oRyxiLEQsSCxOKXt2YXIgZyxDLFM7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFy'@; put 'IHYscCx3LEosbmUsZGUsZmUseGUsTGUsRmUsT2UsamUsV2UsS2UsWWUsUWUsbHQsUGUsYmUsQWUsVGU7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihxZSl7c3dpdGNoKHFlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHY9KE58fHt9KS5hY2Nlc3NfdG9rZW4sTj9bNCwoMCxlZS5nZXRUb2tlbnMpKHRo'@; put 'aXMucmVxdWVzdENsaWVudCxOKV06WzMsMl07Y2FzZSAxOnY9cWUuc2VudCgpLmFjY2Vzc190b2tlbixxZS5sYWJlbD0yO2Nhc2UgMjppZigoMCxFLmlzUmVsYXRpdmVQYXRoKShHKSYmIXRoaXMucm9vdEZvbGRlck5hbWUpdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBwYXRocyBjYW5ub3Qg'@; put 'YmUgdXNlZCB3aXRob3V0IHNwZWNpZnlpbmcgYSByb290IGZvbGRlciBuYW1lLiIpO3JldHVybiBwPUcuc3BsaXQoIi8iKSx3PXAucG9wKCksSj1wLmpvaW4oIi8iKSxuZT0oMCxFLmlzUmVsYXRpdmVQYXRoKShHKT8iIi5jb25jYXQodGhpcy5yb290Rm9sZGVyTmFtZSwiLyIpLmNvbmNhdChK'@; put 'KTpKLFs0LHRoaXMucG9wdWxhdGVGb2xkZXJNYXAobmUsdildO2Nhc2UgMzppZihxZS5zZW50KCksIShkZT10aGlzLmZvbGRlck1hcC5nZXQobmUpKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBmb2xkZXIgJyIuY29uY2F0KG5lLCInIHdhcyBub3QgZm91bmQgb24gJyIpLmNvbmNhdCh0aGlzLnNl'@; put 'cnZlclVybCwiJy4iKSk7cmV0dXJuIGZlPWRlPy5maW5kKGZ1bmN0aW9uKFhlKXtyZXR1cm4gWGUubmFtZT09PXd9KSx4ZT1bXSxIJiZPYmplY3Qua2V5cyhIKS5sZW5ndGg/WzQsdGhpcy51cGxvYWRUYWJsZXMoSCx2KV06WzMsNV07Y2FzZSA0OnhlPXFlLnNlbnQoKSxxZS5sYWJlbD01O2Nh'@; put 'c2UgNTppZighZmUpdGhyb3cgbmV3IEVycm9yKCJKb2Igd2FzIG5vdCBmb3VuZC4iKTtyZXR1cm4gTGU9bnVsbD09PShnPWZlPy5saW5rcy5maW5kKGZ1bmN0aW9uKFhlKXtyZXR1cm4iZ2V0UmVzb3VyY2UiPT09WGUucmVsfSkpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmhyZWYsWzQsdGhpcy5y'@; put 'ZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdChMZSksdildO2Nhc2UgNjpyZXR1cm4gRmU9cWUuc2VudCgpLnJlc3VsdCxPZT17X2NvbnRleHROYW1lOmIsX3Byb2dyYW06IiIuY29uY2F0KG5lLCIvIikuY29uY2F0KHcpLF93ZWJpbl9maWxlX2NvdW50'@; put 'OnhlLmxlbmd0aCxfT01JVEpTT05MSVNUSU5HOiEwLF9PTUlUSlNPTkxPRzohMCxfT01JVFNFU1NJT05SRVNVTFRTOiEwLF9PTUlUVEVYVExJU1RJTkc6ITAsX09NSVRURVhUTE9HOiEwfSxEJiYoT2UuX09NSVRURVhUTE9HPSJmYWxzZSIsT2UuX09NSVRTRVNTSU9OUkVTVUxUUz0iZmFsc2Ui'@; put 'LE9lLl9ERUJVRz0xMzEpLHhlLmZvckVhY2goZnVuY3Rpb24oWGUsVWUpe09lWyJfd2ViaW5fZmlsZXVyaSIuY29uY2F0KFVlKzEpXT0iL2ZpbGVzL2ZpbGVzLyIuY29uY2F0KFhlLmZpbGUuaWQpLE9lWyJfd2ViaW5fbmFtZSIuY29uY2F0KFVlKzEpXT1YZS50YWJsZU5hbWV9KSxqZT17bmFt'@; put 'ZToiZXhlYy0iLmNvbmNhdCh3KSxkZXNjcmlwdGlvbjoiUG93ZXJlZCBieSBTQVNqcyIsam9iRGVmaW5pdGlvbjpGZSxhcmd1bWVudHM6T2V9LFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2pvYkV4ZWN1dGlvbi9qb2JzP19hY3Rpb249d2Fp'@; put 'dCIpLGplLHYpXTtjYXNlIDc6cmV0dXJuIFdlPXFlLnNlbnQoKS5yZXN1bHQsWzQsdGhpcy5wb2xsSm9iU3RhdGUoV2UsTikuY2F0Y2goZnVuY3Rpb24oWGUpe3Rocm93KDAsVS5wcmVmaXhNZXNzYWdlKShYZSwiRXJyb3Igd2hpbGUgcG9sbGluZyBqb2Igc3RhdHVzLiAiKX0pXTtjYXNlIDg6'@; put 'cmV0dXJuIEtlPXFlLnNlbnQoKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2pvYkV4ZWN1dGlvbi9qb2JzLyIpLmNvbmNhdChXZS5pZCksdildO2Nhc2UgOTpyZXR1cm4gWWU9cWUuc2VudCgpLnJlc3VsdCxQZT1ZZS5yZXN1bHRzWyJfd2Vi'@; put 'b3V0Lmpzb24iXSxiZT1ZZS5saW5rcy5maW5kKGZ1bmN0aW9uKFhlKXtyZXR1cm4ibG9nIj09PVhlLnJlbH0pLFBlP1s0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoUGUsIi9jb250ZW50IiksdiwidGV4dC9wbGFpbiIpXTpbMywxMV07'@; put 'Y2FzZSAxMDpRZT1xZS5zZW50KCkscWUubGFiZWw9MTE7Y2FzZSAxMTpyZXR1cm4gRCYmYmU/WzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdChiZS5ocmVmLCIvY29udGVudCIpLHYpLnRoZW4oZnVuY3Rpb24oWGUpe3JldHVybiBYZS5y'@; put 'ZXN1bHQuaXRlbXMubWFwKGZ1bmN0aW9uKFVlKXtyZXR1cm4gVWUubGluZX0pLmpvaW4oIlxuIil9KV06WzMsMTNdO2Nhc2UgMTI6bHQ9cWUuc2VudCgpLHFlLmxhYmVsPTEzO2Nhc2UgMTM6aWYoImZhaWxlZCI9PT1LZSl0aHJvdyBuZXcgVi5Kb2JFeGVjdXRpb25FcnJvcihudWxsPT09KEM9'@; put 'WWUuZXJyb3IpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLmVycm9yQ29kZSxudWxsPT09KFM9WWUuZXJyb3IpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLm1lc3NhZ2UsbHQpO3JldHVybiBBZT17cmVzdWx0OlFlPy5yZXN1bHQsbG9nOmx0fSwoVGU9WWUuZXJyb3IpJiYoQWUuZXJyb3I9VGUpLFsyLEFl'@; put 'XX19KX0pfSxjZS5wcm90b3R5cGUucG9wdWxhdGVGb2xkZXJNYXA9ZnVuY3Rpb24oRyxiKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgRCxOLGc7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihTKXtzd2l0Y2goUy5sYWJlbCl7Y2FzZSAwOnJldHVybiBEPSgwLEUu'@; put 'aXNSZWxhdGl2ZVBhdGgpKEcpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0KEcpOkcsdGhpcy5mb2xkZXJNYXAuZ2V0KEQpP1syXTpbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCgiL2ZvbGRlcnMvZm9sZGVycy9AaXRlbT9wYXRoPSIrRCksYiku'@; put 'Y2F0Y2goZnVuY3Rpb24odil7dGhyb3coMCxVLnByZWZpeE1lc3NhZ2UpKHYsIkVycm9yIHdoaWxlIGdldHRpbmcgZm9sZGVyLiAiKX0pXTtjYXNlIDE6aWYoIShOPVMuc2VudCgpLnJlc3VsdCkpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGF0aCAiLmNvbmNhdChELCIgZG9lcyBub3QgZXhpc3Qg'@; put 'b24gIikuY29uY2F0KHRoaXMuc2VydmVyVXJsKSk7cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiL2ZvbGRlcnMvZm9sZGVycy8iLmNvbmNhdChOLmlkLCIvbWVtYmVycz9saW1pdD0iKS5jb25jYXQoTi5tZW1iZXJDb3VudDw1MDA/NTAwOk4ubWVtYmVyQ291bnQpLGIpLmNhdGNo'@; put 'KGZ1bmN0aW9uKHYpe3Rocm93KDAsVS5wcmVmaXhNZXNzYWdlKSh2LCJFcnJvciB3aGlsZSBnZXR0aW5nIG1lbWJlcnMuICIpfSldO2Nhc2UgMjpyZXR1cm4gZz1TLnNlbnQoKS5yZXN1bHQsdGhpcy5mb2xkZXJNYXAuc2V0KEQsZy5pdGVtcyksWzJdfX0pfSl9LGNlLnByb3RvdHlwZS5wb2xs'@; put 'Sm9iU3RhdGU9ZnVuY3Rpb24oRyxiLEQpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oSCl7cmV0dXJuWzIsKDAscS5wb2xsSm9iU3RhdGUpKHRoaXMucmVxdWVzdENsaWVudCxHLHRoaXMuZGVidWcsYixEKV19KX0pfSxjZS5w'@; put 'cm90b3R5cGUudXBsb2FkVGFibGVzPWZ1bmN0aW9uKEcsYil7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihEKXtyZXR1cm5bMiwoMCx0ZS51cGxvYWRUYWJsZXMpKHRoaXMucmVxdWVzdENsaWVudCxHLGIpXX0pfSl9LGNlLnBy'@; put 'b3RvdHlwZS5nZXRGb2xkZXJEZXRhaWxzPWZ1bmN0aW9uKEcsYil7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEQsSDtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKE4pe3N3aXRjaChOLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEQ9KDAsRS5pc1VyaSkoRyk/RzoiL2Zv'@; put 'bGRlcnMvZm9sZGVycy9AaXRlbT9wYXRoPSIuY29uY2F0KEcpLFs0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoRCksYikuY2F0Y2goZnVuY3Rpb24oZyl7aWYoZyBpbnN0YW5jZW9mIFYuQ2VydGlmaWNhdGVFcnJvcil0aHJvdyBnO3Jl'@; put 'dHVybntyZXN1bHQ6bnVsbH19KV07Y2FzZSAxOnJldHVybihIPU4uc2VudCgpLnJlc3VsdCk/WzIsSF06WzIsdm9pZCAwXX19KX0pfSxjZS5wcm90b3R5cGUuZ2V0Rm9sZGVyVXJpPWZ1bmN0aW9uKEcsYil7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEQ7cmV0'@; put 'dXJuIGsodGhpcyxmdW5jdGlvbihIKXtzd2l0Y2goSC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0Rm9sZGVyRGV0YWlscyhHLGIpXTtjYXNlIDE6cmV0dXJuKEQ9SC5zZW50KCkpP1syLCIvZm9sZGVycy9mb2xkZXJzLyIuY29uY2F0KEQuaWQpXTpbMix2b2lkIDBdfX0pfSl9LGNl'@; put 'LnByb3RvdHlwZS5nZXRSZWN5Y2xlQmluVXJpPWZ1bmN0aW9uKEcpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBiO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oRCl7c3dpdGNoKEQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0'@; put 'KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KCIvZm9sZGVycy9mb2xkZXJzL0BteVJlY3ljbGVCaW4iKSxHKS5jYXRjaChmdW5jdGlvbihIKXtpZihIIGluc3RhbmNlb2YgVi5DZXJ0aWZpY2F0ZUVycm9yKXRocm93IEg7cmV0dXJue3Jlc3VsdDpudWxsfX0pXTtjYXNlIDE6cmV0'@; put 'dXJuKGI9RC5zZW50KCkucmVzdWx0KT9bMiwiL2ZvbGRlcnMvZm9sZGVycy8iLmNvbmNhdChiLmlkKV06WzIsdm9pZCAwXX19KX0pfSxjZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRCeU5hbWU9ZnVuY3Rpb24oRyxiKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKEQpe3N3aXRjaChELmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdlci5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZShHLGIpXTtjYXNlIDE6cmV0dXJuWzIsRC5zZW50KCldfX0pfSl9LGNlLnByb3RvdHlwZS5nZXRDb21wdXRl'@; put 'Q29udGV4dEJ5SWQ9ZnVuY3Rpb24oRyxiKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKEQpe3N3aXRjaChELmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdlci5nZXRDb21wdXRlQ29udGV4dEJ5SWQo'@; put 'RyxiKV07Y2FzZSAxOnJldHVyblsyLEQuc2VudCgpXX19KX0pfSxjZS5wcm90b3R5cGUubGlzdEZvbGRlcj1mdW5jdGlvbihHLGIsRCl7cmV0dXJuIHZvaWQgMD09PUQmJihEPTIwKSxJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBILE4sZztyZXR1cm4gayh0aGlzLGZ1bmN0'@; put 'aW9uKEMpe3N3aXRjaChDLmxhYmVsKXtjYXNlIDA6cmV0dXJuKDAsRS5pc1VyaSkoRyk/KE49RyxbMywzXSk6WzMsMV07Y2FzZSAxOnJldHVybls0LHRoaXMuZ2V0Rm9sZGVyVXJpKEcsYildO2Nhc2UgMjpOPUMuc2VudCgpLEMubGFiZWw9MztjYXNlIDM6cmV0dXJuIEg9TixbNCx0aGlzLnJl'@; put 'cXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KEgsIi9tZW1iZXJzP2xpbWl0PSIpLmNvbmNhdChEKSxiKV07Y2FzZSA0OnJldHVybihnPUMuc2VudCgpLnJlc3VsdCkmJmcuaXRlbXM/WzIsZy5pdGVtcy5tYXAoZnVuY3Rpb24oUyl7cmV0dXJuIFMubmFt'@; put 'ZX0pXTpbMixbXV19fSl9KX0sY2UucHJvdG90eXBlLm1vdmVGb2xkZXI9ZnVuY3Rpb24oRyxiLEQsSCl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE4sZyxDLFMsdixwO3JldHVybiBrKHRoaXMsZnVuY3Rpb24odyl7c3dpdGNoKHcubGFiZWwpe2Nhc2UgMDpy'@; put 'ZXR1cm4gTj1HLnNwbGl0KCIvIikucG9wKCksWzQsdGhpcy5nZXRGb2xkZXJEZXRhaWxzKGIsSCldO2Nhc2UgMTpyZXR1cm4gdy5zZW50KCk/RD1OOigoZz1iLnNwbGl0KCIvIikpLnNwbGljZShnLmxlbmd0aC0xLDEpLGI9Zy5qb2luKCIvIikpLFs0LHRoaXMuZ2V0Rm9sZGVyVXJpKEcsSCld'@; put 'O2Nhc2UgMjpyZXR1cm4gQz13LnNlbnQoKSxbNCx0aGlzLmdldEZvbGRlclVyaShiLEgpXTtjYXNlIDM6cmV0dXJuIFM9dy5zZW50KCksQz8odj1DPy5zcGxpdCgiLyIpLnBvcCgpLFs0LHRoaXMucmVxdWVzdENsaWVudC5wYXRjaCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdChD'@; put 'KSx7aWQ6dixuYW1lOkQscGFyZW50Rm9sZGVyVXJpOlN9LEgpLmNhdGNoKGZ1bmN0aW9uKEope3Rocm93IEouY29kZSYmIkVOT1RGT1VORCI9PT1KLmNvZGU/e2JvZHk6e21lc3NhZ2U6IkZvbGRlciAnIi5jb25jYXQoRy5zcGxpdCgiLyIpLnBvcCgpLCInIHdhcyBub3QgZm91bmQuIil9fTpK'@; put 'fSldKTpbMix2b2lkIDBdO2Nhc2UgNDpyZXR1cm4ocD13LnNlbnQoKS5yZXN1bHQpP1syLHBdOlsyLHZvaWQgMF19fSl9KX0sY2UucHJvdG90eXBlLmRlbGV0ZUZvbGRlcj1mdW5jdGlvbihHLGIpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBELEgsTixnO3Jl'@; put 'dHVybiBrKHRoaXMsZnVuY3Rpb24oUyl7c3dpdGNoKFMubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmdldFJlY3ljbGVCaW5VcmkoYildO2Nhc2UgMTpyZXR1cm4gRD1TLnNlbnQoKSxIPUcuc3BsaXQoIi8iKS5wb3AoKXx8IiIsZz0oTj1uZXcgRGF0ZSkudG9Mb2NhbGVEYXRlU3RyaW5n'@; put 'KCkrIiAiK04udG9Mb2NhbGVUaW1lU3RyaW5nKCksWzQsdGhpcy5tb3ZlRm9sZGVyKEcsRCxIKyIgIitnLGIpXTtjYXNlIDI6cmV0dXJuWzIsUy5zZW50KCldfX0pfSl9LGNlfSgpO08uU0FTVml5YUFwaUNsaWVudD11ZX0sNTk1NjpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6'@; put 'PXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIHo9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oaGUpe2Zvcih2YXIgdWUsY2U9MSxHPWFyZ3VtZW50cy5sZW5ndGg7Y2U8RztjZSsrKWZvcih2YXIgYiBpbiB1ZT1hcmd1bWVudHNbY2VdKU9iamVjdC5wcm90b3R5cGUuaGFz'@; put 'T3duUHJvcGVydHkuY2FsbCh1ZSxiKSYmKGhlW2JdPXVlW2JdKTtyZXR1cm4gaGV9LHouYXBwbHkodGhpcyxhcmd1bWVudHMpfSxLPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihoZSx1ZSxjZSxHKXtyZXR1cm4gbmV3KGNlfHwoY2U9UHJvbWlzZSkpKGZ1bmN0aW9uKGIsRCl7ZnVu'@; put 'Y3Rpb24gSChDKXt0cnl7ZyhHLm5leHQoQykpfWNhdGNoKFMpe0QoUyl9fWZ1bmN0aW9uIE4oQyl7dHJ5e2coRy50aHJvdyhDKSl9Y2F0Y2goUyl7RChTKX19ZnVuY3Rpb24gZyhDKXt2YXIgUztDLmRvbmU/YihDLnZhbHVlKTooUz1DLnZhbHVlLFMgaW5zdGFuY2VvZiBjZT9TOm5ldyBjZShm'@; put 'dW5jdGlvbih2KXt2KFMpfSkpLnRoZW4oSCxOKX1nKChHPUcuYXBwbHkoaGUsdWV8fFtdKSkubmV4dCgpKX0pfSxJPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGhlLHVlKXt2YXIgY2UsRyxiLEQsSD17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZiWzBdKXRocm93IGJb'@; put 'MV07cmV0dXJuIGJbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gRD17bmV4dDpOKDApLHRocm93Ok4oMSkscmV0dXJuOk4oMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihEW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEQ7ZnVuY3Rpb24gTihnKXty'@; put 'ZXR1cm4gZnVuY3Rpb24oQyl7cmV0dXJuIGZ1bmN0aW9uKFMpe2lmKGNlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO0g7KXRyeXtpZihjZT0xLEcmJihiPTImU1swXT9HLnJldHVybjpTWzBdP0cudGhyb3d8fCgoYj1HLnJldHVy'@; put 'bikmJmIuY2FsbChHKSwwKTpHLm5leHQpJiYhKGI9Yi5jYWxsKEcsU1sxXSkpLmRvbmUpcmV0dXJuIGI7c3dpdGNoKEc9MCxiJiYoUz1bMiZTWzBdLGIudmFsdWVdKSxTWzBdKXtjYXNlIDA6Y2FzZSAxOmI9UzticmVhaztjYXNlIDQ6cmV0dXJuIEgubGFiZWwrKyx7dmFsdWU6U1sxXSxkb25l'@; put 'OiExfTtjYXNlIDU6SC5sYWJlbCsrLEc9U1sxXSxTPVswXTtjb250aW51ZTtjYXNlIDc6Uz1ILm9wcy5wb3AoKSxILnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChiPShiPUgudHJ5cykubGVuZ3RoPjAmJmJbYi5sZW5ndGgtMV0pfHw2IT09U1swXSYmMiE9PVNbMF0pKXtIPTA7'@; put 'Y29udGludWV9aWYoMz09PVNbMF0mJighYnx8U1sxXT5iWzBdJiZTWzFdPGJbM10pKXtILmxhYmVsPVNbMV07YnJlYWt9aWYoNj09PVNbMF0mJkgubGFiZWw8YlsxXSl7SC5sYWJlbD1iWzFdLGI9UzticmVha31pZihiJiZILmxhYmVsPGJbMl0pe0gubGFiZWw9YlsyXSxILm9wcy5wdXNoKFMp'@; put 'O2JyZWFrfWJbMl0mJkgub3BzLnBvcCgpLEgudHJ5cy5wb3AoKTtjb250aW51ZX1TPXVlLmNhbGwoaGUsSCl9Y2F0Y2godil7Uz1bNix2XSxHPTB9ZmluYWxseXtjZT1iPTB9aWYoNSZTWzBdKXRocm93IFNbMV07cmV0dXJue3ZhbHVlOlNbMF0/U1sxXTp2b2lkIDAsZG9uZTohMH19KFtnLENd'@; put 'KX19fSxrPXRoaXMmJnRoaXMuX19zcHJlYWRBcnJheXx8ZnVuY3Rpb24oaGUsdWUsY2Upe2lmKGNlfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIEcsYj0wLEQ9dWUubGVuZ3RoO2I8RDtiKyspIUcmJmIgaW4gdWV8fChHfHwoRz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh1ZSww'@; put 'LGIpKSxHW2JdPXVlW2JdKTtyZXR1cm4gaGUuY29uY2F0KEd8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHVlKSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgRT1SKDU5MjgpLGo9UigxMjMwKSxWPVIoOTgyMSksQj1SKDgzMDYpLFk9'@; put 'UigzNDY3KSxYPVIoMTUyNyksVT1SKDM5MDApLHE9Uig0NTg4KSxlZT1SKDM2MDIpLHRlPVIoODIxNyksb2U9e3NlcnZlclVybDoiIixwYXRoU0FTSlM6Ii9TQVNqc0FwaS9zdHAvZXhlY3V0ZSIscGF0aFNBUzk6Ii9TQVNTdG9yZWRQcm9jZXNzL2RvIixwYXRoU0FTVml5YToiL1NBU0pvYkV4'@; put 'ZWN1dGlvbiIsYXBwTG9jOiIvUHVibGljL3NlZWRhcHAiLHNlcnZlclR5cGU6VS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsZGVidWc6ITEsY29udGV4dE5hbWU6IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIsdXNlQ29tcHV0ZUFwaTpudWxsLGxvZ2luTWVjaGFuaXNtOmouTG9naW5N'@; put 'ZWNoYW5pc20uRGVmYXVsdH0sc2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBoZSh1ZSl7dmFyIGNlPXRoaXM7dGhpcy5zYXNqc0NvbmZpZz1uZXcgai5TQVNqc0NvbmZpZyx0aGlzLmpvYnNQYXRoPSIiLHRoaXMuc2FzVml5YUFwaUNsaWVudD1udWxsLHRoaXMuc2FzOUFwaUNsaWVudD1udWxsLHRo'@; put 'aXMuc2FzSlNBcGlDbGllbnQ9bnVsbCx0aGlzLmZpbGVVcGxvYWRlcj1udWxsLHRoaXMuYXV0aE1hbmFnZXI9bnVsbCx0aGlzLnJlcXVlc3RDbGllbnQ9bnVsbCx0aGlzLndlYkpvYkV4ZWN1dG9yPW51bGwsdGhpcy5zYXNqc0pvYkV4ZWN1dG9yPW51bGwsdGhpcy5jb21wdXRlSm9iRXhlY3V0'@; put 'b3I9bnVsbCx0aGlzLmplc0pvYkV4ZWN1dG9yPW51bGwsdGhpcy5zYXM5Sm9iRXhlY3V0b3I9bnVsbCx0aGlzLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cz1mdW5jdGlvbigpe3JldHVybiBLKGNlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgRyxiLEQsSCxOO3JldHVybiBJKHRoaXMsZnVu'@; put 'Y3Rpb24oZyl7c3dpdGNoKGcubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxudWxsPT09KEc9dGhpcy53ZWJKb2JFeGVjdXRvcil8fHZvaWQgMD09PUc/dm9pZCAwOkcucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nhc2UgMTpyZXR1cm4gZy5zZW50KCksWzQsbnVsbD09PShiPXRoaXMuY29tcHV0'@; put 'ZUpvYkV4ZWN1dG9yKXx8dm9pZCAwPT09Yj92b2lkIDA6Yi5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKV07Y2FzZSAyOnJldHVybiBnLnNlbnQoKSxbNCxudWxsPT09KEQ9dGhpcy5qZXNKb2JFeGVjdXRvcil8fHZvaWQgMD09PUQ/dm9pZCAwOkQucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nh'@; put 'c2UgMzpyZXR1cm4gZy5zZW50KCksWzQsbnVsbD09PShIPXRoaXMuZmlsZVVwbG9hZGVyKXx8dm9pZCAwPT09SD92b2lkIDA6SC5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKV07Y2FzZSA0OnJldHVybiBnLnNlbnQoKSxbNCxudWxsPT09KE49dGhpcy5zYXNqc0pvYkV4ZWN1dG9yKXx8dm9pZCAw'@; put 'PT09Tj92b2lkIDA6Ti5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKV07Y2FzZSA1OnJldHVybiBnLnNlbnQoKSxbMl19fSl9KX0sdGhpcy5zZXRWZXJib3NlTW9kZT1mdW5jdGlvbihHKXt2YXIgYjtudWxsPT09KGI9Y2UucmVxdWVzdENsaWVudCl8fHZvaWQgMD09PWJ8fGIuc2V0VmVyYm9zZU1v'@; put 'ZGUoRyl9LHRoaXMuc2FzanNDb25maWc9eih6KHt9LG9lKSx1ZSksdGhpcy5zZXR1cENvbmZpZ3VyYXRpb24oKX1yZXR1cm4gaGUucHJvdG90eXBlLmdldENzcmZUb2tlbj1mdW5jdGlvbih1ZSl7dmFyIGNlO3JldHVybiB2b2lkIDA9PT11ZSYmKHVlPSJnZW5lcmFsIiksbnVsbD09PShjZT10'@; put 'aGlzLnJlcXVlc3RDbGllbnQpfHx2b2lkIDA9PT1jZT92b2lkIDA6Y2UuZ2V0Q3NyZlRva2VuKHVlKX0saGUucHJvdG90eXBlLmV4ZWN1dGVTY3JpcHQ9ZnVuY3Rpb24odWUpe3ZhciBjZSxHLGI9dWUubGluZXNPZkNvZGUsRD11ZS5maWxlTmFtZSxIPXVlLmNvbnRleHROYW1lLE49dWUucnVu'@; put 'VGltZSxnPXVlLmF1dGhDb25maWcsQz11ZS5hdXRoQ29uZmlnU2FzOSxTPXVlLmRlYnVnO3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24odil7c3dpdGNoKHYubGFiZWwpe2Nhc2UgMDppZih0aGlzLmlzTWV0aG9kU3VwcG9ydGVk'@; put 'KCJleGVjdXRlU2NyaXB0IixbVS5TZXJ2ZXJUeXBlLlNhczksVS5TZXJ2ZXJUeXBlLlNhc2pzLFUuU2VydmVyVHlwZS5TYXNWaXlhXSksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlIT09VS5TZXJ2ZXJUeXBlLlNhczkpcmV0dXJuWzMsMl07aWYoIUMpdGhyb3cgbmV3IEVycm9yKCJBdXRo'@; put 'IGNvbmZpZyBmb3Igc2FzOSBpcyBub3QgcHJvdmlkZWQiKTtyZXR1cm5bNCxudWxsPT09KGNlPXRoaXMuc2FzOUFwaUNsaWVudCl8fHZvaWQgMD09PWNlP3ZvaWQgMDpjZS5leGVjdXRlU2NyaXB0KGIsQy51c2VyTmFtZSxDLnBhc3N3b3JkKV07Y2FzZSAxOmNhc2UgMzpjYXNlIDU6cmV0dXJu'@; put 'WzIsdi5zZW50KCldO2Nhc2UgMjpyZXR1cm4gdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlIT09VS5TZXJ2ZXJUeXBlLlNhc2pzP1szLDRdOls0LG51bGw9PT0oRz10aGlzLnNhc0pTQXBpQ2xpZW50KXx8dm9pZCAwPT09Rz92b2lkIDA6Ry5leGVjdXRlU2NyaXB0KGIuam9pbigiXG4iKSxO'@; put 'LGcpXTtjYXNlIDQ6aWYodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlIT09VS5TZXJ2ZXJUeXBlLlNhc1ZpeWEpcmV0dXJuWzMsNl07aWYoIShIPUh8fHRoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUpKXRocm93IG5ldyBFcnJvcigiQ29udGV4dCBuYW1lIGlzIHVuZGVmaW5lZC4gUGxl'@; put 'YXNlIHNldCBhIGBjb250ZXh0TmFtZWAgaW4geW91ciBTQVNqcyBvciBvdmVycmlkZSBjb25maWcuIik7aWYoIUQpdGhyb3cgbmV3IEVycm9yKCJGaWxlIG5hbWUgaXMgcmVxdWlyZWQgaW4gY2FzZSBvZiBTQVMgVklZQS4gUGxlYXNlIHByb3ZpZGUgYSBgZmlsZU5hbWVgLiIpO3JldHVybls0'@; put 'LHRoaXMuc2FzVml5YUFwaUNsaWVudC5leGVjdXRlU2NyaXB0KEQsYixILGcsbnVsbCxTfHx0aGlzLnNhc2pzQ29uZmlnLmRlYnVnKV07Y2FzZSA2OnJldHVyblsyXX19KX0pfSxoZS5wcm90b3R5cGUuZXhlY3V0ZUpvYj1mdW5jdGlvbih1ZSxjZSxHKXt2YXIgYjtyZXR1cm4gSyh0aGlzLHZv'@; put 'aWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKEQpe3N3aXRjaChELmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImV4ZWN1dGVTY3JpcHQiLFtVLlNlcnZlclR5cGUuU2FzanNdKSxbNCxudWxsPT09KGI9dGhpcy5zYXNKU0Fw'@; put 'aUNsaWVudCl8fHZvaWQgMD09PWI/dm9pZCAwOmIuZXhlY3V0ZUpvYih1ZSxjZSxHKV07Y2FzZSAxOnJldHVyblsyLEQuc2VudCgpXX19KX0pfSxoZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRzPWZ1bmN0aW9uKHVlKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKGNlKXtzd2l0Y2goY2UubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0Q29tcHV0ZUNvbnRleHRzIixbVS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0Q29tcHV0ZUNv'@; put 'bnRleHRzKHVlKV07Y2FzZSAxOnJldHVyblsyLGNlLnNlbnQoKV19fSl9KX0saGUucHJvdG90eXBlLmdldExhdW5jaGVyQ29udGV4dHM9ZnVuY3Rpb24odWUpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oY2Upe3N3aXRjaChj'@; put 'ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRMYXVuY2hlckNvbnRleHRzIixbVS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0TGF1bmNoZXJDb250ZXh0cyh1ZSldO2Nhc2UgMTpyZXR1cm5bMixjZS5zZW50'@; put 'KCldfX0pfSl9LGhlLnByb3RvdHlwZS5nZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldERlZmF1bHRDb21wdXRlQ29udGV4dHMiLFtVLlNlcnZlclR5cGUuU2FzVml5YV0pLHRoaXMuc2FzVml5YUFwaUNsaWVudC5n'@; put 'ZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzKCl9LGhlLnByb3RvdHlwZS5nZXRFeGVjdXRhYmxlQ29udGV4dHM9ZnVuY3Rpb24odWUpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oY2Upe3N3aXRjaChjZS5sYWJlbCl7Y2FzZSAw'@; put 'OnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRFeGVjdXRhYmxlQ29udGV4dHMiLFtVLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRFeGVjdXRhYmxlQ29udGV4dHModWUpXTtjYXNlIDE6cmV0dXJuWzIsY2Uuc2VudCgpXX19KX0pfSxo'@; put 'ZS5wcm90b3R5cGUuY3JlYXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24odWUsY2UsRyxiLEQsSCl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihOKXtzd2l0Y2goTi5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9k'@; put 'U3VwcG9ydGVkKCJjcmVhdGVDb21wdXRlQ29udGV4dCIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUNvbXB1dGVDb250ZXh0KHVlLGNlLEcsYixELEgpXTtjYXNlIDE6cmV0dXJuWzIsTi5zZW50KCldfX0pfSl9LGhlLnByb3RvdHlwZS5j'@; put 'cmVhdGVMYXVuY2hlckNvbnRleHQ9ZnVuY3Rpb24odWUsY2UsRyxiKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKEQpe3N3aXRjaChELmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImNyZWF0'@; put 'ZUxhdW5jaGVyQ29udGV4dCIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUxhdW5jaGVyQ29udGV4dCh1ZSxjZSxHLGIpXTtjYXNlIDE6cmV0dXJuWzIsRC5zZW50KCldfX0pfSl9LGhlLnByb3RvdHlwZS5lZGl0Q29tcHV0ZUNvbnRleHQ9'@; put 'ZnVuY3Rpb24odWUsY2UsRyl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihiKXtzd2l0Y2goYi5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJlZGl0Q29tcHV0ZUNvbnRleHQiLFtVLlNlcnZl'@; put 'clR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5lZGl0Q29tcHV0ZUNvbnRleHQodWUsY2UsRyldO2Nhc2UgMTpyZXR1cm5bMixiLnNlbnQoKV19fSl9KX0saGUucHJvdG90eXBlLmRlbGV0ZUNvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKHVlLGNlKXtyZXR1cm4gSyh0aGlz'@; put 'LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKEcpe3N3aXRjaChHLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImRlbGV0ZUNvbXB1dGVDb250ZXh0IixbVS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1Zp'@; put 'eWFBcGlDbGllbnQuZGVsZXRlQ29tcHV0ZUNvbnRleHQodWUsY2UpXTtjYXNlIDE6cmV0dXJuWzIsRy5zZW50KCldfX0pfSl9LGhlLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZT1mdW5jdGlvbih1ZSxjZSl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIEkodGhpcyxmdW5jdGlvbihHKXtzd2l0Y2goRy5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRDb21wdXRlQ29udGV4dEJ5TmFtZSIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldENvbXB1dGVD'@; put 'b250ZXh0QnlOYW1lKHVlLGNlKV07Y2FzZSAxOnJldHVyblsyLEcuc2VudCgpXX19KX0pfSxoZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkPWZ1bmN0aW9uKHVlLGNlKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9u'@; put 'KEcpe3N3aXRjaChHLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldENvbXB1dGVDb250ZXh0QnlJZCIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldENvbXB1dGVDb250ZXh0QnlJZCh1ZSxjZSldO2Nhc2Ug'@; put 'MTpyZXR1cm5bMixHLnNlbnQoKV19fSl9KX0saGUucHJvdG90eXBlLmNyZWF0ZVNlc3Npb249ZnVuY3Rpb24odWUsY2Upe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oRyl7c3dpdGNoKEcubGFiZWwpe2Nhc2UgMDpyZXR1cm4g'@; put 'dGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiY3JlYXRlU2Vzc2lvbiIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZVNlc3Npb24odWUsY2UpXTtjYXNlIDE6cmV0dXJuWzIsRy5zZW50KCldfX0pfSl9LGhlLnByb3RvdHlwZS5jcmVhdGVGb2xk'@; put 'ZXI9ZnVuY3Rpb24odWUsY2UsRyxiLEQsSCl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihOKXtzd2l0Y2goTi5sYWJlbCl7Y2FzZSAwOnJldHVybiBEP1s0LEQuY3JlYXRlRm9sZGVyKHVlLGNlLEcsYixIKV06WzMsMl07Y2Fz'@; put 'ZSAxOmNhc2UgMzpyZXR1cm5bMixOLnNlbnQoKV07Y2FzZSAyOnJldHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVGb2xkZXIodWUsY2UsRyxiLEgpXX19KX0pfSxoZS5wcm90b3R5cGUuY3JlYXRlRmlsZT1mdW5jdGlvbih1ZSxjZSxHLGIsRCxIKXtyZXR1cm4gSyh0aGlzLHZv'@; put 'aWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKE4pe3N3aXRjaChOLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEg/WzQsSC5jcmVhdGVGaWxlKHVlLGNlLEcsYixEKV06WzMsMl07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMixOLnNlbnQoKV07Y2FzZSAyOnJldHVybls0'@; put 'LHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVGaWxlKHVlLGNlLEcsYixEKV19fSl9KX0saGUucHJvdG90eXBlLmdldEZvbGRlcj1mdW5jdGlvbih1ZSxjZSl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihHKXtzd2l0Y2go'@; put 'Ry5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRGb2xkZXIiLFtVLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRGb2xkZXIodWUsY2UpXTtjYXNlIDE6cmV0dXJuWzIsRy5zZW50KCldfX0pfSl9LGhlLnByb3Rv'@; put 'dHlwZS5kZWxldGVGb2xkZXI9ZnVuY3Rpb24odWUsY2Upe3ZhciBHO3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oYil7c3dpdGNoKGIubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVsZXRl'@; put 'Rm9sZGVyIixbVS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCxudWxsPT09KEc9dGhpcy5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09Rz92b2lkIDA6Ry5kZWxldGVGb2xkZXIodWUsY2UpXTtjYXNlIDE6cmV0dXJuWzIsYi5zZW50KCldfX0pfSl9LGhlLnByb3RvdHlwZS5saXN0Rm9sZGVy'@; put 'PWZ1bmN0aW9uKHVlLGNlLEcpe3ZhciBiO3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oRCl7c3dpdGNoKEQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgibGlzdEZvbGRlciIsW1UuU2VydmVy'@; put 'VHlwZS5TYXNWaXlhXSksWzQsbnVsbD09PShiPXRoaXMuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PWI/dm9pZCAwOmIubGlzdEZvbGRlcih1ZSxjZSxHKV07Y2FzZSAxOnJldHVyblsyLEQuc2VudCgpXX19KX0pfSxoZS5wcm90b3R5cGUubW92ZUZvbGRlcj1mdW5jdGlvbih1ZSxjZSxH'@; put 'LGIpe3ZhciBEO3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oSCl7c3dpdGNoKEgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgibW92ZUZvbGRlciIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSks'@; put 'WzQsbnVsbD09PShEPXRoaXMuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PUQ/dm9pZCAwOkQubW92ZUZvbGRlcih1ZSxjZSxHLGIpXTtjYXNlIDE6cmV0dXJuWzIsSC5zZW50KCldfX0pfSl9LGhlLnByb3RvdHlwZS5jcmVhdGVKb2JEZWZpbml0aW9uPWZ1bmN0aW9uKHVlLGNlLEcsYixE'@; put 'LEgpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oTil7c3dpdGNoKE4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiY3JlYXRlSm9iRGVmaW5pdGlvbiIsW1UuU2VydmVyVHlwZS5TYXNWaXlh'@; put 'XSksSD9bNCxILmNyZWF0ZUpvYkRlZmluaXRpb24odWUsY2UsRyxiLEQpXTpbMywyXTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLE4uc2VudCgpXTtjYXNlIDI6cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUpvYkRlZmluaXRpb24odWUsY2UsRyxiLEQpXX19KX0pfSxoZS5w'@; put 'cm90b3R5cGUuZ2V0QXV0aENvZGU9ZnVuY3Rpb24odWUpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oY2Upe3N3aXRjaChjZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRBdXRoQ29k'@; put 'ZSIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEF1dGhDb2RlKHVlKV07Y2FzZSAxOnJldHVyblsyLGNlLnNlbnQoKV19fSl9KX0saGUucHJvdG90eXBlLmdldEFjY2Vzc1Rva2VuPWZ1bmN0aW9uKHVlLGNlLEcpe3JldHVybiBLKHRoaXMsdm9p'@; put 'ZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oYil7c3dpdGNoKGIubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0QWNjZXNzVG9rZW4iLFtVLlNlcnZlclR5cGUuU2FzVml5YSxVLlNlcnZlclR5cGUuU2FzanNdKSx0aGlz'@; put 'LnNhc2pzQ29uZmlnLnNlcnZlclR5cGUhPT1VLlNlcnZlclR5cGUuU2FzanM/WzMsMl06WzQsdGhpcy5zYXNKU0FwaUNsaWVudC5nZXRBY2Nlc3NUb2tlbih1ZSxHKV07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMixiLnNlbnQoKV07Y2FzZSAyOnJldHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVu'@; put 'dC5nZXRBY2Nlc3NUb2tlbih1ZSxjZSxHKV19fSl9KX0saGUucHJvdG90eXBlLnJlZnJlc2hUb2tlbnM9ZnVuY3Rpb24odWUsY2UsRyl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihiKXtzd2l0Y2goYi5sYWJlbCl7Y2FzZSAw'@; put 'OnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJyZWZyZXNoVG9rZW5zIixbVS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsVS5TZXJ2ZXJUeXBlLlNhc2pzXSksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlIT09VS5TZXJ2ZXJUeXBlLlNhc2pzP1szLDJdOls0LHRoaXMuc2FzSlNBcGlDbGll'@; put 'bnQucmVmcmVzaFRva2VucyhHKV07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMixiLnNlbnQoKV07Y2FzZSAyOnJldHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5yZWZyZXNoVG9rZW5zKHVlLGNlLEcpXX19KX0pfSxoZS5wcm90b3R5cGUuZGVsZXRlQ2xpZW50PWZ1bmN0aW9uKHVlLGNlKXty'@; put 'ZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKEcpe3N3aXRjaChHLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImRlbGV0ZUNsaWVudCIsW1UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5z'@; put 'YXNWaXlhQXBpQ2xpZW50LmRlbGV0ZUNsaWVudCh1ZSxjZSldO2Nhc2UgMTpyZXR1cm5bMixHLnNlbnQoKV19fSl9KX0saGUucHJvdG90eXBlLmdldFNhc2pzQ29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2FzanNDb25maWd9LGhlLnByb3RvdHlwZS5nZXRVc2VyTmFtZT1mdW5jdGlv'@; put 'bigpe3JldHVybiB0aGlzLmF1dGhNYW5hZ2VyLnVzZXJOYW1lfSxoZS5wcm90b3R5cGUuc2V0U0FTanNDb25maWc9ZnVuY3Rpb24odWUpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oY2Upe3JldHVybiB0aGlzLnNhc2pzQ29u'@; put 'ZmlnPXooeih7fSx0aGlzLnNhc2pzQ29uZmlnKSx1ZSksdGhpcy5zZXR1cENvbmZpZ3VyYXRpb24oKSxbMl19KX0pfSxoZS5wcm90b3R5cGUuc2V0RGVidWdTdGF0ZT1mdW5jdGlvbih1ZSl7dGhpcy5zYXNqc0NvbmZpZy5kZWJ1Zz11ZSx0aGlzLnNhc1ZpeWFBcGlDbGllbnQmJih0aGlzLnNh'@; put 'c1ZpeWFBcGlDbGllbnQuZGVidWc9dWUpfSxoZS5wcm90b3R5cGUuY2hlY2tTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbih1ZSl7cmV0dXJuWzIsdGhpcy5hdXRoTWFuYWdlci5jaGVja1Nlc3Np'@; put 'b24oKV19KX0pfSxoZS5wcm90b3R5cGUubG9nSW49ZnVuY3Rpb24odWUsY2UsRyxiKXtyZXR1cm4gdm9pZCAwPT09YiYmKGI9e30pLEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihEKXtpZih0aGlzLnNhc2pzQ29uZmlnLmxvZ2luTWVjaGFu'@; put 'aXNtPT09ai5Mb2dpbk1lY2hhbmlzbS5EZWZhdWx0KXtpZighdWV8fCFjZSl0aHJvdyBuZXcgRXJyb3IoIkEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSByZXF1aXJlZCB3aGVuIHVzaW5nIHRoZSBkZWZhdWx0IGxvZ2luIG1lY2hhbmlzbS4iKTtyZXR1cm5bMix0aGlzLmF1dGhNYW5hZ2Vy'@; put 'LmxvZ0luKHVlLGNlKV19aWYodHlwZW9mIHdpbmRvdz4idSIpdGhyb3cgbmV3IEVycm9yKCJUaGUgcmVkaXJlY3RlZCBsb2dpbiBtZWNoYW5pc20gaXMgb25seSBhdmFpbGFibGUgZm9yIHVzZSBpbiB0aGUgYnJvd3Nlci4iKTtyZXR1cm5bMix0aGlzLmF1dGhNYW5hZ2VyLnJlZGlyZWN0ZWRM'@; put 'b2dJbihiKV19KX0pfSxoZS5wcm90b3R5cGUubG9nT3V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXV0aE1hbmFnZXIubG9nT3V0KCl9LGhlLnByb3RvdHlwZS51cGxvYWRGaWxlPWZ1bmN0aW9uKHVlLGNlLEcsYixEKXtyZXR1cm4gdm9pZCAwPT09YiYmKGI9e30pLEsodGhpcyx2b2lkIDAs'@; put 'dm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihOKXtzd2l0Y2goTi5sYWJlbCl7Y2FzZSAwOnJldHVybiBiPXooeih7fSx0aGlzLnNhc2pzQ29uZmlnKSxiKSxbNCx0aGlzLmZpbGVVcGxvYWRlci5leGVjdXRlKHVlLHtmaWxlczpjZSxwYXJhbXM6R30sYixEKV07Y2Fz'@; put 'ZSAxOnJldHVyblsyLE4uc2VudCgpXX19KX0pfSxoZS5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbih1ZSxjZSxHLGIsRCxIKXtyZXR1cm4gdm9pZCAwPT09RyYmKEc9e30pLHZvaWQgMD09PUgmJihIPVtdKSxLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBOO3JldHVybiBJ'@; put 'KHRoaXMsZnVuY3Rpb24oZyl7c3dpdGNoKGcubGFiZWwpe2Nhc2UgMDpyZXR1cm4gRz16KHooe30sdGhpcy5zYXNqc0NvbmZpZyksRyksKE49KDAsRS52YWxpZGF0ZUlucHV0KShjZSkpLnN0YXR1cz9HLnNlcnZlclR5cGUhPT1VLlNlcnZlclR5cGUuU2FzanM/WzMsMl06WzQsdGhpcy5zYXNq'@; put 'c0pvYkV4ZWN1dG9yLmV4ZWN1dGUodWUsY2UsRyxiLEQsSCldOlszLDEyXTtjYXNlIDE6Y2FzZSAzOmNhc2UgNTpjYXNlIDg6Y2FzZSAxMDpyZXR1cm5bMixnLnNlbnQoKV07Y2FzZSAyOnJldHVybiBHLnNlcnZlclR5cGUhPT1VLlNlcnZlclR5cGUuU2FzVml5YXx8bnVsbD09Ry51c2VDb21w'@; put 'dXRlQXBpP1szLDddOkcudXNlQ29tcHV0ZUFwaT9bNCx0aGlzLmNvbXB1dGVKb2JFeGVjdXRvci5leGVjdXRlKHVlLGNlLEcsYixEKV06WzMsNF07Y2FzZSA0OnJldHVybiBHLmNvbnRleHROYW1lfHwoRz16KHooe30sRykse2NvbnRleHROYW1lOiJTQVMgSm9iIEV4ZWN1dGlvbiBjb21wdXRl'@; put 'IGNvbnRleHQifSkpLFs0LHRoaXMuamVzSm9iRXhlY3V0b3IuZXhlY3V0ZSh1ZSxjZSxHLGIsRCxIKV07Y2FzZSA2OnJldHVyblszLDExXTtjYXNlIDc6cmV0dXJuIEcuc2VydmVyVHlwZT09PVUuU2VydmVyVHlwZS5TYXM5JiZHLnVzZXJuYW1lJiZHLnBhc3N3b3JkP1s0LHRoaXMuc2FzOUpv'@; put 'YkV4ZWN1dG9yLmV4ZWN1dGUodWUsY2UsRyldOlszLDldO2Nhc2UgOTpyZXR1cm5bNCx0aGlzLndlYkpvYkV4ZWN1dG9yLmV4ZWN1dGUodWUsY2UsRyxiLEQsSCldO2Nhc2UgMTE6cmV0dXJuWzMsMTNdO2Nhc2UgMTI6cmV0dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IGouRXJyb3JSZXNwb25z'@; put 'ZShOLm1zZykpXTtjYXNlIDEzOnJldHVyblsyXX19KX0pfSxoZS5wcm90b3R5cGUuZGVwbG95U2VydmljZVBhY2s9ZnVuY3Rpb24odWUsY2UsRyxiLEQpe3JldHVybiB2b2lkIDA9PT1EJiYoRD0hMSksSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSCxOO3JldHVybiBJKHRo'@; put 'aXMsZnVuY3Rpb24oQyl7c3dpdGNoKEMubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVwbG95U2VydmljZVBhY2siLFtVLlNlcnZlclR5cGUuU2FzVml5YV0pLEg9bnVsbCxHfHxjZT8oR3x8KEc9dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwpLGNlfHwo'@; put 'Y2U9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2MpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PVUuU2VydmVyVHlwZS5TYXNWaXlhPyhIPW5ldyBWLlNBU1ZpeWFBcGlDbGllbnQoRyxjZSx0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lLHRoaXMucmVxdWVzdENsaWVudCkpLmRlYnVn'@; put 'PXRoaXMuc2FzanNDb25maWcuZGVidWc6dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09VS5TZXJ2ZXJUeXBlLlNhczkmJihIPW5ldyBCLlNBUzlBcGlDbGllbnQoRyx0aGlzLmpvYnNQYXRoLHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpKSk6KE49bnVsbCx0aGlzLnNh'@; put 'c2pzQ29uZmlnLnNlcnZlclR5cGU9PT1VLlNlcnZlclR5cGUuU2FzVml5YT9OPXRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRDb25maWcoKTp0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1VLlNlcnZlclR5cGUuU2FzOSYmKE49dGhpcy5zYXM5QXBpQ2xpZW50LmdldENvbmZpZygpKSxH'@; put 'PU4uc2VydmVyVXJsLGNlPU4ucm9vdEZvbGRlck5hbWUpLHVlLm1lbWJlcnNbMF0ubWVtYmVycyYmdWUubWVtYmVyc1swXS5tZW1iZXJzLnNvcnQoZnVuY3Rpb24oUyl7cmV0dXJuImZvbGRlciI9PT1TLnR5cGU/LTE6MX0pLFs0LHRoaXMuY3JlYXRlRm9sZGVyc0FuZFNlcnZpY2VzKGNlLHVl'@; put 'Lm1lbWJlcnMsYixILEQpXTtjYXNlIDE6cmV0dXJuIEMuc2VudCgpLFsyXX19KX0pfSxoZS5wcm90b3R5cGUuc3RhcnRDb21wdXRlSm9iPWZ1bmN0aW9uKHVlLGNlLEcsYixELEgsTixnLEMpe3ZhciBTLHYscCx3O3JldHVybiB2b2lkIDA9PT1HJiYoRz17fSksdm9pZCAwPT09TiYmKE49ITEp'@; put 'LEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihKKXtpZihHPXooeih7fSx0aGlzLnNhc2pzQ29uZmlnKSxHKSx0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJzdGFydENvbXB1dGVKb2IiLFtVLlNlcnZlclR5cGUuU2FzVml5YV0pLCFHLmNvbnRl'@; put 'eHROYW1lKXRocm93IG5ldyBFcnJvcigiQ29udGV4dCBuYW1lIGlzIHVuZGVmaW5lZC4gUGxlYXNlIHNldCBhIGBjb250ZXh0TmFtZWAgaW4geW91ciBTQVNqcyBvciBvdmVycmlkZSBjb25maWcuIik7cmV0dXJuIEM/KG51bGw9PT0oUz10aGlzLnJlcXVlc3RDbGllbnQpfHx2b2lkIDA9PT1T'@; put 'fHxTLnNldFZlcmJvc2VNb2RlKEMpLG51bGw9PT0odj10aGlzLnJlcXVlc3RDbGllbnQpfHx2b2lkIDA9PT12fHx2LmVuYWJsZVZlcmJvc2VNb2RlKCkpOiExPT09QyYmKG51bGw9PT0ocD10aGlzLnJlcXVlc3RDbGllbnQpfHx2b2lkIDA9PT1wfHxwLmRpc2FibGVWZXJib3NlTW9kZSgpKSxb'@; put 'MixudWxsPT09KHc9dGhpcy5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09dz92b2lkIDA6dy5leGVjdXRlQ29tcHV0ZUpvYih1ZSxHLmNvbnRleHROYW1lLEcuZGVidWcsY2UsYiwhIUQsITEsSCxOLGcpXX0pfSl9LGhlLnByb3RvdHlwZS5mZXRjaExvZ0ZpbGVDb250ZW50PWZ1bmN0aW9u'@; put 'KHVlLGNlKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKEcpe3N3aXRjaChHLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCh1ZSxjZSkudGhlbihmdW5jdGlvbihiKXtpZighYilyZXR1cm4g'@; put 'UHJvbWlzZS5yZWplY3QobmV3IGouRXJyb3JSZXNwb25zZSgiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgbG9nLiBSZXNwb25zZSB3YXMgbm90IHByb3ZpZGVkLiIpKTt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGIucmVzdWx0KX1jYXRjaChEKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGou'@; put 'RXJyb3JSZXNwb25zZSgiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgbG9nLiBUaGUgcmVzdWx0IGlzIG5vdCB2YWxpZC4iLEQpKX19KV07Y2FzZSAxOnJldHVyblsyLEcuc2VudCgpXX19KX0pfSxoZS5wcm90b3R5cGUuZ2V0U2FzUmVxdWVzdHM9ZnVuY3Rpb24oKXtyZXR1cm4gayhbXSx0aGlzLnJl'@; put 'cXVlc3RDbGllbnQuZ2V0UmVxdWVzdHMoKSwhMCkuc29ydChFLmNvbXBhcmVUaW1lc3RhbXBzKX0saGUucHJvdG90eXBlLmNsZWFyU2FzUmVxdWVzdHM9ZnVuY3Rpb24oKXt0aGlzLnJlcXVlc3RDbGllbnQuY2xlYXJSZXF1ZXN0cygpfSxoZS5wcm90b3R5cGUuc2V0dXBDb25maWd1cmF0aW9u'@; put 'PWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmx8fCIiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwpaWYodHlwZW9mIGxvY2F0aW9uPCJ1Iil7dmFyIHVlPSIiLmNvbmNhdChsb2NhdGlvbi5wcm90b2NvbCwiLy8iKS5jb25jYXQobG9jYXRpb24u'@; put 'aG9zdG5hbWUpO2xvY2F0aW9uLnBvcnQmJih1ZT0iIi5jb25jYXQodWUsIjoiKS5jb25jYXQobG9jYXRpb24ucG9ydCkpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsPXVlfWVsc2UgdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmw9IiI7Ii8iPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJV'@; put 'cmwuc2xpY2UoLTEpJiYodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmw9dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwuc2xpY2UoMCwtMSkpLHRoaXMucmVxdWVzdENsaWVudD90aGlzLnJlcXVlc3RDbGllbnQuc2V0Q29uZmlnKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2Fz'@; put 'anNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpOnRoaXMucmVxdWVzdENsaWVudD1uZXcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09VS5TZXJ2ZXJUeXBlLlNhc2pzP2VlLlNhc2pzUmVxdWVzdENsaWVudDpxLlJlcXVlc3RDbGllbnQpKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJs'@; put 'LHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMsdGhpcy5zYXNqc0NvbmZpZy5yZXF1ZXN0SGlzdG9yeUxpbWl0LHRoaXMuc2FzanNDb25maWcudmVyYm9zZSksdGhpcy5qb2JzUGF0aD10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1VLlNlcnZlclR5cGUuU2FzVml5YT90'@; put 'aGlzLnNhc2pzQ29uZmlnLnBhdGhTQVNWaXlhOnRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PVUuU2VydmVyVHlwZS5TYXM5P3RoaXMuc2FzanNDb25maWcucGF0aFNBUzk6dGhpcy5zYXNqc0NvbmZpZy5wYXRoU0FTSlMsdGhpcy5hdXRoTWFuYWdlcj1uZXcgWC5BdXRoTWFuYWdlcih0'@; put 'aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUsdGhpcy5yZXF1ZXN0Q2xpZW50LHRoaXMucmVzZW5kV2FpdGluZ1JlcXVlc3RzKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1VLlNlcnZlclR5cGUuU2FzVml5YSYmKHRoaXMuc2FzVml5'@; put 'YUFwaUNsaWVudD90aGlzLnNhc1ZpeWFBcGlDbGllbnQuc2V0Q29uZmlnKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuYXBwTG9jKTp0aGlzLnNhc1ZpeWFBcGlDbGllbnQ9bmV3IFYuU0FTVml5YUFwaUNsaWVudCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVy'@; put 'bCx0aGlzLnNhc2pzQ29uZmlnLmFwcExvYyx0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmRlYnVnPXRoaXMuc2FzanNDb25maWcuZGVidWcpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PVUuU2VydmVy'@; put 'VHlwZS5TYXM5JiYodGhpcy5zYXM5QXBpQ2xpZW50P3RoaXMuc2FzOUFwaUNsaWVudC5zZXRDb25maWcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwpOnRoaXMuc2FzOUFwaUNsaWVudD1uZXcgQi5TQVM5QXBpQ2xpZW50KHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuam9ic1Bh'@; put 'dGgsdGhpcy5zYXNqc0NvbmZpZy5odHRwc0FnZW50T3B0aW9ucykpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PVUuU2VydmVyVHlwZS5TYXNqcyYmKHRoaXMuc2FzSlNBcGlDbGllbnR8fCh0aGlzLnNhc0pTQXBpQ2xpZW50PW5ldyBZLlNBU2pzQXBpQ2xpZW50KHRoaXMucmVxdWVz'@; put 'dENsaWVudCkpKSx0aGlzLmZpbGVVcGxvYWRlcj1uZXcgdGUuRmlsZVVwbG9hZGVyKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSx0aGlzLmpvYnNQYXRoLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy53ZWJKb2JFeGVjdXRvcj1uZXcgdGUu'@; put 'V2ViSm9iRXhlY3V0b3IodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlLHRoaXMuam9ic1BhdGgsdGhpcy5yZXF1ZXN0Q2xpZW50LHRoaXMuc2FzVml5YUFwaUNsaWVudCksdGhpcy5zYXNqc0pvYkV4ZWN1dG9yPW5ldyB0ZS5TYXNqc0pvYkV4'@; put 'ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuam9ic1BhdGgsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlzLnNhczlKb2JFeGVjdXRvcj1uZXcgdGUuU2FzOUpvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlw'@; put 'ZSx0aGlzLmpvYnNQYXRoLHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRpb25zKSx0aGlzLmNvbXB1dGVKb2JFeGVjdXRvcj1uZXcgdGUuQ29tcHV0ZUpvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzVml5YUFwaUNs'@; put 'aWVudCksdGhpcy5qZXNKb2JFeGVjdXRvcj1uZXcgdGUuSmVzSm9iRXhlY3V0b3IodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNWaXlhQXBpQ2xpZW50KX0saGUucHJvdG90eXBlLmNyZWF0ZUZvbGRlcnNBbmRTZXJ2aWNlcz1mdW5jdGlvbih1ZSxjZSxHLGIsRCl7cmV0dXJu'@; put 'IEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEg9dGhpcztyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKE4pe3N3aXRjaChOLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAsRS5hc3luY0ZvckVhY2gpKGNlLGZ1bmN0aW9uKGcpe3JldHVybiBLKEgsdm9pZCAwLHZvaWQgMCxmdW5j'@; put 'dGlvbigpe3JldHVybiBJKHRoaXMsZnVuY3Rpb24oQyl7c3dpdGNoKEMubGFiZWwpe2Nhc2UgMDpzd2l0Y2goZy50eXBlKXtjYXNlImZvbGRlciI6cmV0dXJuWzMsMV07Y2FzZSJmaWxlIjpyZXR1cm5bMywzXTtjYXNlInNlcnZpY2UiOnJldHVyblszLDVdfXJldHVyblszLDddO2Nhc2UgMTpy'@; put 'ZXR1cm5bNCx0aGlzLmNyZWF0ZUZvbGRlcihnLm5hbWUsdWUsdm9pZCAwLEcsYixEKV07Y2FzZSAyOnJldHVybiBDLnNlbnQoKSxbMyw4XTtjYXNlIDM6cmV0dXJuWzQsdGhpcy5jcmVhdGVGaWxlKGcubmFtZSxnLmNvZGUsdWUsdm9pZCAwLEcsYildO2Nhc2UgNDpyZXR1cm4gQy5zZW50KCks'@; put 'WzMsOF07Y2FzZSA1OnJldHVybls0LHRoaXMuY3JlYXRlSm9iRGVmaW5pdGlvbihnLm5hbWUsZy5jb2RlLHVlLHZvaWQgMCxHLGIpXTtjYXNlIDY6cmV0dXJuIEMuc2VudCgpLFszLDhdO2Nhc2UgNzp0aHJvdyBuZXcgRXJyb3IoIlVuaWRlbnRpZmllZCBtZW1iZXIgJyIuY29uY2F0KGcubmFt'@; put 'ZSwiJyBwcm92aWRlZC4iKSk7Y2FzZSA4OnJldHVybiJmb2xkZXIiPT09Zy50eXBlJiZnLm1lbWJlcnMmJmcubWVtYmVycy5sZW5ndGg/WzQsdGhpcy5jcmVhdGVGb2xkZXJzQW5kU2VydmljZXMoIiIuY29uY2F0KHVlLCIvIikuY29uY2F0KGcubmFtZSksZy5tZW1iZXJzLEcsYixEKV06WzMs'@; put 'MTBdO2Nhc2UgOTpDLnNlbnQoKSxDLmxhYmVsPTEwO2Nhc2UgMTA6cmV0dXJuWzJdfX0pfSl9KV07Y2FzZSAxOnJldHVybiBOLnNlbnQoKSxbMl19fSl9KX0saGUucHJvdG90eXBlLmlzTWV0aG9kU3VwcG9ydGVkPWZ1bmN0aW9uKHVlLGNlKXtpZighdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJU'@; put 'eXBlfHwhY2UuaW5jbHVkZXModGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlKSl0aHJvdyBuZXcgRXJyb3IoIk1ldGhvZCAnIi5jb25jYXQodWUsIicgaXMgb25seSBzdXBwb3J0ZWQgb24gIikuY29uY2F0KGNlLmpvaW4oIiwgIiksIiBzZXJ2ZXJzLiIpKX0saGUucHJvdG90eXBlLmVuYWJs'@; put 'ZVZlcmJvc2VNb2RlPWZ1bmN0aW9uKHVlLGNlKXt2YXIgRztudWxsPT09KEc9dGhpcy5yZXF1ZXN0Q2xpZW50KXx8dm9pZCAwPT09R3x8Ry5lbmFibGVWZXJib3NlTW9kZSh1ZSxjZSl9LGhlLnByb3RvdHlwZS5kaXNhYmxlVmVyYm9zZU1vZGU9ZnVuY3Rpb24oKXt2YXIgdWU7bnVsbD09PSh1'@; put 'ZT10aGlzLnJlcXVlc3RDbGllbnQpfHx2b2lkIDA9PT11ZXx8dWUuZGlzYWJsZVZlcmJvc2VNb2RlKCl9LGhlfSgpO08uZGVmYXVsdD1zZX0sMzQ2NzpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIHo9T2Jq'@; put 'ZWN0LmFzc2lnbnx8ZnVuY3Rpb24oVSl7Zm9yKHZhciBxLGVlPTEsdGU9YXJndW1lbnRzLmxlbmd0aDtlZTx0ZTtlZSsrKWZvcih2YXIgb2UgaW4gcT1hcmd1bWVudHNbZWVdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChxLG9lKSYmKFVbb2VdPXFbb2VdKTtyZXR1cm4g'@; put 'VX0sei5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LEs9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFUscSxlZSx0ZSl7cmV0dXJuIG5ldyhlZXx8KGVlPVByb21pc2UpKShmdW5jdGlvbihvZSxzZSl7ZnVuY3Rpb24gaGUoRyl7dHJ5e2NlKHRlLm5leHQoRykpfWNhdGNoKGIpe3NlKGIp'@; put 'fX1mdW5jdGlvbiB1ZShHKXt0cnl7Y2UodGUudGhyb3coRykpfWNhdGNoKGIpe3NlKGIpfX1mdW5jdGlvbiBjZShHKXt2YXIgYjtHLmRvbmU/b2UoRy52YWx1ZSk6KGI9Ry52YWx1ZSxiIGluc3RhbmNlb2YgZWU/YjpuZXcgZWUoZnVuY3Rpb24oRCl7RChiKX0pKS50aGVuKGhlLHVlKX1jZSgo'@; put 'dGU9dGUuYXBwbHkoVSxxfHxbXSkpLm5leHQoKSl9KX0sST10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihVLHEpe3ZhciBlZSx0ZSxvZSxzZSxoZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvZVswXSl0aHJvdyBvZVsxXTtyZXR1cm4gb2VbMV19LHRyeXM6W10sb3Bz'@; put 'OltdfTtyZXR1cm4gc2U9e25leHQ6dWUoMCksdGhyb3c6dWUoMSkscmV0dXJuOnVlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoc2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksc2U7ZnVuY3Rpb24gdWUoY2Upe3JldHVybiBmdW5jdGlvbihHKXty'@; put 'ZXR1cm4gZnVuY3Rpb24oYil7aWYoZWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7aGU7KXRyeXtpZihlZT0xLHRlJiYob2U9MiZiWzBdP3RlLnJldHVybjpiWzBdP3RlLnRocm93fHwoKG9lPXRlLnJldHVybikmJm9lLmNhbGwo'@; put 'dGUpLDApOnRlLm5leHQpJiYhKG9lPW9lLmNhbGwodGUsYlsxXSkpLmRvbmUpcmV0dXJuIG9lO3N3aXRjaCh0ZT0wLG9lJiYoYj1bMiZiWzBdLG9lLnZhbHVlXSksYlswXSl7Y2FzZSAwOmNhc2UgMTpvZT1iO2JyZWFrO2Nhc2UgNDpyZXR1cm4gaGUubGFiZWwrKyx7dmFsdWU6YlsxXSxkb25l'@; put 'OiExfTtjYXNlIDU6aGUubGFiZWwrKyx0ZT1iWzFdLGI9WzBdO2NvbnRpbnVlO2Nhc2UgNzpiPWhlLm9wcy5wb3AoKSxoZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgob2U9KG9lPWhlLnRyeXMpLmxlbmd0aD4wJiZvZVtvZS5sZW5ndGgtMV0pfHw2IT09YlswXSYmMiE9PWJb'@; put 'MF0pKXtoZT0wO2NvbnRpbnVlfWlmKDM9PT1iWzBdJiYoIW9lfHxiWzFdPm9lWzBdJiZiWzFdPG9lWzNdKSl7aGUubGFiZWw9YlsxXTticmVha31pZig2PT09YlswXSYmaGUubGFiZWw8b2VbMV0pe2hlLmxhYmVsPW9lWzFdLG9lPWI7YnJlYWt9aWYob2UmJmhlLmxhYmVsPG9lWzJdKXtoZS5s'@; put 'YWJlbD1vZVsyXSxoZS5vcHMucHVzaChiKTticmVha31vZVsyXSYmaGUub3BzLnBvcCgpLGhlLnRyeXMucG9wKCk7Y29udGludWV9Yj1xLmNhbGwoVSxoZSl9Y2F0Y2goRCl7Yj1bNixEXSx0ZT0wfWZpbmFsbHl7ZWU9b2U9MH1pZig1JmJbMF0pdGhyb3cgYlsxXTtyZXR1cm57dmFsdWU6Ylsw'@; put 'XT9iWzFdOnZvaWQgMCxkb25lOiEwfX0oW2NlLEddKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5TQVNqc0FwaUNsaWVudD12b2lkIDA7dmFyIGs9Uig2MjMwKSxFPVIoMzkwMCksaj1SKDk3NzgpLFY9Uig1NyksQj1SKDI0OSksWT1SKDcw'@; put 'NCksWD1mdW5jdGlvbigpe2Z1bmN0aW9uIFUocSl7dGhpcy5yZXF1ZXN0Q2xpZW50PXF9cmV0dXJuIFUucHJvdG90eXBlLmdldEFjY2Vzc1Rva2VuRm9yUmVxdWVzdD1mdW5jdGlvbihxKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0'@; put 'aW9uKGVlKXtzd2l0Y2goZWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gcT9bNCwoMCxZLmdldFRva2VucykodGhpcy5yZXF1ZXN0Q2xpZW50LHEsRS5TZXJ2ZXJUeXBlLlNhc2pzKV06WzMsMl07Y2FzZSAxOnJldHVyblsyLGVlLnNlbnQoKS5hY2Nlc3NfdG9rZW5dO2Nhc2UgMjpyZXR1cm5bMl19'@; put 'fSl9KX0sVS5wcm90b3R5cGUuZGVwbG95PWZ1bmN0aW9uKHEsZWUsdGUpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvZSxzZTtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmdldEFjY2Vz'@; put 'c1Rva2VuRm9yUmVxdWVzdCh0ZSldO2Nhc2UgMTpyZXR1cm4gb2U9aGUuc2VudCgpLHEuYXBwTG9jPXEuYXBwTG9jfHxlZSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiU0FTanNBcGkvZHJpdmUvZGVwbG95IixxLG9lLHZvaWQgMCx7fSx7bWF4Q29udGVudExlbmd0aDoxLzAsbWF4Qm9k'@; put 'eUxlbmd0aDoxLzB9KV07Y2FzZSAyOnJldHVybiBzZT1oZS5zZW50KCkucmVzdWx0LFsyLFByb21pc2UucmVzb2x2ZShzZSldfX0pfSl9LFUucHJvdG90eXBlLmRlcGxveVppcEZpbGU9ZnVuY3Rpb24ocSxlZSl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHRl'@; put 'LG9lLHNlLGhlLHVlLGNlO3JldHVybiBJKHRoaXMsZnVuY3Rpb24oRyl7c3dpdGNoKEcubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGU9UigyOTc1KS5jcmVhdGVSZWFkU3RyZWFtLFs0LHRoaXMuZ2V0QWNjZXNzVG9rZW5Gb3JSZXF1ZXN0KGVlKV07Y2FzZSAxOnJldHVybiBvZT1HLnNlbnQoKSxb'@; put 'NCx0ZShxKV07Y2FzZSAyOnJldHVybiBzZT1HLnNlbnQoKSwoaGU9bmV3IGspLmFwcGVuZCgiZmlsZSIsc2UpLHVlPSJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iLmNvbmNhdChoZS5nZXRCb3VuZGFyeSgpKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiU0FTanNBcGkvZHJp'@; put 'dmUvZGVwbG95L3VwbG9hZCIsaGUsb2UsdWUse30se21heENvbnRlbnRMZW5ndGg6MS8wLG1heEJvZHlMZW5ndGg6MS8wfSldO2Nhc2UgMzpyZXR1cm4gY2U9Ry5zZW50KCkucmVzdWx0LFsyLFByb21pc2UucmVzb2x2ZShjZSldfX0pfSl9LFUucHJvdG90eXBlLmV4ZWN1dGVKb2I9ZnVuY3Rp'@; put 'b24ocSxlZSx0ZSl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lLHNlLGhlO3JldHVybiBJKHRoaXMsZnVuY3Rpb24odWUpe3N3aXRjaCh1ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBvZT10ZT90ZS5hY2Nlc3NfdG9rZW46dm9pZCAwLHNlPXEuX3Byb2dyYW0u'@; put 'c3RhcnRzV2l0aCgiLyIpP3EuX3Byb2dyYW06IiIuY29uY2F0KGVlLCIvIikuY29uY2F0KHEuX3Byb2dyYW0pLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCJTQVNqc0FwaS9zdHAvZXhlY3V0ZSIseih6KHtfZGVidWc6MTMxfSxxKSx7X3Byb2dyYW06c2V9KSxvZSldO2Nhc2UgMTpyZXR1'@; put 'cm5bMix7cmVzdWx0OihoZT11ZS5zZW50KCkpLnJlc3VsdCxsb2c6aGUubG9nfV19fSl9KX0sVS5wcm90b3R5cGUuZXhlY3V0ZVNjcmlwdD1mdW5jdGlvbihxLGVlLHRlKXtyZXR1cm4gdm9pZCAwPT09ZWUmJihlZT0ic2FzIiksSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIg'@; put 'b2Usc2U7cmV0dXJuIEkodGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5nZXRBY2Nlc3NUb2tlbkZvclJlcXVlc3QodGUpXTtjYXNlIDE6cmV0dXJuIG9lPWhlLnNlbnQoKSxzZT17bG9nOiIifSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9z'@; put 'dCgiU0FTanNBcGkvY29kZS9leGVjdXRlIix7Y29kZTpxLHJ1blRpbWU6ZWV9LG9lKS50aGVuKGZ1bmN0aW9uKHVlKXt2YXIgRz11ZS5wcmludE91dHB1dCxiPXVlLnJlc3VsdDtzZS5sb2c9dWUubG9nLEcmJihzZS5wcmludE91dHB1dD1HKSxiJiYoc2Uud2Vib3V0PWIpfSkuY2F0Y2goZnVu'@; put 'Y3Rpb24odWUpe3Rocm93KDAsai5wcmVmaXhNZXNzYWdlKSh1ZSwiRXJyb3Igd2hpbGUgc2VuZGluZyBQT1NUIHJlcXVlc3QgdG8gZXhlY3V0ZSBjb2RlLiAiKX0pXTtjYXNlIDI6cmV0dXJuIGhlLnNlbnQoKSxbMixzZV19fSl9KX0sVS5wcm90b3R5cGUuZ2V0QWNjZXNzVG9rZW49ZnVuY3Rp'@; put 'b24ocSxlZSl7cmV0dXJuIEsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxmdW5jdGlvbih0ZSl7cmV0dXJuWzIsKDAsVi5nZXRBY2Nlc3NUb2tlbkZvclNhc2pzKSh0aGlzLnJlcXVlc3RDbGllbnQscSxlZSldfSl9KX0sVS5wcm90b3R5cGUucmVmcmVzaFRv'@; put 'a2Vucz1mdW5jdGlvbihxKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKGVlKXtyZXR1cm5bMiwoMCxCLnJlZnJlc2hUb2tlbnNGb3JTYXNqcykodGhpcy5yZXF1ZXN0Q2xpZW50LHEpXX0pfSl9LFV9KCk7Ty5TQVNqc0FwaUNs'@; put 'aWVudD1YfSw2OTAzOmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KSxLPVIoNTEwOCksST10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oWCxVLHEsZWUpe3JldHVybiBuZXcocXx8KHE9UHJvbWlzZSkpKGZ1bmN0aW9uKHRlLG9lKXtmdW5jdGlvbiBzZShj'@; put 'ZSl7dHJ5e3VlKGVlLm5leHQoY2UpKX1jYXRjaChHKXtvZShHKX19ZnVuY3Rpb24gaGUoY2Upe3RyeXt1ZShlZS50aHJvdyhjZSkpfWNhdGNoKEcpe29lKEcpfX1mdW5jdGlvbiB1ZShjZSl7dmFyIEc7Y2UuZG9uZT90ZShjZS52YWx1ZSk6KEc9Y2UudmFsdWUsRyBpbnN0YW5jZW9mIHE/Rzpu'@; put 'ZXcgcShmdW5jdGlvbihiKXtiKEcpfSkpLnRoZW4oc2UsaGUpfXVlKChlZT1lZS5hcHBseShYLFV8fFtdKSkubmV4dCgpKX0pfSxrPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFgsVSl7dmFyIHEsZWUsdGUsb2Usc2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmdGVb'@; put 'MF0pdGhyb3cgdGVbMV07cmV0dXJuIHRlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG9lPXtuZXh0OmhlKDApLHRocm93OmhlKDEpLHJldHVybjpoZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG9lW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30p'@; put 'LG9lO2Z1bmN0aW9uIGhlKHVlKXtyZXR1cm4gZnVuY3Rpb24oY2Upe3JldHVybiBmdW5jdGlvbihHKXtpZihxKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3NlOyl0cnl7aWYocT0xLGVlJiYodGU9MiZHWzBdP2VlLnJldHVybjpH'@; put 'WzBdP2VlLnRocm93fHwoKHRlPWVlLnJldHVybikmJnRlLmNhbGwoZWUpLDApOmVlLm5leHQpJiYhKHRlPXRlLmNhbGwoZWUsR1sxXSkpLmRvbmUpcmV0dXJuIHRlO3N3aXRjaChlZT0wLHRlJiYoRz1bMiZHWzBdLHRlLnZhbHVlXSksR1swXSl7Y2FzZSAwOmNhc2UgMTp0ZT1HO2JyZWFrO2Nh'@; put 'c2UgNDpyZXR1cm4gc2UubGFiZWwrKyx7dmFsdWU6R1sxXSxkb25lOiExfTtjYXNlIDU6c2UubGFiZWwrKyxlZT1HWzFdLEc9WzBdO2NvbnRpbnVlO2Nhc2UgNzpHPXNlLm9wcy5wb3AoKSxzZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgodGU9KHRlPXNlLnRyeXMpLmxlbmd0'@; put 'aD4wJiZ0ZVt0ZS5sZW5ndGgtMV0pfHw2IT09R1swXSYmMiE9PUdbMF0pKXtzZT0wO2NvbnRpbnVlfWlmKDM9PT1HWzBdJiYoIXRlfHxHWzFdPnRlWzBdJiZHWzFdPHRlWzNdKSl7c2UubGFiZWw9R1sxXTticmVha31pZig2PT09R1swXSYmc2UubGFiZWw8dGVbMV0pe3NlLmxhYmVsPXRlWzFd'@; put 'LHRlPUc7YnJlYWt9aWYodGUmJnNlLmxhYmVsPHRlWzJdKXtzZS5sYWJlbD10ZVsyXSxzZS5vcHMucHVzaChHKTticmVha310ZVsyXSYmc2Uub3BzLnBvcCgpLHNlLnRyeXMucG9wKCk7Y29udGludWV9Rz1VLmNhbGwoWCxzZSl9Y2F0Y2goYil7Rz1bNixiXSxlZT0wfWZpbmFsbHl7cT10ZT0w'@; put 'fWlmKDUmR1swXSl0aHJvdyBHWzFdO3JldHVybnt2YWx1ZTpHWzBdP0dbMV06dm9pZCAwLGRvbmU6ITB9fShbdWUsY2VdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5TZXNzaW9uTWFuYWdlcj12b2lkIDA7dmFyIEU9UigxMjMwKSxqPVIo'@; put 'MTM5NSksVj1SKDU5MjgpLEI9Uig5Nzc4KSxZPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gWChVLHEsZWUpe3RoaXMuc2VydmVyVXJsPVUsdGhpcy5jb250ZXh0TmFtZT1xLHRoaXMucmVxdWVzdENsaWVudD1lZSx0aGlzLmxvZ2dlZEVycm9ycz1bXSx0aGlzLnNlc3Npb25TdGF0ZUxpbmtFcnJvcj0i'@; put 'RXJyb3Igd2hpbGUgZ2V0dGluZyBzZXNzaW9uIHN0YXRlIGxpbmsuICIsdGhpcy5zZXNzaW9ucz1bXSx0aGlzLmN1cnJlbnRDb250ZXh0PW51bGwsdGhpcy5zZXR0aW5nQ29udGV4dD0hMSx0aGlzLl9kZWJ1Zz0hMSx0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGU9e3ByaW50ZWQ6ITEsc3RhdGU6'@; put 'RS5TZXNzaW9uU3RhdGUuTm9TdGF0ZX0sVSYmKDAsVi5pc1VybCkoVSl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYLnByb3RvdHlwZSwiZGVidWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVidWd9LHNldDpmdW5jdGlvbihVKXt0aGlzLl9kZWJ1Zz1VfSxlbnVtZXJh'@; put 'YmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFgucHJvdG90eXBlLmlzU2Vzc2lvblZhbGlkPWZ1bmN0aW9uKFUpe2lmKCFVKXJldHVybiExO3ZhciBxPSgobmV3IERhdGUpLmdldFRpbWUoKS1uZXcgRGF0ZShVLmNyZWF0aW9uVGltZVN0YW1wKS5nZXRUaW1lKCkpLzFlMztyZXR1cm4hKCFVLmF0'@; put 'dHJpYnV0ZXN8fHE+PVUuYXR0cmlidXRlcy5zZXNzaW9uSW5hY3RpdmVUaW1lb3V0KX0sWC5wcm90b3R5cGUucmVtb3ZlU2Vzc2lvbkZyb21Qb29sPWZ1bmN0aW9uKFUpe3RoaXMuc2Vzc2lvbnM9dGhpcy5zZXNzaW9ucy5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuaWQhPT1VLmlkfSl9'@; put 'LFgucHJvdG90eXBlLnJlbW92ZUV4cGlyZWRTZXNzaW9ucz1mdW5jdGlvbigpe3ZhciBVPXRoaXM7dGhpcy5zZXNzaW9ucz10aGlzLnNlc3Npb25zLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gVS5pc1Nlc3Npb25WYWxpZChxKX0pfSxYLnByb3RvdHlwZS50aHJvd0Vycm9ycz1mdW5jdGlv'@; put 'bihVLHEpe3Rocm93IHE/KDAsQi5wcmVmaXhNZXNzYWdlKShuZXcgRXJyb3IoVS5qb2luKCIuICIpKSxxKTpuZXcgRXJyb3IoVS5tYXAoZnVuY3Rpb24oZWUpe3JldHVybiBlZS5tZXNzYWdlP2VlLm1lc3NhZ2U6ZWV9KS5qb2luKCIuICIpKX0sWC5wcm90b3R5cGUuZ2V0U2Vzc2lvbj1mdW5j'@; put 'dGlvbihVKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcSxlZSx0ZSxvZSxzZT10aGlzO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBxPVtdLGVlPSExLHRlPWZ1bmN0aW9uKCl7cS5sZW5ndGgmJiFl'@; put 'ZSYmKGVlPSEwLHNlLnRocm93RXJyb3JzKHEpKX0sdGhpcy5yZW1vdmVFeHBpcmVkU2Vzc2lvbnMoKSx0aGlzLnNlc3Npb25zLmxlbmd0aD8odGhpcy5yZW1vdmVTZXNzaW9uRnJvbVBvb2wob2U9dGhpcy5zZXNzaW9uc1swXSksdGhpcy5jcmVhdGVTZXNzaW9ucyhVKS5jYXRjaChmdW5jdGlv'@; put 'bih1ZSl7cS5wdXNoKHVlKX0pLHRoaXMuY3JlYXRlQW5kV2FpdEZvclNlc3Npb24oVSkuY2F0Y2goZnVuY3Rpb24odWUpe3EucHVzaCh1ZSl9KSx0ZSgpLFsyLG9lXSk6WzMsMV07Y2FzZSAxOnJldHVybiB0aGlzLmNyZWF0ZVNlc3Npb25zKFUpLmNhdGNoKGZ1bmN0aW9uKHVlKXtxLnB1c2go'@; put 'dWUpfSksWzQsdGhpcy5jcmVhdGVBbmRXYWl0Rm9yU2Vzc2lvbihVKS5jYXRjaChmdW5jdGlvbih1ZSl7cS5wdXNoKHVlKX0pXTtjYXNlIDI6cmV0dXJuIGhlLnNlbnQoKSx0aGlzLnJlbW92ZUV4cGlyZWRTZXNzaW9ucygpLG9lPXRoaXMuc2Vzc2lvbnMucG9wKCksdGhpcy5yZW1vdmVTZXNz'@; put 'aW9uRnJvbVBvb2wob2UpLHRlKCksWzIsb2VdfX0pfSl9LFgucHJvdG90eXBlLmdldEVycm9yTWVzc2FnZT1mdW5jdGlvbihVLHEsZWUpe3JldHVybiIiLmNvbmNhdChlZSwiIHJlcXVlc3QgdG8gIikuY29uY2F0KHEsIiBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiKS5jb25jYXQoVS5yZXNw'@; put 'b25zZS5zdGF0dXN8fCJ1bmtub3duIiwiLiAiKStVLnJlc3BvbnNlLmRhdGEubWVzc2FnZXx8IiJ9LFgucHJvdG90eXBlLmNsZWFyU2Vzc2lvbj1mdW5jdGlvbihVLHEpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlZSx0ZT10aGlzO3JldHVybiBrKHRoaXMs'@; put 'ZnVuY3Rpb24ob2Upe3N3aXRjaChvZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBlZT0iL2NvbXB1dGUvc2Vzc2lvbnMvIi5jb25jYXQoVSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmRlbGV0ZShlZSxxKS50aGVuKGZ1bmN0aW9uKCl7dGUuc2Vzc2lvbnM9dGUuc2Vzc2lvbnMuZmlsdGVyKGZ1bmN0'@; put 'aW9uKHNlKXtyZXR1cm4gc2UuaWQhPT1VfSl9KS5jYXRjaChmdW5jdGlvbihzZSl7dGhyb3coMCxCLnByZWZpeE1lc3NhZ2UpKHRlLmdldEVycm9yTWVzc2FnZShzZSxlZSwiREVMRVRFIiksIkVycm9yIHdoaWxlIGRlbGV0aW5nIHNlc3Npb24uICIpfSldO2Nhc2UgMTpyZXR1cm5bMixvZS5z'@; put 'ZW50KCldfX0pfSl9LFgucHJvdG90eXBlLmNyZWF0ZVNlc3Npb25zPWZ1bmN0aW9uKFUpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBxLGVlPXRoaXM7cmV0dXJuIGsodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHE9'@; put 'W10sdGhpcy5zZXNzaW9ucy5sZW5ndGg/WzMsMl06WzQsKDAsVi5hc3luY0ZvckVhY2gpKG5ldyBBcnJheSgxKSxmdW5jdGlvbigpe3JldHVybiBJKGVlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpy'@; put 'ZXR1cm5bNCx0aGlzLmNyZWF0ZUFuZFdhaXRGb3JTZXNzaW9uKFUpLmNhdGNoKGZ1bmN0aW9uKHNlKXtxLnB1c2goc2UpfSldO2Nhc2UgMTpyZXR1cm4gb2Uuc2VudCgpLFsyXX19KX0pfSldO2Nhc2UgMTp0ZS5zZW50KCksdGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHEubGVuZ3RoJiZ0aGlz'@; put 'LnRocm93RXJyb3JzKHEsIkVycm9yIHdoaWxlIGNyZWF0aW5nIHNlc3Npb24uICIpLFsyXX19KX0pfSxYLnByb3RvdHlwZS53YWl0Rm9yQ3VycmVudENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVT10aGlzO3JldHVybiBrKHRo'@; put 'aXMsZnVuY3Rpb24ocSl7cmV0dXJuWzIsbmV3IFByb21pc2UoZnVuY3Rpb24oZWUpe3ZhciB0ZT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe1UuY3VycmVudENvbnRleHQmJihVLnNldHRpbmdDb250ZXh0PSExLGNsZWFySW50ZXJ2YWwodGUpLGVlKCkpfSwxMDApfSldfSl9KX0sWC5wcm90b3R5'@; put 'cGUuY3JlYXRlQW5kV2FpdEZvclNlc3Npb249ZnVuY3Rpb24oVSl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHEsZWUsdGUsb2Usc2UsaGU9dGhpcztyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKHVlKXtzd2l0Y2godWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhp'@; put 'cy5jdXJyZW50Q29udGV4dD9bMyw0XTp0aGlzLnNldHRpbmdDb250ZXh0P1szLDJdOls0LHRoaXMuc2V0Q3VycmVudENvbnRleHQoVSldO2Nhc2UgMTpyZXR1cm4gdWUuc2VudCgpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCx0aGlzLndhaXRGb3JDdXJyZW50Q29udGV4dCgpXTtjYXNlIDM6dWUu'@; put 'c2VudCgpLHVlLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiBxPSIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMvIikuY29uY2F0KHRoaXMuY3VycmVudENvbnRleHQuaWQsIi9zZXNzaW9ucyIpLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KHEse30sVSkuY2F0Y2go'@; put 'ZnVuY3Rpb24oY2Upe3Rocm93KDAsQi5wcmVmaXhNZXNzYWdlKShoZS5nZXRFcnJvck1lc3NhZ2UoY2UscSwiUE9TVCIpLCJFcnJvciB3aGlsZSBjcmVhdGluZyBzZXNzaW9uLiAiKX0pXTtjYXNlIDU6aWYoZWU9dWUuc2VudCgpLCh0ZT1lZS5yZXN1bHQpLmV0YWc9b2U9ZWUuZXRhZywhKHNl'@; put 'PXRlLmxpbmtzLmZpbmQoZnVuY3Rpb24oY2Upe3JldHVybiJzdGF0ZSI9PT1jZS5yZWx9KSkpdGhyb3cgdGhpcy5zZXNzaW9uU3RhdGVMaW5rRXJyb3I7cmV0dXJuIHRlLnN0YXRlVXJsPXNlLmhyZWYsWzQsdGhpcy53YWl0Rm9yU2Vzc2lvbih0ZSxvZSxVKV07Y2FzZSA2OnJldHVybiB1ZS5z'@; put 'ZW50KCksdGhpcy5zZXNzaW9ucy5wdXNoKHRlKSxbMix0ZV19fSl9KX0sWC5wcm90b3R5cGUuc2V0Q3VycmVudENvbnRleHQ9ZnVuY3Rpb24oVSl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHEsZWUsb2Usc2U9dGhpcztyZXR1cm4gayh0aGlzLGZ1bmN0aW9u'@; put 'KGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jdXJyZW50Q29udGV4dD9bMywyXToocT0iIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzP2xpbWl0PTEwMDAwIiksdGhpcy5zZXR0aW5nQ29udGV4dD0hMCxbNCx0aGlzLnJlcXVlc3RDbGll'@; put 'bnQuZ2V0KHEsVSkuY2F0Y2goZnVuY3Rpb24odWUpe3Rocm93KDAsQi5wcmVmaXhNZXNzYWdlKShzZS5nZXRFcnJvck1lc3NhZ2UodWUscSwiR0VUIiksIkVycm9yIHdoaWxlIGdldHRpbmcgbGlzdCBvZiBjb250ZXh0cy4gIil9KV0pO2Nhc2UgMTppZihlZT1oZS5zZW50KCkucmVzdWx0LCEo'@; put 'b2U9KGVlJiZlZS5pdGVtcyYmZWUuaXRlbXMubGVuZ3RoP2VlLml0ZW1zOltdKS5maW5kKGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWUubmFtZT09PXNlLmNvbnRleHROYW1lfSkpKXRocm93IG5ldyBFcnJvcigiVGhlIGNvbnRleHQgJyIuY29uY2F0KHRoaXMuY29udGV4dE5hbWUsIicgd2FzIG5v'@; put 'dCBmb3VuZCBvbiB0aGUgc2VydmVyICIpLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiLiIpKTt0aGlzLmN1cnJlbnRDb250ZXh0PW9lLFByb21pc2UucmVzb2x2ZSgpLGhlLmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxYLnByb3RvdHlwZS53YWl0Rm9yU2Vzc2lvbj1mdW5jdGlvbihV'@; put 'LHEsZWUpe3ZhciB0ZTtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgb2Usc2UsaGUsdWUsY2UsYixEO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oSCl7c3dpdGNoKEgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gc2U9VS5zdGF0ZVVybCxoZT16LmxvZ2dlcnx8Sywob2U9'@; put 'VS5zdGF0ZSkhPT1FLlNlc3Npb25TdGF0ZS5QZW5kaW5nJiZvZSE9PUUuU2Vzc2lvblN0YXRlLlJ1bm5pbmcmJm9lIT09RS5TZXNzaW9uU3RhdGUuTm9TdGF0ZT9bMyw2XTpzZT8odGhpcy5kZWJ1ZyYmIXRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5wcmludGVkJiYoaGUuaW5mbygiUG9sbGlu'@; put 'ZzogIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwrc2UpKSx0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGUucHJpbnRlZD0hMCksdWU9IiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoc2UsIj93YWl0PTMwIiksWzQsdGhpcy5nZXRTZXNzaW9uU3RhdGUodWUscSxlZSkuY2F0Y2goZnVuY3Rp'@; put 'b24oTil7dGhyb3coMCxCLnByZWZpeE1lc3NhZ2UpKE4sIkVycm9yIHdoaWxlIHdhaXRpbmcgZm9yIHNlc3Npb24uICIpfSldKTpbMyw0XTtjYXNlIDE6cmV0dXJuIGNlPUguc2VudCgpLGI9Y2UucmVzcG9uc2VTdGF0dXMsb2U9Y2UucmVzdWx0LnRyaW0oKSx0aGlzLmRlYnVnJiZ0aGlzLnBy'@; put 'aW50ZWRTZXNzaW9uU3RhdGUuc3RhdGUhPT1vZSYmKGhlLmluZm8oIkN1cnJlbnQgc2Vzc2lvbiBzdGF0ZSBpcyAnIi5jb25jYXQob2UsIiciKSksdGhpcy5wcmludGVkU2Vzc2lvblN0YXRlLnN0YXRlPW9lLHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5wcmludGVkPSExKSxvZT9bMywzXToo'@; put 'RD1uZXcgai5Ob1Nlc3Npb25TdGF0ZUVycm9yKGIsdGhpcy5zZXJ2ZXJVcmwrc2UsbnVsbD09PSh0ZT1VLmxpbmtzLmZpbmQoZnVuY3Rpb24oTil7cmV0dXJuImxvZyI9PT1OLnJlbH0pKXx8dm9pZCAwPT09dGU/dm9pZCAwOnRlLmhyZWYpLHRoaXMubG9nZ2VkRXJyb3JzLmZpbmQoZnVuY3Rp'@; put 'b24oTil7cmV0dXJuIE4uc2VydmVyUmVzcG9uc2VTdGF0dXM9PT1ELnNlcnZlclJlc3BvbnNlU3RhdHVzfSl8fCh0aGlzLmxvZ2dlZEVycm9ycy5wdXNoKEQpLGhlLmluZm8oRC5tZXNzYWdlKSksWzQsdGhpcy53YWl0Rm9yU2Vzc2lvbihVLHEsZWUpXSk7Y2FzZSAyOnJldHVyblsyLEguc2Vu'@; put 'dCgpXTtjYXNlIDM6Y2FzZSA2OnJldHVybiB0aGlzLmxvZ2dlZEVycm9ycz1bXSxbMixvZV07Y2FzZSA0OnRocm93IHRoaXMuc2Vzc2lvblN0YXRlTGlua0Vycm9yO2Nhc2UgNTpyZXR1cm5bMyw3XTtjYXNlIDc6cmV0dXJuWzJdfX0pfSl9LFgucHJvdG90eXBlLmdldFNlc3Npb25TdGF0ZT1m'@; put 'dW5jdGlvbihVLHEsZWUpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0ZT10aGlzO3JldHVybiBrKHRoaXMsZnVuY3Rpb24ob2Upe3N3aXRjaChvZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoVSxlZSwidGV4dC9wbGFp'@; put 'biIseyJJZi1Ob25lLU1hdGNoIjpxfSkudGhlbihmdW5jdGlvbihzZSl7cmV0dXJue3Jlc3VsdDpzZS5yZXN1bHQscmVzcG9uc2VTdGF0dXM6c2Uuc3RhdHVzfX0pLmNhdGNoKGZ1bmN0aW9uKHNlKXt0aHJvdygwLEIucHJlZml4TWVzc2FnZSkodGUuZ2V0RXJyb3JNZXNzYWdlKHNlLFUsIkdF'@; put 'VCIpLCJFcnJvciB3aGlsZSBnZXR0aW5nIHNlc3Npb24gc3RhdGUuICIpfSldO2Nhc2UgMTpyZXR1cm5bMixvZS5zZW50KCldfX0pfSl9LFgucHJvdG90eXBlLmdldFZhcmlhYmxlPWZ1bmN0aW9uKFUscSxlZSl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHRl'@; put 'LG9lPXRoaXM7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihzZSl7c3dpdGNoKHNlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRlPSIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvc2Vzc2lvbnMvIikuY29uY2F0KFUsIi92YXJpYWJsZXMvIikuY29uY2F0KHEpLFs0LHRoaXMucmVxdWVz'@; put 'dENsaWVudC5nZXQodGUsZWUpLmNhdGNoKGZ1bmN0aW9uKGhlKXt0aHJvdygwLEIucHJlZml4TWVzc2FnZSkob2UuZ2V0RXJyb3JNZXNzYWdlKGhlLHRlLCJHRVQiKSwiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgc2Vzc2lvbiB2YXJpYWJsZSAnIi5jb25jYXQocSwiJy4gIikpfSldO2Nhc2UgMTpy'@; put 'ZXR1cm5bMixzZS5zZW50KCldfX0pfSl9LFh9KCk7Ty5TZXNzaW9uTWFuYWdlcj1ZfSwxNjIyOmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KSxLPVIoNTEwOCksST10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBJPU9iamVjdC5hc3NpZ258'@; put 'fGZ1bmN0aW9uKHRlKXtmb3IodmFyIG9lLHNlPTEsaGU9YXJndW1lbnRzLmxlbmd0aDtzZTxoZTtzZSsrKWZvcih2YXIgdWUgaW4gb2U9YXJndW1lbnRzW3NlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2UsdWUpJiYodGVbdWVdPW9lW3VlXSk7cmV0dXJuIHRlfSxJ'@; put 'LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odGUsb2Usc2UsaGUpe3JldHVybiBuZXcoc2V8fChzZT1Qcm9taXNlKSkoZnVuY3Rpb24odWUsY2Upe2Z1bmN0aW9uIEcoSCl7dHJ5e0QoaGUubmV4dChIKSl9Y2F0Y2goTil7Y2UoTil9fWZ1'@; put 'bmN0aW9uIGIoSCl7dHJ5e0QoaGUudGhyb3coSCkpfWNhdGNoKE4pe2NlKE4pfX1mdW5jdGlvbiBEKEgpe3ZhciBOO0guZG9uZT91ZShILnZhbHVlKTooTj1ILnZhbHVlLE4gaW5zdGFuY2VvZiBzZT9OOm5ldyBzZShmdW5jdGlvbihnKXtnKE4pfSkpLnRoZW4oRyxiKX1EKChoZT1oZS5hcHBs'@; put 'eSh0ZSxvZXx8W10pKS5uZXh0KCkpfSl9LEU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odGUsb2Upe3ZhciBzZSxoZSx1ZSxjZSxHPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnVlWzBdKXRocm93IHVlWzFdO3JldHVybiB1ZVsxXX0sdHJ5czpbXSxvcHM6W119O3Jl'@; put 'dHVybiBjZT17bmV4dDpiKDApLHRocm93OmIoMSkscmV0dXJuOmIoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihjZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxjZTtmdW5jdGlvbiBiKEQpe3JldHVybiBmdW5jdGlvbihIKXtyZXR1cm4gZnVuY3Rp'@; put 'b24oTil7aWYoc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7RzspdHJ5e2lmKHNlPTEsaGUmJih1ZT0yJk5bMF0/aGUucmV0dXJuOk5bMF0/aGUudGhyb3d8fCgodWU9aGUucmV0dXJuKSYmdWUuY2FsbChoZSksMCk6aGUubmV4'@; put 'dCkmJiEodWU9dWUuY2FsbChoZSxOWzFdKSkuZG9uZSlyZXR1cm4gdWU7c3dpdGNoKGhlPTAsdWUmJihOPVsyJk5bMF0sdWUudmFsdWVdKSxOWzBdKXtjYXNlIDA6Y2FzZSAxOnVlPU47YnJlYWs7Y2FzZSA0OnJldHVybiBHLmxhYmVsKysse3ZhbHVlOk5bMV0sZG9uZTohMX07Y2FzZSA1Okcu'@; put 'bGFiZWwrKyxoZT1OWzFdLE49WzBdO2NvbnRpbnVlO2Nhc2UgNzpOPUcub3BzLnBvcCgpLEcudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHVlPSh1ZT1HLnRyeXMpLmxlbmd0aD4wJiZ1ZVt1ZS5sZW5ndGgtMV0pfHw2IT09TlswXSYmMiE9PU5bMF0pKXtHPTA7Y29udGludWV9'@; put 'aWYoMz09PU5bMF0mJighdWV8fE5bMV0+dWVbMF0mJk5bMV08dWVbM10pKXtHLmxhYmVsPU5bMV07YnJlYWt9aWYoNj09PU5bMF0mJkcubGFiZWw8dWVbMV0pe0cubGFiZWw9dWVbMV0sdWU9TjticmVha31pZih1ZSYmRy5sYWJlbDx1ZVsyXSl7Ry5sYWJlbD11ZVsyXSxHLm9wcy5wdXNoKE4p'@; put 'O2JyZWFrfXVlWzJdJiZHLm9wcy5wb3AoKSxHLnRyeXMucG9wKCk7Y29udGludWV9Tj1vZS5jYWxsKHRlLEcpfWNhdGNoKGcpe049WzYsZ10saGU9MH1maW5hbGx5e3NlPXVlPTB9aWYoNSZOWzBdKXRocm93IE5bMV07cmV0dXJue3ZhbHVlOk5bMF0/TlsxXTp2b2lkIDAsZG9uZTohMH19KFtE'@; put 'LEhdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5leGVjdXRlT25Db21wdXRlQXBpPXZvaWQgMDt2YXIgaj1SKDc3NTcpLFY9Uig5Nzc4KSxCPVIoMzYwNyksWT1SKDcwNCksWD1SKDU5MjgpLFU9Uig3MTQpLHE9UigxMzQzKSxlZT1SKDY0'@; put 'OTYpO08uZXhlY3V0ZU9uQ29tcHV0ZUFwaT1mdW5jdGlvbiB0ZShvZSxzZSxoZSx1ZSxjZSxHLGIsRCxILE4sZyxDLFMsdil7dmFyIHAsdztyZXR1cm4gdm9pZCAwPT09RCYmKEQ9bnVsbCksdm9pZCAwPT09SCYmKEg9ITEpLHZvaWQgMD09PU4mJihOPSExKSx2b2lkIDA9PT1nJiYoZz0hMCks'@; put 'dm9pZCAwPT09UyYmKFM9ITEpLGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEosbmUsZGUsZmUseGUsTGUsRmUsT2UsamUsV2UsS2UsWWUsUWUsbHQsUGUsYmUsQWUsVGUscWUsWGUsVWUsaHQsTWU9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKERlKXtzd2l0Y2goRGUu'@; put 'bGFiZWwpe2Nhc2UgMDpyZXR1cm4gSj0oYnx8e30pLmFjY2Vzc190b2tlbixiP1s0LCgwLFkuZ2V0VG9rZW5zKShvZSxiKV06WzMsMl07Y2FzZSAxOko9RGUuc2VudCgpLmFjY2Vzc190b2tlbixEZS5sYWJlbD0yO2Nhc2UgMjpuZT16LmxvZ2dlcnx8SyxEZS5sYWJlbD0zO2Nhc2UgMzpyZXR1'@; put 'cm4gRGUudHJ5cy5wdXNoKFszLDE5LCwyMF0pLGRlPXZvaWQgMCxbNCxzZS5nZXRTZXNzaW9uKEopLmNhdGNoKGZ1bmN0aW9uKHplKXt0aHJvdygwLFYucHJlZml4TWVzc2FnZSkoemUsIkVycm9yIHdoaWxlIGdldHRpbmcgc2Vzc2lvbi4gIil9KV07Y2FzZSA0OnJldHVybiBmZT1EZS5zZW50'@; put 'KCksZGU9ZmUuaWQsUz9bNCxzZS5nZXRWYXJpYWJsZShkZSwiU1lTSk9CSUQiLEopLmNhdGNoKGZ1bmN0aW9uKHplKXt0aHJvdygwLFYucHJlZml4TWVzc2FnZSkoemUsIkVycm9yIHdoaWxlIGdldHRpbmcgc2Vzc2lvbiB2YXJpYWJsZS4gIil9KV06WzMsNl07Y2FzZSA1Oih4ZT1EZS5zZW50'@; put 'KCkucmVzdWx0KSYmeGUudmFsdWUmJihMZT1oZT91ZS5zcGxpdChoZSkuam9pbigiIikucmVwbGFjZSgvXlwvLywiIik6dWUsKHoubG9nZ2VyfHxLKS5pbmZvKCJUcmlnZ2VyaW5nICciLmNvbmNhdChMZSwiJyB3aXRoIFBJRCAiKS5jb25jYXQoeGUudmFsdWUsIiBhdCAiKS5jb25jYXQoKDAs'@; put 'ai50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTKSgpKSkpLERlLmxhYmVsPTY7Y2FzZSA2OnJldHVybiBGZT12b2lkIDAsKDAsWC5pc1JlbGF0aXZlUGF0aCkodWUpP0ZlPSJleGVjLSIuY29uY2F0KHVlLmluY2x1ZGVzKCIvIik/dWUuc3BsaXQoIi8iKVsxXTp1ZSk6KE9lPXVlLnNwbGl0KCIv'@; put 'IiksRmU9T2UucG9wKCkpLGplPXtTWVNfSkVTX0pPQl9VUkk6IiIsX3Byb2dyYW06KDAsWC5pc1JlbGF0aXZlUGF0aCkodWUpP2hlKyIvIit1ZTp1ZX0sdiYmKGplPUkoSSh7fSxqZSksdikpLEgmJihqZT1JKEkoe30samUpLHtfREVCVUc6MTMxfSkpLFdlPVtdLEQ/SlNPTi5zdHJpbmdpZnko'@; put 'RCkuaW5jbHVkZXMoIjsiKT9bNCwoMCxlZS51cGxvYWRUYWJsZXMpKG9lLEQsSikuY2F0Y2goZnVuY3Rpb24oemUpe3Rocm93KDAsVi5wcmVmaXhNZXNzYWdlKSh6ZSwiRXJyb3Igd2hpbGUgdXBsb2FkaW5nIHRhYmxlcy4gIil9KV06WzMsOF06WzMsOV07Y2FzZSA3OnJldHVybiBXZT1EZS5z'@; put 'ZW50KCksamUuX3dlYmluX2ZpbGVfY291bnQ9V2UubGVuZ3RoLFdlLmZvckVhY2goZnVuY3Rpb24oemUsb3Qpe2plWyJfd2ViaW5fZmlsZXVyaSIuY29uY2F0KG90KzEpXT0iL2ZpbGVzL2ZpbGVzLyIuY29uY2F0KHplLmZpbGUuaWQpLGplWyJfd2ViaW5fbmFtZSIuY29uY2F0KG90KzEpXT16'@; put 'ZS50YWJsZU5hbWV9KSxbMyw5XTtjYXNlIDg6amU9SShJKHt9LGplKSwoMCxVLmZvcm1hdERhdGFGb3JSZXF1ZXN0KShEKSksRGUubGFiZWw9OTtjYXNlIDk6cmV0dXJuIEtlPXtuYW1lOkZlfHwiRGVmYXVsdCBKb2IgTmFtZSIsZGVzY3JpcHRpb246IlBvd2VyZWQgYnkgU0FTanMiLGNvZGU6'@; put 'Y2UsdmFyaWFibGVzOmplLHZlcnNpb246Mn0sWzQsb2UucG9zdCgiL2NvbXB1dGUvc2Vzc2lvbnMvIi5jb25jYXQoZGUsIi9qb2JzIiksS2UsSikuY2F0Y2goZnVuY3Rpb24oemUpe3Rocm93KDAsVi5wcmVmaXhNZXNzYWdlKSh6ZSwiRXJyb3Igd2hpbGUgcG9zdGluZyBqb2IuICIpfSldO2Nh'@; put 'c2UgMTA6cmV0dXJuIFllPURlLnNlbnQoKSxRZT1ZZS5yZXN1bHQsZz8oSCYmKG5lLmluZm8oIkpvYiBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yICciLmNvbmNhdChGZSwiJy4iKSksbmUuaW5mbygiWW91IGNhbiBtb25pdG9yIHRoZSBqb2IgcHJvZ3Jlc3MgYXQgJyIuY29uY2F0KG9lLmdldEJh'@; put 'c2VVcmwoKSkuY29uY2F0KFFlLmxpbmtzLmZpbmQoZnVuY3Rpb24oemUpe3JldHVybiJzdGF0ZSI9PT16ZS5yZWx9KS5ocmVmLCInLiIpKSksWzQsKDAscS5wb2xsSm9iU3RhdGUpKG9lLFFlLEgsYixDLHtzZXNzaW9uOmZlLHNlc3Npb25NYW5hZ2VyOnNlfSkuY2F0Y2goZnVuY3Rpb24oemUp'@; put 'e3JldHVybiBrKE1lLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgb3QsdXQsTXQsSHQsUHQsb247cmV0dXJuIEUodGhpcyxmdW5jdGlvbihDbil7c3dpdGNoKENuLmxhYmVsKXtjYXNlIDA6cmV0dXJuIG90PW51bGw9PT0oUHQ9emU/LnJlc3BvbnNlKXx8dm9pZCAwPT09UHQ/dm9pZCAw'@; put 'OlB0LmRhdGEsdXQ9L2Vycj1bMC05XSosLy5leGVjKG90KSwiNTExMyIhPT0obnVsbD09PShvbj11dD8uWzBdKXx8dm9pZCAwPT09b24/dm9pZCAwOm9uLnNsaWNlKDQsLTEpKT9bMywyXTooTXQ9UWUubGlua3MuZmluZChmdW5jdGlvbihVdCl7cmV0dXJuInVwIj09PVV0LnJlbH0pLmhyZWYr'@; put 'Ii9sb2ciLEh0PXplLFs0LCgwLFguZmV0Y2hMb2dCeUNodW5rcykob2UsSixNdCwxZTYpXSk7Y2FzZSAxOkh0LmxvZz1Dbi5zZW50KCksQ24ubGFiZWw9MjtjYXNlIDI6dGhyb3coMCxWLnByZWZpeE1lc3NhZ2UpKHplLCJFcnJvciB3aGlsZSBwb2xsaW5nIGpvYiBzdGF0dXMuICIpfX0pfSl9'@; put 'KV0pOlsyLGZlXTtjYXNlIDExOnJldHVybiBsdD1EZS5zZW50KCksYj9bNCwoMCxZLmdldFRva2Vucykob2UsYildOlszLDEzXTtjYXNlIDEyOko9RGUuc2VudCgpLmFjY2Vzc190b2tlbixEZS5sYWJlbD0xMztjYXNlIDEzOnJldHVybls0LG9lLmdldCgiL2NvbXB1dGUvc2Vzc2lvbnMvIi5j'@; put 'b25jYXQoZGUsIi9qb2JzLyIpLmNvbmNhdChRZS5pZCksSikuY2F0Y2goZnVuY3Rpb24oemUpe3Rocm93KDAsVi5wcmVmaXhNZXNzYWdlKSh6ZSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBqb2IuICIpfSldO2Nhc2UgMTQ6cmV0dXJuIFBlPURlLnNlbnQoKS5yZXN1bHQsYmU9dm9pZCAwLEFlPSIi'@; put 'LFRlPVBlLmxpbmtzLmZpbmQoZnVuY3Rpb24oemUpe3JldHVybiJsb2ciPT09emUucmVsfSksSCYmVGU/KHFlPSIiLmNvbmNhdChUZS5ocmVmLCIvY29udGVudCIpLFhlPW51bGwhPT0odz1udWxsPT09KHA9UGUubG9nU3RhdGlzdGljcyl8fHZvaWQgMD09PXA/dm9pZCAwOnAubGluZUNvdW50'@; put 'KSYmdm9pZCAwIT09dz93OjFlNixbNCwoMCxYLmZldGNoTG9nQnlDaHVua3MpKG9lLEoscWUsWGUpXSk6WzMsMTZdO2Nhc2UgMTU6QWU9RGUuc2VudCgpLERlLmxhYmVsPTE2O2Nhc2UgMTY6aWYobHQ9PT1xLkpvYlN0YXRlLkZhaWxlZHx8bHQ9PT1xLkpvYlN0YXRlLkVycm9yKXRocm93IG5l'@; put 'dyBCLkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvcihQZSxBZSk7cmV0dXJuIE4/KFVlPSIvY29tcHV0ZS9zZXNzaW9ucy8iLmNvbmNhdChkZSwiL2ZpbGVyZWZzL193ZWJvdXQvY29udGVudCIpLFs0LG9lLmdldChVZSxKLCJ0ZXh0L3BsYWluIikuY2F0Y2goZnVuY3Rpb24oemUpe3JldHVybiBr'@; put 'KE1lLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgb3QsdXQsTXQsSHQ7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihQdCl7c3dpdGNoKFB0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHplIGluc3RhbmNlb2YgQi5Ob3RGb3VuZEVycm9yJiZUZT8ob3Q9IiIuY29uY2F0KFRlLmhyZWYsIi9jb250'@; put 'ZW50IiksdXQ9bnVsbCE9PShIdD1udWxsPT09KE10PVBlLmxvZ1N0YXRpc3RpY3MpfHx2b2lkIDA9PT1NdD92b2lkIDA6TXQubGluZUNvdW50KSYmdm9pZCAwIT09SHQ/SHQ6MWU2LFs0LCgwLFguZmV0Y2hMb2dCeUNodW5rcykob2UsSixvdCx1dCldKTpbMywyXTtjYXNlIDE6cmV0dXJuIEFl'@; put 'PVB0LnNlbnQoKSxbMixQcm9taXNlLnJlamVjdCh7c3RhdHVzOjUwMCxsb2c6QWV9KV07Y2FzZSAyOnJldHVyblsyLHtyZXN1bHQ6SlNPTi5zdHJpbmdpZnkoemUpfV19fSl9KX0pXSk6WzIse2pvYjpQZSxsb2c6QWV9XTtjYXNlIDE3OnJldHVybiBiZT1EZS5zZW50KCksWzQsc2UuY2xlYXJT'@; put 'ZXNzaW9uKGRlLEopLmNhdGNoKGZ1bmN0aW9uKHplKXt0aHJvdygwLFYucHJlZml4TWVzc2FnZSkoemUsIkVycm9yIHdoaWxlIGNsZWFyaW5nIHNlc3Npb24uICIpfSldO2Nhc2UgMTg6cmV0dXJuIERlLnNlbnQoKSxbMix7cmVzdWx0OmJlPy5yZXN1bHQsbG9nOkFlfV07Y2FzZSAxOTppZig0'@; put 'MDQ9PT0oaHQ9RGUuc2VudCgpKS5zdGF0dXMpcmV0dXJuWzIsdGUob2Usc2UsaGUsdWUsY2UsRyxiLEQsSCwhMSwhMCldO3Rocm93KDAsVi5wcmVmaXhNZXNzYWdlKShodCwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIHNjcmlwdC4gIik7Y2FzZSAyMDpyZXR1cm5bMl19fSl9KX19LDc0NTg6ZnVu'@; put 'Y3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUpLEs9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGosVixCLFkpe3JldHVybiBuZXcoQnx8KEI9UHJvbWlzZSkpKGZ1bmN0aW9uKFgsVSl7ZnVuY3Rpb24gcShvZSl7dHJ5e3RlKFkubmV4dChvZSkpfWNhdGNoKHNl'@; put 'KXtVKHNlKX19ZnVuY3Rpb24gZWUob2Upe3RyeXt0ZShZLnRocm93KG9lKSl9Y2F0Y2goc2Upe1Uoc2UpfX1mdW5jdGlvbiB0ZShvZSl7dmFyIHNlO29lLmRvbmU/WChvZS52YWx1ZSk6KHNlPW9lLnZhbHVlLHNlIGluc3RhbmNlb2YgQj9zZTpuZXcgQihmdW5jdGlvbihoZSl7aGUoc2UpfSkp'@; put 'LnRoZW4ocSxlZSl9dGUoKFk9WS5hcHBseShqLFZ8fFtdKSkubmV4dCgpKX0pfSxJPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGosVil7dmFyIEIsWSxYLFUscT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZYWzBdKXRocm93IFhbMV07cmV0dXJuIFhbMV19LHRyeXM6'@; put 'W10sb3BzOltdfTtyZXR1cm4gVT17bmV4dDplZSgwKSx0aHJvdzplZSgxKSxyZXR1cm46ZWUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihVW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFU7ZnVuY3Rpb24gZWUodGUpe3JldHVybiBmdW5jdGlvbihv'@; put 'ZSl7cmV0dXJuIGZ1bmN0aW9uKHNlKXtpZihCKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3E7KXRyeXtpZihCPTEsWSYmKFg9MiZzZVswXT9ZLnJldHVybjpzZVswXT9ZLnRocm93fHwoKFg9WS5yZXR1cm4pJiZYLmNhbGwoWSks'@; put 'MCk6WS5uZXh0KSYmIShYPVguY2FsbChZLHNlWzFdKSkuZG9uZSlyZXR1cm4gWDtzd2l0Y2goWT0wLFgmJihzZT1bMiZzZVswXSxYLnZhbHVlXSksc2VbMF0pe2Nhc2UgMDpjYXNlIDE6WD1zZTticmVhaztjYXNlIDQ6cmV0dXJuIHEubGFiZWwrKyx7dmFsdWU6c2VbMV0sZG9uZTohMX07Y2Fz'@; put 'ZSA1OnEubGFiZWwrKyxZPXNlWzFdLHNlPVswXTtjb250aW51ZTtjYXNlIDc6c2U9cS5vcHMucG9wKCkscS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoWD0oWD1xLnRyeXMpLmxlbmd0aD4wJiZYW1gubGVuZ3RoLTFdKXx8NiE9PXNlWzBdJiYyIT09c2VbMF0pKXtxPTA7Y29u'@; put 'dGludWV9aWYoMz09PXNlWzBdJiYoIVh8fHNlWzFdPlhbMF0mJnNlWzFdPFhbM10pKXtxLmxhYmVsPXNlWzFdO2JyZWFrfWlmKDY9PT1zZVswXSYmcS5sYWJlbDxYWzFdKXtxLmxhYmVsPVhbMV0sWD1zZTticmVha31pZihYJiZxLmxhYmVsPFhbMl0pe3EubGFiZWw9WFsyXSxxLm9wcy5wdXNo'@; put 'KHNlKTticmVha31YWzJdJiZxLm9wcy5wb3AoKSxxLnRyeXMucG9wKCk7Y29udGludWV9c2U9Vi5jYWxsKGoscSl9Y2F0Y2goaGUpe3NlPVs2LGhlXSxZPTB9ZmluYWxseXtCPVg9MH1pZig1JnNlWzBdKXRocm93IHNlWzFdO3JldHVybnt2YWx1ZTpzZVswXT9zZVsxXTp2b2lkIDAsZG9uZToh'@; put 'MH19KFt0ZSxvZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmdldEZpbGVTdHJlYW09dm9pZCAwO3ZhciBrPVIoMjk3NSksRT1SKDc3NTcpO08uZ2V0RmlsZVN0cmVhbT1mdW5jdGlvbihqLFYpe3JldHVybiBLKHZvaWQgMCx2b2lkIDAs'@; put 'dm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEIsWSxYLFUscTtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gQj1SKDI5NzUpLmNyZWF0ZVdyaXRlU3RyZWFtLFk9Vnx8ei5jd2QoKSxbNCwoMCxrLmlzRm9sZGVyKShZKV07Y2FzZSAxOnJldHVy'@; put 'biBlZS5zZW50KCk/KFg9IiIuY29uY2F0KGoubmFtZXx8ImpvYiIsIi0iKS5jb25jYXQoKDAsRS5nZW5lcmF0ZVRpbWVzdGFtcCkoKSwiLmxvZyIpLFU9UigyNTIwKSxxPVUuam9pbihWfHx6LmN3ZCgpLFgpLFs0LEIocSldKTpbMywzXTtjYXNlIDI6Y2FzZSA0OnJldHVyblsyLGVlLnNlbnQo'@; put 'KV07Y2FzZSAzOnJldHVybls0LEIoWSldfX0pfSl9fSwxMzQzOmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KSxLPVIoNTEwOCksST10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBJPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKG9lKXtmb3Io'@; put 'dmFyIHNlLGhlPTEsdWU9YXJndW1lbnRzLmxlbmd0aDtoZTx1ZTtoZSsrKWZvcih2YXIgY2UgaW4gc2U9YXJndW1lbnRzW2hlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2UsY2UpJiYob2VbY2VdPXNlW2NlXSk7cmV0dXJuIG9lfSxJLmFwcGx5KHRoaXMsYXJndW1l'@; put 'bnRzKX0saz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24ob2Usc2UsaGUsdWUpe3JldHVybiBuZXcoaGV8fChoZT1Qcm9taXNlKSkoZnVuY3Rpb24oY2UsRyl7ZnVuY3Rpb24gYihOKXt0cnl7SCh1ZS5uZXh0KE4pKX1jYXRjaChnKXtHKGcpfX1mdW5jdGlvbiBEKE4pe3RyeXtIKHVl'@; put 'LnRocm93KE4pKX1jYXRjaChnKXtHKGcpfX1mdW5jdGlvbiBIKE4pe3ZhciBnO04uZG9uZT9jZShOLnZhbHVlKTooZz1OLnZhbHVlLGcgaW5zdGFuY2VvZiBoZT9nOm5ldyBoZShmdW5jdGlvbihDKXtDKGcpfSkpLnRoZW4oYixEKX1IKCh1ZT11ZS5hcHBseShvZSxzZXx8W10pKS5uZXh0KCkp'@; put 'fSl9LEU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24ob2Usc2Upe3ZhciBoZSx1ZSxjZSxHLGI9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmY2VbMF0pdGhyb3cgY2VbMV07cmV0dXJuIGNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEc9e25leHQ6RCgwKSx0aHJv'@; put 'dzpEKDEpLHJldHVybjpEKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoR1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxHO2Z1bmN0aW9uIEQoSCl7cmV0dXJuIGZ1bmN0aW9uKE4pe3JldHVybiBmdW5jdGlvbihnKXtpZihoZSl0aHJvdyBuZXcgVHlw'@; put 'ZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtiOyl0cnl7aWYoaGU9MSx1ZSYmKGNlPTImZ1swXT91ZS5yZXR1cm46Z1swXT91ZS50aHJvd3x8KChjZT11ZS5yZXR1cm4pJiZjZS5jYWxsKHVlKSwwKTp1ZS5uZXh0KSYmIShjZT1jZS5jYWxsKHVlLGdbMV0p'@; put 'KS5kb25lKXJldHVybiBjZTtzd2l0Y2godWU9MCxjZSYmKGc9WzImZ1swXSxjZS52YWx1ZV0pLGdbMF0pe2Nhc2UgMDpjYXNlIDE6Y2U9ZzticmVhaztjYXNlIDQ6cmV0dXJuIGIubGFiZWwrKyx7dmFsdWU6Z1sxXSxkb25lOiExfTtjYXNlIDU6Yi5sYWJlbCsrLHVlPWdbMV0sZz1bMF07Y29u'@; put 'dGludWU7Y2FzZSA3Omc9Yi5vcHMucG9wKCksYi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoY2U9KGNlPWIudHJ5cykubGVuZ3RoPjAmJmNlW2NlLmxlbmd0aC0xXSl8fDYhPT1nWzBdJiYyIT09Z1swXSkpe2I9MDtjb250aW51ZX1pZigzPT09Z1swXSYmKCFjZXx8Z1sxXT5j'@; put 'ZVswXSYmZ1sxXTxjZVszXSkpe2IubGFiZWw9Z1sxXTticmVha31pZig2PT09Z1swXSYmYi5sYWJlbDxjZVsxXSl7Yi5sYWJlbD1jZVsxXSxjZT1nO2JyZWFrfWlmKGNlJiZiLmxhYmVsPGNlWzJdKXtiLmxhYmVsPWNlWzJdLGIub3BzLnB1c2goZyk7YnJlYWt9Y2VbMl0mJmIub3BzLnBvcCgp'@; put 'LGIudHJ5cy5wb3AoKTtjb250aW51ZX1nPXNlLmNhbGwob2UsYil9Y2F0Y2goQyl7Zz1bNixDXSx1ZT0wfWZpbmFsbHl7aGU9Y2U9MH1pZig1JmdbMF0pdGhyb3cgZ1sxXTtyZXR1cm57dmFsdWU6Z1swXT9nWzFdOnZvaWQgMCxkb25lOiEwfX0oW0gsTl0pfX19LGo9dGhpcyYmdGhpcy5fX3Nw'@; put 'cmVhZEFycmF5fHxmdW5jdGlvbihvZSxzZSxoZSl7aWYoaGV8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgdWUsY2U9MCxHPXNlLmxlbmd0aDtjZTxHO2NlKyspIXVlJiZjZSBpbiBzZXx8KHVlfHwodWU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoc2UsMCxjZSkpLHVlW2NlXT1z'@; put 'ZVtjZV0pO3JldHVybiBvZS5jb25jYXQodWV8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHNlKSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmRvUG9sbD1PLnBvbGxKb2JTdGF0ZT1PLkpvYlN0YXRlPXZvaWQgMDt2YXIgVixvZSxCPVIo'@; put 'NzA0KSxZPVIoMTM5NSksWD1SKDEyMzApLFU9Uig1OTI4KTsob2U9Vj1PLkpvYlN0YXRlfHwoTy5Kb2JTdGF0ZT17fSkpLkNvbXBsZXRlZD0iY29tcGxldGVkIixvZS5SdW5uaW5nPSJydW5uaW5nIixvZS5QZW5kaW5nPSJwZW5kaW5nIixvZS5VbmF2YWlsYWJsZT0idW5hdmFpbGFibGUiLG9l'@; put 'Lk5vU3RhdGU9IiIsb2UuRmFpbGVkPSJmYWlsZWQiLG9lLkVycm9yPSJlcnJvciIsTy5wb2xsSm9iU3RhdGU9ZnVuY3Rpb24ob2Usc2UsaGUsdWUsY2UsRyl7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGIsRCxILE4sZyxDLFMsdixwLHcsSjtyZXR1cm4gRSh0'@; put 'aGlzLGZ1bmN0aW9uKG5lKXtzd2l0Y2gobmUubGFiZWwpe2Nhc2UgMDppZihiPXoubG9nZ2VyfHxLLEQ9Y2U/LnN0cmVhbUxvZ3x8ITEsSD1be21heFBvbGxDb3VudDoyMDAscG9sbEludGVydmFsOjMwMH0se21heFBvbGxDb3VudDozMDAscG9sbEludGVydmFsOjNlM30se21heFBvbGxDb3Vu'@; put 'dDo1MDAscG9sbEludGVydmFsOjNlNH0se21heFBvbGxDb3VudDozNDAwLHBvbGxJbnRlcnZhbDo2ZTR9XSx2b2lkIDAhPT1jZT8oTj1bY2VdLHZvaWQgMCE9PShnPWNlLnBvbGxTdHJhdGVneSk/KHRlKGcpLGc9Zy5zb3J0KGZ1bmN0aW9uKGRlLGZlKXtyZXR1cm4gZGUubWF4UG9sbENvdW50'@; put 'LWZlLm1heFBvbGxDb3VudH0pLE49aihqKFtdLE4sITApLGcsITApKTpOPWooaihbXSxOLCEwKSxILCEwKSk6Tj1ILEM9Ti5zcGxpY2UoMCwxKVswXSxjZT1JKEkoe30sQyksY2V8fHt9KSwhKFM9c2UubGlua3MuZmluZChmdW5jdGlvbihkZSl7cmV0dXJuInN0YXRlIj09PWRlLnJlbH0pKSl0'@; put 'aHJvdyBuZXcgRXJyb3IoIkpvYiBzdGF0ZSBsaW5rIHdhcyBub3QgZm91bmQuIik7cmV0dXJuWzQscShvZSxzZSxWLk5vU3RhdGUsaGUsdWUpLmNhdGNoKGZ1bmN0aW9uKGRlKXtyZXR1cm4gYi5lcnJvcigiRXJyb3IgZmV0Y2hpbmcgam9iIHN0YXRlIGZyb20gIi5jb25jYXQoUy5ocmVmLCIu'@; put 'IFN0YXJ0aW5nIHBvbGwsIGFzc3VtaW5nIGpvYiB0byBiZSBydW5uaW5nLiIpLGRlKSxWLlVuYXZhaWxhYmxlfSldO2Nhc2UgMTpyZXR1cm4gdj1uZS5zZW50KCkscD0wLHY9PT1WLkNvbXBsZXRlZD9bMixQcm9taXNlLnJlc29sdmUodildOkQmJigwLFUuaXNOb2RlKSgpP1s0LCgwLFIoNzQ1'@; put 'OCkuZ2V0RmlsZVN0cmVhbSkoc2UsY2UubG9nRm9sZGVyUGF0aCldOlszLDNdO2Nhc2UgMjp3PW5lLnNlbnQoKSxuZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bNCwoMCxPLmRvUG9sbCkob2Usc2UsdixoZSxwLGNlLHVlLEQsdyxHKV07Y2FzZSA0OmlmKEo9bmUuc2VudCgpLHA9Si5wb2xsQ291'@; put 'bnQsIWVlKHY9Si5zdGF0ZSl8fHA+PWNlLm1heFBvbGxDb3VudCYmIU4ubGVuZ3RoKXJldHVyblsyLHZdO25lLmxhYmVsPTU7Y2FzZSA1OnJldHVybiBOLmxlbmd0aCYmZWUodik/KEM9Ti5zcGxpY2UoMCwxKVswXSxjZSYmKEMubG9nRm9sZGVyUGF0aD1jZS5sb2dGb2xkZXJQYXRoKSxbNCwo'@; put 'MCxPLmRvUG9sbCkob2Usc2UsdixoZSxwLEMsdWUsRCx3LEcpXSk6WzMsN107Y2FzZSA2OnJldHVybiBKPW5lLnNlbnQoKSx2PUouc3RhdGUscD1KLnBvbGxDb3VudCxbMyw1XTtjYXNlIDc6cmV0dXJuIHcmJncuZW5kKCksWzIsdl19fSl9KX07dmFyIHE9ZnVuY3Rpb24ob2Usc2UsaGUsdWUs'@; put 'Y2Upe3JldHVybiBrKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEcsYjtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKEQpe3N3aXRjaChELmxhYmVsKXtjYXNlIDA6cmV0dXJuIEc9c2UubGlua3MuZmluZChmdW5jdGlvbihIKXtyZXR1cm4ic3RhdGUiPT09SC5yZWx9KSxlZSho'@; put 'ZSk/KGI9dm9pZCAwLGNlP1s0LCgwLEIuZ2V0VG9rZW5zKShvZSxjZSldOlszLDJdKTpbMyw0XTtjYXNlIDE6Yj1ELnNlbnQoKSxELmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LG9lLmdldCgiIi5jb25jYXQoRy5ocmVmLCI/X2FjdGlvbj13YWl0JndhaXQ9MzAwIiksYj8uYWNjZXNzX3Rva2Vu'@; put 'LCJ0ZXh0L3BsYWluIix7fSx1ZSkuY2F0Y2goZnVuY3Rpb24oSCl7dGhyb3cgbmV3IFkuSm9iU3RhdGVQb2xsRXJyb3Ioc2UuaWQsSCl9KV07Y2FzZSAzOnJldHVyblsyLEQuc2VudCgpLnJlc3VsdC50cmltKCldO2Nhc2UgNDpyZXR1cm5bMixoZV19fSl9KX0sZWU9ZnVuY3Rpb24ob2Upe3Jl'@; put 'dHVybiBvZT09PVYuUnVubmluZ3x8b2U9PT1WLk5vU3RhdGV8fG9lPT09Vi5QZW5kaW5nfHxvZT09PVYuVW5hdmFpbGFibGV9O08uZG9Qb2xsPWZ1bmN0aW9uKG9lLHNlLGhlLHVlLGNlLEcsYixELEgsTil7cmV0dXJuIGsodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZyxD'@; put 'LFMsdixwLHcsSixuZSxkZSxmZSx4ZTtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKExlKXtzd2l0Y2goTGUubGFiZWwpe2Nhc2UgMDpnPUcubWF4UG9sbENvdW50LEM9Ry5wb2xsSW50ZXJ2YWwsUz16LmxvZ2dlcnx8Syx2PXNlLmxpbmtzLmZpbmQoZnVuY3Rpb24oRmUpe3JldHVybiJzdGF0ZSI9'@; put 'PT1GZS5yZWx9KSxwPTAsdz1oZSxKPVYuTm9TdGF0ZSxuZT0wLGRlPWZ1bmN0aW9uKCl7dmFyIEZlLE9lLEtlLFllLFFlLGx0LFBlLGJlLEFlLFRlLHFlLFhlLFVlLGh0O3JldHVybiBFKHRoaXMsZnVuY3Rpb24oTWUpe3N3aXRjaChNZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBOJiZjZSYmY2Ul'@; put 'MTA9PTAmJmI/KEtlPShGZT1OLnNlc3Npb24pLmlkLFFlPXNlLmlkLFs0LChPZT1OLnNlc3Npb25NYW5hZ2VyKS5nZXRTZXNzaW9uU3RhdGUoRmUuc3RhdGVVcmwsRmUuZXRhZyxZZT1iLmFjY2Vzc190b2tlbikuY2F0Y2goZnVuY3Rpb24oRGUpe3Rocm93IG5ldyBZLkpvYlN0YXRlUG9sbEVy'@; put 'cm9yKFFlLERlKX0pXSk6WzMsMl07Y2FzZSAxOmlmKGx0PU1lLnNlbnQoKSxiZT1sdC5yZXNwb25zZVN0YXR1cywhKEFlPWZ1bmN0aW9uKERlKXtyZXR1cm5bWC5TZXNzaW9uU3RhdGUuUnVubmluZyxYLlNlc3Npb25TdGF0ZS5JZGxlXS5pbmNsdWRlcyhEZSl9KShQZT1sdC5yZXN1bHQpfHwy'@; put 'MDAhPT1iZSl0aHJvdyBPZS5jbGVhclNlc3Npb24oS2UsWWUpLFRlPUFlKFBlKT8iU2Vzc2lvbiByZXNwb25zZSBzdGF0dXMgaXMgbm90IDIwMC4gU2Vzc2lvbiByZXNwb25zZSBzdGF0dXMgaXMgIi5jb25jYXQoYmUsIi4iKToiU2Vzc2lvbiBzdGF0ZSBvZiB0aGUgam9iIGlzIG5vdCAncnVu'@; put 'bmluZycgb3IgJ2lkbGUnLiBTZXNzaW9uIHN0YXRlIGlzICciLmNvbmNhdChQZSwiJyIpLG5ldyBZLkpvYlN0YXRlUG9sbEVycm9yKFFlLG5ldyBFcnJvcihUZSkpO01lLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LHEob2Usc2Usdyx1ZSxiKS5jYXRjaChmdW5jdGlvbihEZSl7aWYocCsrLGNl'@; put 'Pj1nfHxwPj01KXRocm93IERlO3JldHVybiBTLmVycm9yKCJFcnJvciBmZXRjaGluZyBqb2Igc3RhdGUgZnJvbSAiLmNvbmNhdCh2LmhyZWYsIi4gUmVzdW1pbmcgcG9sbCwgYXNzdW1pbmcgam9iIHRvIGJlIHJ1bm5pbmcuIiksRGUpLFYuVW5hdmFpbGFibGV9KV07Y2FzZSAzOnJldHVybiB3'@; put 'PU1lLnNlbnQoKSxjZSsrLHFlPXNlLmxpbmtzLmZpbmQoZnVuY3Rpb24oRGUpe3JldHVybiJzZWxmIj09PURlLnJlbH0pLmhyZWYsRD9bNCxvZS5nZXQocWUsYj8uYWNjZXNzX3Rva2VuKV06WzMsN107Y2FzZSA0OnJldHVybiBYZT1NZS5zZW50KCkucmVzdWx0LFVlPW51bGwhPT0oeGU9bnVs'@; put 'bD09PShmZT1YZS5sb2dTdGF0aXN0aWNzKXx8dm9pZCAwPT09ZmU/dm9pZCAwOmZlLmxpbmVDb3VudCkmJnZvaWQgMCE9PXhlP3hlOjFlNiwoaHQ9KCgwLFUuaXNOb2RlKSgpP1IoMjA4MCk6e3NhdmVMb2c6bnVsbH0pLnNhdmVMb2cpP1s0LGh0KHNlLG9lLG5lLFVlLEgsYj8uYWNjZXNzX3Rv'@; put 'a2VuKV06WzMsNl07Y2FzZSA1Ok1lLnNlbnQoKSxNZS5sYWJlbD02O2Nhc2UgNjpuZSs9VWUsTWUubGFiZWw9NztjYXNlIDc6cmV0dXJuIHVlJiZKIT09dyYmKFMuaW5mbygiUG9sbGluZzogIi5jb25jYXQob2UuZ2V0QmFzZVVybCgpK3FlLCIvc3RhdGUiKSksUy5pbmZvKCJDdXJyZW50IGpv'@; put 'YiBzdGF0ZTogIi5jb25jYXQodykpLEo9dyksdyE9PVYuVW5hdmFpbGFibGUmJnA+MCYmKHA9MCksdz09PVYuQ29tcGxldGVkP1szLDldOls0LCgwLFUuZGVsYXkpKEMpXTtjYXNlIDg6TWUuc2VudCgpLE1lLmxhYmVsPTk7Y2FzZSA5OnJldHVyblsyXX19KX0sTGUubGFiZWw9MTtjYXNlIDE6'@; put 'cmV0dXJuIGVlKHcpJiZjZTw9Zz9bNSxkZSgpXTpbMywzXTtjYXNlIDI6cmV0dXJuIExlLnNlbnQoKSxbMywxXTtjYXNlIDM6cmV0dXJuWzIse3N0YXRlOncscG9sbENvdW50OmNlfV19fSl9KX07dmFyIHRlPWZ1bmN0aW9uKG9lKXt2YXIgc2U9ZnVuY3Rpb24oaGUsdWUpe3Rocm93IG5ldyBF'@; put 'cnJvcigiUG9sbCBzdHJhdGVnaWVzIGFyZSBub3QgdmFsaWQuIi5jb25jYXQoaGU/IiAiLmNvbmNhdChoZSk6IiIpLmNvbmNhdCh1ZT8iIEludmFsaWQgcG9sbCBzdHJhdGVneTogXG4iLmNvbmNhdChKU09OLnN0cmluZ2lmeSh1ZSxudWxsLDIpKToiIikpfTtvZS5mb3JFYWNoKGZ1bmN0aW9u'@; put 'KGhlLHVlKXt2YXIgY2U9aGUubWF4UG9sbENvdW50LEc9aGUucG9sbEludGVydmFsO2NlPDE/c2UoIidtYXhQb2xsQ291bnQnIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC4iLGhlKTowIT09dWU/Y2U8PW9lW3VlLTFdLm1heFBvbGxDb3VudCYmc2UoIidtYXhQb2xsQ291bnQnIGhhcyB0byBi'@; put 'ZSBncmVhdGVyIHRoYW4gJ21heFBvbGxDb3VudCcgaW4gcHJldmlvdXMgcG9sbCBzdHJhdGVneS4iLGhlKTpHPDEmJnNlKCIncG9sbEludGVydmFsJyBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuIixoZSl9KX19LDIwODA6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQx'@; put 'NTUpLEs9Uig1MTA4KSxJPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihWLEIsWSxYKXtyZXR1cm4gbmV3KFl8fChZPVByb21pc2UpKShmdW5jdGlvbihVLHEpe2Z1bmN0aW9uIGVlKHNlKXt0cnl7b2UoWC5uZXh0KHNlKSl9Y2F0Y2goaGUpe3EoaGUpfX1mdW5jdGlvbiB0ZShzZSl7'@; put 'dHJ5e29lKFgudGhyb3coc2UpKX1jYXRjaChoZSl7cShoZSl9fWZ1bmN0aW9uIG9lKHNlKXt2YXIgaGU7c2UuZG9uZT9VKHNlLnZhbHVlKTooaGU9c2UudmFsdWUsaGUgaW5zdGFuY2VvZiBZP2hlOm5ldyBZKGZ1bmN0aW9uKHVlKXt1ZShoZSl9KSkudGhlbihlZSx0ZSl9b2UoKFg9WC5hcHBs'@; put 'eShWLEJ8fFtdKSkubmV4dCgpKX0pfSxrPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFYsQil7dmFyIFksWCxVLHEsZWU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmVVswXSl0aHJvdyBVWzFdO3JldHVybiBVWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHE9e25l'@; put 'eHQ6dGUoMCksdGhyb3c6dGUoMSkscmV0dXJuOnRlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYocVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxxO2Z1bmN0aW9uIHRlKG9lKXtyZXR1cm4gZnVuY3Rpb24oc2Upe3JldHVybiBmdW5jdGlvbihoZSl7'@; put 'aWYoWSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtlZTspdHJ5e2lmKFk9MSxYJiYoVT0yJmhlWzBdP1gucmV0dXJuOmhlWzBdP1gudGhyb3d8fCgoVT1YLnJldHVybikmJlUuY2FsbChYKSwwKTpYLm5leHQpJiYhKFU9VS5jYWxs'@; put 'KFgsaGVbMV0pKS5kb25lKXJldHVybiBVO3N3aXRjaChYPTAsVSYmKGhlPVsyJmhlWzBdLFUudmFsdWVdKSxoZVswXSl7Y2FzZSAwOmNhc2UgMTpVPWhlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gZWUubGFiZWwrKyx7dmFsdWU6aGVbMV0sZG9uZTohMX07Y2FzZSA1OmVlLmxhYmVsKyssWD1oZVsx'@; put 'XSxoZT1bMF07Y29udGludWU7Y2FzZSA3OmhlPWVlLm9wcy5wb3AoKSxlZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoVT0oVT1lZS50cnlzKS5sZW5ndGg+MCYmVVtVLmxlbmd0aC0xXSl8fDYhPT1oZVswXSYmMiE9PWhlWzBdKSl7ZWU9MDtjb250aW51ZX1pZigzPT09aGVb'@; put 'MF0mJighVXx8aGVbMV0+VVswXSYmaGVbMV08VVszXSkpe2VlLmxhYmVsPWhlWzFdO2JyZWFrfWlmKDY9PT1oZVswXSYmZWUubGFiZWw8VVsxXSl7ZWUubGFiZWw9VVsxXSxVPWhlO2JyZWFrfWlmKFUmJmVlLmxhYmVsPFVbMl0pe2VlLmxhYmVsPVVbMl0sZWUub3BzLnB1c2goaGUpO2JyZWFr'@; put 'fVVbMl0mJmVlLm9wcy5wb3AoKSxlZS50cnlzLnBvcCgpO2NvbnRpbnVlfWhlPUIuY2FsbChWLGVlKX1jYXRjaCh1ZSl7aGU9WzYsdWVdLFg9MH1maW5hbGx5e1k9VT0wfWlmKDUmaGVbMF0pdGhyb3cgaGVbMV07cmV0dXJue3ZhbHVlOmhlWzBdP2hlWzFdOnZvaWQgMCxkb25lOiEwfX0oW29l'@; put 'LHNlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uc2F2ZUxvZz12b2lkIDA7dmFyIEU9Uig1OTI4KSxqPVIoNjEzMSk7Ty5zYXZlTG9nPWZ1bmN0aW9uKFYsQixZLFgsVSxxKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rp'@; put 'b24oKXt2YXIgZWUsdGUsb2U7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihzZSl7c3dpdGNoKHNlLmxhYmVsKXtjYXNlIDA6aWYoIXEpdGhyb3cgbmV3IEVycm9yKCJMb2dzIGZvciBqb2IgIi5jb25jYXQoVi5pZCwiIGNhbm5vdCBiZSBmZXRjaGVkIHdpdGhvdXQgYSB2YWxpZCBhY2Nlc3MgdG9r'@; put 'ZW4uIikpO2lmKCFVKXRocm93IG5ldyBFcnJvcigiTG9ncyBmb3Igam9iICIuY29uY2F0KFYuaWQsIiBjYW5ub3QgYmUgd3JpdHRlbiB3aXRob3V0IGEgdmFsaWQgd3JpdGUgc3RyZWFtLiIpKTtpZihlZT16LmxvZ2dlcnx8SywhKHRlPVYubGlua3MuZmluZChmdW5jdGlvbihoZSl7cmV0dXJu'@; put 'ImxvZyI9PT1oZS5yZWx9KSkpdGhyb3cgbmV3IEVycm9yKCJMb2cgVVJMIGZvciBqb2IgIi5jb25jYXQoVi5pZCwiIHdhcyBub3QgZm91bmQuIikpO3JldHVybls0LCgwLEUuZmV0Y2hMb2cpKEIscSwiIi5jb25jYXQodGUuaHJlZiwiL2NvbnRlbnQiKSxZLFgpXTtjYXNlIDE6cmV0dXJuIG9l'@; put 'PXNlLnNlbnQoKSxlZS5pbmZvKCJXcml0aW5nIGxvZ3MgdG8gIi5jb25jYXQoVS5wYXRoKSksWzQsKDAsai53cml0ZVN0cmVhbSkoVSxvZXx8IiIpXTtjYXNlIDI6cmV0dXJuIHNlLnNlbnQoKSxbMl19fSl9KX19LDY0OTY6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlz'@; put 'JiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oRSxqLFYsQil7cmV0dXJuIG5ldyhWfHwoVj1Qcm9taXNlKSkoZnVuY3Rpb24oWSxYKXtmdW5jdGlvbiBVKHRlKXt0cnl7ZWUoQi5uZXh0KHRlKSl9Y2F0Y2gob2Upe1gob2UpfX1mdW5jdGlvbiBxKHRlKXt0cnl7ZWUoQi50aHJvdyh0ZSkpfWNh'@; put 'dGNoKG9lKXtYKG9lKX19ZnVuY3Rpb24gZWUodGUpe3ZhciBvZTt0ZS5kb25lP1kodGUudmFsdWUpOihvZT10ZS52YWx1ZSxvZSBpbnN0YW5jZW9mIFY/b2U6bmV3IFYoZnVuY3Rpb24oc2Upe3NlKG9lKX0pKS50aGVuKFUscSl9ZWUoKEI9Qi5hcHBseShFLGp8fFtdKSkubmV4dCgpKX0pfSxL'@; put 'PXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKEUsail7dmFyIFYsQixZLFgsVT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZZWzBdKXRocm93IFlbMV07cmV0dXJuIFlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gWD17bmV4dDpxKDApLHRocm93OnEoMSkscmV0dXJu'@; put 'OnEoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihYW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFg7ZnVuY3Rpb24gcShlZSl7cmV0dXJuIGZ1bmN0aW9uKHRlKXtyZXR1cm4gZnVuY3Rpb24ob2Upe2lmKFYpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2Vu'@; put 'ZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7VTspdHJ5e2lmKFY9MSxCJiYoWT0yJm9lWzBdP0IucmV0dXJuOm9lWzBdP0IudGhyb3d8fCgoWT1CLnJldHVybikmJlkuY2FsbChCKSwwKTpCLm5leHQpJiYhKFk9WS5jYWxsKEIsb2VbMV0pKS5kb25lKXJldHVybiBZO3N3aXRj'@; put 'aChCPTAsWSYmKG9lPVsyJm9lWzBdLFkudmFsdWVdKSxvZVswXSl7Y2FzZSAwOmNhc2UgMTpZPW9lO2JyZWFrO2Nhc2UgNDpyZXR1cm4gVS5sYWJlbCsrLHt2YWx1ZTpvZVsxXSxkb25lOiExfTtjYXNlIDU6VS5sYWJlbCsrLEI9b2VbMV0sb2U9WzBdO2NvbnRpbnVlO2Nhc2UgNzpvZT1VLm9w'@; put 'cy5wb3AoKSxVLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChZPShZPVUudHJ5cykubGVuZ3RoPjAmJllbWS5sZW5ndGgtMV0pfHw2IT09b2VbMF0mJjIhPT1vZVswXSkpe1U9MDtjb250aW51ZX1pZigzPT09b2VbMF0mJighWXx8b2VbMV0+WVswXSYmb2VbMV08WVszXSkpe1Uu'@; put 'bGFiZWw9b2VbMV07YnJlYWt9aWYoNj09PW9lWzBdJiZVLmxhYmVsPFlbMV0pe1UubGFiZWw9WVsxXSxZPW9lO2JyZWFrfWlmKFkmJlUubGFiZWw8WVsyXSl7VS5sYWJlbD1ZWzJdLFUub3BzLnB1c2gob2UpO2JyZWFrfVlbMl0mJlUub3BzLnBvcCgpLFUudHJ5cy5wb3AoKTtjb250aW51ZX1v'@; put 'ZT1qLmNhbGwoRSxVKX1jYXRjaChzZSl7b2U9WzYsc2VdLEI9MH1maW5hbGx5e1Y9WT0wfWlmKDUmb2VbMF0pdGhyb3cgb2VbMV07cmV0dXJue3ZhbHVlOm9lWzBdP29lWzFdOnZvaWQgMCxkb25lOiEwfX0oW2VlLHRlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUi'@; put 'LHt2YWx1ZTohMH0pLE8udXBsb2FkVGFibGVzPXZvaWQgMDt2YXIgST1SKDk3NzgpLGs9UigyNDAyKTtPLnVwbG9hZFRhYmxlcz1mdW5jdGlvbihFLGosVil7cmV0dXJuIHoodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEIsWSxYLFUscSxlZSx0ZTtyZXR1cm4gSyh0aGlzLGZ1'@; put 'bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpmb3IoWCBpbiBCPVtdLFk9W10sailZLnB1c2goWCk7VT0wLG9lLmxhYmVsPTE7Y2FzZSAxOmlmKCEoVTxZLmxlbmd0aCkpcmV0dXJuWzMsNF07aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PShlZT0oMCxrLmNvbnZl'@; put 'cnRUb0NTVikoaixxPVlbVV0pKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBtYXggbGVuZ3RoIG9mIGEgc3RyaW5nIHZhbHVlIGluIFNBU2pzIGlzIDMyNzY1IGNoYXJhY3RlcnMuIik7cmV0dXJuWzQsRS51cGxvYWRGaWxlKCIvZmlsZXMvZmlsZXMjcmF3VXBsb2FkIixlZSxWKS5jYXRjaChmdW5j'@; put 'dGlvbihzZSl7dGhyb3coMCxJLnByZWZpeE1lc3NhZ2UpKHNlLCJFcnJvciB3aGlsZSB1cGxvYWRpbmcgZmlsZS4gIil9KV07Y2FzZSAyOnRlPW9lLnNlbnQoKSxCLnB1c2goe3RhYmxlTmFtZTpxLGZpbGU6dGUucmVzdWx0fSksb2UubGFiZWw9MztjYXNlIDM6cmV0dXJuIFUrKyxbMywxXTtj'@; put 'YXNlIDQ6cmV0dXJuWzIsQl19fSl9KX19LDYxMzE6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmljdCI7dmFyIFI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEssSSxrLEUpe3JldHVybiBuZXcoa3x8KGs9UHJvbWlzZSkpKGZ1bmN0aW9uKGosVil7ZnVuY3Rpb24gQihVKXt0cnl7WChF'@; put 'Lm5leHQoVSkpfWNhdGNoKHEpe1YocSl9fWZ1bmN0aW9uIFkoVSl7dHJ5e1goRS50aHJvdyhVKSl9Y2F0Y2gocSl7VihxKX19ZnVuY3Rpb24gWChVKXt2YXIgcTtVLmRvbmU/aihVLnZhbHVlKToocT1VLnZhbHVlLHEgaW5zdGFuY2VvZiBrP3E6bmV3IGsoZnVuY3Rpb24oZWUpe2VlKHEpfSkp'@; put 'LnRoZW4oQixZKX1YKChFPUUuYXBwbHkoSyxJfHxbXSkpLm5leHQoKSl9KX0sej10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihLLEkpe3ZhciBrLEUsaixWLEI9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmalswXSl0aHJvdyBqWzFdO3JldHVybiBqWzFdfSx0cnlzOltd'@; put 'LG9wczpbXX07cmV0dXJuIFY9e25leHQ6WSgwKSx0aHJvdzpZKDEpLHJldHVybjpZKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoVltTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxWO2Z1bmN0aW9uIFkoWCl7cmV0dXJuIGZ1bmN0aW9uKFUpe3JldHVy'@; put 'biBmdW5jdGlvbihxKXtpZihrKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO0I7KXRyeXtpZihrPTEsRSYmKGo9MiZxWzBdP0UucmV0dXJuOnFbMF0/RS50aHJvd3x8KChqPUUucmV0dXJuKSYmai5jYWxsKEUpLDApOkUubmV4dCkm'@; put 'JiEoaj1qLmNhbGwoRSxxWzFdKSkuZG9uZSlyZXR1cm4gajtzd2l0Y2goRT0wLGomJihxPVsyJnFbMF0sai52YWx1ZV0pLHFbMF0pe2Nhc2UgMDpjYXNlIDE6aj1xO2JyZWFrO2Nhc2UgNDpyZXR1cm4gQi5sYWJlbCsrLHt2YWx1ZTpxWzFdLGRvbmU6ITF9O2Nhc2UgNTpCLmxhYmVsKyssRT1x'@; put 'WzFdLHE9WzBdO2NvbnRpbnVlO2Nhc2UgNzpxPUIub3BzLnBvcCgpLEIudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGo9KGo9Qi50cnlzKS5sZW5ndGg+MCYmaltqLmxlbmd0aC0xXSl8fDYhPT1xWzBdJiYyIT09cVswXSkpe0I9MDtjb250aW51ZX1pZigzPT09cVswXSYmKCFq'@; put 'fHxxWzFdPmpbMF0mJnFbMV08alszXSkpe0IubGFiZWw9cVsxXTticmVha31pZig2PT09cVswXSYmQi5sYWJlbDxqWzFdKXtCLmxhYmVsPWpbMV0saj1xO2JyZWFrfWlmKGomJkIubGFiZWw8alsyXSl7Qi5sYWJlbD1qWzJdLEIub3BzLnB1c2gocSk7YnJlYWt9alsyXSYmQi5vcHMucG9wKCks'@; put 'Qi50cnlzLnBvcCgpO2NvbnRpbnVlfXE9SS5jYWxsKEssQil9Y2F0Y2goZWUpe3E9WzYsZWVdLEU9MH1maW5hbGx5e2s9aj0wfWlmKDUmcVswXSl0aHJvdyBxWzFdO3JldHVybnt2YWx1ZTpxWzBdP3FbMV06dm9pZCAwLGRvbmU6ITB9fShbWCxVXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8ud3JpdGVTdHJlYW09dm9pZCAwLE8ud3JpdGVTdHJlYW09ZnVuY3Rpb24oSyxJKXtyZXR1cm4gUih2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiB6KHRoaXMsZnVuY3Rpb24oayl7cmV0dXJuWzIsSy53cml0ZShJKyJc'@; put 'biIsZnVuY3Rpb24oRSl7cmV0dXJuIEU/UHJvbWlzZS5yZWplY3QoRSk6UHJvbWlzZS5yZXNvbHZlKCl9KV19KX0pfX0sMjg1MTpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PVIoNTEwOCksSz1SKDQxNTUpLEk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKG9lLHNl'@; put 'LGhlLHVlKXtyZXR1cm4gbmV3KGhlfHwoaGU9UHJvbWlzZSkpKGZ1bmN0aW9uKGNlLEcpe2Z1bmN0aW9uIGIoTil7dHJ5e0godWUubmV4dChOKSl9Y2F0Y2goZyl7RyhnKX19ZnVuY3Rpb24gRChOKXt0cnl7SCh1ZS50aHJvdyhOKSl9Y2F0Y2goZyl7RyhnKX19ZnVuY3Rpb24gSChOKXt2YXIg'@; put 'ZztOLmRvbmU/Y2UoTi52YWx1ZSk6KGc9Ti52YWx1ZSxnIGluc3RhbmNlb2YgaGU/ZzpuZXcgaGUoZnVuY3Rpb24oQyl7QyhnKX0pKS50aGVuKGIsRCl9SCgodWU9dWUuYXBwbHkob2Usc2V8fFtdKSkubmV4dCgpKX0pfSxrPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKG9lLHNl'@; put 'KXt2YXIgaGUsdWUsY2UsRyxiPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmNlWzBdKXRocm93IGNlWzFdO3JldHVybiBjZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBHPXtuZXh0OkQoMCksdGhyb3c6RCgxKSxyZXR1cm46RCgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJv'@; put 'bCYmKEdbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksRztmdW5jdGlvbiBEKEgpe3JldHVybiBmdW5jdGlvbihOKXtyZXR1cm4gZnVuY3Rpb24oZyl7aWYoaGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zv'@; put 'cig7YjspdHJ5e2lmKGhlPTEsdWUmJihjZT0yJmdbMF0/dWUucmV0dXJuOmdbMF0/dWUudGhyb3d8fCgoY2U9dWUucmV0dXJuKSYmY2UuY2FsbCh1ZSksMCk6dWUubmV4dCkmJiEoY2U9Y2UuY2FsbCh1ZSxnWzFdKSkuZG9uZSlyZXR1cm4gY2U7c3dpdGNoKHVlPTAsY2UmJihnPVsyJmdbMF0s'@; put 'Y2UudmFsdWVdKSxnWzBdKXtjYXNlIDA6Y2FzZSAxOmNlPWc7YnJlYWs7Y2FzZSA0OnJldHVybiBiLmxhYmVsKysse3ZhbHVlOmdbMV0sZG9uZTohMX07Y2FzZSA1OmIubGFiZWwrKyx1ZT1nWzFdLGc9WzBdO2NvbnRpbnVlO2Nhc2UgNzpnPWIub3BzLnBvcCgpLGIudHJ5cy5wb3AoKTtjb250'@; put 'aW51ZTtkZWZhdWx0OmlmKCEoKGNlPShjZT1iLnRyeXMpLmxlbmd0aD4wJiZjZVtjZS5sZW5ndGgtMV0pfHw2IT09Z1swXSYmMiE9PWdbMF0pKXtiPTA7Y29udGludWV9aWYoMz09PWdbMF0mJighY2V8fGdbMV0+Y2VbMF0mJmdbMV08Y2VbM10pKXtiLmxhYmVsPWdbMV07YnJlYWt9aWYoNj09'@; put 'PWdbMF0mJmIubGFiZWw8Y2VbMV0pe2IubGFiZWw9Y2VbMV0sY2U9ZzticmVha31pZihjZSYmYi5sYWJlbDxjZVsyXSl7Yi5sYWJlbD1jZVsyXSxiLm9wcy5wdXNoKGcpO2JyZWFrfWNlWzJdJiZiLm9wcy5wb3AoKSxiLnRyeXMucG9wKCk7Y29udGludWV9Zz1zZS5jYWxsKG9lLGIpfWNhdGNo'@; put 'KEMpe2c9WzYsQ10sdWU9MH1maW5hbGx5e2hlPWNlPTB9aWYoNSZnWzBdKXRocm93IGdbMV07cmV0dXJue3ZhbHVlOmdbMF0/Z1sxXTp2b2lkIDAsZG9uZTohMH19KFtILE5dKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5BdXRoTWFuYWdl'@; put 'cj12b2lkIDA7dmFyIEU9UigzOTAwKSxqPVIoMTM5NSksVj1SKDU5MjgpLEI9UigxMTcwKSxZPVIoNTQxOCksWD1SKDQ1ODIpLFU9Uig2NTQ3KSxxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gb2Uoc2UsaGUsdWUsY2Upe3ZhciBHPXRoaXM7dGhpcy5zZXJ2ZXJVcmw9c2UsdGhpcy5zZXJ2ZXJUeXBl'@; put 'PWhlLHRoaXMucmVxdWVzdENsaWVudD11ZSx0aGlzLmxvZ2luQ2FsbGJhY2s9Y2UsdGhpcy51c2VyTmFtZT0iIix0aGlzLnVzZXJMb25nTmFtZT0iIix0aGlzLnJlZGlyZWN0ZWRMb2dpblVybD0iL1NBU0xvZ29uIix0aGlzLmV4dHJhY3RVc2VyTmFtZT1mdW5jdGlvbihiKXtzd2l0Y2goRy5z'@; put 'ZXJ2ZXJUeXBlKXtjYXNlIEUuU2VydmVyVHlwZS5TYXNWaXlhOnJldHVybiBiPy5pZDtjYXNlIEUuU2VydmVyVHlwZS5TYXM5OnJldHVybiIiO2Nhc2UgRS5TZXJ2ZXJUeXBlLlNhc2pzOnJldHVybiBiPy51c2VybmFtZTtkZWZhdWx0OnJldHVybiB6LmVycm9yKCJTZXJ2ZXIgVHlwZSBub3Qg'@; put 'Zm91bmQgaW4gZXh0cmFjdFVzZXJOYW1lIGZ1bmN0aW9uIiksIiJ9fSx0aGlzLmV4dHJhY3RVc2VyTG9uZ05hbWU9ZnVuY3Rpb24oYil7c3dpdGNoKEcuc2VydmVyVHlwZSl7Y2FzZSBFLlNlcnZlclR5cGUuU2FzVml5YTpyZXR1cm4gYj8ubmFtZTtjYXNlIEUuU2VydmVyVHlwZS5TYXM5OnJl'@; put 'dHVybigwLEIuZXh0cmFjdFVzZXJMb25nTmFtZVNhczkpKGIpO2Nhc2UgRS5TZXJ2ZXJUeXBlLlNhc2pzOnJldHVybiBiPy5kaXNwbGF5TmFtZTtkZWZhdWx0OnJldHVybiB6LmVycm9yKCJTZXJ2ZXIgVHlwZSBub3QgZm91bmQgaW4gZXh0cmFjdFVzZXJOYW1lIGZ1bmN0aW9uIiksIiJ9fSx0'@; put 'aGlzLnNldExvZ2luVXJsPWZ1bmN0aW9uKGIpe3ZhciBEPWJbMV0ucmVwbGFjZSgvXD8uKi8sIiIpO2lmKCIvIj09PURbMF0pe0Q9RC5zdWJzdHIoMSk7dmFyIEg9Ry5zZXJ2ZXJVcmw/IiIuY29uY2F0KEcuc2VydmVyVXJsLCIvIikuY29uY2F0KEQpOiIiLmNvbmNhdChEKTtHLmxvZ2luVXJs'@; put 'PUcuc2VydmVyVHlwZT09PUUuU2VydmVyVHlwZS5TYXNWaXlhP0g6SC5yZXBsYWNlKCIvU0FTTG9nb24vbG9naW4uZG8iLCIvU0FTTG9nb24vbG9naW4iKX19LHRoaXMubG9naW5Vcmw9Ii9TQVNMb2dvbi9sb2dpbiIsdGhpcy5sb2dvdXRVcmw9dGhpcy5zZXJ2ZXJUeXBlPT09RS5TZXJ2ZXJU'@; put 'eXBlLlNhczk/Ii9TQVNMb2dvbi9sb2dvdXQ/Ijp0aGlzLnNlcnZlclR5cGU9PT1FLlNlcnZlclR5cGUuU2FzVml5YT8iL1NBU0xvZ29uL2xvZ291dC5kbz8iOiIvU0FTTG9nb24vbG9nb3V0Iix0aGlzLnJlZGlyZWN0ZWRMb2dpblVybD10aGlzLnNlcnZlclVybCt0aGlzLnJlZGlyZWN0ZWRM'@; put 'b2dpblVybH1yZXR1cm4gb2UucHJvdG90eXBlLnJlZGlyZWN0ZWRMb2dJbj1mdW5jdGlvbihzZSl7dmFyIGhlPXNlLm9uTG9nZ2VkT3V0O3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB1ZSxHLGIsRCxILE4sZyxDLFM7cmV0dXJuIGsodGhpcyxmdW5jdGlvbih2'@; put 'KXtzd2l0Y2godi5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZmV0Y2hVc2VyTmFtZSgpXTtjYXNlIDE6cmV0dXJuIHVlPXYuc2VudCgpLEc9dWUudXNlck5hbWUsYj11ZS51c2VyTG9uZ05hbWUsdWUuaXNMb2dnZWRJbj8oKEsubG9nZ2VyfHx6KS5sb2coImxvZ2luIHdhcyBub3QgYXR0'@; put 'ZW1wdGVkIGFzIGEgdmFsaWQgc2Vzc2lvbiBhbHJlYWR5IGV4aXN0cyIpLFs0LHRoaXMubG9naW5DYWxsYmFjaygpXSk6WzMsM107Y2FzZSAyOnJldHVybiB2LnNlbnQoKSxbMix7aXNMb2dnZWRJbjohMCx1c2VyTmFtZTpHLHVzZXJMb25nTmFtZTpifV07Y2FzZSAzOnJldHVybls0LCgwLFku'@; put 'b3BlbldlYlBhZ2UpKHRoaXMucmVkaXJlY3RlZExvZ2luVXJsLCJTQVNMb2dvbiIse3dpZHRoOjUwMCxoZWlnaHQ6NjAwfSxoZSldO2Nhc2UgNDpyZXR1cm4oRD12LnNlbnQoKSk/dGhpcy5zZXJ2ZXJUeXBlIT09RS5TZXJ2ZXJUeXBlLlNhc1ZpeWE/WzMsNl06WzQsKDAsVS52ZXJpZnlTYXNW'@; put 'aXlhTG9naW4pKEQpXTpbMix7aXNMb2dnZWRJbjohMSx1c2VyTmFtZToiIix1c2VyTG9uZ05hbWU6IiJ9XTtjYXNlIDU6cmV0dXJuIE49di5zZW50KCksWzMsOF07Y2FzZSA2OnJldHVybls0LCgwLFgudmVyaWZ5U2FzOUxvZ2luKShEKV07Y2FzZSA3Ok49di5zZW50KCksdi5sYWJlbD04O2Nh'@; put 'c2UgODpyZXR1cm4gSD1OLmlzTG9nZ2VkSW4sRC5jbG9zZSgpLEg/dGhpcy5zZXJ2ZXJUeXBlIT09RS5TZXJ2ZXJUeXBlLlNhczk/WzMsMTBdOls0LHRoaXMucGVyZm9ybUNBU1NlY3VyaXR5Q2hlY2soKV06WzMsMTNdO2Nhc2UgOTp2LnNlbnQoKSx2LmxhYmVsPTEwO2Nhc2UgMTA6cmV0dXJu'@; put 'WzQsdGhpcy5mZXRjaFVzZXJOYW1lKCldO2Nhc2UgMTE6cmV0dXJuIGc9di5zZW50KCksQz1nLnVzZXJOYW1lLFM9Zy51c2VyTG9uZ05hbWUsWzQsdGhpcy5sb2dpbkNhbGxiYWNrKCldO2Nhc2UgMTI6cmV0dXJuIHYuc2VudCgpLFsyLHtpc0xvZ2dlZEluOiEwLHVzZXJOYW1lOkMsdXNlckxv'@; put 'bmdOYW1lOlN9XTtjYXNlIDEzOnJldHVyblsyLHtpc0xvZ2dlZEluOiExLHVzZXJOYW1lOiIiLHVzZXJMb25nTmFtZToiIn1dfX0pfSl9LG9lLnByb3RvdHlwZS5sb2dJbj1mdW5jdGlvbihzZSxoZSl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHVlLGNlLGIs'@; put 'RCxILE4sZyxDO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oUyl7c3dpdGNoKFMubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdWU9e19zZXJ2aWNlOiJkZWZhdWx0Iix1c2VybmFtZTpzZSxwYXNzd29yZDpoZX0sdGhpcy51c2VyTmFtZT0iIix0aGlzLnVzZXJMb25nTmFtZT0iIixbNCx0aGlzLmNoZWNr'@; put 'U2Vzc2lvbigpXTtjYXNlIDE6cmV0dXJuIGNlPVMuc2VudCgpLGI9Y2UubG9naW5Gb3JtLEQ9Y2UudXNlckxvbmdOYW1lLGNlLmlzTG9nZ2VkSW4/KChLLmxvZ2dlcnx8eikubG9nKCJsb2dpbiB3YXMgbm90IGF0dGVtcHRlZCBhcyBhIHZhbGlkIHNlc3Npb24gYWxyZWFkeSBleGlzdHMiKSxb'@; put 'NCx0aGlzLmxvZ2luQ2FsbGJhY2soKV0pOlszLDNdO2Nhc2UgMjpyZXR1cm4gUy5zZW50KCksdGhpcy51c2VyTmFtZT11ZS51c2VybmFtZSx0aGlzLnVzZXJMb25nTmFtZT1ELFsyLHtpc0xvZ2dlZEluOiEwLHVzZXJOYW1lOnRoaXMudXNlck5hbWUsdXNlckxvbmdOYW1lOnRoaXMudXNlckxv'@; put 'bmdOYW1lfV07Y2FzZSAzOnJldHVybls0LHRoaXMuc2VuZExvZ2luUmVxdWVzdChiLHVlKV07Y2FzZSA0OnJldHVybiBIPVMuc2VudCgpLChOPXRlKHRoaXMuc2VydmVyVHlwZSxIKSk/WzMsOV06ZWUoSCk/WzQsdGhpcy5nZXRMb2dpbkZvcm0oSCldOlszLDddO2Nhc2UgNTpyZXR1cm4gZz1T'@; put 'LnNlbnQoKSxbNCx0aGlzLnNlbmRMb2dpblJlcXVlc3QoZyx1ZSldO2Nhc2UgNjpIPVMuc2VudCgpLFMubGFiZWw9NztjYXNlIDc6cmV0dXJuWzQsdGhpcy5jaGVja1Nlc3Npb24oKV07Y2FzZSA4OkM9Uy5zZW50KCksTj1DLmlzTG9nZ2VkSW4sdGhpcy51c2VyTG9uZ05hbWU9Qy51c2VyTG9u'@; put 'Z05hbWUsUy5sYWJlbD05O2Nhc2UgOTpyZXR1cm4gTj90aGlzLnNlcnZlclR5cGUhPT1FLlNlcnZlclR5cGUuU2FzOT9bMywxMV06WzQsdGhpcy5wZXJmb3JtQ0FTU2VjdXJpdHlDaGVjaygpXTpbMywxMl07Y2FzZSAxMDpTLnNlbnQoKSxTLmxhYmVsPTExO2Nhc2UgMTE6dGhpcy5sb2dpbkNh'@; put 'bGxiYWNrKCksdGhpcy51c2VyTmFtZT11ZS51c2VybmFtZSxTLmxhYmVsPTEyO2Nhc2UgMTI6cmV0dXJuWzIse2lzTG9nZ2VkSW46Tix1c2VyTmFtZTp0aGlzLnVzZXJOYW1lLHVzZXJMb25nTmFtZTp0aGlzLnVzZXJMb25nTmFtZX1dfX0pfSl9LG9lLnByb3RvdHlwZS5wZXJmb3JtQ0FTU2Vj'@; put 'dXJpdHlDaGVjaz1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzZTtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gc2U9IiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvU0FTU3RvcmVk'@; put 'UHJvY2Vzcy9qX3NwcmluZ19jYXNfc2VjdXJpdHlfY2hlY2siKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvU0FTTG9nb24vbG9naW4/c2VydmljZT0iLmNvbmNhdChzZSksdm9pZCAwKS5jYXRjaChmdW5jdGlvbih1ZSl7aWYoISh1ZSBpbnN0YW5jZW9mIGouTm90Rm91bmRFcnJvcikp'@; put 'dGhyb3cgdWV9KV07Y2FzZSAxOnJldHVybiBoZS5zZW50KCksWzJdfX0pfSl9LG9lLnByb3RvdHlwZS5zZW5kTG9naW5SZXF1ZXN0PWZ1bmN0aW9uKHNlLGhlKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgRyxiO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oRCl7'@; put 'c3dpdGNoKEQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5zZXJ2ZXJUeXBlIT09RS5TZXJ2ZXJUeXBlLlNhc2pzP1szLDJdOls0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KHRoaXMubG9naW5Vcmwse3VzZXJuYW1lOmhlLnVzZXJuYW1lLHBhc3N3b3JkOmhlLnBhc3N3b3JkfSx2b2lkIDAp'@; put 'XTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLEQuc2VudCgpLnJlc3VsdF07Y2FzZSAyOmZvcihHIGluIHNlKWhlW0ddPXNlW0ddO3JldHVybiBiPSgwLFYuc2VyaWFsaXplKShoZSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QodGhpcy5sb2dpblVybCxiLHZvaWQgMCwidGV4dC9wbGFpbiIs'@; put 'eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLEFjY2VwdDoiKi8qIn0pXX19KX0pfSxvZS5wcm90b3R5cGUuY2hlY2tTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHNlLGhlLHVlLGNl'@; put 'LEc7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihiKXtzd2l0Y2goYi5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZmV0Y2hVc2VyTmFtZSgpXTtjYXNlIDE6cmV0dXJuIHNlPWIuc2VudCgpLHVlPXNlLnVzZXJOYW1lLGNlPXNlLnVzZXJMb25nTmFtZSxHPW51bGwsKGhlPXNlLmlzTG9nZ2Vk'@; put 'SW4pP1szLDRdOls0LHRoaXMubG9nT3V0KCldO2Nhc2UgMjpyZXR1cm4gYi5zZW50KCksWzQsdGhpcy5nZXROZXdMb2dpbkZvcm0oKV07Y2FzZSAzOkc9Yi5zZW50KCksYi5sYWJlbD00O2Nhc2UgNDpyZXR1cm5bMixQcm9taXNlLnJlc29sdmUoe2lzTG9nZ2VkSW46aGUsdXNlck5hbWU6dWUs'@; put 'dXNlckxvbmdOYW1lOmNlLGxvZ2luRm9ybTpHfSldfX0pfSl9LG9lLnByb3RvdHlwZS5nZXROZXdMb2dpbkZvcm09ZnVuY3Rpb24oKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgc2U7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVs'@; put 'KXtjYXNlIDA6cmV0dXJuIHRoaXMuc2VydmVyVHlwZT09PUUuU2VydmVyVHlwZS5TYXNqcz9bMix0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvIix2b2lkIDApLnRoZW4oZnVuY3Rpb24odWUpe3ZhciBjZSxiPW51bGw9PT0oY2U9LzxzY3JpcHQ+ZG9jdW1lbnQuY29va2llID0gJyhYU1JGLVRP'@; put 'S0VOPS4qOyBNYXgtQWdlPTg2NDAwOyBTYW1lU2l0ZT1TdHJpY3Q7IFBhdGg9XC87KSc8XC9zY3JpcHQ+Ly5leGVjKHVlLnJlc3VsdCkpfHx2b2lkIDA9PT1jZT92b2lkIDA6Y2VbMV07YiYmKGRvY3VtZW50LmNvb2tpZT1iKX0pXTpbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KHRoaXMubG9n'@; put 'aW5VcmwucmVwbGFjZSgiL1NBU0xvZ29uL2xvZ2luLmRvIiwiL1NBU0xvZ29uL2xvZ2luIiksdm9pZCAwLCJ0ZXh0L3BsYWluIildO2Nhc2UgMTpyZXR1cm4gc2U9aGUuc2VudCgpLnJlc3VsdCxbNCx0aGlzLmdldExvZ2luRm9ybShzZSldO2Nhc2UgMjpyZXR1cm5bMixoZS5zZW50KCldfX0p'@; put 'fSl9LG9lLnByb3RvdHlwZS5mZXRjaFVzZXJOYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHNlLGhlLHVlO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oY2Upe3N3aXRjaChjZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBzZT0iIi5jb25jYXQo'@; put 'dGhpcy5zZXJ2ZXJVcmwsdGhpcy5zZXJ2ZXJUeXBlPT09RS5TZXJ2ZXJUeXBlLlNhc1ZpeWE/Ii9pZGVudGl0aWVzL3VzZXJzL0BjdXJyZW50VXNlciI6dGhpcy5zZXJ2ZXJUeXBlPT09RS5TZXJ2ZXJUeXBlLlNhczk/Ii9TQVNTdG9yZWRQcm9jZXNzIjoiL1NBU2pzQXBpL3Nlc3Npb24iKSxb'@; put 'NCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KHNlLHZvaWQgMCwidGV4dC9wbGFpbiIpLmNhdGNoKGZ1bmN0aW9uKEcpe3JldHVybntyZXN1bHQ6ImF1dGhFcnIifX0pXTtjYXNlIDE6cmV0dXJuIGhlPWNlLnNlbnQoKS5yZXN1bHQsKHVlPSJhdXRoRXJyIiE9PWhlKT9bMywzXTpbNCx0aGlzLmxv'@; put 'Z091dCgpXTtjYXNlIDI6cmV0dXJuIGNlLnNlbnQoKSxbMix7aXNMb2dnZWRJbjp1ZSx1c2VyTmFtZToiIix1c2VyTG9uZ05hbWU6IiJ9XTtjYXNlIDM6cmV0dXJuWzIse2lzTG9nZ2VkSW46dWUsdXNlck5hbWU6dGhpcy5leHRyYWN0VXNlck5hbWUoaGUpLHVzZXJMb25nTmFtZTp0aGlzLmV4'@; put 'dHJhY3RVc2VyTG9uZ05hbWUoaGUpfV19fSl9KX0sb2UucHJvdG90eXBlLmdldExvZ2luRm9ybT1mdW5jdGlvbihzZSl7dmFyIGhlPS88Zm9ybS4rYWN0aW9uPSIoLiooTG9nb258bG9naW4pW14iXSopLio+Ly5leGVjKHNlKSx1ZT17fTtpZihoZSYmaGUubGVuZ3RoKXt0aGlzLnNldExvZ2lu'@; put 'VXJsKGhlKTt2YXIgY2U9KHNlPXNlLnJlcGxhY2UoLzxpbnB1dC9nLCJcbjxpbnB1dCIpKS5tYXRjaCgvPGlucHV0LioiaGlkZGVuIltePl0qPi9nKTtjZSYmY2UuZm9yRWFjaChmdW5jdGlvbihHKXt2YXIgYj1HLm1hdGNoKC9uYW1lPSIoW14iXSopIlxzdmFsdWU9IihbXiJdKikvKTtiJiZi'@; put 'Lmxlbmd0aCYmKHVlW2JbMV1dPWJbMl0pfSl9cmV0dXJuIE9iamVjdC5rZXlzKHVlKS5sZW5ndGg/dWU6bnVsbH0sb2UucHJvdG90eXBlLmxvZ091dD1mdW5jdGlvbigpe3JldHVybiBJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBrKHRoaXMsZnVuY3Rpb24oc2Upe3Jl'@; put 'dHVybiB0aGlzLnJlcXVlc3RDbGllbnQuY2xlYXJDc3JmVG9rZW5zKCksWzIsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCh0aGlzLmxvZ291dFVybCx2b2lkIDApLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pXX0pfSl9LG9lfSgpO08uQXV0aE1hbmFnZXI9cTt2YXIgZWU9ZnVuY3Rpb24ob2Up'@; put 'e3JldHVybi9BbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB0aGUgc3lzdGVtIHdhcyB2ZXJpZnlpbmcgeW91ciBjcmVkZW50aWFscy4gUGxlYXNlIGVudGVyIHlvdXIgY3JlZGVudGlhbHMgYWdhaW4uL2dtLnRlc3Qob2UpfSx0ZT1mdW5jdGlvbihvZSxzZSl7cmV0dXJuIG9lPT09RS5TZXJ2ZXJU'@; put 'eXBlLlNhc2pzP3NlPy5sb2dnZWRpbjovWW91IGhhdmUgc2lnbmVkIGluL2dtLnRlc3Qoc2UpfX0sNTc6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oaixWLEIsWSl7cmV0dXJuIG5ldyhCfHwoQj1Qcm9taXNlKSkoZnVu'@; put 'Y3Rpb24oWCxVKXtmdW5jdGlvbiBxKG9lKXt0cnl7dGUoWS5uZXh0KG9lKSl9Y2F0Y2goc2Upe1Uoc2UpfX1mdW5jdGlvbiBlZShvZSl7dHJ5e3RlKFkudGhyb3cob2UpKX1jYXRjaChzZSl7VShzZSl9fWZ1bmN0aW9uIHRlKG9lKXt2YXIgc2U7b2UuZG9uZT9YKG9lLnZhbHVlKTooc2U9b2Uu'@; put 'dmFsdWUsc2UgaW5zdGFuY2VvZiBCP3NlOm5ldyBCKGZ1bmN0aW9uKGhlKXtoZShzZSl9KSkudGhlbihxLGVlKX10ZSgoWT1ZLmFwcGx5KGosVnx8W10pKS5uZXh0KCkpfSl9LEs9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oaixWKXt2YXIgQixZLFgsVSxxPXtsYWJlbDowLHNl'@; put 'bnQ6ZnVuY3Rpb24oKXtpZigxJlhbMF0pdGhyb3cgWFsxXTtyZXR1cm4gWFsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBVPXtuZXh0OmVlKDApLHRocm93OmVlKDEpLHJldHVybjplZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlv'@; put 'bigpe3JldHVybiB0aGlzfSksVTtmdW5jdGlvbiBlZSh0ZSl7cmV0dXJuIGZ1bmN0aW9uKG9lKXtyZXR1cm4gZnVuY3Rpb24oc2Upe2lmKEIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7cTspdHJ5e2lmKEI9MSxZJiYoWD0yJnNl'@; put 'WzBdP1kucmV0dXJuOnNlWzBdP1kudGhyb3d8fCgoWD1ZLnJldHVybikmJlguY2FsbChZKSwwKTpZLm5leHQpJiYhKFg9WC5jYWxsKFksc2VbMV0pKS5kb25lKXJldHVybiBYO3N3aXRjaChZPTAsWCYmKHNlPVsyJnNlWzBdLFgudmFsdWVdKSxzZVswXSl7Y2FzZSAwOmNhc2UgMTpYPXNlO2Jy'@; put 'ZWFrO2Nhc2UgNDpyZXR1cm4gcS5sYWJlbCsrLHt2YWx1ZTpzZVsxXSxkb25lOiExfTtjYXNlIDU6cS5sYWJlbCsrLFk9c2VbMV0sc2U9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzZT1xLm9wcy5wb3AoKSxxLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChYPShYPXEudHJ5cykubGVu'@; put 'Z3RoPjAmJlhbWC5sZW5ndGgtMV0pfHw2IT09c2VbMF0mJjIhPT1zZVswXSkpe3E9MDtjb250aW51ZX1pZigzPT09c2VbMF0mJighWHx8c2VbMV0+WFswXSYmc2VbMV08WFszXSkpe3EubGFiZWw9c2VbMV07YnJlYWt9aWYoNj09PXNlWzBdJiZxLmxhYmVsPFhbMV0pe3EubGFiZWw9WFsxXSxY'@; put 'PXNlO2JyZWFrfWlmKFgmJnEubGFiZWw8WFsyXSl7cS5sYWJlbD1YWzJdLHEub3BzLnB1c2goc2UpO2JyZWFrfVhbMl0mJnEub3BzLnBvcCgpLHEudHJ5cy5wb3AoKTtjb250aW51ZX1zZT1WLmNhbGwoaixxKX1jYXRjaChoZSl7c2U9WzYsaGVdLFk9MH1maW5hbGx5e0I9WD0wfWlmKDUmc2Vb'@; put 'MF0pdGhyb3cgc2VbMV07cmV0dXJue3ZhbHVlOnNlWzBdP3NlWzFdOnZvaWQgMCxkb25lOiEwfX0oW3RlLG9lXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2V0QWNjZXNzVG9rZW5Gb3JTYXNqcz12b2lkIDA7dmFyIEk9Uig5Nzc4KSxr'@; put 'PVIoOTAxNyksRT1SKDM5MDApO08uZ2V0QWNjZXNzVG9rZW5Gb3JTYXNqcz1mdW5jdGlvbihqLFYsQil7cmV0dXJuIHoodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFg7cmV0dXJuIEsodGhpcyxmdW5jdGlvbihVKXtzd2l0Y2goVS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGou'@; put 'cG9zdCgiL1NBU2pzQXBpL2F1dGgvdG9rZW4iLFg9e2NsaWVudElkOlYsY29kZTpCfSx2b2lkIDApLnRoZW4oZnVuY3Rpb24ocSl7dmFyIGVlPXEucmVzdWx0O3JldHVybnthY2Nlc3NfdG9rZW46ZWUuYWNjZXNzVG9rZW4scmVmcmVzaF90b2tlbjplZS5yZWZyZXNoVG9rZW59fSkuY2F0Y2go'@; put 'ZnVuY3Rpb24ocSl7dGhyb3coMCxJLnByZWZpeE1lc3NhZ2UpKHEsKDAsay5nZXRUb2tlblJlcXVlc3RFcnJvclByZWZpeCkoImZldGNoaW5nIGFjY2VzcyB0b2tlbiIsImdldEFjY2Vzc1Rva2VuRm9yU2FzanMiLEUuU2VydmVyVHlwZS5TYXNqcywiL1NBU2pzQXBpL2F1dGgvdG9rZW4iLFgs'@; put 'VikpfSldO2Nhc2UgMTpyZXR1cm5bMixVLnNlbnQoKV19fSl9KX19LDM1Njk6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDg3NjQpLkJ1ZmZlcixLPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihCLFksWCxVKXtyZXR1cm4gbmV3KFh8fChYPVByb21pc2UpKShm'@; put 'dW5jdGlvbihxLGVlKXtmdW5jdGlvbiB0ZShoZSl7dHJ5e3NlKFUubmV4dChoZSkpfWNhdGNoKHVlKXtlZSh1ZSl9fWZ1bmN0aW9uIG9lKGhlKXt0cnl7c2UoVS50aHJvdyhoZSkpfWNhdGNoKHVlKXtlZSh1ZSl9fWZ1bmN0aW9uIHNlKGhlKXt2YXIgdWU7aGUuZG9uZT9xKGhlLnZhbHVlKToo'@; put 'dWU9aGUudmFsdWUsdWUgaW5zdGFuY2VvZiBYP3VlOm5ldyBYKGZ1bmN0aW9uKGNlKXtjZSh1ZSl9KSkudGhlbih0ZSxvZSl9c2UoKFU9VS5hcHBseShCLFl8fFtdKSkubmV4dCgpKX0pfSxJPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKEIsWSl7dmFyIFgsVSxxLGVlLHRlPXts'@; put 'YWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnFbMF0pdGhyb3cgcVsxXTtyZXR1cm4gcVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBlZT17bmV4dDpvZSgwKSx0aHJvdzpvZSgxKSxyZXR1cm46b2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihlZVtTeW1ib2wuaXRlcmF0'@; put 'b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxlZTtmdW5jdGlvbiBvZShzZSl7cmV0dXJuIGZ1bmN0aW9uKGhlKXtyZXR1cm4gZnVuY3Rpb24odWUpe2lmKFgpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dGU7KXRyeXtpZihY'@; put 'PTEsVSYmKHE9MiZ1ZVswXT9VLnJldHVybjp1ZVswXT9VLnRocm93fHwoKHE9VS5yZXR1cm4pJiZxLmNhbGwoVSksMCk6VS5uZXh0KSYmIShxPXEuY2FsbChVLHVlWzFdKSkuZG9uZSlyZXR1cm4gcTtzd2l0Y2goVT0wLHEmJih1ZT1bMiZ1ZVswXSxxLnZhbHVlXSksdWVbMF0pe2Nhc2UgMDpj'@; put 'YXNlIDE6cT11ZTticmVhaztjYXNlIDQ6cmV0dXJuIHRlLmxhYmVsKysse3ZhbHVlOnVlWzFdLGRvbmU6ITF9O2Nhc2UgNTp0ZS5sYWJlbCsrLFU9dWVbMV0sdWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzp1ZT10ZS5vcHMucG9wKCksdGUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEo'@; put 'KHE9KHE9dGUudHJ5cykubGVuZ3RoPjAmJnFbcS5sZW5ndGgtMV0pfHw2IT09dWVbMF0mJjIhPT11ZVswXSkpe3RlPTA7Y29udGludWV9aWYoMz09PXVlWzBdJiYoIXF8fHVlWzFdPnFbMF0mJnVlWzFdPHFbM10pKXt0ZS5sYWJlbD11ZVsxXTticmVha31pZig2PT09dWVbMF0mJnRlLmxhYmVs'@; put 'PHFbMV0pe3RlLmxhYmVsPXFbMV0scT11ZTticmVha31pZihxJiZ0ZS5sYWJlbDxxWzJdKXt0ZS5sYWJlbD1xWzJdLHRlLm9wcy5wdXNoKHVlKTticmVha31xWzJdJiZ0ZS5vcHMucG9wKCksdGUudHJ5cy5wb3AoKTtjb250aW51ZX11ZT1ZLmNhbGwoQix0ZSl9Y2F0Y2goY2Upe3VlPVs2LGNl'@; put 'XSxVPTB9ZmluYWxseXtYPXE9MH1pZig1JnVlWzBdKXRocm93IHVlWzFdO3JldHVybnt2YWx1ZTp1ZVswXT91ZVsxXTp2b2lkIDAsZG9uZTohMH19KFtzZSxoZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmdldEFjY2Vzc1Rva2VuRm9y'@; put 'Vml5YT12b2lkIDA7dmFyIGs9UigzOTAwKSxFPVIoOTc3OCksaj1SKDEzOTUpLFY9Uig5MDE3KTtPLmdldEFjY2Vzc1Rva2VuRm9yVml5YT1mdW5jdGlvbihCLFksWCxVKXtyZXR1cm4gSyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcSxlZSx0ZSxvZSxzZTtyZXR1cm4gSSh0'@; put 'aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gcT12b2lkIDA9PT16P2J0b2EoWSsiOiIrWCk6ei5mcm9tKFkrIjoiK1gpLnRvU3RyaW5nKCJiYXNlNjQiKSxlZT0iL1NBU0xvZ29uL29hdXRoL3Rva2VuIix0ZT17QXV0aG9yaXphdGlvbjoiQmFzaWMgIitx'@; put 'LEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9LG9lPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIsY29kZTpVfSksc2U9bmV3IFVSTFNlYXJjaFBhcmFtcyhvZSksWzQsQi5wb3N0KGVlLHNlLHZvaWQgMCwiYXBwbGljYXRpb24veC13d3ctZm9y'@; put 'bS11cmxlbmNvZGVkIix0ZSkudGhlbihmdW5jdGlvbih1ZSl7cmV0dXJuIHVlLnJlc3VsdH0pLmNhdGNoKGZ1bmN0aW9uKHVlKXt0aHJvdyB1ZSBpbnN0YW5jZW9mIGouQ2VydGlmaWNhdGVFcnJvcj91ZTooMCxFLnByZWZpeE1lc3NhZ2UpKHVlLCgwLFYuZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQ'@; put 'cmVmaXgpKCJmZXRjaGluZyBhY2Nlc3MgdG9rZW4iLCJnZXRBY2Nlc3NUb2tlbkZvclZpeWEiLGsuU2VydmVyVHlwZS5TYXNWaXlhLGVlLG9lLHRlLFksWCkpfSldO2Nhc2UgMTpyZXR1cm5bMixoZS5zZW50KCldfX0pfSl9fSw5MDE3OihNLE8sUik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQcmVmaXhSZXNwb25zZT1PLmdldFRva2VuUmVxdWVzdEVycm9yUHJlZml4PXZvaWQgMDt2YXIgej1SKDM5MDApLEs9ZnVuY3Rpb24oSSl7cmV0dXJuIlJlc3BvbnNlIGZyb20gIi5j'@; put 'b25jYXQoST09PXouU2VydmVyVHlwZS5TYXNWaXlhPyJWaXlhIjoiU2FzanMiLCIgaXMgYmVsb3cuIil9O08uZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQcmVmaXg9ZnVuY3Rpb24oSSxrLEUsaixWLEIsWSxYKXt2YXIgVT1mdW5jdGlvbihlZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGVlLG51bGws'@; put 'Mil9LHE9WyJFcnJvciB3aGlsZSAiLmNvbmNhdChJLCIgZnJvbSAiKS5jb25jYXQoaiksIlRocm93biBieSB0aGUgQHNhc2pzL2FkYXB0ZXIgIi5jb25jYXQoaywiIGZ1bmN0aW9uLiIpXTtyZXR1cm4gViYmKHEucHVzaCgiUGF5bG9hZDoiKSxxLnB1c2goVShWKSkpLEImJihxLnB1c2goIkhl'@; put 'YWRlcnM6IikscS5wdXNoKFUoQikpKSxZJiZxLnB1c2goIkNsaWVudElkOiAiLmNvbmNhdChZKSksWCYmcS5wdXNoKCJDbGllbnRTZWNyZXQ6ICIuY29uY2F0KFgpKSxxLnB1c2goIiIpLHEucHVzaCgiIi5jb25jYXQoSyhFKSkpLHEucHVzaCgiIikscS5qb2luKCJcbiIpfSxPLmdldFRva2Vu'@; put 'UmVxdWVzdEVycm9yUHJlZml4UmVzcG9uc2U9ZnVuY3Rpb24oSSxrKXtyZXR1cm4gSS5zcGxpdCgiIi5jb25jYXQoSyhrKSwiXG4iKSkucG9wKCl9fSw3MDQ6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUpLEs9Uig1MTA4KSxJPXRoaXMmJnRoaXMuX19hd2FpdGVy'@; put 'fHxmdW5jdGlvbihZLFgsVSxxKXtyZXR1cm4gbmV3KFV8fChVPVByb21pc2UpKShmdW5jdGlvbihlZSx0ZSl7ZnVuY3Rpb24gb2UodWUpe3RyeXtoZShxLm5leHQodWUpKX1jYXRjaChjZSl7dGUoY2UpfX1mdW5jdGlvbiBzZSh1ZSl7dHJ5e2hlKHEudGhyb3codWUpKX1jYXRjaChjZSl7dGUo'@; put 'Y2UpfX1mdW5jdGlvbiBoZSh1ZSl7dmFyIGNlO3VlLmRvbmU/ZWUodWUudmFsdWUpOihjZT11ZS52YWx1ZSxjZSBpbnN0YW5jZW9mIFU/Y2U6bmV3IFUoZnVuY3Rpb24oRyl7RyhjZSl9KSkudGhlbihvZSxzZSl9aGUoKHE9cS5hcHBseShZLFh8fFtdKSkubmV4dCgpKX0pfSxrPXRoaXMmJnRo'@; put 'aXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFksWCl7dmFyIFUscSxlZSx0ZSxvZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZlZVswXSl0aHJvdyBlZVsxXTtyZXR1cm4gZWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gdGU9e25leHQ6c2UoMCksdGhyb3c6c2UoMSkscmV0dXJu'@; put 'OnNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYodGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksdGU7ZnVuY3Rpb24gc2UoaGUpe3JldHVybiBmdW5jdGlvbih1ZSl7cmV0dXJuIGZ1bmN0aW9uKGNlKXtpZihVKXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'IkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYoVT0xLHEmJihlZT0yJmNlWzBdP3EucmV0dXJuOmNlWzBdP3EudGhyb3d8fCgoZWU9cS5yZXR1cm4pJiZlZS5jYWxsKHEpLDApOnEubmV4dCkmJiEoZWU9ZWUuY2FsbChxLGNlWzFdKSkuZG9uZSlyZXR1'@; put 'cm4gZWU7c3dpdGNoKHE9MCxlZSYmKGNlPVsyJmNlWzBdLGVlLnZhbHVlXSksY2VbMF0pe2Nhc2UgMDpjYXNlIDE6ZWU9Y2U7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJlbCsrLHt2YWx1ZTpjZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxxPWNlWzFdLGNlPVswXTtjb250aW51'@; put 'ZTtjYXNlIDc6Y2U9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChlZT0oZWU9b2UudHJ5cykubGVuZ3RoPjAmJmVlW2VlLmxlbmd0aC0xXSl8fDYhPT1jZVswXSYmMiE9PWNlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09Y2VbMF0mJighZWV8fGNl'@; put 'WzFdPmVlWzBdJiZjZVsxXTxlZVszXSkpe29lLmxhYmVsPWNlWzFdO2JyZWFrfWlmKDY9PT1jZVswXSYmb2UubGFiZWw8ZWVbMV0pe29lLmxhYmVsPWVlWzFdLGVlPWNlO2JyZWFrfWlmKGVlJiZvZS5sYWJlbDxlZVsyXSl7b2UubGFiZWw9ZWVbMl0sb2Uub3BzLnB1c2goY2UpO2JyZWFrfWVl'@; put 'WzJdJiZvZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZX1jZT1YLmNhbGwoWSxvZSl9Y2F0Y2goRyl7Y2U9WzYsR10scT0wfWZpbmFsbHl7VT1lZT0wfWlmKDUmY2VbMF0pdGhyb3cgY2VbMV07cmV0dXJue3ZhbHVlOmNlWzBdP2NlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2hlLHVl'@; put 'XSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2V0VG9rZW5zPXZvaWQgMDt2YXIgRT1SKDY3OTkpLGo9UigzOTAwKSxWPVIoMzY2KSxCPVIoMjQ5KTtPLmdldFRva2Vucz1mdW5jdGlvbihZLFgsVSl7cmV0dXJuIHZvaWQgMD09PVUmJihV'@; put 'PWouU2VydmVyVHlwZS5TYXNWaXlhKSxJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBxLGVlLHRlLG9lLHNlLHVlLGNlO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oRyl7c3dpdGNoKEcubGFiZWwpe2Nhc2UgMDppZihxPXoubG9nZ2VyfHxLLHRlPVgucmVmcmVzaF90b2tlbixv'@; put 'ZT1YLmNsaWVudCxzZT1YLnNlY3JldCwhKDAsRS5pc0FjY2Vzc1Rva2VuRXhwaXJpbmcpKGVlPVguYWNjZXNzX3Rva2VuKSYmISgwLEUuaXNSZWZyZXNoVG9rZW5FeHBpcmluZykodGUpKXJldHVyblszLDVdO2lmKCgwLEUuaGFzVG9rZW5FeHBpcmVkKSh0ZSkpdGhyb3cgcS5lcnJvcigiVW5h'@; put 'YmxlIHRvIG9idGFpbiBuZXcgYWNjZXNzIHRva2VuLiBZb3VyIHJlZnJlc2ggdG9rZW4gaGFzIGV4cGlyZWQuIiksbmV3IEVycm9yKCJVbmFibGUgdG8gb2J0YWluIG5ldyBhY2Nlc3MgdG9rZW4uIFlvdXIgcmVmcmVzaCB0b2tlbiBoYXMgZXhwaXJlZC4iKTtyZXR1cm4gcS5pbmZvKCJSZWZy'@; put 'ZXNoaW5nIGFjY2VzcyBhbmQgcmVmcmVzaCB0b2tlbnMuIiksVSE9PWouU2VydmVyVHlwZS5TYXNWaXlhP1szLDJdOls0LCgwLFYucmVmcmVzaFRva2Vuc0ZvclZpeWEpKFksb2Usc2UsdGUpXTtjYXNlIDE6cmV0dXJuIGNlPUcuc2VudCgpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCwoMCxCLnJl'@; put 'ZnJlc2hUb2tlbnNGb3JTYXNqcykoWSx0ZSldO2Nhc2UgMzpjZT1HLnNlbnQoKSxHLmxhYmVsPTQ7Y2FzZSA0OmVlPSh1ZT1jZSkuYWNjZXNzX3Rva2VuLHRlPXVlLnJlZnJlc2hfdG9rZW4sRy5sYWJlbD01O2Nhc2UgNTpyZXR1cm5bMix7YWNjZXNzX3Rva2VuOmVlLHJlZnJlc2hfdG9rZW46'@; put 'dGUsY2xpZW50Om9lLHNlY3JldDpzZX1dfX0pfSl9fSwxNTI3OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEksayxFLGope3ZvaWQgMD09PWomJihqPUUpO3ZhciBWPU9iamVjdC5n'@; put 'ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoayxFKTtWJiYhKCJnZXQiaW4gVj8hay5fX2VzTW9kdWxlOlYud3JpdGFibGV8fFYuY29uZmlndXJhYmxlKXx8KFY9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGtbRV19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEksaixWKX06'@; put 'ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAwPT09aiYmKGo9RSksSVtqXT1rW0VdfSksSz10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oSSxrKXtmb3IodmFyIEUgaW4gSSkiZGVmYXVsdCI9PT1FfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoayxFKXx8eihr'@; put 'LEksRSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxLKFIoMjg1MSksTyksSyhSKDkwOTcpLE8pLEsoUig5MTY2KSxPKX0sOTA5NzooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVl'@; put 'OiEwfSksTy5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZD12b2lkIDAsTy5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZD1mdW5jdGlvbihSKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25cL29hdXRoXC9hdXRob3JpemVbXiJdKikuKj4vZ20udGVzdChSKX19LDkxNjY6KE0sTyk9PnsidXNl'@; put 'IHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uaXNMb2dJblJlcXVpcmVkPXZvaWQgMCxPLmlzTG9nSW5SZXF1aXJlZD1mdW5jdGlvbihSKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qKExvZ29uKXwobG9naW4pW14iXSopLio+L2dt'@; put 'LnRlc3QoUil9fSw1NDE4OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEUsaixWLEIpe3JldHVybiBuZXcoVnx8KFY9UHJvbWlzZSkpKGZ1bmN0aW9uKFksWCl7ZnVuY3Rpb24gVSh0ZSl7dHJ5e2VlKEIubmV4dCh0ZSkp'@; put 'fWNhdGNoKG9lKXtYKG9lKX19ZnVuY3Rpb24gcSh0ZSl7dHJ5e2VlKEIudGhyb3codGUpKX1jYXRjaChvZSl7WChvZSl9fWZ1bmN0aW9uIGVlKHRlKXt2YXIgb2U7dGUuZG9uZT9ZKHRlLnZhbHVlKToob2U9dGUudmFsdWUsb2UgaW5zdGFuY2VvZiBWP29lOm5ldyBWKGZ1bmN0aW9uKHNlKXtz'@; put 'ZShvZSl9KSkudGhlbihVLHEpfWVlKChCPUIuYXBwbHkoRSxqfHxbXSkpLm5leHQoKSl9KX0sSz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihFLGope3ZhciBWLEIsWSxYLFU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmWVswXSl0aHJvdyBZWzFdO3JldHVybiBZWzFd'@; put 'fSx0cnlzOltdLG9wczpbXX07cmV0dXJuIFg9e25leHQ6cSgwKSx0aHJvdzpxKDEpLHJldHVybjpxKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoWFtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxYO2Z1bmN0aW9uIHEoZWUpe3JldHVybiBmdW5jdGlv'@; put 'bih0ZSl7cmV0dXJuIGZ1bmN0aW9uKG9lKXtpZihWKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO1U7KXRyeXtpZihWPTEsQiYmKFk9MiZvZVswXT9CLnJldHVybjpvZVswXT9CLnRocm93fHwoKFk9Qi5yZXR1cm4pJiZZLmNhbGwo'@; put 'QiksMCk6Qi5uZXh0KSYmIShZPVkuY2FsbChCLG9lWzFdKSkuZG9uZSlyZXR1cm4gWTtzd2l0Y2goQj0wLFkmJihvZT1bMiZvZVswXSxZLnZhbHVlXSksb2VbMF0pe2Nhc2UgMDpjYXNlIDE6WT1vZTticmVhaztjYXNlIDQ6cmV0dXJuIFUubGFiZWwrKyx7dmFsdWU6b2VbMV0sZG9uZTohMX07'@; put 'Y2FzZSA1OlUubGFiZWwrKyxCPW9lWzFdLG9lPVswXTtjb250aW51ZTtjYXNlIDc6b2U9VS5vcHMucG9wKCksVS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoWT0oWT1VLnRyeXMpLmxlbmd0aD4wJiZZW1kubGVuZ3RoLTFdKXx8NiE9PW9lWzBdJiYyIT09b2VbMF0pKXtVPTA7'@; put 'Y29udGludWV9aWYoMz09PW9lWzBdJiYoIVl8fG9lWzFdPllbMF0mJm9lWzFdPFlbM10pKXtVLmxhYmVsPW9lWzFdO2JyZWFrfWlmKDY9PT1vZVswXSYmVS5sYWJlbDxZWzFdKXtVLmxhYmVsPVlbMV0sWT1vZTticmVha31pZihZJiZVLmxhYmVsPFlbMl0pe1UubGFiZWw9WVsyXSxVLm9wcy5w'@; put 'dXNoKG9lKTticmVha31ZWzJdJiZVLm9wcy5wb3AoKSxVLnRyeXMucG9wKCk7Y29udGludWV9b2U9ai5jYWxsKEUsVSl9Y2F0Y2goc2Upe29lPVs2LHNlXSxCPTB9ZmluYWxseXtWPVk9MH1pZig1Jm9lWzBdKXRocm93IG9lWzFdO3JldHVybnt2YWx1ZTpvZVswXT9vZVsxXTp2b2lkIDAsZG9u'@; put 'ZTohMH19KFtlZSx0ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLm9wZW5XZWJQYWdlPXZvaWQgMDt2YXIgST1SKDEyMTApLGs9e3dpZHRoOjUwMCxoZWlnaHQ6NjAwfTtPLm9wZW5XZWJQYWdlPWZ1bmN0aW9uKEUsaixWLEIpe3JldHVy'@; put 'biB2b2lkIDA9PT1qJiYoaj0iIiksdm9pZCAwPT09ViYmKFY9aykseih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgWSxYLFUscSxlZTtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKHRlKXtzd2l0Y2godGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gWT1WLndpZHRoLFg9Vi5oZWlnaHQs'@; put 'VT1zY3JlZW4ud2lkdGgvMi1ZLzIscT1zY3JlZW4uaGVpZ2h0LzItWC8yLChlZT13aW5kb3cub3BlbihFLGosInRvb2xiYXI9MCxsb2NhdGlvbj0wLG1lbnViYXI9MCx3aWR0aD0iLmNvbmNhdChZLCIsaGVpZ2h0PSIpLmNvbmNhdChYLCIsbGVmdD0iKS5jb25jYXQoVSwiLHRvcD0iKS5jb25j'@; put 'YXQocSkpKT9bMywyXTpbNCwoQj8/SS5vcGVuTG9naW5Qcm9tcHQpKCldO2Nhc2UgMTpyZXR1cm5bMix0ZS5zZW50KCk/d2luZG93Lm9wZW4oRSxqLCJ0b29sYmFyPTAsbG9jYXRpb249MCxtZW51YmFyPTAsd2lkdGg9Ii5jb25jYXQoWSwiLGhlaWdodD0iKS5jb25jYXQoWCwiLGxlZnQ9Iiku'@; put 'Y29uY2F0KFUsIix0b3A9IikuY29uY2F0KHEpKTpudWxsXTtjYXNlIDI6cmV0dXJuWzIsZWVdfX0pfSl9fSwyNDk6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oaixWLEIsWSl7cmV0dXJuIG5ldyhCfHwoQj1Qcm9taXNl'@; put 'KSkoZnVuY3Rpb24oWCxVKXtmdW5jdGlvbiBxKG9lKXt0cnl7dGUoWS5uZXh0KG9lKSl9Y2F0Y2goc2Upe1Uoc2UpfX1mdW5jdGlvbiBlZShvZSl7dHJ5e3RlKFkudGhyb3cob2UpKX1jYXRjaChzZSl7VShzZSl9fWZ1bmN0aW9uIHRlKG9lKXt2YXIgc2U7b2UuZG9uZT9YKG9lLnZhbHVlKToo'@; put 'c2U9b2UudmFsdWUsc2UgaW5zdGFuY2VvZiBCP3NlOm5ldyBCKGZ1bmN0aW9uKGhlKXtoZShzZSl9KSkudGhlbihxLGVlKX10ZSgoWT1ZLmFwcGx5KGosVnx8W10pKS5uZXh0KCkpfSl9LEs9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oaixWKXt2YXIgQixZLFgsVSxxPXtsYWJl'@; put 'bDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJlhbMF0pdGhyb3cgWFsxXTtyZXR1cm4gWFsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBVPXtuZXh0OmVlKDApLHRocm93OmVlKDEpLHJldHVybjplZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFVbU3ltYm9sLml0ZXJhdG9yXT1m'@; put 'dW5jdGlvbigpe3JldHVybiB0aGlzfSksVTtmdW5jdGlvbiBlZSh0ZSl7cmV0dXJuIGZ1bmN0aW9uKG9lKXtyZXR1cm4gZnVuY3Rpb24oc2Upe2lmKEIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7cTspdHJ5e2lmKEI9MSxZJiYo'@; put 'WD0yJnNlWzBdP1kucmV0dXJuOnNlWzBdP1kudGhyb3d8fCgoWD1ZLnJldHVybikmJlguY2FsbChZKSwwKTpZLm5leHQpJiYhKFg9WC5jYWxsKFksc2VbMV0pKS5kb25lKXJldHVybiBYO3N3aXRjaChZPTAsWCYmKHNlPVsyJnNlWzBdLFgudmFsdWVdKSxzZVswXSl7Y2FzZSAwOmNhc2UgMTpY'@; put 'PXNlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcS5sYWJlbCsrLHt2YWx1ZTpzZVsxXSxkb25lOiExfTtjYXNlIDU6cS5sYWJlbCsrLFk9c2VbMV0sc2U9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzZT1xLm9wcy5wb3AoKSxxLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChYPShYPXEudHJ5'@; put 'cykubGVuZ3RoPjAmJlhbWC5sZW5ndGgtMV0pfHw2IT09c2VbMF0mJjIhPT1zZVswXSkpe3E9MDtjb250aW51ZX1pZigzPT09c2VbMF0mJighWHx8c2VbMV0+WFswXSYmc2VbMV08WFszXSkpe3EubGFiZWw9c2VbMV07YnJlYWt9aWYoNj09PXNlWzBdJiZxLmxhYmVsPFhbMV0pe3EubGFiZWw9'@; put 'WFsxXSxYPXNlO2JyZWFrfWlmKFgmJnEubGFiZWw8WFsyXSl7cS5sYWJlbD1YWzJdLHEub3BzLnB1c2goc2UpO2JyZWFrfVhbMl0mJnEub3BzLnBvcCgpLHEudHJ5cy5wb3AoKTtjb250aW51ZX1zZT1WLmNhbGwoaixxKX1jYXRjaChoZSl7c2U9WzYsaGVdLFk9MH1maW5hbGx5e0I9WD0wfWlm'@; put 'KDUmc2VbMF0pdGhyb3cgc2VbMV07cmV0dXJue3ZhbHVlOnNlWzBdP3NlWzFdOnZvaWQgMCxkb25lOiEwfX0oW3RlLG9lXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8ucmVmcmVzaFRva2Vuc0ZvclNhc2pzPXZvaWQgMDt2YXIgST1SKDk3'@; put 'NzgpLGs9Uig5MDE3KSxFPVIoMzkwMCk7Ty5yZWZyZXNoVG9rZW5zRm9yU2FzanM9ZnVuY3Rpb24oaixWKXtyZXR1cm4geih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKFgpe3N3aXRjaChYLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsai5wb3N0'@; put 'KCIvU0FTanNBcGkvYXV0aC9yZWZyZXNoIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx7QXV0aG9yaXphdGlvbjoiQmVhcmVyICIrVn0pLnRoZW4oZnVuY3Rpb24oVSl7dmFyIHE9VS5yZXN1bHQ7cmV0dXJue2FjY2Vzc190b2tlbjpxLmFjY2Vzc1Rva2VuLHJlZnJlc2hfdG9rZW46cS5yZWZyZXNo'@; put 'VG9rZW59fSkuY2F0Y2goZnVuY3Rpb24oVSl7dGhyb3coMCxJLnByZWZpeE1lc3NhZ2UpKFUsKDAsay5nZXRUb2tlblJlcXVlc3RFcnJvclByZWZpeCkoInJlZnJlc2hpbmcgdG9rZW5zIiwicmVmcmVzaFRva2Vuc0ZvclNhc2pzIixFLlNlcnZlclR5cGUuU2FzanMsIi9TQVNqc0FwaS9hdXRo'@; put 'L3JlZnJlc2giKSl9KV07Y2FzZSAxOnJldHVyblsyLFguc2VudCgpXX19KX0pfX0sMzY2OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9Uig4NzY0KS5CdWZmZXIsSz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oWSxYLFUscSl7cmV0dXJuIG5ldyhVfHwoVT1Qcm9t'@; put 'aXNlKSkoZnVuY3Rpb24oZWUsdGUpe2Z1bmN0aW9uIG9lKHVlKXt0cnl7aGUocS5uZXh0KHVlKSl9Y2F0Y2goY2Upe3RlKGNlKX19ZnVuY3Rpb24gc2UodWUpe3RyeXtoZShxLnRocm93KHVlKSl9Y2F0Y2goY2Upe3RlKGNlKX19ZnVuY3Rpb24gaGUodWUpe3ZhciBjZTt1ZS5kb25lP2VlKHVl'@; put 'LnZhbHVlKTooY2U9dWUudmFsdWUsY2UgaW5zdGFuY2VvZiBVP2NlOm5ldyBVKGZ1bmN0aW9uKEcpe0coY2UpfSkpLnRoZW4ob2Usc2UpfWhlKChxPXEuYXBwbHkoWSxYfHxbXSkpLm5leHQoKSl9KX0sST10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihZLFgpe3ZhciBVLHEsZWUs'@; put 'dGUsb2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmZWVbMF0pdGhyb3cgZWVbMV07cmV0dXJuIGVlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHRlPXtuZXh0OnNlKDApLHRocm93OnNlKDEpLHJldHVybjpzZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHRlW1N5'@; put 'bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHRlO2Z1bmN0aW9uIHNlKGhlKXtyZXR1cm4gZnVuY3Rpb24odWUpe3JldHVybiBmdW5jdGlvbihjZSl7aWYoVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtv'@; put 'ZTspdHJ5e2lmKFU9MSxxJiYoZWU9MiZjZVswXT9xLnJldHVybjpjZVswXT9xLnRocm93fHwoKGVlPXEucmV0dXJuKSYmZWUuY2FsbChxKSwwKTpxLm5leHQpJiYhKGVlPWVlLmNhbGwocSxjZVsxXSkpLmRvbmUpcmV0dXJuIGVlO3N3aXRjaChxPTAsZWUmJihjZT1bMiZjZVswXSxlZS52YWx1'@; put 'ZV0pLGNlWzBdKXtjYXNlIDA6Y2FzZSAxOmVlPWNlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6Y2VbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKysscT1jZVsxXSxjZT1bMF07Y29udGludWU7Y2FzZSA3OmNlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2Nv'@; put 'bnRpbnVlO2RlZmF1bHQ6aWYoISgoZWU9KGVlPW9lLnRyeXMpLmxlbmd0aD4wJiZlZVtlZS5sZW5ndGgtMV0pfHw2IT09Y2VbMF0mJjIhPT1jZVswXSkpe29lPTA7Y29udGludWV9aWYoMz09PWNlWzBdJiYoIWVlfHxjZVsxXT5lZVswXSYmY2VbMV08ZWVbM10pKXtvZS5sYWJlbD1jZVsxXTti'@; put 'cmVha31pZig2PT09Y2VbMF0mJm9lLmxhYmVsPGVlWzFdKXtvZS5sYWJlbD1lZVsxXSxlZT1jZTticmVha31pZihlZSYmb2UubGFiZWw8ZWVbMl0pe29lLmxhYmVsPWVlWzJdLG9lLm9wcy5wdXNoKGNlKTticmVha31lZVsyXSYmb2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWV9'@; put 'Y2U9WC5jYWxsKFksb2UpfWNhdGNoKEcpe2NlPVs2LEddLHE9MH1maW5hbGx5e1U9ZWU9MH1pZig1JmNlWzBdKXRocm93IGNlWzFdO3JldHVybnt2YWx1ZTpjZVswXT9jZVsxXTp2b2lkIDAsZG9uZTohMH19KFtoZSx1ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxl'@; put 'Iix7dmFsdWU6ITB9KSxPLnJlZnJlc2hUb2tlbnNGb3JWaXlhPXZvaWQgMDt2YXIgaz1SKDM5MDApLEU9Uig5Nzc4KSxqPVIoNjIzMCksVj1SKDU5MjgpLEI9Uig5MDE3KTtPLnJlZnJlc2hUb2tlbnNGb3JWaXlhPWZ1bmN0aW9uKFksWCxVLHEpe3JldHVybiBLKHRoaXMsdm9pZCAwLHZvaWQg'@; put 'MCxmdW5jdGlvbigpe3ZhciBlZSx0ZSxvZSxzZTtyZXR1cm4gSSh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDppZighKDAsVi5pc05vZGUpKCkpdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgJ3JlZnJlc2hUb2tlbnNGb3JWaXlhJyBjYW4gb25seSBiZSB1c2VkIGJ5'@; put 'IE5vZGUuIik7cmV0dXJuIGVlPSIvU0FTTG9nb24vb2F1dGgvdG9rZW4iLHRlPXZvaWQgMD09PXo/YnRvYShYKyI6IitVKTp6LmZyb20oWCsiOiIrVSkudG9TdHJpbmcoImJhc2U2NCIpLG9lPXtBdXRob3JpemF0aW9uOiJCYXNpYyAiK3RlfSwoc2U9bmV3IGopLmFwcGVuZCgiZ3JhbnRfdHlw'@; put 'ZSIsInJlZnJlc2hfdG9rZW4iKSxzZS5hcHBlbmQoInJlZnJlc2hfdG9rZW4iLHEpLFs0LFkucG9zdChlZSxzZSx2b2lkIDAsIm11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIrc2UuX2JvdW5kYXJ5LG9lKS50aGVuKGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWUucmVzdWx0fSkuY2F0Y2go'@; put 'ZnVuY3Rpb24odWUpe3Rocm93KDAsRS5wcmVmaXhNZXNzYWdlKSh1ZSwoMCxCLmdldFRva2VuUmVxdWVzdEVycm9yUHJlZml4KSgicmVmcmVzaGluZyB0b2tlbnMiLCJyZWZyZXNoVG9rZW5zRm9yVml5YSIsay5TZXJ2ZXJUeXBlLlNhc1ZpeWEsZWUsc2Usb2UsWCxVKSl9KV07Y2FzZSAxOnJl'@; put 'dHVyblsyLGhlLnNlbnQoKV19fSl9KX19LDQ1ODI6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oayxFLGosVil7cmV0dXJuIG5ldyhqfHwoaj1Qcm9taXNlKSkoZnVuY3Rpb24oQixZKXtmdW5jdGlvbiBYKGVlKXt0cnl7'@; put 'cShWLm5leHQoZWUpKX1jYXRjaCh0ZSl7WSh0ZSl9fWZ1bmN0aW9uIFUoZWUpe3RyeXtxKFYudGhyb3coZWUpKX1jYXRjaCh0ZSl7WSh0ZSl9fWZ1bmN0aW9uIHEoZWUpe3ZhciB0ZTtlZS5kb25lP0IoZWUudmFsdWUpOih0ZT1lZS52YWx1ZSx0ZSBpbnN0YW5jZW9mIGo/dGU6bmV3IGooZnVu'@; put 'Y3Rpb24ob2Upe29lKHRlKX0pKS50aGVuKFgsVSl9cSgoVj1WLmFwcGx5KGssRXx8W10pKS5uZXh0KCkpfSl9LEs9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oayxFKXt2YXIgaixWLEIsWSxYPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkJbMF0pdGhyb3cgQlsxXTty'@; put 'ZXR1cm4gQlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBZPXtuZXh0OlUoMCksdGhyb3c6VSgxKSxyZXR1cm46VSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksWTtmdW5jdGlvbiBVKHEpe3JldHVy'@; put 'biBmdW5jdGlvbihlZSl7cmV0dXJuIGZ1bmN0aW9uKHRlKXtpZihqKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO1g7KXRyeXtpZihqPTEsViYmKEI9MiZ0ZVswXT9WLnJldHVybjp0ZVswXT9WLnRocm93fHwoKEI9Vi5yZXR1cm4p'@; put 'JiZCLmNhbGwoViksMCk6Vi5uZXh0KSYmIShCPUIuY2FsbChWLHRlWzFdKSkuZG9uZSlyZXR1cm4gQjtzd2l0Y2goVj0wLEImJih0ZT1bMiZ0ZVswXSxCLnZhbHVlXSksdGVbMF0pe2Nhc2UgMDpjYXNlIDE6Qj10ZTticmVhaztjYXNlIDQ6cmV0dXJuIFgubGFiZWwrKyx7dmFsdWU6dGVbMV0s'@; put 'ZG9uZTohMX07Y2FzZSA1OlgubGFiZWwrKyxWPXRlWzFdLHRlPVswXTtjb250aW51ZTtjYXNlIDc6dGU9WC5vcHMucG9wKCksWC50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoQj0oQj1YLnRyeXMpLmxlbmd0aD4wJiZCW0IubGVuZ3RoLTFdKXx8NiE9PXRlWzBdJiYyIT09dGVb'@; put 'MF0pKXtYPTA7Y29udGludWV9aWYoMz09PXRlWzBdJiYoIUJ8fHRlWzFdPkJbMF0mJnRlWzFdPEJbM10pKXtYLmxhYmVsPXRlWzFdO2JyZWFrfWlmKDY9PT10ZVswXSYmWC5sYWJlbDxCWzFdKXtYLmxhYmVsPUJbMV0sQj10ZTticmVha31pZihCJiZYLmxhYmVsPEJbMl0pe1gubGFiZWw9Qlsy'@; put 'XSxYLm9wcy5wdXNoKHRlKTticmVha31CWzJdJiZYLm9wcy5wb3AoKSxYLnRyeXMucG9wKCk7Y29udGludWV9dGU9RS5jYWxsKGssWCl9Y2F0Y2gob2Upe3RlPVs2LG9lXSxWPTB9ZmluYWxseXtqPUI9MH1pZig1JnRlWzBdKXRocm93IHRlWzFdO3JldHVybnt2YWx1ZTp0ZVswXT90ZVsxXTp2'@; put 'b2lkIDAsZG9uZTohMH19KFtxLGVlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8udmVyaWZ5U2FzOUxvZ2luPXZvaWQgMDt2YXIgST1SKDU5MjgpO08udmVyaWZ5U2FzOUxvZ2luPWZ1bmN0aW9uKGspe3JldHVybiB6KHRoaXMsdm9pZCAw'@; put 'LHZvaWQgMCxmdW5jdGlvbigpe3ZhciBFLGosVjtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKEIpe3N3aXRjaChCLmxhYmVsKXtjYXNlIDA6RT0hMSxqPW5ldyBEYXRlLFY9MCxCLmxhYmVsPTE7Y2FzZSAxOnJldHVybls0LCgwLEkuZGVsYXkpKDFlMyldO2Nhc2UgMjppZihCLnNlbnQoKSxrLmNs'@; put 'b3NlZClyZXR1cm5bMyw0XTtFPWsud2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoIlNBU0xvZ29uIikmJmsud2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJUZXh0LmluY2x1ZGVzKCJZb3UgaGF2ZSBzaWduZWQgaW4uIiksVj0oKG5ldyBEYXRlKS52YWx1ZU9mKCktai52YWx1ZU9mKCkp'@; put 'LzFlMyxCLmxhYmVsPTM7Y2FzZSAzOmlmKCFFJiZWPDMwMClyZXR1cm5bMywxXTtCLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyLHtpc0xvZ2dlZEluOkV9XX19KX0pfX0sNjU0NzpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlv'@; put 'bihrLEUsaixWKXtyZXR1cm4gbmV3KGp8fChqPVByb21pc2UpKShmdW5jdGlvbihCLFkpe2Z1bmN0aW9uIFgoZWUpe3RyeXtxKFYubmV4dChlZSkpfWNhdGNoKHRlKXtZKHRlKX19ZnVuY3Rpb24gVShlZSl7dHJ5e3EoVi50aHJvdyhlZSkpfWNhdGNoKHRlKXtZKHRlKX19ZnVuY3Rpb24gcShl'@; put 'ZSl7dmFyIHRlO2VlLmRvbmU/QihlZS52YWx1ZSk6KHRlPWVlLnZhbHVlLHRlIGluc3RhbmNlb2Ygaj90ZTpuZXcgaihmdW5jdGlvbihvZSl7b2UodGUpfSkpLnRoZW4oWCxVKX1xKChWPVYuYXBwbHkoayxFfHxbXSkpLm5leHQoKSl9KX0sSz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5j'@; put 'dGlvbihrLEUpe3ZhciBqLFYsQixZLFg9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmQlswXSl0aHJvdyBCWzFdO3JldHVybiBCWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIFk9e25leHQ6VSgwKSx0aHJvdzpVKDEpLHJldHVybjpVKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3lt'@; put 'Ym9sJiYoWVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxZO2Z1bmN0aW9uIFUocSl7cmV0dXJuIGZ1bmN0aW9uKGVlKXtyZXR1cm4gZnVuY3Rpb24odGUpe2lmKGopdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIp'@; put 'O2Zvcig7WDspdHJ5e2lmKGo9MSxWJiYoQj0yJnRlWzBdP1YucmV0dXJuOnRlWzBdP1YudGhyb3d8fCgoQj1WLnJldHVybikmJkIuY2FsbChWKSwwKTpWLm5leHQpJiYhKEI9Qi5jYWxsKFYsdGVbMV0pKS5kb25lKXJldHVybiBCO3N3aXRjaChWPTAsQiYmKHRlPVsyJnRlWzBdLEIudmFsdWVd'@; put 'KSx0ZVswXSl7Y2FzZSAwOmNhc2UgMTpCPXRlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gWC5sYWJlbCsrLHt2YWx1ZTp0ZVsxXSxkb25lOiExfTtjYXNlIDU6WC5sYWJlbCsrLFY9dGVbMV0sdGU9WzBdO2NvbnRpbnVlO2Nhc2UgNzp0ZT1YLm9wcy5wb3AoKSxYLnRyeXMucG9wKCk7Y29udGludWU7'@; put 'ZGVmYXVsdDppZighKChCPShCPVgudHJ5cykubGVuZ3RoPjAmJkJbQi5sZW5ndGgtMV0pfHw2IT09dGVbMF0mJjIhPT10ZVswXSkpe1g9MDtjb250aW51ZX1pZigzPT09dGVbMF0mJighQnx8dGVbMV0+QlswXSYmdGVbMV08QlszXSkpe1gubGFiZWw9dGVbMV07YnJlYWt9aWYoNj09PXRlWzBd'@; put 'JiZYLmxhYmVsPEJbMV0pe1gubGFiZWw9QlsxXSxCPXRlO2JyZWFrfWlmKEImJlgubGFiZWw8QlsyXSl7WC5sYWJlbD1CWzJdLFgub3BzLnB1c2godGUpO2JyZWFrfUJbMl0mJlgub3BzLnBvcCgpLFgudHJ5cy5wb3AoKTtjb250aW51ZX10ZT1FLmNhbGwoayxYKX1jYXRjaChvZSl7dGU9WzYs'@; put 'b2VdLFY9MH1maW5hbGx5e2o9Qj0wfWlmKDUmdGVbMF0pdGhyb3cgdGVbMV07cmV0dXJue3ZhbHVlOnRlWzBdP3RlWzFdOnZvaWQgMCxkb25lOiEwfX0oW3EsZWVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5pc0xvZ2dlZEluU0FTVklZ'@; put 'QT1PLnZlcmlmeVNhc1ZpeWFMb2dpbj12b2lkIDA7dmFyIEk9Uig1OTI4KTtPLnZlcmlmeVNhc1ZpeWFMb2dpbj1mdW5jdGlvbihrKXt2YXIgRSxqO3JldHVybiB6KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBWLEIsWSxYO3JldHVybiBLKHRoaXMsZnVuY3Rpb24oVSl7c3dp'@; put 'dGNoKFUubGFiZWwpe2Nhc2UgMDpWPSExLEI9bmV3IERhdGUsWT0wLFUubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsKDAsSS5kZWxheSkoMWUzKV07Y2FzZSAyOmlmKFUuc2VudCgpLGsuY2xvc2VkKXJldHVyblszLDRdO1Y9KDAsTy5pc0xvZ2dlZEluU0FTVklZQSkoKSxZPSgobmV3IERhdGUp'@; put 'LnZhbHVlT2YoKS1CLnZhbHVlT2YoKSkvMWUzLFUubGFiZWw9MztjYXNlIDM6aWYoIVYmJlk8MzAwKXJldHVyblszLDFdO1UubGFiZWw9NDtjYXNlIDQ6WD0hMSxCPW5ldyBEYXRlLFUubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzQsKDAsSS5kZWxheSkoMWUzKV07Y2FzZSA2OmlmKFUuc2VudCgp'@; put 'LGsuY2xvc2VkKXJldHVyblszLDhdO1g9ay53aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygiU0FTTG9nb24iKXx8KG51bGw9PT0oaj1udWxsPT09KEU9ay53aW5kb3cuZG9jdW1lbnQuYm9keSl8fHZvaWQgMD09PUU/dm9pZCAwOkUuaW5uZXJUZXh0KXx8dm9pZCAwPT09aj92b2lkIDA6'@; put 'ai5pbmNsdWRlcygiWW91IGhhdmUgc2lnbmVkIGluLiIpKSxZPSgobmV3IERhdGUpLnZhbHVlT2YoKS1CLnZhbHVlT2YoKSkvMWUzLFUubGFiZWw9NztjYXNlIDc6aWYoIVgmJlk8MzAwKXJldHVyblszLDVdO1UubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzIse2lzTG9nZ2VkSW46ViYmWH1dfX0p'@; put 'fSl9LE8uaXNMb2dnZWRJblNBU1ZJWUE9ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuY29va2llLmluY2x1ZGVzKCJDdXJyZW50LVVzZXIiKSYmZG9jdW1lbnQuY29va2llLmluY2x1ZGVzKCJ1c2VySWQiKX19LDQwMzc6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtPXZvaWQgMDt2YXIgej1SKDI0MDIpLEs9Uig1OTI4KTtPLmdlbmVyYXRlRmlsZVVwbG9hZEZvcm09ZnVuY3Rpb24oSSxrKXtmb3IodmFyIEUgaW4gaylpZihBcnJheS5pc0FycmF5KGtbRV0p'@; put 'KXt2YXIgaj1FLFY9KDAsei5jb252ZXJ0VG9DU1YpKGssRSk7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PVYpdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBjaGFyYWN0ZXJzLiIpO2lmKCgwLEsuaXNO'@; put 'b2RlKSgpKUkuYXBwZW5kKGosVix7ZmlsZW5hbWU6IiIuY29uY2F0KGosIi5jc3YiKSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vY3N2In0pO2Vsc2V7dmFyIEI9bmV3IEJsb2IoW1ZdLHt0eXBlOiJhcHBsaWNhdGlvbi9jc3YifSk7SS5hcHBlbmQoaixCLCIiLmNvbmNhdChqLCIuY3N2Iikp'@; put 'fX1yZXR1cm4gSX19LDIxNzA6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5nZW5lcmF0ZVRhYmxlVXBsb2FkRm9ybT12b2lkIDA7dmFyIHo9UigyNDAyKSxLPVIoNDc5OSk7Ty5nZW5lcmF0ZVRhYmxlVXBs'@; put 'b2FkRm9ybT1mdW5jdGlvbihJLGspe3ZhciBFPVtdLGo9e30sVj0wO2Zvcih2YXIgQiBpbiBrKXtWKyssKDAsei5pc0Zvcm1hdHNUYWJsZSkoQil8fEUucHVzaChCKTt2YXIgWT0oMCx6LmNvbnZlcnRUb0NTVikoayxCKTtpZigiRVJST1I6IExBUkdFIFNUUklORyBMRU5HVEgiPT09WSl0aHJv'@; put 'dyBuZXcgRXJyb3IoIlRoZSBtYXggbGVuZ3RoIG9mIGEgc3RyaW5nIHZhbHVlIGluIFNBU2pzIGlzIDMyNzY1IGNoYXJhY3RlcnMuIik7WS5sZW5ndGg+MTZlMz8oMCxLLnNwbGl0Q2h1bmtzKShZKS5tYXAoZnVuY3Rpb24oWCl7SS5hcHBlbmQoInNhc2pzIi5jb25jYXQoViwiZGF0YSIpLFgp'@; put 'fSk6alsic2FzanMiLmNvbmNhdChWLCJkYXRhIildPVl9cmV0dXJuIGouc2FzanNfdGFibGVzPUUuam9pbigiICIpLHtmb3JtRGF0YTpJLHJlcXVlc3RQYXJhbXM6an19fSwzNjA3OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8'@; put 'fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGssRSxqLFYpe3ZvaWQgMD09PVYmJihWPWopO3ZhciBCPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRSxqKTtCJiYhKCJnZXQiaW4gQj8hRS5fX2VzTW9kdWxlOkIud3JpdGFibGV8fEIuY29uZmlndXJhYmxlKXx8KEI9e2VudW1lcmFi'@; put 'bGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEVbal19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGssVixCKX06ZnVuY3Rpb24oayxFLGosVil7dm9pZCAwPT09ViYmKFY9aiksa1tWXT1FW2pdfSksSz10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oayxFKXtmb3IodmFyIGog'@; put 'aW4gaykiZGVmYXVsdCI9PT1qfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRSxqKXx8eihFLGssail9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgST1SKDU5NTYpO0soUigxMjMwKSxPKSxLKFIoMTM5NSksTyksSyhS'@; put 'KDk4MjEpLE8pLEsoUig4MzA2KSxPKSxLKFIoMzQ2NyksTyksSyhSKDM2MDIpLE8pLE8uZGVmYXVsdD1JLmRlZmF1bHR9LDE1NzA6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgeixLPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoej1mdW5jdGlvbihCLFkpe3JldHVybih6PU9iamVj'@; put 'dC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihYLFUpe1guX19wcm90b19fPVV9fHxmdW5jdGlvbihYLFUpe2Zvcih2YXIgcSBpbiBVKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChVLHEpJiYoWFtxXT1VW3FdKX0p'@; put 'KEIsWSl9LGZ1bmN0aW9uKEIsWSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFkmJm51bGwhPT1ZKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoWSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gWCgpe3RoaXMuY29uc3Ry'@; put 'dWN0b3I9Qn16KEIsWSksQi5wcm90b3R5cGU9bnVsbD09PVk/T2JqZWN0LmNyZWF0ZShZKTooWC5wcm90b3R5cGU9WS5wcm90b3R5cGUsbmV3IFgpfSksST10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oQixZLFgsVSl7cmV0dXJuIG5ldyhYfHwoWD1Qcm9taXNlKSkoZnVuY3Rpb24o'@; put 'cSxlZSl7ZnVuY3Rpb24gdGUoaGUpe3RyeXtzZShVLm5leHQoaGUpKX1jYXRjaCh1ZSl7ZWUodWUpfX1mdW5jdGlvbiBvZShoZSl7dHJ5e3NlKFUudGhyb3coaGUpKX1jYXRjaCh1ZSl7ZWUodWUpfX1mdW5jdGlvbiBzZShoZSl7dmFyIHVlO2hlLmRvbmU/cShoZS52YWx1ZSk6KHVlPWhlLnZh'@; put 'bHVlLHVlIGluc3RhbmNlb2YgWD91ZTpuZXcgWChmdW5jdGlvbihjZSl7Y2UodWUpfSkpLnRoZW4odGUsb2UpfXNlKChVPVUuYXBwbHkoQixZfHxbXSkpLm5leHQoKSl9KX0saz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihCLFkpe3ZhciBYLFUscSxlZSx0ZT17bGFiZWw6MCxz'@; put 'ZW50OmZ1bmN0aW9uKCl7aWYoMSZxWzBdKXRocm93IHFbMV07cmV0dXJuIHFbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gZWU9e25leHQ6b2UoMCksdGhyb3c6b2UoMSkscmV0dXJuOm9lKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoZWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5j'@; put 'dGlvbigpe3JldHVybiB0aGlzfSksZWU7ZnVuY3Rpb24gb2Uoc2Upe3JldHVybiBmdW5jdGlvbihoZSl7cmV0dXJuIGZ1bmN0aW9uKHVlKXtpZihYKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3RlOyl0cnl7aWYoWD0xLFUmJihx'@; put 'PTImdWVbMF0/VS5yZXR1cm46dWVbMF0/VS50aHJvd3x8KChxPVUucmV0dXJuKSYmcS5jYWxsKFUpLDApOlUubmV4dCkmJiEocT1xLmNhbGwoVSx1ZVsxXSkpLmRvbmUpcmV0dXJuIHE7c3dpdGNoKFU9MCxxJiYodWU9WzImdWVbMF0scS52YWx1ZV0pLHVlWzBdKXtjYXNlIDA6Y2FzZSAxOnE9'@; put 'dWU7YnJlYWs7Y2FzZSA0OnJldHVybiB0ZS5sYWJlbCsrLHt2YWx1ZTp1ZVsxXSxkb25lOiExfTtjYXNlIDU6dGUubGFiZWwrKyxVPXVlWzFdLHVlPVswXTtjb250aW51ZTtjYXNlIDc6dWU9dGUub3BzLnBvcCgpLHRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChxPShxPXRl'@; put 'LnRyeXMpLmxlbmd0aD4wJiZxW3EubGVuZ3RoLTFdKXx8NiE9PXVlWzBdJiYyIT09dWVbMF0pKXt0ZT0wO2NvbnRpbnVlfWlmKDM9PT11ZVswXSYmKCFxfHx1ZVsxXT5xWzBdJiZ1ZVsxXTxxWzNdKSl7dGUubGFiZWw9dWVbMV07YnJlYWt9aWYoNj09PXVlWzBdJiZ0ZS5sYWJlbDxxWzFdKXt0'@; put 'ZS5sYWJlbD1xWzFdLHE9dWU7YnJlYWt9aWYocSYmdGUubGFiZWw8cVsyXSl7dGUubGFiZWw9cVsyXSx0ZS5vcHMucHVzaCh1ZSk7YnJlYWt9cVsyXSYmdGUub3BzLnBvcCgpLHRlLnRyeXMucG9wKCk7Y29udGludWV9dWU9WS5jYWxsKEIsdGUpfWNhdGNoKGNlKXt1ZT1bNixjZV0sVT0wfWZp'@; put 'bmFsbHl7WD1xPTB9aWYoNSZ1ZVswXSl0aHJvdyB1ZVsxXTtyZXR1cm57dmFsdWU6dWVbMF0/dWVbMV06dm9pZCAwLGRvbmU6ITB9fShbc2UsaGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5Db21wdXRlSm9iRXhlY3V0b3I9dm9pZCAw'@; put 'O3ZhciBFPVIoMzkwMCksaj1SKDEzOTUpLFY9ZnVuY3Rpb24oQil7ZnVuY3Rpb24gWShYLFUpe3ZhciBxPUIuY2FsbCh0aGlzLFgsRS5TZXJ2ZXJUeXBlLlNhc1ZpeWEpfHx0aGlzO3JldHVybiBxLnNhc1ZpeWFBcGlDbGllbnQ9VSxxfXJldHVybiBLKFksQiksWS5wcm90b3R5cGUuZXhlY3V0'@; put 'ZT1mdW5jdGlvbihYLFUscSxlZSx0ZSl7cmV0dXJuIEkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lLGhlPXRoaXM7cmV0dXJuIGsodGhpcyxmdW5jdGlvbih1ZSl7cmV0dXJuIG9lPWVlfHxmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoKX0sWzIsbmV3IFBy'@; put 'b21pc2UoZnVuY3Rpb24oY2UsRyl7dmFyIGI7bnVsbD09PShiPWhlLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1ifHxiLmV4ZWN1dGVDb21wdXRlSm9iKFgscS5jb250ZXh0TmFtZSxxLmRlYnVnLFUsdGUsITAsITApLnRoZW4oZnVuY3Rpb24oRCl7aGUuc2FzVml5YUFwaUNsaWVudC5h'@; put 'cHBlbmRSZXF1ZXN0KEQsWCxxLmRlYnVnKSxjZShELnJlc3VsdCl9KS5jYXRjaChmdW5jdGlvbihEKXtyZXR1cm4gSShoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEg9dGhpcztyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKE4pe3N3aXRjaChOLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEQg'@; put 'aW5zdGFuY2VvZiBqLkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvciYmKHRoaXMuc2FzVml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KEQsWCxxLmRlYnVnKSxHKG5ldyBqLkVycm9yUmVzcG9uc2UoRD8ubWVzc2FnZSxEKSkpLEQgaW5zdGFuY2VvZiBqLkxvZ2luUmVxdWlyZWRFcnJvcj8odGhp'@; put 'cy5hcHBlbmRXYWl0aW5nUmVxdWVzdChmdW5jdGlvbigpe3JldHVybiBILmV4ZWN1dGUoWCxVLHEsZWUpLnRoZW4oZnVuY3Rpb24oZyl7Y2UoZyl9LGZ1bmN0aW9uKGcpe0coZyl9KX0pLFs0LG9lKCldKTpbMywyXTtjYXNlIDE6cmV0dXJuIE4uc2VudCgpLFszLDNdO2Nhc2UgMjpHKG5ldyBq'@; put 'LkVycm9yUmVzcG9uc2UoRD8ubWVzc2FnZSxEKSksTi5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0pfSldfSl9KX0sWX0oUig2MTE4KS5CYXNlSm9iRXhlY3V0b3IpO08uQ29tcHV0ZUpvYkV4ZWN1dG9yPVZ9LDM0OTE6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgeixL'@; put 'PXRoaXMmJnRoaXMuX19leHRlbmRzfHwoej1mdW5jdGlvbihZLFgpe3JldHVybih6PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihVLHEpe1UuX19wcm90b19fPXF9fHxmdW5jdGlvbihVLHEpe2Zvcih2YXIgZWUgaW4gcSlP'@; put 'YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocSxlZSkmJihVW2VlXT1xW2VlXSl9KShZLFgpfSxmdW5jdGlvbihZLFgpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBYJiZudWxsIT09WCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFgp'@; put 'KyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIFUoKXt0aGlzLmNvbnN0cnVjdG9yPVl9eihZLFgpLFkucHJvdG90eXBlPW51bGw9PT1YP09iamVjdC5jcmVhdGUoWCk6KFUucHJvdG90eXBlPVgucHJvdG90eXBlLG5ldyBVKX0pLEk9dGhpcyYmdGhpcy5fX2F3YWl0'@; put 'ZXJ8fGZ1bmN0aW9uKFksWCxVLHEpe3JldHVybiBuZXcoVXx8KFU9UHJvbWlzZSkpKGZ1bmN0aW9uKGVlLHRlKXtmdW5jdGlvbiBvZSh1ZSl7dHJ5e2hlKHEubmV4dCh1ZSkpfWNhdGNoKGNlKXt0ZShjZSl9fWZ1bmN0aW9uIHNlKHVlKXt0cnl7aGUocS50aHJvdyh1ZSkpfWNhdGNoKGNlKXt0'@; put 'ZShjZSl9fWZ1bmN0aW9uIGhlKHVlKXt2YXIgY2U7dWUuZG9uZT9lZSh1ZS52YWx1ZSk6KGNlPXVlLnZhbHVlLGNlIGluc3RhbmNlb2YgVT9jZTpuZXcgVShmdW5jdGlvbihHKXtHKGNlKX0pKS50aGVuKG9lLHNlKX1oZSgocT1xLmFwcGx5KFksWHx8W10pKS5uZXh0KCkpfSl9LGs9dGhpcyYm'@; put 'dGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oWSxYKXt2YXIgVSxxLGVlLHRlLG9lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmVlWzBdKXRocm93IGVlWzFdO3JldHVybiBlZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiB0ZT17bmV4dDpzZSgwKSx0aHJvdzpzZSgxKSxyZXR1'@; put 'cm46c2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJih0ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSx0ZTtmdW5jdGlvbiBzZShoZSl7cmV0dXJuIGZ1bmN0aW9uKHVlKXtyZXR1cm4gZnVuY3Rpb24oY2Upe2lmKFUpdGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRyeXtpZihVPTEscSYmKGVlPTImY2VbMF0/cS5yZXR1cm46Y2VbMF0/cS50aHJvd3x8KChlZT1xLnJldHVybikmJmVlLmNhbGwocSksMCk6cS5uZXh0KSYmIShlZT1lZS5jYWxsKHEsY2VbMV0pKS5kb25lKXJl'@; put 'dHVybiBlZTtzd2l0Y2gocT0wLGVlJiYoY2U9WzImY2VbMF0sZWUudmFsdWVdKSxjZVswXSl7Y2FzZSAwOmNhc2UgMTplZT1jZTticmVhaztjYXNlIDQ6cmV0dXJuIG9lLmxhYmVsKysse3ZhbHVlOmNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpvZS5sYWJlbCsrLHE9Y2VbMV0sY2U9WzBdO2NvbnRp'@; put 'bnVlO2Nhc2UgNzpjZT1vZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGVlPShlZT1vZS50cnlzKS5sZW5ndGg+MCYmZWVbZWUubGVuZ3RoLTFdKXx8NiE9PWNlWzBdJiYyIT09Y2VbMF0pKXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1jZVswXSYmKCFlZXx8'@; put 'Y2VbMV0+ZWVbMF0mJmNlWzFdPGVlWzNdKSl7b2UubGFiZWw9Y2VbMV07YnJlYWt9aWYoNj09PWNlWzBdJiZvZS5sYWJlbDxlZVsxXSl7b2UubGFiZWw9ZWVbMV0sZWU9Y2U7YnJlYWt9aWYoZWUmJm9lLmxhYmVsPGVlWzJdKXtvZS5sYWJlbD1lZVsyXSxvZS5vcHMucHVzaChjZSk7YnJlYWt9'@; put 'ZWVbMl0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfWNlPVguY2FsbChZLG9lKX1jYXRjaChHKXtjZT1bNixHXSxxPTB9ZmluYWxseXtVPWVlPTB9aWYoNSZjZVswXSl0aHJvdyBjZVsxXTtyZXR1cm57dmFsdWU6Y2VbMF0/Y2VbMV06dm9pZCAwLGRvbmU6ITB9fShbaGUs'@; put 'dWVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5GaWxlVXBsb2FkZXI9dm9pZCAwO3ZhciBFPVIoNTkyOCksaj1SKDEzOTUpLFY9UigzOTAwKSxCPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFgoVSxxLGVlLHRlKXt2YXIgb2U9WS5jYWxsKHRo'@; put 'aXMsVSxxKXx8dGhpcztyZXR1cm4gb2Uuam9ic1BhdGg9ZWUsb2UucmVxdWVzdENsaWVudD10ZSxvZX1yZXR1cm4gSyhYLFkpLFgucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oVSxxLGVlLHRlKXtyZXR1cm4gSSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgb2Usc2UsaGUs'@; put 'dWUsY2UsRyxiLEQsSCxOLGcsQyxTLHA9dGhpcztyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKHcpe2lmKG9lPXEuZmlsZXMsc2U9cS5wYXJhbXMsaGU9dGV8fGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSwhb2U/Lmxlbmd0aCl0aHJvdyBuZXcgai5FcnJvclJlc3BvbnNlKCJB'@; put 'dCBsZWFzdCBvbmUgZmlsZSBtdXN0IGJlIHByb3ZpZGVkLiIpO2lmKCFVfHwiIj09PVUpdGhyb3cgbmV3IGouRXJyb3JSZXNwb25zZSgic2FzSm9iIG11c3QgYmUgcHJvdmlkZWQuIik7Zm9yKGNlIGluIHVlPSIiLHNlKXNlLmhhc093blByb3BlcnR5KGNlKSYmKHVlKz0iJiIuY29uY2F0KGNl'@; put 'LCI9IikuY29uY2F0KHNlW2NlXSkpO2ZvcihHPWVlLmFwcExvYz9lZS5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStVLnJlcGxhY2UoL15cLy8sIiIpOlUsYj0iIi5jb25jYXQodGhpcy5qb2JzUGF0aCwiLz8iKS5jb25jYXQoIl9wcm9ncmFtPSIrRykuY29uY2F0KHVlKSxEPW5ldyBGb3Jt'@; put 'RGF0YSxIPTAsTj1vZTtIPE4ubGVuZ3RoO0grKylELmFwcGVuZCgiZmlsZSIsKGc9TltIXSkuZmlsZSxnLmZpbGVOYW1lKTtyZXR1cm4oQz10aGlzLnJlcXVlc3RDbGllbnQuZ2V0Q3NyZlRva2VuKCJmaWxlIikpJiZELmFwcGVuZCgiX2NzcmYiLEMudmFsdWUpLGVlLmRlYnVnJiZELmFwcGVu'@; put 'ZCgiX2RlYnVnIiwiMTMxIiksZWUuc2VydmVyVHlwZT09PVYuU2VydmVyVHlwZS5TYXNWaXlhJiZlZS5jb250ZXh0TmFtZSYmRC5hcHBlbmQoIl9jb250ZXh0bmFtZSIsZWUuY29udGV4dE5hbWUpLFM9eyJjYWNoZS1jb250cm9sIjoibm8tY2FjaGUiLEFjY2VwdDoiKi8qIiwiQ29udGVudC1U'@; put 'eXBlIjoidGV4dC9wbGFpbiJ9LFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKEosbmUpe3AucmVxdWVzdENsaWVudC5wb3N0KGIsRCx2b2lkIDAsImFwcGxpY2F0aW9uL2pzb24iLFMpLnRoZW4oZnVuY3Rpb24oZGUpe3JldHVybiBJKHAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBmZTty'@; put 'ZXR1cm4gayh0aGlzLGZ1bmN0aW9uKHhlKXtzd2l0Y2goeGUubGFiZWwpe2Nhc2UgMDppZih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChkZSxVLGVlLmRlYnVnKSxmZT1kZS5yZXN1bHQsIWVlLmRlYnVnKXJldHVyblszLDZdO3N3aXRjaCh0aGlzLnNlcnZlclR5cGUpe2Nhc2Ug'@; put 'Vi5TZXJ2ZXJUeXBlLlNhc1ZpeWE6cmV0dXJuWzMsMV07Y2FzZSBWLlNlcnZlclR5cGUuU2FzOTpyZXR1cm5bMywzXTtjYXNlIFYuU2VydmVyVHlwZS5TYXNqczpyZXR1cm5bMyw0XX1yZXR1cm5bMyw1XTtjYXNlIDE6cmV0dXJuWzQsKDAsRS5wYXJzZVNhc1ZpeWFEZWJ1Z1Jlc3BvbnNlKShk'@; put 'ZS5yZXN1bHQsdGhpcy5yZXF1ZXN0Q2xpZW50LGVlLnNlcnZlclVybCldO2Nhc2UgMjpyZXR1cm4gZmU9eGUuc2VudCgpLFszLDVdO2Nhc2UgMzpyZXR1cm4gZmU9InN0cmluZyI9PXR5cGVvZiBkZS5yZXN1bHQ/KDAsRS5wYXJzZVdlYm91dFJlc3BvbnNlKShkZS5yZXN1bHQsYik6ZGUucmVz'@; put 'dWx0LFszLDVdO2Nhc2UgNDpyZXR1cm4gZmU9InN0cmluZyI9PXR5cGVvZiBkZS5yZXN1bHQ/KDAsRS5nZXRWYWxpZEpzb24pKGRlLnJlc3VsdCk6ZGUucmVzdWx0LFszLDVdO2Nhc2UgNTpyZXR1cm5bMyw3XTtjYXNlIDY6ZmU9InN0cmluZyI9PXR5cGVvZiBkZS5yZXN1bHQ/KDAsRS5nZXRW'@; put 'YWxpZEpzb24pKGRlLnJlc3VsdCk6ZGUucmVzdWx0LHhlLmxhYmVsPTc7Y2FzZSA3OnJldHVybiBKKGZlKSxbMl19fSl9KX0pLmNhdGNoKGZ1bmN0aW9uKGRlKXtyZXR1cm4gSShwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZmU9dGhpcztyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKHhl'@; put 'KXtzd2l0Y2goeGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZGUgaW5zdGFuY2VvZiBqLkpvYkV4ZWN1dGlvbkVycm9yJiYodGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3QoZGUsVSxlZS5kZWJ1ZyksbmUobmV3IGouRXJyb3JSZXNwb25zZShkZT8ubWVzc2FnZSxkZSkpKSxkZSBpbnN0'@; put 'YW5jZW9mIGouTG9naW5SZXF1aXJlZEVycm9yPyh0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZlLmV4ZWN1dGUoVSxxLGVlLHRlKS50aGVuKGZ1bmN0aW9uKExlKXtKKExlKX0sZnVuY3Rpb24oTGUpe25lKExlKX0pfSksWzQsaGUoKV0pOlszLDJdO2Nhc2Ug'@; put 'MTpyZXR1cm4geGUuc2VudCgpLFszLDNdO2Nhc2UgMjpuZShuZXcgai5FcnJvclJlc3BvbnNlKCJGaWxlIHVwbG9hZCByZXF1ZXN0IGZhaWxlZC4iLGRlKSkseGUubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KX0pXX0pfSl9LFh9KFIoNjExOCkuQmFzZUpvYkV4ZWN1dG9yKTtPLkZp'@; put 'bGVVcGxvYWRlcj1CfSw0NDQ2OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHosSz10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHo9ZnVuY3Rpb24oWCxVKXtyZXR1cm4oej1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rp'@; put 'b24ocSxlZSl7cS5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihxLGVlKXtmb3IodmFyIHRlIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSx0ZSkmJihxW3RlXT1lZVt0ZV0pfSkoWCxVKX0sZnVuY3Rpb24oWCxVKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVSYm'@; put 'bnVsbCE9PVUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhVKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBxKCl7dGhpcy5jb25zdHJ1Y3Rvcj1YfXooWCxVKSxYLnByb3RvdHlwZT1udWxsPT09VT9PYmplY3QuY3Jl'@; put 'YXRlKFUpOihxLnByb3RvdHlwZT1VLnByb3RvdHlwZSxuZXcgcSl9KSxJPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihYLFUscSxlZSl7cmV0dXJuIG5ldyhxfHwocT1Qcm9taXNlKSkoZnVuY3Rpb24odGUsb2Upe2Z1bmN0aW9uIHNlKGNlKXt0cnl7dWUoZWUubmV4dChjZSkpfWNh'@; put 'dGNoKEcpe29lKEcpfX1mdW5jdGlvbiBoZShjZSl7dHJ5e3VlKGVlLnRocm93KGNlKSl9Y2F0Y2goRyl7b2UoRyl9fWZ1bmN0aW9uIHVlKGNlKXt2YXIgRztjZS5kb25lP3RlKGNlLnZhbHVlKTooRz1jZS52YWx1ZSxHIGluc3RhbmNlb2YgcT9HOm5ldyBxKGZ1bmN0aW9uKGIpe2IoRyl9KSku'@; put 'dGhlbihzZSxoZSl9dWUoKGVlPWVlLmFwcGx5KFgsVXx8W10pKS5uZXh0KCkpfSl9LGs9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oWCxVKXt2YXIgcSxlZSx0ZSxvZSxzZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZ0ZVswXSl0aHJvdyB0ZVsxXTtyZXR1cm4gdGVb'@; put 'MV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gb2U9e25leHQ6aGUoMCksdGhyb3c6aGUoMSkscmV0dXJuOmhlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksb2U7ZnVuY3Rpb24gaGUodWUpe3JldHVy'@; put 'biBmdW5jdGlvbihjZSl7cmV0dXJuIGZ1bmN0aW9uKEcpe2lmKHEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7c2U7KXRyeXtpZihxPTEsZWUmJih0ZT0yJkdbMF0/ZWUucmV0dXJuOkdbMF0/ZWUudGhyb3d8fCgodGU9ZWUucmV0'@; put 'dXJuKSYmdGUuY2FsbChlZSksMCk6ZWUubmV4dCkmJiEodGU9dGUuY2FsbChlZSxHWzFdKSkuZG9uZSlyZXR1cm4gdGU7c3dpdGNoKGVlPTAsdGUmJihHPVsyJkdbMF0sdGUudmFsdWVdKSxHWzBdKXtjYXNlIDA6Y2FzZSAxOnRlPUc7YnJlYWs7Y2FzZSA0OnJldHVybiBzZS5sYWJlbCsrLHt2'@; put 'YWx1ZTpHWzFdLGRvbmU6ITF9O2Nhc2UgNTpzZS5sYWJlbCsrLGVlPUdbMV0sRz1bMF07Y29udGludWU7Y2FzZSA3Okc9c2Uub3BzLnBvcCgpLHNlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh0ZT0odGU9c2UudHJ5cykubGVuZ3RoPjAmJnRlW3RlLmxlbmd0aC0xXSl8fDYh'@; put 'PT1HWzBdJiYyIT09R1swXSkpe3NlPTA7Y29udGludWV9aWYoMz09PUdbMF0mJighdGV8fEdbMV0+dGVbMF0mJkdbMV08dGVbM10pKXtzZS5sYWJlbD1HWzFdO2JyZWFrfWlmKDY9PT1HWzBdJiZzZS5sYWJlbDx0ZVsxXSl7c2UubGFiZWw9dGVbMV0sdGU9RzticmVha31pZih0ZSYmc2UubGFi'@; put 'ZWw8dGVbMl0pe3NlLmxhYmVsPXRlWzJdLHNlLm9wcy5wdXNoKEcpO2JyZWFrfXRlWzJdJiZzZS5vcHMucG9wKCksc2UudHJ5cy5wb3AoKTtjb250aW51ZX1HPVUuY2FsbChYLHNlKX1jYXRjaChiKXtHPVs2LGJdLGVlPTB9ZmluYWxseXtxPXRlPTB9aWYoNSZHWzBdKXRocm93IEdbMV07cmV0'@; put 'dXJue3ZhbHVlOkdbMF0/R1sxXTp2b2lkIDAsZG9uZTohMH19KFt1ZSxjZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLkplc0pvYkV4ZWN1dG9yPXZvaWQgMDt2YXIgRT1SKDM5MDApLGo9UigxMzk1KSxWPVIoNjExOCksQj1SKDU5Mjgp'@; put 'LFk9ZnVuY3Rpb24oWCl7ZnVuY3Rpb24gVShxLGVlKXt2YXIgdGU9WC5jYWxsKHRoaXMscSxFLlNlcnZlclR5cGUuU2FzVml5YSl8fHRoaXM7cmV0dXJuIHRlLnNhc1ZpeWFBcGlDbGllbnQ9ZWUsdGV9cmV0dXJuIEsoVSxYKSxVLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKHEsZWUsdGUs'@; put 'b2Usc2UsaGUpe3JldHVybiB2b2lkIDA9PT1oZSYmKGhlPVtdKSxJKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB1ZSxHPXRoaXM7cmV0dXJuIGsodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gdWU9b2V8fGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSxbMixu'@; put 'ZXcgUHJvbWlzZShmdW5jdGlvbihELEgpe3ZhciBOO251bGw9PT0oTj1HLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1OfHxOLmV4ZWN1dGVKb2IocSx0ZS5jb250ZXh0TmFtZSx0ZS5kZWJ1ZyxlZSxzZSkudGhlbihmdW5jdGlvbihnKXtHLnNhc1ZpeWFBcGlDbGllbnQuYXBwZW5kUmVx'@; put 'dWVzdChnLHEsdGUuZGVidWcpO3ZhciBDPSgwLEIuYXBwZW5kRXh0cmFSZXNwb25zZUF0dHJpYnV0ZXMpKGcsaGUpO0QoQyl9KS5jYXRjaChmdW5jdGlvbihnKXtyZXR1cm4gSShHLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgQz10aGlzO3JldHVybiBrKHRoaXMsZnVuY3Rpb24oUyl7'@; put 'c3dpdGNoKFMubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZyBpbnN0YW5jZW9mIGouSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnNhc1ZpeWFBcGlDbGllbnQuYXBwZW5kUmVxdWVzdChnLHEsdGUuZGVidWcpLEgobmV3IGouRXJyb3JSZXNwb25zZShnPy5tZXNzYWdlLGcpKSksZyBpbnN0YW5jZW9m'@; put 'IGouTG9naW5SZXF1aXJlZEVycm9yPyh0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIEMuZXhlY3V0ZShxLGVlLHRlLG9lLHNlLGhlKS50aGVuKGZ1bmN0aW9uKHYpe0Qodil9LGZ1bmN0aW9uKHYpe0godil9KX0pLFs0LHVlKCldKTpbMywyXTtjYXNlIDE6cmV0'@; put 'dXJuIFMuc2VudCgpLFszLDNdO2Nhc2UgMjpIKG5ldyBqLkVycm9yUmVzcG9uc2UoZz8ubWVzc2FnZSxnKSksUy5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0pfSldfSl9KX0sVX0oVi5CYXNlSm9iRXhlY3V0b3IpO08uSmVzSm9iRXhlY3V0b3I9WX0sNjExODpmdW5jdGlvbihNLE8s'@; put 'Uil7InVzZSBzdHJpY3QiO3ZhciB6PXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihFLGosVixCKXtyZXR1cm4gbmV3KFZ8fChWPVByb21pc2UpKShmdW5jdGlvbihZLFgpe2Z1bmN0aW9uIFUodGUpe3RyeXtlZShCLm5leHQodGUpKX1jYXRjaChvZSl7WChvZSl9fWZ1bmN0aW9uIHEo'@; put 'dGUpe3RyeXtlZShCLnRocm93KHRlKSl9Y2F0Y2gob2Upe1gob2UpfX1mdW5jdGlvbiBlZSh0ZSl7dmFyIG9lO3RlLmRvbmU/WSh0ZS52YWx1ZSk6KG9lPXRlLnZhbHVlLG9lIGluc3RhbmNlb2YgVj9vZTpuZXcgVihmdW5jdGlvbihzZSl7c2Uob2UpfSkpLnRoZW4oVSxxKX1lZSgoQj1CLmFw'@; put 'cGx5KEUsanx8W10pKS5uZXh0KCkpfSl9LEs9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oRSxqKXt2YXIgVixCLFksWCxVPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJllbMF0pdGhyb3cgWVsxXTtyZXR1cm4gWVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBYPXtu'@; put 'ZXh0OnEoMCksdGhyb3c6cSgxKSxyZXR1cm46cSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFhbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksWDtmdW5jdGlvbiBxKGVlKXtyZXR1cm4gZnVuY3Rpb24odGUpe3JldHVybiBmdW5jdGlvbihvZSl7aWYo'@; put 'Vil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtVOyl0cnl7aWYoVj0xLEImJihZPTImb2VbMF0/Qi5yZXR1cm46b2VbMF0/Qi50aHJvd3x8KChZPUIucmV0dXJuKSYmWS5jYWxsKEIpLDApOkIubmV4dCkmJiEoWT1ZLmNhbGwoQixv'@; put 'ZVsxXSkpLmRvbmUpcmV0dXJuIFk7c3dpdGNoKEI9MCxZJiYob2U9WzImb2VbMF0sWS52YWx1ZV0pLG9lWzBdKXtjYXNlIDA6Y2FzZSAxOlk9b2U7YnJlYWs7Y2FzZSA0OnJldHVybiBVLmxhYmVsKysse3ZhbHVlOm9lWzFdLGRvbmU6ITF9O2Nhc2UgNTpVLmxhYmVsKyssQj1vZVsxXSxvZT1b'@; put 'MF07Y29udGludWU7Y2FzZSA3Om9lPVUub3BzLnBvcCgpLFUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKFk9KFk9VS50cnlzKS5sZW5ndGg+MCYmWVtZLmxlbmd0aC0xXSl8fDYhPT1vZVswXSYmMiE9PW9lWzBdKSl7VT0wO2NvbnRpbnVlfWlmKDM9PT1vZVswXSYmKCFZfHxv'@; put 'ZVsxXT5ZWzBdJiZvZVsxXTxZWzNdKSl7VS5sYWJlbD1vZVsxXTticmVha31pZig2PT09b2VbMF0mJlUubGFiZWw8WVsxXSl7VS5sYWJlbD1ZWzFdLFk9b2U7YnJlYWt9aWYoWSYmVS5sYWJlbDxZWzJdKXtVLmxhYmVsPVlbMl0sVS5vcHMucHVzaChvZSk7YnJlYWt9WVsyXSYmVS5vcHMucG9w'@; put 'KCksVS50cnlzLnBvcCgpO2NvbnRpbnVlfW9lPWouY2FsbChFLFUpfWNhdGNoKHNlKXtvZT1bNixzZV0sQj0wfWZpbmFsbHl7Vj1ZPTB9aWYoNSZvZVswXSl0aHJvdyBvZVsxXTtyZXR1cm57dmFsdWU6b2VbMF0/b2VbMV06dm9pZCAwLGRvbmU6ITB9fShbZWUsdGVdKX19fTtPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5CYXNlSm9iRXhlY3V0b3I9dm9pZCAwO3ZhciBJPVIoNTkyOCksaz1mdW5jdGlvbigpe2Z1bmN0aW9uIEUoaixWKXt2YXIgQj10aGlzO3RoaXMuc2VydmVyVXJsPWosdGhpcy5zZXJ2ZXJUeXBlPVYsdGhpcy53YWl0aW5n'@; put 'UmVxdWVzdHM9W10sdGhpcy5yZXNlbmRXYWl0aW5nUmVxdWVzdHM9ZnVuY3Rpb24oKXtyZXR1cm4geihCLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgWT10aGlzO3JldHVybiBLKHRoaXMsZnVuY3Rpb24oWCl7c3dpdGNoKFgubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxJLmFzeW5j'@; put 'Rm9yRWFjaCkodGhpcy53YWl0aW5nUmVxdWVzdHMsZnVuY3Rpb24oVSl7cmV0dXJuIHooWSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcyxmdW5jdGlvbihxKXtzd2l0Y2gocS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFUoKV07Y2FzZSAxOnJldHVybiBxLnNlbnQoKSxb'@; put 'Ml19fSl9KX0pXTtjYXNlIDE6cmV0dXJuIFguc2VudCgpLHRoaXMud2FpdGluZ1JlcXVlc3RzPVtdLFsyXX19KX0pfX1yZXR1cm4gRS5wcm90b3R5cGUuYXBwZW5kV2FpdGluZ1JlcXVlc3Q9ZnVuY3Rpb24oail7dGhpcy53YWl0aW5nUmVxdWVzdHMucHVzaChqKX0sRS5wcm90b3R5cGUuZ2V0'@; put 'UmVxdWVzdFBhcmFtcz1mdW5jdGlvbihqKXt2YXIgVj17fTtyZXR1cm4gai5kZWJ1ZyYmKFYuX29taXR0ZXh0bG9nPSJmYWxzZSIsVi5fb21pdHNlc3Npb25yZXN1bHRzPSJmYWxzZSIsVi5fZGVidWc9MTMxKSxWfSxFfSgpO08uQmFzZUpvYkV4ZWN1dG9yPWt9LDI2OTM6ZnVuY3Rpb24oTSxP'@; put 'LFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgeixLPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoej1mdW5jdGlvbihlZSx0ZSl7cmV0dXJuKHo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKG9lLHNlKXtvZS5fX3Byb3RvX189c2V9fHxm'@; put 'dW5jdGlvbihvZSxzZSl7Zm9yKHZhciBoZSBpbiBzZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2UsaGUpJiYob2VbaGVdPXNlW2hlXSl9KShlZSx0ZSl9LGZ1bmN0aW9uKGVlLHRlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdGUmJm51bGwhPT10ZSl0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKHRlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBvZSgpe3RoaXMuY29uc3RydWN0b3I9ZWV9eihlZSx0ZSksZWUucHJvdG90eXBlPW51bGw9PT10ZT9PYmplY3QuY3JlYXRlKHRlKToob2Uu'@; put 'cHJvdG90eXBlPXRlLnByb3RvdHlwZSxuZXcgb2UpfSksST10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBJPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGVlKXtmb3IodmFyIHRlLG9lPTEsc2U9YXJndW1lbnRzLmxlbmd0aDtvZTxzZTtvZSsrKWZvcih2YXIgaGUgaW4g'@; put 'dGU9YXJndW1lbnRzW29lXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsaGUpJiYoZWVbaGVdPXRlW2hlXSk7cmV0dXJuIGVlfSxJLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZWUsdGUsb2Usc2Upe3JldHVy'@; put 'biBuZXcob2V8fChvZT1Qcm9taXNlKSkoZnVuY3Rpb24oaGUsdWUpe2Z1bmN0aW9uIGNlKEQpe3RyeXtiKHNlLm5leHQoRCkpfWNhdGNoKEgpe3VlKEgpfX1mdW5jdGlvbiBHKEQpe3RyeXtiKHNlLnRocm93KEQpKX1jYXRjaChIKXt1ZShIKX19ZnVuY3Rpb24gYihEKXt2YXIgSDtELmRvbmU/'@; put 'aGUoRC52YWx1ZSk6KEg9RC52YWx1ZSxIIGluc3RhbmNlb2Ygb2U/SDpuZXcgb2UoZnVuY3Rpb24oTil7TihIKX0pKS50aGVuKGNlLEcpfWIoKHNlPXNlLmFwcGx5KGVlLHRlfHxbXSkpLm5leHQoKSl9KX0sRT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlZSx0ZSl7dmFyIG9l'@; put 'LHNlLGhlLHVlLGNlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmhlWzBdKXRocm93IGhlWzFdO3JldHVybiBoZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiB1ZT17bmV4dDpHKDApLHRocm93OkcoMSkscmV0dXJuOkcoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJih1'@; put 'ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSx1ZTtmdW5jdGlvbiBHKGIpe3JldHVybiBmdW5jdGlvbihEKXtyZXR1cm4gZnVuY3Rpb24oSCl7aWYob2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7'@; put 'Y2U7KXRyeXtpZihvZT0xLHNlJiYoaGU9MiZIWzBdP3NlLnJldHVybjpIWzBdP3NlLnRocm93fHwoKGhlPXNlLnJldHVybikmJmhlLmNhbGwoc2UpLDApOnNlLm5leHQpJiYhKGhlPWhlLmNhbGwoc2UsSFsxXSkpLmRvbmUpcmV0dXJuIGhlO3N3aXRjaChzZT0wLGhlJiYoSD1bMiZIWzBdLGhl'@; put 'LnZhbHVlXSksSFswXSl7Y2FzZSAwOmNhc2UgMTpoZT1IO2JyZWFrO2Nhc2UgNDpyZXR1cm4gY2UubGFiZWwrKyx7dmFsdWU6SFsxXSxkb25lOiExfTtjYXNlIDU6Y2UubGFiZWwrKyxzZT1IWzFdLEg9WzBdO2NvbnRpbnVlO2Nhc2UgNzpIPWNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2Nv'@; put 'bnRpbnVlO2RlZmF1bHQ6aWYoISgoaGU9KGhlPWNlLnRyeXMpLmxlbmd0aD4wJiZoZVtoZS5sZW5ndGgtMV0pfHw2IT09SFswXSYmMiE9PUhbMF0pKXtjZT0wO2NvbnRpbnVlfWlmKDM9PT1IWzBdJiYoIWhlfHxIWzFdPmhlWzBdJiZIWzFdPGhlWzNdKSl7Y2UubGFiZWw9SFsxXTticmVha31p'@; put 'Zig2PT09SFswXSYmY2UubGFiZWw8aGVbMV0pe2NlLmxhYmVsPWhlWzFdLGhlPUg7YnJlYWt9aWYoaGUmJmNlLmxhYmVsPGhlWzJdKXtjZS5sYWJlbD1oZVsyXSxjZS5vcHMucHVzaChIKTticmVha31oZVsyXSYmY2Uub3BzLnBvcCgpLGNlLnRyeXMucG9wKCk7Y29udGludWV9SD10ZS5jYWxs'@; put 'KGVlLGNlKX1jYXRjaChOKXtIPVs2LE5dLHNlPTB9ZmluYWxseXtvZT1oZT0wfWlmKDUmSFswXSl0aHJvdyBIWzFdO3JldHVybnt2YWx1ZTpIWzBdP0hbMV06dm9pZCAwLGRvbmU6ITB9fShbYixEXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0p'@; put 'LE8uU2FzOUpvYkV4ZWN1dG9yPXZvaWQgMDt2YXIgaj1SKDYyMzApLFY9UigxMzk1KSxCPVIoNTkyOCksWT1SKDYxMTgpLFg9Uig3OTUpLFU9ZnVuY3Rpb24oZWUpe2Z1bmN0aW9uIHRlKG9lLHNlLGhlLHVlLGNlKXt2YXIgRz1lZS5jYWxsKHRoaXMsb2Usc2UpfHx0aGlzO3JldHVybiBHLmpv'@; put 'YnNQYXRoPWhlLEcucmVxdWVzdENsaWVudD11ZSxHLnNhczlSZXF1ZXN0Q2xpZW50PW5ldyBYLlNhczlSZXF1ZXN0Q2xpZW50KG9lLGNlKSxHfXJldHVybiBLKHRlLGVlKSx0ZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihvZSxzZSxoZSl7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAw'@; put 'LGZ1bmN0aW9uKCl7dmFyIHVlLGNlLEcsYixELEgsTj10aGlzO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oZyl7c3dpdGNoKGcubGFiZWwpe2Nhc2UgMDppZih1ZT0oMCxCLmlzUmVsYXRpdmVQYXRoKShvZSkmJmhlLmFwcExvYz9oZS5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStvZS5yZXBs'@; put 'YWNlKC9eXC8vLCIiKTpvZSxjZT0iIi5jb25jYXQoaGUuc2VydmVyVXJsKS5jb25jYXQodGhpcy5qb2JzUGF0aCwiPyIpLmNvbmNhdCgiX3Byb2dyYW09Iit1ZSksY2U9IiIuY29uY2F0KGNlKS5jb25jYXQoaGUudXNlcm5hbWUmJmhlLnBhc3N3b3JkPyImX3VzZXJuYW1lPSIraGUudXNlcm5h'@; put 'bWUrIiZfcGFzc3dvcmQ9IitoZS5wYXNzd29yZDoiIiksY2U9IiIuY29uY2F0KGNlKS5jb25jYXQoaGUuZGVidWc/IiZfZGVidWc9MTMxIjoiIiksRz1JKHt9LHRoaXMuZ2V0UmVxdWVzdFBhcmFtcyhoZSkpLGI9bmV3IGosc2UpdHJ5e2I9cShiLHNlKX1jYXRjaChDKXtyZXR1cm5bMixQcm9t'@; put 'aXNlLnJlamVjdChuZXcgVi5FcnJvclJlc3BvbnNlKEM/Lm1lc3NhZ2UsQykpXX1lbHNlIHNlPSIiO2ZvcihEIGluIEcpRy5oYXNPd25Qcm9wZXJ0eShEKSYmYi5hcHBlbmQoRCxHW0RdKTtyZXR1cm5bNCx0aGlzLnNhczlSZXF1ZXN0Q2xpZW50LmxvZ2luKGhlLnVzZXJuYW1lLGhlLnBhc3N3'@; put 'b3JkLHRoaXMuam9ic1BhdGgpXTtjYXNlIDE6cmV0dXJuIGcuc2VudCgpLEg9c2UmJk9iamVjdC5rZXlzKHNlKS5sZW5ndGg/Im11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIrYi5fYm91bmRhcnk6InRleHQvcGxhaW4iLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKEMsUyl7cmV0dXJu'@; put 'IE4uc2FzOVJlcXVlc3RDbGllbnQucG9zdChjZSxiLHZvaWQgMCxILHtBY2NlcHQ6IiovKiIsQ29ubmVjdGlvbjoiS2VlcC1BbGl2ZSJ9KS50aGVuKGZ1bmN0aW9uKHYpe04ucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KHYsb2UsaGUuZGVidWcpLEModil9KS5jYXRjaChmdW5jdGlvbih2'@; put 'KXt2YXIgcD12O3YucmVzdWx0JiYiIiE9PXYucmVzdWx0P3A9di5yZXN1bHQ6di5tZXNzYWdlJiYocD12Lm1lc3NhZ2UpLE4ucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KHAsb2UsaGUuZGVidWcpLFMobmV3IFYuRXJyb3JSZXNwb25zZSh2Py5tZXNzYWdlLHYpKX0pfSldfX0pfSl9LHRl'@; put 'LnByb3RvdHlwZS5nZXRSZXF1ZXN0UGFyYW1zPWZ1bmN0aW9uKG9lKXt2YXIgc2U9e307cmV0dXJuIG9lLmRlYnVnJiYoc2UuX2RlYnVnPTEzMSksc2V9LHRlfShZLkJhc2VKb2JFeGVjdXRvcik7Ty5TYXM5Sm9iRXhlY3V0b3I9VTt2YXIgcT1mdW5jdGlvbihlZSx0ZSl7Zm9yKHZhciBvZSBp'@; put 'biB0ZSl7dmFyIHNlPW9lLGhlPSgwLEIuY29udmVydFRvQ1NWKSh0ZSxvZSk7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PWhlKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtl'@; put 'ZS5hcHBlbmQoc2UsaGUse2ZpbGVuYW1lOiIiLmNvbmNhdChzZSwiLmNzdiIpLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9jc3YifSl9cmV0dXJuIGVlfX0sMTA2NTpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6LEs9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fCh6PWZ1bmN0aW9u'@; put 'KGVlLHRlKXtyZXR1cm4oej1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ob2Usc2Upe29lLl9fcHJvdG9fXz1zZX18fGZ1bmN0aW9uKG9lLHNlKXtmb3IodmFyIGhlIGluIHNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJv'@; put 'cGVydHkuY2FsbChzZSxoZSkmJihvZVtoZV09c2VbaGVdKX0pKGVlLHRlKX0sZnVuY3Rpb24oZWUsdGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0ZSYmbnVsbCE9PXRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcodGUpKyIgaXMgbm90IGEgY29u'@; put 'c3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIG9lKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lZX16KGVlLHRlKSxlZS5wcm90b3R5cGU9bnVsbD09PXRlP09iamVjdC5jcmVhdGUodGUpOihvZS5wcm90b3R5cGU9dGUucHJvdG90eXBlLG5ldyBvZSl9KSxJPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIEk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZWUpe2Zvcih2YXIgdGUsb2U9MSxzZT1hcmd1bWVudHMubGVuZ3RoO29lPHNlO29lKyspZm9yKHZhciBoZSBpbiB0ZT1hcmd1bWVudHNbb2VdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZSxo'@; put 'ZSkmJihlZVtoZV09dGVbaGVdKTtyZXR1cm4gZWV9LEkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxrPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihlZSx0ZSxvZSxzZSl7cmV0dXJuIG5ldyhvZXx8KG9lPVByb21pc2UpKShmdW5jdGlvbihoZSx1ZSl7ZnVuY3Rpb24gY2UoRCl7dHJ5'@; put 'e2Ioc2UubmV4dChEKSl9Y2F0Y2goSCl7dWUoSCl9fWZ1bmN0aW9uIEcoRCl7dHJ5e2Ioc2UudGhyb3coRCkpfWNhdGNoKEgpe3VlKEgpfX1mdW5jdGlvbiBiKEQpe3ZhciBIO0QuZG9uZT9oZShELnZhbHVlKTooSD1ELnZhbHVlLEggaW5zdGFuY2VvZiBvZT9IOm5ldyBvZShmdW5jdGlvbihO'@; put 'KXtOKEgpfSkpLnRoZW4oY2UsRyl9Yigoc2U9c2UuYXBwbHkoZWUsdGV8fFtdKSkubmV4dCgpKX0pfSxFPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGVlLHRlKXt2YXIgb2Usc2UsaGUsdWUsY2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaGVbMF0pdGhyb3cgaGVb'@; put 'MV07cmV0dXJuIGhlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHVlPXtuZXh0OkcoMCksdGhyb3c6RygxKSxyZXR1cm46RygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHVlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHVlO2Z1bmN0aW9uIEco'@; put 'Yil7cmV0dXJuIGZ1bmN0aW9uKEQpe3JldHVybiBmdW5jdGlvbihIKXtpZihvZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtjZTspdHJ5e2lmKG9lPTEsc2UmJihoZT0yJkhbMF0/c2UucmV0dXJuOkhbMF0/c2UudGhyb3d8fCgo'@; put 'aGU9c2UucmV0dXJuKSYmaGUuY2FsbChzZSksMCk6c2UubmV4dCkmJiEoaGU9aGUuY2FsbChzZSxIWzFdKSkuZG9uZSlyZXR1cm4gaGU7c3dpdGNoKHNlPTAsaGUmJihIPVsyJkhbMF0saGUudmFsdWVdKSxIWzBdKXtjYXNlIDA6Y2FzZSAxOmhlPUg7YnJlYWs7Y2FzZSA0OnJldHVybiBjZS5s'@; put 'YWJlbCsrLHt2YWx1ZTpIWzFdLGRvbmU6ITF9O2Nhc2UgNTpjZS5sYWJlbCsrLHNlPUhbMV0sSD1bMF07Y29udGludWU7Y2FzZSA3Okg9Y2Uub3BzLnBvcCgpLGNlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChoZT0oaGU9Y2UudHJ5cykubGVuZ3RoPjAmJmhlW2hlLmxlbmd0'@; put 'aC0xXSl8fDYhPT1IWzBdJiYyIT09SFswXSkpe2NlPTA7Y29udGludWV9aWYoMz09PUhbMF0mJighaGV8fEhbMV0+aGVbMF0mJkhbMV08aGVbM10pKXtjZS5sYWJlbD1IWzFdO2JyZWFrfWlmKDY9PT1IWzBdJiZjZS5sYWJlbDxoZVsxXSl7Y2UubGFiZWw9aGVbMV0saGU9SDticmVha31pZiho'@; put 'ZSYmY2UubGFiZWw8aGVbMl0pe2NlLmxhYmVsPWhlWzJdLGNlLm9wcy5wdXNoKEgpO2JyZWFrfWhlWzJdJiZjZS5vcHMucG9wKCksY2UudHJ5cy5wb3AoKTtjb250aW51ZX1IPXRlLmNhbGwoZWUsY2UpfWNhdGNoKE4pe0g9WzYsTl0sc2U9MH1maW5hbGx5e29lPWhlPTB9aWYoNSZIWzBdKXRo'@; put 'cm93IEhbMV07cmV0dXJue3ZhbHVlOkhbMF0/SFsxXTp2b2lkIDAsZG9uZTohMH19KFtiLERdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5TYXNqc0pvYkV4ZWN1dG9yPXZvaWQgMDt2YXIgaj1SKDYyMzApLFY9UigzOTAwKSxCPVIoMTM5'@; put 'NSksWT1SKDQwMzcpLFg9Uig1OTI4KSxVPVIoNTkyOCkscT1mdW5jdGlvbihlZSl7ZnVuY3Rpb24gdGUob2Usc2UsaGUpe3ZhciB1ZT1lZS5jYWxsKHRoaXMsb2UsVi5TZXJ2ZXJUeXBlLlNhc2pzKXx8dGhpcztyZXR1cm4gdWUuam9ic1BhdGg9c2UsdWUucmVxdWVzdENsaWVudD1oZSx1ZX1y'@; put 'ZXR1cm4gSyh0ZSxlZSksdGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ob2Usc2UsaGUsdWUsY2UsRyl7cmV0dXJuIHZvaWQgMD09PUcmJihHPVtdKSxrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBiLEQsSCxOLGcsQyxTLHA9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0'@; put 'aW9uKHcpe2lmKGI9dWUsRD0oMCxVLmlzUmVsYXRpdmVQYXRoKShvZSkmJmhlLmFwcExvYz9oZS5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStvZS5yZXBsYWNlKC9eXC8vLCIiKTpvZSxIPSIiLmNvbmNhdChoZS5zZXJ2ZXJVcmwpLmNvbmNhdCh0aGlzLmpvYnNQYXRoLCIvPyIpLmNvbmNh'@; put 'dCgiX3Byb2dyYW09IitEKSxOPUkoe30sdGhpcy5nZXRSZXF1ZXN0UGFyYW1zKGhlKSksZz0oMCxYLmdldEZvcm1EYXRhKSgpLHNlKXRyeXtnPSgwLFkuZ2VuZXJhdGVGaWxlVXBsb2FkRm9ybSkoZyxzZSl9Y2F0Y2goSil7cmV0dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IEIuRXJyb3JSZXNw'@; put 'b25zZShKPy5tZXNzYWdlLEopKV19Zm9yKEMgaW4gTilOLmhhc093blByb3BlcnR5KEMpJiZnLmFwcGVuZChDLE5bQ10pO3JldHVybiBTPWcgaW5zdGFuY2VvZiBqJiZ0eXBlb2YgRm9ybURhdGE+InUiPyJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iLmNvbmNhdChnLmdldEJvdW5k'@; put 'YXJ5KCkpOnZvaWQgMCxbMixuZXcgUHJvbWlzZShmdW5jdGlvbihKLG5lKXtwLnJlcXVlc3RDbGllbnQucG9zdChILGcsY2U/LmFjY2Vzc190b2tlbixTKS50aGVuKGZ1bmN0aW9uKGRlKXtyZXR1cm4gayhwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZmUseGU7cmV0dXJuIEUodGhp'@; put 'cyxmdW5jdGlvbihMZSl7aWYoT2JqZWN0LmVudHJpZXMoZGUucmVzdWx0KS5sZW5ndGg8MSl0aHJvdyBuZXcgQi5Kb2JFeGVjdXRpb25FcnJvcigwLCJObyB3ZWJvdXQgd2FzIHJldHVybmVkIGJ5IGpvYiAiLmNvbmNhdChELCIuICBQbGVhc2UgY2hlY2sgdGhlIFNBUyBsb2cgZm9yIG1vcmUg'@; put 'aW5mby4iKSxkZS5sb2cpO3JldHVybihmZT1kZS5yZXN1bHQpJiYic3RyaW5nIj09dHlwZW9mIGZlJiZmZS50cmltKCkmJihkZS5yZXN1bHQ9KDAsVS5nZXRWYWxpZEpzb24pKGZlKSksdGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3QoZGUsb2UsaGUuZGVidWcpLHhlPSgwLFUuYXBw'@; put 'ZW5kRXh0cmFSZXNwb25zZUF0dHJpYnV0ZXMpKGRlLEcpLEooeGUpLFsyXX0pfSl9KS5jYXRjaChmdW5jdGlvbihkZSl7cmV0dXJuIGsocCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGZlPXRoaXM7cmV0dXJuIEUodGhpcyxmdW5jdGlvbih4ZSl7c3dpdGNoKHhlLmxhYmVsKXtjYXNl'@; put 'IDA6cmV0dXJuIGRlIGluc3RhbmNlb2YgQi5Kb2JFeGVjdXRpb25FcnJvciYmKHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KGRlLG9lLGhlLmRlYnVnKSxuZShuZXcgQi5FcnJvclJlc3BvbnNlKGRlPy5tZXNzYWdlLGRlKSkpLGRlIGluc3RhbmNlb2YgQi5Mb2dpblJlcXVpcmVk'@; put 'RXJyb3I/KHVlfHxuZShuZXcgQi5FcnJvclJlc3BvbnNlKCJSZXF1ZXN0IGlzIG5vdCBhdXRoZW50aWNhdGVkLiBNYWtlIHN1cmUgLmVudiBmaWxlIGV4aXN0cyB3aXRoIHZhbGlkIGNyZWRlbnRpYWxzLiIsZGUpKSx0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IGZlLmV4ZWN1dGUob2Usc2UsaGUsdWUsY2UsRykudGhlbihmdW5jdGlvbihMZSl7SihMZSl9LGZ1bmN0aW9uKExlKXtuZShMZSl9KX0pLGI/WzQsYigpXTpbMywyXSk6WzMsM107Y2FzZSAxOnhlLnNlbnQoKSx4ZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMyw0XTtjYXNlIDM6bmUobmV3IEIu'@; put 'RXJyb3JSZXNwb25zZShkZT8ubWVzc2FnZSxkZSkpLHhlLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSl9KV19KX0pfSx0ZX0oUig2MTE4KS5CYXNlSm9iRXhlY3V0b3IpO08uU2FzanNKb2JFeGVjdXRvcj1xfSw2MDg0OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHos'@; put 'Sz10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHo9ZnVuY3Rpb24oZWUsdGUpe3JldHVybih6PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihvZSxzZSl7b2UuX19wcm90b19fPXNlfXx8ZnVuY3Rpb24ob2Usc2Upe2Zvcih2YXIg'@; put 'aGUgaW4gc2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNlLGhlKSYmKG9lW2hlXT1zZVtoZV0pfSkoZWUsdGUpfSxmdW5jdGlvbihlZSx0ZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRlJiZudWxsIT09dGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5k'@; put 'cyB2YWx1ZSAiK1N0cmluZyh0ZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gb2UoKXt0aGlzLmNvbnN0cnVjdG9yPWVlfXooZWUsdGUpLGVlLnByb3RvdHlwZT1udWxsPT09dGU/T2JqZWN0LmNyZWF0ZSh0ZSk6KG9lLnByb3RvdHlwZT10ZS5wcm90b3R5cGUs'@; put 'bmV3IG9lKX0pLEk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gST1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlZSl7Zm9yKHZhciB0ZSxvZT0xLHNlPWFyZ3VtZW50cy5sZW5ndGg7b2U8c2U7b2UrKylmb3IodmFyIGhlIGluIHRlPWFyZ3VtZW50c1tvZV0pT2JqZWN0'@; put 'LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLGhlKSYmKGVlW2hlXT10ZVtoZV0pO3JldHVybiBlZX0sSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGs9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGVlLHRlLG9lLHNlKXtyZXR1cm4gbmV3KG9lfHwob2U9UHJvbWlzZSkp'@; put 'KGZ1bmN0aW9uKGhlLHVlKXtmdW5jdGlvbiBjZShEKXt0cnl7YihzZS5uZXh0KEQpKX1jYXRjaChIKXt1ZShIKX19ZnVuY3Rpb24gRyhEKXt0cnl7YihzZS50aHJvdyhEKSl9Y2F0Y2goSCl7dWUoSCl9fWZ1bmN0aW9uIGIoRCl7dmFyIEg7RC5kb25lP2hlKEQudmFsdWUpOihIPUQudmFsdWUs'@; put 'SCBpbnN0YW5jZW9mIG9lP0g6bmV3IG9lKGZ1bmN0aW9uKE4pe04oSCl9KSkudGhlbihjZSxHKX1iKChzZT1zZS5hcHBseShlZSx0ZXx8W10pKS5uZXh0KCkpfSl9LEU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZWUsdGUpe3ZhciBvZSxzZSxoZSx1ZSxjZT17bGFiZWw6MCxz'@; put 'ZW50OmZ1bmN0aW9uKCl7aWYoMSZoZVswXSl0aHJvdyBoZVsxXTtyZXR1cm4gaGVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gdWU9e25leHQ6RygwKSx0aHJvdzpHKDEpLHJldHVybjpHKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYodWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5j'@; put 'dGlvbigpe3JldHVybiB0aGlzfSksdWU7ZnVuY3Rpb24gRyhiKXtyZXR1cm4gZnVuY3Rpb24oRCl7cmV0dXJuIGZ1bmN0aW9uKEgpe2lmKG9lKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2NlOyl0cnl7aWYob2U9MSxzZSYmKGhl'@; put 'PTImSFswXT9zZS5yZXR1cm46SFswXT9zZS50aHJvd3x8KChoZT1zZS5yZXR1cm4pJiZoZS5jYWxsKHNlKSwwKTpzZS5uZXh0KSYmIShoZT1oZS5jYWxsKHNlLEhbMV0pKS5kb25lKXJldHVybiBoZTtzd2l0Y2goc2U9MCxoZSYmKEg9WzImSFswXSxoZS52YWx1ZV0pLEhbMF0pe2Nhc2UgMDpj'@; put 'YXNlIDE6aGU9SDticmVhaztjYXNlIDQ6cmV0dXJuIGNlLmxhYmVsKysse3ZhbHVlOkhbMV0sZG9uZTohMX07Y2FzZSA1OmNlLmxhYmVsKyssc2U9SFsxXSxIPVswXTtjb250aW51ZTtjYXNlIDc6SD1jZS5vcHMucG9wKCksY2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGhl'@; put 'PShoZT1jZS50cnlzKS5sZW5ndGg+MCYmaGVbaGUubGVuZ3RoLTFdKXx8NiE9PUhbMF0mJjIhPT1IWzBdKSl7Y2U9MDtjb250aW51ZX1pZigzPT09SFswXSYmKCFoZXx8SFsxXT5oZVswXSYmSFsxXTxoZVszXSkpe2NlLmxhYmVsPUhbMV07YnJlYWt9aWYoNj09PUhbMF0mJmNlLmxhYmVsPGhl'@; put 'WzFdKXtjZS5sYWJlbD1oZVsxXSxoZT1IO2JyZWFrfWlmKGhlJiZjZS5sYWJlbDxoZVsyXSl7Y2UubGFiZWw9aGVbMl0sY2Uub3BzLnB1c2goSCk7YnJlYWt9aGVbMl0mJmNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2NvbnRpbnVlfUg9dGUuY2FsbChlZSxjZSl9Y2F0Y2goTil7SD1bNixO'@; put 'XSxzZT0wfWZpbmFsbHl7b2U9aGU9MH1pZig1JkhbMF0pdGhyb3cgSFsxXTtyZXR1cm57dmFsdWU6SFswXT9IWzFdOnZvaWQgMCxkb25lOiEwfX0oW2IsRF0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLldlYkpvYkV4ZWN1dG9yPXZvaWQg'@; put 'MDt2YXIgaj1SKDYyMzApLFY9UigzOTAwKSxCPVIoMTM5NSksWT1SKDQwMzcpLFg9UigyMTcwKSxVPVIoNTkyOCkscT1mdW5jdGlvbihlZSl7ZnVuY3Rpb24gdGUob2Usc2UsaGUsdWUsY2Upe3ZhciBHPWVlLmNhbGwodGhpcyxvZSxzZSl8fHRoaXM7cmV0dXJuIEcuam9ic1BhdGg9aGUsRy5y'@; put 'ZXF1ZXN0Q2xpZW50PXVlLEcuc2FzVml5YUFwaUNsaWVudD1jZSxHfXJldHVybiBLKHRlLGVlKSx0ZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihvZSxzZSxoZSx1ZSxjZSxHKXtyZXR1cm4gdm9pZCAwPT09RyYmKEc9W10pLGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFy'@; put 'IGIsRCxILE4sZyxDLFMsdixwLEosbmUsZGUseGU9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKExlKXtzd2l0Y2goTGUubGFiZWwpe2Nhc2UgMDppZihiPXVlLEQ9KDAsVS5pc1JlbGF0aXZlUGF0aCkob2UpJiZoZS5hcHBMb2M/aGUuYXBwTG9jLnJlcGxhY2UoL1wvPyQvLCIvIikrb2Uu'@; put 'cmVwbGFjZSgvXlwvLywiIik6b2UsSD0iIi5jb25jYXQoaGUuc2VydmVyVXJsKS5jb25jYXQodGhpcy5qb2JzUGF0aCwiLz8iKS5jb25jYXQoIl9wcm9ncmFtPSIrRCksaGUuc2VydmVyVHlwZSE9PVYuU2VydmVyVHlwZS5TYXNWaXlhKXJldHVyblszLDVdO049dm9pZCAwLExlLmxhYmVsPTE7'@; put 'Y2FzZSAxOnJldHVybiBMZS50cnlzLnB1c2goWzEsMywsNF0pLFs0LHRoaXMuZ2V0Sm9iVXJpKG9lKV07Y2FzZSAyOnJldHVybiBOPUxlLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGc9TGUuc2VudCgpLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKEZlLE9lKXtyZXR1cm4gayh4ZSx2b2lk'@; put 'IDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGplPXRoaXM7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihXZSl7c3dpdGNoKFdlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGcgaW5zdGFuY2VvZiBCLkxvZ2luUmVxdWlyZWRFcnJvcj8odGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdChmdW5jdGlvbigpe3Jl'@; put 'dHVybiBqZS5leGVjdXRlKG9lLHNlLGhlLHVlLGNlLEcpLnRoZW4oZnVuY3Rpb24oS2Upe0ZlKEtlKX0sZnVuY3Rpb24oS2Upe09lKEtlKX0pfSksYj9bNCxiKCldOlszLDJdKTpbMywzXTtjYXNlIDE6V2Uuc2VudCgpLFdlLmxhYmVsPTI7Y2FzZSAyOnJldHVyblszLDRdO2Nhc2UgMzpPZShu'@; put 'ZXcgQi5FcnJvclJlc3BvbnNlKGc/Lm1lc3NhZ2UsZykpLFdlLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSldO2Nhc2UgNDpIKz1OLmxlbmd0aD4wPyImX2pvYj0iK046IiIsTi5sZW5ndGg+MCYmKEg9KEgrPSImX2pvYj0iK04pLnJlcGxhY2UoIl9wcm9ncmFtPSIsIl9fcHJvZ3Jh'@; put 'bT0iKSksSCs9aGUuY29udGV4dE5hbWUmJiEvXHMvLnRlc3QoaGUuY29udGV4dE5hbWUpPyImX2NvbnRleHRuYW1lPSIuY29uY2F0KGhlLmNvbnRleHROYW1lKToiIixMZS5sYWJlbD01O2Nhc2UgNTppZihDPUkoe30sdGhpcy5nZXRSZXF1ZXN0UGFyYW1zKGhlKSksUz0oMCxVLmdldEZvcm1E'@; put 'YXRhKSgpLHNlKWlmKHY9SlNPTi5zdHJpbmdpZnkoc2UpLGhlLnNlcnZlclR5cGU9PT1WLlNlcnZlclR5cGUuU2FzOXx8di5sZW5ndGg+NWU1fHx2LmluY2x1ZGVzKCI7IikpdHJ5e1M9KDAsWS5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtKShTLHNlKX1jYXRjaChGZSl7cmV0dXJuWzIsUHJvbWlz'@; put 'ZS5yZWplY3QobmV3IEIuRXJyb3JSZXNwb25zZShGZT8ubWVzc2FnZSxGZSkpXX1lbHNlIHRyeXtwPSgwLFguZ2VuZXJhdGVUYWJsZVVwbG9hZEZvcm0pKFMsc2UpLEo9cC5yZXF1ZXN0UGFyYW1zLFM9cC5mb3JtRGF0YSxDPUkoSSh7fSxDKSxKKX1jYXRjaChGZSl7cmV0dXJuWzIsUHJvbWlz'@; put 'ZS5yZWplY3QobmV3IEIuRXJyb3JSZXNwb25zZShGZT8ubWVzc2FnZSxGZSkpXX1mb3IobmUgaW4gQylDLmhhc093blByb3BlcnR5KG5lKSYmUy5hcHBlbmQobmUsQ1tuZV0pO3JldHVybiBkZT1TIGluc3RhbmNlb2YgaiYmdHlwZW9mIEZvcm1EYXRhPiJ1Ij8ibXVsdGlwYXJ0L2Zvcm0tZGF0'@; put 'YTsgYm91bmRhcnk9Ii5jb25jYXQoUy5nZXRCb3VuZGFyeSgpKTp2b2lkIDAsWzIsbmV3IFByb21pc2UoZnVuY3Rpb24oRmUsT2Upe3hlLnJlcXVlc3RDbGllbnQucG9zdChILFMsY2U/LmFjY2Vzc190b2tlbixkZSkudGhlbihmdW5jdGlvbihqZSl7cmV0dXJuIGsoeGUsdm9pZCAwLHZvaWQg'@; put 'MCxmdW5jdGlvbigpe3ZhciBXZSxLZTtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKFllKXtzd2l0Y2goWWUubGFiZWwpe2Nhc2UgMDppZih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChqZSxvZSxoZS5kZWJ1ZyksV2U9amUucmVzdWx0LCFoZS5kZWJ1ZylyZXR1cm5bMyw0XTtzd2l0'@; put 'Y2godGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIFYuU2VydmVyVHlwZS5TYXNWaXlhOnJldHVyblszLDFdO2Nhc2UgVi5TZXJ2ZXJUeXBlLlNhczk6cmV0dXJuWzMsM119cmV0dXJuWzMsNF07Y2FzZSAxOnJldHVybls0LCgwLFUucGFyc2VTYXNWaXlhRGVidWdSZXNwb25zZSkoamUucmVzdWx0LHRo'@; put 'aXMucmVxdWVzdENsaWVudCx0aGlzLnNlcnZlclVybCldO2Nhc2UgMjpyZXR1cm4gV2U9WWUuc2VudCgpLFszLDRdO2Nhc2UgMzpyZXR1cm4gV2U9InN0cmluZyI9PXR5cGVvZiBqZS5yZXN1bHQ/KDAsVS5wYXJzZVdlYm91dFJlc3BvbnNlKShqZS5yZXN1bHQsSCk6amUucmVzdWx0LFszLDRd'@; put 'O2Nhc2UgNDpyZXR1cm4gS2U9KDAsVS5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcykoe3Jlc3VsdDpXZSxsb2c6amUubG9nfSxHKSxGZShLZSksWzJdfX0pfSl9KS5jYXRjaChmdW5jdGlvbihqZSl7cmV0dXJuIGsoeGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBXZT10aGlz'@; put 'O3JldHVybiBFKHRoaXMsZnVuY3Rpb24oS2Upe3N3aXRjaChLZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBqZSBpbnN0YW5jZW9mIEIuSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChqZSxvZSxoZS5kZWJ1ZyksT2UobmV3IEIuRXJyb3JSZXNwb25z'@; put 'ZShqZT8ubWVzc2FnZSxqZSkpKSxqZSBpbnN0YW5jZW9mIEIuTG9naW5SZXF1aXJlZEVycm9yPyh1ZXx8T2UobmV3IEIuRXJyb3JSZXNwb25zZSgiUmVxdWVzdCBpcyBub3QgYXV0aGVudGljYXRlZC4gTWFrZSBzdXJlIC5lbnYgZmlsZSBleGlzdHMgd2l0aCB2YWxpZCBjcmVkZW50aWFscy4i'@; put 'LGplKSksdGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdChmdW5jdGlvbigpe3JldHVybiBXZS5leGVjdXRlKG9lLHNlLGhlLHVlLGNlLEcpLnRoZW4oZnVuY3Rpb24oWWUpe0ZlKFllKX0sZnVuY3Rpb24oWWUpe09lKFllKX0pfSksYj9bNCxiKCldOlszLDJdKTpbMywzXTtjYXNlIDE6S2Uuc2Vu'@; put 'dCgpLEtlLmxhYmVsPTI7Y2FzZSAyOnJldHVyblszLDRdO2Nhc2UgMzpPZShuZXcgQi5FcnJvclJlc3BvbnNlKGplPy5tZXNzYWdlLGplKSksS2UubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9KX0pXX19KX0pfSx0ZS5wcm90b3R5cGUuZ2V0Sm9iVXJpPWZ1bmN0aW9uKG9lKXtyZXR1'@; put 'cm4gayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgc2UsaGUsdWUsY2UsRyxiO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oRCl7c3dpdGNoKEQubGFiZWwpe2Nhc2UgMDppZighdGhpcy5zYXNWaXlhQXBpQ2xpZW50KXJldHVyblsyLCIiXTtpZihzZT0iIiwoMCxVLmlzUmVsYXRp'@; put 'dmVQYXRoKShvZSk/KGNlPW9lLnNwbGl0KCIvIiksaGU9Y2UubGVuZ3RoPjE/Y2VbMF06IiIsdWU9Y2UubGVuZ3RoPjE/Y2VbMV06IiIpOihjZT1vZS5zcGxpdCgiLyIpLHVlPWNlLnBvcCgpfHwiIixoZT1jZS5qb2luKCIvIikpLCF1ZSl0aHJvdyBuZXcgRXJyb3IoIkpvYiBuYW1lIGlzIGVt'@; put 'cHR5LCBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm5bNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0Sm9ic0luRm9sZGVyKGhlKV07Y2FzZSAxOnJldHVybihHPUQuc2VudCgpKSYmKGI9Ry5maW5kKGZ1bmN0aW9uKEgpe3JldHVybiBILm5hbWU9PT11ZSYmImpvYkRlZmluaXRpb24iPT09'@; put 'SC5jb250ZW50VHlwZX0pKSYmKHNlPWIudXJpKSxbMixzZV19fSl9KX0sdGV9KFIoNjExOCkuQmFzZUpvYkV4ZWN1dG9yKTtPLldlYkpvYkV4ZWN1dG9yPXF9LDgyMTc6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVj'@; put 'dC5jcmVhdGU/ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAwPT09aiYmKGo9RSk7dmFyIFY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLEUpO1YmJiEoImdldCJpbiBWPyFrLl9fZXNNb2R1bGU6Vi53cml0YWJsZXx8Vi5jb25maWd1cmFibGUpfHwoVj17ZW51bWVyYWJsZTohMCxn'@; put 'ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga1tFXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSSxqLFYpfTpmdW5jdGlvbihJLGssRSxqKXt2b2lkIDA9PT1qJiYoaj1FKSxJW2pdPWtbRV19KSxLPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihJLGspe2Zvcih2YXIgRSBpbiBJKSJk'@; put 'ZWZhdWx0Ij09PUV8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChrLEUpfHx6KGssSSxFKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEsoUigxNTcwKSxPKSxLKFIoMzQ5MSksTyksSyhSKDQ0NDYpLE8pLEsoUig2MTE4KSxP'@; put 'KSxLKFIoMjY5MyksTyksSyhSKDYwODQpLE8pLEsoUigxMDY1KSxPKX0sNDU4ODpmdW5jdGlvbihNLE8sUil7InVzZSBzdHJpY3QiO3ZhciB6PVIoNDE1NSksSz1SKDUxMDgpLEk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gST1PYmplY3QuYXNzaWdufHxmdW5jdGlv'@; put 'bih1ZSl7Zm9yKHZhciBjZSxHPTEsYj1hcmd1bWVudHMubGVuZ3RoO0c8YjtHKyspZm9yKHZhciBEIGluIGNlPWFyZ3VtZW50c1tHXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2UsRCkmJih1ZVtEXT1jZVtEXSk7cmV0dXJuIHVlfSxJLmFwcGx5KHRoaXMsYXJndW1l'@; put 'bnRzKX0saz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odWUsY2UsRyxiKXtyZXR1cm4gbmV3KEd8fChHPVByb21pc2UpKShmdW5jdGlvbihELEgpe2Z1bmN0aW9uIE4oUyl7dHJ5e0MoYi5uZXh0KFMpKX1jYXRjaCh2KXtIKHYpfX1mdW5jdGlvbiBnKFMpe3RyeXtDKGIudGhyb3co'@; put 'UykpfWNhdGNoKHYpe0godil9fWZ1bmN0aW9uIEMoUyl7dmFyIHY7Uy5kb25lP0QoUy52YWx1ZSk6KHY9Uy52YWx1ZSx2IGluc3RhbmNlb2YgRz92Om5ldyBHKGZ1bmN0aW9uKHApe3Aodil9KSkudGhlbihOLGcpfUMoKGI9Yi5hcHBseSh1ZSxjZXx8W10pKS5uZXh0KCkpfSl9LEU9dGhpcyYm'@; put 'dGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odWUsY2Upe3ZhciBHLGIsRCxILE49e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmRFswXSl0aHJvdyBEWzFdO3JldHVybiBEWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEg9e25leHQ6ZygwKSx0aHJvdzpnKDEpLHJldHVybjpnKDIp'@; put 'fSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoSFtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxIO2Z1bmN0aW9uIGcoQyl7cmV0dXJuIGZ1bmN0aW9uKFMpe3JldHVybiBmdW5jdGlvbih2KXtpZihHKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBp'@; put 'cyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO047KXRyeXtpZihHPTEsYiYmKEQ9MiZ2WzBdP2IucmV0dXJuOnZbMF0/Yi50aHJvd3x8KChEPWIucmV0dXJuKSYmRC5jYWxsKGIpLDApOmIubmV4dCkmJiEoRD1ELmNhbGwoYix2WzFdKSkuZG9uZSlyZXR1cm4gRDtzd2l0Y2goYj0wLEQmJih2'@; put 'PVsyJnZbMF0sRC52YWx1ZV0pLHZbMF0pe2Nhc2UgMDpjYXNlIDE6RD12O2JyZWFrO2Nhc2UgNDpyZXR1cm4gTi5sYWJlbCsrLHt2YWx1ZTp2WzFdLGRvbmU6ITF9O2Nhc2UgNTpOLmxhYmVsKyssYj12WzFdLHY9WzBdO2NvbnRpbnVlO2Nhc2UgNzp2PU4ub3BzLnBvcCgpLE4udHJ5cy5wb3Ao'@; put 'KTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEQ9KEQ9Ti50cnlzKS5sZW5ndGg+MCYmRFtELmxlbmd0aC0xXSl8fDYhPT12WzBdJiYyIT09dlswXSkpe049MDtjb250aW51ZX1pZigzPT09dlswXSYmKCFEfHx2WzFdPkRbMF0mJnZbMV08RFszXSkpe04ubGFiZWw9dlsxXTticmVha31pZig2PT09'@; put 'dlswXSYmTi5sYWJlbDxEWzFdKXtOLmxhYmVsPURbMV0sRD12O2JyZWFrfWlmKEQmJk4ubGFiZWw8RFsyXSl7Ti5sYWJlbD1EWzJdLE4ub3BzLnB1c2godik7YnJlYWt9RFsyXSYmTi5vcHMucG9wKCksTi50cnlzLnBvcCgpO2NvbnRpbnVlfXY9Y2UuY2FsbCh1ZSxOKX1jYXRjaChwKXt2PVs2'@; put 'LHBdLGI9MH1maW5hbGx5e0c9RD0wfWlmKDUmdlswXSl0aHJvdyB2WzFdO3JldHVybnt2YWx1ZTp2WzBdP3ZbMV06dm9pZCAwLGRvbmU6ITB9fShbQyxTXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8udGhyb3dJZkVycm9yPU8uUmVxdWVz'@; put 'dENsaWVudD12b2lkIDA7dmFyIGo9Uig5NjY5KSxWPVIoODM3MyksQj1SKDE1MjcpLFk9UigxMzk1KSxYPVIoMjgxMyksVT1SKDk3NzgpLHE9Uig5NTI2KSxlZT1SKDU5MjgpLHRlPVIoMTAwNSksb2U9Uig5NTM5KSxzZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHVlKGNlLEcsYixEKXt2YXIgSD10'@; put 'aGlzO3RoaXMuYmFzZVVybD1jZSx0aGlzLnJlcXVlc3RzPVtdLHRoaXMucmVxdWVzdHNMaW1pdD0xMCx0aGlzLnZlcmJvc2VNb2RlPSExLHRoaXMuY3NyZlRva2VuPXtoZWFkZXJOYW1lOiIiLHZhbHVlOiIifSx0aGlzLmdldFJlcXVlc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIEgucmVxdWVzdHN9'@; put 'LHRoaXMuY2xlYXJSZXF1ZXN0cz1mdW5jdGlvbigpe0gucmVxdWVzdHM9W119LHRoaXMuYXV0aG9yaXplPWZ1bmN0aW9uKE4pe3JldHVybiBrKEgsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBnLEMsUyx2LHAsdyxKLG5lLGRlLGZlLHhlLExlO3JldHVybiBFKHRoaXMsZnVuY3Rpb24o'@; put 'RmUpe3N3aXRjaChGZS5sYWJlbCl7Y2FzZSAwOmZvcihDPXt9LFM9Ti5zcGxpdCgiPGJvZHk+IilbMV0uc3BsaXQoIjwvYm9keT4iKVswXSwodj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPVMscD12LnF1ZXJ5U2VsZWN0b3IoIiNhcHBsaWNhdGlvbl9hdXRob3Jp'@; put 'emF0aW9uIiksZz1wP3RoaXMuYmFzZVVybCtwLmdldEF0dHJpYnV0ZSgiYWN0aW9uIik6bnVsbCx3PXA/LnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0IiksSj0wLG5lPXc7SjxuZS5sZW5ndGg7SisrKSJ1c2VyX29hdXRoX2FwcHJvdmFsIj09PShkZT1uZVtKXSkubmFtZSYmKGRlLnZhbHVlPSJ0'@; put 'cnVlIiksQ1tkZS5uYW1lXT1kZS52YWx1ZTtmb3IoTGUgaW4oZmU9T2JqZWN0LmtleXMoQykuZmluZChmdW5jdGlvbihPZSl7cmV0dXJuIE9lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJjc3JmIil9KSkmJih0aGlzLmNzcmZUb2tlbi52YWx1ZT1DW2ZlXSx0aGlzLmNzcmZUb2tlbi5oZWFk'@; put 'ZXJOYW1lPXRoaXMuY3NyZlRva2VuLmhlYWRlck5hbWV8fCJ4LWNzcmYtdG9rZW4iKSx4ZT1uZXcgRm9ybURhdGEsQylDLmhhc093blByb3BlcnR5KExlKSYmeGUuYXBwZW5kKExlLENbTGVdKTtpZighZyl0aHJvdyBuZXcgRXJyb3IoIkF1dGggRm9ybSBVUkwgaXMgbnVsbCBvciB1bmRlZmlu'@; put 'ZWQuIik7cmV0dXJuWzQsdGhpcy5odHRwQ2xpZW50LnBvc3QoZyx4ZSx7cmVzcG9uc2VUeXBlOiJ0ZXh0IixoZWFkZXJzOntBY2NlcHQ6IiovKiIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW4ifX0pLnRoZW4oZnVuY3Rpb24oT2Upe3JldHVybiBPZS5kYXRhfSkuY2F0Y2goZnVuY3Rpb24o'@; put 'T2Upeyh6LmxvZ2dlcnx8SykuZXJyb3IoT2UpfSldO2Nhc2UgMTpyZXR1cm5bMixGZS5zZW50KCldfX0pfSl9LHRoaXMucHJldHRpZnlTdHJpbmc9ZnVuY3Rpb24oTil7cmV0dXJuKDAsb2UuaW5zcGVjdCkoTix7Y29sb3JzOiJibGVhY2hlZCIhPT1ILnZlcmJvc2VNb2RlfSl9LHRoaXMucGFy'@; put 'c2VJbnRlcmNlcHRlZEJvZHk9ZnVuY3Rpb24oTil7aWYoIU4pcmV0dXJuIiI7dmFyIGc7aWYoInN0cmluZyI9PXR5cGVvZiBOKXRyeXtnPUpTT04ucGFyc2UoTil9Y2F0Y2h7Zz1OfWVsc2UgZz1OO3ZhciBDPUgucHJldHRpZnlTdHJpbmcoZykuc3BsaXQoIlxuIik7cmV0dXJuIEMubGVuZ3Ro'@; put 'PjUxJiYoQy5zcGxpY2UoNTApLEMucHVzaCgiLi4uIikpLEMuam9pbigiXG4iKX0sdGhpcy5kZWZhdWx0SW50ZXJjZXB0aW9uQ2FsbEJhY2s9ZnVuY3Rpb24oTil7dmFyIGcsQz0iTm90IHByb3ZpZGVkIixTPXtfaGVhZGVyOiIiLmNvbmNhdChDLCJcbiIpLHJlczp7cmF3SGVhZGVyczpbQ119'@; put 'fSx2PU47aWYoai5kZWZhdWx0LmlzQXhpb3NFcnJvcihOKSl7dmFyIHA9Ti5yZXNwb25zZSx3PU4ucmVxdWVzdCxKPU4uY29uZmlnO2lmKHApdj1wO2Vsc2V7aWYodyl7dmFyIG5lPXcuX2hlYWRlcixkZT13Ll9jdXJyZW50UmVxdWVzdDtuZT9TLl9oZWFkZXI9bmU6ZGUmJmRlLl9oZWFkZXIm'@; put 'JihTLl9oZWFkZXI9ZGUuX2hlYWRlcik7dmFyIGZlPXcucmVzO2ZlJiZmZS5yYXdIZWFkZXJzJiYoUy5yZXMucmF3SGVhZGVycz1mZS5yYXdIZWFkZXJzKX12PXtzdGF0dXM6QyxyZXF1ZXN0OlMsY29uZmlnOkp8fHtkYXRhOkN9LGRhdGE6Q319fXZhciB4ZT12LnN0YXR1cyxPZT12LmRhdGEs'@; put 'amU9di5jb25maWcuZGF0YSxXZT12LnJlcXVlc3R8fFMsS2U9V2UuX2hlYWRlcixZZT1XZS5yZXMucmF3SGVhZGVycy5yZWR1Y2UoZnVuY3Rpb24obHQsUGUsYmUpe3JldHVybiBsdCsoYmUlMj09MD8iIi5jb25jYXQoMD09PWJlPyIiOiJcbiIpLmNvbmNhdChQZSk6IjogIi5jb25jYXQoUGUp'@; put 'KX0sIiIpLFFlPUgucGFyc2VJbnRlcmNlcHRlZEJvZHkoT2UpO3JldHVybiBudWxsPT09KGc9ei5sb2dnZXIpfHx2b2lkIDA9PT1nfHxnLmluZm8oIkhUVFAgUmVxdWVzdCAoZmlyc3QgNTAgbGluZXMpOlxuIi5jb25jYXQoS2UpLmNvbmNhdChILnBhcnNlSW50ZXJjZXB0ZWRCb2R5KGplKSwi'@; put 'XG5cbkhUVFAgUmVzcG9uc2UgQ29kZTogIikuY29uY2F0KEgucHJldHRpZnlTdHJpbmcoeGUpLCJcblxuSFRUUCBSZXNwb25zZSAoZmlyc3QgNTAgbGluZXMpOlxuIikuY29uY2F0KFllKS5jb25jYXQoUWU/IlxuXG4iLmNvbmNhdChRZSk6IiIsIlxuIikpLE59LHRoaXMuc2V0VmVyYm9zZU1v'@; put 'ZGU9ZnVuY3Rpb24oTil7SC52ZXJib3NlTW9kZT1OLEgudmVyYm9zZU1vZGU/SC5lbmFibGVWZXJib3NlTW9kZSgpOkguZGlzYWJsZVZlcmJvc2VNb2RlKCl9LHRoaXMuZW5hYmxlVmVyYm9zZU1vZGU9ZnVuY3Rpb24oTixnKXt2b2lkIDA9PT1OJiYoTj1ILmRlZmF1bHRJbnRlcmNlcHRpb25D'@; put 'YWxsQmFjayksdm9pZCAwPT09ZyYmKGc9SC5kZWZhdWx0SW50ZXJjZXB0aW9uQ2FsbEJhY2spLEguaHR0cEludGVyY2VwdG9yPUguaHR0cENsaWVudC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKE4sZyl9LHRoaXMuZGlzYWJsZVZlcmJvc2VNb2RlPWZ1bmN0aW9uKCl7SC5odHRwSW50ZXJj'@; put 'ZXB0b3ImJkguaHR0cENsaWVudC5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZWplY3QoSC5odHRwSW50ZXJjZXB0b3IpfSx0aGlzLmdldEhlYWRlcnM9ZnVuY3Rpb24oTixnKXt2YXIgQz17fTtyZXR1cm4iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiE9PWcmJihDWyJDb250ZW50'@; put 'LVR5cGUiXT1nKSxDLkFjY2VwdD0iYXBwbGljYXRpb24vanNvbiI9PT1nPyJhcHBsaWNhdGlvbi9qc29uIjoiKi8qIixOJiYoQy5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoTikpLEguY3NyZlRva2VuLmhlYWRlck5hbWUmJkguY3NyZlRva2VuLnZhbHVlJiYoQ1tILmNzcmZUb2tl'@; put 'bi5oZWFkZXJOYW1lXT1ILmNzcmZUb2tlbi52YWx1ZSksQ30sdGhpcy5wYXJzZUFuZFNldEZpbGVVcGxvYWRDc3JmVG9rZW49ZnVuY3Rpb24oTil7dmFyIGc9SC5wYXJzZUNzcmZUb2tlbihOKTtnJiYoSC5maWxlVXBsb2FkQ3NyZlRva2VuPWcpfSx0aGlzLnBhcnNlQW5kU2V0Q3NyZlRva2Vu'@; put 'PWZ1bmN0aW9uKE4pe3ZhciBnPUgucGFyc2VDc3JmVG9rZW4oTik7ZyYmKEguY3NyZlRva2VuPWcpfSx0aGlzLnBhcnNlQ3NyZlRva2VuPWZ1bmN0aW9uKE4pe3ZhciBnLEM9bnVsbD09PShnPU4uaGVhZGVyc1sieC1jc3JmLWhlYWRlciJdKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy50b0xvd2Vy'@; put 'Q2FzZSgpO2lmKEMpcmV0dXJue2hlYWRlck5hbWU6Qyx2YWx1ZTpOLmhlYWRlcnNbQ118fCIifX0sdGhpcy5oYW5kbGVFcnJvcj1mdW5jdGlvbihOLGcsQyl7cmV0dXJuIHZvaWQgMD09PUMmJihDPSExKSxrKEgsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBTLHY7cmV0dXJuIEUodGhp'@; put 'cyxmdW5jdGlvbihwKXtzd2l0Y2gocC5sYWJlbCl7Y2FzZSAwOnJldHVybiBTPU4ucmVzcG9uc2UsTiBpbnN0YW5jZW9mIFkuQXV0aG9yaXplRXJyb3I/WzQsdGhpcy5odHRwQ2xpZW50LmdldChOLmNvbmZpcm1Vcmwse3Jlc3BvbnNlVHlwZToidGV4dCIsaGVhZGVyczp7IkNvbnRlbnQtVHlw'@; put 'ZSI6InRleHQvcGxhaW4iLEFjY2VwdDoiKi8qIn19KS5jYXRjaChmdW5jdGlvbih3KXt0aHJvdygwLFUucHJlZml4TWVzc2FnZSkodywiRXJyb3Igd2hpbGUgZ2V0dGluZyBlcnJvciBjb25maXJtVXJsLiAiKX0pXTpbMyw1XTtjYXNlIDE6cmV0dXJuIHY9cC5zZW50KCksKDAsQi5pc0F1dGhv'@; put 'cml6ZUZvcm1SZXF1aXJlZCkodj8uZGF0YSk/WzQsdGhpcy5hdXRob3JpemUodi5kYXRhKS5jYXRjaChmdW5jdGlvbih3KXt0aHJvdygwLFUucHJlZml4TWVzc2FnZSkodywiRXJyb3Igd2hpbGUgYXV0aG9yaXppbmcgcmVxdWVzdC4gIil9KV06WzMsM107Y2FzZSAyOnAuc2VudCgpLHAubGFi'@; put 'ZWw9MztjYXNlIDM6cmV0dXJuWzQsZygpLmNhdGNoKGZ1bmN0aW9uKHcpe3Rocm93KDAsVS5wcmVmaXhNZXNzYWdlKSh3LCJFcnJvciB3aGlsZSBleGVjdXRpbmcgY2FsbGJhY2sgaW4gaGFuZGxlRXJyb3IuICIpfSldO2Nhc2UgNDpyZXR1cm5bMixwLnNlbnQoKV07Y2FzZSA1OmlmKE4gaW5z'@; put 'dGFuY2VvZiBZLkxvZ2luUmVxdWlyZWRFcnJvcil0aHJvdyB0aGlzLmNsZWFyQ3NyZlRva2VucygpLE47cmV0dXJuIE4gaW5zdGFuY2VvZiB0ZS5JbnZhbGlkU0FTanNDc3JmRXJyb3I/WzQsdGhpcy5odHRwQ2xpZW50LmdldCgiLyIse3dpdGhDcmVkZW50aWFsczohMH0pLnRoZW4oZnVuY3Rp'@; put 'b24odyl7dmFyIEosbmU9bnVsbD09PShKPS88c2NyaXB0PmRvY3VtZW50LmNvb2tpZSA9ICcoWFNSRi1UT0tFTj0uKjsgTWF4LUFnZT04NjQwMDsgU2FtZVNpdGU9U3RyaWN0OyBQYXRoPVwvOyknPFwvc2NyaXB0Pi8uZXhlYyh3LmRhdGEpKXx8dm9pZCAwPT09Sj92b2lkIDA6SlsxXTtuZSYm'@; put 'KGRvY3VtZW50LmNvb2tpZT1uZSl9KS5jYXRjaChmdW5jdGlvbih3KXt0aHJvdygwLFUucHJlZml4TWVzc2FnZSkodywiRXJyb3Igd2hpbGUgcmUtZmV0Y2hpbmcgQ1NSRiB0b2tlbi4iKX0pXTpbMyw4XTtjYXNlIDY6cmV0dXJuIHAuc2VudCgpLFs0LGcoKS5jYXRjaChmdW5jdGlvbih3KXt0'@; put 'aHJvdygwLFUucHJlZml4TWVzc2FnZSkodywiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGluIGhhbmRsZUVycm9yLiAiKX0pXTtjYXNlIDc6cmV0dXJuWzIscC5zZW50KCldO2Nhc2UgODpyZXR1cm4gNDAzIT09Uz8uc3RhdHVzJiY0NDkhPT1TPy5zdGF0dXM/WzMsMTFdOih0aGlz'@; put 'LnBhcnNlQW5kU2V0Q3NyZlRva2VuKFMpLHRoaXMuY3NyZlRva2VuLmhlYWRlck5hbWUmJnRoaXMuY3NyZlRva2VuLnZhbHVlP1s0LGcoKS5jYXRjaChmdW5jdGlvbih3KXt0aHJvdygwLFUucHJlZml4TWVzc2FnZSkodywiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGluIGhhbmRs'@; put 'ZUVycm9yLiAiKX0pXTpbMywxMF0pO2Nhc2UgOTpyZXR1cm5bMixwLnNlbnQoKV07Y2FzZSAxMDp0aHJvdyBOO2Nhc2UgMTE6aWYoNDA0PT09Uz8uc3RhdHVzKXRocm93IG5ldyBZLk5vdEZvdW5kRXJyb3IoUy5jb25maWcudXJsKTtpZig1MDI9PT1TPy5zdGF0dXMpe2lmKEMpdGhyb3cgbmV3'@; put 'IFkuSW50ZXJuYWxTZXJ2ZXJFcnJvcjtyZXR1cm5bMl19cC5sYWJlbD0xMjtjYXNlIDEyOnRocm93IE4uaXNBeGlvc0Vycm9yJiYiVU5BQkxFX1RPX1ZFUklGWV9MRUFGX1NJR05BVFVSRSI9PT1OLmNvZGU/bmV3IFkuQ2VydGlmaWNhdGVFcnJvcihOLm1lc3NhZ2UpOk4ubWVzc2FnZT9OOigw'@; put 'LFUucHJlZml4TWVzc2FnZSkoTiwiRXJyb3Igd2hpbGUgaGFuZGxpbmcgZXJyb3IuICIpfX0pfSl9LHRoaXMuY3JlYXRlSHR0cENsaWVudChjZSxHKSxiJiYodGhpcy5yZXF1ZXN0c0xpbWl0PWIpLEQmJih0aGlzLnNldFZlcmJvc2VNb2RlKEQpLHRoaXMuZW5hYmxlVmVyYm9zZU1vZGUoKSl9'@; put 'cmV0dXJuIHVlLnByb3RvdHlwZS5zZXRDb25maWc9ZnVuY3Rpb24oY2UsRyl7dGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNlLEcpfSx1ZS5wcm90b3R5cGUuc2F2ZUxvY2FsU3RvcmFnZVRva2VuPWZ1bmN0aW9uKGNlLEcpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJhY2Nlc3NUb2tlbiIsY2UpLGxv'@; put 'Y2FsU3RvcmFnZS5zZXRJdGVtKCJyZWZyZXNoVG9rZW4iLEcpfSx1ZS5wcm90b3R5cGUuZ2V0Q3NyZlRva2VuPWZ1bmN0aW9uKGNlKXtyZXR1cm4gdm9pZCAwPT09Y2UmJihjZT0iZ2VuZXJhbCIpLCJmaWxlIj09PWNlP3RoaXMuZmlsZVVwbG9hZENzcmZUb2tlbjp0aGlzLmNzcmZUb2tlbn0s'@; put 'dWUucHJvdG90eXBlLmNsZWFyQ3NyZlRva2Vucz1mdW5jdGlvbigpe3RoaXMuY3NyZlRva2VuPXtoZWFkZXJOYW1lOiIiLHZhbHVlOiIifSx0aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW49e2hlYWRlck5hbWU6IiIsdmFsdWU6IiJ9fSx1ZS5wcm90b3R5cGUuY2xlYXJMb2NhbFN0b3JhZ2VUb2tl'@; put 'bnM9ZnVuY3Rpb24oKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiYWNjZXNzVG9rZW4iLCIiKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgicmVmcmVzaFRva2VuIiwiIil9LHVlLnByb3RvdHlwZS5nZXRCYXNlVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy5iYXNl'@; put 'VVJMfHwiIn0sdWUucHJvdG90eXBlLmFwcGVuZFJlcXVlc3Q9ZnVuY3Rpb24oY2UsRyxiKXt2YXIgRD0iIixIPSIiLE49bnVsbDtiJiYoY2U/LmxvZz8oRD0oMCxlZS5wYXJzZVNvdXJjZUNvZGUpKGNlLmxvZyksSD0oMCxlZS5wYXJzZUdlbmVyYXRlZENvZGUpKGNlLmxvZyksTj1jZT8ucmVz'@; put 'dWx0P2NlLnJlc3VsdC5XT1JLOmNlLmxvZyk6Y2U/LnJlc3VsdCYmKCJzdHJpbmciPT10eXBlb2YgY2UucmVzdWx0JiYoRD0oMCxlZS5wYXJzZVNvdXJjZUNvZGUpKGNlLnJlc3VsdCksSD0oMCxlZS5wYXJzZUdlbmVyYXRlZENvZGUpKGNlLnJlc3VsdCkpLE49Y2UucmVzdWx0LldPUkspKTt2'@; put 'YXIgZz0ic3RyaW5nIj09dHlwZW9mIGNlPy5yZXN1bHQ/Y2U/LnJlc3VsdDpKU09OLnN0cmluZ2lmeShjZT8ucmVzdWx0LG51bGwsMik7dGhpcy5yZXF1ZXN0cy5wdXNoKHtsb2dGaWxlOmNlPy5sb2d8fGd8fGNlLHNlcnZpY2VMaW5rOkcsdGltZXN0YW1wOm5ldyBEYXRlLHNvdXJjZUNvZGU6'@; put 'RCxnZW5lcmF0ZWRDb2RlOkgsU0FTV09SSzpOfSksdGhpcy5yZXF1ZXN0cy5sZW5ndGg+dGhpcy5yZXF1ZXN0c0xpbWl0JiZ0aGlzLnJlcXVlc3RzLnNwbGljZSgwLDEpfSx1ZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGNlLEcsYixELEgpe3JldHVybiB2b2lkIDA9PT1iJiYoYj0iYXBwbGlj'@; put 'YXRpb24vanNvbiIpLHZvaWQgMD09PUQmJihEPXt9KSx2b2lkIDA9PT1IJiYoSD0hMSksayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTixnLEM9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKFMpe3JldHVybiBOPUkoSSh7fSx0aGlzLmdldEhlYWRlcnMoRyxiKSksRCks'@; put 'Zz17aGVhZGVyczpOLHJlc3BvbnNlVHlwZToidGV4dC9wbGFpbiI9PT1iPyJ0ZXh0IjoianNvbiIsd2l0aENyZWRlbnRpYWxzOiEwfSwidGV4dC9wbGFpbiI9PT1iJiYoZy50cmFuc2Zvcm1SZXNwb25zZT12b2lkIDApLFsyLHRoaXMuaHR0cENsaWVudC5nZXQoY2UsZykudGhlbihmdW5jdGlv'@; put 'bih2KXtyZXR1cm4oMCxPLnRocm93SWZFcnJvcikodiksQy5wYXJzZVJlc3BvbnNlKHYpfSkuY2F0Y2goZnVuY3Rpb24odil7cmV0dXJuIGsoQyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHA9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKHcpe3N3aXRjaCh3LmxhYmVsKXtjYXNl'@; put 'IDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcih2LGZ1bmN0aW9uKCl7cmV0dXJuIHAuZ2V0KGNlLEcsYixEKS5jYXRjaChmdW5jdGlvbihKKXt0aHJvdygwLFUucHJlZml4TWVzc2FnZSkoSiwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGhhbmRsZSBlcnJvciBjYWxsYmFjay4gIil9KX0sSCld'@; put 'O2Nhc2UgMTpyZXR1cm5bMix3LnNlbnQoKV19fSl9KX0pXX0pfSl9LHVlLnByb3RvdHlwZS5wb3N0PWZ1bmN0aW9uKGNlLEcsYixELEgsTil7cmV0dXJuIHZvaWQgMD09PUQmJihEPSJhcHBsaWNhdGlvbi9qc29uIiksdm9pZCAwPT09SCYmKEg9e30pLHZvaWQgMD09PU4mJihOPXt9KSxrKHRo'@; put 'aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBnLEM9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKFMpe3JldHVybiBnPUkoSSh7fSx0aGlzLmdldEhlYWRlcnMoYixEKSksSCksWzIsdGhpcy5odHRwQ2xpZW50LnBvc3QoY2UsRyxJKHtoZWFkZXJzOmcsd2l0aENyZWRlbnRpYWxz'@; put 'OiEwfSxOKSkudGhlbihmdW5jdGlvbih2KXtyZXR1cm4oMCxPLnRocm93SWZFcnJvcikodiksQy5wYXJzZVJlc3BvbnNlKHYpfSkuY2F0Y2goZnVuY3Rpb24odil7cmV0dXJuIGsoQyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHA9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKHcp'@; put 'e3N3aXRjaCh3LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcih2LGZ1bmN0aW9uKCl7cmV0dXJuIHAucG9zdChjZSxHLGIsRCxIKX0pXTtjYXNlIDE6cmV0dXJuWzIsdy5zZW50KCldfX0pfSl9KV19KX0pfSx1ZS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKGNlLEcsYixE'@; put 'KXtyZXR1cm4gdm9pZCAwPT09RCYmKEQ9e30pLGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEgsTj10aGlzO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oZyl7cmV0dXJuIEg9SShJKHt9LHRoaXMuZ2V0SGVhZGVycyhiLCJhcHBsaWNhdGlvbi9qc29uIikpLEQpLFsyLHRoaXMu'@; put 'aHR0cENsaWVudC5wdXQoY2UsRyx7aGVhZGVyczpILHdpdGhDcmVkZW50aWFsczohMH0pLnRoZW4oZnVuY3Rpb24oQyl7cmV0dXJuKDAsTy50aHJvd0lmRXJyb3IpKEMpLE4ucGFyc2VSZXNwb25zZShDKX0pLmNhdGNoKGZ1bmN0aW9uKEMpe3JldHVybiBrKE4sdm9pZCAwLHZvaWQgMCxmdW5j'@; put 'dGlvbigpe3ZhciBTPXRoaXM7cmV0dXJuIEUodGhpcyxmdW5jdGlvbih2KXtzd2l0Y2godi5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxlRXJyb3IoQyxmdW5jdGlvbigpe3JldHVybiBTLnB1dChjZSxHLGIsRCl9KV07Y2FzZSAxOnJldHVyblsyLHYuc2VudCgpXX19KX0pfSld'@; put 'fSl9KX0sdWUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihjZSxHKXtyZXR1cm4gayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgYixEPXRoaXM7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihIKXtyZXR1cm4gYj10aGlzLmdldEhlYWRlcnMoRywiYXBwbGljYXRpb24vanNvbiIp'@; put 'LFsyLHRoaXMuaHR0cENsaWVudC5kZWxldGUoY2Use2hlYWRlcnM6Yix3aXRoQ3JlZGVudGlhbHM6ITB9KS50aGVuKGZ1bmN0aW9uKE4pe3JldHVybigwLE8udGhyb3dJZkVycm9yKShOKSxELnBhcnNlUmVzcG9uc2UoTil9KS5jYXRjaChmdW5jdGlvbihOKXtyZXR1cm4gayhELHZvaWQgMCx2'@; put 'b2lkIDAsZnVuY3Rpb24oKXt2YXIgZz10aGlzO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oQyl7c3dpdGNoKEMubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKE4sZnVuY3Rpb24oKXtyZXR1cm4gZy5kZWxldGUoY2UsRyl9KV07Y2FzZSAxOnJldHVyblsyLEMuc2VudCgp'@; put 'XX19KX0pfSldfSl9KX0sdWUucHJvdG90eXBlLnBhdGNoPWZ1bmN0aW9uKGNlLEcsYil7cmV0dXJuIHZvaWQgMD09PUcmJihHPXt9KSxrKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBELEg9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKE4pe3JldHVybiBEPXRoaXMuZ2V0'@; put 'SGVhZGVycyhiLCJhcHBsaWNhdGlvbi9qc29uIiksWzIsdGhpcy5odHRwQ2xpZW50LnBhdGNoKGNlLEcse2hlYWRlcnM6RCx3aXRoQ3JlZGVudGlhbHM6ITB9KS50aGVuKGZ1bmN0aW9uKGcpe3JldHVybigwLE8udGhyb3dJZkVycm9yKShnKSxILnBhcnNlUmVzcG9uc2UoZyl9KS5jYXRjaChm'@; put 'dW5jdGlvbihnKXtyZXR1cm4gayhILHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgQz10aGlzO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oUyl7c3dpdGNoKFMubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKGcsZnVuY3Rpb24oKXtyZXR1cm4gQy5wYXRjaChjZSxH'@; put 'LGIpfSldO2Nhc2UgMTpyZXR1cm5bMixTLnNlbnQoKV19fSl9KX0pXX0pfSl9LHVlLnByb3RvdHlwZS51cGxvYWRGaWxlPWZ1bmN0aW9uKGNlLEcsYil7dmFyIEQ7cmV0dXJuIGsodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEgsTixnO3JldHVybiBFKHRoaXMsZnVuY3Rpb24o'@; put 'Qyl7c3dpdGNoKEMubGFiZWwpe2Nhc2UgMDpIPXRoaXMuZ2V0SGVhZGVycyhiLCJhcHBsaWNhdGlvbi9qc29uIiksIShudWxsPT09KEQ9dGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuKXx8dm9pZCAwPT09RCkmJkQudmFsdWUmJihIW3RoaXMuZmlsZVVwbG9hZENzcmZUb2tlbi5oZWFkZXJOYW1l'@; put 'XT10aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW4udmFsdWUpLEMubGFiZWw9MTtjYXNlIDE6cmV0dXJuIEMudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx0aGlzLmh0dHBDbGllbnQucG9zdChjZSxHLHtoZWFkZXJzOkgsdHJhbnNmb3JtUmVxdWVzdDpmdW5jdGlvbihTKXtyZXR1cm4gU319KV07Y2Fz'@; put 'ZSAyOnJldHVyblsyLHtyZXN1bHQ6KGc9Qy5zZW50KCkpLmRhdGEsZXRhZzpnLmhlYWRlcnMuZXRhZ31dO2Nhc2UgMzppZihOPUMuc2VudCgpLDQwMz09PShudWxsPT0oZz1OLnJlc3BvbnNlKT92b2lkIDA6Zy5zdGF0dXMpfHw0NDk9PT1nPy5zdGF0dXMpe2lmKHRoaXMucGFyc2VBbmRTZXRG'@; put 'aWxlVXBsb2FkQ3NyZlRva2VuKGcpLHRoaXMuZmlsZVVwbG9hZENzcmZUb2tlbilyZXR1cm5bMix0aGlzLnVwbG9hZEZpbGUoY2UsRyxiKV07dGhyb3cgTn10aHJvdyBOO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sdWUucHJvdG90eXBlLnBhcnNlUmVzcG9uc2U9ZnVuY3Rpb24oY2Upe3ZhciBH'@; put 'LGI9Y2U/LmhlYWRlcnM/Y2UuaGVhZGVycy5ldGFnOiIiLEQ9ITE7dHJ5e0c9InN0cmluZyI9PXR5cGVvZiBjZS5kYXRhP0pTT04ucGFyc2UoY2UuZGF0YSk6Y2UuZGF0YX1jYXRjaHt0cnl7Rz1KU09OLnBhcnNlKCgwLFgucGFyc2VXZWJvdXRSZXNwb25zZSkoY2UuZGF0YSkpfWNhdGNoe0c9'@; put 'Y2UuZGF0YX1EPSEwfXZhciBIPXtyZXN1bHQ6RyxldGFnOmIsc3RhdHVzOmNlLnN0YXR1c307cmV0dXJuIEQmJihILmxvZz1jZS5kYXRhKSxIfSx1ZS5wcm90b3R5cGUuY3JlYXRlSHR0cENsaWVudD1mdW5jdGlvbihjZSxHKXt2YXIgYj1HP25ldyBWLkFnZW50KEcpOnZvaWQgMDt0aGlzLmh0'@; put 'dHBDbGllbnQ9KDAsZWUuY3JlYXRlQXhpb3NJbnN0YW5jZSkoY2UsYiksdGhpcy5odHRwQ2xpZW50LmRlZmF1bHRzLnZhbGlkYXRlU3RhdHVzPWZ1bmN0aW9uKEQpe3JldHVybiBEPj0yMDAmJkQ8PTQwMX19LHVlfSgpO08uUmVxdWVzdENsaWVudD1zZSxPLnRocm93SWZFcnJvcj1mdW5jdGlv'@; put 'bih1ZSl7dmFyIGNlLEcsYixELEgsTixnO3N3aXRjaCh1ZS5zdGF0dXMpe2Nhc2UgNDAwOmlmKCJvYmplY3QiPT10eXBlb2YgdWUuZGF0YSYmImludmFsaWRfZ3JhbnQiPT09dWUuZGF0YS5lcnJvcil0aHJvdyBuZXcgWS5Mb2dpblJlcXVpcmVkRXJyb3IodWUuZGF0YSk7aWYoInN0cmluZyI9'@; put 'PXR5cGVvZiB1ZS5kYXRhJiYiaW52YWxpZCBjc3JmIHRva2VuISI9PT11ZS5kYXRhLnRvTG93ZXJDYXNlKCkpdGhyb3cgbmV3IHRlLkludmFsaWRTQVNqc0NzcmZFcnJvcjticmVhaztjYXNlIDQwMTp0aHJvdyJvYmplY3QiPT10eXBlb2YgdWUuZGF0YT9uZXcgWS5Mb2dpblJlcXVpcmVkRXJy'@; put 'b3IodWUuZGF0YSk6bmV3IFkuTG9naW5SZXF1aXJlZEVycm9yfWlmKG51bGwhPT0oRz1udWxsPT09KGNlPXVlLmRhdGEpfHx2b2lkIDA9PT1jZT92b2lkIDA6Y2UuZW50aXR5SUQpJiZ2b2lkIDAhPT1HJiZHLmluY2x1ZGVzKCJsb2dpbiIpKXRocm93IG5ldyBZLkxvZ2luUmVxdWlyZWRFcnJv'@; put 'cjtpZigic3RyaW5nIj09dHlwZW9mIHVlLmRhdGEmJigwLEIuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQpKHVlLmRhdGEpKXRocm93IG5ldyBZLkF1dGhvcml6ZUVycm9yKCJBdXRob3JpemF0aW9uIHJlcXVpcmVkIix1ZS5yZXF1ZXN0LnJlc3BvbnNlVVJMKTtpZigic3RyaW5nIj09dHlwZW9m'@; put 'IHVlLmRhdGEmJigwLEIuaXNMb2dJblJlcXVpcmVkKSh1ZS5kYXRhKSYmKG51bGw9PT0oRD1udWxsPT09KGI9dWUuY29uZmlnKXx8dm9pZCAwPT09Yj92b2lkIDA6Yi51cmwpfHx2b2lkIDA9PT1EfHwhRC5pbmNsdWRlcygiL1NBU0xvZ29uL2xvZ2luIikpKXRocm93IG5ldyBZLkxvZ2luUmVx'@; put 'dWlyZWRFcnJvcjtpZihudWxsIT09KEg9dWUuZGF0YSkmJnZvaWQgMCE9PUgmJkguYXV0aF9yZXF1ZXN0KXRocm93IG5ldyBZLkF1dGhvcml6ZUVycm9yKHVlLmRhdGEubWVzc2FnZSx1ZS5yZXF1ZXN0LnJlc3BvbnNlVVJMKTtpZihudWxsIT09KGc9bnVsbD09PShOPXVlLmNvbmZpZyl8fHZv'@; put 'aWQgMD09PU4/dm9pZCAwOk4udXJsKSYmdm9pZCAwIT09ZyYmZy5pbmNsdWRlcygic2FzQXV0aEVycm9yIikpdGhyb3cgbmV3IHEuU0FTOUF1dGhFcnJvcjt2YXIgUz1oZSh1ZS5kYXRhKTtpZihTKXRocm93IFN9O3ZhciBoZT1mdW5jdGlvbih1ZSl7aWYoIXVlKXJldHVybiBudWxsO3RyeXt2'@; put 'YXIgY2U9SlNPTi5wYXJzZSh1ZT8ucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7aWYoY2UuZXJyb3JDb2RlJiZjZS5tZXNzYWdlKXJldHVybiBuZXcgWS5Kb2JFeGVjdXRpb25FcnJvcihjZS5lcnJvckNvZGUsY2UubWVzc2FnZSx1ZT8ucmVwbGFjZSgvW1xuXHJdL2csIiAiKSl9Y2F0Y2h7fXRy'@; put 'eXtpZih1ZT8uaW5jbHVkZXMoJ3siZXJyb3JDb2RlJykmJihOPXVlLnNwbGl0KCd7ImVycm9yQ29kZScpKS5sZW5ndGg+MSl7dmFyIEc9J3siZXJyb3JDb2RlJytOWzFdLnNwbGl0KCcifScpWzBdKycifScsYj1KU09OLnBhcnNlKEcucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7cmV0dXJuIG5l'@; put 'dyBZLkpvYkV4ZWN1dGlvbkVycm9yKGIuZXJyb3JDb2RlLGIubWVzc2FnZSx1ZT8ucmVwbGFjZSgvW1xuXHJdL2csIlxuIikpfX1jYXRjaHt9dHJ5e2lmKHVlPy5tYXRjaCgvc3RvcmVkIHByb2Nlc3Mgbm90IGZvdW5kOiAvaSkmJihOPXVlLnNwbGl0KC9zdG9yZWQgcHJvY2VzcyBub3QgZm91'@; put 'bmQ6IC9pKSkubGVuZ3RoPjEpe3ZhciBEPU5bMV0uc3BsaXQoIjxpPiIpWzFdLnNwbGl0KCI8L2k+IilbMF0sSD1ELmVuZHNXaXRoKCJydW5uZXIiKT8iU0FTSlMgcnVubmVyIG5vdCBmb3VuZC4gSGVyZSdzIHRoZSBsaW5rIChodHRwczovL2NsaS5zYXNqcy5pby9hdXRoLyNzYXNqcy1ydW5u'@; put 'ZXIpIHRvIHRoZSBTQVMgY29kZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIFNBU2pzIHJ1bm5lciI6IlN0b3JlZCBwcm9jZXNzIG5vdCBmb3VuZDogIi5jb25jYXQoRCk7cmV0dXJuIG5ldyBZLkpvYkV4ZWN1dGlvbkVycm9yKDUwMCxILCIiKX19Y2F0Y2h7fXRyeXt2YXIgTjtpZighdWU/Lm1hdGNo'@; put 'KC8+PndlYm91dEJFR0lOPDwvKSYmdWU/Lm1hdGNoKC9TdG9yZWQgUHJvY2VzcyBFcnJvci9pKSYmdWU/Lm1hdGNoKC9UaGlzIHJlcXVlc3QgY29tcGxldGVkIHdpdGggZXJyb3JzLi9pKSYmKE49dWUuc3BsaXQoIjxoMj5TQVMgTG9nPC9oMj4iKSkubGVuZ3RoPjEpe3ZhciBnPU5bMV0uc3Bs'@; put 'aXQoIjxwcmU+IilbMV0uc3BsaXQoIjwvcHJlPiIpWzBdO3JldHVybiBuZXcgWS5Kb2JFeGVjdXRpb25FcnJvcig1MDAsSD0iVGhpcyByZXF1ZXN0IGNvbXBsZXRlZCB3aXRoIGVycm9ycy4iLGcpfX1jYXRjaHt9cmV0dXJuIG51bGx9fSw3OTU6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgeixLPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoej1mdW5jdGlvbihxLGVlKXtyZXR1cm4oej1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odGUsb2Upe3RlLl9fcHJvdG9fXz1vZX18fGZ1bmN0aW9uKHRlLG9lKXtm'@; put 'b3IodmFyIHNlIGluIG9lKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvZSxzZSkmJih0ZVtzZV09b2Vbc2VdKX0pKHEsZWUpfSxmdW5jdGlvbihxLGVlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZWUmJm51bGwhPT1lZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBl'@; put 'eHRlbmRzIHZhbHVlICIrU3RyaW5nKGVlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiB0ZSgpe3RoaXMuY29uc3RydWN0b3I9cX16KHEsZWUpLHEucHJvdG90eXBlPW51bGw9PT1lZT9PYmplY3QuY3JlYXRlKGVlKToodGUucHJvdG90eXBlPWVlLnByb3RvdHlw'@; put 'ZSxuZXcgdGUpfSksST10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBJPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHEpe2Zvcih2YXIgZWUsdGU9MSxvZT1hcmd1bWVudHMubGVuZ3RoO3RlPG9lO3RlKyspZm9yKHZhciBzZSBpbiBlZT1hcmd1bWVudHNbdGVdKU9iamVj'@; put 'dC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxzZSkmJihxW3NlXT1lZVtzZV0pO3JldHVybiBxfSxJLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24ocSxlZSx0ZSxvZSl7cmV0dXJuIG5ldyh0ZXx8KHRlPVByb21pc2UpKShm'@; put 'dW5jdGlvbihzZSxoZSl7ZnVuY3Rpb24gdWUoYil7dHJ5e0cob2UubmV4dChiKSl9Y2F0Y2goRCl7aGUoRCl9fWZ1bmN0aW9uIGNlKGIpe3RyeXtHKG9lLnRocm93KGIpKX1jYXRjaChEKXtoZShEKX19ZnVuY3Rpb24gRyhiKXt2YXIgRDtiLmRvbmU/c2UoYi52YWx1ZSk6KEQ9Yi52YWx1ZSxE'@; put 'IGluc3RhbmNlb2YgdGU/RDpuZXcgdGUoZnVuY3Rpb24oSCl7SChEKX0pKS50aGVuKHVlLGNlKX1HKChvZT1vZS5hcHBseShxLGVlfHxbXSkpLm5leHQoKSl9KX0sRT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihxLGVlKXt2YXIgdGUsb2Usc2UsaGUsdWU9e2xhYmVsOjAsc2Vu'@; put 'dDpmdW5jdGlvbigpe2lmKDEmc2VbMF0pdGhyb3cgc2VbMV07cmV0dXJuIHNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGhlPXtuZXh0OmNlKDApLHRocm93OmNlKDEpLHJldHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGhlW1N5bWJvbC5pdGVyYXRvcl09ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpc30pLGhlO2Z1bmN0aW9uIGNlKEcpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oRCl7aWYodGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dWU7KXRyeXtpZih0ZT0xLG9lJiYo'@; put 'c2U9MiZEWzBdP29lLnJldHVybjpEWzBdP29lLnRocm93fHwoKHNlPW9lLnJldHVybikmJnNlLmNhbGwob2UpLDApOm9lLm5leHQpJiYhKHNlPXNlLmNhbGwob2UsRFsxXSkpLmRvbmUpcmV0dXJuIHNlO3N3aXRjaChvZT0wLHNlJiYoRD1bMiZEWzBdLHNlLnZhbHVlXSksRFswXSl7Y2FzZSAw'@; put 'OmNhc2UgMTpzZT1EO2JyZWFrO2Nhc2UgNDpyZXR1cm4gdWUubGFiZWwrKyx7dmFsdWU6RFsxXSxkb25lOiExfTtjYXNlIDU6dWUubGFiZWwrKyxvZT1EWzFdLEQ9WzBdO2NvbnRpbnVlO2Nhc2UgNzpEPXVlLm9wcy5wb3AoKSx1ZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgo'@; put 'c2U9KHNlPXVlLnRyeXMpLmxlbmd0aD4wJiZzZVtzZS5sZW5ndGgtMV0pfHw2IT09RFswXSYmMiE9PURbMF0pKXt1ZT0wO2NvbnRpbnVlfWlmKDM9PT1EWzBdJiYoIXNlfHxEWzFdPnNlWzBdJiZEWzFdPHNlWzNdKSl7dWUubGFiZWw9RFsxXTticmVha31pZig2PT09RFswXSYmdWUubGFiZWw8'@; put 'c2VbMV0pe3VlLmxhYmVsPXNlWzFdLHNlPUQ7YnJlYWt9aWYoc2UmJnVlLmxhYmVsPHNlWzJdKXt1ZS5sYWJlbD1zZVsyXSx1ZS5vcHMucHVzaChEKTticmVha31zZVsyXSYmdWUub3BzLnBvcCgpLHVlLnRyeXMucG9wKCk7Y29udGludWV9RD1lZS5jYWxsKHEsdWUpfWNhdGNoKEgpe0Q9WzYs'@; put 'SF0sb2U9MH1maW5hbGx5e3RlPXNlPTB9aWYoNSZEWzBdKXRocm93IERbMV07cmV0dXJue3ZhbHVlOkRbMF0/RFsxXTp2b2lkIDAsZG9uZTohMH19KFtHLGJdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5TYXM5UmVxdWVzdENsaWVudD12'@; put 'b2lkIDA7dmFyIGo9Uig4MjI0KSxWPVIoNzg1NyksQj1SKDk3NzgpLFk9Uig0NTg4KSxYPVIoMTM5NSksVT1mdW5jdGlvbihxKXtmdW5jdGlvbiBlZSh0ZSxvZSl7dmFyIHNlPXEuY2FsbCh0aGlzLHRlLG9lKXx8dGhpcztyZXR1cm4gc2UuaHR0cENsaWVudC5kZWZhdWx0cy5tYXhSZWRpcmVj'@; put 'dHM9MCxzZS5odHRwQ2xpZW50LmRlZmF1bHRzLnZhbGlkYXRlU3RhdHVzPWZ1bmN0aW9uKGhlKXtyZXR1cm4gaGU+PTIwMCYmaGU8MzAzfSxqLmRlZmF1bHQmJigoMCxqLmRlZmF1bHQpKHNlLmh0dHBDbGllbnQpLHNlLmh0dHBDbGllbnQuZGVmYXVsdHMuamFyPW5ldyBWLkNvb2tpZUphciks'@; put 'c2V9cmV0dXJuIEsoZWUscSksZWUucHJvdG90eXBlLmxvZ2luPWZ1bmN0aW9uKHRlLG9lLHNlKXtyZXR1cm4gayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaGU7cmV0dXJuIEUodGhpcyxmdW5jdGlvbih1ZSl7c3dpdGNoKHVlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGhlPSIv'@; put 'VXNlciBGb2xkZXJzLyIuY29uY2F0KHRlLCIvTXkgRm9sZGVyL3Nhc2pzL3J1bm5lciIpLHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy5qYXI/KHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy5qYXIucmVtb3ZlQWxsQ29va2llcygpLFs0LHRoaXMuZ2V0KCIiLmNvbmNhdChzZSwiP19wcm9ncmFt'@; put 'PSIpLmNvbmNhdChoZSwiJl91c2VybmFtZT0iKS5jb25jYXQodGUsIiZfcGFzc3dvcmQ9IikuY29uY2F0KG9lKSx2b2lkIDAsInRleHQvcGxhaW4iKV0pOlszLDJdO2Nhc2UgMTp1ZS5zZW50KCksdWUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9LGVlLnByb3RvdHlwZS5nZXQ9ZnVu'@; put 'Y3Rpb24odGUsb2Usc2UsaGUsdWUpe3JldHVybiB2b2lkIDA9PT1zZSYmKHNlPSJhcHBsaWNhdGlvbi9qc29uIiksdm9pZCAwPT09aGUmJihoZT17fSksdm9pZCAwPT09dWUmJih1ZT0hMSksayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsRyxiPXRoaXM7cmV0dXJuIEUo'@; put 'dGhpcyxmdW5jdGlvbihEKXtyZXR1cm4gY2U9SShJKHt9LHRoaXMuZ2V0SGVhZGVycyhvZSxzZSkpLGhlKSxHPXtoZWFkZXJzOmNlLHJlc3BvbnNlVHlwZToidGV4dC9wbGFpbiI9PT1zZT8idGV4dCI6Impzb24iLHdpdGhDcmVkZW50aWFsczohMH0sInRleHQvcGxhaW4iPT09c2UmJihHLnRy'@; put 'YW5zZm9ybVJlc3BvbnNlPXZvaWQgMCksWzIsdGhpcy5odHRwQ2xpZW50LmdldCh0ZSxHKS50aGVuKGZ1bmN0aW9uKEgpe3JldHVybiAzMDI9PT1ILnN0YXR1cz9iLmdldChILmhlYWRlcnMubG9jYXRpb24sb2Usc2UpOigoMCxZLnRocm93SWZFcnJvcikoSCksYi5wYXJzZVJlc3BvbnNlKEgp'@; put 'KX0pLmNhdGNoKGZ1bmN0aW9uKEgpe3JldHVybiBrKGIsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBOPXRoaXM7cmV0dXJuIEUodGhpcyxmdW5jdGlvbihnKXtzd2l0Y2goZy5sYWJlbCl7Y2FzZSAwOmlmKEggaW5zdGFuY2VvZiBYLkpvYkV4ZWN1dGlvbkVycm9yKXRocm93IEg7cmV0'@; put 'dXJuWzQsdGhpcy5oYW5kbGVFcnJvcihILGZ1bmN0aW9uKCl7cmV0dXJuIE4uZ2V0KHRlLG9lLHNlLGhlKS5jYXRjaChmdW5jdGlvbihDKXt0aHJvdygwLEIucHJlZml4TWVzc2FnZSkoQywiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGhhbmRsZSBlcnJvciBjYWxsYmFjay4gIil9KX0sdWUpLmNh'@; put 'dGNoKGZ1bmN0aW9uKEMpe3Rocm93KDAsQi5wcmVmaXhNZXNzYWdlKShDLCJFcnJvciB3aGlsZSBoYW5kbGluZyBlcnJvci4gIil9KV07Y2FzZSAxOnJldHVyblsyLGcuc2VudCgpXX19KX0pfSldfSl9KX0sZWUucHJvdG90eXBlLnBvc3Q9ZnVuY3Rpb24odGUsb2Usc2UsaGUsdWUpe3JldHVy'@; put 'biB2b2lkIDA9PT1oZSYmKGhlPSJhcHBsaWNhdGlvbi9qc29uIiksdm9pZCAwPT09dWUmJih1ZT17fSksayh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsRz10aGlzO3JldHVybiBFKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIGNlPUkoSSh7fSx0aGlzLmdldEhlYWRlcnMo'@; put 'c2UsaGUpKSx1ZSksWzIsdGhpcy5odHRwQ2xpZW50LnBvc3QodGUsb2Use2hlYWRlcnM6Y2Usd2l0aENyZWRlbnRpYWxzOiEwfSkudGhlbihmdW5jdGlvbihEKXtyZXR1cm4gayhHLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKEgpe3N3aXRjaChILmxh'@; put 'YmVsKXtjYXNlIDA6cmV0dXJuIDMwMiE9PUQuc3RhdHVzP1szLDJdOls0LHRoaXMuZ2V0KEQuaGVhZGVycy5sb2NhdGlvbix2b2lkIDAsaGUsdWUpXTtjYXNlIDE6cmV0dXJuWzIsSC5zZW50KCldO2Nhc2UgMjpyZXR1cm4oMCxZLnRocm93SWZFcnJvcikoRCksWzIsdGhpcy5wYXJzZVJlc3Bv'@; put 'bnNlKEQpXX19KX0pfSkuY2F0Y2goZnVuY3Rpb24oRCl7cmV0dXJuIGsoRyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEg9dGhpcztyZXR1cm4gRSh0aGlzLGZ1bmN0aW9uKE4pe3N3aXRjaChOLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcihELGZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIEgucG9zdCh0ZSxvZSxzZSxoZSx1ZSl9KV07Y2FzZSAxOnJldHVyblsyLE4uc2VudCgpXX19KX0pfSldfSl9KX0sZWV9KFkuUmVxdWVzdENsaWVudCk7Ty5TYXM5UmVxdWVzdENsaWVudD1VfSwzNjAyOmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHosSz10aGlz'@; put 'JiZ0aGlzLl9fZXh0ZW5kc3x8KHo9ZnVuY3Rpb24oayxFKXtyZXR1cm4oej1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oaixWKXtqLl9fcHJvdG9fXz1WfXx8ZnVuY3Rpb24oaixWKXtmb3IodmFyIEIgaW4gVilPYmplY3Qu'@; put 'cHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVixCKSYmKGpbQl09VltCXSl9KShrLEUpfSxmdW5jdGlvbihrLEUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBFJiZudWxsIT09RSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKEUpKyIgaXMgbm90'@; put 'IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIGooKXt0aGlzLmNvbnN0cnVjdG9yPWt9eihrLEUpLGsucHJvdG90eXBlPW51bGw9PT1FP09iamVjdC5jcmVhdGUoRSk6KGoucHJvdG90eXBlPUUucHJvdG90eXBlLG5ldyBqKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2Vz'@; put 'TW9kdWxlIix7dmFsdWU6ITB9KSxPLlNBU0pTX0xPR1NfU0VQQVJBVE9SPU8uU2FzanNSZXF1ZXN0Q2xpZW50PXZvaWQgMDt2YXIgST1mdW5jdGlvbihrKXtmdW5jdGlvbiBFKCl7dmFyIGo9bnVsbCE9PWsmJmsuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBqLmdldEhlYWRl'@; put 'cnM9ZnVuY3Rpb24oVixCKXt2YXIgWSxYPXt9O3JldHVybiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIT09QiYmKFhbIkNvbnRlbnQtVHlwZSJdPUIpLFguQWNjZXB0PSJhcHBsaWNhdGlvbi9qc29uIj09PUI/QjoiKi8qIixWfHx0eXBlb2Ygd2luZG93PiJ1Inx8KFY9bnVs'@; put 'bCE9PShZPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJhY2Nlc3NUb2tlbiIpKSYmdm9pZCAwIT09WT9ZOnZvaWQgMCksViYmKFguQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KFYpKSxYfSxqfXJldHVybiBLKEUsayksRS5wcm90b3R5cGUucGFyc2VSZXNwb25zZT1mdW5jdGlvbihqKXt2'@; put 'YXIgVixCLFksWD1qPy5oZWFkZXJzP2ouaGVhZGVycy5ldGFnOiIiLFU9e307dHJ5e1U9InN0cmluZyI9PXR5cGVvZiBqLmRhdGE/SlNPTi5wYXJzZShqLmRhdGEpOmouZGF0YX1jYXRjaHtpZihqLmRhdGEuaW5jbHVkZXMoTy5TQVNKU19MT0dTX1NFUEFSQVRPUikpe3ZhciBxPWouZGF0YSxl'@; put 'ZT1xLnNwbGl0KE8uU0FTSlNfTE9HU19TRVBBUkFUT1IpO3ZvaWQgMCE9PShWPWVlLnNwbGljZSgwLDEpWzBdKSYmKFU9Vik7dmFyIHRlPWVlLnNwbGljZSgwLGVlLmxlbmd0aC0xKSxvZT1uZXcgUmVnRXhwKCIiLmNvbmNhdChPLlNBU0pTX0xPR1NfU0VQQVJBVE9SLCIkIikpLHNlPWVlWzBd'@; put 'O3NlJiYob2UudGVzdChxKT90ZS5sZW5ndGg+MSYmdGUucHVzaChzZSk6WT1zZSksQj10ZS5qb2luKE8uU0FTSlNfTE9HU19TRVBBUkFUT1IpfWVsc2UgVT1qLmRhdGF9dmFyIGhlPXtyZXN1bHQ6VSxsb2c6Qnx8IiIsZXRhZzpYLHN0YXR1czpqLnN0YXR1c307cmV0dXJuIFkmJihoZS5wcmlu'@; put 'dE91dHB1dD1ZKSxoZX0sRX0oUig0NTg4KS5SZXF1ZXN0Q2xpZW50KTtPLlNhc2pzUmVxdWVzdENsaWVudD1JLE8uU0FTSlNfTE9HU19TRVBBUkFUT1I9IlNBU0pTX0xPR1NfU0VQQVJBVE9SXzE2M2VlMTdiNmZmMjRmMDI4OTI4OTcyZDgwYTI2Nzg0In0sNDcwOihNLE8pPT57InVzZSBzdHJp'@; put 'Y3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNDY2NjooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDYxNzc6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw1NzY2OihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNDk3NTooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHko'@; put 'TywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDIxNTooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQ3ODI6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUi'@; put 'LHt2YWx1ZTohMH0pfSw0MTY4OihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sODUxNjooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9'@; put 'LDM4NDA6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwzMTUzOihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMTQyODooTSxPKT0+'@; put 'eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDU4NDE6KE0sTyk9PnsidXNlIHN0cmljdCI7dmFyIFIsSztPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5Mb2dpbk1lY2hhbmlzbT1P'@; put 'LlNBU2pzQ29uZmlnPXZvaWQgMCxPLlNBU2pzQ29uZmlnPWZ1bmN0aW9uKCl7dGhpcy5zZXJ2ZXJVcmw9IiIsdGhpcy5wYXRoU0FTSlM9IiIsdGhpcy5wYXRoU0FTOT0iIix0aGlzLnBhdGhTQVNWaXlhPSIiLHRoaXMuYXBwTG9jPSIiLHRoaXMuc2VydmVyVHlwZT1udWxsLHRoaXMuZGVidWc9'@; put 'ITAsdGhpcy52ZXJib3NlPSEwLHRoaXMuY29udGV4dE5hbWU9IiIsdGhpcy51c2VDb21wdXRlQXBpPW51bGwsdGhpcy5sb2dpbk1lY2hhbmlzbT1SLkRlZmF1bHQsdGhpcy5yZXF1ZXN0SGlzdG9yeUxpbWl0PTEwfSwoSz1SPU8uTG9naW5NZWNoYW5pc218fChPLkxvZ2luTWVjaGFuaXNtPXt9'@; put 'KSkuRGVmYXVsdD0iRGVmYXVsdCIsSy5SZWRpcmVjdGVkPSJSZWRpcmVjdGVkIn0sNjAzODooTSxPKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgUjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5TZXNzaW9uU3RhdGU9dm9pZCAwLChSPU8uU2Vzc2lvblN0'@; put 'YXRlfHwoTy5TZXNzaW9uU3RhdGU9e30pKS5Db21wbGV0ZWQ9ImNvbXBsZXRlZCIsUi5SdW5uaW5nPSJydW5uaW5nIixSLlBlbmRpbmc9InBlbmRpbmciLFIuSWRsZT0iaWRsZSIsUi5VbmF2YWlsYWJsZT0idW5hdmFpbGFibGUiLFIuTm9TdGF0ZT0iIixSLkZhaWxlZD0iZmFpbGVkIixSLkVy'@; put 'cm9yPSJlcnJvciJ9LDk0OTM6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4NjUwOihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0s'@; put 'MTI0OmZ1bmN0aW9uKE0sTyl7InVzZSBzdHJpY3QiO3ZhciBSLHo9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChSPWZ1bmN0aW9uKEksayl7cmV0dXJuKFI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEUsail7RS5fX3Byb3Rv'@; put 'X189an18fGZ1bmN0aW9uKEUsail7Zm9yKHZhciBWIGluIGopT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGosVikmJihFW1ZdPWpbVl0pfSkoSSxrKX0sZnVuY3Rpb24oSSxrKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgayYmbnVsbCE9PWspdGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhrKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBFKCl7dGhpcy5jb25zdHJ1Y3Rvcj1JfVIoSSxrKSxJLnByb3RvdHlwZT1udWxsPT09az9PYmplY3QuY3JlYXRlKGspOihFLnByb3RvdHlwZT1rLnByb3Rv'@; put 'dHlwZSxuZXcgRSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5BdXRob3JpemVFcnJvcj12b2lkIDA7dmFyIEs9ZnVuY3Rpb24oSSl7ZnVuY3Rpb24gayhFLGope3ZhciBWPUkuY2FsbCh0aGlzLEUpfHx0aGlzO3JldHVybiBWLm1lc3NhZ2U9'@; put 'RSxWLmNvbmZpcm1Vcmw9aixWLm5hbWU9IkF1dGhvcml6ZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoVixrLnByb3RvdHlwZSksVn1yZXR1cm4geihrLEkpLGt9KEVycm9yKTtPLkF1dGhvcml6ZUVycm9yPUt9LDk0NjU6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmljdCI7dmFyIFIsej10'@; put 'aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFI9ZnVuY3Rpb24oSSxrKXtyZXR1cm4oUj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oRSxqKXtFLl9fcHJvdG9fXz1qfXx8ZnVuY3Rpb24oRSxqKXtmb3IodmFyIFYgaW4gailPYmpl'@; put 'Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaixWKSYmKEVbVl09altWXSl9KShJLGspfSxmdW5jdGlvbihJLGspe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBrJiZudWxsIT09ayl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGspKyIgaXMg'@; put 'bm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIEUoKXt0aGlzLmNvbnN0cnVjdG9yPUl9UihJLGspLEkucHJvdG90eXBlPW51bGw9PT1rP09iamVjdC5jcmVhdGUoayk6KEUucHJvdG90eXBlPWsucHJvdG90eXBlLG5ldyBFKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJf'@; put 'X2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLkNlcnRpZmljYXRlRXJyb3I9dm9pZCAwO3ZhciBLPWZ1bmN0aW9uKEkpe2Z1bmN0aW9uIGsoRSl7dmFyIGo9SS5jYWxsKHRoaXMsIiIuY29uY2F0KEUsIlxuUGxlYXNlIHZpc2l0IHRoZSBsaW5rIGJlbG93IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9u'@; put 'IG9uIHRoaXMgaXNzdWU6XG4tICIpLmNvbmNhdCgiaHR0cHM6Ly9naXRodWIuY29tL3Nhc2pzL2NsaS9pc3N1ZXMvMTE4MSNpc3N1ZWNvbW1lbnQtMTA5MDYzODU4NCIsIlxuIikpfHx0aGlzO3JldHVybiBqLm5hbWU9IkNlcnRpZmljYXRlRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihq'@; put 'LGsucHJvdG90eXBlKSxqfXJldHVybiB6KGssSSksa30oRXJyb3IpO08uQ2VydGlmaWNhdGVFcnJvcj1LfSw1MjY3OmZ1bmN0aW9uKE0sTyl7InVzZSBzdHJpY3QiO3ZhciBSLHo9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChSPWZ1bmN0aW9uKEksayl7cmV0dXJuKFI9T2JqZWN0LnNldFByb3Rv'@; put 'dHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEUsail7RS5fX3Byb3RvX189an18fGZ1bmN0aW9uKEUsail7Zm9yKHZhciBWIGluIGopT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGosVikmJihFW1ZdPWpbVl0pfSkoSSxrKX0sZnVu'@; put 'Y3Rpb24oSSxrKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgayYmbnVsbCE9PWspdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhrKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBFKCl7dGhpcy5jb25zdHJ1Y3Rvcj1JfVIo'@; put 'SSxrKSxJLnByb3RvdHlwZT1udWxsPT09az9PYmplY3QuY3JlYXRlKGspOihFLnByb3RvdHlwZT1rLnByb3RvdHlwZSxuZXcgRSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5Db21wdXRlSm9iRXhlY3V0aW9uRXJyb3I9dm9pZCAwO3ZhciBL'@; put 'PWZ1bmN0aW9uKEkpe2Z1bmN0aW9uIGsoRSxqKXt2YXIgVj1JLmNhbGwodGhpcywiRXJyb3I6IEpvYiBleGVjdXRpb24gZmFpbGVkIil8fHRoaXM7cmV0dXJuIFYuam9iPUUsVi5sb2c9aixWLm5hbWU9IkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKFYs'@; put 'ay5wcm90b3R5cGUpLFZ9cmV0dXJuIHooayxJKSxrfShFcnJvcik7Ty5Db21wdXRlSm9iRXhlY3V0aW9uRXJyb3I9S30sOTIzMjooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5FcnJvclJlc3BvbnNlPXZvaWQg'@; put 'MCxPLkVycm9yUmVzcG9uc2U9ZnVuY3Rpb24oeixLLEkpe3ZhciBrPUs7aWYoIm9iamVjdCIhPXR5cGVvZiBLKXRyeXtrPUpTT04ucGFyc2UoSyl9Y2F0Y2h7ST1LLGs9IiJ9dGhpcy5lcnJvcj17bWVzc2FnZTp6LGRldGFpbHM6ayxyYXc6SX19fSw1MTA5OmZ1bmN0aW9uKE0sTyl7InVzZSBz'@; put 'dHJpY3QiO3ZhciBSLHo9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChSPWZ1bmN0aW9uKEksayl7cmV0dXJuKFI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEUsail7RS5fX3Byb3RvX189an18fGZ1bmN0aW9uKEUsail7Zm9y'@; put 'KHZhciBWIGluIGopT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGosVikmJihFW1ZdPWpbVl0pfSkoSSxrKX0sZnVuY3Rpb24oSSxrKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgayYmbnVsbCE9PWspdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAi'@; put 'K1N0cmluZyhrKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBFKCl7dGhpcy5jb25zdHJ1Y3Rvcj1JfVIoSSxrKSxJLnByb3RvdHlwZT1udWxsPT09az9PYmplY3QuY3JlYXRlKGspOihFLnByb3RvdHlwZT1rLnByb3RvdHlwZSxuZXcgRSl9KTtPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5JbnRlcm5hbFNlcnZlckVycm9yPXZvaWQgMDt2YXIgSz1mdW5jdGlvbihJKXtmdW5jdGlvbiBrKCl7dmFyIEU9SS5jYWxsKHRoaXMsIkVycm9yOiBJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IuIil8fHRoaXM7cmV0dXJuIEUu'@; put 'bmFtZT0iSW50ZXJuYWxTZXJ2ZXJFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKEUsay5wcm90b3R5cGUpLEV9cmV0dXJuIHooayxJKSxrfShFcnJvcik7Ty5JbnRlcm5hbFNlcnZlckVycm9yPUt9LDU1MTg6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmljdCI7dmFyIFIsej10aGlzJiZ0aGlz'@; put 'Ll9fZXh0ZW5kc3x8KFI9ZnVuY3Rpb24oSSxrKXtyZXR1cm4oUj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oRSxqKXtFLl9fcHJvdG9fXz1qfXx8ZnVuY3Rpb24oRSxqKXtmb3IodmFyIFYgaW4gailPYmplY3QucHJvdG90'@; put 'eXBlLmhhc093blByb3BlcnR5LmNhbGwoaixWKSYmKEVbVl09altWXSl9KShJLGspfSxmdW5jdGlvbihJLGspe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBrJiZudWxsIT09ayl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGspKyIgaXMgbm90IGEgY29u'@; put 'c3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIEUoKXt0aGlzLmNvbnN0cnVjdG9yPUl9UihJLGspLEkucHJvdG90eXBlPW51bGw9PT1rP09iamVjdC5jcmVhdGUoayk6KEUucHJvdG90eXBlPWsucHJvdG90eXBlLG5ldyBFKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxl'@; put 'Iix7dmFsdWU6ITB9KSxPLkludmFsaWRKc29uRXJyb3I9dm9pZCAwO3ZhciBLPWZ1bmN0aW9uKEkpe2Z1bmN0aW9uIGsoKXt2YXIgRT1JLmNhbGwodGhpcywiRXJyb3I6IGludmFsaWQgSnNvbiBzdHJpbmciKXx8dGhpcztyZXR1cm4gRS5uYW1lPSJJbnZhbGlkSnNvbkVycm9yIixPYmplY3Qu'@; put 'c2V0UHJvdG90eXBlT2YoRSxrLnByb3RvdHlwZSksRX1yZXR1cm4geihrLEkpLGt9KEVycm9yKTtPLkludmFsaWRKc29uRXJyb3I9S30sMTAwNTpmdW5jdGlvbihNLE8peyJ1c2Ugc3RyaWN0Ijt2YXIgUix6PXRoaXMmJnRoaXMuX19leHRlbmRzfHwoUj1mdW5jdGlvbihJLGspe3JldHVybihS'@; put 'PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihFLGope0UuX19wcm90b19fPWp9fHxmdW5jdGlvbihFLGope2Zvcih2YXIgViBpbiBqKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChqLFYpJiYoRVtWXT1q'@; put 'W1ZdKX0pKEksayl9LGZ1bmN0aW9uKEksayl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGsmJm51bGwhPT1rKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoaykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gRSgpe3RoaXMu'@; put 'Y29uc3RydWN0b3I9SX1SKEksayksSS5wcm90b3R5cGU9bnVsbD09PWs/T2JqZWN0LmNyZWF0ZShrKTooRS5wcm90b3R5cGU9ay5wcm90b3R5cGUsbmV3IEUpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uSW52YWxpZFNBU2pzQ3NyZkVycm9y'@; put 'PXZvaWQgMDt2YXIgSz1mdW5jdGlvbihJKXtmdW5jdGlvbiBrKCl7dmFyIEU9dGhpcztyZXR1cm4oRT1JLmNhbGwodGhpcywiQXV0aCBlcnJvcjogIi5jb25jYXQoIkludmFsaWQgQ1NSRiB0b2tlbiEiKSl8fHRoaXMpLm5hbWU9IkludmFsaWRTQVNqc0NzcmZFcnJvciIsT2JqZWN0LnNldFBy'@; put 'b3RvdHlwZU9mKEUsay5wcm90b3R5cGUpLEV9cmV0dXJuIHooayxJKSxrfShFcnJvcik7Ty5JbnZhbGlkU0FTanNDc3JmRXJyb3I9S30sODUzMTpmdW5jdGlvbihNLE8peyJ1c2Ugc3RyaWN0Ijt2YXIgUix6PXRoaXMmJnRoaXMuX19leHRlbmRzfHwoUj1mdW5jdGlvbihJLGspe3JldHVybihS'@; put 'PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihFLGope0UuX19wcm90b19fPWp9fHxmdW5jdGlvbihFLGope2Zvcih2YXIgViBpbiBqKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChqLFYpJiYoRVtWXT1q'@; put 'W1ZdKX0pKEksayl9LGZ1bmN0aW9uKEksayl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGsmJm51bGwhPT1rKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoaykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gRSgpe3RoaXMu'@; put 'Y29uc3RydWN0b3I9SX1SKEksayksSS5wcm90b3R5cGU9bnVsbD09PWs/T2JqZWN0LmNyZWF0ZShrKTooRS5wcm90b3R5cGU9ay5wcm90b3R5cGUsbmV3IEUpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uSm9iRXhlY3V0aW9uRXJyb3I9dm9p'@; put 'ZCAwO3ZhciBLPWZ1bmN0aW9uKEkpe2Z1bmN0aW9uIGsoRSxqLFYpe3ZhciBCPUkuY2FsbCh0aGlzLCJFcnJvciBDb2RlICIuY29uY2F0KEUsIjogIikuY29uY2F0KGopKXx8dGhpcztyZXR1cm4gQi5lcnJvckNvZGU9RSxCLmVycm9yTWVzc2FnZT1qLEIucmVzdWx0PVYsQi5uYW1lPSJKb2JF'@; put 'eGVjdXRpb25FcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKEIsay5wcm90b3R5cGUpLEJ9cmV0dXJuIHooayxJKSxrfShFcnJvcik7Ty5Kb2JFeGVjdXRpb25FcnJvcj1LfSw5MDc5OmZ1bmN0aW9uKE0sTyl7InVzZSBzdHJpY3QiO3ZhciBSLHo9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChS'@; put 'PWZ1bmN0aW9uKEksayl7cmV0dXJuKFI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEUsail7RS5fX3Byb3RvX189an18fGZ1bmN0aW9uKEUsail7Zm9yKHZhciBWIGluIGopT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w'@; put 'ZXJ0eS5jYWxsKGosVikmJihFW1ZdPWpbVl0pfSkoSSxrKX0sZnVuY3Rpb24oSSxrKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgayYmbnVsbCE9PWspdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhrKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51'@; put 'bGwiKTtmdW5jdGlvbiBFKCl7dGhpcy5jb25zdHJ1Y3Rvcj1JfVIoSSxrKSxJLnByb3RvdHlwZT1udWxsPT09az9PYmplY3QuY3JlYXRlKGspOihFLnByb3RvdHlwZT1rLnByb3RvdHlwZSxuZXcgRSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSks'@; put 'Ty5Kb2JTdGF0ZVBvbGxFcnJvcj12b2lkIDA7dmFyIEs9ZnVuY3Rpb24oSSl7ZnVuY3Rpb24gayhFLGope3ZhciBWPUkuY2FsbCh0aGlzLCJFcnJvciB3aGlsZSBwb2xsaW5nIGpvYiBzdGF0ZSBmb3Igam9iICIuY29uY2F0KEUsIjogIikuY29uY2F0KGoubWVzc2FnZXx8aikpfHx0aGlzO3Jl'@; put 'dHVybiBWLm9yaWdpbmFsRXJyb3I9aixWLm5hbWU9IkpvYlN0YXRlUG9sbEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoVixrLnByb3RvdHlwZSksVn1yZXR1cm4geihrLEkpLGt9KEVycm9yKTtPLkpvYlN0YXRlUG9sbEVycm9yPUt9LDMwOTY6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmlj'@; put 'dCI7dmFyIFIsej10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFI9ZnVuY3Rpb24oSSxrKXtyZXR1cm4oUj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oRSxqKXtFLl9fcHJvdG9fXz1qfXx8ZnVuY3Rpb24oRSxqKXtmb3IodmFy'@; put 'IFYgaW4gailPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaixWKSYmKEVbVl09altWXSl9KShJLGspfSxmdW5jdGlvbihJLGspe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBrJiZudWxsIT09ayl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3Ry'@; put 'aW5nKGspKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIEUoKXt0aGlzLmNvbnN0cnVjdG9yPUl9UihJLGspLEkucHJvdG90eXBlPW51bGw9PT1rP09iamVjdC5jcmVhdGUoayk6KEUucHJvdG90eXBlPWsucHJvdG90eXBlLG5ldyBFKX0pO09iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLkpzb25QYXJzZUFycmF5RXJyb3I9dm9pZCAwO3ZhciBLPWZ1bmN0aW9uKEkpe2Z1bmN0aW9uIGsoKXt2YXIgRT1JLmNhbGwodGhpcywiQ2FuIG5vdCBwYXJzZSBhcnJheSBvYmplY3QgdG8ganNvbi4iKXx8dGhpcztyZXR1cm4g'@; put 'RS5uYW1lPSJKc29uUGFyc2VBcnJheUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoRSxrLnByb3RvdHlwZSksRX1yZXR1cm4geihrLEkpLGt9KEVycm9yKTtPLkpzb25QYXJzZUFycmF5RXJyb3I9S30sNjc0MzpmdW5jdGlvbihNLE8peyJ1c2Ugc3RyaWN0Ijt2YXIgUix6PXRoaXMmJnRo'@; put 'aXMuX19leHRlbmRzfHwoUj1mdW5jdGlvbihJLGspe3JldHVybihSPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihFLGope0UuX19wcm90b19fPWp9fHxmdW5jdGlvbihFLGope2Zvcih2YXIgViBpbiBqKU9iamVjdC5wcm90'@; put 'b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChqLFYpJiYoRVtWXT1qW1ZdKX0pKEksayl9LGZ1bmN0aW9uKEksayl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGsmJm51bGwhPT1rKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoaykrIiBpcyBub3QgYSBj'@; put 'b25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gRSgpe3RoaXMuY29uc3RydWN0b3I9SX1SKEksayksSS5wcm90b3R5cGU9bnVsbD09PWs/T2JqZWN0LmNyZWF0ZShrKTooRS5wcm90b3R5cGU9ay5wcm90b3R5cGUsbmV3IEUpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1'@; put 'bGUiLHt2YWx1ZTohMH0pLE8uTG9naW5SZXF1aXJlZEVycm9yPXZvaWQgMDt2YXIgSz1mdW5jdGlvbihJKXtmdW5jdGlvbiBrKEUpe3ZhciBqPXRoaXMsVj1FP0pTT04uc3RyaW5naWZ5KEUsbnVsbCwyKToiWW91IG11c3QgYmUgbG9nZ2VkIGluIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlIjty'@; put 'ZXR1cm4oaj1JLmNhbGwodGhpcywiQXV0aCBlcnJvcjogIi5jb25jYXQoVikpfHx0aGlzKS5uYW1lPSJMb2dpblJlcXVpcmVkRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihqLGsucHJvdG90eXBlKSxqfXJldHVybiB6KGssSSksa30oRXJyb3IpO08uTG9naW5SZXF1aXJlZEVycm9yPUt9'@; put 'LDc4NjQ6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmljdCI7dmFyIFIsej10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFI9ZnVuY3Rpb24oSSxrKXtyZXR1cm4oUj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oRSxqKXtFLl9fcHJv'@; put 'dG9fXz1qfXx8ZnVuY3Rpb24oRSxqKXtmb3IodmFyIFYgaW4gailPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaixWKSYmKEVbVl09altWXSl9KShJLGspfSxmdW5jdGlvbihJLGspe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBrJiZudWxsIT09ayl0aHJvdyBuZXcgVHlwZUVy'@; put 'cm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGspKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIEUoKXt0aGlzLmNvbnN0cnVjdG9yPUl9UihJLGspLEkucHJvdG90eXBlPW51bGw9PT1rP09iamVjdC5jcmVhdGUoayk6KEUucHJvdG90eXBlPWsucHJv'@; put 'dG90eXBlLG5ldyBFKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLk5vU2Vzc2lvblN0YXRlRXJyb3I9dm9pZCAwO3ZhciBLPWZ1bmN0aW9uKEkpe2Z1bmN0aW9uIGsoRSxqLFYpe3ZhciBCPUkuY2FsbCh0aGlzLCJDb3VsZCBub3QgZ2V0IHNl'@; put 'c3Npb24gc3RhdGUuIFNlcnZlciByZXNwb25kZWQgd2l0aCAiLmNvbmNhdChFLCIgd2hpbHN0IGNoZWNraW5nIHN0YXRlOiAiKS5jb25jYXQoaikpfHx0aGlzO3JldHVybiBCLnNlcnZlclJlc3BvbnNlU3RhdHVzPUUsQi5zZXNzaW9uU3RhdGVVcmw9aixCLmxvZ1VybD1WLEIubmFtZT0iTm9T'@; put 'ZXNzaW9uU3RhdHVzIixPYmplY3Quc2V0UHJvdG90eXBlT2YoQixrLnByb3RvdHlwZSksQn1yZXR1cm4geihrLEkpLGt9KEVycm9yKTtPLk5vU2Vzc2lvblN0YXRlRXJyb3I9S30sOTU3NzpmdW5jdGlvbihNLE8peyJ1c2Ugc3RyaWN0Ijt2YXIgUix6PXRoaXMmJnRoaXMuX19leHRlbmRzfHwo'@; put 'Uj1mdW5jdGlvbihJLGspe3JldHVybihSPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihFLGope0UuX19wcm90b19fPWp9fHxmdW5jdGlvbihFLGope2Zvcih2YXIgViBpbiBqKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJv'@; put 'cGVydHkuY2FsbChqLFYpJiYoRVtWXT1qW1ZdKX0pKEksayl9LGZ1bmN0aW9uKEksayl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGsmJm51bGwhPT1rKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoaykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBu'@; put 'dWxsIik7ZnVuY3Rpb24gRSgpe3RoaXMuY29uc3RydWN0b3I9SX1SKEksayksSS5wcm90b3R5cGU9bnVsbD09PWs/T2JqZWN0LmNyZWF0ZShrKTooRS5wcm90b3R5cGU9ay5wcm90b3R5cGUsbmV3IEUpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0p'@; put 'LE8uTm90Rm91bmRFcnJvcj12b2lkIDA7dmFyIEs9ZnVuY3Rpb24oSSl7ZnVuY3Rpb24gayhFKXt2YXIgaj1JLmNhbGwodGhpcywiRXJyb3I6IFJlc291cmNlIGF0ICIuY29uY2F0KEUsIiB3YXMgbm90IGZvdW5kIikpfHx0aGlzO3JldHVybiBqLnVybD1FLGoubmFtZT0iTm90Rm91bmRFcnJv'@; put 'ciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKGosay5wcm90b3R5cGUpLGp9cmV0dXJuIHooayxJKSxrfShFcnJvcik7Ty5Ob3RGb3VuZEVycm9yPUt9LDkyNzk6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgeixLPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoej1mdW5jdGlvbihFLGop'@; put 'e3JldHVybih6PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihWLEIpe1YuX19wcm90b19fPUJ9fHxmdW5jdGlvbihWLEIpe2Zvcih2YXIgWSBpbiBCKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChCLFkp'@; put 'JiYoVltZXT1CW1ldKX0pKEUsail9LGZ1bmN0aW9uKEUsail7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGomJm51bGwhPT1qKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoaikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24g'@; put 'Vigpe3RoaXMuY29uc3RydWN0b3I9RX16KEUsaiksRS5wcm90b3R5cGU9bnVsbD09PWo/T2JqZWN0LmNyZWF0ZShqKTooVi5wcm90b3R5cGU9ai5wcm90b3R5cGUsbmV3IFYpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uUm9vdEZvbGRlck5v'@; put 'dEZvdW5kRXJyb3I9dm9pZCAwO3ZhciBJPVIoNjc5OSksaz1mdW5jdGlvbihFKXtmdW5jdGlvbiBqKFYsQixZKXt2YXIgWD10aGlzLFU9IlJvb3QgZm9sZGVyICIuY29uY2F0KFYsIiB3YXMgbm90IGZvdW5kLiIpKyJcblBsZWFzZSBjaGVjayAiLmNvbmNhdChCLCIvU0FTRHJpdmUuIikrIlxu'@; put 'SWYgdGhlIGZvbGRlciBET0VTIGV4aXN0IHRoZW4gaXQgaXMgbGlrZWx5IGEgcGVybWlzc2lvbiBwcm9ibGVtLlxuIjtpZihZKXt2YXIgcT0oMCxJLmRlY29kZVRva2VuKShZKS5zY29wZTtVKz0iWW91ciBhY2Nlc3MgdG9rZW4gY29udGFpbnMgdGhlIGZvbGxvd2luZyBzY29wZXM6XG4iKyhx'@; put 'PXEubWFwKGZ1bmN0aW9uKGVlKXtyZXR1cm4iKiAiK2VlfSkpLmpvaW4oIlxuIil9cmV0dXJuKFg9RS5jYWxsKHRoaXMsVSl8fHRoaXMpLm5hbWU9IlJvb3RGb2xkZXJOb3RGb3VuZEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoWCxqLnByb3RvdHlwZSksWH1yZXR1cm4gSyhqLEUpLGp9'@; put 'KEVycm9yKTtPLlJvb3RGb2xkZXJOb3RGb3VuZEVycm9yPWt9LDk1MjY6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmljdCI7dmFyIFIsej10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFI9ZnVuY3Rpb24oSSxrKXtyZXR1cm4oUj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5z'@; put 'dGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oRSxqKXtFLl9fcHJvdG9fXz1qfXx8ZnVuY3Rpb24oRSxqKXtmb3IodmFyIFYgaW4gailPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaixWKSYmKEVbVl09altWXSl9KShJLGspfSxmdW5jdGlvbihJLGspe2lmKCJmdW5jdGlvbiIh'@; put 'PXR5cGVvZiBrJiZudWxsIT09ayl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGspKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIEUoKXt0aGlzLmNvbnN0cnVjdG9yPUl9UihJLGspLEkucHJvdG90eXBlPW51bGw9PT1r'@; put 'P09iamVjdC5jcmVhdGUoayk6KEUucHJvdG90eXBlPWsucHJvdG90eXBlLG5ldyBFKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLlNBUzlBdXRoRXJyb3I9dm9pZCAwO3ZhciBLPWZ1bmN0aW9uKEkpe2Z1bmN0aW9uIGsoKXt2YXIgRT1JLmNh'@; put 'bGwodGhpcywiVGhlIGNyZWRlbnRpYWxzIHlvdSBwcm92aWRlZCBjYW5ub3QgYmUgYXV0aGVudGljYXRlZC4gUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBzZXQgb2YgY3JlZGVudGlhbHMuIil8fHRoaXM7cmV0dXJuIEUubmFtZT0iQXV0aG9yaXplRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVP'@; put 'ZihFLGsucHJvdG90eXBlKSxFfXJldHVybiB6KGssSSksa30oRXJyb3IpO08uU0FTOUF1dGhFcnJvcj1LfSw4ODc1OmZ1bmN0aW9uKE0sTyl7InVzZSBzdHJpY3QiO3ZhciBSLHo9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChSPWZ1bmN0aW9uKEksayl7cmV0dXJuKFI9T2JqZWN0LnNldFByb3Rv'@; put 'dHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEUsail7RS5fX3Byb3RvX189an18fGZ1bmN0aW9uKEUsail7Zm9yKHZhciBWIGluIGopT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGosVikmJihFW1ZdPWpbVl0pfSkoSSxrKX0sZnVu'@; put 'Y3Rpb24oSSxrKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgayYmbnVsbCE9PWspdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhrKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBFKCl7dGhpcy5jb25zdHJ1Y3Rvcj1JfVIo'@; put 'SSxrKSxJLnByb3RvdHlwZT1udWxsPT09az9PYmplY3QuY3JlYXRlKGspOihFLnByb3RvdHlwZT1rLnByb3RvdHlwZSxuZXcgRSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5XZWJvdXRSZXNwb25zZUVycm9yPXZvaWQgMDt2YXIgSz1mdW5j'@; put 'dGlvbihJKXtmdW5jdGlvbiBrKEUpe3ZhciBqPUkuY2FsbCh0aGlzLCJFcnJvcjogZXJyb3Igd2hpbGUgcGFyc2luZyByZXNwb25zZSBmcm9tICIuY29uY2F0KEUpKXx8dGhpcztyZXR1cm4gai51cmw9RSxqLm5hbWU9IldlYm91dFJlc3BvbnNlRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVP'@; put 'ZihqLGsucHJvdG90eXBlKSxqfXJldHVybiB6KGssSSksa30oRXJyb3IpO08uV2Vib3V0UmVzcG9uc2VFcnJvcj1LfSwxMzk1OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEksayxF'@; put 'LGope3ZvaWQgMD09PWomJihqPUUpO3ZhciBWPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoayxFKTtWJiYhKCJnZXQiaW4gVj8hay5fX2VzTW9kdWxlOlYud3JpdGFibGV8fFYuY29uZmlndXJhYmxlKXx8KFY9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGtb'@; put 'RV19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEksaixWKX06ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAwPT09aiYmKGo9RSksSVtqXT1rW0VdfSksSz10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oSSxrKXtmb3IodmFyIEUgaW4gSSkiZGVmYXVsdCI9PT1FfHxPYmplY3QucHJv'@; put 'dG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoayxFKXx8eihrLEksRSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxLKFIoMTI0KSxPKSxLKFIoOTQ2NSksTyksSyhSKDUyNjcpLE8pLEsoUig5MjMyKSxPKSxLKFIoNTEwOSksTyksSyhSKDU1MTgp'@; put 'LE8pLEsoUig4NTMxKSxPKSxLKFIoOTA3OSksTyksSyhSKDMwOTYpLE8pLEsoUig2NzQzKSxPKSxLKFIoNzg2NCksTyksSyhSKDk1NzcpLE8pLEsoUig5Mjc5KSxPKSxLKFIoODg3NSksTyl9LDEyMzA6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9fY3Jl'@; put 'YXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAwPT09aiYmKGo9RSk7dmFyIFY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLEUpO1YmJiEoImdldCJpbiBWPyFrLl9fZXNNb2R1bGU6Vi53cml0YWJsZXx8Vi5jb25maWd1cmFibGUpfHwo'@; put 'Vj17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga1tFXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSSxqLFYpfTpmdW5jdGlvbihJLGssRSxqKXt2b2lkIDA9PT1qJiYoaj1FKSxJW2pdPWtbRV19KSxLPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihJLGsp'@; put 'e2Zvcih2YXIgRSBpbiBJKSJkZWZhdWx0Ij09PUV8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChrLEUpfHx6KGssSSxFKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEsoUig0NzApLE8pLEsoUig0NjY2KSxPKSxLKFIoNDk3'@; put 'NSksTyksSyhSKDU3NjYpLE8pLEsoUigyMTUpLE8pLEsoUig0NzgyKSxPKSxLKFIoNDE2OCksTyksSyhSKDg1MTYpLE8pLEsoUigzODQwKSxPKSxLKFIoNTg0MSksTyksSyhSKDE0MjgpLE8pLEsoUig2MDM4KSxPKSxLKFIoOTQ5MyksTyksSyhSKDMxNTMpLE8pLEsoUig4NjUwKSxPKSxLKFIo'@; put 'NjE3NyksTyksSyhSKDEzOTUpLE8pfSwzMzAyOmZ1bmN0aW9uKE0sTyl7InVzZSBzdHJpY3QiO3ZhciBSPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oSSl7Zm9yKHZhciBrLEU9MSxqPWFyZ3VtZW50cy5sZW5ndGg7RTxq'@; put 'O0UrKylmb3IodmFyIFYgaW4gaz1hcmd1bWVudHNbRV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGssVikmJihJW1ZdPWtbVl0pO3JldHVybiBJfSxSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sej10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oSSxrLEUsail7'@; put 'cmV0dXJuIG5ldyhFfHwoRT1Qcm9taXNlKSkoZnVuY3Rpb24oVixCKXtmdW5jdGlvbiBZKHEpe3RyeXtVKGoubmV4dChxKSl9Y2F0Y2goZWUpe0IoZWUpfX1mdW5jdGlvbiBYKHEpe3RyeXtVKGoudGhyb3cocSkpfWNhdGNoKGVlKXtCKGVlKX19ZnVuY3Rpb24gVShxKXt2YXIgZWU7cS5kb25l'@; put 'P1YocS52YWx1ZSk6KGVlPXEudmFsdWUsZWUgaW5zdGFuY2VvZiBFP2VlOm5ldyBFKGZ1bmN0aW9uKHRlKXt0ZShlZSl9KSkudGhlbihZLFgpfVUoKGo9ai5hcHBseShJLGt8fFtdKSkubmV4dCgpKX0pfSxLPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKEksayl7dmFyIEUsaixW'@; put 'LEIsWT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZWWzBdKXRocm93IFZbMV07cmV0dXJuIFZbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gQj17bmV4dDpYKDApLHRocm93OlgoMSkscmV0dXJuOlgoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihCW1N5bWJvbC5pdGVy'@; put 'YXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEI7ZnVuY3Rpb24gWChVKXtyZXR1cm4gZnVuY3Rpb24ocSl7cmV0dXJuIGZ1bmN0aW9uKGVlKXtpZihFKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO1k7KXRyeXtpZihFPTEs'@; put 'aiYmKFY9MiZlZVswXT9qLnJldHVybjplZVswXT9qLnRocm93fHwoKFY9ai5yZXR1cm4pJiZWLmNhbGwoaiksMCk6ai5uZXh0KSYmIShWPVYuY2FsbChqLGVlWzFdKSkuZG9uZSlyZXR1cm4gVjtzd2l0Y2goaj0wLFYmJihlZT1bMiZlZVswXSxWLnZhbHVlXSksZWVbMF0pe2Nhc2UgMDpjYXNl'@; put 'IDE6Vj1lZTticmVhaztjYXNlIDQ6cmV0dXJuIFkubGFiZWwrKyx7dmFsdWU6ZWVbMV0sZG9uZTohMX07Y2FzZSA1OlkubGFiZWwrKyxqPWVlWzFdLGVlPVswXTtjb250aW51ZTtjYXNlIDc6ZWU9WS5vcHMucG9wKCksWS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoVj0oVj1Z'@; put 'LnRyeXMpLmxlbmd0aD4wJiZWW1YubGVuZ3RoLTFdKXx8NiE9PWVlWzBdJiYyIT09ZWVbMF0pKXtZPTA7Y29udGludWV9aWYoMz09PWVlWzBdJiYoIVZ8fGVlWzFdPlZbMF0mJmVlWzFdPFZbM10pKXtZLmxhYmVsPWVlWzFdO2JyZWFrfWlmKDY9PT1lZVswXSYmWS5sYWJlbDxWWzFdKXtZLmxh'@; put 'YmVsPVZbMV0sVj1lZTticmVha31pZihWJiZZLmxhYmVsPFZbMl0pe1kubGFiZWw9VlsyXSxZLm9wcy5wdXNoKGVlKTticmVha31WWzJdJiZZLm9wcy5wb3AoKSxZLnRyeXMucG9wKCk7Y29udGludWV9ZWU9ay5jYWxsKEksWSl9Y2F0Y2godGUpe2VlPVs2LHRlXSxqPTB9ZmluYWxseXtFPVY9'@; put 'MH1pZig1JmVlWzBdKXRocm93IGVlWzFdO3JldHVybnt2YWx1ZTplZVswXT9lZVsxXTp2b2lkIDAsZG9uZTohMH19KFtVLHFdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcz12b2lkIDAs'@; put 'Ty5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcz1mdW5jdGlvbihJLGspe3JldHVybiB6KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBFLGo7cmV0dXJuIEsodGhpcyxmdW5jdGlvbihWKXtyZXR1cm4gRT17fSxrPy5sZW5ndGg/KGo9ay5yZWR1Y2UoZnVuY3Rpb24oQixZ'@; put 'KXtyZXR1cm4gQltZXT1JW1ldLEJ9LHt9KSxFPVIoe3Jlc3VsdDpJLnJlc3VsdH0saikpOkU9SS5yZXN1bHQsWzIsRV19KX0pfX0sNzkyMjpmdW5jdGlvbihNLE8peyJ1c2Ugc3RyaWN0Ijt2YXIgUj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oSyxJLGssRSl7cmV0dXJuIG5ldyhr'@; put 'fHwoaz1Qcm9taXNlKSkoZnVuY3Rpb24oaixWKXtmdW5jdGlvbiBCKFUpe3RyeXtYKEUubmV4dChVKSl9Y2F0Y2gocSl7VihxKX19ZnVuY3Rpb24gWShVKXt0cnl7WChFLnRocm93KFUpKX1jYXRjaChxKXtWKHEpfX1mdW5jdGlvbiBYKFUpe3ZhciBxO1UuZG9uZT9qKFUudmFsdWUpOihxPVUu'@; put 'dmFsdWUscSBpbnN0YW5jZW9mIGs/cTpuZXcgayhmdW5jdGlvbihlZSl7ZWUocSl9KSkudGhlbihCLFkpfVgoKEU9RS5hcHBseShLLEl8fFtdKSkubmV4dCgpKX0pfSx6PXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKEssSSl7dmFyIGssRSxqLFYsQj17bGFiZWw6MCxzZW50OmZ1'@; put 'bmN0aW9uKCl7aWYoMSZqWzBdKXRocm93IGpbMV07cmV0dXJuIGpbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gVj17bmV4dDpZKDApLHRocm93OlkoMSkscmV0dXJuOlkoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihWW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gdGhpc30pLFY7ZnVuY3Rpb24gWShYKXtyZXR1cm4gZnVuY3Rpb24oVSl7cmV0dXJuIGZ1bmN0aW9uKHEpe2lmKGspdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7QjspdHJ5e2lmKGs9MSxFJiYoaj0yJnFbMF0/RS5yZXR1cm46'@; put 'cVswXT9FLnRocm93fHwoKGo9RS5yZXR1cm4pJiZqLmNhbGwoRSksMCk6RS5uZXh0KSYmIShqPWouY2FsbChFLHFbMV0pKS5kb25lKXJldHVybiBqO3N3aXRjaChFPTAsaiYmKHE9WzImcVswXSxqLnZhbHVlXSkscVswXSl7Y2FzZSAwOmNhc2UgMTpqPXE7YnJlYWs7Y2FzZSA0OnJldHVybiBC'@; put 'LmxhYmVsKysse3ZhbHVlOnFbMV0sZG9uZTohMX07Y2FzZSA1OkIubGFiZWwrKyxFPXFbMV0scT1bMF07Y29udGludWU7Y2FzZSA3OnE9Qi5vcHMucG9wKCksQi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoaj0oaj1CLnRyeXMpLmxlbmd0aD4wJiZqW2oubGVuZ3RoLTFdKXx8'@; put 'NiE9PXFbMF0mJjIhPT1xWzBdKSl7Qj0wO2NvbnRpbnVlfWlmKDM9PT1xWzBdJiYoIWp8fHFbMV0+alswXSYmcVsxXTxqWzNdKSl7Qi5sYWJlbD1xWzFdO2JyZWFrfWlmKDY9PT1xWzBdJiZCLmxhYmVsPGpbMV0pe0IubGFiZWw9alsxXSxqPXE7YnJlYWt9aWYoaiYmQi5sYWJlbDxqWzJdKXtC'@; put 'LmxhYmVsPWpbMl0sQi5vcHMucHVzaChxKTticmVha31qWzJdJiZCLm9wcy5wb3AoKSxCLnRyeXMucG9wKCk7Y29udGludWV9cT1JLmNhbGwoSyxCKX1jYXRjaChlZSl7cT1bNixlZV0sRT0wfWZpbmFsbHl7az1qPTB9aWYoNSZxWzBdKXRocm93IHFbMV07cmV0dXJue3ZhbHVlOnFbMF0/cVsx'@; put 'XTp2b2lkIDAsZG9uZTohMH19KFtYLFVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5hc3luY0ZvckVhY2g9dm9pZCAwLE8uYXN5bmNGb3JFYWNoPWZ1bmN0aW9uKEssSSl7cmV0dXJuIFIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9u'@; put 'KCl7dmFyIGs7cmV0dXJuIHoodGhpcyxmdW5jdGlvbihFKXtzd2l0Y2goRS5sYWJlbCl7Y2FzZSAwOms9MCxFLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBrPEsubGVuZ3RoP1s0LEkoS1trXSxrLEspXTpbMyw0XTtjYXNlIDI6RS5zZW50KCksRS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gaysrLFsz'@; put 'LDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX19LDM3OTM6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uY29tcGFyZVRpbWVzdGFtcHM9dm9pZCAwLE8uY29tcGFyZVRpbWVzdGFtcHM9ZnVuY3Rpb24oUix6KXty'@; put 'ZXR1cm4gei50aW1lc3RhbXAuZ2V0VGltZSgpLVIudGltZXN0YW1wLmdldFRpbWUoKX19LDI0MDI6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDUxMDgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmlzRm9ybWF0c1RhYmxlPU8uY29u'@; put 'dmVydFRvQ1NWPXZvaWQgMDt2YXIgSz1SKDY0NjcpLEk9Uig5Nzc4KTtPLmNvbnZlcnRUb0NTVj1mdW5jdGlvbihFLGope3ZhciBWO2lmKCFFW2pdKXRocm93KDAsSS5wcmVmaXhNZXNzYWdlKSgiTm8gdGFibGUgcHJvdmlkZWQgdG8gYmUgY29udmVydGVkIHRvIENTVi4iLCJFcnJvciB3aGls'@; put 'ZSBjb252ZXJ0aW5nIHRvIENTVi4gIik7dmFyIEI9RVtqXTtpZighQXJyYXkuaXNBcnJheShCKSlyZXR1cm4iIjt2YXIgWSxYPW51bGw9PT0oVj1FWyIkIi5jb25jYXQoaildKXx8dm9pZCAwPT09Vj92b2lkIDA6Vi5mb3JtYXRzLFU9W10scT0hMTtYJiYoVT1PYmplY3Qua2V5cyhYKS5tYXAo'@; put 'ZnVuY3Rpb24odGUpe3JldHVybiIiLmNvbmNhdCh0ZSwiOiIpLmNvbmNhdChYW3RlXSl9KSk7dmFyIGVlPU9iamVjdC5rZXlzKEJbMF0pO3JldHVybiBlZS5mb3JFYWNoKGZ1bmN0aW9uKHRlKXtpZighWHx8IU9iamVjdC5rZXlzKFgpLmluY2x1ZGVzKHRlKSl7dmFyIG9lPSExLHNlPSExO2lm'@; put 'KEIuZm9yRWFjaChmdW5jdGlvbihiKXtudWxsPT09Ylt0ZV18fCJudW1iZXIiPT10eXBlb2YgYlt0ZV0/b2U9ITA6InN0cmluZyI9PXR5cGVvZiBiW3RlXSYmKDAsSy5pc1NwZWNpYWxNaXNzaW5nKShiW3RlXSkmJihzZT0hMCl9KSxvZSYmc2UpVS5wdXNoKCIiLmNvbmNhdCh0ZSwiOmJlc3Qu'@; put 'IikpLFh8fChYPXt9KSxYW3RlXT0iYmVzdC4iO2Vsc2V7dmFyIGhlPW51bGwsdWU9ITEsY2U9LTEsRz1CLm1hcChmdW5jdGlvbihiLEQpe2lmKGJbdGVdfHwiIj09PWJbdGVdKXtoZT91ZXx8KGNlPSh1ZT0oIiI9PT1iW3RlXXx8InN0cmluZyI9PXR5cGVvZiBiW3RlXT8iY2hhcnMiOiJudW1i'@; put 'ZXIiKSE9PWhlKT9EKzE6LTEpOmhlPSIiPT09Ylt0ZV18fCJzdHJpbmciPT10eXBlb2YgYlt0ZV0/ImNoYXJzIjoibnVtYmVyIjt2YXIgTj12b2lkIDA7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiW3RlXSYmKE49ayhiW3RlXSkpLE59fSkuc29ydChmdW5jdGlvbihiLEQpe3JldHVybiBELWJ9'@; put 'KVswXTtHJiZHPjMyNzY1JiYocT0hMCksdWUmJnouZXJyb3IoIlJvdyAoIi5jb25jYXQoY2UsIiksIENvbHVtbiAoIikuY29uY2F0KHRlLCIpIGhhcyBtaXhlZCB0eXBlczogRVJST1IiKSksVS5wdXNoKCIiLmNvbmNhdCh0ZSwiOiIpLmNvbmNhdCgiY2hhcnMiPT09aGU/IiRjaGFyIjoiIiku'@; put 'Y29uY2F0KEd8fCgiY2hhcnMiPT09aGU/IjEiOiJiZXN0IiksIi4iKSl9fX0pLFgmJihVPVUuc29ydChmdW5jdGlvbih0ZSxvZSl7cmV0dXJuIGVlLmluZGV4T2YodGUucmVwbGFjZSgvOi4qLywiIikpLWVlLmluZGV4T2Yob2UucmVwbGFjZSgvOi4qLywiIikpfSkpLHE/IkVSUk9SOiBMQVJH'@; put 'RSBTVFJJTkcgTEVOR1RIIjooWT1CLm1hcChmdW5jdGlvbih0ZSl7cmV0dXJuIE9iamVjdC5rZXlzKHRlKS5tYXAoZnVuY3Rpb24ob2Usc2Upe3ZhciBoZSx1ZT10ZVtvZV07aWYoIm51bWJlciI9PXR5cGVvZiB1ZSlyZXR1cm4gdWU7aWYoaGU9bnVsbD09PXVlPyIiOnVlLFgmJiJiZXN0LiI9'@; put 'PT1YW29lXSl7aWYoaGUmJiEoMCxLLmlzU3BlY2lhbE1pc3NpbmcpKGhlKSl0aHJvdyBuZXcgRXJyb3IoIkEgU3BlY2lhbCBtaXNzaW5nIHZhbHVlIGNhbiBvbmx5IGJlIGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tICdBJyB0byAnWicsICdfJywgJy5bYS16XScsICcuXyciKTt2YXIgY2U9aGUu'@; put 'aW5jbHVkZXMoIi4iKT8iIjoiLiI7cmV0dXJuIiIuY29uY2F0KGNlKS5jb25jYXQoaGUudG9Mb3dlckNhc2UoKSl9cmV0dXJuIGhlPWhlLnJlcGxhY2UoLyIvZywnIiInKSwoaGU9JyInLmNvbmNhdChoZSwnIicpKS5zdWJzdHJpbmcoMSxoZS5sZW5ndGgtMSkuc2VhcmNoKC8oXHR8XG58XHJ8'@; put 'LHxcJ3xcIikvZ20pPDAmJihoZT1oZS5zdWJzdHJpbmcoMSxoZS5sZW5ndGgtMSkpLCIiPT09KGhlPWhlLnJlcGxhY2UoL1xyXG4vZ20sIlxuIikpJiZVW3NlXS5pbmNsdWRlcygiYmVzdCIpJiYoaGU9Ii4iKSxoZX0pLmpvaW4oIiwiKX0pLFUuam9pbigiLCIpLnJlcGxhY2UoLywvZywiICIp'@; put 'KyJcclxuIitZLmpvaW4oIlxyXG4iKSl9LE8uaXNGb3JtYXRzVGFibGU9ZnVuY3Rpb24oRSl7cmV0dXJuL15cJC4qLy50ZXN0KEUpfTt2YXIgaz1mdW5jdGlvbihFKXtmb3IodmFyIGo9RS5sZW5ndGgsVj1FLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgQj1FLmNoYXJDb2RlQXQoVik7Qj4xMjcm'@; put 'JkI8PTIwNDc/aisrOkI+MjA0NyYmQjw9NjU1MzUmJihqKz0yKSxCPj01NjMyMCYmQjw9NTczNDMmJlYtLX1yZXR1cm4gan19LDYxMTY6KE0sTyxSKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5jcmVhdGVBeGlvc0lu'@; put 'c3RhbmNlPXZvaWQgMDt2YXIgej1SKDk2NjkpO08uY3JlYXRlQXhpb3NJbnN0YW5jZT1mdW5jdGlvbihLLEkpe3JldHVybiB6LmRlZmF1bHQuY3JlYXRlKHtiYXNlVVJMOkssaHR0cHNBZ2VudDpJfSl9fSw5ODI1OihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShP'@; put 'LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmRlbGF5PXZvaWQgMCxPLmRlbGF5PWZ1bmN0aW9uKFIpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih6KXtyZXR1cm4gc2V0VGltZW91dCh6LFIpfSl9fSw5OTA6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej1SKDQxNTUp'@; put 'LEs9Uig1MTA4KSxJPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihqLFYsQixZKXtyZXR1cm4gbmV3KEJ8fChCPVByb21pc2UpKShmdW5jdGlvbihYLFUpe2Z1bmN0aW9uIHEob2Upe3RyeXt0ZShZLm5leHQob2UpKX1jYXRjaChzZSl7VShzZSl9fWZ1bmN0aW9uIGVlKG9lKXt0cnl7'@; put 'dGUoWS50aHJvdyhvZSkpfWNhdGNoKHNlKXtVKHNlKX19ZnVuY3Rpb24gdGUob2Upe3ZhciBzZTtvZS5kb25lP1gob2UudmFsdWUpOihzZT1vZS52YWx1ZSxzZSBpbnN0YW5jZW9mIEI/c2U6bmV3IEIoZnVuY3Rpb24oaGUpe2hlKHNlKX0pKS50aGVuKHEsZWUpfXRlKChZPVkuYXBwbHkoaixW'@; put 'fHxbXSkpLm5leHQoKSl9KX0saz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihqLFYpe3ZhciBCLFksWCxVLHE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmWFswXSl0aHJvdyBYWzFdO3JldHVybiBYWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIFU9e25leHQ6ZWUo'@; put 'MCksdGhyb3c6ZWUoMSkscmV0dXJuOmVlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoVVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxVO2Z1bmN0aW9uIGVlKHRlKXtyZXR1cm4gZnVuY3Rpb24ob2Upe3JldHVybiBmdW5jdGlvbihzZSl7aWYoQil0'@; put 'aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtxOyl0cnl7aWYoQj0xLFkmJihYPTImc2VbMF0/WS5yZXR1cm46c2VbMF0/WS50aHJvd3x8KChYPVkucmV0dXJuKSYmWC5jYWxsKFkpLDApOlkubmV4dCkmJiEoWD1YLmNhbGwoWSxzZVsx'@; put 'XSkpLmRvbmUpcmV0dXJuIFg7c3dpdGNoKFk9MCxYJiYoc2U9WzImc2VbMF0sWC52YWx1ZV0pLHNlWzBdKXtjYXNlIDA6Y2FzZSAxOlg9c2U7YnJlYWs7Y2FzZSA0OnJldHVybiBxLmxhYmVsKysse3ZhbHVlOnNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpxLmxhYmVsKyssWT1zZVsxXSxzZT1bMF07'@; put 'Y29udGludWU7Y2FzZSA3OnNlPXEub3BzLnBvcCgpLHEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKFg9KFg9cS50cnlzKS5sZW5ndGg+MCYmWFtYLmxlbmd0aC0xXSl8fDYhPT1zZVswXSYmMiE9PXNlWzBdKSl7cT0wO2NvbnRpbnVlfWlmKDM9PT1zZVswXSYmKCFYfHxzZVsx'@; put 'XT5YWzBdJiZzZVsxXTxYWzNdKSl7cS5sYWJlbD1zZVsxXTticmVha31pZig2PT09c2VbMF0mJnEubGFiZWw8WFsxXSl7cS5sYWJlbD1YWzFdLFg9c2U7YnJlYWt9aWYoWCYmcS5sYWJlbDxYWzJdKXtxLmxhYmVsPVhbMl0scS5vcHMucHVzaChzZSk7YnJlYWt9WFsyXSYmcS5vcHMucG9wKCks'@; put 'cS50cnlzLnBvcCgpO2NvbnRpbnVlfXNlPVYuY2FsbChqLHEpfWNhdGNoKGhlKXtzZT1bNixoZV0sWT0wfWZpbmFsbHl7Qj1YPTB9aWYoNSZzZVswXSl0aHJvdyBzZVsxXTtyZXR1cm57dmFsdWU6c2VbMF0/c2VbMV06dm9pZCAwLGRvbmU6ITB9fShbdGUsb2VdKX19fTtPYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5mZXRjaExvZz1PLmZldGNoTG9nQnlDaHVua3M9dm9pZCAwO3ZhciBFPVIoOTc3OCk7Ty5mZXRjaExvZ0J5Q2h1bmtzPWZ1bmN0aW9uKGosVixCLFkpe3JldHVybiBJKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIGsodGhpcyxmdW5jdGlvbihYKXtzd2l0Y2goWC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LCgwLE8uZmV0Y2hMb2cpKGosVixCLDAsWSldO2Nhc2UgMTpyZXR1cm5bMixYLnNlbnQoKV19fSl9KX0sTy5mZXRjaExvZz1mdW5jdGlvbihqLFYsQixZLFgpe3JldHVybiBJKHZvaWQgMCx2'@; put 'b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFUscSxlZSx0ZSxvZTtyZXR1cm4gayh0aGlzLGZ1bmN0aW9uKHNlKXtzd2l0Y2goc2UubGFiZWwpe2Nhc2UgMDpVPXoubG9nZ2VyfHxLLHE9IiIsZWU9WDwxZTQ/WDoxZTQsc2UubGFiZWw9MTtjYXNlIDE6cmV0dXJuIFUuaW5mbygiRmV0Y2hp'@; put 'bmcgbG9ncyBmcm9tIGxpbmUgbm86ICIuY29uY2F0KFkrMSwiIHRvICIpLmNvbmNhdChZK2VlLCIgb2YgIikuY29uY2F0KFgsIi4iKSksWzQsai5nZXQoIiIuY29uY2F0KEIsIj9zdGFydD0iKS5jb25jYXQoWSwiJmxpbWl0PSIpLmNvbmNhdChlZSksVikudGhlbihmdW5jdGlvbihoZSl7cmV0'@; put 'dXJuIGhlLnJlc3VsdH0pLmNhdGNoKGZ1bmN0aW9uKGhlKXt0aHJvdygwLEUucHJlZml4TWVzc2FnZSkoaGUsIkVycm9yIHdoaWxlIGdldHRpbmcgbG9nLiAiKX0pXTtjYXNlIDI6aWYoMD09PSh0ZT1zZS5zZW50KCkpLml0ZW1zLmxlbmd0aClyZXR1cm5bMyw0XTtvZT10ZS5pdGVtcy5tYXAo'@; put 'ZnVuY3Rpb24oaGUpe3JldHVybiBoZS5saW5lfSkuam9pbigiXG4iKSxxKz1vZSxZKz1lZSxzZS5sYWJlbD0zO2Nhc2UgMzppZihZPFgpcmV0dXJuWzMsMV07c2UubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzIscV19fSl9KX19LDcxNDooTSxPLFIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZp'@; put 'bmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmZvcm1hdERhdGFGb3JSZXF1ZXN0PXZvaWQgMDt2YXIgej1SKDI0MDIpLEs9Uig0Nzk5KTtPLmZvcm1hdERhdGFGb3JSZXF1ZXN0PWZ1bmN0aW9uKEkpe3ZhciBrPVtdLEU9MCxqPXt9O2Zvcih2YXIgViBpbiBJKWlmKCEo'@; put 'MCx6LmlzRm9ybWF0c1RhYmxlKShWKXx8IU9iamVjdC5rZXlzKEkpLmluY2x1ZGVzKFYucmVwbGFjZSgvXlwkLywiIikpKXtFKyssKDAsei5pc0Zvcm1hdHNUYWJsZSkoVil8fGsucHVzaChWKTt2YXIgQj0oMCx6LmNvbnZlcnRUb0NTVikoSSxWKTtpZigiRVJST1I6IExBUkdFIFNUUklORyBM'@; put 'RU5HVEgiPT09Qil0aHJvdyBuZXcgRXJyb3IoIlRoZSBtYXggbGVuZ3RoIG9mIGEgc3RyaW5nIHZhbHVlIGluIFNBU2pzIGlzIDMyNzY1IGNoYXJhY3RlcnMuIik7aWYoQi5sZW5ndGg+MTZlMyl7dmFyIFk9KDAsSy5zcGxpdENodW5rcykoQik7alsic2FzanMiLmNvbmNhdChFLCJkYXRhMCIp'@; put 'XT1ZLmxlbmd0aCxZLmZvckVhY2goZnVuY3Rpb24oWCxVKXtqWyJzYXNqcyIuY29uY2F0KEUsImRhdGEiKS5jb25jYXQoVSsxKV09WH0pfWVsc2Ugalsic2FzanMiLmNvbmNhdChFLCJkYXRhIildPUJ9cmV0dXJuIGouc2FzanNfdGFibGVzPWsuam9pbigiICIpLGp9fSw4NDU4OihNLE8sUik9'@; put 'PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2V0Rm9ybURhdGE9dm9pZCAwO3ZhciB6PVIoNTkyOCksSz1SKDYyMzApO08uZ2V0Rm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4oMCx6LmlzTm9kZSkoKT9uZXcgSzpuZXcg'@; put 'Rm9ybURhdGF9fSwxODg0OihNLE8sUik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uZ2V0VmFsaWRKc29uPXZvaWQgMDt2YXIgej1SKDEzOTUpO08uZ2V0VmFsaWRKc29uPWZ1bmN0aW9uKEspe3RyeXtpZihudWxsPT1L'@; put 'KXRocm93IG5ldyB6LkludmFsaWRKc29uRXJyb3I7aWYoQXJyYXkuaXNBcnJheShLKSl0aHJvdyBuZXcgei5Kc29uUGFyc2VBcnJheUVycm9yO3JldHVybiJvYmplY3QiPT10eXBlb2YgSz9LOiIiPT09Sz97fTpKU09OLnBhcnNlKEspfWNhdGNoKEkpe3Rocm93IEkgaW5zdGFuY2VvZiB6Lkpz'@; put 'b25QYXJzZUFycmF5RXJyb3I/STpuZXcgei5JbnZhbGlkSnNvbkVycm9yfX19LDU5Mjg6ZnVuY3Rpb24oTSxPLFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgej10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oSSxrLEUsail7dm9pZCAwPT09aiYmKGo9RSk7'@; put 'dmFyIFY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLEUpO1YmJiEoImdldCJpbiBWPyFrLl9fZXNNb2R1bGU6Vi53cml0YWJsZXx8Vi5jb25maWd1cmFibGUpfHwoVj17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga1tFXX19KSxPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkoSSxqLFYpfTpmdW5jdGlvbihJLGssRSxqKXt2b2lkIDA9PT1qJiYoaj1FKSxJW2pdPWtbRV19KSxLPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihJLGspe2Zvcih2YXIgRSBpbiBJKSJkZWZhdWx0Ij09PUV8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHku'@; put 'Y2FsbChrLEUpfHx6KGssSSxFKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEsoUigzMzAyKSxPKSxLKFIoNzkyMiksTyksSyhSKDM3OTMpLE8pLEsoUigyNDAyKSxPKSxLKFIoNjExNiksTyksSyhSKDk4MjUpLE8pLEsoUig5OTApLE8pLEsoUigx'@; put 'ODg0KSxPKSxLKFIoNDI0MyksTyksSyhSKDI1NyksTyksSyhSKDIpLE8pLEsoUigyNjE1KSxPKSxLKFIoMjkyMCksTyksSyhSKDI0MjIpLE8pLEsoUigzMSksTyksSyhSKDY1MTUpLE8pLEsoUig2NDE2KSxPKSxLKFIoMjgxMyksTyksSyhSKDk4OTYpLE8pLEsoUig0Nzk5KSxPKSxLKFIoNDUx'@; put 'NiksTyksSyhSKDg0NTgpLE8pfSw0MjQzOihNLE8sUik9PnsidXNlIHN0cmljdCI7dmFyIHo9Uig0MTU1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5pc05vZGU9dm9pZCAwLE8uaXNOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXom'@; put 'Jm51bGwhPXoudmVyc2lvbnMmJm51bGwhPXoudmVyc2lvbnMubm9kZX19LDI1NzooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5pc1JlbGF0aXZlUGF0aD12b2lkIDAsTy5pc1JlbGF0aXZlUGF0aD1mdW5jdGlv'@; put 'bihSKXtyZXR1cm4hIVImJiFSLnN0YXJ0c1dpdGgoIi8iKX19LDI6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uaXNVcmk9dm9pZCAwLE8uaXNVcmk9ZnVuY3Rpb24oUil7cmV0dXJuL15cL2ZvbGRlcnNcL2Zv'@; put 'bGRlcnNcLy8udGVzdChSKX19LDI2MTU6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uaXNVcmw9dm9pZCAwLE8uaXNVcmw9ZnVuY3Rpb24oUil7dHJ5e3ZhciB6PW5ldyBVUkwoUik7aWYoIVsiaHR0cDoiLCJo'@; put 'dHRwczoiXS5pbmNsdWRlcyh6LnByb3RvY29sKSlyZXR1cm4hMX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH19LDEyMTA6ZnVuY3Rpb24oTSxPKXsidXNlIHN0cmljdCI7dmFyIFIsVix6PXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihWLEIsWSxYKXtyZXR1cm4gbmV3KFl8fChZPVBy'@; put 'b21pc2UpKShmdW5jdGlvbihVLHEpe2Z1bmN0aW9uIGVlKHNlKXt0cnl7b2UoWC5uZXh0KHNlKSl9Y2F0Y2goaGUpe3EoaGUpfX1mdW5jdGlvbiB0ZShzZSl7dHJ5e29lKFgudGhyb3coc2UpKX1jYXRjaChoZSl7cShoZSl9fWZ1bmN0aW9uIG9lKHNlKXt2YXIgaGU7c2UuZG9uZT9VKHNlLnZh'@; put 'bHVlKTooaGU9c2UudmFsdWUsaGUgaW5zdGFuY2VvZiBZP2hlOm5ldyBZKGZ1bmN0aW9uKHVlKXt1ZShoZSl9KSkudGhlbihlZSx0ZSl9b2UoKFg9WC5hcHBseShWLEJ8fFtdKSkubmV4dCgpKX0pfSxLPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFYsQil7dmFyIFksWCxVLHEs'@; put 'ZWU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmVVswXSl0aHJvdyBVWzFdO3JldHVybiBVWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHE9e25leHQ6dGUoMCksdGhyb3c6dGUoMSkscmV0dXJuOnRlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYocVtTeW1ib2wuaXRl'@; put 'cmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxxO2Z1bmN0aW9uIHRlKG9lKXtyZXR1cm4gZnVuY3Rpb24oc2Upe3JldHVybiBmdW5jdGlvbihoZSl7aWYoWSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtlZTspdHJ5e2lm'@; put 'KFk9MSxYJiYoVT0yJmhlWzBdP1gucmV0dXJuOmhlWzBdP1gudGhyb3d8fCgoVT1YLnJldHVybikmJlUuY2FsbChYKSwwKTpYLm5leHQpJiYhKFU9VS5jYWxsKFgsaGVbMV0pKS5kb25lKXJldHVybiBVO3N3aXRjaChYPTAsVSYmKGhlPVsyJmhlWzBdLFUudmFsdWVdKSxoZVswXSl7Y2FzZSAw'@; put 'OmNhc2UgMTpVPWhlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gZWUubGFiZWwrKyx7dmFsdWU6aGVbMV0sZG9uZTohMX07Y2FzZSA1OmVlLmxhYmVsKyssWD1oZVsxXSxoZT1bMF07Y29udGludWU7Y2FzZSA3OmhlPWVlLm9wcy5wb3AoKSxlZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYo'@; put 'ISgoVT0oVT1lZS50cnlzKS5sZW5ndGg+MCYmVVtVLmxlbmd0aC0xXSl8fDYhPT1oZVswXSYmMiE9PWhlWzBdKSl7ZWU9MDtjb250aW51ZX1pZigzPT09aGVbMF0mJighVXx8aGVbMV0+VVswXSYmaGVbMV08VVszXSkpe2VlLmxhYmVsPWhlWzFdO2JyZWFrfWlmKDY9PT1oZVswXSYmZWUubGFi'@; put 'ZWw8VVsxXSl7ZWUubGFiZWw9VVsxXSxVPWhlO2JyZWFrfWlmKFUmJmVlLmxhYmVsPFVbMl0pe2VlLmxhYmVsPVVbMl0sZWUub3BzLnB1c2goaGUpO2JyZWFrfVVbMl0mJmVlLm9wcy5wb3AoKSxlZS50cnlzLnBvcCgpO2NvbnRpbnVlfWhlPUIuY2FsbChWLGVlKX1jYXRjaCh1ZSl7aGU9WzYs'@; put 'dWVdLFg9MH1maW5hbGx5e1k9VT0wfWlmKDUmaGVbMF0pdGhyb3cgaGVbMV07cmV0dXJue3ZhbHVlOmhlWzBdP2hlWzFdOnZvaWQgMCxkb25lOiEwfX0oW29lLHNlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8ub3BlbkxvZ2luUHJvbXB0'@; put 'PXZvaWQgMCwoVj1SfHwoUj17fSkpLnN0eWxlcz0ic2FzanNBZGFwdGVyU3R5bGVzIixWLm92ZXJsYXk9InNhc2pzQWRhcHRlckxvZ2luUHJvbXB0QkciLFYuZGlhbG9nPSJzYXNqc0FkYXB0ZXJMb2dpblByb21wdCI7dmFyIEk9InNhc2pzLWFkYXB0ZXIiLGs9e3BvcFVwOiIiLmNvbmNhdChJ'@; put 'LCJwb3BVcCIpLHBvcFVwQkc6IiIuY29uY2F0KEksInBvcFVwQkciKX07Ty5vcGVuTG9naW5Qcm9tcHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oVil7cmV0dXJuIHoodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgQixZLFgsVSxxLGVlLHRlLG9l'@; put 'O3JldHVybiBLKHRoaXMsZnVuY3Rpb24oc2Upe3JldHVybihCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikpLmlkPVIuc3R5bGVzLEIuaW5uZXJUZXh0PWosKFk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlkPVIub3ZlcmxheSxZLmNsYXNzTGlzdC5hZGQoay5wb3BV'@; put 'cEJHKSwoWD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaWQ9Ui5kaWFsb2csWC5jbGFzc0xpc3QuYWRkKGsucG9wVXApLChVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIikpLmlubmVyVGV4dD0iU2Vzc2lvbiBFeHBpcmVkISIsWC5hcHBlbmRDaGlsZChVKSxxPWRvY3VtZW50'@; put 'LmNyZWF0ZUVsZW1lbnQoImRpdiIpLChlZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpLmlubmVyVGV4dD0iWW91IG5lZWQgdG8gcmVsb2dpbiwgY2xpY2sgT0sgdG8gbG9naW4uIixxLmFwcGVuZENoaWxkKGVlKSxYLmFwcGVuZENoaWxkKHEpLCh0ZT1kb2N1bWVudC5jcmVhdGVF'@; put 'bGVtZW50KCJidXR0b24iKSkuY2xhc3NMaXN0LmFkZCgiY2FuY2VsIiksdGUuaW5uZXJUZXh0PSJDYW5jZWwiLHRlLm9uY2xpY2s9ZnVuY3Rpb24oKXtFKCksVighMSl9LFguYXBwZW5kQ2hpbGQodGUpLChvZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSkuY2xhc3NMaXN0LmFk'@; put 'ZCgiY29uZmlybSIpLG9lLmlubmVyVGV4dD0iT2siLG9lLm9uY2xpY2s9ZnVuY3Rpb24oKXtFKCksVighMCl9LFguYXBwZW5kQ2hpbGQob2UpLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChCKSxkb2N1bWVudC5ib2R5LmFw'@; put 'cGVuZENoaWxkKFkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoWCksWzJdfSl9KX0pfTt2YXIgRT1mdW5jdGlvbigpe09iamVjdC52YWx1ZXMoUikuZm9yRWFjaChmdW5jdGlvbihWKXt2YXIgQixZPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFYpO251bGw9PT0oQj1ZPy5wYXJlbnROb2Rl'@; put 'KXx8dm9pZCAwPT09Qnx8Qi5yZW1vdmVDaGlsZChZKX0pLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImF1dG8ifSxqPSJcbi4iLmNvbmNhdChrLnBvcFVwQkcsIiAsXG4uIikuY29uY2F0KGsucG9wVXAsIiB7XG4gIHotaW5kZXg6IDEwMDAwO1xufVxuLiIpLmNvbmNhdChrLnBvcFVw'@; put 'LCIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA0MCU7XG4gIGxlZnQ6IDUwJTtc'@; put 'biAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogJ1BUIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB6LWluZGV4OiA5OTk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6'@; put 'IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG4uIikuY29uY2F0KGsu'@; put 'cG9wVXAsIiA+IGgxIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgZm9udC1zaXplOiAxLjJl'@; put 'bTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIGJvcmRlci13aWR0aDogNXB4O1xuICBib3JkZXItY29sb3I6IGJsYWNr'@; put 'O1xufVxuLiIpLmNvbmNhdChrLnBvcFVwLCIgPiBkaXYge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLTEwOHB4KTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBi'@; put 'b3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDUlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNjY2M7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBub25lIHNvbGlkIG5vbmU7'@; put 'XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLiIpLmNvbmNhdChrLnBvcFVwLCIgPiBkaXYgPiBzcGFuIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6'@; put 'IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDEwOHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4uIikuY29uY2F0KGsucG9wVXAsIiAuY2FuY2VsIHtcbiAg'@; put 'ZmxvYXQ6IGxlZnQ7XG59XG4uIikuY29uY2F0KGsucG9wVXAsIiAuY29uZmlybSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi4iKS5jb25jYXQoay5wb3BVcCwiID4gYnV0dG9uIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xu'@; put 'ICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDUwJTtcbiAgYm9yZGVyOiAxcHggbm9uZSAjY2NjO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtc'@; put 'biAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEsIDEsIDEsIDAuMik7XG59XG4uIikuY29uY2F0KGsucG9wVXAsIiA+IGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi4iKS5jb25jYXQoay5wb3BVcEJHLCIge1xuICBkaXNw'@; put 'bGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3BhY2l0eTogMC45NTtcbiAgei1pbmRleDogNTA7XG4gIGJhY2tncm91bmQt'@; put 'aW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjMDM3OGNkLCAjMDEyMDM2KTtcbn1cbiIpfSwyOTIwOihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLm5lZWRzUmV0cnk9dm9pZCAwLE8ubmVlZHNSZXRyeT1mdW5jdGlv'@; put 'bihSKXtyZXR1cm4hIVImJihSLmluY2x1ZGVzKCciZXJyb3JDb2RlIjo0MDMnKSYmUi5pbmNsdWRlcygiX2NzcmYiKSYmUi5pbmNsdWRlcygiWC1DU1JGLVRPS0VOIil8fFIuaW5jbHVkZXMoJyJzdGF0dXMiOjQwMycpJiZSLmluY2x1ZGVzKCciZXJyb3IiOiJGb3JiaWRkZW4iJyl8fFIuaW5j'@; put 'bHVkZXMoJyJzdGF0dXMiOjQ0OScpJiZSLmluY2x1ZGVzKCJBdXRoZW50aWNhdGlvbiBzdWNjZXNzLCByZXRyeSBvcmlnaW5hbCByZXF1ZXN0IikpfX0sMjQyMjooTSxPKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTy5w'@; put 'YXJzZUdlbmVyYXRlZENvZGU9dm9pZCAwLE8ucGFyc2VHZW5lcmF0ZWRDb2RlPWZ1bmN0aW9uKFIpe3JldHVybiBSLnNwbGl0KCJcbiIpLmZpbHRlcihmdW5jdGlvbih6KXtyZXR1cm4gei50cmltKCkuc3RhcnRzV2l0aCgiTVBSSU5UIil9KS5qb2luKCJcclxuIil9fSwzMTooTSxPLFIpPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciB6PVIoNTEwOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8ucGFyc2VTYXNWaXlhTG9nPXZvaWQgMCxPLnBhcnNlU2FzVml5YUxvZz1mdW5jdGlvbihLKXt2YXIgSTt0cnl7ST1LLml0ZW1zP0suaXRlbXMubWFwKGZ1'@; put 'bmN0aW9uKGspe3JldHVybiBrLmxpbmV9KS5qb2luKCJcbiIpOkpTT04uc3RyaW5naWZ5KEspfWNhdGNoKGspe3ouZXJyb3IoIkFuIGVycm9yIGhhcyBvY2N1cnJlZCB3aGlsZSBwYXJzaW5nIHRoZSBsb2cgcmVzcG9uc2UiLGspLEk9S31yZXR1cm4gSX19LDY1MTU6KE0sTyk9PnsidXNlIHN0'@; put 'cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8ucGFyc2VTb3VyY2VDb2RlPXZvaWQgMCxPLnBhcnNlU291cmNlQ29kZT1mdW5jdGlvbihSKXtyZXR1cm4gUi5zcGxpdCgiXG4iKS5maWx0ZXIoZnVuY3Rpb24oeil7cmV0dXJuIHoudHJpbSgp'@; put 'LnN1YnN0cmluZygwLDEwKS50cmltU3RhcnQoKS5tYXRjaCgvXlxkLyl9KS5qb2luKCJcclxuIil9fSw2NDE2OmZ1bmN0aW9uKE0sTyxSKXsidXNlIHN0cmljdCI7dmFyIHo9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGssRSxqLFYpe3JldHVybiBuZXcoanx8KGo9UHJvbWlzZSkp'@; put 'KGZ1bmN0aW9uKEIsWSl7ZnVuY3Rpb24gWChlZSl7dHJ5e3EoVi5uZXh0KGVlKSl9Y2F0Y2godGUpe1kodGUpfX1mdW5jdGlvbiBVKGVlKXt0cnl7cShWLnRocm93KGVlKSl9Y2F0Y2godGUpe1kodGUpfX1mdW5jdGlvbiBxKGVlKXt2YXIgdGU7ZWUuZG9uZT9CKGVlLnZhbHVlKToodGU9ZWUu'@; put 'dmFsdWUsdGUgaW5zdGFuY2VvZiBqP3RlOm5ldyBqKGZ1bmN0aW9uKG9lKXtvZSh0ZSl9KSkudGhlbihYLFUpfXEoKFY9Vi5hcHBseShrLEV8fFtdKSkubmV4dCgpKX0pfSxLPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGssRSl7dmFyIGosVixCLFksWD17bGFiZWw6MCxzZW50'@; put 'OmZ1bmN0aW9uKCl7aWYoMSZCWzBdKXRocm93IEJbMV07cmV0dXJuIEJbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gWT17bmV4dDpVKDApLHRocm93OlUoMSkscmV0dXJuOlUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihZW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gdGhpc30pLFk7ZnVuY3Rpb24gVShxKXtyZXR1cm4gZnVuY3Rpb24oZWUpe3JldHVybiBmdW5jdGlvbih0ZSl7aWYoail0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtYOyl0cnl7aWYoaj0xLFYmJihCPTImdGVbMF0/Vi5y'@; put 'ZXR1cm46dGVbMF0/Vi50aHJvd3x8KChCPVYucmV0dXJuKSYmQi5jYWxsKFYpLDApOlYubmV4dCkmJiEoQj1CLmNhbGwoVix0ZVsxXSkpLmRvbmUpcmV0dXJuIEI7c3dpdGNoKFY9MCxCJiYodGU9WzImdGVbMF0sQi52YWx1ZV0pLHRlWzBdKXtjYXNlIDA6Y2FzZSAxOkI9dGU7YnJlYWs7Y2Fz'@; put 'ZSA0OnJldHVybiBYLmxhYmVsKysse3ZhbHVlOnRlWzFdLGRvbmU6ITF9O2Nhc2UgNTpYLmxhYmVsKyssVj10ZVsxXSx0ZT1bMF07Y29udGludWU7Y2FzZSA3OnRlPVgub3BzLnBvcCgpLFgudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEI9KEI9WC50cnlzKS5sZW5ndGg+MCYm'@; put 'QltCLmxlbmd0aC0xXSl8fDYhPT10ZVswXSYmMiE9PXRlWzBdKSl7WD0wO2NvbnRpbnVlfWlmKDM9PT10ZVswXSYmKCFCfHx0ZVsxXT5CWzBdJiZ0ZVsxXTxCWzNdKSl7WC5sYWJlbD10ZVsxXTticmVha31pZig2PT09dGVbMF0mJlgubGFiZWw8QlsxXSl7WC5sYWJlbD1CWzFdLEI9dGU7YnJl'@; put 'YWt9aWYoQiYmWC5sYWJlbDxCWzJdKXtYLmxhYmVsPUJbMl0sWC5vcHMucHVzaCh0ZSk7YnJlYWt9QlsyXSYmWC5vcHMucG9wKCksWC50cnlzLnBvcCgpO2NvbnRpbnVlfXRlPUUuY2FsbChrLFgpfWNhdGNoKG9lKXt0ZT1bNixvZV0sVj0wfWZpbmFsbHl7aj1CPTB9aWYoNSZ0ZVswXSl0aHJv'@; put 'dyB0ZVsxXTtyZXR1cm57dmFsdWU6dGVbMF0/dGVbMV06dm9pZCAwLGRvbmU6ITB9fShbcSxlZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2U9dm9pZCAwO3ZhciBJPVIoNTkyOCk7Ty5wYXJz'@; put 'ZVNhc1ZpeWFEZWJ1Z1Jlc3BvbnNlPWZ1bmN0aW9uKGssRSxqKXtyZXR1cm4geih2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBWLEI7cmV0dXJuIEsodGhpcyxmdW5jdGlvbihZKXtpZihWPWsuc3BsaXQoLzxpZnJhbWUgc3R5bGU9IndpZHRoOiA5OSU7IGhlaWdodDogNTAw'@; put 'cHgiIHNyYz0ifDxpZnJhbWUgc3R5bGU9IndpZHRoOiA5OSU7IGhlaWdodDogNTAwcHg7IGJhY2tncm91bmQtY29sb3I6Q2FudmFzOyIgc3JjPS8pWzFdLCEoQj1WP1Yuc3BsaXQoLyI+PFwvaWZyYW1lPnw+PFwvaWZyYW1lPi8pWzBdOm51bGwpKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRv'@; put 'IGZpbmQgd2Vib3V0IGZpbGUgVVJMLiIpO3JldHVyblsyLEUuZ2V0KGorQix2b2lkIDAsInRleHQvcGxhaW4iKS50aGVuKGZ1bmN0aW9uKFgpe3JldHVybigwLEkuZ2V0VmFsaWRKc29uKShYLnJlc3VsdCl9KV19KX0pfX0sMjgxMzooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNTEw'@; put 'OCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8ucGFyc2VXZWJvdXRSZXNwb25zZT12b2lkIDA7dmFyIEs9UigxMzk1KTtPLnBhcnNlV2Vib3V0UmVzcG9uc2U9ZnVuY3Rpb24oSSxrKXt2YXIgRT0iIjtpZihJLmluY2x1ZGVzKCI+PndlYm91dEJF'@; put 'R0lOPDwiKSl0cnl7RT1JLnNwbGl0KCI+PndlYm91dEJFR0lOPDwiKVsxXS5zcGxpdCgiPj53ZWJvdXRFTkQ8PCIpWzBdfWNhdGNoKGope2lmKGspdGhyb3cgbmV3IEsuV2Vib3V0UmVzcG9uc2VFcnJvcihrKTtFPSIiLHouZXJyb3Ioail9cmV0dXJuIEV9fSwxMTcwOihNLE8pPT57InVzZSBz'@; put 'dHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLmV4dHJhY3RVc2VyTG9uZ05hbWVTYXM5PXZvaWQgMDt2YXIgUj1bIkxvZyBPZmYiXTtPLmV4dHJhY3RVc2VyTG9uZ05hbWVTYXM5PWZ1bmN0aW9uKHope3ZhciBLPXo/Lm1hdGNoKC8idGl0'@; put 'bGUiOlxzPyIuKj8iLyksST1LPy5bMF0uc3BsaXQoIjoiKVsxXS50cmltKCksaz1JPy5pbmRleE9mKCIgIik7cmV0dXJuIEk/KFIubWFwKGZ1bmN0aW9uKEUpe3ZhciBqPUk/LmluZGV4T2YoRSl8fC0xO2o+LTEmJihrPWorRS5sZW5ndGgpfSksSS5zbGljZShrLC0xKS50cmltKCkpOiJ1bmtu'@; put 'b3duIn19LDk4OTY6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE8uc2VyaWFsaXplPXZvaWQgMCxPLnNlcmlhbGl6ZT1mdW5jdGlvbihSKXt2YXIgej1bXTtmb3IodmFyIEsgaW4gUilpZihSLmhhc093blByb3Bl'@; put 'cnR5KEspKWlmKFJbS11pbnN0YW5jZW9mIEFycmF5KWZvcih2YXIgST0wLGs9UltLXS5sZW5ndGg7STxrO0krKyl6LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KEspKyI9IitlbmNvZGVVUklDb21wb25lbnQoUltLXVtJXSkpO2Vsc2Ugei5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChLKSsiPSIr'@; put 'ZW5jb2RlVVJJQ29tcG9uZW50KFJbS10pKTtyZXR1cm4gei5qb2luKCImIil9fSw0Nzk5OihNLE8pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPLnNwbGl0Q2h1bmtzPXZvaWQgMCxPLnNwbGl0Q2h1bmtzPWZ1bmN0aW9u'@; put 'KFIpe2Zvcih2YXIgej0xNmUzLEs9TWF0aC5jZWlsKFIubGVuZ3RoL3opLEk9bmV3IEFycmF5KEspLGs9MCxFPTA7azxLOysrayxFKz16KUlba109Ui5zdWJzdHIoRSx6KTtyZXR1cm4gSX19LDQ1MTY6KE0sTyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNN'@; put 'b2R1bGUiLHt2YWx1ZTohMH0pLE8udmFsaWRhdGVJbnB1dD1PLklOVkFMSURfVEFCTEVfU1RSVUNUVVJFPU8uTU9SRV9JTkZPPXZvaWQgMCxPLk1PUkVfSU5GTz0iRm9yIG1vcmUgaW5mbyBzZWUgaHR0cHM6Ly9zYXNqcy5pby9zYXNqcy1hZGFwdGVyLyNyZXF1ZXN0LXJlc3BvbnNlIixPLklO'@; put 'VkFMSURfVEFCTEVfU1RSVUNUVVJFPSJQYXJhbWV0ZXIgZGF0YSBjb250YWlucyBpbnZhbGlkIHRhYmxlIHN0cnVjdHVyZS4gIi5jb25jYXQoTy5NT1JFX0lORk8pLE8udmFsaWRhdGVJbnB1dD1mdW5jdGlvbih6KXtpZihudWxsPT09eilyZXR1cm57c3RhdHVzOiEwLG1zZzoiIn07aWYoIm9i'@; put 'amVjdCIhPT1SKHopKXJldHVybntzdGF0dXM6ITEsbXNnOk8uSU5WQUxJRF9UQUJMRV9TVFJVQ1RVUkV9O3ZhciBLPWZ1bmN0aW9uKFgpe3JldHVybiBYLm1hdGNoKC9eXCQuKi8pJiZPYmplY3Qua2V5cyh6KS5pbmNsdWRlcyhYLnJlcGxhY2UoL15cJC8sIiIpKX07Zm9yKHZhciBJIGluIHop'@; put 'e2lmKCFJLm1hdGNoKC9eW2EtekEtWl9dLykmJiFLKEkpKXJldHVybntzdGF0dXM6ITEsbXNnOiJGaXJzdCBsZXR0ZXIgb2YgdGFibGUgc2hvdWxkIGJlIGFscGhhYmV0IG9yIHVuZGVyc2NvcmUuIn07aWYoIUkubWF0Y2goL15bYS16QS1aX11bYS16QS1aMC05X10qJC8pJiYhSyhJKSlyZXR1'@; put 'cm57c3RhdHVzOiExLG1zZzoiVGFibGUgbmFtZSBzaG91bGQgYmUgYWxwaGFudW1lcmljLiJ9O2lmKEkubGVuZ3RoPjMyKXJldHVybntzdGF0dXM6ITEsbXNnOiJNYXhpbXVtIGxlbmd0aCBmb3IgdGFibGUgbmFtZSBjb3VsZCBiZSAzMiBjaGFyYWN0ZXJzLiJ9O2lmKCJBcnJheSIhPT1SKHpb'@; put 'SV0pJiYhSyhJKSlyZXR1cm57c3RhdHVzOiExLG1zZzpPLklOVkFMSURfVEFCTEVfU1RSVUNUVVJFfTtmb3IodmFyIGs9MCxFPXpbSV07azxFLmxlbmd0aDtrKyspe3ZhciBqPUVba107aWYoIm9iamVjdCIhPT1SKGopKXJldHVybntzdGF0dXM6ITEsbXNnOiJUYWJsZSAiLmNvbmNhdChJLCIg'@; put 'Y29udGFpbnMgaW52YWxpZCBzdHJ1Y3R1cmUuICIpLmNvbmNhdChPLk1PUkVfSU5GTyl9O2Zvcih2YXIgVj0wLEI9T2JqZWN0LmtleXMoaik7VjxCLmxlbmd0aDtWKyspe3ZhciBZPUJbVl07aWYodm9pZCAwPT09altZXSlyZXR1cm57c3RhdHVzOiExLG1zZzoiQSByb3cgaW4gdGFibGUgIi5j'@; put 'b25jYXQoSSwiIGNvbnRhaW5zIGludmFsaWQgdmFsdWUuIENhbid0IGFzc2lnbiB1bmRlZmluZWQgdG8gIikuY29uY2F0KFksIi4iKX19fX1yZXR1cm57c3RhdHVzOiEwLG1zZzoiIn19O3ZhciBSPWZ1bmN0aW9uKHope3JldHVybiBBcnJheS5pc0FycmF5KHopPyJBcnJheSI6dHlwZW9mIHp9'@; put 'fSw4OTgxOihNLE8pPT57InVzZSBzdHJpY3QiO08uZnJvbUNhbGxiYWNrPWZ1bmN0aW9uKFIpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oLi4ueil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHpbei5sZW5ndGgtMV0pcmV0dXJuIG5ldyBQcm9taXNlKChLLEkpPT57Ui5j'@; put 'YWxsKHRoaXMsLi4ueiwoayxFKT0+bnVsbCE9az9JKGspOksoRSkpfSk7Ui5hcHBseSh0aGlzLHopfSwibmFtZSIse3ZhbHVlOlIubmFtZX0pfSxPLmZyb21Qcm9taXNlPWZ1bmN0aW9uKFIpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oLi4ueil7Y29uc3QgSz16W3ou'@; put 'bGVuZ3RoLTFdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBLKXJldHVybiBSLmFwcGx5KHRoaXMseik7Ui5hcHBseSh0aGlzLHouc2xpY2UoMCwtMSkpLnRoZW4oST0+SyhudWxsLEkpLEspfSwibmFtZSIse3ZhbHVlOlIubmFtZX0pfX0sNDU2NDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6'@; put 'PVIoNzQxOCksSz1SKDcxMjkpLEk9L15bXHgwMC1ceDIwXHUwMGEwXHUxNjgwXHUyMDAwLVx1MjAwYVx1MjAyOFx1MjAyOVx1MjAyZlx1MjA1Zlx1MzAwMFx1ZmVmZl0rLyxrPS9bXG5cclx0XS9nLEU9L15bQS1aYS16XVtBLVphLXowLTkrLS5dKjpcL1wvLyxqPS86XGQrJC8sVj0vXihbYS16'@; put 'XVthLXowLTkuKy1dKjopPyhcL1wvKT8oW1xcL10rKT8oW1xTXHNdKikvaSxCPS9eW2EtekEtWl06LztmdW5jdGlvbiBZKHNlKXtyZXR1cm4oc2V8fCIiKS50b1N0cmluZygpLnJlcGxhY2UoSSwiIil9dmFyIFg9W1siIyIsImhhc2giXSxbIj8iLCJxdWVyeSJdLGZ1bmN0aW9uKHNlLGhlKXty'@; put 'ZXR1cm4gZWUoaGUucHJvdG9jb2wpP3NlLnJlcGxhY2UoL1xcL2csIi8iKTpzZX0sWyIvIiwicGF0aG5hbWUiXSxbIkAiLCJhdXRoIiwxXSxbTmFOLCJob3N0Iix2b2lkIDAsMSwxXSxbLzooXGQqKSQvLCJwb3J0Iix2b2lkIDAsMV0sW05hTiwiaG9zdG5hbWUiLHZvaWQgMCwxLDFdXSxVPXto'@; put 'YXNoOjEscXVlcnk6MX07ZnVuY3Rpb24gcShzZSl7dmFyIGhlLHVlPSh0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09Ui5nP1IuZzp0eXBlb2Ygc2VsZjwidSI/c2VsZjp7fSkubG9jYXRpb258fHt9LGNlPXt9LEc9dHlwZW9mKHNlPXNlfHx1ZSk7aWYoImJsb2I6Ij09PXNlLnBy'@; put 'b3RvY29sKWNlPW5ldyBvZSh1bmVzY2FwZShzZS5wYXRobmFtZSkse30pO2Vsc2UgaWYoInN0cmluZyI9PT1HKWZvcihoZSBpbiBjZT1uZXcgb2Uoc2Use30pLFUpZGVsZXRlIGNlW2hlXTtlbHNlIGlmKCJvYmplY3QiPT09Ryl7Zm9yKGhlIGluIHNlKWhlIGluIFV8fChjZVtoZV09c2VbaGVd'@; put 'KTt2b2lkIDA9PT1jZS5zbGFzaGVzJiYoY2Uuc2xhc2hlcz1FLnRlc3Qoc2UuaHJlZikpfXJldHVybiBjZX1mdW5jdGlvbiBlZShzZSl7cmV0dXJuImZpbGU6Ij09PXNlfHwiZnRwOiI9PT1zZXx8Imh0dHA6Ij09PXNlfHwiaHR0cHM6Ij09PXNlfHwid3M6Ij09PXNlfHwid3NzOiI9PT1zZX1m'@; put 'dW5jdGlvbiB0ZShzZSxoZSl7c2U9KHNlPVkoc2UpKS5yZXBsYWNlKGssIiIpLGhlPWhlfHx7fTt2YXIgdWUsY2U9Vi5leGVjKHNlKSxHPWNlWzFdP2NlWzFdLnRvTG93ZXJDYXNlKCk6IiIsYj0hIWNlWzJdLEQ9ISFjZVszXSxIPTA7cmV0dXJuIGI/RD8odWU9Y2VbMl0rY2VbM10rY2VbNF0s'@; put 'SD1jZVsyXS5sZW5ndGgrY2VbM10ubGVuZ3RoKToodWU9Y2VbMl0rY2VbNF0sSD1jZVsyXS5sZW5ndGgpOkQ/KHVlPWNlWzNdK2NlWzRdLEg9Y2VbM10ubGVuZ3RoKTp1ZT1jZVs0XSwiZmlsZToiPT09Rz9IPj0yJiYodWU9dWUuc2xpY2UoMikpOmVlKEcpP3VlPWNlWzRdOkc/YiYmKHVlPXVl'@; put 'LnNsaWNlKDIpKTpIPj0yJiZlZShoZS5wcm90b2NvbCkmJih1ZT1jZVs0XSkse3Byb3RvY29sOkcsc2xhc2hlczpifHxlZShHKSxzbGFzaGVzQ291bnQ6SCxyZXN0OnVlfX1mdW5jdGlvbiBvZShzZSxoZSx1ZSl7aWYoc2U9KHNlPVkoc2UpKS5yZXBsYWNlKGssIiIpLCEodGhpcyBpbnN0YW5j'@; put 'ZW9mIG9lKSlyZXR1cm4gbmV3IG9lKHNlLGhlLHVlKTt2YXIgY2UsRyxiLEQsSCxOLGc9WC5zbGljZSgpLEM9dHlwZW9mIGhlLFM9dGhpcyx2PTA7Zm9yKCJvYmplY3QiIT09QyYmInN0cmluZyIhPT1DJiYodWU9aGUsaGU9bnVsbCksdWUmJiJmdW5jdGlvbiIhPXR5cGVvZiB1ZSYmKHVlPUsu'@; put 'cGFyc2UpLGNlPSEoRz10ZShzZXx8IiIsaGU9cShoZSkpKS5wcm90b2NvbCYmIUcuc2xhc2hlcyxTLnNsYXNoZXM9Ry5zbGFzaGVzfHxjZSYmaGUuc2xhc2hlcyxTLnByb3RvY29sPUcucHJvdG9jb2x8fGhlLnByb3RvY29sfHwiIixzZT1HLnJlc3QsKCJmaWxlOiI9PT1HLnByb3RvY29sJiYo'@; put 'MiE9PUcuc2xhc2hlc0NvdW50fHxCLnRlc3Qoc2UpKXx8IUcuc2xhc2hlcyYmKEcucHJvdG9jb2x8fEcuc2xhc2hlc0NvdW50PDJ8fCFlZShTLnByb3RvY29sKSkpJiYoZ1szXT1bLyguKikvLCJwYXRobmFtZSJdKTt2PGcubGVuZ3RoO3YrKykiZnVuY3Rpb24iIT10eXBlb2YoRD1nW3ZdKT8o'@; put 'Tj1EWzFdLChiPURbMF0pIT1iP1NbTl09c2U6InN0cmluZyI9PXR5cGVvZiBiP34oSD0iQCI9PT1iP3NlLmxhc3RJbmRleE9mKGIpOnNlLmluZGV4T2YoYikpJiYoIm51bWJlciI9PXR5cGVvZiBEWzJdPyhTW05dPXNlLnNsaWNlKDAsSCksc2U9c2Uuc2xpY2UoSCtEWzJdKSk6KFNbTl09c2Uu'@; put 'c2xpY2UoSCksc2U9c2Uuc2xpY2UoMCxIKSkpOihIPWIuZXhlYyhzZSkpJiYoU1tOXT1IWzFdLHNlPXNlLnNsaWNlKDAsSC5pbmRleCkpLFNbTl09U1tOXXx8Y2UmJkRbM10mJmhlW05dfHwiIixEWzRdJiYoU1tOXT1TW05dLnRvTG93ZXJDYXNlKCkpKTpzZT1EKHNlLFMpO3VlJiYoUy5xdWVy'@; put 'eT11ZShTLnF1ZXJ5KSksY2UmJmhlLnNsYXNoZXMmJiIvIiE9PVMucGF0aG5hbWUuY2hhckF0KDApJiYoIiIhPT1TLnBhdGhuYW1lfHwiIiE9PWhlLnBhdGhuYW1lKSYmKFMucGF0aG5hbWU9ZnVuY3Rpb24ocCx3KXtpZigiIj09PXApcmV0dXJuIHc7Zm9yKHZhciBKPSh3fHwiLyIpLnNwbGl0'@; put 'KCIvIikuc2xpY2UoMCwtMSkuY29uY2F0KHAuc3BsaXQoIi8iKSksbmU9Si5sZW5ndGgsZGU9SltuZS0xXSxmZT0hMSx4ZT0wO25lLS07KSIuIj09PUpbbmVdP0ouc3BsaWNlKG5lLDEpOiIuLiI9PT1KW25lXT8oSi5zcGxpY2UobmUsMSkseGUrKyk6eGUmJigwPT09bmUmJihmZT0hMCksSi5z'@; put 'cGxpY2UobmUsMSkseGUtLSk7cmV0dXJuIGZlJiZKLnVuc2hpZnQoIiIpLCIuIiE9PWRlJiYiLi4iIT09ZGV8fEoucHVzaCgiIiksSi5qb2luKCIvIil9KFMucGF0aG5hbWUsaGUucGF0aG5hbWUpKSwiLyIhPT1TLnBhdGhuYW1lLmNoYXJBdCgwKSYmZWUoUy5wcm90b2NvbCkmJihTLnBhdGhu'@; put 'YW1lPSIvIitTLnBhdGhuYW1lKSx6KFMucG9ydCxTLnByb3RvY29sKXx8KFMuaG9zdD1TLmhvc3RuYW1lLFMucG9ydD0iIiksUy51c2VybmFtZT1TLnBhc3N3b3JkPSIiLFMuYXV0aCYmKH4oSD1TLmF1dGguaW5kZXhPZigiOiIpKT8oUy51c2VybmFtZT1TLmF1dGguc2xpY2UoMCxIKSxTLnVz'@; put 'ZXJuYW1lPWVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVVUklDb21wb25lbnQoUy51c2VybmFtZSkpLFMucGFzc3dvcmQ9Uy5hdXRoLnNsaWNlKEgrMSksUy5wYXNzd29yZD1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KFMucGFzc3dvcmQpKSk6Uy51c2VybmFtZT1lbmNv'@; put 'ZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KFMuYXV0aCkpLFMuYXV0aD1TLnBhc3N3b3JkP1MudXNlcm5hbWUrIjoiK1MucGFzc3dvcmQ6Uy51c2VybmFtZSksUy5vcmlnaW49ImZpbGU6IiE9PVMucHJvdG9jb2wmJmVlKFMucHJvdG9jb2wpJiZTLmhvc3Q/Uy5wcm90b2NvbCsi'@; put 'Ly8iK1MuaG9zdDoibnVsbCIsUy5ocmVmPVMudG9TdHJpbmcoKX1vZS5wcm90b3R5cGU9e3NldDpmdW5jdGlvbihzZSxoZSx1ZSl7dmFyIGNlPXRoaXM7c3dpdGNoKHNlKXtjYXNlInF1ZXJ5Ijoic3RyaW5nIj09dHlwZW9mIGhlJiZoZS5sZW5ndGgmJihoZT0odWV8fEsucGFyc2UpKGhlKSks'@; put 'Y2Vbc2VdPWhlO2JyZWFrO2Nhc2UicG9ydCI6Y2Vbc2VdPWhlLHooaGUsY2UucHJvdG9jb2wpP2hlJiYoY2UuaG9zdD1jZS5ob3N0bmFtZSsiOiIraGUpOihjZS5ob3N0PWNlLmhvc3RuYW1lLGNlW3NlXT0iIik7YnJlYWs7Y2FzZSJob3N0bmFtZSI6Y2Vbc2VdPWhlLGNlLnBvcnQmJihoZSs9'@; put 'IjoiK2NlLnBvcnQpLGNlLmhvc3Q9aGU7YnJlYWs7Y2FzZSJob3N0IjpjZVtzZV09aGUsai50ZXN0KGhlKT8oaGU9aGUuc3BsaXQoIjoiKSxjZS5wb3J0PWhlLnBvcCgpLGNlLmhvc3RuYW1lPWhlLmpvaW4oIjoiKSk6KGNlLmhvc3RuYW1lPWhlLGNlLnBvcnQ9IiIpO2JyZWFrO2Nhc2UicHJv'@; put 'dG9jb2wiOmNlLnByb3RvY29sPWhlLnRvTG93ZXJDYXNlKCksY2Uuc2xhc2hlcz0hdWU7YnJlYWs7Y2FzZSJwYXRobmFtZSI6Y2FzZSJoYXNoIjppZihoZSl7dmFyIEc9InBhdGhuYW1lIj09PXNlPyIvIjoiIyI7Y2Vbc2VdPWhlLmNoYXJBdCgwKSE9PUc/RytoZTpoZX1lbHNlIGNlW3NlXT1o'@; put 'ZTticmVhaztjYXNlInVzZXJuYW1lIjpjYXNlInBhc3N3b3JkIjpjZVtzZV09ZW5jb2RlVVJJQ29tcG9uZW50KGhlKTticmVhaztjYXNlImF1dGgiOnZhciBiPWhlLmluZGV4T2YoIjoiKTt+Yj8oY2UudXNlcm5hbWU9aGUuc2xpY2UoMCxiKSxjZS51c2VybmFtZT1lbmNvZGVVUklDb21wb25l'@; put 'bnQoZGVjb2RlVVJJQ29tcG9uZW50KGNlLnVzZXJuYW1lKSksY2UucGFzc3dvcmQ9aGUuc2xpY2UoYisxKSxjZS5wYXNzd29yZD1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KGNlLnBhc3N3b3JkKSkpOmNlLnVzZXJuYW1lPWVuY29kZVVSSUNvbXBvbmVudChkZWNvZGVV'@; put 'UklDb21wb25lbnQoaGUpKX1mb3IodmFyIEQ9MDtEPFgubGVuZ3RoO0QrKyl7dmFyIEg9WFtEXTtIWzRdJiYoY2VbSFsxXV09Y2VbSFsxXV0udG9Mb3dlckNhc2UoKSl9cmV0dXJuIGNlLmF1dGg9Y2UucGFzc3dvcmQ/Y2UudXNlcm5hbWUrIjoiK2NlLnBhc3N3b3JkOmNlLnVzZXJuYW1lLGNl'@; put 'Lm9yaWdpbj0iZmlsZToiIT09Y2UucHJvdG9jb2wmJmVlKGNlLnByb3RvY29sKSYmY2UuaG9zdD9jZS5wcm90b2NvbCsiLy8iK2NlLmhvc3Q6Im51bGwiLGNlLmhyZWY9Y2UudG9TdHJpbmcoKSxjZX0sdG9TdHJpbmc6ZnVuY3Rpb24oc2Upe3NlJiYiZnVuY3Rpb24iPT10eXBlb2Ygc2V8fChz'@; put 'ZT1LLnN0cmluZ2lmeSk7dmFyIGhlLHVlPXRoaXMsY2U9dWUuaG9zdCxHPXVlLnByb3RvY29sO0cmJiI6IiE9PUcuY2hhckF0KEcubGVuZ3RoLTEpJiYoRys9IjoiKTt2YXIgYj1HKyh1ZS5wcm90b2NvbCYmdWUuc2xhc2hlc3x8ZWUodWUucHJvdG9jb2wpPyIvLyI6IiIpO3JldHVybiB1ZS51'@; put 'c2VybmFtZT8oYis9dWUudXNlcm5hbWUsdWUucGFzc3dvcmQmJihiKz0iOiIrdWUucGFzc3dvcmQpLGIrPSJAIik6dWUucGFzc3dvcmQ/KGIrPSI6Iit1ZS5wYXNzd29yZCxiKz0iQCIpOiJmaWxlOiIhPT11ZS5wcm90b2NvbCYmZWUodWUucHJvdG9jb2wpJiYhY2UmJiIvIiE9PXVlLnBhdGhu'@; put 'YW1lJiYoYis9IkAiKSwoIjoiPT09Y2VbY2UubGVuZ3RoLTFdfHxqLnRlc3QodWUuaG9zdG5hbWUpJiYhdWUucG9ydCkmJihjZSs9IjoiKSxiKz1jZSt1ZS5wYXRobmFtZSwoaGU9Im9iamVjdCI9PXR5cGVvZiB1ZS5xdWVyeT9zZSh1ZS5xdWVyeSk6dWUucXVlcnkpJiYoYis9Ij8iIT09aGUu'@; put 'Y2hhckF0KDApPyI/IitoZTpoZSksdWUuaGFzaCYmKGIrPXVlLmhhc2gpLGJ9fSxvZS5leHRyYWN0UHJvdG9jb2w9dGUsb2UubG9jYXRpb249cSxvZS50cmltTGVmdD1ZLG9lLnFzPUssTS5leHBvcnRzPW9lfSw0OTI3OihNLE8sUik9Pnt2YXIgej1SKDUxMDgpO2Z1bmN0aW9uIEsoSSl7dHJ5'@; put 'e2lmKCFSLmcubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoe3JldHVybiExfXZhciBrPVIuZy5sb2NhbFN0b3JhZ2VbSV07cmV0dXJuIG51bGwhPWsmJiJ0cnVlIj09PVN0cmluZyhrKS50b0xvd2VyQ2FzZSgpfU0uZXhwb3J0cz1mdW5jdGlvbihJLGspe2lmKEsoIm5vRGVwcmVjYXRpb24i'@; put 'KSlyZXR1cm4gSTt2YXIgRT0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighRSl7aWYoSygidGhyb3dEZXByZWNhdGlvbiIpKXRocm93IG5ldyBFcnJvcihrKTtLKCJ0cmFjZURlcHJlY2F0aW9uIik/ei50cmFjZShrKTp6Lndhcm4oayksRT0hMH1yZXR1cm4gSS5hcHBseSh0aGlzLGFyZ3VtZW50'@; put 'cyl9fX0sMzg0Ok09PntNLmV4cG9ydHM9ZnVuY3Rpb24oTyl7cmV0dXJuIE8mJiJvYmplY3QiPT10eXBlb2YgTyYmImZ1bmN0aW9uIj09dHlwZW9mIE8uY29weSYmImZ1bmN0aW9uIj09dHlwZW9mIE8uZmlsbCYmImZ1bmN0aW9uIj09dHlwZW9mIE8ucmVhZFVJbnQ4fX0sNTk1NTooTSxPLFIp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciB6PVIoMjU4NCksSz1SKDg2NjIpLEk9Uig2NDMwKSxrPVIoNTY5Mik7ZnVuY3Rpb24gRShKKXtyZXR1cm4gSi5jYWxsLmJpbmQoSil9dmFyIGo9dHlwZW9mIEJpZ0ludDwidSIsVj10eXBlb2YgU3ltYm9sPCJ1IixCPUUoT2JqZWN0LnByb3RvdHlwZS50b1N0'@; put 'cmluZyksWT1FKE51bWJlci5wcm90b3R5cGUudmFsdWVPZiksWD1FKFN0cmluZy5wcm90b3R5cGUudmFsdWVPZiksVT1FKEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YpO2lmKGopdmFyIHE9RShCaWdJbnQucHJvdG90eXBlLnZhbHVlT2YpO2lmKFYpdmFyIGVlPUUoU3ltYm9sLnByb3RvdHlw'@; put 'ZS52YWx1ZU9mKTtmdW5jdGlvbiB0ZShKLG5lKXtpZigib2JqZWN0IiE9dHlwZW9mIEopcmV0dXJuITE7dHJ5e3JldHVybiBuZShKKSwhMH1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gb2UoSil7cmV0dXJuIltvYmplY3QgTWFwXSI9PT1CKEopfWZ1bmN0aW9uIHNlKEope3JldHVybiJbb2Jq'@; put 'ZWN0IFNldF0iPT09QihKKX1mdW5jdGlvbiBoZShKKXtyZXR1cm4iW29iamVjdCBXZWFrTWFwXSI9PT1CKEopfWZ1bmN0aW9uIHVlKEope3JldHVybiJbb2JqZWN0IFdlYWtTZXRdIj09PUIoSil9ZnVuY3Rpb24gY2UoSil7cmV0dXJuIltvYmplY3QgQXJyYXlCdWZmZXJdIj09PUIoSil9ZnVu'@; put 'Y3Rpb24gRyhKKXtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmKGNlLndvcmtpbmc/Y2UoSik6SiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKX1mdW5jdGlvbiBiKEope3JldHVybiJbb2JqZWN0IERhdGFWaWV3XSI9PT1CKEopfWZ1bmN0aW9uIEQoSil7cmV0dXJuIHR5cGVvZiBEYXRh'@; put 'VmlldzwidSImJihiLndvcmtpbmc/YihKKTpKIGluc3RhbmNlb2YgRGF0YVZpZXcpfU8uaXNBcmd1bWVudHNPYmplY3Q9eixPLmlzR2VuZXJhdG9yRnVuY3Rpb249SyxPLmlzVHlwZWRBcnJheT1rLE8uaXNQcm9taXNlPWZ1bmN0aW9uKEope3JldHVybiB0eXBlb2YgUHJvbWlzZTwidSImJkog'@; put 'aW5zdGFuY2VvZiBQcm9taXNlfHxudWxsIT09SiYmIm9iamVjdCI9PXR5cGVvZiBKJiYiZnVuY3Rpb24iPT10eXBlb2YgSi50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgSi5jYXRjaH0sTy5pc0FycmF5QnVmZmVyVmlldz1mdW5jdGlvbihKKXtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1'@; put 'IiYmQXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVmZmVyLmlzVmlldyhKKTprKEopfHxEKEopfSxPLmlzVWludDhBcnJheT1mdW5jdGlvbihKKXtyZXR1cm4iVWludDhBcnJheSI9PT1JKEopfSxPLmlzVWludDhDbGFtcGVkQXJyYXk9ZnVuY3Rpb24oSil7cmV0dXJuIlVpbnQ4Q2xhbXBlZEFy'@; put 'cmF5Ij09PUkoSil9LE8uaXNVaW50MTZBcnJheT1mdW5jdGlvbihKKXtyZXR1cm4iVWludDE2QXJyYXkiPT09SShKKX0sTy5pc1VpbnQzMkFycmF5PWZ1bmN0aW9uKEope3JldHVybiJVaW50MzJBcnJheSI9PT1JKEopfSxPLmlzSW50OEFycmF5PWZ1bmN0aW9uKEope3JldHVybiJJbnQ4QXJy'@; put 'YXkiPT09SShKKX0sTy5pc0ludDE2QXJyYXk9ZnVuY3Rpb24oSil7cmV0dXJuIkludDE2QXJyYXkiPT09SShKKX0sTy5pc0ludDMyQXJyYXk9ZnVuY3Rpb24oSil7cmV0dXJuIkludDMyQXJyYXkiPT09SShKKX0sTy5pc0Zsb2F0MzJBcnJheT1mdW5jdGlvbihKKXtyZXR1cm4iRmxvYXQzMkFy'@; put 'cmF5Ij09PUkoSil9LE8uaXNGbG9hdDY0QXJyYXk9ZnVuY3Rpb24oSil7cmV0dXJuIkZsb2F0NjRBcnJheSI9PT1JKEopfSxPLmlzQmlnSW50NjRBcnJheT1mdW5jdGlvbihKKXtyZXR1cm4iQmlnSW50NjRBcnJheSI9PT1JKEopfSxPLmlzQmlnVWludDY0QXJyYXk9ZnVuY3Rpb24oSil7cmV0'@; put 'dXJuIkJpZ1VpbnQ2NEFycmF5Ij09PUkoSil9LG9lLndvcmtpbmc9dHlwZW9mIE1hcDwidSImJm9lKG5ldyBNYXApLE8uaXNNYXA9ZnVuY3Rpb24oSil7cmV0dXJuIHR5cGVvZiBNYXA8InUiJiYob2Uud29ya2luZz9vZShKKTpKIGluc3RhbmNlb2YgTWFwKX0sc2Uud29ya2luZz10eXBlb2Yg'@; put 'U2V0PCJ1IiYmc2UobmV3IFNldCksTy5pc1NldD1mdW5jdGlvbihKKXtyZXR1cm4gdHlwZW9mIFNldDwidSImJihzZS53b3JraW5nP3NlKEopOkogaW5zdGFuY2VvZiBTZXQpfSxoZS53b3JraW5nPXR5cGVvZiBXZWFrTWFwPCJ1IiYmaGUobmV3IFdlYWtNYXApLE8uaXNXZWFrTWFwPWZ1bmN0'@; put 'aW9uKEope3JldHVybiB0eXBlb2YgV2Vha01hcDwidSImJihoZS53b3JraW5nP2hlKEopOkogaW5zdGFuY2VvZiBXZWFrTWFwKX0sdWUud29ya2luZz10eXBlb2YgV2Vha1NldDwidSImJnVlKG5ldyBXZWFrU2V0KSxPLmlzV2Vha1NldD1mdW5jdGlvbihKKXtyZXR1cm4gdWUoSil9LGNlLndv'@; put 'cmtpbmc9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmY2UobmV3IEFycmF5QnVmZmVyKSxPLmlzQXJyYXlCdWZmZXI9RyxiLndvcmtpbmc9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmdHlwZW9mIERhdGFWaWV3PCJ1IiYmYihuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEpLDAsMSkpLE8u'@; put 'aXNEYXRhVmlldz1EO3ZhciBIPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcjwidSI/U2hhcmVkQXJyYXlCdWZmZXI6dm9pZCAwO2Z1bmN0aW9uIE4oSil7cmV0dXJuIltvYmplY3QgU2hhcmVkQXJyYXlCdWZmZXJdIj09PUIoSil9ZnVuY3Rpb24gZyhKKXtyZXR1cm4gdm9pZCAwIT09SCYmKHZv'@; put 'aWQgMD09PU4ud29ya2luZyYmKE4ud29ya2luZz1OKG5ldyBIKSksTi53b3JraW5nP04oSik6SiBpbnN0YW5jZW9mIEgpfWZ1bmN0aW9uIEMoSil7cmV0dXJuIHRlKEosWSl9ZnVuY3Rpb24gUyhKKXtyZXR1cm4gdGUoSixYKX1mdW5jdGlvbiB2KEope3JldHVybiB0ZShKLFUpfWZ1bmN0aW9u'@; put 'IHAoSil7cmV0dXJuIGomJnRlKEoscSl9ZnVuY3Rpb24gdyhKKXtyZXR1cm4gViYmdGUoSixlZSl9Ty5pc1NoYXJlZEFycmF5QnVmZmVyPWcsTy5pc0FzeW5jRnVuY3Rpb249ZnVuY3Rpb24oSil7cmV0dXJuIltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT09QihKKX0sTy5pc01hcEl0ZXJhdG9y'@; put 'PWZ1bmN0aW9uKEope3JldHVybiJbb2JqZWN0IE1hcCBJdGVyYXRvcl0iPT09QihKKX0sTy5pc1NldEl0ZXJhdG9yPWZ1bmN0aW9uKEope3JldHVybiJbb2JqZWN0IFNldCBJdGVyYXRvcl0iPT09QihKKX0sTy5pc0dlbmVyYXRvck9iamVjdD1mdW5jdGlvbihKKXtyZXR1cm4iW29iamVjdCBH'@; put 'ZW5lcmF0b3JdIj09PUIoSil9LE8uaXNXZWJBc3NlbWJseUNvbXBpbGVkTW9kdWxlPWZ1bmN0aW9uKEope3JldHVybiJbb2JqZWN0IFdlYkFzc2VtYmx5Lk1vZHVsZV0iPT09QihKKX0sTy5pc051bWJlck9iamVjdD1DLE8uaXNTdHJpbmdPYmplY3Q9UyxPLmlzQm9vbGVhbk9iamVjdD12LE8u'@; put 'aXNCaWdJbnRPYmplY3Q9cCxPLmlzU3ltYm9sT2JqZWN0PXcsTy5pc0JveGVkUHJpbWl0aXZlPWZ1bmN0aW9uKEope3JldHVybiBDKEopfHxTKEopfHx2KEopfHxwKEopfHx3KEopfSxPLmlzQW55QXJyYXlCdWZmZXI9ZnVuY3Rpb24oSil7cmV0dXJuIHR5cGVvZiBVaW50OEFycmF5PCJ1IiYm'@; put 'KEcoSil8fGcoSikpfSxbImlzUHJveHkiLCJpc0V4dGVybmFsIiwiaXNNb2R1bGVOYW1lc3BhY2VPYmplY3QiXS5mb3JFYWNoKGZ1bmN0aW9uKEope09iamVjdC5kZWZpbmVQcm9wZXJ0eShPLEose2VudW1lcmFibGU6ITEsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoSisiIGlz'@; put 'IG5vdCBzdXBwb3J0ZWQgaW4gdXNlcmxhbmQiKX19KX0pfSw5NTM5OihNLE8sUik9Pnt2YXIgej1SKDQxNTUpLEs9Uig1MTA4KSxJPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzfHxmdW5jdGlvbihKKXtmb3IodmFyIG5lPU9iamVjdC5rZXlzKEopLGRlPXt9LGZlPTA7ZmU8bmUu'@; put 'bGVuZ3RoO2ZlKyspZGVbbmVbZmVdXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEosbmVbZmVdKTtyZXR1cm4gZGV9LGs9LyVbc2RqJV0vZztPLmZvcm1hdD1mdW5jdGlvbihKKXtpZighdWUoSikpe2Zvcih2YXIgbmU9W10sZGU9MDtkZTxhcmd1bWVudHMubGVuZ3RoO2RlKysp'@; put 'bmUucHVzaChCKGFyZ3VtZW50c1tkZV0pKTtyZXR1cm4gbmUuam9pbigiICIpfWRlPTE7Zm9yKHZhciBmZT1hcmd1bWVudHMseGU9ZmUubGVuZ3RoLExlPVN0cmluZyhKKS5yZXBsYWNlKGssZnVuY3Rpb24oT2Upe2lmKCIlJSI9PT1PZSlyZXR1cm4iJSI7aWYoZGU+PXhlKXJldHVybiBPZTtz'@; put 'd2l0Y2goT2Upe2Nhc2UiJXMiOnJldHVybiBTdHJpbmcoZmVbZGUrK10pO2Nhc2UiJWQiOnJldHVybiBOdW1iZXIoZmVbZGUrK10pO2Nhc2UiJWoiOnRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZmVbZGUrK10pfWNhdGNoe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiBPZX19'@; put 'KSxGZT1mZVtkZV07ZGU8eGU7RmU9ZmVbKytkZV0pc2UoRmUpfHwhYihGZSk/TGUrPSIgIitGZTpMZSs9IiAiK0IoRmUpO3JldHVybiBMZX0sTy5kZXByZWNhdGU9ZnVuY3Rpb24oSixuZSl7aWYodm9pZCAwIT09eiYmITA9PT16Lm5vRGVwcmVjYXRpb24pcmV0dXJuIEo7aWYodm9pZCAwPT09'@; put 'eilyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTy5kZXByZWNhdGUoSixuZSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgZGU9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIWRlKXtpZih6LnRocm93RGVwcmVjYXRpb24pdGhyb3cgbmV3IEVycm9yKG5lKTt6LnRyYWNlRGVwcmVjYXRpb24/'@; put 'Sy50cmFjZShuZSk6Sy5lcnJvcihuZSksZGU9ITB9cmV0dXJuIEouYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIEU9e30saj0vXiQvO2lmKHouZW52Lk5PREVfREVCVUcpe3ZhciBWPXouZW52Lk5PREVfREVCVUc7Vj1WLnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrPy5dL2csIlxcJCYiKS5y'@; put 'ZXBsYWNlKC9cKi9nLCIuKiIpLnJlcGxhY2UoLywvZywiJHxeIikudG9VcHBlckNhc2UoKSxqPW5ldyBSZWdFeHAoIl4iK1YrIiQiLCJpIil9ZnVuY3Rpb24gQihKLG5lKXt2YXIgZGU9e3NlZW46W10sc3R5bGl6ZTpYfTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD49MyYmKGRlLmRlcHRoPWFy'@; put 'Z3VtZW50c1syXSksYXJndW1lbnRzLmxlbmd0aD49NCYmKGRlLmNvbG9ycz1hcmd1bWVudHNbM10pLG9lKG5lKT9kZS5zaG93SGlkZGVuPW5lOm5lJiZPLl9leHRlbmQoZGUsbmUpLGNlKGRlLnNob3dIaWRkZW4pJiYoZGUuc2hvd0hpZGRlbj0hMSksY2UoZGUuZGVwdGgpJiYoZGUuZGVwdGg9'@; put 'MiksY2UoZGUuY29sb3JzKSYmKGRlLmNvbG9ycz0hMSksY2UoZGUuY3VzdG9tSW5zcGVjdCkmJihkZS5jdXN0b21JbnNwZWN0PSEwKSxkZS5jb2xvcnMmJihkZS5zdHlsaXplPVkpLFUoZGUsSixkZS5kZXB0aCl9ZnVuY3Rpb24gWShKLG5lKXt2YXIgZGU9Qi5zdHlsZXNbbmVdO3JldHVybiBk'@; put 'ZT8iXHgxYlsiK0IuY29sb3JzW2RlXVswXSsibSIrSisiXHgxYlsiK0IuY29sb3JzW2RlXVsxXSsibSI6Sn1mdW5jdGlvbiBYKEosbmUpe3JldHVybiBKfWZ1bmN0aW9uIFUoSixuZSxkZSl7aWYoSi5jdXN0b21JbnNwZWN0JiZuZSYmTihuZS5pbnNwZWN0KSYmbmUuaW5zcGVjdCE9PU8uaW5z'@; put 'cGVjdCYmKCFuZS5jb25zdHJ1Y3Rvcnx8bmUuY29uc3RydWN0b3IucHJvdG90eXBlIT09bmUpKXt2YXIgZmU9bmUuaW5zcGVjdChkZSxKKTtyZXR1cm4gdWUoZmUpfHwoZmU9VShKLGZlLGRlKSksZmV9dmFyIHhlPWZ1bmN0aW9uKFFlLGx0KXtpZihjZShsdCkpcmV0dXJuIFFlLnN0eWxpemUo'@; put 'InVuZGVmaW5lZCIsInVuZGVmaW5lZCIpO2lmKHVlKGx0KSl7dmFyIFBlPSInIitKU09OLnN0cmluZ2lmeShsdCkucmVwbGFjZSgvXiJ8IiQvZywiIikucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpKyInIjtyZXR1cm4gUWUuc3R5bGl6ZShQZSwic3RyaW5nIil9cmV0'@; put 'dXJuIGhlKGx0KT9RZS5zdHlsaXplKCIiK2x0LCJudW1iZXIiKTpvZShsdCk/UWUuc3R5bGl6ZSgiIitsdCwiYm9vbGVhbiIpOnNlKGx0KT9RZS5zdHlsaXplKCJudWxsIiwibnVsbCIpOnZvaWQgMH0oSixuZSk7aWYoeGUpcmV0dXJuIHhlO3ZhciBsdCxMZT1PYmplY3Qua2V5cyhuZSksRmU9'@; put 'KGx0PXt9LExlLmZvckVhY2goZnVuY3Rpb24oUGUsYmUpe2x0W1BlXT0hMH0pLGx0KTtpZihKLnNob3dIaWRkZW4mJihMZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhuZSkpLEgobmUpJiYoTGUuaW5kZXhPZigibWVzc2FnZSIpPj0wfHxMZS5pbmRleE9mKCJkZXNjcmlwdGlvbiIpPj0w'@; put 'KSlyZXR1cm4gcShuZSk7aWYoMD09PUxlLmxlbmd0aCl7aWYoTihuZSkpcmV0dXJuIEouc3R5bGl6ZSgiW0Z1bmN0aW9uIisobmUubmFtZT8iOiAiK25lLm5hbWU6IiIpKyJdIiwic3BlY2lhbCIpO2lmKEcobmUpKXJldHVybiBKLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5j'@; put 'YWxsKG5lKSwicmVnZXhwIik7aWYoRChuZSkpcmV0dXJuIEouc3R5bGl6ZShEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5lKSwiZGF0ZSIpO2lmKEgobmUpKXJldHVybiBxKG5lKX12YXIgamUsV2U9IiIsS2U9ITEsWWU9WyJ7IiwifSJdO3JldHVybiB0ZShuZSkmJihLZT0hMCxZZT1b'@; put 'IlsiLCJdIl0pLE4obmUpJiYoV2U9IiBbRnVuY3Rpb24iKyhuZS5uYW1lPyI6ICIrbmUubmFtZToiIikrIl0iKSxHKG5lKSYmKFdlPSIgIitSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmUpKSxEKG5lKSYmKFdlPSIgIitEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKG5l'@; put 'KSksSChuZSkmJihXZT0iICIrcShuZSkpLDAhPT1MZS5sZW5ndGh8fEtlJiYwIT1uZS5sZW5ndGg/ZGU8MD9HKG5lKT9KLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5lKSwicmVnZXhwIik6Si5zdHlsaXplKCJbT2JqZWN0XSIsInNwZWNpYWwiKTooSi5zZWVuLnB1'@; put 'c2gobmUpLGplPUtlP2Z1bmN0aW9uKFFlLGx0LFBlLGJlLEFlKXtmb3IodmFyIFRlPVtdLHFlPTAsWGU9bHQubGVuZ3RoO3FlPFhlOysrcWUpdihsdCxTdHJpbmcocWUpKT9UZS5wdXNoKGVlKFFlLGx0LFBlLGJlLFN0cmluZyhxZSksITApKTpUZS5wdXNoKCIiKTtyZXR1cm4gQWUuZm9yRWFj'@; put 'aChmdW5jdGlvbihVZSl7VWUubWF0Y2goL15cZCskLyl8fFRlLnB1c2goZWUoUWUsbHQsUGUsYmUsVWUsITApKX0pLFRlfShKLG5lLGRlLEZlLExlKTpMZS5tYXAoZnVuY3Rpb24oUWUpe3JldHVybiBlZShKLG5lLGRlLEZlLFFlLEtlKX0pLEouc2Vlbi5wb3AoKSxmdW5jdGlvbihRZSxsdCxQ'@; put 'ZSl7cmV0dXJuIFFlLnJlZHVjZShmdW5jdGlvbihBZSxUZSl7cmV0dXJuIFRlLmluZGV4T2YoIlxuIiksQWUrVGUucmVwbGFjZSgvXHUwMDFiXFtcZFxkP20vZywiIikubGVuZ3RoKzF9LDApPjYwP1BlWzBdKygiIj09PWx0PyIiOmx0KyJcbiAiKSsiICIrUWUuam9pbigiLFxuICAiKSsiICIr'@; put 'UGVbMV06UGVbMF0rbHQrIiAiK1FlLmpvaW4oIiwgIikrIiAiK1BlWzFdfShqZSxXZSxZZSkpOlllWzBdK1dlK1llWzFdfWZ1bmN0aW9uIHEoSil7cmV0dXJuIlsiK0Vycm9yLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKEopKyJdIn1mdW5jdGlvbiBlZShKLG5lLGRlLGZlLHhlLExlKXt2YXIg'@; put 'RmUsT2UsamU7aWYoKGplPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobmUseGUpfHx7dmFsdWU6bmVbeGVdfSkuZ2V0P09lPUouc3R5bGl6ZShqZS5zZXQ/IltHZXR0ZXIvU2V0dGVyXSI6IltHZXR0ZXJdIiwic3BlY2lhbCIpOmplLnNldCYmKE9lPUouc3R5bGl6ZSgiW1NldHRl'@; put 'cl0iLCJzcGVjaWFsIikpLHYoZmUseGUpfHwoRmU9IlsiK3hlKyJdIiksT2V8fChKLnNlZW4uaW5kZXhPZihqZS52YWx1ZSk8MD8oT2U9c2UoZGUpP1UoSixqZS52YWx1ZSxudWxsKTpVKEosamUudmFsdWUsZGUtMSkpLmluZGV4T2YoIlxuIik+LTEmJihPZT1MZT9PZS5zcGxpdCgiXG4iKS5t'@; put 'YXAoZnVuY3Rpb24oV2Upe3JldHVybiIgICIrV2V9KS5qb2luKCJcbiIpLnNsaWNlKDIpOiJcbiIrT2Uuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKFdlKXtyZXR1cm4iICAgIitXZX0pLmpvaW4oIlxuIikpOk9lPUouc3R5bGl6ZSgiW0NpcmN1bGFyXSIsInNwZWNpYWwiKSksY2UoRmUpKXtp'@; put 'ZihMZSYmeGUubWF0Y2goL15cZCskLykpcmV0dXJuIE9lOyhGZT1KU09OLnN0cmluZ2lmeSgiIit4ZSkpLm1hdGNoKC9eIihbYS16QS1aX11bYS16QS1aXzAtOV0qKSIkLyk/KEZlPUZlLnNsaWNlKDEsLTEpLEZlPUouc3R5bGl6ZShGZSwibmFtZSIpKTooRmU9RmUucmVwbGFjZSgvJy9nLCJc'@; put 'XCciKS5yZXBsYWNlKC9cXCIvZywnIicpLnJlcGxhY2UoLyheInwiJCkvZywiJyIpLEZlPUouc3R5bGl6ZShGZSwic3RyaW5nIikpfXJldHVybiBGZSsiOiAiK09lfWZ1bmN0aW9uIHRlKEope3JldHVybiBBcnJheS5pc0FycmF5KEopfWZ1bmN0aW9uIG9lKEope3JldHVybiJib29sZWFuIj09'@; put 'dHlwZW9mIEp9ZnVuY3Rpb24gc2UoSil7cmV0dXJuIG51bGw9PT1KfWZ1bmN0aW9uIGhlKEope3JldHVybiJudW1iZXIiPT10eXBlb2YgSn1mdW5jdGlvbiB1ZShKKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEp9ZnVuY3Rpb24gY2UoSil7cmV0dXJuIHZvaWQgMD09PUp9ZnVuY3Rpb24gRyhK'@; put 'KXtyZXR1cm4gYihKKSYmIltvYmplY3QgUmVnRXhwXSI9PT1nKEopfWZ1bmN0aW9uIGIoSil7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBKJiZudWxsIT09Sn1mdW5jdGlvbiBEKEope3JldHVybiBiKEopJiYiW29iamVjdCBEYXRlXSI9PT1nKEopfWZ1bmN0aW9uIEgoSil7cmV0dXJuIGIoSikm'@; put 'JigiW29iamVjdCBFcnJvcl0iPT09ZyhKKXx8SiBpbnN0YW5jZW9mIEVycm9yKX1mdW5jdGlvbiBOKEope3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBKfWZ1bmN0aW9uIGcoSil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChKKX1mdW5jdGlvbiBDKEope3JldHVybiBK'@; put 'PDEwPyIwIitKLnRvU3RyaW5nKDEwKTpKLnRvU3RyaW5nKDEwKX1PLmRlYnVnbG9nPWZ1bmN0aW9uKEope2lmKEo9Si50b1VwcGVyQ2FzZSgpLCFFW0pdKWlmKGoudGVzdChKKSl7dmFyIG5lPXoucGlkO0VbSl09ZnVuY3Rpb24oKXt2YXIgZGU9Ty5mb3JtYXQuYXBwbHkoTyxhcmd1bWVudHMp'@; put 'O0suZXJyb3IoIiVzICVkOiAlcyIsSixuZSxkZSl9fWVsc2UgRVtKXT1mdW5jdGlvbigpe307cmV0dXJuIEVbSl19LE8uaW5zcGVjdD1CLEIuY29sb3JzPXtib2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10sd2hpdGU6WzM3LDM5XSxncmV5'@; put 'Ols5MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzldLHllbGxvdzpbMzMsMzldfSxCLnN0eWxlcz17c3BlY2lhbDoiY3lhbiIsbnVtYmVyOiJ5ZWxsb3ciLGJvb2xlYW46InllbGxvdyIs'@; put 'dW5kZWZpbmVkOiJncmV5IixudWxsOiJib2xkIixzdHJpbmc6ImdyZWVuIixkYXRlOiJtYWdlbnRhIixyZWdleHA6InJlZCJ9LE8udHlwZXM9Uig1OTU1KSxPLmlzQXJyYXk9dGUsTy5pc0Jvb2xlYW49b2UsTy5pc051bGw9c2UsTy5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbihKKXtyZXR1'@; put 'cm4gbnVsbD09Sn0sTy5pc051bWJlcj1oZSxPLmlzU3RyaW5nPXVlLE8uaXNTeW1ib2w9ZnVuY3Rpb24oSil7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBKfSxPLmlzVW5kZWZpbmVkPWNlLE8uaXNSZWdFeHA9RyxPLnR5cGVzLmlzUmVnRXhwPUcsTy5pc09iamVjdD1iLE8uaXNEYXRlPUQsTy50'@; put 'eXBlcy5pc0RhdGU9RCxPLmlzRXJyb3I9SCxPLnR5cGVzLmlzTmF0aXZlRXJyb3I9SCxPLmlzRnVuY3Rpb249TixPLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKEope3JldHVybiBudWxsPT09Snx8ImJvb2xlYW4iPT10eXBlb2YgSnx8Im51bWJlciI9PXR5cGVvZiBKfHwic3RyaW5nIj09dHlwZW9m'@; put 'IEp8fCJzeW1ib2wiPT10eXBlb2YgSnx8dm9pZCAwPT09Sn0sTy5pc0J1ZmZlcj1SKDM4NCk7dmFyIFM9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtmdW5jdGlvbiB2KEosbmUpe3JldHVybiBPYmplY3Qu'@; put 'cHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSixuZSl9Ty5sb2c9ZnVuY3Rpb24oKXt2YXIgSixuZTtLLmxvZygiJXMgLSAlcyIsKG5lPVtDKChKPW5ldyBEYXRlKS5nZXRIb3VycygpKSxDKEouZ2V0TWludXRlcygpKSxDKEouZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpLFtKLmdldERh'@; put 'dGUoKSxTW0ouZ2V0TW9udGgoKV0sbmVdLmpvaW4oIiAiKSksTy5mb3JtYXQuYXBwbHkoTyxhcmd1bWVudHMpKX0sTy5pbmhlcml0cz1SKDU3MTcpLE8uX2V4dGVuZD1mdW5jdGlvbihKLG5lKXtpZighbmV8fCFiKG5lKSlyZXR1cm4gSjtmb3IodmFyIGRlPU9iamVjdC5rZXlzKG5lKSxmZT1k'@; put 'ZS5sZW5ndGg7ZmUtLTspSltkZVtmZV1dPW5lW2RlW2ZlXV07cmV0dXJuIEp9O3ZhciBwPXR5cGVvZiBTeW1ib2w8InUiP1N5bWJvbCgidXRpbC5wcm9taXNpZnkuY3VzdG9tIik6dm9pZCAwO2Z1bmN0aW9uIHcoSixuZSl7aWYoIUope3ZhciBkZT1uZXcgRXJyb3IoIlByb21pc2Ugd2FzIHJl'@; put 'amVjdGVkIHdpdGggYSBmYWxzeSB2YWx1ZSIpO2RlLnJlYXNvbj1KLEo9ZGV9cmV0dXJuIG5lKEopfU8ucHJvbWlzaWZ5PWZ1bmN0aW9uKEope2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBKKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAib3JpZ2luYWwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlw'@; put 'ZSBGdW5jdGlvbicpO2lmKHAmJkpbcF0pe3ZhciBuZTtpZigiZnVuY3Rpb24iIT10eXBlb2YobmU9SltwXSkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ1dGlsLnByb21pc2lmeS5jdXN0b20iIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbicpO3JldHVybiBPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkobmUscCx7dmFsdWU6bmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxuZX1mdW5jdGlvbiBuZSgpe2Zvcih2YXIgZGUsZmUseGU9bmV3IFByb21pc2UoZnVuY3Rpb24oT2UsamUpe2RlPU9lLGZlPWplfSksTGU9W10sRmU9MDtGZTxhcmd1'@; put 'bWVudHMubGVuZ3RoO0ZlKyspTGUucHVzaChhcmd1bWVudHNbRmVdKTtMZS5wdXNoKGZ1bmN0aW9uKE9lLGplKXtPZT9mZShPZSk6ZGUoamUpfSk7dHJ5e0ouYXBwbHkodGhpcyxMZSl9Y2F0Y2goT2Upe2ZlKE9lKX1yZXR1cm4geGV9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihuZSxP'@; put 'YmplY3QuZ2V0UHJvdG90eXBlT2YoSikpLHAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZSxwLHt2YWx1ZTpuZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5lLEkoSikpfSxPLnByb21pc2lmeS5jdXN0b209cCxP'@; put 'LmNhbGxiYWNraWZ5PWZ1bmN0aW9uKEope2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBKKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAib3JpZ2luYWwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbicpO2Z1bmN0aW9uIG5lKCl7Zm9yKHZhciBkZT1bXSxmZT0wO2ZlPGFyZ3VtZW50'@; put 'cy5sZW5ndGg7ZmUrKylkZS5wdXNoKGFyZ3VtZW50c1tmZV0pO3ZhciB4ZT1kZS5wb3AoKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgeGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGxhc3QgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uIik7dmFyIExlPXRoaXMsRmU9ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4geGUuYXBwbHkoTGUsYXJndW1lbnRzKX07Si5hcHBseSh0aGlzLGRlKS50aGVuKGZ1bmN0aW9uKE9lKXt6Lm5leHRUaWNrKEZlLmJpbmQobnVsbCxudWxsLE9lKSl9LGZ1bmN0aW9uKE9lKXt6Lm5leHRUaWNrKHcuYmluZChudWxsLE9lLEZlKSl9KX1yZXR1cm4gT2JqZWN0'@; put 'LnNldFByb3RvdHlwZU9mKG5lLE9iamVjdC5nZXRQcm90b3R5cGVPZihKKSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobmUsSShKKSksbmV9fSw0ODE6KE0sTyxSKT0+eyFmdW5jdGlvbih6KXsidXNlIHN0cmljdCI7ei5leHBvcnRzLmlzX3VyaT1JLHouZXhwb3J0cy5pc19odHRwX3VyaT1r'@; put 'LHouZXhwb3J0cy5pc19odHRwc191cmk9RSx6LmV4cG9ydHMuaXNfd2ViX3VyaT1qLHouZXhwb3J0cy5pc1VyaT1JLHouZXhwb3J0cy5pc0h0dHBVcmk9ayx6LmV4cG9ydHMuaXNIdHRwc1VyaT1FLHouZXhwb3J0cy5pc1dlYlVyaT1qO3ZhciBLPWZ1bmN0aW9uKFYpe3JldHVybiBWLm1hdGNo'@; put 'KC8oPzooW146XC8/I10rKTopPyg/OlwvXC8oW15cLz8jXSopKT8oW14/I10qKSg/Olw/KFteI10qKSk/KD86IyguKikpPy8pfTtmdW5jdGlvbiBJKFYpe2lmKFYmJiEvW15hLXowLTlcOlwvXD9cI1xbXF1cQFwhXCRcJlwnXChcKVwqXCtcLFw7XD1cLlwtXF9cflwlXS9pLnRlc3QoVikmJiEv'@; put 'JVteMC05YS1mXS9pLnRlc3QoVikmJiEvJVswLTlhLWZdKDo/W14wLTlhLWZdfCQpL2kudGVzdChWKSl7dmFyIEIsWSxYLFUscSxlZT0iIix0ZT0iIjtpZihlZT0oQj1LKFYpKVsxXSxZPUJbMl0sWD1CWzNdLFU9Qls0XSxxPUJbNV0sZWUmJmVlLmxlbmd0aCYmWC5sZW5ndGg+PTApe2lmKFkm'@; put 'JlkubGVuZ3RoKXtpZigwIT09WC5sZW5ndGgmJiEvXlwvLy50ZXN0KFgpKXJldHVybn1lbHNlIGlmKC9eXC9cLy8udGVzdChYKSlyZXR1cm47aWYoL15bYS16XVthLXowLTlcK1wtXC5dKiQvLnRlc3QoZWUudG9Mb3dlckNhc2UoKSkpcmV0dXJuIHRlKz1lZSsiOiIsWSYmWS5sZW5ndGgmJih0'@; put 'ZSs9Ii8vIitZKSx0ZSs9WCxVJiZVLmxlbmd0aCYmKHRlKz0iPyIrVSkscSYmcS5sZW5ndGgmJih0ZSs9IiMiK3EpLHRlfX19ZnVuY3Rpb24gayhWLEIpe2lmKEkoVikpe3ZhciBZLFgsVSxxLGVlPSIiLHRlPSIiLG9lPSIiLHNlPSIiO2lmKGVlPShZPUsoVikpWzFdLHRlPVlbMl0sWD1ZWzNd'@; put 'LFU9WVs0XSxxPVlbNV0sZWUpe2lmKEIpe2lmKCJodHRwcyIhPWVlLnRvTG93ZXJDYXNlKCkpcmV0dXJufWVsc2UgaWYoImh0dHAiIT1lZS50b0xvd2VyQ2FzZSgpKXJldHVybjtpZih0ZSlyZXR1cm4vOihcZCspJC8udGVzdCh0ZSkmJihvZT10ZS5tYXRjaCgvOihcZCspJC8pWzBdLHRlPXRl'@; put 'LnJlcGxhY2UoLzpcZCskLywiIikpLHNlKz1lZSsiOiIsc2UrPSIvLyIrdGUsb2UmJihzZSs9b2UpLHNlKz1YLFUmJlUubGVuZ3RoJiYoc2UrPSI/IitVKSxxJiZxLmxlbmd0aCYmKHNlKz0iIyIrcSksc2V9fX1mdW5jdGlvbiBFKFYpe3JldHVybiBrKFYsITApfWZ1bmN0aW9uIGooVil7cmV0'@; put 'dXJuIGsoVil8fEUoVil9fShNPVIubm1kKE0pKX0sNjQzMDooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVIoNDAyOSksSz1SKDMwODMpLEk9UigxOTI0KSxrPVIoNzI5NiksRT1JKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIiksaj1SKDY0MTApKCksVj10eXBlb2YgZ2xvYmFsVGhp'@; put 'cz4idSI/Ui5nOmdsb2JhbFRoaXMsQj1LKCksWT1JKCJTdHJpbmcucHJvdG90eXBlLnNsaWNlIiksWD17fSxVPU9iamVjdC5nZXRQcm90b3R5cGVPZjtqJiZrJiZVJiZ6KEIsZnVuY3Rpb24oZWUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBWW2VlXSl7dmFyIHRlPW5ldyBWW2VlXTtpZihTeW1i'@; put 'b2wudG9TdHJpbmdUYWcgaW4gdGUpe3ZhciBvZT1VKHRlKSxzZT1rKG9lLFN5bWJvbC50b1N0cmluZ1RhZyk7aWYoIXNlKXt2YXIgaGU9VShvZSk7c2U9ayhoZSxTeW1ib2wudG9TdHJpbmdUYWcpfVhbZWVdPXNlLmdldH19fSk7dmFyIHE9Uig1NjkyKTtNLmV4cG9ydHM9ZnVuY3Rpb24oZWUp'@; put 'e3JldHVybiEhcShlZSkmJihqJiZTeW1ib2wudG9TdHJpbmdUYWcgaW4gZWU/KHRlPWVlLG9lPSExLHooWCxmdW5jdGlvbihzZSxoZSl7aWYoIW9lKXRyeXt2YXIgdWU9c2UuY2FsbCh0ZSk7dWU9PT1oZSYmKG9lPXVlKX1jYXRjaHt9fSksb2UpOlkoRShlZSksOCwtMSkpO3ZhciB0ZSxvZX19'@; put 'LDI0Nzk6TT0+e00uZXhwb3J0cz1mdW5jdGlvbiBPKFIseil7aWYoUiYmeilyZXR1cm4gTyhSKSh6KTtpZigiZnVuY3Rpb24iIT10eXBlb2YgUil0aHJvdyBuZXcgVHlwZUVycm9yKCJuZWVkIHdyYXBwZXIgZnVuY3Rpb24iKTtyZXR1cm4gT2JqZWN0LmtleXMoUikuZm9yRWFjaChmdW5jdGlv'@; put 'bihJKXtLW0ldPVJbSV19KSxLO2Z1bmN0aW9uIEsoKXtmb3IodmFyIEk9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGs9MDtrPEkubGVuZ3RoO2srKylJW2tdPWFyZ3VtZW50c1trXTt2YXIgRT1SLmFwcGx5KHRoaXMsSSksaj1JW0kubGVuZ3RoLTFdO3JldHVybiJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBFJiZFIT09aiYmT2JqZWN0LmtleXMoaikuZm9yRWFjaChmdW5jdGlvbihWKXtFW1ZdPWpbVl19KSxFfX19LDk1MDooKT0+e30sNjYwMTooKT0+e30sOTIxNDooKT0+e30sODYyMzooKT0+e30sNzc0ODooKT0+e30sNTU2ODooKT0+e30sMjUzNTooKT0+e30sMzcxMDooKT0+e30sNTQ0'@; put 'MzooKT0+e30sNDEyOTooKT0+e30sNjYxOTooKT0+e30sNzEwODooKT0+e30sMjM2MTooKT0+e30sNDYxNjooKT0+e30sNzIxNzooKT0+e30sODM3MzooKT0+e30sMzA4MzooTSxPLFIpPT57InVzZSBzdHJpY3QiO3ZhciB6PVsiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiRmxv'@; put 'YXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJJbnQ4QXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5Il0sSz10eXBlb2YgZ2xvYmFsVGhpcz4idSI/Ui5nOmdsb2JhbFRoaXM7'@; put 'TS5leHBvcnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBJPVtdLGs9MDtrPHoubGVuZ3RoO2srKykiZnVuY3Rpb24iPT10eXBlb2YgS1t6W2tdXSYmKElbSS5sZW5ndGhdPXpba10pO3JldHVybiBJfX0sNDk0NjpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1KU09OLnBhcnNlKCd7ImFlcy0xMjgt'@; put 'ZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTI1Ni1lY2IiOnsiY2lwaGVy'@; put 'IjoiQUVTIiwia2V5IjoyNTYsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTE5Mi1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5'@; put 'IjoxOTIsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczEyOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJt'@; put 'b2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczE5MiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczI1NiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJs'@; put 'b2NrIn0sImFlcy0xMjgtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFl'@; put 'cy0yNTYtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1j'@; put 'ZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiMSI6'@; put 'eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjEiOnsiY2lw'@; put 'aGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItb2ZiIjp7ImNpcGhlciI6IkFF'@; put 'UyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6'@; put 'MTI4LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6'@; put 'MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMtMTkyLWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjEyLCJtb2RlIjoi'@; put 'R0NNIiwidHlwZSI6ImF1dGgifSwiYWVzLTI1Ni1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn19Jyl9LDUyMDc6TT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJzaGEyMjRXaXRoUlNBRW5jcnlw'@; put 'dGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNIQTIyNCI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQw'@; put 'MjA0MDUwMDA0MWMifSwic2hhMjU2V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sIlJTQS1TSEEyNTYiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGEyNTYi'@; put 'LCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJSU0EtU0hBMzg0Ijp7'@; put 'InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJzaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2'@; put 'NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTEiOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGExIiwiaWQiOiIzMDIx'@; put 'MzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwic2hhMjU2Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJzaGEyMjQiOnsic2lnbiI6ImVjZHNhIiwiaGFz'@; put 'aCI6InNoYTIyNCIsImlkIjoiIn0sInNoYTM4NCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwic2hhNTEyIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtU0hBIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoi'@; put 'In0sIkRTQS1TSEExIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEyMjQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJEU0EtU0hBMjI0Ijp7'@; put 'InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMjU2Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwiRFNBLVNIQTI1NiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTM4NCI6'@; put 'eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sIkRTQS1TSEEzODQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEE1MTIiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtU0hBNTEyIjp7InNp'@; put 'Z24iOiJkc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIifSwiRFNBLVJJUEVNRDE2MCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiIn0sInJpcGVtZDE2MFdpdGhSU0EiOnsic2lnbiI6InJzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMjQwMzAy'@; put 'MDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwibWQ1V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJtZDUiLCJpZCI6IjMwMjAzMDBjMDYw'@; put 'ODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9LCJSU0EtTUQ1Ijp7InNpZ24iOiJyc2EiLCJoYXNoIjoibWQ1IiwiaWQiOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifX0nKX0sMTMwODpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1KU09OLnBhcnNlKCd7IjEuMy4x'@; put 'MzIuMC4xMCI6InNlY3AyNTZrMSIsIjEuMy4xMzIuMC4zMyI6InAyMjQiLCIxLjIuODQwLjEwMDQ1LjMuMS4xIjoicDE5MiIsIjEuMi44NDAuMTAwNDUuMy4xLjciOiJwMjU2IiwiMS4zLjEzMi4wLjM0IjoicDM4NCIsIjEuMy4xMzIuMC4zNSI6InA1MjEifScpfSwzMjA4Ok09PnsidXNlIHN0'@; put 'cmljdCI7TS5leHBvcnRzPUpTT04ucGFyc2UoJ3siT19SRE9OTFkiOjAsIk9fV1JPTkxZIjoxLCJPX1JEV1IiOjIsIlNfSUZNVCI6NjE0NDAsIlNfSUZSRUciOjMyNzY4LCJTX0lGRElSIjoxNjM4NCwiU19JRkNIUiI6ODE5MiwiU19JRkJMSyI6MjQ1NzYsIlNfSUZJRk8iOjQwOTYsIlNfSUZM'@; put 'TksiOjQwOTYwLCJTX0lGU09DSyI6NDkxNTIsIk9fQ1JFQVQiOjUxMiwiT19FWENMIjoyMDQ4LCJPX05PQ1RUWSI6MTMxMDcyLCJPX1RSVU5DIjoxMDI0LCJPX0FQUEVORCI6OCwiT19ESVJFQ1RPUlkiOjEwNDg1NzYsIk9fTk9GT0xMT1ciOjI1NiwiT19TWU5DIjoxMjgsIk9fU1lNTElOSyI6'@; put 'MjA5NzE1MiwiT19OT05CTE9DSyI6NCwiU19JUldYVSI6NDQ4LCJTX0lSVVNSIjoyNTYsIlNfSVdVU1IiOjEyOCwiU19JWFVTUiI6NjQsIlNfSVJXWEciOjU2LCJTX0lSR1JQIjozMiwiU19JV0dSUCI6MTYsIlNfSVhHUlAiOjgsIlNfSVJXWE8iOjcsIlNfSVJPVEgiOjQsIlNfSVdPVEgiOjIs'@; put 'IlNfSVhPVEgiOjEsIkUyQklHIjo3LCJFQUNDRVMiOjEzLCJFQUREUklOVVNFIjo0OCwiRUFERFJOT1RBVkFJTCI6NDksIkVBRk5PU1VQUE9SVCI6NDcsIkVBR0FJTiI6MzUsIkVBTFJFQURZIjozNywiRUJBREYiOjksIkVCQURNU0ciOjk0LCJFQlVTWSI6MTYsIkVDQU5DRUxFRCI6ODksIkVD'@; put 'SElMRCI6MTAsIkVDT05OQUJPUlRFRCI6NTMsIkVDT05OUkVGVVNFRCI6NjEsIkVDT05OUkVTRVQiOjU0LCJFREVBRExLIjoxMSwiRURFU1RBRERSUkVRIjozOSwiRURPTSI6MzMsIkVEUVVPVCI6NjksIkVFWElTVCI6MTcsIkVGQVVMVCI6MTQsIkVGQklHIjoyNywiRUhPU1RVTlJFQUNIIjo2'@; put 'NSwiRUlEUk0iOjkwLCJFSUxTRVEiOjkyLCJFSU5QUk9HUkVTUyI6MzYsIkVJTlRSIjo0LCJFSU5WQUwiOjIyLCJFSU8iOjUsIkVJU0NPTk4iOjU2LCJFSVNESVIiOjIxLCJFTE9PUCI6NjIsIkVNRklMRSI6MjQsIkVNTElOSyI6MzEsIkVNU0dTSVpFIjo0MCwiRU1VTFRJSE9QIjo5NSwiRU5B'@; put 'TUVUT09MT05HIjo2MywiRU5FVERPV04iOjUwLCJFTkVUUkVTRVQiOjUyLCJFTkVUVU5SRUFDSCI6NTEsIkVORklMRSI6MjMsIkVOT0JVRlMiOjU1LCJFTk9EQVRBIjo5NiwiRU5PREVWIjoxOSwiRU5PRU5UIjoyLCJFTk9FWEVDIjo4LCJFTk9MQ0siOjc3LCJFTk9MSU5LIjo5NywiRU5PTUVN'@; put 'IjoxMiwiRU5PTVNHIjo5MSwiRU5PUFJPVE9PUFQiOjQyLCJFTk9TUEMiOjI4LCJFTk9TUiI6OTgsIkVOT1NUUiI6OTksIkVOT1NZUyI6NzgsIkVOT1RDT05OIjo1NywiRU5PVERJUiI6MjAsIkVOT1RFTVBUWSI6NjYsIkVOT1RTT0NLIjozOCwiRU5PVFNVUCI6NDUsIkVOT1RUWSI6MjUsIkVO'@; put 'WElPIjo2LCJFT1BOT1RTVVBQIjoxMDIsIkVPVkVSRkxPVyI6ODQsIkVQRVJNIjoxLCJFUElQRSI6MzIsIkVQUk9UTyI6MTAwLCJFUFJPVE9OT1NVUFBPUlQiOjQzLCJFUFJPVE9UWVBFIjo0MSwiRVJBTkdFIjozNCwiRVJPRlMiOjMwLCJFU1BJUEUiOjI5LCJFU1JDSCI6MywiRVNUQUxFIjo3'@; put 'MCwiRVRJTUUiOjEwMSwiRVRJTUVET1VUIjo2MCwiRVRYVEJTWSI6MjYsIkVXT1VMREJMT0NLIjozNSwiRVhERVYiOjE4LCJTSUdIVVAiOjEsIlNJR0lOVCI6MiwiU0lHUVVJVCI6MywiU0lHSUxMIjo0LCJTSUdUUkFQIjo1LCJTSUdBQlJUIjo2LCJTSUdJT1QiOjYsIlNJR0JVUyI6MTAsIlNJ'@; put 'R0ZQRSI6OCwiU0lHS0lMTCI6OSwiU0lHVVNSMSI6MzAsIlNJR1NFR1YiOjExLCJTSUdVU1IyIjozMSwiU0lHUElQRSI6MTMsIlNJR0FMUk0iOjE0LCJTSUdURVJNIjoxNSwiU0lHQ0hMRCI6MjAsIlNJR0NPTlQiOjE5LCJTSUdTVE9QIjoxNywiU0lHVFNUUCI6MTgsIlNJR1RUSU4iOjIxLCJT'@; put 'SUdUVE9VIjoyMiwiU0lHVVJHIjoxNiwiU0lHWENQVSI6MjQsIlNJR1hGU1oiOjI1LCJTSUdWVEFMUk0iOjI2LCJTSUdQUk9GIjoyNywiU0lHV0lOQ0giOjI4LCJTSUdJTyI6MjMsIlNJR1NZUyI6MTIsIlNTTF9PUF9BTEwiOjIxNDc0ODY3MTksIlNTTF9PUF9BTExPV19VTlNBRkVfTEVHQUNZ'@; put 'X1JFTkVHT1RJQVRJT04iOjI2MjE0NCwiU1NMX09QX0NJUEhFUl9TRVJWRVJfUFJFRkVSRU5DRSI6NDE5NDMwNCwiU1NMX09QX0NJU0NPX0FOWUNPTk5FQ1QiOjMyNzY4LCJTU0xfT1BfQ09PS0lFX0VYQ0hBTkdFIjo4MTkyLCJTU0xfT1BfQ1JZUFRPUFJPX1RMU0VYVF9CVUciOjIxNDc0ODM2'@; put 'NDgsIlNTTF9PUF9ET05UX0lOU0VSVF9FTVBUWV9GUkFHTUVOVFMiOjIwNDgsIlNTTF9PUF9FUEhFTUVSQUxfUlNBIjowLCJTU0xfT1BfTEVHQUNZX1NFUlZFUl9DT05ORUNUIjo0LCJTU0xfT1BfTUlDUk9TT0ZUX0JJR19TU0xWM19CVUZGRVIiOjMyLCJTU0xfT1BfTUlDUk9TT0ZUX1NFU1Nf'@; put 'SURfQlVHIjoxLCJTU0xfT1BfTVNJRV9TU0xWMl9SU0FfUEFERElORyI6MCwiU1NMX09QX05FVFNDQVBFX0NBX0ROX0JVRyI6NTM2ODcwOTEyLCJTU0xfT1BfTkVUU0NBUEVfQ0hBTExFTkdFX0JVRyI6MiwiU1NMX09QX05FVFNDQVBFX0RFTU9fQ0lQSEVSX0NIQU5HRV9CVUciOjEwNzM3NDE4'@; put 'MjQsIlNTTF9PUF9ORVRTQ0FQRV9SRVVTRV9DSVBIRVJfQ0hBTkdFX0JVRyI6OCwiU1NMX09QX05PX0NPTVBSRVNTSU9OIjoxMzEwNzIsIlNTTF9PUF9OT19RVUVSWV9NVFUiOjQwOTYsIlNTTF9PUF9OT19TRVNTSU9OX1JFU1VNUFRJT05fT05fUkVORUdPVElBVElPTiI6NjU1MzYsIlNTTF9P'@; put 'UF9OT19TU0x2MiI6MTY3NzcyMTYsIlNTTF9PUF9OT19TU0x2MyI6MzM1NTQ0MzIsIlNTTF9PUF9OT19USUNLRVQiOjE2Mzg0LCJTU0xfT1BfTk9fVExTdjEiOjY3MTA4ODY0LCJTU0xfT1BfTk9fVExTdjFfMSI6MjY4NDM1NDU2LCJTU0xfT1BfTk9fVExTdjFfMiI6MTM0MjE3NzI4LCJTU0xf'@; put 'T1BfUEtDUzFfQ0hFQ0tfMSI6MCwiU1NMX09QX1BLQ1MxX0NIRUNLXzIiOjAsIlNTTF9PUF9TSU5HTEVfREhfVVNFIjoxMDQ4NTc2LCJTU0xfT1BfU0lOR0xFX0VDREhfVVNFIjo1MjQyODgsIlNTTF9PUF9TU0xFQVlfMDgwX0NMSUVOVF9ESF9CVUciOjEyOCwiU1NMX09QX1NTTFJFRjJfUkVV'@; put 'U0VfQ0VSVF9UWVBFX0JVRyI6MCwiU1NMX09QX1RMU19CTE9DS19QQURESU5HX0JVRyI6NTEyLCJTU0xfT1BfVExTX0Q1X0JVRyI6MjU2LCJTU0xfT1BfVExTX1JPTExCQUNLX0JVRyI6ODM4ODYwOCwiRU5HSU5FX01FVEhPRF9EU0EiOjIsIkVOR0lORV9NRVRIT0RfREgiOjQsIkVOR0lORV9N'@; put 'RVRIT0RfUkFORCI6OCwiRU5HSU5FX01FVEhPRF9FQ0RIIjoxNiwiRU5HSU5FX01FVEhPRF9FQ0RTQSI6MzIsIkVOR0lORV9NRVRIT0RfQ0lQSEVSUyI6NjQsIkVOR0lORV9NRVRIT0RfRElHRVNUUyI6MTI4LCJFTkdJTkVfTUVUSE9EX1NUT1JFIjoyNTYsIkVOR0lORV9NRVRIT0RfUEtFWV9N'@; put 'RVRIUyI6NTEyLCJFTkdJTkVfTUVUSE9EX1BLRVlfQVNOMV9NRVRIUyI6MTAyNCwiRU5HSU5FX01FVEhPRF9BTEwiOjY1NTM1LCJFTkdJTkVfTUVUSE9EX05PTkUiOjAsIkRIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUUiOjIsIkRIX0NIRUNLX1BfTk9UX1BSSU1FIjoxLCJESF9VTkFCTEVfVE9f'@; put 'Q0hFQ0tfR0VORVJBVE9SIjo0LCJESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SIjo4LCJOUE5fRU5BQkxFRCI6MSwiUlNBX1BLQ1MxX1BBRERJTkciOjEsIlJTQV9TU0xWMjNfUEFERElORyI6MiwiUlNBX05PX1BBRERJTkciOjMsIlJTQV9QS0NTMV9PQUVQX1BBRERJTkciOjQsIlJTQV9YOTMx'@; put 'X1BBRERJTkciOjUsIlJTQV9QS0NTMV9QU1NfUEFERElORyI6NiwiUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEIjoyLCJQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRCI6NCwiUE9JTlRfQ09OVkVSU0lPTl9IWUJSSUQiOjYsIkZfT0siOjAsIlJfT0siOjQsIldfT0siOjIsIlhfT0si'@; put 'OjEsIlVWX1VEUF9SRVVTRUFERFIiOjR9Jyl9LDk3OTk6TT0+eyJ1c2Ugc3RyaWN0IjtNLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJtb2RwMSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3'@; put 'NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzYTM2MjBmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAyIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZm'@; put 'ZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlh'@; put 'NjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNjUzODFmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHA1Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFj'@; put 'ZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5'@; put 'ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTIzNzMyN2ZmZmZmZmZm'@; put 'ZmZmZmZmZmYifSwibW9kcDE0Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVm'@; put 'MTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4'@; put 'MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5'@; put 'N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWNhYTY4ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNi'@; put 'MTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIz'@; put 'ZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3'@; put 'ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVh'@; put 'NmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEw'@; put 'OGU0YjgyZDEyMGE5M2FkMmNhZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTYiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVm'@; put 'OTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgz'@; put 'NjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRj'@; put 'NTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcx'@; put 'ZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNj'@; put 'MTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2Vl'@; put 'MmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDA2MzE5OWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE3Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIz'@; put 'NGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4'@; put 'NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhj'@; put 'YTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2Jh'@; put 'NjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcw'@; put 'OTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0'@; put 'MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3'@; put 'MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZm'@; put 'YjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3'@; put 'ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGNj'@; put 'NDAyNGZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE4Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFi'@; put 'MzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYz'@; put 'ZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1'@; put 'NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5'@; put 'ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcx'@; put 'OWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYy'@; put 'MTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4'@; put 'MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVh'@; put 'ODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2Ix'@; put 'YTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGJlMTE1OTc0YTM5MjZmMTJmZWU1ZTQzODc3N2NiNmE5MzJkZjhjZDhiZWM0ZDA3M2I5MzFiYTNiYzgzMmI2OGQ5ZGQzMDA3NDFmYTdiZjhhZmM0'@; put 'N2VkMjU3NmY2OTM2YmE0MjQ2NjNhYWI2MzljNWFlNGY1NjgzNDIzYjQ3NDJiZjFjOTc4MjM4ZjE2Y2JlMzlkNjUyZGUzZmRiOGJlZmM4NDhhZDkyMjIyMmUwNGE0MDM3YzA3MTNlYjU3YTgxYTIzZjBjNzM0NzNmYzY0NmNlYTMwNmI0YmNiYzg4NjJmODM4NWRkZmE5ZDRiN2ZhMmMwODdlODc5'@; put 'NjgzMzAzZWQ1YmRkM2EwNjJiM2NmNWIzYTI3OGE2NmQyYTEzZjgzZjQ0ZjgyZGRmMzEwZWUwNzRhYjZhMzY0NTk3ZTg5OWEwMjU1ZGMxNjRmMzFjYzUwODQ2ODUxZGY5YWI0ODE5NWRlZDdlYTFiMWQ1MTBiZDdlZTc0ZDczZmFmMzZiYzMxZWNmYTI2ODM1OTA0NmY0ZWI4NzlmOTI0MDA5NDM4'@; put 'YjQ4MWM2Y2Q3ODg5YTAwMmVkNWVlMzgyYmM5MTkwZGE2ZmMwMjZlNDc5NTU4ZTQ0NzU2NzdlOWFhOWUzMDUwZTI3NjU2OTRkZmM4MWY1NmU4ODBiOTZlNzE2MGM5ODBkZDk4ZWRkM2RmZmZmZmZmZmZmZmZmZmZmZiJ9fScpfSw4NTk3Ok09PnsidXNlIHN0cmljdCI7TS5leHBvcnRzPXtpODoi'@; put 'Ni41LjQifX0sMjU2MjpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1KU09OLnBhcnNlKCd7IjIuMTYuODQwLjEuMTAxLjMuNC4xLjEiOiJhZXMtMTI4LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIiOiJhZXMtMTI4LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjMiOiJhZXMtMTI4'@; put 'LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQiOiJhZXMtMTI4LWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIxIjoiYWVzLTE5Mi1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMiI6ImFlcy0xOTItY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjMiOiJhZXMtMTkyLW9mYiIs'@; put 'IjIuMTYuODQwLjEuMTAxLjMuNC4xLjI0IjoiYWVzLTE5Mi1jZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MSI6ImFlcy0yNTYtZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDIiOiJhZXMtMjU2LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQzIjoiYWVzLTI1Ni1vZmIiLCIyLjE2'@; put 'Ljg0MC4xLjEwMS4zLjQuMS40NCI6ImFlcy0yNTYtY2ZiIn0nKX0sMzcwNDpNPT57InVzZSBzdHJpY3QiO00uZXhwb3J0cz1KU09OLnBhcnNlKCdbImFjIiwiY29tLmFjIiwiZWR1LmFjIiwiZ292LmFjIiwibmV0LmFjIiwibWlsLmFjIiwib3JnLmFjIiwiYWQiLCJub20uYWQiLCJhZSIsImNv'@; put 'LmFlIiwibmV0LmFlIiwib3JnLmFlIiwic2NoLmFlIiwiYWMuYWUiLCJnb3YuYWUiLCJtaWwuYWUiLCJhZXJvIiwiYWNjaWRlbnQtaW52ZXN0aWdhdGlvbi5hZXJvIiwiYWNjaWRlbnQtcHJldmVudGlvbi5hZXJvIiwiYWVyb2JhdGljLmFlcm8iLCJhZXJvY2x1Yi5hZXJvIiwiYWVyb2Ryb21l'@; put 'LmFlcm8iLCJhZ2VudHMuYWVybyIsImFpcmNyYWZ0LmFlcm8iLCJhaXJsaW5lLmFlcm8iLCJhaXJwb3J0LmFlcm8iLCJhaXItc3VydmVpbGxhbmNlLmFlcm8iLCJhaXJ0cmFmZmljLmFlcm8iLCJhaXItdHJhZmZpYy1jb250cm9sLmFlcm8iLCJhbWJ1bGFuY2UuYWVybyIsImFtdXNlbWVudC5h'@; put 'ZXJvIiwiYXNzb2NpYXRpb24uYWVybyIsImF1dGhvci5hZXJvIiwiYmFsbG9vbmluZy5hZXJvIiwiYnJva2VyLmFlcm8iLCJjYWEuYWVybyIsImNhcmdvLmFlcm8iLCJjYXRlcmluZy5hZXJvIiwiY2VydGlmaWNhdGlvbi5hZXJvIiwiY2hhbXBpb25zaGlwLmFlcm8iLCJjaGFydGVyLmFlcm8i'@; put 'LCJjaXZpbGF2aWF0aW9uLmFlcm8iLCJjbHViLmFlcm8iLCJjb25mZXJlbmNlLmFlcm8iLCJjb25zdWx0YW50LmFlcm8iLCJjb25zdWx0aW5nLmFlcm8iLCJjb250cm9sLmFlcm8iLCJjb3VuY2lsLmFlcm8iLCJjcmV3LmFlcm8iLCJkZXNpZ24uYWVybyIsImRnY2EuYWVybyIsImVkdWNhdG9y'@; put 'LmFlcm8iLCJlbWVyZ2VuY3kuYWVybyIsImVuZ2luZS5hZXJvIiwiZW5naW5lZXIuYWVybyIsImVudGVydGFpbm1lbnQuYWVybyIsImVxdWlwbWVudC5hZXJvIiwiZXhjaGFuZ2UuYWVybyIsImV4cHJlc3MuYWVybyIsImZlZGVyYXRpb24uYWVybyIsImZsaWdodC5hZXJvIiwiZnVlbC5hZXJv'@; put 'IiwiZ2xpZGluZy5hZXJvIiwiZ292ZXJubWVudC5hZXJvIiwiZ3JvdW5kaGFuZGxpbmcuYWVybyIsImdyb3VwLmFlcm8iLCJoYW5nZ2xpZGluZy5hZXJvIiwiaG9tZWJ1aWx0LmFlcm8iLCJpbnN1cmFuY2UuYWVybyIsImpvdXJuYWwuYWVybyIsImpvdXJuYWxpc3QuYWVybyIsImxlYXNpbmcu'@; put 'YWVybyIsImxvZ2lzdGljcy5hZXJvIiwibWFnYXppbmUuYWVybyIsIm1haW50ZW5hbmNlLmFlcm8iLCJtZWRpYS5hZXJvIiwibWljcm9saWdodC5hZXJvIiwibW9kZWxsaW5nLmFlcm8iLCJuYXZpZ2F0aW9uLmFlcm8iLCJwYXJhY2h1dGluZy5hZXJvIiwicGFyYWdsaWRpbmcuYWVybyIsInBh'@; put 'c3Nlbmdlci1hc3NvY2lhdGlvbi5hZXJvIiwicGlsb3QuYWVybyIsInByZXNzLmFlcm8iLCJwcm9kdWN0aW9uLmFlcm8iLCJyZWNyZWF0aW9uLmFlcm8iLCJyZXBib2R5LmFlcm8iLCJyZXMuYWVybyIsInJlc2VhcmNoLmFlcm8iLCJyb3RvcmNyYWZ0LmFlcm8iLCJzYWZldHkuYWVybyIsInNj'@; put 'aWVudGlzdC5hZXJvIiwic2VydmljZXMuYWVybyIsInNob3cuYWVybyIsInNreWRpdmluZy5hZXJvIiwic29mdHdhcmUuYWVybyIsInN0dWRlbnQuYWVybyIsInRyYWRlci5hZXJvIiwidHJhZGluZy5hZXJvIiwidHJhaW5lci5hZXJvIiwidW5pb24uYWVybyIsIndvcmtpbmdncm91cC5hZXJv'@; put 'Iiwid29ya3MuYWVybyIsImFmIiwiZ292LmFmIiwiY29tLmFmIiwib3JnLmFmIiwibmV0LmFmIiwiZWR1LmFmIiwiYWciLCJjb20uYWciLCJvcmcuYWciLCJuZXQuYWciLCJjby5hZyIsIm5vbS5hZyIsImFpIiwib2ZmLmFpIiwiY29tLmFpIiwibmV0LmFpIiwib3JnLmFpIiwiYWwiLCJjb20u'@; put 'YWwiLCJlZHUuYWwiLCJnb3YuYWwiLCJtaWwuYWwiLCJuZXQuYWwiLCJvcmcuYWwiLCJhbSIsImNvLmFtIiwiY29tLmFtIiwiY29tbXVuZS5hbSIsIm5ldC5hbSIsIm9yZy5hbSIsImFvIiwiZWQuYW8iLCJndi5hbyIsIm9nLmFvIiwiY28uYW8iLCJwYi5hbyIsIml0LmFvIiwiYXEiLCJhciIs'@; put 'ImJldC5hciIsImNvbS5hciIsImNvb3AuYXIiLCJlZHUuYXIiLCJnb2IuYXIiLCJnb3YuYXIiLCJpbnQuYXIiLCJtaWwuYXIiLCJtdXNpY2EuYXIiLCJtdXR1YWwuYXIiLCJuZXQuYXIiLCJvcmcuYXIiLCJzZW5hc2EuYXIiLCJ0dXIuYXIiLCJhcnBhIiwiZTE2NC5hcnBhIiwiaW4tYWRkci5h'@; put 'cnBhIiwiaXA2LmFycGEiLCJpcmlzLmFycGEiLCJ1cmkuYXJwYSIsInVybi5hcnBhIiwiYXMiLCJnb3YuYXMiLCJhc2lhIiwiYXQiLCJhYy5hdCIsImNvLmF0IiwiZ3YuYXQiLCJvci5hdCIsInN0aC5hYy5hdCIsImF1IiwiY29tLmF1IiwibmV0LmF1Iiwib3JnLmF1IiwiZWR1LmF1IiwiZ292'@; put 'LmF1IiwiYXNuLmF1IiwiaWQuYXUiLCJpbmZvLmF1IiwiY29uZi5hdSIsIm96LmF1IiwiYWN0LmF1IiwibnN3LmF1IiwibnQuYXUiLCJxbGQuYXUiLCJzYS5hdSIsInRhcy5hdSIsInZpYy5hdSIsIndhLmF1IiwiYWN0LmVkdS5hdSIsImNhdGhvbGljLmVkdS5hdSIsIm5zdy5lZHUuYXUiLCJu'@; put 'dC5lZHUuYXUiLCJxbGQuZWR1LmF1Iiwic2EuZWR1LmF1IiwidGFzLmVkdS5hdSIsInZpYy5lZHUuYXUiLCJ3YS5lZHUuYXUiLCJxbGQuZ292LmF1Iiwic2EuZ292LmF1IiwidGFzLmdvdi5hdSIsInZpYy5nb3YuYXUiLCJ3YS5nb3YuYXUiLCJzY2hvb2xzLm5zdy5lZHUuYXUiLCJhdyIsImNv'@; put 'bS5hdyIsImF4IiwiYXoiLCJjb20uYXoiLCJuZXQuYXoiLCJpbnQuYXoiLCJnb3YuYXoiLCJvcmcuYXoiLCJlZHUuYXoiLCJpbmZvLmF6IiwicHAuYXoiLCJtaWwuYXoiLCJuYW1lLmF6IiwicHJvLmF6IiwiYml6LmF6IiwiYmEiLCJjb20uYmEiLCJlZHUuYmEiLCJnb3YuYmEiLCJtaWwuYmEi'@; put 'LCJuZXQuYmEiLCJvcmcuYmEiLCJiYiIsImJpei5iYiIsImNvLmJiIiwiY29tLmJiIiwiZWR1LmJiIiwiZ292LmJiIiwiaW5mby5iYiIsIm5ldC5iYiIsIm9yZy5iYiIsInN0b3JlLmJiIiwidHYuYmIiLCIqLmJkIiwiYmUiLCJhYy5iZSIsImJmIiwiZ292LmJmIiwiYmciLCJhLmJnIiwiYi5i'@; put 'ZyIsImMuYmciLCJkLmJnIiwiZS5iZyIsImYuYmciLCJnLmJnIiwiaC5iZyIsImkuYmciLCJqLmJnIiwiay5iZyIsImwuYmciLCJtLmJnIiwibi5iZyIsIm8uYmciLCJwLmJnIiwicS5iZyIsInIuYmciLCJzLmJnIiwidC5iZyIsInUuYmciLCJ2LmJnIiwidy5iZyIsInguYmciLCJ5LmJnIiwi'@; put 'ei5iZyIsIjAuYmciLCIxLmJnIiwiMi5iZyIsIjMuYmciLCI0LmJnIiwiNS5iZyIsIjYuYmciLCI3LmJnIiwiOC5iZyIsIjkuYmciLCJiaCIsImNvbS5iaCIsImVkdS5iaCIsIm5ldC5iaCIsIm9yZy5iaCIsImdvdi5iaCIsImJpIiwiY28uYmkiLCJjb20uYmkiLCJlZHUuYmkiLCJvci5iaSIs'@; put 'Im9yZy5iaSIsImJpeiIsImJqIiwiYXNzby5iaiIsImJhcnJlYXUuYmoiLCJnb3V2LmJqIiwiYm0iLCJjb20uYm0iLCJlZHUuYm0iLCJnb3YuYm0iLCJuZXQuYm0iLCJvcmcuYm0iLCJibiIsImNvbS5ibiIsImVkdS5ibiIsImdvdi5ibiIsIm5ldC5ibiIsIm9yZy5ibiIsImJvIiwiY29tLmJv'@; put 'IiwiZWR1LmJvIiwiZ29iLmJvIiwiaW50LmJvIiwib3JnLmJvIiwibmV0LmJvIiwibWlsLmJvIiwidHYuYm8iLCJ3ZWIuYm8iLCJhY2FkZW1pYS5ibyIsImFncm8uYm8iLCJhcnRlLmJvIiwiYmxvZy5ibyIsImJvbGl2aWEuYm8iLCJjaWVuY2lhLmJvIiwiY29vcGVyYXRpdmEuYm8iLCJkZW1v'@; put 'Y3JhY2lhLmJvIiwiZGVwb3J0ZS5ibyIsImVjb2xvZ2lhLmJvIiwiZWNvbm9taWEuYm8iLCJlbXByZXNhLmJvIiwiaW5kaWdlbmEuYm8iLCJpbmR1c3RyaWEuYm8iLCJpbmZvLmJvIiwibWVkaWNpbmEuYm8iLCJtb3ZpbWllbnRvLmJvIiwibXVzaWNhLmJvIiwibmF0dXJhbC5ibyIsIm5vbWJy'@; put 'ZS5ibyIsIm5vdGljaWFzLmJvIiwicGF0cmlhLmJvIiwicG9saXRpY2EuYm8iLCJwcm9mZXNpb25hbC5ibyIsInBsdXJpbmFjaW9uYWwuYm8iLCJwdWVibG8uYm8iLCJyZXZpc3RhLmJvIiwic2FsdWQuYm8iLCJ0ZWNub2xvZ2lhLmJvIiwidGtzYXQuYm8iLCJ0cmFuc3BvcnRlLmJvIiwid2lr'@; put 'aS5ibyIsImJyIiwiOWd1YWN1LmJyIiwiYWJjLmJyIiwiYWRtLmJyIiwiYWR2LmJyIiwiYWdyLmJyIiwiYWp1LmJyIiwiYW0uYnIiLCJhbmFuaS5iciIsImFwYXJlY2lkYS5iciIsImFwcC5iciIsImFycS5iciIsImFydC5iciIsImF0by5iciIsImIuYnIiLCJiYXJ1ZXJpLmJyIiwiYmVsZW0u'@; put 'YnIiLCJiaHouYnIiLCJiaWIuYnIiLCJiaW8uYnIiLCJibG9nLmJyIiwiYm1kLmJyIiwiYm9hdmlzdGEuYnIiLCJic2IuYnIiLCJjYW1waW5hZ3JhbmRlLmJyIiwiY2FtcGluYXMuYnIiLCJjYXhpYXMuYnIiLCJjaW0uYnIiLCJjbmcuYnIiLCJjbnQuYnIiLCJjb20uYnIiLCJjb250YWdlbS5i'@; put 'ciIsImNvb3AuYnIiLCJjb3ouYnIiLCJjcmkuYnIiLCJjdWlhYmEuYnIiLCJjdXJpdGliYS5iciIsImRlZi5iciIsImRlcy5iciIsImRldC5iciIsImRldi5iciIsImVjbi5iciIsImVjby5iciIsImVkdS5iciIsImVtcC5iciIsImVuZi5iciIsImVuZy5iciIsImVzcC5iciIsImV0Yy5iciIs'@; put 'ImV0aS5iciIsImZhci5iciIsImZlaXJhLmJyIiwiZmxvZy5iciIsImZsb3JpcGEuYnIiLCJmbS5iciIsImZuZC5iciIsImZvcnRhbC5iciIsImZvdC5iciIsImZvei5iciIsImZzdC5iciIsImcxMi5iciIsImdlby5iciIsImdnZi5iciIsImdvaWFuaWEuYnIiLCJnb3YuYnIiLCJhYy5nb3Yu'@; put 'YnIiLCJhbC5nb3YuYnIiLCJhbS5nb3YuYnIiLCJhcC5nb3YuYnIiLCJiYS5nb3YuYnIiLCJjZS5nb3YuYnIiLCJkZi5nb3YuYnIiLCJlcy5nb3YuYnIiLCJnby5nb3YuYnIiLCJtYS5nb3YuYnIiLCJtZy5nb3YuYnIiLCJtcy5nb3YuYnIiLCJtdC5nb3YuYnIiLCJwYS5nb3YuYnIiLCJwYi5n'@; put 'b3YuYnIiLCJwZS5nb3YuYnIiLCJwaS5nb3YuYnIiLCJwci5nb3YuYnIiLCJyai5nb3YuYnIiLCJybi5nb3YuYnIiLCJyby5nb3YuYnIiLCJyci5nb3YuYnIiLCJycy5nb3YuYnIiLCJzYy5nb3YuYnIiLCJzZS5nb3YuYnIiLCJzcC5nb3YuYnIiLCJ0by5nb3YuYnIiLCJncnUuYnIiLCJpbWIu'@; put 'YnIiLCJpbmQuYnIiLCJpbmYuYnIiLCJqYWIuYnIiLCJqYW1wYS5iciIsImpkZi5iciIsImpvaW52aWxsZS5iciIsImpvci5iciIsImp1cy5iciIsImxlZy5iciIsImxlbC5iciIsImxvZy5iciIsImxvbmRyaW5hLmJyIiwibWFjYXBhLmJyIiwibWFjZWlvLmJyIiwibWFuYXVzLmJyIiwibWFy'@; put 'aW5nYS5iciIsIm1hdC5iciIsIm1lZC5iciIsIm1pbC5iciIsIm1vcmVuYS5iciIsIm1wLmJyIiwibXVzLmJyIiwibmF0YWwuYnIiLCJuZXQuYnIiLCJuaXRlcm9pLmJyIiwiKi5ub20uYnIiLCJub3QuYnIiLCJudHIuYnIiLCJvZG8uYnIiLCJvbmcuYnIiLCJvcmcuYnIiLCJvc2FzY28uYnIi'@; put 'LCJwYWxtYXMuYnIiLCJwb2EuYnIiLCJwcGcuYnIiLCJwcm8uYnIiLCJwc2MuYnIiLCJwc2kuYnIiLCJwdmguYnIiLCJxc2wuYnIiLCJyYWRpby5iciIsInJlYy5iciIsInJlY2lmZS5iciIsInJlcC5iciIsInJpYmVpcmFvLmJyIiwicmlvLmJyIiwicmlvYnJhbmNvLmJyIiwicmlvcHJldG8u'@; put 'YnIiLCJzYWx2YWRvci5iciIsInNhbXBhLmJyIiwic2FudGFtYXJpYS5iciIsInNhbnRvYW5kcmUuYnIiLCJzYW9iZXJuYXJkby5iciIsInNhb2dvbmNhLmJyIiwic2VnLmJyIiwic2pjLmJyIiwic2xnLmJyIiwic2x6LmJyIiwic29yb2NhYmEuYnIiLCJzcnYuYnIiLCJ0YXhpLmJyIiwidGMu'@; put 'YnIiLCJ0ZWMuYnIiLCJ0ZW8uYnIiLCJ0aGUuYnIiLCJ0bXAuYnIiLCJ0cmQuYnIiLCJ0dXIuYnIiLCJ0di5iciIsInVkaS5iciIsInZldC5iciIsInZpeC5iciIsInZsb2cuYnIiLCJ3aWtpLmJyIiwiemxnLmJyIiwiYnMiLCJjb20uYnMiLCJuZXQuYnMiLCJvcmcuYnMiLCJlZHUuYnMiLCJn'@; put 'b3YuYnMiLCJidCIsImNvbS5idCIsImVkdS5idCIsImdvdi5idCIsIm5ldC5idCIsIm9yZy5idCIsImJ2IiwiYnciLCJjby5idyIsIm9yZy5idyIsImJ5IiwiZ292LmJ5IiwibWlsLmJ5IiwiY29tLmJ5Iiwib2YuYnkiLCJieiIsImNvbS5ieiIsIm5ldC5ieiIsIm9yZy5ieiIsImVkdS5ieiIs'@; put 'Imdvdi5ieiIsImNhIiwiYWIuY2EiLCJiYy5jYSIsIm1iLmNhIiwibmIuY2EiLCJuZi5jYSIsIm5sLmNhIiwibnMuY2EiLCJudC5jYSIsIm51LmNhIiwib24uY2EiLCJwZS5jYSIsInFjLmNhIiwic2suY2EiLCJ5ay5jYSIsImdjLmNhIiwiY2F0IiwiY2MiLCJjZCIsImdvdi5jZCIsImNmIiwi'@; put 'Y2ciLCJjaCIsImNpIiwib3JnLmNpIiwib3IuY2kiLCJjb20uY2kiLCJjby5jaSIsImVkdS5jaSIsImVkLmNpIiwiYWMuY2kiLCJuZXQuY2kiLCJnby5jaSIsImFzc28uY2kiLCJhXHhlOXJvcG9ydC5jaSIsImludC5jaSIsInByZXNzZS5jaSIsIm1kLmNpIiwiZ291di5jaSIsIiouY2siLCIh'@; put 'd3d3LmNrIiwiY2wiLCJjby5jbCIsImdvYi5jbCIsImdvdi5jbCIsIm1pbC5jbCIsImNtIiwiY28uY20iLCJjb20uY20iLCJnb3YuY20iLCJuZXQuY20iLCJjbiIsImFjLmNuIiwiY29tLmNuIiwiZWR1LmNuIiwiZ292LmNuIiwibmV0LmNuIiwib3JnLmNuIiwibWlsLmNuIiwiXHU1MTZjXHU1'@; put 'M2Y4LmNuIiwiXHU3ZjUxXHU3ZWRjLmNuIiwiXHU3ZGIyXHU3ZDYxLmNuIiwiYWguY24iLCJiai5jbiIsImNxLmNuIiwiZmouY24iLCJnZC5jbiIsImdzLmNuIiwiZ3ouY24iLCJneC5jbiIsImhhLmNuIiwiaGIuY24iLCJoZS5jbiIsImhpLmNuIiwiaGwuY24iLCJobi5jbiIsImpsLmNuIiwi'@; put 'anMuY24iLCJqeC5jbiIsImxuLmNuIiwibm0uY24iLCJueC5jbiIsInFoLmNuIiwic2MuY24iLCJzZC5jbiIsInNoLmNuIiwic24uY24iLCJzeC5jbiIsInRqLmNuIiwieGouY24iLCJ4ei5jbiIsInluLmNuIiwiemouY24iLCJoay5jbiIsIm1vLmNuIiwidHcuY24iLCJjbyIsImFydHMuY28i'@; put 'LCJjb20uY28iLCJlZHUuY28iLCJmaXJtLmNvIiwiZ292LmNvIiwiaW5mby5jbyIsImludC5jbyIsIm1pbC5jbyIsIm5ldC5jbyIsIm5vbS5jbyIsIm9yZy5jbyIsInJlYy5jbyIsIndlYi5jbyIsImNvbSIsImNvb3AiLCJjciIsImFjLmNyIiwiY28uY3IiLCJlZC5jciIsImZpLmNyIiwiZ28u'@; put 'Y3IiLCJvci5jciIsInNhLmNyIiwiY3UiLCJjb20uY3UiLCJlZHUuY3UiLCJvcmcuY3UiLCJuZXQuY3UiLCJnb3YuY3UiLCJpbmYuY3UiLCJjdiIsImNvbS5jdiIsImVkdS5jdiIsImludC5jdiIsIm5vbWUuY3YiLCJvcmcuY3YiLCJjdyIsImNvbS5jdyIsImVkdS5jdyIsIm5ldC5jdyIsIm9y'@; put 'Zy5jdyIsImN4IiwiZ292LmN4IiwiY3kiLCJhYy5jeSIsImJpei5jeSIsImNvbS5jeSIsImVrbG9nZXMuY3kiLCJnb3YuY3kiLCJsdGQuY3kiLCJtaWwuY3kiLCJuZXQuY3kiLCJvcmcuY3kiLCJwcmVzcy5jeSIsInByby5jeSIsInRtLmN5IiwiY3oiLCJkZSIsImRqIiwiZGsiLCJkbSIsImNv'@; put 'bS5kbSIsIm5ldC5kbSIsIm9yZy5kbSIsImVkdS5kbSIsImdvdi5kbSIsImRvIiwiYXJ0LmRvIiwiY29tLmRvIiwiZWR1LmRvIiwiZ29iLmRvIiwiZ292LmRvIiwibWlsLmRvIiwibmV0LmRvIiwib3JnLmRvIiwic2xkLmRvIiwid2ViLmRvIiwiZHoiLCJhcnQuZHoiLCJhc3NvLmR6IiwiY29t'@; put 'LmR6IiwiZWR1LmR6IiwiZ292LmR6Iiwib3JnLmR6IiwibmV0LmR6IiwicG9sLmR6Iiwic29jLmR6IiwidG0uZHoiLCJlYyIsImNvbS5lYyIsImluZm8uZWMiLCJuZXQuZWMiLCJmaW4uZWMiLCJrMTIuZWMiLCJtZWQuZWMiLCJwcm8uZWMiLCJvcmcuZWMiLCJlZHUuZWMiLCJnb3YuZWMiLCJn'@; put 'b2IuZWMiLCJtaWwuZWMiLCJlZHUiLCJlZSIsImVkdS5lZSIsImdvdi5lZSIsInJpaWsuZWUiLCJsaWIuZWUiLCJtZWQuZWUiLCJjb20uZWUiLCJwcmkuZWUiLCJhaXAuZWUiLCJvcmcuZWUiLCJmaWUuZWUiLCJlZyIsImNvbS5lZyIsImVkdS5lZyIsImV1bi5lZyIsImdvdi5lZyIsIm1pbC5l'@; put 'ZyIsIm5hbWUuZWciLCJuZXQuZWciLCJvcmcuZWciLCJzY2kuZWciLCIqLmVyIiwiZXMiLCJjb20uZXMiLCJub20uZXMiLCJvcmcuZXMiLCJnb2IuZXMiLCJlZHUuZXMiLCJldCIsImNvbS5ldCIsImdvdi5ldCIsIm9yZy5ldCIsImVkdS5ldCIsImJpei5ldCIsIm5hbWUuZXQiLCJpbmZvLmV0'@; put 'IiwibmV0LmV0IiwiZXUiLCJmaSIsImFsYW5kLmZpIiwiZmoiLCJhYy5maiIsImJpei5maiIsImNvbS5maiIsImdvdi5maiIsImluZm8uZmoiLCJtaWwuZmoiLCJuYW1lLmZqIiwibmV0LmZqIiwib3JnLmZqIiwicHJvLmZqIiwiKi5mayIsImNvbS5mbSIsImVkdS5mbSIsIm5ldC5mbSIsIm9y'@; put 'Zy5mbSIsImZtIiwiZm8iLCJmciIsImFzc28uZnIiLCJjb20uZnIiLCJnb3V2LmZyIiwibm9tLmZyIiwicHJkLmZyIiwidG0uZnIiLCJhZXJvcG9ydC5mciIsImF2b2NhdC5mciIsImF2b3Vlcy5mciIsImNjaS5mciIsImNoYW1iYWdyaS5mciIsImNoaXJ1cmdpZW5zLWRlbnRpc3Rlcy5mciIs'@; put 'ImV4cGVydHMtY29tcHRhYmxlcy5mciIsImdlb21ldHJlLWV4cGVydC5mciIsImdyZXRhLmZyIiwiaHVpc3NpZXItanVzdGljZS5mciIsIm1lZGVjaW4uZnIiLCJub3RhaXJlcy5mciIsInBoYXJtYWNpZW4uZnIiLCJwb3J0LmZyIiwidmV0ZXJpbmFpcmUuZnIiLCJnYSIsImdiIiwiZWR1Lmdk'@; put 'IiwiZ292LmdkIiwiZ2QiLCJnZSIsImNvbS5nZSIsImVkdS5nZSIsImdvdi5nZSIsIm9yZy5nZSIsIm1pbC5nZSIsIm5ldC5nZSIsInB2dC5nZSIsImdmIiwiZ2ciLCJjby5nZyIsIm5ldC5nZyIsIm9yZy5nZyIsImdoIiwiY29tLmdoIiwiZWR1LmdoIiwiZ292LmdoIiwib3JnLmdoIiwibWls'@; put 'LmdoIiwiZ2kiLCJjb20uZ2kiLCJsdGQuZ2kiLCJnb3YuZ2kiLCJtb2QuZ2kiLCJlZHUuZ2kiLCJvcmcuZ2kiLCJnbCIsImNvLmdsIiwiY29tLmdsIiwiZWR1LmdsIiwibmV0LmdsIiwib3JnLmdsIiwiZ20iLCJnbiIsImFjLmduIiwiY29tLmduIiwiZWR1LmduIiwiZ292LmduIiwib3JnLmdu'@; put 'IiwibmV0LmduIiwiZ292IiwiZ3AiLCJjb20uZ3AiLCJuZXQuZ3AiLCJtb2JpLmdwIiwiZWR1LmdwIiwib3JnLmdwIiwiYXNzby5ncCIsImdxIiwiZ3IiLCJjb20uZ3IiLCJlZHUuZ3IiLCJuZXQuZ3IiLCJvcmcuZ3IiLCJnb3YuZ3IiLCJncyIsImd0IiwiY29tLmd0IiwiZWR1Lmd0IiwiZ29i'@; put 'Lmd0IiwiaW5kLmd0IiwibWlsLmd0IiwibmV0Lmd0Iiwib3JnLmd0IiwiZ3UiLCJjb20uZ3UiLCJlZHUuZ3UiLCJnb3YuZ3UiLCJndWFtLmd1IiwiaW5mby5ndSIsIm5ldC5ndSIsIm9yZy5ndSIsIndlYi5ndSIsImd3IiwiZ3kiLCJjby5neSIsImNvbS5neSIsImVkdS5neSIsImdvdi5neSIs'@; put 'Im5ldC5neSIsIm9yZy5neSIsImhrIiwiY29tLmhrIiwiZWR1LmhrIiwiZ292LmhrIiwiaWR2LmhrIiwibmV0LmhrIiwib3JnLmhrIiwiXHU1MTZjXHU1M2Y4LmhrIiwiXHU2NTU5XHU4MGIyLmhrIiwiXHU2NTRlXHU4MGIyLmhrIiwiXHU2NTNmXHU1ZTljLmhrIiwiXHU1MDBiXHU0ZWJhLmhr'@; put 'IiwiXHU0ZTJhXHVmZmZkXHVmZmZkLmhrIiwiXHU3Yjg3XHU0ZWJhLmhrIiwiXHU3ZGIyXHU3ZWRjLmhrIiwiXHU3ZjUxXHU3ZWRjLmhrIiwiXHU3ZWM0XHU3ZTU0LmhrIiwiXHU3ZGIyXHU3ZDYxLmhrIiwiXHU3ZjUxXHU3ZDYxLmhrIiwiXHU3ZWM0XHU3ZWM3LmhrIiwiXHU3ZDQ0XHU3ZTU0'@; put 'LmhrIiwiXHU3ZDQ0XHU3ZWM3LmhrIiwiaG0iLCJobiIsImNvbS5obiIsImVkdS5obiIsIm9yZy5obiIsIm5ldC5obiIsIm1pbC5obiIsImdvYi5obiIsImhyIiwiaXouaHIiLCJmcm9tLmhyIiwibmFtZS5ociIsImNvbS5ociIsImh0IiwiY29tLmh0Iiwic2hvcC5odCIsImZpcm0uaHQiLCJp'@; put 'bmZvLmh0IiwiYWR1bHQuaHQiLCJuZXQuaHQiLCJwcm8uaHQiLCJvcmcuaHQiLCJtZWQuaHQiLCJhcnQuaHQiLCJjb29wLmh0IiwicG9sLmh0IiwiYXNzby5odCIsImVkdS5odCIsInJlbC5odCIsImdvdXYuaHQiLCJwZXJzby5odCIsImh1IiwiY28uaHUiLCJpbmZvLmh1Iiwib3JnLmh1Iiwi'@; put 'cHJpdi5odSIsInNwb3J0Lmh1IiwidG0uaHUiLCIyMDAwLmh1IiwiYWdyYXIuaHUiLCJib2x0Lmh1IiwiY2FzaW5vLmh1IiwiY2l0eS5odSIsImVyb3RpY2EuaHUiLCJlcm90aWthLmh1IiwiZmlsbS5odSIsImZvcnVtLmh1IiwiZ2FtZXMuaHUiLCJob3RlbC5odSIsImluZ2F0bGFuLmh1Iiwi'@; put 'am9nYXN6Lmh1Iiwia29ueXZlbG8uaHUiLCJsYWthcy5odSIsIm1lZGlhLmh1IiwibmV3cy5odSIsInJla2xhbS5odSIsInNleC5odSIsInNob3AuaHUiLCJzdWxpLmh1Iiwic3pleC5odSIsInRvenNkZS5odSIsInV0YXphcy5odSIsInZpZGVvLmh1IiwiaWQiLCJhYy5pZCIsImJpei5pZCIs'@; put 'ImNvLmlkIiwiZGVzYS5pZCIsImdvLmlkIiwibWlsLmlkIiwibXkuaWQiLCJuZXQuaWQiLCJvci5pZCIsInBvbnBlcy5pZCIsInNjaC5pZCIsIndlYi5pZCIsImllIiwiZ292LmllIiwiaWwiLCJhYy5pbCIsImNvLmlsIiwiZ292LmlsIiwiaWRmLmlsIiwiazEyLmlsIiwibXVuaS5pbCIsIm5l'@; put 'dC5pbCIsIm9yZy5pbCIsImltIiwiYWMuaW0iLCJjby5pbSIsImNvbS5pbSIsImx0ZC5jby5pbSIsIm5ldC5pbSIsIm9yZy5pbSIsInBsYy5jby5pbSIsInR0LmltIiwidHYuaW0iLCJpbiIsImNvLmluIiwiZmlybS5pbiIsIm5ldC5pbiIsIm9yZy5pbiIsImdlbi5pbiIsImluZC5pbiIsIm5p'@; put 'Yy5pbiIsImFjLmluIiwiZWR1LmluIiwicmVzLmluIiwiZ292LmluIiwibWlsLmluIiwiaW5mbyIsImludCIsImV1LmludCIsImlvIiwiY29tLmlvIiwiaXEiLCJnb3YuaXEiLCJlZHUuaXEiLCJtaWwuaXEiLCJjb20uaXEiLCJvcmcuaXEiLCJuZXQuaXEiLCJpciIsImFjLmlyIiwiY28uaXIi'@; put 'LCJnb3YuaXIiLCJpZC5pciIsIm5ldC5pciIsIm9yZy5pciIsInNjaC5pciIsIlx1MDYyN1x1MDZjY1x1MDYzMVx1MDYyN1x1MDY0Ni5pciIsIlx1MDYyN1x1MDY0YVx1MDYzMVx1MDYyN1x1MDY0Ni5pciIsImlzIiwibmV0LmlzIiwiY29tLmlzIiwiZWR1LmlzIiwiZ292LmlzIiwib3JnLmlz'@; put 'IiwiaW50LmlzIiwiaXQiLCJnb3YuaXQiLCJlZHUuaXQiLCJhYnIuaXQiLCJhYnJ1enpvLml0IiwiYW9zdGEtdmFsbGV5Lml0IiwiYW9zdGF2YWxsZXkuaXQiLCJiYXMuaXQiLCJiYXNpbGljYXRhLml0IiwiY2FsLml0IiwiY2FsYWJyaWEuaXQiLCJjYW0uaXQiLCJjYW1wYW5pYS5pdCIsImVt'@; put 'aWxpYS1yb21hZ25hLml0IiwiZW1pbGlhcm9tYWduYS5pdCIsImVtci5pdCIsImZyaXVsaS12LWdpdWxpYS5pdCIsImZyaXVsaS12ZS1naXVsaWEuaXQiLCJmcml1bGktdmVnaXVsaWEuaXQiLCJmcml1bGktdmVuZXppYS1naXVsaWEuaXQiLCJmcml1bGktdmVuZXppYWdpdWxpYS5pdCIsImZy'@; put 'aXVsaS12Z2l1bGlhLml0IiwiZnJpdWxpdi1naXVsaWEuaXQiLCJmcml1bGl2ZS1naXVsaWEuaXQiLCJmcml1bGl2ZWdpdWxpYS5pdCIsImZyaXVsaXZlbmV6aWEtZ2l1bGlhLml0IiwiZnJpdWxpdmVuZXppYWdpdWxpYS5pdCIsImZyaXVsaXZnaXVsaWEuaXQiLCJmdmcuaXQiLCJsYXouaXQi'@; put 'LCJsYXppby5pdCIsImxpZy5pdCIsImxpZ3VyaWEuaXQiLCJsb20uaXQiLCJsb21iYXJkaWEuaXQiLCJsb21iYXJkeS5pdCIsImx1Y2FuaWEuaXQiLCJtYXIuaXQiLCJtYXJjaGUuaXQiLCJtb2wuaXQiLCJtb2xpc2UuaXQiLCJwaWVkbW9udC5pdCIsInBpZW1vbnRlLml0IiwicG1uLml0Iiwi'@; put 'cHVnLml0IiwicHVnbGlhLml0Iiwic2FyLml0Iiwic2FyZGVnbmEuaXQiLCJzYXJkaW5pYS5pdCIsInNpYy5pdCIsInNpY2lsaWEuaXQiLCJzaWNpbHkuaXQiLCJ0YWEuaXQiLCJ0b3MuaXQiLCJ0b3NjYW5hLml0IiwidHJlbnRpbi1zdWQtdGlyb2wuaXQiLCJ0cmVudGluLXNceGZjZC10aXJv'@; put 'bC5pdCIsInRyZW50aW4tc3VkdGlyb2wuaXQiLCJ0cmVudGluLXNceGZjZHRpcm9sLml0IiwidHJlbnRpbi1zdWVkLXRpcm9sLml0IiwidHJlbnRpbi1zdWVkdGlyb2wuaXQiLCJ0cmVudGluby1hLWFkaWdlLml0IiwidHJlbnRpbm8tYWFkaWdlLml0IiwidHJlbnRpbm8tYWx0by1hZGlnZS5p'@; put 'dCIsInRyZW50aW5vLWFsdG9hZGlnZS5pdCIsInRyZW50aW5vLXMtdGlyb2wuaXQiLCJ0cmVudGluby1zdGlyb2wuaXQiLCJ0cmVudGluby1zdWQtdGlyb2wuaXQiLCJ0cmVudGluby1zXHhmY2QtdGlyb2wuaXQiLCJ0cmVudGluby1zdWR0aXJvbC5pdCIsInRyZW50aW5vLXNceGZjZHRpcm9s'@; put 'Lml0IiwidHJlbnRpbm8tc3VlZC10aXJvbC5pdCIsInRyZW50aW5vLXN1ZWR0aXJvbC5pdCIsInRyZW50aW5vLml0IiwidHJlbnRpbm9hLWFkaWdlLml0IiwidHJlbnRpbm9hYWRpZ2UuaXQiLCJ0cmVudGlub2FsdG8tYWRpZ2UuaXQiLCJ0cmVudGlub2FsdG9hZGlnZS5pdCIsInRyZW50aW5v'@; put 'cy10aXJvbC5pdCIsInRyZW50aW5vc3Rpcm9sLml0IiwidHJlbnRpbm9zdWQtdGlyb2wuaXQiLCJ0cmVudGlub3NceGZjZC10aXJvbC5pdCIsInRyZW50aW5vc3VkdGlyb2wuaXQiLCJ0cmVudGlub3NceGZjZHRpcm9sLml0IiwidHJlbnRpbm9zdWVkLXRpcm9sLml0IiwidHJlbnRpbm9zdWVk'@; put 'dGlyb2wuaXQiLCJ0cmVudGluc3VkLXRpcm9sLml0IiwidHJlbnRpbnNceGZjZC10aXJvbC5pdCIsInRyZW50aW5zdWR0aXJvbC5pdCIsInRyZW50aW5zXHhmY2R0aXJvbC5pdCIsInRyZW50aW5zdWVkLXRpcm9sLml0IiwidHJlbnRpbnN1ZWR0aXJvbC5pdCIsInR1c2NhbnkuaXQiLCJ1bWIu'@; put 'aXQiLCJ1bWJyaWEuaXQiLCJ2YWwtZC1hb3N0YS5pdCIsInZhbC1kYW9zdGEuaXQiLCJ2YWxkLWFvc3RhLml0IiwidmFsZGFvc3RhLml0IiwidmFsbGUtYW9zdGEuaXQiLCJ2YWxsZS1kLWFvc3RhLml0IiwidmFsbGUtZGFvc3RhLml0IiwidmFsbGVhb3N0YS5pdCIsInZhbGxlZC1hb3N0YS5p'@; put 'dCIsInZhbGxlZGFvc3RhLml0IiwidmFsbGVlLWFvc3RlLml0IiwidmFsbFx4ZTllLWFvc3RlLml0IiwidmFsbGVlLWQtYW9zdGUuaXQiLCJ2YWxsXHhlOWUtZC1hb3N0ZS5pdCIsInZhbGxlZWFvc3RlLml0IiwidmFsbFx4ZTllYW9zdGUuaXQiLCJ2YWxsZWVkYW9zdGUuaXQiLCJ2YWxsXHhl'@; put 'OWVkYW9zdGUuaXQiLCJ2YW8uaXQiLCJ2ZGEuaXQiLCJ2ZW4uaXQiLCJ2ZW5ldG8uaXQiLCJhZy5pdCIsImFncmlnZW50by5pdCIsImFsLml0IiwiYWxlc3NhbmRyaWEuaXQiLCJhbHRvLWFkaWdlLml0IiwiYWx0b2FkaWdlLml0IiwiYW4uaXQiLCJhbmNvbmEuaXQiLCJhbmRyaWEtYmFybGV0'@; put 'dGEtdHJhbmkuaXQiLCJhbmRyaWEtdHJhbmktYmFybGV0dGEuaXQiLCJhbmRyaWFiYXJsZXR0YXRyYW5pLml0IiwiYW5kcmlhdHJhbmliYXJsZXR0YS5pdCIsImFvLml0IiwiYW9zdGEuaXQiLCJhb3N0ZS5pdCIsImFwLml0IiwiYXEuaXQiLCJhcXVpbGEuaXQiLCJhci5pdCIsImFyZXp6by5p'@; put 'dCIsImFzY29saS1waWNlbm8uaXQiLCJhc2NvbGlwaWNlbm8uaXQiLCJhc3RpLml0IiwiYXQuaXQiLCJhdi5pdCIsImF2ZWxsaW5vLml0IiwiYmEuaXQiLCJiYWxzYW4tc3VkdGlyb2wuaXQiLCJiYWxzYW4tc1x4ZmNkdGlyb2wuaXQiLCJiYWxzYW4tc3VlZHRpcm9sLml0IiwiYmFsc2FuLml0'@; put 'IiwiYmFyaS5pdCIsImJhcmxldHRhLXRyYW5pLWFuZHJpYS5pdCIsImJhcmxldHRhdHJhbmlhbmRyaWEuaXQiLCJiZWxsdW5vLml0IiwiYmVuZXZlbnRvLml0IiwiYmVyZ2Ftby5pdCIsImJnLml0IiwiYmkuaXQiLCJiaWVsbGEuaXQiLCJibC5pdCIsImJuLml0IiwiYm8uaXQiLCJib2xvZ25h'@; put 'Lml0IiwiYm9semFuby1hbHRvYWRpZ2UuaXQiLCJib2x6YW5vLml0IiwiYm96ZW4tc3VkdGlyb2wuaXQiLCJib3plbi1zXHhmY2R0aXJvbC5pdCIsImJvemVuLXN1ZWR0aXJvbC5pdCIsImJvemVuLml0IiwiYnIuaXQiLCJicmVzY2lhLml0IiwiYnJpbmRpc2kuaXQiLCJicy5pdCIsImJ0Lml0'@; put 'IiwiYnVsc2FuLXN1ZHRpcm9sLml0IiwiYnVsc2FuLXNceGZjZHRpcm9sLml0IiwiYnVsc2FuLXN1ZWR0aXJvbC5pdCIsImJ1bHNhbi5pdCIsImJ6Lml0IiwiY2EuaXQiLCJjYWdsaWFyaS5pdCIsImNhbHRhbmlzc2V0dGEuaXQiLCJjYW1waWRhbm8tbWVkaW8uaXQiLCJjYW1waWRhbm9tZWRp'@; put 'by5pdCIsImNhbXBvYmFzc28uaXQiLCJjYXJib25pYS1pZ2xlc2lhcy5pdCIsImNhcmJvbmlhaWdsZXNpYXMuaXQiLCJjYXJyYXJhLW1hc3NhLml0IiwiY2FycmFyYW1hc3NhLml0IiwiY2FzZXJ0YS5pdCIsImNhdGFuaWEuaXQiLCJjYXRhbnphcm8uaXQiLCJjYi5pdCIsImNlLml0IiwiY2Vz'@; put 'ZW5hLWZvcmxpLml0IiwiY2VzZW5hLWZvcmxceGVjLml0IiwiY2VzZW5hZm9ybGkuaXQiLCJjZXNlbmFmb3JsXHhlYy5pdCIsImNoLml0IiwiY2hpZXRpLml0IiwiY2kuaXQiLCJjbC5pdCIsImNuLml0IiwiY28uaXQiLCJjb21vLml0IiwiY29zZW56YS5pdCIsImNyLml0IiwiY3JlbW9uYS5p'@; put 'dCIsImNyb3RvbmUuaXQiLCJjcy5pdCIsImN0Lml0IiwiY3VuZW8uaXQiLCJjei5pdCIsImRlbGwtb2dsaWFzdHJhLml0IiwiZGVsbG9nbGlhc3RyYS5pdCIsImVuLml0IiwiZW5uYS5pdCIsImZjLml0IiwiZmUuaXQiLCJmZXJtby5pdCIsImZlcnJhcmEuaXQiLCJmZy5pdCIsImZpLml0Iiwi'@; put 'ZmlyZW56ZS5pdCIsImZsb3JlbmNlLml0IiwiZm0uaXQiLCJmb2dnaWEuaXQiLCJmb3JsaS1jZXNlbmEuaXQiLCJmb3JsXHhlYy1jZXNlbmEuaXQiLCJmb3JsaWNlc2VuYS5pdCIsImZvcmxceGVjY2VzZW5hLml0IiwiZnIuaXQiLCJmcm9zaW5vbmUuaXQiLCJnZS5pdCIsImdlbm9hLml0Iiwi'@; put 'Z2Vub3ZhLml0IiwiZ28uaXQiLCJnb3JpemlhLml0IiwiZ3IuaXQiLCJncm9zc2V0by5pdCIsImlnbGVzaWFzLWNhcmJvbmlhLml0IiwiaWdsZXNpYXNjYXJib25pYS5pdCIsImltLml0IiwiaW1wZXJpYS5pdCIsImlzLml0IiwiaXNlcm5pYS5pdCIsImtyLml0IiwibGEtc3BlemlhLml0Iiwi'@; put 'bGFxdWlsYS5pdCIsImxhc3BlemlhLml0IiwibGF0aW5hLml0IiwibGMuaXQiLCJsZS5pdCIsImxlY2NlLml0IiwibGVjY28uaXQiLCJsaS5pdCIsImxpdm9ybm8uaXQiLCJsby5pdCIsImxvZGkuaXQiLCJsdC5pdCIsImx1Lml0IiwibHVjY2EuaXQiLCJtYWNlcmF0YS5pdCIsIm1hbnRvdmEu'@; put 'aXQiLCJtYXNzYS1jYXJyYXJhLml0IiwibWFzc2FjYXJyYXJhLml0IiwibWF0ZXJhLml0IiwibWIuaXQiLCJtYy5pdCIsIm1lLml0IiwibWVkaW8tY2FtcGlkYW5vLml0IiwibWVkaW9jYW1waWRhbm8uaXQiLCJtZXNzaW5hLml0IiwibWkuaXQiLCJtaWxhbi5pdCIsIm1pbGFuby5pdCIsIm1u'@; put 'Lml0IiwibW8uaXQiLCJtb2RlbmEuaXQiLCJtb256YS1icmlhbnphLml0IiwibW9uemEtZS1kZWxsYS1icmlhbnphLml0IiwibW9uemEuaXQiLCJtb256YWJyaWFuemEuaXQiLCJtb256YWVicmlhbnphLml0IiwibW9uemFlZGVsbGFicmlhbnphLml0IiwibXMuaXQiLCJtdC5pdCIsIm5hLml0'@; put 'IiwibmFwbGVzLml0IiwibmFwb2xpLml0Iiwibm8uaXQiLCJub3ZhcmEuaXQiLCJudS5pdCIsIm51b3JvLml0Iiwib2cuaXQiLCJvZ2xpYXN0cmEuaXQiLCJvbGJpYS10ZW1waW8uaXQiLCJvbGJpYXRlbXBpby5pdCIsIm9yLml0Iiwib3Jpc3Rhbm8uaXQiLCJvdC5pdCIsInBhLml0IiwicGFk'@; put 'b3ZhLml0IiwicGFkdWEuaXQiLCJwYWxlcm1vLml0IiwicGFybWEuaXQiLCJwYXZpYS5pdCIsInBjLml0IiwicGQuaXQiLCJwZS5pdCIsInBlcnVnaWEuaXQiLCJwZXNhcm8tdXJiaW5vLml0IiwicGVzYXJvdXJiaW5vLml0IiwicGVzY2FyYS5pdCIsInBnLml0IiwicGkuaXQiLCJwaWFjZW56'@; put 'YS5pdCIsInBpc2EuaXQiLCJwaXN0b2lhLml0IiwicG4uaXQiLCJwby5pdCIsInBvcmRlbm9uZS5pdCIsInBvdGVuemEuaXQiLCJwci5pdCIsInByYXRvLml0IiwicHQuaXQiLCJwdS5pdCIsInB2Lml0IiwicHouaXQiLCJyYS5pdCIsInJhZ3VzYS5pdCIsInJhdmVubmEuaXQiLCJyYy5pdCIs'@; put 'InJlLml0IiwicmVnZ2lvLWNhbGFicmlhLml0IiwicmVnZ2lvLWVtaWxpYS5pdCIsInJlZ2dpb2NhbGFicmlhLml0IiwicmVnZ2lvZW1pbGlhLml0IiwicmcuaXQiLCJyaS5pdCIsInJpZXRpLml0IiwicmltaW5pLml0Iiwicm0uaXQiLCJybi5pdCIsInJvLml0Iiwicm9tYS5pdCIsInJvbWUu'@; put 'aXQiLCJyb3ZpZ28uaXQiLCJzYS5pdCIsInNhbGVybm8uaXQiLCJzYXNzYXJpLml0Iiwic2F2b25hLml0Iiwic2kuaXQiLCJzaWVuYS5pdCIsInNpcmFjdXNhLml0Iiwic28uaXQiLCJzb25kcmlvLml0Iiwic3AuaXQiLCJzci5pdCIsInNzLml0Iiwic3VlZHRpcm9sLml0Iiwic1x4ZmNkdGly'@; put 'b2wuaXQiLCJzdi5pdCIsInRhLml0IiwidGFyYW50by5pdCIsInRlLml0IiwidGVtcGlvLW9sYmlhLml0IiwidGVtcGlvb2xiaWEuaXQiLCJ0ZXJhbW8uaXQiLCJ0ZXJuaS5pdCIsInRuLml0IiwidG8uaXQiLCJ0b3Jpbm8uaXQiLCJ0cC5pdCIsInRyLml0IiwidHJhbmktYW5kcmlhLWJhcmxl'@; put 'dHRhLml0IiwidHJhbmktYmFybGV0dGEtYW5kcmlhLml0IiwidHJhbmlhbmRyaWFiYXJsZXR0YS5pdCIsInRyYW5pYmFybGV0dGFhbmRyaWEuaXQiLCJ0cmFwYW5pLml0IiwidHJlbnRvLml0IiwidHJldmlzby5pdCIsInRyaWVzdGUuaXQiLCJ0cy5pdCIsInR1cmluLml0IiwidHYuaXQiLCJ1'@; put 'ZC5pdCIsInVkaW5lLml0IiwidXJiaW5vLXBlc2Fyby5pdCIsInVyYmlub3Blc2Fyby5pdCIsInZhLml0IiwidmFyZXNlLml0IiwidmIuaXQiLCJ2Yy5pdCIsInZlLml0IiwidmVuZXppYS5pdCIsInZlbmljZS5pdCIsInZlcmJhbmlhLml0IiwidmVyY2VsbGkuaXQiLCJ2ZXJvbmEuaXQiLCJ2'@; put 'aS5pdCIsInZpYm8tdmFsZW50aWEuaXQiLCJ2aWJvdmFsZW50aWEuaXQiLCJ2aWNlbnphLml0Iiwidml0ZXJiby5pdCIsInZyLml0IiwidnMuaXQiLCJ2dC5pdCIsInZ2Lml0IiwiamUiLCJjby5qZSIsIm5ldC5qZSIsIm9yZy5qZSIsIiouam0iLCJqbyIsImNvbS5qbyIsIm9yZy5qbyIsIm5l'@; put 'dC5qbyIsImVkdS5qbyIsInNjaC5qbyIsImdvdi5qbyIsIm1pbC5qbyIsIm5hbWUuam8iLCJqb2JzIiwianAiLCJhYy5qcCIsImFkLmpwIiwiY28uanAiLCJlZC5qcCIsImdvLmpwIiwiZ3IuanAiLCJsZy5qcCIsIm5lLmpwIiwib3IuanAiLCJhaWNoaS5qcCIsImFraXRhLmpwIiwiYW9tb3Jp'@; put 'LmpwIiwiY2hpYmEuanAiLCJlaGltZS5qcCIsImZ1a3VpLmpwIiwiZnVrdW9rYS5qcCIsImZ1a3VzaGltYS5qcCIsImdpZnUuanAiLCJndW5tYS5qcCIsImhpcm9zaGltYS5qcCIsImhva2thaWRvLmpwIiwiaHlvZ28uanAiLCJpYmFyYWtpLmpwIiwiaXNoaWthd2EuanAiLCJpd2F0ZS5qcCIs'@; put 'ImthZ2F3YS5qcCIsImthZ29zaGltYS5qcCIsImthbmFnYXdhLmpwIiwia29jaGkuanAiLCJrdW1hbW90by5qcCIsImt5b3RvLmpwIiwibWllLmpwIiwibWl5YWdpLmpwIiwibWl5YXpha2kuanAiLCJuYWdhbm8uanAiLCJuYWdhc2FraS5qcCIsIm5hcmEuanAiLCJuaWlnYXRhLmpwIiwib2l0'@; put 'YS5qcCIsIm9rYXlhbWEuanAiLCJva2luYXdhLmpwIiwib3Nha2EuanAiLCJzYWdhLmpwIiwic2FpdGFtYS5qcCIsInNoaWdhLmpwIiwic2hpbWFuZS5qcCIsInNoaXp1b2thLmpwIiwidG9jaGlnaS5qcCIsInRva3VzaGltYS5qcCIsInRva3lvLmpwIiwidG90dG9yaS5qcCIsInRveWFtYS5q'@; put 'cCIsIndha2F5YW1hLmpwIiwieWFtYWdhdGEuanAiLCJ5YW1hZ3VjaGkuanAiLCJ5YW1hbmFzaGkuanAiLCJcdTY4MDNcdTY3MjguanAiLCJcdTYxMWJcdTc3ZTUuanAiLCJcdTYxMWJcdTVhOWIuanAiLCJcdTUxNzVcdTVlYWIuanAiLCJcdTcxOGFcdTY3MmMuanAiLCJcdTgzMjhcdTU3Y2Uu'@; put 'anAiLCJcdTUzMTdcdTZkNzdcdTkwNTMuanAiLCJcdTUzNDNcdTg0NDkuanAiLCJcdTU0OGNcdTZiNGNcdTVjNzEuanAiLCJcdTk1NzdcdTVkMGUuanAiLCJcdTk1NzdcdTkxY2UuanAiLCJcdTY1YjBcdTZmNWYuanAiLCJcdTk3NTJcdTY4ZWUuanAiLCJcdTk3NTlcdTVjYTEuanAiLCJcdTY3'@; put 'NzFcdTRlYWMuanAiLCJcdTc3ZjNcdTVkZGQuanAiLCJcdTU3ZmNcdTczODkuanAiLCJcdTRlMDlcdTkxY2QuanAiLCJcdTRlYWNcdTkwZmQuanAiLCJcdTRmNTBcdThjYzAuanAiLCJcdTU5MjdcdTUyMDYuanAiLCJcdTU5MjdcdTk2MmEuanAiLCJcdTU5NDhcdTgyNmYuanAiLCJcdTViYWVc'@; put 'dTU3Y2UuanAiLCJcdTViYWVcdTVkMGUuanAiLCJcdTViY2NcdTVjNzEuanAiLCJcdTVjNzFcdTUzZTMuanAiLCJcdTVjNzFcdTVmNjIuanAiLCJcdTVjNzFcdTY4YTguanAiLCJcdTVjYTlcdTYyNGIuanAiLCJcdTVjOTBcdTk2MWMuanAiLCJcdTVjYTFcdTVjNzEuanAiLCJcdTVjZjZcdTY4'@; put 'MzkuanAiLCJcdTVlODNcdTVjZjYuanAiLCJcdTVmYjNcdTVjZjYuanAiLCJcdTZjOTZcdTdlMDQuanAiLCJcdTZlY2JcdThjYzAuanAiLCJcdTc5NWVcdTU5NDhcdTVkZGQuanAiLCJcdTc5OGZcdTRlOTUuanAiLCJcdTc5OGZcdTVjYTEuanAiLCJcdTc5OGZcdTVjZjYuanAiLCJcdTc5Y2Jc'@; put 'dTc1MzAuanAiLCJcdTdmYTRcdTk5YWMuanAiLCJcdTk5OTlcdTVkZGQuanAiLCJcdTlhZDhcdTc3ZTUuanAiLCJcdTljZTVcdTUzZDYuanAiLCJcdTllN2ZcdTUxNTBcdTVjZjYuanAiLCIqLmthd2FzYWtpLmpwIiwiKi5raXRha3l1c2h1LmpwIiwiKi5rb2JlLmpwIiwiKi5uYWdveWEuanAi'@; put 'LCIqLnNhcHBvcm8uanAiLCIqLnNlbmRhaS5qcCIsIioueW9rb2hhbWEuanAiLCIhY2l0eS5rYXdhc2FraS5qcCIsIiFjaXR5LmtpdGFreXVzaHUuanAiLCIhY2l0eS5rb2JlLmpwIiwiIWNpdHkubmFnb3lhLmpwIiwiIWNpdHkuc2FwcG9yby5qcCIsIiFjaXR5LnNlbmRhaS5qcCIsIiFjaXR5'@; put 'Lnlva29oYW1hLmpwIiwiYWlzYWkuYWljaGkuanAiLCJhbWEuYWljaGkuanAiLCJhbmpvLmFpY2hpLmpwIiwiYXN1a2UuYWljaGkuanAiLCJjaGlyeXUuYWljaGkuanAiLCJjaGl0YS5haWNoaS5qcCIsImZ1c28uYWljaGkuanAiLCJnYW1hZ29yaS5haWNoaS5qcCIsImhhbmRhLmFpY2hpLmpw'@; put 'IiwiaGF6dS5haWNoaS5qcCIsImhla2luYW4uYWljaGkuanAiLCJoaWdhc2hpdXJhLmFpY2hpLmpwIiwiaWNoaW5vbWl5YS5haWNoaS5qcCIsImluYXphd2EuYWljaGkuanAiLCJpbnV5YW1hLmFpY2hpLmpwIiwiaXNzaGlraS5haWNoaS5qcCIsIml3YWt1cmEuYWljaGkuanAiLCJrYW5pZS5h'@; put 'aWNoaS5qcCIsImthcml5YS5haWNoaS5qcCIsImthc3VnYWkuYWljaGkuanAiLCJraXJhLmFpY2hpLmpwIiwia2l5b3N1LmFpY2hpLmpwIiwia29tYWtpLmFpY2hpLmpwIiwia29uYW4uYWljaGkuanAiLCJrb3RhLmFpY2hpLmpwIiwibWloYW1hLmFpY2hpLmpwIiwibWl5b3NoaS5haWNoaS5q'@; put 'cCIsIm5pc2hpby5haWNoaS5qcCIsIm5pc3NoaW4uYWljaGkuanAiLCJvYnUuYWljaGkuanAiLCJvZ3VjaGkuYWljaGkuanAiLCJvaGFydS5haWNoaS5qcCIsIm9rYXpha2kuYWljaGkuanAiLCJvd2FyaWFzYWhpLmFpY2hpLmpwIiwic2V0by5haWNoaS5qcCIsInNoaWthdHN1LmFpY2hpLmpw'@; put 'Iiwic2hpbnNoaXJvLmFpY2hpLmpwIiwic2hpdGFyYS5haWNoaS5qcCIsInRhaGFyYS5haWNoaS5qcCIsInRha2FoYW1hLmFpY2hpLmpwIiwidG9iaXNoaW1hLmFpY2hpLmpwIiwidG9laS5haWNoaS5qcCIsInRvZ28uYWljaGkuanAiLCJ0b2thaS5haWNoaS5qcCIsInRva29uYW1lLmFpY2hp'@; put 'LmpwIiwidG95b2FrZS5haWNoaS5qcCIsInRveW9oYXNoaS5haWNoaS5qcCIsInRveW9rYXdhLmFpY2hpLmpwIiwidG95b25lLmFpY2hpLmpwIiwidG95b3RhLmFpY2hpLmpwIiwidHN1c2hpbWEuYWljaGkuanAiLCJ5YXRvbWkuYWljaGkuanAiLCJha2l0YS5ha2l0YS5qcCIsImRhaXNlbi5h'@; put 'a2l0YS5qcCIsImZ1amlzYXRvLmFraXRhLmpwIiwiZ29qb21lLmFraXRhLmpwIiwiaGFjaGlyb2dhdGEuYWtpdGEuanAiLCJoYXBwb3UuYWtpdGEuanAiLCJoaWdhc2hpbmFydXNlLmFraXRhLmpwIiwiaG9uam8uYWtpdGEuanAiLCJob25qeW8uYWtpdGEuanAiLCJpa2F3YS5ha2l0YS5qcCIs'@; put 'ImthbWlrb2FuaS5ha2l0YS5qcCIsImthbWlva2EuYWtpdGEuanAiLCJrYXRhZ2FtaS5ha2l0YS5qcCIsImthenVuby5ha2l0YS5qcCIsImtpdGFha2l0YS5ha2l0YS5qcCIsImtvc2FrYS5ha2l0YS5qcCIsImt5b3dhLmFraXRhLmpwIiwibWlzYXRvLmFraXRhLmpwIiwibWl0YW5lLmFraXRh'@; put 'LmpwIiwibW9yaXlvc2hpLmFraXRhLmpwIiwibmlrYWhvLmFraXRhLmpwIiwibm9zaGlyby5ha2l0YS5qcCIsIm9kYXRlLmFraXRhLmpwIiwib2dhLmFraXRhLmpwIiwib2dhdGEuYWtpdGEuanAiLCJzZW1ib2t1LmFraXRhLmpwIiwieW9rb3RlLmFraXRhLmpwIiwieXVyaWhvbmpvLmFraXRh'@; put 'LmpwIiwiYW9tb3JpLmFvbW9yaS5qcCIsImdvbm9oZS5hb21vcmkuanAiLCJoYWNoaW5vaGUuYW9tb3JpLmpwIiwiaGFzaGlrYW1pLmFvbW9yaS5qcCIsImhpcmFuYWkuYW9tb3JpLmpwIiwiaGlyb3Nha2kuYW9tb3JpLmpwIiwiaXRheWFuYWdpLmFvbW9yaS5qcCIsImt1cm9pc2hpLmFvbW9y'@; put 'aS5qcCIsIm1pc2F3YS5hb21vcmkuanAiLCJtdXRzdS5hb21vcmkuanAiLCJuYWthZG9tYXJpLmFvbW9yaS5qcCIsIm5vaGVqaS5hb21vcmkuanAiLCJvaXJhc2UuYW9tb3JpLmpwIiwib3dhbmkuYW9tb3JpLmpwIiwicm9rdW5vaGUuYW9tb3JpLmpwIiwic2Fubm9oZS5hb21vcmkuanAiLCJz'@; put 'aGljaGlub2hlLmFvbW9yaS5qcCIsInNoaW5nby5hb21vcmkuanAiLCJ0YWtrby5hb21vcmkuanAiLCJ0b3dhZGEuYW9tb3JpLmpwIiwidHN1Z2FydS5hb21vcmkuanAiLCJ0c3VydXRhLmFvbW9yaS5qcCIsImFiaWtvLmNoaWJhLmpwIiwiYXNhaGkuY2hpYmEuanAiLCJjaG9uYW4uY2hpYmEu'@; put 'anAiLCJjaG9zZWkuY2hpYmEuanAiLCJjaG9zaGkuY2hpYmEuanAiLCJjaHVvLmNoaWJhLmpwIiwiZnVuYWJhc2hpLmNoaWJhLmpwIiwiZnV0dHN1LmNoaWJhLmpwIiwiaGFuYW1pZ2F3YS5jaGliYS5qcCIsImljaGloYXJhLmNoaWJhLmpwIiwiaWNoaWthd2EuY2hpYmEuanAiLCJpY2hpbm9t'@; put 'aXlhLmNoaWJhLmpwIiwiaW56YWkuY2hpYmEuanAiLCJpc3VtaS5jaGliYS5qcCIsImthbWFnYXlhLmNoaWJhLmpwIiwia2Ftb2dhd2EuY2hpYmEuanAiLCJrYXNoaXdhLmNoaWJhLmpwIiwia2F0b3JpLmNoaWJhLmpwIiwia2F0c3V1cmEuY2hpYmEuanAiLCJraW1pdHN1LmNoaWJhLmpwIiwi'@; put 'a2lzYXJhenUuY2hpYmEuanAiLCJrb3pha2kuY2hpYmEuanAiLCJrdWp1a3VyaS5jaGliYS5qcCIsImt5b25hbi5jaGliYS5qcCIsIm1hdHN1ZG8uY2hpYmEuanAiLCJtaWRvcmkuY2hpYmEuanAiLCJtaWhhbWEuY2hpYmEuanAiLCJtaW5hbWlib3NvLmNoaWJhLmpwIiwibW9iYXJhLmNoaWJh'@; put 'LmpwIiwibXV0c3V6YXdhLmNoaWJhLmpwIiwibmFnYXJhLmNoaWJhLmpwIiwibmFnYXJleWFtYS5jaGliYS5qcCIsIm5hcmFzaGluby5jaGliYS5qcCIsIm5hcml0YS5jaGliYS5qcCIsIm5vZGEuY2hpYmEuanAiLCJvYW1pc2hpcmFzYXRvLmNoaWJhLmpwIiwib21pZ2F3YS5jaGliYS5qcCIs'@; put 'Im9uanVrdS5jaGliYS5qcCIsIm90YWtpLmNoaWJhLmpwIiwic2FrYWUuY2hpYmEuanAiLCJzYWt1cmEuY2hpYmEuanAiLCJzaGltb2Z1c2EuY2hpYmEuanAiLCJzaGlyYWtvLmNoaWJhLmpwIiwic2hpcm9pLmNoaWJhLmpwIiwic2hpc3VpLmNoaWJhLmpwIiwic29kZWdhdXJhLmNoaWJhLmpw'@; put 'Iiwic29zYS5jaGliYS5qcCIsInRha28uY2hpYmEuanAiLCJ0YXRleWFtYS5jaGliYS5qcCIsInRvZ2FuZS5jaGliYS5qcCIsInRvaG5vc2hvLmNoaWJhLmpwIiwidG9taXNhdG8uY2hpYmEuanAiLCJ1cmF5YXN1LmNoaWJhLmpwIiwieWFjaGltYXRhLmNoaWJhLmpwIiwieWFjaGl5by5jaGli'@; put 'YS5qcCIsInlva2FpY2hpYmEuY2hpYmEuanAiLCJ5b2tvc2hpYmFoaWthcmkuY2hpYmEuanAiLCJ5b3RzdWthaWRvLmNoaWJhLmpwIiwiYWluYW4uZWhpbWUuanAiLCJob25haS5laGltZS5qcCIsImlrYXRhLmVoaW1lLmpwIiwiaW1hYmFyaS5laGltZS5qcCIsIml5by5laGltZS5qcCIsImth'@; put 'bWlqaW1hLmVoaW1lLmpwIiwia2lob2t1LmVoaW1lLmpwIiwia3VtYWtvZ2VuLmVoaW1lLmpwIiwibWFzYWtpLmVoaW1lLmpwIiwibWF0c3Vuby5laGltZS5qcCIsIm1hdHN1eWFtYS5laGltZS5qcCIsIm5hbWlrYXRhLmVoaW1lLmpwIiwibmlpaGFtYS5laGltZS5qcCIsIm96dS5laGltZS5q'@; put 'cCIsInNhaWpvLmVoaW1lLmpwIiwic2VpeW8uZWhpbWUuanAiLCJzaGlrb2t1Y2h1by5laGltZS5qcCIsInRvYmUuZWhpbWUuanAiLCJ0b29uLmVoaW1lLmpwIiwidWNoaWtvLmVoaW1lLmpwIiwidXdhamltYS5laGltZS5qcCIsInlhd2F0YWhhbWEuZWhpbWUuanAiLCJlY2hpemVuLmZ1a3Vp'@; put 'LmpwIiwiZWloZWlqaS5mdWt1aS5qcCIsImZ1a3VpLmZ1a3VpLmpwIiwiaWtlZGEuZnVrdWkuanAiLCJrYXRzdXlhbWEuZnVrdWkuanAiLCJtaWhhbWEuZnVrdWkuanAiLCJtaW5hbWllY2hpemVuLmZ1a3VpLmpwIiwib2JhbWEuZnVrdWkuanAiLCJvaGkuZnVrdWkuanAiLCJvbm8uZnVrdWku'@; put 'anAiLCJzYWJhZS5mdWt1aS5qcCIsInNha2FpLmZ1a3VpLmpwIiwidGFrYWhhbWEuZnVrdWkuanAiLCJ0c3VydWdhLmZ1a3VpLmpwIiwid2FrYXNhLmZ1a3VpLmpwIiwiYXNoaXlhLmZ1a3Vva2EuanAiLCJidXplbi5mdWt1b2thLmpwIiwiY2hpa3Vnby5mdWt1b2thLmpwIiwiY2hpa3Voby5m'@; put 'dWt1b2thLmpwIiwiY2hpa3Vqby5mdWt1b2thLmpwIiwiY2hpa3VzaGluby5mdWt1b2thLmpwIiwiY2hpa3V6ZW4uZnVrdW9rYS5qcCIsImNodW8uZnVrdW9rYS5qcCIsImRhemFpZnUuZnVrdW9rYS5qcCIsImZ1a3VjaGkuZnVrdW9rYS5qcCIsImhha2F0YS5mdWt1b2thLmpwIiwiaGlnYXNo'@; put 'aS5mdWt1b2thLmpwIiwiaGlyb2thd2EuZnVrdW9rYS5qcCIsImhpc2F5YW1hLmZ1a3Vva2EuanAiLCJpaXp1a2EuZnVrdW9rYS5qcCIsImluYXRzdWtpLmZ1a3Vva2EuanAiLCJrYWhvLmZ1a3Vva2EuanAiLCJrYXN1Z2EuZnVrdW9rYS5qcCIsImthc3V5YS5mdWt1b2thLmpwIiwia2F3YXJh'@; put 'LmZ1a3Vva2EuanAiLCJrZWlzZW4uZnVrdW9rYS5qcCIsImtvZ2EuZnVrdW9rYS5qcCIsImt1cmF0ZS5mdWt1b2thLmpwIiwia3Vyb2dpLmZ1a3Vva2EuanAiLCJrdXJ1bWUuZnVrdW9rYS5qcCIsIm1pbmFtaS5mdWt1b2thLmpwIiwibWl5YWtvLmZ1a3Vva2EuanAiLCJtaXlhbWEuZnVrdW9r'@; put 'YS5qcCIsIm1peWF3YWthLmZ1a3Vva2EuanAiLCJtaXp1bWFraS5mdWt1b2thLmpwIiwibXVuYWthdGEuZnVrdW9rYS5qcCIsIm5ha2FnYXdhLmZ1a3Vva2EuanAiLCJuYWthbWEuZnVrdW9rYS5qcCIsIm5pc2hpLmZ1a3Vva2EuanAiLCJub2dhdGEuZnVrdW9rYS5qcCIsIm9nb3JpLmZ1a3Vv'@; put 'a2EuanAiLCJva2FnYWtpLmZ1a3Vva2EuanAiLCJva2F3YS5mdWt1b2thLmpwIiwib2tpLmZ1a3Vva2EuanAiLCJvbXV0YS5mdWt1b2thLmpwIiwib25nYS5mdWt1b2thLmpwIiwib25vam8uZnVrdW9rYS5qcCIsIm90by5mdWt1b2thLmpwIiwic2FpZ2F3YS5mdWt1b2thLmpwIiwic2FzYWd1'@; put 'cmkuZnVrdW9rYS5qcCIsInNoaW5ndS5mdWt1b2thLmpwIiwic2hpbnlvc2hpdG9taS5mdWt1b2thLmpwIiwic2hvbmFpLmZ1a3Vva2EuanAiLCJzb2VkYS5mdWt1b2thLmpwIiwic3VlLmZ1a3Vva2EuanAiLCJ0YWNoaWFyYWkuZnVrdW9rYS5qcCIsInRhZ2F3YS5mdWt1b2thLmpwIiwidGFr'@; put 'YXRhLmZ1a3Vva2EuanAiLCJ0b2hvLmZ1a3Vva2EuanAiLCJ0b3lvdHN1LmZ1a3Vva2EuanAiLCJ0c3Vpa2kuZnVrdW9rYS5qcCIsInVraWhhLmZ1a3Vva2EuanAiLCJ1bWkuZnVrdW9rYS5qcCIsInVzdWkuZnVrdW9rYS5qcCIsInlhbWFkYS5mdWt1b2thLmpwIiwieWFtZS5mdWt1b2thLmpw'@; put 'IiwieWFuYWdhd2EuZnVrdW9rYS5qcCIsInl1a3VoYXNoaS5mdWt1b2thLmpwIiwiYWl6dWJhbmdlLmZ1a3VzaGltYS5qcCIsImFpenVtaXNhdG8uZnVrdXNoaW1hLmpwIiwiYWl6dXdha2FtYXRzdS5mdWt1c2hpbWEuanAiLCJhc2FrYXdhLmZ1a3VzaGltYS5qcCIsImJhbmRhaS5mdWt1c2hp'@; put 'bWEuanAiLCJkYXRlLmZ1a3VzaGltYS5qcCIsImZ1a3VzaGltYS5mdWt1c2hpbWEuanAiLCJmdXJ1ZG9uby5mdWt1c2hpbWEuanAiLCJmdXRhYmEuZnVrdXNoaW1hLmpwIiwiaGFuYXdhLmZ1a3VzaGltYS5qcCIsImhpZ2FzaGkuZnVrdXNoaW1hLmpwIiwiaGlyYXRhLmZ1a3VzaGltYS5qcCIs'@; put 'Imhpcm9uby5mdWt1c2hpbWEuanAiLCJpaXRhdGUuZnVrdXNoaW1hLmpwIiwiaW5hd2FzaGlyby5mdWt1c2hpbWEuanAiLCJpc2hpa2F3YS5mdWt1c2hpbWEuanAiLCJpd2FraS5mdWt1c2hpbWEuanAiLCJpenVtaXpha2kuZnVrdXNoaW1hLmpwIiwia2FnYW1paXNoaS5mdWt1c2hpbWEuanAi'@; put 'LCJrYW5leWFtYS5mdWt1c2hpbWEuanAiLCJrYXdhbWF0YS5mdWt1c2hpbWEuanAiLCJraXRha2F0YS5mdWt1c2hpbWEuanAiLCJraXRhc2hpb2JhcmEuZnVrdXNoaW1hLmpwIiwia29vcmkuZnVrdXNoaW1hLmpwIiwia29yaXlhbWEuZnVrdXNoaW1hLmpwIiwia3VuaW1pLmZ1a3VzaGltYS5q'@; put 'cCIsIm1paGFydS5mdWt1c2hpbWEuanAiLCJtaXNoaW1hLmZ1a3VzaGltYS5qcCIsIm5hbWllLmZ1a3VzaGltYS5qcCIsIm5hbmdvLmZ1a3VzaGltYS5qcCIsIm5pc2hpYWl6dS5mdWt1c2hpbWEuanAiLCJuaXNoaWdvLmZ1a3VzaGltYS5qcCIsIm9rdW1hLmZ1a3VzaGltYS5qcCIsIm9tb3Rl'@; put 'Z28uZnVrdXNoaW1hLmpwIiwib25vLmZ1a3VzaGltYS5qcCIsIm90YW1hLmZ1a3VzaGltYS5qcCIsInNhbWVnYXdhLmZ1a3VzaGltYS5qcCIsInNoaW1vZ28uZnVrdXNoaW1hLmpwIiwic2hpcmFrYXdhLmZ1a3VzaGltYS5qcCIsInNob3dhLmZ1a3VzaGltYS5qcCIsInNvbWEuZnVrdXNoaW1h'@; put 'LmpwIiwic3VrYWdhd2EuZnVrdXNoaW1hLmpwIiwidGFpc2hpbi5mdWt1c2hpbWEuanAiLCJ0YW1ha2F3YS5mdWt1c2hpbWEuanAiLCJ0YW5hZ3VyYS5mdWt1c2hpbWEuanAiLCJ0ZW5laS5mdWt1c2hpbWEuanAiLCJ5YWJ1a2kuZnVrdXNoaW1hLmpwIiwieWFtYXRvLmZ1a3VzaGltYS5qcCIs'@; put 'InlhbWF0c3VyaS5mdWt1c2hpbWEuanAiLCJ5YW5haXp1LmZ1a3VzaGltYS5qcCIsInl1Z2F3YS5mdWt1c2hpbWEuanAiLCJhbnBhY2hpLmdpZnUuanAiLCJlbmEuZ2lmdS5qcCIsImdpZnUuZ2lmdS5qcCIsImdpbmFuLmdpZnUuanAiLCJnb2RvLmdpZnUuanAiLCJndWpvLmdpZnUuanAiLCJo'@; put 'YXNoaW1hLmdpZnUuanAiLCJoaWNoaXNvLmdpZnUuanAiLCJoaWRhLmdpZnUuanAiLCJoaWdhc2hpc2hpcmFrYXdhLmdpZnUuanAiLCJpYmlnYXdhLmdpZnUuanAiLCJpa2VkYS5naWZ1LmpwIiwia2FrYW1pZ2FoYXJhLmdpZnUuanAiLCJrYW5pLmdpZnUuanAiLCJrYXNhaGFyYS5naWZ1Lmpw'@; put 'Iiwia2FzYW1hdHN1LmdpZnUuanAiLCJrYXdhdWUuZ2lmdS5qcCIsImtpdGFnYXRhLmdpZnUuanAiLCJtaW5vLmdpZnUuanAiLCJtaW5va2Ftby5naWZ1LmpwIiwibWl0YWtlLmdpZnUuanAiLCJtaXp1bmFtaS5naWZ1LmpwIiwibW90b3N1LmdpZnUuanAiLCJuYWthdHN1Z2F3YS5naWZ1Lmpw'@; put 'Iiwib2dha2kuZ2lmdS5qcCIsInNha2Fob2dpLmdpZnUuanAiLCJzZWtpLmdpZnUuanAiLCJzZWtpZ2FoYXJhLmdpZnUuanAiLCJzaGlyYWthd2EuZ2lmdS5qcCIsInRhamltaS5naWZ1LmpwIiwidGFrYXlhbWEuZ2lmdS5qcCIsInRhcnVpLmdpZnUuanAiLCJ0b2tpLmdpZnUuanAiLCJ0b21p'@; put 'a2EuZ2lmdS5qcCIsIndhbm91Y2hpLmdpZnUuanAiLCJ5YW1hZ2F0YS5naWZ1LmpwIiwieWFvdHN1LmdpZnUuanAiLCJ5b3JvLmdpZnUuanAiLCJhbm5ha2EuZ3VubWEuanAiLCJjaGl5b2RhLmd1bm1hLmpwIiwiZnVqaW9rYS5ndW5tYS5qcCIsImhpZ2FzaGlhZ2F0c3VtYS5ndW5tYS5qcCIs'@; put 'ImlzZXNha2kuZ3VubWEuanAiLCJpdGFrdXJhLmd1bm1hLmpwIiwia2FubmEuZ3VubWEuanAiLCJrYW5yYS5ndW5tYS5qcCIsImthdGFzaGluYS5ndW5tYS5qcCIsImthd2FiYS5ndW5tYS5qcCIsImtpcnl1Lmd1bm1hLmpwIiwia3VzYXRzdS5ndW5tYS5qcCIsIm1hZWJhc2hpLmd1bm1hLmpw'@; put 'IiwibWVpd2EuZ3VubWEuanAiLCJtaWRvcmkuZ3VubWEuanAiLCJtaW5ha2FtaS5ndW5tYS5qcCIsIm5hZ2Fub2hhcmEuZ3VubWEuanAiLCJuYWthbm9qby5ndW5tYS5qcCIsIm5hbm1va3UuZ3VubWEuanAiLCJudW1hdGEuZ3VubWEuanAiLCJvaXp1bWkuZ3VubWEuanAiLCJvcmEuZ3VubWEu'@; put 'anAiLCJvdGEuZ3VubWEuanAiLCJzaGlidWthd2EuZ3VubWEuanAiLCJzaGltb25pdGEuZ3VubWEuanAiLCJzaGludG8uZ3VubWEuanAiLCJzaG93YS5ndW5tYS5qcCIsInRha2FzYWtpLmd1bm1hLmpwIiwidGFrYXlhbWEuZ3VubWEuanAiLCJ0YW1hbXVyYS5ndW5tYS5qcCIsInRhdGViYXlh'@; put 'c2hpLmd1bm1hLmpwIiwidG9taW9rYS5ndW5tYS5qcCIsInRzdWtpeW9uby5ndW5tYS5qcCIsInRzdW1hZ29pLmd1bm1hLmpwIiwidWVuby5ndW5tYS5qcCIsInlvc2hpb2thLmd1bm1hLmpwIiwiYXNhbWluYW1pLmhpcm9zaGltYS5qcCIsImRhaXdhLmhpcm9zaGltYS5qcCIsImV0YWppbWEu'@; put 'aGlyb3NoaW1hLmpwIiwiZnVjaHUuaGlyb3NoaW1hLmpwIiwiZnVrdXlhbWEuaGlyb3NoaW1hLmpwIiwiaGF0c3VrYWljaGkuaGlyb3NoaW1hLmpwIiwiaGlnYXNoaWhpcm9zaGltYS5oaXJvc2hpbWEuanAiLCJob25nby5oaXJvc2hpbWEuanAiLCJqaW5zZWtpa29nZW4uaGlyb3NoaW1hLmpw'@; put 'Iiwia2FpdGEuaGlyb3NoaW1hLmpwIiwia3VpLmhpcm9zaGltYS5qcCIsImt1bWFuby5oaXJvc2hpbWEuanAiLCJrdXJlLmhpcm9zaGltYS5qcCIsIm1paGFyYS5oaXJvc2hpbWEuanAiLCJtaXlvc2hpLmhpcm9zaGltYS5qcCIsIm5ha2EuaGlyb3NoaW1hLmpwIiwib25vbWljaGkuaGlyb3No'@; put 'aW1hLmpwIiwib3Nha2lrYW1pamltYS5oaXJvc2hpbWEuanAiLCJvdGFrZS5oaXJvc2hpbWEuanAiLCJzYWthLmhpcm9zaGltYS5qcCIsInNlcmEuaGlyb3NoaW1hLmpwIiwic2VyYW5pc2hpLmhpcm9zaGltYS5qcCIsInNoaW5pY2hpLmhpcm9zaGltYS5qcCIsInNob2JhcmEuaGlyb3NoaW1h'@; put 'LmpwIiwidGFrZWhhcmEuaGlyb3NoaW1hLmpwIiwiYWJhc2hpcmkuaG9ra2FpZG8uanAiLCJhYmlyYS5ob2trYWlkby5qcCIsImFpYmV0c3UuaG9ra2FpZG8uanAiLCJha2FiaXJhLmhva2thaWRvLmpwIiwiYWtrZXNoaS5ob2trYWlkby5qcCIsImFzYWhpa2F3YS5ob2trYWlkby5qcCIsImFz'@; put 'aGliZXRzdS5ob2trYWlkby5qcCIsImFzaG9yby5ob2trYWlkby5qcCIsImFzc2FidS5ob2trYWlkby5qcCIsImF0c3VtYS5ob2trYWlkby5qcCIsImJpYmFpLmhva2thaWRvLmpwIiwiYmllaS5ob2trYWlkby5qcCIsImJpZnVrYS5ob2trYWlkby5qcCIsImJpaG9yby5ob2trYWlkby5qcCIs'@; put 'ImJpcmF0b3JpLmhva2thaWRvLmpwIiwiY2hpcHB1YmV0c3UuaG9ra2FpZG8uanAiLCJjaGl0b3NlLmhva2thaWRvLmpwIiwiZGF0ZS5ob2trYWlkby5qcCIsImViZXRzdS5ob2trYWlkby5qcCIsImVtYmV0c3UuaG9ra2FpZG8uanAiLCJlbml3YS5ob2trYWlkby5qcCIsImVyaW1vLmhva2th'@; put 'aWRvLmpwIiwiZXNhbi5ob2trYWlkby5qcCIsImVzYXNoaS5ob2trYWlkby5qcCIsImZ1a2FnYXdhLmhva2thaWRvLmpwIiwiZnVrdXNoaW1hLmhva2thaWRvLmpwIiwiZnVyYW5vLmhva2thaWRvLmpwIiwiZnVydWJpcmEuaG9ra2FpZG8uanAiLCJoYWJvcm8uaG9ra2FpZG8uanAiLCJoYWtv'@; put 'ZGF0ZS5ob2trYWlkby5qcCIsImhhbWF0b25iZXRzdS5ob2trYWlkby5qcCIsImhpZGFrYS5ob2trYWlkby5qcCIsImhpZ2FzaGlrYWd1cmEuaG9ra2FpZG8uanAiLCJoaWdhc2hpa2F3YS5ob2trYWlkby5qcCIsImhpcm9vLmhva2thaWRvLmpwIiwiaG9rdXJ5dS5ob2trYWlkby5qcCIsImhv'@; put 'a3V0by5ob2trYWlkby5qcCIsImhvbmJldHN1Lmhva2thaWRvLmpwIiwiaG9yb2thbmFpLmhva2thaWRvLmpwIiwiaG9yb25vYmUuaG9ra2FpZG8uanAiLCJpa2VkYS5ob2trYWlkby5qcCIsImltYWthbmUuaG9ra2FpZG8uanAiLCJpc2hpa2FyaS5ob2trYWlkby5qcCIsIml3YW1pemF3YS5o'@; put 'b2trYWlkby5qcCIsIml3YW5haS5ob2trYWlkby5qcCIsImthbWlmdXJhbm8uaG9ra2FpZG8uanAiLCJrYW1pa2F3YS5ob2trYWlkby5qcCIsImthbWlzaGlob3JvLmhva2thaWRvLmpwIiwia2FtaXN1bmFnYXdhLmhva2thaWRvLmpwIiwia2Ftb2VuYWkuaG9ra2FpZG8uanAiLCJrYXlhYmUu'@; put 'aG9ra2FpZG8uanAiLCJrZW1idWNoaS5ob2trYWlkby5qcCIsImtpa29uYWkuaG9ra2FpZG8uanAiLCJraW1vYmV0c3UuaG9ra2FpZG8uanAiLCJraXRhaGlyb3NoaW1hLmhva2thaWRvLmpwIiwia2l0YW1pLmhva2thaWRvLmpwIiwia2l5b3NhdG8uaG9ra2FpZG8uanAiLCJrb3NoaW1penUu'@; put 'aG9ra2FpZG8uanAiLCJrdW5uZXBwdS5ob2trYWlkby5qcCIsImt1cml5YW1hLmhva2thaWRvLmpwIiwia3Vyb21hdHN1bmFpLmhva2thaWRvLmpwIiwia3VzaGlyby5ob2trYWlkby5qcCIsImt1dGNoYW4uaG9ra2FpZG8uanAiLCJreW93YS5ob2trYWlkby5qcCIsIm1hc2hpa2UuaG9ra2Fp'@; put 'ZG8uanAiLCJtYXRzdW1hZS5ob2trYWlkby5qcCIsIm1pa2FzYS5ob2trYWlkby5qcCIsIm1pbmFtaWZ1cmFuby5ob2trYWlkby5qcCIsIm1vbWJldHN1Lmhva2thaWRvLmpwIiwibW9zZXVzaGkuaG9ra2FpZG8uanAiLCJtdWthd2EuaG9ra2FpZG8uanAiLCJtdXJvcmFuLmhva2thaWRvLmpw'@; put 'IiwibmFpZS5ob2trYWlkby5qcCIsIm5ha2FnYXdhLmhva2thaWRvLmpwIiwibmFrYXNhdHN1bmFpLmhva2thaWRvLmpwIiwibmFrYXRvbWJldHN1Lmhva2thaWRvLmpwIiwibmFuYWUuaG9ra2FpZG8uanAiLCJuYW5wb3JvLmhva2thaWRvLmpwIiwibmF5b3JvLmhva2thaWRvLmpwIiwibmVt'@; put 'dXJvLmhva2thaWRvLmpwIiwibmlpa2FwcHUuaG9ra2FpZG8uanAiLCJuaWtpLmhva2thaWRvLmpwIiwibmlzaGlva29wcGUuaG9ra2FpZG8uanAiLCJub2JvcmliZXRzdS5ob2trYWlkby5qcCIsIm51bWF0YS5ob2trYWlkby5qcCIsIm9iaWhpcm8uaG9ra2FpZG8uanAiLCJvYmlyYS5ob2tr'@; put 'YWlkby5qcCIsIm9rZXRvLmhva2thaWRvLmpwIiwib2tvcHBlLmhva2thaWRvLmpwIiwib3RhcnUuaG9ra2FpZG8uanAiLCJvdG9iZS5ob2trYWlkby5qcCIsIm90b2Z1a2UuaG9ra2FpZG8uanAiLCJvdG9pbmVwcHUuaG9ra2FpZG8uanAiLCJvdW11Lmhva2thaWRvLmpwIiwib3pvcmEuaG9r'@; put 'a2FpZG8uanAiLCJwaXBwdS5ob2trYWlkby5qcCIsInJhbmtvc2hpLmhva2thaWRvLmpwIiwicmVidW4uaG9ra2FpZG8uanAiLCJyaWt1YmV0c3UuaG9ra2FpZG8uanAiLCJyaXNoaXJpLmhva2thaWRvLmpwIiwicmlzaGlyaWZ1amkuaG9ra2FpZG8uanAiLCJzYXJvbWEuaG9ra2FpZG8uanAi'@; put 'LCJzYXJ1ZnV0c3UuaG9ra2FpZG8uanAiLCJzaGFrb3Rhbi5ob2trYWlkby5qcCIsInNoYXJpLmhva2thaWRvLmpwIiwic2hpYmVjaGEuaG9ra2FpZG8uanAiLCJzaGliZXRzdS5ob2trYWlkby5qcCIsInNoaWthYmUuaG9ra2FpZG8uanAiLCJzaGlrYW9pLmhva2thaWRvLmpwIiwic2hpbWFt'@; put 'YWtpLmhva2thaWRvLmpwIiwic2hpbWl6dS5ob2trYWlkby5qcCIsInNoaW1va2F3YS5ob2trYWlkby5qcCIsInNoaW5zaGlub3RzdS5ob2trYWlkby5qcCIsInNoaW50b2t1Lmhva2thaWRvLmpwIiwic2hpcmFudWthLmhva2thaWRvLmpwIiwic2hpcmFvaS5ob2trYWlkby5qcCIsInNoaXJp'@; put 'dWNoaS5ob2trYWlkby5qcCIsInNvYmV0c3UuaG9ra2FpZG8uanAiLCJzdW5hZ2F3YS5ob2trYWlkby5qcCIsInRhaWtpLmhva2thaWRvLmpwIiwidGFrYXN1Lmhva2thaWRvLmpwIiwidGFraWthd2EuaG9ra2FpZG8uanAiLCJ0YWtpbm91ZS5ob2trYWlkby5qcCIsInRlc2hpa2FnYS5ob2tr'@; put 'YWlkby5qcCIsInRvYmV0c3UuaG9ra2FpZG8uanAiLCJ0b2htYS5ob2trYWlkby5qcCIsInRvbWFrb21haS5ob2trYWlkby5qcCIsInRvbWFyaS5ob2trYWlkby5qcCIsInRveWEuaG9ra2FpZG8uanAiLCJ0b3lha28uaG9ra2FpZG8uanAiLCJ0b3lvdG9taS5ob2trYWlkby5qcCIsInRveW91'@; put 'cmEuaG9ra2FpZG8uanAiLCJ0c3ViZXRzdS5ob2trYWlkby5qcCIsInRzdWtpZ2F0YS5ob2trYWlkby5qcCIsInVyYWthd2EuaG9ra2FpZG8uanAiLCJ1cmF1c3UuaG9ra2FpZG8uanAiLCJ1cnl1Lmhva2thaWRvLmpwIiwidXRhc2hpbmFpLmhva2thaWRvLmpwIiwid2Fra2FuYWkuaG9ra2Fp'@; put 'ZG8uanAiLCJ3YXNzYW11Lmhva2thaWRvLmpwIiwieWFrdW1vLmhva2thaWRvLmpwIiwieW9pY2hpLmhva2thaWRvLmpwIiwiYWlvaS5oeW9nby5qcCIsImFrYXNoaS5oeW9nby5qcCIsImFrby5oeW9nby5qcCIsImFtYWdhc2FraS5oeW9nby5qcCIsImFvZ2FraS5oeW9nby5qcCIsImFzYWdv'@; put 'Lmh5b2dvLmpwIiwiYXNoaXlhLmh5b2dvLmpwIiwiYXdhamkuaHlvZ28uanAiLCJmdWt1c2FraS5oeW9nby5qcCIsImdvc2hpa2kuaHlvZ28uanAiLCJoYXJpbWEuaHlvZ28uanAiLCJoaW1lamkuaHlvZ28uanAiLCJpY2hpa2F3YS5oeW9nby5qcCIsImluYWdhd2EuaHlvZ28uanAiLCJpdGFt'@; put 'aS5oeW9nby5qcCIsImtha29nYXdhLmh5b2dvLmpwIiwia2FtaWdvcmkuaHlvZ28uanAiLCJrYW1pa2F3YS5oeW9nby5qcCIsImthc2FpLmh5b2dvLmpwIiwia2FzdWdhLmh5b2dvLmpwIiwia2F3YW5pc2hpLmh5b2dvLmpwIiwibWlraS5oeW9nby5qcCIsIm1pbmFtaWF3YWppLmh5b2dvLmpw'@; put 'IiwibmlzaGlub21peWEuaHlvZ28uanAiLCJuaXNoaXdha2kuaHlvZ28uanAiLCJvbm8uaHlvZ28uanAiLCJzYW5kYS5oeW9nby5qcCIsInNhbm5hbi5oeW9nby5qcCIsInNhc2F5YW1hLmh5b2dvLmpwIiwic2F5by5oeW9nby5qcCIsInNoaW5ndS5oeW9nby5qcCIsInNoaW5vbnNlbi5oeW9n'@; put 'by5qcCIsInNoaXNvLmh5b2dvLmpwIiwic3Vtb3RvLmh5b2dvLmpwIiwidGFpc2hpLmh5b2dvLmpwIiwidGFrYS5oeW9nby5qcCIsInRha2FyYXp1a2EuaHlvZ28uanAiLCJ0YWthc2Fnby5oeW9nby5qcCIsInRha2luby5oeW9nby5qcCIsInRhbWJhLmh5b2dvLmpwIiwidGF0c3Vuby5oeW9n'@; put 'by5qcCIsInRveW9va2EuaHlvZ28uanAiLCJ5YWJ1Lmh5b2dvLmpwIiwieWFzaGlyby5oeW9nby5qcCIsInlva2EuaHlvZ28uanAiLCJ5b2thd2EuaHlvZ28uanAiLCJhbWkuaWJhcmFraS5qcCIsImFzYWhpLmliYXJha2kuanAiLCJiYW5kby5pYmFyYWtpLmpwIiwiY2hpa3VzZWkuaWJhcmFr'@; put 'aS5qcCIsImRhaWdvLmliYXJha2kuanAiLCJmdWppc2hpcm8uaWJhcmFraS5qcCIsImhpdGFjaGkuaWJhcmFraS5qcCIsImhpdGFjaGluYWthLmliYXJha2kuanAiLCJoaXRhY2hpb21peWEuaWJhcmFraS5qcCIsImhpdGFjaGlvdGEuaWJhcmFraS5qcCIsImliYXJha2kuaWJhcmFraS5qcCIs'@; put 'ImluYS5pYmFyYWtpLmpwIiwiaW5hc2hpa2kuaWJhcmFraS5qcCIsIml0YWtvLmliYXJha2kuanAiLCJpd2FtYS5pYmFyYWtpLmpwIiwiam9zby5pYmFyYWtpLmpwIiwia2FtaXN1LmliYXJha2kuanAiLCJrYXNhbWEuaWJhcmFraS5qcCIsImthc2hpbWEuaWJhcmFraS5qcCIsImthc3VtaWdh'@; put 'dXJhLmliYXJha2kuanAiLCJrb2dhLmliYXJha2kuanAiLCJtaWhvLmliYXJha2kuanAiLCJtaXRvLmliYXJha2kuanAiLCJtb3JpeWEuaWJhcmFraS5qcCIsIm5ha2EuaWJhcmFraS5qcCIsIm5hbWVnYXRhLmliYXJha2kuanAiLCJvYXJhaS5pYmFyYWtpLmpwIiwib2dhd2EuaWJhcmFraS5q'@; put 'cCIsIm9taXRhbWEuaWJhcmFraS5qcCIsInJ5dWdhc2FraS5pYmFyYWtpLmpwIiwic2FrYWkuaWJhcmFraS5qcCIsInNha3VyYWdhd2EuaWJhcmFraS5qcCIsInNoaW1vZGF0ZS5pYmFyYWtpLmpwIiwic2hpbW90c3VtYS5pYmFyYWtpLmpwIiwic2hpcm9zYXRvLmliYXJha2kuanAiLCJzb3dh'@; put 'LmliYXJha2kuanAiLCJzdWlmdS5pYmFyYWtpLmpwIiwidGFrYWhhZ2kuaWJhcmFraS5qcCIsInRhbWF0c3VrdXJpLmliYXJha2kuanAiLCJ0b2thaS5pYmFyYWtpLmpwIiwidG9tb2JlLmliYXJha2kuanAiLCJ0b25lLmliYXJha2kuanAiLCJ0b3JpZGUuaWJhcmFraS5qcCIsInRzdWNoaXVy'@; put 'YS5pYmFyYWtpLmpwIiwidHN1a3ViYS5pYmFyYWtpLmpwIiwidWNoaWhhcmEuaWJhcmFraS5qcCIsInVzaGlrdS5pYmFyYWtpLmpwIiwieWFjaGl5by5pYmFyYWtpLmpwIiwieWFtYWdhdGEuaWJhcmFraS5qcCIsInlhd2FyYS5pYmFyYWtpLmpwIiwieXVraS5pYmFyYWtpLmpwIiwiYW5hbWl6'@; put 'dS5pc2hpa2F3YS5qcCIsImhha3VpLmlzaGlrYXdhLmpwIiwiaGFrdXNhbi5pc2hpa2F3YS5qcCIsImthZ2EuaXNoaWthd2EuanAiLCJrYWhva3UuaXNoaWthd2EuanAiLCJrYW5hemF3YS5pc2hpa2F3YS5qcCIsImthd2FraXRhLmlzaGlrYXdhLmpwIiwia29tYXRzdS5pc2hpa2F3YS5qcCIs'@; put 'Im5ha2Fub3RvLmlzaGlrYXdhLmpwIiwibmFuYW8uaXNoaWthd2EuanAiLCJub21pLmlzaGlrYXdhLmpwIiwibm9ub2ljaGkuaXNoaWthd2EuanAiLCJub3RvLmlzaGlrYXdhLmpwIiwic2hpa2EuaXNoaWthd2EuanAiLCJzdXp1LmlzaGlrYXdhLmpwIiwidHN1YmF0YS5pc2hpa2F3YS5qcCIs'@; put 'InRzdXJ1Z2kuaXNoaWthd2EuanAiLCJ1Y2hpbmFkYS5pc2hpa2F3YS5qcCIsIndhamltYS5pc2hpa2F3YS5qcCIsImZ1ZGFpLml3YXRlLmpwIiwiZnVqaXNhd2EuaXdhdGUuanAiLCJoYW5hbWFraS5pd2F0ZS5qcCIsImhpcmFpenVtaS5pd2F0ZS5qcCIsImhpcm9uby5pd2F0ZS5qcCIsImlj'@; put 'aGlub2hlLml3YXRlLmpwIiwiaWNoaW5vc2VraS5pd2F0ZS5qcCIsIml3YWl6dW1pLml3YXRlLmpwIiwiaXdhdGUuaXdhdGUuanAiLCJqb2JvamkuaXdhdGUuanAiLCJrYW1haXNoaS5pd2F0ZS5qcCIsImthbmVnYXNha2kuaXdhdGUuanAiLCJrYXJ1bWFpLml3YXRlLmpwIiwia2F3YWkuaXdh'@; put 'dGUuanAiLCJraXRha2FtaS5pd2F0ZS5qcCIsImt1amkuaXdhdGUuanAiLCJrdW5vaGUuaXdhdGUuanAiLCJrdXp1bWFraS5pd2F0ZS5qcCIsIm1peWFrby5pd2F0ZS5qcCIsIm1penVzYXdhLml3YXRlLmpwIiwibW9yaW9rYS5pd2F0ZS5qcCIsIm5pbm9oZS5pd2F0ZS5qcCIsIm5vZGEuaXdh'@; put 'dGUuanAiLCJvZnVuYXRvLml3YXRlLmpwIiwib3NodS5pd2F0ZS5qcCIsIm90c3VjaGkuaXdhdGUuanAiLCJyaWt1emVudGFrYXRhLml3YXRlLmpwIiwic2hpd2EuaXdhdGUuanAiLCJzaGl6dWt1aXNoaS5pd2F0ZS5qcCIsInN1bWl0YS5pd2F0ZS5qcCIsInRhbm9oYXRhLml3YXRlLmpwIiwi'@; put 'dG9uby5pd2F0ZS5qcCIsInlhaGFiYS5pd2F0ZS5qcCIsInlhbWFkYS5pd2F0ZS5qcCIsImF5YWdhd2Eua2FnYXdhLmpwIiwiaGlnYXNoaWthZ2F3YS5rYWdhd2EuanAiLCJrYW5vbmppLmthZ2F3YS5qcCIsImtvdG9oaXJhLmthZ2F3YS5qcCIsIm1hbm5vLmthZ2F3YS5qcCIsIm1hcnVnYW1l'@; put 'LmthZ2F3YS5qcCIsIm1pdG95by5rYWdhd2EuanAiLCJuYW9zaGltYS5rYWdhd2EuanAiLCJzYW51a2kua2FnYXdhLmpwIiwidGFkb3RzdS5rYWdhd2EuanAiLCJ0YWthbWF0c3Uua2FnYXdhLmpwIiwidG9ub3Noby5rYWdhd2EuanAiLCJ1Y2hpbm9taS5rYWdhd2EuanAiLCJ1dGF6dS5rYWdh'@; put 'd2EuanAiLCJ6ZW50c3VqaS5rYWdhd2EuanAiLCJha3VuZS5rYWdvc2hpbWEuanAiLCJhbWFtaS5rYWdvc2hpbWEuanAiLCJoaW9raS5rYWdvc2hpbWEuanAiLCJpc2Eua2Fnb3NoaW1hLmpwIiwiaXNlbi5rYWdvc2hpbWEuanAiLCJpenVtaS5rYWdvc2hpbWEuanAiLCJrYWdvc2hpbWEua2Fn'@; put 'b3NoaW1hLmpwIiwia2Fub3lhLmthZ29zaGltYS5qcCIsImthd2FuYWJlLmthZ29zaGltYS5qcCIsImtpbmtvLmthZ29zaGltYS5qcCIsImtvdXlhbWEua2Fnb3NoaW1hLmpwIiwibWFrdXJhemFraS5rYWdvc2hpbWEuanAiLCJtYXRzdW1vdG8ua2Fnb3NoaW1hLmpwIiwibWluYW1pdGFuZS5r'@; put 'YWdvc2hpbWEuanAiLCJuYWthdGFuZS5rYWdvc2hpbWEuanAiLCJuaXNoaW5vb21vdGUua2Fnb3NoaW1hLmpwIiwic2F0c3VtYXNlbmRhaS5rYWdvc2hpbWEuanAiLCJzb28ua2Fnb3NoaW1hLmpwIiwidGFydW1penUua2Fnb3NoaW1hLmpwIiwieXVzdWkua2Fnb3NoaW1hLmpwIiwiYWlrYXdh'@; put 'LmthbmFnYXdhLmpwIiwiYXRzdWdpLmthbmFnYXdhLmpwIiwiYXlhc2Uua2FuYWdhd2EuanAiLCJjaGlnYXNha2kua2FuYWdhd2EuanAiLCJlYmluYS5rYW5hZ2F3YS5qcCIsImZ1amlzYXdhLmthbmFnYXdhLmpwIiwiaGFkYW5vLmthbmFnYXdhLmpwIiwiaGFrb25lLmthbmFnYXdhLmpwIiwi'@; put 'aGlyYXRzdWthLmthbmFnYXdhLmpwIiwiaXNlaGFyYS5rYW5hZ2F3YS5qcCIsImthaXNlaS5rYW5hZ2F3YS5qcCIsImthbWFrdXJhLmthbmFnYXdhLmpwIiwia2l5b2thd2Eua2FuYWdhd2EuanAiLCJtYXRzdWRhLmthbmFnYXdhLmpwIiwibWluYW1pYXNoaWdhcmEua2FuYWdhd2EuanAiLCJt'@; put 'aXVyYS5rYW5hZ2F3YS5qcCIsIm5ha2FpLmthbmFnYXdhLmpwIiwibmlub21peWEua2FuYWdhd2EuanAiLCJvZGF3YXJhLmthbmFnYXdhLmpwIiwib2kua2FuYWdhd2EuanAiLCJvaXNvLmthbmFnYXdhLmpwIiwic2FnYW1paGFyYS5rYW5hZ2F3YS5qcCIsInNhbXVrYXdhLmthbmFnYXdhLmpw'@; put 'IiwidHN1a3VpLmthbmFnYXdhLmpwIiwieWFtYWtpdGEua2FuYWdhd2EuanAiLCJ5YW1hdG8ua2FuYWdhd2EuanAiLCJ5b2tvc3VrYS5rYW5hZ2F3YS5qcCIsInl1Z2F3YXJhLmthbmFnYXdhLmpwIiwiemFtYS5rYW5hZ2F3YS5qcCIsInp1c2hpLmthbmFnYXdhLmpwIiwiYWtpLmtvY2hpLmpw'@; put 'IiwiZ2Vpc2VpLmtvY2hpLmpwIiwiaGlkYWthLmtvY2hpLmpwIiwiaGlnYXNoaXRzdW5vLmtvY2hpLmpwIiwiaW5vLmtvY2hpLmpwIiwia2FnYW1pLmtvY2hpLmpwIiwia2FtaS5rb2NoaS5qcCIsImtpdGFnYXdhLmtvY2hpLmpwIiwia29jaGkua29jaGkuanAiLCJtaWhhcmEua29jaGkuanAi'@; put 'LCJtb3RveWFtYS5rb2NoaS5qcCIsIm11cm90by5rb2NoaS5qcCIsIm5haGFyaS5rb2NoaS5qcCIsIm5ha2FtdXJhLmtvY2hpLmpwIiwibmFua29rdS5rb2NoaS5qcCIsIm5pc2hpdG9zYS5rb2NoaS5qcCIsIm5peW9kb2dhd2Eua29jaGkuanAiLCJvY2hpLmtvY2hpLmpwIiwib2thd2Eua29j'@; put 'aGkuanAiLCJvdG95by5rb2NoaS5qcCIsIm90c3VraS5rb2NoaS5qcCIsInNha2F3YS5rb2NoaS5qcCIsInN1a3Vtby5rb2NoaS5qcCIsInN1c2FraS5rb2NoaS5qcCIsInRvc2Eua29jaGkuanAiLCJ0b3Nhc2hpbWl6dS5rb2NoaS5qcCIsInRveW8ua29jaGkuanAiLCJ0c3Vuby5rb2NoaS5q'@; put 'cCIsInVtYWppLmtvY2hpLmpwIiwieWFzdWRhLmtvY2hpLmpwIiwieXVzdWhhcmEua29jaGkuanAiLCJhbWFrdXNhLmt1bWFtb3RvLmpwIiwiYXJhby5rdW1hbW90by5qcCIsImFzby5rdW1hbW90by5qcCIsImNob3lvLmt1bWFtb3RvLmpwIiwiZ3lva3V0by5rdW1hbW90by5qcCIsImthbWlh'@; put 'bWFrdXNhLmt1bWFtb3RvLmpwIiwia2lrdWNoaS5rdW1hbW90by5qcCIsImt1bWFtb3RvLmt1bWFtb3RvLmpwIiwibWFzaGlraS5rdW1hbW90by5qcCIsIm1pZnVuZS5rdW1hbW90by5qcCIsIm1pbmFtYXRhLmt1bWFtb3RvLmpwIiwibWluYW1pb2d1bmkua3VtYW1vdG8uanAiLCJuYWdhc3Uu'@; put 'a3VtYW1vdG8uanAiLCJuaXNoaWhhcmEua3VtYW1vdG8uanAiLCJvZ3VuaS5rdW1hbW90by5qcCIsIm96dS5rdW1hbW90by5qcCIsInN1bW90by5rdW1hbW90by5qcCIsInRha2Ftb3JpLmt1bWFtb3RvLmpwIiwidWtpLmt1bWFtb3RvLmpwIiwidXRvLmt1bWFtb3RvLmpwIiwieWFtYWdhLmt1'@; put 'bWFtb3RvLmpwIiwieWFtYXRvLmt1bWFtb3RvLmpwIiwieWF0c3VzaGlyby5rdW1hbW90by5qcCIsImF5YWJlLmt5b3RvLmpwIiwiZnVrdWNoaXlhbWEua3lvdG8uanAiLCJoaWdhc2hpeWFtYS5reW90by5qcCIsImlkZS5reW90by5qcCIsImluZS5reW90by5qcCIsImpveW8ua3lvdG8uanAi'@; put 'LCJrYW1lb2thLmt5b3RvLmpwIiwia2Ftby5reW90by5qcCIsImtpdGEua3lvdG8uanAiLCJraXp1Lmt5b3RvLmpwIiwia3VtaXlhbWEua3lvdG8uanAiLCJreW90YW1iYS5reW90by5qcCIsImt5b3RhbmFiZS5reW90by5qcCIsImt5b3RhbmdvLmt5b3RvLmpwIiwibWFpenVydS5reW90by5q'@; put 'cCIsIm1pbmFtaS5reW90by5qcCIsIm1pbmFtaXlhbWFzaGlyby5reW90by5qcCIsIm1peWF6dS5reW90by5qcCIsIm11a28ua3lvdG8uanAiLCJuYWdhb2tha3lvLmt5b3RvLmpwIiwibmFrYWd5by5reW90by5qcCIsIm5hbnRhbi5reW90by5qcCIsIm95YW1hemFraS5reW90by5qcCIsInNh'@; put 'a3lvLmt5b3RvLmpwIiwic2Vpa2Eua3lvdG8uanAiLCJ0YW5hYmUua3lvdG8uanAiLCJ1amkua3lvdG8uanAiLCJ1aml0YXdhcmEua3lvdG8uanAiLCJ3YXp1a2Eua3lvdG8uanAiLCJ5YW1hc2hpbmEua3lvdG8uanAiLCJ5YXdhdGEua3lvdG8uanAiLCJhc2FoaS5taWUuanAiLCJpbmFiZS5t'@; put 'aWUuanAiLCJpc2UubWllLmpwIiwia2FtZXlhbWEubWllLmpwIiwia2F3YWdvZS5taWUuanAiLCJraWhvLm1pZS5qcCIsImtpc29zYWtpLm1pZS5qcCIsImtpd2EubWllLmpwIiwia29tb25vLm1pZS5qcCIsImt1bWFuby5taWUuanAiLCJrdXdhbmEubWllLmpwIiwibWF0c3VzYWthLm1pZS5q'@; put 'cCIsIm1laXdhLm1pZS5qcCIsIm1paGFtYS5taWUuanAiLCJtaW5hbWlpc2UubWllLmpwIiwibWlzdWdpLm1pZS5qcCIsIm1peWFtYS5taWUuanAiLCJuYWJhcmkubWllLmpwIiwic2hpbWEubWllLmpwIiwic3V6dWthLm1pZS5qcCIsInRhZG8ubWllLmpwIiwidGFpa2kubWllLmpwIiwidGFr'@; put 'aS5taWUuanAiLCJ0YW1ha2kubWllLmpwIiwidG9iYS5taWUuanAiLCJ0c3UubWllLmpwIiwidWRvbm8ubWllLmpwIiwidXJlc2hpbm8ubWllLmpwIiwid2F0YXJhaS5taWUuanAiLCJ5b2trYWljaGkubWllLmpwIiwiZnVydWthd2EubWl5YWdpLmpwIiwiaGlnYXNoaW1hdHN1c2hpbWEubWl5'@; put 'YWdpLmpwIiwiaXNoaW5vbWFraS5taXlhZ2kuanAiLCJpd2FudW1hLm1peWFnaS5qcCIsImtha3VkYS5taXlhZ2kuanAiLCJrYW1pLm1peWFnaS5qcCIsImthd2FzYWtpLm1peWFnaS5qcCIsIm1hcnVtb3JpLm1peWFnaS5qcCIsIm1hdHN1c2hpbWEubWl5YWdpLmpwIiwibWluYW1pc2Fucmlr'@; put 'dS5taXlhZ2kuanAiLCJtaXNhdG8ubWl5YWdpLmpwIiwibXVyYXRhLm1peWFnaS5qcCIsIm5hdG9yaS5taXlhZ2kuanAiLCJvZ2F3YXJhLm1peWFnaS5qcCIsIm9oaXJhLm1peWFnaS5qcCIsIm9uYWdhd2EubWl5YWdpLmpwIiwib3Nha2kubWl5YWdpLmpwIiwicmlmdS5taXlhZ2kuanAiLCJz'@; put 'ZW1pbmUubWl5YWdpLmpwIiwic2hpYmF0YS5taXlhZ2kuanAiLCJzaGljaGlrYXNodWt1Lm1peWFnaS5qcCIsInNoaWthbWEubWl5YWdpLmpwIiwic2hpb2dhbWEubWl5YWdpLmpwIiwic2hpcm9pc2hpLm1peWFnaS5qcCIsInRhZ2Fqby5taXlhZ2kuanAiLCJ0YWl3YS5taXlhZ2kuanAiLCJ0'@; put 'b21lLm1peWFnaS5qcCIsInRvbWl5YS5taXlhZ2kuanAiLCJ3YWt1eWEubWl5YWdpLmpwIiwid2F0YXJpLm1peWFnaS5qcCIsInlhbWFtb3RvLm1peWFnaS5qcCIsInphby5taXlhZ2kuanAiLCJheWEubWl5YXpha2kuanAiLCJlYmluby5taXlhemFraS5qcCIsImdva2FzZS5taXlhemFraS5q'@; put 'cCIsImh5dWdhLm1peWF6YWtpLmpwIiwia2Fkb2dhd2EubWl5YXpha2kuanAiLCJrYXdhbWluYW1pLm1peWF6YWtpLmpwIiwia2lqby5taXlhemFraS5qcCIsImtpdGFnYXdhLm1peWF6YWtpLmpwIiwia2l0YWthdGEubWl5YXpha2kuanAiLCJraXRhdXJhLm1peWF6YWtpLmpwIiwia29iYXlh'@; put 'c2hpLm1peWF6YWtpLmpwIiwia3VuaXRvbWkubWl5YXpha2kuanAiLCJrdXNoaW1hLm1peWF6YWtpLmpwIiwibWltYXRhLm1peWF6YWtpLmpwIiwibWl5YWtvbm9qby5taXlhemFraS5qcCIsIm1peWF6YWtpLm1peWF6YWtpLmpwIiwibW9yb3RzdWthLm1peWF6YWtpLmpwIiwibmljaGluYW4u'@; put 'bWl5YXpha2kuanAiLCJuaXNoaW1lcmEubWl5YXpha2kuanAiLCJub2Jlb2thLm1peWF6YWtpLmpwIiwic2FpdG8ubWl5YXpha2kuanAiLCJzaGlpYmEubWl5YXpha2kuanAiLCJzaGludG9taS5taXlhemFraS5qcCIsInRha2FoYXJ1Lm1peWF6YWtpLmpwIiwidGFrYW5hYmUubWl5YXpha2ku'@; put 'anAiLCJ0YWthemFraS5taXlhemFraS5qcCIsInRzdW5vLm1peWF6YWtpLmpwIiwiYWNoaS5uYWdhbm8uanAiLCJhZ2VtYXRzdS5uYWdhbm8uanAiLCJhbmFuLm5hZ2Fuby5qcCIsImFva2kubmFnYW5vLmpwIiwiYXNhaGkubmFnYW5vLmpwIiwiYXp1bWluby5uYWdhbm8uanAiLCJjaGlrdWhv'@; put 'a3UubmFnYW5vLmpwIiwiY2hpa3VtYS5uYWdhbm8uanAiLCJjaGluby5uYWdhbm8uanAiLCJmdWppbWkubmFnYW5vLmpwIiwiaGFrdWJhLm5hZ2Fuby5qcCIsImhhcmEubmFnYW5vLmpwIiwiaGlyYXlhLm5hZ2Fuby5qcCIsImlpZGEubmFnYW5vLmpwIiwiaWlqaW1hLm5hZ2Fuby5qcCIsImlp'@; put 'eWFtYS5uYWdhbm8uanAiLCJpaXp1bmEubmFnYW5vLmpwIiwiaWtlZGEubmFnYW5vLmpwIiwiaWt1c2FrYS5uYWdhbm8uanAiLCJpbmEubmFnYW5vLmpwIiwia2FydWl6YXdhLm5hZ2Fuby5qcCIsImthd2FrYW1pLm5hZ2Fuby5qcCIsImtpc28ubmFnYW5vLmpwIiwia2lzb2Z1a3VzaGltYS5u'@; put 'YWdhbm8uanAiLCJraXRhYWlraS5uYWdhbm8uanAiLCJrb21hZ2FuZS5uYWdhbm8uanAiLCJrb21vcm8ubmFnYW5vLmpwIiwibWF0c3VrYXdhLm5hZ2Fuby5qcCIsIm1hdHN1bW90by5uYWdhbm8uanAiLCJtaWFzYS5uYWdhbm8uanAiLCJtaW5hbWlhaWtpLm5hZ2Fuby5qcCIsIm1pbmFtaW1h'@; put 'a2kubmFnYW5vLmpwIiwibWluYW1pbWlub3dhLm5hZ2Fuby5qcCIsIm1pbm93YS5uYWdhbm8uanAiLCJtaXlhZGEubmFnYW5vLmpwIiwibWl5b3RhLm5hZ2Fuby5qcCIsIm1vY2hpenVraS5uYWdhbm8uanAiLCJuYWdhbm8ubmFnYW5vLmpwIiwibmFnYXdhLm5hZ2Fuby5qcCIsIm5hZ2lzby5u'@; put 'YWdhbm8uanAiLCJuYWthZ2F3YS5uYWdhbm8uanAiLCJuYWthbm8ubmFnYW5vLmpwIiwibm96YXdhb25zZW4ubmFnYW5vLmpwIiwib2J1c2UubmFnYW5vLmpwIiwib2dhd2EubmFnYW5vLmpwIiwib2theWEubmFnYW5vLmpwIiwib21hY2hpLm5hZ2Fuby5qcCIsIm9taS5uYWdhbm8uanAiLCJv'@; put 'b2t1d2EubmFnYW5vLmpwIiwib29zaGlrYS5uYWdhbm8uanAiLCJvdGFraS5uYWdhbm8uanAiLCJvdGFyaS5uYWdhbm8uanAiLCJzYWthZS5uYWdhbm8uanAiLCJzYWtha2kubmFnYW5vLmpwIiwic2FrdS5uYWdhbm8uanAiLCJzYWt1aG8ubmFnYW5vLmpwIiwic2hpbW9zdXdhLm5hZ2Fuby5q'@; put 'cCIsInNoaW5hbm9tYWNoaS5uYWdhbm8uanAiLCJzaGlvamlyaS5uYWdhbm8uanAiLCJzdXdhLm5hZ2Fuby5qcCIsInN1emFrYS5uYWdhbm8uanAiLCJ0YWthZ2kubmFnYW5vLmpwIiwidGFrYW1vcmkubmFnYW5vLmpwIiwidGFrYXlhbWEubmFnYW5vLmpwIiwidGF0ZXNoaW5hLm5hZ2Fuby5q'@; put 'cCIsInRhdHN1bm8ubmFnYW5vLmpwIiwidG9nYWt1c2hpLm5hZ2Fuby5qcCIsInRvZ3VyYS5uYWdhbm8uanAiLCJ0b21pLm5hZ2Fuby5qcCIsInVlZGEubmFnYW5vLmpwIiwid2FkYS5uYWdhbm8uanAiLCJ5YW1hZ2F0YS5uYWdhbm8uanAiLCJ5YW1hbm91Y2hpLm5hZ2Fuby5qcCIsInlhc2Fr'@; put 'YS5uYWdhbm8uanAiLCJ5YXN1b2thLm5hZ2Fuby5qcCIsImNoaWppd2EubmFnYXNha2kuanAiLCJmdXRzdS5uYWdhc2FraS5qcCIsImdvdG8ubmFnYXNha2kuanAiLCJoYXNhbWkubmFnYXNha2kuanAiLCJoaXJhZG8ubmFnYXNha2kuanAiLCJpa2kubmFnYXNha2kuanAiLCJpc2FoYXlhLm5h'@; put 'Z2FzYWtpLmpwIiwia2F3YXRhbmEubmFnYXNha2kuanAiLCJrdWNoaW5vdHN1Lm5hZ2FzYWtpLmpwIiwibWF0c3V1cmEubmFnYXNha2kuanAiLCJuYWdhc2FraS5uYWdhc2FraS5qcCIsIm9iYW1hLm5hZ2FzYWtpLmpwIiwib211cmEubmFnYXNha2kuanAiLCJvc2V0by5uYWdhc2FraS5qcCIs'@; put 'InNhaWthaS5uYWdhc2FraS5qcCIsInNhc2Viby5uYWdhc2FraS5qcCIsInNlaWhpLm5hZ2FzYWtpLmpwIiwic2hpbWFiYXJhLm5hZ2FzYWtpLmpwIiwic2hpbmthbWlnb3RvLm5hZ2FzYWtpLmpwIiwidG9naXRzdS5uYWdhc2FraS5qcCIsInRzdXNoaW1hLm5hZ2FzYWtpLmpwIiwidW56ZW4u'@; put 'bmFnYXNha2kuanAiLCJhbmRvLm5hcmEuanAiLCJnb3NlLm5hcmEuanAiLCJoZWd1cmkubmFyYS5qcCIsImhpZ2FzaGl5b3NoaW5vLm5hcmEuanAiLCJpa2FydWdhLm5hcmEuanAiLCJpa29tYS5uYXJhLmpwIiwia2FtaWtpdGF5YW1hLm5hcmEuanAiLCJrYW5tYWtpLm5hcmEuanAiLCJrYXNo'@; put 'aWJhLm5hcmEuanAiLCJrYXNoaWhhcmEubmFyYS5qcCIsImthdHN1cmFnaS5uYXJhLmpwIiwia2F3YWkubmFyYS5qcCIsImthd2FrYW1pLm5hcmEuanAiLCJrYXdhbmlzaGkubmFyYS5qcCIsImtvcnlvLm5hcmEuanAiLCJrdXJvdGFraS5uYXJhLmpwIiwibWl0c3VlLm5hcmEuanAiLCJtaXlh'@; put 'a2UubmFyYS5qcCIsIm5hcmEubmFyYS5qcCIsIm5vc2VnYXdhLm5hcmEuanAiLCJvamkubmFyYS5qcCIsIm91ZGEubmFyYS5qcCIsIm95b2RvLm5hcmEuanAiLCJzYWt1cmFpLm5hcmEuanAiLCJzYW5nby5uYXJhLmpwIiwic2hpbW9pY2hpLm5hcmEuanAiLCJzaGltb2tpdGF5YW1hLm5hcmEu'@; put 'anAiLCJzaGluam8ubmFyYS5qcCIsInNvbmkubmFyYS5qcCIsInRha2F0b3JpLm5hcmEuanAiLCJ0YXdhcmFtb3RvLm5hcmEuanAiLCJ0ZW5rYXdhLm5hcmEuanAiLCJ0ZW5yaS5uYXJhLmpwIiwidWRhLm5hcmEuanAiLCJ5YW1hdG9rb3JpeWFtYS5uYXJhLmpwIiwieWFtYXRvdGFrYWRhLm5h'@; put 'cmEuanAiLCJ5YW1hem9lLm5hcmEuanAiLCJ5b3NoaW5vLm5hcmEuanAiLCJhZ2EubmlpZ2F0YS5qcCIsImFnYW5vLm5paWdhdGEuanAiLCJnb3Nlbi5uaWlnYXRhLmpwIiwiaXRvaWdhd2EubmlpZ2F0YS5qcCIsIml6dW1vemFraS5uaWlnYXRhLmpwIiwiam9ldHN1Lm5paWdhdGEuanAiLCJr'@; put 'YW1vLm5paWdhdGEuanAiLCJrYXJpd2EubmlpZ2F0YS5qcCIsImthc2hpd2F6YWtpLm5paWdhdGEuanAiLCJtaW5hbWl1b251bWEubmlpZ2F0YS5qcCIsIm1pdHN1a2UubmlpZ2F0YS5qcCIsIm11aWthLm5paWdhdGEuanAiLCJtdXJha2FtaS5uaWlnYXRhLmpwIiwibXlva28ubmlpZ2F0YS5q'@; put 'cCIsIm5hZ2Fva2EubmlpZ2F0YS5qcCIsIm5paWdhdGEubmlpZ2F0YS5qcCIsIm9qaXlhLm5paWdhdGEuanAiLCJvbWkubmlpZ2F0YS5qcCIsInNhZG8ubmlpZ2F0YS5qcCIsInNhbmpvLm5paWdhdGEuanAiLCJzZWlyby5uaWlnYXRhLmpwIiwic2Vpcm91Lm5paWdhdGEuanAiLCJzZWtpa2F3'@; put 'YS5uaWlnYXRhLmpwIiwic2hpYmF0YS5uaWlnYXRhLmpwIiwidGFnYW1pLm5paWdhdGEuanAiLCJ0YWluYWkubmlpZ2F0YS5qcCIsInRvY2hpby5uaWlnYXRhLmpwIiwidG9rYW1hY2hpLm5paWdhdGEuanAiLCJ0c3ViYW1lLm5paWdhdGEuanAiLCJ0c3VuYW4ubmlpZ2F0YS5qcCIsInVvbnVt'@; put 'YS5uaWlnYXRhLmpwIiwieWFoaWtvLm5paWdhdGEuanAiLCJ5b2l0YS5uaWlnYXRhLmpwIiwieXV6YXdhLm5paWdhdGEuanAiLCJiZXBwdS5vaXRhLmpwIiwiYnVuZ29vbm8ub2l0YS5qcCIsImJ1bmdvdGFrYWRhLm9pdGEuanAiLCJoYXNhbWEub2l0YS5qcCIsImhpamkub2l0YS5qcCIsImhp'@; put 'bWVzaGltYS5vaXRhLmpwIiwiaGl0YS5vaXRhLmpwIiwia2FtaXRzdWUub2l0YS5qcCIsImtva29ub2Uub2l0YS5qcCIsImt1anUub2l0YS5qcCIsImt1bmlzYWtpLm9pdGEuanAiLCJrdXN1Lm9pdGEuanAiLCJvaXRhLm9pdGEuanAiLCJzYWlraS5vaXRhLmpwIiwidGFrZXRhLm9pdGEuanAi'@; put 'LCJ0c3VrdW1pLm9pdGEuanAiLCJ1c2Eub2l0YS5qcCIsInVzdWtpLm9pdGEuanAiLCJ5dWZ1Lm9pdGEuanAiLCJha2Fpd2Eub2theWFtYS5qcCIsImFzYWt1Y2hpLm9rYXlhbWEuanAiLCJiaXplbi5va2F5YW1hLmpwIiwiaGF5YXNoaW1hLm9rYXlhbWEuanAiLCJpYmFyYS5va2F5YW1hLmpw'@; put 'Iiwia2FnYW1pbm8ub2theWFtYS5qcCIsImthc2Fva2Eub2theWFtYS5qcCIsImtpYmljaHVvLm9rYXlhbWEuanAiLCJrdW1lbmFuLm9rYXlhbWEuanAiLCJrdXJhc2hpa2kub2theWFtYS5qcCIsIm1hbml3YS5va2F5YW1hLmpwIiwibWlzYWtpLm9rYXlhbWEuanAiLCJuYWdpLm9rYXlhbWEu'@; put 'anAiLCJuaWltaS5va2F5YW1hLmpwIiwibmlzaGlhd2FrdXJhLm9rYXlhbWEuanAiLCJva2F5YW1hLm9rYXlhbWEuanAiLCJzYXRvc2hvLm9rYXlhbWEuanAiLCJzZXRvdWNoaS5va2F5YW1hLmpwIiwic2hpbmpvLm9rYXlhbWEuanAiLCJzaG9vLm9rYXlhbWEuanAiLCJzb2phLm9rYXlhbWEu'@; put 'anAiLCJ0YWthaGFzaGkub2theWFtYS5qcCIsInRhbWFuby5va2F5YW1hLmpwIiwidHN1eWFtYS5va2F5YW1hLmpwIiwid2FrZS5va2F5YW1hLmpwIiwieWFrYWdlLm9rYXlhbWEuanAiLCJhZ3VuaS5va2luYXdhLmpwIiwiZ2lub3dhbi5va2luYXdhLmpwIiwiZ2lub3phLm9raW5hd2EuanAi'@; put 'LCJndXNoaWthbWkub2tpbmF3YS5qcCIsImhhZWJhcnUub2tpbmF3YS5qcCIsImhpZ2FzaGkub2tpbmF3YS5qcCIsImhpcmFyYS5va2luYXdhLmpwIiwiaWhleWEub2tpbmF3YS5qcCIsImlzaGlnYWtpLm9raW5hd2EuanAiLCJpc2hpa2F3YS5va2luYXdhLmpwIiwiaXRvbWFuLm9raW5hd2Eu'@; put 'anAiLCJpemVuYS5va2luYXdhLmpwIiwia2FkZW5hLm9raW5hd2EuanAiLCJraW4ub2tpbmF3YS5qcCIsImtpdGFkYWl0by5va2luYXdhLmpwIiwia2l0YW5ha2FndXN1a3Uub2tpbmF3YS5qcCIsImt1bWVqaW1hLm9raW5hd2EuanAiLCJrdW5pZ2FtaS5va2luYXdhLmpwIiwibWluYW1pZGFp'@; put 'dG8ub2tpbmF3YS5qcCIsIm1vdG9idS5va2luYXdhLmpwIiwibmFnby5va2luYXdhLmpwIiwibmFoYS5va2luYXdhLmpwIiwibmFrYWd1c3VrdS5va2luYXdhLmpwIiwibmFraWppbi5va2luYXdhLmpwIiwibmFuam8ub2tpbmF3YS5qcCIsIm5pc2hpaGFyYS5va2luYXdhLmpwIiwib2dpbWku'@; put 'b2tpbmF3YS5qcCIsIm9raW5hd2Eub2tpbmF3YS5qcCIsIm9ubmEub2tpbmF3YS5qcCIsInNoaW1vamkub2tpbmF3YS5qcCIsInRha2V0b21pLm9raW5hd2EuanAiLCJ0YXJhbWEub2tpbmF3YS5qcCIsInRva2FzaGlraS5va2luYXdhLmpwIiwidG9taWd1c3VrdS5va2luYXdhLmpwIiwidG9u'@; put 'YWtpLm9raW5hd2EuanAiLCJ1cmFzb2Uub2tpbmF3YS5qcCIsInVydW1hLm9raW5hd2EuanAiLCJ5YWVzZS5va2luYXdhLmpwIiwieW9taXRhbi5va2luYXdhLmpwIiwieW9uYWJhcnUub2tpbmF3YS5qcCIsInlvbmFndW5pLm9raW5hd2EuanAiLCJ6YW1hbWkub2tpbmF3YS5qcCIsImFiZW5v'@; put 'Lm9zYWthLmpwIiwiY2hpaGF5YWFrYXNha2Eub3Nha2EuanAiLCJjaHVvLm9zYWthLmpwIiwiZGFpdG8ub3Nha2EuanAiLCJmdWppaWRlcmEub3Nha2EuanAiLCJoYWJpa2luby5vc2FrYS5qcCIsImhhbm5hbi5vc2FrYS5qcCIsImhpZ2FzaGlvc2FrYS5vc2FrYS5qcCIsImhpZ2FzaGlzdW1p'@; put 'eW9zaGkub3Nha2EuanAiLCJoaWdhc2hpeW9kb2dhd2Eub3Nha2EuanAiLCJoaXJha2F0YS5vc2FrYS5qcCIsImliYXJha2kub3Nha2EuanAiLCJpa2VkYS5vc2FrYS5qcCIsIml6dW1pLm9zYWthLmpwIiwiaXp1bWlvdHN1Lm9zYWthLmpwIiwiaXp1bWlzYW5vLm9zYWthLmpwIiwia2Fkb21h'@; put 'Lm9zYWthLmpwIiwia2FpenVrYS5vc2FrYS5qcCIsImthbmFuLm9zYWthLmpwIiwia2FzaGl3YXJhLm9zYWthLmpwIiwia2F0YW5vLm9zYWthLmpwIiwia2F3YWNoaW5hZ2Fuby5vc2FrYS5qcCIsImtpc2hpd2FkYS5vc2FrYS5qcCIsImtpdGEub3Nha2EuanAiLCJrdW1hdG9yaS5vc2FrYS5q'@; put 'cCIsIm1hdHN1YmFyYS5vc2FrYS5qcCIsIm1pbmF0by5vc2FrYS5qcCIsIm1pbm9oLm9zYWthLmpwIiwibWlzYWtpLm9zYWthLmpwIiwibW9yaWd1Y2hpLm9zYWthLmpwIiwibmV5YWdhd2Eub3Nha2EuanAiLCJuaXNoaS5vc2FrYS5qcCIsIm5vc2Uub3Nha2EuanAiLCJvc2FrYXNheWFtYS5v'@; put 'c2FrYS5qcCIsInNha2FpLm9zYWthLmpwIiwic2F5YW1hLm9zYWthLmpwIiwic2VubmFuLm9zYWthLmpwIiwic2V0dHN1Lm9zYWthLmpwIiwic2hpam9uYXdhdGUub3Nha2EuanAiLCJzaGltYW1vdG8ub3Nha2EuanAiLCJzdWl0YS5vc2FrYS5qcCIsInRhZGFva2Eub3Nha2EuanAiLCJ0YWlz'@; put 'aGkub3Nha2EuanAiLCJ0YWppcmkub3Nha2EuanAiLCJ0YWthaXNoaS5vc2FrYS5qcCIsInRha2F0c3VraS5vc2FrYS5qcCIsInRvbmRhYmF5YXNoaS5vc2FrYS5qcCIsInRveW9uYWthLm9zYWthLmpwIiwidG95b25vLm9zYWthLmpwIiwieWFvLm9zYWthLmpwIiwiYXJpYWtlLnNhZ2EuanAi'@; put 'LCJhcml0YS5zYWdhLmpwIiwiZnVrdWRvbWkuc2FnYS5qcCIsImdlbmthaS5zYWdhLmpwIiwiaGFtYXRhbWEuc2FnYS5qcCIsImhpemVuLnNhZ2EuanAiLCJpbWFyaS5zYWdhLmpwIiwia2FtaW1pbmUuc2FnYS5qcCIsImthbnpha2kuc2FnYS5qcCIsImthcmF0c3Uuc2FnYS5qcCIsImthc2hp'@; put 'bWEuc2FnYS5qcCIsImtpdGFnYXRhLnNhZ2EuanAiLCJraXRhaGF0YS5zYWdhLmpwIiwia2l5YW1hLnNhZ2EuanAiLCJrb3Vob2t1LnNhZ2EuanAiLCJreXVyYWdpLnNhZ2EuanAiLCJuaXNoaWFyaXRhLnNhZ2EuanAiLCJvZ2kuc2FnYS5qcCIsIm9tYWNoaS5zYWdhLmpwIiwib3VjaGkuc2Fn'@; put 'YS5qcCIsInNhZ2Euc2FnYS5qcCIsInNoaXJvaXNoaS5zYWdhLmpwIiwidGFrdS5zYWdhLmpwIiwidGFyYS5zYWdhLmpwIiwidG9zdS5zYWdhLmpwIiwieW9zaGlub2dhcmkuc2FnYS5qcCIsImFyYWthd2Euc2FpdGFtYS5qcCIsImFzYWthLnNhaXRhbWEuanAiLCJjaGljaGlidS5zYWl0YW1h'@; put 'LmpwIiwiZnVqaW1pLnNhaXRhbWEuanAiLCJmdWppbWluby5zYWl0YW1hLmpwIiwiZnVrYXlhLnNhaXRhbWEuanAiLCJoYW5uby5zYWl0YW1hLmpwIiwiaGFueXUuc2FpdGFtYS5qcCIsImhhc3VkYS5zYWl0YW1hLmpwIiwiaGF0b2dheWEuc2FpdGFtYS5qcCIsImhhdG95YW1hLnNhaXRhbWEu'@; put 'anAiLCJoaWRha2Euc2FpdGFtYS5qcCIsImhpZ2FzaGljaGljaGlidS5zYWl0YW1hLmpwIiwiaGlnYXNoaW1hdHN1eWFtYS5zYWl0YW1hLmpwIiwiaG9uam8uc2FpdGFtYS5qcCIsImluYS5zYWl0YW1hLmpwIiwiaXJ1bWEuc2FpdGFtYS5qcCIsIml3YXRzdWtpLnNhaXRhbWEuanAiLCJrYW1p'@; put 'aXp1bWkuc2FpdGFtYS5qcCIsImthbWlrYXdhLnNhaXRhbWEuanAiLCJrYW1pc2F0by5zYWl0YW1hLmpwIiwia2FzdWthYmUuc2FpdGFtYS5qcCIsImthd2Fnb2Uuc2FpdGFtYS5qcCIsImthd2FndWNoaS5zYWl0YW1hLmpwIiwia2F3YWppbWEuc2FpdGFtYS5qcCIsImthem8uc2FpdGFtYS5q'@; put 'cCIsImtpdGFtb3RvLnNhaXRhbWEuanAiLCJrb3NoaWdheWEuc2FpdGFtYS5qcCIsImtvdW5vc3Uuc2FpdGFtYS5qcCIsImt1a2kuc2FpdGFtYS5qcCIsImt1bWFnYXlhLnNhaXRhbWEuanAiLCJtYXRzdWJ1c2hpLnNhaXRhbWEuanAiLCJtaW5hbm8uc2FpdGFtYS5qcCIsIm1pc2F0by5zYWl0'@; put 'YW1hLmpwIiwibWl5YXNoaXJvLnNhaXRhbWEuanAiLCJtaXlvc2hpLnNhaXRhbWEuanAiLCJtb3JveWFtYS5zYWl0YW1hLmpwIiwibmFnYXRvcm8uc2FpdGFtYS5qcCIsIm5hbWVnYXdhLnNhaXRhbWEuanAiLCJuaWl6YS5zYWl0YW1hLmpwIiwib2dhbm8uc2FpdGFtYS5qcCIsIm9nYXdhLnNh'@; put 'aXRhbWEuanAiLCJvZ29zZS5zYWl0YW1hLmpwIiwib2tlZ2F3YS5zYWl0YW1hLmpwIiwib21peWEuc2FpdGFtYS5qcCIsIm90YWtpLnNhaXRhbWEuanAiLCJyYW56YW4uc2FpdGFtYS5qcCIsInJ5b2thbWkuc2FpdGFtYS5qcCIsInNhaXRhbWEuc2FpdGFtYS5qcCIsInNha2Fkby5zYWl0YW1h'@; put 'LmpwIiwic2F0dGUuc2FpdGFtYS5qcCIsInNheWFtYS5zYWl0YW1hLmpwIiwic2hpa2kuc2FpdGFtYS5qcCIsInNoaXJhb2thLnNhaXRhbWEuanAiLCJzb2thLnNhaXRhbWEuanAiLCJzdWdpdG8uc2FpdGFtYS5qcCIsInRvZGEuc2FpdGFtYS5qcCIsInRva2lnYXdhLnNhaXRhbWEuanAiLCJ0'@; put 'b2tvcm96YXdhLnNhaXRhbWEuanAiLCJ0c3VydWdhc2hpbWEuc2FpdGFtYS5qcCIsInVyYXdhLnNhaXRhbWEuanAiLCJ3YXJhYmkuc2FpdGFtYS5qcCIsInlhc2hpby5zYWl0YW1hLmpwIiwieW9rb3plLnNhaXRhbWEuanAiLCJ5b25vLnNhaXRhbWEuanAiLCJ5b3JpaS5zYWl0YW1hLmpwIiwi'@; put 'eW9zaGlkYS5zYWl0YW1hLmpwIiwieW9zaGlrYXdhLnNhaXRhbWEuanAiLCJ5b3NoaW1pLnNhaXRhbWEuanAiLCJhaXNoby5zaGlnYS5qcCIsImdhbW8uc2hpZ2EuanAiLCJoaWdhc2hpb21pLnNoaWdhLmpwIiwiaGlrb25lLnNoaWdhLmpwIiwia29rYS5zaGlnYS5qcCIsImtvbmFuLnNoaWdh'@; put 'LmpwIiwia29zZWkuc2hpZ2EuanAiLCJrb3RvLnNoaWdhLmpwIiwia3VzYXRzdS5zaGlnYS5qcCIsIm1haWJhcmEuc2hpZ2EuanAiLCJtb3JpeWFtYS5zaGlnYS5qcCIsIm5hZ2FoYW1hLnNoaWdhLmpwIiwibmlzaGlhemFpLnNoaWdhLmpwIiwibm90b2dhd2Euc2hpZ2EuanAiLCJvbWloYWNo'@; put 'aW1hbi5zaGlnYS5qcCIsIm90c3Uuc2hpZ2EuanAiLCJyaXR0by5zaGlnYS5qcCIsInJ5dW9oLnNoaWdhLmpwIiwidGFrYXNoaW1hLnNoaWdhLmpwIiwidGFrYXRzdWtpLnNoaWdhLmpwIiwidG9yYWhpbWUuc2hpZ2EuanAiLCJ0b3lvc2F0by5zaGlnYS5qcCIsInlhc3Uuc2hpZ2EuanAiLCJh'@; put 'a2FnaS5zaGltYW5lLmpwIiwiYW1hLnNoaW1hbmUuanAiLCJnb3RzdS5zaGltYW5lLmpwIiwiaGFtYWRhLnNoaW1hbmUuanAiLCJoaWdhc2hpaXp1bW8uc2hpbWFuZS5qcCIsImhpa2F3YS5zaGltYW5lLmpwIiwiaGlraW1pLnNoaW1hbmUuanAiLCJpenVtby5zaGltYW5lLmpwIiwia2FraW5v'@; put 'a2kuc2hpbWFuZS5qcCIsIm1hc3VkYS5zaGltYW5lLmpwIiwibWF0c3VlLnNoaW1hbmUuanAiLCJtaXNhdG8uc2hpbWFuZS5qcCIsIm5pc2hpbm9zaGltYS5zaGltYW5lLmpwIiwib2hkYS5zaGltYW5lLmpwIiwib2tpbm9zaGltYS5zaGltYW5lLmpwIiwib2t1aXp1bW8uc2hpbWFuZS5qcCIs'@; put 'InNoaW1hbmUuc2hpbWFuZS5qcCIsInRhbWF5dS5zaGltYW5lLmpwIiwidHN1d2Fuby5zaGltYW5lLmpwIiwidW5uYW4uc2hpbWFuZS5qcCIsInlha3Vtby5zaGltYW5lLmpwIiwieWFzdWdpLnNoaW1hbmUuanAiLCJ5YXRzdWthLnNoaW1hbmUuanAiLCJhcmFpLnNoaXp1b2thLmpwIiwiYXRh'@; put 'bWkuc2hpenVva2EuanAiLCJmdWppLnNoaXp1b2thLmpwIiwiZnVqaWVkYS5zaGl6dW9rYS5qcCIsImZ1amlrYXdhLnNoaXp1b2thLmpwIiwiZnVqaW5vbWl5YS5zaGl6dW9rYS5qcCIsImZ1a3Vyb2kuc2hpenVva2EuanAiLCJnb3RlbWJhLnNoaXp1b2thLmpwIiwiaGFpYmFyYS5zaGl6dW9r'@; put 'YS5qcCIsImhhbWFtYXRzdS5zaGl6dW9rYS5qcCIsImhpZ2FzaGlpenUuc2hpenVva2EuanAiLCJpdG8uc2hpenVva2EuanAiLCJpd2F0YS5zaGl6dW9rYS5qcCIsIml6dS5zaGl6dW9rYS5qcCIsIml6dW5va3VuaS5zaGl6dW9rYS5qcCIsImtha2VnYXdhLnNoaXp1b2thLmpwIiwia2FubmFt'@; put 'aS5zaGl6dW9rYS5qcCIsImthd2FuZWhvbi5zaGl6dW9rYS5qcCIsImthd2F6dS5zaGl6dW9rYS5qcCIsImtpa3VnYXdhLnNoaXp1b2thLmpwIiwia29zYWkuc2hpenVva2EuanAiLCJtYWtpbm9oYXJhLnNoaXp1b2thLmpwIiwibWF0c3V6YWtpLnNoaXp1b2thLmpwIiwibWluYW1paXp1LnNo'@; put 'aXp1b2thLmpwIiwibWlzaGltYS5zaGl6dW9rYS5qcCIsIm1vcmltYWNoaS5zaGl6dW9rYS5qcCIsIm5pc2hpaXp1LnNoaXp1b2thLmpwIiwibnVtYXp1LnNoaXp1b2thLmpwIiwib21hZXpha2kuc2hpenVva2EuanAiLCJzaGltYWRhLnNoaXp1b2thLmpwIiwic2hpbWl6dS5zaGl6dW9rYS5q'@; put 'cCIsInNoaW1vZGEuc2hpenVva2EuanAiLCJzaGl6dW9rYS5zaGl6dW9rYS5qcCIsInN1c29uby5zaGl6dW9rYS5qcCIsInlhaXp1LnNoaXp1b2thLmpwIiwieW9zaGlkYS5zaGl6dW9rYS5qcCIsImFzaGlrYWdhLnRvY2hpZ2kuanAiLCJiYXRvLnRvY2hpZ2kuanAiLCJoYWdhLnRvY2hpZ2ku'@; put 'anAiLCJpY2hpa2FpLnRvY2hpZ2kuanAiLCJpd2FmdW5lLnRvY2hpZ2kuanAiLCJrYW1pbm9rYXdhLnRvY2hpZ2kuanAiLCJrYW51bWEudG9jaGlnaS5qcCIsImthcmFzdXlhbWEudG9jaGlnaS5qcCIsImt1cm9pc28udG9jaGlnaS5qcCIsIm1hc2hpa28udG9jaGlnaS5qcCIsIm1pYnUudG9j'@; put 'aGlnaS5qcCIsIm1va2EudG9jaGlnaS5qcCIsIm1vdGVnaS50b2NoaWdpLmpwIiwibmFzdS50b2NoaWdpLmpwIiwibmFzdXNoaW9iYXJhLnRvY2hpZ2kuanAiLCJuaWtrby50b2NoaWdpLmpwIiwibmlzaGlrYXRhLnRvY2hpZ2kuanAiLCJub2dpLnRvY2hpZ2kuanAiLCJvaGlyYS50b2NoaWdp'@; put 'LmpwIiwib2h0YXdhcmEudG9jaGlnaS5qcCIsIm95YW1hLnRvY2hpZ2kuanAiLCJzYWt1cmEudG9jaGlnaS5qcCIsInNhbm8udG9jaGlnaS5qcCIsInNoaW1vdHN1a2UudG9jaGlnaS5qcCIsInNoaW95YS50b2NoaWdpLmpwIiwidGFrYW5lemF3YS50b2NoaWdpLmpwIiwidG9jaGlnaS50b2No'@; put 'aWdpLmpwIiwidHN1Z2EudG9jaGlnaS5qcCIsInVqaWllLnRvY2hpZ2kuanAiLCJ1dHN1bm9taXlhLnRvY2hpZ2kuanAiLCJ5YWl0YS50b2NoaWdpLmpwIiwiYWl6dW1pLnRva3VzaGltYS5qcCIsImFuYW4udG9rdXNoaW1hLmpwIiwiaWNoaWJhLnRva3VzaGltYS5qcCIsIml0YW5vLnRva3Vz'@; put 'aGltYS5qcCIsImthaW5hbi50b2t1c2hpbWEuanAiLCJrb21hdHN1c2hpbWEudG9rdXNoaW1hLmpwIiwibWF0c3VzaGlnZS50b2t1c2hpbWEuanAiLCJtaW1hLnRva3VzaGltYS5qcCIsIm1pbmFtaS50b2t1c2hpbWEuanAiLCJtaXlvc2hpLnRva3VzaGltYS5qcCIsIm11Z2kudG9rdXNoaW1h'@; put 'LmpwIiwibmFrYWdhd2EudG9rdXNoaW1hLmpwIiwibmFydXRvLnRva3VzaGltYS5qcCIsInNhbmFnb2NoaS50b2t1c2hpbWEuanAiLCJzaGlzaGlrdWkudG9rdXNoaW1hLmpwIiwidG9rdXNoaW1hLnRva3VzaGltYS5qcCIsIndhamlraS50b2t1c2hpbWEuanAiLCJhZGFjaGkudG9reW8uanAi'@; put 'LCJha2lydW5vLnRva3lvLmpwIiwiYWtpc2hpbWEudG9reW8uanAiLCJhb2dhc2hpbWEudG9reW8uanAiLCJhcmFrYXdhLnRva3lvLmpwIiwiYnVua3lvLnRva3lvLmpwIiwiY2hpeW9kYS50b2t5by5qcCIsImNob2Z1LnRva3lvLmpwIiwiY2h1by50b2t5by5qcCIsImVkb2dhd2EudG9reW8u'@; put 'anAiLCJmdWNodS50b2t5by5qcCIsImZ1c3NhLnRva3lvLmpwIiwiaGFjaGlqby50b2t5by5qcCIsImhhY2hpb2ppLnRva3lvLmpwIiwiaGFtdXJhLnRva3lvLmpwIiwiaGlnYXNoaWt1cnVtZS50b2t5by5qcCIsImhpZ2FzaGltdXJheWFtYS50b2t5by5qcCIsImhpZ2FzaGl5YW1hdG8udG9r'@; put 'eW8uanAiLCJoaW5vLnRva3lvLmpwIiwiaGlub2RlLnRva3lvLmpwIiwiaGlub2hhcmEudG9reW8uanAiLCJpbmFnaS50b2t5by5qcCIsIml0YWJhc2hpLnRva3lvLmpwIiwia2F0c3VzaGlrYS50b2t5by5qcCIsImtpdGEudG9reW8uanAiLCJraXlvc2UudG9reW8uanAiLCJrb2RhaXJhLnRv'@; put 'a3lvLmpwIiwia29nYW5laS50b2t5by5qcCIsImtva3VidW5qaS50b2t5by5qcCIsImtvbWFlLnRva3lvLmpwIiwia290by50b2t5by5qcCIsImtvdXp1c2hpbWEudG9reW8uanAiLCJrdW5pdGFjaGkudG9reW8uanAiLCJtYWNoaWRhLnRva3lvLmpwIiwibWVndXJvLnRva3lvLmpwIiwibWlu'@; put 'YXRvLnRva3lvLmpwIiwibWl0YWthLnRva3lvLmpwIiwibWl6dWhvLnRva3lvLmpwIiwibXVzYXNoaW11cmF5YW1hLnRva3lvLmpwIiwibXVzYXNoaW5vLnRva3lvLmpwIiwibmFrYW5vLnRva3lvLmpwIiwibmVyaW1hLnRva3lvLmpwIiwib2dhc2F3YXJhLnRva3lvLmpwIiwib2t1dGFtYS50'@; put 'b2t5by5qcCIsIm9tZS50b2t5by5qcCIsIm9zaGltYS50b2t5by5qcCIsIm90YS50b2t5by5qcCIsInNldGFnYXlhLnRva3lvLmpwIiwic2hpYnV5YS50b2t5by5qcCIsInNoaW5hZ2F3YS50b2t5by5qcCIsInNoaW5qdWt1LnRva3lvLmpwIiwic3VnaW5hbWkudG9reW8uanAiLCJzdW1pZGEu'@; put 'dG9reW8uanAiLCJ0YWNoaWthd2EudG9reW8uanAiLCJ0YWl0by50b2t5by5qcCIsInRhbWEudG9reW8uanAiLCJ0b3NoaW1hLnRva3lvLmpwIiwiY2hpenUudG90dG9yaS5qcCIsImhpbm8udG90dG9yaS5qcCIsImthd2FoYXJhLnRvdHRvcmkuanAiLCJrb2dlLnRvdHRvcmkuanAiLCJrb3Rv'@; put 'dXJhLnRvdHRvcmkuanAiLCJtaXNhc2EudG90dG9yaS5qcCIsIm5hbmJ1LnRvdHRvcmkuanAiLCJuaWNoaW5hbi50b3R0b3JpLmpwIiwic2FrYWltaW5hdG8udG90dG9yaS5qcCIsInRvdHRvcmkudG90dG9yaS5qcCIsIndha2FzYS50b3R0b3JpLmpwIiwieWF6dS50b3R0b3JpLmpwIiwieW9u'@; put 'YWdvLnRvdHRvcmkuanAiLCJhc2FoaS50b3lhbWEuanAiLCJmdWNodS50b3lhbWEuanAiLCJmdWt1bWl0c3UudG95YW1hLmpwIiwiZnVuYWhhc2hpLnRveWFtYS5qcCIsImhpbWkudG95YW1hLmpwIiwiaW1penUudG95YW1hLmpwIiwiaW5hbWkudG95YW1hLmpwIiwiam9oYW5hLnRveWFtYS5q'@; put 'cCIsImthbWlpY2hpLnRveWFtYS5qcCIsImt1cm9iZS50b3lhbWEuanAiLCJuYWthbmlpa2F3YS50b3lhbWEuanAiLCJuYW1lcmlrYXdhLnRveWFtYS5qcCIsIm5hbnRvLnRveWFtYS5qcCIsIm55dXplbi50b3lhbWEuanAiLCJveWFiZS50b3lhbWEuanAiLCJ0YWlyYS50b3lhbWEuanAiLCJ0'@; put 'YWthb2thLnRveWFtYS5qcCIsInRhdGV5YW1hLnRveWFtYS5qcCIsInRvZ2EudG95YW1hLmpwIiwidG9uYW1pLnRveWFtYS5qcCIsInRveWFtYS50b3lhbWEuanAiLCJ1bmF6dWtpLnRveWFtYS5qcCIsInVvenUudG95YW1hLmpwIiwieWFtYWRhLnRveWFtYS5qcCIsImFyaWRhLndha2F5YW1h'@; put 'LmpwIiwiYXJpZGFnYXdhLndha2F5YW1hLmpwIiwiZ29iby53YWtheWFtYS5qcCIsImhhc2hpbW90by53YWtheWFtYS5qcCIsImhpZGFrYS53YWtheWFtYS5qcCIsImhpcm9nYXdhLndha2F5YW1hLmpwIiwiaW5hbWkud2FrYXlhbWEuanAiLCJpd2FkZS53YWtheWFtYS5qcCIsImthaW5hbi53'@; put 'YWtheWFtYS5qcCIsImthbWl0b25kYS53YWtheWFtYS5qcCIsImthdHN1cmFnaS53YWtheWFtYS5qcCIsImtpbWluby53YWtheWFtYS5qcCIsImtpbm9rYXdhLndha2F5YW1hLmpwIiwia2l0YXlhbWEud2FrYXlhbWEuanAiLCJrb3lhLndha2F5YW1hLmpwIiwia296YS53YWtheWFtYS5qcCIs'@; put 'ImtvemFnYXdhLndha2F5YW1hLmpwIiwia3Vkb3lhbWEud2FrYXlhbWEuanAiLCJrdXNoaW1vdG8ud2FrYXlhbWEuanAiLCJtaWhhbWEud2FrYXlhbWEuanAiLCJtaXNhdG8ud2FrYXlhbWEuanAiLCJuYWNoaWthdHN1dXJhLndha2F5YW1hLmpwIiwic2hpbmd1Lndha2F5YW1hLmpwIiwic2hp'@; put 'cmFoYW1hLndha2F5YW1hLmpwIiwidGFpamkud2FrYXlhbWEuanAiLCJ0YW5hYmUud2FrYXlhbWEuanAiLCJ3YWtheWFtYS53YWtheWFtYS5qcCIsInl1YXNhLndha2F5YW1hLmpwIiwieXVyYS53YWtheWFtYS5qcCIsImFzYWhpLnlhbWFnYXRhLmpwIiwiZnVuYWdhdGEueWFtYWdhdGEuanAi'@; put 'LCJoaWdhc2hpbmUueWFtYWdhdGEuanAiLCJpaWRlLnlhbWFnYXRhLmpwIiwia2Fob2t1LnlhbWFnYXRhLmpwIiwia2FtaW5veWFtYS55YW1hZ2F0YS5qcCIsImthbmV5YW1hLnlhbWFnYXRhLmpwIiwia2F3YW5pc2hpLnlhbWFnYXRhLmpwIiwibWFtdXJvZ2F3YS55YW1hZ2F0YS5qcCIsIm1p'@; put 'a2F3YS55YW1hZ2F0YS5qcCIsIm11cmF5YW1hLnlhbWFnYXRhLmpwIiwibmFnYWkueWFtYWdhdGEuanAiLCJuYWtheWFtYS55YW1hZ2F0YS5qcCIsIm5hbnlvLnlhbWFnYXRhLmpwIiwibmlzaGlrYXdhLnlhbWFnYXRhLmpwIiwib2JhbmF6YXdhLnlhbWFnYXRhLmpwIiwib2UueWFtYWdhdGEu'@; put 'anAiLCJvZ3VuaS55YW1hZ2F0YS5qcCIsIm9oa3VyYS55YW1hZ2F0YS5qcCIsIm9pc2hpZGEueWFtYWdhdGEuanAiLCJzYWdhZS55YW1hZ2F0YS5qcCIsInNha2F0YS55YW1hZ2F0YS5qcCIsInNha2VnYXdhLnlhbWFnYXRhLmpwIiwic2hpbmpvLnlhbWFnYXRhLmpwIiwic2hpcmF0YWthLnlh'@; put 'bWFnYXRhLmpwIiwic2hvbmFpLnlhbWFnYXRhLmpwIiwidGFrYWhhdGEueWFtYWdhdGEuanAiLCJ0ZW5kby55YW1hZ2F0YS5qcCIsInRvemF3YS55YW1hZ2F0YS5qcCIsInRzdXJ1b2thLnlhbWFnYXRhLmpwIiwieWFtYWdhdGEueWFtYWdhdGEuanAiLCJ5YW1hbm9iZS55YW1hZ2F0YS5qcCIs'@; put 'InlvbmV6YXdhLnlhbWFnYXRhLmpwIiwieXV6YS55YW1hZ2F0YS5qcCIsImFidS55YW1hZ3VjaGkuanAiLCJoYWdpLnlhbWFndWNoaS5qcCIsImhpa2FyaS55YW1hZ3VjaGkuanAiLCJob2Z1LnlhbWFndWNoaS5qcCIsIml3YWt1bmkueWFtYWd1Y2hpLmpwIiwia3VkYW1hdHN1LnlhbWFndWNo'@; put 'aS5qcCIsIm1pdG91LnlhbWFndWNoaS5qcCIsIm5hZ2F0by55YW1hZ3VjaGkuanAiLCJvc2hpbWEueWFtYWd1Y2hpLmpwIiwic2hpbW9ub3Nla2kueWFtYWd1Y2hpLmpwIiwic2h1bmFuLnlhbWFndWNoaS5qcCIsInRhYnVzZS55YW1hZ3VjaGkuanAiLCJ0b2t1eWFtYS55YW1hZ3VjaGkuanAi'@; put 'LCJ0b3lvdGEueWFtYWd1Y2hpLmpwIiwidWJlLnlhbWFndWNoaS5qcCIsInl1dS55YW1hZ3VjaGkuanAiLCJjaHVvLnlhbWFuYXNoaS5qcCIsImRvc2hpLnlhbWFuYXNoaS5qcCIsImZ1ZWZ1a2kueWFtYW5hc2hpLmpwIiwiZnVqaWthd2EueWFtYW5hc2hpLmpwIiwiZnVqaWthd2FndWNoaWtv'@; put 'LnlhbWFuYXNoaS5qcCIsImZ1aml5b3NoaWRhLnlhbWFuYXNoaS5qcCIsImhheWFrYXdhLnlhbWFuYXNoaS5qcCIsImhva3V0by55YW1hbmFzaGkuanAiLCJpY2hpa2F3YW1pc2F0by55YW1hbmFzaGkuanAiLCJrYWkueWFtYW5hc2hpLmpwIiwia29mdS55YW1hbmFzaGkuanAiLCJrb3NodS55'@; put 'YW1hbmFzaGkuanAiLCJrb3N1Z2UueWFtYW5hc2hpLmpwIiwibWluYW1pLWFscHMueWFtYW5hc2hpLmpwIiwibWlub2J1LnlhbWFuYXNoaS5qcCIsIm5ha2FtaWNoaS55YW1hbmFzaGkuanAiLCJuYW5idS55YW1hbmFzaGkuanAiLCJuYXJ1c2F3YS55YW1hbmFzaGkuanAiLCJuaXJhc2FraS55'@; put 'YW1hbmFzaGkuanAiLCJuaXNoaWthdHN1cmEueWFtYW5hc2hpLmpwIiwib3NoaW5vLnlhbWFuYXNoaS5qcCIsIm90c3VraS55YW1hbmFzaGkuanAiLCJzaG93YS55YW1hbmFzaGkuanAiLCJ0YWJheWFtYS55YW1hbmFzaGkuanAiLCJ0c3VydS55YW1hbmFzaGkuanAiLCJ1ZW5vaGFyYS55YW1h'@; put 'bmFzaGkuanAiLCJ5YW1hbmFrYWtvLnlhbWFuYXNoaS5qcCIsInlhbWFuYXNoaS55YW1hbmFzaGkuanAiLCJrZSIsImFjLmtlIiwiY28ua2UiLCJnby5rZSIsImluZm8ua2UiLCJtZS5rZSIsIm1vYmkua2UiLCJuZS5rZSIsIm9yLmtlIiwic2Mua2UiLCJrZyIsIm9yZy5rZyIsIm5ldC5rZyIs'@; put 'ImNvbS5rZyIsImVkdS5rZyIsImdvdi5rZyIsIm1pbC5rZyIsIioua2giLCJraSIsImVkdS5raSIsImJpei5raSIsIm5ldC5raSIsIm9yZy5raSIsImdvdi5raSIsImluZm8ua2kiLCJjb20ua2kiLCJrbSIsIm9yZy5rbSIsIm5vbS5rbSIsImdvdi5rbSIsInByZC5rbSIsInRtLmttIiwiZWR1'@; put 'LmttIiwibWlsLmttIiwiYXNzLmttIiwiY29tLmttIiwiY29vcC5rbSIsImFzc28ua20iLCJwcmVzc2Uua20iLCJtZWRlY2luLmttIiwibm90YWlyZXMua20iLCJwaGFybWFjaWVucy5rbSIsInZldGVyaW5haXJlLmttIiwiZ291di5rbSIsImtuIiwibmV0LmtuIiwib3JnLmtuIiwiZWR1Lmtu'@; put 'IiwiZ292LmtuIiwia3AiLCJjb20ua3AiLCJlZHUua3AiLCJnb3Yua3AiLCJvcmcua3AiLCJyZXAua3AiLCJ0cmEua3AiLCJrciIsImFjLmtyIiwiY28ua3IiLCJlcy5rciIsImdvLmtyIiwiaHMua3IiLCJrZy5rciIsIm1pbC5rciIsIm1zLmtyIiwibmUua3IiLCJvci5rciIsInBlLmtyIiwi'@; put 'cmUua3IiLCJzYy5rciIsImJ1c2FuLmtyIiwiY2h1bmdidWsua3IiLCJjaHVuZ25hbS5rciIsImRhZWd1LmtyIiwiZGFlamVvbi5rciIsImdhbmd3b24ua3IiLCJnd2FuZ2p1LmtyIiwiZ3llb25nYnVrLmtyIiwiZ3llb25nZ2kua3IiLCJneWVvbmduYW0ua3IiLCJpbmNoZW9uLmtyIiwiamVq'@; put 'dS5rciIsImplb25idWsua3IiLCJqZW9ubmFtLmtyIiwic2VvdWwua3IiLCJ1bHNhbi5rciIsImt3IiwiY29tLmt3IiwiZWR1Lmt3IiwiZW1iLmt3IiwiZ292Lmt3IiwiaW5kLmt3IiwibmV0Lmt3Iiwib3JnLmt3Iiwia3kiLCJjb20ua3kiLCJlZHUua3kiLCJuZXQua3kiLCJvcmcua3kiLCJr'@; put 'eiIsIm9yZy5reiIsImVkdS5reiIsIm5ldC5reiIsImdvdi5reiIsIm1pbC5reiIsImNvbS5reiIsImxhIiwiaW50LmxhIiwibmV0LmxhIiwiaW5mby5sYSIsImVkdS5sYSIsImdvdi5sYSIsInBlci5sYSIsImNvbS5sYSIsIm9yZy5sYSIsImxiIiwiY29tLmxiIiwiZWR1LmxiIiwiZ292Lmxi'@; put 'IiwibmV0LmxiIiwib3JnLmxiIiwibGMiLCJjb20ubGMiLCJuZXQubGMiLCJjby5sYyIsIm9yZy5sYyIsImVkdS5sYyIsImdvdi5sYyIsImxpIiwibGsiLCJnb3YubGsiLCJzY2gubGsiLCJuZXQubGsiLCJpbnQubGsiLCJjb20ubGsiLCJvcmcubGsiLCJlZHUubGsiLCJuZ28ubGsiLCJzb2Mu'@; put 'bGsiLCJ3ZWIubGsiLCJsdGQubGsiLCJhc3NuLmxrIiwiZ3JwLmxrIiwiaG90ZWwubGsiLCJhYy5sayIsImxyIiwiY29tLmxyIiwiZWR1LmxyIiwiZ292LmxyIiwib3JnLmxyIiwibmV0LmxyIiwibHMiLCJhYy5scyIsImJpei5scyIsImNvLmxzIiwiZWR1LmxzIiwiZ292LmxzIiwiaW5mby5s'@; put 'cyIsIm5ldC5scyIsIm9yZy5scyIsInNjLmxzIiwibHQiLCJnb3YubHQiLCJsdSIsImx2IiwiY29tLmx2IiwiZWR1Lmx2IiwiZ292Lmx2Iiwib3JnLmx2IiwibWlsLmx2IiwiaWQubHYiLCJuZXQubHYiLCJhc24ubHYiLCJjb25mLmx2IiwibHkiLCJjb20ubHkiLCJuZXQubHkiLCJnb3YubHki'@; put 'LCJwbGMubHkiLCJlZHUubHkiLCJzY2gubHkiLCJtZWQubHkiLCJvcmcubHkiLCJpZC5seSIsIm1hIiwiY28ubWEiLCJuZXQubWEiLCJnb3YubWEiLCJvcmcubWEiLCJhYy5tYSIsInByZXNzLm1hIiwibWMiLCJ0bS5tYyIsImFzc28ubWMiLCJtZCIsIm1lIiwiY28ubWUiLCJuZXQubWUiLCJv'@; put 'cmcubWUiLCJlZHUubWUiLCJhYy5tZSIsImdvdi5tZSIsIml0cy5tZSIsInByaXYubWUiLCJtZyIsIm9yZy5tZyIsIm5vbS5tZyIsImdvdi5tZyIsInByZC5tZyIsInRtLm1nIiwiZWR1Lm1nIiwibWlsLm1nIiwiY29tLm1nIiwiY28ubWciLCJtaCIsIm1pbCIsIm1rIiwiY29tLm1rIiwib3Jn'@; put 'Lm1rIiwibmV0Lm1rIiwiZWR1Lm1rIiwiZ292Lm1rIiwiaW5mLm1rIiwibmFtZS5tayIsIm1sIiwiY29tLm1sIiwiZWR1Lm1sIiwiZ291di5tbCIsImdvdi5tbCIsIm5ldC5tbCIsIm9yZy5tbCIsInByZXNzZS5tbCIsIioubW0iLCJtbiIsImdvdi5tbiIsImVkdS5tbiIsIm9yZy5tbiIsIm1v'@; put 'IiwiY29tLm1vIiwibmV0Lm1vIiwib3JnLm1vIiwiZWR1Lm1vIiwiZ292Lm1vIiwibW9iaSIsIm1wIiwibXEiLCJtciIsImdvdi5tciIsIm1zIiwiY29tLm1zIiwiZWR1Lm1zIiwiZ292Lm1zIiwibmV0Lm1zIiwib3JnLm1zIiwibXQiLCJjb20ubXQiLCJlZHUubXQiLCJuZXQubXQiLCJvcmcu'@; put 'bXQiLCJtdSIsImNvbS5tdSIsIm5ldC5tdSIsIm9yZy5tdSIsImdvdi5tdSIsImFjLm11IiwiY28ubXUiLCJvci5tdSIsIm11c2V1bSIsImFjYWRlbXkubXVzZXVtIiwiYWdyaWN1bHR1cmUubXVzZXVtIiwiYWlyLm11c2V1bSIsImFpcmd1YXJkLm11c2V1bSIsImFsYWJhbWEubXVzZXVtIiwi'@; put 'YWxhc2thLm11c2V1bSIsImFtYmVyLm11c2V1bSIsImFtYnVsYW5jZS5tdXNldW0iLCJhbWVyaWNhbi5tdXNldW0iLCJhbWVyaWNhbmEubXVzZXVtIiwiYW1lcmljYW5hbnRpcXVlcy5tdXNldW0iLCJhbWVyaWNhbmFydC5tdXNldW0iLCJhbXN0ZXJkYW0ubXVzZXVtIiwiYW5kLm11c2V1bSIs'@; put 'ImFubmVmcmFuay5tdXNldW0iLCJhbnRocm8ubXVzZXVtIiwiYW50aHJvcG9sb2d5Lm11c2V1bSIsImFudGlxdWVzLm11c2V1bSIsImFxdWFyaXVtLm11c2V1bSIsImFyYm9yZXR1bS5tdXNldW0iLCJhcmNoYWVvbG9naWNhbC5tdXNldW0iLCJhcmNoYWVvbG9neS5tdXNldW0iLCJhcmNoaXRl'@; put 'Y3R1cmUubXVzZXVtIiwiYXJ0Lm11c2V1bSIsImFydGFuZGRlc2lnbi5tdXNldW0iLCJhcnRjZW50ZXIubXVzZXVtIiwiYXJ0ZGVjby5tdXNldW0iLCJhcnRlZHVjYXRpb24ubXVzZXVtIiwiYXJ0Z2FsbGVyeS5tdXNldW0iLCJhcnRzLm11c2V1bSIsImFydHNhbmRjcmFmdHMubXVzZXVtIiwi'@; put 'YXNtYXRhcnQubXVzZXVtIiwiYXNzYXNzaW5hdGlvbi5tdXNldW0iLCJhc3Npc2kubXVzZXVtIiwiYXNzb2NpYXRpb24ubXVzZXVtIiwiYXN0cm9ub215Lm11c2V1bSIsImF0bGFudGEubXVzZXVtIiwiYXVzdGluLm11c2V1bSIsImF1c3RyYWxpYS5tdXNldW0iLCJhdXRvbW90aXZlLm11c2V1'@; put 'bSIsImF2aWF0aW9uLm11c2V1bSIsImF4aXMubXVzZXVtIiwiYmFkYWpvei5tdXNldW0iLCJiYWdoZGFkLm11c2V1bSIsImJhaG4ubXVzZXVtIiwiYmFsZS5tdXNldW0iLCJiYWx0aW1vcmUubXVzZXVtIiwiYmFyY2Vsb25hLm11c2V1bSIsImJhc2ViYWxsLm11c2V1bSIsImJhc2VsLm11c2V1'@; put 'bSIsImJhdGhzLm11c2V1bSIsImJhdWVybi5tdXNldW0iLCJiZWF1eGFydHMubXVzZXVtIiwiYmVlbGRlbmdlbHVpZC5tdXNldW0iLCJiZWxsZXZ1ZS5tdXNldW0iLCJiZXJnYmF1Lm11c2V1bSIsImJlcmtlbGV5Lm11c2V1bSIsImJlcmxpbi5tdXNldW0iLCJiZXJuLm11c2V1bSIsImJpYmxl'@; put 'Lm11c2V1bSIsImJpbGJhby5tdXNldW0iLCJiaWxsLm11c2V1bSIsImJpcmRhcnQubXVzZXVtIiwiYmlydGhwbGFjZS5tdXNldW0iLCJib25uLm11c2V1bSIsImJvc3Rvbi5tdXNldW0iLCJib3RhbmljYWwubXVzZXVtIiwiYm90YW5pY2FsZ2FyZGVuLm11c2V1bSIsImJvdGFuaWNnYXJkZW4u'@; put 'bXVzZXVtIiwiYm90YW55Lm11c2V1bSIsImJyYW5keXdpbmV2YWxsZXkubXVzZXVtIiwiYnJhc2lsLm11c2V1bSIsImJyaXN0b2wubXVzZXVtIiwiYnJpdGlzaC5tdXNldW0iLCJicml0aXNoY29sdW1iaWEubXVzZXVtIiwiYnJvYWRjYXN0Lm11c2V1bSIsImJydW5lbC5tdXNldW0iLCJicnVz'@; put 'c2VsLm11c2V1bSIsImJydXNzZWxzLm11c2V1bSIsImJydXhlbGxlcy5tdXNldW0iLCJidWlsZGluZy5tdXNldW0iLCJidXJnaG9mLm11c2V1bSIsImJ1cy5tdXNldW0iLCJidXNoZXkubXVzZXVtIiwiY2FkYXF1ZXMubXVzZXVtIiwiY2FsaWZvcm5pYS5tdXNldW0iLCJjYW1icmlkZ2UubXVz'@; put 'ZXVtIiwiY2FuLm11c2V1bSIsImNhbmFkYS5tdXNldW0iLCJjYXBlYnJldG9uLm11c2V1bSIsImNhcnJpZXIubXVzZXVtIiwiY2FydG9vbmFydC5tdXNldW0iLCJjYXNhZGVsYW1vbmVkYS5tdXNldW0iLCJjYXN0bGUubXVzZXVtIiwiY2FzdHJlcy5tdXNldW0iLCJjZWx0aWMubXVzZXVtIiwi'@; put 'Y2VudGVyLm11c2V1bSIsImNoYXR0YW5vb2dhLm11c2V1bSIsImNoZWx0ZW5oYW0ubXVzZXVtIiwiY2hlc2FwZWFrZWJheS5tdXNldW0iLCJjaGljYWdvLm11c2V1bSIsImNoaWxkcmVuLm11c2V1bSIsImNoaWxkcmVucy5tdXNldW0iLCJjaGlsZHJlbnNnYXJkZW4ubXVzZXVtIiwiY2hpcm9w'@; put 'cmFjdGljLm11c2V1bSIsImNob2NvbGF0ZS5tdXNldW0iLCJjaHJpc3RpYW5zYnVyZy5tdXNldW0iLCJjaW5jaW5uYXRpLm11c2V1bSIsImNpbmVtYS5tdXNldW0iLCJjaXJjdXMubXVzZXVtIiwiY2l2aWxpc2F0aW9uLm11c2V1bSIsImNpdmlsaXphdGlvbi5tdXNldW0iLCJjaXZpbHdhci5t'@; put 'dXNldW0iLCJjbGludG9uLm11c2V1bSIsImNsb2NrLm11c2V1bSIsImNvYWwubXVzZXVtIiwiY29hc3RhbGRlZmVuY2UubXVzZXVtIiwiY29keS5tdXNldW0iLCJjb2xkd2FyLm11c2V1bSIsImNvbGxlY3Rpb24ubXVzZXVtIiwiY29sb25pYWx3aWxsaWFtc2J1cmcubXVzZXVtIiwiY29sb3Jh'@; put 'ZG9wbGF0ZWF1Lm11c2V1bSIsImNvbHVtYmlhLm11c2V1bSIsImNvbHVtYnVzLm11c2V1bSIsImNvbW11bmljYXRpb24ubXVzZXVtIiwiY29tbXVuaWNhdGlvbnMubXVzZXVtIiwiY29tbXVuaXR5Lm11c2V1bSIsImNvbXB1dGVyLm11c2V1bSIsImNvbXB1dGVyaGlzdG9yeS5tdXNldW0iLCJj'@; put 'b211bmljYVx4ZTdceGY1ZXMubXVzZXVtIiwiY29udGVtcG9yYXJ5Lm11c2V1bSIsImNvbnRlbXBvcmFyeWFydC5tdXNldW0iLCJjb252ZW50Lm11c2V1bSIsImNvcGVuaGFnZW4ubXVzZXVtIiwiY29ycG9yYXRpb24ubXVzZXVtIiwiY29ycmVpb3MtZS10ZWxlY29tdW5pY2FceGU3XHhmNWVz'@; put 'Lm11c2V1bSIsImNvcnZldHRlLm11c2V1bSIsImNvc3R1bWUubXVzZXVtIiwiY291bnRyeWVzdGF0ZS5tdXNldW0iLCJjb3VudHkubXVzZXVtIiwiY3JhZnRzLm11c2V1bSIsImNyYW5icm9vay5tdXNldW0iLCJjcmVhdGlvbi5tdXNldW0iLCJjdWx0dXJhbC5tdXNldW0iLCJjdWx0dXJhbGNl'@; put 'bnRlci5tdXNldW0iLCJjdWx0dXJlLm11c2V1bSIsImN5YmVyLm11c2V1bSIsImN5bXJ1Lm11c2V1bSIsImRhbGkubXVzZXVtIiwiZGFsbGFzLm11c2V1bSIsImRhdGFiYXNlLm11c2V1bSIsImRkci5tdXNldW0iLCJkZWNvcmF0aXZlYXJ0cy5tdXNldW0iLCJkZWxhd2FyZS5tdXNldW0iLCJk'@; put 'ZWxtZW5ob3JzdC5tdXNldW0iLCJkZW5tYXJrLm11c2V1bSIsImRlcG90Lm11c2V1bSIsImRlc2lnbi5tdXNldW0iLCJkZXRyb2l0Lm11c2V1bSIsImRpbm9zYXVyLm11c2V1bSIsImRpc2NvdmVyeS5tdXNldW0iLCJkb2xscy5tdXNldW0iLCJkb25vc3RpYS5tdXNldW0iLCJkdXJoYW0ubXVz'@; put 'ZXVtIiwiZWFzdGFmcmljYS5tdXNldW0iLCJlYXN0Y29hc3QubXVzZXVtIiwiZWR1Y2F0aW9uLm11c2V1bSIsImVkdWNhdGlvbmFsLm11c2V1bSIsImVneXB0aWFuLm11c2V1bSIsImVpc2VuYmFobi5tdXNldW0iLCJlbGJ1cmcubXVzZXVtIiwiZWx2ZW5kcmVsbC5tdXNldW0iLCJlbWJyb2lk'@; put 'ZXJ5Lm11c2V1bSIsImVuY3ljbG9wZWRpYy5tdXNldW0iLCJlbmdsYW5kLm11c2V1bSIsImVudG9tb2xvZ3kubXVzZXVtIiwiZW52aXJvbm1lbnQubXVzZXVtIiwiZW52aXJvbm1lbnRhbGNvbnNlcnZhdGlvbi5tdXNldW0iLCJlcGlsZXBzeS5tdXNldW0iLCJlc3NleC5tdXNldW0iLCJlc3Rh'@; put 'dGUubXVzZXVtIiwiZXRobm9sb2d5Lm11c2V1bSIsImV4ZXRlci5tdXNldW0iLCJleGhpYml0aW9uLm11c2V1bSIsImZhbWlseS5tdXNldW0iLCJmYXJtLm11c2V1bSIsImZhcm1lcXVpcG1lbnQubXVzZXVtIiwiZmFybWVycy5tdXNldW0iLCJmYXJtc3RlYWQubXVzZXVtIiwiZmllbGQubXVz'@; put 'ZXVtIiwiZmlndWVyZXMubXVzZXVtIiwiZmlsYXRlbGlhLm11c2V1bSIsImZpbG0ubXVzZXVtIiwiZmluZWFydC5tdXNldW0iLCJmaW5lYXJ0cy5tdXNldW0iLCJmaW5sYW5kLm11c2V1bSIsImZsYW5kZXJzLm11c2V1bSIsImZsb3JpZGEubXVzZXVtIiwiZm9yY2UubXVzZXVtIiwiZm9ydG1p'@; put 'c3NvdWxhLm11c2V1bSIsImZvcnR3b3J0aC5tdXNldW0iLCJmb3VuZGF0aW9uLm11c2V1bSIsImZyYW5jYWlzZS5tdXNldW0iLCJmcmFua2Z1cnQubXVzZXVtIiwiZnJhbnppc2thbmVyLm11c2V1bSIsImZyZWVtYXNvbnJ5Lm11c2V1bSIsImZyZWlidXJnLm11c2V1bSIsImZyaWJvdXJnLm11'@; put 'c2V1bSIsImZyb2cubXVzZXVtIiwiZnVuZGFjaW8ubXVzZXVtIiwiZnVybml0dXJlLm11c2V1bSIsImdhbGxlcnkubXVzZXVtIiwiZ2FyZGVuLm11c2V1bSIsImdhdGV3YXkubXVzZXVtIiwiZ2VlbHZpbmNrLm11c2V1bSIsImdlbW9sb2dpY2FsLm11c2V1bSIsImdlb2xvZ3kubXVzZXVtIiwi'@; put 'Z2VvcmdpYS5tdXNldW0iLCJnaWVzc2VuLm11c2V1bSIsImdsYXMubXVzZXVtIiwiZ2xhc3MubXVzZXVtIiwiZ29yZ2UubXVzZXVtIiwiZ3JhbmRyYXBpZHMubXVzZXVtIiwiZ3Jhei5tdXNldW0iLCJndWVybnNleS5tdXNldW0iLCJoYWxsb2ZmYW1lLm11c2V1bSIsImhhbWJ1cmcubXVzZXVt'@; put 'IiwiaGFuZHNvbi5tdXNldW0iLCJoYXJ2ZXN0Y2VsZWJyYXRpb24ubXVzZXVtIiwiaGF3YWlpLm11c2V1bSIsImhlYWx0aC5tdXNldW0iLCJoZWltYXR1bmR1aHJlbi5tdXNldW0iLCJoZWxsYXMubXVzZXVtIiwiaGVsc2lua2kubXVzZXVtIiwiaGVtYnlnZHNmb3JidW5kLm11c2V1bSIsImhl'@; put 'cml0YWdlLm11c2V1bSIsImhpc3RvaXJlLm11c2V1bSIsImhpc3RvcmljYWwubXVzZXVtIiwiaGlzdG9yaWNhbHNvY2lldHkubXVzZXVtIiwiaGlzdG9yaWNob3VzZXMubXVzZXVtIiwiaGlzdG9yaXNjaC5tdXNldW0iLCJoaXN0b3Jpc2NoZXMubXVzZXVtIiwiaGlzdG9yeS5tdXNldW0iLCJo'@; put 'aXN0b3J5b2ZzY2llbmNlLm11c2V1bSIsImhvcm9sb2d5Lm11c2V1bSIsImhvdXNlLm11c2V1bSIsImh1bWFuaXRpZXMubXVzZXVtIiwiaWxsdXN0cmF0aW9uLm11c2V1bSIsImltYWdlYW5kc291bmQubXVzZXVtIiwiaW5kaWFuLm11c2V1bSIsImluZGlhbmEubXVzZXVtIiwiaW5kaWFuYXBv'@; put 'bGlzLm11c2V1bSIsImluZGlhbm1hcmtldC5tdXNldW0iLCJpbnRlbGxpZ2VuY2UubXVzZXVtIiwiaW50ZXJhY3RpdmUubXVzZXVtIiwiaXJhcS5tdXNldW0iLCJpcm9uLm11c2V1bSIsImlzbGVvZm1hbi5tdXNldW0iLCJqYW1pc29uLm11c2V1bSIsImplZmZlcnNvbi5tdXNldW0iLCJqZXJ1'@; put 'c2FsZW0ubXVzZXVtIiwiamV3ZWxyeS5tdXNldW0iLCJqZXdpc2gubXVzZXVtIiwiamV3aXNoYXJ0Lm11c2V1bSIsImpmay5tdXNldW0iLCJqb3VybmFsaXNtLm11c2V1bSIsImp1ZGFpY2EubXVzZXVtIiwianVkeWdhcmxhbmQubXVzZXVtIiwianVlZGlzY2hlcy5tdXNldW0iLCJqdWlmLm11'@; put 'c2V1bSIsImthcmF0ZS5tdXNldW0iLCJrYXJpa2F0dXIubXVzZXVtIiwia2lkcy5tdXNldW0iLCJrb2ViZW5oYXZuLm11c2V1bSIsImtvZWxuLm11c2V1bSIsImt1bnN0Lm11c2V1bSIsImt1bnN0c2FtbWx1bmcubXVzZXVtIiwia3Vuc3R1bmRkZXNpZ24ubXVzZXVtIiwibGFib3IubXVzZXVt'@; put 'IiwibGFib3VyLm11c2V1bSIsImxham9sbGEubXVzZXVtIiwibGFuY2FzaGlyZS5tdXNldW0iLCJsYW5kZXMubXVzZXVtIiwibGFucy5tdXNldW0iLCJsXHhlNG5zLm11c2V1bSIsImxhcnNzb24ubXVzZXVtIiwibGV3aXNtaWxsZXIubXVzZXVtIiwibGluY29sbi5tdXNldW0iLCJsaW56Lm11'@; put 'c2V1bSIsImxpdmluZy5tdXNldW0iLCJsaXZpbmdoaXN0b3J5Lm11c2V1bSIsImxvY2FsaGlzdG9yeS5tdXNldW0iLCJsb25kb24ubXVzZXVtIiwibG9zYW5nZWxlcy5tdXNldW0iLCJsb3V2cmUubXVzZXVtIiwibG95YWxpc3QubXVzZXVtIiwibHVjZXJuZS5tdXNldW0iLCJsdXhlbWJvdXJn'@; put 'Lm11c2V1bSIsImx1emVybi5tdXNldW0iLCJtYWQubXVzZXVtIiwibWFkcmlkLm11c2V1bSIsIm1hbGxvcmNhLm11c2V1bSIsIm1hbmNoZXN0ZXIubXVzZXVtIiwibWFuc2lvbi5tdXNldW0iLCJtYW5zaW9ucy5tdXNldW0iLCJtYW54Lm11c2V1bSIsIm1hcmJ1cmcubXVzZXVtIiwibWFyaXRp'@; put 'bWUubXVzZXVtIiwibWFyaXRpbW8ubXVzZXVtIiwibWFyeWxhbmQubXVzZXVtIiwibWFyeWxodXJzdC5tdXNldW0iLCJtZWRpYS5tdXNldW0iLCJtZWRpY2FsLm11c2V1bSIsIm1lZGl6aW5oaXN0b3Jpc2NoZXMubXVzZXVtIiwibWVlcmVzLm11c2V1bSIsIm1lbW9yaWFsLm11c2V1bSIsIm1l'@; put 'c2F2ZXJkZS5tdXNldW0iLCJtaWNoaWdhbi5tdXNldW0iLCJtaWRhdGxhbnRpYy5tdXNldW0iLCJtaWxpdGFyeS5tdXNldW0iLCJtaWxsLm11c2V1bSIsIm1pbmVycy5tdXNldW0iLCJtaW5pbmcubXVzZXVtIiwibWlubmVzb3RhLm11c2V1bSIsIm1pc3NpbGUubXVzZXVtIiwibWlzc291bGEu'@; put 'bXVzZXVtIiwibW9kZXJuLm11c2V1bSIsIm1vbWEubXVzZXVtIiwibW9uZXkubXVzZXVtIiwibW9ubW91dGgubXVzZXVtIiwibW9udGljZWxsby5tdXNldW0iLCJtb250cmVhbC5tdXNldW0iLCJtb3Njb3cubXVzZXVtIiwibW90b3JjeWNsZS5tdXNldW0iLCJtdWVuY2hlbi5tdXNldW0iLCJt'@; put 'dWVuc3Rlci5tdXNldW0iLCJtdWxob3VzZS5tdXNldW0iLCJtdW5jaWUubXVzZXVtIiwibXVzZWV0Lm11c2V1bSIsIm11c2V1bWNlbnRlci5tdXNldW0iLCJtdXNldW12ZXJlbmlnaW5nLm11c2V1bSIsIm11c2ljLm11c2V1bSIsIm5hdGlvbmFsLm11c2V1bSIsIm5hdGlvbmFsZmlyZWFybXMu'@; put 'bXVzZXVtIiwibmF0aW9uYWxoZXJpdGFnZS5tdXNldW0iLCJuYXRpdmVhbWVyaWNhbi5tdXNldW0iLCJuYXR1cmFsaGlzdG9yeS5tdXNldW0iLCJuYXR1cmFsaGlzdG9yeW11c2V1bS5tdXNldW0iLCJuYXR1cmFsc2NpZW5jZXMubXVzZXVtIiwibmF0dXJlLm11c2V1bSIsIm5hdHVyaGlzdG9y'@; put 'aXNjaGVzLm11c2V1bSIsIm5hdHV1cndldGVuc2NoYXBwZW4ubXVzZXVtIiwibmF1bWJ1cmcubXVzZXVtIiwibmF2YWwubXVzZXVtIiwibmVicmFza2EubXVzZXVtIiwibmV1ZXMubXVzZXVtIiwibmV3aGFtcHNoaXJlLm11c2V1bSIsIm5ld2plcnNleS5tdXNldW0iLCJuZXdtZXhpY28ubXVz'@; put 'ZXVtIiwibmV3cG9ydC5tdXNldW0iLCJuZXdzcGFwZXIubXVzZXVtIiwibmV3eW9yay5tdXNldW0iLCJuaWVwY2UubXVzZXVtIiwibm9yZm9say5tdXNldW0iLCJub3J0aC5tdXNldW0iLCJucncubXVzZXVtIiwibnljLm11c2V1bSIsIm55bnkubXVzZXVtIiwib2NlYW5vZ3JhcGhpYy5tdXNl'@; put 'dW0iLCJvY2Vhbm9ncmFwaGlxdWUubXVzZXVtIiwib21haGEubXVzZXVtIiwib25saW5lLm11c2V1bSIsIm9udGFyaW8ubXVzZXVtIiwib3BlbmFpci5tdXNldW0iLCJvcmVnb24ubXVzZXVtIiwib3JlZ29udHJhaWwubXVzZXVtIiwib3RhZ28ubXVzZXVtIiwib3hmb3JkLm11c2V1bSIsInBh'@; put 'Y2lmaWMubXVzZXVtIiwicGFkZXJib3JuLm11c2V1bSIsInBhbGFjZS5tdXNldW0iLCJwYWxlby5tdXNldW0iLCJwYWxtc3ByaW5ncy5tdXNldW0iLCJwYW5hbWEubXVzZXVtIiwicGFyaXMubXVzZXVtIiwicGFzYWRlbmEubXVzZXVtIiwicGhhcm1hY3kubXVzZXVtIiwicGhpbGFkZWxwaGlh'@; put 'Lm11c2V1bSIsInBoaWxhZGVscGhpYWFyZWEubXVzZXVtIiwicGhpbGF0ZWx5Lm11c2V1bSIsInBob2VuaXgubXVzZXVtIiwicGhvdG9ncmFwaHkubXVzZXVtIiwicGlsb3RzLm11c2V1bSIsInBpdHRzYnVyZ2gubXVzZXVtIiwicGxhbmV0YXJpdW0ubXVzZXVtIiwicGxhbnRhdGlvbi5tdXNl'@; put 'dW0iLCJwbGFudHMubXVzZXVtIiwicGxhemEubXVzZXVtIiwicG9ydGFsLm11c2V1bSIsInBvcnRsYW5kLm11c2V1bSIsInBvcnRsbGlnYXQubXVzZXVtIiwicG9zdHMtYW5kLXRlbGVjb21tdW5pY2F0aW9ucy5tdXNldW0iLCJwcmVzZXJ2YXRpb24ubXVzZXVtIiwicHJlc2lkaW8ubXVzZXVt'@; put 'IiwicHJlc3MubXVzZXVtIiwicHJvamVjdC5tdXNldW0iLCJwdWJsaWMubXVzZXVtIiwicHVib2wubXVzZXVtIiwicXVlYmVjLm11c2V1bSIsInJhaWxyb2FkLm11c2V1bSIsInJhaWx3YXkubXVzZXVtIiwicmVzZWFyY2gubXVzZXVtIiwicmVzaXN0YW5jZS5tdXNldW0iLCJyaW9kZWphbmVp'@; put 'cm8ubXVzZXVtIiwicm9jaGVzdGVyLm11c2V1bSIsInJvY2thcnQubXVzZXVtIiwicm9tYS5tdXNldW0iLCJydXNzaWEubXVzZXVtIiwic2FpbnRsb3Vpcy5tdXNldW0iLCJzYWxlbS5tdXNldW0iLCJzYWx2YWRvcmRhbGkubXVzZXVtIiwic2FsemJ1cmcubXVzZXVtIiwic2FuZGllZ28ubXVz'@; put 'ZXVtIiwic2FuZnJhbmNpc2NvLm11c2V1bSIsInNhbnRhYmFyYmFyYS5tdXNldW0iLCJzYW50YWNydXoubXVzZXVtIiwic2FudGFmZS5tdXNldW0iLCJzYXNrYXRjaGV3YW4ubXVzZXVtIiwic2F0eC5tdXNldW0iLCJzYXZhbm5haGdhLm11c2V1bSIsInNjaGxlc2lzY2hlcy5tdXNldW0iLCJz'@; put 'Y2hvZW5icnVubi5tdXNldW0iLCJzY2hva29sYWRlbi5tdXNldW0iLCJzY2hvb2wubXVzZXVtIiwic2Nod2Vpei5tdXNldW0iLCJzY2llbmNlLm11c2V1bSIsInNjaWVuY2VhbmRoaXN0b3J5Lm11c2V1bSIsInNjaWVuY2VhbmRpbmR1c3RyeS5tdXNldW0iLCJzY2llbmNlY2VudGVyLm11c2V1'@; put 'bSIsInNjaWVuY2VjZW50ZXJzLm11c2V1bSIsInNjaWVuY2UtZmljdGlvbi5tdXNldW0iLCJzY2llbmNlaGlzdG9yeS5tdXNldW0iLCJzY2llbmNlcy5tdXNldW0iLCJzY2llbmNlc25hdHVyZWxsZXMubXVzZXVtIiwic2NvdGxhbmQubXVzZXVtIiwic2VhcG9ydC5tdXNldW0iLCJzZXR0bGVt'@; put 'ZW50Lm11c2V1bSIsInNldHRsZXJzLm11c2V1bSIsInNoZWxsLm11c2V1bSIsInNoZXJicm9va2UubXVzZXVtIiwic2liZW5pay5tdXNldW0iLCJzaWxrLm11c2V1bSIsInNraS5tdXNldW0iLCJza29sZS5tdXNldW0iLCJzb2NpZXR5Lm11c2V1bSIsInNvbG9nbmUubXVzZXVtIiwic291bmRh'@; put 'bmR2aXNpb24ubXVzZXVtIiwic291dGhjYXJvbGluYS5tdXNldW0iLCJzb3V0aHdlc3QubXVzZXVtIiwic3BhY2UubXVzZXVtIiwic3B5Lm11c2V1bSIsInNxdWFyZS5tdXNldW0iLCJzdGFkdC5tdXNldW0iLCJzdGFsYmFucy5tdXNldW0iLCJzdGFybmJlcmcubXVzZXVtIiwic3RhdGUubXVz'@; put 'ZXVtIiwic3RhdGVvZmRlbGF3YXJlLm11c2V1bSIsInN0YXRpb24ubXVzZXVtIiwic3RlYW0ubXVzZXVtIiwic3RlaWVybWFyay5tdXNldW0iLCJzdGpvaG4ubXVzZXVtIiwic3RvY2tob2xtLm11c2V1bSIsInN0cGV0ZXJzYnVyZy5tdXNldW0iLCJzdHV0dGdhcnQubXVzZXVtIiwic3Vpc3Nl'@; put 'Lm11c2V1bSIsInN1cmdlb25zaGFsbC5tdXNldW0iLCJzdXJyZXkubXVzZXVtIiwic3ZpenplcmEubXVzZXVtIiwic3dlZGVuLm11c2V1bSIsInN5ZG5leS5tdXNldW0iLCJ0YW5rLm11c2V1bSIsInRjbS5tdXNldW0iLCJ0ZWNobm9sb2d5Lm11c2V1bSIsInRlbGVrb21tdW5pa2F0aW9uLm11'@; put 'c2V1bSIsInRlbGV2aXNpb24ubXVzZXVtIiwidGV4YXMubXVzZXVtIiwidGV4dGlsZS5tdXNldW0iLCJ0aGVhdGVyLm11c2V1bSIsInRpbWUubXVzZXVtIiwidGltZWtlZXBpbmcubXVzZXVtIiwidG9wb2xvZ3kubXVzZXVtIiwidG9yaW5vLm11c2V1bSIsInRvdWNoLm11c2V1bSIsInRvd24u'@; put 'bXVzZXVtIiwidHJhbnNwb3J0Lm11c2V1bSIsInRyZWUubXVzZXVtIiwidHJvbGxleS5tdXNldW0iLCJ0cnVzdC5tdXNldW0iLCJ0cnVzdGVlLm11c2V1bSIsInVocmVuLm11c2V1bSIsInVsbS5tdXNldW0iLCJ1bmRlcnNlYS5tdXNldW0iLCJ1bml2ZXJzaXR5Lm11c2V1bSIsInVzYS5tdXNl'@; put 'dW0iLCJ1c2FudGlxdWVzLm11c2V1bSIsInVzYXJ0cy5tdXNldW0iLCJ1c2NvdW50cnllc3RhdGUubXVzZXVtIiwidXNjdWx0dXJlLm11c2V1bSIsInVzZGVjb3JhdGl2ZWFydHMubXVzZXVtIiwidXNnYXJkZW4ubXVzZXVtIiwidXNoaXN0b3J5Lm11c2V1bSIsInVzaHVhaWEubXVzZXVtIiwi'@; put 'dXNsaXZpbmdoaXN0b3J5Lm11c2V1bSIsInV0YWgubXVzZXVtIiwidXZpYy5tdXNldW0iLCJ2YWxsZXkubXVzZXVtIiwidmFudGFhLm11c2V1bSIsInZlcnNhaWxsZXMubXVzZXVtIiwidmlraW5nLm11c2V1bSIsInZpbGxhZ2UubXVzZXVtIiwidmlyZ2luaWEubXVzZXVtIiwidmlydHVhbC5t'@; put 'dXNldW0iLCJ2aXJ0dWVsLm11c2V1bSIsInZsYWFuZGVyZW4ubXVzZXVtIiwidm9sa2Vua3VuZGUubXVzZXVtIiwid2FsZXMubXVzZXVtIiwid2FsbG9uaWUubXVzZXVtIiwid2FyLm11c2V1bSIsIndhc2hpbmd0b25kYy5tdXNldW0iLCJ3YXRjaGFuZGNsb2NrLm11c2V1bSIsIndhdGNoLWFu'@; put 'ZC1jbG9jay5tdXNldW0iLCJ3ZXN0ZXJuLm11c2V1bSIsIndlc3RmYWxlbi5tdXNldW0iLCJ3aGFsaW5nLm11c2V1bSIsIndpbGRsaWZlLm11c2V1bSIsIndpbGxpYW1zYnVyZy5tdXNldW0iLCJ3aW5kbWlsbC5tdXNldW0iLCJ3b3Jrc2hvcC5tdXNldW0iLCJ5b3JrLm11c2V1bSIsInlvcmtz'@; put 'aGlyZS5tdXNldW0iLCJ5b3NlbWl0ZS5tdXNldW0iLCJ5b3V0aC5tdXNldW0iLCJ6b29sb2dpY2FsLm11c2V1bSIsInpvb2xvZ3kubXVzZXVtIiwiXHUwNWQ5XHUwNWU4XHUwNWQ1XHUwNWU5XHUwNWRjXHUwNWQ5XHUwNWRkLm11c2V1bSIsIlx1MDQzOFx1MDQzYVx1MDQzZVx1MDQzYy5tdXNl'@; put 'dW0iLCJtdiIsImFlcm8ubXYiLCJiaXoubXYiLCJjb20ubXYiLCJjb29wLm12IiwiZWR1Lm12IiwiZ292Lm12IiwiaW5mby5tdiIsImludC5tdiIsIm1pbC5tdiIsIm11c2V1bS5tdiIsIm5hbWUubXYiLCJuZXQubXYiLCJvcmcubXYiLCJwcm8ubXYiLCJtdyIsImFjLm13IiwiYml6Lm13Iiwi'@; put 'Y28ubXciLCJjb20ubXciLCJjb29wLm13IiwiZWR1Lm13IiwiZ292Lm13IiwiaW50Lm13IiwibXVzZXVtLm13IiwibmV0Lm13Iiwib3JnLm13IiwibXgiLCJjb20ubXgiLCJvcmcubXgiLCJnb2IubXgiLCJlZHUubXgiLCJuZXQubXgiLCJteSIsImJpei5teSIsImNvbS5teSIsImVkdS5teSIs'@; put 'Imdvdi5teSIsIm1pbC5teSIsIm5hbWUubXkiLCJuZXQubXkiLCJvcmcubXkiLCJteiIsImFjLm16IiwiYWR2Lm16IiwiY28ubXoiLCJlZHUubXoiLCJnb3YubXoiLCJtaWwubXoiLCJuZXQubXoiLCJvcmcubXoiLCJuYSIsImluZm8ubmEiLCJwcm8ubmEiLCJuYW1lLm5hIiwic2Nob29sLm5h'@; put 'Iiwib3IubmEiLCJkci5uYSIsInVzLm5hIiwibXgubmEiLCJjYS5uYSIsImluLm5hIiwiY2MubmEiLCJ0di5uYSIsIndzLm5hIiwibW9iaS5uYSIsImNvLm5hIiwiY29tLm5hIiwib3JnLm5hIiwibmFtZSIsIm5jIiwiYXNzby5uYyIsIm5vbS5uYyIsIm5lIiwibmV0IiwibmYiLCJjb20ubmYi'@; put 'LCJuZXQubmYiLCJwZXIubmYiLCJyZWMubmYiLCJ3ZWIubmYiLCJhcnRzLm5mIiwiZmlybS5uZiIsImluZm8ubmYiLCJvdGhlci5uZiIsInN0b3JlLm5mIiwibmciLCJjb20ubmciLCJlZHUubmciLCJnb3YubmciLCJpLm5nIiwibWlsLm5nIiwibW9iaS5uZyIsIm5hbWUubmciLCJuZXQubmci'@; put 'LCJvcmcubmciLCJzY2gubmciLCJuaSIsImFjLm5pIiwiYml6Lm5pIiwiY28ubmkiLCJjb20ubmkiLCJlZHUubmkiLCJnb2IubmkiLCJpbi5uaSIsImluZm8ubmkiLCJpbnQubmkiLCJtaWwubmkiLCJuZXQubmkiLCJub20ubmkiLCJvcmcubmkiLCJ3ZWIubmkiLCJubCIsIm5vIiwiZmhzLm5v'@; put 'IiwidmdzLm5vIiwiZnlsa2VzYmlibC5ubyIsImZvbGtlYmlibC5ubyIsIm11c2V1bS5ubyIsImlkcmV0dC5ubyIsInByaXYubm8iLCJtaWwubm8iLCJzdGF0Lm5vIiwiZGVwLm5vIiwia29tbXVuZS5ubyIsImhlcmFkLm5vIiwiYWEubm8iLCJhaC5ubyIsImJ1Lm5vIiwiZm0ubm8iLCJobC5u'@; put 'byIsImhtLm5vIiwiamFuLW1heWVuLm5vIiwibXIubm8iLCJubC5ubyIsIm50Lm5vIiwib2Yubm8iLCJvbC5ubyIsIm9zbG8ubm8iLCJybC5ubyIsInNmLm5vIiwic3Qubm8iLCJzdmFsYmFyZC5ubyIsInRtLm5vIiwidHIubm8iLCJ2YS5ubyIsInZmLm5vIiwiZ3MuYWEubm8iLCJncy5haC5u'@; put 'byIsImdzLmJ1Lm5vIiwiZ3MuZm0ubm8iLCJncy5obC5ubyIsImdzLmhtLm5vIiwiZ3MuamFuLW1heWVuLm5vIiwiZ3MubXIubm8iLCJncy5ubC5ubyIsImdzLm50Lm5vIiwiZ3Mub2Yubm8iLCJncy5vbC5ubyIsImdzLm9zbG8ubm8iLCJncy5ybC5ubyIsImdzLnNmLm5vIiwiZ3Muc3Qubm8i'@; put 'LCJncy5zdmFsYmFyZC5ubyIsImdzLnRtLm5vIiwiZ3MudHIubm8iLCJncy52YS5ubyIsImdzLnZmLm5vIiwiYWtyZWhhbW4ubm8iLCJceGU1a3JlaGFtbi5ubyIsImFsZ2FyZC5ubyIsIlx4ZTVsZ1x4ZTVyZC5ubyIsImFybmEubm8iLCJicnVtdW5kZGFsLm5vIiwiYnJ5bmUubm8iLCJicm9u'@; put 'bm95c3VuZC5ubyIsImJyXHhmOG5uXHhmOHlzdW5kLm5vIiwiZHJvYmFrLm5vIiwiZHJceGY4YmFrLm5vIiwiZWdlcnN1bmQubm8iLCJmZXRzdW5kLm5vIiwiZmxvcm8ubm8iLCJmbG9yXHhmOC5ubyIsImZyZWRyaWtzdGFkLm5vIiwiaG9ra3N1bmQubm8iLCJob25lZm9zcy5ubyIsImhceGY4'@; put 'bmVmb3NzLm5vIiwiamVzc2hlaW0ubm8iLCJqb3JwZWxhbmQubm8iLCJqXHhmOHJwZWxhbmQubm8iLCJraXJrZW5lcy5ubyIsImtvcGVydmlrLm5vIiwia3Jva3N0YWRlbHZhLm5vIiwibGFuZ2V2YWcubm8iLCJsYW5nZXZceGU1Zy5ubyIsImxlaXJ2aWsubm8iLCJtam9uZGFsZW4ubm8iLCJt'@; put 'alx4ZjhuZGFsZW4ubm8iLCJtby1pLXJhbmEubm8iLCJtb3Nqb2VuLm5vIiwibW9zalx4Zjhlbi5ubyIsIm5lc29kZHRhbmdlbi5ubyIsIm9ya2FuZ2VyLm5vIiwib3NveXJvLm5vIiwib3NceGY4eXJvLm5vIiwicmFob2x0Lm5vIiwiclx4ZTVob2x0Lm5vIiwic2FuZG5lc3Nqb2VuLm5vIiwi'@; put 'c2FuZG5lc3NqXHhmOGVuLm5vIiwic2tlZHNtb2tvcnNldC5ubyIsInNsYXR0dW0ubm8iLCJzcGplbGthdmlrLm5vIiwic3RhdGhlbGxlLm5vIiwic3RhdmVybi5ubyIsInN0am9yZGFsc2hhbHNlbi5ubyIsInN0alx4ZjhyZGFsc2hhbHNlbi5ubyIsInRhbmFuZ2VyLm5vIiwidHJhbmJ5Lm5v'@; put 'Iiwidm9zc2V2YW5nZW4ubm8iLCJhZmpvcmQubm8iLCJceGU1ZmpvcmQubm8iLCJhZ2RlbmVzLm5vIiwiYWwubm8iLCJceGU1bC5ubyIsImFsZXN1bmQubm8iLCJceGU1bGVzdW5kLm5vIiwiYWxzdGFoYXVnLm5vIiwiYWx0YS5ubyIsIlx4ZTFsdFx4ZTEubm8iLCJhbGFoZWFkanUubm8iLCJc'@; put 'eGUxbGFoZWFkanUubm8iLCJhbHZkYWwubm8iLCJhbWxpLm5vIiwiXHhlNW1saS5ubyIsImFtb3Qubm8iLCJceGU1bW90Lm5vIiwiYW5kZWJ1Lm5vIiwiYW5kb3kubm8iLCJhbmRceGY4eS5ubyIsImFuZGFzdW9sby5ubyIsImFyZGFsLm5vIiwiXHhlNXJkYWwubm8iLCJhcmVtYXJrLm5vIiwi'@; put 'YXJlbmRhbC5ubyIsIlx4ZTVzLm5vIiwiYXNlcmFsLm5vIiwiXHhlNXNlcmFsLm5vIiwiYXNrZXIubm8iLCJhc2tpbS5ubyIsImFza3ZvbGwubm8iLCJhc2tveS5ubyIsImFza1x4Zjh5Lm5vIiwiYXNuZXMubm8iLCJceGU1c25lcy5ubyIsImF1ZG5lZGFsbi5ubyIsImF1a3JhLm5vIiwiYXVy'@; put 'ZS5ubyIsImF1cmxhbmQubm8iLCJhdXJza29nLWhvbGFuZC5ubyIsImF1cnNrb2ctaFx4ZjhsYW5kLm5vIiwiYXVzdGV2b2xsLm5vIiwiYXVzdHJoZWltLm5vIiwiYXZlcm95Lm5vIiwiYXZlclx4Zjh5Lm5vIiwiYmFsZXN0cmFuZC5ubyIsImJhbGxhbmdlbi5ubyIsImJhbGF0Lm5vIiwiYlx4'@; put 'ZTFsXHhlMXQubm8iLCJiYWxzZmpvcmQubm8iLCJiYWhjY2F2dW90bmEubm8iLCJiXHhlMWhjY2F2dW90bmEubm8iLCJiYW1ibGUubm8iLCJiYXJkdS5ubyIsImJlYXJkdS5ubyIsImJlaWFybi5ubyIsImJhamRkYXIubm8iLCJiXHhlMWpkZGFyLm5vIiwiYmFpZGFyLm5vIiwiYlx4ZTFpZFx4'@; put 'ZTFyLm5vIiwiYmVyZy5ubyIsImJlcmdlbi5ubyIsImJlcmxldmFnLm5vIiwiYmVybGV2XHhlNWcubm8iLCJiZWFyYWx2YWhraS5ubyIsImJlYXJhbHZceGUxaGtpLm5vIiwiYmluZGFsLm5vIiwiYmlya2VuZXMubm8iLCJiamFya295Lm5vIiwiYmphcmtceGY4eS5ubyIsImJqZXJrcmVpbS5u'@; put 'byIsImJqdWduLm5vIiwiYm9kby5ubyIsImJvZFx4Zjgubm8iLCJiYWRhZGRqYS5ubyIsImJceGU1ZFx4ZTVkZGpceGU1Lm5vIiwiYnVkZWpqdS5ubyIsImJva24ubm8iLCJicmVtYW5nZXIubm8iLCJicm9ubm95Lm5vIiwiYnJceGY4bm5ceGY4eS5ubyIsImJ5Z2xhbmQubm8iLCJieWtsZS5u'@; put 'byIsImJhcnVtLm5vIiwiYlx4ZTZydW0ubm8iLCJiby50ZWxlbWFyay5ubyIsImJceGY4LnRlbGVtYXJrLm5vIiwiYm8ubm9yZGxhbmQubm8iLCJiXHhmOC5ub3JkbGFuZC5ubyIsImJpZXZhdC5ubyIsImJpZXZceGUxdC5ubyIsImJvbWxvLm5vIiwiYlx4ZjhtbG8ubm8iLCJiYXRzZmpvcmQu'@; put 'bm8iLCJiXHhlNXRzZmpvcmQubm8iLCJiYWhjYXZ1b3RuYS5ubyIsImJceGUxaGNhdnVvdG5hLm5vIiwiZG92cmUubm8iLCJkcmFtbWVuLm5vIiwiZHJhbmdlZGFsLm5vIiwiZHlyb3kubm8iLCJkeXJceGY4eS5ubyIsImRvbm5hLm5vIiwiZFx4ZjhubmEubm8iLCJlaWQubm8iLCJlaWRmam9y'@; put 'ZC5ubyIsImVpZHNiZXJnLm5vIiwiZWlkc2tvZy5ubyIsImVpZHN2b2xsLm5vIiwiZWlnZXJzdW5kLm5vIiwiZWx2ZXJ1bS5ubyIsImVuZWJha2subm8iLCJlbmdlcmRhbC5ubyIsImV0bmUubm8iLCJldG5lZGFsLm5vIiwiZXZlbmVzLm5vIiwiZXZlbmFzc2kubm8iLCJldmVuXHhlMVx1MDE2'@; put 'MVx1MDE2MWkubm8iLCJldmplLW9nLWhvcm5uZXMubm8iLCJmYXJzdW5kLm5vIiwiZmF1c2tlLm5vIiwiZnVvc3Nrby5ubyIsImZ1b2lza3Uubm8iLCJmZWRqZS5ubyIsImZldC5ubyIsImZpbm5veS5ubyIsImZpbm5ceGY4eS5ubyIsImZpdGphci5ubyIsImZqYWxlci5ubyIsImZqZWxsLm5v'@; put 'IiwiZmxha3N0YWQubm8iLCJmbGF0YW5nZXIubm8iLCJmbGVra2Vmam9yZC5ubyIsImZsZXNiZXJnLm5vIiwiZmxvcmEubm8iLCJmbGEubm8iLCJmbFx4ZTUubm8iLCJmb2xsZGFsLm5vIiwiZm9yc2FuZC5ubyIsImZvc25lcy5ubyIsImZyZWkubm8iLCJmcm9nbi5ubyIsImZyb2xhbmQubm8i'@; put 'LCJmcm9zdGEubm8iLCJmcmFuYS5ubyIsImZyXHhlNm5hLm5vIiwiZnJveWEubm8iLCJmclx4Zjh5YS5ubyIsImZ1c2Eubm8iLCJmeXJlc2RhbC5ubyIsImZvcmRlLm5vIiwiZlx4ZjhyZGUubm8iLCJnYW12aWsubm8iLCJnYW5nYXZpaWthLm5vIiwiZ1x4ZTFcdTAxNGJnYXZpaWthLm5vIiwi'@; put 'Z2F1bGFyLm5vIiwiZ2F1c2RhbC5ubyIsImdpbGRlc2thbC5ubyIsImdpbGRlc2tceGU1bC5ubyIsImdpc2tlLm5vIiwiZ2plbW5lcy5ubyIsImdqZXJkcnVtLm5vIiwiZ2plcnN0YWQubm8iLCJnamVzZGFsLm5vIiwiZ2pvdmlrLm5vIiwiZ2pceGY4dmlrLm5vIiwiZ2xvcHBlbi5ubyIsImdv'@; put 'bC5ubyIsImdyYW4ubm8iLCJncmFuZS5ubyIsImdyYW52aW4ubm8iLCJncmF0YW5nZW4ubm8iLCJncmltc3RhZC5ubyIsImdyb25nLm5vIiwia3JhYW5naGtlLm5vIiwia3JceGU1YW5naGtlLm5vIiwiZ3J1ZS5ubyIsImd1bGVuLm5vIiwiaGFkc2VsLm5vIiwiaGFsZGVuLm5vIiwiaGFsc2Eu'@; put 'bm8iLCJoYW1hci5ubyIsImhhbWFyb3kubm8iLCJoYWJtZXIubm8iLCJoXHhlMWJtZXIubm8iLCJoYXBtaXIubm8iLCJoXHhlMXBtaXIubm8iLCJoYW1tZXJmZXN0Lm5vIiwiaGFtbWFyZmVhc3RhLm5vIiwiaFx4ZTFtbVx4ZTFyZmVhc3RhLm5vIiwiaGFyYW0ubm8iLCJoYXJlaWQubm8iLCJo'@; put 'YXJzdGFkLm5vIiwiaGFzdmlrLm5vIiwiYWtub2x1b2t0YS5ubyIsIlx4ZTFrXHUwMTRib2x1b2t0YS5ubyIsImhhdHRmamVsbGRhbC5ubyIsImFhcmJvcnRlLm5vIiwiaGF1Z2VzdW5kLm5vIiwiaGVtbmUubm8iLCJoZW1uZXMubm8iLCJoZW1zZWRhbC5ubyIsImhlcm95Lm1vcmUtb2ctcm9t'@; put 'c2RhbC5ubyIsImhlclx4Zjh5Lm1ceGY4cmUtb2ctcm9tc2RhbC5ubyIsImhlcm95Lm5vcmRsYW5kLm5vIiwiaGVyXHhmOHkubm9yZGxhbmQubm8iLCJoaXRyYS5ubyIsImhqYXJ0ZGFsLm5vIiwiaGplbG1lbGFuZC5ubyIsImhvYm9sLm5vIiwiaG9iXHhmOGwubm8iLCJob2Yubm8iLCJob2wu'@; put 'bm8iLCJob2xlLm5vIiwiaG9sbWVzdHJhbmQubm8iLCJob2x0YWxlbi5ubyIsImhvbHRceGU1bGVuLm5vIiwiaG9ybmluZGFsLm5vIiwiaG9ydGVuLm5vIiwiaHVyZGFsLm5vIiwiaHVydW0ubm8iLCJodmFsZXIubm8iLCJoeWxsZXN0YWQubm8iLCJoYWdlYm9zdGFkLm5vIiwiaFx4ZTZnZWJv'@; put 'c3RhZC5ubyIsImhveWFuZ2VyLm5vIiwiaFx4Zjh5YW5nZXIubm8iLCJob3lsYW5kZXQubm8iLCJoXHhmOHlsYW5kZXQubm8iLCJoYS5ubyIsImhceGU1Lm5vIiwiaWJlc3RhZC5ubyIsImluZGVyb3kubm8iLCJpbmRlclx4Zjh5Lm5vIiwiaXZlbGFuZC5ubyIsImpldm5ha2VyLm5vIiwiam9u'@; put 'ZGFsLm5vIiwiam9sc3Rlci5ubyIsImpceGY4bHN0ZXIubm8iLCJrYXJhc2pvay5ubyIsImthcmFzam9oa2Eubm8iLCJrXHhlMXJceGUxXHUwMTYxam9oa2Eubm8iLCJrYXJsc295Lm5vIiwiZ2Fsc2Eubm8iLCJnXHhlMWxzXHhlMS5ubyIsImthcm1veS5ubyIsImthcm1ceGY4eS5ubyIsImth'@; put 'dXRva2Vpbm8ubm8iLCJndW92ZGFnZWFpZG51Lm5vIiwia2xlcHAubm8iLCJrbGFidS5ubyIsImtsXHhlNmJ1Lm5vIiwia29uZ3NiZXJnLm5vIiwia29uZ3N2aW5nZXIubm8iLCJrcmFnZXJvLm5vIiwia3JhZ2VyXHhmOC5ubyIsImtyaXN0aWFuc2FuZC5ubyIsImtyaXN0aWFuc3VuZC5ubyIs'@; put 'Imtyb2RzaGVyYWQubm8iLCJrclx4Zjhkc2hlcmFkLm5vIiwia3ZhbHN1bmQubm8iLCJyYWhra2VyYXZqdS5ubyIsInJceGUxaGtrZXJceGUxdmp1Lm5vIiwia3ZhbS5ubyIsImt2aW5lc2RhbC5ubyIsImt2aW5uaGVyYWQubm8iLCJrdml0ZXNlaWQubm8iLCJrdml0c295Lm5vIiwia3ZpdHNc'@; put 'eGY4eS5ubyIsImt2YWZqb3JkLm5vIiwia3ZceGU2ZmpvcmQubm8iLCJnaWVodGF2dW9hdG5hLm5vIiwia3ZhbmFuZ2VuLm5vIiwia3ZceGU2bmFuZ2VuLm5vIiwibmF2dW90bmEubm8iLCJuXHhlMXZ1b3RuYS5ubyIsImthZmpvcmQubm8iLCJrXHhlNWZqb3JkLm5vIiwiZ2FpdnVvdG5hLm5v'@; put 'IiwiZ1x4ZTFpdnVvdG5hLm5vIiwibGFydmlrLm5vIiwibGF2YW5nZW4ubm8iLCJsYXZhZ2lzLm5vIiwibG9hYmF0Lm5vIiwibG9hYlx4ZTF0Lm5vIiwibGViZXNieS5ubyIsImRhdnZlc2lpZGEubm8iLCJsZWlrYW5nZXIubm8iLCJsZWlyZmpvcmQubm8iLCJsZWthLm5vIiwibGVrc3Zpay5u'@; put 'byIsImxlbnZpay5ubyIsImxlYW5nYXZpaWthLm5vIiwibGVhXHUwMTRiZ2F2aWlrYS5ubyIsImxlc2phLm5vIiwibGV2YW5nZXIubm8iLCJsaWVyLm5vIiwibGllcm5lLm5vIiwibGlsbGVoYW1tZXIubm8iLCJsaWxsZXNhbmQubm8iLCJsaW5kZXNuZXMubm8iLCJsaW5kYXMubm8iLCJsaW5k'@; put 'XHhlNXMubm8iLCJsb20ubm8iLCJsb3BwYS5ubyIsImxhaHBwaS5ubyIsImxceGUxaHBwaS5ubyIsImx1bmQubm8iLCJsdW5uZXIubm8iLCJsdXJveS5ubyIsImx1clx4Zjh5Lm5vIiwibHVzdGVyLm5vIiwibHluZ2RhbC5ubyIsImx5bmdlbi5ubyIsIml2Z3Uubm8iLCJsYXJkYWwubm8iLCJs'@; put 'ZXJkYWwubm8iLCJsXHhlNnJkYWwubm8iLCJsb2Rpbmdlbi5ubyIsImxceGY4ZGluZ2VuLm5vIiwibG9yZW5za29nLm5vIiwibFx4ZjhyZW5za29nLm5vIiwibG90ZW4ubm8iLCJsXHhmOHRlbi5ubyIsIm1hbHZpay5ubyIsIm1hc295Lm5vIiwibVx4ZTVzXHhmOHkubm8iLCJtdW9zYXQubm8i'@; put 'LCJtdW9zXHhlMXQubm8iLCJtYW5kYWwubm8iLCJtYXJrZXIubm8iLCJtYXJuYXJkYWwubm8iLCJtYXNmam9yZGVuLm5vIiwibWVsYW5kLm5vIiwibWVsZGFsLm5vIiwibWVsaHVzLm5vIiwibWVsb3kubm8iLCJtZWxceGY4eS5ubyIsIm1lcmFrZXIubm8iLCJtZXJceGU1a2VyLm5vIiwibW9h'@; put 'cmVrZS5ubyIsIm1vXHhlNXJla2Uubm8iLCJtaWRzdW5kLm5vIiwibWlkdHJlLWdhdWxkYWwubm8iLCJtb2RhbGVuLm5vIiwibW9kdW0ubm8iLCJtb2xkZS5ubyIsIm1vc2tlbmVzLm5vIiwibW9zcy5ubyIsIm1vc3Zpay5ubyIsIm1hbHNlbHYubm8iLCJtXHhlNWxzZWx2Lm5vIiwibWFsYXR2'@; put 'dW9wbWkubm8iLCJtXHhlMWxhdHZ1b3BtaS5ubyIsIm5hbWRhbHNlaWQubm8iLCJhZWpyaWUubm8iLCJuYW1zb3Mubm8iLCJuYW1zc2tvZ2FuLm5vIiwibmFhbWVzamV2dWVtaWUubm8iLCJuXHhlNVx4ZTVtZXNqZXZ1ZW1pZS5ubyIsImxhYWtlc3Z1ZW1pZS5ubyIsIm5hbm5lc3RhZC5ubyIs'@; put 'Im5hcnZpay5ubyIsIm5hcnZpaWthLm5vIiwibmF1c3RkYWwubm8iLCJuZWRyZS1laWtlci5ubyIsIm5lcy5ha2Vyc2h1cy5ubyIsIm5lcy5idXNrZXJ1ZC5ubyIsIm5lc25hLm5vIiwibmVzb2RkZW4ubm8iLCJuZXNzZWJ5Lm5vIiwidW5qYXJnYS5ubyIsInVualx4ZTFyZ2Eubm8iLCJuZXNz'@; put 'ZXQubm8iLCJuaXNzZWRhbC5ubyIsIm5pdHRlZGFsLm5vIiwibm9yZC1hdXJkYWwubm8iLCJub3JkLWZyb24ubm8iLCJub3JkLW9kYWwubm8iLCJub3JkZGFsLm5vIiwibm9yZGthcHAubm8iLCJkYXZ2ZW5qYXJnYS5ubyIsImRhdnZlbmpceGUxcmdhLm5vIiwibm9yZHJlLWxhbmQubm8iLCJu'@; put 'b3JkcmVpc2Eubm8iLCJyYWlzYS5ubyIsInJceGUxaXNhLm5vIiwibm9yZS1vZy11dmRhbC5ubyIsIm5vdG9kZGVuLm5vIiwibmFyb3kubm8iLCJuXHhlNnJceGY4eS5ubyIsIm5vdHRlcm95Lm5vIiwiblx4Zjh0dGVyXHhmOHkubm8iLCJvZGRhLm5vIiwib2tzbmVzLm5vIiwiXHhmOGtzbmVz'@; put 'Lm5vIiwib3BwZGFsLm5vIiwib3BwZWdhcmQubm8iLCJvcHBlZ1x4ZTVyZC5ubyIsIm9ya2RhbC5ubyIsIm9ybGFuZC5ubyIsIlx4ZjhybGFuZC5ubyIsIm9yc2tvZy5ubyIsIlx4Zjhyc2tvZy5ubyIsIm9yc3RhLm5vIiwiXHhmOHJzdGEubm8iLCJvcy5oZWRtYXJrLm5vIiwib3MuaG9yZGFs'@; put 'YW5kLm5vIiwib3Nlbi5ubyIsIm9zdGVyb3kubm8iLCJvc3Rlclx4Zjh5Lm5vIiwib3N0cmUtdG90ZW4ubm8iLCJceGY4c3RyZS10b3Rlbi5ubyIsIm92ZXJoYWxsYS5ubyIsIm92cmUtZWlrZXIubm8iLCJceGY4dnJlLWVpa2VyLm5vIiwib3llci5ubyIsIlx4Zjh5ZXIubm8iLCJveWdhcmRl'@; put 'bi5ubyIsIlx4Zjh5Z2FyZGVuLm5vIiwib3lzdHJlLXNsaWRyZS5ubyIsIlx4Zjh5c3RyZS1zbGlkcmUubm8iLCJwb3JzYW5nZXIubm8iLCJwb3JzYW5ndS5ubyIsInBvcnNceGUxXHUwMTRiZ3Uubm8iLCJwb3JzZ3J1bm4ubm8iLCJyYWRveS5ubyIsInJhZFx4Zjh5Lm5vIiwicmFra2VzdGFk'@; put 'Lm5vIiwicmFuYS5ubyIsInJ1b3ZhdC5ubyIsInJhbmRhYmVyZy5ubyIsInJhdW1hLm5vIiwicmVuZGFsZW4ubm8iLCJyZW5uZWJ1Lm5vIiwicmVubmVzb3kubm8iLCJyZW5uZXNceGY4eS5ubyIsInJpbmRhbC5ubyIsInJpbmdlYnUubm8iLCJyaW5nZXJpa2Uubm8iLCJyaW5nc2FrZXIubm8i'@; put 'LCJyaXNzYS5ubyIsInJpc29yLm5vIiwicmlzXHhmOHIubm8iLCJyb2FuLm5vIiwicm9sbGFnLm5vIiwicnlnZ2Uubm8iLCJyYWxpbmdlbi5ubyIsInJceGU2bGluZ2VuLm5vIiwicm9kb3kubm8iLCJyXHhmOGRceGY4eS5ubyIsInJvbXNrb2cubm8iLCJyXHhmOG1za29nLm5vIiwicm9yb3Mu'@; put 'bm8iLCJyXHhmOHJvcy5ubyIsInJvc3Qubm8iLCJyXHhmOHN0Lm5vIiwicm95a2VuLm5vIiwiclx4Zjh5a2VuLm5vIiwicm95cnZpay5ubyIsInJceGY4eXJ2aWsubm8iLCJyYWRlLm5vIiwiclx4ZTVkZS5ubyIsInNhbGFuZ2VuLm5vIiwic2llbGxhay5ubyIsInNhbHRkYWwubm8iLCJzYWxh'@; put 'dC5ubyIsInNceGUxbFx4ZTF0Lm5vIiwic1x4ZTFsYXQubm8iLCJzYW1uYW5nZXIubm8iLCJzYW5kZS5tb3JlLW9nLXJvbXNkYWwubm8iLCJzYW5kZS5tXHhmOHJlLW9nLXJvbXNkYWwubm8iLCJzYW5kZS52ZXN0Zm9sZC5ubyIsInNhbmRlZmpvcmQubm8iLCJzYW5kbmVzLm5vIiwic2FuZG95'@; put 'Lm5vIiwic2FuZFx4Zjh5Lm5vIiwic2FycHNib3JnLm5vIiwic2F1ZGEubm8iLCJzYXVoZXJhZC5ubyIsInNlbC5ubyIsInNlbGJ1Lm5vIiwic2VsamUubm8iLCJzZWxqb3JkLm5vIiwic2lnZGFsLm5vIiwic2lsamFuLm5vIiwic2lyZGFsLm5vIiwic2thdW4ubm8iLCJza2Vkc21vLm5vIiwi'@; put 'c2tpLm5vIiwic2tpZW4ubm8iLCJza2lwdHZldC5ubyIsInNramVydm95Lm5vIiwic2tqZXJ2XHhmOHkubm8iLCJza2llcnZhLm5vIiwic2tpZXJ2XHhlMS5ubyIsInNramFrLm5vIiwic2tqXHhlNWsubm8iLCJza29kamUubm8iLCJza2FubGFuZC5ubyIsInNrXHhlNW5sYW5kLm5vIiwic2th'@; put 'bml0Lm5vIiwic2tceGUxbml0Lm5vIiwic21vbGEubm8iLCJzbVx4ZjhsYS5ubyIsInNuaWxsZmpvcmQubm8iLCJzbmFzYS5ubyIsInNuXHhlNXNhLm5vIiwic25vYXNhLm5vIiwic25hYXNlLm5vIiwic25ceGU1YXNlLm5vIiwic29nbmRhbC5ubyIsInNva25kYWwubm8iLCJzb2xhLm5vIiwi'@; put 'c29sdW5kLm5vIiwic29uZ2RhbGVuLm5vIiwic29ydGxhbmQubm8iLCJzcHlkZWJlcmcubm8iLCJzdGFuZ2Uubm8iLCJzdGF2YW5nZXIubm8iLCJzdGVpZ2VuLm5vIiwic3RlaW5ramVyLm5vIiwic3Rqb3JkYWwubm8iLCJzdGpceGY4cmRhbC5ubyIsInN0b2trZS5ubyIsInN0b3ItZWx2ZGFs'@; put 'Lm5vIiwic3RvcmQubm8iLCJzdG9yZGFsLm5vIiwic3RvcmZqb3JkLm5vIiwib21hc3Z1b3RuYS5ubyIsInN0cmFuZC5ubyIsInN0cmFuZGEubm8iLCJzdHJ5bi5ubyIsInN1bGEubm8iLCJzdWxkYWwubm8iLCJzdW5kLm5vIiwic3VubmRhbC5ubyIsInN1cm5hZGFsLm5vIiwic3ZlaW8ubm8i'@; put 'LCJzdmVsdmlrLm5vIiwic3lra3lsdmVuLm5vIiwic29nbmUubm8iLCJzXHhmOGduZS5ubyIsInNvbW5hLm5vIiwic1x4ZjhtbmEubm8iLCJzb25kcmUtbGFuZC5ubyIsInNceGY4bmRyZS1sYW5kLm5vIiwic29yLWF1cmRhbC5ubyIsInNceGY4ci1hdXJkYWwubm8iLCJzb3ItZnJvbi5ubyIs'@; put 'InNceGY4ci1mcm9uLm5vIiwic29yLW9kYWwubm8iLCJzXHhmOHItb2RhbC5ubyIsInNvci12YXJhbmdlci5ubyIsInNceGY4ci12YXJhbmdlci5ubyIsIm1hdHRhLXZhcmpqYXQubm8iLCJtXHhlMXR0YS12XHhlMXJqamF0Lm5vIiwic29yZm9sZC5ubyIsInNceGY4cmZvbGQubm8iLCJzb3Jy'@; put 'ZWlzYS5ubyIsInNceGY4cnJlaXNhLm5vIiwic29ydW0ubm8iLCJzXHhmOHJ1bS5ubyIsInRhbmEubm8iLCJkZWF0bnUubm8iLCJ0aW1lLm5vIiwidGluZ3ZvbGwubm8iLCJ0aW5uLm5vIiwidGplbGRzdW5kLm5vIiwiZGllbGRkYW51b3JyaS5ubyIsInRqb21lLm5vIiwidGpceGY4bWUubm8i'@; put 'LCJ0b2trZS5ubyIsInRvbGdhLm5vIiwidG9yc2tlbi5ubyIsInRyYW5veS5ubyIsInRyYW5ceGY4eS5ubyIsInRyb21zby5ubyIsInRyb21zXHhmOC5ubyIsInRyb21zYS5ubyIsInJvbXNhLm5vIiwidHJvbmRoZWltLm5vIiwidHJvYW5kaW4ubm8iLCJ0cnlzaWwubm8iLCJ0cmFuYS5ubyIs'@; put 'InRyXHhlNm5hLm5vIiwidHJvZ3N0YWQubm8iLCJ0clx4Zjhnc3RhZC5ubyIsInR2ZWRlc3RyYW5kLm5vIiwidHlkYWwubm8iLCJ0eW5zZXQubm8iLCJ0eXNmam9yZC5ubyIsImRpdnRhc3Z1b2RuYS5ubyIsImRpdnR0YXN2dW90bmEubm8iLCJ0eXNuZXMubm8iLCJ0eXN2YXIubm8iLCJ0eXN2'@; put 'XHhlNnIubm8iLCJ0b25zYmVyZy5ubyIsInRceGY4bnNiZXJnLm5vIiwidWxsZW5zYWtlci5ubyIsInVsbGVuc3Zhbmcubm8iLCJ1bHZpay5ubyIsInV0c2lyYS5ubyIsInZhZHNvLm5vIiwidmFkc1x4Zjgubm8iLCJjYWhjZXN1b2xvLm5vIiwiXHUwMTBkXHhlMWhjZXN1b2xvLm5vIiwidmFr'@; put 'c2RhbC5ubyIsInZhbGxlLm5vIiwidmFuZy5ubyIsInZhbnlsdmVuLm5vIiwidmFyZG8ubm8iLCJ2YXJkXHhmOC5ubyIsInZhcmdnYXQubm8iLCJ2XHhlMXJnZ1x4ZTF0Lm5vIiwidmVmc24ubm8iLCJ2YWFwc3RlLm5vIiwidmVnYS5ubyIsInZlZ2Fyc2hlaS5ubyIsInZlZ1x4ZTVyc2hlaS5u'@; put 'byIsInZlbm5lc2xhLm5vIiwidmVyZGFsLm5vIiwidmVycmFuLm5vIiwidmVzdGJ5Lm5vIiwidmVzdG5lcy5ubyIsInZlc3RyZS1zbGlkcmUubm8iLCJ2ZXN0cmUtdG90ZW4ubm8iLCJ2ZXN0dmFnb3kubm8iLCJ2ZXN0dlx4ZTVnXHhmOHkubm8iLCJ2ZXZlbHN0YWQubm8iLCJ2aWsubm8iLCJ2'@; put 'aWtuYS5ubyIsInZpbmRhZmpvcmQubm8iLCJ2b2xkYS5ubyIsInZvc3Mubm8iLCJ2YXJveS5ubyIsInZceGU2clx4Zjh5Lm5vIiwidmFnYW4ubm8iLCJ2XHhlNWdhbi5ubyIsInZvYWdhdC5ubyIsInZhZ3NveS5ubyIsInZceGU1Z3NceGY4eS5ubyIsInZhZ2Eubm8iLCJ2XHhlNWdceGU1Lm5v'@; put 'IiwidmFsZXIub3N0Zm9sZC5ubyIsInZceGU1bGVyLlx4ZjhzdGZvbGQubm8iLCJ2YWxlci5oZWRtYXJrLm5vIiwidlx4ZTVsZXIuaGVkbWFyay5ubyIsIioubnAiLCJuciIsImJpei5uciIsImluZm8ubnIiLCJnb3YubnIiLCJlZHUubnIiLCJvcmcubnIiLCJuZXQubnIiLCJjb20ubnIiLCJu'@; put 'dSIsIm56IiwiYWMubnoiLCJjby5ueiIsImNyaS5ueiIsImdlZWsubnoiLCJnZW4ubnoiLCJnb3Z0Lm56IiwiaGVhbHRoLm56IiwiaXdpLm56Iiwia2l3aS5ueiIsIm1hb3JpLm56IiwibWlsLm56IiwibVx1MDEwMW9yaS5ueiIsIm5ldC5ueiIsIm9yZy5ueiIsInBhcmxpYW1lbnQubnoiLCJz'@; put 'Y2hvb2wubnoiLCJvbSIsImNvLm9tIiwiY29tLm9tIiwiZWR1Lm9tIiwiZ292Lm9tIiwibWVkLm9tIiwibXVzZXVtLm9tIiwibmV0Lm9tIiwib3JnLm9tIiwicHJvLm9tIiwib25pb24iLCJvcmciLCJwYSIsImFjLnBhIiwiZ29iLnBhIiwiY29tLnBhIiwib3JnLnBhIiwic2xkLnBhIiwiZWR1'@; put 'LnBhIiwibmV0LnBhIiwiaW5nLnBhIiwiYWJvLnBhIiwibWVkLnBhIiwibm9tLnBhIiwicGUiLCJlZHUucGUiLCJnb2IucGUiLCJub20ucGUiLCJtaWwucGUiLCJvcmcucGUiLCJjb20ucGUiLCJuZXQucGUiLCJwZiIsImNvbS5wZiIsIm9yZy5wZiIsImVkdS5wZiIsIioucGciLCJwaCIsImNv'@; put 'bS5waCIsIm5ldC5waCIsIm9yZy5waCIsImdvdi5waCIsImVkdS5waCIsIm5nby5waCIsIm1pbC5waCIsImkucGgiLCJwayIsImNvbS5wayIsIm5ldC5wayIsImVkdS5wayIsIm9yZy5wayIsImZhbS5wayIsImJpei5wayIsIndlYi5wayIsImdvdi5wayIsImdvYi5wayIsImdvay5wayIsImdv'@; put 'bi5wayIsImdvcC5wayIsImdvcy5wayIsImluZm8ucGsiLCJwbCIsImNvbS5wbCIsIm5ldC5wbCIsIm9yZy5wbCIsImFpZC5wbCIsImFncm8ucGwiLCJhdG0ucGwiLCJhdXRvLnBsIiwiYml6LnBsIiwiZWR1LnBsIiwiZ21pbmEucGwiLCJnc20ucGwiLCJpbmZvLnBsIiwibWFpbC5wbCIsIm1p'@; put 'YXN0YS5wbCIsIm1lZGlhLnBsIiwibWlsLnBsIiwibmllcnVjaG9tb3NjaS5wbCIsIm5vbS5wbCIsInBjLnBsIiwicG93aWF0LnBsIiwicHJpdi5wbCIsInJlYWxlc3RhdGUucGwiLCJyZWwucGwiLCJzZXgucGwiLCJzaG9wLnBsIiwic2tsZXAucGwiLCJzb3MucGwiLCJzemtvbGEucGwiLCJ0'@; put 'YXJnaS5wbCIsInRtLnBsIiwidG91cmlzbS5wbCIsInRyYXZlbC5wbCIsInR1cnlzdHlrYS5wbCIsImdvdi5wbCIsImFwLmdvdi5wbCIsImljLmdvdi5wbCIsImlzLmdvdi5wbCIsInVzLmdvdi5wbCIsImttcHNwLmdvdi5wbCIsImtwcHNwLmdvdi5wbCIsImt3cHNwLmdvdi5wbCIsInBzcC5n'@; put 'b3YucGwiLCJ3c2tyLmdvdi5wbCIsImt3cC5nb3YucGwiLCJtdy5nb3YucGwiLCJ1Zy5nb3YucGwiLCJ1bS5nb3YucGwiLCJ1bWlnLmdvdi5wbCIsInVnaW0uZ292LnBsIiwidXBvdy5nb3YucGwiLCJ1dy5nb3YucGwiLCJzdGFyb3N0d28uZ292LnBsIiwicGEuZ292LnBsIiwicG8uZ292LnBs'@; put 'IiwicHNzZS5nb3YucGwiLCJwdXAuZ292LnBsIiwicnpndy5nb3YucGwiLCJzYS5nb3YucGwiLCJzby5nb3YucGwiLCJzci5nb3YucGwiLCJ3c2EuZ292LnBsIiwic2tvLmdvdi5wbCIsInV6cy5nb3YucGwiLCJ3aWloLmdvdi5wbCIsIndpbmIuZ292LnBsIiwicGluYi5nb3YucGwiLCJ3aW9z'@; put 'Lmdvdi5wbCIsIndpdGQuZ292LnBsIiwid3ptaXV3Lmdvdi5wbCIsInBpdy5nb3YucGwiLCJ3aXcuZ292LnBsIiwiZ3Jpdy5nb3YucGwiLCJ3aWYuZ292LnBsIiwib3VtLmdvdi5wbCIsInNkbi5nb3YucGwiLCJ6cC5nb3YucGwiLCJ1cHBvLmdvdi5wbCIsIm11cC5nb3YucGwiLCJ3dW96Lmdv'@; put 'di5wbCIsImtvbnN1bGF0Lmdvdi5wbCIsIm9pcm0uZ292LnBsIiwiYXVndXN0b3cucGwiLCJiYWJpYS1nb3JhLnBsIiwiYmVkemluLnBsIiwiYmVza2lkeS5wbCIsImJpYWxvd2llemEucGwiLCJiaWFseXN0b2sucGwiLCJiaWVsYXdhLnBsIiwiYmllc3pjemFkeS5wbCIsImJvbGVzbGF3aWVj'@; put 'LnBsIiwiYnlkZ29zemN6LnBsIiwiYnl0b20ucGwiLCJjaWVzenluLnBsIiwiY3plbGFkei5wbCIsImN6ZXN0LnBsIiwiZGx1Z29sZWthLnBsIiwiZWxibGFnLnBsIiwiZWxrLnBsIiwiZ2xvZ293LnBsIiwiZ25pZXpuby5wbCIsImdvcmxpY2UucGwiLCJncmFqZXdvLnBsIiwiaWxhd2EucGwi'@; put 'LCJqYXdvcnpuby5wbCIsImplbGVuaWEtZ29yYS5wbCIsImpnb3JhLnBsIiwia2FsaXN6LnBsIiwia2F6aW1pZXJ6LWRvbG55LnBsIiwia2FycGFjei5wbCIsImthcnR1enkucGwiLCJrYXN6dWJ5LnBsIiwia2F0b3dpY2UucGwiLCJrZXBuby5wbCIsImtldHJ6eW4ucGwiLCJrbG9kemtvLnBs'@; put 'Iiwia29iaWVyenljZS5wbCIsImtvbG9icnplZy5wbCIsImtvbmluLnBsIiwia29uc2tvd29sYS5wbCIsImt1dG5vLnBsIiwibGFweS5wbCIsImxlYm9yay5wbCIsImxlZ25pY2EucGwiLCJsZXphanNrLnBsIiwibGltYW5vd2EucGwiLCJsb216YS5wbCIsImxvd2ljei5wbCIsImx1YmluLnBs'@; put 'IiwibHVrb3cucGwiLCJtYWxib3JrLnBsIiwibWFsb3BvbHNrYS5wbCIsIm1hem93c3plLnBsIiwibWF6dXJ5LnBsIiwibWllbGVjLnBsIiwibWllbG5vLnBsIiwibXJhZ293by5wbCIsIm5ha2xvLnBsIiwibm93YXJ1ZGEucGwiLCJueXNhLnBsIiwib2xhd2EucGwiLCJvbGVja28ucGwiLCJv'@; put 'bGt1c3oucGwiLCJvbHN6dHluLnBsIiwib3BvY3puby5wbCIsIm9wb2xlLnBsIiwib3N0cm9kYS5wbCIsIm9zdHJvbGVrYS5wbCIsIm9zdHJvd2llYy5wbCIsIm9zdHJvd3dsa3AucGwiLCJwaWxhLnBsIiwicGlzei5wbCIsInBvZGhhbGUucGwiLCJwb2RsYXNpZS5wbCIsInBvbGtvd2ljZS5w'@; put 'bCIsInBvbW9yemUucGwiLCJwb21vcnNraWUucGwiLCJwcm9jaG93aWNlLnBsIiwicHJ1c3prb3cucGwiLCJwcnpld29yc2sucGwiLCJwdWxhd3kucGwiLCJyYWRvbS5wbCIsInJhd2EtbWF6LnBsIiwicnlibmlrLnBsIiwicnplc3pvdy5wbCIsInNhbm9rLnBsIiwic2VqbnkucGwiLCJzbGFz'@; put 'ay5wbCIsInNsdXBzay5wbCIsInNvc25vd2llYy5wbCIsInN0YWxvd2Etd29sYS5wbCIsInNrb2N6b3cucGwiLCJzdGFyYWNob3dpY2UucGwiLCJzdGFyZ2FyZC5wbCIsInN1d2Fsa2kucGwiLCJzd2lkbmljYS5wbCIsInN3aWVib2R6aW4ucGwiLCJzd2lub3Vqc2NpZS5wbCIsInN6Y3plY2lu'@; put 'LnBsIiwic3pjenl0bm8ucGwiLCJ0YXJub2JyemVnLnBsIiwidGdvcnkucGwiLCJ0dXJlay5wbCIsInR5Y2h5LnBsIiwidXN0a2EucGwiLCJ3YWxicnp5Y2gucGwiLCJ3YXJtaWEucGwiLCJ3YXJzemF3YS5wbCIsIndhdy5wbCIsIndlZ3Jvdy5wbCIsIndpZWx1bi5wbCIsIndsb2NsLnBsIiwi'@; put 'd2xvY2xhd2VrLnBsIiwid29kemlzbGF3LnBsIiwid29sb21pbi5wbCIsIndyb2NsYXcucGwiLCJ6YWNocG9tb3IucGwiLCJ6YWdhbi5wbCIsInphcm93LnBsIiwiemdvcmEucGwiLCJ6Z29yemVsZWMucGwiLCJwbSIsInBuIiwiZ292LnBuIiwiY28ucG4iLCJvcmcucG4iLCJlZHUucG4iLCJu'@; put 'ZXQucG4iLCJwb3N0IiwicHIiLCJjb20ucHIiLCJuZXQucHIiLCJvcmcucHIiLCJnb3YucHIiLCJlZHUucHIiLCJpc2xhLnByIiwicHJvLnByIiwiYml6LnByIiwiaW5mby5wciIsIm5hbWUucHIiLCJlc3QucHIiLCJwcm9mLnByIiwiYWMucHIiLCJwcm8iLCJhYWEucHJvIiwiYWNhLnBybyIs'@; put 'ImFjY3QucHJvIiwiYXZvY2F0LnBybyIsImJhci5wcm8iLCJjcGEucHJvIiwiZW5nLnBybyIsImp1ci5wcm8iLCJsYXcucHJvIiwibWVkLnBybyIsInJlY2h0LnBybyIsInBzIiwiZWR1LnBzIiwiZ292LnBzIiwic2VjLnBzIiwicGxvLnBzIiwiY29tLnBzIiwib3JnLnBzIiwibmV0LnBzIiwi'@; put 'cHQiLCJuZXQucHQiLCJnb3YucHQiLCJvcmcucHQiLCJlZHUucHQiLCJpbnQucHQiLCJwdWJsLnB0IiwiY29tLnB0Iiwibm9tZS5wdCIsInB3IiwiY28ucHciLCJuZS5wdyIsIm9yLnB3IiwiZWQucHciLCJnby5wdyIsImJlbGF1LnB3IiwicHkiLCJjb20ucHkiLCJjb29wLnB5IiwiZWR1LnB5'@; put 'IiwiZ292LnB5IiwibWlsLnB5IiwibmV0LnB5Iiwib3JnLnB5IiwicWEiLCJjb20ucWEiLCJlZHUucWEiLCJnb3YucWEiLCJtaWwucWEiLCJuYW1lLnFhIiwibmV0LnFhIiwib3JnLnFhIiwic2NoLnFhIiwicmUiLCJhc3NvLnJlIiwiY29tLnJlIiwibm9tLnJlIiwicm8iLCJhcnRzLnJvIiwi'@; put 'Y29tLnJvIiwiZmlybS5ybyIsImluZm8ucm8iLCJub20ucm8iLCJudC5ybyIsIm9yZy5ybyIsInJlYy5ybyIsInN0b3JlLnJvIiwidG0ucm8iLCJ3d3cucm8iLCJycyIsImFjLnJzIiwiY28ucnMiLCJlZHUucnMiLCJnb3YucnMiLCJpbi5ycyIsIm9yZy5ycyIsInJ1IiwicnciLCJhYy5ydyIs'@; put 'ImNvLnJ3IiwiY29vcC5ydyIsImdvdi5ydyIsIm1pbC5ydyIsIm5ldC5ydyIsIm9yZy5ydyIsInNhIiwiY29tLnNhIiwibmV0LnNhIiwib3JnLnNhIiwiZ292LnNhIiwibWVkLnNhIiwicHViLnNhIiwiZWR1LnNhIiwic2NoLnNhIiwic2IiLCJjb20uc2IiLCJlZHUuc2IiLCJnb3Yuc2IiLCJu'@; put 'ZXQuc2IiLCJvcmcuc2IiLCJzYyIsImNvbS5zYyIsImdvdi5zYyIsIm5ldC5zYyIsIm9yZy5zYyIsImVkdS5zYyIsInNkIiwiY29tLnNkIiwibmV0LnNkIiwib3JnLnNkIiwiZWR1LnNkIiwibWVkLnNkIiwidHYuc2QiLCJnb3Yuc2QiLCJpbmZvLnNkIiwic2UiLCJhLnNlIiwiYWMuc2UiLCJi'@; put 'LnNlIiwiYmQuc2UiLCJicmFuZC5zZSIsImMuc2UiLCJkLnNlIiwiZS5zZSIsImYuc2UiLCJmaC5zZSIsImZoc2suc2UiLCJmaHYuc2UiLCJnLnNlIiwiaC5zZSIsImkuc2UiLCJrLnNlIiwia29tZm9yYi5zZSIsImtvbW11bmFsZm9yYnVuZC5zZSIsImtvbXZ1eC5zZSIsImwuc2UiLCJsYW5i'@; put 'aWIuc2UiLCJtLnNlIiwibi5zZSIsIm5hdHVyYnJ1a3NneW1uLnNlIiwiby5zZSIsIm9yZy5zZSIsInAuc2UiLCJwYXJ0aS5zZSIsInBwLnNlIiwicHJlc3Muc2UiLCJyLnNlIiwicy5zZSIsInQuc2UiLCJ0bS5zZSIsInUuc2UiLCJ3LnNlIiwieC5zZSIsInkuc2UiLCJ6LnNlIiwic2ciLCJj'@; put 'b20uc2ciLCJuZXQuc2ciLCJvcmcuc2ciLCJnb3Yuc2ciLCJlZHUuc2ciLCJwZXIuc2ciLCJzaCIsImNvbS5zaCIsIm5ldC5zaCIsImdvdi5zaCIsIm9yZy5zaCIsIm1pbC5zaCIsInNpIiwic2oiLCJzayIsInNsIiwiY29tLnNsIiwibmV0LnNsIiwiZWR1LnNsIiwiZ292LnNsIiwib3JnLnNs'@; put 'Iiwic20iLCJzbiIsImFydC5zbiIsImNvbS5zbiIsImVkdS5zbiIsImdvdXYuc24iLCJvcmcuc24iLCJwZXJzby5zbiIsInVuaXYuc24iLCJzbyIsImNvbS5zbyIsImVkdS5zbyIsImdvdi5zbyIsIm1lLnNvIiwibmV0LnNvIiwib3JnLnNvIiwic3IiLCJzcyIsImJpei5zcyIsImNvbS5zcyIs'@; put 'ImVkdS5zcyIsImdvdi5zcyIsIm1lLnNzIiwibmV0LnNzIiwib3JnLnNzIiwic2NoLnNzIiwic3QiLCJjby5zdCIsImNvbS5zdCIsImNvbnN1bGFkby5zdCIsImVkdS5zdCIsImVtYmFpeGFkYS5zdCIsIm1pbC5zdCIsIm5ldC5zdCIsIm9yZy5zdCIsInByaW5jaXBlLnN0Iiwic2FvdG9tZS5z'@; put 'dCIsInN0b3JlLnN0Iiwic3UiLCJzdiIsImNvbS5zdiIsImVkdS5zdiIsImdvYi5zdiIsIm9yZy5zdiIsInJlZC5zdiIsInN4IiwiZ292LnN4Iiwic3kiLCJlZHUuc3kiLCJnb3Yuc3kiLCJuZXQuc3kiLCJtaWwuc3kiLCJjb20uc3kiLCJvcmcuc3kiLCJzeiIsImNvLnN6IiwiYWMuc3oiLCJv'@; put 'cmcuc3oiLCJ0YyIsInRkIiwidGVsIiwidGYiLCJ0ZyIsInRoIiwiYWMudGgiLCJjby50aCIsImdvLnRoIiwiaW4udGgiLCJtaS50aCIsIm5ldC50aCIsIm9yLnRoIiwidGoiLCJhYy50aiIsImJpei50aiIsImNvLnRqIiwiY29tLnRqIiwiZWR1LnRqIiwiZ28udGoiLCJnb3YudGoiLCJpbnQu'@; put 'dGoiLCJtaWwudGoiLCJuYW1lLnRqIiwibmV0LnRqIiwibmljLnRqIiwib3JnLnRqIiwidGVzdC50aiIsIndlYi50aiIsInRrIiwidGwiLCJnb3YudGwiLCJ0bSIsImNvbS50bSIsImNvLnRtIiwib3JnLnRtIiwibmV0LnRtIiwibm9tLnRtIiwiZ292LnRtIiwibWlsLnRtIiwiZWR1LnRtIiwi'@; put 'dG4iLCJjb20udG4iLCJlbnMudG4iLCJmaW4udG4iLCJnb3YudG4iLCJpbmQudG4iLCJpbmZvLnRuIiwiaW50bC50biIsIm1pbmNvbS50biIsIm5hdC50biIsIm5ldC50biIsIm9yZy50biIsInBlcnNvLnRuIiwidG91cmlzbS50biIsInRvIiwiY29tLnRvIiwiZ292LnRvIiwibmV0LnRvIiwi'@; put 'b3JnLnRvIiwiZWR1LnRvIiwibWlsLnRvIiwidHIiLCJhdi50ciIsImJicy50ciIsImJlbC50ciIsImJpei50ciIsImNvbS50ciIsImRyLnRyIiwiZWR1LnRyIiwiZ2VuLnRyIiwiZ292LnRyIiwiaW5mby50ciIsIm1pbC50ciIsImsxMi50ciIsImtlcC50ciIsIm5hbWUudHIiLCJuZXQudHIi'@; put 'LCJvcmcudHIiLCJwb2wudHIiLCJ0ZWwudHIiLCJ0c2sudHIiLCJ0di50ciIsIndlYi50ciIsIm5jLnRyIiwiZ292Lm5jLnRyIiwidHQiLCJjby50dCIsImNvbS50dCIsIm9yZy50dCIsIm5ldC50dCIsImJpei50dCIsImluZm8udHQiLCJwcm8udHQiLCJpbnQudHQiLCJjb29wLnR0Iiwiam9i'@; put 'cy50dCIsIm1vYmkudHQiLCJ0cmF2ZWwudHQiLCJtdXNldW0udHQiLCJhZXJvLnR0IiwibmFtZS50dCIsImdvdi50dCIsImVkdS50dCIsInR2IiwidHciLCJlZHUudHciLCJnb3YudHciLCJtaWwudHciLCJjb20udHciLCJuZXQudHciLCJvcmcudHciLCJpZHYudHciLCJnYW1lLnR3IiwiZWJp'@; put 'ei50dyIsImNsdWIudHciLCJcdTdkYjJcdThkZWYudHciLCJcdTdkNDRcdTdlNTQudHciLCJcdTU1NDZcdTY5NmQudHciLCJ0eiIsImFjLnR6IiwiY28udHoiLCJnby50eiIsImhvdGVsLnR6IiwiaW5mby50eiIsIm1lLnR6IiwibWlsLnR6IiwibW9iaS50eiIsIm5lLnR6Iiwib3IudHoiLCJz'@; put 'Yy50eiIsInR2LnR6IiwidWEiLCJjb20udWEiLCJlZHUudWEiLCJnb3YudWEiLCJpbi51YSIsIm5ldC51YSIsIm9yZy51YSIsImNoZXJrYXNzeS51YSIsImNoZXJrYXN5LnVhIiwiY2hlcm5pZ292LnVhIiwiY2hlcm5paGl2LnVhIiwiY2hlcm5pdnRzaS51YSIsImNoZXJub3Z0c3kudWEiLCJj'@; put 'ay51YSIsImNuLnVhIiwiY3IudWEiLCJjcmltZWEudWEiLCJjdi51YSIsImRuLnVhIiwiZG5lcHJvcGV0cm92c2sudWEiLCJkbmlwcm9wZXRyb3Zzay51YSIsImRvbmV0c2sudWEiLCJkcC51YSIsImlmLnVhIiwiaXZhbm8tZnJhbmtpdnNrLnVhIiwia2gudWEiLCJraGFya2l2LnVhIiwia2hh'@; put 'cmtvdi51YSIsImtoZXJzb24udWEiLCJraG1lbG5pdHNraXkudWEiLCJraG1lbG55dHNreWkudWEiLCJraWV2LnVhIiwia2lyb3ZvZ3JhZC51YSIsImttLnVhIiwia3IudWEiLCJrcnltLnVhIiwia3MudWEiLCJrdi51YSIsImt5aXYudWEiLCJsZy51YSIsImx0LnVhIiwibHVnYW5zay51YSIs'@; put 'Imx1dHNrLnVhIiwibHYudWEiLCJsdml2LnVhIiwibWsudWEiLCJteWtvbGFpdi51YSIsIm5pa29sYWV2LnVhIiwib2QudWEiLCJvZGVzYS51YSIsIm9kZXNzYS51YSIsInBsLnVhIiwicG9sdGF2YS51YSIsInJpdm5lLnVhIiwicm92bm8udWEiLCJydi51YSIsInNiLnVhIiwic2ViYXN0b3Bv'@; put 'bC51YSIsInNldmFzdG9wb2wudWEiLCJzbS51YSIsInN1bXkudWEiLCJ0ZS51YSIsInRlcm5vcGlsLnVhIiwidXoudWEiLCJ1emhnb3JvZC51YSIsInZpbm5pY2EudWEiLCJ2aW5ueXRzaWEudWEiLCJ2bi51YSIsInZvbHluLnVhIiwieWFsdGEudWEiLCJ6YXBvcml6aHpoZS51YSIsInphcG9y'@; put 'aXpoemhpYS51YSIsInpoaXRvbWlyLnVhIiwiemh5dG9teXIudWEiLCJ6cC51YSIsInp0LnVhIiwidWciLCJjby51ZyIsIm9yLnVnIiwiYWMudWciLCJzYy51ZyIsImdvLnVnIiwibmUudWciLCJjb20udWciLCJvcmcudWciLCJ1ayIsImFjLnVrIiwiY28udWsiLCJnb3YudWsiLCJsdGQudWsi'@; put 'LCJtZS51ayIsIm5ldC51ayIsIm5ocy51ayIsIm9yZy51ayIsInBsYy51ayIsInBvbGljZS51ayIsIiouc2NoLnVrIiwidXMiLCJkbmkudXMiLCJmZWQudXMiLCJpc2EudXMiLCJraWRzLnVzIiwibnNuLnVzIiwiYWsudXMiLCJhbC51cyIsImFyLnVzIiwiYXMudXMiLCJhei51cyIsImNhLnVz'@; put 'IiwiY28udXMiLCJjdC51cyIsImRjLnVzIiwiZGUudXMiLCJmbC51cyIsImdhLnVzIiwiZ3UudXMiLCJoaS51cyIsImlhLnVzIiwiaWQudXMiLCJpbC51cyIsImluLnVzIiwia3MudXMiLCJreS51cyIsImxhLnVzIiwibWEudXMiLCJtZC51cyIsIm1lLnVzIiwibWkudXMiLCJtbi51cyIsIm1v'@; put 'LnVzIiwibXMudXMiLCJtdC51cyIsIm5jLnVzIiwibmQudXMiLCJuZS51cyIsIm5oLnVzIiwibmoudXMiLCJubS51cyIsIm52LnVzIiwibnkudXMiLCJvaC51cyIsIm9rLnVzIiwib3IudXMiLCJwYS51cyIsInByLnVzIiwicmkudXMiLCJzYy51cyIsInNkLnVzIiwidG4udXMiLCJ0eC51cyIs'@; put 'InV0LnVzIiwidmkudXMiLCJ2dC51cyIsInZhLnVzIiwid2EudXMiLCJ3aS51cyIsInd2LnVzIiwid3kudXMiLCJrMTIuYWsudXMiLCJrMTIuYWwudXMiLCJrMTIuYXIudXMiLCJrMTIuYXMudXMiLCJrMTIuYXoudXMiLCJrMTIuY2EudXMiLCJrMTIuY28udXMiLCJrMTIuY3QudXMiLCJrMTIu'@; put 'ZGMudXMiLCJrMTIuZGUudXMiLCJrMTIuZmwudXMiLCJrMTIuZ2EudXMiLCJrMTIuZ3UudXMiLCJrMTIuaWEudXMiLCJrMTIuaWQudXMiLCJrMTIuaWwudXMiLCJrMTIuaW4udXMiLCJrMTIua3MudXMiLCJrMTIua3kudXMiLCJrMTIubGEudXMiLCJrMTIubWEudXMiLCJrMTIubWQudXMiLCJr'@; put 'MTIubWUudXMiLCJrMTIubWkudXMiLCJrMTIubW4udXMiLCJrMTIubW8udXMiLCJrMTIubXMudXMiLCJrMTIubXQudXMiLCJrMTIubmMudXMiLCJrMTIubmUudXMiLCJrMTIubmgudXMiLCJrMTIubmoudXMiLCJrMTIubm0udXMiLCJrMTIubnYudXMiLCJrMTIubnkudXMiLCJrMTIub2gudXMi'@; put 'LCJrMTIub2sudXMiLCJrMTIub3IudXMiLCJrMTIucGEudXMiLCJrMTIucHIudXMiLCJrMTIuc2MudXMiLCJrMTIudG4udXMiLCJrMTIudHgudXMiLCJrMTIudXQudXMiLCJrMTIudmkudXMiLCJrMTIudnQudXMiLCJrMTIudmEudXMiLCJrMTIud2EudXMiLCJrMTIud2kudXMiLCJrMTIud3ku'@; put 'dXMiLCJjYy5hay51cyIsImNjLmFsLnVzIiwiY2MuYXIudXMiLCJjYy5hcy51cyIsImNjLmF6LnVzIiwiY2MuY2EudXMiLCJjYy5jby51cyIsImNjLmN0LnVzIiwiY2MuZGMudXMiLCJjYy5kZS51cyIsImNjLmZsLnVzIiwiY2MuZ2EudXMiLCJjYy5ndS51cyIsImNjLmhpLnVzIiwiY2MuaWEu'@; put 'dXMiLCJjYy5pZC51cyIsImNjLmlsLnVzIiwiY2MuaW4udXMiLCJjYy5rcy51cyIsImNjLmt5LnVzIiwiY2MubGEudXMiLCJjYy5tYS51cyIsImNjLm1kLnVzIiwiY2MubWUudXMiLCJjYy5taS51cyIsImNjLm1uLnVzIiwiY2MubW8udXMiLCJjYy5tcy51cyIsImNjLm10LnVzIiwiY2MubmMu'@; put 'dXMiLCJjYy5uZC51cyIsImNjLm5lLnVzIiwiY2MubmgudXMiLCJjYy5uai51cyIsImNjLm5tLnVzIiwiY2MubnYudXMiLCJjYy5ueS51cyIsImNjLm9oLnVzIiwiY2Mub2sudXMiLCJjYy5vci51cyIsImNjLnBhLnVzIiwiY2MucHIudXMiLCJjYy5yaS51cyIsImNjLnNjLnVzIiwiY2Muc2Qu'@; put 'dXMiLCJjYy50bi51cyIsImNjLnR4LnVzIiwiY2MudXQudXMiLCJjYy52aS51cyIsImNjLnZ0LnVzIiwiY2MudmEudXMiLCJjYy53YS51cyIsImNjLndpLnVzIiwiY2Mud3YudXMiLCJjYy53eS51cyIsImxpYi5hay51cyIsImxpYi5hbC51cyIsImxpYi5hci51cyIsImxpYi5hcy51cyIsImxp'@; put 'Yi5hei51cyIsImxpYi5jYS51cyIsImxpYi5jby51cyIsImxpYi5jdC51cyIsImxpYi5kYy51cyIsImxpYi5mbC51cyIsImxpYi5nYS51cyIsImxpYi5ndS51cyIsImxpYi5oaS51cyIsImxpYi5pYS51cyIsImxpYi5pZC51cyIsImxpYi5pbC51cyIsImxpYi5pbi51cyIsImxpYi5rcy51cyIs'@; put 'ImxpYi5reS51cyIsImxpYi5sYS51cyIsImxpYi5tYS51cyIsImxpYi5tZC51cyIsImxpYi5tZS51cyIsImxpYi5taS51cyIsImxpYi5tbi51cyIsImxpYi5tby51cyIsImxpYi5tcy51cyIsImxpYi5tdC51cyIsImxpYi5uYy51cyIsImxpYi5uZC51cyIsImxpYi5uZS51cyIsImxpYi5uaC51'@; put 'cyIsImxpYi5uai51cyIsImxpYi5ubS51cyIsImxpYi5udi51cyIsImxpYi5ueS51cyIsImxpYi5vaC51cyIsImxpYi5vay51cyIsImxpYi5vci51cyIsImxpYi5wYS51cyIsImxpYi5wci51cyIsImxpYi5yaS51cyIsImxpYi5zYy51cyIsImxpYi5zZC51cyIsImxpYi50bi51cyIsImxpYi50'@; put 'eC51cyIsImxpYi51dC51cyIsImxpYi52aS51cyIsImxpYi52dC51cyIsImxpYi52YS51cyIsImxpYi53YS51cyIsImxpYi53aS51cyIsImxpYi53eS51cyIsInB2dC5rMTIubWEudXMiLCJjaHRyLmsxMi5tYS51cyIsInBhcm9jaC5rMTIubWEudXMiLCJhbm4tYXJib3IubWkudXMiLCJjb2cu'@; put 'bWkudXMiLCJkc3QubWkudXMiLCJlYXRvbi5taS51cyIsImdlbi5taS51cyIsIm11cy5taS51cyIsInRlYy5taS51cyIsIndhc2h0ZW5hdy5taS51cyIsInV5IiwiY29tLnV5IiwiZWR1LnV5IiwiZ3ViLnV5IiwibWlsLnV5IiwibmV0LnV5Iiwib3JnLnV5IiwidXoiLCJjby51eiIsImNvbS51'@; put 'eiIsIm5ldC51eiIsIm9yZy51eiIsInZhIiwidmMiLCJjb20udmMiLCJuZXQudmMiLCJvcmcudmMiLCJnb3YudmMiLCJtaWwudmMiLCJlZHUudmMiLCJ2ZSIsImFydHMudmUiLCJiaWIudmUiLCJjby52ZSIsImNvbS52ZSIsImUxMi52ZSIsImVkdS52ZSIsImZpcm0udmUiLCJnb2IudmUiLCJn'@; put 'b3YudmUiLCJpbmZvLnZlIiwiaW50LnZlIiwibWlsLnZlIiwibmV0LnZlIiwibm9tLnZlIiwib3JnLnZlIiwicmFyLnZlIiwicmVjLnZlIiwic3RvcmUudmUiLCJ0ZWMudmUiLCJ3ZWIudmUiLCJ2ZyIsInZpIiwiY28udmkiLCJjb20udmkiLCJrMTIudmkiLCJuZXQudmkiLCJvcmcudmkiLCJ2'@; put 'biIsImNvbS52biIsIm5ldC52biIsIm9yZy52biIsImVkdS52biIsImdvdi52biIsImludC52biIsImFjLnZuIiwiYml6LnZuIiwiaW5mby52biIsIm5hbWUudm4iLCJwcm8udm4iLCJoZWFsdGgudm4iLCJ2dSIsImNvbS52dSIsImVkdS52dSIsIm5ldC52dSIsIm9yZy52dSIsIndmIiwid3Mi'@; put 'LCJjb20ud3MiLCJuZXQud3MiLCJvcmcud3MiLCJnb3Yud3MiLCJlZHUud3MiLCJ5dCIsIlx1MDYyN1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYyN1x1MDYyYSIsIlx1MDU3MFx1MDU2MVx1MDU3NSIsIlx1MDlhY1x1MDliZVx1MDk4Mlx1MDliMlx1MDliZSIsIlx1MDQzMVx1MDQzMyIsIlx1MDYy'@; put 'N1x1MDY0NFx1MDYyOFx1MDYyZFx1MDYzMVx1MDY0YVx1MDY0NiIsIlx1MDQzMVx1MDQzNVx1MDQzYiIsIlx1NGUyZFx1NTZmZCIsIlx1NGUyZFx1NTcwYiIsIlx1MDYyN1x1MDY0NFx1MDYyY1x1MDYzMlx1MDYyN1x1MDYyNlx1MDYzMSIsIlx1MDY0NVx1MDYzNVx1MDYzMSIsIlx1MDQzNVx1'@; put 'MDQ0ZSIsIlx1MDNiNVx1MDNjNSIsIlx1MDY0NVx1MDY0OFx1MDYzMVx1MDY0YVx1MDYyYVx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyNyIsIlx1MTBkMlx1MTBkNCIsIlx1MDNiNVx1MDNiYiIsIlx1OTk5OVx1NmUyZiIsIlx1NTE2Y1x1NTNmOC5cdTk5OTlcdTZlMmYiLCJcdTY1NTlcdTgwYjIu'@; put 'XHU5OTk5XHU2ZTJmIiwiXHU2NTNmXHU1ZTljLlx1OTk5OVx1NmUyZiIsIlx1NTAwYlx1NGViYS5cdTk5OTlcdTZlMmYiLCJcdTdkYjJcdTdkNjEuXHU5OTk5XHU2ZTJmIiwiXHU3ZDQ0XHU3ZTU0Llx1OTk5OVx1NmUyZiIsIlx1MGNhZFx1MGNiZVx1MGNiMFx1MGNhNCIsIlx1MGIyZFx1MGIz'@; put 'ZVx1MGIzMFx1MGIyNCIsIlx1MDlhZFx1MDliZVx1MDlmMFx1MDlhNCIsIlx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNFx1MDkyZVx1MDk0ZCIsIlx1MDkyZFx1MDkzZVx1MDkzMFx1MDk0Ylx1MDkyNCIsIlx1MDY4MFx1MDYyN1x1MDYzMVx1MDYyYSIsIlx1MGQyZFx1MGQzZVx1MGQzMFx1MGQy'@; put 'NFx1MGQwMiIsIlx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNCIsIlx1MDYyOFx1MDYyN1x1MDYzMVx1MDYyYSIsIlx1MDYyOFx1MDZiZVx1MDYyN1x1MDYzMVx1MDYyYSIsIlx1MGMyZFx1MGMzZVx1MGMzMFx1MGMyNFx1MGM0ZCIsIlx1MGFhZFx1MGFiZVx1MGFiMFx1MGFhNCIsIlx1MGEyZFx1'@; put 'MGEzZVx1MGEzMFx1MGEyNCIsIlx1MDlhZFx1MDliZVx1MDliMFx1MDlhNCIsIlx1MGI4N1x1MGJhOFx1MGJjZFx1MGJhNFx1MGJiZlx1MGJhZlx1MGJiZSIsIlx1MDYyN1x1MDZjY1x1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYyN1x1MDY0YVx1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYzOVx1'@; put 'MDYzMVx1MDYyN1x1MDY0MiIsIlx1MDYyN1x1MDY0NFx1MDYyN1x1MDYzMVx1MDYyZlx1MDY0NiIsIlx1ZDU1Y1x1YWQ2ZCIsIlx1MDQ5Ylx1MDQzMFx1MDQzNyIsIlx1MGVhNVx1MGViMlx1MGVhNyIsIlx1MGRiZFx1MGQ4Mlx1MGQ5YVx1MGRjZiIsIlx1MGI4N1x1MGJiMlx1MGI5OVx1MGJj'@; put 'ZFx1MGI5NVx1MGJjOCIsIlx1MDYyN1x1MDY0NFx1MDY0NVx1MDYzYVx1MDYzMVx1MDYyOCIsIlx1MDQzY1x1MDQzYVx1MDQzNCIsIlx1MDQzY1x1MDQzZVx1MDQzZCIsIlx1NmZiM1x1OTU4MCIsIlx1NmZiM1x1OTVlOCIsIlx1MDY0NVx1MDY0NFx1MDY0YVx1MDYzM1x1MDY0YVx1MDYyNyIs'@; put 'Ilx1MDYzOVx1MDY0NVx1MDYyN1x1MDY0NiIsIlx1MDY3ZVx1MDYyN1x1MDZhOVx1MDYzM1x1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDY3ZVx1MDYyN1x1MDY0M1x1MDYzM1x1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDY0MVx1MDY0NFx1MDYzM1x1MDYzN1x1MDY0YVx1MDY0NiIsIlx1MDQ0MVx1'@; put 'MDQ0MFx1MDQzMSIsIlx1MDQzZlx1MDQ0MC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0M2VcdTA0NDBcdTA0MzMuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDNlXHUwNDMxXHUwNDQwLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQzZVx1MDQzNC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0'@; put 'NDNcdTA0M2ZcdTA0NDAuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDMwXHUwNDNhLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQ0MFx1MDQ0NCIsIlx1MDY0Mlx1MDYzN1x1MDYzMSIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDYzOVx1MDY0OFx1MDYyZlx1MDY0YVx1MDYyOSIsIlx1MDYyN1x1'@; put 'MDY0NFx1MDYzM1x1MDYzOVx1MDY0OFx1MDYyZlx1MDZjY1x1MDYyOSIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDYzOVx1MDY0OFx1MDYyZlx1MDZjY1x1MDZjMyIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDYzOVx1MDY0OFx1MDYyZlx1MDY0YVx1MDY0NyIsIlx1MDYzM1x1MDY0OFx1MDYyZlx1'@; put 'MDYyN1x1MDY0NiIsIlx1NjViMFx1NTJhMFx1NTc2MSIsIlx1MGI5YVx1MGJiZlx1MGI5OVx1MGJjZFx1MGI5NVx1MGJhYVx1MGJjZFx1MGJhYVx1MGJjMlx1MGJiMFx1MGJjZCIsIlx1MDYzM1x1MDY0OFx1MDYzMVx1MDY0YVx1MDYyOSIsIlx1MDYzM1x1MDY0OFx1MDYzMVx1MDY0YVx1MDYy'@; put 'NyIsIlx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGUyOFx1MGUzNlx1MGUwMVx1MGUyOVx1MGUzMi5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlMThcdTBlMzhcdTBlMjNcdTBlMDFcdTBlMzRcdTBlMDguXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTIzXHUwZTMxXHUwZTEwXHUwZTFhXHUwZTMy'@; put 'XHUwZTI1Llx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGUxN1x1MGUyYlx1MGUzMlx1MGUyMy5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlNDBcdTBlMTlcdTBlNDdcdTBlMTUuXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTJkXHUwZTA3XHUwZTA0XHUwZTRjXHUwZTAxXHUwZTIzLlx1MGU0NFx1'@; put 'MGUxN1x1MGUyMiIsIlx1MDYyYVx1MDY0OFx1MDY0Nlx1MDYzMyIsIlx1NTNmMFx1NzA2MyIsIlx1NTNmMFx1NmU3ZSIsIlx1ODFmYVx1NzA2MyIsIlx1MDQ0M1x1MDQzYVx1MDQ0MCIsIlx1MDYyN1x1MDY0NFx1MDY0YVx1MDY0NVx1MDY0NiIsInh4eCIsInllIiwiY29tLnllIiwiZWR1Lnll'@; put 'IiwiZ292LnllIiwibmV0LnllIiwibWlsLnllIiwib3JnLnllIiwiYWMuemEiLCJhZ3JpYy56YSIsImFsdC56YSIsImNvLnphIiwiZWR1LnphIiwiZ292LnphIiwiZ3JvbmRhci56YSIsImxhdy56YSIsIm1pbC56YSIsIm5ldC56YSIsIm5nby56YSIsIm5pYy56YSIsIm5pcy56YSIsIm5vbS56'@; put 'YSIsIm9yZy56YSIsInNjaG9vbC56YSIsInRtLnphIiwid2ViLnphIiwiem0iLCJhYy56bSIsImJpei56bSIsImNvLnptIiwiY29tLnptIiwiZWR1LnptIiwiZ292LnptIiwiaW5mby56bSIsIm1pbC56bSIsIm5ldC56bSIsIm9yZy56bSIsInNjaC56bSIsInp3IiwiYWMuenciLCJjby56dyIs'@; put 'Imdvdi56dyIsIm1pbC56dyIsIm9yZy56dyIsImFhYSIsImFhcnAiLCJhYmFydGgiLCJhYmIiLCJhYmJvdHQiLCJhYmJ2aWUiLCJhYmMiLCJhYmxlIiwiYWJvZ2FkbyIsImFidWRoYWJpIiwiYWNhZGVteSIsImFjY2VudHVyZSIsImFjY291bnRhbnQiLCJhY2NvdW50YW50cyIsImFjbyIsImFj'@; put 'dG9yIiwiYWRhYyIsImFkcyIsImFkdWx0IiwiYWVnIiwiYWV0bmEiLCJhZmwiLCJhZnJpY2EiLCJhZ2FraGFuIiwiYWdlbmN5IiwiYWlnIiwiYWlyYnVzIiwiYWlyZm9yY2UiLCJhaXJ0ZWwiLCJha2RuIiwiYWxmYXJvbWVvIiwiYWxpYmFiYSIsImFsaXBheSIsImFsbGZpbmFueiIsImFsbHN0'@; put 'YXRlIiwiYWxseSIsImFsc2FjZSIsImFsc3RvbSIsImFtYXpvbiIsImFtZXJpY2FuZXhwcmVzcyIsImFtZXJpY2FuZmFtaWx5IiwiYW1leCIsImFtZmFtIiwiYW1pY2EiLCJhbXN0ZXJkYW0iLCJhbmFseXRpY3MiLCJhbmRyb2lkIiwiYW5xdWFuIiwiYW56IiwiYW9sIiwiYXBhcnRtZW50cyIs'@; put 'ImFwcCIsImFwcGxlIiwiYXF1YXJlbGxlIiwiYXJhYiIsImFyYW1jbyIsImFyY2hpIiwiYXJteSIsImFydCIsImFydGUiLCJhc2RhIiwiYXNzb2NpYXRlcyIsImF0aGxldGEiLCJhdHRvcm5leSIsImF1Y3Rpb24iLCJhdWRpIiwiYXVkaWJsZSIsImF1ZGlvIiwiYXVzcG9zdCIsImF1dGhvciIs'@; put 'ImF1dG8iLCJhdXRvcyIsImF2aWFuY2EiLCJhd3MiLCJheGEiLCJhenVyZSIsImJhYnkiLCJiYWlkdSIsImJhbmFtZXgiLCJiYW5hbmFyZXB1YmxpYyIsImJhbmQiLCJiYW5rIiwiYmFyIiwiYmFyY2Vsb25hIiwiYmFyY2xheWNhcmQiLCJiYXJjbGF5cyIsImJhcmVmb290IiwiYmFyZ2FpbnMi'@; put 'LCJiYXNlYmFsbCIsImJhc2tldGJhbGwiLCJiYXVoYXVzIiwiYmF5ZXJuIiwiYmJjIiwiYmJ0IiwiYmJ2YSIsImJjZyIsImJjbiIsImJlYXRzIiwiYmVhdXR5IiwiYmVlciIsImJlbnRsZXkiLCJiZXJsaW4iLCJiZXN0IiwiYmVzdGJ1eSIsImJldCIsImJoYXJ0aSIsImJpYmxlIiwiYmlkIiwi'@; put 'YmlrZSIsImJpbmciLCJiaW5nbyIsImJpbyIsImJsYWNrIiwiYmxhY2tmcmlkYXkiLCJibG9ja2J1c3RlciIsImJsb2ciLCJibG9vbWJlcmciLCJibHVlIiwiYm1zIiwiYm13IiwiYm5wcGFyaWJhcyIsImJvYXRzIiwiYm9laHJpbmdlciIsImJvZmEiLCJib20iLCJib25kIiwiYm9vIiwiYm9v'@; put 'ayIsImJvb2tpbmciLCJib3NjaCIsImJvc3RpayIsImJvc3RvbiIsImJvdCIsImJvdXRpcXVlIiwiYm94IiwiYnJhZGVzY28iLCJicmlkZ2VzdG9uZSIsImJyb2Fkd2F5IiwiYnJva2VyIiwiYnJvdGhlciIsImJydXNzZWxzIiwiYnVnYXR0aSIsImJ1aWxkIiwiYnVpbGRlcnMiLCJidXNpbmVz'@; put 'cyIsImJ1eSIsImJ1enoiLCJiemgiLCJjYWIiLCJjYWZlIiwiY2FsIiwiY2FsbCIsImNhbHZpbmtsZWluIiwiY2FtIiwiY2FtZXJhIiwiY2FtcCIsImNhbmNlcnJlc2VhcmNoIiwiY2Fub24iLCJjYXBldG93biIsImNhcGl0YWwiLCJjYXBpdGFsb25lIiwiY2FyIiwiY2FyYXZhbiIsImNhcmRz'@; put 'IiwiY2FyZSIsImNhcmVlciIsImNhcmVlcnMiLCJjYXJzIiwiY2FzYSIsImNhc2UiLCJjYXNoIiwiY2FzaW5vIiwiY2F0ZXJpbmciLCJjYXRob2xpYyIsImNiYSIsImNibiIsImNicmUiLCJjYnMiLCJjZW50ZXIiLCJjZW8iLCJjZXJuIiwiY2ZhIiwiY2ZkIiwiY2hhbmVsIiwiY2hhbm5lbCIs'@; put 'ImNoYXJpdHkiLCJjaGFzZSIsImNoYXQiLCJjaGVhcCIsImNoaW50YWkiLCJjaHJpc3RtYXMiLCJjaHJvbWUiLCJjaHVyY2giLCJjaXByaWFuaSIsImNpcmNsZSIsImNpc2NvIiwiY2l0YWRlbCIsImNpdGkiLCJjaXRpYyIsImNpdHkiLCJjaXR5ZWF0cyIsImNsYWltcyIsImNsZWFuaW5nIiwi'@; put 'Y2xpY2siLCJjbGluaWMiLCJjbGluaXF1ZSIsImNsb3RoaW5nIiwiY2xvdWQiLCJjbHViIiwiY2x1Ym1lZCIsImNvYWNoIiwiY29kZXMiLCJjb2ZmZWUiLCJjb2xsZWdlIiwiY29sb2duZSIsImNvbWNhc3QiLCJjb21tYmFuayIsImNvbW11bml0eSIsImNvbXBhbnkiLCJjb21wYXJlIiwiY29t'@; put 'cHV0ZXIiLCJjb21zZWMiLCJjb25kb3MiLCJjb25zdHJ1Y3Rpb24iLCJjb25zdWx0aW5nIiwiY29udGFjdCIsImNvbnRyYWN0b3JzIiwiY29va2luZyIsImNvb2tpbmdjaGFubmVsIiwiY29vbCIsImNvcnNpY2EiLCJjb3VudHJ5IiwiY291cG9uIiwiY291cG9ucyIsImNvdXJzZXMiLCJjcGEi'@; put 'LCJjcmVkaXQiLCJjcmVkaXRjYXJkIiwiY3JlZGl0dW5pb24iLCJjcmlja2V0IiwiY3Jvd24iLCJjcnMiLCJjcnVpc2UiLCJjcnVpc2VzIiwiY3Vpc2luZWxsYSIsImN5bXJ1IiwiY3lvdSIsImRhYnVyIiwiZGFkIiwiZGFuY2UiLCJkYXRhIiwiZGF0ZSIsImRhdGluZyIsImRhdHN1biIsImRh'@; put 'eSIsImRjbGsiLCJkZHMiLCJkZWFsIiwiZGVhbGVyIiwiZGVhbHMiLCJkZWdyZWUiLCJkZWxpdmVyeSIsImRlbGwiLCJkZWxvaXR0ZSIsImRlbHRhIiwiZGVtb2NyYXQiLCJkZW50YWwiLCJkZW50aXN0IiwiZGVzaSIsImRlc2lnbiIsImRldiIsImRobCIsImRpYW1vbmRzIiwiZGlldCIsImRp'@; put 'Z2l0YWwiLCJkaXJlY3QiLCJkaXJlY3RvcnkiLCJkaXNjb3VudCIsImRpc2NvdmVyIiwiZGlzaCIsImRpeSIsImRucCIsImRvY3MiLCJkb2N0b3IiLCJkb2ciLCJkb21haW5zIiwiZG90IiwiZG93bmxvYWQiLCJkcml2ZSIsImR0diIsImR1YmFpIiwiZHVubG9wIiwiZHVwb250IiwiZHVyYmFu'@; put 'IiwiZHZhZyIsImR2ciIsImVhcnRoIiwiZWF0IiwiZWNvIiwiZWRla2EiLCJlZHVjYXRpb24iLCJlbWFpbCIsImVtZXJjayIsImVuZXJneSIsImVuZ2luZWVyIiwiZW5naW5lZXJpbmciLCJlbnRlcnByaXNlcyIsImVwc29uIiwiZXF1aXBtZW50IiwiZXJpY3Nzb24iLCJlcm5pIiwiZXNxIiwi'@; put 'ZXN0YXRlIiwiZXRpc2FsYXQiLCJldXJvdmlzaW9uIiwiZXVzIiwiZXZlbnRzIiwiZXhjaGFuZ2UiLCJleHBlcnQiLCJleHBvc2VkIiwiZXhwcmVzcyIsImV4dHJhc3BhY2UiLCJmYWdlIiwiZmFpbCIsImZhaXJ3aW5kcyIsImZhaXRoIiwiZmFtaWx5IiwiZmFuIiwiZmFucyIsImZhcm0iLCJm'@; put 'YXJtZXJzIiwiZmFzaGlvbiIsImZhc3QiLCJmZWRleCIsImZlZWRiYWNrIiwiZmVycmFyaSIsImZlcnJlcm8iLCJmaWF0IiwiZmlkZWxpdHkiLCJmaWRvIiwiZmlsbSIsImZpbmFsIiwiZmluYW5jZSIsImZpbmFuY2lhbCIsImZpcmUiLCJmaXJlc3RvbmUiLCJmaXJtZGFsZSIsImZpc2giLCJm'@; put 'aXNoaW5nIiwiZml0IiwiZml0bmVzcyIsImZsaWNrciIsImZsaWdodHMiLCJmbGlyIiwiZmxvcmlzdCIsImZsb3dlcnMiLCJmbHkiLCJmb28iLCJmb29kIiwiZm9vZG5ldHdvcmsiLCJmb290YmFsbCIsImZvcmQiLCJmb3JleCIsImZvcnNhbGUiLCJmb3J1bSIsImZvdW5kYXRpb24iLCJmb3gi'@; put 'LCJmcmVlIiwiZnJlc2VuaXVzIiwiZnJsIiwiZnJvZ2FucyIsImZyb250ZG9vciIsImZyb250aWVyIiwiZnRyIiwiZnVqaXRzdSIsImZ1biIsImZ1bmQiLCJmdXJuaXR1cmUiLCJmdXRib2wiLCJmeWkiLCJnYWwiLCJnYWxsZXJ5IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJn'@; put 'YXAiLCJnYXJkZW4iLCJnYXkiLCJnYml6IiwiZ2RuIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZ2VlIiwiZ2lmdCIsImdpZnRzIiwiZ2l2ZXMiLCJnaXZpbmciLCJnbGFzcyIsImdsZSIsImdsb2JhbCIsImdsb2JvIiwiZ21haWwiLCJnbWJoIiwiZ21vIiwiZ214IiwiZ29k'@; put 'YWRkeSIsImdvbGQiLCJnb2xkcG9pbnQiLCJnb2xmIiwiZ29vIiwiZ29vZHllYXIiLCJnb29nIiwiZ29vZ2xlIiwiZ29wIiwiZ290IiwiZ3JhaW5nZXIiLCJncmFwaGljcyIsImdyYXRpcyIsImdyZWVuIiwiZ3JpcGUiLCJncm9jZXJ5IiwiZ3JvdXAiLCJndWFyZGlhbiIsImd1Y2NpIiwiZ3Vn'@; put 'ZSIsImd1aWRlIiwiZ3VpdGFycyIsImd1cnUiLCJoYWlyIiwiaGFtYnVyZyIsImhhbmdvdXQiLCJoYXVzIiwiaGJvIiwiaGRmYyIsImhkZmNiYW5rIiwiaGVhbHRoIiwiaGVhbHRoY2FyZSIsImhlbHAiLCJoZWxzaW5raSIsImhlcmUiLCJoZXJtZXMiLCJoZ3R2IiwiaGlwaG9wIiwiaGlzYW1p'@; put 'dHN1IiwiaGl0YWNoaSIsImhpdiIsImhrdCIsImhvY2tleSIsImhvbGRpbmdzIiwiaG9saWRheSIsImhvbWVkZXBvdCIsImhvbWVnb29kcyIsImhvbWVzIiwiaG9tZXNlbnNlIiwiaG9uZGEiLCJob3JzZSIsImhvc3BpdGFsIiwiaG9zdCIsImhvc3RpbmciLCJob3QiLCJob3RlbGVzIiwiaG90'@; put 'ZWxzIiwiaG90bWFpbCIsImhvdXNlIiwiaG93IiwiaHNiYyIsImh1Z2hlcyIsImh5YXR0IiwiaHl1bmRhaSIsImlibSIsImljYmMiLCJpY2UiLCJpY3UiLCJpZWVlIiwiaWZtIiwiaWthbm8iLCJpbWFtYXQiLCJpbWRiIiwiaW1tbyIsImltbW9iaWxpZW4iLCJpbmMiLCJpbmR1c3RyaWVzIiwi'@; put 'aW5maW5pdGkiLCJpbmciLCJpbmsiLCJpbnN0aXR1dGUiLCJpbnN1cmFuY2UiLCJpbnN1cmUiLCJpbnRlcm5hdGlvbmFsIiwiaW50dWl0IiwiaW52ZXN0bWVudHMiLCJpcGlyYW5nYSIsImlyaXNoIiwiaXNtYWlsaSIsImlzdCIsImlzdGFuYnVsIiwiaXRhdSIsIml0diIsImphZ3VhciIsImph'@; put 'dmEiLCJqY2IiLCJqZWVwIiwiamV0enQiLCJqZXdlbHJ5IiwiamlvIiwiamxsIiwiam1wIiwiam5qIiwiam9idXJnIiwiam90Iiwiam95IiwianBtb3JnYW4iLCJqcHJzIiwianVlZ29zIiwianVuaXBlciIsImthdWZlbiIsImtkZGkiLCJrZXJyeWhvdGVscyIsImtlcnJ5bG9naXN0aWNzIiwi'@; put 'a2Vycnlwcm9wZXJ0aWVzIiwia2ZoIiwia2lhIiwia2lkcyIsImtpbSIsImtpbmRlciIsImtpbmRsZSIsImtpdGNoZW4iLCJraXdpIiwia29lbG4iLCJrb21hdHN1Iiwia29zaGVyIiwia3BtZyIsImtwbiIsImtyZCIsImtyZWQiLCJrdW9rZ3JvdXAiLCJreW90byIsImxhY2FpeGEiLCJsYW1i'@; put 'b3JnaGluaSIsImxhbWVyIiwibGFuY2FzdGVyIiwibGFuY2lhIiwibGFuZCIsImxhbmRyb3ZlciIsImxhbnhlc3MiLCJsYXNhbGxlIiwibGF0IiwibGF0aW5vIiwibGF0cm9iZSIsImxhdyIsImxhd3llciIsImxkcyIsImxlYXNlIiwibGVjbGVyYyIsImxlZnJhayIsImxlZ2FsIiwibGVnbyIs'@; put 'ImxleHVzIiwibGdidCIsImxpZGwiLCJsaWZlIiwibGlmZWluc3VyYW5jZSIsImxpZmVzdHlsZSIsImxpZ2h0aW5nIiwibGlrZSIsImxpbGx5IiwibGltaXRlZCIsImxpbW8iLCJsaW5jb2xuIiwibGluZGUiLCJsaW5rIiwibGlwc3kiLCJsaXZlIiwibGl2aW5nIiwibGxjIiwibGxwIiwibG9h'@; put 'biIsImxvYW5zIiwibG9ja2VyIiwibG9jdXMiLCJsb2Z0IiwibG9sIiwibG9uZG9uIiwibG90dGUiLCJsb3R0byIsImxvdmUiLCJscGwiLCJscGxmaW5hbmNpYWwiLCJsdGQiLCJsdGRhIiwibHVuZGJlY2siLCJsdXhlIiwibHV4dXJ5IiwibWFjeXMiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29u'@; put 'IiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwibWFya2V0cyIsIm1hcnJpb3R0IiwibWFyc2hhbGxzIiwibWFzZXJhdGkiLCJtYXR0ZWwiLCJtYmEiLCJtY2tpbnNleSIsIm1lZCIsIm1lZGlhIiwibWVldCIsIm1lbGJvdXJu'@; put 'ZSIsIm1lbWUiLCJtZW1vcmlhbCIsIm1lbiIsIm1lbnUiLCJtZXJja21zZCIsIm1pYW1pIiwibWljcm9zb2Z0IiwibWluaSIsIm1pbnQiLCJtaXQiLCJtaXRzdWJpc2hpIiwibWxiIiwibWxzIiwibW1hIiwibW9iaWxlIiwibW9kYSIsIm1vZSIsIm1vaSIsIm1vbSIsIm1vbmFzaCIsIm1vbmV5'@; put 'IiwibW9uc3RlciIsIm1vcm1vbiIsIm1vcnRnYWdlIiwibW9zY293IiwibW90byIsIm1vdG9yY3ljbGVzIiwibW92IiwibW92aWUiLCJtc2QiLCJtdG4iLCJtdHIiLCJtdXNpYyIsIm11dHVhbCIsIm5hYiIsIm5hZ295YSIsIm5hdHVyYSIsIm5hdnkiLCJuYmEiLCJuZWMiLCJuZXRiYW5rIiwi'@; put 'bmV0ZmxpeCIsIm5ldHdvcmsiLCJuZXVzdGFyIiwibmV3IiwibmV3cyIsIm5leHQiLCJuZXh0ZGlyZWN0IiwibmV4dXMiLCJuZmwiLCJuZ28iLCJuaGsiLCJuaWNvIiwibmlrZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJub2tpYSIsIm5vcnRod2VzdGVybm11dHVhbCIs'@; put 'Im5vcnRvbiIsIm5vdyIsIm5vd3J1eiIsIm5vd3R2IiwibnJhIiwibnJ3IiwibnR0IiwibnljIiwib2JpIiwib2JzZXJ2ZXIiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGRuYXZ5Iiwib2xsbyIsIm9tZWdhIiwib25lIiwib25nIiwib25sIiwib25saW5l'@; put 'Iiwib29vIiwib3BlbiIsIm9yYWNsZSIsIm9yYW5nZSIsIm9yZ2FuaWMiLCJvcmlnaW5zIiwib3Nha2EiLCJvdHN1a2EiLCJvdHQiLCJvdmgiLCJwYWdlIiwicGFuYXNvbmljIiwicGFyaXMiLCJwYXJzIiwicGFydG5lcnMiLCJwYXJ0cyIsInBhcnR5IiwicGFzc2FnZW5zIiwicGF5IiwicGNj'@; put 'dyIsInBldCIsInBmaXplciIsInBoYXJtYWN5IiwicGhkIiwicGhpbGlwcyIsInBob25lIiwicGhvdG8iLCJwaG90b2dyYXBoeSIsInBob3RvcyIsInBoeXNpbyIsInBpY3MiLCJwaWN0ZXQiLCJwaWN0dXJlcyIsInBpZCIsInBpbiIsInBpbmciLCJwaW5rIiwicGlvbmVlciIsInBpenphIiwi'@; put 'cGxhY2UiLCJwbGF5IiwicGxheXN0YXRpb24iLCJwbHVtYmluZyIsInBsdXMiLCJwbmMiLCJwb2hsIiwicG9rZXIiLCJwb2xpdGllIiwicG9ybiIsInByYW1lcmljYSIsInByYXhpIiwicHJlc3MiLCJwcmltZSIsInByb2QiLCJwcm9kdWN0aW9ucyIsInByb2YiLCJwcm9ncmVzc2l2ZSIsInBy'@; put 'b21vIiwicHJvcGVydGllcyIsInByb3BlcnR5IiwicHJvdGVjdGlvbiIsInBydSIsInBydWRlbnRpYWwiLCJwdWIiLCJwd2MiLCJxcG9uIiwicXVlYmVjIiwicXVlc3QiLCJyYWNpbmciLCJyYWRpbyIsInJlYWQiLCJyZWFsZXN0YXRlIiwicmVhbHRvciIsInJlYWx0eSIsInJlY2lwZXMiLCJy'@; put 'ZWQiLCJyZWRzdG9uZSIsInJlZHVtYnJlbGxhIiwicmVoYWIiLCJyZWlzZSIsInJlaXNlbiIsInJlaXQiLCJyZWxpYW5jZSIsInJlbiIsInJlbnQiLCJyZW50YWxzIiwicmVwYWlyIiwicmVwb3J0IiwicmVwdWJsaWNhbiIsInJlc3QiLCJyZXN0YXVyYW50IiwicmV2aWV3IiwicmV2aWV3cyIs'@; put 'InJleHJvdGgiLCJyaWNoIiwicmljaGFyZGxpIiwicmljb2giLCJyaWwiLCJyaW8iLCJyaXAiLCJyb2NoZXIiLCJyb2NrcyIsInJvZGVvIiwicm9nZXJzIiwicm9vbSIsInJzdnAiLCJydWdieSIsInJ1aHIiLCJydW4iLCJyd2UiLCJyeXVreXUiLCJzYWFybGFuZCIsInNhZmUiLCJzYWZldHki'@; put 'LCJzYWt1cmEiLCJzYWxlIiwic2Fsb24iLCJzYW1zY2x1YiIsInNhbXN1bmciLCJzYW5kdmlrIiwic2FuZHZpa2Nvcm9tYW50Iiwic2Fub2ZpIiwic2FwIiwic2FybCIsInNhcyIsInNhdmUiLCJzYXhvIiwic2JpIiwic2JzIiwic2NhIiwic2NiIiwic2NoYWVmZmxlciIsInNjaG1pZHQiLCJz'@; put 'Y2hvbGFyc2hpcHMiLCJzY2hvb2wiLCJzY2h1bGUiLCJzY2h3YXJ6Iiwic2NpZW5jZSIsInNjb3QiLCJzZWFyY2giLCJzZWF0Iiwic2VjdXJlIiwic2VjdXJpdHkiLCJzZWVrIiwic2VsZWN0Iiwic2VuZXIiLCJzZXJ2aWNlcyIsInNlcyIsInNldmVuIiwic2V3Iiwic2V4Iiwic2V4eSIsInNm'@; put 'ciIsInNoYW5ncmlsYSIsInNoYXJwIiwic2hhdyIsInNoZWxsIiwic2hpYSIsInNoaWtzaGEiLCJzaG9lcyIsInNob3AiLCJzaG9wcGluZyIsInNob3VqaSIsInNob3ciLCJzaG93dGltZSIsInNpbGsiLCJzaW5hIiwic2luZ2xlcyIsInNpdGUiLCJza2kiLCJza2luIiwic2t5Iiwic2t5cGUi'@; put 'LCJzbGluZyIsInNtYXJ0Iiwic21pbGUiLCJzbmNmIiwic29jY2VyIiwic29jaWFsIiwic29mdGJhbmsiLCJzb2Z0d2FyZSIsInNvaHUiLCJzb2xhciIsInNvbHV0aW9ucyIsInNvbmciLCJzb255Iiwic295Iiwic3BhIiwic3BhY2UiLCJzcG9ydCIsInNwb3QiLCJzcmwiLCJzdGFkYSIsInN0'@; put 'YXBsZXMiLCJzdGFyIiwic3RhdGViYW5rIiwic3RhdGVmYXJtIiwic3RjIiwic3RjZ3JvdXAiLCJzdG9ja2hvbG0iLCJzdG9yYWdlIiwic3RvcmUiLCJzdHJlYW0iLCJzdHVkaW8iLCJzdHVkeSIsInN0eWxlIiwic3Vja3MiLCJzdXBwbGllcyIsInN1cHBseSIsInN1cHBvcnQiLCJzdXJmIiwi'@; put 'c3VyZ2VyeSIsInN1enVraSIsInN3YXRjaCIsInN3aXNzIiwic3lkbmV5Iiwic3lzdGVtcyIsInRhYiIsInRhaXBlaSIsInRhbGsiLCJ0YW9iYW8iLCJ0YXJnZXQiLCJ0YXRhbW90b3JzIiwidGF0YXIiLCJ0YXR0b28iLCJ0YXgiLCJ0YXhpIiwidGNpIiwidGRrIiwidGVhbSIsInRlY2giLCJ0'@; put 'ZWNobm9sb2d5IiwidGVtYXNlayIsInRlbm5pcyIsInRldmEiLCJ0aGQiLCJ0aGVhdGVyIiwidGhlYXRyZSIsInRpYWEiLCJ0aWNrZXRzIiwidGllbmRhIiwidGlmZmFueSIsInRpcHMiLCJ0aXJlcyIsInRpcm9sIiwidGptYXh4IiwidGp4IiwidGttYXh4IiwidG1hbGwiLCJ0b2RheSIsInRv'@; put 'a3lvIiwidG9vbHMiLCJ0b3AiLCJ0b3JheSIsInRvc2hpYmEiLCJ0b3RhbCIsInRvdXJzIiwidG93biIsInRveW90YSIsInRveXMiLCJ0cmFkZSIsInRyYWRpbmciLCJ0cmFpbmluZyIsInRyYXZlbCIsInRyYXZlbGNoYW5uZWwiLCJ0cmF2ZWxlcnMiLCJ0cmF2ZWxlcnNpbnN1cmFuY2UiLCJ0'@; put 'cnVzdCIsInRydiIsInR1YmUiLCJ0dWkiLCJ0dW5lcyIsInR1c2h1IiwidHZzIiwidWJhbmsiLCJ1YnMiLCJ1bmljb20iLCJ1bml2ZXJzaXR5IiwidW5vIiwidW9sIiwidXBzIiwidmFjYXRpb25zIiwidmFuYSIsInZhbmd1YXJkIiwidmVnYXMiLCJ2ZW50dXJlcyIsInZlcmlzaWduIiwidmVy'@; put 'c2ljaGVydW5nIiwidmV0IiwidmlhamVzIiwidmlkZW8iLCJ2aWciLCJ2aWtpbmciLCJ2aWxsYXMiLCJ2aW4iLCJ2aXAiLCJ2aXJnaW4iLCJ2aXNhIiwidmlzaW9uIiwidml2YSIsInZpdm8iLCJ2bGFhbmRlcmVuIiwidm9ka2EiLCJ2b2xrc3dhZ2VuIiwidm9sdm8iLCJ2b3RlIiwidm90aW5n'@; put 'Iiwidm90byIsInZveWFnZSIsInZ1ZWxvcyIsIndhbGVzIiwid2FsbWFydCIsIndhbHRlciIsIndhbmciLCJ3YW5nZ291Iiwid2F0Y2giLCJ3YXRjaGVzIiwid2VhdGhlciIsIndlYXRoZXJjaGFubmVsIiwid2ViY2FtIiwid2ViZXIiLCJ3ZWJzaXRlIiwid2VkZGluZyIsIndlaWJvIiwid2Vp'@; put 'ciIsIndob3N3aG8iLCJ3aWVuIiwid2lraSIsIndpbGxpYW1oaWxsIiwid2luIiwid2luZG93cyIsIndpbmUiLCJ3aW5uZXJzIiwid21lIiwid29sdGVyc2tsdXdlciIsIndvb2RzaWRlIiwid29yayIsIndvcmtzIiwid29ybGQiLCJ3b3ciLCJ3dGMiLCJ3dGYiLCJ4Ym94IiwieGVyb3giLCJ4'@; put 'ZmluaXR5IiwieGlodWFuIiwieGluIiwiXHUwOTE1XHUwOTQ5XHUwOTJlIiwiXHUzMGJiXHUzMGZjXHUzMGViIiwiXHU0ZjViXHU1YzcxIiwiXHU2MTQ4XHU1NTg0IiwiXHU5NmM2XHU1NmUyIiwiXHU1NzI4XHU3ZWJmIiwiXHU3MGI5XHU3NzBiIiwiXHUwZTA0XHUwZTJkXHUwZTIxIiwiXHU1'@; put 'MTZiXHU1MzY2IiwiXHUwNjQ1XHUwNjQ4XHUwNjQyXHUwNjM5IiwiXHU1MTZjXHU3NmNhIiwiXHU1MTZjXHU1M2Y4IiwiXHU5OTk5XHU2ODNjXHU5MWNjXHU2MmM5IiwiXHU3ZjUxXHU3YWQ5IiwiXHU3OWZiXHU1MmE4IiwiXHU2MjExXHU3MjMxXHU0ZjYwIiwiXHUwNDNjXHUwNDNlXHUwNDQx'@; put 'XHUwNDNhXHUwNDMyXHUwNDMwIiwiXHUwNDNhXHUwNDMwXHUwNDQyXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDNhIiwiXHUwNDNlXHUwNDNkXHUwNDNiXHUwNDMwXHUwNDM5XHUwNDNkIiwiXHUwNDQxXHUwNDMwXHUwNDM5XHUwNDQyIiwiXHU4MDU0XHU5MDFhIiwiXHUwNWU3XHUwNWQ1XHUwNWRk'@; put 'IiwiXHU2NWY2XHU1YzFhIiwiXHU1ZmFlXHU1MzVhIiwiXHU2ZGUxXHU5YTZjXHU5NTIxIiwiXHUzMGQ1XHUzMGExXHUzMGMzXHUzMGI3XHUzMGU3XHUzMGYzIiwiXHUwNDNlXHUwNDQwXHUwNDMzIiwiXHUwOTI4XHUwOTQ3XHUwOTFmIiwiXHUzMGI5XHUzMGM4XHUzMGEyIiwiXHUzMGEyXHUz'@; put 'MGRlXHUzMGJlXHUzMGYzIiwiXHVjMGJjXHVjMTMxIiwiXHU1NTQ2XHU2ODA3IiwiXHU1NTQ2XHU1ZTk3IiwiXHU1NTQ2XHU1N2NlIiwiXHUwNDM0XHUwNDM1XHUwNDQyXHUwNDM4IiwiXHUzMGRkXHUzMGE0XHUzMGYzXHUzMGM4IiwiXHU2NWIwXHU5NWZiIiwiXHU1YmI2XHU5NmZiIiwiXHUw'@; put 'NjQzXHUwNjQ4XHUwNjQ1IiwiXHU0ZTJkXHU2NTg3XHU3ZjUxIiwiXHU0ZTJkXHU0ZmUxIiwiXHU1YTMxXHU0ZTUwIiwiXHU4YzM3XHU2YjRjIiwiXHU5NmZiXHU4YTBhXHU3NmM4XHU3OWQxIiwiXHU4ZDJkXHU3MjY5IiwiXHUzMGFmXHUzMGU5XHUzMGE2XHUzMGM5IiwiXHU5MDFhXHU4Y2E5'@; put 'IiwiXHU3ZjUxXHU1ZTk3IiwiXHUwOTM4XHUwOTAyXHUwOTE3XHUwOTIwXHUwOTI4IiwiXHU5OTEwXHU1Mzg1IiwiXHU3ZjUxXHU3ZWRjIiwiXHUwNDNhXHUwNDNlXHUwNDNjIiwiXHU0ZTlhXHU5YTZjXHU5MDBhIiwiXHU4YmZhXHU1N2ZhXHU0ZTlhIiwiXHU5OGRmXHU1NGMxIiwiXHU5OGRl'@; put 'XHU1MjI5XHU2ZDY2IiwiXHU2MjRiXHU2NzNhIiwiXHUwNjI3XHUwNjMxXHUwNjI3XHUwNjQ1XHUwNjQzXHUwNjQ4IiwiXHUwNjI3XHUwNjQ0XHUwNjM5XHUwNjQ0XHUwNjRhXHUwNjI3XHUwNjQ2IiwiXHUwNjI3XHUwNjJhXHUwNjM1XHUwNjI3XHUwNjQ0XHUwNjI3XHUwNjJhIiwiXHUwNjI4'@; put 'XHUwNjI3XHUwNjMyXHUwNjI3XHUwNjMxIiwiXHUwNjI3XHUwNjI4XHUwNjQ4XHUwNjM4XHUwNjI4XHUwNjRhIiwiXHUwNjQzXHUwNjI3XHUwNjJiXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQzIiwiXHUwNjQ3XHUwNjQ1XHUwNjMxXHUwNjI3XHUwNjQ3IiwiXHViMmY3XHVjZWY0IiwiXHU2NTNm'@; put 'XHU1ZTljIiwiXHUwNjM0XHUwNjI4XHUwNjQzXHUwNjI5IiwiXHUwNjI4XHUwNjRhXHUwNjJhXHUwNjQzIiwiXHUwNjM5XHUwNjMxXHUwNjI4IiwiXHU2NzNhXHU2Nzg0IiwiXHU3ZWM0XHU3ZWM3XHU2NzNhXHU2Nzg0IiwiXHU1MDY1XHU1ZWI3IiwiXHU2MmRiXHU4MDU4IiwiXHUwNDQwXHUw'@; put 'NDQzXHUwNDQxIiwiXHU1OTI3XHU2MmZmIiwiXHUzMDdmXHUzMDkzXHUzMDZhIiwiXHUzMGIwXHUzMGZjXHUzMGIwXHUzMGViIiwiXHU0ZTE2XHU3NTRjIiwiXHU2NmY4XHU3YzRkIiwiXHU3ZjUxXHU1NzQwIiwiXHViMmY3XHViMTM3IiwiXHUzMGIzXHUzMGUwIiwiXHU1OTI5XHU0ZTNiXHU2'@; put 'NTU5IiwiXHU2ZTM4XHU2MjBmIiwidmVybVx4ZjZnZW5zYmVyYXRlciIsInZlcm1ceGY2Z2Vuc2JlcmF0dW5nIiwiXHU0ZjAxXHU0ZTFhIiwiXHU0ZmUxXHU2MDZmIiwiXHU1NjA5XHU5MWNjXHU1OTI3XHU5MTUyXHU1ZTk3IiwiXHU1NjA5XHU5MWNjIiwiXHU1ZTdmXHU0ZTFjIiwiXHU2NTNm'@; put 'XHU1MmExIiwieHl6IiwieWFjaHRzIiwieWFob28iLCJ5YW1heHVuIiwieWFuZGV4IiwieW9kb2Jhc2hpIiwieW9nYSIsInlva29oYW1hIiwieW91IiwieW91dHViZSIsInl1biIsInphcHBvcyIsInphcmEiLCJ6ZXJvIiwiemlwIiwiem9uZSIsInp1ZXJpY2giLCJjYy51YSIsImluZi51YSIs'@; put 'Imx0ZC51YSIsIjYxMS50byIsImdyYXBob3gudXMiLCIqLmRldmNkbmFjY2Vzc28uY29tIiwiYWRvYmVhZW1jbG91ZC5jb20iLCIqLmRldi5hZG9iZWFlbWNsb3VkLmNvbSIsImhseC5saXZlIiwiYWRvYmVhZW1jbG91ZC5uZXQiLCJobHgucGFnZSIsImhseDMucGFnZSIsImJlZXAucGwiLCJh'@; put 'aXJraXRhcHBzLmNvbSIsImFpcmtpdGFwcHMtYXUuY29tIiwiYWlya2l0YXBwcy5ldSIsImFpdmVuY2xvdWQuY29tIiwiYmFyc3kuY2EiLCIqLmNvbXB1dGUuZXN0YXRlIiwiKi5hbGNlcy5uZXR3b3JrIiwia2Fzc2VydmVyLmNvbSIsImFsdGVydmlzdGEub3JnIiwiYWx3YXlzZGF0YS5uZXQi'@; put 'LCJjbG91ZGZyb250Lm5ldCIsIiouY29tcHV0ZS5hbWF6b25hd3MuY29tIiwiKi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsIiouY29tcHV0ZS5hbWF6b25hd3MuY29tLmNuIiwidXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJjbi1ub3J0aC0xLmViLmFtYXpvbmF3cy5jb20uY24iLCJjbi1u'@; put 'b3J0aHdlc3QtMS5lYi5hbWF6b25hd3MuY29tLmNuIiwiZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1ub3J0aGVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImFwLW5vcnRoZWFzdC0yLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtbm9ydGhlYXN0LTMuZWxhc3RpY2JlYW5zdGFsay5j'@; put 'b20iLCJhcC1zb3V0aC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtc291dGhlYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1zb3V0aGVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImNhLWNlbnRyYWwtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LWNlbnRyYWwtMS5l'@; put 'bGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMy5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInNhLWVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWVhc3QtMS5l'@; put 'bGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWdvdi13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb20iLCIqLmVsYi5h'@; put 'bWF6b25hd3MuY29tIiwiKi5lbGIuYW1hem9uYXdzLmNvbS5jbiIsImF3c2dsb2JhbGFjY2VsZXJhdG9yLmNvbSIsInMzLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFwLXNvdXRo'@; put 'LTEuYW1hem9uYXdzLmNvbSIsInMzLWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWV1LXdlc3QtMS5h'@; put 'bWF6b25hd3MuY29tIiwiczMtZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLWV4dGVybmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMtdXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtc2EtZWFzdC0xLmFtYXpvbmF3cy5j'@; put 'b20iLCJzMy11cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy11cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMuYXAt'@; put 'c291dGgtMS5hbWF6b25hd3MuY29tIiwiczMuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiczMuY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmV1LXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMuZXUtd2VzdC0zLmFt'@; put 'YXpvbmF3cy5jb20iLCJzMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtc291dGgtMS5hbWF6b25hd3Mu'@; put 'Y29tIiwiczMuZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS1jZW50cmFsLTEuYW1h'@; put 'em9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5zYS1lYXN0LTEuYW1hem9uYXdzLmNv'@; put 'bSIsInMzLmR1YWxzdGFjay51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtdXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0'@; put 'ZS11cy13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUt'@; put 'ZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXNhLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmNhLWNlbnRyYWwt'@; put 'MS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS51cy1lYXN0LTIuYW1hem9uYXdzLmNv'@; put 'bSIsInQzbDNwMHJ0Lm5ldCIsInRlbGUuYW11bmUub3JnIiwiYXBpZ2VlLmlvIiwic2lpaXRlcy5jb20iLCJhcHBzcGFjZWhvc3RlZC5jb20iLCJhcHBzcGFjZXVzZXJjb250ZW50LmNvbSIsImFwcHVkby5uZXQiLCJvbi1hcHRpYmxlLmNvbSIsInVzZXIuYXNlaW5ldC5uZS5qcCIsImd2LnZj'@; put 'IiwiZC5ndi52YyIsInVzZXIucGFydHkuZXVzIiwicGltaWVudGEub3JnIiwicG9pdnJvbi5vcmciLCJwb3RhZ2VyLm9yZyIsInN3ZWV0cGVwcGVyLm9yZyIsIm15YXN1c3Rvci5jb20iLCJjZG4ucHJvZC5hdGxhc3NpYW4tZGV2Lm5ldCIsInRyYW5zbGF0ZWQucGFnZSIsIm15ZnJpdHoubmV0'@; put 'Iiwib25hdnN0YWNrLm5ldCIsIiouYXdkZXYuY2EiLCIqLmFkdmlzb3Iud3MiLCJlY29tbWVyY2Utc2hvcC5wbCIsImItZGF0YS5pbyIsImJhY2twbGFuZWFwcC5pbyIsImJhbGVuYS1kZXZpY2VzLmNvbSIsInJzLmJhIiwiKi5iYW56YWkuY2xvdWQiLCJhcHAuYmFuemFpY2xvdWQuaW8iLCIq'@; put 'LmJhY2t5YXJkcy5iYW56YWljbG91ZC5pbyIsImJhc2UuZWMiLCJvZmZpY2lhbC5lYyIsImJ1eXNob3AuanAiLCJmYXNoaW9uc3RvcmUuanAiLCJoYW5kY3JhZnRlZC5qcCIsImthd2FpaXNob3AuanAiLCJzdXBlcnNhbGUuanAiLCJ0aGVzaG9wLmpwIiwic2hvcHNlbGVjdC5uZXQiLCJiYXNl'@; put 'LnNob3AiLCIqLmJlZ2V0LmFwcCIsImJldGFpbmFib3guY29tIiwiYm5yLmxhIiwiYml0YnVja2V0LmlvIiwiYmxhY2tiYXVkY2RuLm5ldCIsIm9mLmplIiwiYmx1ZWJpdGUuaW8iLCJib29tbGEubmV0IiwiYm91dGlyLmNvbSIsImJveGZ1c2UuaW8iLCJzcXVhcmU3LmNoIiwiYnBsYWNlZC5j'@; put 'b20iLCJicGxhY2VkLmRlIiwic3F1YXJlNy5kZSIsImJwbGFjZWQubmV0Iiwic3F1YXJlNy5uZXQiLCJzaG9wLmJyZW5kbHkucnMiLCJicm93c2Vyc2FmZXR5bWFyay5pbyIsInVrMC5iaWd2LmlvIiwiZGguYnl0ZW1hcmsuY28udWsiLCJ2bS5ieXRlbWFyay5jby51ayIsImNhZmpzLmNvbSIs'@; put 'Im15Y2QuZXUiLCJkcnIuYWMiLCJ1d3UuYWkiLCJjYXJyZC5jbyIsImNyZC5jbyIsImp1Lm1wIiwiYWUub3JnIiwiYnIuY29tIiwiY24uY29tIiwiY29tLmRlIiwiY29tLnNlIiwiZGUuY29tIiwiZXUuY29tIiwiZ2IubmV0IiwiaHUubmV0IiwianAubmV0IiwianBuLmNvbSIsIm1leC5jb20i'@; put 'LCJydS5jb20iLCJzYS5jb20iLCJzZS5uZXQiLCJ1ay5jb20iLCJ1ay5uZXQiLCJ1cy5jb20iLCJ6YS5ieiIsInphLmNvbSIsImFyLmNvbSIsImh1LmNvbSIsImtyLmNvbSIsIm5vLmNvbSIsInFjLmNvbSIsInV5LmNvbSIsImFmcmljYS5jb20iLCJnci5jb20iLCJpbi5uZXQiLCJ3ZWIuaW4i'@; put 'LCJ1cy5vcmciLCJjby5jb20iLCJhdXMuYmFza2V0YmFsbCIsIm56LmJhc2tldGJhbGwiLCJyYWRpby5hbSIsInJhZGlvLmZtIiwiYy5sYSIsImNlcnRtZ3Iub3JnIiwiY3gudWEiLCJkaXNjb3Vyc2UuZ3JvdXAiLCJkaXNjb3Vyc2UudGVhbSIsImNsZXZlcmFwcHMuaW8iLCJjbGVyay5hcHAi'@; put 'LCJjbGVya3N0YWdlLmFwcCIsIioubGNsLmRldiIsIioubGNsc3RhZ2UuZGV2IiwiKi5zdGcuZGV2IiwiKi5zdGdzdGFnZS5kZXYiLCJjbGlja3Jpc2luZy5uZXQiLCJjNjYubWUiLCJjbG91ZDY2LndzIiwiY2xvdWQ2Ni56b25lIiwiamRldmNsb3VkLmNvbSIsIndwZGV2Y2xvdWQuY29tIiwi'@; put 'Y2xvdWRhY2Nlc3MuaG9zdCIsImZyZWVzaXRlLmhvc3QiLCJjbG91ZGFjY2Vzcy5uZXQiLCJjbG91ZGNvbnRyb2xsZWQuY29tIiwiY2xvdWRjb250cm9sYXBwLmNvbSIsIiouY2xvdWRlcmEuc2l0ZSIsInBhZ2VzLmRldiIsInRyeWNsb3VkZmxhcmUuY29tIiwid29ya2Vycy5kZXYiLCJ3bmV4'@; put 'dC5hcHAiLCJjby5jYSIsIioub3RhcC5jbyIsImNvLmN6IiwiYy5jZG43Ny5vcmciLCJjZG43Ny1zc2wubmV0Iiwici5jZG43Ny5uZXQiLCJyc2MuY2RuNzcub3JnIiwic3NsLm9yaWdpbi5jZG43Ny1zZWN1cmUub3JnIiwiY2xvdWRucy5hc2lhIiwiY2xvdWRucy5iaXoiLCJjbG91ZG5zLmNs'@; put 'dWIiLCJjbG91ZG5zLmNjIiwiY2xvdWRucy5ldSIsImNsb3VkbnMuaW4iLCJjbG91ZG5zLmluZm8iLCJjbG91ZG5zLm9yZyIsImNsb3VkbnMucHJvIiwiY2xvdWRucy5wdyIsImNsb3VkbnMudXMiLCJjbnB5LmdkbiIsImNvZGViZXJnLnBhZ2UiLCJjby5ubCIsImNvLm5vIiwid2ViaG9zdGlu'@; put 'Zy5iZSIsImhvc3RpbmctY2x1c3Rlci5ubCIsImFjLnJ1IiwiZWR1LnJ1IiwiZ292LnJ1IiwiaW50LnJ1IiwibWlsLnJ1IiwidGVzdC5ydSIsImR5bi5jb3NpZG5zLmRlIiwiZHluYW1pc2NoZXMtZG5zLmRlIiwiZG5zdXBkYXRlci5kZSIsImludGVybmV0LWRucy5kZSIsImwtby1nLWktbi5k'@; put 'ZSIsImR5bmFtaWMtZG5zLmluZm8iLCJmZXN0ZS1pcC5uZXQiLCJrbngtc2VydmVyLm5ldCIsInN0YXRpYy1hY2Nlc3MubmV0IiwicmVhbG0uY3oiLCIqLmNyeXB0b25vbWljLm5ldCIsImN1cGNha2UuaXMiLCJjdXJ2LmRldiIsIiouY3VzdG9tZXItb2NpLmNvbSIsIioub2NpLmN1c3RvbWVy'@; put 'LW9jaS5jb20iLCIqLm9jcC5jdXN0b21lci1vY2kuY29tIiwiKi5vY3MuY3VzdG9tZXItb2NpLmNvbSIsImN5b24ubGluayIsImN5b24uc2l0ZSIsImZud2suc2l0ZSIsImZvbGlvbmV0d29yay5zaXRlIiwicGxhdGZvcm0wLmFwcCIsImRhcGxpZS5tZSIsImxvY2FsaG9zdC5kYXBsaWUubWUi'@; put 'LCJkYXR0b2xvY2FsLmNvbSIsImRhdHRvcmVsYXkuY29tIiwiZGF0dG93ZWIuY29tIiwibXlkYXR0by5jb20iLCJkYXR0b2xvY2FsLm5ldCIsIm15ZGF0dG8ubmV0IiwiYml6LmRrIiwiY28uZGsiLCJmaXJtLmRrIiwicmVnLmRrIiwic3RvcmUuZGsiLCJkeW5kbnMuZGFwcG5vZGUuaW8iLCIq'@; put 'LmRhcHBzLmVhcnRoIiwiKi5ienouZGFwcHMuZWFydGgiLCJidWlsdHdpdGhkYXJrLmNvbSIsImRlbW8uZGF0YWRldGVjdC5jb20iLCJpbnN0YW5jZS5kYXRhZGV0ZWN0LmNvbSIsImVkZ2VzdGFjay5tZSIsImRkbnM1LmNvbSIsImRlYmlhbi5uZXQiLCJkZW5vLmRldiIsImRlbm8tc3RhZ2lu'@; put 'Zy5kZXYiLCJkZWR5bi5pbyIsImRldGEuYXBwIiwiZGV0YS5kZXYiLCIqLnJzcy5teS5pZCIsIiouZGloZXIuc29sdXRpb25zIiwiZGlzY29yZHNheXMuY29tIiwiZGlzY29yZHNlei5jb20iLCJqb3ppLmJpeiIsImRuc2hvbWUuZGUiLCJvbmxpbmUudGgiLCJzaG9wLnRoIiwiZHJheWRkbnMu'@; put 'Y29tIiwic2hvcGFyZW5hLnBsIiwiZHJlYW1ob3N0ZXJzLmNvbSIsIm15ZHJvYm8uY29tIiwiZHJ1ZC5pbyIsImRydWQudXMiLCJkdWNrZG5zLm9yZyIsImJpcC5zaCIsImJpdGJyaWRnZS5uZXQiLCJkeS5maSIsInR1bmsub3JnIiwiZHluZG5zLWF0LWhvbWUuY29tIiwiZHluZG5zLWF0LXdv'@; put 'cmsuY29tIiwiZHluZG5zLWJsb2cuY29tIiwiZHluZG5zLWZyZWUuY29tIiwiZHluZG5zLWhvbWUuY29tIiwiZHluZG5zLWlwLmNvbSIsImR5bmRucy1tYWlsLmNvbSIsImR5bmRucy1vZmZpY2UuY29tIiwiZHluZG5zLXBpY3MuY29tIiwiZHluZG5zLXJlbW90ZS5jb20iLCJkeW5kbnMtc2Vy'@; put 'dmVyLmNvbSIsImR5bmRucy13ZWIuY29tIiwiZHluZG5zLXdpa2kuY29tIiwiZHluZG5zLXdvcmsuY29tIiwiZHluZG5zLmJpeiIsImR5bmRucy5pbmZvIiwiZHluZG5zLm9yZyIsImR5bmRucy50diIsImF0LWJhbmQtY2FtcC5uZXQiLCJhdGguY3giLCJiYXJyZWwtb2Yta25vd2xlZGdlLmlu'@; put 'Zm8iLCJiYXJyZWxsLW9mLWtub3dsZWRnZS5pbmZvIiwiYmV0dGVyLXRoYW4udHYiLCJibG9nZG5zLmNvbSIsImJsb2dkbnMubmV0IiwiYmxvZ2Rucy5vcmciLCJibG9nc2l0ZS5vcmciLCJib2xkbHlnb2luZ25vd2hlcmUub3JnIiwiYnJva2UtaXQubmV0IiwiYnV5c2hvdXNlcy5uZXQiLCJj'@; put 'ZWNoaXJlLmNvbSIsImRuc2FsaWFzLmNvbSIsImRuc2FsaWFzLm5ldCIsImRuc2FsaWFzLm9yZyIsImRuc2Rvam8uY29tIiwiZG5zZG9qby5uZXQiLCJkbnNkb2pvLm9yZyIsImRvZXMtaXQubmV0IiwiZG9lc250ZXhpc3QuY29tIiwiZG9lc250ZXhpc3Qub3JnIiwiZG9udGV4aXN0LmNvbSIs'@; put 'ImRvbnRleGlzdC5uZXQiLCJkb250ZXhpc3Qub3JnIiwiZG9vbWRucy5jb20iLCJkb29tZG5zLm9yZyIsImR2cmRucy5vcmciLCJkeW4tby1zYXVyLmNvbSIsImR5bmFsaWFzLmNvbSIsImR5bmFsaWFzLm5ldCIsImR5bmFsaWFzLm9yZyIsImR5bmF0aG9tZS5uZXQiLCJkeW5kbnMud3MiLCJl'@; put 'bmRvZmludGVybmV0Lm5ldCIsImVuZG9maW50ZXJuZXQub3JnIiwiZW5kb2Z0aGVpbnRlcm5ldC5vcmciLCJlc3QtYS1sYS1tYWlzb24uY29tIiwiZXN0LWEtbGEtbWFzaW9uLmNvbSIsImVzdC1sZS1wYXRyb24uY29tIiwiZXN0LW1vbi1ibG9ndWV1ci5jb20iLCJmb3ItYmV0dGVyLmJpeiIs'@; put 'ImZvci1tb3JlLmJpeiIsImZvci1vdXIuaW5mbyIsImZvci1zb21lLmJpeiIsImZvci10aGUuYml6IiwiZm9yZ290Lmhlci5uYW1lIiwiZm9yZ290Lmhpcy5uYW1lIiwiZnJvbS1hay5jb20iLCJmcm9tLWFsLmNvbSIsImZyb20tYXIuY29tIiwiZnJvbS1hei5uZXQiLCJmcm9tLWNhLmNvbSIs'@; put 'ImZyb20tY28ubmV0IiwiZnJvbS1jdC5jb20iLCJmcm9tLWRjLmNvbSIsImZyb20tZGUuY29tIiwiZnJvbS1mbC5jb20iLCJmcm9tLWdhLmNvbSIsImZyb20taGkuY29tIiwiZnJvbS1pYS5jb20iLCJmcm9tLWlkLmNvbSIsImZyb20taWwuY29tIiwiZnJvbS1pbi5jb20iLCJmcm9tLWtzLmNv'@; put 'bSIsImZyb20ta3kuY29tIiwiZnJvbS1sYS5uZXQiLCJmcm9tLW1hLmNvbSIsImZyb20tbWQuY29tIiwiZnJvbS1tZS5vcmciLCJmcm9tLW1pLmNvbSIsImZyb20tbW4uY29tIiwiZnJvbS1tby5jb20iLCJmcm9tLW1zLmNvbSIsImZyb20tbXQuY29tIiwiZnJvbS1uYy5jb20iLCJmcm9tLW5k'@; put 'LmNvbSIsImZyb20tbmUuY29tIiwiZnJvbS1uaC5jb20iLCJmcm9tLW5qLmNvbSIsImZyb20tbm0uY29tIiwiZnJvbS1udi5jb20iLCJmcm9tLW55Lm5ldCIsImZyb20tb2guY29tIiwiZnJvbS1vay5jb20iLCJmcm9tLW9yLmNvbSIsImZyb20tcGEuY29tIiwiZnJvbS1wci5jb20iLCJmcm9t'@; put 'LXJpLmNvbSIsImZyb20tc2MuY29tIiwiZnJvbS1zZC5jb20iLCJmcm9tLXRuLmNvbSIsImZyb20tdHguY29tIiwiZnJvbS11dC5jb20iLCJmcm9tLXZhLmNvbSIsImZyb20tdnQuY29tIiwiZnJvbS13YS5jb20iLCJmcm9tLXdpLmNvbSIsImZyb20td3YuY29tIiwiZnJvbS13eS5jb20iLCJm'@; put 'dHBhY2Nlc3MuY2MiLCJmdWV0dGVydGRhc25ldHouZGUiLCJnYW1lLWhvc3Qub3JnIiwiZ2FtZS1zZXJ2ZXIuY2MiLCJnZXRteWlwLmNvbSIsImdldHMtaXQubmV0IiwiZ28uZHluZG5zLm9yZyIsImdvdGRucy5jb20iLCJnb3RkbnMub3JnIiwiZ3Jva3MtdGhlLmluZm8iLCJncm9rcy10aGlz'@; put 'LmluZm8iLCJoYW0tcmFkaW8tb3AubmV0IiwiaGVyZS1mb3ItbW9yZS5pbmZvIiwiaG9iYnktc2l0ZS5jb20iLCJob2JieS1zaXRlLm9yZyIsImhvbWUuZHluZG5zLm9yZyIsImhvbWVkbnMub3JnIiwiaG9tZWZ0cC5uZXQiLCJob21lZnRwLm9yZyIsImhvbWVpcC5uZXQiLCJob21lbGludXgu'@; put 'Y29tIiwiaG9tZWxpbnV4Lm5ldCIsImhvbWVsaW51eC5vcmciLCJob21ldW5peC5jb20iLCJob21ldW5peC5uZXQiLCJob21ldW5peC5vcmciLCJpYW1hbGxhbWEuY29tIiwiaW4tdGhlLWJhbmQubmV0IiwiaXMtYS1hbmFyY2hpc3QuY29tIiwiaXMtYS1ibG9nZ2VyLmNvbSIsImlzLWEtYm9v'@; put 'a2tlZXBlci5jb20iLCJpcy1hLWJydWluc2Zhbi5vcmciLCJpcy1hLWJ1bGxzLWZhbi5jb20iLCJpcy1hLWNhbmRpZGF0ZS5vcmciLCJpcy1hLWNhdGVyZXIuY29tIiwiaXMtYS1jZWx0aWNzZmFuLm9yZyIsImlzLWEtY2hlZi5jb20iLCJpcy1hLWNoZWYubmV0IiwiaXMtYS1jaGVmLm9yZyIs'@; put 'ImlzLWEtY29uc2VydmF0aXZlLmNvbSIsImlzLWEtY3BhLmNvbSIsImlzLWEtY3ViaWNsZS1zbGF2ZS5jb20iLCJpcy1hLWRlbW9jcmF0LmNvbSIsImlzLWEtZGVzaWduZXIuY29tIiwiaXMtYS1kb2N0b3IuY29tIiwiaXMtYS1maW5hbmNpYWxhZHZpc29yLmNvbSIsImlzLWEtZ2Vlay5jb20i'@; put 'LCJpcy1hLWdlZWsubmV0IiwiaXMtYS1nZWVrLm9yZyIsImlzLWEtZ3JlZW4uY29tIiwiaXMtYS1ndXJ1LmNvbSIsImlzLWEtaGFyZC13b3JrZXIuY29tIiwiaXMtYS1odW50ZXIuY29tIiwiaXMtYS1rbmlnaHQub3JnIiwiaXMtYS1sYW5kc2NhcGVyLmNvbSIsImlzLWEtbGF3eWVyLmNvbSIs'@; put 'ImlzLWEtbGliZXJhbC5jb20iLCJpcy1hLWxpYmVydGFyaWFuLmNvbSIsImlzLWEtbGludXgtdXNlci5vcmciLCJpcy1hLWxsYW1hLmNvbSIsImlzLWEtbXVzaWNpYW4uY29tIiwiaXMtYS1uYXNjYXJmYW4uY29tIiwiaXMtYS1udXJzZS5jb20iLCJpcy1hLXBhaW50ZXIuY29tIiwiaXMtYS1w'@; put 'YXRzZmFuLm9yZyIsImlzLWEtcGVyc29uYWx0cmFpbmVyLmNvbSIsImlzLWEtcGhvdG9ncmFwaGVyLmNvbSIsImlzLWEtcGxheWVyLmNvbSIsImlzLWEtcmVwdWJsaWNhbi5jb20iLCJpcy1hLXJvY2tzdGFyLmNvbSIsImlzLWEtc29jaWFsaXN0LmNvbSIsImlzLWEtc294ZmFuLm9yZyIsImlz'@; put 'LWEtc3R1ZGVudC5jb20iLCJpcy1hLXRlYWNoZXIuY29tIiwiaXMtYS10ZWNoaWUuY29tIiwiaXMtYS10aGVyYXBpc3QuY29tIiwiaXMtYW4tYWNjb3VudGFudC5jb20iLCJpcy1hbi1hY3Rvci5jb20iLCJpcy1hbi1hY3RyZXNzLmNvbSIsImlzLWFuLWFuYXJjaGlzdC5jb20iLCJpcy1hbi1h'@; put 'cnRpc3QuY29tIiwiaXMtYW4tZW5naW5lZXIuY29tIiwiaXMtYW4tZW50ZXJ0YWluZXIuY29tIiwiaXMtYnkudXMiLCJpcy1jZXJ0aWZpZWQuY29tIiwiaXMtZm91bmQub3JnIiwiaXMtZ29uZS5jb20iLCJpcy1pbnRvLWFuaW1lLmNvbSIsImlzLWludG8tY2Fycy5jb20iLCJpcy1pbnRvLWNh'@; put 'cnRvb25zLmNvbSIsImlzLWludG8tZ2FtZXMuY29tIiwiaXMtbGVldC5jb20iLCJpcy1sb3N0Lm9yZyIsImlzLW5vdC1jZXJ0aWZpZWQuY29tIiwiaXMtc2F2ZWQub3JnIiwiaXMtc2xpY2suY29tIiwiaXMtdWJlcmxlZXQuY29tIiwiaXMtdmVyeS1iYWQub3JnIiwiaXMtdmVyeS1ldmlsLm9y'@; put 'ZyIsImlzLXZlcnktZ29vZC5vcmciLCJpcy12ZXJ5LW5pY2Uub3JnIiwiaXMtdmVyeS1zd2VldC5vcmciLCJpcy13aXRoLXRoZWJhbmQuY29tIiwiaXNhLWdlZWsuY29tIiwiaXNhLWdlZWsubmV0IiwiaXNhLWdlZWsub3JnIiwiaXNhLWhvY2tleW51dC5jb20iLCJpc3NtYXJ0ZXJ0aGFueW91'@; put 'LmNvbSIsImlzdGVpbmdlZWsuZGUiLCJpc3RtZWluLmRlIiwia2lja3MtYXNzLm5ldCIsImtpY2tzLWFzcy5vcmciLCJrbm93c2l0YWxsLmluZm8iLCJsYW5kLTQtc2FsZS51cyIsImxlYnRpbW5ldHouZGUiLCJsZWl0dW5nc2VuLmRlIiwibGlrZXMtcGllLmNvbSIsImxpa2VzY2FuZHkuY29t'@; put 'IiwibWVyc2VpbmUubnUiLCJtaW5lLm51IiwibWlzY29uZnVzZWQub3JnIiwibXlwZXRzLndzIiwibXlwaG90b3MuY2MiLCJuZWF0LXVybC5jb20iLCJvZmZpY2Utb24tdGhlLm5ldCIsIm9uLXRoZS13ZWIudHYiLCJwb2R6b25lLm5ldCIsInBvZHpvbmUub3JnIiwicmVhZG15YmxvZy5vcmci'@; put 'LCJzYXZlcy10aGUtd2hhbGVzLmNvbSIsInNjcmFwcGVyLXNpdGUubmV0Iiwic2NyYXBwaW5nLmNjIiwic2VsZmlwLmJpeiIsInNlbGZpcC5jb20iLCJzZWxmaXAuaW5mbyIsInNlbGZpcC5uZXQiLCJzZWxmaXAub3JnIiwic2VsbHMtZm9yLWxlc3MuY29tIiwic2VsbHMtZm9yLXUuY29tIiwi'@; put 'c2VsbHMtaXQubmV0Iiwic2VsbHN5b3VyaG9tZS5vcmciLCJzZXJ2ZWJicy5jb20iLCJzZXJ2ZWJicy5uZXQiLCJzZXJ2ZWJicy5vcmciLCJzZXJ2ZWZ0cC5uZXQiLCJzZXJ2ZWZ0cC5vcmciLCJzZXJ2ZWdhbWUub3JnIiwic2hhY2tuZXQubnUiLCJzaW1wbGUtdXJsLmNvbSIsInNwYWNlLXRv'@; put 'LXJlbnQuY29tIiwic3R1ZmYtNC1zYWxlLm9yZyIsInN0dWZmLTQtc2FsZS51cyIsInRlYWNoZXMteW9nYS5jb20iLCJ0aHJ1aGVyZS5uZXQiLCJ0cmFldW10Z2VyYWRlLmRlIiwid2ViaG9wLmJpeiIsIndlYmhvcC5pbmZvIiwid2ViaG9wLm5ldCIsIndlYmhvcC5vcmciLCJ3b3JzZS10aGFu'@; put 'LnR2Iiwid3JpdGVzdGhpc2Jsb2cuY29tIiwiZGRuc3MuZGUiLCJkeW4uZGRuc3MuZGUiLCJkeW5kbnMuZGRuc3MuZGUiLCJkeW5kbnMxLmRlIiwiZHluLWlwMjQuZGUiLCJob21lLXdlYnNlcnZlci5kZSIsImR5bi5ob21lLXdlYnNlcnZlci5kZSIsIm15aG9tZS1zZXJ2ZXIuZGUiLCJkZG5z'@; put 'cy5vcmciLCJkZWZpbmltYS5uZXQiLCJkZWZpbmltYS5pbyIsIm9uZGlnaXRhbG9jZWFuLmFwcCIsIiouZGlnaXRhbG9jZWFuc3BhY2VzLmNvbSIsImJjaS5kbnN0cmFjZS5wcm8iLCJkZG5zZnJlZS5jb20iLCJkZG5zZ2Vlay5jb20iLCJnaWl6ZS5jb20iLCJnbGVlemUuY29tIiwia296b3cu'@; put 'Y29tIiwibG9zZXlvdXJpcC5jb20iLCJvb2d1eS5jb20iLCJ0aGV3b3JrcGMuY29tIiwiY2FzYWNhbS5uZXQiLCJkeW51Lm5ldCIsImFjY2Vzc2NhbS5vcmciLCJjYW1kdnIub3JnIiwiZnJlZWRkbnMub3JnIiwibXl3aXJlLm9yZyIsIndlYnJlZGlyZWN0Lm9yZyIsIm15ZGRucy5yb2NrcyIs'@; put 'ImJsb2dzaXRlLnh5eiIsImR5bnY2Lm5ldCIsImU0LmN6IiwiZWVyby5vbmxpbmUiLCJlZXJvLXN0YWdlLm9ubGluZSIsImVsZW1lbnRvci5jbG91ZCIsImVsZW1lbnRvci5jb29sIiwiZW4tcm9vdC5mciIsIm15dHVsZWFwLmNvbSIsInR1bGVhcC1wYXJ0bmVycy5jb20iLCJlbmNyLmFwcCIs'@; put 'ImVuY29yZWFwaS5jb20iLCJvbnJlZC5vbmUiLCJzdGFnaW5nLm9ucmVkLm9uZSIsImV1LmVuY293YXkuY2xvdWQiLCJldS5vcmciLCJhbC5ldS5vcmciLCJhc3NvLmV1Lm9yZyIsImF0LmV1Lm9yZyIsImF1LmV1Lm9yZyIsImJlLmV1Lm9yZyIsImJnLmV1Lm9yZyIsImNhLmV1Lm9yZyIsImNk'@; put 'LmV1Lm9yZyIsImNoLmV1Lm9yZyIsImNuLmV1Lm9yZyIsImN5LmV1Lm9yZyIsImN6LmV1Lm9yZyIsImRlLmV1Lm9yZyIsImRrLmV1Lm9yZyIsImVkdS5ldS5vcmciLCJlZS5ldS5vcmciLCJlcy5ldS5vcmciLCJmaS5ldS5vcmciLCJmci5ldS5vcmciLCJnci5ldS5vcmciLCJoci5ldS5vcmci'@; put 'LCJodS5ldS5vcmciLCJpZS5ldS5vcmciLCJpbC5ldS5vcmciLCJpbi5ldS5vcmciLCJpbnQuZXUub3JnIiwiaXMuZXUub3JnIiwiaXQuZXUub3JnIiwianAuZXUub3JnIiwia3IuZXUub3JnIiwibHQuZXUub3JnIiwibHUuZXUub3JnIiwibHYuZXUub3JnIiwibWMuZXUub3JnIiwibWUuZXUu'@; put 'b3JnIiwibWsuZXUub3JnIiwibXQuZXUub3JnIiwibXkuZXUub3JnIiwibmV0LmV1Lm9yZyIsIm5nLmV1Lm9yZyIsIm5sLmV1Lm9yZyIsIm5vLmV1Lm9yZyIsIm56LmV1Lm9yZyIsInBhcmlzLmV1Lm9yZyIsInBsLmV1Lm9yZyIsInB0LmV1Lm9yZyIsInEtYS5ldS5vcmciLCJyby5ldS5vcmci'@; put 'LCJydS5ldS5vcmciLCJzZS5ldS5vcmciLCJzaS5ldS5vcmciLCJzay5ldS5vcmciLCJ0ci5ldS5vcmciLCJ1ay5ldS5vcmciLCJ1cy5ldS5vcmciLCJldXJvZGlyLnJ1IiwiZXUtMS5ldmVubm9kZS5jb20iLCJldS0yLmV2ZW5ub2RlLmNvbSIsImV1LTMuZXZlbm5vZGUuY29tIiwiZXUtNC5l'@; put 'dmVubm9kZS5jb20iLCJ1cy0xLmV2ZW5ub2RlLmNvbSIsInVzLTIuZXZlbm5vZGUuY29tIiwidXMtMy5ldmVubm9kZS5jb20iLCJ1cy00LmV2ZW5ub2RlLmNvbSIsInR3bWFpbC5jYyIsInR3bWFpbC5uZXQiLCJ0d21haWwub3JnIiwibXltYWlsZXIuY29tLnR3IiwidXJsLnR3Iiwib25mYWJy'@; put 'aWNhLmNvbSIsImFwcHMuZmJzYnguY29tIiwicnUubmV0IiwiYWR5Z2V5YS5ydSIsImJhc2hraXJpYS5ydSIsImJpci5ydSIsImNiZy5ydSIsImNvbS5ydSIsImRhZ2VzdGFuLnJ1IiwiZ3Jvem55LnJ1Iiwia2FsbXlraWEucnUiLCJrdXN0YW5haS5ydSIsIm1hcmluZS5ydSIsIm1vcmRvdmlh'@; put 'LnJ1IiwibXNrLnJ1IiwibXl0aXMucnUiLCJuYWxjaGlrLnJ1Iiwibm92LnJ1IiwicHlhdGlnb3Jzay5ydSIsInNwYi5ydSIsInZsYWRpa2F2a2F6LnJ1IiwidmxhZGltaXIucnUiLCJhYmtoYXppYS5zdSIsImFkeWdleWEuc3UiLCJha3R5dWJpbnNrLnN1IiwiYXJraGFuZ2Vsc2suc3UiLCJh'@; put 'cm1lbmlhLnN1IiwiYXNoZ2FiYWQuc3UiLCJhemVyYmFpamFuLnN1IiwiYmFsYXNob3Yuc3UiLCJiYXNoa2lyaWEuc3UiLCJicnlhbnNrLnN1IiwiYnVraGFyYS5zdSIsImNoaW1rZW50LnN1IiwiZGFnZXN0YW4uc3UiLCJlYXN0LWthemFraHN0YW4uc3UiLCJleG5ldC5zdSIsImdlb3JnaWEu'@; put 'c3UiLCJncm96bnkuc3UiLCJpdmFub3ZvLnN1IiwiamFtYnlsLnN1Iiwia2FsbXlraWEuc3UiLCJrYWx1Z2Euc3UiLCJrYXJhY29sLnN1Iiwia2FyYWdhbmRhLnN1Iiwia2FyZWxpYS5zdSIsImtoYWthc3NpYS5zdSIsImtyYXNub2Rhci5zdSIsImt1cmdhbi5zdSIsImt1c3RhbmFpLnN1Iiwi'@; put 'bGVudWcuc3UiLCJtYW5neXNobGFrLnN1IiwibW9yZG92aWEuc3UiLCJtc2suc3UiLCJtdXJtYW5zay5zdSIsIm5hbGNoaWsuc3UiLCJuYXZvaS5zdSIsIm5vcnRoLWthemFraHN0YW4uc3UiLCJub3Yuc3UiLCJvYm5pbnNrLnN1IiwicGVuemEuc3UiLCJwb2tyb3Zzay5zdSIsInNvY2hpLnN1'@; put 'Iiwic3BiLnN1IiwidGFzaGtlbnQuc3UiLCJ0ZXJtZXouc3UiLCJ0b2dsaWF0dGkuc3UiLCJ0cm9pdHNrLnN1IiwidHNlbGlub2dyYWQuc3UiLCJ0dWxhLnN1IiwidHV2YS5zdSIsInZsYWRpa2F2a2F6LnN1IiwidmxhZGltaXIuc3UiLCJ2b2xvZ2RhLnN1IiwiY2hhbm5lbHNkdnIubmV0Iiwi'@; put 'dS5jaGFubmVsc2R2ci5uZXQiLCJlZGdlY29tcHV0ZS5hcHAiLCJmYXN0bHktdGVycmFyaXVtLmNvbSIsImZhc3RseWxiLm5ldCIsIm1hcC5mYXN0bHlsYi5uZXQiLCJmcmVldGxzLmZhc3RseS5uZXQiLCJtYXAuZmFzdGx5Lm5ldCIsImEucHJvZC5mYXN0bHkubmV0IiwiZ2xvYmFsLnByb2Qu'@; put 'ZmFzdGx5Lm5ldCIsImEuc3NsLmZhc3RseS5uZXQiLCJiLnNzbC5mYXN0bHkubmV0IiwiZ2xvYmFsLnNzbC5mYXN0bHkubmV0IiwiZmFzdHZwcy1zZXJ2ZXIuY29tIiwiZmFzdHZwcy5ob3N0IiwibXlmYXN0Lmhvc3QiLCJmYXN0dnBzLnNpdGUiLCJteWZhc3Quc3BhY2UiLCJmZWRvcmFpbmZy'@; put 'YWNsb3VkLm9yZyIsImZlZG9yYXBlb3BsZS5vcmciLCJjbG91ZC5mZWRvcmFwcm9qZWN0Lm9yZyIsImFwcC5vcy5mZWRvcmFwcm9qZWN0Lm9yZyIsImFwcC5vcy5zdGcuZmVkb3JhcHJvamVjdC5vcmciLCJjb25uLnVrIiwiY29wcm8udWsiLCJob3NwLnVrIiwibXlkb2Jpc3MuY29tIiwiZmgt'@; put 'bXVlbnN0ZXIuaW8iLCJmaWxlZ2Vhci5tZSIsImZpbGVnZWFyLWF1Lm1lIiwiZmlsZWdlYXItZGUubWUiLCJmaWxlZ2Vhci1nYi5tZSIsImZpbGVnZWFyLWllLm1lIiwiZmlsZWdlYXItanAubWUiLCJmaWxlZ2Vhci1zZy5tZSIsImZpcmViYXNlYXBwLmNvbSIsImZpcmV3ZWIuYXBwIiwiZmxh'@; put 'cC5pZCIsIm9uZmxhc2hkcml2ZS5hcHAiLCJmbGRydi5jb20iLCJmbHkuZGV2IiwiZWRnZWFwcC5uZXQiLCJzaHcuaW8iLCJmbHlubmhvc3RpbmcubmV0IiwiZm9yZ2VibG9ja3MuY29tIiwiaWQuZm9yZ2Vyb2NrLmlvIiwiZnJhbWVyLmFwcCIsImZyYW1lcmNhbnZhcy5jb20iLCIqLmZydXNr'@; put 'eS5kZSIsInJhdnBhZ2UuY28uaWwiLCIwZS52YyIsImZyZWVib3gtb3MuY29tIiwiZnJlZWJveG9zLmNvbSIsImZieC1vcy5mciIsImZieG9zLmZyIiwiZnJlZWJveC1vcy5mciIsImZyZWVib3hvcy5mciIsImZyZWVkZXNrdG9wLm9yZyIsImZyZWVteWlwLmNvbSIsIndpZW4uZnVua2ZldWVy'@; put 'LmF0IiwiKi5mdXR1cmVjbXMuYXQiLCIqLmV4LmZ1dHVyZWNtcy5hdCIsIiouaW4uZnV0dXJlY21zLmF0IiwiZnV0dXJlaG9zdGluZy5hdCIsImZ1dHVyZW1haWxpbmcuYXQiLCIqLmV4Lm9ydHNpbmZvLmF0IiwiKi5rdW5kZW4ub3J0c2luZm8uYXQiLCIqLnN0YXRpY3MuY2xvdWQiLCJpbmRl'@; put 'cGVuZGVudC1jb21taXNzaW9uLnVrIiwiaW5kZXBlbmRlbnQtaW5xdWVzdC51ayIsImluZGVwZW5kZW50LWlucXVpcnkudWsiLCJpbmRlcGVuZGVudC1wYW5lbC51ayIsImluZGVwZW5kZW50LXJldmlldy51ayIsInB1YmxpYy1pbnF1aXJ5LnVrIiwicm95YWwtY29tbWlzc2lvbi51ayIsImNh'@; put 'bXBhaWduLmdvdi51ayIsInNlcnZpY2UuZ292LnVrIiwiYXBpLmdvdi51ayIsImdlaGlybi5uZS5qcCIsInVzZXJjb250ZW50LmpwIiwiZ2VudGFwcHMuY29tIiwiZ2VudGxlbnRhcGlzLmNvbSIsImxhYi5tcyIsImNkbi1lZGdlcy5uZXQiLCJnaG9zdC5pbyIsImdzai5ieiIsImdpdGh1YnVz'@; put 'ZXJjb250ZW50LmNvbSIsImdpdGh1YnByZXZpZXcuZGV2IiwiZ2l0aHViLmlvIiwiZ2l0bGFiLmlvIiwiZ2l0YXBwLnNpIiwiZ2l0cGFnZS5zaSIsImdsaXRjaC5tZSIsIm5vZy5jb21tdW5pdHkiLCJjby5ybyIsInNob3Aucm8iLCJsb2xpcG9wLmlvIiwiYW5ncnkuanAiLCJiYWJ5Ymx1ZS5q'@; put 'cCIsImJhYnltaWxrLmpwIiwiYmFja2Ryb3AuanAiLCJiYW1iaW5hLmpwIiwiYml0dGVyLmpwIiwiYmx1c2guanAiLCJib28uanAiLCJib3kuanAiLCJib3lmcmllbmQuanAiLCJidXQuanAiLCJjYW5keXBvcC5qcCIsImNhcG9vLmpwIiwiY2F0Zm9vZC5qcCIsImNoZWFwLmpwIiwiY2hpY2Fw'@; put 'cGEuanAiLCJjaGlsbG91dC5qcCIsImNoaXBzLmpwIiwiY2hvd2Rlci5qcCIsImNodS5qcCIsImNpYW8uanAiLCJjb2NvdHRlLmpwIiwiY29vbGJsb2cuanAiLCJjcmFua3kuanAiLCJjdXRlZ2lybC5qcCIsImRhYS5qcCIsImRlY2EuanAiLCJkZWNpLmpwIiwiZGlnaWNrLmpwIiwiZWdvaXNt'@; put 'LmpwIiwiZmFrZWZ1ci5qcCIsImZlbS5qcCIsImZsaWVyLmpwIiwiZmxvcHB5LmpwIiwiZm9vbC5qcCIsImZyZW5jaGtpc3MuanAiLCJnaXJsZnJpZW5kLmpwIiwiZ2lybHkuanAiLCJnbG9vbXkuanAiLCJnb25uYS5qcCIsImdyZWF0ZXIuanAiLCJoYWNjYS5qcCIsImhlYXZ5LmpwIiwiaGVy'@; put 'LmpwIiwiaGloby5qcCIsImhpcHB5LmpwIiwiaG9seS5qcCIsImh1bmdyeS5qcCIsImljdXJ1cy5qcCIsIml0aWdvLmpwIiwiamVsbHliZWFuLmpwIiwia2lraXJhcmEuanAiLCJraWxsLmpwIiwia2lsby5qcCIsImt1cm9uLmpwIiwibGl0dGxlc3Rhci5qcCIsImxvbGlwb3BtYy5qcCIsImxv'@; put 'bGl0YXB1bmsuanAiLCJsb21vLmpwIiwibG92ZXBvcC5qcCIsImxvdmVzaWNrLmpwIiwibWFpbi5qcCIsIm1vZHMuanAiLCJtb25kLmpwIiwibW9uZ29saWFuLmpwIiwibW9vLmpwIiwibmFtYXN0ZS5qcCIsIm5pa2l0YS5qcCIsIm5vYnVzaGkuanAiLCJub29yLmpwIiwib29wcy5qcCIsInBh'@; put 'cmFsbGVsLmpwIiwicGFyYXNpdGUuanAiLCJwZWNvcmkuanAiLCJwZWV3ZWUuanAiLCJwZW5uZS5qcCIsInBlcHBlci5qcCIsInBlcm1hLmpwIiwicGlnYm9hdC5qcCIsInBpbm9rby5qcCIsInB1bnl1LmpwIiwicHVwdS5qcCIsInB1c3N5Y2F0LmpwIiwicHlhLmpwIiwicmFpbmRyb3AuanAi'@; put 'LCJyZWFkeW1hZGUuanAiLCJzYWRpc3QuanAiLCJzY2hvb2xidXMuanAiLCJzZWNyZXQuanAiLCJzdGFiYS5qcCIsInN0cmlwcGVyLmpwIiwic3ViLmpwIiwic3VubnlkYXkuanAiLCJ0aGljay5qcCIsInRvbmtvdHN1LmpwIiwidW5kZXIuanAiLCJ1cHBlci5qcCIsInZlbHZldC5qcCIsInZl'@; put 'cnNlLmpwIiwidmVyc3VzLmpwIiwidml2aWFuLmpwIiwid2F0c29uLmpwIiwid2VibGlrZS5qcCIsIndoaXRlc25vdy5qcCIsInpvbWJpZS5qcCIsImhldGVtbC5uZXQiLCJjbG91ZGFwcHMuZGlnaXRhbCIsImxvbmRvbi5jbG91ZGFwcHMuZGlnaXRhbCIsInB5bW50LnVrIiwiaG9tZW9mZmlj'@; put 'ZS5nb3YudWsiLCJyby5pbSIsImdvaXAuZGUiLCJydW4uYXBwIiwiYS5ydW4uYXBwIiwid2ViLmFwcCIsIiouMGVtbS5jb20iLCJhcHBzcG90LmNvbSIsIiouci5hcHBzcG90LmNvbSIsImNvZGVzcG90LmNvbSIsImdvb2dsZWFwaXMuY29tIiwiZ29vZ2xlY29kZS5jb20iLCJwYWdlc3BlZWRt'@; put 'b2JpbGl6ZXIuY29tIiwicHVibGlzaHByb3h5LmNvbSIsIndpdGhnb29nbGUuY29tIiwid2l0aHlvdXR1YmUuY29tIiwiKi5nYXRld2F5LmRldiIsImNsb3VkLmdvb2ciLCJ0cmFuc2xhdGUuZ29vZyIsIioudXNlcmNvbnRlbnQuZ29vZyIsImNsb3VkZnVuY3Rpb25zLm5ldCIsImJsb2dzcG90'@; put 'LmFlIiwiYmxvZ3Nwb3QuYWwiLCJibG9nc3BvdC5hbSIsImJsb2dzcG90LmJhIiwiYmxvZ3Nwb3QuYmUiLCJibG9nc3BvdC5iZyIsImJsb2dzcG90LmJqIiwiYmxvZ3Nwb3QuY2EiLCJibG9nc3BvdC5jZiIsImJsb2dzcG90LmNoIiwiYmxvZ3Nwb3QuY2wiLCJibG9nc3BvdC5jby5hdCIsImJs'@; put 'b2dzcG90LmNvLmlkIiwiYmxvZ3Nwb3QuY28uaWwiLCJibG9nc3BvdC5jby5rZSIsImJsb2dzcG90LmNvLm56IiwiYmxvZ3Nwb3QuY28udWsiLCJibG9nc3BvdC5jby56YSIsImJsb2dzcG90LmNvbSIsImJsb2dzcG90LmNvbS5hciIsImJsb2dzcG90LmNvbS5hdSIsImJsb2dzcG90LmNvbS5i'@; put 'ciIsImJsb2dzcG90LmNvbS5ieSIsImJsb2dzcG90LmNvbS5jbyIsImJsb2dzcG90LmNvbS5jeSIsImJsb2dzcG90LmNvbS5lZSIsImJsb2dzcG90LmNvbS5lZyIsImJsb2dzcG90LmNvbS5lcyIsImJsb2dzcG90LmNvbS5tdCIsImJsb2dzcG90LmNvbS5uZyIsImJsb2dzcG90LmNvbS50ciIs'@; put 'ImJsb2dzcG90LmNvbS51eSIsImJsb2dzcG90LmN2IiwiYmxvZ3Nwb3QuY3oiLCJibG9nc3BvdC5kZSIsImJsb2dzcG90LmRrIiwiYmxvZ3Nwb3QuZmkiLCJibG9nc3BvdC5mciIsImJsb2dzcG90LmdyIiwiYmxvZ3Nwb3QuaGsiLCJibG9nc3BvdC5ociIsImJsb2dzcG90Lmh1IiwiYmxvZ3Nw'@; put 'b3QuaWUiLCJibG9nc3BvdC5pbiIsImJsb2dzcG90LmlzIiwiYmxvZ3Nwb3QuaXQiLCJibG9nc3BvdC5qcCIsImJsb2dzcG90LmtyIiwiYmxvZ3Nwb3QubGkiLCJibG9nc3BvdC5sdCIsImJsb2dzcG90Lmx1IiwiYmxvZ3Nwb3QubWQiLCJibG9nc3BvdC5tayIsImJsb2dzcG90Lm1yIiwiYmxv'@; put 'Z3Nwb3QubXgiLCJibG9nc3BvdC5teSIsImJsb2dzcG90Lm5sIiwiYmxvZ3Nwb3Qubm8iLCJibG9nc3BvdC5wZSIsImJsb2dzcG90LnB0IiwiYmxvZ3Nwb3QucWEiLCJibG9nc3BvdC5yZSIsImJsb2dzcG90LnJvIiwiYmxvZ3Nwb3QucnMiLCJibG9nc3BvdC5ydSIsImJsb2dzcG90LnNlIiwi'@; put 'YmxvZ3Nwb3Quc2ciLCJibG9nc3BvdC5zaSIsImJsb2dzcG90LnNrIiwiYmxvZ3Nwb3Quc24iLCJibG9nc3BvdC50ZCIsImJsb2dzcG90LnR3IiwiYmxvZ3Nwb3QudWciLCJibG9nc3BvdC52biIsImdvdXBpbGUuZnIiLCJnb3YubmwiLCJhd3NtcHBsLmNvbSIsImdceGZjbnN0aWdiZXN0ZWxs'@; put 'ZW4uZGUiLCJnXHhmY25zdGlnbGllZmVybi5kZSIsImZpbi5jaSIsImZyZWUuaHIiLCJjYWEubGkiLCJ1YS5ycyIsImNvbmYuc2UiLCJocy56b25lIiwiaHMucnVuIiwiaGFzaGJhbmcuc2giLCJoYXN1cmEuYXBwIiwiaGFzdXJhLWFwcC5pbyIsInBhZ2VzLml0LmhzLWhlaWxicm9ubi5kZSIs'@; put 'ImhlcGZvcmdlLm9yZyIsImhlcm9rdWFwcC5jb20iLCJoZXJva3Vzc2wuY29tIiwicmF2ZW5kYi5jbG91ZCIsIm15cmF2ZW5kYi5jb20iLCJyYXZlbmRiLmNvbW11bml0eSIsInJhdmVuZGIubWUiLCJkZXZlbG9wbWVudC5ydW4iLCJyYXZlbmRiLnJ1biIsImhvbWVza2xlcC5wbCIsInNlY2Fh'@; put 'cy5oayIsImhvcGxpeC5zaG9wIiwib3J4LmJpeiIsImJpei5nbCIsImNvbC5uZyIsImZpcm0ubmciLCJnZW4ubmciLCJsdGQubmciLCJuZ28ubmciLCJlZHUuc2NvdCIsInNjaC5zbyIsImhvc3R5aG9zdGluZy5pbyIsImhceGU0a2tpbmVuLmZpIiwiKi5tb29uc2NhbGUuaW8iLCJtb29uc2Nh'@; put 'bGUubmV0IiwiaWtpLmZpIiwiaWJ4b3MuaXQiLCJpbGlhZGJveG9zLml0IiwiaW1wZXJ0cml4Y2RuLmNvbSIsImltcGVydHJpeC5jb20iLCJzbXVzaGNkbi5jb20iLCJ3cGhvc3RlZG1haWwuY29tIiwid3BtdWNkbi5jb20iLCJ0ZW1wdXJsLmhvc3QiLCJ3cG11ZGV2Lmhvc3QiLCJkeW4tYmVy'@; put 'bGluLmRlIiwiaW4tYmVybGluLmRlIiwiaW4tYnJiLmRlIiwiaW4tYnV0dGVyLmRlIiwiaW4tZHNsLmRlIiwiaW4tZHNsLm5ldCIsImluLWRzbC5vcmciLCJpbi12cG4uZGUiLCJpbi12cG4ubmV0IiwiaW4tdnBuLm9yZyIsImJpei5hdCIsImluZm8uYXQiLCJpbmZvLmN4IiwiYWMubGVnLmJy'@; put 'IiwiYWwubGVnLmJyIiwiYW0ubGVnLmJyIiwiYXAubGVnLmJyIiwiYmEubGVnLmJyIiwiY2UubGVnLmJyIiwiZGYubGVnLmJyIiwiZXMubGVnLmJyIiwiZ28ubGVnLmJyIiwibWEubGVnLmJyIiwibWcubGVnLmJyIiwibXMubGVnLmJyIiwibXQubGVnLmJyIiwicGEubGVnLmJyIiwicGIubGVn'@; put 'LmJyIiwicGUubGVnLmJyIiwicGkubGVnLmJyIiwicHIubGVnLmJyIiwicmoubGVnLmJyIiwicm4ubGVnLmJyIiwicm8ubGVnLmJyIiwicnIubGVnLmJyIiwicnMubGVnLmJyIiwic2MubGVnLmJyIiwic2UubGVnLmJyIiwic3AubGVnLmJyIiwidG8ubGVnLmJyIiwicGl4b2xpbm8uY29tIiwi'@; put 'bmE0dS5ydSIsImlvcHN5cy5zZSIsImlwaWZvbnkubmV0IiwiaXNlcnZzY2h1bGUuZGUiLCJtZWluLWlzZXJ2LmRlIiwic2NodWxwbGF0dGZvcm0uZGUiLCJzY2h1bHNlcnZlci5kZSIsInRlc3QtaXNlcnYuZGUiLCJpc2Vydi5kZXYiLCJpb2JiLm5ldCIsIm1lbC5jbG91ZGxldHMuY29tLmF1'@; put 'IiwiY2xvdWQuaW50ZXJob3N0c29sdXRpb25zLmJlIiwidXNlcnMuc2NhbGUudmlydHVhbGNsb3VkLmNvbS5iciIsIm15Y2xvdWQuYnkiLCJhbHAxLmFlLmZsb3cuY2giLCJhcHBlbmdpbmUuZmxvdy5jaCIsImVzLTEuYXhhcm5ldC5jbG91ZCIsImRpYWRlbS5jbG91ZCIsInZpcC5qZWxhc3Rp'@; put 'Yy5jbG91ZCIsImplbGUuY2xvdWQiLCJpdDEuZXVyLmFydWJhLmplbnYtYXJ1YmEuY2xvdWQiLCJpdDEuamVudi1hcnViYS5jbG91ZCIsImtlbGl3ZWIuY2xvdWQiLCJjcy5rZWxpd2ViLmNsb3VkIiwib3hhLmNsb3VkIiwidG4ub3hhLmNsb3VkIiwidWsub3hhLmNsb3VkIiwicHJpbWV0ZWwu'@; put 'Y2xvdWQiLCJ1ay5wcmltZXRlbC5jbG91ZCIsImNhLnJlY2xhaW0uY2xvdWQiLCJ1ay5yZWNsYWltLmNsb3VkIiwidXMucmVjbGFpbS5jbG91ZCIsImNoLnRyZW5kaG9zdGluZy5jbG91ZCIsImRlLnRyZW5kaG9zdGluZy5jbG91ZCIsImplbGUuY2x1YiIsImFtc2NvbXB1dGUuY29tIiwiY2xp'@; put 'Y2tldGNsb3VkLmNvbSIsImRvcGFhcy5jb20iLCJoaWRvcmEuY29tIiwicGFhcy5ob3N0ZWQtYnktcHJldmlkZXIuY29tIiwicmFnLWNsb3VkLmhvc3RldXIuY29tIiwicmFnLWNsb3VkLWNoLmhvc3RldXIuY29tIiwiamNsb3VkLmlrLXNlcnZlci5jb20iLCJqY2xvdWQtdmVyLWpwYy5pay1z'@; put 'ZXJ2ZXIuY29tIiwiZGVtby5qZWxhc3RpYy5jb20iLCJraWxhdGlyb24uY29tIiwicGFhcy5tYXNzaXZlZ3JpZC5jb20iLCJqZWQud2FmYWljbG91ZC5jb20iLCJsb24ud2FmYWljbG91ZC5jb20iLCJyeWQud2FmYWljbG91ZC5jb20iLCJqLnNjYWxlZm9yY2UuY29tLmN5IiwiamVsYXN0aWMu'@; put 'ZG9nYWRvLmV1IiwiZmkuY2xvdWRwbGF0Zm9ybS5maSIsImRlbW8uZGF0YWNlbnRlci5maSIsInBhYXMuZGF0YWNlbnRlci5maSIsImplbGUuaG9zdCIsIm1pcmNsb3VkLmhvc3QiLCJwYWFzLmJlZWJ5dGUuaW8iLCJzZWtkMS5iZWVieXRlYXBwLmlvIiwiamVsZS5pbyIsImNsb3VkLWZyMS51'@; put 'bmlzcGFjZS5pbyIsImpjLm5lZW4uaXQiLCJjbG91ZC5qZWxhc3RpYy5vcGVuLnRpbS5pdCIsImpjbG91ZC5reiIsInVwYWFzLmthenRlbGVwb3J0Lmt6IiwiY2xvdWRqaWZmeS5uZXQiLCJmcmExLWRlLmNsb3VkamlmZnkubmV0Iiwid2VzdDEtdXMuY2xvdWRqaWZmeS5uZXQiLCJqbHMtc3Rv'@; put 'MS5lbGFzdHgubmV0IiwiamxzLXN0bzIuZWxhc3R4Lm5ldCIsImpscy1zdG8zLmVsYXN0eC5uZXQiLCJmYXN0c3RhY2tzLm5ldCIsImZyLTEucGFhcy5tYXNzaXZlZ3JpZC5uZXQiLCJsb24tMS5wYWFzLm1hc3NpdmVncmlkLm5ldCIsImxvbi0yLnBhYXMubWFzc2l2ZWdyaWQubmV0Iiwibnkt'@; put 'MS5wYWFzLm1hc3NpdmVncmlkLm5ldCIsIm55LTIucGFhcy5tYXNzaXZlZ3JpZC5uZXQiLCJzZy0xLnBhYXMubWFzc2l2ZWdyaWQubmV0IiwiamVsYXN0aWMuc2F2ZWluY2xvdWQubmV0Iiwibm9yZGVzdGUtaWRjLnNhdmVpbmNsb3VkLm5ldCIsImouc2NhbGVmb3JjZS5uZXQiLCJqZWxhc3Rp'@; put 'Yy50c3VrYWVydS5uZXQiLCJzZHNjbG91ZC5wbCIsInVuaWNsb3VkLnBsIiwibWlyY2xvdWQucnUiLCJqZWxhc3RpYy5yZWdydWhvc3RpbmcucnUiLCJlbnNjYWxlZC5zZyIsImplbGUuc2l0ZSIsImplbGFzdGljLnRlYW0iLCJvcmFuZ2VjbG91ZC50biIsImoubGF5ZXJzaGlmdC5jby51ayIs'@; put 'InBoeC5lbnNjYWxlZC51cyIsIm1pcmNsb3VkLnVzIiwibXlqaW5vLnJ1IiwiKi5ob3N0aW5nLm15amluby5ydSIsIioubGFuZGluZy5teWppbm8ucnUiLCIqLnNwZWN0cnVtLm15amluby5ydSIsIioudnBzLm15amluby5ydSIsImpvdGVsdWx1LmNsb3VkIiwiKi50cml0b24uem9uZSIsIiou'@; put 'Y25zLmpveWVudC5jb20iLCJqcy5vcmciLCJrYWFzLmdnIiwia2hwbGF5Lm5sIiwia3Rpc3RvcnkuY29tIiwia2Fwc2kuZmkiLCJrZXltYWNoaW5lLmRlIiwia2luZ2hvc3QubmV0IiwidW5pNS5uZXQiLCJrbmlnaHRwb2ludC5zeXN0ZW1zIiwia29vYmluLmV2ZW50cyIsIm95YS50byIsImt1'@; put 'bGV1dmVuLmNsb3VkIiwiZXpwcm94eS5rdWxldXZlbi5iZSIsImNvLmtyZCIsImVkdS5rcmQiLCJrcmVsbGlhbi5uZXQiLCJ3ZWJ0aGluZ3MuaW8iLCJnaXQtcmVwb3MuZGUiLCJsY3ViZS1zZXJ2ZXIuZGUiLCJzdm4tcmVwb3MuZGUiLCJsZWFkcGFnZXMuY28iLCJscGFnZXMuY28iLCJscHVz'@; put 'ZXJjb250ZW50LmNvbSIsImxlbHV4LnNpdGUiLCJjby5idXNpbmVzcyIsImNvLmVkdWNhdGlvbiIsImNvLmV2ZW50cyIsImNvLmZpbmFuY2lhbCIsImNvLm5ldHdvcmsiLCJjby5wbGFjZSIsImNvLnRlY2hub2xvZ3kiLCJhcHAubG1wbS5jb20iLCJsaW5reWFyZC5jbG91ZCIsImxpbmt5YXJk'@; put 'LWNsb3VkLmNoIiwibWVtYmVycy5saW5vZGUuY29tIiwiKi5ub2RlYmFsYW5jZXIubGlub2RlLmNvbSIsIioubGlub2Rlb2JqZWN0cy5jb20iLCJpcC5saW5vZGV1c2VyY29udGVudC5jb20iLCJ3ZS5icyIsIioudXNlci5sb2NhbGNlcnQuZGV2IiwibG9jYWx6b25lLnh5eiIsImxvZ2lubGlu'@; put 'ZS5hcHAiLCJsb2dpbmxpbmUuZGV2IiwibG9naW5saW5lLmlvIiwibG9naW5saW5lLnNlcnZpY2VzIiwibG9naW5saW5lLnNpdGUiLCJzZXJ2ZXJzLnJ1biIsImxvaG11cy5tZSIsImtyYXNuaWsucGwiLCJsZWN6bmEucGwiLCJsdWJhcnRvdy5wbCIsImx1Ymxpbi5wbCIsInBvbmlhdG93YS5w'@; put 'bCIsInN3aWRuaWsucGwiLCJnbHVnLm9yZy51ayIsImx1Zy5vcmcudWsiLCJsdWdzLm9yZy51ayIsImJhcnN5LmJnIiwiYmFyc3kuY28udWsiLCJiYXJzeW9ubGluZS5jby51ayIsImJhcnN5Y2VudGVyLmNvbSIsImJhcnN5b25saW5lLmNvbSIsImJhcnN5LmNsdWIiLCJiYXJzeS5kZSIsImJh'@; put 'cnN5LmV1IiwiYmFyc3kuaW4iLCJiYXJzeS5pbmZvIiwiYmFyc3kuaW8iLCJiYXJzeS5tZSIsImJhcnN5Lm1lbnUiLCJiYXJzeS5tb2JpIiwiYmFyc3kubmV0IiwiYmFyc3kub25saW5lIiwiYmFyc3kub3JnIiwiYmFyc3kucHJvIiwiYmFyc3kucHViIiwiYmFyc3kucm8iLCJiYXJzeS5zaG9w'@; put 'IiwiYmFyc3kuc2l0ZSIsImJhcnN5LnN1cHBvcnQiLCJiYXJzeS51ayIsIioubWFnZW50b3NpdGUuY2xvdWQiLCJtYXlmaXJzdC5pbmZvIiwibWF5Zmlyc3Qub3JnIiwiaGIuY2xkbWFpbC5ydSIsImNuLnZ1IiwibWF6ZXBsYXkuY29tIiwibWNwZS5tZSIsIm1jZGlyLm1lIiwibWNkaXIucnUi'@; put 'LCJtY3ByZS5ydSIsInZwcy5tY2Rpci5ydSIsIm1lZGlhdGVjaC5ieSIsIm1lZGlhdGVjaC5kZXYiLCJocmEuaGVhbHRoIiwibWluaXNlcnZlci5jb20iLCJtZW1zZXQubmV0IiwibWVzc2VybGkuYXBwIiwiKi5jbG91ZC5tZXRhY2VudHJ1bS5jeiIsImN1c3RvbS5tZXRhY2VudHJ1bS5jeiIs'@; put 'ImZsdC5jbG91ZC5tdW5pLmN6IiwidXNyLmNsb3VkLm11bmkuY3oiLCJtZXRlb3JhcHAuY29tIiwiZXUubWV0ZW9yYXBwLmNvbSIsImNvLnBsIiwiKi5henVyZWNvbnRhaW5lci5pbyIsImF6dXJld2Vic2l0ZXMubmV0IiwiYXp1cmUtbW9iaWxlLm5ldCIsImNsb3VkYXBwLm5ldCIsImF6dXJl'@; put 'c3RhdGljYXBwcy5uZXQiLCIxLmF6dXJlc3RhdGljYXBwcy5uZXQiLCJjZW50cmFsdXMuYXp1cmVzdGF0aWNhcHBzLm5ldCIsImVhc3Rhc2lhLmF6dXJlc3RhdGljYXBwcy5uZXQiLCJlYXN0dXMyLmF6dXJlc3RhdGljYXBwcy5uZXQiLCJ3ZXN0ZXVyb3BlLmF6dXJlc3RhdGljYXBwcy5uZXQi'@; put 'LCJ3ZXN0dXMyLmF6dXJlc3RhdGljYXBwcy5uZXQiLCJjc3guY2MiLCJtaW50ZXJlLnNpdGUiLCJmb3J0ZS5pZCIsIm1vemlsbGEtaW90Lm9yZyIsImJtb2F0dGFjaG1lbnRzLm9yZyIsIm5ldC5ydSIsIm9yZy5ydSIsInBwLnJ1IiwiaG9zdGVkcGkuY29tIiwiY3VzdG9tZXIubXl0aGljLWJl'@; put 'YXN0cy5jb20iLCJjYXJhY2FsLm15dGhpYy1iZWFzdHMuY29tIiwiZmVudGlnZXIubXl0aGljLWJlYXN0cy5jb20iLCJseW54Lm15dGhpYy1iZWFzdHMuY29tIiwib2NlbG90Lm15dGhpYy1iZWFzdHMuY29tIiwib25jaWxsYS5teXRoaWMtYmVhc3RzLmNvbSIsIm9uemEubXl0aGljLWJlYXN0'@; put 'cy5jb20iLCJzcGhpbngubXl0aGljLWJlYXN0cy5jb20iLCJ2cy5teXRoaWMtYmVhc3RzLmNvbSIsIngubXl0aGljLWJlYXN0cy5jb20iLCJ5YWxpLm15dGhpYy1iZWFzdHMuY29tIiwiY3VzdC5yZXRyb3NudWIuY28udWsiLCJ1aS5uYWJ1LmNhc2EiLCJwb255LmNsdWIiLCJvZi5mYXNoaW9u'@; put 'IiwiaW4ubG9uZG9uIiwib2YubG9uZG9uIiwiZnJvbS5tYXJrZXRpbmciLCJ3aXRoLm1hcmtldGluZyIsImZvci5tZW4iLCJyZXBhaXIubWVuIiwiYW5kLm1vbSIsImZvci5tb20iLCJmb3Iub25lIiwidW5kZXIub25lIiwiZm9yLnNhbGUiLCJ0aGF0LndpbiIsImZyb20ud29yayIsInRvLndv'@; put 'cmsiLCJjbG91ZC5ub3NwYW1wcm94eS5jb20iLCJuZXRsaWZ5LmFwcCIsIjR1LmNvbSIsIm5ncm9rLmlvIiwibmgtc2Vydi5jby51ayIsIm5mc2hvc3QuY29tIiwiKi5kZXZlbG9wZXIuYXBwIiwibm9vcC5hcHAiLCIqLm5vcnRoZmxhbmsuYXBwIiwiKi5idWlsZC5ydW4iLCIqLmNvZGUucnVu'@; put 'IiwiKi5kYXRhYmFzZS5ydW4iLCIqLm1pZ3JhdGlvbi5ydW4iLCJub3RpY2VhYmxlLm5ld3MiLCJkbnNraW5nLmNoIiwibXlwaS5jbyIsIm40dC5jbyIsIjAwMXd3dy5jb20iLCJkZG5zbGl2ZS5jb20iLCJteWlwaG9zdC5jb20iLCJmb3J1bXouaW5mbyIsIjE2LWIuaXQiLCIzMi1iLml0Iiwi'@; put 'NjQtYi5pdCIsInNvdW5kY2FzdC5tZSIsInRjcDQubWUiLCJkbnN1cC5uZXQiLCJoaWNhbS5uZXQiLCJub3ctZG5zLm5ldCIsIm93bmlwLm5ldCIsInZwbmRucy5uZXQiLCJkeW5zZXJ2Lm9yZyIsIm5vdy1kbnMub3JnIiwieDQ0My5wdyIsIm5vdy1kbnMudG9wIiwibnRkbGwudG9wIiwiZnJl'@; put 'ZWRkbnMudXMiLCJjcmFmdGluZy54eXoiLCJ6YXB0by54eXoiLCJuc3VwZGF0ZS5pbmZvIiwibmVyZHBvbC5vdmgiLCJibG9nc3l0ZS5jb20iLCJicmFzaWxpYS5tZSIsImNhYmxlLW1vZGVtLm9yZyIsImNpc2NvZnJlYWsuY29tIiwiY29sbGVnZWZhbi5vcmciLCJjb3VjaHBvdGF0b2ZyaWVz'@; put 'Lm9yZyIsImRhbW5zZXJ2ZXIuY29tIiwiZGRucy5tZSIsImRpdGNoeW91cmlwLmNvbSIsImRuc2Zvci5tZSIsImRuc2lza2lua3kuY29tIiwiZHZyY2FtLmluZm8iLCJkeW5ucy5jb20iLCJlYXRpbmctb3JnYW5pYy5uZXQiLCJmYW50YXN5bGVhZ3VlLmNjIiwiZ2Vla2dhbGF4eS5jb20iLCJn'@; put 'b2xmZmFuLnVzIiwiaGVhbHRoLWNhcmVyZWZvcm0uY29tIiwiaG9tZXNlY3VyaXR5bWFjLmNvbSIsImhvbWVzZWN1cml0eXBjLmNvbSIsImhvcHRvLm1lIiwiaWxvdmVjb2xsZWdlLmluZm8iLCJsb2dpbnRvLm1lIiwibWxiZmFuLm9yZyIsIm1tYWZhbi5iaXoiLCJteWFjdGl2ZWRpcmVjdG9y'@; put 'eS5jb20iLCJteWRpc3NlbnQubmV0IiwibXllZmZlY3QubmV0IiwibXltZWRpYXBjLm5ldCIsIm15cHN4Lm5ldCIsIm15c2VjdXJpdHljYW1lcmEuY29tIiwibXlzZWN1cml0eWNhbWVyYS5uZXQiLCJteXNlY3VyaXR5Y2FtZXJhLm9yZyIsIm5ldC1mcmVha3MuY29tIiwibmZsZmFuLm9yZyIs'@; put 'Im5obGZhbi5uZXQiLCJuby1pcC5jYSIsIm5vLWlwLmNvLnVrIiwibm8taXAubmV0Iiwibm9pcC51cyIsIm9udGhld2lmaS5jb20iLCJwZ2FmYW4ubmV0IiwicG9pbnQydGhpcy5jb20iLCJwb2ludHRvLnVzIiwicHJpdmF0aXplaGVhbHRoaW5zdXJhbmNlLm5ldCIsInF1aWNrc3l0ZXMuY29t'@; put 'IiwicmVhZC1ib29rcy5vcmciLCJzZWN1cml0eXRhY3RpY3MuY29tIiwic2VydmVleGNoYW5nZS5jb20iLCJzZXJ2ZWh1bW91ci5jb20iLCJzZXJ2ZXAycC5jb20iLCJzZXJ2ZXNhcmNhc20uY29tIiwic3R1ZmZ0b3JlYWQuY29tIiwidWZjZmFuLm9yZyIsInVudXN1YWxwZXJzb24uY29tIiwi'@; put 'd29ya2lzYm9yaW5nLmNvbSIsIjN1dGlsaXRpZXMuY29tIiwiYm91bmNlbWUubmV0IiwiZGRucy5uZXQiLCJkZG5za2luZy5jb20iLCJnb3RkbnMuY2giLCJob3B0by5vcmciLCJteWZ0cC5iaXoiLCJteWZ0cC5vcmciLCJteXZuYy5jb20iLCJuby1pcC5iaXoiLCJuby1pcC5pbmZvIiwibm8t'@; put 'aXAub3JnIiwibm9pcC5tZSIsInJlZGlyZWN0bWUubmV0Iiwic2VydmViZWVyLmNvbSIsInNlcnZlYmxvZy5uZXQiLCJzZXJ2ZWNvdW50ZXJzdHJpa2UuY29tIiwic2VydmVmdHAuY29tIiwic2VydmVnYW1lLmNvbSIsInNlcnZlaGFsZmxpZmUuY29tIiwic2VydmVodHRwLmNvbSIsInNlcnZl'@; put 'aXJjLmNvbSIsInNlcnZlbWluZWNyYWZ0Lm5ldCIsInNlcnZlbXAzLmNvbSIsInNlcnZlcGljcy5jb20iLCJzZXJ2ZXF1YWtlLmNvbSIsInN5dGVzLm5ldCIsIndlYmhvcC5tZSIsInphcHRvLm9yZyIsInN0YWdlLm5vZGVhcnQuaW8iLCJwY2xvdWQuaG9zdCIsIm55Yy5tbiIsInN0YXRpYy5v'@; put 'YnNlcnZhYmxldXNlcmNvbnRlbnQuY29tIiwiY3lhLmdnIiwib21nLmxvbCIsImNsb3VkeWNsdXN0ZXIubmV0Iiwib21uaXdlLnNpdGUiLCJzZXJ2aWNlLm9uZSIsIm5pZC5pbyIsIm9wZW5zb2NpYWwuc2l0ZSIsIm9wZW5jcmFmdC5ob3N0aW5nIiwib3JzaXRlcy5jb20iLCJvcGVyYXVuaXRl'@; put 'LmNvbSIsInRlY2gub3JhbmdlIiwiYXV0aGdlYXItc3RhZ2luZy5jb20iLCJhdXRoZ2VhcmFwcHMuY29tIiwic2t5Z2VhcmFwcC5jb20iLCJvdXRzeXN0ZW1zY2xvdWQuY29tIiwiKi53ZWJwYWFzLm92aC5uZXQiLCIqLmhvc3Rpbmcub3ZoLm5ldCIsIm93bnByb3ZpZGVyLmNvbSIsIm93bi5w'@; put 'bSIsIioub3dvLmNvZGVzIiwib3gucnMiLCJveS5sYyIsInBnZm9nLmNvbSIsInBhZ2Vmcm9udGFwcC5jb20iLCJwYWdleGwuY29tIiwiKi5wYXl3aGlybC5jb20iLCJiYXIwLm5ldCIsImJhcjEubmV0IiwiYmFyMi5uZXQiLCJyZHYudG8iLCJhcnQucGwiLCJnbGl3aWNlLnBsIiwia3Jha293'@; put 'LnBsIiwicG96bmFuLnBsIiwid3JvYy5wbCIsInpha29wYW5lLnBsIiwicGFudGhlb25zaXRlLmlvIiwiZ290cGFudGhlb24uY29tIiwibXlwZXAubGluayIsInBlcnNwZWN0YS5jbG91ZCIsImxrMy5ydSIsIm9uLXdlYi5mciIsImJjLnBsYXRmb3JtLnNoIiwiZW50LnBsYXRmb3JtLnNoIiwi'@; put 'ZXUucGxhdGZvcm0uc2giLCJ1cy5wbGF0Zm9ybS5zaCIsIioucGxhdGZvcm1zaC5zaXRlIiwiKi50c3Quc2l0ZSIsInBsYXR0ZXItYXBwLmNvbSIsInBsYXR0ZXItYXBwLmRldiIsInBsYXR0ZXJwLnVzIiwicGRucy5wYWdlIiwicGxlc2sucGFnZSIsInBsZXNrbnMuY29tIiwiZHluNTMuaW8i'@; put 'LCJvbnBvcnRlci5ydW4iLCJjby5ibiIsInBvc3RtYW4tZWNoby5jb20iLCJwc3Rtbi5pbyIsIm1vY2sucHN0bW4uaW8iLCJodHRwYmluLm9yZyIsInByZXF1YWxpZnltZS50b2RheSIsInhlbi5wcmdtci5jb20iLCJwcml2LmF0IiwicHJ2Y3kucGFnZSIsIiouZHdlYi5saW5rIiwicHJvdG9u'@; put 'ZXQuaW8iLCJjaGlydXJnaWVucy1kZW50aXN0ZXMtZW4tZnJhbmNlLmZyIiwiYnllbi5zaXRlIiwicHVidGxzLm9yZyIsInB5dGhvbmFueXdoZXJlLmNvbSIsImV1LnB5dGhvbmFueXdoZXJlLmNvbSIsInFvdG8uaW8iLCJxdWFsaWZpb2FwcC5jb20iLCJxYnVzZXIuY29tIiwiY2xvdWRzaXRl'@; put 'LmJ1aWxkZXJzIiwiaW5zdGFuY2VzLnNwYXduLmNjIiwiaW5zdGFudGNsb3VkLmNuIiwicmFzLnJ1IiwicWEyLmNvbSIsInFjeC5pbyIsIiouc3lzLnFjeC5pbyIsImRldi1teXFuYXBjbG91ZC5jb20iLCJhbHBoYS1teXFuYXBjbG91ZC5jb20iLCJteXFuYXBjbG91ZC5jb20iLCIqLnF1aXBl'@; put 'bGVtZW50cy5jb20iLCJ2YXBvci5jbG91ZCIsInZhcG9yY2xvdWQuaW8iLCJyYWNrbWF6ZS5jb20iLCJyYWNrbWF6ZS5uZXQiLCJnLnZicnBsc2J4LmlvIiwiKi5vbi1rM3MuaW8iLCIqLm9uLXJhbmNoZXIuY2xvdWQiLCIqLm9uLXJpby5pbyIsInJlYWR0aGVkb2NzLmlvIiwicmhjbG91ZC5j'@; put 'b20iLCJhcHAucmVuZGVyLmNvbSIsIm9ucmVuZGVyLmNvbSIsInJlcGwuY28iLCJpZC5yZXBsLmNvIiwicmVwbC5ydW4iLCJyZXNpbmRldmljZS5pbyIsImRldmljZXMucmVzaW5zdGFnaW5nLmlvIiwiaHpjLmlvIiwid2VsbGJlaW5nem9uZS5ldSIsIndlbGxiZWluZ3pvbmUuY28udWsiLCJh'@; put 'ZGltby5jby51ayIsIml0Y291bGRiZXdvci5zZSIsImdpdC1wYWdlcy5yaXQuZWR1Iiwicm9ja3kucGFnZSIsIlx1MDQzMVx1MDQzOFx1MDQzNy5cdTA0NDBcdTA0NDNcdTA0NDEiLCJcdTA0M2FcdTA0M2VcdTA0M2MuXHUwNDQwXHUwNDQzXHUwNDQxIiwiXHUwNDNhXHUwNDQwXHUwNDRiXHUw'@; put 'NDNjLlx1MDQ0MFx1MDQ0M1x1MDQ0MSIsIlx1MDQzY1x1MDQzOFx1MDQ0MC5cdTA0NDBcdTA0NDNcdTA0NDEiLCJcdTA0M2NcdTA0NDFcdTA0M2EuXHUwNDQwXHUwNDQzXHUwNDQxIiwiXHUwNDNlXHUwNDQwXHUwNDMzLlx1MDQ0MFx1MDQ0M1x1MDQ0MSIsIlx1MDQ0MVx1MDQzMFx1MDQzY1x1'@; put 'MDQzMFx1MDQ0MFx1MDQzMC5cdTA0NDBcdTA0NDNcdTA0NDEiLCJcdTA0NDFcdTA0M2VcdTA0NDdcdTA0MzguXHUwNDQwXHUwNDQzXHUwNDQxIiwiXHUwNDQxXHUwNDNmXHUwNDMxLlx1MDQ0MFx1MDQ0M1x1MDQ0MSIsIlx1MDQ0Zi5cdTA0NDBcdTA0NDNcdTA0NDEiLCIqLmJ1aWxkZXIuY29k'@; put 'ZS5jb20iLCIqLmRldi1idWlsZGVyLmNvZGUuY29tIiwiKi5zdGctYnVpbGRlci5jb2RlLmNvbSIsInNhbmRjYXRzLmlvIiwibG9nb2lwLmRlIiwibG9nb2lwLmNvbSIsImZyLXBhci0xLmJhcmVtZXRhbC5zY3cuY2xvdWQiLCJmci1wYXItMi5iYXJlbWV0YWwuc2N3LmNsb3VkIiwibmwtYW1z'@; put 'LTEuYmFyZW1ldGFsLnNjdy5jbG91ZCIsImZuYy5mci1wYXIuc2N3LmNsb3VkIiwiZnVuY3Rpb25zLmZuYy5mci1wYXIuc2N3LmNsb3VkIiwiazhzLmZyLXBhci5zY3cuY2xvdWQiLCJub2Rlcy5rOHMuZnItcGFyLnNjdy5jbG91ZCIsInMzLmZyLXBhci5zY3cuY2xvdWQiLCJzMy13ZWJzaXRl'@; put 'LmZyLXBhci5zY3cuY2xvdWQiLCJ3aG0uZnItcGFyLnNjdy5jbG91ZCIsInByaXYuaW5zdGFuY2VzLnNjdy5jbG91ZCIsInB1Yi5pbnN0YW5jZXMuc2N3LmNsb3VkIiwiazhzLnNjdy5jbG91ZCIsIms4cy5ubC1hbXMuc2N3LmNsb3VkIiwibm9kZXMuazhzLm5sLWFtcy5zY3cuY2xvdWQiLCJz'@; put 'My5ubC1hbXMuc2N3LmNsb3VkIiwiczMtd2Vic2l0ZS5ubC1hbXMuc2N3LmNsb3VkIiwid2htLm5sLWFtcy5zY3cuY2xvdWQiLCJrOHMucGwtd2F3LnNjdy5jbG91ZCIsIm5vZGVzLms4cy5wbC13YXcuc2N3LmNsb3VkIiwiczMucGwtd2F3LnNjdy5jbG91ZCIsInMzLXdlYnNpdGUucGwtd2F3'@; put 'LnNjdy5jbG91ZCIsInNjYWxlYm9vay5zY3cuY2xvdWQiLCJzbWFydGxhYmVsaW5nLnNjdy5jbG91ZCIsImRlZGlib3guZnIiLCJzY2hva29rZWtzLm5ldCIsImdvdi5zY290Iiwic2VydmljZS5nb3Yuc2NvdCIsInNjcnlzZWMuY29tIiwiZmlyZXdhbGwtZ2F0ZXdheS5jb20iLCJmaXJld2Fs'@; put 'bC1nYXRld2F5LmRlIiwibXktZ2F0ZXdheS5kZSIsIm15LXJvdXRlci5kZSIsInNwZG5zLmRlIiwic3BkbnMuZXUiLCJmaXJld2FsbC1nYXRld2F5Lm5ldCIsIm15LWZpcmV3YWxsLm9yZyIsIm15ZmlyZXdhbGwub3JnIiwic3BkbnMub3JnIiwic2VpZGF0Lm5ldCIsInNlbGxmeS5zdG9yZSIs'@; put 'InNlbnNlZXJpbmcubmV0IiwibWluaXNpdGUubXMiLCJtYWduZXQucGFnZSIsImJpei51YSIsImNvLnVhIiwicHAudWEiLCJzaGlmdGNyeXB0by5kZXYiLCJzaGlmdGNyeXB0by5pbyIsInNoaWZ0ZWRpdC5pbyIsIm15c2hvcGJsb2Nrcy5jb20iLCJteXNob3BpZnkuY29tIiwic2hvcGl0c2l0'@; put 'ZS5jb20iLCJzaG9wd2FyZS5zdG9yZSIsIm1vLXNpZW1lbnMuaW8iLCIxa2FwcC5jb20iLCJhcHBjaGl6aS5jb20iLCJhcHBsaW56aS5jb20iLCJzaW5hYXBwLmNvbSIsInZpcHNpbmFhcHAuY29tIiwic2l0ZWxlYWYubmV0IiwiYm91bnR5LWZ1bGwuY29tIiwiYWxwaGEuYm91bnR5LWZ1bGwu'@; put 'Y29tIiwiYmV0YS5ib3VudHktZnVsbC5jb20iLCJzbWFsbC13ZWIub3JnIiwidnA0Lm1lIiwidHJ5LXNub3dwbG93LmNvbSIsInNyaHQuc2l0ZSIsInN0YWNraGVyby1uZXR3b3JrLmNvbSIsIm11c2ljaWFuLmlvIiwibm92ZWNvcmUuc2l0ZSIsInN0YXRpYy5sYW5kIiwiZGV2LnN0YXRpYy5s'@; put 'YW5kIiwic2l0ZXMuc3RhdGljLmxhbmQiLCJzdG9yZWJhc2Uuc3RvcmUiLCJ2cHMtaG9zdC5uZXQiLCJhdGwuamVsYXN0aWMudnBzLWhvc3QubmV0IiwibmpzLmplbGFzdGljLnZwcy1ob3N0Lm5ldCIsInJpYy5qZWxhc3RpYy52cHMtaG9zdC5uZXQiLCJwbGF5c3RhdGlvbi1jbG91ZC5jb20i'@; put 'LCJhcHBzLmxhaXIuaW8iLCIqLnN0b2xvcy5pbyIsInNwYWNla2l0LmlvIiwiY3VzdG9tZXIuc3BlZWRwYXJ0bmVyLmRlIiwibXlzcHJlYWRzaG9wLmF0IiwibXlzcHJlYWRzaG9wLmNvbS5hdSIsIm15c3ByZWFkc2hvcC5iZSIsIm15c3ByZWFkc2hvcC5jYSIsIm15c3ByZWFkc2hvcC5jaCIs'@; put 'Im15c3ByZWFkc2hvcC5jb20iLCJteXNwcmVhZHNob3AuZGUiLCJteXNwcmVhZHNob3AuZGsiLCJteXNwcmVhZHNob3AuZXMiLCJteXNwcmVhZHNob3AuZmkiLCJteXNwcmVhZHNob3AuZnIiLCJteXNwcmVhZHNob3AuaWUiLCJteXNwcmVhZHNob3AuaXQiLCJteXNwcmVhZHNob3AubmV0Iiwi'@; put 'bXlzcHJlYWRzaG9wLm5sIiwibXlzcHJlYWRzaG9wLm5vIiwibXlzcHJlYWRzaG9wLnBsIiwibXlzcHJlYWRzaG9wLnNlIiwibXlzcHJlYWRzaG9wLmNvLnVrIiwiYXBpLnN0ZGxpYi5jb20iLCJzdG9yai5mYXJtIiwidXR3ZW50ZS5pbyIsInNvYy5zcmNmLm5ldCIsInVzZXIuc3JjZi5uZXQi'@; put 'LCJ0ZW1wLWRucy5jb20iLCJzdXBhYmFzZS5jbyIsInN1cGFiYXNlLmluIiwic3VwYWJhc2UubmV0Iiwic3UucGFiYS5zZSIsIiouczV5LmlvIiwiKi5zZW5zaW9zaXRlLmNsb3VkIiwic3luY2xvdWQuaXQiLCJkc2Nsb3VkLmJpeiIsImRpcmVjdC5xdWlja2Nvbm5lY3QuY24iLCJkc215bmFz'@; put 'LmNvbSIsImZhbWlseWRzLmNvbSIsImRpc2tzdGF0aW9uLm1lIiwiZHNjbG91ZC5tZSIsImkyMzQubWUiLCJteWRzLm1lIiwic3lub2xvZ3kubWUiLCJkc2Nsb3VkLm1vYmkiLCJkc215bmFzLm5ldCIsImZhbWlseWRzLm5ldCIsImRzbXluYXMub3JnIiwiZmFtaWx5ZHMub3JnIiwidnBucGx1'@; put 'cy50byIsImRpcmVjdC5xdWlja2Nvbm5lY3QudG8iLCJ0YWJpdG9yZGVyLmNvLmlsIiwidGFpZnVuLWRucy5kZSIsImJldGEudGFpbHNjYWxlLm5ldCIsInRzLm5ldCIsImdkYS5wbCIsImdkYW5zay5wbCIsImdkeW5pYS5wbCIsIm1lZC5wbCIsInNvcG90LnBsIiwic2l0ZS50Yi1ob3N0aW5n'@; put 'LmNvbSIsImVkdWdpdC5pbyIsInMzLnRlY2tpZHMub3JnIiwidGVsZWJpdC5hcHAiLCJ0ZWxlYml0LmlvIiwiKi50ZWxlYml0Lnh5eiIsImd3aWRkbGUuY28udWsiLCIqLmZpcmVuZXQuY2giLCIqLnN2Yy5maXJlbmV0LmNoIiwicmVzZXJ2ZC5jb20iLCJ0aGluZ2R1c3RkYXRhLmNvbSIsImN1'@; put 'c3QuZGV2LnRoaW5nZHVzdC5pbyIsImN1c3QuZGlzcmVjLnRoaW5nZHVzdC5pbyIsImN1c3QucHJvZC50aGluZ2R1c3QuaW8iLCJjdXN0LnRlc3RpbmcudGhpbmdkdXN0LmlvIiwicmVzZXJ2ZC5kZXYudGhpbmdkdXN0LmlvIiwicmVzZXJ2ZC5kaXNyZWMudGhpbmdkdXN0LmlvIiwicmVzZXJ2'@; put 'ZC50ZXN0aW5nLnRoaW5nZHVzdC5pbyIsInRpY2tldHMuaW8iLCJhcnZvLm5ldHdvcmsiLCJhemltdXRoLm5ldHdvcmsiLCJ0bG9uLm5ldHdvcmsiLCJ0b3Jwcm9qZWN0Lm5ldCIsInBhZ2VzLnRvcnByb2plY3QubmV0IiwiYmxveGNtcy5jb20iLCJ0b3dubmV3cy1zdGFnaW5nLmNvbSIsInRi'@; put 'aXRzLm1lIiwiMTJocC5hdCIsIjJpeC5hdCIsIjRsaW1hLmF0IiwibGltYS1jaXR5LmF0IiwiMTJocC5jaCIsIjJpeC5jaCIsIjRsaW1hLmNoIiwibGltYS1jaXR5LmNoIiwidHJhZmZpY3BsZXguY2xvdWQiLCJkZS5jb29sIiwiMTJocC5kZSIsIjJpeC5kZSIsIjRsaW1hLmRlIiwibGltYS1j'@; put 'aXR5LmRlIiwiMTMzNy5waWN0dXJlcyIsImNsYW4ucmlwIiwibGltYS1jaXR5LnJvY2tzIiwid2Vic3BhY2Uucm9ja3MiLCJsaW1hLnpvbmUiLCIqLnRyYW5zdXJsLmJlIiwiKi50cmFuc3VybC5ldSIsIioudHJhbnN1cmwubmwiLCJzaXRlLnRyYW5zaXAubWUiLCJ0dXhmYW1pbHkub3JnIiwi'@; put 'ZGQtZG5zLmRlIiwiZGlza3N0YXRpb24uZXUiLCJkaXNrc3RhdGlvbi5vcmciLCJkcmF5LWRucy5kZSIsImRyYXlkbnMuZGUiLCJkeW4tdnBuLmRlIiwiZHludnBuLmRlIiwibWVpbi12aWdvci5kZSIsIm15LXZpZ29yLmRlIiwibXktd2FuLmRlIiwic3luby1kcy5kZSIsInN5bm9sb2d5LWRp'@; put 'c2tzdGF0aW9uLmRlIiwic3lub2xvZ3ktZHMuZGUiLCJ0eXBlZHJlYW0uYXBwIiwicHJvLnR5cGVmb3JtLmNvbSIsInViZXIuc3BhY2UiLCIqLnViZXJzcGFjZS5kZSIsImhrLmNvbSIsImhrLm9yZyIsImx0ZC5oayIsImluYy5oayIsIm5hbWUucG0iLCJzY2gudGYiLCJiaXoud2YiLCJzY2gu'@; put 'd2YiLCJvcmcueXQiLCJ2aXJ0dWFsdXNlci5kZSIsInZpcnR1YWwtdXNlci5kZSIsInVwbGkuaW8iLCJ1cm93bi5jbG91ZCIsImRuc3VwZGF0ZS5pbmZvIiwibGliLmRlLnVzIiwiMjAzOC5pbyIsInZlcmNlbC5hcHAiLCJ2ZXJjZWwuZGV2Iiwibm93LnNoIiwicm91dGVyLm1hbmFnZW1lbnQi'@; put 'LCJ2LWluZm8uaW5mbyIsInZvb3Jsb3Blci5jbG91ZCIsIm5la28uYW0iLCJueWFhLmFtIiwiYmUuYXgiLCJjYXQuYXgiLCJlcy5heCIsImV1LmF4IiwiZ2cuYXgiLCJtYy5heCIsInVzLmF4IiwieHkuYXgiLCJubC5jaSIsInh4LmdsIiwiYXBwLmdwIiwiYmxvZy5ndCIsImRlLmd0IiwidG8u'@; put 'Z3QiLCJiZS5neSIsImNjLmhuIiwiYmxvZy5rZyIsImlvLmtnIiwianAua2ciLCJ0di5rZyIsInVrLmtnIiwidXMua2ciLCJkZS5scyIsImF0Lm1kIiwiZGUubWQiLCJqcC5tZCIsInRvLm1kIiwiaW5kaWUucG9ybiIsInZ4bC5zaCIsImNoLnRjIiwibWUudGMiLCJ3ZS50YyIsIm55YW4udG8i'@; put 'LCJhdC52ZyIsImJsb2cudnUiLCJkZXYudnUiLCJtZS52dSIsInYudWEiLCIqLnZ1bHRyb2JqZWN0cy5jb20iLCJ3YWZmbGVjZWxsLmNvbSIsIioud2ViaGFyZS5kZXYiLCJyZXNlcnZlLW9ubGluZS5uZXQiLCJyZXNlcnZlLW9ubGluZS5jb20iLCJib29rb25saW5lLmFwcCIsImhvdGVsd2l0'@; put 'aGZsaWdodC5jb20iLCJ3ZWRlcGxveS5pbyIsIndlZGVwbG95Lm1lIiwid2VkZXBsb3kuc2giLCJyZW1vdGV3ZC5jb20iLCJwYWdlcy53aWFyZHdlYi5jb20iLCJ3bWZsYWJzLm9yZyIsInRvb2xmb3JnZS5vcmciLCJ3bWNsb3VkLm9yZyIsInBhbmVsLmdnIiwiZGFlbW9uLnBhbmVsLmdnIiwi'@; put 'bWVzc3dpdGhkbnMuY29tIiwid29sdGxhYi1kZW1vLmNvbSIsIm15Zm9ydW0uY29tbXVuaXR5IiwiY29tbXVuaXR5LXByby5kZSIsImRpc2t1c3Npb25zYmVyZWljaC5kZSIsImNvbW11bml0eS1wcm8ubmV0IiwibWVpbmZvcnVtLm5ldCIsImFmZmluaXR5bG90dGVyeS5vcmcudWsiLCJyYWZm'@; put 'bGVlbnRyeS5vcmcudWsiLCJ3ZWVrbHlsb3R0ZXJ5Lm9yZy51ayIsIndwZW5naW5lcG93ZXJlZC5jb20iLCJqcy53cGVuZ2luZXBvd2VyZWQuY29tIiwid2l4c2l0ZS5jb20iLCJlZGl0b3J4LmlvIiwiaGFsZi5ob3N0IiwieG5iYXkuY29tIiwidTIueG5iYXkuY29tIiwidTItbG9jYWwueG5i'@; put 'YXkuY29tIiwiY2lzdHJvbi5ubCIsImRlbW9uLm5sIiwieHM0YWxsLnNwYWNlIiwieWFuZGV4Y2xvdWQubmV0Iiwic3RvcmFnZS55YW5kZXhjbG91ZC5uZXQiLCJ3ZWJzaXRlLnlhbmRleGNsb3VkLm5ldCIsIm9mZmljaWFsLmFjYWRlbXkiLCJ5b2xhc2l0ZS5jb20iLCJ5Ym8uZmFpdGgiLCJ5'@; put 'b21iby5tZSIsImhvbWVsaW5rLm9uZSIsInliby5wYXJ0eSIsInliby5yZXZpZXciLCJ5Ym8uc2NpZW5jZSIsInliby50cmFkZSIsInluaC5mciIsIm5vaG9zdC5tZSIsIm5vaG8uc3QiLCJ6YS5uZXQiLCJ6YS5vcmciLCJic3MuZGVzaWduIiwiYmFzaWNzZXJ2ZXIuaW8iLCJ2aXJ0dWFsc2Vy'@; put 'dmVyLmlvIiwiZW50ZXJwcmlzZWNsb3VkLm51Il0nKX19LG09e307ZnVuY3Rpb24gbGUoTSl7dmFyIE89bVtNXTtpZih2b2lkIDAhPT1PKXJldHVybiBPLmV4cG9ydHM7dmFyIFI9bVtNXT17aWQ6TSxsb2FkZWQ6ITEsZXhwb3J0czp7fX07cmV0dXJuIHhbTV0uY2FsbChSLmV4cG9ydHMsUixS'@; put 'LmV4cG9ydHMsbGUpLFIubG9hZGVkPSEwLFIuZXhwb3J0c31yZXR1cm4gbGUuZD0oTSxPKT0+e2Zvcih2YXIgUiBpbiBPKWxlLm8oTyxSKSYmIWxlLm8oTSxSKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KE0sUix7ZW51bWVyYWJsZTohMCxnZXQ6T1tSXX0pfSxsZS5nPWZ1bmN0aW9uKCl7aWYo'@; put 'Im9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2h7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksbGUubz0oTSxPKT0+T2JqZWN0LnBy'@; put 'b3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE0sTyksbGUucj1NPT57dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KE0sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShN'@; put 'LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sbGUubm1kPU09PihNLnBhdGhzPVtdLE0uY2hpbGRyZW58fChNLmNoaWxkcmVuPVtdKSxNKSxsZSgzNjA3KX0pKCl9LDEyMDcwOmZ1bmN0aW9uKGF0LEllLEYpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8'@; put 'fGZ1bmN0aW9uKFIpe3JldHVybiBSJiZSLl9fZXNNb2R1bGU/Ujp7ZGVmYXVsdDpSfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEllLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxJZS5pc1NwZWNpYWxNaXNzaW5nPUllLmNob2ljZVZhbGlkYXRvcj1JZS5jb25maXJtYXRpb25WYWxpZGF0b3I9'@; put 'SWUudXJsVmFsaWRhdG9yPXZvaWQgMDt2YXIgeD1hZShGKDc4NTMyKSk7SWUudXJsVmFsaWRhdG9yPWZ1bmN0aW9uKFIseil7cmV0dXJuISF4LmRlZmF1bHQuaXNIdHRwVXJpKFIpfHwhIXguZGVmYXVsdC5pc0h0dHBzVXJpKFIpfHwiIj09PVJ8fHp9LEllLmNvbmZpcm1hdGlvblZhbGlkYXRv'@; put 'cj1mdW5jdGlvbihSKXtyZXR1cm4hMD09PVJ8fCExPT09Un0sSWUuY2hvaWNlVmFsaWRhdG9yPWZ1bmN0aW9uKFIseixLKXtyZXR1cm4gUj4wJiZSPD16fHxLfSxJZS5pc1NwZWNpYWxNaXNzaW5nPWZ1bmN0aW9uKFIpe3JldHVybigic3RyaW5nIiE9dHlwZW9mIFJ8fCFSLmluY2x1ZGVzKCIu'@; put 'LiIpKSYmbmV3IFJlZ0V4cCgiXihcXC4pP1thLXpfLl17MX0kIiwiaSIpLnRlc3QoUil9fSw3Njc3MTooYXQsSWUpPT57InVzZSBzdHJpY3QiO3ZhciB4O0llLkQ9dm9pZCAwLCh4PUllLkR8fChJZS5EPXt9KSkuU2FzVml5YT0iU0FTVklZQSIseC5TYXM5PSJTQVM5Iix4LlNhc2pzPSJTQVNK'@; put 'UyJ9LDUxNzE0OihhdCxJZSk9PnsidXNlIHN0cmljdCI7SWUuUj12b2lkIDAsSWUuUj1mdW5jdGlvbih4LG0sbGUpe2lmKHZvaWQgMD09PW0mJihtPTEpLHZvaWQgMD09PWxlJiYobGU9MTA5OTUxMTYyNzc3NiksMD09PXgpcmV0dXJuIjAgQiI7eD14PmxlP2xlOng7dmFyIFI9bTwwPzA6bSx6'@; put 'PU1hdGguZmxvb3IoTWF0aC5sb2coeCkvTWF0aC5sb2coMTAyNCkpO3JldHVybih4L01hdGgucG93KDEwMjQseikpLnRvRml4ZWQoUikrIiAiK1siQiIsIktCIiwiTUIiLCJHQiIsIlRCIl1bel19fSw4MDc4ODpmdW5jdGlvbihhdCl7dmFyIEllPXt2ZXJzaW9uOiIxLjE1LjAifTtJZVs0Mzdd'@; put 'PWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6'@; put 'Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZi'@; put 'XHhmOVx4ZmZceGQ2XHhkY1x4YTJceGEzXHhhNVx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2'@; put 'M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1'@; put 'MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhi'@; put 'MVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixhZT1bXSx4PXt9LG09MDsyNTYhPW07KyttKTY1NTMzIT09Ri5jaGFyQ29kZUF0KG0pJiYoeFtGLmNoYXJBdChtKV09bSksYWVbbV09Ri5jaGFyQXQobSk7'@; put 'cmV0dXJue2VuYzp4LGRlYzphZX19KCksSWVbNjIwXT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVc'@; put 'eDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBcdTAxMDVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVcdTAxMDdc'@; put 'eGM0XHUwMTA0XHUwMTE4XHUwMTE5XHUwMTQyXHhmNFx4ZjZcdTAxMDZceGZiXHhmOVx1MDE1YVx4ZDZceGRjXHhhMlx1MDE0MVx4YTVcdTAxNWJcdTAxOTJcdTAxNzlcdTAxN2JceGYzXHhkM1x1MDE0NFx1MDE0M1x1MDE3YVx1MDE3Y1x4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4'@; put 'YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1Njlc'@; put 'dTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1'@; put 'MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsYWU9W10seD17fSxtPTA7MjU2IT1tOysrbSk2'@; put 'NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5jaGFyQXQobSldPW0pLGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzczN109ZnVuY3Rpb24oKXtmb3IodmFyIEY9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBm'@; put 'XHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdm'@; put 'XHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUw'@; put 'M2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2MyXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYy'@; put 'XHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUy'@; put 'NTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2M5XHUwM2FjXHUwM2FkXHUwM2FlXHUwM2NhXHUwM2FmXHUwM2NjXHUwM2NkXHUwM2NiXHUwM2NlXHUwMzg2XHUwMzg4XHUwMzg5XHUwMzhh'@; put 'XHUwMzhjXHUwMzhlXHUwMzhmXHhiMVx1MjI2NVx1MjI2NFx1MDNhYVx1MDNhYlx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixhZT1bXSx4PXt9LG09MDsyNTYhPW07KyttKTY1NTMzIT09Ri5jaGFyQ29kZUF0KG0pJiYoeFtGLmNoYXJBdChtKV09'@; put 'bSksYWVbbV09Ri5jaGFyQXQobSk7cmV0dXJue2VuYzp4LGRlYzphZX19KCksSWVbODUwXT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5'@; put 'XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGVi'@; put 'XHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhceGQ3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5'@; put 'Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHhjMFx4YTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx4'@; put 'ZjBceGQwXHhjYVx4Y2JceGM4XHUwMTMxXHhjZFx4Y2VceGNmXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHhmZVx4ZGVceGRhXHhkYlx4ZDlceGZkXHhkZFx4YWZceGI0XHhhZFx4YjFcdTIwMTdceGJlXHhiNlx4YTdc'@; put 'eGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVs4NTJdPWZ1'@; put 'bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9'@; put 'Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHUwMTZmXHUwMTA3XHhlN1x1MDE0Mlx4ZWJcdTAxNTBcdTAxNTFceGVlXHUwMTc5XHhjNFx1MDEwNlx4YzlcdTAxMzlcdTAxM2Fc'@; put 'eGY0XHhmNlx1MDEzZFx1MDEzZVx1MDE1YVx1MDE1Ylx4ZDZceGRjXHUwMTY0XHUwMTY1XHUwMTQxXHhkN1x1MDEwZFx4ZTFceGVkXHhmM1x4ZmFcdTAxMDRcdTAxMDVcdTAxN2RcdTAxN2VcdTAxMThcdTAxMTlceGFjXHUwMTdhXHUwMTBjXHUwMTVmXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1'@; put 'OTNcdTI1MDJcdTI1MjRceGMxXHhjMlx1MDExYVx1MDE1ZVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDE3Ylx1MDE3Y1x1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDEwMlx1MDEwM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2'@; put 'Y1x4YTRcdTAxMTFcdTAxMTBcdTAxMGVceGNiXHUwMTBmXHUwMTQ3XHhjZFx4Y2VcdTAxMWJcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTAxNjJcdTAxNmVcdTI1ODBceGQzXHhkZlx4ZDRcdTAxNDNcdTAxNDRcdTAxNDhcdTAxNjBcdTAxNjFcdTAxNTRceGRhXHUwMTU1XHUwMTcwXHhmZFx4'@; put 'ZGRcdTAxNjNceGI0XHhhZFx1MDJkZFx1MDJkYlx1MDJjN1x1MDJkOFx4YTdceGY3XHhiOFx4YjBceGE4XHUwMmQ5XHUwMTcxXHUwMTU4XHUwMTU5XHUyNWEwXHhhMCIsYWU9W10seD17fSxtPTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5jaGFyQXQobSldPW0p'@; put 'LGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzg1N109ZnVuY3Rpb24oKXtmb3IodmFyIEY9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4'@; put 'MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4'@; put 'ZThceGVmXHhlZVx1MDEzMVx4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlcdTAxMzBceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MDE1ZVx1MDE1Zlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx1MDExZVx1MDExZlx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUy'@; put 'NTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1'@; put 'NmNceGE0XHhiYVx4YWFceGNhXHhjYlx4YzhcdWZmZmRceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVcdWZmZmRceGQ3XHhkYVx4ZGJceGQ5XHhlY1x4ZmZceGFmXHhiNFx4YWRceGIxXHVmZmZkXHhi'@; put 'ZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIixhZT1bXSx4PXt9LG09MDsyNTYhPW07KyttKTY1NTMzIT09Ri5jaGFyQ29kZUF0KG0pJiYoeFtGLmNoYXJBdChtKV09bSksYWVbbV09Ri5jaGFyQXQobSk7cmV0dXJue2VuYzp4LGRlYzphZX19KCks'@; put 'SWVbODYxXT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIz'@; put 'NDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZDBceGYwXHhkZVx4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZc'@; put 'eGZlXHhmYlx4ZGRceGZkXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhjMVx4Y2RceGQzXHhkYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1'@; put 'NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlc'@; put 'dTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1'@; put 'MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsYWU9W10seD17fSxtPTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5jaGFyQXQobSldPW0pLGFlW21dPUYuY2hh'@; put 'ckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzg2NV09ZnVuY3Rpb24oKXtmb3IodmFyIEY9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4'@; put 'MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4'@; put 'ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRjXHhmOFx4YTNceGQ4XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGE0XHUyNTkxXHUyNTkyXHUyNTkzXHUy'@; put 'NTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZj'@; put 'XHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlc'@; put 'dTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkm'@; put 'Jih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVs4NjZdPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgx'@; put 'NVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQx'@; put 'M1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1'@; put 'MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1'@; put 'MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1'@; put 'MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQwMVx1MDQ1'@; put 'MVx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwZVx1MDQ1ZVx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMTE2XHhhNFx1MjVhMFx4YTAiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdCht'@; put 'KTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVs4NzRdPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgx'@; put 'ZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAyNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRcdTBl'@; put 'MDVcdTBlMDZcdTBlMDdcdTBlMDhcdTBlMDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBlMGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVcdTBlMTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBlMjBc'@; put 'dTBlMjFcdTBlMjJcdTBlMjNcdTBlMjRcdTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhcdTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBlMzFcdTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdTBlM2ZcdTBlNDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBlNDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNcdTBlNGRcdTBlNGVcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBlNTdc'@; put 'dTBlNThcdTBlNTlcdTBlNWFcdTBlNWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVs4'@; put 'OTVdPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3'@; put 'ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDEwY1x4ZmNceGU5XHUwMTBmXHhlNFx1MDEwZVx1MDE2NFx1MDEwZFx1MDExYlx1MDExYVx1MDEzOVx4Y2RcdTAxM2VcdTAxZWFceGM0XHhjMVx4Yzlc'@; put 'dTAxN2VcdTAxN2RceGY0XHhmNlx4ZDNcdTAxNmZceGRhXHhmZFx4ZDZceGRjXHUwMTYwXHUwMTNkXHhkZFx1MDE1OFx1MDE2NVx4ZTFceGVkXHhmM1x4ZmFcdTAxNDhcdTAxNDdcdTAxNmVceGQ0XHUwMTYxXHUwMTU5XHUwMTU1XHUwMTU0XHhiY1x4YTdceGFiXHhiYlx1MjU5MVx1MjU5Mlx1'@; put 'MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1'@; put 'MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4'@; put 'XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixhZT1bXSx4PXt9LG09MDsyNTYhPW07KyttKTY1NTMzIT09Ri5jaGFyQ29k'@; put 'ZUF0KG0pJiYoeFtGLmNoYXJBdChtKV09bSksYWVbbV09Ri5jaGFyQXQobSk7cmV0dXJue2VuYzp4LGRlYzphZX19KCksSWVbOTMyXT1mdW5jdGlvbigpe3ZhciBtLEY9W10sYWU9e30seD1bXTtmb3IoeFswXT0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgw'@; put 'ZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9'@; put 'flx4N2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmNjFcdWZmNjJcdWZmNjNcdWZmNjRcdWZmNjVcdWZmNjZcdWZmNjdcdWZmNjhcdWZmNjlcdWZmNmFcdWZmNmJcdWZmNmNcdWZmNmRcdWZmNmVcdWZmNmZcdWZmNzBcdWZmNzFcdWZmNzJcdWZmNzNcdWZmNzRcdWZmNzVc'@; put 'dWZmNzZcdWZmNzdcdWZmNzhcdWZmNzlcdWZmN2FcdWZmN2JcdWZmN2NcdWZmN2RcdWZmN2VcdWZmN2ZcdWZmODBcdWZmODFcdWZmODJcdWZmODNcdWZmODRcdWZmODVcdWZmODZcdWZmODdcdWZmODhcdWZmODlcdWZmOGFcdWZmOGJcdWZmOGNcdWZmOGRcdWZmOGVcdWZmOGZcdWZmOTBcdWZm'@; put 'OTFcdWZmOTJcdWZmOTNcdWZmOTRcdWZmOTVcdWZmOTZcdWZmOTdcdWZmOThcdWZmOTlcdWZmOWFcdWZmOWJcdWZmOWNcdWZmOWRcdWZmOWVcdWZmOWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFswXS5sZW5ndGg7KyttKTY1NTMzIT09eFswXVttXS5j'@; put 'aGFyQ29kZUF0KDApJiYoYWVbeFswXVttXV09MCttLEZbMCttXT14WzBdW21dKTtmb3IoeFsxMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZmMWFcdWZmMWJcdWZm'@; put 'MWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1Y1x1MjAyNlx1MjAy'@; put 'NVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOFx1MzAwOVx1MzAwYVx1MzAwYlx1MzAwY1x1MzAwZFx1MzAwZVx1MzAwZlx1MzAxMFx1MzAxMVx1ZmYwYlx1ZmYwZFx4YjFceGQ3XHVmZmZkXHhmN1x1'@; put 'ZmYxZFx1MjI2MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVcdWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZmMDZcdWZmMGFcdWZmMjBceGE3XHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUy'@; put 'NWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjA4'@; put 'XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHUyMTJiXHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjVlZlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEyOV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTI5XVttXS5jaGFyQ29kZUF0KDApJiYo'@; put 'YWVbeFsxMjldW21dXT0zMzAyNCttLEZbMzMwMjQrbV09eFsxMjldW21dKTtmb3IoeFsxMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZm'@; put 'MjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJcdTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZcdTMwNTBcdTMwNTFcdTMwNTJcdTMwNTNcdTMwNTRcdTMwNTVcdTMwNTZcdTMwNTdcdTMwNThc'@; put 'dTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMwNjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMwNmJcdTMwNmNcdTMwNmRcdTMwNmVcdTMwNmZcdTMwNzBcdTMwNzFcdTMwNzJcdTMwNzNcdTMw'@; put 'NzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJcdTMwODNcdTMwODRcdTMwODVcdTMwODZcdTMwODdcdTMwODhcdTMwODlcdTMwOGFcdTMwOGJcdTMwOGNcdTMwOGRcdTMwOGVcdTMwOGZc'@; put 'dTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxMzBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzMF1bbV0uY2hh'@; put 'ckNvZGVBdCgwKSYmKGFlW3hbMTMwXVttXV09MzMyODArbSxGWzMzMjgwK21dPXhbMTMwXVttXSk7Zm9yKHhbMTMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMGExXHUzMGEyXHUzMGEzXHUzMGE0XHUzMGE1XHUzMGE2XHUzMGE3'@; put 'XHUzMGE4XHUzMGE5XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFkXHUzMGFlXHUzMGFmXHUzMGIwXHUzMGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUzMGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJiXHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJmXHUzMGMwXHUzMGMxXHUzMGMyXHUz'@; put 'MGMzXHUzMGM0XHUzMGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUzMGM5XHUzMGNhXHUzMGNiXHUzMGNjXHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQwXHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUzMGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUzMGRiXHUzMGRjXHUzMGRkXHUzMGRl'@; put 'XHUzMGRmXHVmZmZkXHUzMGUwXHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0XHUzMGU1XHUzMGU2XHUzMGU3XHUzMGU4XHUzMGU5XHUzMGVhXHUzMGViXHUzMGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYxXHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1XHUzMGY2XHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3'@; put 'XHUwM2E4XHUwM2E5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUw'@; put 'M2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTMxXS5sZW5ndGg7KyttKTY1NTMzIT09'@; put 'eFsxMzFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzMV1bbV1dPTMzNTM2K20sRlszMzUzNittXT14WzEzMV1bbV0pO2Zvcih4WzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQx'@; put 'NFx1MDQxNVx1MDQwMVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1'@; put 'MDQyZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQ1MVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQz'@; put 'YVx1MDQzYlx1MDQzY1x1MDQzZFx1ZmZmZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUy'@; put 'Ylx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzMl0ubGVuZ3Ro'@; put 'OysrbSk2NTUzMyE9PXhbMTMyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMzJdW21dXT0zMzc5MittLEZbMzM3OTIrbV09eFsxMzJdW21dKTtmb3IoeFsxMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI0NjBcdTI0NjFcdTI0'@; put 'NjJcdTI0NjNcdTI0NjRcdTI0NjVcdTI0NjZcdTI0NjdcdTI0NjhcdTI0NjlcdTI0NmFcdTI0NmJcdTI0NmNcdTI0NmRcdTI0NmVcdTI0NmZcdTI0NzBcdTI0NzFcdTI0NzJcdTI0NzNcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIxNjdcdTIxNjhcdTIxNjlc'@; put 'dWZmZmRcdTMzNDlcdTMzMTRcdTMzMjJcdTMzNGRcdTMzMThcdTMzMjdcdTMzMDNcdTMzMzZcdTMzNTFcdTMzNTdcdTMzMGRcdTMzMjZcdTMzMjNcdTMzMmJcdTMzNGFcdTMzM2JcdTMzOWNcdTMzOWRcdTMzOWVcdTMzOGVcdTMzOGZcdTMzYzRcdTMzYTFcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMzN2JcdWZmZmRcdTMwMWRcdTMwMWZcdTIxMTZcdTMzY2RcdTIxMjFcdTMyYTRcdTMyYTVcdTMyYTZcdTMyYTdcdTMyYThcdTMyMzFcdTMyMzJcdTMyMzlcdTMzN2VcdTMzN2RcdTMzN2NcdTIyNTJcdTIyNjFcdTIyMmJcdTIyMmVcdTIyMTFc'@; put 'dTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIyMmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9'@; put 'eFsxMzVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzNV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTM1XVttXV09MzQ1NjArbSxGWzM0NTYwK21dPXhbMTM1XVttXSk7Zm9yKHhbMTM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTljXHU1NTE2XHU1YTAzXHU5NjNmXHU1NGMwXHU2MTFiXHU2MzI4XHU1OWY2XHU5MDIyXHU4NDc1XHU4MzFjXHU3YTUwXHU2MGFhXHU2M2UxXHU2ZTI1XHU2'@; put 'NWVkXHU4NDY2XHU4MmE2XHU5YmY1XHU2ODkzXHU1NzI3XHU2NWExXHU2MjcxXHU1YjliXHU1OWQwXHU4NjdiXHU5OGY0XHU3ZDYyXHU3ZGJlXHU5YjhlXHU2MjE2XHU3YzlmXHU4OGI3XHU1Yjg5XHU1ZWI1XHU2MzA5XHU2Njk3XHU2ODQ4XHU5NWM3XHU5NzhkXHU2NzRmXHU0ZWU1XHU0ZjBh'@; put 'XHU0ZjRkXHU0ZjlkXHU1MDQ5XHU1NmYyXHU1OTM3XHU1OWQ0XHU1YTAxXHU1YzA5XHU2MGRmXHU2MTBmXHU2MTcwXHU2NjEzXHU2OTA1XHU3MGJhXHU3NTRmXHU3NTcwXHU3OWZiXHU3ZGFkXHU3ZGVmXHU4MGMzXHU4NDBlXHU4ODYzXHU4YjAyXHU5MDU1XHU5MDdhXHU1MzNiXHU0ZTk1XHU0'@; put 'ZWE1XHU1N2RmXHU4MGIyXHU5MGMxXHU3OGVmXHU0ZTAwXHU1OGYxXHU2ZWEyXHU5MDM4XHU3YTMyXHU4MzI4XHU4MjhiXHU5YzJmXHU1MTQxXHU1MzcwXHU1NGJkXHU1NGUxXHU1NmUwXHU1OWZiXHU1ZjE1XHU5OGYyXHU2ZGViXHU4MGU0XHU4NTJkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxp'@; put 'dCgiIiksbT0wO20hPXhbMTM2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxMzZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzNl1bbV1dPTM0ODE2K20sRlszNDgxNittXT14WzEzNl1bbV0pO2Zvcih4WzEzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1OTY2Mlx1OTY3MFx1OTZhMFx1OTdmYlx1NTQwYlx1NTNmM1x1NWI4N1x1NzBjZlx1N2ZiZFx1OGZjMlx1OTZlOFx1NTM2Zlx1OWQ1Y1x1N2FiYVx1NGUxMVx1Nzg5M1x1ODFmY1x1NmUyNlx1NTYxOFx1NTUwNFx1NmIxZFx1ODUxYVx1OWMzYlx1NTllNVx1NTNhOVx1NmQ2'@; put 'Nlx1NzRkY1x1OTU4Zlx1NTY0Mlx1NGU5MVx1OTA0Ylx1OTZmMlx1ODM0Zlx1OTkwY1x1NTNlMVx1NTViNlx1NWIzMFx1NWY3MVx1NjYyMFx1NjZmM1x1NjgwNFx1NmMzOFx1NmNmM1x1NmQyOVx1NzQ1Ylx1NzZjOFx1N2E0ZVx1OTgzNFx1ODJmMVx1ODg1Ylx1OGE2MFx1OTJlZFx1NmRiMlx1'@; put 'NzVhYlx1NzZjYVx1OTljNVx1NjBhNlx1OGIwMVx1OGQ4YVx1OTViMlx1Njk4ZVx1NTNhZFx1NTE4Nlx1ZmZmZFx1NTcxMlx1NTgzMFx1NTk0NFx1NWJiNFx1NWVmNlx1NjAyOFx1NjNhOVx1NjNmNFx1NmNiZlx1NmYxNFx1NzA4ZVx1NzExNFx1NzE1OVx1NzFkNVx1NzMzZlx1N2UwMVx1ODI3'@; put 'Nlx1ODJkMVx1ODU5N1x1OTA2MFx1OTI1Ylx1OWQxYlx1NTg2OVx1NjViY1x1NmM1YVx1NzUyNVx1NTFmOVx1NTkyZVx1NTk2NVx1NWY4MFx1NWZkY1x1NjJiY1x1NjVmYVx1NmEyYVx1NmIyN1x1NmJiNFx1NzM4Ylx1N2ZjMVx1ODk1Nlx1OWQyY1x1OWQwZVx1OWVjNFx1NWNhMVx1NmM5Nlx1'@; put 'ODM3Ylx1NTEwNFx1NWM0Ylx1NjFiNlx1ODFjNlx1Njg3Nlx1NzI2MVx1NGU1OVx1NGZmYVx1NTM3OFx1NjA2OVx1NmUyOVx1N2E0Zlx1OTdmM1x1NGUwYlx1NTMxNlx1NGVlZVx1NGY1NVx1NGYzZFx1NGZhMVx1NGY3M1x1NTJhMFx1NTNlZlx1NTYwOVx1NTkwZlx1NWFjMVx1NWJiNlx1NWJl'@; put 'MVx1NzlkMVx1NjY4N1x1Njc5Y1x1NjdiNlx1NmI0Y1x1NmNiM1x1NzA2Ylx1NzNjMlx1Nzk4ZFx1NzliZVx1N2EzY1x1N2I4N1x1ODJiMVx1ODJkYlx1ODMwNFx1ODM3N1x1ODNlZlx1ODNkM1x1ODc2Nlx1OGFiMlx1NTYyOVx1OGNhOFx1OGZlNlx1OTA0ZVx1OTcxZVx1ODY4YVx1NGZjNFx1'@; put 'NWNlOFx1NjIxMVx1NzI1OVx1NzUzYlx1ODFlNVx1ODJiZFx1ODZmZVx1OGNjMFx1OTZjNVx1OTkxM1x1OTlkNVx1NGVjYlx1NGYxYVx1ODllM1x1NTZkZVx1NTg0YVx1NThjYVx1NWVmYlx1NWZlYlx1NjAyYVx1NjA5NFx1NjA2Mlx1NjFkMFx1NjIxMlx1NjJkMFx1NjUzOVx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzN10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTM3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMzddW21dXT0zNTA3MittLEZbMzUwNzIrbV09eFsxMzddW21dKTtmb3IoeFsxMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVcdThjOWRcdTUxZjFcdTUyYmVcdTU5MTZcdTU0YjNcdTViYjNcdTVkMTZcdTYxNjhcdTY5ODJcdTZkYWZcdTc4OGRcdTg0'@; put 'Y2JcdTg4NTdcdThhNzJcdTkzYTdcdTlhYjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYyZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZiYmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5OWFcdTg5ZDJcdThkNmJcdThmMDNc'@; put 'dTkwZWRcdTk1YTNcdTk2OTRcdTk3NjlcdTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmJcdWZmZmRcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZcdTUyNzJcdTU1OWRcdTYwNzBcdTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFcdTg0NWJcdTg5MTBcdThmNDRcdTRl'@; put 'MTRcdTljMzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzFcdTdjYTVcdTUyMDhcdTgyYzVcdTc0ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTViZDJcdTUyMGFcdTUyZDhcdTUyZTdc'@; put 'dTVkZmJcdTU1OWFcdTU4MmFcdTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJcdTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNcdTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVcdTc0YjBcdTc1MThcdTc2ZTNcdTc3'@; put 'MGJcdTdhZmZcdTdiYTFcdTdjMjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVjYjhcdTVkY2NcdTczYTlcdTc2NGNc'@; put 'dTc3M2NcdTVjYTlcdTdmZWJcdThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdcdTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2VcdTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdcdTY1ZTJcdTY3MWZcdTY4Y2JcdTY4'@; put 'YzRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxMzhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzOF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTM4XVttXV09MzUzMjgrbSxGWzM1MzI4K21dPXhbMTM4XVttXSk7Zm9yKHhbMTM5XT0iXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YTVmXHU1ZTMwXHU2YmM1XHU2YzE3XHU2YzdkXHU3NTdmXHU3OTQ4XHU1YjYzXHU3YTAwXHU3ZDAwXHU1ZmJkXHU4OThmXHU4YTE4XHU4Y2I0XHU4ZDc3XHU4ZWNjXHU4ZjFkXHU5OGUyXHU5YTBlXHU5YjNjXHU0ZTgwXHU1'@; put 'MDdkXHU1MTAwXHU1OTkzXHU1YjljXHU2MjJmXHU2MjgwXHU2NGVjXHU2YjNhXHU3MmEwXHU3NTkxXHU3OTQ3XHU3ZmE5XHU4N2ZiXHU4YWJjXHU4YjcwXHU2M2FjXHU4M2NhXHU5N2EwXHU1NDA5XHU1NDAzXHU1NWFiXHU2ODU0XHU2YTU4XHU4YTcwXHU3ODI3XHU2Nzc1XHU5ZWNkXHU1Mzc0'@; put 'XHU1YmEyXHU4MTFhXHU4NjUwXHU5MDA2XHU0ZTE4XHU0ZTQ1XHU0ZWM3XHU0ZjExXHU1M2NhXHU1NDM4XHU1YmFlXHU1ZjEzXHU2MDI1XHU2NTUxXHVmZmZkXHU2NzNkXHU2YzQyXHU2YzcyXHU2Y2UzXHU3MDc4XHU3NDAzXHU3YTc2XHU3YWFlXHU3YjA4XHU3ZDFhXHU3Y2ZlXHU3ZDY2XHU2'@; put 'NWU3XHU3MjViXHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MmUwXHU2MzE5XHU2ZTIwXHU4NjVhXHU4YTMxXHU4ZGRkXHU5MmY4XHU2ZjAxXHU3OWE2XHU5YjVhXHU0ZWE4XHU0ZWFiXHU0ZWFjXHU0ZjliXHU0ZmEwXHU1MGQxXHU1MTQ3XHU3YWY2XHU1MTcxXHU1MWY2XHU1MzU0XHU1MzIx'@; put 'XHU1MzdmXHU1M2ViXHU1NWFjXHU1ODgzXHU1Y2UxXHU1ZjM3XHU1ZjRhXHU2MDJmXHU2MDUwXHU2MDZkXHU2MzFmXHU2NTU5XHU2YTRiXHU2Y2MxXHU3MmMyXHU3MmVkXHU3N2VmXHU4MGY4XHU4MTA1XHU4MjA4XHU4NTRlXHU5MGY3XHU5M2UxXHU5N2ZmXHU5OTU3XHU5YTVhXHU0ZWYwXHU1'@; put 'MWRkXHU1YzJkXHU2NjgxXHU2OTZkXHU1YzQwXHU2NmYyXHU2OTc1XHU3Mzg5XHU2ODUwXHU3YzgxXHU1MGM1XHU1MmU0XHU1NzQ3XHU1ZGZlXHU5MzI2XHU2NWE0XHU2YjIzXHU2YjNkXHU3NDM0XHU3OTgxXHU3OWJkXHU3YjRiXHU3ZGNhXHU4MmI5XHU4M2NjXHU4ODdmXHU4OTVmXHU4YjM5'@; put 'XHU4ZmQxXHU5MWQxXHU1NDFmXHU5MjgwXHU0ZTVkXHU1MDM2XHU1M2U1XHU1MzNhXHU3MmQ3XHU3Mzk2XHU3N2U5XHU4MmU2XHU4ZWFmXHU5OWM2XHU5OWM4XHU5OWQyXHU1MTc3XHU2MTFhXHU4NjVlXHU1NWIwXHU3YTdhXHU1MDc2XHU1YmQzXHU5MDQ3XHU5Njg1XHU0ZTMyXHU2YWRiXHU5'@; put 'MWU3XHU1YzUxXHU1YzQ4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTM5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxMzldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzOV1bbV1dPTM1NTg0K20sRlszNTU4NCttXT14WzEzOV1bbV0pO2Zvcih4WzE0MF09Ilx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjM5OFx1N2E5Zlx1NmM5M1x1OTc3NFx1OGY2MVx1N2FhYVx1NzE4YVx1OTY4OFx1N2M4Mlx1NjgxN1x1N2U3MFx1Njg1MVx1OTM2Y1x1NTJmMlx1NTQxYlx1ODVhYlx1OGExM1x1N2ZhNFx1OGVjZFx1'@; put 'OTBlMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NGZjMlx1NTBiZVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyZFx1NzNlYVx1NTc4Ylx1NTk1MVx1NWY2Mlx1NWY4NFx1NjA3NVx1NjE3Nlx1NjE2N1x1NjFhOVx1NjNiMlx1NjQzYVx1NjU2Y1x1NjY2Zlx1Njg0Mlx1NmUxM1x1NzU2Nlx1N2EzZFx1N2Nm'@; put 'Ylx1N2Q0Y1x1N2Q5OVx1N2U0Ylx1N2Y2Ylx1ODMwZVx1ODM0YVx1ODZjZFx1OGEwOFx1OGE2M1x1OGI2Nlx1OGVmZFx1OTgxYVx1OWQ4Zlx1ODJiOFx1OGZjZVx1OWJlOFx1ZmZmZFx1NTI4N1x1NjIxZlx1NjQ4M1x1NmZjMFx1OTY5OVx1Njg0MVx1NTA5MVx1NmIyMFx1NmM3YVx1NmY1NFx1'@; put 'N2E3NFx1N2Q1MFx1ODg0MFx1OGEyM1x1NjcwOFx1NGVmNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Y1x1NTIzOFx1NTI2M1x1NTVhN1x1NTcwZlx1NTgwNVx1NWFjY1x1NWVmYVx1NjFiMlx1NjFmOFx1NjJmM1x1NjM3Mlx1NjkxY1x1NmEyOVx1NzI3ZFx1NzJhY1x1NzMyZVx1NzgxNFx1Nzg2'@; put 'Zlx1N2Q3OVx1NzcwY1x1ODBhOVx1ODk4Ylx1OGIxOVx1OGNlMlx1OGVkMlx1OTA2M1x1OTM3NVx1OTY3YVx1OTg1NVx1OWExM1x1OWU3OFx1NTE0M1x1NTM5Zlx1NTNiM1x1NWU3Ylx1NWYyNlx1NmUxYlx1NmU5MFx1NzM4NFx1NzNmZVx1N2Q0M1x1ODIzN1x1OGEwMFx1OGFmYVx1OTY1MFx1'@; put 'NGU0ZVx1NTAwYlx1NTNlNFx1NTQ3Y1x1NTZmYVx1NTlkMVx1NWI2NFx1NWRmMVx1NWVhYlx1NWYyN1x1NjIzOFx1NjU0NVx1NjdhZlx1NmU1Nlx1NzJkMFx1N2NjYVx1ODhiNFx1ODBhMVx1ODBlMVx1ODNmMFx1ODY0ZVx1OGE4N1x1OGRlOFx1OTIzN1x1OTZjN1x1OTg2N1x1OWYxM1x1NGU5'@; put 'NFx1NGU5Mlx1NGYwZFx1NTM0OFx1NTQ0OVx1NTQzZVx1NWEyZlx1NWY4Y1x1NWZhMVx1NjA5Zlx1NjhhN1x1NmE4ZVx1NzQ1YVx1Nzg4MVx1OGE5ZVx1OGFhNFx1OGI3N1x1OTE5MFx1NGU1ZVx1OWJjOVx1NGVhNFx1NGY3Y1x1NGZhZlx1NTAxOVx1NTAxNlx1NTE0OVx1NTE2Y1x1NTI5Zlx1'@; put 'NTJiOVx1NTJmZVx1NTM5YVx1NTNlM1x1NTQxMVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDBdW21dXT0zNTg0MCttLEZbMzU4NDArbV09eFsxNDBdW21dKTtmb3Io'@; put 'eFsxNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0MGVcdTU1ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVkZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVlOWFcdTVlYjdcdTVmMThcdTYwNTJc'@; put 'dTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJcdTY2NDNcdTY2ZjRcdTY3NmRcdTY4MjFcdTY4OTdcdTY5Y2JcdTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNcdTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThcdTdkNWVcdTdkYjFcdTgwMTVcdTgw'@; put 'MDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgzNTJcdTg4NGNcdTg4NjFcdThiMWJcdThjYTJcdThjZmNcdTkwY2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGRcdWZmZmRcdTk4MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUyNWJcdTUyYWJcdTUzZjdcdTU0MDhc'@; put 'dTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZcdTllYjlcdTUxNGJcdTUyM2JcdTU0NGFcdTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBcdTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFcdTlhYThcdTcyZGJcdThmYmNcdTZiNjRcdTk4MDNcdTRlY2FcdTU2ZjBcdTU3'@; put 'NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2MGZcdTY2MDZcdTY4MzlcdTY4YjFcdTZkZjdcdTc1ZDVcdTdkM2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVkZWVcdTY3ZmJcdTZjOTlcdTc0NzNcdTc4MDJcdThhNTBcdTkzOTZcdTg4ZGZc'@; put 'dTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNcdTUxOGRcdTY3MDBcdTU0YzlcdTU4NWVcdTU5YmJcdTViYjBcdTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBcdTc4MTVcdTc4MjZcdTc5NmRcdTY1OGVcdTdkMzBcdTgzZGNcdTg4YzFcdThm'@; put 'MDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdmNmFcdThjYTFcdTUxYjRcdTU3NDJcdTk2MmFcdTU4M2FcdTY5OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0OGJcdTY0M2VcdTY2MjhcdTY3MTRcdTY3ZjVcdTdhODRcdTdiNTZcdTdkMjJc'@; put 'dTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlcdTUxOGFcdTUyMzdcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTQxXVttXV09MzYwOTYrbSxGWzM2MDk2K21dPXhb'@; put 'MTQxXVttXSk7Zm9yKHhbMTQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YmRmXHU2MmY2XHU2NGFlXHU2NGU2XHU2NzJkXHU2YmJhXHU4NWE5XHU5NmQxXHU3NjkwXHU5YmQ2XHU2MzRjXHU5MzA2XHU5YmFiXHU3NmJmXHU2NjUy'@; put 'XHU0ZTA5XHU1MDk4XHU1M2MyXHU1YzcxXHU2MGU4XHU2NDkyXHU2NTYzXHU2ODVmXHU3MWU2XHU3M2NhXHU3NTIzXHU3Yjk3XHU3ZTgyXHU4Njk1XHU4YjgzXHU4Y2RiXHU5MTc4XHU5OTEwXHU2NWFjXHU2NmFiXHU2YjhiXHU0ZWQ1XHU0ZWQ0XHU0ZjNhXHU0ZjdmXHU1MjNhXHU1M2Y4XHU1'@; put 'M2YyXHU1NWUzXHU1NmRiXHU1OGViXHU1OWNiXHU1OWM5XHU1OWZmXHU1YjUwXHU1YzRkXHU1ZTAyXHU1ZTJiXHU1ZmQ3XHU2MDFkXHU2MzA3XHU2NTJmXHU1YjVjXHU2NWFmXHU2NWJkXHU2NWU4XHU2NzlkXHU2YjYyXHVmZmZkXHU2YjdiXHU2YzBmXHU3MzQ1XHU3OTQ5XHU3OWMxXHU3Y2Y4'@; put 'XHU3ZDE5XHU3ZDJiXHU4MGEyXHU4MTAyXHU4MWYzXHU4OTk2XHU4YTVlXHU4YTY5XHU4YTY2XHU4YThjXHU4YWVlXHU4Y2M3XHU4Y2RjXHU5NmNjXHU5OGZjXHU2YjZmXHU0ZThiXHU0ZjNjXHU0ZjhkXHU1MTUwXHU1YjU3XHU1YmZhXHU2MTQ4XHU2MzAxXHU2NjQyXHU2YjIxXHU2ZWNiXHU2'@; put 'Y2JiXHU3MjNlXHU3NGJkXHU3NWQ0XHU3OGMxXHU3OTNhXHU4MDBjXHU4MDMzXHU4MWVhXHU4NDk0XHU4ZjllXHU2YzUwXHU5ZTdmXHU1ZjBmXHU4YjU4XHU5ZDJiXHU3YWZhXHU4ZWY4XHU1YjhkXHU5NmViXHU0ZTAzXHU1M2YxXHU1N2Y3XHU1OTMxXHU1YWM5XHU1YmE0XHU2MDg5XHU2ZTdm'@; put 'XHU2ZjA2XHU3NWJlXHU4Y2VhXHU1YjlmXHU4NTAwXHU3YmUwXHU1MDcyXHU2N2Y0XHU4MjlkXHU1YzYxXHU4NTRhXHU3ZTFlXHU4MjBlXHU1MTk5XHU1YzA0XHU2MzY4XHU4ZDY2XHU2NTljXHU3MTZlXHU3OTNlXHU3ZDE3XHU4MDA1XHU4YjFkXHU4ZWNhXHU5MDZlXHU4NmM3XHU5MGFhXHU1'@; put 'MDFmXHU1MmZhXHU1YzNhXHU2NzUzXHU3MDdjXHU3MjM1XHU5MTRjXHU5MWM4XHU5MzJiXHU4MmU1XHU1YmMyXHU1ZjMxXHU2MGY5XHU0ZTNiXHU1M2Q2XHU1Yjg4XHU2MjRiXHU2NzMxXHU2YjhhXHU3MmU5XHU3M2UwXHU3YTJlXHU4MTZiXHU4ZGEzXHU5MTUyXHU5OTk2XHU1MTEyXHU1M2Q3'@; put 'XHU1NDZhXHU1YmZmXHU2Mzg4XHU2YTM5XHU3ZGFjXHU5NzAwXHU1NmRhXHU1M2NlXHU1NDY4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTQyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0Ml1bbV1dPTM2MzUyK20s'@; put 'RlszNjM1MittXT14WzE0Ml1bbV0pO2Zvcih4WzE0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWI5N1x1NWMzMVx1NWRkZVx1NGZlZVx1NjEwMVx1NjJmZVx1NmQzMlx1NzljMFx1NzljYlx1N2Q0Mlx1N2U0ZFx1N2ZkMlx1ODFl'@; put 'ZFx1ODIxZlx1ODQ5MFx1ODg0Nlx1ODk3Mlx1OGI5MFx1OGU3NFx1OGYyZlx1OTAzMVx1OTE0Ylx1OTE2Y1x1OTZjNlx1OTE5Y1x1NGVjMFx1NGY0Zlx1NTE0NVx1NTM0MVx1NWY5M1x1NjIwZVx1NjdkNFx1NmM0MVx1NmUwYlx1NzM2M1x1N2UyNlx1OTFjZFx1OTI4M1x1NTNkNFx1NTkxOVx1'@; put 'NWJiZlx1NmRkMVx1Nzk1ZFx1N2UyZVx1N2M5Ylx1NTg3ZVx1NzE5Zlx1NTFmYVx1ODg1M1x1OGZmMFx1NGZjYVx1NWNmYlx1NjYyNVx1NzdhY1x1N2FlM1x1ODIxY1x1OTlmZlx1NTFjNlx1NWZhYVx1NjVlY1x1Njk2Zlx1NmI4OVx1NmRmM1x1ZmZmZFx1NmU5Nlx1NmY2NFx1NzZmZVx1N2Qx'@; put 'NFx1NWRlMVx1OTA3NVx1OTE4N1x1OTgwNlx1NTFlNlx1NTIxZFx1NjI0MFx1NjY5MVx1NjZkOVx1NmUxYVx1NWViNlx1N2RkMlx1N2Y3Mlx1NjZmOFx1ODVhZlx1ODVmN1x1OGFmOFx1NTJhOVx1NTNkOVx1NTk3M1x1NWU4Zlx1NWY5MFx1NjA1NVx1OTJlNFx1OTY2NFx1NTBiN1x1NTExZlx1'@; put 'NTJkZFx1NTMyMFx1NTM0N1x1NTNlY1x1NTRlOFx1NTU0Nlx1NTUzMVx1NTYxN1x1NTk2OFx1NTliZVx1NWEzY1x1NWJiNVx1NWMwNlx1NWMwZlx1NWMxMVx1NWMxYVx1NWU4NFx1NWU4YVx1NWVlMFx1NWY3MFx1NjI3Zlx1NjI4NFx1NjJkYlx1NjM4Y1x1NjM3N1x1NjYwN1x1NjYwY1x1NjYy'@; put 'ZFx1NjY3Nlx1Njc3ZVx1NjhhMlx1NmExZlx1NmEzNVx1NmNiY1x1NmQ4OFx1NmUwOVx1NmU1OFx1NzEzY1x1NzEyNlx1NzE2N1x1NzVjN1x1NzcwMVx1Nzg1ZFx1NzkwMVx1Nzk2NVx1NzlmMFx1N2FlMFx1N2IxMVx1N2NhN1x1N2QzOVx1ODA5Nlx1ODNkNlx1ODQ4Ylx1ODU0OVx1ODg1ZFx1'@; put 'ODhmM1x1OGExZlx1OGEzY1x1OGE1NFx1OGE3M1x1OGM2MVx1OGNkZVx1OTFhNFx1OTI2Nlx1OTM3ZVx1OTQxOFx1OTY5Y1x1OTc5OFx1NGUwYVx1NGUwOFx1NGUxZVx1NGU1N1x1NTE5N1x1NTI3MFx1NTdjZVx1NTgzNFx1NThjY1x1NWIyMlx1NWUzOFx1NjBjNVx1NjRmZVx1Njc2MVx1Njc1'@; put 'Nlx1NmQ0NFx1NzJiNlx1NzU3M1x1N2E2M1x1ODRiOFx1OGI3Mlx1OTFiOFx1OTMyMFx1NTYzMVx1NTdmNFx1OThmZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDNd'@; put 'W21dXT0zNjYwOCttLEZbMzY2MDgrbV09eFsxNDNdW21dKTtmb3IoeFsxNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYyZWRcdTY5MGRcdTZiOTZcdTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJcdTg5ZTZcdTk4ZGZcdTg3NTVcdThm'@; put 'YjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVcdTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4ZWVcdTY5OWJcdTZkNzhcdTZkZjFcdTc1MzNcdTc1YjlcdTc3MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgxZTNcdTgyYWZcdTg1YWFcdTg5YWFc'@; put 'dThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkxZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2RcdTgxNGVcdThhMGFcdThmYzVcdTk2NjNcdTk3NmRcdTdiMjVcdThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNcdTUzYThcdWZmZmRcdTkwMTdcdTU0'@; put 'MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFcdTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkzMThcdTk2OGZcdTc0NWVcdTlhYzRcdTVkMDdcdTVkNjlcdTY1NzBcdTY3YTJcdThkYThcdTk2ZGJcdTYzNmVcdTY3NDlcdTY5MTlcdTgzYzVcdTk4MTdc'@; put 'dTk2YzBcdTg4ZmVcdTZmODRcdTY0N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNcdTVmODFcdTYwMjdcdTYyMTBcdTY1M2ZcdTY1NzRcdTY2MWZcdTY2NzRcdTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVcdTcyNzJcdTc1MWZcdTc2ZGJcdTdj'@; put 'YmVcdTgwNTZcdTU4ZjBcdTg4ZmRcdTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdhMGVcdTgxMDZcdTk2YmJcdTVlMmRcdTYwZGNcdTYyMWFcdTY1YTVcdTY2MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdjNGRcdTdlM2VcdTgxMGFcdThjYWNc'@; put 'dThkNjRcdThkZTFcdThlNWZcdTc4YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNcdTk2ZWFcdTdkNzZcdTgyMGNcdTg3NDlcdTRlZDlcdTUxNDhcdTUzNDNcdTUzNjBcdTViYTNcdTVjMDJcdTVjMTZcdTVkZGRcdTYyMjZcdTYyNDdcdTY0'@; put 'YjBcdTY4MTNcdTY4MzRcdTZjYzlcdTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdkZGFcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0NF1bbV0uY2hhckNvZGVBdCgw'@; put 'KSYmKGFlW3hbMTQ0XVttXV09MzY4NjQrbSxGWzM2ODY0K21dPXhbMTQ0XVttXSk7Zm9yKHhbMTQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTRhXHU3ZmE4XHU4MTdhXHU4MjFiXHU4MjM5XHU4NWE2XHU4YTZlXHU4Y2NlXHU4'@; put 'ZGY1XHU5MDc4XHU5MDc3XHU5MmFkXHU5MjkxXHU5NTgzXHU5YmFlXHU1MjRkXHU1NTg0XHU2ZjM4XHU3MTM2XHU1MTY4XHU3OTg1XHU3ZTU1XHU4MWIzXHU3Y2NlXHU1NjRjXHU1ODUxXHU1Y2E4XHU2M2FhXHU2NmZlXHU2NmZkXHU2OTVhXHU3MmQ5XHU3NThmXHU3NThlXHU3OTBlXHU3OTU2'@; put 'XHU3OWRmXHU3Yzk3XHU3ZDIwXHU3ZDQ0XHU4NjA3XHU4YTM0XHU5NjNiXHU5MDYxXHU5ZjIwXHU1MGU3XHU1Mjc1XHU1M2NjXHU1M2UyXHU1MDA5XHU1NWFhXHU1OGVlXHU1OTRmXHU3MjNkXHU1YjhiXHU1YzY0XHU1MzFkXHU2MGUzXHU2MGYzXHU2MzVjXHU2MzgzXHU2MzNmXHU2M2JiXHVm'@; put 'ZmZkXHU2NGNkXHU2NWU5XHU2NmY5XHU1ZGUzXHU2OWNkXHU2OWZkXHU2ZjE1XHU3MWU1XHU0ZTg5XHU3NWU5XHU3NmY4XHU3YTkzXHU3Y2RmXHU3ZGNmXHU3ZDljXHU4MDYxXHU4MzQ5XHU4MzU4XHU4NDZjXHU4NGJjXHU4NWZiXHU4OGM1XHU4ZDcwXHU5MDAxXHU5MDZkXHU5Mzk3XHU5NzFj'@; put 'XHU5YTEyXHU1MGNmXHU1ODk3XHU2MThlXHU4MWQzXHU4NTM1XHU4ZDA4XHU5MDIwXHU0ZmMzXHU1MDc0XHU1MjQ3XHU1MzczXHU2MDZmXHU2MzQ5XHU2NzVmXHU2ZTJjXHU4ZGIzXHU5MDFmXHU0ZmQ3XHU1YzVlXHU4Y2NhXHU2NWNmXHU3ZDlhXHU1MzUyXHU4ODk2XHU1MTc2XHU2M2MzXHU1'@; put 'YjU4XHU1YjZiXHU1YzBhXHU2NDBkXHU2NzUxXHU5MDVjXHU0ZWQ2XHU1OTFhXHU1OTJhXHU2YzcwXHU4YTUxXHU1NTNlXHU1ODE1XHU1OWE1XHU2MGYwXHU2MjUzXHU2N2MxXHU4MjM1XHU2OTU1XHU5NjQwXHU5OWM0XHU5YTI4XHU0ZjUzXHU1ODA2XHU1YmZlXHU4MDEwXHU1Y2IxXHU1ZTJm'@; put 'XHU1Zjg1XHU2MDIwXHU2MTRiXHU2MjM0XHU2NmZmXHU2Y2YwXHU2ZWRlXHU4MGNlXHU4MTdmXHU4MmQ0XHU4ODhiXHU4Y2I4XHU5MDAwXHU5MDJlXHU5NjhhXHU5ZWRiXHU5YmRiXHU0ZWUzXHU1M2YwXHU1OTI3XHU3YjJjXHU5MThkXHU5ODRjXHU5ZGY5XHU2ZWRkXHU3MDI3XHU1MzUzXHU1'@; put 'NTQ0XHU1Yjg1XHU2MjU4XHU2MjllXHU2MmQzXHU2Y2EyXHU2ZmVmXHU3NDIyXHU4YTE3XHU5NDM4XHU2ZmMxXHU4YWZlXHU4MzM4XHU1MWU3XHU4NmY4XHU1M2VhXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTQ1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDVdW21d'@; put 'LmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0NV1bbV1dPTM3MTIwK20sRlszNzEyMCttXT14WzE0NV1bbV0pO2Zvcih4WzE0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTNlOVx1NGY0Nlx1OTA1NFx1OGZiMFx1NTk2YVx1ODEzMVx1'@; put 'NWRmZFx1N2FlYVx1OGZiZlx1NjhkYVx1OGMzN1x1NzJmOFx1OWM0OFx1NmEzZFx1OGFiMFx1NGUzOVx1NTM1OFx1NTYwNlx1NTc2Nlx1NjJjNVx1NjNhMlx1NjVlNlx1NmI0ZVx1NmRlMVx1NmU1Ylx1NzBhZFx1NzdlZFx1N2FlZlx1N2JhYVx1N2RiYlx1ODAzZFx1ODBjNlx1ODZjYlx1OGE5'@; put 'NVx1OTM1Ylx1NTZlM1x1NThjN1x1NWYzZVx1NjVhZFx1NjY5Nlx1NmE4MFx1NmJiNVx1NzUzN1x1OGFjN1x1NTAyNFx1NzdlNVx1NTczMFx1NWYxYlx1NjA2NVx1NjY3YVx1NmM2MFx1NzVmNFx1N2ExYVx1N2Y2ZVx1ODFmNFx1ODcxOFx1OTA0NVx1OTliM1x1N2JjOVx1NzU1Y1x1N2FmOVx1'@; put 'N2I1MVx1ODRjNFx1ZmZmZFx1OTAxMFx1NzllOVx1N2E5Mlx1ODMzNlx1NWFlMVx1Nzc0MFx1NGUyZFx1NGVmMlx1NWI5OVx1NWZlMFx1NjJiZFx1NjYzY1x1NjdmMVx1NmNlOFx1ODY2Ylx1ODg3N1x1OGEzYlx1OTE0ZVx1OTJmM1x1OTlkMFx1NmExN1x1NzAyNlx1NzMyYVx1ODJlN1x1ODQ1'@; put 'N1x1OGNhZlx1NGUwMVx1NTE0Nlx1NTFjYlx1NTU4Ylx1NWJmNVx1NWUxNlx1NWUzM1x1NWU4MVx1NWYxNFx1NWYzNVx1NWY2Ylx1NWZiNFx1NjFmMlx1NjMxMVx1NjZhMlx1NjcxZFx1NmY2ZVx1NzI1Mlx1NzUzYVx1NzczYVx1ODA3NFx1ODEzOVx1ODE3OFx1ODc3Nlx1OGFiZlx1OGFkY1x1'@; put 'OGQ4NVx1OGRmM1x1OTI5YVx1OTU3N1x1OTgwMlx1OWNlNVx1NTJjNVx1NjM1N1x1NzZmNFx1NjcxNVx1NmM4OFx1NzNjZFx1OGNjM1x1OTNhZVx1OTY3M1x1NmQyNVx1NTg5Y1x1NjkwZVx1NjljY1x1OGZmZFx1OTM5YVx1NzVkYlx1OTAxYVx1NTg1YVx1NjgwMlx1NjNiNFx1NjlmYlx1NGY0'@; put 'M1x1NmYyY1x1NjdkOFx1OGZiYlx1ODUyNlx1N2RiNFx1OTM1NFx1NjkzZlx1NmY3MFx1NTc2YVx1NThmN1x1NWIyY1x1N2QyY1x1NzIyYVx1NTQwYVx1OTFlM1x1OWRiNFx1NGVhZFx1NGY0ZVx1NTA1Y1x1NTA3NVx1NTI0M1x1OGM5ZVx1NTQ0OFx1NTgyNFx1NWI5YVx1NWUxZFx1NWU5NVx1'@; put 'NWVhZFx1NWVmN1x1NWYxZlx1NjA4Y1x1NjJiNVx1NjMzYVx1NjNkMFx1NjhhZlx1NmM0MFx1Nzg4N1x1Nzk4ZVx1N2EwYlx1N2RlMFx1ODI0N1x1OGEwMlx1OGFlNlx1OGU0NFx1OTAxM1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0Nl0ubGVuZ3RoOysrbSk2NTUz'@; put 'MyE9PXhbMTQ2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDZdW21dXT0zNzM3NittLEZbMzczNzYrbV09eFsxNDZdW21dKTtmb3IoeFsxNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwYjhcdTkxMmRcdTkxZDhcdTlmMGVc'@; put 'dTZjZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVcdTVlOTdcdTZkZmJcdTdlOGZcdTc1MWNcdThjYmNcdThlZTJcdTk4NWJcdTcw'@; put 'YjlcdTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJcdTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkwZmRcdTkzNGRcdTc4MjVcdTc4M2FcdTUyYWFcdTVlYTZcdTU3MWZcdTU5NzRc'@; put 'dTYwMTJcdTUwMTJcdTUxNWFcdTUxYWNcdWZmZmRcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVkOGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNcdTY4ZGZcdTc2ZDdcdTZkZDhcdTZlNmZcdTZkOWJcdTcwNmZcdTcxYzhcdTVm'@; put 'NTNcdTc1ZDhcdTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzBcdTg0NjNcdTg1NjlcdTg1ZTRcdThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4MmRcdTlhMzBcdTk1ZDhcdTUwY2RcdTUyZDVcdTU0MGNcdTU4MDJcdTVjMGVc'@; put 'dTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUzM2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJcdTcyZWNcdThhYWRcdTY4MDNcdTZhNjFcdTUxZjhcdTdhODFcdTY5MzRcdTVj'@; put 'NGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFcdTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRlNGRcdTUxZWFcdTg1OTlcdThiMGVcdTcwNThcdTYzN2FcdTkzNGJcdTY5NjJc'@; put 'dTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThmZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjVcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDddLmxl'@; put 'bmd0aDsrK20pNjU1MzMhPT14WzE0N11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTQ3XVttXV09Mzc2MzIrbSxGWzM3NjMyK21dPXhbMTQ3XVttXSk7Zm9yKHhbMTQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTgyXHU1YzNm'@; put 'XHU5N2VlXHU0ZWZiXHU1OThhXHU1ZmNkXHU4YThkXHU2ZmUxXHU3OWIwXHU3OTYyXHU1YmU3XHU4NDcxXHU3MzJiXHU3MWIxXHU1ZTc0XHU1ZmY1XHU2MzdiXHU2NDlhXHU3MWMzXHU3Yzk4XHU0ZTQzXHU1ZWZjXHU0ZTRiXHU1N2RjXHU1NmEyXHU2MGE5XHU2ZmMzXHU3ZDBkXHU4MGZkXHU4'@; put 'MTMzXHU4MWJmXHU4ZmIyXHU4OTk3XHU4NmE0XHU1ZGY0XHU2MjhhXHU2NGFkXHU4OTg3XHU2Nzc3XHU2Y2UyXHU2ZDNlXHU3NDM2XHU3ODM0XHU1YTQ2XHU3Zjc1XHU4MmFkXHU5OWFjXHU0ZmYzXHU1ZWMzXHU2MmRkXHU2MzkyXHU2NTU3XHU2NzZmXHU3NmMzXHU3MjRjXHU4MGNjXHU4MGJh'@; put 'XHU4ZjI5XHU5MTRkXHU1MDBkXHU1N2Y5XHU1YTkyXHU2ODg1XHVmZmZkXHU2OTczXHU3MTY0XHU3MmZkXHU4Y2I3XHU1OGYyXHU4Y2UwXHU5NjZhXHU5MDE5XHU4NzdmXHU3OWU0XHU3N2U3XHU4NDI5XHU0ZjJmXHU1MjY1XHU1MzVhXHU2MmNkXHU2N2NmXHU2Y2NhXHU3NjdkXHU3Yjk0XHU3'@; put 'Yzk1XHU4MjM2XHU4NTg0XHU4ZmViXHU2NmRkXHU2ZjIwXHU3MjA2XHU3ZTFiXHU4M2FiXHU5OWMxXHU5ZWE2XHU1MWZkXHU3YmIxXHU3ODcyXHU3YmI4XHU4MDg3XHU3YjQ4XHU2YWU4XHU1ZTYxXHU4MDhjXHU3NTUxXHU3NTYwXHU1MTZiXHU5MjYyXHU2ZThjXHU3NjdhXHU5MTk3XHU5YWVh'@; put 'XHU0ZjEwXHU3ZjcwXHU2MjljXHU3YjRmXHU5NWE1XHU5Y2U5XHU1NjdhXHU1ODU5XHU4NmU0XHU5NmJjXHU0ZjM0XHU1MjI0XHU1MzRhXHU1M2NkXHU1M2RiXHU1ZTA2XHU2NDJjXHU2NTkxXHU2NzdmXHU2YzNlXHU2YzRlXHU3MjQ4XHU3MmFmXHU3M2VkXHU3NTU0XHU3ZTQxXHU4MjJjXHU4'@; put 'NWU5XHU4Y2E5XHU3YmM0XHU5MWM2XHU3MTY5XHU5ODEyXHU5OGVmXHU2MzNkXHU2NjY5XHU3NTZhXHU3NmU0XHU3OGQwXHU4NTQzXHU4NmVlXHU1MzJhXHU1MzUxXHU1NDI2XHU1OTgzXHU1ZTg3XHU1ZjdjXHU2MGIyXHU2MjQ5XHU2Mjc5XHU2MmFiXHU2NTkwXHU2YmQ0XHU2Y2NjXHU3NWIy'@; put 'XHU3NmFlXHU3ODkxXHU3OWQ4XHU3ZGNiXHU3Zjc3XHU4MGE1XHU4OGFiXHU4YWI5XHU4Y2JiXHU5MDdmXHU5NzVlXHU5OGRiXHU2YTBiXHU3YzM4XHU1MDk5XHU1YzNlXHU1ZmFlXHU2Nzg3XHU2YmQ4XHU3NDM1XHU3NzA5XHU3ZjhlXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0w'@; put 'O20hPXhbMTQ4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0OF1bbV1dPTM3ODg4K20sRlszNzg4OCttXT14WzE0OF1bbV0pO2Zvcih4WzE0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1OWYzYlx1NjdjYVx1N2ExN1x1NTMzOVx1NzU4Ylx1OWFlZFx1NWY2Nlx1ODE5ZFx1ODNmMVx1ODA5OFx1NWYzY1x1NWZjNVx1NzU2Mlx1N2I0Nlx1OTAzY1x1Njg2N1x1NTllYlx1NWE5Ylx1N2QxMFx1NzY3ZVx1OGIyY1x1NGZmNVx1NWY2YVx1NmExOVx1NmMzN1x1NmYwMlx1NzRlMlx1'@; put 'Nzk2OFx1ODg2OFx1OGE1NVx1OGM3OVx1NWVkZlx1NjNjZlx1NzVjNVx1NzlkMlx1ODJkN1x1OTMyOFx1OTJmMlx1ODQ5Y1x1ODZlZFx1OWMyZFx1NTRjMVx1NWY2Y1x1NjU4Y1x1NmQ1Y1x1NzAxNVx1OGNhN1x1OGNkM1x1OTgzYlx1NjU0Zlx1NzRmNlx1NGUwZFx1NGVkOFx1NTdlMFx1NTky'@; put 'Ylx1NWE2Nlx1NWJjY1x1NTFhOFx1NWUwM1x1NWU5Y1x1NjAxNlx1NjI3Nlx1NjU3N1x1ZmZmZFx1NjVhN1x1NjY2ZVx1NmQ2ZVx1NzIzNlx1N2IyNlx1ODE1MFx1ODE5YVx1ODI5OVx1OGI1Y1x1OGNhMFx1OGNlNlx1OGQ3NFx1OTYxY1x1OTY0NFx1NGZhZVx1NjRhYlx1NmI2Nlx1ODIxZVx1'@; put 'ODQ2MVx1ODU2YVx1OTBlOFx1NWMwMVx1Njk1M1x1OThhOFx1ODQ3YVx1ODU1N1x1NGYwZlx1NTI2Zlx1NWZhOVx1NWU0NVx1NjcwZFx1Nzk4Zlx1ODE3OVx1ODkwN1x1ODk4Nlx1NmRmNVx1NWYxN1x1NjI1NVx1NmNiOFx1NGVjZlx1NzI2OVx1OWI5Mlx1NTIwNlx1NTQzYlx1NTY3NFx1NThi'@; put 'M1x1NjFhNFx1NjI2ZVx1NzExYVx1NTk2ZVx1N2M4OVx1N2NkZVx1N2QxYlx1OTZmMFx1NjU4N1x1ODA1ZVx1NGUxOVx1NGY3NVx1NTE3NVx1NTg0MFx1NWU2M1x1NWU3M1x1NWYwYVx1NjdjNFx1NGUyNlx1ODUzZFx1OTU4OVx1OTY1Ylx1N2M3M1x1OTgwMVx1NTBmYlx1NThjMVx1NzY1Nlx1'@; put 'NzhhN1x1NTIyNVx1NzdhNVx1ODUxMVx1N2I4Nlx1NTA0Zlx1NTkwOVx1NzI0N1x1N2JjN1x1N2RlOFx1OGZiYVx1OGZkNFx1OTA0ZFx1NGZiZlx1NTJjOVx1NWEyOVx1NWYwMVx1OTdhZFx1NGZkZFx1ODIxN1x1OTJlYVx1NTcwM1x1NjM1NVx1NmI2OVx1NzUyYlx1ODhkY1x1OGYxNFx1N2E0'@; put 'Mlx1NTJkZlx1NTg5M1x1NjE1NVx1NjIwYVx1NjZhZVx1NmJjZFx1N2MzZlx1ODNlOVx1NTAyM1x1NGZmOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NWI5ZFx1NWNmMFx1NWNlZlx1NWQyOVx1NWU5Nlx1NjJiMVx1NjM2N1x1NjUzZVx1NjViOVx1NjcwYlx1ZmZmZFx1ZmZmZFx1ZmZmZCIu'@; put 'c3BsaXQoIiIpLG09MDttIT14WzE0OV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQ5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDldW21dXT0zODE0NCttLEZbMzgxNDQrbV09eFsxNDldW21dKTtmb3IoeFsxNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdTZjZDVcdTZjZTFcdTcwZjlcdTc4MzJcdTdlMmJcdTgwZGVcdTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlkNmNcdTRlNGZcdTRlYTFcdTUwOGRcdTUyNTZcdTU3NGFcdTU5YThcdTVlM2Rc'@; put 'dTVmZDhcdTVmZDlcdTYyM2ZcdTY2YjRcdTY3MWJcdTY3ZDBcdTY4ZDJcdTUxOTJcdTdkMjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVcdTUzNWNcdTU4YThcdTY0YjJcdTY3MzRcdTcyNjdcdTc3NjZcdTdhNDZcdTkx'@; put 'ZTZcdTUyYzNcdTZjYTFcdTZiODZcdTU4MDBcdTVlNGNcdTU5NTRcdTY3MmNcdTdmZmJcdTUxZTFcdTc2YzZcdWZmZmRcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZiY2VcdTU0ZTlcdTY5ZDlcdTVlNTVcdTgxOWNcdTY3OTVcdTliYWFcdTY3ZmVc'@; put 'dTljNTJcdTY4NWRcdTRlYTZcdTRmZTNcdTUzYzhcdTYyYjlcdTY3MmJcdTZjYWJcdThmYzRcdTRmYWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODBcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTliNDVcdTVkZjNcdTdiOTVcdTVjYWNcdTViYzZcdTg3MWNcdTZlNGFcdTg0ZDFcdTdh'@; put 'MTRcdTgxMDhcdTU5OTlcdTdjOGRcdTZjMTFcdTc3MjBcdTUyZDlcdTU5MjJcdTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTc2ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5ZWFcdTcyNWRcdTZlYzVcdTUxNGRc'@; put 'dTY4YzlcdTdkYmZcdTdkZWNcdTk3NjJcdTllYmFcdTY0NzhcdTZhMjFcdTgzMDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2ZWVcdTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRcdTYyM2JcdTdjN2VcdThjYjBcdTU1'@; put 'NGZcdTYwYjZcdTdkMGJcdTk1ODBcdTUzMDFcdTRlNWZcdTUxYjZcdTU5MWNcdTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZcdTY3ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYxMDhcdTZjYjlcdTc2NTJcdWZmZmRc'@; put 'dWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE1MF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTUwXVttXV09Mzg0MDArbSxGWzM4NDAwK21dPXhbMTUwXVttXSk7Zm9yKHhbMTUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWVkXHU4ZjM4XHU1NTJmXHU0ZjUxXHU1MTJhXHU1MmM3XHU1M2NiXHU1YmE1XHU1ZTdkXHU2MGEwXHU2MTgyXHU2M2Q2XHU2NzA5XHU2N2RhXHU2ZTY3XHU2ZDhjXHU3MzM2XHU3MzM3XHU3NTMxXHU3OTUwXHU4OGQ1XHU4YTk4XHU5MDRh'@; put 'XHU5MDkxXHU5MGY1XHU5NmM0XHU4NzhkXHU1OTE1XHU0ZTg4XHU0ZjU5XHU0ZTBlXHU4YTg5XHU4ZjNmXHU5ODEwXHU1MGFkXHU1ZTdjXHU1OTk2XHU1YmI5XHU1ZWI4XHU2M2RhXHU2M2ZhXHU2NGMxXHU2NmRjXHU2OTRhXHU2OWQ4XHU2ZDBiXHU2ZWI2XHU3MTk0XHU3NTI4XHU3YWFmXHU3'@; put 'ZjhhXHU4MDAwXHU4NDQ5XHU4NGM5XHU4OTgxXHU4YjIxXHU4ZTBhXHU5MDY1XHU5NjdkXHU5OTBhXHU2MTdlXHU2MjkxXHU2YjMyXHVmZmZkXHU2YzgzXHU2ZDc0XHU3ZmNjXHU3ZmZjXHU2ZGMwXHU3Zjg1XHU4N2JhXHU4OGY4XHU2NzY1XHU4M2IxXHU5ODNjXHU5NmY3XHU2ZDFiXHU3ZDYx'@; put 'XHU4NDNkXHU5MTZhXHU0ZTcxXHU1Mzc1XHU1ZDUwXHU2YjA0XHU2ZmViXHU4NWNkXHU4NjJkXHU4OWE3XHU1MjI5XHU1NDBmXHU1YzY1XHU2NzRlXHU2OGE4XHU3NDA2XHU3NDgzXHU3NWUyXHU4OGNmXHU4OGUxXHU5MWNjXHU5NmUyXHU5Njc4XHU1ZjhiXHU3Mzg3XHU3YWNiXHU4NDRlXHU2'@; put 'M2EwXHU3NTY1XHU1Mjg5XHU2ZDQxXHU2ZTljXHU3NDA5XHU3NTU5XHU3ODZiXHU3YzkyXHU5Njg2XHU3YWRjXHU5ZjhkXHU0ZmI2XHU2MTZlXHU2NWM1XHU4NjVjXHU0ZTg2XHU0ZWFlXHU1MGRhXHU0ZTIxXHU1MWNjXHU1YmVlXHU2NTk5XHU2ODgxXHU2ZGJjXHU3MzFmXHU3NjQyXHU3N2Fk'@; put 'XHU3YTFjXHU3Y2U3XHU4MjZmXHU4YWQyXHU5MDdjXHU5MWNmXHU5Njc1XHU5ODE4XHU1MjliXHU3ZGQxXHU1MDJiXHU1Mzk4XHU2Nzk3XHU2ZGNiXHU3MWQwXHU3NDMzXHU4MWU4XHU4ZjJhXHU5NmEzXHU5YzU3XHU5ZTlmXHU3NDYwXHU1ODQxXHU2ZDk5XHU3ZDJmXHU5ODVlXHU0ZWU0XHU0'@; put 'ZjM2XHU0ZjhiXHU1MWI3XHU1MmIxXHU1ZGJhXHU2MDFjXHU3M2IyXHU3OTNjXHU4MmQzXHU5MjM0XHU5NmI3XHU5NmY2XHU5NzBhXHU5ZTk3XHU5ZjYyXHU2NmE2XHU2Yjc0XHU1MjE3XHU1MmEzXHU3MGM4XHU4OGMyXHU1ZWM5XHU2MDRiXHU2MTkwXHU2ZjIzXHU3MTQ5XHU3YzNlXHU3ZGY0'@; put 'XHU4MDZmXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTUxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1MV1bbV1dPTM4NjU2K20sRlszODY1NittXT14WzE1MV1bbV0pO2Zvcih4WzE1Ml09Ilx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODRlZVx1OTAyM1x1OTMyY1x1NTQ0Mlx1OWI2Zlx1NmFkM1x1NzA4OVx1OGNjMlx1OGRlZlx1OTczMlx1NTJiNFx1NWE0MVx1NWVjYVx1NWYwNFx1NjcxN1x1Njk3Y1x1Njk5NFx1NmQ2YVx1NmYwZlx1NzI2Mlx1NzJm'@; put 'Y1x1N2JlZFx1ODAwMVx1ODA3ZVx1ODc0Ylx1OTBjZVx1NTE2ZFx1OWU5M1x1Nzk4NFx1ODA4Ylx1OTMzMlx1OGFkNlx1NTAyZFx1NTQ4Y1x1OGE3MVx1NmI2YVx1OGNjNFx1ODEwN1x1NjBkMVx1NjdhMFx1OWRmMlx1NGU5OVx1NGU5OFx1OWMxMFx1OGE2Ylx1ODVjMVx1ODU2OFx1NjkwMFx1'@; put 'NmU3ZVx1Nzg5N1x1ODE1NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWYwY1x1NGUxMFx1NGUxNVx1NGUyYVx1NGUzMVx1NGUzNlx1NGUzY1x1NGUzZlx1'@; put 'NGU0Mlx1NGU1Nlx1NGU1OFx1NGU4Mlx1NGU4NVx1OGM2Ylx1NGU4YVx1ODIxMlx1NWYwZFx1NGU4ZVx1NGU5ZVx1NGU5Zlx1NGVhMFx1NGVhMlx1NGViMFx1NGViM1x1NGViNlx1NGVjZVx1NGVjZFx1NGVjNFx1NGVjNlx1NGVjMlx1NGVkN1x1NGVkZVx1NGVlZFx1NGVkZlx1NGVmN1x1NGYw'@; put 'OVx1NGY1YVx1NGYzMFx1NGY1Ylx1NGY1ZFx1NGY1N1x1NGY0N1x1NGY3Nlx1NGY4OFx1NGY4Zlx1NGY5OFx1NGY3Ylx1NGY2OVx1NGY3MFx1NGY5MVx1NGY2Zlx1NGY4Nlx1NGY5Nlx1NTExOFx1NGZkNFx1NGZkZlx1NGZjZVx1NGZkOFx1NGZkYlx1NGZkMVx1NGZkYVx1NGZkMFx1NGZlNFx1'@; put 'NGZlNVx1NTAxYVx1NTAyOFx1NTAxNFx1NTAyYVx1NTAyNVx1NTAwNVx1NGYxY1x1NGZmNlx1NTAyMVx1NTAyOVx1NTAyY1x1NGZmZVx1NGZlZlx1NTAxMVx1NTAwNlx1NTA0M1x1NTA0N1x1NjcwM1x1NTA1NVx1NTA1MFx1NTA0OFx1NTA1YVx1NTA1Nlx1NTA2Y1x1NTA3OFx1NTA4MFx1NTA5'@; put 'YVx1NTA4NVx1NTBiNFx1NTBiMlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1Ml0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTUyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTJdW21dXT0zODkxMittLEZbMzg5MTIrbV09eFsxNTJdW21dKTtmb3IoeFsxNTNdPSJc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUwZWRcdTUwZTNcdTUwZWVcdTUwZjlcdTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJcdTUxMTZcdTUxMTVcdTUxMTRcdTUx'@; put 'MWFcdTUxMjFcdTUxM2FcdTUxMzdcdTUxM2NcdTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBcdTUxODJcdTU2ZDhcdTUxOGNcdTUxODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUxOTVcdTUxOTZcdTUxYTRcdTUxYTZc'@; put 'dTUxYTJcdTUxYTlcdTUxYWFcdTUxYWJcdTUxYjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUxZWRcdWZmZmRcdTUxZjBcdTUxZjVcdTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRcdTUyMGVcdTUyMjdcdTUyMmFcdTUy'@; put 'MmVcdTUyMzNcdTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJcdTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJcdTUyNzFcdTUyODhcdTUyOTFcdThmYThcdThmYTdcdTUyYWNcdTUyYWRcdTUyYmNcdTUyYjVcdTUyYzFc'@; put 'dTUyY2RcdTUyZDdcdTUyZGVcdTUyZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUzMTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNcdTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhcdTUzNDBcdTUzNDZcdTUzNDVcdTRl'@; put 'MTdcdTUzNDlcdTUzNGRcdTUxZDZcdTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVcdTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUzZWVcdTUzZThcdTUzZWRcdTUzZmFc'@; put 'dTU0MDFcdTU0M2RcdTU0NDBcdTU0MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2JcdTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBcdTU0ODZcdTU0YzdcdTU0YTJcdTU0'@; put 'YjhcdTU0YTVcdTU0YWNcdTU0YzRcdTU0YzhcdTU0YThcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE1M11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTUzXVttXV09MzkxNjgrbSxGWzM5MTY4K21dPXhbMTUzXVttXSk7'@; put 'Zm9yKHhbMTU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGFiXHU1NGMyXHU1NGE0XHU1NGJlXHU1NGJjXHU1NGQ4XHU1NGU1XHU1NGU2XHU1NTBmXHU1NTE0XHU1NGZkXHU1NGVlXHU1NGVkXHU1NGZhXHU1NGUyXHU1NTM5XHU1'@; put 'NTQwXHU1NTYzXHU1NTRjXHU1NTJlXHU1NTVjXHU1NTQ1XHU1NTU2XHU1NTU3XHU1NTM4XHU1NTMzXHU1NTVkXHU1NTk5XHU1NTgwXHU1NGFmXHU1NThhXHU1NTlmXHU1NTdiXHU1NTdlXHU1NTk4XHU1NTllXHU1NWFlXHU1NTdjXHU1NTgzXHU1NWE5XHU1NTg3XHU1NWE4XHU1NWRhXHU1NWM1'@; put 'XHU1NWRmXHU1NWM0XHU1NWRjXHU1NWU0XHU1NWQ0XHU1NjE0XHU1NWY3XHU1NjE2XHU1NWZlXHU1NWZkXHU1NjFiXHU1NWY5XHU1NjRlXHU1NjUwXHU3MWRmXHU1NjM0XHU1NjM2XHU1NjMyXHU1NjM4XHVmZmZkXHU1NjZiXHU1NjY0XHU1NjJmXHU1NjZjXHU1NjZhXHU1Njg2XHU1NjgwXHU1'@; put 'NjhhXHU1NmEwXHU1Njk0XHU1NjhmXHU1NmE1XHU1NmFlXHU1NmI2XHU1NmI0XHU1NmMyXHU1NmJjXHU1NmMxXHU1NmMzXHU1NmMwXHU1NmM4XHU1NmNlXHU1NmQxXHU1NmQzXHU1NmQ3XHU1NmVlXHU1NmY5XHU1NzAwXHU1NmZmXHU1NzA0XHU1NzA5XHU1NzA4XHU1NzBiXHU1NzBkXHU1NzEz'@; put 'XHU1NzE4XHU1NzE2XHU1NWM3XHU1NzFjXHU1NzI2XHU1NzM3XHU1NzM4XHU1NzRlXHU1NzNiXHU1NzQwXHU1NzRmXHU1NzY5XHU1N2MwXHU1Nzg4XHU1NzYxXHU1NzdmXHU1Nzg5XHU1NzkzXHU1N2EwXHU1N2IzXHU1N2E0XHU1N2FhXHU1N2IwXHU1N2MzXHU1N2M2XHU1N2Q0XHU1N2QyXHU1'@; put 'N2QzXHU1ODBhXHU1N2Q2XHU1N2UzXHU1ODBiXHU1ODE5XHU1ODFkXHU1ODcyXHU1ODIxXHU1ODYyXHU1ODRiXHU1ODcwXHU2YmMwXHU1ODUyXHU1ODNkXHU1ODc5XHU1ODg1XHU1OGI5XHU1ODlmXHU1OGFiXHU1OGJhXHU1OGRlXHU1OGJiXHU1OGI4XHU1OGFlXHU1OGM1XHU1OGQzXHU1OGQx'@; put 'XHU1OGQ3XHU1OGQ5XHU1OGQ4XHU1OGU1XHU1OGRjXHU1OGU0XHU1OGRmXHU1OGVmXHU1OGZhXHU1OGY5XHU1OGZiXHU1OGZjXHU1OGZkXHU1OTAyXHU1OTBhXHU1OTEwXHU1OTFiXHU2OGE2XHU1OTI1XHU1OTJjXHU1OTJkXHU1OTMyXHU1OTM4XHU1OTNlXHU3YWQyXHU1OTU1XHU1OTUwXHU1'@; put 'OTRlXHU1OTVhXHU1OTU4XHU1OTYyXHU1OTYwXHU1OTY3XHU1OTZjXHU1OTY5XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTU0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1NF1bbV1dPTM5NDI0K20sRlszOTQyNCtt'@; put 'XT14WzE1NF1bbV0pO2Zvcih4WzE1NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk3OFx1NTk4MVx1NTk5ZFx1NGY1ZVx1NGZhYlx1NTlhM1x1NTliMlx1NTljNlx1NTllOFx1NTlkY1x1NTk4ZFx1NTlkOVx1NTlkYVx1NWEyNVx1'@; put 'NWExZlx1NWExMVx1NWExY1x1NWEwOVx1NWExYVx1NWE0MFx1NWE2Y1x1NWE0OVx1NWEzNVx1NWEzNlx1NWE2Mlx1NWE2YVx1NWE5YVx1NWFiY1x1NWFiZVx1NWFjYlx1NWFjMlx1NWFiZFx1NWFlM1x1NWFkN1x1NWFlNlx1NWFlOVx1NWFkNlx1NWFmYVx1NWFmYlx1NWIwY1x1NWIwYlx1NWIx'@; put 'Nlx1NWIzMlx1NWFkMFx1NWIyYVx1NWIzNlx1NWIzZVx1NWI0M1x1NWI0NVx1NWI0MFx1NWI1MVx1NWI1NVx1NWI1YVx1NWI1Ylx1NWI2NVx1NWI2OVx1NWI3MFx1NWI3M1x1NWI3NVx1NWI3OFx1NjU4OFx1NWI3YVx1NWI4MFx1ZmZmZFx1NWI4M1x1NWJhNlx1NWJiOFx1NWJjM1x1NWJjN1x1'@; put 'NWJjOVx1NWJkNFx1NWJkMFx1NWJlNFx1NWJlNlx1NWJlMlx1NWJkZVx1NWJlNVx1NWJlYlx1NWJmMFx1NWJmNlx1NWJmM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwZFx1NWMxM1x1NWMyMFx1NWMyMlx1NWMyOFx1NWMzOFx1NWMzOVx1NWM0MVx1NWM0Nlx1NWM0ZVx1NWM1M1x1NWM1MFx1NWM0'@; put 'Zlx1NWI3MVx1NWM2Y1x1NWM2ZVx1NGU2Mlx1NWM3Nlx1NWM3OVx1NWM4Y1x1NWM5MVx1NWM5NFx1NTk5Ylx1NWNhYlx1NWNiYlx1NWNiNlx1NWNiY1x1NWNiN1x1NWNjNVx1NWNiZVx1NWNjN1x1NWNkOVx1NWNlOVx1NWNmZFx1NWNmYVx1NWNlZFx1NWQ4Y1x1NWNlYVx1NWQwYlx1NWQxNVx1'@; put 'NWQxN1x1NWQ1Y1x1NWQxZlx1NWQxYlx1NWQxMVx1NWQxNFx1NWQyMlx1NWQxYVx1NWQxOVx1NWQxOFx1NWQ0Y1x1NWQ1Mlx1NWQ0ZVx1NWQ0Ylx1NWQ2Y1x1NWQ3M1x1NWQ3Nlx1NWQ4N1x1NWQ4NFx1NWQ4Mlx1NWRhMlx1NWQ5ZFx1NWRhY1x1NWRhZVx1NWRiZFx1NWQ5MFx1NWRiN1x1NWRi'@; put 'Y1x1NWRjOVx1NWRjZFx1NWRkM1x1NWRkMlx1NWRkNlx1NWRkYlx1NWRlYlx1NWRmMlx1NWRmNVx1NWUwYlx1NWUxYVx1NWUxOVx1NWUxMVx1NWUxYlx1NWUzNlx1NWUzN1x1NWU0NFx1NWU0M1x1NWU0MFx1NWU0ZVx1NWU1N1x1NWU1NFx1NWU1Zlx1NWU2Mlx1NWU2NFx1NWU0N1x1NWU3NVx1'@; put 'NWU3Nlx1NWU3YVx1OWViY1x1NWU3Zlx1NWVhMFx1NWVjMVx1NWVjMlx1NWVjOFx1NWVkMFx1NWVjZlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1NV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTU1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTVdW21dXT0zOTY4'@; put 'MCttLEZbMzk2ODArbV09eFsxNTVdW21dKTtmb3IoeFsxNTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVlZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVlZTlcdTVlZWNcdTVlZjFcdTVlZjNc'@; put 'dTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVmNWRcdTVmNWNcdTVmMGJcdTVmMTFcdTVmMTZcdTVmMjlcdTVmMmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFcdTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFcdTVmNmRcdTVmNzNcdTVmNzdcdTVm'@; put 'ODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdcdTVmOWVcdTVmOTlcdTVmOThcdTVmYTBcdTVmYThcdTVmYWRcdTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYwYjNcdTVmZmZcdTYwMjFcdTYwNjBcdWZmZmRcdTYwMTlcdTYwMTBcdTYwMjlc'@; put 'dTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYwMjZcdTYwMGZcdTYwM2FcdTYwNWFcdTYwNDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYwNGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJcdTYwNmNcdTYwNmJcdTYwNTlcdTYwODFcdTYwOGRcdTYwZTdcdTYwODNcdTYw'@; put 'OWFcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJcdTYwYTdcdTYwOGJcdTYwZTFcdTYwYjhcdTYwZTBcdTYwZDNcdTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYxMDZcdTYwZjZcdTYwZjdcdTYxMDBcdTYwZjRcdTYwZmFcdTYxMDNcdTYxMjFc'@; put 'dTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYxM2VcdTYxMjhcdTYxMjdcdTYxNGFcdTYxM2ZcdTYxM2NcdTYxMmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNmJcdTYxNzRcdTYxNmZcdTYxNjVcdTYxNzFcdTYxNWZcdTYx'@; put 'NWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdcdTYxYWNcdTYxOTRcdTYxOWFcdTYxOGFcdTYxOTFcdTYxYWJcdTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYxYmFcdTYxY2JcdTdmNzlcdTYxY2RcdTYxZTZcdTYxZTNcdTYxZjZcdTYxZmFc'@; put 'dTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYyMDBcdTYyMDhcdTYyMDlcdTYyMGRcdTYyMGNcdTYyMTRcdTYyMWJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE1Nl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hb'@; put 'MTU2XVttXV09Mzk5MzYrbSxGWzM5OTM2K21dPXhbMTU2XVttXSk7Zm9yKHhbMTU3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjFlXHU2MjIxXHU2MjJhXHU2MjJlXHU2MjMwXHU2MjMyXHU2MjMzXHU2MjQxXHU2MjRlXHU2MjVl'@; put 'XHU2MjYzXHU2MjViXHU2MjYwXHU2MjY4XHU2MjdjXHU2MjgyXHU2Mjg5XHU2MjdlXHU2MjkyXHU2MjkzXHU2Mjk2XHU2MmQ0XHU2MjgzXHU2Mjk0XHU2MmQ3XHU2MmQxXHU2MmJiXHU2MmNmXHU2MmZmXHU2MmM2XHU2NGQ0XHU2MmM4XHU2MmRjXHU2MmNjXHU2MmNhXHU2MmMyXHU2MmM3XHU2'@; put 'MjliXHU2MmM5XHU2MzBjXHU2MmVlXHU2MmYxXHU2MzI3XHU2MzAyXHU2MzA4XHU2MmVmXHU2MmY1XHU2MzUwXHU2MzNlXHU2MzRkXHU2NDFjXHU2MzRmXHU2Mzk2XHU2MzhlXHU2MzgwXHU2M2FiXHU2Mzc2XHU2M2EzXHU2MzhmXHU2Mzg5XHU2MzlmXHU2M2I1XHU2MzZiXHVmZmZkXHU2MzY5'@; put 'XHU2M2JlXHU2M2U5XHU2M2MwXHU2M2M2XHU2M2UzXHU2M2M5XHU2M2QyXHU2M2Y2XHU2M2M0XHU2NDE2XHU2NDM0XHU2NDA2XHU2NDEzXHU2NDI2XHU2NDM2XHU2NTFkXHU2NDE3XHU2NDI4XHU2NDBmXHU2NDY3XHU2NDZmXHU2NDc2XHU2NDRlXHU2NTJhXHU2NDk1XHU2NDkzXHU2NGE1XHU2'@; put 'NGE5XHU2NDg4XHU2NGJjXHU2NGRhXHU2NGQyXHU2NGM1XHU2NGM3XHU2NGJiXHU2NGQ4XHU2NGMyXHU2NGYxXHU2NGU3XHU4MjA5XHU2NGUwXHU2NGUxXHU2MmFjXHU2NGUzXHU2NGVmXHU2NTJjXHU2NGY2XHU2NGY0XHU2NGYyXHU2NGZhXHU2NTAwXHU2NGZkXHU2NTE4XHU2NTFjXHU2NTA1'@; put 'XHU2NTI0XHU2NTIzXHU2NTJiXHU2NTM0XHU2NTM1XHU2NTM3XHU2NTM2XHU2NTM4XHU3NTRiXHU2NTQ4XHU2NTU2XHU2NTU1XHU2NTRkXHU2NTU4XHU2NTVlXHU2NTVkXHU2NTcyXHU2NTc4XHU2NTgyXHU2NTgzXHU4YjhhXHU2NTliXHU2NTlmXHU2NWFiXHU2NWI3XHU2NWMzXHU2NWM2XHU2'@; put 'NWMxXHU2NWM0XHU2NWNjXHU2NWQyXHU2NWRiXHU2NWQ5XHU2NWUwXHU2NWUxXHU2NWYxXHU2NzcyXHU2NjBhXHU2NjAzXHU2NWZiXHU2NzczXHU2NjM1XHU2NjM2XHU2NjM0XHU2NjFjXHU2NjRmXHU2NjQ0XHU2NjQ5XHU2NjQxXHU2NjVlXHU2NjVkXHU2NjY0XHU2NjY3XHU2NjY4XHU2NjVm'@; put 'XHU2NjYyXHU2NjcwXHU2NjgzXHU2Njg4XHU2NjhlXHU2Njg5XHU2Njg0XHU2Njk4XHU2NjlkXHU2NmMxXHU2NmI5XHU2NmM5XHU2NmJlXHU2NmJjXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTU3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTddW21dLmNoYXJDb2Rl'@; put 'QXQoMCkmJihhZVt4WzE1N11bbV1dPTQwMTkyK20sRls0MDE5MittXT14WzE1N11bbV0pO2Zvcih4WzE1OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjZjNFx1NjZiOFx1NjZkNlx1NjZkYVx1NjZlMFx1NjYzZlx1NjZlNlx1NjZl'@; put 'OVx1NjZmMFx1NjZmNVx1NjZmN1x1NjcwZlx1NjcxNlx1NjcxZVx1NjcyNlx1NjcyN1x1OTczOFx1NjcyZVx1NjczZlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1ZVx1Njc2MFx1Njc1OVx1Njc2M1x1Njc2NFx1Njc4OVx1Njc3MFx1NjdhOVx1Njc3Y1x1Njc2YVx1Njc4Y1x1'@; put 'Njc4Ylx1NjdhNlx1NjdhMVx1Njc4NVx1NjdiN1x1NjdlZlx1NjdiNFx1NjdlY1x1NjdiM1x1NjdlOVx1NjdiOFx1NjdlNFx1NjdkZVx1NjdkZFx1NjdlMlx1NjdlZVx1NjdiOVx1NjdjZVx1NjdjNlx1NjdlN1x1NmE5Y1x1NjgxZVx1Njg0Nlx1NjgyOVx1Njg0MFx1Njg0ZFx1NjgzMlx1Njg0'@; put 'ZVx1ZmZmZFx1NjhiM1x1NjgyYlx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3Zlx1Njg5Zlx1Njg4Zlx1NjhhZFx1Njg5NFx1Njg5ZFx1Njg5Ylx1Njg4M1x1NmFhZVx1NjhiOVx1Njg3NFx1NjhiNVx1NjhhMFx1NjhiYVx1NjkwZlx1Njg4ZFx1Njg3ZVx1NjkwMVx1NjhjYVx1NjkwOFx1NjhkOFx1'@; put 'NjkyMlx1NjkyNlx1NjhlMVx1NjkwY1x1NjhjZFx1NjhkNFx1NjhlN1x1NjhkNVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhkN1x1NjhlM1x1NjkyNVx1NjhmOVx1NjhlMFx1NjhlZlx1NjkyOFx1NjkyYVx1NjkxYVx1NjkyM1x1NjkyMVx1NjhjNlx1Njk3OVx1Njk3N1x1Njk1Y1x1Njk3OFx1Njk2'@; put 'Ylx1Njk1NFx1Njk3ZVx1Njk2ZVx1NjkzOVx1Njk3NFx1NjkzZFx1Njk1OVx1NjkzMFx1Njk2MVx1Njk1ZVx1Njk1ZFx1Njk4MVx1Njk2YVx1NjliMlx1NjlhZVx1NjlkMFx1NjliZlx1NjljMVx1NjlkM1x1NjliZVx1NjljZVx1NWJlOFx1NjljYVx1NjlkZFx1NjliYlx1NjljM1x1NjlhN1x1'@; put 'NmEyZVx1Njk5MVx1NjlhMFx1Njk5Y1x1Njk5NVx1NjliNFx1NjlkZVx1NjllOFx1NmEwMlx1NmExYlx1NjlmZlx1NmIwYVx1NjlmOVx1NjlmMlx1NjllN1x1NmEwNVx1NjliMVx1NmExZVx1NjllZFx1NmExNFx1NjllYlx1NmEwYVx1NmExMlx1NmFjMVx1NmEyM1x1NmExM1x1NmE0NFx1NmEw'@; put 'Y1x1NmE3Mlx1NmEzNlx1NmE3OFx1NmE0N1x1NmE2Mlx1NmE1OVx1NmE2Nlx1NmE0OFx1NmEzOFx1NmEyMlx1NmE5MFx1NmE4ZFx1NmFhMFx1NmE4NFx1NmFhMlx1NmFhM1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1OF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTU4'@; put 'XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNThdW21dXT00MDQ0OCttLEZbNDA0NDgrbV09eFsxNThdW21dKTtmb3IoeFsxNTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZhOTdcdTg2MTdcdTZhYmJcdTZhYzNcdTZhYzJcdTZh'@; put 'YjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZhZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZcdTliMzFcdTZiMWZcdTZiMzhcdTZiMzdcdTc2ZGNcdTZiMzlcdTk4ZWVcdTZiNDdcdTZiNDNcdTZiNDlcdTZiNTBcdTZiNTlcdTZiNTRc'@; put 'dTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlcdTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZiYWFcdTZiYWJcdTZiYWZcdTZiYjJcdTZiYjFcdTZiYjNcdTZiYjdcdTZiYmNcdTZiYzZcdTZiY2JcdTZiZDNcdTZiZGZcdTZiZWNcdTZi'@; put 'ZWJcdTZiZjNcdTZiZWZcdWZmZmRcdTllYmVcdTZjMDhcdTZjMTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJcdTZjNmFcdTZjODJcdTZjOGRcdTZjOWFcdTZjODFcdTZjOWJcdTZjN2VcdTZjNjhcdTZjNzNcdTZjOTJcdTZjOTBcdTZjYzRcdTZjZjFcdTZjZDNc'@; put 'dTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFcdTZjYmVcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4NGRcdTZkMzZcdTZkMmJcdTZkM2RcdTZkMzhcdTZkMTlcdTZkMzVcdTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNcdTZkOTNcdTZkNjRcdTZkNWFcdTZk'@; put 'NzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZmZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZcdTZkZWNcdTZkZGVcdTZkY2NcdTZkZThcdTZkZDJcdTZkYzVcdTZkZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZkZWFcdTZkZWVcdTZlMmRcdTZlNmVc'@; put 'dTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZcdTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZlNGVcdTZlMjRcdTZlZmZcdTZlMWRcdTZlMzhcdTZlODJcdTZlYWFcdTZlOThcdTZlYzlcdTZlYjdcdTZlZDNcdTZlYmRcdTZlYWZcdTZlYzRcdTZl'@; put 'YjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZlYTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2ZcdTZlZjJcdTZmMzFcdTZlZWZcdTZmMzJcdTZlY2NcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTldLmxlbmd0aDsrK20p'@; put 'NjU1MzMhPT14WzE1OV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTU5XVttXV09NDA3MDQrbSxGWzQwNzA0K21dPXhbMTU5XVttXSk7Zm9yKHhbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZjNlXHU2ZjEzXHU2ZWY3XHU2'@; put 'Zjg2XHU2ZjdhXHU2Zjc4XHU2ZjgxXHU2ZjgwXHU2ZjZmXHU2ZjViXHU2ZmYzXHU2ZjZkXHU2ZjgyXHU2ZjdjXHU2ZjU4XHU2ZjhlXHU2ZjkxXHU2ZmMyXHU2ZjY2XHU2ZmIzXHU2ZmEzXHU2ZmExXHU2ZmE0XHU2ZmI5XHU2ZmM2XHU2ZmFhXHU2ZmRmXHU2ZmQ1XHU2ZmVjXHU2ZmQ0XHU2ZmQ4'@; put 'XHU2ZmYxXHU2ZmVlXHU2ZmRiXHU3MDA5XHU3MDBiXHU2ZmZhXHU3MDExXHU3MDAxXHU3MDBmXHU2ZmZlXHU3MDFiXHU3MDFhXHU2Zjc0XHU3MDFkXHU3MDE4XHU3MDFmXHU3MDMwXHU3MDNlXHU3MDMyXHU3MDUxXHU3MDYzXHU3MDk5XHU3MDkyXHU3MGFmXHU3MGYxXHU3MGFjXHU3MGI4XHU3'@; put 'MGIzXHU3MGFlXHU3MGRmXHU3MGNiXHU3MGRkXHVmZmZkXHU3MGQ5XHU3MTA5XHU3MGZkXHU3MTFjXHU3MTE5XHU3MTY1XHU3MTU1XHU3MTg4XHU3MTY2XHU3MTYyXHU3MTRjXHU3MTU2XHU3MTZjXHU3MThmXHU3MWZiXHU3MTg0XHU3MTk1XHU3MWE4XHU3MWFjXHU3MWQ3XHU3MWI5XHU3MWJl'@; put 'XHU3MWQyXHU3MWM5XHU3MWQ0XHU3MWNlXHU3MWUwXHU3MWVjXHU3MWU3XHU3MWY1XHU3MWZjXHU3MWY5XHU3MWZmXHU3MjBkXHU3MjEwXHU3MjFiXHU3MjI4XHU3MjJkXHU3MjJjXHU3MjMwXHU3MjMyXHU3MjNiXHU3MjNjXHU3MjNmXHU3MjQwXHU3MjQ2XHU3MjRiXHU3MjU4XHU3Mjc0XHU3'@; put 'MjdlXHU3MjgyXHU3MjgxXHU3Mjg3XHU3MjkyXHU3Mjk2XHU3MmEyXHU3MmE3XHU3MmI5XHU3MmIyXHU3MmMzXHU3MmM2XHU3MmM0XHU3MmNlXHU3MmQyXHU3MmUyXHU3MmUwXHU3MmUxXHU3MmY5XHU3MmY3XHU1MDBmXHU3MzE3XHU3MzBhXHU3MzFjXHU3MzE2XHU3MzFkXHU3MzM0XHU3MzJm'@; put 'XHU3MzI5XHU3MzI1XHU3MzNlXHU3MzRlXHU3MzRmXHU5ZWQ4XHU3MzU3XHU3MzZhXHU3MzY4XHU3MzcwXHU3Mzc4XHU3Mzc1XHU3MzdiXHU3MzdhXHU3M2M4XHU3M2IzXHU3M2NlXHU3M2JiXHU3M2MwXHU3M2U1XHU3M2VlXHU3M2RlXHU3NGEyXHU3NDA1XHU3NDZmXHU3NDI1XHU3M2Y4XHU3'@; put 'NDMyXHU3NDNhXHU3NDU1XHU3NDNmXHU3NDVmXHU3NDU5XHU3NDQxXHU3NDVjXHU3NDY5XHU3NDcwXHU3NDYzXHU3NDZhXHU3NDc2XHU3NDdlXHU3NDhiXHU3NDllXHU3NGE3XHU3NGNhXHU3NGNmXHU3NGQ0XHU3M2YxXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI0'@; put 'XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyNF1bbV1dPTU3MzQ0K20sRls1NzM0NCttXT14WzIyNF1bbV0pO2Zvcih4WzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzRlMFx1'@; put 'NzRlM1x1NzRlN1x1NzRlOVx1NzRlZVx1NzRmMlx1NzRmMFx1NzRmMVx1NzRmOFx1NzRmN1x1NzUwNFx1NzUwM1x1NzUwNVx1NzUwY1x1NzUwZVx1NzUwZFx1NzUxNVx1NzUxM1x1NzUxZVx1NzUyNlx1NzUyY1x1NzUzY1x1NzU0NFx1NzU0ZFx1NzU0YVx1NzU0OVx1NzU1Ylx1NzU0Nlx1NzU1'@; put 'YVx1NzU2OVx1NzU2NFx1NzU2N1x1NzU2Ylx1NzU2ZFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4YVx1NzU4OVx1NzU4Mlx1NzU5NFx1NzU5YVx1NzU5ZFx1NzVhNVx1NzVhM1x1NzVjMlx1NzViM1x1NzVjM1x1NzViNVx1NzViZFx1NzViOFx1NzViY1x1NzViMVx1NzVjZFx1'@; put 'NzVjYVx1NzVkMlx1NzVkOVx1NzVlM1x1NzVkZVx1NzVmZVx1NzVmZlx1ZmZmZFx1NzVmY1x1NzYwMVx1NzVmMFx1NzVmYVx1NzVmMlx1NzVmM1x1NzYwYlx1NzYwZFx1NzYwOVx1NzYxZlx1NzYyN1x1NzYyMFx1NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1NzYzMFx1NzYzYlx1NzY0N1x1NzY0'@; put 'OFx1NzY0Nlx1NzY1Y1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2YVx1NzY2N1x1NzY2Y1x1NzY3MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3Y1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Ylx1NzY4ZVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5YVx1NzZiMFx1NzZiNFx1NzZiOFx1'@; put 'NzZiOVx1NzZiYVx1NzZjMlx1NzZjZFx1NzZkNlx1NzZkMlx1NzZkZVx1NzZlMVx1NzZlNVx1NzZlN1x1NzZlYVx1ODYyZlx1NzZmYlx1NzcwOFx1NzcwN1x1NzcwNFx1NzcyOVx1NzcyNFx1NzcxZVx1NzcyNVx1NzcyNlx1NzcxYlx1NzczN1x1NzczOFx1Nzc0N1x1Nzc1YVx1Nzc2OFx1Nzc2'@; put 'Ylx1Nzc1Ylx1Nzc2NVx1Nzc3Zlx1Nzc3ZVx1Nzc3OVx1Nzc4ZVx1Nzc4Ylx1Nzc5MVx1NzdhMFx1Nzc5ZVx1NzdiMFx1NzdiNlx1NzdiOVx1NzdiZlx1NzdiY1x1NzdiZFx1NzdiYlx1NzdjN1x1NzdjZFx1NzdkN1x1NzdkYVx1NzdkY1x1NzdlM1x1NzdlZVx1NzdmY1x1NzgwY1x1NzgxMlx1'@; put 'NzkyNlx1NzgyMFx1NzkyYVx1Nzg0NVx1Nzg4ZVx1Nzg3NFx1Nzg4Nlx1Nzg3Y1x1Nzg5YVx1Nzg4Y1x1NzhhM1x1NzhiNVx1NzhhYVx1NzhhZlx1NzhkMVx1NzhjNlx1NzhjYlx1NzhkNFx1NzhiZVx1NzhiY1x1NzhjNVx1NzhjYVx1NzhlY1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LG09MDttIT14WzIyNV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjVdW21dXT01NzYwMCttLEZbNTc2MDArbV09eFsyMjVdW21dKTtmb3IoeFsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBcdTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2ZcdTc5OGFcdTc5OWRcdTc5YTdcdTlmNGJcdTc5YWFcdTc5YWVcdTc5YjNcdTc5'@; put 'YjlcdTc5YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdhMWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdhNTdcdTdhNDlcdTdhNjFcdTdhNjJcdTdhNjlcdTlmOWRcdTdhNzBcdTdhNzlc'@; put 'dTdhN2RcdTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjBcdWZmZmRcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZcdTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVcdTdhZDNcdTdhZDlcdTdhZGFcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTZcdTdh'@; put 'ZWRcdTdhZjBcdTdiMDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTBcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdiNzVcdTdiNjVcdTdiNzRcdTdiNjdcdTdiNzBcdTdiNzFcdTdiNmNcdTdiNmVc'@; put 'dTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2JcdTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFcdTdjMTRcdTdiZTZcdTdiZTVcdTdjNjBcdTdjMDBcdTdjMDdcdTdjMTNcdTdi'@; put 'ZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdjNGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdjNjRcdTdjNTZcdTdjNjVcdTdjNmNcdTdjNzVcdTdjODNcdTdjOTBcdTdjYTRc'@; put 'dTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBcdTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZcdTdjZjJcdTdjZjRcdTdjZjZcdTdjZmFcdTdkMDZcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyNl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI2XVttXV09NTc4NTYrbSxGWzU3ODU2K21dPXhbMjI2XVttXSk7Zm9yKHhbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU3ZDAyXHU3ZDFjXHU3ZDE1XHU3ZDBhXHU3ZDQ1XHU3ZDRiXHU3ZDJlXHU3ZDMyXHU3ZDNmXHU3ZDM1XHU3ZDQ2XHU3ZDczXHU3ZDU2XHU3ZDRlXHU3ZDcyXHU3ZDY4XHU3ZDZlXHU3ZDRmXHU3ZDYzXHU3ZDkzXHU3ZDg5XHU3ZDViXHU3ZDhmXHU3ZDdkXHU3'@; put 'ZDliXHU3ZGJhXHU3ZGFlXHU3ZGEzXHU3ZGI1XHU3ZGM3XHU3ZGJkXHU3ZGFiXHU3ZTNkXHU3ZGEyXHU3ZGFmXHU3ZGRjXHU3ZGI4XHU3ZDlmXHU3ZGIwXHU3ZGQ4XHU3ZGRkXHU3ZGU0XHU3ZGRlXHU3ZGZiXHU3ZGYyXHU3ZGUxXHU3ZTA1XHU3ZTBhXHU3ZTIzXHU3ZTIxXHU3ZTEyXHU3ZTMx'@; put 'XHU3ZTFmXHU3ZTA5XHU3ZTBiXHU3ZTIyXHU3ZTQ2XHU3ZTY2XHU3ZTNiXHU3ZTM1XHU3ZTM5XHU3ZTQzXHU3ZTM3XHVmZmZkXHU3ZTMyXHU3ZTNhXHU3ZTY3XHU3ZTVkXHU3ZTU2XHU3ZTVlXHU3ZTU5XHU3ZTVhXHU3ZTc5XHU3ZTZhXHU3ZTY5XHU3ZTdjXHU3ZTdiXHU3ZTgzXHU3ZGQ1XHU3'@; put 'ZTdkXHU4ZmFlXHU3ZTdmXHU3ZTg4XHU3ZTg5XHU3ZThjXHU3ZTkyXHU3ZTkwXHU3ZTkzXHU3ZTk0XHU3ZTk2XHU3ZThlXHU3ZTliXHU3ZTljXHU3ZjM4XHU3ZjNhXHU3ZjQ1XHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3ZjUwXHU3ZjUxXHU3ZjU1XHU3ZjU0XHU3ZjU4XHU3ZjVmXHU3ZjYwXHU3ZjY4'@; put 'XHU3ZjY5XHU3ZjY3XHU3Zjc4XHU3ZjgyXHU3Zjg2XHU3ZjgzXHU3Zjg4XHU3Zjg3XHU3ZjhjXHU3Zjk0XHU3ZjllXHU3ZjlkXHU3ZjlhXHU3ZmEzXHU3ZmFmXHU3ZmIyXHU3ZmI5XHU3ZmFlXHU3ZmI2XHU3ZmI4XHU4YjcxXHU3ZmM1XHU3ZmM2XHU3ZmNhXHU3ZmQ1XHU3ZmQ0XHU3ZmUxXHU3'@; put 'ZmU2XHU3ZmU5XHU3ZmYzXHU3ZmY5XHU5OGRjXHU4MDA2XHU4MDA0XHU4MDBiXHU4MDEyXHU4MDE4XHU4MDE5XHU4MDFjXHU4MDIxXHU4MDI4XHU4MDNmXHU4MDNiXHU4MDRhXHU4MDQ2XHU4MDUyXHU4MDU4XHU4MDVhXHU4MDVmXHU4MDYyXHU4MDY4XHU4MDczXHU4MDcyXHU4MDcwXHU4MDc2'@; put 'XHU4MDc5XHU4MDdkXHU4MDdmXHU4MDg0XHU4MDg2XHU4MDg1XHU4MDliXHU4MDkzXHU4MDlhXHU4MGFkXHU1MTkwXHU4MGFjXHU4MGRiXHU4MGU1XHU4MGQ5XHU4MGRkXHU4MGM0XHU4MGRhXHU4MGQ2XHU4MTA5XHU4MGVmXHU4MGYxXHU4MTFiXHU4MTI5XHU4MTIzXHU4MTJmXHU4MTRiXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyN11bbV1dPTU4MTEyK20sRls1ODExMittXT14WzIyN11bbV0pO2Zvcih4WzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Ylx1ODE0Nlx1ODEzZVx1ODE1M1x1ODE1MVx1ODBmY1x1ODE3MVx1ODE2ZVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4YVx1ODE4MFx1ODE4Mlx1ODFhMFx1ODE5NVx1ODFhNFx1ODFhM1x1ODE1Zlx1ODE5M1x1'@; put 'ODFhOVx1ODFiMFx1ODFiNVx1ODFiZVx1ODFiOFx1ODFiZFx1ODFjMFx1ODFjMlx1ODFiYVx1ODFjOVx1ODFjZFx1ODFkMVx1ODFkOVx1ODFkOFx1ODFjOFx1ODFkYVx1ODFkZlx1ODFlMFx1ODFlN1x1ODFmYVx1ODFmYlx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNVx1ODIwN1x1ODIwYVx1ODIw'@; put 'ZFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyYlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1ODI1OFx1ODI1ZFx1ODI1YVx1ODI1Zlx1ODI2NFx1ZmZmZFx1ODI2Mlx1ODI2OFx1ODI2YVx1ODI2Ylx1ODIyZVx1ODI3MVx1ODI3N1x1ODI3OFx1ODI3ZVx1ODI4ZFx1ODI5Mlx1ODJhYlx1ODI5Zlx1'@; put 'ODJiYlx1ODJhY1x1ODJlMVx1ODJlM1x1ODJkZlx1ODJkMlx1ODJmNFx1ODJmM1x1ODJmYVx1ODM5M1x1ODMwM1x1ODJmYlx1ODJmOVx1ODJkZVx1ODMwNlx1ODJkY1x1ODMwOVx1ODJkOVx1ODMzNVx1ODMzNFx1ODMxNlx1ODMzMlx1ODMzMVx1ODM0MFx1ODMzOVx1ODM1MFx1ODM0NVx1ODMy'@; put 'Zlx1ODMyYlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5YVx1ODNhYVx1ODM5Zlx1ODNhMlx1ODM5Nlx1ODMyM1x1ODM4ZVx1ODM4N1x1ODM4YVx1ODM3Y1x1ODNiNVx1ODM3M1x1ODM3NVx1ODNhMFx1ODM4OVx1ODNhOFx1ODNmNFx1ODQxM1x1ODNlYlx1ODNjZVx1ODNmZFx1ODQwM1x1ODNkOFx1'@; put 'ODQwYlx1ODNjMVx1ODNmN1x1ODQwN1x1ODNlMFx1ODNmMlx1ODQwZFx1ODQyMlx1ODQyMFx1ODNiZFx1ODQzOFx1ODUwNlx1ODNmYlx1ODQ2ZFx1ODQyYVx1ODQzY1x1ODU1YVx1ODQ4NFx1ODQ3N1x1ODQ2Ylx1ODRhZFx1ODQ2ZVx1ODQ4Mlx1ODQ2OVx1ODQ0Nlx1ODQyY1x1ODQ2Zlx1ODQ3'@; put 'OVx1ODQzNVx1ODRjYVx1ODQ2Mlx1ODRiOVx1ODRiZlx1ODQ5Zlx1ODRkOVx1ODRjZFx1ODRiYlx1ODRkYVx1ODRkMFx1ODRjMVx1ODRjNlx1ODRkNlx1ODRhMVx1ODUyMVx1ODRmZlx1ODRmNFx1ODUxN1x1ODUxOFx1ODUyY1x1ODUxZlx1ODUxNVx1ODUxNFx1ODRmY1x1ODU0MFx1ODU2M1x1'@; put 'ODU1OFx1ODU0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyOF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjhdW21dXT01ODM2OCttLEZbNTgzNjgrbV09eFsyMjhdW21dKTtmb3IoeFsyMjldPSJcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1NDFcdTg2MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1OWJcdTg1ZWFcdTg1ODdcdTg1OWNcdTg1NzdcdTg1N2VcdTg1OTBcdTg1Yzlc'@; put 'dTg1YmFcdTg1Y2ZcdTg1YjlcdTg1ZDBcdTg1ZDVcdTg1ZGRcdTg1ZTVcdTg1ZGNcdTg1ZjlcdTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRcdTRlNTVcdTg2NTRcdTg2NWZcdTg2NjdcdTg2NzFcdTg2OTNcdTg2YTNcdTg2'@; put 'YTlcdTg2YWFcdTg2OGJcdTg2OGNcdTg2YjZcdTg2YWZcdTg2YzRcdTg2YzZcdTg2YjBcdTg2YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWNcdWZmZmRcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3MTJcdTg3MDZcdTg3MDhcdTg3MDBcdTg3MDNcdTg2ZmJcdTg3MTFcdTg3MDlc'@; put 'dTg3MGRcdTg2ZjlcdTg3MGFcdTg3MzRcdTg3M2ZcdTg3MzdcdTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFcdTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTlcdTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVcdTg3YTJcdTg3OWZcdTg3ODJcdTg3'@; put 'YWZcdTg3Y2JcdTg3YmRcdTg3YzBcdTg3ZDBcdTk2ZDZcdTg3YWJcdTg3YzRcdTg3YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4MTVcdTg4MjJcdTg4MjFcdTg4MzFc'@; put 'dTg4MzZcdTg4MzlcdTg4MjdcdTg4M2JcdTg4NDRcdTg4NDJcdTg4NTJcdTg4NTlcdTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdcdTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJcdTg4OGRcdTg4YTRcdTg4YjBcdTg4'@; put 'YmZcdTg4YjFcdTg4YzNcdTg4YzRcdTg4ZDRcdTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5NDRcdTg5M2JcdTg5MzZcdTg5Mzhc'@; put 'dTg5NGNcdTg5MWRcdTg5NjBcdTg5NWVcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjldLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI5XVttXV09NTg2MjQrbSxGWzU4NjI0K21dPXhbMjI5XVttXSk7Zm9yKHhbMjMw'@; put 'XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OTY2XHU4OTY0XHU4OTZkXHU4OTZhXHU4OTZmXHU4OTc0XHU4OTc3XHU4OTdlXHU4OTgzXHU4OTg4XHU4OThhXHU4OTkzXHU4OTk4XHU4OWExXHU4OWE5XHU4OWE2XHU4OWFjXHU4OWFm'@; put 'XHU4OWIyXHU4OWJhXHU4OWJkXHU4OWJmXHU4OWMwXHU4OWRhXHU4OWRjXHU4OWRkXHU4OWU3XHU4OWY0XHU4OWY4XHU4YTAzXHU4YTE2XHU4YTEwXHU4YTBjXHU4YTFiXHU4YTFkXHU4YTI1XHU4YTM2XHU4YTQxXHU4YTViXHU4YTUyXHU4YTQ2XHU4YTQ4XHU4YTdjXHU4YTZkXHU4YTZjXHU4'@; put 'YTYyXHU4YTg1XHU4YTgyXHU4YTg0XHU4YWE4XHU4YWExXHU4YTkxXHU4YWE1XHU4YWE2XHU4YTlhXHU4YWEzXHU4YWM0XHU4YWNkXHU4YWMyXHU4YWRhXHU4YWViXHU4YWYzXHU4YWU3XHVmZmZkXHU4YWU0XHU4YWYxXHU4YjE0XHU4YWUwXHU4YWUyXHU4YWY3XHU4YWRlXHU4YWRiXHU4YjBj'@; put 'XHU4YjA3XHU4YjFhXHU4YWUxXHU4YjE2XHU4YjEwXHU4YjE3XHU4YjIwXHU4YjMzXHU5N2FiXHU4YjI2XHU4YjJiXHU4YjNlXHU4YjI4XHU4YjQxXHU4YjRjXHU4YjRmXHU4YjRlXHU4YjQ5XHU4YjU2XHU4YjViXHU4YjVhXHU4YjZiXHU4YjVmXHU4YjZjXHU4YjZmXHU4Yjc0XHU4YjdkXHU4'@; put 'YjgwXHU4YjhjXHU4YjhlXHU4YjkyXHU4YjkzXHU4Yjk2XHU4Yjk5XHU4YjlhXHU4YzNhXHU4YzQxXHU4YzNmXHU4YzQ4XHU4YzRjXHU4YzRlXHU4YzUwXHU4YzU1XHU4YzYyXHU4YzZjXHU4Yzc4XHU4YzdhXHU4YzgyXHU4Yzg5XHU4Yzg1XHU4YzhhXHU4YzhkXHU4YzhlXHU4Yzk0XHU4Yzdj'@; put 'XHU4Yzk4XHU2MjFkXHU4Y2FkXHU4Y2FhXHU4Y2JkXHU4Y2IyXHU4Y2IzXHU4Y2FlXHU4Y2I2XHU4Y2M4XHU4Y2MxXHU4Y2U0XHU4Y2UzXHU4Y2RhXHU4Y2ZkXHU4Y2ZhXHU4Y2ZiXHU4ZDA0XHU4ZDA1XHU4ZDBhXHU4ZDA3XHU4ZDBmXHU4ZDBkXHU4ZDEwXHU5ZjRlXHU4ZDEzXHU4Y2NkXHU4'@; put 'ZDE0XHU4ZDE2XHU4ZDY3XHU4ZDZkXHU4ZDcxXHU4ZDczXHU4ZDgxXHU4ZDk5XHU4ZGMyXHU4ZGJlXHU4ZGJhXHU4ZGNmXHU4ZGRhXHU4ZGQ2XHU4ZGNjXHU4ZGRiXHU4ZGNiXHU4ZGVhXHU4ZGViXHU4ZGRmXHU4ZGUzXHU4ZGZjXHU4ZTA4XHU4ZTA5XHU4ZGZmXHU4ZTFkXHU4ZTFlXHU4ZTEw'@; put 'XHU4ZTFmXHU4ZTQyXHU4ZTM1XHU4ZTMwXHU4ZTM0XHU4ZTRhXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjMwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzMF1bbV1dPTU4ODgwK20sRls1ODg4MCttXT14WzIzMF1b'@; put 'bV0pO2Zvcih4WzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU0N1x1OGU0OVx1OGU0Y1x1OGU1MFx1OGU0OFx1OGU1OVx1OGU2NFx1OGU2MFx1OGUyYVx1OGU2M1x1OGU1NVx1OGU3Nlx1OGU3Mlx1OGU3Y1x1OGU4MVx1OGU4'@; put 'N1x1OGU4NVx1OGU4NFx1OGU4Ylx1OGU4YVx1OGU5M1x1OGU5MVx1OGU5NFx1OGU5OVx1OGVhYVx1OGVhMVx1OGVhY1x1OGViMFx1OGVjNlx1OGViMVx1OGViZVx1OGVjNVx1OGVjOFx1OGVjYlx1OGVkYlx1OGVlM1x1OGVmY1x1OGVmYlx1OGVlYlx1OGVmZVx1OGYwYVx1OGYwNVx1OGYxNVx1'@; put 'OGYxMlx1OGYxOVx1OGYxM1x1OGYxY1x1OGYxZlx1OGYxYlx1OGYwY1x1OGYyNlx1OGYzM1x1OGYzYlx1OGYzOVx1OGY0NVx1OGY0Mlx1OGYzZVx1OGY0Y1x1OGY0OVx1OGY0Nlx1OGY0ZVx1OGY1N1x1OGY1Y1x1ZmZmZFx1OGY2Mlx1OGY2M1x1OGY2NFx1OGY5Y1x1OGY5Zlx1OGZhM1x1OGZh'@; put 'ZFx1OGZhZlx1OGZiN1x1OGZkYVx1OGZlNVx1OGZlMlx1OGZlYVx1OGZlZlx1OTA4N1x1OGZmNFx1OTAwNVx1OGZmOVx1OGZmYVx1OTAxMVx1OTAxNVx1OTAyMVx1OTAwZFx1OTAxZVx1OTAxNlx1OTAwYlx1OTAyN1x1OTAzNlx1OTAzNVx1OTAzOVx1OGZmOFx1OTA0Zlx1OTA1MFx1OTA1MVx1'@; put 'OTA1Mlx1OTAwZVx1OTA0OVx1OTAzZVx1OTA1Nlx1OTA1OFx1OTA1ZVx1OTA2OFx1OTA2Zlx1OTA3Nlx1OTZhOFx1OTA3Mlx1OTA4Mlx1OTA3ZFx1OTA4MVx1OTA4MFx1OTA4YVx1OTA4OVx1OTA4Zlx1OTBhOFx1OTBhZlx1OTBiMVx1OTBiNVx1OTBlMlx1OTBlNFx1NjI0OFx1OTBkYlx1OTEw'@; put 'Mlx1OTExMlx1OTExOVx1OTEzMlx1OTEzMFx1OTE0YVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Ylx1OTE4OVx1OTE4Mlx1OTFhMlx1OTFhYlx1OTFhZlx1OTFhYVx1OTFiNVx1OTFiNFx1OTFiYVx1OTFjMFx1OTFjMVx1OTFjOVx1OTFjYlx1OTFkMFx1'@; put 'OTFkNlx1OTFkZlx1OTFlMVx1OTFkYlx1OTFmY1x1OTFmNVx1OTFmNlx1OTIxZVx1OTFmZlx1OTIxNFx1OTIyY1x1OTIxNVx1OTIxMVx1OTI1ZVx1OTI1N1x1OTI0NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1OTIzZlx1OTI0Ylx1OTI1MFx1OTI5Y1x1OTI5Nlx1OTI5M1x1OTI5Ylx1OTI1'@; put 'YVx1OTJjZlx1OTJiOVx1OTJiN1x1OTJlOVx1OTMwZlx1OTJmYVx1OTM0NFx1OTMyZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzMV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjMxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzFdW21dXT01OTEzNittLEZbNTkx'@; put 'MzYrbV09eFsyMzFdW21dKTtmb3IoeFsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMTlcdTkzMjJcdTkzMWFcdTkzMjNcdTkzM2FcdTkzMzVcdTkzM2JcdTkzNWNcdTkzNjBcdTkzN2NcdTkzNmVcdTkzNTZcdTkzYjBcdTkz'@; put 'YWNcdTkzYWRcdTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkzZDBcdTkzYzhcdTkzZTRcdTk0MWFcdTk0MTRcdTk0MTNcdTk0MDNcdTk0MDdcdTk0MTBcdTk0MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0M2FcdTk0NDFcdTk0NTJcdTk0NDRc'@; put 'dTk0NWJcdTk0NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFcdTk0N2NcdTk0N2VcdTk0ODFcdTk0N2ZcdTk1ODJcdTk1ODdcdTk1OGFcdTk1OTRcdTk1OTZcdTk1OThcdTk1OTlcdWZmZmRcdTk1YTBcdTk1YThcdTk1YTdcdTk1YWRcdTk1'@; put 'YmNcdTk1YmJcdTk1YjlcdTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1ZDRcdTk1ZDZcdTk1ZGNcdTk1ZTFcdTk1ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2MmVcdTk2MmZcdTk2NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2NzdcdTk2NWNcdTk2NWVcdTk2NWRc'@; put 'dTk2NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdcdTk2YjFcdTk2YjJcdTk2YjBcdTk2YjRcdTk2YjZcdTk2YjhcdTk2YjlcdTk2Y2VcdTk2Y2JcdTk2YzlcdTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRcdTk2ZDVcdTk2ZjlcdTk3MDRcdTk3'@; put 'MDZcdTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3MzBcdTk3MzlcdTk3M2RcdTk3M2VcdTk3NDRcdTk3NDZcdTk3NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUyZDJcdTk3NmJcdTk3NzFcdTk3Nzlc'@; put 'dTk3ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThcdTk3YTZcdTk3YTNcdTk3YjNcdTk3YjRcdTk3YzNcdTk3YzZcdTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRcdTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZcdTk3ZjVcdTk4MGZcdTk4MGNcdTk4'@; put 'MzhcdTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4NzBcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzMl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjMyXVttXV09'@; put 'NTkzOTIrbSxGWzU5MzkyK21dPXhbMjMyXVttXSk7Zm9yKHhbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODcxXHU5ODc0XHU5ODczXHU5OGFhXHU5OGFmXHU5OGIxXHU5OGI2XHU5OGM0XHU5OGMzXHU5OGM2XHU5OGU5XHU5'@; put 'OGViXHU5OTAzXHU5OTA5XHU5OTEyXHU5OTE0XHU5OTE4XHU5OTIxXHU5OTFkXHU5OTFlXHU5OTI0XHU5OTIwXHU5OTJjXHU5OTJlXHU5OTNkXHU5OTNlXHU5OTQyXHU5OTQ5XHU5OTQ1XHU5OTUwXHU5OTRiXHU5OTUxXHU5OTUyXHU5OTRjXHU5OTU1XHU5OTk3XHU5OTk4XHU5OWE1XHU5OWFk'@; put 'XHU5OWFlXHU5OWJjXHU5OWRmXHU5OWRiXHU5OWRkXHU5OWQ4XHU5OWQxXHU5OWVkXHU5OWVlXHU5OWYxXHU5OWYyXHU5OWZiXHU5OWY4XHU5YTAxXHU5YTBmXHU5YTA1XHU5OWUyXHU5YTE5XHU5YTJiXHU5YTM3XHU5YTQ1XHU5YTQyXHU5YTQwXHU5YTQzXHVmZmZkXHU5YTNlXHU5YTU1XHU5'@; put 'YTRkXHU5YTViXHU5YTU3XHU5YTVmXHU5YTYyXHU5YTY1XHU5YTY0XHU5YTY5XHU5YTZiXHU5YTZhXHU5YWFkXHU5YWIwXHU5YWJjXHU5YWMwXHU5YWNmXHU5YWQxXHU5YWQzXHU5YWQ0XHU5YWRlXHU5YWRmXHU5YWUyXHU5YWUzXHU5YWU2XHU5YWVmXHU5YWViXHU5YWVlXHU5YWY0XHU5YWYx'@; put 'XHU5YWY3XHU5YWZiXHU5YjA2XHU5YjE4XHU5YjFhXHU5YjFmXHU5YjIyXHU5YjIzXHU5YjI1XHU5YjI3XHU5YjI4XHU5YjI5XHU5YjJhXHU5YjJlXHU5YjJmXHU5YjMyXHU5YjQ0XHU5YjQzXHU5YjRmXHU5YjRkXHU5YjRlXHU5YjUxXHU5YjU4XHU5Yjc0XHU5YjkzXHU5YjgzXHU5YjkxXHU5'@; put 'Yjk2XHU5Yjk3XHU5YjlmXHU5YmEwXHU5YmE4XHU5YmI0XHU5YmMwXHU5YmNhXHU5YmI5XHU5YmM2XHU5YmNmXHU5YmQxXHU5YmQyXHU5YmUzXHU5YmUyXHU5YmU0XHU5YmQ0XHU5YmUxXHU5YzNhXHU5YmYyXHU5YmYxXHU5YmYwXHU5YzE1XHU5YzE0XHU5YzA5XHU5YzEzXHU5YzBjXHU5YzA2'@; put 'XHU5YzA4XHU5YzEyXHU5YzBhXHU5YzA0XHU5YzJlXHU5YzFiXHU5YzI1XHU5YzI0XHU5YzIxXHU5YzMwXHU5YzQ3XHU5YzMyXHU5YzQ2XHU5YzNlXHU5YzVhXHU5YzYwXHU5YzY3XHU5Yzc2XHU5Yzc4XHU5Y2U3XHU5Y2VjXHU5Y2YwXHU5ZDA5XHU5ZDA4XHU5Y2ViXHU5ZDAzXHU5ZDA2XHU5'@; put 'ZDJhXHU5ZDI2XHU5ZGFmXHU5ZDIzXHU5ZDFmXHU5ZDQ0XHU5ZDE1XHU5ZDEyXHU5ZDQxXHU5ZDNmXHU5ZDNlXHU5ZDQ2XHU5ZDQ4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjMzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzNdW21dLmNoYXJDb2RlQXQoMCkmJihh'@; put 'ZVt4WzIzM11bbV1dPTU5NjQ4K20sRls1OTY0OCttXT14WzIzM11bbV0pO2Zvcih4WzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWQ1ZFx1OWQ1ZVx1OWQ2NFx1OWQ1MVx1OWQ1MFx1OWQ1OVx1OWQ3Mlx1OWQ4OVx1OWQ4N1x1'@; put 'OWRhYlx1OWQ2Zlx1OWQ3YVx1OWQ5YVx1OWRhNFx1OWRhOVx1OWRiMlx1OWRjNFx1OWRjMVx1OWRiYlx1OWRiOFx1OWRiYVx1OWRjNlx1OWRjZlx1OWRjMlx1OWRkOVx1OWRkM1x1OWRmOFx1OWRlNlx1OWRlZFx1OWRlZlx1OWRmZFx1OWUxYVx1OWUxYlx1OWUxZVx1OWU3NVx1OWU3OVx1OWU3'@; put 'ZFx1OWU4MVx1OWU4OFx1OWU4Ylx1OWU4Y1x1OWU5Mlx1OWU5NVx1OWU5MVx1OWU5ZFx1OWVhNVx1OWVhOVx1OWViOFx1OWVhYVx1OWVhZFx1OTc2MVx1OWVjY1x1OWVjZVx1OWVjZlx1OWVkMFx1OWVkNFx1OWVkY1x1OWVkZVx1OWVkZFx1OWVlMFx1OWVlNVx1OWVlOFx1OWVlZlx1ZmZmZFx1'@; put 'OWVmNFx1OWVmNlx1OWVmN1x1OWVmOVx1OWVmYlx1OWVmY1x1OWVmZFx1OWYwN1x1OWYwOFx1NzZiN1x1OWYxNVx1OWYyMVx1OWYyY1x1OWYzZVx1OWY0YVx1OWY1Mlx1OWY1NFx1OWY2M1x1OWY1Zlx1OWY2MFx1OWY2MVx1OWY2Nlx1OWY2N1x1OWY2Y1x1OWY2YVx1OWY3N1x1OWY3Mlx1OWY3'@; put 'Nlx1OWY5NVx1OWY5Y1x1OWZhMFx1NTgyZlx1NjljN1x1OTA1OVx1NzQ2NFx1NTFkY1x1NzE5OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzNF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM0XVttXS5jaGFy'@; put 'Q29kZUF0KDApJiYoYWVbeFsyMzRdW21dXT01OTkwNCttLEZbNTk5MDQrbV09eFsyMzRdW21dKTtmb3IoeFsyMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcwYmJc'@; put 'dTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhcdTUx'@; put 'NGFcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3Yzdc'@; put 'dWZhMGZcdWZmZmRcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVk'@; put 'YjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBcdTY2MTVcdTY2M2Jc'@; put 'dTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5'@; put 'ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZc'@; put 'dTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjFcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzddLmxlbmd0aDsrK20pNjU1MzMhPT14'@; put 'WzIzN11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM3XVttXV09NjA2NzIrbSxGWzYwNjcyK21dPXhbMjM3XVttXSk7Zm9yKHhbMjM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MmJlXHU3MzI0XHVmYTE2XHU3Mzc3XHU3M2Jk'@; put 'XHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3NDJlXHU3NDYyXHU3NDg5XHU3NDlmXHU3NTAxXHU3NTZmXHU3NjgyXHU3NjljXHU3NjllXHU3NjliXHU3NmE2XHVmYTE3XHU3NzQ2XHU1MmFmXHU3ODIxXHU3ODRlXHU3ODY0XHU3ODdhXHU3'@; put 'OTMwXHVmYTE4XHVmYTE5XHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFjXHU3YWViXHU3YjllXHVmYTFkXHU3ZDQ4XHU3ZDVjXHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUyXHU3ZjQ3XHU3ZmExXHVmYTFlXHU4MzAxXHU4MzYyXHU4MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4'@; put 'XHU4NGI0XHU4NTUzXHU4NTU5XHVmZmZkXHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4OGY1XHU4YTEyXHU4YTM3XHU4YTc5XHU4YWE3XHU4YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4YjUzXHU4YjdmXHU4Y2YwXHU4Y2Y0XHU4ZDEyXHU4ZDc2XHVmYTIzXHU4ZWNmXHVm'@; put 'YTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhXHU5MWQ3XHU5MWRlXHU5MWVkXHU5MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEwXHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNjXHU5MjRlXHU5MjU5XHU5MjUxXHU5MjM5XHU5MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4'@; put 'XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5MzI1XHU5MzIxXHU5MmZiXHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5M2M2XHU5M2RlXHU5M2Y4XHU5NDMxXHU5NDQ1XHU5NDQ4XHU5NTkyXHVmOWRjXHVm'@; put 'YTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUxXHU5NzU1XHU5ODU3XHU5ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJjXHU5OTllXHU5YTRlXHU5YWQ5XHU5YWRjXHU5Yjc1XHU5YjcyXHU5YjhmXHU5YmIxXHU5YmJiXHU5YzAwXHU5ZDcwXHU5ZDZi'@; put 'XHVmYTJkXHU5ZTE5XHU5ZWQxXHVmZmZkXHVmZmZkXHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmUyXHVmZmU0XHVmZjA3XHVmZjAyXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjM4XS5sZW5ndGg7'@; put 'KyttKTY1NTMzIT09eFsyMzhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzOF1bbV1dPTYwOTI4K20sRls2MDkyOCttXT14WzIzOF1bbV0pO2Zvcih4WzI1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjE3MFx1MjE3MVx1MjE3'@; put 'Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1MzIzMVx1MjExNlx1MjEyMVx1MjIzNVx1N2U4YVx1ODkxY1x1'@; put 'OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3'@; put 'MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1ZmZmZFx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1'@; put 'NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1'@; put 'M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1'@; put 'NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1Njhj'@; put 'Zlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14'@; put 'WzI1MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjUwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNTBdW21dXT02NGUzK20sRls2NGUzK21dPXhbMjUwXVttXSk7Zm9yKHhbMjUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDk2'@; put 'XHU2ZGFjXHU2ZGNmXHU2ZGY4XHU2ZGYyXHU2ZGZjXHU2ZTM5XHU2ZTVjXHU2ZTI3XHU2ZTNjXHU2ZWJmXHU2Zjg4XHU2ZmI1XHU2ZmY1XHU3MDA1XHU3MDA3XHU3MDI4XHU3MDg1XHU3MGFiXHU3MTBmXHU3MTA0XHU3MTVjXHU3MTQ2XHU3MTQ3XHVmYTE1XHU3MWMxXHU3MWZlXHU3MmIxXHU3'@; put 'MmJlXHU3MzI0XHVmYTE2XHU3Mzc3XHU3M2JkXHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3NDJlXHU3NDYyXHU3NDg5XHU3NDlmXHU3NTAxXHU3NTZmXHU3NjgyXHU3NjljXHU3NjllXHU3NjliXHU3NmE2XHVmYTE3XHU3NzQ2XHU1MmFm'@; put 'XHU3ODIxXHU3ODRlXHU3ODY0XHU3ODdhXHU3OTMwXHVmYTE4XHVmYTE5XHVmZmZkXHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFjXHU3YWViXHU3YjllXHVmYTFkXHU3ZDQ4XHU3ZDVjXHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUyXHU3ZjQ3XHU3ZmExXHVmYTFlXHU4'@; put 'MzAxXHU4MzYyXHU4MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4XHU4NGI0XHU4NTUzXHU4NTU5XHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4OGY1XHU4YTEyXHU4YTM3XHU4YTc5XHU4YWE3XHU4YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4YjUzXHU4YjdmXHU4Y2YwXHU4Y2Y0'@; put 'XHU4ZDEyXHU4ZDc2XHVmYTIzXHU4ZWNmXHVmYTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhXHU5MWQ3XHU5MWRlXHU5MWVkXHU5MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEwXHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNjXHU5MjRlXHU5MjU5XHU5MjUxXHU5'@; put 'MjM5XHU5MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5MzI1XHU5MzIxXHU5MmZiXHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5M2M2XHU5M2RlXHU5M2Y4XHU5NDMx'@; put 'XHU5NDQ1XHU5NDQ4XHU5NTkyXHVmOWRjXHVmYTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUxXHU5NzU1XHU5ODU3XHU5ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJjXHU5OTllXHU5YTRlXHU5YWQ5XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgi'@; put 'IiksbT0wO20hPXhbMjUxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNTFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI1MV1bbV1dPTY0MjU2K20sRls2NDI1NittXT14WzI1MV1bbV0pO2Zvcih4WzI1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI1Ml0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjUyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNTJdW21dXT02NDUxMittLEZbNjQ1MTIrbV09eFsyNTJdW21dKTtyZXR1cm57ZW5jOmFlLGRlYzpGfX0oKSxJZVs5MzZdPWZ1bmN0aW9uKCl7dmFy'@; put 'IG0sRj1bXSxhZT17fSx4PVtdO2Zvcih4WzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0'@; put 'NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzBdW21dXT0wK20sRlswK21dPXhbMF1bbV0pO2Zvcih4WzEyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMlx1NGUwNFx1NGUwNVx1NGUwNlx1NGUwZlx1NGUxMlx1NGUxN1x1NGUxZlx1NGUyMFx1NGUyMVx1NGUyM1x1NGUyNlx1NGUyOVx1NGUyZVx1NGUyZlx1NGUzMVx1NGUzM1x1NGUzNVx1NGUzN1x1NGUzY1x1NGU0MFx1NGU0MVx1NGU0Mlx1NGU0'@; put 'NFx1NGU0Nlx1NGU0YVx1NGU1MVx1NGU1NVx1NGU1N1x1NGU1YVx1NGU1Ylx1NGU2Mlx1NGU2M1x1NGU2NFx1NGU2NVx1NGU2N1x1NGU2OFx1NGU2YVx1NGU2Ylx1NGU2Y1x1NGU2ZFx1NGU2ZVx1NGU2Zlx1NGU3Mlx1NGU3NFx1NGU3NVx1NGU3Nlx1NGU3N1x1NGU3OFx1NGU3OVx1NGU3YVx1'@; put 'NGU3Ylx1NGU3Y1x1NGU3ZFx1NGU3Zlx1NGU4MFx1NGU4MVx1NGU4Mlx1NGU4M1x1NGU4NFx1NGU4NVx1NGU4N1x1NGU4YVx1ZmZmZFx1NGU5MFx1NGU5Nlx1NGU5N1x1NGU5OVx1NGU5Y1x1NGU5ZFx1NGU5ZVx1NGVhM1x1NGVhYVx1NGVhZlx1NGViMFx1NGViMVx1NGViNFx1NGViNlx1NGVi'@; put 'N1x1NGViOFx1NGViOVx1NGViY1x1NGViZFx1NGViZVx1NGVjOFx1NGVjY1x1NGVjZlx1NGVkMFx1NGVkMlx1NGVkYVx1NGVkYlx1NGVkY1x1NGVlMFx1NGVlMlx1NGVlNlx1NGVlN1x1NGVlOVx1NGVlZFx1NGVlZVx1NGVlZlx1NGVmMVx1NGVmNFx1NGVmOFx1NGVmOVx1NGVmYVx1NGVmY1x1'@; put 'NGVmZVx1NGYwMFx1NGYwMlx1NGYwM1x1NGYwNFx1NGYwNVx1NGYwNlx1NGYwN1x1NGYwOFx1NGYwYlx1NGYwY1x1NGYxMlx1NGYxM1x1NGYxNFx1NGYxNVx1NGYxNlx1NGYxY1x1NGYxZFx1NGYyMVx1NGYyM1x1NGYyOFx1NGYyOVx1NGYyY1x1NGYyZFx1NGYyZVx1NGYzMVx1NGYzM1x1NGYz'@; put 'NVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZVx1NGYzZlx1NGY0MFx1NGY0MVx1NGY0Mlx1NGY0NFx1NGY0NVx1NGY0N1x1NGY0OFx1NGY0OVx1NGY0YVx1NGY0Ylx1NGY0Y1x1NGY1Mlx1NGY1NFx1NGY1Nlx1NGY2MVx1NGY2Mlx1NGY2Nlx1NGY2OFx1NGY2YVx1NGY2Ylx1NGY2ZFx1NGY2ZVx1'@; put 'NGY3MVx1NGY3Mlx1NGY3NVx1NGY3N1x1NGY3OFx1NGY3OVx1NGY3YVx1NGY3ZFx1NGY4MFx1NGY4MVx1NGY4Mlx1NGY4NVx1NGY4Nlx1NGY4N1x1NGY4YVx1NGY4Y1x1NGY4ZVx1NGY5MFx1NGY5Mlx1NGY5M1x1NGY5NVx1NGY5Nlx1NGY5OFx1NGY5OVx1NGY5YVx1NGY5Y1x1NGY5ZVx1NGY5'@; put 'Zlx1NGZhMVx1NGZhMlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEyOV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTI5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMjldW21dXT0zMzAyNCttLEZbMzMwMjQrbV09eFsxMjldW21dKTtmb3IoeFsxMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmYTRcdTRmYWJcdTRmYWRcdTRmYjBcdTRmYjFcdTRmYjJcdTRmYjNcdTRmYjRcdTRmYjZcdTRmYjdcdTRmYjhcdTRmYjlcdTRmYmFcdTRmYmJcdTRmYmNcdTRmYmRcdTRmYmVcdTRmYzBcdTRmYzFcdTRmYzJcdTRmYzZcdTRm'@; put 'YzdcdTRmYzhcdTRmYzlcdTRmY2JcdTRmY2NcdTRmY2RcdTRmZDJcdTRmZDNcdTRmZDRcdTRmZDVcdTRmZDZcdTRmZDlcdTRmZGJcdTRmZTBcdTRmZTJcdTRmZTRcdTRmZTVcdTRmZTdcdTRmZWJcdTRmZWNcdTRmZjBcdTRmZjJcdTRmZjRcdTRmZjVcdTRmZjZcdTRmZjdcdTRmZjlcdTRmZmJc'@; put 'dTRmZmNcdTRmZmRcdTRmZmZcdTUwMDBcdTUwMDFcdTUwMDJcdTUwMDNcdTUwMDRcdTUwMDVcdTUwMDZcdTUwMDdcdTUwMDhcdTUwMDlcdTUwMGFcdWZmZmRcdTUwMGJcdTUwMGVcdTUwMTBcdTUwMTFcdTUwMTNcdTUwMTVcdTUwMTZcdTUwMTdcdTUwMWJcdTUwMWRcdTUwMWVcdTUwMjBcdTUw'@; put 'MjJcdTUwMjNcdTUwMjRcdTUwMjdcdTUwMmJcdTUwMmZcdTUwMzBcdTUwMzFcdTUwMzJcdTUwMzNcdTUwMzRcdTUwMzVcdTUwMzZcdTUwMzdcdTUwMzhcdTUwMzlcdTUwM2JcdTUwM2RcdTUwM2ZcdTUwNDBcdTUwNDFcdTUwNDJcdTUwNDRcdTUwNDVcdTUwNDZcdTUwNDlcdTUwNGFcdTUwNGJc'@; put 'dTUwNGRcdTUwNTBcdTUwNTFcdTUwNTJcdTUwNTNcdTUwNTRcdTUwNTZcdTUwNTdcdTUwNThcdTUwNTlcdTUwNWJcdTUwNWRcdTUwNWVcdTUwNWZcdTUwNjBcdTUwNjFcdTUwNjJcdTUwNjNcdTUwNjRcdTUwNjZcdTUwNjdcdTUwNjhcdTUwNjlcdTUwNmFcdTUwNmJcdTUwNmRcdTUwNmVcdTUw'@; put 'NmZcdTUwNzBcdTUwNzFcdTUwNzJcdTUwNzNcdTUwNzRcdTUwNzVcdTUwNzhcdTUwNzlcdTUwN2FcdTUwN2NcdTUwN2RcdTUwODFcdTUwODJcdTUwODNcdTUwODRcdTUwODZcdTUwODdcdTUwODlcdTUwOGFcdTUwOGJcdTUwOGNcdTUwOGVcdTUwOGZcdTUwOTBcdTUwOTFcdTUwOTJcdTUwOTNc'@; put 'dTUwOTRcdTUwOTVcdTUwOTZcdTUwOTdcdTUwOThcdTUwOTlcdTUwOWFcdTUwOWJcdTUwOWNcdTUwOWRcdTUwOWVcdTUwOWZcdTUwYTBcdTUwYTFcdTUwYTJcdTUwYTRcdTUwYTZcdTUwYWFcdTUwYWJcdTUwYWRcdTUwYWVcdTUwYWZcdTUwYjBcdTUwYjFcdTUwYjNcdTUwYjRcdTUwYjVcdTUw'@; put 'YjZcdTUwYjdcdTUwYjhcdTUwYjlcdTUwYmNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxMzBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTMwXVttXV09MzMyODArbSxGWzMzMjgwK21dPXhbMTMwXVttXSk7Zm9yKHhbMTMxXT0iXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MGJkXHU1MGJlXHU1MGJmXHU1MGMwXHU1MGMxXHU1MGMyXHU1MGMzXHU1MGM0XHU1MGM1XHU1MGM2XHU1MGM3XHU1MGM4XHU1MGM5XHU1MGNhXHU1MGNiXHU1MGNjXHU1MGNkXHU1MGNlXHU1MGQwXHU1'@; put 'MGQxXHU1MGQyXHU1MGQzXHU1MGQ0XHU1MGQ1XHU1MGQ3XHU1MGQ4XHU1MGQ5XHU1MGRiXHU1MGRjXHU1MGRkXHU1MGRlXHU1MGRmXHU1MGUwXHU1MGUxXHU1MGUyXHU1MGUzXHU1MGU0XHU1MGU1XHU1MGU4XHU1MGU5XHU1MGVhXHU1MGViXHU1MGVmXHU1MGYwXHU1MGYxXHU1MGYyXHU1MGY0'@; put 'XHU1MGY2XHU1MGY3XHU1MGY4XHU1MGY5XHU1MGZhXHU1MGZjXHU1MGZkXHU1MGZlXHU1MGZmXHU1MTAwXHU1MTAxXHU1MTAyXHU1MTAzXHU1MTA0XHU1MTA1XHU1MTA4XHVmZmZkXHU1MTA5XHU1MTBhXHU1MTBjXHU1MTBkXHU1MTBlXHU1MTBmXHU1MTEwXHU1MTExXHU1MTEzXHU1MTE0XHU1'@; put 'MTE1XHU1MTE2XHU1MTE3XHU1MTE4XHU1MTE5XHU1MTFhXHU1MTFiXHU1MTFjXHU1MTFkXHU1MTFlXHU1MTFmXHU1MTIwXHU1MTIyXHU1MTIzXHU1MTI0XHU1MTI1XHU1MTI2XHU1MTI3XHU1MTI4XHU1MTI5XHU1MTJhXHU1MTJiXHU1MTJjXHU1MTJkXHU1MTJlXHU1MTJmXHU1MTMwXHU1MTMx'@; put 'XHU1MTMyXHU1MTMzXHU1MTM0XHU1MTM1XHU1MTM2XHU1MTM3XHU1MTM4XHU1MTM5XHU1MTNhXHU1MTNiXHU1MTNjXHU1MTNkXHU1MTNlXHU1MTQyXHU1MTQ3XHU1MTRhXHU1MTRjXHU1MTRlXHU1MTRmXHU1MTUwXHU1MTUyXHU1MTUzXHU1MTU3XHU1MTU4XHU1MTU5XHU1MTViXHU1MTVkXHU1'@; put 'MTVlXHU1MTVmXHU1MTYwXHU1MTYxXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3XHU1MTY5XHU1MTZhXHU1MTZmXHU1MTcyXHU1MTdhXHU1MTdlXHU1MTdmXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThhXHU1MThiXHU1MThlXHU1MThmXHU1MTkwXHU1MTkxXHU1MTkzXHU1MTk0XHU1MTk4'@; put 'XHU1MTlhXHU1MTlkXHU1MTllXHU1MTlmXHU1MWExXHU1MWEzXHU1MWE2XHU1MWE3XHU1MWE4XHU1MWE5XHU1MWFhXHU1MWFkXHU1MWFlXHU1MWI0XHU1MWI4XHU1MWI5XHU1MWJhXHU1MWJlXHU1MWJmXHU1MWMxXHU1MWMyXHU1MWMzXHU1MWM1XHU1MWM4XHU1MWNhXHU1MWNkXHU1MWNlXHU1'@; put 'MWQwXHU1MWQyXHU1MWQzXHU1MWQ0XHU1MWQ1XHU1MWQ2XHU1MWQ3XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTMxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxMzFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzMV1bbV1dPTMzNTM2K20sRlszMzUzNittXT14WzEzMV1bbV0pO2Zvcih4'@; put 'WzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTFkOFx1NTFkOVx1NTFkYVx1NTFkY1x1NTFkZVx1NTFkZlx1NTFlMlx1NTFlM1x1NTFlNVx1NTFlNlx1NTFlN1x1NTFlOFx1NTFlOVx1NTFlYVx1NTFlY1x1NTFlZVx1NTFmMVx1'@; put 'NTFmMlx1NTFmNFx1NTFmN1x1NTFmZVx1NTIwNFx1NTIwNVx1NTIwOVx1NTIwYlx1NTIwY1x1NTIwZlx1NTIxMFx1NTIxM1x1NTIxNFx1NTIxNVx1NTIxY1x1NTIxZVx1NTIxZlx1NTIyMVx1NTIyMlx1NTIyM1x1NTIyNVx1NTIyNlx1NTIyN1x1NTIyYVx1NTIyY1x1NTIyZlx1NTIzMVx1NTIz'@; put 'Mlx1NTIzNFx1NTIzNVx1NTIzY1x1NTIzZVx1NTI0NFx1NTI0NVx1NTI0Nlx1NTI0N1x1NTI0OFx1NTI0OVx1NTI0Ylx1NTI0ZVx1NTI0Zlx1NTI1Mlx1NTI1M1x1NTI1NVx1NTI1N1x1NTI1OFx1ZmZmZFx1NTI1OVx1NTI1YVx1NTI1Ylx1NTI1ZFx1NTI1Zlx1NTI2MFx1NTI2Mlx1NTI2M1x1'@; put 'NTI2NFx1NTI2Nlx1NTI2OFx1NTI2Ylx1NTI2Y1x1NTI2ZFx1NTI2ZVx1NTI3MFx1NTI3MVx1NTI3M1x1NTI3NFx1NTI3NVx1NTI3Nlx1NTI3N1x1NTI3OFx1NTI3OVx1NTI3YVx1NTI3Ylx1NTI3Y1x1NTI3ZVx1NTI4MFx1NTI4M1x1NTI4NFx1NTI4NVx1NTI4Nlx1NTI4N1x1NTI4OVx1NTI4'@; put 'YVx1NTI4Ylx1NTI4Y1x1NTI4ZFx1NTI4ZVx1NTI4Zlx1NTI5MVx1NTI5Mlx1NTI5NFx1NTI5NVx1NTI5Nlx1NTI5N1x1NTI5OFx1NTI5OVx1NTI5YVx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1NTJhN1x1NTJhZVx1NTJhZlx1NTJiMFx1NTJiNFx1NTJiNVx1NTJiNlx1NTJiN1x1NTJiOFx1'@; put 'NTJiOVx1NTJiYVx1NTJiYlx1NTJiY1x1NTJiZFx1NTJjMFx1NTJjMVx1NTJjMlx1NTJjNFx1NTJjNVx1NTJjNlx1NTJjOFx1NTJjYVx1NTJjY1x1NTJjZFx1NTJjZVx1NTJjZlx1NTJkMVx1NTJkM1x1NTJkNFx1NTJkNVx1NTJkN1x1NTJkOVx1NTJkYVx1NTJkYlx1NTJkY1x1NTJkZFx1NTJk'@; put 'ZVx1NTJlMFx1NTJlMVx1NTJlMlx1NTJlM1x1NTJlNVx1NTJlNlx1NTJlN1x1NTJlOFx1NTJlOVx1NTJlYVx1NTJlYlx1NTJlY1x1NTJlZFx1NTJlZVx1NTJlZlx1NTJmMVx1NTJmMlx1NTJmM1x1NTJmNFx1NTJmNVx1NTJmNlx1NTJmN1x1NTJmOFx1NTJmYlx1NTJmY1x1NTJmZFx1NTMwMVx1'@; put 'NTMwMlx1NTMwM1x1NTMwNFx1NTMwN1x1NTMwOVx1NTMwYVx1NTMwYlx1NTMwY1x1NTMwZVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzMl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTMyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMzJdW21dXT0zMzc5MittLEZbMzM3OTIrbV09eFsx'@; put 'MzJdW21dKTtmb3IoeFsxMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUzMTFcdTUzMTJcdTUzMTNcdTUzMTRcdTUzMThcdTUzMWJcdTUzMWNcdTUzMWVcdTUzMWZcdTUzMjJcdTUzMjRcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlc'@; put 'dTUzMmJcdTUzMmNcdTUzMmRcdTUzMmZcdTUzMzBcdTUzMzFcdTUzMzJcdTUzMzNcdTUzMzRcdTUzMzVcdTUzMzZcdTUzMzdcdTUzMzhcdTUzM2NcdTUzM2RcdTUzNDBcdTUzNDJcdTUzNDRcdTUzNDZcdTUzNGJcdTUzNGNcdTUzNGRcdTUzNTBcdTUzNTRcdTUzNThcdTUzNTlcdTUzNWJcdTUz'@; put 'NWRcdTUzNjVcdTUzNjhcdTUzNmFcdTUzNmNcdTUzNmRcdTUzNzJcdTUzNzZcdTUzNzlcdTUzN2JcdTUzN2NcdTUzN2RcdTUzN2VcdTUzODBcdTUzODFcdTUzODNcdTUzODdcdTUzODhcdTUzOGFcdTUzOGVcdTUzOGZcdWZmZmRcdTUzOTBcdTUzOTFcdTUzOTJcdTUzOTNcdTUzOTRcdTUzOTZc'@; put 'dTUzOTdcdTUzOTlcdTUzOWJcdTUzOWNcdTUzOWVcdTUzYTBcdTUzYTFcdTUzYTRcdTUzYTdcdTUzYWFcdTUzYWJcdTUzYWNcdTUzYWRcdTUzYWZcdTUzYjBcdTUzYjFcdTUzYjJcdTUzYjNcdTUzYjRcdTUzYjVcdTUzYjdcdTUzYjhcdTUzYjlcdTUzYmFcdTUzYmNcdTUzYmRcdTUzYmVcdTUz'@; put 'YzBcdTUzYzNcdTUzYzRcdTUzYzVcdTUzYzZcdTUzYzdcdTUzY2VcdTUzY2ZcdTUzZDBcdTUzZDJcdTUzZDNcdTUzZDVcdTUzZGFcdTUzZGNcdTUzZGRcdTUzZGVcdTUzZTFcdTUzZTJcdTUzZTdcdTUzZjRcdTUzZmFcdTUzZmVcdTUzZmZcdTU0MDBcdTU0MDJcdTU0MDVcdTU0MDdcdTU0MGJc'@; put 'dTU0MTRcdTU0MThcdTU0MTlcdTU0MWFcdTU0MWNcdTU0MjJcdTU0MjRcdTU0MjVcdTU0MmFcdTU0MzBcdTU0MzNcdTU0MzZcdTU0MzdcdTU0M2FcdTU0M2RcdTU0M2ZcdTU0NDFcdTU0NDJcdTU0NDRcdTU0NDVcdTU0NDdcdTU0NDlcdTU0NGNcdTU0NGRcdTU0NGVcdTU0NGZcdTU0NTFcdTU0'@; put 'NWFcdTU0NWRcdTU0NWVcdTU0NWZcdTU0NjBcdTU0NjFcdTU0NjNcdTU0NjVcdTU0NjdcdTU0NjlcdTU0NmFcdTU0NmJcdTU0NmNcdTU0NmRcdTU0NmVcdTU0NmZcdTU0NzBcdTU0NzRcdTU0NzlcdTU0N2FcdTU0N2VcdTU0N2ZcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODdcdTU0ODhcdTU0ODlc'@; put 'dTU0OGFcdTU0OGRcdTU0OTFcdTU0OTNcdTU0OTdcdTU0OThcdTU0OWNcdTU0OWVcdTU0OWZcdTU0YTBcdTU0YTFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxMzNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzM11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTMzXVttXV09MzQwNDgrbSxG'@; put 'WzM0MDQ4K21dPXhbMTMzXVttXSk7Zm9yKHhbMTM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGEyXHU1NGE1XHU1NGFlXHU1NGIwXHU1NGIyXHU1NGI1XHU1NGI2XHU1NGI3XHU1NGI5XHU1NGJhXHU1NGJjXHU1NGJlXHU1NGMz'@; put 'XHU1NGM1XHU1NGNhXHU1NGNiXHU1NGQ2XHU1NGQ4XHU1NGRiXHU1NGUwXHU1NGUxXHU1NGUyXHU1NGUzXHU1NGU0XHU1NGViXHU1NGVjXHU1NGVmXHU1NGYwXHU1NGYxXHU1NGY0XHU1NGY1XHU1NGY2XHU1NGY3XHU1NGY4XHU1NGY5XHU1NGZiXHU1NGZlXHU1NTAwXHU1NTAyXHU1NTAzXHU1'@; put 'NTA0XHU1NTA1XHU1NTA4XHU1NTBhXHU1NTBiXHU1NTBjXHU1NTBkXHU1NTBlXHU1NTEyXHU1NTEzXHU1NTE1XHU1NTE2XHU1NTE3XHU1NTE4XHU1NTE5XHU1NTFhXHU1NTFjXHU1NTFkXHU1NTFlXHU1NTFmXHU1NTIxXHU1NTI1XHU1NTI2XHVmZmZkXHU1NTI4XHU1NTI5XHU1NTJiXHU1NTJk'@; put 'XHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNhXHU1NTNiXHU1NTNkXHU1NTQwXHU1NTQyXHU1NTQ1XHU1NTQ3XHU1NTQ4XHU1NTRiXHU1NTRjXHU1NTRkXHU1NTRlXHU1NTRmXHU1NTUxXHU1NTUyXHU1NTUzXHU1NTU0XHU1NTU3XHU1NTU4XHU1NTU5XHU1NTVhXHU1'@; put 'NTViXHU1NTVkXHU1NTVlXHU1NTVmXHU1NTYwXHU1NTYyXHU1NTYzXHU1NTY4XHU1NTY5XHU1NTZiXHU1NTZmXHU1NTcwXHU1NTcxXHU1NTcyXHU1NTczXHU1NTc0XHU1NTc5XHU1NTdhXHU1NTdkXHU1NTdmXHU1NTg1XHU1NTg2XHU1NThjXHU1NThkXHU1NThlXHU1NTkwXHU1NTkyXHU1NTkz'@; put 'XHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlhXHU1NTliXHU1NTllXHU1NWEwXHU1NWExXHU1NWEyXHU1NWEzXHU1NWE0XHU1NWE1XHU1NWE2XHU1NWE4XHU1NWE5XHU1NWFhXHU1NWFiXHU1NWFjXHU1NWFkXHU1NWFlXHU1NWFmXHU1NWIwXHU1NWIyXHU1NWI0XHU1NWI2XHU1NWI4XHU1NWJhXHU1'@; put 'NWJjXHU1NWJmXHU1NWMwXHU1NWMxXHU1NWMyXHU1NWMzXHU1NWM2XHU1NWM3XHU1NWM4XHU1NWNhXHU1NWNiXHU1NWNlXHU1NWNmXHU1NWQwXHU1NWQ1XHU1NWQ3XHU1NWQ4XHU1NWQ5XHU1NWRhXHU1NWRiXHU1NWRlXHU1NWUwXHU1NWUyXHU1NWU3XHU1NWU5XHU1NWVkXHU1NWVlXHU1NWYw'@; put 'XHU1NWYxXHU1NWY0XHU1NWY2XHU1NWY4XHU1NWY5XHU1NWZhXHU1NWZiXHU1NWZjXHU1NWZmXHU1NjAyXHU1NjAzXHU1NjA0XHU1NjA1XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTM0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxMzRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzNF1b'@; put 'bV1dPTM0MzA0K20sRlszNDMwNCttXT14WzEzNF1bbV0pO2Zvcih4WzEzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTYwNlx1NTYwN1x1NTYwYVx1NTYwYlx1NTYwZFx1NTYxMFx1NTYxMVx1NTYxMlx1NTYxM1x1NTYxNFx1NTYx'@; put 'NVx1NTYxNlx1NTYxN1x1NTYxOVx1NTYxYVx1NTYxY1x1NTYxZFx1NTYyMFx1NTYyMVx1NTYyMlx1NTYyNVx1NTYyNlx1NTYyOFx1NTYyOVx1NTYyYVx1NTYyYlx1NTYyZVx1NTYyZlx1NTYzMFx1NTYzM1x1NTYzNVx1NTYzN1x1NTYzOFx1NTYzYVx1NTYzY1x1NTYzZFx1NTYzZVx1NTY0MFx1'@; put 'NTY0MVx1NTY0Mlx1NTY0M1x1NTY0NFx1NTY0NVx1NTY0Nlx1NTY0N1x1NTY0OFx1NTY0OVx1NTY0YVx1NTY0Ylx1NTY0Zlx1NTY1MFx1NTY1MVx1NTY1Mlx1NTY1M1x1NTY1NVx1NTY1Nlx1NTY1YVx1NTY1Ylx1NTY1ZFx1NTY1ZVx1NTY1Zlx1NTY2MFx1NTY2MVx1ZmZmZFx1NTY2M1x1NTY2'@; put 'NVx1NTY2Nlx1NTY2N1x1NTY2ZFx1NTY2ZVx1NTY2Zlx1NTY3MFx1NTY3Mlx1NTY3M1x1NTY3NFx1NTY3NVx1NTY3N1x1NTY3OFx1NTY3OVx1NTY3YVx1NTY3ZFx1NTY3ZVx1NTY3Zlx1NTY4MFx1NTY4MVx1NTY4Mlx1NTY4M1x1NTY4NFx1NTY4N1x1NTY4OFx1NTY4OVx1NTY4YVx1NTY4Ylx1'@; put 'NTY4Y1x1NTY4ZFx1NTY5MFx1NTY5MVx1NTY5Mlx1NTY5NFx1NTY5NVx1NTY5Nlx1NTY5N1x1NTY5OFx1NTY5OVx1NTY5YVx1NTY5Ylx1NTY5Y1x1NTY5ZFx1NTY5ZVx1NTY5Zlx1NTZhMFx1NTZhMVx1NTZhMlx1NTZhNFx1NTZhNVx1NTZhNlx1NTZhN1x1NTZhOFx1NTZhOVx1NTZhYVx1NTZh'@; put 'Ylx1NTZhY1x1NTZhZFx1NTZhZVx1NTZiMFx1NTZiMVx1NTZiMlx1NTZiM1x1NTZiNFx1NTZiNVx1NTZiNlx1NTZiOFx1NTZiOVx1NTZiYVx1NTZiYlx1NTZiZFx1NTZiZVx1NTZiZlx1NTZjMFx1NTZjMVx1NTZjMlx1NTZjM1x1NTZjNFx1NTZjNVx1NTZjNlx1NTZjN1x1NTZjOFx1NTZjOVx1'@; put 'NTZjYlx1NTZjY1x1NTZjZFx1NTZjZVx1NTZjZlx1NTZkMFx1NTZkMVx1NTZkMlx1NTZkM1x1NTZkNVx1NTZkNlx1NTZkOFx1NTZkOVx1NTZkY1x1NTZlM1x1NTZlNVx1NTZlNlx1NTZlN1x1NTZlOFx1NTZlOVx1NTZlYVx1NTZlY1x1NTZlZVx1NTZlZlx1NTZmMlx1NTZmM1x1NTZmNlx1NTZm'@; put 'N1x1NTZmOFx1NTZmYlx1NTZmY1x1NTcwMFx1NTcwMVx1NTcwMlx1NTcwNVx1NTcwN1x1NTcwYlx1NTcwY1x1NTcwZFx1NTcwZVx1NTcwZlx1NTcxMFx1NTcxMVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzNV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTM1XVttXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoYWVbeFsxMzVdW21dXT0zNDU2MCttLEZbMzQ1NjArbV09eFsxMzVdW21dKTtmb3IoeFsxMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU3MTJcdTU3MTNcdTU3MTRcdTU3MTVcdTU3MTZcdTU3MTdcdTU3MThcdTU3MTlcdTU3'@; put 'MWFcdTU3MWJcdTU3MWRcdTU3MWVcdTU3MjBcdTU3MjFcdTU3MjJcdTU3MjRcdTU3MjVcdTU3MjZcdTU3MjdcdTU3MmJcdTU3MzFcdTU3MzJcdTU3MzRcdTU3MzVcdTU3MzZcdTU3MzdcdTU3MzhcdTU3M2NcdTU3M2RcdTU3M2ZcdTU3NDFcdTU3NDNcdTU3NDRcdTU3NDVcdTU3NDZcdTU3NDhc'@; put 'dTU3NDlcdTU3NGJcdTU3NTJcdTU3NTNcdTU3NTRcdTU3NTVcdTU3NTZcdTU3NThcdTU3NTlcdTU3NjJcdTU3NjNcdTU3NjVcdTU3NjdcdTU3NmNcdTU3NmVcdTU3NzBcdTU3NzFcdTU3NzJcdTU3NzRcdTU3NzVcdTU3NzhcdTU3NzlcdTU3N2FcdTU3N2RcdTU3N2VcdTU3N2ZcdTU3ODBcdWZm'@; put 'ZmRcdTU3ODFcdTU3ODdcdTU3ODhcdTU3ODlcdTU3OGFcdTU3OGRcdTU3OGVcdTU3OGZcdTU3OTBcdTU3OTFcdTU3OTRcdTU3OTVcdTU3OTZcdTU3OTdcdTU3OThcdTU3OTlcdTU3OWFcdTU3OWNcdTU3OWRcdTU3OWVcdTU3OWZcdTU3YTVcdTU3YThcdTU3YWFcdTU3YWNcdTU3YWZcdTU3YjBc'@; put 'dTU3YjFcdTU3YjNcdTU3YjVcdTU3YjZcdTU3YjdcdTU3YjlcdTU3YmFcdTU3YmJcdTU3YmNcdTU3YmRcdTU3YmVcdTU3YmZcdTU3YzBcdTU3YzFcdTU3YzRcdTU3YzVcdTU3YzZcdTU3YzdcdTU3YzhcdTU3YzlcdTU3Y2FcdTU3Y2NcdTU3Y2RcdTU3ZDBcdTU3ZDFcdTU3ZDNcdTU3ZDZcdTU3'@; put 'ZDdcdTU3ZGJcdTU3ZGNcdTU3ZGVcdTU3ZTFcdTU3ZTJcdTU3ZTNcdTU3ZTVcdTU3ZTZcdTU3ZTdcdTU3ZThcdTU3ZTlcdTU3ZWFcdTU3ZWJcdTU3ZWNcdTU3ZWVcdTU3ZjBcdTU3ZjFcdTU3ZjJcdTU3ZjNcdTU3ZjVcdTU3ZjZcdTU3ZjdcdTU3ZmJcdTU3ZmNcdTU3ZmVcdTU3ZmZcdTU4MDFc'@; put 'dTU4MDNcdTU4MDRcdTU4MDVcdTU4MDhcdTU4MDlcdTU4MGFcdTU4MGNcdTU4MGVcdTU4MGZcdTU4MTBcdTU4MTJcdTU4MTNcdTU4MTRcdTU4MTZcdTU4MTdcdTU4MThcdTU4MWFcdTU4MWJcdTU4MWNcdTU4MWRcdTU4MWZcdTU4MjJcdTU4MjNcdTU4MjVcdTU4MjZcdTU4MjdcdTU4MjhcdTU4'@; put 'MjlcdTU4MmJcdTU4MmNcdTU4MmRcdTU4MmVcdTU4MmZcdTU4MzFcdTU4MzJcdTU4MzNcdTU4MzRcdTU4MzZcdTU4MzdcdTU4MzhcdTU4MzlcdTU4M2FcdTU4M2JcdTU4M2NcdTU4M2RcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxMzZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzNl1bbV0u'@; put 'Y2hhckNvZGVBdCgwKSYmKGFlW3hbMTM2XVttXV09MzQ4MTYrbSxGWzM0ODE2K21dPXhbMTM2XVttXSk7Zm9yKHhbMTM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ODNlXHU1ODNmXHU1ODQwXHU1ODQxXHU1ODQyXHU1ODQzXHU1'@; put 'ODQ1XHU1ODQ2XHU1ODQ3XHU1ODQ4XHU1ODQ5XHU1ODRhXHU1ODRiXHU1ODRlXHU1ODRmXHU1ODUwXHU1ODUyXHU1ODUzXHU1ODU1XHU1ODU2XHU1ODU3XHU1ODU5XHU1ODVhXHU1ODViXHU1ODVjXHU1ODVkXHU1ODVmXHU1ODYwXHU1ODYxXHU1ODYyXHU1ODYzXHU1ODY0XHU1ODY2XHU1ODY3'@; put 'XHU1ODY4XHU1ODY5XHU1ODZhXHU1ODZkXHU1ODZlXHU1ODZmXHU1ODcwXHU1ODcxXHU1ODcyXHU1ODczXHU1ODc0XHU1ODc1XHU1ODc2XHU1ODc3XHU1ODc4XHU1ODc5XHU1ODdhXHU1ODdiXHU1ODdjXHU1ODdkXHU1ODdmXHU1ODgyXHU1ODg0XHU1ODg2XHU1ODg3XHU1ODg4XHU1ODhhXHU1'@; put 'ODhiXHU1ODhjXHVmZmZkXHU1ODhkXHU1ODhlXHU1ODhmXHU1ODkwXHU1ODkxXHU1ODk0XHU1ODk1XHU1ODk2XHU1ODk3XHU1ODk4XHU1ODliXHU1ODljXHU1ODlkXHU1OGEwXHU1OGExXHU1OGEyXHU1OGEzXHU1OGE0XHU1OGE1XHU1OGE2XHU1OGE3XHU1OGFhXHU1OGFiXHU1OGFjXHU1OGFk'@; put 'XHU1OGFlXHU1OGFmXHU1OGIwXHU1OGIxXHU1OGIyXHU1OGIzXHU1OGI0XHU1OGI1XHU1OGI2XHU1OGI3XHU1OGI4XHU1OGI5XHU1OGJhXHU1OGJiXHU1OGJkXHU1OGJlXHU1OGJmXHU1OGMwXHU1OGMyXHU1OGMzXHU1OGM0XHU1OGM2XHU1OGM3XHU1OGM4XHU1OGM5XHU1OGNhXHU1OGNiXHU1'@; put 'OGNjXHU1OGNkXHU1OGNlXHU1OGNmXHU1OGQwXHU1OGQyXHU1OGQzXHU1OGQ0XHU1OGQ2XHU1OGQ3XHU1OGQ4XHU1OGQ5XHU1OGRhXHU1OGRiXHU1OGRjXHU1OGRkXHU1OGRlXHU1OGRmXHU1OGUwXHU1OGUxXHU1OGUyXHU1OGUzXHU1OGU1XHU1OGU2XHU1OGU3XHU1OGU4XHU1OGU5XHU1OGVh'@; put 'XHU1OGVkXHU1OGVmXHU1OGYxXHU1OGYyXHU1OGY0XHU1OGY1XHU1OGY3XHU1OGY4XHU1OGZhXHU1OGZiXHU1OGZjXHU1OGZkXHU1OGZlXHU1OGZmXHU1OTAwXHU1OTAxXHU1OTAzXHU1OTA1XHU1OTA2XHU1OTA4XHU1OTA5XHU1OTBhXHU1OTBiXHU1OTBjXHU1OTBlXHU1OTEwXHU1OTExXHU1'@; put 'OTEyXHU1OTEzXHU1OTE3XHU1OTE4XHU1OTFiXHU1OTFkXHU1OTFlXHU1OTIwXHU1OTIxXHU1OTIyXHU1OTIzXHU1OTI2XHU1OTI4XHU1OTJjXHU1OTMwXHU1OTMyXHU1OTMzXHU1OTM1XHU1OTM2XHU1OTNiXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTM3XS5sZW5ndGg7KyttKTY1NTMz'@; put 'IT09eFsxMzddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzN11bbV1dPTM1MDcyK20sRlszNTA3MittXT14WzEzN11bbV0pO2Zvcih4WzEzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTkzZFx1NTkzZVx1NTkzZlx1NTk0MFx1'@; put 'NTk0M1x1NTk0NVx1NTk0Nlx1NTk0YVx1NTk0Y1x1NTk0ZFx1NTk1MFx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1Ylx1NTk1Y1x1NTk1ZFx1NTk1ZVx1NTk1Zlx1NTk2MVx1NTk2M1x1NTk2NFx1NTk2Nlx1NTk2N1x1NTk2OFx1NTk2OVx1NTk2YVx1NTk2Ylx1NTk2Y1x1NTk2ZFx1NTk2ZVx1NTk2'@; put 'Zlx1NTk3MFx1NTk3MVx1NTk3Mlx1NTk3NVx1NTk3N1x1NTk3YVx1NTk3Ylx1NTk3Y1x1NTk3ZVx1NTk3Zlx1NTk4MFx1NTk4NVx1NTk4OVx1NTk4Ylx1NTk4Y1x1NTk4ZVx1NTk4Zlx1NTk5MFx1NTk5MVx1NTk5NFx1NTk5NVx1NTk5OFx1NTk5YVx1NTk5Ylx1NTk5Y1x1NTk5ZFx1NTk5Zlx1'@; put 'NTlhMFx1NTlhMVx1NTlhMlx1NTlhNlx1ZmZmZFx1NTlhN1x1NTlhY1x1NTlhZFx1NTliMFx1NTliMVx1NTliM1x1NTliNFx1NTliNVx1NTliNlx1NTliN1x1NTliOFx1NTliYVx1NTliY1x1NTliZFx1NTliZlx1NTljMFx1NTljMVx1NTljMlx1NTljM1x1NTljNFx1NTljNVx1NTljN1x1NTlj'@; put 'OFx1NTljOVx1NTljY1x1NTljZFx1NTljZVx1NTljZlx1NTlkNVx1NTlkNlx1NTlkOVx1NTlkYlx1NTlkZVx1NTlkZlx1NTllMFx1NTllMVx1NTllMlx1NTllNFx1NTllNlx1NTllN1x1NTllOVx1NTllYVx1NTllYlx1NTllZFx1NTllZVx1NTllZlx1NTlmMFx1NTlmMVx1NTlmMlx1NTlmM1x1'@; put 'NTlmNFx1NTlmNVx1NTlmNlx1NTlmN1x1NTlmOFx1NTlmYVx1NTlmY1x1NTlmZFx1NTlmZVx1NWEwMFx1NWEwMlx1NWEwYVx1NWEwYlx1NWEwZFx1NWEwZVx1NWEwZlx1NWExMFx1NWExMlx1NWExNFx1NWExNVx1NWExNlx1NWExN1x1NWExOVx1NWExYVx1NWExYlx1NWExZFx1NWExZVx1NWEy'@; put 'MVx1NWEyMlx1NWEyNFx1NWEyNlx1NWEyN1x1NWEyOFx1NWEyYVx1NWEyYlx1NWEyY1x1NWEyZFx1NWEyZVx1NWEyZlx1NWEzMFx1NWEzM1x1NWEzNVx1NWEzN1x1NWEzOFx1NWEzOVx1NWEzYVx1NWEzYlx1NWEzZFx1NWEzZVx1NWEzZlx1NWE0MVx1NWE0Mlx1NWE0M1x1NWE0NFx1NWE0NVx1'@; put 'NWE0N1x1NWE0OFx1NWE0Ylx1NWE0Y1x1NWE0ZFx1NWE0ZVx1NWE0Zlx1NWE1MFx1NWE1MVx1NWE1Mlx1NWE1M1x1NWE1NFx1NWE1Nlx1NWE1N1x1NWE1OFx1NWE1OVx1NWE1Ylx1NWE1Y1x1NWE1ZFx1NWE1ZVx1NWE1Zlx1NWE2MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzOF0ubGVu'@; put 'Z3RoOysrbSk2NTUzMyE9PXhbMTM4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMzhdW21dXT0zNTMyOCttLEZbMzUzMjgrbV09eFsxMzhdW21dKTtmb3IoeFsxMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhNjFcdTVhNjNc'@; put 'dTVhNjRcdTVhNjVcdTVhNjZcdTVhNjhcdTVhNjlcdTVhNmJcdTVhNmNcdTVhNmRcdTVhNmVcdTVhNmZcdTVhNzBcdTVhNzFcdTVhNzJcdTVhNzNcdTVhNzhcdTVhNzlcdTVhN2JcdTVhN2NcdTVhN2RcdTVhN2VcdTVhODBcdTVhODFcdTVhODJcdTVhODNcdTVhODRcdTVhODVcdTVhODZcdTVh'@; put 'ODdcdTVhODhcdTVhODlcdTVhOGFcdTVhOGJcdTVhOGNcdTVhOGRcdTVhOGVcdTVhOGZcdTVhOTBcdTVhOTFcdTVhOTNcdTVhOTRcdTVhOTVcdTVhOTZcdTVhOTdcdTVhOThcdTVhOTlcdTVhOWNcdTVhOWRcdTVhOWVcdTVhOWZcdTVhYTBcdTVhYTFcdTVhYTJcdTVhYTNcdTVhYTRcdTVhYTVc'@; put 'dTVhYTZcdTVhYTdcdTVhYThcdTVhYTlcdTVhYWJcdTVhYWNcdWZmZmRcdTVhYWRcdTVhYWVcdTVhYWZcdTVhYjBcdTVhYjFcdTVhYjRcdTVhYjZcdTVhYjdcdTVhYjlcdTVhYmFcdTVhYmJcdTVhYmNcdTVhYmRcdTVhYmZcdTVhYzBcdTVhYzNcdTVhYzRcdTVhYzVcdTVhYzZcdTVhYzdcdTVh'@; put 'YzhcdTVhY2FcdTVhY2JcdTVhY2RcdTVhY2VcdTVhY2ZcdTVhZDBcdTVhZDFcdTVhZDNcdTVhZDVcdTVhZDdcdTVhZDlcdTVhZGFcdTVhZGJcdTVhZGRcdTVhZGVcdTVhZGZcdTVhZTJcdTVhZTRcdTVhZTVcdTVhZTdcdTVhZThcdTVhZWFcdTVhZWNcdTVhZWRcdTVhZWVcdTVhZWZcdTVhZjBc'@; put 'dTVhZjJcdTVhZjNcdTVhZjRcdTVhZjVcdTVhZjZcdTVhZjdcdTVhZjhcdTVhZjlcdTVhZmFcdTVhZmJcdTVhZmNcdTVhZmRcdTVhZmVcdTVhZmZcdTViMDBcdTViMDFcdTViMDJcdTViMDNcdTViMDRcdTViMDVcdTViMDZcdTViMDdcdTViMDhcdTViMGFcdTViMGJcdTViMGNcdTViMGRcdTVi'@; put 'MGVcdTViMGZcdTViMTBcdTViMTFcdTViMTJcdTViMTNcdTViMTRcdTViMTVcdTViMThcdTViMTlcdTViMWFcdTViMWJcdTViMWNcdTViMWRcdTViMWVcdTViMWZcdTViMjBcdTViMjFcdTViMjJcdTViMjNcdTViMjRcdTViMjVcdTViMjZcdTViMjdcdTViMjhcdTViMjlcdTViMmFcdTViMmJc'@; put 'dTViMmNcdTViMmRcdTViMmVcdTViMmZcdTViMzBcdTViMzFcdTViMzNcdTViMzVcdTViMzZcdTViMzhcdTViMzlcdTViM2FcdTViM2JcdTViM2NcdTViM2RcdTViM2VcdTViM2ZcdTViNDFcdTViNDJcdTViNDNcdTViNDRcdTViNDVcdTViNDZcdTViNDdcdWZmZmQiLnNwbGl0KCIiKSxtPTA7'@; put 'bSE9eFsxMzldLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTM5XVttXV09MzU1ODQrbSxGWzM1NTg0K21dPXhbMTM5XVttXSk7Zm9yKHhbMTQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU1YjQ4XHU1YjQ5XHU1YjRhXHU1YjRiXHU1YjRjXHU1YjRkXHU1YjRlXHU1YjRmXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjYwXHU1YjYxXHU1YjY3XHU1YjY4XHU1YjZiXHU1YjZkXHU1YjZlXHU1YjZmXHU1YjcyXHU1Yjc0XHU1Yjc2XHU1Yjc3XHU1Yjc4XHU1Yjc5XHU1YjdiXHU1YjdjXHU1'@; put 'YjdlXHU1YjdmXHU1YjgyXHU1Yjg2XHU1YjhhXHU1YjhkXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkyXHU1Yjk0XHU1Yjk2XHU1YjlmXHU1YmE3XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFlXHU1YmFmXHU1YmIxXHU1YmIyXHU1YmI3XHU1YmJhXHU1YmJiXHU1YmJjXHU1YmMwXHU1YmMx'@; put 'XHU1YmMzXHU1YmM4XHU1YmM5XHU1YmNhXHU1YmNiXHU1YmNkXHU1YmNlXHU1YmNmXHVmZmZkXHU1YmQxXHU1YmQ0XHU1YmQ1XHU1YmQ2XHU1YmQ3XHU1YmQ4XHU1YmQ5XHU1YmRhXHU1YmRiXHU1YmRjXHU1YmUwXHU1YmUyXHU1YmUzXHU1YmU2XHU1YmU3XHU1YmU5XHU1YmVhXHU1YmViXHU1'@; put 'YmVjXHU1YmVkXHU1YmVmXHU1YmYxXHU1YmYyXHU1YmYzXHU1YmY0XHU1YmY1XHU1YmY2XHU1YmY3XHU1YmZkXHU1YmZlXHU1YzAwXHU1YzAyXHU1YzAzXHU1YzA1XHU1YzA3XHU1YzA4XHU1YzBiXHU1YzBjXHU1YzBkXHU1YzBlXHU1YzEwXHU1YzEyXHU1YzEzXHU1YzE3XHU1YzE5XHU1YzFi'@; put 'XHU1YzFlXHU1YzFmXHU1YzIwXHU1YzIxXHU1YzIzXHU1YzI2XHU1YzI4XHU1YzI5XHU1YzJhXHU1YzJiXHU1YzJkXHU1YzJlXHU1YzJmXHU1YzMwXHU1YzMyXHU1YzMzXHU1YzM1XHU1YzM2XHU1YzM3XHU1YzQzXHU1YzQ0XHU1YzQ2XHU1YzQ3XHU1YzRjXHU1YzRkXHU1YzUyXHU1YzUzXHU1'@; put 'YzU0XHU1YzU2XHU1YzU3XHU1YzU4XHU1YzVhXHU1YzViXHU1YzVjXHU1YzVkXHU1YzVmXHU1YzYyXHU1YzY0XHU1YzY3XHU1YzY4XHU1YzY5XHU1YzZhXHU1YzZiXHU1YzZjXHU1YzZkXHU1YzcwXHU1YzcyXHU1YzczXHU1Yzc0XHU1Yzc1XHU1Yzc2XHU1Yzc3XHU1Yzc4XHU1YzdiXHU1Yzdj'@; put 'XHU1YzdkXHU1YzdlXHU1YzgwXHU1YzgzXHU1Yzg0XHU1Yzg1XHU1Yzg2XHU1Yzg3XHU1Yzg5XHU1YzhhXHU1YzhiXHU1YzhlXHU1YzhmXHU1YzkyXHU1YzkzXHU1Yzk1XHU1YzlkXHU1YzllXHU1YzlmXHU1Y2EwXHU1Y2ExXHU1Y2E0XHU1Y2E1XHU1Y2E2XHU1Y2E3XHU1Y2E4XHVmZmZkIi5z'@; put 'cGxpdCgiIiksbT0wO20hPXhbMTQwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0MF1bbV1dPTM1ODQwK20sRlszNTg0MCttXT14WzE0MF1bbV0pO2Zvcih4WzE0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1NWNhYVx1NWNhZVx1NWNhZlx1NWNiMFx1NWNiMlx1NWNiNFx1NWNiNlx1NWNiOVx1NWNiYVx1NWNiYlx1NWNiY1x1NWNiZVx1NWNjMFx1NWNjMlx1NWNjM1x1NWNjNVx1NWNjNlx1NWNjN1x1NWNjOFx1NWNjOVx1NWNjYVx1NWNjY1x1NWNjZFx1NWNjZVx1NWNjZlx1'@; put 'NWNkMFx1NWNkMVx1NWNkM1x1NWNkNFx1NWNkNVx1NWNkNlx1NWNkN1x1NWNkOFx1NWNkYVx1NWNkYlx1NWNkY1x1NWNkZFx1NWNkZVx1NWNkZlx1NWNlMFx1NWNlMlx1NWNlM1x1NWNlN1x1NWNlOVx1NWNlYlx1NWNlY1x1NWNlZVx1NWNlZlx1NWNmMVx1NWNmMlx1NWNmM1x1NWNmNFx1NWNm'@; put 'NVx1NWNmNlx1NWNmN1x1NWNmOFx1NWNmOVx1NWNmYVx1NWNmY1x1NWNmZFx1NWNmZVx1NWNmZlx1NWQwMFx1ZmZmZFx1NWQwMVx1NWQwNFx1NWQwNVx1NWQwOFx1NWQwOVx1NWQwYVx1NWQwYlx1NWQwY1x1NWQwZFx1NWQwZlx1NWQxMFx1NWQxMVx1NWQxMlx1NWQxM1x1NWQxNVx1NWQxN1x1'@; put 'NWQxOFx1NWQxOVx1NWQxYVx1NWQxY1x1NWQxZFx1NWQxZlx1NWQyMFx1NWQyMVx1NWQyMlx1NWQyM1x1NWQyNVx1NWQyOFx1NWQyYVx1NWQyYlx1NWQyY1x1NWQyZlx1NWQzMFx1NWQzMVx1NWQzMlx1NWQzM1x1NWQzNVx1NWQzNlx1NWQzN1x1NWQzOFx1NWQzOVx1NWQzYVx1NWQzYlx1NWQz'@; put 'Y1x1NWQzZlx1NWQ0MFx1NWQ0MVx1NWQ0Mlx1NWQ0M1x1NWQ0NFx1NWQ0NVx1NWQ0Nlx1NWQ0OFx1NWQ0OVx1NWQ0ZFx1NWQ0ZVx1NWQ0Zlx1NWQ1MFx1NWQ1MVx1NWQ1Mlx1NWQ1M1x1NWQ1NFx1NWQ1NVx1NWQ1Nlx1NWQ1N1x1NWQ1OVx1NWQ1YVx1NWQ1Y1x1NWQ1ZVx1NWQ1Zlx1NWQ2MFx1'@; put 'NWQ2MVx1NWQ2Mlx1NWQ2M1x1NWQ2NFx1NWQ2NVx1NWQ2Nlx1NWQ2N1x1NWQ2OFx1NWQ2YVx1NWQ2ZFx1NWQ2ZVx1NWQ3MFx1NWQ3MVx1NWQ3Mlx1NWQ3M1x1NWQ3NVx1NWQ3Nlx1NWQ3N1x1NWQ3OFx1NWQ3OVx1NWQ3YVx1NWQ3Ylx1NWQ3Y1x1NWQ3ZFx1NWQ3ZVx1NWQ3Zlx1NWQ4MFx1NWQ4'@; put 'MVx1NWQ4M1x1NWQ4NFx1NWQ4NVx1NWQ4Nlx1NWQ4N1x1NWQ4OFx1NWQ4OVx1NWQ4YVx1NWQ4Ylx1NWQ4Y1x1NWQ4ZFx1NWQ4ZVx1NWQ4Zlx1NWQ5MFx1NWQ5MVx1NWQ5Mlx1NWQ5M1x1NWQ5NFx1NWQ5NVx1NWQ5Nlx1NWQ5N1x1NWQ5OFx1NWQ5YVx1NWQ5Ylx1NWQ5Y1x1NWQ5ZVx1NWQ5Zlx1'@; put 'NWRhMFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDFdW21dXT0zNjA5NittLEZbMzYwOTYrbV09eFsxNDFdW21dKTtmb3IoeFsxNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVkYTFcdTVkYTJcdTVkYTNcdTVkYTRcdTVkYTVcdTVkYTZcdTVkYTdcdTVkYThcdTVkYTlcdTVkYWFcdTVkYWJcdTVkYWNcdTVkYWRcdTVkYWVcdTVkYWZcdTVkYjBcdTVkYjFcdTVkYjJcdTVkYjNcdTVkYjRcdTVkYjVcdTVkYjZcdTVkYjhc'@; put 'dTVkYjlcdTVkYmFcdTVkYmJcdTVkYmNcdTVkYmRcdTVkYmVcdTVkYmZcdTVkYzBcdTVkYzFcdTVkYzJcdTVkYzNcdTVkYzRcdTVkYzZcdTVkYzdcdTVkYzhcdTVkYzlcdTVkY2FcdTVkY2JcdTVkY2NcdTVkY2VcdTVkY2ZcdTVkZDBcdTVkZDFcdTVkZDJcdTVkZDNcdTVkZDRcdTVkZDVcdTVk'@; put 'ZDZcdTVkZDdcdTVkZDhcdTVkZDlcdTVkZGFcdTVkZGNcdTVkZGZcdTVkZTBcdTVkZTNcdTVkZTRcdTVkZWFcdTVkZWNcdTVkZWRcdWZmZmRcdTVkZjBcdTVkZjVcdTVkZjZcdTVkZjhcdTVkZjlcdTVkZmFcdTVkZmJcdTVkZmNcdTVkZmZcdTVlMDBcdTVlMDRcdTVlMDdcdTVlMDlcdTVlMGFc'@; put 'dTVlMGJcdTVlMGRcdTVlMGVcdTVlMTJcdTVlMTNcdTVlMTdcdTVlMWVcdTVlMWZcdTVlMjBcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjRcdTVlMjVcdTVlMjhcdTVlMjlcdTVlMmFcdTVlMmJcdTVlMmNcdTVlMmZcdTVlMzBcdTVlMzJcdTVlMzNcdTVlMzRcdTVlMzVcdTVlMzZcdTVlMzlcdTVl'@; put 'M2FcdTVlM2VcdTVlM2ZcdTVlNDBcdTVlNDFcdTVlNDNcdTVlNDZcdTVlNDdcdTVlNDhcdTVlNDlcdTVlNGFcdTVlNGJcdTVlNGRcdTVlNGVcdTVlNGZcdTVlNTBcdTVlNTFcdTVlNTJcdTVlNTNcdTVlNTZcdTVlNTdcdTVlNThcdTVlNTlcdTVlNWFcdTVlNWNcdTVlNWRcdTVlNWZcdTVlNjBc'@; put 'dTVlNjNcdTVlNjRcdTVlNjVcdTVlNjZcdTVlNjdcdTVlNjhcdTVlNjlcdTVlNmFcdTVlNmJcdTVlNmNcdTVlNmRcdTVlNmVcdTVlNmZcdTVlNzBcdTVlNzFcdTVlNzVcdTVlNzdcdTVlNzlcdTVlN2VcdTVlODFcdTVlODJcdTVlODNcdTVlODVcdTVlODhcdTVlODlcdTVlOGNcdTVlOGRcdTVl'@; put 'OGVcdTVlOTJcdTVlOThcdTVlOWJcdTVlOWRcdTVlYTFcdTVlYTJcdTVlYTNcdTVlYTRcdTVlYThcdTVlYTlcdTVlYWFcdTVlYWJcdTVlYWNcdTVlYWVcdTVlYWZcdTVlYjBcdTVlYjFcdTVlYjJcdTVlYjRcdTVlYmFcdTVlYmJcdTVlYmNcdTVlYmRcdTVlYmZcdTVlYzBcdTVlYzFcdTVlYzJc'@; put 'dTVlYzNcdTVlYzRcdTVlYzVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTQyXVttXV09MzYzNTIrbSxGWzM2MzUyK21dPXhbMTQyXVttXSk7Zm9yKHhbMTQzXT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZWM2XHU1ZWM3XHU1ZWM4XHU1ZWNiXHU1ZWNjXHU1ZWNkXHU1ZWNlXHU1ZWNmXHU1ZWQwXHU1ZWQ0XHU1ZWQ1XHU1ZWQ3XHU1ZWQ4XHU1ZWQ5XHU1ZWRhXHU1ZWRjXHU1ZWRkXHU1ZWRlXHU1ZWRmXHU1ZWUwXHU1ZWUx'@; put 'XHU1ZWUyXHU1ZWUzXHU1ZWU0XHU1ZWU1XHU1ZWU2XHU1ZWU3XHU1ZWU5XHU1ZWViXHU1ZWVjXHU1ZWVkXHU1ZWVlXHU1ZWVmXHU1ZWYwXHU1ZWYxXHU1ZWYyXHU1ZWYzXHU1ZWY1XHU1ZWY4XHU1ZWY5XHU1ZWZiXHU1ZWZjXHU1ZWZkXHU1ZjA1XHU1ZjA2XHU1ZjA3XHU1ZjA5XHU1ZjBjXHU1'@; put 'ZjBkXHU1ZjBlXHU1ZjEwXHU1ZjEyXHU1ZjE0XHU1ZjE2XHU1ZjE5XHU1ZjFhXHU1ZjFjXHU1ZjFkXHU1ZjFlXHU1ZjIxXHU1ZjIyXHU1ZjIzXHU1ZjI0XHVmZmZkXHU1ZjI4XHU1ZjJiXHU1ZjJjXHU1ZjJlXHU1ZjMwXHU1ZjMyXHU1ZjMzXHU1ZjM0XHU1ZjM1XHU1ZjM2XHU1ZjM3XHU1ZjM4'@; put 'XHU1ZjNiXHU1ZjNkXHU1ZjNlXHU1ZjNmXHU1ZjQxXHU1ZjQyXHU1ZjQzXHU1ZjQ0XHU1ZjQ1XHU1ZjQ2XHU1ZjQ3XHU1ZjQ4XHU1ZjQ5XHU1ZjRhXHU1ZjRiXHU1ZjRjXHU1ZjRkXHU1ZjRlXHU1ZjRmXHU1ZjUxXHU1ZjU0XHU1ZjU5XHU1ZjVhXHU1ZjViXHU1ZjVjXHU1ZjVlXHU1ZjVmXHU1'@; put 'ZjYwXHU1ZjYzXHU1ZjY1XHU1ZjY3XHU1ZjY4XHU1ZjZiXHU1ZjZlXHU1ZjZmXHU1ZjcyXHU1Zjc0XHU1Zjc1XHU1Zjc2XHU1Zjc4XHU1ZjdhXHU1ZjdkXHU1ZjdlXHU1ZjdmXHU1ZjgzXHU1Zjg2XHU1ZjhkXHU1ZjhlXHU1ZjhmXHU1ZjkxXHU1ZjkzXHU1Zjk0XHU1Zjk2XHU1ZjlhXHU1Zjli'@; put 'XHU1ZjlkXHU1ZjllXHU1ZjlmXHU1ZmEwXHU1ZmEyXHU1ZmEzXHU1ZmE0XHU1ZmE1XHU1ZmE2XHU1ZmE3XHU1ZmE5XHU1ZmFiXHU1ZmFjXHU1ZmFmXHU1ZmIwXHU1ZmIxXHU1ZmIyXHU1ZmIzXHU1ZmI0XHU1ZmI2XHU1ZmI4XHU1ZmI5XHU1ZmJhXHU1ZmJiXHU1ZmJlXHU1ZmJmXHU1ZmMwXHU1'@; put 'ZmMxXHU1ZmMyXHU1ZmM3XHU1ZmM4XHU1ZmNhXHU1ZmNiXHU1ZmNlXHU1ZmQzXHU1ZmQ0XHU1ZmQ1XHU1ZmRhXHU1ZmRiXHU1ZmRjXHU1ZmRlXHU1ZmRmXHU1ZmUyXHU1ZmUzXHU1ZmU1XHU1ZmU2XHU1ZmU4XHU1ZmU5XHU1ZmVjXHU1ZmVmXHU1ZmYwXHU1ZmYyXHU1ZmYzXHU1ZmY0XHU1ZmY2'@; put 'XHU1ZmY3XHU1ZmY5XHU1ZmZhXHU1ZmZjXHU2MDA3XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTQzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0M11bbV1dPTM2NjA4K20sRlszNjYwOCttXT14WzE0M11bbV0pO2Zvcih4WzE0NF09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAwOFx1NjAwOVx1NjAwYlx1NjAwY1x1NjAxMFx1NjAxMVx1NjAxM1x1NjAxN1x1NjAxOFx1NjAxYVx1NjAxZVx1NjAxZlx1NjAyMlx1NjAyM1x1NjAyNFx1NjAyY1x1NjAyZFx1NjAyZVx1NjAz'@; put 'MFx1NjAzMVx1NjAzMlx1NjAzM1x1NjAzNFx1NjAzNlx1NjAzN1x1NjAzOFx1NjAzOVx1NjAzYVx1NjAzZFx1NjAzZVx1NjA0MFx1NjA0NFx1NjA0NVx1NjA0Nlx1NjA0N1x1NjA0OFx1NjA0OVx1NjA0YVx1NjA0Y1x1NjA0ZVx1NjA0Zlx1NjA1MVx1NjA1M1x1NjA1NFx1NjA1Nlx1NjA1N1x1'@; put 'NjA1OFx1NjA1Ylx1NjA1Y1x1NjA1ZVx1NjA1Zlx1NjA2MFx1NjA2MVx1NjA2NVx1NjA2Nlx1NjA2ZVx1NjA3MVx1NjA3Mlx1NjA3NFx1NjA3NVx1NjA3N1x1NjA3ZVx1NjA4MFx1ZmZmZFx1NjA4MVx1NjA4Mlx1NjA4NVx1NjA4Nlx1NjA4N1x1NjA4OFx1NjA4YVx1NjA4Ylx1NjA4ZVx1NjA4'@; put 'Zlx1NjA5MFx1NjA5MVx1NjA5M1x1NjA5NVx1NjA5N1x1NjA5OFx1NjA5OVx1NjA5Y1x1NjA5ZVx1NjBhMVx1NjBhMlx1NjBhNFx1NjBhNVx1NjBhN1x1NjBhOVx1NjBhYVx1NjBhZVx1NjBiMFx1NjBiM1x1NjBiNVx1NjBiNlx1NjBiN1x1NjBiOVx1NjBiYVx1NjBiZFx1NjBiZVx1NjBiZlx1'@; put 'NjBjMFx1NjBjMVx1NjBjMlx1NjBjM1x1NjBjNFx1NjBjN1x1NjBjOFx1NjBjOVx1NjBjY1x1NjBjZFx1NjBjZVx1NjBjZlx1NjBkMFx1NjBkMlx1NjBkM1x1NjBkNFx1NjBkNlx1NjBkN1x1NjBkOVx1NjBkYlx1NjBkZVx1NjBlMVx1NjBlMlx1NjBlM1x1NjBlNFx1NjBlNVx1NjBlYVx1NjBm'@; put 'MVx1NjBmMlx1NjBmNVx1NjBmN1x1NjBmOFx1NjBmYlx1NjBmY1x1NjBmZFx1NjBmZVx1NjBmZlx1NjEwMlx1NjEwM1x1NjEwNFx1NjEwNVx1NjEwN1x1NjEwYVx1NjEwYlx1NjEwY1x1NjExMFx1NjExMVx1NjExMlx1NjExM1x1NjExNFx1NjExNlx1NjExN1x1NjExOFx1NjExOVx1NjExYlx1'@; put 'NjExY1x1NjExZFx1NjExZVx1NjEyMVx1NjEyMlx1NjEyNVx1NjEyOFx1NjEyOVx1NjEyYVx1NjEyY1x1NjEyZFx1NjEyZVx1NjEyZlx1NjEzMFx1NjEzMVx1NjEzMlx1NjEzM1x1NjEzNFx1NjEzNVx1NjEzNlx1NjEzN1x1NjEzOFx1NjEzOVx1NjEzYVx1NjEzYlx1NjEzY1x1NjEzZFx1NjEz'@; put 'ZVx1NjE0MFx1NjE0MVx1NjE0Mlx1NjE0M1x1NjE0NFx1NjE0NVx1NjE0Nlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0NF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQ0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDRdW21dXT0zNjg2NCttLEZbMzY4NjQrbV09eFsxNDRdW21dKTtm'@; put 'b3IoeFsxNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxNDdcdTYxNDlcdTYxNGJcdTYxNGRcdTYxNGZcdTYxNTBcdTYxNTJcdTYxNTNcdTYxNTRcdTYxNTZcdTYxNTdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNWJcdTYxNWNcdTYx'@; put 'NWVcdTYxNWZcdTYxNjBcdTYxNjFcdTYxNjNcdTYxNjRcdTYxNjVcdTYxNjZcdTYxNjlcdTYxNmFcdTYxNmJcdTYxNmNcdTYxNmRcdTYxNmVcdTYxNmZcdTYxNzFcdTYxNzJcdTYxNzNcdTYxNzRcdTYxNzZcdTYxNzhcdTYxNzlcdTYxN2FcdTYxN2JcdTYxN2NcdTYxN2RcdTYxN2VcdTYxN2Zc'@; put 'dTYxODBcdTYxODFcdTYxODJcdTYxODNcdTYxODRcdTYxODVcdTYxODZcdTYxODdcdTYxODhcdTYxODlcdTYxOGFcdTYxOGNcdTYxOGRcdTYxOGZcdTYxOTBcdTYxOTFcdTYxOTJcdTYxOTNcdTYxOTVcdWZmZmRcdTYxOTZcdTYxOTdcdTYxOThcdTYxOTlcdTYxOWFcdTYxOWJcdTYxOWNcdTYx'@; put 'OWVcdTYxOWZcdTYxYTBcdTYxYTFcdTYxYTJcdTYxYTNcdTYxYTRcdTYxYTVcdTYxYTZcdTYxYWFcdTYxYWJcdTYxYWRcdTYxYWVcdTYxYWZcdTYxYjBcdTYxYjFcdTYxYjJcdTYxYjNcdTYxYjRcdTYxYjVcdTYxYjZcdTYxYjhcdTYxYjlcdTYxYmFcdTYxYmJcdTYxYmNcdTYxYmRcdTYxYmZc'@; put 'dTYxYzBcdTYxYzFcdTYxYzNcdTYxYzRcdTYxYzVcdTYxYzZcdTYxYzdcdTYxYzlcdTYxY2NcdTYxY2RcdTYxY2VcdTYxY2ZcdTYxZDBcdTYxZDNcdTYxZDVcdTYxZDZcdTYxZDdcdTYxZDhcdTYxZDlcdTYxZGFcdTYxZGJcdTYxZGNcdTYxZGRcdTYxZGVcdTYxZGZcdTYxZTBcdTYxZTFcdTYx'@; put 'ZTJcdTYxZTNcdTYxZTRcdTYxZTVcdTYxZTdcdTYxZThcdTYxZTlcdTYxZWFcdTYxZWJcdTYxZWNcdTYxZWRcdTYxZWVcdTYxZWZcdTYxZjBcdTYxZjFcdTYxZjJcdTYxZjNcdTYxZjRcdTYxZjZcdTYxZjdcdTYxZjhcdTYxZjlcdTYxZmFcdTYxZmJcdTYxZmNcdTYxZmRcdTYxZmVcdTYyMDBc'@; put 'dTYyMDFcdTYyMDJcdTYyMDNcdTYyMDRcdTYyMDVcdTYyMDdcdTYyMDlcdTYyMTNcdTYyMTRcdTYyMTlcdTYyMWNcdTYyMWRcdTYyMWVcdTYyMjBcdTYyMjNcdTYyMjZcdTYyMjdcdTYyMjhcdTYyMjlcdTYyMmJcdTYyMmRcdTYyMmZcdTYyMzBcdTYyMzFcdTYyMzJcdTYyMzVcdTYyMzZcdTYy'@; put 'MzhcdTYyMzlcdTYyM2FcdTYyM2JcdTYyM2NcdTYyNDJcdTYyNDRcdTYyNDVcdTYyNDZcdTYyNGFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0NV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTQ1XVttXV09MzcxMjArbSxGWzM3MTIwK21d'@; put 'PXhbMTQ1XVttXSk7Zm9yKHhbMTQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjRmXHU2MjUwXHU2MjU1XHU2MjU2XHU2MjU3XHU2MjU5XHU2MjVhXHU2MjVjXHU2MjVkXHU2MjVlXHU2MjVmXHU2MjYwXHU2MjYxXHU2MjYyXHU2'@; put 'MjY0XHU2MjY1XHU2MjY4XHU2MjcxXHU2MjcyXHU2Mjc0XHU2Mjc1XHU2Mjc3XHU2Mjc4XHU2MjdhXHU2MjdiXHU2MjdkXHU2MjgxXHU2MjgyXHU2MjgzXHU2Mjg1XHU2Mjg2XHU2Mjg3XHU2Mjg4XHU2MjhiXHU2MjhjXHU2MjhkXHU2MjhlXHU2MjhmXHU2MjkwXHU2Mjk0XHU2Mjk5XHU2Mjlj'@; put 'XHU2MjlkXHU2MjllXHU2MmEzXHU2MmE2XHU2MmE3XHU2MmE5XHU2MmFhXHU2MmFkXHU2MmFlXHU2MmFmXHU2MmIwXHU2MmIyXHU2MmIzXHU2MmI0XHU2MmI2XHU2MmI3XHU2MmI4XHU2MmJhXHU2MmJlXHU2MmMwXHU2MmMxXHVmZmZkXHU2MmMzXHU2MmNiXHU2MmNmXHU2MmQxXHU2MmQ1XHU2'@; put 'MmRkXHU2MmRlXHU2MmUwXHU2MmUxXHU2MmU0XHU2MmVhXHU2MmViXHU2MmYwXHU2MmYyXHU2MmY1XHU2MmY4XHU2MmY5XHU2MmZhXHU2MmZiXHU2MzAwXHU2MzAzXHU2MzA0XHU2MzA1XHU2MzA2XHU2MzBhXHU2MzBiXHU2MzBjXHU2MzBkXHU2MzBmXHU2MzEwXHU2MzEyXHU2MzEzXHU2MzE0'@; put 'XHU2MzE1XHU2MzE3XHU2MzE4XHU2MzE5XHU2MzFjXHU2MzI2XHU2MzI3XHU2MzI5XHU2MzJjXHU2MzJkXHU2MzJlXHU2MzMwXHU2MzMxXHU2MzMzXHU2MzM0XHU2MzM1XHU2MzM2XHU2MzM3XHU2MzM4XHU2MzNiXHU2MzNjXHU2MzNlXHU2MzNmXHU2MzQwXHU2MzQxXHU2MzQ0XHU2MzQ3XHU2'@; put 'MzQ4XHU2MzRhXHU2MzUxXHU2MzUyXHU2MzUzXHU2MzU0XHU2MzU2XHU2MzU3XHU2MzU4XHU2MzU5XHU2MzVhXHU2MzViXHU2MzVjXHU2MzVkXHU2MzYwXHU2MzY0XHU2MzY1XHU2MzY2XHU2MzY4XHU2MzZhXHU2MzZiXHU2MzZjXHU2MzZmXHU2MzcwXHU2MzcyXHU2MzczXHU2Mzc0XHU2Mzc1'@; put 'XHU2Mzc4XHU2Mzc5XHU2MzdjXHU2MzdkXHU2MzdlXHU2MzdmXHU2MzgxXHU2MzgzXHU2Mzg0XHU2Mzg1XHU2Mzg2XHU2MzhiXHU2MzhkXHU2MzkxXHU2MzkzXHU2Mzk0XHU2Mzk1XHU2Mzk3XHU2Mzk5XHU2MzlhXHU2MzliXHU2MzljXHU2MzlkXHU2MzllXHU2MzlmXHU2M2ExXHU2M2E0XHU2'@; put 'M2E2XHU2M2FiXHU2M2FmXHU2M2IxXHU2M2IyXHU2M2I1XHU2M2I2XHU2M2I5XHU2M2JiXHU2M2JkXHU2M2JmXHU2M2MwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTQ2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0Nl1bbV1dPTM3Mzc2'@; put 'K20sRlszNzM3NittXT14WzE0Nl1bbV0pO2Zvcih4WzE0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjNjMVx1NjNjMlx1NjNjM1x1NjNjNVx1NjNjN1x1NjNjOFx1NjNjYVx1NjNjYlx1NjNjY1x1NjNkMVx1NjNkM1x1NjNkNFx1'@; put 'NjNkNVx1NjNkN1x1NjNkOFx1NjNkOVx1NjNkYVx1NjNkYlx1NjNkY1x1NjNkZFx1NjNkZlx1NjNlMlx1NjNlNFx1NjNlNVx1NjNlNlx1NjNlN1x1NjNlOFx1NjNlYlx1NjNlY1x1NjNlZVx1NjNlZlx1NjNmMFx1NjNmMVx1NjNmM1x1NjNmNVx1NjNmN1x1NjNmOVx1NjNmYVx1NjNmYlx1NjNm'@; put 'Y1x1NjNmZVx1NjQwM1x1NjQwNFx1NjQwNlx1NjQwN1x1NjQwOFx1NjQwOVx1NjQwYVx1NjQwZFx1NjQwZVx1NjQxMVx1NjQxMlx1NjQxNVx1NjQxNlx1NjQxN1x1NjQxOFx1NjQxOVx1NjQxYVx1NjQxZFx1NjQxZlx1NjQyMlx1NjQyM1x1NjQyNFx1ZmZmZFx1NjQyNVx1NjQyN1x1NjQyOFx1'@; put 'NjQyOVx1NjQyYlx1NjQyZVx1NjQyZlx1NjQzMFx1NjQzMVx1NjQzMlx1NjQzM1x1NjQzNVx1NjQzNlx1NjQzN1x1NjQzOFx1NjQzOVx1NjQzYlx1NjQzY1x1NjQzZVx1NjQ0MFx1NjQ0Mlx1NjQ0M1x1NjQ0OVx1NjQ0Ylx1NjQ0Y1x1NjQ0ZFx1NjQ0ZVx1NjQ0Zlx1NjQ1MFx1NjQ1MVx1NjQ1'@; put 'M1x1NjQ1NVx1NjQ1Nlx1NjQ1N1x1NjQ1OVx1NjQ1YVx1NjQ1Ylx1NjQ1Y1x1NjQ1ZFx1NjQ1Zlx1NjQ2MFx1NjQ2MVx1NjQ2Mlx1NjQ2M1x1NjQ2NFx1NjQ2NVx1NjQ2Nlx1NjQ2OFx1NjQ2YVx1NjQ2Ylx1NjQ2Y1x1NjQ2ZVx1NjQ2Zlx1NjQ3MFx1NjQ3MVx1NjQ3Mlx1NjQ3M1x1NjQ3NFx1'@; put 'NjQ3NVx1NjQ3Nlx1NjQ3N1x1NjQ3Ylx1NjQ3Y1x1NjQ3ZFx1NjQ3ZVx1NjQ3Zlx1NjQ4MFx1NjQ4MVx1NjQ4M1x1NjQ4Nlx1NjQ4OFx1NjQ4OVx1NjQ4YVx1NjQ4Ylx1NjQ4Y1x1NjQ4ZFx1NjQ4ZVx1NjQ4Zlx1NjQ5MFx1NjQ5M1x1NjQ5NFx1NjQ5N1x1NjQ5OFx1NjQ5YVx1NjQ5Ylx1NjQ5'@; put 'Y1x1NjQ5ZFx1NjQ5Zlx1NjRhMFx1NjRhMVx1NjRhMlx1NjRhM1x1NjRhNVx1NjRhNlx1NjRhN1x1NjRhOFx1NjRhYVx1NjRhYlx1NjRhZlx1NjRiMVx1NjRiMlx1NjRiM1x1NjRiNFx1NjRiNlx1NjRiOVx1NjRiYlx1NjRiZFx1NjRiZVx1NjRiZlx1NjRjMVx1NjRjM1x1NjRjNFx1NjRjNlx1'@; put 'NjRjN1x1NjRjOFx1NjRjOVx1NjRjYVx1NjRjYlx1NjRjY1x1NjRjZlx1NjRkMVx1NjRkM1x1NjRkNFx1NjRkNVx1NjRkNlx1NjRkOVx1NjRkYVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQ3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsx'@; put 'NDddW21dXT0zNzYzMittLEZbMzc2MzIrbV09eFsxNDddW21dKTtmb3IoeFsxNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0ZGJcdTY0ZGNcdTY0ZGRcdTY0ZGZcdTY0ZTBcdTY0ZTFcdTY0ZTNcdTY0ZTVcdTY0ZTdcdTY0ZThc'@; put 'dTY0ZTlcdTY0ZWFcdTY0ZWJcdTY0ZWNcdTY0ZWRcdTY0ZWVcdTY0ZWZcdTY0ZjBcdTY0ZjFcdTY0ZjJcdTY0ZjNcdTY0ZjRcdTY0ZjVcdTY0ZjZcdTY0ZjdcdTY0ZjhcdTY0ZjlcdTY0ZmFcdTY0ZmJcdTY0ZmNcdTY0ZmRcdTY0ZmVcdTY0ZmZcdTY1MDFcdTY1MDJcdTY1MDNcdTY1MDRcdTY1'@; put 'MDVcdTY1MDZcdTY1MDdcdTY1MDhcdTY1MGFcdTY1MGJcdTY1MGNcdTY1MGRcdTY1MGVcdTY1MGZcdTY1MTBcdTY1MTFcdTY1MTNcdTY1MTRcdTY1MTVcdTY1MTZcdTY1MTdcdTY1MTlcdTY1MWFcdTY1MWJcdTY1MWNcdTY1MWRcdTY1MWVcdTY1MWZcdTY1MjBcdTY1MjFcdWZmZmRcdTY1MjJc'@; put 'dTY1MjNcdTY1MjRcdTY1MjZcdTY1MjdcdTY1MjhcdTY1MjlcdTY1MmFcdTY1MmNcdTY1MmRcdTY1MzBcdTY1MzFcdTY1MzJcdTY1MzNcdTY1MzdcdTY1M2FcdTY1M2NcdTY1M2RcdTY1NDBcdTY1NDFcdTY1NDJcdTY1NDNcdTY1NDRcdTY1NDZcdTY1NDdcdTY1NGFcdTY1NGJcdTY1NGRcdTY1'@; put 'NGVcdTY1NTBcdTY1NTJcdTY1NTNcdTY1NTRcdTY1NTdcdTY1NThcdTY1NWFcdTY1NWNcdTY1NWZcdTY1NjBcdTY1NjFcdTY1NjRcdTY1NjVcdTY1NjdcdTY1NjhcdTY1NjlcdTY1NmFcdTY1NmRcdTY1NmVcdTY1NmZcdTY1NzFcdTY1NzNcdTY1NzVcdTY1NzZcdTY1NzhcdTY1NzlcdTY1N2Fc'@; put 'dTY1N2JcdTY1N2NcdTY1N2RcdTY1N2VcdTY1N2ZcdTY1ODBcdTY1ODFcdTY1ODJcdTY1ODNcdTY1ODRcdTY1ODVcdTY1ODZcdTY1ODhcdTY1ODlcdTY1OGFcdTY1OGRcdTY1OGVcdTY1OGZcdTY1OTJcdTY1OTRcdTY1OTVcdTY1OTZcdTY1OThcdTY1OWFcdTY1OWRcdTY1OWVcdTY1YTBcdTY1'@; put 'YTJcdTY1YTNcdTY1YTZcdTY1YThcdTY1YWFcdTY1YWNcdTY1YWVcdTY1YjFcdTY1YjJcdTY1YjNcdTY1YjRcdTY1YjVcdTY1YjZcdTY1YjdcdTY1YjhcdTY1YmFcdTY1YmJcdTY1YmVcdTY1YmZcdTY1YzBcdTY1YzJcdTY1YzdcdTY1YzhcdTY1YzlcdTY1Y2FcdTY1Y2RcdTY1ZDBcdTY1ZDFc'@; put 'dTY1ZDNcdTY1ZDRcdTY1ZDVcdTY1ZDhcdTY1ZDlcdTY1ZGFcdTY1ZGJcdTY1ZGNcdTY1ZGRcdTY1ZGVcdTY1ZGZcdTY1ZTFcdTY1ZTNcdTY1ZTRcdTY1ZWFcdTY1ZWJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0OF1bbV0uY2hhckNvZGVB'@; put 'dCgwKSYmKGFlW3hbMTQ4XVttXV09Mzc4ODgrbSxGWzM3ODg4K21dPXhbMTQ4XVttXSk7Zm9yKHhbMTQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NWYyXHU2NWYzXHU2NWY0XHU2NWY1XHU2NWY4XHU2NWY5XHU2NWZiXHU2NWZj'@; put 'XHU2NWZkXHU2NWZlXHU2NWZmXHU2NjAxXHU2NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2NjA5XHU2NjBiXHU2NjBkXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFhXHU2NjFiXHU2NjFjXHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2'@; put 'NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMyXHU2NjMzXHU2NjM3XHU2NjM4XHU2NjM5XHU2NjNhXHU2NjNiXHU2NjNkXHU2NjNmXHU2NjQwXHU2NjQyXHU2NjQ0XHU2NjQ1XHU2NjQ2XHU2NjQ3XHU2NjQ4XHU2NjQ5XHU2NjRhXHU2NjRkXHU2NjRlXHU2NjUwXHU2NjUxXHU2NjU4'@; put 'XHVmZmZkXHU2NjU5XHU2NjViXHU2NjVjXHU2NjVkXHU2NjVlXHU2NjYwXHU2NjYyXHU2NjYzXHU2NjY1XHU2NjY3XHU2NjY5XHU2NjZhXHU2NjZiXHU2NjZjXHU2NjZkXHU2NjcxXHU2NjcyXHU2NjczXHU2Njc1XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjdjXHU2NjdkXHU2NjdmXHU2NjgwXHU2'@; put 'NjgxXHU2NjgzXHU2Njg1XHU2Njg2XHU2Njg4XHU2Njg5XHU2NjhhXHU2NjhiXHU2NjhkXHU2NjhlXHU2NjhmXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2Njk1XHU2Njk4XHU2Njk5XHU2NjlhXHU2NjliXHU2NjljXHU2NjllXHU2NjlmXHU2NmEwXHU2NmExXHU2NmEyXHU2NmEzXHU2NmE0'@; put 'XHU2NmE1XHU2NmE2XHU2NmE5XHU2NmFhXHU2NmFiXHU2NmFjXHU2NmFkXHU2NmFmXHU2NmIwXHU2NmIxXHU2NmIyXHU2NmIzXHU2NmI1XHU2NmI2XHU2NmI3XHU2NmI4XHU2NmJhXHU2NmJiXHU2NmJjXHU2NmJkXHU2NmJmXHU2NmMwXHU2NmMxXHU2NmMyXHU2NmMzXHU2NmM0XHU2NmM1XHU2'@; put 'NmM2XHU2NmM3XHU2NmM4XHU2NmM5XHU2NmNhXHU2NmNiXHU2NmNjXHU2NmNkXHU2NmNlXHU2NmNmXHU2NmQwXHU2NmQxXHU2NmQyXHU2NmQzXHU2NmQ0XHU2NmQ1XHU2NmQ2XHU2NmQ3XHU2NmQ4XHU2NmRhXHU2NmRlXHU2NmRmXHU2NmUwXHU2NmUxXHU2NmUyXHU2NmUzXHU2NmU0XHU2NmU1'@; put 'XHU2NmU3XHU2NmU4XHU2NmVhXHU2NmViXHU2NmVjXHU2NmVkXHU2NmVlXHU2NmVmXHU2NmYxXHU2NmY1XHU2NmY2XHU2NmY4XHU2NmZhXHU2NmZiXHU2NmZkXHU2NzAxXHU2NzAyXHU2NzAzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTQ5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDld'@; put 'W21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0OV1bbV1dPTM4MTQ0K20sRlszODE0NCttXT14WzE0OV1bbV0pO2Zvcih4WzE1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjcwNFx1NjcwNVx1NjcwNlx1NjcwN1x1NjcwY1x1Njcw'@; put 'ZVx1NjcwZlx1NjcxMVx1NjcxMlx1NjcxM1x1NjcxNlx1NjcxOFx1NjcxOVx1NjcxYVx1NjcxY1x1NjcxZVx1NjcyMFx1NjcyMVx1NjcyMlx1NjcyM1x1NjcyNFx1NjcyNVx1NjcyN1x1NjcyOVx1NjcyZVx1NjczMFx1NjczMlx1NjczM1x1NjczNlx1NjczN1x1NjczOFx1NjczOVx1NjczYlx1'@; put 'NjczY1x1NjczZVx1NjczZlx1Njc0MVx1Njc0NFx1Njc0NVx1Njc0N1x1Njc0YVx1Njc0Ylx1Njc0ZFx1Njc1Mlx1Njc1NFx1Njc1NVx1Njc1N1x1Njc1OFx1Njc1OVx1Njc1YVx1Njc1Ylx1Njc1ZFx1Njc2Mlx1Njc2M1x1Njc2NFx1Njc2Nlx1Njc2N1x1Njc2Ylx1Njc2Y1x1Njc2ZVx1Njc3'@; put 'MVx1Njc3NFx1Njc3Nlx1ZmZmZFx1Njc3OFx1Njc3OVx1Njc3YVx1Njc3Ylx1Njc3ZFx1Njc4MFx1Njc4Mlx1Njc4M1x1Njc4NVx1Njc4Nlx1Njc4OFx1Njc4YVx1Njc4Y1x1Njc4ZFx1Njc4ZVx1Njc4Zlx1Njc5MVx1Njc5Mlx1Njc5M1x1Njc5NFx1Njc5Nlx1Njc5OVx1Njc5Ylx1Njc5Zlx1'@; put 'NjdhMFx1NjdhMVx1NjdhNFx1NjdhNlx1NjdhOVx1NjdhY1x1NjdhZVx1NjdiMVx1NjdiMlx1NjdiNFx1NjdiOVx1NjdiYVx1NjdiYlx1NjdiY1x1NjdiZFx1NjdiZVx1NjdiZlx1NjdjMFx1NjdjMlx1NjdjNVx1NjdjNlx1NjdjN1x1NjdjOFx1NjdjOVx1NjdjYVx1NjdjYlx1NjdjY1x1Njdj'@; put 'ZFx1NjdjZVx1NjdkNVx1NjdkNlx1NjdkN1x1NjdkYlx1NjdkZlx1NjdlMVx1NjdlM1x1NjdlNFx1NjdlNlx1NjdlN1x1NjdlOFx1NjdlYVx1NjdlYlx1NjdlZFx1NjdlZVx1NjdmMlx1NjdmNVx1NjdmNlx1NjdmN1x1NjdmOFx1NjdmOVx1NjdmYVx1NjdmYlx1NjdmY1x1NjdmZVx1NjgwMVx1'@; put 'NjgwMlx1NjgwM1x1NjgwNFx1NjgwNlx1NjgwZFx1NjgxMFx1NjgxMlx1NjgxNFx1NjgxNVx1NjgxOFx1NjgxOVx1NjgxYVx1NjgxYlx1NjgxY1x1NjgxZVx1NjgxZlx1NjgyMFx1NjgyMlx1NjgyM1x1NjgyNFx1NjgyNVx1NjgyNlx1NjgyN1x1NjgyOFx1NjgyYlx1NjgyY1x1NjgyZFx1Njgy'@; put 'ZVx1NjgyZlx1NjgzMFx1NjgzMVx1NjgzNFx1NjgzNVx1NjgzNlx1NjgzYVx1NjgzYlx1NjgzZlx1Njg0N1x1Njg0Ylx1Njg0ZFx1Njg0Zlx1Njg1Mlx1Njg1Nlx1Njg1N1x1Njg1OFx1Njg1OVx1Njg1YVx1Njg1Ylx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1MF0ubGVuZ3RoOysrbSk2'@; put 'NTUzMyE9PXhbMTUwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTBdW21dXT0zODQwMCttLEZbMzg0MDArbV09eFsxNTBdW21dKTtmb3IoeFsxNTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY4NWNcdTY4NWRcdTY4NWVcdTY4'@; put 'NWZcdTY4NmFcdTY4NmNcdTY4NmRcdTY4NmVcdTY4NmZcdTY4NzBcdTY4NzFcdTY4NzJcdTY4NzNcdTY4NzVcdTY4NzhcdTY4NzlcdTY4N2FcdTY4N2JcdTY4N2NcdTY4N2RcdTY4N2VcdTY4N2ZcdTY4ODBcdTY4ODJcdTY4ODRcdTY4ODdcdTY4ODhcdTY4ODlcdTY4OGFcdTY4OGJcdTY4OGNc'@; put 'dTY4OGRcdTY4OGVcdTY4OTBcdTY4OTFcdTY4OTJcdTY4OTRcdTY4OTVcdTY4OTZcdTY4OThcdTY4OTlcdTY4OWFcdTY4OWJcdTY4OWNcdTY4OWRcdTY4OWVcdTY4OWZcdTY4YTBcdTY4YTFcdTY4YTNcdTY4YTRcdTY4YTVcdTY4YTlcdTY4YWFcdTY4YWJcdTY4YWNcdTY4YWVcdTY4YjFcdTY4'@; put 'YjJcdTY4YjRcdTY4YjZcdTY4YjdcdTY4YjhcdWZmZmRcdTY4YjlcdTY4YmFcdTY4YmJcdTY4YmNcdTY4YmRcdTY4YmVcdTY4YmZcdTY4YzFcdTY4YzNcdTY4YzRcdTY4YzVcdTY4YzZcdTY4YzdcdTY4YzhcdTY4Y2FcdTY4Y2NcdTY4Y2VcdTY4Y2ZcdTY4ZDBcdTY4ZDFcdTY4ZDNcdTY4ZDRc'@; put 'dTY4ZDZcdTY4ZDdcdTY4ZDlcdTY4ZGJcdTY4ZGNcdTY4ZGRcdTY4ZGVcdTY4ZGZcdTY4ZTFcdTY4ZTJcdTY4ZTRcdTY4ZTVcdTY4ZTZcdTY4ZTdcdTY4ZThcdTY4ZTlcdTY4ZWFcdTY4ZWJcdTY4ZWNcdTY4ZWRcdTY4ZWZcdTY4ZjJcdTY4ZjNcdTY4ZjRcdTY4ZjZcdTY4ZjdcdTY4ZjhcdTY4'@; put 'ZmJcdTY4ZmRcdTY4ZmVcdTY4ZmZcdTY5MDBcdTY5MDJcdTY5MDNcdTY5MDRcdTY5MDZcdTY5MDdcdTY5MDhcdTY5MDlcdTY5MGFcdTY5MGNcdTY5MGZcdTY5MTFcdTY5MTNcdTY5MTRcdTY5MTVcdTY5MTZcdTY5MTdcdTY5MThcdTY5MTlcdTY5MWFcdTY5MWJcdTY5MWNcdTY5MWRcdTY5MWVc'@; put 'dTY5MjFcdTY5MjJcdTY5MjNcdTY5MjVcdTY5MjZcdTY5MjdcdTY5MjhcdTY5MjlcdTY5MmFcdTY5MmJcdTY5MmNcdTY5MmVcdTY5MmZcdTY5MzFcdTY5MzJcdTY5MzNcdTY5MzVcdTY5MzZcdTY5MzdcdTY5MzhcdTY5M2FcdTY5M2JcdTY5M2NcdTY5M2VcdTY5NDBcdTY5NDFcdTY5NDNcdTY5'@; put 'NDRcdTY5NDVcdTY5NDZcdTY5NDdcdTY5NDhcdTY5NDlcdTY5NGFcdTY5NGJcdTY5NGNcdTY5NGRcdTY5NGVcdTY5NGZcdTY5NTBcdTY5NTFcdTY5NTJcdTY5NTNcdTY5NTVcdTY5NTZcdTY5NThcdTY5NTlcdTY5NWJcdTY5NWNcdTY5NWZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTFd'@; put 'Lmxlbmd0aDsrK20pNjU1MzMhPT14WzE1MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTUxXVttXV09Mzg2NTYrbSxGWzM4NjU2K21dPXhbMTUxXVttXSk7Zm9yKHhbMTUyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTYxXHU2'@; put 'OTYyXHU2OTY0XHU2OTY1XHU2OTY3XHU2OTY4XHU2OTY5XHU2OTZhXHU2OTZjXHU2OTZkXHU2OTZmXHU2OTcwXHU2OTcyXHU2OTczXHU2OTc0XHU2OTc1XHU2OTc2XHU2OTdhXHU2OTdiXHU2OTdkXHU2OTdlXHU2OTdmXHU2OTgxXHU2OTgzXHU2OTg1XHU2OThhXHU2OThiXHU2OThjXHU2OThl'@; put 'XHU2OThmXHU2OTkwXHU2OTkxXHU2OTkyXHU2OTkzXHU2OTk2XHU2OTk3XHU2OTk5XHU2OTlhXHU2OTlkXHU2OTllXHU2OTlmXHU2OWEwXHU2OWExXHU2OWEyXHU2OWEzXHU2OWE0XHU2OWE1XHU2OWE2XHU2OWE5XHU2OWFhXHU2OWFjXHU2OWFlXHU2OWFmXHU2OWIwXHU2OWIyXHU2OWIzXHU2'@; put 'OWI1XHU2OWI2XHU2OWI4XHU2OWI5XHU2OWJhXHU2OWJjXHU2OWJkXHVmZmZkXHU2OWJlXHU2OWJmXHU2OWMwXHU2OWMyXHU2OWMzXHU2OWM0XHU2OWM1XHU2OWM2XHU2OWM3XHU2OWM4XHU2OWM5XHU2OWNiXHU2OWNkXHU2OWNmXHU2OWQxXHU2OWQyXHU2OWQzXHU2OWQ1XHU2OWQ2XHU2OWQ3'@; put 'XHU2OWQ4XHU2OWQ5XHU2OWRhXHU2OWRjXHU2OWRkXHU2OWRlXHU2OWUxXHU2OWUyXHU2OWUzXHU2OWU0XHU2OWU1XHU2OWU2XHU2OWU3XHU2OWU4XHU2OWU5XHU2OWVhXHU2OWViXHU2OWVjXHU2OWVlXHU2OWVmXHU2OWYwXHU2OWYxXHU2OWYzXHU2OWY0XHU2OWY1XHU2OWY2XHU2OWY3XHU2'@; put 'OWY4XHU2OWY5XHU2OWZhXHU2OWZiXHU2OWZjXHU2OWZlXHU2YTAwXHU2YTAxXHU2YTAyXHU2YTAzXHU2YTA0XHU2YTA1XHU2YTA2XHU2YTA3XHU2YTA4XHU2YTA5XHU2YTBiXHU2YTBjXHU2YTBkXHU2YTBlXHU2YTBmXHU2YTEwXHU2YTExXHU2YTEyXHU2YTEzXHU2YTE0XHU2YTE1XHU2YTE2'@; put 'XHU2YTE5XHU2YTFhXHU2YTFiXHU2YTFjXHU2YTFkXHU2YTFlXHU2YTIwXHU2YTIyXHU2YTIzXHU2YTI0XHU2YTI1XHU2YTI2XHU2YTI3XHU2YTI5XHU2YTJiXHU2YTJjXHU2YTJkXHU2YTJlXHU2YTMwXHU2YTMyXHU2YTMzXHU2YTM0XHU2YTM2XHU2YTM3XHU2YTM4XHU2YTM5XHU2YTNhXHU2'@; put 'YTNiXHU2YTNjXHU2YTNmXHU2YTQwXHU2YTQxXHU2YTQyXHU2YTQzXHU2YTQ1XHU2YTQ2XHU2YTQ4XHU2YTQ5XHU2YTRhXHU2YTRiXHU2YTRjXHU2YTRkXHU2YTRlXHU2YTRmXHU2YTUxXHU2YTUyXHU2YTUzXHU2YTU0XHU2YTU1XHU2YTU2XHU2YTU3XHU2YTVhXHVmZmZkIi5zcGxpdCgiIiks'@; put 'bT0wO20hPXhbMTUyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1Ml1bbV1dPTM4OTEyK20sRlszODkxMittXT14WzE1Ml1bbV0pO2Zvcih4WzE1M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1NmE1Y1x1NmE1ZFx1NmE1ZVx1NmE1Zlx1NmE2MFx1NmE2Mlx1NmE2M1x1NmE2NFx1NmE2Nlx1NmE2N1x1NmE2OFx1NmE2OVx1NmE2YVx1NmE2Ylx1NmE2Y1x1NmE2ZFx1NmE2ZVx1NmE2Zlx1NmE3MFx1NmE3Mlx1NmE3M1x1NmE3NFx1NmE3NVx1NmE3Nlx1NmE3N1x1NmE3OFx1NmE3'@; put 'YVx1NmE3Ylx1NmE3ZFx1NmE3ZVx1NmE3Zlx1NmE4MVx1NmE4Mlx1NmE4M1x1NmE4NVx1NmE4Nlx1NmE4N1x1NmE4OFx1NmE4OVx1NmE4YVx1NmE4Ylx1NmE4Y1x1NmE4ZFx1NmE4Zlx1NmE5Mlx1NmE5M1x1NmE5NFx1NmE5NVx1NmE5Nlx1NmE5OFx1NmE5OVx1NmE5YVx1NmE5Ylx1NmE5Y1x1'@; put 'NmE5ZFx1NmE5ZVx1NmE5Zlx1NmFhMVx1NmFhMlx1NmFhM1x1NmFhNFx1NmFhNVx1NmFhNlx1ZmZmZFx1NmFhN1x1NmFhOFx1NmFhYVx1NmFhZFx1NmFhZVx1NmFhZlx1NmFiMFx1NmFiMVx1NmFiMlx1NmFiM1x1NmFiNFx1NmFiNVx1NmFiNlx1NmFiN1x1NmFiOFx1NmFiOVx1NmFiYVx1NmFi'@; put 'Ylx1NmFiY1x1NmFiZFx1NmFiZVx1NmFiZlx1NmFjMFx1NmFjMVx1NmFjMlx1NmFjM1x1NmFjNFx1NmFjNVx1NmFjNlx1NmFjN1x1NmFjOFx1NmFjOVx1NmFjYVx1NmFjYlx1NmFjY1x1NmFjZFx1NmFjZVx1NmFjZlx1NmFkMFx1NmFkMVx1NmFkMlx1NmFkM1x1NmFkNFx1NmFkNVx1NmFkNlx1'@; put 'NmFkN1x1NmFkOFx1NmFkOVx1NmFkYVx1NmFkYlx1NmFkY1x1NmFkZFx1NmFkZVx1NmFkZlx1NmFlMFx1NmFlMVx1NmFlMlx1NmFlM1x1NmFlNFx1NmFlNVx1NmFlNlx1NmFlN1x1NmFlOFx1NmFlOVx1NmFlYVx1NmFlYlx1NmFlY1x1NmFlZFx1NmFlZVx1NmFlZlx1NmFmMFx1NmFmMVx1NmFm'@; put 'Mlx1NmFmM1x1NmFmNFx1NmFmNVx1NmFmNlx1NmFmN1x1NmFmOFx1NmFmOVx1NmFmYVx1NmFmYlx1NmFmY1x1NmFmZFx1NmFmZVx1NmFmZlx1NmIwMFx1NmIwMVx1NmIwMlx1NmIwM1x1NmIwNFx1NmIwNVx1NmIwNlx1NmIwN1x1NmIwOFx1NmIwOVx1NmIwYVx1NmIwYlx1NmIwY1x1NmIwZFx1'@; put 'NmIwZVx1NmIwZlx1NmIxMFx1NmIxMVx1NmIxMlx1NmIxM1x1NmIxNFx1NmIxNVx1NmIxNlx1NmIxN1x1NmIxOFx1NmIxOVx1NmIxYVx1NmIxYlx1NmIxY1x1NmIxZFx1NmIxZVx1NmIxZlx1NmIyNVx1NmIyNlx1NmIyOFx1NmIyOVx1NmIyYVx1NmIyYlx1NmIyY1x1NmIyZFx1NmIyZVx1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLG09MDttIT14WzE1M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTUzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTNdW21dXT0zOTE2OCttLEZbMzkxNjgrbV09eFsxNTNdW21dKTtmb3IoeFsxNTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdTZiMmZcdTZiMzBcdTZiMzFcdTZiMzNcdTZiMzRcdTZiMzVcdTZiMzZcdTZiMzhcdTZiM2JcdTZiM2NcdTZiM2RcdTZiM2ZcdTZiNDBcdTZiNDFcdTZiNDJcdTZiNDRcdTZiNDVcdTZiNDhcdTZiNGFcdTZiNGJcdTZiNGRcdTZiNGVcdTZiNGZcdTZiNTBcdTZi'@; put 'NTFcdTZiNTJcdTZiNTNcdTZiNTRcdTZiNTVcdTZiNTZcdTZiNTdcdTZiNThcdTZiNWFcdTZiNWJcdTZiNWNcdTZiNWRcdTZiNWVcdTZiNWZcdTZiNjBcdTZiNjFcdTZiNjhcdTZiNjlcdTZiNmJcdTZiNmNcdTZiNmRcdTZiNmVcdTZiNmZcdTZiNzBcdTZiNzFcdTZiNzJcdTZiNzNcdTZiNzRc'@; put 'dTZiNzVcdTZiNzZcdTZiNzdcdTZiNzhcdTZiN2FcdTZiN2RcdTZiN2VcdTZiN2ZcdTZiODBcdTZiODVcdTZiODhcdWZmZmRcdTZiOGNcdTZiOGVcdTZiOGZcdTZiOTBcdTZiOTFcdTZiOTRcdTZiOTVcdTZiOTdcdTZiOThcdTZiOTlcdTZiOWNcdTZiOWRcdTZiOWVcdTZiOWZcdTZiYTBcdTZi'@; put 'YTJcdTZiYTNcdTZiYTRcdTZiYTVcdTZiYTZcdTZiYTdcdTZiYThcdTZiYTlcdTZiYWJcdTZiYWNcdTZiYWRcdTZiYWVcdTZiYWZcdTZiYjBcdTZiYjFcdTZiYjJcdTZiYjZcdTZiYjhcdTZiYjlcdTZiYmFcdTZiYmJcdTZiYmNcdTZiYmRcdTZiYmVcdTZiYzBcdTZiYzNcdTZiYzRcdTZiYzZc'@; put 'dTZiYzdcdTZiYzhcdTZiYzlcdTZiY2FcdTZiY2NcdTZiY2VcdTZiZDBcdTZiZDFcdTZiZDhcdTZiZGFcdTZiZGNcdTZiZGRcdTZiZGVcdTZiZGZcdTZiZTBcdTZiZTJcdTZiZTNcdTZiZTRcdTZiZTVcdTZiZTZcdTZiZTdcdTZiZThcdTZiZTlcdTZiZWNcdTZiZWRcdTZiZWVcdTZiZjBcdTZi'@; put 'ZjFcdTZiZjJcdTZiZjRcdTZiZjZcdTZiZjdcdTZiZjhcdTZiZmFcdTZiZmJcdTZiZmNcdTZiZmVcdTZiZmZcdTZjMDBcdTZjMDFcdTZjMDJcdTZjMDNcdTZjMDRcdTZjMDhcdTZjMDlcdTZjMGFcdTZjMGJcdTZjMGNcdTZjMGVcdTZjMTJcdTZjMTdcdTZjMWNcdTZjMWRcdTZjMWVcdTZjMjBc'@; put 'dTZjMjNcdTZjMjVcdTZjMmJcdTZjMmNcdTZjMmRcdTZjMzFcdTZjMzNcdTZjMzZcdTZjMzdcdTZjMzlcdTZjM2FcdTZjM2JcdTZjM2NcdTZjM2VcdTZjM2ZcdTZjNDNcdTZjNDRcdTZjNDVcdTZjNDhcdTZjNGJcdTZjNGNcdTZjNGRcdTZjNGVcdTZjNGZcdTZjNTFcdTZjNTJcdTZjNTNcdTZj'@; put 'NTZcdTZjNThcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE1NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTU0XVttXV09Mzk0MjQrbSxGWzM5NDI0K21dPXhbMTU0XVttXSk7Zm9yKHhbMTU1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzU5XHU2YzVhXHU2YzYyXHU2YzYzXHU2YzY1XHU2YzY2XHU2YzY3XHU2YzZiXHU2YzZjXHU2YzZkXHU2YzZlXHU2YzZmXHU2YzcxXHU2YzczXHU2Yzc1XHU2Yzc3XHU2Yzc4XHU2YzdhXHU2YzdiXHU2YzdjXHU2YzdmXHU2YzgwXHU2'@; put 'Yzg0XHU2Yzg3XHU2YzhhXHU2YzhiXHU2YzhkXHU2YzhlXHU2YzkxXHU2YzkyXHU2Yzk1XHU2Yzk2XHU2Yzk3XHU2Yzk4XHU2YzlhXHU2YzljXHU2YzlkXHU2YzllXHU2Y2EwXHU2Y2EyXHU2Y2E4XHU2Y2FjXHU2Y2FmXHU2Y2IwXHU2Y2I0XHU2Y2I1XHU2Y2I2XHU2Y2I3XHU2Y2JhXHU2Y2Mw'@; put 'XHU2Y2MxXHU2Y2MyXHU2Y2MzXHU2Y2M2XHU2Y2M3XHU2Y2M4XHU2Y2NiXHU2Y2NkXHU2Y2NlXHU2Y2NmXHU2Y2QxXHU2Y2QyXHU2Y2Q4XHVmZmZkXHU2Y2Q5XHU2Y2RhXHU2Y2RjXHU2Y2RkXHU2Y2RmXHU2Y2U0XHU2Y2U2XHU2Y2U3XHU2Y2U5XHU2Y2VjXHU2Y2VkXHU2Y2YyXHU2Y2Y0XHU2'@; put 'Y2Y5XHU2Y2ZmXHU2ZDAwXHU2ZDAyXHU2ZDAzXHU2ZDA1XHU2ZDA2XHU2ZDA4XHU2ZDA5XHU2ZDBhXHU2ZDBkXHU2ZDBmXHU2ZDEwXHU2ZDExXHU2ZDEzXHU2ZDE0XHU2ZDE1XHU2ZDE2XHU2ZDE4XHU2ZDFjXHU2ZDFkXHU2ZDFmXHU2ZDIwXHU2ZDIxXHU2ZDIyXHU2ZDIzXHU2ZDI0XHU2ZDI2'@; put 'XHU2ZDI4XHU2ZDI5XHU2ZDJjXHU2ZDJkXHU2ZDJmXHU2ZDMwXHU2ZDM0XHU2ZDM2XHU2ZDM3XHU2ZDM4XHU2ZDNhXHU2ZDNmXHU2ZDQwXHU2ZDQyXHU2ZDQ0XHU2ZDQ5XHU2ZDRjXHU2ZDUwXHU2ZDU1XHU2ZDU2XHU2ZDU3XHU2ZDU4XHU2ZDViXHU2ZDVkXHU2ZDVmXHU2ZDYxXHU2ZDYyXHU2'@; put 'ZDY0XHU2ZDY1XHU2ZDY3XHU2ZDY4XHU2ZDZiXHU2ZDZjXHU2ZDZkXHU2ZDcwXHU2ZDcxXHU2ZDcyXHU2ZDczXHU2ZDc1XHU2ZDc2XHU2ZDc5XHU2ZDdhXHU2ZDdiXHU2ZDdkXHU2ZDdlXHU2ZDdmXHU2ZDgwXHU2ZDgxXHU2ZDgzXHU2ZDg0XHU2ZDg2XHU2ZDg3XHU2ZDhhXHU2ZDhiXHU2ZDhk'@; put 'XHU2ZDhmXHU2ZDkwXHU2ZDkyXHU2ZDk2XHU2ZDk3XHU2ZDk4XHU2ZDk5XHU2ZDlhXHU2ZDljXHU2ZGEyXHU2ZGE1XHU2ZGFjXHU2ZGFkXHU2ZGIwXHU2ZGIxXHU2ZGIzXHU2ZGI0XHU2ZGI2XHU2ZGI3XHU2ZGI5XHU2ZGJhXHU2ZGJiXHU2ZGJjXHU2ZGJkXHU2ZGJlXHU2ZGMxXHU2ZGMyXHU2'@; put 'ZGMzXHU2ZGM4XHU2ZGM5XHU2ZGNhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTU1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1NV1bbV1dPTM5NjgwK20sRlszOTY4MCttXT14WzE1NV1bbV0pO2Zvcih4WzE1Nl09Ilx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmRjZFx1NmRjZVx1NmRjZlx1NmRkMFx1NmRkMlx1NmRkM1x1NmRkNFx1NmRkNVx1NmRkN1x1NmRkYVx1NmRkYlx1NmRkY1x1NmRkZlx1NmRlMlx1NmRlM1x1NmRlNVx1NmRlN1x1NmRlOFx1NmRlOVx1NmRlYVx1'@; put 'NmRlZFx1NmRlZlx1NmRmMFx1NmRmMlx1NmRmNFx1NmRmNVx1NmRmNlx1NmRmOFx1NmRmYVx1NmRmZFx1NmRmZVx1NmRmZlx1NmUwMFx1NmUwMVx1NmUwMlx1NmUwM1x1NmUwNFx1NmUwNlx1NmUwN1x1NmUwOFx1NmUwOVx1NmUwYlx1NmUwZlx1NmUxMlx1NmUxM1x1NmUxNVx1NmUxOFx1NmUx'@; put 'OVx1NmUxYlx1NmUxY1x1NmUxZVx1NmUxZlx1NmUyMlx1NmUyNlx1NmUyN1x1NmUyOFx1NmUyYVx1NmUyY1x1NmUyZVx1NmUzMFx1NmUzMVx1NmUzM1x1NmUzNVx1ZmZmZFx1NmUzNlx1NmUzN1x1NmUzOVx1NmUzYlx1NmUzY1x1NmUzZFx1NmUzZVx1NmUzZlx1NmU0MFx1NmU0MVx1NmU0Mlx1'@; put 'NmU0NVx1NmU0Nlx1NmU0N1x1NmU0OFx1NmU0OVx1NmU0YVx1NmU0Ylx1NmU0Y1x1NmU0Zlx1NmU1MFx1NmU1MVx1NmU1Mlx1NmU1NVx1NmU1N1x1NmU1OVx1NmU1YVx1NmU1Y1x1NmU1ZFx1NmU1ZVx1NmU2MFx1NmU2MVx1NmU2Mlx1NmU2M1x1NmU2NFx1NmU2NVx1NmU2Nlx1NmU2N1x1NmU2'@; put 'OFx1NmU2OVx1NmU2YVx1NmU2Y1x1NmU2ZFx1NmU2Zlx1NmU3MFx1NmU3MVx1NmU3Mlx1NmU3M1x1NmU3NFx1NmU3NVx1NmU3Nlx1NmU3N1x1NmU3OFx1NmU3OVx1NmU3YVx1NmU3Ylx1NmU3Y1x1NmU3ZFx1NmU4MFx1NmU4MVx1NmU4Mlx1NmU4NFx1NmU4N1x1NmU4OFx1NmU4YVx1NmU4Ylx1'@; put 'NmU4Y1x1NmU4ZFx1NmU4ZVx1NmU5MVx1NmU5Mlx1NmU5M1x1NmU5NFx1NmU5NVx1NmU5Nlx1NmU5N1x1NmU5OVx1NmU5YVx1NmU5Ylx1NmU5ZFx1NmU5ZVx1NmVhMFx1NmVhMVx1NmVhM1x1NmVhNFx1NmVhNlx1NmVhOFx1NmVhOVx1NmVhYlx1NmVhY1x1NmVhZFx1NmVhZVx1NmViMFx1NmVi'@; put 'M1x1NmViNVx1NmViOFx1NmViOVx1NmViY1x1NmViZVx1NmViZlx1NmVjMFx1NmVjM1x1NmVjNFx1NmVjNVx1NmVjNlx1NmVjOFx1NmVjOVx1NmVjYVx1NmVjY1x1NmVjZFx1NmVjZVx1NmVkMFx1NmVkMlx1NmVkNlx1NmVkOFx1NmVkOVx1NmVkYlx1NmVkY1x1NmVkZFx1NmVlM1x1NmVlN1x1'@; put 'NmVlYVx1NmVlYlx1NmVlY1x1NmVlZFx1NmVlZVx1NmVlZlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTU2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTZdW21dXT0zOTkzNittLEZbMzk5MzYrbV09eFsxNTZdW21dKTtmb3IoeFsxNTdd'@; put 'PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlZjBcdTZlZjFcdTZlZjJcdTZlZjNcdTZlZjVcdTZlZjZcdTZlZjdcdTZlZjhcdTZlZmFcdTZlZmJcdTZlZmNcdTZlZmRcdTZlZmVcdTZlZmZcdTZmMDBcdTZmMDFcdTZmMDNcdTZmMDRc'@; put 'dTZmMDVcdTZmMDdcdTZmMDhcdTZmMGFcdTZmMGJcdTZmMGNcdTZmMGRcdTZmMGVcdTZmMTBcdTZmMTFcdTZmMTJcdTZmMTZcdTZmMTdcdTZmMThcdTZmMTlcdTZmMWFcdTZmMWJcdTZmMWNcdTZmMWRcdTZmMWVcdTZmMWZcdTZmMjFcdTZmMjJcdTZmMjNcdTZmMjVcdTZmMjZcdTZmMjdcdTZm'@; put 'MjhcdTZmMmNcdTZmMmVcdTZmMzBcdTZmMzJcdTZmMzRcdTZmMzVcdTZmMzdcdTZmMzhcdTZmMzlcdTZmM2FcdTZmM2JcdTZmM2NcdTZmM2RcdTZmM2ZcdTZmNDBcdTZmNDFcdTZmNDJcdWZmZmRcdTZmNDNcdTZmNDRcdTZmNDVcdTZmNDhcdTZmNDlcdTZmNGFcdTZmNGNcdTZmNGVcdTZmNGZc'@; put 'dTZmNTBcdTZmNTFcdTZmNTJcdTZmNTNcdTZmNTRcdTZmNTVcdTZmNTZcdTZmNTdcdTZmNTlcdTZmNWFcdTZmNWJcdTZmNWRcdTZmNWZcdTZmNjBcdTZmNjFcdTZmNjNcdTZmNjRcdTZmNjVcdTZmNjdcdTZmNjhcdTZmNjlcdTZmNmFcdTZmNmJcdTZmNmNcdTZmNmZcdTZmNzBcdTZmNzFcdTZm'@; put 'NzNcdTZmNzVcdTZmNzZcdTZmNzdcdTZmNzlcdTZmN2JcdTZmN2RcdTZmN2VcdTZmN2ZcdTZmODBcdTZmODFcdTZmODJcdTZmODNcdTZmODVcdTZmODZcdTZmODdcdTZmOGFcdTZmOGJcdTZmOGZcdTZmOTBcdTZmOTFcdTZmOTJcdTZmOTNcdTZmOTRcdTZmOTVcdTZmOTZcdTZmOTdcdTZmOThc'@; put 'dTZmOTlcdTZmOWFcdTZmOWJcdTZmOWRcdTZmOWVcdTZmOWZcdTZmYTBcdTZmYTJcdTZmYTNcdTZmYTRcdTZmYTVcdTZmYTZcdTZmYThcdTZmYTlcdTZmYWFcdTZmYWJcdTZmYWNcdTZmYWRcdTZmYWVcdTZmYWZcdTZmYjBcdTZmYjFcdTZmYjJcdTZmYjRcdTZmYjVcdTZmYjdcdTZmYjhcdTZm'@; put 'YmFcdTZmYmJcdTZmYmNcdTZmYmRcdTZmYmVcdTZmYmZcdTZmYzFcdTZmYzNcdTZmYzRcdTZmYzVcdTZmYzZcdTZmYzdcdTZmYzhcdTZmY2FcdTZmY2JcdTZmY2NcdTZmY2RcdTZmY2VcdTZmY2ZcdTZmZDBcdTZmZDNcdTZmZDRcdTZmZDVcdTZmZDZcdTZmZDdcdTZmZDhcdTZmZDlcdTZmZGFc'@; put 'dTZmZGJcdTZmZGNcdTZmZGRcdTZmZGZcdTZmZTJcdTZmZTNcdTZmZTRcdTZmZTVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTddLmxlbmd0aDsrK20pNjU1MzMhPT14WzE1N11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTU3XVttXV09NDAxOTIrbSxGWzQwMTkyK21dPXhbMTU3XVtt'@; put 'XSk7Zm9yKHhbMTU4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmU2XHU2ZmU3XHU2ZmU4XHU2ZmU5XHU2ZmVhXHU2ZmViXHU2ZmVjXHU2ZmVkXHU2ZmYwXHU2ZmYxXHU2ZmYyXHU2ZmYzXHU2ZmY0XHU2ZmY1XHU2ZmY2XHU2ZmY3'@; put 'XHU2ZmY4XHU2ZmY5XHU2ZmZhXHU2ZmZiXHU2ZmZjXHU2ZmZkXHU2ZmZlXHU2ZmZmXHU3MDAwXHU3MDAxXHU3MDAyXHU3MDAzXHU3MDA0XHU3MDA1XHU3MDA2XHU3MDA3XHU3MDA4XHU3MDA5XHU3MDBhXHU3MDBiXHU3MDBjXHU3MDBkXHU3MDBlXHU3MDBmXHU3MDEwXHU3MDEyXHU3MDEzXHU3'@; put 'MDE0XHU3MDE1XHU3MDE2XHU3MDE3XHU3MDE4XHU3MDE5XHU3MDFjXHU3MDFkXHU3MDFlXHU3MDFmXHU3MDIwXHU3MDIxXHU3MDIyXHU3MDI0XHU3MDI1XHU3MDI2XHU3MDI3XHU3MDI4XHU3MDI5XHU3MDJhXHVmZmZkXHU3MDJiXHU3MDJjXHU3MDJkXHU3MDJlXHU3MDJmXHU3MDMwXHU3MDMx'@; put 'XHU3MDMyXHU3MDMzXHU3MDM0XHU3MDM2XHU3MDM3XHU3MDM4XHU3MDNhXHU3MDNiXHU3MDNjXHU3MDNkXHU3MDNlXHU3MDNmXHU3MDQwXHU3MDQxXHU3MDQyXHU3MDQzXHU3MDQ0XHU3MDQ1XHU3MDQ2XHU3MDQ3XHU3MDQ4XHU3MDQ5XHU3MDRhXHU3MDRiXHU3MDRkXHU3MDRlXHU3MDUwXHU3'@; put 'MDUxXHU3MDUyXHU3MDUzXHU3MDU0XHU3MDU1XHU3MDU2XHU3MDU3XHU3MDU4XHU3MDU5XHU3MDVhXHU3MDViXHU3MDVjXHU3MDVkXHU3MDVmXHU3MDYwXHU3MDYxXHU3MDYyXHU3MDYzXHU3MDY0XHU3MDY1XHU3MDY2XHU3MDY3XHU3MDY4XHU3MDY5XHU3MDZhXHU3MDZlXHU3MDcxXHU3MDcy'@; put 'XHU3MDczXHU3MDc0XHU3MDc3XHU3MDc5XHU3MDdhXHU3MDdiXHU3MDdkXHU3MDgxXHU3MDgyXHU3MDgzXHU3MDg0XHU3MDg2XHU3MDg3XHU3MDg4XHU3MDhiXHU3MDhjXHU3MDhkXHU3MDhmXHU3MDkwXHU3MDkxXHU3MDkzXHU3MDk3XHU3MDk4XHU3MDlhXHU3MDliXHU3MDllXHU3MDlmXHU3'@; put 'MGEwXHU3MGExXHU3MGEyXHU3MGEzXHU3MGE0XHU3MGE1XHU3MGE2XHU3MGE3XHU3MGE4XHU3MGE5XHU3MGFhXHU3MGIwXHU3MGIyXHU3MGI0XHU3MGI1XHU3MGI2XHU3MGJhXHU3MGJlXHU3MGJmXHU3MGM0XHU3MGM1XHU3MGM2XHU3MGM3XHU3MGM5XHU3MGNiXHU3MGNjXHU3MGNkXHU3MGNl'@; put 'XHU3MGNmXHU3MGQwXHU3MGQxXHU3MGQyXHU3MGQzXHU3MGQ0XHU3MGQ1XHU3MGQ2XHU3MGQ3XHU3MGRhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTU4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNThdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1OF1bbV1dPTQwNDQ4K20sRls0MDQ0'@; put 'OCttXT14WzE1OF1bbV0pO2Zvcih4WzE1OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzBkY1x1NzBkZFx1NzBkZVx1NzBlMFx1NzBlMVx1NzBlMlx1NzBlM1x1NzBlNVx1NzBlYVx1NzBlZVx1NzBmMFx1NzBmMVx1NzBmMlx1NzBm'@; put 'M1x1NzBmNFx1NzBmNVx1NzBmNlx1NzBmOFx1NzBmYVx1NzBmYlx1NzBmY1x1NzBmZVx1NzBmZlx1NzEwMFx1NzEwMVx1NzEwMlx1NzEwM1x1NzEwNFx1NzEwNVx1NzEwNlx1NzEwN1x1NzEwOFx1NzEwYlx1NzEwY1x1NzEwZFx1NzEwZVx1NzEwZlx1NzExMVx1NzExMlx1NzExNFx1NzExN1x1'@; put 'NzExYlx1NzExY1x1NzExZFx1NzExZVx1NzExZlx1NzEyMFx1NzEyMVx1NzEyMlx1NzEyM1x1NzEyNFx1NzEyNVx1NzEyN1x1NzEyOFx1NzEyOVx1NzEyYVx1NzEyYlx1NzEyY1x1NzEyZFx1NzEyZVx1NzEzMlx1NzEzM1x1NzEzNFx1ZmZmZFx1NzEzNVx1NzEzN1x1NzEzOFx1NzEzOVx1NzEz'@; put 'YVx1NzEzYlx1NzEzY1x1NzEzZFx1NzEzZVx1NzEzZlx1NzE0MFx1NzE0MVx1NzE0Mlx1NzE0M1x1NzE0NFx1NzE0Nlx1NzE0N1x1NzE0OFx1NzE0OVx1NzE0Ylx1NzE0ZFx1NzE0Zlx1NzE1MFx1NzE1MVx1NzE1Mlx1NzE1M1x1NzE1NFx1NzE1NVx1NzE1Nlx1NzE1N1x1NzE1OFx1NzE1OVx1'@; put 'NzE1YVx1NzE1Ylx1NzE1ZFx1NzE1Zlx1NzE2MFx1NzE2MVx1NzE2Mlx1NzE2M1x1NzE2NVx1NzE2OVx1NzE2YVx1NzE2Ylx1NzE2Y1x1NzE2ZFx1NzE2Zlx1NzE3MFx1NzE3MVx1NzE3NFx1NzE3NVx1NzE3Nlx1NzE3N1x1NzE3OVx1NzE3Ylx1NzE3Y1x1NzE3ZVx1NzE3Zlx1NzE4MFx1NzE4'@; put 'MVx1NzE4Mlx1NzE4M1x1NzE4NVx1NzE4Nlx1NzE4N1x1NzE4OFx1NzE4OVx1NzE4Ylx1NzE4Y1x1NzE4ZFx1NzE4ZVx1NzE5MFx1NzE5MVx1NzE5Mlx1NzE5M1x1NzE5NVx1NzE5Nlx1NzE5N1x1NzE5YVx1NzE5Ylx1NzE5Y1x1NzE5ZFx1NzE5ZVx1NzFhMVx1NzFhMlx1NzFhM1x1NzFhNFx1'@; put 'NzFhNVx1NzFhNlx1NzFhN1x1NzFhOVx1NzFhYVx1NzFhYlx1NzFhZFx1NzFhZVx1NzFhZlx1NzFiMFx1NzFiMVx1NzFiMlx1NzFiNFx1NzFiNlx1NzFiN1x1NzFiOFx1NzFiYVx1NzFiYlx1NzFiY1x1NzFiZFx1NzFiZVx1NzFiZlx1NzFjMFx1NzFjMVx1NzFjMlx1NzFjNFx1NzFjNVx1NzFj'@; put 'Nlx1NzFjN1x1NzFjOFx1NzFjOVx1NzFjYVx1NzFjYlx1NzFjY1x1NzFjZFx1NzFjZlx1NzFkMFx1NzFkMVx1NzFkMlx1NzFkM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1OV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTU5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTldW21dXT00'@; put 'MDcwNCttLEZbNDA3MDQrbV09eFsxNTldW21dKTtmb3IoeFsxNjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcxZDZcdTcxZDdcdTcxZDhcdTcxZDlcdTcxZGFcdTcxZGJcdTcxZGNcdTcxZGRcdTcxZGVcdTcxZGZcdTcxZTFcdTcx'@; put 'ZTJcdTcxZTNcdTcxZTRcdTcxZTZcdTcxZThcdTcxZTlcdTcxZWFcdTcxZWJcdTcxZWNcdTcxZWRcdTcxZWZcdTcxZjBcdTcxZjFcdTcxZjJcdTcxZjNcdTcxZjRcdTcxZjVcdTcxZjZcdTcxZjdcdTcxZjhcdTcxZmFcdTcxZmJcdTcxZmNcdTcxZmRcdTcxZmVcdTcxZmZcdTcyMDBcdTcyMDFc'@; put 'dTcyMDJcdTcyMDNcdTcyMDRcdTcyMDVcdTcyMDdcdTcyMDhcdTcyMDlcdTcyMGFcdTcyMGJcdTcyMGNcdTcyMGRcdTcyMGVcdTcyMGZcdTcyMTBcdTcyMTFcdTcyMTJcdTcyMTNcdTcyMTRcdTcyMTVcdTcyMTZcdTcyMTdcdTcyMThcdTcyMTlcdTcyMWFcdWZmZmRcdTcyMWJcdTcyMWNcdTcy'@; put 'MWVcdTcyMWZcdTcyMjBcdTcyMjFcdTcyMjJcdTcyMjNcdTcyMjRcdTcyMjVcdTcyMjZcdTcyMjdcdTcyMjlcdTcyMmJcdTcyMmRcdTcyMmVcdTcyMmZcdTcyMzJcdTcyMzNcdTcyMzRcdTcyM2FcdTcyM2NcdTcyM2VcdTcyNDBcdTcyNDFcdTcyNDJcdTcyNDNcdTcyNDRcdTcyNDVcdTcyNDZc'@; put 'dTcyNDlcdTcyNGFcdTcyNGJcdTcyNGVcdTcyNGZcdTcyNTBcdTcyNTFcdTcyNTNcdTcyNTRcdTcyNTVcdTcyNTdcdTcyNThcdTcyNWFcdTcyNWNcdTcyNWVcdTcyNjBcdTcyNjNcdTcyNjRcdTcyNjVcdTcyNjhcdTcyNmFcdTcyNmJcdTcyNmNcdTcyNmRcdTcyNzBcdTcyNzFcdTcyNzNcdTcy'@; put 'NzRcdTcyNzZcdTcyNzdcdTcyNzhcdTcyN2JcdTcyN2NcdTcyN2RcdTcyODJcdTcyODNcdTcyODVcdTcyODZcdTcyODdcdTcyODhcdTcyODlcdTcyOGNcdTcyOGVcdTcyOTBcdTcyOTFcdTcyOTNcdTcyOTRcdTcyOTVcdTcyOTZcdTcyOTdcdTcyOThcdTcyOTlcdTcyOWFcdTcyOWJcdTcyOWNc'@; put 'dTcyOWRcdTcyOWVcdTcyYTBcdTcyYTFcdTcyYTJcdTcyYTNcdTcyYTRcdTcyYTVcdTcyYTZcdTcyYTdcdTcyYThcdTcyYTlcdTcyYWFcdTcyYWJcdTcyYWVcdTcyYjFcdTcyYjJcdTcyYjNcdTcyYjVcdTcyYmFcdTcyYmJcdTcyYmNcdTcyYmRcdTcyYmVcdTcyYmZcdTcyYzBcdTcyYzVcdTcy'@; put 'YzZcdTcyYzdcdTcyYzlcdTcyY2FcdTcyY2JcdTcyY2NcdTcyY2ZcdTcyZDFcdTcyZDNcdTcyZDRcdTcyZDVcdTcyZDZcdTcyZDhcdTcyZGFcdTcyZGJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2MF1bbV0uY2hhckNvZGVBdCgwKSYmKGFl'@; put 'W3hbMTYwXVttXV09NDA5NjArbSxGWzQwOTYwK21dPXhbMTYwXVttXSk7Zm9yKHhbMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MDJjOVx1MDJjN1x4YThcdTMwMDNcdTMwMDVcdTIwMTRcdWZmNWVcdTIwMTZcdTIwMjZcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDhcdTMwMDlcdTMwMGFcdTMwMGJc'@; put 'dTMwMGNcdTMwMGRcdTMwMGVcdTMwMGZcdTMwMTZcdTMwMTdcdTMwMTBcdTMwMTFceGIxXHhkN1x4ZjdcdTIyMzZcdTIyMjdcdTIyMjhcdTIyMTFcdTIyMGZcdTIyMmFcdTIyMjlcdTIyMDhcdTIyMzdcdTIyMWFcdTIyYTVcdTIyMjVcdTIyMjBcdTIzMTJcdTIyOTlcdTIyMmJcdTIyMmVcdTIy'@; put 'NjFcdTIyNGNcdTIyNDhcdTIyM2RcdTIyMWRcdTIyNjBcdTIyNmVcdTIyNmZcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzVcdTIyMzRcdTI2NDJcdTI2NDBceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHVmZjA0XHhhNFx1ZmZlMFx1ZmZlMVx1MjAzMFx4YTdcdTIxMTZcdTI2MDZcdTI2MDVcdTI1Y2Jc'@; put 'dTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTIwM2JcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hb'@; put 'MTYxXVttXV09NDEyMTYrbSxGWzQxMjE2K21dPXhbMTYxXVttXSk7Zm9yKHhbMTYyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyNDg4XHUyNDg5XHUyNDhhXHUyNDhiXHUyNDhjXHUyNDhkXHUyNDhl'@; put 'XHUyNDhmXHUyNDkwXHUyNDkxXHUyNDkyXHUyNDkzXHUyNDk0XHUyNDk1XHUyNDk2XHUyNDk3XHUyNDk4XHUyNDk5XHUyNDlhXHUyNDliXHUyNDc0XHUyNDc1XHUyNDc2XHUyNDc3XHUyNDc4XHUyNDc5XHUyNDdhXHUyNDdiXHUyNDdjXHUyNDdkXHUyNDdlXHUyNDdmXHUyNDgwXHUyNDgxXHUy'@; put 'NDgyXHUyNDgzXHUyNDg0XHUyNDg1XHUyNDg2XHUyNDg3XHUyNDYwXHUyNDYxXHUyNDYyXHUyNDYzXHUyNDY0XHUyNDY1XHUyNDY2XHUyNDY3XHUyNDY4XHUyNDY5XHVmZmZkXHVmZmZkXHUzMjIwXHUzMjIxXHUzMjIyXHUzMjIzXHUzMjI0XHUzMjI1XHUzMjI2XHUzMjI3XHUzMjI4XHUzMjI5'@; put 'XHVmZmZkXHVmZmZkXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHUyMTZhXHUyMTZiXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTYyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjJdW21dLmNoYXJDb2Rl'@; put 'QXQoMCkmJihhZVt4WzE2Ml1bbV1dPTQxNDcyK20sRls0MTQ3MittXT14WzE2Ml1bbV0pO2Zvcih4WzE2M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmZlNVx1ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYx'@; put 'NVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1ZmYxOVx1ZmYxYVx1ZmYxYlx1ZmYxY1x1ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYyMFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1'@; put 'ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYzNFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1ZmYzY1x1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0'@; put 'Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTYz'@; put 'XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjNdW21dXT00MTcyOCttLEZbNDE3MjgrbV09eFsxNjNdW21dKTtmb3IoeFsxNjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJcdTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZcdTMwNTBcdTMwNTFcdTMwNTJcdTMw'@; put 'NTNcdTMwNTRcdTMwNTVcdTMwNTZcdTMwNTdcdTMwNThcdTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMwNjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMwNmJcdTMwNmNcdTMwNmRcdTMwNmVc'@; put 'dTMwNmZcdTMwNzBcdTMwNzFcdTMwNzJcdTMwNzNcdTMwNzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJcdTMwODNcdTMwODRcdTMwODVcdTMwODZcdTMwODdcdTMwODhcdTMwODlcdTMw'@; put 'OGFcdTMwOGJcdTMwOGNcdTMwOGRcdTMwOGVcdTMwOGZcdTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjRdLmxlbmd0aDsrK20p'@; put 'NjU1MzMhPT14WzE2NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTY0XVttXV09NDE5ODQrbSxGWzQxOTg0K21dPXhbMTY0XVttXSk7Zm9yKHhbMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMGExXHUzMGEyXHUzMGEzXHUzMGE0XHUzMGE1XHUzMGE2XHUzMGE3XHUzMGE4XHUzMGE5XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFkXHUzMGFlXHUzMGFmXHUzMGIwXHUz'@; put 'MGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUzMGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJiXHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJmXHUzMGMwXHUzMGMxXHUzMGMyXHUzMGMzXHUzMGM0XHUzMGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUzMGM5XHUzMGNhXHUzMGNiXHUzMGNj'@; put 'XHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQwXHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUzMGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUzMGRiXHUzMGRjXHUzMGRkXHUzMGRlXHUzMGRmXHUzMGUwXHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0XHUzMGU1XHUzMGU2XHUzMGU3XHUz'@; put 'MGU4XHUzMGU5XHUzMGVhXHUzMGViXHUzMGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYxXHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1XHUzMGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTY1'@; put 'XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2NV1bbV1dPTQyMjQwK20sRls0MjI0MCttXT14WzE2NV1bbV0pO2Zvcih4WzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1'@; put 'MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNi'@; put 'YVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmUzNVx1ZmUzNlx1ZmUzOVx1ZmUzYVx1ZmUzZlx1ZmU0MFx1'@; put 'ZmUzZFx1ZmUzZVx1ZmU0MVx1ZmU0Mlx1ZmU0M1x1ZmU0NFx1ZmZmZFx1ZmZmZFx1ZmUzYlx1ZmUzY1x1ZmUzN1x1ZmUzOFx1ZmUzMVx1ZmZmZFx1ZmUzM1x1ZmUzNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LG09MDttIT14WzE2Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTY2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjZdW21dXT00MjQ5NittLEZbNDI0OTYrbV09eFsxNjZdW21dKTtmb3IoeFsxNjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MDFcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFc'@; put 'dTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0NTFcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFc'@; put 'dTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjddLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2N11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTY3XVttXV09NDI3NTIrbSxGWzQyNzUyK21dPXhbMTY3XVttXSk7Zm9yKHhbMTY4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHUwMmNhXHUwMmNiXHUwMmQ5XHUyMDEzXHUyMDE1XHUyMDI1XHUyMDM1XHUyMTA1XHUyMTA5XHUyMTk2XHUyMTk3XHUyMTk4XHUyMTk5XHUyMjE1XHUyMjFmXHUyMjIzXHUyMjUyXHUyMjY2XHUyMjY3XHUyMmJmXHUyNTUwXHUyNTUxXHUyNTUyXHUyNTUzXHUy'@; put 'NTU0XHUyNTU1XHUyNTU2XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUyNTVjXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUyNTYyXHUyNTYzXHUyNTY0XHUyNTY1XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUyNTZiXHUyNTZjXHUyNTZkXHUyNTZlXHUyNTZm'@; put 'XHUyNTcwXHUyNTcxXHUyNTcyXHUyNTczXHUyNTgxXHUyNTgyXHUyNTgzXHUyNTg0XHUyNTg1XHUyNTg2XHUyNTg3XHVmZmZkXHUyNTg4XHUyNTg5XHUyNThhXHUyNThiXHUyNThjXHUyNThkXHUyNThlXHUyNThmXHUyNTkzXHUyNTk0XHUyNTk1XHUyNWJjXHUyNWJkXHUyNWUyXHUyNWUzXHUy'@; put 'NWU0XHUyNWU1XHUyNjA5XHUyMjk1XHUzMDEyXHUzMDFkXHUzMDFlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMTAxXHhlMVx1MDFjZVx4ZTBcdTAxMTNceGU5XHUwMTFiXHhlOFx1MDEyYlx4ZWRcdTAxZDBceGVj'@; put 'XHUwMTRkXHhmM1x1MDFkMlx4ZjJcdTAxNmJceGZhXHUwMWQ0XHhmOVx1MDFkNlx1MDFkOFx1MDFkYVx1MDFkY1x4ZmNceGVhXHUwMjUxXHVmZmZkXHUwMTQ0XHUwMTQ4XHVmZmZkXHUwMjYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMTA1XHUzMTA2XHUzMTA3XHUzMTA4XHUzMTA5XHUz'@; put 'MTBhXHUzMTBiXHUzMTBjXHUzMTBkXHUzMTBlXHUzMTBmXHUzMTEwXHUzMTExXHUzMTEyXHUzMTEzXHUzMTE0XHUzMTE1XHUzMTE2XHUzMTE3XHUzMTE4XHUzMTE5XHUzMTFhXHUzMTFiXHUzMTFjXHUzMTFkXHUzMTFlXHUzMTFmXHUzMTIwXHUzMTIxXHUzMTIyXHUzMTIzXHUzMTI0XHUzMTI1'@; put 'XHUzMTI2XHUzMTI3XHUzMTI4XHUzMTI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgi'@; put 'IiksbT0wO20hPXhbMTY4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2OF1bbV1dPTQzMDA4K20sRls0MzAwOCttXT14WzE2OF1bbV0pO2Zvcih4WzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1MzAyMVx1MzAyMlx1MzAyM1x1MzAyNFx1MzAyNVx1MzAyNlx1MzAyN1x1MzAyOFx1MzAyOVx1MzJhM1x1MzM4ZVx1MzM4Zlx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNhMVx1MzNjNFx1MzNjZVx1MzNkMVx1MzNkMlx1MzNkNVx1ZmUzMFx1ZmZlMlx1ZmZlNFx1ZmZmZFx1MjEyMVx1'@; put 'MzIzMVx1ZmZmZFx1MjAxMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBmY1x1MzA5Ylx1MzA5Y1x1MzBmZFx1MzBmZVx1MzAwNlx1MzA5ZFx1MzA5ZVx1ZmU0OVx1ZmU0YVx1ZmU0Ylx1ZmU0Y1x1ZmU0ZFx1ZmU0ZVx1ZmU0Zlx1ZmU1MFx1ZmU1MVx1ZmU1Mlx1ZmU1NFx1ZmU1NVx1ZmU1Nlx1ZmU1'@; put 'N1x1ZmU1OVx1ZmU1YVx1ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1ZmU1Zlx1ZmU2MFx1ZmU2MVx1ZmZmZFx1ZmU2Mlx1ZmU2M1x1ZmU2NFx1ZmU2NVx1ZmU2Nlx1ZmU2OFx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzAwN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1MjUwMVx1MjUwMlx1MjUwM1x1MjUwNFx1MjUwNVx1MjUwNlx1MjUwN1x1MjUw'@; put 'OFx1MjUwOVx1MjUwYVx1MjUwYlx1MjUwY1x1MjUwZFx1MjUwZVx1MjUwZlx1MjUxMFx1MjUxMVx1MjUxMlx1MjUxM1x1MjUxNFx1MjUxNVx1MjUxNlx1MjUxN1x1MjUxOFx1MjUxOVx1MjUxYVx1MjUxYlx1MjUxY1x1MjUxZFx1MjUxZVx1MjUxZlx1MjUyMFx1MjUyMVx1MjUyMlx1MjUyM1x1'@; put 'MjUyNFx1MjUyNVx1MjUyNlx1MjUyN1x1MjUyOFx1MjUyOVx1MjUyYVx1MjUyYlx1MjUyY1x1MjUyZFx1MjUyZVx1MjUyZlx1MjUzMFx1MjUzMVx1MjUzMlx1MjUzM1x1MjUzNFx1MjUzNVx1MjUzNlx1MjUzN1x1MjUzOFx1MjUzOVx1MjUzYVx1MjUzYlx1MjUzY1x1MjUzZFx1MjUzZVx1MjUz'@; put 'Zlx1MjU0MFx1MjU0MVx1MjU0Mlx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0N1x1MjU0OFx1MjU0OVx1MjU0YVx1MjU0Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2OV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTY5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjldW21dXT00MzI2NCttLEZbNDMyNjQrbV09eFsxNjldW21dKTtmb3IoeFsxNzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcyZGNcdTcyZGRcdTcyZGZcdTcyZTJcdTcyZTNcdTcyZTRcdTcyZTVcdTcyZTZcdTcyZTdcdTcyZWFcdTcyZWJcdTcyZjVcdTcyZjZcdTcyZjlcdTcyZmRcdTcyZmVcdTcyZmZcdTczMDBcdTczMDJcdTczMDRcdTczMDVcdTczMDZcdTczMDdcdTczMDhc'@; put 'dTczMDlcdTczMGJcdTczMGNcdTczMGRcdTczMGZcdTczMTBcdTczMTFcdTczMTJcdTczMTRcdTczMThcdTczMTlcdTczMWFcdTczMWZcdTczMjBcdTczMjNcdTczMjRcdTczMjZcdTczMjdcdTczMjhcdTczMmRcdTczMmZcdTczMzBcdTczMzJcdTczMzNcdTczMzVcdTczMzZcdTczM2FcdTcz'@; put 'M2JcdTczM2NcdTczM2RcdTczNDBcdTczNDFcdTczNDJcdTczNDNcdTczNDRcdTczNDVcdTczNDZcdTczNDdcdTczNDhcdWZmZmRcdTczNDlcdTczNGFcdTczNGJcdTczNGNcdTczNGVcdTczNGZcdTczNTFcdTczNTNcdTczNTRcdTczNTVcdTczNTZcdTczNThcdTczNTlcdTczNWFcdTczNWJc'@; put 'dTczNWNcdTczNWRcdTczNWVcdTczNWZcdTczNjFcdTczNjJcdTczNjNcdTczNjRcdTczNjVcdTczNjZcdTczNjdcdTczNjhcdTczNjlcdTczNmFcdTczNmJcdTczNmVcdTczNzBcdTczNzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3MF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTcwXVttXV09NDM1MjArbSxGWzQzNTIwK21dPXhbMTcwXVttXSk7Zm9yKHhbMTcxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MzcyXHU3MzczXHU3Mzc0XHU3Mzc1XHU3Mzc2XHU3Mzc3XHU3Mzc4XHU3Mzc5XHU3MzdhXHU3MzdiXHU3MzdjXHU3MzdkXHU3MzdmXHU3MzgwXHU3MzgxXHU3MzgyXHU3MzgzXHU3Mzg1XHU3Mzg2XHU3Mzg4XHU3MzhhXHU3Mzhj'@; put 'XHU3MzhkXHU3MzhmXHU3MzkwXHU3MzkyXHU3MzkzXHU3Mzk0XHU3Mzk1XHU3Mzk3XHU3Mzk4XHU3Mzk5XHU3MzlhXHU3MzljXHU3MzlkXHU3MzllXHU3M2EwXHU3M2ExXHU3M2EzXHU3M2E0XHU3M2E1XHU3M2E2XHU3M2E3XHU3M2E4XHU3M2FhXHU3M2FjXHU3M2FkXHU3M2IxXHU3M2I0XHU3'@; put 'M2I1XHU3M2I2XHU3M2I4XHU3M2I5XHU3M2JjXHU3M2JkXHU3M2JlXHU3M2JmXHU3M2MxXHU3M2MzXHU3M2M0XHU3M2M1XHU3M2M2XHU3M2M3XHVmZmZkXHU3M2NiXHU3M2NjXHU3M2NlXHU3M2QyXHU3M2QzXHU3M2Q0XHU3M2Q1XHU3M2Q2XHU3M2Q3XHU3M2Q4XHU3M2RhXHU3M2RiXHU3M2Rj'@; put 'XHU3M2RkXHU3M2RmXHU3M2UxXHU3M2UyXHU3M2UzXHU3M2U0XHU3M2U2XHU3M2U4XHU3M2VhXHU3M2ViXHU3M2VjXHU3M2VlXHU3M2VmXHU3M2YwXHU3M2YxXHU3M2YzXHU3M2Y0XHU3M2Y1XHU3M2Y2XHU3M2Y3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTcxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3MV1bbV1dPTQzNzc2K20sRls0Mzc3NittXT14WzE3MV1bbV0pO2Zvcih4WzE3Ml09Ilx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzNmOFx1NzNmOVx1NzNmYVx1NzNmYlx1NzNmY1x1NzNmZFx1NzNmZVx1NzNmZlx1NzQwMFx1NzQwMVx1NzQwMlx1NzQwNFx1NzQwN1x1NzQwOFx1NzQwYlx1NzQwY1x1NzQwZFx1NzQwZVx1NzQxMVx1NzQx'@; put 'Mlx1NzQxM1x1NzQxNFx1NzQxNVx1NzQxNlx1NzQxN1x1NzQxOFx1NzQxOVx1NzQxY1x1NzQxZFx1NzQxZVx1NzQxZlx1NzQyMFx1NzQyMVx1NzQyM1x1NzQyNFx1NzQyN1x1NzQyOVx1NzQyYlx1NzQyZFx1NzQyZlx1NzQzMVx1NzQzMlx1NzQzN1x1NzQzOFx1NzQzOVx1NzQzYVx1NzQzYlx1'@; put 'NzQzZFx1NzQzZVx1NzQzZlx1NzQ0MFx1NzQ0Mlx1NzQ0M1x1NzQ0NFx1NzQ0NVx1NzQ0Nlx1NzQ0N1x1NzQ0OFx1NzQ0OVx1NzQ0YVx1NzQ0Ylx1NzQ0Y1x1NzQ0ZFx1ZmZmZFx1NzQ0ZVx1NzQ0Zlx1NzQ1MFx1NzQ1MVx1NzQ1Mlx1NzQ1M1x1NzQ1NFx1NzQ1Nlx1NzQ1OFx1NzQ1ZFx1NzQ2'@; put 'MFx1NzQ2MVx1NzQ2Mlx1NzQ2M1x1NzQ2NFx1NzQ2NVx1NzQ2Nlx1NzQ2N1x1NzQ2OFx1NzQ2OVx1NzQ2YVx1NzQ2Ylx1NzQ2Y1x1NzQ2ZVx1NzQ2Zlx1NzQ3MVx1NzQ3Mlx1NzQ3M1x1NzQ3NFx1NzQ3NVx1NzQ3OFx1NzQ3OVx1NzQ3YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3Ml0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTcyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzJdW21dXT00NDAzMittLEZbNDQwMzIrbV09eFsxNzJdW21dKTtmb3IoeFsx'@; put 'NzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0N2JcdTc0N2NcdTc0N2RcdTc0N2ZcdTc0ODJcdTc0ODRcdTc0ODVcdTc0ODZcdTc0ODhcdTc0ODlcdTc0OGFcdTc0OGNcdTc0OGRcdTc0OGZcdTc0OTFcdTc0OTJcdTc0OTNcdTc0'@; put 'OTRcdTc0OTVcdTc0OTZcdTc0OTdcdTc0OThcdTc0OTlcdTc0OWFcdTc0OWJcdTc0OWRcdTc0OWZcdTc0YTBcdTc0YTFcdTc0YTJcdTc0YTNcdTc0YTRcdTc0YTVcdTc0YTZcdTc0YWFcdTc0YWJcdTc0YWNcdTc0YWRcdTc0YWVcdTc0YWZcdTc0YjBcdTc0YjFcdTc0YjJcdTc0YjNcdTc0YjRc'@; put 'dTc0YjVcdTc0YjZcdTc0YjdcdTc0YjhcdTc0YjlcdTc0YmJcdTc0YmNcdTc0YmRcdTc0YmVcdTc0YmZcdTc0YzBcdTc0YzFcdTc0YzJcdTc0YzNcdTc0YzRcdTc0YzVcdTc0YzZcdTc0YzdcdWZmZmRcdTc0YzhcdTc0YzlcdTc0Y2FcdTc0Y2JcdTc0Y2NcdTc0Y2RcdTc0Y2VcdTc0Y2ZcdTc0'@; put 'ZDBcdTc0ZDFcdTc0ZDNcdTc0ZDRcdTc0ZDVcdTc0ZDZcdTc0ZDdcdTc0ZDhcdTc0ZDlcdTc0ZGFcdTc0ZGJcdTc0ZGRcdTc0ZGZcdTc0ZTFcdTc0ZTVcdTc0ZTdcdTc0ZThcdTc0ZTlcdTc0ZWFcdTc0ZWJcdTc0ZWNcdTc0ZWRcdTc0ZjBcdTc0ZjFcdTc0ZjJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3M11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTczXVttXV09NDQyODgrbSxGWzQ0Mjg4K21dPXhbMTcz'@; put 'XVttXSk7Zm9yKHhbMTc0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGYzXHU3NGY1XHU3NGY4XHU3NGY5XHU3NGZhXHU3NGZiXHU3NGZjXHU3NGZkXHU3NGZlXHU3NTAwXHU3NTAxXHU3NTAyXHU3NTAzXHU3NTA1XHU3NTA2XHU3'@; put 'NTA3XHU3NTA4XHU3NTA5XHU3NTBhXHU3NTBiXHU3NTBjXHU3NTBlXHU3NTEwXHU3NTEyXHU3NTE0XHU3NTE1XHU3NTE2XHU3NTE3XHU3NTFiXHU3NTFkXHU3NTFlXHU3NTIwXHU3NTIxXHU3NTIyXHU3NTIzXHU3NTI0XHU3NTI2XHU3NTI3XHU3NTJhXHU3NTJlXHU3NTM0XHU3NTM2XHU3NTM5'@; put 'XHU3NTNjXHU3NTNkXHU3NTNmXHU3NTQxXHU3NTQyXHU3NTQzXHU3NTQ0XHU3NTQ2XHU3NTQ3XHU3NTQ5XHU3NTRhXHU3NTRkXHU3NTUwXHU3NTUxXHU3NTUyXHU3NTUzXHU3NTU1XHU3NTU2XHU3NTU3XHU3NTU4XHVmZmZkXHU3NTVkXHU3NTVlXHU3NTVmXHU3NTYwXHU3NTYxXHU3NTYyXHU3'@; put 'NTYzXHU3NTY0XHU3NTY3XHU3NTY4XHU3NTY5XHU3NTZiXHU3NTZjXHU3NTZkXHU3NTZlXHU3NTZmXHU3NTcwXHU3NTcxXHU3NTczXHU3NTc1XHU3NTc2XHU3NTc3XHU3NTdhXHU3NTdiXHU3NTdjXHU3NTdkXHU3NTdlXHU3NTgwXHU3NTgxXHU3NTgyXHU3NTg0XHU3NTg1XHU3NTg3XHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3NF1bbV1dPTQ0NTQ0K20sRls0'@; put 'NDU0NCttXT14WzE3NF1bbV0pO2Zvcih4WzE3NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzU4OFx1NzU4OVx1NzU4YVx1NzU4Y1x1NzU4ZFx1NzU4ZVx1NzU5MFx1NzU5M1x1NzU5NVx1NzU5OFx1NzU5Ylx1NzU5Y1x1NzU5ZVx1'@; put 'NzVhMlx1NzVhNlx1NzVhN1x1NzVhOFx1NzVhOVx1NzVhYVx1NzVhZFx1NzViNlx1NzViN1x1NzViYVx1NzViYlx1NzViZlx1NzVjMFx1NzVjMVx1NzVjNlx1NzVjYlx1NzVjY1x1NzVjZVx1NzVjZlx1NzVkMFx1NzVkMVx1NzVkM1x1NzVkN1x1NzVkOVx1NzVkYVx1NzVkY1x1NzVkZFx1NzVk'@; put 'Zlx1NzVlMFx1NzVlMVx1NzVlNVx1NzVlOVx1NzVlY1x1NzVlZFx1NzVlZVx1NzVlZlx1NzVmMlx1NzVmM1x1NzVmNVx1NzVmNlx1NzVmN1x1NzVmOFx1NzVmYVx1NzVmYlx1NzVmZFx1NzVmZVx1NzYwMlx1NzYwNFx1NzYwNlx1NzYwN1x1ZmZmZFx1NzYwOFx1NzYwOVx1NzYwYlx1NzYwZFx1'@; put 'NzYwZVx1NzYwZlx1NzYxMVx1NzYxMlx1NzYxM1x1NzYxNFx1NzYxNlx1NzYxYVx1NzYxY1x1NzYxZFx1NzYxZVx1NzYyMVx1NzYyM1x1NzYyN1x1NzYyOFx1NzYyY1x1NzYyZVx1NzYyZlx1NzYzMVx1NzYzMlx1NzYzNlx1NzYzN1x1NzYzOVx1NzYzYVx1NzYzYlx1NzYzZFx1NzY0MVx1NzY0'@; put 'Mlx1NzY0NFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3NV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTc1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzVdW21d'@; put 'XT00NDgwMCttLEZbNDQ4MDArbV09eFsxNzVdW21dKTtmb3IoeFsxNzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2NDVcdTc2NDZcdTc2NDdcdTc2NDhcdTc2NDlcdTc2NGFcdTc2NGJcdTc2NGVcdTc2NGZcdTc2NTBcdTc2NTFc'@; put 'dTc2NTJcdTc2NTNcdTc2NTVcdTc2NTdcdTc2NThcdTc2NTlcdTc2NWFcdTc2NWJcdTc2NWRcdTc2NWZcdTc2NjBcdTc2NjFcdTc2NjJcdTc2NjRcdTc2NjVcdTc2NjZcdTc2NjdcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NmNcdTc2NmRcdTc2NmVcdTc2NzBcdTc2NzFcdTc2NzJcdTc2NzNcdTc2'@; put 'NzRcdTc2NzVcdTc2NzZcdTc2NzdcdTc2NzlcdTc2N2FcdTc2N2NcdTc2N2ZcdTc2ODBcdTc2ODFcdTc2ODNcdTc2ODVcdTc2ODlcdTc2OGFcdTc2OGNcdTc2OGRcdTc2OGZcdTc2OTBcdTc2OTJcdTc2OTRcdTc2OTVcdTc2OTdcdTc2OThcdTc2OWFcdTc2OWJcdWZmZmRcdTc2OWNcdTc2OWRc'@; put 'dTc2OWVcdTc2OWZcdTc2YTBcdTc2YTFcdTc2YTJcdTc2YTNcdTc2YTVcdTc2YTZcdTc2YTdcdTc2YThcdTc2YTlcdTc2YWFcdTc2YWJcdTc2YWNcdTc2YWRcdTc2YWZcdTc2YjBcdTc2YjNcdTc2YjVcdTc2YjZcdTc2YjdcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YmJcdTc2YmNcdTc2YmRcdTc2'@; put 'YmVcdTc2YzBcdTc2YzFcdTc2YzNcdTU1NGFcdTk2M2ZcdTU3YzNcdTYzMjhcdTU0Y2VcdTU1MDlcdTU0YzBcdTc2OTFcdTc2NGNcdTg1M2NcdTc3ZWVcdTgyN2VcdTc4OGRcdTcyMzFcdTk2OThcdTk3OGRcdTZjMjhcdTViODlcdTRmZmFcdTYzMDlcdTY2OTdcdTVjYjhcdTgwZmFcdTY4NDhc'@; put 'dTgwYWVcdTY2MDJcdTc2Y2VcdTUxZjlcdTY1NTZcdTcxYWNcdTdmZjFcdTg4ODRcdTUwYjJcdTU5NjVcdTYxY2FcdTZmYjNcdTgyYWRcdTYzNGNcdTYyNTJcdTUzZWRcdTU0MjdcdTdiMDZcdTUxNmJcdTc1YTRcdTVkZjRcdTYyZDRcdThkY2JcdTk3NzZcdTYyOGFcdTgwMTlcdTU3NWRcdTk3'@; put 'MzhcdTdmNjJcdTcyMzhcdTc2N2RcdTY3Y2ZcdTc2N2VcdTY0NDZcdTRmNzBcdThkMjVcdTYyZGNcdTdhMTdcdTY1OTFcdTczZWRcdTY0MmNcdTYyNzNcdTgyMmNcdTk4ODFcdTY3N2ZcdTcyNDhcdTYyNmVcdTYyY2NcdTRmMzRcdTc0ZTNcdTUzNGFcdTUyOWVcdTdlY2FcdTkwYTZcdTVlMmVc'@; put 'dTY4ODZcdTY5OWNcdTgxODBcdTdlZDFcdTY4ZDJcdTc4YzVcdTg2OGNcdTk1NTFcdTUwOGRcdThjMjRcdTgyZGVcdTgwZGVcdTUzMDVcdTg5MTJcdTUyNjVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3Nl1bbV0uY2hhckNvZGVBdCgwKSYm'@; put 'KGFlW3hbMTc2XVttXV09NDUwNTYrbSxGWzQ1MDU2K21dPXhbMTc2XVttXSk7Zm9yKHhbMTc3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NmM0XHU3NmM3XHU3NmM5XHU3NmNiXHU3NmNjXHU3NmQzXHU3NmQ1XHU3NmQ5XHU3NmRh'@; put 'XHU3NmRjXHU3NmRkXHU3NmRlXHU3NmUwXHU3NmUxXHU3NmUyXHU3NmUzXHU3NmU0XHU3NmU2XHU3NmU3XHU3NmU4XHU3NmU5XHU3NmVhXHU3NmViXHU3NmVjXHU3NmVkXHU3NmYwXHU3NmYzXHU3NmY1XHU3NmY2XHU3NmY3XHU3NmZhXHU3NmZiXHU3NmZkXHU3NmZmXHU3NzAwXHU3NzAyXHU3'@; put 'NzAzXHU3NzA1XHU3NzA2XHU3NzBhXHU3NzBjXHU3NzBlXHU3NzBmXHU3NzEwXHU3NzExXHU3NzEyXHU3NzEzXHU3NzE0XHU3NzE1XHU3NzE2XHU3NzE3XHU3NzE4XHU3NzFiXHU3NzFjXHU3NzFkXHU3NzFlXHU3NzIxXHU3NzIzXHU3NzI0XHU3NzI1XHU3NzI3XHU3NzJhXHU3NzJiXHVmZmZk'@; put 'XHU3NzJjXHU3NzJlXHU3NzMwXHU3NzMxXHU3NzMyXHU3NzMzXHU3NzM0XHU3NzM5XHU3NzNiXHU3NzNkXHU3NzNlXHU3NzNmXHU3NzQyXHU3NzQ0XHU3NzQ1XHU3NzQ2XHU3NzQ4XHU3NzQ5XHU3NzRhXHU3NzRiXHU3NzRjXHU3NzRkXHU3NzRlXHU3NzRmXHU3NzUyXHU3NzUzXHU3NzU0XHU3'@; put 'NzU1XHU3NzU2XHU3NzU3XHU3NzU4XHU3NzU5XHU3NzVjXHU4NTg0XHU5NmY5XHU0ZmRkXHU1ODIxXHU5OTcxXHU1YjlkXHU2MmIxXHU2MmE1XHU2NmI0XHU4Yzc5XHU5YzhkXHU3MjA2XHU2NzZmXHU3ODkxXHU2MGIyXHU1MzUxXHU1MzE3XHU4Zjg4XHU4MGNjXHU4ZDFkXHU5NGExXHU1MDBk'@; put 'XHU3MmM4XHU1OTA3XHU2MGViXHU3MTE5XHU4OGFiXHU1OTU0XHU4MmVmXHU2NzJjXHU3YjI4XHU1ZDI5XHU3ZWY3XHU3NTJkXHU2Y2Y1XHU4ZTY2XHU4ZmY4XHU5MDNjXHU5ZjNiXHU2YmQ0XHU5MTE5XHU3YjE0XHU1ZjdjXHU3OGE3XHU4NGQ2XHU4NTNkXHU2YmQ1XHU2YmQ5XHU2YmQ2XHU1'@; put 'ZTAxXHU1ZTg3XHU3NWY5XHU5NWVkXHU2NTVkXHU1ZjBhXHU1ZmM1XHU4ZjlmXHU1OGMxXHU4MWMyXHU5MDdmXHU5NjViXHU5N2FkXHU4ZmI5XHU3ZjE2XHU4ZDJjXHU2MjQxXHU0ZmJmXHU1M2Q4XHU1MzVlXHU4ZmE4XHU4ZmE5XHU4ZmFiXHU5MDRkXHU2ODA3XHU1ZjZhXHU4MTk4XHU4ODY4'@; put 'XHU5Y2Q2XHU2MThiXHU1MjJiXHU3NjJhXHU1ZjZjXHU2NThjXHU2ZmQyXHU2ZWU4XHU1YmJlXHU2NDQ4XHU1MTc1XHU1MWIwXHU2N2M0XHU0ZTE5XHU3OWM5XHU5OTdjXHU3MGIzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzddW21dLmNo'@; put 'YXJDb2RlQXQoMCkmJihhZVt4WzE3N11bbV1dPTQ1MzEyK20sRls0NTMxMittXT14WzE3N11bbV0pO2Zvcih4WzE3OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzc1ZFx1Nzc1ZVx1Nzc1Zlx1Nzc2MFx1Nzc2NFx1Nzc2N1x1Nzc2'@; put 'OVx1Nzc2YVx1Nzc2ZFx1Nzc2ZVx1Nzc2Zlx1Nzc3MFx1Nzc3MVx1Nzc3Mlx1Nzc3M1x1Nzc3NFx1Nzc3NVx1Nzc3Nlx1Nzc3N1x1Nzc3OFx1Nzc3YVx1Nzc3Ylx1Nzc3Y1x1Nzc4MVx1Nzc4Mlx1Nzc4M1x1Nzc4Nlx1Nzc4N1x1Nzc4OFx1Nzc4OVx1Nzc4YVx1Nzc4Ylx1Nzc4Zlx1Nzc5MFx1'@; put 'Nzc5M1x1Nzc5NFx1Nzc5NVx1Nzc5Nlx1Nzc5N1x1Nzc5OFx1Nzc5OVx1Nzc5YVx1Nzc5Ylx1Nzc5Y1x1Nzc5ZFx1Nzc5ZVx1NzdhMVx1NzdhM1x1NzdhNFx1NzdhNlx1NzdhOFx1NzdhYlx1NzdhZFx1NzdhZVx1NzdhZlx1NzdiMVx1NzdiMlx1NzdiNFx1NzdiNlx1NzdiN1x1NzdiOFx1Nzdi'@; put 'OVx1NzdiYVx1ZmZmZFx1NzdiY1x1NzdiZVx1NzdjMFx1NzdjMVx1NzdjMlx1NzdjM1x1NzdjNFx1NzdjNVx1NzdjNlx1NzdjN1x1NzdjOFx1NzdjOVx1NzdjYVx1NzdjYlx1NzdjY1x1NzdjZVx1NzdjZlx1NzdkMFx1NzdkMVx1NzdkMlx1NzdkM1x1NzdkNFx1NzdkNVx1NzdkNlx1NzdkOFx1'@; put 'NzdkOVx1NzdkYVx1NzdkZFx1NzdkZVx1NzdkZlx1NzdlMFx1NzdlMVx1NzdlNFx1NzVjNVx1NWU3Nlx1NzNiYlx1ODNlMFx1NjRhZFx1NjJlOFx1OTRiNVx1NmNlMlx1NTM1YVx1NTJjM1x1NjQwZlx1OTRjMlx1N2I5NFx1NGYyZlx1NWUxYlx1ODIzNlx1ODExNlx1ODE4YVx1NmUyNFx1NmNj'@; put 'YVx1OWE3M1x1NjM1NVx1NTM1Y1x1NTRmYVx1ODg2NVx1NTdlMFx1NGUwZFx1NWUwM1x1NmI2NVx1N2MzZlx1OTBlOFx1NjAxNlx1NjRlNlx1NzMxY1x1ODhjMVx1Njc1MFx1NjI0ZFx1OGQyMlx1Nzc2Y1x1OGUyOVx1OTFjN1x1NWY2OVx1ODNkY1x1ODUyMVx1OTkxMFx1NTNjMlx1ODY5NVx1'@; put 'NmI4Ylx1NjBlZFx1NjBlOFx1NzA3Zlx1ODJjZFx1ODIzMVx1NGVkM1x1NmNhN1x1ODVjZlx1NjRjZFx1N2NkOVx1NjlmZFx1NjZmOVx1ODM0OVx1NTM5NVx1N2I1Nlx1NGZhN1x1NTE4Y1x1NmQ0Ylx1NWM0Mlx1OGU2ZFx1NjNkMlx1NTNjOVx1ODMyY1x1ODMzNlx1NjdlNVx1NzhiNFx1NjQz'@; put 'ZFx1NWJkZlx1NWM5NFx1NWRlZVx1OGJlN1x1NjJjNlx1NjdmNFx1OGM3YVx1NjQwMFx1NjNiYVx1ODc0OVx1OTk4Ylx1OGMxN1x1N2YyMFx1OTRmMlx1NGVhN1x1OTYxMFx1OThhNFx1NjYwY1x1NzMxNlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3OF0ubGVuZ3RoOysrbSk2NTUzMyE9'@; put 'PXhbMTc4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzhdW21dXT00NTU2OCttLEZbNDU1NjgrbV09eFsxNzhdW21dKTtmb3IoeFsxNzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3ZTZcdTc3ZThcdTc3ZWFcdTc3ZWZcdTc3'@; put 'ZjBcdTc3ZjFcdTc3ZjJcdTc3ZjRcdTc3ZjVcdTc3ZjdcdTc3ZjlcdTc3ZmFcdTc3ZmJcdTc3ZmNcdTc4MDNcdTc4MDRcdTc4MDVcdTc4MDZcdTc4MDdcdTc4MDhcdTc4MGFcdTc4MGJcdTc4MGVcdTc4MGZcdTc4MTBcdTc4MTNcdTc4MTVcdTc4MTlcdTc4MWJcdTc4MWVcdTc4MjBcdTc4MjFc'@; put 'dTc4MjJcdTc4MjRcdTc4MjhcdTc4MmFcdTc4MmJcdTc4MmVcdTc4MmZcdTc4MzFcdTc4MzJcdTc4MzNcdTc4MzVcdTc4MzZcdTc4M2RcdTc4M2ZcdTc4NDFcdTc4NDJcdTc4NDNcdTc4NDRcdTc4NDZcdTc4NDhcdTc4NDlcdTc4NGFcdTc4NGJcdTc4NGRcdTc4NGZcdTc4NTFcdTc4NTNcdTc4'@; put 'NTRcdTc4NThcdTc4NTlcdTc4NWFcdWZmZmRcdTc4NWJcdTc4NWNcdTc4NWVcdTc4NWZcdTc4NjBcdTc4NjFcdTc4NjJcdTc4NjNcdTc4NjRcdTc4NjVcdTc4NjZcdTc4NjdcdTc4NjhcdTc4NjlcdTc4NmZcdTc4NzBcdTc4NzFcdTc4NzJcdTc4NzNcdTc4NzRcdTc4NzVcdTc4NzZcdTc4Nzhc'@; put 'dTc4NzlcdTc4N2FcdTc4N2JcdTc4N2RcdTc4N2VcdTc4N2ZcdTc4ODBcdTc4ODFcdTc4ODJcdTc4ODNcdTU3M2FcdTVjMWRcdTVlMzhcdTk1N2ZcdTUwN2ZcdTgwYTBcdTUzODJcdTY1NWVcdTc1NDVcdTU1MzFcdTUwMjFcdThkODVcdTYyODRcdTk0OWVcdTY3MWRcdTU2MzJcdTZmNmVcdTVk'@; put 'ZTJcdTU0MzVcdTcwOTJcdThmNjZcdTYyNmZcdTY0YTRcdTYzYTNcdTVmN2JcdTZmODhcdTkwZjRcdTgxZTNcdThmYjBcdTVjMThcdTY2NjhcdTVmZjFcdTZjODlcdTk2NDhcdThkODFcdTg4NmNcdTY0OTFcdTc5ZjBcdTU3Y2VcdTZhNTlcdTYyMTBcdTU0NDhcdTRlNThcdTdhMGJcdTYwZTlc'@; put 'dTZmODRcdThiZGFcdTYyN2ZcdTkwMWVcdTlhOGJcdTc5ZTRcdTU0MDNcdTc1ZjRcdTYzMDFcdTUzMTlcdTZjNjBcdThmZGZcdTVmMWJcdTlhNzBcdTgwM2JcdTlmN2ZcdTRmODhcdTVjM2FcdThkNjRcdTdmYzVcdTY1YTVcdTcwYmRcdTUxNDVcdTUxYjJcdTg2NmJcdTVkMDdcdTViYTBcdTYy'@; put 'YmRcdTkxNmNcdTc1NzRcdThlMGNcdTdhMjBcdTYxMDFcdTdiNzlcdTRlYzdcdTdlZjhcdTc3ODVcdTRlMTFcdTgxZWRcdTUyMWRcdTUxZmFcdTZhNzFcdTUzYThcdThlODdcdTk1MDRcdTk2Y2ZcdTZlYzFcdTk2NjRcdTY5NWFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzldLmxlbmd0'@; put 'aDsrK20pNjU1MzMhPT14WzE3OV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTc5XVttXV09NDU4MjQrbSxGWzQ1ODI0K21dPXhbMTc5XVttXSk7Zm9yKHhbMTgwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ODg0XHU3ODg1XHU3'@; put 'ODg2XHU3ODg4XHU3ODhhXHU3ODhiXHU3ODhmXHU3ODkwXHU3ODkyXHU3ODk0XHU3ODk1XHU3ODk2XHU3ODk5XHU3ODlkXHU3ODllXHU3OGEwXHU3OGEyXHU3OGE0XHU3OGE2XHU3OGE4XHU3OGE5XHU3OGFhXHU3OGFiXHU3OGFjXHU3OGFkXHU3OGFlXHU3OGFmXHU3OGI1XHU3OGI2XHU3OGI3'@; put 'XHU3OGI4XHU3OGJhXHU3OGJiXHU3OGJjXHU3OGJkXHU3OGJmXHU3OGMwXHU3OGMyXHU3OGMzXHU3OGM0XHU3OGM2XHU3OGM3XHU3OGM4XHU3OGNjXHU3OGNkXHU3OGNlXHU3OGNmXHU3OGQxXHU3OGQyXHU3OGQzXHU3OGQ2XHU3OGQ3XHU3OGQ4XHU3OGRhXHU3OGRiXHU3OGRjXHU3OGRkXHU3'@; put 'OGRlXHU3OGRmXHU3OGUwXHU3OGUxXHU3OGUyXHU3OGUzXHVmZmZkXHU3OGU0XHU3OGU1XHU3OGU2XHU3OGU3XHU3OGU5XHU3OGVhXHU3OGViXHU3OGVkXHU3OGVlXHU3OGVmXHU3OGYwXHU3OGYxXHU3OGYzXHU3OGY1XHU3OGY2XHU3OGY4XHU3OGY5XHU3OGZiXHU3OGZjXHU3OGZkXHU3OGZl'@; put 'XHU3OGZmXHU3OTAwXHU3OTAyXHU3OTAzXHU3OTA0XHU3OTA2XHU3OTA3XHU3OTA4XHU3OTA5XHU3OTBhXHU3OTBiXHU3OTBjXHU3ODQwXHU1MGE4XHU3N2Q3XHU2NDEwXHU4OWU2XHU1OTA0XHU2M2UzXHU1ZGRkXHU3YTdmXHU2OTNkXHU0ZjIwXHU4MjM5XHU1NTk4XHU0ZTMyXHU3NWFlXHU3'@; put 'YTk3XHU1ZTYyXHU1ZThhXHU5NWVmXHU1MjFiXHU1NDM5XHU3MDhhXHU2Mzc2XHU5NTI0XHU1NzgyXHU2NjI1XHU2OTNmXHU5MTg3XHU1NTA3XHU2ZGYzXHU3ZWFmXHU4ODIyXHU2MjMzXHU3ZWYwXHU3NWI1XHU4MzI4XHU3OGMxXHU5NmNjXHU4ZjllXHU2MTQ4XHU3NGY3XHU4YmNkXHU2YjY0'@; put 'XHU1MjNhXHU4ZDUwXHU2YjIxXHU4MDZhXHU4NDcxXHU1NmYxXHU1MzA2XHU0ZWNlXHU0ZTFiXHU1MWQxXHU3Yzk3XHU5MThiXHU3YzA3XHU0ZmMzXHU4ZTdmXHU3YmUxXHU3YTljXHU2NDY3XHU1ZDE0XHU1MGFjXHU4MTA2XHU3NjAxXHU3Y2I5XHU2ZGVjXHU3ZmUwXHU2NzUxXHU1YjU4XHU1'@; put 'YmY4XHU3OGNiXHU2NGFlXHU2NDEzXHU2M2FhXHU2MzJiXHU5NTE5XHU2NDJkXHU4ZmJlXHU3YjU0XHU3NjI5XHU2MjUzXHU1OTI3XHU1NDQ2XHU2Yjc5XHU1MGEzXHU2MjM0XHU1ZTI2XHU2Yjg2XHU0ZWUzXHU4ZDM3XHU4ODhiXHU1Zjg1XHU5MDJlXHVmZmZkIi5zcGxpdCgiIiksbT0wO20h'@; put 'PXhbMTgwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4MF1bbV1dPTQ2MDgwK20sRls0NjA4MCttXT14WzE4MF1bbV0pO2Zvcih4WzE4MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'NzkwZFx1NzkwZVx1NzkwZlx1NzkxMFx1NzkxMVx1NzkxMlx1NzkxNFx1NzkxNVx1NzkxNlx1NzkxN1x1NzkxOFx1NzkxOVx1NzkxYVx1NzkxYlx1NzkxY1x1NzkxZFx1NzkxZlx1NzkyMFx1NzkyMVx1NzkyMlx1NzkyM1x1NzkyNVx1NzkyNlx1NzkyN1x1NzkyOFx1NzkyOVx1NzkyYVx1Nzky'@; put 'Ylx1NzkyY1x1NzkyZFx1NzkyZVx1NzkyZlx1NzkzMFx1NzkzMVx1NzkzMlx1NzkzM1x1NzkzNVx1NzkzNlx1NzkzN1x1NzkzOFx1NzkzOVx1NzkzZFx1NzkzZlx1Nzk0Mlx1Nzk0M1x1Nzk0NFx1Nzk0NVx1Nzk0N1x1Nzk0YVx1Nzk0Ylx1Nzk0Y1x1Nzk0ZFx1Nzk0ZVx1Nzk0Zlx1Nzk1MFx1'@; put 'Nzk1MVx1Nzk1Mlx1Nzk1NFx1Nzk1NVx1Nzk1OFx1Nzk1OVx1Nzk2MVx1Nzk2M1x1ZmZmZFx1Nzk2NFx1Nzk2Nlx1Nzk2OVx1Nzk2YVx1Nzk2Ylx1Nzk2Y1x1Nzk2ZVx1Nzk3MFx1Nzk3MVx1Nzk3Mlx1Nzk3M1x1Nzk3NFx1Nzk3NVx1Nzk3Nlx1Nzk3OVx1Nzk3Ylx1Nzk3Y1x1Nzk3ZFx1Nzk3'@; put 'ZVx1Nzk3Zlx1Nzk4Mlx1Nzk4M1x1Nzk4Nlx1Nzk4N1x1Nzk4OFx1Nzk4OVx1Nzk4Ylx1Nzk4Y1x1Nzk4ZFx1Nzk4ZVx1Nzk5MFx1Nzk5MVx1Nzk5Mlx1NjAyMFx1ODAzZFx1NjJjNVx1NGUzOVx1NTM1NVx1OTBmOFx1NjNiOFx1ODBjNlx1NjVlNlx1NmMyZVx1NGY0Nlx1NjBlZVx1NmRlMVx1'@; put 'OGJkZVx1NWYzOVx1ODZjYlx1NWY1M1x1NjMyMVx1NTE1YVx1ODM2MVx1Njg2M1x1NTIwMFx1NjM2M1x1OGU0OFx1NTAxMlx1NWM5Ylx1Nzk3N1x1NWJmY1x1NTIzMFx1N2EzYlx1NjBiY1x1OTA1M1x1NzZkN1x1NWZiN1x1NWY5N1x1NzY4NFx1OGU2Y1x1NzA2Zlx1NzY3Ylx1N2I0OVx1Nzdh'@; put 'YVx1NTFmM1x1OTA5M1x1NTgyNFx1NGY0ZVx1NmVmNFx1OGZlYVx1NjU0Y1x1N2IxYlx1NzJjNFx1NmRhNFx1N2ZkZlx1NWFlMVx1NjJiNVx1NWU5NVx1NTczMFx1ODQ4Mlx1N2IyY1x1NWUxZFx1NWYxZlx1OTAxMlx1N2YxNFx1OThhMFx1NjM4Mlx1NmVjN1x1Nzg5OFx1NzBiOVx1NTE3OFx1'@; put 'OTc1Ylx1NTdhYlx1NzUzNVx1NGY0M1x1NzUzOFx1NWU5N1x1NjBlNlx1NTk2MFx1NmRjMFx1NmJiZlx1Nzg4OVx1NTNmY1x1OTZkNVx1NTFjYlx1NTIwMVx1NjM4OVx1NTQwYVx1OTQ5M1x1OGMwM1x1OGRjY1x1NzIzOVx1Nzg5Zlx1ODc3Nlx1OGZlZFx1OGMwZFx1NTNlMFx1ZmZmZCIuc3Bs'@; put 'aXQoIiIpLG09MDttIT14WzE4MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTgxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODFdW21dXT00NjMzNittLEZbNDYzMzYrbV09eFsxODFdW21dKTtmb3IoeFsxODJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdTc5OTNcdTc5OTRcdTc5OTVcdTc5OTZcdTc5OTdcdTc5OThcdTc5OTlcdTc5OWJcdTc5OWNcdTc5OWRcdTc5OWVcdTc5OWZcdTc5YTBcdTc5YTFcdTc5YTJcdTc5YTNcdTc5YTRcdTc5YTVcdTc5YTZcdTc5YThcdTc5YTlcdTc5YWFcdTc5YWJcdTc5YWNcdTc5YWRcdTc5'@; put 'YWVcdTc5YWZcdTc5YjBcdTc5YjFcdTc5YjJcdTc5YjRcdTc5YjVcdTc5YjZcdTc5YjdcdTc5YjhcdTc5YmNcdTc5YmZcdTc5YzJcdTc5YzRcdTc5YzVcdTc5YzdcdTc5YzhcdTc5Y2FcdTc5Y2NcdTc5Y2VcdTc5Y2ZcdTc5ZDBcdTc5ZDNcdTc5ZDRcdTc5ZDZcdTc5ZDdcdTc5ZDlcdTc5ZGFc'@; put 'dTc5ZGJcdTc5ZGNcdTc5ZGRcdTc5ZGVcdTc5ZTBcdTc5ZTFcdTc5ZTJcdTc5ZTVcdTc5ZThcdTc5ZWFcdWZmZmRcdTc5ZWNcdTc5ZWVcdTc5ZjFcdTc5ZjJcdTc5ZjNcdTc5ZjRcdTc5ZjVcdTc5ZjZcdTc5ZjdcdTc5ZjlcdTc5ZmFcdTc5ZmNcdTc5ZmVcdTc5ZmZcdTdhMDFcdTdhMDRcdTdh'@; put 'MDVcdTdhMDdcdTdhMDhcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMGZcdTdhMTBcdTdhMTFcdTdhMTJcdTdhMTNcdTdhMTVcdTdhMTZcdTdhMThcdTdhMTlcdTdhMWJcdTdhMWNcdTRlMDFcdTc2ZWZcdTUzZWVcdTk0ODlcdTk4NzZcdTlmMGVcdTk1MmRcdTViOWFcdThiYTJcdTRlMjJcdTRlMWNc'@; put 'dTUxYWNcdTg0NjNcdTYxYzJcdTUyYThcdTY4MGJcdTRmOTdcdTYwNmJcdTUxYmJcdTZkMWVcdTUxNWNcdTYyOTZcdTY1OTdcdTk2NjFcdThjNDZcdTkwMTdcdTc1ZDhcdTkwZmRcdTc3NjNcdTZiZDJcdTcyOGFcdTcyZWNcdThiZmJcdTU4MzVcdTc3NzlcdThkNGNcdTY3NWNcdTk1NDBcdTgw'@; put 'OWFcdTVlYTZcdTZlMjFcdTU5OTJcdTdhZWZcdTc3ZWRcdTk1M2JcdTZiYjVcdTY1YWRcdTdmMGVcdTU4MDZcdTUxNTFcdTk2MWZcdTViZjlcdTU4YTlcdTU0MjhcdThlNzJcdTY1NjZcdTk4N2ZcdTU2ZTRcdTk0OWRcdTc2ZmVcdTkwNDFcdTYzODdcdTU0YzZcdTU5MWFcdTU5M2FcdTU3OWJc'@; put 'dThlYjJcdTY3MzVcdThkZmFcdTgyMzVcdTUyNDFcdTYwZjBcdTU4MTVcdTg2ZmVcdTVjZThcdTllNDVcdTRmYzRcdTk4OWRcdThiYjlcdTVhMjVcdTYwNzZcdTUzODRcdTYyN2NcdTkwNGZcdTkxMDJcdTk5N2ZcdTYwNjlcdTgwMGNcdTUxM2ZcdTgwMzNcdTVjMTRcdTk5NzVcdTZkMzFcdTRl'@; put 'OGNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTgyXVttXV09NDY1OTIrbSxGWzQ2NTkyK21dPXhbMTgyXVttXSk7Zm9yKHhbMTgzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTFkXHU3YTFmXHU3YTIxXHU3YTIyXHU3YTI0XHU3YTI1XHU3YTI2XHU3YTI3XHU3YTI4XHU3YTI5XHU3YTJhXHU3YTJiXHU3YTJjXHU3YTJkXHU3YTJlXHU3YTJmXHU3YTMwXHU3YTMxXHU3YTMyXHU3YTM0XHU3YTM1XHU3YTM2XHU3YTM4XHU3'@; put 'YTNhXHU3YTNlXHU3YTQwXHU3YTQxXHU3YTQyXHU3YTQzXHU3YTQ0XHU3YTQ1XHU3YTQ3XHU3YTQ4XHU3YTQ5XHU3YTRhXHU3YTRiXHU3YTRjXHU3YTRkXHU3YTRlXHU3YTRmXHU3YTUwXHU3YTUyXHU3YTUzXHU3YTU0XHU3YTU1XHU3YTU2XHU3YTU4XHU3YTU5XHU3YTVhXHU3YTViXHU3YTVj'@; put 'XHU3YTVkXHU3YTVlXHU3YTVmXHU3YTYwXHU3YTYxXHU3YTYyXHU3YTYzXHU3YTY0XHU3YTY1XHU3YTY2XHU3YTY3XHU3YTY4XHVmZmZkXHU3YTY5XHU3YTZhXHU3YTZiXHU3YTZjXHU3YTZkXHU3YTZlXHU3YTZmXHU3YTcxXHU3YTcyXHU3YTczXHU3YTc1XHU3YTdiXHU3YTdjXHU3YTdkXHU3'@; put 'YTdlXHU3YTgyXHU3YTg1XHU3YTg3XHU3YTg5XHU3YThhXHU3YThiXHU3YThjXHU3YThlXHU3YThmXHU3YTkwXHU3YTkzXHU3YTk0XHU3YTk5XHU3YTlhXHU3YTliXHU3YTllXHU3YWExXHU3YWEyXHU4ZDMwXHU1M2QxXHU3ZjVhXHU3YjRmXHU0ZjEwXHU0ZTRmXHU5NjAwXHU2Y2Q1XHU3M2Qw'@; put 'XHU4NWU5XHU1ZTA2XHU3NTZhXHU3ZmZiXHU2YTBhXHU3N2ZlXHU5NDkyXHU3ZTQxXHU1MWUxXHU3MGU2XHU1M2NkXHU4ZmQ0XHU4MzAzXHU4ZDI5XHU3MmFmXHU5OTZkXHU2Y2RiXHU1NzRhXHU4MmIzXHU2NWI5XHU4MGFhXHU2MjNmXHU5NjMyXHU1OWE4XHU0ZWZmXHU4YmJmXHU3ZWJhXHU2'@; put 'NTNlXHU4M2YyXHU5NzVlXHU1NTYxXHU5OGRlXHU4MGE1XHU1MzJhXHU4YmZkXHU1NDIwXHU4MGJhXHU1ZTlmXHU2Y2I4XHU4ZDM5XHU4MmFjXHU5MTVhXHU1NDI5XHU2YzFiXHU1MjA2XHU3ZWI3XHU1NzVmXHU3MTFhXHU2YzdlXHU3Yzg5XHU1OTRiXHU0ZWZkXHU1ZmZmXHU2MTI0XHU3Y2Fh'@; put 'XHU0ZTMwXHU1YzAxXHU2N2FiXHU4NzAyXHU1Y2YwXHU5NTBiXHU5OGNlXHU3NWFmXHU3MGZkXHU5MDIyXHU1MWFmXHU3ZjFkXHU4YmJkXHU1OTQ5XHU1MWU0XHU0ZjViXHU1NDI2XHU1OTJiXHU2NTc3XHU4MGE0XHU1Yjc1XHU2Mjc2XHU2MmMyXHU4ZjkwXHU1ZTQ1XHU2YzFmXHU3YjI2XHU0'@; put 'ZjBmXHU0ZmQ4XHU2NzBkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTgzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4M11bbV1dPTQ2ODQ4K20sRls0Njg0OCttXT14WzE4M11bbV0pO2Zvcih4WzE4NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2FhM1x1N2FhNFx1N2FhN1x1N2FhOVx1N2FhYVx1N2FhYlx1N2FhZVx1N2FhZlx1N2FiMFx1N2FiMVx1N2FiMlx1N2FiNFx1N2FiNVx1N2FiNlx1N2FiN1x1N2FiOFx1N2FiOVx1N2FiYVx1N2FiYlx1N2FiY1x1N2FiZFx1'@; put 'N2FiZVx1N2FjMFx1N2FjMVx1N2FjMlx1N2FjM1x1N2FjNFx1N2FjNVx1N2FjNlx1N2FjN1x1N2FjOFx1N2FjOVx1N2FjYVx1N2FjY1x1N2FjZFx1N2FjZVx1N2FjZlx1N2FkMFx1N2FkMVx1N2FkMlx1N2FkM1x1N2FkNFx1N2FkNVx1N2FkN1x1N2FkOFx1N2FkYVx1N2FkYlx1N2FkY1x1N2Fk'@; put 'ZFx1N2FlMVx1N2FlMlx1N2FlNFx1N2FlN1x1N2FlOFx1N2FlOVx1N2FlYVx1N2FlYlx1N2FlY1x1N2FlZVx1N2FmMFx1N2FmMVx1N2FmMlx1N2FmM1x1ZmZmZFx1N2FmNFx1N2FmNVx1N2FmNlx1N2FmN1x1N2FmOFx1N2FmYlx1N2FmY1x1N2FmZVx1N2IwMFx1N2IwMVx1N2IwMlx1N2IwNVx1'@; put 'N2IwN1x1N2IwOVx1N2IwY1x1N2IwZFx1N2IwZVx1N2IxMFx1N2IxMlx1N2IxM1x1N2IxNlx1N2IxN1x1N2IxOFx1N2IxYVx1N2IxY1x1N2IxZFx1N2IxZlx1N2IyMVx1N2IyMlx1N2IyM1x1N2IyN1x1N2IyOVx1N2IyZFx1NmQ2ZVx1NmRhYVx1Nzk4Zlx1ODhiMVx1NWYxN1x1NzUyYlx1NjI5'@; put 'YVx1OGY4NVx1NGZlZlx1OTFkY1x1NjVhN1x1ODEyZlx1ODE1MVx1NWU5Y1x1ODE1MFx1OGQ3NFx1NTI2Zlx1ODk4Nlx1OGQ0Ylx1NTkwZFx1NTA4NVx1NGVkOFx1OTYxY1x1NzIzNlx1ODE3OVx1OGQxZlx1NWJjY1x1OGJhM1x1OTY0NFx1NTk4N1x1N2YxYVx1NTQ5MFx1NTY3Nlx1NTYwZVx1'@; put 'OGJlNVx1NjUzOVx1Njk4Mlx1OTQ5OVx1NzZkNlx1NmU4OVx1NWU3Mlx1NzUxOFx1Njc0Nlx1NjdkMVx1N2FmZlx1ODA5ZFx1OGQ3Nlx1NjExZlx1NzljNlx1NjU2Mlx1OGQ2M1x1NTE4OFx1NTIxYVx1OTRhMlx1N2YzOFx1ODA5Ylx1N2ViMlx1NWM5N1x1NmUyZlx1Njc2MFx1N2JkOVx1NzY4'@; put 'Ylx1OWFkOFx1ODE4Zlx1N2Y5NFx1N2NkNVx1NjQxZVx1OTU1MFx1N2EzZlx1NTQ0YVx1NTRlNVx1NmI0Y1x1NjQwMVx1NjIwOFx1OWUzZFx1ODBmM1x1NzU5OVx1NTI3Mlx1OTc2OVx1ODQ1Ylx1NjgzY1x1ODZlNFx1OTYwMVx1OTY5NFx1OTRlY1x1NGUyYVx1NTQwNFx1N2VkOVx1NjgzOVx1'@; put 'OGRkZlx1ODAxNVx1NjZmNFx1NWU5YVx1N2ZiOVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4NF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTg0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODRdW21dXT00NzEwNCttLEZbNDcxMDQrbV09eFsxODRdW21dKTtmb3IoeFsxODVdPSJcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdiMmZcdTdiMzBcdTdiMzJcdTdiMzRcdTdiMzVcdTdiMzZcdTdiMzdcdTdiMzlcdTdiM2JcdTdiM2RcdTdiM2ZcdTdiNDBcdTdiNDFcdTdiNDJcdTdiNDNcdTdiNDRcdTdiNDZcdTdiNDhcdTdiNGFc'@; put 'dTdiNGRcdTdiNGVcdTdiNTNcdTdiNTVcdTdiNTdcdTdiNTlcdTdiNWNcdTdiNWVcdTdiNWZcdTdiNjFcdTdiNjNcdTdiNjRcdTdiNjVcdTdiNjZcdTdiNjdcdTdiNjhcdTdiNjlcdTdiNmFcdTdiNmJcdTdiNmNcdTdiNmRcdTdiNmZcdTdiNzBcdTdiNzNcdTdiNzRcdTdiNzZcdTdiNzhcdTdi'@; put 'N2FcdTdiN2NcdTdiN2RcdTdiN2ZcdTdiODFcdTdiODJcdTdiODNcdTdiODRcdTdiODZcdTdiODdcdTdiODhcdTdiODlcdTdiOGFcdTdiOGJcdTdiOGNcdTdiOGVcdTdiOGZcdWZmZmRcdTdiOTFcdTdiOTJcdTdiOTNcdTdiOTZcdTdiOThcdTdiOTlcdTdiOWFcdTdiOWJcdTdiOWVcdTdiOWZc'@; put 'dTdiYTBcdTdiYTNcdTdiYTRcdTdiYTVcdTdiYWVcdTdiYWZcdTdiYjBcdTdiYjJcdTdiYjNcdTdiYjVcdTdiYjZcdTdiYjdcdTdiYjlcdTdiYmFcdTdiYmJcdTdiYmNcdTdiYmRcdTdiYmVcdTdiYmZcdTdiYzBcdTdiYzJcdTdiYzNcdTdiYzRcdTU3YzJcdTgwM2ZcdTY4OTdcdTVkZTVcdTY1'@; put 'M2JcdTUyOWZcdTYwNmRcdTlmOWFcdTRmOWJcdThlYWNcdTUxNmNcdTViYWJcdTVmMTNcdTVkZTlcdTZjNWVcdTYyZjFcdThkMjFcdTUxNzFcdTk0YTlcdTUyZmVcdTZjOWZcdTgyZGZcdTcyZDdcdTU3YTJcdTY3ODRcdThkMmRcdTU5MWZcdThmOWNcdTgzYzdcdTU0OTVcdTdiOGRcdTRmMzBc'@; put 'dTZjYmRcdTViNjRcdTU5ZDFcdTlmMTNcdTUzZTRcdTg2Y2FcdTlhYThcdThjMzdcdTgwYTFcdTY1NDVcdTk4N2VcdTU2ZmFcdTk2YzdcdTUyMmVcdTc0ZGNcdTUyNTBcdTViZTFcdTYzMDJcdTg5MDJcdTRlNTZcdTYyZDBcdTYwMmFcdTY4ZmFcdTUxNzNcdTViOThcdTUxYTBcdTg5YzJcdTdi'@; put 'YTFcdTk5ODZcdTdmNTBcdTYwZWZcdTcwNGNcdThkMmZcdTUxNDlcdTVlN2ZcdTkwMWJcdTc0NzBcdTg5YzRcdTU3MmRcdTc4NDVcdTVmNTJcdTlmOWZcdTk1ZmFcdThmNjhcdTliM2NcdThiZTFcdTc2NzhcdTY4NDJcdTY3ZGNcdThkZWFcdThkMzVcdTUyM2RcdThmOGFcdTZlZGFcdTY4Y2Rc'@; put 'dTk1MDVcdTkwZWRcdTU2ZmRcdTY3OWNcdTg4ZjlcdThmYzdcdTU0YzhcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4NV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg1XVttXV09NDczNjArbSxGWzQ3MzYwK21dPXhbMTg1XVttXSk7Zm9y'@; put 'KHhbMTg2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YmM1XHU3YmM4XHU3YmM5XHU3YmNhXHU3YmNiXHU3YmNkXHU3YmNlXHU3YmNmXHU3YmQwXHU3YmQyXHU3YmQ0XHU3YmQ1XHU3YmQ2XHU3YmQ3XHU3YmQ4XHU3YmRiXHU3YmRj'@; put 'XHU3YmRlXHU3YmRmXHU3YmUwXHU3YmUyXHU3YmUzXHU3YmU0XHU3YmU3XHU3YmU4XHU3YmU5XHU3YmViXHU3YmVjXHU3YmVkXHU3YmVmXHU3YmYwXHU3YmYyXHU3YmYzXHU3YmY0XHU3YmY1XHU3YmY2XHU3YmY4XHU3YmY5XHU3YmZhXHU3YmZiXHU3YmZkXHU3YmZmXHU3YzAwXHU3YzAxXHU3'@; put 'YzAyXHU3YzAzXHU3YzA0XHU3YzA1XHU3YzA2XHU3YzA4XHU3YzA5XHU3YzBhXHU3YzBkXHU3YzBlXHU3YzEwXHU3YzExXHU3YzEyXHU3YzEzXHU3YzE0XHU3YzE1XHU3YzE3XHU3YzE4XHU3YzE5XHVmZmZkXHU3YzFhXHU3YzFiXHU3YzFjXHU3YzFkXHU3YzFlXHU3YzIwXHU3YzIxXHU3YzIy'@; put 'XHU3YzIzXHU3YzI0XHU3YzI1XHU3YzI4XHU3YzI5XHU3YzJiXHU3YzJjXHU3YzJkXHU3YzJlXHU3YzJmXHU3YzMwXHU3YzMxXHU3YzMyXHU3YzMzXHU3YzM0XHU3YzM1XHU3YzM2XHU3YzM3XHU3YzM5XHU3YzNhXHU3YzNiXHU3YzNjXHU3YzNkXHU3YzNlXHU3YzQyXHU5YWI4XHU1YjY5XHU2'@; put 'ZDc3XHU2YzI2XHU0ZWE1XHU1YmIzXHU5YTg3XHU5MTYzXHU2MWE4XHU5MGFmXHU5N2U5XHU1NDJiXHU2ZGI1XHU1YmQyXHU1MWZkXHU1NThhXHU3ZjU1XHU3ZmYwXHU2NGJjXHU2MzRkXHU2NWYxXHU2MWJlXHU2MDhkXHU3MTBhXHU2YzU3XHU2YzQ5XHU1OTJmXHU2NzZkXHU4MjJhXHU1OGQ1'@; put 'XHU1NjhlXHU4YzZhXHU2YmViXHU5MGRkXHU1OTdkXHU4MDE3XHU1M2Y3XHU2ZDY5XHU1NDc1XHU1NTlkXHU4Mzc3XHU4M2NmXHU2ODM4XHU3OWJlXHU1NDhjXHU0ZjU1XHU1NDA4XHU3NmQyXHU4Yzg5XHU5NjAyXHU2Y2IzXHU2ZGI4XHU4ZDZiXHU4OTEwXHU5ZTY0XHU4ZDNhXHU1NjNmXHU5'@; put 'ZWQxXHU3NWQ1XHU1Zjg4XHU3MmUwXHU2MDY4XHU1NGZjXHU0ZWE4XHU2YTJhXHU4ODYxXHU2MDUyXHU4ZjcwXHU1NGM0XHU3MGQ4XHU4Njc5XHU5ZTNmXHU2ZDJhXHU1YjhmXHU1ZjE4XHU3ZWEyXHU1NTg5XHU0ZmFmXHU3MzM0XHU1NDNjXHU1MzlhXHU1MDE5XHU1NDBlXHU1NDdjXHU0ZTRl'@; put 'XHU1ZmZkXHU3NDVhXHU1OGY2XHU4NDZiXHU4MGUxXHU4Nzc0XHU3MmQwXHU3Y2NhXHU2ZTU2XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTg2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4Nl1bbV1dPTQ3NjE2K20sRls0NzYxNittXT14'@; put 'WzE4Nl1bbV0pO2Zvcih4WzE4N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2M0M1x1N2M0NFx1N2M0NVx1N2M0Nlx1N2M0N1x1N2M0OFx1N2M0OVx1N2M0YVx1N2M0Ylx1N2M0Y1x1N2M0ZVx1N2M0Zlx1N2M1MFx1N2M1MVx1N2M1'@; put 'Mlx1N2M1M1x1N2M1NFx1N2M1NVx1N2M1Nlx1N2M1N1x1N2M1OFx1N2M1OVx1N2M1YVx1N2M1Ylx1N2M1Y1x1N2M1ZFx1N2M1ZVx1N2M1Zlx1N2M2MFx1N2M2MVx1N2M2Mlx1N2M2M1x1N2M2NFx1N2M2NVx1N2M2Nlx1N2M2N1x1N2M2OFx1N2M2OVx1N2M2YVx1N2M2Ylx1N2M2Y1x1N2M2ZFx1'@; put 'N2M2ZVx1N2M2Zlx1N2M3MFx1N2M3MVx1N2M3Mlx1N2M3NVx1N2M3Nlx1N2M3N1x1N2M3OFx1N2M3OVx1N2M3YVx1N2M3ZVx1N2M3Zlx1N2M4MFx1N2M4MVx1N2M4Mlx1N2M4M1x1N2M4NFx1N2M4NVx1N2M4Nlx1N2M4N1x1ZmZmZFx1N2M4OFx1N2M4YVx1N2M4Ylx1N2M4Y1x1N2M4ZFx1N2M4'@; put 'ZVx1N2M4Zlx1N2M5MFx1N2M5M1x1N2M5NFx1N2M5Nlx1N2M5OVx1N2M5YVx1N2M5Ylx1N2NhMFx1N2NhMVx1N2NhM1x1N2NhNlx1N2NhN1x1N2NhOFx1N2NhOVx1N2NhYlx1N2NhY1x1N2NhZFx1N2NhZlx1N2NiMFx1N2NiNFx1N2NiNVx1N2NiNlx1N2NiN1x1N2NiOFx1N2NiYVx1N2NiYlx1'@; put 'NWYyN1x1ODY0ZVx1NTUyY1x1NjJhNFx1NGU5Mlx1NmNhYVx1NjIzN1x1ODJiMVx1NTRkN1x1NTM0ZVx1NzMzZVx1NmVkMVx1NzUzYlx1NTIxMlx1NTMxNlx1OGJkZFx1NjlkMFx1NWY4YVx1NjAwMFx1NmRlZVx1NTc0Zlx1NmIyMlx1NzNhZlx1Njg1M1x1OGZkOFx1N2YxM1x1NjM2Mlx1NjBh'@; put 'M1x1NTUyNFx1NzVlYVx1OGM2Mlx1NzExNVx1NmRhM1x1NWJhNlx1NWU3Ylx1ODM1Mlx1NjE0Y1x1OWVjNFx1NzhmYVx1ODc1N1x1N2MyN1x1NzY4N1x1NTFmMFx1NjBmNlx1NzE0Y1x1NjY0M1x1NWU0Y1x1NjA0ZFx1OGMwZVx1NzA3MFx1NjMyNVx1OGY4OVx1NWZiZFx1NjA2Mlx1ODZkNFx1'@; put 'NTZkZVx1NmJjMVx1NjA5NFx1NjE2N1x1NTM0OVx1NjBlMFx1NjY2Nlx1OGQzZlx1NzlmZFx1NGYxYVx1NzBlOVx1NmM0N1x1OGJiM1x1OGJmMlx1N2VkOFx1ODM2NFx1NjYwZlx1NWE1YVx1OWI0Mlx1NmQ1MVx1NmRmN1x1OGM0MVx1NmQzYlx1NGYxOVx1NzA2Ylx1ODNiN1x1NjIxNlx1NjBk'@; put 'MVx1OTcwZFx1OGQyN1x1Nzk3OFx1NTFmYlx1NTczZVx1NTdmYVx1NjczYVx1NzU3OFx1N2EzZFx1NzllZlx1N2I5NVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTg3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODddW21dXT00Nzg3Mitt'@; put 'LEZbNDc4NzIrbV09eFsxODddW21dKTtmb3IoeFsxODhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjYmZcdTdjYzBcdTdjYzJcdTdjYzNcdTdjYzRcdTdjYzZcdTdjYzlcdTdjY2JcdTdjY2VcdTdjY2ZcdTdjZDBcdTdjZDFcdTdj'@; put 'ZDJcdTdjZDNcdTdjZDRcdTdjZDhcdTdjZGFcdTdjZGJcdTdjZGRcdTdjZGVcdTdjZTFcdTdjZTJcdTdjZTNcdTdjZTRcdTdjZTVcdTdjZTZcdTdjZTdcdTdjZTlcdTdjZWFcdTdjZWJcdTdjZWNcdTdjZWRcdTdjZWVcdTdjZjBcdTdjZjFcdTdjZjJcdTdjZjNcdTdjZjRcdTdjZjVcdTdjZjZc'@; put 'dTdjZjdcdTdjZjlcdTdjZmFcdTdjZmNcdTdjZmRcdTdjZmVcdTdjZmZcdTdkMDBcdTdkMDFcdTdkMDJcdTdkMDNcdTdkMDRcdTdkMDVcdTdkMDZcdTdkMDdcdTdkMDhcdTdkMDlcdTdkMGJcdTdkMGNcdTdkMGRcdTdkMGVcdTdkMGZcdTdkMTBcdWZmZmRcdTdkMTFcdTdkMTJcdTdkMTNcdTdk'@; put 'MTRcdTdkMTVcdTdkMTZcdTdkMTdcdTdkMThcdTdkMTlcdTdkMWFcdTdkMWJcdTdkMWNcdTdkMWRcdTdkMWVcdTdkMWZcdTdkMjFcdTdkMjNcdTdkMjRcdTdkMjVcdTdkMjZcdTdkMjhcdTdkMjlcdTdkMmFcdTdkMmNcdTdkMmRcdTdkMmVcdTdkMzBcdTdkMzFcdTdkMzJcdTdkMzNcdTdkMzRc'@; put 'dTdkMzVcdTdkMzZcdTgwOGNcdTk5NjVcdThmZjlcdTZmYzBcdThiYTVcdTllMjFcdTU5ZWNcdTdlZTlcdTdmMDlcdTU0MDlcdTY3ODFcdTY4ZDhcdThmOTFcdTdjNGRcdTk2YzZcdTUzY2FcdTYwMjVcdTc1YmVcdTZjNzJcdTUzNzNcdTVhYzlcdTdlYTdcdTYzMjRcdTUxZTBcdTgxMGFcdTVk'@; put 'ZjFcdTg0ZGZcdTYyODBcdTUxODBcdTViNjNcdTRmMGVcdTc5NmRcdTUyNDJcdTYwYjhcdTZkNGVcdTViYzRcdTViYzJcdThiYTFcdThiYjBcdTY1ZTJcdTVmY2NcdTk2NDVcdTU5OTNcdTdlZTdcdTdlYWFcdTU2MDlcdTY3YjdcdTU5MzlcdTRmNzNcdTViYjZcdTUyYTBcdTgzNWFcdTk4OGFc'@; put 'dThkM2VcdTc1MzJcdTk0YmVcdTUwNDdcdTdhM2NcdTRlZjdcdTY3YjZcdTlhN2VcdTVhYzFcdTZiN2NcdTc2ZDFcdTU3NWFcdTVjMTZcdTdiM2FcdTk1ZjRcdTcxNGVcdTUxN2NcdTgwYTlcdTgyNzBcdTU5NzhcdTdmMDRcdTgzMjdcdTY4YzBcdTY3ZWNcdTc4YjFcdTc4NzdcdTYyZTNcdTYz'@; put 'NjFcdTdiODBcdTRmZWRcdTUyNmFcdTUxY2ZcdTgzNTBcdTY5ZGJcdTkyNzRcdThkZjVcdThkMzFcdTg5YzFcdTk1MmVcdTdiYWRcdTRlZjZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4OF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg4'@; put 'XVttXV09NDgxMjgrbSxGWzQ4MTI4K21dPXhbMTg4XVttXSk7Zm9yKHhbMTg5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZDM3XHU3ZDM4XHU3ZDM5XHU3ZDNhXHU3ZDNiXHU3ZDNjXHU3ZDNkXHU3ZDNlXHU3ZDNmXHU3ZDQwXHU3'@; put 'ZDQxXHU3ZDQyXHU3ZDQzXHU3ZDQ0XHU3ZDQ1XHU3ZDQ2XHU3ZDQ3XHU3ZDQ4XHU3ZDQ5XHU3ZDRhXHU3ZDRiXHU3ZDRjXHU3ZDRkXHU3ZDRlXHU3ZDRmXHU3ZDUwXHU3ZDUxXHU3ZDUyXHU3ZDUzXHU3ZDU0XHU3ZDU1XHU3ZDU2XHU3ZDU3XHU3ZDU4XHU3ZDU5XHU3ZDVhXHU3ZDViXHU3ZDVj'@; put 'XHU3ZDVkXHU3ZDVlXHU3ZDVmXHU3ZDYwXHU3ZDYxXHU3ZDYyXHU3ZDYzXHU3ZDY0XHU3ZDY1XHU3ZDY2XHU3ZDY3XHU3ZDY4XHU3ZDY5XHU3ZDZhXHU3ZDZiXHU3ZDZjXHU3ZDZkXHU3ZDZmXHU3ZDcwXHU3ZDcxXHU3ZDcyXHU3ZDczXHU3ZDc0XHU3ZDc1XHU3ZDc2XHVmZmZkXHU3ZDc4XHU3'@; put 'ZDc5XHU3ZDdhXHU3ZDdiXHU3ZDdjXHU3ZDdkXHU3ZDdlXHU3ZDdmXHU3ZDgwXHU3ZDgxXHU3ZDgyXHU3ZDgzXHU3ZDg0XHU3ZDg1XHU3ZDg2XHU3ZDg3XHU3ZDg4XHU3ZDg5XHU3ZDhhXHU3ZDhiXHU3ZDhjXHU3ZDhkXHU3ZDhlXHU3ZDhmXHU3ZDkwXHU3ZDkxXHU3ZDkyXHU3ZDkzXHU3ZDk0'@; put 'XHU3ZDk1XHU3ZDk2XHU3ZDk3XHU3ZDk4XHU1MDY1XHU4MjMwXHU1MjUxXHU5OTZmXHU2ZTEwXHU2ZTg1XHU2ZGE3XHU1ZWZhXHU1MGY1XHU1OWRjXHU1YzA2XHU2ZDQ2XHU2YzVmXHU3NTg2XHU4NDhiXHU2ODY4XHU1OTU2XHU4YmIyXHU1MzIwXHU5MTcxXHU5NjRkXHU4NTQ5XHU2OTEyXHU3'@; put 'OTAxXHU3MTI2XHU4MGY2XHU0ZWE0XHU5MGNhXHU2ZDQ3XHU5YTg0XHU1YTA3XHU1NmJjXHU2NDA1XHU5NGYwXHU3N2ViXHU0ZmE1XHU4MTFhXHU3MmUxXHU4OWQyXHU5OTdhXHU3ZjM0XHU3ZWRlXHU1MjdmXHU2NTU5XHU5MTc1XHU4ZjdmXHU4ZjgzXHU1M2ViXHU3YTk2XHU2M2VkXHU2M2E1'@; put 'XHU3Njg2XHU3OWY4XHU4ODU3XHU5NjM2XHU2MjJhXHU1MmFiXHU4MjgyXHU2ODU0XHU2NzcwXHU2Mzc3XHU3NzZiXHU3YWVkXHU2ZDAxXHU3ZWQzXHU4OWUzXHU1OWQwXHU2MjEyXHU4NWM5XHU4MmE1XHU3NTRjXHU1MDFmXHU0ZWNiXHU3NWE1XHU4YmViXHU1YzRhXHU1ZGZlXHU3YjRiXHU2'@; put 'NWE0XHU5MWQxXHU0ZWNhXHU2ZDI1XHU4OTVmXHU3ZDI3XHU5NTI2XHU0ZWM1XHU4YzI4XHU4ZmRiXHU5NzczXHU2NjRiXHU3OTgxXHU4ZmQxXHU3MGVjXHU2ZDc4XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTg5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODldW21dLmNoYXJDb2RlQXQo'@; put 'MCkmJihhZVt4WzE4OV1bbV1dPTQ4Mzg0K20sRls0ODM4NCttXT14WzE4OV1bbV0pO2Zvcih4WzE5MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Q5OVx1N2Q5YVx1N2Q5Ylx1N2Q5Y1x1N2Q5ZFx1N2Q5ZVx1N2Q5Zlx1N2RhMFx1'@; put 'N2RhMVx1N2RhMlx1N2RhM1x1N2RhNFx1N2RhNVx1N2RhN1x1N2RhOFx1N2RhOVx1N2RhYVx1N2RhYlx1N2RhY1x1N2RhZFx1N2RhZlx1N2RiMFx1N2RiMVx1N2RiMlx1N2RiM1x1N2RiNFx1N2RiNVx1N2RiNlx1N2RiN1x1N2RiOFx1N2RiOVx1N2RiYVx1N2RiYlx1N2RiY1x1N2RiZFx1N2Ri'@; put 'ZVx1N2RiZlx1N2RjMFx1N2RjMVx1N2RjMlx1N2RjM1x1N2RjNFx1N2RjNVx1N2RjNlx1N2RjN1x1N2RjOFx1N2RjOVx1N2RjYVx1N2RjYlx1N2RjY1x1N2RjZFx1N2RjZVx1N2RjZlx1N2RkMFx1N2RkMVx1N2RkMlx1N2RkM1x1N2RkNFx1N2RkNVx1N2RkNlx1N2RkN1x1N2RkOFx1N2RkOVx1'@; put 'ZmZmZFx1N2RkYVx1N2RkYlx1N2RkY1x1N2RkZFx1N2RkZVx1N2RkZlx1N2RlMFx1N2RlMVx1N2RlMlx1N2RlM1x1N2RlNFx1N2RlNVx1N2RlNlx1N2RlN1x1N2RlOFx1N2RlOVx1N2RlYVx1N2RlYlx1N2RlY1x1N2RlZFx1N2RlZVx1N2RlZlx1N2RmMFx1N2RmMVx1N2RmMlx1N2RmM1x1N2Rm'@; put 'NFx1N2RmNVx1N2RmNlx1N2RmN1x1N2RmOFx1N2RmOVx1N2RmYVx1NWMzZFx1NTJiMlx1ODM0Nlx1NTE2Mlx1ODMwZVx1Nzc1Ylx1NjY3Nlx1OWNiOFx1NGVhY1x1NjBjYVx1N2NiZVx1N2NiM1x1N2VjZlx1NGU5NVx1OGI2Nlx1NjY2Zlx1OTg4OFx1OTc1OVx1NTg4M1x1NjU2Y1x1OTU1Y1x1'@; put 'NWY4NFx1NzVjOVx1OTc1Nlx1N2FkZlx1N2FkZVx1NTFjMFx1NzBhZlx1N2E5OFx1NjNlYVx1N2E3Nlx1N2VhMFx1NzM5Nlx1OTdlZFx1NGU0NVx1NzA3OFx1NGU1ZFx1OTE1Mlx1NTNhOVx1NjU1MVx1NjVlN1x1ODFmY1x1ODIwNVx1NTQ4ZVx1NWMzMVx1NzU5YVx1OTdhMFx1NjJkOFx1NzJk'@; put 'OVx1NzViZFx1NWM0NVx1OWE3OVx1ODNjYVx1NWM0MFx1NTQ4MFx1NzdlOVx1NGUzZVx1NmNhZVx1ODA1YVx1NjJkMlx1NjM2ZVx1NWRlOFx1NTE3N1x1OGRkZFx1OGUxZVx1OTUyZlx1NGZmMVx1NTNlNVx1NjBlN1x1NzBhY1x1NTI2N1x1NjM1MFx1OWU0M1x1NWExZlx1NTAyNlx1NzczN1x1'@; put 'NTM3N1x1N2VlMlx1NjQ4NVx1NjUyYlx1NjI4OVx1NjM5OFx1NTAxNFx1NzIzNVx1ODljOVx1NTFiM1x1OGJjMFx1N2VkZFx1NTc0N1x1ODNjY1x1OTRhN1x1NTE5Ylx1NTQxYlx1NWNmYlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTkwXVtt'@; put 'XS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTBdW21dXT00ODY0MCttLEZbNDg2NDArbV09eFsxOTBdW21dKTtmb3IoeFsxOTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdkZmJcdTdkZmNcdTdkZmRcdTdkZmVcdTdkZmZcdTdlMDBc'@; put 'dTdlMDFcdTdlMDJcdTdlMDNcdTdlMDRcdTdlMDVcdTdlMDZcdTdlMDdcdTdlMDhcdTdlMDlcdTdlMGFcdTdlMGJcdTdlMGNcdTdlMGRcdTdlMGVcdTdlMGZcdTdlMTBcdTdlMTFcdTdlMTJcdTdlMTNcdTdlMTRcdTdlMTVcdTdlMTZcdTdlMTdcdTdlMThcdTdlMTlcdTdlMWFcdTdlMWJcdTdl'@; put 'MWNcdTdlMWRcdTdlMWVcdTdlMWZcdTdlMjBcdTdlMjFcdTdlMjJcdTdlMjNcdTdlMjRcdTdlMjVcdTdlMjZcdTdlMjdcdTdlMjhcdTdlMjlcdTdlMmFcdTdlMmJcdTdlMmNcdTdlMmRcdTdlMmVcdTdlMmZcdTdlMzBcdTdlMzFcdTdlMzJcdTdlMzNcdTdlMzRcdTdlMzVcdTdlMzZcdTdlMzdc'@; put 'dTdlMzhcdTdlMzlcdWZmZmRcdTdlM2FcdTdlM2NcdTdlM2RcdTdlM2VcdTdlM2ZcdTdlNDBcdTdlNDJcdTdlNDNcdTdlNDRcdTdlNDVcdTdlNDZcdTdlNDhcdTdlNDlcdTdlNGFcdTdlNGJcdTdlNGNcdTdlNGRcdTdlNGVcdTdlNGZcdTdlNTBcdTdlNTFcdTdlNTJcdTdlNTNcdTdlNTRcdTdl'@; put 'NTVcdTdlNTZcdTdlNTdcdTdlNThcdTdlNTlcdTdlNWFcdTdlNWJcdTdlNWNcdTdlNWRcdTRmY2FcdTdhZTNcdTZkNWFcdTkwZTFcdTlhOGZcdTU1ODBcdTU0OTZcdTUzNjFcdTU0YWZcdTVmMDBcdTYzZTlcdTY5NzdcdTUxZWZcdTYxNjhcdTUyMGFcdTU4MmFcdTUyZDhcdTU3NGVcdTc4MGRc'@; put 'dTc3MGJcdTVlYjdcdTYxNzdcdTdjZTBcdTYyNWJcdTYyOTdcdTRlYTJcdTcwOTVcdTgwMDNcdTYyZjdcdTcwZTRcdTk3NjBcdTU3NzdcdTgyZGJcdTY3ZWZcdTY4ZjVcdTc4ZDVcdTk4OTdcdTc5ZDFcdTU4ZjNcdTU0YjNcdTUzZWZcdTZlMzRcdTUxNGJcdTUyM2JcdTViYTJcdThiZmVcdTgw'@; put 'YWZcdTU1NDNcdTU3YTZcdTYwNzNcdTU3NTFcdTU0MmRcdTdhN2FcdTYwNTBcdTViNTRcdTYzYTdcdTYyYTBcdTUzZTNcdTYyNjNcdTViYzdcdTY3YWZcdTU0ZWRcdTdhOWZcdTgyZTZcdTkxNzdcdTVlOTNcdTg4ZTRcdTU5MzhcdTU3YWVcdTYzMGVcdThkZThcdTgwZWZcdTU3NTdcdTdiNzdc'@; put 'dTRmYTlcdTVmZWJcdTViYmRcdTZiM2VcdTUzMjFcdTdiNTBcdTcyYzJcdTY4NDZcdTc3ZmZcdTc3MzZcdTY1ZjdcdTUxYjVcdTRlOGZcdTc2ZDRcdTVjYmZcdTdhYTVcdTg0NzVcdTU5NGVcdTliNDFcdTUwODBcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTFdLmxlbmd0aDsrK20pNjU1'@; put 'MzMhPT14WzE5MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTkxXVttXV09NDg4OTYrbSxGWzQ4ODk2K21dPXhbMTkxXVttXSk7Zm9yKHhbMTkyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTVlXHU3ZTVmXHU3ZTYwXHU3ZTYx'@; put 'XHU3ZTYyXHU3ZTYzXHU3ZTY0XHU3ZTY1XHU3ZTY2XHU3ZTY3XHU3ZTY4XHU3ZTY5XHU3ZTZhXHU3ZTZiXHU3ZTZjXHU3ZTZkXHU3ZTZlXHU3ZTZmXHU3ZTcwXHU3ZTcxXHU3ZTcyXHU3ZTczXHU3ZTc0XHU3ZTc1XHU3ZTc2XHU3ZTc3XHU3ZTc4XHU3ZTc5XHU3ZTdhXHU3ZTdiXHU3ZTdjXHU3'@; put 'ZTdkXHU3ZTdlXHU3ZTdmXHU3ZTgwXHU3ZTgxXHU3ZTgzXHU3ZTg0XHU3ZTg1XHU3ZTg2XHU3ZTg3XHU3ZTg4XHU3ZTg5XHU3ZThhXHU3ZThiXHU3ZThjXHU3ZThkXHU3ZThlXHU3ZThmXHU3ZTkwXHU3ZTkxXHU3ZTkyXHU3ZTkzXHU3ZTk0XHU3ZTk1XHU3ZTk2XHU3ZTk3XHU3ZTk4XHU3ZTk5'@; put 'XHU3ZTlhXHU3ZTljXHU3ZTlkXHU3ZTllXHVmZmZkXHU3ZWFlXHU3ZWI0XHU3ZWJiXHU3ZWJjXHU3ZWQ2XHU3ZWU0XHU3ZWVjXHU3ZWY5XHU3ZjBhXHU3ZjEwXHU3ZjFlXHU3ZjM3XHU3ZjM5XHU3ZjNiXHU3ZjNjXHU3ZjNkXHU3ZjNlXHU3ZjNmXHU3ZjQwXHU3ZjQxXHU3ZjQzXHU3ZjQ2XHU3'@; put 'ZjQ3XHU3ZjQ4XHU3ZjQ5XHU3ZjRhXHU3ZjRiXHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3ZjRmXHU3ZjUyXHU3ZjUzXHU5OTg4XHU2MTI3XHU2ZTgzXHU1NzY0XHU2NjA2XHU2MzQ2XHU1NmYwXHU2MmVjXHU2MjY5XHU1ZWQzXHU5NjE0XHU1NzgzXHU2MmM5XHU1NTg3XHU4NzIxXHU4MTRhXHU4ZmEz'@; put 'XHU1NTY2XHU4M2IxXHU2NzY1XHU4ZDU2XHU4NGRkXHU1YTZhXHU2ODBmXHU2MmU2XHU3YmVlXHU5NjExXHU1MTcwXHU2ZjljXHU4YzMwXHU2M2ZkXHU4OWM4XHU2MWQyXHU3ZjA2XHU3MGMyXHU2ZWU1XHU3NDA1XHU2OTk0XHU3MmZjXHU1ZWNhXHU5MGNlXHU2NzE3XHU2ZDZhXHU2MzVlXHU1'@; put 'MmIzXHU3MjYyXHU4MDAxXHU0ZjZjXHU1OWU1XHU5MTZhXHU3MGQ5XHU2ZDlkXHU1MmQyXHU0ZTUwXHU5NmY3XHU5NTZkXHU4NTdlXHU3OGNhXHU3ZDJmXHU1MTIxXHU1NzkyXHU2NGMyXHU4MDhiXHU3YzdiXHU2Y2VhXHU2OGYxXHU2OTVlXHU1MWI3XHU1Mzk4XHU2OGE4XHU3MjgxXHU5ZWNl'@; put 'XHU3YmYxXHU3MmY4XHU3OWJiXHU2ZjEzXHU3NDA2XHU2NzRlXHU5MWNjXHU5Y2E0XHU3OTNjXHU4Mzg5XHU4MzU0XHU1NDBmXHU2ODE3XHU0ZTNkXHU1Mzg5XHU1MmIxXHU3ODNlXHU1Mzg2XHU1MjI5XHU1MDg4XHU0ZjhiXHU0ZmQwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTkyXS5s'@; put 'ZW5ndGg7KyttKTY1NTMzIT09eFsxOTJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5Ml1bbV1dPTQ5MTUyK20sRls0OTE1MittXT14WzE5Ml1bbV0pO2Zvcih4WzE5M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Y1Nlx1N2Y1'@; put 'OVx1N2Y1Ylx1N2Y1Y1x1N2Y1ZFx1N2Y1ZVx1N2Y2MFx1N2Y2M1x1N2Y2NFx1N2Y2NVx1N2Y2Nlx1N2Y2N1x1N2Y2Ylx1N2Y2Y1x1N2Y2ZFx1N2Y2Zlx1N2Y3MFx1N2Y3M1x1N2Y3NVx1N2Y3Nlx1N2Y3N1x1N2Y3OFx1N2Y3YVx1N2Y3Ylx1N2Y3Y1x1N2Y3ZFx1N2Y3Zlx1N2Y4MFx1N2Y4Mlx1'@; put 'N2Y4M1x1N2Y4NFx1N2Y4NVx1N2Y4Nlx1N2Y4N1x1N2Y4OFx1N2Y4OVx1N2Y4Ylx1N2Y4ZFx1N2Y4Zlx1N2Y5MFx1N2Y5MVx1N2Y5Mlx1N2Y5M1x1N2Y5NVx1N2Y5Nlx1N2Y5N1x1N2Y5OFx1N2Y5OVx1N2Y5Ylx1N2Y5Y1x1N2ZhMFx1N2ZhMlx1N2ZhM1x1N2ZhNVx1N2ZhNlx1N2ZhOFx1N2Zh'@; put 'OVx1N2ZhYVx1N2ZhYlx1N2ZhY1x1N2ZhZFx1N2ZhZVx1N2ZiMVx1ZmZmZFx1N2ZiM1x1N2ZiNFx1N2ZiNVx1N2ZiNlx1N2ZiN1x1N2ZiYVx1N2ZiYlx1N2ZiZVx1N2ZjMFx1N2ZjMlx1N2ZjM1x1N2ZjNFx1N2ZjNlx1N2ZjN1x1N2ZjOFx1N2ZjOVx1N2ZjYlx1N2ZjZFx1N2ZjZlx1N2ZkMFx1'@; put 'N2ZkMVx1N2ZkMlx1N2ZkM1x1N2ZkNlx1N2ZkN1x1N2ZkOVx1N2ZkYVx1N2ZkYlx1N2ZkY1x1N2ZkZFx1N2ZkZVx1N2ZlMlx1N2ZlM1x1NzVlMlx1N2FjYlx1N2M5Mlx1NmNhNVx1OTZiNlx1NTI5Ylx1NzQ4M1x1NTRlOVx1NGZlOVx1ODA1NFx1ODNiMlx1OGZkZVx1OTU3MFx1NWVjOVx1NjAx'@; put 'Y1x1NmQ5Zlx1NWUxOFx1NjU1Ylx1ODEzOFx1OTRmZVx1NjA0Ylx1NzBiY1x1N2VjM1x1N2NhZVx1NTFjOVx1Njg4MVx1N2NiMVx1ODI2Zlx1NGUyNFx1OGY4Nlx1OTFjZlx1NjY3ZVx1NGVhZVx1OGMwNVx1NjRhOVx1ODA0YVx1NTBkYVx1NzU5N1x1NzFjZVx1NWJlNVx1OGZiZFx1NmY2Nlx1'@; put 'NGU4Nlx1NjQ4Mlx1OTU2M1x1NWVkNlx1NjU5OVx1NTIxN1x1ODhjMlx1NzBjOFx1NTJhM1x1NzMwZVx1NzQzM1x1Njc5N1x1NzhmN1x1OTcxNlx1NGUzNFx1OTBiYlx1OWNkZVx1NmRjYlx1NTFkYlx1OGQ0MVx1NTQxZFx1NjJjZVx1NzNiMlx1ODNmMVx1OTZmNlx1OWY4NFx1OTRjM1x1NGYz'@; put 'Nlx1N2Y5YVx1NTFjY1x1NzA3NVx1OTY3NVx1NWNhZFx1OTg4Nlx1NTNlNlx1NGVlNFx1NmU5Y1x1NzQwOVx1NjliNFx1Nzg2Ylx1OTk4Zlx1NzU1OVx1NTIxOFx1NzYyNFx1NmQ0MVx1NjdmM1x1NTE2ZFx1OWY5OVx1ODA0Ylx1NTQ5OVx1N2IzY1x1N2FiZlx1ZmZmZCIuc3BsaXQoIiIpLG09'@; put 'MDttIT14WzE5M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTkzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTNdW21dXT00OTQwOCttLEZbNDk0MDgrbV09eFsxOTNdW21dKTtmb3IoeFsxOTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdTdmZTRcdTdmZTdcdTdmZThcdTdmZWFcdTdmZWJcdTdmZWNcdTdmZWRcdTdmZWZcdTdmZjJcdTdmZjRcdTdmZjVcdTdmZjZcdTdmZjdcdTdmZjhcdTdmZjlcdTdmZmFcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDJcdTgwMDdcdTgwMDhcdTgwMDlcdTgwMGFcdTgwMGVcdTgwMGZcdTgwMTFc'@; put 'dTgwMTNcdTgwMWFcdTgwMWJcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjFcdTgwMjNcdTgwMjRcdTgwMmJcdTgwMmNcdTgwMmRcdTgwMmVcdTgwMmZcdTgwMzBcdTgwMzJcdTgwMzRcdTgwMzlcdTgwM2FcdTgwM2NcdTgwM2VcdTgwNDBcdTgwNDFcdTgwNDRcdTgwNDVcdTgwNDdcdTgwNDhcdTgw'@; put 'NDlcdTgwNGVcdTgwNGZcdTgwNTBcdTgwNTFcdTgwNTNcdTgwNTVcdTgwNTZcdTgwNTdcdWZmZmRcdTgwNTlcdTgwNWJcdTgwNWNcdTgwNWRcdTgwNWVcdTgwNWZcdTgwNjBcdTgwNjFcdTgwNjJcdTgwNjNcdTgwNjRcdTgwNjVcdTgwNjZcdTgwNjdcdTgwNjhcdTgwNmJcdTgwNmNcdTgwNmRc'@; put 'dTgwNmVcdTgwNmZcdTgwNzBcdTgwNzJcdTgwNzNcdTgwNzRcdTgwNzVcdTgwNzZcdTgwNzdcdTgwNzhcdTgwNzlcdTgwN2FcdTgwN2JcdTgwN2NcdTgwN2RcdTk2ODZcdTU3ODRcdTYyZTJcdTk2NDdcdTY5N2NcdTVhMDRcdTY0MDJcdTdiZDNcdTZmMGZcdTk2NGJcdTgyYTZcdTUzNjJcdTk4'@; put 'ODVcdTVlOTBcdTcwODlcdTYzYjNcdTUzNjRcdTg2NGZcdTljODFcdTllOTNcdTc4OGNcdTk3MzJcdThkZWZcdThkNDJcdTllN2ZcdTZmNWVcdTc5ODRcdTVmNTVcdTk2NDZcdTYyMmVcdTlhNzRcdTU0MTVcdTk0ZGRcdTRmYTNcdTY1YzVcdTVjNjVcdTVjNjFcdTdmMTVcdTg2NTFcdTZjMmZc'@; put 'dTVmOGJcdTczODdcdTZlZTRcdTdlZmZcdTVjZTZcdTYzMWJcdTViNmFcdTZlZTZcdTUzNzVcdTRlNzFcdTYzYTBcdTc1NjVcdTYyYTFcdThmNmVcdTRmMjZcdTRlZDFcdTZjYTZcdTdlYjZcdThiYmFcdTg0MWRcdTg3YmFcdTdmNTdcdTkwM2JcdTk1MjNcdTdiYTlcdTlhYTFcdTg4ZjhcdTg0'@; put 'M2RcdTZkMWJcdTlhODZcdTdlZGNcdTU5ODhcdTllYmJcdTczOWJcdTc4MDFcdTg2ODJcdTlhNmNcdTlhODJcdTU2MWJcdTU0MTdcdTU3Y2JcdTRlNzBcdTllYTZcdTUzNTZcdThmYzhcdTgxMDlcdTc3OTJcdTk5OTJcdTg2ZWVcdTZlZTFcdTg1MTNcdTY2ZmNcdTYxNjJcdTZmMmJcdWZmZmQi'@; put 'LnNwbGl0KCIiKSxtPTA7bSE9eFsxOTRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTk0XVttXV09NDk2NjQrbSxGWzQ5NjY0K21dPXhbMTk0XVttXSk7Zm9yKHhbMTk1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHU4MDdlXHU4MDgxXHU4MDgyXHU4MDg1XHU4MDg4XHU4MDhhXHU4MDhkXHU4MDhlXHU4MDhmXHU4MDkwXHU4MDkxXHU4MDkyXHU4MDk0XHU4MDk1XHU4MDk3XHU4MDk5XHU4MDllXHU4MGEzXHU4MGE2XHU4MGE3XHU4MGE4XHU4MGFjXHU4MGIwXHU4MGIzXHU4MGI1'@; put 'XHU4MGI2XHU4MGI4XHU4MGI5XHU4MGJiXHU4MGM1XHU4MGM3XHU4MGM4XHU4MGM5XHU4MGNhXHU4MGNiXHU4MGNmXHU4MGQwXHU4MGQxXHU4MGQyXHU4MGQzXHU4MGQ0XHU4MGQ1XHU4MGQ4XHU4MGRmXHU4MGUwXHU4MGUyXHU4MGUzXHU4MGU2XHU4MGVlXHU4MGY1XHU4MGY3XHU4MGY5XHU4'@; put 'MGZiXHU4MGZlXHU4MGZmXHU4MTAwXHU4MTAxXHU4MTAzXHU4MTA0XHU4MTA1XHU4MTA3XHU4MTA4XHU4MTBiXHVmZmZkXHU4MTBjXHU4MTE1XHU4MTE3XHU4MTE5XHU4MTFiXHU4MTFjXHU4MTFkXHU4MTFmXHU4MTIwXHU4MTIxXHU4MTIyXHU4MTIzXHU4MTI0XHU4MTI1XHU4MTI2XHU4MTI3'@; put 'XHU4MTI4XHU4MTI5XHU4MTJhXHU4MTJiXHU4MTJkXHU4MTJlXHU4MTMwXHU4MTMzXHU4MTM0XHU4MTM1XHU4MTM3XHU4MTM5XHU4MTNhXHU4MTNiXHU4MTNjXHU4MTNkXHU4MTNmXHU4YzI5XHU4MjkyXHU4MzJiXHU3NmYyXHU2YzEzXHU1ZmQ5XHU4M2JkXHU3MzJiXHU4MzA1XHU5NTFhXHU2'@; put 'YmRiXHU3N2RiXHU5NGM2XHU1MzZmXHU4MzAyXHU1MTkyXHU1ZTNkXHU4YzhjXHU4ZDM4XHU0ZTQ4XHU3M2FiXHU2NzlhXHU2ODg1XHU5MTc2XHU5NzA5XHU3MTY0XHU2Y2ExXHU3NzA5XHU1YTkyXHU5NTQxXHU2YmNmXHU3ZjhlXHU2NjI3XHU1YmQwXHU1OWI5XHU1YTlhXHU5NWU4XHU5NWY3'@; put 'XHU0ZWVjXHU4NDBjXHU4NDk5XHU2YWFjXHU3NmRmXHU5NTMwXHU3MzFiXHU2OGE2XHU1YjVmXHU3NzJmXHU5MTlhXHU5NzYxXHU3Y2RjXHU4ZmY3XHU4YzFjXHU1ZjI1XHU3YzczXHU3OWQ4XHU4OWM1XHU2Y2NjXHU4NzFjXHU1YmM2XHU1ZTQyXHU2OGM5XHU3NzIwXHU3ZWY1XHU1MTk1XHU1'@; put 'MTRkXHU1MmM5XHU1YTI5XHU3ZjA1XHU5NzYyXHU4MmQ3XHU2M2NmXHU3Nzg0XHU4NWQwXHU3OWQyXHU2ZTNhXHU1ZTk5XHU1OTk5XHU4NTExXHU3MDZkXHU2YzExXHU2MmJmXHU3NmJmXHU2NTRmXHU2MGFmXHU5NWZkXHU2NjBlXHU4NzlmXHU5ZTIzXHU5NGVkXHU1NDBkXHU1NDdkXHU4YzJj'@; put 'XHU2NDc4XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTk1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5NV1bbV1dPTQ5OTIwK20sRls0OTkyMCttXT14WzE5NV1bbV0pO2Zvcih4WzE5Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE0MFx1ODE0MVx1ODE0Mlx1ODE0M1x1ODE0NFx1ODE0NVx1ODE0N1x1ODE0OVx1ODE0ZFx1ODE0ZVx1ODE0Zlx1ODE1Mlx1ODE1Nlx1ODE1N1x1ODE1OFx1ODE1Ylx1ODE1Y1x1ODE1ZFx1ODE1ZVx1ODE1Zlx1ODE2MVx1ODE2Mlx1ODE2'@; put 'M1x1ODE2NFx1ODE2Nlx1ODE2OFx1ODE2YVx1ODE2Ylx1ODE2Y1x1ODE2Zlx1ODE3Mlx1ODE3M1x1ODE3NVx1ODE3Nlx1ODE3N1x1ODE3OFx1ODE4MVx1ODE4M1x1ODE4NFx1ODE4NVx1ODE4Nlx1ODE4N1x1ODE4OVx1ODE4Ylx1ODE4Y1x1ODE4ZFx1ODE4ZVx1ODE5MFx1ODE5Mlx1ODE5M1x1'@; put 'ODE5NFx1ODE5NVx1ODE5Nlx1ODE5N1x1ODE5OVx1ODE5YVx1ODE5ZVx1ODE5Zlx1ODFhMFx1ODFhMVx1ODFhMlx1ODFhNFx1ODFhNVx1ZmZmZFx1ODFhN1x1ODFhOVx1ODFhYlx1ODFhY1x1ODFhZFx1ODFhZVx1ODFhZlx1ODFiMFx1ODFiMVx1ODFiMlx1ODFiNFx1ODFiNVx1ODFiNlx1ODFi'@; put 'N1x1ODFiOFx1ODFiOVx1ODFiY1x1ODFiZFx1ODFiZVx1ODFiZlx1ODFjNFx1ODFjNVx1ODFjN1x1ODFjOFx1ODFjOVx1ODFjYlx1ODFjZFx1ODFjZVx1ODFjZlx1ODFkMFx1ODFkMVx1ODFkMlx1ODFkM1x1NjQ3OVx1ODYxMVx1NmEyMVx1ODE5Y1x1NzhlOFx1NjQ2OVx1OWI1NFx1NjJiOVx1'@; put 'NjcyYlx1ODNhYlx1NThhOFx1OWVkOFx1NmNhYlx1NmYyMFx1NWJkZVx1OTY0Y1x1OGMwYlx1NzI1Zlx1NjdkMFx1NjJjN1x1NzI2MVx1NGVhOVx1NTljNlx1NmJjZFx1NTg5M1x1NjZhZVx1NWU1NVx1NTJkZlx1NjE1NVx1NjcyOFx1NzZlZVx1Nzc2Nlx1NzI2N1x1N2E0Nlx1NjJmZlx1NTRl'@; put 'YVx1NTQ1MFx1OTRhMFx1OTBhM1x1NWExY1x1N2ViM1x1NmMxNlx1NGU0M1x1NTk3Nlx1ODAxMFx1NTk0OFx1NTM1N1x1NzUzN1x1OTZiZVx1NTZjYVx1NjMyMFx1ODExMVx1NjA3Y1x1OTVmOVx1NmRkNlx1NTQ2Mlx1OTk4MVx1NTE4NVx1NWFlOVx1ODBmZFx1NTlhZVx1OTcxM1x1NTAyYVx1'@; put 'NmNlNVx1NWMzY1x1NjJkZlx1NGY2MFx1NTMzZlx1ODE3Ylx1OTAwNlx1NmViYVx1ODUyYlx1NjJjOFx1NWU3NFx1NzhiZVx1NjRiNVx1NjM3Ylx1NWZmNVx1NWExOFx1OTE3Zlx1OWUxZlx1NWMzZlx1NjM0Zlx1ODA0Mlx1NWI3ZFx1NTU2ZVx1OTU0YVx1OTU0ZFx1NmQ4NVx1NjBhOFx1Njdl'@; put 'MFx1NzJkZVx1NTFkZFx1NWI4MVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTk2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTZdW21dXT01MDE3NittLEZbNTAxNzYrbV09eFsxOTZdW21dKTtmb3IoeFsxOTddPSJcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgxZDRcdTgxZDVcdTgxZDZcdTgxZDdcdTgxZDhcdTgxZDlcdTgxZGFcdTgxZGJcdTgxZGNcdTgxZGRcdTgxZGVcdTgxZGZcdTgxZTBcdTgxZTFcdTgxZTJcdTgxZTRcdTgxZTVcdTgxZTZcdTgxZThcdTgxZTlcdTgx'@; put 'ZWJcdTgxZWVcdTgxZWZcdTgxZjBcdTgxZjFcdTgxZjJcdTgxZjVcdTgxZjZcdTgxZjdcdTgxZjhcdTgxZjlcdTgxZmFcdTgxZmRcdTgxZmZcdTgyMDNcdTgyMDdcdTgyMDhcdTgyMDlcdTgyMGFcdTgyMGJcdTgyMGVcdTgyMGZcdTgyMTFcdTgyMTNcdTgyMTVcdTgyMTZcdTgyMTdcdTgyMThc'@; put 'dTgyMTlcdTgyMWFcdTgyMWRcdTgyMjBcdTgyMjRcdTgyMjVcdTgyMjZcdTgyMjdcdTgyMjlcdTgyMmVcdTgyMzJcdTgyM2FcdTgyM2NcdTgyM2RcdTgyM2ZcdWZmZmRcdTgyNDBcdTgyNDFcdTgyNDJcdTgyNDNcdTgyNDVcdTgyNDZcdTgyNDhcdTgyNGFcdTgyNGNcdTgyNGRcdTgyNGVcdTgy'@; put 'NTBcdTgyNTFcdTgyNTJcdTgyNTNcdTgyNTRcdTgyNTVcdTgyNTZcdTgyNTdcdTgyNTlcdTgyNWJcdTgyNWNcdTgyNWRcdTgyNWVcdTgyNjBcdTgyNjFcdTgyNjJcdTgyNjNcdTgyNjRcdTgyNjVcdTgyNjZcdTgyNjdcdTgyNjlcdTYyZTdcdTZjZGVcdTcyNWJcdTYyNmRcdTk0YWVcdTdlYmRc'@; put 'dTgxMTNcdTZkNTNcdTUxOWNcdTVmMDRcdTU5NzRcdTUyYWFcdTYwMTJcdTU5NzNcdTY2OTZcdTg2NTBcdTc1OWZcdTYzMmFcdTYxZTZcdTdjZWZcdThiZmFcdTU0ZTZcdTZiMjdcdTllMjVcdTZiYjRcdTg1ZDVcdTU0NTVcdTUwNzZcdTZjYTRcdTU1NmFcdThkYjRcdTcyMmNcdTVlMTVcdTYw'@; put 'MTVcdTc0MzZcdTYyY2RcdTYzOTJcdTcyNGNcdTVmOThcdTZlNDNcdTZkM2VcdTY1MDBcdTZmNThcdTc2ZDhcdTc4ZDBcdTc2ZmNcdTc1NTRcdTUyMjRcdTUzZGJcdTRlNTNcdTVlOWVcdTY1YzFcdTgwMmFcdTgwZDZcdTYyOWJcdTU0ODZcdTUyMjhcdTcwYWVcdTg4OGRcdThkZDFcdTZjZTFc'@; put 'dTU0NzhcdTgwZGFcdTU3ZjlcdTg4ZjRcdThkNTRcdTk2NmFcdTkxNGRcdTRmNjlcdTZjOWJcdTU1YjdcdTc2YzZcdTc4MzBcdTYyYThcdTcwZjlcdTZmOGVcdTVmNmRcdTg0ZWNcdTY4ZGFcdTc4N2NcdTdiZjdcdTgxYThcdTY3MGJcdTllNGZcdTYzNjdcdTc4YjBcdTU3NmZcdTc4MTJcdTk3'@; put 'MzlcdTYyNzlcdTYyYWJcdTUyODhcdTc0MzVcdTZiZDdcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTddLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5N11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTk3XVttXV09NTA0MzIrbSxGWzUwNDMyK21dPXhbMTk3XVttXSk7Zm9yKHhbMTk4XT0i'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MjZhXHU4MjZiXHU4MjZjXHU4MjZkXHU4MjcxXHU4Mjc1XHU4Mjc2XHU4Mjc3XHU4Mjc4XHU4MjdiXHU4MjdjXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg1XHU4Mjg2XHU4Mjg3XHU4Mjg5XHU4'@; put 'MjhjXHU4MjkwXHU4MjkzXHU4Mjk0XHU4Mjk1XHU4Mjk2XHU4MjlhXHU4MjliXHU4MjllXHU4MmEwXHU4MmEyXHU4MmEzXHU4MmE3XHU4MmIyXHU4MmI1XHU4MmI2XHU4MmJhXHU4MmJiXHU4MmJjXHU4MmJmXHU4MmMwXHU4MmMyXHU4MmMzXHU4MmM1XHU4MmM2XHU4MmM5XHU4MmQwXHU4MmQ2'@; put 'XHU4MmQ5XHU4MmRhXHU4MmRkXHU4MmUyXHU4MmU3XHU4MmU4XHU4MmU5XHU4MmVhXHU4MmVjXHU4MmVkXHU4MmVlXHU4MmYwXHU4MmYyXHU4MmYzXHU4MmY1XHU4MmY2XHU4MmY4XHVmZmZkXHU4MmZhXHU4MmZjXHU4MmZkXHU4MmZlXHU4MmZmXHU4MzAwXHU4MzBhXHU4MzBiXHU4MzBkXHU4'@; put 'MzEwXHU4MzEyXHU4MzEzXHU4MzE2XHU4MzE4XHU4MzE5XHU4MzFkXHU4MzFlXHU4MzFmXHU4MzIwXHU4MzIxXHU4MzIyXHU4MzIzXHU4MzI0XHU4MzI1XHU4MzI2XHU4MzI5XHU4MzJhXHU4MzJlXHU4MzMwXHU4MzMyXHU4MzM3XHU4MzNiXHU4MzNkXHU1NTY0XHU4MTNlXHU3NWIyXHU3NmFl'@; put 'XHU1MzM5XHU3NWRlXHU1MGZiXHU1YzQxXHU4YjZjXHU3YmM3XHU1MDRmXHU3MjQ3XHU5YTk3XHU5OGQ4XHU2ZjAyXHU3NGUyXHU3OTY4XHU2NDg3XHU3N2E1XHU2MmZjXHU5ODkxXHU4ZDJiXHU1NGMxXHU4MDU4XHU0ZTUyXHU1NzZhXHU4MmY5XHU4NDBkXHU1ZTczXHU1MWVkXHU3NGY2XHU4'@; put 'YmM0XHU1YzRmXHU1NzYxXHU2Y2ZjXHU5ODg3XHU1YTQ2XHU3ODM0XHU5YjQ0XHU4ZmViXHU3Yzk1XHU1MjU2XHU2MjUxXHU5NGZhXHU0ZWM2XHU4Mzg2XHU4NDYxXHU4M2U5XHU4NGIyXHU1N2Q0XHU2NzM0XHU1NzAzXHU2NjZlXHU2ZDY2XHU4YzMxXHU2NmRkXHU3MDExXHU2NzFmXHU2YjNh'@; put 'XHU2ODE2XHU2MjFhXHU1OWJiXHU0ZTAzXHU1MWM0XHU2ZjA2XHU2N2QyXHU2YzhmXHU1MTc2XHU2OGNiXHU1OTQ3XHU2YjY3XHU3NTY2XHU1ZDBlXHU4MTEwXHU5ZjUwXHU2NWQ3XHU3OTQ4XHU3OTQxXHU5YTkxXHU4ZDc3XHU1YzgyXHU0ZTVlXHU0ZjAxXHU1NDJmXHU1OTUxXHU3ODBjXHU1'@; put 'NjY4XHU2YzE0XHU4ZmM0XHU1ZjAzXHU2YzdkXHU2Y2UzXHU4YmFiXHU2MzkwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTk4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOThdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5OF1bbV1dPTUwNjg4K20sRls1MDY4OCttXT14WzE5OF1bbV0p'@; put 'O2Zvcih4WzE5OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODMzZVx1ODMzZlx1ODM0MVx1ODM0Mlx1ODM0NFx1ODM0NVx1ODM0OFx1ODM0YVx1ODM0Ylx1ODM0Y1x1ODM0ZFx1ODM0ZVx1ODM1M1x1ODM1NVx1ODM1Nlx1ODM1N1x1'@; put 'ODM1OFx1ODM1OVx1ODM1ZFx1ODM2Mlx1ODM3MFx1ODM3MVx1ODM3Mlx1ODM3M1x1ODM3NFx1ODM3NVx1ODM3Nlx1ODM3OVx1ODM3YVx1ODM3ZVx1ODM3Zlx1ODM4MFx1ODM4MVx1ODM4Mlx1ODM4M1x1ODM4NFx1ODM4N1x1ODM4OFx1ODM4YVx1ODM4Ylx1ODM4Y1x1ODM4ZFx1ODM4Zlx1ODM5'@; put 'MFx1ODM5MVx1ODM5NFx1ODM5NVx1ODM5Nlx1ODM5N1x1ODM5OVx1ODM5YVx1ODM5ZFx1ODM5Zlx1ODNhMVx1ODNhMlx1ODNhM1x1ODNhNFx1ODNhNVx1ODNhNlx1ODNhN1x1ODNhY1x1ODNhZFx1ODNhZVx1ZmZmZFx1ODNhZlx1ODNiNVx1ODNiYlx1ODNiZVx1ODNiZlx1ODNjMlx1ODNjM1x1'@; put 'ODNjNFx1ODNjNlx1ODNjOFx1ODNjOVx1ODNjYlx1ODNjZFx1ODNjZVx1ODNkMFx1ODNkMVx1ODNkMlx1ODNkM1x1ODNkNVx1ODNkN1x1ODNkOVx1ODNkYVx1ODNkYlx1ODNkZVx1ODNlMlx1ODNlM1x1ODNlNFx1ODNlNlx1ODNlN1x1ODNlOFx1ODNlYlx1ODNlY1x1ODNlZFx1NjA3MFx1NmQz'@; put 'ZFx1NzI3NVx1NjI2Nlx1OTQ4ZVx1OTRjNVx1NTM0M1x1OGZjMVx1N2I3ZVx1NGVkZlx1OGMyNlx1NGU3ZVx1OWVkNFx1OTRiMVx1OTRiM1x1NTI0ZFx1NmY1Y1x1OTA2M1x1NmQ0NVx1OGMzNFx1NTgxMVx1NWQ0Y1x1NmIyMFx1NmI0OVx1NjdhYVx1NTQ1Ylx1ODE1NFx1N2Y4Y1x1NTg5OVx1'@; put 'ODUzN1x1NWYzYVx1NjJhMlx1NmE0N1x1OTUzOVx1NjU3Mlx1NjA4NFx1Njg2NVx1NzdhN1x1NGU1NFx1NGZhOFx1NWRlN1x1OTc5OFx1NjRhY1x1N2ZkOFx1NWNlZFx1NGZjZlx1N2E4ZFx1NTIwN1x1ODMwNFx1NGUxNFx1NjAyZlx1N2E4M1x1OTRhNlx1NGZiNVx1NGViMlx1NzllNlx1NzQz'@; put 'NFx1NTJlNFx1ODJiOVx1NjRkMlx1NzliZFx1NWJkZFx1NmM4MVx1OTc1Mlx1OGY3Ylx1NmMyMlx1NTAzZVx1NTM3Zlx1NmUwNVx1NjRjZVx1NjY3NFx1NmMzMFx1NjBjNVx1OTg3N1x1OGJmN1x1NWU4Nlx1NzQzY1x1N2E3N1x1NzljYlx1NGUxOFx1OTBiMVx1NzQwM1x1NmM0Mlx1NTZkYVx1'@; put 'OTE0Ylx1NmNjNVx1OGQ4Ylx1NTMzYVx1ODZjNlx1NjZmMlx1OGVhZlx1NWM0OFx1OWE3MVx1NmUyMFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5OV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTk5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTldW21dXT01MDk0NCttLEZbNTA5NDQr'@; put 'bV09eFsxOTldW21dKTtmb3IoeFsyMDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzZWVcdTgzZWZcdTgzZjNcdTgzZjRcdTgzZjVcdTgzZjZcdTgzZjdcdTgzZmFcdTgzZmJcdTgzZmNcdTgzZmVcdTgzZmZcdTg0MDBcdTg0MDJc'@; put 'dTg0MDVcdTg0MDdcdTg0MDhcdTg0MDlcdTg0MGFcdTg0MTBcdTg0MTJcdTg0MTNcdTg0MTRcdTg0MTVcdTg0MTZcdTg0MTdcdTg0MTlcdTg0MWFcdTg0MWJcdTg0MWVcdTg0MWZcdTg0MjBcdTg0MjFcdTg0MjJcdTg0MjNcdTg0MjlcdTg0MmFcdTg0MmJcdTg0MmNcdTg0MmRcdTg0MmVcdTg0'@; put 'MmZcdTg0MzBcdTg0MzJcdTg0MzNcdTg0MzRcdTg0MzVcdTg0MzZcdTg0MzdcdTg0MzlcdTg0M2FcdTg0M2JcdTg0M2VcdTg0M2ZcdTg0NDBcdTg0NDFcdTg0NDJcdTg0NDNcdTg0NDRcdTg0NDVcdTg0NDdcdTg0NDhcdTg0NDlcdWZmZmRcdTg0NGFcdTg0NGJcdTg0NGNcdTg0NGRcdTg0NGVc'@; put 'dTg0NGZcdTg0NTBcdTg0NTJcdTg0NTNcdTg0NTRcdTg0NTVcdTg0NTZcdTg0NThcdTg0NWRcdTg0NWVcdTg0NWZcdTg0NjBcdTg0NjJcdTg0NjRcdTg0NjVcdTg0NjZcdTg0NjdcdTg0NjhcdTg0NmFcdTg0NmVcdTg0NmZcdTg0NzBcdTg0NzJcdTg0NzRcdTg0NzdcdTg0NzlcdTg0N2JcdTg0'@; put 'N2NcdTUzZDZcdTVhMzZcdTlmOGJcdThkYTNcdTUzYmJcdTU3MDhcdTk4YTdcdTY3NDNcdTkxOWJcdTZjYzlcdTUxNjhcdTc1Y2FcdTYyZjNcdTcyYWNcdTUyMzhcdTUyOWRcdTdmM2FcdTcwOTRcdTc2MzhcdTUzNzRcdTllNGFcdTY5YjdcdTc4NmVcdTk2YzBcdTg4ZDlcdTdmYTRcdTcxMzZc'@; put 'dTcxYzNcdTUxODlcdTY3ZDNcdTc0ZTRcdTU4ZTRcdTY1MThcdTU2YjdcdThiYTlcdTk5NzZcdTYyNzBcdTdlZDVcdTYwZjlcdTcwZWRcdTU4ZWNcdTRlYzFcdTRlYmFcdTVmY2RcdTk3ZTdcdTRlZmJcdThiYTRcdTUyMDNcdTU5OGFcdTdlYWJcdTYyNTRcdTRlY2RcdTY1ZTVcdTYyMGVcdTgz'@; put 'MzhcdTg0YzlcdTgzNjNcdTg3OGRcdTcxOTRcdTZlYjZcdTViYjlcdTdlZDJcdTUxOTdcdTYzYzlcdTY3ZDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTViN2FcdTU5ODJcdThmYjFcdTRlNzNcdTZjNWRcdTUxNjVcdTg5MjVcdThmNmZcdTk2MmVcdTg1NGFcdTc0NWVcdTk1MTBcdTk1ZjBc'@; put 'dTZkYTZcdTgyZTVcdTVmMzFcdTY0OTJcdTZkMTJcdTg0MjhcdTgxNmVcdTljYzNcdTU4NWVcdThkNWJcdTRlMDlcdTUzYzFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjAwXVttXV09NTEy'@; put 'MDArbSxGWzUxMjAwK21dPXhbMjAwXVttXSk7Zm9yKHhbMjAxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NDdkXHU4NDdlXHU4NDdmXHU4NDgwXHU4NDgxXHU4NDgzXHU4NDg0XHU4NDg1XHU4NDg2XHU4NDhhXHU4NDhkXHU4NDhm'@; put 'XHU4NDkwXHU4NDkxXHU4NDkyXHU4NDkzXHU4NDk0XHU4NDk1XHU4NDk2XHU4NDk4XHU4NDlhXHU4NDliXHU4NDlkXHU4NDllXHU4NDlmXHU4NGEwXHU4NGEyXHU4NGEzXHU4NGE0XHU4NGE1XHU4NGE2XHU4NGE3XHU4NGE4XHU4NGE5XHU4NGFhXHU4NGFiXHU4NGFjXHU4NGFkXHU4NGFlXHU4'@; put 'NGIwXHU4NGIxXHU4NGIzXHU4NGI1XHU4NGI2XHU4NGI3XHU4NGJiXHU4NGJjXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGMzXHU4NGM1XHU4NGM2XHU4NGM3XHU4NGM4XHU4NGNiXHU4NGNjXHU4NGNlXHU4NGNmXHU4NGQyXHU4NGQ0XHU4NGQ1XHU4NGQ3XHVmZmZkXHU4NGQ4XHU4NGQ5XHU4NGRh'@; put 'XHU4NGRiXHU4NGRjXHU4NGRlXHU4NGUxXHU4NGUyXHU4NGU0XHU4NGU3XHU4NGU4XHU4NGU5XHU4NGVhXHU4NGViXHU4NGVkXHU4NGVlXHU4NGVmXHU4NGYxXHU4NGYyXHU4NGYzXHU4NGY0XHU4NGY1XHU4NGY2XHU4NGY3XHU4NGY4XHU4NGY5XHU4NGZhXHU4NGZiXHU4NGZkXHU4NGZlXHU4'@; put 'NTAwXHU4NTAxXHU4NTAyXHU0ZjFlXHU2NTYzXHU2ODUxXHU1NWQzXHU0ZTI3XHU2NDE0XHU5YTlhXHU2MjZiXHU1YWMyXHU3NDVmXHU4MjcyXHU2ZGE5XHU2OGVlXHU1MGU3XHU4MzhlXHU3ODAyXHU2NzQwXHU1MjM5XHU2Yzk5XHU3ZWIxXHU1MGJiXHU1NTY1XHU3MTVlXHU3YjViXHU2NjUy'@; put 'XHU3M2NhXHU4MmViXHU2NzQ5XHU1YzcxXHU1MjIwXHU3MTdkXHU4ODZiXHU5NWVhXHU5NjU1XHU2NGM1XHU4ZDYxXHU4MWIzXHU1NTg0XHU2YzU1XHU2MjQ3XHU3ZjJlXHU1ODkyXHU0ZjI0XHU1NTQ2XHU4ZDRmXHU2NjRjXHU0ZTBhXHU1YzFhXHU4OGYzXHU2OGEyXHU2MzRlXHU3YTBkXHU3'@; put 'MGU3XHU4MjhkXHU1MmZhXHU5N2Y2XHU1YzExXHU1NGU4XHU5MGI1XHU3ZWNkXHU1OTYyXHU4ZDRhXHU4NmM3XHU4MjBjXHU4MjBkXHU4ZDY2XHU2NDQ0XHU1YzA0XHU2MTUxXHU2ZDg5XHU3OTNlXHU4YmJlXHU3ODM3XHU3NTMzXHU1NDdiXHU0ZjM4XHU4ZWFiXHU2ZGYxXHU1YTIwXHU3ZWM1'@; put 'XHU3OTVlXHU2Yzg4XHU1YmExXHU1YTc2XHU3NTFhXHU4MGJlXHU2MTRlXHU2ZTE3XHU1OGYwXHU3NTFmXHU3NTI1XHU3MjcyXHU1MzQ3XHU3ZWYzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjAxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4'@; put 'WzIwMV1bbV1dPTUxNDU2K20sRls1MTQ1NittXT14WzIwMV1bbV0pO2Zvcih4WzIwMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODUwM1x1ODUwNFx1ODUwNVx1ODUwNlx1ODUwN1x1ODUwOFx1ODUwOVx1ODUwYVx1ODUwYlx1ODUw'@; put 'ZFx1ODUwZVx1ODUwZlx1ODUxMFx1ODUxMlx1ODUxNFx1ODUxNVx1ODUxNlx1ODUxOFx1ODUxOVx1ODUxYlx1ODUxY1x1ODUxZFx1ODUxZVx1ODUyMFx1ODUyMlx1ODUyM1x1ODUyNFx1ODUyNVx1ODUyNlx1ODUyN1x1ODUyOFx1ODUyOVx1ODUyYVx1ODUyZFx1ODUyZVx1ODUyZlx1ODUzMFx1'@; put 'ODUzMVx1ODUzMlx1ODUzM1x1ODUzNFx1ODUzNVx1ODUzNlx1ODUzZVx1ODUzZlx1ODU0MFx1ODU0MVx1ODU0Mlx1ODU0NFx1ODU0NVx1ODU0Nlx1ODU0N1x1ODU0Ylx1ODU0Y1x1ODU0ZFx1ODU0ZVx1ODU0Zlx1ODU1MFx1ODU1MVx1ODU1Mlx1ODU1M1x1ODU1NFx1ODU1NVx1ZmZmZFx1ODU1'@; put 'N1x1ODU1OFx1ODU1YVx1ODU1Ylx1ODU1Y1x1ODU1ZFx1ODU1Zlx1ODU2MFx1ODU2MVx1ODU2Mlx1ODU2M1x1ODU2NVx1ODU2Nlx1ODU2N1x1ODU2OVx1ODU2YVx1ODU2Ylx1ODU2Y1x1ODU2ZFx1ODU2ZVx1ODU2Zlx1ODU3MFx1ODU3MVx1ODU3M1x1ODU3NVx1ODU3Nlx1ODU3N1x1ODU3OFx1'@; put 'ODU3Y1x1ODU3ZFx1ODU3Zlx1ODU4MFx1ODU4MVx1NzcwMVx1NzZkYlx1NTI2OVx1ODBkY1x1NTcyM1x1NWUwOFx1NTkzMVx1NzJlZVx1NjViZFx1NmU3Zlx1OGJkN1x1NWMzOFx1ODY3MVx1NTM0MVx1NzdmM1x1NjJmZVx1NjVmNlx1NGVjMFx1OThkZlx1ODY4MFx1NWI5ZVx1OGJjNlx1NTNm'@; put 'Mlx1NzdlMlx1NGY3Zlx1NWM0ZVx1OWE3Nlx1NTljYlx1NWYwZlx1NzkzYVx1NThlYlx1NGUxNlx1NjdmZlx1NGU4Ylx1NjJlZFx1OGE5M1x1OTAxZFx1NTJiZlx1NjYyZlx1NTVkY1x1NTY2Y1x1OTAwMlx1NGVkNVx1NGY4ZFx1OTFjYVx1OTk3MFx1NmMwZlx1NWUwMlx1NjA0M1x1NWJhNFx1'@; put 'ODljNlx1OGJkNVx1NjUzNlx1NjI0Ylx1OTk5Nlx1NWI4OFx1NWJmZlx1NjM4OFx1NTUyZVx1NTNkN1x1NzYyNlx1NTE3ZFx1ODUyY1x1NjdhMlx1NjhiM1x1NmI4YVx1NjI5Mlx1OGY5M1x1NTNkNFx1ODIxMlx1NmRkMVx1NzU4Zlx1NGU2Nlx1OGQ0ZVx1NWI3MFx1NzE5Zlx1ODVhZlx1NjY5'@; put 'MVx1NjZkOVx1N2Y3Mlx1ODcwMFx1OWVjZFx1OWYyMFx1NWM1ZVx1NjcyZlx1OGZmMFx1NjgxMVx1Njc1Zlx1NjIwZFx1N2FkNlx1NTg4NVx1NWViNlx1NjU3MFx1NmYzMVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwMl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjAyXVttXS5jaGFyQ29k'@; put 'ZUF0KDApJiYoYWVbeFsyMDJdW21dXT01MTcxMittLEZbNTE3MTIrbV09eFsyMDJdW21dKTtmb3IoeFsyMDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1ODJcdTg1ODNcdTg1ODZcdTg1ODhcdTg1ODlcdTg1OGFcdTg1OGJcdTg1'@; put 'OGNcdTg1OGRcdTg1OGVcdTg1OTBcdTg1OTFcdTg1OTJcdTg1OTNcdTg1OTRcdTg1OTVcdTg1OTZcdTg1OTdcdTg1OThcdTg1OTlcdTg1OWFcdTg1OWRcdTg1OWVcdTg1OWZcdTg1YTBcdTg1YTFcdTg1YTJcdTg1YTNcdTg1YTVcdTg1YTZcdTg1YTdcdTg1YTlcdTg1YWJcdTg1YWNcdTg1YWRc'@; put 'dTg1YjFcdTg1YjJcdTg1YjNcdTg1YjRcdTg1YjVcdTg1YjZcdTg1YjhcdTg1YmFcdTg1YmJcdTg1YmNcdTg1YmRcdTg1YmVcdTg1YmZcdTg1YzBcdTg1YzJcdTg1YzNcdTg1YzRcdTg1YzVcdTg1YzZcdTg1YzdcdTg1YzhcdTg1Y2FcdTg1Y2JcdTg1Y2NcdTg1Y2RcdTg1Y2VcdTg1ZDFcdTg1'@; put 'ZDJcdWZmZmRcdTg1ZDRcdTg1ZDZcdTg1ZDdcdTg1ZDhcdTg1ZDlcdTg1ZGFcdTg1ZGJcdTg1ZGRcdTg1ZGVcdTg1ZGZcdTg1ZTBcdTg1ZTFcdTg1ZTJcdTg1ZTNcdTg1ZTVcdTg1ZTZcdTg1ZTdcdTg1ZThcdTg1ZWFcdTg1ZWJcdTg1ZWNcdTg1ZWRcdTg1ZWVcdTg1ZWZcdTg1ZjBcdTg1ZjFc'@; put 'dTg1ZjJcdTg1ZjNcdTg1ZjRcdTg1ZjVcdTg1ZjZcdTg1ZjdcdTg1ZjhcdTYwNTVcdTUyMzdcdTgwMGRcdTY0NTRcdTg4NzBcdTc1MjlcdTVlMDVcdTY4MTNcdTYyZjRcdTk3MWNcdTUzY2NcdTcyM2RcdThjMDFcdTZjMzRcdTc3NjFcdTdhMGVcdTU0MmVcdTc3YWNcdTk4N2FcdTgyMWNcdThi'@; put 'ZjRcdTc4NTVcdTY3MTRcdTcwYzFcdTY1YWZcdTY0OTVcdTU2MzZcdTYwMWRcdTc5YzFcdTUzZjhcdTRlMWRcdTZiN2JcdTgwODZcdTViZmFcdTU1ZTNcdTU2ZGJcdTRmM2FcdTRmM2NcdTk5NzJcdTVkZjNcdTY3N2VcdTgwMzhcdTYwMDJcdTk4ODJcdTkwMDFcdTViOGJcdThiYmNcdThiZjVc'@; put 'dTY0MWNcdTgyNThcdTY0ZGVcdTU1ZmRcdTgyY2ZcdTkxNjVcdTRmZDdcdTdkMjBcdTkwMWZcdTdjOWZcdTUwZjNcdTU4NTFcdTZlYWZcdTViYmZcdThiYzlcdTgwODNcdTkxNzhcdTg0OWNcdTdiOTdcdTg2N2RcdTk2OGJcdTk2OGZcdTdlZTVcdTlhZDNcdTc4OGVcdTVjODFcdTdhNTdcdTkw'@; put 'NDJcdTk2YTdcdTc5NWZcdTViNTlcdTYzNWZcdTdiMGJcdTg0ZDFcdTY4YWRcdTU1MDZcdTdmMjlcdTc0MTBcdTdkMjJcdTk1MDFcdTYyNDBcdTU4NGNcdTRlZDZcdTViODNcdTU5NzlcdTU4NTRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIw'@; put 'M11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjAzXVttXV09NTE5NjgrbSxGWzUxOTY4K21dPXhbMjAzXVttXSk7Zm9yKHhbMjA0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NWY5XHU4NWZhXHU4NWZjXHU4NWZkXHU4NWZlXHU4'@; put 'NjAwXHU4NjAxXHU4NjAyXHU4NjAzXHU4NjA0XHU4NjA2XHU4NjA3XHU4NjA4XHU4NjA5XHU4NjBhXHU4NjBiXHU4NjBjXHU4NjBkXHU4NjBlXHU4NjBmXHU4NjEwXHU4NjEyXHU4NjEzXHU4NjE0XHU4NjE1XHU4NjE3XHU4NjE4XHU4NjE5XHU4NjFhXHU4NjFiXHU4NjFjXHU4NjFkXHU4NjFl'@; put 'XHU4NjFmXHU4NjIwXHU4NjIxXHU4NjIyXHU4NjIzXHU4NjI0XHU4NjI1XHU4NjI2XHU4NjI4XHU4NjJhXHU4NjJiXHU4NjJjXHU4NjJkXHU4NjJlXHU4NjJmXHU4NjMwXHU4NjMxXHU4NjMyXHU4NjMzXHU4NjM0XHU4NjM1XHU4NjM2XHU4NjM3XHU4NjM5XHU4NjNhXHU4NjNiXHU4NjNkXHU4'@; put 'NjNlXHU4NjNmXHU4NjQwXHVmZmZkXHU4NjQxXHU4NjQyXHU4NjQzXHU4NjQ0XHU4NjQ1XHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4NjQ5XHU4NjRhXHU4NjRiXHU4NjRjXHU4NjUyXHU4NjUzXHU4NjU1XHU4NjU2XHU4NjU3XHU4NjU4XHU4NjU5XHU4NjViXHU4NjVjXHU4NjVkXHU4NjVmXHU4NjYw'@; put 'XHU4NjYxXHU4NjYzXHU4NjY0XHU4NjY1XHU4NjY2XHU4NjY3XHU4NjY4XHU4NjY5XHU4NjZhXHU3MzZkXHU2MzFlXHU4ZTRiXHU4ZTBmXHU4MGNlXHU4MmQ0XHU2MmFjXHU1M2YwXHU2Y2YwXHU5MTVlXHU1OTJhXHU2MDAxXHU2YzcwXHU1NzRkXHU2NDRhXHU4ZDJhXHU3NjJiXHU2ZWU5XHU1'@; put 'NzViXHU2YTgwXHU3NWYwXHU2ZjZkXHU4YzJkXHU4YzA4XHU1NzY2XHU2YmVmXHU4ODkyXHU3OGIzXHU2M2EyXHU1M2Y5XHU3MGFkXHU2YzY0XHU1ODU4XHU2NDJhXHU1ODAyXHU2OGUwXHU4MTliXHU1NTEwXHU3Y2Q2XHU1MDE4XHU4ZWJhXHU2ZGNjXHU4ZDlmXHU3MGViXHU2MzhmXHU2ZDli'@; put 'XHU2ZWQ0XHU3ZWU2XHU4NDA0XHU2ODQzXHU5MDAzXHU2ZGQ4XHU5Njc2XHU4YmE4XHU1OTU3XHU3Mjc5XHU4NWU0XHU4MTdlXHU3NWJjXHU4YThhXHU2OGFmXHU1MjU0XHU4ZTIyXHU5NTExXHU2M2QwXHU5ODk4XHU4ZTQ0XHU1NTdjXHU0ZjUzXHU2NmZmXHU1NjhmXHU2MGQ1XHU2ZDk1XHU1'@; put 'MjQzXHU1YzQ5XHU1OTI5XHU2ZGZiXHU1ODZiXHU3NTMwXHU3NTFjXHU2MDZjXHU4MjE0XHU4MTQ2XHU2MzExXHU2NzYxXHU4ZmUyXHU3NzNhXHU4ZGYzXHU4ZDM0XHU5NGMxXHU1ZTE2XHU1Mzg1XHU1NDJjXHU3MGMzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA0XS5sZW5ndGg7Kytt'@; put 'KTY1NTMzIT09eFsyMDRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwNF1bbV1dPTUyMjI0K20sRls1MjIyNCttXT14WzIwNF1bbV0pO2Zvcih4WzIwNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODY2ZFx1ODY2Zlx1ODY3MFx1'@; put 'ODY3Mlx1ODY3M1x1ODY3NFx1ODY3NVx1ODY3Nlx1ODY3N1x1ODY3OFx1ODY4M1x1ODY4NFx1ODY4NVx1ODY4Nlx1ODY4N1x1ODY4OFx1ODY4OVx1ODY4ZVx1ODY4Zlx1ODY5MFx1ODY5MVx1ODY5Mlx1ODY5NFx1ODY5Nlx1ODY5N1x1ODY5OFx1ODY5OVx1ODY5YVx1ODY5Ylx1ODY5ZVx1ODY5'@; put 'Zlx1ODZhMFx1ODZhMVx1ODZhMlx1ODZhNVx1ODZhNlx1ODZhYlx1ODZhZFx1ODZhZVx1ODZiMlx1ODZiM1x1ODZiN1x1ODZiOFx1ODZiOVx1ODZiYlx1ODZiY1x1ODZiZFx1ODZiZVx1ODZiZlx1ODZjMVx1ODZjMlx1ODZjM1x1ODZjNVx1ODZjOFx1ODZjY1x1ODZjZFx1ODZkMlx1ODZkM1x1'@; put 'ODZkNVx1ODZkNlx1ODZkN1x1ODZkYVx1ODZkY1x1ZmZmZFx1ODZkZFx1ODZlMFx1ODZlMVx1ODZlMlx1ODZlM1x1ODZlNVx1ODZlNlx1ODZlN1x1ODZlOFx1ODZlYVx1ODZlYlx1ODZlY1x1ODZlZlx1ODZmNVx1ODZmNlx1ODZmN1x1ODZmYVx1ODZmYlx1ODZmY1x1ODZmZFx1ODZmZlx1ODcw'@; put 'MVx1ODcwNFx1ODcwNVx1ODcwNlx1ODcwYlx1ODcwY1x1ODcwZVx1ODcwZlx1ODcxMFx1ODcxMVx1ODcxNFx1ODcxNlx1NmM0MFx1NWVmN1x1NTA1Y1x1NGVhZFx1NWVhZFx1NjMzYVx1ODI0N1x1OTAxYVx1Njg1MFx1OTE2ZVx1NzdiM1x1NTQwY1x1OTRkY1x1NWY2NFx1N2FlNVx1Njg3Nlx1'@; put 'NjM0NVx1N2I1Mlx1N2VkZlx1NzVkYlx1NTA3N1x1NjI5NVx1NTkzNFx1OTAwZlx1NTFmOFx1NzljM1x1N2E4MVx1NTZmZVx1NWY5Mlx1OTAxNFx1NmQ4Mlx1NWM2MFx1NTcxZlx1NTQxMFx1NTE1NFx1NmU0ZFx1NTZlMlx1NjNhOFx1OTg5M1x1ODE3Zlx1ODcxNVx1ODkyYVx1OTAwMFx1NTQx'@; put 'ZVx1NWM2Zlx1ODFjMFx1NjJkNlx1NjI1OFx1ODEzMVx1OWUzNVx1OTY0MFx1OWE2ZVx1OWE3Y1x1NjkyZFx1NTlhNVx1NjJkM1x1NTUzZVx1NjMxNlx1NTRjN1x1ODZkOVx1NmQzY1x1NWEwM1x1NzRlNlx1ODg5Y1x1NmI2YVx1NTkxNlx1OGM0Y1x1NWYyZlx1NmU3ZVx1NzNhOVx1OTg3ZFx1'@; put 'NGUzOFx1NzBmN1x1NWI4Y1x1Nzg5N1x1NjMzZFx1NjY1YVx1NzY5Nlx1NjBjYlx1NWI5Ylx1NWE0OVx1NGUwN1x1ODE1NVx1NmM2YVx1NzM4Ylx1NGVhMVx1Njc4OVx1N2Y1MVx1NWY4MFx1NjVmYVx1NjcxYlx1NWZkOFx1NTk4NFx1NWEwMVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIw'@; put 'NV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDVdW21dXT01MjQ4MCttLEZbNTI0ODArbV09eFsyMDVdW21dKTtmb3IoeFsyMDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg3MTlc'@; put 'dTg3MWJcdTg3MWRcdTg3MWZcdTg3MjBcdTg3MjRcdTg3MjZcdTg3MjdcdTg3MjhcdTg3MmFcdTg3MmJcdTg3MmNcdTg3MmRcdTg3MmZcdTg3MzBcdTg3MzJcdTg3MzNcdTg3MzVcdTg3MzZcdTg3MzhcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3NDBcdTg3NDFcdTg3NDJcdTg3NDNcdTg3'@; put 'NDRcdTg3NDVcdTg3NDZcdTg3NGFcdTg3NGJcdTg3NGRcdTg3NGZcdTg3NTBcdTg3NTFcdTg3NTJcdTg3NTRcdTg3NTVcdTg3NTZcdTg3NThcdTg3NWFcdTg3NWJcdTg3NWNcdTg3NWRcdTg3NWVcdTg3NWZcdTg3NjFcdTg3NjJcdTg3NjZcdTg3NjdcdTg3NjhcdTg3NjlcdTg3NmFcdTg3NmJc'@; put 'dTg3NmNcdTg3NmRcdTg3NmZcdTg3NzFcdTg3NzJcdTg3NzNcdTg3NzVcdWZmZmRcdTg3NzdcdTg3NzhcdTg3NzlcdTg3N2FcdTg3N2ZcdTg3ODBcdTg3ODFcdTg3ODRcdTg3ODZcdTg3ODdcdTg3ODlcdTg3OGFcdTg3OGNcdTg3OGVcdTg3OGZcdTg3OTBcdTg3OTFcdTg3OTJcdTg3OTRcdTg3'@; put 'OTVcdTg3OTZcdTg3OThcdTg3OTlcdTg3OWFcdTg3OWJcdTg3OWNcdTg3OWRcdTg3OWVcdTg3YTBcdTg3YTFcdTg3YTJcdTg3YTNcdTg3YTRcdTVkY2RcdTVmYWVcdTUzNzFcdTk3ZTZcdThmZGRcdTY4NDVcdTU2ZjRcdTU1MmZcdTYwZGZcdTRlM2FcdTZmNGRcdTdlZjRcdTgyYzdcdTg0MGVc'@; put 'dTU5ZDRcdTRmMWZcdTRmMmFcdTVjM2VcdTdlYWNcdTY3MmFcdTg1MWFcdTU0NzNcdTc1NGZcdTgwYzNcdTU1ODJcdTliNGZcdTRmNGRcdTZlMmRcdThjMTNcdTVjMDlcdTYxNzBcdTUzNmJcdTc2MWZcdTZlMjlcdTg2OGFcdTY1ODdcdTk1ZmJcdTdlYjlcdTU0M2JcdTdhMzNcdTdkMGFcdTk1'@; put 'ZWVcdTU1ZTFcdTdmYzFcdTc0ZWVcdTYzMWRcdTg3MTdcdTZkYTFcdTdhOWRcdTYyMTFcdTY1YTFcdTUzNjdcdTYzZTFcdTZjODNcdTVkZWJcdTU0NWNcdTk0YThcdTRlNGNcdTZjNjFcdThiZWNcdTVjNGJcdTY1ZTBcdTgyOWNcdTY4YTdcdTU0M2VcdTU0MzRcdTZiY2JcdTZiNjZcdTRlOTRc'@; put 'dTYzNDJcdTUzNDhcdTgyMWVcdTRmMGRcdTRmYWVcdTU3NWVcdTYyMGFcdTk2ZmVcdTY2NjRcdTcyNjlcdTUyZmZcdTUyYTFcdTYwOWZcdThiZWZcdTY2MTRcdTcxOTlcdTY3OTBcdTg5N2ZcdTc4NTJcdTc3ZmRcdTY2NzBcdTU2M2JcdTU0MzhcdTk1MjFcdTcyN2FcdWZmZmQiLnNwbGl0KCIi'@; put 'KSxtPTA7bSE9eFsyMDZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwNl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjA2XVttXV09NTI3MzYrbSxGWzUyNzM2K21dPXhbMjA2XVttXSk7Zm9yKHhbMjA3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHU4N2E1XHU4N2E2XHU4N2E3XHU4N2E5XHU4N2FhXHU4N2FlXHU4N2IwXHU4N2IxXHU4N2IyXHU4N2I0XHU4N2I2XHU4N2I3XHU4N2I4XHU4N2I5XHU4N2JiXHU4N2JjXHU4N2JlXHU4N2JmXHU4N2MxXHU4N2MyXHU4N2MzXHU4N2M0XHU4N2M1XHU4N2M3XHU4N2M4XHU4N2M5XHU4'@; put 'N2NjXHU4N2NkXHU4N2NlXHU4N2NmXHU4N2QwXHU4N2Q0XHU4N2Q1XHU4N2Q2XHU4N2Q3XHU4N2Q4XHU4N2Q5XHU4N2RhXHU4N2RjXHU4N2RkXHU4N2RlXHU4N2RmXHU4N2UxXHU4N2UyXHU4N2UzXHU4N2U0XHU4N2U2XHU4N2U3XHU4N2U4XHU4N2U5XHU4N2ViXHU4N2VjXHU4N2VkXHU4N2Vm'@; put 'XHU4N2YwXHU4N2YxXHU4N2YyXHU4N2YzXHU4N2Y0XHU4N2Y1XHU4N2Y2XHU4N2Y3XHU4N2Y4XHVmZmZkXHU4N2ZhXHU4N2ZiXHU4N2ZjXHU4N2ZkXHU4N2ZmXHU4ODAwXHU4ODAxXHU4ODAyXHU4ODA0XHU4ODA1XHU4ODA2XHU4ODA3XHU4ODA4XHU4ODA5XHU4ODBiXHU4ODBjXHU4ODBkXHU4'@; put 'ODBlXHU4ODBmXHU4ODEwXHU4ODExXHU4ODEyXHU4ODE0XHU4ODE3XHU4ODE4XHU4ODE5XHU4ODFhXHU4ODFjXHU4ODFkXHU4ODFlXHU4ODFmXHU4ODIwXHU4ODIzXHU3YTAwXHU2MDZmXHU1ZTBjXHU2MDg5XHU4MTlkXHU1OTE1XHU2MGRjXHU3MTg0XHU3MGVmXHU2ZWFhXHU2YzUwXHU3Mjgw'@; put 'XHU2YTg0XHU4OGFkXHU1ZTJkXHU0ZTYwXHU1YWIzXHU1NTljXHU5NGUzXHU2ZDE3XHU3Y2ZiXHU5Njk5XHU2MjBmXHU3ZWM2XHU3NzhlXHU4NjdlXHU1MzIzXHU5NzFlXHU4Zjk2XHU2Njg3XHU1Y2UxXHU0ZmEwXHU3MmVkXHU0ZTBiXHU1M2E2XHU1OTBmXHU1NDEzXHU2MzgwXHU5NTI4XHU1'@; put 'MTQ4XHU0ZWQ5XHU5YzljXHU3ZWE0XHU1NGI4XHU4ZDI0XHU4ODU0XHU4MjM3XHU5NWYyXHU2ZDhlXHU1ZjI2XHU1YWNjXHU2NjNlXHU5NjY5XHU3M2IwXHU3MzJlXHU1M2JmXHU4MTdhXHU5OTg1XHU3ZmExXHU1YmFhXHU5Njc3XHU5NjUwXHU3ZWJmXHU3NmY4XHU1M2EyXHU5NTc2XHU5OTk5'@; put 'XHU3YmIxXHU4OTQ0XHU2ZTU4XHU0ZTYxXHU3ZmQ0XHU3OTY1XHU4YmU2XHU2MGYzXHU1NGNkXHU0ZWFiXHU5ODc5XHU1ZGY3XHU2YTYxXHU1MGNmXHU1NDExXHU4YzYxXHU4NDI3XHU3ODVkXHU5NzA0XHU1MjRhXHU1NGVlXHU1NmEzXHU5NTAwXHU2ZDg4XHU1YmI1XHU2ZGM2XHU2NjUzXHVm'@; put 'ZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwN11bbV1dPTUyOTkyK20sRls1Mjk5MittXT14WzIwN11bbV0pO2Zvcih4WzIwOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODgyNFx1ODgyNVx1ODgyNlx1ODgyN1x1ODgyOFx1ODgyOVx1ODgyYVx1ODgyYlx1ODgyY1x1ODgyZFx1ODgyZVx1ODgyZlx1ODgzMFx1ODgzMVx1ODgzM1x1ODgzNFx1ODgzNVx1ODgzNlx1ODgzN1x1ODgzOFx1ODgzYVx1ODgzYlx1ODgzZFx1ODgzZVx1'@; put 'ODgzZlx1ODg0MVx1ODg0Mlx1ODg0M1x1ODg0Nlx1ODg0N1x1ODg0OFx1ODg0OVx1ODg0YVx1ODg0Ylx1ODg0ZVx1ODg0Zlx1ODg1MFx1ODg1MVx1ODg1Mlx1ODg1M1x1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1YVx1ODg1Ylx1ODg1Y1x1ODg1ZFx1ODg1ZVx1ODg1Zlx1ODg2MFx1ODg2Nlx1ODg2'@; put 'N1x1ODg2YVx1ODg2ZFx1ODg2Zlx1ODg3MVx1ODg3M1x1ODg3NFx1ODg3NVx1ODg3Nlx1ODg3OFx1ODg3OVx1ODg3YVx1ZmZmZFx1ODg3Ylx1ODg3Y1x1ODg4MFx1ODg4M1x1ODg4Nlx1ODg4N1x1ODg4OVx1ODg4YVx1ODg4Y1x1ODg4ZVx1ODg4Zlx1ODg5MFx1ODg5MVx1ODg5M1x1ODg5NFx1'@; put 'ODg5NVx1ODg5N1x1ODg5OFx1ODg5OVx1ODg5YVx1ODg5Ylx1ODg5ZFx1ODg5ZVx1ODg5Zlx1ODhhMFx1ODhhMVx1ODhhM1x1ODhhNVx1ODhhNlx1ODhhN1x1ODhhOFx1ODhhOVx1ODhhYVx1NWMwZlx1NWI1ZFx1NjgyMVx1ODA5Nlx1NTU3OFx1N2IxMVx1NjU0OFx1Njk1NFx1NGU5Ylx1NmI0'@; put 'N1x1ODc0ZVx1OTc4Ylx1NTM0Zlx1NjMxZlx1NjQzYVx1OTBhYVx1NjU5Y1x1ODBjMVx1OGMxMFx1NTE5OVx1NjhiMFx1NTM3OFx1ODdmOVx1NjFjOFx1NmNjNFx1NmNmYlx1OGMyMlx1NWM1MVx1ODVhYVx1ODJhZlx1OTUwY1x1NmIyM1x1OGY5Ylx1NjViMFx1NWZmYlx1NWZjM1x1NGZlMVx1'@; put 'ODg0NVx1NjYxZlx1ODE2NVx1NzMyOVx1NjBmYVx1NTE3NFx1NTIxMVx1NTc4Ylx1NWY2Mlx1OTBhMlx1ODg0Y1x1OTE5Mlx1NWU3OFx1Njc0Zlx1NjAyN1x1NTlkM1x1NTE0NFx1NTFmNlx1ODBmOFx1NTMwOFx1NmM3OVx1OTZjNFx1NzE4YVx1NGYxMVx1NGZlZVx1N2Y5ZVx1NjczZFx1NTVj'@; put 'NVx1OTUwOFx1NzljMFx1ODg5Nlx1N2VlM1x1NTg5Zlx1NjIwY1x1OTcwMFx1ODY1YVx1NTYxOFx1OTg3Ylx1NWY5MFx1OGJiOFx1ODRjNFx1OTE1N1x1NTNkOVx1NjVlZFx1NWU4Zlx1NzU1Y1x1NjA2NFx1N2Q2ZVx1NWE3Zlx1N2VlYVx1N2VlZFx1OGY2OVx1NTVhN1x1NWJhM1x1NjBhY1x1'@; put 'NjVjYlx1NzM4NFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwOF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDhdW21dXT01MzI0OCttLEZbNTMyNDgrbV09eFsyMDhdW21dKTtmb3IoeFsyMDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg4YWNcdTg4YWVcdTg4YWZcdTg4YjBcdTg4YjJcdTg4YjNcdTg4YjRcdTg4YjVcdTg4YjZcdTg4YjhcdTg4YjlcdTg4YmFcdTg4YmJcdTg4YmRcdTg4YmVcdTg4YmZcdTg4YzBcdTg4YzNcdTg4YzRcdTg4YzdcdTg4YzhcdTg4Y2Fc'@; put 'dTg4Y2JcdTg4Y2NcdTg4Y2RcdTg4Y2ZcdTg4ZDBcdTg4ZDFcdTg4ZDNcdTg4ZDZcdTg4ZDdcdTg4ZGFcdTg4ZGJcdTg4ZGNcdTg4ZGRcdTg4ZGVcdTg4ZTBcdTg4ZTFcdTg4ZTZcdTg4ZTdcdTg4ZTlcdTg4ZWFcdTg4ZWJcdTg4ZWNcdTg4ZWRcdTg4ZWVcdTg4ZWZcdTg4ZjJcdTg4ZjVcdTg4'@; put 'ZjZcdTg4ZjdcdTg4ZmFcdTg4ZmJcdTg4ZmRcdTg4ZmZcdTg5MDBcdTg5MDFcdTg5MDNcdTg5MDRcdTg5MDVcdTg5MDZcdTg5MDdcdTg5MDhcdWZmZmRcdTg5MDlcdTg5MGJcdTg5MGNcdTg5MGRcdTg5MGVcdTg5MGZcdTg5MTFcdTg5MTRcdTg5MTVcdTg5MTZcdTg5MTdcdTg5MThcdTg5MWNc'@; put 'dTg5MWRcdTg5MWVcdTg5MWZcdTg5MjBcdTg5MjJcdTg5MjNcdTg5MjRcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MjlcdTg5MmNcdTg5MmRcdTg5MmVcdTg5MmZcdTg5MzFcdTg5MzJcdTg5MzNcdTg5MzVcdTg5MzdcdTkwMDlcdTc2NjNcdTc3MjlcdTdlZGFcdTk3NzRcdTg1OWJcdTViNjZcdTdh'@; put 'NzRcdTk2ZWFcdTg4NDBcdTUyY2JcdTcxOGZcdTVmYWFcdTY1ZWNcdThiZTJcdTViZmJcdTlhNmZcdTVkZTFcdTZiODlcdTZjNWJcdThiYWRcdThiYWZcdTkwMGFcdThmYzVcdTUzOGJcdTYyYmNcdTllMjZcdTllMmRcdTU0NDBcdTRlMmJcdTgyYmRcdTcyNTlcdTg2OWNcdTVkMTZcdTg4NTlc'@; put 'dTZkYWZcdTk2YzVcdTU0ZDFcdTRlOWFcdThiYjZcdTcxMDlcdTU0YmRcdTk2MDlcdTcwZGZcdTZkZjlcdTc2ZDBcdTRlMjVcdTc4MTRcdTg3MTJcdTVjYTlcdTVlZjZcdThhMDBcdTk4OWNcdTk2MGVcdTcwOGVcdTZjYmZcdTU5NDRcdTYzYTlcdTc3M2NcdTg4NGRcdTZmMTRcdTgyNzNcdTU4'@; put 'MzBcdTcxZDVcdTUzOGNcdTc4MWFcdTk2YzFcdTU1MDFcdTVmNjZcdTcxMzBcdTViYjRcdThjMWFcdTlhOGNcdTZiODNcdTU5MmVcdTllMmZcdTc5ZTdcdTY3NjhcdTYyNmNcdTRmNmZcdTc1YTFcdTdmOGFcdTZkMGJcdTk2MzNcdTZjMjdcdTRlZjBcdTc1ZDJcdTUxN2JcdTY4MzdcdTZmM2Vc'@; put 'dTkwODBcdTgxNzBcdTU5OTZcdTc0NzZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDldLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjA5XVttXV09NTM1MDQrbSxGWzUzNTA0K21dPXhbMjA5XVttXSk7Zm9yKHhbMjEwXT0iXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OTM4XHU4OTM5XHU4OTNhXHU4OTNiXHU4OTNjXHU4OTNkXHU4OTNlXHU4OTNmXHU4OTQwXHU4OTQyXHU4OTQzXHU4OTQ1XHU4OTQ2XHU4OTQ3XHU4OTQ4XHU4OTQ5XHU4OTRhXHU4OTRiXHU4OTRjXHU4OTRk'@; put 'XHU4OTRlXHU4OTRmXHU4OTUwXHU4OTUxXHU4OTUyXHU4OTUzXHU4OTU0XHU4OTU1XHU4OTU2XHU4OTU3XHU4OTU4XHU4OTU5XHU4OTVhXHU4OTViXHU4OTVjXHU4OTVkXHU4OTYwXHU4OTYxXHU4OTYyXHU4OTYzXHU4OTY0XHU4OTY1XHU4OTY3XHU4OTY4XHU4OTY5XHU4OTZhXHU4OTZiXHU4'@; put 'OTZjXHU4OTZkXHU4OTZlXHU4OTZmXHU4OTcwXHU4OTcxXHU4OTcyXHU4OTczXHU4OTc0XHU4OTc1XHU4OTc2XHU4OTc3XHU4OTc4XHU4OTc5XHU4OTdhXHU4OTdjXHVmZmZkXHU4OTdkXHU4OTdlXHU4OTgwXHU4OTgyXHU4OTg0XHU4OTg1XHU4OTg3XHU4OTg4XHU4OTg5XHU4OThhXHU4OThi'@; put 'XHU4OThjXHU4OThkXHU4OThlXHU4OThmXHU4OTkwXHU4OTkxXHU4OTkyXHU4OTkzXHU4OTk0XHU4OTk1XHU4OTk2XHU4OTk3XHU4OTk4XHU4OTk5XHU4OTlhXHU4OTliXHU4OTljXHU4OTlkXHU4OTllXHU4OTlmXHU4OWEwXHU4OWExXHU2NDQ3XHU1YzI3XHU5MDY1XHU3YTkxXHU4YzIzXHU1'@; put 'OWRhXHU1NGFjXHU4MjAwXHU4MzZmXHU4OTgxXHU4MDAwXHU2OTMwXHU1NjRlXHU4MDM2XHU3MjM3XHU5MWNlXHU1MWI2XHU0ZTVmXHU5ODc1XHU2Mzk2XHU0ZTFhXHU1M2Y2XHU2NmYzXHU4MTRiXHU1OTFjXHU2ZGIyXHU0ZTAwXHU1OGY5XHU1MzNiXHU2M2Q2XHU5NGYxXHU0ZjlkXHU0ZjBh'@; put 'XHU4ODYzXHU5ODkwXHU1OTM3XHU5MDU3XHU3OWZiXHU0ZWVhXHU4MGYwXHU3NTkxXHU2YzgyXHU1YjljXHU1OWU4XHU1ZjVkXHU2OTA1XHU4NjgxXHU1MDFhXHU1ZGYyXHU0ZTU5XHU3N2UzXHU0ZWU1XHU4MjdhXHU2MjkxXHU2NjEzXHU5MDkxXHU1Yzc5XHU0ZWJmXHU1Zjc5XHU4MWM2XHU5'@; put 'MDM4XHU4MDg0XHU3NWFiXHU0ZWE2XHU4OGQ0XHU2MTBmXHU2YmM1XHU1ZmM2XHU0ZTQ5XHU3NmNhXHU2ZWEyXHU4YmUzXHU4YmFlXHU4YzBhXHU4YmQxXHU1ZjAyXHU3ZmZjXHU3ZmNjXHU3ZWNlXHU4MzM1XHU4MzZiXHU1NmUwXHU2YmI3XHU5N2YzXHU5NjM0XHU1OWZiXHU1NDFmXHU5NGY2'@; put 'XHU2ZGViXHU1YmM1XHU5OTZlXHU1YzM5XHU1ZjE1XHU5NjkwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjEwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxMF1bbV1dPTUzNzYwK20sRls1Mzc2MCttXT14WzIxMF1bbV0pO2Zvcih4WzIx'@; put 'MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODlhMlx1ODlhM1x1ODlhNFx1ODlhNVx1ODlhNlx1ODlhN1x1ODlhOFx1ODlhOVx1ODlhYVx1ODlhYlx1ODlhY1x1ODlhZFx1ODlhZVx1ODlhZlx1ODliMFx1ODliMVx1ODliMlx1ODli'@; put 'M1x1ODliNFx1ODliNVx1ODliNlx1ODliN1x1ODliOFx1ODliOVx1ODliYVx1ODliYlx1ODliY1x1ODliZFx1ODliZVx1ODliZlx1ODljMFx1ODljM1x1ODljZFx1ODlkM1x1ODlkNFx1ODlkNVx1ODlkN1x1ODlkOFx1ODlkOVx1ODlkYlx1ODlkZFx1ODlkZlx1ODllMFx1ODllMVx1ODllMlx1'@; put 'ODllNFx1ODllN1x1ODllOFx1ODllOVx1ODllYVx1ODllY1x1ODllZFx1ODllZVx1ODlmMFx1ODlmMVx1ODlmMlx1ODlmNFx1ODlmNVx1ODlmNlx1ODlmN1x1ODlmOFx1ODlmOVx1ODlmYVx1ZmZmZFx1ODlmYlx1ODlmY1x1ODlmZFx1ODlmZVx1ODlmZlx1OGEwMVx1OGEwMlx1OGEwM1x1OGEw'@; put 'NFx1OGEwNVx1OGEwNlx1OGEwOFx1OGEwOVx1OGEwYVx1OGEwYlx1OGEwY1x1OGEwZFx1OGEwZVx1OGEwZlx1OGExMFx1OGExMVx1OGExMlx1OGExM1x1OGExNFx1OGExNVx1OGExNlx1OGExN1x1OGExOFx1OGExOVx1OGExYVx1OGExYlx1OGExY1x1OGExZFx1NTM3MFx1ODJmMVx1NmEzMVx1'@; put 'NWE3NFx1OWU3MFx1NWU5NFx1N2YyOFx1ODNiOVx1ODQyNFx1ODQyNVx1ODM2N1x1ODc0N1x1OGZjZVx1OGQ2Mlx1NzZjOFx1NWY3MVx1OTg5Nlx1Nzg2Y1x1NjYyMFx1NTRkZlx1NjJlNVx1NGY2M1x1ODFjM1x1NzVjOFx1NWViOFx1OTZjZFx1OGUwYVx1ODZmOVx1NTQ4Zlx1NmNmM1x1NmQ4'@; put 'Y1x1NmMzOFx1NjA3Zlx1NTJjN1x1NzUyOFx1NWU3ZFx1NGYxOFx1NjBhMFx1NWZlN1x1NWMyNFx1NzUzMVx1OTBhZVx1OTRjMFx1NzJiOVx1NmNiOVx1NmUzOFx1OTE0OVx1NjcwOVx1NTNjYlx1NTNmM1x1NGY1MVx1OTFjOVx1OGJmMVx1NTNjOFx1NWU3Y1x1OGZjMlx1NmRlNFx1NGU4ZVx1'@; put 'NzZjMlx1Njk4Nlx1ODY1ZVx1NjExYVx1ODIwNlx1NGY1OVx1NGZkZVx1OTAzZVx1OWM3Y1x1NjEwOVx1NmUxZFx1NmUxNFx1OTY4NVx1NGU4OFx1NWEzMVx1OTZlOFx1NGUwZVx1NWM3Zlx1NzliOVx1NWI4N1x1OGJlZFx1N2ZiZFx1NzM4OVx1NTdkZlx1ODI4Ylx1OTBjMVx1NTQwMVx1OTA0'@; put 'N1x1NTViYlx1NWNlYVx1NWZhMVx1NjEwOFx1NmIzMlx1NzJmMVx1ODBiMlx1OGE4OVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxMV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjExXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTFdW21dXT01NDAxNittLEZbNTQwMTYrbV09eFsyMTFd'@; put 'W21dKTtmb3IoeFsyMTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhMWVcdThhMWZcdThhMjBcdThhMjFcdThhMjJcdThhMjNcdThhMjRcdThhMjVcdThhMjZcdThhMjdcdThhMjhcdThhMjlcdThhMmFcdThhMmJcdThhMmNcdThh'@; put 'MmRcdThhMmVcdThhMmZcdThhMzBcdThhMzFcdThhMzJcdThhMzNcdThhMzRcdThhMzVcdThhMzZcdThhMzdcdThhMzhcdThhMzlcdThhM2FcdThhM2JcdThhM2NcdThhM2RcdThhM2ZcdThhNDBcdThhNDFcdThhNDJcdThhNDNcdThhNDRcdThhNDVcdThhNDZcdThhNDdcdThhNDlcdThhNGFc'@; put 'dThhNGJcdThhNGNcdThhNGRcdThhNGVcdThhNGZcdThhNTBcdThhNTFcdThhNTJcdThhNTNcdThhNTRcdThhNTVcdThhNTZcdThhNTdcdThhNThcdThhNTlcdThhNWFcdThhNWJcdThhNWNcdThhNWRcdThhNWVcdWZmZmRcdThhNWZcdThhNjBcdThhNjFcdThhNjJcdThhNjNcdThhNjRcdThh'@; put 'NjVcdThhNjZcdThhNjdcdThhNjhcdThhNjlcdThhNmFcdThhNmJcdThhNmNcdThhNmRcdThhNmVcdThhNmZcdThhNzBcdThhNzFcdThhNzJcdThhNzNcdThhNzRcdThhNzVcdThhNzZcdThhNzdcdThhNzhcdThhN2FcdThhN2JcdThhN2NcdThhN2RcdThhN2VcdThhN2ZcdThhODBcdTZkNzRc'@; put 'dTViZDNcdTg4ZDVcdTk4ODRcdThjNmJcdTlhNmRcdTllMzNcdTZlMGFcdTUxYTRcdTUxNDNcdTU3YTNcdTg4ODFcdTUzOWZcdTYzZjRcdThmOTVcdTU2ZWRcdTU0NThcdTU3MDZcdTczM2ZcdTZlOTBcdTdmMThcdThmZGNcdTgyZDFcdTYxM2ZcdTYwMjhcdTk2NjJcdTY2ZjBcdTdlYTZcdThk'@; put 'OGFcdThkYzNcdTk0YTVcdTVjYjNcdTdjYTRcdTY3MDhcdTYwYTZcdTk2MDVcdTgwMThcdTRlOTFcdTkwZTdcdTUzMDBcdTk2NjhcdTUxNDFcdThmZDBcdTg1NzRcdTkxNWRcdTY2NTVcdTk3ZjVcdTViNTVcdTUzMWRcdTc4MzhcdTY3NDJcdTY4M2RcdTU0YzlcdTcwN2VcdTViYjBcdThmN2Rc'@; put 'dTUxOGRcdTU3MjhcdTU0YjFcdTY1MTJcdTY2ODJcdThkNWVcdThkNDNcdTgxMGZcdTg0NmNcdTkwNmRcdTdjZGZcdTUxZmZcdTg1ZmJcdTY3YTNcdTY1ZTlcdTZmYTFcdTg2YTRcdThlODFcdTU2NmFcdTkwMjBcdTc2ODJcdTcwNzZcdTcxZTVcdThkMjNcdTYyZTlcdTUyMTlcdTZjZmRcdThk'@; put 'M2NcdTYwMGVcdTU4OWVcdTYxOGVcdTY2ZmVcdThkNjBcdTYyNGVcdTU1YjNcdTZlMjNcdTY3MmRcdThmNjdcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxMl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjEyXVttXV09NTQyNzIrbSxGWzU0'@; put 'MjcyK21dPXhbMjEyXVttXSk7Zm9yKHhbMjEzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YTgxXHU4YTgyXHU4YTgzXHU4YTg0XHU4YTg1XHU4YTg2XHU4YTg3XHU4YTg4XHU4YThiXHU4YThjXHU4YThkXHU4YThlXHU4YThmXHU4'@; put 'YTkwXHU4YTkxXHU4YTkyXHU4YTk0XHU4YTk1XHU4YTk2XHU4YTk3XHU4YTk4XHU4YTk5XHU4YTlhXHU4YTliXHU4YTljXHU4YTlkXHU4YTllXHU4YTlmXHU4YWEwXHU4YWExXHU4YWEyXHU4YWEzXHU4YWE0XHU4YWE1XHU4YWE2XHU4YWE3XHU4YWE4XHU4YWE5XHU4YWFhXHU4YWFiXHU4YWFj'@; put 'XHU4YWFkXHU4YWFlXHU4YWFmXHU4YWIwXHU4YWIxXHU4YWIyXHU4YWIzXHU4YWI0XHU4YWI1XHU4YWI2XHU4YWI3XHU4YWI4XHU4YWI5XHU4YWJhXHU4YWJiXHU4YWJjXHU4YWJkXHU4YWJlXHU4YWJmXHU4YWMwXHU4YWMxXHU4YWMyXHVmZmZkXHU4YWMzXHU4YWM0XHU4YWM1XHU4YWM2XHU4'@; put 'YWM3XHU4YWM4XHU4YWM5XHU4YWNhXHU4YWNiXHU4YWNjXHU4YWNkXHU4YWNlXHU4YWNmXHU4YWQwXHU4YWQxXHU4YWQyXHU4YWQzXHU4YWQ0XHU4YWQ1XHU4YWQ2XHU4YWQ3XHU4YWQ4XHU4YWQ5XHU4YWRhXHU4YWRiXHU4YWRjXHU4YWRkXHU4YWRlXHU4YWRmXHU4YWUwXHU4YWUxXHU4YWUy'@; put 'XHU4YWUzXHU5NGUxXHU5NWY4XHU3NzI4XHU2ODA1XHU2OWE4XHU1NDhiXHU0ZTRkXHU3MGI4XHU4YmM4XHU2NDU4XHU2NThiXHU1Yjg1XHU3YTg0XHU1MDNhXHU1YmU4XHU3N2JiXHU2YmUxXHU4YTc5XHU3Yzk4XHU2Y2JlXHU3NmNmXHU2NWE5XHU4Zjk3XHU1ZDJkXHU1YzU1XHU4NjM4XHU2'@; put 'ODA4XHU1MzYwXHU2MjE4XHU3YWQ5XHU2ZTViXHU3ZWZkXHU2YTFmXHU3YWUwXHU1ZjcwXHU2ZjMzXHU1ZjIwXHU2MzhjXHU2ZGE4XHU2NzU2XHU0ZTA4XHU1ZTEwXHU4ZDI2XHU0ZWQ3XHU4MGMwXHU3NjM0XHU5NjljXHU2MmRiXHU2NjJkXHU2MjdlXHU2Y2JjXHU4ZDc1XHU3MTY3XHU3ZjY5'@; put 'XHU1MTQ2XHU4MDg3XHU1M2VjXHU5MDZlXHU2Mjk4XHU1NGYyXHU4NmYwXHU4Zjk5XHU4MDA1XHU5NTE3XHU4NTE3XHU4ZmQ5XHU2ZDU5XHU3M2NkXHU2NTlmXHU3NzFmXHU3NTA0XHU3ODI3XHU4MWZiXHU4ZDFlXHU5NDg4XHU0ZmE2XHU2Nzk1XHU3NWI5XHU4YmNhXHU5NzA3XHU2MzJmXHU5'@; put 'NTQ3XHU5NjM1XHU4NGI4XHU2MzIzXHU3NzQxXHU1ZjgxXHU3MmYwXHU0ZTg5XHU2MDE0XHU2NTc0XHU2MmVmXHU2YjYzXHU2NTNmXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjEzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxM11bbV1d'@; put 'PTU0NTI4K20sRls1NDUyOCttXT14WzIxM11bbV0pO2Zvcih4WzIxNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlNFx1OGFlNVx1OGFlNlx1OGFlN1x1OGFlOFx1OGFlOVx1OGFlYVx1OGFlYlx1OGFlY1x1OGFlZFx1OGFlZVx1'@; put 'OGFlZlx1OGFmMFx1OGFmMVx1OGFmMlx1OGFmM1x1OGFmNFx1OGFmNVx1OGFmNlx1OGFmN1x1OGFmOFx1OGFmOVx1OGFmYVx1OGFmYlx1OGFmY1x1OGFmZFx1OGFmZVx1OGFmZlx1OGIwMFx1OGIwMVx1OGIwMlx1OGIwM1x1OGIwNFx1OGIwNVx1OGIwNlx1OGIwOFx1OGIwOVx1OGIwYVx1OGIw'@; put 'Ylx1OGIwY1x1OGIwZFx1OGIwZVx1OGIwZlx1OGIxMFx1OGIxMVx1OGIxMlx1OGIxM1x1OGIxNFx1OGIxNVx1OGIxNlx1OGIxN1x1OGIxOFx1OGIxOVx1OGIxYVx1OGIxYlx1OGIxY1x1OGIxZFx1OGIxZVx1OGIxZlx1OGIyMFx1OGIyMVx1OGIyMlx1OGIyM1x1ZmZmZFx1OGIyNFx1OGIyNVx1'@; put 'OGIyN1x1OGIyOFx1OGIyOVx1OGIyYVx1OGIyYlx1OGIyY1x1OGIyZFx1OGIyZVx1OGIyZlx1OGIzMFx1OGIzMVx1OGIzMlx1OGIzM1x1OGIzNFx1OGIzNVx1OGIzNlx1OGIzN1x1OGIzOFx1OGIzOVx1OGIzYVx1OGIzYlx1OGIzY1x1OGIzZFx1OGIzZVx1OGIzZlx1OGI0MFx1OGI0MVx1OGI0'@; put 'Mlx1OGI0M1x1OGI0NFx1OGI0NVx1NWUyN1x1NzVjN1x1OTBkMVx1OGJjMVx1ODI5ZFx1Njc5ZFx1NjUyZlx1NTQzMVx1ODcxOFx1NzdlNVx1ODBhMlx1ODEwMlx1NmM0MVx1NGU0Ylx1N2VjN1x1ODA0Y1x1NzZmNFx1NjkwZFx1NmI5Nlx1NjI2N1x1NTAzY1x1NGY4NFx1NTc0MFx1NjMwN1x1'@; put 'NmI2Mlx1OGRiZVx1NTNlYVx1NjVlOFx1N2ViOFx1NWZkN1x1NjMxYVx1NjNiN1x1ODFmM1x1ODFmNFx1N2Y2ZVx1NWUxY1x1NWNkOVx1NTIzNlx1NjY3YVx1NzllOVx1N2ExYVx1OGQyOFx1NzA5OVx1NzVkNFx1NmVkZVx1NmNiYlx1N2E5Mlx1NGUyZFx1NzZjNVx1NWZlMFx1OTQ5Zlx1ODg3'@; put 'N1x1N2VjOFx1NzljZFx1ODBiZlx1OTFjZFx1NGVmMlx1NGYxN1x1ODIxZlx1NTQ2OFx1NWRkZVx1NmQzMlx1OGJjY1x1N2NhNVx1OGY3NFx1ODA5OFx1NWUxYVx1NTQ5Mlx1NzZiMVx1NWI5OVx1NjYzY1x1OWFhNFx1NzNlMFx1NjgyYVx1ODZkYlx1NjczMVx1NzMyYVx1OGJmOFx1OGJkYlx1'@; put 'OTAxMFx1N2FmOVx1NzBkYlx1NzE2ZVx1NjJjNFx1NzdhOVx1NTYzMVx1NGUzYlx1ODQ1N1x1NjdmMVx1NTJhOVx1ODZjMFx1OGQyZVx1OTRmOFx1N2I1MVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxNF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjE0XVttXS5jaGFyQ29kZUF0KDApJiYo'@; put 'YWVbeFsyMTRdW21dXT01NDc4NCttLEZbNTQ3ODQrbV09eFsyMTRdW21dKTtmb3IoeFsyMTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiNDZcdThiNDdcdThiNDhcdThiNDlcdThiNGFcdThiNGJcdThiNGNcdThiNGRcdThiNGVc'@; put 'dThiNGZcdThiNTBcdThiNTFcdThiNTJcdThiNTNcdThiNTRcdThiNTVcdThiNTZcdThiNTdcdThiNThcdThiNTlcdThiNWFcdThiNWJcdThiNWNcdThiNWRcdThiNWVcdThiNWZcdThiNjBcdThiNjFcdThiNjJcdThiNjNcdThiNjRcdThiNjVcdThiNjdcdThiNjhcdThiNjlcdThiNmFcdThi'@; put 'NmJcdThiNmRcdThiNmVcdThiNmZcdThiNzBcdThiNzFcdThiNzJcdThiNzNcdThiNzRcdThiNzVcdThiNzZcdThiNzdcdThiNzhcdThiNzlcdThiN2FcdThiN2JcdThiN2NcdThiN2RcdThiN2VcdThiN2ZcdThiODBcdThiODFcdThiODJcdThiODNcdThiODRcdThiODVcdThiODZcdWZmZmRc'@; put 'dThiODdcdThiODhcdThiODlcdThiOGFcdThiOGJcdThiOGNcdThiOGRcdThiOGVcdThiOGZcdThiOTBcdThiOTFcdThiOTJcdThiOTNcdThiOTRcdThiOTVcdThiOTZcdThiOTdcdThiOThcdThiOTlcdThiOWFcdThiOWJcdThiOWNcdThiOWRcdThiOWVcdThiOWZcdThiYWNcdThiYjFcdThi'@; put 'YmJcdThiYzdcdThiZDBcdThiZWFcdThjMDlcdThjMWVcdTRmNGZcdTZjZThcdTc5NWRcdTlhN2JcdTYyOTNcdTcyMmFcdTYyZmRcdTRlMTNcdTc4MTZcdThmNmNcdTY0YjBcdThkNWFcdTdiYzZcdTY4NjlcdTVlODRcdTg4YzVcdTU5ODZcdTY0OWVcdTU4ZWVcdTcyYjZcdTY5MGVcdTk1MjVc'@; put 'dThmZmRcdThkNThcdTU3NjBcdTdmMDBcdThjMDZcdTUxYzZcdTYzNDlcdTYyZDlcdTUzNTNcdTY4NGNcdTc0MjJcdTgzMDFcdTkxNGNcdTU1NDRcdTc3NDBcdTcwN2NcdTZkNGFcdTUxNzlcdTU0YThcdThkNDRcdTU5ZmZcdTZlY2JcdTZkYzRcdTViNWNcdTdkMmJcdTRlZDRcdTdjN2RcdTZl'@; put 'ZDNcdTViNTBcdTgxZWFcdTZlMGRcdTViNTdcdTliMDNcdTY4ZDVcdThlMmFcdTViOTdcdTdlZmNcdTYwM2JcdTdlYjVcdTkwYjlcdThkNzBcdTU5NGZcdTYzY2RcdTc5ZGZcdThkYjNcdTUzNTJcdTY1Y2ZcdTc5NTZcdThiYzVcdTk2M2JcdTdlYzRcdTk0YmJcdTdlODJcdTU2MzRcdTkxODlc'@; put 'dTY3MDBcdTdmNmFcdTVjMGFcdTkwNzVcdTY2MjhcdTVkZTZcdTRmNTBcdTY3ZGVcdTUwNWFcdTRmNWNcdTU3NTBcdTVlYTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxNV1bbV0uY2hh'@; put 'ckNvZGVBdCgwKSYmKGFlW3hbMjE1XVttXV09NTUwNDArbSxGWzU1MDQwK21dPXhbMjE1XVttXSk7Zm9yKHhbMjE2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YzM4XHU4YzM5XHU4YzNhXHU4YzNiXHU4YzNjXHU4YzNkXHU4YzNl'@; put 'XHU4YzNmXHU4YzQwXHU4YzQyXHU4YzQzXHU4YzQ0XHU4YzQ1XHU4YzQ4XHU4YzRhXHU4YzRiXHU4YzRkXHU4YzRlXHU4YzRmXHU4YzUwXHU4YzUxXHU4YzUyXHU4YzUzXHU4YzU0XHU4YzU2XHU4YzU3XHU4YzU4XHU4YzU5XHU4YzViXHU4YzVjXHU4YzVkXHU4YzVlXHU4YzVmXHU4YzYwXHU4'@; put 'YzYzXHU4YzY0XHU4YzY1XHU4YzY2XHU4YzY3XHU4YzY4XHU4YzY5XHU4YzZjXHU4YzZkXHU4YzZlXHU4YzZmXHU4YzcwXHU4YzcxXHU4YzcyXHU4Yzc0XHU4Yzc1XHU4Yzc2XHU4Yzc3XHU4YzdiXHU4YzdjXHU4YzdkXHU4YzdlXHU4YzdmXHU4YzgwXHU4YzgxXHU4YzgzXHU4Yzg0XHU4Yzg2'@; put 'XHU4Yzg3XHVmZmZkXHU4Yzg4XHU4YzhiXHU4YzhkXHU4YzhlXHU4YzhmXHU4YzkwXHU4YzkxXHU4YzkyXHU4YzkzXHU4Yzk1XHU4Yzk2XHU4Yzk3XHU4Yzk5XHU4YzlhXHU4YzliXHU4YzljXHU4YzlkXHU4YzllXHU4YzlmXHU4Y2EwXHU4Y2ExXHU4Y2EyXHU4Y2EzXHU4Y2E0XHU4Y2E1XHU4'@; put 'Y2E2XHU4Y2E3XHU4Y2E4XHU4Y2E5XHU4Y2FhXHU4Y2FiXHU4Y2FjXHU4Y2FkXHU0ZThkXHU0ZTBjXHU1MTQwXHU0ZTEwXHU1ZWZmXHU1MzQ1XHU0ZTE1XHU0ZTk4XHU0ZTFlXHU5YjMyXHU1YjZjXHU1NjY5XHU0ZTI4XHU3OWJhXHU0ZTNmXHU1MzE1XHU0ZTQ3XHU1OTJkXHU3MjNiXHU1MzZl'@; put 'XHU2YzEwXHU1NmRmXHU4MGU0XHU5OTk3XHU2YmQzXHU3NzdlXHU5ZjE3XHU0ZTM2XHU0ZTlmXHU5ZjEwXHU0ZTVjXHU0ZTY5XHU0ZTkzXHU4Mjg4XHU1YjViXHU1NTZjXHU1NjBmXHU0ZWM0XHU1MzhkXHU1MzlkXHU1M2EzXHU1M2E1XHU1M2FlXHU5NzY1XHU4ZDVkXHU1MzFhXHU1M2Y1XHU1'@; put 'MzI2XHU1MzJlXHU1MzNlXHU4ZDVjXHU1MzY2XHU1MzYzXHU1MjAyXHU1MjA4XHU1MjBlXHU1MjJkXHU1MjMzXHU1MjNmXHU1MjQwXHU1MjRjXHU1MjVlXHU1MjYxXHU1MjVjXHU4NGFmXHU1MjdkXHU1MjgyXHU1MjgxXHU1MjkwXHU1MjkzXHU1MTgyXHU3ZjU0XHU0ZWJiXHU0ZWMzXHU0ZWM5'@; put 'XHU0ZWMyXHU0ZWU4XHU0ZWUxXHU0ZWViXHU0ZWRlXHU0ZjFiXHU0ZWYzXHU0ZjIyXHU0ZjY0XHU0ZWY1XHU0ZjI1XHU0ZjI3XHU0ZjA5XHU0ZjJiXHU0ZjVlXHU0ZjY3XHU2NTM4XHU0ZjVhXHU0ZjVkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjE2XS5sZW5ndGg7KyttKTY1NTMzIT09'@; put 'eFsyMTZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxNl1bbV1dPTU1Mjk2K20sRls1NTI5NittXT14WzIxNl1bbV0pO2Zvcih4WzIxN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGNhZVx1OGNhZlx1OGNiMFx1OGNiMVx1OGNi'@; put 'Mlx1OGNiM1x1OGNiNFx1OGNiNVx1OGNiNlx1OGNiN1x1OGNiOFx1OGNiOVx1OGNiYVx1OGNiYlx1OGNiY1x1OGNiZFx1OGNiZVx1OGNiZlx1OGNjMFx1OGNjMVx1OGNjMlx1OGNjM1x1OGNjNFx1OGNjNVx1OGNjNlx1OGNjN1x1OGNjOFx1OGNjOVx1OGNjYVx1OGNjYlx1OGNjY1x1OGNjZFx1'@; put 'OGNjZVx1OGNjZlx1OGNkMFx1OGNkMVx1OGNkMlx1OGNkM1x1OGNkNFx1OGNkNVx1OGNkNlx1OGNkN1x1OGNkOFx1OGNkOVx1OGNkYVx1OGNkYlx1OGNkY1x1OGNkZFx1OGNkZVx1OGNkZlx1OGNlMFx1OGNlMVx1OGNlMlx1OGNlM1x1OGNlNFx1OGNlNVx1OGNlNlx1OGNlN1x1OGNlOFx1OGNl'@; put 'OVx1OGNlYVx1OGNlYlx1OGNlY1x1ZmZmZFx1OGNlZFx1OGNlZVx1OGNlZlx1OGNmMFx1OGNmMVx1OGNmMlx1OGNmM1x1OGNmNFx1OGNmNVx1OGNmNlx1OGNmN1x1OGNmOFx1OGNmOVx1OGNmYVx1OGNmYlx1OGNmY1x1OGNmZFx1OGNmZVx1OGNmZlx1OGQwMFx1OGQwMVx1OGQwMlx1OGQwM1x1'@; put 'OGQwNFx1OGQwNVx1OGQwNlx1OGQwN1x1OGQwOFx1OGQwOVx1OGQwYVx1OGQwYlx1OGQwY1x1OGQwZFx1NGY1Zlx1NGY1N1x1NGYzMlx1NGYzZFx1NGY3Nlx1NGY3NFx1NGY5MVx1NGY4OVx1NGY4M1x1NGY4Zlx1NGY3ZVx1NGY3Ylx1NGZhYVx1NGY3Y1x1NGZhY1x1NGY5NFx1NGZlNlx1NGZl'@; put 'OFx1NGZlYVx1NGZjNVx1NGZkYVx1NGZlM1x1NGZkY1x1NGZkMVx1NGZkZlx1NGZmOFx1NTAyOVx1NTA0Y1x1NGZmM1x1NTAyY1x1NTAwZlx1NTAyZVx1NTAyZFx1NGZmZVx1NTAxY1x1NTAwY1x1NTAyNVx1NTAyOFx1NTA3ZVx1NTA0M1x1NTA1NVx1NTA0OFx1NTA0ZVx1NTA2Y1x1NTA3Ylx1'@; put 'NTBhNVx1NTBhN1x1NTBhOVx1NTBiYVx1NTBkNlx1NTEwNlx1NTBlZFx1NTBlY1x1NTBlNlx1NTBlZVx1NTEwN1x1NTEwYlx1NGVkZFx1NmMzZFx1NGY1OFx1NGY2NVx1NGZjZVx1OWZhMFx1NmM0Nlx1N2M3NFx1NTE2ZVx1NWRmZFx1OWVjOVx1OTk5OFx1NTE4MVx1NTkxNFx1NTJmOVx1NTMw'@; put 'ZFx1OGEwN1x1NTMxMFx1NTFlYlx1NTkxOVx1NTE1NVx1NGVhMFx1NTE1Nlx1NGViM1x1ODg2ZVx1ODhhNFx1NGViNVx1ODExNFx1ODhkMlx1Nzk4MFx1NWIzNFx1ODgwM1x1N2ZiOFx1NTFhYlx1NTFiMVx1NTFiZFx1NTFiY1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxN10ubGVuZ3Ro'@; put 'OysrbSk2NTUzMyE9PXhbMjE3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTddW21dXT01NTU1MittLEZbNTU1NTIrbV09eFsyMTddW21dKTtmb3IoeFsyMThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThkMGVcdThkMGZcdThk'@; put 'MTBcdThkMTFcdThkMTJcdThkMTNcdThkMTRcdThkMTVcdThkMTZcdThkMTdcdThkMThcdThkMTlcdThkMWFcdThkMWJcdThkMWNcdThkMjBcdThkNTFcdThkNTJcdThkNTdcdThkNWZcdThkNjVcdThkNjhcdThkNjlcdThkNmFcdThkNmNcdThkNmVcdThkNmZcdThkNzFcdThkNzJcdThkNzhc'@; put 'dThkNzlcdThkN2FcdThkN2JcdThkN2NcdThkN2RcdThkN2VcdThkN2ZcdThkODBcdThkODJcdThkODNcdThkODZcdThkODdcdThkODhcdThkODlcdThkOGNcdThkOGRcdThkOGVcdThkOGZcdThkOTBcdThkOTJcdThkOTNcdThkOTVcdThkOTZcdThkOTdcdThkOThcdThkOTlcdThkOWFcdThk'@; put 'OWJcdThkOWNcdThkOWRcdThkOWVcdThkYTBcdThkYTFcdWZmZmRcdThkYTJcdThkYTRcdThkYTVcdThkYTZcdThkYTdcdThkYThcdThkYTlcdThkYWFcdThkYWJcdThkYWNcdThkYWRcdThkYWVcdThkYWZcdThkYjBcdThkYjJcdThkYjZcdThkYjdcdThkYjlcdThkYmJcdThkYmRcdThkYzBc'@; put 'dThkYzFcdThkYzJcdThkYzVcdThkYzdcdThkYzhcdThkYzlcdThkY2FcdThkY2RcdThkZDBcdThkZDJcdThkZDNcdThkZDRcdTUxYzdcdTUxOTZcdTUxYTJcdTUxYTVcdThiYTBcdThiYTZcdThiYTdcdThiYWFcdThiYjRcdThiYjVcdThiYjdcdThiYzJcdThiYzNcdThiY2JcdThiY2ZcdThi'@; put 'Y2VcdThiZDJcdThiZDNcdThiZDRcdThiZDZcdThiZDhcdThiZDlcdThiZGNcdThiZGZcdThiZTBcdThiZTRcdThiZThcdThiZTlcdThiZWVcdThiZjBcdThiZjNcdThiZjZcdThiZjlcdThiZmNcdThiZmZcdThjMDBcdThjMDJcdThjMDRcdThjMDdcdThjMGNcdThjMGZcdThjMTFcdThjMTJc'@; put 'dThjMTRcdThjMTVcdThjMTZcdThjMTlcdThjMWJcdThjMThcdThjMWRcdThjMWZcdThjMjBcdThjMjFcdThjMjVcdThjMjdcdThjMmFcdThjMmJcdThjMmVcdThjMmZcdThjMzJcdThjMzNcdThjMzVcdThjMzZcdTUzNjlcdTUzN2FcdTk2MWRcdTk2MjJcdTk2MjFcdTk2MzFcdTk2MmFcdTk2'@; put 'M2RcdTk2M2NcdTk2NDJcdTk2NDlcdTk2NTRcdTk2NWZcdTk2NjdcdTk2NmNcdTk2NzJcdTk2NzRcdTk2ODhcdTk2OGRcdTk2OTdcdTk2YjBcdTkwOTdcdTkwOWJcdTkwOWRcdTkwOTlcdTkwYWNcdTkwYTFcdTkwYjRcdTkwYjNcdTkwYjZcdTkwYmFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9'@; put 'eFsyMThdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxOF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjE4XVttXV09NTU4MDgrbSxGWzU1ODA4K21dPXhbMjE4XVttXSk7Zm9yKHhbMjE5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4'@; put 'ZGQ1XHU4ZGQ4XHU4ZGQ5XHU4ZGRjXHU4ZGUwXHU4ZGUxXHU4ZGUyXHU4ZGU1XHU4ZGU2XHU4ZGU3XHU4ZGU5XHU4ZGVkXHU4ZGVlXHU4ZGYwXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGY2XHU4ZGZjXHU4ZGZlXHU4ZGZmXHU4ZTAwXHU4ZTAxXHU4ZTAyXHU4ZTAzXHU4ZTA0XHU4ZTA2XHU4ZTA3'@; put 'XHU4ZTA4XHU4ZTBiXHU4ZTBkXHU4ZTBlXHU4ZTEwXHU4ZTExXHU4ZTEyXHU4ZTEzXHU4ZTE1XHU4ZTE2XHU4ZTE3XHU4ZTE4XHU4ZTE5XHU4ZTFhXHU4ZTFiXHU4ZTFjXHU4ZTIwXHU4ZTIxXHU4ZTI0XHU4ZTI1XHU4ZTI2XHU4ZTI3XHU4ZTI4XHU4ZTJiXHU4ZTJkXHU4ZTMwXHU4ZTMyXHU4'@; put 'ZTMzXHU4ZTM0XHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTNiXHU4ZTNjXHU4ZTNlXHVmZmZkXHU4ZTNmXHU4ZTQzXHU4ZTQ1XHU4ZTQ2XHU4ZTRjXHU4ZTRkXHU4ZTRlXHU4ZTRmXHU4ZTUwXHU4ZTUzXHU4ZTU0XHU4ZTU1XHU4ZTU2XHU4ZTU3XHU4ZTU4XHU4ZTVhXHU4ZTViXHU4ZTVjXHU4ZTVk'@; put 'XHU4ZTVlXHU4ZTVmXHU4ZTYwXHU4ZTYxXHU4ZTYyXHU4ZTYzXHU4ZTY0XHU4ZTY1XHU4ZTY3XHU4ZTY4XHU4ZTZhXHU4ZTZiXHU4ZTZlXHU4ZTcxXHU5MGI4XHU5MGIwXHU5MGNmXHU5MGM1XHU5MGJlXHU5MGQwXHU5MGM0XHU5MGM3XHU5MGQzXHU5MGU2XHU5MGUyXHU5MGRjXHU5MGQ3XHU5'@; put 'MGRiXHU5MGViXHU5MGVmXHU5MGZlXHU5MTA0XHU5MTIyXHU5MTFlXHU5MTIzXHU5MTMxXHU5MTJmXHU5MTM5XHU5MTQzXHU5MTQ2XHU1MjBkXHU1OTQyXHU1MmEyXHU1MmFjXHU1MmFkXHU1MmJlXHU1NGZmXHU1MmQwXHU1MmQ2XHU1MmYwXHU1M2RmXHU3MWVlXHU3N2NkXHU1ZWY0XHU1MWY1'@; put 'XHU1MWZjXHU5YjJmXHU1M2I2XHU1ZjAxXHU3NTVhXHU1ZGVmXHU1NzRjXHU1N2E5XHU1N2ExXHU1ODdlXHU1OGJjXHU1OGM1XHU1OGQxXHU1NzI5XHU1NzJjXHU1NzJhXHU1NzMzXHU1NzM5XHU1NzJlXHU1NzJmXHU1NzVjXHU1NzNiXHU1NzQyXHU1NzY5XHU1Nzg1XHU1NzZiXHU1Nzg2XHU1'@; put 'NzdjXHU1NzdiXHU1NzY4XHU1NzZkXHU1Nzc2XHU1NzczXHU1N2FkXHU1N2E0XHU1NzhjXHU1N2IyXHU1N2NmXHU1N2E3XHU1N2I0XHU1NzkzXHU1N2EwXHU1N2Q1XHU1N2Q4XHU1N2RhXHU1N2Q5XHU1N2QyXHU1N2I4XHU1N2Y0XHU1N2VmXHU1N2Y4XHU1N2U0XHU1N2RkXHVmZmZkIi5zcGxp'@; put 'dCgiIiksbT0wO20hPXhbMjE5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxOV1bbV1dPTU2MDY0K20sRls1NjA2NCttXT14WzIxOV1bbV0pO2Zvcih4WzIyMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1OGU3M1x1OGU3NVx1OGU3N1x1OGU3OFx1OGU3OVx1OGU3YVx1OGU3Ylx1OGU3ZFx1OGU3ZVx1OGU4MFx1OGU4Mlx1OGU4M1x1OGU4NFx1OGU4Nlx1OGU4OFx1OGU4OVx1OGU4YVx1OGU4Ylx1OGU4Y1x1OGU4ZFx1OGU4ZVx1OGU5MVx1OGU5Mlx1OGU5M1x1OGU5NVx1OGU5'@; put 'Nlx1OGU5N1x1OGU5OFx1OGU5OVx1OGU5YVx1OGU5Ylx1OGU5ZFx1OGU5Zlx1OGVhMFx1OGVhMVx1OGVhMlx1OGVhM1x1OGVhNFx1OGVhNVx1OGVhNlx1OGVhN1x1OGVhOFx1OGVhOVx1OGVhYVx1OGVhZFx1OGVhZVx1OGViMFx1OGViMVx1OGViM1x1OGViNFx1OGViNVx1OGViNlx1OGViN1x1'@; put 'OGViOFx1OGViOVx1OGViYlx1OGViY1x1OGViZFx1OGViZVx1OGViZlx1OGVjMFx1OGVjMVx1OGVjMlx1ZmZmZFx1OGVjM1x1OGVjNFx1OGVjNVx1OGVjNlx1OGVjN1x1OGVjOFx1OGVjOVx1OGVjYVx1OGVjYlx1OGVjY1x1OGVjZFx1OGVjZlx1OGVkMFx1OGVkMVx1OGVkMlx1OGVkM1x1OGVk'@; put 'NFx1OGVkNVx1OGVkNlx1OGVkN1x1OGVkOFx1OGVkOVx1OGVkYVx1OGVkYlx1OGVkY1x1OGVkZFx1OGVkZVx1OGVkZlx1OGVlMFx1OGVlMVx1OGVlMlx1OGVlM1x1OGVlNFx1NTgwYlx1NTgwZFx1NTdmZFx1NTdlZFx1NTgwMFx1NTgxZVx1NTgxOVx1NTg0NFx1NTgyMFx1NTg2NVx1NTg2Y1x1'@; put 'NTg4MVx1NTg4OVx1NTg5YVx1NTg4MFx1OTlhOFx1OWYxOVx1NjFmZlx1ODI3OVx1ODI3ZFx1ODI3Zlx1ODI4Zlx1ODI4YVx1ODJhOFx1ODI4NFx1ODI4ZVx1ODI5MVx1ODI5N1x1ODI5OVx1ODJhYlx1ODJiOFx1ODJiZVx1ODJiMFx1ODJjOFx1ODJjYVx1ODJlM1x1ODI5OFx1ODJiN1x1ODJh'@; put 'ZVx1ODJjYlx1ODJjY1x1ODJjMVx1ODJhOVx1ODJiNFx1ODJhMVx1ODJhYVx1ODI5Zlx1ODJjNFx1ODJjZVx1ODJhNFx1ODJlMVx1ODMwOVx1ODJmN1x1ODJlNFx1ODMwZlx1ODMwN1x1ODJkY1x1ODJmNFx1ODJkMlx1ODJkOFx1ODMwY1x1ODJmYlx1ODJkM1x1ODMxMVx1ODMxYVx1ODMwNlx1'@; put 'ODMxNFx1ODMxNVx1ODJlMFx1ODJkNVx1ODMxY1x1ODM1MVx1ODM1Ylx1ODM1Y1x1ODMwOFx1ODM5Mlx1ODMzY1x1ODMzNFx1ODMzMVx1ODM5Ylx1ODM1ZVx1ODMyZlx1ODM0Zlx1ODM0N1x1ODM0M1x1ODM1Zlx1ODM0MFx1ODMxN1x1ODM2MFx1ODMyZFx1ODMzYVx1ODMzM1x1ODM2Nlx1ODM2'@; put 'NVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyMF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjIwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjBdW21dXT01NjMyMCttLEZbNTYzMjArbV09eFsyMjBdW21dKTtmb3IoeFsyMjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlZTVcdThlZTZcdThlZTdcdThlZThcdThlZTlcdThlZWFcdThlZWJcdThlZWNcdThlZWRcdThlZWVcdThlZWZcdThlZjBcdThlZjFcdThlZjJcdThlZjNcdThlZjRcdThlZjVcdThlZjZcdThlZjdcdThlZjhcdThlZjlcdThlZmFcdThlZmJcdThl'@; put 'ZmNcdThlZmRcdThlZmVcdThlZmZcdThmMDBcdThmMDFcdThmMDJcdThmMDNcdThmMDRcdThmMDVcdThmMDZcdThmMDdcdThmMDhcdThmMDlcdThmMGFcdThmMGJcdThmMGNcdThmMGRcdThmMGVcdThmMGZcdThmMTBcdThmMTFcdThmMTJcdThmMTNcdThmMTRcdThmMTVcdThmMTZcdThmMTdc'@; put 'dThmMThcdThmMTlcdThmMWFcdThmMWJcdThmMWNcdThmMWRcdThmMWVcdThmMWZcdThmMjBcdThmMjFcdThmMjJcdThmMjNcdWZmZmRcdThmMjRcdThmMjVcdThmMjZcdThmMjdcdThmMjhcdThmMjlcdThmMmFcdThmMmJcdThmMmNcdThmMmRcdThmMmVcdThmMmZcdThmMzBcdThmMzFcdThm'@; put 'MzJcdThmMzNcdThmMzRcdThmMzVcdThmMzZcdThmMzdcdThmMzhcdThmMzlcdThmM2FcdThmM2JcdThmM2NcdThmM2RcdThmM2VcdThmM2ZcdThmNDBcdThmNDFcdThmNDJcdThmNDNcdThmNDRcdTgzNjhcdTgzMWJcdTgzNjlcdTgzNmNcdTgzNmFcdTgzNmRcdTgzNmVcdTgzYjBcdTgzNzhc'@; put 'dTgzYjNcdTgzYjRcdTgzYTBcdTgzYWFcdTgzOTNcdTgzOWNcdTgzODVcdTgzN2NcdTgzYjZcdTgzYTlcdTgzN2RcdTgzYjhcdTgzN2JcdTgzOThcdTgzOWVcdTgzYThcdTgzYmFcdTgzYmNcdTgzYzFcdTg0MDFcdTgzZTVcdTgzZDhcdTU4MDdcdTg0MThcdTg0MGJcdTgzZGRcdTgzZmRcdTgz'@; put 'ZDZcdTg0MWNcdTg0MzhcdTg0MTFcdTg0MDZcdTgzZDRcdTgzZGZcdTg0MGZcdTg0MDNcdTgzZjhcdTgzZjlcdTgzZWFcdTgzYzVcdTgzYzBcdTg0MjZcdTgzZjBcdTgzZTFcdTg0NWNcdTg0NTFcdTg0NWFcdTg0NTlcdTg0NzNcdTg0ODdcdTg0ODhcdTg0N2FcdTg0ODlcdTg0NzhcdTg0M2Nc'@; put 'dTg0NDZcdTg0NjlcdTg0NzZcdTg0OGNcdTg0OGVcdTg0MzFcdTg0NmRcdTg0YzFcdTg0Y2RcdTg0ZDBcdTg0ZTZcdTg0YmRcdTg0ZDNcdTg0Y2FcdTg0YmZcdTg0YmFcdTg0ZTBcdTg0YTFcdTg0YjlcdTg0YjRcdTg0OTdcdTg0ZTVcdTg0ZTNcdTg1MGNcdTc1MGRcdTg1MzhcdTg0ZjBcdTg1'@; put 'MzlcdTg1MWZcdTg1M2FcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyMV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjIxXVttXV09NTY1NzYrbSxGWzU2NTc2K21dPXhbMjIxXVttXSk7Zm9yKHhbMjIyXT0iXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjQ1XHU4ZjQ2XHU4ZjQ3XHU4ZjQ4XHU4ZjQ5XHU4ZjRhXHU4ZjRiXHU4ZjRjXHU4ZjRkXHU4ZjRlXHU4ZjRmXHU4ZjUwXHU4ZjUxXHU4ZjUyXHU4ZjUzXHU4ZjU0XHU4ZjU1XHU4ZjU2XHU4ZjU3XHU4ZjU4XHU4ZjU5XHU4'@; put 'ZjVhXHU4ZjViXHU4ZjVjXHU4ZjVkXHU4ZjVlXHU4ZjVmXHU4ZjYwXHU4ZjYxXHU4ZjYyXHU4ZjYzXHU4ZjY0XHU4ZjY1XHU4ZjZhXHU4ZjgwXHU4ZjhjXHU4ZjkyXHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmEyXHU4ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmE3XHU4ZmFhXHU4ZmFjXHU4ZmFkXHU4ZmFl'@; put 'XHU4ZmFmXHU4ZmIyXHU4ZmIzXHU4ZmI0XHU4ZmI1XHU4ZmI3XHU4ZmI4XHU4ZmJhXHU4ZmJiXHU4ZmJjXHU4ZmJmXHU4ZmMwXHU4ZmMzXHU4ZmM2XHVmZmZkXHU4ZmM5XHU4ZmNhXHU4ZmNiXHU4ZmNjXHU4ZmNkXHU4ZmNmXHU4ZmQyXHU4ZmQ2XHU4ZmQ3XHU4ZmRhXHU4ZmUwXHU4ZmUxXHU4'@; put 'ZmUzXHU4ZmU3XHU4ZmVjXHU4ZmVmXHU4ZmYxXHU4ZmYyXHU4ZmY0XHU4ZmY1XHU4ZmY2XHU4ZmZhXHU4ZmZiXHU4ZmZjXHU4ZmZlXHU4ZmZmXHU5MDA3XHU5MDA4XHU5MDBjXHU5MDBlXHU5MDEzXHU5MDE1XHU5MDE4XHU4NTU2XHU4NTNiXHU4NGZmXHU4NGZjXHU4NTU5XHU4NTQ4XHU4NTY4'@; put 'XHU4NTY0XHU4NTVlXHU4NTdhXHU3N2EyXHU4NTQzXHU4NTcyXHU4NTdiXHU4NWE0XHU4NWE4XHU4NTg3XHU4NThmXHU4NTc5XHU4NWFlXHU4NTljXHU4NTg1XHU4NWI5XHU4NWI3XHU4NWIwXHU4NWQzXHU4NWMxXHU4NWRjXHU4NWZmXHU4NjI3XHU4NjA1XHU4NjI5XHU4NjE2XHU4NjNjXHU1'@; put 'ZWZlXHU1ZjA4XHU1OTNjXHU1OTQxXHU4MDM3XHU1OTU1XHU1OTVhXHU1OTU4XHU1MzBmXHU1YzIyXHU1YzI1XHU1YzJjXHU1YzM0XHU2MjRjXHU2MjZhXHU2MjlmXHU2MmJiXHU2MmNhXHU2MmRhXHU2MmQ3XHU2MmVlXHU2MzIyXHU2MmY2XHU2MzM5XHU2MzRiXHU2MzQzXHU2M2FkXHU2M2Y2'@; put 'XHU2MzcxXHU2MzdhXHU2MzhlXHU2M2I0XHU2MzZkXHU2M2FjXHU2MzhhXHU2MzY5XHU2M2FlXHU2M2JjXHU2M2YyXHU2M2Y4XHU2M2UwXHU2M2ZmXHU2M2M0XHU2M2RlXHU2M2NlXHU2NDUyXHU2M2M2XHU2M2JlXHU2NDQ1XHU2NDQxXHU2NDBiXHU2NDFiXHU2NDIwXHU2NDBjXHU2NDI2XHU2'@; put 'NDIxXHU2NDVlXHU2NDg0XHU2NDZkXHU2NDk2XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjIyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyMl1bbV1dPTU2ODMyK20sRls1NjgzMittXT14WzIyMl1bbV0pO2Zvcih4WzIyM109Ilx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTAxOVx1OTAxY1x1OTAyM1x1OTAyNFx1OTAyNVx1OTAyN1x1OTAyOFx1OTAyOVx1OTAyYVx1OTAyYlx1OTAyY1x1OTAzMFx1OTAzMVx1OTAzMlx1OTAzM1x1OTAzNFx1OTAzN1x1OTAzOVx1OTAzYVx1'@; put 'OTAzZFx1OTAzZlx1OTA0MFx1OTA0M1x1OTA0NVx1OTA0Nlx1OTA0OFx1OTA0OVx1OTA0YVx1OTA0Ylx1OTA0Y1x1OTA0ZVx1OTA1NFx1OTA1NVx1OTA1Nlx1OTA1OVx1OTA1YVx1OTA1Y1x1OTA1ZFx1OTA1ZVx1OTA1Zlx1OTA2MFx1OTA2MVx1OTA2NFx1OTA2Nlx1OTA2N1x1OTA2OVx1OTA2'@; put 'YVx1OTA2Ylx1OTA2Y1x1OTA2Zlx1OTA3MFx1OTA3MVx1OTA3Mlx1OTA3M1x1OTA3Nlx1OTA3N1x1OTA3OFx1OTA3OVx1OTA3YVx1OTA3Ylx1OTA3Y1x1OTA3ZVx1OTA4MVx1ZmZmZFx1OTA4NFx1OTA4NVx1OTA4Nlx1OTA4N1x1OTA4OVx1OTA4YVx1OTA4Y1x1OTA4ZFx1OTA4ZVx1OTA4Zlx1'@; put 'OTA5MFx1OTA5Mlx1OTA5NFx1OTA5Nlx1OTA5OFx1OTA5YVx1OTA5Y1x1OTA5ZVx1OTA5Zlx1OTBhMFx1OTBhNFx1OTBhNVx1OTBhN1x1OTBhOFx1OTBhOVx1OTBhYlx1OTBhZFx1OTBiMlx1OTBiN1x1OTBiY1x1OTBiZFx1OTBiZlx1OTBjMFx1NjQ3YVx1NjRiN1x1NjRiOFx1NjQ5OVx1NjRi'@; put 'YVx1NjRjMFx1NjRkMFx1NjRkN1x1NjRlNFx1NjRlMlx1NjUwOVx1NjUyNVx1NjUyZVx1NWYwYlx1NWZkMlx1NzUxOVx1NWYxMVx1NTM1Zlx1NTNmMVx1NTNmZFx1NTNlOVx1NTNlOFx1NTNmYlx1NTQxMlx1NTQxNlx1NTQwNlx1NTQ0Ylx1NTQ1Mlx1NTQ1M1x1NTQ1NFx1NTQ1Nlx1NTQ0M1x1'@; put 'NTQyMVx1NTQ1N1x1NTQ1OVx1NTQyM1x1NTQzMlx1NTQ4Mlx1NTQ5NFx1NTQ3N1x1NTQ3MVx1NTQ2NFx1NTQ5YVx1NTQ5Ylx1NTQ4NFx1NTQ3Nlx1NTQ2Nlx1NTQ5ZFx1NTRkMFx1NTRhZFx1NTRjMlx1NTRiNFx1NTRkMlx1NTRhN1x1NTRhNlx1NTRkM1x1NTRkNFx1NTQ3Mlx1NTRhM1x1NTRk'@; put 'NVx1NTRiYlx1NTRiZlx1NTRjY1x1NTRkOVx1NTRkYVx1NTRkY1x1NTRhOVx1NTRhYVx1NTRhNFx1NTRkZFx1NTRjZlx1NTRkZVx1NTUxYlx1NTRlN1x1NTUyMFx1NTRmZFx1NTUxNFx1NTRmM1x1NTUyMlx1NTUyM1x1NTUwZlx1NTUxMVx1NTUyN1x1NTUyYVx1NTU2N1x1NTU4Zlx1NTViNVx1'@; put 'NTU0OVx1NTU2ZFx1NTU0MVx1NTU1NVx1NTUzZlx1NTU1MFx1NTUzY1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyM10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjIzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjNdW21dXT01NzA4OCttLEZbNTcwODgrbV09eFsyMjNdW21dKTtmb3Io'@; put 'eFsyMjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwYzJcdTkwYzNcdTkwYzZcdTkwYzhcdTkwYzlcdTkwY2JcdTkwY2NcdTkwY2RcdTkwZDJcdTkwZDRcdTkwZDVcdTkwZDZcdTkwZDhcdTkwZDlcdTkwZGFcdTkwZGVcdTkwZGZc'@; put 'dTkwZTBcdTkwZTNcdTkwZTRcdTkwZTVcdTkwZTlcdTkwZWFcdTkwZWNcdTkwZWVcdTkwZjBcdTkwZjFcdTkwZjJcdTkwZjNcdTkwZjVcdTkwZjZcdTkwZjdcdTkwZjlcdTkwZmFcdTkwZmJcdTkwZmNcdTkwZmZcdTkxMDBcdTkxMDFcdTkxMDNcdTkxMDVcdTkxMDZcdTkxMDdcdTkxMDhcdTkx'@; put 'MDlcdTkxMGFcdTkxMGJcdTkxMGNcdTkxMGRcdTkxMGVcdTkxMGZcdTkxMTBcdTkxMTFcdTkxMTJcdTkxMTNcdTkxMTRcdTkxMTVcdTkxMTZcdTkxMTdcdTkxMThcdTkxMWFcdTkxMWJcdTkxMWNcdWZmZmRcdTkxMWRcdTkxMWZcdTkxMjBcdTkxMjFcdTkxMjRcdTkxMjVcdTkxMjZcdTkxMjdc'@; put 'dTkxMjhcdTkxMjlcdTkxMmFcdTkxMmJcdTkxMmNcdTkxMmRcdTkxMmVcdTkxMzBcdTkxMzJcdTkxMzNcdTkxMzRcdTkxMzVcdTkxMzZcdTkxMzdcdTkxMzhcdTkxM2FcdTkxM2JcdTkxM2NcdTkxM2RcdTkxM2VcdTkxM2ZcdTkxNDBcdTkxNDFcdTkxNDJcdTkxNDRcdTU1MzdcdTU1NTZcdTU1'@; put 'NzVcdTU1NzZcdTU1NzdcdTU1MzNcdTU1MzBcdTU1NWNcdTU1OGJcdTU1ZDJcdTU1ODNcdTU1YjFcdTU1YjlcdTU1ODhcdTU1ODFcdTU1OWZcdTU1N2VcdTU1ZDZcdTU1OTFcdTU1N2JcdTU1ZGZcdTU1YmRcdTU1YmVcdTU1OTRcdTU1OTlcdTU1ZWFcdTU1ZjdcdTU1YzlcdTU2MWZcdTU1ZDFc'@; put 'dTU1ZWJcdTU1ZWNcdTU1ZDRcdTU1ZTZcdTU1ZGRcdTU1YzRcdTU1ZWZcdTU1ZTVcdTU1ZjJcdTU1ZjNcdTU1Y2NcdTU1Y2RcdTU1ZThcdTU1ZjVcdTU1ZTRcdThmOTRcdTU2MWVcdTU2MDhcdTU2MGNcdTU2MDFcdTU2MjRcdTU2MjNcdTU1ZmVcdTU2MDBcdTU2MjdcdTU2MmRcdTU2NThcdTU2'@; put 'MzlcdTU2NTdcdTU2MmNcdTU2NGRcdTU2NjJcdTU2NTlcdTU2NWNcdTU2NGNcdTU2NTRcdTU2ODZcdTU2NjRcdTU2NzFcdTU2NmJcdTU2N2JcdTU2N2NcdTU2ODVcdTU2OTNcdTU2YWZcdTU2ZDRcdTU2ZDdcdTU2ZGRcdTU2ZTFcdTU2ZjVcdTU2ZWJcdTU2ZjlcdTU2ZmZcdTU3MDRcdTU3MGFc'@; put 'dTU3MDlcdTU3MWNcdTVlMGZcdTVlMTlcdTVlMTRcdTVlMTFcdTVlMzFcdTVlM2JcdTVlM2NcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyNF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI0XVttXV09NTczNDQrbSxGWzU3MzQ0K21dPXhb'@; put 'MjI0XVttXSk7Zm9yKHhbMjI1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MTQ1XHU5MTQ3XHU5MTQ4XHU5MTUxXHU5MTUzXHU5MTU0XHU5MTU1XHU5MTU2XHU5MTU4XHU5MTU5XHU5MTViXHU5MTVjXHU5MTVmXHU5MTYwXHU5MTY2'@; put 'XHU5MTY3XHU5MTY4XHU5MTZiXHU5MTZkXHU5MTczXHU5MTdhXHU5MTdiXHU5MTdjXHU5MTgwXHU5MTgxXHU5MTgyXHU5MTgzXHU5MTg0XHU5MTg2XHU5MTg4XHU5MThhXHU5MThlXHU5MThmXHU5MTkzXHU5MTk0XHU5MTk1XHU5MTk2XHU5MTk3XHU5MTk4XHU5MTk5XHU5MTljXHU5MTlkXHU5'@; put 'MTllXHU5MTlmXHU5MWEwXHU5MWExXHU5MWE0XHU5MWE1XHU5MWE2XHU5MWE3XHU5MWE4XHU5MWE5XHU5MWFiXHU5MWFjXHU5MWIwXHU5MWIxXHU5MWIyXHU5MWIzXHU5MWI2XHU5MWI3XHU5MWI4XHU5MWI5XHU5MWJiXHVmZmZkXHU5MWJjXHU5MWJkXHU5MWJlXHU5MWJmXHU5MWMwXHU5MWMx'@; put 'XHU5MWMyXHU5MWMzXHU5MWM0XHU5MWM1XHU5MWM2XHU5MWM4XHU5MWNiXHU5MWQwXHU5MWQyXHU5MWQzXHU5MWQ0XHU5MWQ1XHU5MWQ2XHU5MWQ3XHU5MWQ4XHU5MWQ5XHU5MWRhXHU5MWRiXHU5MWRkXHU5MWRlXHU5MWRmXHU5MWUwXHU5MWUxXHU5MWUyXHU5MWUzXHU5MWU0XHU5MWU1XHU1'@; put 'ZTM3XHU1ZTQ0XHU1ZTU0XHU1ZTViXHU1ZTVlXHU1ZTYxXHU1YzhjXHU1YzdhXHU1YzhkXHU1YzkwXHU1Yzk2XHU1Yzg4XHU1Yzk4XHU1Yzk5XHU1YzkxXHU1YzlhXHU1YzljXHU1Y2I1XHU1Y2EyXHU1Y2JkXHU1Y2FjXHU1Y2FiXHU1Y2IxXHU1Y2EzXHU1Y2MxXHU1Y2I3XHU1Y2M0XHU1Y2Qy'@; put 'XHU1Y2U0XHU1Y2NiXHU1Y2U1XHU1ZDAyXHU1ZDAzXHU1ZDI3XHU1ZDI2XHU1ZDJlXHU1ZDI0XHU1ZDFlXHU1ZDA2XHU1ZDFiXHU1ZDU4XHU1ZDNlXHU1ZDM0XHU1ZDNkXHU1ZDZjXHU1ZDViXHU1ZDZmXHU1ZDVkXHU1ZDZiXHU1ZDRiXHU1ZDRhXHU1ZDY5XHU1ZDc0XHU1ZDgyXHU1ZDk5XHU1'@; put 'ZDlkXHU4YzczXHU1ZGI3XHU1ZGM1XHU1ZjczXHU1Zjc3XHU1ZjgyXHU1Zjg3XHU1Zjg5XHU1ZjhjXHU1Zjk1XHU1Zjk5XHU1ZjljXHU1ZmE4XHU1ZmFkXHU1ZmI1XHU1ZmJjXHU4ODYyXHU1ZjYxXHU3MmFkXHU3MmIwXHU3MmI0XHU3MmI3XHU3MmI4XHU3MmMzXHU3MmMxXHU3MmNlXHU3MmNk'@; put 'XHU3MmQyXHU3MmU4XHU3MmVmXHU3MmU5XHU3MmYyXHU3MmY0XHU3MmY3XHU3MzAxXHU3MmYzXHU3MzAzXHU3MmZhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyNV1bbV1dPTU3NjAwK20s'@; put 'Rls1NzYwMCttXT14WzIyNV1bbV0pO2Zvcih4WzIyNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTFlNlx1OTFlN1x1OTFlOFx1OTFlOVx1OTFlYVx1OTFlYlx1OTFlY1x1OTFlZFx1OTFlZVx1OTFlZlx1OTFmMFx1OTFmMVx1OTFm'@; put 'Mlx1OTFmM1x1OTFmNFx1OTFmNVx1OTFmNlx1OTFmN1x1OTFmOFx1OTFmOVx1OTFmYVx1OTFmYlx1OTFmY1x1OTFmZFx1OTFmZVx1OTFmZlx1OTIwMFx1OTIwMVx1OTIwMlx1OTIwM1x1OTIwNFx1OTIwNVx1OTIwNlx1OTIwN1x1OTIwOFx1OTIwOVx1OTIwYVx1OTIwYlx1OTIwY1x1OTIwZFx1'@; put 'OTIwZVx1OTIwZlx1OTIxMFx1OTIxMVx1OTIxMlx1OTIxM1x1OTIxNFx1OTIxNVx1OTIxNlx1OTIxN1x1OTIxOFx1OTIxOVx1OTIxYVx1OTIxYlx1OTIxY1x1OTIxZFx1OTIxZVx1OTIxZlx1OTIyMFx1OTIyMVx1OTIyMlx1OTIyM1x1OTIyNFx1ZmZmZFx1OTIyNVx1OTIyNlx1OTIyN1x1OTIy'@; put 'OFx1OTIyOVx1OTIyYVx1OTIyYlx1OTIyY1x1OTIyZFx1OTIyZVx1OTIyZlx1OTIzMFx1OTIzMVx1OTIzMlx1OTIzM1x1OTIzNFx1OTIzNVx1OTIzNlx1OTIzN1x1OTIzOFx1OTIzOVx1OTIzYVx1OTIzYlx1OTIzY1x1OTIzZFx1OTIzZVx1OTIzZlx1OTI0MFx1OTI0MVx1OTI0Mlx1OTI0M1x1'@; put 'OTI0NFx1OTI0NVx1NzJmYlx1NzMxN1x1NzMxM1x1NzMyMVx1NzMwYVx1NzMxZVx1NzMxZFx1NzMxNVx1NzMyMlx1NzMzOVx1NzMyNVx1NzMyY1x1NzMzOFx1NzMzMVx1NzM1MFx1NzM0ZFx1NzM1N1x1NzM2MFx1NzM2Y1x1NzM2Zlx1NzM3ZVx1ODIxYlx1NTkyNVx1OThlN1x1NTkyNFx1NTkw'@; put 'Mlx1OTk2M1x1OTk2N1x1OTk2OFx1OTk2OVx1OTk2YVx1OTk2Ylx1OTk2Y1x1OTk3NFx1OTk3N1x1OTk3ZFx1OTk4MFx1OTk4NFx1OTk4N1x1OTk4YVx1OTk4ZFx1OTk5MFx1OTk5MVx1OTk5M1x1OTk5NFx1OTk5NVx1NWU4MFx1NWU5MVx1NWU4Ylx1NWU5Nlx1NWVhNVx1NWVhMFx1NWViOVx1'@; put 'NWViNVx1NWViZVx1NWViM1x1OGQ1M1x1NWVkMlx1NWVkMVx1NWVkYlx1NWVlOFx1NWVlYVx1ODFiYVx1NWZjNFx1NWZjOVx1NWZkNlx1NWZjZlx1NjAwM1x1NWZlZVx1NjAwNFx1NWZlMVx1NWZlNFx1NWZmZVx1NjAwNVx1NjAwNlx1NWZlYVx1NWZlZFx1NWZmOFx1NjAxOVx1NjAzNVx1NjAy'@; put 'Nlx1NjAxYlx1NjAwZlx1NjAwZFx1NjAyOVx1NjAyYlx1NjAwYVx1NjAzZlx1NjAyMVx1NjA3OFx1NjA3OVx1NjA3Ylx1NjA3YVx1NjA0Mlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyNl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjZd'@; put 'W21dXT01Nzg1NittLEZbNTc4NTYrbV09eFsyMjZdW21dKTtmb3IoeFsyMjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkyNDZcdTkyNDdcdTkyNDhcdTkyNDlcdTkyNGFcdTkyNGJcdTkyNGNcdTkyNGRcdTkyNGVcdTkyNGZcdTky'@; put 'NTBcdTkyNTFcdTkyNTJcdTkyNTNcdTkyNTRcdTkyNTVcdTkyNTZcdTkyNTdcdTkyNThcdTkyNTlcdTkyNWFcdTkyNWJcdTkyNWNcdTkyNWRcdTkyNWVcdTkyNWZcdTkyNjBcdTkyNjFcdTkyNjJcdTkyNjNcdTkyNjRcdTkyNjVcdTkyNjZcdTkyNjdcdTkyNjhcdTkyNjlcdTkyNmFcdTkyNmJc'@; put 'dTkyNmNcdTkyNmRcdTkyNmVcdTkyNmZcdTkyNzBcdTkyNzFcdTkyNzJcdTkyNzNcdTkyNzVcdTkyNzZcdTkyNzdcdTkyNzhcdTkyNzlcdTkyN2FcdTkyN2JcdTkyN2NcdTkyN2RcdTkyN2VcdTkyN2ZcdTkyODBcdTkyODFcdTkyODJcdTkyODNcdTkyODRcdTkyODVcdWZmZmRcdTkyODZcdTky'@; put 'ODdcdTkyODhcdTkyODlcdTkyOGFcdTkyOGJcdTkyOGNcdTkyOGRcdTkyOGZcdTkyOTBcdTkyOTFcdTkyOTJcdTkyOTNcdTkyOTRcdTkyOTVcdTkyOTZcdTkyOTdcdTkyOThcdTkyOTlcdTkyOWFcdTkyOWJcdTkyOWNcdTkyOWRcdTkyOWVcdTkyOWZcdTkyYTBcdTkyYTFcdTkyYTJcdTkyYTNc'@; put 'dTkyYTRcdTkyYTVcdTkyYTZcdTkyYTdcdTYwNmFcdTYwN2RcdTYwOTZcdTYwOWFcdTYwYWRcdTYwOWRcdTYwODNcdTYwOTJcdTYwOGNcdTYwOWJcdTYwZWNcdTYwYmJcdTYwYjFcdTYwZGRcdTYwZDhcdTYwYzZcdTYwZGFcdTYwYjRcdTYxMjBcdTYxMjZcdTYxMTVcdTYxMjNcdTYwZjRcdTYx'@; put 'MDBcdTYxMGVcdTYxMmJcdTYxNGFcdTYxNzVcdTYxYWNcdTYxOTRcdTYxYTdcdTYxYjdcdTYxZDRcdTYxZjVcdTVmZGRcdTk2YjNcdTk1ZTlcdTk1ZWJcdTk1ZjFcdTk1ZjNcdTk1ZjVcdTk1ZjZcdTk1ZmNcdTk1ZmVcdTk2MDNcdTk2MDRcdTk2MDZcdTk2MDhcdTk2MGFcdTk2MGJcdTk2MGNc'@; put 'dTk2MGRcdTk2MGZcdTk2MTJcdTk2MTVcdTk2MTZcdTk2MTdcdTk2MTlcdTk2MWFcdTRlMmNcdTcyM2ZcdTYyMTVcdTZjMzVcdTZjNTRcdTZjNWNcdTZjNGFcdTZjYTNcdTZjODVcdTZjOTBcdTZjOTRcdTZjOGNcdTZjNjhcdTZjNjlcdTZjNzRcdTZjNzZcdTZjODZcdTZjYTlcdTZjZDBcdTZj'@; put 'ZDRcdTZjYWRcdTZjZjdcdTZjZjhcdTZjZjFcdTZjZDdcdTZjYjJcdTZjZTBcdTZjZDZcdTZjZmFcdTZjZWJcdTZjZWVcdTZjYjFcdTZjZDNcdTZjZWZcdTZjZmVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjddLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyN11bbV0uY2hhckNvZGVBdCgw'@; put 'KSYmKGFlW3hbMjI3XVttXV09NTgxMTIrbSxGWzU4MTEyK21dPXhbMjI3XVttXSk7Zm9yKHhbMjI4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MmE4XHU5MmE5XHU5MmFhXHU5MmFiXHU5MmFjXHU5MmFkXHU5MmFmXHU5MmIwXHU5'@; put 'MmIxXHU5MmIyXHU5MmIzXHU5MmI0XHU5MmI1XHU5MmI2XHU5MmI3XHU5MmI4XHU5MmI5XHU5MmJhXHU5MmJiXHU5MmJjXHU5MmJkXHU5MmJlXHU5MmJmXHU5MmMwXHU5MmMxXHU5MmMyXHU5MmMzXHU5MmM0XHU5MmM1XHU5MmM2XHU5MmM3XHU5MmM5XHU5MmNhXHU5MmNiXHU5MmNjXHU5MmNk'@; put 'XHU5MmNlXHU5MmNmXHU5MmQwXHU5MmQxXHU5MmQyXHU5MmQzXHU5MmQ0XHU5MmQ1XHU5MmQ2XHU5MmQ3XHU5MmQ4XHU5MmQ5XHU5MmRhXHU5MmRiXHU5MmRjXHU5MmRkXHU5MmRlXHU5MmRmXHU5MmUwXHU5MmUxXHU5MmUyXHU5MmUzXHU5MmU0XHU5MmU1XHU5MmU2XHU5MmU3XHU5MmU4XHVm'@; put 'ZmZkXHU5MmU5XHU5MmVhXHU5MmViXHU5MmVjXHU5MmVkXHU5MmVlXHU5MmVmXHU5MmYwXHU5MmYxXHU5MmYyXHU5MmYzXHU5MmY0XHU5MmY1XHU5MmY2XHU5MmY3XHU5MmY4XHU5MmY5XHU5MmZhXHU5MmZiXHU5MmZjXHU5MmZkXHU5MmZlXHU5MmZmXHU5MzAwXHU5MzAxXHU5MzAyXHU5MzAz'@; put 'XHU5MzA0XHU5MzA1XHU5MzA2XHU5MzA3XHU5MzA4XHU5MzA5XHU2ZDM5XHU2ZDI3XHU2ZDBjXHU2ZDQzXHU2ZDQ4XHU2ZDA3XHU2ZDA0XHU2ZDE5XHU2ZDBlXHU2ZDJiXHU2ZDRkXHU2ZDJlXHU2ZDM1XHU2ZDFhXHU2ZDRmXHU2ZDUyXHU2ZDU0XHU2ZDMzXHU2ZDkxXHU2ZDZmXHU2ZDllXHU2'@; put 'ZGEwXHU2ZDVlXHU2ZDkzXHU2ZDk0XHU2ZDVjXHU2ZDYwXHU2ZDdjXHU2ZDYzXHU2ZTFhXHU2ZGM3XHU2ZGM1XHU2ZGRlXHU2ZTBlXHU2ZGJmXHU2ZGUwXHU2ZTExXHU2ZGU2XHU2ZGRkXHU2ZGQ5XHU2ZTE2XHU2ZGFiXHU2ZTBjXHU2ZGFlXHU2ZTJiXHU2ZTZlXHU2ZTRlXHU2ZTZiXHU2ZWIy'@; put 'XHU2ZTVmXHU2ZTg2XHU2ZTUzXHU2ZTU0XHU2ZTMyXHU2ZTI1XHU2ZTQ0XHU2ZWRmXHU2ZWIxXHU2ZTk4XHU2ZWUwXHU2ZjJkXHU2ZWUyXHU2ZWE1XHU2ZWE3XHU2ZWJkXHU2ZWJiXHU2ZWI3XHU2ZWQ3XHU2ZWI0XHU2ZWNmXHU2ZThmXHU2ZWMyXHU2ZTlmXHU2ZjYyXHU2ZjQ2XHU2ZjQ3XHU2'@; put 'ZjI0XHU2ZjE1XHU2ZWY5XHU2ZjJmXHU2ZjM2XHU2ZjRiXHU2Zjc0XHU2ZjJhXHU2ZjA5XHU2ZjI5XHU2Zjg5XHU2ZjhkXHU2ZjhjXHU2Zjc4XHU2ZjcyXHU2ZjdjXHU2ZjdhXHU2ZmQxXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjhdW21d'@; put 'LmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyOF1bbV1dPTU4MzY4K20sRls1ODM2OCttXT14WzIyOF1bbV0pO2Zvcih4WzIyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTMwYVx1OTMwYlx1OTMwY1x1OTMwZFx1OTMwZVx1OTMwZlx1'@; put 'OTMxMFx1OTMxMVx1OTMxMlx1OTMxM1x1OTMxNFx1OTMxNVx1OTMxNlx1OTMxN1x1OTMxOFx1OTMxOVx1OTMxYVx1OTMxYlx1OTMxY1x1OTMxZFx1OTMxZVx1OTMxZlx1OTMyMFx1OTMyMVx1OTMyMlx1OTMyM1x1OTMyNFx1OTMyNVx1OTMyNlx1OTMyN1x1OTMyOFx1OTMyOVx1OTMyYVx1OTMy'@; put 'Ylx1OTMyY1x1OTMyZFx1OTMyZVx1OTMyZlx1OTMzMFx1OTMzMVx1OTMzMlx1OTMzM1x1OTMzNFx1OTMzNVx1OTMzNlx1OTMzN1x1OTMzOFx1OTMzOVx1OTMzYVx1OTMzYlx1OTMzY1x1OTMzZFx1OTMzZlx1OTM0MFx1OTM0MVx1OTM0Mlx1OTM0M1x1OTM0NFx1OTM0NVx1OTM0Nlx1OTM0N1x1'@; put 'OTM0OFx1OTM0OVx1ZmZmZFx1OTM0YVx1OTM0Ylx1OTM0Y1x1OTM0ZFx1OTM0ZVx1OTM0Zlx1OTM1MFx1OTM1MVx1OTM1Mlx1OTM1M1x1OTM1NFx1OTM1NVx1OTM1Nlx1OTM1N1x1OTM1OFx1OTM1OVx1OTM1YVx1OTM1Ylx1OTM1Y1x1OTM1ZFx1OTM1ZVx1OTM1Zlx1OTM2MFx1OTM2MVx1OTM2'@; put 'Mlx1OTM2M1x1OTM2NFx1OTM2NVx1OTM2Nlx1OTM2N1x1OTM2OFx1OTM2OVx1OTM2Ylx1NmZjOVx1NmZhN1x1NmZiOVx1NmZiNlx1NmZjMlx1NmZlMVx1NmZlZVx1NmZkZVx1NmZlMFx1NmZlZlx1NzAxYVx1NzAyM1x1NzAxYlx1NzAzOVx1NzAzNVx1NzA0Zlx1NzA1ZVx1NWI4MFx1NWI4NFx1'@; put 'NWI5NVx1NWI5M1x1NWJhNVx1NWJiOFx1NzUyZlx1OWE5ZVx1NjQzNFx1NWJlNFx1NWJlZVx1ODkzMFx1NWJmMFx1OGU0N1x1OGIwN1x1OGZiNlx1OGZkM1x1OGZkNVx1OGZlNVx1OGZlZVx1OGZlNFx1OGZlOVx1OGZlNlx1OGZmM1x1OGZlOFx1OTAwNVx1OTAwNFx1OTAwYlx1OTAyNlx1OTAx'@; put 'MVx1OTAwZFx1OTAxNlx1OTAyMVx1OTAzNVx1OTAzNlx1OTAyZFx1OTAyZlx1OTA0NFx1OTA1MVx1OTA1Mlx1OTA1MFx1OTA2OFx1OTA1OFx1OTA2Mlx1OTA1Ylx1NjZiOVx1OTA3NFx1OTA3ZFx1OTA4Mlx1OTA4OFx1OTA4M1x1OTA4Ylx1NWY1MFx1NWY1N1x1NWY1Nlx1NWY1OFx1NWMzYlx1'@; put 'NTRhYlx1NWM1MFx1NWM1OVx1NWI3MVx1NWM2M1x1NWM2Nlx1N2ZiY1x1NWYyYVx1NWYyOVx1NWYyZFx1ODI3NFx1NWYzY1x1OWIzYlx1NWM2ZVx1NTk4MVx1NTk4M1x1NTk4ZFx1NTlhOVx1NTlhYVx1NTlhM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyOV0ubGVuZ3RoOysrbSk2NTUz'@; put 'MyE9PXhbMjI5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjldW21dXT01ODYyNCttLEZbNTg2MjQrbV09eFsyMjldW21dKTtmb3IoeFsyMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzNmNcdTkzNmRcdTkzNmVcdTkzNmZc'@; put 'dTkzNzBcdTkzNzFcdTkzNzJcdTkzNzNcdTkzNzRcdTkzNzVcdTkzNzZcdTkzNzdcdTkzNzhcdTkzNzlcdTkzN2FcdTkzN2JcdTkzN2NcdTkzN2RcdTkzN2VcdTkzN2ZcdTkzODBcdTkzODFcdTkzODJcdTkzODNcdTkzODRcdTkzODVcdTkzODZcdTkzODdcdTkzODhcdTkzODlcdTkzOGFcdTkz'@; put 'OGJcdTkzOGNcdTkzOGRcdTkzOGVcdTkzOTBcdTkzOTFcdTkzOTJcdTkzOTNcdTkzOTRcdTkzOTVcdTkzOTZcdTkzOTdcdTkzOThcdTkzOTlcdTkzOWFcdTkzOWJcdTkzOWNcdTkzOWRcdTkzOWVcdTkzOWZcdTkzYTBcdTkzYTFcdTkzYTJcdTkzYTNcdTkzYTRcdTkzYTVcdTkzYTZcdTkzYTdc'@; put 'dTkzYThcdTkzYTlcdTkzYWFcdTkzYWJcdWZmZmRcdTkzYWNcdTkzYWRcdTkzYWVcdTkzYWZcdTkzYjBcdTkzYjFcdTkzYjJcdTkzYjNcdTkzYjRcdTkzYjVcdTkzYjZcdTkzYjdcdTkzYjhcdTkzYjlcdTkzYmFcdTkzYmJcdTkzYmNcdTkzYmRcdTkzYmVcdTkzYmZcdTkzYzBcdTkzYzFcdTkz'@; put 'YzJcdTkzYzNcdTkzYzRcdTkzYzVcdTkzYzZcdTkzYzdcdTkzYzhcdTkzYzlcdTkzY2JcdTkzY2NcdTkzY2RcdTU5OTdcdTU5Y2FcdTU5YWJcdTU5OWVcdTU5YTRcdTU5ZDJcdTU5YjJcdTU5YWZcdTU5ZDdcdTU5YmVcdTVhMDVcdTVhMDZcdTU5ZGRcdTVhMDhcdTU5ZTNcdTU5ZDhcdTU5Zjlc'@; put 'dTVhMGNcdTVhMDlcdTVhMzJcdTVhMzRcdTVhMTFcdTVhMjNcdTVhMTNcdTVhNDBcdTVhNjdcdTVhNGFcdTVhNTVcdTVhM2NcdTVhNjJcdTVhNzVcdTgwZWNcdTVhYWFcdTVhOWJcdTVhNzdcdTVhN2FcdTVhYmVcdTVhZWJcdTVhYjJcdTVhZDJcdTVhZDRcdTVhYjhcdTVhZTBcdTVhZTNcdTVh'@; put 'ZjFcdTVhZDZcdTVhZTZcdTVhZDhcdTVhZGNcdTViMDlcdTViMTdcdTViMTZcdTViMzJcdTViMzdcdTViNDBcdTVjMTVcdTVjMWNcdTViNWFcdTViNjVcdTViNzNcdTViNTFcdTViNTNcdTViNjJcdTlhNzVcdTlhNzdcdTlhNzhcdTlhN2FcdTlhN2ZcdTlhN2RcdTlhODBcdTlhODFcdTlhODVc'@; put 'dTlhODhcdTlhOGFcdTlhOTBcdTlhOTJcdTlhOTNcdTlhOTZcdTlhOThcdTlhOWJcdTlhOWNcdTlhOWRcdTlhOWZcdTlhYTBcdTlhYTJcdTlhYTNcdTlhYTVcdTlhYTdcdTdlOWZcdTdlYTFcdTdlYTNcdTdlYTVcdTdlYThcdTdlYTlcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzBdLmxl'@; put 'bmd0aDsrK20pNjU1MzMhPT14WzIzMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjMwXVttXV09NTg4ODArbSxGWzU4ODgwK21dPXhbMjMwXVttXSk7Zm9yKHhbMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5M2NlXHU5M2Nm'@; put 'XHU5M2QwXHU5M2QxXHU5M2QyXHU5M2QzXHU5M2Q0XHU5M2Q1XHU5M2Q3XHU5M2Q4XHU5M2Q5XHU5M2RhXHU5M2RiXHU5M2RjXHU5M2RkXHU5M2RlXHU5M2RmXHU5M2UwXHU5M2UxXHU5M2UyXHU5M2UzXHU5M2U0XHU5M2U1XHU5M2U2XHU5M2U3XHU5M2U4XHU5M2U5XHU5M2VhXHU5M2ViXHU5'@; put 'M2VjXHU5M2VkXHU5M2VlXHU5M2VmXHU5M2YwXHU5M2YxXHU5M2YyXHU5M2YzXHU5M2Y0XHU5M2Y1XHU5M2Y2XHU5M2Y3XHU5M2Y4XHU5M2Y5XHU5M2ZhXHU5M2ZiXHU5M2ZjXHU5M2ZkXHU5M2ZlXHU5M2ZmXHU5NDAwXHU5NDAxXHU5NDAyXHU5NDAzXHU5NDA0XHU5NDA1XHU5NDA2XHU5NDA3'@; put 'XHU5NDA4XHU5NDA5XHU5NDBhXHU5NDBiXHU5NDBjXHU5NDBkXHVmZmZkXHU5NDBlXHU5NDBmXHU5NDEwXHU5NDExXHU5NDEyXHU5NDEzXHU5NDE0XHU5NDE1XHU5NDE2XHU5NDE3XHU5NDE4XHU5NDE5XHU5NDFhXHU5NDFiXHU5NDFjXHU5NDFkXHU5NDFlXHU5NDFmXHU5NDIwXHU5NDIxXHU5'@; put 'NDIyXHU5NDIzXHU5NDI0XHU5NDI1XHU5NDI2XHU5NDI3XHU5NDI4XHU5NDI5XHU5NDJhXHU5NDJiXHU5NDJjXHU5NDJkXHU5NDJlXHU3ZWFkXHU3ZWIwXHU3ZWJlXHU3ZWMwXHU3ZWMxXHU3ZWMyXHU3ZWM5XHU3ZWNiXHU3ZWNjXHU3ZWQwXHU3ZWQ0XHU3ZWQ3XHU3ZWRiXHU3ZWUwXHU3ZWUx'@; put 'XHU3ZWU4XHU3ZWViXHU3ZWVlXHU3ZWVmXHU3ZWYxXHU3ZWYyXHU3ZjBkXHU3ZWY2XHU3ZWZhXHU3ZWZiXHU3ZWZlXHU3ZjAxXHU3ZjAyXHU3ZjAzXHU3ZjA3XHU3ZjA4XHU3ZjBiXHU3ZjBjXHU3ZjBmXHU3ZjExXHU3ZjEyXHU3ZjE3XHU3ZjE5XHU3ZjFjXHU3ZjFiXHU3ZjFmXHU3ZjIxXHU3'@; put 'ZjIyXHU3ZjIzXHU3ZjI0XHU3ZjI1XHU3ZjI2XHU3ZjI3XHU3ZjJhXHU3ZjJiXHU3ZjJjXHU3ZjJkXHU3ZjJmXHU3ZjMwXHU3ZjMxXHU3ZjMyXHU3ZjMzXHU3ZjM1XHU1ZTdhXHU3NTdmXHU1ZGRiXHU3NTNlXHU5MDk1XHU3MzhlXHU3MzkxXHU3M2FlXHU3M2EyXHU3MzlmXHU3M2NmXHU3M2My'@; put 'XHU3M2QxXHU3M2I3XHU3M2IzXHU3M2MwXHU3M2M5XHU3M2M4XHU3M2U1XHU3M2Q5XHU5ODdjXHU3NDBhXHU3M2U5XHU3M2U3XHU3M2RlXHU3M2JhXHU3M2YyXHU3NDBmXHU3NDJhXHU3NDViXHU3NDI2XHU3NDI1XHU3NDI4XHU3NDMwXHU3NDJlXHU3NDJjXHVmZmZkIi5zcGxpdCgiIiksbT0w'@; put 'O20hPXhbMjMxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzMV1bbV1dPTU5MTM2K20sRls1OTEzNittXT14WzIzMV1bbV0pO2Zvcih4WzIzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1OTQyZlx1OTQzMFx1OTQzMVx1OTQzMlx1OTQzM1x1OTQzNFx1OTQzNVx1OTQzNlx1OTQzN1x1OTQzOFx1OTQzOVx1OTQzYVx1OTQzYlx1OTQzY1x1OTQzZFx1OTQzZlx1OTQ0MFx1OTQ0MVx1OTQ0Mlx1OTQ0M1x1OTQ0NFx1OTQ0NVx1OTQ0Nlx1OTQ0N1x1OTQ0OFx1OTQ0OVx1OTQ0YVx1'@; put 'OTQ0Ylx1OTQ0Y1x1OTQ0ZFx1OTQ0ZVx1OTQ0Zlx1OTQ1MFx1OTQ1MVx1OTQ1Mlx1OTQ1M1x1OTQ1NFx1OTQ1NVx1OTQ1Nlx1OTQ1N1x1OTQ1OFx1OTQ1OVx1OTQ1YVx1OTQ1Ylx1OTQ1Y1x1OTQ1ZFx1OTQ1ZVx1OTQ1Zlx1OTQ2MFx1OTQ2MVx1OTQ2Mlx1OTQ2M1x1OTQ2NFx1OTQ2NVx1OTQ2'@; put 'Nlx1OTQ2N1x1OTQ2OFx1OTQ2OVx1OTQ2YVx1OTQ2Y1x1OTQ2ZFx1OTQ2ZVx1OTQ2Zlx1ZmZmZFx1OTQ3MFx1OTQ3MVx1OTQ3Mlx1OTQ3M1x1OTQ3NFx1OTQ3NVx1OTQ3Nlx1OTQ3N1x1OTQ3OFx1OTQ3OVx1OTQ3YVx1OTQ3Ylx1OTQ3Y1x1OTQ3ZFx1OTQ3ZVx1OTQ3Zlx1OTQ4MFx1OTQ4MVx1'@; put 'OTQ4Mlx1OTQ4M1x1OTQ4NFx1OTQ5MVx1OTQ5Nlx1OTQ5OFx1OTRjN1x1OTRjZlx1OTRkM1x1OTRkNFx1OTRkYVx1OTRlNlx1OTRmYlx1OTUxY1x1OTUyMFx1NzQxYlx1NzQxYVx1NzQ0MVx1NzQ1Y1x1NzQ1N1x1NzQ1NVx1NzQ1OVx1NzQ3N1x1NzQ2ZFx1NzQ3ZVx1NzQ5Y1x1NzQ4ZVx1NzQ4'@; put 'MFx1NzQ4MVx1NzQ4N1x1NzQ4Ylx1NzQ5ZVx1NzRhOFx1NzRhOVx1NzQ5MFx1NzRhN1x1NzRkMlx1NzRiYVx1OTdlYVx1OTdlYlx1OTdlY1x1Njc0Y1x1Njc1M1x1Njc1ZVx1Njc0OFx1Njc2OVx1NjdhNVx1Njc4N1x1Njc2YVx1Njc3M1x1Njc5OFx1NjdhN1x1Njc3NVx1NjdhOFx1Njc5ZVx1'@; put 'NjdhZFx1Njc4Ylx1Njc3N1x1Njc3Y1x1NjdmMFx1NjgwOVx1NjdkOFx1NjgwYVx1NjdlOVx1NjdiMFx1NjgwY1x1NjdkOVx1NjdiNVx1NjdkYVx1NjdiM1x1NjdkZFx1NjgwMFx1NjdjM1x1NjdiOFx1NjdlMlx1NjgwZVx1NjdjMVx1NjdmZFx1NjgzMlx1NjgzM1x1Njg2MFx1Njg2MVx1Njg0'@; put 'ZVx1Njg2Mlx1Njg0NFx1Njg2NFx1Njg4M1x1NjgxZFx1Njg1NVx1Njg2Nlx1Njg0MVx1Njg2N1x1Njg0MFx1NjgzZVx1Njg0YVx1Njg0OVx1NjgyOVx1NjhiNVx1Njg4Zlx1Njg3NFx1Njg3N1x1Njg5M1x1Njg2Ylx1NjhjMlx1Njk2ZVx1NjhmY1x1NjkxZlx1NjkyMFx1NjhmOVx1ZmZmZCIu'@; put 'c3BsaXQoIiIpLG09MDttIT14WzIzMl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjMyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzJdW21dXT01OTM5MittLEZbNTkzOTIrbV09eFsyMzJdW21dKTtmb3IoeFsyMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdTk1MjdcdTk1MzNcdTk1M2RcdTk1NDNcdTk1NDhcdTk1NGJcdTk1NTVcdTk1NWFcdTk1NjBcdTk1NmVcdTk1NzRcdTk1NzVcdTk1NzdcdTk1NzhcdTk1NzlcdTk1N2FcdTk1N2JcdTk1N2NcdTk1N2RcdTk1N2VcdTk1ODBcdTk1ODFcdTk1ODJcdTk1ODNcdTk1ODRc'@; put 'dTk1ODVcdTk1ODZcdTk1ODdcdTk1ODhcdTk1ODlcdTk1OGFcdTk1OGJcdTk1OGNcdTk1OGRcdTk1OGVcdTk1OGZcdTk1OTBcdTk1OTFcdTk1OTJcdTk1OTNcdTk1OTRcdTk1OTVcdTk1OTZcdTk1OTdcdTk1OThcdTk1OTlcdTk1OWFcdTk1OWJcdTk1OWNcdTk1OWRcdTk1OWVcdTk1OWZcdTk1'@; put 'YTBcdTk1YTFcdTk1YTJcdTk1YTNcdTk1YTRcdTk1YTVcdTk1YTZcdTk1YTdcdTk1YThcdTk1YTlcdTk1YWFcdWZmZmRcdTk1YWJcdTk1YWNcdTk1YWRcdTk1YWVcdTk1YWZcdTk1YjBcdTk1YjFcdTk1YjJcdTk1YjNcdTk1YjRcdTk1YjVcdTk1YjZcdTk1YjdcdTk1YjhcdTk1YjlcdTk1YmFc'@; put 'dTk1YmJcdTk1YmNcdTk1YmRcdTk1YmVcdTk1YmZcdTk1YzBcdTk1YzFcdTk1YzJcdTk1YzNcdTk1YzRcdTk1YzVcdTk1YzZcdTk1YzdcdTk1YzhcdTk1YzlcdTk1Y2FcdTk1Y2JcdTY5MjRcdTY4ZjBcdTY5MGJcdTY5MDFcdTY5NTdcdTY4ZTNcdTY5MTBcdTY5NzFcdTY5MzlcdTY5NjBcdTY5'@; put 'NDJcdTY5NWRcdTY5ODRcdTY5NmJcdTY5ODBcdTY5OThcdTY5NzhcdTY5MzRcdTY5Y2NcdTY5ODdcdTY5ODhcdTY5Y2VcdTY5ODlcdTY5NjZcdTY5NjNcdTY5NzlcdTY5OWJcdTY5YTdcdTY5YmJcdTY5YWJcdTY5YWRcdTY5ZDRcdTY5YjFcdTY5YzFcdTY5Y2FcdTY5ZGZcdTY5OTVcdTY5ZTBc'@; put 'dTY5OGRcdTY5ZmZcdTZhMmZcdTY5ZWRcdTZhMTdcdTZhMThcdTZhNjVcdTY5ZjJcdTZhNDRcdTZhM2VcdTZhYTBcdTZhNTBcdTZhNWJcdTZhMzVcdTZhOGVcdTZhNzlcdTZhM2RcdTZhMjhcdTZhNThcdTZhN2NcdTZhOTFcdTZhOTBcdTZhYTlcdTZhOTdcdTZhYWJcdTczMzdcdTczNTJcdTZi'@; put 'ODFcdTZiODJcdTZiODdcdTZiODRcdTZiOTJcdTZiOTNcdTZiOGRcdTZiOWFcdTZiOWJcdTZiYTFcdTZiYWFcdThmNmJcdThmNmRcdThmNzFcdThmNzJcdThmNzNcdThmNzVcdThmNzZcdThmNzhcdThmNzdcdThmNzlcdThmN2FcdThmN2NcdThmN2VcdThmODFcdThmODJcdThmODRcdThmODdc'@; put 'dThmOGJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzM11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjMzXVttXV09NTk2NDgrbSxGWzU5NjQ4K21dPXhbMjMzXVttXSk7Zm9yKHhbMjM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NWNjXHU5NWNkXHU5NWNlXHU5NWNmXHU5NWQwXHU5NWQxXHU5NWQyXHU5NWQzXHU5NWQ0XHU5NWQ1XHU5NWQ2XHU5NWQ3XHU5NWQ4XHU5NWQ5XHU5NWRhXHU5NWRiXHU5NWRjXHU5NWRkXHU5NWRlXHU5NWRmXHU5NWUwXHU5NWUxXHU5NWUy'@; put 'XHU5NWUzXHU5NWU0XHU5NWU1XHU5NWU2XHU5NWU3XHU5NWVjXHU5NWZmXHU5NjA3XHU5NjEzXHU5NjE4XHU5NjFiXHU5NjFlXHU5NjIwXHU5NjIzXHU5NjI0XHU5NjI1XHU5NjI2XHU5NjI3XHU5NjI4XHU5NjI5XHU5NjJiXHU5NjJjXHU5NjJkXHU5NjJmXHU5NjMwXHU5NjM3XHU5NjM4XHU5'@; put 'NjM5XHU5NjNhXHU5NjNlXHU5NjQxXHU5NjQzXHU5NjRhXHU5NjRlXHU5NjRmXHU5NjUxXHU5NjUyXHU5NjUzXHU5NjU2XHU5NjU3XHVmZmZkXHU5NjU4XHU5NjU5XHU5NjVhXHU5NjVjXHU5NjVkXHU5NjVlXHU5NjYwXHU5NjYzXHU5NjY1XHU5NjY2XHU5NjZiXHU5NjZkXHU5NjZlXHU5NjZm'@; put 'XHU5NjcwXHU5NjcxXHU5NjczXHU5Njc4XHU5Njc5XHU5NjdhXHU5NjdiXHU5NjdjXHU5NjdkXHU5NjdlXHU5NjdmXHU5NjgwXHU5NjgxXHU5NjgyXHU5NjgzXHU5Njg0XHU5Njg3XHU5Njg5XHU5NjhhXHU4ZjhkXHU4ZjhlXHU4ZjhmXHU4Zjk4XHU4ZjlhXHU4ZWNlXHU2MjBiXHU2MjE3XHU2'@; put 'MjFiXHU2MjFmXHU2MjIyXHU2MjIxXHU2MjI1XHU2MjI0XHU2MjJjXHU4MWU3XHU3NGVmXHU3NGY0XHU3NGZmXHU3NTBmXHU3NTExXHU3NTEzXHU2NTM0XHU2NWVlXHU2NWVmXHU2NWYwXHU2NjBhXHU2NjE5XHU2NzcyXHU2NjAzXHU2NjE1XHU2NjAwXHU3MDg1XHU2NmY3XHU2NjFkXHU2NjM0'@; put 'XHU2NjMxXHU2NjM2XHU2NjM1XHU4MDA2XHU2NjVmXHU2NjU0XHU2NjQxXHU2NjRmXHU2NjU2XHU2NjYxXHU2NjU3XHU2Njc3XHU2Njg0XHU2NjhjXHU2NmE3XHU2NjlkXHU2NmJlXHU2NmRiXHU2NmRjXHU2NmU2XHU2NmU5XHU4ZDMyXHU4ZDMzXHU4ZDM2XHU4ZDNiXHU4ZDNkXHU4ZDQwXHU4'@; put 'ZDQ1XHU4ZDQ2XHU4ZDQ4XHU4ZDQ5XHU4ZDQ3XHU4ZDRkXHU4ZDU1XHU4ZDU5XHU4OWM3XHU4OWNhXHU4OWNiXHU4OWNjXHU4OWNlXHU4OWNmXHU4OWQwXHU4OWQxXHU3MjZlXHU3MjlmXHU3MjVkXHU3MjY2XHU3MjZmXHU3MjdlXHU3MjdmXHU3Mjg0XHU3MjhiXHU3MjhkXHU3MjhmXHU3Mjky'@; put 'XHU2MzA4XHU2MzMyXHU2M2IwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjM0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzNF1bbV1dPTU5OTA0K20sRls1OTkwNCttXT14WzIzNF1bbV0pO2Zvcih4WzIzNV09Ilx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Y1x1OTY4ZVx1OTY5MVx1OTY5Mlx1OTY5M1x1OTY5NVx1OTY5Nlx1OTY5YVx1OTY5Ylx1OTY5ZFx1OTY5ZVx1OTY5Zlx1OTZhMFx1OTZhMVx1OTZhMlx1OTZhM1x1OTZhNFx1OTZhNVx1OTZhNlx1OTZhOFx1OTZh'@; put 'OVx1OTZhYVx1OTZhYlx1OTZhY1x1OTZhZFx1OTZhZVx1OTZhZlx1OTZiMVx1OTZiMlx1OTZiNFx1OTZiNVx1OTZiN1x1OTZiOFx1OTZiYVx1OTZiYlx1OTZiZlx1OTZjMlx1OTZjM1x1OTZjOFx1OTZjYVx1OTZjYlx1OTZkMFx1OTZkMVx1OTZkM1x1OTZkNFx1OTZkNlx1OTZkN1x1OTZkOFx1'@; put 'OTZkOVx1OTZkYVx1OTZkYlx1OTZkY1x1OTZkZFx1OTZkZVx1OTZkZlx1OTZlMVx1OTZlMlx1OTZlM1x1OTZlNFx1OTZlNVx1OTZlNlx1OTZlN1x1OTZlYlx1ZmZmZFx1OTZlY1x1OTZlZFx1OTZlZVx1OTZmMFx1OTZmMVx1OTZmMlx1OTZmNFx1OTZmNVx1OTZmOFx1OTZmYVx1OTZmYlx1OTZm'@; put 'Y1x1OTZmZFx1OTZmZlx1OTcwMlx1OTcwM1x1OTcwNVx1OTcwYVx1OTcwYlx1OTcwY1x1OTcxMFx1OTcxMVx1OTcxMlx1OTcxNFx1OTcxNVx1OTcxN1x1OTcxOFx1OTcxOVx1OTcxYVx1OTcxYlx1OTcxZFx1OTcxZlx1OTcyMFx1NjQzZlx1NjRkOFx1ODAwNFx1NmJlYVx1NmJmM1x1NmJmZFx1'@; put 'NmJmNVx1NmJmOVx1NmMwNVx1NmMwN1x1NmMwNlx1NmMwZFx1NmMxNVx1NmMxOFx1NmMxOVx1NmMxYVx1NmMyMVx1NmMyOVx1NmMyNFx1NmMyYVx1NmMzMlx1NjUzNVx1NjU1NVx1NjU2Ylx1NzI0ZFx1NzI1Mlx1NzI1Nlx1NzIzMFx1ODY2Mlx1NTIxNlx1ODA5Zlx1ODA5Y1x1ODA5M1x1ODBi'@; put 'Y1x1NjcwYVx1ODBiZFx1ODBiMVx1ODBhYlx1ODBhZFx1ODBiNFx1ODBiN1x1ODBlN1x1ODBlOFx1ODBlOVx1ODBlYVx1ODBkYlx1ODBjMlx1ODBjNFx1ODBkOVx1ODBjZFx1ODBkN1x1NjcxMFx1ODBkZFx1ODBlYlx1ODBmMVx1ODBmNFx1ODBlZFx1ODEwZFx1ODEwZVx1ODBmMlx1ODBmY1x1'@; put 'NjcxNVx1ODExMlx1OGM1YVx1ODEzNlx1ODExZVx1ODEyY1x1ODExOFx1ODEzMlx1ODE0OFx1ODE0Y1x1ODE1M1x1ODE3NFx1ODE1OVx1ODE1YVx1ODE3MVx1ODE2MFx1ODE2OVx1ODE3Y1x1ODE3ZFx1ODE2ZFx1ODE2N1x1NTg0ZFx1NWFiNVx1ODE4OFx1ODE4Mlx1ODE5MVx1NmVkNVx1ODFh'@; put 'M1x1ODFhYVx1ODFjY1x1NjcyNlx1ODFjYVx1ODFiYlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzNV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzVdW21dXT02MDE2MCttLEZbNjAxNjArbV09eFsyMzVdW21dKTtmb3IoeFsyMzZdPSJc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3MjFcdTk3MjJcdTk3MjNcdTk3MjRcdTk3MjVcdTk3MjZcdTk3MjdcdTk3MjhcdTk3MjlcdTk3MmJcdTk3MmNcdTk3MmVcdTk3MmZcdTk3MzFcdTk3MzNcdTk3MzRcdTk3MzVcdTk3MzZcdTk3'@; put 'MzdcdTk3M2FcdTk3M2JcdTk3M2NcdTk3M2RcdTk3M2ZcdTk3NDBcdTk3NDFcdTk3NDJcdTk3NDNcdTk3NDRcdTk3NDVcdTk3NDZcdTk3NDdcdTk3NDhcdTk3NDlcdTk3NGFcdTk3NGJcdTk3NGNcdTk3NGRcdTk3NGVcdTk3NGZcdTk3NTBcdTk3NTFcdTk3NTRcdTk3NTVcdTk3NTdcdTk3NThc'@; put 'dTk3NWFcdTk3NWNcdTk3NWRcdTk3NWZcdTk3NjNcdTk3NjRcdTk3NjZcdTk3NjdcdTk3NjhcdTk3NmFcdTk3NmJcdTk3NmNcdTk3NmRcdTk3NmVcdTk3NmZcdTk3NzBcdTk3NzFcdWZmZmRcdTk3NzJcdTk3NzVcdTk3NzdcdTk3NzhcdTk3NzlcdTk3N2FcdTk3N2JcdTk3N2RcdTk3N2VcdTk3'@; put 'N2ZcdTk3ODBcdTk3ODFcdTk3ODJcdTk3ODNcdTk3ODRcdTk3ODZcdTk3ODdcdTk3ODhcdTk3ODlcdTk3OGFcdTk3OGNcdTk3OGVcdTk3OGZcdTk3OTBcdTk3OTNcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTlcdTk3OWFcdTk3OWJcdTk3OWNcdTk3OWRcdTgxYzFcdTgxYTZcdTZiMjRcdTZiMzdc'@; put 'dTZiMzlcdTZiNDNcdTZiNDZcdTZiNTlcdTk4ZDFcdTk4ZDJcdTk4ZDNcdTk4ZDVcdTk4ZDlcdTk4ZGFcdTZiYjNcdTVmNDBcdTZiYzJcdTg5ZjNcdTY1OTBcdTlmNTFcdTY1OTNcdTY1YmNcdTY1YzZcdTY1YzRcdTY1YzNcdTY1Y2NcdTY1Y2VcdTY1ZDJcdTY1ZDZcdTcwODBcdTcwOWNcdTcw'@; put 'OTZcdTcwOWRcdTcwYmJcdTcwYzBcdTcwYjdcdTcwYWJcdTcwYjFcdTcwZThcdTcwY2FcdTcxMTBcdTcxMTNcdTcxMTZcdTcxMmZcdTcxMzFcdTcxNzNcdTcxNWNcdTcxNjhcdTcxNDVcdTcxNzJcdTcxNGFcdTcxNzhcdTcxN2FcdTcxOThcdTcxYjNcdTcxYjVcdTcxYThcdTcxYTBcdTcxZTBc'@; put 'dTcxZDRcdTcxZTdcdTcxZjlcdTcyMWRcdTcyMjhcdTcwNmNcdTcxMThcdTcxNjZcdTcxYjlcdTYyM2VcdTYyM2RcdTYyNDNcdTYyNDhcdTYyNDlcdTc5M2JcdTc5NDBcdTc5NDZcdTc5NDlcdTc5NWJcdTc5NWNcdTc5NTNcdTc5NWFcdTc5NjJcdTc5NTdcdTc5NjBcdTc5NmZcdTc5NjdcdTc5'@; put 'N2FcdTc5ODVcdTc5OGFcdTc5OWFcdTc5YTdcdTc5YjNcdTVmZDFcdTVmZDBcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzNl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM2XVttXV09NjA0MTYrbSxGWzYwNDE2K21dPXhbMjM2XVttXSk7'@; put 'Zm9yKHhbMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NzllXHU5NzlmXHU5N2ExXHU5N2EyXHU5N2E0XHU5N2E1XHU5N2E2XHU5N2E3XHU5N2E4XHU5N2E5XHU5N2FhXHU5N2FjXHU5N2FlXHU5N2IwXHU5N2IxXHU5N2IzXHU5'@; put 'N2I1XHU5N2I2XHU5N2I3XHU5N2I4XHU5N2I5XHU5N2JhXHU5N2JiXHU5N2JjXHU5N2JkXHU5N2JlXHU5N2JmXHU5N2MwXHU5N2MxXHU5N2MyXHU5N2MzXHU5N2M0XHU5N2M1XHU5N2M2XHU5N2M3XHU5N2M4XHU5N2M5XHU5N2NhXHU5N2NiXHU5N2NjXHU5N2NkXHU5N2NlXHU5N2NmXHU5N2Qw'@; put 'XHU5N2QxXHU5N2QyXHU5N2QzXHU5N2Q0XHU5N2Q1XHU5N2Q2XHU5N2Q3XHU5N2Q4XHU5N2Q5XHU5N2RhXHU5N2RiXHU5N2RjXHU5N2RkXHU5N2RlXHU5N2RmXHU5N2UwXHU5N2UxXHU5N2UyXHU5N2UzXHVmZmZkXHU5N2U0XHU5N2U1XHU5N2U4XHU5N2VlXHU5N2VmXHU5N2YwXHU5N2YxXHU5'@; put 'N2YyXHU5N2Y0XHU5N2Y3XHU5N2Y4XHU5N2Y5XHU5N2ZhXHU5N2ZiXHU5N2ZjXHU5N2ZkXHU5N2ZlXHU5N2ZmXHU5ODAwXHU5ODAxXHU5ODAyXHU5ODAzXHU5ODA0XHU5ODA1XHU5ODA2XHU5ODA3XHU5ODA4XHU5ODA5XHU5ODBhXHU5ODBiXHU5ODBjXHU5ODBkXHU5ODBlXHU2MDNjXHU2MDVk'@; put 'XHU2MDVhXHU2MDY3XHU2MDQxXHU2MDU5XHU2MDYzXHU2MGFiXHU2MTA2XHU2MTBkXHU2MTVkXHU2MWE5XHU2MTlkXHU2MWNiXHU2MWQxXHU2MjA2XHU4MDgwXHU4MDdmXHU2YzkzXHU2Y2Y2XHU2ZGZjXHU3N2Y2XHU3N2Y4XHU3ODAwXHU3ODA5XHU3ODE3XHU3ODE4XHU3ODExXHU2NWFiXHU3'@; put 'ODJkXHU3ODFjXHU3ODFkXHU3ODM5XHU3ODNhXHU3ODNiXHU3ODFmXHU3ODNjXHU3ODI1XHU3ODJjXHU3ODIzXHU3ODI5XHU3ODRlXHU3ODZkXHU3ODU2XHU3ODU3XHU3ODI2XHU3ODUwXHU3ODQ3XHU3ODRjXHU3ODZhXHU3ODliXHU3ODkzXHU3ODlhXHU3ODg3XHU3ODljXHU3OGExXHU3OGEz'@; put 'XHU3OGIyXHU3OGI5XHU3OGE1XHU3OGQ0XHU3OGQ5XHU3OGM5XHU3OGVjXHU3OGYyXHU3OTA1XHU3OGY0XHU3OTEzXHU3OTI0XHU3OTFlXHU3OTM0XHU5ZjliXHU5ZWY5XHU5ZWZiXHU5ZWZjXHU3NmYxXHU3NzA0XHU3NzBkXHU3NmY5XHU3NzA3XHU3NzA4XHU3NzFhXHU3NzIyXHU3NzE5XHU3'@; put 'NzJkXHU3NzI2XHU3NzM1XHU3NzM4XHU3NzUwXHU3NzUxXHU3NzQ3XHU3NzQzXHU3NzVhXHU3NzY4XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjM3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzN11bbV1dPTYwNjcyK20sRls2MDY3Mitt'@; put 'XT14WzIzN11bbV0pO2Zvcih4WzIzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTgwZlx1OTgxMFx1OTgxMVx1OTgxMlx1OTgxM1x1OTgxNFx1OTgxNVx1OTgxNlx1OTgxN1x1OTgxOFx1OTgxOVx1OTgxYVx1OTgxYlx1OTgxY1x1'@; put 'OTgxZFx1OTgxZVx1OTgxZlx1OTgyMFx1OTgyMVx1OTgyMlx1OTgyM1x1OTgyNFx1OTgyNVx1OTgyNlx1OTgyN1x1OTgyOFx1OTgyOVx1OTgyYVx1OTgyYlx1OTgyY1x1OTgyZFx1OTgyZVx1OTgyZlx1OTgzMFx1OTgzMVx1OTgzMlx1OTgzM1x1OTgzNFx1OTgzNVx1OTgzNlx1OTgzN1x1OTgz'@; put 'OFx1OTgzOVx1OTgzYVx1OTgzYlx1OTgzY1x1OTgzZFx1OTgzZVx1OTgzZlx1OTg0MFx1OTg0MVx1OTg0Mlx1OTg0M1x1OTg0NFx1OTg0NVx1OTg0Nlx1OTg0N1x1OTg0OFx1OTg0OVx1OTg0YVx1OTg0Ylx1OTg0Y1x1OTg0ZFx1ZmZmZFx1OTg0ZVx1OTg0Zlx1OTg1MFx1OTg1MVx1OTg1Mlx1'@; put 'OTg1M1x1OTg1NFx1OTg1NVx1OTg1Nlx1OTg1N1x1OTg1OFx1OTg1OVx1OTg1YVx1OTg1Ylx1OTg1Y1x1OTg1ZFx1OTg1ZVx1OTg1Zlx1OTg2MFx1OTg2MVx1OTg2Mlx1OTg2M1x1OTg2NFx1OTg2NVx1OTg2Nlx1OTg2N1x1OTg2OFx1OTg2OVx1OTg2YVx1OTg2Ylx1OTg2Y1x1OTg2ZFx1OTg2'@; put 'ZVx1Nzc2Mlx1Nzc2NVx1Nzc3Zlx1Nzc4ZFx1Nzc3ZFx1Nzc4MFx1Nzc4Y1x1Nzc5MVx1Nzc5Zlx1NzdhMFx1NzdiMFx1NzdiNVx1NzdiZFx1NzUzYVx1NzU0MFx1NzU0ZVx1NzU0Ylx1NzU0OFx1NzU1Ylx1NzU3Mlx1NzU3OVx1NzU4M1x1N2Y1OFx1N2Y2MVx1N2Y1Zlx1OGE0OFx1N2Y2OFx1'@; put 'N2Y3NFx1N2Y3MVx1N2Y3OVx1N2Y4MVx1N2Y3ZVx1NzZjZFx1NzZlNVx1ODgzMlx1OTQ4NVx1OTQ4Nlx1OTQ4N1x1OTQ4Ylx1OTQ4YVx1OTQ4Y1x1OTQ4ZFx1OTQ4Zlx1OTQ5MFx1OTQ5NFx1OTQ5N1x1OTQ5NVx1OTQ5YVx1OTQ5Ylx1OTQ5Y1x1OTRhM1x1OTRhNFx1OTRhYlx1OTRhYVx1OTRh'@; put 'ZFx1OTRhY1x1OTRhZlx1OTRiMFx1OTRiMlx1OTRiNFx1OTRiNlx1OTRiN1x1OTRiOFx1OTRiOVx1OTRiYVx1OTRiY1x1OTRiZFx1OTRiZlx1OTRjNFx1OTRjOFx1OTRjOVx1OTRjYVx1OTRjYlx1OTRjY1x1OTRjZFx1OTRjZVx1OTRkMFx1OTRkMVx1OTRkMlx1OTRkNVx1OTRkNlx1OTRkN1x1'@; put 'OTRkOVx1OTRkOFx1OTRkYlx1OTRkZVx1OTRkZlx1OTRlMFx1OTRlMlx1OTRlNFx1OTRlNVx1OTRlN1x1OTRlOFx1OTRlYVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzOF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzhdW21dXT02MDky'@; put 'OCttLEZbNjA5MjgrbV09eFsyMzhdW21dKTtmb3IoeFsyMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk4NmZcdTk4NzBcdTk4NzFcdTk4NzJcdTk4NzNcdTk4NzRcdTk4OGJcdTk4OGVcdTk4OTJcdTk4OTVcdTk4OTlcdTk4YTNc'@; put 'dTk4YThcdTk4YTlcdTk4YWFcdTk4YWJcdTk4YWNcdTk4YWRcdTk4YWVcdTk4YWZcdTk4YjBcdTk4YjFcdTk4YjJcdTk4YjNcdTk4YjRcdTk4YjVcdTk4YjZcdTk4YjdcdTk4YjhcdTk4YjlcdTk4YmFcdTk4YmJcdTk4YmNcdTk4YmRcdTk4YmVcdTk4YmZcdTk4YzBcdTk4YzFcdTk4YzJcdTk4'@; put 'YzNcdTk4YzRcdTk4YzVcdTk4YzZcdTk4YzdcdTk4YzhcdTk4YzlcdTk4Y2FcdTk4Y2JcdTk4Y2NcdTk4Y2RcdTk4Y2ZcdTk4ZDBcdTk4ZDRcdTk4ZDZcdTk4ZDdcdTk4ZGJcdTk4ZGNcdTk4ZGRcdTk4ZTBcdTk4ZTFcdTk4ZTJcdTk4ZTNcdTk4ZTRcdWZmZmRcdTk4ZTVcdTk4ZTZcdTk4ZTlc'@; put 'dTk4ZWFcdTk4ZWJcdTk4ZWNcdTk4ZWRcdTk4ZWVcdTk4ZWZcdTk4ZjBcdTk4ZjFcdTk4ZjJcdTk4ZjNcdTk4ZjRcdTk4ZjVcdTk4ZjZcdTk4ZjdcdTk4ZjhcdTk4ZjlcdTk4ZmFcdTk4ZmJcdTk4ZmNcdTk4ZmRcdTk4ZmVcdTk4ZmZcdTk5MDBcdTk5MDFcdTk5MDJcdTk5MDNcdTk5MDRcdTk5'@; put 'MDVcdTk5MDZcdTk5MDdcdTk0ZTlcdTk0ZWJcdTk0ZWVcdTk0ZWZcdTk0ZjNcdTk0ZjRcdTk0ZjVcdTk0ZjdcdTk0ZjlcdTk0ZmNcdTk0ZmRcdTk0ZmZcdTk1MDNcdTk1MDJcdTk1MDZcdTk1MDdcdTk1MDlcdTk1MGFcdTk1MGRcdTk1MGVcdTk1MGZcdTk1MTJcdTk1MTNcdTk1MTRcdTk1MTVc'@; put 'dTk1MTZcdTk1MThcdTk1MWJcdTk1MWRcdTk1MWVcdTk1MWZcdTk1MjJcdTk1MmFcdTk1MmJcdTk1MjlcdTk1MmNcdTk1MzFcdTk1MzJcdTk1MzRcdTk1MzZcdTk1MzdcdTk1MzhcdTk1M2NcdTk1M2VcdTk1M2ZcdTk1NDJcdTk1MzVcdTk1NDRcdTk1NDVcdTk1NDZcdTk1NDlcdTk1NGNcdTk1'@; put 'NGVcdTk1NGZcdTk1NTJcdTk1NTNcdTk1NTRcdTk1NTZcdTk1NTdcdTk1NThcdTk1NTlcdTk1NWJcdTk1NWVcdTk1NWZcdTk1NWRcdTk1NjFcdTk1NjJcdTk1NjRcdTk1NjVcdTk1NjZcdTk1NjdcdTk1NjhcdTk1NjlcdTk1NmFcdTk1NmJcdTk1NmNcdTk1NmZcdTk1NzFcdTk1NzJcdTk1NzNc'@; put 'dTk1M2FcdTc3ZTdcdTc3ZWNcdTk2YzlcdTc5ZDVcdTc5ZWRcdTc5ZTNcdTc5ZWJcdTdhMDZcdTVkNDdcdTdhMDNcdTdhMDJcdTdhMWVcdTdhMTRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzldLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hb'@; put 'MjM5XVttXV09NjExODQrbSxGWzYxMTg0K21dPXhbMjM5XVttXSk7Zm9yKHhbMjQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5OTA4XHU5OTA5XHU5OTBhXHU5OTBiXHU5OTBjXHU5OTBlXHU5OTBmXHU5OTExXHU5OTEyXHU5OTEz'@; put 'XHU5OTE0XHU5OTE1XHU5OTE2XHU5OTE3XHU5OTE4XHU5OTE5XHU5OTFhXHU5OTFiXHU5OTFjXHU5OTFkXHU5OTFlXHU5OTFmXHU5OTIwXHU5OTIxXHU5OTIyXHU5OTIzXHU5OTI0XHU5OTI1XHU5OTI2XHU5OTI3XHU5OTI4XHU5OTI5XHU5OTJhXHU5OTJiXHU5OTJjXHU5OTJkXHU5OTJmXHU5'@; put 'OTMwXHU5OTMxXHU5OTMyXHU5OTMzXHU5OTM0XHU5OTM1XHU5OTM2XHU5OTM3XHU5OTM4XHU5OTM5XHU5OTNhXHU5OTNiXHU5OTNjXHU5OTNkXHU5OTNlXHU5OTNmXHU5OTQwXHU5OTQxXHU5OTQyXHU5OTQzXHU5OTQ0XHU5OTQ1XHU5OTQ2XHU5OTQ3XHU5OTQ4XHU5OTQ5XHVmZmZkXHU5OTRh'@; put 'XHU5OTRiXHU5OTRjXHU5OTRkXHU5OTRlXHU5OTRmXHU5OTUwXHU5OTUxXHU5OTUyXHU5OTUzXHU5OTU2XHU5OTU3XHU5OTU4XHU5OTU5XHU5OTVhXHU5OTViXHU5OTVjXHU5OTVkXHU5OTVlXHU5OTVmXHU5OTYwXHU5OTYxXHU5OTYyXHU5OTY0XHU5OTY2XHU5OTczXHU5OTc4XHU5OTc5XHU5'@; put 'OTdiXHU5OTdlXHU5OTgyXHU5OTgzXHU5OTg5XHU3YTM5XHU3YTM3XHU3YTUxXHU5ZWNmXHU5OWE1XHU3YTcwXHU3Njg4XHU3NjhlXHU3NjkzXHU3Njk5XHU3NmE0XHU3NGRlXHU3NGUwXHU3NTJjXHU5ZTIwXHU5ZTIyXHU5ZTI4XHU5ZTI5XHU5ZTJhXHU5ZTJiXHU5ZTJjXHU5ZTMyXHU5ZTMx'@; put 'XHU5ZTM2XHU5ZTM4XHU5ZTM3XHU5ZTM5XHU5ZTNhXHU5ZTNlXHU5ZTQxXHU5ZTQyXHU5ZTQ0XHU5ZTQ2XHU5ZTQ3XHU5ZTQ4XHU5ZTQ5XHU5ZTRiXHU5ZTRjXHU5ZTRlXHU5ZTUxXHU5ZTU1XHU5ZTU3XHU5ZTVhXHU5ZTViXHU5ZTVjXHU5ZTVlXHU5ZTYzXHU5ZTY2XHU5ZTY3XHU5ZTY4XHU5'@; put 'ZTY5XHU5ZTZhXHU5ZTZiXHU5ZTZjXHU5ZTcxXHU5ZTZkXHU5ZTczXHU3NTkyXHU3NTk0XHU3NTk2XHU3NWEwXHU3NTlkXHU3NWFjXHU3NWEzXHU3NWIzXHU3NWI0XHU3NWI4XHU3NWM0XHU3NWIxXHU3NWIwXHU3NWMzXHU3NWMyXHU3NWQ2XHU3NWNkXHU3NWUzXHU3NWU4XHU3NWU2XHU3NWU0'@; put 'XHU3NWViXHU3NWU3XHU3NjAzXHU3NWYxXHU3NWZjXHU3NWZmXHU3NjEwXHU3NjAwXHU3NjA1XHU3NjBjXHU3NjE3XHU3NjBhXHU3NjI1XHU3NjE4XHU3NjE1XHU3NjE5XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDBdW21dLmNoYXJDb2Rl'@; put 'QXQoMCkmJihhZVt4WzI0MF1bbV1dPTYxNDQwK20sRls2MTQ0MCttXT14WzI0MF1bbV0pO2Zvcih4WzI0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTk4Y1x1OTk4ZVx1OTk5YVx1OTk5Ylx1OTk5Y1x1OTk5ZFx1OTk5ZVx1OTk5'@; put 'Zlx1OTlhMFx1OTlhMVx1OTlhMlx1OTlhM1x1OTlhNFx1OTlhNlx1OTlhN1x1OTlhOVx1OTlhYVx1OTlhYlx1OTlhY1x1OTlhZFx1OTlhZVx1OTlhZlx1OTliMFx1OTliMVx1OTliMlx1OTliM1x1OTliNFx1OTliNVx1OTliNlx1OTliN1x1OTliOFx1OTliOVx1OTliYVx1OTliYlx1OTliY1x1'@; put 'OTliZFx1OTliZVx1OTliZlx1OTljMFx1OTljMVx1OTljMlx1OTljM1x1OTljNFx1OTljNVx1OTljNlx1OTljN1x1OTljOFx1OTljOVx1OTljYVx1OTljYlx1OTljY1x1OTljZFx1OTljZVx1OTljZlx1OTlkMFx1OTlkMVx1OTlkMlx1OTlkM1x1OTlkNFx1OTlkNVx1OTlkNlx1OTlkN1x1OTlk'@; put 'OFx1ZmZmZFx1OTlkOVx1OTlkYVx1OTlkYlx1OTlkY1x1OTlkZFx1OTlkZVx1OTlkZlx1OTllMFx1OTllMVx1OTllMlx1OTllM1x1OTllNFx1OTllNVx1OTllNlx1OTllN1x1OTllOFx1OTllOVx1OTllYVx1OTllYlx1OTllY1x1OTllZFx1OTllZVx1OTllZlx1OTlmMFx1OTlmMVx1OTlmMlx1'@; put 'OTlmM1x1OTlmNFx1OTlmNVx1OTlmNlx1OTlmN1x1OTlmOFx1OTlmOVx1NzYxYlx1NzYzY1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyZFx1NzYzMFx1NzYzZlx1NzYzNVx1NzY0M1x1NzYzZVx1NzYzM1x1NzY0ZFx1NzY1ZVx1NzY1NFx1NzY1Y1x1NzY1Nlx1NzY2Ylx1NzY2Zlx1N2ZjYVx1N2Fl'@; put 'Nlx1N2E3OFx1N2E3OVx1N2E4MFx1N2E4Nlx1N2E4OFx1N2E5NVx1N2FhNlx1N2FhMFx1N2FhY1x1N2FhOFx1N2FhZFx1N2FiM1x1ODg2NFx1ODg2OVx1ODg3Mlx1ODg3ZFx1ODg3Zlx1ODg4Mlx1ODhhMlx1ODhjNlx1ODhiN1x1ODhiY1x1ODhjOVx1ODhlMlx1ODhjZVx1ODhlM1x1ODhlNVx1'@; put 'ODhmMVx1ODkxYVx1ODhmY1x1ODhlOFx1ODhmZVx1ODhmMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxYlx1ODkwYVx1ODkzNFx1ODkyYlx1ODkzNlx1ODk0MVx1ODk2Nlx1ODk3Ylx1NzU4Ylx1ODBlNVx1NzZiMlx1NzZiNFx1NzdkY1x1ODAxMlx1ODAxNFx1ODAxNlx1ODAxY1x1ODAyMFx1ODAy'@; put 'Mlx1ODAyNVx1ODAyNlx1ODAyN1x1ODAyOVx1ODAyOFx1ODAzMVx1ODAwYlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0ZFx1ODA1Mlx1ODA2OVx1ODA3MVx1ODk4M1x1OTg3OFx1OTg4MFx1OTg4M1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQx'@; put 'XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDFdW21dXT02MTY5NittLEZbNjE2OTYrbV09eFsyNDFdW21dKTtmb3IoeFsyNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5ZmFcdTk5ZmJcdTk5ZmNcdTk5ZmRcdTk5ZmVcdTk5'@; put 'ZmZcdTlhMDBcdTlhMDFcdTlhMDJcdTlhMDNcdTlhMDRcdTlhMDVcdTlhMDZcdTlhMDdcdTlhMDhcdTlhMDlcdTlhMGFcdTlhMGJcdTlhMGNcdTlhMGRcdTlhMGVcdTlhMGZcdTlhMTBcdTlhMTFcdTlhMTJcdTlhMTNcdTlhMTRcdTlhMTVcdTlhMTZcdTlhMTdcdTlhMThcdTlhMTlcdTlhMWFc'@; put 'dTlhMWJcdTlhMWNcdTlhMWRcdTlhMWVcdTlhMWZcdTlhMjBcdTlhMjFcdTlhMjJcdTlhMjNcdTlhMjRcdTlhMjVcdTlhMjZcdTlhMjdcdTlhMjhcdTlhMjlcdTlhMmFcdTlhMmJcdTlhMmNcdTlhMmRcdTlhMmVcdTlhMmZcdTlhMzBcdTlhMzFcdTlhMzJcdTlhMzNcdTlhMzRcdTlhMzVcdTlh'@; put 'MzZcdTlhMzdcdTlhMzhcdWZmZmRcdTlhMzlcdTlhM2FcdTlhM2JcdTlhM2NcdTlhM2RcdTlhM2VcdTlhM2ZcdTlhNDBcdTlhNDFcdTlhNDJcdTlhNDNcdTlhNDRcdTlhNDVcdTlhNDZcdTlhNDdcdTlhNDhcdTlhNDlcdTlhNGFcdTlhNGJcdTlhNGNcdTlhNGRcdTlhNGVcdTlhNGZcdTlhNTBc'@; put 'dTlhNTFcdTlhNTJcdTlhNTNcdTlhNTRcdTlhNTVcdTlhNTZcdTlhNTdcdTlhNThcdTlhNTlcdTk4ODlcdTk4OGNcdTk4OGRcdTk4OGZcdTk4OTRcdTk4OWFcdTk4OWJcdTk4OWVcdTk4OWZcdTk4YTFcdTk4YTJcdTk4YTVcdTk4YTZcdTg2NGRcdTg2NTRcdTg2NmNcdTg2NmVcdTg2N2ZcdTg2'@; put 'N2FcdTg2N2NcdTg2N2JcdTg2YThcdTg2OGRcdTg2OGJcdTg2YWNcdTg2OWRcdTg2YTdcdTg2YTNcdTg2YWFcdTg2OTNcdTg2YTlcdTg2YjZcdTg2YzRcdTg2YjVcdTg2Y2VcdTg2YjBcdTg2YmFcdTg2YjFcdTg2YWZcdTg2YzlcdTg2Y2ZcdTg2YjRcdTg2ZTlcdTg2ZjFcdTg2ZjJcdTg2ZWRc'@; put 'dTg2ZjNcdTg2ZDBcdTg3MTNcdTg2ZGVcdTg2ZjRcdTg2ZGZcdTg2ZDhcdTg2ZDFcdTg3MDNcdTg3MDdcdTg2ZjhcdTg3MDhcdTg3MGFcdTg3MGRcdTg3MDlcdTg3MjNcdTg3M2JcdTg3MWVcdTg3MjVcdTg3MmVcdTg3MWFcdTg3M2VcdTg3NDhcdTg3MzRcdTg3MzFcdTg3MjlcdTg3MzdcdTg3'@; put 'M2ZcdTg3ODJcdTg3MjJcdTg3N2RcdTg3N2VcdTg3N2JcdTg3NjBcdTg3NzBcdTg3NGNcdTg3NmVcdTg3OGJcdTg3NTNcdTg3NjNcdTg3N2NcdTg3NjRcdTg3NTlcdTg3NjVcdTg3OTNcdTg3YWZcdTg3YThcdTg3ZDJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDJdLmxlbmd0aDsrK20p'@; put 'NjU1MzMhPT14WzI0Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQyXVttXV09NjE5NTIrbSxGWzYxOTUyK21dPXhbMjQyXVttXSk7Zm9yKHhbMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YTVhXHU5YTViXHU5YTVjXHU5'@; put 'YTVkXHU5YTVlXHU5YTVmXHU5YTYwXHU5YTYxXHU5YTYyXHU5YTYzXHU5YTY0XHU5YTY1XHU5YTY2XHU5YTY3XHU5YTY4XHU5YTY5XHU5YTZhXHU5YTZiXHU5YTcyXHU5YTgzXHU5YTg5XHU5YThkXHU5YThlXHU5YTk0XHU5YTk1XHU5YTk5XHU5YWE2XHU5YWE5XHU5YWFhXHU5YWFiXHU5YWFj'@; put 'XHU5YWFkXHU5YWFlXHU5YWFmXHU5YWIyXHU5YWIzXHU5YWI0XHU5YWI1XHU5YWI5XHU5YWJiXHU5YWJkXHU5YWJlXHU5YWJmXHU5YWMzXHU5YWM0XHU5YWM2XHU5YWM3XHU5YWM4XHU5YWM5XHU5YWNhXHU5YWNkXHU5YWNlXHU5YWNmXHU5YWQwXHU5YWQyXHU5YWQ0XHU5YWQ1XHU5YWQ2XHU5'@; put 'YWQ3XHU5YWQ5XHU5YWRhXHU5YWRiXHU5YWRjXHVmZmZkXHU5YWRkXHU5YWRlXHU5YWUwXHU5YWUyXHU5YWUzXHU5YWU0XHU5YWU1XHU5YWU3XHU5YWU4XHU5YWU5XHU5YWVhXHU5YWVjXHU5YWVlXHU5YWYwXHU5YWYxXHU5YWYyXHU5YWYzXHU5YWY0XHU5YWY1XHU5YWY2XHU5YWY3XHU5YWY4'@; put 'XHU5YWZhXHU5YWZjXHU5YWZkXHU5YWZlXHU5YWZmXHU5YjAwXHU5YjAxXHU5YjAyXHU5YjA0XHU5YjA1XHU5YjA2XHU4N2M2XHU4Nzg4XHU4Nzg1XHU4N2FkXHU4Nzk3XHU4NzgzXHU4N2FiXHU4N2U1XHU4N2FjXHU4N2I1XHU4N2IzXHU4N2NiXHU4N2QzXHU4N2JkXHU4N2QxXHU4N2MwXHU4'@; put 'N2NhXHU4N2RiXHU4N2VhXHU4N2UwXHU4N2VlXHU4ODE2XHU4ODEzXHU4N2ZlXHU4ODBhXHU4ODFiXHU4ODIxXHU4ODM5XHU4ODNjXHU3ZjM2XHU3ZjQyXHU3ZjQ0XHU3ZjQ1XHU4MjEwXHU3YWZhXHU3YWZkXHU3YjA4XHU3YjAzXHU3YjA0XHU3YjE1XHU3YjBhXHU3YjJiXHU3YjBmXHU3YjQ3'@; put 'XHU3YjM4XHU3YjJhXHU3YjE5XHU3YjJlXHU3YjMxXHU3YjIwXHU3YjI1XHU3YjI0XHU3YjMzXHU3YjNlXHU3YjFlXHU3YjU4XHU3YjVhXHU3YjQ1XHU3Yjc1XHU3YjRjXHU3YjVkXHU3YjYwXHU3YjZlXHU3YjdiXHU3YjYyXHU3YjcyXHU3YjcxXHU3YjkwXHU3YmE2XHU3YmE3XHU3YmI4XHU3'@; put 'YmFjXHU3YjlkXHU3YmE4XHU3Yjg1XHU3YmFhXHU3YjljXHU3YmEyXHU3YmFiXHU3YmI0XHU3YmQxXHU3YmMxXHU3YmNjXHU3YmRkXHU3YmRhXHU3YmU1XHU3YmU2XHU3YmVhXHU3YzBjXHU3YmZlXHU3YmZjXHU3YzBmXHU3YzE2XHU3YzBiXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQz'@; put 'XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0M11bbV1dPTYyMjA4K20sRls2MjIwOCttXT14WzI0M11bbV0pO2Zvcih4WzI0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWIwN1x1'@; put 'OWIwOVx1OWIwYVx1OWIwYlx1OWIwY1x1OWIwZFx1OWIwZVx1OWIxMFx1OWIxMVx1OWIxMlx1OWIxNFx1OWIxNVx1OWIxNlx1OWIxN1x1OWIxOFx1OWIxOVx1OWIxYVx1OWIxYlx1OWIxY1x1OWIxZFx1OWIxZVx1OWIyMFx1OWIyMVx1OWIyMlx1OWIyNFx1OWIyNVx1OWIyNlx1OWIyN1x1OWIy'@; put 'OFx1OWIyOVx1OWIyYVx1OWIyYlx1OWIyY1x1OWIyZFx1OWIyZVx1OWIzMFx1OWIzMVx1OWIzM1x1OWIzNFx1OWIzNVx1OWIzNlx1OWIzN1x1OWIzOFx1OWIzOVx1OWIzYVx1OWIzZFx1OWIzZVx1OWIzZlx1OWI0MFx1OWI0Nlx1OWI0YVx1OWI0Ylx1OWI0Y1x1OWI0ZVx1OWI1MFx1OWI1Mlx1'@; put 'OWI1M1x1OWI1NVx1OWI1Nlx1OWI1N1x1OWI1OFx1OWI1OVx1OWI1YVx1ZmZmZFx1OWI1Ylx1OWI1Y1x1OWI1ZFx1OWI1ZVx1OWI1Zlx1OWI2MFx1OWI2MVx1OWI2Mlx1OWI2M1x1OWI2NFx1OWI2NVx1OWI2Nlx1OWI2N1x1OWI2OFx1OWI2OVx1OWI2YVx1OWI2Ylx1OWI2Y1x1OWI2ZFx1OWI2'@; put 'ZVx1OWI2Zlx1OWI3MFx1OWI3MVx1OWI3Mlx1OWI3M1x1OWI3NFx1OWI3NVx1OWI3Nlx1OWI3N1x1OWI3OFx1OWI3OVx1OWI3YVx1OWI3Ylx1N2MxZlx1N2MyYVx1N2MyNlx1N2MzOFx1N2M0MVx1N2M0MFx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNFx1ODFlY1x1ODg0NFx1ODIyMVx1ODIyMlx1'@; put 'ODIyM1x1ODIyZFx1ODIyZlx1ODIyOFx1ODIyYlx1ODIzOFx1ODIzYlx1ODIzM1x1ODIzNFx1ODIzZVx1ODI0NFx1ODI0OVx1ODI0Ylx1ODI0Zlx1ODI1YVx1ODI1Zlx1ODI2OFx1ODg3ZVx1ODg4NVx1ODg4OFx1ODhkOFx1ODhkZlx1ODk1ZVx1N2Y5ZFx1N2Y5Zlx1N2ZhN1x1N2ZhZlx1N2Zi'@; put 'MFx1N2ZiMlx1N2M3Y1x1NjU0OVx1N2M5MVx1N2M5ZFx1N2M5Y1x1N2M5ZVx1N2NhMlx1N2NiMlx1N2NiY1x1N2NiZFx1N2NjMVx1N2NjN1x1N2NjY1x1N2NjZFx1N2NjOFx1N2NjNVx1N2NkN1x1N2NlOFx1ODI2ZVx1NjZhOFx1N2ZiZlx1N2ZjZVx1N2ZkNVx1N2ZlNVx1N2ZlMVx1N2ZlNlx1'@; put 'N2ZlOVx1N2ZlZVx1N2ZmM1x1N2NmOFx1N2Q3N1x1N2RhNlx1N2RhZVx1N2U0N1x1N2U5Ylx1OWViOFx1OWViNFx1OGQ3M1x1OGQ4NFx1OGQ5NFx1OGQ5MVx1OGRiMVx1OGQ2N1x1OGQ2ZFx1OGM0N1x1OGM0OVx1OTE0YVx1OTE1MFx1OTE0ZVx1OTE0Zlx1OTE2NFx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LG09MDttIT14WzI0NF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQ0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDRdW21dXT02MjQ2NCttLEZbNjI0NjQrbV09eFsyNDRdW21dKTtmb3IoeFsyNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdTliN2NcdTliN2RcdTliN2VcdTliN2ZcdTliODBcdTliODFcdTliODJcdTliODNcdTliODRcdTliODVcdTliODZcdTliODdcdTliODhcdTliODlcdTliOGFcdTliOGJcdTliOGNcdTliOGRcdTliOGVcdTliOGZcdTliOTBcdTliOTFcdTliOTJcdTliOTNcdTliOTRcdTliOTVcdTli'@; put 'OTZcdTliOTdcdTliOThcdTliOTlcdTliOWFcdTliOWJcdTliOWNcdTliOWRcdTliOWVcdTliOWZcdTliYTBcdTliYTFcdTliYTJcdTliYTNcdTliYTRcdTliYTVcdTliYTZcdTliYTdcdTliYThcdTliYTlcdTliYWFcdTliYWJcdTliYWNcdTliYWRcdTliYWVcdTliYWZcdTliYjBcdTliYjFc'@; put 'dTliYjJcdTliYjNcdTliYjRcdTliYjVcdTliYjZcdTliYjdcdTliYjhcdTliYjlcdTliYmFcdWZmZmRcdTliYmJcdTliYmNcdTliYmRcdTliYmVcdTliYmZcdTliYzBcdTliYzFcdTliYzJcdTliYzNcdTliYzRcdTliYzVcdTliYzZcdTliYzdcdTliYzhcdTliYzlcdTliY2FcdTliY2JcdTli'@; put 'Y2NcdTliY2RcdTliY2VcdTliY2ZcdTliZDBcdTliZDFcdTliZDJcdTliZDNcdTliZDRcdTliZDVcdTliZDZcdTliZDdcdTliZDhcdTliZDlcdTliZGFcdTliZGJcdTkxNjJcdTkxNjFcdTkxNzBcdTkxNjlcdTkxNmZcdTkxN2RcdTkxN2VcdTkxNzJcdTkxNzRcdTkxNzlcdTkxOGNcdTkxODVc'@; put 'dTkxOTBcdTkxOGRcdTkxOTFcdTkxYTJcdTkxYTNcdTkxYWFcdTkxYWRcdTkxYWVcdTkxYWZcdTkxYjVcdTkxYjRcdTkxYmFcdThjNTVcdTllN2VcdThkYjhcdThkZWJcdThlMDVcdThlNTlcdThlNjlcdThkYjVcdThkYmZcdThkYmNcdThkYmFcdThkYzRcdThkZDZcdThkZDdcdThkZGFcdThk'@; put 'ZGVcdThkY2VcdThkY2ZcdThkZGJcdThkYzZcdThkZWNcdThkZjdcdThkZjhcdThkZTNcdThkZjlcdThkZmJcdThkZTRcdThlMDlcdThkZmRcdThlMTRcdThlMWRcdThlMWZcdThlMmNcdThlMmVcdThlMjNcdThlMmZcdThlM2FcdThlNDBcdThlMzlcdThlMzVcdThlM2RcdThlMzFcdThlNDlc'@; put 'dThlNDFcdThlNDJcdThlNTFcdThlNTJcdThlNGFcdThlNzBcdThlNzZcdThlN2NcdThlNmZcdThlNzRcdThlODVcdThlOGZcdThlOTRcdThlOTBcdThlOWNcdThlOWVcdThjNzhcdThjODJcdThjOGFcdThjODVcdThjOThcdThjOTRcdTY1OWJcdTg5ZDZcdTg5ZGVcdTg5ZGFcdTg5ZGNcdWZm'@; put 'ZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0NV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQ1XVttXV09NjI3MjArbSxGWzYyNzIwK21dPXhbMjQ1XVttXSk7Zm9yKHhbMjQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU5YmRjXHU5YmRkXHU5YmRlXHU5YmRmXHU5YmUwXHU5YmUxXHU5YmUyXHU5YmUzXHU5YmU0XHU5YmU1XHU5YmU2XHU5YmU3XHU5YmU4XHU5YmU5XHU5YmVhXHU5YmViXHU5YmVjXHU5YmVkXHU5YmVlXHU5YmVmXHU5YmYwXHU5YmYxXHU5YmYyXHU5YmYzXHU5'@; put 'YmY0XHU5YmY1XHU5YmY2XHU5YmY3XHU5YmY4XHU5YmY5XHU5YmZhXHU5YmZiXHU5YmZjXHU5YmZkXHU5YmZlXHU5YmZmXHU5YzAwXHU5YzAxXHU5YzAyXHU5YzAzXHU5YzA0XHU5YzA1XHU5YzA2XHU5YzA3XHU5YzA4XHU5YzA5XHU5YzBhXHU5YzBiXHU5YzBjXHU5YzBkXHU5YzBlXHU5YzBm'@; put 'XHU5YzEwXHU5YzExXHU5YzEyXHU5YzEzXHU5YzE0XHU5YzE1XHU5YzE2XHU5YzE3XHU5YzE4XHU5YzE5XHU5YzFhXHVmZmZkXHU5YzFiXHU5YzFjXHU5YzFkXHU5YzFlXHU5YzFmXHU5YzIwXHU5YzIxXHU5YzIyXHU5YzIzXHU5YzI0XHU5YzI1XHU5YzI2XHU5YzI3XHU5YzI4XHU5YzI5XHU5'@; put 'YzJhXHU5YzJiXHU5YzJjXHU5YzJkXHU5YzJlXHU5YzJmXHU5YzMwXHU5YzMxXHU5YzMyXHU5YzMzXHU5YzM0XHU5YzM1XHU5YzM2XHU5YzM3XHU5YzM4XHU5YzM5XHU5YzNhXHU5YzNiXHU4OWU1XHU4OWViXHU4OWVmXHU4YTNlXHU4YjI2XHU5NzUzXHU5NmU5XHU5NmYzXHU5NmVmXHU5NzA2'@; put 'XHU5NzAxXHU5NzA4XHU5NzBmXHU5NzBlXHU5NzJhXHU5NzJkXHU5NzMwXHU5NzNlXHU5ZjgwXHU5ZjgzXHU5Zjg1XHU5Zjg2XHU5Zjg3XHU5Zjg4XHU5Zjg5XHU5ZjhhXHU5ZjhjXHU5ZWZlXHU5ZjBiXHU5ZjBkXHU5NmI5XHU5NmJjXHU5NmJkXHU5NmNlXHU5NmQyXHU3N2JmXHU5NmUwXHU5'@; put 'MjhlXHU5MmFlXHU5MmM4XHU5MzNlXHU5MzZhXHU5M2NhXHU5MzhmXHU5NDNlXHU5NDZiXHU5YzdmXHU5YzgyXHU5Yzg1XHU5Yzg2XHU5Yzg3XHU5Yzg4XHU3YTIzXHU5YzhiXHU5YzhlXHU5YzkwXHU5YzkxXHU5YzkyXHU5Yzk0XHU5Yzk1XHU5YzlhXHU5YzliXHU5YzllXHU5YzlmXHU5Y2Ew'@; put 'XHU5Y2ExXHU5Y2EyXHU5Y2EzXHU5Y2E1XHU5Y2E2XHU5Y2E3XHU5Y2E4XHU5Y2E5XHU5Y2FiXHU5Y2FkXHU5Y2FlXHU5Y2IwXHU5Y2IxXHU5Y2IyXHU5Y2IzXHU5Y2I0XHU5Y2I1XHU5Y2I2XHU5Y2I3XHU5Y2JhXHU5Y2JiXHU5Y2JjXHU5Y2JkXHU5Y2M0XHU5Y2M1XHU5Y2M2XHU5Y2M3XHU5'@; put 'Y2NhXHU5Y2NiXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQ2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0Nl1bbV1dPTYyOTc2K20sRls2Mjk3NittXT14WzI0Nl1bbV0pO2Zvcih4WzI0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWMzY1x1OWMzZFx1OWMzZVx1OWMzZlx1OWM0MFx1OWM0MVx1OWM0Mlx1OWM0M1x1OWM0NFx1OWM0NVx1OWM0Nlx1OWM0N1x1OWM0OFx1OWM0OVx1OWM0YVx1OWM0Ylx1OWM0Y1x1OWM0ZFx1OWM0ZVx1OWM0Zlx1OWM1MFx1OWM1MVx1'@; put 'OWM1Mlx1OWM1M1x1OWM1NFx1OWM1NVx1OWM1Nlx1OWM1N1x1OWM1OFx1OWM1OVx1OWM1YVx1OWM1Ylx1OWM1Y1x1OWM1ZFx1OWM1ZVx1OWM1Zlx1OWM2MFx1OWM2MVx1OWM2Mlx1OWM2M1x1OWM2NFx1OWM2NVx1OWM2Nlx1OWM2N1x1OWM2OFx1OWM2OVx1OWM2YVx1OWM2Ylx1OWM2Y1x1OWM2'@; put 'ZFx1OWM2ZVx1OWM2Zlx1OWM3MFx1OWM3MVx1OWM3Mlx1OWM3M1x1OWM3NFx1OWM3NVx1OWM3Nlx1OWM3N1x1OWM3OFx1OWM3OVx1OWM3YVx1ZmZmZFx1OWM3Ylx1OWM3ZFx1OWM3ZVx1OWM4MFx1OWM4M1x1OWM4NFx1OWM4OVx1OWM4YVx1OWM4Y1x1OWM4Zlx1OWM5M1x1OWM5Nlx1OWM5N1x1'@; put 'OWM5OFx1OWM5OVx1OWM5ZFx1OWNhYVx1OWNhY1x1OWNhZlx1OWNiOVx1OWNiZVx1OWNiZlx1OWNjMFx1OWNjMVx1OWNjMlx1OWNjOFx1OWNjOVx1OWNkMVx1OWNkMlx1OWNkYVx1OWNkYlx1OWNlMFx1OWNlMVx1OWNjY1x1OWNjZFx1OWNjZVx1OWNjZlx1OWNkMFx1OWNkM1x1OWNkNFx1OWNk'@; put 'NVx1OWNkN1x1OWNkOFx1OWNkOVx1OWNkY1x1OWNkZFx1OWNkZlx1OWNlMlx1OTc3Y1x1OTc4NVx1OTc5MVx1OTc5Mlx1OTc5NFx1OTdhZlx1OTdhYlx1OTdhM1x1OTdiMlx1OTdiNFx1OWFiMVx1OWFiMFx1OWFiN1x1OWU1OFx1OWFiNlx1OWFiYVx1OWFiY1x1OWFjMVx1OWFjMFx1OWFjNVx1'@; put 'OWFjMlx1OWFjYlx1OWFjY1x1OWFkMVx1OWI0NVx1OWI0M1x1OWI0N1x1OWI0OVx1OWI0OFx1OWI0ZFx1OWI1MVx1OThlOFx1OTkwZFx1OTkyZVx1OTk1NVx1OTk1NFx1OWFkZlx1OWFlMVx1OWFlNlx1OWFlZlx1OWFlYlx1OWFmYlx1OWFlZFx1OWFmOVx1OWIwOFx1OWIwZlx1OWIxM1x1OWIx'@; put 'Zlx1OWIyM1x1OWViZFx1OWViZVx1N2UzYlx1OWU4Mlx1OWU4N1x1OWU4OFx1OWU4Ylx1OWU5Mlx1OTNkNlx1OWU5ZFx1OWU5Zlx1OWVkYlx1OWVkY1x1OWVkZFx1OWVlMFx1OWVkZlx1OWVlMlx1OWVlOVx1OWVlN1x1OWVlNVx1OWVlYVx1OWVlZlx1OWYyMlx1OWYyY1x1OWYyZlx1OWYzOVx1'@; put 'OWYzN1x1OWYzZFx1OWYzZVx1OWY0NFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQ3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDddW21dXT02MzIzMittLEZbNjMyMzIrbV09eFsyNDddW21dKTtmb3IoeFsyNDhdPSJcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljZTNcdTljZTRcdTljZTVcdTljZTZcdTljZTdcdTljZThcdTljZTlcdTljZWFcdTljZWJcdTljZWNcdTljZWRcdTljZWVcdTljZWZcdTljZjBcdTljZjFcdTljZjJcdTljZjNcdTljZjRcdTljZjVcdTljZjZc'@; put 'dTljZjdcdTljZjhcdTljZjlcdTljZmFcdTljZmJcdTljZmNcdTljZmRcdTljZmVcdTljZmZcdTlkMDBcdTlkMDFcdTlkMDJcdTlkMDNcdTlkMDRcdTlkMDVcdTlkMDZcdTlkMDdcdTlkMDhcdTlkMDlcdTlkMGFcdTlkMGJcdTlkMGNcdTlkMGRcdTlkMGVcdTlkMGZcdTlkMTBcdTlkMTFcdTlk'@; put 'MTJcdTlkMTNcdTlkMTRcdTlkMTVcdTlkMTZcdTlkMTdcdTlkMThcdTlkMTlcdTlkMWFcdTlkMWJcdTlkMWNcdTlkMWRcdTlkMWVcdTlkMWZcdTlkMjBcdTlkMjFcdWZmZmRcdTlkMjJcdTlkMjNcdTlkMjRcdTlkMjVcdTlkMjZcdTlkMjdcdTlkMjhcdTlkMjlcdTlkMmFcdTlkMmJcdTlkMmNc'@; put 'dTlkMmRcdTlkMmVcdTlkMmZcdTlkMzBcdTlkMzFcdTlkMzJcdTlkMzNcdTlkMzRcdTlkMzVcdTlkMzZcdTlkMzdcdTlkMzhcdTlkMzlcdTlkM2FcdTlkM2JcdTlkM2NcdTlkM2RcdTlkM2VcdTlkM2ZcdTlkNDBcdTlkNDFcdTlkNDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0OF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQ4XVttXV09NjM0ODgrbSxGWzYzNDg4K21dPXhbMjQ4XVttXSk7Zm9yKHhbMjQ5'@; put 'XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDQzXHU5ZDQ0XHU5ZDQ1XHU5ZDQ2XHU5ZDQ3XHU5ZDQ4XHU5ZDQ5XHU5ZDRhXHU5ZDRiXHU5ZDRjXHU5ZDRkXHU5ZDRlXHU5ZDRmXHU5ZDUwXHU5ZDUxXHU5ZDUyXHU5ZDUzXHU5ZDU0'@; put 'XHU5ZDU1XHU5ZDU2XHU5ZDU3XHU5ZDU4XHU5ZDU5XHU5ZDVhXHU5ZDViXHU5ZDVjXHU5ZDVkXHU5ZDVlXHU5ZDVmXHU5ZDYwXHU5ZDYxXHU5ZDYyXHU5ZDYzXHU5ZDY0XHU5ZDY1XHU5ZDY2XHU5ZDY3XHU5ZDY4XHU5ZDY5XHU5ZDZhXHU5ZDZiXHU5ZDZjXHU5ZDZkXHU5ZDZlXHU5ZDZmXHU5'@; put 'ZDcwXHU5ZDcxXHU5ZDcyXHU5ZDczXHU5ZDc0XHU5ZDc1XHU5ZDc2XHU5ZDc3XHU5ZDc4XHU5ZDc5XHU5ZDdhXHU5ZDdiXHU5ZDdjXHU5ZDdkXHU5ZDdlXHU5ZDdmXHU5ZDgwXHU5ZDgxXHVmZmZkXHU5ZDgyXHU5ZDgzXHU5ZDg0XHU5ZDg1XHU5ZDg2XHU5ZDg3XHU5ZDg4XHU5ZDg5XHU5ZDhh'@; put 'XHU5ZDhiXHU5ZDhjXHU5ZDhkXHU5ZDhlXHU5ZDhmXHU5ZDkwXHU5ZDkxXHU5ZDkyXHU5ZDkzXHU5ZDk0XHU5ZDk1XHU5ZDk2XHU5ZDk3XHU5ZDk4XHU5ZDk5XHU5ZDlhXHU5ZDliXHU5ZDljXHU5ZDlkXHU5ZDllXHU5ZDlmXHU5ZGEwXHU5ZGExXHU5ZGEyXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQ5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0OV1bbV1dPTYzNzQ0K20sRls2Mzc0NCttXT14WzI0OV1b'@; put 'bV0pO2Zvcih4WzI1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWRhM1x1OWRhNFx1OWRhNVx1OWRhNlx1OWRhN1x1OWRhOFx1OWRhOVx1OWRhYVx1OWRhYlx1OWRhY1x1OWRhZFx1OWRhZVx1OWRhZlx1OWRiMFx1OWRiMVx1OWRi'@; put 'Mlx1OWRiM1x1OWRiNFx1OWRiNVx1OWRiNlx1OWRiN1x1OWRiOFx1OWRiOVx1OWRiYVx1OWRiYlx1OWRiY1x1OWRiZFx1OWRiZVx1OWRiZlx1OWRjMFx1OWRjMVx1OWRjMlx1OWRjM1x1OWRjNFx1OWRjNVx1OWRjNlx1OWRjN1x1OWRjOFx1OWRjOVx1OWRjYVx1OWRjYlx1OWRjY1x1OWRjZFx1'@; put 'OWRjZVx1OWRjZlx1OWRkMFx1OWRkMVx1OWRkMlx1OWRkM1x1OWRkNFx1OWRkNVx1OWRkNlx1OWRkN1x1OWRkOFx1OWRkOVx1OWRkYVx1OWRkYlx1OWRkY1x1OWRkZFx1OWRkZVx1OWRkZlx1OWRlMFx1OWRlMVx1ZmZmZFx1OWRlMlx1OWRlM1x1OWRlNFx1OWRlNVx1OWRlNlx1OWRlN1x1OWRl'@; put 'OFx1OWRlOVx1OWRlYVx1OWRlYlx1OWRlY1x1OWRlZFx1OWRlZVx1OWRlZlx1OWRmMFx1OWRmMVx1OWRmMlx1OWRmM1x1OWRmNFx1OWRmNVx1OWRmNlx1OWRmN1x1OWRmOFx1OWRmOVx1OWRmYVx1OWRmYlx1OWRmY1x1OWRmZFx1OWRmZVx1OWRmZlx1OWUwMFx1OWUwMVx1OWUwMlx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI1MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjUwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNTBdW21dXT02NGUzK20sRls2NGUz'@; put 'K21dPXhbMjUwXVttXSk7Zm9yKHhbMjUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZTAzXHU5ZTA0XHU5ZTA1XHU5ZTA2XHU5ZTA3XHU5ZTA4XHU5ZTA5XHU5ZTBhXHU5ZTBiXHU5ZTBjXHU5ZTBkXHU5ZTBlXHU5ZTBmXHU5ZTEw'@; put 'XHU5ZTExXHU5ZTEyXHU5ZTEzXHU5ZTE0XHU5ZTE1XHU5ZTE2XHU5ZTE3XHU5ZTE4XHU5ZTE5XHU5ZTFhXHU5ZTFiXHU5ZTFjXHU5ZTFkXHU5ZTFlXHU5ZTI0XHU5ZTI3XHU5ZTJlXHU5ZTMwXHU5ZTM0XHU5ZTNiXHU5ZTNjXHU5ZTQwXHU5ZTRkXHU5ZTUwXHU5ZTUyXHU5ZTUzXHU5ZTU0XHU5'@; put 'ZTU2XHU5ZTU5XHU5ZTVkXHU5ZTVmXHU5ZTYwXHU5ZTYxXHU5ZTYyXHU5ZTY1XHU5ZTZlXHU5ZTZmXHU5ZTcyXHU5ZTc0XHU5ZTc1XHU5ZTc2XHU5ZTc3XHU5ZTc4XHU5ZTc5XHU5ZTdhXHU5ZTdiXHU5ZTdjXHU5ZTdkXHU5ZTgwXHVmZmZkXHU5ZTgxXHU5ZTgzXHU5ZTg0XHU5ZTg1XHU5ZTg2'@; put 'XHU5ZTg5XHU5ZThhXHU5ZThjXHU5ZThkXHU5ZThlXHU5ZThmXHU5ZTkwXHU5ZTkxXHU5ZTk0XHU5ZTk1XHU5ZTk2XHU5ZTk3XHU5ZTk4XHU5ZTk5XHU5ZTlhXHU5ZTliXHU5ZTljXHU5ZTllXHU5ZWEwXHU5ZWExXHU5ZWEyXHU5ZWEzXHU5ZWE0XHU5ZWE1XHU5ZWE3XHU5ZWE4XHU5ZWE5XHU5'@; put 'ZWFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjUxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNTFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI1MV1bbV1dPTY0'@; put 'MjU2K20sRls2NDI1NittXT14WzI1MV1bbV0pO2Zvcih4WzI1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWVhYlx1OWVhY1x1OWVhZFx1OWVhZVx1OWVhZlx1OWViMFx1OWViMVx1OWViMlx1OWViM1x1OWViNVx1OWViNlx1OWVi'@; put 'N1x1OWViOVx1OWViYVx1OWViY1x1OWViZlx1OWVjMFx1OWVjMVx1OWVjMlx1OWVjM1x1OWVjNVx1OWVjNlx1OWVjN1x1OWVjOFx1OWVjYVx1OWVjYlx1OWVjY1x1OWVkMFx1OWVkMlx1OWVkM1x1OWVkNVx1OWVkNlx1OWVkN1x1OWVkOVx1OWVkYVx1OWVkZVx1OWVlMVx1OWVlM1x1OWVlNFx1'@; put 'OWVlNlx1OWVlOFx1OWVlYlx1OWVlY1x1OWVlZFx1OWVlZVx1OWVmMFx1OWVmMVx1OWVmMlx1OWVmM1x1OWVmNFx1OWVmNVx1OWVmNlx1OWVmN1x1OWVmOFx1OWVmYVx1OWVmZFx1OWVmZlx1OWYwMFx1OWYwMVx1OWYwMlx1OWYwM1x1OWYwNFx1OWYwNVx1ZmZmZFx1OWYwNlx1OWYwN1x1OWYw'@; put 'OFx1OWYwOVx1OWYwYVx1OWYwY1x1OWYwZlx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNVx1OWYxNlx1OWYxOFx1OWYxYVx1OWYxYlx1OWYxY1x1OWYxZFx1OWYxZVx1OWYxZlx1OWYyMVx1OWYyM1x1OWYyNFx1OWYyNVx1OWYyNlx1OWYyN1x1OWYyOFx1OWYyOVx1OWYyYVx1OWYyYlx1OWYyZFx1'@; put 'OWYyZVx1OWYzMFx1OWYzMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI1Ml0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjUyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVb'@; put 'eFsyNTJdW21dXT02NDUxMittLEZbNjQ1MTIrbV09eFsyNTJdW21dKTtmb3IoeFsyNTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlmMzJcdTlmMzNcdTlmMzRcdTlmMzVcdTlmMzZcdTlmMzhcdTlmM2FcdTlmM2NcdTlmM2ZcdTlm'@; put 'NDBcdTlmNDFcdTlmNDJcdTlmNDNcdTlmNDVcdTlmNDZcdTlmNDdcdTlmNDhcdTlmNDlcdTlmNGFcdTlmNGJcdTlmNGNcdTlmNGRcdTlmNGVcdTlmNGZcdTlmNTJcdTlmNTNcdTlmNTRcdTlmNTVcdTlmNTZcdTlmNTdcdTlmNThcdTlmNTlcdTlmNWFcdTlmNWJcdTlmNWNcdTlmNWRcdTlmNWVc'@; put 'dTlmNWZcdTlmNjBcdTlmNjFcdTlmNjJcdTlmNjNcdTlmNjRcdTlmNjVcdTlmNjZcdTlmNjdcdTlmNjhcdTlmNjlcdTlmNmFcdTlmNmJcdTlmNmNcdTlmNmRcdTlmNmVcdTlmNmZcdTlmNzBcdTlmNzFcdTlmNzJcdTlmNzNcdTlmNzRcdTlmNzVcdTlmNzZcdTlmNzdcdTlmNzhcdWZmZmRcdTlm'@; put 'NzlcdTlmN2FcdTlmN2JcdTlmN2NcdTlmN2RcdTlmN2VcdTlmODFcdTlmODJcdTlmOGRcdTlmOGVcdTlmOGZcdTlmOTBcdTlmOTFcdTlmOTJcdTlmOTNcdTlmOTRcdTlmOTVcdTlmOTZcdTlmOTdcdTlmOThcdTlmOWNcdTlmOWRcdTlmOWVcdTlmYTFcdTlmYTJcdTlmYTNcdTlmYTRcdTlmYTVc'@; put 'dWY5MmNcdWY5NzlcdWY5OTVcdWY5ZTdcdWY5ZjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNTNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI1M11bbV0uY2hhckNv'@; put 'ZGVBdCgwKSYmKGFlW3hbMjUzXVttXV09NjQ3NjgrbSxGWzY0NzY4K21dPXhbMjUzXVttXSk7Zm9yKHhbMjU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmYTBjXHVmYTBkXHVmYTBlXHVmYTBmXHVmYTExXHVmYTEzXHVmYTE0XHVm'@; put 'YTE4XHVmYTFmXHVmYTIwXHVmYTIxXHVmYTIzXHVmYTI0XHVmYTI3XHVmYTI4XHVmYTI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjU0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsy'@; put 'NTRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI1NF1bbV1dPTY1MDI0K20sRls2NTAyNCttXT14WzI1NF1bbV0pO3JldHVybntlbmM6YWUsZGVjOkZ9fSgpLEllWzk0OV09ZnVuY3Rpb24oKXt2YXIgbSxGPVtdLGFlPXt9LHg9W107Zm9yKHhbMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVc'@; put 'eDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZn'@; put 'aGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMF0ubGVuZ3Ro'@; put 'OysrbSk2NTUzMyE9PXhbMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMF1bbV1dPTArbSxGWzArbV09eFswXVttXSk7Zm9yKHhbMTI5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhYzAyXHVhYzAzXHVhYzA1XHVhYzA2'@; put 'XHVhYzBiXHVhYzBjXHVhYzBkXHVhYzBlXHVhYzBmXHVhYzE4XHVhYzFlXHVhYzFmXHVhYzIxXHVhYzIyXHVhYzIzXHVhYzI1XHVhYzI2XHVhYzI3XHVhYzI4XHVhYzI5XHVhYzJhXHVhYzJiXHVhYzJlXHVhYzMyXHVhYzMzXHVhYzM0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVhYzM1XHVhYzM2XHVhYzM3XHVhYzNhXHVhYzNiXHVhYzNkXHVhYzNlXHVhYzNmXHVhYzQxXHVhYzQyXHVhYzQzXHVhYzQ0XHVhYzQ1XHVhYzQ2XHVhYzQ3XHVhYzQ4XHVhYzQ5XHVhYzRhXHVhYzRjXHVhYzRlXHVhYzRmXHVhYzUwXHVhYzUxXHVhYzUyXHVhYzUzXHVhYzU1XHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhYzU2XHVhYzU3XHVhYzU5XHVhYzVhXHVhYzViXHVhYzVkXHVhYzVlXHVhYzVmXHVhYzYwXHVhYzYxXHVhYzYyXHVhYzYzXHVhYzY0XHVhYzY1XHVhYzY2XHVhYzY3XHVhYzY4XHVhYzY5XHVhYzZhXHVhYzZiXHVhYzZjXHVhYzZkXHVh'@; put 'YzZlXHVhYzZmXHVhYzcyXHVhYzczXHVhYzc1XHVhYzc2XHVhYzc5XHVhYzdiXHVhYzdjXHVhYzdkXHVhYzdlXHVhYzdmXHVhYzgyXHVhYzg3XHVhYzg4XHVhYzhkXHVhYzhlXHVhYzhmXHVhYzkxXHVhYzkyXHVhYzkzXHVhYzk1XHVhYzk2XHVhYzk3XHVhYzk4XHVhYzk5XHVhYzlhXHVhYzli'@; put 'XHVhYzllXHVhY2EyXHVhY2EzXHVhY2E0XHVhY2E1XHVhY2E2XHVhY2E3XHVhY2FiXHVhY2FkXHVhY2FlXHVhY2IxXHVhY2IyXHVhY2IzXHVhY2I0XHVhY2I1XHVhY2I2XHVhY2I3XHVhY2JhXHVhY2JlXHVhY2JmXHVhY2MwXHVhY2MyXHVhY2MzXHVhY2M1XHVhY2M2XHVhY2M3XHVhY2M5XHVh'@; put 'Y2NhXHVhY2NiXHVhY2NkXHVhY2NlXHVhY2NmXHVhY2QwXHVhY2QxXHVhY2QyXHVhY2QzXHVhY2Q0XHVhY2Q2XHVhY2Q4XHVhY2Q5XHVhY2RhXHVhY2RiXHVhY2RjXHVhY2RkXHVhY2RlXHVhY2RmXHVhY2UyXHVhY2UzXHVhY2U1XHVhY2U2XHVhY2U5XHVhY2ViXHVhY2VkXHVhY2VlXHVhY2Yy'@; put 'XHVhY2Y0XHVhY2Y3XHVhY2Y4XHVhY2Y5XHVhY2ZhXHVhY2ZiXHVhY2ZlXHVhY2ZmXHVhZDAxXHVhZDAyXHVhZDAzXHVhZDA1XHVhZDA3XHVhZDA4XHVhZDA5XHVhZDBhXHVhZDBiXHVhZDBlXHVhZDEwXHVhZDEyXHVhZDEzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTI5XS5sZW5ndGg7'@; put 'KyttKTY1NTMzIT09eFsxMjldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEyOV1bbV1dPTMzMDI0K20sRlszMzAyNCttXT14WzEyOV1bbV0pO2Zvcih4WzEzMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQxNFx1YWQx'@; put 'NVx1YWQxNlx1YWQxN1x1YWQxOVx1YWQxYVx1YWQxYlx1YWQxZFx1YWQxZVx1YWQxZlx1YWQyMVx1YWQyMlx1YWQyM1x1YWQyNFx1YWQyNVx1YWQyNlx1YWQyN1x1YWQyOFx1YWQyYVx1YWQyYlx1YWQyZVx1YWQyZlx1YWQzMFx1YWQzMVx1YWQzMlx1YWQzM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQzNlx1YWQzN1x1YWQzOVx1YWQzYVx1YWQzYlx1YWQzZFx1YWQzZVx1YWQzZlx1YWQ0MFx1YWQ0MVx1YWQ0Mlx1YWQ0M1x1YWQ0Nlx1YWQ0OFx1YWQ0YVx1YWQ0Ylx1YWQ0Y1x1YWQ0ZFx1YWQ0ZVx1YWQ0Zlx1YWQ1MVx1YWQ1Mlx1YWQ1M1x1YWQ1NVx1YWQ1'@; put 'Nlx1YWQ1N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQ1OVx1YWQ1YVx1YWQ1Ylx1YWQ1Y1x1YWQ1ZFx1YWQ1ZVx1YWQ1Zlx1YWQ2MFx1YWQ2Mlx1YWQ2NFx1YWQ2NVx1YWQ2Nlx1YWQ2N1x1YWQ2OFx1YWQ2OVx1YWQ2YVx1YWQ2Ylx1YWQ2ZVx1YWQ2Zlx1YWQ3MVx1'@; put 'YWQ3Mlx1YWQ3N1x1YWQ3OFx1YWQ3OVx1YWQ3YVx1YWQ3ZVx1YWQ4MFx1YWQ4M1x1YWQ4NFx1YWQ4NVx1YWQ4Nlx1YWQ4N1x1YWQ4YVx1YWQ4Ylx1YWQ4ZFx1YWQ4ZVx1YWQ4Zlx1YWQ5MVx1YWQ5Mlx1YWQ5M1x1YWQ5NFx1YWQ5NVx1YWQ5Nlx1YWQ5N1x1YWQ5OFx1YWQ5OVx1YWQ5YVx1YWQ5'@; put 'Ylx1YWQ5ZVx1YWQ5Zlx1YWRhMFx1YWRhMVx1YWRhMlx1YWRhM1x1YWRhNVx1YWRhNlx1YWRhN1x1YWRhOFx1YWRhOVx1YWRhYVx1YWRhYlx1YWRhY1x1YWRhZFx1YWRhZVx1YWRhZlx1YWRiMFx1YWRiMVx1YWRiMlx1YWRiM1x1YWRiNFx1YWRiNVx1YWRiNlx1YWRiOFx1YWRiOVx1YWRiYVx1'@; put 'YWRiYlx1YWRiY1x1YWRiZFx1YWRiZVx1YWRiZlx1YWRjMlx1YWRjM1x1YWRjNVx1YWRjNlx1YWRjN1x1YWRjOVx1YWRjYVx1YWRjYlx1YWRjY1x1YWRjZFx1YWRjZVx1YWRjZlx1YWRkMlx1YWRkNFx1YWRkNVx1YWRkNlx1YWRkN1x1YWRkOFx1YWRkOVx1YWRkYVx1YWRkYlx1YWRkZFx1YWRk'@; put 'ZVx1YWRkZlx1YWRlMVx1YWRlMlx1YWRlM1x1YWRlNVx1YWRlNlx1YWRlN1x1YWRlOFx1YWRlOVx1YWRlYVx1YWRlYlx1YWRlY1x1YWRlZFx1YWRlZVx1YWRlZlx1YWRmMFx1YWRmMVx1YWRmMlx1YWRmM1x1YWRmNFx1YWRmNVx1YWRmNlx1YWRmN1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14'@; put 'WzEzMF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTMwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMzBdW21dXT0zMzI4MCttLEZbMzMyODArbV09eFsxMzBdW21dKTtmb3IoeFsxMzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWFkZmFcdWFkZmJcdWFkZmRcdWFkZmVcdWFlMDJcdWFlMDNcdWFlMDRcdWFlMDVcdWFlMDZcdWFlMDdcdWFlMGFcdWFlMGNcdWFlMGVcdWFlMGZcdWFlMTBcdWFlMTFcdWFlMTJcdWFlMTNcdWFlMTVcdWFlMTZcdWFlMTdcdWFlMThcdWFlMTlcdWFlMWFcdWFlMWJcdWFlMWNcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFlMWRcdWFlMWVcdWFlMWZcdWFlMjBcdWFlMjFcdWFlMjJcdWFlMjNcdWFlMjRcdWFlMjVcdWFlMjZcdWFlMjdcdWFlMjhcdWFlMjlcdWFlMmFcdWFlMmJcdWFlMmNcdWFlMmRcdWFlMmVcdWFlMmZcdWFlMzJcdWFlMzNcdWFlMzVcdWFl'@; put 'MzZcdWFlMzlcdWFlM2JcdWFlM2NcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFlM2RcdWFlM2VcdWFlM2ZcdWFlNDJcdWFlNDRcdWFlNDdcdWFlNDhcdWFlNDlcdWFlNGJcdWFlNGZcdWFlNTFcdWFlNTJcdWFlNTNcdWFlNTVcdWFlNTdcdWFlNThcdWFlNTlcdWFlNWFc'@; put 'dWFlNWJcdWFlNWVcdWFlNjJcdWFlNjNcdWFlNjRcdWFlNjZcdWFlNjdcdWFlNmFcdWFlNmJcdWFlNmRcdWFlNmVcdWFlNmZcdWFlNzFcdWFlNzJcdWFlNzNcdWFlNzRcdWFlNzVcdWFlNzZcdWFlNzdcdWFlN2FcdWFlN2VcdWFlN2ZcdWFlODBcdWFlODFcdWFlODJcdWFlODNcdWFlODZcdWFl'@; put 'ODdcdWFlODhcdWFlODlcdWFlOGFcdWFlOGJcdWFlOGRcdWFlOGVcdWFlOGZcdWFlOTBcdWFlOTFcdWFlOTJcdWFlOTNcdWFlOTRcdWFlOTVcdWFlOTZcdWFlOTdcdWFlOThcdWFlOTlcdWFlOWFcdWFlOWJcdWFlOWNcdWFlOWRcdWFlOWVcdWFlOWZcdWFlYTBcdWFlYTFcdWFlYTJcdWFlYTNc'@; put 'dWFlYTRcdWFlYTVcdWFlYTZcdWFlYTdcdWFlYThcdWFlYTlcdWFlYWFcdWFlYWJcdWFlYWNcdWFlYWRcdWFlYWVcdWFlYWZcdWFlYjBcdWFlYjFcdWFlYjJcdWFlYjNcdWFlYjRcdWFlYjVcdWFlYjZcdWFlYjdcdWFlYjhcdWFlYjlcdWFlYmFcdWFlYmJcdWFlYmZcdWFlYzFcdWFlYzJcdWFl'@; put 'YzNcdWFlYzVcdWFlYzZcdWFlYzdcdWFlYzhcdWFlYzlcdWFlY2FcdWFlY2JcdWFlY2VcdWFlZDJcdWFlZDNcdWFlZDRcdWFlZDVcdWFlZDZcdWFlZDdcdWFlZGFcdWFlZGJcdWFlZGRcdWFlZGVcdWFlZGZcdWFlZTBcdWFlZTFcdWFlZTJcdWFlZTNcdWFlZTRcdWFlZTVcdWZmZmQiLnNwbGl0'@; put 'KCIiKSxtPTA7bSE9eFsxMzFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzMV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTMxXVttXV09MzM1MzYrbSxGWzMzNTM2K21dPXhbMTMxXVttXSk7Zm9yKHhbMTMyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVhZWU2XHVhZWU3XHVhZWU5XHVhZWVhXHVhZWVjXHVhZWVlXHVhZWVmXHVhZWYwXHVhZWYxXHVhZWYyXHVhZWYzXHVhZWY1XHVhZWY2XHVhZWY3XHVhZWY5XHVhZWZhXHVhZWZiXHVhZWZkXHVhZWZlXHVhZWZmXHVhZjAwXHVhZjAxXHVhZjAyXHVhZjAzXHVhZjA0'@; put 'XHVhZjA1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZjA2XHVhZjA5XHVhZjBhXHVhZjBiXHVhZjBjXHVhZjBlXHVhZjBmXHVhZjExXHVhZjEyXHVhZjEzXHVhZjE0XHVhZjE1XHVhZjE2XHVhZjE3XHVhZjE4XHVhZjE5XHVhZjFhXHVhZjFiXHVhZjFjXHVhZjFkXHVh'@; put 'ZjFlXHVhZjFmXHVhZjIwXHVhZjIxXHVhZjIyXHVhZjIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZjI0XHVhZjI1XHVhZjI2XHVhZjI3XHVhZjI4XHVhZjI5XHVhZjJhXHVhZjJiXHVhZjJlXHVhZjJmXHVhZjMxXHVhZjMzXHVhZjM1XHVhZjM2XHVhZjM3XHVhZjM4'@; put 'XHVhZjM5XHVhZjNhXHVhZjNiXHVhZjNlXHVhZjQwXHVhZjQ0XHVhZjQ1XHVhZjQ2XHVhZjQ3XHVhZjRhXHVhZjRiXHVhZjRjXHVhZjRkXHVhZjRlXHVhZjRmXHVhZjUxXHVhZjUyXHVhZjUzXHVhZjU0XHVhZjU1XHVhZjU2XHVhZjU3XHVhZjU4XHVhZjU5XHVhZjVhXHVhZjViXHVhZjVlXHVh'@; put 'ZjVmXHVhZjYwXHVhZjYxXHVhZjYyXHVhZjYzXHVhZjY2XHVhZjY3XHVhZjY4XHVhZjY5XHVhZjZhXHVhZjZiXHVhZjZjXHVhZjZkXHVhZjZlXHVhZjZmXHVhZjcwXHVhZjcxXHVhZjcyXHVhZjczXHVhZjc0XHVhZjc1XHVhZjc2XHVhZjc3XHVhZjc4XHVhZjdhXHVhZjdiXHVhZjdjXHVhZjdk'@; put 'XHVhZjdlXHVhZjdmXHVhZjgxXHVhZjgyXHVhZjgzXHVhZjg1XHVhZjg2XHVhZjg3XHVhZjg5XHVhZjhhXHVhZjhiXHVhZjhjXHVhZjhkXHVhZjhlXHVhZjhmXHVhZjkyXHVhZjkzXHVhZjk0XHVhZjk2XHVhZjk3XHVhZjk4XHVhZjk5XHVhZjlhXHVhZjliXHVhZjlkXHVhZjllXHVhZjlmXHVh'@; put 'ZmEwXHVhZmExXHVhZmEyXHVhZmEzXHVhZmE0XHVhZmE1XHVhZmE2XHVhZmE3XHVhZmE4XHVhZmE5XHVhZmFhXHVhZmFiXHVhZmFjXHVhZmFkXHVhZmFlXHVhZmFmXHVhZmIwXHVhZmIxXHVhZmIyXHVhZmIzXHVhZmI0XHVhZmI1XHVhZmI2XHVhZmI3XHVhZmJhXHVhZmJiXHVhZmJkXHVhZmJl'@; put 'XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTMyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxMzJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzMl1bbV1dPTMzNzkyK20sRlszMzc5MittXT14WzEzMl1bbV0pO2Zvcih4WzEzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZiZlx1YWZjMVx1YWZjMlx1YWZjM1x1YWZjNFx1YWZjNVx1YWZjNlx1YWZjYVx1YWZjY1x1YWZjZlx1YWZkMFx1YWZkMVx1YWZkMlx1YWZkM1x1YWZkNVx1YWZkNlx1YWZkN1x1YWZkOFx1YWZkOVx1YWZkYVx1YWZkYlx1YWZkZFx1YWZk'@; put 'ZVx1YWZkZlx1YWZlMFx1YWZlMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZlMlx1YWZlM1x1YWZlNFx1YWZlNVx1YWZlNlx1YWZlN1x1YWZlYVx1YWZlYlx1YWZlY1x1YWZlZFx1YWZlZVx1YWZlZlx1YWZmMlx1YWZmM1x1YWZmNVx1YWZmNlx1YWZmN1x1YWZmOVx1'@; put 'YWZmYVx1YWZmYlx1YWZmY1x1YWZmZFx1YWZmZVx1YWZmZlx1YjAwMlx1YjAwM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjAwNVx1YjAwNlx1YjAwN1x1YjAwOFx1YjAwOVx1YjAwYVx1YjAwYlx1YjAwZFx1YjAwZVx1YjAwZlx1YjAxMVx1YjAxMlx1YjAxM1x1YjAx'@; put 'NVx1YjAxNlx1YjAxN1x1YjAxOFx1YjAxOVx1YjAxYVx1YjAxYlx1YjAxZVx1YjAxZlx1YjAyMFx1YjAyMVx1YjAyMlx1YjAyM1x1YjAyNFx1YjAyNVx1YjAyNlx1YjAyN1x1YjAyOVx1YjAyYVx1YjAyYlx1YjAyY1x1YjAyZFx1YjAyZVx1YjAyZlx1YjAzMFx1YjAzMVx1YjAzMlx1YjAzM1x1'@; put 'YjAzNFx1YjAzNVx1YjAzNlx1YjAzN1x1YjAzOFx1YjAzOVx1YjAzYVx1YjAzYlx1YjAzY1x1YjAzZFx1YjAzZVx1YjAzZlx1YjA0MFx1YjA0MVx1YjA0Mlx1YjA0M1x1YjA0Nlx1YjA0N1x1YjA0OVx1YjA0Ylx1YjA0ZFx1YjA0Zlx1YjA1MFx1YjA1MVx1YjA1Mlx1YjA1Nlx1YjA1OFx1YjA1'@; put 'YVx1YjA1Ylx1YjA1Y1x1YjA1ZVx1YjA1Zlx1YjA2MFx1YjA2MVx1YjA2Mlx1YjA2M1x1YjA2NFx1YjA2NVx1YjA2Nlx1YjA2N1x1YjA2OFx1YjA2OVx1YjA2YVx1YjA2Ylx1YjA2Y1x1YjA2ZFx1YjA2ZVx1YjA2Zlx1YjA3MFx1YjA3MVx1YjA3Mlx1YjA3M1x1YjA3NFx1YjA3NVx1YjA3Nlx1'@; put 'YjA3N1x1YjA3OFx1YjA3OVx1YjA3YVx1YjA3Ylx1YjA3ZVx1YjA3Zlx1YjA4MVx1YjA4Mlx1YjA4M1x1YjA4NVx1YjA4Nlx1YjA4N1x1YjA4OFx1YjA4OVx1YjA4YVx1YjA4Ylx1YjA4ZVx1YjA5MFx1YjA5Mlx1YjA5M1x1YjA5NFx1YjA5NVx1YjA5Nlx1YjA5N1x1YjA5Ylx1YjA5ZFx1YjA5'@; put 'ZVx1YjBhM1x1YjBhNFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzM10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTMzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMzNdW21dXT0zNDA0OCttLEZbMzQwNDgrbV09eFsxMzNdW21dKTtmb3IoeFsxMzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwYTVcdWIwYTZcdWIwYTdcdWIwYWFcdWIwYjBcdWIwYjJcdWIwYjZcdWIwYjdcdWIwYjlcdWIwYmFcdWIwYmJcdWIwYmRcdWIwYmVcdWIwYmZcdWIwYzBcdWIwYzFcdWIwYzJcdWIwYzNcdWIwYzZcdWIwY2FcdWIw'@; put 'Y2JcdWIwY2NcdWIwY2RcdWIwY2VcdWIwY2ZcdWIwZDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwZDNcdWIwZDVcdWIwZDZcdWIwZDdcdWIwZDlcdWIwZGFcdWIwZGJcdWIwZGNcdWIwZGRcdWIwZGVcdWIwZGZcdWIwZTFcdWIwZTJcdWIwZTNcdWIwZTRcdWIwZTZc'@; put 'dWIwZTdcdWIwZThcdWIwZTlcdWIwZWFcdWIwZWJcdWIwZWNcdWIwZWRcdWIwZWVcdWIwZWZcdWIwZjBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwZjFcdWIwZjJcdWIwZjNcdWIwZjRcdWIwZjVcdWIwZjZcdWIwZjdcdWIwZjhcdWIwZjlcdWIwZmFcdWIwZmJcdWIw'@; put 'ZmNcdWIwZmRcdWIwZmVcdWIwZmZcdWIxMDBcdWIxMDFcdWIxMDJcdWIxMDNcdWIxMDRcdWIxMDVcdWIxMDZcdWIxMDdcdWIxMGFcdWIxMGRcdWIxMGVcdWIxMGZcdWIxMTFcdWIxMTRcdWIxMTVcdWIxMTZcdWIxMTdcdWIxMWFcdWIxMWVcdWIxMWZcdWIxMjBcdWIxMjFcdWIxMjJcdWIxMjZc'@; put 'dWIxMjdcdWIxMjlcdWIxMmFcdWIxMmJcdWIxMmRcdWIxMmVcdWIxMmZcdWIxMzBcdWIxMzFcdWIxMzJcdWIxMzNcdWIxMzZcdWIxM2FcdWIxM2JcdWIxM2NcdWIxM2RcdWIxM2VcdWIxM2ZcdWIxNDJcdWIxNDNcdWIxNDVcdWIxNDZcdWIxNDdcdWIxNDlcdWIxNGFcdWIxNGJcdWIxNGNcdWIx'@; put 'NGRcdWIxNGVcdWIxNGZcdWIxNTJcdWIxNTNcdWIxNTZcdWIxNTdcdWIxNTlcdWIxNWFcdWIxNWJcdWIxNWRcdWIxNWVcdWIxNWZcdWIxNjFcdWIxNjJcdWIxNjNcdWIxNjRcdWIxNjVcdWIxNjZcdWIxNjdcdWIxNjhcdWIxNjlcdWIxNmFcdWIxNmJcdWIxNmNcdWIxNmRcdWIxNmVcdWIxNmZc'@; put 'dWIxNzBcdWIxNzFcdWIxNzJcdWIxNzNcdWIxNzRcdWIxNzVcdWIxNzZcdWIxNzdcdWIxN2FcdWIxN2JcdWIxN2RcdWIxN2VcdWIxN2ZcdWIxODFcdWIxODNcdWIxODRcdWIxODVcdWIxODZcdWIxODdcdWIxOGFcdWIxOGNcdWIxOGVcdWIxOGZcdWIxOTBcdWIxOTFcdWIxOTVcdWIxOTZcdWIx'@; put 'OTdcdWIxOTlcdWIxOWFcdWIxOWJcdWIxOWRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxMzRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzNF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTM0XVttXV09MzQzMDQrbSxGWzM0MzA0K21dPXhbMTM0XVttXSk7Zm9yKHhbMTM1XT0iXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMTllXHViMTlmXHViMWEwXHViMWExXHViMWEyXHViMWEzXHViMWE0XHViMWE1XHViMWE2XHViMWE3XHViMWE5XHViMWFhXHViMWFiXHViMWFjXHViMWFkXHViMWFlXHViMWFmXHViMWIwXHVi'@; put 'MWIxXHViMWIyXHViMWIzXHViMWI0XHViMWI1XHViMWI2XHViMWI3XHViMWI4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMWI5XHViMWJhXHViMWJiXHViMWJjXHViMWJkXHViMWJlXHViMWJmXHViMWMwXHViMWMxXHViMWMyXHViMWMzXHViMWM0XHViMWM1XHViMWM2'@; put 'XHViMWM3XHViMWM4XHViMWM5XHViMWNhXHViMWNiXHViMWNkXHViMWNlXHViMWNmXHViMWQxXHViMWQyXHViMWQzXHViMWQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMWQ2XHViMWQ3XHViMWQ4XHViMWQ5XHViMWRhXHViMWRiXHViMWRlXHViMWUwXHViMWUxXHVi'@; put 'MWUyXHViMWUzXHViMWU0XHViMWU1XHViMWU2XHViMWU3XHViMWVhXHViMWViXHViMWVkXHViMWVlXHViMWVmXHViMWYxXHViMWYyXHViMWYzXHViMWY0XHViMWY1XHViMWY2XHViMWY3XHViMWY4XHViMWZhXHViMWZjXHViMWZlXHViMWZmXHViMjAwXHViMjAxXHViMjAyXHViMjAzXHViMjA2'@; put 'XHViMjA3XHViMjA5XHViMjBhXHViMjBkXHViMjBlXHViMjBmXHViMjEwXHViMjExXHViMjEyXHViMjEzXHViMjE2XHViMjE4XHViMjFhXHViMjFiXHViMjFjXHViMjFkXHViMjFlXHViMjFmXHViMjIxXHViMjIyXHViMjIzXHViMjI0XHViMjI1XHViMjI2XHViMjI3XHViMjI4XHViMjI5XHVi'@; put 'MjJhXHViMjJiXHViMjJjXHViMjJkXHViMjJlXHViMjJmXHViMjMwXHViMjMxXHViMjMyXHViMjMzXHViMjM1XHViMjM2XHViMjM3XHViMjM4XHViMjM5XHViMjNhXHViMjNiXHViMjNkXHViMjNlXHViMjNmXHViMjQwXHViMjQxXHViMjQyXHViMjQzXHViMjQ0XHViMjQ1XHViMjQ2XHViMjQ3'@; put 'XHViMjQ4XHViMjQ5XHViMjRhXHViMjRiXHViMjRjXHViMjRkXHViMjRlXHViMjRmXHViMjUwXHViMjUxXHViMjUyXHViMjUzXHViMjU0XHViMjU1XHViMjU2XHViMjU3XHViMjU5XHViMjVhXHViMjViXHViMjVkXHViMjVlXHViMjVmXHViMjYxXHViMjYyXHViMjYzXHViMjY0XHViMjY1XHVi'@; put 'MjY2XHViMjY3XHViMjZhXHViMjZiXHViMjZjXHViMjZkXHViMjZlXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTM1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxMzVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzNV1bbV1dPTM0NTYwK20sRlszNDU2MCttXT14WzEzNV1bbV0pO2Zvcih4'@; put 'WzEzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI2Zlx1YjI3MFx1YjI3MVx1YjI3Mlx1YjI3M1x1YjI3Nlx1YjI3N1x1YjI3OFx1YjI3OVx1YjI3YVx1YjI3Ylx1YjI3ZFx1YjI3ZVx1YjI3Zlx1YjI4MFx1YjI4MVx1'@; put 'YjI4Mlx1YjI4M1x1YjI4Nlx1YjI4N1x1YjI4OFx1YjI4YVx1YjI4Ylx1YjI4Y1x1YjI4ZFx1YjI4ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI4Zlx1YjI5Mlx1YjI5M1x1YjI5NVx1YjI5Nlx1YjI5N1x1YjI5Ylx1YjI5Y1x1YjI5ZFx1YjI5ZVx1YjI5Zlx1YjJh'@; put 'Mlx1YjJhNFx1YjJhN1x1YjJhOFx1YjJhOVx1YjJhYlx1YjJhZFx1YjJhZVx1YjJhZlx1YjJiMVx1YjJiMlx1YjJiM1x1YjJiNVx1YjJiNlx1YjJiN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjJiOFx1YjJiOVx1YjJiYVx1YjJiYlx1YjJiY1x1YjJiZFx1YjJiZVx1'@; put 'YjJiZlx1YjJjMFx1YjJjMVx1YjJjMlx1YjJjM1x1YjJjNFx1YjJjNVx1YjJjNlx1YjJjN1x1YjJjYVx1YjJjYlx1YjJjZFx1YjJjZVx1YjJjZlx1YjJkMVx1YjJkM1x1YjJkNFx1YjJkNVx1YjJkNlx1YjJkN1x1YjJkYVx1YjJkY1x1YjJkZVx1YjJkZlx1YjJlMFx1YjJlMVx1YjJlM1x1YjJl'@; put 'N1x1YjJlOVx1YjJlYVx1YjJmMFx1YjJmMVx1YjJmMlx1YjJmNlx1YjJmY1x1YjJmZFx1YjJmZVx1YjMwMlx1YjMwM1x1YjMwNVx1YjMwNlx1YjMwN1x1YjMwOVx1YjMwYVx1YjMwYlx1YjMwY1x1YjMwZFx1YjMwZVx1YjMwZlx1YjMxMlx1YjMxNlx1YjMxN1x1YjMxOFx1YjMxOVx1YjMxYVx1'@; put 'YjMxYlx1YjMxZFx1YjMxZVx1YjMxZlx1YjMyMFx1YjMyMVx1YjMyMlx1YjMyM1x1YjMyNFx1YjMyNVx1YjMyNlx1YjMyN1x1YjMyOFx1YjMyOVx1YjMyYVx1YjMyYlx1YjMyY1x1YjMyZFx1YjMyZVx1YjMyZlx1YjMzMFx1YjMzMVx1YjMzMlx1YjMzM1x1YjMzNFx1YjMzNVx1YjMzNlx1YjMz'@; put 'N1x1YjMzOFx1YjMzOVx1YjMzYVx1YjMzYlx1YjMzY1x1YjMzZFx1YjMzZVx1YjMzZlx1YjM0MFx1YjM0MVx1YjM0Mlx1YjM0M1x1YjM0NFx1YjM0NVx1YjM0Nlx1YjM0N1x1YjM0OFx1YjM0OVx1YjM0YVx1YjM0Ylx1YjM0Y1x1YjM0ZFx1YjM0ZVx1YjM0Zlx1YjM1MFx1YjM1MVx1YjM1Mlx1'@; put 'YjM1M1x1YjM1N1x1YjM1OVx1YjM1YVx1YjM1ZFx1YjM2MFx1YjM2MVx1YjM2Mlx1YjM2M1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzNl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTM2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxMzZdW21dXT0zNDgxNittLEZbMzQ4MTYrbV09eFsx'@; put 'MzZdW21dKTtmb3IoeFsxMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzNjZcdWIzNjhcdWIzNmFcdWIzNmNcdWIzNmRcdWIzNmZcdWIzNzJcdWIzNzNcdWIzNzVcdWIzNzZcdWIzNzdcdWIzNzlcdWIzN2FcdWIzN2Jc'@; put 'dWIzN2NcdWIzN2RcdWIzN2VcdWIzN2ZcdWIzODJcdWIzODZcdWIzODdcdWIzODhcdWIzODlcdWIzOGFcdWIzOGJcdWIzOGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzOGVcdWIzOGZcdWIzOTFcdWIzOTJcdWIzOTNcdWIzOTVcdWIzOTZcdWIzOTdcdWIzOThcdWIz'@; put 'OTlcdWIzOWFcdWIzOWJcdWIzOWNcdWIzOWRcdWIzOWVcdWIzOWZcdWIzYTJcdWIzYTNcdWIzYTRcdWIzYTVcdWIzYTZcdWIzYTdcdWIzYTlcdWIzYWFcdWIzYWJcdWIzYWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzYWVcdWIzYWZcdWIzYjBcdWIzYjFcdWIzYjJc'@; put 'dWIzYjNcdWIzYjRcdWIzYjVcdWIzYjZcdWIzYjdcdWIzYjhcdWIzYjlcdWIzYmFcdWIzYmJcdWIzYmNcdWIzYmRcdWIzYmVcdWIzYmZcdWIzYzBcdWIzYzFcdWIzYzJcdWIzYzNcdWIzYzZcdWIzYzdcdWIzYzlcdWIzY2FcdWIzY2RcdWIzY2ZcdWIzZDFcdWIzZDJcdWIzZDNcdWIzZDZcdWIz'@; put 'ZDhcdWIzZGFcdWIzZGNcdWIzZGVcdWIzZGZcdWIzZTFcdWIzZTJcdWIzZTNcdWIzZTVcdWIzZTZcdWIzZTdcdWIzZTlcdWIzZWFcdWIzZWJcdWIzZWNcdWIzZWRcdWIzZWVcdWIzZWZcdWIzZjBcdWIzZjFcdWIzZjJcdWIzZjNcdWIzZjRcdWIzZjVcdWIzZjZcdWIzZjdcdWIzZjhcdWIzZjlc'@; put 'dWIzZmFcdWIzZmJcdWIzZmRcdWIzZmVcdWIzZmZcdWI0MDBcdWI0MDFcdWI0MDJcdWI0MDNcdWI0MDRcdWI0MDVcdWI0MDZcdWI0MDdcdWI0MDhcdWI0MDlcdWI0MGFcdWI0MGJcdWI0MGNcdWI0MGRcdWI0MGVcdWI0MGZcdWI0MTFcdWI0MTJcdWI0MTNcdWI0MTRcdWI0MTVcdWI0MTZcdWI0'@; put 'MTdcdWI0MTlcdWI0MWFcdWI0MWJcdWI0MWRcdWI0MWVcdWI0MWZcdWI0MjFcdWI0MjJcdWI0MjNcdWI0MjRcdWI0MjVcdWI0MjZcdWI0MjdcdWI0MmFcdWI0MmNcdWI0MmRcdWI0MmVcdWI0MmZcdWI0MzBcdWI0MzFcdWI0MzJcdWI0MzNcdWI0MzVcdWI0MzZcdWI0MzdcdWI0MzhcdWI0Mzlc'@; put 'dWI0M2FcdWI0M2JcdWI0M2NcdWI0M2RcdWI0M2VcdWI0M2ZcdWI0NDBcdWI0NDFcdWI0NDJcdWI0NDNcdWI0NDRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxMzddLmxlbmd0aDsrK20pNjU1MzMhPT14WzEzN11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTM3XVttXV09MzUwNzIrbSxG'@; put 'WzM1MDcyK21dPXhbMTM3XVttXSk7Zm9yKHhbMTM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNDQ1XHViNDQ2XHViNDQ3XHViNDQ4XHViNDQ5XHViNDRhXHViNDRiXHViNDRjXHViNDRkXHViNDRlXHViNDRmXHViNDUy'@; put 'XHViNDUzXHViNDU1XHViNDU2XHViNDU3XHViNDU5XHViNDVhXHViNDViXHViNDVjXHViNDVkXHViNDVlXHViNDVmXHViNDYyXHViNDY0XHViNDY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNDY3XHViNDY4XHViNDY5XHViNDZhXHViNDZiXHViNDZkXHViNDZlXHVi'@; put 'NDZmXHViNDcwXHViNDcxXHViNDcyXHViNDczXHViNDc0XHViNDc1XHViNDc2XHViNDc3XHViNDc4XHViNDc5XHViNDdhXHViNDdiXHViNDdjXHViNDdkXHViNDdlXHViNDdmXHViNDgxXHViNDgyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNDgzXHViNDg0XHViNDg1'@; put 'XHViNDg2XHViNDg3XHViNDg5XHViNDhhXHViNDhiXHViNDhjXHViNDhkXHViNDhlXHViNDhmXHViNDkwXHViNDkxXHViNDkyXHViNDkzXHViNDk0XHViNDk1XHViNDk2XHViNDk3XHViNDk4XHViNDk5XHViNDlhXHViNDliXHViNDljXHViNDllXHViNDlmXHViNGEwXHViNGExXHViNGEyXHVi'@; put 'NGEzXHViNGE1XHViNGE2XHViNGE3XHViNGE5XHViNGFhXHViNGFiXHViNGFkXHViNGFlXHViNGFmXHViNGIwXHViNGIxXHViNGIyXHViNGIzXHViNGI0XHViNGI2XHViNGI4XHViNGJhXHViNGJiXHViNGJjXHViNGJkXHViNGJlXHViNGJmXHViNGMxXHViNGMyXHViNGMzXHViNGM1XHViNGM2'@; put 'XHViNGM3XHViNGM5XHViNGNhXHViNGNiXHViNGNjXHViNGNkXHViNGNlXHViNGNmXHViNGQxXHViNGQyXHViNGQzXHViNGQ0XHViNGQ2XHViNGQ3XHViNGQ4XHViNGQ5XHViNGRhXHViNGRiXHViNGRlXHViNGRmXHViNGUxXHViNGUyXHViNGU1XHViNGU3XHViNGU4XHViNGU5XHViNGVhXHVi'@; put 'NGViXHViNGVlXHViNGYwXHViNGYyXHViNGYzXHViNGY0XHViNGY1XHViNGY2XHViNGY3XHViNGY5XHViNGZhXHViNGZiXHViNGZjXHViNGZkXHViNGZlXHViNGZmXHViNTAwXHViNTAxXHViNTAyXHViNTAzXHViNTA0XHViNTA1XHViNTA2XHViNTA3XHViNTA4XHViNTA5XHViNTBhXHViNTBi'@; put 'XHViNTBjXHViNTBkXHViNTBlXHViNTBmXHViNTEwXHViNTExXHViNTEyXHViNTEzXHViNTE2XHViNTE3XHViNTE5XHViNTFhXHViNTFkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTM4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxMzhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzEzOF1b'@; put 'bV1dPTM1MzI4K20sRlszNTMyOCttXT14WzEzOF1bbV0pO2Zvcih4WzEzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjUxZVx1YjUxZlx1YjUyMFx1YjUyMVx1YjUyMlx1YjUyM1x1YjUyNlx1YjUyYlx1YjUyY1x1YjUy'@; put 'ZFx1YjUyZVx1YjUyZlx1YjUzMlx1YjUzM1x1YjUzNVx1YjUzNlx1YjUzN1x1YjUzOVx1YjUzYVx1YjUzYlx1YjUzY1x1YjUzZFx1YjUzZVx1YjUzZlx1YjU0Mlx1YjU0Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjU0N1x1YjU0OFx1YjU0OVx1YjU0YVx1YjU0ZVx1'@; put 'YjU0Zlx1YjU1MVx1YjU1Mlx1YjU1M1x1YjU1NVx1YjU1Nlx1YjU1N1x1YjU1OFx1YjU1OVx1YjU1YVx1YjU1Ylx1YjU1ZVx1YjU2Mlx1YjU2M1x1YjU2NFx1YjU2NVx1YjU2Nlx1YjU2N1x1YjU2OFx1YjU2OVx1YjU2YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjU2'@; put 'Ylx1YjU2Y1x1YjU2ZFx1YjU2ZVx1YjU2Zlx1YjU3MFx1YjU3MVx1YjU3Mlx1YjU3M1x1YjU3NFx1YjU3NVx1YjU3Nlx1YjU3N1x1YjU3OFx1YjU3OVx1YjU3YVx1YjU3Ylx1YjU3Y1x1YjU3ZFx1YjU3ZVx1YjU3Zlx1YjU4MFx1YjU4MVx1YjU4Mlx1YjU4M1x1YjU4NFx1YjU4NVx1YjU4Nlx1'@; put 'YjU4N1x1YjU4OFx1YjU4OVx1YjU4YVx1YjU4Ylx1YjU4Y1x1YjU4ZFx1YjU4ZVx1YjU4Zlx1YjU5MFx1YjU5MVx1YjU5Mlx1YjU5M1x1YjU5NFx1YjU5NVx1YjU5Nlx1YjU5N1x1YjU5OFx1YjU5OVx1YjU5YVx1YjU5Ylx1YjU5Y1x1YjU5ZFx1YjU5ZVx1YjU5Zlx1YjVhMlx1YjVhM1x1YjVh'@; put 'NVx1YjVhNlx1YjVhN1x1YjVhOVx1YjVhY1x1YjVhZFx1YjVhZVx1YjVhZlx1YjViMlx1YjViNlx1YjViN1x1YjViOFx1YjViOVx1YjViYVx1YjViZVx1YjViZlx1YjVjMVx1YjVjMlx1YjVjM1x1YjVjNVx1YjVjNlx1YjVjN1x1YjVjOFx1YjVjOVx1YjVjYVx1YjVjYlx1YjVjZVx1YjVkMlx1'@; put 'YjVkM1x1YjVkNFx1YjVkNVx1YjVkNlx1YjVkN1x1YjVkOVx1YjVkYVx1YjVkYlx1YjVkY1x1YjVkZFx1YjVkZVx1YjVkZlx1YjVlMFx1YjVlMVx1YjVlMlx1YjVlM1x1YjVlNFx1YjVlNVx1YjVlNlx1YjVlN1x1YjVlOFx1YjVlOVx1YjVlYVx1YjVlYlx1YjVlZFx1YjVlZVx1YjVlZlx1YjVm'@; put 'MFx1YjVmMVx1YjVmMlx1YjVmM1x1YjVmNFx1YjVmNVx1YjVmNlx1YjVmN1x1YjVmOFx1YjVmOVx1YjVmYVx1YjVmYlx1YjVmY1x1YjVmZFx1YjVmZVx1YjVmZlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzEzOV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTM5XVttXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoYWVbeFsxMzldW21dXT0zNTU4NCttLEZbMzU1ODQrbV09eFsxMzldW21dKTtmb3IoeFsxNDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI2MDBcdWI2MDFcdWI2MDJcdWI2MDNcdWI2MDRcdWI2MDVcdWI2MDZcdWI2'@; put 'MDdcdWI2MDhcdWI2MDlcdWI2MGFcdWI2MGJcdWI2MGNcdWI2MGRcdWI2MGVcdWI2MGZcdWI2MTJcdWI2MTNcdWI2MTVcdWI2MTZcdWI2MTdcdWI2MTlcdWI2MWFcdWI2MWJcdWI2MWNcdWI2MWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI2MWVcdWI2MWZcdWI2MjBc'@; put 'dWI2MjFcdWI2MjJcdWI2MjNcdWI2MjRcdWI2MjZcdWI2MjdcdWI2MjhcdWI2MjlcdWI2MmFcdWI2MmJcdWI2MmRcdWI2MmVcdWI2MmZcdWI2MzBcdWI2MzFcdWI2MzJcdWI2MzNcdWI2MzVcdWI2MzZcdWI2MzdcdWI2MzhcdWI2MzlcdWI2M2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWI2M2JcdWI2M2NcdWI2M2RcdWI2M2VcdWI2M2ZcdWI2NDBcdWI2NDFcdWI2NDJcdWI2NDNcdWI2NDRcdWI2NDVcdWI2NDZcdWI2NDdcdWI2NDlcdWI2NGFcdWI2NGJcdWI2NGNcdWI2NGRcdWI2NGVcdWI2NGZcdWI2NTBcdWI2NTFcdWI2NTJcdWI2NTNcdWI2NTRcdWI2NTVc'@; put 'dWI2NTZcdWI2NTdcdWI2NThcdWI2NTlcdWI2NWFcdWI2NWJcdWI2NWNcdWI2NWRcdWI2NWVcdWI2NWZcdWI2NjBcdWI2NjFcdWI2NjJcdWI2NjNcdWI2NjVcdWI2NjZcdWI2NjdcdWI2NjlcdWI2NmFcdWI2NmJcdWI2NmNcdWI2NmRcdWI2NmVcdWI2NmZcdWI2NzBcdWI2NzFcdWI2NzJcdWI2'@; put 'NzNcdWI2NzRcdWI2NzVcdWI2NzZcdWI2NzdcdWI2NzhcdWI2NzlcdWI2N2FcdWI2N2JcdWI2N2NcdWI2N2RcdWI2N2VcdWI2N2ZcdWI2ODBcdWI2ODFcdWI2ODJcdWI2ODNcdWI2ODRcdWI2ODVcdWI2ODZcdWI2ODdcdWI2ODhcdWI2ODlcdWI2OGFcdWI2OGJcdWI2OGNcdWI2OGRcdWI2OGVc'@; put 'dWI2OGZcdWI2OTBcdWI2OTFcdWI2OTJcdWI2OTNcdWI2OTRcdWI2OTVcdWI2OTZcdWI2OTdcdWI2OThcdWI2OTlcdWI2OWFcdWI2OWJcdWI2OWVcdWI2OWZcdWI2YTFcdWI2YTJcdWI2YTNcdWI2YTVcdWI2YTZcdWI2YTdcdWI2YThcdWI2YTlcdWI2YWFcdWI2YWRcdWI2YWVcdWI2YWZcdWI2'@; put 'YjBcdWI2YjJcdWI2YjNcdWI2YjRcdWI2YjVcdWI2YjZcdWI2YjdcdWI2YjhcdWI2YjlcdWI2YmFcdWI2YmJcdWI2YmNcdWI2YmRcdWI2YmVcdWI2YmZcdWI2YzBcdWI2YzFcdWI2YzJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0MF1bbV0u'@; put 'Y2hhckNvZGVBdCgwKSYmKGFlW3hbMTQwXVttXV09MzU4NDArbSxGWzM1ODQwK21dPXhbMTQwXVttXSk7Zm9yKHhbMTQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNmMzXHViNmM0XHViNmM1XHViNmM2XHViNmM3XHVi'@; put 'NmM4XHViNmM5XHViNmNhXHViNmNiXHViNmNjXHViNmNkXHViNmNlXHViNmNmXHViNmQwXHViNmQxXHViNmQyXHViNmQzXHViNmQ1XHViNmQ2XHViNmQ3XHViNmQ4XHViNmQ5XHViNmRhXHViNmRiXHViNmRjXHViNmRkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNmRl'@; put 'XHViNmRmXHViNmUwXHViNmUxXHViNmUyXHViNmUzXHViNmU0XHViNmU1XHViNmU2XHViNmU3XHViNmU4XHViNmU5XHViNmVhXHViNmViXHViNmVjXHViNmVkXHViNmVlXHViNmVmXHViNmYxXHViNmYyXHViNmYzXHViNmY1XHViNmY2XHViNmY3XHViNmY5XHViNmZhXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNmZiXHViNmZjXHViNmZkXHViNmZlXHViNmZmXHViNzAyXHViNzAzXHViNzA0XHViNzA2XHViNzA3XHViNzA4XHViNzA5XHViNzBhXHViNzBiXHViNzBjXHViNzBkXHViNzBlXHViNzBmXHViNzEwXHViNzExXHViNzEyXHViNzEzXHViNzE0XHViNzE1'@; put 'XHViNzE2XHViNzE3XHViNzE4XHViNzE5XHViNzFhXHViNzFiXHViNzFjXHViNzFkXHViNzFlXHViNzFmXHViNzIwXHViNzIxXHViNzIyXHViNzIzXHViNzI0XHViNzI1XHViNzI2XHViNzI3XHViNzJhXHViNzJiXHViNzJkXHViNzJlXHViNzMxXHViNzMyXHViNzMzXHViNzM0XHViNzM1XHVi'@; put 'NzM2XHViNzM3XHViNzNhXHViNzNjXHViNzNkXHViNzNlXHViNzNmXHViNzQwXHViNzQxXHViNzQyXHViNzQzXHViNzQ1XHViNzQ2XHViNzQ3XHViNzQ5XHViNzRhXHViNzRiXHViNzRkXHViNzRlXHViNzRmXHViNzUwXHViNzUxXHViNzUyXHViNzUzXHViNzU2XHViNzU3XHViNzU4XHViNzU5'@; put 'XHViNzVhXHViNzViXHViNzVjXHViNzVkXHViNzVlXHViNzVmXHViNzYxXHViNzYyXHViNzYzXHViNzY1XHViNzY2XHViNzY3XHViNzY5XHViNzZhXHViNzZiXHViNzZjXHViNzZkXHViNzZlXHViNzZmXHViNzcyXHViNzc0XHViNzc2XHViNzc3XHViNzc4XHViNzc5XHViNzdhXHViNzdiXHVi'@; put 'NzdlXHViNzdmXHViNzgxXHViNzgyXHViNzgzXHViNzg1XHViNzg2XHViNzg3XHViNzg4XHViNzg5XHViNzhhXHViNzhiXHViNzhlXHViNzkzXHViNzk0XHViNzk1XHViNzlhXHViNzliXHViNzlkXHViNzllXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTQxXS5sZW5ndGg7KyttKTY1NTMz'@; put 'IT09eFsxNDFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0MV1bbV1dPTM2MDk2K20sRlszNjA5NittXT14WzE0MV1bbV0pO2Zvcih4WzE0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjc5Zlx1YjdhMVx1YjdhMlx1'@; put 'YjdhM1x1YjdhNFx1YjdhNVx1YjdhNlx1YjdhN1x1YjdhYVx1YjdhZVx1YjdhZlx1YjdiMFx1YjdiMVx1YjdiMlx1YjdiM1x1YjdiNlx1YjdiN1x1YjdiOVx1YjdiYVx1YjdiYlx1YjdiY1x1YjdiZFx1YjdiZVx1YjdiZlx1YjdjMFx1YjdjMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1YjdjMlx1YjdjM1x1YjdjNFx1YjdjNVx1YjdjNlx1YjdjOFx1YjdjYVx1YjdjYlx1YjdjY1x1YjdjZFx1YjdjZVx1YjdjZlx1YjdkMFx1YjdkMVx1YjdkMlx1YjdkM1x1YjdkNFx1YjdkNVx1YjdkNlx1YjdkN1x1YjdkOFx1YjdkOVx1YjdkYVx1YjdkYlx1YjdkY1x1YjdkZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjdkZVx1YjdkZlx1YjdlMFx1YjdlMVx1YjdlMlx1YjdlM1x1YjdlNFx1YjdlNVx1YjdlNlx1YjdlN1x1YjdlOFx1YjdlOVx1YjdlYVx1YjdlYlx1YjdlZVx1YjdlZlx1YjdmMVx1YjdmMlx1YjdmM1x1YjdmNVx1YjdmNlx1Yjdm'@; put 'N1x1YjdmOFx1YjdmOVx1YjdmYVx1YjdmYlx1YjdmZVx1YjgwMlx1YjgwM1x1YjgwNFx1YjgwNVx1YjgwNlx1YjgwYVx1YjgwYlx1YjgwZFx1YjgwZVx1YjgwZlx1YjgxMVx1YjgxMlx1YjgxM1x1YjgxNFx1YjgxNVx1YjgxNlx1YjgxN1x1YjgxYVx1YjgxY1x1YjgxZVx1YjgxZlx1YjgyMFx1'@; put 'YjgyMVx1YjgyMlx1YjgyM1x1YjgyNlx1YjgyN1x1YjgyOVx1YjgyYVx1YjgyYlx1YjgyZFx1YjgyZVx1YjgyZlx1YjgzMFx1YjgzMVx1YjgzMlx1YjgzM1x1YjgzNlx1YjgzYVx1YjgzYlx1YjgzY1x1YjgzZFx1YjgzZVx1YjgzZlx1Yjg0MVx1Yjg0Mlx1Yjg0M1x1Yjg0NVx1Yjg0Nlx1Yjg0'@; put 'N1x1Yjg0OFx1Yjg0OVx1Yjg0YVx1Yjg0Ylx1Yjg0Y1x1Yjg0ZFx1Yjg0ZVx1Yjg0Zlx1Yjg1MFx1Yjg1Mlx1Yjg1NFx1Yjg1NVx1Yjg1Nlx1Yjg1N1x1Yjg1OFx1Yjg1OVx1Yjg1YVx1Yjg1Ylx1Yjg1ZVx1Yjg1Zlx1Yjg2MVx1Yjg2Mlx1Yjg2M1x1Yjg2NVx1Yjg2Nlx1Yjg2N1x1Yjg2OFx1'@; put 'Yjg2OVx1Yjg2YVx1Yjg2Ylx1Yjg2ZVx1Yjg3MFx1Yjg3Mlx1Yjg3M1x1Yjg3NFx1Yjg3NVx1Yjg3Nlx1Yjg3N1x1Yjg3OVx1Yjg3YVx1Yjg3Ylx1Yjg3ZFx1Yjg3ZVx1Yjg3Zlx1Yjg4MFx1Yjg4MVx1Yjg4Mlx1Yjg4M1x1Yjg4NFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0Ml0ubGVu'@; put 'Z3RoOysrbSk2NTUzMyE9PXhbMTQyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDJdW21dXT0zNjM1MittLEZbMzYzNTIrbV09eFsxNDJdW21dKTtmb3IoeFsxNDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4ODVc'@; put 'dWI4ODZcdWI4ODdcdWI4ODhcdWI4ODlcdWI4OGFcdWI4OGJcdWI4OGNcdWI4OGVcdWI4OGZcdWI4OTBcdWI4OTFcdWI4OTJcdWI4OTNcdWI4OTRcdWI4OTVcdWI4OTZcdWI4OTdcdWI4OThcdWI4OTlcdWI4OWFcdWI4OWJcdWI4OWNcdWI4OWRcdWI4OWVcdWI4OWZcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4YTBcdWI4YTFcdWI4YTJcdWI4YTNcdWI4YTRcdWI4YTVcdWI4YTZcdWI4YTdcdWI4YTlcdWI4YWFcdWI4YWJcdWI4YWNcdWI4YWRcdWI4YWVcdWI4YWZcdWI4YjFcdWI4YjJcdWI4YjNcdWI4YjVcdWI4YjZcdWI4YjdcdWI4YjlcdWI4YmFcdWI4YmJc'@; put 'dWI4YmNcdWI4YmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4YmVcdWI4YmZcdWI4YzJcdWI4YzRcdWI4YzZcdWI4YzdcdWI4YzhcdWI4YzlcdWI4Y2FcdWI4Y2JcdWI4Y2RcdWI4Y2VcdWI4Y2ZcdWI4ZDFcdWI4ZDJcdWI4ZDNcdWI4ZDVcdWI4ZDZcdWI4ZDdcdWI4'@; put 'ZDhcdWI4ZDlcdWI4ZGFcdWI4ZGJcdWI4ZGNcdWI4ZGVcdWI4ZTBcdWI4ZTJcdWI4ZTNcdWI4ZTRcdWI4ZTVcdWI4ZTZcdWI4ZTdcdWI4ZWFcdWI4ZWJcdWI4ZWRcdWI4ZWVcdWI4ZWZcdWI4ZjFcdWI4ZjJcdWI4ZjNcdWI4ZjRcdWI4ZjVcdWI4ZjZcdWI4ZjdcdWI4ZmFcdWI4ZmNcdWI4ZmVc'@; put 'dWI4ZmZcdWI5MDBcdWI5MDFcdWI5MDJcdWI5MDNcdWI5MDVcdWI5MDZcdWI5MDdcdWI5MDhcdWI5MDlcdWI5MGFcdWI5MGJcdWI5MGNcdWI5MGRcdWI5MGVcdWI5MGZcdWI5MTBcdWI5MTFcdWI5MTJcdWI5MTNcdWI5MTRcdWI5MTVcdWI5MTZcdWI5MTdcdWI5MTlcdWI5MWFcdWI5MWJcdWI5'@; put 'MWNcdWI5MWRcdWI5MWVcdWI5MWZcdWI5MjFcdWI5MjJcdWI5MjNcdWI5MjRcdWI5MjVcdWI5MjZcdWI5MjdcdWI5MjhcdWI5MjlcdWI5MmFcdWI5MmJcdWI5MmNcdWI5MmRcdWI5MmVcdWI5MmZcdWI5MzBcdWI5MzFcdWI5MzJcdWI5MzNcdWI5MzRcdWI5MzVcdWI5MzZcdWI5MzdcdWI5Mzhc'@; put 'dWI5MzlcdWI5M2FcdWI5M2JcdWI5M2VcdWI5M2ZcdWI5NDFcdWI5NDJcdWI5NDNcdWI5NDVcdWI5NDZcdWI5NDdcdWI5NDhcdWI5NDlcdWI5NGFcdWI5NGJcdWI5NGRcdWI5NGVcdWI5NTBcdWI5NTJcdWI5NTNcdWI5NTRcdWI5NTVcdWI5NTZcdWI5NTdcdWZmZmQiLnNwbGl0KCIiKSxtPTA7'@; put 'bSE9eFsxNDNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0M11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTQzXVttXV09MzY2MDgrbSxGWzM2NjA4K21dPXhbMTQzXVttXSk7Zm9yKHhbMTQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHViOTVhXHViOTViXHViOTVkXHViOTVlXHViOTVmXHViOTYxXHViOTYyXHViOTYzXHViOTY0XHViOTY1XHViOTY2XHViOTY3XHViOTZhXHViOTZjXHViOTZlXHViOTZmXHViOTcwXHViOTcxXHViOTcyXHViOTczXHViOTc2XHViOTc3XHViOTc5XHViOTdhXHViOTdiXHViOTdkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTdlXHViOTdmXHViOTgwXHViOTgxXHViOTgyXHViOTgzXHViOTg2XHViOTg4XHViOThiXHViOThjXHViOThmXHViOTkwXHViOTkxXHViOTkyXHViOTkzXHViOTk0XHViOTk1XHViOTk2XHViOTk3XHViOTk4XHViOTk5XHViOTlh'@; put 'XHViOTliXHViOTljXHViOTlkXHViOTllXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTlmXHViOWEwXHViOWExXHViOWEyXHViOWEzXHViOWE0XHViOWE1XHViOWE2XHViOWE3XHViOWE4XHViOWE5XHViOWFhXHViOWFiXHViOWFlXHViOWFmXHViOWIxXHViOWIyXHVi'@; put 'OWIzXHViOWI1XHViOWI2XHViOWI3XHViOWI4XHViOWI5XHViOWJhXHViOWJiXHViOWJlXHViOWMwXHViOWMyXHViOWMzXHViOWM0XHViOWM1XHViOWM2XHViOWM3XHViOWNhXHViOWNiXHViOWNkXHViOWQzXHViOWQ0XHViOWQ1XHViOWQ2XHViOWQ3XHViOWRhXHViOWRjXHViOWRmXHViOWUw'@; put 'XHViOWUyXHViOWU2XHViOWU3XHViOWU5XHViOWVhXHViOWViXHViOWVkXHViOWVlXHViOWVmXHViOWYwXHViOWYxXHViOWYyXHViOWYzXHViOWY2XHViOWZiXHViOWZjXHViOWZkXHViOWZlXHViOWZmXHViYTAyXHViYTAzXHViYTA0XHViYTA1XHViYTA2XHViYTA3XHViYTA5XHViYTBhXHVi'@; put 'YTBiXHViYTBjXHViYTBkXHViYTBlXHViYTBmXHViYTEwXHViYTExXHViYTEyXHViYTEzXHViYTE0XHViYTE2XHViYTE3XHViYTE4XHViYTE5XHViYTFhXHViYTFiXHViYTFjXHViYTFkXHViYTFlXHViYTFmXHViYTIwXHViYTIxXHViYTIyXHViYTIzXHViYTI0XHViYTI1XHViYTI2XHViYTI3'@; put 'XHViYTI4XHViYTI5XHViYTJhXHViYTJiXHViYTJjXHViYTJkXHViYTJlXHViYTJmXHViYTMwXHViYTMxXHViYTMyXHViYTMzXHViYTM0XHViYTM1XHViYTM2XHViYTM3XHViYTNhXHViYTNiXHViYTNkXHViYTNlXHViYTNmXHViYTQxXHViYTQzXHViYTQ0XHViYTQ1XHViYTQ2XHVmZmZkIi5z'@; put 'cGxpdCgiIiksbT0wO20hPXhbMTQ0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0NF1bbV1dPTM2ODY0K20sRlszNjg2NCttXT14WzE0NF1bbV0pO2Zvcih4WzE0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE0N1x1YmE0YVx1YmE0Y1x1YmE0Zlx1YmE1MFx1YmE1MVx1YmE1Mlx1YmE1Nlx1YmE1N1x1YmE1OVx1YmE1YVx1YmE1Ylx1YmE1ZFx1YmE1ZVx1YmE1Zlx1YmE2MFx1YmE2MVx1YmE2Mlx1YmE2M1x1YmE2Nlx1YmE2YVx1YmE2Ylx1YmE2Y1x1YmE2ZFx1'@; put 'YmE2ZVx1YmE2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE3Mlx1YmE3M1x1YmE3NVx1YmE3Nlx1YmE3N1x1YmE3OVx1YmE3YVx1YmE3Ylx1YmE3Y1x1YmE3ZFx1YmE3ZVx1YmE3Zlx1YmE4MFx1YmE4MVx1YmE4Mlx1YmE4Nlx1YmE4OFx1YmE4OVx1YmE4YVx1YmE4'@; put 'Ylx1YmE4ZFx1YmE4ZVx1YmE4Zlx1YmE5MFx1YmE5MVx1YmE5Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE5M1x1YmE5NFx1YmE5NVx1YmE5Nlx1YmE5N1x1YmE5OFx1YmE5OVx1YmE5YVx1YmE5Ylx1YmE5Y1x1YmE5ZFx1YmE5ZVx1YmE5Zlx1YmFhMFx1YmFhMVx1'@; put 'YmFhMlx1YmFhM1x1YmFhNFx1YmFhNVx1YmFhNlx1YmFhN1x1YmFhYVx1YmFhZFx1YmFhZVx1YmFhZlx1YmFiMVx1YmFiM1x1YmFiNFx1YmFiNVx1YmFiNlx1YmFiN1x1YmFiYVx1YmFiY1x1YmFiZVx1YmFiZlx1YmFjMFx1YmFjMVx1YmFjMlx1YmFjM1x1YmFjNVx1YmFjNlx1YmFjN1x1YmFj'@; put 'OVx1YmFjYVx1YmFjYlx1YmFjY1x1YmFjZFx1YmFjZVx1YmFjZlx1YmFkMFx1YmFkMVx1YmFkMlx1YmFkM1x1YmFkNFx1YmFkNVx1YmFkNlx1YmFkN1x1YmFkYVx1YmFkYlx1YmFkY1x1YmFkZFx1YmFkZVx1YmFkZlx1YmFlMFx1YmFlMVx1YmFlMlx1YmFlM1x1YmFlNFx1YmFlNVx1YmFlNlx1'@; put 'YmFlN1x1YmFlOFx1YmFlOVx1YmFlYVx1YmFlYlx1YmFlY1x1YmFlZFx1YmFlZVx1YmFlZlx1YmFmMFx1YmFmMVx1YmFmMlx1YmFmM1x1YmFmNFx1YmFmNVx1YmFmNlx1YmFmN1x1YmFmOFx1YmFmOVx1YmFmYVx1YmFmYlx1YmFmZFx1YmFmZVx1YmFmZlx1YmIwMVx1YmIwMlx1YmIwM1x1YmIw'@; put 'NVx1YmIwNlx1YmIwN1x1YmIwOFx1YmIwOVx1YmIwYVx1YmIwYlx1YmIwY1x1YmIwZVx1YmIxMFx1YmIxMlx1YmIxM1x1YmIxNFx1YmIxNVx1YmIxNlx1YmIxN1x1YmIxOVx1YmIxYVx1YmIxYlx1YmIxZFx1YmIxZVx1YmIxZlx1YmIyMVx1YmIyMlx1YmIyM1x1YmIyNFx1YmIyNVx1YmIyNlx1'@; put 'YmIyN1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0NV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQ1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDVdW21dXT0zNzEyMCttLEZbMzcxMjArbV09eFsxNDVdW21dKTtmb3IoeFsxNDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiMjhcdWJiMmFcdWJiMmNcdWJiMmRcdWJiMmVcdWJiMmZcdWJiMzBcdWJiMzFcdWJiMzJcdWJiMzNcdWJiMzdcdWJiMzlcdWJiM2FcdWJiM2ZcdWJiNDBcdWJiNDFcdWJiNDJcdWJiNDNcdWJiNDZcdWJiNDhcdWJiNGFcdWJiNGJc'@; put 'dWJiNGNcdWJiNGVcdWJiNTFcdWJiNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiNTNcdWJiNTVcdWJiNTZcdWJiNTdcdWJiNTlcdWJiNWFcdWJiNWJcdWJiNWNcdWJiNWRcdWJiNWVcdWJiNWZcdWJiNjBcdWJiNjJcdWJiNjRcdWJiNjVcdWJiNjZcdWJiNjdcdWJi'@; put 'NjhcdWJiNjlcdWJiNmFcdWJiNmJcdWJiNmRcdWJiNmVcdWJiNmZcdWJiNzBcdWJiNzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiNzJcdWJiNzNcdWJiNzRcdWJiNzVcdWJiNzZcdWJiNzdcdWJiNzhcdWJiNzlcdWJiN2FcdWJiN2JcdWJiN2NcdWJiN2RcdWJiN2Vc'@; put 'dWJiN2ZcdWJiODBcdWJiODFcdWJiODJcdWJiODNcdWJiODRcdWJiODVcdWJiODZcdWJiODdcdWJiODlcdWJiOGFcdWJiOGJcdWJiOGRcdWJiOGVcdWJiOGZcdWJiOTFcdWJiOTJcdWJiOTNcdWJiOTRcdWJiOTVcdWJiOTZcdWJiOTdcdWJiOThcdWJiOTlcdWJiOWFcdWJiOWJcdWJiOWNcdWJi'@; put 'OWRcdWJiOWVcdWJiOWZcdWJiYTBcdWJiYTFcdWJiYTJcdWJiYTNcdWJiYTVcdWJiYTZcdWJiYTdcdWJiYTlcdWJiYWFcdWJiYWJcdWJiYWRcdWJiYWVcdWJiYWZcdWJiYjBcdWJiYjFcdWJiYjJcdWJiYjNcdWJiYjVcdWJiYjZcdWJiYjhcdWJiYjlcdWJiYmFcdWJiYmJcdWJiYmNcdWJiYmRc'@; put 'dWJiYmVcdWJiYmZcdWJiYzFcdWJiYzJcdWJiYzNcdWJiYzVcdWJiYzZcdWJiYzdcdWJiYzlcdWJiY2FcdWJiY2JcdWJiY2NcdWJiY2RcdWJiY2VcdWJiY2ZcdWJiZDFcdWJiZDJcdWJiZDRcdWJiZDVcdWJiZDZcdWJiZDdcdWJiZDhcdWJiZDlcdWJiZGFcdWJiZGJcdWJiZGNcdWJiZGRcdWJi'@; put 'ZGVcdWJiZGZcdWJiZTBcdWJiZTFcdWJiZTJcdWJiZTNcdWJiZTRcdWJiZTVcdWJiZTZcdWJiZTdcdWJiZThcdWJiZTlcdWJiZWFcdWJiZWJcdWJiZWNcdWJiZWRcdWJiZWVcdWJiZWZcdWJiZjBcdWJiZjFcdWJiZjJcdWJiZjNcdWJiZjRcdWJiZjVcdWJiZjZcdWJiZjdcdWJiZmFcdWJiZmJc'@; put 'dWJiZmRcdWJiZmVcdWJjMDFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0Nl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTQ2XVttXV09MzczNzYrbSxGWzM3Mzc2K21dPXhbMTQ2XVttXSk7Zm9yKHhbMTQ3XT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzAzXHViYzA0XHViYzA1XHViYzA2XHViYzA3XHViYzBhXHViYzBlXHViYzEwXHViYzEyXHViYzEzXHViYzE5XHViYzFhXHViYzIwXHViYzIxXHViYzIyXHViYzIzXHViYzI2XHViYzI4XHViYzJhXHViYzJi'@; put 'XHViYzJjXHViYzJlXHViYzJmXHViYzMyXHViYzMzXHViYzM1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzM2XHViYzM3XHViYzM5XHViYzNhXHViYzNiXHViYzNjXHViYzNkXHViYzNlXHViYzNmXHViYzQyXHViYzQ2XHViYzQ3XHViYzQ4XHViYzRhXHViYzRiXHVi'@; put 'YzRlXHViYzRmXHViYzUxXHViYzUyXHViYzUzXHViYzU0XHViYzU1XHViYzU2XHViYzU3XHViYzU4XHViYzU5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzVhXHViYzViXHViYzVjXHViYzVlXHViYzVmXHViYzYwXHViYzYxXHViYzYyXHViYzYzXHViYzY0XHViYzY1'@; put 'XHViYzY2XHViYzY3XHViYzY4XHViYzY5XHViYzZhXHViYzZiXHViYzZjXHViYzZkXHViYzZlXHViYzZmXHViYzcwXHViYzcxXHViYzcyXHViYzczXHViYzc0XHViYzc1XHViYzc2XHViYzc3XHViYzc4XHViYzc5XHViYzdhXHViYzdiXHViYzdjXHViYzdkXHViYzdlXHViYzdmXHViYzgwXHVi'@; put 'YzgxXHViYzgyXHViYzgzXHViYzg2XHViYzg3XHViYzg5XHViYzhhXHViYzhkXHViYzhmXHViYzkwXHViYzkxXHViYzkyXHViYzkzXHViYzk2XHViYzk4XHViYzliXHViYzljXHViYzlkXHViYzllXHViYzlmXHViY2EyXHViY2EzXHViY2E1XHViY2E2XHViY2E5XHViY2FhXHViY2FiXHViY2Fj'@; put 'XHViY2FkXHViY2FlXHViY2FmXHViY2IyXHViY2I2XHViY2I3XHViY2I4XHViY2I5XHViY2JhXHViY2JiXHViY2JlXHViY2JmXHViY2MxXHViY2MyXHViY2MzXHViY2M1XHViY2M2XHViY2M3XHViY2M4XHViY2M5XHViY2NhXHViY2NiXHViY2NjXHViY2NlXHViY2QyXHViY2QzXHViY2Q0XHVi'@; put 'Y2Q2XHViY2Q3XHViY2Q5XHViY2RhXHViY2RiXHViY2RkXHViY2RlXHViY2RmXHViY2UwXHViY2UxXHViY2UyXHViY2UzXHViY2U0XHViY2U1XHViY2U2XHViY2U3XHViY2U4XHViY2U5XHViY2VhXHViY2ViXHViY2VjXHViY2VkXHViY2VlXHViY2VmXHViY2YwXHViY2YxXHViY2YyXHViY2Yz'@; put 'XHViY2Y3XHViY2Y5XHViY2ZhXHViY2ZiXHViY2ZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTQ3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNDddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE0N11bbV1dPTM3NjMyK20sRlszNzYzMittXT14WzE0N11bbV0pO2Zvcih4WzE0OF09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmNmZVx1YmNmZlx1YmQwMFx1YmQwMVx1YmQwMlx1YmQwM1x1YmQwNlx1YmQwOFx1YmQwYVx1YmQwYlx1YmQwY1x1YmQwZFx1YmQwZVx1YmQwZlx1YmQxMVx1YmQxMlx1YmQxM1x1YmQx'@; put 'NVx1YmQxNlx1YmQxN1x1YmQxOFx1YmQxOVx1YmQxYVx1YmQxYlx1YmQxY1x1YmQxZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQxZVx1YmQxZlx1YmQyMFx1YmQyMVx1YmQyMlx1YmQyM1x1YmQyNVx1YmQyNlx1YmQyN1x1YmQyOFx1YmQyOVx1YmQyYVx1YmQyYlx1'@; put 'YmQyZFx1YmQyZVx1YmQyZlx1YmQzMFx1YmQzMVx1YmQzMlx1YmQzM1x1YmQzNFx1YmQzNVx1YmQzNlx1YmQzN1x1YmQzOFx1YmQzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQzYVx1YmQzYlx1YmQzY1x1YmQzZFx1YmQzZVx1YmQzZlx1YmQ0MVx1YmQ0Mlx1YmQ0'@; put 'M1x1YmQ0NFx1YmQ0NVx1YmQ0Nlx1YmQ0N1x1YmQ0YVx1YmQ0Ylx1YmQ0ZFx1YmQ0ZVx1YmQ0Zlx1YmQ1MVx1YmQ1Mlx1YmQ1M1x1YmQ1NFx1YmQ1NVx1YmQ1Nlx1YmQ1N1x1YmQ1YVx1YmQ1Ylx1YmQ1Y1x1YmQ1ZFx1YmQ1ZVx1YmQ1Zlx1YmQ2MFx1YmQ2MVx1YmQ2Mlx1YmQ2M1x1YmQ2NVx1'@; put 'YmQ2Nlx1YmQ2N1x1YmQ2OVx1YmQ2YVx1YmQ2Ylx1YmQ2Y1x1YmQ2ZFx1YmQ2ZVx1YmQ2Zlx1YmQ3MFx1YmQ3MVx1YmQ3Mlx1YmQ3M1x1YmQ3NFx1YmQ3NVx1YmQ3Nlx1YmQ3N1x1YmQ3OFx1YmQ3OVx1YmQ3YVx1YmQ3Ylx1YmQ3Y1x1YmQ3ZFx1YmQ3ZVx1YmQ3Zlx1YmQ4Mlx1YmQ4M1x1YmQ4'@; put 'NVx1YmQ4Nlx1YmQ4Ylx1YmQ4Y1x1YmQ4ZFx1YmQ4ZVx1YmQ4Zlx1YmQ5Mlx1YmQ5NFx1YmQ5Nlx1YmQ5N1x1YmQ5OFx1YmQ5Ylx1YmQ5ZFx1YmQ5ZVx1YmQ5Zlx1YmRhMFx1YmRhMVx1YmRhMlx1YmRhM1x1YmRhNVx1YmRhNlx1YmRhN1x1YmRhOFx1YmRhOVx1YmRhYVx1YmRhYlx1YmRhY1x1'@; put 'YmRhZFx1YmRhZVx1YmRhZlx1YmRiMVx1YmRiMlx1YmRiM1x1YmRiNFx1YmRiNVx1YmRiNlx1YmRiN1x1YmRiOVx1YmRiYVx1YmRiYlx1YmRiY1x1YmRiZFx1YmRiZVx1YmRiZlx1YmRjMFx1YmRjMVx1YmRjMlx1YmRjM1x1YmRjNFx1YmRjNVx1YmRjNlx1YmRjN1x1YmRjOFx1YmRjOVx1YmRj'@; put 'YVx1YmRjYlx1YmRjY1x1YmRjZFx1YmRjZVx1YmRjZlx1YmRkMFx1YmRkMVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE0OF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTQ4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNDhdW21dXT0zNzg4OCttLEZbMzc4ODgrbV09eFsxNDhdW21dKTtm'@; put 'b3IoeFsxNDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkZDJcdWJkZDNcdWJkZDZcdWJkZDdcdWJkZDlcdWJkZGFcdWJkZGJcdWJkZGRcdWJkZGVcdWJkZGZcdWJkZTBcdWJkZTFcdWJkZTJcdWJkZTNcdWJkZTRcdWJk'@; put 'ZTVcdWJkZTZcdWJkZTdcdWJkZThcdWJkZWFcdWJkZWJcdWJkZWNcdWJkZWRcdWJkZWVcdWJkZWZcdWJkZjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkZjJcdWJkZjNcdWJkZjVcdWJkZjZcdWJkZjdcdWJkZjlcdWJkZmFcdWJkZmJcdWJkZmNcdWJkZmRcdWJkZmVc'@; put 'dWJkZmZcdWJlMDFcdWJlMDJcdWJlMDRcdWJlMDZcdWJlMDdcdWJlMDhcdWJlMDlcdWJlMGFcdWJlMGJcdWJlMGVcdWJlMGZcdWJlMTFcdWJlMTJcdWJlMTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJlMTVcdWJlMTZcdWJlMTdcdWJlMThcdWJlMTlcdWJlMWFcdWJl'@; put 'MWJcdWJlMWVcdWJlMjBcdWJlMjFcdWJlMjJcdWJlMjNcdWJlMjRcdWJlMjVcdWJlMjZcdWJlMjdcdWJlMjhcdWJlMjlcdWJlMmFcdWJlMmJcdWJlMmNcdWJlMmRcdWJlMmVcdWJlMmZcdWJlMzBcdWJlMzFcdWJlMzJcdWJlMzNcdWJlMzRcdWJlMzVcdWJlMzZcdWJlMzdcdWJlMzhcdWJlMzlc'@; put 'dWJlM2FcdWJlM2JcdWJlM2NcdWJlM2RcdWJlM2VcdWJlM2ZcdWJlNDBcdWJlNDFcdWJlNDJcdWJlNDNcdWJlNDZcdWJlNDdcdWJlNDlcdWJlNGFcdWJlNGJcdWJlNGRcdWJlNGZcdWJlNTBcdWJlNTFcdWJlNTJcdWJlNTNcdWJlNTZcdWJlNThcdWJlNWNcdWJlNWRcdWJlNWVcdWJlNWZcdWJl'@; put 'NjJcdWJlNjNcdWJlNjVcdWJlNjZcdWJlNjdcdWJlNjlcdWJlNmJcdWJlNmNcdWJlNmRcdWJlNmVcdWJlNmZcdWJlNzJcdWJlNzZcdWJlNzdcdWJlNzhcdWJlNzlcdWJlN2FcdWJlN2VcdWJlN2ZcdWJlODFcdWJlODJcdWJlODNcdWJlODVcdWJlODZcdWJlODdcdWJlODhcdWJlODlcdWJlOGFc'@; put 'dWJlOGJcdWJlOGVcdWJlOTJcdWJlOTNcdWJlOTRcdWJlOTVcdWJlOTZcdWJlOTdcdWJlOWFcdWJlOWJcdWJlOWNcdWJlOWRcdWJlOWVcdWJlOWZcdWJlYTBcdWJlYTFcdWJlYTJcdWJlYTNcdWJlYTRcdWJlYTVcdWJlYTZcdWJlYTdcdWJlYTlcdWJlYWFcdWJlYWJcdWJlYWNcdWJlYWRcdWJl'@; put 'YWVcdWJlYWZcdWJlYjBcdWJlYjFcdWJlYjJcdWJlYjNcdWJlYjRcdWJlYjVcdWJlYjZcdWJlYjdcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNDldLmxlbmd0aDsrK20pNjU1MzMhPT14WzE0OV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTQ5XVttXV09MzgxNDQrbSxGWzM4MTQ0K21d'@; put 'PXhbMTQ5XVttXSk7Zm9yKHhbMTUwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWI4XHViZWI5XHViZWJhXHViZWJiXHViZWJjXHViZWJkXHViZWJlXHViZWJmXHViZWMwXHViZWMxXHViZWMyXHViZWMzXHViZWM0XHVi'@; put 'ZWM1XHViZWM2XHViZWM3XHViZWM4XHViZWM5XHViZWNhXHViZWNiXHViZWNjXHViZWNkXHViZWNlXHViZWNmXHViZWQyXHViZWQzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWQ1XHViZWQ2XHViZWQ5XHViZWRhXHViZWRiXHViZWRjXHViZWRkXHViZWRlXHViZWRm'@; put 'XHViZWUxXHViZWUyXHViZWU2XHViZWU3XHViZWU4XHViZWU5XHViZWVhXHViZWViXHViZWVkXHViZWVlXHViZWVmXHViZWYwXHViZWYxXHViZWYyXHViZWYzXHViZWY0XHViZWY1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWY2XHViZWY3XHViZWY4XHViZWY5XHVi'@; put 'ZWZhXHViZWZiXHViZWZjXHViZWZkXHViZWZlXHViZWZmXHViZjAwXHViZjAyXHViZjAzXHViZjA0XHViZjA1XHViZjA2XHViZjA3XHViZjBhXHViZjBiXHViZjBjXHViZjBkXHViZjBlXHViZjBmXHViZjEwXHViZjExXHViZjEyXHViZjEzXHViZjE0XHViZjE1XHViZjE2XHViZjE3XHViZjFh'@; put 'XHViZjFlXHViZjFmXHViZjIwXHViZjIxXHViZjIyXHViZjIzXHViZjI0XHViZjI1XHViZjI2XHViZjI3XHViZjI4XHViZjI5XHViZjJhXHViZjJiXHViZjJjXHViZjJkXHViZjJlXHViZjJmXHViZjMwXHViZjMxXHViZjMyXHViZjMzXHViZjM0XHViZjM1XHViZjM2XHViZjM3XHViZjM4XHVi'@; put 'ZjM5XHViZjNhXHViZjNiXHViZjNjXHViZjNkXHViZjNlXHViZjNmXHViZjQyXHViZjQzXHViZjQ1XHViZjQ2XHViZjQ3XHViZjQ5XHViZjRhXHViZjRiXHViZjRjXHViZjRkXHViZjRlXHViZjRmXHViZjUyXHViZjUzXHViZjU0XHViZjU2XHViZjU3XHViZjU4XHViZjU5XHViZjVhXHViZjVi'@; put 'XHViZjVjXHViZjVkXHViZjVlXHViZjVmXHViZjYwXHViZjYxXHViZjYyXHViZjYzXHViZjY0XHViZjY1XHViZjY2XHViZjY3XHViZjY4XHViZjY5XHViZjZhXHViZjZiXHViZjZjXHViZjZkXHViZjZlXHViZjZmXHViZjcwXHViZjcxXHViZjcyXHViZjczXHViZjc0XHViZjc1XHViZjc2XHVi'@; put 'Zjc3XHViZjc4XHViZjc5XHViZjdhXHViZjdiXHViZjdjXHViZjdkXHViZjdlXHViZjdmXHViZjgwXHViZjgxXHViZjgyXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTUwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1MF1bbV1dPTM4NDAw'@; put 'K20sRlszODQwMCttXT14WzE1MF1bbV0pO2Zvcih4WzE1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmY4M1x1YmY4NFx1YmY4NVx1YmY4Nlx1YmY4N1x1YmY4OFx1YmY4OVx1YmY4YVx1YmY4Ylx1YmY4Y1x1YmY4ZFx1'@; put 'YmY4ZVx1YmY4Zlx1YmY5MFx1YmY5MVx1YmY5Mlx1YmY5M1x1YmY5NVx1YmY5Nlx1YmY5N1x1YmY5OFx1YmY5OVx1YmY5YVx1YmY5Ylx1YmY5Y1x1YmY5ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmY5ZVx1YmY5Zlx1YmZhMFx1YmZhMVx1YmZhMlx1YmZhM1x1YmZh'@; put 'NFx1YmZhNVx1YmZhNlx1YmZhN1x1YmZhOFx1YmZhOVx1YmZhYVx1YmZhYlx1YmZhY1x1YmZhZFx1YmZhZVx1YmZhZlx1YmZiMVx1YmZiMlx1YmZiM1x1YmZiNFx1YmZiNVx1YmZiNlx1YmZiN1x1YmZiOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmZiOVx1YmZiYVx1'@; put 'YmZiYlx1YmZiY1x1YmZiZFx1YmZiZVx1YmZiZlx1YmZjMFx1YmZjMVx1YmZjMlx1YmZjM1x1YmZjNFx1YmZjNlx1YmZjN1x1YmZjOFx1YmZjOVx1YmZjYVx1YmZjYlx1YmZjZVx1YmZjZlx1YmZkMVx1YmZkMlx1YmZkM1x1YmZkNVx1YmZkNlx1YmZkN1x1YmZkOFx1YmZkOVx1YmZkYVx1YmZk'@; put 'Ylx1YmZkZFx1YmZkZVx1YmZlMFx1YmZlMlx1YmZlM1x1YmZlNFx1YmZlNVx1YmZlNlx1YmZlN1x1YmZlOFx1YmZlOVx1YmZlYVx1YmZlYlx1YmZlY1x1YmZlZFx1YmZlZVx1YmZlZlx1YmZmMFx1YmZmMVx1YmZmMlx1YmZmM1x1YmZmNFx1YmZmNVx1YmZmNlx1YmZmN1x1YmZmOFx1YmZmOVx1'@; put 'YmZmYVx1YmZmYlx1YmZmY1x1YmZmZFx1YmZmZVx1YmZmZlx1YzAwMFx1YzAwMVx1YzAwMlx1YzAwM1x1YzAwNFx1YzAwNVx1YzAwNlx1YzAwN1x1YzAwOFx1YzAwOVx1YzAwYVx1YzAwYlx1YzAwY1x1YzAwZFx1YzAwZVx1YzAwZlx1YzAxMFx1YzAxMVx1YzAxMlx1YzAxM1x1YzAxNFx1YzAx'@; put 'NVx1YzAxNlx1YzAxN1x1YzAxOFx1YzAxOVx1YzAxYVx1YzAxYlx1YzAxY1x1YzAxZFx1YzAxZVx1YzAxZlx1YzAyMFx1YzAyMVx1YzAyMlx1YzAyM1x1YzAyNFx1YzAyNVx1YzAyNlx1YzAyN1x1YzAyOFx1YzAyOVx1YzAyYVx1YzAyYlx1YzAyY1x1YzAyZFx1YzAyZVx1YzAyZlx1YzAzMFx1'@; put 'YzAzMVx1YzAzMlx1YzAzM1x1YzAzNFx1YzAzNVx1YzAzNlx1YzAzN1x1YzAzOFx1YzAzOVx1YzAzYVx1YzAzYlx1YzAzZFx1YzAzZVx1YzAzZlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTUxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsx'@; put 'NTFdW21dXT0zODY1NittLEZbMzg2NTYrbV09eFsxNTFdW21dKTtmb3IoeFsxNTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMwNDBcdWMwNDFcdWMwNDJcdWMwNDNcdWMwNDRcdWMwNDVcdWMwNDZcdWMwNDdcdWMwNDhc'@; put 'dWMwNDlcdWMwNGFcdWMwNGJcdWMwNGNcdWMwNGRcdWMwNGVcdWMwNGZcdWMwNTBcdWMwNTJcdWMwNTNcdWMwNTRcdWMwNTVcdWMwNTZcdWMwNTdcdWMwNTlcdWMwNWFcdWMwNWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMwNWRcdWMwNWVcdWMwNWZcdWMwNjFcdWMw'@; put 'NjJcdWMwNjNcdWMwNjRcdWMwNjVcdWMwNjZcdWMwNjdcdWMwNmFcdWMwNmJcdWMwNmNcdWMwNmRcdWMwNmVcdWMwNmZcdWMwNzBcdWMwNzFcdWMwNzJcdWMwNzNcdWMwNzRcdWMwNzVcdWMwNzZcdWMwNzdcdWMwNzhcdWMwNzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWMwN2FcdWMwN2JcdWMwN2NcdWMwN2RcdWMwN2VcdWMwN2ZcdWMwODBcdWMwODFcdWMwODJcdWMwODNcdWMwODRcdWMwODVcdWMwODZcdWMwODdcdWMwODhcdWMwODlcdWMwOGFcdWMwOGJcdWMwOGNcdWMwOGRcdWMwOGVcdWMwOGZcdWMwOTJcdWMwOTNcdWMwOTVcdWMwOTZcdWMwOTdcdWMw'@; put 'OTlcdWMwOWFcdWMwOWJcdWMwOWNcdWMwOWRcdWMwOWVcdWMwOWZcdWMwYTJcdWMwYTRcdWMwYTZcdWMwYTdcdWMwYThcdWMwYTlcdWMwYWFcdWMwYWJcdWMwYWVcdWMwYjFcdWMwYjJcdWMwYjdcdWMwYjhcdWMwYjlcdWMwYmFcdWMwYmJcdWMwYmVcdWMwYzJcdWMwYzNcdWMwYzRcdWMwYzZc'@; put 'dWMwYzdcdWMwY2FcdWMwY2JcdWMwY2RcdWMwY2VcdWMwY2ZcdWMwZDFcdWMwZDJcdWMwZDNcdWMwZDRcdWMwZDVcdWMwZDZcdWMwZDdcdWMwZGFcdWMwZGVcdWMwZGZcdWMwZTBcdWMwZTFcdWMwZTJcdWMwZTNcdWMwZTZcdWMwZTdcdWMwZTlcdWMwZWFcdWMwZWJcdWMwZWRcdWMwZWVcdWMw'@; put 'ZWZcdWMwZjBcdWMwZjFcdWMwZjJcdWMwZjNcdWMwZjZcdWMwZjhcdWMwZmFcdWMwZmJcdWMwZmNcdWMwZmRcdWMwZmVcdWMwZmZcdWMxMDFcdWMxMDJcdWMxMDNcdWMxMDVcdWMxMDZcdWMxMDdcdWMxMDlcdWMxMGFcdWMxMGJcdWMxMGNcdWMxMGRcdWMxMGVcdWMxMGZcdWMxMTFcdWMxMTJc'@; put 'dWMxMTNcdWMxMTRcdWMxMTZcdWMxMTdcdWMxMThcdWMxMTlcdWMxMWFcdWMxMWJcdWMxMjFcdWMxMjJcdWMxMjVcdWMxMjhcdWMxMjlcdWMxMmFcdWMxMmJcdWMxMmVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE1Ml1bbV0uY2hhckNvZGVB'@; put 'dCgwKSYmKGFlW3hbMTUyXVttXV09Mzg5MTIrbSxGWzM4OTEyK21dPXhbMTUyXVttXSk7Zm9yKHhbMTUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMTMyXHVjMTMzXHVjMTM0XHVjMTM1XHVjMTM3XHVjMTNhXHVjMTNi'@; put 'XHVjMTNkXHVjMTNlXHVjMTNmXHVjMTQxXHVjMTQyXHVjMTQzXHVjMTQ0XHVjMTQ1XHVjMTQ2XHVjMTQ3XHVjMTRhXHVjMTRlXHVjMTRmXHVjMTUwXHVjMTUxXHVjMTUyXHVjMTUzXHVjMTU2XHVjMTU3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMTU5XHVjMTVhXHVj'@; put 'MTViXHVjMTVkXHVjMTVlXHVjMTVmXHVjMTYwXHVjMTYxXHVjMTYyXHVjMTYzXHVjMTY2XHVjMTZhXHVjMTZiXHVjMTZjXHVjMTZkXHVjMTZlXHVjMTZmXHVjMTcxXHVjMTcyXHVjMTczXHVjMTc1XHVjMTc2XHVjMTc3XHVjMTc5XHVjMTdhXHVjMTdiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVjMTdjXHVjMTdkXHVjMTdlXHVjMTdmXHVjMTgwXHVjMTgxXHVjMTgyXHVjMTgzXHVjMTg0XHVjMTg2XHVjMTg3XHVjMTg4XHVjMTg5XHVjMThhXHVjMThiXHVjMThmXHVjMTkxXHVjMTkyXHVjMTkzXHVjMTk1XHVjMTk3XHVjMTk4XHVjMTk5XHVjMTlhXHVjMTliXHVj'@; put 'MTllXHVjMWEwXHVjMWEyXHVjMWEzXHVjMWE0XHVjMWE2XHVjMWE3XHVjMWFhXHVjMWFiXHVjMWFkXHVjMWFlXHVjMWFmXHVjMWIxXHVjMWIyXHVjMWIzXHVjMWI0XHVjMWI1XHVjMWI2XHVjMWI3XHVjMWI4XHVjMWI5XHVjMWJhXHVjMWJiXHVjMWJjXHVjMWJlXHVjMWJmXHVjMWMwXHVjMWMx'@; put 'XHVjMWMyXHVjMWMzXHVjMWM1XHVjMWM2XHVjMWM3XHVjMWM5XHVjMWNhXHVjMWNiXHVjMWNkXHVjMWNlXHVjMWNmXHVjMWQwXHVjMWQxXHVjMWQyXHVjMWQzXHVjMWQ1XHVjMWQ2XHVjMWQ5XHVjMWRhXHVjMWRiXHVjMWRjXHVjMWRkXHVjMWRlXHVjMWRmXHVjMWUxXHVjMWUyXHVjMWUzXHVj'@; put 'MWU1XHVjMWU2XHVjMWU3XHVjMWU5XHVjMWVhXHVjMWViXHVjMWVjXHVjMWVkXHVjMWVlXHVjMWVmXHVjMWYyXHVjMWY0XHVjMWY1XHVjMWY2XHVjMWY3XHVjMWY4XHVjMWY5XHVjMWZhXHVjMWZiXHVjMWZlXHVjMWZmXHVjMjAxXHVjMjAyXHVjMjAzXHVjMjA1XHVjMjA2XHVjMjA3XHVjMjA4'@; put 'XHVjMjA5XHVjMjBhXHVjMjBiXHVjMjBlXHVjMjEwXHVjMjEyXHVjMjEzXHVjMjE0XHVjMjE1XHVjMjE2XHVjMjE3XHVjMjFhXHVjMjFiXHVjMjFkXHVjMjFlXHVjMjIxXHVjMjIyXHVjMjIzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTUzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTNd'@; put 'W21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1M11bbV1dPTM5MTY4K20sRlszOTE2OCttXT14WzE1M11bbV0pO2Zvcih4WzE1NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzIyNFx1YzIyNVx1YzIyNlx1YzIyN1x1YzIy'@; put 'YVx1YzIyY1x1YzIyZVx1YzIzMFx1YzIzM1x1YzIzNVx1YzIzNlx1YzIzN1x1YzIzOFx1YzIzOVx1YzIzYVx1YzIzYlx1YzIzY1x1YzIzZFx1YzIzZVx1YzIzZlx1YzI0MFx1YzI0MVx1YzI0Mlx1YzI0M1x1YzI0NFx1YzI0NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'YzI0Nlx1YzI0N1x1YzI0OVx1YzI0YVx1YzI0Ylx1YzI0Y1x1YzI0ZFx1YzI0ZVx1YzI0Zlx1YzI1Mlx1YzI1M1x1YzI1NVx1YzI1Nlx1YzI1N1x1YzI1OVx1YzI1YVx1YzI1Ylx1YzI1Y1x1YzI1ZFx1YzI1ZVx1YzI1Zlx1YzI2MVx1YzI2Mlx1YzI2M1x1YzI2NFx1YzI2Nlx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzI2N1x1YzI2OFx1YzI2OVx1YzI2YVx1YzI2Ylx1YzI2ZVx1YzI2Zlx1YzI3MVx1YzI3Mlx1YzI3M1x1YzI3NVx1YzI3Nlx1YzI3N1x1YzI3OFx1YzI3OVx1YzI3YVx1YzI3Ylx1YzI3ZVx1YzI4MFx1YzI4Mlx1YzI4M1x1YzI4NFx1YzI4NVx1'@; put 'YzI4Nlx1YzI4N1x1YzI4YVx1YzI4Ylx1YzI4Y1x1YzI4ZFx1YzI4ZVx1YzI4Zlx1YzI5MVx1YzI5Mlx1YzI5M1x1YzI5NFx1YzI5NVx1YzI5Nlx1YzI5N1x1YzI5OVx1YzI5YVx1YzI5Y1x1YzI5ZVx1YzI5Zlx1YzJhMFx1YzJhMVx1YzJhMlx1YzJhM1x1YzJhNlx1YzJhN1x1YzJhOVx1YzJh'@; put 'YVx1YzJhYlx1YzJhZVx1YzJhZlx1YzJiMFx1YzJiMVx1YzJiMlx1YzJiM1x1YzJiNlx1YzJiOFx1YzJiYVx1YzJiYlx1YzJiY1x1YzJiZFx1YzJiZVx1YzJiZlx1YzJjMFx1YzJjMVx1YzJjMlx1YzJjM1x1YzJjNFx1YzJjNVx1YzJjNlx1YzJjN1x1YzJjOFx1YzJjOVx1YzJjYVx1YzJjYlx1'@; put 'YzJjY1x1YzJjZFx1YzJjZVx1YzJjZlx1YzJkMFx1YzJkMVx1YzJkMlx1YzJkM1x1YzJkNFx1YzJkNVx1YzJkNlx1YzJkN1x1YzJkOFx1YzJkOVx1YzJkYVx1YzJkYlx1YzJkZVx1YzJkZlx1YzJlMVx1YzJlMlx1YzJlNVx1YzJlNlx1YzJlN1x1YzJlOFx1YzJlOVx1YzJlYVx1YzJlZVx1YzJm'@; put 'MFx1YzJmMlx1YzJmM1x1YzJmNFx1YzJmNVx1YzJmN1x1YzJmYVx1YzJmZFx1YzJmZVx1YzJmZlx1YzMwMVx1YzMwMlx1YzMwM1x1YzMwNFx1YzMwNVx1YzMwNlx1YzMwN1x1YzMwYVx1YzMwYlx1YzMwZVx1YzMwZlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE1NF0ubGVuZ3RoOysrbSk2'@; put 'NTUzMyE9PXhbMTU0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTRdW21dXT0zOTQyNCttLEZbMzk0MjQrbV09eFsxNTRdW21dKTtmb3IoeFsxNTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMzMTBcdWMzMTFcdWMz'@; put 'MTJcdWMzMTZcdWMzMTdcdWMzMTlcdWMzMWFcdWMzMWJcdWMzMWRcdWMzMWVcdWMzMWZcdWMzMjBcdWMzMjFcdWMzMjJcdWMzMjNcdWMzMjZcdWMzMjdcdWMzMmFcdWMzMmJcdWMzMmNcdWMzMmRcdWMzMmVcdWMzMmZcdWMzMzBcdWMzMzFcdWMzMzJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWMzMzNcdWMzMzRcdWMzMzVcdWMzMzZcdWMzMzdcdWMzMzhcdWMzMzlcdWMzM2FcdWMzM2JcdWMzM2NcdWMzM2RcdWMzM2VcdWMzM2ZcdWMzNDBcdWMzNDFcdWMzNDJcdWMzNDNcdWMzNDRcdWMzNDZcdWMzNDdcdWMzNDhcdWMzNDlcdWMzNGFcdWMzNGJcdWMzNGNcdWMz'@; put 'NGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMzNGVcdWMzNGZcdWMzNTBcdWMzNTFcdWMzNTJcdWMzNTNcdWMzNTRcdWMzNTVcdWMzNTZcdWMzNTdcdWMzNThcdWMzNTlcdWMzNWFcdWMzNWJcdWMzNWNcdWMzNWRcdWMzNWVcdWMzNWZcdWMzNjBcdWMzNjFcdWMzNjJc'@; put 'dWMzNjNcdWMzNjRcdWMzNjVcdWMzNjZcdWMzNjdcdWMzNmFcdWMzNmJcdWMzNmRcdWMzNmVcdWMzNmZcdWMzNzFcdWMzNzNcdWMzNzRcdWMzNzVcdWMzNzZcdWMzNzdcdWMzN2FcdWMzN2JcdWMzN2VcdWMzN2ZcdWMzODBcdWMzODFcdWMzODJcdWMzODNcdWMzODVcdWMzODZcdWMzODdcdWMz'@; put 'ODlcdWMzOGFcdWMzOGJcdWMzOGRcdWMzOGVcdWMzOGZcdWMzOTBcdWMzOTFcdWMzOTJcdWMzOTNcdWMzOTRcdWMzOTVcdWMzOTZcdWMzOTdcdWMzOThcdWMzOTlcdWMzOWFcdWMzOWJcdWMzOWNcdWMzOWRcdWMzOWVcdWMzOWZcdWMzYTBcdWMzYTFcdWMzYTJcdWMzYTNcdWMzYTRcdWMzYTVc'@; put 'dWMzYTZcdWMzYTdcdWMzYThcdWMzYTlcdWMzYWFcdWMzYWJcdWMzYWNcdWMzYWRcdWMzYWVcdWMzYWZcdWMzYjBcdWMzYjFcdWMzYjJcdWMzYjNcdWMzYjRcdWMzYjVcdWMzYjZcdWMzYjdcdWMzYjhcdWMzYjlcdWMzYmFcdWMzYmJcdWMzYmNcdWMzYmRcdWMzYmVcdWMzYmZcdWMzYzFcdWMz'@; put 'YzJcdWMzYzNcdWMzYzRcdWMzYzVcdWMzYzZcdWMzYzdcdWMzYzhcdWMzYzlcdWMzY2FcdWMzY2JcdWMzY2NcdWMzY2RcdWMzY2VcdWMzY2ZcdWMzZDBcdWMzZDFcdWMzZDJcdWMzZDNcdWMzZDRcdWMzZDVcdWMzZDZcdWMzZDdcdWMzZGFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNTVd'@; put 'Lmxlbmd0aDsrK20pNjU1MzMhPT14WzE1NV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTU1XVttXV09Mzk2ODArbSxGWzM5NjgwK21dPXhbMTU1XVttXSk7Zm9yKHhbMTU2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVj'@; put 'M2RiXHVjM2RkXHVjM2RlXHVjM2UxXHVjM2UzXHVjM2U0XHVjM2U1XHVjM2U2XHVjM2U3XHVjM2VhXHVjM2ViXHVjM2VjXHVjM2VlXHVjM2VmXHVjM2YwXHVjM2YxXHVjM2YyXHVjM2YzXHVjM2Y2XHVjM2Y3XHVjM2Y5XHVjM2ZhXHVjM2ZiXHVjM2ZjXHVjM2ZkXHVjM2ZlXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjM2ZmXHVjNDAwXHVjNDAxXHVjNDAyXHVjNDAzXHVjNDA0XHVjNDA1XHVjNDA2XHVjNDA3XHVjNDA5XHVjNDBhXHVjNDBiXHVjNDBjXHVjNDBkXHVjNDBlXHVjNDBmXHVjNDExXHVjNDEyXHVjNDEzXHVjNDE0XHVjNDE1XHVjNDE2XHVjNDE3XHVj'@; put 'NDE4XHVjNDE5XHVjNDFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNDFiXHVjNDFjXHVjNDFkXHVjNDFlXHVjNDFmXHVjNDIwXHVjNDIxXHVjNDIyXHVjNDIzXHVjNDI1XHVjNDI2XHVjNDI3XHVjNDI4XHVjNDI5XHVjNDJhXHVjNDJiXHVjNDJkXHVjNDJlXHVjNDJm'@; put 'XHVjNDMxXHVjNDMyXHVjNDMzXHVjNDM1XHVjNDM2XHVjNDM3XHVjNDM4XHVjNDM5XHVjNDNhXHVjNDNiXHVjNDNlXHVjNDNmXHVjNDQwXHVjNDQxXHVjNDQyXHVjNDQzXHVjNDQ0XHVjNDQ1XHVjNDQ2XHVjNDQ3XHVjNDQ5XHVjNDRhXHVjNDRiXHVjNDRjXHVjNDRkXHVjNDRlXHVjNDRmXHVj'@; put 'NDUwXHVjNDUxXHVjNDUyXHVjNDUzXHVjNDU0XHVjNDU1XHVjNDU2XHVjNDU3XHVjNDU4XHVjNDU5XHVjNDVhXHVjNDViXHVjNDVjXHVjNDVkXHVjNDVlXHVjNDVmXHVjNDYwXHVjNDYxXHVjNDYyXHVjNDYzXHVjNDY2XHVjNDY3XHVjNDY5XHVjNDZhXHVjNDZiXHVjNDZkXHVjNDZlXHVjNDZm'@; put 'XHVjNDcwXHVjNDcxXHVjNDcyXHVjNDczXHVjNDc2XHVjNDc3XHVjNDc4XHVjNDdhXHVjNDdiXHVjNDdjXHVjNDdkXHVjNDdlXHVjNDdmXHVjNDgxXHVjNDgyXHVjNDgzXHVjNDg0XHVjNDg1XHVjNDg2XHVjNDg3XHVjNDg4XHVjNDg5XHVjNDhhXHVjNDhiXHVjNDhjXHVjNDhkXHVjNDhlXHVj'@; put 'NDhmXHVjNDkwXHVjNDkxXHVjNDkyXHVjNDkzXHVjNDk1XHVjNDk2XHVjNDk3XHVjNDk4XHVjNDk5XHVjNDlhXHVjNDliXHVjNDlkXHVjNDllXHVjNDlmXHVjNGEwXHVjNGExXHVjNGEyXHVjNGEzXHVjNGE0XHVjNGE1XHVjNGE2XHVjNGE3XHVjNGE4XHVjNGE5XHVmZmZkIi5zcGxpdCgiIiks'@; put 'bT0wO20hPXhbMTU2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1Nl1bbV1dPTM5OTM2K20sRlszOTkzNittXT14WzE1Nl1bbV0pO2Zvcih4WzE1N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1YzRhYVx1YzRhYlx1YzRhY1x1YzRhZFx1YzRhZVx1YzRhZlx1YzRiMFx1YzRiMVx1YzRiMlx1YzRiM1x1YzRiNFx1YzRiNVx1YzRiNlx1YzRiN1x1YzRiOVx1YzRiYVx1YzRiYlx1YzRiZFx1YzRiZVx1YzRiZlx1YzRjMFx1YzRjMVx1YzRjMlx1YzRjM1x1YzRjNFx1YzRj'@; put 'NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRjNlx1YzRjN1x1YzRjOFx1YzRjOVx1YzRjYVx1YzRjYlx1YzRjY1x1YzRjZFx1YzRjZVx1YzRjZlx1YzRkMFx1YzRkMVx1YzRkMlx1YzRkM1x1YzRkNFx1YzRkNVx1YzRkNlx1YzRkN1x1YzRkOFx1YzRkOVx1YzRkYVx1'@; put 'YzRkYlx1YzRkY1x1YzRkZFx1YzRkZVx1YzRkZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRlMFx1YzRlMVx1YzRlMlx1YzRlM1x1YzRlNFx1YzRlNVx1YzRlNlx1YzRlN1x1YzRlOFx1YzRlYVx1YzRlYlx1YzRlY1x1YzRlZFx1YzRlZVx1YzRlZlx1YzRmMlx1YzRm'@; put 'M1x1YzRmNVx1YzRmNlx1YzRmN1x1YzRmOVx1YzRmYlx1YzRmY1x1YzRmZFx1YzRmZVx1YzUwMlx1YzUwM1x1YzUwNFx1YzUwNVx1YzUwNlx1YzUwN1x1YzUwOFx1YzUwOVx1YzUwYVx1YzUwYlx1YzUwZFx1YzUwZVx1YzUwZlx1YzUxMVx1YzUxMlx1YzUxM1x1YzUxNVx1YzUxNlx1YzUxN1x1'@; put 'YzUxOFx1YzUxOVx1YzUxYVx1YzUxYlx1YzUxZFx1YzUxZVx1YzUxZlx1YzUyMFx1YzUyMVx1YzUyMlx1YzUyM1x1YzUyNFx1YzUyNVx1YzUyNlx1YzUyN1x1YzUyYVx1YzUyYlx1YzUyZFx1YzUyZVx1YzUyZlx1YzUzMVx1YzUzMlx1YzUzM1x1YzUzNFx1YzUzNVx1YzUzNlx1YzUzN1x1YzUz'@; put 'YVx1YzUzY1x1YzUzZVx1YzUzZlx1YzU0MFx1YzU0MVx1YzU0Mlx1YzU0M1x1YzU0Nlx1YzU0N1x1YzU0Ylx1YzU0Zlx1YzU1MFx1YzU1MVx1YzU1Mlx1YzU1Nlx1YzU1YVx1YzU1Ylx1YzU1Y1x1YzU1Zlx1YzU2Mlx1YzU2M1x1YzU2NVx1YzU2Nlx1YzU2N1x1YzU2OVx1YzU2YVx1YzU2Ylx1'@; put 'YzU2Y1x1YzU2ZFx1YzU2ZVx1YzU2Zlx1YzU3Mlx1YzU3Nlx1YzU3N1x1YzU3OFx1YzU3OVx1YzU3YVx1YzU3Ylx1YzU3ZVx1YzU3Zlx1YzU4MVx1YzU4Mlx1YzU4M1x1YzU4NVx1YzU4Nlx1YzU4OFx1YzU4OVx1YzU4YVx1YzU4Ylx1YzU4ZVx1YzU5MFx1YzU5Mlx1YzU5M1x1YzU5NFx1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLG09MDttIT14WzE1N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTU3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNTddW21dXT00MDE5MittLEZbNDAxOTIrbV09eFsxNTddW21dKTtmb3IoeFsxNThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1OTZcdWM1OTlcdWM1OWFcdWM1OWJcdWM1OWRcdWM1OWVcdWM1OWZcdWM1YTFcdWM1YTJcdWM1YTNcdWM1YTRcdWM1YTVcdWM1YTZcdWM1YTdcdWM1YThcdWM1YWFcdWM1YWJcdWM1YWNcdWM1YWRcdWM1YWVcdWM1YWZcdWM1YjBcdWM1YjFcdWM1'@; put 'YjJcdWM1YjNcdWM1YjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1YjdcdWM1YmFcdWM1YmZcdWM1YzBcdWM1YzFcdWM1YzJcdWM1YzNcdWM1Y2JcdWM1Y2RcdWM1Y2ZcdWM1ZDJcdWM1ZDNcdWM1ZDVcdWM1ZDZcdWM1ZDdcdWM1ZDlcdWM1ZGFcdWM1ZGJcdWM1ZGNc'@; put 'dWM1ZGRcdWM1ZGVcdWM1ZGZcdWM1ZTJcdWM1ZTRcdWM1ZTZcdWM1ZTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1ZThcdWM1ZTlcdWM1ZWFcdWM1ZWJcdWM1ZWZcdWM1ZjFcdWM1ZjJcdWM1ZjNcdWM1ZjVcdWM1ZjhcdWM1ZjlcdWM1ZmFcdWM1ZmJcdWM2MDJcdWM2'@; put 'MDNcdWM2MDRcdWM2MDlcdWM2MGFcdWM2MGJcdWM2MGRcdWM2MGVcdWM2MGZcdWM2MTFcdWM2MTJcdWM2MTNcdWM2MTRcdWM2MTVcdWM2MTZcdWM2MTdcdWM2MWFcdWM2MWRcdWM2MWVcdWM2MWZcdWM2MjBcdWM2MjFcdWM2MjJcdWM2MjNcdWM2MjZcdWM2MjdcdWM2MjlcdWM2MmFcdWM2MmJc'@; put 'dWM2MmZcdWM2MzFcdWM2MzJcdWM2MzZcdWM2MzhcdWM2M2FcdWM2M2NcdWM2M2RcdWM2M2VcdWM2M2ZcdWM2NDJcdWM2NDNcdWM2NDVcdWM2NDZcdWM2NDdcdWM2NDlcdWM2NGFcdWM2NGJcdWM2NGNcdWM2NGRcdWM2NGVcdWM2NGZcdWM2NTJcdWM2NTZcdWM2NTdcdWM2NThcdWM2NTlcdWM2'@; put 'NWFcdWM2NWJcdWM2NWVcdWM2NWZcdWM2NjFcdWM2NjJcdWM2NjNcdWM2NjRcdWM2NjVcdWM2NjZcdWM2NjdcdWM2NjhcdWM2NjlcdWM2NmFcdWM2NmJcdWM2NmRcdWM2NmVcdWM2NzBcdWM2NzJcdWM2NzNcdWM2NzRcdWM2NzVcdWM2NzZcdWM2NzdcdWM2N2FcdWM2N2JcdWM2N2RcdWM2N2Vc'@; put 'dWM2N2ZcdWM2ODFcdWM2ODJcdWM2ODNcdWM2ODRcdWM2ODVcdWM2ODZcdWM2ODdcdWM2OGFcdWM2OGNcdWM2OGVcdWM2OGZcdWM2OTBcdWM2OTFcdWM2OTJcdWM2OTNcdWM2OTZcdWM2OTdcdWM2OTlcdWM2OWFcdWM2OWJcdWM2OWRcdWM2OWVcdWM2OWZcdWM2YTBcdWM2YTFcdWM2YTJcdWM2'@; put 'YTNcdWM2YTZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNThdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE1OF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTU4XVttXV09NDA0NDgrbSxGWzQwNDQ4K21dPXhbMTU4XVttXSk7Zm9yKHhbMTU5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmE4XHVjNmFhXHVjNmFiXHVjNmFjXHVjNmFkXHVjNmFlXHVjNmFmXHVjNmIyXHVjNmIzXHVjNmI1XHVjNmI2XHVjNmI3XHVjNmJiXHVjNmJjXHVjNmJkXHVjNmJlXHVjNmJmXHVjNmMyXHVjNmM0XHVjNmM2XHVjNmM3XHVj'@; put 'NmM4XHVjNmM5XHVjNmNhXHVjNmNiXHVjNmNlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmNmXHVjNmQxXHVjNmQyXHVjNmQzXHVjNmQ1XHVjNmQ2XHVjNmQ3XHVjNmQ4XHVjNmQ5XHVjNmRhXHVjNmRiXHVjNmRlXHVjNmRmXHVjNmUyXHVjNmUzXHVjNmU0XHVjNmU1'@; put 'XHVjNmU2XHVjNmU3XHVjNmVhXHVjNmViXHVjNmVkXHVjNmVlXHVjNmVmXHVjNmYxXHVjNmYyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmYzXHVjNmY0XHVjNmY1XHVjNmY2XHVjNmY3XHVjNmZhXHVjNmZiXHVjNmZjXHVjNmZlXHVjNmZmXHVjNzAwXHVjNzAxXHVj'@; put 'NzAyXHVjNzAzXHVjNzA2XHVjNzA3XHVjNzA5XHVjNzBhXHVjNzBiXHVjNzBkXHVjNzBlXHVjNzBmXHVjNzEwXHVjNzExXHVjNzEyXHVjNzEzXHVjNzE2XHVjNzE4XHVjNzFhXHVjNzFiXHVjNzFjXHVjNzFkXHVjNzFlXHVjNzFmXHVjNzIyXHVjNzIzXHVjNzI1XHVjNzI2XHVjNzI3XHVjNzI5'@; put 'XHVjNzJhXHVjNzJiXHVjNzJjXHVjNzJkXHVjNzJlXHVjNzJmXHVjNzMyXHVjNzM0XHVjNzM2XHVjNzM4XHVjNzM5XHVjNzNhXHVjNzNiXHVjNzNlXHVjNzNmXHVjNzQxXHVjNzQyXHVjNzQzXHVjNzQ1XHVjNzQ2XHVjNzQ3XHVjNzQ4XHVjNzQ5XHVjNzRiXHVjNzRlXHVjNzUwXHVjNzU5XHVj'@; put 'NzVhXHVjNzViXHVjNzVkXHVjNzVlXHVjNzVmXHVjNzYxXHVjNzYyXHVjNzYzXHVjNzY0XHVjNzY1XHVjNzY2XHVjNzY3XHVjNzY5XHVjNzZhXHVjNzZjXHVjNzZkXHVjNzZlXHVjNzZmXHVjNzcwXHVjNzcxXHVjNzcyXHVjNzczXHVjNzc2XHVjNzc3XHVjNzc5XHVjNzdhXHVjNzdiXHVjNzdm'@; put 'XHVjNzgwXHVjNzgxXHVjNzgyXHVjNzg2XHVjNzhiXHVjNzhjXHVjNzhkXHVjNzhmXHVjNzkyXHVjNzkzXHVjNzk1XHVjNzk5XHVjNzliXHVjNzljXHVjNzlkXHVjNzllXHVjNzlmXHVjN2EyXHVjN2E3XHVjN2E4XHVjN2E5XHVjN2FhXHVjN2FiXHVjN2FlXHVjN2FmXHVjN2IxXHVjN2IyXHVj'@; put 'N2IzXHVjN2I1XHVjN2I2XHVjN2I3XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTU5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNTldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE1OV1bbV1dPTQwNzA0K20sRls0MDcwNCttXT14WzE1OV1bbV0pO2Zvcih4WzE2MF09Ilx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdiOFx1YzdiOVx1YzdiYVx1YzdiYlx1YzdiZVx1YzdjMlx1YzdjM1x1YzdjNFx1YzdjNVx1YzdjNlx1YzdjN1x1YzdjYVx1YzdjYlx1YzdjZFx1YzdjZlx1YzdkMVx1YzdkMlx1YzdkM1x1YzdkNFx1'@; put 'YzdkNVx1YzdkNlx1YzdkN1x1YzdkOVx1YzdkYVx1YzdkYlx1YzdkY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdkZVx1YzdkZlx1YzdlMFx1YzdlMVx1YzdlMlx1YzdlM1x1YzdlNVx1YzdlNlx1YzdlN1x1YzdlOVx1YzdlYVx1YzdlYlx1YzdlZFx1YzdlZVx1Yzdl'@; put 'Zlx1YzdmMFx1YzdmMVx1YzdmMlx1YzdmM1x1YzdmNFx1YzdmNVx1YzdmNlx1YzdmN1x1YzdmOFx1YzdmOVx1YzdmYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdmYlx1YzdmY1x1YzdmZFx1YzdmZVx1YzdmZlx1YzgwMlx1YzgwM1x1YzgwNVx1YzgwNlx1YzgwN1x1'@; put 'YzgwOVx1YzgwYlx1YzgwY1x1YzgwZFx1YzgwZVx1YzgwZlx1YzgxMlx1YzgxNFx1YzgxN1x1YzgxOFx1YzgxOVx1YzgxYVx1YzgxYlx1YzgxZVx1YzgxZlx1YzgyMVx1YzgyMlx1YzgyM1x1YzgyNVx1YzgyNlx1YzgyN1x1YzgyOFx1YzgyOVx1YzgyYVx1YzgyYlx1YzgyZVx1YzgzMFx1Yzgz'@; put 'Mlx1YzgzM1x1YzgzNFx1YzgzNVx1YzgzNlx1YzgzN1x1YzgzOVx1YzgzYVx1YzgzYlx1YzgzZFx1YzgzZVx1YzgzZlx1Yzg0MVx1Yzg0Mlx1Yzg0M1x1Yzg0NFx1Yzg0NVx1Yzg0Nlx1Yzg0N1x1Yzg0YVx1Yzg0Ylx1Yzg0ZVx1Yzg0Zlx1Yzg1MFx1Yzg1MVx1Yzg1Mlx1Yzg1M1x1Yzg1NVx1'@; put 'Yzg1Nlx1Yzg1N1x1Yzg1OFx1Yzg1OVx1Yzg1YVx1Yzg1Ylx1Yzg1Y1x1Yzg1ZFx1Yzg1ZVx1Yzg1Zlx1Yzg2MFx1Yzg2MVx1Yzg2Mlx1Yzg2M1x1Yzg2NFx1Yzg2NVx1Yzg2Nlx1Yzg2N1x1Yzg2OFx1Yzg2OVx1Yzg2YVx1Yzg2Ylx1Yzg2Y1x1Yzg2ZFx1Yzg2ZVx1Yzg2Zlx1Yzg3Mlx1Yzg3'@; put 'M1x1Yzg3NVx1Yzg3Nlx1Yzg3N1x1Yzg3OVx1Yzg3Ylx1Yzg3Y1x1Yzg3ZFx1Yzg3ZVx1Yzg3Zlx1Yzg4Mlx1Yzg4NFx1Yzg4OFx1Yzg4OVx1Yzg4YVx1Yzg4ZVx1Yzg4Zlx1Yzg5MFx1Yzg5MVx1Yzg5Mlx1Yzg5M1x1Yzg5NVx1Yzg5Nlx1Yzg5N1x1Yzg5OFx1Yzg5OVx1Yzg5YVx1Yzg5Ylx1'@; put 'Yzg5Y1x1Yzg5ZVx1YzhhMFx1YzhhMlx1YzhhM1x1YzhhNFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTYwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjBdW21dXT00MDk2MCttLEZbNDA5NjArbV09eFsxNjBdW21dKTtmb3IoeFsxNjFd'@; put 'PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4YTVcdWM4YTZcdWM4YTdcdWM4YTlcdWM4YWFcdWM4YWJcdWM4YWNcdWM4YWRcdWM4YWVcdWM4YWZcdWM4YjBcdWM4YjFcdWM4YjJcdWM4YjNcdWM4YjRcdWM4YjVcdWM4YjZc'@; put 'dWM4YjdcdWM4YjhcdWM4YjlcdWM4YmFcdWM4YmJcdWM4YmVcdWM4YmZcdWM4YzBcdWM4YzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4YzJcdWM4YzNcdWM4YzVcdWM4YzZcdWM4YzdcdWM4YzlcdWM4Y2FcdWM4Y2JcdWM4Y2RcdWM4Y2VcdWM4Y2ZcdWM4ZDBcdWM4'@; put 'ZDFcdWM4ZDJcdWM4ZDNcdWM4ZDZcdWM4ZDhcdWM4ZGFcdWM4ZGJcdWM4ZGNcdWM4ZGRcdWM4ZGVcdWM4ZGZcdWM4ZTJcdWM4ZTNcdWM4ZTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4ZTZcdWM4ZTdcdWM4ZThcdWM4ZTlcdWM4ZWFcdWM4ZWJcdWM4ZWNcdWM4ZWRc'@; put 'dWM4ZWVcdWM4ZWZcdWM4ZjBcdWM4ZjFcdWM4ZjJcdWM4ZjNcdWM4ZjRcdWM4ZjZcdWM4ZjdcdWM4ZjhcdWM4ZjlcdWM4ZmFcdWM4ZmJcdWM4ZmVcdWM4ZmZcdWM5MDFcdWM5MDJcdWM5MDNcdWM5MDdcdWM5MDhcdWM5MDlcdWM5MGFcdWM5MGJcdWM5MGVcdTMwMDBcdTMwMDFcdTMwMDJceGI3'@; put 'XHUyMDI1XHUyMDI2XHhhOFx1MzAwM1x4YWRcdTIwMTVcdTIyMjVcdWZmM2NcdTIyM2NcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDhcdTMwMDlcdTMwMGFcdTMwMGJcdTMwMGNcdTMwMGRcdTMwMGVcdTMwMGZcdTMwMTBcdTMwMTFceGIxXHhkN1x4ZjdcdTIyNjBc'@; put 'dTIyNjRcdTIyNjVcdTIyMWVcdTIyMzRceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHUyMTJiXHVmZmUwXHVmZmUxXHVmZmU1XHUyNjQyXHUyNjQwXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHhhN1x1MjAzYlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1'@; put 'MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjViZFx1MjViY1x1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MjE5NFx1MzAxM1x1MjI2YVx1MjI2Ylx1MjIxYVx1MjIzZFx1MjIxZFx1MjIzNVx1MjIyYlx1MjIyY1x1MjIwOFx1MjIwYlx1MjI4Nlx1MjI4N1x1MjI4Mlx1MjI4'@; put 'M1x1MjIyYVx1MjIyOVx1MjIyN1x1MjIyOFx1ZmZlMlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTYxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjFdW21dXT00MTIxNittLEZbNDEyMTYrbV09eFsxNjFdW21dKTtmb3IoeFsxNjJdPSJc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5MTBcdWM5MTJcdWM5MTNcdWM5MTRcdWM5MTVcdWM5MTZcdWM5MTdcdWM5MTlcdWM5MWFcdWM5MWJcdWM5MWNcdWM5MWRcdWM5MWVcdWM5MWZcdWM5MjBcdWM5MjFcdWM5MjJcdWM5'@; put 'MjNcdWM5MjRcdWM5MjVcdWM5MjZcdWM5MjdcdWM5MjhcdWM5MjlcdWM5MmFcdWM5MmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5MmRcdWM5MmVcdWM5MmZcdWM5MzBcdWM5MzFcdWM5MzJcdWM5MzNcdWM5MzVcdWM5MzZcdWM5MzdcdWM5MzhcdWM5MzlcdWM5M2Fc'@; put 'dWM5M2JcdWM5M2NcdWM5M2RcdWM5M2VcdWM5M2ZcdWM5NDBcdWM5NDFcdWM5NDJcdWM5NDNcdWM5NDRcdWM5NDVcdWM5NDZcdWM5NDdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5NDhcdWM5NDlcdWM5NGFcdWM5NGJcdWM5NGNcdWM5NGRcdWM5NGVcdWM5NGZcdWM5'@; put 'NTJcdWM5NTNcdWM5NTVcdWM5NTZcdWM5NTdcdWM5NTlcdWM5NWFcdWM5NWJcdWM5NWNcdWM5NWRcdWM5NWVcdWM5NWZcdWM5NjJcdWM5NjRcdWM5NjVcdWM5NjZcdWM5NjdcdWM5NjhcdWM5NjlcdWM5NmFcdWM5NmJcdWM5NmRcdWM5NmVcdWM5NmZcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDNc'@; put 'eGI0XHVmZjVlXHUwMmM3XHUwMmQ4XHUwMmRkXHUwMmRhXHUwMmQ5XHhiOFx1MDJkYlx4YTFceGJmXHUwMmQwXHUyMjJlXHUyMjExXHUyMjBmXHhhNFx1MjEwOVx1MjAzMFx1MjVjMVx1MjVjMFx1MjViN1x1MjViNlx1MjY2NFx1MjY2MFx1MjY2MVx1MjY2NVx1MjY2N1x1MjY2M1x1MjI5OVx1'@; put 'MjVjOFx1MjVhM1x1MjVkMFx1MjVkMVx1MjU5Mlx1MjVhNFx1MjVhNVx1MjVhOFx1MjVhN1x1MjVhNlx1MjVhOVx1MjY2OFx1MjYwZlx1MjYwZVx1MjYxY1x1MjYxZVx4YjZcdTIwMjBcdTIwMjFcdTIxOTVcdTIxOTdcdTIxOTlcdTIxOTZcdTIxOThcdTI2NmRcdTI2NjlcdTI2NmFcdTI2NmNc'@; put 'dTMyN2ZcdTMyMWNcdTIxMTZcdTMzYzdcdTIxMjJcdTMzYzJcdTMzZDhcdTIxMjFcdTIwYWNceGFlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTYyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2Ml1bbV1dPTQxNDcyK20sRls0MTQ3MittXT14WzE2Ml1bbV0pO2Zvcih4WzE2M109Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk3MVx1Yzk3Mlx1Yzk3M1x1Yzk3NVx1Yzk3Nlx1Yzk3N1x1Yzk3OFx1Yzk3OVx1Yzk3YVx1Yzk3Ylx1Yzk3ZFx1Yzk3ZVx1Yzk3Zlx1Yzk4MFx1Yzk4MVx1Yzk4Mlx1Yzk4M1x1Yzk4'@; put 'NFx1Yzk4NVx1Yzk4Nlx1Yzk4N1x1Yzk4YVx1Yzk4Ylx1Yzk4ZFx1Yzk4ZVx1Yzk4Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk5MVx1Yzk5Mlx1Yzk5M1x1Yzk5NFx1Yzk5NVx1Yzk5Nlx1Yzk5N1x1Yzk5YVx1Yzk5Y1x1Yzk5ZVx1Yzk5Zlx1YzlhMFx1YzlhMVx1'@; put 'YzlhMlx1YzlhM1x1YzlhNFx1YzlhNVx1YzlhNlx1YzlhN1x1YzlhOFx1YzlhOVx1YzlhYVx1YzlhYlx1YzlhY1x1YzlhZFx1YzlhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzlhZlx1YzliMFx1YzliMVx1YzliMlx1YzliM1x1YzliNFx1YzliNVx1YzliNlx1Yzli'@; put 'N1x1YzliOFx1YzliOVx1YzliYVx1YzliYlx1YzliY1x1YzliZFx1YzliZVx1YzliZlx1YzljMlx1YzljM1x1YzljNVx1YzljNlx1YzljOVx1YzljYlx1YzljY1x1YzljZFx1YzljZVx1YzljZlx1YzlkMlx1YzlkNFx1YzlkN1x1YzlkOFx1YzlkYlx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmYwNFx1'@; put 'ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1ZmYxOVx1ZmYxYVx1ZmYxYlx1ZmYxY1x1ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYy'@; put 'MFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYzNFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1'@; put 'ZmZlNlx1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1'@; put 'N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTYzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjNdW21dXT00MTcyOCttLEZbNDE3MjgrbV09eFsxNjNdW21dKTtm'@; put 'b3IoeFsxNjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5ZGVcdWM5ZGZcdWM5ZTFcdWM5ZTNcdWM5ZTVcdWM5ZTZcdWM5ZThcdWM5ZTlcdWM5ZWFcdWM5ZWJcdWM5ZWVcdWM5ZjJcdWM5ZjNcdWM5ZjRcdWM5ZjVcdWM5'@; put 'ZjZcdWM5ZjdcdWM5ZmFcdWM5ZmJcdWM5ZmRcdWM5ZmVcdWM5ZmZcdWNhMDFcdWNhMDJcdWNhMDNcdWNhMDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhMDVcdWNhMDZcdWNhMDdcdWNhMGFcdWNhMGVcdWNhMGZcdWNhMTBcdWNhMTFcdWNhMTJcdWNhMTNcdWNhMTVc'@; put 'dWNhMTZcdWNhMTdcdWNhMTlcdWNhMWFcdWNhMWJcdWNhMWNcdWNhMWRcdWNhMWVcdWNhMWZcdWNhMjBcdWNhMjFcdWNhMjJcdWNhMjNcdWNhMjRcdWNhMjVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhMjZcdWNhMjdcdWNhMjhcdWNhMmFcdWNhMmJcdWNhMmNcdWNh'@; put 'MmRcdWNhMmVcdWNhMmZcdWNhMzBcdWNhMzFcdWNhMzJcdWNhMzNcdWNhMzRcdWNhMzVcdWNhMzZcdWNhMzdcdWNhMzhcdWNhMzlcdWNhM2FcdWNhM2JcdWNhM2NcdWNhM2RcdWNhM2VcdWNhM2ZcdWNhNDBcdWNhNDFcdWNhNDJcdWNhNDNcdWNhNDRcdWNhNDVcdWNhNDZcdTMxMzFcdTMxMzJc'@; put 'dTMxMzNcdTMxMzRcdTMxMzVcdTMxMzZcdTMxMzdcdTMxMzhcdTMxMzlcdTMxM2FcdTMxM2JcdTMxM2NcdTMxM2RcdTMxM2VcdTMxM2ZcdTMxNDBcdTMxNDFcdTMxNDJcdTMxNDNcdTMxNDRcdTMxNDVcdTMxNDZcdTMxNDdcdTMxNDhcdTMxNDlcdTMxNGFcdTMxNGJcdTMxNGNcdTMxNGRcdTMx'@; put 'NGVcdTMxNGZcdTMxNTBcdTMxNTFcdTMxNTJcdTMxNTNcdTMxNTRcdTMxNTVcdTMxNTZcdTMxNTdcdTMxNThcdTMxNTlcdTMxNWFcdTMxNWJcdTMxNWNcdTMxNWRcdTMxNWVcdTMxNWZcdTMxNjBcdTMxNjFcdTMxNjJcdTMxNjNcdTMxNjRcdTMxNjVcdTMxNjZcdTMxNjdcdTMxNjhcdTMxNjlc'@; put 'dTMxNmFcdTMxNmJcdTMxNmNcdTMxNmRcdTMxNmVcdTMxNmZcdTMxNzBcdTMxNzFcdTMxNzJcdTMxNzNcdTMxNzRcdTMxNzVcdTMxNzZcdTMxNzdcdTMxNzhcdTMxNzlcdTMxN2FcdTMxN2JcdTMxN2NcdTMxN2RcdTMxN2VcdTMxN2ZcdTMxODBcdTMxODFcdTMxODJcdTMxODNcdTMxODRcdTMx'@; put 'ODVcdTMxODZcdTMxODdcdTMxODhcdTMxODlcdTMxOGFcdTMxOGJcdTMxOGNcdTMxOGRcdTMxOGVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTY0XVttXV09NDE5ODQrbSxGWzQxOTg0K21d'@; put 'PXhbMTY0XVttXSk7Zm9yKHhbMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTQ3XHVjYTQ4XHVjYTQ5XHVjYTRhXHVjYTRiXHVjYTRlXHVjYTRmXHVjYTUxXHVjYTUyXHVjYTUzXHVjYTU1XHVjYTU2XHVjYTU3XHVj'@; put 'YTU4XHVjYTU5XHVjYTVhXHVjYTViXHVjYTVlXHVjYTYyXHVjYTYzXHVjYTY0XHVjYTY1XHVjYTY2XHVjYTY3XHVjYTY5XHVjYTZhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTZiXHVjYTZjXHVjYTZkXHVjYTZlXHVjYTZmXHVjYTcwXHVjYTcxXHVjYTcyXHVjYTcz'@; put 'XHVjYTc0XHVjYTc1XHVjYTc2XHVjYTc3XHVjYTc4XHVjYTc5XHVjYTdhXHVjYTdiXHVjYTdjXHVjYTdlXHVjYTdmXHVjYTgwXHVjYTgxXHVjYTgyXHVjYTgzXHVjYTg1XHVjYTg2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTg3XHVjYTg4XHVjYTg5XHVjYThhXHVj'@; put 'YThiXHVjYThjXHVjYThkXHVjYThlXHVjYThmXHVjYTkwXHVjYTkxXHVjYTkyXHVjYTkzXHVjYTk0XHVjYTk1XHVjYTk2XHVjYTk3XHVjYTk5XHVjYTlhXHVjYTliXHVjYTljXHVjYTlkXHVjYTllXHVjYTlmXHVjYWEwXHVjYWExXHVjYWEyXHVjYWEzXHVjYWE0XHVjYWE1XHVjYWE2XHVjYWE3'@; put 'XHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4'@; put 'XHUwM2E5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUw'@; put 'M2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTY1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2NV1bbV1dPTQyMjQw'@; put 'K20sRls0MjI0MCttXT14WzE2NV1bbV0pO2Zvcih4WzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FhOFx1Y2FhOVx1Y2FhYVx1Y2FhYlx1Y2FhY1x1Y2FhZFx1Y2FhZVx1Y2FhZlx1Y2FiMFx1Y2FiMVx1Y2FiMlx1'@; put 'Y2FiM1x1Y2FiNFx1Y2FiNVx1Y2FiNlx1Y2FiN1x1Y2FiOFx1Y2FiOVx1Y2FiYVx1Y2FiYlx1Y2FiZVx1Y2FiZlx1Y2FjMVx1Y2FjMlx1Y2FjM1x1Y2FjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FjNlx1Y2FjN1x1Y2FjOFx1Y2FjOVx1Y2FjYVx1Y2FjYlx1Y2Fj'@; put 'ZVx1Y2FkMFx1Y2FkMlx1Y2FkNFx1Y2FkNVx1Y2FkNlx1Y2FkN1x1Y2FkYVx1Y2FkYlx1Y2FkY1x1Y2FkZFx1Y2FkZVx1Y2FkZlx1Y2FlMVx1Y2FlMlx1Y2FlM1x1Y2FlNFx1Y2FlNVx1Y2FlNlx1Y2FlN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FlOFx1Y2FlOVx1'@; put 'Y2FlYVx1Y2FlYlx1Y2FlZFx1Y2FlZVx1Y2FlZlx1Y2FmMFx1Y2FmMVx1Y2FmMlx1Y2FmM1x1Y2FmNVx1Y2FmNlx1Y2FmN1x1Y2FmOFx1Y2FmOVx1Y2FmYVx1Y2FmYlx1Y2FmY1x1Y2FmZFx1Y2FmZVx1Y2FmZlx1Y2IwMFx1Y2IwMVx1Y2IwMlx1Y2IwM1x1Y2IwNFx1Y2IwNVx1Y2IwNlx1Y2Iw'@; put 'N1x1Y2IwOVx1Y2IwYVx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1'@; put 'MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1MjUxMlx1MjUxMVx1MjUxYVx1MjUxOVx1MjUxNlx1MjUxNVx1MjUwZVx1MjUwZFx1MjUxZVx1MjUxZlx1MjUyMVx1MjUyMlx1MjUyNlx1MjUyN1x1MjUyOVx1MjUyYVx1MjUyZFx1MjUyZVx1MjUzMVx1MjUzMlx1MjUz'@; put 'NVx1MjUzNlx1MjUzOVx1MjUzYVx1MjUzZFx1MjUzZVx1MjU0MFx1MjU0MVx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0N1x1MjU0OFx1MjU0OVx1MjU0YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTY2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsx'@; put 'NjZdW21dXT00MjQ5NittLEZbNDI0OTYrbV09eFsxNjZdW21dKTtmb3IoeFsxNjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiMGJcdWNiMGNcdWNiMGRcdWNiMGVcdWNiMGZcdWNiMTFcdWNiMTJcdWNiMTNcdWNiMTVc'@; put 'dWNiMTZcdWNiMTdcdWNiMTlcdWNiMWFcdWNiMWJcdWNiMWNcdWNiMWRcdWNiMWVcdWNiMWZcdWNiMjJcdWNiMjNcdWNiMjRcdWNiMjVcdWNiMjZcdWNiMjdcdWNiMjhcdWNiMjlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiMmFcdWNiMmJcdWNiMmNcdWNiMmRcdWNi'@; put 'MmVcdWNiMmZcdWNiMzBcdWNiMzFcdWNiMzJcdWNiMzNcdWNiMzRcdWNiMzVcdWNiMzZcdWNiMzdcdWNiMzhcdWNiMzlcdWNiM2FcdWNiM2JcdWNiM2NcdWNiM2RcdWNiM2VcdWNiM2ZcdWNiNDBcdWNiNDJcdWNiNDNcdWNiNDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWNiNDVcdWNiNDZcdWNiNDdcdWNiNGFcdWNiNGJcdWNiNGRcdWNiNGVcdWNiNGZcdWNiNTFcdWNiNTJcdWNiNTNcdWNiNTRcdWNiNTVcdWNiNTZcdWNiNTdcdWNiNWFcdWNiNWJcdWNiNWNcdWNiNWVcdWNiNWZcdWNiNjBcdWNiNjFcdWNiNjJcdWNiNjNcdWNiNjVcdWNiNjZcdWNiNjdcdWNi'@; put 'NjhcdWNiNjlcdWNiNmFcdWNiNmJcdWNiNmNcdTMzOTVcdTMzOTZcdTMzOTdcdTIxMTNcdTMzOThcdTMzYzRcdTMzYTNcdTMzYTRcdTMzYTVcdTMzYTZcdTMzOTlcdTMzOWFcdTMzOWJcdTMzOWNcdTMzOWRcdTMzOWVcdTMzOWZcdTMzYTBcdTMzYTFcdTMzYTJcdTMzY2FcdTMzOGRcdTMzOGVc'@; put 'dTMzOGZcdTMzY2ZcdTMzODhcdTMzODlcdTMzYzhcdTMzYTdcdTMzYThcdTMzYjBcdTMzYjFcdTMzYjJcdTMzYjNcdTMzYjRcdTMzYjVcdTMzYjZcdTMzYjdcdTMzYjhcdTMzYjlcdTMzODBcdTMzODFcdTMzODJcdTMzODNcdTMzODRcdTMzYmFcdTMzYmJcdTMzYmNcdTMzYmRcdTMzYmVcdTMz'@; put 'YmZcdTMzOTBcdTMzOTFcdTMzOTJcdTMzOTNcdTMzOTRcdTIxMjZcdTMzYzBcdTMzYzFcdTMzOGFcdTMzOGJcdTMzOGNcdTMzZDZcdTMzYzVcdTMzYWRcdTMzYWVcdTMzYWZcdTMzZGJcdTMzYTlcdTMzYWFcdTMzYWJcdTMzYWNcdTMzZGRcdTMzZDBcdTMzZDNcdTMzYzNcdTMzYzlcdTMzZGNc'@; put 'dTMzYzZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjddLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2N11bbV0uY2hhckNvZGVB'@; put 'dCgwKSYmKGFlW3hbMTY3XVttXV09NDI3NTIrbSxGWzQyNzUyK21dPXhbMTY3XVttXSk7Zm9yKHhbMTY4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYjZkXHVjYjZlXHVjYjZmXHVjYjcwXHVjYjcxXHVjYjcyXHVjYjcz'@; put 'XHVjYjc0XHVjYjc1XHVjYjc2XHVjYjc3XHVjYjdhXHVjYjdiXHVjYjdjXHVjYjdkXHVjYjdlXHVjYjdmXHVjYjgwXHVjYjgxXHVjYjgyXHVjYjgzXHVjYjg0XHVjYjg1XHVjYjg2XHVjYjg3XHVjYjg4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYjg5XHVjYjhhXHVj'@; put 'YjhiXHVjYjhjXHVjYjhkXHVjYjhlXHVjYjhmXHVjYjkwXHVjYjkxXHVjYjkyXHVjYjkzXHVjYjk0XHVjYjk1XHVjYjk2XHVjYjk3XHVjYjk4XHVjYjk5XHVjYjlhXHVjYjliXHVjYjlkXHVjYjllXHVjYjlmXHVjYmEwXHVjYmExXHVjYmEyXHVjYmEzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVjYmE0XHVjYmE1XHVjYmE2XHVjYmE3XHVjYmE4XHVjYmE5XHVjYmFhXHVjYmFiXHVjYmFjXHVjYmFkXHVjYmFlXHVjYmFmXHVjYmIwXHVjYmIxXHVjYmIyXHVjYmIzXHVjYmI0XHVjYmI1XHVjYmI2XHVjYmI3XHVjYmI5XHVjYmJhXHVjYmJiXHVjYmJjXHVjYmJkXHVj'@; put 'YmJlXHVjYmJmXHVjYmMwXHVjYmMxXHVjYmMyXHVjYmMzXHVjYmM0XHhjNlx4ZDBceGFhXHUwMTI2XHVmZmZkXHUwMTMyXHVmZmZkXHUwMTNmXHUwMTQxXHhkOFx1MDE1Mlx4YmFceGRlXHUwMTY2XHUwMTRhXHVmZmZkXHUzMjYwXHUzMjYxXHUzMjYyXHUzMjYzXHUzMjY0XHUzMjY1XHUzMjY2'@; put 'XHUzMjY3XHUzMjY4XHUzMjY5XHUzMjZhXHUzMjZiXHUzMjZjXHUzMjZkXHUzMjZlXHUzMjZmXHUzMjcwXHUzMjcxXHUzMjcyXHUzMjczXHUzMjc0XHUzMjc1XHUzMjc2XHUzMjc3XHUzMjc4XHUzMjc5XHUzMjdhXHUzMjdiXHUyNGQwXHUyNGQxXHUyNGQyXHUyNGQzXHUyNGQ0XHUyNGQ1XHUy'@; put 'NGQ2XHUyNGQ3XHUyNGQ4XHUyNGQ5XHUyNGRhXHUyNGRiXHUyNGRjXHUyNGRkXHUyNGRlXHUyNGRmXHUyNGUwXHUyNGUxXHUyNGUyXHUyNGUzXHUyNGU0XHUyNGU1XHUyNGU2XHUyNGU3XHUyNGU4XHUyNGU5XHUyNDYwXHUyNDYxXHUyNDYyXHUyNDYzXHUyNDY0XHUyNDY1XHUyNDY2XHUyNDY3'@; put 'XHUyNDY4XHUyNDY5XHUyNDZhXHUyNDZiXHUyNDZjXHUyNDZkXHUyNDZlXHhiZFx1MjE1M1x1MjE1NFx4YmNceGJlXHUyMTViXHUyMTVjXHUyMTVkXHUyMTVlXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTY4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjhdW21dLmNoYXJDb2RlQXQoMCkm'@; put 'JihhZVt4WzE2OF1bbV1dPTQzMDA4K20sRls0MzAwOCttXT14WzE2OF1bbV0pO2Zvcih4WzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JjNVx1Y2JjNlx1Y2JjN1x1Y2JjOFx1Y2JjOVx1Y2JjYVx1Y2JjYlx1Y2Jj'@; put 'Y1x1Y2JjZFx1Y2JjZVx1Y2JjZlx1Y2JkMFx1Y2JkMVx1Y2JkMlx1Y2JkM1x1Y2JkNVx1Y2JkNlx1Y2JkN1x1Y2JkOFx1Y2JkOVx1Y2JkYVx1Y2JkYlx1Y2JkY1x1Y2JkZFx1Y2JkZVx1Y2JkZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JlMFx1Y2JlMVx1Y2JlMlx1'@; put 'Y2JlM1x1Y2JlNVx1Y2JlNlx1Y2JlOFx1Y2JlYVx1Y2JlYlx1Y2JlY1x1Y2JlZFx1Y2JlZVx1Y2JlZlx1Y2JmMFx1Y2JmMVx1Y2JmMlx1Y2JmM1x1Y2JmNFx1Y2JmNVx1Y2JmNlx1Y2JmN1x1Y2JmOFx1Y2JmOVx1Y2JmYVx1Y2JmYlx1Y2JmY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1Y2JmZFx1Y2JmZVx1Y2JmZlx1Y2MwMFx1Y2MwMVx1Y2MwMlx1Y2MwM1x1Y2MwNFx1Y2MwNVx1Y2MwNlx1Y2MwN1x1Y2MwOFx1Y2MwOVx1Y2MwYVx1Y2MwYlx1Y2MwZVx1Y2MwZlx1Y2MxMVx1Y2MxMlx1Y2MxM1x1Y2MxNVx1Y2MxNlx1Y2MxN1x1Y2MxOFx1Y2MxOVx1Y2MxYVx1'@; put 'Y2MxYlx1Y2MxZVx1Y2MxZlx1Y2MyMFx1Y2MyM1x1Y2MyNFx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHhmOFx1MDE1M1x4ZGZceGZlXHUwMTY3XHUwMTRiXHUwMTQ5XHUzMjAwXHUzMjAxXHUzMjAyXHUzMjAzXHUzMjA0XHUzMjA1XHUzMjA2XHUz'@; put 'MjA3XHUzMjA4XHUzMjA5XHUzMjBhXHUzMjBiXHUzMjBjXHUzMjBkXHUzMjBlXHUzMjBmXHUzMjEwXHUzMjExXHUzMjEyXHUzMjEzXHUzMjE0XHUzMjE1XHUzMjE2XHUzMjE3XHUzMjE4XHUzMjE5XHUzMjFhXHUzMjFiXHUyNDljXHUyNDlkXHUyNDllXHUyNDlmXHUyNGEwXHUyNGExXHUyNGEy'@; put 'XHUyNGEzXHUyNGE0XHUyNGE1XHUyNGE2XHUyNGE3XHUyNGE4XHUyNGE5XHUyNGFhXHUyNGFiXHUyNGFjXHUyNGFkXHUyNGFlXHUyNGFmXHUyNGIwXHUyNGIxXHUyNGIyXHUyNGIzXHUyNGI0XHUyNGI1XHUyNDc0XHUyNDc1XHUyNDc2XHUyNDc3XHUyNDc4XHUyNDc5XHUyNDdhXHUyNDdiXHUy'@; put 'NDdjXHUyNDdkXHUyNDdlXHUyNDdmXHUyNDgwXHUyNDgxXHUyNDgyXHhiOVx4YjJceGIzXHUyMDc0XHUyMDdmXHUyMDgxXHUyMDgyXHUyMDgzXHUyMDg0XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTY5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjldW21dLmNoYXJDb2RlQXQoMCkmJihh'@; put 'ZVt4WzE2OV1bbV1dPTQzMjY0K20sRls0MzI2NCttXT14WzE2OV1bbV0pO2Zvcih4WzE3MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2MyNVx1Y2MyNlx1Y2MyYVx1Y2MyYlx1Y2MyZFx1Y2MyZlx1Y2MzMVx1Y2MzMlx1'@; put 'Y2MzM1x1Y2MzNFx1Y2MzNVx1Y2MzNlx1Y2MzN1x1Y2MzYVx1Y2MzZlx1Y2M0MFx1Y2M0MVx1Y2M0Mlx1Y2M0M1x1Y2M0Nlx1Y2M0N1x1Y2M0OVx1Y2M0YVx1Y2M0Ylx1Y2M0ZFx1Y2M0ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2M0Zlx1Y2M1MFx1Y2M1MVx1Y2M1'@; put 'Mlx1Y2M1M1x1Y2M1Nlx1Y2M1YVx1Y2M1Ylx1Y2M1Y1x1Y2M1ZFx1Y2M1ZVx1Y2M1Zlx1Y2M2MVx1Y2M2Mlx1Y2M2M1x1Y2M2NVx1Y2M2N1x1Y2M2OVx1Y2M2YVx1Y2M2Ylx1Y2M2Y1x1Y2M2ZFx1Y2M2ZVx1Y2M2Zlx1Y2M3MVx1Y2M3Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1Y2M3M1x1Y2M3NFx1Y2M3Nlx1Y2M3N1x1Y2M3OFx1Y2M3OVx1Y2M3YVx1Y2M3Ylx1Y2M3Y1x1Y2M3ZFx1Y2M3ZVx1Y2M3Zlx1Y2M4MFx1Y2M4MVx1Y2M4Mlx1Y2M4M1x1Y2M4NFx1Y2M4NVx1Y2M4Nlx1Y2M4N1x1Y2M4OFx1Y2M4OVx1Y2M4YVx1Y2M4Ylx1Y2M4Y1x1Y2M4ZFx1Y2M4'@; put 'ZVx1Y2M4Zlx1Y2M5MFx1Y2M5MVx1Y2M5Mlx1Y2M5M1x1MzA0MVx1MzA0Mlx1MzA0M1x1MzA0NFx1MzA0NVx1MzA0Nlx1MzA0N1x1MzA0OFx1MzA0OVx1MzA0YVx1MzA0Ylx1MzA0Y1x1MzA0ZFx1MzA0ZVx1MzA0Zlx1MzA1MFx1MzA1MVx1MzA1Mlx1MzA1M1x1MzA1NFx1MzA1NVx1MzA1Nlx1'@; put 'MzA1N1x1MzA1OFx1MzA1OVx1MzA1YVx1MzA1Ylx1MzA1Y1x1MzA1ZFx1MzA1ZVx1MzA1Zlx1MzA2MFx1MzA2MVx1MzA2Mlx1MzA2M1x1MzA2NFx1MzA2NVx1MzA2Nlx1MzA2N1x1MzA2OFx1MzA2OVx1MzA2YVx1MzA2Ylx1MzA2Y1x1MzA2ZFx1MzA2ZVx1MzA2Zlx1MzA3MFx1MzA3MVx1MzA3'@; put 'Mlx1MzA3M1x1MzA3NFx1MzA3NVx1MzA3Nlx1MzA3N1x1MzA3OFx1MzA3OVx1MzA3YVx1MzA3Ylx1MzA3Y1x1MzA3ZFx1MzA3ZVx1MzA3Zlx1MzA4MFx1MzA4MVx1MzA4Mlx1MzA4M1x1MzA4NFx1MzA4NVx1MzA4Nlx1MzA4N1x1MzA4OFx1MzA4OVx1MzA4YVx1MzA4Ylx1MzA4Y1x1MzA4ZFx1'@; put 'MzA4ZVx1MzA4Zlx1MzA5MFx1MzA5MVx1MzA5Mlx1MzA5M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTcwXVttXS5jaGFy'@; put 'Q29kZUF0KDApJiYoYWVbeFsxNzBdW21dXT00MzUyMCttLEZbNDM1MjArbV09eFsxNzBdW21dKTtmb3IoeFsxNzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjOTRcdWNjOTVcdWNjOTZcdWNjOTdcdWNjOWFcdWNjOWJc'@; put 'dWNjOWRcdWNjOWVcdWNjOWZcdWNjYTFcdWNjYTJcdWNjYTNcdWNjYTRcdWNjYTVcdWNjYTZcdWNjYTdcdWNjYWFcdWNjYWVcdWNjYWZcdWNjYjBcdWNjYjFcdWNjYjJcdWNjYjNcdWNjYjZcdWNjYjdcdWNjYjlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjYmFcdWNj'@; put 'YmJcdWNjYmRcdWNjYmVcdWNjYmZcdWNjYzBcdWNjYzFcdWNjYzJcdWNjYzNcdWNjYzZcdWNjYzhcdWNjY2FcdWNjY2JcdWNjY2NcdWNjY2RcdWNjY2VcdWNjY2ZcdWNjZDFcdWNjZDJcdWNjZDNcdWNjZDVcdWNjZDZcdWNjZDdcdWNjZDhcdWNjZDlcdWNjZGFcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWNjZGJcdWNjZGNcdWNjZGRcdWNjZGVcdWNjZGZcdWNjZTBcdWNjZTFcdWNjZTJcdWNjZTNcdWNjZTVcdWNjZTZcdWNjZTdcdWNjZThcdWNjZTlcdWNjZWFcdWNjZWJcdWNjZWRcdWNjZWVcdWNjZWZcdWNjZjFcdWNjZjJcdWNjZjNcdWNjZjRcdWNjZjVcdWNj'@; put 'ZjZcdWNjZjdcdWNjZjhcdWNjZjlcdWNjZmFcdWNjZmJcdWNjZmNcdWNjZmRcdTMwYTFcdTMwYTJcdTMwYTNcdTMwYTRcdTMwYTVcdTMwYTZcdTMwYTdcdTMwYThcdTMwYTlcdTMwYWFcdTMwYWJcdTMwYWNcdTMwYWRcdTMwYWVcdTMwYWZcdTMwYjBcdTMwYjFcdTMwYjJcdTMwYjNcdTMwYjRc'@; put 'dTMwYjVcdTMwYjZcdTMwYjdcdTMwYjhcdTMwYjlcdTMwYmFcdTMwYmJcdTMwYmNcdTMwYmRcdTMwYmVcdTMwYmZcdTMwYzBcdTMwYzFcdTMwYzJcdTMwYzNcdTMwYzRcdTMwYzVcdTMwYzZcdTMwYzdcdTMwYzhcdTMwYzlcdTMwY2FcdTMwY2JcdTMwY2NcdTMwY2RcdTMwY2VcdTMwY2ZcdTMw'@; put 'ZDBcdTMwZDFcdTMwZDJcdTMwZDNcdTMwZDRcdTMwZDVcdTMwZDZcdTMwZDdcdTMwZDhcdTMwZDlcdTMwZGFcdTMwZGJcdTMwZGNcdTMwZGRcdTMwZGVcdTMwZGZcdTMwZTBcdTMwZTFcdTMwZTJcdTMwZTNcdTMwZTRcdTMwZTVcdTMwZTZcdTMwZTdcdTMwZThcdTMwZTlcdTMwZWFcdTMwZWJc'@; put 'dTMwZWNcdTMwZWRcdTMwZWVcdTMwZWZcdTMwZjBcdTMwZjFcdTMwZjJcdTMwZjNcdTMwZjRcdTMwZjVcdTMwZjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzFdLmxlbmd0aDsrK20pNjU1MzMhPT14'@; put 'WzE3MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTcxXVttXV09NDM3NzYrbSxGWzQzNzc2K21dPXhbMTcxXVttXSk7Zm9yKHhbMTcyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjY2ZlXHVjY2ZmXHVjZDAwXHVjZDAy'@; put 'XHVjZDAzXHVjZDA0XHVjZDA1XHVjZDA2XHVjZDA3XHVjZDBhXHVjZDBiXHVjZDBkXHVjZDBlXHVjZDBmXHVjZDExXHVjZDEyXHVjZDEzXHVjZDE0XHVjZDE1XHVjZDE2XHVjZDE3XHVjZDFhXHVjZDFjXHVjZDFlXHVjZDFmXHVjZDIwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVjZDIxXHVjZDIyXHVjZDIzXHVjZDI1XHVjZDI2XHVjZDI3XHVjZDI5XHVjZDJhXHVjZDJiXHVjZDJkXHVjZDJlXHVjZDJmXHVjZDMwXHVjZDMxXHVjZDMyXHVjZDMzXHVjZDM0XHVjZDM1XHVjZDM2XHVjZDM3XHVjZDM4XHVjZDNhXHVjZDNiXHVjZDNjXHVjZDNkXHVjZDNlXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDNmXHVjZDQwXHVjZDQxXHVjZDQyXHVjZDQzXHVjZDQ0XHVjZDQ1XHVjZDQ2XHVjZDQ3XHVjZDQ4XHVjZDQ5XHVjZDRhXHVjZDRiXHVjZDRjXHVjZDRkXHVjZDRlXHVjZDRmXHVjZDUwXHVjZDUxXHVjZDUyXHVjZDUzXHVjZDU0XHVj'@; put 'ZDU1XHVjZDU2XHVjZDU3XHVjZDU4XHVjZDU5XHVjZDVhXHVjZDViXHVjZDVkXHVjZDVlXHVjZDVmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIw'@; put 'XHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3'@; put 'XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTcyXS5sZW5ndGg7'@; put 'KyttKTY1NTMzIT09eFsxNzJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3Ml1bbV1dPTQ0MDMyK20sRls0NDAzMittXT14WzE3Ml1bbV0pO2Zvcih4WzE3M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2Q2MVx1Y2Q2'@; put 'Mlx1Y2Q2M1x1Y2Q2NVx1Y2Q2Nlx1Y2Q2N1x1Y2Q2OFx1Y2Q2OVx1Y2Q2YVx1Y2Q2Ylx1Y2Q2ZVx1Y2Q3MFx1Y2Q3Mlx1Y2Q3M1x1Y2Q3NFx1Y2Q3NVx1Y2Q3Nlx1Y2Q3N1x1Y2Q3OVx1Y2Q3YVx1Y2Q3Ylx1Y2Q3Y1x1Y2Q3ZFx1Y2Q3ZVx1Y2Q3Zlx1Y2Q4MFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2Q4MVx1Y2Q4Mlx1Y2Q4M1x1Y2Q4NFx1Y2Q4NVx1Y2Q4Nlx1Y2Q4N1x1Y2Q4OVx1Y2Q4YVx1Y2Q4Ylx1Y2Q4Y1x1Y2Q4ZFx1Y2Q4ZVx1Y2Q4Zlx1Y2Q5MFx1Y2Q5MVx1Y2Q5Mlx1Y2Q5M1x1Y2Q5Nlx1Y2Q5N1x1Y2Q5OVx1Y2Q5YVx1Y2Q5Ylx1Y2Q5ZFx1Y2Q5'@; put 'ZVx1Y2Q5Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2RhMFx1Y2RhMVx1Y2RhMlx1Y2RhM1x1Y2RhNlx1Y2RhOFx1Y2RhYVx1Y2RhYlx1Y2RhY1x1Y2RhZFx1Y2RhZVx1Y2RhZlx1Y2RiMVx1Y2RiMlx1Y2RiM1x1Y2RiNFx1Y2RiNVx1Y2RiNlx1Y2RiN1x1Y2RiOFx1'@; put 'Y2RiOVx1Y2RiYVx1Y2RiYlx1Y2RiY1x1Y2RiZFx1Y2RiZVx1Y2RiZlx1Y2RjMFx1Y2RjMVx1Y2RjMlx1Y2RjM1x1Y2RjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14'@; put 'WzE3M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTczXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzNdW21dXT00NDI4OCttLEZbNDQyODgrbV09eFsxNzNdW21dKTtmb3IoeFsxNzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWNkYzZcdWNkYzdcdWNkYzhcdWNkYzlcdWNkY2FcdWNkY2JcdWNkY2RcdWNkY2VcdWNkY2ZcdWNkZDFcdWNkZDJcdWNkZDNcdWNkZDRcdWNkZDVcdWNkZDZcdWNkZDdcdWNkZDhcdWNkZDlcdWNkZGFcdWNkZGJcdWNkZGNcdWNkZGRcdWNkZGVcdWNkZGZcdWNkZTBcdWNkZTFcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNkZTJcdWNkZTNcdWNkZTRcdWNkZTVcdWNkZTZcdWNkZTdcdWNkZTlcdWNkZWFcdWNkZWJcdWNkZWRcdWNkZWVcdWNkZWZcdWNkZjFcdWNkZjJcdWNkZjNcdWNkZjRcdWNkZjVcdWNkZjZcdWNkZjdcdWNkZmFcdWNkZmNcdWNkZmVcdWNk'@; put 'ZmZcdWNlMDBcdWNlMDFcdWNlMDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNlMDNcdWNlMDVcdWNlMDZcdWNlMDdcdWNlMDlcdWNlMGFcdWNlMGJcdWNlMGRcdWNlMGVcdWNlMGZcdWNlMTBcdWNlMTFcdWNlMTJcdWNlMTNcdWNlMTVcdWNlMTZcdWNlMTdcdWNlMThc'@; put 'dWNlMWFcdWNlMWJcdWNlMWNcdWNlMWRcdWNlMWVcdWNlMWZcdWNlMjJcdWNlMjNcdWNlMjVcdWNlMjZcdWNlMjdcdWNlMjlcdWNlMmFcdWNlMmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0'@; put 'KCIiKSxtPTA7bSE9eFsxNzRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTc0XVttXV09NDQ1NDQrbSxGWzQ0NTQ0K21dPXhbMTc0XVttXSk7Zm9yKHhbMTc1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVjZTJjXHVjZTJkXHVjZTJlXHVjZTJmXHVjZTMyXHVjZTM0XHVjZTM2XHVjZTM3XHVjZTM4XHVjZTM5XHVjZTNhXHVjZTNiXHVjZTNjXHVjZTNkXHVjZTNlXHVjZTNmXHVjZTQwXHVjZTQxXHVjZTQyXHVjZTQzXHVjZTQ0XHVjZTQ1XHVjZTQ2XHVjZTQ3XHVjZTQ4'@; put 'XHVjZTQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTRhXHVjZTRiXHVjZTRjXHVjZTRkXHVjZTRlXHVjZTRmXHVjZTUwXHVjZTUxXHVjZTUyXHVjZTUzXHVjZTU0XHVjZTU1XHVjZTU2XHVjZTU3XHVjZTVhXHVjZTViXHVjZTVkXHVjZTVlXHVjZTYyXHVjZTYzXHVj'@; put 'ZTY0XHVjZTY1XHVjZTY2XHVjZTY3XHVjZTZhXHVjZTZjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTZlXHVjZTZmXHVjZTcwXHVjZTcxXHVjZTcyXHVjZTczXHVjZTc2XHVjZTc3XHVjZTc5XHVjZTdhXHVjZTdiXHVjZTdkXHVjZTdlXHVjZTdmXHVjZTgwXHVjZTgx'@; put 'XHVjZTgyXHVjZTgzXHVjZTg2XHVjZTg4XHVjZThhXHVjZThiXHVjZThjXHVjZThkXHVjZThlXHVjZThmXHVjZTkyXHVjZTkzXHVjZTk1XHVjZTk2XHVjZTk3XHVjZTk5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3NV1bbV1dPTQ0ODAwK20sRls0NDgwMCttXT14WzE3NV1bbV0pO2Zvcih4WzE3Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2U5YVx1Y2U5Ylx1Y2U5Y1x1Y2U5ZFx1Y2U5ZVx1Y2U5Zlx1Y2VhMlx1Y2VhNlx1Y2VhN1x1Y2VhOFx1Y2VhOVx1Y2VhYVx1Y2VhYlx1Y2VhZVx1Y2VhZlx1Y2ViMFx1Y2ViMVx1Y2ViMlx1Y2ViM1x1Y2ViNFx1Y2ViNVx1Y2ViNlx1Y2Vi'@; put 'N1x1Y2ViOFx1Y2ViOVx1Y2ViYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ViYlx1Y2ViY1x1Y2ViZFx1Y2ViZVx1Y2ViZlx1Y2VjMFx1Y2VjMlx1Y2VjM1x1Y2VjNFx1Y2VjNVx1Y2VjNlx1Y2VjN1x1Y2VjOFx1Y2VjOVx1Y2VjYVx1Y2VjYlx1Y2VjY1x1Y2VjZFx1'@; put 'Y2VjZVx1Y2VjZlx1Y2VkMFx1Y2VkMVx1Y2VkMlx1Y2VkM1x1Y2VkNFx1Y2VkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2VkNlx1Y2VkN1x1Y2VkOFx1Y2VkOVx1Y2VkYVx1Y2VkYlx1Y2VkY1x1Y2VkZFx1Y2VkZVx1Y2VkZlx1Y2VlMFx1Y2VlMVx1Y2VlMlx1Y2Vl'@; put 'M1x1Y2VlNlx1Y2VlN1x1Y2VlOVx1Y2VlYVx1Y2VlZFx1Y2VlZVx1Y2VlZlx1Y2VmMFx1Y2VmMVx1Y2VmMlx1Y2VmM1x1Y2VmNlx1Y2VmYVx1Y2VmYlx1Y2VmY1x1Y2VmZFx1Y2VmZVx1Y2VmZlx1YWMwMFx1YWMwMVx1YWMwNFx1YWMwN1x1YWMwOFx1YWMwOVx1YWMwYVx1YWMxMFx1YWMxMVx1'@; put 'YWMxMlx1YWMxM1x1YWMxNFx1YWMxNVx1YWMxNlx1YWMxN1x1YWMxOVx1YWMxYVx1YWMxYlx1YWMxY1x1YWMxZFx1YWMyMFx1YWMyNFx1YWMyY1x1YWMyZFx1YWMyZlx1YWMzMFx1YWMzMVx1YWMzOFx1YWMzOVx1YWMzY1x1YWM0MFx1YWM0Ylx1YWM0ZFx1YWM1NFx1YWM1OFx1YWM1Y1x1YWM3'@; put 'MFx1YWM3MVx1YWM3NFx1YWM3N1x1YWM3OFx1YWM3YVx1YWM4MFx1YWM4MVx1YWM4M1x1YWM4NFx1YWM4NVx1YWM4Nlx1YWM4OVx1YWM4YVx1YWM4Ylx1YWM4Y1x1YWM5MFx1YWM5NFx1YWM5Y1x1YWM5ZFx1YWM5Zlx1YWNhMFx1YWNhMVx1YWNhOFx1YWNhOVx1YWNhYVx1YWNhY1x1YWNhZlx1'@; put 'YWNiMFx1YWNiOFx1YWNiOVx1YWNiYlx1YWNiY1x1YWNiZFx1YWNjMVx1YWNjNFx1YWNjOFx1YWNjY1x1YWNkNVx1YWNkN1x1YWNlMFx1YWNlMVx1YWNlNFx1YWNlN1x1YWNlOFx1YWNlYVx1YWNlY1x1YWNlZlx1YWNmMFx1YWNmMVx1YWNmM1x1YWNmNVx1YWNmNlx1YWNmY1x1YWNmZFx1YWQw'@; put 'MFx1YWQwNFx1YWQwNlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTc2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzZdW21dXT00NTA1NittLEZbNDUwNTYrbV09eFsxNzZdW21dKTtmb3IoeFsxNzddPSJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmMDJcdWNmMDNcdWNmMDVcdWNmMDZcdWNmMDdcdWNmMDlcdWNmMGFcdWNmMGJcdWNmMGNcdWNmMGRcdWNmMGVcdWNmMGZcdWNmMTJcdWNmMTRcdWNmMTZcdWNmMTdcdWNmMThcdWNmMTlcdWNmMWFcdWNmMWJcdWNm'@; put 'MWRcdWNmMWVcdWNmMWZcdWNmMjFcdWNmMjJcdWNmMjNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmMjVcdWNmMjZcdWNmMjdcdWNmMjhcdWNmMjlcdWNmMmFcdWNmMmJcdWNmMmVcdWNmMzJcdWNmMzNcdWNmMzRcdWNmMzVcdWNmMzZcdWNmMzdcdWNmMzlcdWNmM2Fc'@; put 'dWNmM2JcdWNmM2NcdWNmM2RcdWNmM2VcdWNmM2ZcdWNmNDBcdWNmNDFcdWNmNDJcdWNmNDNcdWNmNDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmNDVcdWNmNDZcdWNmNDdcdWNmNDhcdWNmNDlcdWNmNGFcdWNmNGJcdWNmNGNcdWNmNGRcdWNmNGVcdWNmNGZcdWNm'@; put 'NTBcdWNmNTFcdWNmNTJcdWNmNTNcdWNmNTZcdWNmNTdcdWNmNTlcdWNmNWFcdWNmNWJcdWNmNWRcdWNmNWVcdWNmNWZcdWNmNjBcdWNmNjFcdWNmNjJcdWNmNjNcdWNmNjZcdWNmNjhcdWNmNmFcdWNmNmJcdWNmNmNcdWFkMGNcdWFkMGRcdWFkMGZcdWFkMTFcdWFkMThcdWFkMWNcdWFkMjBc'@; put 'dWFkMjlcdWFkMmNcdWFkMmRcdWFkMzRcdWFkMzVcdWFkMzhcdWFkM2NcdWFkNDRcdWFkNDVcdWFkNDdcdWFkNDlcdWFkNTBcdWFkNTRcdWFkNThcdWFkNjFcdWFkNjNcdWFkNmNcdWFkNmRcdWFkNzBcdWFkNzNcdWFkNzRcdWFkNzVcdWFkNzZcdWFkN2JcdWFkN2NcdWFkN2RcdWFkN2ZcdWFk'@; put 'ODFcdWFkODJcdWFkODhcdWFkODlcdWFkOGNcdWFkOTBcdWFkOWNcdWFkOWRcdWFkYTRcdWFkYjdcdWFkYzBcdWFkYzFcdWFkYzRcdWFkYzhcdWFkZDBcdWFkZDFcdWFkZDNcdWFkZGNcdWFkZTBcdWFkZTRcdWFkZjhcdWFkZjlcdWFkZmNcdWFkZmZcdWFlMDBcdWFlMDFcdWFlMDhcdWFlMDlc'@; put 'dWFlMGJcdWFlMGRcdWFlMTRcdWFlMzBcdWFlMzFcdWFlMzRcdWFlMzdcdWFlMzhcdWFlM2FcdWFlNDBcdWFlNDFcdWFlNDNcdWFlNDVcdWFlNDZcdWFlNGFcdWFlNGNcdWFlNGRcdWFlNGVcdWFlNTBcdWFlNTRcdWFlNTZcdWFlNWNcdWFlNWRcdWFlNWZcdWFlNjBcdWFlNjFcdWFlNjVcdWFl'@; put 'NjhcdWFlNjlcdWFlNmNcdWFlNzBcdWFlNzhcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzddLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3N11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTc3XVttXV09NDUzMTIrbSxGWzQ1MzEyK21dPXhbMTc3XVttXSk7Zm9yKHhbMTc4XT0iXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjZkXHVjZjZlXHVjZjZmXHVjZjcyXHVjZjczXHVjZjc1XHVjZjc2XHVjZjc3XHVjZjc5XHVjZjdhXHVjZjdiXHVjZjdjXHVjZjdkXHVjZjdlXHVjZjdmXHVjZjgxXHVjZjgyXHVjZjgzXHVj'@; put 'Zjg0XHVjZjg2XHVjZjg3XHVjZjg4XHVjZjg5XHVjZjhhXHVjZjhiXHVjZjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjhlXHVjZjhmXHVjZjkwXHVjZjkxXHVjZjkyXHVjZjkzXHVjZjk0XHVjZjk1XHVjZjk2XHVjZjk3XHVjZjk4XHVjZjk5XHVjZjlhXHVjZjli'@; put 'XHVjZjljXHVjZjlkXHVjZjllXHVjZjlmXHVjZmEwXHVjZmEyXHVjZmEzXHVjZmE0XHVjZmE1XHVjZmE2XHVjZmE3XHVjZmE5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZmFhXHVjZmFiXHVjZmFjXHVjZmFkXHVjZmFlXHVjZmFmXHVjZmIxXHVjZmIyXHVjZmIzXHVj'@; put 'ZmI0XHVjZmI1XHVjZmI2XHVjZmI3XHVjZmI4XHVjZmI5XHVjZmJhXHVjZmJiXHVjZmJjXHVjZmJkXHVjZmJlXHVjZmJmXHVjZmMwXHVjZmMxXHVjZmMyXHVjZmMzXHVjZmM1XHVjZmM2XHVjZmM3XHVjZmM4XHVjZmM5XHVjZmNhXHVjZmNiXHVhZTc5XHVhZTdiXHVhZTdjXHVhZTdkXHVhZTg0'@; put 'XHVhZTg1XHVhZThjXHVhZWJjXHVhZWJkXHVhZWJlXHVhZWMwXHVhZWM0XHVhZWNjXHVhZWNkXHVhZWNmXHVhZWQwXHVhZWQxXHVhZWQ4XHVhZWQ5XHVhZWRjXHVhZWU4XHVhZWViXHVhZWVkXHVhZWY0XHVhZWY4XHVhZWZjXHVhZjA3XHVhZjA4XHVhZjBkXHVhZjEwXHVhZjJjXHVhZjJkXHVh'@; put 'ZjMwXHVhZjMyXHVhZjM0XHVhZjNjXHVhZjNkXHVhZjNmXHVhZjQxXHVhZjQyXHVhZjQzXHVhZjQ4XHVhZjQ5XHVhZjUwXHVhZjVjXHVhZjVkXHVhZjY0XHVhZjY1XHVhZjc5XHVhZjgwXHVhZjg0XHVhZjg4XHVhZjkwXHVhZjkxXHVhZjk1XHVhZjljXHVhZmI4XHVhZmI5XHVhZmJjXHVhZmMw'@; put 'XHVhZmM3XHVhZmM4XHVhZmM5XHVhZmNiXHVhZmNkXHVhZmNlXHVhZmQ0XHVhZmRjXHVhZmU4XHVhZmU5XHVhZmYwXHVhZmYxXHVhZmY0XHVhZmY4XHViMDAwXHViMDAxXHViMDA0XHViMDBjXHViMDEwXHViMDE0XHViMDFjXHViMDFkXHViMDI4XHViMDQ0XHViMDQ1XHViMDQ4XHViMDRhXHVi'@; put 'MDRjXHViMDRlXHViMDUzXHViMDU0XHViMDU1XHViMDU3XHViMDU5XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3OF1bbV1dPTQ1NTY4K20sRls0NTU2OCttXT14WzE3OF1bbV0pO2Zvcih4'@; put 'WzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ZjY1x1Y2ZjZFx1Y2ZjZVx1Y2ZjZlx1Y2ZkMFx1Y2ZkMVx1Y2ZkMlx1Y2ZkM1x1Y2ZkNFx1Y2ZkNVx1Y2ZkNlx1Y2ZkN1x1Y2ZkOFx1Y2ZkOVx1Y2ZkYVx1Y2ZkYlx1'@; put 'Y2ZkY1x1Y2ZkZFx1Y2ZkZVx1Y2ZkZlx1Y2ZlMlx1Y2ZlM1x1Y2ZlNVx1Y2ZlNlx1Y2ZlN1x1Y2ZlOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ZlYVx1Y2ZlYlx1Y2ZlY1x1Y2ZlZFx1Y2ZlZVx1Y2ZlZlx1Y2ZmMlx1Y2ZmNFx1Y2ZmNlx1Y2ZmN1x1Y2ZmOFx1Y2Zm'@; put 'OVx1Y2ZmYVx1Y2ZmYlx1Y2ZmZFx1Y2ZmZVx1Y2ZmZlx1ZDAwMVx1ZDAwMlx1ZDAwM1x1ZDAwNVx1ZDAwNlx1ZDAwN1x1ZDAwOFx1ZDAwOVx1ZDAwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDAwYlx1ZDAwY1x1ZDAwZFx1ZDAwZVx1ZDAwZlx1ZDAxMFx1ZDAxMlx1'@; put 'ZDAxM1x1ZDAxNFx1ZDAxNVx1ZDAxNlx1ZDAxN1x1ZDAxOVx1ZDAxYVx1ZDAxYlx1ZDAxY1x1ZDAxZFx1ZDAxZVx1ZDAxZlx1ZDAyMFx1ZDAyMVx1ZDAyMlx1ZDAyM1x1ZDAyNFx1ZDAyNVx1ZDAyNlx1ZDAyN1x1ZDAyOFx1ZDAyOVx1ZDAyYVx1ZDAyYlx1ZDAyY1x1YjA1ZFx1YjA3Y1x1YjA3'@; put 'ZFx1YjA4MFx1YjA4NFx1YjA4Y1x1YjA4ZFx1YjA4Zlx1YjA5MVx1YjA5OFx1YjA5OVx1YjA5YVx1YjA5Y1x1YjA5Zlx1YjBhMFx1YjBhMVx1YjBhMlx1YjBhOFx1YjBhOVx1YjBhYlx1YjBhY1x1YjBhZFx1YjBhZVx1YjBhZlx1YjBiMVx1YjBiM1x1YjBiNFx1YjBiNVx1YjBiOFx1YjBiY1x1'@; put 'YjBjNFx1YjBjNVx1YjBjN1x1YjBjOFx1YjBjOVx1YjBkMFx1YjBkMVx1YjBkNFx1YjBkOFx1YjBlMFx1YjBlNVx1YjEwOFx1YjEwOVx1YjEwYlx1YjEwY1x1YjExMFx1YjExMlx1YjExM1x1YjExOFx1YjExOVx1YjExYlx1YjExY1x1YjExZFx1YjEyM1x1YjEyNFx1YjEyNVx1YjEyOFx1YjEy'@; put 'Y1x1YjEzNFx1YjEzNVx1YjEzN1x1YjEzOFx1YjEzOVx1YjE0MFx1YjE0MVx1YjE0NFx1YjE0OFx1YjE1MFx1YjE1MVx1YjE1NFx1YjE1NVx1YjE1OFx1YjE1Y1x1YjE2MFx1YjE3OFx1YjE3OVx1YjE3Y1x1YjE4MFx1YjE4Mlx1YjE4OFx1YjE4OVx1YjE4Ylx1YjE4ZFx1YjE5Mlx1YjE5M1x1'@; put 'YjE5NFx1YjE5OFx1YjE5Y1x1YjFhOFx1YjFjY1x1YjFkMFx1YjFkNFx1YjFkY1x1YjFkZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3OV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTc5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzldW21dXT00NTgyNCttLEZbNDU4MjQrbV09eFsx'@; put 'NzldW21dKTtmb3IoeFsxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwMmVcdWQwMmZcdWQwMzBcdWQwMzFcdWQwMzJcdWQwMzNcdWQwMzZcdWQwMzdcdWQwMzlcdWQwM2FcdWQwM2JcdWQwM2RcdWQwM2VcdWQwM2Zc'@; put 'dWQwNDBcdWQwNDFcdWQwNDJcdWQwNDNcdWQwNDZcdWQwNDhcdWQwNGFcdWQwNGJcdWQwNGNcdWQwNGRcdWQwNGVcdWQwNGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwNTFcdWQwNTJcdWQwNTNcdWQwNTVcdWQwNTZcdWQwNTdcdWQwNTlcdWQwNWFcdWQwNWJcdWQw'@; put 'NWNcdWQwNWRcdWQwNWVcdWQwNWZcdWQwNjFcdWQwNjJcdWQwNjNcdWQwNjRcdWQwNjVcdWQwNjZcdWQwNjdcdWQwNjhcdWQwNjlcdWQwNmFcdWQwNmJcdWQwNmVcdWQwNmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwNzFcdWQwNzJcdWQwNzNcdWQwNzVcdWQwNzZc'@; put 'dWQwNzdcdWQwNzhcdWQwNzlcdWQwN2FcdWQwN2JcdWQwN2VcdWQwN2ZcdWQwODBcdWQwODJcdWQwODNcdWQwODRcdWQwODVcdWQwODZcdWQwODdcdWQwODhcdWQwODlcdWQwOGFcdWQwOGJcdWQwOGNcdWQwOGRcdWQwOGVcdWQwOGZcdWQwOTBcdWQwOTFcdWQwOTJcdWQwOTNcdWQwOTRcdWIx'@; put 'ZGZcdWIxZThcdWIxZTlcdWIxZWNcdWIxZjBcdWIxZjlcdWIxZmJcdWIxZmRcdWIyMDRcdWIyMDVcdWIyMDhcdWIyMGJcdWIyMGNcdWIyMTRcdWIyMTVcdWIyMTdcdWIyMTlcdWIyMjBcdWIyMzRcdWIyM2NcdWIyNThcdWIyNWNcdWIyNjBcdWIyNjhcdWIyNjlcdWIyNzRcdWIyNzVcdWIyN2Nc'@; put 'dWIyODRcdWIyODVcdWIyODlcdWIyOTBcdWIyOTFcdWIyOTRcdWIyOThcdWIyOTlcdWIyOWFcdWIyYTBcdWIyYTFcdWIyYTNcdWIyYTVcdWIyYTZcdWIyYWFcdWIyYWNcdWIyYjBcdWIyYjRcdWIyYzhcdWIyYzlcdWIyY2NcdWIyZDBcdWIyZDJcdWIyZDhcdWIyZDlcdWIyZGJcdWIyZGRcdWIy'@; put 'ZTJcdWIyZTRcdWIyZTVcdWIyZTZcdWIyZThcdWIyZWJcdWIyZWNcdWIyZWRcdWIyZWVcdWIyZWZcdWIyZjNcdWIyZjRcdWIyZjVcdWIyZjdcdWIyZjhcdWIyZjlcdWIyZmFcdWIyZmJcdWIyZmZcdWIzMDBcdWIzMDFcdWIzMDRcdWIzMDhcdWIzMTBcdWIzMTFcdWIzMTNcdWIzMTRcdWIzMTVc'@; put 'dWIzMWNcdWIzNTRcdWIzNTVcdWIzNTZcdWIzNThcdWIzNWJcdWIzNWNcdWIzNWVcdWIzNWZcdWIzNjRcdWIzNjVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4MF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTgwXVttXV09NDYwODArbSxG'@; put 'WzQ2MDgwK21dPXhbMTgwXVttXSk7Zm9yKHhbMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDk1XHVkMDk2XHVkMDk3XHVkMDk4XHVkMDk5XHVkMDlhXHVkMDliXHVkMDljXHVkMDlkXHVkMDllXHVkMDlmXHVkMGEw'@; put 'XHVkMGExXHVkMGEyXHVkMGEzXHVkMGE2XHVkMGE3XHVkMGE5XHVkMGFhXHVkMGFiXHVkMGFkXHVkMGFlXHVkMGFmXHVkMGIwXHVkMGIxXHVkMGIyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMGIzXHVkMGI2XHVkMGI4XHVkMGJhXHVkMGJiXHVkMGJjXHVkMGJkXHVk'@; put 'MGJlXHVkMGJmXHVkMGMyXHVkMGMzXHVkMGM1XHVkMGM2XHVkMGM3XHVkMGNhXHVkMGNiXHVkMGNjXHVkMGNkXHVkMGNlXHVkMGNmXHVkMGQyXHVkMGQ2XHVkMGQ3XHVkMGQ4XHVkMGQ5XHVkMGRhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMGRiXHVkMGRlXHVkMGRm'@; put 'XHVkMGUxXHVkMGUyXHVkMGUzXHVkMGU1XHVkMGU2XHVkMGU3XHVkMGU4XHVkMGU5XHVkMGVhXHVkMGViXHVkMGVlXHVkMGYyXHVkMGYzXHVkMGY0XHVkMGY1XHVkMGY2XHVkMGY3XHVkMGY5XHVkMGZhXHVkMGZiXHVkMGZjXHVkMGZkXHVkMGZlXHVkMGZmXHVkMTAwXHVkMTAxXHVkMTAyXHVk'@; put 'MTAzXHVkMTA0XHViMzY3XHViMzY5XHViMzZiXHViMzZlXHViMzcwXHViMzcxXHViMzc0XHViMzc4XHViMzgwXHViMzgxXHViMzgzXHViMzg0XHViMzg1XHViMzhjXHViMzkwXHViMzk0XHViM2EwXHViM2ExXHViM2E4XHViM2FjXHViM2M0XHViM2M1XHViM2M4XHViM2NiXHViM2NjXHViM2Nl'@; put 'XHViM2QwXHViM2Q0XHViM2Q1XHViM2Q3XHViM2Q5XHViM2RiXHViM2RkXHViM2UwXHViM2U0XHViM2U4XHViM2ZjXHViNDEwXHViNDE4XHViNDFjXHViNDIwXHViNDI4XHViNDI5XHViNDJiXHViNDM0XHViNDUwXHViNDUxXHViNDU0XHViNDU4XHViNDYwXHViNDYxXHViNDYzXHViNDY1XHVi'@; put 'NDZjXHViNDgwXHViNDg4XHViNDlkXHViNGE0XHViNGE4XHViNGFjXHViNGI1XHViNGI3XHViNGI5XHViNGMwXHViNGM0XHViNGM4XHViNGQwXHViNGQ1XHViNGRjXHViNGRkXHViNGUwXHViNGUzXHViNGU0XHViNGU2XHViNGVjXHViNGVkXHViNGVmXHViNGYxXHViNGY4XHViNTE0XHViNTE1'@; put 'XHViNTE4XHViNTFiXHViNTFjXHViNTI0XHViNTI1XHViNTI3XHViNTI4XHViNTI5XHViNTJhXHViNTMwXHViNTMxXHViNTM0XHViNTM4XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTgxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4MV1b'@; put 'bV1dPTQ2MzM2K20sRls0NjMzNittXT14WzE4MV1bbV0pO2Zvcih4WzE4Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEwNVx1ZDEwNlx1ZDEwN1x1ZDEwOFx1ZDEwOVx1ZDEwYVx1ZDEwYlx1ZDEwY1x1ZDEwZVx1ZDEw'@; put 'Zlx1ZDExMFx1ZDExMVx1ZDExMlx1ZDExM1x1ZDExNFx1ZDExNVx1ZDExNlx1ZDExN1x1ZDExOFx1ZDExOVx1ZDExYVx1ZDExYlx1ZDExY1x1ZDExZFx1ZDExZVx1ZDExZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEyMFx1ZDEyMVx1ZDEyMlx1ZDEyM1x1ZDEyNFx1'@; put 'ZDEyNVx1ZDEyNlx1ZDEyN1x1ZDEyOFx1ZDEyOVx1ZDEyYVx1ZDEyYlx1ZDEyY1x1ZDEyZFx1ZDEyZVx1ZDEyZlx1ZDEzMlx1ZDEzM1x1ZDEzNVx1ZDEzNlx1ZDEzN1x1ZDEzOVx1ZDEzYlx1ZDEzY1x1ZDEzZFx1ZDEzZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEz'@; put 'Zlx1ZDE0Mlx1ZDE0Nlx1ZDE0N1x1ZDE0OFx1ZDE0OVx1ZDE0YVx1ZDE0Ylx1ZDE0ZVx1ZDE0Zlx1ZDE1MVx1ZDE1Mlx1ZDE1M1x1ZDE1NVx1ZDE1Nlx1ZDE1N1x1ZDE1OFx1ZDE1OVx1ZDE1YVx1ZDE1Ylx1ZDE1ZVx1ZDE2MFx1ZDE2Mlx1ZDE2M1x1ZDE2NFx1ZDE2NVx1ZDE2Nlx1ZDE2N1x1'@; put 'ZDE2OVx1ZDE2YVx1ZDE2Ylx1ZDE2ZFx1YjU0MFx1YjU0MVx1YjU0M1x1YjU0NFx1YjU0NVx1YjU0Ylx1YjU0Y1x1YjU0ZFx1YjU1MFx1YjU1NFx1YjU1Y1x1YjU1ZFx1YjU1Zlx1YjU2MFx1YjU2MVx1YjVhMFx1YjVhMVx1YjVhNFx1YjVhOFx1YjVhYVx1YjVhYlx1YjViMFx1YjViMVx1YjVi'@; put 'M1x1YjViNFx1YjViNVx1YjViYlx1YjViY1x1YjViZFx1YjVjMFx1YjVjNFx1YjVjY1x1YjVjZFx1YjVjZlx1YjVkMFx1YjVkMVx1YjVkOFx1YjVlY1x1YjYxMFx1YjYxMVx1YjYxNFx1YjYxOFx1YjYyNVx1YjYyY1x1YjYzNFx1YjY0OFx1YjY2NFx1YjY2OFx1YjY5Y1x1YjY5ZFx1YjZhMFx1'@; put 'YjZhNFx1YjZhYlx1YjZhY1x1YjZiMVx1YjZkNFx1YjZmMFx1YjZmNFx1YjZmOFx1YjcwMFx1YjcwMVx1YjcwNVx1YjcyOFx1YjcyOVx1YjcyY1x1YjcyZlx1YjczMFx1YjczOFx1YjczOVx1YjczYlx1Yjc0NFx1Yjc0OFx1Yjc0Y1x1Yjc1NFx1Yjc1NVx1Yjc2MFx1Yjc2NFx1Yjc2OFx1Yjc3'@; put 'MFx1Yjc3MVx1Yjc3M1x1Yjc3NVx1Yjc3Y1x1Yjc3ZFx1Yjc4MFx1Yjc4NFx1Yjc4Y1x1Yjc4ZFx1Yjc4Zlx1Yjc5MFx1Yjc5MVx1Yjc5Mlx1Yjc5Nlx1Yjc5N1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4Ml0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTgyXVttXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoYWVbeFsxODJdW21dXT00NjU5MittLEZbNDY1OTIrbV09eFsxODJdW21dKTtmb3IoeFsxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxNmVcdWQxNmZcdWQxNzBcdWQxNzFcdWQxNzJcdWQxNzNcdWQxNzRcdWQx'@; put 'NzVcdWQxNzZcdWQxNzdcdWQxNzhcdWQxNzlcdWQxN2FcdWQxN2JcdWQxN2RcdWQxN2VcdWQxN2ZcdWQxODBcdWQxODFcdWQxODJcdWQxODNcdWQxODVcdWQxODZcdWQxODdcdWQxODlcdWQxOGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxOGJcdWQxOGNcdWQxOGRc'@; put 'dWQxOGVcdWQxOGZcdWQxOTBcdWQxOTFcdWQxOTJcdWQxOTNcdWQxOTRcdWQxOTVcdWQxOTZcdWQxOTdcdWQxOThcdWQxOTlcdWQxOWFcdWQxOWJcdWQxOWNcdWQxOWRcdWQxOWVcdWQxOWZcdWQxYTJcdWQxYTNcdWQxYTVcdWQxYTZcdWQxYTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWQxYTlcdWQxYWFcdWQxYWJcdWQxYWNcdWQxYWRcdWQxYWVcdWQxYWZcdWQxYjJcdWQxYjRcdWQxYjZcdWQxYjdcdWQxYjhcdWQxYjlcdWQxYmJcdWQxYmRcdWQxYmVcdWQxYmZcdWQxYzFcdWQxYzJcdWQxYzNcdWQxYzRcdWQxYzVcdWQxYzZcdWQxYzdcdWQxYzhcdWQxYzlc'@; put 'dWQxY2FcdWQxY2JcdWQxY2NcdWQxY2RcdWQxY2VcdWQxY2ZcdWI3OThcdWI3OTlcdWI3OWNcdWI3YTBcdWI3YThcdWI3YTlcdWI3YWJcdWI3YWNcdWI3YWRcdWI3YjRcdWI3YjVcdWI3YjhcdWI3YzdcdWI3YzlcdWI3ZWNcdWI3ZWRcdWI3ZjBcdWI3ZjRcdWI3ZmNcdWI3ZmRcdWI3ZmZcdWI4'@; put 'MDBcdWI4MDFcdWI4MDdcdWI4MDhcdWI4MDlcdWI4MGNcdWI4MTBcdWI4MThcdWI4MTlcdWI4MWJcdWI4MWRcdWI4MjRcdWI4MjVcdWI4MjhcdWI4MmNcdWI4MzRcdWI4MzVcdWI4MzdcdWI4MzhcdWI4MzlcdWI4NDBcdWI4NDRcdWI4NTFcdWI4NTNcdWI4NWNcdWI4NWRcdWI4NjBcdWI4NjRc'@; put 'dWI4NmNcdWI4NmRcdWI4NmZcdWI4NzFcdWI4NzhcdWI4N2NcdWI4OGRcdWI4YThcdWI4YjBcdWI4YjRcdWI4YjhcdWI4YzBcdWI4YzFcdWI4YzNcdWI4YzVcdWI4Y2NcdWI4ZDBcdWI4ZDRcdWI4ZGRcdWI4ZGZcdWI4ZTFcdWI4ZThcdWI4ZTlcdWI4ZWNcdWI4ZjBcdWI4ZjhcdWI4ZjlcdWI4'@; put 'ZmJcdWI4ZmRcdWI5MDRcdWI5MThcdWI5MjBcdWI5M2NcdWI5M2RcdWI5NDBcdWI5NDRcdWI5NGNcdWI5NGZcdWI5NTFcdWI5NThcdWI5NTlcdWI5NWNcdWI5NjBcdWI5NjhcdWI5NjlcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4M11bbV0u'@; put 'Y2hhckNvZGVBdCgwKSYmKGFlW3hbMTgzXVttXV09NDY4NDgrbSxGWzQ2ODQ4K21dPXhbMTgzXVttXSk7Zm9yKHhbMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMWQwXHVkMWQxXHVkMWQyXHVkMWQzXHVkMWQ0XHVk'@; put 'MWQ1XHVkMWQ2XHVkMWQ3XHVkMWQ5XHVkMWRhXHVkMWRiXHVkMWRjXHVkMWRkXHVkMWRlXHVkMWRmXHVkMWUwXHVkMWUxXHVkMWUyXHVkMWUzXHVkMWU0XHVkMWU1XHVkMWU2XHVkMWU3XHVkMWU4XHVkMWU5XHVkMWVhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMWVi'@; put 'XHVkMWVjXHVkMWVkXHVkMWVlXHVkMWVmXHVkMWYwXHVkMWYxXHVkMWYyXHVkMWYzXHVkMWY1XHVkMWY2XHVkMWY3XHVkMWY5XHVkMWZhXHVkMWZiXHVkMWZjXHVkMWZkXHVkMWZlXHVkMWZmXHVkMjAwXHVkMjAxXHVkMjAyXHVkMjAzXHVkMjA0XHVkMjA1XHVkMjA2XHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjA4XHVkMjBhXHVkMjBiXHVkMjBjXHVkMjBkXHVkMjBlXHVkMjBmXHVkMjExXHVkMjEyXHVkMjEzXHVkMjE0XHVkMjE1XHVkMjE2XHVkMjE3XHVkMjE4XHVkMjE5XHVkMjFhXHVkMjFiXHVkMjFjXHVkMjFkXHVkMjFlXHVkMjFmXHVkMjIwXHVkMjIx'@; put 'XHVkMjIyXHVkMjIzXHVkMjI0XHVkMjI1XHVkMjI2XHVkMjI3XHVkMjI4XHVkMjI5XHViOTZiXHViOTZkXHViOTc0XHViOTc1XHViOTc4XHViOTdjXHViOTg0XHViOTg1XHViOTg3XHViOTg5XHViOThhXHViOThkXHViOThlXHViOWFjXHViOWFkXHViOWIwXHViOWI0XHViOWJjXHViOWJkXHVi'@; put 'OWJmXHViOWMxXHViOWM4XHViOWM5XHViOWNjXHViOWNlXHViOWNmXHViOWQwXHViOWQxXHViOWQyXHViOWQ4XHViOWQ5XHViOWRiXHViOWRkXHViOWRlXHViOWUxXHViOWUzXHViOWU0XHViOWU1XHViOWU4XHViOWVjXHViOWY0XHViOWY1XHViOWY3XHViOWY4XHViOWY5XHViOWZhXHViYTAw'@; put 'XHViYTAxXHViYTA4XHViYTE1XHViYTM4XHViYTM5XHViYTNjXHViYTQwXHViYTQyXHViYTQ4XHViYTQ5XHViYTRiXHViYTRkXHViYTRlXHViYTUzXHViYTU0XHViYTU1XHViYTU4XHViYTVjXHViYTY0XHViYTY1XHViYTY3XHViYTY4XHViYTY5XHViYTcwXHViYTcxXHViYTc0XHViYTc4XHVi'@; put 'YTgzXHViYTg0XHViYTg1XHViYTg3XHViYThjXHViYWE4XHViYWE5XHViYWFiXHViYWFjXHViYWIwXHViYWIyXHViYWI4XHViYWI5XHViYWJiXHViYWJkXHViYWM0XHViYWM4XHViYWQ4XHViYWQ5XHViYWZjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTg0XS5sZW5ndGg7KyttKTY1NTMz'@; put 'IT09eFsxODRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4NF1bbV1dPTQ3MTA0K20sRls0NzEwNCttXT14WzE4NF1bbV0pO2Zvcih4WzE4NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDIyYVx1ZDIyYlx1ZDIyZVx1'@; put 'ZDIyZlx1ZDIzMVx1ZDIzMlx1ZDIzM1x1ZDIzNVx1ZDIzNlx1ZDIzN1x1ZDIzOFx1ZDIzOVx1ZDIzYVx1ZDIzYlx1ZDIzZVx1ZDI0MFx1ZDI0Mlx1ZDI0M1x1ZDI0NFx1ZDI0NVx1ZDI0Nlx1ZDI0N1x1ZDI0OVx1ZDI0YVx1ZDI0Ylx1ZDI0Y1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZDI0ZFx1ZDI0ZVx1ZDI0Zlx1ZDI1MFx1ZDI1MVx1ZDI1Mlx1ZDI1M1x1ZDI1NFx1ZDI1NVx1ZDI1Nlx1ZDI1N1x1ZDI1OFx1ZDI1OVx1ZDI1YVx1ZDI1Ylx1ZDI1ZFx1ZDI1ZVx1ZDI1Zlx1ZDI2MFx1ZDI2MVx1ZDI2Mlx1ZDI2M1x1ZDI2NVx1ZDI2Nlx1ZDI2N1x1ZDI2OFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDI2OVx1ZDI2YVx1ZDI2Ylx1ZDI2Y1x1ZDI2ZFx1ZDI2ZVx1ZDI2Zlx1ZDI3MFx1ZDI3MVx1ZDI3Mlx1ZDI3M1x1ZDI3NFx1ZDI3NVx1ZDI3Nlx1ZDI3N1x1ZDI3OFx1ZDI3OVx1ZDI3YVx1ZDI3Ylx1ZDI3Y1x1ZDI3ZFx1ZDI3'@; put 'ZVx1ZDI3Zlx1ZDI4Mlx1ZDI4M1x1ZDI4NVx1ZDI4Nlx1ZDI4N1x1ZDI4OVx1ZDI4YVx1ZDI4Ylx1ZDI4Y1x1YmIwMFx1YmIwNFx1YmIwZFx1YmIwZlx1YmIxMVx1YmIxOFx1YmIxY1x1YmIyMFx1YmIyOVx1YmIyYlx1YmIzNFx1YmIzNVx1YmIzNlx1YmIzOFx1YmIzYlx1YmIzY1x1YmIzZFx1'@; put 'YmIzZVx1YmI0NFx1YmI0NVx1YmI0N1x1YmI0OVx1YmI0ZFx1YmI0Zlx1YmI1MFx1YmI1NFx1YmI1OFx1YmI2MVx1YmI2M1x1YmI2Y1x1YmI4OFx1YmI4Y1x1YmI5MFx1YmJhNFx1YmJhOFx1YmJhY1x1YmJiNFx1YmJiN1x1YmJjMFx1YmJjNFx1YmJjOFx1YmJkMFx1YmJkM1x1YmJmOFx1YmJm'@; put 'OVx1YmJmY1x1YmJmZlx1YmMwMFx1YmMwMlx1YmMwOFx1YmMwOVx1YmMwYlx1YmMwY1x1YmMwZFx1YmMwZlx1YmMxMVx1YmMxNFx1YmMxNVx1YmMxNlx1YmMxN1x1YmMxOFx1YmMxYlx1YmMxY1x1YmMxZFx1YmMxZVx1YmMxZlx1YmMyNFx1YmMyNVx1YmMyN1x1YmMyOVx1YmMyZFx1YmMzMFx1'@; put 'YmMzMVx1YmMzNFx1YmMzOFx1YmM0MFx1YmM0MVx1YmM0M1x1YmM0NFx1YmM0NVx1YmM0OVx1YmM0Y1x1YmM0ZFx1YmM1MFx1YmM1ZFx1YmM4NFx1YmM4NVx1YmM4OFx1YmM4Ylx1YmM4Y1x1YmM4ZVx1YmM5NFx1YmM5NVx1YmM5N1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4NV0ubGVu'@; put 'Z3RoOysrbSk2NTUzMyE9PXhbMTg1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODVdW21dXT00NzM2MCttLEZbNDczNjArbV09eFsxODVdW21dKTtmb3IoeFsxODZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyOGRc'@; put 'dWQyOGVcdWQyOGZcdWQyOTJcdWQyOTNcdWQyOTRcdWQyOTZcdWQyOTdcdWQyOThcdWQyOTlcdWQyOWFcdWQyOWJcdWQyOWRcdWQyOWVcdWQyOWZcdWQyYTFcdWQyYTJcdWQyYTNcdWQyYTVcdWQyYTZcdWQyYTdcdWQyYThcdWQyYTlcdWQyYWFcdWQyYWJcdWQyYWRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyYWVcdWQyYWZcdWQyYjBcdWQyYjJcdWQyYjNcdWQyYjRcdWQyYjVcdWQyYjZcdWQyYjdcdWQyYmFcdWQyYmJcdWQyYmRcdWQyYmVcdWQyYzFcdWQyYzNcdWQyYzRcdWQyYzVcdWQyYzZcdWQyYzdcdWQyY2FcdWQyY2NcdWQyY2RcdWQyY2VcdWQyY2Zc'@; put 'dWQyZDBcdWQyZDFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyZDJcdWQyZDNcdWQyZDVcdWQyZDZcdWQyZDdcdWQyZDlcdWQyZGFcdWQyZGJcdWQyZGRcdWQyZGVcdWQyZGZcdWQyZTBcdWQyZTFcdWQyZTJcdWQyZTNcdWQyZTZcdWQyZTdcdWQyZThcdWQyZTlcdWQy'@; put 'ZWFcdWQyZWJcdWQyZWNcdWQyZWRcdWQyZWVcdWQyZWZcdWQyZjJcdWQyZjNcdWQyZjVcdWQyZjZcdWQyZjdcdWQyZjlcdWQyZmFcdWJjOTlcdWJjOWFcdWJjYTBcdWJjYTFcdWJjYTRcdWJjYTdcdWJjYThcdWJjYjBcdWJjYjFcdWJjYjNcdWJjYjRcdWJjYjVcdWJjYmNcdWJjYmRcdWJjYzBc'@; put 'dWJjYzRcdWJjY2RcdWJjY2ZcdWJjZDBcdWJjZDFcdWJjZDVcdWJjZDhcdWJjZGNcdWJjZjRcdWJjZjVcdWJjZjZcdWJjZjhcdWJjZmNcdWJkMDRcdWJkMDVcdWJkMDdcdWJkMDlcdWJkMTBcdWJkMTRcdWJkMjRcdWJkMmNcdWJkNDBcdWJkNDhcdWJkNDlcdWJkNGNcdWJkNTBcdWJkNThcdWJk'@; put 'NTlcdWJkNjRcdWJkNjhcdWJkODBcdWJkODFcdWJkODRcdWJkODdcdWJkODhcdWJkODlcdWJkOGFcdWJkOTBcdWJkOTFcdWJkOTNcdWJkOTVcdWJkOTlcdWJkOWFcdWJkOWNcdWJkYTRcdWJkYjBcdWJkYjhcdWJkZDRcdWJkZDVcdWJkZDhcdWJkZGNcdWJkZTlcdWJkZjBcdWJkZjRcdWJkZjhc'@; put 'dWJlMDBcdWJlMDNcdWJlMDVcdWJlMGNcdWJlMGRcdWJlMTBcdWJlMTRcdWJlMWNcdWJlMWRcdWJlMWZcdWJlNDRcdWJlNDVcdWJlNDhcdWJlNGNcdWJlNGVcdWJlNTRcdWJlNTVcdWJlNTdcdWJlNTlcdWJlNWFcdWJlNWJcdWJlNjBcdWJlNjFcdWJlNjRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7'@; put 'bSE9eFsxODZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4Nl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg2XVttXV09NDc2MTYrbSxGWzQ3NjE2K21dPXhbMTg2XVttXSk7Zm9yKHhbMTg3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVkMmZiXHVkMmZjXHVkMmZkXHVkMmZlXHVkMmZmXHVkMzAyXHVkMzA0XHVkMzA2XHVkMzA3XHVkMzA4XHVkMzA5XHVkMzBhXHVkMzBiXHVkMzBmXHVkMzExXHVkMzEyXHVkMzEzXHVkMzE1XHVkMzE3XHVkMzE4XHVkMzE5XHVkMzFhXHVkMzFiXHVkMzFlXHVkMzIyXHVkMzIzXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzI0XHVkMzI2XHVkMzI3XHVkMzJhXHVkMzJiXHVkMzJkXHVkMzJlXHVkMzJmXHVkMzMxXHVkMzMyXHVkMzMzXHVkMzM0XHVkMzM1XHVkMzM2XHVkMzM3XHVkMzNhXHVkMzNlXHVkMzNmXHVkMzQwXHVkMzQxXHVkMzQyXHVkMzQz'@; put 'XHVkMzQ2XHVkMzQ3XHVkMzQ4XHVkMzQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzRhXHVkMzRiXHVkMzRjXHVkMzRkXHVkMzRlXHVkMzRmXHVkMzUwXHVkMzUxXHVkMzUyXHVkMzUzXHVkMzU0XHVkMzU1XHVkMzU2XHVkMzU3XHVkMzU4XHVkMzU5XHVkMzVhXHVk'@; put 'MzViXHVkMzVjXHVkMzVkXHVkMzVlXHVkMzVmXHVkMzYwXHVkMzYxXHVkMzYyXHVkMzYzXHVkMzY0XHVkMzY1XHVkMzY2XHVkMzY3XHVkMzY4XHVkMzY5XHViZTY4XHViZTZhXHViZTcwXHViZTcxXHViZTczXHViZTc0XHViZTc1XHViZTdiXHViZTdjXHViZTdkXHViZTgwXHViZTg0XHViZThj'@; put 'XHViZThkXHViZThmXHViZTkwXHViZTkxXHViZTk4XHViZTk5XHViZWE4XHViZWQwXHViZWQxXHViZWQ0XHViZWQ3XHViZWQ4XHViZWUwXHViZWUzXHViZWU0XHViZWU1XHViZWVjXHViZjAxXHViZjA4XHViZjA5XHViZjE4XHViZjE5XHViZjFiXHViZjFjXHViZjFkXHViZjQwXHViZjQxXHVi'@; put 'ZjQ0XHViZjQ4XHViZjUwXHViZjUxXHViZjU1XHViZjk0XHViZmIwXHViZmM1XHViZmNjXHViZmNkXHViZmQwXHViZmQ0XHViZmRjXHViZmRmXHViZmUxXHVjMDNjXHVjMDUxXHVjMDU4XHVjMDVjXHVjMDYwXHVjMDY4XHVjMDY5XHVjMDkwXHVjMDkxXHVjMDk0XHVjMDk4XHVjMGEwXHVjMGEx'@; put 'XHVjMGEzXHVjMGE1XHVjMGFjXHVjMGFkXHVjMGFmXHVjMGIwXHVjMGIzXHVjMGI0XHVjMGI1XHVjMGI2XHVjMGJjXHVjMGJkXHVjMGJmXHVjMGMwXHVjMGMxXHVjMGM1XHVjMGM4XHVjMGM5XHVjMGNjXHVjMGQwXHVjMGQ4XHVjMGQ5XHVjMGRiXHVjMGRjXHVjMGRkXHVjMGU0XHVmZmZkIi5z'@; put 'cGxpdCgiIiksbT0wO20hPXhbMTg3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4N11bbV1dPTQ3ODcyK20sRls0Nzg3MittXT14WzE4N11bbV0pO2Zvcih4WzE4OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDM2YVx1ZDM2Ylx1ZDM2Y1x1ZDM2ZFx1ZDM2ZVx1ZDM2Zlx1ZDM3MFx1ZDM3MVx1ZDM3Mlx1ZDM3M1x1ZDM3NFx1ZDM3NVx1ZDM3Nlx1ZDM3N1x1ZDM3OFx1ZDM3OVx1ZDM3YVx1ZDM3Ylx1ZDM3ZVx1ZDM3Zlx1ZDM4MVx1ZDM4Mlx1ZDM4M1x1ZDM4NVx1'@; put 'ZDM4Nlx1ZDM4N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDM4OFx1ZDM4OVx1ZDM4YVx1ZDM4Ylx1ZDM4ZVx1ZDM5Mlx1ZDM5M1x1ZDM5NFx1ZDM5NVx1ZDM5Nlx1ZDM5N1x1ZDM5YVx1ZDM5Ylx1ZDM5ZFx1ZDM5ZVx1ZDM5Zlx1ZDNhMVx1ZDNhMlx1ZDNhM1x1ZDNh'@; put 'NFx1ZDNhNVx1ZDNhNlx1ZDNhN1x1ZDNhYVx1ZDNhY1x1ZDNhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDNhZlx1ZDNiMFx1ZDNiMVx1ZDNiMlx1ZDNiM1x1ZDNiNVx1ZDNiNlx1ZDNiN1x1ZDNiOVx1ZDNiYVx1ZDNiYlx1ZDNiZFx1ZDNiZVx1ZDNiZlx1ZDNjMFx1'@; put 'ZDNjMVx1ZDNjMlx1ZDNjM1x1ZDNjNlx1ZDNjN1x1ZDNjYVx1ZDNjYlx1ZDNjY1x1ZDNjZFx1ZDNjZVx1ZDNjZlx1ZDNkMVx1ZDNkMlx1ZDNkM1x1ZDNkNFx1ZDNkNVx1ZDNkNlx1YzBlNVx1YzBlOFx1YzBlY1x1YzBmNFx1YzBmNVx1YzBmN1x1YzBmOVx1YzEwMFx1YzEwNFx1YzEwOFx1YzEx'@; put 'MFx1YzExNVx1YzExY1x1YzExZFx1YzExZVx1YzExZlx1YzEyMFx1YzEyM1x1YzEyNFx1YzEyNlx1YzEyN1x1YzEyY1x1YzEyZFx1YzEyZlx1YzEzMFx1YzEzMVx1YzEzNlx1YzEzOFx1YzEzOVx1YzEzY1x1YzE0MFx1YzE0OFx1YzE0OVx1YzE0Ylx1YzE0Y1x1YzE0ZFx1YzE1NFx1YzE1NVx1'@; put 'YzE1OFx1YzE1Y1x1YzE2NFx1YzE2NVx1YzE2N1x1YzE2OFx1YzE2OVx1YzE3MFx1YzE3NFx1YzE3OFx1YzE4NVx1YzE4Y1x1YzE4ZFx1YzE4ZVx1YzE5MFx1YzE5NFx1YzE5Nlx1YzE5Y1x1YzE5ZFx1YzE5Zlx1YzFhMVx1YzFhNVx1YzFhOFx1YzFhOVx1YzFhY1x1YzFiMFx1YzFiZFx1YzFj'@; put 'NFx1YzFjOFx1YzFjY1x1YzFkNFx1YzFkN1x1YzFkOFx1YzFlMFx1YzFlNFx1YzFlOFx1YzFmMFx1YzFmMVx1YzFmM1x1YzFmY1x1YzFmZFx1YzIwMFx1YzIwNFx1YzIwY1x1YzIwZFx1YzIwZlx1YzIxMVx1YzIxOFx1YzIxOVx1YzIxY1x1YzIxZlx1YzIyMFx1YzIyOFx1YzIyOVx1YzIyYlx1'@; put 'YzIyZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4OF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTg4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODhdW21dXT00ODEyOCttLEZbNDgxMjgrbV09eFsxODhdW21dKTtmb3IoeFsxODldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzZDdcdWQzZDlcdWQzZGFcdWQzZGJcdWQzZGNcdWQzZGRcdWQzZGVcdWQzZGZcdWQzZTBcdWQzZTJcdWQzZTRcdWQzZTVcdWQzZTZcdWQzZTdcdWQzZThcdWQzZTlcdWQzZWFcdWQzZWJcdWQzZWVcdWQzZWZcdWQzZjFcdWQzZjJc'@; put 'dWQzZjNcdWQzZjVcdWQzZjZcdWQzZjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzZjhcdWQzZjlcdWQzZmFcdWQzZmJcdWQzZmVcdWQ0MDBcdWQ0MDJcdWQ0MDNcdWQ0MDRcdWQ0MDVcdWQ0MDZcdWQ0MDdcdWQ0MDlcdWQ0MGFcdWQ0MGJcdWQ0MGNcdWQ0MGRcdWQ0'@; put 'MGVcdWQ0MGZcdWQ0MTBcdWQ0MTFcdWQ0MTJcdWQ0MTNcdWQ0MTRcdWQ0MTVcdWQ0MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0MTdcdWQ0MThcdWQ0MTlcdWQ0MWFcdWQ0MWJcdWQ0MWNcdWQ0MWVcdWQ0MWZcdWQ0MjBcdWQ0MjFcdWQ0MjJcdWQ0MjNcdWQ0MjRc'@; put 'dWQ0MjVcdWQ0MjZcdWQ0MjdcdWQ0MjhcdWQ0MjlcdWQ0MmFcdWQ0MmJcdWQ0MmNcdWQ0MmRcdWQ0MmVcdWQ0MmZcdWQ0MzBcdWQ0MzFcdWQ0MzJcdWQ0MzNcdWQ0MzRcdWQ0MzVcdWQ0MzZcdWQ0MzdcdWMyMmZcdWMyMzFcdWMyMzJcdWMyMzRcdWMyNDhcdWMyNTBcdWMyNTFcdWMyNTRcdWMy'@; put 'NThcdWMyNjBcdWMyNjVcdWMyNmNcdWMyNmRcdWMyNzBcdWMyNzRcdWMyN2NcdWMyN2RcdWMyN2ZcdWMyODFcdWMyODhcdWMyODlcdWMyOTBcdWMyOThcdWMyOWJcdWMyOWRcdWMyYTRcdWMyYTVcdWMyYThcdWMyYWNcdWMyYWRcdWMyYjRcdWMyYjVcdWMyYjdcdWMyYjlcdWMyZGNcdWMyZGRc'@; put 'dWMyZTBcdWMyZTNcdWMyZTRcdWMyZWJcdWMyZWNcdWMyZWRcdWMyZWZcdWMyZjFcdWMyZjZcdWMyZjhcdWMyZjlcdWMyZmJcdWMyZmNcdWMzMDBcdWMzMDhcdWMzMDlcdWMzMGNcdWMzMGRcdWMzMTNcdWMzMTRcdWMzMTVcdWMzMThcdWMzMWNcdWMzMjRcdWMzMjVcdWMzMjhcdWMzMjlcdWMz'@; put 'NDVcdWMzNjhcdWMzNjlcdWMzNmNcdWMzNzBcdWMzNzJcdWMzNzhcdWMzNzlcdWMzN2NcdWMzN2RcdWMzODRcdWMzODhcdWMzOGNcdWMzYzBcdWMzZDhcdWMzZDlcdWMzZGNcdWMzZGZcdWMzZTBcdWMzZTJcdWMzZThcdWMzZTlcdWMzZWRcdWMzZjRcdWMzZjVcdWMzZjhcdWM0MDhcdWM0MTBc'@; put 'dWM0MjRcdWM0MmNcdWM0MzBcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODldLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4OV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg5XVttXV09NDgzODQrbSxGWzQ4Mzg0K21dPXhbMTg5XVttXSk7Zm9yKHhbMTkwXT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDM4XHVkNDM5XHVkNDNhXHVkNDNiXHVkNDNjXHVkNDNkXHVkNDNlXHVkNDNmXHVkNDQxXHVkNDQyXHVkNDQzXHVkNDQ1XHVkNDQ2XHVkNDQ3XHVkNDQ4XHVkNDQ5XHVkNDRhXHVkNDRiXHVkNDRjXHVkNDRk'@; put 'XHVkNDRlXHVkNDRmXHVkNDUwXHVkNDUxXHVkNDUyXHVkNDUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDU0XHVkNDU1XHVkNDU2XHVkNDU3XHVkNDU4XHVkNDU5XHVkNDVhXHVkNDViXHVkNDVkXHVkNDVlXHVkNDVmXHVkNDYxXHVkNDYyXHVkNDYzXHVkNDY1XHVk'@; put 'NDY2XHVkNDY3XHVkNDY4XHVkNDY5XHVkNDZhXHVkNDZiXHVkNDZjXHVkNDZlXHVkNDcwXHVkNDcxXHVkNDcyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDczXHVkNDc0XHVkNDc1XHVkNDc2XHVkNDc3XHVkNDdhXHVkNDdiXHVkNDdkXHVkNDdlXHVkNDgxXHVkNDgz'@; put 'XHVkNDg0XHVkNDg1XHVkNDg2XHVkNDg3XHVkNDhhXHVkNDhjXHVkNDhlXHVkNDhmXHVkNDkwXHVkNDkxXHVkNDkyXHVkNDkzXHVkNDk1XHVkNDk2XHVkNDk3XHVkNDk4XHVkNDk5XHVkNDlhXHVkNDliXHVkNDljXHVkNDlkXHVjNDM0XHVjNDNjXHVjNDNkXHVjNDQ4XHVjNDY0XHVjNDY1XHVj'@; put 'NDY4XHVjNDZjXHVjNDc0XHVjNDc1XHVjNDc5XHVjNDgwXHVjNDk0XHVjNDljXHVjNGI4XHVjNGJjXHVjNGU5XHVjNGYwXHVjNGYxXHVjNGY0XHVjNGY4XHVjNGZhXHVjNGZmXHVjNTAwXHVjNTAxXHVjNTBjXHVjNTEwXHVjNTE0XHVjNTFjXHVjNTI4XHVjNTI5XHVjNTJjXHVjNTMwXHVjNTM4'@; put 'XHVjNTM5XHVjNTNiXHVjNTNkXHVjNTQ0XHVjNTQ1XHVjNTQ4XHVjNTQ5XHVjNTRhXHVjNTRjXHVjNTRkXHVjNTRlXHVjNTUzXHVjNTU0XHVjNTU1XHVjNTU3XHVjNTU4XHVjNTU5XHVjNTVkXHVjNTVlXHVjNTYwXHVjNTYxXHVjNTY0XHVjNTY4XHVjNTcwXHVjNTcxXHVjNTczXHVjNTc0XHVj'@; put 'NTc1XHVjNTdjXHVjNTdkXHVjNTgwXHVjNTg0XHVjNTg3XHVjNThjXHVjNThkXHVjNThmXHVjNTkxXHVjNTk1XHVjNTk3XHVjNTk4XHVjNTljXHVjNWEwXHVjNWE5XHVjNWI0XHVjNWI1XHVjNWI4XHVjNWI5XHVjNWJiXHVjNWJjXHVjNWJkXHVjNWJlXHVjNWM0XHVjNWM1XHVjNWM2XHVjNWM3'@; put 'XHVjNWM4XHVjNWM5XHVjNWNhXHVjNWNjXHVjNWNlXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTkwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5MF1bbV1dPTQ4NjQwK20sRls0ODY0MCttXT14WzE5MF1bbV0pO2Zvcih4WzE5MV09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDQ5ZVx1ZDQ5Zlx1ZDRhMFx1ZDRhMVx1ZDRhMlx1ZDRhM1x1ZDRhNFx1ZDRhNVx1ZDRhNlx1ZDRhN1x1ZDRhOFx1ZDRhYVx1ZDRhYlx1ZDRhY1x1ZDRhZFx1ZDRhZVx1ZDRhZlx1ZDRi'@; put 'MFx1ZDRiMVx1ZDRiMlx1ZDRiM1x1ZDRiNFx1ZDRiNVx1ZDRiNlx1ZDRiN1x1ZDRiOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDRiOVx1ZDRiYVx1ZDRiYlx1ZDRiY1x1ZDRiZFx1ZDRiZVx1ZDRiZlx1ZDRjMFx1ZDRjMVx1ZDRjMlx1ZDRjM1x1ZDRjNFx1ZDRjNVx1'@; put 'ZDRjNlx1ZDRjN1x1ZDRjOFx1ZDRjOVx1ZDRjYVx1ZDRjYlx1ZDRjZFx1ZDRjZVx1ZDRjZlx1ZDRkMVx1ZDRkMlx1ZDRkM1x1ZDRkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDRkNlx1ZDRkN1x1ZDRkOFx1ZDRkOVx1ZDRkYVx1ZDRkYlx1ZDRkZFx1ZDRkZVx1ZDRl'@; put 'MFx1ZDRlMVx1ZDRlMlx1ZDRlM1x1ZDRlNFx1ZDRlNVx1ZDRlNlx1ZDRlN1x1ZDRlOVx1ZDRlYVx1ZDRlYlx1ZDRlZFx1ZDRlZVx1ZDRlZlx1ZDRmMVx1ZDRmMlx1ZDRmM1x1ZDRmNFx1ZDRmNVx1ZDRmNlx1ZDRmN1x1ZDRmOVx1ZDRmYVx1ZDRmY1x1YzVkMFx1YzVkMVx1YzVkNFx1YzVkOFx1'@; put 'YzVlMFx1YzVlMVx1YzVlM1x1YzVlNVx1YzVlY1x1YzVlZFx1YzVlZVx1YzVmMFx1YzVmNFx1YzVmNlx1YzVmN1x1YzVmY1x1YzVmZFx1YzVmZVx1YzVmZlx1YzYwMFx1YzYwMVx1YzYwNVx1YzYwNlx1YzYwN1x1YzYwOFx1YzYwY1x1YzYxMFx1YzYxOFx1YzYxOVx1YzYxYlx1YzYxY1x1YzYy'@; put 'NFx1YzYyNVx1YzYyOFx1YzYyY1x1YzYyZFx1YzYyZVx1YzYzMFx1YzYzM1x1YzYzNFx1YzYzNVx1YzYzN1x1YzYzOVx1YzYzYlx1YzY0MFx1YzY0MVx1YzY0NFx1YzY0OFx1YzY1MFx1YzY1MVx1YzY1M1x1YzY1NFx1YzY1NVx1YzY1Y1x1YzY1ZFx1YzY2MFx1YzY2Y1x1YzY2Zlx1YzY3MVx1'@; put 'YzY3OFx1YzY3OVx1YzY3Y1x1YzY4MFx1YzY4OFx1YzY4OVx1YzY4Ylx1YzY4ZFx1YzY5NFx1YzY5NVx1YzY5OFx1YzY5Y1x1YzZhNFx1YzZhNVx1YzZhN1x1YzZhOVx1YzZiMFx1YzZiMVx1YzZiNFx1YzZiOFx1YzZiOVx1YzZiYVx1YzZjMFx1YzZjMVx1YzZjM1x1YzZjNVx1YzZjY1x1YzZj'@; put 'ZFx1YzZkMFx1YzZkNFx1YzZkY1x1YzZkZFx1YzZlMFx1YzZlMVx1YzZlOFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTkxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTFdW21dXT00ODg5NittLEZbNDg4OTYrbV09eFsxOTFdW21dKTtm'@; put 'b3IoeFsxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0ZmVcdWQ0ZmZcdWQ1MDBcdWQ1MDFcdWQ1MDJcdWQ1MDNcdWQ1MDVcdWQ1MDZcdWQ1MDdcdWQ1MDlcdWQ1MGFcdWQ1MGJcdWQ1MGRcdWQ1MGVcdWQ1MGZcdWQ1'@; put 'MTBcdWQ1MTFcdWQ1MTJcdWQ1MTNcdWQ1MTZcdWQ1MThcdWQ1MTlcdWQ1MWFcdWQ1MWJcdWQ1MWNcdWQ1MWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ1MWVcdWQ1MWZcdWQ1MjBcdWQ1MjFcdWQ1MjJcdWQ1MjNcdWQ1MjRcdWQ1MjVcdWQ1MjZcdWQ1MjdcdWQ1Mjhc'@; put 'dWQ1MjlcdWQ1MmFcdWQ1MmJcdWQ1MmNcdWQ1MmRcdWQ1MmVcdWQ1MmZcdWQ1MzBcdWQ1MzFcdWQ1MzJcdWQ1MzNcdWQ1MzRcdWQ1MzVcdWQ1MzZcdWQ1MzdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ1MzhcdWQ1MzlcdWQ1M2FcdWQ1M2JcdWQ1M2VcdWQ1M2ZcdWQ1'@; put 'NDFcdWQ1NDJcdWQ1NDNcdWQ1NDVcdWQ1NDZcdWQ1NDdcdWQ1NDhcdWQ1NDlcdWQ1NGFcdWQ1NGJcdWQ1NGVcdWQ1NTBcdWQ1NTJcdWQ1NTNcdWQ1NTRcdWQ1NTVcdWQ1NTZcdWQ1NTdcdWQ1NWFcdWQ1NWJcdWQ1NWRcdWQ1NWVcdWQ1NWZcdWQ1NjFcdWQ1NjJcdWQ1NjNcdWM2ZTlcdWM2ZWNc'@; put 'dWM2ZjBcdWM2ZjhcdWM2ZjlcdWM2ZmRcdWM3MDRcdWM3MDVcdWM3MDhcdWM3MGNcdWM3MTRcdWM3MTVcdWM3MTdcdWM3MTlcdWM3MjBcdWM3MjFcdWM3MjRcdWM3MjhcdWM3MzBcdWM3MzFcdWM3MzNcdWM3MzVcdWM3MzdcdWM3M2NcdWM3M2RcdWM3NDBcdWM3NDRcdWM3NGFcdWM3NGNcdWM3'@; put 'NGRcdWM3NGZcdWM3NTFcdWM3NTJcdWM3NTNcdWM3NTRcdWM3NTVcdWM3NTZcdWM3NTdcdWM3NThcdWM3NWNcdWM3NjBcdWM3NjhcdWM3NmJcdWM3NzRcdWM3NzVcdWM3NzhcdWM3N2NcdWM3N2RcdWM3N2VcdWM3ODNcdWM3ODRcdWM3ODVcdWM3ODdcdWM3ODhcdWM3ODlcdWM3OGFcdWM3OGVc'@; put 'dWM3OTBcdWM3OTFcdWM3OTRcdWM3OTZcdWM3OTdcdWM3OThcdWM3OWFcdWM3YTBcdWM3YTFcdWM3YTNcdWM3YTRcdWM3YTVcdWM3YTZcdWM3YWNcdWM3YWRcdWM3YjBcdWM3YjRcdWM3YmNcdWM3YmRcdWM3YmZcdWM3YzBcdWM3YzFcdWM3YzhcdWM3YzlcdWM3Y2NcdWM3Y2VcdWM3ZDBcdWM3'@; put 'ZDhcdWM3ZGRcdWM3ZTRcdWM3ZThcdWM3ZWNcdWM4MDBcdWM4MDFcdWM4MDRcdWM4MDhcdWM4MGFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTkyXVttXV09NDkxNTIrbSxGWzQ5MTUyK21d'@; put 'PXhbMTkyXVttXSk7Zm9yKHhbMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTY0XHVkNTY2XHVkNTY3XHVkNTZhXHVkNTZjXHVkNTZlXHVkNTZmXHVkNTcwXHVkNTcxXHVkNTcyXHVkNTczXHVkNTc2XHVkNTc3XHVk'@; put 'NTc5XHVkNTdhXHVkNTdiXHVkNTdkXHVkNTdlXHVkNTdmXHVkNTgwXHVkNTgxXHVkNTgyXHVkNTgzXHVkNTg2XHVkNThhXHVkNThiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNThjXHVkNThkXHVkNThlXHVkNThmXHVkNTkxXHVkNTkyXHVkNTkzXHVkNTk0XHVkNTk1'@; put 'XHVkNTk2XHVkNTk3XHVkNTk4XHVkNTk5XHVkNTlhXHVkNTliXHVkNTljXHVkNTlkXHVkNTllXHVkNTlmXHVkNWEwXHVkNWExXHVkNWEyXHVkNWEzXHVkNWE0XHVkNWE2XHVkNWE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNWE4XHVkNWE5XHVkNWFhXHVkNWFiXHVk'@; put 'NWFjXHVkNWFkXHVkNWFlXHVkNWFmXHVkNWIwXHVkNWIxXHVkNWIyXHVkNWIzXHVkNWI0XHVkNWI1XHVkNWI2XHVkNWI3XHVkNWI4XHVkNWI5XHVkNWJhXHVkNWJiXHVkNWJjXHVkNWJkXHVkNWJlXHVkNWJmXHVkNWMwXHVkNWMxXHVkNWMyXHVkNWMzXHVkNWM0XHVkNWM1XHVkNWM2XHVkNWM3'@; put 'XHVjODEwXHVjODExXHVjODEzXHVjODE1XHVjODE2XHVjODFjXHVjODFkXHVjODIwXHVjODI0XHVjODJjXHVjODJkXHVjODJmXHVjODMxXHVjODM4XHVjODNjXHVjODQwXHVjODQ4XHVjODQ5XHVjODRjXHVjODRkXHVjODU0XHVjODcwXHVjODcxXHVjODc0XHVjODc4XHVjODdhXHVjODgwXHVj'@; put 'ODgxXHVjODgzXHVjODg1XHVjODg2XHVjODg3XHVjODhiXHVjODhjXHVjODhkXHVjODk0XHVjODlkXHVjODlmXHVjOGExXHVjOGE4XHVjOGJjXHVjOGJkXHVjOGM0XHVjOGM4XHVjOGNjXHVjOGQ0XHVjOGQ1XHVjOGQ3XHVjOGQ5XHVjOGUwXHVjOGUxXHVjOGU0XHVjOGY1XHVjOGZjXHVjOGZk'@; put 'XHVjOTAwXHVjOTA0XHVjOTA1XHVjOTA2XHVjOTBjXHVjOTBkXHVjOTBmXHVjOTExXHVjOTE4XHVjOTJjXHVjOTM0XHVjOTUwXHVjOTUxXHVjOTU0XHVjOTU4XHVjOTYwXHVjOTYxXHVjOTYzXHVjOTZjXHVjOTcwXHVjOTc0XHVjOTdjXHVjOTg4XHVjOTg5XHVjOThjXHVjOTkwXHVjOTk4XHVj'@; put 'OTk5XHVjOTliXHVjOTlkXHVjOWMwXHVjOWMxXHVjOWM0XHVjOWM3XHVjOWM4XHVjOWNhXHVjOWQwXHVjOWQxXHVjOWQzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTkzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5M11bbV1dPTQ5NDA4'@; put 'K20sRls0OTQwOCttXT14WzE5M11bbV0pO2Zvcih4WzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDVjYVx1ZDVjYlx1ZDVjZFx1ZDVjZVx1ZDVjZlx1ZDVkMVx1ZDVkM1x1ZDVkNFx1ZDVkNVx1ZDVkNlx1ZDVkN1x1'@; put 'ZDVkYVx1ZDVkY1x1ZDVkZVx1ZDVkZlx1ZDVlMFx1ZDVlMVx1ZDVlMlx1ZDVlM1x1ZDVlNlx1ZDVlN1x1ZDVlOVx1ZDVlYVx1ZDVlYlx1ZDVlZFx1ZDVlZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDVlZlx1ZDVmMFx1ZDVmMVx1ZDVmMlx1ZDVmM1x1ZDVmNlx1ZDVm'@; put 'OFx1ZDVmYVx1ZDVmYlx1ZDVmY1x1ZDVmZFx1ZDVmZVx1ZDVmZlx1ZDYwMlx1ZDYwM1x1ZDYwNVx1ZDYwNlx1ZDYwN1x1ZDYwOVx1ZDYwYVx1ZDYwYlx1ZDYwY1x1ZDYwZFx1ZDYwZVx1ZDYwZlx1ZDYxMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDYxNlx1ZDYxN1x1'@; put 'ZDYxOFx1ZDYxOVx1ZDYxYVx1ZDYxYlx1ZDYxZFx1ZDYxZVx1ZDYxZlx1ZDYyMVx1ZDYyMlx1ZDYyM1x1ZDYyNVx1ZDYyNlx1ZDYyN1x1ZDYyOFx1ZDYyOVx1ZDYyYVx1ZDYyYlx1ZDYyY1x1ZDYyZVx1ZDYyZlx1ZDYzMFx1ZDYzMVx1ZDYzMlx1ZDYzM1x1ZDYzNFx1ZDYzNVx1ZDYzNlx1ZDYz'@; put 'N1x1ZDYzYVx1ZDYzYlx1YzlkNVx1YzlkNlx1YzlkOVx1YzlkYVx1YzlkY1x1YzlkZFx1YzllMFx1YzllMlx1YzllNFx1YzllN1x1YzllY1x1YzllZFx1YzllZlx1YzlmMFx1YzlmMVx1YzlmOFx1YzlmOVx1YzlmY1x1Y2EwMFx1Y2EwOFx1Y2EwOVx1Y2EwYlx1Y2EwY1x1Y2EwZFx1Y2ExNFx1'@; put 'Y2ExOFx1Y2EyOVx1Y2E0Y1x1Y2E0ZFx1Y2E1MFx1Y2E1NFx1Y2E1Y1x1Y2E1ZFx1Y2E1Zlx1Y2E2MFx1Y2E2MVx1Y2E2OFx1Y2E3ZFx1Y2E4NFx1Y2E5OFx1Y2FiY1x1Y2FiZFx1Y2FjMFx1Y2FjNFx1Y2FjY1x1Y2FjZFx1Y2FjZlx1Y2FkMVx1Y2FkM1x1Y2FkOFx1Y2FkOVx1Y2FlMFx1Y2Fl'@; put 'Y1x1Y2FmNFx1Y2IwOFx1Y2IxMFx1Y2IxNFx1Y2IxOFx1Y2IyMFx1Y2IyMVx1Y2I0MVx1Y2I0OFx1Y2I0OVx1Y2I0Y1x1Y2I1MFx1Y2I1OFx1Y2I1OVx1Y2I1ZFx1Y2I2NFx1Y2I3OFx1Y2I3OVx1Y2I5Y1x1Y2JiOFx1Y2JkNFx1Y2JlNFx1Y2JlN1x1Y2JlOVx1Y2MwY1x1Y2MwZFx1Y2MxMFx1'@; put 'Y2MxNFx1Y2MxY1x1Y2MxZFx1Y2MyMVx1Y2MyMlx1Y2MyN1x1Y2MyOFx1Y2MyOVx1Y2MyY1x1Y2MyZVx1Y2MzMFx1Y2MzOFx1Y2MzOVx1Y2MzYlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5NF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTk0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsx'@; put 'OTRdW21dXT00OTY2NCttLEZbNDk2NjQrbV09eFsxOTRdW21dKTtmb3IoeFsxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2M2RcdWQ2M2VcdWQ2M2ZcdWQ2NDFcdWQ2NDJcdWQ2NDNcdWQ2NDRcdWQ2NDZcdWQ2NDdc'@; put 'dWQ2NGFcdWQ2NGNcdWQ2NGVcdWQ2NGZcdWQ2NTBcdWQ2NTJcdWQ2NTNcdWQ2NTZcdWQ2NTdcdWQ2NTlcdWQ2NWFcdWQ2NWJcdWQ2NWRcdWQ2NWVcdWQ2NWZcdWQ2NjBcdWQ2NjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2NjJcdWQ2NjNcdWQ2NjRcdWQ2NjVcdWQ2'@; put 'NjZcdWQ2NjhcdWQ2NmFcdWQ2NmJcdWQ2NmNcdWQ2NmRcdWQ2NmVcdWQ2NmZcdWQ2NzJcdWQ2NzNcdWQ2NzVcdWQ2NzZcdWQ2NzdcdWQ2NzhcdWQ2NzlcdWQ2N2FcdWQ2N2JcdWQ2N2NcdWQ2N2RcdWQ2N2VcdWQ2N2ZcdWQ2ODBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWQ2ODFcdWQ2ODJcdWQ2ODRcdWQ2ODZcdWQ2ODdcdWQ2ODhcdWQ2ODlcdWQ2OGFcdWQ2OGJcdWQ2OGVcdWQ2OGZcdWQ2OTFcdWQ2OTJcdWQ2OTNcdWQ2OTVcdWQ2OTZcdWQ2OTdcdWQ2OThcdWQ2OTlcdWQ2OWFcdWQ2OWJcdWQ2OWNcdWQ2OWVcdWQ2YTBcdWQ2YTJcdWQ2YTNcdWQ2YTRcdWQ2'@; put 'YTVcdWQ2YTZcdWQ2YTdcdWQ2YTlcdWQ2YWFcdWNjM2NcdWNjM2RcdWNjM2VcdWNjNDRcdWNjNDVcdWNjNDhcdWNjNGNcdWNjNTRcdWNjNTVcdWNjNTdcdWNjNThcdWNjNTlcdWNjNjBcdWNjNjRcdWNjNjZcdWNjNjhcdWNjNzBcdWNjNzVcdWNjOThcdWNjOTlcdWNjOWNcdWNjYTBcdWNjYThc'@; put 'dWNjYTlcdWNjYWJcdWNjYWNcdWNjYWRcdWNjYjRcdWNjYjVcdWNjYjhcdWNjYmNcdWNjYzRcdWNjYzVcdWNjYzdcdWNjYzlcdWNjZDBcdWNjZDRcdWNjZTRcdWNjZWNcdWNjZjBcdWNkMDFcdWNkMDhcdWNkMDlcdWNkMGNcdWNkMTBcdWNkMThcdWNkMTlcdWNkMWJcdWNkMWRcdWNkMjRcdWNk'@; put 'MjhcdWNkMmNcdWNkMzlcdWNkNWNcdWNkNjBcdWNkNjRcdWNkNmNcdWNkNmRcdWNkNmZcdWNkNzFcdWNkNzhcdWNkODhcdWNkOTRcdWNkOTVcdWNkOThcdWNkOWNcdWNkYTRcdWNkYTVcdWNkYTdcdWNkYTlcdWNkYjBcdWNkYzRcdWNkY2NcdWNkZDBcdWNkZThcdWNkZWNcdWNkZjBcdWNkZjhc'@; put 'dWNkZjlcdWNkZmJcdWNkZmRcdWNlMDRcdWNlMDhcdWNlMGNcdWNlMTRcdWNlMTlcdWNlMjBcdWNlMjFcdWNlMjRcdWNlMjhcdWNlMzBcdWNlMzFcdWNlMzNcdWNlMzVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5NV1bbV0uY2hhckNvZGVB'@; put 'dCgwKSYmKGFlW3hbMTk1XVttXV09NDk5MjArbSxGWzQ5OTIwK21dPXhbMTk1XVttXSk7Zm9yKHhbMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmFiXHVkNmFkXHVkNmFlXHVkNmFmXHVkNmIxXHVkNmIyXHVkNmIz'@; put 'XHVkNmI0XHVkNmI1XHVkNmI2XHVkNmI3XHVkNmI4XHVkNmJhXHVkNmJjXHVkNmJkXHVkNmJlXHVkNmJmXHVkNmMwXHVkNmMxXHVkNmMyXHVkNmMzXHVkNmM2XHVkNmM3XHVkNmM5XHVkNmNhXHVkNmNiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmNkXHVkNmNlXHVk'@; put 'NmNmXHVkNmQwXHVkNmQyXHVkNmQzXHVkNmQ1XHVkNmQ2XHVkNmQ4XHVkNmRhXHVkNmRiXHVkNmRjXHVkNmRkXHVkNmRlXHVkNmRmXHVkNmUxXHVkNmUyXHVkNmUzXHVkNmU1XHVkNmU2XHVkNmU3XHVkNmU5XHVkNmVhXHVkNmViXHVkNmVjXHVkNmVkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVkNmVlXHVkNmVmXHVkNmYxXHVkNmYyXHVkNmYzXHVkNmY0XHVkNmY2XHVkNmY3XHVkNmY4XHVkNmY5XHVkNmZhXHVkNmZiXHVkNmZlXHVkNmZmXHVkNzAxXHVkNzAyXHVkNzAzXHVkNzA1XHVkNzA2XHVkNzA3XHVkNzA4XHVkNzA5XHVkNzBhXHVkNzBiXHVkNzBjXHVk'@; put 'NzBkXHVkNzBlXHVkNzBmXHVkNzEwXHVkNzEyXHVkNzEzXHVkNzE0XHVjZTU4XHVjZTU5XHVjZTVjXHVjZTVmXHVjZTYwXHVjZTYxXHVjZTY4XHVjZTY5XHVjZTZiXHVjZTZkXHVjZTc0XHVjZTc1XHVjZTc4XHVjZTdjXHVjZTg0XHVjZTg1XHVjZTg3XHVjZTg5XHVjZTkwXHVjZTkxXHVjZTk0'@; put 'XHVjZTk4XHVjZWEwXHVjZWExXHVjZWEzXHVjZWE0XHVjZWE1XHVjZWFjXHVjZWFkXHVjZWMxXHVjZWU0XHVjZWU1XHVjZWU4XHVjZWViXHVjZWVjXHVjZWY0XHVjZWY1XHVjZWY3XHVjZWY4XHVjZWY5XHVjZjAwXHVjZjAxXHVjZjA0XHVjZjA4XHVjZjEwXHVjZjExXHVjZjEzXHVjZjE1XHVj'@; put 'ZjFjXHVjZjIwXHVjZjI0XHVjZjJjXHVjZjJkXHVjZjJmXHVjZjMwXHVjZjMxXHVjZjM4XHVjZjU0XHVjZjU1XHVjZjU4XHVjZjVjXHVjZjY0XHVjZjY1XHVjZjY3XHVjZjY5XHVjZjcwXHVjZjcxXHVjZjc0XHVjZjc4XHVjZjgwXHVjZjg1XHVjZjhjXHVjZmExXHVjZmE4XHVjZmIwXHVjZmM0'@; put 'XHVjZmUwXHVjZmUxXHVjZmU0XHVjZmU4XHVjZmYwXHVjZmYxXHVjZmYzXHVjZmY1XHVjZmZjXHVkMDAwXHVkMDA0XHVkMDExXHVkMDE4XHVkMDJkXHVkMDM0XHVkMDM1XHVkMDM4XHVkMDNjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTk2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTZd'@; put 'W21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5Nl1bbV1dPTUwMTc2K20sRls1MDE3NittXT14WzE5Nl1bbV0pO2Zvcih4WzE5N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDcxNVx1ZDcxNlx1ZDcxN1x1ZDcxYVx1ZDcx'@; put 'Ylx1ZDcxZFx1ZDcxZVx1ZDcxZlx1ZDcyMVx1ZDcyMlx1ZDcyM1x1ZDcyNFx1ZDcyNVx1ZDcyNlx1ZDcyN1x1ZDcyYVx1ZDcyY1x1ZDcyZVx1ZDcyZlx1ZDczMFx1ZDczMVx1ZDczMlx1ZDczM1x1ZDczNlx1ZDczN1x1ZDczOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZDczYVx1ZDczYlx1ZDczZFx1ZDczZVx1ZDczZlx1ZDc0MFx1ZDc0MVx1ZDc0Mlx1ZDc0M1x1ZDc0NVx1ZDc0Nlx1ZDc0OFx1ZDc0YVx1ZDc0Ylx1ZDc0Y1x1ZDc0ZFx1ZDc0ZVx1ZDc0Zlx1ZDc1Mlx1ZDc1M1x1ZDc1NVx1ZDc1YVx1ZDc1Ylx1ZDc1Y1x1ZDc1ZFx1ZDc1ZVx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDc1Zlx1ZDc2Mlx1ZDc2NFx1ZDc2Nlx1ZDc2N1x1ZDc2OFx1ZDc2YVx1ZDc2Ylx1ZDc2ZFx1ZDc2ZVx1ZDc2Zlx1ZDc3MVx1ZDc3Mlx1ZDc3M1x1ZDc3NVx1ZDc3Nlx1ZDc3N1x1ZDc3OFx1ZDc3OVx1ZDc3YVx1ZDc3Ylx1ZDc3ZVx1ZDc3Zlx1'@; put 'ZDc4MFx1ZDc4Mlx1ZDc4M1x1ZDc4NFx1ZDc4NVx1ZDc4Nlx1ZDc4N1x1ZDc4YVx1ZDc4Ylx1ZDA0NFx1ZDA0NVx1ZDA0N1x1ZDA0OVx1ZDA1MFx1ZDA1NFx1ZDA1OFx1ZDA2MFx1ZDA2Y1x1ZDA2ZFx1ZDA3MFx1ZDA3NFx1ZDA3Y1x1ZDA3ZFx1ZDA4MVx1ZDBhNFx1ZDBhNVx1ZDBhOFx1ZDBh'@; put 'Y1x1ZDBiNFx1ZDBiNVx1ZDBiN1x1ZDBiOVx1ZDBjMFx1ZDBjMVx1ZDBjNFx1ZDBjOFx1ZDBjOVx1ZDBkMFx1ZDBkMVx1ZDBkM1x1ZDBkNFx1ZDBkNVx1ZDBkY1x1ZDBkZFx1ZDBlMFx1ZDBlNFx1ZDBlY1x1ZDBlZFx1ZDBlZlx1ZDBmMFx1ZDBmMVx1ZDBmOFx1ZDEwZFx1ZDEzMFx1ZDEzMVx1'@; put 'ZDEzNFx1ZDEzOFx1ZDEzYVx1ZDE0MFx1ZDE0MVx1ZDE0M1x1ZDE0NFx1ZDE0NVx1ZDE0Y1x1ZDE0ZFx1ZDE1MFx1ZDE1NFx1ZDE1Y1x1ZDE1ZFx1ZDE1Zlx1ZDE2MVx1ZDE2OFx1ZDE2Y1x1ZDE3Y1x1ZDE4NFx1ZDE4OFx1ZDFhMFx1ZDFhMVx1ZDFhNFx1ZDFhOFx1ZDFiMFx1ZDFiMVx1ZDFi'@; put 'M1x1ZDFiNVx1ZDFiYVx1ZDFiY1x1ZDFjMFx1ZDFkOFx1ZDFmNFx1ZDFmOFx1ZDIwN1x1ZDIwOVx1ZDIxMFx1ZDIyY1x1ZDIyZFx1ZDIzMFx1ZDIzNFx1ZDIzY1x1ZDIzZFx1ZDIzZlx1ZDI0MVx1ZDI0OFx1ZDI1Y1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5N10ubGVuZ3RoOysrbSk2'@; put 'NTUzMyE9PXhbMTk3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTddW21dXT01MDQzMittLEZbNTA0MzIrbV09eFsxOTddW21dKTtmb3IoeFsxOThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ3OGRcdWQ3OGVcdWQ3'@; put 'OGZcdWQ3OTFcdWQ3OTJcdWQ3OTNcdWQ3OTRcdWQ3OTVcdWQ3OTZcdWQ3OTdcdWQ3OWFcdWQ3OWNcdWQ3OWVcdWQ3OWZcdWQ3YTBcdWQ3YTFcdWQ3YTJcdWQ3YTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyNjRcdWQyODBcdWQyODFcdWQyODRcdWQyODhcdWQyOTBcdWQyOTFcdWQyOTVcdWQyOWNcdWQyYTBcdWQyYTRcdWQyYWNcdWQyYjFcdWQyYjhcdWQyYjlcdWQyYmNcdWQy'@; put 'YmZcdWQyYzBcdWQyYzJcdWQyYzhcdWQyYzlcdWQyY2JcdWQyZDRcdWQyZDhcdWQyZGNcdWQyZTRcdWQyZTVcdWQyZjBcdWQyZjFcdWQyZjRcdWQyZjhcdWQzMDBcdWQzMDFcdWQzMDNcdWQzMDVcdWQzMGNcdWQzMGRcdWQzMGVcdWQzMTBcdWQzMTRcdWQzMTZcdWQzMWNcdWQzMWRcdWQzMWZc'@; put 'dWQzMjBcdWQzMjFcdWQzMjVcdWQzMjhcdWQzMjlcdWQzMmNcdWQzMzBcdWQzMzhcdWQzMzlcdWQzM2JcdWQzM2NcdWQzM2RcdWQzNDRcdWQzNDVcdWQzN2NcdWQzN2RcdWQzODBcdWQzODRcdWQzOGNcdWQzOGRcdWQzOGZcdWQzOTBcdWQzOTFcdWQzOThcdWQzOTlcdWQzOWNcdWQzYTBcdWQz'@; put 'YThcdWQzYTlcdWQzYWJcdWQzYWRcdWQzYjRcdWQzYjhcdWQzYmNcdWQzYzRcdWQzYzVcdWQzYzhcdWQzYzlcdWQzZDBcdWQzZDhcdWQzZTFcdWQzZTNcdWQzZWNcdWQzZWRcdWQzZjBcdWQzZjRcdWQzZmNcdWQzZmRcdWQzZmZcdWQ0MDFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOThd'@; put 'Lmxlbmd0aDsrK20pNjU1MzMhPT14WzE5OF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTk4XVttXV09NTA2ODgrbSxGWzUwNjg4K21dPXhbMTk4XVttXSk7Zm9yKHhbMTk5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDA4XHVkNDFkXHVkNDQwXHVkNDQ0XHVkNDVjXHVkNDYwXHVkNDY0XHVkNDZkXHVkNDZmXHVkNDc4XHVkNDc5XHVkNDdjXHVkNDdmXHVkNDgwXHVk'@; put 'NDgyXHVkNDg4XHVkNDg5XHVkNDhiXHVkNDhkXHVkNDk0XHVkNGE5XHVkNGNjXHVkNGQwXHVkNGQ0XHVkNGRjXHVkNGRmXHVkNGU4XHVkNGVjXHVkNGYwXHVkNGY4XHVkNGZiXHVkNGZkXHVkNTA0XHVkNTA4XHVkNTBjXHVkNTE0XHVkNTE1XHVkNTE3XHVkNTNjXHVkNTNkXHVkNTQwXHVkNTQ0'@; put 'XHVkNTRjXHVkNTRkXHVkNTRmXHVkNTUxXHVkNTU4XHVkNTU5XHVkNTVjXHVkNTYwXHVkNTY1XHVkNTY4XHVkNTY5XHVkNTZiXHVkNTZkXHVkNTc0XHVkNTc1XHVkNTc4XHVkNTdjXHVkNTg0XHVkNTg1XHVkNTg3XHVkNTg4XHVkNTg5XHVkNTkwXHVkNWE1XHVkNWM4XHVkNWM5XHVkNWNjXHVk'@; put 'NWQwXHVkNWQyXHVkNWQ4XHVkNWQ5XHVkNWRiXHVkNWRkXHVkNWU0XHVkNWU1XHVkNWU4XHVkNWVjXHVkNWY0XHVkNWY1XHVkNWY3XHVkNWY5XHVkNjAwXHVkNjAxXHVkNjA0XHVkNjA4XHVkNjEwXHVkNjExXHVkNjEzXHVkNjE0XHVkNjE1XHVkNjFjXHVkNjIwXHVmZmZkIi5zcGxpdCgiIiks'@; put 'bT0wO20hPXhbMTk5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5OV1bbV1dPTUwOTQ0K20sRls1MDk0NCttXT14WzE5OV1bbV0pO2Zvcih4WzIwMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDYyNFx1ZDYyZFx1ZDYzOFx1ZDYzOVx1ZDYzY1x1ZDY0MFx1ZDY0NVx1ZDY0OFx1ZDY0OVx1ZDY0Ylx1ZDY0ZFx1ZDY1MVx1'@; put 'ZDY1NFx1ZDY1NVx1ZDY1OFx1ZDY1Y1x1ZDY2N1x1ZDY2OVx1ZDY3MFx1ZDY3MVx1ZDY3NFx1ZDY4M1x1ZDY4NVx1ZDY4Y1x1ZDY4ZFx1ZDY5MFx1ZDY5NFx1ZDY5ZFx1ZDY5Zlx1ZDZhMVx1ZDZhOFx1ZDZhY1x1ZDZiMFx1ZDZiOVx1ZDZiYlx1ZDZjNFx1ZDZjNVx1ZDZjOFx1ZDZjY1x1ZDZk'@; put 'MVx1ZDZkNFx1ZDZkN1x1ZDZkOVx1ZDZlMFx1ZDZlNFx1ZDZlOFx1ZDZmMFx1ZDZmNVx1ZDZmY1x1ZDZmZFx1ZDcwMFx1ZDcwNFx1ZDcxMVx1ZDcxOFx1ZDcxOVx1ZDcxY1x1ZDcyMFx1ZDcyOFx1ZDcyOVx1ZDcyYlx1ZDcyZFx1ZDczNFx1ZDczNVx1ZDczOFx1ZDczY1x1ZDc0NFx1ZDc0N1x1'@; put 'ZDc0OVx1ZDc1MFx1ZDc1MVx1ZDc1NFx1ZDc1Nlx1ZDc1N1x1ZDc1OFx1ZDc1OVx1ZDc2MFx1ZDc2MVx1ZDc2M1x1ZDc2NVx1ZDc2OVx1ZDc2Y1x1ZDc3MFx1ZDc3NFx1ZDc3Y1x1ZDc3ZFx1ZDc4MVx1ZDc4OFx1ZDc4OVx1ZDc4Y1x1ZDc5MFx1ZDc5OFx1ZDc5OVx1ZDc5Ylx1ZDc5ZFx1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLG09MDttIT14WzIwMF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjAwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDBdW21dXT01MTIwMCttLEZbNTEyMDArbV09eFsyMDBdW21dKTtmb3IoeFsyMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmM2RcdTRmNzNcdTUwNDdcdTUwZjlcdTUyYTBcdTUzZWZcdTU0NzVcdTU0ZTVcdTU2MDlcdTVhYzFc'@; put 'dTViYjZcdTY2ODdcdTY3YjZcdTY3YjdcdTY3ZWZcdTZiNGNcdTczYzJcdTc1YzJcdTdhM2NcdTgyZGJcdTgzMDRcdTg4NTdcdTg4ODhcdThhMzZcdThjYzhcdThkY2ZcdThlZmJcdThmZTZcdTk5ZDVcdTUyM2JcdTUzNzRcdTU0MDRcdTYwNmFcdTYxNjRcdTZiYmNcdTczY2ZcdTgxMWFcdTg5'@; put 'YmFcdTg5ZDJcdTk1YTNcdTRmODNcdTUyMGFcdTU4YmVcdTU5NzhcdTU5ZTZcdTVlNzJcdTVlNzlcdTYxYzdcdTYzYzBcdTY3NDZcdTY3ZWNcdTY4N2ZcdTZmOTdcdTc2NGVcdTc3MGJcdTc4ZjVcdTdhMDhcdTdhZmZcdTdjMjFcdTgwOWRcdTgyNmVcdTgyNzFcdThhZWJcdTk1OTNcdTRlNmJc'@; put 'dTU1OWRcdTY2ZjdcdTZlMzRcdTc4YTNcdTdhZWRcdTg0NWJcdTg5MTBcdTg3NGVcdTk3YThcdTUyZDhcdTU3NGVcdTU4MmFcdTVkNGNcdTYxMWZcdTYxYmVcdTYyMjFcdTY1NjJcdTY3ZDFcdTZhNDRcdTZlMWJcdTc1MThcdTc1YjNcdTc2ZTNcdTc3YjBcdTdkM2FcdTkwYWZcdTk0NTFcdTk0'@; put 'NTJcdTlmOTVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwMl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjAyXVttXV09NTE3MTIrbSxGWzUxNzEyK21dPXhbMjAyXVttXSk7Zm9yKHhbMjAzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MzIzXHU1Y2FjXHU3NTMyXHU4MGRiXHU5MjQwXHU5NTk4XHU1MjViXHU1ODA4'@; put 'XHU1OWRjXHU1Y2ExXHU1ZDE3XHU1ZWI3XHU1ZjNhXHU1ZjRhXHU2MTc3XHU2YzVmXHU3NTdhXHU3NTg2XHU3Y2UwXHU3ZDczXHU3ZGIxXHU3ZjhjXHU4MTU0XHU4MjIxXHU4NTkxXHU4OTQxXHU4YjFiXHU5MmZjXHU5NjRkXHU5YzQ3XHU0ZWNiXHU0ZWY3XHU1MDBiXHU1MWYxXHU1ODRmXHU2'@; put 'MTM3XHU2MTNlXHU2MTY4XHU2NTM5XHU2OWVhXHU2ZjExXHU3NWE1XHU3Njg2XHU3NmQ2XHU3Yjg3XHU4MmE1XHU4NGNiXHVmOTAwXHU5M2E3XHU5NThiXHU1NTgwXHU1YmEyXHU1NzUxXHVmOTAxXHU3Y2IzXHU3ZmI5XHU5MWI1XHU1MDI4XHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MzZl'@; put 'XHU2NGRhXHU2NGU3XHU2ZTIwXHU3MGFjXHU3OTViXHU4ZGRkXHU4ZTFlXHVmOTAyXHU5MDdkXHU5MjQ1XHU5MmY4XHU0ZTdlXHU0ZWY2XHU1MDY1XHU1ZGZlXHU1ZWZhXHU2MTA2XHU2OTU3XHU4MTcxXHU4NjU0XHU4ZTQ3XHU5Mzc1XHU5YTJiXHU0ZTVlXHU1MDkxXHU2NzcwXHU2ODQwXHU1'@; put 'MTA5XHU1MjhkXHU1MjkyXHU2YWEyXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjAzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwM11bbV1dPTUxOTY4K20sRls1MTk2OCttXT14WzIwM11bbV0pO2Zvcih4WzIwNF09Ilx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzdiY1x1OTIxMFx1OWVkNFx1NTJhYlx1NjAyZlx1OGZm'@; put 'Mlx1NTA0OFx1NjFhOVx1NjNlZFx1NjRjYVx1NjgzY1x1NmE4NFx1NmZjMFx1ODE4OFx1ODlhMVx1OTY5NFx1NTgwNVx1NzI3ZFx1NzJhY1x1NzUwNFx1N2Q3OVx1N2U2ZFx1ODBhOVx1ODk4Ylx1OGI3NFx1OTA2M1x1OWQ1MVx1NjI4OVx1NmM3YVx1NmY1NFx1N2Q1MFx1N2YzYVx1OGEyM1x1'@; put 'NTE3Y1x1NjE0YVx1N2I5ZFx1OGIxOVx1OTI1N1x1OTM4Y1x1NGVhY1x1NGZkM1x1NTAxZVx1NTBiZVx1NTEwNlx1NTJjMVx1NTJjZFx1NTM3Zlx1NTc3MFx1NTg4M1x1NWU5YVx1NWY5MVx1NjE3Nlx1NjFhY1x1NjRjZVx1NjU2Y1x1NjY2Zlx1NjZiYlx1NjZmNFx1Njg5N1x1NmQ4N1x1NzA4'@; put 'NVx1NzBmMVx1NzQ5Zlx1NzRhNVx1NzRjYVx1NzVkOVx1Nzg2Y1x1NzhlY1x1N2FkZlx1N2FmNlx1N2Q0NVx1N2Q5M1x1ODAxNVx1ODAzZlx1ODExYlx1ODM5Nlx1OGI2Nlx1OGYxNVx1OTAxNVx1OTNlMVx1OTgwM1x1OTgzOFx1OWE1YVx1OWJlOFx1NGZjMlx1NTU1M1x1NTgzYVx1NTk1MVx1'@; put 'NWI2M1x1NWM0Nlx1NjBiOFx1NjIxMlx1Njg0Mlx1NjhiMFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwNF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDRdW21dXT01MjIyNCttLEZbNTIyMjQrbV09eFsyMDRdW21dKTtmb3IoeFsyMDVd'@; put 'PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY4ZThcdTZlYWFcdTc1NGNcdTc2'@; put 'NzhcdTc4Y2VcdTdhM2RcdTdjZmJcdTdlNmJcdTdlN2NcdThhMDhcdThhYTFcdThjM2ZcdTk2OGVcdTlkYzRcdTUzZTRcdTUzZTlcdTU0NGFcdTU0NzFcdTU2ZmFcdTU5ZDFcdTViNjRcdTVjM2JcdTVlYWJcdTYyZjdcdTY1MzdcdTY1NDVcdTY1NzJcdTY2YTBcdTY3YWZcdTY5YzFcdTZjYmRc'@; put 'dTc1ZmNcdTc2OTBcdTc3N2VcdTdhM2ZcdTdmOTRcdTgwMDNcdTgwYTFcdTgxOGZcdTgyZTZcdTgyZmRcdTgzZjBcdTg1YzFcdTg4MzFcdTg4YjRcdThhYTVcdWY5MDNcdThmOWNcdTkzMmVcdTk2YzdcdTk4NjdcdTlhZDhcdTlmMTNcdTU0ZWRcdTY1OWJcdTY2ZjJcdTY4OGZcdTdhNDBcdThj'@; put 'MzdcdTlkNjBcdTU2ZjBcdTU3NjRcdTVkMTFcdTY2MDZcdTY4YjFcdTY4Y2RcdTZlZmVcdTc0MjhcdTg4OWVcdTliZTRcdTZjNjhcdWY5MDRcdTlhYThcdTRmOWJcdTUxNmNcdTUxNzFcdTUyOWZcdTViNTRcdTVkZTVcdTYwNTBcdTYwNmRcdTYyZjFcdTYzYTdcdTY1M2JcdTczZDlcdTdhN2Fc'@; put 'dTg2YTNcdThjYTJcdTk3OGZcdTRlMzJcdTViZTFcdTYyMDhcdTY3OWNcdTc0ZGNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwNV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjA1XVttXV09NTI0ODArbSxGWzUyNDgwK21dPXhbMjA1XVtt'@; put 'XSk7Zm9yKHhbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OWQxXHU4'@; put 'M2QzXHU4YTg3XHU4YWIyXHU4ZGU4XHU5MDRlXHU5MzRiXHU5ODQ2XHU1ZWQzXHU2OWU4XHU4NWZmXHU5MGVkXHVmOTA1XHU1MWEwXHU1Yjk4XHU1YmVjXHU2MTYzXHU2OGZhXHU2YjNlXHU3MDRjXHU3NDJmXHU3NGQ4XHU3YmExXHU3ZjUwXHU4M2M1XHU4OWMwXHU4Y2FiXHU5NWRjXHU5OTI4'@; put 'XHU1MjJlXHU2MDVkXHU2MmVjXHU5MDAyXHU0ZjhhXHU1MTQ5XHU1MzIxXHU1OGQ5XHU1ZWUzXHU2NmUwXHU2ZDM4XHU3MDlhXHU3MmMyXHU3M2Q2XHU3YjUwXHU4MGYxXHU5NDViXHU1MzY2XHU2MzliXHU3ZjZiXHU0ZTU2XHU1MDgwXHU1ODRhXHU1OGRlXHU2MDJhXHU2MTI3XHU2MmQwXHU2'@; put 'OWQwXHU5YjQxXHU1YjhmXHU3ZDE4XHU4MGIxXHU4ZjVmXHU0ZWE0XHU1MGQxXHU1NGFjXHU1NWFjXHU1YjBjXHU1ZGEwXHU1ZGU3XHU2NTJhXHU2NTRlXHU2ODIxXHU2YTRiXHU3MmUxXHU3NjhlXHU3N2VmXHU3ZDVlXHU3ZmY5XHU4MWEwXHU4NTRlXHU4NmRmXHU4ZjAzXHU4ZjRlXHU5MGNh'@; put 'XHU5OTAzXHU5YTU1XHU5YmFiXHU0ZTE4XHU0ZTQ1XHU0ZTVkXHU0ZWM3XHU0ZmYxXHU1MTc3XHU1MmZlXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwNl1bbV1dPTUyNzM2K20sRls1Mjcz'@; put 'NittXT14WzIwNl1bbV0pO2Zvcih4WzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1NTM0MFx1NTNlM1x1NTNlNVx1NTQ4ZVx1NTYxNFx1NTc3NVx1NTdhMlx1NWJjN1x1NWQ4N1x1NWVkMFx1NjFmY1x1NjJkOFx1NjU1MVx1NjdiOFx1NjdlOVx1NjljYlx1NmI1MFx1NmJjNlx1NmJlY1x1NmM0Mlx1NmU5ZFx1NzA3OFx1NzJkN1x1NzM5Nlx1NzQwM1x1NzdiZlx1Nzdl'@; put 'OVx1N2E3Nlx1N2Q3Zlx1ODAwOVx1ODFmY1x1ODIwNVx1ODIwYVx1ODJkZlx1ODg2Mlx1OGIzM1x1OGNmY1x1OGVjMFx1OTAxMVx1OTBiMVx1OTI2NFx1OTJiNlx1OTlkMlx1OWE0NVx1OWNlOVx1OWRkN1x1OWY5Y1x1NTcwYlx1NWM0MFx1ODNjYVx1OTdhMFx1OTdhYlx1OWViNFx1NTQxYlx1'@; put 'N2E5OFx1N2ZhNFx1ODhkOVx1OGVjZFx1OTBlMVx1NTgwMFx1NWM0OFx1NjM5OFx1N2E5Zlx1NWJhZVx1NWYxM1x1N2E3OVx1N2FhZVx1ODI4ZVx1OGVhY1x1NTAyNlx1NTIzOFx1NTJmOFx1NTM3N1x1NTcwOFx1NjJmM1x1NjM3Mlx1NmIwYVx1NmRjM1x1NzczN1x1NTNhNVx1NzM1N1x1ODU2'@; put 'OFx1OGU3Nlx1OTVkNVx1NjczYVx1NmFjM1x1NmY3MFx1OGE2ZFx1OGVjY1x1OTk0Ylx1ZjkwNlx1NjY3N1x1NmI3OFx1OGNiNFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwN10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDddW21dXT01'@; put 'Mjk5MittLEZbNTI5OTIrbV09eFsyMDddW21dKTtmb3IoeFsyMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdTliM2NcdWY5MDdcdTUzZWJcdTU3MmRcdTU5NGVcdTYzYzZcdTY5ZmJcdTczZWFcdTc4NDVcdTdhYmFcdTdhYzVcdTdjZmVcdTg0NzVcdTg5OGZcdThkNzNcdTkwMzVcdTk1YThcdTUyZmJcdTU3NDdcdTc1NDdcdTdiNjBcdTgzY2NcdTkyMWVcdWY5MDhcdTZh'@; put 'NThcdTUxNGJcdTUyNGJcdTUyODdcdTYyMWZcdTY4ZDhcdTY5NzVcdTk2OTlcdTUwYzVcdTUyYTRcdTUyZTRcdTYxYzNcdTY1YTRcdTY4MzlcdTY5ZmZcdTc0N2VcdTdiNGJcdTgyYjlcdTgzZWJcdTg5YjJcdThiMzlcdThmZDFcdTk5NDlcdWY5MDlcdTRlY2FcdTU5OTdcdTY0ZDJcdTY2MTFc'@; put 'dTZhOGVcdTc0MzRcdTc5ODFcdTc5YmRcdTgyYTlcdTg4N2VcdTg4N2ZcdTg5NWZcdWY5MGFcdTkzMjZcdTRmMGJcdTUzY2FcdTYwMjVcdTYyNzFcdTZjNzJcdTdkMWFcdTdkNjZcdTRlOThcdTUxNjJcdTc3ZGNcdTgwYWZcdTRmMDFcdTRmMGVcdTUxNzZcdTUxODBcdTU1ZGNcdTU2NjhcdTU3'@; put 'M2JcdTU3ZmFcdTU3ZmNcdTU5MTRcdTU5NDdcdTU5OTNcdTViYzRcdTVjOTBcdTVkMGVcdTVkZjFcdTVlN2VcdTVmY2NcdTYyODBcdTY1ZDdcdTY1ZTNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwOF1bbV0uY2hhckNvZGVBdCgwKSYmKGFl'@; put 'W3hbMjA4XVttXV09NTMyNDgrbSxGWzUzMjQ4K21dPXhbMjA4XVttXSk7Zm9yKHhbMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzFlXHU2NzFmXHU2NzVlXHU2OGNiXHU2OGM0XHU2YTVmXHU2YjNhXHU2YzIzXHU2YzdkXHU2YzgyXHU2ZGM3XHU3Mzk4XHU3NDI2XHU3NDJhXHU3NDgyXHU3NGEzXHU3NTc4XHU3NTdmXHU3ODgxXHU3OGVmXHU3OTQxXHU3OTQ3XHU3'@; put 'OTQ4XHU3OTdhXHU3Yjk1XHU3ZDAwXHU3ZGJhXHU3Zjg4XHU4MDA2XHU4MDJkXHU4MDhjXHU4YTE4XHU4YjRmXHU4YzQ4XHU4ZDc3XHU5MzIxXHU5MzI0XHU5OGUyXHU5OTUxXHU5YTBlXHU5YTBmXHU5YTY1XHU5ZTkyXHU3ZGNhXHU0Zjc2XHU1NDA5XHU2MmVlXHU2ODU0XHU5MWQxXHU1NWFi'@; put 'XHU1MTNhXHVmOTBiXHVmOTBjXHU1YTFjXHU2MWU2XHVmOTBkXHU2MmNmXHU2MmZmXHVmOTBlXHVmOTBmXHVmOTEwXHVmOTExXHVmOTEyXHVmOTEzXHU5MGEzXHVmOTE0XHVmOTE1XHVmOTE2XHVmOTE3XHVmOTE4XHU4YWZlXHVmOTE5XHVmOTFhXHVmOTFiXHVmOTFjXHU2Njk2XHVmOTFkXHU3'@; put 'MTU2XHVmOTFlXHVmOTFmXHU5NmUzXHVmOTIwXHU2MzRmXHU2MzdhXHU1MzU3XHVmOTIxXHU2NzhmXHU2OTYwXHU2ZTczXHVmOTIyXHU3NTM3XHVmOTIzXHVmOTI0XHVmOTI1XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDldW21dLmNoYXJD'@; put 'b2RlQXQoMCkmJihhZVt4WzIwOV1bbV1dPTUzNTA0K20sRls1MzUwNCttXT14WzIwOV1bbV0pO2Zvcih4WzIxMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2QwZFx1ZjkyNlx1ZjkyN1x1ODg3Mlx1NTZjYVx1NWExOFx1ZjkyOFx1ZjkyOVx1ZjkyYVx1ZjkyYlx1ZjkyY1x1NGU0M1x1ZjkyZFx1NTE2N1x1NTk0OFx1NjdmMFx1ODAxMFx1ZjkyZVx1NTk3M1x1NWU3NFx1'@; put 'NjQ5YVx1NzljYVx1NWZmNVx1NjA2Y1x1NjJjOFx1NjM3Ylx1NWJlN1x1NWJkN1x1NTJhYVx1ZjkyZlx1NTk3NFx1NWYyOVx1NjAxMlx1ZjkzMFx1ZjkzMVx1ZjkzMlx1NzQ1OVx1ZjkzM1x1ZjkzNFx1ZjkzNVx1ZjkzNlx1ZjkzN1x1ZjkzOFx1OTlkMVx1ZjkzOVx1ZjkzYVx1ZjkzYlx1Zjkz'@; put 'Y1x1ZjkzZFx1ZjkzZVx1ZjkzZlx1Zjk0MFx1Zjk0MVx1Zjk0Mlx1Zjk0M1x1NmZjM1x1Zjk0NFx1Zjk0NVx1ODFiZlx1OGZiMlx1NjBmMVx1Zjk0Nlx1Zjk0N1x1ODE2Nlx1Zjk0OFx1Zjk0OVx1NWMzZlx1Zjk0YVx1Zjk0Ylx1Zjk0Y1x1Zjk0ZFx1Zjk0ZVx1Zjk0Zlx1Zjk1MFx1Zjk1MVx1'@; put 'NWFlOVx1OGEyNVx1Njc3Ylx1N2QxMFx1Zjk1Mlx1Zjk1M1x1Zjk1NFx1Zjk1NVx1Zjk1Nlx1Zjk1N1x1ODBmZFx1Zjk1OFx1Zjk1OVx1NWMzY1x1NmNlNVx1NTMzZlx1NmViYVx1NTkxYVx1ODMzNlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxMF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhb'@; put 'MjEwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTBdW21dXT01Mzc2MCttLEZbNTM3NjArbV09eFsyMTBdW21dKTtmb3IoeFsyMTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMzlcdTRlYjZcdTRmNDZcdTU1YWVcdTU3MThcdTU4YzdcdTVmNTZcdTY1YjdcdTY1ZTZcdTZhODBcdTZiYjVcdTZlNGRcdTc3ZWRcdTdhZWZcdTdjMWVcdTdkZGVcdTg2Y2JcdTg4OTJc'@; put 'dTkxMzJcdTkzNWJcdTY0YmJcdTZmYmVcdTczN2FcdTc1YjhcdTkwNTRcdTU1NTZcdTU3NGRcdTYxYmFcdTY0ZDRcdTY2YzdcdTZkZTFcdTZlNWJcdTZmNmRcdTZmYjlcdTc1ZjBcdTgwNDNcdTgxYmRcdTg1NDFcdTg5ODNcdThhYzdcdThiNWFcdTkzMWZcdTZjOTNcdTc1NTNcdTdiNTRcdThl'@; put 'MGZcdTkwNWRcdTU1MTBcdTU4MDJcdTU4NThcdTVlNjJcdTYyMDdcdTY0OWVcdTY4ZTBcdTc1NzZcdTdjZDZcdTg3YjNcdTllZThcdTRlZTNcdTU3ODhcdTU3NmVcdTU5MjdcdTVjMGRcdTVjYjFcdTVlMzZcdTVmODVcdTYyMzRcdTY0ZTFcdTczYjNcdTgxZmFcdTg4OGJcdThjYjhcdTk2OGFc'@; put 'dTllZGJcdTViODVcdTVmYjdcdTYwYjNcdTUwMTJcdTUyMDBcdTUyMzBcdTU3MTZcdTU4MzVcdTU4NTdcdTVjMGVcdTVjNjBcdTVjZjZcdTVkOGJcdTVlYTZcdTVmOTJcdTYwYmNcdTYzMTFcdTYzODlcdTY0MTdcdTY4NDNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTFdLmxlbmd0aDsr'@; put 'K20pNjU1MzMhPT14WzIxMV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjExXVttXV09NTQwMTYrbSxGWzU0MDE2K21dPXhbMjExXVttXSk7Zm9yKHhbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OGY5XHU2YWMyXHU2ZGQ4XHU2ZTIxXHU2ZWQ0XHU2ZmU0XHU3MWZlXHU3NmRjXHU3Nzc5XHU3OWIxXHU3YTNiXHU4NDA0XHU4OWE5XHU4Y2VkXHU4ZGYzXHU4ZTQ4'@; put 'XHU5MDAzXHU5MDE0XHU5MDUzXHU5MGZkXHU5MzRkXHU5Njc2XHU5N2RjXHU2YmQyXHU3MDA2XHU3MjU4XHU3MmEyXHU3MzY4XHU3NzYzXHU3OWJmXHU3YmU0XHU3ZTliXHU4YjgwXHU1OGE5XHU2MGM3XHU2NTY2XHU2NWZkXHU2NmJlXHU2YzhjXHU3MTFlXHU3MWM5XHU4YzVhXHU5ODEzXHU0'@; put 'ZTZkXHU3YTgxXHU0ZWRkXHU1MWFjXHU1MWNkXHU1MmQ1XHU1NDBjXHU2MWE3XHU2NzcxXHU2ODUwXHU2OGRmXHU2ZDFlXHU2ZjdjXHU3NWJjXHU3N2IzXHU3YWU1XHU4MGY0XHU4NDYzXHU5Mjg1XHU1MTVjXHU2NTk3XHU2NzVjXHU2NzkzXHU3NWQ4XHU3YWM3XHU4MzczXHVmOTVhXHU4YzQ2'@; put 'XHU5MDE3XHU5ODJkXHU1YzZmXHU4MWMwXHU4MjlhXHU5MDQxXHU5MDZmXHU5MjBkXHU1Zjk3XHU1ZDlkXHU2YTU5XHU3MWM4XHU3NjdiXHU3YjQ5XHU4NWU0XHU4YjA0XHU5MTI3XHU5YTMwXHU1NTg3XHU2MWY2XHVmOTViXHU3NjY5XHU3Zjg1XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhb'@; put 'MjEyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxMl1bbV1dPTU0MjcyK20sRls1NDI3MittXT14WzIxMl1bbV0pO2Zvcih4WzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODYzZlx1ODdiYVx1ODhmOFx1OTA4Zlx1Zjk1Y1x1NmQxYlx1NzBkOVx1NzNkZVx1N2Q2MVx1ODQzZFx1Zjk1ZFx1OTE2YVx1OTlmMVx1Zjk1'@; put 'ZVx1NGU4Mlx1NTM3NVx1NmIwNFx1NmIxMlx1NzAzZVx1NzIxYlx1ODYyZFx1OWUxZVx1NTI0Y1x1OGZhM1x1NWQ1MFx1NjRlNVx1NjUyY1x1NmIxNlx1NmZlYlx1N2M0M1x1N2U5Y1x1ODVjZFx1ODk2NFx1ODliZFx1NjJjOVx1ODFkOFx1ODgxZlx1NWVjYVx1NjcxN1x1NmQ2YVx1NzJmY1x1'@; put 'NzQwNVx1NzQ2Zlx1ODc4Mlx1OTBkZVx1NGY4Nlx1NWQwZFx1NWZhMFx1ODQwYVx1NTFiN1x1NjNhMFx1NzU2NVx1NGVhZVx1NTAwNlx1NTE2OVx1NTFjOVx1Njg4MVx1NmExMVx1N2NhZVx1N2NiMVx1N2NlN1x1ODI2Zlx1OGFkMlx1OGYxYlx1OTFjZlx1NGZiNlx1NTEzN1x1NTJmNVx1NTQ0'@; put 'Mlx1NWVlY1x1NjE2ZVx1NjIzZVx1NjVjNVx1NmFkYVx1NmZmZVx1NzkyYVx1ODVkY1x1ODgyM1x1OTVhZFx1OWE2Mlx1OWE2YVx1OWU5N1x1OWVjZVx1NTI5Ylx1NjZjNlx1NmI3N1x1NzAxZFx1NzkyYlx1OGY2Mlx1OTc0Mlx1NjE5MFx1NjIwMFx1NjUyM1x1NmYyM1x1ZmZmZCIuc3BsaXQo'@; put 'IiIpLG09MDttIT14WzIxM10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjEzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTNdW21dXT01NDUyOCttLEZbNTQ1MjgrbV09eFsyMTNdW21dKTtmb3IoeFsyMTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcxNDlcdTc0ODlcdTdkZjRcdTgwNmZcdTg0ZWVcdThmMjZcdTkwMjNcdTkzNGFcdTUxYmRcdTUyMTdcdTUyYTNcdTZk'@; put 'MGNcdTcwYzhcdTg4YzJcdTVlYzlcdTY1ODJcdTZiYWVcdTZmYzJcdTdjM2VcdTczNzVcdTRlZTRcdTRmMzZcdTU2ZjlcdWY5NWZcdTVjYmFcdTVkYmFcdTYwMWNcdTczYjJcdTdiMmRcdTdmOWFcdTdmY2VcdTgwNDZcdTkwMWVcdTkyMzRcdTk2ZjZcdTk3NDhcdTk4MThcdTlmNjFcdTRmOGJc'@; put 'dTZmYTdcdTc5YWVcdTkxYjRcdTk2YjdcdTUyZGVcdWY5NjBcdTY0ODhcdTY0YzRcdTZhZDNcdTZmNWVcdTcwMThcdTcyMTBcdTc2ZTdcdTgwMDFcdTg2MDZcdTg2NWNcdThkZWZcdThmMDVcdTk3MzJcdTliNmZcdTlkZmFcdTllNzVcdTc4OGNcdTc5N2ZcdTdkYTBcdTgzYzlcdTkzMDRcdTll'@; put 'N2ZcdTllOTNcdThhZDZcdTU4ZGZcdTVmMDRcdTY3MjdcdTcwMjdcdTc0Y2ZcdTdjNjBcdTgwN2VcdTUxMjFcdTcwMjhcdTcyNjJcdTc4Y2FcdThjYzJcdThjZGFcdThjZjRcdTk2ZjdcdTRlODZcdTUwZGFcdTViZWVcdTVlZDZcdTY1OTlcdTcxY2VcdTc2NDJcdTc3YWRcdTgwNGFcdTg0ZmNc'@; put 'dWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxNF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjE0XVttXV09NTQ3ODQrbSxGWzU0Nzg0K21dPXhbMjE0XVttXSk7Zm9yKHhbMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDdjXHU5YjI3XHU5ZjhkXHU1OGQ4XHU1YTQxXHU1YzYyXHU2YTEzXHU2ZGRhXHU2ZjBmXHU3'@; put 'NjNiXHU3ZDJmXHU3ZTM3XHU4NTFlXHU4OTM4XHU5M2U0XHU5NjRiXHU1Mjg5XHU2NWQyXHU2N2YzXHU2OWI0XHU2ZDQxXHU2ZTljXHU3MDBmXHU3NDA5XHU3NDYwXHU3NTU5XHU3NjI0XHU3ODZiXHU4YjJjXHU5ODVlXHU1MTZkXHU2MjJlXHU5Njc4XHU0Zjk2XHU1MDJiXHU1ZDE5XHU2ZGVh'@; put 'XHU3ZGI4XHU4ZjJhXHU1ZjhiXHU2MTQ0XHU2ODE3XHVmOTYxXHU5Njg2XHU1MmQyXHU4MDhiXHU1MWRjXHU1MWNjXHU2OTVlXHU3YTFjXHU3ZGJlXHU4M2YxXHU5Njc1XHU0ZmRhXHU1MjI5XHU1Mzk4XHU1NDBmXHU1NTBlXHU1YzY1XHU2MGE3XHU2NzRlXHU2OGE4XHU2ZDZjXHU3MjgxXHU3'@; put 'MmY4XHU3NDA2XHU3NDgzXHVmOTYyXHU3NWUyXHU3YzZjXHU3Zjc5XHU3ZmI4XHU4Mzg5XHU4OGNmXHU4OGUxXHU5MWNjXHU5MWQwXHU5NmUyXHU5YmM5XHU1NDFkXHU2ZjdlXHU3MWQwXHU3NDk4XHU4NWZhXHU4ZWFhXHU5NmEzXHU5YzU3XHU5ZTlmXHU2Nzk3XHU2ZGNiXHU3NDMzXHU4MWU4'@; put 'XHU5NzE2XHU3ODJjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjE1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxNV1bbV1dPTU1MDQwK20sRls1NTA0MCttXT14WzIxNV1bbV0pO2Zvcih4WzIxNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2FjYlx1N2IyMFx1N2M5Mlx1NjQ2OVx1NzQ2YVx1NzVmMlx1NzhiY1x1'@; put 'NzhlOFx1OTlhY1x1OWI1NFx1OWViYlx1NWJkZVx1NWU1NVx1NmYyMFx1ODE5Y1x1ODNhYlx1OTA4OFx1NGUwN1x1NTM0ZFx1NWEyOVx1NWRkMlx1NWY0ZVx1NjE2Mlx1NjMzZFx1NjY2OVx1NjZmY1x1NmVmZlx1NmYyYlx1NzA2M1x1Nzc5ZVx1ODQyY1x1ODUxM1x1ODgzYlx1OGYxM1x1OTk0'@; put 'NVx1OWMzYlx1NTUxY1x1NjJiOVx1NjcyYlx1NmNhYlx1ODMwOVx1ODk2YVx1OTc3YVx1NGVhMVx1NTk4NFx1NWZkOFx1NWZkOVx1NjcxYlx1N2RiMlx1N2Y1NFx1ODI5Mlx1ODMyYlx1ODNiZFx1OGYxZVx1OTA5OVx1NTdjYlx1NTliOVx1NWE5Mlx1NWJkMFx1NjYyN1x1Njc5YVx1Njg4NVx1'@; put 'NmJjZlx1NzE2NFx1N2Y3NVx1OGNiN1x1OGNlM1x1OTA4MVx1OWI0NVx1ODEwOFx1OGM4YVx1OTY0Y1x1OWE0MFx1OWVhNVx1NWI1Zlx1NmMxM1x1NzMxYlx1NzZmMlx1NzZkZlx1ODQwY1x1NTFhYVx1ODk5M1x1NTE0ZFx1NTE5NVx1NTJjOVx1NjhjOVx1NmM5NFx1NzcwNFx1NzcyMFx1N2Ri'@; put 'Zlx1N2RlY1x1OTc2Mlx1OWViNVx1NmVjNVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxNl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjE2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTZdW21dXT01NTI5NittLEZbNTUyOTYrbV09eFsyMTZdW21dKTtmb3IoeFsyMTddPSJcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1MTFcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVc'@; put 'dTY2OWRcdTY5MjdcdTZlOWZcdTc2YmZcdTc3OTFcdTgzMTdcdTg0YzJcdTg3OWZcdTkxNjlcdTkyOThcdTljZjRcdTg4ODJcdTRmYWVcdTUxOTJcdTUyZGZcdTU5YzZcdTVlM2RcdTYxNTVcdTY0NzhcdTY0NzlcdTY2YWVcdTY3ZDBcdTZhMjFcdTZiY2RcdTZiZGJcdTcyNWZcdTcyNjFcdTc0'@; put 'NDFcdTc3MzhcdTc3ZGJcdTgwMTdcdTgyYmNcdTgzMDVcdThiMDBcdThiMjhcdThjOGNcdTY3MjhcdTZjOTBcdTcyNjdcdTc2ZWVcdTc3NjZcdTdhNDZcdTlkYTlcdTZiN2ZcdTZjOTJcdTU5MjJcdTY3MjZcdTg0OTlcdTUzNmZcdTU4OTNcdTU5OTlcdTVlZGZcdTYzY2ZcdTY2MzRcdTY3NzNc'@; put 'dTZlM2FcdTczMmJcdTdhZDdcdTgyZDdcdTkzMjhcdTUyZDlcdTVkZWJcdTYxYWVcdTYxY2JcdTYyMGFcdTYyYzdcdTY0YWJcdTY1ZTBcdTY5NTlcdTZiNjZcdTZiY2JcdTcxMjFcdTczZjdcdTc1NWRcdTdlNDZcdTgyMWVcdTgzMDJcdTg1NmFcdThhYTNcdThjYmZcdTk3MjdcdTlkNjFcdTU4'@; put 'YThcdTllZDhcdTUwMTFcdTUyMGVcdTU0M2JcdTU1NGZcdTY1ODdcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTddLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxN11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjE3XVttXV09NTU1NTIrbSxGWzU1NTUyK21dPXhbMjE3XVttXSk7Zm9yKHhb'@; put 'MjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Yzc2XHU3ZDBhXHU3ZDBi'@; put 'XHU4MDVlXHU4NjhhXHU5NTgwXHU5NmVmXHU1MmZmXHU2Yzk1XHU3MjY5XHU1NDczXHU1YTlhXHU1YzNlXHU1ZDRiXHU1ZjRjXHU1ZmFlXHU2NzJhXHU2OGI2XHU2OTYzXHU2ZTNjXHU2ZTQ0XHU3NzA5XHU3YzczXHU3ZjhlXHU4NTg3XHU4YjBlXHU4ZmY3XHU5NzYxXHU5ZWY0XHU1Y2I3XHU2'@; put 'MGI2XHU2MTBkXHU2MWFiXHU2NTRmXHU2NWZiXHU2NWZjXHU2YzExXHU2Y2VmXHU3MzlmXHU3M2M5XHU3ZGUxXHU5NTk0XHU1YmM2XHU4NzFjXHU4YjEwXHU1MjVkXHU1MzVhXHU2MmNkXHU2NDBmXHU2NGIyXHU2NzM0XHU2YTM4XHU2Y2NhXHU3M2MwXHU3NDllXHU3Yjk0XHU3Yzk1XHU3ZTFi'@; put 'XHU4MThhXHU4MjM2XHU4NTg0XHU4ZmViXHU5NmY5XHU5OWMxXHU0ZjM0XHU1MzRhXHU1M2NkXHU1M2RiXHU2MmNjXHU2NDJjXHU2NTAwXHU2NTkxXHU2OWMzXHU2Y2VlXHU2ZjU4XHU3M2VkXHU3NTU0XHU3NjIyXHU3NmU0XHU3NmZjXHU3OGQwXHU3OGZiXHU3OTJjXHU3ZDQ2XHU4MjJjXHU4'@; put 'N2UwXHU4ZmQ0XHU5ODEyXHU5OGVmXHU1MmMzXHU2MmQ0XHU2NGE1XHU2ZTI0XHU2ZjUxXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjE4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMThdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxOF1bbV1dPTU1ODA4K20sRls1NTgwOCttXT14WzIx'@; put 'OF1bbV0pO2Zvcih4WzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzY3'@; put 'Y1x1OGRjYlx1OTFiMVx1OTI2Mlx1OWFlZVx1OWI0M1x1NTAyM1x1NTA4ZFx1NTc0YVx1NTlhOFx1NWMyOFx1NWU0N1x1NWY3N1x1NjIzZlx1NjUzZVx1NjViOVx1NjVjMVx1NjYwOVx1Njc4Ylx1Njk5Y1x1NmVjMlx1NzhjNVx1N2QyMVx1ODBhYVx1ODE4MFx1ODIyYlx1ODJiM1x1ODRhMVx1'@; put 'ODY4Y1x1OGEyYVx1OGIxN1x1OTBhNlx1OTYzMlx1OWY5MFx1NTAwZFx1NGZmM1x1Zjk2M1x1NTdmOVx1NWY5OFx1NjJkY1x1NjM5Mlx1Njc2Zlx1NmU0M1x1NzExOVx1NzZjM1x1ODBjY1x1ODBkYVx1ODhmNFx1ODhmNVx1ODkxOVx1OGNlMFx1OGYyOVx1OTE0ZFx1OTY2YVx1NGYyZlx1NGY3'@; put 'MFx1NWUxYlx1NjdjZlx1NjgyMlx1NzY3ZFx1NzY3ZVx1OWI0NFx1NWU2MVx1NmEwYVx1NzE2OVx1NzFkNFx1NzU2YVx1Zjk2NFx1N2U0MVx1ODU0M1x1ODVlOVx1OThkY1x1NGYxMFx1N2I0Zlx1N2Y3MFx1OTVhNVx1NTFlMVx1NWUwNlx1NjhiNVx1NmMzZVx1NmM0ZVx1NmNkYlx1NzJhZlx1'@; put 'N2JjNFx1ODMwM1x1NmNkNVx1NzQzYVx1NTBmYlx1NTI4OFx1NThjMVx1NjRkOFx1NmE5N1x1NzRhN1x1NzY1Nlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxOV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjE5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTldW21dXT01NjA2NCttLEZb'@; put 'NTYwNjQrbV09eFsyMTldW21dKTtmb3IoeFsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdTc4YTdcdTg2MTdcdTk1ZTJcdTk3MzlcdWY5NjVcdTUzNWVcdTVmMDFcdThiOGFcdThmYThcdThmYWZcdTkwOGFcdTUyMjVcdTc3YTVcdTljNDlcdTlmMDhcdTRlMTlcdTUwMDJcdTUxNzVcdTVjNWJcdTVlNzdcdTY2MWVcdTY2M2FcdTY3YzRcdTY4YzVcdTcwYjNcdTc1MDFc'@; put 'dTc1YzVcdTc5YzlcdTdhZGRcdThmMjdcdTk5MjBcdTlhMDhcdTRmZGRcdTU4MjFcdTU4MzFcdTViZjZcdTY2NmVcdTZiNjVcdTZkMTFcdTZlN2FcdTZmN2RcdTczZTRcdTc1MmJcdTgzZTlcdTg4ZGNcdTg5MTNcdThiNWNcdThmMTRcdTRmMGZcdTUwZDVcdTUzMTBcdTUzNWNcdTViOTNcdTVm'@; put 'YTlcdTY3MGRcdTc5OGZcdTgxNzlcdTgzMmZcdTg1MTRcdTg5MDdcdTg5ODZcdThmMzlcdThmM2JcdTk5YTVcdTljMTJcdTY3MmNcdTRlNzZcdTRmZjhcdTU5NDlcdTVjMDFcdTVjZWZcdTVjZjBcdTYzNjdcdTY4ZDJcdTcwZmRcdTcxYTJcdTc0MmJcdTdlMmJcdTg0ZWNcdTg3MDJcdTkwMjJc'@; put 'dTkyZDJcdTljZjNcdTRlMGRcdTRlZDhcdTRmZWZcdTUwODVcdTUyNTZcdTUyNmZcdTU0MjZcdTU0OTBcdTU3ZTBcdTU5MmJcdTVhNjZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjIwXVtt'@; put 'XV09NTYzMjArbSxGWzU2MzIwK21dPXhbMjIwXVttXSk7Zm9yKHhbMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YjVhXHU1Yjc1XHU1YmNjXHU1ZTljXHVmOTY2XHU2Mjc2XHU2NTc3XHU2NWE3XHU2ZDZlXHU2ZWE1XHU3MjM2XHU3YjI2XHU3YzNmXHU3ZjM2XHU4MTUwXHU4MTUxXHU4MTlhXHU4MjQwXHU4Mjk5XHU4M2E5XHU4YTAzXHU4Y2EwXHU4Y2U2XHU4Y2Zi'@; put 'XHU4ZDc0XHU4ZGJhXHU5MGU4XHU5MWRjXHU5NjFjXHU5NjQ0XHU5OWQ5XHU5Y2U3XHU1MzE3XHU1MjA2XHU1NDI5XHU1Njc0XHU1OGIzXHU1OTU0XHU1OTZlXHU1ZmZmXHU2MWE0XHU2MjZlXHU2NjEwXHU2YzdlXHU3MTFhXHU3NmM2XHU3Yzg5XHU3Y2RlXHU3ZDFiXHU4MmFjXHU4Y2MxXHU5'@; put 'NmYwXHVmOTY3XHU0ZjViXHU1ZjE3XHU1ZjdmXHU2MmMyXHU1ZDI5XHU2NzBiXHU2OGRhXHU3ODdjXHU3ZTQzXHU5ZDZjXHU0ZTE1XHU1MDk5XHU1MzE1XHU1MzJhXHU1MzUxXHU1OTgzXHU1YTYyXHU1ZTg3XHU2MGIyXHU2MThhXHU2MjQ5XHU2Mjc5XHU2NTkwXHU2Nzg3XHU2OWE3XHU2YmQ0'@; put 'XHU2YmQ2XHU2YmQ3XHU2YmQ4XHU2Y2I4XHVmOTY4XHU3NDM1XHU3NWZhXHU3ODEyXHU3ODkxXHU3OWQ1XHU3OWQ4XHU3YzgzXHU3ZGNiXHU3ZmUxXHU4MGE1XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjIxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjFdW21dLmNoYXJDb2RlQXQoMCkm'@; put 'JihhZVt4WzIyMV1bbV1dPTU2NTc2K20sRls1NjU3NittXT14WzIyMV1bbV0pO2Zvcih4WzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODEzZVx1ODFjMlx1ODNmMlx1ODcxYVx1ODhlOFx1OGFiOVx1OGI2Y1x1OGNiYlx1OTExOVx1OTc1ZVx1OThkYlx1OWYzYlx1NTZhY1x1NWIyYVx1NWY2Y1x1NjU4Y1x1NmFiM1x1NmJhZlx1NmQ1Y1x1NmZmMVx1NzAxNVx1NzI1'@; put 'ZFx1NzNhZFx1OGNhN1x1OGNkM1x1OTgzYlx1NjE5MVx1NmMzN1x1ODA1OFx1OWEwMVx1NGU0ZFx1NGU4Ylx1NGU5Ylx1NGVkNVx1NGYzYVx1NGYzY1x1NGY3Zlx1NGZkZlx1NTBmZlx1NTNmMlx1NTNmOFx1NTUwNlx1NTVlM1x1NTZkYlx1NThlYlx1NTk2Mlx1NWExMVx1NWJlYlx1NWJmYVx1'@; put 'NWMwNFx1NWRmM1x1NWUyYlx1NWY5OVx1NjAxZFx1NjM2OFx1NjU5Y1x1NjVhZlx1NjdmNlx1NjdmYlx1NjhhZFx1NmI3Ylx1NmM5OVx1NmNkN1x1NmUyM1x1NzAwOVx1NzM0NVx1NzgwMlx1NzkzZVx1Nzk0MFx1Nzk2MFx1NzljMVx1N2JlOVx1N2QxN1x1N2Q3Mlx1ODA4Nlx1ODIwZFx1ODM4'@; put 'ZVx1ODRkMVx1ODZjN1x1ODhkZlx1OGE1MFx1OGE1ZVx1OGIxZFx1OGNkY1x1OGQ2Nlx1OGZhZFx1OTBhYVx1OThmY1x1OTlkZlx1OWU5ZFx1NTI0YVx1Zjk2OVx1NjcxNFx1Zjk2YVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyMl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjIyXVttXS5j'@; put 'aGFyQ29kZUF0KDApJiYoYWVbeFsyMjJdW21dXT01NjgzMittLEZbNTY4MzIrbV09eFsyMjJdW21dKTtmb3IoeFsyMjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUwOThcdTUyMmFcdTVjNzFcdTY1NjNcdTZjNTVcdTczY2FcdTc1MjNcdTc1OWRcdTdiOTdcdTg0OWNcdTkxNzhcdTk3MzBcdTRlNzdcdTY0OTJcdTZiYmFcdTcxNWVcdTg1YTlcdTRlMDlcdWY5NmJcdTY3'@; put 'NDlcdTY4ZWVcdTZlMTdcdTgyOWZcdTg1MThcdTg4NmJcdTYzZjdcdTZmODFcdTkyMTJcdTk4YWZcdTRlMGFcdTUwYjdcdTUwY2ZcdTUxMWZcdTU1NDZcdTU1YWFcdTU2MTdcdTViNDBcdTVjMTlcdTVjZTBcdTVlMzhcdTVlOGFcdTVlYTBcdTVlYzJcdTYwZjNcdTY4NTFcdTZhNjFcdTZlNThc'@; put 'dTcyM2RcdTcyNDBcdTcyYzBcdTc2ZjhcdTc5NjVcdTdiYjFcdTdmZDRcdTg4ZjNcdTg5ZjRcdThhNzNcdThjNjFcdThjZGVcdTk3MWNcdTU4NWVcdTc0YmRcdThjZmRcdTU1YzdcdWY5NmNcdTdhNjFcdTdkMjJcdTgyNzJcdTcyNzJcdTc1MWZcdTc1MjVcdWY5NmRcdTdiMTlcdTU4ODVcdTU4'@; put 'ZmJcdTVkYmNcdTVlOGZcdTVlYjZcdTVmOTBcdTYwNTVcdTYyOTJcdTYzN2ZcdTY1NGRcdTY2OTFcdTY2ZDlcdTY2ZjhcdTY4MTZcdTY4ZjJcdTcyODBcdTc0NWVcdTdiNmVcdTdkNmVcdTdkZDZcdTdmNzJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjNdLmxlbmd0aDsrK20pNjU1MzMh'@; put 'PT14WzIyM11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjIzXVttXV09NTcwODgrbSxGWzU3MDg4K21dPXhbMjIzXVttXSk7Zm9yKHhbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MGU1XHU4MjEyXHU4NWFmXHU4OTdmXHU4YTkzXHU5MDFkXHU5MmU0XHU5ZWNkXHU5ZjIwXHU1OTE1XHU1OTZkXHU1ZTJkXHU2MGRjXHU2NjE0XHU2NjczXHU2NzkwXHU2YzUwXHU2'@; put 'ZGM1XHU2ZjVmXHU3N2YzXHU3OGE5XHU4NGM2XHU5MWNiXHU5MzJiXHU0ZWQ5XHU1MGNhXHU1MTQ4XHU1NTg0XHU1YjBiXHU1YmEzXHU2MjQ3XHU2NTdlXHU2NWNiXHU2ZTMyXHU3MTdkXHU3NDAxXHU3NDQ0XHU3NDg3XHU3NGJmXHU3NjZjXHU3OWFhXHU3ZGRhXHU3ZTU1XHU3ZmE4XHU4MTdh'@; put 'XHU4MWIzXHU4MjM5XHU4NjFhXHU4N2VjXHU4YTc1XHU4ZGUzXHU5MDc4XHU5MjkxXHU5NDI1XHU5OTRkXHU5YmFlXHU1MzY4XHU1YzUxXHU2OTU0XHU2Y2M0XHU2ZDI5XHU2ZTJiXHU4MjBjXHU4NTliXHU4OTNiXHU4YTJkXHU4YWFhXHU5NmVhXHU5ZjY3XHU1MjYxXHU2NmI5XHU2YmIyXHU3'@; put 'ZTk2XHU4N2ZlXHU4ZDBkXHU5NTgzXHU5NjVkXHU2NTFkXHU2ZDg5XHU3MWVlXHVmOTZlXHU1N2NlXHU1OWQzXHU1YmFjXHU2MDI3XHU2MGZhXHU2MjEwXHU2NjFmXHU2NjVmXHU3MzI5XHU3M2Y5XHU3NmRiXHU3NzAxXHU3YjZjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI0XS5sZW5n'@; put 'dGg7KyttKTY1NTMzIT09eFsyMjRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyNF1bbV1dPTU3MzQ0K20sRls1NzM0NCttXT14WzIyNF1bbV0pO2Zvcih4WzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODA1Nlx1ODA3Mlx1ODE2NVx1OGFhMFx1OTE5Mlx1NGUxNlx1NTJlMlx1NmI3Mlx1NmQxN1x1N2EwNVx1N2IzOVx1N2QzMFx1Zjk2Zlx1OGNiMFx1NTNlY1x1'@; put 'NTYyZlx1NTg1MVx1NWJiNVx1NWMwZlx1NWMxMVx1NWRlMlx1NjI0MFx1NjM4M1x1NjQxNFx1NjYyZFx1NjhiM1x1NmNiY1x1NmQ4OFx1NmVhZlx1NzAxZlx1NzBhNFx1NzFkMlx1NzUyNlx1NzU4Zlx1NzU4ZVx1NzYxOVx1N2IxMVx1N2JlMFx1N2MyYlx1N2QyMFx1N2QzOVx1ODUyY1x1ODU2'@; put 'ZFx1ODYwN1x1OGEzNFx1OTAwZFx1OTA2MVx1OTBiNVx1OTJiN1x1OTdmNlx1OWEzN1x1NGZkN1x1NWM2Y1x1Njc1Zlx1NmQ5MVx1N2M5Zlx1N2U4Y1x1OGIxNlx1OGQxNlx1OTAxZlx1NWI2Ylx1NWRmZFx1NjQwZFx1ODRjMFx1OTA1Y1x1OThlMVx1NzM4N1x1NWI4Ylx1NjA5YVx1Njc3ZVx1'@; put 'NmRkZVx1OGExZlx1OGFhNlx1OTAwMVx1OTgwY1x1NTIzN1x1Zjk3MFx1NzA1MVx1Nzg4ZVx1OTM5Nlx1ODg3MFx1OTFkN1x1NGZlZVx1NTNkN1x1NTVmZFx1NTZkYVx1NTc4Mlx1NThmZFx1NWFjMlx1NWI4OFx1NWNhYlx1NWNjMFx1NWUyNVx1NjEwMVx1ZmZmZCIuc3BsaXQoIiIpLG09MDtt'@; put 'IT14WzIyNV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjVdW21dXT01NzYwMCttLEZbNTc2MDArbV09eFsyMjVdW21dKTtmb3IoeFsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYyMGRcdTYyNGJcdTYzODhcdTY0MWNcdTY1MzZcdTY1NzhcdTZhMzlcdTZiOGFcdTZjMzRcdTZkMTlcdTZmMzFcdTcxZTdcdTcyZTlc'@; put 'dTczNzhcdTc0MDdcdTc0YjJcdTc2MjZcdTc3NjFcdTc5YzBcdTdhNTdcdTdhZWFcdTdjYjlcdTdkOGZcdTdkYWNcdTdlNjFcdTdmOWVcdTgxMjlcdTgzMzFcdTg0OTBcdTg0ZGFcdTg1ZWFcdTg4OTZcdThhYjBcdThiOTBcdThmMzhcdTkwNDJcdTkwODNcdTkxNmNcdTkyOTZcdTkyYjlcdTk2'@; put 'OGJcdTk2YTdcdTk2YThcdTk2ZDZcdTk3MDBcdTk4MDhcdTk5OTZcdTlhZDNcdTliMWFcdTUzZDRcdTU4N2VcdTU5MTlcdTViNzBcdTViYmZcdTZkZDFcdTZmNWFcdTcxOWZcdTc0MjFcdTc0YjlcdTgwODVcdTgzZmRcdTVkZTFcdTVmODdcdTVmYWFcdTYwNDJcdTY1ZWNcdTY4MTJcdTY5NmZc'@; put 'dTZhNTNcdTZiODlcdTZkMzVcdTZkZjNcdTczZTNcdTc2ZmVcdTc3YWNcdTdiNGRcdTdkMTRcdTgxMjNcdTgyMWNcdTgzNDBcdTg0ZjRcdTg1NjNcdThhNjJcdThhYzRcdTkxODdcdTkzMWVcdTk4MDZcdTk5YjRcdTYyMGNcdTg4NTNcdThmZjBcdTkyNjVcdTVkMDdcdTVkMjdcdWZmZmQiLnNw'@; put 'bGl0KCIiKSxtPTA7bSE9eFsyMjZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyNl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI2XVttXV09NTc4NTYrbSxGWzU3ODU2K21dPXhbMjI2XVttXSk7Zm9yKHhbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZDY5XHU3NDVmXHU4MTlkXHU4NzY4XHU2ZmQ1XHU2MmZlXHU3ZmQyXHU4OTM2XHU4OTcyXHU0ZTFlXHU0ZTU4'@; put 'XHU1MGU3XHU1MmRkXHU1MzQ3XHU2MjdmXHU2NjA3XHU3ZTY5XHU4ODA1XHU5NjVlXHU0ZjhkXHU1MzE5XHU1NjM2XHU1OWNiXHU1YWE0XHU1YzM4XHU1YzRlXHU1YzRkXHU1ZTAyXHU1ZjExXHU2MDQzXHU2NWJkXHU2NjJmXHU2NjQyXHU2N2JlXHU2N2Y0XHU3MzFjXHU3N2UyXHU3OTNhXHU3'@; put 'ZmM1XHU4NDk0XHU4NGNkXHU4OTk2XHU4YTY2XHU4YTY5XHU4YWUxXHU4YzU1XHU4YzdhXHU1N2Y0XHU1YmQ0XHU1ZjBmXHU2MDZmXHU2MmVkXHU2OTBkXHU2Yjk2XHU2ZTVjXHU3MTg0XHU3YmQyXHU4NzU1XHU4YjU4XHU4ZWZlXHU5OGRmXHU5OGZlXHU0ZjM4XHU0ZjgxXHU0ZmUxXHU1NDdi'@; put 'XHU1YTIwXHU1YmI4XHU2MTNjXHU2NWIwXHU2NjY4XHU3MWZjXHU3NTMzXHU3OTVlXHU3ZDMzXHU4MTRlXHU4MWUzXHU4Mzk4XHU4NWFhXHU4NWNlXHU4NzAzXHU4YTBhXHU4ZWFiXHU4ZjliXHVmOTcxXHU4ZmM1XHU1OTMxXHU1YmE0XHU1YmU2XHU2MDg5XHU1YmU5XHU1YzBiXHU1ZmMzXHU2'@; put 'YzgxXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyN11bbV1dPTU4MTEyK20sRls1ODExMittXT14WzIyN11bbV0pO2Zvcih4WzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Zjk3Mlx1NmRmMVx1NzAwYlx1NzUxYVx1ODJhZlx1OGFmNlx1NGVjMFx1NTM0MVx1Zjk3'@; put 'M1x1OTZkOVx1NmMwZlx1NGU5ZVx1NGZjNFx1NTE1Mlx1NTU1ZVx1NWEyNVx1NWNlOFx1NjIxMVx1NzI1OVx1ODJiZFx1ODNhYVx1ODZmZVx1ODg1OVx1OGExZFx1OTYzZlx1OTZjNVx1OTkxM1x1OWQwOVx1OWQ1ZFx1NTgwYVx1NWNiM1x1NWRiZFx1NWU0NFx1NjBlMVx1NjExNVx1NjNlMVx1'@; put 'NmEwMlx1NmUyNVx1OTEwMlx1OTM1NFx1OTg0ZVx1OWMxMFx1OWY3N1x1NWI4OVx1NWNiOFx1NjMwOVx1NjY0Zlx1Njg0OFx1NzczY1x1OTZjMVx1OTc4ZFx1OTg1NFx1OWI5Zlx1NjVhMVx1OGIwMVx1OGVjYlx1OTViY1x1NTUzNVx1NWNhOVx1NWRkNlx1NWViNVx1NjY5N1x1NzY0Y1x1ODNm'@; put 'NFx1OTVjN1x1NThkM1x1NjJiY1x1NzJjZVx1OWQyOFx1NGVmMFx1NTkyZVx1NjAwZlx1NjYzYlx1NmI4M1x1NzllN1x1OWQyNlx1NTM5M1x1NTRjMFx1NTdjM1x1NWQxNlx1NjExYlx1NjZkNlx1NmRhZlx1Nzg4ZFx1ODI3ZVx1OTY5OFx1OTc0NFx1NTM4NFx1NjI3Y1x1NjM5Nlx1NmRiMlx1'@; put 'N2UwYVx1ODE0Ylx1OTg0ZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyOF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjhdW21dXT01ODM2OCttLEZbNTgzNjgrbV09eFsyMjhdW21dKTtmb3IoeFsyMjldPSJcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZhZmJcdTdmNGNcdTlkYWZcdTllMWFcdTRlNWZcdTUwM2JcdTUx'@; put 'YjZcdTU5MWNcdTYwZjlcdTYzZjZcdTY5MzBcdTcyM2FcdTgwMzZcdWY5NzRcdTkxY2VcdTVmMzFcdWY5NzVcdWY5NzZcdTdkMDRcdTgyZTVcdTg0NmZcdTg0YmJcdTg1ZTVcdThlOGRcdWY5NzdcdTRmNmZcdWY5NzhcdWY5NzlcdTU4ZTRcdTViNDNcdTYwNTlcdTYzZGFcdTY1MThcdTY1NmRc'@; put 'dTY2OThcdWY5N2FcdTY5NGFcdTZhMjNcdTZkMGJcdTcwMDFcdTcxNmNcdTc1ZDJcdTc2MGRcdTc5YjNcdTdhNzBcdWY5N2JcdTdmOGFcdWY5N2NcdTg5NDRcdWY5N2RcdThiOTNcdTkxYzBcdTk2N2RcdWY5N2VcdTk5MGFcdTU3MDRcdTVmYTFcdTY1YmNcdTZmMDFcdTc2MDBcdTc5YTZcdThh'@; put 'OWVcdTk5YWRcdTliNWFcdTlmNmNcdTUxMDRcdTYxYjZcdTYyOTFcdTZhOGRcdTgxYzZcdTUwNDNcdTU4MzBcdTVmNjZcdTcxMDlcdThhMDBcdThhZmFcdTViN2NcdTg2MTZcdTRmZmFcdTUxM2NcdTU2YjRcdTU5NDRcdTYzYTlcdTZkZjlcdTVkYWFcdTY5NmRcdTUxODZcdTRlODhcdTRmNTlc'@; put 'dWY5N2ZcdWY5ODBcdWY5ODFcdTU5ODJcdWY5ODJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjldLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI5XVttXV09NTg2MjQrbSxGWzU4NjI0K21dPXhbMjI5XVttXSk7Zm9yKHhbMjMwXT0iXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmOTgzXHU2YjVmXHU2YzVkXHVmOTg0XHU3'@; put 'NGI1XHU3OTE2XHVmOTg1XHU4MjA3XHU4MjQ1XHU4MzM5XHU4ZjNmXHU4ZjVkXHVmOTg2XHU5OTE4XHVmOTg3XHVmOTg4XHVmOTg5XHU0ZWE2XHVmOThhXHU1N2RmXHU1Zjc5XHU2NjEzXHVmOThiXHVmOThjXHU3NWFiXHU3ZTc5XHU4YjZmXHVmOThkXHU5MDA2XHU5YTViXHU1NmE1XHU1ODI3'@; put 'XHU1OWY4XHU1YTFmXHU1YmI0XHVmOThlXHU1ZWY2XHVmOThmXHVmOTkwXHU2MzUwXHU2MzNiXHVmOTkxXHU2OTNkXHU2Yzg3XHU2Y2JmXHU2ZDhlXHU2ZDkzXHU2ZGY1XHU2ZjE0XHVmOTkyXHU3MGRmXHU3MTM2XHU3MTU5XHVmOTkzXHU3MWMzXHU3MWQ1XHVmOTk0XHU3ODRmXHU3ODZmXHVm'@; put 'OTk1XHU3Yjc1XHU3ZGUzXHVmOTk2XHU3ZTJmXHVmOTk3XHU4ODRkXHU4ZWRmXHVmOTk4XHVmOTk5XHVmOTlhXHU5MjViXHVmOTliXHU5Y2Y2XHVmOTljXHVmOTlkXHVmOTllXHU2MDg1XHU2ZDg1XHVmOTlmXHU3MWIxXHVmOWEwXHVmOWExXHU5NWIxXHU1M2FkXHVmOWEyXHVmOWEzXHVmOWE0'@; put 'XHU2N2QzXHVmOWE1XHU3MDhlXHU3MTMwXHU3NDMwXHU4Mjc2XHU4MmQyXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjMwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzMF1bbV1dPTU4ODgwK20sRls1ODg4MCttXT14WzIzMF1bbV0pO2Zv'@; put 'cih4WzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZjlhNlx1OTViYlx1'@; put 'OWFlNVx1OWU3ZFx1NjZjNFx1ZjlhN1x1NzFjMVx1ODQ0OVx1ZjlhOFx1ZjlhOVx1NTg0Ylx1ZjlhYVx1ZjlhYlx1NWRiOFx1NWY3MVx1ZjlhY1x1NjYyMFx1NjY4ZVx1Njk3OVx1NjlhZVx1NmMzOFx1NmNmM1x1NmUzNlx1NmY0MVx1NmZkYVx1NzAxYlx1NzAyZlx1NzE1MFx1NzFkZlx1NzM3'@; put 'MFx1ZjlhZFx1NzQ1Ylx1ZjlhZVx1NzRkNFx1NzZjOFx1N2E0ZVx1N2U5M1x1ZjlhZlx1ZjliMFx1ODJmMVx1OGE2MFx1OGZjZVx1ZjliMVx1OTM0OFx1ZjliMlx1OTcxOVx1ZjliM1x1ZjliNFx1NGU0Mlx1NTAyYVx1ZjliNVx1NTIwOFx1NTNlMVx1NjZmM1x1NmM2ZFx1NmZjYVx1NzMwYVx1'@; put 'Nzc3Zlx1N2E2Mlx1ODJhZVx1ODVkZFx1ODYwMlx1ZjliNlx1ODhkNFx1OGE2M1x1OGI3ZFx1OGM2Ylx1ZjliN1x1OTJiM1x1ZjliOFx1OTcxM1x1OTgxMFx1NGU5NFx1NGYwZFx1NGZjOVx1NTBiMlx1NTM0OFx1NTQzZVx1NTQzM1x1NTVkYVx1NTg2Mlx1NThiYVx1NTk2N1x1NWExYlx1NWJl'@; put 'NFx1NjA5Zlx1ZjliOVx1NjFjYVx1NjU1Nlx1NjVmZlx1NjY2NFx1NjhhN1x1NmM1YVx1NmZiM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzMV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjMxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzFdW21dXT01OTEzNittLEZbNTkxMzYrbV09'@; put 'eFsyMzFdW21dKTtmb3IoeFsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dTcwY2ZcdTcxYWNcdTczNTJcdTdiN2RcdTg3MDhcdThhYTRcdTljMzJcdTlmMDdcdTVjNGJcdTZjODNcdTczNDRcdTczODlcdTkyM2FcdTZlYWJcdTc0NjVcdTc2MWZcdTdhNjlcdTdlMTVcdTg2MGFcdTUxNDBcdTU4YzVcdTY0YzFcdTc0ZWVcdTc1MTVcdTc2NzBcdTdmYzFcdTkwOTVcdTk2'@; put 'Y2RcdTk5NTRcdTZlMjZcdTc0ZTZcdTdhYTlcdTdhYWFcdTgxZTVcdTg2ZDlcdTg3NzhcdThhMWJcdTVhNDlcdTViOGNcdTViOWJcdTY4YTFcdTY5MDBcdTZkNjNcdTczYTlcdTc0MTNcdTc0MmNcdTc4OTdcdTdkZTlcdTdmZWJcdTgxMThcdTgxNTVcdTgzOWVcdThjNGNcdTk2MmVcdTk4MTFc'@; put 'dTY2ZjBcdTVmODBcdTY1ZmFcdTY3ODlcdTZjNmFcdTczOGJcdTUwMmRcdTVhMDNcdTZiNmFcdTc3ZWVcdTU5MTZcdTVkNmNcdTVkY2RcdTczMjVcdTc1NGZcdWY5YmFcdWY5YmJcdTUwZTVcdTUxZjlcdTU4MmZcdTU5MmRcdTU5OTZcdTU5ZGFcdTViZTVcdWY5YmNcdWY5YmRcdTVkYTJcdTYy'@; put 'ZDdcdTY0MTZcdTY0OTNcdTY0ZmVcdWY5YmVcdTY2ZGNcdWY5YmZcdTZhNDhcdWY5YzBcdTcxZmZcdTc0NjRcdWY5YzFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzMl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjMyXVttXV09NTkzOTIr'@; put 'bSxGWzU5MzkyK21dPXhbMjMyXVttXSk7Zm9yKHhbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHU3YTg4XHU3YWFmXHU3ZTQ3XHU3ZTVlXHU4MDAwXHU4MTcwXHVmOWMyXHU4N2VmXHU4OTgxXHU4YjIwXHU5MDU5XHVmOWMzXHU5MDgwXHU5OTUyXHU2MTdlXHU2YjMyXHU2ZDc0XHU3ZTFmXHU4OTI1XHU4ZmIxXHU0ZmQxXHU1MGFkXHU1MTk3XHU1MmM3XHU1N2M3XHU1'@; put 'ODg5XHU1YmI5XHU1ZWI4XHU2MTQyXHU2OTk1XHU2ZDhjXHU2ZTY3XHU2ZWI2XHU3MTk0XHU3NDYyXHU3NTI4XHU3NTJjXHU4MDczXHU4MzM4XHU4NGM5XHU4ZTBhXHU5Mzk0XHU5M2RlXHVmOWM0XHU0ZThlXHU0ZjUxXHU1MDc2XHU1MTJhXHU1M2M4XHU1M2NiXHU1M2YzXHU1Yjg3XHU1YmQz'@; put 'XHU1YzI0XHU2MTFhXHU2MTgyXHU2NWY0XHU3MjViXHU3Mzk3XHU3NDQwXHU3NmMyXHU3OTUwXHU3OTkxXHU3OWI5XHU3ZDA2XHU3ZmJkXHU4MjhiXHU4NWQ1XHU4NjVlXHU4ZmMyXHU5MDQ3XHU5MGY1XHU5MWVhXHU5Njg1XHU5NmU4XHU5NmU5XHU1MmQ2XHU1ZjY3XHU2NWVkXHU2NjMxXHU2'@; put 'ODJmXHU3MTVjXHU3YTM2XHU5MGMxXHU5ODBhXHU0ZTkxXHVmOWM1XHU2YTUyXHU2YjllXHU2ZjkwXHU3MTg5XHU4MDE4XHU4MmI4XHU4NTUzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjMzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIz'@; put 'M11bbV1dPTU5NjQ4K20sRls1OTY0OCttXT14WzIzM11bbV0pO2Zvcih4WzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTA0Ylx1OTY5NVx1OTZmMlx1OTdmYlx1ODUxYVx1OWIzMVx1NGU5MFx1NzE4YVx1OTZjNFx1NTE0M1x1NTM5Zlx1NTRlMVx1NTcxM1x1NTcxMlx1NTdhM1x1NWE5Ylx1NWFjNFx1NWJjM1x1NjAyOFx1NjEzZlx1NjNmNFx1NmM4NVx1NmQzOVx1'@; put 'NmU3Mlx1NmU5MFx1NzIzMFx1NzMzZlx1NzQ1N1x1ODJkMVx1ODg4MVx1OGY0NVx1OTA2MFx1ZjljNlx1OTY2Mlx1OTg1OFx1OWQxYlx1NjcwOFx1OGQ4YVx1OTI1ZVx1NGY0ZFx1NTA0OVx1NTBkZVx1NTM3MVx1NTcwZFx1NTlkNFx1NWEwMVx1NWMwOVx1NjE3MFx1NjY5MFx1NmUyZFx1NzIz'@; put 'Mlx1NzQ0Ylx1N2RlZlx1ODBjM1x1ODQwZVx1ODQ2Nlx1ODUzZlx1ODc1Zlx1ODg1Ylx1ODkxOFx1OGIwMlx1OTA1NVx1OTdjYlx1OWI0Zlx1NGU3M1x1NGY5MVx1NTExMlx1NTE2YVx1ZjljN1x1NTUyZlx1NTVhOVx1NWI3YVx1NWJhNVx1NWU3Y1x1NWU3ZFx1NWViZVx1NjBhMFx1NjBkZlx1'@; put 'NjEwOFx1NjEwOVx1NjNjNFx1NjUzOFx1NjcwOVx1ZjljOFx1NjdkNFx1NjdkYVx1ZjljOVx1Njk2MVx1Njk2Mlx1NmNiOVx1NmQyN1x1ZjljYVx1NmUzOFx1ZjljYlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzNF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM0XVttXS5jaGFyQ29kZUF0'@; put 'KDApJiYoYWVbeFsyMzRdW21dXT01OTkwNCttLEZbNTk5MDQrbV09eFsyMzRdW21dKTtmb3IoeFsyMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmZTFcdTczMzZcdTczMzdcdWY5Y2NcdTc0NWNcdTc1MzFcdWY5Y2RcdTc2NTJcdWY5Y2VcdWY5Y2ZcdTdkYWRcdTgxZmVcdTg0MzhcdTg4ZDVcdThhOThcdThhZGJcdThhZWRcdThlMzBcdThlNDJcdTkwNGFcdTkwM2Vc'@; put 'dTkwN2FcdTkxNDlcdTkxYzlcdTkzNmVcdWY5ZDBcdWY5ZDFcdTU4MDlcdWY5ZDJcdTZiZDNcdTgwODlcdTgwYjJcdWY5ZDNcdWY5ZDRcdTUxNDFcdTU5NmJcdTVjMzlcdWY5ZDVcdWY5ZDZcdTZmNjRcdTczYTdcdTgwZTRcdThkMDdcdWY5ZDdcdTkyMTdcdTk1OGZcdWY5ZDhcdWY5ZDlcdWY5'@; put 'ZGFcdWY5ZGJcdTgwN2ZcdTYyMGVcdTcwMWNcdTdkNjhcdTg3OGRcdWY5ZGNcdTU3YTBcdTYwNjlcdTYxNDdcdTZiYjdcdThhYmVcdTkyODBcdTk2YjFcdTRlNTlcdTU0MWZcdTZkZWJcdTg1MmRcdTk2NzBcdTk3ZjNcdTk4ZWVcdTYzZDZcdTZjZTNcdTkwOTFcdTUxZGRcdTYxYzlcdTgxYmFc'@; put 'dTlkZjlcdTRmOWRcdTUwMWFcdTUxMDBcdTViOWNcdTYxMGZcdTYxZmZcdTY0ZWNcdTY5MDVcdTZiYzVcdTc1OTFcdTc3ZTNcdTdmYTlcdTgyNjRcdTg1OGZcdTg3ZmJcdTg4NjNcdThhYmNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzNV1b'@; put 'bV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM1XVttXV09NjAxNjArbSxGWzYwMTYwK21dPXhbMjM1XVttXSk7Zm9yKHhbMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjcwXHU5MWFiXHU0ZThjXHU0ZWU1XHU0ZjBhXHVmOWRkXHVmOWRlXHU1OTM3XHU1OWU4XHVmOWRmXHU1ZGYyXHU1ZjFiXHU1ZjViXHU2MDIxXHVmOWUwXHVmOWUxXHVmOWUyXHVmOWUzXHU3MjNl'@; put 'XHU3M2U1XHVmOWU0XHU3NTcwXHU3NWNkXHVmOWU1XHU3OWZiXHVmOWU2XHU4MDBjXHU4MDMzXHU4MDg0XHU4MmUxXHU4MzUxXHVmOWU3XHVmOWU4XHU4Y2JkXHU4Y2IzXHU5MDg3XHVmOWU5XHVmOWVhXHU5OGY0XHU5OTBjXHVmOWViXHVmOWVjXHU3MDM3XHU3NmNhXHU3ZmNhXHU3ZmNjXHU3'@; put 'ZmZjXHU4YjFhXHU0ZWJhXHU0ZWMxXHU1MjAzXHU1MzcwXHVmOWVkXHU1NGJkXHU1NmUwXHU1OWZiXHU1YmM1XHU1ZjE1XHU1ZmNkXHU2ZTZlXHVmOWVlXHVmOWVmXHU3ZDZhXHU4MzM1XHVmOWYwXHU4NjkzXHU4YThkXHVmOWYxXHU5NzZkXHU5Nzc3XHVmOWYyXHVmOWYzXHU0ZTAwXHU0ZjVh'@; put 'XHU0ZjdlXHU1OGY5XHU2NWU1XHU2ZWEyXHU5MDM4XHU5M2IwXHU5OWI5XHU0ZWZiXHU1OGVjXHU1OThhXHU1OWQ5XHU2MDQxXHVmOWY0XHVmOWY1XHU3YTE0XHVmOWY2XHU4MzRmXHU4Y2MzXHU1MTY1XHU1MzQ0XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjM2XS5sZW5ndGg7KyttKTY1'@; put 'NTMzIT09eFsyMzZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzNl1bbV1dPTYwNDE2K20sRls2MDQxNittXT14WzIzNl1bbV0pO2Zvcih4WzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZjlmN1x1ZjlmOFx1ZjlmOVx1NGVjZFx1NTI2OVx1NWI1NVx1ODJiZlx1NGVkNFx1NTIzYVx1NTRhOFx1NTljOVx1NTlmZlx1NWI1MFx1NWI1N1x1NWI1Y1x1NjA2M1x1NjE0'@; put 'OFx1NmVjYlx1NzA5OVx1NzE2ZVx1NzM4Nlx1NzRmN1x1NzViNVx1NzhjMVx1N2QyYlx1ODAwNVx1ODFlYVx1ODMyOFx1ODUxN1x1ODVjOVx1OGFlZVx1OGNjN1x1OTZjY1x1NGY1Y1x1NTJmYVx1NTZiY1x1NjVhYlx1NjYyOFx1NzA3Y1x1NzBiOFx1NzIzNVx1N2RiZFx1ODI4ZFx1OTE0Y1x1'@; put 'OTZjMFx1OWQ3Mlx1NWI3MVx1NjhlN1x1NmI5OFx1NmY3YVx1NzZkZVx1NWM5MVx1NjZhYlx1NmY1Ylx1N2JiNFx1N2MyYVx1ODgzNlx1OTZkY1x1NGUwOFx1NGVkN1x1NTMyMFx1NTgzNFx1NThiYlx1NThlZlx1NTk2Y1x1NWMwN1x1NWUzM1x1NWU4NFx1NWYzNVx1NjM4Y1x1NjZiMlx1Njc1'@; put 'Nlx1NmExZlx1NmFhM1x1NmIwY1x1NmYzZlx1NzI0Nlx1ZjlmYVx1NzM1MFx1NzQ4Ylx1N2FlMFx1N2NhN1x1ODE3OFx1ODFkZlx1ODFlN1x1ODM4YVx1ODQ2Y1x1ODUyM1x1ODU5NFx1ODVjZlx1ODhkZFx1OGQxM1x1OTFhY1x1OTU3N1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzN10u'@; put 'bGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzddW21dXT02MDY3MittLEZbNjA2NzIrbV09eFsyMzddW21dKTtmb3IoeFsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2OWNcdTUxOGRcdTU0YzlcdTU3MjhcdTViYjBcdTYyNGRcdTY3NTBcdTY4M2RcdTY4OTNcdTZlM2RcdTZlZDNcdTcwN2RcdTdlMjFcdTg4YzFcdThj'@; put 'YTFcdThmMDlcdTlmNGJcdTlmNGVcdTcyMmRcdTdiOGZcdThhY2RcdTkzMWFcdTRmNDdcdTRmNGVcdTUxMzJcdTU0ODBcdTU5ZDBcdTVlOTVcdTYyYjVcdTY3NzVcdTY5NmVcdTZhMTdcdTZjYWVcdTZlMWFcdTcyZDlcdTczMmFcdTc1YmRcdTdiYjhcdTdkMzVcdTgyZTdcdTgzZjlcdTg0NTdc'@; put 'dTg1ZjdcdThhNWJcdThjYWZcdThlODdcdTkwMTlcdTkwYjhcdTk2Y2VcdTlmNWZcdTUyZTNcdTU0MGFcdTVhZTFcdTViYzJcdTY0NThcdTY1NzVcdTZlZjRcdTcyYzRcdWY5ZmJcdTc2ODRcdTdhNGRcdTdiMWJcdTdjNGRcdTdlM2VcdTdmZGZcdTgzN2JcdThiMmJcdThjY2FcdThkNjRcdThk'@; put 'ZTFcdThlNWZcdThmZWFcdThmZjlcdTkwNjlcdTkzZDFcdTRmNDNcdTRmN2FcdTUwYjNcdTUxNjhcdTUxNzhcdTUyNGRcdTUyNmFcdTU4NjFcdTU4N2NcdTU5NjBcdTVjMDhcdTVjNTVcdTVlZGJcdTYwOWJcdTYyMzBcdTY4MTNcdTZiYmZcdTZjMDhcdTZmYjFcdWZmZmQiLnNwbGl0KCIiKSxt'@; put 'PTA7bSE9eFsyMzhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzOF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM4XVttXV09NjA5MjgrbSxGWzYwOTI4K21dPXhbMjM4XVttXSk7Zm9yKHhbMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTRlXHU3NDIwXHU3NTMwXHU3NTM4XHU3NTUxXHU3NjcyXHU3YjRjXHU3YjhiXHU3YmFkXHU3YmM2XHU3ZThmXHU4YTZlXHU4'@; put 'ZjNlXHU4ZjQ5XHU5MjNmXHU5MjkzXHU5MzIyXHU5NDJiXHU5NmZiXHU5ODVhXHU5ODZiXHU5OTFlXHU1MjA3XHU2MjJhXHU2Mjk4XHU2ZDU5XHU3NjY0XHU3YWNhXHU3YmMwXHU3ZDc2XHU1MzYwXHU1Y2JlXHU1ZTk3XHU2ZjM4XHU3MGI5XHU3Yzk4XHU5NzExXHU5YjhlXHU5ZWRlXHU2M2E1'@; put 'XHU2NDdhXHU4Nzc2XHU0ZTAxXHU0ZTk1XHU0ZWFkXHU1MDVjXHU1MDc1XHU1NDQ4XHU1OWMzXHU1YjlhXHU1ZTQwXHU1ZWFkXHU1ZWY3XHU1ZjgxXHU2MGM1XHU2MzNhXHU2NTNmXHU2NTc0XHU2NWNjXHU2Njc2XHU2Njc4XHU2N2ZlXHU2OTY4XHU2YTg5XHU2YjYzXHU2YzQwXHU2ZGMwXHU2'@; put 'ZGU4XHU2ZTFmXHU2ZTVlXHU3MDFlXHU3MGExXHU3MzhlXHU3M2ZkXHU3NTNhXHU3NzViXHU3ODg3XHU3OThlXHU3YTBiXHU3YTdkXHU3Y2JlXHU3ZDhlXHU4MjQ3XHU4YTAyXHU4YWVhXHU4YzllXHU5MTJkXHU5MTRhXHU5MWQ4XHU5MjY2XHU5MmNjXHU5MzIwXHU5NzA2XHU5NzU2XHVmZmZk'@; put 'Ii5zcGxpdCgiIiksbT0wO20hPXhbMjM5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzOV1bbV1dPTYxMTg0K20sRls2MTE4NCttXT14WzIzOV1bbV0pO2Zvcih4WzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTc1Y1x1OTgwMlx1OWYwZVx1NTIzNlx1NTI5MVx1NTU3Y1x1NTgyNFx1NWUxZFx1NWYxZlx1NjA4Y1x1'@; put 'NjNkMFx1NjhhZlx1NmZkZlx1Nzk2ZFx1N2IyY1x1ODFjZFx1ODViYVx1ODhmZFx1OGFmOFx1OGU0NFx1OTE4ZFx1OTY2NFx1OTY5Ylx1OTczZFx1OTg0Y1x1OWY0YVx1NGZjZVx1NTE0Nlx1NTFjYlx1NTJhOVx1NTYzMlx1NWYxNFx1NWY2Ylx1NjNhYVx1NjRjZFx1NjVlOVx1NjY0MVx1NjZm'@; put 'YVx1NjZmOVx1NjcxZFx1Njg5ZFx1NjhkN1x1NjlmZFx1NmYxNVx1NmY2ZVx1NzE2N1x1NzFlNVx1NzIyYVx1NzRhYVx1NzczYVx1Nzk1Nlx1Nzk1YVx1NzlkZlx1N2EyMFx1N2E5NVx1N2M5N1x1N2NkZlx1N2Q0NFx1N2U3MFx1ODA4N1x1ODVmYlx1ODZhNFx1OGE1NFx1OGFiZlx1OGQ5OVx1'@; put 'OGU4MVx1OTAyMFx1OTA2ZFx1OTFlM1x1OTYzYlx1OTZkNVx1OWNlNVx1NjVjZlx1N2MwN1x1OGRiM1x1OTNjM1x1NWI1OFx1NWMwYVx1NTM1Mlx1NjJkOVx1NzMxZFx1NTAyN1x1NWI5N1x1NWY5ZVx1NjBiMFx1NjE2Ylx1NjhkNVx1NmRkOVx1NzQyZVx1N2EyZVx1N2Q0Mlx1N2Q5Y1x1N2Uz'@; put 'MVx1ODE2Ylx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDBdW21dXT02MTQ0MCttLEZbNjE0NDArbV09eFsyNDBdW21dKTtmb3IoeFsyNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlMmFcdThlMzVcdTkzN2VcdTk0MThcdTRmNTBcdTU3NTBcdTVkZTZcdTVlYTdc'@; put 'dTYzMmJcdTdmNmFcdTRlM2JcdTRmNGZcdTRmOGZcdTUwNWFcdTU5ZGRcdTgwYzRcdTU0NmFcdTU0NjhcdTU1ZmVcdTU5NGZcdTViOTlcdTVkZGVcdTVlZGFcdTY2NWRcdTY3MzFcdTY3ZjFcdTY4MmFcdTZjZThcdTZkMzJcdTZlNGFcdTZmOGRcdTcwYjdcdTczZTBcdTc1ODdcdTdjNGNcdTdk'@; put 'MDJcdTdkMmNcdTdkYTJcdTgyMWZcdTg2ZGJcdThhM2JcdThhODVcdThkNzBcdThlOGFcdThmMzNcdTkwMzFcdTkxNGVcdTkxNTJcdTk0NDRcdTk5ZDBcdTdhZjlcdTdjYTVcdTRmY2FcdTUxMDFcdTUxYzZcdTU3YzhcdTViZWZcdTVjZmJcdTY2NTlcdTZhM2RcdTZkNWFcdTZlOTZcdTZmZWNc'@; put 'dTcxMGNcdTc1NmZcdTdhZTNcdTg4MjJcdTkwMjFcdTkwNzVcdTk2Y2JcdTk5ZmZcdTgzMDFcdTRlMmRcdTRlZjJcdTg4NDZcdTkxY2RcdTUzN2RcdTZhZGJcdTY5NmJcdTZjNDFcdTg0N2FcdTU4OWVcdTYxOGVcdTY2ZmVcdTYyZWZcdTcwZGRcdTc1MTFcdTc1YzdcdTdlNTJcdTg0YjhcdThi'@; put 'NDlcdThkMDhcdTRlNGJcdTUzZWFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQxXVttXV09NjE2OTYrbSxGWzYxNjk2K21dPXhbMjQxXVttXSk7Zm9yKHhbMjQyXT0iXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGFiXHU1NzMwXHU1NzQwXHU1ZmQ3XHU2MzAxXHU2MzA3'@; put 'XHU2NDZmXHU2NTJmXHU2NWU4XHU2NjdhXHU2NzlkXHU2N2IzXHU2YjYyXHU2YzYwXHU2YzlhXHU2ZjJjXHU3N2U1XHU3ODI1XHU3OTQ5XHU3OTU3XHU3ZDE5XHU4MGEyXHU4MTAyXHU4MWYzXHU4MjlkXHU4MmI3XHU4NzE4XHU4YThjXHVmOWZjXHU4ZDA0XHU4ZGJlXHU5MDcyXHU3NmY0XHU3'@; put 'YTE5XHU3YTM3XHU3ZTU0XHU4MDc3XHU1NTA3XHU1NWQ0XHU1ODc1XHU2MzJmXHU2NDIyXHU2NjQ5XHU2NjRiXHU2ODZkXHU2OTliXHU2Yjg0XHU2ZDI1XHU2ZWIxXHU3M2NkXHU3NDY4XHU3NGExXHU3NTViXHU3NWI5XHU3NmUxXHU3NzFlXHU3NzhiXHU3OWU2XHU3ZTA5XHU3ZTFkXHU4MWZi'@; put 'XHU4NTJmXHU4ODk3XHU4YTNhXHU4Y2QxXHU4ZWViXHU4ZmIwXHU5MDMyXHU5M2FkXHU5NjYzXHU5NjczXHU5NzA3XHU0Zjg0XHU1M2YxXHU1OWVhXHU1YWM5XHU1ZTE5XHU2ODRlXHU3NGM2XHU3NWJlXHU3OWU5XHU3YTkyXHU4MWEzXHU4NmVkXHU4Y2VhXHU4ZGNjXHU4ZmVkXHU2NTlmXHU2'@; put 'NzE1XHVmOWZkXHU1N2Y3XHU2ZjU3XHU3ZGRkXHU4ZjJmXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0Ml1bbV1dPTYxOTUyK20sRls2MTk1MittXT14WzI0Ml1bbV0pO2Zvcih4WzI0M109'@; put 'Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTNmNlx1OTZjNlx1NWZiNVx1NjFm'@; put 'Mlx1NmY4NFx1NGUxNFx1NGY5OFx1NTAxZlx1NTNjOVx1NTVkZlx1NWQ2Zlx1NWRlZVx1NmIyMVx1NmI2NFx1NzhjYlx1N2I5YVx1ZjlmZVx1OGU0OVx1OGVjYVx1OTA2ZVx1NjM0OVx1NjQzZVx1Nzc0MFx1N2E4NFx1OTMyZlx1OTQ3Zlx1OWY2YVx1NjRiMFx1NmZhZlx1NzFlNlx1NzRhOFx1'@; put 'NzRkYVx1N2FjNFx1N2MxMlx1N2U4Mlx1N2NiMlx1N2U5OFx1OGI5YVx1OGQwYVx1OTQ3ZFx1OTkxMFx1OTk0Y1x1NTIzOVx1NWJkZlx1NjRlNlx1NjcyZFx1N2QyZVx1NTBlZFx1NTNjM1x1NTg3OVx1NjE1OFx1NjE1OVx1NjFmYVx1NjVhY1x1N2FkOVx1OGI5Mlx1OGI5Nlx1NTAwOVx1NTAy'@; put 'MVx1NTI3NVx1NTUzMVx1NWEzY1x1NWVlMFx1NWY3MFx1NjEzNFx1NjU1ZVx1NjYwY1x1NjYzNlx1NjZhMlx1NjljZFx1NmVjNFx1NmYzMlx1NzMxNlx1NzYyMVx1N2E5M1x1ODEzOVx1ODI1OVx1ODNkNlx1ODRiY1x1NTBiNVx1NTdmMFx1NWJjMFx1NWJlOFx1NWY2OVx1NjNhMVx1NzgyNlx1'@; put 'N2RiNVx1ODNkY1x1ODUyMVx1OTFjN1x1OTFmNVx1NTE4YVx1NjdmNVx1N2I1Nlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDNdW21dXT02MjIwOCttLEZbNjIyMDgrbV09eFsyNDNdW21d'@; put 'KTtmb3IoeFsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThjYWNcdTUx'@; put 'YzRcdTU5YmJcdTYwYmRcdTg2NTVcdTUwMWNcdWY5ZmZcdTUyNTRcdTVjM2FcdTYxN2RcdTYyMWFcdTYyZDNcdTY0ZjJcdTY1YTVcdTZlY2NcdTc2MjBcdTgxMGFcdThlNjBcdTk2NWZcdTk2YmJcdTRlZGZcdTUzNDNcdTU1OThcdTU5MjlcdTVkZGRcdTY0YzVcdTZjYzlcdTZkZmFcdTczOTRc'@; put 'dTdhN2ZcdTgyMWJcdTg1YTZcdThjZTRcdThlMTBcdTkwNzdcdTkxZTdcdTk1ZTFcdTk2MjFcdTk3YzZcdTUxZjhcdTU0ZjJcdTU1ODZcdTVmYjlcdTY0YTRcdTZmODhcdTdkYjRcdThmMWZcdThmNGRcdTk0MzVcdTUwYzlcdTVjMTZcdTZjYmVcdTZkZmJcdTc1MWJcdTc3YmJcdTdjM2RcdTdj'@; put 'NjRcdThhNzlcdThhYzJcdTU4MWVcdTU5YmVcdTVlMTZcdTYzNzdcdTcyNTJcdTc1OGFcdTc3NmJcdThhZGNcdThjYmNcdThmMTJcdTVlZjNcdTY2NzRcdTZkZjhcdTgwN2RcdTgzYzFcdThhY2JcdTk3NTFcdTliZDZcdWZhMDBcdTUyNDNcdTY2ZmZcdTZkOTVcdTZlZWZcdTdkZTBcdThhZTZc'@; put 'dTkwMmVcdTkwNWVcdTlhZDRcdTUyMWRcdTUyN2ZcdTU0ZThcdTYxOTRcdTYyODRcdTYyZGJcdTY4YTJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQ0XVttXV09NjI0NjQrbSxGWzYyNDY0'@; put 'K21dPXhbMjQ0XVttXSk7Zm9yKHhbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHU2OTEyXHU2OTVhXHU2YTM1XHU3MDkyXHU3MTI2XHU3ODVkXHU3OTAxXHU3OTBlXHU3OWQyXHU3YTBkXHU4MDk2XHU4Mjc4XHU4MmQ1XHU4MzQ5XHU4NTQ5XHU4YzgyXHU4ZDg1XHU5MTYyXHU5MThiXHU5MWFlXHU0ZmMzXHU1NmQxXHU3MWVkXHU3N2Q3XHU4NzAwXHU4OWY4XHU1YmY4'@; put 'XHU1ZmQ2XHU2NzUxXHU5MGE4XHU1M2UyXHU1ODVhXHU1YmY1XHU2MGE0XHU2MTgxXHU2NDYwXHU3ZTNkXHU4MDcwXHU4NTI1XHU5MjgzXHU2NGFlXHU1MGFjXHU1ZDE0XHU2NzAwXHU1ODljXHU2MmJkXHU2M2E4XHU2OTBlXHU2OTc4XHU2YTFlXHU2ZTZiXHU3NmJhXHU3OWNiXHU4MmJiXHU4'@; put 'NDI5XHU4YWNmXHU4ZGE4XHU4ZmZkXHU5MTEyXHU5MTRiXHU5MTljXHU5MzEwXHU5MzE4XHU5MzlhXHU5NmRiXHU5YTM2XHU5YzBkXHU0ZTExXHU3NTVjXHU3OTVkXHU3YWZhXHU3YjUxXHU3YmM5XHU3ZTJlXHU4NGM0XHU4ZTU5XHU4ZTc0XHU4ZWY4XHU5MDEwXHU2NjI1XHU2OTNmXHU3NDQz'@; put 'XHU1MWZhXHU2NzJlXHU5ZWRjXHU1MTQ1XHU1ZmUwXHU2Yzk2XHU4N2YyXHU4ODVkXHU4ODc3XHU2MGI0XHU4MWI1XHU4NDAzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQ1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0NV1bbV1dPTYy'@; put 'NzIwK20sRls2MjcyMCttXT14WzI0NV1bbV0pO2Zvcih4WzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1OGQwNVx1NTNkNlx1NTQzOVx1NTYzNFx1NWEzNlx1NWMzMVx1NzA4YVx1N2ZlMFx1ODA1YVx1ODEwNlx1ODFlZFx1OGRhM1x1OTE4OVx1OWE1Zlx1OWRmMlx1NTA3NFx1NGVjNFx1NTNhMFx1NjBmYlx1NmUyY1x1NWM2NFx1NGY4OFx1NTAyNFx1NTVlNFx1NWNk'@; put 'OVx1NWU1Zlx1NjA2NVx1Njg5NFx1NmNiYlx1NmRjNFx1NzFiZVx1NzVkNFx1NzVmNFx1NzY2MVx1N2ExYVx1N2E0OVx1N2RjN1x1N2RmYlx1N2Y2ZVx1ODFmNFx1ODZhOVx1OGYxY1x1OTZjOVx1OTliM1x1OWY1Mlx1NTI0N1x1NTJjNVx1OThlZFx1ODlhYVx1NGUwM1x1NjdkMlx1NmYwNlx1'@; put 'NGZiNVx1NWJlMlx1Njc5NVx1NmM4OFx1NmQ3OFx1NzQxYlx1NzgyN1x1OTFkZFx1OTM3Y1x1ODdjNFx1NzllNFx1N2EzMVx1NWZlYlx1NGVkNlx1NTRhNFx1NTUzZVx1NThhZVx1NTlhNVx1NjBmMFx1NjI1M1x1NjJkNlx1NjczNlx1Njk1NVx1ODIzNVx1OTY0MFx1OTliMVx1OTlkZFx1NTAy'@; put 'Y1x1NTM1M1x1NTU0NFx1NTc3Y1x1ZmEwMVx1NjI1OFx1ZmEwMlx1NjRlMlx1NjY2Ylx1NjdkZFx1NmZjMVx1NmZlZlx1NzQyMlx1NzQzOFx1OGExN1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQ2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVb'@; put 'eFsyNDZdW21dXT02Mjk3NittLEZbNjI5NzYrbV09eFsyNDZdW21dKTtmb3IoeFsyNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk0MzhcdTU0NTFcdTU2MDZcdTU3NjZcdTVmNDhcdTYxOWFcdTZiNGVcdTcwNThcdTcwYWRcdTdkYmJcdThhOTVcdTU5NmFcdTgxMmJcdTYzYTJcdTc3MDhcdTgwM2RcdThjYWFcdTU4NTRcdTY0MmRcdTY5YmJcdTViOTVcdTVlMTFcdTZl'@; put 'NmZcdWZhMDNcdTg1NjlcdTUxNGNcdTUzZjBcdTU5MmFcdTYwMjBcdTYxNGJcdTZiODZcdTZjNzBcdTZjZjBcdTdiMWVcdTgwY2VcdTgyZDRcdThkYzZcdTkwYjBcdTk4YjFcdWZhMDRcdTY0YzdcdTZmYTRcdTY0OTFcdTY1MDRcdTUxNGVcdTU0MTBcdTU3MWZcdThhMGVcdTYxNWZcdTY4NzZc'@; put 'dWZhMDVcdTc1ZGJcdTdiNTJcdTdkNzFcdTkwMWFcdTU4MDZcdTY5Y2NcdTgxN2ZcdTg5MmFcdTkwMDBcdTk4MzlcdTUwNzhcdTU5NTdcdTU5YWNcdTYyOTVcdTkwMGZcdTliMmFcdTYxNWRcdTcyNzlcdTk1ZDZcdTU3NjFcdTVhNDZcdTVkZjRcdTYyOGFcdTY0YWRcdTY0ZmFcdTY3NzdcdTZj'@; put 'ZTJcdTZkM2VcdTcyMmNcdTc0MzZcdTc4MzRcdTdmNzdcdTgyYWRcdThkZGJcdTk4MTdcdTUyMjRcdTU3NDJcdTY3N2ZcdTcyNDhcdTc0ZTNcdThjYTlcdThmYTZcdTkyMTFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDddLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0N11bbV0uY2hhckNv'@; put 'ZGVBdCgwKSYmKGFlW3hbMjQ3XVttXV09NjMyMzIrbSxGWzYzMjMyK21dPXhbMjQ3XVttXSk7Zm9yKHhbMjQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjJhXHU1MTZiXHU1M2VkXHU2MzRjXHU0ZjY5XHU1NTA0XHU2MDk2XHU2NTU3XHU2YzliXHU2ZDdmXHU3MjRjXHU3MmZkXHU3YTE3XHU4OTg3XHU4YzlkXHU1ZjZkXHU2ZjhlXHU3MGY5XHU4MWE4XHU2MTBlXHU0'@; put 'ZmJmXHU1MDRmXHU2MjQxXHU3MjQ3XHU3YmM3XHU3ZGU4XHU3ZmU5XHU5MDRkXHU5N2FkXHU5YTE5XHU4Y2I2XHU1NzZhXHU1ZTczXHU2N2IwXHU4NDBkXHU4YTU1XHU1NDIwXHU1YjE2XHU1ZTYzXHU1ZWUyXHU1ZjBhXHU2NTgzXHU4MGJhXHU4NTNkXHU5NTg5XHU5NjViXHU0ZjQ4XHU1MzA1'@; put 'XHU1MzBkXHU1MzBmXHU1NDg2XHU1NGZhXHU1NzAzXHU1ZTAzXHU2MDE2XHU2MjliXHU2MmIxXHU2MzU1XHVmYTA2XHU2Y2UxXHU2ZDY2XHU3NWIxXHU3ODMyXHU4MGRlXHU4MTJmXHU4MmRlXHU4NDYxXHU4NGIyXHU4ODhkXHU4OTEyXHU5MDBiXHU5MmVhXHU5OGZkXHU5YjkxXHU1ZTQ1XHU2'@; put 'NmI0XHU2NmRkXHU3MDExXHU3MjA2XHVmYTA3XHU0ZmY1XHU1MjdkXHU1ZjZhXHU2MTUzXHU2NzUzXHU2YTE5XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4Yzc5XHU5OGM3XHU5OGM0XHU5YTQzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQ4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsy'@; put 'NDhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0OF1bbV1dPTYzNDg4K20sRls2MzQ4OCttXT14WzI0OF1bbV0pO2Zvcih4WzI0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTRjMVx1N2ExZlx1Njk1M1x1OGFmN1x1OGM0YVx1OThhOFx1OTlhZVx1NWY3Y1x1NjJhYlx1NzViMlx1NzZhZVx1ODhhYlx1OTA3Zlx1OTY0Mlx1NTMzOVx1NWYzY1x1NWZjNVx1NmNjY1x1'@; put 'NzNjY1x1NzU2Mlx1NzU4Ylx1N2I0Nlx1ODJmZVx1OTk5ZFx1NGU0Zlx1OTAzY1x1NGUwYlx1NGY1NVx1NTNhNlx1NTkwZlx1NWVjOFx1NjYzMFx1NmNiM1x1NzQ1NVx1ODM3N1x1ODc2Nlx1OGNjMFx1OTA1MFx1OTcxZVx1OWMxNVx1NThkMVx1NWI3OFx1ODY1MFx1OGIxNFx1OWRiNFx1NWJk'@; put 'Mlx1NjA2OFx1NjA4ZFx1NjVmMVx1NmM1N1x1NmYyMlx1NmZhM1x1NzAxYVx1N2Y1NVx1N2ZmMFx1OTU5MVx1OTU5Mlx1OTY1MFx1OTdkM1x1NTI3Mlx1OGY0NFx1NTFmZFx1NTQyYlx1NTRiOFx1NTU2M1x1NTU4YVx1NmFiYlx1NmRiNVx1N2RkOFx1ODI2Nlx1OTI5Y1x1OTY3N1x1OWU3OVx1'@; put 'NTQwOFx1NTRjOFx1NzZkMlx1ODZlNFx1OTVhNFx1OTVkNFx1OTY1Y1x1NGVhMlx1NGYwOVx1NTllZVx1NWFlNlx1NWRmN1x1NjA1Mlx1NjI5N1x1Njc2ZFx1Njg0MVx1NmM4Nlx1NmUyZlx1N2YzOFx1ODA5Ylx1ODIyYVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0OV0ubGVuZ3RoOysr'@; put 'bSk2NTUzMyE9PXhbMjQ5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDldW21dXT02Mzc0NCttLEZbNjM3NDQrbV09eFsyNDldW21dKTtmb3IoeFsyNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZhMDhcdWZhMDlcdTk4MDVcdTRlYTVcdTUwNTVcdTU0YjNcdTU3OTNcdTU5NWFcdTViNjlcdTViYjNcdTYxYzhcdTY5NzdcdTZkNzdcdTcwMjNcdTg3ZjlcdTg5ZTNc'@; put 'dThhNzJcdThhZTdcdTkwODJcdTk5ZWRcdTlhYjhcdTUyYmVcdTY4MzhcdTUwMTZcdTVlNzhcdTY3NGZcdTgzNDdcdTg4NGNcdTRlYWJcdTU0MTFcdTU2YWVcdTczZTZcdTkxMTVcdTk3ZmZcdTk5MDlcdTk5NTdcdTk5OTlcdTU2NTNcdTU4OWZcdTg2NWJcdThhMzFcdTYxYjJcdTZhZjZcdTcz'@; put 'N2JcdThlZDJcdTZiNDdcdTk2YWFcdTlhNTdcdTU5NTVcdTcyMDBcdThkNmJcdTk3NjlcdTRmZDRcdTVjZjRcdTVmMjZcdTYxZjhcdTY2NWJcdTZjZWJcdTcwYWJcdTczODRcdTczYjlcdTczZmVcdTc3MjlcdTc3NGRcdTdkNDNcdTdkNjJcdTdlMjNcdTgyMzdcdTg4NTJcdWZhMGFcdThjZTJc'@; put 'dTkyNDlcdTk4NmZcdTViNTFcdTdhNzRcdTg4NDBcdTk4MDFcdTVhY2NcdTRmZTBcdTUzNTRcdTU5M2VcdTVjZmRcdTYzM2VcdTZkNzlcdTcyZjlcdTgxMDVcdTgxMDdcdTgzYTJcdTkyY2ZcdTk4MzBcdTRlYThcdTUxNDRcdTUyMTFcdTU3OGJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsy'@; put 'NTBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI1MF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjUwXVttXV09NjRlMyttLEZbNjRlMyttXT14WzI1MF1bbV0pO2Zvcih4WzI1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWY2Mlx1NmNjMlx1NmVjZVx1NzAwNVx1NzA1MFx1NzBhZlx1NzE5Mlx1NzNlOVx1NzQ2OVx1ODM0YVx1ODdhMlx1ODg2MVx1OTAwOFx1OTBhMlx1'@; put 'OTNhM1x1OTlhOFx1NTE2ZVx1NWY1N1x1NjBlMFx1NjE2N1x1NjZiM1x1ODU1OVx1OGU0YVx1OTFhZlx1OTc4Ylx1NGU0ZVx1NGU5Mlx1NTQ3Y1x1NThkNVx1NThmYVx1NTk3ZFx1NWNiNVx1NWYyN1x1NjIzNlx1NjI0OFx1NjYwYVx1NjY2N1x1NmJlYlx1NmQ2OVx1NmRjZlx1NmU1Nlx1NmVm'@; put 'OFx1NmY5NFx1NmZlMFx1NmZlOVx1NzA1ZFx1NzJkMFx1NzQyNVx1NzQ1YVx1NzRlMFx1NzY5M1x1Nzk1Y1x1N2NjYVx1N2UxZVx1ODBlMVx1ODJhNlx1ODQ2Ylx1ODRiZlx1ODY0ZVx1ODY1Zlx1ODc3NFx1OGI3N1x1OGM2YVx1OTNhY1x1OTgwMFx1OTg2NVx1NjBkMVx1NjIxNlx1OTE3N1x1'@; put 'NWE1YVx1NjYwZlx1NmRmN1x1NmUzZVx1NzQzZlx1OWI0Mlx1NWZmZFx1NjBkYVx1N2IwZlx1NTRjNFx1NWYxOFx1NmM1ZVx1NmNkM1x1NmQyYVx1NzBkOFx1N2QwNVx1ODY3OVx1OGEwY1x1OWQzYlx1NTMxNlx1NTQ4Y1x1NWIwNVx1NmEzYVx1NzA2Ylx1NzU3NVx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LG09MDttIT14WzI1MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjUxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNTFdW21dXT02NDI1NittLEZbNjQyNTYrbV09eFsyNTFdW21dKTtmb3IoeFsyNTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OGRcdTc5YmVcdTgyYjFcdTgzZWZcdThhNzFcdThiNDFcdThjYThcdTk3NzRcdWZhMGJcdTY0ZjRcdTY1MmJcdTc4YmFc'@; put 'dTc4YmJcdTdhNmJcdTRlMzhcdTU1OWFcdTU5NTBcdTViYTZcdTVlN2JcdTYwYTNcdTYzZGJcdTZiNjFcdTY2NjVcdTY4NTNcdTZlMTlcdTcxNjVcdTc0YjBcdTdkMDhcdTkwODRcdTlhNjlcdTljMjVcdTZkM2JcdTZlZDFcdTczM2VcdThjNDFcdTk1Y2FcdTUxZjBcdTVlNGNcdTVmYThcdTYw'@; put 'NGRcdTYwZjZcdTYxMzBcdTYxNGNcdTY2NDNcdTY2NDRcdTY5YTVcdTZjYzFcdTZlNWZcdTZlYzlcdTZmNjJcdTcxNGNcdTc0OWNcdTc2ODdcdTdiYzFcdTdjMjdcdTgzNTJcdTg3NTdcdTkwNTFcdTk2OGRcdTllYzNcdTUzMmZcdTU2ZGVcdTVlZmJcdTVmOGFcdTYwNjJcdTYwOTRcdTYxZjdc'@; put 'dTY2NjZcdTY3MDNcdTZhOWNcdTZkZWVcdTZmYWVcdTcwNzBcdTczNmFcdTdlNmFcdTgxYmVcdTgzMzRcdTg2ZDRcdThhYThcdThjYzRcdTUyODNcdTczNzJcdTViOTZcdTZhNmJcdTk0MDRcdTU0ZWVcdTU2ODZcdTViNWRcdTY1NDhcdTY1ODVcdTY2YzlcdTY4OWZcdTZkOGRcdTZkYzZcdWZm'@; put 'ZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNTJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI1Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjUyXVttXV09NjQ1MTIrbSxGWzY0NTEyK21dPXhbMjUyXVttXSk7Zm9yKHhbMjUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MjNiXHU4MGI0XHU5MTc1XHU5YTRkXHU0ZmFmXHU1MDE5XHU1MzlhXHU1NDBlXHU1NDNjXHU1NTg5'@; put 'XHU1NWM1XHU1ZTNmXHU1ZjhjXHU2NzNkXHU3MTY2XHU3M2RkXHU5MDA1XHU1MmRiXHU1MmYzXHU1ODY0XHU1OGNlXHU3MTA0XHU3MThmXHU3MWZiXHU4NWIwXHU4YTEzXHU2Njg4XHU4NWE4XHU1NWE3XHU2Njg0XHU3MTRhXHU4NDMxXHU1MzQ5XHU1NTk5XHU2YmMxXHU1ZjU5XHU1ZmJkXHU2'@; put 'M2VlXHU2Njg5XHU3MTQ3XHU4YWYxXHU4ZjFkXHU5ZWJlXHU0ZjExXHU2NDNhXHU3MGNiXHU3NTY2XHU4NjY3XHU2MDY0XHU4YjRlXHU5ZGY4XHU1MTQ3XHU1MWY2XHU1MzA4XHU2ZDM2XHU4MGY4XHU5ZWQxXHU2NjE1XHU2YjIzXHU3MDk4XHU3NWQ1XHU1NDAzXHU1Yzc5XHU3ZDA3XHU4YTE2'@; put 'XHU2YjIwXHU2YjNkXHU2YjQ2XHU1NDM4XHU2MDcwXHU2ZDNkXHU3ZmQ1XHU4MjA4XHU1MGQ2XHU1MWRlXHU1NTljXHU1NjZiXHU1NmNkXHU1OWVjXHU1YjA5XHU1ZTBjXHU2MTk5XHU2MTk4XHU2MjMxXHU2NjVlXHU2NmU2XHU3MTk5XHU3MWI5XHU3MWJhXHU3MmE3XHU3OWE3XHU3YTAwXHU3'@; put 'ZmIyXHU4YTcwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjUzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNTNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI1M11bbV1dPTY0NzY4K20sRls2NDc2OCttXT14WzI1M11bbV0pO3JldHVybntlbmM6YWUsZGVjOkZ9fSgpLEllWzk1MF09ZnVu'@; put 'Y3Rpb24oKXt2YXIgbSxGPVtdLGFlPXt9LHg9W107Zm9yKHhbMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygp'@; put 'KissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMF1bbV1dPTArbSxGWzArbV09eFswXVttXSk7Zm9yKHhbMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHVmZjBjXHUzMDAxXHUzMDAyXHVmZjBlXHUyMDI3XHVmZjFiXHVmZjFhXHVmZjFmXHVmZjAxXHVmZTMwXHUyMDI2XHUyMDI1XHVmZTUwXHVmZTUxXHVmZTUyXHhiN1x1ZmU1NFx1ZmU1NVx1ZmU1Nlx1ZmU1N1x1ZmY1Y1x1'@; put 'MjAxM1x1ZmUzMVx1MjAxNFx1ZmUzM1x1MjU3NFx1ZmUzNFx1ZmU0Zlx1ZmYwOFx1ZmYwOVx1ZmUzNVx1ZmUzNlx1ZmY1Ylx1ZmY1ZFx1ZmUzN1x1ZmUzOFx1MzAxNFx1MzAxNVx1ZmUzOVx1ZmUzYVx1MzAxMFx1MzAxMVx1ZmUzYlx1ZmUzY1x1MzAwYVx1MzAwYlx1ZmUzZFx1ZmUzZVx1MzAw'@; put 'OFx1MzAwOVx1ZmUzZlx1ZmU0MFx1MzAwY1x1MzAwZFx1ZmU0MVx1ZmU0Mlx1MzAwZVx1MzAwZlx1ZmU0M1x1ZmU0NFx1ZmU1OVx1ZmU1YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAx'@; put 'ZFx1MzAxZFx1MzAxZVx1MjAzNVx1MjAzMlx1ZmYwM1x1ZmYwNlx1ZmYwYVx1MjAzYlx4YTdcdTMwMDNcdTI1Y2JcdTI1Y2ZcdTI1YjNcdTI1YjJcdTI1Y2VcdTI2MDZcdTI2MDVcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YmRcdTI1YmNcdTMyYTNcdTIxMDVceGFmXHVmZmUzXHVmZjNm'@; put 'XHUwMmNkXHVmZTQ5XHVmZTRhXHVmZTRkXHVmZTRlXHVmZTRiXHVmZTRjXHVmZTVmXHVmZTYwXHVmZTYxXHVmZjBiXHVmZjBkXHhkN1x4ZjdceGIxXHUyMjFhXHVmZjFjXHVmZjFlXHVmZjFkXHUyMjY2XHUyMjY3XHUyMjYwXHUyMjFlXHUyMjUyXHUyMjYxXHVmZTYyXHVmZTYzXHVmZTY0XHVm'@; put 'ZTY1XHVmZTY2XHVmZjVlXHUyMjI5XHUyMjJhXHUyMmE1XHUyMjIwXHUyMjFmXHUyMmJmXHUzM2QyXHUzM2QxXHUyMjJiXHUyMjJlXHUyMjM1XHUyMjM0XHUyNjQwXHUyNjQyXHUyMjk1XHUyMjk5XHUyMTkxXHUyMTkzXHUyMTkwXHUyMTkyXHUyMTk2XHUyMTk3XHUyMTk5XHUyMTk4XHUyMjI1'@; put 'XHUyMjIzXHVmZjBmXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTYxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2MV1bbV1dPTQxMjE2K20sRls0MTIxNittXT14WzE2MV1bbV0pO2Zvcih4WzE2Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYzY1x1MjIxNVx1ZmU2OFx1ZmYwNFx1ZmZlNVx1MzAxMlx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYyMFx1MjEwM1x1MjEwOVx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1MzNkNVx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNjZVx1MzNhMVx1MzM4'@; put 'ZVx1MzM4Zlx1MzNjNFx4YjBcdTUxNTlcdTUxNWJcdTUxNWVcdTUxNWRcdTUxNjFcdTUxNjNcdTU1ZTdcdTc0ZTlcdTdjY2VcdTI1ODFcdTI1ODJcdTI1ODNcdTI1ODRcdTI1ODVcdTI1ODZcdTI1ODdcdTI1ODhcdTI1OGZcdTI1OGVcdTI1OGRcdTI1OGNcdTI1OGJcdTI1OGFcdTI1ODlcdTI1'@; put 'M2NcdTI1MzRcdTI1MmNcdTI1MjRcdTI1MWNcdTI1OTRcdTI1MDBcdTI1MDJcdTI1OTVcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1NmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1NmVcdTI1NzBcdTI1NmZcdTI1NTBcdTI1NWVcdTI1NmFcdTI1NjFcdTI1'@; put 'ZTJcdTI1ZTNcdTI1ZTVcdTI1ZTRcdTI1NzFcdTI1NzJcdTI1NzNcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIxNjdcdTIxNjhcdTIxNjlcdTMwMjFc'@; put 'dTMwMjJcdTMwMjNcdTMwMjRcdTMwMjVcdTMwMjZcdTMwMjdcdTMwMjhcdTMwMjlcdTUzNDFcdTUzNDRcdTUzNDVcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZm'@; put 'MzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJc'@; put 'dWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTYyXVttXV09NDE0NzIrbSxGWzQxNDcyK21dPXhbMTYyXVttXSk7Zm9yKHhbMTYzXT0iXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjU3XHVmZjU4XHVmZjU5XHVmZjVhXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2Ew'@; put 'XHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUw'@; put 'M2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHUzMTA1XHUzMTA2XHUzMTA3XHUzMTA4XHUzMTA5XHUzMTBhXHUzMTBiXHUzMTBjXHUzMTBkXHUzMTBlXHUzMTBmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMTEwXHUzMTExXHUzMTEyXHUzMTEzXHUzMTE0XHUz'@; put 'MTE1XHUzMTE2XHUzMTE3XHUzMTE4XHUzMTE5XHUzMTFhXHUzMTFiXHUzMTFjXHUzMTFkXHUzMTFlXHUzMTFmXHUzMTIwXHUzMTIxXHUzMTIyXHUzMTIzXHUzMTI0XHUzMTI1XHUzMTI2XHUzMTI3XHUzMTI4XHUzMTI5XHUwMmQ5XHUwMmM5XHUwMmNhXHUwMmM3XHUwMmNiXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTYzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2M11bbV1dPTQxNzI4K20sRls0MTcyOCttXT14WzE2M11bbV0pO2Zvcih4WzE2'@; put 'NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMFx1NGU1OVx1NGUwMVx1NGUwM1x1NGU0M1x1NGU1ZFx1NGU4Nlx1NGU4Y1x1NGViYVx1NTEzZlx1NTE2NVx1NTE2Ylx1NTFlMFx1NTIwMFx1NTIwMVx1NTI5Ylx1NTMxNVx1NTM0'@; put 'MVx1NTM1Y1x1NTNjOFx1NGUwOVx1NGUwYlx1NGUwOFx1NGUwYVx1NGUyYlx1NGUzOFx1NTFlMVx1NGU0NVx1NGU0OFx1NGU1Zlx1NGU1ZVx1NGU4ZVx1NGVhMVx1NTE0MFx1NTIwM1x1NTJmYVx1NTM0M1x1NTNjOVx1NTNlM1x1NTcxZlx1NThlYlx1NTkxNVx1NTkyN1x1NTk3M1x1NWI1MFx1'@; put 'NWI1MVx1NWI1M1x1NWJmOFx1NWMwZlx1NWMyMlx1NWMzOFx1NWM3MVx1NWRkZFx1NWRlNVx1NWRmMVx1NWRmMlx1NWRmM1x1NWRmZVx1NWU3Mlx1NWVmZVx1NWYwYlx1NWYxM1x1NjI0ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUxMVx1NGUxMFx1NGUwZFx1'@; put 'NGUyZFx1NGUzMFx1NGUzOVx1NGU0Ylx1NWMzOVx1NGU4OFx1NGU5MVx1NGU5NVx1NGU5Mlx1NGU5NFx1NGVhMlx1NGVjMVx1NGVjMFx1NGVjM1x1NGVjNlx1NGVjN1x1NGVjZFx1NGVjYVx1NGVjYlx1NGVjNFx1NTE0M1x1NTE0MVx1NTE2N1x1NTE2ZFx1NTE2ZVx1NTE2Y1x1NTE5N1x1NTFm'@; put 'Nlx1NTIwNlx1NTIwN1x1NTIwOFx1NTJmYlx1NTJmZVx1NTJmZlx1NTMxNlx1NTMzOVx1NTM0OFx1NTM0N1x1NTM0NVx1NTM1ZVx1NTM4NFx1NTNjYlx1NTNjYVx1NTNjZFx1NThlY1x1NTkyOVx1NTkyYlx1NTkyYVx1NTkyZFx1NWI1NFx1NWMxMVx1NWMyNFx1NWMzYVx1NWM2Zlx1NWRmNFx1'@; put 'NWU3Ylx1NWVmZlx1NWYxNFx1NWYxNVx1NWZjM1x1NjIwOFx1NjIzNlx1NjI0Ylx1NjI0ZVx1NjUyZlx1NjU4N1x1NjU5N1x1NjVhNFx1NjViOVx1NjVlNVx1NjZmMFx1NjcwOFx1NjcyOFx1NmIyMFx1NmI2Mlx1NmI3OVx1NmJjYlx1NmJkNFx1NmJkYlx1NmMwZlx1NmMzNFx1NzA2Ylx1NzIy'@; put 'YVx1NzIzNlx1NzIzYlx1NzI0N1x1NzI1OVx1NzI1Ylx1NzJhY1x1NzM4Ylx1NGUxOVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2NF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTY0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjRdW21dXT00MTk4NCttLEZbNDE5ODQrbV09eFsxNjRd'@; put 'W21dKTtmb3IoeFsxNjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMTZcdTRlMTVcdTRlMTRcdTRlMThcdTRlM2JcdTRlNGRcdTRlNGZcdTRlNGVcdTRlZTVcdTRlZDhcdTRlZDRcdTRlZDVcdTRlZDZcdTRlZDdcdTRlZTNcdTRl'@; put 'ZTRcdTRlZDlcdTRlZGVcdTUxNDVcdTUxNDRcdTUxODlcdTUxOGFcdTUxYWNcdTUxZjlcdTUxZmFcdTUxZjhcdTUyMGFcdTUyYTBcdTUyOWZcdTUzMDVcdTUzMDZcdTUzMTdcdTUzMWRcdTRlZGZcdTUzNGFcdTUzNDlcdTUzNjFcdTUzNjBcdTUzNmZcdTUzNmVcdTUzYmJcdTUzZWZcdTUzZTRc'@; put 'dTUzZjNcdTUzZWNcdTUzZWVcdTUzZTlcdTUzZThcdTUzZmNcdTUzZjhcdTUzZjVcdTUzZWJcdTUzZTZcdTUzZWFcdTUzZjJcdTUzZjFcdTUzZjBcdTUzZTVcdTUzZWRcdTUzZmJcdTU2ZGJcdTU2ZGFcdTU5MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU5MmVc'@; put 'dTU5MzFcdTU5NzRcdTU5NzZcdTViNTVcdTViODNcdTVjM2NcdTVkZThcdTVkZTdcdTVkZTZcdTVlMDJcdTVlMDNcdTVlNzNcdTVlN2NcdTVmMDFcdTVmMThcdTVmMTdcdTVmYzVcdTYyMGFcdTYyNTNcdTYyNTRcdTYyNTJcdTYyNTFcdTY1YTVcdTY1ZTZcdTY3MmVcdTY3MmNcdTY3MmFcdTY3'@; put 'MmJcdTY3MmRcdTZiNjNcdTZiY2RcdTZjMTFcdTZjMTBcdTZjMzhcdTZjNDFcdTZjNDBcdTZjM2VcdTcyYWZcdTczODRcdTczODlcdTc0ZGNcdTc0ZTZcdTc1MThcdTc1MWZcdTc1MjhcdTc1MjlcdTc1MzBcdTc1MzFcdTc1MzJcdTc1MzNcdTc1OGJcdTc2N2RcdTc2YWVcdTc2YmZcdTc2ZWVc'@; put 'dTc3ZGJcdTc3ZTJcdTc3ZjNcdTc5M2FcdTc5YmVcdTdhNzRcdTdhY2JcdTRlMWVcdTRlMWZcdTRlNTJcdTRlNTNcdTRlNjlcdTRlOTlcdTRlYTRcdTRlYTZcdTRlYTVcdTRlZmZcdTRmMDlcdTRmMTlcdTRmMGFcdTRmMTVcdTRmMGRcdTRmMTBcdTRmMTFcdTRmMGZcdTRlZjJcdTRlZjZcdTRl'@; put 'ZmJcdTRlZjBcdTRlZjNcdTRlZmRcdTRmMDFcdTRmMGJcdTUxNDlcdTUxNDdcdTUxNDZcdTUxNDhcdTUxNjhcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2NV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTY1XVttXV09NDIyNDArbSxGWzQy'@; put 'MjQwK21dPXhbMTY1XVttXSk7Zm9yKHhbMTY2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MTcxXHU1MThkXHU1MWIwXHU1MjE3XHU1MjExXHU1MjEyXHU1MjBlXHU1MjE2XHU1MmEzXHU1MzA4XHU1MzIxXHU1MzIwXHU1MzcwXHU1'@; put 'MzcxXHU1NDA5XHU1NDBmXHU1NDBjXHU1NDBhXHU1NDEwXHU1NDAxXHU1NDBiXHU1NDA0XHU1NDExXHU1NDBkXHU1NDA4XHU1NDAzXHU1NDBlXHU1NDA2XHU1NDEyXHU1NmUwXHU1NmRlXHU1NmRkXHU1NzMzXHU1NzMwXHU1NzI4XHU1NzJkXHU1NzJjXHU1NzJmXHU1NzI5XHU1OTE5XHU1OTFh'@; put 'XHU1OTM3XHU1OTM4XHU1OTg0XHU1OTc4XHU1OTgzXHU1OTdkXHU1OTc5XHU1OTgyXHU1OTgxXHU1YjU3XHU1YjU4XHU1Yjg3XHU1Yjg4XHU1Yjg1XHU1Yjg5XHU1YmZhXHU1YzE2XHU1Yzc5XHU1ZGRlXHU1ZTA2XHU1ZTc2XHU1ZTc0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHU1ZjBmXHU1ZjFiXHU1ZmQ5XHU1ZmQ2XHU2MjBlXHU2MjBjXHU2MjBkXHU2MjEwXHU2MjYzXHU2MjViXHU2MjU4XHU2NTM2XHU2NWU5XHU2NWU4XHU2NWVjXHU2NWVkXHU2NmYyXHU2NmYzXHU2NzA5XHU2NzNkXHU2NzM0XHU2NzMxXHU2NzM1XHU2YjIxXHU2YjY0XHU2YjdiXHU2'@; put 'YzE2XHU2YzVkXHU2YzU3XHU2YzU5XHU2YzVmXHU2YzYwXHU2YzUwXHU2YzU1XHU2YzYxXHU2YzViXHU2YzRkXHU2YzRlXHU3MDcwXHU3MjVmXHU3MjVkXHU3NjdlXHU3YWY5XHU3YzczXHU3Y2Y4XHU3ZjM2XHU3ZjhhXHU3ZmJkXHU4MDAxXHU4MDAzXHU4MDBjXHU4MDEyXHU4MDMzXHU4MDdm'@; put 'XHU4MDg5XHU4MDhiXHU4MDhjXHU4MWUzXHU4MWVhXHU4MWYzXHU4MWZjXHU4MjBjXHU4MjFiXHU4MjFmXHU4MjZlXHU4MjcyXHU4MjdlXHU4NjZiXHU4ODQwXHU4ODRjXHU4ODYzXHU4OTdmXHU5NjIxXHU0ZTMyXHU0ZWE4XHU0ZjRkXHU0ZjRmXHU0ZjQ3XHU0ZjU3XHU0ZjVlXHU0ZjM0XHU0'@; put 'ZjViXHU0ZjU1XHU0ZjMwXHU0ZjUwXHU0ZjUxXHU0ZjNkXHU0ZjNhXHU0ZjM4XHU0ZjQzXHU0ZjU0XHU0ZjNjXHU0ZjQ2XHU0ZjYzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTY2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2Nl1bbV1d'@; put 'PTQyNDk2K20sRls0MjQ5NittXT14WzE2Nl1bbV0pO2Zvcih4WzE2N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGY1Y1x1NGY2MFx1NGYyZlx1NGY0ZVx1NGYzNlx1NGY1OVx1NGY1ZFx1NGY0OFx1NGY1YVx1NTE0Y1x1NTE0Ylx1'@; put 'NTE0ZFx1NTE3NVx1NTFiNlx1NTFiN1x1NTIyNVx1NTIyNFx1NTIyOVx1NTIyYVx1NTIyOFx1NTJhYlx1NTJhOVx1NTJhYVx1NTJhY1x1NTMyM1x1NTM3M1x1NTM3NVx1NTQxZFx1NTQyZFx1NTQxZVx1NTQzZVx1NTQyNlx1NTQ0ZVx1NTQyN1x1NTQ0Nlx1NTQ0M1x1NTQzM1x1NTQ0OFx1NTQ0'@; put 'Mlx1NTQxYlx1NTQyOVx1NTQ0YVx1NTQzOVx1NTQzYlx1NTQzOFx1NTQyZVx1NTQzNVx1NTQzNlx1NTQyMFx1NTQzY1x1NTQ0MFx1NTQzMVx1NTQyYlx1NTQxZlx1NTQyY1x1NTZlYVx1NTZmMFx1NTZlNFx1NTZlYlx1NTc0YVx1NTc1MVx1NTc0MFx1NTc0ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTc0N1x1NTc0ZVx1NTczZVx1NTc1MFx1NTc0Zlx1NTczYlx1NThlZlx1NTkzZVx1NTk5ZFx1NTk5Mlx1NTlhOFx1NTk5ZVx1NTlhM1x1NTk5OVx1NTk5Nlx1NTk4ZFx1NTlhNFx1NTk5M1x1NTk4YVx1NTlhNVx1NWI1ZFx1NWI1Y1x1NWI1YVx1NWI1Ylx1'@; put 'NWI4Y1x1NWI4Ylx1NWI4Zlx1NWMyY1x1NWM0MFx1NWM0MVx1NWMzZlx1NWMzZVx1NWM5MFx1NWM5MVx1NWM5NFx1NWM4Y1x1NWRlYlx1NWUwY1x1NWU4Zlx1NWU4N1x1NWU4YVx1NWVmN1x1NWYwNFx1NWYxZlx1NWY2NFx1NWY2Mlx1NWY3N1x1NWY3OVx1NWZkOFx1NWZjY1x1NWZkN1x1NWZj'@; put 'ZFx1NWZmMVx1NWZlYlx1NWZmOFx1NWZlYVx1NjIxMlx1NjIxMVx1NjI4NFx1NjI5N1x1NjI5Nlx1NjI4MFx1NjI3Nlx1NjI4OVx1NjI2ZFx1NjI4YVx1NjI3Y1x1NjI3ZVx1NjI3OVx1NjI3M1x1NjI5Mlx1NjI2Zlx1NjI5OFx1NjI2ZVx1NjI5NVx1NjI5M1x1NjI5MVx1NjI4Nlx1NjUzOVx1'@; put 'NjUzYlx1NjUzOFx1NjVmMVx1NjZmNFx1Njc1Zlx1Njc0ZVx1Njc0Zlx1Njc1MFx1Njc1MVx1Njc1Y1x1Njc1Nlx1Njc1ZVx1Njc0OVx1Njc0Nlx1Njc2MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTY3XVttXS5jaGFyQ29kZUF0KDApJiYo'@; put 'YWVbeFsxNjddW21dXT00Mjc1MittLEZbNDI3NTIrbV09eFsxNjddW21dKTtmb3IoeFsxNjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY3NTNcdTY3NTdcdTZiNjVcdTZiY2ZcdTZjNDJcdTZjNWVcdTZjOTlcdTZjODFcdTZjODhc'@; put 'dTZjODlcdTZjODVcdTZjOWJcdTZjNmFcdTZjN2FcdTZjOTBcdTZjNzBcdTZjOGNcdTZjNjhcdTZjOTZcdTZjOTJcdTZjN2RcdTZjODNcdTZjNzJcdTZjN2VcdTZjNzRcdTZjODZcdTZjNzZcdTZjOGRcdTZjOTRcdTZjOThcdTZjODJcdTcwNzZcdTcwN2NcdTcwN2RcdTcwNzhcdTcyNjJcdTcy'@; put 'NjFcdTcyNjBcdTcyYzRcdTcyYzJcdTczOTZcdTc1MmNcdTc1MmJcdTc1MzdcdTc1MzhcdTc2ODJcdTc2ZWZcdTc3ZTNcdTc5YzFcdTc5YzBcdTc5YmZcdTdhNzZcdTdjZmJcdTdmNTVcdTgwOTZcdTgwOTNcdTgwOWRcdTgwOThcdTgwOWJcdTgwOWFcdTgwYjJcdTgyNmZcdTgyOTJcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgyOGJcdTgyOGRcdTg5OGJcdTg5ZDJcdThhMDBcdThjMzdcdThjNDZcdThjNTVcdThjOWRcdThkNjRcdThkNzBcdThkYjNcdThlYWJcdThlY2FcdThmOWJcdThmYjBcdThmYzJcdThmYzZcdThmYzVcdThmYzRcdTVkZTFcdTkwOTFc'@; put 'dTkwYTJcdTkwYWFcdTkwYTZcdTkwYTNcdTkxNDlcdTkxYzZcdTkxY2NcdTk2MzJcdTk2MmVcdTk2MzFcdTk2MmFcdTk2MmNcdTRlMjZcdTRlNTZcdTRlNzNcdTRlOGJcdTRlOWJcdTRlOWVcdTRlYWJcdTRlYWNcdTRmNmZcdTRmOWRcdTRmOGRcdTRmNzNcdTRmN2ZcdTRmNmNcdTRmOWJcdTRm'@; put 'OGJcdTRmODZcdTRmODNcdTRmNzBcdTRmNzVcdTRmODhcdTRmNjlcdTRmN2JcdTRmOTZcdTRmN2VcdTRmOGZcdTRmOTFcdTRmN2FcdTUxNTRcdTUxNTJcdTUxNTVcdTUxNjlcdTUxNzdcdTUxNzZcdTUxNzhcdTUxYmRcdTUxZmRcdTUyM2JcdTUyMzhcdTUyMzdcdTUyM2FcdTUyMzBcdTUyMmVc'@; put 'dTUyMzZcdTUyNDFcdTUyYmVcdTUyYmJcdTUzNTJcdTUzNTRcdTUzNTNcdTUzNTFcdTUzNjZcdTUzNzdcdTUzNzhcdTUzNzlcdTUzZDZcdTUzZDRcdTUzZDdcdTU0NzNcdTU0NzVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2OF1bbV0uY2hh'@; put 'ckNvZGVBdCgwKSYmKGFlW3hbMTY4XVttXV09NDMwMDgrbSxGWzQzMDA4K21dPXhbMTY4XVttXSk7Zm9yKHhbMTY5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NDk2XHU1NDc4XHU1NDk1XHU1NDgwXHU1NDdiXHU1NDc3XHU1NDg0'@; put 'XHU1NDkyXHU1NDg2XHU1NDdjXHU1NDkwXHU1NDcxXHU1NDc2XHU1NDhjXHU1NDlhXHU1NDYyXHU1NDY4XHU1NDhiXHU1NDdkXHU1NDhlXHU1NmZhXHU1NzgzXHU1Nzc3XHU1NzZhXHU1NzY5XHU1NzYxXHU1NzY2XHU1NzY0XHU1NzdjXHU1OTFjXHU1OTQ5XHU1OTQ3XHU1OTQ4XHU1OTQ0XHU1'@; put 'OTU0XHU1OWJlXHU1OWJiXHU1OWQ0XHU1OWI5XHU1OWFlXHU1OWQxXHU1OWM2XHU1OWQwXHU1OWNkXHU1OWNiXHU1OWQzXHU1OWNhXHU1OWFmXHU1OWIzXHU1OWQyXHU1OWM1XHU1YjVmXHU1YjY0XHU1YjYzXHU1Yjk3XHU1YjlhXHU1Yjk4XHU1YjljXHU1Yjk5XHU1YjliXHU1YzFhXHU1YzQ4'@; put 'XHU1YzQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YzQ2XHU1Y2I3XHU1Y2ExXHU1Y2I4XHU1Y2E5XHU1Y2FiXHU1Y2IxXHU1Y2IzXHU1ZTE4XHU1ZTFhXHU1ZTE2XHU1ZTE1XHU1ZTFiXHU1ZTExXHU1ZTc4XHU1ZTlhXHU1ZTk3XHU1ZTljXHU1ZTk1XHU1ZTk2'@; put 'XHU1ZWY2XHU1ZjI2XHU1ZjI3XHU1ZjI5XHU1ZjgwXHU1ZjgxXHU1ZjdmXHU1ZjdjXHU1ZmRkXHU1ZmUwXHU1ZmZkXHU1ZmY1XHU1ZmZmXHU2MDBmXHU2MDE0XHU2MDJmXHU2MDM1XHU2MDE2XHU2MDJhXHU2MDE1XHU2MDIxXHU2MDI3XHU2MDI5XHU2MDJiXHU2MDFiXHU2MjE2XHU2MjE1XHU2'@; put 'MjNmXHU2MjNlXHU2MjQwXHU2MjdmXHU2MmM5XHU2MmNjXHU2MmM0XHU2MmJmXHU2MmMyXHU2MmI5XHU2MmQyXHU2MmRiXHU2MmFiXHU2MmQzXHU2MmQ0XHU2MmNiXHU2MmM4XHU2MmE4XHU2MmJkXHU2MmJjXHU2MmQwXHU2MmQ5XHU2MmM3XHU2MmNkXHU2MmI1XHU2MmRhXHU2MmIxXHU2MmQ4'@; put 'XHU2MmQ2XHU2MmQ3XHU2MmM2XHU2MmFjXHU2MmNlXHU2NTNlXHU2NWE3XHU2NWJjXHU2NWZhXHU2NjE0XHU2NjEzXHU2NjBjXHU2NjA2XHU2NjAyXHU2NjBlXHU2NjAwXHU2NjBmXHU2NjE1XHU2NjBhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTY5XS5sZW5ndGg7KyttKTY1NTMzIT09'@; put 'eFsxNjldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2OV1bbV1dPTQzMjY0K20sRls0MzI2NCttXT14WzE2OV1bbV0pO2Zvcih4WzE3MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjYwN1x1NjcwZFx1NjcwYlx1Njc2ZFx1Njc4'@; put 'Ylx1Njc5NVx1Njc3MVx1Njc5Y1x1Njc3M1x1Njc3N1x1Njc4N1x1Njc5ZFx1Njc5N1x1Njc2Zlx1Njc3MFx1Njc3Zlx1Njc4OVx1Njc3ZVx1Njc5MFx1Njc3NVx1Njc5YVx1Njc5M1x1Njc3Y1x1Njc2YVx1Njc3Mlx1NmIyM1x1NmI2Nlx1NmI2N1x1NmI3Zlx1NmMxM1x1NmMxYlx1NmNlM1x1'@; put 'NmNlOFx1NmNmM1x1NmNiMVx1NmNjY1x1NmNlNVx1NmNiM1x1NmNiZFx1NmNiZVx1NmNiY1x1NmNlMlx1NmNhYlx1NmNkNVx1NmNkM1x1NmNiOFx1NmNjNFx1NmNiOVx1NmNjMVx1NmNhZVx1NmNkN1x1NmNjNVx1NmNmMVx1NmNiZlx1NmNiYlx1NmNlMVx1NmNkYlx1NmNjYVx1NmNhY1x1NmNl'@; put 'Zlx1NmNkY1x1NmNkNlx1NmNlMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzA5NVx1NzA4ZVx1NzA5Mlx1NzA4YVx1NzA5OVx1NzIyY1x1NzIyZFx1NzIzOFx1NzI0OFx1NzI2N1x1NzI2OVx1NzJjMFx1NzJjZVx1NzJkOVx1NzJkN1x1NzJkMFx1NzNhOVx1NzNh'@; put 'OFx1NzM5Zlx1NzNhYlx1NzNhNVx1NzUzZFx1NzU5ZFx1NzU5OVx1NzU5YVx1NzY4NFx1NzZjMlx1NzZmMlx1NzZmNFx1NzdlNVx1NzdmZFx1NzkzZVx1Nzk0MFx1Nzk0MVx1NzljOVx1NzljOFx1N2E3YVx1N2E3OVx1N2FmYVx1N2NmZVx1N2Y1NFx1N2Y4Y1x1N2Y4Ylx1ODAwNVx1ODBiYVx1'@; put 'ODBhNVx1ODBhMlx1ODBiMVx1ODBhMVx1ODBhYlx1ODBhOVx1ODBiNFx1ODBhYVx1ODBhZlx1ODFlNVx1ODFmZVx1ODIwZFx1ODJiM1x1ODI5ZFx1ODI5OVx1ODJhZFx1ODJiZFx1ODI5Zlx1ODJiOVx1ODJiMVx1ODJhY1x1ODJhNVx1ODJhZlx1ODJiOFx1ODJhM1x1ODJiMFx1ODJiZVx1ODJi'@; put 'N1x1ODY0ZVx1ODY3MVx1NTIxZFx1ODg2OFx1OGVjYlx1OGZjZVx1OGZkNFx1OGZkMVx1OTBiNVx1OTBiOFx1OTBiMVx1OTBiNlx1OTFjN1x1OTFkMVx1OTU3N1x1OTU4MFx1OTYxY1x1OTY0MFx1OTYzZlx1OTYzYlx1OTY0NFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3MF0ubGVuZ3Ro'@; put 'OysrbSk2NTUzMyE9PXhbMTcwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzBdW21dXT00MzUyMCttLEZbNDM1MjArbV09eFsxNzBdW21dKTtmb3IoeFsxNzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2NDJcdTk2YjlcdTk2'@; put 'ZThcdTk3NTJcdTk3NWVcdTRlOWZcdTRlYWRcdTRlYWVcdTRmZTFcdTRmYjVcdTRmYWZcdTRmYmZcdTRmZTBcdTRmZDFcdTRmY2ZcdTRmZGRcdTRmYzNcdTRmYjZcdTRmZDhcdTRmZGZcdTRmY2FcdTRmZDdcdTRmYWVcdTRmZDBcdTRmYzRcdTRmYzJcdTRmZGFcdTRmY2VcdTRmZGVcdTRmYjdc'@; put 'dTUxNTdcdTUxOTJcdTUxOTFcdTUxYTBcdTUyNGVcdTUyNDNcdTUyNGFcdTUyNGRcdTUyNGNcdTUyNGJcdTUyNDdcdTUyYzdcdTUyYzlcdTUyYzNcdTUyYzFcdTUzMGRcdTUzNTdcdTUzN2JcdTUzOWFcdTUzZGJcdTU0YWNcdTU0YzBcdTU0YThcdTU0Y2VcdTU0YzlcdTU0YjhcdTU0YTZcdTU0'@; put 'YjNcdTU0YzdcdTU0YzJcdTU0YmRcdTU0YWFcdTU0YzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0YzRcdTU0YzhcdTU0YWZcdTU0YWJcdTU0YjFcdTU0YmJcdTU0YTlcdTU0YTdcdTU0YmZcdTU2ZmZcdTU3ODJcdTU3OGJcdTU3YTBcdTU3YTNcdTU3YTJcdTU3'@; put 'Y2VcdTU3YWVcdTU3OTNcdTU5NTVcdTU5NTFcdTU5NGZcdTU5NGVcdTU5NTBcdTU5ZGNcdTU5ZDhcdTU5ZmZcdTU5ZTNcdTU5ZThcdTVhMDNcdTU5ZTVcdTU5ZWFcdTU5ZGFcdTU5ZTZcdTVhMDFcdTU5ZmJcdTViNjlcdTViYTNcdTViYTZcdTViYTRcdTViYTJcdTViYTVcdTVjMDFcdTVjNGVc'@; put 'dTVjNGZcdTVjNGRcdTVjNGJcdTVjZDlcdTVjZDJcdTVkZjdcdTVlMWRcdTVlMjVcdTVlMWZcdTVlN2RcdTVlYTBcdTVlYTZcdTVlZmFcdTVmMDhcdTVmMmRcdTVmNjVcdTVmODhcdTVmODVcdTVmOGFcdTVmOGJcdTVmODdcdTVmOGNcdTVmODlcdTYwMTJcdTYwMWRcdTYwMjBcdTYwMjVcdTYw'@; put 'MGVcdTYwMjhcdTYwNGRcdTYwNzBcdTYwNjhcdTYwNjJcdTYwNDZcdTYwNDNcdTYwNmNcdTYwNmJcdTYwNmFcdTYwNjRcdTYyNDFcdTYyZGNcdTYzMTZcdTYzMDlcdTYyZmNcdTYyZWRcdTYzMDFcdTYyZWVcdTYyZmRcdTYzMDdcdTYyZjFcdTYyZjdcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9'@; put 'eFsxNzFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTcxXVttXV09NDM3NzYrbSxGWzQzNzc2K21dPXhbMTcxXVttXSk7Zm9yKHhbMTcyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2'@; put 'MmVmXHU2MmVjXHU2MmZlXHU2MmY0XHU2MzExXHU2MzAyXHU2NTNmXHU2NTQ1XHU2NWFiXHU2NWJkXHU2NWUyXHU2NjI1XHU2NjJkXHU2NjIwXHU2NjI3XHU2NjJmXHU2NjFmXHU2NjI4XHU2NjMxXHU2NjI0XHU2NmY3XHU2N2ZmXHU2N2QzXHU2N2YxXHU2N2Q0XHU2N2QwXHU2N2VjXHU2N2I2'@; put 'XHU2N2FmXHU2N2Y1XHU2N2U5XHU2N2VmXHU2N2M0XHU2N2QxXHU2N2I0XHU2N2RhXHU2N2U1XHU2N2I4XHU2N2NmXHU2N2RlXHU2N2YzXHU2N2IwXHU2N2Q5XHU2N2UyXHU2N2RkXHU2N2QyXHU2YjZhXHU2YjgzXHU2Yjg2XHU2YmI1XHU2YmQyXHU2YmQ3XHU2YzFmXHU2Y2M5XHU2ZDBiXHU2'@; put 'ZDMyXHU2ZDJhXHU2ZDQxXHU2ZDI1XHU2ZDBjXHU2ZDMxXHU2ZDFlXHU2ZDE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDNiXHU2ZDNkXHU2ZDNlXHU2ZDM2XHU2ZDFiXHU2Y2Y1XHU2ZDM5XHU2ZDI3XHU2ZDM4XHU2ZDI5XHU2ZDJlXHU2ZDM1XHU2ZDBlXHU2'@; put 'ZDJiXHU3MGFiXHU3MGJhXHU3MGIzXHU3MGFjXHU3MGFmXHU3MGFkXHU3MGI4XHU3MGFlXHU3MGE0XHU3MjMwXHU3MjcyXHU3MjZmXHU3Mjc0XHU3MmU5XHU3MmUwXHU3MmUxXHU3M2I3XHU3M2NhXHU3M2JiXHU3M2IyXHU3M2NkXHU3M2MwXHU3M2IzXHU3NTFhXHU3NTJkXHU3NTRmXHU3NTRj'@; put 'XHU3NTRlXHU3NTRiXHU3NWFiXHU3NWE0XHU3NWE1XHU3NWEyXHU3NWEzXHU3Njc4XHU3Njg2XHU3Njg3XHU3Njg4XHU3NmM4XHU3NmM2XHU3NmMzXHU3NmM1XHU3NzAxXHU3NmY5XHU3NmY4XHU3NzA5XHU3NzBiXHU3NmZlXHU3NmZjXHU3NzA3XHU3N2RjXHU3ODAyXHU3ODE0XHU3ODBjXHU3'@; put 'ODBkXHU3OTQ2XHU3OTQ5XHU3OTQ4XHU3OTQ3XHU3OWI5XHU3OWJhXHU3OWQxXHU3OWQyXHU3OWNiXHU3YTdmXHU3YTgxXHU3YWZmXHU3YWZkXHU3YzdkXHU3ZDAyXHU3ZDA1XHU3ZDAwXHU3ZDA5XHU3ZDA3XHU3ZDA0XHU3ZDA2XHU3ZjM4XHU3ZjhlXHU3ZmJmXHU4MDA0XHVmZmZkIi5zcGxp'@; put 'dCgiIiksbT0wO20hPXhbMTcyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3Ml1bbV1dPTQ0MDMyK20sRls0NDAzMittXT14WzE3Ml1bbV0pO2Zvcih4WzE3M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ODAxMFx1ODAwZFx1ODAxMVx1ODAzNlx1ODBkNlx1ODBlNVx1ODBkYVx1ODBjM1x1ODBjNFx1ODBjY1x1ODBlMVx1ODBkYlx1ODBjZVx1ODBkZVx1ODBlNFx1ODBkZFx1ODFmNFx1ODIyMlx1ODJlN1x1ODMwM1x1ODMwNVx1ODJlM1x1ODJkYlx1ODJlNlx1ODMwNFx1ODJl'@; put 'NVx1ODMwMlx1ODMwOVx1ODJkMlx1ODJkN1x1ODJmMVx1ODMwMVx1ODJkY1x1ODJkNFx1ODJkMVx1ODJkZVx1ODJkM1x1ODJkZlx1ODJlZlx1ODMwNlx1ODY1MFx1ODY3OVx1ODY3Ylx1ODY3YVx1ODg0ZFx1ODg2Ylx1ODk4MVx1ODlkNFx1OGEwOFx1OGEwMlx1OGEwM1x1OGM5ZVx1OGNhMFx1'@; put 'OGQ3NFx1OGQ3M1x1OGRiNFx1OGVjZFx1OGVjY1x1OGZmMFx1OGZlNlx1OGZlMlx1OGZlYVx1OGZlNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGZlZFx1OGZlYlx1OGZlNFx1OGZlOFx1OTBjYVx1OTBjZVx1OTBjMVx1OTBjM1x1OTE0Ylx1OTE0YVx1OTFjZFx1'@; put 'OTU4Mlx1OTY1MFx1OTY0Ylx1OTY0Y1x1OTY0ZFx1OTc2Mlx1OTc2OVx1OTdjYlx1OTdlZFx1OTdmM1x1OTgwMVx1OThhOFx1OThkYlx1OThkZlx1OTk5Nlx1OTk5OVx1NGU1OFx1NGViM1x1NTAwY1x1NTAwZFx1NTAyM1x1NGZlZlx1NTAyNlx1NTAyNVx1NGZmOFx1NTAyOVx1NTAxNlx1NTAw'@; put 'Nlx1NTAzY1x1NTAxZlx1NTAxYVx1NTAxMlx1NTAxMVx1NGZmYVx1NTAwMFx1NTAxNFx1NTAyOFx1NGZmMVx1NTAyMVx1NTAwYlx1NTAxOVx1NTAxOFx1NGZmM1x1NGZlZVx1NTAyZFx1NTAyYVx1NGZmZVx1NTAyYlx1NTAwOVx1NTE3Y1x1NTFhNFx1NTFhNVx1NTFhMlx1NTFjZFx1NTFjY1x1'@; put 'NTFjNlx1NTFjYlx1NTI1Nlx1NTI1Y1x1NTI1NFx1NTI1Ylx1NTI1ZFx1NTMyYVx1NTM3Zlx1NTM5Zlx1NTM5ZFx1NTNkZlx1NTRlOFx1NTUxMFx1NTUwMVx1NTUzN1x1NTRmY1x1NTRlNVx1NTRmMlx1NTUwNlx1NTRmYVx1NTUxNFx1NTRlOVx1NTRlZFx1NTRlMVx1NTUwOVx1NTRlZVx1NTRl'@; put 'YVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTczXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzNdW21dXT00NDI4OCttLEZbNDQyODgrbV09eFsxNzNdW21dKTtmb3IoeFsxNzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0ZTZcdTU1MjdcdTU1MDdcdTU0ZmRcdTU1MGZcdTU3MDNcdTU3MDRcdTU3YzJcdTU3ZDRcdTU3Y2JcdTU3YzNcdTU4MDlcdTU5MGZcdTU5NTdcdTU5NThcdTU5NWFcdTVhMTFcdTVhMThcdTVhMWNcdTVhMWZcdTVhMWJcdTVhMTNcdTU5ZWNcdTVh'@; put 'MjBcdTVhMjNcdTVhMjlcdTVhMjVcdTVhMGNcdTVhMDlcdTViNmJcdTVjNThcdTViYjBcdTViYjNcdTViYjZcdTViYjRcdTViYWVcdTViYjVcdTViYjlcdTViYjhcdTVjMDRcdTVjNTFcdTVjNTVcdTVjNTBcdTVjZWRcdTVjZmRcdTVjZmJcdTVjZWFcdTVjZThcdTVjZjBcdTVjZjZcdTVkMDFc'@; put 'dTVjZjRcdTVkZWVcdTVlMmRcdTVlMmJcdTVlYWJcdTVlYWRcdTVlYTdcdTVmMzFcdTVmOTJcdTVmOTFcdTVmOTBcdTYwNTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNjNcdTYwNjVcdTYwNTBcdTYwNTVcdTYwNmRcdTYwNjlcdTYwNmZcdTYwODRcdTYwOWZc'@; put 'dTYwOWFcdTYwOGRcdTYwOTRcdTYwOGNcdTYwODVcdTYwOTZcdTYyNDdcdTYyZjNcdTYzMDhcdTYyZmZcdTYzNGVcdTYzM2VcdTYzMmZcdTYzNTVcdTYzNDJcdTYzNDZcdTYzNGZcdTYzNDlcdTYzM2FcdTYzNTBcdTYzM2RcdTYzMmFcdTYzMmJcdTYzMjhcdTYzNGRcdTYzNGNcdTY1NDhcdTY1'@; put 'NDlcdTY1OTlcdTY1YzFcdTY1YzVcdTY2NDJcdTY2NDlcdTY2NGZcdTY2NDNcdTY2NTJcdTY2NGNcdTY2NDVcdTY2NDFcdTY2ZjhcdTY3MTRcdTY3MTVcdTY3MTdcdTY4MjFcdTY4MzhcdTY4NDhcdTY4NDZcdTY4NTNcdTY4MzlcdTY4NDJcdTY4NTRcdTY4MjlcdTY4YjNcdTY4MTdcdTY4NGNc'@; put 'dTY4NTFcdTY4M2RcdTY3ZjRcdTY4NTBcdTY4NDBcdTY4M2NcdTY4NDNcdTY4MmFcdTY4NDVcdTY4MTNcdTY4MThcdTY4NDFcdTZiOGFcdTZiODlcdTZiYjdcdTZjMjNcdTZjMjdcdTZjMjhcdTZjMjZcdTZjMjRcdTZjZjBcdTZkNmFcdTZkOTVcdTZkODhcdTZkODdcdTZkNjZcdTZkNzhcdTZk'@; put 'NzdcdTZkNTlcdTZkOTNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTc0XVttXV09NDQ1NDQrbSxGWzQ0NTQ0K21dPXhbMTc0XVttXSk7Zm9yKHhbMTc1XT0iXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDZjXHU2ZDg5XHU2ZDZlXHU2ZDVhXHU2ZDc0XHU2ZDY5XHU2ZDhjXHU2ZDhhXHU2ZDc5XHU2ZDg1XHU2ZDY1XHU2ZDk0XHU3MGNhXHU3MGQ4XHU3MGU0XHU3MGQ5XHU3MGM4XHU3MGNmXHU3MjM5XHU3Mjc5XHU3MmZjXHU3'@; put 'MmY5XHU3MmZkXHU3MmY4XHU3MmY3XHU3Mzg2XHU3M2VkXHU3NDA5XHU3M2VlXHU3M2UwXHU3M2VhXHU3M2RlXHU3NTU0XHU3NTVkXHU3NTVjXHU3NTVhXHU3NTU5XHU3NWJlXHU3NWM1XHU3NWM3XHU3NWIyXHU3NWIzXHU3NWJkXHU3NWJjXHU3NWI5XHU3NWMyXHU3NWI4XHU3NjhiXHU3NmIw'@; put 'XHU3NmNhXHU3NmNkXHU3NmNlXHU3NzI5XHU3NzFmXHU3NzIwXHU3NzI4XHU3N2U5XHU3ODMwXHU3ODI3XHU3ODM4XHU3ODFkXHU3ODM0XHU3ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ODI1XHU3ODJkXHU3ODIwXHU3ODFmXHU3ODMyXHU3OTU1XHU3OTUw'@; put 'XHU3OTYwXHU3OTVmXHU3OTU2XHU3OTVlXHU3OTVkXHU3OTU3XHU3OTVhXHU3OWU0XHU3OWUzXHU3OWU3XHU3OWRmXHU3OWU2XHU3OWU5XHU3OWQ4XHU3YTg0XHU3YTg4XHU3YWQ5XHU3YjA2XHU3YjExXHU3Yzg5XHU3ZDIxXHU3ZDE3XHU3ZDBiXHU3ZDBhXHU3ZDIwXHU3ZDIyXHU3ZDE0XHU3'@; put 'ZDEwXHU3ZDE1XHU3ZDFhXHU3ZDFjXHU3ZDBkXHU3ZDE5XHU3ZDFiXHU3ZjNhXHU3ZjVmXHU3Zjk0XHU3ZmM1XHU3ZmMxXHU4MDA2XHU4MDE4XHU4MDE1XHU4MDE5XHU4MDE3XHU4MDNkXHU4MDNmXHU4MGYxXHU4MTAyXHU4MGYwXHU4MTA1XHU4MGVkXHU4MGY0XHU4MTA2XHU4MGY4XHU4MGYz'@; put 'XHU4MTA4XHU4MGZkXHU4MTBhXHU4MGZjXHU4MGVmXHU4MWVkXHU4MWVjXHU4MjAwXHU4MjEwXHU4MjJhXHU4MjJiXHU4MjI4XHU4MjJjXHU4MmJiXHU4MzJiXHU4MzUyXHU4MzU0XHU4MzRhXHU4MzM4XHU4MzUwXHU4MzQ5XHU4MzM1XHU4MzM0XHU4MzRmXHU4MzMyXHU4MzM5XHU4MzM2XHU4'@; put 'MzE3XHU4MzQwXHU4MzMxXHU4MzI4XHU4MzQzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3NV1bbV1dPTQ0ODAwK20sRls0NDgwMCttXT14WzE3NV1bbV0pO2Zvcih4WzE3Nl09Ilx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODY1NFx1ODY4YVx1ODZhYVx1ODY5M1x1ODZhNFx1ODZhOVx1ODY4Y1x1ODZhM1x1ODY5Y1x1ODg3MFx1ODg3N1x1ODg4MVx1ODg4Mlx1ODg3ZFx1ODg3OVx1OGExOFx1OGExMFx1OGEwZVx1OGEwY1x1'@; put 'OGExNVx1OGEwYVx1OGExN1x1OGExM1x1OGExNlx1OGEwZlx1OGExMVx1OGM0OFx1OGM3YVx1OGM3OVx1OGNhMVx1OGNhMlx1OGQ3N1x1OGVhY1x1OGVkMlx1OGVkNFx1OGVjZlx1OGZiMVx1OTAwMVx1OTAwNlx1OGZmN1x1OTAwMFx1OGZmYVx1OGZmNFx1OTAwM1x1OGZmZFx1OTAwNVx1OGZm'@; put 'OFx1OTA5NVx1OTBlMVx1OTBkZFx1OTBlMlx1OTE1Mlx1OTE0ZFx1OTE0Y1x1OTFkOFx1OTFkZFx1OTFkN1x1OTFkY1x1OTFkOVx1OTU4M1x1OTY2Mlx1OTY2M1x1OTY2MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY1Ylx1OTY1ZFx1OTY2NFx1OTY1OFx1OTY1'@; put 'ZVx1OTZiYlx1OThlMlx1OTlhY1x1OWFhOFx1OWFkOFx1OWIyNVx1OWIzMlx1OWIzY1x1NGU3ZVx1NTA3YVx1NTA3ZFx1NTA1Y1x1NTA0N1x1NTA0M1x1NTA0Y1x1NTA1YVx1NTA0OVx1NTA2NVx1NTA3Nlx1NTA0ZVx1NTA1NVx1NTA3NVx1NTA3NFx1NTA3N1x1NTA0Zlx1NTAwZlx1NTA2Zlx1'@; put 'NTA2ZFx1NTE1Y1x1NTE5NVx1NTFmMFx1NTI2YVx1NTI2Zlx1NTJkMlx1NTJkOVx1NTJkOFx1NTJkNVx1NTMxMFx1NTMwZlx1NTMxOVx1NTMzZlx1NTM0MFx1NTMzZVx1NTNjM1x1NjZmY1x1NTU0Nlx1NTU2YVx1NTU2Nlx1NTU0NFx1NTU1ZVx1NTU2MVx1NTU0M1x1NTU0YVx1NTUzMVx1NTU1'@; put 'Nlx1NTU0Zlx1NTU1NVx1NTUyZlx1NTU2NFx1NTUzOFx1NTUyZVx1NTU1Y1x1NTUyY1x1NTU2M1x1NTUzM1x1NTU0MVx1NTU1N1x1NTcwOFx1NTcwYlx1NTcwOVx1NTdkZlx1NTgwNVx1NTgwYVx1NTgwNlx1NTdlMFx1NTdlNFx1NTdmYVx1NTgwMlx1NTgzNVx1NTdmN1x1NTdmOVx1NTkyMFx1'@; put 'NTk2Mlx1NWEzNlx1NWE0MVx1NWE0OVx1NWE2Nlx1NWE2YVx1NWE0MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTc2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzZdW21dXT00NTA1NittLEZbNDUwNTYrbV09eFsxNzZdW21dKTtmb3Io'@; put 'eFsxNzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhM2NcdTVhNjJcdTVhNWFcdTVhNDZcdTVhNGFcdTViNzBcdTViYzdcdTViYzVcdTViYzRcdTViYzJcdTViYmZcdTViYzZcdTVjMDlcdTVjMDhcdTVjMDdcdTVjNjBcdTVjNWNc'@; put 'dTVjNWRcdTVkMDdcdTVkMDZcdTVkMGVcdTVkMWJcdTVkMTZcdTVkMjJcdTVkMTFcdTVkMjlcdTVkMTRcdTVkMTlcdTVkMjRcdTVkMjdcdTVkMTdcdTVkZTJcdTVlMzhcdTVlMzZcdTVlMzNcdTVlMzdcdTVlYjdcdTVlYjhcdTVlYjZcdTVlYjVcdTVlYmVcdTVmMzVcdTVmMzdcdTVmNTdcdTVm'@; put 'NmNcdTVmNjlcdTVmNmJcdTVmOTdcdTVmOTlcdTVmOWVcdTVmOThcdTVmYTFcdTVmYTBcdTVmOWNcdTYwN2ZcdTYwYTNcdTYwODlcdTYwYTBcdTYwYThcdTYwY2JcdTYwYjRcdTYwZTZcdTYwYmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwYzVcdTYwYmJcdTYw'@; put 'YjVcdTYwZGNcdTYwYmNcdTYwZDhcdTYwZDVcdTYwYzZcdTYwZGZcdTYwYjhcdTYwZGFcdTYwYzdcdTYyMWFcdTYyMWJcdTYyNDhcdTYzYTBcdTYzYTdcdTYzNzJcdTYzOTZcdTYzYTJcdTYzYTVcdTYzNzdcdTYzNjdcdTYzOThcdTYzYWFcdTYzNzFcdTYzYTlcdTYzODlcdTYzODNcdTYzOWJc'@; put 'dTYzNmJcdTYzYThcdTYzODRcdTYzODhcdTYzOTlcdTYzYTFcdTYzYWNcdTYzOTJcdTYzOGZcdTYzODBcdTYzN2JcdTYzNjlcdTYzNjhcdTYzN2FcdTY1NWRcdTY1NTZcdTY1NTFcdTY1NTlcdTY1NTdcdTU1NWZcdTY1NGZcdTY1NThcdTY1NTVcdTY1NTRcdTY1OWNcdTY1OWJcdTY1YWNcdTY1'@; put 'Y2ZcdTY1Y2JcdTY1Y2NcdTY1Y2VcdTY2NWRcdTY2NWFcdTY2NjRcdTY2NjhcdTY2NjZcdTY2NWVcdTY2ZjlcdTUyZDdcdTY3MWJcdTY4ODFcdTY4YWZcdTY4YTJcdTY4OTNcdTY4YjVcdTY4N2ZcdTY4NzZcdTY4YjFcdTY4YTdcdTY4OTdcdTY4YjBcdTY4ODNcdTY4YzRcdTY4YWRcdTY4ODZc'@; put 'dTY4ODVcdTY4OTRcdTY4OWRcdTY4YThcdTY4OWZcdTY4YTFcdTY4ODJcdTZiMzJcdTZiYmFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzddLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3N11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTc3XVttXV09NDUzMTIrbSxGWzQ1MzEyK21dPXhb'@; put 'MTc3XVttXSk7Zm9yKHhbMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmViXHU2YmVjXHU2YzJiXHU2ZDhlXHU2ZGJjXHU2ZGYzXHU2ZGQ5XHU2ZGIyXHU2ZGUxXHU2ZGNjXHU2ZGU0XHU2ZGZiXHU2ZGZhXHU2ZTA1XHU2ZGM3'@; put 'XHU2ZGNiXHU2ZGFmXHU2ZGQxXHU2ZGFlXHU2ZGRlXHU2ZGY5XHU2ZGI4XHU2ZGY3XHU2ZGY1XHU2ZGM1XHU2ZGQyXHU2ZTFhXHU2ZGI1XHU2ZGRhXHU2ZGViXHU2ZGQ4XHU2ZGVhXHU2ZGYxXHU2ZGVlXHU2ZGU4XHU2ZGM2XHU2ZGM0XHU2ZGFhXHU2ZGVjXHU2ZGJmXHU2ZGU2XHU3MGY5XHU3'@; put 'MTA5XHU3MTBhXHU3MGZkXHU3MGVmXHU3MjNkXHU3MjdkXHU3MjgxXHU3MzFjXHU3MzFiXHU3MzE2XHU3MzEzXHU3MzE5XHU3Mzg3XHU3NDA1XHU3NDBhXHU3NDAzXHU3NDA2XHU3M2ZlXHU3NDBkXHU3NGUwXHU3NGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3'@; put 'NGY3XHU3NTFjXHU3NTIyXHU3NTY1XHU3NTY2XHU3NTYyXHU3NTcwXHU3NThmXHU3NWQ0XHU3NWQ1XHU3NWI1XHU3NWNhXHU3NWNkXHU3NjhlXHU3NmQ0XHU3NmQyXHU3NmRiXHU3NzM3XHU3NzNlXHU3NzNjXHU3NzM2XHU3NzM4XHU3NzNhXHU3ODZiXHU3ODQzXHU3ODRlXHU3OTY1XHU3OTY4'@; put 'XHU3OTZkXHU3OWZiXHU3YTkyXHU3YTk1XHU3YjIwXHU3YjI4XHU3YjFiXHU3YjJjXHU3YjI2XHU3YjE5XHU3YjFlXHU3YjJlXHU3YzkyXHU3Yzk3XHU3Yzk1XHU3ZDQ2XHU3ZDQzXHU3ZDcxXHU3ZDJlXHU3ZDM5XHU3ZDNjXHU3ZDQwXHU3ZDMwXHU3ZDMzXHU3ZDQ0XHU3ZDJmXHU3ZDQyXHU3'@; put 'ZDMyXHU3ZDMxXHU3ZjNkXHU3ZjllXHU3ZjlhXHU3ZmNjXHU3ZmNlXHU3ZmQyXHU4MDFjXHU4MDRhXHU4MDQ2XHU4MTJmXHU4MTE2XHU4MTIzXHU4MTJiXHU4MTI5XHU4MTMwXHU4MTI0XHU4MjAyXHU4MjM1XHU4MjM3XHU4MjM2XHU4MjM5XHU4MzhlXHU4MzllXHU4Mzk4XHU4Mzc4XHU4M2Ey'@; put 'XHU4Mzk2XHU4M2JkXHU4M2FiXHU4MzkyXHU4MzhhXHU4MzkzXHU4Mzg5XHU4M2EwXHU4Mzc3XHU4MzdiXHU4MzdjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3OF1bbV1dPTQ1NTY4K20s'@; put 'Rls0NTU2OCttXT14WzE3OF1bbV0pO2Zvcih4WzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM4Nlx1ODNhN1x1ODY1NVx1NWY2YVx1ODZjN1x1ODZjMFx1ODZiNlx1ODZjNFx1ODZiNVx1ODZjNlx1ODZjYlx1ODZiMVx1ODZh'@; put 'Zlx1ODZjOVx1ODg1M1x1ODg5ZVx1ODg4OFx1ODhhYlx1ODg5Mlx1ODg5Nlx1ODg4ZFx1ODg4Ylx1ODk5M1x1ODk4Zlx1OGEyYVx1OGExZFx1OGEyM1x1OGEyNVx1OGEzMVx1OGEyZFx1OGExZlx1OGExYlx1OGEyMlx1OGM0OVx1OGM1YVx1OGNhOVx1OGNhY1x1OGNhYlx1OGNhOFx1OGNhYVx1'@; put 'OGNhN1x1OGQ2N1x1OGQ2Nlx1OGRiZVx1OGRiYVx1OGVkYlx1OGVkZlx1OTAxOVx1OTAwZFx1OTAxYVx1OTAxN1x1OTAyM1x1OTAxZlx1OTAxZFx1OTAxMFx1OTAxNVx1OTAxZVx1OTAyMFx1OTAwZlx1OTAyMlx1OTAxNlx1OTAxYlx1OTAxNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1OTBlOFx1OTBlZFx1OTBmZFx1OTE1N1x1OTFjZVx1OTFmNVx1OTFlNlx1OTFlM1x1OTFlN1x1OTFlZFx1OTFlOVx1OTU4OVx1OTY2YVx1OTY3NVx1OTY3M1x1OTY3OFx1OTY3MFx1OTY3NFx1OTY3Nlx1OTY3N1x1OTY2Y1x1OTZjMFx1OTZlYVx1OTZlOVx1N2FlMFx1N2Fk'@; put 'Zlx1OTgwMlx1OTgwM1x1OWI1YVx1OWNlNVx1OWU3NVx1OWU3Zlx1OWVhNVx1OWViYlx1NTBhMlx1NTA4ZFx1NTA4NVx1NTA5OVx1NTA5MVx1NTA4MFx1NTA5Nlx1NTA5OFx1NTA5YVx1NjcwMFx1NTFmMVx1NTI3Mlx1NTI3NFx1NTI3NVx1NTI2OVx1NTJkZVx1NTJkZFx1NTJkYlx1NTM1YVx1'@; put 'NTNhNVx1NTU3Ylx1NTU4MFx1NTVhN1x1NTU3Y1x1NTU4YVx1NTU5ZFx1NTU5OFx1NTU4Mlx1NTU5Y1x1NTVhYVx1NTU5NFx1NTU4N1x1NTU4Ylx1NTU4M1x1NTViM1x1NTVhZVx1NTU5Zlx1NTUzZVx1NTViMlx1NTU5YVx1NTViYlx1NTVhY1x1NTViMVx1NTU3ZVx1NTU4OVx1NTVhYlx1NTU5'@; put 'OVx1NTcwZFx1NTgyZlx1NTgyYVx1NTgzNFx1NTgyNFx1NTgzMFx1NTgzMVx1NTgyMVx1NTgxZFx1NTgyMFx1NThmOVx1NThmYVx1NTk2MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3OV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTc5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzld'@; put 'W21dXT00NTgyNCttLEZbNDU4MjQrbV09eFsxNzldW21dKTtmb3IoeFsxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhNzdcdTVhOWFcdTVhN2ZcdTVhOTJcdTVhOWJcdTVhYTdcdTViNzNcdTViNzFcdTViZDJcdTViY2NcdTVi'@; put 'ZDNcdTViZDBcdTVjMGFcdTVjMGJcdTVjMzFcdTVkNGNcdTVkNTBcdTVkMzRcdTVkNDdcdTVkZmRcdTVlNDVcdTVlM2RcdTVlNDBcdTVlNDNcdTVlN2VcdTVlY2FcdTVlYzFcdTVlYzJcdTVlYzRcdTVmM2NcdTVmNmRcdTVmYTlcdTVmYWFcdTVmYThcdTYwZDFcdTYwZTFcdTYwYjJcdTYwYjZc'@; put 'dTYwZTBcdTYxMWNcdTYxMjNcdTYwZmFcdTYxMTVcdTYwZjBcdTYwZmJcdTYwZjRcdTYxNjhcdTYwZjFcdTYxMGVcdTYwZjZcdTYxMDlcdTYxMDBcdTYxMTJcdTYyMWZcdTYyNDlcdTYzYTNcdTYzOGNcdTYzY2ZcdTYzYzBcdTYzZTlcdTYzYzlcdTYzYzZcdTYzY2RcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYzZDJcdTYzZTNcdTYzZDBcdTYzZTFcdTYzZDZcdTYzZWRcdTYzZWVcdTYzNzZcdTYzZjRcdTYzZWFcdTYzZGJcdTY0NTJcdTYzZGFcdTYzZjlcdTY1NWVcdTY1NjZcdTY1NjJcdTY1NjNcdTY1OTFcdTY1OTBcdTY1YWZcdTY2NmVcdTY2NzBcdTY2'@; put 'NzRcdTY2NzZcdTY2NmZcdTY2OTFcdTY2N2FcdTY2N2VcdTY2NzdcdTY2ZmVcdTY2ZmZcdTY3MWZcdTY3MWRcdTY4ZmFcdTY4ZDVcdTY4ZTBcdTY4ZDhcdTY4ZDdcdTY5MDVcdTY4ZGZcdTY4ZjVcdTY4ZWVcdTY4ZTdcdTY4ZjlcdTY4ZDJcdTY4ZjJcdTY4ZTNcdTY4Y2JcdTY4Y2RcdTY5MGRc'@; put 'dTY5MTJcdTY5MGVcdTY4YzlcdTY4ZGFcdTY5NmVcdTY4ZmJcdTZiM2VcdTZiM2FcdTZiM2RcdTZiOThcdTZiOTZcdTZiYmNcdTZiZWZcdTZjMmVcdTZjMmZcdTZjMmNcdTZlMmZcdTZlMzhcdTZlNTRcdTZlMjFcdTZlMzJcdTZlNjdcdTZlNGFcdTZlMjBcdTZlMjVcdTZlMjNcdTZlMWJcdTZl'@; put 'NWJcdTZlNThcdTZlMjRcdTZlNTZcdTZlNmVcdTZlMmRcdTZlMjZcdTZlNmZcdTZlMzRcdTZlNGRcdTZlM2FcdTZlMmNcdTZlNDNcdTZlMWRcdTZlM2VcdTZlY2JcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4MF1bbV0uY2hhckNvZGVBdCgw'@; put 'KSYmKGFlW3hbMTgwXVttXV09NDYwODArbSxGWzQ2MDgwK21dPXhbMTgwXVttXSk7Zm9yKHhbMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZTg5XHU2ZTE5XHU2ZTRlXHU2ZTYzXHU2ZTQ0XHU2ZTcyXHU2ZTY5XHU2ZTVmXHU3'@; put 'MTE5XHU3MTFhXHU3MTI2XHU3MTMwXHU3MTIxXHU3MTM2XHU3MTZlXHU3MTFjXHU3MjRjXHU3Mjg0XHU3MjgwXHU3MzM2XHU3MzI1XHU3MzM0XHU3MzI5XHU3NDNhXHU3NDJhXHU3NDMzXHU3NDIyXHU3NDI1XHU3NDM1XHU3NDM2XHU3NDM0XHU3NDJmXHU3NDFiXHU3NDI2XHU3NDI4XHU3NTI1'@; put 'XHU3NTI2XHU3NTZiXHU3NTZhXHU3NWUyXHU3NWRiXHU3NWUzXHU3NWQ5XHU3NWQ4XHU3NWRlXHU3NWUwXHU3NjdiXHU3NjdjXHU3Njk2XHU3NjkzXHU3NmI0XHU3NmRjXHU3NzRmXHU3N2VkXHU3ODVkXHU3ODZjXHU3ODZmXHU3YTBkXHU3YTA4XHU3YTBiXHU3YTA1XHU3YTAwXHU3YTk4XHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTk3XHU3YTk2XHU3YWU1XHU3YWUzXHU3YjQ5XHU3YjU2XHU3YjQ2XHU3YjUwXHU3YjUyXHU3YjU0XHU3YjRkXHU3YjRiXHU3YjRmXHU3YjUxXHU3YzlmXHU3Y2E1XHU3ZDVlXHU3ZDUwXHU3ZDY4XHU3ZDU1XHU3ZDJiXHU3'@; put 'ZDZlXHU3ZDcyXHU3ZDYxXHU3ZDY2XHU3ZDYyXHU3ZDcwXHU3ZDczXHU1NTg0XHU3ZmQ0XHU3ZmQ1XHU4MDBiXHU4MDUyXHU4MDg1XHU4MTU1XHU4MTU0XHU4MTRiXHU4MTUxXHU4MTRlXHU4MTM5XHU4MTQ2XHU4MTNlXHU4MTRjXHU4MTUzXHU4MTc0XHU4MjEyXHU4MjFjXHU4M2U5XHU4NDAz'@; put 'XHU4M2Y4XHU4NDBkXHU4M2UwXHU4M2M1XHU4NDBiXHU4M2MxXHU4M2VmXHU4M2YxXHU4M2Y0XHU4NDU3XHU4NDBhXHU4M2YwXHU4NDBjXHU4M2NjXHU4M2ZkXHU4M2YyXHU4M2NhXHU4NDM4XHU4NDBlXHU4NDA0XHU4M2RjXHU4NDA3XHU4M2Q0XHU4M2RmXHU4NjViXHU4NmRmXHU4NmQ5XHU4'@; put 'NmVkXHU4NmQ0XHU4NmRiXHU4NmU0XHU4NmQwXHU4NmRlXHU4ODU3XHU4OGMxXHU4OGMyXHU4OGIxXHU4OTgzXHU4OTk2XHU4YTNiXHU4YTYwXHU4YTU1XHU4YTVlXHU4YTNjXHU4YTQxXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTgxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODFdW21d'@; put 'LmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4MV1bbV1dPTQ2MzM2K20sRls0NjMzNittXT14WzE4MV1bbV0pO2Zvcih4WzE4Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGE1NFx1OGE1Ylx1OGE1MFx1OGE0Nlx1OGEzNFx1OGEzYVx1'@; put 'OGEzNlx1OGE1Nlx1OGM2MVx1OGM4Mlx1OGNhZlx1OGNiY1x1OGNiM1x1OGNiZFx1OGNjMVx1OGNiYlx1OGNjMFx1OGNiNFx1OGNiN1x1OGNiNlx1OGNiZlx1OGNiOFx1OGQ4YVx1OGQ4NVx1OGQ4MVx1OGRjZVx1OGRkZFx1OGRjYlx1OGRkYVx1OGRkMVx1OGRjY1x1OGRkYlx1OGRjNlx1OGVm'@; put 'Ylx1OGVmOFx1OGVmY1x1OGY5Y1x1OTAyZVx1OTAzNVx1OTAzMVx1OTAzOFx1OTAzMlx1OTAzNlx1OTEwMlx1OTBmNVx1OTEwOVx1OTBmZVx1OTE2M1x1OTE2NVx1OTFjZlx1OTIxNFx1OTIxNVx1OTIyM1x1OTIwOVx1OTIxZVx1OTIwZFx1OTIxMFx1OTIwN1x1OTIxMVx1OTU5NFx1OTU4Zlx1'@; put 'OTU4Ylx1OTU5MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTU5M1x1OTU5Mlx1OTU4ZVx1OTY4YVx1OTY4ZVx1OTY4Ylx1OTY3ZFx1OTY4NVx1OTY4Nlx1OTY4ZFx1OTY3Mlx1OTY4NFx1OTZjMVx1OTZjNVx1OTZjNFx1OTZjNlx1OTZjN1x1OTZlZlx1OTZmMlx1'@; put 'OTdjY1x1OTgwNVx1OTgwNlx1OTgwOFx1OThlN1x1OThlYVx1OThlZlx1OThlOVx1OThmMlx1OThlZFx1OTlhZVx1OTlhZFx1OWVjM1x1OWVjZFx1OWVkMVx1NGU4Mlx1NTBhZFx1NTBiNVx1NTBiMlx1NTBiM1x1NTBjNVx1NTBiZVx1NTBhY1x1NTBiN1x1NTBiYlx1NTBhZlx1NTBjN1x1NTI3'@; put 'Zlx1NTI3N1x1NTI3ZFx1NTJkZlx1NTJlNlx1NTJlNFx1NTJlMlx1NTJlM1x1NTMyZlx1NTVkZlx1NTVlOFx1NTVkM1x1NTVlNlx1NTVjZVx1NTVkY1x1NTVjN1x1NTVkMVx1NTVlM1x1NTVlNFx1NTVlZlx1NTVkYVx1NTVlMVx1NTVjNVx1NTVjNlx1NTVlNVx1NTVjOVx1NTcxMlx1NTcxM1x1'@; put 'NTg1ZVx1NTg1MVx1NTg1OFx1NTg1N1x1NTg1YVx1NTg1NFx1NTg2Ylx1NTg0Y1x1NTg2ZFx1NTg0YVx1NTg2Mlx1NTg1Mlx1NTg0Ylx1NTk2N1x1NWFjMVx1NWFjOVx1NWFjY1x1NWFiZVx1NWFiZFx1NWFiY1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4Ml0ubGVuZ3RoOysrbSk2NTUz'@; put 'MyE9PXhbMTgyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODJdW21dXT00NjU5MittLEZbNDY1OTIrbV09eFsxODJdW21dKTtmb3IoeFsxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhYjNcdTVhYzJcdTVhYjJcdTVkNjlc'@; put 'dTVkNmZcdTVlNGNcdTVlNzlcdTVlYzlcdTVlYzhcdTVmMTJcdTVmNTlcdTVmYWNcdTVmYWVcdTYxMWFcdTYxMGZcdTYxNDhcdTYxMWZcdTYwZjNcdTYxMWJcdTYwZjlcdTYxMDFcdTYxMDhcdTYxNGVcdTYxNGNcdTYxNDRcdTYxNGRcdTYxM2VcdTYxMzRcdTYxMjdcdTYxMGRcdTYxMDZcdTYx'@; put 'MzdcdTYyMjFcdTYyMjJcdTY0MTNcdTY0M2VcdTY0MWVcdTY0MmFcdTY0MmRcdTY0M2RcdTY0MmNcdTY0MGZcdTY0MWNcdTY0MTRcdTY0MGRcdTY0MzZcdTY0MTZcdTY0MTdcdTY0MDZcdTY1NmNcdTY1OWZcdTY1YjBcdTY2OTdcdTY2ODlcdTY2ODdcdTY2ODhcdTY2OTZcdTY2ODRcdTY2OThc'@; put 'dTY2OGRcdTY3MDNcdTY5OTRcdTY5NmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY5NWFcdTY5NzdcdTY5NjBcdTY5NTRcdTY5NzVcdTY5MzBcdTY5ODJcdTY5NGFcdTY5NjhcdTY5NmJcdTY5NWVcdTY5NTNcdTY5NzlcdTY5ODZcdTY5NWRcdTY5NjNcdTY5NWJc'@; put 'dTZiNDdcdTZiNzJcdTZiYzBcdTZiYmZcdTZiZDNcdTZiZmRcdTZlYTJcdTZlYWZcdTZlZDNcdTZlYjZcdTZlYzJcdTZlOTBcdTZlOWRcdTZlYzdcdTZlYzVcdTZlYTVcdTZlOThcdTZlYmNcdTZlYmFcdTZlYWJcdTZlZDFcdTZlOTZcdTZlOWNcdTZlYzRcdTZlZDRcdTZlYWFcdTZlYTdcdTZl'@; put 'YjRcdTcxNGVcdTcxNTlcdTcxNjlcdTcxNjRcdTcxNDlcdTcxNjdcdTcxNWNcdTcxNmNcdTcxNjZcdTcxNGNcdTcxNjVcdTcxNWVcdTcxNDZcdTcxNjhcdTcxNTZcdTcyM2FcdTcyNTJcdTczMzdcdTczNDVcdTczM2ZcdTczM2VcdTc0NmZcdTc0NWFcdTc0NTVcdTc0NWZcdTc0NWVcdTc0NDFc'@; put 'dTc0M2ZcdTc0NTlcdTc0NWJcdTc0NWNcdTc1NzZcdTc1NzhcdTc2MDBcdTc1ZjBcdTc2MDFcdTc1ZjJcdTc1ZjFcdTc1ZmFcdTc1ZmZcdTc1ZjRcdTc1ZjNcdTc2ZGVcdTc2ZGZcdTc3NWJcdTc3NmJcdTc3NjZcdTc3NWVcdTc3NjNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODNdLmxl'@; put 'bmd0aDsrK20pNjU1MzMhPT14WzE4M11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTgzXVttXV09NDY4NDgrbSxGWzQ2ODQ4K21dPXhbMTgzXVttXSk7Zm9yKHhbMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Nzc5XHU3NzZh'@; put 'XHU3NzZjXHU3NzVjXHU3NzY1XHU3NzY4XHU3NzYyXHU3N2VlXHU3ODhlXHU3OGIwXHU3ODk3XHU3ODk4XHU3ODhjXHU3ODg5XHU3ODdjXHU3ODkxXHU3ODkzXHU3ODdmXHU3OTdhXHU3OTdmXHU3OTgxXHU4NDJjXHU3OWJkXHU3YTFjXHU3YTFhXHU3YTIwXHU3YTE0XHU3YTFmXHU3YTFlXHU3'@; put 'YTlmXHU3YWEwXHU3Yjc3XHU3YmMwXHU3YjYwXHU3YjZlXHU3YjY3XHU3Y2IxXHU3Y2IzXHU3Y2I1XHU3ZDkzXHU3ZDc5XHU3ZDkxXHU3ZDgxXHU3ZDhmXHU3ZDViXHU3ZjZlXHU3ZjY5XHU3ZjZhXHU3ZjcyXHU3ZmE5XHU3ZmE4XHU3ZmE0XHU4MDU2XHU4MDU4XHU4MDg2XHU4MDg0XHU4MTcx'@; put 'XHU4MTcwXHU4MTc4XHU4MTY1XHU4MTZlXHU4MTczXHU4MTZiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTc5XHU4MTdhXHU4MTY2XHU4MjA1XHU4MjQ3XHU4NDgyXHU4NDc3XHU4NDNkXHU4NDMxXHU4NDc1XHU4NDY2XHU4NDZiXHU4NDQ5XHU4NDZjXHU4NDVi'@; put 'XHU4NDNjXHU4NDM1XHU4NDYxXHU4NDYzXHU4NDY5XHU4NDZkXHU4NDQ2XHU4NjVlXHU4NjVjXHU4NjVmXHU4NmY5XHU4NzEzXHU4NzA4XHU4NzA3XHU4NzAwXHU4NmZlXHU4NmZiXHU4NzAyXHU4NzAzXHU4NzA2XHU4NzBhXHU4ODU5XHU4OGRmXHU4OGQ0XHU4OGQ5XHU4OGRjXHU4OGQ4XHU4'@; put 'OGRkXHU4OGUxXHU4OGNhXHU4OGQ1XHU4OGQyXHU4OTljXHU4OWUzXHU4YTZiXHU4YTcyXHU4YTczXHU4YTY2XHU4YTY5XHU4YTcwXHU4YTg3XHU4YTdjXHU4YTYzXHU4YWEwXHU4YTcxXHU4YTg1XHU4YTZkXHU4YTYyXHU4YTZlXHU4YTZjXHU4YTc5XHU4YTdiXHU4YTNlXHU4YTY4XHU4YzYy'@; put 'XHU4YzhhXHU4Yzg5XHU4Y2NhXHU4Y2M3XHU4Y2M4XHU4Y2M0XHU4Y2IyXHU4Y2MzXHU4Y2MyXHU4Y2M1XHU4ZGUxXHU4ZGRmXHU4ZGU4XHU4ZGVmXHU4ZGYzXHU4ZGZhXHU4ZGVhXHU4ZGU0XHU4ZGU2XHU4ZWIyXHU4ZjAzXHU4ZjA5XHU4ZWZlXHU4ZjBhXHVmZmZkIi5zcGxpdCgiIiksbT0w'@; put 'O20hPXhbMTg0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4NF1bbV1dPTQ3MTA0K20sRls0NzEwNCttXT14WzE4NF1bbV0pO2Zvcih4WzE4NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1OGY5Zlx1OGZiMlx1OTA0Ylx1OTA0YVx1OTA1M1x1OTA0Mlx1OTA1NFx1OTAzY1x1OTA1NVx1OTA1MFx1OTA0N1x1OTA0Zlx1OTA0ZVx1OTA0ZFx1OTA1MVx1OTAzZVx1OTA0MVx1OTExMlx1OTExN1x1OTE2Y1x1OTE2YVx1OTE2OVx1OTFjOVx1OTIzN1x1OTI1N1x1OTIzOFx1OTIzZFx1'@; put 'OTI0MFx1OTIzZVx1OTI1Ylx1OTI0Ylx1OTI2NFx1OTI1MVx1OTIzNFx1OTI0OVx1OTI0ZFx1OTI0NVx1OTIzOVx1OTIzZlx1OTI1YVx1OTU5OFx1OTY5OFx1OTY5NFx1OTY5NVx1OTZjZFx1OTZjYlx1OTZjOVx1OTZjYVx1OTZmN1x1OTZmYlx1OTZmOVx1OTZmNlx1OTc1Nlx1OTc3NFx1OTc3'@; put 'Nlx1OTgxMFx1OTgxMVx1OTgxM1x1OTgwYVx1OTgxMlx1OTgwY1x1OThmY1x1OThmNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OThmZFx1OThmZVx1OTliM1x1OTliMVx1OTliNFx1OWFlMVx1OWNlOVx1OWU4Mlx1OWYwZVx1OWYxM1x1OWYyMFx1NTBlN1x1NTBl'@; put 'ZVx1NTBlNVx1NTBkNlx1NTBlZFx1NTBkYVx1NTBkNVx1NTBjZlx1NTBkMVx1NTBmMVx1NTBjZVx1NTBlOVx1NTE2Mlx1NTFmM1x1NTI4M1x1NTI4Mlx1NTMzMVx1NTNhZFx1NTVmZVx1NTYwMFx1NTYxYlx1NTYxN1x1NTVmZFx1NTYxNFx1NTYwNlx1NTYwOVx1NTYwZFx1NTYwZVx1NTVmN1x1'@; put 'NTYxNlx1NTYxZlx1NTYwOFx1NTYxMFx1NTVmNlx1NTcxOFx1NTcxNlx1NTg3NVx1NTg3ZVx1NTg4M1x1NTg5M1x1NTg4YVx1NTg3OVx1NTg4NVx1NTg3ZFx1NThmZFx1NTkyNVx1NTkyMlx1NTkyNFx1NTk2YVx1NTk2OVx1NWFlMVx1NWFlNlx1NWFlOVx1NWFkN1x1NWFkNlx1NWFkOFx1NWFl'@; put 'M1x1NWI3NVx1NWJkZVx1NWJlN1x1NWJlMVx1NWJlNVx1NWJlNlx1NWJlOFx1NWJlMlx1NWJlNFx1NWJkZlx1NWMwZFx1NWM2Mlx1NWQ4NFx1NWQ4N1x1NWU1Ylx1NWU2M1x1NWU1NVx1NWU1N1x1NWU1NFx1NWVkM1x1NWVkNlx1NWYwYVx1NWY0Nlx1NWY3MFx1NWZiOVx1NjE0N1x1ZmZmZCIu'@; put 'c3BsaXQoIiIpLG09MDttIT14WzE4NV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTg1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODVdW21dXT00NzM2MCttLEZbNDczNjArbV09eFsxODVdW21dKTtmb3IoeFsxODZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdTYxM2ZcdTYxNGJcdTYxNzdcdTYxNjJcdTYxNjNcdTYxNWZcdTYxNWFcdTYxNThcdTYxNzVcdTYyMmFcdTY0ODdcdTY0NThcdTY0NTRcdTY0YTRcdTY0NzhcdTY0NWZcdTY0N2FcdTY0NTFcdTY0NjdcdTY0MzRcdTY0NmRcdTY0N2JcdTY1NzJcdTY1YTFcdTY1ZDdc'@; put 'dTY1ZDZcdTY2YTJcdTY2YThcdTY2OWRcdTY5OWNcdTY5YThcdTY5OTVcdTY5YzFcdTY5YWVcdTY5ZDNcdTY5Y2JcdTY5OWJcdTY5YjdcdTY5YmJcdTY5YWJcdTY5YjRcdTY5ZDBcdTY5Y2RcdTY5YWRcdTY5Y2NcdTY5YTZcdTY5YzNcdTY5YTNcdTZiNDlcdTZiNGNcdTZjMzNcdTZmMzNcdTZm'@; put 'MTRcdTZlZmVcdTZmMTNcdTZlZjRcdTZmMjlcdTZmM2VcdTZmMjBcdTZmMmNcdTZmMGZcdTZmMDJcdTZmMjJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlZmZcdTZlZWZcdTZmMDZcdTZmMzFcdTZmMzhcdTZmMzJcdTZmMjNcdTZmMTVcdTZmMmJcdTZmMmZcdTZm'@; put 'ODhcdTZmMmFcdTZlZWNcdTZmMDFcdTZlZjJcdTZlY2NcdTZlZjdcdTcxOTRcdTcxOTlcdTcxN2RcdTcxOGFcdTcxODRcdTcxOTJcdTcyM2VcdTcyOTJcdTcyOTZcdTczNDRcdTczNTBcdTc0NjRcdTc0NjNcdTc0NmFcdTc0NzBcdTc0NmRcdTc1MDRcdTc1OTFcdTc2MjdcdTc2MGRcdTc2MGJc'@; put 'dTc2MDlcdTc2MTNcdTc2ZTFcdTc2ZTNcdTc3ODRcdTc3N2RcdTc3N2ZcdTc3NjFcdTc4YzFcdTc4OWZcdTc4YTdcdTc4YjNcdTc4YTlcdTc4YTNcdTc5OGVcdTc5OGZcdTc5OGRcdTdhMmVcdTdhMzFcdTdhYWFcdTdhYTlcdTdhZWRcdTdhZWZcdTdiYTFcdTdiOTVcdTdiOGJcdTdiNzVcdTdi'@; put 'OTdcdTdiOWRcdTdiOTRcdTdiOGZcdTdiYjhcdTdiODdcdTdiODRcdTdjYjlcdTdjYmRcdTdjYmVcdTdkYmJcdTdkYjBcdTdkOWNcdTdkYmRcdTdkYmVcdTdkYTBcdTdkY2FcdTdkYjRcdTdkYjJcdTdkYjFcdTdkYmFcdTdkYTJcdTdkYmZcdTdkYjVcdTdkYjhcdTdkYWRcdTdkZDJcdTdkYzdc'@; put 'dTdkYWNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4Nl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg2XVttXV09NDc2MTYrbSxGWzQ3NjE2K21dPXhbMTg2XVttXSk7Zm9yKHhbMTg3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjcwXHU3ZmUwXHU3ZmUxXHU3ZmRmXHU4MDVlXHU4MDVhXHU4MDg3XHU4MTUwXHU4MTgwXHU4MThmXHU4MTg4XHU4MThhXHU4MTdmXHU4MTgyXHU4MWU3XHU4MWZhXHU4MjA3XHU4MjE0XHU4MjFlXHU4MjRiXHU4NGM5XHU4NGJmXHU4NGM2'@; put 'XHU4NGM0XHU4NDk5XHU4NDllXHU4NGIyXHU4NDljXHU4NGNiXHU4NGI4XHU4NGMwXHU4NGQzXHU4NDkwXHU4NGJjXHU4NGQxXHU4NGNhXHU4NzNmXHU4NzFjXHU4NzNiXHU4NzIyXHU4NzI1XHU4NzM0XHU4NzE4XHU4NzU1XHU4NzM3XHU4NzI5XHU4OGYzXHU4OTAyXHU4OGY0XHU4OGY5XHU4'@; put 'OGY4XHU4OGZkXHU4OGU4XHU4OTFhXHU4OGVmXHU4YWE2XHU4YThjXHU4YTllXHU4YWEzXHU4YThkXHU4YWExXHU4YTkzXHU4YWE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWFhXHU4YWE1XHU4YWE4XHU4YTk4XHU4YTkxXHU4YTlhXHU4YWE3XHU4YzZhXHU4'@; put 'YzhkXHU4YzhjXHU4Y2QzXHU4Y2QxXHU4Y2QyXHU4ZDZiXHU4ZDk5XHU4ZDk1XHU4ZGZjXHU4ZjE0XHU4ZjEyXHU4ZjE1XHU4ZjEzXHU4ZmEzXHU5MDYwXHU5MDU4XHU5MDVjXHU5MDYzXHU5MDU5XHU5MDVlXHU5MDYyXHU5MDVkXHU5MDViXHU5MTE5XHU5MTE4XHU5MTFlXHU5MTc1XHU5MTc4'@; put 'XHU5MTc3XHU5MTc0XHU5Mjc4XHU5MjgwXHU5Mjg1XHU5Mjk4XHU5Mjk2XHU5MjdiXHU5MjkzXHU5MjljXHU5MmE4XHU5MjdjXHU5MjkxXHU5NWExXHU5NWE4XHU5NWE5XHU5NWEzXHU5NWE1XHU5NWE0XHU5Njk5XHU5NjljXHU5NjliXHU5NmNjXHU5NmQyXHU5NzAwXHU5NzdjXHU5Nzg1XHU5'@; put 'N2Y2XHU5ODE3XHU5ODE4XHU5OGFmXHU5OGIxXHU5OTAzXHU5OTA1XHU5OTBjXHU5OTA5XHU5OWMxXHU5YWFmXHU5YWIwXHU5YWU2XHU5YjQxXHU5YjQyXHU5Y2Y0XHU5Y2Y2XHU5Y2YzXHU5ZWJjXHU5ZjNiXHU5ZjRhXHU1MTA0XHU1MTAwXHU1MGZiXHU1MGY1XHU1MGY5XHU1MTAyXHU1MTA4'@; put 'XHU1MTA5XHU1MTA1XHU1MWRjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTg3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4N11bbV1dPTQ3ODcyK20sRls0Nzg3MittXT14WzE4N11bbV0pO2Zvcih4WzE4OF09Ilx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTI4N1x1NTI4OFx1NTI4OVx1NTI4ZFx1NTI4YVx1NTJmMFx1NTNiMlx1NTYyZVx1NTYzYlx1NTYzOVx1NTYzMlx1NTYzZlx1NTYzNFx1NTYyOVx1NTY1M1x1NTY0ZVx1NTY1N1x1NTY3NFx1NTYzNlx1NTYyZlx1NTYz'@; put 'MFx1NTg4MFx1NTg5Zlx1NTg5ZVx1NThiM1x1NTg5Y1x1NThhZVx1NThhOVx1NThhNlx1NTk2ZFx1NWIwOVx1NWFmYlx1NWIwYlx1NWFmNVx1NWIwY1x1NWIwOFx1NWJlZVx1NWJlY1x1NWJlOVx1NWJlYlx1NWM2NFx1NWM2NVx1NWQ5ZFx1NWQ5NFx1NWU2Mlx1NWU1Zlx1NWU2MVx1NWVlMlx1'@; put 'NWVkYVx1NWVkZlx1NWVkZFx1NWVlM1x1NWVlMFx1NWY0OFx1NWY3MVx1NWZiN1x1NWZiNVx1NjE3Nlx1NjE2N1x1NjE2ZVx1NjE1ZFx1NjE1NVx1NjE4Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjE3Y1x1NjE3MFx1NjE2Ylx1NjE3ZVx1NjFhN1x1NjE5MFx1'@; put 'NjFhYlx1NjE4ZVx1NjFhY1x1NjE5YVx1NjFhNFx1NjE5NFx1NjFhZVx1NjIyZVx1NjQ2OVx1NjQ2Zlx1NjQ3OVx1NjQ5ZVx1NjRiMlx1NjQ4OFx1NjQ5MFx1NjRiMFx1NjRhNVx1NjQ5M1x1NjQ5NVx1NjRhOVx1NjQ5Mlx1NjRhZVx1NjRhZFx1NjRhYlx1NjQ5YVx1NjRhY1x1NjQ5OVx1NjRh'@; put 'Mlx1NjRiM1x1NjU3NVx1NjU3N1x1NjU3OFx1NjZhZVx1NjZhYlx1NjZiNFx1NjZiMVx1NmEyM1x1NmExZlx1NjllOFx1NmEwMVx1NmExZVx1NmExOVx1NjlmZFx1NmEyMVx1NmExM1x1NmEwYVx1NjlmM1x1NmEwMlx1NmEwNVx1NjllZFx1NmExMVx1NmI1MFx1NmI0ZVx1NmJhNFx1NmJjNVx1'@; put 'NmJjNlx1NmYzZlx1NmY3Y1x1NmY4NFx1NmY1MVx1NmY2Nlx1NmY1NFx1NmY4Nlx1NmY2ZFx1NmY1Ylx1NmY3OFx1NmY2ZVx1NmY4ZVx1NmY3YVx1NmY3MFx1NmY2NFx1NmY5N1x1NmY1OFx1NmVkNVx1NmY2Zlx1NmY2MFx1NmY1Zlx1NzE5Zlx1NzFhY1x1NzFiMVx1NzFhOFx1NzI1Nlx1NzI5'@; put 'Ylx1NzM0ZVx1NzM1N1x1NzQ2OVx1NzQ4Ylx1NzQ4M1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4OF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTg4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODhdW21dXT00ODEyOCttLEZbNDgxMjgrbV09eFsxODhdW21dKTtmb3IoeFsxODldPSJc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0N2VcdTc0ODBcdTc1N2ZcdTc2MjBcdTc2MjlcdTc2MWZcdTc2MjRcdTc2MjZcdTc2MjFcdTc2MjJcdTc2OWFcdTc2YmFcdTc2ZTRcdTc3OGVcdTc3ODdcdTc3OGNcdTc3OTFcdTc3OGJcdTc4'@; put 'Y2JcdTc4YzVcdTc4YmFcdTc4Y2FcdTc4YmVcdTc4ZDVcdTc4YmNcdTc4ZDBcdTdhM2ZcdTdhM2NcdTdhNDBcdTdhM2RcdTdhMzdcdTdhM2JcdTdhYWZcdTdhYWVcdTdiYWRcdTdiYjFcdTdiYzRcdTdiYjRcdTdiYzZcdTdiYzdcdTdiYzFcdTdiYTBcdTdiY2NcdTdjY2FcdTdkZTBcdTdkZjRc'@; put 'dTdkZWZcdTdkZmJcdTdkZDhcdTdkZWNcdTdkZGRcdTdkZThcdTdkZTNcdTdkZGFcdTdkZGVcdTdkZTlcdTdkOWVcdTdkZDlcdTdkZjJcdTdkZjlcdTdmNzVcdTdmNzdcdTdmYWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdmZTlcdTgwMjZcdTgxOWJcdTgxOWNc'@; put 'dTgxOWRcdTgxYTBcdTgxOWFcdTgxOThcdTg1MTdcdTg1M2RcdTg1MWFcdTg0ZWVcdTg1MmNcdTg1MmRcdTg1MTNcdTg1MTFcdTg1MjNcdTg1MjFcdTg1MTRcdTg0ZWNcdTg1MjVcdTg0ZmZcdTg1MDZcdTg3ODJcdTg3NzRcdTg3NzZcdTg3NjBcdTg3NjZcdTg3NzhcdTg3NjhcdTg3NTlcdTg3'@; put 'NTdcdTg3NGNcdTg3NTNcdTg4NWJcdTg4NWRcdTg5MTBcdTg5MDdcdTg5MTJcdTg5MTNcdTg5MTVcdTg5MGFcdThhYmNcdThhZDJcdThhYzdcdThhYzRcdThhOTVcdThhY2JcdThhZjhcdThhYjJcdThhYzlcdThhYzJcdThhYmZcdThhYjBcdThhZDZcdThhY2RcdThhYjZcdThhYjlcdThhZGJc'@; put 'dThjNGNcdThjNGVcdThjNmNcdThjZTBcdThjZGVcdThjZTZcdThjZTRcdThjZWNcdThjZWRcdThjZTJcdThjZTNcdThjZGNcdThjZWFcdThjZTFcdThkNmRcdThkOWZcdThkYTNcdThlMmJcdThlMTBcdThlMWRcdThlMjJcdThlMGZcdThlMjlcdThlMWZcdThlMjFcdThlMWVcdThlYmFcdThm'@; put 'MWRcdThmMWJcdThmMWZcdThmMjlcdThmMjZcdThmMmFcdThmMWNcdThmMWVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODldLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4OV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg5XVttXV09NDgzODQrbSxGWzQ4Mzg0K21dPXhbMTg5XVttXSk7'@; put 'Zm9yKHhbMTkwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjI1XHU5MDY5XHU5MDZlXHU5MDY4XHU5MDZkXHU5MDc3XHU5MTMwXHU5MTJkXHU5MTI3XHU5MTMxXHU5MTg3XHU5MTg5XHU5MThiXHU5MTgzXHU5MmM1XHU5MmJiXHU5'@; put 'MmI3XHU5MmVhXHU5MmFjXHU5MmU0XHU5MmMxXHU5MmIzXHU5MmJjXHU5MmQyXHU5MmM3XHU5MmYwXHU5MmIyXHU5NWFkXHU5NWIxXHU5NzA0XHU5NzA2XHU5NzA3XHU5NzA5XHU5NzYwXHU5NzhkXHU5NzhiXHU5NzhmXHU5ODIxXHU5ODJiXHU5ODFjXHU5OGIzXHU5OTBhXHU5OTEzXHU5OTEy'@; put 'XHU5OTE4XHU5OWRkXHU5OWQwXHU5OWRmXHU5OWRiXHU5OWQxXHU5OWQ1XHU5OWQyXHU5OWQ5XHU5YWI3XHU5YWVlXHU5YWVmXHU5YjI3XHU5YjQ1XHU5YjQ0XHU5Yjc3XHU5YjZmXHU5ZDA2XHU5ZDA5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDAzXHU5ZWE5'@; put 'XHU5ZWJlXHU5ZWNlXHU1OGE4XHU5ZjUyXHU1MTEyXHU1MTE4XHU1MTE0XHU1MTEwXHU1MTE1XHU1MTgwXHU1MWFhXHU1MWRkXHU1MjkxXHU1MjkzXHU1MmYzXHU1NjU5XHU1NjZiXHU1Njc5XHU1NjY5XHU1NjY0XHU1Njc4XHU1NjZhXHU1NjY4XHU1NjY1XHU1NjcxXHU1NjZmXHU1NjZjXHU1'@; put 'NjYyXHU1Njc2XHU1OGMxXHU1OGJlXHU1OGM3XHU1OGM1XHU1OTZlXHU1YjFkXHU1YjM0XHU1Yjc4XHU1YmYwXHU1YzBlXHU1ZjRhXHU2MWIyXHU2MTkxXHU2MWE5XHU2MThhXHU2MWNkXHU2MWI2XHU2MWJlXHU2MWNhXHU2MWM4XHU2MjMwXHU2NGM1XHU2NGMxXHU2NGNiXHU2NGJiXHU2NGJj'@; put 'XHU2NGRhXHU2NGM0XHU2NGM3XHU2NGMyXHU2NGNkXHU2NGJmXHU2NGQyXHU2NGQ0XHU2NGJlXHU2NTc0XHU2NmM2XHU2NmM5XHU2NmI5XHU2NmM0XHU2NmM3XHU2NmI4XHU2YTNkXHU2YTM4XHU2YTNhXHU2YTU5XHU2YTZiXHU2YTU4XHU2YTM5XHU2YTQ0XHU2YTYyXHU2YTYxXHU2YTRiXHU2'@; put 'YTQ3XHU2YTM1XHU2YTVmXHU2YTQ4XHU2YjU5XHU2Yjc3XHU2YzA1XHU2ZmMyXHU2ZmIxXHU2ZmExXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTkwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5MF1bbV1dPTQ4NjQwK20sRls0ODY0MCtt'@; put 'XT14WzE5MF1bbV0pO2Zvcih4WzE5MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmZjM1x1NmZhNFx1NmZjMVx1NmZhN1x1NmZiM1x1NmZjMFx1NmZiOVx1NmZiNlx1NmZhNlx1NmZhMFx1NmZiNFx1NzFiZVx1NzFjOVx1NzFkMFx1'@; put 'NzFkMlx1NzFjOFx1NzFkNVx1NzFiOVx1NzFjZVx1NzFkOVx1NzFkY1x1NzFjM1x1NzFjNFx1NzM2OFx1NzQ5Y1x1NzRhM1x1NzQ5OFx1NzQ5Zlx1NzQ5ZVx1NzRlMlx1NzUwY1x1NzUwZFx1NzYzNFx1NzYzOFx1NzYzYVx1NzZlN1x1NzZlNVx1NzdhMFx1Nzc5ZVx1Nzc5Zlx1NzdhNVx1Nzhl'@; put 'OFx1NzhkYVx1NzhlY1x1NzhlN1x1NzlhNlx1N2E0ZFx1N2E0ZVx1N2E0Nlx1N2E0Y1x1N2E0Ylx1N2FiYVx1N2JkOVx1N2MxMVx1N2JjOVx1N2JlNFx1N2JkYlx1N2JlMVx1N2JlOVx1N2JlNlx1N2NkNVx1N2NkNlx1N2UwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1N2UxMVx1N2UwOFx1N2UxYlx1N2UyM1x1N2UxZVx1N2UxZFx1N2UwOVx1N2UxMFx1N2Y3OVx1N2ZiMlx1N2ZmMFx1N2ZmMVx1N2ZlZVx1ODAyOFx1ODFiM1x1ODFhOVx1ODFhOFx1ODFmYlx1ODIwOFx1ODI1OFx1ODI1OVx1ODU0YVx1ODU1OVx1ODU0OFx1ODU2OFx1ODU2OVx1ODU0M1x1'@; put 'ODU0OVx1ODU2ZFx1ODU2YVx1ODU1ZVx1ODc4M1x1ODc5Zlx1ODc5ZVx1ODdhMlx1ODc4ZFx1ODg2MVx1ODkyYVx1ODkzMlx1ODkyNVx1ODkyYlx1ODkyMVx1ODlhYVx1ODlhNlx1OGFlNlx1OGFmYVx1OGFlYlx1OGFmMVx1OGIwMFx1OGFkY1x1OGFlN1x1OGFlZVx1OGFmZVx1OGIwMVx1OGIw'@; put 'Mlx1OGFmN1x1OGFlZFx1OGFmM1x1OGFmNlx1OGFmY1x1OGM2Ylx1OGM2ZFx1OGM5M1x1OGNmNFx1OGU0NFx1OGUzMVx1OGUzNFx1OGU0Mlx1OGUzOVx1OGUzNVx1OGYzYlx1OGYyZlx1OGYzOFx1OGYzM1x1OGZhOFx1OGZhNlx1OTA3NVx1OTA3NFx1OTA3OFx1OTA3Mlx1OTA3Y1x1OTA3YVx1'@; put 'OTEzNFx1OTE5Mlx1OTMyMFx1OTMzNlx1OTJmOFx1OTMzM1x1OTMyZlx1OTMyMlx1OTJmY1x1OTMyYlx1OTMwNFx1OTMxYVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTkxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTFdW21dXT00ODg5'@; put 'NittLEZbNDg4OTYrbV09eFsxOTFdW21dKTtmb3IoeFsxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMTBcdTkzMjZcdTkzMjFcdTkzMTVcdTkzMmVcdTkzMTlcdTk1YmJcdTk2YTdcdTk2YThcdTk2YWFcdTk2ZDVcdTk3MGVc'@; put 'dTk3MTFcdTk3MTZcdTk3MGRcdTk3MTNcdTk3MGZcdTk3NWJcdTk3NWNcdTk3NjZcdTk3OThcdTk4MzBcdTk4MzhcdTk4M2JcdTk4MzdcdTk4MmRcdTk4MzlcdTk4MjRcdTk5MTBcdTk5MjhcdTk5MWVcdTk5MWJcdTk5MjFcdTk5MWFcdTk5ZWRcdTk5ZTJcdTk5ZjFcdTlhYjhcdTlhYmNcdTlh'@; put 'ZmJcdTlhZWRcdTliMjhcdTliOTFcdTlkMTVcdTlkMjNcdTlkMjZcdTlkMjhcdTlkMTJcdTlkMWJcdTllZDhcdTllZDRcdTlmOGRcdTlmOWNcdTUxMmFcdTUxMWZcdTUxMjFcdTUxMzJcdTUyZjVcdTU2OGVcdTU2ODBcdTU2OTBcdTU2ODVcdTU2ODdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdTU2OGZcdTU4ZDVcdTU4ZDNcdTU4ZDFcdTU4Y2VcdTViMzBcdTViMmFcdTViMjRcdTViN2FcdTVjMzdcdTVjNjhcdTVkYmNcdTVkYmFcdTVkYmRcdTVkYjhcdTVlNmJcdTVmNGNcdTVmYmRcdTYxYzlcdTYxYzJcdTYxYzdcdTYxZTZcdTYxY2JcdTYyMzJcdTYyMzRc'@; put 'dTY0Y2VcdTY0Y2FcdTY0ZDhcdTY0ZTBcdTY0ZjBcdTY0ZTZcdTY0ZWNcdTY0ZjFcdTY0ZTJcdTY0ZWRcdTY1ODJcdTY1ODNcdTY2ZDlcdTY2ZDZcdTZhODBcdTZhOTRcdTZhODRcdTZhYTJcdTZhOWNcdTZhZGJcdTZhYTNcdTZhN2VcdTZhOTdcdTZhOTBcdTZhYTBcdTZiNWNcdTZiYWVcdTZi'@; put 'ZGFcdTZjMDhcdTZmZDhcdTZmZjFcdTZmZGZcdTZmZTBcdTZmZGJcdTZmZTRcdTZmZWJcdTZmZWZcdTZmODBcdTZmZWNcdTZmZTFcdTZmZTlcdTZmZDVcdTZmZWVcdTZmZjBcdTcxZTdcdTcxZGZcdTcxZWVcdTcxZTZcdTcxZTVcdTcxZWRcdTcxZWNcdTcxZjRcdTcxZTBcdTcyMzVcdTcyNDZc'@; put 'dTczNzBcdTczNzJcdTc0YTlcdTc0YjBcdTc0YTZcdTc0YThcdTc2NDZcdTc2NDJcdTc2NGNcdTc2ZWFcdTc3YjNcdTc3YWFcdTc3YjBcdTc3YWNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hb'@; put 'MTkyXVttXV09NDkxNTIrbSxGWzQ5MTUyK21dPXhbMTkyXVttXSk7Zm9yKHhbMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2E3XHU3N2FkXHU3N2VmXHU3OGY3XHU3OGZhXHU3OGY0XHU3OGVmXHU3OTAxXHU3OWE3XHU3OWFh'@; put 'XHU3YTU3XHU3YWJmXHU3YzA3XHU3YzBkXHU3YmZlXHU3YmY3XHU3YzBjXHU3YmUwXHU3Y2UwXHU3Y2RjXHU3Y2RlXHU3Y2UyXHU3Y2RmXHU3Y2Q5XHU3Y2RkXHU3ZTJlXHU3ZTNlXHU3ZTQ2XHU3ZTM3XHU3ZTMyXHU3ZTQzXHU3ZTJiXHU3ZTNkXHU3ZTMxXHU3ZTQ1XHU3ZTQxXHU3ZTM0XHU3'@; put 'ZTM5XHU3ZTQ4XHU3ZTM1XHU3ZTNmXHU3ZTJmXHU3ZjQ0XHU3ZmYzXHU3ZmZjXHU4MDcxXHU4MDcyXHU4MDcwXHU4MDZmXHU4MDczXHU4MWM2XHU4MWMzXHU4MWJhXHU4MWMyXHU4MWMwXHU4MWJmXHU4MWJkXHU4MWM5XHU4MWJlXHU4MWU4XHU4MjA5XHU4MjcxXHU4NWFhXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTg0XHU4NTdlXHU4NTljXHU4NTkxXHU4NTk0XHU4NWFmXHU4NTliXHU4NTg3XHU4NWE4XHU4NThhXHU4NjY3XHU4N2MwXHU4N2QxXHU4N2IzXHU4N2QyXHU4N2M2XHU4N2FiXHU4N2JiXHU4N2JhXHU4N2M4XHU4N2NiXHU4OTNiXHU4OTM2'@; put 'XHU4OTQ0XHU4OTM4XHU4OTNkXHU4OWFjXHU4YjBlXHU4YjE3XHU4YjE5XHU4YjFiXHU4YjBhXHU4YjIwXHU4YjFkXHU4YjA0XHU4YjEwXHU4YzQxXHU4YzNmXHU4YzczXHU4Y2ZhXHU4Y2ZkXHU4Y2ZjXHU4Y2Y4XHU4Y2ZiXHU4ZGE4XHU4ZTQ5XHU4ZTRiXHU4ZTQ4XHU4ZTRhXHU4ZjQ0XHU4'@; put 'ZjNlXHU4ZjQyXHU4ZjQ1XHU4ZjNmXHU5MDdmXHU5MDdkXHU5MDg0XHU5MDgxXHU5MDgyXHU5MDgwXHU5MTM5XHU5MWEzXHU5MTllXHU5MTljXHU5MzRkXHU5MzgyXHU5MzI4XHU5Mzc1XHU5MzRhXHU5MzY1XHU5MzRiXHU5MzE4XHU5MzdlXHU5MzZjXHU5MzViXHU5MzcwXHU5MzVhXHU5MzU0'@; put 'XHU5NWNhXHU5NWNiXHU5NWNjXHU5NWM4XHU5NWM2XHU5NmIxXHU5NmI4XHU5NmQ2XHU5NzFjXHU5NzFlXHU5N2EwXHU5N2QzXHU5ODQ2XHU5OGI2XHU5OTM1XHU5YTAxXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTkzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTNdW21dLmNoYXJDb2Rl'@; put 'QXQoMCkmJihhZVt4WzE5M11bbV1dPTQ5NDA4K20sRls0OTQwOCttXT14WzE5M11bbV0pO2Zvcih4WzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTlmZlx1OWJhZVx1OWJhYlx1OWJhYVx1OWJhZFx1OWQzYlx1OWQzZlx1OWU4'@; put 'Ylx1OWVjZlx1OWVkZVx1OWVkY1x1OWVkZFx1OWVkYlx1OWYzZVx1OWY0Ylx1NTNlMlx1NTY5NVx1NTZhZVx1NThkOVx1NThkOFx1NWIzOFx1NWY1ZFx1NjFlM1x1NjIzM1x1NjRmNFx1NjRmMlx1NjRmZVx1NjUwNlx1NjRmYVx1NjRmYlx1NjRmN1x1NjViN1x1NjZkY1x1NjcyNlx1NmFiM1x1'@; put 'NmFhY1x1NmFjM1x1NmFiYlx1NmFiOFx1NmFjMlx1NmFhZVx1NmFhZlx1NmI1Zlx1NmI3OFx1NmJhZlx1NzAwOVx1NzAwYlx1NmZmZVx1NzAwNlx1NmZmYVx1NzAxMVx1NzAwZlx1NzFmYlx1NzFmY1x1NzFmZVx1NzFmOFx1NzM3N1x1NzM3NVx1NzRhN1x1NzRiZlx1NzUxNVx1NzY1Nlx1NzY1'@; put 'OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzY1Mlx1NzdiZFx1NzdiZlx1NzdiYlx1NzdiY1x1NzkwZVx1NzlhZVx1N2E2MVx1N2E2Mlx1N2E2MFx1N2FjNFx1N2FjNVx1N2MyYlx1N2MyN1x1N2MyYVx1N2MxZVx1N2MyM1x1N2MyMVx1N2NlN1x1N2U1NFx1N2U1'@; put 'NVx1N2U1ZVx1N2U1YVx1N2U2MVx1N2U1Mlx1N2U1OVx1N2Y0OFx1N2ZmOVx1N2ZmYlx1ODA3N1x1ODA3Nlx1ODFjZFx1ODFjZlx1ODIwYVx1ODVjZlx1ODVhOVx1ODVjZFx1ODVkMFx1ODVjOVx1ODViMFx1ODViYVx1ODViOVx1ODVhNlx1ODdlZlx1ODdlY1x1ODdmMlx1ODdlMFx1ODk4Nlx1'@; put 'ODliMlx1ODlmNFx1OGIyOFx1OGIzOVx1OGIyY1x1OGIyYlx1OGM1MFx1OGQwNVx1OGU1OVx1OGU2M1x1OGU2Nlx1OGU2NFx1OGU1Zlx1OGU1NVx1OGVjMFx1OGY0OVx1OGY0ZFx1OTA4N1x1OTA4M1x1OTA4OFx1OTFhYlx1OTFhY1x1OTFkMFx1OTM5NFx1OTM4YVx1OTM5Nlx1OTNhMlx1OTNi'@; put 'M1x1OTNhZVx1OTNhY1x1OTNiMFx1OTM5OFx1OTM5YVx1OTM5N1x1OTVkNFx1OTVkNlx1OTVkMFx1OTVkNVx1OTZlMlx1OTZkY1x1OTZkOVx1OTZkYlx1OTZkZVx1OTcyNFx1OTdhM1x1OTdhNlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5NF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTk0'@; put 'XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTRdW21dXT00OTY2NCttLEZbNDk2NjQrbV09eFsxOTRdW21dKTtmb3IoeFsxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3YWRcdTk3ZjlcdTk4NGRcdTk4NGZcdTk4NGNcdTk4'@; put 'NGVcdTk4NTNcdTk4YmFcdTk5M2VcdTk5M2ZcdTk5M2RcdTk5MmVcdTk5YTVcdTlhMGVcdTlhYzFcdTliMDNcdTliMDZcdTliNGZcdTliNGVcdTliNGRcdTliY2FcdTliYzlcdTliZmRcdTliYzhcdTliYzBcdTlkNTFcdTlkNWRcdTlkNjBcdTllZTBcdTlmMTVcdTlmMmNcdTUxMzNcdTU2YTVc'@; put 'dTU4ZGVcdTU4ZGZcdTU4ZTJcdTViZjVcdTlmOTBcdTVlZWNcdTYxZjJcdTYxZjdcdTYxZjZcdTYxZjVcdTY1MDBcdTY1MGZcdTY2ZTBcdTY2ZGRcdTZhZTVcdTZhZGRcdTZhZGFcdTZhZDNcdTcwMWJcdTcwMWZcdTcwMjhcdTcwMWFcdTcwMWRcdTcwMTVcdTcwMThcdTcyMDZcdTcyMGRcdTcy'@; put 'NThcdTcyYTJcdTczNzhcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczN2FcdTc0YmRcdTc0Y2FcdTc0ZTNcdTc1ODdcdTc1ODZcdTc2NWZcdTc2NjFcdTc3YzdcdTc5MTlcdTc5YjFcdTdhNmJcdTdhNjlcdTdjM2VcdTdjM2ZcdTdjMzhcdTdjM2RcdTdjMzdcdTdj'@; put 'NDBcdTdlNmJcdTdlNmRcdTdlNzlcdTdlNjlcdTdlNmFcdTdmODVcdTdlNzNcdTdmYjZcdTdmYjlcdTdmYjhcdTgxZDhcdTg1ZTlcdTg1ZGRcdTg1ZWFcdTg1ZDVcdTg1ZTRcdTg1ZTVcdTg1ZjdcdTg3ZmJcdTg4MDVcdTg4MGRcdTg3ZjlcdTg3ZmVcdTg5NjBcdTg5NWZcdTg5NTZcdTg5NWVc'@; put 'dThiNDFcdThiNWNcdThiNThcdThiNDlcdThiNWFcdThiNGVcdThiNGZcdThiNDZcdThiNTlcdThkMDhcdThkMGFcdThlN2NcdThlNzJcdThlODdcdThlNzZcdThlNmNcdThlN2FcdThlNzRcdThmNTRcdThmNGVcdThmYWRcdTkwOGFcdTkwOGJcdTkxYjFcdTkxYWVcdTkzZTFcdTkzZDFcdTkz'@; put 'ZGZcdTkzYzNcdTkzYzhcdTkzZGNcdTkzZGRcdTkzZDZcdTkzZTJcdTkzY2RcdTkzZDhcdTkzZTRcdTkzZDdcdTkzZThcdTk1ZGNcdTk2YjRcdTk2ZTNcdTk3MmFcdTk3MjdcdTk3NjFcdTk3ZGNcdTk3ZmJcdTk4NWVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTVdLmxlbmd0aDsrK20p'@; put 'NjU1MzMhPT14WzE5NV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTk1XVttXV09NDk5MjArbSxGWzQ5OTIwK21dPXhbMTk1XVttXSk7Zm9yKHhbMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODU4XHU5ODViXHU5OGJjXHU5'@; put 'OTQ1XHU5OTQ5XHU5YTE2XHU5YTE5XHU5YjBkXHU5YmU4XHU5YmU3XHU5YmQ2XHU5YmRiXHU5ZDg5XHU5ZDYxXHU5ZDcyXHU5ZDZhXHU5ZDZjXHU5ZTkyXHU5ZTk3XHU5ZTkzXHU5ZWI0XHU1MmY4XHU1NmE4XHU1NmI3XHU1NmI2XHU1NmI0XHU1NmJjXHU1OGU0XHU1YjQwXHU1YjQzXHU1Yjdk'@; put 'XHU1YmY2XHU1ZGM5XHU2MWY4XHU2MWZhXHU2NTE4XHU2NTE0XHU2NTE5XHU2NmU2XHU2NzI3XHU2YWVjXHU3MDNlXHU3MDMwXHU3MDMyXHU3MjEwXHU3MzdiXHU3NGNmXHU3NjYyXHU3NjY1XHU3OTI2XHU3OTJhXHU3OTJjXHU3OTJiXHU3YWM3XHU3YWY2XHU3YzRjXHU3YzQzXHU3YzRkXHU3'@; put 'Y2VmXHU3Y2YwXHU4ZmFlXHU3ZTdkXHU3ZTdjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTgyXHU3ZjRjXHU4MDAwXHU4MWRhXHU4MjY2XHU4NWZiXHU4NWY5XHU4NjExXHU4NWZhXHU4NjA2XHU4NjBiXHU4NjA3XHU4NjBhXHU4ODE0XHU4ODE1XHU4OTY0XHU4'@; put 'OWJhXHU4OWY4XHU4YjcwXHU4YjZjXHU4YjY2XHU4YjZmXHU4YjVmXHU4YjZiXHU4ZDBmXHU4ZDBkXHU4ZTg5XHU4ZTgxXHU4ZTg1XHU4ZTgyXHU5MWI0XHU5MWNiXHU5NDE4XHU5NDAzXHU5M2ZkXHU5NWUxXHU5NzMwXHU5OGM0XHU5OTUyXHU5OTUxXHU5OWE4XHU5YTJiXHU5YTMwXHU5YTM3'@; put 'XHU5YTM1XHU5YzEzXHU5YzBkXHU5ZTc5XHU5ZWI1XHU5ZWU4XHU5ZjJmXHU5ZjVmXHU5ZjYzXHU5ZjYxXHU1MTM3XHU1MTM4XHU1NmMxXHU1NmMwXHU1NmMyXHU1OTE0XHU1YzZjXHU1ZGNkXHU2MWZjXHU2MWZlXHU2NTFkXHU2NTFjXHU2NTk1XHU2NmU5XHU2YWZiXHU2YjA0XHU2YWZhXHU2'@; put 'YmIyXHU3MDRjXHU3MjFiXHU3MmE3XHU3NGQ2XHU3NGQ0XHU3NjY5XHU3N2QzXHU3YzUwXHU3ZThmXHU3ZThjXHU3ZmJjXHU4NjE3XHU4NjJkXHU4NjFhXHU4ODIzXHU4ODIyXHU4ODIxXHU4ODFmXHU4OTZhXHU4OTZjXHU4OWJkXHU4Yjc0XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTk2'@; put 'XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5Nl1bbV1dPTUwMTc2K20sRls1MDE3NittXT14WzE5Nl1bbV0pO2Zvcih4WzE5N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGI3N1x1'@; put 'OGI3ZFx1OGQxM1x1OGU4YVx1OGU4ZFx1OGU4Ylx1OGY1Zlx1OGZhZlx1OTFiYVx1OTQyZVx1OTQzM1x1OTQzNVx1OTQzYVx1OTQzOFx1OTQzMlx1OTQyYlx1OTVlMlx1OTczOFx1OTczOVx1OTczMlx1OTdmZlx1OTg2N1x1OTg2NVx1OTk1N1x1OWE0NVx1OWE0M1x1OWE0MFx1OWEzZVx1OWFj'@; put 'Zlx1OWI1NFx1OWI1MVx1OWMyZFx1OWMyNVx1OWRhZlx1OWRiNFx1OWRjMlx1OWRiOFx1OWU5ZFx1OWVlZlx1OWYxOVx1OWY1Y1x1OWY2Nlx1OWY2N1x1NTEzY1x1NTEzYlx1NTZjOFx1NTZjYVx1NTZjOVx1NWI3Zlx1NWRkNFx1NWRkMlx1NWY0ZVx1NjFmZlx1NjUyNFx1NmIwYVx1NmI2MVx1'@; put 'NzA1MVx1NzA1OFx1NzM4MFx1NzRlNFx1NzU4YVx1NzY2ZVx1NzY2Y1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzliM1x1N2M2MFx1N2M1Zlx1ODA3ZVx1ODA3ZFx1ODFkZlx1ODk3Mlx1ODk2Zlx1ODlmY1x1OGI4MFx1OGQxNlx1OGQxN1x1OGU5MVx1OGU5M1x1'@; put 'OGY2MVx1OTE0OFx1OTQ0NFx1OTQ1MVx1OTQ1Mlx1OTczZFx1OTczZVx1OTdjM1x1OTdjMVx1OTg2Ylx1OTk1NVx1OWE1NVx1OWE0ZFx1OWFkMlx1OWIxYVx1OWM0OVx1OWMzMVx1OWMzZVx1OWMzYlx1OWRkM1x1OWRkN1x1OWYzNFx1OWY2Y1x1OWY2YVx1OWY5NFx1NTZjY1x1NWRkNlx1NjIw'@; put 'MFx1NjUyM1x1NjUyYlx1NjUyYVx1NjZlY1x1NmIxMFx1NzRkYVx1N2FjYVx1N2M2NFx1N2M2M1x1N2M2NVx1N2U5M1x1N2U5Nlx1N2U5NFx1ODFlMlx1ODYzOFx1ODYzZlx1ODgzMVx1OGI4YVx1OTA5MFx1OTA4Zlx1OTQ2M1x1OTQ2MFx1OTQ2NFx1OTc2OFx1OTg2Zlx1OTk1Y1x1OWE1YVx1'@; put 'OWE1Ylx1OWE1N1x1OWFkM1x1OWFkNFx1OWFkMVx1OWM1NFx1OWM1N1x1OWM1Nlx1OWRlNVx1OWU5Zlx1OWVmNFx1NTZkMVx1NThlOVx1NjUyY1x1NzA1ZVx1NzY3MVx1NzY3Mlx1NzdkN1x1N2Y1MFx1N2Y4OFx1ODgzNlx1ODgzOVx1ODg2Mlx1OGI5M1x1OGI5Mlx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LG09MDttIT14WzE5N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTk3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTddW21dXT01MDQzMittLEZbNTA0MzIrbV09eFsxOTddW21dKTtmb3IoeFsxOThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdThiOTZcdTgyNzdcdThkMWJcdTkxYzBcdTk0NmFcdTk3NDJcdTk3NDhcdTk3NDRcdTk3YzZcdTk4NzBcdTlhNWZcdTliMjJcdTliNThcdTljNWZcdTlkZjlcdTlkZmFcdTllN2NcdTllN2RcdTlmMDdcdTlmNzdcdTlmNzJcdTVlZjNcdTZiMTZcdTcwNjNcdTdjNmNcdTdjNmVcdTg4'@; put 'M2JcdTg5YzBcdThlYTFcdTkxYzFcdTk0NzJcdTk0NzBcdTk4NzFcdTk5NWVcdTlhZDZcdTliMjNcdTllY2NcdTcwNjRcdTc3ZGFcdThiOWFcdTk0NzdcdTk3YzlcdTlhNjJcdTlhNjVcdTdlOWNcdThiOWNcdThlYWFcdTkxYzVcdTk0N2RcdTk0N2VcdTk0N2NcdTljNzdcdTljNzhcdTllZjdc'@; put 'dThjNTRcdTk0N2ZcdTllMWFcdTcyMjhcdTlhNmFcdTliMzFcdTllMWJcdTllMWVcdTdjNzJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOThdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5OF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTk4XVttXV09NTA2ODgrbSxGWzUwNjg4K21dPXhbMTk4XVttXSk7Zm9yKHhbMjAxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTQyXHU0ZTVjXHU1MWY1XHU1MzFhXHU1MzgyXHU0ZTA3XHU0ZTBjXHU0ZTQ3XHU0ZThkXHU1NmQ3XHVmYTBjXHU1YzZlXHU1ZjczXHU0ZTBmXHU1MTg3XHU0ZTBlXHU0ZTJlXHU0ZTkzXHU0ZWMyXHU0ZWM5XHU0ZWM4XHU1MTk4XHU1MmZjXHU1MzZjXHU1'@; put 'M2I5XHU1NzIwXHU1OTAzXHU1OTJjXHU1YzEwXHU1ZGZmXHU2NWUxXHU2YmIzXHU2YmNjXHU2YzE0XHU3MjNmXHU0ZTMxXHU0ZTNjXHU0ZWU4XHU0ZWRjXHU0ZWU5XHU0ZWUxXHU0ZWRkXHU0ZWRhXHU1MjBjXHU1MzFjXHU1MzRjXHU1NzIyXHU1NzIzXHU1OTE3XHU1OTJmXHU1YjgxXHU1Yjg0'@; put 'XHU1YzEyXHU1YzNiXHU1Yzc0XHU1YzczXHU1ZTA0XHU1ZTgwXHU1ZTgyXHU1ZmM5XHU2MjA5XHU2MjUwXHU2YzE1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzM2XHU2YzQzXHU2YzNmXHU2YzNiXHU3MmFlXHU3MmIwXHU3MzhhXHU3OWI4XHU4MDhhXHU5NjFl'@; put 'XHU0ZjBlXHU0ZjE4XHU0ZjJjXHU0ZWY1XHU0ZjE0XHU0ZWYxXHU0ZjAwXHU0ZWY3XHU0ZjA4XHU0ZjFkXHU0ZjAyXHU0ZjA1XHU0ZjIyXHU0ZjEzXHU0ZjA0XHU0ZWY0XHU0ZjEyXHU1MWIxXHU1MjEzXHU1MjA5XHU1MjEwXHU1MmE2XHU1MzIyXHU1MzFmXHU1MzRkXHU1MzhhXHU1NDA3XHU1'@; put 'NmUxXHU1NmRmXHU1NzJlXHU1NzJhXHU1NzM0XHU1OTNjXHU1OTgwXHU1OTdjXHU1OTg1XHU1OTdiXHU1OTdlXHU1OTc3XHU1OTdmXHU1YjU2XHU1YzE1XHU1YzI1XHU1YzdjXHU1YzdhXHU1YzdiXHU1YzdlXHU1ZGRmXHU1ZTc1XHU1ZTg0XHU1ZjAyXHU1ZjFhXHU1Zjc0XHU1ZmQ1XHU1ZmQ0'@; put 'XHU1ZmNmXHU2MjVjXHU2MjVlXHU2MjY0XHU2MjYxXHU2MjY2XHU2MjYyXHU2MjU5XHU2MjYwXHU2MjVhXHU2MjY1XHU2NWVmXHU2NWVlXHU2NzNlXHU2NzM5XHU2NzM4XHU2NzNiXHU2NzNhXHU2NzNmXHU2NzNjXHU2NzMzXHU2YzE4XHU2YzQ2XHU2YzUyXHU2YzVjXHU2YzRmXHU2YzRhXHU2'@; put 'YzU0XHU2YzRiXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjAxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwMV1bbV1dPTUxNDU2K20sRls1MTQ1NittXT14WzIwMV1bbV0pO2Zvcih4WzIwMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmM0Y1x1NzA3MVx1NzI1ZVx1NzJiNFx1NzJiNVx1NzM4ZVx1NzUyYVx1NzY3Zlx1N2E3NVx1N2Y1MVx1ODI3OFx1ODI3Y1x1ODI4MFx1ODI3ZFx1ODI3Zlx1ODY0ZFx1ODk3ZVx1OTA5OVx1OTA5N1x1OTA5OFx1OTA5Ylx1OTA5NFx1'@; put 'OTYyMlx1OTYyNFx1OTYyMFx1OTYyM1x1NGY1Nlx1NGYzYlx1NGY2Mlx1NGY0OVx1NGY1M1x1NGY2NFx1NGYzZVx1NGY2N1x1NGY1Mlx1NGY1Zlx1NGY0MVx1NGY1OFx1NGYyZFx1NGYzM1x1NGYzZlx1NGY2MVx1NTE4Zlx1NTFiOVx1NTIxY1x1NTIxZVx1NTIyMVx1NTJhZFx1NTJhZVx1NTMw'@; put 'OVx1NTM2M1x1NTM3Mlx1NTM4ZVx1NTM4Zlx1NTQzMFx1NTQzN1x1NTQyYVx1NTQ1NFx1NTQ0NVx1NTQxOVx1NTQxY1x1NTQyNVx1NTQxOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTQzZFx1NTQ0Zlx1NTQ0MVx1NTQyOFx1NTQyNFx1NTQ0N1x1NTZlZVx1NTZl'@; put 'N1x1NTZlNVx1NTc0MVx1NTc0NVx1NTc0Y1x1NTc0OVx1NTc0Ylx1NTc1Mlx1NTkwNlx1NTk0MFx1NTlhNlx1NTk5OFx1NTlhMFx1NTk5N1x1NTk4ZVx1NTlhMlx1NTk5MFx1NTk4Zlx1NTlhN1x1NTlhMVx1NWI4ZVx1NWI5Mlx1NWMyOFx1NWMyYVx1NWM4ZFx1NWM4Zlx1NWM4OFx1NWM4Ylx1'@; put 'NWM4OVx1NWM5Mlx1NWM4YVx1NWM4Nlx1NWM5M1x1NWM5NVx1NWRlMFx1NWUwYVx1NWUwZVx1NWU4Ylx1NWU4OVx1NWU4Y1x1NWU4OFx1NWU4ZFx1NWYwNVx1NWYxZFx1NWY3OFx1NWY3Nlx1NWZkMlx1NWZkMVx1NWZkMFx1NWZlZFx1NWZlOFx1NWZlZVx1NWZmM1x1NWZlMVx1NWZlNFx1NWZl'@; put 'M1x1NWZmYVx1NWZlZlx1NWZmN1x1NWZmYlx1NjAwMFx1NWZmNFx1NjIzYVx1NjI4M1x1NjI4Y1x1NjI4ZVx1NjI4Zlx1NjI5NFx1NjI4N1x1NjI3MVx1NjI3Ylx1NjI3YVx1NjI3MFx1NjI4MVx1NjI4OFx1NjI3N1x1NjI3ZFx1NjI3Mlx1NjI3NFx1NjUzN1x1NjVmMFx1NjVmNFx1NjVmM1x1'@; put 'NjVmMlx1NjVmNVx1Njc0NVx1Njc0N1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwMl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjAyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDJdW21dXT01MTcxMittLEZbNTE3MTIrbV09eFsyMDJdW21dKTtmb3IoeFsyMDNdPSJcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY3NTlcdTY3NTVcdTY3NGNcdTY3NDhcdTY3NWRcdTY3NGRcdTY3NWFcdTY3NGJcdTZiZDBcdTZjMTlcdTZjMWFcdTZjNzhcdTZjNjdcdTZjNmJcdTZjODRcdTZjOGJcdTZjOGZcdTZjNzFcdTZjNmZcdTZjNjlc'@; put 'dTZjOWFcdTZjNmRcdTZjODdcdTZjOTVcdTZjOWNcdTZjNjZcdTZjNzNcdTZjNjVcdTZjN2JcdTZjOGVcdTcwNzRcdTcwN2FcdTcyNjNcdTcyYmZcdTcyYmRcdTcyYzNcdTcyYzZcdTcyYzFcdTcyYmFcdTcyYzVcdTczOTVcdTczOTdcdTczOTNcdTczOTRcdTczOTJcdTc1M2FcdTc1MzlcdTc1'@; put 'OTRcdTc1OTVcdTc2ODFcdTc5M2RcdTgwMzRcdTgwOTVcdTgwOTlcdTgwOTBcdTgwOTJcdTgwOWNcdTgyOTBcdTgyOGZcdTgyODVcdTgyOGVcdTgyOTFcdTgyOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgyOGFcdTgyODNcdTgyODRcdThjNzhcdThmYzlcdThm'@; put 'YmZcdTkwOWZcdTkwYTFcdTkwYTVcdTkwOWVcdTkwYTdcdTkwYTBcdTk2MzBcdTk2MjhcdTk2MmZcdTk2MmRcdTRlMzNcdTRmOThcdTRmN2NcdTRmODVcdTRmN2RcdTRmODBcdTRmODdcdTRmNzZcdTRmNzRcdTRmODlcdTRmODRcdTRmNzdcdTRmNGNcdTRmOTdcdTRmNmFcdTRmOWFcdTRmNzlc'@; put 'dTRmODFcdTRmNzhcdTRmOTBcdTRmOWNcdTRmOTRcdTRmOWVcdTRmOTJcdTRmODJcdTRmOTVcdTRmNmJcdTRmNmVcdTUxOWVcdTUxYmNcdTUxYmVcdTUyMzVcdTUyMzJcdTUyMzNcdTUyNDZcdTUyMzFcdTUyYmNcdTUzMGFcdTUzMGJcdTUzM2NcdTUzOTJcdTUzOTRcdTU0ODdcdTU0N2ZcdTU0'@; put 'ODFcdTU0OTFcdTU0ODJcdTU0ODhcdTU0NmJcdTU0N2FcdTU0N2VcdTU0NjVcdTU0NmNcdTU0NzRcdTU0NjZcdTU0OGRcdTU0NmZcdTU0NjFcdTU0NjBcdTU0OThcdTU0NjNcdTU0NjdcdTU0NjRcdTU2ZjdcdTU2ZjlcdTU3NmZcdTU3NzJcdTU3NmRcdTU3NmJcdTU3NzFcdTU3NzBcdTU3NzZc'@; put 'dTU3ODBcdTU3NzVcdTU3N2JcdTU3NzNcdTU3NzRcdTU3NjJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwM11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjAzXVttXV09NTE5NjgrbSxGWzUxOTY4K21dPXhbMjAzXVttXSk7Zm9yKHhbMjA0'@; put 'XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzY4XHU1NzdkXHU1OTBjXHU1OTQ1XHU1OWI1XHU1OWJhXHU1OWNmXHU1OWNlXHU1OWIyXHU1OWNjXHU1OWMxXHU1OWI2XHU1OWJjXHU1OWMzXHU1OWQ2XHU1OWIxXHU1OWJkXHU1OWMw'@; put 'XHU1OWM4XHU1OWI0XHU1OWM3XHU1YjYyXHU1YjY1XHU1YjkzXHU1Yjk1XHU1YzQ0XHU1YzQ3XHU1Y2FlXHU1Y2E0XHU1Y2EwXHU1Y2I1XHU1Y2FmXHU1Y2E4XHU1Y2FjXHU1YzlmXHU1Y2EzXHU1Y2FkXHU1Y2EyXHU1Y2FhXHU1Y2E3XHU1YzlkXHU1Y2E1XHU1Y2I2XHU1Y2IwXHU1Y2E2XHU1'@; put 'ZTE3XHU1ZTE0XHU1ZTE5XHU1ZjI4XHU1ZjIyXHU1ZjIzXHU1ZjI0XHU1ZjU0XHU1ZjgyXHU1ZjdlXHU1ZjdkXHU1ZmRlXHU1ZmU1XHU2MDJkXHU2MDI2XHU2MDE5XHU2MDMyXHU2MDBiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDM0XHU2MDBhXHU2MDE3XHU2'@; put 'MDMzXHU2MDFhXHU2MDFlXHU2MDJjXHU2MDIyXHU2MDBkXHU2MDEwXHU2MDJlXHU2MDEzXHU2MDExXHU2MDBjXHU2MDA5XHU2MDFjXHU2MjE0XHU2MjNkXHU2MmFkXHU2MmI0XHU2MmQxXHU2MmJlXHU2MmFhXHU2MmI2XHU2MmNhXHU2MmFlXHU2MmIzXHU2MmFmXHU2MmJiXHU2MmE5XHU2MmIw'@; put 'XHU2MmI4XHU2NTNkXHU2NWE4XHU2NWJiXHU2NjA5XHU2NWZjXHU2NjA0XHU2NjEyXHU2NjA4XHU2NWZiXHU2NjAzXHU2NjBiXHU2NjBkXHU2NjA1XHU2NWZkXHU2NjExXHU2NjEwXHU2NmY2XHU2NzBhXHU2Nzg1XHU2NzZjXHU2NzhlXHU2NzkyXHU2Nzc2XHU2NzdiXHU2Nzk4XHU2Nzg2XHU2'@; put 'Nzg0XHU2Nzc0XHU2NzhkXHU2NzhjXHU2NzdhXHU2NzlmXHU2NzkxXHU2Nzk5XHU2NzgzXHU2NzdkXHU2NzgxXHU2Nzc4XHU2Nzc5XHU2Nzk0XHU2YjI1XHU2YjgwXHU2YjdlXHU2YmRlXHU2YzFkXHU2YzkzXHU2Y2VjXHU2Y2ViXHU2Y2VlXHU2Y2Q5XHU2Y2I2XHU2Y2Q0XHU2Y2FkXHU2Y2U3'@; put 'XHU2Y2I3XHU2Y2QwXHU2Y2MyXHU2Y2JhXHU2Y2MzXHU2Y2M2XHU2Y2VkXHU2Y2YyXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwNF1bbV1dPTUyMjI0K20sRls1MjIyNCttXT14WzIwNF1b'@; put 'bV0pO2Zvcih4WzIwNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmNkMlx1NmNkZFx1NmNiNFx1NmM4YVx1NmM5ZFx1NmM4MFx1NmNkZVx1NmNjMFx1NmQzMFx1NmNjZFx1NmNjN1x1NmNiMFx1NmNmOVx1NmNjZlx1NmNlOVx1NmNk'@; put 'MVx1NzA5NFx1NzA5OFx1NzA4NVx1NzA5M1x1NzA4Nlx1NzA4NFx1NzA5MVx1NzA5Nlx1NzA4Mlx1NzA5YVx1NzA4M1x1NzI2YVx1NzJkNlx1NzJjYlx1NzJkOFx1NzJjOVx1NzJkY1x1NzJkMlx1NzJkNFx1NzJkYVx1NzJjY1x1NzJkMVx1NzNhNFx1NzNhMVx1NzNhZFx1NzNhNlx1NzNhMlx1'@; put 'NzNhMFx1NzNhY1x1NzM5ZFx1NzRkZFx1NzRlOFx1NzUzZlx1NzU0MFx1NzUzZVx1NzU4Y1x1NzU5OFx1NzZhZlx1NzZmM1x1NzZmMVx1NzZmMFx1NzZmNVx1NzdmOFx1NzdmY1x1NzdmOVx1NzdmYlx1NzdmYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzdmN1x1'@; put 'Nzk0Mlx1NzkzZlx1NzljNVx1N2E3OFx1N2E3Ylx1N2FmYlx1N2M3NVx1N2NmZFx1ODAzNVx1ODA4Zlx1ODBhZVx1ODBhM1x1ODBiOFx1ODBiNVx1ODBhZFx1ODIyMFx1ODJhMFx1ODJjMFx1ODJhYlx1ODI5YVx1ODI5OFx1ODI5Ylx1ODJiNVx1ODJhN1x1ODJhZVx1ODJiY1x1ODI5ZVx1ODJi'@; put 'YVx1ODJiNFx1ODJhOFx1ODJhMVx1ODJhOVx1ODJjMlx1ODJhNFx1ODJjM1x1ODJiNlx1ODJhMlx1ODY3MFx1ODY2Zlx1ODY2ZFx1ODY2ZVx1OGM1Nlx1OGZkMlx1OGZjYlx1OGZkM1x1OGZjZFx1OGZkNlx1OGZkNVx1OGZkN1x1OTBiMlx1OTBiNFx1OTBhZlx1OTBiM1x1OTBiMFx1OTYzOVx1'@; put 'OTYzZFx1OTYzY1x1OTYzYVx1OTY0M1x1NGZjZFx1NGZjNVx1NGZkM1x1NGZiMlx1NGZjOVx1NGZjYlx1NGZjMVx1NGZkNFx1NGZkY1x1NGZkOVx1NGZiYlx1NGZiM1x1NGZkYlx1NGZjN1x1NGZkNlx1NGZiYVx1NGZjMFx1NGZiOVx1NGZlY1x1NTI0NFx1NTI0OVx1NTJjMFx1NTJjMlx1NTMz'@; put 'ZFx1NTM3Y1x1NTM5N1x1NTM5Nlx1NTM5OVx1NTM5OFx1NTRiYVx1NTRhMVx1NTRhZFx1NTRhNVx1NTRjZlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwNV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDVdW21dXT01MjQ4MCttLEZbNTI0'@; put 'ODArbV09eFsyMDVdW21dKTtmb3IoeFsyMDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0YzNcdTgzMGRcdTU0YjdcdTU0YWVcdTU0ZDZcdTU0YjZcdTU0YzVcdTU0YzZcdTU0YTBcdTU0NzBcdTU0YmNcdTU0YTJcdTU0YmVcdTU0'@; put 'NzJcdTU0ZGVcdTU0YjBcdTU3YjVcdTU3OWVcdTU3OWZcdTU3YTRcdTU3OGNcdTU3OTdcdTU3OWRcdTU3OWJcdTU3OTRcdTU3OThcdTU3OGZcdTU3OTlcdTU3YTVcdTU3OWFcdTU3OTVcdTU4ZjRcdTU5MGRcdTU5NTNcdTU5ZTFcdTU5ZGVcdTU5ZWVcdTVhMDBcdTU5ZjFcdTU5ZGRcdTU5ZmFc'@; put 'dTU5ZmRcdTU5ZmNcdTU5ZjZcdTU5ZTRcdTU5ZjJcdTU5ZjdcdTU5ZGJcdTU5ZTlcdTU5ZjNcdTU5ZjVcdTU5ZTBcdTU5ZmVcdTU5ZjRcdTU5ZWRcdTViYThcdTVjNGNcdTVjZDBcdTVjZDhcdTVjY2NcdTVjZDdcdTVjY2JcdTVjZGJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdTVjZGVcdTVjZGFcdTVjYzlcdTVjYzdcdTVjY2FcdTVjZDZcdTVjZDNcdTVjZDRcdTVjY2ZcdTVjYzhcdTVjYzZcdTVjY2VcdTVjZGZcdTVjZjhcdTVkZjlcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjBcdTVlMjRcdTVlYjBcdTVlYTRcdTVlYTJcdTVlOWJcdTVlYTNcdTVlYTVcdTVm'@; put 'MDdcdTVmMmVcdTVmNTZcdTVmODZcdTYwMzdcdTYwMzlcdTYwNTRcdTYwNzJcdTYwNWVcdTYwNDVcdTYwNTNcdTYwNDdcdTYwNDlcdTYwNWJcdTYwNGNcdTYwNDBcdTYwNDJcdTYwNWZcdTYwMjRcdTYwNDRcdTYwNThcdTYwNjZcdTYwNmVcdTYyNDJcdTYyNDNcdTYyY2ZcdTYzMGRcdTYzMGJc'@; put 'dTYyZjVcdTYzMGVcdTYzMDNcdTYyZWJcdTYyZjlcdTYzMGZcdTYzMGNcdTYyZjhcdTYyZjZcdTYzMDBcdTYzMTNcdTYzMTRcdTYyZmFcdTYzMTVcdTYyZmJcdTYyZjBcdTY1NDFcdTY1NDNcdTY1YWFcdTY1YmZcdTY2MzZcdTY2MjFcdTY2MzJcdTY2MzVcdTY2MWNcdTY2MjZcdTY2MjJcdTY2'@; put 'MzNcdTY2MmJcdTY2M2FcdTY2MWRcdTY2MzRcdTY2MzlcdTY2MmVcdTY3MGZcdTY3MTBcdTY3YzFcdTY3ZjJcdTY3YzhcdTY3YmFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwNl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjA2XVttXV09'@; put 'NTI3MzYrbSxGWzUyNzM2K21dPXhbMjA2XVttXSk7Zm9yKHhbMjA3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2N2RjXHU2N2JiXHU2N2Y4XHU2N2Q4XHU2N2MwXHU2N2I3XHU2N2M1XHU2N2ViXHU2N2U0XHU2N2RmXHU2N2I1XHU2'@; put 'N2NkXHU2N2IzXHU2N2Y3XHU2N2Y2XHU2N2VlXHU2N2UzXHU2N2MyXHU2N2I5XHU2N2NlXHU2N2U3XHU2N2YwXHU2N2IyXHU2N2ZjXHU2N2M2XHU2N2VkXHU2N2NjXHU2N2FlXHU2N2U2XHU2N2RiXHU2N2ZhXHU2N2M5XHU2N2NhXHU2N2MzXHU2N2VhXHU2N2NiXHU2YjI4XHU2YjgyXHU2Yjg0'@; put 'XHU2YmI2XHU2YmQ2XHU2YmQ4XHU2YmUwXHU2YzIwXHU2YzIxXHU2ZDI4XHU2ZDM0XHU2ZDJkXHU2ZDFmXHU2ZDNjXHU2ZDNmXHU2ZDEyXHU2ZDBhXHU2Y2RhXHU2ZDMzXHU2ZDA0XHU2ZDE5XHU2ZDNhXHU2ZDFhXHU2ZDExXHU2ZDAwXHU2ZDFkXHU2ZDQyXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDAxXHU2ZDE4XHU2ZDM3XHU2ZDAzXHU2ZDBmXHU2ZDQwXHU2ZDA3XHU2ZDIwXHU2ZDJjXHU2ZDA4XHU2ZDIyXHU2ZDA5XHU2ZDEwXHU3MGI3XHU3MDlmXHU3MGJlXHU3MGIxXHU3MGIwXHU3MGExXHU3MGI0XHU3MGI1XHU3MGE5XHU3MjQxXHU3MjQ5XHU3'@; put 'MjRhXHU3MjZjXHU3MjcwXHU3MjczXHU3MjZlXHU3MmNhXHU3MmU0XHU3MmU4XHU3MmViXHU3MmRmXHU3MmVhXHU3MmU2XHU3MmUzXHU3Mzg1XHU3M2NjXHU3M2MyXHU3M2M4XHU3M2M1XHU3M2I5XHU3M2I2XHU3M2I1XHU3M2I0XHU3M2ViXHU3M2JmXHU3M2M3XHU3M2JlXHU3M2MzXHU3M2M2'@; put 'XHU3M2I4XHU3M2NiXHU3NGVjXHU3NGVlXHU3NTJlXHU3NTQ3XHU3NTQ4XHU3NWE3XHU3NWFhXHU3Njc5XHU3NmM0XHU3NzA4XHU3NzAzXHU3NzA0XHU3NzA1XHU3NzBhXHU3NmY3XHU3NmZiXHU3NmZhXHU3N2U3XHU3N2U4XHU3ODA2XHU3ODExXHU3ODEyXHU3ODA1XHU3ODEwXHU3ODBmXHU3'@; put 'ODBlXHU3ODA5XHU3ODAzXHU3ODEzXHU3OTRhXHU3OTRjXHU3OTRiXHU3OTQ1XHU3OTQ0XHU3OWQ1XHU3OWNkXHU3OWNmXHU3OWQ2XHU3OWNlXHU3YTgwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDddW21dLmNoYXJDb2RlQXQoMCkmJihh'@; put 'ZVt4WzIwN11bbV1dPTUyOTkyK20sRls1Mjk5MittXT14WzIwN11bbV0pO2Zvcih4WzIwOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2E3ZVx1N2FkMVx1N2IwMFx1N2IwMVx1N2M3YVx1N2M3OFx1N2M3OVx1N2M3Zlx1N2M4MFx1'@; put 'N2M4MVx1N2QwM1x1N2QwOFx1N2QwMVx1N2Y1OFx1N2Y5MVx1N2Y4ZFx1N2ZiZVx1ODAwN1x1ODAwZVx1ODAwZlx1ODAxNFx1ODAzN1x1ODBkOFx1ODBjN1x1ODBlMFx1ODBkMVx1ODBjOFx1ODBjMlx1ODBkMFx1ODBjNVx1ODBlM1x1ODBkOVx1ODBkY1x1ODBjYVx1ODBkNVx1ODBjOVx1ODBj'@; put 'Zlx1ODBkN1x1ODBlNlx1ODBjZFx1ODFmZlx1ODIyMVx1ODI5NFx1ODJkOVx1ODJmZVx1ODJmOVx1ODMwN1x1ODJlOFx1ODMwMFx1ODJkNVx1ODMzYVx1ODJlYlx1ODJkNlx1ODJmNFx1ODJlY1x1ODJlMVx1ODJmMlx1ODJmNVx1ODMwY1x1ODJmYlx1ODJmNlx1ODJmMFx1ODJlYVx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODJlNFx1ODJlMFx1ODJmYVx1ODJmM1x1ODJlZFx1ODY3N1x1ODY3NFx1ODY3Y1x1ODY3M1x1ODg0MVx1ODg0ZVx1ODg2N1x1ODg2YVx1ODg2OVx1ODlkM1x1OGEwNFx1OGEwN1x1OGQ3Mlx1OGZlM1x1OGZlMVx1OGZlZVx1OGZlMFx1'@; put 'OTBmMVx1OTBiZFx1OTBiZlx1OTBkNVx1OTBjNVx1OTBiZVx1OTBjN1x1OTBjYlx1OTBjOFx1OTFkNFx1OTFkM1x1OTY1NFx1OTY0Zlx1OTY1MVx1OTY1M1x1OTY0YVx1OTY0ZVx1NTAxZVx1NTAwNVx1NTAwN1x1NTAxM1x1NTAyMlx1NTAzMFx1NTAxYlx1NGZmNVx1NGZmNFx1NTAzM1x1NTAz'@; put 'N1x1NTAyY1x1NGZmNlx1NGZmN1x1NTAxN1x1NTAxY1x1NTAyMFx1NTAyN1x1NTAzNVx1NTAyZlx1NTAzMVx1NTAwZVx1NTE1YVx1NTE5NFx1NTE5M1x1NTFjYVx1NTFjNFx1NTFjNVx1NTFjOFx1NTFjZVx1NTI2MVx1NTI1YVx1NTI1Mlx1NTI1ZVx1NTI1Zlx1NTI1NVx1NTI2Mlx1NTJjZFx1'@; put 'NTMwZVx1NTM5ZVx1NTUyNlx1NTRlMlx1NTUxN1x1NTUxMlx1NTRlN1x1NTRmM1x1NTRlNFx1NTUxYVx1NTRmZlx1NTUwNFx1NTUwOFx1NTRlYlx1NTUxMVx1NTUwNVx1NTRmMVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwOF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA4XVttXS5jaGFy'@; put 'Q29kZUF0KDApJiYoYWVbeFsyMDhdW21dXT01MzI0OCttLEZbNTMyNDgrbV09eFsyMDhdW21dKTtmb3IoeFsyMDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU1MGFcdTU0ZmJcdTU0ZjdcdTU0ZjhcdTU0ZTBcdTU1MGVcdTU1MDNc'@; put 'dTU1MGJcdTU3MDFcdTU3MDJcdTU3Y2NcdTU4MzJcdTU3ZDVcdTU3ZDJcdTU3YmFcdTU3YzZcdTU3YmRcdTU3YmNcdTU3YjhcdTU3YjZcdTU3YmZcdTU3YzdcdTU3ZDBcdTU3YjlcdTU3YzFcdTU5MGVcdTU5NGFcdTVhMTlcdTVhMTZcdTVhMmRcdTVhMmVcdTVhMTVcdTVhMGZcdTVhMTdcdTVh'@; put 'MGFcdTVhMWVcdTVhMzNcdTViNmNcdTViYTdcdTViYWRcdTViYWNcdTVjMDNcdTVjNTZcdTVjNTRcdTVjZWNcdTVjZmZcdTVjZWVcdTVjZjFcdTVjZjdcdTVkMDBcdTVjZjlcdTVlMjlcdTVlMjhcdTVlYThcdTVlYWVcdTVlYWFcdTVlYWNcdTVmMzNcdTVmMzBcdTVmNjdcdTYwNWRcdTYwNWFc'@; put 'dTYwNjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNDFcdTYwYTJcdTYwODhcdTYwODBcdTYwOTJcdTYwODFcdTYwOWRcdTYwODNcdTYwOTVcdTYwOWJcdTYwOTdcdTYwODdcdTYwOWNcdTYwOGVcdTYyMTlcdTYyNDZcdTYyZjJcdTYzMTBcdTYzNTZcdTYzMmNc'@; put 'dTYzNDRcdTYzNDVcdTYzMzZcdTYzNDNcdTYzZTRcdTYzMzlcdTYzNGJcdTYzNGFcdTYzM2NcdTYzMjlcdTYzNDFcdTYzMzRcdTYzNThcdTYzNTRcdTYzNTlcdTYzMmRcdTYzNDdcdTYzMzNcdTYzNWFcdTYzNTFcdTYzMzhcdTYzNTdcdTYzNDBcdTYzNDhcdTY1NGFcdTY1NDZcdTY1YzZcdTY1'@; put 'YzNcdTY1YzRcdTY1YzJcdTY2NGFcdTY2NWZcdTY2NDdcdTY2NTFcdTY3MTJcdTY3MTNcdTY4MWZcdTY4MWFcdTY4NDlcdTY4MzJcdTY4MzNcdTY4M2JcdTY4NGJcdTY4NGZcdTY4MTZcdTY4MzFcdTY4MWNcdTY4MzVcdTY4MmJcdTY4MmRcdTY4MmZcdTY4NGVcdTY4NDRcdTY4MzRcdTY4MWRc'@; put 'dTY4MTJcdTY4MTRcdTY4MjZcdTY4MjhcdTY4MmVcdTY4NGRcdTY4M2FcdTY4MjVcdTY4MjBcdTZiMmNcdTZiMmZcdTZiMmRcdTZiMzFcdTZiMzRcdTZiNmRcdTgwODJcdTZiODhcdTZiZTZcdTZiZTRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDldLmxlbmd0aDsrK20pNjU1MzMhPT14'@; put 'WzIwOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjA5XVttXV09NTM1MDQrbSxGWzUzNTA0K21dPXhbMjA5XVttXSk7Zm9yKHhbMjEwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmU4XHU2YmUzXHU2YmUyXHU2YmU3XHU2YzI1'@; put 'XHU2ZDdhXHU2ZDYzXHU2ZDY0XHU2ZDc2XHU2ZDBkXHU2ZDYxXHU2ZDkyXHU2ZDU4XHU2ZDYyXHU2ZDZkXHU2ZDZmXHU2ZDkxXHU2ZDhkXHU2ZGVmXHU2ZDdmXHU2ZDg2XHU2ZDVlXHU2ZDY3XHU2ZDYwXHU2ZDk3XHU2ZDcwXHU2ZDdjXHU2ZDVmXHU2ZDgyXHU2ZDk4XHU2ZDJmXHU2ZDY4XHU2'@; put 'ZDhiXHU2ZDdlXHU2ZDgwXHU2ZDg0XHU2ZDE2XHU2ZDgzXHU2ZDdiXHU2ZDdkXHU2ZDc1XHU2ZDkwXHU3MGRjXHU3MGQzXHU3MGQxXHU3MGRkXHU3MGNiXHU3ZjM5XHU3MGUyXHU3MGQ3XHU3MGQyXHU3MGRlXHU3MGUwXHU3MGQ0XHU3MGNkXHU3MGM1XHU3MGM2XHU3MGM3XHU3MGRhXHU3MGNl'@; put 'XHU3MGUxXHU3MjQyXHU3Mjc4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Mjc3XHU3Mjc2XHU3MzAwXHU3MmZhXHU3MmY0XHU3MmZlXHU3MmY2XHU3MmYzXHU3MmZiXHU3MzAxXHU3M2QzXHU3M2Q5XHU3M2U1XHU3M2Q2XHU3M2JjXHU3M2U3XHU3M2UzXHU3M2U5'@; put 'XHU3M2RjXHU3M2QyXHU3M2RiXHU3M2Q0XHU3M2RkXHU3M2RhXHU3M2Q3XHU3M2Q4XHU3M2U4XHU3NGRlXHU3NGRmXHU3NGY0XHU3NGY1XHU3NTIxXHU3NTViXHU3NTVmXHU3NWIwXHU3NWMxXHU3NWJiXHU3NWM0XHU3NWMwXHU3NWJmXHU3NWI2XHU3NWJhXHU3NjhhXHU3NmM5XHU3NzFkXHU3'@; put 'NzFiXHU3NzEwXHU3NzEzXHU3NzEyXHU3NzIzXHU3NzExXHU3NzE1XHU3NzE5XHU3NzFhXHU3NzIyXHU3NzI3XHU3ODIzXHU3ODJjXHU3ODIyXHU3ODM1XHU3ODJmXHU3ODI4XHU3ODJlXHU3ODJiXHU3ODIxXHU3ODI5XHU3ODMzXHU3ODJhXHU3ODMxXHU3OTU0XHU3OTViXHU3OTRmXHU3OTVj'@; put 'XHU3OTUzXHU3OTUyXHU3OTUxXHU3OWViXHU3OWVjXHU3OWUwXHU3OWVlXHU3OWVkXHU3OWVhXHU3OWRjXHU3OWRlXHU3OWRkXHU3YTg2XHU3YTg5XHU3YTg1XHU3YThiXHU3YThjXHU3YThhXHU3YTg3XHU3YWQ4XHU3YjEwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjEwXS5sZW5ndGg7'@; put 'KyttKTY1NTMzIT09eFsyMTBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxMF1bbV1dPTUzNzYwK20sRls1Mzc2MCttXT14WzIxMF1bbV0pO2Zvcih4WzIxMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2IwNFx1N2IxM1x1N2Iw'@; put 'NVx1N2IwZlx1N2IwOFx1N2IwYVx1N2IwZVx1N2IwOVx1N2IxMlx1N2M4NFx1N2M5MVx1N2M4YVx1N2M4Y1x1N2M4OFx1N2M4ZFx1N2M4NVx1N2QxZVx1N2QxZFx1N2QxMVx1N2QwZVx1N2QxOFx1N2QxNlx1N2QxM1x1N2QxZlx1N2QxMlx1N2QwZlx1N2QwY1x1N2Y1Y1x1N2Y2MVx1N2Y1ZVx1'@; put 'N2Y2MFx1N2Y1ZFx1N2Y1Ylx1N2Y5Nlx1N2Y5Mlx1N2ZjM1x1N2ZjMlx1N2ZjMFx1ODAxNlx1ODAzZVx1ODAzOVx1ODBmYVx1ODBmMlx1ODBmOVx1ODBmNVx1ODEwMVx1ODBmYlx1ODEwMFx1ODIwMVx1ODIyZlx1ODIyNVx1ODMzM1x1ODMyZFx1ODM0NFx1ODMxOVx1ODM1MVx1ODMyNVx1ODM1'@; put 'Nlx1ODMzZlx1ODM0MVx1ODMyNlx1ODMxY1x1ODMyMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM0Mlx1ODM0ZVx1ODMxYlx1ODMyYVx1ODMwOFx1ODMzY1x1ODM0ZFx1ODMxNlx1ODMyNFx1ODMyMFx1ODMzN1x1ODMyZlx1ODMyOVx1ODM0N1x1ODM0NVx1ODM0'@; put 'Y1x1ODM1M1x1ODMxZVx1ODMyY1x1ODM0Ylx1ODMyN1x1ODM0OFx1ODY1M1x1ODY1Mlx1ODZhMlx1ODZhOFx1ODY5Nlx1ODY4ZFx1ODY5MVx1ODY5ZVx1ODY4N1x1ODY5N1x1ODY4Nlx1ODY4Ylx1ODY5YVx1ODY4NVx1ODZhNVx1ODY5OVx1ODZhMVx1ODZhN1x1ODY5NVx1ODY5OFx1ODY4ZVx1'@; put 'ODY5ZFx1ODY5MFx1ODY5NFx1ODg0M1x1ODg0NFx1ODg2ZFx1ODg3NVx1ODg3Nlx1ODg3Mlx1ODg4MFx1ODg3MVx1ODg3Zlx1ODg2Zlx1ODg4M1x1ODg3ZVx1ODg3NFx1ODg3Y1x1OGExMlx1OGM0N1x1OGM1N1x1OGM3Ylx1OGNhNFx1OGNhM1x1OGQ3Nlx1OGQ3OFx1OGRiNVx1OGRiN1x1OGRi'@; put 'Nlx1OGVkMVx1OGVkM1x1OGZmZVx1OGZmNVx1OTAwMlx1OGZmZlx1OGZmYlx1OTAwNFx1OGZmY1x1OGZmNlx1OTBkNlx1OTBlMFx1OTBkOVx1OTBkYVx1OTBlM1x1OTBkZlx1OTBlNVx1OTBkOFx1OTBkYlx1OTBkN1x1OTBkY1x1OTBlNFx1OTE1MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14'@; put 'WzIxMV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjExXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTFdW21dXT01NDAxNittLEZbNTQwMTYrbV09eFsyMTFdW21dKTtmb3IoeFsyMTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkx'@; put 'NGVcdTkxNGZcdTkxZDVcdTkxZTJcdTkxZGFcdTk2NWNcdTk2NWZcdTk2YmNcdTk4ZTNcdTlhZGZcdTliMmZcdTRlN2ZcdTUwNzBcdTUwNmFcdTUwNjFcdTUwNWVcdTUwNjBcdTUwNTNcdTUwNGJcdTUwNWRcdTUwNzJcdTUwNDhcdTUwNGRcdTUwNDFcdTUwNWJcdTUwNGFcdTUwNjJcdTUwMTVc'@; put 'dTUwNDVcdTUwNWZcdTUwNjlcdTUwNmJcdTUwNjNcdTUwNjRcdTUwNDZcdTUwNDBcdTUwNmVcdTUwNzNcdTUwNTdcdTUwNTFcdTUxZDBcdTUyNmJcdTUyNmRcdTUyNmNcdTUyNmVcdTUyZDZcdTUyZDNcdTUzMmRcdTUzOWNcdTU1NzVcdTU1NzZcdTU1M2NcdTU1NGRcdTU1NTBcdTU1MzRcdTU1'@; put 'MmFcdTU1NTFcdTU1NjJcdTU1MzZcdTU1MzVcdTU1MzBcdTU1NTJcdTU1NDVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU1MGNcdTU1MzJcdTU1NjVcdTU1NGVcdTU1MzlcdTU1NDhcdTU1MmRcdTU1M2JcdTU1NDBcdTU1NGJcdTU3MGFcdTU3MDdcdTU3ZmJcdTU4'@; put 'MTRcdTU3ZTJcdTU3ZjZcdTU3ZGNcdTU3ZjRcdTU4MDBcdTU3ZWRcdTU3ZmRcdTU4MDhcdTU3ZjhcdTU4MGJcdTU3ZjNcdTU3Y2ZcdTU4MDdcdTU3ZWVcdTU3ZTNcdTU3ZjJcdTU3ZTVcdTU3ZWNcdTU3ZTFcdTU4MGVcdTU3ZmNcdTU4MTBcdTU3ZTdcdTU4MDFcdTU4MGNcdTU3ZjFcdTU3ZTlc'@; put 'dTU3ZjBcdTU4MGRcdTU4MDRcdTU5NWNcdTVhNjBcdTVhNThcdTVhNTVcdTVhNjdcdTVhNWVcdTVhMzhcdTVhMzVcdTVhNmRcdTVhNTBcdTVhNWZcdTVhNjVcdTVhNmNcdTVhNTNcdTVhNjRcdTVhNTdcdTVhNDNcdTVhNWRcdTVhNTJcdTVhNDRcdTVhNWJcdTVhNDhcdTVhOGVcdTVhM2VcdTVh'@; put 'NGRcdTVhMzlcdTVhNGNcdTVhNzBcdTVhNjlcdTVhNDdcdTVhNTFcdTVhNTZcdTVhNDJcdTVhNWNcdTViNzJcdTViNmVcdTViYzFcdTViYzBcdTVjNTlcdTVkMWVcdTVkMGJcdTVkMWRcdTVkMWFcdTVkMjBcdTVkMGNcdTVkMjhcdTVkMGRcdTVkMjZcdTVkMjVcdTVkMGZcdWZmZmQiLnNwbGl0'@; put 'KCIiKSxtPTA7bSE9eFsyMTJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxMl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjEyXVttXV09NTQyNzIrbSxGWzU0MjcyK21dPXhbMjEyXVttXSk7Zm9yKHhbMjEzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU1ZDMwXHU1ZDEyXHU1ZDIzXHU1ZDFmXHU1ZDJlXHU1ZTNlXHU1ZTM0XHU1ZWIxXHU1ZWI0XHU1ZWI5XHU1ZWIyXHU1ZWIzXHU1ZjM2XHU1ZjM4XHU1ZjliXHU1Zjk2XHU1ZjlmXHU2MDhhXHU2MDkwXHU2MDg2XHU2MGJlXHU2MGIwXHU2MGJhXHU2MGQzXHU2MGQ0XHU2MGNm'@; put 'XHU2MGU0XHU2MGQ5XHU2MGRkXHU2MGM4XHU2MGIxXHU2MGRiXHU2MGI3XHU2MGNhXHU2MGJmXHU2MGMzXHU2MGNkXHU2MGMwXHU2MzMyXHU2MzY1XHU2MzhhXHU2MzgyXHU2MzdkXHU2M2JkXHU2MzllXHU2M2FkXHU2MzlkXHU2Mzk3XHU2M2FiXHU2MzhlXHU2MzZmXHU2Mzg3XHU2MzkwXHU2'@; put 'MzZlXHU2M2FmXHU2Mzc1XHU2MzljXHU2MzZkXHU2M2FlXHU2MzdjXHU2M2E0XHU2MzNiXHU2MzlmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Mzc4XHU2Mzg1XHU2MzgxXHU2MzkxXHU2MzhkXHU2MzcwXHU2NTUzXHU2NWNkXHU2NjY1XHU2NjYxXHU2NjViXHU2'@; put 'NjU5XHU2NjVjXHU2NjYyXHU2NzE4XHU2ODc5XHU2ODg3XHU2ODkwXHU2ODljXHU2ODZkXHU2ODZlXHU2OGFlXHU2OGFiXHU2OTU2XHU2ODZmXHU2OGEzXHU2OGFjXHU2OGE5XHU2ODc1XHU2ODc0XHU2OGIyXHU2ODhmXHU2ODc3XHU2ODkyXHU2ODdjXHU2ODZiXHU2ODcyXHU2OGFhXHU2ODgw'@; put 'XHU2ODcxXHU2ODdlXHU2ODliXHU2ODk2XHU2ODhiXHU2OGEwXHU2ODg5XHU2OGE0XHU2ODc4XHU2ODdiXHU2ODkxXHU2ODhjXHU2ODhhXHU2ODdkXHU2YjM2XHU2YjMzXHU2YjM3XHU2YjM4XHU2YjkxXHU2YjhmXHU2YjhkXHU2YjhlXHU2YjhjXHU2YzJhXHU2ZGMwXHU2ZGFiXHU2ZGI0XHU2'@; put 'ZGIzXHU2ZTc0XHU2ZGFjXHU2ZGU5XHU2ZGUyXHU2ZGI3XHU2ZGY2XHU2ZGQ0XHU2ZTAwXHU2ZGM4XHU2ZGUwXHU2ZGRmXHU2ZGQ2XHU2ZGJlXHU2ZGU1XHU2ZGRjXHU2ZGRkXHU2ZGRiXHU2ZGY0XHU2ZGNhXHU2ZGJkXHU2ZGVkXHU2ZGYwXHU2ZGJhXHU2ZGQ1XHU2ZGMyXHU2ZGNmXHU2ZGM5'@; put 'XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjEzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxM11bbV1dPTU0NTI4K20sRls1NDUyOCttXT14WzIxM11bbV0pO2Zvcih4WzIxNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmRkMFx1NmRmMlx1NmRkM1x1NmRmZFx1NmRkN1x1NmRjZFx1NmRlM1x1NmRiYlx1NzBmYVx1NzEwZFx1NzBmN1x1NzExN1x1NzBmNFx1NzEwY1x1NzBmMFx1NzEwNFx1NzBmM1x1NzExMFx1NzBmY1x1NzBmZlx1NzEwNlx1NzExM1x1NzEwMFx1NzBm'@; put 'OFx1NzBmNlx1NzEwYlx1NzEwMlx1NzEwZVx1NzI3ZVx1NzI3Ylx1NzI3Y1x1NzI3Zlx1NzMxZFx1NzMxN1x1NzMwN1x1NzMxMVx1NzMxOFx1NzMwYVx1NzMwOFx1NzJmZlx1NzMwZlx1NzMxZVx1NzM4OFx1NzNmNlx1NzNmOFx1NzNmNVx1NzQwNFx1NzQwMVx1NzNmZFx1NzQwN1x1NzQwMFx1'@; put 'NzNmYVx1NzNmY1x1NzNmZlx1NzQwY1x1NzQwYlx1NzNmNFx1NzQwOFx1NzU2NFx1NzU2M1x1NzVjZVx1NzVkMlx1NzVjZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzVjYlx1NzVjY1x1NzVkMVx1NzVkMFx1NzY4Zlx1NzY4OVx1NzZkM1x1NzczOVx1NzcyZlx1'@; put 'NzcyZFx1NzczMVx1NzczMlx1NzczNFx1NzczM1x1NzczZFx1NzcyNVx1NzczYlx1NzczNVx1Nzg0OFx1Nzg1Mlx1Nzg0OVx1Nzg0ZFx1Nzg0YVx1Nzg0Y1x1NzgyNlx1Nzg0NVx1Nzg1MFx1Nzk2NFx1Nzk2N1x1Nzk2OVx1Nzk2YVx1Nzk2M1x1Nzk2Ylx1Nzk2MVx1NzliYlx1NzlmYVx1Nzlm'@; put 'OFx1NzlmNlx1NzlmN1x1N2E4Zlx1N2E5NFx1N2E5MFx1N2IzNVx1N2I0N1x1N2IzNFx1N2IyNVx1N2IzMFx1N2IyMlx1N2IyNFx1N2IzM1x1N2IxOFx1N2IyYVx1N2IxZFx1N2IzMVx1N2IyYlx1N2IyZFx1N2IyZlx1N2IzMlx1N2IzOFx1N2IxYVx1N2IyM1x1N2M5NFx1N2M5OFx1N2M5Nlx1'@; put 'N2NhM1x1N2QzNVx1N2QzZFx1N2QzOFx1N2QzNlx1N2QzYVx1N2Q0NVx1N2QyY1x1N2QyOVx1N2Q0MVx1N2Q0N1x1N2QzZVx1N2QzZlx1N2Q0YVx1N2QzYlx1N2QyOFx1N2Y2M1x1N2Y5NVx1N2Y5Y1x1N2Y5ZFx1N2Y5Ylx1N2ZjYVx1N2ZjYlx1N2ZjZFx1N2ZkMFx1N2ZkMVx1N2ZjN1x1N2Zj'@; put 'Zlx1N2ZjOVx1ODAxZlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxNF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjE0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTRdW21dXT01NDc4NCttLEZbNTQ3ODQrbV09eFsyMTRdW21dKTtmb3IoeFsyMTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwMWVcdTgwMWJcdTgwNDdcdTgwNDNcdTgwNDhcdTgxMThcdTgxMjVcdTgxMTlcdTgxMWJcdTgxMmRcdTgxMWZcdTgxMmNcdTgxMWVcdTgxMjFcdTgxMTVcdTgxMjdcdTgxMWRcdTgxMjJcdTgyMTFcdTgyMzhcdTgyMzNcdTgy'@; put 'M2FcdTgyMzRcdTgyMzJcdTgyNzRcdTgzOTBcdTgzYTNcdTgzYThcdTgzOGRcdTgzN2FcdTgzNzNcdTgzYTRcdTgzNzRcdTgzOGZcdTgzODFcdTgzOTVcdTgzOTlcdTgzNzVcdTgzOTRcdTgzYTlcdTgzN2RcdTgzODNcdTgzOGNcdTgzOWRcdTgzOWJcdTgzYWFcdTgzOGJcdTgzN2VcdTgzYTVc'@; put 'dTgzYWZcdTgzODhcdTgzOTdcdTgzYjBcdTgzN2ZcdTgzYTZcdTgzODdcdTgzYWVcdTgzNzZcdTgzOWFcdTg2NTlcdTg2NTZcdTg2YmZcdTg2YjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg2YzJcdTg2YzFcdTg2YzVcdTg2YmFcdTg2YjBcdTg2YzhcdTg2Yjlc'@; put 'dTg2YjNcdTg2YjhcdTg2Y2NcdTg2YjRcdTg2YmJcdTg2YmNcdTg2YzNcdTg2YmRcdTg2YmVcdTg4NTJcdTg4ODlcdTg4OTVcdTg4YThcdTg4YTJcdTg4YWFcdTg4OWFcdTg4OTFcdTg4YTFcdTg4OWZcdTg4OThcdTg4YTdcdTg4OTlcdTg4OWJcdTg4OTdcdTg4YTRcdTg4YWNcdTg4OGNcdTg4'@; put 'OTNcdTg4OGVcdTg5ODJcdTg5ZDZcdTg5ZDlcdTg5ZDVcdThhMzBcdThhMjdcdThhMmNcdThhMWVcdThjMzlcdThjM2JcdThjNWNcdThjNWRcdThjN2RcdThjYTVcdThkN2RcdThkN2JcdThkNzlcdThkYmNcdThkYzJcdThkYjlcdThkYmZcdThkYzFcdThlZDhcdThlZGVcdThlZGRcdThlZGNc'@; put 'dThlZDdcdThlZTBcdThlZTFcdTkwMjRcdTkwMGJcdTkwMTFcdTkwMWNcdTkwMGNcdTkwMjFcdTkwZWZcdTkwZWFcdTkwZjBcdTkwZjRcdTkwZjJcdTkwZjNcdTkwZDRcdTkwZWJcdTkwZWNcdTkwZTlcdTkxNTZcdTkxNThcdTkxNWFcdTkxNTNcdTkxNTVcdTkxZWNcdTkxZjRcdTkxZjFcdTkx'@; put 'ZjNcdTkxZjhcdTkxZTRcdTkxZjlcdTkxZWFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxNV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjE1XVttXV09NTUwNDArbSxGWzU1MDQwK21dPXhbMjE1XVttXSk7Zm9yKHhbMjE2XT0iXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MWViXHU5MWY3XHU5MWU4XHU5MWVlXHU5NTdhXHU5NTg2XHU5NTg4XHU5NjdjXHU5NjZkXHU5NjZiXHU5NjcxXHU5NjZmXHU5NmJmXHU5NzZhXHU5ODA0XHU5OGU1XHU5OTk3XHU1MDliXHU1MDk1XHU1'@; put 'MDk0XHU1MDllXHU1MDhiXHU1MGEzXHU1MDgzXHU1MDhjXHU1MDhlXHU1MDlkXHU1MDY4XHU1MDljXHU1MDkyXHU1MDgyXHU1MDg3XHU1MTVmXHU1MWQ0XHU1MzEyXHU1MzExXHU1M2E0XHU1M2E3XHU1NTkxXHU1NWE4XHU1NWE1XHU1NWFkXHU1NTc3XHU1NjQ1XHU1NWEyXHU1NTkzXHU1NTg4'@; put 'XHU1NThmXHU1NWI1XHU1NTgxXHU1NWEzXHU1NTkyXHU1NWE0XHU1NTdkXHU1NThjXHU1NWE2XHU1NTdmXHU1NTk1XHU1NWExXHU1NThlXHU1NzBjXHU1ODI5XHU1ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ODE5XHU1ODFlXHU1ODI3XHU1ODIzXHU1ODI4'@; put 'XHU1N2Y1XHU1ODQ4XHU1ODI1XHU1ODFjXHU1ODFiXHU1ODMzXHU1ODNmXHU1ODM2XHU1ODJlXHU1ODM5XHU1ODM4XHU1ODJkXHU1ODJjXHU1ODNiXHU1OTYxXHU1YWFmXHU1YTk0XHU1YTlmXHU1YTdhXHU1YWEyXHU1YTllXHU1YTc4XHU1YWE2XHU1YTdjXHU1YWE1XHU1YWFjXHU1YTk1XHU1'@; put 'YWFlXHU1YTM3XHU1YTg0XHU1YThhXHU1YTk3XHU1YTgzXHU1YThiXHU1YWE5XHU1YTdiXHU1YTdkXHU1YThjXHU1YTljXHU1YThmXHU1YTkzXHU1YTlkXHU1YmVhXHU1YmNkXHU1YmNiXHU1YmQ0XHU1YmQxXHU1YmNhXHU1YmNlXHU1YzBjXHU1YzMwXHU1ZDM3XHU1ZDQzXHU1ZDZiXHU1ZDQx'@; put 'XHU1ZDRiXHU1ZDNmXHU1ZDM1XHU1ZDUxXHU1ZDRlXHU1ZDU1XHU1ZDMzXHU1ZDNhXHU1ZDUyXHU1ZDNkXHU1ZDMxXHU1ZDU5XHU1ZDQyXHU1ZDM5XHU1ZDQ5XHU1ZDM4XHU1ZDNjXHU1ZDMyXHU1ZDM2XHU1ZDQwXHU1ZDQ1XHU1ZTQ0XHU1ZTQxXHU1ZjU4XHU1ZmE2XHU1ZmE1XHU1ZmFiXHU2'@; put 'MGM5XHU2MGI5XHU2MGNjXHU2MGUyXHU2MGNlXHU2MGM0XHU2MTE0XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjE2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxNl1bbV1dPTU1Mjk2K20sRls1NTI5NittXT14WzIxNl1bbV0pO2Zvcih4'@; put 'WzIxN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjBmMlx1NjEwYVx1NjExNlx1NjEwNVx1NjBmNVx1NjExM1x1NjBmOFx1NjBmY1x1NjBmZVx1NjBjMVx1NjEwM1x1NjExOFx1NjExZFx1NjExMFx1NjBmZlx1NjEwNFx1NjEwYlx1'@; put 'NjI0YVx1NjM5NFx1NjNiMVx1NjNiMFx1NjNjZVx1NjNlNVx1NjNlOFx1NjNlZlx1NjNjM1x1NjQ5ZFx1NjNmM1x1NjNjYVx1NjNlMFx1NjNmNlx1NjNkNVx1NjNmMlx1NjNmNVx1NjQ2MVx1NjNkZlx1NjNiZVx1NjNkZFx1NjNkY1x1NjNjNFx1NjNkOFx1NjNkM1x1NjNjMlx1NjNjN1x1NjNj'@; put 'Y1x1NjNjYlx1NjNjOFx1NjNmMFx1NjNkN1x1NjNkOVx1NjUzMlx1NjU2N1x1NjU2YVx1NjU2NFx1NjU1Y1x1NjU2OFx1NjU2NVx1NjU4Y1x1NjU5ZFx1NjU5ZVx1NjVhZVx1NjVkMFx1NjVkMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjY3Y1x1NjY2Y1x1NjY3'@; put 'Ylx1NjY4MFx1NjY3MVx1NjY3OVx1NjY2YVx1NjY3Mlx1NjcwMVx1NjkwY1x1NjhkM1x1NjkwNFx1NjhkY1x1NjkyYVx1NjhlY1x1NjhlYVx1NjhmMVx1NjkwZlx1NjhkNlx1NjhmN1x1NjhlYlx1NjhlNFx1NjhmNlx1NjkxM1x1NjkxMFx1NjhmM1x1NjhlMVx1NjkwN1x1NjhjY1x1NjkwOFx1'@; put 'Njk3MFx1NjhiNFx1NjkxMVx1NjhlZlx1NjhjNlx1NjkxNFx1NjhmOFx1NjhkMFx1NjhmZFx1NjhmY1x1NjhlOFx1NjkwYlx1NjkwYVx1NjkxN1x1NjhjZVx1NjhjOFx1NjhkZFx1NjhkZVx1NjhlNlx1NjhmNFx1NjhkMVx1NjkwNlx1NjhkNFx1NjhlOVx1NjkxNVx1NjkyNVx1NjhjN1x1NmIz'@; put 'OVx1NmIzYlx1NmIzZlx1NmIzY1x1NmI5NFx1NmI5N1x1NmI5OVx1NmI5NVx1NmJiZFx1NmJmMFx1NmJmMlx1NmJmM1x1NmMzMFx1NmRmY1x1NmU0Nlx1NmU0N1x1NmUxZlx1NmU0OVx1NmU4OFx1NmUzY1x1NmUzZFx1NmU0NVx1NmU2Mlx1NmUyYlx1NmUzZlx1NmU0MVx1NmU1ZFx1NmU3M1x1'@; put 'NmUxY1x1NmUzM1x1NmU0Ylx1NmU0MFx1NmU1MVx1NmUzYlx1NmUwM1x1NmUyZVx1NmU1ZVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxN10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjE3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTddW21dXT01NTU1MittLEZbNTU1NTIrbV09eFsy'@; put 'MTddW21dKTtmb3IoeFsyMThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlNjhcdTZlNWNcdTZlNjFcdTZlMzFcdTZlMjhcdTZlNjBcdTZlNzFcdTZlNmJcdTZlMzlcdTZlMjJcdTZlMzBcdTZlNTNcdTZlNjVcdTZlMjdcdTZlNzhc'@; put 'dTZlNjRcdTZlNzdcdTZlNTVcdTZlNzlcdTZlNTJcdTZlNjZcdTZlMzVcdTZlMzZcdTZlNWFcdTcxMjBcdTcxMWVcdTcxMmZcdTcwZmJcdTcxMmVcdTcxMzFcdTcxMjNcdTcxMjVcdTcxMjJcdTcxMzJcdTcxMWZcdTcxMjhcdTcxM2FcdTcxMWJcdTcyNGJcdTcyNWFcdTcyODhcdTcyODlcdTcy'@; put 'ODZcdTcyODVcdTcyOGJcdTczMTJcdTczMGJcdTczMzBcdTczMjJcdTczMzFcdTczMzNcdTczMjdcdTczMzJcdTczMmRcdTczMjZcdTczMjNcdTczMzVcdTczMGNcdTc0MmVcdTc0MmNcdTc0MzBcdTc0MmJcdTc0MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0'@; put 'MWFcdTc0MjFcdTc0MmRcdTc0MzFcdTc0MjRcdTc0MjNcdTc0MWRcdTc0MjlcdTc0MjBcdTc0MzJcdTc0ZmJcdTc1MmZcdTc1NmZcdTc1NmNcdTc1ZTdcdTc1ZGFcdTc1ZTFcdTc1ZTZcdTc1ZGRcdTc1ZGZcdTc1ZTRcdTc1ZDdcdTc2OTVcdTc2OTJcdTc2ZGFcdTc3NDZcdTc3NDdcdTc3NDRc'@; put 'dTc3NGRcdTc3NDVcdTc3NGFcdTc3NGVcdTc3NGJcdTc3NGNcdTc3ZGVcdTc3ZWNcdTc4NjBcdTc4NjRcdTc4NjVcdTc4NWNcdTc4NmRcdTc4NzFcdTc4NmFcdTc4NmVcdTc4NzBcdTc4NjlcdTc4NjhcdTc4NWVcdTc4NjJcdTc5NzRcdTc5NzNcdTc5NzJcdTc5NzBcdTdhMDJcdTdhMGFcdTdh'@; put 'MDNcdTdhMGNcdTdhMDRcdTdhOTlcdTdhZTZcdTdhZTRcdTdiNGFcdTdiM2JcdTdiNDRcdTdiNDhcdTdiNGNcdTdiNGVcdTdiNDBcdTdiNThcdTdiNDVcdTdjYTJcdTdjOWVcdTdjYThcdTdjYTFcdTdkNThcdTdkNmZcdTdkNjNcdTdkNTNcdTdkNTZcdTdkNjdcdTdkNmFcdTdkNGZcdTdkNmRc'@; put 'dTdkNWNcdTdkNmJcdTdkNTJcdTdkNTRcdTdkNjlcdTdkNTFcdTdkNWZcdTdkNGVcdTdmM2VcdTdmM2ZcdTdmNjVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMThdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxOF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjE4XVttXV09NTU4MDgrbSxG'@; put 'WzU1ODA4K21dPXhbMjE4XVttXSk7Zm9yKHhbMjE5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjY2XHU3ZmEyXHU3ZmEwXHU3ZmExXHU3ZmQ3XHU4MDUxXHU4MDRmXHU4MDUwXHU4MGZlXHU4MGQ0XHU4MTQzXHU4MTRhXHU4MTUy'@; put 'XHU4MTRmXHU4MTQ3XHU4MTNkXHU4MTRkXHU4MTNhXHU4MWU2XHU4MWVlXHU4MWY3XHU4MWY4XHU4MWY5XHU4MjA0XHU4MjNjXHU4MjNkXHU4MjNmXHU4Mjc1XHU4MzNiXHU4M2NmXHU4M2Y5XHU4NDIzXHU4M2MwXHU4M2U4XHU4NDEyXHU4M2U3XHU4M2U0XHU4M2ZjXHU4M2Y2XHU4NDEwXHU4'@; put 'M2M2XHU4M2M4XHU4M2ViXHU4M2UzXHU4M2JmXHU4NDAxXHU4M2RkXHU4M2U1XHU4M2Q4XHU4M2ZmXHU4M2UxXHU4M2NiXHU4M2NlXHU4M2Q2XHU4M2Y1XHU4M2M5XHU4NDA5XHU4NDBmXHU4M2RlXHU4NDExXHU4NDA2XHU4M2MyXHU4M2YzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU4M2Q1XHU4M2ZhXHU4M2M3XHU4M2QxXHU4M2VhXHU4NDEzXHU4M2MzXHU4M2VjXHU4M2VlXHU4M2M0XHU4M2ZiXHU4M2Q3XHU4M2UyXHU4NDFiXHU4M2RiXHU4M2ZlXHU4NmQ4XHU4NmUyXHU4NmU2XHU4NmQzXHU4NmUzXHU4NmRhXHU4NmVhXHU4NmRkXHU4NmViXHU4NmRj'@; put 'XHU4NmVjXHU4NmU5XHU4NmQ3XHU4NmU4XHU4NmQxXHU4ODQ4XHU4ODU2XHU4ODU1XHU4OGJhXHU4OGQ3XHU4OGI5XHU4OGI4XHU4OGMwXHU4OGJlXHU4OGI2XHU4OGJjXHU4OGI3XHU4OGJkXHU4OGIyXHU4OTAxXHU4OGM5XHU4OTk1XHU4OTk4XHU4OTk3XHU4OWRkXHU4OWRhXHU4OWRiXHU4'@; put 'YTRlXHU4YTRkXHU4YTM5XHU4YTU5XHU4YTQwXHU4YTU3XHU4YTU4XHU4YTQ0XHU4YTQ1XHU4YTUyXHU4YTQ4XHU4YTUxXHU4YTRhXHU4YTRjXHU4YTRmXHU4YzVmXHU4YzgxXHU4YzgwXHU4Y2JhXHU4Y2JlXHU4Y2IwXHU4Y2I5XHU4Y2I1XHU4ZDg0XHU4ZDgwXHU4ZDg5XHU4ZGQ4XHU4ZGQz'@; put 'XHU4ZGNkXHU4ZGM3XHU4ZGQ2XHU4ZGRjXHU4ZGNmXHU4ZGQ1XHU4ZGQ5XHU4ZGM4XHU4ZGQ3XHU4ZGM1XHU4ZWVmXHU4ZWY3XHU4ZWZhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjE5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxOV1b'@; put 'bV1dPTU2MDY0K20sRls1NjA2NCttXT14WzIxOV1bbV0pO2Zvcih4WzIyMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGVmOVx1OGVlNlx1OGVlZVx1OGVlNVx1OGVmNVx1OGVlN1x1OGVlOFx1OGVmNlx1OGVlYlx1OGVmMVx1OGVl'@; put 'Y1x1OGVmNFx1OGVlOVx1OTAyZFx1OTAzNFx1OTAyZlx1OTEwNlx1OTEyY1x1OTEwNFx1OTBmZlx1OTBmY1x1OTEwOFx1OTBmOVx1OTBmYlx1OTEwMVx1OTEwMFx1OTEwN1x1OTEwNVx1OTEwM1x1OTE2MVx1OTE2NFx1OTE1Zlx1OTE2Mlx1OTE2MFx1OTIwMVx1OTIwYVx1OTIyNVx1OTIwM1x1'@; put 'OTIxYVx1OTIyNlx1OTIwZlx1OTIwY1x1OTIwMFx1OTIxMlx1OTFmZlx1OTFmZFx1OTIwNlx1OTIwNFx1OTIyN1x1OTIwMlx1OTIxY1x1OTIyNFx1OTIxOVx1OTIxN1x1OTIwNVx1OTIxNlx1OTU3Ylx1OTU4ZFx1OTU4Y1x1OTU5MFx1OTY4N1x1OTY3ZVx1OTY4OFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4OVx1OTY4M1x1OTY4MFx1OTZjMlx1OTZjOFx1OTZjM1x1OTZmMVx1OTZmMFx1OTc2Y1x1OTc3MFx1OTc2ZVx1OTgwN1x1OThhOVx1OThlYlx1OWNlNlx1OWVmOVx1NGU4M1x1NGU4NFx1NGViNlx1NTBiZFx1NTBiZlx1NTBjNlx1NTBhZVx1NTBj'@; put 'NFx1NTBjYVx1NTBiNFx1NTBjOFx1NTBjMlx1NTBiMFx1NTBjMVx1NTBiYVx1NTBiMVx1NTBjYlx1NTBjOVx1NTBiNlx1NTBiOFx1NTFkN1x1NTI3YVx1NTI3OFx1NTI3Ylx1NTI3Y1x1NTVjM1x1NTVkYlx1NTVjY1x1NTVkMFx1NTVjYlx1NTVjYVx1NTVkZFx1NTVjMFx1NTVkNFx1NTVjNFx1'@; put 'NTVlOVx1NTViZlx1NTVkMlx1NTU4ZFx1NTVjZlx1NTVkNVx1NTVlMlx1NTVkNlx1NTVjOFx1NTVmMlx1NTVjZFx1NTVkOVx1NTVjMlx1NTcxNFx1NTg1M1x1NTg2OFx1NTg2NFx1NTg0Zlx1NTg0ZFx1NTg0OVx1NTg2Zlx1NTg1NVx1NTg0ZVx1NTg1ZFx1NTg1OVx1NTg2NVx1NTg1Ylx1NTgz'@; put 'ZFx1NTg2M1x1NTg3MVx1NThmY1x1NWFjN1x1NWFjNFx1NWFjYlx1NWFiYVx1NWFiOFx1NWFiMVx1NWFiNVx1NWFiMFx1NWFiZlx1NWFjOFx1NWFiYlx1NWFjNlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyMF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjIwXVttXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoYWVbeFsyMjBdW21dXT01NjMyMCttLEZbNTYzMjArbV09eFsyMjBdW21dKTtmb3IoeFsyMjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhYjdcdTVhYzBcdTVhY2FcdTVhYjRcdTVhYjZcdTVhY2RcdTVhYjlcdTVhOTBcdTVi'@; put 'ZDZcdTViZDhcdTViZDlcdTVjMWZcdTVjMzNcdTVkNzFcdTVkNjNcdTVkNGFcdTVkNjVcdTVkNzJcdTVkNmNcdTVkNWVcdTVkNjhcdTVkNjdcdTVkNjJcdTVkZjBcdTVlNGZcdTVlNGVcdTVlNGFcdTVlNGRcdTVlNGJcdTVlYzVcdTVlY2NcdTVlYzZcdTVlY2JcdTVlYzdcdTVmNDBcdTVmYWZc'@; put 'dTVmYWRcdTYwZjdcdTYxNDlcdTYxNGFcdTYxMmJcdTYxNDVcdTYxMzZcdTYxMzJcdTYxMmVcdTYxNDZcdTYxMmZcdTYxNGZcdTYxMjlcdTYxNDBcdTYyMjBcdTkxNjhcdTYyMjNcdTYyMjVcdTYyMjRcdTYzYzVcdTYzZjFcdTYzZWJcdTY0MTBcdTY0MTJcdTY0MDlcdTY0MjBcdTY0MjRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0MzNcdTY0NDNcdTY0MWZcdTY0MTVcdTY0MThcdTY0MzlcdTY0MzdcdTY0MjJcdTY0MjNcdTY0MGNcdTY0MjZcdTY0MzBcdTY0MjhcdTY0NDFcdTY0MzVcdTY0MmZcdTY0MGFcdTY0MWFcdTY0NDBcdTY0MjVcdTY0MjdcdTY0'@; put 'MGJcdTYzZTdcdTY0MWJcdTY0MmVcdTY0MjFcdTY0MGVcdTY1NmZcdTY1OTJcdTY1ZDNcdTY2ODZcdTY2OGNcdTY2OTVcdTY2OTBcdTY2OGJcdTY2OGFcdTY2OTlcdTY2OTRcdTY2NzhcdTY3MjBcdTY5NjZcdTY5NWZcdTY5MzhcdTY5NGVcdTY5NjJcdTY5NzFcdTY5M2ZcdTY5NDVcdTY5NmFc'@; put 'dTY5MzlcdTY5NDJcdTY5NTdcdTY5NTlcdTY5N2FcdTY5NDhcdTY5NDlcdTY5MzVcdTY5NmNcdTY5MzNcdTY5M2RcdTY5NjVcdTY4ZjBcdTY5NzhcdTY5MzRcdTY5NjlcdTY5NDBcdTY5NmZcdTY5NDRcdTY5NzZcdTY5NThcdTY5NDFcdTY5NzRcdTY5NGNcdTY5M2JcdTY5NGJcdTY5MzdcdTY5'@; put 'NWNcdTY5NGZcdTY5NTFcdTY5MzJcdTY5NTJcdTY5MmZcdTY5N2JcdTY5M2NcdTZiNDZcdTZiNDVcdTZiNDNcdTZiNDJcdTZiNDhcdTZiNDFcdTZiOWJcdWZhMGRcdTZiZmJcdTZiZmNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyMV1bbV0u'@; put 'Y2hhckNvZGVBdCgwKSYmKGFlW3hbMjIxXVttXV09NTY1NzYrbSxGWzU2NTc2K21dPXhbMjIxXVttXSk7Zm9yKHhbMjIyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmY5XHU2YmY3XHU2YmY4XHU2ZTliXHU2ZWQ2XHU2ZWM4XHU2'@; put 'ZThmXHU2ZWMwXHU2ZTlmXHU2ZTkzXHU2ZTk0XHU2ZWEwXHU2ZWIxXHU2ZWI5XHU2ZWM2XHU2ZWQyXHU2ZWJkXHU2ZWMxXHU2ZTllXHU2ZWM5XHU2ZWI3XHU2ZWIwXHU2ZWNkXHU2ZWE2XHU2ZWNmXHU2ZWIyXHU2ZWJlXHU2ZWMzXHU2ZWRjXHU2ZWQ4XHU2ZTk5XHU2ZTkyXHU2ZThlXHU2ZThk'@; put 'XHU2ZWE0XHU2ZWExXHU2ZWJmXHU2ZWIzXHU2ZWQwXHU2ZWNhXHU2ZTk3XHU2ZWFlXHU2ZWEzXHU3MTQ3XHU3MTU0XHU3MTUyXHU3MTYzXHU3MTYwXHU3MTQxXHU3MTVkXHU3MTYyXHU3MTcyXHU3MTc4XHU3MTZhXHU3MTYxXHU3MTQyXHU3MTU4XHU3MTQzXHU3MTRiXHU3MTcwXHU3MTVmXHU3'@; put 'MTUwXHU3MTUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTQ0XHU3MTRkXHU3MTVhXHU3MjRmXHU3MjhkXHU3MjhjXHU3MjkxXHU3MjkwXHU3MjhlXHU3MzNjXHU3MzQyXHU3MzNiXHU3MzNhXHU3MzQwXHU3MzRhXHU3MzQ5XHU3NDQ0XHU3NDRhXHU3NDRiXHU3'@; put 'NDUyXHU3NDUxXHU3NDU3XHU3NDQwXHU3NDRmXHU3NDUwXHU3NDRlXHU3NDQyXHU3NDQ2XHU3NDRkXHU3NDU0XHU3NGUxXHU3NGZmXHU3NGZlXHU3NGZkXHU3NTFkXHU3NTc5XHU3NTc3XHU2OTgzXHU3NWVmXHU3NjBmXHU3NjAzXHU3NWY3XHU3NWZlXHU3NWZjXHU3NWY5XHU3NWY4XHU3NjEw'@; put 'XHU3NWZiXHU3NWY2XHU3NWVkXHU3NWY1XHU3NWZkXHU3Njk5XHU3NmI1XHU3NmRkXHU3NzU1XHU3NzVmXHU3NzYwXHU3NzUyXHU3NzU2XHU3NzVhXHU3NzY5XHU3NzY3XHU3NzU0XHU3NzU5XHU3NzZkXHU3N2UwXHU3ODg3XHU3ODlhXHU3ODk0XHU3ODhmXHU3ODg0XHU3ODk1XHU3ODg1XHU3'@; put 'ODg2XHU3OGExXHU3ODgzXHU3ODc5XHU3ODk5XHU3ODgwXHU3ODk2XHU3ODdiXHU3OTdjXHU3OTgyXHU3OTdkXHU3OTc5XHU3YTExXHU3YTE4XHU3YTE5XHU3YTEyXHU3YTE3XHU3YTE1XHU3YTIyXHU3YTEzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjIyXS5sZW5ndGg7KyttKTY1NTMz'@; put 'IT09eFsyMjJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyMl1bbV1dPTU2ODMyK20sRls1NjgzMittXT14WzIyMl1bbV0pO2Zvcih4WzIyM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2ExYlx1N2ExMFx1N2FhM1x1N2FhMlx1'@; put 'N2E5ZVx1N2FlYlx1N2I2Nlx1N2I2NFx1N2I2ZFx1N2I3NFx1N2I2OVx1N2I3Mlx1N2I2NVx1N2I3M1x1N2I3MVx1N2I3MFx1N2I2MVx1N2I3OFx1N2I3Nlx1N2I2M1x1N2NiMlx1N2NiNFx1N2NhZlx1N2Q4OFx1N2Q4Nlx1N2Q4MFx1N2Q4ZFx1N2Q3Zlx1N2Q4NVx1N2Q3YVx1N2Q4ZVx1N2Q3'@; put 'Ylx1N2Q4M1x1N2Q3Y1x1N2Q4Y1x1N2Q5NFx1N2Q4NFx1N2Q3ZFx1N2Q5Mlx1N2Y2ZFx1N2Y2Ylx1N2Y2N1x1N2Y2OFx1N2Y2Y1x1N2ZhNlx1N2ZhNVx1N2ZhN1x1N2ZkYlx1N2ZkY1x1ODAyMVx1ODE2NFx1ODE2MFx1ODE3N1x1ODE1Y1x1ODE2OVx1ODE1Ylx1ODE2Mlx1ODE3Mlx1NjcyMVx1'@; put 'ODE1ZVx1ODE3Nlx1ODE2N1x1ODE2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE0NFx1ODE2MVx1ODIxZFx1ODI0OVx1ODI0NFx1ODI0MFx1ODI0Mlx1ODI0NVx1ODRmMVx1ODQzZlx1ODQ1Nlx1ODQ3Nlx1ODQ3OVx1ODQ4Zlx1ODQ4ZFx1ODQ2NVx1ODQ1MVx1'@; put 'ODQ0MFx1ODQ4Nlx1ODQ2N1x1ODQzMFx1ODQ0ZFx1ODQ3ZFx1ODQ1YVx1ODQ1OVx1ODQ3NFx1ODQ3M1x1ODQ1ZFx1ODUwN1x1ODQ1ZVx1ODQzN1x1ODQzYVx1ODQzNFx1ODQ3YVx1ODQ0M1x1ODQ3OFx1ODQzMlx1ODQ0NVx1ODQyOVx1ODNkOVx1ODQ0Ylx1ODQyZlx1ODQ0Mlx1ODQyZFx1ODQ1'@; put 'Zlx1ODQ3MFx1ODQzOVx1ODQ0ZVx1ODQ0Y1x1ODQ1Mlx1ODQ2Zlx1ODRjNVx1ODQ4ZVx1ODQzYlx1ODQ0N1x1ODQzNlx1ODQzM1x1ODQ2OFx1ODQ3ZVx1ODQ0NFx1ODQyYlx1ODQ2MFx1ODQ1NFx1ODQ2ZVx1ODQ1MFx1ODcwYlx1ODcwNFx1ODZmN1x1ODcwY1x1ODZmYVx1ODZkNlx1ODZmNVx1'@; put 'ODc0ZFx1ODZmOFx1ODcwZVx1ODcwOVx1ODcwMVx1ODZmNlx1ODcwZFx1ODcwNVx1ODhkNlx1ODhjYlx1ODhjZFx1ODhjZVx1ODhkZVx1ODhkYlx1ODhkYVx1ODhjY1x1ODhkMFx1ODk4NVx1ODk5Ylx1ODlkZlx1ODllNVx1ODllNFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyM10ubGVu'@; put 'Z3RoOysrbSk2NTUzMyE9PXhbMjIzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjNdW21dXT01NzA4OCttLEZbNTcwODgrbV09eFsyMjNdW21dKTtmb3IoeFsyMjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg5ZTFcdTg5ZTBc'@; put 'dTg5ZTJcdTg5ZGNcdTg5ZTZcdThhNzZcdThhODZcdThhN2ZcdThhNjFcdThhM2ZcdThhNzdcdThhODJcdThhODRcdThhNzVcdThhODNcdThhODFcdThhNzRcdThhN2FcdThjM2NcdThjNGJcdThjNGFcdThjNjVcdThjNjRcdThjNjZcdThjODZcdThjODRcdThjODVcdThjY2NcdThkNjhcdThk'@; put 'NjlcdThkOTFcdThkOGNcdThkOGVcdThkOGZcdThkOGRcdThkOTNcdThkOTRcdThkOTBcdThkOTJcdThkZjBcdThkZTBcdThkZWNcdThkZjFcdThkZWVcdThkZDBcdThkZTlcdThkZTNcdThkZTJcdThkZTdcdThkZjJcdThkZWJcdThkZjRcdThmMDZcdThlZmZcdThmMDFcdThmMDBcdThmMDVc'@; put 'dThmMDdcdThmMDhcdThmMDJcdThmMGJcdTkwNTJcdTkwM2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwNDRcdTkwNDlcdTkwM2RcdTkxMTBcdTkxMGRcdTkxMGZcdTkxMTFcdTkxMTZcdTkxMTRcdTkxMGJcdTkxMGVcdTkxNmVcdTkxNmZcdTkyNDhcdTkyNTJc'@; put 'dTkyMzBcdTkyM2FcdTkyNjZcdTkyMzNcdTkyNjVcdTkyNWVcdTkyODNcdTkyMmVcdTkyNGFcdTkyNDZcdTkyNmRcdTkyNmNcdTkyNGZcdTkyNjBcdTkyNjdcdTkyNmZcdTkyMzZcdTkyNjFcdTkyNzBcdTkyMzFcdTkyNTRcdTkyNjNcdTkyNTBcdTkyNzJcdTkyNGVcdTkyNTNcdTkyNGNcdTky'@; put 'NTZcdTkyMzJcdTk1OWZcdTk1OWNcdTk1OWVcdTk1OWJcdTk2OTJcdTk2OTNcdTk2OTFcdTk2OTdcdTk2Y2VcdTk2ZmFcdTk2ZmRcdTk2ZjhcdTk2ZjVcdTk3NzNcdTk3NzdcdTk3NzhcdTk3NzJcdTk4MGZcdTk4MGRcdTk4MGVcdTk4YWNcdTk4ZjZcdTk4ZjlcdTk5YWZcdTk5YjJcdTk5YjBc'@; put 'dTk5YjVcdTlhYWRcdTlhYWJcdTliNWJcdTljZWFcdTljZWRcdTljZTdcdTllODBcdTllZmRcdTUwZTZcdTUwZDRcdTUwZDdcdTUwZThcdTUwZjNcdTUwZGJcdTUwZWFcdTUwZGRcdTUwZTRcdTUwZDNcdTUwZWNcdTUwZjBcdTUwZWZcdTUwZTNcdTUwZTBcdWZmZmQiLnNwbGl0KCIiKSxtPTA7'@; put 'bSE9eFsyMjRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyNF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI0XVttXV09NTczNDQrbSxGWzU3MzQ0K21dPXhbMjI0XVttXSk7Zm9yKHhbMjI1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU1MWQ4XHU1MjgwXHU1MjgxXHU1MmU5XHU1MmViXHU1MzMwXHU1M2FjXHU1NjI3XHU1NjE1XHU1NjBjXHU1NjEyXHU1NWZjXHU1NjBmXHU1NjFjXHU1NjAxXHU1NjEzXHU1NjAyXHU1NWZhXHU1NjFkXHU1NjA0XHU1NWZmXHU1NWY5XHU1ODg5XHU1ODdjXHU1ODkwXHU1ODk4XHU1ODg2XHU1'@; put 'ODgxXHU1ODdmXHU1ODc0XHU1ODhiXHU1ODdhXHU1ODg3XHU1ODkxXHU1ODhlXHU1ODc2XHU1ODgyXHU1ODg4XHU1ODdiXHU1ODk0XHU1ODhmXHU1OGZlXHU1OTZiXHU1YWRjXHU1YWVlXHU1YWU1XHU1YWQ1XHU1YWVhXHU1YWRhXHU1YWVkXHU1YWViXHU1YWYzXHU1YWUyXHU1YWUwXHU1YWRi'@; put 'XHU1YWVjXHU1YWRlXHU1YWRkXHU1YWQ5XHU1YWU4XHU1YWRmXHU1Yjc3XHU1YmUwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YmUzXHU1YzYzXHU1ZDgyXHU1ZDgwXHU1ZDdkXHU1ZDg2XHU1ZDdhXHU1ZDgxXHU1ZDc3XHU1ZDhhXHU1ZDg5XHU1ZDg4XHU1ZDdl'@; put 'XHU1ZDdjXHU1ZDhkXHU1ZDc5XHU1ZDdmXHU1ZTU4XHU1ZTU5XHU1ZTUzXHU1ZWQ4XHU1ZWQxXHU1ZWQ3XHU1ZWNlXHU1ZWRjXHU1ZWQ1XHU1ZWQ5XHU1ZWQyXHU1ZWQ0XHU1ZjQ0XHU1ZjQzXHU1ZjZmXHU1ZmI2XHU2MTJjXHU2MTI4XHU2MTQxXHU2MTVlXHU2MTcxXHU2MTczXHU2MTUyXHU2'@; put 'MTUzXHU2MTcyXHU2MTZjXHU2MTgwXHU2MTc0XHU2MTU0XHU2MTdhXHU2MTViXHU2MTY1XHU2MTNiXHU2MTZhXHU2MTYxXHU2MTU2XHU2MjI5XHU2MjI3XHU2MjJiXHU2NDJiXHU2NDRkXHU2NDViXHU2NDVkXHU2NDc0XHU2NDc2XHU2NDcyXHU2NDczXHU2NDdkXHU2NDc1XHU2NDY2XHU2NGE2'@; put 'XHU2NDRlXHU2NDgyXHU2NDVlXHU2NDVjXHU2NDRiXHU2NDUzXHU2NDYwXHU2NDUwXHU2NDdmXHU2NDNmXHU2NDZjXHU2NDZiXHU2NDU5XHU2NDY1XHU2NDc3XHU2NTczXHU2NWEwXHU2NmExXHU2NmEwXHU2NjlmXHU2NzA1XHU2NzA0XHU2NzIyXHU2OWIxXHU2OWI2XHU2OWM5XHVmZmZkIi5z'@; put 'cGxpdCgiIiksbT0wO20hPXhbMjI1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyNV1bbV1dPTU3NjAwK20sRls1NzYwMCttXT14WzIyNV1bbV0pO2Zvcih4WzIyNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1NjlhMFx1NjljZVx1Njk5Nlx1NjliMFx1NjlhY1x1NjliY1x1Njk5MVx1Njk5OVx1Njk4ZVx1NjlhN1x1Njk4ZFx1NjlhOVx1NjliZVx1NjlhZlx1NjliZlx1NjljNFx1NjliZFx1NjlhNFx1NjlkNFx1NjliOVx1NjljYVx1Njk5YVx1NjljZlx1NjliM1x1Njk5M1x1'@; put 'NjlhYVx1NjlhMVx1Njk5ZVx1NjlkOVx1Njk5N1x1Njk5MFx1NjljMlx1NjliNVx1NjlhNVx1NjljNlx1NmI0YVx1NmI0ZFx1NmI0Ylx1NmI5ZVx1NmI5Zlx1NmJhMFx1NmJjM1x1NmJjNFx1NmJmZVx1NmVjZVx1NmVmNVx1NmVmMVx1NmYwM1x1NmYyNVx1NmVmOFx1NmYzN1x1NmVmYlx1NmYy'@; put 'ZVx1NmYwOVx1NmY0ZVx1NmYxOVx1NmYxYVx1NmYyN1x1NmYxOFx1NmYzYlx1NmYxMlx1NmVlZFx1NmYwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmYzNlx1NmY3M1x1NmVmOVx1NmVlZVx1NmYyZFx1NmY0MFx1NmYzMFx1NmYzY1x1NmYzNVx1NmVlYlx1NmYw'@; put 'N1x1NmYwZVx1NmY0M1x1NmYwNVx1NmVmZFx1NmVmNlx1NmYzOVx1NmYxY1x1NmVmY1x1NmYzYVx1NmYxZlx1NmYwZFx1NmYxZVx1NmYwOFx1NmYyMVx1NzE4N1x1NzE5MFx1NzE4OVx1NzE4MFx1NzE4NVx1NzE4Mlx1NzE4Zlx1NzE3Ylx1NzE4Nlx1NzE4MVx1NzE5N1x1NzI0NFx1NzI1M1x1'@; put 'NzI5N1x1NzI5NVx1NzI5M1x1NzM0M1x1NzM0ZFx1NzM1MVx1NzM0Y1x1NzQ2Mlx1NzQ3M1x1NzQ3MVx1NzQ3NVx1NzQ3Mlx1NzQ2N1x1NzQ2ZVx1NzUwMFx1NzUwMlx1NzUwM1x1NzU3ZFx1NzU5MFx1NzYxNlx1NzYwOFx1NzYwY1x1NzYxNVx1NzYxMVx1NzYwYVx1NzYxNFx1NzZiOFx1Nzc4'@; put 'MVx1Nzc3Y1x1Nzc4NVx1Nzc4Mlx1Nzc2ZVx1Nzc4MFx1Nzc2Zlx1Nzc3ZVx1Nzc4M1x1NzhiMlx1NzhhYVx1NzhiNFx1NzhhZFx1NzhhOFx1Nzg3ZVx1NzhhYlx1Nzg5ZVx1NzhhNVx1NzhhMFx1NzhhY1x1NzhhMlx1NzhhNFx1Nzk5OFx1Nzk4YVx1Nzk4Ylx1Nzk5Nlx1Nzk5NVx1Nzk5NFx1'@; put 'Nzk5M1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyNl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjZdW21dXT01Nzg1NittLEZbNTc4NTYrbV09eFsyMjZdW21dKTtmb3IoeFsyMjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OTdcdTc5ODhcdTc5OTJcdTc5OTBcdTdhMmJcdTdhNGFcdTdhMzBcdTdhMmZcdTdhMjhcdTdhMjZcdTdhYThcdTdhYWJcdTdhYWNcdTdhZWVcdTdiODhcdTdiOWNcdTdiOGFcdTdiOTFcdTdiOTBcdTdiOTZcdTdiOGRcdTdiOGNcdTdiOWJc'@; put 'dTdiOGVcdTdiODVcdTdiOThcdTUyODRcdTdiOTlcdTdiYTRcdTdiODJcdTdjYmJcdTdjYmZcdTdjYmNcdTdjYmFcdTdkYTdcdTdkYjdcdTdkYzJcdTdkYTNcdTdkYWFcdTdkYzFcdTdkYzBcdTdkYzVcdTdkOWRcdTdkY2VcdTdkYzRcdTdkYzZcdTdkY2JcdTdkY2NcdTdkYWZcdTdkYjlcdTdk'@; put 'OTZcdTdkYmNcdTdkOWZcdTdkYTZcdTdkYWVcdTdkYTlcdTdkYTFcdTdkYzlcdTdmNzNcdTdmZTJcdTdmZTNcdTdmZTVcdTdmZGVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwMjRcdTgwNWRcdTgwNWNcdTgxODlcdTgxODZcdTgxODNcdTgxODdcdTgxOGRcdTgx'@; put 'OGNcdTgxOGJcdTgyMTVcdTg0OTdcdTg0YTRcdTg0YTFcdTg0OWZcdTg0YmFcdTg0Y2VcdTg0YzJcdTg0YWNcdTg0YWVcdTg0YWJcdTg0YjlcdTg0YjRcdTg0YzFcdTg0Y2RcdTg0YWFcdTg0OWFcdTg0YjFcdTg0ZDBcdTg0OWRcdTg0YTdcdTg0YmJcdTg0YTJcdTg0OTRcdTg0YzdcdTg0Y2Nc'@; put 'dTg0OWJcdTg0YTlcdTg0YWZcdTg0YThcdTg0ZDZcdTg0OThcdTg0YjZcdTg0Y2ZcdTg0YTBcdTg0ZDdcdTg0ZDRcdTg0ZDJcdTg0ZGJcdTg0YjBcdTg0OTFcdTg2NjFcdTg3MzNcdTg3MjNcdTg3MjhcdTg3NmJcdTg3NDBcdTg3MmVcdTg3MWVcdTg3MjFcdTg3MTlcdTg3MWJcdTg3NDNcdTg3'@; put 'MmNcdTg3NDFcdTg3M2VcdTg3NDZcdTg3MjBcdTg3MzJcdTg3MmFcdTg3MmRcdTg3M2NcdTg3MTJcdTg3M2FcdTg3MzFcdTg3MzVcdTg3NDJcdTg3MjZcdTg3MjdcdTg3MzhcdTg3MjRcdTg3MWFcdTg3MzBcdTg3MTFcdTg4ZjdcdTg4ZTdcdTg4ZjFcdTg4ZjJcdTg4ZmFcdTg4ZmVcdTg4ZWVc'@; put 'dTg4ZmNcdTg4ZjZcdTg4ZmJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjddLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyN11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI3XVttXV09NTgxMTIrbSxGWzU4MTEyK21dPXhbMjI3XVttXSk7Zm9yKHhbMjI4XT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OGYwXHU4OGVjXHU4OGViXHU4OTlkXHU4OWExXHU4OTlmXHU4OTllXHU4OWU5XHU4OWViXHU4OWU4XHU4YWFiXHU4YTk5XHU4YThiXHU4YTkyXHU4YThmXHU4YTk2XHU4YzNkXHU4YzY4XHU4YzY5XHU4Y2Q1XHU4Y2Nm'@; put 'XHU4Y2Q3XHU4ZDk2XHU4ZTA5XHU4ZTAyXHU4ZGZmXHU4ZTBkXHU4ZGZkXHU4ZTBhXHU4ZTAzXHU4ZTA3XHU4ZTA2XHU4ZTA1XHU4ZGZlXHU4ZTAwXHU4ZTA0XHU4ZjEwXHU4ZjExXHU4ZjBlXHU4ZjBkXHU5MTIzXHU5MTFjXHU5MTIwXHU5MTIyXHU5MTFmXHU5MTFkXHU5MTFhXHU5MTI0XHU5'@; put 'MTIxXHU5MTFiXHU5MTdhXHU5MTcyXHU5MTc5XHU5MTczXHU5MmE1XHU5MmE0XHU5Mjc2XHU5MjliXHU5MjdhXHU5MmEwXHU5Mjk0XHU5MmFhXHU5MjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MmE2XHU5MjlhXHU5MmFiXHU5Mjc5XHU5Mjk3XHU5MjdmXHU5'@; put 'MmEzXHU5MmVlXHU5MjhlXHU5MjgyXHU5Mjk1XHU5MmEyXHU5MjdkXHU5Mjg4XHU5MmExXHU5MjhhXHU5Mjg2XHU5MjhjXHU5Mjk5XHU5MmE3XHU5MjdlXHU5Mjg3XHU5MmE5XHU5MjlkXHU5MjhiXHU5MjJkXHU5NjllXHU5NmExXHU5NmZmXHU5NzU4XHU5NzdkXHU5NzdhXHU5NzdlXHU5Nzgz'@; put 'XHU5NzgwXHU5NzgyXHU5NzdiXHU5Nzg0XHU5NzgxXHU5NzdmXHU5N2NlXHU5N2NkXHU5ODE2XHU5OGFkXHU5OGFlXHU5OTAyXHU5OTAwXHU5OTA3XHU5OTlkXHU5OTljXHU5OWMzXHU5OWI5XHU5OWJiXHU5OWJhXHU5OWMyXHU5OWJkXHU5OWM3XHU5YWIxXHU5YWUzXHU5YWU3XHU5YjNlXHU5'@; put 'YjNmXHU5YjYwXHU5YjYxXHU5YjVmXHU5Y2YxXHU5Y2YyXHU5Y2Y1XHU5ZWE3XHU1MGZmXHU1MTAzXHU1MTMwXHU1MGY4XHU1MTA2XHU1MTA3XHU1MGY2XHU1MGZlXHU1MTBiXHU1MTBjXHU1MGZkXHU1MTBhXHU1MjhiXHU1MjhjXHU1MmYxXHU1MmVmXHU1NjQ4XHU1NjQyXHU1NjRjXHU1NjM1'@; put 'XHU1NjQxXHU1NjRhXHU1NjQ5XHU1NjQ2XHU1NjU4XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyOF1bbV1dPTU4MzY4K20sRls1ODM2OCttXT14WzIyOF1bbV0pO2Zvcih4WzIyOV09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTY1YVx1NTY0MFx1NTYzM1x1NTYzZFx1NTYyY1x1NTYzZVx1NTYzOFx1NTYyYVx1NTYzYVx1NTcxYVx1NThhYlx1NTg5ZFx1NThiMVx1NThhMFx1NThhM1x1NThhZlx1NThhY1x1NThhNVx1NThh'@; put 'MVx1NThmZlx1NWFmZlx1NWFmNFx1NWFmZFx1NWFmN1x1NWFmNlx1NWIwM1x1NWFmOFx1NWIwMlx1NWFmOVx1NWIwMVx1NWIwN1x1NWIwNVx1NWIwZlx1NWM2N1x1NWQ5OVx1NWQ5N1x1NWQ5Zlx1NWQ5Mlx1NWRhMlx1NWQ5M1x1NWQ5NVx1NWRhMFx1NWQ5Y1x1NWRhMVx1NWQ5YVx1NWQ5ZVx1'@; put 'NWU2OVx1NWU1ZFx1NWU2MFx1NWU1Y1x1N2RmM1x1NWVkYlx1NWVkZVx1NWVlMVx1NWY0OVx1NWZiMlx1NjE4Ylx1NjE4M1x1NjE3OVx1NjFiMVx1NjFiMFx1NjFhMlx1NjE4OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjE5Ylx1NjE5M1x1NjFhZlx1NjFhZFx1'@; put 'NjE5Zlx1NjE5Mlx1NjFhYVx1NjFhMVx1NjE4ZFx1NjE2Nlx1NjFiM1x1NjIyZFx1NjQ2ZVx1NjQ3MFx1NjQ5Nlx1NjRhMFx1NjQ4NVx1NjQ5N1x1NjQ5Y1x1NjQ4Zlx1NjQ4Ylx1NjQ4YVx1NjQ4Y1x1NjRhM1x1NjQ5Zlx1NjQ2OFx1NjRiMVx1NjQ5OFx1NjU3Nlx1NjU3YVx1NjU3OVx1NjU3'@; put 'Ylx1NjViMlx1NjViM1x1NjZiNVx1NjZiMFx1NjZhOVx1NjZiMlx1NjZiN1x1NjZhYVx1NjZhZlx1NmEwMFx1NmEwNlx1NmExN1x1NjllNVx1NjlmOFx1NmExNVx1NjlmMVx1NjllNFx1NmEyMFx1NjlmZlx1NjllY1x1NjllMlx1NmExYlx1NmExZFx1NjlmZVx1NmEyN1x1NjlmMlx1NjllZVx1'@; put 'NmExNFx1NjlmN1x1NjllN1x1NmE0MFx1NmEwOFx1NjllNlx1NjlmYlx1NmEwZFx1NjlmY1x1NjllYlx1NmEwOVx1NmEwNFx1NmExOFx1NmEyNVx1NmEwZlx1NjlmNlx1NmEyNlx1NmEwN1x1NjlmNFx1NmExNlx1NmI1MVx1NmJhNVx1NmJhM1x1NmJhMlx1NmJhNlx1NmMwMVx1NmMwMFx1NmJm'@; put 'Zlx1NmMwMlx1NmY0MVx1NmYyNlx1NmY3ZVx1NmY4N1x1NmZjNlx1NmY5Mlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyOV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjldW21dXT01ODYyNCttLEZbNTg2MjQrbV09eFsyMjldW21dKTtm'@; put 'b3IoeFsyMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmOGRcdTZmODlcdTZmOGNcdTZmNjJcdTZmNGZcdTZmODVcdTZmNWFcdTZmOTZcdTZmNzZcdTZmNmNcdTZmODJcdTZmNTVcdTZmNzJcdTZmNTJcdTZmNTBcdTZmNTdcdTZm'@; put 'OTRcdTZmOTNcdTZmNWRcdTZmMDBcdTZmNjFcdTZmNmJcdTZmN2RcdTZmNjdcdTZmOTBcdTZmNTNcdTZmOGJcdTZmNjlcdTZmN2ZcdTZmOTVcdTZmNjNcdTZmNzdcdTZmNmFcdTZmN2JcdTcxYjJcdTcxYWZcdTcxOWJcdTcxYjBcdTcxYTBcdTcxOWFcdTcxYTlcdTcxYjVcdTcxOWRcdTcxYTVc'@; put 'dTcxOWVcdTcxYTRcdTcxYTFcdTcxYWFcdTcxOWNcdTcxYTdcdTcxYjNcdTcyOThcdTcyOWFcdTczNThcdTczNTJcdTczNWVcdTczNWZcdTczNjBcdTczNWRcdTczNWJcdTczNjFcdTczNWFcdTczNTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczNjJcdTc0ODdc'@; put 'dTc0ODlcdTc0OGFcdTc0ODZcdTc0ODFcdTc0N2RcdTc0ODVcdTc0ODhcdTc0N2NcdTc0NzlcdTc1MDhcdTc1MDdcdTc1N2VcdTc2MjVcdTc2MWVcdTc2MTlcdTc2MWRcdTc2MWNcdTc2MjNcdTc2MWFcdTc2MjhcdTc2MWJcdTc2OWNcdTc2OWRcdTc2OWVcdTc2OWJcdTc3OGRcdTc3OGZcdTc3'@; put 'ODlcdTc3ODhcdTc4Y2RcdTc4YmJcdTc4Y2ZcdTc4Y2NcdTc4ZDFcdTc4Y2VcdTc4ZDRcdTc4YzhcdTc4YzNcdTc4YzRcdTc4YzlcdTc5OWFcdTc5YTFcdTc5YTBcdTc5OWNcdTc5YTJcdTc5OWJcdTZiNzZcdTdhMzlcdTdhYjJcdTdhYjRcdTdhYjNcdTdiYjdcdTdiY2JcdTdiYmVcdTdiYWNc'@; put 'dTdiY2VcdTdiYWZcdTdiYjlcdTdiY2FcdTdiYjVcdTdjYzVcdTdjYzhcdTdjY2NcdTdjY2JcdTdkZjdcdTdkZGJcdTdkZWFcdTdkZTdcdTdkZDdcdTdkZTFcdTdlMDNcdTdkZmFcdTdkZTZcdTdkZjZcdTdkZjFcdTdkZjBcdTdkZWVcdTdkZGZcdTdmNzZcdTdmYWNcdTdmYjBcdTdmYWRcdTdm'@; put 'ZWRcdTdmZWJcdTdmZWFcdTdmZWNcdTdmZTZcdTdmZThcdTgwNjRcdTgwNjdcdTgxYTNcdTgxOWZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjMwXVttXV09NTg4ODArbSxGWzU4ODgwK21d'@; put 'PXhbMjMwXVttXSk7Zm9yKHhbMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTllXHU4MTk1XHU4MWEyXHU4MTk5XHU4MTk3XHU4MjE2XHU4MjRmXHU4MjUzXHU4MjUyXHU4MjUwXHU4MjRlXHU4MjUxXHU4NTI0XHU4NTNiXHU4'@; put 'NTBmXHU4NTAwXHU4NTI5XHU4NTBlXHU4NTA5XHU4NTBkXHU4NTFmXHU4NTBhXHU4NTI3XHU4NTFjXHU4NGZiXHU4NTJiXHU4NGZhXHU4NTA4XHU4NTBjXHU4NGY0XHU4NTJhXHU4NGYyXHU4NTE1XHU4NGY3XHU4NGViXHU4NGYzXHU4NGZjXHU4NTEyXHU4NGVhXHU4NGU5XHU4NTE2XHU4NGZl'@; put 'XHU4NTI4XHU4NTFkXHU4NTJlXHU4NTAyXHU4NGZkXHU4NTFlXHU4NGY2XHU4NTMxXHU4NTI2XHU4NGU3XHU4NGU4XHU4NGYwXHU4NGVmXHU4NGY5XHU4NTE4XHU4NTIwXHU4NTMwXHU4NTBiXHU4NTE5XHU4NTJmXHU4NjYyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU4NzU2XHU4NzYzXHU4NzY0XHU4Nzc3XHU4N2UxXHU4NzczXHU4NzU4XHU4NzU0XHU4NzViXHU4NzUyXHU4NzYxXHU4NzVhXHU4NzUxXHU4NzVlXHU4NzZkXHU4NzZhXHU4NzUwXHU4NzRlXHU4NzVmXHU4NzVkXHU4NzZmXHU4NzZjXHU4NzdhXHU4NzZlXHU4NzVjXHU4NzY1XHU4NzRmXHU4'@; put 'NzdiXHU4Nzc1XHU4NzYyXHU4NzY3XHU4NzY5XHU4ODVhXHU4OTA1XHU4OTBjXHU4OTE0XHU4OTBiXHU4OTE3XHU4OTE4XHU4OTE5XHU4OTA2XHU4OTE2XHU4OTExXHU4OTBlXHU4OTA5XHU4OWEyXHU4OWE0XHU4OWEzXHU4OWVkXHU4OWYwXHU4OWVjXHU4YWNmXHU4YWM2XHU4YWI4XHU4YWQz'@; put 'XHU4YWQxXHU4YWQ0XHU4YWQ1XHU4YWJiXHU4YWQ3XHU4YWJlXHU4YWMwXHU4YWM1XHU4YWQ4XHU4YWMzXHU4YWJhXHU4YWJkXHU4YWQ5XHU4YzNlXHU4YzRkXHU4YzhmXHU4Y2U1XHU4Y2RmXHU4Y2Q5XHU4Y2U4XHU4Y2RhXHU4Y2RkXHU4Y2U3XHU4ZGEwXHU4ZDljXHU4ZGExXHU4ZDliXHU4'@; put 'ZTIwXHU4ZTIzXHU4ZTI1XHU4ZTI0XHU4ZTJlXHU4ZTE1XHU4ZTFiXHU4ZTE2XHU4ZTExXHU4ZTE5XHU4ZTI2XHU4ZTI3XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjMxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzMV1bbV1dPTU5MTM2'@; put 'K20sRls1OTEzNittXT14WzIzMV1bbV0pO2Zvcih4WzIzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGUxNFx1OGUxMlx1OGUxOFx1OGUxM1x1OGUxY1x1OGUxN1x1OGUxYVx1OGYyY1x1OGYyNFx1OGYxOFx1OGYxYVx1OGYyMFx1'@; put 'OGYyM1x1OGYxNlx1OGYxN1x1OTA3M1x1OTA3MFx1OTA2Zlx1OTA2N1x1OTA2Ylx1OTEyZlx1OTEyYlx1OTEyOVx1OTEyYVx1OTEzMlx1OTEyNlx1OTEyZVx1OTE4NVx1OTE4Nlx1OTE4YVx1OTE4MVx1OTE4Mlx1OTE4NFx1OTE4MFx1OTJkMFx1OTJjM1x1OTJjNFx1OTJjMFx1OTJkOVx1OTJi'@; put 'Nlx1OTJjZlx1OTJmMVx1OTJkZlx1OTJkOFx1OTJlOVx1OTJkN1x1OTJkZFx1OTJjY1x1OTJlZlx1OTJjMlx1OTJlOFx1OTJjYVx1OTJjOFx1OTJjZVx1OTJlNlx1OTJjZFx1OTJkNVx1OTJjOVx1OTJlMFx1OTJkZVx1OTJlN1x1OTJkMVx1OTJkM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1OTJiNVx1OTJlMVx1OTJjNlx1OTJiNFx1OTU3Y1x1OTVhY1x1OTVhYlx1OTVhZVx1OTViMFx1OTZhNFx1OTZhMlx1OTZkM1x1OTcwNVx1OTcwOFx1OTcwMlx1OTc1YVx1OTc4YVx1OTc4ZVx1OTc4OFx1OTdkMFx1OTdjZlx1OTgxZVx1OTgxZFx1OTgyNlx1OTgyOVx1'@; put 'OTgyOFx1OTgyMFx1OTgxYlx1OTgyN1x1OThiMlx1OTkwOFx1OThmYVx1OTkxMVx1OTkxNFx1OTkxNlx1OTkxN1x1OTkxNVx1OTlkY1x1OTljZFx1OTljZlx1OTlkM1x1OTlkNFx1OTljZVx1OTljOVx1OTlkNlx1OTlkOFx1OTljYlx1OTlkN1x1OTljY1x1OWFiM1x1OWFlY1x1OWFlYlx1OWFm'@; put 'M1x1OWFmMlx1OWFmMVx1OWI0Nlx1OWI0M1x1OWI2N1x1OWI3NFx1OWI3MVx1OWI2Nlx1OWI3Nlx1OWI3NVx1OWI3MFx1OWI2OFx1OWI2NFx1OWI2Y1x1OWNmY1x1OWNmYVx1OWNmZFx1OWNmZlx1OWNmN1x1OWQwN1x1OWQwMFx1OWNmOVx1OWNmYlx1OWQwOFx1OWQwNVx1OWQwNFx1OWU4M1x1'@; put 'OWVkM1x1OWYwZlx1OWYxMFx1NTExY1x1NTExM1x1NTExN1x1NTExYVx1NTExMVx1NTFkZVx1NTMzNFx1NTNlMVx1NTY3MFx1NTY2MFx1NTY2ZVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzMl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjMyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsy'@; put 'MzJdW21dXT01OTM5MittLEZbNTkzOTIrbV09eFsyMzJdW21dKTtmb3IoeFsyMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2NzNcdTU2NjZcdTU2NjNcdTU2NmRcdTU2NzJcdTU2NWVcdTU2NzdcdTU3MWNcdTU3MWJcdTU4Yzhc'@; put 'dTU4YmRcdTU4YzlcdTU4YmZcdTU4YmFcdTU4YzJcdTU4YmNcdTU4YzZcdTViMTdcdTViMTlcdTViMWJcdTViMjFcdTViMTRcdTViMTNcdTViMTBcdTViMTZcdTViMjhcdTViMWFcdTViMjBcdTViMWVcdTViZWZcdTVkYWNcdTVkYjFcdTVkYTlcdTVkYTdcdTVkYjVcdTVkYjBcdTVkYWVcdTVk'@; put 'YWFcdTVkYThcdTVkYjJcdTVkYWRcdTVkYWZcdTVkYjRcdTVlNjdcdTVlNjhcdTVlNjZcdTVlNmZcdTVlZTlcdTVlZTdcdTVlZTZcdTVlZThcdTVlZTVcdTVmNGJcdTVmYmNcdTYxOWRcdTYxYThcdTYxOTZcdTYxYzVcdTYxYjRcdTYxYzZcdTYxYzFcdTYxY2NcdTYxYmFcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxYmZcdTYxYjhcdTYxOGNcdTY0ZDdcdTY0ZDZcdTY0ZDBcdTY0Y2ZcdTY0YzlcdTY0YmRcdTY0ODlcdTY0YzNcdTY0ZGJcdTY0ZjNcdTY0ZDlcdTY1MzNcdTY1N2ZcdTY1N2NcdTY1YTJcdTY2YzhcdTY2YmVcdTY2YzBcdTY2Y2FcdTY2Y2Jc'@; put 'dTY2Y2ZcdTY2YmRcdTY2YmJcdTY2YmFcdTY2Y2NcdTY3MjNcdTZhMzRcdTZhNjZcdTZhNDlcdTZhNjdcdTZhMzJcdTZhNjhcdTZhM2VcdTZhNWRcdTZhNmRcdTZhNzZcdTZhNWJcdTZhNTFcdTZhMjhcdTZhNWFcdTZhM2JcdTZhM2ZcdTZhNDFcdTZhNmFcdTZhNjRcdTZhNTBcdTZhNGZcdTZh'@; put 'NTRcdTZhNmZcdTZhNjlcdTZhNjBcdTZhM2NcdTZhNWVcdTZhNTZcdTZhNTVcdTZhNGRcdTZhNGVcdTZhNDZcdTZiNTVcdTZiNTRcdTZiNTZcdTZiYTdcdTZiYWFcdTZiYWJcdTZiYzhcdTZiYzdcdTZjMDRcdTZjMDNcdTZjMDZcdTZmYWRcdTZmY2JcdTZmYTNcdTZmYzdcdTZmYmNcdTZmY2Vc'@; put 'dTZmYzhcdTZmNWVcdTZmYzRcdTZmYmRcdTZmOWVcdTZmY2FcdTZmYThcdTcwMDRcdTZmYTVcdTZmYWVcdTZmYmFcdTZmYWNcdTZmYWFcdTZmY2ZcdTZmYmZcdTZmYjhcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzM11bbV0uY2hhckNvZGVB'@; put 'dCgwKSYmKGFlW3hbMjMzXVttXV09NTk2NDgrbSxGWzU5NjQ4K21dPXhbMjMzXVttXSk7Zm9yKHhbMjM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmEyXHU2ZmM5XHU2ZmFiXHU2ZmNkXHU2ZmFmXHU2ZmIyXHU2ZmIwXHU3MWM1'@; put 'XHU3MWMyXHU3MWJmXHU3MWI4XHU3MWQ2XHU3MWMwXHU3MWMxXHU3MWNiXHU3MWQ0XHU3MWNhXHU3MWM3XHU3MWNmXHU3MWJkXHU3MWQ4XHU3MWJjXHU3MWM2XHU3MWRhXHU3MWRiXHU3MjlkXHU3MjllXHU3MzY5XHU3MzY2XHU3MzY3XHU3MzZjXHU3MzY1XHU3MzZiXHU3MzZhXHU3NDdmXHU3'@; put 'NDlhXHU3NGEwXHU3NDk0XHU3NDkyXHU3NDk1XHU3NGExXHU3NTBiXHU3NTgwXHU3NjJmXHU3NjJkXHU3NjMxXHU3NjNkXHU3NjMzXHU3NjNjXHU3NjM1XHU3NjMyXHU3NjMwXHU3NmJiXHU3NmU2XHU3NzlhXHU3NzlkXHU3N2ExXHU3NzljXHU3NzliXHU3N2EyXHU3N2EzXHU3Nzk1XHU3Nzk5'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Nzk3XHU3OGRkXHU3OGU5XHU3OGU1XHU3OGVhXHU3OGRlXHU3OGUzXHU3OGRiXHU3OGUxXHU3OGUyXHU3OGVkXHU3OGRmXHU3OGUwXHU3OWE0XHU3YTQ0XHU3YTQ4XHU3YTQ3XHU3YWI2XHU3YWI4XHU3YWI1XHU3YWIx'@; put 'XHU3YWI3XHU3YmRlXHU3YmUzXHU3YmU3XHU3YmRkXHU3YmQ1XHU3YmU1XHU3YmRhXHU3YmU4XHU3YmY5XHU3YmQ0XHU3YmVhXHU3YmUyXHU3YmRjXHU3YmViXHU3YmQ4XHU3YmRmXHU3Y2QyXHU3Y2Q0XHU3Y2Q3XHU3Y2QwXHU3Y2QxXHU3ZTEyXHU3ZTIxXHU3ZTE3XHU3ZTBjXHU3ZTFmXHU3'@; put 'ZTIwXHU3ZTEzXHU3ZTBlXHU3ZTFjXHU3ZTE1XHU3ZTFhXHU3ZTIyXHU3ZTBiXHU3ZTBmXHU3ZTE2XHU3ZTBkXHU3ZTE0XHU3ZTI1XHU3ZTI0XHU3ZjQzXHU3ZjdiXHU3ZjdjXHU3ZjdhXHU3ZmIxXHU3ZmVmXHU4MDJhXHU4MDI5XHU4MDZjXHU4MWIxXHU4MWE2XHU4MWFlXHU4MWI5XHU4MWI1'@; put 'XHU4MWFiXHU4MWIwXHU4MWFjXHU4MWI0XHU4MWIyXHU4MWI3XHU4MWE3XHU4MWYyXHU4MjU1XHU4MjU2XHU4MjU3XHU4NTU2XHU4NTQ1XHU4NTZiXHU4NTRkXHU4NTUzXHU4NTYxXHU4NTU4XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjM0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzRd'@; put 'W21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzNF1bbV1dPTU5OTA0K20sRls1OTkwNCttXT14WzIzNF1bbV0pO2Zvcih4WzIzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU0MFx1ODU0Nlx1ODU2NFx1ODU0MVx1ODU2Mlx1ODU0'@; put 'NFx1ODU1MVx1ODU0N1x1ODU2M1x1ODUzZVx1ODU1Ylx1ODU3MVx1ODU0ZVx1ODU2ZVx1ODU3NVx1ODU1NVx1ODU2N1x1ODU2MFx1ODU4Y1x1ODU2Nlx1ODU1ZFx1ODU1NFx1ODU2NVx1ODU2Y1x1ODY2M1x1ODY2NVx1ODY2NFx1ODc5Ylx1ODc4Zlx1ODc5N1x1ODc5M1x1ODc5Mlx1ODc4OFx1'@; put 'ODc4MVx1ODc5Nlx1ODc5OFx1ODc3OVx1ODc4N1x1ODdhM1x1ODc4NVx1ODc5MFx1ODc5MVx1ODc5ZFx1ODc4NFx1ODc5NFx1ODc5Y1x1ODc5YVx1ODc4OVx1ODkxZVx1ODkyNlx1ODkzMFx1ODkyZFx1ODkyZVx1ODkyN1x1ODkzMVx1ODkyMlx1ODkyOVx1ODkyM1x1ODkyZlx1ODkyY1x1ODkx'@; put 'Zlx1ODlmMVx1OGFlMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlMlx1OGFmMlx1OGFmNFx1OGFmNVx1OGFkZFx1OGIxNFx1OGFlNFx1OGFkZlx1OGFmMFx1OGFjOFx1OGFkZVx1OGFlMVx1OGFlOFx1OGFmZlx1OGFlZlx1OGFmYlx1OGM5MVx1OGM5Mlx1OGM5'@; put 'MFx1OGNmNVx1OGNlZVx1OGNmMVx1OGNmMFx1OGNmM1x1OGQ2Y1x1OGQ2ZVx1OGRhNVx1OGRhN1x1OGUzM1x1OGUzZVx1OGUzOFx1OGU0MFx1OGU0NVx1OGUzNlx1OGUzY1x1OGUzZFx1OGU0MVx1OGUzMFx1OGUzZlx1OGViZFx1OGYzNlx1OGYyZVx1OGYzNVx1OGYzMlx1OGYzOVx1OGYzN1x1'@; put 'OGYzNFx1OTA3Nlx1OTA3OVx1OTA3Ylx1OTA4Nlx1OTBmYVx1OTEzM1x1OTEzNVx1OTEzNlx1OTE5M1x1OTE5MFx1OTE5MVx1OTE4ZFx1OTE4Zlx1OTMyN1x1OTMxZVx1OTMwOFx1OTMxZlx1OTMwNlx1OTMwZlx1OTM3YVx1OTMzOFx1OTMzY1x1OTMxYlx1OTMyM1x1OTMxMlx1OTMwMVx1OTM0'@; put 'Nlx1OTMyZFx1OTMwZVx1OTMwZFx1OTJjYlx1OTMxZFx1OTJmYVx1OTMyNVx1OTMxM1x1OTJmOVx1OTJmN1x1OTMzNFx1OTMwMlx1OTMyNFx1OTJmZlx1OTMyOVx1OTMzOVx1OTMzNVx1OTMyYVx1OTMxNFx1OTMwY1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzNV0ubGVuZ3RoOysrbSk2'@; put 'NTUzMyE9PXhbMjM1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzVdW21dXT02MDE2MCttLEZbNjAxNjArbV09eFsyMzVdW21dKTtmb3IoeFsyMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMGJcdTkyZmVcdTkzMDlcdTkz'@; put 'MDBcdTkyZmJcdTkzMTZcdTk1YmNcdTk1Y2RcdTk1YmVcdTk1YjlcdTk1YmFcdTk1YjZcdTk1YmZcdTk1YjVcdTk1YmRcdTk2YTlcdTk2ZDRcdTk3MGJcdTk3MTJcdTk3MTBcdTk3OTlcdTk3OTdcdTk3OTRcdTk3ZjBcdTk3ZjhcdTk4MzVcdTk4MmZcdTk4MzJcdTk5MjRcdTk5MWZcdTk5Mjdc'@; put 'dTk5MjlcdTk5OWVcdTk5ZWVcdTk5ZWNcdTk5ZTVcdTk5ZTRcdTk5ZjBcdTk5ZTNcdTk5ZWFcdTk5ZTlcdTk5ZTdcdTlhYjlcdTlhYmZcdTlhYjRcdTlhYmJcdTlhZjZcdTlhZmFcdTlhZjlcdTlhZjdcdTliMzNcdTliODBcdTliODVcdTliODdcdTliN2NcdTliN2VcdTliN2JcdTliODJcdTli'@; put 'OTNcdTliOTJcdTliOTBcdTliN2FcdTliOTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliN2RcdTliODhcdTlkMjVcdTlkMTdcdTlkMjBcdTlkMWVcdTlkMTRcdTlkMjlcdTlkMWRcdTlkMThcdTlkMjJcdTlkMTBcdTlkMTlcdTlkMWZcdTllODhcdTllODZcdTll'@; put 'ODdcdTllYWVcdTllYWRcdTllZDVcdTllZDZcdTllZmFcdTlmMTJcdTlmM2RcdTUxMjZcdTUxMjVcdTUxMjJcdTUxMjRcdTUxMjBcdTUxMjlcdTUyZjRcdTU2OTNcdTU2OGNcdTU2OGRcdTU2ODZcdTU2ODRcdTU2ODNcdTU2N2VcdTU2ODJcdTU2N2ZcdTU2ODFcdTU4ZDZcdTU4ZDRcdTU4Y2Zc'@; put 'dTU4ZDJcdTViMmRcdTViMjVcdTViMzJcdTViMjNcdTViMmNcdTViMjdcdTViMjZcdTViMmZcdTViMmVcdTViN2JcdTViZjFcdTViZjJcdTVkYjdcdTVlNmNcdTVlNmFcdTVmYmVcdTVmYmJcdTYxYzNcdTYxYjVcdTYxYmNcdTYxZTdcdTYxZTBcdTYxZTVcdTYxZTRcdTYxZThcdTYxZGVcdTY0'@; put 'ZWZcdTY0ZTlcdTY0ZTNcdTY0ZWJcdTY0ZTRcdTY0ZThcdTY1ODFcdTY1ODBcdTY1YjZcdTY1ZGFcdTY2ZDJcdTZhOGRcdTZhOTZcdTZhODFcdTZhYTVcdTZhODlcdTZhOWZcdTZhOWJcdTZhYTFcdTZhOWVcdTZhODdcdTZhOTNcdTZhOGVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzZd'@; put 'Lmxlbmd0aDsrK20pNjU1MzMhPT14WzIzNl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM2XVttXV09NjA0MTYrbSxGWzYwNDE2K21dPXhbMjM2XVttXSk7Zm9yKHhbMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YTk1XHU2'@; put 'YTgzXHU2YWE4XHU2YWE0XHU2YTkxXHU2YTdmXHU2YWE2XHU2YTlhXHU2YTg1XHU2YThjXHU2YTkyXHU2YjViXHU2YmFkXHU2YzA5XHU2ZmNjXHU2ZmE5XHU2ZmY0XHU2ZmQ0XHU2ZmUzXHU2ZmRjXHU2ZmVkXHU2ZmU3XHU2ZmU2XHU2ZmRlXHU2ZmYyXHU2ZmRkXHU2ZmUyXHU2ZmU4XHU3MWUx'@; put 'XHU3MWYxXHU3MWU4XHU3MWYyXHU3MWU0XHU3MWYwXHU3MWUyXHU3MzczXHU3MzZlXHU3MzZmXHU3NDk3XHU3NGIyXHU3NGFiXHU3NDkwXHU3NGFhXHU3NGFkXHU3NGIxXHU3NGE1XHU3NGFmXHU3NTEwXHU3NTExXHU3NTEyXHU3NTBmXHU3NTg0XHU3NjQzXHU3NjQ4XHU3NjQ5XHU3NjQ3XHU3'@; put 'NmE0XHU3NmU5XHU3N2I1XHU3N2FiXHU3N2IyXHU3N2I3XHU3N2I2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2I0XHU3N2IxXHU3N2E4XHU3N2YwXHU3OGYzXHU3OGZkXHU3OTAyXHU3OGZiXHU3OGZjXHU3OGYyXHU3OTA1XHU3OGY5XHU3OGZlXHU3OTA0XHU3'@; put 'OWFiXHU3OWE4XHU3YTVjXHU3YTViXHU3YTU2XHU3YTU4XHU3YTU0XHU3YTVhXHU3YWJlXHU3YWMwXHU3YWMxXHU3YzA1XHU3YzBmXHU3YmYyXHU3YzAwXHU3YmZmXHU3YmZiXHU3YzBlXHU3YmY0XHU3YzBiXHU3YmYzXHU3YzAyXHU3YzA5XHU3YzAzXHU3YzAxXHU3YmY4XHU3YmZkXHU3YzA2'@; put 'XHU3YmYwXHU3YmYxXHU3YzEwXHU3YzBhXHU3Y2U4XHU3ZTJkXHU3ZTNjXHU3ZTQyXHU3ZTMzXHU5ODQ4XHU3ZTM4XHU3ZTJhXHU3ZTQ5XHU3ZTQwXHU3ZTQ3XHU3ZTI5XHU3ZTRjXHU3ZTMwXHU3ZTNiXHU3ZTM2XHU3ZTQ0XHU3ZTNhXHU3ZjQ1XHU3ZjdmXHU3ZjdlXHU3ZjdkXHU3ZmY0XHU3'@; put 'ZmYyXHU4MDJjXHU4MWJiXHU4MWM0XHU4MWNjXHU4MWNhXHU4MWM1XHU4MWM3XHU4MWJjXHU4MWU5XHU4MjViXHU4MjVhXHU4MjVjXHU4NTgzXHU4NTgwXHU4NThmXHU4NWE3XHU4NTk1XHU4NWEwXHU4NThiXHU4NWEzXHU4NTdiXHU4NWE0XHU4NTlhXHU4NTllXHVmZmZkIi5zcGxpdCgiIiks'@; put 'bT0wO20hPXhbMjM3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzN11bbV1dPTYwNjcyK20sRls2MDY3MittXT14WzIzN11bbV0pO2Zvcih4WzIzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ODU3N1x1ODU3Y1x1ODU4OVx1ODVhMVx1ODU3YVx1ODU3OFx1ODU1N1x1ODU4ZVx1ODU5Nlx1ODU4Nlx1ODU4ZFx1ODU5OVx1ODU5ZFx1ODU4MVx1ODVhMlx1ODU4Mlx1ODU4OFx1ODU4NVx1ODU3OVx1ODU3Nlx1ODU5OFx1ODU5MFx1ODU5Zlx1ODY2OFx1ODdiZVx1ODdhYVx1ODdh'@; put 'ZFx1ODdjNVx1ODdiMFx1ODdhY1x1ODdiOVx1ODdiNVx1ODdiY1x1ODdhZVx1ODdjOVx1ODdjM1x1ODdjMlx1ODdjY1x1ODdiN1x1ODdhZlx1ODdjNFx1ODdjYVx1ODdiNFx1ODdiNlx1ODdiZlx1ODdiOFx1ODdiZFx1ODdkZVx1ODdiMlx1ODkzNVx1ODkzM1x1ODkzY1x1ODkzZVx1ODk0MVx1'@; put 'ODk1Mlx1ODkzN1x1ODk0Mlx1ODlhZFx1ODlhZlx1ODlhZVx1ODlmMlx1ODlmM1x1OGIxZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGIxOFx1OGIxNlx1OGIxMVx1OGIwNVx1OGIwYlx1OGIyMlx1OGIwZlx1OGIxMlx1OGIxNVx1OGIwN1x1OGIwZFx1OGIwOFx1'@; put 'OGIwNlx1OGIxY1x1OGIxM1x1OGIxYVx1OGM0Zlx1OGM3MFx1OGM3Mlx1OGM3MVx1OGM2Zlx1OGM5NVx1OGM5NFx1OGNmOVx1OGQ2Zlx1OGU0ZVx1OGU0ZFx1OGU1M1x1OGU1MFx1OGU0Y1x1OGU0N1x1OGY0M1x1OGY0MFx1OTA4NVx1OTA3ZVx1OTEzOFx1OTE5YVx1OTFhMlx1OTE5Ylx1OTE5'@; put 'OVx1OTE5Zlx1OTFhMVx1OTE5ZFx1OTFhMFx1OTNhMVx1OTM4M1x1OTNhZlx1OTM2NFx1OTM1Nlx1OTM0N1x1OTM3Y1x1OTM1OFx1OTM1Y1x1OTM3Nlx1OTM0OVx1OTM1MFx1OTM1MVx1OTM2MFx1OTM2ZFx1OTM4Zlx1OTM0Y1x1OTM2YVx1OTM3OVx1OTM1N1x1OTM1NVx1OTM1Mlx1OTM0Zlx1'@; put 'OTM3MVx1OTM3N1x1OTM3Ylx1OTM2MVx1OTM1ZVx1OTM2M1x1OTM2N1x1OTM4MFx1OTM0ZVx1OTM1OVx1OTVjN1x1OTVjMFx1OTVjOVx1OTVjM1x1OTVjNVx1OTViN1x1OTZhZVx1OTZiMFx1OTZhY1x1OTcyMFx1OTcxZlx1OTcxOFx1OTcxZFx1OTcxOVx1OTc5YVx1OTdhMVx1OTc5Y1x1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLG09MDttIT14WzIzOF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzhdW21dXT02MDkyOCttLEZbNjA5MjgrbV09eFsyMzhdW21dKTtmb3IoeFsyMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdTk3OWVcdTk3OWRcdTk3ZDVcdTk3ZDRcdTk3ZjFcdTk4NDFcdTk4NDRcdTk4NGFcdTk4NDlcdTk4NDVcdTk4NDNcdTk5MjVcdTk5MmJcdTk5MmNcdTk5MmFcdTk5MzNcdTk5MzJcdTk5MmZcdTk5MmRcdTk5MzFcdTk5MzBcdTk5OThcdTk5YTNcdTk5YTFcdTlh'@; put 'MDJcdTk5ZmFcdTk5ZjRcdTk5ZjdcdTk5ZjlcdTk5ZjhcdTk5ZjZcdTk5ZmJcdTk5ZmRcdTk5ZmVcdTk5ZmNcdTlhMDNcdTlhYmVcdTlhZmVcdTlhZmRcdTliMDFcdTlhZmNcdTliNDhcdTliOWFcdTliYThcdTliOWVcdTliOWJcdTliYTZcdTliYTFcdTliYTVcdTliYTRcdTliODZcdTliYTJc'@; put 'dTliYTBcdTliYWZcdTlkMzNcdTlkNDFcdTlkNjdcdTlkMzZcdTlkMmVcdTlkMmZcdTlkMzFcdTlkMzhcdTlkMzBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkNDVcdTlkNDJcdTlkNDNcdTlkM2VcdTlkMzdcdTlkNDBcdTlkM2RcdTdmZjVcdTlkMmRcdTllOGFc'@; put 'dTllODlcdTllOGRcdTllYjBcdTllYzhcdTllZGFcdTllZmJcdTllZmZcdTlmMjRcdTlmMjNcdTlmMjJcdTlmNTRcdTlmYTBcdTUxMzFcdTUxMmRcdTUxMmVcdTU2OThcdTU2OWNcdTU2OTdcdTU2OWFcdTU2OWRcdTU2OTlcdTU5NzBcdTViM2NcdTVjNjlcdTVjNmFcdTVkYzBcdTVlNmRcdTVl'@; put 'NmVcdTYxZDhcdTYxZGZcdTYxZWRcdTYxZWVcdTYxZjFcdTYxZWFcdTYxZjBcdTYxZWJcdTYxZDZcdTYxZTlcdTY0ZmZcdTY1MDRcdTY0ZmRcdTY0ZjhcdTY1MDFcdTY1MDNcdTY0ZmNcdTY1OTRcdTY1ZGJcdTY2ZGFcdTY2ZGJcdTY2ZDhcdTZhYzVcdTZhYjlcdTZhYmRcdTZhZTFcdTZhYzZc'@; put 'dTZhYmFcdTZhYjZcdTZhYjdcdTZhYzdcdTZhYjRcdTZhYWRcdTZiNWVcdTZiYzlcdTZjMGJcdTcwMDdcdTcwMGNcdTcwMGRcdTcwMDFcdTcwMDVcdTcwMTRcdTcwMGVcdTZmZmZcdTcwMDBcdTZmZmJcdTcwMjZcdTZmZmNcdTZmZjdcdTcwMGFcdTcyMDFcdTcxZmZcdTcxZjlcdTcyMDNcdTcx'@; put 'ZmRcdTczNzZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzldLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM5XVttXV09NjExODQrbSxGWzYxMTg0K21dPXhbMjM5XVttXSk7Zm9yKHhbMjQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGI4XHU3NGMwXHU3NGI1XHU3NGMxXHU3NGJlXHU3NGI2XHU3NGJiXHU3NGMyXHU3NTE0XHU3NTEzXHU3NjVjXHU3NjY0XHU3NjU5XHU3NjUwXHU3NjUzXHU3NjU3XHU3NjVhXHU3NmE2XHU3NmJkXHU3NmVjXHU3N2MyXHU3N2JhXHU3'@; put 'OGZmXHU3OTBjXHU3OTEzXHU3OTE0XHU3OTA5XHU3OTEwXHU3OTEyXHU3OTExXHU3OWFkXHU3OWFjXHU3YTVmXHU3YzFjXHU3YzI5XHU3YzE5XHU3YzIwXHU3YzFmXHU3YzJkXHU3YzFkXHU3YzI2XHU3YzI4XHU3YzIyXHU3YzI1XHU3YzMwXHU3ZTVjXHU3ZTUwXHU3ZTU2XHU3ZTYzXHU3ZTU4'@; put 'XHU3ZTYyXHU3ZTVmXHU3ZTUxXHU3ZTYwXHU3ZTU3XHU3ZTUzXHU3ZmI1XHU3ZmIzXHU3ZmY3XHU3ZmY4XHU4MDc1XHU4MWQxXHU4MWQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MWQwXHU4MjVmXHU4MjVlXHU4NWI0XHU4NWM2XHU4NWMwXHU4NWMzXHU4NWMy'@; put 'XHU4NWIzXHU4NWI1XHU4NWJkXHU4NWM3XHU4NWM0XHU4NWJmXHU4NWNiXHU4NWNlXHU4NWM4XHU4NWM1XHU4NWIxXHU4NWI2XHU4NWQyXHU4NjI0XHU4NWI4XHU4NWI3XHU4NWJlXHU4NjY5XHU4N2U3XHU4N2U2XHU4N2UyXHU4N2RiXHU4N2ViXHU4N2VhXHU4N2U1XHU4N2RmXHU4N2YzXHU4'@; put 'N2U0XHU4N2Q0XHU4N2RjXHU4N2QzXHU4N2VkXHU4N2Q4XHU4N2UzXHU4N2E0XHU4N2Q3XHU4N2Q5XHU4ODAxXHU4N2Y0XHU4N2U4XHU4N2RkXHU4OTUzXHU4OTRiXHU4OTRmXHU4OTRjXHU4OTQ2XHU4OTUwXHU4OTUxXHU4OTQ5XHU4YjJhXHU4YjI3XHU4YjIzXHU4YjMzXHU4YjMwXHU4YjM1'@; put 'XHU4YjQ3XHU4YjJmXHU4YjNjXHU4YjNlXHU4YjMxXHU4YjI1XHU4YjM3XHU4YjI2XHU4YjM2XHU4YjJlXHU4YjI0XHU4YjNiXHU4YjNkXHU4YjNhXHU4YzQyXHU4Yzc1XHU4Yzk5XHU4Yzk4XHU4Yzk3XHU4Y2ZlXHU4ZDA0XHU4ZDAyXHU4ZDAwXHU4ZTVjXHU4ZTYyXHU4ZTYwXHU4ZTU3XHU4'@; put 'ZTU2XHU4ZTVlXHU4ZTY1XHU4ZTY3XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0MF1bbV1dPTYxNDQwK20sRls2MTQ0MCttXT14WzI0MF1bbV0pO2Zvcih4WzI0MV09Ilx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU1Ylx1OGU1YVx1OGU2MVx1OGU1ZFx1OGU2OVx1OGU1NFx1OGY0Nlx1OGY0N1x1OGY0OFx1OGY0Ylx1OTEyOFx1OTEzYVx1OTEzYlx1OTEzZVx1OTFhOFx1OTFhNVx1OTFhN1x1OTFhZlx1OTFhYVx1OTNiNVx1'@; put 'OTM4Y1x1OTM5Mlx1OTNiN1x1OTM5Ylx1OTM5ZFx1OTM4OVx1OTNhN1x1OTM4ZVx1OTNhYVx1OTM5ZVx1OTNhNlx1OTM5NVx1OTM4OFx1OTM5OVx1OTM5Zlx1OTM4ZFx1OTNiMVx1OTM5MVx1OTNiMlx1OTNhNFx1OTNhOFx1OTNiNFx1OTNhM1x1OTNhNVx1OTVkMlx1OTVkM1x1OTVkMVx1OTZi'@; put 'M1x1OTZkN1x1OTZkYVx1NWRjMlx1OTZkZlx1OTZkOFx1OTZkZFx1OTcyM1x1OTcyMlx1OTcyNVx1OTdhY1x1OTdhZVx1OTdhOFx1OTdhYlx1OTdhNFx1OTdhYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTdhMlx1OTdhNVx1OTdkN1x1OTdkOVx1OTdkNlx1OTdk'@; put 'OFx1OTdmYVx1OTg1MFx1OTg1MVx1OTg1Mlx1OThiOFx1OTk0MVx1OTkzY1x1OTkzYVx1OWEwZlx1OWEwYlx1OWEwOVx1OWEwZFx1OWEwNFx1OWExMVx1OWEwYVx1OWEwNVx1OWEwN1x1OWEwNlx1OWFjMFx1OWFkY1x1OWIwOFx1OWIwNFx1OWIwNVx1OWIyOVx1OWIzNVx1OWI0YVx1OWI0Y1x1'@; put 'OWI0Ylx1OWJjN1x1OWJjNlx1OWJjM1x1OWJiZlx1OWJjMVx1OWJiNVx1OWJiOFx1OWJkM1x1OWJiNlx1OWJjNFx1OWJiOVx1OWJiZFx1OWQ1Y1x1OWQ1M1x1OWQ0Zlx1OWQ0YVx1OWQ1Ylx1OWQ0Ylx1OWQ1OVx1OWQ1Nlx1OWQ0Y1x1OWQ1N1x1OWQ1Mlx1OWQ1NFx1OWQ1Zlx1OWQ1OFx1OWQ1'@; put 'YVx1OWU4ZVx1OWU4Y1x1OWVkZlx1OWYwMVx1OWYwMFx1OWYxNlx1OWYyNVx1OWYyYlx1OWYyYVx1OWYyOVx1OWYyOFx1OWY0Y1x1OWY1NVx1NTEzNFx1NTEzNVx1NTI5Nlx1NTJmN1x1NTNiNFx1NTZhYlx1NTZhZFx1NTZhNlx1NTZhN1x1NTZhYVx1NTZhY1x1NThkYVx1NThkZFx1NThkYlx1'@; put 'NTkxMlx1NWIzZFx1NWIzZVx1NWIzZlx1NWRjM1x1NWU3MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0MV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDFdW21dXT02MTY5NittLEZbNjE2OTYrbV09eFsyNDFdW21dKTtmb3IoeFsyNDJd'@; put 'PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVmYmZcdTYxZmJcdTY1MDdcdTY1MTBcdTY1MGRcdTY1MDlcdTY1MGNcdTY1MGVcdTY1ODRcdTY1ZGVcdTY1ZGRcdTY2ZGVcdTZhZTdcdTZhZTBcdTZhY2NcdTZhZDFcdTZhZDlcdTZhY2Jc'@; put 'dTZhZGZcdTZhZGNcdTZhZDBcdTZhZWJcdTZhY2ZcdTZhY2RcdTZhZGVcdTZiNjBcdTZiYjBcdTZjMGNcdTcwMTlcdTcwMjdcdTcwMjBcdTcwMTZcdTcwMmJcdTcwMjFcdTcwMjJcdTcwMjNcdTcwMjlcdTcwMTdcdTcwMjRcdTcwMWNcdTcwMmFcdTcyMGNcdTcyMGFcdTcyMDdcdTcyMDJcdTcy'@; put 'MDVcdTcyYTVcdTcyYTZcdTcyYTRcdTcyYTNcdTcyYTFcdTc0Y2JcdTc0YzVcdTc0YjdcdTc0YzNcdTc1MTZcdTc2NjBcdTc3YzlcdTc3Y2FcdTc3YzRcdTc3ZjFcdTc5MWRcdTc5MWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5MjFcdTc5MWNcdTc5MTdcdTc5'@; put 'MWVcdTc5YjBcdTdhNjdcdTdhNjhcdTdjMzNcdTdjM2NcdTdjMzlcdTdjMmNcdTdjM2JcdTdjZWNcdTdjZWFcdTdlNzZcdTdlNzVcdTdlNzhcdTdlNzBcdTdlNzdcdTdlNmZcdTdlN2FcdTdlNzJcdTdlNzRcdTdlNjhcdTdmNGJcdTdmNGFcdTdmODNcdTdmODZcdTdmYjdcdTdmZmRcdTdmZmVc'@; put 'dTgwNzhcdTgxZDdcdTgxZDVcdTgyNjRcdTgyNjFcdTgyNjNcdTg1ZWJcdTg1ZjFcdTg1ZWRcdTg1ZDlcdTg1ZTFcdTg1ZThcdTg1ZGFcdTg1ZDdcdTg1ZWNcdTg1ZjJcdTg1ZjhcdTg1ZDhcdTg1ZGZcdTg1ZTNcdTg1ZGNcdTg1ZDFcdTg1ZjBcdTg1ZTZcdTg1ZWZcdTg1ZGVcdTg1ZTJcdTg4'@; put 'MDBcdTg3ZmFcdTg4MDNcdTg3ZjZcdTg3ZjdcdTg4MDlcdTg4MGNcdTg4MGJcdTg4MDZcdTg3ZmNcdTg4MDhcdTg3ZmZcdTg4MGFcdTg4MDJcdTg5NjJcdTg5NWFcdTg5NWJcdTg5NTdcdTg5NjFcdTg5NWNcdTg5NThcdTg5NWRcdTg5NTlcdTg5ODhcdTg5YjdcdTg5YjZcdTg5ZjZcdThiNTBc'@; put 'dThiNDhcdThiNGFcdThiNDBcdThiNTNcdThiNTZcdThiNTRcdThiNGJcdThiNTVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0Ml1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQyXVttXV09NjE5NTIrbSxGWzYxOTUyK21dPXhbMjQyXVtt'@; put 'XSk7Zm9yKHhbMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjUxXHU4YjQyXHU4YjUyXHU4YjU3XHU4YzQzXHU4Yzc3XHU4Yzc2XHU4YzlhXHU4ZDA2XHU4ZDA3XHU4ZDA5XHU4ZGFjXHU4ZGFhXHU4ZGFkXHU4ZGFiXHU4ZTZk'@; put 'XHU4ZTc4XHU4ZTczXHU4ZTZhXHU4ZTZmXHU4ZTdiXHU4ZWMyXHU4ZjUyXHU4ZjUxXHU4ZjRmXHU4ZjUwXHU4ZjUzXHU4ZmI0XHU5MTQwXHU5MTNmXHU5MWIwXHU5MWFkXHU5M2RlXHU5M2M3XHU5M2NmXHU5M2MyXHU5M2RhXHU5M2QwXHU5M2Y5XHU5M2VjXHU5M2NjXHU5M2Q5XHU5M2E5XHU5'@; put 'M2U2XHU5M2NhXHU5M2Q0XHU5M2VlXHU5M2UzXHU5M2Q1XHU5M2M0XHU5M2NlXHU5M2MwXHU5M2QyXHU5M2U3XHU5NTdkXHU5NWRhXHU5NWRiXHU5NmUxXHU5NzI5XHU5NzJiXHU5NzJjXHU5NzI4XHU5NzI2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5N2IzXHU5'@; put 'N2I3XHU5N2I2XHU5N2RkXHU5N2RlXHU5N2RmXHU5ODVjXHU5ODU5XHU5ODVkXHU5ODU3XHU5OGJmXHU5OGJkXHU5OGJiXHU5OGJlXHU5OTQ4XHU5OTQ3XHU5OTQzXHU5OWE2XHU5OWE3XHU5YTFhXHU5YTE1XHU5YTI1XHU5YTFkXHU5YTI0XHU5YTFiXHU5YTIyXHU5YTIwXHU5YTI3XHU5YTIz'@; put 'XHU5YTFlXHU5YTFjXHU5YTE0XHU5YWMyXHU5YjBiXHU5YjBhXHU5YjBlXHU5YjBjXHU5YjM3XHU5YmVhXHU5YmViXHU5YmUwXHU5YmRlXHU5YmU0XHU5YmU2XHU5YmUyXHU5YmYwXHU5YmQ0XHU5YmQ3XHU5YmVjXHU5YmRjXHU5YmQ5XHU5YmU1XHU5YmQ1XHU5YmUxXHU5YmRhXHU5ZDc3XHU5'@; put 'ZDgxXHU5ZDhhXHU5ZDg0XHU5ZDg4XHU5ZDcxXHU5ZDgwXHU5ZDc4XHU5ZDg2XHU5ZDhiXHU5ZDhjXHU5ZDdkXHU5ZDZiXHU5ZDc0XHU5ZDc1XHU5ZDcwXHU5ZDY5XHU5ZDg1XHU5ZDczXHU5ZDdiXHU5ZDgyXHU5ZDZmXHU5ZDc5XHU5ZDdmXHU5ZDg3XHU5ZDY4XHU5ZTk0XHU5ZTkxXHU5ZWMw'@; put 'XHU5ZWZjXHU5ZjJkXHU5ZjQwXHU5ZjQxXHU5ZjRkXHU5ZjU2XHU5ZjU3XHU5ZjU4XHU1MzM3XHU1NmIyXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0M11bbV1dPTYyMjA4K20sRls2MjIw'@; put 'OCttXT14WzI0M11bbV0pO2Zvcih4WzI0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTZiNVx1NTZiM1x1NThlM1x1NWI0NVx1NWRjNlx1NWRjN1x1NWVlZVx1NWVlZlx1NWZjMFx1NWZjMVx1NjFmOVx1NjUxN1x1NjUxNlx1NjUx'@; put 'NVx1NjUxM1x1NjVkZlx1NjZlOFx1NjZlM1x1NjZlNFx1NmFmM1x1NmFmMFx1NmFlYVx1NmFlOFx1NmFmOVx1NmFmMVx1NmFlZVx1NmFlZlx1NzAzY1x1NzAzNVx1NzAyZlx1NzAzN1x1NzAzNFx1NzAzMVx1NzA0Mlx1NzAzOFx1NzAzZlx1NzAzYVx1NzAzOVx1NzA0MFx1NzAzYlx1NzAzM1x1'@; put 'NzA0MVx1NzIxM1x1NzIxNFx1NzJhOFx1NzM3ZFx1NzM3Y1x1NzRiYVx1NzZhYlx1NzZhYVx1NzZiZVx1NzZlZFx1NzdjY1x1NzdjZVx1NzdjZlx1NzdjZFx1NzdmMlx1NzkyNVx1NzkyM1x1NzkyN1x1NzkyOFx1NzkyNFx1NzkyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1NzliMlx1N2E2ZVx1N2E2Y1x1N2E2ZFx1N2FmN1x1N2M0OVx1N2M0OFx1N2M0YVx1N2M0N1x1N2M0NVx1N2NlZVx1N2U3Ylx1N2U3ZVx1N2U4MVx1N2U4MFx1N2ZiYVx1N2ZmZlx1ODA3OVx1ODFkYlx1ODFkOVx1ODIwYlx1ODI2OFx1ODI2OVx1ODYyMlx1ODVmZlx1ODYwMVx1ODVm'@; put 'ZVx1ODYxYlx1ODYwMFx1ODVmNlx1ODYwNFx1ODYwOVx1ODYwNVx1ODYwY1x1ODVmZFx1ODgxOVx1ODgxMFx1ODgxMVx1ODgxN1x1ODgxM1x1ODgxNlx1ODk2M1x1ODk2Nlx1ODliOVx1ODlmN1x1OGI2MFx1OGI2YVx1OGI1ZFx1OGI2OFx1OGI2M1x1OGI2NVx1OGI2N1x1OGI2ZFx1OGRhZVx1'@; put 'OGU4Nlx1OGU4OFx1OGU4NFx1OGY1OVx1OGY1Nlx1OGY1N1x1OGY1NVx1OGY1OFx1OGY1YVx1OTA4ZFx1OTE0M1x1OTE0MVx1OTFiN1x1OTFiNVx1OTFiMlx1OTFiM1x1OTQwYlx1OTQxM1x1OTNmYlx1OTQyMFx1OTQwZlx1OTQxNFx1OTNmZVx1OTQxNVx1OTQxMFx1OTQyOFx1OTQxOVx1OTQw'@; put 'ZFx1OTNmNVx1OTQwMFx1OTNmN1x1OTQwN1x1OTQwZVx1OTQxNlx1OTQxMlx1OTNmYVx1OTQwOVx1OTNmOFx1OTQwYVx1OTNmZlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0NF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQ0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDRdW21dXT02'@; put 'MjQ2NCttLEZbNjI0NjQrbV09eFsyNDRdW21dKTtmb3IoeFsyNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzZmNcdTk0MGNcdTkzZjZcdTk0MTFcdTk0MDZcdTk1ZGVcdTk1ZTBcdTk1ZGZcdTk3MmVcdTk3MmZcdTk3YjlcdTk3'@; put 'YmJcdTk3ZmRcdTk3ZmVcdTk4NjBcdTk4NjJcdTk4NjNcdTk4NWZcdTk4YzFcdTk4YzJcdTk5NTBcdTk5NGVcdTk5NTlcdTk5NGNcdTk5NGJcdTk5NTNcdTlhMzJcdTlhMzRcdTlhMzFcdTlhMmNcdTlhMmFcdTlhMzZcdTlhMjlcdTlhMmVcdTlhMzhcdTlhMmRcdTlhYzdcdTlhY2FcdTlhYzZc'@; put 'dTliMTBcdTliMTJcdTliMTFcdTljMGJcdTljMDhcdTliZjdcdTljMDVcdTljMTJcdTliZjhcdTljNDBcdTljMDdcdTljMGVcdTljMDZcdTljMTdcdTljMTRcdTljMDlcdTlkOWZcdTlkOTlcdTlkYTRcdTlkOWRcdTlkOTJcdTlkOThcdTlkOTBcdTlkOWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdTlkYTBcdTlkOTRcdTlkOWNcdTlkYWFcdTlkOTdcdTlkYTFcdTlkOWFcdTlkYTJcdTlkYThcdTlkOWVcdTlkYTNcdTlkYmZcdTlkYTlcdTlkOTZcdTlkYTZcdTlkYTdcdTllOTlcdTllOWJcdTllOWFcdTllZTVcdTllZTRcdTllZTdcdTllZTZcdTlmMzBcdTlm'@; put 'MmVcdTlmNWJcdTlmNjBcdTlmNWVcdTlmNWRcdTlmNTlcdTlmOTFcdTUxM2FcdTUxMzlcdTUyOThcdTUyOTdcdTU2YzNcdTU2YmRcdTU2YmVcdTViNDhcdTViNDdcdTVkY2JcdTVkY2ZcdTVlZjFcdTYxZmRcdTY1MWJcdTZiMDJcdTZhZmNcdTZiMDNcdTZhZjhcdTZiMDBcdTcwNDNcdTcwNDRc'@; put 'dTcwNGFcdTcwNDhcdTcwNDlcdTcwNDVcdTcwNDZcdTcyMWRcdTcyMWFcdTcyMTlcdTczN2VcdTc1MTdcdTc2NmFcdTc3ZDBcdTc5MmRcdTc5MzFcdTc5MmZcdTdjNTRcdTdjNTNcdTdjZjJcdTdlOGFcdTdlODdcdTdlODhcdTdlOGJcdTdlODZcdTdlOGRcdTdmNGRcdTdmYmJcdTgwMzBcdTgx'@; put 'ZGRcdTg2MThcdTg2MmFcdTg2MjZcdTg2MWZcdTg2MjNcdTg2MWNcdTg2MTlcdTg2MjdcdTg2MmVcdTg2MjFcdTg2MjBcdTg2MjlcdTg2MWVcdTg2MjVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0NV1bbV0uY2hhckNvZGVBdCgwKSYmKGFl'@; put 'W3hbMjQ1XVttXV09NjI3MjArbSxGWzYyNzIwK21dPXhbMjQ1XVttXSk7Zm9yKHhbMjQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ODI5XHU4ODFkXHU4ODFiXHU4ODIwXHU4ODI0XHU4ODFjXHU4ODJiXHU4ODRhXHU4OTZkXHU4'@; put 'OTY5XHU4OTZlXHU4OTZiXHU4OWZhXHU4Yjc5XHU4Yjc4XHU4YjQ1XHU4YjdhXHU4YjdiXHU4ZDEwXHU4ZDE0XHU4ZGFmXHU4ZThlXHU4ZThjXHU4ZjVlXHU4ZjViXHU4ZjVkXHU5MTQ2XHU5MTQ0XHU5MTQ1XHU5MWI5XHU5NDNmXHU5NDNiXHU5NDM2XHU5NDI5XHU5NDNkXHU5NDNjXHU5NDMw'@; put 'XHU5NDM5XHU5NDJhXHU5NDM3XHU5NDJjXHU5NDQwXHU5NDMxXHU5NWU1XHU5NWU0XHU5NWUzXHU5NzM1XHU5NzNhXHU5N2JmXHU5N2UxXHU5ODY0XHU5OGM5XHU5OGM2XHU5OGMwXHU5OTU4XHU5OTU2XHU5YTM5XHU5YTNkXHU5YTQ2XHU5YTQ0XHU5YTQyXHU5YTQxXHU5YTNhXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YTNmXHU5YWNkXHU5YjE1XHU5YjE3XHU5YjE4XHU5YjE2XHU5YjNhXHU5YjUyXHU5YzJiXHU5YzFkXHU5YzFjXHU5YzJjXHU5YzIzXHU5YzI4XHU5YzI5XHU5YzI0XHU5YzIxXHU5ZGI3XHU5ZGI2XHU5ZGJjXHU5ZGMxXHU5ZGM3XHU5'@; put 'ZGNhXHU5ZGNmXHU5ZGJlXHU5ZGM1XHU5ZGMzXHU5ZGJiXHU5ZGI1XHU5ZGNlXHU5ZGI5XHU5ZGJhXHU5ZGFjXHU5ZGM4XHU5ZGIxXHU5ZGFkXHU5ZGNjXHU5ZGIzXHU5ZGNkXHU5ZGIyXHU5ZTdhXHU5ZTljXHU5ZWViXHU5ZWVlXHU5ZWVkXHU5ZjFiXHU5ZjE4XHU5ZjFhXHU5ZjMxXHU5ZjRl'@; put 'XHU5ZjY1XHU5ZjY0XHU5ZjkyXHU0ZWI5XHU1NmM2XHU1NmM1XHU1NmNiXHU1OTcxXHU1YjRiXHU1YjRjXHU1ZGQ1XHU1ZGQxXHU1ZWYyXHU2NTIxXHU2NTIwXHU2NTI2XHU2NTIyXHU2YjBiXHU2YjA4XHU2YjA5XHU2YzBkXHU3MDU1XHU3MDU2XHU3MDU3XHU3MDUyXHU3MjFlXHU3MjFmXHU3'@; put 'MmE5XHU3MzdmXHU3NGQ4XHU3NGQ1XHU3NGQ5XHU3NGQ3XHU3NjZkXHU3NmFkXHU3OTM1XHU3OWI0XHU3YTcwXHU3YTcxXHU3YzU3XHU3YzVjXHU3YzU5XHU3YzViXHU3YzVhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQ2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDZdW21dLmNoYXJD'@; put 'b2RlQXQoMCkmJihhZVt4WzI0Nl1bbV1dPTYyOTc2K20sRls2Mjk3NittXT14WzI0Nl1bbV0pO2Zvcih4WzI0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2NmNFx1N2NmMVx1N2U5MVx1N2Y0Zlx1N2Y4N1x1ODFkZVx1ODI2Ylx1'@; put 'ODYzNFx1ODYzNVx1ODYzM1x1ODYyY1x1ODYzMlx1ODYzNlx1ODgyY1x1ODgyOFx1ODgyNlx1ODgyYVx1ODgyNVx1ODk3MVx1ODliZlx1ODliZVx1ODlmYlx1OGI3ZVx1OGI4NFx1OGI4Mlx1OGI4Nlx1OGI4NVx1OGI3Zlx1OGQxNVx1OGU5NVx1OGU5NFx1OGU5YVx1OGU5Mlx1OGU5MFx1OGU5'@; put 'Nlx1OGU5N1x1OGY2MFx1OGY2Mlx1OTE0N1x1OTQ0Y1x1OTQ1MFx1OTQ0YVx1OTQ0Ylx1OTQ0Zlx1OTQ0N1x1OTQ0NVx1OTQ0OFx1OTQ0OVx1OTQ0Nlx1OTczZlx1OTdlM1x1OTg2YVx1OTg2OVx1OThjYlx1OTk1NFx1OTk1Ylx1OWE0ZVx1OWE1M1x1OWE1NFx1OWE0Y1x1OWE0Zlx1OWE0OFx1'@; put 'OWE0YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWE0OVx1OWE1Mlx1OWE1MFx1OWFkMFx1OWIxOVx1OWIyYlx1OWIzYlx1OWI1Nlx1OWI1NVx1OWM0Nlx1OWM0OFx1OWMzZlx1OWM0NFx1OWMzOVx1OWMzM1x1OWM0MVx1OWMzY1x1OWMzN1x1OWMzNFx1OWMzMlx1'@; put 'OWMzZFx1OWMzNlx1OWRkYlx1OWRkMlx1OWRkZVx1OWRkYVx1OWRjYlx1OWRkMFx1OWRkY1x1OWRkMVx1OWRkZlx1OWRlOVx1OWRkOVx1OWRkOFx1OWRkNlx1OWRmNVx1OWRkNVx1OWRkZFx1OWViNlx1OWVmMFx1OWYzNVx1OWYzM1x1OWYzMlx1OWY0Mlx1OWY2Ylx1OWY5NVx1OWZhMlx1NTEz'@; put 'ZFx1NTI5OVx1NThlOFx1NThlN1x1NTk3Mlx1NWI0ZFx1NWRkOFx1ODgyZlx1NWY0Zlx1NjIwMVx1NjIwM1x1NjIwNFx1NjUyOVx1NjUyNVx1NjU5Nlx1NjZlYlx1NmIxMVx1NmIxMlx1NmIwZlx1NmJjYVx1NzA1Ylx1NzA1YVx1NzIyMlx1NzM4Mlx1NzM4MVx1NzM4M1x1NzY3MFx1NzdkNFx1'@; put 'N2M2N1x1N2M2Nlx1N2U5NVx1ODI2Y1x1ODYzYVx1ODY0MFx1ODYzOVx1ODYzY1x1ODYzMVx1ODYzYlx1ODYzZVx1ODgzMFx1ODgzMlx1ODgyZVx1ODgzM1x1ODk3Nlx1ODk3NFx1ODk3M1x1ODlmZVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhb'@; put 'MjQ3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDddW21dXT02MzIzMittLEZbNjMyMzIrbV09eFsyNDddW21dKTtmb3IoeFsyNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiOGNcdThiOGVcdThiOGJcdThiODhcdThjNDVc'@; put 'dThkMTlcdThlOThcdThmNjRcdThmNjNcdTkxYmNcdTk0NjJcdTk0NTVcdTk0NWRcdTk0NTdcdTk0NWVcdTk3YzRcdTk3YzVcdTk4MDBcdTlhNTZcdTlhNTlcdTliMWVcdTliMWZcdTliMjBcdTljNTJcdTljNThcdTljNTBcdTljNGFcdTljNGRcdTljNGJcdTljNTVcdTljNTlcdTljNGNcdTlj'@; put 'NGVcdTlkZmJcdTlkZjdcdTlkZWZcdTlkZTNcdTlkZWJcdTlkZjhcdTlkZTRcdTlkZjZcdTlkZTFcdTlkZWVcdTlkZTZcdTlkZjJcdTlkZjBcdTlkZTJcdTlkZWNcdTlkZjRcdTlkZjNcdTlkZThcdTlkZWRcdTllYzJcdTllZDBcdTllZjJcdTllZjNcdTlmMDZcdTlmMWNcdTlmMzhcdTlmMzdc'@; put 'dTlmMzZcdTlmNDNcdTlmNGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlmNzFcdTlmNzBcdTlmNmVcdTlmNmZcdTU2ZDNcdTU2Y2RcdTViNGVcdTVjNmRcdTY1MmRcdTY2ZWRcdTY2ZWVcdTZiMTNcdTcwNWZcdTcwNjFcdTcwNWRcdTcwNjBcdTcyMjNcdTc0ZGJc'@; put 'dTc0ZTVcdTc3ZDVcdTc5MzhcdTc5YjdcdTc5YjZcdTdjNmFcdTdlOTdcdTdmODlcdTgyNmRcdTg2NDNcdTg4MzhcdTg4MzdcdTg4MzVcdTg4NGJcdThiOTRcdThiOTVcdThlOWVcdThlOWZcdThlYTBcdThlOWRcdTkxYmVcdTkxYmRcdTkxYzJcdTk0NmJcdTk0NjhcdTk0NjlcdTk2ZTVcdTk3'@; put 'NDZcdTk3NDNcdTk3NDdcdTk3YzdcdTk3ZTVcdTlhNWVcdTlhZDVcdTliNTlcdTljNjNcdTljNjdcdTljNjZcdTljNjJcdTljNWVcdTljNjBcdTllMDJcdTlkZmVcdTllMDdcdTllMDNcdTllMDZcdTllMDVcdTllMDBcdTllMDFcdTllMDlcdTlkZmZcdTlkZmRcdTllMDRcdTllYTBcdTlmMWVc'@; put 'dTlmNDZcdTlmNzRcdTlmNzVcdTlmNzZcdTU2ZDRcdTY1MmVcdTY1YjhcdTZiMThcdTZiMTlcdTZiMTdcdTZiMWFcdTcwNjJcdTcyMjZcdTcyYWFcdTc3ZDhcdTc3ZDlcdTc5MzlcdTdjNjlcdTdjNmJcdTdjZjZcdTdlOWFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDhdLmxlbmd0aDsr'@; put 'K20pNjU1MzMhPT14WzI0OF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQ4XVttXV09NjM0ODgrbSxGWzYzNDg4K21dPXhbMjQ4XVttXSk7Zm9yKHhbMjQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTk4XHU3ZTliXHU3ZTk5'@; put 'XHU4MWUwXHU4MWUxXHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4OTc5XHU4OTdhXHU4OTdjXHU4OTdiXHU4OWZmXHU4Yjk4XHU4Yjk5XHU4ZWE1XHU4ZWE0XHU4ZWEzXHU5NDZlXHU5NDZkXHU5NDZmXHU5NDcxXHU5NDczXHU5NzQ5XHU5ODcyXHU5OTVmXHU5YzY4XHU5YzZlXHU5YzZkXHU5ZTBiXHU5'@; put 'ZTBkXHU5ZTEwXHU5ZTBmXHU5ZTEyXHU5ZTExXHU5ZWExXHU5ZWY1XHU5ZjA5XHU5ZjQ3XHU5Zjc4XHU5ZjdiXHU5ZjdhXHU5Zjc5XHU1NzFlXHU3MDY2XHU3YzZmXHU4ODNjXHU4ZGIyXHU4ZWE2XHU5MWMzXHU5NDc0XHU5NDc4XHU5NDc2XHU5NDc1XHU5YTYwXHU5Yzc0XHU5YzczXHU5Yzcx'@; put 'XHU5Yzc1XHU5ZTE0XHU5ZTEzXHU5ZWY2XHU5ZjBhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZmE0XHU3MDY4XHU3MDY1XHU3Y2Y3XHU4NjZhXHU4ODNlXHU4ODNkXHU4ODNmXHU4YjllXHU4YzljXHU4ZWE5XHU4ZWM5XHU5NzRiXHU5ODczXHU5ODc0XHU5OGNj'@; put 'XHU5OTYxXHU5OWFiXHU5YTY0XHU5YTY2XHU5YTY3XHU5YjI0XHU5ZTE1XHU5ZTE3XHU5ZjQ4XHU2MjA3XHU2YjFlXHU3MjI3XHU4NjRjXHU4ZWE4XHU5NDgyXHU5NDgwXHU5NDgxXHU5YTY5XHU5YTY4XHU5YjJlXHU5ZTE5XHU3MjI5XHU4NjRiXHU4YjlmXHU5NDgzXHU5Yzc5XHU5ZWI3XHU3'@; put 'Njc1XHU5YTZiXHU5YzdhXHU5ZTFkXHU3MDY5XHU3MDZhXHU5ZWE0XHU5ZjdlXHU5ZjQ5XHU5Zjk4XHU3ODgxXHU5MmI5XHU4OGNmXHU1OGJiXHU2MDUyXHU3Y2E3XHU1YWZhXHUyNTU0XHUyNTY2XHUyNTU3XHUyNTYwXHUyNTZjXHUyNTYzXHUyNTVhXHUyNTY5XHUyNTVkXHUyNTUyXHUyNTY0'@; put 'XHUyNTU1XHUyNTVlXHUyNTZhXHUyNTYxXHUyNTU4XHUyNTY3XHUyNTViXHUyNTUzXHUyNTY1XHUyNTU2XHUyNTVmXHUyNTZiXHUyNTYyXHUyNTU5XHUyNTY4XHUyNTVjXHUyNTUxXHUyNTUwXHUyNTZkXHUyNTZlXHUyNTcwXHUyNTZmXHUyNTkzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhb'@; put 'MjQ5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0OV1bbV1dPTYzNzQ0K20sRls2Mzc0NCttXT14WzI0OV1bbV0pO3JldHVybntlbmM6YWUsZGVjOkZ9fSgpLEllWzEyNTBdPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4'@; put 'MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9g'@; put 'YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1YVx1MDE2NFx1MDE3ZFx1MDE3OVx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAy'@; put 'Mlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDE2MVx1MjAzYVx1MDE1Ylx1MDE2NVx1MDE3ZVx1MDE3YVx4YTBcdTAyYzdcdTAyZDhcdTAxNDFceGE0XHUwMTA0XHhhNlx4YTdceGE4XHhhOVx1MDE1ZVx4YWJceGFjXHhhZFx4YWVcdTAxN2JceGIwXHhiMVx1MDJkYlx1MDE0Mlx4YjRceGI1'@; put 'XHhiNlx4YjdceGI4XHUwMTA1XHUwMTVmXHhiYlx1MDEzZFx1MDJkZFx1MDEzZVx1MDE3Y1x1MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQzXHUwMTQ3XHhkM1x4ZDRcdTAxNTBc'@; put 'eGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBceGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVceGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhlZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0OFx4ZjNceGY0XHUwMTUxXHhmNlx4'@; put 'ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4ZmRcdTAxNjNcdTAyZDkiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVsxMjUx'@; put 'XT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5'@; put 'Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTA0MDJcdTA0MDNcdTIwMWFcdTA0NTNcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTIwYWNcdTIwMzBcdTA0MDlcdTIwMzlcdTA0MGFcdTA0MGNcdTA0MGJc'@; put 'dTA0MGZcdTA0NTJcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdTA0NTlcdTIwM2FcdTA0NWFcdTA0NWNcdTA0NWJcdTA0NWZceGEwXHUwNDBlXHUwNDVlXHUwNDA4XHhhNFx1MDQ5MFx4YTZceGE3XHUwNDAxXHhhOVx1MDQwNFx4YWJceGFj'@; put 'XHhhZFx4YWVcdTA0MDdceGIwXHhiMVx1MDQwNlx1MDQ1Nlx1MDQ5MVx4YjVceGI2XHhiN1x1MDQ1MVx1MjExNlx1MDQ1NFx4YmJcdTA0NThcdTA0MDVcdTA0NTVcdTA0NTdcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFc'@; put 'dTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0'@; put 'MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGYiLGFlPVtdLHg9e30s'@; put 'bT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVsxMjUyXT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJc'@; put 'dFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3Bx'@; put 'cnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJcdWZmZmRcdTAxN2RcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAy'@; put 'ZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNcdWZmZmRcdTAxN2VcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRc'@; put 'eGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZceGQwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4'@; put 'ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx4ZjBceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHhmZVx4ZmYiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0p'@; put 'XT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVsxMjUzXT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThc'@; put 'eDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZc'@; put 'dTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwMzg1'@; put 'XHUwMzg2XHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1ZmZmZFx4YWJceGFjXHhhZFx4YWVcdTIwMTVceGIwXHhiMVx4YjJceGIzXHUwMzg0XHhiNVx4YjZceGI3XHUwMzg4XHUwMzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRcdTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNc'@; put 'dTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAz'@; put 'YWZcdTAzYjBcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2Fc'@; put 'dTAzY2JcdTAzY2NcdTAzY2RcdTAzY2VcdWZmZmQiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVsxMjU0XT1mdW5jdGlvbigpe2Zv'@; put 'cih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdI'@; put 'SUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIw'@; put 'MThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNcdWZmZmRcdWZmZmRcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhi'@; put 'M1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxMWVceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4'@; put 'ZGNcdTAxMzBcdTAxNWVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDExZlx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDEzMVx1MDE1Zlx4ZmYiLGFlPVtdLHg9e30s'@; put 'bT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVsxMjU1XT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJc'@; put 'dFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3Bx'@; put 'cnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAy'@; put 'ZGNcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHhhMVx4YTJceGEzXHUyMGFhXHhhNVx4YTZceGE3XHhhOFx4YTlceGQ3XHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhmN1x4YmJceGJjXHhi'@; put 'ZFx4YmVceGJmXHUwNWIwXHUwNWIxXHUwNWIyXHUwNWIzXHUwNWI0XHUwNWI1XHUwNWI2XHUwNWI3XHUwNWI4XHUwNWI5XHVmZmZkXHUwNWJiXHUwNWJjXHUwNWJkXHUwNWJlXHUwNWJmXHUwNWMwXHUwNWMxXHUwNWMyXHUwNWMzXHUwNWYwXHUwNWYxXHUwNWYyXHUwNWYzXHUwNWY0XHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNWQwXHUwNWQxXHUwNWQyXHUwNWQzXHUwNWQ0XHUwNWQ1XHUwNWQ2XHUwNWQ3XHUwNWQ4XHUwNWQ5XHUwNWRhXHUwNWRiXHUwNWRjXHUwNWRkXHUwNWRlXHUwNWRmXHUwNWUwXHUwNWUxXHUwNWUyXHUwNWUzXHUwNWU0XHUw'@; put 'NWU1XHUwNWU2XHUwNWU3XHUwNWU4XHUwNWU5XHUwNWVhXHVmZmZkXHVmZmZkXHUyMDBlXHUyMDBmXHVmZmZkIixhZT1bXSx4PXt9LG09MDsyNTYhPW07KyttKTY1NTMzIT09Ri5jaGFyQ29kZUF0KG0pJiYoeFtGLmNoYXJBdChtKV09bSksYWVbbV09Ri5jaGFyQXQobSk7cmV0dXJue2VuYzp4'@; put 'LGRlYzphZX19KCksSWVbMTI1Nl09ZnVuY3Rpb24oKXtmb3IodmFyIEY9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUm'@; put 'JygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHUwNjdlXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwNjc5XHUyMDM5'@; put 'XHUwMTUyXHUwNjg2XHUwNjk4XHUwNjg4XHUwNmFmXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNmE5XHUyMTIyXHUwNjkxXHUyMDNhXHUwMTUzXHUyMDBjXHUyMDBkXHUwNmJhXHhhMFx1MDYwY1x4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHUw'@; put 'NmJlXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHUwNjFiXHhiYlx4YmNceGJkXHhiZVx1MDYxZlx1MDZjMVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1'@; put 'MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx4ZDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNceGUwXHUwNjQ0XHhlMlx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx4ZTdceGU4XHhl'@; put 'OVx4ZWFceGViXHUwNjQ5XHUwNjRhXHhlZVx4ZWZcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVceGY0XHUwNjRmXHUwNjUwXHhmN1x1MDY1MVx4ZjlcdTA2NTJceGZiXHhmY1x1MjAwZVx1MjAwZlx1MDZkMiIsYWU9W10seD17fSxtPTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdCht'@; put 'KSYmKHhbRi5jaGFyQXQobSldPW0pLGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzEyNTddPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0'@; put 'XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1'@; put 'ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1ZmZmZFx1MjAzOVx1ZmZmZFx4YThcdTAyYzdceGI4XHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHVmZmZkXHUyMDNhXHVmZmZkXHhhZlx1MDJkYlx1ZmZm'@; put 'ZFx4YTBcdWZmZmRceGEyXHhhM1x4YTRcdWZmZmRceGE2XHhhN1x4ZDhceGE5XHUwMTU2XHhhYlx4YWNceGFkXHhhZVx4YzZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4ZjhceGI5XHUwMTU3XHhiYlx4YmNceGJkXHhiZVx4ZTZcdTAxMDRcdTAxMmVcdTAxMDBcdTAxMDZceGM0'@; put 'XHhjNVx1MDExOFx1MDExMlx1MDEwY1x4YzlcdTAxNzlcdTAxMTZcdTAxMjJcdTAxMzZcdTAxMmFcdTAxM2JcdTAxNjBcdTAxNDNcdTAxNDVceGQzXHUwMTRjXHhkNVx4ZDZceGQ3XHUwMTcyXHUwMTQxXHUwMTVhXHUwMTZhXHhkY1x1MDE3Ylx1MDE3ZFx4ZGZcdTAxMDVcdTAxMmZcdTAxMDFc'@; put 'dTAxMDdceGU0XHhlNVx1MDExOVx1MDExM1x1MDEwZFx4ZTlcdTAxN2FcdTAxMTdcdTAxMjNcdTAxMzdcdTAxMmJcdTAxM2NcdTAxNjFcdTAxNDRcdTAxNDZceGYzXHUwMTRkXHhmNVx4ZjZceGY3XHUwMTczXHUwMTQyXHUwMTViXHUwMTZiXHhmY1x1MDE3Y1x1MDE3ZVx1MDJkOSIsYWU9W10s'@; put 'eD17fSxtPTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5jaGFyQXQobSldPW0pLGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzEyNThdPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4'@; put 'MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamts'@; put 'bW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1ZmZmZFx1MjAzOVx1MDE1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAx'@; put 'NFx1MDJkY1x1MjEyMlx1ZmZmZFx1MjAzYVx1MDE1M1x1ZmZmZFx1ZmZmZFx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJj'@; put 'XHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHUwMTAyXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JcdTAzMDBceGNkXHhjZVx4Y2ZcdTAxMTBceGQxXHUwMzA5XHhkM1x4ZDRcdTAxYTBceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMWFmXHUwMzAzXHhkZlx4ZTBceGUxXHhl'@; put 'Mlx1MDEwM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHUwMzAxXHhlZFx4ZWVceGVmXHUwMTExXHhmMVx1MDMyM1x4ZjNceGY0XHUwMWExXHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDFiMFx1MjBhYlx4ZmYiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMh'@; put 'PT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVsxZTRdPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBc'@; put 'eDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRc'@; put 'eGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4'@; put 'YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhh'@; put 'MFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx1ZmIwMVx1ZmIwMlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4'@; put 'Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyIsYWU9W10seD17fSxtPTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5j'@; put 'aGFyQXQobSldPW0pLGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzEwMDA2XT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2'@; put 'XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM0XHhiOVx4YjJceGM5XHhiM1x4ZDZceGRj'@; put 'XHUwMzg1XHhlMFx4ZTJceGU0XHUwMzg0XHhhOFx4ZTdceGU5XHhlOFx4ZWFceGViXHhhM1x1MjEyMlx4ZWVceGVmXHUyMDIyXHhiZFx1MjAzMFx4ZjRceGY2XHhhNlx4YWRceGY5XHhmYlx4ZmNcdTIwMjBcdTAzOTNcdTAzOTRcdTAzOThcdTAzOWJcdTAzOWVcdTAzYTBceGRmXHhhZVx4YTlc'@; put 'dTAzYTNcdTAzYWFceGE3XHUyMjYwXHhiMFx1MDM4N1x1MDM5MVx4YjFcdTIyNjRcdTIyNjVceGE1XHUwMzkyXHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk5XHUwMzlhXHUwMzljXHUwM2E2XHUwM2FiXHUwM2E4XHUwM2E5XHUwM2FjXHUwMzlkXHhhY1x1MDM5Zlx1MDNhMVx1MjI0OFx1MDNhNFx4'@; put 'YWJceGJiXHUyMDI2XHhhMFx1MDNhNVx1MDNhN1x1MDM4Nlx1MDM4OFx1MDE1M1x1MjAxM1x1MjAxNVx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTAzODlcdTAzOGFcdTAzOGNcdTAzOGVcdTAzYWRcdTAzYWVcdTAzYWZcdTAzY2NcdTAzOGZcdTAzY2RcdTAzYjFcdTAzYjJcdTAzYzhc'@; put 'dTAzYjRcdTAzYjVcdTAzYzZcdTAzYjNcdTAzYjdcdTAzYjlcdTAzYmVcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmZcdTAzYzBcdTAzY2VcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYjhcdTAzYzlcdTAzYzJcdTAzYzdcdTAzYzVcdTAzYjZcdTAzY2FcdTAzY2JcdTAzOTBcdTAzYjBcdWZm'@; put 'ZmQiLGFlPVtdLHg9e30sbT0wOzI1NiE9bTsrK20pNjU1MzMhPT1GLmNoYXJDb2RlQXQobSkmJih4W0YuY2hhckF0KG0pXT1tKSxhZVttXT1GLmNoYXJBdChtKTtyZXR1cm57ZW5jOngsZGVjOmFlfX0oKSxJZVsxMDAwN109ZnVuY3Rpb24oKXtmb3IodmFyIEY9IlwwXHgwMVx4MDJceDAzXHgw'@; put 'NFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2Bh'@; put 'YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1'@; put 'XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZcdTA0MDZceGFlXHhhOVx1MjEyMlx1MDQwMlx1MDQ1Mlx1MjI2MFx1MDQwM1x1MDQ1M1x1MjIxZVx4YjFcdTIyNjRcdTIyNjVc'@; put 'dTA0NTZceGI1XHUyMjAyXHUwNDA4XHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDA5XHUwNDU5XHUwNDBhXHUwNDVhXHUwNDU4XHUwNDA1XHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx1MDQwYlx1MDQ1Ylx1MDQwY1x1MDQ1Y1x1MDQ1NVx1MjAxM1x1'@; put 'MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTIwMWVcdTA0MGVcdTA0NWVcdTA0MGZcdTA0NWZcdTIxMTZcdTA0MDFcdTA0NTFcdTA0NGZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2Nc'@; put 'dTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVceGE0IixhZT1bXSx4PXt9LG09MDsyNTYhPW07KyttKTY1NTMzIT09Ri5jaGFyQ29kZUF0KG0pJiYo'@; put 'eFtGLmNoYXJBdChtKV09bSksYWVbbV09Ri5jaGFyQXQobSk7cmV0dXJue2VuYzp4LGRlYzphZX19KCksSWVbMTAwMDhdPWZ1bmN0aW9uKCl7dmFyIG0sRj1bXSxhZT17fSx4PVtdO2Zvcih4WzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4'@; put 'MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4'@; put 'ODBcdWY4ZDhcdWY4ZDlcdWY4ZGFcdWY4ZGJcdWY4ZGNcdWY4ZGRcdWY4ZGVcdWY4ZGZcdWY4ZTBcdWY4ZTFcdWY4ZTJcdWY4ZTNcdWY4ZTRcdWY4ZTVcdWY4ZTZcdWY4ZTdcdWY4ZThcdWY4ZTlcdWY4ZWFcdWY4ZWJcdWY4ZWNcdWY4ZWRcdWY4ZWVcdWY4ZWZcdWY4ZjBcdWY4ZjFcdWY4ZjJc'@; put 'dWY4ZjNcdWY4ZjRcdWY4ZjVcdWY4ZjZcdWY4ZjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWY4ZjhcdWY4ZjlcdWY4ZmFcdWY4ZmJcdWY4ZmNcdWY4ZmRcdWY4ZmVcdWY4ZmYiLnNwbGl0KCIiKSxtPTA7bSE9eFswXS5sZW5ndGg7KyttKTY1NTMzIT09eFswXVttXS5jaGFyQ29kZUF0'@; put 'KDApJiYoYWVbeFswXVttXV09MCttLEZbMCttXT14WzBdW21dKTtmb3IoeFsxNjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBcdTMwMDFcdTMwMDJcdTMwZmJcdTAyYzlcdTAyYzdceGE4XHUzMDAzXHUzMDA1XHUyMDE1XHVmZjVlXHVmZmZkXHUyMDI2XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4XHUzMDA5XHUzMDBhXHUzMDBiXHUz'@; put 'MDBjXHUzMDBkXHUzMDBlXHUzMDBmXHUzMDE2XHUzMDE3XHUzMDEwXHUzMDExXHhiMVx4ZDdceGY3XHUyMjM2XHUyMjI3XHUyMjI4XHUyMjExXHUyMjBmXHUyMjJhXHUyMjI5XHUyMjA4XHUyMjM3XHUyMjFhXHUyMmE1XHUyMjI1XHUyMjIwXHUyMzEyXHUyMjk5XHUyMjJiXHUyMjJlXHUyMjYx'@; put 'XHUyMjRjXHUyMjQ4XHUyMjNkXHUyMjFkXHUyMjYwXHUyMjZlXHUyMjZmXHUyMjY0XHUyMjY1XHUyMjFlXHUyMjM1XHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmYwNFx4YTRcdWZmZTBcdWZmZTFcdTIwMzBceGE3XHUyMTE2XHUyNjA2XHUyNjA1XHUyNWNiXHUy'@; put 'NWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyMDNiXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTYxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2'@; put 'MV1bbV1dPTQxMjE2K20sRls0MTIxNittXT14WzE2MV1bbV0pO2Zvcih4WzE2Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjQ4OFx1MjQ4OVx1MjQ4YVx1MjQ4Ylx1MjQ4Y1x1MjQ4ZFx1MjQ4ZVx1'@; put 'MjQ4Zlx1MjQ5MFx1MjQ5MVx1MjQ5Mlx1MjQ5M1x1MjQ5NFx1MjQ5NVx1MjQ5Nlx1MjQ5N1x1MjQ5OFx1MjQ5OVx1MjQ5YVx1MjQ5Ylx1MjQ3NFx1MjQ3NVx1MjQ3Nlx1MjQ3N1x1MjQ3OFx1MjQ3OVx1MjQ3YVx1MjQ3Ylx1MjQ3Y1x1MjQ3ZFx1MjQ3ZVx1MjQ3Zlx1MjQ4MFx1MjQ4MVx1MjQ4'@; put 'Mlx1MjQ4M1x1MjQ4NFx1MjQ4NVx1MjQ4Nlx1MjQ4N1x1MjQ2MFx1MjQ2MVx1MjQ2Mlx1MjQ2M1x1MjQ2NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1MjQ2OFx1MjQ2OVx1ZmZmZFx1ZmZmZFx1MzIyMFx1MzIyMVx1MzIyMlx1MzIyM1x1MzIyNFx1MzIyNVx1MzIyNlx1MzIyN1x1MzIyOFx1MzIyOVx1'@; put 'ZmZmZFx1ZmZmZFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1MjE2YVx1MjE2Ylx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2Ml0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTYyXVttXS5jaGFyQ29kZUF0'@; put 'KDApJiYoYWVbeFsxNjJdW21dXT00MTQ3MittLEZbNDE0NzIrbV09eFsxNjJdW21dKTtmb3IoeFsxNjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMDFcdWZmMDJcdWZmMDNcdWZmZTVcdWZmMDVcdWZmMDZcdWZmMDdcdWZmMDhcdWZmMDlcdWZmMGFcdWZmMGJcdWZmMGNcdWZmMGRcdWZmMGVcdWZmMGZcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVc'@; put 'dWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmMWFcdWZmMWJcdWZmMWNcdWZmMWRcdWZmMWVcdWZmMWZcdWZmMjBcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZm'@; put 'MzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmM2JcdWZmM2NcdWZmM2RcdWZmM2VcdWZmM2ZcdWZmNDBcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNc'@; put 'dWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdWZmNWJcdWZmNWNcdWZmNWRcdWZmZTNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2M11b'@; put 'bV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTYzXVttXV09NDE3MjgrbSxGWzQxNzI4K21dPXhbMTYzXVttXSk7Zm9yKHhbMTY0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDQxXHUzMDQyXHUzMDQzXHUzMDQ0XHUzMDQ1XHUzMDQ2XHUzMDQ3XHUzMDQ4XHUzMDQ5XHUzMDRhXHUzMDRiXHUzMDRjXHUzMDRkXHUzMDRlXHUzMDRmXHUzMDUwXHUzMDUxXHUzMDUyXHUzMDUz'@; put 'XHUzMDU0XHUzMDU1XHUzMDU2XHUzMDU3XHUzMDU4XHUzMDU5XHUzMDVhXHUzMDViXHUzMDVjXHUzMDVkXHUzMDVlXHUzMDVmXHUzMDYwXHUzMDYxXHUzMDYyXHUzMDYzXHUzMDY0XHUzMDY1XHUzMDY2XHUzMDY3XHUzMDY4XHUzMDY5XHUzMDZhXHUzMDZiXHUzMDZjXHUzMDZkXHUzMDZlXHUz'@; put 'MDZmXHUzMDcwXHUzMDcxXHUzMDcyXHUzMDczXHUzMDc0XHUzMDc1XHUzMDc2XHUzMDc3XHUzMDc4XHUzMDc5XHUzMDdhXHUzMDdiXHUzMDdjXHUzMDdkXHUzMDdlXHUzMDdmXHUzMDgwXHUzMDgxXHUzMDgyXHUzMDgzXHUzMDg0XHUzMDg1XHUzMDg2XHUzMDg3XHUzMDg4XHUzMDg5XHUzMDhh'@; put 'XHUzMDhiXHUzMDhjXHUzMDhkXHUzMDhlXHUzMDhmXHUzMDkwXHUzMDkxXHUzMDkyXHUzMDkzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTY0XS5sZW5ndGg7KyttKTY1'@; put 'NTMzIT09eFsxNjRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2NF1bbV1dPTQxOTg0K20sRls0MTk4NCttXT14WzE2NF1bbV0pO2Zvcih4WzE2NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNFx1MzBhNVx1MzBhNlx1MzBhN1x1MzBhOFx1MzBhOVx1MzBhYVx1MzBhYlx1MzBhY1x1MzBhZFx1MzBhZVx1MzBhZlx1MzBiMFx1MzBi'@; put 'MVx1MzBiMlx1MzBiM1x1MzBiNFx1MzBiNVx1MzBiNlx1MzBiN1x1MzBiOFx1MzBiOVx1MzBiYVx1MzBiYlx1MzBiY1x1MzBiZFx1MzBiZVx1MzBiZlx1MzBjMFx1MzBjMVx1MzBjMlx1MzBjM1x1MzBjNFx1MzBjNVx1MzBjNlx1MzBjN1x1MzBjOFx1MzBjOVx1MzBjYVx1MzBjYlx1MzBjY1x1'@; put 'MzBjZFx1MzBjZVx1MzBjZlx1MzBkMFx1MzBkMVx1MzBkMlx1MzBkM1x1MzBkNFx1MzBkNVx1MzBkNlx1MzBkN1x1MzBkOFx1MzBkOVx1MzBkYVx1MzBkYlx1MzBkY1x1MzBkZFx1MzBkZVx1MzBkZlx1MzBlMFx1MzBlMVx1MzBlMlx1MzBlM1x1MzBlNFx1MzBlNVx1MzBlNlx1MzBlN1x1MzBl'@; put 'OFx1MzBlOVx1MzBlYVx1MzBlYlx1MzBlY1x1MzBlZFx1MzBlZVx1MzBlZlx1MzBmMFx1MzBmMVx1MzBmMlx1MzBmM1x1MzBmNFx1MzBmNVx1MzBmNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE2NV0u'@; put 'bGVuZ3RoOysrbSk2NTUzMyE9PXhbMTY1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjVdW21dXT00MjI0MCttLEZbNDIyNDArbV09eFsxNjVdW21dKTtmb3IoeFsxNjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAz'@; put 'OWZcdTAzYTBcdTAzYTFcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFc'@; put 'dTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxt'@; put 'PTA7bSE9eFsxNjZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2Nl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTY2XVttXV09NDI0OTYrbSxGWzQyNDk2K21dPXhbMTY2XVttXSk7Zm9yKHhbMTY3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUw'@; put 'NDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUw'@; put 'NDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'Ii5zcGxpdCgiIiksbT0wO20hPXhbMTY3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNjddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE2N11bbV1dPTQyNzUyK20sRls0Mjc1MittXT14WzE2N11bbV0pO2Zvcih4WzE2OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1'@; put 'MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGFcdTAxZGNceGZjXHhlYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzEwNVx1MzEwNlx1MzEwN1x1MzEwOFx1MzEwOVx1MzEw'@; put 'YVx1MzEwYlx1MzEwY1x1MzEwZFx1MzEwZVx1MzEwZlx1MzExMFx1MzExMVx1MzExMlx1MzExM1x1MzExNFx1MzExNVx1MzExNlx1MzExN1x1MzExOFx1MzExOVx1MzExYVx1MzExYlx1MzExY1x1MzExZFx1MzExZVx1MzExZlx1MzEyMFx1MzEyMVx1MzEyMlx1MzEyM1x1MzEyNFx1MzEyNVx1'@; put 'MzEyNlx1MzEyN1x1MzEyOFx1MzEyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LG09MDttIT14WzE2OF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTY4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNjhdW21dXT00MzAwOCttLEZbNDMwMDgrbV09eFsxNjhdW21dKTtmb3IoeFsxNjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1MDBcdTI1MDFcdTI1MDJcdTI1MDNcdTI1MDRcdTI1MDVcdTI1MDZcdTI1MDdcdTI1MDhc'@; put 'dTI1MDlcdTI1MGFcdTI1MGJcdTI1MGNcdTI1MGRcdTI1MGVcdTI1MGZcdTI1MTBcdTI1MTFcdTI1MTJcdTI1MTNcdTI1MTRcdTI1MTVcdTI1MTZcdTI1MTdcdTI1MThcdTI1MTlcdTI1MWFcdTI1MWJcdTI1MWNcdTI1MWRcdTI1MWVcdTI1MWZcdTI1MjBcdTI1MjFcdTI1MjJcdTI1MjNcdTI1'@; put 'MjRcdTI1MjVcdTI1MjZcdTI1MjdcdTI1MjhcdTI1MjlcdTI1MmFcdTI1MmJcdTI1MmNcdTI1MmRcdTI1MmVcdTI1MmZcdTI1MzBcdTI1MzFcdTI1MzJcdTI1MzNcdTI1MzRcdTI1MzVcdTI1MzZcdTI1MzdcdTI1MzhcdTI1MzlcdTI1M2FcdTI1M2JcdTI1M2NcdTI1M2RcdTI1M2VcdTI1M2Zc'@; put 'dTI1NDBcdTI1NDFcdTI1NDJcdTI1NDNcdTI1NDRcdTI1NDVcdTI1NDZcdTI1NDdcdTI1NDhcdTI1NDlcdTI1NGFcdTI1NGJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNjldLmxlbmd0aDsrK20pNjU1MzMhPT14WzE2OV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTY5XVttXV09NDMyNjQrbSxGWzQzMjY0K21dPXhbMTY5XVttXSk7Zm9yKHhbMTc2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTRhXHU5NjNmXHU1N2MzXHU2MzI4XHU1NGNlXHU1NTA5XHU1NGMwXHU3NjkxXHU3NjRjXHU4NTNj'@; put 'XHU3N2VlXHU4MjdlXHU3ODhkXHU3MjMxXHU5Njk4XHU5NzhkXHU2YzI4XHU1Yjg5XHU0ZmZhXHU2MzA5XHU2Njk3XHU1Y2I4XHU4MGZhXHU2ODQ4XHU4MGFlXHU2NjAyXHU3NmNlXHU1MWY5XHU2NTU2XHU3MWFjXHU3ZmYxXHU4ODg0XHU1MGIyXHU1OTY1XHU2MWNhXHU2ZmIzXHU4MmFkXHU2'@; put 'MzRjXHU2MjUyXHU1M2VkXHU1NDI3XHU3YjA2XHU1MTZiXHU3NWE0XHU1ZGY0XHU2MmQ0XHU4ZGNiXHU5Nzc2XHU2MjhhXHU4MDE5XHU1NzVkXHU5NzM4XHU3ZjYyXHU3MjM4XHU3NjdkXHU2N2NmXHU3NjdlXHU2NDQ2XHU0ZjcwXHU4ZDI1XHU2MmRjXHU3YTE3XHU2NTkxXHU3M2VkXHU2NDJj'@; put 'XHU2MjczXHU4MjJjXHU5ODgxXHU2NzdmXHU3MjQ4XHU2MjZlXHU2MmNjXHU0ZjM0XHU3NGUzXHU1MzRhXHU1MjllXHU3ZWNhXHU5MGE2XHU1ZTJlXHU2ODg2XHU2OTljXHU4MTgwXHU3ZWQxXHU2OGQyXHU3OGM1XHU4NjhjXHU5NTUxXHU1MDhkXHU4YzI0XHU4MmRlXHU4MGRlXHU1MzA1XHU4'@; put 'OTEyXHU1MjY1XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3Nl1bbV1dPTQ1MDU2K20sRls0NTA1NittXT14WzE3Nl1bbV0pO2Zvcih4WzE3N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJh'@; put 'NVx1NjZiNFx1OGM3OVx1OWM4ZFx1NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1NTM1MVx1NTMxN1x1OGY4OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAwZFx1NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1'@; put 'OGU2Nlx1OGZmOFx1OTAzY1x1OWYzYlx1NmJkNFx1OTExOVx1N2IxNFx1NWY3Y1x1NzhhN1x1ODRkNlx1ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1NWUwMVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYwYVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZi'@; put 'OVx1N2YxNlx1OGQyY1x1NjI0MVx1NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1OGZhOVx1OGZhYlx1OTA0ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2OFx1OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1'@; put 'NGUxOVx1NzljOVx1OTk3Y1x1NzBiM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE3N10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTc3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxNzddW21dXT00NTMxMittLEZbNDUzMTIrbV09eFsxNzddW21dKTtmb3IoeFsxNzhdPSJcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1YzVcdTVlNzZcdTczYmJcdTgzZTBcdTY0YWRcdTYy'@; put 'ZThcdTk0YjVcdTZjZTJcdTUzNWFcdTUyYzNcdTY0MGZcdTk0YzJcdTdiOTRcdTRmMmZcdTVlMWJcdTgyMzZcdTgxMTZcdTgxOGFcdTZlMjRcdTZjY2FcdTlhNzNcdTYzNTVcdTUzNWNcdTU0ZmFcdTg4NjVcdTU3ZTBcdTRlMGRcdTVlMDNcdTZiNjVcdTdjM2ZcdTkwZThcdTYwMTZcdTY0ZTZc'@; put 'dTczMWNcdTg4YzFcdTY3NTBcdTYyNGRcdThkMjJcdTc3NmNcdThlMjlcdTkxYzdcdTVmNjlcdTgzZGNcdTg1MjFcdTk5MTBcdTUzYzJcdTg2OTVcdTZiOGJcdTYwZWRcdTYwZThcdTcwN2ZcdTgyY2RcdTgyMzFcdTRlZDNcdTZjYTdcdTg1Y2ZcdTY0Y2RcdTdjZDlcdTY5ZmRcdTY2ZjlcdTgz'@; put 'NDlcdTUzOTVcdTdiNTZcdTRmYTdcdTUxOGNcdTZkNGJcdTVjNDJcdThlNmRcdTYzZDJcdTUzYzlcdTgzMmNcdTgzMzZcdTY3ZTVcdTc4YjRcdTY0M2RcdTViZGZcdTVjOTRcdTVkZWVcdThiZTdcdTYyYzZcdTY3ZjRcdThjN2FcdTY0MDBcdTYzYmFcdTg3NDlcdTk5OGJcdThjMTdcdTdmMjBc'@; put 'dTk0ZjJcdTRlYTdcdTk2MTBcdTk4YTRcdTY2MGNcdTczMTZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxNzhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE3OF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTc4XVttXV09NDU1NjgrbSxGWzQ1NTY4K21dPXhbMTc4XVttXSk7Zm9yKHhbMTc5'@; put 'XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzNhXHU1YzFkXHU1ZTM4XHU5'@; put 'NTdmXHU1MDdmXHU4MGEwXHU1MzgyXHU2NTVlXHU3NTQ1XHU1NTMxXHU1MDIxXHU4ZDg1XHU2Mjg0XHU5NDllXHU2NzFkXHU1NjMyXHU2ZjZlXHU1ZGUyXHU1NDM1XHU3MDkyXHU4ZjY2XHU2MjZmXHU2NGE0XHU2M2EzXHU1ZjdiXHU2Zjg4XHU5MGY0XHU4MWUzXHU4ZmIwXHU1YzE4XHU2NjY4'@; put 'XHU1ZmYxXHU2Yzg5XHU5NjQ4XHU4ZDgxXHU4ODZjXHU2NDkxXHU3OWYwXHU1N2NlXHU2YTU5XHU2MjEwXHU1NDQ4XHU0ZTU4XHU3YTBiXHU2MGU5XHU2Zjg0XHU4YmRhXHU2MjdmXHU5MDFlXHU5YThiXHU3OWU0XHU1NDAzXHU3NWY0XHU2MzAxXHU1MzE5XHU2YzYwXHU4ZmRmXHU1ZjFiXHU5'@; put 'YTcwXHU4MDNiXHU5ZjdmXHU0Zjg4XHU1YzNhXHU4ZDY0XHU3ZmM1XHU2NWE1XHU3MGJkXHU1MTQ1XHU1MWIyXHU4NjZiXHU1ZDA3XHU1YmEwXHU2MmJkXHU5MTZjXHU3NTc0XHU4ZTBjXHU3YTIwXHU2MTAxXHU3Yjc5XHU0ZWM3XHU3ZWY4XHU3Nzg1XHU0ZTExXHU4MWVkXHU1MjFkXHU1MWZh'@; put 'XHU2YTcxXHU1M2E4XHU4ZTg3XHU5NTA0XHU5NmNmXHU2ZWMxXHU5NjY0XHU2OTVhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTc5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxNzldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE3OV1bbV1dPTQ1ODI0K20sRls0NTgyNCttXT14WzE3OV1b'@; put 'bV0pO2Zvcih4WzE4MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzg0MFx1'@; put 'NTBhOFx1NzdkN1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1NjkzZFx1NGYyMFx1ODIzOVx1NTU5OFx1NGUzMlx1NzVhZVx1N2E5N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzZlx1OTE4N1x1NTUw'@; put 'N1x1NmRmM1x1N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1OTZjY1x1OGY5ZVx1NjE0OFx1NzRmN1x1OGJjZFx1NmI2NFx1NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5N1x1OTE4Ylx1N2MwN1x1'@; put 'NGZjM1x1OGU3Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYwMVx1N2NiOVx1NmRlY1x1N2ZlMFx1Njc1MVx1NWI1OFx1NWJmOFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0'@; put 'Nlx1NmI3OVx1NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1NWY4NVx1OTAyZVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTgwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODBdW21dXT00NjA4MCttLEZbNDYw'@; put 'ODArbV09eFsxODBdW21dKTtmb3IoeFsxODFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdTYwMjBcdTgwM2RcdTYyYzVcdTRlMzlcdTUzNTVcdTkwZjhcdTYzYjhcdTgwYzZcdTY1ZTZcdTZjMmVcdTRmNDZcdTYwZWVcdTZkZTFcdThiZGVcdTVmMzlcdTg2Y2JcdTVmNTNcdTYzMjFcdTUxNWFcdTgzNjFcdTY4NjNcdTUyMDBcdTYzNjNcdThlNDhcdTUwMTJcdTVjOWJcdTc5'@; put 'NzdcdTViZmNcdTUyMzBcdTdhM2JcdTYwYmNcdTkwNTNcdTc2ZDdcdTVmYjdcdTVmOTdcdTc2ODRcdThlNmNcdTcwNmZcdTc2N2JcdTdiNDlcdTc3YWFcdTUxZjNcdTkwOTNcdTU4MjRcdTRmNGVcdTZlZjRcdThmZWFcdTY1NGNcdTdiMWJcdTcyYzRcdTZkYTRcdTdmZGZcdTVhZTFcdTYyYjVc'@; put 'dTVlOTVcdTU3MzBcdTg0ODJcdTdiMmNcdTVlMWRcdTVmMWZcdTkwMTJcdTdmMTRcdTk4YTBcdTYzODJcdTZlYzdcdTc4OThcdTcwYjlcdTUxNzhcdTk3NWJcdTU3YWJcdTc1MzVcdTRmNDNcdTc1MzhcdTVlOTdcdTYwZTZcdTU5NjBcdTZkYzBcdTZiYmZcdTc4ODlcdTUzZmNcdTk2ZDVcdTUx'@; put 'Y2JcdTUyMDFcdTYzODlcdTU0MGFcdTk0OTNcdThjMDNcdThkY2NcdTcyMzlcdTc4OWZcdTg3NzZcdThmZWRcdThjMGRcdTUzZTBcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTgxXVttXV09'@; put 'NDYzMzYrbSxGWzQ2MzM2K21dPXhbMTgxXVttXSk7Zm9yKHhbMTgyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTAxXHU3NmVmXHU1M2VlXHU5NDg5XHU5ODc2XHU5ZjBlXHU5NTJkXHU1YjlhXHU4YmEyXHU0ZTIyXHU0ZTFjXHU1MWFjXHU4NDYzXHU2MWMyXHU1MmE4XHU2ODBiXHU0Zjk3XHU2MDZiXHU1MWJiXHU2ZDFlXHU1MTVjXHU2Mjk2XHU2NTk3XHU5NjYxXHU4'@; put 'YzQ2XHU5MDE3XHU3NWQ4XHU5MGZkXHU3NzYzXHU2YmQyXHU3MjhhXHU3MmVjXHU4YmZiXHU1ODM1XHU3Nzc5XHU4ZDRjXHU2NzVjXHU5NTQwXHU4MDlhXHU1ZWE2XHU2ZTIxXHU1OTkyXHU3YWVmXHU3N2VkXHU5NTNiXHU2YmI1XHU2NWFkXHU3ZjBlXHU1ODA2XHU1MTUxXHU5NjFmXHU1YmY5'@; put 'XHU1OGE5XHU1NDI4XHU4ZTcyXHU2NTY2XHU5ODdmXHU1NmU0XHU5NDlkXHU3NmZlXHU5MDQxXHU2Mzg3XHU1NGM2XHU1OTFhXHU1OTNhXHU1NzliXHU4ZWIyXHU2NzM1XHU4ZGZhXHU4MjM1XHU1MjQxXHU2MGYwXHU1ODE1XHU4NmZlXHU1Y2U4XHU5ZTQ1XHU0ZmM0XHU5ODlkXHU4YmI5XHU1'@; put 'YTI1XHU2MDc2XHU1Mzg0XHU2MjdjXHU5MDRmXHU5MTAyXHU5OTdmXHU2MDY5XHU4MDBjXHU1MTNmXHU4MDMzXHU1YzE0XHU5OTc1XHU2ZDMxXHU0ZThjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTgyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODJdW21dLmNoYXJDb2RlQXQoMCkmJihh'@; put 'ZVt4WzE4Ml1bbV1dPTQ2NTkyK20sRls0NjU5MittXT14WzE4Ml1bbV0pO2Zvcih4WzE4M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGQzMFx1NTNkMVx1N2Y1YVx1N2I0Zlx1NGYxMFx1NGU0Zlx1OTYwMFx1NmNkNVx1NzNkMFx1ODVlOVx1NWUwNlx1NzU2YVx1N2ZmYlx1NmEwYVx1NzdmZVx1OTQ5Mlx1N2U0MVx1NTFlMVx1NzBlNlx1NTNjZFx1OGZkNFx1ODMwM1x1'@; put 'OGQyOVx1NzJhZlx1OTk2ZFx1NmNkYlx1NTc0YVx1ODJiM1x1NjViOVx1ODBhYVx1NjIzZlx1OTYzMlx1NTlhOFx1NGVmZlx1OGJiZlx1N2ViYVx1NjUzZVx1ODNmMlx1OTc1ZVx1NTU2MVx1OThkZVx1ODBhNVx1NTMyYVx1OGJmZFx1NTQyMFx1ODBiYVx1NWU5Zlx1NmNiOFx1OGQzOVx1ODJh'@; put 'Y1x1OTE1YVx1NTQyOVx1NmMxYlx1NTIwNlx1N2ViN1x1NTc1Zlx1NzExYVx1NmM3ZVx1N2M4OVx1NTk0Ylx1NGVmZFx1NWZmZlx1NjEyNFx1N2NhYVx1NGUzMFx1NWMwMVx1NjdhYlx1ODcwMlx1NWNmMFx1OTUwYlx1OThjZVx1NzVhZlx1NzBmZFx1OTAyMlx1NTFhZlx1N2YxZFx1OGJiZFx1'@; put 'NTk0OVx1NTFlNFx1NGY1Ylx1NTQyNlx1NTkyYlx1NjU3N1x1ODBhNFx1NWI3NVx1NjI3Nlx1NjJjMlx1OGY5MFx1NWU0NVx1NmMxZlx1N2IyNlx1NGYwZlx1NGZkOFx1NjcwZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTgzXVttXS5jaGFy'@; put 'Q29kZUF0KDApJiYoYWVbeFsxODNdW21dXT00Njg0OCttLEZbNDY4NDgrbV09eFsxODNdW21dKTtmb3IoeFsxODRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZkNmVcdTZkYWFcdTc5OGZcdTg4YjFcdTVmMTdcdTc1MmJcdTYyOWFcdThmODVcdTRmZWZcdTkxZGNcdTY1YTdcdTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUyNmZcdTg5ODZcdThkNGJcdTU5MGRc'@; put 'dTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNcdTk2NDRcdTU5ODdcdTdmMWFcdTU0OTBcdTU2NzZcdTU2MGVcdThiZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFcdTdhZmZcdTgwOWRcdThkNzZcdTYx'@; put 'MWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgwOWJcdTdlYjJcdTVjOTdcdTZlMmZcdTY3NjBcdTdiZDlcdTc2OGJcdTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVcdTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZiNGNcdTY0MDFcdTYyMDhcdTllM2Rc'@; put 'dTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFcdTk2OTRcdTk0ZWNcdTRlMmFcdTU0MDRcdTdlZDlcdTY4MzlcdThkZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdmYjlcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxODRdLmxlbmd0aDsrK20pNjU1MzMhPT14'@; put 'WzE4NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg0XVttXV09NDcxMDQrbSxGWzQ3MTA0K21dPXhbMTg0XVttXSk7Zm9yKHhbMTg1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1N2MyXHU4MDNmXHU2ODk3XHU1ZGU1XHU2NTNiXHU1MjlmXHU2MDZkXHU5ZjlhXHU0ZjliXHU4ZWFjXHU1MTZjXHU1YmFiXHU1ZjEzXHU1ZGU5XHU2YzVlXHU2MmYxXHU4ZDIxXHU1MTcx'@; put 'XHU5NGE5XHU1MmZlXHU2YzlmXHU4MmRmXHU3MmQ3XHU1N2EyXHU2Nzg0XHU4ZDJkXHU1OTFmXHU4ZjljXHU4M2M3XHU1NDk1XHU3YjhkXHU0ZjMwXHU2Y2JkXHU1YjY0XHU1OWQxXHU5ZjEzXHU1M2U0XHU4NmNhXHU5YWE4XHU4YzM3XHU4MGExXHU2NTQ1XHU5ODdlXHU1NmZhXHU5NmM3XHU1'@; put 'MjJlXHU3NGRjXHU1MjUwXHU1YmUxXHU2MzAyXHU4OTAyXHU0ZTU2XHU2MmQwXHU2MDJhXHU2OGZhXHU1MTczXHU1Yjk4XHU1MWEwXHU4OWMyXHU3YmExXHU5OTg2XHU3ZjUwXHU2MGVmXHU3MDRjXHU4ZDJmXHU1MTQ5XHU1ZTdmXHU5MDFiXHU3NDcwXHU4OWM0XHU1NzJkXHU3ODQ1XHU1ZjUy'@; put 'XHU5ZjlmXHU5NWZhXHU4ZjY4XHU5YjNjXHU4YmUxXHU3Njc4XHU2ODQyXHU2N2RjXHU4ZGVhXHU4ZDM1XHU1MjNkXHU4ZjhhXHU2ZWRhXHU2OGNkXHU5NTA1XHU5MGVkXHU1NmZkXHU2NzljXHU4OGY5XHU4ZmM3XHU1NGM4XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTg1XS5sZW5ndGg7'@; put 'KyttKTY1NTMzIT09eFsxODVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4NV1bbV1dPTQ3MzYwK20sRls0NzM2MCttXT14WzE4NV1bbV0pO2Zvcih4WzE4Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWFiOFx1NWI2OVx1NmQ3N1x1NmMyNlx1NGVhNVx1NWJiM1x1OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4'@; put 'YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1NjA4ZFx1NzEwYVx1NmM1N1x1NmM0OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThkNVx1NTY4ZVx1OGM2YVx1NmJlYlx1OTBkZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1'@; put 'NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYwMlx1NmNiM1x1NmRiOFx1OGQ2Ylx1ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1OWVkMVx1NzVkNVx1NWY4OFx1NzJlMFx1NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3'@; put 'OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1NGZhZlx1NzMzNFx1NTQzY1x1NTM5YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0ZVx1NWZmZFx1NzQ1YVx1NThmNlx1ODQ2Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2NjYVx1NmU1Nlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14'@; put 'WzE4Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTg2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODZdW21dXT00NzYxNittLEZbNDc2MTYrbV09eFsxODZdW21dKTtmb3IoeFsxODddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVmMjdcdTg2NGVcdTU1MmNcdTYyYTRcdTRlOTJcdTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUy'@; put 'MTJcdTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFcdTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYwYTNcdTU1MjRcdTc1ZWFcdThjNjJcdTcxMTVcdTZkYTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdc'@; put 'dTc2ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVcdThmODlcdTVmYmRcdTYwNjJcdTg2ZDRcdTU2ZGVcdTZiYzFcdTYwOTRcdTYxNjdcdTUzNDlcdTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThi'@; put 'ZjJcdTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFcdTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRmMTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYwZDFcdTk3MGRcdThkMjdcdTc5NzhcdTUxZmJcdTU3M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTVcdWZmZmQiLnNwbGl0'@; put 'KCIiKSxtPTA7bSE9eFsxODddLmxlbmd0aDsrK20pNjU1MzMhPT14WzE4N11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTg3XVttXV09NDc4NzIrbSxGWzQ3ODcyK21dPXhbMTg3XVttXSk7Zm9yKHhbMTg4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDhjXHU5OTY1XHU4ZmY5XHU2ZmMwXHU4YmE1XHU5ZTIxXHU1OWVjXHU3ZWU5XHU3ZjA5XHU1NDA5XHU2NzgxXHU2'@; put 'OGQ4XHU4ZjkxXHU3YzRkXHU5NmM2XHU1M2NhXHU2MDI1XHU3NWJlXHU2YzcyXHU1MzczXHU1YWM5XHU3ZWE3XHU2MzI0XHU1MWUwXHU4MTBhXHU1ZGYxXHU4NGRmXHU2MjgwXHU1MTgwXHU1YjYzXHU0ZjBlXHU3OTZkXHU1MjQyXHU2MGI4XHU2ZDRlXHU1YmM0XHU1YmMyXHU4YmExXHU4YmIw'@; put 'XHU2NWUyXHU1ZmNjXHU5NjQ1XHU1OTkzXHU3ZWU3XHU3ZWFhXHU1NjA5XHU2N2I3XHU1OTM5XHU0ZjczXHU1YmI2XHU1MmEwXHU4MzVhXHU5ODhhXHU4ZDNlXHU3NTMyXHU5NGJlXHU1MDQ3XHU3YTNjXHU0ZWY3XHU2N2I2XHU5YTdlXHU1YWMxXHU2YjdjXHU3NmQxXHU1NzVhXHU1YzE2XHU3'@; put 'YjNhXHU5NWY0XHU3MTRlXHU1MTdjXHU4MGE5XHU4MjcwXHU1OTc4XHU3ZjA0XHU4MzI3XHU2OGMwXHU2N2VjXHU3OGIxXHU3ODc3XHU2MmUzXHU2MzYxXHU3YjgwXHU0ZmVkXHU1MjZhXHU1MWNmXHU4MzUwXHU2OWRiXHU5Mjc0XHU4ZGY1XHU4ZDMxXHU4OWMxXHU5NTJlXHU3YmFkXHU0ZWY2'@; put 'XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTg4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxODhdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE4OF1bbV1dPTQ4MTI4K20sRls0ODEyOCttXT14WzE4OF1bbV0pO2Zvcih4WzE4OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1NTBmNVx1'@; put 'NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1OTE3MVx1OTY0ZFx1ODU0OVx1NjkxMlx1NzkwMVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZhNVx1ODEx'@; put 'YVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4M1x1NTNlYlx1N2E5Nlx1NjNlZFx1NjNhNVx1NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1NmQwMVx1'@; put 'N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1OGJlYlx1NWM0YVx1NWRmZVx1N2I0Ylx1NjVhNFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4MVx1OGZk'@; put 'MVx1NzBlY1x1NmQ3OFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE4OV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTg5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxODldW21dXT00ODM4NCttLEZbNDgzODQrbV09eFsxODldW21dKTtmb3IoeFsxOTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjM2RcdTUyYjJcdTgzNDZcdTUxNjJcdTgzMGVcdTc3NWJcdTY2NzZc'@; put 'dTljYjhcdTRlYWNcdTYwY2FcdTdjYmVcdTdjYjNcdTdlY2ZcdTRlOTVcdThiNjZcdTY2NmZcdTk4ODhcdTk3NTlcdTU4ODNcdTY1NmNcdTk1NWNcdTVmODRcdTc1YzlcdTk3NTZcdTdhZGZcdTdhZGVcdTUxYzBcdTcwYWZcdTdhOThcdTYzZWFcdTdhNzZcdTdlYTBcdTczOTZcdTk3ZWRcdTRl'@; put 'NDVcdTcwNzhcdTRlNWRcdTkxNTJcdTUzYTlcdTY1NTFcdTY1ZTdcdTgxZmNcdTgyMDVcdTU0OGVcdTVjMzFcdTc1OWFcdTk3YTBcdTYyZDhcdTcyZDlcdTc1YmRcdTVjNDVcdTlhNzlcdTgzY2FcdTVjNDBcdTU0ODBcdTc3ZTlcdTRlM2VcdTZjYWVcdTgwNWFcdTYyZDJcdTYzNmVcdTVkZThc'@; put 'dTUxNzdcdThkZGRcdThlMWVcdTk1MmZcdTRmZjFcdTUzZTVcdTYwZTdcdTcwYWNcdTUyNjdcdTYzNTBcdTllNDNcdTVhMWZcdTUwMjZcdTc3MzdcdTUzNzdcdTdlZTJcdTY0ODVcdTY1MmJcdTYyODlcdTYzOThcdTUwMTRcdTcyMzVcdTg5YzlcdTUxYjNcdThiYzBcdTdlZGRcdTU3NDdcdTgz'@; put 'Y2NcdTk0YTdcdTUxOWJcdTU0MWJcdTVjZmJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5MF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTkwXVttXV09NDg2NDArbSxGWzQ4NjQwK21dPXhbMTkwXVttXSk7Zm9yKHhbMTkxXT0iXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZmNhXHU3YWUzXHU2ZDVhXHU5MGUxXHU5YThm'@; put 'XHU1NTgwXHU1NDk2XHU1MzYxXHU1NGFmXHU1ZjAwXHU2M2U5XHU2OTc3XHU1MWVmXHU2MTY4XHU1MjBhXHU1ODJhXHU1MmQ4XHU1NzRlXHU3ODBkXHU3NzBiXHU1ZWI3XHU2MTc3XHU3Y2UwXHU2MjViXHU2Mjk3XHU0ZWEyXHU3MDk1XHU4MDAzXHU2MmY3XHU3MGU0XHU5NzYwXHU1Nzc3XHU4'@; put 'MmRiXHU2N2VmXHU2OGY1XHU3OGQ1XHU5ODk3XHU3OWQxXHU1OGYzXHU1NGIzXHU1M2VmXHU2ZTM0XHU1MTRiXHU1MjNiXHU1YmEyXHU4YmZlXHU4MGFmXHU1NTQzXHU1N2E2XHU2MDczXHU1NzUxXHU1NDJkXHU3YTdhXHU2MDUwXHU1YjU0XHU2M2E3XHU2MmEwXHU1M2UzXHU2MjYzXHU1YmM3'@; put 'XHU2N2FmXHU1NGVkXHU3YTlmXHU4MmU2XHU5MTc3XHU1ZTkzXHU4OGU0XHU1OTM4XHU1N2FlXHU2MzBlXHU4ZGU4XHU4MGVmXHU1NzU3XHU3Yjc3XHU0ZmE5XHU1ZmViXHU1YmJkXHU2YjNlXHU1MzIxXHU3YjUwXHU3MmMyXHU2ODQ2XHU3N2ZmXHU3NzM2XHU2NWY3XHU1MWI1XHU0ZThmXHU3'@; put 'NmQ0XHU1Y2JmXHU3YWE1XHU4NDc1XHU1OTRlXHU5YjQxXHU1MDgwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTkxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTFdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5MV1bbV1dPTQ4ODk2K20sRls0ODg5NittXT14WzE5MV1bbV0pO2Zvcih4'@; put 'WzE5Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTk4OFx1NjEyN1x1NmU4'@; put 'M1x1NTc2NFx1NjYwNlx1NjM0Nlx1NTZmMFx1NjJlY1x1NjI2OVx1NWVkM1x1OTYxNFx1NTc4M1x1NjJjOVx1NTU4N1x1ODcyMVx1ODE0YVx1OGZhM1x1NTU2Nlx1ODNiMVx1Njc2NVx1OGQ1Nlx1ODRkZFx1NWE2YVx1NjgwZlx1NjJlNlx1N2JlZVx1OTYxMVx1NTE3MFx1NmY5Y1x1OGMzMFx1'@; put 'NjNmZFx1ODljOFx1NjFkMlx1N2YwNlx1NzBjMlx1NmVlNVx1NzQwNVx1Njk5NFx1NzJmY1x1NWVjYVx1OTBjZVx1NjcxN1x1NmQ2YVx1NjM1ZVx1NTJiM1x1NzI2Mlx1ODAwMVx1NGY2Y1x1NTllNVx1OTE2YVx1NzBkOVx1NmQ5ZFx1NTJkMlx1NGU1MFx1OTZmN1x1OTU2ZFx1ODU3ZVx1Nzhj'@; put 'YVx1N2QyZlx1NTEyMVx1NTc5Mlx1NjRjMlx1ODA4Ylx1N2M3Ylx1NmNlYVx1NjhmMVx1Njk1ZVx1NTFiN1x1NTM5OFx1NjhhOFx1NzI4MVx1OWVjZVx1N2JmMVx1NzJmOFx1NzliYlx1NmYxM1x1NzQwNlx1Njc0ZVx1OTFjY1x1OWNhNFx1NzkzY1x1ODM4OVx1ODM1NFx1NTQwZlx1NjgxN1x1'@; put 'NGUzZFx1NTM4OVx1NTJiMVx1NzgzZVx1NTM4Nlx1NTIyOVx1NTA4OFx1NGY4Ylx1NGZkMFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5Ml0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTkyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOTJdW21dXT00OTE1MittLEZbNDkxNTIrbV09eFsx'@; put 'OTJdW21dKTtmb3IoeFsxOTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1'@; put 'ZTJcdTdhY2JcdTdjOTJcdTZjYTVcdTk2YjZcdTUyOWJcdTc0ODNcdTU0ZTlcdTRmZTlcdTgwNTRcdTgzYjJcdThmZGVcdTk1NzBcdTVlYzlcdTYwMWNcdTZkOWZcdTVlMThcdTY1NWJcdTgxMzhcdTk0ZmVcdTYwNGJcdTcwYmNcdTdlYzNcdTdjYWVcdTUxYzlcdTY4ODFcdTdjYjFcdTgyNmZc'@; put 'dTRlMjRcdThmODZcdTkxY2ZcdTY2N2VcdTRlYWVcdThjMDVcdTY0YTlcdTgwNGFcdTUwZGFcdTc1OTdcdTcxY2VcdTViZTVcdThmYmRcdTZmNjZcdTRlODZcdTY0ODJcdTk1NjNcdTVlZDZcdTY1OTlcdTUyMTdcdTg4YzJcdTcwYzhcdTUyYTNcdTczMGVcdTc0MzNcdTY3OTdcdTc4ZjdcdTk3'@; put 'MTZcdTRlMzRcdTkwYmJcdTljZGVcdTZkY2JcdTUxZGJcdThkNDFcdTU0MWRcdTYyY2VcdTczYjJcdTgzZjFcdTk2ZjZcdTlmODRcdTk0YzNcdTRmMzZcdTdmOWFcdTUxY2NcdTcwNzVcdTk2NzVcdTVjYWRcdTk4ODZcdTUzZTZcdTRlZTRcdTZlOWNcdTc0MDlcdTY5YjRcdTc4NmJcdTk5OGZc'@; put 'dTc1NTlcdTUyMThcdTc2MjRcdTZkNDFcdTY3ZjNcdTUxNmRcdTlmOTlcdTgwNGJcdTU0OTlcdTdiM2NcdTdhYmZcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTNdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5M11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTkzXVttXV09NDk0MDgrbSxG'@; put 'WzQ5NDA4K21dPXhbMTkzXVttXSk7Zm9yKHhbMTk0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU5Njg2XHU1Nzg0XHU2MmUyXHU5NjQ3XHU2OTdjXHU1YTA0XHU2NDAyXHU3YmQzXHU2ZjBmXHU5NjRiXHU4MmE2XHU1MzYyXHU5ODg1XHU1ZTkwXHU3MDg5XHU2M2IzXHU1MzY0XHU4NjRmXHU5YzgxXHU5ZTkzXHU3ODhjXHU5NzMyXHU4ZGVmXHU4ZDQyXHU5ZTdmXHU2ZjVl'@; put 'XHU3OTg0XHU1ZjU1XHU5NjQ2XHU2MjJlXHU5YTc0XHU1NDE1XHU5NGRkXHU0ZmEzXHU2NWM1XHU1YzY1XHU1YzYxXHU3ZjE1XHU4NjUxXHU2YzJmXHU1ZjhiXHU3Mzg3XHU2ZWU0XHU3ZWZmXHU1Y2U2XHU2MzFiXHU1YjZhXHU2ZWU2XHU1Mzc1XHU0ZTcxXHU2M2EwXHU3NTY1XHU2MmExXHU4'@; put 'ZjZlXHU0ZjI2XHU0ZWQxXHU2Y2E2XHU3ZWI2XHU4YmJhXHU4NDFkXHU4N2JhXHU3ZjU3XHU5MDNiXHU5NTIzXHU3YmE5XHU5YWExXHU4OGY4XHU4NDNkXHU2ZDFiXHU5YTg2XHU3ZWRjXHU1OTg4XHU5ZWJiXHU3MzliXHU3ODAxXHU4NjgyXHU5YTZjXHU5YTgyXHU1NjFiXHU1NDE3XHU1N2Ni'@; put 'XHU0ZTcwXHU5ZWE2XHU1MzU2XHU4ZmM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NmVlXHU2ZWUxXHU4NTEzXHU2NmZjXHU2MTYyXHU2ZjJiXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTk0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsxOTRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5NF1b'@; put 'bV1dPTQ5NjY0K20sRls0OTY2NCttXT14WzE5NF1bbV0pO2Zvcih4WzE5NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGMyOVx1ODI5Mlx1ODMyYlx1NzZmMlx1NmMxM1x1NWZkOVx1ODNiZFx1NzMyYlx1ODMwNVx1OTUxYVx1NmJkYlx1NzdkYlx1OTRjNlx1NTM2Zlx1ODMwMlx1NTE5Mlx1NWUzZFx1OGM4Y1x1OGQzOFx1NGU0OFx1NzNhYlx1Njc5YVx1Njg4NVx1OTE3'@; put 'Nlx1OTcwOVx1NzE2NFx1NmNhMVx1NzcwOVx1NWE5Mlx1OTU0MVx1NmJjZlx1N2Y4ZVx1NjYyN1x1NWJkMFx1NTliOVx1NWE5YVx1OTVlOFx1OTVmN1x1NGVlY1x1ODQwY1x1ODQ5OVx1NmFhY1x1NzZkZlx1OTUzMFx1NzMxYlx1NjhhNlx1NWI1Zlx1NzcyZlx1OTE5YVx1OTc2MVx1N2NkY1x1'@; put 'OGZmN1x1OGMxY1x1NWYyNVx1N2M3M1x1NzlkOFx1ODljNVx1NmNjY1x1ODcxY1x1NWJjNlx1NWU0Mlx1NjhjOVx1NzcyMFx1N2VmNVx1NTE5NVx1NTE0ZFx1NTJjOVx1NWEyOVx1N2YwNVx1OTc2Mlx1ODJkN1x1NjNjZlx1Nzc4NFx1ODVkMFx1NzlkMlx1NmUzYVx1NWU5OVx1NTk5OVx1ODUx'@; put 'MVx1NzA2ZFx1NmMxMVx1NjJiZlx1NzZiZlx1NjU0Zlx1NjBhZlx1OTVmZFx1NjYwZVx1ODc5Zlx1OWUyM1x1OTRlZFx1NTQwZFx1NTQ3ZFx1OGMyY1x1NjQ3OFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5NV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMTk1XVttXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoYWVbeFsxOTVdW21dXT00OTkyMCttLEZbNDk5MjArbV09eFsxOTVdW21dKTtmb3IoeFsxOTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0NzlcdTg2MTFcdTZhMjFcdTgxOWNcdTc4ZThcdTY0NjlcdTliNTRcdTYyYjlcdTY3MmJcdTgzYWJcdTU4YThcdTllZDhcdTZjYWJcdTZmMjBcdTViZGVcdTk2NGNcdThjMGJcdTcyNWZcdTY3ZDBcdTYyYzdcdTcyNjFcdTRl'@; put 'YTlcdTU5YzZcdTZiY2RcdTU4OTNcdTY2YWVcdTVlNTVcdTUyZGZcdTYxNTVcdTY3MjhcdTc2ZWVcdTc3NjZcdTcyNjdcdTdhNDZcdTYyZmZcdTU0ZWFcdTU0NTBcdTk0YTBcdTkwYTNcdTVhMWNcdTdlYjNcdTZjMTZcdTRlNDNcdTU5NzZcdTgwMTBcdTU5NDhcdTUzNTdcdTc1MzdcdTk2YmVc'@; put 'dTU2Y2FcdTYzMjBcdTgxMTFcdTYwN2NcdTk1ZjlcdTZkZDZcdTU0NjJcdTk5ODFcdTUxODVcdTVhZTlcdTgwZmRcdTU5YWVcdTk3MTNcdTUwMmFcdTZjZTVcdTVjM2NcdTYyZGZcdTRmNjBcdTUzM2ZcdTgxN2JcdTkwMDZcdTZlYmFcdTg1MmJcdTYyYzhcdTVlNzRcdTc4YmVcdTY0YjVcdTYz'@; put 'N2JcdTVmZjVcdTVhMThcdTkxN2ZcdTllMWZcdTVjM2ZcdTYzNGZcdTgwNDJcdTViN2RcdTU1NmVcdTk1NGFcdTk1NGRcdTZkODVcdTYwYThcdTY3ZTBcdTcyZGVcdTUxZGRcdTViODFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsxOTZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5Nl1bbV0u'@; put 'Y2hhckNvZGVBdCgwKSYmKGFlW3hbMTk2XVttXV09NTAxNzYrbSxGWzUwMTc2K21dPXhbMTk2XVttXSk7Zm9yKHhbMTk3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MmU3XHU2Y2RlXHU3MjViXHU2MjZkXHU5NGFlXHU3ZWJkXHU4MTEzXHU2ZDUzXHU1MTljXHU1ZjA0XHU1OTc0XHU1MmFhXHU2MDEyXHU1OTczXHU2Njk2XHU4NjUwXHU3NTlmXHU2MzJhXHU2MWU2XHU3'@; put 'Y2VmXHU4YmZhXHU1NGU2XHU2YjI3XHU5ZTI1XHU2YmI0XHU4NWQ1XHU1NDU1XHU1MDc2XHU2Y2E0XHU1NTZhXHU4ZGI0XHU3MjJjXHU1ZTE1XHU2MDE1XHU3NDM2XHU2MmNkXHU2MzkyXHU3MjRjXHU1Zjk4XHU2ZTQzXHU2ZDNlXHU2NTAwXHU2ZjU4XHU3NmQ4XHU3OGQwXHU3NmZjXHU3NTU0'@; put 'XHU1MjI0XHU1M2RiXHU0ZTUzXHU1ZTllXHU2NWMxXHU4MDJhXHU4MGQ2XHU2MjliXHU1NDg2XHU1MjI4XHU3MGFlXHU4ODhkXHU4ZGQxXHU2Y2UxXHU1NDc4XHU4MGRhXHU1N2Y5XHU4OGY0XHU4ZDU0XHU5NjZhXHU5MTRkXHU0ZjY5XHU2YzliXHU1NWI3XHU3NmM2XHU3ODMwXHU2MmE4XHU3'@; put 'MGY5XHU2ZjhlXHU1ZjZkXHU4NGVjXHU2OGRhXHU3ODdjXHU3YmY3XHU4MWE4XHU2NzBiXHU5ZTRmXHU2MzY3XHU3OGIwXHU1NzZmXHU3ODEyXHU5NzM5XHU2Mjc5XHU2MmFiXHU1Mjg4XHU3NDM1XHU2YmQ3XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMTk3XS5sZW5ndGg7KyttKTY1NTMz'@; put 'IT09eFsxOTddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzE5N11bbV1dPTUwNDMyK20sRls1MDQzMittXT14WzE5N11bbV0pO2Zvcih4WzE5OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTU2NFx1ODEzZVx1NzViMlx1NzZhZVx1NTMzOVx1NzVkZVx1NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1'@; put 'NjQ4N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQyYlx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1ODQwZFx1NWU3M1x1NTFlZFx1NzRmNlx1OGJjNFx1NWM0Zlx1NTc2MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVj'@; put 'Nlx1ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMzMVx1NjZkZFx1NzAxMVx1NjcxZlx1NmIzYVx1NjgxNlx1NjIxYVx1NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1'@; put 'NWQwZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1NGYwMVx1NTQyZlx1NTk1MVx1NzgwY1x1NTY2OFx1NmMxNFx1OGZjNFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzE5OF0ubGVu'@; put 'Z3RoOysrbSk2NTUzMyE9PXhbMTk4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsxOThdW21dXT01MDY4OCttLEZbNTA2ODgrbV09eFsxOThdW21dKTtmb3IoeFsxOTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNzBcdTZkM2RcdTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdiN2VcdTRlZGZcdThjMjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0YjNc'@; put 'dTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFcdTU0NWJcdTgxNTRcdTdmOGNcdTU4OTlcdTg1MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3YTdcdTRlNTRcdTRmYThcdTVkZTdcdTk3OThcdTY0'@; put 'YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0YTZcdTRmYjVcdTRlYjJcdTc5ZTZcdTc0MzRcdTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3NTJcdThmN2JcdTZjMjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0Y2Vc'@; put 'dTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThcdTkwYjFcdTc0MDNcdTZjNDJcdTU2ZGFcdTkxNGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZcdTVjNDhcdTlhNzFcdTZlMjBcdWZmZmQiLnNwbGl0KCIiKSxtPTA7'@; put 'bSE9eFsxOTldLmxlbmd0aDsrK20pNjU1MzMhPT14WzE5OV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMTk5XVttXV09NTA5NDQrbSxGWzUwOTQ0K21dPXhbMTk5XVttXSk7Zm9yKHhbMjAwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1M2Q2XHU1YTM2XHU5ZjhiXHU4ZGEzXHU1M2JiXHU1NzA4XHU5OGE3XHU2NzQzXHU5MTliXHU2Y2M5XHU1MTY4XHU3NWNhXHU2MmYz'@; put 'XHU3MmFjXHU1MjM4XHU1MjlkXHU3ZjNhXHU3MDk0XHU3NjM4XHU1Mzc0XHU5ZTRhXHU2OWI3XHU3ODZlXHU5NmMwXHU4OGQ5XHU3ZmE0XHU3MTM2XHU3MWMzXHU1MTg5XHU2N2QzXHU3NGU0XHU1OGU0XHU2NTE4XHU1NmI3XHU4YmE5XHU5OTc2XHU2MjcwXHU3ZWQ1XHU2MGY5XHU3MGVkXHU1'@; put 'OGVjXHU0ZWMxXHU0ZWJhXHU1ZmNkXHU5N2U3XHU0ZWZiXHU4YmE0XHU1MjAzXHU1OThhXHU3ZWFiXHU2MjU0XHU0ZWNkXHU2NWU1XHU2MjBlXHU4MzM4XHU4NGM5XHU4MzYzXHU4NzhkXHU3MTk0XHU2ZWI2XHU1YmI5XHU3ZWQyXHU1MTk3XHU2M2M5XHU2N2Q0XHU4MDg5XHU4MzM5XHU4ODE1'@; put 'XHU1MTEyXHU1YjdhXHU1OTgyXHU4ZmIxXHU0ZTczXHU2YzVkXHU1MTY1XHU4OTI1XHU4ZjZmXHU5NjJlXHU4NTRhXHU3NDVlXHU5NTEwXHU5NWYwXHU2ZGE2XHU4MmU1XHU1ZjMxXHU2NDkyXHU2ZDEyXHU4NDI4XHU4MTZlXHU5Y2MzXHU1ODVlXHU4ZDViXHU0ZTA5XHU1M2MxXHVmZmZkIi5z'@; put 'cGxpdCgiIiksbT0wO20hPXhbMjAwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwMF1bbV1dPTUxMjAwK20sRls1MTIwMCttXT14WzIwMF1bbV0pO2Zvcih4WzIwMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3'@; put 'Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBiYlx1NTU2NVx1NzE1ZVx1N2I1Ylx1NjY1Mlx1NzNjYVx1ODJlYlx1Njc0OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1'@; put 'NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1ODhmM1x1NjhhMlx1NjM0ZVx1N2EwZFx1NzBlN1x1ODI4ZFx1NTJmYVx1OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2'@; put 'Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYzOFx1OGVhYlx1NmRmMVx1NWEyMFx1N2VjNVx1Nzk1ZVx1NmM4OFx1NWJhMVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1'@; put 'N2VmM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwMV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjAxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDFdW21dXT01MTQ1NittLEZbNTE0NTYrbV09eFsyMDFdW21dKTtmb3IoeFsyMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3MDFcdTc2ZGJcdTUyNjlcdTgwZGNcdTU3MjNcdTVlMDhcdTU5MzFcdTcyZWVcdTY1'@; put 'YmRcdTZlN2ZcdThiZDdcdTVjMzhcdTg2NzFcdTUzNDFcdTc3ZjNcdTYyZmVcdTY1ZjZcdTRlYzBcdTk4ZGZcdTg2ODBcdTViOWVcdThiYzZcdTUzZjJcdTc3ZTJcdTRmN2ZcdTVjNGVcdTlhNzZcdTU5Y2JcdTVmMGZcdTc5M2FcdTU4ZWJcdTRlMTZcdTY3ZmZcdTRlOGJcdTYyZWRcdThhOTNc'@; put 'dTkwMWRcdTUyYmZcdTY2MmZcdTU1ZGNcdTU2NmNcdTkwMDJcdTRlZDVcdTRmOGRcdTkxY2FcdTk5NzBcdTZjMGZcdTVlMDJcdTYwNDNcdTViYTRcdTg5YzZcdThiZDVcdTY1MzZcdTYyNGJcdTk5OTZcdTViODhcdTViZmZcdTYzODhcdTU1MmVcdTUzZDdcdTc2MjZcdTUxN2RcdTg1MmNcdTY3'@; put 'YTJcdTY4YjNcdTZiOGFcdTYyOTJcdThmOTNcdTUzZDRcdTgyMTJcdTZkZDFcdTc1OGZcdTRlNjZcdThkNGVcdTViNzBcdTcxOWZcdTg1YWZcdTY2OTFcdTY2ZDlcdTdmNzJcdTg3MDBcdTllY2RcdTlmMjBcdTVjNWVcdTY3MmZcdThmZjBcdTY4MTFcdTY3NWZcdTYyMGRcdTdhZDZcdTU4ODVc'@; put 'dTVlYjZcdTY1NzBcdTZmMzFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwMl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjAyXVttXV09NTE3MTIrbSxGWzUxNzEyK21dPXhbMjAyXVttXSk7Zm9yKHhbMjAzXT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDU1XHU1MjM3XHU4MDBkXHU2NDU0XHU4ODcwXHU3NTI5XHU1'@; put 'ZTA1XHU2ODEzXHU2MmY0XHU5NzFjXHU1M2NjXHU3MjNkXHU4YzAxXHU2YzM0XHU3NzYxXHU3YTBlXHU1NDJlXHU3N2FjXHU5ODdhXHU4MjFjXHU4YmY0XHU3ODU1XHU2NzE0XHU3MGMxXHU2NWFmXHU2NDk1XHU1NjM2XHU2MDFkXHU3OWMxXHU1M2Y4XHU0ZTFkXHU2YjdiXHU4MDg2XHU1YmZh'@; put 'XHU1NWUzXHU1NmRiXHU0ZjNhXHU0ZjNjXHU5OTcyXHU1ZGYzXHU2NzdlXHU4MDM4XHU2MDAyXHU5ODgyXHU5MDAxXHU1YjhiXHU4YmJjXHU4YmY1XHU2NDFjXHU4MjU4XHU2NGRlXHU1NWZkXHU4MmNmXHU5MTY1XHU0ZmQ3XHU3ZDIwXHU5MDFmXHU3YzlmXHU1MGYzXHU1ODUxXHU2ZWFmXHU1'@; put 'YmJmXHU4YmM5XHU4MDgzXHU5MTc4XHU4NDljXHU3Yjk3XHU4NjdkXHU5NjhiXHU5NjhmXHU3ZWU1XHU5YWQzXHU3ODhlXHU1YzgxXHU3YTU3XHU5MDQyXHU5NmE3XHU3OTVmXHU1YjU5XHU2MzVmXHU3YjBiXHU4NGQxXHU2OGFkXHU1NTA2XHU3ZjI5XHU3NDEwXHU3ZDIyXHU5NTAxXHU2MjQw'@; put 'XHU1ODRjXHU0ZWQ2XHU1YjgzXHU1OTc5XHU1ODU0XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjAzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDNdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwM11bbV1dPTUxOTY4K20sRls1MTk2OCttXT14WzIwM11bbV0pO2Zvcih4WzIwNF09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzM2ZFx1NjMxZVx1OGU0Ylx1OGUwZlx1'@; put 'ODBjZVx1ODJkNFx1NjJhY1x1NTNmMFx1NmNmMFx1OTE1ZVx1NTkyYVx1NjAwMVx1NmM3MFx1NTc0ZFx1NjQ0YVx1OGQyYVx1NzYyYlx1NmVlOVx1NTc1Ylx1NmE4MFx1NzVmMFx1NmY2ZFx1OGMyZFx1OGMwOFx1NTc2Nlx1NmJlZlx1ODg5Mlx1NzhiM1x1NjNhMlx1NTNmOVx1NzBhZFx1NmM2'@; put 'NFx1NTg1OFx1NjQyYVx1NTgwMlx1NjhlMFx1ODE5Ylx1NTUxMFx1N2NkNlx1NTAxOFx1OGViYVx1NmRjY1x1OGQ5Zlx1NzBlYlx1NjM4Zlx1NmQ5Ylx1NmVkNFx1N2VlNlx1ODQwNFx1Njg0M1x1OTAwM1x1NmRkOFx1OTY3Nlx1OGJhOFx1NTk1N1x1NzI3OVx1ODVlNFx1ODE3ZVx1NzViY1x1'@; put 'OGE4YVx1NjhhZlx1NTI1NFx1OGUyMlx1OTUxMVx1NjNkMFx1OTg5OFx1OGU0NFx1NTU3Y1x1NGY1M1x1NjZmZlx1NTY4Zlx1NjBkNVx1NmQ5NVx1NTI0M1x1NWM0OVx1NTkyOVx1NmRmYlx1NTg2Ylx1NzUzMFx1NzUxY1x1NjA2Y1x1ODIxNFx1ODE0Nlx1NjMxMVx1Njc2MVx1OGZlMlx1Nzcz'@; put 'YVx1OGRmM1x1OGQzNFx1OTRjMVx1NWUxNlx1NTM4NVx1NTQyY1x1NzBjM1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwNF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA0XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMDRdW21dXT01MjIyNCttLEZbNTIyMjQrbV09eFsyMDRdW21dKTtm'@; put 'b3IoeFsyMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZjNDBcdTVlZjdc'@; put 'dTUwNWNcdTRlYWRcdTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNcdTk0ZGNcdTVmNjRcdTdhZTVcdTY4NzZcdTYzNDVcdTdiNTJcdTdlZGZcdTc1ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZcdTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkw'@; put 'MTRcdTZkODJcdTVjNjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgxN2ZcdTg3MTVcdTg5MmFcdTkwMDBcdTU0MWVcdTVjNmZcdTgxYzBcdTYyZDZcdTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlhNmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2Vc'@; put 'dTYzMTZcdTU0YzdcdTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNcdTVmMmZcdTZlN2VcdTczYTlcdTk4N2RcdTRlMzhcdTcwZjdcdTViOGNcdTc4OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2JcdTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTcz'@; put 'OGJcdTRlYTFcdTY3ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDVdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwNV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjA1XVttXV09NTI0ODArbSxGWzUyNDgwK21d'@; put 'PXhbMjA1XVttXSk7Zm9yKHhbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU1ZGNkXHU1ZmFlXHU1MzcxXHU5N2U2XHU4ZmRkXHU2ODQ1XHU1NmY0XHU1NTJmXHU2MGRmXHU0ZTNhXHU2ZjRkXHU3ZWY0XHU4MmM3XHU4NDBlXHU1OWQ0XHU0ZjFmXHU0ZjJhXHU1YzNlXHU3ZWFjXHU2NzJhXHU4NTFhXHU1NDczXHU3NTRmXHU4MGMzXHU1NTgyXHU5YjRmXHU0ZjRkXHU2'@; put 'ZTJkXHU4YzEzXHU1YzA5XHU2MTcwXHU1MzZiXHU3NjFmXHU2ZTI5XHU4NjhhXHU2NTg3XHU5NWZiXHU3ZWI5XHU1NDNiXHU3YTMzXHU3ZDBhXHU5NWVlXHU1NWUxXHU3ZmMxXHU3NGVlXHU2MzFkXHU4NzE3XHU2ZGExXHU3YTlkXHU2MjExXHU2NWExXHU1MzY3XHU2M2UxXHU2YzgzXHU1ZGVi'@; put 'XHU1NDVjXHU5NGE4XHU0ZTRjXHU2YzYxXHU4YmVjXHU1YzRiXHU2NWUwXHU4MjljXHU2OGE3XHU1NDNlXHU1NDM0XHU2YmNiXHU2YjY2XHU0ZTk0XHU2MzQyXHU1MzQ4XHU4MjFlXHU0ZjBkXHU0ZmFlXHU1NzVlXHU2MjBhXHU5NmZlXHU2NjY0XHU3MjY5XHU1MmZmXHU1MmExXHU2MDlmXHU4'@; put 'YmVmXHU2NjE0XHU3MTk5XHU2NzkwXHU4OTdmXHU3ODUyXHU3N2ZkXHU2NjcwXHU1NjNiXHU1NDM4XHU5NTIxXHU3MjdhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA2XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwNl1bbV1dPTUyNzM2'@; put 'K20sRls1MjczNittXT14WzIwNl1bbV0pO2Zvcih4WzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBkY1x1NzE4NFx1NzBlZlx1NmVhYVx1NmM1MFx1NzI4MFx1NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1NjIwZlx1N2VjNlx1Nzc4ZVx1'@; put 'ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1NTNhNlx1NTkwZlx1NTQxM1x1NjM4MFx1OTUyOFx1NTE0OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYyNlx1NWFjY1x1NjYzZVx1OTY2'@; put 'OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1MFx1N2ViZlx1NzZmOFx1NTNhMlx1OTU3Nlx1OTk5OVx1N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1OTg3OVx1NWRmN1x1NmE2MVx1'@; put 'NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1OTUwMFx1NmQ4OFx1NWJiNVx1NmRjNlx1NjY1M1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIwN10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjA3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsy'@; put 'MDddW21dXT01Mjk5MittLEZbNTI5OTIrbV09eFsyMDddW21dKTtmb3IoeFsyMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjMGZcdTViNWRcdTY4MjFcdTgwOTZcdTU1NzhcdTdiMTFcdTY1NDhcdTY5NTRcdTRlOWJcdTZiNDdcdTg3NGVcdTk3OGJcdTUzNGZcdTYzMWZcdTY0M2FcdTkwYWFcdTY1OWNcdTgwYzFcdThjMTBcdTUxOTlcdTY4YjBcdTUzNzhcdTg3Zjlc'@; put 'dTYxYzhcdTZjYzRcdTZjZmJcdThjMjJcdTVjNTFcdTg1YWFcdTgyYWZcdTk1MGNcdTZiMjNcdThmOWJcdTY1YjBcdTVmZmJcdTVmYzNcdTRmZTFcdTg4NDVcdTY2MWZcdTgxNjVcdTczMjlcdTYwZmFcdTUxNzRcdTUyMTFcdTU3OGJcdTVmNjJcdTkwYTJcdTg4NGNcdTkxOTJcdTVlNzhcdTY3'@; put 'NGZcdTYwMjdcdTU5ZDNcdTUxNDRcdTUxZjZcdTgwZjhcdTUzMDhcdTZjNzlcdTk2YzRcdTcxOGFcdTRmMTFcdTRmZWVcdTdmOWVcdTY3M2RcdTU1YzVcdTk1MDhcdTc5YzBcdTg4OTZcdTdlZTNcdTU4OWZcdTYyMGNcdTk3MDBcdTg2NWFcdTU2MThcdTk4N2JcdTVmOTBcdThiYjhcdTg0YzRc'@; put 'dTkxNTdcdTUzZDlcdTY1ZWRcdTVlOGZcdTc1NWNcdTYwNjRcdTdkNmVcdTVhN2ZcdTdlZWFcdTdlZWRcdThmNjlcdTU1YTdcdTViYTNcdTYwYWNcdTY1Y2JcdTczODRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMDhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIwOF1bbV0uY2hhckNvZGVB'@; put 'dCgwKSYmKGFlW3hbMjA4XVttXV09NTMyNDgrbSxGWzUzMjQ4K21dPXhbMjA4XVttXSk7Zm9yKHhbMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDA5XHU3NjYzXHU3NzI5XHU3ZWRhXHU5Nzc0XHU4NTliXHU1YjY2XHU3YTc0XHU5NmVhXHU4ODQwXHU1MmNiXHU3MThmXHU1ZmFhXHU2NWVjXHU4YmUyXHU1YmZiXHU5YTZmXHU1ZGUxXHU2Yjg5XHU2YzViXHU4YmFk'@; put 'XHU4YmFmXHU5MDBhXHU4ZmM1XHU1MzhiXHU2MmJjXHU5ZTI2XHU5ZTJkXHU1NDQwXHU0ZTJiXHU4MmJkXHU3MjU5XHU4NjljXHU1ZDE2XHU4ODU5XHU2ZGFmXHU5NmM1XHU1NGQxXHU0ZTlhXHU4YmI2XHU3MTA5XHU1NGJkXHU5NjA5XHU3MGRmXHU2ZGY5XHU3NmQwXHU0ZTI1XHU3ODE0XHU4'@; put 'NzEyXHU1Y2E5XHU1ZWY2XHU4YTAwXHU5ODljXHU5NjBlXHU3MDhlXHU2Y2JmXHU1OTQ0XHU2M2E5XHU3NzNjXHU4ODRkXHU2ZjE0XHU4MjczXHU1ODMwXHU3MWQ1XHU1MzhjXHU3ODFhXHU5NmMxXHU1NTAxXHU1ZjY2XHU3MTMwXHU1YmI0XHU4YzFhXHU5YThjXHU2YjgzXHU1OTJlXHU5ZTJm'@; put 'XHU3OWU3XHU2NzY4XHU2MjZjXHU0ZjZmXHU3NWExXHU3ZjhhXHU2ZDBiXHU5NjMzXHU2YzI3XHU0ZWYwXHU3NWQyXHU1MTdiXHU2ODM3XHU2ZjNlXHU5MDgwXHU4MTcwXHU1OTk2XHU3NDc2XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjA5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMDld'@; put 'W21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIwOV1bbV1dPTUzNTA0K20sRls1MzUwNCttXT14WzIwOV1bbV0pO2Zvcih4WzIxMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjQ0N1x1NWMyN1x1OTA2NVx1N2E5MVx1OGMyM1x1NTlkYVx1NTRhY1x1ODIwMFx1ODM2Zlx1ODk4MVx1ODAwMFx1NjkzMFx1NTY0ZVx1ODAzNlx1NzIzN1x1OTFjZVx1NTFiNlx1NGU1Zlx1OTg3'@; put 'NVx1NjM5Nlx1NGUxYVx1NTNmNlx1NjZmM1x1ODE0Ylx1NTkxY1x1NmRiMlx1NGUwMFx1NThmOVx1NTMzYlx1NjNkNlx1OTRmMVx1NGY5ZFx1NGYwYVx1ODg2M1x1OTg5MFx1NTkzN1x1OTA1N1x1NzlmYlx1NGVlYVx1ODBmMFx1NzU5MVx1NmM4Mlx1NWI5Y1x1NTllOFx1NWY1ZFx1NjkwNVx1'@; put 'ODY4MVx1NTAxYVx1NWRmMlx1NGU1OVx1NzdlM1x1NGVlNVx1ODI3YVx1NjI5MVx1NjYxM1x1OTA5MVx1NWM3OVx1NGViZlx1NWY3OVx1ODFjNlx1OTAzOFx1ODA4NFx1NzVhYlx1NGVhNlx1ODhkNFx1NjEwZlx1NmJjNVx1NWZjNlx1NGU0OVx1NzZjYVx1NmVhMlx1OGJlM1x1OGJhZVx1OGMw'@; put 'YVx1OGJkMVx1NWYwMlx1N2ZmY1x1N2ZjY1x1N2VjZVx1ODMzNVx1ODM2Ylx1NTZlMFx1NmJiN1x1OTdmM1x1OTYzNFx1NTlmYlx1NTQxZlx1OTRmNlx1NmRlYlx1NWJjNVx1OTk2ZVx1NWMzOVx1NWYxNVx1OTY5MFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxMF0ubGVuZ3RoOysrbSk2'@; put 'NTUzMyE9PXhbMjEwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTBdW21dXT01Mzc2MCttLEZbNTM3NjArbV09eFsyMTBdW21dKTtmb3IoeFsyMTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUzNzBcdTgyZjFcdTZhMzFcdTVhNzRcdTllNzBcdTVlOTRcdTdmMjhcdTgzYjlcdTg0MjRcdTg0MjVcdTgzNjdcdTg3NDdcdThmY2VcdThkNjJcdTc2YzhcdTVmNzFcdTk4'@; put 'OTZcdTc4NmNcdTY2MjBcdTU0ZGZcdTYyZTVcdTRmNjNcdTgxYzNcdTc1YzhcdTVlYjhcdTk2Y2RcdThlMGFcdTg2ZjlcdTU0OGZcdTZjZjNcdTZkOGNcdTZjMzhcdTYwN2ZcdTUyYzdcdTc1MjhcdTVlN2RcdTRmMThcdTYwYTBcdTVmZTdcdTVjMjRcdTc1MzFcdTkwYWVcdTk0YzBcdTcyYjlc'@; put 'dTZjYjlcdTZlMzhcdTkxNDlcdTY3MDlcdTUzY2JcdTUzZjNcdTRmNTFcdTkxYzlcdThiZjFcdTUzYzhcdTVlN2NcdThmYzJcdTZkZTRcdTRlOGVcdTc2YzJcdTY5ODZcdTg2NWVcdTYxMWFcdTgyMDZcdTRmNTlcdTRmZGVcdTkwM2VcdTljN2NcdTYxMDlcdTZlMWRcdTZlMTRcdTk2ODVcdTRl'@; put 'ODhcdTVhMzFcdTk2ZThcdTRlMGVcdTVjN2ZcdTc5YjlcdTViODdcdThiZWRcdTdmYmRcdTczODlcdTU3ZGZcdTgyOGJcdTkwYzFcdTU0MDFcdTkwNDdcdTU1YmJcdTVjZWFcdTVmYTFcdTYxMDhcdTZiMzJcdTcyZjFcdTgwYjJcdThhODlcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTFd'@; put 'Lmxlbmd0aDsrK20pNjU1MzMhPT14WzIxMV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjExXVttXV09NTQwMTYrbSxGWzU0MDE2K21dPXhbMjExXVttXSk7Zm9yKHhbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDc0XHU1YmQzXHU4OGQ1XHU5ODg0XHU4YzZiXHU5YTZkXHU5ZTMzXHU2ZTBhXHU1MWE0XHU1MTQzXHU1N2EzXHU4ODgxXHU1MzlmXHU2M2Y0XHU4'@; put 'Zjk1XHU1NmVkXHU1NDU4XHU1NzA2XHU3MzNmXHU2ZTkwXHU3ZjE4XHU4ZmRjXHU4MmQxXHU2MTNmXHU2MDI4XHU5NjYyXHU2NmYwXHU3ZWE2XHU4ZDhhXHU4ZGMzXHU5NGE1XHU1Y2IzXHU3Y2E0XHU2NzA4XHU2MGE2XHU5NjA1XHU4MDE4XHU0ZTkxXHU5MGU3XHU1MzAwXHU5NjY4XHU1MTQx'@; put 'XHU4ZmQwXHU4NTc0XHU5MTVkXHU2NjU1XHU5N2Y1XHU1YjU1XHU1MzFkXHU3ODM4XHU2NzQyXHU2ODNkXHU1NGM5XHU3MDdlXHU1YmIwXHU4ZjdkXHU1MThkXHU1NzI4XHU1NGIxXHU2NTEyXHU2NjgyXHU4ZDVlXHU4ZDQzXHU4MTBmXHU4NDZjXHU5MDZkXHU3Y2RmXHU1MWZmXHU4NWZiXHU2'@; put 'N2EzXHU2NWU5XHU2ZmExXHU4NmE0XHU4ZTgxXHU1NjZhXHU5MDIwXHU3NjgyXHU3MDc2XHU3MWU1XHU4ZDIzXHU2MmU5XHU1MjE5XHU2Y2ZkXHU4ZDNjXHU2MDBlXHU1ODllXHU2MThlXHU2NmZlXHU4ZDYwXHU2MjRlXHU1NWIzXHU2ZTIzXHU2NzJkXHU4ZjY3XHVmZmZkIi5zcGxpdCgiIiks'@; put 'bT0wO20hPXhbMjEyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxMl1bbV1dPTU0MjcyK20sRls1NDI3MittXT14WzIxMl1bbV0pO2Zvcih4WzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTRlMVx1OTVmOFx1NzcyOFx1NjgwNVx1NjlhOFx1NTQ4Ylx1NGU0ZFx1NzBiOFx1OGJjOFx1NjQ1OFx1NjU4Ylx1NWI4NVx1'@; put 'N2E4NFx1NTAzYVx1NWJlOFx1NzdiYlx1NmJlMVx1OGE3OVx1N2M5OFx1NmNiZVx1NzZjZlx1NjVhOVx1OGY5N1x1NWQyZFx1NWM1NVx1ODYzOFx1NjgwOFx1NTM2MFx1NjIxOFx1N2FkOVx1NmU1Ylx1N2VmZFx1NmExZlx1N2FlMFx1NWY3MFx1NmYzM1x1NWYyMFx1NjM4Y1x1NmRhOFx1Njc1'@; put 'Nlx1NGUwOFx1NWUxMFx1OGQyNlx1NGVkN1x1ODBjMFx1NzYzNFx1OTY5Y1x1NjJkYlx1NjYyZFx1NjI3ZVx1NmNiY1x1OGQ3NVx1NzE2N1x1N2Y2OVx1NTE0Nlx1ODA4N1x1NTNlY1x1OTA2ZVx1NjI5OFx1NTRmMlx1ODZmMFx1OGY5OVx1ODAwNVx1OTUxN1x1ODUxN1x1OGZkOVx1NmQ1OVx1'@; put 'NzNjZFx1NjU5Zlx1NzcxZlx1NzUwNFx1NzgyN1x1ODFmYlx1OGQxZVx1OTQ4OFx1NGZhNlx1Njc5NVx1NzViOVx1OGJjYVx1OTcwN1x1NjMyZlx1OTU0N1x1OTYzNVx1ODRiOFx1NjMyM1x1Nzc0MVx1NWY4MVx1NzJmMFx1NGU4OVx1NjAxNFx1NjU3NFx1NjJlZlx1NmI2M1x1NjUzZlx1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLG09MDttIT14WzIxM10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjEzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTNdW21dXT01NDUyOCttLEZbNTQ1MjgrbV09eFsyMTNdW21dKTtmb3IoeFsyMTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRcdTY1MmZcdTU0MzFcdTg3MThcdTc3ZTVc'@; put 'dTgwYTJcdTgxMDJcdTZjNDFcdTRlNGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdcdTUwM2NcdTRmODRcdTU3NDBcdTYzMDdcdTZiNjJcdThkYmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgxZjRcdTdmNmVcdTVlMWNcdTVjZDlcdTUy'@; put 'MzZcdTY2N2FcdTc5ZTlcdTdhMWFcdThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRlMmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4NzdcdTdlYzhcdTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVcdTZkMzJcdThiY2NcdTdjYTVcdThmNzRc'@; put 'dTgwOThcdTVlMWFcdTU0OTJcdTc2YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJcdTY3MzFcdTczMmFcdThiZjhcdThiZGJcdTkwMTBcdTdhZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3ZjFcdTUyYTlcdTg2YzBcdThkMmVcdTk0'@; put 'ZjhcdTdiNTFcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxNF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjE0XVttXV09NTQ3ODQrbSxGWzU0Nzg0K21dPXhbMjE0XVttXSk7Zm9yKHhbMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZjRmXHU2Y2U4XHU3OTVkXHU5YTdiXHU2MjkzXHU3MjJhXHU2MmZkXHU0ZTEz'@; put 'XHU3ODE2XHU4ZjZjXHU2NGIwXHU4ZDVhXHU3YmM2XHU2ODY5XHU1ZTg0XHU4OGM1XHU1OTg2XHU2NDllXHU1OGVlXHU3MmI2XHU2OTBlXHU5NTI1XHU4ZmZkXHU4ZDU4XHU1NzYwXHU3ZjAwXHU4YzA2XHU1MWM2XHU2MzQ5XHU2MmQ5XHU1MzUzXHU2ODRjXHU3NDIyXHU4MzAxXHU5MTRjXHU1'@; put 'NTQ0XHU3NzQwXHU3MDdjXHU2ZDRhXHU1MTc5XHU1NGE4XHU4ZDQ0XHU1OWZmXHU2ZWNiXHU2ZGM0XHU1YjVjXHU3ZDJiXHU0ZWQ0XHU3YzdkXHU2ZWQzXHU1YjUwXHU4MWVhXHU2ZTBkXHU1YjU3XHU5YjAzXHU2OGQ1XHU4ZTJhXHU1Yjk3XHU3ZWZjXHU2MDNiXHU3ZWI1XHU5MGI5XHU4ZDcw'@; put 'XHU1OTRmXHU2M2NkXHU3OWRmXHU4ZGIzXHU1MzUyXHU2NWNmXHU3OTU2XHU4YmM1XHU5NjNiXHU3ZWM0XHU5NGJiXHU3ZTgyXHU1NjM0XHU5MTg5XHU2NzAwXHU3ZjZhXHU1YzBhXHU5MDc1XHU2NjI4XHU1ZGU2XHU0ZjUwXHU2N2RlXHU1MDVhXHU0ZjVjXHU1NzUwXHU1ZWE3XHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjE1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMTVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxNV1bbV1dPTU1MDQwK20sRls1NTA0MCttXT14WzIxNV1bbV0pO2Zvcih4WzIxNl09Ilx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGU4ZFx1NGUwY1x1NTE0MFx1NGUxMFx1NWVmZlx1NTM0'@; put 'NVx1NGUxNVx1NGU5OFx1NGUxZVx1OWIzMlx1NWI2Y1x1NTY2OVx1NGUyOFx1NzliYVx1NGUzZlx1NTMxNVx1NGU0N1x1NTkyZFx1NzIzYlx1NTM2ZVx1NmMxMFx1NTZkZlx1ODBlNFx1OTk5N1x1NmJkM1x1Nzc3ZVx1OWYxN1x1NGUzNlx1NGU5Zlx1OWYxMFx1NGU1Y1x1NGU2OVx1NGU5M1x1'@; put 'ODI4OFx1NWI1Ylx1NTU2Y1x1NTYwZlx1NGVjNFx1NTM4ZFx1NTM5ZFx1NTNhM1x1NTNhNVx1NTNhZVx1OTc2NVx1OGQ1ZFx1NTMxYVx1NTNmNVx1NTMyNlx1NTMyZVx1NTMzZVx1OGQ1Y1x1NTM2Nlx1NTM2M1x1NTIwMlx1NTIwOFx1NTIwZVx1NTIyZFx1NTIzM1x1NTIzZlx1NTI0MFx1NTI0'@; put 'Y1x1NTI1ZVx1NTI2MVx1NTI1Y1x1ODRhZlx1NTI3ZFx1NTI4Mlx1NTI4MVx1NTI5MFx1NTI5M1x1NTE4Mlx1N2Y1NFx1NGViYlx1NGVjM1x1NGVjOVx1NGVjMlx1NGVlOFx1NGVlMVx1NGVlYlx1NGVkZVx1NGYxYlx1NGVmM1x1NGYyMlx1NGY2NFx1NGVmNVx1NGYyNVx1NGYyN1x1NGYwOVx1'@; put 'NGYyYlx1NGY1ZVx1NGY2N1x1NjUzOFx1NGY1YVx1NGY1ZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxNl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjE2XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTZdW21dXT01NTI5NittLEZbNTUyOTYrbV09eFsyMTZdW21dKTtmb3IoeFsyMTdd'@; put 'PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmNWZcdTRmNTdcdTRmMzJcdTRm'@; put 'M2RcdTRmNzZcdTRmNzRcdTRmOTFcdTRmODlcdTRmODNcdTRmOGZcdTRmN2VcdTRmN2JcdTRmYWFcdTRmN2NcdTRmYWNcdTRmOTRcdTRmZTZcdTRmZThcdTRmZWFcdTRmYzVcdTRmZGFcdTRmZTNcdTRmZGNcdTRmZDFcdTRmZGZcdTRmZjhcdTUwMjlcdTUwNGNcdTRmZjNcdTUwMmNcdTUwMGZc'@; put 'dTUwMmVcdTUwMmRcdTRmZmVcdTUwMWNcdTUwMGNcdTUwMjVcdTUwMjhcdTUwN2VcdTUwNDNcdTUwNTVcdTUwNDhcdTUwNGVcdTUwNmNcdTUwN2JcdTUwYTVcdTUwYTdcdTUwYTlcdTUwYmFcdTUwZDZcdTUxMDZcdTUwZWRcdTUwZWNcdTUwZTZcdTUwZWVcdTUxMDdcdTUxMGJcdTRlZGRcdTZj'@; put 'M2RcdTRmNThcdTRmNjVcdTRmY2VcdTlmYTBcdTZjNDZcdTdjNzRcdTUxNmVcdTVkZmRcdTllYzlcdTk5OThcdTUxODFcdTU5MTRcdTUyZjlcdTUzMGRcdThhMDdcdTUzMTBcdTUxZWJcdTU5MTlcdTUxNTVcdTRlYTBcdTUxNTZcdTRlYjNcdTg4NmVcdTg4YTRcdTRlYjVcdTgxMTRcdTg4ZDJc'@; put 'dTc5ODBcdTViMzRcdTg4MDNcdTdmYjhcdTUxYWJcdTUxYjFcdTUxYmRcdTUxYmNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMTddLmxlbmd0aDsrK20pNjU1MzMhPT14WzIxN11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjE3XVttXV09NTU1NTIrbSxGWzU1NTUyK21dPXhbMjE3XVtt'@; put 'XSk7Zm9yKHhbMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MWM3XHU1'@; put 'MTk2XHU1MWEyXHU1MWE1XHU4YmEwXHU4YmE2XHU4YmE3XHU4YmFhXHU4YmI0XHU4YmI1XHU4YmI3XHU4YmMyXHU4YmMzXHU4YmNiXHU4YmNmXHU4YmNlXHU4YmQyXHU4YmQzXHU4YmQ0XHU4YmQ2XHU4YmQ4XHU4YmQ5XHU4YmRjXHU4YmRmXHU4YmUwXHU4YmU0XHU4YmU4XHU4YmU5XHU4YmVl'@; put 'XHU4YmYwXHU4YmYzXHU4YmY2XHU4YmY5XHU4YmZjXHU4YmZmXHU4YzAwXHU4YzAyXHU4YzA0XHU4YzA3XHU4YzBjXHU4YzBmXHU4YzExXHU4YzEyXHU4YzE0XHU4YzE1XHU4YzE2XHU4YzE5XHU4YzFiXHU4YzE4XHU4YzFkXHU4YzFmXHU4YzIwXHU4YzIxXHU4YzI1XHU4YzI3XHU4YzJhXHU4'@; put 'YzJiXHU4YzJlXHU4YzJmXHU4YzMyXHU4YzMzXHU4YzM1XHU4YzM2XHU1MzY5XHU1MzdhXHU5NjFkXHU5NjIyXHU5NjIxXHU5NjMxXHU5NjJhXHU5NjNkXHU5NjNjXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVmXHU5NjY3XHU5NjZjXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhkXHU5Njk3XHU5NmIw'@; put 'XHU5MDk3XHU5MDliXHU5MDlkXHU5MDk5XHU5MGFjXHU5MGExXHU5MGI0XHU5MGIzXHU5MGI2XHU5MGJhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjE4XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMThdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIxOF1bbV1dPTU1ODA4K20sRls1NTgw'@; put 'OCttXT14WzIxOF1bbV0pO2Zvcih4WzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1OTBkYlx1OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIw'@; put 'ZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNkZlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFmNVx1NTFmY1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThjNVx1NThkMVx1'@; put 'NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1NTc3Y1x1NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1NTdiNFx1NTc5'@; put 'M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdmOFx1NTdlNFx1NTdkZFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIxOV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjE5XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMTldW21dXT01'@; put 'NjA2NCttLEZbNTYwNjQrbV09eFsyMTldW21dKTtmb3IoeFsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4MWVcdTU4MTlcdTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNcdTU4ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlcdTYxZmZcdTgyNzlcdTgyN2RcdTgyN2ZcdTgyOGZcdTgyOGFcdTgyYThcdTgy'@; put 'ODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBcdTgyYzhcdTgyY2FcdTgyZTNcdTgyOThcdTgyYjdcdTgyYWVcdTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgyYTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgyY2VcdTgyYTRcdTgyZTFcdTgzMDlc'@; put 'dTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgzMGNcdTgyZmJcdTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZcdTgzMTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFcdTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJcdTgzM2NcdTgzMzRcdTgzMzFcdTgz'@; put 'OWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdcdTgzNjBcdTgzMmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgzNjVcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjBdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyMF1bbV0uY2hhckNvZGVBdCgwKSYmKGFl'@; put 'W3hbMjIwXVttXV09NTYzMjArbSxGWzU2MzIwK21dPXhbMjIwXVttXSk7Zm9yKHhbMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MzY4XHU4MzFiXHU4MzY5XHU4MzZjXHU4MzZhXHU4MzZkXHU4MzZlXHU4M2IwXHU4Mzc4XHU4M2IzXHU4M2I0XHU4M2EwXHU4M2FhXHU4MzkzXHU4MzljXHU4Mzg1XHU4MzdjXHU4M2I2XHU4M2E5XHU4MzdkXHU4M2I4XHU4MzdiXHU4'@; put 'Mzk4XHU4MzllXHU4M2E4XHU4M2JhXHU4M2JjXHU4M2MxXHU4NDAxXHU4M2U1XHU4M2Q4XHU1ODA3XHU4NDE4XHU4NDBiXHU4M2RkXHU4M2ZkXHU4M2Q2XHU4NDFjXHU4NDM4XHU4NDExXHU4NDA2XHU4M2Q0XHU4M2RmXHU4NDBmXHU4NDAzXHU4M2Y4XHU4M2Y5XHU4M2VhXHU4M2M1XHU4M2Mw'@; put 'XHU4NDI2XHU4M2YwXHU4M2UxXHU4NDVjXHU4NDUxXHU4NDVhXHU4NDU5XHU4NDczXHU4NDg3XHU4NDg4XHU4NDdhXHU4NDg5XHU4NDc4XHU4NDNjXHU4NDQ2XHU4NDY5XHU4NDc2XHU4NDhjXHU4NDhlXHU4NDMxXHU4NDZkXHU4NGMxXHU4NGNkXHU4NGQwXHU4NGU2XHU4NGJkXHU4NGQzXHU4'@; put 'NGNhXHU4NGJmXHU4NGJhXHU4NGUwXHU4NGExXHU4NGI5XHU4NGI0XHU4NDk3XHU4NGU1XHU4NGUzXHU4NTBjXHU3NTBkXHU4NTM4XHU4NGYwXHU4NTM5XHU4NTFmXHU4NTNhXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjIxXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjFdW21dLmNoYXJD'@; put 'b2RlQXQoMCkmJihhZVt4WzIyMV1bbV1dPTU2NTc2K20sRls1NjU3NittXT14WzIyMV1bbV0pO2Zvcih4WzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU1Nlx1ODUzYlx1ODRmZlx1ODRmY1x1ODU1OVx1ODU0OFx1ODU2OFx1ODU2NFx1ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1ODVhZVx1'@; put 'ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1ODYwNVx1ODYyOVx1ODYxNlx1ODYzY1x1NWVmZVx1NWYwOFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMzNFx1NjI0'@; put 'Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMzOVx1NjM0Ylx1NjM0M1x1NjNhZFx1NjNmNlx1NjM3MVx1NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1NjNlMFx1'@; put 'NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1NjQxYlx1NjQyMFx1NjQwY1x1NjQyNlx1NjQyMVx1NjQ1ZVx1NjQ4NFx1NjQ2ZFx1NjQ5Nlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyMl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhb'@; put 'MjIyXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjJdW21dXT01NjgzMittLEZbNTY4MzIrbV09eFsyMjJdW21dKTtmb3IoeFsyMjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0N2FcdTY0YjdcdTY0YjhcdTY0OTlcdTY0YmFcdTY0YzBcdTY0ZDBcdTY0ZDdcdTY0ZTRcdTY0ZTJcdTY1MDlcdTY1MjVcdTY1MmVcdTVmMGJcdTVmZDJcdTc1MTlcdTVmMTFcdTUzNWZc'@; put 'dTUzZjFcdTUzZmRcdTUzZTlcdTUzZThcdTUzZmJcdTU0MTJcdTU0MTZcdTU0MDZcdTU0NGJcdTU0NTJcdTU0NTNcdTU0NTRcdTU0NTZcdTU0NDNcdTU0MjFcdTU0NTdcdTU0NTlcdTU0MjNcdTU0MzJcdTU0ODJcdTU0OTRcdTU0NzdcdTU0NzFcdTU0NjRcdTU0OWFcdTU0OWJcdTU0ODRcdTU0'@; put 'NzZcdTU0NjZcdTU0OWRcdTU0ZDBcdTU0YWRcdTU0YzJcdTU0YjRcdTU0ZDJcdTU0YTdcdTU0YTZcdTU0ZDNcdTU0ZDRcdTU0NzJcdTU0YTNcdTU0ZDVcdTU0YmJcdTU0YmZcdTU0Y2NcdTU0ZDlcdTU0ZGFcdTU0ZGNcdTU0YTlcdTU0YWFcdTU0YTRcdTU0ZGRcdTU0Y2ZcdTU0ZGVcdTU1MWJc'@; put 'dTU0ZTdcdTU1MjBcdTU0ZmRcdTU1MTRcdTU0ZjNcdTU1MjJcdTU1MjNcdTU1MGZcdTU1MTFcdTU1MjdcdTU1MmFcdTU1NjdcdTU1OGZcdTU1YjVcdTU1NDlcdTU1NmRcdTU1NDFcdTU1NTVcdTU1M2ZcdTU1NTBcdTU1M2NcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjNdLmxlbmd0aDsr'@; put 'K20pNjU1MzMhPT14WzIyM11bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjIzXVttXV09NTcwODgrbSxGWzU3MDg4K21dPXhbMjIzXVttXSk7Zm9yKHhbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTM3XHU1NTU2XHU1NTc1XHU1NTc2XHU1NTc3XHU1NTMzXHU1NTMwXHU1NTVjXHU1NThiXHU1NWQyXHU1NTgzXHU1NWIxXHU1NWI5XHU1NTg4XHU1NTgxXHU1NTlm'@; put 'XHU1NTdlXHU1NWQ2XHU1NTkxXHU1NTdiXHU1NWRmXHU1NWJkXHU1NWJlXHU1NTk0XHU1NTk5XHU1NWVhXHU1NWY3XHU1NWM5XHU1NjFmXHU1NWQxXHU1NWViXHU1NWVjXHU1NWQ0XHU1NWU2XHU1NWRkXHU1NWM0XHU1NWVmXHU1NWU1XHU1NWYyXHU1NWYzXHU1NWNjXHU1NWNkXHU1NWU4XHU1'@; put 'NWY1XHU1NWU0XHU4Zjk0XHU1NjFlXHU1NjA4XHU1NjBjXHU1NjAxXHU1NjI0XHU1NjIzXHU1NWZlXHU1NjAwXHU1NjI3XHU1NjJkXHU1NjU4XHU1NjM5XHU1NjU3XHU1NjJjXHU1NjRkXHU1NjYyXHU1NjU5XHU1NjVjXHU1NjRjXHU1NjU0XHU1Njg2XHU1NjY0XHU1NjcxXHU1NjZiXHU1Njdi'@; put 'XHU1NjdjXHU1Njg1XHU1NjkzXHU1NmFmXHU1NmQ0XHU1NmQ3XHU1NmRkXHU1NmUxXHU1NmY1XHU1NmViXHU1NmY5XHU1NmZmXHU1NzA0XHU1NzBhXHU1NzA5XHU1NzFjXHU1ZTBmXHU1ZTE5XHU1ZTE0XHU1ZTExXHU1ZTMxXHU1ZTNiXHU1ZTNjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhb'@; put 'MjI0XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjRdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyNF1bbV1dPTU3MzQ0K20sRls1NzM0NCttXT14WzIyNF1bbV0pO2Zvcih4WzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWUzN1x1NWU0NFx1NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1NWM4OFx1NWM5OFx1NWM5'@; put 'OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNiMVx1NWNhM1x1NWNjMVx1NWNiN1x1NWNjNFx1NWNkMlx1NWNlNFx1NWNjYlx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQwNlx1NWQxYlx1NWQ1OFx1'@; put 'NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1NWQ0YVx1NWQ2OVx1NWQ3NFx1NWQ4Mlx1NWQ5OVx1NWQ5ZFx1OGM3M1x1NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1NWY5OVx1NWY5Y1x1NWZh'@; put 'OFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJiN1x1NzJiOFx1NzJjM1x1NzJjMVx1NzJjZVx1NzJjZFx1NzJkMlx1NzJlOFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJmYVx1ZmZmZCIuc3BsaXQo'@; put 'IiIpLG09MDttIT14WzIyNV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI1XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjVdW21dXT01NzYwMCttLEZbNTc2MDArbV09eFsyMjVdW21dKTtmb3IoeFsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcyZmJcdTczMTdcdTczMTNcdTczMjFcdTczMGFcdTczMWVcdTczMWRcdTczMTVcdTczMjJcdTczMzlcdTczMjVcdTcz'@; put 'MmNcdTczMzhcdTczMzFcdTczNTBcdTczNGRcdTczNTdcdTczNjBcdTczNmNcdTczNmZcdTczN2VcdTgyMWJcdTU5MjVcdTk4ZTdcdTU5MjRcdTU5MDJcdTk5NjNcdTk5NjdcdTk5NjhcdTk5NjlcdTk5NmFcdTk5NmJcdTk5NmNcdTk5NzRcdTk5NzdcdTk5N2RcdTk5ODBcdTk5ODRcdTk5ODdc'@; put 'dTk5OGFcdTk5OGRcdTk5OTBcdTk5OTFcdTk5OTNcdTk5OTRcdTk5OTVcdTVlODBcdTVlOTFcdTVlOGJcdTVlOTZcdTVlYTVcdTVlYTBcdTVlYjlcdTVlYjVcdTVlYmVcdTVlYjNcdThkNTNcdTVlZDJcdTVlZDFcdTVlZGJcdTVlZThcdTVlZWFcdTgxYmFcdTVmYzRcdTVmYzlcdTVmZDZcdTVm'@; put 'Y2ZcdTYwMDNcdTVmZWVcdTYwMDRcdTVmZTFcdTVmZTRcdTVmZmVcdTYwMDVcdTYwMDZcdTVmZWFcdTVmZWRcdTVmZjhcdTYwMTlcdTYwMzVcdTYwMjZcdTYwMWJcdTYwMGZcdTYwMGRcdTYwMjlcdTYwMmJcdTYwMGFcdTYwM2ZcdTYwMjFcdTYwNzhcdTYwNzlcdTYwN2JcdTYwN2FcdTYwNDJc'@; put 'dWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjZdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyNl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI2XVttXV09NTc4NTYrbSxGWzU3ODU2K21dPXhbMjI2XVttXSk7Zm9yKHhbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDZhXHU2MDdkXHU2MDk2XHU2MDlhXHU2MGFkXHU2MDlkXHU2MDgzXHU2MDkyXHU2MDhjXHU2'@; put 'MDliXHU2MGVjXHU2MGJiXHU2MGIxXHU2MGRkXHU2MGQ4XHU2MGM2XHU2MGRhXHU2MGI0XHU2MTIwXHU2MTI2XHU2MTE1XHU2MTIzXHU2MGY0XHU2MTAwXHU2MTBlXHU2MTJiXHU2MTRhXHU2MTc1XHU2MWFjXHU2MTk0XHU2MWE3XHU2MWI3XHU2MWQ0XHU2MWY1XHU1ZmRkXHU5NmIzXHU5NWU5'@; put 'XHU5NWViXHU5NWYxXHU5NWYzXHU5NWY1XHU5NWY2XHU5NWZjXHU5NWZlXHU5NjAzXHU5NjA0XHU5NjA2XHU5NjA4XHU5NjBhXHU5NjBiXHU5NjBjXHU5NjBkXHU5NjBmXHU5NjEyXHU5NjE1XHU5NjE2XHU5NjE3XHU5NjE5XHU5NjFhXHU0ZTJjXHU3MjNmXHU2MjE1XHU2YzM1XHU2YzU0XHU2'@; put 'YzVjXHU2YzRhXHU2Y2EzXHU2Yzg1XHU2YzkwXHU2Yzk0XHU2YzhjXHU2YzY4XHU2YzY5XHU2Yzc0XHU2Yzc2XHU2Yzg2XHU2Y2E5XHU2Y2QwXHU2Y2Q0XHU2Y2FkXHU2Y2Y3XHU2Y2Y4XHU2Y2YxXHU2Y2Q3XHU2Y2IyXHU2Y2UwXHU2Y2Q2XHU2Y2ZhXHU2Y2ViXHU2Y2VlXHU2Y2IxXHU2Y2Qz'@; put 'XHU2Y2VmXHU2Y2ZlXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjI3XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMjddW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIyN11bbV1dPTU4MTEyK20sRls1ODExMittXT14WzIyN11bbV0pO2Zvcih4WzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQwN1x1NmQwNFx1'@; put 'NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1NmRhMFx1NmQ1ZVx1NmQ5M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1NmUwZVx1NmRi'@; put 'Zlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUyYlx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmViMlx1NmU1Zlx1NmU4Nlx1NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYyZFx1NmVlMlx1'@; put 'NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1NmYyNFx1NmYxNVx1NmVmOVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1NmY4Y1x1NmY3'@; put 'OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIyOF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjI4XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMjhdW21dXT01ODM2OCttLEZbNTgzNjgrbV09eFsyMjhdW21dKTtmb3IoeFsyMjldPSJcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmYzlcdTZmYTdcdTZmYjlcdTZmYjZcdTZmYzJc'@; put 'dTZmZTFcdTZmZWVcdTZmZGVcdTZmZTBcdTZmZWZcdTcwMWFcdTcwMjNcdTcwMWJcdTcwMzlcdTcwMzVcdTcwNGZcdTcwNWVcdTViODBcdTViODRcdTViOTVcdTViOTNcdTViYTVcdTViYjhcdTc1MmZcdTlhOWVcdTY0MzRcdTViZTRcdTViZWVcdTg5MzBcdTViZjBcdThlNDdcdThiMDdcdThm'@; put 'YjZcdThmZDNcdThmZDVcdThmZTVcdThmZWVcdThmZTRcdThmZTlcdThmZTZcdThmZjNcdThmZThcdTkwMDVcdTkwMDRcdTkwMGJcdTkwMjZcdTkwMTFcdTkwMGRcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMmRcdTkwMmZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBcdTkwNjhcdTkwNThc'@; put 'dTkwNjJcdTkwNWJcdTY2YjlcdTkwNzRcdTkwN2RcdTkwODJcdTkwODhcdTkwODNcdTkwOGJcdTVmNTBcdTVmNTdcdTVmNTZcdTVmNThcdTVjM2JcdTU0YWJcdTVjNTBcdTVjNTlcdTViNzFcdTVjNjNcdTVjNjZcdTdmYmNcdTVmMmFcdTVmMjlcdTVmMmRcdTgyNzRcdTVmM2NcdTliM2JcdTVj'@; put 'NmVcdTU5ODFcdTU5ODNcdTU5OGRcdTU5YTlcdTU5YWFcdTU5YTNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMjldLmxlbmd0aDsrK20pNjU1MzMhPT14WzIyOV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjI5XVttXV09NTg2MjQrbSxGWzU4NjI0K21dPXhbMjI5XVttXSk7Zm9yKHhb'@; put 'MjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTk3XHU1OWNhXHU1OWFi'@; put 'XHU1OTllXHU1OWE0XHU1OWQyXHU1OWIyXHU1OWFmXHU1OWQ3XHU1OWJlXHU1YTA1XHU1YTA2XHU1OWRkXHU1YTA4XHU1OWUzXHU1OWQ4XHU1OWY5XHU1YTBjXHU1YTA5XHU1YTMyXHU1YTM0XHU1YTExXHU1YTIzXHU1YTEzXHU1YTQwXHU1YTY3XHU1YTRhXHU1YTU1XHU1YTNjXHU1YTYyXHU1'@; put 'YTc1XHU4MGVjXHU1YWFhXHU1YTliXHU1YTc3XHU1YTdhXHU1YWJlXHU1YWViXHU1YWIyXHU1YWQyXHU1YWQ0XHU1YWI4XHU1YWUwXHU1YWUzXHU1YWYxXHU1YWQ2XHU1YWU2XHU1YWQ4XHU1YWRjXHU1YjA5XHU1YjE3XHU1YjE2XHU1YjMyXHU1YjM3XHU1YjQwXHU1YzE1XHU1YzFjXHU1YjVh'@; put 'XHU1YjY1XHU1YjczXHU1YjUxXHU1YjUzXHU1YjYyXHU5YTc1XHU5YTc3XHU5YTc4XHU5YTdhXHU5YTdmXHU5YTdkXHU5YTgwXHU5YTgxXHU5YTg1XHU5YTg4XHU5YThhXHU5YTkwXHU5YTkyXHU5YTkzXHU5YTk2XHU5YTk4XHU5YTliXHU5YTljXHU5YTlkXHU5YTlmXHU5YWEwXHU5YWEyXHU5'@; put 'YWEzXHU5YWE1XHU5YWE3XHU3ZTlmXHU3ZWExXHU3ZWEzXHU3ZWE1XHU3ZWE4XHU3ZWE5XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjMwXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzBdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzMF1bbV1dPTU4ODgwK20sRls1ODg4MCttXT14WzIz'@; put 'MF1bbV0pO2Zvcih4WzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Vh'@; put 'ZFx1N2ViMFx1N2ViZVx1N2VjMFx1N2VjMVx1N2VjMlx1N2VjOVx1N2VjYlx1N2VjY1x1N2VkMFx1N2VkNFx1N2VkN1x1N2VkYlx1N2VlMFx1N2VlMVx1N2VlOFx1N2VlYlx1N2VlZVx1N2VlZlx1N2VmMVx1N2VmMlx1N2YwZFx1N2VmNlx1N2VmYVx1N2VmYlx1N2VmZVx1N2YwMVx1N2YwMlx1'@; put 'N2YwM1x1N2YwN1x1N2YwOFx1N2YwYlx1N2YwY1x1N2YwZlx1N2YxMVx1N2YxMlx1N2YxN1x1N2YxOVx1N2YxY1x1N2YxYlx1N2YxZlx1N2YyMVx1N2YyMlx1N2YyM1x1N2YyNFx1N2YyNVx1N2YyNlx1N2YyN1x1N2YyYVx1N2YyYlx1N2YyY1x1N2YyZFx1N2YyZlx1N2YzMFx1N2YzMVx1N2Yz'@; put 'Mlx1N2YzM1x1N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNhZVx1NzNhMlx1NzM5Zlx1NzNjZlx1NzNjMlx1NzNkMVx1NzNiN1x1NzNiM1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1'@; put 'NzNiYVx1NzNmMlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1NzQyY1x1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzMV0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjMxXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzFdW21dXT01OTEzNittLEZb'@; put 'NTkxMzYrbV09eFsyMzFdW21dKTtmb3IoeFsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdTc0MWJcdTc0MWFcdTc0NDFcdTc0NWNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0NmRcdTc0N2VcdTc0OWNcdTc0OGVcdTc0ODBcdTc0ODFcdTc0ODdcdTc0OGJcdTc0OWVcdTc0YThcdTc0YTlcdTc0OTBcdTc0YTdcdTc0ZDJcdTc0YmFcdTk3ZWFcdTk3ZWJcdTk3ZWNc'@; put 'dTY3NGNcdTY3NTNcdTY3NWVcdTY3NDhcdTY3NjlcdTY3YTVcdTY3ODdcdTY3NmFcdTY3NzNcdTY3OThcdTY3YTdcdTY3NzVcdTY3YThcdTY3OWVcdTY3YWRcdTY3OGJcdTY3NzdcdTY3N2NcdTY3ZjBcdTY4MDlcdTY3ZDhcdTY4MGFcdTY3ZTlcdTY3YjBcdTY4MGNcdTY3ZDlcdTY3YjVcdTY3'@; put 'ZGFcdTY3YjNcdTY3ZGRcdTY4MDBcdTY3YzNcdTY3YjhcdTY3ZTJcdTY4MGVcdTY3YzFcdTY3ZmRcdTY4MzJcdTY4MzNcdTY4NjBcdTY4NjFcdTY4NGVcdTY4NjJcdTY4NDRcdTY4NjRcdTY4ODNcdTY4MWRcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M2VcdTY4NGFcdTY4NDlc'@; put 'dTY4MjlcdTY4YjVcdTY4OGZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NmJcdTY4YzJcdTY5NmVcdTY4ZmNcdTY5MWZcdTY5MjBcdTY4ZjlcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzJdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzMl1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjMyXVtt'@; put 'XV09NTkzOTIrbSxGWzU5MzkyK21dPXhbMjMyXVttXSk7Zm9yKHhbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTI0XHU2OGYwXHU2OTBiXHU2OTAxXHU2OTU3XHU2OGUzXHU2OTEwXHU2OTcxXHU2OTM5XHU2OTYwXHU2OTQyXHU2OTVkXHU2OTg0XHU2OTZiXHU2OTgwXHU2OTk4XHU2OTc4XHU2OTM0XHU2OWNjXHU2OTg3XHU2OTg4XHU2OWNlXHU2OTg5XHU2OTY2'@; put 'XHU2OTYzXHU2OTc5XHU2OTliXHU2OWE3XHU2OWJiXHU2OWFiXHU2OWFkXHU2OWQ0XHU2OWIxXHU2OWMxXHU2OWNhXHU2OWRmXHU2OTk1XHU2OWUwXHU2OThkXHU2OWZmXHU2YTJmXHU2OWVkXHU2YTE3XHU2YTE4XHU2YTY1XHU2OWYyXHU2YTQ0XHU2YTNlXHU2YWEwXHU2YTUwXHU2YTViXHU2'@; put 'YTM1XHU2YThlXHU2YTc5XHU2YTNkXHU2YTI4XHU2YTU4XHU2YTdjXHU2YTkxXHU2YTkwXHU2YWE5XHU2YTk3XHU2YWFiXHU3MzM3XHU3MzUyXHU2YjgxXHU2YjgyXHU2Yjg3XHU2Yjg0XHU2YjkyXHU2YjkzXHU2YjhkXHU2YjlhXHU2YjliXHU2YmExXHU2YmFhXHU4ZjZiXHU4ZjZkXHU4Zjcx'@; put 'XHU4ZjcyXHU4ZjczXHU4Zjc1XHU4Zjc2XHU4Zjc4XHU4Zjc3XHU4Zjc5XHU4ZjdhXHU4ZjdjXHU4ZjdlXHU4ZjgxXHU4ZjgyXHU4Zjg0XHU4Zjg3XHU4ZjhiXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjMzXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzNdW21dLmNoYXJDb2RlQXQoMCkm'@; put 'JihhZVt4WzIzM11bbV1dPTU5NjQ4K20sRls1OTY0OCttXT14WzIzM11bbV0pO2Zvcih4WzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGY4ZFx1OGY4ZVx1OGY4Zlx1OGY5OFx1OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1NjIxYlx1NjIxZlx1NjIyMlx1NjIyMVx1NjIyNVx1NjIyNFx1NjIyY1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRmZlx1NzUwZlx1NzUxMVx1NzUx'@; put 'M1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYxNVx1NjYwMFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYzNFx1NjYzMVx1NjYzNlx1NjYzNVx1ODAwNlx1NjY1Zlx1NjY1NFx1NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1NjY1N1x1NjY3N1x1NjY4NFx1'@; put 'NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1OGQzM1x1OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1OGQ0NVx1OGQ0Nlx1OGQ0OFx1OGQ0OVx1OGQ0N1x1OGQ0ZFx1OGQ1NVx1OGQ1OVx1ODljN1x1ODljYVx1ODljYlx1ODljY1x1ODljZVx1ODlj'@; put 'Zlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3Zlx1NzI4NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5Mlx1NjMwOFx1NjMzMlx1NjNiMFx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzIzNF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM0XVttXS5j'@; put 'aGFyQ29kZUF0KDApJiYoYWVbeFsyMzRdW21dXT01OTkwNCttLEZbNTk5MDQrbV09eFsyMzRdW21dKTtmb3IoeFsyMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0M2ZcdTY0ZDhcdTgwMDRcdTZiZWFcdTZiZjNcdTZiZmRcdTZiZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZjMjFcdTZjMjlcdTZjMjRcdTZj'@; put 'MmFcdTZjMzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUyMTZcdTgwOWZcdTgwOWNcdTgwOTNcdTgwYmNcdTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlcdTgwZWFcdTgwZGJcdTgwYzJc'@; put 'dTgwYzRcdTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRcdTgxMGRcdTgxMGVcdTgwZjJcdTgwZmNcdTY3MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgxNTNcdTgxNzRcdTgxNTlcdTgx'@; put 'NWFcdTgxNzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgxODhcdTgxODJcdTgxOTFcdTZlZDVcdTgxYTNcdTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmJcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyMzVdLmxlbmd0aDsrK20pNjU1MzMh'@; put 'PT14WzIzNV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM1XVttXV09NjAxNjArbSxGWzYwMTYwK21dPXhbMjM1XVttXSk7Zm9yKHhbMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MWMxXHU4MWE2XHU2YjI0XHU2YjM3XHU2YjM5XHU2YjQzXHU2YjQ2XHU2YjU5XHU5OGQxXHU5OGQyXHU5OGQzXHU5OGQ1XHU5OGQ5XHU5OGRhXHU2YmIzXHU1ZjQwXHU2YmMyXHU4'@; put 'OWYzXHU2NTkwXHU5ZjUxXHU2NTkzXHU2NWJjXHU2NWM2XHU2NWM0XHU2NWMzXHU2NWNjXHU2NWNlXHU2NWQyXHU2NWQ2XHU3MDgwXHU3MDljXHU3MDk2XHU3MDlkXHU3MGJiXHU3MGMwXHU3MGI3XHU3MGFiXHU3MGIxXHU3MGU4XHU3MGNhXHU3MTEwXHU3MTEzXHU3MTE2XHU3MTJmXHU3MTMx'@; put 'XHU3MTczXHU3MTVjXHU3MTY4XHU3MTQ1XHU3MTcyXHU3MTRhXHU3MTc4XHU3MTdhXHU3MTk4XHU3MWIzXHU3MWI1XHU3MWE4XHU3MWEwXHU3MWUwXHU3MWQ0XHU3MWU3XHU3MWY5XHU3MjFkXHU3MjI4XHU3MDZjXHU3MTE4XHU3MTY2XHU3MWI5XHU2MjNlXHU2MjNkXHU2MjQzXHU2MjQ4XHU2'@; put 'MjQ5XHU3OTNiXHU3OTQwXHU3OTQ2XHU3OTQ5XHU3OTViXHU3OTVjXHU3OTUzXHU3OTVhXHU3OTYyXHU3OTU3XHU3OTYwXHU3OTZmXHU3OTY3XHU3OTdhXHU3OTg1XHU3OThhXHU3OTlhXHU3OWE3XHU3OWIzXHU1ZmQxXHU1ZmQwXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjM2XS5sZW5n'@; put 'dGg7KyttKTY1NTMzIT09eFsyMzZdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzNl1bbV1dPTYwNDE2K20sRls2MDQxNittXT14WzIzNl1bbV0pO2Zvcih4WzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAzY1x1NjA1ZFx1NjA1YVx1NjA2N1x1NjA0MVx1NjA1OVx1NjA2M1x1NjBhYlx1NjEwNlx1NjEwZFx1NjE1ZFx1NjFhOVx1NjE5ZFx1NjFjYlx1NjFkMVx1'@; put 'NjIwNlx1ODA4MFx1ODA3Zlx1NmM5M1x1NmNmNlx1NmRmY1x1NzdmNlx1NzdmOFx1NzgwMFx1NzgwOVx1NzgxN1x1NzgxOFx1NzgxMVx1NjVhYlx1NzgyZFx1NzgxY1x1NzgxZFx1NzgzOVx1NzgzYVx1NzgzYlx1NzgxZlx1NzgzY1x1NzgyNVx1NzgyY1x1NzgyM1x1NzgyOVx1Nzg0ZVx1Nzg2'@; put 'ZFx1Nzg1Nlx1Nzg1N1x1NzgyNlx1Nzg1MFx1Nzg0N1x1Nzg0Y1x1Nzg2YVx1Nzg5Ylx1Nzg5M1x1Nzg5YVx1Nzg4N1x1Nzg5Y1x1NzhhMVx1NzhhM1x1NzhiMlx1NzhiOVx1NzhhNVx1NzhkNFx1NzhkOVx1NzhjOVx1NzhlY1x1NzhmMlx1NzkwNVx1NzhmNFx1NzkxM1x1NzkyNFx1NzkxZVx1'@; put 'NzkzNFx1OWY5Ylx1OWVmOVx1OWVmYlx1OWVmY1x1NzZmMVx1NzcwNFx1NzcwZFx1NzZmOVx1NzcwN1x1NzcwOFx1NzcxYVx1NzcyMlx1NzcxOVx1NzcyZFx1NzcyNlx1NzczNVx1NzczOFx1Nzc1MFx1Nzc1MVx1Nzc0N1x1Nzc0M1x1Nzc1YVx1Nzc2OFx1ZmZmZCIuc3BsaXQoIiIpLG09MDtt'@; put 'IT14WzIzN10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjM3XVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyMzddW21dXT02MDY3MittLEZbNjA2NzIrbV09eFsyMzddW21dKTtmb3IoeFsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBcdTc3YjBcdTc3YjVcdTc3YmRc'@; put 'dTc1M2FcdTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThcdTdmNjFcdTdmNWZcdThhNDhcdTdmNjhcdTdmNzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OGJcdTk0OGFcdTk0'@; put 'OGNcdTk0OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0YTNcdTk0YTRcdTk0YWJcdTk0YWFcdTk0YWRcdTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjZcdTk0YjdcdTk0YjhcdTk0YjlcdTk0YmFcdTk0YmNcdTk0YmRcdTk0YmZc'@; put 'dTk0YzRcdTk0YzhcdTk0YzlcdTk0Y2FcdTk0Y2JcdTk0Y2NcdTk0Y2RcdTk0Y2VcdTk0ZDBcdTk0ZDFcdTk0ZDJcdTk0ZDVcdTk0ZDZcdTk0ZDdcdTk0ZDlcdTk0ZDhcdTk0ZGJcdTk0ZGVcdTk0ZGZcdTk0ZTBcdTk0ZTJcdTk0ZTRcdTk0ZTVcdTk0ZTdcdTk0ZThcdTk0ZWFcdWZmZmQiLnNw'@; put 'bGl0KCIiKSxtPTA7bSE9eFsyMzhdLmxlbmd0aDsrK20pNjU1MzMhPT14WzIzOF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjM4XVttXV09NjA5MjgrbSxGWzYwOTI4K21dPXhbMjM4XVttXSk7Zm9yKHhbMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NGU5XHU5NGViXHU5NGVlXHU5NGVmXHU5NGYzXHU5NGY0XHU5NGY1XHU5NGY3XHU5NGY5XHU5NGZjXHU5NGZk'@; put 'XHU5NGZmXHU5NTAzXHU5NTAyXHU5NTA2XHU5NTA3XHU5NTA5XHU5NTBhXHU5NTBkXHU5NTBlXHU5NTBmXHU5NTEyXHU5NTEzXHU5NTE0XHU5NTE1XHU5NTE2XHU5NTE4XHU5NTFiXHU5NTFkXHU5NTFlXHU5NTFmXHU5NTIyXHU5NTJhXHU5NTJiXHU5NTI5XHU5NTJjXHU5NTMxXHU5NTMyXHU5'@; put 'NTM0XHU5NTM2XHU5NTM3XHU5NTM4XHU5NTNjXHU5NTNlXHU5NTNmXHU5NTQyXHU5NTM1XHU5NTQ0XHU5NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRjXHU5NTRlXHU5NTRmXHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTViXHU5NTVlXHU5NTVmXHU5NTVkXHU5NTYx'@; put 'XHU5NTYyXHU5NTY0XHU5NTY1XHU5NTY2XHU5NTY3XHU5NTY4XHU5NTY5XHU5NTZhXHU5NTZiXHU5NTZjXHU5NTZmXHU5NTcxXHU5NTcyXHU5NTczXHU5NTNhXHU3N2U3XHU3N2VjXHU5NmM5XHU3OWQ1XHU3OWVkXHU3OWUzXHU3OWViXHU3YTA2XHU1ZDQ3XHU3YTAzXHU3YTAyXHU3YTFlXHU3'@; put 'YTE0XHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjM5XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyMzldW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzIzOV1bbV1dPTYxMTg0K20sRls2MTE4NCttXT14WzIzOV1bbV0pO2Zvcih4WzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2EzOVx1N2EzN1x1N2E1MVx1OWVjZlx1OTlhNVx1N2E3MFx1NzY4OFx1NzY4ZVx1NzY5'@; put 'M1x1NzY5OVx1NzZhNFx1NzRkZVx1NzRlMFx1NzUyY1x1OWUyMFx1OWUyMlx1OWUyOFx1OWUyOVx1OWUyYVx1OWUyYlx1OWUyY1x1OWUzMlx1OWUzMVx1OWUzNlx1OWUzOFx1OWUzN1x1OWUzOVx1OWUzYVx1OWUzZVx1OWU0MVx1OWU0Mlx1OWU0NFx1OWU0Nlx1OWU0N1x1OWU0OFx1OWU0OVx1'@; put 'OWU0Ylx1OWU0Y1x1OWU0ZVx1OWU1MVx1OWU1NVx1OWU1N1x1OWU1YVx1OWU1Ylx1OWU1Y1x1OWU1ZVx1OWU2M1x1OWU2Nlx1OWU2N1x1OWU2OFx1OWU2OVx1OWU2YVx1OWU2Ylx1OWU2Y1x1OWU3MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1NzVhMFx1NzU5ZFx1NzVhY1x1NzVh'@; put 'M1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVjMlx1NzVkNlx1NzVjZFx1NzVlM1x1NzVlOFx1NzVlNlx1NzVlNFx1NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYwY1x1NzYxN1x1NzYwYVx1NzYyNVx1'@; put 'NzYxOFx1NzYxNVx1NzYxOVx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0MF0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQwXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDBdW21dXT02MTQ0MCttLEZbNjE0NDArbV09eFsyNDBdW21dKTtmb3IoeFsyNDFdPSJcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2MWJcdTc2M2NcdTc2MjJcdTc2MjBcdTc2NDBcdTc2MmRcdTc2'@; put 'MzBcdTc2M2ZcdTc2MzVcdTc2NDNcdTc2M2VcdTc2MzNcdTc2NGRcdTc2NWVcdTc2NTRcdTc2NWNcdTc2NTZcdTc2NmJcdTc2NmZcdTdmY2FcdTdhZTZcdTdhNzhcdTdhNzlcdTdhODBcdTdhODZcdTdhODhcdTdhOTVcdTdhYTZcdTdhYTBcdTdhYWNcdTdhYThcdTdhYWRcdTdhYjNcdTg4NjRc'@; put 'dTg4NjlcdTg4NzJcdTg4N2RcdTg4N2ZcdTg4ODJcdTg4YTJcdTg4YzZcdTg4YjdcdTg4YmNcdTg4YzlcdTg4ZTJcdTg4Y2VcdTg4ZTNcdTg4ZTVcdTg4ZjFcdTg5MWFcdTg4ZmNcdTg4ZThcdTg4ZmVcdTg4ZjBcdTg5MjFcdTg5MTlcdTg5MTNcdTg5MWJcdTg5MGFcdTg5MzRcdTg5MmJcdTg5'@; put 'MzZcdTg5NDFcdTg5NjZcdTg5N2JcdTc1OGJcdTgwZTVcdTc2YjJcdTc2YjRcdTc3ZGNcdTgwMTJcdTgwMTRcdTgwMTZcdTgwMWNcdTgwMjBcdTgwMjJcdTgwMjVcdTgwMjZcdTgwMjdcdTgwMjlcdTgwMjhcdTgwMzFcdTgwMGJcdTgwMzVcdTgwNDNcdTgwNDZcdTgwNGRcdTgwNTJcdTgwNjlc'@; put 'dTgwNzFcdTg5ODNcdTk4NzhcdTk4ODBcdTk4ODNcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDFdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0MV1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQxXVttXV09NjE2OTYrbSxGWzYxNjk2K21dPXhbMjQxXVttXSk7Zm9yKHhbMjQyXT0iXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODg5XHU5ODhjXHU5ODhkXHU5ODhmXHU5'@; put 'ODk0XHU5ODlhXHU5ODliXHU5ODllXHU5ODlmXHU5OGExXHU5OGEyXHU5OGE1XHU5OGE2XHU4NjRkXHU4NjU0XHU4NjZjXHU4NjZlXHU4NjdmXHU4NjdhXHU4NjdjXHU4NjdiXHU4NmE4XHU4NjhkXHU4NjhiXHU4NmFjXHU4NjlkXHU4NmE3XHU4NmEzXHU4NmFhXHU4NjkzXHU4NmE5XHU4NmI2'@; put 'XHU4NmM0XHU4NmI1XHU4NmNlXHU4NmIwXHU4NmJhXHU4NmIxXHU4NmFmXHU4NmM5XHU4NmNmXHU4NmI0XHU4NmU5XHU4NmYxXHU4NmYyXHU4NmVkXHU4NmYzXHU4NmQwXHU4NzEzXHU4NmRlXHU4NmY0XHU4NmRmXHU4NmQ4XHU4NmQxXHU4NzAzXHU4NzA3XHU4NmY4XHU4NzA4XHU4NzBhXHU4'@; put 'NzBkXHU4NzA5XHU4NzIzXHU4NzNiXHU4NzFlXHU4NzI1XHU4NzJlXHU4NzFhXHU4NzNlXHU4NzQ4XHU4NzM0XHU4NzMxXHU4NzI5XHU4NzM3XHU4NzNmXHU4NzgyXHU4NzIyXHU4NzdkXHU4NzdlXHU4NzdiXHU4NzYwXHU4NzcwXHU4NzRjXHU4NzZlXHU4NzhiXHU4NzUzXHU4NzYzXHU4Nzdj'@; put 'XHU4NzY0XHU4NzU5XHU4NzY1XHU4NzkzXHU4N2FmXHU4N2E4XHU4N2QyXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQyXS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDJdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0Ml1bbV1dPTYxOTUyK20sRls2MTk1MittXT14WzI0Ml1bbV0pO2Zv'@; put 'cih4WzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODdjNlx1ODc4OFx1'@; put 'ODc4NVx1ODdhZFx1ODc5N1x1ODc4M1x1ODdhYlx1ODdlNVx1ODdhY1x1ODdiNVx1ODdiM1x1ODdjYlx1ODdkM1x1ODdiZFx1ODdkMVx1ODdjMFx1ODdjYVx1ODdkYlx1ODdlYVx1ODdlMFx1ODdlZVx1ODgxNlx1ODgxM1x1ODdmZVx1ODgwYVx1ODgxYlx1ODgyMVx1ODgzOVx1ODgzY1x1N2Yz'@; put 'Nlx1N2Y0Mlx1N2Y0NFx1N2Y0NVx1ODIxMFx1N2FmYVx1N2FmZFx1N2IwOFx1N2IwM1x1N2IwNFx1N2IxNVx1N2IwYVx1N2IyYlx1N2IwZlx1N2I0N1x1N2IzOFx1N2IyYVx1N2IxOVx1N2IyZVx1N2IzMVx1N2IyMFx1N2IyNVx1N2IyNFx1N2IzM1x1N2IzZVx1N2IxZVx1N2I1OFx1N2I1YVx1'@; put 'N2I0NVx1N2I3NVx1N2I0Y1x1N2I1ZFx1N2I2MFx1N2I2ZVx1N2I3Ylx1N2I2Mlx1N2I3Mlx1N2I3MVx1N2I5MFx1N2JhNlx1N2JhN1x1N2JiOFx1N2JhY1x1N2I5ZFx1N2JhOFx1N2I4NVx1N2JhYVx1N2I5Y1x1N2JhMlx1N2JhYlx1N2JiNFx1N2JkMVx1N2JjMVx1N2JjY1x1N2JkZFx1N2Jk'@; put 'YVx1N2JlNVx1N2JlNlx1N2JlYVx1N2MwY1x1N2JmZVx1N2JmY1x1N2MwZlx1N2MxNlx1N2MwYlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0M10ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQzXVttXS5jaGFyQ29kZUF0KDApJiYoYWVbeFsyNDNdW21dXT02MjIwOCttLEZbNjIyMDgrbV09'@; put 'eFsyNDNdW21dKTtmb3IoeFsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dTdjMWZcdTdjMmFcdTdjMjZcdTdjMzhcdTdjNDFcdTdjNDBcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDRcdTgxZWNcdTg4NDRcdTgyMjFcdTgyMjJcdTgyMjNcdTgyMmRcdTgyMmZcdTgyMjhcdTgyMmJcdTgyMzhcdTgyM2JcdTgyMzNcdTgyMzRcdTgyM2VcdTgyNDRcdTgyNDlcdTgyNGJcdTgy'@; put 'NGZcdTgyNWFcdTgyNWZcdTgyNjhcdTg4N2VcdTg4ODVcdTg4ODhcdTg4ZDhcdTg4ZGZcdTg5NWVcdTdmOWRcdTdmOWZcdTdmYTdcdTdmYWZcdTdmYjBcdTdmYjJcdTdjN2NcdTY1NDlcdTdjOTFcdTdjOWRcdTdjOWNcdTdjOWVcdTdjYTJcdTdjYjJcdTdjYmNcdTdjYmRcdTdjYzFcdTdjYzdc'@; put 'dTdjY2NcdTdjY2RcdTdjYzhcdTdjYzVcdTdjZDdcdTdjZThcdTgyNmVcdTY2YThcdTdmYmZcdTdmY2VcdTdmZDVcdTdmZTVcdTdmZTFcdTdmZTZcdTdmZTlcdTdmZWVcdTdmZjNcdTdjZjhcdTdkNzdcdTdkYTZcdTdkYWVcdTdlNDdcdTdlOWJcdTllYjhcdTllYjRcdThkNzNcdThkODRcdThk'@; put 'OTRcdThkOTFcdThkYjFcdThkNjdcdThkNmRcdThjNDdcdThjNDlcdTkxNGFcdTkxNTBcdTkxNGVcdTkxNGZcdTkxNjRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDRdLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0NF1bbV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQ0XVttXV09NjI0NjQr'@; put 'bSxGWzYyNDY0K21dPXhbMjQ0XVttXSk7Zm9yKHhbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHU5MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZmXHU5MTdkXHU5MTdlXHU5MTcyXHU5MTc0XHU5MTc5XHU5MThjXHU5MTg1XHU5MTkwXHU5MThkXHU5MTkxXHU5MWEyXHU5MWEzXHU5MWFhXHU5MWFkXHU5MWFlXHU5MWFmXHU5MWI1XHU5MWI0XHU5MWJhXHU4YzU1XHU5'@; put 'ZTdlXHU4ZGI4XHU4ZGViXHU4ZTA1XHU4ZTU5XHU4ZTY5XHU4ZGI1XHU4ZGJmXHU4ZGJjXHU4ZGJhXHU4ZGM0XHU4ZGQ2XHU4ZGQ3XHU4ZGRhXHU4ZGRlXHU4ZGNlXHU4ZGNmXHU4ZGRiXHU4ZGM2XHU4ZGVjXHU4ZGY3XHU4ZGY4XHU4ZGUzXHU4ZGY5XHU4ZGZiXHU4ZGU0XHU4ZTA5XHU4ZGZk'@; put 'XHU4ZTE0XHU4ZTFkXHU4ZTFmXHU4ZTJjXHU4ZTJlXHU4ZTIzXHU4ZTJmXHU4ZTNhXHU4ZTQwXHU4ZTM5XHU4ZTM1XHU4ZTNkXHU4ZTMxXHU4ZTQ5XHU4ZTQxXHU4ZTQyXHU4ZTUxXHU4ZTUyXHU4ZTRhXHU4ZTcwXHU4ZTc2XHU4ZTdjXHU4ZTZmXHU4ZTc0XHU4ZTg1XHU4ZThmXHU4ZTk0XHU4'@; put 'ZTkwXHU4ZTljXHU4ZTllXHU4Yzc4XHU4YzgyXHU4YzhhXHU4Yzg1XHU4Yzk4XHU4Yzk0XHU2NTliXHU4OWQ2XHU4OWRlXHU4OWRhXHU4OWRjXHVmZmZkIi5zcGxpdCgiIiksbT0wO20hPXhbMjQ1XS5sZW5ndGg7KyttKTY1NTMzIT09eFsyNDVdW21dLmNoYXJDb2RlQXQoMCkmJihhZVt4WzI0'@; put 'NV1bbV1dPTYyNzIwK20sRls2MjcyMCttXT14WzI0NV1bbV0pO2Zvcih4WzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODllNVx1ODllYlx1ODllZlx1OGEzZVx1OGIyNlx1OTc1M1x1OTZlOVx1OTZmM1x1OTZlZlx1OTcwNlx1OTcwMVx1OTcwOFx1OTcwZlx1OTcwZVx1OTcyYVx1OTcyZFx1OTczMFx1OTczZVx1OWY4MFx1OWY4M1x1OWY4NVx1OWY4Nlx1OWY4N1x1'@; put 'OWY4OFx1OWY4OVx1OWY4YVx1OWY4Y1x1OWVmZVx1OWYwYlx1OWYwZFx1OTZiOVx1OTZiY1x1OTZiZFx1OTZjZVx1OTZkMlx1NzdiZlx1OTZlMFx1OTI4ZVx1OTJhZVx1OTJjOFx1OTMzZVx1OTM2YVx1OTNjYVx1OTM4Zlx1OTQzZVx1OTQ2Ylx1OWM3Zlx1OWM4Mlx1OWM4NVx1OWM4Nlx1OWM4'@; put 'N1x1OWM4OFx1N2EyM1x1OWM4Ylx1OWM4ZVx1OWM5MFx1OWM5MVx1OWM5Mlx1OWM5NFx1OWM5NVx1OWM5YVx1OWM5Ylx1OWM5ZVx1OWM5Zlx1OWNhMFx1OWNhMVx1OWNhMlx1OWNhM1x1OWNhNVx1OWNhNlx1OWNhN1x1OWNhOFx1OWNhOVx1OWNhYlx1OWNhZFx1OWNhZVx1OWNiMFx1OWNiMVx1'@; put 'OWNiMlx1OWNiM1x1OWNiNFx1OWNiNVx1OWNiNlx1OWNiN1x1OWNiYVx1OWNiYlx1OWNiY1x1OWNiZFx1OWNjNFx1OWNjNVx1OWNjNlx1OWNjN1x1OWNjYVx1OWNjYlx1ZmZmZCIuc3BsaXQoIiIpLG09MDttIT14WzI0Nl0ubGVuZ3RoOysrbSk2NTUzMyE9PXhbMjQ2XVttXS5jaGFyQ29kZUF0'@; put 'KDApJiYoYWVbeFsyNDZdW21dXT02Mjk3NittLEZbNjI5NzYrbV09eFsyNDZdW21dKTtmb3IoeFsyNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljY2NcdTljY2RcdTljY2VcdTljY2ZcdTljZDBcdTljZDNcdTljZDRcdTljZDVcdTljZDdcdTljZDhcdTljZDlcdTljZGNcdTljZGRcdTljZGZcdTljZTJcdTk3N2NcdTk3ODVcdTk3OTFcdTk3OTJcdTk3OTRcdTk3YWZc'@; put 'dTk3YWJcdTk3YTNcdTk3YjJcdTk3YjRcdTlhYjFcdTlhYjBcdTlhYjdcdTllNThcdTlhYjZcdTlhYmFcdTlhYmNcdTlhYzFcdTlhYzBcdTlhYzVcdTlhYzJcdTlhY2JcdTlhY2NcdTlhZDFcdTliNDVcdTliNDNcdTliNDdcdTliNDlcdTliNDhcdTliNGRcdTliNTFcdTk4ZThcdTk5MGRcdTk5'@; put 'MmVcdTk5NTVcdTk5NTRcdTlhZGZcdTlhZTFcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZmJcdTlhZWRcdTlhZjlcdTliMDhcdTliMGZcdTliMTNcdTliMWZcdTliMjNcdTllYmRcdTllYmVcdTdlM2JcdTllODJcdTllODdcdTllODhcdTllOGJcdTllOTJcdTkzZDZcdTllOWRcdTllOWZcdTllZGJc'@; put 'dTllZGNcdTllZGRcdTllZTBcdTllZGZcdTllZTJcdTllZTlcdTllZTdcdTllZTVcdTllZWFcdTllZWZcdTlmMjJcdTlmMmNcdTlmMmZcdTlmMzlcdTlmMzdcdTlmM2RcdTlmM2VcdTlmNDRcdWZmZmQiLnNwbGl0KCIiKSxtPTA7bSE9eFsyNDddLmxlbmd0aDsrK20pNjU1MzMhPT14WzI0N11b'@; put 'bV0uY2hhckNvZGVBdCgwKSYmKGFlW3hbMjQ3XVttXV09NjMyMzIrbSxGWzYzMjMyK21dPXhbMjQ3XVttXSk7cmV0dXJue2VuYzphZSxkZWM6Rn19KCksSWVbMTAwMjldPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBl'@; put 'XHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+'@; put 'XHg3Zlx4YzRcdTAxMDBcdTAxMDFceGM5XHUwMTA0XHhkNlx4ZGNceGUxXHUwMTA1XHUwMTBjXHhlNFx1MDEwZFx1MDEwNlx1MDEwN1x4ZTlcdTAxNzlcdTAxN2FcdTAxMGVceGVkXHUwMTBmXHUwMTEyXHUwMTEzXHUwMTE2XHhmM1x1MDExN1x4ZjRceGY2XHhmNVx4ZmFcdTAxMWFcdTAxMWJc'@; put 'eGZjXHUyMDIwXHhiMFx1MDExOFx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx1MDExOVx4YThcdTIyNjBcdTAxMjNcdTAxMmVcdTAxMmZcdTAxMmFcdTIyNjRcdTIyNjVcdTAxMmJcdTAxMzZcdTIyMDJcdTIyMTFcdTAxNDJcdTAxM2JcdTAxM2NcdTAxM2RcdTAxM2VcdTAx'@; put 'MzlcdTAxM2FcdTAxNDVcdTAxNDZcdTAxNDNceGFjXHUyMjFhXHUwMTQ0XHUwMTQ3XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHUwMTQ4XHUwMTUwXHhkNVx1MDE1MVx1MDE0Y1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdTAxNGRcdTAxNTRcdTAxNTVc'@; put 'dTAxNThcdTIwMzlcdTIwM2FcdTAxNTlcdTAxNTZcdTAxNTdcdTAxNjBcdTIwMWFcdTIwMWVcdTAxNjFcdTAxNWFcdTAxNWJceGMxXHUwMTY0XHUwMTY1XHhjZFx1MDE3ZFx1MDE3ZVx1MDE2YVx4ZDNceGQ0XHUwMTZiXHUwMTZlXHhkYVx1MDE2Zlx1MDE3MFx1MDE3MVx1MDE3Mlx1MDE3M1x4'@; put 'ZGRceGZkXHUwMTM3XHUwMTdiXHUwMTQxXHUwMTdjXHUwMTIyXHUwMmM3IixhZT1bXSx4PXt9LG09MDsyNTYhPW07KyttKTY1NTMzIT09Ri5jaGFyQ29kZUF0KG0pJiYoeFtGLmNoYXJBdChtKV09bSksYWVbbV09Ri5jaGFyQXQobSk7cmV0dXJue2VuYzp4LGRlYzphZX19KCksSWVbMTAwNzld'@; put 'PWZ1bmN0aW9uKCl7Zm9yKHZhciBGPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6'@; put 'Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYx'@; put 'XHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHhkZFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIy'@; put 'Ylx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4'@; put 'YTRceGQwXHhmMFx4ZGVceGZlXHhmZFx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJk'@; put 'Ylx1MDJjNyIsYWU9W10seD17fSxtPTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5jaGFyQXQobSldPW0pLGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzEwMDgxXT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4'@; put 'MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xc'@; put 'XV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhm'@; put 'Y1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4'@; put 'YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MDExZVx1MDExZlx1MDEzMFx1MDEzMVx1MDE1ZVx1MDE1Zlx1MjAy'@; put 'MVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdWZmZmRcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyIsYWU9W10seD17fSxt'@; put 'PTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5jaGFyQXQobSldPW0pLGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLEllWzI4NTkxXT1mdW5jdGlvbigpe2Zvcih2YXIgRj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJc'@; put 'dFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3Bx'@; put 'cnN0dXZ3eHl6e3x9flx4N2ZceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0'@; put 'XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2Rc'@; put 'eGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4'@; put 'ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiIsYWU9W10seD17fSxtPTA7MjU2IT1tOysrbSk2NTUzMyE9PUYuY2hhckNvZGVBdChtKSYmKHhbRi5jaGFyQXQobSldPW0pLGFlW21dPUYuY2hhckF0KG0pO3JldHVybntlbmM6eCxkZWM6YWV9fSgpLGF0LmV4cG9ydHMmJnR5cGVv'@; put 'ZiBET19OT1RfRVhQT1JUX0NPREVQQUdFPiJ1IiYmKGF0LmV4cG9ydHM9SWUpLGZ1bmN0aW9uKEYsYWUpeyJ1c2Ugc3RyaWN0IjtpZih0eXBlb2YgSWU+InUiKXt2YXIgeD1JZTthdC5leHBvcnRzJiZ0eXBlb2YgRE9fTk9UX0VYUE9SVF9DT0RFUEFHRT4idSI/YXQuZXhwb3J0cz1hZSh4KTpG'@; put 'LmNwdGFibGU9YWUoeCl9ZWxzZSBJZT1hZShJZSl9KHRoaXMsZnVuY3Rpb24oRil7InVzZSBzdHJpY3QiO3ZhciBhZT17MTIwMDoidXRmMTZsZSIsMTIwMToidXRmMTZiZSIsMTJlMzoidXRmMzJsZSIsMTIwMDE6InV0ZjMyYmUiLDE2OTY5OiJ1dGY2NGxlIiwyMDEyNzoiYXNjaWkiLDY1ZTM6'@; put 'InV0ZjciLDY1MDAxOiJ1dGY4In0seD1bODc0LDEyNTAsMTI1MSwxMjUyLDEyNTMsMTI1NCwxMjU1LDEyNTYsMWU0XSxtPVs5MzIsOTM2LDk0OSw5NTBdLGxlPVs2NTAwMV0sTT17fSxPPXt9LFI9e30sej17fSxLPWZ1bmN0aW9uKFMpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKFMpfSxJ'@; put 'PWZ1bmN0aW9uKFMpe3JldHVybiBTLmNoYXJDb2RlQXQoMCl9LGs9dHlwZW9mIEJ1ZmZlcjwidSIsRT1mdW5jdGlvbigpe307aWYoayl7dmFyIGo9IUJ1ZmZlci5mcm9tO2lmKCFqKXRyeXtCdWZmZXIuZnJvbSgiZm9vIiwidXRmOCIpfWNhdGNoe2o9ITB9RT1qP2Z1bmN0aW9uKEMsUyl7cmV0'@; put 'dXJuIFM/bmV3IEJ1ZmZlcihDLFMpOm5ldyBCdWZmZXIoQyl9OkJ1ZmZlci5mcm9tLmJpbmQoQnVmZmVyKSxCdWZmZXIuYWxsb2NVbnNhZmV8fChCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oQyl7cmV0dXJuIG5ldyBCdWZmZXIoQyl9KTt2YXIgVj0xMDI0LEI9QnVmZmVyLmFsbG9jVW5z'@; put 'YWZlKFYpLFg9ZnVuY3Rpb24oUyl7dmFyIHY9ZnVuY3Rpb24oUyl7Zm9yKHZhciB2PUJ1ZmZlci5hbGxvY1Vuc2FmZSg2NTUzNikscD0wO3A8NjU1MzY7KytwKXZbcF09MDtmb3IodmFyIHc9T2JqZWN0LmtleXMoUyksSj13Lmxlbmd0aCxuZT0wLGRlPXdbbmVdO25lPEo7KytuZSkoZGU9d1tu'@; put 'ZV0pJiYodltkZS5jaGFyQ29kZUF0KDApXT1TW2RlXSk7cmV0dXJuIHZ9KEZbU10uZW5jKTtyZXR1cm4gZnVuY3Rpb24odyxKKXt2YXIgZGUsbmU9dy5sZW5ndGgsZmU9MCx4ZT0wLExlPTAsRmU9MDtpZigic3RyaW5nIj09dHlwZW9mIHcpZm9yKGRlPUJ1ZmZlci5hbGxvY1Vuc2FmZShuZSks'@; put 'ZmU9MDtmZTxuZTsrK2ZlKWRlW2ZlXT12W3cuY2hhckNvZGVBdChmZSldO2Vsc2UgaWYoQnVmZmVyLmlzQnVmZmVyKHcpKXtmb3IoZGU9QnVmZmVyLmFsbG9jVW5zYWZlKDIqbmUpLHhlPTAsZmU9MDtmZTxuZTsrK2ZlKShMZT13W2ZlXSk8MTI4P2RlW3hlKytdPXZbTGVdOkxlPDIyND8oZGVb'@; put 'eGUrK109dlsoKDMxJkxlKTw8NikrKDYzJndbZmUrMV0pXSwrK2ZlKTpMZTwyNDA/KGRlW3hlKytdPXZbKCgxNSZMZSk8PDEyKSsoKDYzJndbZmUrMV0pPDw2KSsoNjMmd1tmZSsyXSldLGZlKz0yKTooRmU9KCg3JkxlKTw8MTgpKygoNjMmd1tmZSsxXSk8PDEyKSsoKDYzJndbZmUrMl0pPDw2'@; put 'KSsoNjMmd1tmZSszXSksZmUrPTMsRmU8NjU1MzY/ZGVbeGUrK109dltGZV06KGRlW3hlKytdPXZbNTUyOTYrKChGZS09NjU1MzYpPj4xMCYxMDIzKV0sZGVbeGUrK109dls1NjMyMCsoMTAyMyZGZSldKSk7ZGU9ZGUuc2xpY2UoMCx4ZSl9ZWxzZSBmb3IoZGU9QnVmZmVyLmFsbG9jVW5zYWZl'@; put 'KG5lKSxmZT0wO2ZlPG5lOysrZmUpZGVbZmVdPXZbd1tmZV0uY2hhckNvZGVBdCgwKV07cmV0dXJuIEomJiJidWYiIT09Sj8iYXJyIiE9PUo/ZGUudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoZGUpOmRlfX0sVT1mdW5jdGlvbihTKXt2YXIgdj1GW1NdLmRlYyxwPUJ1ZmZlci5h'@; put 'bGxvY1Vuc2FmZSgxMzEwNzIpLHc9MCxKPSIiO2Zvcih3PTA7dzx2Lmxlbmd0aDsrK3cpaWYoSj12W3ddKXt2YXIgbmU9Si5jaGFyQ29kZUF0KDApO3BbMip3XT0yNTUmbmUscFsyKncrMV09bmU+Pjh9cmV0dXJuIGZ1bmN0aW9uKGZlKXt2YXIgeGU9ZmUubGVuZ3RoLExlPTAsRmU9MDtpZigy'@; put 'KnhlPlYmJihWPTIqeGUsQj1CdWZmZXIuYWxsb2NVbnNhZmUoVikpLEJ1ZmZlci5pc0J1ZmZlcihmZSkpZm9yKExlPTA7TGU8eGU7TGUrKylCWzIqTGVdPXBbRmU9MipmZVtMZV1dLEJbMipMZSsxXT1wW0ZlKzFdO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBmZSlmb3IoTGU9MDtMZTx4ZTtM'@; put 'ZSsrKUZlPTIqZmUuY2hhckNvZGVBdChMZSksQlsyKkxlXT1wW0ZlXSxCWzIqTGUrMV09cFtGZSsxXTtlbHNlIGZvcihMZT0wO0xlPHhlO0xlKyspQlsyKkxlXT1wW0ZlPTIqZmVbTGVdXSxCWzIqTGUrMV09cFtGZSsxXTtyZXR1cm4gQi5zbGljZSgwLDIqeGUpLnRvU3RyaW5nKCJ1Y3MyIil9'@; put 'fSxxPWZ1bmN0aW9uKFMpe2Zvcih2YXIgdj1GW1NdLmVuYyxwPUJ1ZmZlci5hbGxvY1Vuc2FmZSgxMzEwNzIpLHc9MDt3PDEzMTA3MjsrK3cpcFt3XT0wO2Zvcih2YXIgSj1PYmplY3Qua2V5cyh2KSxuZT0wLGRlPUpbbmVdO25lPEoubGVuZ3RoOysrbmUpaWYoZGU9SltuZV0pe3ZhciBmZT1k'@; put 'ZS5jaGFyQ29kZUF0KDApO3BbMipmZV09MjU1JnZbZGVdLHBbMipmZSsxXT12W2RlXT4+OH1yZXR1cm4gZnVuY3Rpb24oTGUsRmUpe3ZhciBPZT1MZS5sZW5ndGgsamU9QnVmZmVyLmFsbG9jVW5zYWZlKDIqT2UpLFdlPTAsS2U9MCxZZT0wLFFlPTAsbHQ9MDtpZigic3RyaW5nIj09dHlwZW9m'@; put 'IExlKXtmb3IoV2U9UWU9MDtXZTxPZTsrK1dlKUtlPTIqTGUuY2hhckNvZGVBdChXZSksamVbUWUrK109cFtLZSsxXXx8cFtLZV0scFtLZSsxXT4wJiYoamVbUWUrK109cFtLZV0pO2plPWplLnNsaWNlKDAsUWUpfWVsc2UgaWYoQnVmZmVyLmlzQnVmZmVyKExlKSl7Zm9yKFdlPVFlPTA7V2U8'@; put 'T2U7KytXZSkobHQ9TGVbV2VdKTwxMjg/S2U9bHQ6bHQ8MjI0PyhLZT0oKDMxJmx0KTw8NikrKDYzJkxlW1dlKzFdKSwrK1dlKTpsdDwyNDA/KEtlPSgoMTUmbHQpPDwxMikrKCg2MyZMZVtXZSsxXSk8PDYpKyg2MyZMZVtXZSsyXSksV2UrPTIpOihLZT0oKDcmbHQpPDwxOCkrKCg2MyZMZVtX'@; put 'ZSsxXSk8PDEyKSsoKDYzJkxlW1dlKzJdKTw8NikrKDYzJkxlW1dlKzNdKSxXZSs9MyksS2U8NjU1MzY/KGplW1FlKytdPXBbMSsoS2UqPTIpXXx8cFtLZV0scFtLZSsxXT4wJiYoamVbUWUrK109cFtLZV0pKTooamVbUWUrK109cFsxKyhLZT0yKig1NTI5NisoKFllPUtlLTY1NTM2KT4+MTAm'@; put 'MTAyMykpKV18fHBbS2VdLHBbS2UrMV0+MCYmKGplW1FlKytdPXBbS2VdKSxqZVtRZSsrXT1wWzErKEtlPTIqKDU2MzIwKygxMDIzJlllKSkpXXx8cFtLZV0scFtLZSsxXT4wJiYoamVbUWUrK109cFtLZV0pKTtqZT1qZS5zbGljZSgwLFFlKX1lbHNlIGZvcihXZT1RZT0wO1dlPE9lO1dlKysp'@; put 'S2U9MipMZVtXZV0uY2hhckNvZGVBdCgwKSxqZVtRZSsrXT1wW0tlKzFdfHxwW0tlXSxwW0tlKzFdPjAmJihqZVtRZSsrXT1wW0tlXSk7cmV0dXJuIEZlJiYiYnVmIiE9PUZlPyJhcnIiIT09RmU/amUudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoamUpOmplfX0sZWU9ZnVuY3Rp'@; put 'b24oUyl7dmFyIEosdj1GW1NdLmRlYyxwPUJ1ZmZlci5hbGxvY1Vuc2FmZSgxMzEwNzIpLHc9MCxuZT0wLGRlPTAsZmU9MDtmb3IoZmU9MDtmZTw2NTUzNjsrK2ZlKXBbMipmZV09MjU1LHBbMipmZSsxXT0yNTM7Zm9yKHc9MDt3PHYubGVuZ3RoOysrdykoSj12W3ddKSYmKG5lPUouY2hhckNv'@; put 'ZGVBdCgwKSxwW2RlPTIqd109MjU1Jm5lLHBbZGUrMV09bmU+PjgpO3JldHVybiBmdW5jdGlvbihMZSl7dmFyIEZlPUxlLmxlbmd0aCxPZT1CdWZmZXIuYWxsb2NVbnNhZmUoMipGZSksamU9MCxXZT0wLEtlPTA7aWYoQnVmZmVyLmlzQnVmZmVyKExlKSlmb3IoamU9MDtqZTxGZTtqZSsrKTI1'@; put 'NT09PXBbV2U9MipMZVtqZV1dJiYyNTM9PT1wW1dlKzFdJiYoV2U9MiooKExlW2plXTw8OCkrTGVbamUrMV0pLCsramUpLE9lW0tlKytdPXBbV2VdLE9lW0tlKytdPXBbV2UrMV07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIExlKWZvcihqZT0wO2plPEZlO2plKyspV2U9MipMZS5jaGFyQ29k'@; put 'ZUF0KGplKSwyNTU9PT1wW1dlXSYmMjUzPT09cFtXZSsxXSYmKFdlPTIqKChMZS5jaGFyQ29kZUF0KGplKTw8OCkrTGUuY2hhckNvZGVBdChqZSsxKSksKytqZSksT2VbS2UrK109cFtXZV0sT2VbS2UrK109cFtXZSsxXTtlbHNlIGZvcihqZT0wO2plPEZlO2plKyspMjU1PT09cFtXZT0yKkxl'@; put 'W2plXV0mJjI1Mz09PXBbV2UrMV0mJihXZT0yKigoTGVbamVdPDw4KStMZVtqZSsxXSksKytqZSksT2VbS2UrK109cFtXZV0sT2VbS2UrK109cFtXZSsxXTtyZXR1cm4gT2Uuc2xpY2UoMCxLZSkudG9TdHJpbmcoInVjczIiKX19O01bNjUwMDFdPWZ1bmN0aW9uIEMoUyl7aWYoInN0cmluZyI9'@; put 'PXR5cGVvZiBTKXJldHVybiBDKFMuc3BsaXQoIiIpLm1hcChJKSk7dmFyIHY9Uy5sZW5ndGgscD0wLHc9MDs0KnY+ViYmKFY9NCp2LEI9QnVmZmVyLmFsbG9jVW5zYWZlKFYpKTt2YXIgSj0wO3Y+PTMmJjIzOT09U1swXSYmMTg3PT1TWzFdJiYxOTE9PVNbMl0mJihKPTMpO2Zvcih2YXIgbmU9'@; put 'MSxkZT0wLGZlPTA7Sjx2O0orPW5lKW5lPTEsKGZlPVNbSl0pPDEyOD9wPWZlOmZlPDIyND8ocD02NCooMzEmZmUpKyg2MyZTW0orMV0pLG5lPTIpOmZlPDI0MD8ocD0oKDE1JmZlKTw8MTIpKzY0Kig2MyZTW0orMV0pKyg2MyZTW0orMl0pLG5lPTMpOihwPTI2MjE0NCooNyZmZSkrKCg2MyZT'@; put 'W0orMV0pPDwxMikrNjQqKDYzJlNbSisyXSkrKDYzJlNbSiszXSksbmU9NCkscDw2NTUzNj8oQltkZSsrXT0yNTUmcCxCW2RlKytdPXA+PjgpOih3PTU1Mjk2KygocC09NjU1MzYpPj4xMCYxMDIzKSxwPTU2MzIwKygxMDIzJnApLEJbZGUrK109MjU1JncsQltkZSsrXT13Pj4+OCxCW2RlKytd'@; put 'PTI1NSZwLEJbZGUrK109cD4+PjgmMjU1KTtyZXR1cm4gQi5zbGljZSgwLGRlKS50b1N0cmluZygidWNzMiIpfSxPWzY1MDAxXT1mdW5jdGlvbihTLHYpe2lmKGsmJkJ1ZmZlci5pc0J1ZmZlcihTKSlyZXR1cm4gdiYmImJ1ZiIhPT12PyJhcnIiIT09dj9TLnRvU3RyaW5nKCJiaW5hcnkiKTpb'@; put 'XS5zbGljZS5jYWxsKFMpOlM7dmFyIHA9Uy5sZW5ndGgsdz0wLEo9MCxuZT0wLGRlPSJzdHJpbmciPT10eXBlb2YgUzs0KnA+ViYmKFY9NCpwLEI9QnVmZmVyLmFsbG9jVW5zYWZlKFYpKTtmb3IodmFyIGZlPTA7ZmU8cDsrK2ZlKSh3PWRlP1MuY2hhckNvZGVBdChmZSk6U1tmZV0uY2hhckNv'@; put 'ZGVBdCgwKSk8PTEyNz9CW25lKytdPXc6dzw9MjA0Nz8oQltuZSsrXT0xOTIrKHc+PjYpLEJbbmUrK109MTI4Kyg2MyZ3KSk6dz49NTUyOTYmJnc8PTU3MzQzPyh3LT01NTI5NiwrK2ZlLEo9KGRlP1MuY2hhckNvZGVBdChmZSk6U1tmZV0uY2hhckNvZGVBdCgwKSktNTYzMjArKHc8PDEwKSxC'@; put 'W25lKytdPTI0MCsoSj4+PjE4JjcpLEJbbmUrK109MTQ0KyhKPj4+MTImNjMpLEJbbmUrK109MTI4KyhKPj4+NiY2MyksQltuZSsrXT0xMjgrKDYzJkopKTooQltuZSsrXT0yMjQrKHc+PjEyKSxCW25lKytdPTEyOCsodz4+NiY2MyksQltuZSsrXT0xMjgrKDYzJncpKTtyZXR1cm4gdiYmImJ1'@; put 'ZiIhPT12PyJhcnIiIT09dj9CLnNsaWNlKDAsbmUpLnRvU3RyaW5nKCJiaW5hcnkiKTpbXS5zbGljZS5jYWxsKEIsMCxuZSk6Qi5zbGljZSgwLG5lKX19dmFyIHRlPWZ1bmN0aW9uKCl7aWYoayl7aWYoUlt4WzBdXSlyZXR1cm47dmFyIFM9MCx2PTA7Zm9yKFM9MDtTPHgubGVuZ3RoOysrUylG'@; put 'W3Y9eFtTXV0mJihSW3ZdPVUodikselt2XT1YKHYpKTtmb3IoUz0wO1M8bS5sZW5ndGg7KytTKUZbdj1tW1NdXSYmKFJbdl09ZWUodikselt2XT1xKHYpKTtmb3IoUz0wO1M8bGUubGVuZ3RoOysrUylNW3Y9bGVbU11dJiYoUlt2XT1NW3ZdKSxPW3ZdJiYoelt2XT1PW3ZdKX19LG9lPWZ1bmN0'@; put 'aW9uKEMsUyl7cmV0dXJuIiJ9LHNlPWZ1bmN0aW9uKFMpe2RlbGV0ZSBSW1NdLGRlbGV0ZSB6W1NdfSx1ZT17ZW5jYWNoZTp0ZSxkZWNhY2hlOmZ1bmN0aW9uKCl7aWYoayl7aWYoIVJbeFswXV0pcmV0dXJuO3guZm9yRWFjaChzZSksbS5mb3JFYWNoKHNlKSxsZS5mb3JFYWNoKHNlKX1iPW9l'@; put 'LEQ9MH0sc2Jjczp4LGRiY3M6bX07dGUoKTt2YXIgY2U9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGI9b2UsRD0wO3JldHVybiBGLnV0aWxzPXtkZWNvZGU6ZnVuY3Rpb24gQyhTLHYpe3ZhciBwO2lmKHA9UltTXSly'@; put 'ZXR1cm4gcCh2KTtpZigic3RyaW5nIj09dHlwZW9mIHYpcmV0dXJuIEMoUyx2LnNwbGl0KCIiKS5tYXAoSSkpO3ZhciBqZSx3PXYubGVuZ3RoLEo9bmV3IEFycmF5KHcpLG5lPSIiLGRlPTAsZmU9MCx4ZT0xLExlPTAsRmU9MCxPZT1GW1NdLFdlPSIiO2lmKE9lJiYoamU9T2UuZGVjKSlmb3Io'@; put 'ZmU9MDtmZTx3O2ZlKz14ZSl7aWYoeGU9MiwobmU9amVbKHZbZmVdPDw4KSt2W2ZlKzFdXSl8fCh4ZT0xLG5lPWplW3ZbZmVdXSksIW5lKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIGNvZGU6ICIrdltmZV0rIiAiK3ZbZmUreGUtMV0rIiAiK2ZlKyIgIit4ZSsiICIramVbdltmZV1d'@; put 'KTtKW0xlKytdPW5lfWVsc2V7aWYoIShXZT1hZVtTXSkpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgQ1A6ICIrUyk7c3dpdGNoKFdlKXtjYXNlInV0ZjgiOmZvcih3Pj0zJiYyMzk9PXZbMF0mJjE4Nz09dlsxXSYmMTkxPT12WzJdJiYoZmU9Myk7ZmU8dztmZSs9eGUpeGU9MSx2W2Zl'@; put 'XTwxMjg/ZGU9dltmZV06dltmZV08MjI0PyhkZT02NCooMzEmdltmZV0pKyg2MyZ2W2ZlKzFdKSx4ZT0yKTp2W2ZlXTwyNDA/KGRlPSgoMTUmdltmZV0pPDwxMikrNjQqKDYzJnZbZmUrMV0pKyg2MyZ2W2ZlKzJdKSx4ZT0zKTooZGU9MjYyMTQ0Kig3JnZbZmVdKSsoKDYzJnZbZmUrMV0pPDwx'@; put 'MikrNjQqKDYzJnZbZmUrMl0pKyg2MyZ2W2ZlKzNdKSx4ZT00KSxkZTw2NTUzNnx8KEZlPTU1Mjk2KygoZGUtPTY1NTM2KT4+MTAmMTAyMyksZGU9NTYzMjArKDEwMjMmZGUpLEpbTGUrK109U3RyaW5nLmZyb21DaGFyQ29kZShGZSkpLEpbTGUrK109U3RyaW5nLmZyb21DaGFyQ29kZShkZSk7'@; put 'YnJlYWs7Y2FzZSJhc2NpaSI6aWYoayYmQnVmZmVyLmlzQnVmZmVyKHYpKXJldHVybiB2LnRvU3RyaW5nKFdlKTtmb3IoZmU9MDtmZTx3O2ZlKyspSltmZV09U3RyaW5nLmZyb21DaGFyQ29kZSh2W2ZlXSk7TGU9dzticmVhaztjYXNlInV0ZjE2bGUiOmlmKHc+PTImJjI1NT09dlswXSYmMjU0'@; put 'PT12WzFdJiYoZmU9MiksayYmQnVmZmVyLmlzQnVmZmVyKHYpKXJldHVybiB2LnRvU3RyaW5nKFdlKTtmb3IoeGU9MjtmZSsxPHc7ZmUrPXhlKUpbTGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSgodltmZSsxXTw8OCkrdltmZV0pO2JyZWFrO2Nhc2UidXRmMTZiZSI6Zm9yKHc+PTImJjI1ND09'@; put 'dlswXSYmMjU1PT12WzFdJiYoZmU9MikseGU9MjtmZSsxPHc7ZmUrPXhlKUpbTGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSgodltmZV08PDgpK3ZbZmUrMV0pO2JyZWFrO2Nhc2UidXRmMzJsZSI6Zm9yKHc+PTQmJjI1NT09dlswXSYmMjU0PT12WzFdJiYwPT09dlsyXSYmMD09PXZbM10mJihm'@; put 'ZT00KSx4ZT00O2ZlPHc7ZmUrPXhlKShkZT0odltmZSszXTw8MjQpKyh2W2ZlKzJdPDwxNikrKHZbZmUrMV08PDgpK3ZbZmVdKT42NTUzNT8oZGUtPTY1NTM2LEpbTGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoZGU+PjEwJjEwMjMpKSxKW0xlKytdPVN0cmluZy5mcm9tQ2hhckNv'@; put 'ZGUoNTYzMjArKDEwMjMmZGUpKSk6SltMZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGRlKTticmVhaztjYXNlInV0ZjMyYmUiOmZvcih3Pj00JiYyNTU9PXZbM10mJjI1ND09dlsyXSYmMD09PXZbMV0mJjA9PT12WzBdJiYoZmU9NCkseGU9NDtmZTx3O2ZlKz14ZSkoZGU9KHZbZmVdPDwyNCkr'@; put 'KHZbZmUrMV08PDE2KSsodltmZSsyXTw8OCkrdltmZSszXSk+NjU1MzU/KGRlLT02NTUzNixKW0xlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGRlPj4xMCYxMDIzKSksSltMZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJmRlKSkpOkpbTGUrK109U3RyaW5nLmZy'@; put 'b21DaGFyQ29kZShkZSk7YnJlYWs7Y2FzZSJ1dGY3Ijpmb3Iodz49NCYmNDM9PXZbMF0mJjQ3PT12WzFdJiYxMTg9PXZbMl0mJih3Pj01JiY1Nj09dlszXSYmNDU9PXZbNF0/ZmU9NTooNTY9PXZbM118fDU3PT12WzNdfHw0Mz09dlszXXx8NDc9PXZbM10pJiYoZmU9NCkpO2ZlPHc7ZmUrPXhl'@; put 'KWlmKDQzPT09dltmZV0paWYoeGU9MSw0NSE9PXZbZmUrMV0pe2Zvcig7U3RyaW5nLmZyb21DaGFyQ29kZSh2W2ZlK3hlXSkubWF0Y2goL1tBLVphLXowLTkrXC9dLyk7KXhlKys7dmFyIEtlPTA7NDU9PT12W2ZlK3hlXSYmKCsreGUsS2U9MSk7Zm9yKHZhciBZZT1bXSxRZT0iIixBZT0wLFRl'@; put 'PTAscWU9MCxYZT0wLFVlPTE7VWU8eGUtS2UmJihBZT1jZS5pbmRleE9mKFN0cmluZy5mcm9tQ2hhckNvZGUodltmZStVZSsrXSkpLFRlPWNlLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZSh2W2ZlK1VlKytdKSksWWUucHVzaChBZTw8MnxUZT4+NCksLTEhPT0ocWU9Y2UuaW5kZXhPZihT'@; put 'dHJpbmcuZnJvbUNoYXJDb2RlKHZbZmUrVWUrK10pKSkmJihZZS5wdXNoKCgxNSZUZSk8PDR8cWU+PjIpLC0xIT09KFhlPWNlLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZSh2W2ZlK1VlKytdKSkpKSk7KVhlPDY0JiZZZS5wdXNoKCgzJnFlKTw8NnxYZSk7Zm9yKFFlPUMoMTIwMSxZZSks'@; put 'VWU9MDtVZTxRZS5sZW5ndGg7KytVZSlKW0xlKytdPVFlLmNoYXJBdChVZSl9ZWxzZSB4ZT0yLEpbTGUrK109IisiO2Vsc2UgeGU9MSxKW0xlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUodltmZV0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBtYWdpYzogIitT'@; put 'KyIgIithZVtTXSl9fXJldHVybiBKLnNsaWNlKDAsTGUpLmpvaW4oIiIpfSxlbmNvZGU6ZnVuY3Rpb24gQyhTLHYscCl7aWYoUz09PUQmJmIpcmV0dXJuIGIodixwKTtpZih6W1NdKXJldHVybihiPXpbRD1TXSkodixwKTtrJiZCdWZmZXIuaXNCdWZmZXIodikmJih2PXYudG9TdHJpbmcoInV0'@; put 'ZjgiKSk7dmFyIEZlLHc9di5sZW5ndGgsSj1rP0J1ZmZlci5hbGxvY1Vuc2FmZSg0KncpOltdLG5lPTAsZGU9MCxmZT0wLHhlPTAsTGU9RltTXSxPZT0iIixqZT0ic3RyaW5nIj09dHlwZW9mIHY7aWYoTGUmJihGZT1MZS5lbmMpKWZvcihkZT0wO2RlPHc7KytkZSwrK2ZlKShuZT1GZVtqZT92'@; put 'LmNoYXJBdChkZSk6dltkZV1dKT4yNTU/KEpbZmVdPW5lPj44LEpbKytmZV09MjU1Jm5lKTpKW2ZlXT0yNTUmbmU7ZWxzZXtpZighKE9lPWFlW1NdKSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBDUDogIitTKTtzd2l0Y2goT2Upe2Nhc2UidXRmOCI6aWYoayYmamUpe2ZlPShKPUUo'@; put 'dixPZSkpLmxlbmd0aDticmVha31mb3IoZGU9MDtkZTx3OysrZGUsKytmZSkobmU9amU/di5jaGFyQ29kZUF0KGRlKTp2W2RlXS5jaGFyQ29kZUF0KDApKTw9MTI3P0pbZmVdPW5lOm5lPD0yMDQ3PyhKW2ZlXT0xOTIrKG5lPj42KSxKWysrZmVdPTEyOCsoNjMmbmUpKTpuZT49NTUyOTYmJm5l'@; put 'PD01NzM0Mz8obmUtPTU1Mjk2LHhlPShqZT92LmNoYXJDb2RlQXQoKytkZSk6dlsrK2RlXS5jaGFyQ29kZUF0KDApKS01NjMyMCsobmU8PDEwKSxKW2ZlXT0yNDArKHhlPj4+MTgmNyksSlsrK2ZlXT0xNDQrKHhlPj4+MTImNjMpLEpbKytmZV09MTI4Kyh4ZT4+PjYmNjMpLEpbKytmZV09MTI4'@; put 'Kyg2MyZ4ZSkpOihKW2ZlXT0yMjQrKG5lPj4xMiksSlsrK2ZlXT0xMjgrKG5lPj42JjYzKSxKWysrZmVdPTEyOCsoNjMmbmUpKTticmVhaztjYXNlImFzY2lpIjppZihrJiYic3RyaW5nIj09dHlwZW9mIHYpe2ZlPShKPUUodixPZSkpLmxlbmd0aDticmVha31mb3IoZGU9MDtkZTx3OysrZGUs'@; put 'KytmZSl7aWYoISgobmU9amU/di5jaGFyQ29kZUF0KGRlKTp2W2RlXS5jaGFyQ29kZUF0KDApKTw9MTI3KSl0aHJvdyBuZXcgRXJyb3IoImJhZCBhc2NpaSAiK25lKTtKW2ZlXT1uZX1icmVhaztjYXNlInV0ZjE2bGUiOmlmKGsmJiJzdHJpbmciPT10eXBlb2Ygdil7ZmU9KEo9RSh2LE9lKSku'@; put 'bGVuZ3RoO2JyZWFrfWZvcihkZT0wO2RlPHc7KytkZSluZT1qZT92LmNoYXJDb2RlQXQoZGUpOnZbZGVdLmNoYXJDb2RlQXQoMCksSltmZSsrXT0yNTUmbmUsSltmZSsrXT1uZT4+ODticmVhaztjYXNlInV0ZjE2YmUiOmZvcihkZT0wO2RlPHc7KytkZSluZT1qZT92LmNoYXJDb2RlQXQoZGUp'@; put 'OnZbZGVdLmNoYXJDb2RlQXQoMCksSltmZSsrXT1uZT4+OCxKW2ZlKytdPTI1NSZuZTticmVhaztjYXNlInV0ZjMybGUiOmZvcihkZT0wO2RlPHc7KytkZSkobmU9amU/di5jaGFyQ29kZUF0KGRlKTp2W2RlXS5jaGFyQ29kZUF0KDApKT49NTUyOTYmJm5lPD01NzM0MyYmKG5lPTY1NTM2Kyhu'@; put 'ZS01NTI5Njw8MTApKyh2WysrZGVdLmNoYXJDb2RlQXQoMCktNTYzMjApKSxKW2ZlKytdPTI1NSZuZSxKW2ZlKytdPTI1NSYobmU+Pj04KSxKW2ZlKytdPTI1NSYobmU+Pj04KSxKW2ZlKytdPTI1NSYobmU+Pj04KTticmVhaztjYXNlInV0ZjMyYmUiOmZvcihkZT0wO2RlPHc7KytkZSkobmU9'@; put 'amU/di5jaGFyQ29kZUF0KGRlKTp2W2RlXS5jaGFyQ29kZUF0KDApKT49NTUyOTYmJm5lPD01NzM0MyYmKG5lPTY1NTM2KyhuZS01NTI5Njw8MTApKyh2WysrZGVdLmNoYXJDb2RlQXQoMCktNTYzMjApKSxKW2ZlKzNdPTI1NSZuZSxKW2ZlKzJdPTI1NSYobmU+Pj04KSxKW2ZlKzFdPTI1NSYo'@; put 'bmU+Pj04KSxKW2ZlXT0yNTUmKG5lPj49OCksZmUrPTQ7YnJlYWs7Y2FzZSJ1dGY3Ijpmb3IoZGU9MDtkZTx3O2RlKyspe3ZhciBXZT1qZT92LmNoYXJBdChkZSk6dltkZV0uY2hhckF0KDApO2lmKCIrIiE9PVdlKWlmKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1u'@; put 'b3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OScoKSwtLi86PyIuaW5kZXhPZihXZSk+LTEpSltmZSsrXT1XZS5jaGFyQ29kZUF0KDApO2Vsc2V7dmFyIEtlPUMoMTIwMSxXZSk7SltmZSsrXT00MyxKW2ZlKytdPWNlLmNoYXJDb2RlQXQoS2VbMF0+PjIpLEpbZmUrK109Y2UuY2hhckNvZGVBdCgoKDMm'@; put 'S2VbMF0pPDw0KSsoKEtlWzFdfHwwKT4+NCkpLEpbZmUrK109Y2UuY2hhckNvZGVBdCgoKDE1JktlWzFdKTw8MikrKChLZVsyXXx8MCk+PjYpKSxKW2ZlKytdPTQ1fWVsc2UgSltmZSsrXT00MyxKW2ZlKytdPTQ1fWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBt'@; put 'YWdpYzogIitTKyIgIithZVtTXSl9fXJldHVybiBKPUouc2xpY2UoMCxmZSksaz9wJiYiYnVmIiE9PXA/ImFyciIhPT1wP0oudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoSik6Sjoic3RyIj09cD9KLm1hcChLKS5qb2luKCIiKTpKfSxoYXNjcDpmdW5jdGlvbihTKXtyZXR1cm4h'@; put 'KCFGW1NdJiYhYWVbU10pfSxtYWdpYzphZSxjYWNoZTp1ZX0sRn0pfSw3NTQ0NjooYXQsSWUpPT57dmFyIEYsYWUseDshZnVuY3Rpb24obSl7aWYodHlwZW9mIERPX05PVF9FWFBPUlRfSlNaSVA+InUiKWF0LmV4cG9ydHM9bSgpO2Vsc2UgaWYodHlwZW9mIERPX05PVF9FWFBPUlRfSlNaSVA+'@; put 'InUiKUpTWmlwU3luYz1tKCksYWU9W10sdm9pZCAwIT09KHg9ImZ1bmN0aW9uIj09dHlwZW9mKEY9bSk/Ri5hcHBseShJZSxhZSk6RikmJihhdC5leHBvcnRzPXgpO2Vsc2V7dmFyIGxlO3R5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9sZT1nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3c8InUiP2xlPXdp'@; put 'bmRvdzp0eXBlb2YgZ2xvYmFsPCJ1Ij9sZT1nbG9iYWw6dHlwZW9mICQ8InUiJiYkLmdsb2JhbD9sZT0kLmdsb2JhbDp0eXBlb2Ygc2VsZjwidSImJihsZT1zZWxmKSxsZS5KU1ppcFN5bmM9bSgpfX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gTyhSLHosSyl7ZnVuY3Rpb24gSShqLFYp'@; put 'e2lmKCF6W2pdKXtpZighUltqXSl7aWYoaylyZXR1cm4gayhqLCEwKTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitqKyInIil9dmFyIFk9eltqXT17ZXhwb3J0czp7fX07UltqXVswXS5jYWxsKFkuZXhwb3J0cyxmdW5jdGlvbihYKXtyZXR1cm4gSShSW2pdWzFdW1hd'@; put 'fHxYKX0sWSxZLmV4cG9ydHMsTyxSLHosSyl9cmV0dXJuIHpbal0uZXhwb3J0c31mb3IodmFyIGs9dm9pZCAwLEU9MDtFPEsubGVuZ3RoO0UrKylJKEtbRV0pO3JldHVybiBJfSh7MTpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldY'@; put 'WVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO3ouZW5jb2RlPWZ1bmN0aW9uKEksayl7Zm9yKHZhciBqLFYsQixZLFgsVSxxLEU9IiIsZWU9MDtlZTxJLmxlbmd0aDspWT0oaj1JLmNoYXJDb2RlQXQoZWUrKykpPj4yLFg9KDMmaik8PDR8KFY9SS5jaGFyQ29kZUF0'@; put 'KGVlKyspKT4+NCxVPSgxNSZWKTw8MnwoQj1JLmNoYXJDb2RlQXQoZWUrKykpPj42LHE9NjMmQixpc05hTihWKT9VPXE9NjQ6aXNOYU4oQikmJihxPTY0KSxFPUUrSy5jaGFyQXQoWSkrSy5jaGFyQXQoWCkrSy5jaGFyQXQoVSkrSy5jaGFyQXQocSk7cmV0dXJuIEV9LHouZGVjb2RlPWZ1bmN0'@; put 'aW9uKEksayl7dmFyIFYsQixZLFgsVSxxLEU9IiIsZWU9MDtmb3IoST1JLnJlcGxhY2UoL1teQS1aYS16MC05XCtcL1w9XS9nLCIiKTtlZTxJLmxlbmd0aDspWT1LLmluZGV4T2YoSS5jaGFyQXQoZWUrKykpLFY9KDE1JihYPUsuaW5kZXhPZihJLmNoYXJBdChlZSsrKSkpKTw8NHwoVT1LLmlu'@; put 'ZGV4T2YoSS5jaGFyQXQoZWUrKykpKT4+MixCPSgzJlUpPDw2fChxPUsuaW5kZXhPZihJLmNoYXJBdChlZSsrKSkpLEUrPVN0cmluZy5mcm9tQ2hhckNvZGUoWTw8MnxYPj40KSw2NCE9VSYmKEUrPVN0cmluZy5mcm9tQ2hhckNvZGUoVikpLDY0IT1xJiYoRSs9U3RyaW5nLmZyb21DaGFyQ29k'@; put 'ZShCKSk7cmV0dXJuIEV9fSx7fV0sMjpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBLKCl7dGhpcy5jb21wcmVzc2VkU2l6ZT0wLHRoaXMudW5jb21wcmVzc2VkU2l6ZT0wLHRoaXMuY3JjMzI9MCx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPW51bGwsdGhpcy5jb21wcmVz'@; put 'c2VkQ29udGVudD1udWxsfUsucHJvdG90eXBlPXtnZXRDb250ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGdldENvbXByZXNzZWRDb250ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fSxSLmV4cG9ydHM9S30se31dLDM6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7ei5TVE9S'@; put 'RT17bWFnaWM6IlwwXDAiLGNvbXByZXNzOmZ1bmN0aW9uKEspe3JldHVybiBLfSx1bmNvbXByZXNzOmZ1bmN0aW9uKEspe3JldHVybiBLfSxjb21wcmVzc0lucHV0VHlwZTpudWxsLHVuY29tcHJlc3NJbnB1dFR5cGU6bnVsbH0sei5ERUZMQVRFPU8oIi4vZmxhdGUiKX0seyIuL2ZsYXRlIjo4'@; put 'fV0sNDpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuL3V0aWxzIiksST1bMCwxOTk2OTU5ODk0LDM5OTM5MTk3ODgsMjU2NzUyNDc5NCwxMjQ2MzQxMzcsMTg4NjA1NzYxNSwzOTE1NjIxNjg1LDI2NTczOTIwMzUsMjQ5MjY4Mjc0LDIwNDQ1MDgzMjQsMzc3MjExNTIz'@; put 'MCwyNTQ3MTc3ODY0LDE2Mjk0MTk5NSwyMTI1NTYxMDIxLDM4ODc2MDcwNDcsMjQyODQ0NDA0OSw0OTg1MzY1NDgsMTc4OTkyNzY2Niw0MDg5MDE2NjQ4LDIyMjcwNjEyMTQsNDUwNTQ4ODYxLDE4NDMyNTg2MDMsNDEwNzU4MDc1MywyMjExNjc3NjM5LDMyNTg4Mzk5MCwxNjg0Nzc3MTUyLDQy'@; put 'NTExMjIwNDIsMjMyMTkyNjYzNiwzMzU2MzM0ODcsMTY2MTM2NTQ2NSw0MTk1MzAyNzU1LDIzNjYxMTUzMTcsOTk3MDczMDk2LDEyODE5NTM4ODYsMzU3OTg1NTMzMiwyNzI0Njg4MjQyLDEwMDY4ODgxNDUsMTI1ODYwNzY4NywzNTI0MTAxNjI5LDI3Njg5NDI0NDMsOTAxMDk3NzIyLDExMTkw'@; put 'MDA2ODQsMzY4NjUxNzIwNiwyODk4MDY1NzI4LDg1MzA0NDQ1MSwxMTcyMjY2MTAxLDM3MDUwMTU3NTksMjg4MjYxNjY2NSw2NTE3Njc5ODAsMTM3MzUwMzU0NiwzMzY5NTU0MzA0LDMyMTgxMDQ1OTgsNTY1NTA3MjUzLDE0NTQ2MjE3MzEsMzQ4NTExMTcwNSwzMDk5NDM2MzAzLDY3MTI2Njk3'@; put 'NCwxNTk0MTk4MDI0LDMzMjI3MzA5MzAsMjk3MDM0NzgxMiw3OTU4MzU1MjcsMTQ4MzIzMDIyNSwzMjQ0MzY3Mjc1LDMwNjAxNDk1NjUsMTk5NDE0NjE5MiwzMTE1ODUzNCwyNTYzOTA3NzcyLDQwMjM3MTc5MzAsMTkwNzQ1OTQ2NSwxMTI2MzcyMTUsMjY4MDE1MzI1MywzOTA0NDI3MDU5LDIw'@; put 'MTM3NzYyOTAsMjUxNzIyMDM2LDI1MTcyMTUzNzQsMzc3NTgzMDA0MCwyMTM3NjU2NzYzLDE0MTM3NjgxMywyNDM5Mjc3NzE5LDM4NjUyNzEyOTcsMTgwMjE5NTQ0NCw0NzY4NjQ4NjYsMjIzODAwMTM2OCw0MDY2NTA4ODc4LDE4MTIzNzA5MjUsNDUzMDkyNzMxLDIxODE2MjUwMjUsNDExMTQ1'@; put 'MTIyMywxNzA2MDg4OTAyLDMxNDA0MjcwNCwyMzQ0NTMyMjAyLDQyNDAwMTc1MzIsMTY1ODY1ODI3MSwzNjY2MTk5NzcsMjM2MjY3MDMyMyw0MjI0OTk0NDA1LDEzMDM1MzU5NjAsOTg0OTYxNDg2LDI3NDcwMDcwOTIsMzU2OTAzNzUzOCwxMjU2MTcwODE3LDEwMzc2MDQzMTEsMjc2NTIxMDcz'@; put 'MywzNTU0MDc5OTk1LDExMzEwMTQ1MDYsODc5Njc5OTk2LDI5MDkyNDM0NjIsMzY2Mzc3MTg1NiwxMTQxMTI0NDY3LDg1NTg0MjI3NywyODUyODAxNjMxLDM3MDg2NDg2NDksMTM0MjUzMzk0OCw2NTQ0NTkzMDYsMzE4ODM5NjA0OCwzMzczMDE1MTc0LDE0NjY0Nzk5MDksNTQ0MTc5NjM1LDMx'@; put 'MTA1MjM5MTMsMzQ2MjUyMjAxNSwxNTkxNjcxMDU0LDcwMjEzODc3NiwyOTY2NDYwNDUwLDMzNTI3OTk0MTIsMTUwNDkxODgwNyw3ODM1NTE4NzMsMzA4MjY0MDQ0MywzMjMzNDQyOTg5LDM5ODgyOTIzODQsMjU5NjI1NDY0Niw2MjMxNzA2OCwxOTU3ODEwODQyLDM5Mzk4NDU5NDUsMjY0Nzgx'@; put 'NjExMSw4MTQ3MDk5NywxOTQzODAzNTIzLDM4MTQ5MTg5MzAsMjQ4OTU5NjgwNCwyMjUyNzQ0MzAsMjA1Mzc5MDM3NiwzODI2MTc1NzU1LDI0NjY5MDYwMTMsMTY3ODE2NzQzLDIwOTc2NTEzNzcsNDAyNzU1MjU4MCwyMjY1NDkwMzg2LDUwMzQ0NDA3MiwxNzYyMDUwODE0LDQxNTA0MTcyNDUs'@; put 'MjE1NDEyOTM1NSw0MjY1MjIyMjUsMTg1MjUwNzg3OSw0Mjc1MzEzNTI2LDIzMTIzMTc5MjAsMjgyNzUzNjI2LDE3NDI1NTU4NTIsNDE4OTcwODE0MywyMzk0ODc3OTQ1LDM5NzkxNzc2MywxNjIyMTgzNjM3LDM2MDQzOTA4ODgsMjcxNDg2NjU1OCw5NTM3Mjk3MzIsMTM0MDA3NjYyNiwzNTE4'@; put 'NzE5OTg1LDI3OTczNjA5OTksMTA2ODgyODM4MSwxMjE5NjM4ODU5LDM2MjQ3NDE4NTAsMjkzNjY3NTE0OCw5MDYxODU0NjIsMTA5MDgxMjUxMiwzNzQ3NjcyMDAzLDI4MjUzNzk2NjksODI5MzI5MTM1LDExODEzMzUxNjEsMzQxMjE3NzgwNCwzMTYwODM0ODQyLDYyODA4NTQwOCwxMzgyNjA1'@; put 'MzY2LDM0MjMzNjkxMDksMzEzODA3ODQ2Nyw1NzA1NjIyMzMsMTQyNjQwMDgxNSwzMzE3MzE2NTQyLDI5OTg3MzM2MDgsNzMzMjM5OTU0LDE1NTUyNjE5NTYsMzI2ODkzNTU5MSwzMDUwMzYwNjI1LDc1MjQ1OTQwMywxNTQxMzIwMjIxLDI2MDcwNzE5MjAsMzk2NTk3MzAzMCwxOTY5OTIyOTcy'@; put 'LDQwNzM1NDk4LDI2MTc4MzcyMjUsMzk0MzU3NzE1MSwxOTEzMDg3ODc3LDgzOTA4MzcxLDI1MTIzNDE2MzQsMzgwMzc0MDY5MiwyMDc1MjA4NjIyLDIxMzI2MTExMiwyNDYzMjcyNjAzLDM4NTU5OTAyODUsMjA5NDg1NDA3MSwxOTg5NTg4ODEsMjI2MjAyOTAxMiw0MDU3MjYwNjEwLDE3NTkz'@; put 'NTk5OTIsNTM0NDE0MTkwLDIxNzY3MTg1NDEsNDEzOTMyOTExNSwxODczODM2MDAxLDQxNDY2NDU2NywyMjgyMjQ4OTM0LDQyNzkyMDAzNjgsMTcxMTY4NDU1NCwyODUyODExMTYsMjQwNTgwMTcyNyw0MTY3MjE2NzQ1LDE2MzQ0Njc3OTUsMzc2MjI5NzAxLDI2ODUwNjc4OTYsMzYwODAwNzQw'@; put 'NiwxMzA4OTE4NjEyLDk1NjU0MzkzOCwyODA4NTU1MTA1LDM0OTU5NTgyNjMsMTIzMTYzNjMwMSwxMDQ3NDI3MDM1LDI5MzI5NTk4MTgsMzY1NDcwMzgzNiwxMDg4MzU5MjcwLDkzNjkxOGUzLDI4NDc3MTQ4OTksMzczNjgzNzgyOSwxMjAyOTAwODYzLDgxNzIzMzg5NywzMTgzMzQyMTA4LDM0'@; put 'MDEyMzcxMzAsMTQwNDI3NzU1Miw2MTU4MTgxNTAsMzEzNDIwNzQ5MywzNDUzNDIxMjAzLDE0MjM4NTc0NDksNjAxNDUwNDMxLDMwMDk4Mzc2MTQsMzI5NDcxMDQ1NiwxNTY3MTAzNzQ2LDcxMTkyODcyNCwzMDIwNjY4NDcxLDMyNzIzODAwNjUsMTUxMDMzNDIzNSw3NTUxNjcxMTddO1IuZXhw'@; put 'b3J0cz1mdW5jdGlvbihFLGope2lmKHR5cGVvZiBFPiJ1Inx8IUUubGVuZ3RoKXJldHVybiAwO3ZhciBWPSJzdHJpbmciIT09Sy5nZXRUeXBlT2YoRSk7dHlwZW9mIGo+InUiJiYoaj0wKTt2YXIgWD0wO2pePS0xO2Zvcih2YXIgVT0wLHE9RS5sZW5ndGg7VTxxO1UrKylYPVY/RVtVXTpFLmNo'@; put 'YXJDb2RlQXQoVSksaj1qPj4+OF5JWzI1NSYoal5YKV07cmV0dXJuLTFean19LHsiLi91dGlscyI6MjF9XSw1OltmdW5jdGlvbihPLFIseil7InVzZSBzdHJpY3QiO3ZhciBLPU8oIi4vdXRpbHMiKTtmdW5jdGlvbiBJKGspe3RoaXMuZGF0YT1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5pbmRl'@; put 'eD0wfUkucHJvdG90eXBlPXtjaGVja09mZnNldDpmdW5jdGlvbihrKXt0aGlzLmNoZWNrSW5kZXgodGhpcy5pbmRleCtrKX0sY2hlY2tJbmRleDpmdW5jdGlvbihrKXtpZih0aGlzLmxlbmd0aDxrfHxrPDApdGhyb3cgbmV3IEVycm9yKCJFbmQgb2YgZGF0YSByZWFjaGVkIChkYXRhIGxlbmd0'@; put 'aCA9ICIrdGhpcy5sZW5ndGgrIiwgYXNrZWQgaW5kZXggPSAiK2srIikuIENvcnJ1cHRlZCB6aXAgPyIpfSxzZXRJbmRleDpmdW5jdGlvbihrKXt0aGlzLmNoZWNrSW5kZXgoayksdGhpcy5pbmRleD1rfSxza2lwOmZ1bmN0aW9uKGspe3RoaXMuc2V0SW5kZXgodGhpcy5pbmRleCtrKX0sYnl0'@; put 'ZUF0OmZ1bmN0aW9uKGspe30scmVhZEludDpmdW5jdGlvbihrKXt2YXIgaixFPTA7Zm9yKHRoaXMuY2hlY2tPZmZzZXQoayksaj10aGlzLmluZGV4K2stMTtqPj10aGlzLmluZGV4O2otLSlFPShFPDw4KSt0aGlzLmJ5dGVBdChqKTtyZXR1cm4gdGhpcy5pbmRleCs9ayxFfSxyZWFkU3RyaW5n'@; put 'OmZ1bmN0aW9uKGspe3JldHVybiBLLnRyYW5zZm9ybVRvKCJzdHJpbmciLHRoaXMucmVhZERhdGEoaykpfSxyZWFkRGF0YTpmdW5jdGlvbihrKXt9LGxhc3RJbmRleE9mU2lnbmF0dXJlOmZ1bmN0aW9uKGspe30scmVhZERhdGU6ZnVuY3Rpb24oKXt2YXIgaz10aGlzLnJlYWRJbnQoNCk7cmV0'@; put 'dXJuIG5ldyBEYXRlKDE5ODArKGs+PjI1JjEyNyksKGs+PjIxJjE1KS0xLGs+PjE2JjMxLGs+PjExJjMxLGs+PjUmNjMsKDMxJmspPDwxKX19LFIuZXhwb3J0cz1JfSx7Ii4vdXRpbHMiOjIxfV0sNjpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt6LmJhc2U2ND0hMSx6LmJpbmFyeT0h'@; put 'MSx6LmRpcj0hMSx6LmNyZWF0ZUZvbGRlcnM9ITEsei5kYXRlPW51bGwsei5jb21wcmVzc2lvbj1udWxsLHouY29tbWVudD1udWxsfSx7fV0sNzpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuL3V0aWxzIik7ei5zdHJpbmcyYmluYXJ5PWZ1bmN0aW9uKEkpe3JldHVy'@; put 'biBLLnN0cmluZzJiaW5hcnkoSSl9LHouc3RyaW5nMlVpbnQ4QXJyYXk9ZnVuY3Rpb24oSSl7cmV0dXJuIEsudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLEkpfSx6LnVpbnQ4QXJyYXkyU3RyaW5nPWZ1bmN0aW9uKEkpe3JldHVybiBLLnRyYW5zZm9ybVRvKCJzdHJpbmciLEkpfSx6LnN0cmlu'@; put 'ZzJCbG9iPWZ1bmN0aW9uKEkpe3ZhciBrPUsudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIixJKTtyZXR1cm4gSy5hcnJheUJ1ZmZlcjJCbG9iKGspfSx6LmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oSSl7cmV0dXJuIEsuYXJyYXlCdWZmZXIyQmxvYihJKX0sei50cmFuc2Zvcm1Ubz1mdW5j'@; put 'dGlvbihJLGspe3JldHVybiBLLnRyYW5zZm9ybVRvKEksayl9LHouZ2V0VHlwZU9mPWZ1bmN0aW9uKEkpe3JldHVybiBLLmdldFR5cGVPZihJKX0sei5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24oSSl7cmV0dXJuIEsuY2hlY2tTdXBwb3J0KEkpfSx6Lk1BWF9WQUxVRV8xNkJJVFM9Sy5NQVhfVkFM'@; put 'VUVfMTZCSVRTLHouTUFYX1ZBTFVFXzMyQklUUz1LLk1BWF9WQUxVRV8zMkJJVFMsei5wcmV0dHk9ZnVuY3Rpb24oSSl7cmV0dXJuIEsucHJldHR5KEkpfSx6LmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihJKXtyZXR1cm4gSy5maW5kQ29tcHJlc3Npb24oSSl9LHouaXNSZWdFeHA9ZnVuY3Rp'@; put 'b24oSSl7cmV0dXJuIEsuaXNSZWdFeHAoSSl9fSx7Ii4vdXRpbHMiOjIxfV0sODpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz10eXBlb2YgVWludDhBcnJheTwidSImJnR5cGVvZiBVaW50MTZBcnJheTwidSImJnR5cGVvZiBVaW50MzJBcnJheTwidSIsST1PKCJwYWtvIik7'@; put 'ei51bmNvbXByZXNzSW5wdXRUeXBlPUs/InVpbnQ4YXJyYXkiOiJhcnJheSIsei5jb21wcmVzc0lucHV0VHlwZT1LPyJ1aW50OGFycmF5IjoiYXJyYXkiLHoubWFnaWM9IlxiXDAiLHouY29tcHJlc3M9ZnVuY3Rpb24oayl7cmV0dXJuIEkuZGVmbGF0ZVJhdyhrKX0sei51bmNvbXByZXNzPWZ1'@; put 'bmN0aW9uKGspe3JldHVybiBJLmluZmxhdGVSYXcoayl9fSx7cGFrbzoyNH1dLDk6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi9iYXNlNjQiKTtmdW5jdGlvbiBJKGssRSl7aWYoISh0aGlzIGluc3RhbmNlb2YgSSkpcmV0dXJuIG5ldyBJKGssRSk7dGhpcy5maWxl'@; put 'cz17fSx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLnJvb3Q9IiIsayYmdGhpcy5sb2FkKGssRSksdGhpcy5jbG9uZT1mdW5jdGlvbigpe3ZhciBqPW5ldyBJO2Zvcih2YXIgViBpbiB0aGlzKSJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzW1ZdJiYoaltWXT10aGlzW1ZdKTtyZXR1cm4gan19KEkucHJv'@; put 'dG90eXBlPU8oIi4vb2JqZWN0IikpLmxvYWQ9TygiLi9sb2FkIiksSS5zdXBwb3J0PU8oIi4vc3VwcG9ydCIpLEkuZGVmYXVsdHM9TygiLi9kZWZhdWx0cyIpLEkudXRpbHM9TygiLi9kZXByZWNhdGVkUHVibGljVXRpbHMiKSxJLmJhc2U2ND17ZW5jb2RlOmZ1bmN0aW9uKGspe3JldHVybiBL'@; put 'LmVuY29kZShrKX0sZGVjb2RlOmZ1bmN0aW9uKGspe3JldHVybiBLLmRlY29kZShrKX19LEkuY29tcHJlc3Npb25zPU8oIi4vY29tcHJlc3Npb25zIiksUi5leHBvcnRzPUl9LHsiLi9iYXNlNjQiOjEsIi4vY29tcHJlc3Npb25zIjozLCIuL2RlZmF1bHRzIjo2LCIuL2RlcHJlY2F0ZWRQdWJs'@; put 'aWNVdGlscyI6NywiLi9sb2FkIjoxMCwiLi9vYmplY3QiOjEzLCIuL3N1cHBvcnQiOjE3fV0sMTA6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi9iYXNlNjQiKSxJPU8oIi4vemlwRW50cmllcyIpO1IuZXhwb3J0cz1mdW5jdGlvbihrLEUpe3ZhciBqLFYsQixZO2Zv'@; put 'cigoRT1FfHx7fSkuYmFzZTY0JiYoaz1LLmRlY29kZShrKSksaj0oVj1uZXcgSShrLEUpKS5maWxlcyxCPTA7QjxqLmxlbmd0aDtCKyspdGhpcy5maWxlKChZPWpbQl0pLmZpbGVOYW1lLFkuZGVjb21wcmVzc2VkLHtiaW5hcnk6ITAsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiEwLGRhdGU6WS5k'@; put 'YXRlLGRpcjpZLmRpcixjb21tZW50OlkuZmlsZUNvbW1lbnQubGVuZ3RoP1kuZmlsZUNvbW1lbnQ6bnVsbCxjcmVhdGVGb2xkZXJzOkUuY3JlYXRlRm9sZGVyc30pO3JldHVybiBWLnppcENvbW1lbnQubGVuZ3RoJiYodGhpcy5jb21tZW50PVYuemlwQ29tbWVudCksdGhpc319LHsiLi9iYXNl'@; put 'NjQiOjEsIi4vemlwRW50cmllcyI6MjJ9XSwxMTpbZnVuY3Rpb24oTyxSLHopeyhmdW5jdGlvbihLKXsidXNlIHN0cmljdCI7dmFyIEk9ZnVuY3Rpb24oKXt9O2lmKHR5cGVvZiBLPCJ1Iil7dmFyIGs9IUsuZnJvbTtpZighayl0cnl7Sy5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2h7az0hMH1J'@; put 'PWs/ZnVuY3Rpb24oRSxqKXtyZXR1cm4gaj9uZXcgSyhFLGopOm5ldyBLKEUpfTpLLmZyb20uYmluZChLKSxLLmFsbG9jfHwoSy5hbGxvYz1mdW5jdGlvbihFKXtyZXR1cm4gbmV3IEsoRSl9KX1SLmV4cG9ydHM9ZnVuY3Rpb24oRSxqKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIEU/Sy5hbGxv'@; put 'YyhFKTpJKEUsail9LFIuZXhwb3J0cy50ZXN0PWZ1bmN0aW9uKEUpe3JldHVybiBLLmlzQnVmZmVyKEUpfX0pLmNhbGwodGhpcyx0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXI6dm9pZCAwKX0se31dLDEyOltmdW5jdGlvbihPLFIseil7InVzZSBzdHJpY3QiO3ZhciBLPU8oIi4vdWludDhBcnJh'@; put 'eVJlYWRlciIpO2Z1bmN0aW9uIEkoayl7dGhpcy5kYXRhPWssdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTB9KEkucHJvdG90eXBlPW5ldyBLKS5yZWFkRGF0YT1mdW5jdGlvbihrKXt0aGlzLmNoZWNrT2Zmc2V0KGspO3ZhciBFPXRoaXMuZGF0YS5zbGljZSh0aGlz'@; put 'LmluZGV4LHRoaXMuaW5kZXgrayk7cmV0dXJuIHRoaXMuaW5kZXgrPWssRX0sUi5leHBvcnRzPUl9LHsiLi91aW50OEFycmF5UmVhZGVyIjoxOH1dLDEzOltmdW5jdGlvbihPLFIseil7InVzZSBzdHJpY3QiO3ZhciBLPU8oIi4vc3VwcG9ydCIpLEk9TygiLi91dGlscyIpLGs9TygiLi9jcmMz'@; put 'MiIpLEU9TygiLi9zaWduYXR1cmUiKSxqPU8oIi4vZGVmYXVsdHMiKSxWPU8oIi4vYmFzZTY0IiksQj1PKCIuL2NvbXByZXNzaW9ucyIpLFk9TygiLi9jb21wcmVzc2VkT2JqZWN0IiksWD1PKCIuL25vZGVCdWZmZXIiKSxVPU8oIi4vdXRmOCIpLHE9TygiLi9zdHJpbmdXcml0ZXIiKSxlZT1P'@; put 'KCIuL3VpbnQ4QXJyYXlXcml0ZXIiKSx0ZT1mdW5jdGlvbihTKXtpZihTLl9kYXRhIGluc3RhbmNlb2YgWSYmKFMuX2RhdGE9Uy5fZGF0YS5nZXRDb250ZW50KCksUy5vcHRpb25zLmJpbmFyeT0hMCxTLm9wdGlvbnMuYmFzZTY0PSExLCJ1aW50OGFycmF5Ij09PUkuZ2V0VHlwZU9mKFMuX2Rh'@; put 'dGEpKSl7dmFyIHY9Uy5fZGF0YTtTLl9kYXRhPW5ldyBVaW50OEFycmF5KHYubGVuZ3RoKSwwIT09di5sZW5ndGgmJlMuX2RhdGEuc2V0KHYsMCl9cmV0dXJuIFMuX2RhdGF9LG9lPWZ1bmN0aW9uKFMpe3ZhciB2PXRlKFMpO3JldHVybiJzdHJpbmciPT09SS5nZXRUeXBlT2Yodik/IVMub3B0'@; put 'aW9ucy5iaW5hcnkmJksubm9kZWJ1ZmZlcj9YKHYsInV0Zi04Iik6Uy5hc0JpbmFyeSgpOnZ9LHNlPWZ1bmN0aW9uKFMpe3ZhciB2PXRlKHRoaXMpO3JldHVybiBudWxsPT09dnx8dHlwZW9mIHY+InUiPyIiOih0aGlzLm9wdGlvbnMuYmFzZTY0JiYodj1WLmRlY29kZSh2KSksdj1TJiZ0aGlz'@; put 'Lm9wdGlvbnMuYmluYXJ5P0MudXRmOGRlY29kZSh2KTpJLnRyYW5zZm9ybVRvKCJzdHJpbmciLHYpLCFTJiYhdGhpcy5vcHRpb25zLmJpbmFyeSYmKHY9SS50cmFuc2Zvcm1Ubygic3RyaW5nIixDLnV0ZjhlbmNvZGUodikpKSx2KX0saGU9ZnVuY3Rpb24oUyx2LHApe3RoaXMubmFtZT1TLHRo'@; put 'aXMuZGlyPXAuZGlyLHRoaXMuZGF0ZT1wLmRhdGUsdGhpcy5jb21tZW50PXAuY29tbWVudCx0aGlzLl9kYXRhPXYsdGhpcy5vcHRpb25zPXAsdGhpcy5faW5pdGlhbE1ldGFkYXRhPXtkaXI6cC5kaXIsZGF0ZTpwLmRhdGV9fTtoZS5wcm90b3R5cGU9e2FzVGV4dDpmdW5jdGlvbigpe3JldHVy'@; put 'biBzZS5jYWxsKHRoaXMsITApfSxhc0JpbmFyeTpmdW5jdGlvbigpe3JldHVybiBzZS5jYWxsKHRoaXMsITEpfSxhc05vZGVCdWZmZXI6ZnVuY3Rpb24oKXt2YXIgUz1vZSh0aGlzKTtyZXR1cm4gSS50cmFuc2Zvcm1Ubygibm9kZWJ1ZmZlciIsUyl9LGFzVWludDhBcnJheTpmdW5jdGlvbigp'@; put 'e3ZhciBTPW9lKHRoaXMpO3JldHVybiBJLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixTKX0sYXNBcnJheUJ1ZmZlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFzVWludDhBcnJheSgpLmJ1ZmZlcn19O3ZhciB1ZT1mdW5jdGlvbihTLHYpe3ZhciB3LHA9IiI7Zm9yKHc9MDt3PHY7dysrKXAr'@; put 'PVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JlMpLFM+Pj49ODtyZXR1cm4gcH0sY2U9ZnVuY3Rpb24oKXt2YXIgdixwLFM9e307Zm9yKHY9MDt2PGFyZ3VtZW50cy5sZW5ndGg7disrKWZvcihwIGluIGFyZ3VtZW50c1t2XSlhcmd1bWVudHNbdl0uaGFzT3duUHJvcGVydHkocCkmJnR5cGVvZiBT'@; put 'W3BdPiJ1IiYmKFNbcF09YXJndW1lbnRzW3ZdW3BdKTtyZXR1cm4gU30sYj1mdW5jdGlvbihTLHYscCl7dmFyIEosdz1JLmdldFR5cGVPZih2KTtpZihwPWZ1bmN0aW9uKFMpe3JldHVybiEwPT09KFM9U3x8e30pLmJhc2U2NCYmbnVsbD09Uy5iaW5hcnkmJihTLmJpbmFyeT0hMCksKFM9Y2Uo'@; put 'UyxqKSkuZGF0ZT1TLmRhdGV8fG5ldyBEYXRlLG51bGwhPT1TLmNvbXByZXNzaW9uJiYoUy5jb21wcmVzc2lvbj1TLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkpLFN9KHApLHAuY3JlYXRlRm9sZGVycyYmKEo9RChTKSkmJkguY2FsbCh0aGlzLEosITApLHAuZGlyfHxudWxsPT09dnx8dHlw'@; put 'ZW9mIHY+InUiKXAuYmFzZTY0PSExLHAuYmluYXJ5PSExLHY9bnVsbDtlbHNlIGlmKCJzdHJpbmciPT09dylwLmJpbmFyeSYmIXAuYmFzZTY0JiYhMCE9PXAub3B0aW1pemVkQmluYXJ5U3RyaW5nJiYodj1JLnN0cmluZzJiaW5hcnkodikpO2Vsc2V7aWYocC5iYXNlNjQ9ITEscC5iaW5hcnk9'@; put 'ITAsISh3fHx2IGluc3RhbmNlb2YgWSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBvZiAnIitTKyInIGlzIGluIGFuIHVuc3VwcG9ydGVkIGZvcm1hdCAhIik7ImFycmF5YnVmZmVyIj09PXcmJih2PUkudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLHYpKX12YXIgbmU9bmV3IGhlKFMsdixw'@; put 'KTtyZXR1cm4gdGhpcy5maWxlc1tTXT1uZSxuZX0sRD1mdW5jdGlvbihTKXsiLyI9PVMuc2xpY2UoLTEpJiYoUz1TLnN1YnN0cmluZygwLFMubGVuZ3RoLTEpKTt2YXIgdj1TLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIHY+MD9TLnN1YnN0cmluZygwLHYpOiIifSxIPWZ1bmN0aW9uKFMsdil7'@; put 'cmV0dXJuIi8iIT1TLnNsaWNlKC0xKSYmKFMrPSIvIiksdj10eXBlb2YgdjwidSImJnYsdGhpcy5maWxlc1tTXXx8Yi5jYWxsKHRoaXMsUyxudWxsLHtkaXI6ITAsY3JlYXRlRm9sZGVyczp2fSksdGhpcy5maWxlc1tTXX0sTj1mdW5jdGlvbihTLHYpe3ZhciB3LHA9bmV3IFk7cmV0dXJuIFMu'@; put 'X2RhdGEgaW5zdGFuY2VvZiBZPyhwLnVuY29tcHJlc3NlZFNpemU9Uy5fZGF0YS51bmNvbXByZXNzZWRTaXplLHAuY3JjMzI9Uy5fZGF0YS5jcmMzMiwwPT09cC51bmNvbXByZXNzZWRTaXplfHxTLmRpcj8odj1CLlNUT1JFLHAuY29tcHJlc3NlZENvbnRlbnQ9IiIscC5jcmMzMj0wKTpTLl9k'@; put 'YXRhLmNvbXByZXNzaW9uTWV0aG9kPT09di5tYWdpYz9wLmNvbXByZXNzZWRDb250ZW50PVMuX2RhdGEuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKToodz1TLl9kYXRhLmdldENvbnRlbnQoKSxwLmNvbXByZXNzZWRDb250ZW50PXYuY29tcHJlc3MoSS50cmFuc2Zvcm1Ubyh2LmNvbXByZXNzSW5w'@; put 'dXRUeXBlLHcpKSkpOigoISh3PW9lKFMpKXx8MD09PXcubGVuZ3RofHxTLmRpcikmJih2PUIuU1RPUkUsdz0iIikscC51bmNvbXByZXNzZWRTaXplPXcubGVuZ3RoLHAuY3JjMzI9ayh3KSxwLmNvbXByZXNzZWRDb250ZW50PXYuY29tcHJlc3MoSS50cmFuc2Zvcm1Ubyh2LmNvbXByZXNzSW5w'@; put 'dXRUeXBlLHcpKSkscC5jb21wcmVzc2VkU2l6ZT1wLmNvbXByZXNzZWRDb250ZW50Lmxlbmd0aCxwLmNvbXByZXNzaW9uTWV0aG9kPXYubWFnaWMscH0sZz1mdW5jdGlvbihTLHYscCx3KXt2YXIgT2UsamUsUWUsbHQsbmU9SS50cmFuc2Zvcm1Ubygic3RyaW5nIixVLnV0ZjhlbmNvZGUodi5u'@; put 'YW1lKSksZGU9di5jb21tZW50fHwiIixmZT1JLnRyYW5zZm9ybVRvKCJzdHJpbmciLFUudXRmOGVuY29kZShkZSkpLHhlPW5lLmxlbmd0aCE9PXYubmFtZS5sZW5ndGgsTGU9ZmUubGVuZ3RoIT09ZGUubGVuZ3RoLEZlPXYub3B0aW9ucyxXZT0iIixLZT0iIixZZT0iIjtRZT12Ll9pbml0aWFs'@; put 'TWV0YWRhdGEuZGlyIT09di5kaXI/di5kaXI6RmUuZGlyLE9lPShsdD12Ll9pbml0aWFsTWV0YWRhdGEuZGF0ZSE9PXYuZGF0ZT92LmRhdGU6RmUuZGF0ZSkuZ2V0SG91cnMoKSxPZTw8PTYsT2V8PWx0LmdldE1pbnV0ZXMoKSxPZTw8PTUsT2V8PWx0LmdldFNlY29uZHMoKS8yLGplPWx0Lmdl'@; put 'dEZ1bGxZZWFyKCktMTk4MCxqZTw8PTQsamV8PWx0LmdldE1vbnRoKCkrMSxqZTw8PTUsamV8PWx0LmdldERhdGUoKSx4ZSYmKEtlPXVlKDEsMSkrdWUoayhuZSksNCkrbmUsV2UrPSJ1cCIrdWUoS2UubGVuZ3RoLDIpK0tlKSxMZSYmKFllPXVlKDEsMSkrdWUodGhpcy5jcmMzMihmZSksNCkr'@; put 'ZmUsV2UrPSJ1YyIrdWUoWWUubGVuZ3RoLDIpK1llKTt2YXIgUGU9IiI7cmV0dXJuIFBlKz0iXG5cMCIsUGUrPXhlfHxMZT8iXDBcYiI6IlwwXDAiLFBlKz1wLmNvbXByZXNzaW9uTWV0aG9kLFBlKz11ZShPZSwyKSxQZSs9dWUoamUsMiksUGUrPXVlKHAuY3JjMzIsNCksUGUrPXVlKHAuY29t'@; put 'cHJlc3NlZFNpemUsNCksUGUrPXVlKHAudW5jb21wcmVzc2VkU2l6ZSw0KSxQZSs9dWUobmUubGVuZ3RoLDIpLFBlKz11ZShXZS5sZW5ndGgsMikse2ZpbGVSZWNvcmQ6RS5MT0NBTF9GSUxFX0hFQURFUitQZStuZStXZSxkaXJSZWNvcmQ6RS5DRU5UUkFMX0ZJTEVfSEVBREVSKyJceDE0XDAi'@; put 'K1BlK3VlKGZlLmxlbmd0aCwyKSsiXDBcMFwwXDAiKyghMD09PVFlPyJceDEwXDBcMFwwIjoiXDBcMFwwXDAiKSt1ZSh3LDQpK25lK1dlK2ZlLGNvbXByZXNzZWRPYmplY3Q6cH19LEM9e2xvYWQ6ZnVuY3Rpb24oUyx2KXt0aHJvdyBuZXcgRXJyb3IoIkxvYWQgbWV0aG9kIGlzIG5vdCBkZWZp'@; put 'bmVkLiBJcyB0aGUgZmlsZSBqc3ppcC1sb2FkLmpzIGluY2x1ZGVkID8iKX0sZmlsdGVyOmZ1bmN0aW9uKFMpe3ZhciBwLHcsSixuZSx2PVtdO2ZvcihwIGluIHRoaXMuZmlsZXMpdGhpcy5maWxlcy5oYXNPd25Qcm9wZXJ0eShwKSYmKG5lPW5ldyBoZSgoSj10aGlzLmZpbGVzW3BdKS5uYW1l'@; put 'LEouX2RhdGEsY2UoSi5vcHRpb25zKSksdz1wLnNsaWNlKHRoaXMucm9vdC5sZW5ndGgscC5sZW5ndGgpLHAuc2xpY2UoMCx0aGlzLnJvb3QubGVuZ3RoKT09PXRoaXMucm9vdCYmUyh3LG5lKSYmdi5wdXNoKG5lKSk7cmV0dXJuIHZ9LGZpbGU6ZnVuY3Rpb24oUyx2LHApe2lmKDE9PT1hcmd1'@; put 'bWVudHMubGVuZ3RoKXtpZihJLmlzUmVnRXhwKFMpKXt2YXIgdz1TO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihKLG5lKXtyZXR1cm4hbmUuZGlyJiZ3LnRlc3QoSil9KX1yZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oSixuZSl7cmV0dXJuIW5lLmRpciYmSj09PVN9KVswXXx8bnVs'@; put 'bH1yZXR1cm4gYi5jYWxsKHRoaXMsUz10aGlzLnJvb3QrUyx2LHApLHRoaXN9LGZvbGRlcjpmdW5jdGlvbihTKXtpZighUylyZXR1cm4gdGhpcztpZihJLmlzUmVnRXhwKFMpKXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihKLG5lKXtyZXR1cm4gbmUuZGlyJiZTLnRlc3QoSil9KTt2YXIg'@; put 'cD1ILmNhbGwodGhpcyx0aGlzLnJvb3QrUyksdz10aGlzLmNsb25lKCk7cmV0dXJuIHcucm9vdD1wLm5hbWUsd30scmVtb3ZlOmZ1bmN0aW9uKFMpe3ZhciB2PXRoaXMuZmlsZXNbUz10aGlzLnJvb3QrU107aWYodnx8KCIvIiE9Uy5zbGljZSgtMSkmJihTKz0iLyIpLHY9dGhpcy5maWxlc1tT'@; put 'XSksdiYmIXYuZGlyKWRlbGV0ZSB0aGlzLmZpbGVzW1NdO2Vsc2UgZm9yKHZhciBwPXRoaXMuZmlsdGVyKGZ1bmN0aW9uKEosbmUpe3JldHVybiBuZS5uYW1lLnNsaWNlKDAsUy5sZW5ndGgpPT09U30pLHc9MDt3PHAubGVuZ3RoO3crKylkZWxldGUgdGhpcy5maWxlc1twW3ddLm5hbWVdO3Jl'@; put 'dHVybiB0aGlzfSxnZW5lcmF0ZTpmdW5jdGlvbihTKXtTPWNlKFN8fHt9LHtiYXNlNjQ6ITAsY29tcHJlc3Npb246IlNUT1JFIix0eXBlOiJiYXNlNjQiLGNvbW1lbnQ6bnVsbH0pLEkuY2hlY2tTdXBwb3J0KFMudHlwZSk7dmFyIEosbmUsV2Usdj1bXSxwPTAsdz0wLGRlPUkudHJhbnNmb3Jt'@; put 'VG8oInN0cmluZyIsdGhpcy51dGY4ZW5jb2RlKFMuY29tbWVudHx8dGhpcy5jb21tZW50fHwiIikpO2Zvcih2YXIgZmUgaW4gdGhpcy5maWxlcylpZih0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGZlKSl7dmFyIHhlPXRoaXMuZmlsZXNbZmVdLExlPXhlLm9wdGlvbnMuY29tcHJlc3Npb258'@; put 'fFMuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSxGZT1CW0xlXTtpZighRmUpdGhyb3cgbmV3IEVycm9yKExlKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICEiKTt2YXIgT2U9Ti5jYWxsKHRoaXMseGUsRmUpLGplPWcuY2FsbCh0aGlzLGZlLHhlLE9lLHApO3ArPWplLmZp'@; put 'bGVSZWNvcmQubGVuZ3RoK09lLmNvbXByZXNzZWRTaXplLHcrPWplLmRpclJlY29yZC5sZW5ndGgsdi5wdXNoKGplKX1XZT1FLkNFTlRSQUxfRElSRUNUT1JZX0VORCsiXDBcMFwwXDAiK3VlKHYubGVuZ3RoLDIpK3VlKHYubGVuZ3RoLDIpK3VlKHcsNCkrdWUocCw0KSt1ZShkZS5sZW5ndGgs'@; put 'MikrZGU7dmFyIEtlPVMudHlwZS50b0xvd2VyQ2FzZSgpO2ZvcihKPSJ1aW50OGFycmF5Ij09PUtlfHwiYXJyYXlidWZmZXIiPT09S2V8fCJibG9iIj09PUtlfHwibm9kZWJ1ZmZlciI9PT1LZT9uZXcgZWUocCt3K1dlLmxlbmd0aCk6bmV3IHEocCt3K1dlLmxlbmd0aCksbmU9MDtuZTx2Lmxl'@; put 'bmd0aDtuZSsrKUouYXBwZW5kKHZbbmVdLmZpbGVSZWNvcmQpLEouYXBwZW5kKHZbbmVdLmNvbXByZXNzZWRPYmplY3QuY29tcHJlc3NlZENvbnRlbnQpO2ZvcihuZT0wO25lPHYubGVuZ3RoO25lKyspSi5hcHBlbmQodltuZV0uZGlyUmVjb3JkKTtKLmFwcGVuZChXZSk7dmFyIFllPUouZmlu'@; put 'YWxpemUoKTtzd2l0Y2goUy50eXBlLnRvTG93ZXJDYXNlKCkpe2Nhc2UidWludDhhcnJheSI6Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJub2RlYnVmZmVyIjpyZXR1cm4gSS50cmFuc2Zvcm1UbyhTLnR5cGUudG9Mb3dlckNhc2UoKSxZZSk7Y2FzZSJibG9iIjpyZXR1cm4gSS5hcnJheUJ1ZmZl'@; put 'cjJCbG9iKEkudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIixZZSkpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gUy5iYXNlNjQ/Vi5lbmNvZGUoWWUpOlllO2RlZmF1bHQ6cmV0dXJuIFllfX0sY3JjMzI6ZnVuY3Rpb24oUyx2KXtyZXR1cm4gayhTLHYpfSx1dGY4ZW5jb2RlOmZ1bmN0aW9uKFMpe3Jl'@; put 'dHVybiBJLnRyYW5zZm9ybVRvKCJzdHJpbmciLFUudXRmOGVuY29kZShTKSl9LHV0ZjhkZWNvZGU6ZnVuY3Rpb24oUyl7cmV0dXJuIFUudXRmOGRlY29kZShTKX19O1IuZXhwb3J0cz1DfSx7Ii4vYmFzZTY0IjoxLCIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vY29tcHJlc3Npb25zIjozLCIu'@; put 'L2NyYzMyIjo0LCIuL2RlZmF1bHRzIjo2LCIuL25vZGVCdWZmZXIiOjExLCIuL3NpZ25hdHVyZSI6MTQsIi4vc3RyaW5nV3JpdGVyIjoxNiwiLi9zdXBwb3J0IjoxNywiLi91aW50OEFycmF5V3JpdGVyIjoxOSwiLi91dGY4IjoyMCwiLi91dGlscyI6MjF9XSwxNDpbZnVuY3Rpb24oTyxSLHop'@; put 'eyJ1c2Ugc3RyaWN0Ijt6LkxPQ0FMX0ZJTEVfSEVBREVSPSJQS1x4MDNceDA0Iix6LkNFTlRSQUxfRklMRV9IRUFERVI9IlBLXHgwMVx4MDIiLHouQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQS1x4MDVceDA2Iix6LlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1I9IlBLXHgwNlx4MDci'@; put 'LHouWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQS1x4MDZceDA2Iix6LkRBVEFfREVTQ1JJUFRPUj0iUEtceDA3XGIifSx7fV0sMTU6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi9kYXRhUmVhZGVyIiksST1PKCIuL3V0aWxzIik7ZnVuY3Rpb24gayhFLGop'@; put 'e3RoaXMuZGF0YT1FLGp8fCh0aGlzLmRhdGE9SS5zdHJpbmcyYmluYXJ5KHRoaXMuZGF0YSkpLHRoaXMubGVuZ3RoPXRoaXMuZGF0YS5sZW5ndGgsdGhpcy5pbmRleD0wfShrLnByb3RvdHlwZT1uZXcgSykuYnl0ZUF0PWZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmRhdGEuY2hhckNvZGVBdChF'@; put 'KX0say5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuZGF0YS5sYXN0SW5kZXhPZihFKX0say5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oRSl7dGhpcy5jaGVja09mZnNldChFKTt2YXIgaj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRl'@; put 'eCx0aGlzLmluZGV4K0UpO3JldHVybiB0aGlzLmluZGV4Kz1FLGp9LFIuZXhwb3J0cz1rfSx7Ii4vZGF0YVJlYWRlciI6NSwiLi91dGlscyI6MjF9XSwxNjpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuL3V0aWxzIiksST1mdW5jdGlvbigpe3RoaXMuZGF0YT1bXX07'@; put 'SS5wcm90b3R5cGU9e2FwcGVuZDpmdW5jdGlvbihrKXtrPUsudHJhbnNmb3JtVG8oInN0cmluZyIsayksdGhpcy5kYXRhLnB1c2goayl9LGZpbmFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5qb2luKCIiKX19LFIuZXhwb3J0cz1JfSx7Ii4vdXRpbHMiOjIxfV0sMTc6W2Z1bmN0'@; put 'aW9uKE8sUix6KXsoZnVuY3Rpb24oSyl7InVzZSBzdHJpY3QiO2lmKHouYmFzZTY0PSEwLHouYXJyYXk9ITAsei5zdHJpbmc9ITAsei5hcnJheWJ1ZmZlcj10eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZ0eXBlb2YgVWludDhBcnJheTwidSIsei5ub2RlYnVmZmVyPXR5cGVvZiBLPCJ1Iix6LnVp'@; put 'bnQ4YXJyYXk9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLHR5cGVvZiBBcnJheUJ1ZmZlcj4idSIpei5ibG9iPSExO2Vsc2V7dmFyIEk9bmV3IEFycmF5QnVmZmVyKDApO3RyeXt6LmJsb2I9MD09PW5ldyBCbG9iKFtJXSx7dHlwZToiYXBwbGljYXRpb24vemlwIn0pLnNpemV9Y2F0Y2h7dHJ5e3Zh'@; put 'ciBFPW5ldyh3aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcik7RS5hcHBlbmQoSSksei5ibG9iPTA9PT1FLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIpLnNpemV9Y2F0Y2h7ei5i'@; put 'bG9iPSExfX19fSkuY2FsbCh0aGlzLHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlcjp2b2lkIDApfSx7fV0sMTg6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi9kYXRhUmVhZGVyIik7ZnVuY3Rpb24gSShrKXtrJiYodGhpcy5kYXRhPWssdGhpcy5sZW5ndGg9dGhpcy5k'@; put 'YXRhLmxlbmd0aCx0aGlzLmluZGV4PTApfShJLnByb3RvdHlwZT1uZXcgSykuYnl0ZUF0PWZ1bmN0aW9uKGspe3JldHVybiB0aGlzLmRhdGFba119LEkucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGspe2Zvcih2YXIgRT1rLmNoYXJDb2RlQXQoMCksaj1rLmNoYXJD'@; put 'b2RlQXQoMSksVj1rLmNoYXJDb2RlQXQoMiksQj1rLmNoYXJDb2RlQXQoMyksWT10aGlzLmxlbmd0aC00O1k+PTA7LS1ZKWlmKHRoaXMuZGF0YVtZXT09PUUmJnRoaXMuZGF0YVtZKzFdPT09aiYmdGhpcy5kYXRhW1krMl09PT1WJiZ0aGlzLmRhdGFbWSszXT09PUIpcmV0dXJuIFk7cmV0dXJu'@; put 'LTF9LEkucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGspe2lmKHRoaXMuY2hlY2tPZmZzZXQoayksMD09PWspcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO3ZhciBFPXRoaXMuZGF0YS5zdWJhcnJheSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrayk7cmV0dXJuIHRoaXMuaW5kZXgrPWssRX0s'@; put 'Ui5leHBvcnRzPUl9LHsiLi9kYXRhUmVhZGVyIjo1fV0sMTk6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi91dGlscyIpLEk9ZnVuY3Rpb24oayl7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KGspLHRoaXMuaW5kZXg9MH07SS5wcm90b3R5cGU9e2FwcGVuZDpmdW5j'@; put 'dGlvbihrKXswIT09ay5sZW5ndGgmJihrPUsudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGspLHRoaXMuZGF0YS5zZXQoayx0aGlzLmluZGV4KSx0aGlzLmluZGV4Kz1rLmxlbmd0aCl9LGZpbmFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YX19LFIuZXhwb3J0cz1JfSx7Ii4vdXRp'@; put 'bHMiOjIxfV0sMjA6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7Zm9yKHZhciBLPU8oIi4vdXRpbHMiKSxJPU8oIi4vc3VwcG9ydCIpLGs9TygiLi9ub2RlQnVmZmVyIiksRT1uZXcgQXJyYXkoMjU2KSxqPTA7ajwyNTY7aisrKUVbal09aj49MjUyPzY6aj49MjQ4PzU6aj49MjQwPzQ6'@; put 'aj49MjI0PzM6aj49MTkyPzI6MTtFWzI1NF09RVsyNTRdPTE7dmFyIEI9ZnVuY3Rpb24oWCxVKXt2YXIgcTtmb3IoKFU9VXx8WC5sZW5ndGgpPlgubGVuZ3RoJiYoVT1YLmxlbmd0aCkscT1VLTE7cT49MCYmMTI4PT0oMTkyJlhbcV0pOylxLS07cmV0dXJuIHE8MHx8MD09PXE/VTpxK0VbWFtx'@; put 'XV0+VT9xOlV9LFk9ZnVuY3Rpb24oWCl7dmFyIHEsZWUsdGUsb2Usc2U9WC5sZW5ndGgsaGU9bmV3IEFycmF5KDIqc2UpO2ZvcihlZT0wLHE9MDtxPHNlOylpZigodGU9WFtxKytdKTwxMjgpaGVbZWUrK109dGU7ZWxzZSBpZigob2U9RVt0ZV0pPjQpaGVbZWUrK109NjU1MzMscSs9b2UtMTtl'@; put 'bHNle2Zvcih0ZSY9Mj09PW9lPzMxOjM9PT1vZT8xNTo3O29lPjEmJnE8c2U7KXRlPXRlPDw2fDYzJlhbcSsrXSxvZS0tO29lPjE/aGVbZWUrK109NjU1MzM6dGU8NjU1MzY/aGVbZWUrK109dGU6KGhlW2VlKytdPTU1Mjk2fCh0ZS09NjU1MzYpPj4xMCYxMDIzLGhlW2VlKytdPTU2MzIwfDEw'@; put 'MjMmdGUpfXJldHVybiBoZS5sZW5ndGghPT1lZSYmKGhlLnN1YmFycmF5P2hlPWhlLnN1YmFycmF5KDAsZWUpOmhlLmxlbmd0aD1lZSksSy5hcHBseUZyb21DaGFyQ29kZShoZSl9O3oudXRmOGVuY29kZT1mdW5jdGlvbihVKXtyZXR1cm4gSS5ub2RlYnVmZmVyP2soVSwidXRmLTgiKTpmdW5j'@; put 'dGlvbihYKXt2YXIgVSxxLGVlLHRlLG9lLHNlPVgubGVuZ3RoLGhlPTA7Zm9yKHRlPTA7dGU8c2U7dGUrKyk1NTI5Nj09KDY0NTEyJihxPVguY2hhckNvZGVBdCh0ZSkpKSYmdGUrMTxzZSYmNTYzMjA9PSg2NDUxMiYoZWU9WC5jaGFyQ29kZUF0KHRlKzEpKSkmJihxPTY1NTM2KyhxLTU1Mjk2'@; put 'PDwxMCkrKGVlLTU2MzIwKSx0ZSsrKSxoZSs9cTwxMjg/MTpxPDIwNDg/MjpxPDY1NTM2PzM6NDtmb3IoVT1JLnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoaGUpOm5ldyBBcnJheShoZSksb2U9MCx0ZT0wO29lPGhlO3RlKyspNTUyOTY9PSg2NDUxMiYocT1YLmNoYXJDb2RlQXQodGUpKSkm'@; put 'JnRlKzE8c2UmJjU2MzIwPT0oNjQ1MTImKGVlPVguY2hhckNvZGVBdCh0ZSsxKSkpJiYocT02NTUzNisocS01NTI5Njw8MTApKyhlZS01NjMyMCksdGUrKykscTwxMjg/VVtvZSsrXT1xOnE8MjA0OD8oVVtvZSsrXT0xOTJ8cT4+PjYsVVtvZSsrXT0xMjh8NjMmcSk6cTw2NTUzNj8oVVtvZSsr'@; put 'XT0yMjR8cT4+PjEyLFVbb2UrK109MTI4fHE+Pj42JjYzLFVbb2UrK109MTI4fDYzJnEpOihVW29lKytdPTI0MHxxPj4+MTgsVVtvZSsrXT0xMjh8cT4+PjEyJjYzLFVbb2UrK109MTI4fHE+Pj42JjYzLFVbb2UrK109MTI4fDYzJnEpO3JldHVybiBVfShVKX0sei51dGY4ZGVjb2RlPWZ1bmN0'@; put 'aW9uKFUpe2lmKEkubm9kZWJ1ZmZlcilyZXR1cm4gSy50cmFuc2Zvcm1Ubygibm9kZWJ1ZmZlciIsVSkudG9TdHJpbmcoInV0Zi04Iik7Zm9yKHZhciBxPVtdLGVlPTAsdGU9KFU9Sy50cmFuc2Zvcm1UbyhJLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSIsVSkpLmxlbmd0aDtlZTx0'@; put 'ZTspe3ZhciBzZT1CKFUsTWF0aC5taW4oZWUrNjU1MzYsdGUpKTtxLnB1c2goWShJLnVpbnQ4YXJyYXk/VS5zdWJhcnJheShlZSxzZSk6VS5zbGljZShlZSxzZSkpKSxlZT1zZX1yZXR1cm4gcS5qb2luKCIiKX19LHsiLi9ub2RlQnVmZmVyIjoxMSwiLi9zdXBwb3J0IjoxNywiLi91dGlscyI6'@; put 'MjF9XSwyMTpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuL3N1cHBvcnQiKSxJPU8oIi4vY29tcHJlc3Npb25zIiksaz1PKCIuL25vZGVCdWZmZXIiKTtmdW5jdGlvbiBFKFgpe3JldHVybiBYfWZ1bmN0aW9uIGooWCxVKXtmb3IodmFyIHE9MDtxPFgubGVuZ3RoOysr'@; put 'cSlVW3FdPTI1NSZYLmNoYXJDb2RlQXQocSk7cmV0dXJuIFV9ZnVuY3Rpb24gVihYKXt2YXIgVT02NTUzNixxPVtdLGVlPVgubGVuZ3RoLHRlPXouZ2V0VHlwZU9mKFgpLG9lPTAsc2U9ITA7dHJ5e3N3aXRjaCh0ZSl7Y2FzZSJ1aW50OGFycmF5IjpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5'@; put 'KG51bGwsbmV3IFVpbnQ4QXJyYXkoMCkpO2JyZWFrO2Nhc2Uibm9kZWJ1ZmZlciI6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGsoMCkpfX1jYXRjaHtzZT0hMX1pZighc2Upe2Zvcih2YXIgaGU9IiIsdWU9MDt1ZTxYLmxlbmd0aDt1ZSsrKWhlKz1TdHJpbmcuZnJvbUNoYXJDb2Rl'@; put 'KFhbdWVdKTtyZXR1cm4gaGV9Zm9yKDtvZTxlZSYmVT4xOyl0cnl7cS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwiYXJyYXkiPT09dGV8fCJub2RlYnVmZmVyIj09PXRlP1guc2xpY2Uob2UsTWF0aC5taW4ob2UrVSxlZSkpOlguc3ViYXJyYXkob2UsTWF0aC5taW4ob2Ur'@; put 'VSxlZSkpKSksb2UrPVV9Y2F0Y2h7VT1NYXRoLmZsb29yKFUvMil9cmV0dXJuIHEuam9pbigiIil9ZnVuY3Rpb24gQihYLFUpe2Zvcih2YXIgcT0wO3E8WC5sZW5ndGg7cSsrKVVbcV09WFtxXTtyZXR1cm4gVX16LnN0cmluZzJiaW5hcnk9ZnVuY3Rpb24oWCl7Zm9yKHZhciBVPSIiLHE9MDtx'@; put 'PFgubGVuZ3RoO3ErKylVKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZYLmNoYXJDb2RlQXQocSkpO3JldHVybiBVfSx6LmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oWCl7ei5jaGVja1N1cHBvcnQoImJsb2IiKTt0cnl7cmV0dXJuIG5ldyBCbG9iKFtYXSx7dHlwZToiYXBwbGljYXRpb24v'@; put 'emlwIn0pfWNhdGNoe3RyeXt2YXIgcT1uZXcod2luZG93LkJsb2JCdWlsZGVyfHx3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXJ8fHdpbmRvdy5Nb3pCbG9iQnVpbGRlcnx8d2luZG93Lk1TQmxvYkJ1aWxkZXIpO3JldHVybiBxLmFwcGVuZChYKSxxLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIp'@; put 'fWNhdGNoe3Rocm93IG5ldyBFcnJvcigiQnVnIDogY2FuJ3QgY29uc3RydWN0IHRoZSBCbG9iLiIpfX19LHouYXBwbHlGcm9tQ2hhckNvZGU9Vjt2YXIgWT17fTtZLnN0cmluZz17c3RyaW5nOkUsYXJyYXk6ZnVuY3Rpb24oWCl7cmV0dXJuIGooWCxuZXcgQXJyYXkoWC5sZW5ndGgpKX0sYXJy'@; put 'YXlidWZmZXI6ZnVuY3Rpb24oWCl7cmV0dXJuIFkuc3RyaW5nLnVpbnQ4YXJyYXkoWCkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKFgpe3JldHVybiBqKFgsbmV3IFVpbnQ4QXJyYXkoWC5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihYKXtyZXR1cm4gaihYLGsoWC5sZW5ndGgp'@; put 'KX19LFkuYXJyYXk9e3N0cmluZzpWLGFycmF5OkUsYXJyYXlidWZmZXI6ZnVuY3Rpb24oWCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFgpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihYKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWCl9LG5vZGVidWZmZXI6ZnVuY3Rpb24oWCl7cmV0dXJu'@; put 'IGsoWCl9fSxZLmFycmF5YnVmZmVyPXtzdHJpbmc6ZnVuY3Rpb24oWCl7cmV0dXJuIFYobmV3IFVpbnQ4QXJyYXkoWCkpfSxhcnJheTpmdW5jdGlvbihYKXtyZXR1cm4gQihuZXcgVWludDhBcnJheShYKSxuZXcgQXJyYXkoWC5ieXRlTGVuZ3RoKSl9LGFycmF5YnVmZmVyOkUsdWludDhhcnJh'@; put 'eTpmdW5jdGlvbihYKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWCl9LG5vZGVidWZmZXI6ZnVuY3Rpb24oWCl7cmV0dXJuIGsobmV3IFVpbnQ4QXJyYXkoWCkpfX0sWS51aW50OGFycmF5PXtzdHJpbmc6VixhcnJheTpmdW5jdGlvbihYKXtyZXR1cm4gQihYLG5ldyBBcnJheShYLmxlbmd0aCkp'@; put 'fSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihYKXtyZXR1cm4gWC5idWZmZXJ9LHVpbnQ4YXJyYXk6RSxub2RlYnVmZmVyOmZ1bmN0aW9uKFgpe3JldHVybiBrKFgpfX0sWS5ub2RlYnVmZmVyPXtzdHJpbmc6VixhcnJheTpmdW5jdGlvbihYKXtyZXR1cm4gQihYLG5ldyBBcnJheShYLmxlbmd0aCkp'@; put 'fSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihYKXtyZXR1cm4gWS5ub2RlYnVmZmVyLnVpbnQ4YXJyYXkoWCkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKFgpe3JldHVybiBCKFgsbmV3IFVpbnQ4QXJyYXkoWC5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpFfSx6LnRyYW5zZm9ybVRvPWZ1bmN0aW9u'@; put 'KFgsVSl7aWYoVXx8KFU9IiIpLCFYKXJldHVybiBVO3ouY2hlY2tTdXBwb3J0KFgpO3ZhciBxPXouZ2V0VHlwZU9mKFUpO3JldHVybiBZW3FdW1hdKFUpfSx6LmdldFR5cGVPZj1mdW5jdGlvbihYKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFg/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09'@; put 'PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChYKT8iYXJyYXkiOksubm9kZWJ1ZmZlciYmay50ZXN0KFgpPyJub2RlYnVmZmVyIjpLLnVpbnQ4YXJyYXkmJlggaW5zdGFuY2VvZiBVaW50OEFycmF5PyJ1aW50OGFycmF5IjpLLmFycmF5YnVmZmVyJiZYIGluc3RhbmNlb2YgQXJyYXlC'@; put 'dWZmZXI/ImFycmF5YnVmZmVyIjp2b2lkIDB9LHouY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKFgpe2lmKCFLW1gudG9Mb3dlckNhc2UoKV0pdGhyb3cgbmV3IEVycm9yKFgrIiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlciIpfSx6Lk1BWF9WQUxVRV8xNkJJVFM9NjU1MzUsei5NQVhf'@; put 'VkFMVUVfMzJCSVRTPS0xLHoucHJldHR5PWZ1bmN0aW9uKFgpe3ZhciBxLGVlLFU9IiI7Zm9yKGVlPTA7ZWU8KFh8fCIiKS5sZW5ndGg7ZWUrKylVKz0iXFx4IisoKHE9WC5jaGFyQ29kZUF0KGVlKSk8MTY/IjAiOiIiKStxLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBVfSx6'@; put 'LmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihYKXtmb3IodmFyIFUgaW4gSSlpZihJLmhhc093blByb3BlcnR5KFUpJiZJW1VdLm1hZ2ljPT09WClyZXR1cm4gSVtVXTtyZXR1cm4gbnVsbH0sei5pc1JlZ0V4cD1mdW5jdGlvbihYKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5w'@; put 'cm90b3R5cGUudG9TdHJpbmcuY2FsbChYKX19LHsiLi9jb21wcmVzc2lvbnMiOjMsIi4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTd9XSwyMjpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuL3N0cmluZ1JlYWRlciIpLEk9TygiLi9ub2RlQnVmZmVyUmVhZGVy'@; put 'Iiksaz1PKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKSxFPU8oIi4vdXRpbHMiKSxqPU8oIi4vc2lnbmF0dXJlIiksVj1PKCIuL3ppcEVudHJ5IiksQj1PKCIuL3N1cHBvcnQiKSxZPU8oIi4vb2JqZWN0Iik7ZnVuY3Rpb24gWChVLHEpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1xLFUm'@; put 'JnRoaXMubG9hZChVKX1YLnByb3RvdHlwZT17Y2hlY2tTaWduYXR1cmU6ZnVuY3Rpb24oVSl7dmFyIHE9dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KTtpZihxIT09VSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgb3IgYnVnIDogdW5leHBlY3RlZCBzaWduYXR1cmUgKCIrRS5wcmV0'@; put 'dHkocSkrIiwgZXhwZWN0ZWQgIitFLnByZXR0eShVKSsiKSIpfSxyZWFkQmxvY2tFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhp'@; put 'cy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpck9mZnNldD10'@; put 'aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuemlwQ29tbWVudExlbmd0aD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuemlwQ29tbWVudD10aGlzLnJlYWRlci5yZWFkU3RyaW5nKHRoaXMuemlwQ29tbWVudExlbmd0aCksdGhpcy56aXBDb21tZW50PVkudXRmOGRlY29kZSh0aGlzLnpp'@; put 'cENvbW1lbnQpfSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3RoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy52ZXJzaW9uTWFkZUJ5PXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoMiksdGhpcy52ZXJzaW9uTmVlZGVkPXRo'@; put 'aXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQo'@; put 'OCksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGE9e307'@; put 'Zm9yKHZhciBlZSx0ZSxvZSxVPXRoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplLTQ0OzA8VTspZWU9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0ZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLG9lPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcodGUpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YVtlZV09'@; put 'e2lkOmVlLGxlbmd0aDp0ZSx2YWx1ZTpvZX19LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2Vu'@; put 'dHJhbERpcj10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza3NDb3VudD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktdm9sdW1lcyB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKX0scmVhZExvY2FsRmlsZXM6ZnVuY3Rp'@; put 'b24oKXt2YXIgVSxxO2ZvcihVPTA7VTx0aGlzLmZpbGVzLmxlbmd0aDtVKyspdGhpcy5yZWFkZXIuc2V0SW5kZXgoKHE9dGhpcy5maWxlc1tVXSkubG9jYWxIZWFkZXJPZmZzZXQpLHRoaXMuY2hlY2tTaWduYXR1cmUoai5MT0NBTF9GSUxFX0hFQURFUikscS5yZWFkTG9jYWxQYXJ0KHRoaXMu'@; put 'cmVhZGVyKSxxLmhhbmRsZVVURjgoKX0scmVhZENlbnRyYWxEaXI6ZnVuY3Rpb24oKXt2YXIgVTtmb3IodGhpcy5yZWFkZXIuc2V0SW5kZXgodGhpcy5jZW50cmFsRGlyT2Zmc2V0KTt0aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpPT09ai5DRU5UUkFMX0ZJTEVfSEVBREVSOykoVT1uZXcgVih7'@; put 'emlwNjQ6dGhpcy56aXA2NH0sdGhpcy5sb2FkT3B0aW9ucykpLnJlYWRDZW50cmFsUGFydCh0aGlzLnJlYWRlciksdGhpcy5maWxlcy5wdXNoKFUpfSxyZWFkRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dmFyIFU9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoai5DRU5UUkFMX0RJ'@; put 'UkVDVE9SWV9FTkQpO2lmKC0xPT09VSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpO2lmKHRoaXMucmVhZGVyLnNldEluZGV4KFUpLHRoaXMuY2hlY2tTaWduYXR1cmUoai5DRU5UUkFMX0RJUkVDVE9SWV9FTkQp'@; put 'LHRoaXMucmVhZEJsb2NrRW5kT2ZDZW50cmFsKCksdGhpcy5kaXNrTnVtYmVyPT09RS5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PT09RS5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz09PUUuTUFYX1ZBTFVF'@; put 'XzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkcz09PUUuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyU2l6ZT09PUUuTUFYX1ZBTFVFXzMyQklUU3x8dGhpcy5jZW50cmFsRGlyT2Zmc2V0PT09RS5NQVhfVkFMVUVfMzJCSVRTKXtpZih0aGlzLnppcDY0PSEwLC0xPT09KFU9'@; put 'dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoai5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSkpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTt0aGlzLnJl'@; put 'YWRlci5zZXRJbmRleChVKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGouWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSx0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENl'@; put 'bnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUoai5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX19LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oVSl7dmFyIHE9RS5nZXRUeXBlT2YoVSk7dGhpcy5yZWFkZXI9InN0cmluZyIh'@; put 'PT1xfHxCLnVpbnQ4YXJyYXk/Im5vZGVidWZmZXIiPT09cT9uZXcgSShVKTpuZXcgayhFLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixVKSk6bmV3IEsoVSx0aGlzLmxvYWRPcHRpb25zLm9wdGltaXplZEJpbmFyeVN0cmluZyl9LGxvYWQ6ZnVuY3Rpb24oVSl7dGhpcy5wcmVwYXJlUmVhZGVy'@; put 'KFUpLHRoaXMucmVhZEVuZE9mQ2VudHJhbCgpLHRoaXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSxSLmV4cG9ydHM9WH0seyIuL25vZGVCdWZmZXJSZWFkZXIiOjEyLCIuL29iamVjdCI6MTMsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdSZWFkZXIiOjE1LCIu'@; put 'L3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4LCIuL3V0aWxzIjoyMSwiLi96aXBFbnRyeSI6MjN9XSwyMzpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuL3N0cmluZ1JlYWRlciIpLEk9TygiLi91dGlscyIpLGs9TygiLi9jb21wcmVzc2VkT2JqZWN0'@; put 'IiksRT1PKCIuL29iamVjdCIpO2Z1bmN0aW9uIGooVixCKXt0aGlzLm9wdGlvbnM9Vix0aGlzLmxvYWRPcHRpb25zPUJ9ai5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMuYml0RmxhZyl9LHVzZVVURjg6ZnVuY3Rpb24oKXtyZXR1cm4gMjA0OD09'@; put 'KDIwNDgmdGhpcy5iaXRGbGFnKX0scHJlcGFyZUNvbXByZXNzZWRDb250ZW50OmZ1bmN0aW9uKFYsQixZKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgWD1WLmluZGV4O1Yuc2V0SW5kZXgoQik7dmFyIFU9Vi5yZWFkRGF0YShZKTtyZXR1cm4gVi5zZXRJbmRleChYKSxVfX0scHJlcGFyZUNvbnRl'@; put 'bnQ6ZnVuY3Rpb24oVixCLFksWCxVKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcT1JLnRyYW5zZm9ybVRvKFgudW5jb21wcmVzc0lucHV0VHlwZSx0aGlzLmdldENvbXByZXNzZWRDb250ZW50KCkpLGVlPVgudW5jb21wcmVzcyhxKTtpZihlZS5sZW5ndGghPT1VKXRocm93IG5ldyBFcnJvcigi'@; put 'QnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiBlZX19LHJlYWRMb2NhbFBhcnQ6ZnVuY3Rpb24oVil7dmFyIEIsWTtpZihWLnNraXAoMjIpLHRoaXMuZmlsZU5hbWVMZW5ndGg9Vi5yZWFkSW50KDIpLFk9Vi5yZWFkSW50KDIpLHRoaXMuZmlsZU5hbWU9Vi5y'@; put 'ZWFkU3RyaW5nKHRoaXMuZmlsZU5hbWVMZW5ndGgpLFYuc2tpcChZKSwtMT09dGhpcy5jb21wcmVzc2VkU2l6ZXx8LTE9PXRoaXMudW5jb21wcmVzc2VkU2l6ZSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZyBvciBjb3JydXB0ZWQgemlwIDogZGlkbid0IGdldCBlbm91Z2ggaW5mb3JtYXRpb25zIGZy'@; put 'b20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5IChjb21wcmVzc2VkU2l6ZSA9PSAtMSB8fCB1bmNvbXByZXNzZWRTaXplID09IC0xKSIpO2lmKG51bGw9PT0oQj1JLmZpbmRDb21wcmVzc2lvbih0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSkpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDog'@; put 'Y29tcHJlc3Npb24gIitJLnByZXR0eSh0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSsiIHVua25vd24gKGlubmVyIGZpbGUgOiAiK3RoaXMuZmlsZU5hbWUrIikiKTtpZih0aGlzLmRlY29tcHJlc3NlZD1uZXcgayx0aGlzLmRlY29tcHJlc3NlZC5jb21wcmVzc2VkU2l6ZT10aGlzLmNvbXByZXNz'@; put 'ZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLnVuY29tcHJlc3NlZFNpemU9dGhpcy51bmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLmNyYzMyPXRoaXMuY3JjMzIsdGhpcy5kZWNvbXByZXNzZWQuY29tcHJlc3Npb25NZXRob2Q9dGhpcy5jb21wcmVzc2lvbk1ldGhvZCx0aGlzLmRl'@; put 'Y29tcHJlc3NlZC5nZXRDb21wcmVzc2VkQ29udGVudD10aGlzLnByZXBhcmVDb21wcmVzc2VkQ29udGVudChWLFYuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxCKSx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50PXRoaXMucHJlcGFyZUNvbnRlbnQoVixWLmluZGV4LHRoaXMuY29tcHJl'@; put 'c3NlZFNpemUsQix0aGlzLnVuY29tcHJlc3NlZFNpemUpLHRoaXMubG9hZE9wdGlvbnMuY2hlY2tDUkMzMiYmKHRoaXMuZGVjb21wcmVzc2VkPUkudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5kZWNvbXByZXNzZWQuZ2V0Q29udGVudCgpKSxFLmNyYzMyKHRoaXMuZGVjb21wcmVzc2VkKSE9'@; put 'PXRoaXMuY3JjMzIpKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoIil9LHJlYWRDZW50cmFsUGFydDpmdW5jdGlvbihWKXtpZih0aGlzLnZlcnNpb25NYWRlQnk9Vi5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD1WLnJlYWRJbnQoMiksdGhp'@; put 'cy5iaXRGbGFnPVYucmVhZEludCgyKSx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPVYucmVhZFN0cmluZygyKSx0aGlzLmRhdGU9Vi5yZWFkRGF0ZSgpLHRoaXMuY3JjMzI9Vi5yZWFkSW50KDQpLHRoaXMuY29tcHJlc3NlZFNpemU9Vi5yZWFkSW50KDQpLHRoaXMudW5jb21wcmVzc2VkU2l6ZT1W'@; put 'LnJlYWRJbnQoNCksdGhpcy5maWxlTmFtZUxlbmd0aD1WLnJlYWRJbnQoMiksdGhpcy5leHRyYUZpZWxkc0xlbmd0aD1WLnJlYWRJbnQoMiksdGhpcy5maWxlQ29tbWVudExlbmd0aD1WLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9Vi5yZWFkSW50KDIpLHRoaXMuaW50ZXJuYWxG'@; put 'aWxlQXR0cmlidXRlcz1WLnJlYWRJbnQoMiksdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPVYucmVhZEludCg0KSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PVYucmVhZEludCg0KSx0aGlzLmlzRW5jcnlwdGVkKCkpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0ZWQgemlwIGFyZSBub3Qgc3Vw'@; put 'cG9ydGVkIik7dGhpcy5maWxlTmFtZT1WLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksdGhpcy5yZWFkRXh0cmFGaWVsZHMoViksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVsZChWKSx0aGlzLmZpbGVDb21tZW50PVYucmVhZFN0cmluZyh0aGlzLmZpbGVDb21tZW50TGVuZ3RoKSx0'@; put 'aGlzLmRpcj0hISgxNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXMpfSxwYXJzZVpJUDY0RXh0cmFGaWVsZDpmdW5jdGlvbihWKXtpZih0aGlzLmV4dHJhRmllbGRzWzFdKXt2YXIgQj1uZXcgSyh0aGlzLmV4dHJhRmllbGRzWzFdLnZhbHVlKTt0aGlzLnVuY29tcHJlc3NlZFNpemU9PT1J'@; put 'Lk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLnVuY29tcHJlc3NlZFNpemU9Qi5yZWFkSW50KDgpKSx0aGlzLmNvbXByZXNzZWRTaXplPT09SS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5jb21wcmVzc2VkU2l6ZT1CLnJlYWRJbnQoOCkpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9PT1JLk1BWF9W'@; put 'QUxVRV8zMkJJVFMmJih0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PUIucmVhZEludCg4KSksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9PT1JLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmRpc2tOdW1iZXJTdGFydD1CLnJlYWRJbnQoNCkpfX0scmVhZEV4dHJhRmllbGRzOmZ1bmN0aW9uKFYpe3ZhciBZ'@; put 'LFgsVSxCPVYuaW5kZXg7Zm9yKHRoaXMuZXh0cmFGaWVsZHM9dGhpcy5leHRyYUZpZWxkc3x8e307Vi5pbmRleDxCK3RoaXMuZXh0cmFGaWVsZHNMZW5ndGg7KVk9Vi5yZWFkSW50KDIpLFg9Vi5yZWFkSW50KDIpLFU9Vi5yZWFkU3RyaW5nKFgpLHRoaXMuZXh0cmFGaWVsZHNbWV09e2lkOlks'@; put 'bGVuZ3RoOlgsdmFsdWU6VX19LGhhbmRsZVVURjg6ZnVuY3Rpb24oKXtpZih0aGlzLnVzZVVURjgoKSl0aGlzLmZpbGVOYW1lPUUudXRmOGRlY29kZSh0aGlzLmZpbGVOYW1lKSx0aGlzLmZpbGVDb21tZW50PUUudXRmOGRlY29kZSh0aGlzLmZpbGVDb21tZW50KTtlbHNle3ZhciBWPXRoaXMu'@; put 'ZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aCgpO251bGwhPT1WJiYodGhpcy5maWxlTmFtZT1WKTt2YXIgQj10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQoKTtudWxsIT09QiYmKHRoaXMuZmlsZUNvbW1lbnQ9Qil9fSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoOmZ1bmN0aW9u'@; put 'KCl7dmFyIFY9dGhpcy5leHRyYUZpZWxkc1syODc4OV07aWYoVil7dmFyIEI9bmV3IEsoVi52YWx1ZSk7cmV0dXJuIDEhPT1CLnJlYWRJbnQoMSl8fEUuY3JjMzIodGhpcy5maWxlTmFtZSkhPT1CLnJlYWRJbnQoNCk/bnVsbDpFLnV0ZjhkZWNvZGUoQi5yZWFkU3RyaW5nKFYubGVuZ3RoLTUp'@; put 'KX1yZXR1cm4gbnVsbH0sZmluZEV4dHJhRmllbGRVbmljb2RlQ29tbWVudDpmdW5jdGlvbigpe3ZhciBWPXRoaXMuZXh0cmFGaWVsZHNbMjU0NjFdO2lmKFYpe3ZhciBCPW5ldyBLKFYudmFsdWUpO3JldHVybiAxIT09Qi5yZWFkSW50KDEpfHxFLmNyYzMyKHRoaXMuZmlsZUNvbW1lbnQpIT09'@; put 'Qi5yZWFkSW50KDQpP251bGw6RS51dGY4ZGVjb2RlKEIucmVhZFN0cmluZyhWLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9fSxSLmV4cG9ydHM9an0seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vb2JqZWN0IjoxMywiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3V0aWxzIjoyMX1dLDI0OltmdW5j'@; put 'dGlvbihPLFIseil7InVzZSBzdHJpY3QiO3ZhciBqPXt9OygwLE8oIi4vbGliL3V0aWxzL2NvbW1vbiIpLmFzc2lnbikoaixPKCIuL2xpYi9kZWZsYXRlIiksTygiLi9saWIvaW5mbGF0ZSIpLE8oIi4vbGliL3psaWIvY29uc3RhbnRzIikpLFIuZXhwb3J0cz1qfSx7Ii4vbGliL2RlZmxhdGUi'@; put 'OjI1LCIuL2xpYi9pbmZsYXRlIjoyNiwiLi9saWIvdXRpbHMvY29tbW9uIjoyNywiLi9saWIvemxpYi9jb25zdGFudHMiOjMwfV0sMjU6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi96bGliL2RlZmxhdGUuanMiKSxJPU8oIi4vdXRpbHMvY29tbW9uIiksaz1PKCIu'@; put 'L3V0aWxzL3N0cmluZ3MiKSxFPU8oIi4vemxpYi9tZXNzYWdlcyIpLGo9TygiLi96bGliL3pzdHJlYW0iKSx0ZT1mdW5jdGlvbih1ZSl7dGhpcy5vcHRpb25zPUkuYXNzaWduKHtsZXZlbDotMSxtZXRob2Q6OCxjaHVua1NpemU6MTYzODQsd2luZG93Qml0czoxNSxtZW1MZXZlbDo4LHN0cmF0'@; put 'ZWd5OjAsdG86IiJ9LHVlfHx7fSk7dmFyIGNlPXRoaXMub3B0aW9ucztjZS5yYXcmJmNlLndpbmRvd0JpdHM+MD9jZS53aW5kb3dCaXRzPS1jZS53aW5kb3dCaXRzOmNlLmd6aXAmJmNlLndpbmRvd0JpdHM+MCYmY2Uud2luZG93Qml0czwxNiYmKGNlLndpbmRvd0JpdHMrPTE2KSx0aGlzLmVy'@; put 'cj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyBqLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgRz1LLmRlZmxhdGVJbml0Mih0aGlzLnN0cm0sY2UubGV2ZWwsY2UubWV0aG9kLGNlLndpbmRvd0JpdHMsY2UubWVtTGV2ZWwsY2Uuc3Ry'@; put 'YXRlZ3kpO2lmKDAhPT1HKXRocm93IG5ldyBFcnJvcihFW0ddKTtjZS5oZWFkZXImJksuZGVmbGF0ZVNldEhlYWRlcih0aGlzLnN0cm0sY2UuaGVhZGVyKX07ZnVuY3Rpb24gb2UodWUsY2Upe3ZhciBHPW5ldyB0ZShjZSk7aWYoRy5wdXNoKHVlLCEwKSxHLmVycil0aHJvdyBHLm1zZztyZXR1'@; put 'cm4gRy5yZXN1bHR9dGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odWUsY2Upe3ZhciBELEgsRz10aGlzLnN0cm0sYj10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7SD1jZT09PX5+Y2U/Y2U6ITA9PT1jZT80OjAsRy5pbnB1dD0ic3RyaW5nIj09dHlwZW9m'@; put 'IHVlP2suc3RyaW5nMmJ1Zih1ZSk6dWUsRy5uZXh0X2luPTAsRy5hdmFpbF9pbj1HLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09Ry5hdmFpbF9vdXQmJihHLm91dHB1dD1uZXcgSS5CdWY4KGIpLEcubmV4dF9vdXQ9MCxHLmF2YWlsX291dD1iKSwxIT09KEQ9Sy5kZWZsYXRlKEcsSCkpJiYwIT09'@; put 'RClyZXR1cm4gdGhpcy5vbkVuZChEKSx0aGlzLmVuZGVkPSEwLCExOygwPT09Ry5hdmFpbF9vdXR8fDA9PT1HLmF2YWlsX2luJiY0PT09SCkmJnRoaXMub25EYXRhKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP2suYnVmMmJpbnN0cmluZyhJLnNocmlua0J1ZihHLm91dHB1dCxHLm5leHRf'@; put 'b3V0KSk6SS5zaHJpbmtCdWYoRy5vdXRwdXQsRy5uZXh0X291dCkpfXdoaWxlKChHLmF2YWlsX2luPjB8fDA9PT1HLmF2YWlsX291dCkmJjEhPT1EKTtyZXR1cm4gNCE9PUh8fChEPUsuZGVmbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoRCksdGhpcy5lbmRlZD0hMCwwPT09RCl9LHRl'@; put 'LnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24odWUpe3RoaXMuY2h1bmtzLnB1c2godWUpfSx0ZS5wcm90b3R5cGUub25FbmQ9ZnVuY3Rpb24odWUpezA9PT11ZSYmKHRoaXMucmVzdWx0PSJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP3RoaXMuY2h1bmtzLmpvaW4oIiIpOkkuZmxhdHRlbkNo'@; put 'dW5rcyh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPXVlLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LHouRGVmbGF0ZT10ZSx6LmRlZmxhdGU9b2Usei5kZWZsYXRlUmF3PWZ1bmN0aW9uIHNlKHVlLGNlKXtyZXR1cm4oY2U9Y2V8fHt9KS5yYXc9ITAsb2UodWUsY2UpfSx6'@; put 'Lmd6aXA9ZnVuY3Rpb24gaGUodWUsY2Upe3JldHVybihjZT1jZXx8e30pLmd6aXA9ITAsb2UodWUsY2UpfX0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5ncyI6MjgsIi4vemxpYi9kZWZsYXRlLmpzIjozMiwiLi96bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0i'@; put 'OjM5fV0sMjY6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi96bGliL2luZmxhdGUuanMiKSxJPU8oIi4vdXRpbHMvY29tbW9uIiksaz1PKCIuL3V0aWxzL3N0cmluZ3MiKSxFPU8oIi4vemxpYi9jb25zdGFudHMiKSxqPU8oIi4vemxpYi9tZXNzYWdlcyIpLFY9Tygi'@; put 'Li96bGliL3pzdHJlYW0iKSxCPU8oIi4vemxpYi9nemhlYWRlciIpLFk9ZnVuY3Rpb24ocSl7dGhpcy5vcHRpb25zPUkuYXNzaWduKHtjaHVua1NpemU6MTYzODQsd2luZG93Qml0czowLHRvOiIifSxxfHx7fSk7dmFyIGVlPXRoaXMub3B0aW9ucztlZS5yYXcmJmVlLndpbmRvd0JpdHM+PTAm'@; put 'JmVlLndpbmRvd0JpdHM8MTYmJihlZS53aW5kb3dCaXRzPS1lZS53aW5kb3dCaXRzLDA9PT1lZS53aW5kb3dCaXRzJiYoZWUud2luZG93Qml0cz0tMTUpKSxlZS53aW5kb3dCaXRzPj0wJiZlZS53aW5kb3dCaXRzPDE2JiYhKHEmJnEud2luZG93Qml0cykmJihlZS53aW5kb3dCaXRzKz0zMiks'@; put 'ZWUud2luZG93Qml0cz4xNSYmZWUud2luZG93Qml0czw0OCYmKDE1JmVlLndpbmRvd0JpdHN8fChlZS53aW5kb3dCaXRzfD0xNSkpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IFYsdGhpcy5zdHJtLmF2YWlsX291dD0w'@; put 'O3ZhciB0ZT1LLmluZmxhdGVJbml0Mih0aGlzLnN0cm0sZWUud2luZG93Qml0cyk7aWYodGUhPT1FLlpfT0spdGhyb3cgbmV3IEVycm9yKGpbdGVdKTt0aGlzLmhlYWRlcj1uZXcgQixLLmluZmxhdGVHZXRIZWFkZXIodGhpcy5zdHJtLHRoaXMuaGVhZGVyKX07ZnVuY3Rpb24gWChxLGVlKXt2'@; put 'YXIgdGU9bmV3IFkoZWUpO2lmKHRlLnB1c2gocSwhMCksdGUuZXJyKXRocm93IHRlLm1zZztyZXR1cm4gdGUucmVzdWx0fVkucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24ocSxlZSl7dmFyIHNlLGhlLHVlLGNlLEcsdGU9dGhpcy5zdHJtLG9lPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhp'@; put 'cy5lbmRlZClyZXR1cm4hMTtoZT1lZT09PX5+ZWU/ZWU6ITA9PT1lZT9FLlpfRklOSVNIOkUuWl9OT19GTFVTSCx0ZS5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIHE/ay5iaW5zdHJpbmcyYnVmKHEpOnEsdGUubmV4dF9pbj0wLHRlLmF2YWlsX2luPXRlLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09'@; put 'dGUuYXZhaWxfb3V0JiYodGUub3V0cHV0PW5ldyBJLkJ1Zjgob2UpLHRlLm5leHRfb3V0PTAsdGUuYXZhaWxfb3V0PW9lKSwoc2U9Sy5pbmZsYXRlKHRlLEUuWl9OT19GTFVTSCkpIT09RS5aX1NUUkVBTV9FTkQmJnNlIT09RS5aX09LKXJldHVybiB0aGlzLm9uRW5kKHNlKSx0aGlzLmVuZGVk'@; put 'PSEwLCExO3RlLm5leHRfb3V0JiYoMD09PXRlLmF2YWlsX291dHx8c2U9PT1FLlpfU1RSRUFNX0VORHx8MD09PXRlLmF2YWlsX2luJiZoZT09PUUuWl9GSU5JU0gpJiYoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/KHVlPWsudXRmOGJvcmRlcih0ZS5vdXRwdXQsdGUubmV4dF9vdXQpLGNl'@; put 'PXRlLm5leHRfb3V0LXVlLEc9ay5idWYyc3RyaW5nKHRlLm91dHB1dCx1ZSksdGUubmV4dF9vdXQ9Y2UsdGUuYXZhaWxfb3V0PW9lLWNlLGNlJiZJLmFycmF5U2V0KHRlLm91dHB1dCx0ZS5vdXRwdXQsdWUsY2UsMCksdGhpcy5vbkRhdGEoRykpOnRoaXMub25EYXRhKEkuc2hyaW5rQnVmKHRl'@; put 'Lm91dHB1dCx0ZS5uZXh0X291dCkpKX13aGlsZSh0ZS5hdmFpbF9pbj4wJiZzZSE9PUUuWl9TVFJFQU1fRU5EKTtyZXR1cm4gc2U9PT1FLlpfU1RSRUFNX0VORCYmKGhlPUUuWl9GSU5JU0gpLGhlIT09RS5aX0ZJTklTSHx8KHNlPUsuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQo'@; put 'c2UpLHRoaXMuZW5kZWQ9ITAsc2U9PT1FLlpfT0spfSxZLnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24ocSl7dGhpcy5jaHVua3MucHVzaChxKX0sWS5wcm90b3R5cGUub25FbmQ9ZnVuY3Rpb24ocSl7cT09PUUuWl9PSyYmKHRoaXMucmVzdWx0PSJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRv'@; put 'P3RoaXMuY2h1bmtzLmpvaW4oIiIpOkkuZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPXEsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ30sei5JbmZsYXRlPVksei5pbmZsYXRlPVgsei5pbmZsYXRlUmF3PWZ1bmN0aW9uIFUocSxlZSl7cmV0dXJuKGVl'@; put 'PWVlfHx7fSkucmF3PSEwLFgocSxlZSl9LHoudW5nemlwPVh9LHsiLi91dGlscy9jb21tb24iOjI3LCIuL3V0aWxzL3N0cmluZ3MiOjI4LCIuL3psaWIvY29uc3RhbnRzIjozMCwiLi96bGliL2d6aGVhZGVyIjozMywiLi96bGliL2luZmxhdGUuanMiOjM1LCIuL3psaWIvbWVzc2FnZXMiOjM3'@; put 'LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNzpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz10eXBlb2YgVWludDhBcnJheTwidSImJnR5cGVvZiBVaW50MTZBcnJheTwidSImJnR5cGVvZiBJbnQzMkFycmF5PCJ1Ijt6LmFzc2lnbj1mdW5jdGlvbihFKXtmb3IodmFyIGo9QXJy'@; put 'YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2oubGVuZ3RoOyl7dmFyIFY9ai5zaGlmdCgpO2lmKFYpe2lmKCJvYmplY3QiIT10eXBlb2YgVil0aHJvdyBuZXcgVHlwZUVycm9yKFYrIm11c3QgYmUgbm9uLW9iamVjdCIpO2Zvcih2YXIgQiBpbiBWKVYuaGFzT3duUHJvcGVy'@; put 'dHkoQikmJihFW0JdPVZbQl0pfX1yZXR1cm4gRX0sei5zaHJpbmtCdWY9ZnVuY3Rpb24oRSxqKXtyZXR1cm4gRS5sZW5ndGg9PT1qP0U6RS5zdWJhcnJheT9FLnN1YmFycmF5KDAsaik6KEUubGVuZ3RoPWosRSl9O3ZhciBJPXthcnJheVNldDpmdW5jdGlvbihFLGosVixCLFkpe2lmKGouc3Vi'@; put 'YXJyYXkmJkUuc3ViYXJyYXkpRS5zZXQoai5zdWJhcnJheShWLFYrQiksWSk7ZWxzZSBmb3IodmFyIFg9MDtYPEI7WCsrKUVbWStYXT1qW1YrWF19LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24oRSl7dmFyIGosVixCLFksWCxVO2ZvcihCPTAsaj0wLFY9RS5sZW5ndGg7ajxWO2orKylCKz1FW2pd'@; put 'Lmxlbmd0aDtmb3IoVT1uZXcgVWludDhBcnJheShCKSxZPTAsaj0wLFY9RS5sZW5ndGg7ajxWO2orKylVLnNldChYPUVbal0sWSksWSs9WC5sZW5ndGg7cmV0dXJuIFV9fSxrPXthcnJheVNldDpmdW5jdGlvbihFLGosVixCLFkpe2Zvcih2YXIgWD0wO1g8QjtYKyspRVtZK1hdPWpbVitYXX0s'@; put 'ZmxhdHRlbkNodW5rczpmdW5jdGlvbihFKXtyZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sRSl9fTt6LnNldFR5cGVkPWZ1bmN0aW9uKEUpe0U/KHouQnVmOD1VaW50OEFycmF5LHouQnVmMTY9VWludDE2QXJyYXksei5CdWYzMj1JbnQzMkFycmF5LHouYXNzaWduKHosSSkpOih6LkJ1Zjg9QXJy'@; put 'YXksei5CdWYxNj1BcnJheSx6LkJ1ZjMyPUFycmF5LHouYXNzaWduKHosaykpfSx6LnNldFR5cGVkKEspfSx7fV0sMjg6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi9jb21tb24iKSxJPSEwLGs9ITA7dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxb'@; put 'MF0pfWNhdGNoe0k9ITF9dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgxKSl9Y2F0Y2h7az0hMX1mb3IodmFyIEU9bmV3IEsuQnVmOCgyNTYpLGo9MDtqPDI1NjtqKyspRVtqXT1qPj0yNTI/NjpqPj0yNDg/NTpqPj0yNDA/NDpqPj0yMjQ/MzpqPj0x'@; put 'OTI/MjoxO2Z1bmN0aW9uIFYoQixZKXtpZihZPDY1NTM3JiYoQi5zdWJhcnJheSYma3x8IUIuc3ViYXJyYXkmJkkpKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsSy5zaHJpbmtCdWYoQixZKSk7Zm9yKHZhciBYPSIiLFU9MDtVPFk7VSsrKVgrPVN0cmluZy5mcm9tQ2hh'@; put 'ckNvZGUoQltVXSk7cmV0dXJuIFh9RVsyNTRdPUVbMjU0XT0xLHouc3RyaW5nMmJ1Zj1mdW5jdGlvbihCKXt2YXIgWSxYLFUscSxlZSx0ZT1CLmxlbmd0aCxvZT0wO2ZvcihxPTA7cTx0ZTtxKyspNTUyOTY9PSg2NDUxMiYoWD1CLmNoYXJDb2RlQXQocSkpKSYmcSsxPHRlJiY1NjMyMD09KDY0'@; put 'NTEyJihVPUIuY2hhckNvZGVBdChxKzEpKSkmJihYPTY1NTM2KyhYLTU1Mjk2PDwxMCkrKFUtNTYzMjApLHErKyksb2UrPVg8MTI4PzE6WDwyMDQ4PzI6WDw2NTUzNj8zOjQ7Zm9yKFk9bmV3IEsuQnVmOChvZSksZWU9MCxxPTA7ZWU8b2U7cSsrKTU1Mjk2PT0oNjQ1MTImKFg9Qi5jaGFyQ29k'@; put 'ZUF0KHEpKSkmJnErMTx0ZSYmNTYzMjA9PSg2NDUxMiYoVT1CLmNoYXJDb2RlQXQocSsxKSkpJiYoWD02NTUzNisoWC01NTI5Njw8MTApKyhVLTU2MzIwKSxxKyspLFg8MTI4P1lbZWUrK109WDpYPDIwNDg/KFlbZWUrK109MTkyfFg+Pj42LFlbZWUrK109MTI4fDYzJlgpOlg8NjU1MzY/KFlb'@; put 'ZWUrK109MjI0fFg+Pj4xMixZW2VlKytdPTEyOHxYPj4+NiY2MyxZW2VlKytdPTEyOHw2MyZYKTooWVtlZSsrXT0yNDB8WD4+PjE4LFlbZWUrK109MTI4fFg+Pj4xMiY2MyxZW2VlKytdPTEyOHxYPj4+NiY2MyxZW2VlKytdPTEyOHw2MyZYKTtyZXR1cm4gWX0sei5idWYyYmluc3RyaW5nPWZ1'@; put 'bmN0aW9uKEIpe3JldHVybiBWKEIsQi5sZW5ndGgpfSx6LmJpbnN0cmluZzJidWY9ZnVuY3Rpb24oQil7Zm9yKHZhciBZPW5ldyBLLkJ1ZjgoQi5sZW5ndGgpLFg9MCxVPVkubGVuZ3RoO1g8VTtYKyspWVtYXT1CLmNoYXJDb2RlQXQoWCk7cmV0dXJuIFl9LHouYnVmMnN0cmluZz1mdW5jdGlv'@; put 'bihCLFkpe3ZhciBYLFUscSxlZSx0ZT1ZfHxCLmxlbmd0aCxvZT1uZXcgQXJyYXkoMip0ZSk7Zm9yKFU9MCxYPTA7WDx0ZTspaWYoKHE9QltYKytdKTwxMjgpb2VbVSsrXT1xO2Vsc2UgaWYoKGVlPUVbcV0pPjQpb2VbVSsrXT02NTUzMyxYKz1lZS0xO2Vsc2V7Zm9yKHEmPTI9PT1lZT8zMToz'@; put 'PT09ZWU/MTU6NztlZT4xJiZYPHRlOylxPXE8PDZ8NjMmQltYKytdLGVlLS07ZWU+MT9vZVtVKytdPTY1NTMzOnE8NjU1MzY/b2VbVSsrXT1xOihvZVtVKytdPTU1Mjk2fChxLT02NTUzNik+PjEwJjEwMjMsb2VbVSsrXT01NjMyMHwxMDIzJnEpfXJldHVybiBWKG9lLFUpfSx6LnV0Zjhib3Jk'@; put 'ZXI9ZnVuY3Rpb24oQixZKXt2YXIgWDtmb3IoKFk9WXx8Qi5sZW5ndGgpPkIubGVuZ3RoJiYoWT1CLmxlbmd0aCksWD1ZLTE7WD49MCYmMTI4PT0oMTkyJkJbWF0pOylYLS07cmV0dXJuIFg8MHx8MD09PVg/WTpYK0VbQltYXV0+WT9YOll9fSx7Ii4vY29tbW9uIjoyN31dLDI5OltmdW5jdGlv'@; put 'bihPLFIseil7InVzZSBzdHJpY3QiO1IuZXhwb3J0cz1mdW5jdGlvbiBLKEksayxFLGope2Zvcih2YXIgVj02NTUzNSZJfDAsQj1JPj4+MTYmNjU1MzV8MCxZPTA7MCE9PUU7KXtFLT1ZPUU+MmUzPzJlMzpFO2Rve0I9QisoVj1WK2tbaisrXXwwKXwwfXdoaWxlKC0tWSk7ViU9NjU1MjEsQiU9'@; put 'NjU1MjF9cmV0dXJuIFZ8Qjw8MTZ8MH19LHt9XSwzMDpbZnVuY3Rpb24oTyxSLHope1IuZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lOQ19GTFVTSDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAsWl9TVFJF'@; put 'QU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0yLFpfREFUQV9FUlJPUjotMyxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNTSU9OOjAsWl9CRVNUX1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpf'@; put 'RklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9TVFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dOOjIsWl9ERUZMQVRFRDo4fX0se31dLDMxOltmdW5jdGlvbihPLFIseil7InVzZSBzdHJpY3QiO3ZhciBJPWZ1bmN0aW9u'@; put 'IEsoKXtmb3IodmFyIEUsaj1bXSxWPTA7VjwyNTY7VisrKXtFPVY7Zm9yKHZhciBCPTA7Qjw4O0IrKylFPTEmRT8zOTg4MjkyMzg0XkU+Pj4xOkU+Pj4xO2pbVl09RX1yZXR1cm4gan0oKTtSLmV4cG9ydHM9ZnVuY3Rpb24gayhFLGosVixCKXt2YXIgWT1JLFg9QitWO0VePS0xO2Zvcih2YXIg'@; put 'VT1CO1U8WDtVKyspRT1FPj4+OF5ZWzI1NSYoRV5qW1VdKV07cmV0dXJuLTFeRX19LHt9XSwzMjpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuLi91dGlscy9jb21tb24iKSxJPU8oIi4vdHJlZXMiKSxrPU8oIi4vYWRsZXIzMiIpLEU9TygiLi9jcmMzMiIpLGo9Tygi'@; put 'Li9tZXNzYWdlcyIpLFY9MCxxPTAsdGU9LTIsSD0yLE49OCx3PTI4NixKPTMwLG5lPTE5LGRlPTIqdysxLGZlPTE1LHhlPTMsTGU9MjU4LEZlPUxlK3hlKzEsamU9NDIsbHQ9MTEzO2Z1bmN0aW9uIFVlKHJ0LEl0KXtyZXR1cm4gcnQubXNnPWpbSXRdLEl0fWZ1bmN0aW9uIGh0KHJ0KXtyZXR1'@; put 'cm4ocnQ8PDEpLShydD40Pzk6MCl9ZnVuY3Rpb24gTWUocnQpe2Zvcih2YXIgSXQ9cnQubGVuZ3RoOy0tSXQ+PTA7KXJ0W0l0XT0wfWZ1bmN0aW9uIERlKHJ0KXt2YXIgSXQ9cnQuc3RhdGUsUXQ9SXQucGVuZGluZztRdD5ydC5hdmFpbF9vdXQmJihRdD1ydC5hdmFpbF9vdXQpLDAhPT1RdCYm'@; put 'KEsuYXJyYXlTZXQocnQub3V0cHV0LEl0LnBlbmRpbmdfYnVmLEl0LnBlbmRpbmdfb3V0LFF0LHJ0Lm5leHRfb3V0KSxydC5uZXh0X291dCs9UXQsSXQucGVuZGluZ19vdXQrPVF0LHJ0LnRvdGFsX291dCs9UXQscnQuYXZhaWxfb3V0LT1RdCxJdC5wZW5kaW5nLT1RdCwwPT09SXQucGVuZGlu'@; put 'ZyYmKEl0LnBlbmRpbmdfb3V0PTApKX1mdW5jdGlvbiB6ZShydCxJdCl7SS5fdHJfZmx1c2hfYmxvY2socnQscnQuYmxvY2tfc3RhcnQ+PTA/cnQuYmxvY2tfc3RhcnQ6LTEscnQuc3Ryc3RhcnQtcnQuYmxvY2tfc3RhcnQsSXQpLHJ0LmJsb2NrX3N0YXJ0PXJ0LnN0cnN0YXJ0LERlKHJ0LnN0'@; put 'cm0pfWZ1bmN0aW9uIG90KHJ0LEl0KXtydC5wZW5kaW5nX2J1ZltydC5wZW5kaW5nKytdPUl0fWZ1bmN0aW9uIHV0KHJ0LEl0KXtydC5wZW5kaW5nX2J1ZltydC5wZW5kaW5nKytdPUl0Pj4+OCYyNTUscnQucGVuZGluZ19idWZbcnQucGVuZGluZysrXT0yNTUmSXR9ZnVuY3Rpb24gTXQocnQs'@; put 'SXQsUXQsRHQpe3ZhciBwdD1ydC5hdmFpbF9pbjtyZXR1cm4gcHQ+RHQmJihwdD1EdCksMD09PXB0PzA6KHJ0LmF2YWlsX2luLT1wdCxLLmFycmF5U2V0KEl0LHJ0LmlucHV0LHJ0Lm5leHRfaW4scHQsUXQpLDE9PT1ydC5zdGF0ZS53cmFwP3J0LmFkbGVyPWsocnQuYWRsZXIsSXQscHQsUXQp'@; put 'OjI9PT1ydC5zdGF0ZS53cmFwJiYocnQuYWRsZXI9RShydC5hZGxlcixJdCxwdCxRdCkpLHJ0Lm5leHRfaW4rPXB0LHJ0LnRvdGFsX2luKz1wdCxwdCl9ZnVuY3Rpb24gSHQocnQsSXQpe3ZhciBwdCxZdCxRdD1ydC5tYXhfY2hhaW5fbGVuZ3RoLER0PXJ0LnN0cnN0YXJ0LEluPXJ0LnByZXZf'@; put 'bGVuZ3RoLHp0PXJ0Lm5pY2VfbWF0Y2gseW49cnQuc3Ryc3RhcnQ+cnQud19zaXplLUZlP3J0LnN0cnN0YXJ0LShydC53X3NpemUtRmUpOjAseG49cnQud2luZG93LHNuPXJ0LndfbWFzayxCbj1ydC5wcmV2LFJuPXJ0LnN0cnN0YXJ0K0xlLCR0PXhuW0R0K0luLTFdLEZuPXhuW0R0K0luXTty'@; put 'dC5wcmV2X2xlbmd0aD49cnQuZ29vZF9tYXRjaCYmKFF0Pj49MiksenQ+cnQubG9va2FoZWFkJiYoenQ9cnQubG9va2FoZWFkKTtkb3tpZih4blsocHQ9SXQpK0luXT09PUZuJiZ4bltwdCtJbi0xXT09PSR0JiZ4bltwdF09PT14bltEdF0mJnhuWysrcHRdPT09eG5bRHQrMV0pe0R0Kz0yLHB0'@; put 'Kys7ZG97fXdoaWxlKHhuWysrRHRdPT09eG5bKytwdF0mJnhuWysrRHRdPT09eG5bKytwdF0mJnhuWysrRHRdPT09eG5bKytwdF0mJnhuWysrRHRdPT09eG5bKytwdF0mJnhuWysrRHRdPT09eG5bKytwdF0mJnhuWysrRHRdPT09eG5bKytwdF0mJnhuWysrRHRdPT09eG5bKytwdF0mJnhuWysr'@; put 'RHRdPT09eG5bKytwdF0mJkR0PFJuKTtpZihZdD1MZS0oUm4tRHQpLER0PVJuLUxlLFl0PkluKXtpZihydC5tYXRjaF9zdGFydD1JdCxJbj1ZdCxZdD49enQpYnJlYWs7JHQ9eG5bRHQrSW4tMV0sRm49eG5bRHQrSW5dfX19d2hpbGUoKEl0PUJuW0l0JnNuXSk+eW4mJjAhPS0tUXQpO3JldHVy'@; put 'biBJbjw9cnQubG9va2FoZWFkP0luOnJ0Lmxvb2thaGVhZH1mdW5jdGlvbiBQdChydCl7dmFyIFF0LER0LHB0LFl0LEluLEl0PXJ0Lndfc2l6ZTtkb3tpZihZdD1ydC53aW5kb3dfc2l6ZS1ydC5sb29rYWhlYWQtcnQuc3Ryc3RhcnQscnQuc3Ryc3RhcnQ+PUl0KyhJdC1GZSkpe0suYXJyYXlT'@; put 'ZXQocnQud2luZG93LHJ0LndpbmRvdyxJdCxJdCwwKSxydC5tYXRjaF9zdGFydC09SXQscnQuc3Ryc3RhcnQtPUl0LHJ0LmJsb2NrX3N0YXJ0LT1JdCxRdD1EdD1ydC5oYXNoX3NpemU7ZG97cHQ9cnQuaGVhZFstLVF0XSxydC5oZWFkW1F0XT1wdD49SXQ/cHQtSXQ6MH13aGlsZSgtLUR0KTtR'@; put 'dD1EdD1JdDtkb3twdD1ydC5wcmV2Wy0tUXRdLHJ0LnByZXZbUXRdPXB0Pj1JdD9wdC1JdDowfXdoaWxlKC0tRHQpO1l0Kz1JdH1pZigwPT09cnQuc3RybS5hdmFpbF9pbilicmVhaztpZihEdD1NdChydC5zdHJtLHJ0LndpbmRvdyxydC5zdHJzdGFydCtydC5sb29rYWhlYWQsWXQpLHJ0Lmxv'@; put 'b2thaGVhZCs9RHQscnQubG9va2FoZWFkK3J0Lmluc2VydD49eGUpZm9yKHJ0Lmluc19oPXJ0LndpbmRvd1tJbj1ydC5zdHJzdGFydC1ydC5pbnNlcnRdLHJ0Lmluc19oPShydC5pbnNfaDw8cnQuaGFzaF9zaGlmdF5ydC53aW5kb3dbSW4rMV0pJnJ0Lmhhc2hfbWFzaztydC5pbnNlcnQmJihy'@; put 'dC5pbnNfaD0ocnQuaW5zX2g8PHJ0Lmhhc2hfc2hpZnRecnQud2luZG93W0luK3hlLTFdKSZydC5oYXNoX21hc2sscnQucHJldltJbiZydC53X21hc2tdPXJ0LmhlYWRbcnQuaW5zX2hdLHJ0LmhlYWRbcnQuaW5zX2hdPUluLEluKysscnQuaW5zZXJ0LS0sIShydC5sb29rYWhlYWQrcnQuaW5z'@; put 'ZXJ0PHhlKSk7KTt9d2hpbGUocnQubG9va2FoZWFkPEZlJiYwIT09cnQuc3RybS5hdmFpbF9pbil9ZnVuY3Rpb24gQ24ocnQsSXQpe2Zvcih2YXIgUXQsRHQ7Oyl7aWYocnQubG9va2FoZWFkPEZlKXtpZihQdChydCkscnQubG9va2FoZWFkPEZlJiZJdD09PVYpcmV0dXJuIDE7aWYoMD09PXJ0'@; put 'Lmxvb2thaGVhZClicmVha31pZihRdD0wLHJ0Lmxvb2thaGVhZD49eGUmJihydC5pbnNfaD0ocnQuaW5zX2g8PHJ0Lmhhc2hfc2hpZnRecnQud2luZG93W3J0LnN0cnN0YXJ0K3hlLTFdKSZydC5oYXNoX21hc2ssUXQ9cnQucHJldltydC5zdHJzdGFydCZydC53X21hc2tdPXJ0LmhlYWRbcnQu'@; put 'aW5zX2hdLHJ0LmhlYWRbcnQuaW5zX2hdPXJ0LnN0cnN0YXJ0KSwwIT09UXQmJnJ0LnN0cnN0YXJ0LVF0PD1ydC53X3NpemUtRmUmJihydC5tYXRjaF9sZW5ndGg9SHQocnQsUXQpKSxydC5tYXRjaF9sZW5ndGg+PXhlKWlmKER0PUkuX3RyX3RhbGx5KHJ0LHJ0LnN0cnN0YXJ0LXJ0Lm1hdGNo'@; put 'X3N0YXJ0LHJ0Lm1hdGNoX2xlbmd0aC14ZSkscnQubG9va2FoZWFkLT1ydC5tYXRjaF9sZW5ndGgscnQubWF0Y2hfbGVuZ3RoPD1ydC5tYXhfbGF6eV9tYXRjaCYmcnQubG9va2FoZWFkPj14ZSl7cnQubWF0Y2hfbGVuZ3RoLS07ZG97cnQuc3Ryc3RhcnQrKyxydC5pbnNfaD0ocnQuaW5zX2g8'@; put 'PHJ0Lmhhc2hfc2hpZnRecnQud2luZG93W3J0LnN0cnN0YXJ0K3hlLTFdKSZydC5oYXNoX21hc2ssUXQ9cnQucHJldltydC5zdHJzdGFydCZydC53X21hc2tdPXJ0LmhlYWRbcnQuaW5zX2hdLHJ0LmhlYWRbcnQuaW5zX2hdPXJ0LnN0cnN0YXJ0fXdoaWxlKDAhPS0tcnQubWF0Y2hfbGVuZ3Ro'@; put 'KTtydC5zdHJzdGFydCsrfWVsc2UgcnQuc3Ryc3RhcnQrPXJ0Lm1hdGNoX2xlbmd0aCxydC5tYXRjaF9sZW5ndGg9MCxydC5pbnNfaD1ydC53aW5kb3dbcnQuc3Ryc3RhcnRdLHJ0Lmluc19oPShydC5pbnNfaDw8cnQuaGFzaF9zaGlmdF5ydC53aW5kb3dbcnQuc3Ryc3RhcnQrMV0pJnJ0Lmhh'@; put 'c2hfbWFzaztlbHNlIER0PUkuX3RyX3RhbGx5KHJ0LDAscnQud2luZG93W3J0LnN0cnN0YXJ0XSkscnQubG9va2FoZWFkLS0scnQuc3Ryc3RhcnQrKztpZihEdCYmKHplKHJ0LCExKSwwPT09cnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBydC5pbnNlcnQ9cnQuc3Ryc3RhcnQ8'@; put 'eGUtMT9ydC5zdHJzdGFydDp4ZS0xLDQ9PT1JdD8oemUocnQsITApLDA9PT1ydC5zdHJtLmF2YWlsX291dD8zOjQpOnJ0Lmxhc3RfbGl0JiYoemUocnQsITEpLDA9PT1ydC5zdHJtLmF2YWlsX291dCk/MToyfWZ1bmN0aW9uIFV0KHJ0LEl0KXtmb3IodmFyIFF0LER0LHB0Ozspe2lmKHJ0Lmxv'@; put 'b2thaGVhZDxGZSl7aWYoUHQocnQpLHJ0Lmxvb2thaGVhZDxGZSYmSXQ9PT1WKXJldHVybiAxO2lmKDA9PT1ydC5sb29rYWhlYWQpYnJlYWt9aWYoUXQ9MCxydC5sb29rYWhlYWQ+PXhlJiYocnQuaW5zX2g9KHJ0Lmluc19oPDxydC5oYXNoX3NoaWZ0XnJ0LndpbmRvd1tydC5zdHJzdGFydCt4'@; put 'ZS0xXSkmcnQuaGFzaF9tYXNrLFF0PXJ0LnByZXZbcnQuc3Ryc3RhcnQmcnQud19tYXNrXT1ydC5oZWFkW3J0Lmluc19oXSxydC5oZWFkW3J0Lmluc19oXT1ydC5zdHJzdGFydCkscnQucHJldl9sZW5ndGg9cnQubWF0Y2hfbGVuZ3RoLHJ0LnByZXZfbWF0Y2g9cnQubWF0Y2hfc3RhcnQscnQu'@; put 'bWF0Y2hfbGVuZ3RoPXhlLTEsMCE9PVF0JiZydC5wcmV2X2xlbmd0aDxydC5tYXhfbGF6eV9tYXRjaCYmcnQuc3Ryc3RhcnQtUXQ8PXJ0Lndfc2l6ZS1GZSYmKHJ0Lm1hdGNoX2xlbmd0aD1IdChydCxRdCkscnQubWF0Y2hfbGVuZ3RoPD01JiYoMT09PXJ0LnN0cmF0ZWd5fHxydC5tYXRjaF9s'@; put 'ZW5ndGg9PT14ZSYmcnQuc3Ryc3RhcnQtcnQubWF0Y2hfc3RhcnQ+NDA5NikmJihydC5tYXRjaF9sZW5ndGg9eGUtMSkpLHJ0LnByZXZfbGVuZ3RoPj14ZSYmcnQubWF0Y2hfbGVuZ3RoPD1ydC5wcmV2X2xlbmd0aCl7cHQ9cnQuc3Ryc3RhcnQrcnQubG9va2FoZWFkLXhlLER0PUkuX3RyX3Rh'@; put 'bGx5KHJ0LHJ0LnN0cnN0YXJ0LTEtcnQucHJldl9tYXRjaCxydC5wcmV2X2xlbmd0aC14ZSkscnQubG9va2FoZWFkLT1ydC5wcmV2X2xlbmd0aC0xLHJ0LnByZXZfbGVuZ3RoLT0yO2RveysrcnQuc3Ryc3RhcnQ8PXB0JiYocnQuaW5zX2g9KHJ0Lmluc19oPDxydC5oYXNoX3NoaWZ0XnJ0Lndp'@; put 'bmRvd1tydC5zdHJzdGFydCt4ZS0xXSkmcnQuaGFzaF9tYXNrLFF0PXJ0LnByZXZbcnQuc3Ryc3RhcnQmcnQud19tYXNrXT1ydC5oZWFkW3J0Lmluc19oXSxydC5oZWFkW3J0Lmluc19oXT1ydC5zdHJzdGFydCl9d2hpbGUoMCE9LS1ydC5wcmV2X2xlbmd0aCk7aWYocnQubWF0Y2hfYXZhaWxh'@; put 'YmxlPTAscnQubWF0Y2hfbGVuZ3RoPXhlLTEscnQuc3Ryc3RhcnQrKyxEdCYmKHplKHJ0LCExKSwwPT09cnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfWVsc2UgaWYocnQubWF0Y2hfYXZhaWxhYmxlKXtpZigoRHQ9SS5fdHJfdGFsbHkocnQsMCxydC53aW5kb3dbcnQuc3Ryc3RhcnQtMV0p'@; put 'KSYmemUocnQsITEpLHJ0LnN0cnN0YXJ0KysscnQubG9va2FoZWFkLS0sMD09PXJ0LnN0cm0uYXZhaWxfb3V0KXJldHVybiAxfWVsc2UgcnQubWF0Y2hfYXZhaWxhYmxlPTEscnQuc3Ryc3RhcnQrKyxydC5sb29rYWhlYWQtLX1yZXR1cm4gcnQubWF0Y2hfYXZhaWxhYmxlJiYoRHQ9SS5fdHJf'@; put 'dGFsbHkocnQsMCxydC53aW5kb3dbcnQuc3Ryc3RhcnQtMV0pLHJ0Lm1hdGNoX2F2YWlsYWJsZT0wKSxydC5pbnNlcnQ9cnQuc3Ryc3RhcnQ8eGUtMT9ydC5zdHJzdGFydDp4ZS0xLDQ9PT1JdD8oemUocnQsITApLDA9PT1ydC5zdHJtLmF2YWlsX291dD8zOjQpOnJ0Lmxhc3RfbGl0JiYoemUo'@; put 'cnQsITEpLDA9PT1ydC5zdHJtLmF2YWlsX291dCk/MToyfXZhciAkbixlbj1mdW5jdGlvbihydCxJdCxRdCxEdCxwdCl7dGhpcy5nb29kX2xlbmd0aD1ydCx0aGlzLm1heF9sYXp5PUl0LHRoaXMubmljZV9sZW5ndGg9UXQsdGhpcy5tYXhfY2hhaW49RHQsdGhpcy5mdW5jPXB0fTtmdW5jdGlv'@; put 'biBmdCgpe3RoaXMuc3RybT1udWxsLHRoaXMuc3RhdHVzPTAsdGhpcy5wZW5kaW5nX2J1Zj1udWxsLHRoaXMucGVuZGluZ19idWZfc2l6ZT0wLHRoaXMucGVuZGluZ19vdXQ9MCx0aGlzLnBlbmRpbmc9MCx0aGlzLndyYXA9MCx0aGlzLmd6aGVhZD1udWxsLHRoaXMuZ3ppbmRleD0wLHRoaXMu'@; put 'bWV0aG9kPU4sdGhpcy5sYXN0X2ZsdXNoPS0xLHRoaXMud19zaXplPTAsdGhpcy53X2JpdHM9MCx0aGlzLndfbWFzaz0wLHRoaXMud2luZG93PW51bGwsdGhpcy53aW5kb3dfc2l6ZT0wLHRoaXMucHJldj1udWxsLHRoaXMuaGVhZD1udWxsLHRoaXMuaW5zX2g9MCx0aGlzLmhhc2hfc2l6ZT0w'@; put 'LHRoaXMuaGFzaF9iaXRzPTAsdGhpcy5oYXNoX21hc2s9MCx0aGlzLmhhc2hfc2hpZnQ9MCx0aGlzLmJsb2NrX3N0YXJ0PTAsdGhpcy5tYXRjaF9sZW5ndGg9MCx0aGlzLnByZXZfbWF0Y2g9MCx0aGlzLm1hdGNoX2F2YWlsYWJsZT0wLHRoaXMuc3Ryc3RhcnQ9MCx0aGlzLm1hdGNoX3N0YXJ0'@; put 'PTAsdGhpcy5sb29rYWhlYWQ9MCx0aGlzLnByZXZfbGVuZ3RoPTAsdGhpcy5tYXhfY2hhaW5fbGVuZ3RoPTAsdGhpcy5tYXhfbGF6eV9tYXRjaD0wLHRoaXMubGV2ZWw9MCx0aGlzLnN0cmF0ZWd5PTAsdGhpcy5nb29kX21hdGNoPTAsdGhpcy5uaWNlX21hdGNoPTAsdGhpcy5keW5fbHRyZWU9'@; put 'bmV3IEsuQnVmMTYoMipkZSksdGhpcy5keW5fZHRyZWU9bmV3IEsuQnVmMTYoMiooMipKKzEpKSx0aGlzLmJsX3RyZWU9bmV3IEsuQnVmMTYoMiooMipuZSsxKSksTWUodGhpcy5keW5fbHRyZWUpLE1lKHRoaXMuZHluX2R0cmVlKSxNZSh0aGlzLmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGws'@; put 'dGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rlc2M9bnVsbCx0aGlzLmJsX2NvdW50PW5ldyBLLkJ1ZjE2KGZlKzEpLHRoaXMuaGVhcD1uZXcgSy5CdWYxNigyKncrMSksTWUodGhpcy5oZWFwKSx0aGlzLmhlYXBfbGVuPTAsdGhpcy5oZWFwX21heD0wLHRoaXMuZGVwdGg9bmV3IEsuQnVmMTYo'@; put 'Mip3KzEpLE1lKHRoaXMuZGVwdGgpLHRoaXMubF9idWY9MCx0aGlzLmxpdF9idWZzaXplPTAsdGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9sZW49MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMuYmlfYnVmPTAsdGhpcy5i'@; put 'aV92YWxpZD0wfWZ1bmN0aW9uIGZuKHJ0KXt2YXIgSXQ7cmV0dXJuIHJ0JiZydC5zdGF0ZT8ocnQudG90YWxfaW49cnQudG90YWxfb3V0PTAscnQuZGF0YV90eXBlPUgsKEl0PXJ0LnN0YXRlKS5wZW5kaW5nPTAsSXQucGVuZGluZ19vdXQ9MCxJdC53cmFwPDAmJihJdC53cmFwPS1JdC53cmFw'@; put 'KSxJdC5zdGF0dXM9SXQud3JhcD9qZTpsdCxydC5hZGxlcj0yPT09SXQud3JhcD8wOjEsSXQubGFzdF9mbHVzaD1WLEkuX3RyX2luaXQoSXQpLHEpOlVlKHJ0LHRlKX1mdW5jdGlvbiBobihydCl7dmFyIEl0PWZuKHJ0KTtyZXR1cm4gSXQ9PT1xJiZmdW5jdGlvbiBIbihydCl7cnQud2luZG93'@; put 'X3NpemU9MipydC53X3NpemUsTWUocnQuaGVhZCkscnQubWF4X2xhenlfbWF0Y2g9JG5bcnQubGV2ZWxdLm1heF9sYXp5LHJ0Lmdvb2RfbWF0Y2g9JG5bcnQubGV2ZWxdLmdvb2RfbGVuZ3RoLHJ0Lm5pY2VfbWF0Y2g9JG5bcnQubGV2ZWxdLm5pY2VfbGVuZ3RoLHJ0Lm1heF9jaGFpbl9sZW5n'@; put 'dGg9JG5bcnQubGV2ZWxdLm1heF9jaGFpbixydC5zdHJzdGFydD0wLHJ0LmJsb2NrX3N0YXJ0PTAscnQubG9va2FoZWFkPTAscnQuaW5zZXJ0PTAscnQubWF0Y2hfbGVuZ3RoPXJ0LnByZXZfbGVuZ3RoPXhlLTEscnQubWF0Y2hfYXZhaWxhYmxlPTAscnQuaW5zX2g9MH0ocnQuc3RhdGUpLEl0'@; put 'fWZ1bmN0aW9uIFh0KHJ0LEl0LFF0LER0LHB0LFl0KXtpZighcnQpcmV0dXJuIHRlO3ZhciBJbj0xO2lmKC0xPT09SXQmJihJdD02KSxEdDwwPyhJbj0wLER0PS1EdCk6RHQ+MTUmJihJbj0yLER0LT0xNikscHQ8MXx8cHQ+OXx8UXQhPT1OfHxEdDw4fHxEdD4xNXx8SXQ8MHx8SXQ+OXx8WXQ8'@; put 'MHx8WXQ+NClyZXR1cm4gVWUocnQsdGUpOzg9PT1EdCYmKER0PTkpO3ZhciB6dD1uZXcgZnQ7cmV0dXJuIHJ0LnN0YXRlPXp0LHp0LnN0cm09cnQsenQud3JhcD1Jbix6dC5nemhlYWQ9bnVsbCx6dC53X2JpdHM9RHQsenQud19zaXplPTE8PHp0LndfYml0cyx6dC53X21hc2s9enQud19zaXpl'@; put 'LTEsenQuaGFzaF9iaXRzPXB0KzcsenQuaGFzaF9zaXplPTE8PHp0Lmhhc2hfYml0cyx6dC5oYXNoX21hc2s9enQuaGFzaF9zaXplLTEsenQuaGFzaF9zaGlmdD1+figoenQuaGFzaF9iaXRzK3hlLTEpL3hlKSx6dC53aW5kb3c9bmV3IEsuQnVmOCgyKnp0Lndfc2l6ZSksenQuaGVhZD1uZXcg'@; put 'Sy5CdWYxNih6dC5oYXNoX3NpemUpLHp0LnByZXY9bmV3IEsuQnVmMTYoenQud19zaXplKSx6dC5saXRfYnVmc2l6ZT0xPDxwdCs2LHp0LnBlbmRpbmdfYnVmX3NpemU9NCp6dC5saXRfYnVmc2l6ZSx6dC5wZW5kaW5nX2J1Zj1uZXcgSy5CdWY4KHp0LnBlbmRpbmdfYnVmX3NpemUpLHp0LmRf'@; put 'YnVmPXp0LmxpdF9idWZzaXplPj4xLHp0LmxfYnVmPTMqenQubGl0X2J1ZnNpemUsenQubGV2ZWw9SXQsenQuc3RyYXRlZ3k9WXQsenQubWV0aG9kPVF0LGhuKHJ0KX0kbj1bbmV3IGVuKDAsMCwwLDAsZnVuY3Rpb24gb24ocnQsSXQpe3ZhciBRdD02NTUzNTtmb3IoUXQ+cnQucGVuZGluZ19i'@; put 'dWZfc2l6ZS01JiYoUXQ9cnQucGVuZGluZ19idWZfc2l6ZS01KTs7KXtpZihydC5sb29rYWhlYWQ8PTEpe2lmKFB0KHJ0KSwwPT09cnQubG9va2FoZWFkJiZJdD09PVYpcmV0dXJuIDE7aWYoMD09PXJ0Lmxvb2thaGVhZClicmVha31ydC5zdHJzdGFydCs9cnQubG9va2FoZWFkLHJ0Lmxvb2th'@; put 'aGVhZD0wO3ZhciBEdD1ydC5ibG9ja19zdGFydCtRdDtpZigoMD09PXJ0LnN0cnN0YXJ0fHxydC5zdHJzdGFydD49RHQpJiYocnQubG9va2FoZWFkPXJ0LnN0cnN0YXJ0LUR0LHJ0LnN0cnN0YXJ0PUR0LHplKHJ0LCExKSwwPT09cnQuc3RybS5hdmFpbF9vdXQpfHxydC5zdHJzdGFydC1ydC5i'@; put 'bG9ja19zdGFydD49cnQud19zaXplLUZlJiYoemUocnQsITEpLDA9PT1ydC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9cmV0dXJuIHJ0Lmluc2VydD0wLDQ9PT1JdD8oemUocnQsITApLDA9PT1ydC5zdHJtLmF2YWlsX291dD8zOjQpOihydC5zdHJzdGFydD5ydC5ibG9ja19zdGFydCYmemUo'@; put 'cnQsITEpLDEpfSksbmV3IGVuKDQsNCw4LDQsQ24pLG5ldyBlbig0LDUsMTYsOCxDbiksbmV3IGVuKDQsNiwzMiwzMixDbiksbmV3IGVuKDQsNCwxNiwxNixVdCksbmV3IGVuKDgsMTYsMzIsMzIsVXQpLG5ldyBlbig4LDE2LDEyOCwxMjgsVXQpLG5ldyBlbig4LDMyLDEyOCwyNTYsVXQpLG5l'@; put 'dyBlbigzMiwxMjgsMjU4LDEwMjQsVXQpLG5ldyBlbigzMiwyNTgsMjU4LDQwOTYsVXQpXSx6LmRlZmxhdGVJbml0PWZ1bmN0aW9uIF90KHJ0LEl0KXtyZXR1cm4gWHQocnQsSXQsTiwxNSw4LDApfSx6LmRlZmxhdGVJbml0Mj1YdCx6LmRlZmxhdGVSZXNldD1obix6LmRlZmxhdGVSZXNldEtl'@; put 'ZXA9Zm4sei5kZWZsYXRlU2V0SGVhZGVyPWZ1bmN0aW9uIHd0KHJ0LEl0KXtyZXR1cm4gcnQmJnJ0LnN0YXRlJiYyPT09cnQuc3RhdGUud3JhcD8ocnQuc3RhdGUuZ3poZWFkPUl0LHEpOnRlfSx6LmRlZmxhdGU9ZnVuY3Rpb24gTnQocnQsSXQpe3ZhciBRdCxEdCxwdCxZdDtpZighcnR8fCFy'@; put 'dC5zdGF0ZXx8SXQ+NXx8SXQ8MClyZXR1cm4gcnQ/VWUocnQsdGUpOnRlO2lmKER0PXJ0LnN0YXRlLCFydC5vdXRwdXR8fCFydC5pbnB1dCYmMCE9PXJ0LmF2YWlsX2lufHw2NjY9PT1EdC5zdGF0dXMmJjQhPT1JdClyZXR1cm4gVWUocnQsMD09PXJ0LmF2YWlsX291dD8tNTp0ZSk7aWYoRHQu'@; put 'c3RybT1ydCxRdD1EdC5sYXN0X2ZsdXNoLER0Lmxhc3RfZmx1c2g9SXQsRHQuc3RhdHVzPT09amUpaWYoMj09PUR0LndyYXApcnQuYWRsZXI9MCxvdChEdCwzMSksb3QoRHQsMTM5KSxvdChEdCw4KSxEdC5nemhlYWQ/KG90KER0LChEdC5nemhlYWQudGV4dD8xOjApKyhEdC5nemhlYWQuaGNy'@; put 'Yz8yOjApKyhEdC5nemhlYWQuZXh0cmE/NDowKSsoRHQuZ3poZWFkLm5hbWU/ODowKSsoRHQuZ3poZWFkLmNvbW1lbnQ/MTY6MCkpLG90KER0LDI1NSZEdC5nemhlYWQudGltZSksb3QoRHQsRHQuZ3poZWFkLnRpbWU+PjgmMjU1KSxvdChEdCxEdC5nemhlYWQudGltZT4+MTYmMjU1KSxvdChE'@; put 'dCxEdC5nemhlYWQudGltZT4+MjQmMjU1KSxvdChEdCw5PT09RHQubGV2ZWw/MjpEdC5zdHJhdGVneT49Mnx8RHQubGV2ZWw8Mj80OjApLG90KER0LDI1NSZEdC5nemhlYWQub3MpLER0Lmd6aGVhZC5leHRyYSYmRHQuZ3poZWFkLmV4dHJhLmxlbmd0aCYmKG90KER0LDI1NSZEdC5nemhlYWQu'@; put 'ZXh0cmEubGVuZ3RoKSxvdChEdCxEdC5nemhlYWQuZXh0cmEubGVuZ3RoPj44JjI1NSkpLER0Lmd6aGVhZC5oY3JjJiYocnQuYWRsZXI9RShydC5hZGxlcixEdC5wZW5kaW5nX2J1ZixEdC5wZW5kaW5nLDApKSxEdC5nemluZGV4PTAsRHQuc3RhdHVzPTY5KToob3QoRHQsMCksb3QoRHQsMCks'@; put 'b3QoRHQsMCksb3QoRHQsMCksb3QoRHQsMCksb3QoRHQsOT09PUR0LmxldmVsPzI6RHQuc3RyYXRlZ3k+PTJ8fER0LmxldmVsPDI/NDowKSxvdChEdCwzKSxEdC5zdGF0dXM9bHQpO2Vsc2V7dmFyIEluPU4rKER0LndfYml0cy04PDw0KTw8ODtJbnw9KER0LnN0cmF0ZWd5Pj0yfHxEdC5sZXZl'@; put 'bDwyPzA6RHQubGV2ZWw8Nj8xOjY9PT1EdC5sZXZlbD8yOjMpPDw2LDAhPT1EdC5zdHJzdGFydCYmKElufD0zMiksSW4rPTMxLUluJTMxLER0LnN0YXR1cz1sdCx1dChEdCxJbiksMCE9PUR0LnN0cnN0YXJ0JiYodXQoRHQscnQuYWRsZXI+Pj4xNiksdXQoRHQsNjU1MzUmcnQuYWRsZXIpKSxy'@; put 'dC5hZGxlcj0xfWlmKDY5PT09RHQuc3RhdHVzKWlmKER0Lmd6aGVhZC5leHRyYSl7Zm9yKHB0PUR0LnBlbmRpbmc7RHQuZ3ppbmRleDwoNjU1MzUmRHQuZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihEdC5wZW5kaW5nIT09RHQucGVuZGluZ19idWZfc2l6ZXx8KER0Lmd6aGVhZC5oY3JjJiZEdC5w'@; put 'ZW5kaW5nPnB0JiYocnQuYWRsZXI9RShydC5hZGxlcixEdC5wZW5kaW5nX2J1ZixEdC5wZW5kaW5nLXB0LHB0KSksRGUocnQpLHB0PUR0LnBlbmRpbmcsRHQucGVuZGluZyE9PUR0LnBlbmRpbmdfYnVmX3NpemUpKTspb3QoRHQsMjU1JkR0Lmd6aGVhZC5leHRyYVtEdC5nemluZGV4XSksRHQu'@; put 'Z3ppbmRleCsrO0R0Lmd6aGVhZC5oY3JjJiZEdC5wZW5kaW5nPnB0JiYocnQuYWRsZXI9RShydC5hZGxlcixEdC5wZW5kaW5nX2J1ZixEdC5wZW5kaW5nLXB0LHB0KSksRHQuZ3ppbmRleD09PUR0Lmd6aGVhZC5leHRyYS5sZW5ndGgmJihEdC5nemluZGV4PTAsRHQuc3RhdHVzPTczKX1lbHNl'@; put 'IER0LnN0YXR1cz03MztpZig3Mz09PUR0LnN0YXR1cylpZihEdC5nemhlYWQubmFtZSl7cHQ9RHQucGVuZGluZztkb3tpZihEdC5wZW5kaW5nPT09RHQucGVuZGluZ19idWZfc2l6ZSYmKER0Lmd6aGVhZC5oY3JjJiZEdC5wZW5kaW5nPnB0JiYocnQuYWRsZXI9RShydC5hZGxlcixEdC5wZW5k'@; put 'aW5nX2J1ZixEdC5wZW5kaW5nLXB0LHB0KSksRGUocnQpLHB0PUR0LnBlbmRpbmcsRHQucGVuZGluZz09PUR0LnBlbmRpbmdfYnVmX3NpemUpKXtZdD0xO2JyZWFrfVl0PUR0Lmd6aW5kZXg8RHQuZ3poZWFkLm5hbWUubGVuZ3RoPzI1NSZEdC5nemhlYWQubmFtZS5jaGFyQ29kZUF0KER0Lmd6'@; put 'aW5kZXgrKyk6MCxvdChEdCxZdCl9d2hpbGUoMCE9PVl0KTtEdC5nemhlYWQuaGNyYyYmRHQucGVuZGluZz5wdCYmKHJ0LmFkbGVyPUUocnQuYWRsZXIsRHQucGVuZGluZ19idWYsRHQucGVuZGluZy1wdCxwdCkpLDA9PT1ZdCYmKER0Lmd6aW5kZXg9MCxEdC5zdGF0dXM9OTEpfWVsc2UgRHQu'@; put 'c3RhdHVzPTkxO2lmKDkxPT09RHQuc3RhdHVzKWlmKER0Lmd6aGVhZC5jb21tZW50KXtwdD1EdC5wZW5kaW5nO2Rve2lmKER0LnBlbmRpbmc9PT1EdC5wZW5kaW5nX2J1Zl9zaXplJiYoRHQuZ3poZWFkLmhjcmMmJkR0LnBlbmRpbmc+cHQmJihydC5hZGxlcj1FKHJ0LmFkbGVyLER0LnBlbmRp'@; put 'bmdfYnVmLER0LnBlbmRpbmctcHQscHQpKSxEZShydCkscHQ9RHQucGVuZGluZyxEdC5wZW5kaW5nPT09RHQucGVuZGluZ19idWZfc2l6ZSkpe1l0PTE7YnJlYWt9WXQ9RHQuZ3ppbmRleDxEdC5nemhlYWQuY29tbWVudC5sZW5ndGg/MjU1JkR0Lmd6aGVhZC5jb21tZW50LmNoYXJDb2RlQXQo'@; put 'RHQuZ3ppbmRleCsrKTowLG90KER0LFl0KX13aGlsZSgwIT09WXQpO0R0Lmd6aGVhZC5oY3JjJiZEdC5wZW5kaW5nPnB0JiYocnQuYWRsZXI9RShydC5hZGxlcixEdC5wZW5kaW5nX2J1ZixEdC5wZW5kaW5nLXB0LHB0KSksMD09PVl0JiYoRHQuc3RhdHVzPTEwMyl9ZWxzZSBEdC5zdGF0dXM9'@; put 'MTAzO2lmKDEwMz09PUR0LnN0YXR1cyYmKER0Lmd6aGVhZC5oY3JjPyhEdC5wZW5kaW5nKzI+RHQucGVuZGluZ19idWZfc2l6ZSYmRGUocnQpLER0LnBlbmRpbmcrMjw9RHQucGVuZGluZ19idWZfc2l6ZSYmKG90KER0LDI1NSZydC5hZGxlciksb3QoRHQscnQuYWRsZXI+PjgmMjU1KSxydC5h'@; put 'ZGxlcj0wLER0LnN0YXR1cz1sdCkpOkR0LnN0YXR1cz1sdCksMCE9PUR0LnBlbmRpbmcpe2lmKERlKHJ0KSwwPT09cnQuYXZhaWxfb3V0KXJldHVybiBEdC5sYXN0X2ZsdXNoPS0xLHF9ZWxzZSBpZigwPT09cnQuYXZhaWxfaW4mJmh0KEl0KTw9aHQoUXQpJiY0IT09SXQpcmV0dXJuIFVlKHJ0'@; put 'LC01KTtpZig2NjY9PT1EdC5zdGF0dXMmJjAhPT1ydC5hdmFpbF9pbilyZXR1cm4gVWUocnQsLTUpO2lmKDAhPT1ydC5hdmFpbF9pbnx8MCE9PUR0Lmxvb2thaGVhZHx8SXQhPT1WJiY2NjYhPT1EdC5zdGF0dXMpe3ZhciB5bj0yPT09RHQuc3RyYXRlZ3k/ZnVuY3Rpb24gV24ocnQsSXQpe2Zv'@; put 'cih2YXIgUXQ7Oyl7aWYoMD09PXJ0Lmxvb2thaGVhZCYmKFB0KHJ0KSwwPT09cnQubG9va2FoZWFkKSl7aWYoSXQ9PT1WKXJldHVybiAxO2JyZWFrfWlmKHJ0Lm1hdGNoX2xlbmd0aD0wLFF0PUkuX3RyX3RhbGx5KHJ0LDAscnQud2luZG93W3J0LnN0cnN0YXJ0XSkscnQubG9va2FoZWFkLS0s'@; put 'cnQuc3Ryc3RhcnQrKyxRdCYmKHplKHJ0LCExKSwwPT09cnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBydC5pbnNlcnQ9MCw0PT09SXQ/KHplKHJ0LCEwKSwwPT09cnQuc3RybS5hdmFpbF9vdXQ/Mzo0KTpydC5sYXN0X2xpdCYmKHplKHJ0LCExKSwwPT09cnQuc3RybS5hdmFp'@; put 'bF9vdXQpPzE6Mn0oRHQsSXQpOjM9PT1EdC5zdHJhdGVneT9mdW5jdGlvbiBibihydCxJdCl7Zm9yKHZhciBRdCxEdCxwdCxZdCxJbj1ydC53aW5kb3c7Oyl7aWYocnQubG9va2FoZWFkPD1MZSl7aWYoUHQocnQpLHJ0Lmxvb2thaGVhZDw9TGUmJkl0PT09VilyZXR1cm4gMTtpZigwPT09cnQu'@; put 'bG9va2FoZWFkKWJyZWFrfWlmKHJ0Lm1hdGNoX2xlbmd0aD0wLHJ0Lmxvb2thaGVhZD49eGUmJnJ0LnN0cnN0YXJ0PjAmJihEdD1JbltwdD1ydC5zdHJzdGFydC0xXSk9PT1JblsrK3B0XSYmRHQ9PT1JblsrK3B0XSYmRHQ9PT1JblsrK3B0XSl7WXQ9cnQuc3Ryc3RhcnQrTGU7ZG97fXdoaWxl'@; put 'KER0PT09SW5bKytwdF0mJkR0PT09SW5bKytwdF0mJkR0PT09SW5bKytwdF0mJkR0PT09SW5bKytwdF0mJkR0PT09SW5bKytwdF0mJkR0PT09SW5bKytwdF0mJkR0PT09SW5bKytwdF0mJkR0PT09SW5bKytwdF0mJnB0PFl0KTtydC5tYXRjaF9sZW5ndGg9TGUtKFl0LXB0KSxydC5tYXRjaF9s'@; put 'ZW5ndGg+cnQubG9va2FoZWFkJiYocnQubWF0Y2hfbGVuZ3RoPXJ0Lmxvb2thaGVhZCl9aWYocnQubWF0Y2hfbGVuZ3RoPj14ZT8oUXQ9SS5fdHJfdGFsbHkocnQsMSxydC5tYXRjaF9sZW5ndGgteGUpLHJ0Lmxvb2thaGVhZC09cnQubWF0Y2hfbGVuZ3RoLHJ0LnN0cnN0YXJ0Kz1ydC5tYXRj'@; put 'aF9sZW5ndGgscnQubWF0Y2hfbGVuZ3RoPTApOihRdD1JLl90cl90YWxseShydCwwLHJ0LndpbmRvd1tydC5zdHJzdGFydF0pLHJ0Lmxvb2thaGVhZC0tLHJ0LnN0cnN0YXJ0KyspLFF0JiYoemUocnQsITEpLDA9PT1ydC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9cmV0dXJuIHJ0Lmluc2Vy'@; put 'dD0wLDQ9PT1JdD8oemUocnQsITApLDA9PT1ydC5zdHJtLmF2YWlsX291dD8zOjQpOnJ0Lmxhc3RfbGl0JiYoemUocnQsITEpLDA9PT1ydC5zdHJtLmF2YWlsX291dCk/MToyfShEdCxJdCk6JG5bRHQubGV2ZWxdLmZ1bmMoRHQsSXQpO2lmKCgzPT09eW58fDQ9PT15bikmJihEdC5zdGF0dXM9'@; put 'NjY2KSwxPT09eW58fDM9PT15bilyZXR1cm4gMD09PXJ0LmF2YWlsX291dCYmKER0Lmxhc3RfZmx1c2g9LTEpLHE7aWYoMj09PXluJiYoMT09PUl0P0kuX3RyX2FsaWduKER0KTo1IT09SXQmJihJLl90cl9zdG9yZWRfYmxvY2soRHQsMCwwLCExKSwzPT09SXQmJihNZShEdC5oZWFkKSwwPT09'@; put 'RHQubG9va2FoZWFkJiYoRHQuc3Ryc3RhcnQ9MCxEdC5ibG9ja19zdGFydD0wLER0Lmluc2VydD0wKSkpLERlKHJ0KSwwPT09cnQuYXZhaWxfb3V0KSlyZXR1cm4gRHQubGFzdF9mbHVzaD0tMSxxfXJldHVybiA0IT09SXQ/cTpEdC53cmFwPD0wPzE6KDI9PT1EdC53cmFwPyhvdChEdCwyNTUm'@; put 'cnQuYWRsZXIpLG90KER0LHJ0LmFkbGVyPj44JjI1NSksb3QoRHQscnQuYWRsZXI+PjE2JjI1NSksb3QoRHQscnQuYWRsZXI+PjI0JjI1NSksb3QoRHQsMjU1JnJ0LnRvdGFsX2luKSxvdChEdCxydC50b3RhbF9pbj4+OCYyNTUpLG90KER0LHJ0LnRvdGFsX2luPj4xNiYyNTUpLG90KER0LHJ0'@; put 'LnRvdGFsX2luPj4yNCYyNTUpKToodXQoRHQscnQuYWRsZXI+Pj4xNiksdXQoRHQsNjU1MzUmcnQuYWRsZXIpKSxEZShydCksRHQud3JhcD4wJiYoRHQud3JhcD0tRHQud3JhcCksMCE9PUR0LnBlbmRpbmc/cToxKX0sei5kZWZsYXRlRW5kPWZ1bmN0aW9uIG1uKHJ0KXt2YXIgSXQ7cmV0dXJu'@; put 'IHJ0JiZydC5zdGF0ZT8oSXQ9cnQuc3RhdGUuc3RhdHVzKSE9PWplJiY2OSE9PUl0JiY3MyE9PUl0JiY5MSE9PUl0JiYxMDMhPT1JdCYmSXQhPT1sdCYmNjY2IT09SXQ/VWUocnQsdGUpOihydC5zdGF0ZT1udWxsLEl0PT09bHQ/VWUocnQsLTMpOnEpOnRlfSx6LmRlZmxhdGVJbmZvPSJwYWtv'@; put 'IGRlZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9tZXNzYWdlcyI6MzcsIi4vdHJlZXMiOjM4fV0sMzM6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7Ui5leHBvcnRzPWZ1bmN0aW9u'@; put 'IEsoKXt0aGlzLnRleHQ9MCx0aGlzLnRpbWU9MCx0aGlzLnhmbGFncz0wLHRoaXMub3M9MCx0aGlzLmV4dHJhPW51bGwsdGhpcy5leHRyYV9sZW49MCx0aGlzLm5hbWU9IiIsdGhpcy5jb21tZW50PSIiLHRoaXMuaGNyYz0wLHRoaXMuZG9uZT0hMX19LHt9XSwzNDpbZnVuY3Rpb24oTyxSLHop'@; put 'eyJ1c2Ugc3RyaWN0IjtSLmV4cG9ydHM9ZnVuY3Rpb24oRSxqKXt2YXIgVixCLFksWCxVLHEsZWUsdGUsb2Usc2UsaGUsdWUsY2UsRyxiLEQsSCxOLGcsQyxTLHYscCx3LEo7dz1FLmlucHV0LFk9KEI9RS5uZXh0X2luKSsoRS5hdmFpbF9pbi01KSxKPUUub3V0cHV0LFU9KFg9RS5uZXh0X291'@; put 'dCktKGotRS5hdmFpbF9vdXQpLHE9WCsoRS5hdmFpbF9vdXQtMjU3KSxlZT0oVj1FLnN0YXRlKS5kbWF4LHRlPVYud3NpemUsb2U9Vi53aGF2ZSxzZT1WLnduZXh0LGhlPVYud2luZG93LHVlPVYuaG9sZCxjZT1WLmJpdHMsRz1WLmxlbmNvZGUsYj1WLmRpc3Rjb2RlLEQ9KDE8PFYubGVuYml0'@; put 'cyktMSxIPSgxPDxWLmRpc3RiaXRzKS0xO2U6ZG97Y2U8MTUmJih1ZSs9d1tCKytdPDxjZSx1ZSs9d1tCKytdPDwoY2UrPTgpLGNlKz04KSxOPUdbdWUmRF07dDpmb3IoOzspe2lmKHVlPj4+PWc9Tj4+PjI0LGNlLT1nLDA9PShnPU4+Pj4xNiYyNTUpKUpbWCsrXT02NTUzNSZOO2Vsc2V7aWYo'@; put 'ISgxNiZnKSl7aWYoNjQmZyl7aWYoMzImZyl7Vi5tb2RlPTEyO2JyZWFrIGV9RS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsVi5tb2RlPTMwO2JyZWFrIGV9Tj1HWyg2NTUzNSZOKSsodWUmKDE8PGcpLTEpXTtjb250aW51ZSB0fWZvcihDPTY1NTM1Jk4sKGcmPTE1KSYmKGNl'@; put 'PGcmJih1ZSs9d1tCKytdPDxjZSxjZSs9OCksQys9dWUmKDE8PGcpLTEsdWU+Pj49ZyxjZS09ZyksY2U8MTUmJih1ZSs9d1tCKytdPDxjZSx1ZSs9d1tCKytdPDwoY2UrPTgpLGNlKz04KSxOPWJbdWUmSF07Oyl7aWYodWU+Pj49Zz1OPj4+MjQsY2UtPWcsMTYmKGc9Tj4+PjE2JjI1NSkpe2lm'@; put 'KFM9NjU1MzUmTixjZTwoZyY9MTUpJiYodWUrPXdbQisrXTw8Y2UsKGNlKz04KTxnJiYodWUrPXdbQisrXTw8Y2UsY2UrPTgpKSwoUys9dWUmKDE8PGcpLTEpPmVlKXtFLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLFYubW9kZT0zMDticmVhayBlfWlmKHVlPj4+PWcsY2Ut'@; put 'PWcsUz4oZz1YLVUpKXtpZigoZz1TLWcpPm9lJiZWLnNhbmUpe0UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsVi5tb2RlPTMwO2JyZWFrIGV9aWYodj0wLHA9aGUsMD09PXNlKXtpZih2Kz10ZS1nLGc8Qyl7Qy09Zztkb3tKW1grK109aGVbdisrXX13aGlsZSgtLWcpO3Y9'@; put 'WC1TLHA9Sn19ZWxzZSBpZihzZTxnKXtpZih2Kz10ZStzZS1nLChnLT1zZSk8Qyl7Qy09Zztkb3tKW1grK109aGVbdisrXX13aGlsZSgtLWcpO2lmKHY9MCxzZTxDKXtDLT1nPXNlO2Rve0pbWCsrXT1oZVt2KytdfXdoaWxlKC0tZyk7dj1YLVMscD1KfX19ZWxzZSBpZih2Kz1zZS1nLGc8Qyl7'@; put 'Qy09Zztkb3tKW1grK109aGVbdisrXX13aGlsZSgtLWcpO3Y9WC1TLHA9Sn1mb3IoO0M+MjspSltYKytdPXBbdisrXSxKW1grK109cFt2KytdLEpbWCsrXT1wW3YrK10sQy09MztDJiYoSltYKytdPXBbdisrXSxDPjEmJihKW1grK109cFt2KytdKSl9ZWxzZXt2PVgtUztkb3tKW1grK109Slt2'@; put 'KytdLEpbWCsrXT1KW3YrK10sSltYKytdPUpbdisrXSxDLT0zfXdoaWxlKEM+Mik7QyYmKEpbWCsrXT1KW3YrK10sQz4xJiYoSltYKytdPUpbdisrXSkpfWJyZWFrfWlmKDY0Jmcpe0UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLFYubW9kZT0zMDticmVhayBlfU49YlsoNjU1MzUmTikr'@; put 'KHVlJigxPDxnKS0xKV19fWJyZWFrfX13aGlsZShCPFkmJlg8cSk7dWUmPSgxPDwoY2UtPShDPWNlPj4zKTw8MykpLTEsRS5uZXh0X2luPUItPUMsRS5uZXh0X291dD1YLEUuYXZhaWxfaW49QjxZP1ktQis1OjUtKEItWSksRS5hdmFpbF9vdXQ9WDxxP3EtWCsyNTc6MjU3LShYLXEpLFYuaG9s'@; put 'ZD11ZSxWLmJpdHM9Y2V9fSx7fV0sMzU6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7dmFyIEs9TygiLi4vdXRpbHMvY29tbW9uIiksST1PKCIuL2FkbGVyMzIiKSxrPU8oIi4vY3JjMzIiKSxFPU8oIi4vaW5mZmFzdCIpLGo9TygiLi9pbmZ0cmVlcyIpLGVlPTAsc2U9LTIsYj0xLE1l'@; put 'PTg1MixEZT01OTI7ZnVuY3Rpb24gdXQod3Qpe3JldHVybih3dD4+PjI0JjI1NSkrKHd0Pj4+OCY2NTI4MCkrKCg2NTI4MCZ3dCk8PDgpKygoMjU1Jnd0KTw8MjQpfWZ1bmN0aW9uIE10KCl7dGhpcy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhp'@; put 'cy5mbGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRoaXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5n'@; put 'dGg9MCx0aGlzLm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGws'@; put 'dGhpcy5sZW5zPW5ldyBLLkJ1ZjE2KDMyMCksdGhpcy53b3JrPW5ldyBLLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWZ1bmN0aW9uIEh0KHd0KXt2YXIgWHQ7cmV0dXJuIHd0JiZ3dC5zdGF0'@; put 'ZT8od3QudG90YWxfaW49d3QudG90YWxfb3V0PShYdD13dC5zdGF0ZSkudG90YWw9MCx3dC5tc2c9IiIsWHQud3JhcCYmKHd0LmFkbGVyPTEmWHQud3JhcCksWHQubW9kZT1iLFh0Lmxhc3Q9MCxYdC5oYXZlZGljdD0wLFh0LmRtYXg9MzI3NjgsWHQuaGVhZD1udWxsLFh0LmhvbGQ9MCxYdC5i'@; put 'aXRzPTAsWHQubGVuY29kZT1YdC5sZW5keW49bmV3IEsuQnVmMzIoTWUpLFh0LmRpc3Rjb2RlPVh0LmRpc3RkeW49bmV3IEsuQnVmMzIoRGUpLFh0LnNhbmU9MSxYdC5iYWNrPS0xLGVlKTpzZX1mdW5jdGlvbiBQdCh3dCl7dmFyIFh0O3JldHVybiB3dCYmd3Quc3RhdGU/KChYdD13dC5zdGF0'@; put 'ZSkud3NpemU9MCxYdC53aGF2ZT0wLFh0LnduZXh0PTAsSHQod3QpKTpzZX1mdW5jdGlvbiBvbih3dCxYdCl7dmFyIF90LE50O3JldHVybiF3dHx8IXd0LnN0YXRlfHwoTnQ9d3Quc3RhdGUsWHQ8MD8oX3Q9MCxYdD0tWHQpOihfdD0xKyhYdD4+NCksWHQ8NDgmJihYdCY9MTUpKSxYdCYmKFh0'@; put 'PDh8fFh0PjE1KSk/c2U6KG51bGwhPT1OdC53aW5kb3cmJk50LndiaXRzIT09WHQmJihOdC53aW5kb3c9bnVsbCksTnQud3JhcD1fdCxOdC53Yml0cz1YdCxQdCh3dCkpfWZ1bmN0aW9uIENuKHd0LFh0KXt2YXIgX3QsTnQ7cmV0dXJuIHd0PyhOdD1uZXcgTXQsd3Quc3RhdGU9TnQsTnQud2lu'@; put 'ZG93PW51bGwsKF90PW9uKHd0LFh0KSkhPT1lZSYmKHd0LnN0YXRlPW51bGwpLF90KTpzZX12YXIgV24sZW4sYm49ITA7ZnVuY3Rpb24gJG4od3Qpe2lmKGJuKXt2YXIgWHQ7Zm9yKFduPW5ldyBLLkJ1ZjMyKDUxMiksZW49bmV3IEsuQnVmMzIoMzIpLFh0PTA7WHQ8MTQ0Oyl3dC5sZW5zW1h0'@; put 'KytdPTg7Zm9yKDtYdDwyNTY7KXd0LmxlbnNbWHQrK109OTtmb3IoO1h0PDI4MDspd3QubGVuc1tYdCsrXT03O2Zvcig7WHQ8Mjg4Oyl3dC5sZW5zW1h0KytdPTg7Zm9yKGooMSx3dC5sZW5zLDAsMjg4LFduLDAsd3Qud29yayx7Yml0czo5fSksWHQ9MDtYdDwzMjspd3QubGVuc1tYdCsrXT01'@; put 'O2ooMix3dC5sZW5zLDAsMzIsZW4sMCx3dC53b3JrLHtiaXRzOjV9KSxibj0hMX13dC5sZW5jb2RlPVduLHd0LmxlbmJpdHM9OSx3dC5kaXN0Y29kZT1lbix3dC5kaXN0Yml0cz01fXouaW5mbGF0ZVJlc2V0PVB0LHouaW5mbGF0ZVJlc2V0Mj1vbix6LmluZmxhdGVSZXNldEtlZXA9SHQsei5p'@; put 'bmZsYXRlSW5pdD1mdW5jdGlvbiBVdCh3dCl7cmV0dXJuIENuKHd0LDE1KX0sei5pbmZsYXRlSW5pdDI9Q24sei5pbmZsYXRlPWZ1bmN0aW9uIGZ0KHd0LFh0KXt2YXIgX3QsTnQsbW4scnQsSXQsUXQsRHQscHQsWXQsSW4senQseW4seG4sc24sUm4sJHQsRm4sbmksbG4sam4scXIsZ2ksVWks'@; put 'S3IsQm49MCx4cj1uZXcgSy5CdWY4KDQpLG5vPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XTtpZighd3R8fCF3dC5zdGF0ZXx8IXd0Lm91dHB1dHx8IXd0LmlucHV0JiYwIT09d3QuYXZhaWxfaW4pcmV0dXJuIHNlOzEyPT09KF90PXd0LnN0YXRlKS5t'@; put 'b2RlJiYoX3QubW9kZT0xMyksSXQ9d3QubmV4dF9vdXQsbW49d3Qub3V0cHV0LHJ0PXd0Lm5leHRfaW4sTnQ9d3QuaW5wdXQscHQ9X3QuaG9sZCxZdD1fdC5iaXRzLEluPVF0PXd0LmF2YWlsX2luLHp0PUR0PXd0LmF2YWlsX291dCxnaT1lZTtlOmZvcig7Oylzd2l0Y2goX3QubW9kZSl7Y2Fz'@; put 'ZSBiOmlmKDA9PT1fdC53cmFwKXtfdC5tb2RlPTEzO2JyZWFrfWZvcig7WXQ8MTY7KXtpZigwPT09UXQpYnJlYWsgZTtRdC0tLHB0Kz1OdFtydCsrXTw8WXQsWXQrPTh9aWYoMiZfdC53cmFwJiYzNTYxNT09PXB0KXtfdC5jaGVjaz0wLHhyWzBdPTI1NSZwdCx4clsxXT1wdD4+PjgmMjU1LF90'@; put 'LmNoZWNrPWsoX3QuY2hlY2sseHIsMiwwKSxwdD0wLFl0PTAsX3QubW9kZT0yO2JyZWFrfWlmKF90LmZsYWdzPTAsX3QuaGVhZCYmKF90LmhlYWQuZG9uZT0hMSksISgxJl90LndyYXApfHwoKCgyNTUmcHQpPDw4KSsocHQ+PjgpKSUzMSl7d3QubXNnPSJpbmNvcnJlY3QgaGVhZGVyIGNoZWNr'@; put 'IixfdC5tb2RlPTMwO2JyZWFrfWlmKDghPSgxNSZwdCkpe3d0Lm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLF90Lm1vZGU9MzA7YnJlYWt9aWYoWXQtPTQscXI9OCsoMTUmKHB0Pj4+PTQpKSwwPT09X3Qud2JpdHMpX3Qud2JpdHM9cXI7ZWxzZSBpZihxcj5fdC53Yml0cyl7d3Qu'@; put 'bXNnPSJpbnZhbGlkIHdpbmRvdyBzaXplIixfdC5tb2RlPTMwO2JyZWFrfV90LmRtYXg9MTw8cXIsd3QuYWRsZXI9X3QuY2hlY2s9MSxfdC5tb2RlPTUxMiZwdD8xMDoxMixwdD0wLFl0PTA7YnJlYWs7Y2FzZSAyOmZvcig7WXQ8MTY7KXtpZigwPT09UXQpYnJlYWsgZTtRdC0tLHB0Kz1OdFty'@; put 'dCsrXTw8WXQsWXQrPTh9aWYoX3QuZmxhZ3M9cHQsOCE9KDI1NSZfdC5mbGFncykpe3d0Lm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLF90Lm1vZGU9MzA7YnJlYWt9aWYoNTczNDQmX3QuZmxhZ3Mpe3d0Lm1zZz0idW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0IixfdC5tb2RlPTMw'@; put 'O2JyZWFrfV90LmhlYWQmJihfdC5oZWFkLnRleHQ9cHQ+PjgmMSksNTEyJl90LmZsYWdzJiYoeHJbMF09MjU1JnB0LHhyWzFdPXB0Pj4+OCYyNTUsX3QuY2hlY2s9ayhfdC5jaGVjayx4ciwyLDApKSxwdD0wLFl0PTAsX3QubW9kZT0zO2Nhc2UgMzpmb3IoO1l0PDMyOyl7aWYoMD09PVF0KWJy'@; put 'ZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fV90LmhlYWQmJihfdC5oZWFkLnRpbWU9cHQpLDUxMiZfdC5mbGFncyYmKHhyWzBdPTI1NSZwdCx4clsxXT1wdD4+PjgmMjU1LHhyWzJdPXB0Pj4+MTYmMjU1LHhyWzNdPXB0Pj4+MjQmMjU1LF90LmNoZWNrPWsoX3QuY2hlY2sseHIs'@; put 'NCwwKSkscHQ9MCxZdD0wLF90Lm1vZGU9NDtjYXNlIDQ6Zm9yKDtZdDwxNjspe2lmKDA9PT1RdClicmVhayBlO1F0LS0scHQrPU50W3J0KytdPDxZdCxZdCs9OH1fdC5oZWFkJiYoX3QuaGVhZC54ZmxhZ3M9MjU1JnB0LF90LmhlYWQub3M9cHQ+PjgpLDUxMiZfdC5mbGFncyYmKHhyWzBdPTI1'@; put 'NSZwdCx4clsxXT1wdD4+PjgmMjU1LF90LmNoZWNrPWsoX3QuY2hlY2sseHIsMiwwKSkscHQ9MCxZdD0wLF90Lm1vZGU9NTtjYXNlIDU6aWYoMTAyNCZfdC5mbGFncyl7Zm9yKDtZdDwxNjspe2lmKDA9PT1RdClicmVhayBlO1F0LS0scHQrPU50W3J0KytdPDxZdCxZdCs9OH1fdC5sZW5ndGg9'@; put 'cHQsX3QuaGVhZCYmKF90LmhlYWQuZXh0cmFfbGVuPXB0KSw1MTImX3QuZmxhZ3MmJih4clswXT0yNTUmcHQseHJbMV09cHQ+Pj44JjI1NSxfdC5jaGVjaz1rKF90LmNoZWNrLHhyLDIsMCkpLHB0PTAsWXQ9MH1lbHNlIF90LmhlYWQmJihfdC5oZWFkLmV4dHJhPW51bGwpO190Lm1vZGU9Njtj'@; put 'YXNlIDY6aWYoMTAyNCZfdC5mbGFncyYmKCh5bj1fdC5sZW5ndGgpPlF0JiYoeW49UXQpLHluJiYoX3QuaGVhZCYmKHFyPV90LmhlYWQuZXh0cmFfbGVuLV90Lmxlbmd0aCxfdC5oZWFkLmV4dHJhfHwoX3QuaGVhZC5leHRyYT1uZXcgQXJyYXkoX3QuaGVhZC5leHRyYV9sZW4pKSxLLmFycmF5'@; put 'U2V0KF90LmhlYWQuZXh0cmEsTnQscnQseW4scXIpKSw1MTImX3QuZmxhZ3MmJihfdC5jaGVjaz1rKF90LmNoZWNrLE50LHluLHJ0KSksUXQtPXluLHJ0Kz15bixfdC5sZW5ndGgtPXluKSxfdC5sZW5ndGgpKWJyZWFrIGU7X3QubGVuZ3RoPTAsX3QubW9kZT03O2Nhc2UgNzppZigyMDQ4Jl90'@; put 'LmZsYWdzKXtpZigwPT09UXQpYnJlYWsgZTt5bj0wO2Rve3FyPU50W3J0K3luKytdLF90LmhlYWQmJnFyJiZfdC5sZW5ndGg8NjU1MzYmJihfdC5oZWFkLm5hbWUrPVN0cmluZy5mcm9tQ2hhckNvZGUocXIpKX13aGlsZShxciYmeW48UXQpO2lmKDUxMiZfdC5mbGFncyYmKF90LmNoZWNrPWso'@; put 'X3QuY2hlY2ssTnQseW4scnQpKSxRdC09eW4scnQrPXluLHFyKWJyZWFrIGV9ZWxzZSBfdC5oZWFkJiYoX3QuaGVhZC5uYW1lPW51bGwpO190Lmxlbmd0aD0wLF90Lm1vZGU9ODtjYXNlIDg6aWYoNDA5NiZfdC5mbGFncyl7aWYoMD09PVF0KWJyZWFrIGU7eW49MDtkb3txcj1OdFtydCt5bisr'@; put 'XSxfdC5oZWFkJiZxciYmX3QubGVuZ3RoPDY1NTM2JiYoX3QuaGVhZC5jb21tZW50Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKHFyKSl9d2hpbGUocXImJnluPFF0KTtpZig1MTImX3QuZmxhZ3MmJihfdC5jaGVjaz1rKF90LmNoZWNrLE50LHluLHJ0KSksUXQtPXluLHJ0Kz15bixxcilicmVhayBl'@; put 'fWVsc2UgX3QuaGVhZCYmKF90LmhlYWQuY29tbWVudD1udWxsKTtfdC5tb2RlPTk7Y2FzZSA5OmlmKDUxMiZfdC5mbGFncyl7Zm9yKDtZdDwxNjspe2lmKDA9PT1RdClicmVhayBlO1F0LS0scHQrPU50W3J0KytdPDxZdCxZdCs9OH1pZihwdCE9PSg2NTUzNSZfdC5jaGVjaykpe3d0Lm1zZz0i'@; put 'aGVhZGVyIGNyYyBtaXNtYXRjaCIsX3QubW9kZT0zMDticmVha31wdD0wLFl0PTB9X3QuaGVhZCYmKF90LmhlYWQuaGNyYz1fdC5mbGFncz4+OSYxLF90LmhlYWQuZG9uZT0hMCksd3QuYWRsZXI9X3QuY2hlY2s9MCxfdC5tb2RlPTEyO2JyZWFrO2Nhc2UgMTA6Zm9yKDtZdDwzMjspe2lmKDA9'@; put 'PT1RdClicmVhayBlO1F0LS0scHQrPU50W3J0KytdPDxZdCxZdCs9OH13dC5hZGxlcj1fdC5jaGVjaz11dChwdCkscHQ9MCxZdD0wLF90Lm1vZGU9MTE7Y2FzZSAxMTppZigwPT09X3QuaGF2ZWRpY3QpcmV0dXJuIHd0Lm5leHRfb3V0PUl0LHd0LmF2YWlsX291dD1EdCx3dC5uZXh0X2luPXJ0'@; put 'LHd0LmF2YWlsX2luPVF0LF90LmhvbGQ9cHQsX3QuYml0cz1ZdCwyO3d0LmFkbGVyPV90LmNoZWNrPTEsX3QubW9kZT0xMjtjYXNlIDEyOmlmKDU9PT1YdHx8Nj09PVh0KWJyZWFrIGU7Y2FzZSAxMzppZihfdC5sYXN0KXtwdD4+Pj03Jll0LFl0LT03Jll0LF90Lm1vZGU9Mjc7YnJlYWt9Zm9y'@; put 'KDtZdDwzOyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fXN3aXRjaChfdC5sYXN0PTEmcHQsWXQtPTEsMyYocHQ+Pj49MSkpe2Nhc2UgMDpfdC5tb2RlPTE0O2JyZWFrO2Nhc2UgMTppZigkbihfdCksX3QubW9kZT0yMCw2PT09WHQpe3B0Pj4+PTIsWXQt'@; put 'PTI7YnJlYWsgZX1icmVhaztjYXNlIDI6X3QubW9kZT0xNzticmVhaztjYXNlIDM6d3QubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLF90Lm1vZGU9MzB9cHQ+Pj49MixZdC09MjticmVhaztjYXNlIDE0OmZvcihwdD4+Pj03Jll0LFl0LT03Jll0O1l0PDMyOyl7aWYoMD09PVF0KWJyZWFrIGU7'@; put 'UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fWlmKCg2NTUzNSZwdCkhPShwdD4+PjE2XjY1NTM1KSl7d3QubXNnPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIixfdC5tb2RlPTMwO2JyZWFrfWlmKF90Lmxlbmd0aD02NTUzNSZwdCxwdD0wLFl0PTAsX3QubW9kZT0xNSw2PT09WHQp'@; put 'YnJlYWsgZTtjYXNlIDE1Ol90Lm1vZGU9MTY7Y2FzZSAxNjppZih5bj1fdC5sZW5ndGgpe2lmKHluPlF0JiYoeW49UXQpLHluPkR0JiYoeW49RHQpLDA9PT15bilicmVhayBlO0suYXJyYXlTZXQobW4sTnQscnQseW4sSXQpLFF0LT15bixydCs9eW4sRHQtPXluLEl0Kz15bixfdC5sZW5ndGgt'@; put 'PXluO2JyZWFrfV90Lm1vZGU9MTI7YnJlYWs7Y2FzZSAxNzpmb3IoO1l0PDE0Oyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fWlmKF90Lm5sZW49MjU3KygzMSZwdCksWXQtPTUsX3QubmRpc3Q9MSsoMzEmKHB0Pj4+PTUpKSxZdC09NSxfdC5uY29kZT00'@; put 'KygxNSYocHQ+Pj49NSkpLHB0Pj4+PTQsWXQtPTQsX3Qubmxlbj4yODZ8fF90Lm5kaXN0PjMwKXt3dC5tc2c9InRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzIixfdC5tb2RlPTMwO2JyZWFrfV90LmhhdmU9MCxfdC5tb2RlPTE4O2Nhc2UgMTg6Zm9yKDtfdC5oYXZlPF90Lm5j'@; put 'b2RlOyl7Zm9yKDtZdDwzOyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fV90LmxlbnNbbm9bX3QuaGF2ZSsrXV09NyZwdCxwdD4+Pj0zLFl0LT0zfWZvcig7X3QuaGF2ZTwxOTspX3QubGVuc1tub1tfdC5oYXZlKytdXT0wO2lmKF90LmxlbmNvZGU9X3Qu'@; put 'bGVuZHluLF90LmxlbmJpdHM9NyxnaT1qKDAsX3QubGVucywwLDE5LF90LmxlbmNvZGUsMCxfdC53b3JrLFVpPXtiaXRzOl90LmxlbmJpdHN9KSxfdC5sZW5iaXRzPVVpLmJpdHMsZ2kpe3d0Lm1zZz0iaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0IixfdC5tb2RlPTMwO2JyZWFrfV90LmhhdmU9'@; put 'MCxfdC5tb2RlPTE5O2Nhc2UgMTk6Zm9yKDtfdC5oYXZlPF90Lm5sZW4rX3QubmRpc3Q7KXtmb3IoOyR0PShCbj1fdC5sZW5jb2RlW3B0JigxPDxfdC5sZW5iaXRzKS0xXSk+Pj4xNiYyNTUsRm49NjU1MzUmQm4sISgoUm49Qm4+Pj4yNCk8PVl0KTspe2lmKDA9PT1RdClicmVhayBlO1F0LS0s'@; put 'cHQrPU50W3J0KytdPDxZdCxZdCs9OH1pZihGbjwxNilwdD4+Pj1SbixZdC09Um4sX3QubGVuc1tfdC5oYXZlKytdPUZuO2Vsc2V7aWYoMTY9PT1Gbil7Zm9yKEtyPVJuKzI7WXQ8S3I7KXtpZigwPT09UXQpYnJlYWsgZTtRdC0tLHB0Kz1OdFtydCsrXTw8WXQsWXQrPTh9aWYocHQ+Pj49Um4s'@; put 'WXQtPVJuLDA9PT1fdC5oYXZlKXt3dC5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLF90Lm1vZGU9MzA7YnJlYWt9cXI9X3QubGVuc1tfdC5oYXZlLTFdLHluPTMrKDMmcHQpLHB0Pj4+PTIsWXQtPTJ9ZWxzZSBpZigxNz09PUZuKXtmb3IoS3I9Um4rMztZdDxLcjspe2lmKDA9PT1R'@; put 'dClicmVhayBlO1F0LS0scHQrPU50W3J0KytdPDxZdCxZdCs9OH1ZdC09Um4scXI9MCx5bj0zKyg3JihwdD4+Pj1SbikpLHB0Pj4+PTMsWXQtPTN9ZWxzZXtmb3IoS3I9Um4rNztZdDxLcjspe2lmKDA9PT1RdClicmVhayBlO1F0LS0scHQrPU50W3J0KytdPDxZdCxZdCs9OH1ZdC09Um4scXI9'@; put 'MCx5bj0xMSsoMTI3JihwdD4+Pj1SbikpLHB0Pj4+PTcsWXQtPTd9aWYoX3QuaGF2ZSt5bj5fdC5ubGVuK190Lm5kaXN0KXt3dC5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLF90Lm1vZGU9MzA7YnJlYWt9Zm9yKDt5bi0tOylfdC5sZW5zW190LmhhdmUrK109cXJ9fWlmKDMwPT09'@; put 'X3QubW9kZSlicmVhaztpZigwPT09X3QubGVuc1syNTZdKXt3dC5tc2c9ImludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayIsX3QubW9kZT0zMDticmVha31pZihfdC5sZW5iaXRzPTksZ2k9aigxLF90LmxlbnMsMCxfdC5ubGVuLF90LmxlbmNvZGUsMCxfdC53b3JrLFVpPXti'@; put 'aXRzOl90LmxlbmJpdHN9KSxfdC5sZW5iaXRzPVVpLmJpdHMsZ2kpe3d0Lm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0IixfdC5tb2RlPTMwO2JyZWFrfWlmKF90LmRpc3RiaXRzPTYsX3QuZGlzdGNvZGU9X3QuZGlzdGR5bixnaT1qKDIsX3QubGVucyxfdC5ubGVuLF90Lm5kaXN0'@; put 'LF90LmRpc3Rjb2RlLDAsX3Qud29yayxVaT17Yml0czpfdC5kaXN0Yml0c30pLF90LmRpc3RiaXRzPVVpLmJpdHMsZ2kpe3d0Lm1zZz0iaW52YWxpZCBkaXN0YW5jZXMgc2V0IixfdC5tb2RlPTMwO2JyZWFrfWlmKF90Lm1vZGU9MjAsNj09PVh0KWJyZWFrIGU7Y2FzZSAyMDpfdC5tb2RlPTIx'@; put 'O2Nhc2UgMjE6aWYoUXQ+PTYmJkR0Pj0yNTgpe3d0Lm5leHRfb3V0PUl0LHd0LmF2YWlsX291dD1EdCx3dC5uZXh0X2luPXJ0LHd0LmF2YWlsX2luPVF0LF90LmhvbGQ9cHQsX3QuYml0cz1ZdCxFKHd0LHp0KSxJdD13dC5uZXh0X291dCxtbj13dC5vdXRwdXQsRHQ9d3QuYXZhaWxfb3V0LHJ0'@; put 'PXd0Lm5leHRfaW4sTnQ9d3QuaW5wdXQsUXQ9d3QuYXZhaWxfaW4scHQ9X3QuaG9sZCxZdD1fdC5iaXRzLDEyPT09X3QubW9kZSYmKF90LmJhY2s9LTEpO2JyZWFrfWZvcihfdC5iYWNrPTA7JHQ9KEJuPV90LmxlbmNvZGVbcHQmKDE8PF90LmxlbmJpdHMpLTFdKT4+PjE2JjI1NSxGbj02NTUz'@; put 'NSZCbiwhKChSbj1Cbj4+PjI0KTw9WXQpOyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fWlmKCR0JiYhKDI0MCYkdCkpe2ZvcihuaT1Sbixsbj0kdCxqbj1GbjskdD0oQm49X3QubGVuY29kZVtqbisoKHB0JigxPDxuaStsbiktMSk+Pm5pKV0pPj4+MTYm'@; put 'MjU1LEZuPTY1NTM1JkJuLCEobmkrKFJuPUJuPj4+MjQpPD1ZdCk7KXtpZigwPT09UXQpYnJlYWsgZTtRdC0tLHB0Kz1OdFtydCsrXTw8WXQsWXQrPTh9cHQ+Pj49bmksWXQtPW5pLF90LmJhY2srPW5pfWlmKHB0Pj4+PVJuLFl0LT1SbixfdC5iYWNrKz1SbixfdC5sZW5ndGg9Rm4sMD09PSR0'@; put 'KXtfdC5tb2RlPTI2O2JyZWFrfWlmKDMyJiR0KXtfdC5iYWNrPS0xLF90Lm1vZGU9MTI7YnJlYWt9aWYoNjQmJHQpe3d0Lm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixfdC5tb2RlPTMwO2JyZWFrfV90LmV4dHJhPTE1JiR0LF90Lm1vZGU9MjI7Y2FzZSAyMjppZihfdC5leHRy'@; put 'YSl7Zm9yKEtyPV90LmV4dHJhO1l0PEtyOyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fV90Lmxlbmd0aCs9cHQmKDE8PF90LmV4dHJhKS0xLHB0Pj4+PV90LmV4dHJhLFl0LT1fdC5leHRyYSxfdC5iYWNrKz1fdC5leHRyYX1fdC53YXM9X3QubGVuZ3Ro'@; put 'LF90Lm1vZGU9MjM7Y2FzZSAyMzpmb3IoOyR0PShCbj1fdC5kaXN0Y29kZVtwdCYoMTw8X3QuZGlzdGJpdHMpLTFdKT4+PjE2JjI1NSxGbj02NTUzNSZCbiwhKChSbj1Cbj4+PjI0KTw9WXQpOyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fWlmKCEoMjQw'@; put 'JiR0KSl7Zm9yKG5pPVJuLGxuPSR0LGpuPUZuOyR0PShCbj1fdC5kaXN0Y29kZVtqbisoKHB0JigxPDxuaStsbiktMSk+Pm5pKV0pPj4+MTYmMjU1LEZuPTY1NTM1JkJuLCEobmkrKFJuPUJuPj4+MjQpPD1ZdCk7KXtpZigwPT09UXQpYnJlYWsgZTtRdC0tLHB0Kz1OdFtydCsrXTw8WXQsWXQr'@; put 'PTh9cHQ+Pj49bmksWXQtPW5pLF90LmJhY2srPW5pfWlmKHB0Pj4+PVJuLFl0LT1SbixfdC5iYWNrKz1Sbiw2NCYkdCl7d3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLF90Lm1vZGU9MzA7YnJlYWt9X3Qub2Zmc2V0PUZuLF90LmV4dHJhPTE1JiR0LF90Lm1vZGU9MjQ7Y2FzZSAyNDpp'@; put 'ZihfdC5leHRyYSl7Zm9yKEtyPV90LmV4dHJhO1l0PEtyOyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fV90Lm9mZnNldCs9cHQmKDE8PF90LmV4dHJhKS0xLHB0Pj4+PV90LmV4dHJhLFl0LT1fdC5leHRyYSxfdC5iYWNrKz1fdC5leHRyYX1pZihfdC5v'@; put 'ZmZzZXQ+X3QuZG1heCl7d3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsX3QubW9kZT0zMDticmVha31fdC5tb2RlPTI1O2Nhc2UgMjU6aWYoMD09PUR0KWJyZWFrIGU7aWYoX3Qub2Zmc2V0Pih5bj16dC1EdCkpe2lmKCh5bj1fdC5vZmZzZXQteW4pPl90LndoYXZlJiZf'@; put 'dC5zYW5lKXt3dC5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixfdC5tb2RlPTMwO2JyZWFrfXhuPXluPl90LnduZXh0P190LndzaXplLSh5bi09X3Qud25leHQpOl90LnduZXh0LXluLHluPl90Lmxlbmd0aCYmKHluPV90Lmxlbmd0aCksc249X3Qud2luZG93fWVsc2Ugc249'@; put 'bW4seG49SXQtX3Qub2Zmc2V0LHluPV90Lmxlbmd0aDt5bj5EdCYmKHluPUR0KSxEdC09eW4sX3QubGVuZ3RoLT15bjtkb3ttbltJdCsrXT1zblt4bisrXX13aGlsZSgtLXluKTswPT09X3QubGVuZ3RoJiYoX3QubW9kZT0yMSk7YnJlYWs7Y2FzZSAyNjppZigwPT09RHQpYnJlYWsgZTttbltJ'@; put 'dCsrXT1fdC5sZW5ndGgsRHQtLSxfdC5tb2RlPTIxO2JyZWFrO2Nhc2UgMjc6aWYoX3Qud3JhcCl7Zm9yKDtZdDwzMjspe2lmKDA9PT1RdClicmVhayBlO1F0LS0scHR8PU50W3J0KytdPDxZdCxZdCs9OH1pZih3dC50b3RhbF9vdXQrPXp0LT1EdCxfdC50b3RhbCs9enQsenQmJih3dC5hZGxl'@; put 'cj1fdC5jaGVjaz1fdC5mbGFncz9rKF90LmNoZWNrLG1uLHp0LEl0LXp0KTpJKF90LmNoZWNrLG1uLHp0LEl0LXp0KSksenQ9RHQsKF90LmZsYWdzP3B0OnV0KHB0KSkhPT1fdC5jaGVjayl7d3QubXNnPSJpbmNvcnJlY3QgZGF0YSBjaGVjayIsX3QubW9kZT0zMDticmVha31wdD0wLFl0PTB9'@; put 'X3QubW9kZT0yODtjYXNlIDI4OmlmKF90LndyYXAmJl90LmZsYWdzKXtmb3IoO1l0PDMyOyl7aWYoMD09PVF0KWJyZWFrIGU7UXQtLSxwdCs9TnRbcnQrK108PFl0LFl0Kz04fWlmKHB0IT09KDQyOTQ5NjcyOTUmX3QudG90YWwpKXt3dC5tc2c9ImluY29ycmVjdCBsZW5ndGggY2hlY2siLF90'@; put 'Lm1vZGU9MzA7YnJlYWt9cHQ9MCxZdD0wfV90Lm1vZGU9Mjk7Y2FzZSAyOTpnaT0xO2JyZWFrIGU7Y2FzZSAzMDpnaT0tMzticmVhayBlO2Nhc2UgMzE6cmV0dXJuLTQ7ZGVmYXVsdDpyZXR1cm4gc2V9cmV0dXJuIHd0Lm5leHRfb3V0PUl0LHd0LmF2YWlsX291dD1EdCx3dC5uZXh0X2luPXJ0'@; put 'LHd0LmF2YWlsX2luPVF0LF90LmhvbGQ9cHQsX3QuYml0cz1ZdCwoX3Qud3NpemV8fHp0IT09d3QuYXZhaWxfb3V0JiZfdC5tb2RlPDMwJiYoX3QubW9kZTwyN3x8NCE9PVh0KSkmJmZ1bmN0aW9uIEhuKHd0LFh0LF90LE50KXt2YXIgbW4scnQ9d3Quc3RhdGU7cmV0dXJuIG51bGw9PT1ydC53'@; put 'aW5kb3cmJihydC53c2l6ZT0xPDxydC53Yml0cyxydC53bmV4dD0wLHJ0LndoYXZlPTAscnQud2luZG93PW5ldyBLLkJ1ZjgocnQud3NpemUpKSxOdD49cnQud3NpemU/KEsuYXJyYXlTZXQocnQud2luZG93LFh0LF90LXJ0LndzaXplLHJ0LndzaXplLDApLHJ0LnduZXh0PTAscnQud2hhdmU9'@; put 'cnQud3NpemUpOigobW49cnQud3NpemUtcnQud25leHQpPk50JiYobW49TnQpLEsuYXJyYXlTZXQocnQud2luZG93LFh0LF90LU50LG1uLHJ0LnduZXh0KSwoTnQtPW1uKT8oSy5hcnJheVNldChydC53aW5kb3csWHQsX3QtTnQsTnQsMCkscnQud25leHQ9TnQscnQud2hhdmU9cnQud3NpemUp'@; put 'OihydC53bmV4dCs9bW4scnQud25leHQ9PT1ydC53c2l6ZSYmKHJ0LnduZXh0PTApLHJ0LndoYXZlPHJ0LndzaXplJiYocnQud2hhdmUrPW1uKSkpLDB9KHd0LHd0Lm91dHB1dCx3dC5uZXh0X291dCx6dC13dC5hdmFpbF9vdXQpPyhfdC5tb2RlPTMxLC00KTooenQtPXd0LmF2YWlsX291dCx3'@; put 'dC50b3RhbF9pbis9SW4tPXd0LmF2YWlsX2luLHd0LnRvdGFsX291dCs9enQsX3QudG90YWwrPXp0LF90LndyYXAmJnp0JiYod3QuYWRsZXI9X3QuY2hlY2s9X3QuZmxhZ3M/ayhfdC5jaGVjayxtbix6dCx3dC5uZXh0X291dC16dCk6SShfdC5jaGVjayxtbix6dCx3dC5uZXh0X291dC16dCkp'@; put 'LHd0LmRhdGFfdHlwZT1fdC5iaXRzKyhfdC5sYXN0PzY0OjApKygxMj09PV90Lm1vZGU/MTI4OjApKygyMD09PV90Lm1vZGV8fDE1PT09X3QubW9kZT8yNTY6MCksKDA9PT1JbiYmMD09PXp0fHw0PT09WHQpJiZnaT09PWVlJiYoZ2k9LTUpLGdpKX0sei5pbmZsYXRlRW5kPWZ1bmN0aW9uIGZu'@; put 'KHd0KXtpZighd3R8fCF3dC5zdGF0ZSlyZXR1cm4gc2U7dmFyIFh0PXd0LnN0YXRlO3JldHVybiBYdC53aW5kb3cmJihYdC53aW5kb3c9bnVsbCksd3Quc3RhdGU9bnVsbCxlZX0sei5pbmZsYXRlR2V0SGVhZGVyPWZ1bmN0aW9uIGhuKHd0LFh0KXt2YXIgX3Q7cmV0dXJuIHd0JiZ3dC5zdGF0'@; put 'ZSYmMiYoX3Q9d3Quc3RhdGUpLndyYXA/KF90LmhlYWQ9WHQsWHQuZG9uZT0hMSxlZSk6c2V9LHouaW5mbGF0ZUluZm89InBha28gaW5mbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6MjcsIi4vYWRsZXIzMiI6MjksIi4vY3JjMzIiOjMxLCIuL2luZmZh'@; put 'c3QiOjM0LCIuL2luZnRyZWVzIjozNn1dLDM2OltmdW5jdGlvbihPLFIseil7InVzZSBzdHJpY3QiO3ZhciBLPU8oIi4uL3V0aWxzL2NvbW1vbiIpLFk9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1'@; put 'LDIyNywyNTgsMCwwXSxYPVsxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNywxNywxNywxNywxOCwxOCwxOCwxOCwxOSwxOSwxOSwxOSwyMCwyMCwyMCwyMCwyMSwyMSwyMSwyMSwxNiw3Miw3OF0sVT1bMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUs'@; put 'NTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3LDAsMF0scT1bMTYsMTYsMTYsMTYsMTcsMTcsMTgsMTgsMTksMTksMjAsMjAsMjEsMjEsMjIsMjIsMjMsMjMsMjQsMjQsMjUsMjUsMjYsMjYsMjcsMjcsMjgsMjgsMjksMjksNjQsNjRd'@; put 'O1IuZXhwb3J0cz1mdW5jdGlvbih0ZSxvZSxzZSxoZSx1ZSxjZSxHLGIpe3ZhciBkZSxmZSx4ZSxMZSxGZSxXZSxQZSxiZSxBZSxEPWIuYml0cyxIPTAsTj0wLGc9MCxDPTAsUz0wLHY9MCxwPTAsdz0wLEo9MCxuZT0wLE9lPW51bGwsamU9MCxLZT1uZXcgSy5CdWYxNigxNiksWWU9bmV3IEsu'@; put 'QnVmMTYoMTYpLFFlPW51bGwsbHQ9MDtmb3IoSD0wO0g8PTE1O0grKylLZVtIXT0wO2ZvcihOPTA7TjxoZTtOKyspS2Vbb2Vbc2UrTl1dKys7Zm9yKFM9RCxDPTE1O0M+PTEmJjA9PT1LZVtDXTtDLS0pO2lmKFM+QyYmKFM9QyksMD09PUMpcmV0dXJuIHVlW2NlKytdPTIwOTcxNTIwLHVlW2Nl'@; put 'KytdPTIwOTcxNTIwLGIuYml0cz0xLDA7Zm9yKGc9MTtnPEMmJjA9PT1LZVtnXTtnKyspO2ZvcihTPGcmJihTPWcpLHc9MSxIPTE7SDw9MTU7SCsrKWlmKHc8PD0xLCh3LT1LZVtIXSk8MClyZXR1cm4tMTtpZih3PjAmJigwPT09dGV8fDEhPT1DKSlyZXR1cm4tMTtmb3IoWWVbMV09MCxIPTE7'@; put 'SDwxNTtIKyspWWVbSCsxXT1ZZVtIXStLZVtIXTtmb3IoTj0wO048aGU7TisrKTAhPT1vZVtzZStOXSYmKEdbWWVbb2Vbc2UrTl1dKytdPU4pO2lmKDA9PT10ZT8oT2U9UWU9RyxXZT0xOSk6MT09PXRlPyhPZT1ZLGplLT0yNTcsUWU9WCxsdC09MjU3LFdlPTI1Nik6KE9lPVUsUWU9cSxXZT0t'@; put 'MSksbmU9MCxOPTAsSD1nLEZlPWNlLHY9UyxwPTAseGU9LTEsTGU9KEo9MTw8UyktMSwxPT09dGUmJko+ODUyfHwyPT09dGUmJko+NTkyKXJldHVybiAxO2Zvcig7Oyl7UGU9SC1wLEdbTl08V2U/KGJlPTAsQWU9R1tOXSk6R1tOXT5XZT8oYmU9UWVbbHQrR1tOXV0sQWU9T2VbamUrR1tOXV0p'@; put 'OihiZT05NixBZT0wKSxkZT0xPDxILXAsZz1mZT0xPDx2O2Rve3VlW0ZlKyhuZT4+cCkrKGZlLT1kZSldPVBlPDwyNHxiZTw8MTZ8QWV8MH13aGlsZSgwIT09ZmUpO2ZvcihkZT0xPDxILTE7bmUmZGU7KWRlPj49MTtpZigwIT09ZGU/KG5lJj1kZS0xLG5lKz1kZSk6bmU9MCxOKyssMD09LS1L'@; put 'ZVtIXSl7aWYoSD09PUMpYnJlYWs7SD1vZVtzZStHW05dXX1pZihIPlMmJihuZSZMZSkhPT14ZSl7Zm9yKDA9PT1wJiYocD1TKSxGZSs9Zyx3PTE8PCh2PUgtcCk7ditwPEMmJiEoKHctPUtlW3YrcF0pPD0wKTspdisrLHc8PD0xO2lmKEorPTE8PHYsMT09PXRlJiZKPjg1Mnx8Mj09PXRlJiZK'@; put 'PjU5MilyZXR1cm4gMTt1ZVt4ZT1uZSZMZV09Uzw8MjR8djw8MTZ8RmUtY2V8MH19cmV0dXJuIDAhPT1uZSYmKHVlW0ZlK25lXT1ILXA8PDI0fDY0PDwxNnwwKSxiLmJpdHM9UywwfX0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzc6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7Ui5l'@; put 'eHBvcnRzPXsyOiJuZWVkIGRpY3Rpb25hcnkiLDE6InN0cmVhbSBlbmQiLDA6IiIsIi0xIjoiZmlsZSBlcnJvciIsIi0yIjoic3RyZWFtIGVycm9yIiwiLTMiOiJkYXRhIGVycm9yIiwiLTQiOiJpbnN1ZmZpY2llbnQgbWVtb3J5IiwiLTUiOiJidWZmZXIgZXJyb3IiLCItNiI6ImluY29tcGF0'@; put 'aWJsZSB2ZXJzaW9uIn19LHt9XSwzODpbZnVuY3Rpb24oTyxSLHopeyJ1c2Ugc3RyaWN0Ijt2YXIgSz1PKCIuLi91dGlscy9jb21tb24iKTtmdW5jdGlvbiBWKGZ0KXtmb3IodmFyIGZuPWZ0Lmxlbmd0aDstLWZuPj0wOylmdFtmbl09MH12YXIgY2U9MTUsRz0xNixDPVswLDAsMCwwLDAsMCww'@; put 'LDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDBdLFM9WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLHY9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddLHA9WzE2'@; put 'LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLEo9bmV3IEFycmF5KDU3Nik7VihKKTt2YXIgbmU9bmV3IEFycmF5KDYwKTtWKG5lKTt2YXIgZGU9bmV3IEFycmF5KDUxMik7VihkZSk7dmFyIGZlPW5ldyBBcnJheSgyNTYpO1YoZmUpO3ZhciB4ZT1uZXcgQXJy'@; put 'YXkoMjkpO1YoeGUpO3ZhciBMZT1uZXcgQXJyYXkoMzApO1YoTGUpO3ZhciBPZSxqZSxXZSxGZT1mdW5jdGlvbihmdCxmbixobix3dCxYdCl7dGhpcy5zdGF0aWNfdHJlZT1mdCx0aGlzLmV4dHJhX2JpdHM9Zm4sdGhpcy5leHRyYV9iYXNlPWhuLHRoaXMuZWxlbXM9d3QsdGhpcy5tYXhfbGVu'@; put 'Z3RoPVh0LHRoaXMuaGFzX3N0cmVlPWZ0JiZmdC5sZW5ndGh9LEtlPWZ1bmN0aW9uKGZ0LGZuKXt0aGlzLmR5bl90cmVlPWZ0LHRoaXMubWF4X2NvZGU9MCx0aGlzLnN0YXRfZGVzYz1mbn07ZnVuY3Rpb24gWWUoZnQpe3JldHVybiBmdDwyNTY/ZGVbZnRdOmRlWzI1NisoZnQ+Pj43KV19ZnVu'@; put 'Y3Rpb24gUWUoZnQsZm4pe2Z0LnBlbmRpbmdfYnVmW2Z0LnBlbmRpbmcrK109MjU1JmZuLGZ0LnBlbmRpbmdfYnVmW2Z0LnBlbmRpbmcrK109Zm4+Pj44JjI1NX1mdW5jdGlvbiBsdChmdCxmbixobil7ZnQuYmlfdmFsaWQ+Ry1obj8oZnQuYmlfYnVmfD1mbjw8ZnQuYmlfdmFsaWQmNjU1MzUs'@; put 'UWUoZnQsZnQuYmlfYnVmKSxmdC5iaV9idWY9Zm4+PkctZnQuYmlfdmFsaWQsZnQuYmlfdmFsaWQrPWhuLUcpOihmdC5iaV9idWZ8PWZuPDxmdC5iaV92YWxpZCY2NTUzNSxmdC5iaV92YWxpZCs9aG4pfWZ1bmN0aW9uIFBlKGZ0LGZuLGhuKXtsdChmdCxoblsyKmZuXSxoblsyKmZuKzFdKX1m'@; put 'dW5jdGlvbiBiZShmdCxmbil7dmFyIGhuPTA7ZG97aG58PTEmZnQsZnQ+Pj49MSxobjw8PTF9d2hpbGUoLS1mbj4wKTtyZXR1cm4gaG4+Pj4xfWZ1bmN0aW9uIHFlKGZ0LGZuLGhuKXt2YXIgX3QsTnQsd3Q9bmV3IEFycmF5KGNlKzEpLFh0PTA7Zm9yKF90PTE7X3Q8PWNlO190Kyspd3RbX3Rd'@; put 'PVh0PVh0K2huW190LTFdPDwxO2ZvcihOdD0wO050PD1mbjtOdCsrKXt2YXIgbW49ZnRbMipOdCsxXTswIT09bW4mJihmdFsyKk50XT1iZSh3dFttbl0rKyxtbikpfX1mdW5jdGlvbiBVZShmdCl7dmFyIGZuO2Zvcihmbj0wO2ZuPDI4NjtmbisrKWZ0LmR5bl9sdHJlZVsyKmZuXT0wO2Zvcihm'@; put 'bj0wO2ZuPDMwO2ZuKyspZnQuZHluX2R0cmVlWzIqZm5dPTA7Zm9yKGZuPTA7Zm48MTk7Zm4rKylmdC5ibF90cmVlWzIqZm5dPTA7ZnQuZHluX2x0cmVlWzUxMl09MSxmdC5vcHRfbGVuPWZ0LnN0YXRpY19sZW49MCxmdC5sYXN0X2xpdD1mdC5tYXRjaGVzPTB9ZnVuY3Rpb24gaHQoZnQpe2Z0'@; put 'LmJpX3ZhbGlkPjg/UWUoZnQsZnQuYmlfYnVmKTpmdC5iaV92YWxpZD4wJiYoZnQucGVuZGluZ19idWZbZnQucGVuZGluZysrXT1mdC5iaV9idWYpLGZ0LmJpX2J1Zj0wLGZ0LmJpX3ZhbGlkPTB9ZnVuY3Rpb24gRGUoZnQsZm4saG4sd3Qpe3ZhciBYdD0yKmZuLF90PTIqaG47cmV0dXJuIGZ0'@; put 'W1h0XTxmdFtfdF18fGZ0W1h0XT09PWZ0W190XSYmd3RbZm5dPD13dFtobl19ZnVuY3Rpb24gemUoZnQsZm4saG4pe2Zvcih2YXIgd3Q9ZnQuaGVhcFtobl0sWHQ9aG48PDE7WHQ8PWZ0LmhlYXBfbGVuJiYoWHQ8ZnQuaGVhcF9sZW4mJkRlKGZuLGZ0LmhlYXBbWHQrMV0sZnQuaGVhcFtYdF0s'@; put 'ZnQuZGVwdGgpJiZYdCsrLCFEZShmbix3dCxmdC5oZWFwW1h0XSxmdC5kZXB0aCkpOylmdC5oZWFwW2huXT1mdC5oZWFwW1h0XSxobj1YdCxYdDw8PTE7ZnQuaGVhcFtobl09d3R9ZnVuY3Rpb24gb3QoZnQsZm4saG4pe3ZhciB3dCxYdCxOdCxtbixfdD0wO2lmKDAhPT1mdC5sYXN0X2xpdClk'@; put 'b3t3dD1mdC5wZW5kaW5nX2J1ZltmdC5kX2J1ZisyKl90XTw8OHxmdC5wZW5kaW5nX2J1ZltmdC5kX2J1ZisyKl90KzFdLFh0PWZ0LnBlbmRpbmdfYnVmW2Z0LmxfYnVmK190XSxfdCsrLDA9PT13dD9QZShmdCxYdCxmbik6KFBlKGZ0LChOdD1mZVtYdF0pKzI1NisxLGZuKSwwIT09KG1uPUNb'@; put 'TnRdKSYmbHQoZnQsWHQtPXhlW050XSxtbiksUGUoZnQsTnQ9WWUoLS13dCksaG4pLDAhPT0obW49U1tOdF0pJiZsdChmdCx3dC09TGVbTnRdLG1uKSl9d2hpbGUoX3Q8ZnQubGFzdF9saXQpO1BlKGZ0LDI1Nixmbil9ZnVuY3Rpb24gdXQoZnQsZm4pe3ZhciBOdCxtbixJdCxobj1mbi5keW5f'@; put 'dHJlZSx3dD1mbi5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsWHQ9Zm4uc3RhdF9kZXNjLmhhc19zdHJlZSxfdD1mbi5zdGF0X2Rlc2MuZWxlbXMscnQ9LTE7Zm9yKGZ0LmhlYXBfbGVuPTAsZnQuaGVhcF9tYXg9NTczLE50PTA7TnQ8X3Q7TnQrKykwIT09aG5bMipOdF0/KGZ0LmhlYXBbKytmdC5o'@; put 'ZWFwX2xlbl09cnQ9TnQsZnQuZGVwdGhbTnRdPTApOmhuWzIqTnQrMV09MDtmb3IoO2Z0LmhlYXBfbGVuPDI7KWhuWzIqKEl0PWZ0LmhlYXBbKytmdC5oZWFwX2xlbl09cnQ8Mj8rK3J0OjApXT0xLGZ0LmRlcHRoW0l0XT0wLGZ0Lm9wdF9sZW4tLSxYdCYmKGZ0LnN0YXRpY19sZW4tPXd0WzIq'@; put 'SXQrMV0pO2Zvcihmbi5tYXhfY29kZT1ydCxOdD1mdC5oZWFwX2xlbj4+MTtOdD49MTtOdC0tKXplKGZ0LGhuLE50KTtJdD1fdDtkb3tOdD1mdC5oZWFwWzFdLGZ0LmhlYXBbMV09ZnQuaGVhcFtmdC5oZWFwX2xlbi0tXSx6ZShmdCxobiwxKSxtbj1mdC5oZWFwWzFdLGZ0LmhlYXBbLS1mdC5o'@; put 'ZWFwX21heF09TnQsZnQuaGVhcFstLWZ0LmhlYXBfbWF4XT1tbixoblsyKkl0XT1oblsyKk50XStoblsyKm1uXSxmdC5kZXB0aFtJdF09KGZ0LmRlcHRoW050XT49ZnQuZGVwdGhbbW5dP2Z0LmRlcHRoW050XTpmdC5kZXB0aFttbl0pKzEsaG5bMipOdCsxXT1oblsyKm1uKzFdPUl0LGZ0Lmhl'@; put 'YXBbMV09SXQrKyx6ZShmdCxobiwxKX13aGlsZShmdC5oZWFwX2xlbj49Mik7ZnQuaGVhcFstLWZ0LmhlYXBfbWF4XT1mdC5oZWFwWzFdLGZ1bmN0aW9uIFRlKGZ0LGZuKXt2YXIgSXQsUXQsRHQscHQsWXQsSW4saG49Zm4uZHluX3RyZWUsd3Q9Zm4ubWF4X2NvZGUsWHQ9Zm4uc3RhdF9kZXNj'@; put 'LnN0YXRpY190cmVlLF90PWZuLnN0YXRfZGVzYy5oYXNfc3RyZWUsTnQ9Zm4uc3RhdF9kZXNjLmV4dHJhX2JpdHMsbW49Zm4uc3RhdF9kZXNjLmV4dHJhX2Jhc2UscnQ9Zm4uc3RhdF9kZXNjLm1heF9sZW5ndGgsenQ9MDtmb3IocHQ9MDtwdDw9Y2U7cHQrKylmdC5ibF9jb3VudFtwdF09MDtm'@; put 'b3IoaG5bMipmdC5oZWFwW2Z0LmhlYXBfbWF4XSsxXT0wLEl0PWZ0LmhlYXBfbWF4KzE7SXQ8NTczO0l0KyspKHB0PWhuWzIqaG5bMiooUXQ9ZnQuaGVhcFtJdF0pKzFdKzFdKzEpPnJ0JiYocHQ9cnQsenQrKyksaG5bMipRdCsxXT1wdCwhKFF0Pnd0KSYmKGZ0LmJsX2NvdW50W3B0XSsrLFl0'@; put 'PTAsUXQ+PW1uJiYoWXQ9TnRbUXQtbW5dKSxmdC5vcHRfbGVuKz0oSW49aG5bMipRdF0pKihwdCtZdCksX3QmJihmdC5zdGF0aWNfbGVuKz1JbiooWHRbMipRdCsxXStZdCkpKTtpZigwIT09enQpe2Rve2ZvcihwdD1ydC0xOzA9PT1mdC5ibF9jb3VudFtwdF07KXB0LS07ZnQuYmxfY291bnRb'@; put 'cHRdLS0sZnQuYmxfY291bnRbcHQrMV0rPTIsZnQuYmxfY291bnRbcnRdLS0senQtPTJ9d2hpbGUoenQ+MCk7Zm9yKHB0PXJ0OzAhPT1wdDtwdC0tKWZvcihRdD1mdC5ibF9jb3VudFtwdF07MCE9PVF0OykhKChEdD1mdC5oZWFwWy0tSXRdKT53dCkmJihoblsyKkR0KzFdIT09cHQmJihmdC5v'@; put 'cHRfbGVuKz0ocHQtaG5bMipEdCsxXSkqaG5bMipEdF0saG5bMipEdCsxXT1wdCksUXQtLSl9fShmdCxmbikscWUoaG4scnQsZnQuYmxfY291bnQpfWZ1bmN0aW9uIE10KGZ0LGZuLGhuKXt2YXIgd3QsX3QsWHQ9LTEsTnQ9Zm5bMV0sbW49MCxydD03LEl0PTQ7Zm9yKDA9PT1OdCYmKHJ0PTEz'@; put 'OCxJdD0zKSxmblsyKihobisxKSsxXT02NTUzNSx3dD0wO3d0PD1objt3dCsrKV90PU50LE50PWZuWzIqKHd0KzEpKzFdLCEoKyttbjxydCYmX3Q9PT1OdCkmJihtbjxJdD9mdC5ibF90cmVlWzIqX3RdKz1tbjowIT09X3Q/KF90IT09WHQmJmZ0LmJsX3RyZWVbMipfdF0rKyxmdC5ibF90cmVl'@; put 'WzMyXSsrKTptbjw9MTA/ZnQuYmxfdHJlZVszNF0rKzpmdC5ibF90cmVlWzM2XSsrLG1uPTAsWHQ9X3QsMD09PU50PyhydD0xMzgsSXQ9Myk6X3Q9PT1OdD8ocnQ9NixJdD0zKToocnQ9NyxJdD00KSl9ZnVuY3Rpb24gSHQoZnQsZm4saG4pe3ZhciB3dCxfdCxYdD0tMSxOdD1mblsxXSxtbj0w'@; put 'LHJ0PTcsSXQ9NDtmb3IoMD09PU50JiYocnQ9MTM4LEl0PTMpLHd0PTA7d3Q8PWhuO3d0KyspaWYoX3Q9TnQsTnQ9Zm5bMiood3QrMSkrMV0sISgrK21uPHJ0JiZfdD09PU50KSl7aWYobW48SXQpZG97UGUoZnQsX3QsZnQuYmxfdHJlZSl9d2hpbGUoMCE9LS1tbik7ZWxzZSAwIT09X3Q/KF90'@; put 'IT09WHQmJihQZShmdCxfdCxmdC5ibF90cmVlKSxtbi0tKSxQZShmdCwxNixmdC5ibF90cmVlKSxsdChmdCxtbi0zLDIpKTptbjw9MTA/KFBlKGZ0LDE3LGZ0LmJsX3RyZWUpLGx0KGZ0LG1uLTMsMykpOihQZShmdCwxOCxmdC5ibF90cmVlKSxsdChmdCxtbi0xMSw3KSk7bW49MCxYdD1fdCww'@; put 'PT09TnQ/KHJ0PTEzOCxJdD0zKTpfdD09PU50PyhydD02LEl0PTMpOihydD03LEl0PTQpfX12YXIgVXQ9ITE7ZnVuY3Rpb24gV24oZnQsZm4saG4sd3Qpe2x0KGZ0LDArKHd0PzE6MCksMyksZnVuY3Rpb24gTWUoZnQsZm4saG4sd3Qpe2h0KGZ0KSx3dCYmKFFlKGZ0LGhuKSxRZShmdCx+aG4p'@; put 'KSxLLmFycmF5U2V0KGZ0LnBlbmRpbmdfYnVmLGZ0LndpbmRvdyxmbixobixmdC5wZW5kaW5nKSxmdC5wZW5kaW5nKz1obn0oZnQsZm4saG4sITApfXouX3RyX2luaXQ9ZnVuY3Rpb24gYm4oZnQpe1V0fHwoZnVuY3Rpb24gWGUoKXt2YXIgZnQsZm4saG4sd3QsWHQsX3Q9bmV3IEFycmF5KGNl'@; put 'KzEpO2Zvcihobj0wLHd0PTA7d3Q8Mjg7d3QrKylmb3IoeGVbd3RdPWhuLGZ0PTA7ZnQ8MTw8Q1t3dF07ZnQrKylmZVtobisrXT13dDtmb3IoZmVbaG4tMV09d3QsWHQ9MCx3dD0wO3d0PDE2O3d0KyspZm9yKExlW3d0XT1YdCxmdD0wO2Z0PDE8PFNbd3RdO2Z0KyspZGVbWHQrK109d3Q7Zm9y'@; put 'KFh0Pj49Nzt3dDwzMDt3dCsrKWZvcihMZVt3dF09WHQ8PDcsZnQ9MDtmdDwxPDxTW3d0XS03O2Z0KyspZGVbMjU2K1h0KytdPXd0O2Zvcihmbj0wO2ZuPD1jZTtmbisrKV90W2ZuXT0wO2ZvcihmdD0wO2Z0PD0xNDM7KUpbMipmdCsxXT04LGZ0KyssX3RbOF0rKztmb3IoO2Z0PD0yNTU7KUpb'@; put 'MipmdCsxXT05LGZ0KyssX3RbOV0rKztmb3IoO2Z0PD0yNzk7KUpbMipmdCsxXT03LGZ0KyssX3RbN10rKztmb3IoO2Z0PD0yODc7KUpbMipmdCsxXT04LGZ0KyssX3RbOF0rKztmb3IocWUoSiwyODcsX3QpLGZ0PTA7ZnQ8MzA7ZnQrKyluZVsyKmZ0KzFdPTUsbmVbMipmdF09YmUoZnQsNSk7'@; put 'T2U9bmV3IEZlKEosQywyNTcsMjg2LGNlKSxqZT1uZXcgRmUobmUsUywwLDMwLGNlKSxXZT1uZXcgRmUobmV3IEFycmF5KDApLHYsMCwxOSw3KX0oKSxVdD0hMCksZnQubF9kZXNjPW5ldyBLZShmdC5keW5fbHRyZWUsT2UpLGZ0LmRfZGVzYz1uZXcgS2UoZnQuZHluX2R0cmVlLGplKSxmdC5i'@; put 'bF9kZXNjPW5ldyBLZShmdC5ibF90cmVlLFdlKSxmdC5iaV9idWY9MCxmdC5iaV92YWxpZD0wLFVlKGZ0KX0sei5fdHJfc3RvcmVkX2Jsb2NrPVduLHouX3RyX2ZsdXNoX2Jsb2NrPWZ1bmN0aW9uICRuKGZ0LGZuLGhuLHd0KXt2YXIgWHQsX3QsTnQ9MDtmdC5sZXZlbD4wPygyPT09ZnQuc3Ry'@; put 'bS5kYXRhX3R5cGUmJihmdC5zdHJtLmRhdGFfdHlwZT1mdW5jdGlvbiBDbihmdCl7dmFyIGhuLGZuPTQwOTM2MjQ0NDc7Zm9yKGhuPTA7aG48PTMxO2huKyssZm4+Pj49MSlpZigxJmZuJiYwIT09ZnQuZHluX2x0cmVlWzIqaG5dKXJldHVybiAwO2lmKDAhPT1mdC5keW5fbHRyZWVbMThdfHww'@; put 'IT09ZnQuZHluX2x0cmVlWzIwXXx8MCE9PWZ0LmR5bl9sdHJlZVsyNl0pcmV0dXJuIDE7Zm9yKGhuPTMyO2huPDI1NjtobisrKWlmKDAhPT1mdC5keW5fbHRyZWVbMipobl0pcmV0dXJuIDE7cmV0dXJuIDB9KGZ0KSksdXQoZnQsZnQubF9kZXNjKSx1dChmdCxmdC5kX2Rlc2MpLE50PWZ1bmN0'@; put 'aW9uIFB0KGZ0KXt2YXIgZm47Zm9yKE10KGZ0LGZ0LmR5bl9sdHJlZSxmdC5sX2Rlc2MubWF4X2NvZGUpLE10KGZ0LGZ0LmR5bl9kdHJlZSxmdC5kX2Rlc2MubWF4X2NvZGUpLHV0KGZ0LGZ0LmJsX2Rlc2MpLGZuPTE4O2ZuPj0zJiYwPT09ZnQuYmxfdHJlZVsyKnBbZm5dKzFdO2ZuLS0pO3Jl'@; put 'dHVybiBmdC5vcHRfbGVuKz0zKihmbisxKSs1KzUrNCxmbn0oZnQpLChfdD1mdC5zdGF0aWNfbGVuKzMrNz4+PjMpPD0oWHQ9ZnQub3B0X2xlbiszKzc+Pj4zKSYmKFh0PV90KSk6WHQ9X3Q9aG4rNSxobis0PD1YdCYmLTEhPT1mbj9XbihmdCxmbixobix3dCk6ND09PWZ0LnN0cmF0ZWd5fHxf'@; put 'dD09PVh0PyhsdChmdCwyKyh3dD8xOjApLDMpLG90KGZ0LEosbmUpKToobHQoZnQsNCsod3Q/MTowKSwzKSxmdW5jdGlvbiBvbihmdCxmbixobix3dCl7dmFyIFh0O2ZvcihsdChmdCxmbi0yNTcsNSksbHQoZnQsaG4tMSw1KSxsdChmdCx3dC00LDQpLFh0PTA7WHQ8d3Q7WHQrKylsdChmdCxm'@; put 'dC5ibF90cmVlWzIqcFtYdF0rMV0sMyk7SHQoZnQsZnQuZHluX2x0cmVlLGZuLTEpLEh0KGZ0LGZ0LmR5bl9kdHJlZSxobi0xKX0oZnQsZnQubF9kZXNjLm1heF9jb2RlKzEsZnQuZF9kZXNjLm1heF9jb2RlKzEsTnQrMSksb3QoZnQsZnQuZHluX2x0cmVlLGZ0LmR5bl9kdHJlZSkpLFVlKGZ0'@; put 'KSx3dCYmaHQoZnQpfSx6Ll90cl90YWxseT1mdW5jdGlvbiBIbihmdCxmbixobil7cmV0dXJuIGZ0LnBlbmRpbmdfYnVmW2Z0LmRfYnVmKzIqZnQubGFzdF9saXRdPWZuPj4+OCYyNTUsZnQucGVuZGluZ19idWZbZnQuZF9idWYrMipmdC5sYXN0X2xpdCsxXT0yNTUmZm4sZnQucGVuZGluZ19i'@; put 'dWZbZnQubF9idWYrZnQubGFzdF9saXRdPTI1NSZobixmdC5sYXN0X2xpdCsrLDA9PT1mbj9mdC5keW5fbHRyZWVbMipobl0rKzooZnQubWF0Y2hlcysrLGZuLS0sZnQuZHluX2x0cmVlWzIqKGZlW2huXSsyNTYrMSldKyssZnQuZHluX2R0cmVlWzIqWWUoZm4pXSsrKSxmdC5sYXN0X2xpdD09'@; put 'PWZ0LmxpdF9idWZzaXplLTF9LHouX3RyX2FsaWduPWZ1bmN0aW9uIGVuKGZ0KXtsdChmdCwyLDMpLFBlKGZ0LDI1NixKKSxmdW5jdGlvbiBBZShmdCl7MTY9PT1mdC5iaV92YWxpZD8oUWUoZnQsZnQuYmlfYnVmKSxmdC5iaV9idWY9MCxmdC5iaV92YWxpZD0wKTpmdC5iaV92YWxpZD49OCYm'@; put 'KGZ0LnBlbmRpbmdfYnVmW2Z0LnBlbmRpbmcrK109MjU1JmZ0LmJpX2J1ZixmdC5iaV9idWY+Pj04LGZ0LmJpX3ZhbGlkLT04KX0oZnQpfX0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzk6W2Z1bmN0aW9uKE8sUix6KXsidXNlIHN0cmljdCI7Ui5leHBvcnRzPWZ1bmN0aW9uIEsoKXt0aGlz'@; put 'LmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90'@; put 'eXBlPTIsdGhpcy5hZGxlcj0wfX0se31dfSx7fSxbOV0pKDkpfSl9LDgzNDE3OihhdCxJZSxGKT0+eyFmdW5jdGlvbiB4KE0pe00udmVyc2lvbj0iMS4yMDIxMTEyMi4xIjt2YXIgTz0xMjAwLFI9MTI1Mjt0eXBlb2YgY3B0YWJsZT4idSImJih0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWwuY3B0'@; put 'YWJsZT1GKDgwNzg4KTp0eXBlb2Ygd2luZG93PCJ1IiYmKHdpbmRvdy5jcHRhYmxlPUYoODA3ODgpKSk7Zm9yKHZhciB6PVs4NzQsOTMyLDkzNiw5NDksOTUwLDFlNF0sSz0wO0s8PTg7KytLKXoucHVzaCgxMjUwK0spO3ZhciBJPXswOjEyNTIsMTo2NTAwMSwyOjY1MDAxLDc3OjFlNCwxMjg6'@; put 'OTMyLDEyOTo5NDksMTMwOjEzNjEsMTM0OjkzNiwxMzY6OTUwLDE2MToxMjUzLDE2MjoxMjU0LDE2MzoxMjU4LDE3NzoxMjU1LDE3ODoxMjU2LDE4NjoxMjU3LDIwNDoxMjUxLDIyMjo4NzQsMjM4OjEyNTAsMjU1OjEyNTIsNjk6Njk2OX0saz1mdW5jdGlvbih5KXstMSE9ei5pbmRleE9mKHkp'@; put 'JiYoUj1JWzBdPXkpfSxqPWZ1bmN0aW9uKHkpe089eSxrKHkpfTtmdW5jdGlvbiBWKCl7aigxMjAwKSxmdW5jdGlvbiBFKCl7aygxMjUyKX0oKX1mdW5jdGlvbiBCKHkpe2Zvcih2YXIgUD1bXSxMPTAsUT15Lmxlbmd0aDtMPFE7KytMKVBbTF09eS5jaGFyQ29kZUF0KEwpO3JldHVybiBQfXZh'@; put 'ciBVPWZ1bmN0aW9uKHkpe3ZhciBQPXkuY2hhckNvZGVBdCgwKSxMPXkuY2hhckNvZGVBdCgxKTtyZXR1cm4gMjU1PT1QJiYyNTQ9PUw/ZnVuY3Rpb24gWSh5KXtmb3IodmFyIFA9W10sTD0wO0w8eS5sZW5ndGg+PjE7KytMKVBbTF09U3RyaW5nLmZyb21DaGFyQ29kZSh5LmNoYXJDb2RlQXQo'@; put 'MipMKSsoeS5jaGFyQ29kZUF0KDIqTCsxKTw8OCkpO3JldHVybiBQLmpvaW4oIiIpfSh5LnNsaWNlKDIpKToyNTQ9PVAmJjI1NT09TD9mdW5jdGlvbiBYKHkpe2Zvcih2YXIgUD1bXSxMPTA7TDx5Lmxlbmd0aD4+MTsrK0wpUFtMXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHkuY2hhckNvZGVBdCgy'@; put 'KkwrMSkrKHkuY2hhckNvZGVBdCgyKkwpPDw4KSk7cmV0dXJuIFAuam9pbigiIil9KHkuc2xpY2UoMikpOjY1Mjc5PT1QP3kuc2xpY2UoMSk6eX0scT1mdW5jdGlvbihQKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShQKX0sZWU9ZnVuY3Rpb24oUCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hh'@; put 'ckNvZGUoUCl9O3R5cGVvZiBjcHRhYmxlPCJ1IiYmKGo9ZnVuY3Rpb24oeSl7Tz15LGsoeSl9LFU9ZnVuY3Rpb24oeSl7cmV0dXJuIDI1NT09PXkuY2hhckNvZGVBdCgwKSYmMjU0PT09eS5jaGFyQ29kZUF0KDEpP2NwdGFibGUudXRpbHMuZGVjb2RlKDEyMDAsQih5LnNsaWNlKDIpKSk6eX0s'@; put 'cT1mdW5jdGlvbihQKXtyZXR1cm4gMTIwMD09PU8/U3RyaW5nLmZyb21DaGFyQ29kZShQKTpjcHRhYmxlLnV0aWxzLmRlY29kZShPLFsyNTUmUCxQPj44XSlbMF19LGVlPWZ1bmN0aW9uKFApe3JldHVybiBjcHRhYmxlLnV0aWxzLmRlY29kZShSLFtQXSlbMF19KTt2YXIgUCx0ZT1udWxsLHNl'@; put 'PShQPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIse2VuY29kZTpmdW5jdGlvbihMKXtmb3IodmFyIFE9IiIscmU9MCxnZT0wLF9lPTAsdmU9MCxTZT0wLEhlPTAsQmU9MCxHZT0wO0dlPEwubGVuZ3RoOyl2ZT0ocmU9'@; put 'TC5jaGFyQ29kZUF0KEdlKyspKT4+MixTZT0oMyZyZSk8PDR8KGdlPUwuY2hhckNvZGVBdChHZSsrKSk+PjQsSGU9KDE1JmdlKTw8MnwoX2U9TC5jaGFyQ29kZUF0KEdlKyspKT4+NixCZT02MyZfZSxpc05hTihnZSk/SGU9QmU9NjQ6aXNOYU4oX2UpJiYoQmU9NjQpLFErPVAuY2hhckF0KHZl'@; put 'KStQLmNoYXJBdChTZSkrUC5jaGFyQXQoSGUpK1AuY2hhckF0KEJlKTtyZXR1cm4gUX0sZGVjb2RlOmZ1bmN0aW9uKFEpe3ZhciByZT0iIixTZT0wLEhlPTAsQmU9MCxHZT0wO1E9US5yZXBsYWNlKC9bXlx3XCtcL1w9XS9nLCIiKTtmb3IodmFyIG50PTA7bnQ8US5sZW5ndGg7KVNlPVAuaW5k'@; put 'ZXhPZihRLmNoYXJBdChudCsrKSksSGU9UC5pbmRleE9mKFEuY2hhckF0KG50KyspKSxyZSs9U3RyaW5nLmZyb21DaGFyQ29kZShTZTw8MnxIZT4+NCksNjQhPT0oQmU9UC5pbmRleE9mKFEuY2hhckF0KG50KyspKSkmJihyZSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmSGUpPDw0fEJlPj4y'@; put 'KSksNjQhPT0oR2U9UC5pbmRleE9mKFEuY2hhckF0KG50KyspKSkmJihyZSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMyZCZSk8PDZ8R2UpKTtyZXR1cm4gcmV9fSksaGU9dHlwZW9mIEJ1ZmZlcjwidSImJnR5cGVvZiBwcm9jZXNzPCJ1IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM8InUiJiYh'@; put 'IXByb2Nlc3MudmVyc2lvbnMubm9kZSx1ZT1mdW5jdGlvbigpe307aWYodHlwZW9mIEJ1ZmZlcjwidSIpe3ZhciBjZT0hQnVmZmVyLmZyb207aWYoIWNlKXRyeXtCdWZmZXIuZnJvbSgiZm9vIiwidXRmOCIpfWNhdGNoe2NlPSEwfXVlPWNlP2Z1bmN0aW9uKHksUCl7cmV0dXJuIFA/bmV3IEJ1'@; put 'ZmZlcih5LFApOm5ldyBCdWZmZXIoeSl9OkJ1ZmZlci5mcm9tLmJpbmQoQnVmZmVyKSxCdWZmZXIuYWxsb2N8fChCdWZmZXIuYWxsb2M9ZnVuY3Rpb24oeSl7cmV0dXJuIG5ldyBCdWZmZXIoeSl9KSxCdWZmZXIuYWxsb2NVbnNhZmV8fChCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oeSl7'@; put 'cmV0dXJuIG5ldyBCdWZmZXIoeSl9KX1mdW5jdGlvbiBHKHkpe3JldHVybiBoZT9CdWZmZXIuYWxsb2MoeSk6bmV3IEFycmF5KHkpfWZ1bmN0aW9uIGIoeSl7cmV0dXJuIGhlP0J1ZmZlci5hbGxvY1Vuc2FmZSh5KTpuZXcgQXJyYXkoeSl9dmFyIEQ9ZnVuY3Rpb24oUCl7cmV0dXJuIGhlP3Vl'@; put 'KFAsImJpbmFyeSIpOlAuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihMKXtyZXR1cm4gMjU1JkwuY2hhckNvZGVBdCgwKX0pfTtmdW5jdGlvbiBIKHkpe2lmKHR5cGVvZiBBcnJheUJ1ZmZlcj4idSIpcmV0dXJuIEQoeSk7Zm9yKHZhciBQPW5ldyBBcnJheUJ1ZmZlcih5Lmxlbmd0aCksTD1uZXcg'@; put 'VWludDhBcnJheShQKSxRPTA7USE9eS5sZW5ndGg7KytRKUxbUV09MjU1JnkuY2hhckNvZGVBdChRKTtyZXR1cm4gUH1mdW5jdGlvbiBOKHkpe2lmKEFycmF5LmlzQXJyYXkoeSkpcmV0dXJuIHkubWFwKGZ1bmN0aW9uKFEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKFEpfSkuam9pbigi'@; put 'Iik7Zm9yKHZhciBQPVtdLEw9MDtMPHkubGVuZ3RoOysrTClQW0xdPVN0cmluZy5mcm9tQ2hhckNvZGUoeVtMXSk7cmV0dXJuIFAuam9pbigiIil9ZnVuY3Rpb24gQyh5KXtpZih0eXBlb2YgQXJyYXlCdWZmZXI+InUiKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQiKTtpZih5IGluc3Rh'@; put 'bmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIEMobmV3IFVpbnQ4QXJyYXkoeSkpO2Zvcih2YXIgUD1uZXcgQXJyYXkoeS5sZW5ndGgpLEw9MDtMPHkubGVuZ3RoOysrTClQW0xdPXlbTF07cmV0dXJuIFB9dmFyIFM9ZnVuY3Rpb24oeSl7dmFyIFA9W107cmV0dXJuIHkuZm9yRWFjaChmdW5jdGlv'@; put 'bihMKXtBcnJheS5pc0FycmF5KEwpP1A9UC5jb25jYXQoTCk6KHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmTCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkwgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikmJihQPVAuY29uY2F0KEMoTCkpKX0pLFB9LHY9L1x1'@; put 'MDAwMC9nLHA9L1tcdTAwMDEtXHUwMDA2XS9nLHc9e30sSj1mdW5jdGlvbihQKXtmdW5jdGlvbiBMKEt0KXtmb3IodmFyIGduPSIiLExuPUt0Lmxlbmd0aC0xO0xuPj0wOylnbis9S3QuY2hhckF0KExuLS0pO3JldHVybiBnbn1mdW5jdGlvbiBRKEt0LGduKXtmb3IodmFyIExuPSIiO0xuLmxl'@; put 'bmd0aDxnbjspTG4rPUt0O3JldHVybiBMbn1mdW5jdGlvbiByZShLdCxnbil7dmFyIExuPSIiK0t0O3JldHVybiBMbi5sZW5ndGg+PWduP0xuOlEoIjAiLGduLUxuLmxlbmd0aCkrTG59ZnVuY3Rpb24gZ2UoS3QsZ24pe3ZhciBMbj0iIitLdDtyZXR1cm4gTG4ubGVuZ3RoPj1nbj9MbjpRKCIg'@; put 'Iixnbi1Mbi5sZW5ndGgpK0xufWZ1bmN0aW9uIF9lKEt0LGduKXt2YXIgTG49IiIrS3Q7cmV0dXJuIExuLmxlbmd0aD49Z24/TG46TG4rUSgiICIsZ24tTG4ubGVuZ3RoKX1QLnZlcnNpb249IjEuMjAyMTA3MjYuMSI7dmFyIEhlPU1hdGgucG93KDIsMzIpO2Z1bmN0aW9uIEJlKEt0LGduKXty'@; put 'ZXR1cm4gS3Q+SGV8fEt0PC1IZT9mdW5jdGlvbiB2ZShLdCxnbil7dmFyIExuPSIiK01hdGgucm91bmQoS3QpO3JldHVybiBMbi5sZW5ndGg+PWduP0xuOlEoIjAiLGduLUxuLmxlbmd0aCkrTG59KEt0LGduKTpmdW5jdGlvbiBTZShLdCxnbil7dmFyIExuPSIiK0t0O3JldHVybiBMbi5sZW5n'@; put 'dGg+PWduP0xuOlEoIjAiLGduLUxuLmxlbmd0aCkrTG59KE1hdGgucm91bmQoS3QpLGduKX1mdW5jdGlvbiBHZShLdCxnbil7cmV0dXJuIEt0Lmxlbmd0aD49NysoZ249Z258fDApJiYxMDM9PSgzMnxLdC5jaGFyQ29kZUF0KGduKSkmJjEwMT09KDMyfEt0LmNoYXJDb2RlQXQoZ24rMSkpJiYx'@; put 'MTA9PSgzMnxLdC5jaGFyQ29kZUF0KGduKzIpKSYmMTAxPT0oMzJ8S3QuY2hhckNvZGVBdChnbiszKSkmJjExND09KDMyfEt0LmNoYXJDb2RlQXQoZ24rNCkpJiY5Nz09KDMyfEt0LmNoYXJDb2RlQXQoZ24rNSkpJiYxMDg9PSgzMnxLdC5jaGFyQ29kZUF0KGduKzYpKX1mdW5jdGlvbiBudChL'@; put 'dCl7Zm9yKHZhciBnbj1bXSxMbj1PYmplY3Qua2V5cyhLdCksV3I9MDtXciE9PUxuLmxlbmd0aDsrK1dyKWduW0t0W0xuW1dyXV1dPUxuW1dyXTtyZXR1cm4gZ259dmFyIGR0PVtbIlN1biIsIlN1bmRheSJdLFsiTW9uIiwiTW9uZGF5Il0sWyJUdWUiLCJUdWVzZGF5Il0sWyJXZWQiLCJXZWRu'@; put 'ZXNkYXkiXSxbIlRodSIsIlRodXJzZGF5Il0sWyJGcmkiLCJGcmlkYXkiXSxbIlNhdCIsIlNhdHVyZGF5Il1dLEN0PVtbIkoiLCJKYW4iLCJKYW51YXJ5Il0sWyJGIiwiRmViIiwiRmVicnVhcnkiXSxbIk0iLCJNYXIiLCJNYXJjaCJdLFsiQSIsIkFwciIsIkFwcmlsIl0sWyJNIiwiTWF5Iiwi'@; put 'TWF5Il0sWyJKIiwiSnVuIiwiSnVuZSJdLFsiSiIsIkp1bCIsIkp1bHkiXSxbIkEiLCJBdWciLCJBdWd1c3QiXSxbIlMiLCJTZXAiLCJTZXB0ZW1iZXIiXSxbIk8iLCJPY3QiLCJPY3RvYmVyIl0sWyJOIiwiTm92IiwiTm92ZW1iZXIiXSxbIkQiLCJEZWMiLCJEZWNlbWJlciJdXTtmdW5jdGlv'@; put 'biBjdChLdCl7S3RbMF09IkdlbmVyYWwiLEt0WzFdPSIwIixLdFsyXT0iMC4wMCIsS3RbM109IiMsIyMwIixLdFs0XT0iIywjIzAuMDAiLEt0WzldPSIwJSIsS3RbMTBdPSIwLjAwJSIsS3RbMTFdPSIwLjAwRSswMCIsS3RbMTJdPSIjID8vPyIsS3RbMTNdPSIjID8/Lz8/IixLdFsxNF09Im0v'@; put 'ZC95eSIsS3RbMTVdPSJkLW1tbS15eSIsS3RbMTZdPSJkLW1tbSIsS3RbMTddPSJtbW0teXkiLEt0WzE4XT0iaDptbSBBTS9QTSIsS3RbMTldPSJoOm1tOnNzIEFNL1BNIixLdFsyMF09Img6bW0iLEt0WzIxXT0iaDptbTpzcyIsS3RbMjJdPSJtL2QveXkgaDptbSIsS3RbMzddPSIjLCMjMCA7'@; put 'KCMsIyMwKSIsS3RbMzhdPSIjLCMjMCA7W1JlZF0oIywjIzApIixLdFszOV09IiMsIyMwLjAwOygjLCMjMC4wMCkiLEt0WzQwXT0iIywjIzAuMDA7W1JlZF0oIywjIzAuMDApIixLdFs0NV09Im1tOnNzIixLdFs0Nl09IltoXTptbTpzcyIsS3RbNDddPSJtbXNzLjAiLEt0WzQ4XT0iIyMwLjBF'@; put 'KzAiLEt0WzQ5XT0iQCIsS3RbNTZdPSciXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCAiaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIgIicsU24oS3QpfXZhciBidD17fTtjdChidCk7dmFyIEZ0PVtdLGt0PTA7Zm9yKGt0PTU7a3Q8PTg7KytrdClGdFtrdF09MzIra3Q7Zm9yKGt0PTIz'@; put 'O2t0PD0yNjsrK2t0KUZ0W2t0XT0wO2ZvcihrdD0yNztrdDw9MzE7KytrdClGdFtrdF09MTQ7Zm9yKGt0PTUwO2t0PD01ODsrK2t0KUZ0W2t0XT0xNDtmb3Ioa3Q9NTk7a3Q8PTYyOysra3QpRnRba3RdPWt0LTU4O2ZvcihrdD02NztrdDw9Njg7KytrdClGdFtrdF09a3QtNTg7Zm9yKGt0PTcy'@; put 'O2t0PD03NTsrK2t0KUZ0W2t0XT1rdC01ODtmb3Ioa3Q9Njc7a3Q8PTY4Oysra3QpRnRba3RdPWt0LTU3O2ZvcihrdD03NjtrdDw9Nzg7KytrdClGdFtrdF09a3QtNTY7Zm9yKGt0PTc5O2t0PD04MTsrK2t0KUZ0W2t0XT1rdC0zNDt2YXIgVHQ9W107ZnVuY3Rpb24gWnQoS3QsZ24sTG4pe2Zv'@; put 'cih2YXIgV3I9S3Q8MD8tMToxLFhuPUt0KldyLGVpPTAsaXI9MSxyaT0wLG1vPTEsb2k9MCx6aT0wLEpyPU1hdGguZmxvb3IoWG4pO29pPGduJiYocmk9KEpyPU1hdGguZmxvb3IoWG4pKSppcitlaSx6aT1KcipvaSttbywhKFhuLUpyPDVlLTgpKTspWG49MS8oWG4tSnIpLGVpPWlyLGlyPXJp'@; put 'LG1vPW9pLG9pPXppO2lmKHppPmduJiYob2k+Z24/KHppPW1vLHJpPWVpKTooemk9b2kscmk9aXIpKSwhTG4pcmV0dXJuWzAsV3IqcmksemldO3ZhciB3cz1NYXRoLmZsb29yKFdyKnJpL3ppKTtyZXR1cm5bd3MsV3Iqcmktd3MqemksemldfWZ1bmN0aW9uIHBuKEt0LGduLExuKXtpZihLdD4y'@; put 'OTU4NDY1fHxLdDwwKXJldHVybiBudWxsO3ZhciBXcj0wfEt0LFhuPU1hdGguZmxvb3IoODY0MDAqKEt0LVdyKSksZWk9MCxpcj1bXSxyaT17RDpXcixUOlhuLHU6ODY0MDAqKEt0LVdyKS1Ybix5OjAsbTowLGQ6MCxIOjAsTTowLFM6MCxxOjB9O2lmKE1hdGguYWJzKHJpLnUpPDFlLTYmJihy'@; put 'aS51PTApLGduJiZnbi5kYXRlMTkwNCYmKFdyKz0xNDYyKSxyaS51Pi45OTk5JiYocmkudT0wLDg2NDAwPT0rK1huJiYocmkuVD1Ybj0wLCsrV3IsKytyaS5EKSksNjA9PT1Xcilpcj1Mbj9bMTMxNywxMCwyOV06WzE5MDAsMiwyOV0sZWk9MztlbHNlIGlmKDA9PT1Xcilpcj1Mbj9bMTMxNyw4'@; put 'LDI5XTpbMTkwMCwxLDBdLGVpPTY7ZWxzZXtXcj42MCYmLS1Xcjt2YXIgbW89bmV3IERhdGUoMTkwMCwwLDEpO21vLnNldERhdGUobW8uZ2V0RGF0ZSgpK1dyLTEpLGlyPVttby5nZXRGdWxsWWVhcigpLG1vLmdldE1vbnRoKCkrMSxtby5nZXREYXRlKCldLGVpPW1vLmdldERheSgpLFdyPDYw'@; put 'JiYoZWk9KGVpKzYpJTcpLExuJiYoZWk9ZnVuY3Rpb24gX28oS3QsZ24pe2duWzBdLT01ODE7dmFyIExuPUt0LmdldERheSgpO3JldHVybiBLdDw2MCYmKExuPShMbis2KSU3KSxMbn0obW8saXIpKX1yZXR1cm4gcmkueT1pclswXSxyaS5tPWlyWzFdLHJpLmQ9aXJbMl0scmkuUz1YbiU2MCxY'@; put 'bj1NYXRoLmZsb29yKFhuLzYwKSxyaS5NPVhuJTYwLFhuPU1hdGguZmxvb3IoWG4vNjApLHJpLkg9WG4scmkucT1laSxyaX1UdFs1XT1UdFs2M109JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLFR0WzZdPVR0WzY0XT0nIiQiIywjIzBfKTtbUmVkXVxcKCIkIiMsIyMwXFwpJyxUdFs3XT1U'@; put 'dFs2NV09JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLFR0WzhdPVR0WzY2XT0nIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyxUdFs0MV09J18oKiAjLCMjMF8pO18oKiBcXCgjLCMjMFxcKTtfKCogIi0iXyk7XyhAXyknLFR0WzQyXT0nXygiJCIqICMsIyMw'@; put 'Xyk7XygiJCIqIFxcKCMsIyMwXFwpO18oIiQiKiAiLSJfKTtfKEBfKScsVHRbNDNdPSdfKCogIywjIzAuMDBfKTtfKCogXFwoIywjIzAuMDBcXCk7XygqICItIj8/Xyk7XyhAXyknLFR0WzQ0XT0nXygiJCIqICMsIyMwLjAwXyk7XygiJCIqIFxcKCMsIyMwLjAwXFwpO18oIiQiKiAiLSI/P18p'@; put 'O18oQF8pJyxQLnBhcnNlX2RhdGVfY29kZT1wbjt2YXIgS249bmV3IERhdGUoMTg5OSwxMSwzMSwwLDAsMCksdW49S24uZ2V0VGltZSgpLHFuPW5ldyBEYXRlKDE5MDAsMiwxLDAsMCwwKTtmdW5jdGlvbiB6bihLdCxnbil7dmFyIExuPUt0LmdldFRpbWUoKTtyZXR1cm4gZ24/TG4tPTEyNjIz'@; put 'MDRlNTpLdD49cW4mJihMbis9ODY0ZTUpLChMbi0odW4rNmU0KihLdC5nZXRUaW1lem9uZU9mZnNldCgpLUtuLmdldFRpbWV6b25lT2Zmc2V0KCkpKSkvODY0ZTV9dmFyIGtuPSIiLGVyPXsiZW4tdXMiOnt5OiJ5IixkOiJkIiwiLCI6IiwiLCIuIjoiLiIsZGF0ZToiXy8ifSwiZGUtZGUiOnt5'@; put 'OiJqIixkOiJ0IiwiLCI6Ii4iLCIuIjoiLCIsZGF0ZToiXy4ifSwiaXQtaXQiOnt5OiJ5IixkOiJkIiwiLCI6Ii4iLCIuIjoiLCIsZGF0ZToiXy8ifX0sdHI9ZXJba24udG9Mb3dlckNhc2UoKV18fGVyWyJlbi11cyJdLFpuPW50KHRyKSxCcj0iJCIsc2k9IiIsUXI9IiwiLHVyPSIuIixBbj0i'@; put 'LyI7ZnVuY3Rpb24gU24oS3Qpe3N3aXRjaCgoa258fCIiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInpoLXR3IjpLdFsyN109IlskLTQwNF1lL20vZCIsS3RbMjhdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxLdFsyOV09J1skLTQwNF1lIlx1NWU3NCJtIlx1NjcwOCJkIlx1'@; put 'NjVlNSInLEt0WzMwXT0nbSIvImQiLyJ5eScsS3RbMzFdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzMyXT0naGgiXHU2NjQyIm1tIlx1NTIwNiInLEt0WzMzXT0naGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxLdFszNF09J1x1NGUwYVx1NTM0OC9cdTRlMGJc'@; put 'dTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiInLEt0WzM1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLEt0WzM2XT0iWyQtNDA0XWUvbS9kIixLdFs1MF09IlskLTQwNF1lL20vZCIsS3RbNTFdPSdbJC00MDRdZSJcdTVlNzQibSJc'@; put 'dTY3MDgiZCJcdTY1ZTUiJyxLdFs1Ml09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiInLEt0WzUzXT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLEt0WzU0XT0nWyQtNDA0XWUiXHU1ZTc0Im0i'@; put 'XHU2NzA4ImQiXHU2NWU1IicsS3RbNTVdPSdcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4IGhoIlx1NjY0MiJtbSJcdTUyMDYiJyxLdFs1Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxLdFs1N109IlskLTQwNF1lL20vZCIsS3Rb'@; put 'NThdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJzticmVhaztjYXNlInpoLWNuIjpLdFsyN109J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicsS3RbMjhdPSdtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzI5XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxLdFszMF09J20iLSJkIi0ieXkn'@; put 'LEt0WzMxXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxLdFszMl09J2giXHU2NWY2Im1tIlx1NTIwNiInLEt0WzMzXT0naCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLEt0WzM0XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoIlx1NjVmNiJtbSJcdTUyMDYiJyxL'@; put 'dFszNV09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLEt0WzM2XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxLdFs1MF09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicsS3RbNTFdPSdtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzUyXT0neXl5'@; put 'eSJcdTVlNzQibSJcdTY3MDgiJyxLdFs1M109J20iXHU2NzA4ImQiXHU2NWU1IicsS3RbNTRdPSdtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzU1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoIlx1NjVmNiJtbSJcdTUyMDYiJyxLdFs1Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDgg'@; put 'aCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLEt0WzU3XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxLdFs1OF09J20iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJqYS1qcCI6S3RbMjddPSdbJC00MTFdZ2UiLiJtIi4iZCcsS3RbMjhdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJc'@; put 'dTY3MDgiZCJcdTY1ZTUiJyxLdFsyOV09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzMwXT0nbSIvImQiLyJ5eScsS3RbMzFdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzMyXT0naCJcdTY2NDIibW0iXHU1MjA2IicsS3RbMzNdPSdoIlx1'@; put 'NjY0MiJtbSJcdTUyMDYic3MiXHU3OWQyIicsS3RbMzRdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCInLEt0WzM1XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxLdFszNl09J1skLTQxMV1nZSIuIm0iLiJkJyxLdFs1MF09J1skLTQxMV1nZSIuIm0iLiJkJyxLdFs1MV09J1skLTQxMV1nZ2dlIlx1NWU3'@; put 'NCJtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzUyXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxLdFs1M109J20iXHU2NzA4ImQiXHU2NWU1IicsS3RbNTRdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxLdFs1NV09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicsS3RbNTZd'@; put 'PSdtIlx1NjcwOCJkIlx1NjVlNSInLEt0WzU3XT0nWyQtNDExXWdlIi4ibSIuImQnLEt0WzU4XT0nWyQtNDExXWdnZ2UiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJrby1rciI6S3RbMjddPSd5eXl5Ilx1NWU3NCIgbW0iXHU2NzA4IiBkZCJcdTY1ZTUiJyxLdFsyOF09'@; put 'Im1tLWRkIixLdFsyOV09Im1tLWRkIixLdFszMF09Im1tLWRkLXl5IixLdFszMV09J3l5eXkiXHViMTQ0IiBtbSJcdWM2ZDQiIGRkIlx1Yzc3YyInLEt0WzMyXT0naCJcdWMyZGMiIG1tIlx1YmQ4NCInLEt0WzMzXT0naCJcdWMyZGMiIG1tIlx1YmQ4NCIgc3MiXHVjZDA4IicsS3RbMzRdPSJ5'@; put 'eXl5LW1tLWRkIixLdFszNV09Inl5eXktbW0tZGQiLEt0WzM2XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicsS3RbNTBdPSd5eXl5Ilx1NWU3NCIgbW0iXHU2NzA4IiBkZCJcdTY1ZTUiJyxLdFs1MV09Im1tLWRkIixLdFs1Ml09Inl5eXktbW0tZGQiLEt0WzUzXT0ieXl5'@; put 'eS1tbS1kZCIsS3RbNTRdPSJtbS1kZCIsS3RbNTVdPSJ5eXl5LW1tLWRkIixLdFs1Nl09Inl5eXktbW0tZGQiLEt0WzU3XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicsS3RbNThdPSJtbS1kZCI7YnJlYWs7Y2FzZSJ0aC10aCI6S3RbNTldPScidCIwJyxLdFs2MF09JyJ0'@; put 'IjAuMDAnLEt0WzYxXT0nInQiIywjIzAnLEt0WzYyXT0nInQiIywjIzAuMDAnLEt0WzY3XT0idDAlIixLdFs2OF09InQwLjAwJSIsS3RbNjldPSJ0IyA/Lz8iLEt0WzcwXT0idCMgPz8vPz8iLEt0WzcxXT0nXHUwZTI3Ii8iXHUwZTE0Ii8iXHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiJyxLdFs3'@; put 'Ml09J1x1MGUyNyItIlx1MGUxNFx1MGUxNFx1MGUxNCItIlx1MGUxYlx1MGUxYicsS3RbNzNdPSdcdTBlMjciLSJcdTBlMTRcdTBlMTRcdTBlMTQnLEt0Wzc0XT0nXHUwZTE0XHUwZTE0XHUwZTE0Ii0iXHUwZTFiXHUwZTFiJyxLdFs3NV09J1x1MGUwYSI6Ilx1MGUxOVx1MGUxOScsS3RbNzZd'@; put 'PSdcdTBlMGEiOiJcdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLEt0Wzc3XT0nXHUwZTI3Ii8iXHUwZTE0Ii8iXHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiIFx1MGUwYSI6Ilx1MGUxOVx1MGUxOScsS3RbNzhdPSdcdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLEt0Wzc5XT0nW1x1MGUw'@; put 'YV1cdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLEt0WzgwXT0nXHUwZTE5XHUwZTE5IjoiXHUwZTE3XHUwZTE3LjAnLEt0WzgxXT0iZC9tL2JiIn19UC5fZ2VuZXJhbF9pbnQ9ZnVuY3Rpb24gd2koS3Qpe3JldHVybiBLdC50b1N0cmluZygxMCl9O3ZhciBVcj1mdW5jdGlvbigpe3ZhciBn'@; put 'bj0vKD86XC4wKnwoXC5cZCpbMS05XSkwKykkLztmdW5jdGlvbiBMbihvaSl7cmV0dXJuLTE9PW9pLmluZGV4T2YoIi4iKT9vaTpvaS5yZXBsYWNlKGduLCIkMSIpfXZhciBXcj0vKD86XC4wKnwoXC5cZCpbMS05XSkwKylbRWVdLyxYbj0vKEVbKy1dKShcZCkkLztyZXR1cm4gZnVuY3Rpb24o'@; put 'emkpe3ZhciBKcj1mdW5jdGlvbiBtbyhvaSl7dmFyIEpyLHppPU1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnMob2kpKSpNYXRoLkxPRzEwRSk7cmV0dXJuIEpyPXppPj0tNCYmemk8PS0xP29pLnRvUHJlY2lzaW9uKDEwK3ppKTpNYXRoLmFicyh6aSk8PTk/ZnVuY3Rpb24gaXIob2kpe3Zh'@; put 'ciB6aT1vaTwwPzEyOjExLEpyPUxuKG9pLnRvRml4ZWQoMTIpKTtyZXR1cm4gSnIubGVuZ3RoPD16aXx8KEpyPW9pLnRvUHJlY2lzaW9uKDEwKSkubGVuZ3RoPD16aT9KcjpvaS50b0V4cG9uZW50aWFsKDUpfShvaSk6MTA9PT16aT9vaS50b0ZpeGVkKDEwKS5zdWJzdHIoMCwxMik6ZnVuY3Rp'@; put 'b24gcmkob2kpe3ZhciB6aT1MbihvaS50b0ZpeGVkKDExKSk7cmV0dXJuIHppLmxlbmd0aD4ob2k8MD8xMjoxMSl8fCIwIj09PXppfHwiLTAiPT09emk/b2kudG9QcmVjaXNpb24oNik6eml9KG9pKSxMbihmdW5jdGlvbiBlaShvaSl7cmV0dXJuLTE9PW9pLmluZGV4T2YoIkUiKT9vaTpvaS5y'@; put 'ZXBsYWNlKFdyLCIkMUUiKS5yZXBsYWNlKFhuLCIkMTAkMiIpfShKci50b1VwcGVyQ2FzZSgpKSl9KHppKTtyZXR1cm4iLCI9PT1RciYmIi4iPT09dXI/SnI6SnIucmVwbGFjZSgvWywuXS9nLGZ1bmN0aW9uKHdzKXtyZXR1cm4iLCI9PXdzP1FyOnVyfSl9fSgpO2Z1bmN0aW9uIGppKEt0LGdu'@; put 'KXtzd2l0Y2godHlwZW9mIEt0KXtjYXNlInN0cmluZyI6cmV0dXJuIEt0O2Nhc2UiYm9vbGVhbiI6cmV0dXJuIEt0PyJUUlVFIjoiRkFMU0UiO2Nhc2UibnVtYmVyIjpyZXR1cm4oMHxLdCk9PT1LdD9LdC50b1N0cmluZygxMCk6VXIoS3QpO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4iIjtjYXNl'@; put 'Im9iamVjdCI6aWYobnVsbD09S3QpcmV0dXJuIiI7aWYoS3QgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBudSgxNCx6bihLdCxnbiYmZ24uZGF0ZTE5MDQpLGduKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIHZhbHVlIGluIEdlbmVyYWwgZm9ybWF0OiAiK0t0KX1QLl9nZW5lcmFsX251'@; put 'bT1VcixQLl9nZW5lcmFsPWppO3ZhciBUaT0iXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5Ii5zcGxpdCgiIik7ZnVuY3Rpb24gWW8oS3QsZ24sTG4sV3Ipe3ZhciBtbyxYbj0iIixlaT0wLGlyPTAscmk9TG4ueSxvaT0wO3N3aXRj'@; put 'aChLdCl7Y2FzZSA5ODpyaT1Mbi55KzU0MztjYXNlIDEyMTpzd2l0Y2goZ24ubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOm1vPXJpJTEwMCxvaT0yO2JyZWFrO2RlZmF1bHQ6bW89cmklMWU0LG9pPTR9YnJlYWs7Y2FzZSAxMDk6c3dpdGNoKGduLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjptbz1Mbi5t'@; put 'LG9pPWduLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIEN0W0xuLm0tMV1bMV07Y2FzZSA1OnJldHVybiBDdFtMbi5tLTFdWzBdO2RlZmF1bHQ6cmV0dXJuIEN0W0xuLm0tMV1bMl19YnJlYWs7Y2FzZSAxMDA6c3dpdGNoKGduLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjptbz1Mbi5kLG9pPWdu'@; put 'Lmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIGR0W0xuLnFdWzBdO2RlZmF1bHQ6cmV0dXJuIGR0W0xuLnFdWzFdfWJyZWFrO2Nhc2UgMTA0OnN3aXRjaChnbi5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6bW89MSsoTG4uSCsxMSklMTIsb2k9Z24ubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ci'@; put 'YmFkIGhvdXIgZm9ybWF0OiAiK2dufWJyZWFrO2Nhc2UgNzI6c3dpdGNoKGduLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjptbz1Mbi5ILG9pPWduLmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93ImJhZCBob3VyIGZvcm1hdDogIitnbn1icmVhaztjYXNlIDc3OnN3aXRjaChnbi5sZW5ndGgpe2Nh'@; put 'c2UgMTpjYXNlIDI6bW89TG4uTSxvaT1nbi5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgbWludXRlIGZvcm1hdDogIitnbn1icmVhaztjYXNlIDExNTppZigicyIhPWduJiYic3MiIT1nbiYmIi4wIiE9Z24mJiIuMDAiIT1nbiYmIi4wMDAiIT1nbil0aHJvdyJiYWQgc2Vjb25kIGZv'@; put 'cm1hdDogIitnbjtyZXR1cm4gMCE9PUxuLnV8fCJzIiE9Z24mJiJzcyIhPWduPyhpcj1Xcj49Mj8zPT09V3I/MWUzOjEwMDoxPT09V3I/MTA6MSwoZWk9TWF0aC5yb3VuZChpciooTG4uUytMbi51KSkpPj02MCppciYmKGVpPTApLCJzIj09PWduPzA9PT1laT8iMCI6IiIrZWkvaXI6KFhuPXJl'@; put 'KGVpLDIrV3IpLCJzcyI9PT1nbj9Ybi5zdWJzdHIoMCwyKToiLiIrWG4uc3Vic3RyKDIsZ24ubGVuZ3RoLTEpKSk6cmUoTG4uUyxnbi5sZW5ndGgpO2Nhc2UgOTA6c3dpdGNoKGduKXtjYXNlIltoXSI6Y2FzZSJbaGhdIjpjYXNlIltcdTBlMGFdIjpjYXNlIltcdTBlMGFcdTBlMGFdIjptbz0y'@; put 'NCpMbi5EK0xuLkg7YnJlYWs7Y2FzZSJbbV0iOmNhc2UiW21tXSI6Y2FzZSJbXHUwZTE5XSI6Y2FzZSJbXHUwZTE5XHUwZTE5XSI6bW89NjAqKDI0KkxuLkQrTG4uSCkrTG4uTTticmVhaztjYXNlIltzXSI6Y2FzZSJbc3NdIjpjYXNlIltcdTBlMTddIjpjYXNlIltcdTBlMTdcdTBlMTddIjpt'@; put 'bz02MCooNjAqKDI0KkxuLkQrTG4uSCkrTG4uTSkrTWF0aC5yb3VuZChMbi5TK0xuLnUpO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGFic3RpbWUgZm9ybWF0OiAiK2dufW9pPTM9PT1nbi5sZW5ndGg/MToyO2JyZWFrO2Nhc2UgMTAxOm1vPXJpLG9pPTE7YnJlYWs7Y2FzZSAzNjIzOm1vPUxu'@; put 'LmQsb2k9Z24ubGVuZ3RoO2JyZWFrO2Nhc2UgMzYwNDpzd2l0Y2goZ24ubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOm1vPUxuLm0sb2k9Z24ubGVuZ3RoO2JyZWFrO2Nhc2UgMzpyZXR1cm4gQ3RbTG4ubS0xXVsxXTtjYXNlIDU6cmV0dXJuIEN0W0xuLm0tMV1bMF07ZGVmYXVsdDpyZXR1cm4gQ3Rb'@; put 'TG4ubS0xXVsyXX1icmVhaztjYXNlIDM2MTE6c3dpdGNoKHJpPUxuLnkrNTQzLGduLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjptbz1yaSUxMDAsb2k9MjticmVhaztkZWZhdWx0Om1vPXJpJTFlNCxvaT00fWJyZWFrO2Nhc2UgMzU5NDptbz1Mbi5ILG9pPWduLmxlbmd0aDticmVhaztjYXNlIDM2'@; put 'MDk6bW89TG4uTSxvaT1nbi5sZW5ndGg7YnJlYWs7Y2FzZSAzNjA3Om1vPUxuLlMsb2k9Z24ubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3cgS3QudG9TdHJpbmcoMTYpfXZhciB6aT1vaT4wP3JlKG1vLG9pKToiIjtyZXR1cm4oOTA9PUt0P2duLmNoYXJDb2RlQXQoMSk8MzU4NDpLdDwzNTg0'@; put 'KT96aTp6aS5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKEpyKXtyZXR1cm4gVGlbK0pyXX0pfWZ1bmN0aW9uIGxvKEt0KXtpZihLdC5sZW5ndGg8PTMpcmV0dXJuIEt0O2Zvcih2YXIgTG49S3QubGVuZ3RoJTMsV3I9S3Quc3Vic3RyKDAsTG4pO0xuIT1LdC5sZW5ndGg7TG4rPTMpV3IrPShX'@; put 'ci5sZW5ndGg+MD8iLCI6IiIpK0t0LnN1YnN0cihMbiwzKTtyZXR1cm4gV3J9dmFyIEFvPWZ1bmN0aW9uKCl7dmFyIGduPS8lL2c7ZnVuY3Rpb24gWG4oYW4sVnQpe3ZhciBXdCxkbj1hbi5pbmRleE9mKCJFIiktYW4uaW5kZXhPZigiLiIpLTE7aWYoYW4ubWF0Y2goL14jKzAuMEVcKzAkLykp'@; put 'e2lmKDA9PVZ0KXJldHVybiIwLjBFKzAiO2lmKFZ0PDApcmV0dXJuIi0iK1huKGFuLC1WdCk7dmFyIFRuPWFuLmluZGV4T2YoIi4iKTstMT09PVRuJiYoVG49YW4uaW5kZXhPZigiRSIpKTt2YXIgbnI9TWF0aC5mbG9vcihNYXRoLmxvZyhWdCkqTWF0aC5MT0cxMEUpJVRuO2lmKG5yPDAmJihu'@; put 'cis9VG4pLC0xPT09KFd0PShWdC9NYXRoLnBvdygxMCxucikpLnRvUHJlY2lzaW9uKGRuKzErKFRuK25yKSVUbikpLmluZGV4T2YoImUiKSl7dmFyIGJyPU1hdGguZmxvb3IoTWF0aC5sb2coVnQpKk1hdGguTE9HMTBFKTtmb3IoLTE9PT1XdC5pbmRleE9mKCIuIik/V3Q9V3QuY2hhckF0KDAp'@; put 'KyIuIitXdC5zdWJzdHIoMSkrIkUrIisoYnItV3QubGVuZ3RoK25yKTpXdCs9IkUrIisoYnItbnIpOyIwLiI9PT1XdC5zdWJzdHIoMCwyKTspV3Q9KFd0PVd0LmNoYXJBdCgwKStXdC5zdWJzdHIoMixUbikrIi4iK1d0LnN1YnN0cigyK1RuKSkucmVwbGFjZSgvXjArKFsxLTldKS8sIiQxIiku'@; put 'cmVwbGFjZSgvXjArXC4vLCIwLiIpO1d0PVd0LnJlcGxhY2UoL1wrLS8sIi0iKX1XdD1XdC5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKFpyLExyLE1pLGNpKXtyZXR1cm4gTHIrTWkrY2kuc3Vic3RyKDAsKFRuK25yKSVUbikrIi4iK2NpLnN1YnN0cihucikr'@; put 'IkUifSl9ZWxzZSBXdD1WdC50b0V4cG9uZW50aWFsKGRuKTtyZXR1cm4gYW4ubWF0Y2goL0VcKzAwJC8pJiZXdC5tYXRjaCgvZVsrLV1cZCQvKSYmKFd0PVd0LnN1YnN0cigwLFd0Lmxlbmd0aC0xKSsiMCIrV3QuY2hhckF0KFd0Lmxlbmd0aC0xKSksYW4ubWF0Y2goL0VcLS8pJiZXdC5tYXRj'@; put 'aCgvZVwrLykmJihXdD1XdC5yZXBsYWNlKC9lXCsvLCJlIikpLFd0LnJlcGxhY2UoImUiLCJFIil9dmFyIGVpPS8jIChcPyspKCA/KVwvKCA/KShcZCspLyxtbz0vXiMqMCpcLihbMCNdKykvLG9pPS9cKS4qWzAjXS8semk9L1woIyMjXCkgIyMjXFw/LSMjIyMvO2Z1bmN0aW9uIEpyKGFuKXtm'@; put 'b3IodmFyIFd0LFZ0PSIiLGRuPTA7ZG4hPWFuLmxlbmd0aDsrK2RuKXN3aXRjaChXdD1hbi5jaGFyQ29kZUF0KGRuKSl7Y2FzZSAzNTpicmVhaztjYXNlIDYzOlZ0Kz0iICI7YnJlYWs7Y2FzZSA0ODpWdCs9IjAiO2JyZWFrO2RlZmF1bHQ6VnQrPVN0cmluZy5mcm9tQ2hhckNvZGUoV3QpfXJl'@; put 'dHVybiBWdH1mdW5jdGlvbiB3cyhhbixWdCl7dmFyIFd0PU1hdGgucG93KDEwLFZ0KTtyZXR1cm4iIitNYXRoLnJvdW5kKGFuKld0KS9XdH1mdW5jdGlvbiB2cyhhbixWdCl7aWYoVnQ+MTEpcmV0dXJuIHZzKGFuLDExKSpNYXRoLnBvdygxMCxWdC0xMSk7dmFyIFd0PWFuLU1hdGguZmxvb3Io'@; put 'YW4pLGRuPU1hdGgucG93KDEwLFZ0KTtyZXR1cm4gVnQ8KCIiK01hdGgucm91bmQoV3QqZG4pKS5sZW5ndGg/MDpNYXRoLnJvdW5kKFd0KmRuKX1mdW5jdGlvbiBoYShhbixWdCxXdCl7aWYoNDA9PT1hbi5jaGFyQ29kZUF0KDApJiYhVnQubWF0Y2gob2kpKXt2YXIgZG49VnQucmVwbGFjZSgv'@; put 'XCggKi8sIiIpLnJlcGxhY2UoLyBcKS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJuIFd0Pj0wP2hhKCJuIixkbixXdCk6IigiK2hhKCJuIixkbiwtV3QpKyIpIn1pZig0ND09PVZ0LmNoYXJDb2RlQXQoVnQubGVuZ3RoLTEpKXJldHVybiBmdW5jdGlvbiBXcihhbixWdCxXdCl7Zm9yKHZh'@; put 'ciBkbj1WdC5sZW5ndGgtMTs0ND09PVZ0LmNoYXJDb2RlQXQoZG4tMSk7KS0tZG47cmV0dXJuIEFvKGFuLFZ0LnN1YnN0cigwLGRuKSxXdC9NYXRoLnBvdygxMCwzKihWdC5sZW5ndGgtZG4pKSl9KGFuLFZ0LFd0KTtpZigtMSE9PVZ0LmluZGV4T2YoIiUiKSlyZXR1cm4gZnVuY3Rpb24gTG4o'@; put 'YW4sVnQsV3Qpe3ZhciBkbj1WdC5yZXBsYWNlKGduLCIiKSxUbj1WdC5sZW5ndGgtZG4ubGVuZ3RoO3JldHVybiBBbyhhbixkbixXdCpNYXRoLnBvdygxMCwyKlRuKSkrUSgiJSIsVG4pfShhbixWdCxXdCk7aWYoLTEhPT1WdC5pbmRleE9mKCJFIikpcmV0dXJuIFhuKFZ0LFd0KTtpZigzNj09'@; put 'PVZ0LmNoYXJDb2RlQXQoMCkpcmV0dXJuIiQiK2hhKGFuLFZ0LnN1YnN0cigiICI9PVZ0LmNoYXJBdCgxKT8yOjEpLFd0KTt2YXIgVG4sbnIsYnIsWnIsTHI9TWF0aC5hYnMoV3QpLE1pPVd0PDA/Ii0iOiIiO2lmKFZ0Lm1hdGNoKC9eMDArJC8pKXJldHVybiBNaStCZShMcixWdC5sZW5ndGgp'@; put 'O2lmKFZ0Lm1hdGNoKC9eWyM/XSskLykpcmV0dXJuIjAiPT09KFRuPUJlKFd0LDApKSYmKFRuPSIiKSxUbi5sZW5ndGg+VnQubGVuZ3RoP1RuOkpyKFZ0LnN1YnN0cigwLFZ0Lmxlbmd0aC1Ubi5sZW5ndGgpKStUbjtpZihucj1WdC5tYXRjaChlaSkpcmV0dXJuIGZ1bmN0aW9uIGlyKGFuLFZ0'@; put 'LFd0KXt2YXIgZG49cGFyc2VJbnQoYW5bNF0sMTApLFRuPU1hdGgucm91bmQoVnQqZG4pLG5yPU1hdGguZmxvb3IoVG4vZG4pLGJyPVRuLW5yKmRuLFpyPWRuO3JldHVybiBXdCsoMD09PW5yPyIiOiIiK25yKSsiICIrKDA9PT1icj9RKCIgIixhblsxXS5sZW5ndGgrMSthbls0XS5sZW5ndGgp'@; put 'OmdlKGJyLGFuWzFdLmxlbmd0aCkrYW5bMl0rIi8iK2FuWzNdK3JlKFpyLGFuWzRdLmxlbmd0aCkpfShucixMcixNaSk7aWYoVnQubWF0Y2goL14jKzArJC8pKXJldHVybiBNaStCZShMcixWdC5sZW5ndGgtVnQuaW5kZXhPZigiMCIpKTtpZihucj1WdC5tYXRjaChtbykpcmV0dXJuIFRuPXdz'@; put 'KFd0LG5yWzFdLmxlbmd0aCkucmVwbGFjZSgvXihbXlwuXSspJC8sIiQxLiIrSnIobnJbMV0pKS5yZXBsYWNlKC9cLiQvLCIuIitKcihuclsxXSkpLnJlcGxhY2UoL1wuKFxkKikkLyxmdW5jdGlvbihVbyx0aSl7cmV0dXJuIi4iK3RpK1EoIjAiLEpyKG5yWzFdKS5sZW5ndGgtdGkubGVuZ3Ro'@; put 'KX0pLC0xIT09VnQuaW5kZXhPZigiMC4iKT9UbjpUbi5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKFZ0PVZ0LnJlcGxhY2UoL14jKyhbMC5dKS8sIiQxIiksbnI9VnQubWF0Y2goL14oMCopXC4oIyopJC8pKXJldHVybiBNaSt3cyhMcixuclsyXS5sZW5ndGgpLnJlcGxhY2UoL1wuKFxkKlsxLTld'@; put 'KTAqJC8sIi4kMSIpLnJlcGxhY2UoL14oLT9cZCopJC8sIiQxLiIpLnJlcGxhY2UoL14wXC4vLG5yWzFdLmxlbmd0aD8iMC4iOiIuIik7aWYobnI9VnQubWF0Y2goL14jezEsM30sIyMwKFwuPykkLykpcmV0dXJuIE1pK2xvKEJlKExyLDApKTtpZihucj1WdC5tYXRjaCgvXiMsIyMwXC4oWyMw'@; put 'XSowKSQvKSlyZXR1cm4gV3Q8MD8iLSIraGEoYW4sVnQsLVd0KTpsbygiIisoTWF0aC5mbG9vcihXdCkrZnVuY3Rpb24gbWwoYW4sVnQpe3JldHVybiBWdDwoIiIrTWF0aC5yb3VuZCgoYW4tTWF0aC5mbG9vcihhbikpKk1hdGgucG93KDEwLFZ0KSkpLmxlbmd0aD8xOjB9KFd0LG5yWzFdLmxl'@; put 'bmd0aCkpKSsiLiIrcmUodnMoV3QsbnJbMV0ubGVuZ3RoKSxuclsxXS5sZW5ndGgpO2lmKG5yPVZ0Lm1hdGNoKC9eIywjKiwjMC8pKXJldHVybiBoYShhbixWdC5yZXBsYWNlKC9eIywjKiwvLCIiKSxXdCk7aWYobnI9VnQubWF0Y2goL14oWzAjXSspKFxcPy0oWzAjXSspKSskLykpcmV0dXJu'@; put 'IFRuPUwoaGEoYW4sVnQucmVwbGFjZSgvW1xcLV0vZywiIiksV3QpKSxicj0wLEwoTChWdC5yZXBsYWNlKC9cXC9nLCIiKSkucmVwbGFjZSgvWzAjXS9nLGZ1bmN0aW9uKFVvKXtyZXR1cm4gYnI8VG4ubGVuZ3RoP1RuLmNoYXJBdChicisrKToiMCI9PT1Vbz8iMCI6IiJ9KSk7aWYoVnQubWF0'@; put 'Y2goemkpKXJldHVybiIoIisoVG49aGEoYW4sIiMjIyMjIyMjIyMiLFd0KSkuc3Vic3RyKDAsMykrIikgIitUbi5zdWJzdHIoMywzKSsiLSIrVG4uc3Vic3RyKDYpO3ZhciBjaT0iIjtpZihucj1WdC5tYXRjaCgvXihbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIGJyPU1hdGgu'@; put 'bWluKG5yWzRdLmxlbmd0aCw3KSxacj1adChMcixNYXRoLnBvdygxMCxiciktMSwhMSksVG49IiIrTWksIiAiPT0oY2k9QW8oIm4iLG5yWzFdLFpyWzFdKSkuY2hhckF0KGNpLmxlbmd0aC0xKSYmKGNpPWNpLnN1YnN0cigwLGNpLmxlbmd0aC0xKSsiMCIpLFRuKz1jaStuclsyXSsiLyIrbnJb'@; put 'M10sKGNpPV9lKFpyWzJdLGJyKSkubGVuZ3RoPG5yWzRdLmxlbmd0aCYmKGNpPUpyKG5yWzRdLnN1YnN0cihucls0XS5sZW5ndGgtY2kubGVuZ3RoKSkrY2kpLFRuKz1jaTtpZihucj1WdC5tYXRjaCgvXiMgKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gYnI9TWF0aC5taW4o'@; put 'TWF0aC5tYXgobnJbMV0ubGVuZ3RoLG5yWzRdLmxlbmd0aCksNyksTWkrKChacj1adChMcixNYXRoLnBvdygxMCxiciktMSwhMCkpWzBdfHwoWnJbMV0/IiI6IjAiKSkrIiAiKyhaclsxXT9nZShaclsxXSxicikrbnJbMl0rIi8iK25yWzNdK19lKFpyWzJdLGJyKTpRKCIgIiwyKmJyKzErbnJb'@; put 'Ml0ubGVuZ3RoK25yWzNdLmxlbmd0aCkpO2lmKG5yPVZ0Lm1hdGNoKC9eWyMwP10rJC8pKXJldHVybiBUbj1CZShXdCwwKSxWdC5sZW5ndGg8PVRuLmxlbmd0aD9UbjpKcihWdC5zdWJzdHIoMCxWdC5sZW5ndGgtVG4ubGVuZ3RoKSkrVG47aWYobnI9VnQubWF0Y2goL14oWyMwP10rKVwuKFsj'@; put 'MF0rKSQvKSl7VG49IiIrV3QudG9GaXhlZChNYXRoLm1pbihuclsyXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLGJyPVRuLmluZGV4T2YoIi4iKTt2YXIgQ289VnQuaW5kZXhPZigiLiIpLWJyLHBvPVZ0Lmxlbmd0aC1Ubi5sZW5ndGgtQ287cmV0dXJuIEpyKFZ0LnN1'@; put 'YnN0cigwLENvKStUbitWdC5zdWJzdHIoVnQubGVuZ3RoLXBvKSl9aWYobnI9VnQubWF0Y2goL14wMCwwMDBcLihbIzBdKjApJC8pKXJldHVybiBicj12cyhXdCxuclsxXS5sZW5ndGgpLFd0PDA/Ii0iK2hhKGFuLFZ0LC1XdCk6bG8oZnVuY3Rpb24gemwoYW4pe3JldHVybiBhbjwyMTQ3NDgz'@; put 'NjQ3JiZhbj4tMjE0NzQ4MzY0OD8iIisoYW4+PTA/MHxhbjphbi0xfDApOiIiK01hdGguZmxvb3IoYW4pfShXdCkpLnJlcGxhY2UoL15cZCxcZHszfSQvLCIwJCYiKS5yZXBsYWNlKC9eXGQqJC8sZnVuY3Rpb24oVW8pe3JldHVybiIwMCwiKyhVby5sZW5ndGg8Mz9yZSgwLDMtVW8ubGVuZ3Ro'@; put 'KToiIikrVW99KSsiLiIrcmUoYnIsbnJbMV0ubGVuZ3RoKTtzd2l0Y2goVnQpe2Nhc2UiIyMjLCMjMC4wMCI6cmV0dXJuIGhhKGFuLCIjLCMjMC4wMCIsV3QpO2Nhc2UiIyMjLCMjIyI6Y2FzZSIjIywjIyMiOmNhc2UiIywjIyMiOnZhciBWaT1sbyhCZShMciwwKSk7cmV0dXJuIjAiIT09Vmk/'@; put 'TWkrVmk6IiI7Y2FzZSIjIyMsIyMjLjAwIjpyZXR1cm4gaGEoYW4sIiMjIywjIzAuMDAiLFd0KS5yZXBsYWNlKC9eMFwuLywiLiIpO2Nhc2UiIywjIyMuMDAiOnJldHVybiBoYShhbiwiIywjIzAuMDAiLFd0KS5yZXBsYWNlKC9eMFwuLywiLiIpfXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0'@; put 'ZWQgZm9ybWF0IHwiK1Z0KyJ8Iil9ZnVuY3Rpb24gcm4oYW4sVnQpe3ZhciBXdCxkbj1hbi5pbmRleE9mKCJFIiktYW4uaW5kZXhPZigiLiIpLTE7aWYoYW4ubWF0Y2goL14jKzAuMEVcKzAkLykpe2lmKDA9PVZ0KXJldHVybiIwLjBFKzAiO2lmKFZ0PDApcmV0dXJuIi0iK3JuKGFuLC1WdCk7'@; put 'dmFyIFRuPWFuLmluZGV4T2YoIi4iKTstMT09PVRuJiYoVG49YW4uaW5kZXhPZigiRSIpKTt2YXIgbnI9TWF0aC5mbG9vcihNYXRoLmxvZyhWdCkqTWF0aC5MT0cxMEUpJVRuO2lmKG5yPDAmJihucis9VG4pLCEoV3Q9KFZ0L01hdGgucG93KDEwLG5yKSkudG9QcmVjaXNpb24oZG4rMSsoVG4r'@; put 'bnIpJVRuKSkubWF0Y2goL1tFZV0vKSl7dmFyIGJyPU1hdGguZmxvb3IoTWF0aC5sb2coVnQpKk1hdGguTE9HMTBFKTstMT09PVd0LmluZGV4T2YoIi4iKT9XdD1XdC5jaGFyQXQoMCkrIi4iK1d0LnN1YnN0cigxKSsiRSsiKyhici1XdC5sZW5ndGgrbnIpOld0Kz0iRSsiKyhici1uciksV3Q9'@; put 'V3QucmVwbGFjZSgvXCstLywiLSIpfVd0PVd0LnJlcGxhY2UoL14oWystXT8pKFxkKilcLihcZCopW0VlXS8sZnVuY3Rpb24oWnIsTHIsTWksY2kpe3JldHVybiBMcitNaStjaS5zdWJzdHIoMCwoVG4rbnIpJVRuKSsiLiIrY2kuc3Vic3RyKG5yKSsiRSJ9KX1lbHNlIFd0PVZ0LnRvRXhwb25l'@; put 'bnRpYWwoZG4pO3JldHVybiBhbi5tYXRjaCgvRVwrMDAkLykmJld0Lm1hdGNoKC9lWystXVxkJC8pJiYoV3Q9V3Quc3Vic3RyKDAsV3QubGVuZ3RoLTEpKyIwIitXdC5jaGFyQXQoV3QubGVuZ3RoLTEpKSxhbi5tYXRjaCgvRVwtLykmJld0Lm1hdGNoKC9lXCsvKSYmKFd0PVd0LnJlcGxhY2Uo'@; put 'L2VcKy8sImUiKSksV3QucmVwbGFjZSgiZSIsIkUiKX1mdW5jdGlvbiBfbihhbixWdCxXdCl7aWYoNDA9PT1hbi5jaGFyQ29kZUF0KDApJiYhVnQubWF0Y2gob2kpKXt2YXIgZG49VnQucmVwbGFjZSgvXCggKi8sIiIpLnJlcGxhY2UoLyBcKS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJu'@; put 'IFd0Pj0wP19uKCJuIixkbixXdCk6IigiK19uKCJuIixkbiwtV3QpKyIpIn1pZig0ND09PVZ0LmNoYXJDb2RlQXQoVnQubGVuZ3RoLTEpKXJldHVybiBmdW5jdGlvbiB5ZihhbixWdCxXdCl7Zm9yKHZhciBkbj1WdC5sZW5ndGgtMTs0ND09PVZ0LmNoYXJDb2RlQXQoZG4tMSk7KS0tZG47cmV0'@; put 'dXJuIEFvKGFuLFZ0LnN1YnN0cigwLGRuKSxXdC9NYXRoLnBvdygxMCwzKihWdC5sZW5ndGgtZG4pKSl9KGFuLFZ0LFd0KTtpZigtMSE9PVZ0LmluZGV4T2YoIiUiKSlyZXR1cm4gZnVuY3Rpb24gb3AoYW4sVnQsV3Qpe3ZhciBkbj1WdC5yZXBsYWNlKGduLCIiKSxUbj1WdC5sZW5ndGgtZG4u'@; put 'bGVuZ3RoO3JldHVybiBBbyhhbixkbixXdCpNYXRoLnBvdygxMCwyKlRuKSkrUSgiJSIsVG4pfShhbixWdCxXdCk7aWYoLTEhPT1WdC5pbmRleE9mKCJFIikpcmV0dXJuIHJuKFZ0LFd0KTtpZigzNj09PVZ0LmNoYXJDb2RlQXQoMCkpcmV0dXJuIiQiK19uKGFuLFZ0LnN1YnN0cigiICI9PVZ0'@; put 'LmNoYXJBdCgxKT8yOjEpLFd0KTt2YXIgVG4sbnIsYnIsWnIsTHI9TWF0aC5hYnMoV3QpLE1pPVd0PDA/Ii0iOiIiO2lmKFZ0Lm1hdGNoKC9eMDArJC8pKXJldHVybiBNaStyZShMcixWdC5sZW5ndGgpO2lmKFZ0Lm1hdGNoKC9eWyM/XSskLykpcmV0dXJuIFRuPSIiK1d0LDA9PT1XdCYmKFRu'@; put 'PSIiKSxUbi5sZW5ndGg+VnQubGVuZ3RoP1RuOkpyKFZ0LnN1YnN0cigwLFZ0Lmxlbmd0aC1Ubi5sZW5ndGgpKStUbjtpZihucj1WdC5tYXRjaChlaSkpcmV0dXJuIGZ1bmN0aW9uIHJpKGFuLFZ0LFd0KXtyZXR1cm4gV3QrKDA9PT1WdD8iIjoiIitWdCkrUSgiICIsYW5bMV0ubGVuZ3RoKzIr'@; put 'YW5bNF0ubGVuZ3RoKX0obnIsTHIsTWkpO2lmKFZ0Lm1hdGNoKC9eIyswKyQvKSlyZXR1cm4gTWkrcmUoTHIsVnQubGVuZ3RoLVZ0LmluZGV4T2YoIjAiKSk7aWYobnI9VnQubWF0Y2gobW8pKXJldHVybiBUbj0oVG49KCIiK1d0KS5yZXBsYWNlKC9eKFteXC5dKykkLywiJDEuIitKcihuclsx'@; put 'XSkpLnJlcGxhY2UoL1wuJC8sIi4iK0pyKG5yWzFdKSkpLnJlcGxhY2UoL1wuKFxkKikkLyxmdW5jdGlvbihVbyx0aSl7cmV0dXJuIi4iK3RpK1EoIjAiLEpyKG5yWzFdKS5sZW5ndGgtdGkubGVuZ3RoKX0pLC0xIT09VnQuaW5kZXhPZigiMC4iKT9UbjpUbi5yZXBsYWNlKC9eMFwuLywiLiIp'@; put 'O2lmKFZ0PVZ0LnJlcGxhY2UoL14jKyhbMC5dKS8sIiQxIiksbnI9VnQubWF0Y2goL14oMCopXC4oIyopJC8pKXJldHVybiBNaSsoIiIrTHIpLnJlcGxhY2UoL1wuKFxkKlsxLTldKTAqJC8sIi4kMSIpLnJlcGxhY2UoL14oLT9cZCopJC8sIiQxLiIpLnJlcGxhY2UoL14wXC4vLG5yWzFdLmxl'@; put 'bmd0aD8iMC4iOiIuIik7aWYobnI9VnQubWF0Y2goL14jezEsM30sIyMwKFwuPykkLykpcmV0dXJuIE1pK2xvKCIiK0xyKTtpZihucj1WdC5tYXRjaCgvXiMsIyMwXC4oWyMwXSowKSQvKSlyZXR1cm4gV3Q8MD8iLSIrX24oYW4sVnQsLVd0KTpsbygiIitXdCkrIi4iK1EoIjAiLG5yWzFdLmxl'@; put 'bmd0aCk7aWYobnI9VnQubWF0Y2goL14jLCMqLCMwLykpcmV0dXJuIF9uKGFuLFZ0LnJlcGxhY2UoL14jLCMqLC8sIiIpLFd0KTtpZihucj1WdC5tYXRjaCgvXihbMCNdKykoXFw/LShbMCNdKykpKyQvKSlyZXR1cm4gVG49TChfbihhbixWdC5yZXBsYWNlKC9bXFwtXS9nLCIiKSxXdCkpLGJy'@; put 'PTAsTChMKFZ0LnJlcGxhY2UoL1xcL2csIiIpKS5yZXBsYWNlKC9bMCNdL2csZnVuY3Rpb24oVW8pe3JldHVybiBicjxUbi5sZW5ndGg/VG4uY2hhckF0KGJyKyspOiIwIj09PVVvPyIwIjoiIn0pKTtpZihWdC5tYXRjaCh6aSkpcmV0dXJuIigiKyhUbj1fbihhbiwiIyMjIyMjIyMjIyIsV3Qp'@; put 'KS5zdWJzdHIoMCwzKSsiKSAiK1RuLnN1YnN0cigzLDMpKyItIitUbi5zdWJzdHIoNik7dmFyIGNpPSIiO2lmKG5yPVZ0Lm1hdGNoKC9eKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gYnI9TWF0aC5taW4obnJbNF0ubGVuZ3RoLDcpLFpyPVp0KExyLE1hdGgucG93KDEwLGJy'@; put 'KS0xLCExKSxUbj0iIitNaSwiICI9PShjaT1BbygibiIsbnJbMV0sWnJbMV0pKS5jaGFyQXQoY2kubGVuZ3RoLTEpJiYoY2k9Y2kuc3Vic3RyKDAsY2kubGVuZ3RoLTEpKyIwIiksVG4rPWNpK25yWzJdKyIvIituclszXSwoY2k9X2UoWnJbMl0sYnIpKS5sZW5ndGg8bnJbNF0ubGVuZ3RoJiYo'@; put 'Y2k9SnIobnJbNF0uc3Vic3RyKG5yWzRdLmxlbmd0aC1jaS5sZW5ndGgpKStjaSksVG4rPWNpO2lmKG5yPVZ0Lm1hdGNoKC9eIyAoWyMwP10rKSggPylcLyggPykoWyMwP10rKS8pKXJldHVybiBicj1NYXRoLm1pbihNYXRoLm1heChuclsxXS5sZW5ndGgsbnJbNF0ubGVuZ3RoKSw3KSxNaSso'@; put 'KFpyPVp0KExyLE1hdGgucG93KDEwLGJyKS0xLCEwKSlbMF18fChaclsxXT8iIjoiMCIpKSsiICIrKFpyWzFdP2dlKFpyWzFdLGJyKStuclsyXSsiLyIrbnJbM10rX2UoWnJbMl0sYnIpOlEoIiAiLDIqYnIrMStuclsyXS5sZW5ndGgrbnJbM10ubGVuZ3RoKSk7aWYobnI9VnQubWF0Y2goL15b'@; put 'IzA/XSskLykpcmV0dXJuIFZ0Lmxlbmd0aDw9KFRuPSIiK1d0KS5sZW5ndGg/VG46SnIoVnQuc3Vic3RyKDAsVnQubGVuZ3RoLVRuLmxlbmd0aCkpK1RuO2lmKG5yPVZ0Lm1hdGNoKC9eKFsjMF0rKVwuKFsjMF0rKSQvKSl7VG49IiIrV3QudG9GaXhlZChNYXRoLm1pbihuclsyXS5sZW5ndGgs'@; put 'MTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLGJyPVRuLmluZGV4T2YoIi4iKTt2YXIgQ289VnQuaW5kZXhPZigiLiIpLWJyLHBvPVZ0Lmxlbmd0aC1Ubi5sZW5ndGgtQ287cmV0dXJuIEpyKFZ0LnN1YnN0cigwLENvKStUbitWdC5zdWJzdHIoVnQubGVuZ3RoLXBvKSl9aWYobnI9VnQu'@; put 'bWF0Y2goL14wMCwwMDBcLihbIzBdKjApJC8pKXJldHVybiBXdDwwPyItIitfbihhbixWdCwtV3QpOmxvKCIiK1d0KS5yZXBsYWNlKC9eXGQsXGR7M30kLywiMCQmIikucmVwbGFjZSgvXlxkKiQvLGZ1bmN0aW9uKFVvKXtyZXR1cm4iMDAsIisoVW8ubGVuZ3RoPDM/cmUoMCwzLVVvLmxlbmd0'@; put 'aCk6IiIpK1VvfSkrIi4iK3JlKDAsbnJbMV0ubGVuZ3RoKTt2YXIgVmk9bG8oIiIrTHIpO3N3aXRjaChWdCl7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMjIyI6cmV0dXJuIjAiIT09Vmk/TWkrVmk6IiI7Y2FzZSIjLCMwMCI6cmV0dXJuIjAwIiE9PShWaT1yZShWaSwyKSk/'@; put 'TWkrVmk6IiI7ZGVmYXVsdDppZihWdC5tYXRjaCgvXC5bMCM/XSokLykpcmV0dXJuIF9uKGFuLFZ0LnNsaWNlKDAsVnQubGFzdEluZGV4T2YoIi4iKSksV3QpK0pyKFZ0LnNsaWNlKFZ0Lmxhc3RJbmRleE9mKCIuIikpKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IitW'@; put 'dCsifCIpfXJldHVybiBmdW5jdGlvbihWdCxXdCxkbil7cmV0dXJuIjAsMCI9PVd0JiYoV3Q9IiMsIzAwIiksKDB8ZG4pPT09ZG4/X24oVnQsV3QsZG4pOmhhKFZ0LFd0LGRuKX19KCk7ZnVuY3Rpb24geG8oS3Qpe2Zvcih2YXIgZ249W10sTG49ITEsV3I9MCxYbj0wO1dyPEt0Lmxlbmd0aDsr'@; put 'K1dyKXN3aXRjaChLdC5jaGFyQ29kZUF0KFdyKSl7Y2FzZSAzNDpMbj0hTG47YnJlYWs7Y2FzZSA5NTpjYXNlIDQyOmNhc2UgOTI6KytXcjticmVhaztjYXNlIDU5OmduW2duLmxlbmd0aF09S3Quc3Vic3RyKFhuLFdyLVhuKSxYbj1XcisxfWlmKGduW2duLmxlbmd0aF09S3Quc3Vic3RyKFhu'@; put 'KSwhMD09PUxuKXRocm93IG5ldyBFcnJvcigiRm9ybWF0IHwiK0t0KyJ8IHVudGVybWluYXRlZCBzdHJpbmcgIik7cmV0dXJuIGdufVAuX3NwbGl0PXhvO3ZhciBoaT0vXFtbSGhNbVNzXHUwRTBBXHUwRTE5XHUwRTE3XSpcXS87ZnVuY3Rpb24gdGEoS3Qpe2Zvcih2YXIgZ249MCxMbj0iIixX'@; put 'cj0iIjtnbjxLdC5sZW5ndGg7KXN3aXRjaChMbj1LdC5jaGFyQXQoZ24pKXtjYXNlIkciOkdlKEt0LGduKSYmKGduKz02KSxnbisrO2JyZWFrO2Nhc2UnIic6Zm9yKDszNCE9PUt0LmNoYXJDb2RlQXQoKytnbikmJmduPEt0Lmxlbmd0aDspOysrZ247YnJlYWs7Y2FzZSJcXCI6Y2FzZSJfIjpn'@; put 'bis9MjticmVhaztjYXNlIkAiOisrZ247YnJlYWs7Y2FzZSJCIjpjYXNlImIiOmlmKCIxIj09PUt0LmNoYXJBdChnbisxKXx8IjIiPT09S3QuY2hhckF0KGduKzEpKXJldHVybiEwO2Nhc2UiTSI6Y2FzZSJEIjpjYXNlIlkiOmNhc2UiSCI6Y2FzZSJTIjpjYXNlIkUiOmNhc2UibSI6Y2FzZSJk'@; put 'IjpjYXNlInkiOmNhc2UiaCI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiZyI6cmV0dXJuITA7Y2FzZSJBIjpjYXNlImEiOmNhc2UiXHU0ZTBhIjppZigiQS9QIj09PUt0LnN1YnN0cihnbiwzKS50b1VwcGVyQ2FzZSgpfHwiQU0vUE0iPT09S3Quc3Vic3RyKGduLDUpLnRvVXBwZXJDYXNlKCl8fCJc'@; put 'dTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4Ij09PUt0LnN1YnN0cihnbiw1KS50b1VwcGVyQ2FzZSgpKXJldHVybiEwOysrZ247YnJlYWs7Y2FzZSJbIjpmb3IoV3I9TG47Il0iIT09S3QuY2hhckF0KGduKyspJiZnbjxLdC5sZW5ndGg7KVdyKz1LdC5jaGFyQXQoZ24pO2lmKFdyLm1hdGNoKGhp'@; put 'KSlyZXR1cm4hMDticmVhaztjYXNlIi4iOmNhc2UiMCI6Y2FzZSIjIjpmb3IoO2duPEt0Lmxlbmd0aCYmKCIwIz8uLEUrLSUiLmluZGV4T2YoTG49S3QuY2hhckF0KCsrZ24pKT4tMXx8IlxcIj09TG4mJiItIj09S3QuY2hhckF0KGduKzEpJiYiMCMiLmluZGV4T2YoS3QuY2hhckF0KGduKzIp'@; put 'KT4tMSk7KTticmVhaztjYXNlIj8iOmZvcig7S3QuY2hhckF0KCsrZ24pPT09TG47KTticmVhaztjYXNlIioiOisrZ24sKCIgIj09S3QuY2hhckF0KGduKXx8IioiPT1LdC5jaGFyQXQoZ24pKSYmKytnbjticmVhaztjYXNlIigiOmNhc2UiKSI6KytnbjticmVhaztjYXNlIjEiOmNhc2UiMiI6'@; put 'Y2FzZSIzIjpjYXNlIjQiOmNhc2UiNSI6Y2FzZSI2IjpjYXNlIjciOmNhc2UiOCI6Y2FzZSI5Ijpmb3IoO2duPEt0Lmxlbmd0aCYmIjAxMjM0NTY3ODkiLmluZGV4T2YoS3QuY2hhckF0KCsrZ24pKT4tMTspO2JyZWFrO2RlZmF1bHQ6Kytnbn1yZXR1cm4hMX1mdW5jdGlvbiBNbihLdCxnbixM'@; put 'bixXcil7Zm9yKHZhciBvaSx6aSxKcixYbj1bXSxlaT0iIixpcj0wLHJpPSIiLG1vPSJ0Iix3cz0iSCI7aXI8S3QubGVuZ3RoOylzd2l0Y2gocmk9S3QuY2hhckF0KGlyKSl7Y2FzZSJHIjppZighR2UoS3QsaXIpKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK3Jp'@; put 'KyIgaW4gIitLdCk7WG5bWG4ubGVuZ3RoXT17dDoiRyIsdjoiR2VuZXJhbCJ9LGlyKz03O2JyZWFrO2Nhc2UnIic6Zm9yKGVpPSIiOzM0IT09KEpyPUt0LmNoYXJDb2RlQXQoKytpcikpJiZpcjxLdC5sZW5ndGg7KWVpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEpyKTtYbltYbi5sZW5ndGhdPXt0'@; put 'OiJ0Iix2OmVpfSwrK2lyO2JyZWFrO2Nhc2UiXFwiOnZhciB2cz1LdC5jaGFyQXQoKytpcik7WG5bWG4ubGVuZ3RoXT17dDoiKCI9PT12c3x8IikiPT09dnM/dnM6InQiLHY6dnN9LCsraXI7YnJlYWs7Y2FzZSJfIjpYbltYbi5sZW5ndGhdPXt0OiJ0Iix2OiIgIn0saXIrPTI7YnJlYWs7Y2Fz'@; put 'ZSJAIjpYbltYbi5sZW5ndGhdPXt0OiJUIix2OmdufSwrK2lyO2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjppZigiMSI9PT1LdC5jaGFyQXQoaXIrMSl8fCIyIj09PUt0LmNoYXJBdChpcisxKSl7aWYobnVsbD09b2kmJm51bGw9PShvaT1wbihnbixMbiwiMiI9PT1LdC5jaGFyQXQoaXIrMSkpKSly'@; put 'ZXR1cm4iIjtYbltYbi5sZW5ndGhdPXt0OiJYIix2Okt0LnN1YnN0cihpciwyKX0sbW89cmksaXIrPTI7YnJlYWt9Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNhc2UiRSI6cmk9cmkudG9Mb3dlckNhc2UoKTtjYXNlIm0iOmNhc2UiZCI6Y2FzZSJ5IjpjYXNlImgi'@; put 'OmNhc2UicyI6Y2FzZSJlIjpjYXNlImciOmNhc2UiXHUwZTI3IjpjYXNlIlx1MGUxNCI6Y2FzZSJcdTBlMWIiOmNhc2UiXHUwZTBhIjpjYXNlIlx1MGUxOSI6Y2FzZSJcdTBlMTciOmlmKGduPDB8fG51bGw9PW9pJiZudWxsPT0ob2k9cG4oZ24sTG4pKSlyZXR1cm4iIjtmb3IoZWk9cmk7Kytp'@; put 'cjxLdC5sZW5ndGgmJkt0LmNoYXJBdChpcikudG9Mb3dlckNhc2UoKT09PXJpOyllaSs9cmk7Im0iPT09cmkmJiJoIj09PW1vLnRvTG93ZXJDYXNlKCkmJihyaT0iTSIpLCJoIj09PXJpJiYocmk9d3MpLFhuW1huLmxlbmd0aF09e3Q6cmksdjplaX0sbW89cmk7YnJlYWs7Y2FzZSJBIjpjYXNl'@; put 'ImEiOmNhc2UiXHU0ZTBhIjp2YXIgemw9e3Q6cmksdjpyaX07aWYobnVsbD09b2kmJihvaT1wbihnbixMbikpLCJBL1AiPT09S3Quc3Vic3RyKGlyLDMpLnRvVXBwZXJDYXNlKCk/KG51bGwhPW9pJiYoemwudj1vaS5IPj0xMj8iUCI6IkEiKSx6bC50PSJUIix3cz0iaCIsaXIrPTMpOiJBTS9Q'@; put 'TSI9PT1LdC5zdWJzdHIoaXIsNSkudG9VcHBlckNhc2UoKT8obnVsbCE9b2kmJih6bC52PW9pLkg+PTEyPyJQTSI6IkFNIiksemwudD0iVCIsaXIrPTUsd3M9ImgiKToiXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCI9PT1LdC5zdWJzdHIoaXIsNSkudG9VcHBlckNhc2UoKT8obnVsbCE9b2km'@; put 'Jih6bC52PW9pLkg+PTEyPyJcdTRlMGJcdTUzNDgiOiJcdTRlMGFcdTUzNDgiKSx6bC50PSJUIixpcis9NSx3cz0iaCIpOih6bC50PSJ0IiwrK2lyKSxudWxsPT1vaSYmIlQiPT09emwudClyZXR1cm4iIjtYbltYbi5sZW5ndGhdPXpsLG1vPXJpO2JyZWFrO2Nhc2UiWyI6Zm9yKGVpPXJpOyJd'@; put 'IiE9PUt0LmNoYXJBdChpcisrKSYmaXI8S3QubGVuZ3RoOyllaSs9S3QuY2hhckF0KGlyKTtpZigiXSIhPT1laS5zbGljZSgtMSkpdGhyb3cndW50ZXJtaW5hdGVkICJbIiBibG9jazogfCcrZWkrInwiO2lmKGVpLm1hdGNoKGhpKSl7aWYobnVsbD09b2kmJm51bGw9PShvaT1wbihnbixMbikp'@; put 'KXJldHVybiIiO1huW1huLmxlbmd0aF09e3Q6IloiLHY6ZWkudG9Mb3dlckNhc2UoKX0sbW89ZWkuY2hhckF0KDEpfWVsc2UgZWkuaW5kZXhPZigiJCIpPi0xJiYoZWk9KGVpLm1hdGNoKC9cJChbXi1cW1xdXSopLyl8fFtdKVsxXXx8IiQiLHRhKEt0KXx8KFhuW1huLmxlbmd0aF09e3Q6InQi'@; put 'LHY6ZWl9KSk7YnJlYWs7Y2FzZSIuIjppZihudWxsIT1vaSl7Zm9yKGVpPXJpOysraXI8S3QubGVuZ3RoJiYiMCI9PT0ocmk9S3QuY2hhckF0KGlyKSk7KWVpKz1yaTtYbltYbi5sZW5ndGhdPXt0OiJzIix2OmVpfTticmVha31jYXNlIjAiOmNhc2UiIyI6Zm9yKGVpPXJpOysraXI8S3QubGVu'@; put 'Z3RoJiYiMCM/LixFKy0lIi5pbmRleE9mKHJpPUt0LmNoYXJBdChpcikpPi0xOyllaSs9cmk7WG5bWG4ubGVuZ3RoXT17dDoibiIsdjplaX07YnJlYWs7Y2FzZSI/Ijpmb3IoZWk9cmk7S3QuY2hhckF0KCsraXIpPT09cmk7KWVpKz1yaTtYbltYbi5sZW5ndGhdPXt0OnJpLHY6ZWl9LG1vPXJp'@; put 'O2JyZWFrO2Nhc2UiKiI6KytpciwoIiAiPT1LdC5jaGFyQXQoaXIpfHwiKiI9PUt0LmNoYXJBdChpcikpJiYrK2lyO2JyZWFrO2Nhc2UiKCI6Y2FzZSIpIjpYbltYbi5sZW5ndGhdPXt0OjE9PT1Xcj8idCI6cmksdjpyaX0sKytpcjticmVhaztjYXNlIjEiOmNhc2UiMiI6Y2FzZSIzIjpjYXNl'@; put 'IjQiOmNhc2UiNSI6Y2FzZSI2IjpjYXNlIjciOmNhc2UiOCI6Y2FzZSI5Ijpmb3IoZWk9cmk7aXI8S3QubGVuZ3RoJiYiMDEyMzQ1Njc4OSIuaW5kZXhPZihLdC5jaGFyQXQoKytpcikpPi0xOyllaSs9S3QuY2hhckF0KGlyKTtYbltYbi5sZW5ndGhdPXt0OiJEIix2OmVpfTticmVhaztjYXNl'@; put 'IiAiOlhuW1huLmxlbmd0aF09e3Q6cmksdjpyaX0sKytpcjticmVhaztjYXNlIiQiOlhuW1huLmxlbmd0aF09e3Q6InQiLHY6QnJ9LCsraXI7YnJlYWs7Y2FzZSIvIjpYbltYbi5sZW5ndGhdPVhuLmxlbmd0aD4wJiZ0YShYbltYbi5sZW5ndGgtMV0udik/e3Q6InQiLHY6QW59Ont0OiJ0Iix2'@; put 'OiIvIn0sKytpcjticmVhaztkZWZhdWx0OmlmKC0xPT09IiwkLSsvKCk6IV4mJ357fTw+PVx1MjBhY2FjZmlqa2xvcHFydHV2d3h6UCIuaW5kZXhPZihyaSkpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgY2hhcmFjdGVyICIrcmkrIiBpbiAiK0t0KTtYbltYbi5sZW5ndGhdPXt0OiJ0'@; put 'Iix2OnJpfSwrK2lyfXZhciBvcCxoYT0wLHlmPTA7Zm9yKGlyPVhuLmxlbmd0aC0xLG1vPSJ0Ijtpcj49MDstLWlyKXN3aXRjaChYbltpcl0udCl7Y2FzZSJoIjpjYXNlIkgiOlhuW2lyXS50PXdzLG1vPSJoIixoYTwxJiYoaGE9MSk7YnJlYWs7Y2FzZSJzIjoob3A9WG5baXJdLnYubWF0Y2go'@; put 'L1wuMCskLykpJiYoeWY9TWF0aC5tYXgoeWYsb3BbMF0ubGVuZ3RoLTEpKSxoYTwzJiYoaGE9Myk7Y2FzZSJkIjpjYXNlInkiOmNhc2UiTSI6Y2FzZSJlIjptbz1Ybltpcl0udDticmVhaztjYXNlIm0iOiJzIj09PW1vJiYoWG5baXJdLnQ9Ik0iLGhhPDImJihoYT0yKSk7YnJlYWs7Y2FzZSJY'@; put 'IjpicmVhaztjYXNlIloiOmhhPDEmJlhuW2lyXS52Lm1hdGNoKC9bSGhdLykmJihoYT0xKSxoYTwyJiZYbltpcl0udi5tYXRjaCgvW01tXS8pJiYoaGE9MiksaGE8MyYmWG5baXJdLnYubWF0Y2goL1tTc10vKSYmKGhhPTMpfXN3aXRjaChoYSl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpvaS51Pj0u'@; put 'NSYmKG9pLnU9MCwrK29pLlMpLG9pLlM+PTYwJiYob2kuUz0wLCsrb2kuTSksb2kuTT49NjAmJihvaS5NPTAsKytvaS5IKTticmVhaztjYXNlIDI6b2kudT49LjUmJihvaS51PTAsKytvaS5TKSxvaS5TPj02MCYmKG9pLlM9MCwrK29pLk0pfXZhciBfbixybj0iIjtmb3IoaXI9MDtpcjxYbi5s'@; put 'ZW5ndGg7Kytpcilzd2l0Y2goWG5baXJdLnQpe2Nhc2UidCI6Y2FzZSJUIjpjYXNlIiAiOmNhc2UiRCI6YnJlYWs7Y2FzZSJYIjpYbltpcl0udj0iIixYbltpcl0udD0iOyI7YnJlYWs7Y2FzZSJkIjpjYXNlIm0iOmNhc2UieSI6Y2FzZSJoIjpjYXNlIkgiOmNhc2UiTSI6Y2FzZSJzIjpjYXNl'@; put 'ImUiOmNhc2UiYiI6Y2FzZSJaIjpjYXNlIlx1MGUyNyI6Y2FzZSJcdTBlMTQiOmNhc2UiXHUwZTFiIjpjYXNlIlx1MGUwYSI6Y2FzZSJcdTBlMTkiOmNhc2UiXHUwZTE3IjpYbltpcl0udj1ZbyhYbltpcl0udC5jaGFyQ29kZUF0KDApLFhuW2lyXS52LG9pLHlmKSxYbltpcl0udD0idCI7YnJl'@; put 'YWs7Y2FzZSJuIjpjYXNlIj8iOmZvcihfbj1pcisxO251bGwhPVhuW19uXSYmKCI/Ij09PShyaT1Ybltfbl0udCl8fCJEIj09PXJpfHwoIiAiPT09cml8fCJ0Ij09PXJpKSYmbnVsbCE9WG5bX24rMV0mJigiPyI9PT1YbltfbisxXS50fHwidCI9PT1YbltfbisxXS50JiYiLyI9PT1Ybltfbisx'@; put 'XS52KXx8IigiPT09WG5baXJdLnQmJigiICI9PT1yaXx8Im4iPT09cml8fCIpIj09PXJpKXx8InQiPT09cmkmJigiLyI9PT1Ybltfbl0udnx8IiAiPT09WG5bX25dLnYmJm51bGwhPVhuW19uKzFdJiYiPyI9PVhuW19uKzFdLnQpKTspWG5baXJdLnYrPVhuW19uXS52LFhuW19uXT17djoiIix0'@; put 'OiI7In0sKytfbjtybis9WG5baXJdLnYsaXI9X24tMTticmVhaztjYXNlIkciOlhuW2lyXS50PSJ0IixYbltpcl0udj1qaShnbixMbil9dmFyIFZ0LFd0LGFuPSIiO2lmKHJuLmxlbmd0aD4wKXs0MD09cm4uY2hhckNvZGVBdCgwKT8oVnQ9Z248MCYmNDU9PT1ybi5jaGFyQ29kZUF0KDApPy1n'@; put 'bjpnbixXdD1BbygibiIscm4sVnQpKTooV3Q9QW8oIm4iLHJuLFZ0PWduPDAmJldyPjE/LWduOmduKSxWdDwwJiZYblswXSYmInQiPT1YblswXS50JiYoV3Q9V3Quc3Vic3RyKDEpLFhuWzBdLnY9Ii0iK1huWzBdLnYpKSxfbj0oV3Q9V3QucmVwbGFjZSgvWyxcLl0vZyxmdW5jdGlvbihicil7'@; put 'cmV0dXJuIi4iPT1icj91cjpRcn0pKS5sZW5ndGgtMTt2YXIgZG49WG4ubGVuZ3RoO2Zvcihpcj0wO2lyPFhuLmxlbmd0aDsrK2lyKWlmKG51bGwhPVhuW2lyXSYmInQiIT1Ybltpcl0udCYmWG5baXJdLnYuaW5kZXhPZigiLiIpPi0xKXtkbj1pcjticmVha312YXIgVG49WG4ubGVuZ3RoO2lm'@; put 'KGRuPT09WG4ubGVuZ3RoJiYtMT09PVd0LmluZGV4T2YoIkUiKSl7Zm9yKGlyPVhuLmxlbmd0aC0xO2lyPj0wOy0taXIpbnVsbD09WG5baXJdfHwtMT09PSJuPyIuaW5kZXhPZihYbltpcl0udCl8fChfbj49WG5baXJdLnYubGVuZ3RoLTE/WG5baXJdLnY9V3Quc3Vic3RyKDErKF9uLT1Ybltp'@; put 'cl0udi5sZW5ndGgpLFhuW2lyXS52Lmxlbmd0aCk6X248MD9Ybltpcl0udj0iIjooWG5baXJdLnY9V3Quc3Vic3RyKDAsX24rMSksX249LTEpLFhuW2lyXS50PSJ0IixUbj1pcik7X24+PTAmJlRuPFhuLmxlbmd0aCYmKFhuW1RuXS52PVd0LnN1YnN0cigwLF9uKzEpK1huW1RuXS52KX1lbHNl'@; put 'IGlmKGRuIT09WG4ubGVuZ3RoJiYtMT09PVd0LmluZGV4T2YoIkUiKSl7Zm9yKF9uPVd0LmluZGV4T2YodXIpLTEsaXI9ZG47aXI+PTA7LS1pcilpZihudWxsIT1Ybltpcl0mJi0xIT09Im4/Ii5pbmRleE9mKFhuW2lyXS50KSl7Zm9yKHppPVhuW2lyXS52LmluZGV4T2YoIi4iKT4tMSYmaXI9'@; put 'PT1kbj9Ybltpcl0udi5pbmRleE9mKCIuIiktMTpYbltpcl0udi5sZW5ndGgtMSxhbj1Ybltpcl0udi5zdWJzdHIoemkrMSk7emk+PTA7LS16aSlfbj49MCYmKCIwIj09PVhuW2lyXS52LmNoYXJBdCh6aSl8fCIjIj09PVhuW2lyXS52LmNoYXJBdCh6aSkpJiYoYW49V3QuY2hhckF0KF9uLS0p'@; put 'K2FuKTtYbltpcl0udj1hbixYbltpcl0udD0idCIsVG49aXJ9Zm9yKF9uPj0wJiZUbjxYbi5sZW5ndGgmJihYbltUbl0udj1XdC5zdWJzdHIoMCxfbisxKStYbltUbl0udiksX249V3QuaW5kZXhPZih1cikrMSxpcj1kbjtpcjxYbi5sZW5ndGg7KytpcilpZihudWxsIT1Ybltpcl0mJigtMSE9'@; put 'PSJuPygiLmluZGV4T2YoWG5baXJdLnQpfHxpcj09PWRuKSl7Zm9yKHppPVhuW2lyXS52LmluZGV4T2YodXIpPi0xJiZpcj09PWRuP1huW2lyXS52LmluZGV4T2YodXIpKzE6MCxhbj1Ybltpcl0udi5zdWJzdHIoMCx6aSk7emk8WG5baXJdLnYubGVuZ3RoOysremkpX248V3QubGVuZ3RoJiYo'@; put 'YW4rPVd0LmNoYXJBdChfbisrKSk7WG5baXJdLnY9YW4sWG5baXJdLnQ9InQiLFRuPWlyfX19Zm9yKGlyPTA7aXI8WG4ubGVuZ3RoOysraXIpbnVsbCE9WG5baXJdJiYibj8iLmluZGV4T2YoWG5baXJdLnQpPi0xJiYoWG5baXJdLnY9QW8oWG5baXJdLnQsWG5baXJdLnYsVnQ9V3I+MSYmZ248'@; put 'MCYmaXI+MCYmIi0iPT09WG5baXItMV0udj8tZ246Z24pLnJlcGxhY2UoL1wuL2csdXIpLnJlcGxhY2UoLywvLFFyKSxYbltpcl0udD0idCIpO3ZhciBucj0iIjtmb3IoaXI9MDtpciE9PVhuLmxlbmd0aDsrK2lyKW51bGwhPVhuW2lyXSYmKG5yKz1Ybltpcl0udik7cmV0dXJuIG5yfVAuaXNf'@; put 'ZGF0ZT10YSxQLl9ldmFsPU1uO3ZhciB5cz0vXFtbPTw+XS8sRWw9L1xbKD18Pls9XT98PFs+PV0/KSgtP1xkKyg/OlwuXGQqKT8pXF0vO2Z1bmN0aW9uIHNsKEt0LGduKXtpZihudWxsPT1nbilyZXR1cm4hMTt2YXIgTG49cGFyc2VGbG9hdChnblsyXSk7c3dpdGNoKGduWzFdKXtjYXNlIj0i'@; put 'OmlmKEt0PT1MbilyZXR1cm4hMDticmVhaztjYXNlIj4iOmlmKEt0PkxuKXJldHVybiEwO2JyZWFrO2Nhc2UiPCI6aWYoS3Q8TG4pcmV0dXJuITA7YnJlYWs7Y2FzZSI8PiI6aWYoS3QhPUxuKXJldHVybiEwO2JyZWFrO2Nhc2UiPj0iOmlmKEt0Pj1MbilyZXR1cm4hMDticmVhaztjYXNlIjw9'@; put 'IjppZihLdDw9TG4pcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbnUoS3QsZ24sTG4pe251bGw9PUxuJiYoTG49e30pO3ZhciBXcj0iIjtzd2l0Y2godHlwZW9mIEt0KXtjYXNlInN0cmluZyI6V3I9Im0vZC95eSI9PUt0JiZMbi5kYXRlTkY/TG4uZGF0ZU5GOkt0O2JyZWFrO2Nhc2UibnVt'@; put 'YmVyIjpudWxsPT0oV3I9MTQ9PUt0JiZMbi5kYXRlTkY/TG4uZGF0ZU5GOihudWxsIT1Mbi50YWJsZT9Mbi50YWJsZTpidClbS3RdKSYmKFdyPUxuLnRhYmxlJiZMbi50YWJsZVtGdFtLdF1dfHxidFtGdFtLdF1dKSxudWxsPT1XciYmKFdyPVR0W0t0XXx8IkdlbmVyYWwiKX1pZihHZShXciww'@; put 'KSlyZXR1cm4gamkoZ24sTG4pO2duIGluc3RhbmNlb2YgRGF0ZSYmKGduPXpuKGduLExuLmRhdGUxOTA0KSk7dmFyIFhuPWZ1bmN0aW9uIGdsKEt0LGduKXt2YXIgTG49eG8oS3QpLFdyPUxuLmxlbmd0aCxYbj1MbltXci0xXS5pbmRleE9mKCJAIik7aWYoV3I8NCYmWG4+LTEmJi0tV3IsTG4u'@; put 'bGVuZ3RoPjQpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZmluZCByaWdodCBmb3JtYXQgZm9yIHwiK0xuLmpvaW4oInwiKSsifCIpO2lmKCJudW1iZXIiIT10eXBlb2YgZ24pcmV0dXJuWzQsND09PUxuLmxlbmd0aHx8WG4+LTE/TG5bTG4ubGVuZ3RoLTFdOiJAIl07c3dpdGNoKExuLmxlbmd0'@; put 'aCl7Y2FzZSAxOkxuPVhuPi0xP1siR2VuZXJhbCIsIkdlbmVyYWwiLCJHZW5lcmFsIixMblswXV06W0xuWzBdLExuWzBdLExuWzBdLCJAIl07YnJlYWs7Y2FzZSAyOkxuPVhuPi0xP1tMblswXSxMblswXSxMblswXSxMblsxXV06W0xuWzBdLExuWzFdLExuWzBdLCJAIl07YnJlYWs7Y2FzZSAz'@; put 'OkxuPVhuPi0xP1tMblswXSxMblsxXSxMblswXSxMblsyXV06W0xuWzBdLExuWzFdLExuWzJdLCJAIl19dmFyIGVpPWduPjA/TG5bMF06Z248MD9MblsxXTpMblsyXTtpZigtMT09PUxuWzBdLmluZGV4T2YoIlsiKSYmLTE9PT1MblsxXS5pbmRleE9mKCJbIikpcmV0dXJuW1dyLGVpXTtpZihu'@; put 'dWxsIT1MblswXS5tYXRjaCh5cyl8fG51bGwhPUxuWzFdLm1hdGNoKHlzKSl7dmFyIGlyPUxuWzBdLm1hdGNoKEVsKSxyaT1MblsxXS5tYXRjaChFbCk7cmV0dXJuIHNsKGduLGlyKT9bV3IsTG5bMF1dOnNsKGduLHJpKT9bV3IsTG5bMV1dOltXcixMbltudWxsIT1pciYmbnVsbCE9cmk/Mjox'@; put 'XV19cmV0dXJuW1dyLGVpXX0oV3IsZ24pO2lmKEdlKFhuWzFdKSlyZXR1cm4gamkoZ24sTG4pO2lmKCEwPT09Z24pZ249IlRSVUUiO2Vsc2UgaWYoITE9PT1nbilnbj0iRkFMU0UiO2Vsc2UgaWYoIiI9PT1nbnx8bnVsbD09Z24pcmV0dXJuIiI7cmV0dXJuIE1uKFhuWzFdLGduLExuLFhuWzBd'@; put 'KX1mdW5jdGlvbiB0bChLdCxnbil7aWYoIm51bWJlciIhPXR5cGVvZiBnbil7Z249K2dufHwtMTtmb3IodmFyIExuPTA7TG48MzkyOysrTG4paWYobnVsbCE9YnRbTG5dKXtpZihidFtMbl09PUt0KXtnbj1MbjticmVha319ZWxzZSBnbjwwJiYoZ249TG4pO2duPDAmJihnbj0zOTEpfXJldHVy'@; put 'biBidFtnbl09S3QsZ259UC5sb2FkPXRsLFAuX3RhYmxlPWJ0LFAuZ2V0X3RhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIGJ0fSxQLmxvYWRfdGFibGU9ZnVuY3Rpb24oZ24pe2Zvcih2YXIgTG49MDszOTIhPUxuOysrTG4pdm9pZCAwIT09Z25bTG5dJiZ0bChnbltMbl0sTG4pfSxQLmluaXRfdGFi'@; put 'bGU9Y3QsUC5mb3JtYXQ9bnUsUC5nZXRsb2NhbGU9ZnVuY3Rpb24gdnIoKXtyZXR1cm4ga258fCJlbi1VUyJ9LFAuc2V0bG9jYWxlPWZ1bmN0aW9uIHJyKEt0KXtpZihmdW5jdGlvbiBtcihLdCl7dmFyIGduPTA7c3dpdGNoKChrbnx8IiIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiemgtdHciOmNh'@; put 'c2UiemgtY24iOmNhc2UiamEtanAiOmNhc2Uia28ta3IiOmZvcihnbj0yNztnbjw9MzY7KytnbilkZWxldGUgS3RbZ25dO2Zvcihnbj01MDtnbjw9NTg7KytnbilkZWxldGUgS3RbZ25dO2JyZWFrO2Nhc2UidGgtdGgiOmZvcihnbj01OTtnbjw9NjI7KytnbilkZWxldGUgS3RbZ25dO2Zvcihn'@; put 'bj02Nztnbjw9ODE7KytnbilkZWxldGUgS3RbZ25dfX0oYnQpLGtuPUt0LFNuKGJ0KSx0eXBlb2YgSW50bDwidSIpe3ZhciBnbj1JbnRsLkRhdGVUaW1lRm9ybWF0KEt0KTtpZihnbi5mb3JtYXRUb1BhcnRzKXtmb3IodmFyIExuPWduLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCwwLDUs'@; put 'MCwwLDApKSxXcj0wO1dyPDc7KytXcilkdFtXcl1bMV09SW50bC5EYXRlVGltZUZvcm1hdChLdCx7d2Vla2RheToibG9uZyJ9KS5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKDIwMjAsMCw1K1dyLDAsMCwwKSlbMF0udmFsdWUsZHRbV3JdWzBdPUludGwuRGF0ZVRpbWVGb3JtYXQoS3Qse3dlZWtk'@; put 'YXk6InNob3J0In0pLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCwwLDUrV3IsMCwwLDApKVswXS52YWx1ZTtmb3IodmFyIFhuPTA7WG48MTI7KytYbilDdFtYbl1bMl09SW50bC5EYXRlVGltZUZvcm1hdChLdCx7bW9udGg6ImxvbmcifSkuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIw'@; put 'LFhuLDIsMCwwLDApKVswXS52YWx1ZSxDdFtYbl1bMV09SW50bC5EYXRlVGltZUZvcm1hdChLdCx7bW9udGg6InNob3J0In0pLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCxYbiwyLDAsMCwwKSlbMF0udmFsdWUsQ3RbWG5dWzBdPUN0W1huXVsxXS5zbGljZSgwLDEpO2Zvcih2YXIgZWk9'@; put 'IiIsaXI9MDtpcjxMbi5sZW5ndGg7Kytpcil7dmFyIHJpPUxuW2lyXS52YWx1ZTtzd2l0Y2goTG5baXJdLnR5cGUpe2Nhc2UieWVhciI6ZWkrPTI9PXJpLmxlbmd0aD8ieXkiOiJ5eXl5IjticmVhaztjYXNlIm1vbnRoIjplaSs9IjEiPT1yaT8ibSI6IjAxIj09cmk/Im1tIjpyaT09Q3RbMF1b'@; put 'MV0/Im1tbSI6cmk9PUN0WzBdWzJdPyJtbW1tIjpyaT09Q3RbMF1bMF0/Im1tbW1tIjoibW0iO2JyZWFrO2Nhc2UiZGF5IjplaSs9IjUiPT1yaT8iZCI6IjA1Ij09cmk/ImRkIjpyaT09ZHRbMF1bMF0/ImRkZCI6cmk9PWR0WzBdWzFdPyJkZGRkIjoiZGQiO2JyZWFrO2Nhc2UibGl0ZXJhbCI6'@; put 'ZWkrPXJpLnJlcGxhY2UoLy4vZywiXFwkJiIpLDE9PXJpLmxlbmd0aCYmKEFuPXJpKX19KEt0Lm1hdGNoKC9lbi9pKSYmS3QubWF0Y2goL3VzL2kpfHwhS3QpJiYoZWk9Im0vZC95eSIpLGJ0WzE0XT1laX1lbHNlImphLWpwIj09S3QudG9Mb3dlckNhc2UoKSYmKGJ0WzE0XT0ieXl5eVxcL21c'@; put 'XC9kIik7dmFyIG1vPUludGwuTnVtYmVyRm9ybWF0KEt0LHt9KS5mb3JtYXQoMTIzNDU2Ny44OSk7bW8mJihRcj0obW8ubWF0Y2goLzEoLiopMi8pfHxbXSlbMV0sdXI9KG1vLm1hdGNoKC83KC4qKTgvKXx8W10pWzFdKX1lcltLdC50b0xvd2VyQ2FzZSgpXXx8KGVyW0t0LnRvTG93ZXJDYXNl'@; put 'KCldPXsiLiI6dXIsIiwiOlFyfSksWm49bnQodHI9ZXJbS3QudG9Mb3dlckNhc2UoKV18fGVyWyJlbi11cyJdKX0sUC5ub3JtYWxpemU9ZnVuY3Rpb24gTXMoS3Qpe2Zvcih2YXIgZ249MCxMbj0wLFdyPSIiLFhuPSIiLGVpPSIiLGlyPXRyLnl8fCJ5IixyaT1pci50b1VwcGVyQ2FzZSgpLG1v'@; put 'PXRyLmR8fCJkIixvaT1tby50b1VwcGVyQ2FzZSgpLHppPXRyWyIuIl0sSnI9dHJbIiwiXSx3cz0iMCM/RSstJSIrdHJbIiwiXSt6aTtnbjxLdC5sZW5ndGg7KXN3aXRjaChXcj1LdC5jaGFyQXQoZ24pKXtjYXNlIkciOmduKyssZWkrPVdyO2JyZWFrO2Nhc2UnIic6Zm9yKGVpKz1XcjszNCE9'@; put 'PShMbj1LdC5jaGFyQ29kZUF0KCsrZ24pKSYmZ248S3QubGVuZ3RoOyllaSs9U3RyaW5nLmZyb21DaGFyQ29kZShMbik7ZWkrPSciJywrK2duO2JyZWFrO2Nhc2UiXFwiOmNhc2UiXyI6ZWkrPUt0LnNsaWNlKGduLGduKzIpLGduKz0yO2JyZWFrO2Nhc2UiQCI6ZWkrPVdyLCsrZ247YnJlYWs7'@; put 'Y2FzZSJCIjpjYXNlImIiOisrZ24sZWkrPVdyO2JyZWFrO2Nhc2UgaXI6Y2FzZSByaTpjYXNlIG1vOmNhc2Ugb2k6ZWkrPVpuW1dyLnRvTG93ZXJDYXNlKCldLCsrZ247YnJlYWs7Y2FzZSJNIjpjYXNlIkgiOmNhc2UiUyI6Y2FzZSJFIjpjYXNlIm0iOmNhc2UiaCI6Y2FzZSJzIjpjYXNlImUi'@; put 'OmNhc2UiZyI6Y2FzZSJBIjpjYXNlImEiOmVpKz1XciwrK2duO2JyZWFrO2Nhc2UiWyI6Zm9yKFhuPVdyOyJdIiE9PUt0LmNoYXJBdChnbisrKSYmZ248S3QubGVuZ3RoOylYbis9S3QuY2hhckF0KGduKTtlaSs9WG47YnJlYWs7Y2FzZSBKcjplaSs9JyInK1dyKyciJywrK2duO2JyZWFrO2Nh'@; put 'c2Ugemk6aWYoIShnbjxLdC5sZW5ndGgmJih3cy5pbmRleE9mKFdyPUt0LmNoYXJBdCgrK2duKSk+LTF8fCJcXCI9PVdyJiYiLSI9PUt0LmNoYXJBdChnbisxKSYmIjAjIi5pbmRleE9mKEt0LmNoYXJBdChnbisyKSk+LTEpKSl7ZWkrPSciJyt6aSsnIic7YnJlYWt9V3I9emksLS1nbjtjYXNl'@; put 'IjAiOmNhc2UiIyI6Zm9yKGVpKz1abltXci50b0xvd2VyQ2FzZSgpXXx8V3I7Z248S3QubGVuZ3RoJiYod3MuaW5kZXhPZihXcj1LdC5jaGFyQXQoKytnbikpPi0xfHwiXFwiPT1XciYmIi0iPT1LdC5jaGFyQXQoZ24rMSkmJiIwIyIuaW5kZXhPZihLdC5jaGFyQXQoZ24rMikpPi0xKTspZWkr'@; put 'PVpuW1dyLnRvTG93ZXJDYXNlKCldfHxXcjticmVhaztjYXNlIj8iOmZvcihlaSs9V3I7S3QuY2hhckF0KCsrZ24pPT09V3I7KWVpKz1XcjticmVhaztjYXNlIioiOmVpKz1XciwrK2duLCgiICI9PUt0LmNoYXJBdChnbil8fCIqIj09S3QuY2hhckF0KGduKSkmJihlaSs9S3QuY2hhckF0KGdu'@; put 'KSwrK2duKTticmVhaztjYXNlIigiOmNhc2UiKSI6ZWkrPVdyLCsrZ247YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKGVpKz1XcjtnbjxLdC5sZW5ndGgmJiIwMTIzNDU2Nzg5Ii5pbmRleE9m'@; put 'KEt0LmNoYXJBdCgrK2duKSk+LTE7KWVpKz1LdC5jaGFyQXQoZ24pO2JyZWFrO2RlZmF1bHQ6ZWkrPVdyLCsrZ259cmV0dXJuIGVpfSxQLmdldGN1cnJlbmN5PWZ1bmN0aW9uIHhpKCl7cmV0dXJuIHNpfHwiVVNEIn0sUC5zZXRjdXJyZW5jeT1mdW5jdGlvbiBMaShLdCl7c2k9S3QsQnI9dHlw'@; put 'ZW9mIEludGw8InUiP0ludGwuTnVtYmVyRm9ybWF0KGtuLHtzdHlsZToiY3VycmVuY3kiLGN1cnJlbmN5RGlzcGxheToic3ltYm9sIixjdXJyZW5jeTpLdH0pLmZvcm1hdCgwKS5yZXBsYWNlKC9bMFwuXCxcc10vZywiIik6IiQifX07Sih3KTt2YXIgT2UsbmU9eyJHZW5lcmFsIE51bWJlciI6'@; put 'IkdlbmVyYWwiLCJHZW5lcmFsIERhdGUiOncuX3RhYmxlWzIyXSwiTG9uZyBEYXRlIjoiZGRkZCwgbW1tbSBkZCwgeXl5eSIsIk1lZGl1bSBEYXRlIjp3Ll90YWJsZVsxNV0sIlNob3J0IERhdGUiOncuX3RhYmxlWzE0XSwiTG9uZyBUaW1lIjp3Ll90YWJsZVsxOV0sIk1lZGl1bSBUaW1lIjp3'@; put 'Ll90YWJsZVsxOF0sIlNob3J0IFRpbWUiOncuX3RhYmxlWzIwXSxDdXJyZW5jeTonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyxGaXhlZDp3Ll90YWJsZVsyXSxTdGFuZGFyZDp3Ll90YWJsZVs0XSxQZXJjZW50OncuX3RhYmxlWzEwXSxTY2llbnRpZmljOncuX3RhYmxl'@; put 'WzExXSwiWWVzL05vIjonIlllcyI7IlllcyI7Ik5vIjtAJywiVHJ1ZS9GYWxzZSI6JyJUcnVlIjsiVHJ1ZSI7IkZhbHNlIjtAJywiT24vT2ZmIjonIlllcyI7IlllcyI7Ik5vIjtAJ30sZGU9ezU6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIj'@; put 'LCMjMFxcKScsNzonIiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsODonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJywyMzoiR2VuZXJhbCIsMjQ6IkdlbmVyYWwiLDI1OiJHZW5lcmFsIiwyNjoiR2VuZXJhbCIsMjc6Im0vZC95eSIsMjg6Im0vZC95eSIsMjk6'@; put 'Im0vZC95eSIsMzA6Im0vZC95eSIsMzE6Im0vZC95eSIsMzI6Img6bW06c3MiLDMzOiJoOm1tOnNzIiwzNDoiaDptbTpzcyIsMzU6Img6bW06c3MiLDM2OiJtL2QveXkiLDQxOidfKCogIywjIzBfKTtfKCogKCMsIyMwKTtfKCogIi0iXyk7XyhAXyknLDQyOidfKCIkIiogIywjIzBfKTtfKCIk'@; put 'IiogKCMsIyMwKTtfKCIkIiogIi0iXyk7XyhAXyknLDQzOidfKCogIywjIzAuMDBfKTtfKCogKCMsIyMwLjAwKTtfKCogIi0iPz9fKTtfKEBfKScsNDQ6J18oIiQiKiAjLCMjMC4wMF8pO18oIiQiKiAoIywjIzAuMDApO18oIiQiKiAiLSI/P18pO18oQF8pJyw1MDoibS9kL3l5Iiw1MToibS9k'@; put 'L3l5Iiw1MjoibS9kL3l5Iiw1MzoibS9kL3l5Iiw1NDoibS9kL3l5Iiw1NToibS9kL3l5Iiw1NjoibS9kL3l5Iiw1NzoibS9kL3l5Iiw1ODoibS9kL3l5Iiw1OToiMCIsNjA6IjAuMDAiLDYxOiIjLCMjMCIsNjI6IiMsIyMwLjAwIiw2MzonIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScsNjQ6'@; put 'JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNjU6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDY2OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLDY3OiIwJSIsNjg6IjAuMDAlIiw2OToiIyA/Lz8iLDcwOiIjID8/Lz8/Iiw3MToibS9kL3l5'@; put 'Iiw3MjoibS9kL3l5Iiw3MzoiZC1tbW0teXkiLDc0OiJkLW1tbSIsNzU6Im1tbS15eSIsNzY6Img6bW0iLDc3OiJoOm1tOnNzIiw3ODoibS9kL3l5IGg6bW0iLDc5OiJtbTpzcyIsODA6IltoXTptbTpzcyIsODE6Im1tc3MuMCJ9LGZlPS9bZERdK3xbbU1dK3xbeVllRV0rfFtIaF0rfFtTc10r'@; put 'L2c7IWZ1bmN0aW9uKHkpe3kudmVyc2lvbj0iMS4yLjAiO3ZhciBMPWZ1bmN0aW9uIFAoKXtmb3IodmFyIHZlPTAsU2U9bmV3IEFycmF5KDI1NiksSGU9MDsyNTYhPUhlOysrSGUpU2VbSGVdPXZlPTEmKHZlPTEmKHZlPTEmKHZlPTEmKHZlPTEmKHZlPTEmKHZlPTEmKHZlPTEmKHZlPUhlKT8t'@; put 'MzA2Njc0OTEyXnZlPj4+MTp2ZT4+PjEpPy0zMDY2NzQ5MTJedmU+Pj4xOnZlPj4+MSk/LTMwNjY3NDkxMl52ZT4+PjE6dmU+Pj4xKT8tMzA2Njc0OTEyXnZlPj4+MTp2ZT4+PjEpPy0zMDY2NzQ5MTJedmU+Pj4xOnZlPj4+MSk/LTMwNjY3NDkxMl52ZT4+PjE6dmU+Pj4xKT8tMzA2Njc0OTEy'@; put 'XnZlPj4+MTp2ZT4+PjEpPy0zMDY2NzQ5MTJedmU+Pj4xOnZlPj4+MTtyZXR1cm4gdHlwZW9mIEludDMyQXJyYXk8InUiP25ldyBJbnQzMkFycmF5KFNlKTpTZX0oKTt5LnRhYmxlPUwseS5ic3RyPWZ1bmN0aW9uIFEodmUsU2Upe2Zvcih2YXIgSGU9LTFeU2UsQmU9dmUubGVuZ3RoLTEsR2U9'@; put 'MDtHZTxCZTspSGU9KEhlPUhlPj4+OF5MWzI1NSYoSGVedmUuY2hhckNvZGVBdChHZSsrKSldKT4+PjheTFsyNTUmKEhlXnZlLmNoYXJDb2RlQXQoR2UrKykpXTtyZXR1cm4gR2U9PT1CZSYmKEhlPUhlPj4+OF5MWzI1NSYoSGVedmUuY2hhckNvZGVBdChHZSkpXSksLTFeSGV9LHkuYnVmPWZ1'@; put 'bmN0aW9uIHJlKHZlLFNlKXtpZih2ZS5sZW5ndGg+MWU0KXJldHVybiBmdW5jdGlvbiBnZSh2ZSxTZSl7Zm9yKHZhciBIZT0tMV5TZSxCZT12ZS5sZW5ndGgtNyxHZT0wO0dlPEJlOylIZT0oSGU9KEhlPShIZT0oSGU9KEhlPShIZT0oSGU9SGU+Pj44XkxbMjU1JihIZV52ZVtHZSsrXSldKT4+'@; put 'PjheTFsyNTUmKEhlXnZlW0dlKytdKV0pPj4+OF5MWzI1NSYoSGVedmVbR2UrK10pXSk+Pj44XkxbMjU1JihIZV52ZVtHZSsrXSldKT4+PjheTFsyNTUmKEhlXnZlW0dlKytdKV0pPj4+OF5MWzI1NSYoSGVedmVbR2UrK10pXSk+Pj44XkxbMjU1JihIZV52ZVtHZSsrXSldKT4+PjheTFsyNTUm'@; put 'KEhlXnZlW0dlKytdKV07Zm9yKDtHZTxCZSs3OylIZT1IZT4+PjheTFsyNTUmKEhlXnZlW0dlKytdKV07cmV0dXJuLTFeSGV9KHZlLFNlKTtmb3IodmFyIEhlPS0xXlNlLEJlPXZlLmxlbmd0aC0zLEdlPTA7R2U8QmU7KUhlPShIZT0oSGU9KEhlPUhlPj4+OF5MWzI1NSYoSGVedmVbR2UrK10p'@; put 'XSk+Pj44XkxbMjU1JihIZV52ZVtHZSsrXSldKT4+PjheTFsyNTUmKEhlXnZlW0dlKytdKV0pPj4+OF5MWzI1NSYoSGVedmVbR2UrK10pXTtmb3IoO0dlPEJlKzM7KUhlPUhlPj4+OF5MWzI1NSYoSGVedmVbR2UrK10pXTtyZXR1cm4tMV5IZX0seS5zdHI9ZnVuY3Rpb24gX2UodmUsU2Upe2Zv'@; put 'cih2YXIgbnQsZHQsSGU9LTFeU2UsQmU9MCxHZT12ZS5sZW5ndGg7QmU8R2U7KShudD12ZS5jaGFyQ29kZUF0KEJlKyspKTwxMjg/SGU9SGU+Pj44XkxbMjU1JihIZV5udCldOm50PDIwNDg/SGU9KEhlPUhlPj4+OF5MWzI1NSYoSGVeKDE5MnxudD4+NiYzMSkpXSk+Pj44XkxbMjU1JihIZV4o'@; put 'MTI4fDYzJm50KSldOm50Pj01NTI5NiYmbnQ8NTczNDQ/KG50PTY0KygxMDIzJm50KSxkdD0xMDIzJnZlLmNoYXJDb2RlQXQoQmUrKyksSGU9KEhlPShIZT0oSGU9SGU+Pj44XkxbMjU1JihIZV4oMjQwfG50Pj44JjcpKV0pPj4+OF5MWzI1NSYoSGVeKDEyOHxudD4+MiY2MykpXSk+Pj44Xkxb'@; put 'MjU1JihIZV4oMTI4fGR0Pj42JjE1fCgzJm50KTw8NCkpXSk+Pj44XkxbMjU1JihIZV4oMTI4fDYzJmR0KSldKTpIZT0oSGU9KEhlPUhlPj4+OF5MWzI1NSYoSGVeKDIyNHxudD4+MTImMTUpKV0pPj4+OF5MWzI1NSYoSGVeKDEyOHxudD4+NiY2MykpXSk+Pj44XkxbMjU1JihIZV4oMTI4fDYz'@; put 'Jm50KSldO3JldHVybi0xXkhlfX0oT2U9e30pO3ZhciBXZSxqZT1mdW5jdGlvbigpe3ZhciBTZSxQPXt9O2Z1bmN0aW9uIFEocm4pe2lmKCIvIj09cm4uY2hhckF0KHJuLmxlbmd0aC0xKSlyZXR1cm4tMT09PXJuLnNsaWNlKDAsLTEpLmluZGV4T2YoIi8iKT9ybjpRKHJuLnNsaWNlKDAsLTEp'@; put 'KTt2YXIgX249cm4ubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PV9uP3JuOnJuLnNsaWNlKDAsX24rMSl9ZnVuY3Rpb24gcmUocm4pe2lmKCIvIj09cm4uY2hhckF0KHJuLmxlbmd0aC0xKSlyZXR1cm4gcmUocm4uc2xpY2UoMCwtMSkpO3ZhciBfbj1ybi5sYXN0SW5kZXhPZigiLyIpO3Jl'@; put 'dHVybi0xPT09X24/cm46cm4uc2xpY2UoX24rMSl9ZnVuY3Rpb24gZ2Uocm4sX24peyJzdHJpbmciPT10eXBlb2YgX24mJihfbj1uZXcgRGF0ZShfbikpO3ZhciBhbj1fbi5nZXRIb3VycygpO2FuPShhbj1hbjw8Nnxfbi5nZXRNaW51dGVzKCkpPDw1fF9uLmdldFNlY29uZHMoKT4+PjEscm4u'@; put 'd3JpdGVfc2hpZnQoMixhbik7dmFyIFZ0PV9uLmdldEZ1bGxZZWFyKCktMTk4MDtWdD0oVnQ9VnQ8PDR8X24uZ2V0TW9udGgoKSsxKTw8NXxfbi5nZXREYXRlKCkscm4ud3JpdGVfc2hpZnQoMixWdCl9ZnVuY3Rpb24gdmUocm4pe29sKHJuLDApO2Zvcih2YXIgX249e30sYW49MDtybi5sPD1y'@; put 'bi5sZW5ndGgtNDspe3ZhciBWdD1ybi5yZWFkX3NoaWZ0KDIpLFd0PXJuLnJlYWRfc2hpZnQoMiksZG49cm4ubCtXdCxUbj17fTsyMTU4OT09PVZ0JiYoMSYoYW49cm4ucmVhZF9zaGlmdCgxKSkmJihUbi5tdGltZT1ybi5yZWFkX3NoaWZ0KDQpKSxXdD41JiYoMiZhbiYmKFRuLmF0aW1lPXJu'@; put 'LnJlYWRfc2hpZnQoNCkpLDQmYW4mJihUbi5jdGltZT1ybi5yZWFkX3NoaWZ0KDQpKSksVG4ubXRpbWUmJihUbi5tdD1uZXcgRGF0ZSgxZTMqVG4ubXRpbWUpKSkscm4ubD1kbixfbltWdF09VG59cmV0dXJuIF9ufWZ1bmN0aW9uIEhlKCl7cmV0dXJuIFNlfHwoU2U9Rig3ODc3MykpfWZ1bmN0'@; put 'aW9uIEJlKHJuLF9uKXtpZig4MD09cm5bMF0mJjc1PT1yblsxXSlyZXR1cm4gSnIocm4sX24pO2lmKHJuLmxlbmd0aDw1MTIpdGhyb3cgbmV3IEVycm9yKCJDRkIgZmlsZSBzaXplICIrcm4ubGVuZ3RoKyIgPCA1MTIiKTt2YXIgYW4sV3QsZG4sVG4sbnIsYnIsVnQ9NTEyLFpyPVtdLExyPXJu'@; put 'LnNsaWNlKDAsNTEyKTtvbChMciwwKTt2YXIgTWk9ZnVuY3Rpb24gR2Uocm4pe2lmKDgwPT1ybltybi5sXSYmNzU9PXJuW3JuLmwrMV0pcmV0dXJuWzAsMF07cm4uY2hrKEJyLCJIZWFkZXIgU2lnbmF0dXJlOiAiKSxybi5sKz0xNjt2YXIgX249cm4ucmVhZF9zaGlmdCgyLCJ1Iik7cmV0dXJu'@; put 'W3JuLnJlYWRfc2hpZnQoMiwidSIpLF9uXX0oTHIpO3N3aXRjaChhbj1NaVswXSl7Y2FzZSAzOlZ0PTUxMjticmVhaztjYXNlIDQ6VnQ9NDA5NjticmVhaztjYXNlIDA6aWYoMD09TWlbMV0pcmV0dXJuIEpyKHJuLF9uKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiTWFqb3IgVmVyc2lvbjog'@; put 'RXhwZWN0ZWQgMyBvciA0IHNhdyAiK2FuKX01MTIhPT1WdCYmb2woTHI9cm4uc2xpY2UoMCxWdCksMjgpO3ZhciBjaT1ybi5zbGljZSgwLFZ0KTshZnVuY3Rpb24gbnQocm4sX24pe3ZhciBhbjtzd2l0Y2gocm4ubCs9Mixhbj1ybi5yZWFkX3NoaWZ0KDIpKXtjYXNlIDk6aWYoMyE9X24pdGhy'@; put 'b3cgbmV3IEVycm9yKCJTZWN0b3IgU2hpZnQ6IEV4cGVjdGVkIDkgc2F3ICIrYW4pO2JyZWFrO2Nhc2UgMTI6aWYoNCE9X24pdGhyb3cgbmV3IEVycm9yKCJTZWN0b3IgU2hpZnQ6IEV4cGVjdGVkIDEyIHNhdyAiK2FuKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiU2VjdG9yIFNo'@; put 'aWZ0OiBFeHBlY3RlZCA5IG9yIDEyIHNhdyAiK2FuKX1ybi5jaGsoIjA2MDAiLCJNaW5pIFNlY3RvciBTaGlmdDogIikscm4uY2hrKCIwMDAwMDAwMDAwMDAiLCJSZXNlcnZlZDogIil9KExyLGFuKTt2YXIgQ289THIucmVhZF9zaGlmdCg0LCJpIik7aWYoMz09PWFuJiYwIT09Q28pdGhyb3cg'@; put 'bmV3IEVycm9yKCIjIERpcmVjdG9yeSBTZWN0b3JzOiBFeHBlY3RlZCAwIHNhdyAiK0NvKTtMci5sKz00LFRuPUxyLnJlYWRfc2hpZnQoNCwiaSIpLExyLmwrPTQsTHIuY2hrKCIwMDEwMDAwMCIsIk1pbmkgU3RyZWFtIEN1dG9mZiBTaXplOiAiKSxucj1Mci5yZWFkX3NoaWZ0KDQsImkiKSxX'@; put 'dD1Mci5yZWFkX3NoaWZ0KDQsImkiKSxicj1Mci5yZWFkX3NoaWZ0KDQsImkiKSxkbj1Mci5yZWFkX3NoaWZ0KDQsImkiKTtmb3IodmFyIHBvPS0xLFZpPTA7Vmk8MTA5JiYhKChwbz1Mci5yZWFkX3NoaWZ0KDQsImkiKSk8MCk7KytWaSlacltWaV09cG87dmFyIFVvPWZ1bmN0aW9uIGR0KHJu'@; put 'LF9uKXtmb3IodmFyIGFuPU1hdGguY2VpbChybi5sZW5ndGgvX24pLTEsVnQ9W10sV3Q9MTtXdDxhbjsrK1d0KVZ0W1d0LTFdPXJuLnNsaWNlKFd0Kl9uLChXdCsxKSpfbik7cmV0dXJuIFZ0W2FuLTFdPXJuLnNsaWNlKGFuKl9uKSxWdH0ocm4sVnQpO2J0KGJyLGRuLFVvLFZ0LFpyKTt2YXIg'@; put 'dGk9ZnVuY3Rpb24ga3Qocm4sX24sYW4sVnQpe3ZhciBXdD1ybi5sZW5ndGgsZG49W10sVG49W10sbnI9W10sYnI9W10sWnI9VnQtMSxMcj0wLE1pPTAsY2k9MCxDbz0wO2ZvcihMcj0wO0xyPFd0OysrTHIpaWYobnI9W10sKGNpPUxyK19uKT49V3QmJihjaS09V3QpLCFUbltjaV0pe2JyPVtd'@; put 'O3ZhciBwbz1bXTtmb3IoTWk9Y2k7TWk+PTA7KXtwb1tNaV09ITAsVG5bTWldPSEwLG5yW25yLmxlbmd0aF09TWksYnIucHVzaChybltNaV0pO3ZhciBWaT1hbltNYXRoLmZsb29yKDQqTWkvVnQpXTtpZihWdDw0KyhDbz00Kk1pJlpyKSl0aHJvdyBuZXcgRXJyb3IoIkZBVCBib3VuZGFyeSBj'@; put 'cm9zc2VkOiAiK01pKyIgNCAiK1Z0KTtpZighcm5bVmldfHxwb1tNaT1vcyhybltWaV0sQ28pXSlicmVha31kbltjaV09e25vZGVzOm5yLGRhdGE6U2EoW2JyXSl9fXJldHVybiBkbn0oVW8sVG4sWnIsVnQpO3RpW1RuXS5uYW1lPSIhRGlyZWN0b3J5IixXdD4wJiZuciE9PVpuJiYodGlbbnJd'@; put 'Lm5hbWU9IiFNaW5pRkFUIiksdGlbWnJbMF1dLm5hbWU9IiFGQVQiLHRpLmZhdF9hZGRycz1acix0aS5zc3o9VnQ7dmFyIGNjPVtdLE51PVtdLFY2PVtdOyhmdW5jdGlvbiBUdChybixfbixhbixWdCxXdCxkbixUbixucil7Zm9yKHZhciBDbyxicj0wLFpyPVZ0Lmxlbmd0aD8yOjAsTHI9X25b'@; put 'cm5dLmRhdGEsTWk9MCxjaT0wO01pPExyLmxlbmd0aDtNaSs9MTI4KXt2YXIgcG89THIuc2xpY2UoTWksTWkrMTI4KTtvbChwbyw2NCksY2k9cG8ucmVhZF9zaGlmdCgyKSxDbz1FdShwbywwLGNpLVpyKSxWdC5wdXNoKENvKTt2YXIgVmk9e25hbWU6Q28sdHlwZTpwby5yZWFkX3NoaWZ0KDEp'@; put 'LGNvbG9yOnBvLnJlYWRfc2hpZnQoMSksTDpwby5yZWFkX3NoaWZ0KDQsImkiKSxSOnBvLnJlYWRfc2hpZnQoNCwiaSIpLEM6cG8ucmVhZF9zaGlmdCg0LCJpIiksY2xzaWQ6cG8ucmVhZF9zaGlmdCgxNiksc3RhdGU6cG8ucmVhZF9zaGlmdCg0LCJpIiksc3RhcnQ6MCxzaXplOjB9OzAhPT1w'@; put 'by5yZWFkX3NoaWZ0KDIpK3BvLnJlYWRfc2hpZnQoMikrcG8ucmVhZF9zaGlmdCgyKStwby5yZWFkX3NoaWZ0KDIpJiYoVmkuY3Q9WnQocG8scG8ubC04KSksMCE9PXBvLnJlYWRfc2hpZnQoMikrcG8ucmVhZF9zaGlmdCgyKStwby5yZWFkX3NoaWZ0KDIpK3BvLnJlYWRfc2hpZnQoMikmJihW'@; put 'aS5tdD1adChwbyxwby5sLTgpKSxWaS5zdGFydD1wby5yZWFkX3NoaWZ0KDQsImkiKSxWaS5zaXplPXBvLnJlYWRfc2hpZnQoNCwiaSIpLFZpLnNpemU8MCYmVmkuc3RhcnQ8MCYmKFZpLnNpemU9VmkudHlwZT0wLFZpLnN0YXJ0PVpuLFZpLm5hbWU9IiIpLDU9PT1WaS50eXBlPyhicj1WaS5z'@; put 'dGFydCxXdD4wJiZiciE9PVpuJiYoX25bYnJdLm5hbWU9IiFTdHJlYW1EYXRhIikpOlZpLnNpemU+PTQwOTY/KFZpLnN0b3JhZ2U9ImZhdCIsdm9pZCAwPT09X25bVmkuc3RhcnRdJiYoX25bVmkuc3RhcnRdPUZ0KGFuLFZpLnN0YXJ0LF9uLmZhdF9hZGRycyxfbi5zc3opKSxfbltWaS5zdGFy'@; put 'dF0ubmFtZT1WaS5uYW1lLFZpLmNvbnRlbnQ9X25bVmkuc3RhcnRdLmRhdGEuc2xpY2UoMCxWaS5zaXplKSk6KFZpLnN0b3JhZ2U9Im1pbmlmYXQiLFZpLnNpemU8MD9WaS5zaXplPTA6YnIhPT1abiYmVmkuc3RhcnQhPT1abiYmX25bYnJdJiYoVmkuY29udGVudD1jdChWaSxfblticl0uZGF0'@; put 'YSwoX25bbnJdfHx7fSkuZGF0YSkpKSxWaS5jb250ZW50JiZvbChWaS5jb250ZW50LDApLGRuW0NvXT1WaSxUbi5wdXNoKFZpKX19KShUbix0aSxVbyxjYyxXdCx7fSxOdSxuciksZnVuY3Rpb24gQ3Qocm4sX24sYW4pe2Zvcih2YXIgVnQ9MCxXdD0wLGRuPTAsVG49MCxucj0wLGJyPWFuLmxl'@; put 'bmd0aCxacj1bXSxMcj1bXTtWdDxicjsrK1Z0KVpyW1Z0XT1McltWdF09VnQsX25bVnRdPWFuW1Z0XTtmb3IoO25yPExyLmxlbmd0aDsrK25yKVd0PXJuW1Z0PUxyW25yXV0uTCxkbj1ybltWdF0uUixUbj1ybltWdF0uQyxacltWdF09PT1WdCYmKC0xIT09V3QmJlpyW1d0XSE9PVd0JiYoWnJb'@; put 'VnRdPVpyW1d0XSksLTEhPT1kbiYmWnJbZG5dIT09ZG4mJihacltWdF09WnJbZG5dKSksLTEhPT1UbiYmKFpyW1RuXT1WdCksLTEhPT1XdCYmVnQhPVpyW1Z0XSYmKFpyW1d0XT1acltWdF0sTHIubGFzdEluZGV4T2YoV3QpPG5yJiZMci5wdXNoKFd0KSksLTEhPT1kbiYmVnQhPVpyW1Z0XSYm'@; put 'KFpyW2RuXT1acltWdF0sTHIubGFzdEluZGV4T2YoZG4pPG5yJiZMci5wdXNoKGRuKSk7Zm9yKFZ0PTE7VnQ8YnI7KytWdClacltWdF09PT1WdCYmKC0xIT09ZG4mJlpyW2RuXSE9PWRuP1pyW1Z0XT1acltkbl06LTEhPT1XdCYmWnJbV3RdIT09V3QmJihacltWdF09WnJbV3RdKSk7Zm9yKFZ0'@; put 'PTE7VnQ8YnI7KytWdClpZigwIT09cm5bVnRdLnR5cGUpe2lmKChucj1WdCkhPVpyW25yXSlkb3tfbltWdF09X25bbnI9WnJbbnJdXSsiLyIrX25bVnRdfXdoaWxlKDAhPT1uciYmLTEhPT1acltucl0mJm5yIT1acltucl0pO1pyW1Z0XT0tMX1mb3IoX25bMF0rPSIvIixWdD0xO1Z0PGJyOysr'@; put 'VnQpMiE9PXJuW1Z0XS50eXBlJiYoX25bVnRdKz0iLyIpfShOdSxWNixjYyksY2Muc2hpZnQoKTt2YXIgd2Y9e0ZpbGVJbmRleDpOdSxGdWxsUGF0aHM6VjZ9O3JldHVybiBfbiYmX24ucmF3JiYod2YucmF3PXtoZWFkZXI6Y2ksc2VjdG9yczpVb30pLHdmfWZ1bmN0aW9uIGN0KHJuLF9uLGFu'@; put 'KXtmb3IodmFyIFd0PXJuLnNpemUsZG49W10sVG49cm4uc3RhcnQ7YW4mJld0PjAmJlRuPj0wOylkbi5wdXNoKF9uLnNsaWNlKFRuKnRyLFRuKnRyK3RyKSksV3QtPXRyLFRuPW9zKGFuLDQqVG4pO3JldHVybiAwPT09ZG4ubGVuZ3RoP3ByKDApOlMoZG4pLnNsaWNlKDAscm4uc2l6ZSl9ZnVu'@; put 'Y3Rpb24gYnQocm4sX24sYW4sVnQsV3Qpe3ZhciBkbj1abjtpZihybj09PVpuKXtpZigwIT09X24pdGhyb3cgbmV3IEVycm9yKCJESUZBVCBjaGFpbiBzaG9ydGVyIHRoYW4gZXhwZWN0ZWQiKX1lbHNlIGlmKC0xIT09cm4pe3ZhciBUbj1hbltybl0sbnI9KFZ0Pj4+MiktMTtpZighVG4pcmV0'@; put 'dXJuO2Zvcih2YXIgYnI9MDticjxuciYmKGRuPW9zKFRuLDQqYnIpKSE9PVpuOysrYnIpV3QucHVzaChkbik7YnQob3MoVG4sVnQtNCksX24tMSxhbixWdCxXdCl9fWZ1bmN0aW9uIEZ0KHJuLF9uLGFuLFZ0LFd0KXt2YXIgZG49W10sVG49W107V3R8fChXdD1bXSk7dmFyIG5yPVZ0LTEsYnI9'@; put 'MCxacj0wO2Zvcihicj1fbjticj49MDspe1d0W2JyXT0hMCxkbltkbi5sZW5ndGhdPWJyLFRuLnB1c2gocm5bYnJdKTt2YXIgTHI9YW5bTWF0aC5mbG9vcig0KmJyL1Z0KV07aWYoVnQ8NCsoWnI9NCpiciZucikpdGhyb3cgbmV3IEVycm9yKCJGQVQgYm91bmRhcnkgY3Jvc3NlZDogIiticisi'@; put 'IDQgIitWdCk7aWYoIXJuW0xyXSlicmVhazticj1vcyhybltMcl0sWnIpfXJldHVybntub2RlczpkbixkYXRhOlNhKFtUbl0pfX1mdW5jdGlvbiBadChybixfbil7cmV0dXJuIG5ldyBEYXRlKDFlMyooYmkocm4sX24rNCkvMWU3Kk1hdGgucG93KDIsMzIpK2JpKHJuLF9uKS8xZTctMTE2NDQ0'@; put 'NzM2MDApKX1mdW5jdGlvbiB1bihybixfbil7dmFyIGFuPV9ufHx7fSxWdD1hbi5yb290fHwiUm9vdCBFbnRyeSI7aWYocm4uRnVsbFBhdGhzfHwocm4uRnVsbFBhdGhzPVtdKSxybi5GaWxlSW5kZXh8fChybi5GaWxlSW5kZXg9W10pLHJuLkZ1bGxQYXRocy5sZW5ndGghPT1ybi5GaWxlSW5k'@; put 'ZXgubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiaW5jb25zaXN0ZW50IENGQiBzdHJ1Y3R1cmUiKTswPT09cm4uRnVsbFBhdGhzLmxlbmd0aCYmKHJuLkZ1bGxQYXRoc1swXT1WdCsiLyIscm4uRmlsZUluZGV4WzBdPXtuYW1lOlZ0LHR5cGU6NX0pLGFuLkNMU0lEJiYocm4uRmlsZUluZGV4WzBd'@; put 'LmNsc2lkPWFuLkNMU0lEKSxmdW5jdGlvbiBxbihybil7dmFyIF9uPSJceDAxU2gzM3RKNSI7aWYoIWplLmZpbmQocm4sIi8iK19uKSl7dmFyIGFuPXByKDQpO2FuWzBdPTU1LGFuWzFdPWFuWzNdPTUwLGFuWzJdPTU0LHJuLkZpbGVJbmRleC5wdXNoKHtuYW1lOl9uLHR5cGU6Mixjb250ZW50'@; put 'OmFuLHNpemU6NCxMOjY5LFI6NjksQzo2OX0pLHJuLkZ1bGxQYXRocy5wdXNoKHJuLkZ1bGxQYXRoc1swXStfbiksem4ocm4pfX0ocm4pfWZ1bmN0aW9uIHpuKHJuLF9uKXt1bihybik7Zm9yKHZhciBhbj0hMSxWdD0hMSxXdD1ybi5GdWxsUGF0aHMubGVuZ3RoLTE7V3Q+PTA7LS1XdCl7dmFy'@; put 'IGRuPXJuLkZpbGVJbmRleFtXdF07c3dpdGNoKGRuLnR5cGUpe2Nhc2UgMDpWdD9hbj0hMDoocm4uRmlsZUluZGV4LnBvcCgpLHJuLkZ1bGxQYXRocy5wb3AoKSk7YnJlYWs7Y2FzZSAxOmNhc2UgMjpjYXNlIDU6VnQ9ITAsaXNOYU4oZG4uUipkbi5MKmRuLkMpJiYoYW49ITApLGRuLlI+LTEm'@; put 'JmRuLkw+LTEmJmRuLlI9PWRuLkwmJihhbj0hMCk7YnJlYWs7ZGVmYXVsdDphbj0hMH19aWYoYW58fF9uKXt2YXIgVG49bmV3IERhdGUoMTk4NywxLDE5KSxucj0wLGJyPVtdO2ZvcihXdD0wO1d0PHJuLkZ1bGxQYXRocy5sZW5ndGg7KytXdCkwIT09cm4uRmlsZUluZGV4W1d0XS50eXBlJiZi'@; put 'ci5wdXNoKFtybi5GdWxsUGF0aHNbV3RdLHJuLkZpbGVJbmRleFtXdF1dKTtmb3IoV3Q9MDtXdDxici5sZW5ndGg7KytXdCl7dmFyIFpyPVEoYnJbV3RdWzBdKTtmb3IoVnQ9ITEsbnI9MDtucjxici5sZW5ndGg7Kytucilicltucl1bMF09PT1aciYmKFZ0PSEwKTtWdHx8YnIucHVzaChbWnIs'@; put 'e25hbWU6cmUoWnIpLnJlcGxhY2UoIi8iLCIiKSx0eXBlOjEsY2xzaWQ6eGksY3Q6VG4sbXQ6VG4sY29udGVudDpudWxsfV0pfWZvcihici5zb3J0KGZ1bmN0aW9uKGNpLENvKXtyZXR1cm4gZnVuY3Rpb24gTChybixfbil7Zm9yKHZhciBhbj1ybi5zcGxpdCgiLyIpLFZ0PV9uLnNwbGl0KCIv'@; put 'IiksV3Q9MCxkbj0wLFRuPU1hdGgubWluKGFuLmxlbmd0aCxWdC5sZW5ndGgpO1d0PFRuOysrV3Qpe2lmKGRuPWFuW1d0XS5sZW5ndGgtVnRbV3RdLmxlbmd0aClyZXR1cm4gZG47aWYoYW5bV3RdIT1WdFtXdF0pcmV0dXJuIGFuW1d0XTxWdFtXdF0/LTE6MX1yZXR1cm4gYW4ubGVuZ3RoLVZ0'@; put 'Lmxlbmd0aH0oY2lbMF0sQ29bMF0pfSkscm4uRnVsbFBhdGhzPVtdLHJuLkZpbGVJbmRleD1bXSxXdD0wO1d0PGJyLmxlbmd0aDsrK1d0KXJuLkZ1bGxQYXRoc1tXdF09YnJbV3RdWzBdLHJuLkZpbGVJbmRleFtXdF09YnJbV3RdWzFdO2ZvcihXdD0wO1d0PGJyLmxlbmd0aDsrK1d0KXt2YXIg'@; put 'THI9cm4uRmlsZUluZGV4W1d0XSxNaT1ybi5GdWxsUGF0aHNbV3RdO2lmKExyLm5hbWU9cmUoTWkpLnJlcGxhY2UoIi8iLCIiKSxMci5MPUxyLlI9THIuQz0tKExyLmNvbG9yPTEpLExyLnNpemU9THIuY29udGVudD9Mci5jb250ZW50Lmxlbmd0aDowLExyLnN0YXJ0PTAsTHIuY2xzaWQ9THIu'@; put 'Y2xzaWR8fHhpLDA9PT1XdClMci5DPWJyLmxlbmd0aD4xPzE6LTEsTHIuc2l6ZT0wLExyLnR5cGU9NTtlbHNlIGlmKCIvIj09TWkuc2xpY2UoLTEpKXtmb3IobnI9V3QrMTtucjxici5sZW5ndGgmJlEocm4uRnVsbFBhdGhzW25yXSkhPU1pOysrbnIpO2ZvcihMci5DPW5yPj1ici5sZW5ndGg/'@; put 'LTE6bnIsbnI9V3QrMTtucjxici5sZW5ndGgmJlEocm4uRnVsbFBhdGhzW25yXSkhPVEoTWkpOysrbnIpO0xyLlI9bnI+PWJyLmxlbmd0aD8tMTpucixMci50eXBlPTF9ZWxzZSBRKHJuLkZ1bGxQYXRoc1tXdCsxXXx8IiIpPT1RKE1pKSYmKExyLlI9V3QrMSksTHIudHlwZT0yfX19ZnVuY3Rp'@; put 'b24ga24ocm4sX24pe3ZhciBhbj1fbnx8e307aWYoem4ocm4pLCJ6aXAiPT1hbi5maWxlVHlwZSlyZXR1cm4gZnVuY3Rpb24gdnMocm4sX24pe3ZhciBhbj1fbnx8e30sVnQ9W10sV3Q9W10sZG49cHIoMSksVG49YW4uY29tcHJlc3Npb24/ODowLG5yPTAsWnI9MCxMcj0wLE1pPTAsY2k9MCxD'@; put 'bz1ybi5GdWxsUGF0aHNbMF0scG89Q28sVmk9cm4uRmlsZUluZGV4WzBdLFVvPVtdLHRpPTA7Zm9yKFpyPTE7WnI8cm4uRnVsbFBhdGhzLmxlbmd0aDsrK1pyKWlmKHBvPXJuLkZ1bGxQYXRoc1tacl0uc2xpY2UoQ28ubGVuZ3RoKSwoVmk9cm4uRmlsZUluZGV4W1pyXSkuc2l6ZSYmVmkuY29u'@; put 'dGVudCYmIlx4MDFTaDMzdEo1IiE9cG8pe3ZhciBVbD1NaSxjYz1wcihwby5sZW5ndGgpO2ZvcihMcj0wO0xyPHBvLmxlbmd0aDsrK0xyKWNjLndyaXRlX3NoaWZ0KDEsMTI3JnBvLmNoYXJDb2RlQXQoTHIpKTtjYz1jYy5zbGljZSgwLGNjLmwpLFVvW2NpXT1PZS5idWYoVmkuY29udGVudCww'@; put 'KTt2YXIgTnU9VmkuY29udGVudDs4PT1UbiYmKE51PW1yKE51KSksKGRuPXByKDMwKSkud3JpdGVfc2hpZnQoNCw2NzMyNDc1MiksZG4ud3JpdGVfc2hpZnQoMiwyMCksZG4ud3JpdGVfc2hpZnQoMixuciksZG4ud3JpdGVfc2hpZnQoMixUbiksVmkubXQ/Z2UoZG4sVmkubXQpOmRuLndyaXRl'@; put 'X3NoaWZ0KDQsMCksZG4ud3JpdGVfc2hpZnQoLTQsOCZucj8wOlVvW2NpXSksZG4ud3JpdGVfc2hpZnQoNCw4Jm5yPzA6TnUubGVuZ3RoKSxkbi53cml0ZV9zaGlmdCg0LDgmbnI/MDpWaS5jb250ZW50Lmxlbmd0aCksZG4ud3JpdGVfc2hpZnQoMixjYy5sZW5ndGgpLGRuLndyaXRlX3NoaWZ0'@; put 'KDIsMCksTWkrPWRuLmxlbmd0aCxWdC5wdXNoKGRuKSxNaSs9Y2MubGVuZ3RoLFZ0LnB1c2goY2MpLE1pKz1OdS5sZW5ndGgsVnQucHVzaChOdSksOCZuciYmKChkbj1wcigxMikpLndyaXRlX3NoaWZ0KC00LFVvW2NpXSksZG4ud3JpdGVfc2hpZnQoNCxOdS5sZW5ndGgpLGRuLndyaXRlX3No'@; put 'aWZ0KDQsVmkuY29udGVudC5sZW5ndGgpLE1pKz1kbi5sLFZ0LnB1c2goZG4pKSwoZG49cHIoNDYpKS53cml0ZV9zaGlmdCg0LDMzNjM5MjQ4KSxkbi53cml0ZV9zaGlmdCgyLDApLGRuLndyaXRlX3NoaWZ0KDIsMjApLGRuLndyaXRlX3NoaWZ0KDIsbnIpLGRuLndyaXRlX3NoaWZ0KDIsVG4p'@; put 'LGRuLndyaXRlX3NoaWZ0KDQsMCksZG4ud3JpdGVfc2hpZnQoLTQsVW9bY2ldKSxkbi53cml0ZV9zaGlmdCg0LE51Lmxlbmd0aCksZG4ud3JpdGVfc2hpZnQoNCxWaS5jb250ZW50Lmxlbmd0aCksZG4ud3JpdGVfc2hpZnQoMixjYy5sZW5ndGgpLGRuLndyaXRlX3NoaWZ0KDIsMCksZG4ud3Jp'@; put 'dGVfc2hpZnQoMiwwKSxkbi53cml0ZV9zaGlmdCgyLDApLGRuLndyaXRlX3NoaWZ0KDIsMCksZG4ud3JpdGVfc2hpZnQoNCwwKSxkbi53cml0ZV9zaGlmdCg0LFVsKSx0aSs9ZG4ubCxXdC5wdXNoKGRuKSx0aSs9Y2MubGVuZ3RoLFd0LnB1c2goY2MpLCsrY2l9cmV0dXJuKGRuPXByKDIyKSku'@; put 'd3JpdGVfc2hpZnQoNCwxMDEwMTAyNTYpLGRuLndyaXRlX3NoaWZ0KDIsMCksZG4ud3JpdGVfc2hpZnQoMiwwKSxkbi53cml0ZV9zaGlmdCgyLGNpKSxkbi53cml0ZV9zaGlmdCgyLGNpKSxkbi53cml0ZV9zaGlmdCg0LHRpKSxkbi53cml0ZV9zaGlmdCg0LE1pKSxkbi53cml0ZV9zaGlmdCgy'@; put 'LDApLFMoW1MoVnQpLFMoV3QpLGRuXSl9KHJuLGFuKTt2YXIgVnQ9ZnVuY3Rpb24oQ28pe2Zvcih2YXIgcG89MCxWaT0wLFVvPTA7VW88Q28uRmlsZUluZGV4Lmxlbmd0aDsrK1VvKXt2YXIgdGk9Q28uRmlsZUluZGV4W1VvXTtpZih0aS5jb250ZW50KXt2YXIgVWw9dGkuY29udGVudC5sZW5n'@; put 'dGg7VWw+MCYmKFVsPDQwOTY/cG8rPVVsKzYzPj42OlZpKz1VbCs1MTE+PjkpfX1mb3IodmFyIGNjPUNvLkZ1bGxQYXRocy5sZW5ndGgrMz4+MixWNj1wbysxMjc+Pjcsd2Y9KHBvKzc+PjMpK1ZpK2NjK1Y2LHFkPXdmKzEyNz4+NyxiXz1xZDw9MTA5PzA6TWF0aC5jZWlsKChxZC0xMDkpLzEy'@; put 'Nyk7d2YrcWQrYl8rMTI3Pj43PnFkOyliXz0rK3FkPD0xMDk/MDpNYXRoLmNlaWwoKHFkLTEwOSkvMTI3KTt2YXIgUTE9WzEsYl8scWQsVjYsY2MsVmkscG8sMF07cmV0dXJuIENvLkZpbGVJbmRleFswXS5zaXplPXBvPDw2LFExWzddPShDby5GaWxlSW5kZXhbMF0uc3RhcnQ9UTFbMF0rUTFb'@; put 'MV0rUTFbMl0rUTFbM10rUTFbNF0rUTFbNV0pKyhRMVs2XSs3Pj4zKSxRMX0ocm4pLFd0PXByKFZ0WzddPDw5KSxkbj0wLFRuPTA7Zm9yKGRuPTA7ZG48ODsrK2RuKVd0LndyaXRlX3NoaWZ0KDEsc2lbZG5dKTtmb3IoZG49MDtkbjw4OysrZG4pV3Qud3JpdGVfc2hpZnQoMiwwKTtmb3IoV3Qu'@; put 'd3JpdGVfc2hpZnQoMiw2MiksV3Qud3JpdGVfc2hpZnQoMiwzKSxXdC53cml0ZV9zaGlmdCgyLDY1NTM0KSxXdC53cml0ZV9zaGlmdCgyLDkpLFd0LndyaXRlX3NoaWZ0KDIsNiksZG49MDtkbjwzOysrZG4pV3Qud3JpdGVfc2hpZnQoMiwwKTtmb3IoV3Qud3JpdGVfc2hpZnQoNCwwKSxXdC53'@; put 'cml0ZV9zaGlmdCg0LFZ0WzJdKSxXdC53cml0ZV9zaGlmdCg0LFZ0WzBdK1Z0WzFdK1Z0WzJdK1Z0WzNdLTEpLFd0LndyaXRlX3NoaWZ0KDQsMCksV3Qud3JpdGVfc2hpZnQoNCw0MDk2KSxXdC53cml0ZV9zaGlmdCg0LFZ0WzNdP1Z0WzBdK1Z0WzFdK1Z0WzJdLTE6Wm4pLFd0LndyaXRlX3No'@; put 'aWZ0KDQsVnRbM10pLFd0LndyaXRlX3NoaWZ0KC00LFZ0WzFdP1Z0WzBdLTE6Wm4pLFd0LndyaXRlX3NoaWZ0KDQsVnRbMV0pLGRuPTA7ZG48MTA5OysrZG4pV3Qud3JpdGVfc2hpZnQoLTQsZG48VnRbMl0/VnRbMV0rZG46LTEpO2lmKFZ0WzFdKWZvcihUbj0wO1RuPFZ0WzFdOysrVG4pe2Zv'@; put 'cig7ZG48MjM2KzEyNypUbjsrK2RuKVd0LndyaXRlX3NoaWZ0KC00LGRuPFZ0WzJdP1Z0WzFdK2RuOi0xKTtXdC53cml0ZV9zaGlmdCgtNCxUbj09PVZ0WzFdLTE/Wm46VG4rMSl9dmFyIG5yPWZ1bmN0aW9uKENvKXtmb3IoVG4rPUNvO2RuPFRuLTE7KytkbilXdC53cml0ZV9zaGlmdCgtNCxk'@; put 'bisxKTtDbyYmKCsrZG4sV3Qud3JpdGVfc2hpZnQoLTQsWm4pKX07Zm9yKFRuPWRuPTAsVG4rPVZ0WzFdO2RuPFRuOysrZG4pV3Qud3JpdGVfc2hpZnQoLTQsTGkuRElGU0VDVCk7Zm9yKFRuKz1WdFsyXTtkbjxUbjsrK2RuKVd0LndyaXRlX3NoaWZ0KC00LExpLkZBVFNFQ1QpO25yKFZ0WzNd'@; put 'KSxucihWdFs0XSk7Zm9yKHZhciBicj0wLFpyPTAsTHI9cm4uRmlsZUluZGV4WzBdO2JyPHJuLkZpbGVJbmRleC5sZW5ndGg7KyticikoTHI9cm4uRmlsZUluZGV4W2JyXSkuY29udGVudCYmISgoWnI9THIuY29udGVudC5sZW5ndGgpPDQwOTYpJiYoTHIuc3RhcnQ9VG4sbnIoWnIrNTExPj45'@; put 'KSk7Zm9yKG5yKFZ0WzZdKzc+PjMpOzUxMSZXdC5sOylXdC53cml0ZV9zaGlmdCgtNCxMaS5FTkRPRkNIQUlOKTtmb3IoVG49ZG49MCxicj0wO2JyPHJuLkZpbGVJbmRleC5sZW5ndGg7KyticikoTHI9cm4uRmlsZUluZGV4W2JyXSkuY29udGVudCYmKFpyPUxyLmNvbnRlbnQubGVuZ3RoKSYm'@; put 'IShacj49NDA5NikmJihMci5zdGFydD1Ubixucihacis2Mz4+NikpO2Zvcig7NTExJld0Lmw7KVd0LndyaXRlX3NoaWZ0KC00LExpLkVORE9GQ0hBSU4pO2Zvcihkbj0wO2RuPFZ0WzRdPDwyOysrZG4pe3ZhciBNaT1ybi5GdWxsUGF0aHNbZG5dO2lmKE1pJiYwIT09TWkubGVuZ3RoKXtMcj1y'@; put 'bi5GaWxlSW5kZXhbZG5dLDA9PT1kbiYmKExyLnN0YXJ0PUxyLnNpemU/THIuc3RhcnQtMTpabik7dmFyIGNpPTA9PT1kbiYmYW4ucm9vdHx8THIubmFtZTtpZihacj0yKihjaS5sZW5ndGgrMSksV3Qud3JpdGVfc2hpZnQoNjQsY2ksInV0ZjE2bGUiKSxXdC53cml0ZV9zaGlmdCgyLFpyKSxX'@; put 'dC53cml0ZV9zaGlmdCgxLExyLnR5cGUpLFd0LndyaXRlX3NoaWZ0KDEsTHIuY29sb3IpLFd0LndyaXRlX3NoaWZ0KC00LExyLkwpLFd0LndyaXRlX3NoaWZ0KC00LExyLlIpLFd0LndyaXRlX3NoaWZ0KC00LExyLkMpLExyLmNsc2lkKVd0LndyaXRlX3NoaWZ0KDE2LExyLmNsc2lkLCJoZXgi'@; put 'KTtlbHNlIGZvcihicj0wO2JyPDQ7KyticilXdC53cml0ZV9zaGlmdCg0LDApO1d0LndyaXRlX3NoaWZ0KDQsTHIuc3RhdGV8fDApLFd0LndyaXRlX3NoaWZ0KDQsMCksV3Qud3JpdGVfc2hpZnQoNCwwKSxXdC53cml0ZV9zaGlmdCg0LDApLFd0LndyaXRlX3NoaWZ0KDQsMCksV3Qud3JpdGVf'@; put 'c2hpZnQoNCxMci5zdGFydCksV3Qud3JpdGVfc2hpZnQoNCxMci5zaXplKSxXdC53cml0ZV9zaGlmdCg0LDApfWVsc2V7Zm9yKGJyPTA7YnI8MTc7KyticilXdC53cml0ZV9zaGlmdCg0LDApO2Zvcihicj0wO2JyPDM7KyticilXdC53cml0ZV9zaGlmdCg0LC0xKTtmb3IoYnI9MDticjwxMjsr'@; put 'K2JyKVd0LndyaXRlX3NoaWZ0KDQsMCl9fWZvcihkbj0xO2RuPHJuLkZpbGVJbmRleC5sZW5ndGg7KytkbilpZigoTHI9cm4uRmlsZUluZGV4W2RuXSkuc2l6ZT49NDA5Nil7Zm9yKFd0Lmw9THIuc3RhcnQrMTw8OSxicj0wO2JyPExyLnNpemU7KyticilXdC53cml0ZV9zaGlmdCgxLExyLmNv'@; put 'bnRlbnRbYnJdKTtmb3IoOzUxMSZicjsrK2JyKVd0LndyaXRlX3NoaWZ0KDEsMCl9Zm9yKGRuPTE7ZG48cm4uRmlsZUluZGV4Lmxlbmd0aDsrK2RuKWlmKChMcj1ybi5GaWxlSW5kZXhbZG5dKS5zaXplPjAmJkxyLnNpemU8NDA5Nil7Zm9yKGJyPTA7YnI8THIuc2l6ZTsrK2JyKVd0LndyaXRl'@; put 'X3NoaWZ0KDEsTHIuY29udGVudFticl0pO2Zvcig7NjMmYnI7KyticilXdC53cml0ZV9zaGlmdCgxLDApfWZvcig7V3QubDxXdC5sZW5ndGg7KVd0LndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIFd0fVAudmVyc2lvbj0iMS4xLjQiO3ZhciB2cix0cj02NCxabj0tMixCcj0iZDBjZjExZTBhMWIx'@; put 'MWFlMSIsc2k9WzIwOCwyMDcsMTcsMjI0LDE2MSwxNzcsMjYsMjI1XSx4aT0iMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLExpPXtNQVhSRUdTRUNUOi02LERJRlNFQ1Q6LTQsRkFUU0VDVDotMyxFTkRPRkNIQUlOOlpuLEZSRUVTRUNUOi0xLEhFQURFUl9TSUdOQVRVUkU6QnIs'@; put 'SEVBREVSX01JTk9SX1ZFUlNJT046IjNlMDAiLE1BWFJFR1NJRDotNixOT1NUUkVBTTotMSxIRUFERVJfQ0xTSUQ6eGksRW50cnlUeXBlczpbInVua25vd24iLCJzdG9yYWdlIiwic3RyZWFtIiwibG9ja2J5dGVzIiwicHJvcGVydHkiLCJyb290Il19O2Z1bmN0aW9uIHVyKHJuKXtmb3IodmFy'@; put 'IF9uPW5ldyBBcnJheShybi5sZW5ndGgpLGFuPTA7YW48cm4ubGVuZ3RoOysrYW4pX25bYW5dPVN0cmluZy5mcm9tQ2hhckNvZGUocm5bYW5dKTtyZXR1cm4gX24uam9pbigiIil9ZnVuY3Rpb24gbXIocm4pe3JldHVybiB2cj92ci5kZWZsYXRlUmF3U3luYyhybik6Z2wocm4pfWZvcih2YXIg'@; put 'cm4sX24sd2k9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLFVyPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4XSxqaT1bMSwyLDMsNCw1LDcs'@; put 'OSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3XSxUaT10eXBlb2YgVWludDhBcnJheTwidSIsWW89VGk/bmV3IFVpbnQ4QXJyYXkoMjU2KTpbXSxsbz0wO2xvPDI1'@; put 'NjsrK2xvKVlvW2xvXT0odm9pZCAwLDI1NSYoKF9uPTEzOTUzNiYoKHJuPWxvKTw8MXxybjw8MTEpfDU1ODE0NCYocm48PDV8cm48PDE1KSk+PjE2fF9uPj44fF9uKSk7ZnVuY3Rpb24gQW8ocm4sX24pe3ZhciBhbj1Zb1syNTUmcm5dO3JldHVybiBfbjw9OD9hbj4+PjgtX246KGFuPWFuPDw4'@; put 'fFlvW3JuPj44JjI1NV0sX248PTE2P2FuPj4+MTYtX246KGFuPWFuPDw4fFlvW3JuPj4xNiYyNTVdKT4+PjI0LV9uKX1mdW5jdGlvbiB4byhybixfbil7dmFyIGFuPTcmX24sVnQ9X24+Pj4zO3JldHVybihybltWdF18KGFuPD02PzA6cm5bVnQrMV08PDgpKT4+PmFuJjN9ZnVuY3Rpb24gaGko'@; put 'cm4sX24pe3ZhciBhbj03Jl9uLFZ0PV9uPj4+MztyZXR1cm4ocm5bVnRdfChhbjw9NT8wOnJuW1Z0KzFdPDw4KSk+Pj5hbiY3fWZ1bmN0aW9uIE1uKHJuLF9uKXt2YXIgYW49NyZfbixWdD1fbj4+PjM7cmV0dXJuKHJuW1Z0XXwoYW48PTM/MDpybltWdCsxXTw8OCkpPj4+YW4mMzF9ZnVuY3Rp'@; put 'b24gTXMocm4sX24pe3ZhciBhbj03Jl9uLFZ0PV9uPj4+MztyZXR1cm4ocm5bVnRdfChhbjw9MT8wOnJuW1Z0KzFdPDw4KSk+Pj5hbiYxMjd9ZnVuY3Rpb24geXMocm4sX24sYW4pe3ZhciBWdD03Jl9uLFd0PV9uPj4+MyxUbj1ybltXdF0+Pj5WdDtyZXR1cm4gYW48OC1WdHx8KFRufD1ybltX'@; put 'dCsxXTw8OC1WdCxhbjwxNi1WdCl8fChUbnw9cm5bV3QrMl08PDE2LVZ0LGFuPDI0LVZ0KXx8KFRufD1ybltXdCszXTw8MjQtVnQpLFRuJigxPDxhbiktMX1mdW5jdGlvbiBFbChybixfbil7dmFyIGFuPXJuLmxlbmd0aCxWdD0yKmFuPl9uPzIqYW46X24rNSxXdD0wO2lmKGFuPj1fbilyZXR1'@; put 'cm4gcm47aWYoaGUpe3ZhciBkbj1iKFZ0KTtpZihybi5jb3B5KXJuLmNvcHkoZG4pO2Vsc2UgZm9yKDtXdDxybi5sZW5ndGg7KytXdClkbltXdF09cm5bV3RdO3JldHVybiBkbn1pZihUaSl7dmFyIFRuPW5ldyBVaW50OEFycmF5KFZ0KTtpZihUbi5zZXQpVG4uc2V0KHJuKTtlbHNlIGZvcig7'@; put 'V3Q8cm4ubGVuZ3RoOysrV3QpVG5bV3RdPXJuW1d0XTtyZXR1cm4gVG59cmV0dXJuIHJuLmxlbmd0aD1WdCxybn1mdW5jdGlvbiBzbChybil7Zm9yKHZhciBfbj1uZXcgQXJyYXkocm4pLGFuPTA7YW48cm47Kythbilfblthbl09MDtyZXR1cm4gX259dmFyIGdsPWZ1bmN0aW9uKF9uKXt2YXIg'@; put 'YW49cHIoNTArTWF0aC5mbG9vcigxLjEqX24ubGVuZ3RoKSksVnQ9ZnVuY3Rpb24oYW4sVnQpe2Zvcih2YXIgV3Q9MDtXdDxhbi5sZW5ndGg7KXt2YXIgZG49TWF0aC5taW4oNjU1MzUsYW4ubGVuZ3RoLVd0KTtmb3IoVnQud3JpdGVfc2hpZnQoMSwrKFd0K2RuPT1hbi5sZW5ndGgpKSxWdC53'@; put 'cml0ZV9zaGlmdCgyLGRuKSxWdC53cml0ZV9zaGlmdCgyLDY1NTM1Jn5kbik7ZG4tLSA+MDspVnRbVnQubCsrXT1hbltXdCsrXX1yZXR1cm4gVnQubH0oX24sYW4pO3JldHVybiBhbi5zbGljZSgwLFZ0KX07ZnVuY3Rpb24gbnUocm4sX24sYW4pe3ZhciBWdD0xLFd0PTAsZG49MCxUbj0wLG5y'@; put 'PTAsYnI9cm4ubGVuZ3RoLFpyPVRpP25ldyBVaW50MTZBcnJheSgzMik6c2woMzIpO2Zvcihkbj0wO2RuPDMyOysrZG4pWnJbZG5dPTA7Zm9yKGRuPWJyO2RuPGFuOysrZG4pcm5bZG5dPTA7YnI9cm4ubGVuZ3RoO3ZhciBMcj1UaT9uZXcgVWludDE2QXJyYXkoYnIpOnNsKGJyKTtmb3IoZG49'@; put 'MDtkbjxicjsrK2RuKVpyW1d0PXJuW2RuXV0rKyxWdDxXdCYmKFZ0PVd0KSxMcltkbl09MDtmb3IoWnJbMF09MCxkbj0xO2RuPD1WdDsrK2RuKVpyW2RuKzE2XT1ucj1ucitacltkbi0xXTw8MTtmb3IoZG49MDtkbjxicjsrK2RuKTAhPShucj1ybltkbl0pJiYoTHJbZG5dPVpyW25yKzE2XSsr'@; put 'KTt2YXIgTWk9MDtmb3IoZG49MDtkbjxicjsrK2RuKWlmKDAhPShNaT1ybltkbl0pKWZvcihucj1BbyhMcltkbl0sVnQpPj5WdC1NaSxUbj0oMTw8VnQrNC1NaSktMTtUbj49MDstLVRuKV9uW25yfFRuPDxNaV09MTUmTWl8ZG48PDQ7cmV0dXJuIFZ0fXZhciB0bD1UaT9uZXcgVWludDE2QXJy'@; put 'YXkoNTEyKTpzbCg1MTIpLEt0PVRpP25ldyBVaW50MTZBcnJheSgzMik6c2woMzIpO2lmKCFUaSl7Zm9yKHZhciBnbj0wO2duPDUxMjsrK2duKXRsW2duXT0wO2Zvcihnbj0wO2duPDMyOysrZ24pS3RbZ25dPTB9IWZ1bmN0aW9uKCl7Zm9yKHZhciBybj1bXSxfbj0wO19uPDMyO19uKyspcm4u'@; put 'cHVzaCg1KTtudShybixLdCwzMik7dmFyIGFuPVtdO2Zvcihfbj0wO19uPD0xNDM7X24rKylhbi5wdXNoKDgpO2Zvcig7X248PTI1NTtfbisrKWFuLnB1c2goOSk7Zm9yKDtfbjw9Mjc5O19uKyspYW4ucHVzaCg3KTtmb3IoO19uPD0yODc7X24rKylhbi5wdXNoKDgpO251KGFuLHRsLDI4OCl9'@; put 'KCk7dmFyIExuPVRpP25ldyBVaW50MTZBcnJheSgzMjc2OCk6c2woMzI3NjgpLFdyPVRpP25ldyBVaW50MTZBcnJheSgzMjc2OCk6c2woMzI3NjgpLFhuPVRpP25ldyBVaW50MTZBcnJheSgxMjgpOnNsKDEyOCksZWk9MSxpcj0xO2Z1bmN0aW9uIHJpKHJuLF9uKXt2YXIgYW49TW4ocm4sX24p'@; put 'KzI1NyxWdD1Nbihybixfbis9NSkrMSxXdD1mdW5jdGlvbiB0YShybixfbil7dmFyIGFuPTcmX24sVnQ9X24+Pj4zO3JldHVybihybltWdF18KGFuPD00PzA6cm5bVnQrMV08PDgpKT4+PmFuJjE1fShybixfbis9NSkrNDtfbis9NDtmb3IodmFyIGRuPTAsVG49VGk/bmV3IFVpbnQ4QXJyYXko'@; put 'MTkpOnNsKDE5KSxucj1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sYnI9MSxacj1UaT9uZXcgVWludDhBcnJheSg4KTpzbCg4KSxMcj1UaT9uZXcgVWludDhBcnJheSg4KTpzbCg4KSxNaT1Ubi5sZW5ndGgsY2k9MDtjaTxXdDsrK2NpKVRuW3dpW2NpXV09ZG49aGko'@; put 'cm4sX24pLGJyPGRuJiYoYnI9ZG4pLFpyW2RuXSsrLF9uKz0zO3ZhciBDbz0wO2ZvcihaclswXT0wLGNpPTE7Y2k8PWJyOysrY2kpTHJbY2ldPUNvPUNvK1pyW2NpLTFdPDwxO2ZvcihjaT0wO2NpPE1pOysrY2kpMCE9KENvPVRuW2NpXSkmJihucltjaV09THJbQ29dKyspO3ZhciBwbz0wO2Zv'@; put 'cihjaT0wO2NpPE1pOysrY2kpaWYoMCE9KHBvPVRuW2NpXSkpe0NvPVlvW25yW2NpXV0+PjgtcG87Zm9yKHZhciBWaT0oMTw8Ny1wbyktMTtWaT49MDstLVZpKVhuW0NvfFZpPDxwb109NyZwb3xjaTw8M312YXIgVW89W107Zm9yKGJyPTE7VW8ubGVuZ3RoPGFuK1Z0Oylzd2l0Y2goQ289WG5b'@; put 'TXMocm4sX24pXSxfbis9NyZDbyxDbz4+Pj0zKXtjYXNlIDE2OmZvcihkbj0zK3hvKHJuLF9uKSxfbis9MixDbz1Vb1tVby5sZW5ndGgtMV07ZG4tLSA+MDspVW8ucHVzaChDbyk7YnJlYWs7Y2FzZSAxNzpmb3IoZG49MytoaShybixfbiksX24rPTM7ZG4tLSA+MDspVW8ucHVzaCgwKTticmVh'@; put 'aztjYXNlIDE4OmZvcihkbj0xMStNcyhybixfbiksX24rPTc7ZG4tLSA+MDspVW8ucHVzaCgwKTticmVhaztkZWZhdWx0OlVvLnB1c2goQ28pLGJyPENvJiYoYnI9Q28pfXZhciB0aT1Vby5zbGljZSgwLGFuKSxVbD1Vby5zbGljZShhbik7Zm9yKGNpPWFuO2NpPDI4NjsrK2NpKXRpW2NpXT0w'@; put 'O2ZvcihjaT1WdDtjaTwzMDsrK2NpKVVsW2NpXT0wO3JldHVybiBlaT1udSh0aSxMbiwyODYpLGlyPW51KFVsLFdyLDMwKSxfbn1mdW5jdGlvbiBvaShybixfbil7dmFyIFZ0PWZ1bmN0aW9uIG1vKHJuLF9uKXtpZigzPT1yblswXSYmISgzJnJuWzFdKSlyZXR1cm5bRyhfbiksMl07Zm9yKHZh'@; put 'ciBhbj0wLFZ0PTAsV3Q9Yihfbnx8MTw8MTgpLGRuPTAsVG49V3QubGVuZ3RoPj4+MCxucj0wLGJyPTA7ISgxJlZ0KTspaWYoVnQ9aGkocm4sYW4pLGFuKz0zLFZ0Pj4+MSlmb3IoVnQ+Pj4xPT0xPyhucj05LGJyPTUpOihhbj1yaShybixhbiksbnI9ZWksYnI9aXIpLCFfbiYmVG48ZG4rMzI3'@; put 'NjcmJihUbj0oV3Q9RWwoV3QsZG4rMzI3NjcpKS5sZW5ndGgpOzspe3ZhciBMcj15cyhybixhbixuciksTWk9VnQ+Pj4xPT0xP3RsW0xyXTpMbltMcl07aWYoYW4rPTE1Jk1pLChNaT4+Pj00KT4+PjgmMjU1KXtpZigyNTY9PU1pKWJyZWFrO3ZhciBjaT0oTWktPTI1Nyk8OD8wOk1pLTQ+PjI7'@; put 'Y2k+NSYmKGNpPTApO3ZhciBDbz1kbitVcltNaV07Y2k+MCYmKENvKz15cyhybixhbixjaSksYW4rPWNpKSxMcj15cyhybixhbixiciksYW4rPTE1JihNaT1WdD4+PjE9PTE/S3RbTHJdOldyW0xyXSk7dmFyIHBvPShNaT4+Pj00KTw0PzA6TWktMj4+MSxWaT1qaVtNaV07Zm9yKHBvPjAmJihW'@; put 'aSs9eXMocm4sYW4scG8pLGFuKz1wbyksIV9uJiZUbjxDbyYmKFRuPShXdD1FbChXdCxDbykpLmxlbmd0aCk7ZG48Q287KVd0W2RuXT1XdFtkbi1WaV0sKytkbn1lbHNlIFd0W2RuKytdPU1pfWVsc2V7NyZhbiYmKGFuKz04LSg3JmFuKSk7dmFyIFpyPXJuW2FuPj4+M118cm5bMSsoYW4+Pj4z'@; put 'KV08PDg7aWYoYW4rPTMyLCFfbiYmVG48ZG4rWnImJihUbj0oV3Q9RWwoV3QsZG4rWnIpKS5sZW5ndGgpLCJmdW5jdGlvbiI9PXR5cGVvZiBybi5jb3B5KXJuLmNvcHkoV3QsZG4sYW4+Pj4zLChhbj4+PjMpK1pyKSxkbis9WnIsYW4rPTgqWnI7ZWxzZSBmb3IoO1pyLS0gPjA7KVd0W2RuKytd'@; put 'PXJuW2FuPj4+M10sYW4rPTh9cmV0dXJuW19uP1d0Old0LnNsaWNlKDAsZG4pLGFuKzc+Pj4zXX0ocm4uc2xpY2Uocm4ubHx8MCksX24pO3JldHVybiBybi5sKz1WdFsxXSxWdFswXX1mdW5jdGlvbiB6aShybixfbil7aWYoIXJuKXRocm93IG5ldyBFcnJvcihfbik7dHlwZW9mIGNvbnNvbGU8'@; put 'InUiJiZjb25zb2xlLmVycm9yKF9uKX1mdW5jdGlvbiBKcihybixfbil7dmFyIGFuPXJuO29sKGFuLDApO3ZhciBkbj17RmlsZUluZGV4OltdLEZ1bGxQYXRoczpbXX07dW4oZG4se3Jvb3Q6X24ucm9vdH0pO2Zvcih2YXIgVG49YW4ubGVuZ3RoLTQ7KDgwIT1hbltUbl18fDc1IT1hbltUbisx'@; put 'XXx8NSE9YW5bVG4rMl18fDYhPWFuW1RuKzNdKSYmVG4+PTA7KS0tVG47YW4ubD1Ubis0LGFuLmwrPTQ7dmFyIG5yPWFuLnJlYWRfc2hpZnQoMik7YW4ubCs9Njt2YXIgYnI9YW4ucmVhZF9zaGlmdCg0KTtmb3IoYW4ubD1icixUbj0wO1RuPG5yOysrVG4pe2FuLmwrPTIwO3ZhciBacj1hbi5y'@; put 'ZWFkX3NoaWZ0KDQpLExyPWFuLnJlYWRfc2hpZnQoNCksTWk9YW4ucmVhZF9zaGlmdCgyKSxjaT1hbi5yZWFkX3NoaWZ0KDIpLENvPWFuLnJlYWRfc2hpZnQoMik7YW4ubCs9ODt2YXIgcG89YW4ucmVhZF9zaGlmdCg0KSxWaT12ZShhbi5zbGljZShhbi5sK01pLGFuLmwrTWkrY2kpKTthbi5s'@; put 'Kz1NaStjaStDbzt2YXIgVW89YW4ubDthbi5sPXBvKzQsd3MoYW4sWnIsTHIsZG4sVmkpLGFuLmw9VW99cmV0dXJuIGRufWZ1bmN0aW9uIHdzKHJuLF9uLGFuLFZ0LFd0KXtybi5sKz0yO3ZhciBkbj1ybi5yZWFkX3NoaWZ0KDIpLFRuPXJuLnJlYWRfc2hpZnQoMiksbnI9ZnVuY3Rpb24gX2Uo'@; put 'cm4pe3ZhciBfbj02NTUzNSZybi5yZWFkX3NoaWZ0KDIpLGFuPTY1NTM1JnJuLnJlYWRfc2hpZnQoMiksVnQ9bmV3IERhdGUsV3Q9MzEmYW4sZG49MTUmKGFuPj4+PTUpO2FuPj4+PTQsVnQuc2V0TWlsbGlzZWNvbmRzKDApLFZ0LnNldEZ1bGxZZWFyKGFuKzE5ODApLFZ0LnNldE1vbnRoKGRu'@; put 'LTEpLFZ0LnNldERhdGUoV3QpO3ZhciBUbj0zMSZfbixucj02MyYoX24+Pj49NSk7cmV0dXJuIFZ0LnNldEhvdXJzKF9uPj4+PTYpLFZ0LnNldE1pbnV0ZXMobnIpLFZ0LnNldFNlY29uZHMoVG48PDEpLFZ0fShybik7aWYoODI1NyZkbil0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFpJ'@; put 'UCBlbmNyeXB0aW9uIik7Zm9yKHZhciBicj1ybi5yZWFkX3NoaWZ0KDQpLFpyPXJuLnJlYWRfc2hpZnQoNCksTHI9cm4ucmVhZF9zaGlmdCg0KSxNaT1ybi5yZWFkX3NoaWZ0KDIpLGNpPXJuLnJlYWRfc2hpZnQoMiksQ289IiIscG89MDtwbzxNaTsrK3BvKUNvKz1TdHJpbmcuZnJvbUNoYXJD'@; put 'b2RlKHJuW3JuLmwrK10pO2lmKGNpKXt2YXIgVmk9dmUocm4uc2xpY2Uocm4ubCxybi5sK2NpKSk7KFZpWzIxNTg5XXx8e30pLm10JiYobnI9VmlbMjE1ODldLm10KSwoKFd0fHx7fSlbMjE1ODldfHx7fSkubXQmJihucj1XdFsyMTU4OV0ubXQpfXJuLmwrPWNpO3ZhciBVbz1ybi5zbGljZShy'@; put 'bi5sLHJuLmwrWnIpO3N3aXRjaChUbil7Y2FzZSA4OlVvPWZ1bmN0aW9uIFNuKHJuLF9uKXtpZighdnIpcmV0dXJuIG9pKHJuLF9uKTt2YXIgVnQ9bmV3KDAsdnIuSW5mbGF0ZVJhdyksV3Q9VnQuX3Byb2Nlc3NDaHVuayhybi5zbGljZShybi5sKSxWdC5fZmluaXNoRmx1c2hGbGFnKTtyZXR1'@; put 'cm4gcm4ubCs9VnQuYnl0ZXNSZWFkLFd0fShybixMcik7YnJlYWs7Y2FzZSAwOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBaSVAgQ29tcHJlc3Npb24gbWV0aG9kICIrVG4pfXZhciB0aT0hMTs4JmRuJiYoMTM0Njk1NzYwPT0oYnI9cm4ucmVhZF9zaGlmdCg0'@; put 'KSkmJihicj1ybi5yZWFkX3NoaWZ0KDQpLHRpPSEwKSxacj1ybi5yZWFkX3NoaWZ0KDQpLExyPXJuLnJlYWRfc2hpZnQoNCkpLFpyIT1fbiYmemkodGksIkJhZCBjb21wcmVzc2VkIHNpemU6ICIrX24rIiAhPSAiK1pyKSxMciE9YW4mJnppKHRpLCJCYWQgdW5jb21wcmVzc2VkIHNpemU6ICIr'@; put 'YW4rIiAhPSAiK0xyKTt2YXIgVWw9T2UuYnVmKFVvLDApO2JyPj4wIT1VbD4+MCYmemkodGksIkJhZCBDUkMzMiBjaGVja3N1bTogIiticisiICE9ICIrVWwpLHpsKFZ0LENvLFVvLHt1bnNhZmU6ITAsbXQ6bnJ9KX1mdW5jdGlvbiB6bChybixfbixhbixWdCl7dmFyIFd0PVZ0JiZWdC51bnNh'@; put 'ZmU7V3R8fHVuKHJuKTt2YXIgZG49IVd0JiZqZS5maW5kKHJuLF9uKTtpZighZG4pe3ZhciBUbj1ybi5GdWxsUGF0aHNbMF07X24uc2xpY2UoMCxUbi5sZW5ndGgpPT1Ubj9Ubj1fbjooIi8iIT1Ubi5zbGljZSgtMSkmJihUbis9Ii8iKSxUbj0oVG4rX24pLnJlcGxhY2UoIi8vIiwiLyIpKSxk'@; put 'bj17bmFtZTpyZShfbiksdHlwZToyfSxybi5GaWxlSW5kZXgucHVzaChkbikscm4uRnVsbFBhdGhzLnB1c2goVG4pLFd0fHxqZS51dGlscy5jZmJfZ2Mocm4pfXJldHVybiBkbi5jb250ZW50PWFuLGRuLnNpemU9YW4/YW4ubGVuZ3RoOjAsVnQmJihWdC5DTFNJRCYmKGRuLmNsc2lkPVZ0LkNM'@; put 'U0lEKSxWdC5tdCYmKGRuLm10PVZ0Lm10KSxWdC5jdCYmKGRuLmN0PVZ0LmN0KSksZG59cmV0dXJuIFAuZmluZD1mdW5jdGlvbiBlcihybixfbil7dmFyIGFuPXJuLkZ1bGxQYXRocy5tYXAoZnVuY3Rpb24oYnIpe3JldHVybiBici50b1VwcGVyQ2FzZSgpfSksVnQ9YW4ubWFwKGZ1bmN0aW9u'@; put 'KGJyKXt2YXIgWnI9YnIuc3BsaXQoIi8iKTtyZXR1cm4gWnJbWnIubGVuZ3RoLSgiLyI9PWJyLnNsaWNlKC0xKT8yOjEpXX0pLFd0PSExOzQ3PT09X24uY2hhckNvZGVBdCgwKT8oV3Q9ITAsX249YW5bMF0uc2xpY2UoMCwtMSkrX24pOld0PS0xIT09X24uaW5kZXhPZigiLyIpO3ZhciBkbj1f'@; put 'bi50b1VwcGVyQ2FzZSgpLFRuPSEwPT09V3Q/YW4uaW5kZXhPZihkbik6VnQuaW5kZXhPZihkbik7aWYoLTEhPT1UbilyZXR1cm4gcm4uRmlsZUluZGV4W1RuXTt2YXIgbnI9IWRuLm1hdGNoKHApO2Zvcihkbj1kbi5yZXBsYWNlKHYsIiIpLG5yJiYoZG49ZG4ucmVwbGFjZShwLCIhIikpLFRu'@; put 'PTA7VG48YW4ubGVuZ3RoOysrVG4paWYoKG5yP2FuW1RuXS5yZXBsYWNlKHAsIiEiKTphbltUbl0pLnJlcGxhY2UodiwiIik9PWRufHwobnI/VnRbVG5dLnJlcGxhY2UocCwiISIpOlZ0W1RuXSkucmVwbGFjZSh2LCIiKT09ZG4pcmV0dXJuIHJuLkZpbGVJbmRleFtUbl07cmV0dXJuIG51bGx9'@; put 'LFAucmVhZD1mdW5jdGlvbiBLbihybixfbil7c3dpdGNoKF9uJiZfbi50eXBlfHwiYmFzZTY0Iil7Y2FzZSJmaWxlIjpyZXR1cm4gZnVuY3Rpb24gcG4ocm4sX24pe3JldHVybiBIZSgpLEJlKFNlLnJlYWRGaWxlU3luYyhybiksX24pfShybixfbik7Y2FzZSJiYXNlNjQiOnJldHVybiBCZShE'@; put 'KHNlLmRlY29kZShybikpLF9uKTtjYXNlImJpbmFyeSI6cmV0dXJuIEJlKEQocm4pLF9uKX1yZXR1cm4gQmUocm4sX24pfSxQLnBhcnNlPUJlLFAud3JpdGU9ZnVuY3Rpb24gQW4ocm4sX24pe3ZhciBhbj1rbihybixfbik7c3dpdGNoKF9uJiZfbi50eXBlKXtjYXNlImZpbGUiOnJldHVybiBI'@; put 'ZSgpLFNlLndyaXRlRmlsZVN5bmMoX24uZmlsZW5hbWUsYW4pLGFuO2Nhc2UiYmluYXJ5IjpyZXR1cm4gdXIoYW4pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gc2UuZW5jb2RlKHVyKGFuKSl9cmV0dXJuIGFufSxQLndyaXRlRmlsZT1mdW5jdGlvbiBRcihybixfbixhbil7SGUoKTt2YXIgVnQ9a24o'@; put 'cm4sYW4pO1NlLndyaXRlRmlsZVN5bmMoX24sVnQpfSxQLnV0aWxzPXtjZmJfbmV3OmZ1bmN0aW9uIG1sKHJuKXt2YXIgX249e307cmV0dXJuIHVuKF9uLHJuKSxfbn0sY2ZiX2FkZDp6bCxjZmJfZGVsOmZ1bmN0aW9uIGhhKHJuLF9uKXt1bihybik7dmFyIGFuPWplLmZpbmQocm4sX24pO2lm'@; put 'KGFuKWZvcih2YXIgVnQ9MDtWdDxybi5GaWxlSW5kZXgubGVuZ3RoOysrVnQpaWYocm4uRmlsZUluZGV4W1Z0XT09YW4pcmV0dXJuIHJuLkZpbGVJbmRleC5zcGxpY2UoVnQsMSkscm4uRnVsbFBhdGhzLnNwbGljZShWdCwxKSwhMDtyZXR1cm4hMX0sY2ZiX21vdjpmdW5jdGlvbiB5Zihybixf'@; put 'bixhbil7dW4ocm4pO3ZhciBWdD1qZS5maW5kKHJuLF9uKTtpZihWdClmb3IodmFyIFd0PTA7V3Q8cm4uRmlsZUluZGV4Lmxlbmd0aDsrK1d0KWlmKHJuLkZpbGVJbmRleFtXdF09PVZ0KXJldHVybiBybi5GaWxlSW5kZXhbV3RdLm5hbWU9cmUoYW4pLHJuLkZ1bGxQYXRoc1tXdF09YW4sITA7'@; put 'cmV0dXJuITF9LGNmYl9nYzpmdW5jdGlvbiBvcChybil7em4ocm4sITApfSxSZWFkU2hpZnQ6SGEsQ2hlY2tGaWVsZDpCaCxwcmVwX2Jsb2I6b2wsYmNvbmNhdDpTLHVzZV96bGliOmZ1bmN0aW9uIHJyKHJuKXt0cnl7dmFyIGFuPW5ldygwLHJuLkluZmxhdGVSYXcpO2lmKGFuLl9wcm9jZXNz'@; put 'Q2h1bmsobmV3IFVpbnQ4QXJyYXkoWzMsMF0pLGFuLl9maW5pc2hGbHVzaEZsYWcpLCFhbi5ieXRlc1JlYWQpdGhyb3cgbmV3IEVycm9yKCJ6bGliIGRvZXMgbm90IGV4cG9zZSBieXRlc1JlYWQiKTt2cj1ybn1jYXRjaChWdCl7Y29uc29sZS5lcnJvcigiY2Fubm90IHVzZSBuYXRpdmUgemxp'@; put 'YjogIisoVnQubWVzc2FnZXx8VnQpKX19LF9kZWZsYXRlUmF3OmdsLF9pbmZsYXRlUmF3Om9pLGNvbnN0czpMaX0sUH0oKTt0cnl7V2U9Rig3ODc3Myl9Y2F0Y2h7fWZ1bmN0aW9uIEtlKHkpe3JldHVybiJzdHJpbmciPT10eXBlb2YgeT9IKHkpOkFycmF5LmlzQXJyYXkoeSk/ZnVuY3Rpb24g'@; put 'Zyh5KXtpZih0eXBlb2YgVWludDhBcnJheT4idSIpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCIpO3JldHVybiBuZXcgVWludDhBcnJheSh5KX0oeSk6eX1mdW5jdGlvbiBZZSh5LFAsTCl7aWYodHlwZW9mIFdlPCJ1IiYmV2Uud3JpdGVGaWxlU3luYylyZXR1cm4gTD9XZS53cml0ZUZp'@; put 'bGVTeW5jKHksUCxMKTpXZS53cml0ZUZpbGVTeW5jKHksUCk7dmFyIFE9InV0ZjgiPT1MP0xvKFApOlA7aWYodHlwZW9mIElFX1NhdmVGaWxlPCJ1IilyZXR1cm4gSUVfU2F2ZUZpbGUoUSx5KTtpZih0eXBlb2YgQmxvYjwidSIpe3ZhciByZT1uZXcgQmxvYihbS2UoUSldLHt0eXBlOiJhcHBs'@; put 'aWNhdGlvbi9vY3RldC1zdHJlYW0ifSk7aWYodHlwZW9mIG5hdmlnYXRvcjwidSImJm5hdmlnYXRvci5tc1NhdmVCbG9iKXJldHVybiBuYXZpZ2F0b3IubXNTYXZlQmxvYihyZSx5KTtpZih0eXBlb2Ygc2F2ZUFzPCJ1IilyZXR1cm4gc2F2ZUFzKHJlLHkpO2lmKHR5cGVvZiBVUkw8InUiJiZ0'@; put 'eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jcmVhdGVFbGVtZW50JiZVUkwuY3JlYXRlT2JqZWN0VVJMKXt2YXIgZ2U9VVJMLmNyZWF0ZU9iamVjdFVSTChyZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBjaHJvbWUmJiJmdW5jdGlvbiI9PXR5cGVvZihjaHJvbWUuZG93bmxvYWRzfHx7fSku'@; put 'ZG93bmxvYWQpcmV0dXJuIFVSTC5yZXZva2VPYmplY3RVUkwmJnR5cGVvZiBzZXRUaW1lb3V0PCJ1IiYmc2V0VGltZW91dChmdW5jdGlvbigpe1VSTC5yZXZva2VPYmplY3RVUkwoZ2UpfSw2ZTQpLGNocm9tZS5kb3dubG9hZHMuZG93bmxvYWQoe3VybDpnZSxmaWxlbmFtZTp5LHNhdmVBczoh'@; put 'MH0pO3ZhciBfZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aWYobnVsbCE9X2UuZG93bmxvYWQpcmV0dXJuIF9lLmRvd25sb2FkPXksX2UuaHJlZj1nZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKF9lKSxfZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoX2UpLFVS'@; put 'TC5yZXZva2VPYmplY3RVUkwmJnR5cGVvZiBzZXRUaW1lb3V0PCJ1IiYmc2V0VGltZW91dChmdW5jdGlvbigpe1VSTC5yZXZva2VPYmplY3RVUkwoZ2UpfSw2ZTQpLGdlfX1pZih0eXBlb2YgJDwidSImJnR5cGVvZiBGaWxlPCJ1IiYmdHlwZW9mIEZvbGRlcjwidSIpdHJ5e3ZhciB2ZT1GaWxl'@; put 'KHkpO3JldHVybiB2ZS5vcGVuKCJ3IiksdmUuZW5jb2Rpbmc9ImJpbmFyeSIsQXJyYXkuaXNBcnJheShQKSYmKFA9TihQKSksdmUud3JpdGUoUCksdmUuY2xvc2UoKSxQfWNhdGNoKFNlKXtpZighU2UubWVzc2FnZXx8IVNlLm1lc3NhZ2UubWF0Y2goL29uc3RydWN0LykpdGhyb3cgU2V9dGhy'@; put 'b3cgbmV3IEVycm9yKCJjYW5ub3Qgc2F2ZSBmaWxlICIreSl9ZnVuY3Rpb24gbHQoeSl7Zm9yKHZhciBQPU9iamVjdC5rZXlzKHkpLEw9W10sUT0wO1E8UC5sZW5ndGg7KytRKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh5LFBbUV0pJiZMLnB1c2goUFtRXSk7cmV0dXJu'@; put 'IEx9ZnVuY3Rpb24gUGUoeSxQKXtmb3IodmFyIEw9W10sUT1sdCh5KSxyZT0wO3JlIT09US5sZW5ndGg7KytyZSludWxsPT1MW3lbUVtyZV1dW1BdXSYmKExbeVtRW3JlXV1bUF1dPVFbcmVdKTtyZXR1cm4gTH1mdW5jdGlvbiBiZSh5KXtmb3IodmFyIFA9W10sTD1sdCh5KSxRPTA7USE9PUwu'@; put 'bGVuZ3RoOysrUSlQW3lbTFtRXV1dPUxbUV07cmV0dXJuIFB9ZnVuY3Rpb24gQWUoeSl7Zm9yKHZhciBQPVtdLEw9bHQoeSksUT0wO1EhPT1MLmxlbmd0aDsrK1EpUFt5W0xbUV1dXT1wYXJzZUludChMW1FdLDEwKTtyZXR1cm4gUH12YXIgVWUsaHQscWU9bmV3IERhdGUoMTg5OSwxMSwzMCww'@; put 'LDAsMCksWGU9MDtmdW5jdGlvbiBNZSgpe1hlPXFlLmdldFRpbWUoKSs2ZTQqKChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKS1xZS5nZXRUaW1lem9uZU9mZnNldCgpKSxVZT1mdW5jdGlvbihQLEwpe3ZhciBRPVAuZ2V0VGltZSgpO3JldHVybiBMJiYoUS09MTI2MzE2OGU1KSwoUS1Y'@; put 'ZSkvODY0ZTV9LGh0PWZ1bmN0aW9uKFApe3ZhciBMPW5ldyBEYXRlO3JldHVybiBMLnNldFRpbWUoMjQqUCo2MCo2MCoxZTMrWGUpLEx9fWZ1bmN0aW9uIG90KHkpe3ZhciBQPTAsTD0wLFE9ITEscmU9eS5tYXRjaCgvUChbMC05XC5dK1kpPyhbMC05XC5dK00pPyhbMC05XC5dK0QpP1QoWzAt'@; put 'OVwuXStIKT8oWzAtOVwuXStNKT8oWzAtOVwuXStTKT8vKTtpZighcmUpdGhyb3cgbmV3IEVycm9yKCJ8Iit5KyJ8IGlzIG5vdCBhbiBJU084NjAxIER1cmF0aW9uIik7Zm9yKHZhciBnZT0xO2dlIT1yZS5sZW5ndGg7KytnZSlpZihyZVtnZV0pe3N3aXRjaChMPTEsZ2U+MyYmKFE9ITApLHJl'@; put 'W2dlXS5zbGljZShyZVtnZV0ubGVuZ3RoLTEpKXtjYXNlIlkiOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgSVNPIER1cmF0aW9uIEZpZWxkOiAiK3JlW2dlXS5zbGljZShyZVtnZV0ubGVuZ3RoLTEpKTtjYXNlIkQiOkwqPTI0O2Nhc2UiSCI6TCo9NjA7Y2FzZSJNIjppZighUSl0aHJv'@; put 'dyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIElTTyBEdXJhdGlvbiBGaWVsZDogTSIpO0wqPTYwfVArPUwqcGFyc2VJbnQocmVbZ2VdLDEwKX1yZXR1cm4gUH1NZSgpO3ZhciB1dD1uZXcgRGF0ZSgiMjAxNy0wMi0xOVQxOTowNjowOS4wMDBaIik7aXNOYU4odXQuZ2V0RnVsbFllYXIoKSkmJih1'@; put 'dD1uZXcgRGF0ZSgiMi8xOS8xNyIpKTt2YXIgTXQ9MjAxNz09dXQuZ2V0RnVsbFllYXIoKTtmdW5jdGlvbiBIdCh5LFApe3ZhciBMPW5ldyBEYXRlKHkpO2lmKE10KXJldHVybiBQPjA/TC5zZXRUaW1lKEwuZ2V0VGltZSgpKzYwKkwuZ2V0VGltZXpvbmVPZmZzZXQoKSoxZTMpOlA8MCYmTC5z'@; put 'ZXRUaW1lKEwuZ2V0VGltZSgpLTYwKkwuZ2V0VGltZXpvbmVPZmZzZXQoKSoxZTMpLEw7aWYoeSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIHk7aWYoMTkxNz09dXQuZ2V0RnVsbFllYXIoKSYmIWlzTmFOKEwuZ2V0RnVsbFllYXIoKSkpe3ZhciBRPUwuZ2V0RnVsbFllYXIoKTtyZXR1cm4geS5p'@; put 'bmRleE9mKCIiK1EpPi0xfHxMLnNldEZ1bGxZZWFyKEwuZ2V0RnVsbFllYXIoKSsxMDApLEx9dmFyIHJlPXkubWF0Y2goL1xkKy9nKXx8WyIyMDE3IiwiMiIsIjE5IiwiMCIsIjAiLCIwIl0sZ2U9bmV3IERhdGUoK3JlWzBdLCtyZVsxXS0xLCtyZVsyXSwrcmVbM118fDAsK3JlWzRdfHwwLCty'@; put 'ZVs1XXx8MCk7cmV0dXJuIHkuaW5kZXhPZigiWiIpPi0xJiYoZ2U9bmV3IERhdGUoZ2UuZ2V0VGltZSgpLTYwKmdlLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKSksZ2V9ZnVuY3Rpb24gUHQoeSl7Zm9yKHZhciBQPSIiLEw9MDtMIT15Lmxlbmd0aDsrK0wpUCs9U3RyaW5nLmZyb21DaGFyQ29k'@; put 'ZSh5W0xdKTtyZXR1cm4gUH1mdW5jdGlvbiBvbih5KXtpZigib2JqZWN0IiE9dHlwZW9mIHl8fG51bGw9PXkpcmV0dXJuIHk7aWYoeSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKHkuZ2V0VGltZSgpKTtpZihBcnJheS5pc0FycmF5KHkpKXJldHVybiBmdW5jdGlvbiBDbih5KXtm'@; put 'b3IodmFyIFA9W10sTD0wO0w8eS5sZW5ndGg7KytMKXt2YXIgUT15W0xdOyJvYmplY3QiPT10eXBlb2YgUT9QW0xdPW9uKFEpOm51bGwhPVEmJihQW0xdPVEpfXJldHVybiBQfSh5KTt2YXIgUD17fTtmb3IodmFyIEwgaW4geSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo'@; put 'eSxMKSYmKFBbTF09b24oeVtMXSkpO3JldHVybiBQfWZ1bmN0aW9uIFV0KHksUCl7aWYoIm9iamVjdCIhPXR5cGVvZiBQfHxudWxsPT1QKXJldHVybiB5O2Zvcih2YXIgTCBpbiBQKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChQLEwpJiYoeVtMXT1vbihQW0xdKSk7cmV0'@; put 'dXJuIHl9ZnVuY3Rpb24gYm4oeSxQKXtmb3IodmFyIEw9IiI7TC5sZW5ndGg8UDspTCs9eTtyZXR1cm4gTH1mdW5jdGlvbiBXbih5KXt2YXIgUD1OdW1iZXIoeSk7aWYoIWlzTmFOKFApKXJldHVybiBpc0Zpbml0ZShQKT9QOk5hTjtpZighL1xkLy50ZXN0KHkpKXJldHVybiBQO3ZhciBMPTEs'@; put 'UT15LnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZywiJDEkMiIpLnJlcGxhY2UoL1skXS9nLCIiKS5yZXBsYWNlKC9bJV0vZyxmdW5jdGlvbigpe3JldHVybiBMKj0xMDAsIiJ9KTtyZXR1cm4gaXNOYU4oUD1OdW1iZXIoUSkpJiYoUT1RLnJlcGxhY2UoL1soXSguKilbKV0vLGZ1bmN0aW9uKHJl'@; put 'LGdlKXtyZXR1cm4gTD0tTCxnZX0pLGlzTmFOKFA9TnVtYmVyKFEpKSk/UDpQL0x9ZnVuY3Rpb24gZW4oeSl7dmFyIFA9bmV3IERhdGUoeSksTD1uZXcgRGF0ZShOYU4pLFE9UC5nZXRZZWFyKCkscmU9UC5nZXRNb250aCgpLGdlPVAuZ2V0RGF0ZSgpO3JldHVybiBpc05hTihnZSl8fFE8MHx8'@; put 'UT44MDk5P0w6KHJlPjB8fGdlPjEpJiYxMDEhPVF8fHkudG9Mb3dlckNhc2UoKS5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMvKT9QOnkubWF0Y2goL1teLTAtOTosXC9cXF0vKT9MOlB9ZnVuY3Rpb24gJG4oeSxQKXtpZihQJiZQLnJhdyly'@; put 'ZXR1cm57dDoicyIsdjp5fTtpZigheSlyZXR1cm57dDoieiJ9O2lmKCJUUlVFIj09PXkpcmV0dXJue3Q6ImIiLHY6ITB9O2lmKCJGQUxTRSI9PT15KXJldHVybnt0OiJiIix2OiExfTt2YXIgTD0iIixRPU51bWJlcih5KTtpZihpc0Zpbml0ZShRKSlyZXR1cm57dDoibiIsdjpRfTtpZihpc05h'@; put 'TihRKSYmL1xkLy50ZXN0KHkpKXt2YXIgcmU9MSxnZT15LnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZyxmdW5jdGlvbihudCxkdCxDdCl7cmV0dXJuIEx8fChMPSIjLCMjMCIpLGR0K0N0fSkucmVwbGFjZSgvWyRdL2csIiIpLnJlcGxhY2UoL1wuXGQqLyxmdW5jdGlvbihudCl7THx8KEw9IjAi'@; put 'KSxMKz0iLiI7Zm9yKHZhciBkdD0yO2R0PD1udC5sZW5ndGg7KytkdClMKz0iMCI7cmV0dXJuIG50fSkucmVwbGFjZSgvWyVdL2csZnVuY3Rpb24oKXtyZXR1cm4gcmUqPTEwMCxMfHwoTD0iMCIpLEwrPSIlIiwiIn0pO2lmKCFpc05hTihRPU51bWJlcihnZSkpKXJldHVybnt0OiJuIix2OlEv'@; put 'cmUsejpMfTtpZihnZT1nZS5yZXBsYWNlKC9bKF0oLiopWyldLyxmdW5jdGlvbihudCxkdCl7cmV0dXJuIHJlPS1yZSxkdH0pLCFpc05hTihRPU51bWJlcihnZSkpKXJldHVybnt0OiJuIix2OlEvcmUsejooTHx8IjAiKSsiXyk7KCIrKEx8fCIwIikrIik7QCJ9fWU6aWYoIVB8fCFQLnJhd0Rh'@; put 'dGVzKXt2YXIgX2U9UCYmUC5jZWxsRGF0ZXMsdmU9bmV3IERhdGUoeSksSGU9dmUuZ2V0WWVhcigpLEJlPXZlLmdldE1vbnRoKCksR2U9dmUuZ2V0RGF0ZSgpO2lmKGlzTmFOKEdlKXx8SGU8MHx8SGU+ODA5OSlicmVhayBlO2lmKChCZT4wfHxHZT4xKSYmMTAxIT1IZSlyZXR1cm57dDpfZT8i'@; put 'ZCI6Im4iLHY6X2U/dmU6VWUodmUpLHo6UC5kYXRlTkZ8fHcuX3RhYmxlWzE0XX07aWYoeS50b0xvd2VyQ2FzZSgpLm1hdGNoKC9qYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYy8pKXJldHVybnt0Ol9lPyJkIjoibiIsdjpfZT92ZTpVZSh2ZSksejpQLmRh'@; put 'dGVORnx8dy5fdGFibGVbMTRdfTtpZih5Lm1hdGNoKC9bXi0wLTk6LFwvXFxdLykpYnJlYWsgZTtyZXR1cm4gdmV9cmV0dXJue3Q6InMiLHY6eX19dmFyIHp0LEhuPTU9PSJhYmFjYWJhIi5zcGxpdCgvKDo/YikvaSkubGVuZ3RoO2Z1bmN0aW9uIGhuKHkpe3JldHVybiBudWxsIT15JiYheX1m'@; put 'dW5jdGlvbiB3dCh5KXtyZXR1cm4geS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt5LnNsaWNlKDEpfWZ1bmN0aW9uIFh0KHkpe3JldHVybiB5P3kuZGF0YT9VKHkuZGF0YSk6eS5hc05vZGVCdWZmZXImJmhlP1UoeS5hc05vZGVCdWZmZXIoKS50b1N0cmluZygiYmluYXJ5IikpOnkuYXNCaW5h'@; put 'cnk/VSh5LmFzQmluYXJ5KCkpOnkuX2RhdGEmJnkuX2RhdGEuZ2V0Q29udGVudD9VKFB0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHkuX2RhdGEuZ2V0Q29udGVudCgpLDApKSk6eS5jb250ZW50JiZ5LnR5cGU/VShQdCh5LmNvbnRlbnQpKTpudWxsOm51bGx9ZnVuY3Rpb24gX3QoeSl7'@; put 'aWYoIXkpcmV0dXJuIG51bGw7aWYoeS5kYXRhKXJldHVybiBCKHkuZGF0YSk7aWYoeS5hc05vZGVCdWZmZXImJmhlKXJldHVybiB5LmFzTm9kZUJ1ZmZlcigpO2lmKHkuX2RhdGEmJnkuX2RhdGEuZ2V0Q29udGVudCl7dmFyIFA9eS5fZGF0YS5nZXRDb250ZW50KCk7cmV0dXJuInN0cmluZyI9'@; put 'PXR5cGVvZiBQP0IoUCk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoUCl9cmV0dXJuIHkuY29udGVudCYmeS50eXBlP3kuY29udGVudDpudWxsfWZ1bmN0aW9uIG1uKHksUCl7Zm9yKHZhciBMPXkuRnVsbFBhdGhzfHxsdCh5LmZpbGVzKSxRPVAudG9Mb3dlckNhc2UoKSxyZT1RLnJlcGxh'@; put 'Y2UoL1wvL2csIlxcIiksZ2U9MDtnZTxMLmxlbmd0aDsrK2dlKXt2YXIgX2U9TFtnZV0udG9Mb3dlckNhc2UoKTtpZihRPT1fZXx8cmU9PV9lKXJldHVybiB5LmZpbGVzW0xbZ2VdXX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBydCh5LFApe3ZhciBMPW1uKHksUCk7aWYobnVsbD09TCl0aHJvdyBu'@; put 'ZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGZpbGUgIitQKyIgaW4gemlwIik7cmV0dXJuIEx9ZnVuY3Rpb24gSXQoeSxQLEwpe2lmKCFMKXJldHVybiBmdW5jdGlvbiBOdCh5KXtyZXR1cm4geSYmIi5iaW4iPT09eS5uYW1lLnNsaWNlKC00KT9fdCh5KTpYdCh5KX0ocnQoeSxQKSk7aWYoIVApcmV0'@; put 'dXJuIG51bGw7dHJ5e3JldHVybiBJdCh5LFApfWNhdGNoe3JldHVybiBudWxsfX1mdW5jdGlvbiBRdCh5LFAsTCl7aWYoIUwpcmV0dXJuIFh0KHJ0KHksUCkpO2lmKCFQKXJldHVybiBudWxsO3RyeXtyZXR1cm4gUXQoeSxQKX1jYXRjaHtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gRHQoeSxQLEwp'@; put 'e2lmKCFMKXJldHVybiBfdChydCh5LFApKTtpZighUClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIER0KHksUCl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIFl0KHksUCxMKXt5LkZ1bGxQYXRocz9qZS51dGlscy5jZmJfYWRkKHksUCxMKTp5LmZpbGUoUCxMKX1mdW5jdGlvbiB5bigpe3Jl'@; put 'dHVybiB6dD9uZXcgenQ6amUudXRpbHMuY2ZiX25ldygpfWZ1bmN0aW9uIHhuKHksUCl7dmFyIEw7aWYoenQpc3dpdGNoKFAudHlwZSl7Y2FzZSJiYXNlNjQiOkw9bmV3IHp0KHkse2Jhc2U2NDohMH0pO2JyZWFrO2Nhc2UiYmluYXJ5IjpjYXNlImFycmF5IjpMPW5ldyB6dCh5LHtiYXNlNjQ6'@; put 'ITF9KTticmVhaztjYXNlImJ1ZmZlciI6TD1uZXcgenQoeSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrUC50eXBlKX1lbHNlIHN3aXRjaChQLnR5cGUpe2Nhc2UiYmFzZTY0IjpMPWplLnJlYWQoeSx7dHlwZToiYmFzZTY0In0pO2JyZWFrO2Nh'@; put 'c2UiYmluYXJ5IjpMPWplLnJlYWQoeSx7dHlwZToiYmluYXJ5In0pO2JyZWFrO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpMPWplLnJlYWQoeSx7dHlwZToiYnVmZmVyIn0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK1AudHlwZSl9cmV0dXJu'@; put 'IEx9ZnVuY3Rpb24gc24oeSxQKXtpZigiLyI9PXkuY2hhckF0KDApKXJldHVybiB5LnNsaWNlKDEpO3ZhciBMPVAuc3BsaXQoIi8iKTsiLyIhPVAuc2xpY2UoLTEpJiZMLnBvcCgpO2Zvcih2YXIgUT15LnNwbGl0KCIvIik7MCE9PVEubGVuZ3RoOyl7dmFyIHJlPVEuc2hpZnQoKTsiLi4iPT09'@; put 'cmU/TC5wb3AoKToiLiIhPT1yZSYmTC5wdXNoKHJlKX1yZXR1cm4gTC5qb2luKCIvIil9dHlwZW9mIEpTWmlwU3luYzwidSImJih6dD1KU1ppcFN5bmMpLGF0LmV4cG9ydHMmJnR5cGVvZiB6dD4idSImJih6dD1GKDc1NDQ2KSk7dmFyIEJuPSc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n'@; put 'PSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+XHJcbicsUm49Lyg/OlteIlxzPz5cL10rKVxzKj1ccyooKD86IikoPzpbXiJdKj8pKD86Iil8KD86JykoPzpbXiddKj8pKD86Jyl8KD86W14nIj5cc10rKSkvZywkdD0vPFtcL1w/XT9bYS16QS1aMC05Ol8tXSsoPzpccytbXiJccz8+XC9dK1xz'@; put 'Kj1ccyooPzoiW14iXSoifCdbXiddKid8W14nIj5ccz1dKykpKlxzP1tcL1w/XT8+L2c7Qm4ubWF0Y2goJHQpfHwoJHQ9LzxbXj5dKj4vZyk7dmFyIEZuPS88XHcqOi8sbmk9LzwoXC8/KVx3KzovO2Z1bmN0aW9uIGxuKHksUCxMKXtmb3IodmFyIFE9e30scmU9MCxnZT0wO3JlIT09eS5sZW5n'@; put 'dGgmJjMyIT09KGdlPXkuY2hhckNvZGVBdChyZSkpJiYxMCE9PWdlJiYxMyE9PWdlOysrcmUpO2lmKFB8fChRWzBdPXkuc2xpY2UoMCxyZSkpLHJlPT09eS5sZW5ndGgpcmV0dXJuIFE7dmFyIF9lPXkubWF0Y2goUm4pLHZlPTAsU2U9IiIsSGU9MCxCZT0iIixHZT0iIixudD0xO2lmKF9lKWZv'@; put 'cihIZT0wO0hlIT1fZS5sZW5ndGg7KytIZSl7Zm9yKEdlPV9lW0hlXSxnZT0wO2dlIT1HZS5sZW5ndGgmJjYxIT09R2UuY2hhckNvZGVBdChnZSk7KytnZSk7Zm9yKEJlPUdlLnNsaWNlKDAsZ2UpLnRyaW0oKTszMj09R2UuY2hhckNvZGVBdChnZSsxKTspKytnZTtmb3IobnQ9MzQ9PShyZT1H'@; put 'ZS5jaGFyQ29kZUF0KGdlKzEpKXx8Mzk9PXJlPzE6MCxTZT1HZS5zbGljZShnZSsxK250LEdlLmxlbmd0aC1udCksdmU9MDt2ZSE9QmUubGVuZ3RoJiY1OCE9PUJlLmNoYXJDb2RlQXQodmUpOysrdmUpO2lmKHZlPT09QmUubGVuZ3RoKUJlLmluZGV4T2YoIl8iKT4wJiYoQmU9QmUuc2xpY2Uo'@; put 'MCxCZS5pbmRleE9mKCJfIikpKSxRW0JlXT1TZSxMfHwoUVtCZS50b0xvd2VyQ2FzZSgpXT1TZSk7ZWxzZXt2YXIgZHQ9KDU9PT12ZSYmInhtbG5zIj09PUJlLnNsaWNlKDAsNSk/InhtbG5zIjoiIikrQmUuc2xpY2UodmUrMSk7aWYoUVtkdF0mJiJleHQiPT1CZS5zbGljZSh2ZS0zLHZlKSlj'@; put 'b250aW51ZTtRW2R0XT1TZSxMfHwoUVtkdC50b0xvd2VyQ2FzZSgpXT1TZSl9fXJldHVybiBRfWZ1bmN0aW9uIGpuKHkpe3JldHVybiB5LnJlcGxhY2UobmksIjwkMSIpfXZhciBxcj17IiZxdW90OyI6JyInLCImYXBvczsiOiInIiwiJmd0OyI6Ij4iLCImbHQ7IjoiPCIsIiZhbXA7IjoiJiJ9'@; put 'LGdpPWJlKHFyKSx4cj1mdW5jdGlvbigpe3ZhciB5PS8mKD86cXVvdHxhcG9zfGd0fGx0fGFtcHwjeD8oW1xkYS1mQS1GXSspKTsvZ2ksUD0vX3goW1xkYS1mQS1GXXs0fSlfL2dpO3JldHVybiBmdW5jdGlvbiBMKFEpe3ZhciByZT1RKyIiLGdlPXJlLmluZGV4T2YoIjwhW0NEQVRBWyIpO2lm'@; put 'KC0xPT1nZSlyZXR1cm4gcmUucmVwbGFjZSh5LGZ1bmN0aW9uKHZlLFNlKXtyZXR1cm4gcXJbdmVdfHxTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KFNlLHZlLmluZGV4T2YoIngiKT4tMT8xNjoxMCkpfHx2ZX0pLnJlcGxhY2UoUCxmdW5jdGlvbih2ZSxTZSl7cmV0dXJuIFN0cmluZy5m'@; put 'cm9tQ2hhckNvZGUocGFyc2VJbnQoU2UsMTYpKX0pO3ZhciBfZT1yZS5pbmRleE9mKCJdXT4iKTtyZXR1cm4gTChyZS5zbGljZSgwLGdlKSkrcmUuc2xpY2UoZ2UrOSxfZSkrTChyZS5zbGljZShfZSszKSl9fSgpLFVpPS9bJjw+JyJdL2csS3I9L1tcdTAwMDAtXHUwMDA4XHUwMDBiLVx1MDAx'@; put 'Zl0vZyxubz0vX3hbMC05YS1mQS1GXXs0fV8vZztmdW5jdGlvbiBIcih5KXtyZXR1cm4oeSsiIikucmVwbGFjZShubywiX3gwMDVGJCYiKS5yZXBsYWNlKFVpLGZ1bmN0aW9uKEwpe3JldHVybiBnaVtMXX0pLnJlcGxhY2UoS3IsZnVuY3Rpb24oTCl7cmV0dXJuIl94IisoIjAwMCIrTC5jaGFy'@; put 'Q29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpKyJfIn0pfWZ1bmN0aW9uIHFpKHkpe3JldHVybiBIcih5KS5yZXBsYWNlKC9cbi9nLCJfeDAwMGFfIil9ZnVuY3Rpb24gSmkoeSl7cmV0dXJuIEhyKHkpLnJlcGxhY2UoLyAvZywiX3gwMDIwXyIpfXZhciBhbz0vW1x1MDAwMC1cdTAw'@; put 'MWZdL2c7ZnVuY3Rpb24gcm8oeSl7cmV0dXJuKHkrIiIpLnJlcGxhY2UoVWksZnVuY3Rpb24oTCl7cmV0dXJuIGdpW0xdfSkucmVwbGFjZSgvXG4vZywiPGJyLz4iKS5yZXBsYWNlKGFvLGZ1bmN0aW9uKEwpe3JldHVybiImI3giKygiMDAwIitMLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYp'@; put 'KS5zbGljZSgtNCkrIjsifSl9ZnVuY3Rpb24gaW8oeSl7cmV0dXJuKHkrIiIpLnJlcGxhY2UoVWksZnVuY3Rpb24oTCl7cmV0dXJuIGdpW0xdfSkucmVwbGFjZShhbyxmdW5jdGlvbihMKXtyZXR1cm4iJiN4IitMLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIjsi'@; put 'fSl9dmFyIEdpPWZ1bmN0aW9uKCl7dmFyIHk9LyYjKFxkKyk7L2c7ZnVuY3Rpb24gUChMLFEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KFEsMTApKX1yZXR1cm4gZnVuY3Rpb24oUSl7cmV0dXJuIFEucmVwbGFjZSh5LFApfX0oKSxobz1mdW5jdGlvbihQKXtyZXR1cm4g'@; put 'UC5yZXBsYWNlKC8oXHJcbnxbXHJcbl0pL2csIiYjMTA7Iil9O2Z1bmN0aW9uIHlyKHkpe3N3aXRjaCh5KXtjYXNlIDE6Y2FzZSEwOmNhc2UiMSI6Y2FzZSJ0cnVlIjpjYXNlIlRSVUUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciBQaT1mdW5jdGlvbihQKXtmb3IodmFyIEw9IiIs'@; put 'UT0wLHJlPTAsZ2U9MCxfZT0wLHZlPTAsU2U9MDtRPFAubGVuZ3RoOykocmU9UC5jaGFyQ29kZUF0KFErKykpPDEyOD9MKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHJlKTooZ2U9UC5jaGFyQ29kZUF0KFErKykscmU+MTkxJiZyZTwyMjQ/KHZlPSgzMSZyZSk8PDYsdmV8PTYzJmdlLEwrPVN0cmlu'@; put 'Zy5mcm9tQ2hhckNvZGUodmUpKTooX2U9UC5jaGFyQ29kZUF0KFErKykscmU8MjQwP0wrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1JnJlKTw8MTJ8KDYzJmdlKTw8Nnw2MyZfZSk6KFNlPSgoNyZyZSk8PDE4fCg2MyZnZSk8PDEyfCg2MyZfZSk8PDZ8NjMmKHZlPVAuY2hhckNvZGVBdChRKysp'@; put 'KSktNjU1MzYsTCs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoU2U+Pj4xMCYxMDIzKSksTCs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoMTAyMyZTZSkpKSkpO3JldHVybiBMfSxMbz1mdW5jdGlvbih5KXtmb3IodmFyIFA9W10sTD0wLFE9MCxyZT0wO0w8eS5sZW5ndGg7KXN3aXRj'@; put 'aChRPXkuY2hhckNvZGVBdChMKyspLCEwKXtjYXNlIFE8MTI4OlAucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKFEpKTticmVhaztjYXNlIFE8MjA0ODpQLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgxOTIrKFE+PjYpKSksUC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZRKSkp'@; put 'O2JyZWFrO2Nhc2UgUT49NTUyOTYmJlE8NTczNDQ6US09NTUyOTYscmU9eS5jaGFyQ29kZUF0KEwrKyktNTYzMjArKFE8PDEwKSxQLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgyNDArKHJlPj4xOCY3KSkpLFAucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDE0NCsocmU+PjEyJjYzKSkpLFAu'@; put 'cHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsocmU+PjYmNjMpKSksUC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZyZSkpKTticmVhaztkZWZhdWx0OlAucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDIyNCsoUT4+MTIpKSksUC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUo'@; put 'MTI4KyhRPj42JjYzKSkpLFAucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsoNjMmUSkpKX1yZXR1cm4gUC5qb2luKCIiKX07aWYoaGUpe3ZhciBocz1mdW5jdGlvbihQKXt2YXIgUSxyZSxTZSxMPUJ1ZmZlci5hbGxvYygyKlAubGVuZ3RoKSxnZT0xLF9lPTAsdmU9MDtmb3IocmU9MDty'@; put 'ZTxQLmxlbmd0aDtyZSs9Z2UpZ2U9MSwoU2U9UC5jaGFyQ29kZUF0KHJlKSk8MTI4P1E9U2U6U2U8MjI0PyhRPTY0KigzMSZTZSkrKDYzJlAuY2hhckNvZGVBdChyZSsxKSksZ2U9Mik6U2U8MjQwPyhRPTQwOTYqKDE1JlNlKSs2NCooNjMmUC5jaGFyQ29kZUF0KHJlKzEpKSsoNjMmUC5jaGFy'@; put 'Q29kZUF0KHJlKzIpKSxnZT0zKTooZ2U9NCxRPTI2MjE0NCooNyZTZSkrNDA5NiooNjMmUC5jaGFyQ29kZUF0KHJlKzEpKSs2NCooNjMmUC5jaGFyQ29kZUF0KHJlKzIpKSsoNjMmUC5jaGFyQ29kZUF0KHJlKzMpKSx2ZT01NTI5NisoKFEtPTY1NTM2KT4+PjEwJjEwMjMpLFE9NTYzMjArKDEw'@; put 'MjMmUSkpLDAhPT12ZSYmKExbX2UrK109MjU1JnZlLExbX2UrK109dmU+Pj44LHZlPTApLExbX2UrK109USUyNTYsTFtfZSsrXT1RPj4+ODtyZXR1cm4gTC5zbGljZSgwLF9lKS50b1N0cmluZygidWNzMiIpfSxycz0iZm9vIGJhciBiYXpceGUyXHg5OFx4ODNceGYwXHg5Zlx4OGRceGEzIjtQ'@; put 'aShycyk9PWhzKHJzKSYmKFBpPWhzKTt2YXIgUmM9ZnVuY3Rpb24oUCl7cmV0dXJuIHVlKFAsImJpbmFyeSIpLnRvU3RyaW5nKCJ1dGY4Iil9O1BpKHJzKT09UmMocnMpJiYoUGk9UmMpLExvPWZ1bmN0aW9uKHkpe3JldHVybiB1ZSh5LCJ1dGY4IikudG9TdHJpbmcoImJpbmFyeSIpfX12YXIg'@; put 'eSx1bD0oeT17fSxmdW5jdGlvbihMLFEpe3ZhciByZT1MKyJ8IisoUXx8IiIpO3JldHVybiB5W3JlXT95W3JlXTp5W3JlXT1uZXcgUmVnRXhwKCI8KD86XFx3KzopPyIrTCsnKD86IHhtbDpzcGFjZT0icHJlc2VydmUiKT8oPzpbXj5dKik+KFtcXHNcXFNdKj8pPC8oPzpcXHcrOik/JytMKyI+'@; put 'IixRfHwiIil9KSxPYz1mdW5jdGlvbigpe3ZhciB5PVtbIm5ic3AiLCIgIl0sWyJtaWRkb3QiLCJceGI3Il0sWyJxdW90IiwnIiddLFsiYXBvcyIsIiciXSxbImd0IiwiPiJdLFsibHQiLCI8Il0sWyJhbXAiLCImIl1dLm1hcChmdW5jdGlvbihQKXtyZXR1cm5bbmV3IFJlZ0V4cCgiJiIrUFsw'@; put 'XSsiOyIsImlnIiksUFsxXV19KTtyZXR1cm4gZnVuY3Rpb24oTCl7Zm9yKHZhciBRPUwucmVwbGFjZSgvXltcdFxuXHIgXSsvLCIiKS5yZXBsYWNlKC9bXHRcblxyIF0rJC8sIiIpLnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLnJlcGxhY2UoLzxccypbYkJdW3JSXVxzKlwvPz4vZywiXG4i'@; put 'KS5yZXBsYWNlKC88W14+XSo+L2csIiIpLHJlPTA7cmU8eS5sZW5ndGg7KytyZSlRPVEucmVwbGFjZSh5W3JlXVswXSx5W3JlXVsxXSk7cmV0dXJuIFF9fSgpLE4wPWZ1bmN0aW9uKCl7dmFyIHk9e307cmV0dXJuIGZ1bmN0aW9uKEwpe3JldHVybiB2b2lkIDAhPT15W0xdP3lbTF06eVtMXT1u'@; put 'ZXcgUmVnRXhwKCI8KD86dnQ6KT8iK0wrIj4oW1xcc1xcU10qPyk8Lyg/OnZ0Oik/IitMKyI+IiwiZyIpfX0oKSxzMz0vPFwvPyg/OnZ0Oik/dmFyaWFudD4vZyxrMj0vPCg/OnZ0OikoW14+XSopPihbXHNcU10qKTwvO2Z1bmN0aW9uIGUwKHksUCl7dmFyIEw9bG4oeSksUT15Lm1hdGNoKE4w'@; put 'KEwuYmFzZVR5cGUpKXx8W10scmU9W107aWYoUS5sZW5ndGghPUwuc2l6ZSl7aWYoUC5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bmV4cGVjdGVkIHZlY3RvciBsZW5ndGggIitRLmxlbmd0aCsiICE9ICIrTC5zaXplKTtyZXR1cm4gcmV9cmV0dXJuIFEuZm9yRWFjaChmdW5jdGlvbihnZSl7dmFy'@; put 'IF9lPWdlLnJlcGxhY2UoczMsIiIpLm1hdGNoKGsyKTtfZSYmcmUucHVzaCh7djpQaShfZVsyXSksdDpfZVsxXX0pfSkscmV9dmFyIHh1PS8oXlxzfFxzJHxcbikvO2Z1bmN0aW9uIGZzKHksUCl7cmV0dXJuIjwiK3krKFAubWF0Y2goeHUpPycgeG1sOnNwYWNlPSJwcmVzZXJ2ZSInOiIiKSsi'@; put 'PiIrUCsiPC8iK3krIj4ifWZ1bmN0aW9uIFBhKHkpe3JldHVybiBsdCh5KS5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIiAiK1ArJz0iJyt5W1BdKyciJ30pLmpvaW4oIiIpfWZ1bmN0aW9uIFNyKHksUCxMKXtyZXR1cm4iPCIreSsobnVsbCE9TD9QYShMKToiIikrKG51bGwhPVA/KFAubWF0Y2go'@; put 'eHUpPycgeG1sOnNwYWNlPSJwcmVzZXJ2ZSInOiIiKSsiPiIrUCsiPC8iK3k6Ii8iKSsiPiJ9ZnVuY3Rpb24gUGgoeSxQKXt0cnl7cmV0dXJuIHkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9cLlxkKi8sIiIpfWNhdGNoKEwpe2lmKFApdGhyb3cgTH1yZXR1cm4iIn12YXIgQXIsYmMsaXM9e2Rj'@; put 'OiJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIsZGN0ZXJtczoiaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyIsZGNtaXR5cGU6Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS8iLG14OiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9tYWMvZXhjZWwvMjAw'@; put 'OC9tYWluIixyOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIixzanM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvc2hlZXRqcy9jb3JlLXByb3BlcnRpZXMiLHZ0OiJodHRw'@; put 'Oi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9kb2NQcm9wc1ZUeXBlcyIseHNpOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIseHNkOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIsbWFpbjpbImh0dHA6'@; put 'Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIsImh0dHA6Ly9wdXJsLm9jbGMub3JnL29veG1sL3NwcmVhZHNoZWV0bWwvbWFpbiIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL2V4Y2VsLzIwMDYvbWFpbiIsImh0dHA6Ly9z'@; put 'Y2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL2V4Y2VsLzIwMDYvMiJdfSxXaT17bzoidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIix4OiJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpleGNlbCIsc3M6InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206'@; put 'b2ZmaWNlOnNwcmVhZHNoZWV0IixkdDoidXVpZDpDMkY0MTAxMC02NUIzLTExZDEtQTI5Ri0wMEFBMDBDMTQ4ODIiLG12OiJodHRwOi8vbWFjVm1sU2NoZW1hVXJpIix2OiJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnZtbCIsaHRtbDoiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0'@; put 'MCJ9LFNhPWZ1bmN0aW9uKHkpe2Zvcih2YXIgUD1bXSxRPTA7UTx5WzBdLmxlbmd0aDsrK1EpaWYoeVswXVtRXSlmb3IodmFyIHJlPTAsZ2U9eVswXVtRXS5sZW5ndGg7cmU8Z2U7cmUrPTEwMjQwKVAucHVzaC5hcHBseShQLHlbMF1bUV0uc2xpY2UocmUscmUrMTAyNDApKTtyZXR1cm4gUH0s'@; put 'Rmg9U2EsRXU9ZnVuY3Rpb24oeSxQLEwpe2Zvcih2YXIgUT1bXSxyZT1QO3JlPEw7cmUrPTIpUS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoWW4oeSxyZSkpKTtyZXR1cm4gUS5qb2luKCIiKS5yZXBsYWNlKHYsIiIpfSxBcz1FdSxuMD1mdW5jdGlvbih5LFAsTCl7Zm9yKHZhciBRPVtdLHJl'@; put 'PVA7cmU8UCtMOysrcmUpUS5wdXNoKCgiMCIreVtyZV0udG9TdHJpbmcoMTYpKS5zbGljZSgtMikpO3JldHVybiBRLmpvaW4oIiIpfSxxYT1uMCxfYz1mdW5jdGlvbih5LFAsTCl7Zm9yKHZhciBRPVtdLHJlPVA7cmU8TDtyZSsrKVEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKFFpKHkscmUp'@; put 'KSk7cmV0dXJuIFEuam9pbigiIil9LEhoPV9jLElzPWZ1bmN0aW9uKHksUCl7dmFyIEw9YmkoeSxQKTtyZXR1cm4gTD4wP19jKHksUCs0LFArNCtMLTEpOiIifSxibz1JcyxyMD1mdW5jdGlvbih5LFApe3ZhciBMPWJpKHksUCk7cmV0dXJuIEw+MD9fYyh5LFArNCxQKzQrTC0xKToiIn0sVDI9'@; put 'cjAsRDI9ZnVuY3Rpb24oeSxQKXt2YXIgTD0yKmJpKHksUCk7cmV0dXJuIEw+MD9fYyh5LFArNCxQKzQrTC0xKToiIn0sbDM9RDI7QXI9YmM9ZnVuY3Rpb24oUCxMKXt2YXIgUT1iaShQLEwpO3JldHVybiBRPjA/RXUoUCxMKzQsTCs0K1EpOiIifTt2YXIgbzAsSTIsa289ZnVuY3Rpb24oeSxQ'@; put 'KXt2YXIgTD1iaSh5LFApO3JldHVybiBMPjA/X2MoeSxQKzQsUCs0K0wpOiIifSxDcz1rbztvMD1JMj1mdW5jdGlvbih5LFApe3JldHVybiBmdW5jdGlvbiAkYSh5LFApe2Zvcih2YXIgTD0xLTIqKHlbUCs3XT4+PjcpLFE9KCgxMjcmeVtQKzddKTw8NCkrKHlbUCs2XT4+PjQmMTUpLHJlPTE1'@; put 'JnlbUCs2XSxnZT01O2dlPj0wOy0tZ2UpcmU9MjU2KnJlK3lbUCtnZV07cmV0dXJuIDIwNDc9PVE/MD09cmU/TCooMS8wKTpOYU46KDA9PVE/UT0tMTAyMjooUS09MTAyMyxyZSs9TWF0aC5wb3coMiw1MikpLEwqTWF0aC5wb3coMixRLTUyKSpyZSl9KHksUCl9O3ZhciBOaD1mdW5jdGlvbihQ'@; put 'KXtyZXR1cm4gQXJyYXkuaXNBcnJheShQKX07aGUmJihFdT1mdW5jdGlvbih5LFAsTCl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih5KT95LnRvU3RyaW5nKCJ1dGYxNmxlIixQLEwpLnJlcGxhY2UodiwiIik6QXMoeSxQLEwpfSxuMD1mdW5jdGlvbih5LFAsTCl7cmV0dXJuIEJ1ZmZlci5pc0J1'@; put 'ZmZlcih5KT95LnRvU3RyaW5nKCJoZXgiLFAsUCtMKTpxYSh5LFAsTCl9LElzPWZ1bmN0aW9uKFAsTCl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihQKSlyZXR1cm4gYm8oUCxMKTt2YXIgUT1QLnJlYWRVSW50MzJMRShMKTtyZXR1cm4gUT4wP1AudG9TdHJpbmcoInV0ZjgiLEwrNCxMKzQrUS0xKToi'@; put 'In0scjA9ZnVuY3Rpb24oUCxMKXtpZighQnVmZmVyLmlzQnVmZmVyKFApKXJldHVybiBUMihQLEwpO3ZhciBRPVAucmVhZFVJbnQzMkxFKEwpO3JldHVybiBRPjA/UC50b1N0cmluZygidXRmOCIsTCs0LEwrNCtRLTEpOiIifSxEMj1mdW5jdGlvbihQLEwpe2lmKCFCdWZmZXIuaXNCdWZmZXIo'@; put 'UCkpcmV0dXJuIGwzKFAsTCk7dmFyIFE9MipQLnJlYWRVSW50MzJMRShMKTtyZXR1cm4gUC50b1N0cmluZygidXRmMTZsZSIsTCs0LEwrNCtRLTEpfSxBcj1mdW5jdGlvbihQLEwpe2lmKCFCdWZmZXIuaXNCdWZmZXIoUCkpcmV0dXJuIGJjKFAsTCk7dmFyIFE9UC5yZWFkVUludDMyTEUoTCk7'@; put 'cmV0dXJuIFAudG9TdHJpbmcoInV0ZjE2bGUiLEwrNCxMKzQrUSl9LGtvPWZ1bmN0aW9uKFAsTCl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihQKSlyZXR1cm4gQ3MoUCxMKTt2YXIgUT1QLnJlYWRVSW50MzJMRShMKTtyZXR1cm4gUC50b1N0cmluZygidXRmOCIsTCs0LEwrNCtRKX0sX2M9ZnVuY3Rp'@; put 'b24oUCxMLFEpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoUCk/UC50b1N0cmluZygidXRmOCIsTCxRKTpIaChQLEwsUSl9LFNhPWZ1bmN0aW9uKHkpe3JldHVybiB5WzBdLmxlbmd0aD4wJiZCdWZmZXIuaXNCdWZmZXIoeVswXVswXSk/QnVmZmVyLmNvbmNhdCh5WzBdKTpGaCh5KX0sUz1mdW5j'@; put 'dGlvbih5KXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHlbMF0pP0J1ZmZlci5jb25jYXQoeSk6W10uY29uY2F0LmFwcGx5KFtdLHkpfSxvMD1mdW5jdGlvbihQLEwpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoUCk/UC5yZWFkRG91YmxlTEUoTCk6STIoUCxMKX0sTmg9ZnVuY3Rpb24oUCl7cmV0'@; put 'dXJuIEJ1ZmZlci5pc0J1ZmZlcihQKXx8QXJyYXkuaXNBcnJheShQKX0pLHR5cGVvZiBjcHRhYmxlPCJ1IiYmKEV1PWZ1bmN0aW9uKHksUCxMKXtyZXR1cm4gY3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCx5LnNsaWNlKFAsTCkpLnJlcGxhY2UodiwiIil9LF9jPWZ1bmN0aW9uKHksUCxMKXty'@; put 'ZXR1cm4gY3B0YWJsZS51dGlscy5kZWNvZGUoNjUwMDEseS5zbGljZShQLEwpKX0sSXM9ZnVuY3Rpb24oeSxQKXt2YXIgTD1iaSh5LFApO3JldHVybiBMPjA/Y3B0YWJsZS51dGlscy5kZWNvZGUoUix5LnNsaWNlKFArNCxQKzQrTC0xKSk6IiJ9LHIwPWZ1bmN0aW9uKHksUCl7dmFyIEw9Ymko'@; put 'eSxQKTtyZXR1cm4gTD4wP2NwdGFibGUudXRpbHMuZGVjb2RlKE8seS5zbGljZShQKzQsUCs0K0wtMSkpOiIifSxEMj1mdW5jdGlvbih5LFApe3ZhciBMPTIqYmkoeSxQKTtyZXR1cm4gTD4wP2NwdGFibGUudXRpbHMuZGVjb2RlKDEyMDAseS5zbGljZShQKzQsUCs0K0wtMSkpOiIifSxBcj1m'@; put 'dW5jdGlvbih5LFApe3ZhciBMPWJpKHksUCk7cmV0dXJuIEw+MD9jcHRhYmxlLnV0aWxzLmRlY29kZSgxMjAwLHkuc2xpY2UoUCs0LFArNCtMKSk6IiJ9LGtvPWZ1bmN0aW9uKHksUCl7dmFyIEw9YmkoeSxQKTtyZXR1cm4gTD4wP2NwdGFibGUudXRpbHMuZGVjb2RlKDY1MDAxLHkuc2xpY2Uo'@; put 'UCs0LFArNCtMKSk6IiJ9KTt2YXIgUWk9ZnVuY3Rpb24oeSxQKXtyZXR1cm4geVtQXX0sWW49ZnVuY3Rpb24oeSxQKXtyZXR1cm4gMjU2KnlbUCsxXSt5W1BdfSxfaT1mdW5jdGlvbih5LFApe3ZhciBMPTI1Nip5W1ArMV0reVtQXTtyZXR1cm4gTDwzMjc2OD9MOi0xKig2NTUzNS1MKzEpfSxi'@; put 'aT1mdW5jdGlvbih5LFApe3JldHVybiB5W1ArM10qKDE8PDI0KSsoeVtQKzJdPDwxNikrKHlbUCsxXTw8OCkreVtQXX0sb3M9ZnVuY3Rpb24oeSxQKXtyZXR1cm4geVtQKzNdPDwyNHx5W1ArMl08PDE2fHlbUCsxXTw8OHx5W1BdfSxGYT1mdW5jdGlvbih5LFApe3JldHVybiB5W1BdPDwyNHx5'@; put 'W1ArMV08PDE2fHlbUCsyXTw8OHx5W1ArM119O2Z1bmN0aW9uIEhhKHksUCl7dmFyIFEscmUsX2UsdmUsU2UsSGUsTD0iIixnZT1bXTtzd2l0Y2goUCl7Y2FzZSJkYmNzIjppZihIZT10aGlzLmwsaGUmJkJ1ZmZlci5pc0J1ZmZlcih0aGlzKSlMPXRoaXMuc2xpY2UodGhpcy5sLHRoaXMubCsy'@; put 'KnkpLnRvU3RyaW5nKCJ1dGYxNmxlIik7ZWxzZSBmb3IoU2U9MDtTZTx5OysrU2UpTCs9U3RyaW5nLmZyb21DaGFyQ29kZShZbih0aGlzLEhlKSksSGUrPTI7eSo9MjticmVhaztjYXNlInV0ZjgiOkw9X2ModGhpcyx0aGlzLmwsdGhpcy5sK3kpO2JyZWFrO2Nhc2UidXRmMTZsZSI6TD1FdSh0'@; put 'aGlzLHRoaXMubCx0aGlzLmwrKHkqPTIpKTticmVhaztjYXNlIndzdHIiOmlmKCEodHlwZW9mIGNwdGFibGU8InUiKSlyZXR1cm4gSGEuY2FsbCh0aGlzLHksImRiY3MiKTtMPWNwdGFibGUudXRpbHMuZGVjb2RlKE8sdGhpcy5zbGljZSh0aGlzLmwsdGhpcy5sKzIqeSkpLHkqPTI7YnJlYWs7'@; put 'Y2FzZSJscHN0ci1hbnNpIjpMPUlzKHRoaXMsdGhpcy5sKSx5PTQrYmkodGhpcyx0aGlzLmwpO2JyZWFrO2Nhc2UibHBzdHItY3AiOkw9cjAodGhpcyx0aGlzLmwpLHk9NCtiaSh0aGlzLHRoaXMubCk7YnJlYWs7Y2FzZSJscHdzdHIiOkw9RDIodGhpcyx0aGlzLmwpLHk9NCsyKmJpKHRoaXMs'@; put 'dGhpcy5sKTticmVhaztjYXNlImxwcDQiOnk9NCtiaSh0aGlzLHRoaXMubCksTD1Bcih0aGlzLHRoaXMubCksMiZ5JiYoeSs9Mik7YnJlYWs7Y2FzZSI4bHBwNCI6eT00K2JpKHRoaXMsdGhpcy5sKSxMPWtvKHRoaXMsdGhpcy5sKSwzJnkmJih5Kz00LSgzJnkpKTticmVhaztjYXNlImNzdHIi'@; put 'OmZvcih5PTAsTD0iIjswIT09KF9lPVFpKHRoaXMsdGhpcy5sK3krKykpOylnZS5wdXNoKHEoX2UpKTtMPWdlLmpvaW4oIiIpO2JyZWFrO2Nhc2UiX3dzdHIiOmZvcih5PTAsTD0iIjswIT09KF9lPVluKHRoaXMsdGhpcy5sK3kpKTspZ2UucHVzaChxKF9lKSkseSs9Mjt5Kz0yLEw9Z2Uuam9p'@; put 'bigiIik7YnJlYWs7Y2FzZSJkYmNzLWNvbnQiOmZvcihMPSIiLEhlPXRoaXMubCxTZT0wO1NlPHk7KytTZSl7aWYodGhpcy5sZW5zJiYtMSE9PXRoaXMubGVucy5pbmRleE9mKEhlKSlyZXR1cm4gX2U9UWkodGhpcyxIZSksdGhpcy5sPUhlKzEsdmU9SGEuY2FsbCh0aGlzLHktU2UsX2U/ImRi'@; put 'Y3MtY29udCI6InNiY3MtY29udCIpLGdlLmpvaW4oIiIpK3ZlO2dlLnB1c2gocShZbih0aGlzLEhlKSkpLEhlKz0yfUw9Z2Uuam9pbigiIikseSo9MjticmVhaztjYXNlImNwc3RyIjppZih0eXBlb2YgY3B0YWJsZTwidSIpe0w9Y3B0YWJsZS51dGlscy5kZWNvZGUoTyx0aGlzLnNsaWNlKHRo'@; put 'aXMubCx0aGlzLmwreSkpO2JyZWFrfWNhc2Uic2Jjcy1jb250Ijpmb3IoTD0iIixIZT10aGlzLmwsU2U9MDtTZSE9eTsrK1NlKXtpZih0aGlzLmxlbnMmJi0xIT09dGhpcy5sZW5zLmluZGV4T2YoSGUpKXJldHVybiBfZT1RaSh0aGlzLEhlKSx0aGlzLmw9SGUrMSx2ZT1IYS5jYWxsKHRoaXMs'@; put 'eS1TZSxfZT8iZGJjcy1jb250Ijoic2Jjcy1jb250IiksZ2Uuam9pbigiIikrdmU7Z2UucHVzaChxKFFpKHRoaXMsSGUpKSksSGUrPTF9TD1nZS5qb2luKCIiKTticmVhaztkZWZhdWx0OnN3aXRjaCh5KXtjYXNlIDE6cmV0dXJuIFE9UWkodGhpcyx0aGlzLmwpLHRoaXMubCsrLFE7Y2FzZSAy'@; put 'OnJldHVybiBRPSgiaSI9PT1QP19pOlluKSh0aGlzLHRoaXMubCksdGhpcy5sKz0yLFE7Y2FzZSA0OmNhc2UtNDpyZXR1cm4iaSIhPT1QJiYxMjgmdGhpc1t0aGlzLmwrM10/KHJlPWJpKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTQscmUpOihRPSh5PjA/b3M6RmEpKHRoaXMsdGhpcy5sKSx0aGlz'@; put 'LmwrPTQsUSk7Y2FzZSA4OmNhc2UtODppZigiZiI9PT1QKXJldHVybiByZT04PT15P28wKHRoaXMsdGhpcy5sKTpvMChbdGhpc1t0aGlzLmwrN10sdGhpc1t0aGlzLmwrNl0sdGhpc1t0aGlzLmwrNV0sdGhpc1t0aGlzLmwrNF0sdGhpc1t0aGlzLmwrM10sdGhpc1t0aGlzLmwrMl0sdGhpc1t0'@; put 'aGlzLmwrMV0sdGhpc1t0aGlzLmwrMF1dLDApLHRoaXMubCs9OCxyZTt5PTg7Y2FzZSAxNjpMPW4wKHRoaXMsdGhpcy5sLHkpfX1yZXR1cm4gdGhpcy5sKz15LEx9dmFyICRvPWZ1bmN0aW9uKHksUCxMKXt5W0xdPTI1NSZQLHlbTCsxXT1QPj4+OCYyNTUseVtMKzJdPVA+Pj4xNiYyNTUseVtM'@; put 'KzNdPVA+Pj4yNCYyNTV9LFYwPWZ1bmN0aW9uKHksUCxMKXt5W0xdPTI1NSZQLHlbTCsxXT1QPj44JjI1NSx5W0wrMl09UD4+MTYmMjU1LHlbTCszXT1QPj4yNCYyNTV9LERhPWZ1bmN0aW9uKHksUCxMKXt5W0xdPTI1NSZQLHlbTCsxXT1QPj4+OCYyNTV9O2Z1bmN0aW9uIFZoKHksUCxMKXt2'@; put 'YXIgUT0wLHJlPTA7aWYoImRiY3MiPT09TCl7Zm9yKHJlPTA7cmUhPVAubGVuZ3RoOysrcmUpRGEodGhpcyxQLmNoYXJDb2RlQXQocmUpLHRoaXMubCsyKnJlKTtRPTIqUC5sZW5ndGh9ZWxzZSBpZigic2JjcyI9PT1MKXtpZih0eXBlb2YgY3B0YWJsZTwidSImJjg3ND09Uilmb3IocmU9MDty'@; put 'ZSE9UC5sZW5ndGg7KytyZSl7dmFyIGdlPWNwdGFibGUudXRpbHMuZW5jb2RlKFIsUC5jaGFyQXQocmUpKTt0aGlzW3RoaXMubCtyZV09Z2VbMF19ZWxzZSBmb3IoUD1QLnJlcGxhY2UoL1teXHgwMC1ceDdGXS9nLCJfIikscmU9MDtyZSE9UC5sZW5ndGg7KytyZSl0aGlzW3RoaXMubCtyZV09'@; put 'MjU1JlAuY2hhckNvZGVBdChyZSk7UT1QLmxlbmd0aH1lbHNle2lmKCJoZXgiPT09TCl7Zm9yKDtyZTx5OysrcmUpdGhpc1t0aGlzLmwrK109cGFyc2VJbnQoUC5zbGljZSgyKnJlLDIqcmUrMiksMTYpfHwwO3JldHVybiB0aGlzfWlmKCJ1dGYxNmxlIj09PUwpe3ZhciBfZT1NYXRoLm1pbih0'@; put 'aGlzLmwreSx0aGlzLmxlbmd0aCk7Zm9yKHJlPTA7cmU8TWF0aC5taW4oUC5sZW5ndGgseSk7KytyZSl7dmFyIHZlPVAuY2hhckNvZGVBdChyZSk7dGhpc1t0aGlzLmwrK109MjU1JnZlLHRoaXNbdGhpcy5sKytdPXZlPj44fWZvcig7dGhpcy5sPF9lOyl0aGlzW3RoaXMubCsrXT0wO3JldHVy'@; put 'biB0aGlzfXN3aXRjaCh5KXtjYXNlIDE6UT0xLHRoaXNbdGhpcy5sXT0yNTUmUDticmVhaztjYXNlIDI6UT0yLHRoaXNbdGhpcy5sXT0yNTUmUCx0aGlzW3RoaXMubCsxXT0yNTUmKFA+Pj49OCk7YnJlYWs7Y2FzZSAzOlE9Myx0aGlzW3RoaXMubF09MjU1JlAsdGhpc1t0aGlzLmwrMV09MjU1'@; put 'JihQPj4+PTgpLHRoaXNbdGhpcy5sKzJdPTI1NSYoUD4+Pj04KTticmVhaztjYXNlIDQ6UT00LCRvKHRoaXMsUCx0aGlzLmwpO2JyZWFrO2Nhc2UgODppZihRPTgsImYiPT09TCl7IWZ1bmN0aW9uIHQwKHksUCxMKXt2YXIgUT0oUDwwfHwxL1A9PS0xLzA/MTowKTw8NyxyZT0wLGdlPTAsX2U9'@; put 'UT8tUDpQO2lzRmluaXRlKF9lKT8wPT1fZT9yZT1nZT0wOihyZT1NYXRoLmZsb29yKE1hdGgubG9nKF9lKS9NYXRoLkxOMiksZ2U9X2UqTWF0aC5wb3coMiw1Mi1yZSkscmU8PS0xMDIzJiYoIWlzRmluaXRlKGdlKXx8Z2U8TWF0aC5wb3coMiw1MikpP3JlPS0xMDIyOihnZS09TWF0aC5wb3co'@; put 'Miw1MikscmUrPTEwMjMpKToocmU9MjA0NyxnZT1pc05hTihQKT8yNjk4NTowKTtmb3IodmFyIHZlPTA7dmU8PTU7Kyt2ZSxnZS89MjU2KXlbTCt2ZV09MjU1JmdlO3lbTCs2XT0oMTUmcmUpPDw0fDE1JmdlLHlbTCs3XT1yZT4+NHxRfSh0aGlzLFAsdGhpcy5sKTticmVha31jYXNlIDE2OmJy'@; put 'ZWFrO2Nhc2UtNDpRPTQsVjAodGhpcyxQLHRoaXMubCl9fXJldHVybiB0aGlzLmwrPVEsdGhpc31mdW5jdGlvbiBCaCh5LFApe3ZhciBMPW4wKHRoaXMsdGhpcy5sLHkubGVuZ3RoPj4xKTtpZihMIT09eSl0aHJvdyBuZXcgRXJyb3IoUCsiRXhwZWN0ZWQgIit5KyIgc2F3ICIrTCk7dGhpcy5s'@; put 'Kz15Lmxlbmd0aD4+MX1mdW5jdGlvbiBvbCh5LFApe3kubD1QLHkucmVhZF9zaGlmdD1IYSx5LmNoaz1CaCx5LndyaXRlX3NoaWZ0PVZofWZ1bmN0aW9uIHljKHksUCl7eS5sKz1QfWZ1bmN0aW9uIHByKHkpe3ZhciBQPUcoeSk7cmV0dXJuIG9sKFAsMCksUH1mdW5jdGlvbiBIbyh5LFAsTCl7'@; put 'aWYoeSl7dmFyIFEscmUsZ2U7b2woeSx5Lmx8fDApO2Zvcih2YXIgX2U9eS5sZW5ndGgsdmU9MCxTZT0wO3kubDxfZTspezEyOCYodmU9eS5yZWFkX3NoaWZ0KDEpKSYmKHZlPSgxMjcmdmUpKygoMTI3JnkucmVhZF9zaGlmdCgxKSk8PDcpKTt2YXIgSGU9bWZbdmVdfHxtZls2NTUzNV07Zm9y'@; put 'KGdlPTEyNyYoUT15LnJlYWRfc2hpZnQoMSkpLHJlPTE7cmU8NCYmMTI4JlE7KytyZSlnZSs9KDEyNyYoUT15LnJlYWRfc2hpZnQoMSkpKTw8NypyZTtTZT15LmwrZ2U7dmFyIEJlPShIZS5mfHx5YykoeSxnZSxMKTtpZih5Lmw9U2UsUChCZSxIZS5uLHZlKSlyZXR1cm59fX1mdW5jdGlvbiB3'@; put 'Yygpe3ZhciB5PVtdLFA9aGU/MjU2OjIwNDgsTD1mdW5jdGlvbihIZSl7dmFyIEJlPXByKEhlKTtyZXR1cm4gb2woQmUsMCksQmV9LFE9TChQKSxyZT1mdW5jdGlvbigpe1EmJihRLmxlbmd0aD5RLmwmJigoUT1RLnNsaWNlKDAsUS5sKSkubD1RLmxlbmd0aCksUS5sZW5ndGg+MCYmeS5wdXNo'@; put 'KFEpLFE9bnVsbCl9LGdlPWZ1bmN0aW9uKEhlKXtyZXR1cm4gUSYmSGU8US5sZW5ndGgtUS5sP1E6KHJlKCksUT1MKE1hdGgubWF4KEhlKzEsUCkpKX07cmV0dXJue25leHQ6Z2UscHVzaDpmdW5jdGlvbihIZSl7cmUoKSxudWxsPT0oUT1IZSkubCYmKFEubD1RLmxlbmd0aCksZ2UoUCl9LGVu'@; put 'ZDpmdW5jdGlvbigpe3JldHVybiByZSgpLFNhKFt5XSl9LF9idWZzOnl9fWZ1bmN0aW9uIHVpKHksUCxMLFEpe3ZhciBnZSxyZT0rYjVbUF07aWYoIWlzTmFOKHJlKSl7UXx8KFE9bWZbcmVdLnB8fChMfHxbXSkubGVuZ3RofHwwKSxnZT0xKyhyZT49MTI4PzE6MCkrMSxRPj0xMjgmJisrZ2Us'@; put 'UT49MTYzODQmJisrZ2UsUT49MjA5NzE1MiYmKytnZTt2YXIgX2U9eS5uZXh0KGdlKTtyZTw9MTI3P19lLndyaXRlX3NoaWZ0KDEscmUpOihfZS53cml0ZV9zaGlmdCgxLDEyOCsoMTI3JnJlKSksX2Uud3JpdGVfc2hpZnQoMSxyZT4+NykpO2Zvcih2YXIgdmU9MDs0IT12ZTsrK3ZlKXtpZigh'@; put 'KFE+PTEyOCkpe19lLndyaXRlX3NoaWZ0KDEsUSk7YnJlYWt9X2Uud3JpdGVfc2hpZnQoMSwxMjgrKDEyNyZRKSksUT4+PTd9UT4wJiZOaChMKSYmeS5wdXNoKEwpfX1mdW5jdGlvbiBsdSh5LFAsTCl7dmFyIFE9b24oeSk7aWYoUC5zPyhRLmNSZWwmJihRLmMrPVAucy5jKSxRLnJSZWwmJihR'@; put 'LnIrPVAucy5yKSk6KFEuY1JlbCYmKFEuYys9UC5jKSxRLnJSZWwmJihRLnIrPVAucikpLCFMfHxMLmJpZmY8MTIpe2Zvcig7US5jPj0yNTY7KVEuYy09MjU2O2Zvcig7US5yPj02NTUzNjspUS5yLT02NTUzNn1yZXR1cm4gUX1mdW5jdGlvbiBocih5LFAsTCl7dmFyIFE9b24oeSk7cmV0dXJu'@; put 'IFEucz1sdShRLnMsUC5zLEwpLFEuZT1sdShRLmUsUC5zLEwpLFF9ZnVuY3Rpb24gTDIoeSxQKXtpZih5LmNSZWwmJnkuYzwwKWZvcih5PW9uKHkpO3kuYzwwOyl5LmMrPVA+OD8xNjM4NDoyNTY7aWYoeS5yUmVsJiZ5LnI8MClmb3IoeT1vbih5KTt5LnI8MDspeS5yKz1QPjg/MTA0ODU3NjpQ'@; put 'PjU/NjU1MzY6MTYzODQ7aWYoeS5jUmVsJiZ5LmM+PShQPjg/MTYzODQ6MjU2KSlmb3IoeT1vbih5KTt5LmM+PShQPjg/MTYzODQ6MjU2KTspeS5jLT1QPjg/MTYzODQ6MjU2O2lmKHkuclJlbCYmeS5yPj0xMDQ4NTc2KWZvcih5PW9uKHkpO3kucj49MTA0ODU3NjspeS5yLT0xMDQ4NTc2O3Zh'@; put 'ciBMPWRpKHkpO3JldHVybiF5LmNSZWwmJm51bGwhPXkuY1JlbCYmKEw9ZnVuY3Rpb24gSzcoeSl7cmV0dXJuIHkucmVwbGFjZSgvXihbQS1aXSkvLCIkJCQxIil9KEwpKSwheS5yUmVsJiZudWxsIT15LnJSZWwmJihMPWZ1bmN0aW9uIG5tKHkpe3JldHVybiB5LnJlcGxhY2UoLyhbQS1aXXxe'@; put 'KShcZCspJC8sIiQxJCQkMiIpfShMKSksTH1mdW5jdGlvbiBtaSh5LFApe3JldHVybiAwIT15LnMucnx8eS5zLnJSZWx8fHkuZS5yIT0oUC5iaWZmPj0xMj8xMDQ4NTc1OlAuYmlmZj49OD82NTUzNjoxNjM4NCl8fHkuZS5yUmVsPzAhPXkucy5jfHx5LnMuY1JlbHx8eS5lLmMhPShQLmJpZmY+'@; put 'PTEyPzE2MzgzOjI1NSl8fHkuZS5jUmVsP0wyKHkucyxQLmJpZmYpKyI6IitMMih5LmUsUC5iaWZmKTooeS5zLnJSZWw/IiI6IiQiKStIcyh5LnMucikrIjoiKyh5LmUuclJlbD8iIjoiJCIpK0hzKHkuZS5yKTooeS5zLmNSZWw/IiI6IiQiKStOcyh5LnMuYykrIjoiKyh5LmUuY1JlbD8iIjoi'@; put 'JCIpK05zKHkuZS5jKX12YXIgeGQ9e307ZnVuY3Rpb24gQjAoeSl7cmV0dXJuIHBhcnNlSW50KGZ1bmN0aW9uIGMzKHkpe3JldHVybiB5LnJlcGxhY2UoL1wkKFxkKykkLywiJDEiKX0oeSksMTApLTF9ZnVuY3Rpb24gSHMoeSl7cmV0dXJuIiIrKHkrMSl9ZnVuY3Rpb24gamgoeSl7Zm9yKHZh'@; put 'ciBQPWZ1bmN0aW9uIG5zKHkpe3JldHVybiB5LnJlcGxhY2UoL15cJChbQS1aXSkvLCIkMSIpfSh5KSxMPTAsUT0wO1EhPT1QLmxlbmd0aDsrK1EpTD0yNipMK1AuY2hhckNvZGVBdChRKS02NDtyZXR1cm4gTC0xfWZ1bmN0aW9uIE5zKHkpe2lmKHk8MCl0aHJvdyBuZXcgRXJyb3IoImludmFs'@; put 'aWQgY29sdW1uICIreSk7dmFyIFA9IiI7Zm9yKCsreTt5O3k9TWF0aC5mbG9vcigoeS0xKS8yNikpUD1TdHJpbmcuZnJvbUNoYXJDb2RlKCh5LTEpJTI2KzY1KStQO3JldHVybiBQfWZ1bmN0aW9uIHNzKHkpe2Zvcih2YXIgUD0wLEw9MCxRPTA7UTx5Lmxlbmd0aDsrK1Epe3ZhciByZT15LmNo'@; put 'YXJDb2RlQXQoUSk7cmU+PTQ4JiZyZTw9NTc/UD0xMCpQKyhyZS00OCk6cmU+PTY1JiZyZTw9OTAmJihMPTI2KkwrKHJlLTY0KSl9cmV0dXJue2M6TC0xLHI6UC0xfX1mdW5jdGlvbiBkaSh5KXtmb3IodmFyIFA9eS5jKzEsTD0iIjtQO1A9KFAtMSkvMjZ8MClMPVN0cmluZy5mcm9tQ2hhckNv'@; put 'ZGUoKFAtMSklMjYrNjUpK0w7cmV0dXJuIEwrKHkucisxKX1mdW5jdGlvbiBXcyh5KXt2YXIgUD15LmluZGV4T2YoIjoiKTtyZXR1cm4tMT09UD97czpzcyh5KSxlOnNzKHkpfTp7czpzcyh5LnNsaWNlKDAsUCkpLGU6c3MoeS5zbGljZShQKzEpKX19ZnVuY3Rpb24gT28oeSxQKXtyZXR1cm4g'@; put 'dHlwZW9mIFA+InUifHwibnVtYmVyIj09dHlwZW9mIFA/T28oeS5zLHkuZSk6KCJzdHJpbmciIT10eXBlb2YgeSYmKHk9ZGkoeSkpLCJzdHJpbmciIT10eXBlb2YgUCYmKFA9ZGkoUCkpLHk9PVA/eTp5KyI6IitQKX1mdW5jdGlvbiBPaSh5KXt2YXIgUD1KU09OLnBhcnNlKCd7InMiOnsiYyI6'@; put 'MCwiciI6MH0sImUiOnsiYyI6MCwiciI6MH19JyksTD0wLFE9MCxyZT0wLGdlPXkubGVuZ3RoO2ZvcihMPTA7UTxnZSYmISgocmU9eS5jaGFyQ29kZUF0KFEpLTY0KTwxfHxyZT4yNik7KytRKUw9MjYqTCtyZTtmb3IoUC5zLmM9LS1MLEw9MDtRPGdlJiYhKChyZT15LmNoYXJDb2RlQXQoUSkt'@; put 'NDgpPDB8fHJlPjkpOysrUSlMPTEwKkwrcmU7aWYoUC5zLnI9LS1MLFE9PT1nZXx8NTg9PT15LmNoYXJDb2RlQXQoKytRKSlyZXR1cm4gUC5lLmM9UC5zLmMsUC5lLnI9UC5zLnIsUDtmb3IoTD0wO1EhPWdlJiYhKChyZT15LmNoYXJDb2RlQXQoUSktNjQpPDF8fHJlPjI2KTsrK1EpTD0yNipM'@; put 'K3JlO2ZvcihQLmUuYz0tLUwsTD0wO1EhPWdlJiYhKChyZT15LmNoYXJDb2RlQXQoUSktNDgpPDB8fHJlPjkpOysrUSlMPTEwKkwrcmU7cmV0dXJuIFAuZS5yPS0tTCxQfWZ1bmN0aW9uIHJtKHksUCl7dmFyIEw9ImQiPT15LnQmJlAgaW5zdGFuY2VvZiBEYXRlO2lmKG51bGwhPXkueil0cnl7'@; put 'cmV0dXJuIHkudz13LmZvcm1hdCh5LnosTD9VZShQKTpQKX1jYXRjaHt9dHJ5e3JldHVybiB5Lnc9dy5mb3JtYXQoKHkuWEZ8fHt9KS5udW1GbXRJZHx8KEw/MTQ6MCksTD9VZShQKTpQKX1jYXRjaHtyZXR1cm4iIitQfX1mdW5jdGlvbiBjdSh5LFAsTCl7cmV0dXJuIG51bGw9PXl8fG51bGw9'@; put 'PXkudHx8InoiPT15LnQ/IiI6dm9pZCAwIT09eS53P3kudzooImQiPT15LnQmJiF5LnomJkwmJkwuZGF0ZU5GJiYoeS56PUwuZGF0ZU5GKSwiZSI9PXkudD9Rb1t5LnZdfHx5LnY6cm0oeSxudWxsPT1QP3kudjpQKSl9ZnVuY3Rpb24gRWQoeSxQKXt2YXIgTD1QJiZQLnNoZWV0P1Auc2hlZXQ6'@; put 'IlNoZWV0MSIsUT17fTtyZXR1cm4gUVtMXT15LHtTaGVldE5hbWVzOltMXSxTaGVldHM6UX19ZnVuY3Rpb24gczAoeSxQLEwpe3ZhciBRPUx8fHt9LHJlPXk/QXJyYXkuaXNBcnJheSh5KTpRLmRlbnNlO251bGwhPXRlJiZudWxsPT1yZSYmKHJlPXRlKTt2YXIgZ2U9eXx8KHJlP1tdOnt9KSxf'@; put 'ZT0wLHZlPTA7aWYoZ2UmJm51bGwhPVEub3JpZ2luKXtpZigibnVtYmVyIj09dHlwZW9mIFEub3JpZ2luKV9lPVEub3JpZ2luO2Vsc2V7dmFyIFNlPSJzdHJpbmciPT10eXBlb2YgUS5vcmlnaW4/c3MoUS5vcmlnaW4pOlEub3JpZ2luO19lPVNlLnIsdmU9U2UuY31nZVsiIXJlZiJdfHwoZ2Vb'@; put 'IiFyZWYiXT0iQTE6QTEiKX12YXIgSGU9e3M6e2M6MWU3LHI6MWU3fSxlOntjOjAscjowfX07aWYoZ2VbIiFyZWYiXSl7dmFyIEJlPU9pKGdlWyIhcmVmIl0pO0hlLnMuYz1CZS5zLmMsSGUucy5yPUJlLnMucixIZS5lLmM9TWF0aC5tYXgoSGUuZS5jLEJlLmUuYyksSGUuZS5yPU1hdGgubWF4'@; put 'KEhlLmUucixCZS5lLnIpLC0xPT1fZSYmKEhlLmUucj1fZT1CZS5lLnIrMSl9Zm9yKHZhciBHZT0wO0dlIT1QLmxlbmd0aDsrK0dlKWlmKFBbR2VdKXtpZighQXJyYXkuaXNBcnJheShQW0dlXSkpdGhyb3cgbmV3IEVycm9yKCJhb2FfdG9fc2hlZXQgZXhwZWN0cyBhbiBhcnJheSBvZiBhcnJh'@; put 'eXMiKTtmb3IodmFyIG50PTA7bnQhPVBbR2VdLmxlbmd0aDsrK250KWlmKCEodHlwZW9mIFBbR2VdW250XT4idSIpKXt2YXIgZHQ9e3Y6UFtHZV1bbnRdfSxDdD1fZStHZSxjdD12ZStudDtpZihIZS5zLnI+Q3QmJihIZS5zLnI9Q3QpLEhlLnMuYz5jdCYmKEhlLnMuYz1jdCksSGUuZS5yPEN0'@; put 'JiYoSGUuZS5yPUN0KSxIZS5lLmM8Y3QmJihIZS5lLmM9Y3QpLCFQW0dlXVtudF18fCJvYmplY3QiIT10eXBlb2YgUFtHZV1bbnRdfHxBcnJheS5pc0FycmF5KFBbR2VdW250XSl8fFBbR2VdW250XWluc3RhbmNlb2YgRGF0ZSlpZihBcnJheS5pc0FycmF5KGR0LnYpJiYoZHQuZj1QW0dlXVtu'@; put 'dF1bMV0sZHQudj1kdC52WzBdKSxudWxsPT09ZHQudilpZihkdC5mKWR0LnQ9Im4iO2Vsc2UgaWYoUS5udWxsRXJyb3IpZHQudD0iZSIsZHQudj0wO2Vsc2V7aWYoIVEuc2hlZXRTdHVicyljb250aW51ZTtkdC50PSJ6In1lbHNlIm51bWJlciI9PXR5cGVvZiBkdC52P2R0LnQ9Im4iOiJib29s'@; put 'ZWFuIj09dHlwZW9mIGR0LnY/ZHQudD0iYiI6ZHQudiBpbnN0YW5jZW9mIERhdGU/KGR0Lno9US5kYXRlTkZ8fHcuX3RhYmxlWzE0XSxRLmNlbGxEYXRlcz8oZHQudD0iZCIsZHQudz13LmZvcm1hdChkdC56LFVlKGR0LnYpKSk6KGR0LnQ9Im4iLGR0LnY9VWUoZHQudiksZHQudz13LmZvcm1h'@; put 'dChkdC56LGR0LnYpKSk6ZHQudD0icyI7ZWxzZSBkdD1QW0dlXVtudF07aWYoZHQmJmR0LmgpdHJ5e2R0LlI9RnUuaHRtbF90b19ycyhkdC5oKSxkdC52PSIiO2Zvcih2YXIgYnQ9MDtidDxkdC5SLmxlbmd0aDsrK2J0KWR0LnYrPWR0LlJbYnRdLnZ8fCIifWNhdGNoe31pZihyZSlnZVtDdF18'@; put 'fChnZVtDdF09W10pLGdlW0N0XVtjdF0mJmdlW0N0XVtjdF0ucyYmKGR0LnM9Z2VbQ3RdW2N0XS5zKSxnZVtDdF1bY3RdJiZnZVtDdF1bY3RdLnomJihkdC56PWdlW0N0XVtjdF0ueiksZ2VbQ3RdW2N0XT1kdDtlbHNle3ZhciBGdD1kaSh7YzpjdCxyOkN0fSk7Z2VbRnRdJiZnZVtGdF0ucyYm'@; put 'KGR0LnM9Z2VbRnRdLnMpLGdlW0Z0XSYmZ2VbRnRdLnomJihkdC56PWdlW0Z0XS56KSxnZVtGdF09ZHR9fX1yZXR1cm4gSGUucy5jPDFlNyYmKGdlWyIhcmVmIl09T28oSGUpKSxnZX1mdW5jdGlvbiBrMSh5LFApe3JldHVybiBzMChudWxsLHksUCl9ZnVuY3Rpb24ga3UoeSxQKXtyZXR1cm4g'@; put 'UHx8KFA9cHIoNCkpLFAud3JpdGVfc2hpZnQoNCx5KSxQfWZ1bmN0aW9uIENjKHkpe3ZhciBQPXkucmVhZF9zaGlmdCg0KTtyZXR1cm4gMD09PVA/IiI6eS5yZWFkX3NoaWZ0KFAsImRiY3MiKX1mdW5jdGlvbiByYyh5LFApe3ZhciBMPSExO3JldHVybiBudWxsPT1QJiYoTD0hMCxQPXByKDQr'@; put 'Mip5Lmxlbmd0aCkpLFAud3JpdGVfc2hpZnQoNCx5Lmxlbmd0aCkseS5sZW5ndGg+MCYmUC53cml0ZV9zaGlmdCgwLHksImRiY3MiKSxMP1Auc2xpY2UoMCxQLmwpOlB9ZnVuY3Rpb24gb20oeSl7cmV0dXJue2ljaDp5LnJlYWRfc2hpZnQoMiksaWZudDp5LnJlYWRfc2hpZnQoMil9fWZ1bmN0'@; put 'aW9uIGNhKHksUCl7dmFyIEw9eS5sLFE9eS5yZWFkX3NoaWZ0KDEpLHJlPUNjKHkpLGdlPVtdLF9lPXt0OnJlLGg6cmV9O2lmKDEmUSl7Zm9yKHZhciB2ZT15LnJlYWRfc2hpZnQoNCksU2U9MDtTZSE9dmU7KytTZSlnZS5wdXNoKG9tKHkpKTtfZS5yPWdlfWVsc2UgX2Uucj1be2ljaDowLGlm'@; put 'bnQ6MH1dO3JldHVybiB5Lmw9TCtQLF9lfSFmdW5jdGlvbih5LFApe3ZhciBMO2lmKHR5cGVvZiBjcnlwdG9Ccm93c2VyaWZ5PCJ1IilMPWNyeXB0b0Jyb3dzZXJpZnk7ZWxzZSBpZih0eXBlb2YgUDwidSIpTD1QO2Vsc2UgdHJ5e0w9Rig3NzkwMyl9Y2F0Y2h7TD1udWxsfXkucmM0PWZ1bmN0'@; put 'aW9uKFEscmUpe3ZhciBnZT1uZXcgQXJyYXkoMjU2KSxfZT0wLHZlPTAsU2U9MCxIZT0wO2Zvcih2ZT0wOzI1NiE9dmU7Kyt2ZSlnZVt2ZV09dmU7Zm9yKHZlPTA7MjU2IT12ZTsrK3ZlKVNlPVNlK2dlW3ZlXStRW3ZlJVEubGVuZ3RoXS5jaGFyQ29kZUF0KDApJjI1NSxIZT1nZVt2ZV0sZ2Vb'@; put 'dmVdPWdlW1NlXSxnZVtTZV09SGU7dmU9U2U9MDt2YXIgQmU9RyhyZS5sZW5ndGgpO2ZvcihfZT0wO19lIT1yZS5sZW5ndGg7KytfZSlIZT1nZVt2ZT12ZSsxJjI1NV0sZ2VbdmVdPWdlW1NlPShTZStnZVt2ZV0pJTI1Nl0sZ2VbU2VdPUhlLEJlW19lXT1yZVtfZV1eZ2VbZ2VbdmVdK2dlW1Nl'@; put 'XSYyNTVdO3JldHVybiBCZX0seS5tZDU9ZnVuY3Rpb24oUSl7aWYoIUwpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBjcnlwdG8iKTtyZXR1cm4gTC5jcmVhdGVIYXNoKCJtZDUiKS51cGRhdGUoQnVmZmVyLmZyb20oUSkpLmRpZ2VzdCgiaGV4Iil9fSh4ZCx0eXBlb2YgY3J5cHRvPCJ1'@; put 'Ij9jcnlwdG86dm9pZCAwKTt2YXIgWDc9Y2E7ZnVuY3Rpb24gdXUoeSl7dmFyIFA9eS5yZWFkX3NoaWZ0KDQpLEw9eS5yZWFkX3NoaWZ0KDIpO3JldHVybiBMKz15LnJlYWRfc2hpZnQoMSk8PDE2LHkubCsrLHtjOlAsaVN0eWxlUmVmOkx9fWZ1bmN0aW9uIEZpKHksUCl7cmV0dXJuIG51bGw9'@; put 'PVAmJihQPXByKDgpKSxQLndyaXRlX3NoaWZ0KC00LHkuYyksUC53cml0ZV9zaGlmdCgzLHkuaVN0eWxlUmVmfHx5LnMpLFAud3JpdGVfc2hpZnQoMSwwKSxQfWZ1bmN0aW9uIGEwKHkpe3ZhciBQPXkucmVhZF9zaGlmdCgyKTtyZXR1cm4gUCs9eS5yZWFkX3NoaWZ0KDEpPDwxNix5LmwrKyx7'@; put 'YzotMSxpU3R5bGVSZWY6UH19ZnVuY3Rpb24gS2MoeSxQKXtyZXR1cm4gbnVsbD09UCYmKFA9cHIoNCkpLFAud3JpdGVfc2hpZnQoMyx5LmlTdHlsZVJlZnx8eS5zKSxQLndyaXRlX3NoaWZ0KDEsMCksUH12YXIgemg9Q2Msc209cmM7ZnVuY3Rpb24gQXUoeSl7dmFyIFA9eS5yZWFkX3NoaWZ0'@; put 'KDQpO3JldHVybiAwPT09UHx8NDI5NDk2NzI5NT09PVA/IiI6eS5yZWFkX3NoaWZ0KFAsImRiY3MiKX1mdW5jdGlvbiBBZCh5LFApe3ZhciBMPSExO3JldHVybiBudWxsPT1QJiYoTD0hMCxQPXByKDEyNykpLFAud3JpdGVfc2hpZnQoNCx5Lmxlbmd0aD4wP3kubGVuZ3RoOjQyOTQ5NjcyOTUp'@; put 'LHkubGVuZ3RoPjAmJlAud3JpdGVfc2hpZnQoMCx5LCJkYmNzIiksTD9QLnNsaWNlKDAsUC5sKTpQfXZhciBkdT1DYyxUMT1BdSxQYz1BZDtmdW5jdGlvbiBYYyh5KXt2YXIgUD15LnNsaWNlKHkubCx5LmwrNCksTD0xJlBbMF0sUT0yJlBbMF07eS5sKz00LFBbMF0mPTI1Mjt2YXIgcmU9MD09'@; put 'PVE/bzAoWzAsMCwwLDAsUFswXSxQWzFdLFBbMl0sUFszXV0sMCk6b3MoUCwwKT4+MjtyZXR1cm4gTD9yZS8xMDA6cmV9ZnVuY3Rpb24gU3MoeSxQKXtudWxsPT1QJiYoUD1wcig0KSk7dmFyIEw9MCxRPTAscmU9MTAwKnk7aWYoeT09KDB8eSkmJnk+PS0oMTw8MjkpJiZ5PDE8PDI5P1E9MTpy'@; put 'ZT09KDB8cmUpJiZyZT49LSgxPDwyOSkmJnJlPDE8PDI5JiYoUT0xLEw9MSksIVEpdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBSa051bWJlciAiK3kpO1Aud3JpdGVfc2hpZnQoLTQsKChMP3JlOnkpPDwyKSsoTCsyKSl9ZnVuY3Rpb24gVGQoeSl7dmFyIFA9e3M6e30sZTp7fX07cmV0'@; put 'dXJuIFAucy5yPXkucmVhZF9zaGlmdCg0KSxQLmUucj15LnJlYWRfc2hpZnQoNCksUC5zLmM9eS5yZWFkX3NoaWZ0KDQpLFAuZS5jPXkucmVhZF9zaGlmdCg0KSxQfXZhciBKYz1UZCxEMT1mdW5jdGlvbiBVaCh5LFApe3JldHVybiBQfHwoUD1wcigxNikpLFAud3JpdGVfc2hpZnQoNCx5LnMu'@; put 'ciksUC53cml0ZV9zaGlmdCg0LHkuZS5yKSxQLndyaXRlX3NoaWZ0KDQseS5zLmMpLFAud3JpdGVfc2hpZnQoNCx5LmUuYyksUH07ZnVuY3Rpb24gbDAoeSl7Zm9yKHZhciBQPXkucmVhZF9zaGlmdCg0KSxMPVtdLFE9MDtRPFA7KytRKXt2YXIgcmU9SmMoeSk7TC5wdXNoKE9vKHJlKSl9cmV0'@; put 'dXJuIEwuam9pbigiLCIpfWZ1bmN0aW9uIG1hKHkpe2lmKHkubGVuZ3RoLXkubDw4KXRocm93IlhMUyBYbnVtIEJ1ZmZlciB1bmRlcmZsb3ciO3JldHVybiB5LnJlYWRfc2hpZnQoOCwiZiIpfWZ1bmN0aW9uIEZjKHksUCl7cmV0dXJuKFB8fHByKDgpKS53cml0ZV9zaGlmdCg4LHksImYiKX1m'@; put 'dW5jdGlvbiBEZCh5KXt2YXIgUD17fSxRPXkucmVhZF9zaGlmdCgxKT4+PjEscmU9eS5yZWFkX3NoaWZ0KDEpLGdlPXkucmVhZF9zaGlmdCgyLCJpIiksX2U9eS5yZWFkX3NoaWZ0KDEpLHZlPXkucmVhZF9zaGlmdCgxKSxTZT15LnJlYWRfc2hpZnQoMSk7c3dpdGNoKHkubCsrLFEpe2Nhc2Ug'@; put 'MDpQLmF1dG89MTticmVhaztjYXNlIDE6UC5pbmRleD1yZTt2YXIgSGU9Q3JbcmVdO0hlJiYoUC5yZ2I9ejEoSGUpKTticmVhaztjYXNlIDI6UC5yZ2I9ejEoW19lLHZlLFNlXSk7YnJlYWs7Y2FzZSAzOlAudGhlbWU9cmV9cmV0dXJuIDAhPWdlJiYoUC50aW50PWdlPjA/Z2UvMzI3Njc6Z2Uv'@; put 'MzI3NjgpLFB9ZnVuY3Rpb24gUjIoeSxQKXtpZihQfHwoUD1wcig4KSksIXl8fHkuYXV0bylyZXR1cm4gUC53cml0ZV9zaGlmdCg0LDApLFAud3JpdGVfc2hpZnQoNCwwKSxQO251bGwhPXkuaW5kZXg/KFAud3JpdGVfc2hpZnQoMSwyKSxQLndyaXRlX3NoaWZ0KDEseS5pbmRleCkpOm51bGwh'@; put 'PXkudGhlbWU/KFAud3JpdGVfc2hpZnQoMSw2KSxQLndyaXRlX3NoaWZ0KDEseS50aGVtZSkpOihQLndyaXRlX3NoaWZ0KDEsNSksUC53cml0ZV9zaGlmdCgxLDApKTt2YXIgTD15LnRpbnR8fDA7aWYoTD4wP0wqPTMyNzY3Okw8MCYmKEwqPTMyNzY4KSxQLndyaXRlX3NoaWZ0KDIsTCkseS5y'@; put 'Z2ImJm51bGw9PXkudGhlbWUpe3ZhciBRPXkucmdifHwiRkZGRkZGIjsibnVtYmVyIj09dHlwZW9mIFEmJihRPSgiMDAwMDAwIitRLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpKSxQLndyaXRlX3NoaWZ0KDEscGFyc2VJbnQoUS5zbGljZSgwLDIpLDE2KSksUC53cml0ZV9zaGlmdCgxLHBhcnNl'@; put 'SW50KFEuc2xpY2UoMiw0KSwxNikpLFAud3JpdGVfc2hpZnQoMSxwYXJzZUludChRLnNsaWNlKDQsNiksMTYpKSxQLndyaXRlX3NoaWZ0KDEsMjU1KX1lbHNlIFAud3JpdGVfc2hpZnQoMiwwKSxQLndyaXRlX3NoaWZ0KDEsMCksUC53cml0ZV9zaGlmdCgxLDApO3JldHVybiBQfWZ1bmN0aW9u'@; put 'IGY0KHkpe3ZhciBQPXkucmVhZF9zaGlmdCgxKTtyZXR1cm4geS5sKysse2ZCb2xkOjEmUCxmSXRhbGljOjImUCxmVW5kZXJsaW5lOjQmUCxmU3RyaWtlb3V0OjgmUCxmT3V0bGluZToxNiZQLGZTaGFkb3c6MzImUCxmQ29uZGVuc2U6NjQmUCxmRXh0ZW5kOjEyOCZQfX1mdW5jdGlvbiBwNCh5'@; put 'LFApe3ZhciBRPXkucmVhZF9zaGlmdCg0KTtzd2l0Y2goUSl7Y2FzZSAwOnJldHVybiIiO2Nhc2UgNDI5NDk2NzI5NTpjYXNlIDQyOTQ5NjcyOTQ6cmV0dXJuezI6IkJJVE1BUCIsMzoiTUVUQUZJTEVQSUNUIiw4OiJESUIiLDE0OiJFTkhNRVRBRklMRSJ9W3kucmVhZF9zaGlmdCg0KV18fCIi'@; put 'fWlmKFE+NDAwKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ2xpcGJvYXJkOiAiK1EudG9TdHJpbmcoMTYpKTtyZXR1cm4geS5sLT00LHkucmVhZF9zaGlmdCgwLDE9PVA/Imxwc3RyIjoibHB3c3RyIil9dmFyIHUzPTIsTWE9MyxIYz0xMixhbT04MSx0OT1bODAsYW1dLF80PXsxOntu'@; put 'OiJDb2RlUGFnZSIsdDp1M30sMjp7bjoiQ2F0ZWdvcnkiLHQ6ODB9LDM6e246IlByZXNlbnRhdGlvbkZvcm1hdCIsdDo4MH0sNDp7bjoiQnl0ZUNvdW50Iix0Ok1hfSw1OntuOiJMaW5lQ291bnQiLHQ6TWF9LDY6e246IlBhcmFncmFwaENvdW50Iix0Ok1hfSw3OntuOiJTbGlkZUNvdW50Iix0'@; put 'Ok1hfSw4OntuOiJOb3RlQ291bnQiLHQ6TWF9LDk6e246IkhpZGRlbkNvdW50Iix0Ok1hfSwxMDp7bjoiTXVsdGltZWRpYUNsaXBDb3VudCIsdDpNYX0sMTE6e246IlNjYWxlQ3JvcCIsdDoxMX0sMTI6e246IkhlYWRpbmdQYWlycyIsdDo0MDk2fEhjfSwxMzp7bjoiVGl0bGVzT2ZQYXJ0cyIs'@; put 'dDo0MTI2fSwxNDp7bjoiTWFuYWdlciIsdDo4MH0sMTU6e246IkNvbXBhbnkiLHQ6ODB9LDE2OntuOiJMaW5rc1VwVG9EYXRlIix0OjExfSwxNzp7bjoiQ2hhcmFjdGVyQ291bnQiLHQ6TWF9LDE5OntuOiJTaGFyZWREb2MiLHQ6MTF9LDIyOntuOiJIeXBlcmxpbmtzQ2hhbmdlZCIsdDoxMX0s'@; put 'MjM6e246IkFwcFZlcnNpb24iLHQ6TWEscDoidmVyc2lvbiJ9LDI0OntuOiJEaWdTaWciLHQ6NjV9LDI2OntuOiJDb250ZW50VHlwZSIsdDo4MH0sMjc6e246IkNvbnRlbnRTdGF0dXMiLHQ6ODB9LDI4OntuOiJMYW5ndWFnZSIsdDo4MH0sMjk6e246IlZlcnNpb24iLHQ6ODB9LDI1NTp7fSwy'@; put 'MTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6MTl9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0OjE5fSwxOTE5MDU0NDM0Ont9fSx3cj17MTp7bjoiQ29kZVBhZ2UiLHQ6dTN9LDI6e246IlRpdGxlIix0OjgwfSwzOntuOiJTdWJqZWN0Iix0OjgwfSw0OntuOiJBdXRob3IiLHQ6ODB9LDU6e246'@; put 'IktleXdvcmRzIix0OjgwfSw2OntuOiJDb21tZW50cyIsdDo4MH0sNzp7bjoiVGVtcGxhdGUiLHQ6ODB9LDg6e246Ikxhc3RBdXRob3IiLHQ6ODB9LDk6e246IlJldk51bWJlciIsdDo4MH0sMTA6e246IkVkaXRUaW1lIix0OjY0fSwxMTp7bjoiTGFzdFByaW50ZWQiLHQ6NjR9LDEyOntuOiJD'@; put 'cmVhdGVkRGF0ZSIsdDo2NH0sMTM6e246Ik1vZGlmaWVkRGF0ZSIsdDo2NH0sMTQ6e246IlBhZ2VDb3VudCIsdDpNYX0sMTU6e246IldvcmRDb3VudCIsdDpNYX0sMTY6e246IkNoYXJDb3VudCIsdDpNYX0sMTc6e246IlRodW1ibmFpbCIsdDo3MX0sMTg6e246IkFwcGxpY2F0aW9uIix0Ojgw'@; put 'fSwxOTp7bjoiRG9jU2VjdXJpdHkiLHQ6TWF9LDI1NTp7fSwyMTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6MTl9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0OjE5fSwxOTE5MDU0NDM0Ont9fSxiND1QZShfNCwibiIpLHk0PVBlKHdyLCJuIiksbG09ezE6IlVTIiwyOiJDQSIsMzoiIiw3OiJS'@; put 'VSIsMjA6IkVHIiwzMDoiR1IiLDMxOiJOTCIsMzI6IkJFIiwzMzoiRlIiLDM0OiJFUyIsMzY6IkhVIiwzOToiSVQiLDQxOiJDSCIsNDM6IkFUIiw0NDoiR0IiLDQ1OiJESyIsNDY6IlNFIiw0NzoiTk8iLDQ4OiJQTCIsNDk6IkRFIiw1MjoiTVgiLDU1OiJCUiIsNjE6IkFVIiw2NDoiTloiLDY2'@; put 'OiJUSCIsODE6IkpQIiw4MjoiS1IiLDg0OiJWTiIsODY6IkNOIiw5MDoiVFIiLDEwNToiSlMiLDIxMzoiRFoiLDIxNjoiTUEiLDIxODoiTFkiLDM1MToiUFQiLDM1NDoiSVMiLDM1ODoiRkkiLDQyMDoiQ1oiLDg4NjoiVFciLDk2MToiTEIiLDk2MjoiSk8iLDk2MzoiU1kiLDk2NDoiSVEiLDk2'@; put 'NToiS1ciLDk2NjoiU0EiLDk3MToiQUUiLDk3MjoiSUwiLDk3NDoiUUEiLDk4MToiSVIiLDY1NTM1OiJVUyJ9LHZpPVtudWxsLCJzb2xpZCIsIm1lZGl1bUdyYXkiLCJkYXJrR3JheSIsImxpZ2h0R3JheSIsImRhcmtIb3Jpem9udGFsIiwiZGFya1ZlcnRpY2FsIiwiZGFya0Rvd24iLCJkYXJr'@; put 'VXAiLCJkYXJrR3JpZCIsImRhcmtUcmVsbGlzIiwibGlnaHRIb3Jpem9udGFsIiwibGlnaHRWZXJ0aWNhbCIsImxpZ2h0RG93biIsImxpZ2h0VXAiLCJsaWdodEdyaWQiLCJsaWdodFRyZWxsaXMiLCJncmF5MTI1IiwiZ3JheTA2MjUiXTtmdW5jdGlvbiB3NCh5KXtyZXR1cm4geS5tYXAoZnVu'@; put 'Y3Rpb24oUCl7cmV0dXJuW1A+PjE2JjI1NSxQPj44JjI1NSwyNTUmUF19KX12YXIgaDM9dzQoWzAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDgz'@; put 'ODg2MDgsMzI3NjgsMTI4LDg0MjEzNzYsODM4ODczNiwzMjg5NiwxMjYzMjI1Niw4NDIxNTA0LDEwMDY2NDMxLDEwMDQwMTY2LDE2Nzc3MTY0LDEzNDM0ODc5LDY2ODQ3NzQsMTY3NDQ1NzYsMjYzMTYsMTM0MjE4MjMsMTI4LDE2NzExOTM1LDE2Nzc2OTYwLDY1NTM1LDgzODg3MzYsODM4ODYw'@; put 'OCwzMjg5NiwyNTUsNTI0NzksMTM0MzQ4NzksMTM0MzQ4MjgsMTY3NzcxMTMsMTAwNzk0ODcsMTY3NTEwNTIsMTM0MDg3NjcsMTY3NjQwNTcsMzM2ODcwMywzMzk0NzY0LDEwMDc5MjMyLDE2NzYzOTA0LDE2NzUwODQ4LDE2NzM3NzkyLDY3MTA5MzcsOTg2ODk1MCwxMzE1OCwzMzgxNjA2LDEz'@; put 'MDU2LDMzNTUzOTIsMTAwNDAwNjQsMTAwNDAxNjYsMzM1NTU0NSwzMzU1NDQzLDAsMTY3NzcyMTUsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pLENyPW9uKGgzKSxOYT13NChbMTI2MzIyNTYsOTg2ODk1MCw4NDIxNTA0LDY3MTA4ODYsMzM1NTQ0MywxNjcxMTY4MCwzMjc2OCwx'@; put 'MzM2OTQ5NywxMjgsMzM5NDU2MCwyNjM2NywxMDAyNzIxMiwxMDA1MzE3MSwxMjgsMzI3NjgsODM4ODYwOCwzMjg5Niw4Mzg4NzM2LDg0MjEzNzYsMTM2MzE0ODgsMTQ1Mzk5OTQsMTMwNjg4NTAsMTM5MjQzNTIsOTk2NzQ5Niw5MTc1MjY3LDkxOTUwMDgsMzY4MzUzNywxMDY5MjU4LDg4ODA4'@; put 'OTksNzQ5NDY0LDI4OTM0NzYsMTE3NDU3MzAsMzc1MDIwMSwxNTU1OTUwMywxODM3OTQxLDEyMDg0MzU5LDc2MzIyNTAsNzM2MzMyOCw5NTE0NTg4LDgyODg2MTcsMzAzNjgxNCwxMTE4NDgxMF0pLFFvPXswOiIjTlVMTCEiLDc6IiNESVYvMCEiLDE1OiIjVkFMVUUhIiwyMzoiI1JFRiEiLDI5'@; put 'OiIjTkFNRT8iLDM2OiIjTlVNISIsNDI6IiNOL0EiLDQzOiIjR0VUVElOR19EQVRBIiwyNTU6IiNXVEY/In0sS2E9QWUoUW8pLE9sPXsiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiOiJ3b3JrYm9va3Mi'@; put 'LCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYmluSW5kZXhXcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuaW50bG1hY3Jvc2hlZXQiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmJpbkluZGV4TXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxm'@; put 'b3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbCI6ImNvcmVwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWwiOiJjdXN0cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2Zm'@; put 'aWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWwiOiJleHRwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b21YbWxQcm9wZXJ0aWVzK3htbCI6ImN1c3RvbXhtbHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3Jt'@; put 'YXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY3VzdG9tUHJvcGVydHkiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90VGFibGUiOiJwaXZvdHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5w'@; put 'aXZvdFRhYmxlK3htbCI6InBpdm90cyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sIjoiY2hhcnRvYmpzIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFydGNvbG9yc3R5bGUreG1sIjoiY2hhcnRjb2xvcnMi'@; put 'LCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0c3R5bGUreG1sIjoiY2hhcnRzdHlsZXMiLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0ZXgreG1sIjoiY2hhcnRleHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2FsY0NoYWluIjoiY2FsY2NoYWlucyIsImFwcGxp'@; put 'Y2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNhbGNDaGFpbit4bWwiOiJjYWxjY2hhaW5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucHJpbnRlclNldHRpbmdzIjoiVE9E'@; put 'TyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZlWCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFjdGl2ZVgreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hdHRhY2hlZFRvb2xiYXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1l'@; put 'eGNlbC5jb25uZWN0aW9ucyI6ImNvbm5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sIjoiY29ubnMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIjoibGlua3MiLCJhcHBs'@; put 'aWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXRNZXRhZGF0YSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2Zm'@; put 'aWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldE1ldGFkYXRhK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZURlZmluaXRpb24iOiJwaXZvdGNhY2hlcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyI6InBpdm90'@; put 'cmVjb3JkcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCI6InBpdm90Y2FjaGVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNo'@; put 'ZWV0bWwucGl2b3RDYWNoZVJlY29yZHMreG1sIjoicGl2b3RyZWNvcmRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnF1ZXJ5VGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnlUYWJsZSt4bWwi'@; put 'OiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnVzZXJOYW1lcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25IZWFkZXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5yZXZpc2lvbkxvZyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQu'@; put 'b3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkhlYWRlcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uTG9nK3htbCI6IlRPRE8iLCJhcHBsaWNh'@; put 'dGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VyTmFtZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZVNpbmdsZUNlbGxzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vk'@; put 'b2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlU2luZ2xlQ2VsbHMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNsaWNlckNhY2hlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5z'@; put 'bGljZXIreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndzU29ydE1hcCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGUiOiJ0YWJsZXMiLCJhcHBsaWNhdGlv'@; put 'bi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiOiJ0YWJsZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sIjoidGhlbWVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3Jt'@; put 'YXRzLW9mZmljZWRvY3VtZW50LnRoZW1lT3ZlcnJpZGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5UaW1lbGluZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlRpbWVsaW5lQ2FjaGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1v'@; put 'ZmZpY2UudmJhUHJvamVjdCI6InZiYSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdFNpZ25hdHVyZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLnZvbGF0aWxlRGVwZW5kZW5jaWVzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0'@; put 'cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlRGVwZW5kZW5jaWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29udHJvbHByb3BlcnRpZXMreG1sIjoiY3RybHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRv'@; put 'Y3VtZW50Lm1vZGVsK2RhdGEiOiJkYXRhbW9kZWxzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlN1cnZleSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sIjoiZHJhd2luZ3MiLCJhcHBsaWNhdGlvbi92bmQu'@; put 'b3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1Db2xvcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5v'@; put 'cGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbURhdGEreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbUxheW91dCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9w'@; put 'ZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtU3R5bGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNr'@; put 'YWdlLnJlbGF0aW9uc2hpcHMreG1sIjoicmVscyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5vbGVPYmplY3QiOiJUT0RPIiwiaW1hZ2UvcG5nIjoiVE9ETyIsc2hlZXQ6ImpzIn0sSWQ9ZnVuY3Rpb24oKXt2YXIgeT17d29ya2Jvb2tzOnt4bHN4OiJh'@; put 'cHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIseGxzbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvRW5hYmxlZC5tYWluK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2Vs'@; put 'LnNoZWV0LmJpbmFyeS5tYWNyb0VuYWJsZWQubWFpbiIseGxhbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC5tYWluK3htbCIseGx0eDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxh'@; put 'dGUubWFpbit4bWwifSxzdHJzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRTdHJpbmdzK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoYXJlZFN0cmluZ3MifSxjb21tZW50czp7eGxz'@; put 'eDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29tbWVudHMifSxzaGVldHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1v'@; put 'ZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC53b3Jrc2hlZXQifSxjaGFydHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0'@; put 'c2hlZXQreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2hhcnRzaGVldCJ9LGRpYWxvZ3M6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmRpYWxvZ3NoZWV0K3htbCIseGxzYjoiYXBwbGljYXRpb24v'@; put 'dm5kLm1zLWV4Y2VsLmRpYWxvZ3NoZWV0In0sbWFjcm9zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5tYWNyb3NoZWV0In0sdGFibGVzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZv'@; put 'cm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZSJ9LHBpdm90czp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RU'@; put 'YWJsZSt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdFRhYmxlIn0scGl2b3RjYWNoZXM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCIseGxzYjoi'@; put 'YXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVEZWZpbml0aW9uIn0scGl2b3RyZWNvcmRzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlUmVjb3Jkcyt4bWwiLHhsc2I6ImFwcGxpY2F0'@; put 'aW9uL3ZuZC5tcy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyJ9LGNvbm5zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb25uZWN0'@; put 'aW9ucyJ9LGxpbmtzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIn0sc3R5bGVzOnt4bHN4OiJhcHBsaWNh'@; put 'dGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc3R5bGVzIn19O3JldHVybiBsdCh5KS5mb3JFYWNoKGZ1bmN0aW9uKFApe1sieGxzbSIsInhsYW0iXS5mb3JFYWNoKGZ1'@; put 'bmN0aW9uKEwpe3lbUF1bTF18fCh5W1BdW0xdPXlbUF0ueGxzeCl9KX0pLGx0KHkpLmZvckVhY2goZnVuY3Rpb24oUCl7bHQoeVtQXSkuZm9yRWFjaChmdW5jdGlvbihMKXtPbFt5W1BdW0xdXT1QfSl9KSx5fSgpLE5jPWZ1bmN0aW9uIFRlKHkpe2Zvcih2YXIgUD1bXSxMPWx0KHkpLFE9MDtR'@; put 'IT09TC5sZW5ndGg7KytRKW51bGw9PVBbeVtMW1FdXV0mJihQW3lbTFtRXV1dPVtdKSxQW3lbTFtRXV1dLnB1c2goTFtRXSk7cmV0dXJuIFB9KE9sKTtpcy5DVD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIjt2YXIgZjM9U3Io'@; put 'IlR5cGVzIixudWxsLHt4bWxuczppcy5DVCwieG1sbnM6eHNkIjppcy54c2QsInhtbG5zOnhzaSI6aXMueHNpfSksbjk9W1sieG1sIiwiYXBwbGljYXRpb24veG1sIl0sWyJiaW4iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvRW5hYmxlZC5tYWluIl0sWyJ2'@; put 'bWwiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sRHJhd2luZyJdLFsiZGF0YSIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5tb2RlbCtkYXRhIl0sWyJibXAiLCJpbWFnZS9ibXAiXSxbInBuZyIsImltYWdl'@; put 'L3BuZyJdLFsiZ2lmIiwiaW1hZ2UvZ2lmIl0sWyJlbWYiLCJpbWFnZS94LWVtZiJdLFsid21mIiwiaW1hZ2UveC13bWYiXSxbImpwZyIsImltYWdlL2pwZWciXSxbImpwZWciLCJpbWFnZS9qcGVnIl0sWyJ0aWYiLCJpbWFnZS90aWZmIl0sWyJ0aWZmIiwiaW1hZ2UvdGlmZiJdLFsicGRmIiwi'@; put 'YXBwbGljYXRpb24vcGRmIl0sWyJyZWxzIixOYy5yZWxzWzBdXV0ubWFwKGZ1bmN0aW9uKHkpe3JldHVybiBTcigiRGVmYXVsdCIsbnVsbCx7RXh0ZW5zaW9uOnlbMF0sQ29udGVudFR5cGU6eVsxXX0pfSksSGk9e1dCOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNl'@; put 'RG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IixTSEVFVDoiaHR0cDovL3NoZWV0anMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIsSExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxm'@; put 'b3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaHlwZXJsaW5rIixWTUw6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdm1sRHJhd2luZyIsWFBBVEg6Imh0dHA6Ly9zY2hlbWFzLm9w'@; put 'ZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rUGF0aCIsWE1JU1M6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRpb25zaGlwcy94bEV4dGVybmFsTGlua1BhdGgveGxQYXRoTWlzc2luZyIs'@; put 'WExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rIixDWE1MOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1'@; put 'c3RvbVhtbCIsQ1hNTFA6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tWG1sUHJvcHMiLFZCQToiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBzL3ZiYVBy'@; put 'b2plY3QifTtmdW5jdGlvbiBCaSh5KXt2YXIgUD15Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIHkuc2xpY2UoMCxQKzEpKyJfcmVscy8iK3kuc2xpY2UoUCsxKSsiLnJlbHMifWZ1bmN0aW9uIERvKHksUCl7dmFyIEw9eyIhaWQiOnt9fTtpZigheSlyZXR1cm4gTDsiLyIhPT1QLmNoYXJBdCgw'@; put 'KSYmKFA9Ii8iK1ApO3ZhciBRPXt9O3JldHVybih5Lm1hdGNoKCR0KXx8W10pLmZvckVhY2goZnVuY3Rpb24ocmUpe3ZhciBnZT1sbihyZSk7aWYoIjxSZWxhdGlvbnNoaXAiPT09Z2VbMF0pe3ZhciBfZT17fTtfZS5UeXBlPWdlLlR5cGUsX2UuVGFyZ2V0PWdlLlRhcmdldCxfZS5JZD1nZS5J'@; put 'ZCxfZS5UYXJnZXRNb2RlPWdlLlRhcmdldE1vZGU7dmFyIHZlPSJFeHRlcm5hbCI9PT1nZS5UYXJnZXRNb2RlP2dlLlRhcmdldDpzbihnZS5UYXJnZXQsUCk7TFt2ZV09X2UsUVtnZS5JZF09X2V9fSksTFsiIWlkIl09USxMfWlzLlJFTFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRz'@; put 'Lm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI7dmFyIHVhPVNyKCJSZWxhdGlvbnNoaXBzIixudWxsLHt4bWxuczppcy5SRUxTfSk7ZnVuY3Rpb24gWGEoeSl7dmFyIFA9W0JuLHVhXTtyZXR1cm4gbHQoeVsiIWlkIl0pLmZvckVhY2goZnVuY3Rpb24oTCl7UFtQLmxlbmd0aF09U3Io'@; put 'IlJlbGF0aW9uc2hpcCIsbnVsbCx5WyIhaWQiXVtMXSl9KSxQLmxlbmd0aD4yJiYoUFtQLmxlbmd0aF09IjwvUmVsYXRpb25zaGlwcz4iLFBbMV09UFsxXS5yZXBsYWNlKCIvPiIsIj4iKSksUC5qb2luKCIiKX12YXIgSTE9W0hpLkhMSU5LLEhpLlhQQVRILEhpLlhNSVNTXTtmdW5jdGlvbiB6'@; put 'byh5LFAsTCxRLHJlLGdlKXtpZihyZXx8KHJlPXt9KSx5WyIhaWQiXXx8KHlbIiFpZCJdPXt9KSxQPDApZm9yKFA9MTt5WyIhaWQiXVsicklkIitQXTsrK1ApO2lmKHJlLklkPSJySWQiK1AscmUuVHlwZT1RLHJlLlRhcmdldD1MLGdlP3JlLlRhcmdldE1vZGU9Z2U6STEuaW5kZXhPZihyZS5U'@; put 'eXBlKT4tMSYmKHJlLlRhcmdldE1vZGU9IkV4dGVybmFsIikseVsiIWlkIl1bcmUuSWRdKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJld3JpdGUgcklkICIrUCk7cmV0dXJuIHlbIiFpZCJdW3JlLklkXT1yZSx5WygiLyIrcmUuVGFyZ2V0KS5yZXBsYWNlKCIvLyIsIi8iKV09cmUsUH12YXIg'@; put 'VHU9ImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiO2Z1bmN0aW9uIEwxKHksUCxMKXtyZXR1cm5bJyAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IicreSsnIj5cbicsJyAgICA8cmRmOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vZG9jcy5vYXNp'@; put 'cy1vcGVuLm9yZy9ucy9vZmZpY2UvMS4yL21ldGEvJysoTHx8Im9kZiIpKyIjIitQKyciLz5cbicsIiAgPC9yZGY6RGVzY3JpcHRpb24+XG4iXS5qb2luKCIiKX1mdW5jdGlvbiBWbyh5LFApe3JldHVyblsnICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iJyt5KyciPlxuJywnICAgIDxu'@; put 'czA6aGFzUGFydCB4bWxuczpuczA9Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL25zL29mZmljZS8xLjIvbWV0YS9wa2cjIiByZGY6cmVzb3VyY2U9IicrUCsnIi8+XG4nLCIgIDwvcmRmOkRlc2NyaXB0aW9uPlxuIl0uam9pbigiIil9dmFyIFM0PWZ1bmN0aW9uKCl7dmFyIHk9JzxvZmZp'@; put 'Y2U6ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEuMCIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9y'@; put 'Zy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgb2ZmaWNlOnZlcnNpb249IjEuMiI+PG9mZmljZTptZXRhPjxtZXRhOmdlbmVyYXRvcj5TaGVldEpTICcrTS52ZXJzaW9uKyI8L21ldGE6Z2VuZXJhdG9yPjwvb2ZmaWNlOm1ldGE+'@; put 'PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT4iO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB5fX0oKSxQbD1bWyJjcDpjYXRlZ29yeSIsIkNhdGVnb3J5Il0sWyJjcDpjb250ZW50U3RhdHVzIiwiQ29udGVudFN0YXR1cyJdLFsiY3A6a2V5d29yZHMiLCJLZXl3b3JkcyJdLFsiY3A6bGFzdE1vZGlm'@; put 'aWVkQnkiLCJMYXN0QXV0aG9yIl0sWyJjcDpsYXN0UHJpbnRlZCIsIkxhc3RQcmludGVkIl0sWyJjcDpyZXZpc2lvbiIsIlJldk51bWJlciJdLFsiY3A6dmVyc2lvbiIsIlZlcnNpb24iXSxbImRjOmNyZWF0b3IiLCJBdXRob3IiXSxbImRjOmRlc2NyaXB0aW9uIiwiQ29tbWVudHMiXSxbImRj'@; put 'OmlkZW50aWZpZXIiLCJJZGVudGlmaWVyIl0sWyJkYzpsYW5ndWFnZSIsIkxhbmd1YWdlIl0sWyJkYzpzdWJqZWN0IiwiU3ViamVjdCJdLFsiZGM6dGl0bGUiLCJUaXRsZSJdLFsiZGN0ZXJtczpjcmVhdGVkIiwiQ3JlYXRlZERhdGUiLCJkYXRlIl0sWyJkY3Rlcm1zOm1vZGlmaWVkIiwiTW9k'@; put 'aWZpZWREYXRlIiwiZGF0ZSJdXTtpcy5DT1JFX1BST1BTPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyIsSGkuQ09SRV9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2Uv'@; put 'MjAwNi9yZWxhdGlvbnNoaXBzL21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyI7dmFyIEphPWZ1bmN0aW9uKCl7Zm9yKHZhciB5PW5ldyBBcnJheShQbC5sZW5ndGgpLFA9MDtQPFBsLmxlbmd0aDsrK1Ape3ZhciBMPVBsW1BdLFE9Iig/OiIrTFswXS5zbGljZSgwLExbMF0uaW5kZXhPZigiOiIp'@; put 'KSsiOikiK0xbMF0uc2xpY2UoTFswXS5pbmRleE9mKCI6IikrMSk7eVtQXT1uZXcgUmVnRXhwKCI8IitRKyJbXj5dKj4oW1xcc1xcU10qPyk8LyIrUSsiPiIpfXJldHVybiB5fSgpO2Z1bmN0aW9uIE8yKHkpe3ZhciBQPXt9O3k9UGkoeSk7Zm9yKHZhciBMPTA7TDxQbC5sZW5ndGg7KytMKXt2'@; put 'YXIgUT1QbFtMXSxyZT15Lm1hdGNoKEphW0xdKTtudWxsIT1yZSYmcmUubGVuZ3RoPjAmJihQW1FbMV1dPXhyKHJlWzFdKSksImRhdGUiPT09UVsyXSYmUFtRWzFdXSYmKFBbUVsxXV09SHQoUFtRWzFdXSkpfXJldHVybiBQfXZhciBQMj1TcigiY3A6Y29yZVByb3BlcnRpZXMiLG51bGwseyJ4'@; put 'bWxuczpjcCI6aXMuQ09SRV9QUk9QUywieG1sbnM6ZGMiOmlzLmRjLCJ4bWxuczpkY3Rlcm1zIjppcy5kY3Rlcm1zLCJ4bWxuczpkY21pdHlwZSI6aXMuZGNtaXR5cGUsInhtbG5zOnhzaSI6aXMueHNpfSk7ZnVuY3Rpb24gaHUoeSxQLEwsUSxyZSl7bnVsbCE9cmVbeV18fG51bGw9PVB8fCIi'@; put 'PT09UHx8KHJlW3ldPVAsUD1IcihQKSxRW1EubGVuZ3RoXT1MP1NyKHksUCxMKTpmcyh5LFApKX12YXIgUjE9W1siQXBwbGljYXRpb24iLCJBcHBsaWNhdGlvbiIsInN0cmluZyJdLFsiQXBwVmVyc2lvbiIsIkFwcFZlcnNpb24iLCJzdHJpbmciXSxbIkNvbXBhbnkiLCJDb21wYW55Iiwic3Ry'@; put 'aW5nIl0sWyJEb2NTZWN1cml0eSIsIkRvY1NlY3VyaXR5Iiwic3RyaW5nIl0sWyJNYW5hZ2VyIiwiTWFuYWdlciIsInN0cmluZyJdLFsiSHlwZXJsaW5rc0NoYW5nZWQiLCJIeXBlcmxpbmtzQ2hhbmdlZCIsImJvb2wiXSxbIlNoYXJlZERvYyIsIlNoYXJlZERvYyIsImJvb2wiXSxbIkxpbmtz'@; put 'VXBUb0RhdGUiLCJMaW5rc1VwVG9EYXRlIiwiYm9vbCJdLFsiU2NhbGVDcm9wIiwiU2NhbGVDcm9wIiwiYm9vbCJdLFsiSGVhZGluZ1BhaXJzIiwiSGVhZGluZ1BhaXJzIiwicmF3Il0sWyJUaXRsZXNPZlBhcnRzIiwiVGl0bGVzT2ZQYXJ0cyIsInJhdyJdXTtmdW5jdGlvbiB1MCh5LFAsTCxR'@; put 'KXt2YXIgcmU9W107aWYoInN0cmluZyI9PXR5cGVvZiB5KXJlPWUwKHksUSk7ZWxzZSBmb3IodmFyIGdlPTA7Z2U8eS5sZW5ndGg7KytnZSlyZT1yZS5jb25jYXQoeVtnZV0ubWFwKGZ1bmN0aW9uKEJlKXtyZXR1cm57djpCZX19KSk7dmFyIF9lPSJzdHJpbmciPT10eXBlb2YgUD9lMChQLFEp'@; put 'Lm1hcChmdW5jdGlvbihCZSl7cmV0dXJuIEJlLnZ9KTpQLHZlPTAsU2U9MDtpZihfZS5sZW5ndGg+MClmb3IodmFyIEhlPTA7SGUhPT1yZS5sZW5ndGg7SGUrPTIpe3N3aXRjaChTZT0rcmVbSGUrMV0udixyZVtIZV0udil7Y2FzZSJXb3Jrc2hlZXRzIjpjYXNlIlx1NWRlNVx1NGY1Y1x1ODg2'@; put 'OCI6Y2FzZSJcdTA0MWJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NGIiOmNhc2UiXHUwNjIzXHUwNjQ4XHUwNjMxXHUwNjI3XHUwNjQyIFx1MDYyN1x1MDY0NFx1MDYzOVx1MDY0NVx1MDY0NCI6Y2FzZSJcdTMwZWZcdTMwZmNcdTMwYWZcdTMwYjdcdTMwZmNcdTMwYzgiOmNhc2UiXHUwNWQyXHUw'@; put 'NWRjXHUwNWQ5XHUwNWQ1XHUwNWUwXHUwNWQ1XHUwNWVhIFx1MDVlMlx1MDVkMVx1MDVkNVx1MDVkM1x1MDVkNCI6Y2FzZSJBcmJlaXRzYmxceGU0dHRlciI6Y2FzZSJceGM3YWxcdTAxMzFcdTAxNWZtYSBTYXlmYWxhclx1MDEzMSI6Y2FzZSJGZXVpbGxlcyBkZSBjYWxjdWwiOmNhc2UiRm9n'@; put 'bGkgZGkgbGF2b3JvIjpjYXNlIkZvbGhhcyBkZSBjXHhlMWxjdWxvIjpjYXNlIlBsYW5pbGhhcyI6Y2FzZSJSZWduZWFyayI6Y2FzZSJIb2phcyBkZSBjXHhlMWxjdWxvIjpjYXNlIldlcmtibGFkZW4iOkwuV29ya3NoZWV0cz1TZSxMLlNoZWV0TmFtZXM9X2Uuc2xpY2UodmUsdmUrU2UpO2Jy'@; put 'ZWFrO2Nhc2UiTmFtZWQgUmFuZ2VzIjpjYXNlIlJhbmdvcyBjb24gbm9tYnJlIjpjYXNlIlx1NTQwZFx1NTI0ZFx1NGVkOFx1MzA0ZFx1NGUwMFx1ODlhNyI6Y2FzZSJCZW5hbm50ZSBCZXJlaWNoZSI6Y2FzZSJOYXZuZ2l2bmUgb21yXHhlNWRlciI6TC5OYW1lZFJhbmdlcz1TZSxMLkRlZmlu'@; put 'ZWROYW1lcz1fZS5zbGljZSh2ZSx2ZStTZSk7YnJlYWs7Y2FzZSJDaGFydHMiOmNhc2UiRGlhZ3JhbW1lIjpMLkNoYXJ0c2hlZXRzPVNlLEwuQ2hhcnROYW1lcz1fZS5zbGljZSh2ZSx2ZStTZSl9dmUrPVNlfX1pcy5FWFRfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9y'@; put 'Zy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXMiLEhpLkVYVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0aWVzIjt2YXIgZzM9U3IoIlByb3BlcnRp'@; put 'ZXMiLG51bGwse3htbG5zOmlzLkVYVF9QUk9QUywieG1sbnM6dnQiOmlzLnZ0fSk7aXMuQ1VTVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvY3VzdG9tLXByb3BlcnRpZXMiLEhpLkNVU1RfUFJPUFM9Imh0dHA6Ly9zY2hlbWFz'@; put 'Lm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tLXByb3BlcnRpZXMiO3ZhciBBdz0vPFtePl0rPltePF0qL2csdW09U3IoIlByb3BlcnRpZXMiLG51bGwse3htbG5zOmlzLkNVU1RfUFJPUFMsInhtbG5zOnZ0Ijppcy52dH0pO3ZhciBG'@; put 'Mj17VGl0bGU6IlRpdGxlIixTdWJqZWN0OiJTdWJqZWN0IixBdXRob3I6IkF1dGhvciIsS2V5d29yZHM6IktleXdvcmRzIixDb21tZW50czoiRGVzY3JpcHRpb24iLExhc3RBdXRob3I6Ikxhc3RBdXRob3IiLFJldk51bWJlcjoiUmV2aXNpb24iLEFwcGxpY2F0aW9uOiJBcHBOYW1lIixMYXN0'@; put 'UHJpbnRlZDoiTGFzdFByaW50ZWQiLENyZWF0ZWREYXRlOiJDcmVhdGVkIixNb2RpZmllZERhdGU6Ikxhc3RTYXZlZCIsQ2F0ZWdvcnk6IkNhdGVnb3J5IixNYW5hZ2VyOiJNYW5hZ2VyIixDb21wYW55OiJDb21wYW55IixBcHBWZXJzaW9uOiJWZXJzaW9uIixDb250ZW50U3RhdHVzOiJDb250'@; put 'ZW50U3RhdHVzIixJZGVudGlmaWVyOiJJZGVudGlmaWVyIixMYW5ndWFnZToiTGFuZ3VhZ2UifSxIMj1iZShGMik7ZnVuY3Rpb24gUmQoeSxQLEwpe3lbUD1IMltQXXx8UF09TH1mdW5jdGlvbiBTYyh5KXt2YXIgUD15LnJlYWRfc2hpZnQoNCksTD15LnJlYWRfc2hpZnQoNCk7cmV0dXJuIG5l'@; put 'dyBEYXRlKDFlMyooTC8xZTcqTWF0aC5wb3coMiwzMikrUC8xZTctMTE2NDQ0NzM2MDApKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuMDAwLywiIil9ZnVuY3Rpb24gT2QoeSxQLEwpe3ZhciBRPXkubCxyZT15LnJlYWRfc2hpZnQoMCwibHBzdHItY3AiKTtpZihMKWZvcig7eS5sLVEmMzsp'@; put 'Kyt5Lmw7cmV0dXJuIHJlfWZ1bmN0aW9uIFAxKHksUCxMKXt2YXIgUT15LnJlYWRfc2hpZnQoMCwibHB3c3RyIik7cmV0dXJuIEwmJih5LmwrPTQtKFEubGVuZ3RoKzEmMykmMyksUX1mdW5jdGlvbiBxaCh5LFAsTCl7cmV0dXJuIDMxPT09UD9QMSh5KTpPZCh5LDAsTCl9ZnVuY3Rpb24gUWMo'@; put 'eSxQLEwpe3JldHVybiBxaCh5LFAsITE9PT1MPzA6NCl9ZnVuY3Rpb24gczkoeSl7dmFyIFA9eS5sLEw9RTQoeSxhbSk7cmV0dXJuIDA9PXlbeS5sXSYmMD09eVt5LmwrMV0mJnkubC1QJjImJih5LmwrPTIpLFtMLEU0KHksTWEpXX1mdW5jdGlvbiBkbSh5LFApe2Zvcih2YXIgTD15LnJlYWRf'@; put 'c2hpZnQoNCksUT17fSxyZT0wO3JlIT1MOysrcmUpe3ZhciBnZT15LnJlYWRfc2hpZnQoNCksX2U9eS5yZWFkX3NoaWZ0KDQpO1FbZ2VdPXkucmVhZF9zaGlmdChfZSwxMjAwPT09UD8idXRmMTZsZSI6InV0ZjgiKS5yZXBsYWNlKHYsIiIpLnJlcGxhY2UocCwiISIpLDEyMDA9PT1QJiZfZSUy'@; put 'JiYoeS5sKz0yKX1yZXR1cm4gMyZ5LmwmJih5Lmw9eS5sPj4zPDwyKSxRfWZ1bmN0aW9uIGhtKHkpe3ZhciBQPXkucmVhZF9zaGlmdCg0KSxMPXkuc2xpY2UoeS5sLHkubCtQKTtyZXR1cm4geS5sKz1QLCgzJlApPjAmJih5LmwrPTQtKDMmUCkmMyksTH1mdW5jdGlvbiBFNCh5LFAsTCl7dmFy'@; put 'IHJlLFE9eS5yZWFkX3NoaWZ0KDIpLGdlPUx8fHt9O2lmKHkubCs9MixQIT09SGMmJlEhPT1QJiYtMT09PXQ5LmluZGV4T2YoUCkmJig0MTI2IT0oNjU1MzQmUCl8fDQxMjYhPSg2NTUzNCZRKSkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0eXBlICIrUCsiIHNhdyAiK1EpO3N3aXRjaChQ'@; put 'PT09SGM/UTpQKXtjYXNlIDI6cmV0dXJuIHJlPXkucmVhZF9zaGlmdCgyLCJpIiksZ2UucmF3fHwoeS5sKz0yKSxyZTtjYXNlIDM6cmV0dXJuIHkucmVhZF9zaGlmdCg0LCJpIik7Y2FzZSAxMTpyZXR1cm4gMCE9PXkucmVhZF9zaGlmdCg0KTtjYXNlIDE5OnJldHVybiB5LnJlYWRfc2hpZnQo'@; put 'NCk7Y2FzZSAzMDpyZXR1cm4gT2QoeSwwLDQpLnJlcGxhY2UodiwiIik7Y2FzZSAzMTpyZXR1cm4gUDEoeSk7Y2FzZSA2NDpyZXR1cm4gU2MoeSk7Y2FzZSA2NTpyZXR1cm4gaG0oeSk7Y2FzZSA3MTpyZXR1cm4gZnVuY3Rpb24gRHcoeSl7dmFyIFA9e307cmV0dXJuIFAuU2l6ZT15LnJlYWRf'@; put 'c2hpZnQoNCkseS5sKz1QLlNpemUrMy0oUC5TaXplLTEpJTQsUH0oeSk7Y2FzZSA4MDpyZXR1cm4gUWMoeSxRLCFnZS5yYXcpLnJlcGxhY2UodiwiIik7Y2FzZSA4MTpyZXR1cm4gZnVuY3Rpb24geDQoeSxQKXtpZighUCl0aHJvdyBuZXcgRXJyb3IoIlZ0VW5hbGlnbmVkU3RyaW5nIG11c3Qg'@; put 'aGF2ZSBwb3NpdGl2ZSBsZW5ndGgiKTtyZXR1cm4gcWgoeSxQLDApfSh5LFEpLnJlcGxhY2UodiwiIik7Y2FzZSA0MTA4OnJldHVybiBmdW5jdGlvbiBhOSh5KXtmb3IodmFyIFA9eS5yZWFkX3NoaWZ0KDQpLEw9W10sUT0wO1E8UC8yOysrUSlMLnB1c2goczkoeSkpO3JldHVybiBMfSh5KTtj'@; put 'YXNlIDQxMjY6Y2FzZSA0MTI3OnJldHVybiA0MTI3PT1RP2Z1bmN0aW9uIGk5KHkpe2Zvcih2YXIgUD15LnJlYWRfc2hpZnQoNCksTD1bXSxRPTA7USE9UDsrK1Epe3ZhciByZT15Lmw7TFtRXT15LnJlYWRfc2hpZnQoMCwibHB3c3RyIikucmVwbGFjZSh2LCIiKSx5LmwtcmUmMiYmKHkubCs9'@; put 'Mil9cmV0dXJuIEx9KHkpOmZ1bmN0aW9uIG85KHkpe2Zvcih2YXIgUD15LnJlYWRfc2hpZnQoNCksTD1bXSxRPTA7USE9UDsrK1EpTFtRXT15LnJlYWRfc2hpZnQoMCwibHBzdHItY3AiKS5yZXBsYWNlKHYsIiIpO3JldHVybiBMfSh5KTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZWRQ'@; put 'cm9wZXJ0eVZhbHVlIHVucmVjb2duaXplZCB0eXBlICIrUCsiICIrUSl9fWZ1bmN0aW9uIGw5KHksUCl7dmFyIEw9cHIoNCksUT1wcig0KTtzd2l0Y2goTC53cml0ZV9zaGlmdCg0LDgwPT15PzMxOnkpLHkpe2Nhc2UgMzpRLndyaXRlX3NoaWZ0KC00LFApO2JyZWFrO2Nhc2UgNTooUT1wcig4'@; put 'KSkud3JpdGVfc2hpZnQoOCxQLCJmIik7YnJlYWs7Y2FzZSAxMTpRLndyaXRlX3NoaWZ0KDQsUD8xOjApO2JyZWFrO2Nhc2UgNjQ6UT1mdW5jdGlvbiBvYyh5KXt2YXIgTD0oInN0cmluZyI9PXR5cGVvZiB5P25ldyBEYXRlKERhdGUucGFyc2UoeSkpOnkpLmdldFRpbWUoKS8xZTMrMTE2NDQ0'@; put 'NzM2MDAsUT1MJU1hdGgucG93KDIsMzIpLHJlPShMLVEpL01hdGgucG93KDIsMzIpO3JlKj0xZTc7dmFyIGdlPShRKj0xZTcpL01hdGgucG93KDIsMzIpfDA7Z2U+MCYmKFElPU1hdGgucG93KDIsMzIpLHJlKz1nZSk7dmFyIF9lPXByKDgpO3JldHVybiBfZS53cml0ZV9zaGlmdCg0LFEpLF9l'@; put 'LndyaXRlX3NoaWZ0KDQscmUpLF9lfShQKTticmVhaztjYXNlIDMxOmNhc2UgODA6Zm9yKChRPXByKDQrMiooUC5sZW5ndGgrMSkrKFAubGVuZ3RoJTI/MDoyKSkpLndyaXRlX3NoaWZ0KDQsUC5sZW5ndGgrMSksUS53cml0ZV9zaGlmdCgwLFAsImRiY3MiKTtRLmwhPVEubGVuZ3RoOylRLndy'@; put 'aXRlX3NoaWZ0KDEsMCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGVkUHJvcGVydHlWYWx1ZSB1bnJlY29nbml6ZWQgdHlwZSAiK3krIiAiK1ApfXJldHVybiBTKFtMLFFdKX1mdW5jdGlvbiBGMSh5LFApe3ZhciBMPXkubCxRPXkucmVhZF9zaGlmdCg0KSxyZT15LnJlYWRf'@; put 'c2hpZnQoNCksZ2U9W10sX2U9MCx2ZT0wLFNlPS0xLEhlPXt9O2ZvcihfZT0wO19lIT1yZTsrK19lKXt2YXIgQmU9eS5yZWFkX3NoaWZ0KDQpLEdlPXkucmVhZF9zaGlmdCg0KTtnZVtfZV09W0JlLEdlK0xdfWdlLnNvcnQoZnVuY3Rpb24oa3QsVHQpe3JldHVybiBrdFsxXS1UdFsxXX0pO3Zh'@; put 'ciBudD17fTtmb3IoX2U9MDtfZSE9cmU7KytfZSl7aWYoeS5sIT09Z2VbX2VdWzFdKXt2YXIgZHQ9ITA7aWYoX2U+MCYmUClzd2l0Y2goUFtnZVtfZS0xXVswXV0udCl7Y2FzZSAyOnkubCsyPT09Z2VbX2VdWzFdJiYoeS5sKz0yLGR0PSExKTticmVhaztjYXNlIDgwOmNhc2UgNDEwODp5Lmw8'@; put 'PWdlW19lXVsxXSYmKHkubD1nZVtfZV1bMV0sZHQ9ITEpfWlmKCghUHx8MD09X2UpJiZ5Lmw8PWdlW19lXVsxXSYmKGR0PSExLHkubD1nZVtfZV1bMV0pLGR0KXRocm93IG5ldyBFcnJvcigiUmVhZCBFcnJvcjogRXhwZWN0ZWQgYWRkcmVzcyAiK2dlW19lXVsxXSsiIGF0ICIreS5sKyIgOiIr'@; put 'X2UpfWlmKFApe3ZhciBDdD1QW2dlW19lXVswXV07aWYobnRbQ3Qubl09RTQoeSxDdC50LHtyYXc6ITB9KSwidmVyc2lvbiI9PT1DdC5wJiYobnRbQ3Qubl09U3RyaW5nKG50W0N0Lm5dPj4xNikrIi4iKygiMDAwMCIrU3RyaW5nKDY1NTM1Jm50W0N0Lm5dKSkuc2xpY2UoLTQpKSwiQ29kZVBh'@; put 'Z2UiPT1DdC5uKXN3aXRjaChudFtDdC5uXSl7Y2FzZSAwOm50W0N0Lm5dPTEyNTI7Y2FzZSA4NzQ6Y2FzZSA5MzI6Y2FzZSA5MzY6Y2FzZSA5NDk6Y2FzZSA5NTA6Y2FzZSAxMjUwOmNhc2UgMTI1MTpjYXNlIDEyNTM6Y2FzZSAxMjU0OmNhc2UgMTI1NTpjYXNlIDEyNTY6Y2FzZSAxMjU3OmNh'@; put 'c2UgMTI1ODpjYXNlIDFlNDpjYXNlIDEyMDA6Y2FzZSAxMjAxOmNhc2UgMTI1MjpjYXNlIDY1ZTM6Y2FzZS01MzY6Y2FzZSA2NTAwMTpjYXNlLTUzNTpqKHZlPW50W0N0Lm5dPj4+MCY2NTUzNSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENvZGVQYWdlOiAi'@; put 'K250W0N0Lm5dKX19ZWxzZSBpZigxPT09Z2VbX2VdWzBdKXtpZih2ZT1udC5Db2RlUGFnZT1FNCh5LHUzKSxqKHZlKSwtMSE9PVNlKXt2YXIgY3Q9eS5sO3kubD1nZVtTZV1bMV0sSGU9ZG0oeSx2ZSkseS5sPWN0fX1lbHNlIGlmKDA9PT1nZVtfZV1bMF0pe2lmKDA9PT12ZSl7U2U9X2UseS5s'@; put 'PWdlW19lKzFdWzFdO2NvbnRpbnVlfUhlPWRtKHksdmUpfWVsc2V7dmFyIEZ0LGJ0PUhlW2dlW19lXVswXV07c3dpdGNoKHlbeS5sXSl7Y2FzZSA2NTp5LmwrPTQsRnQ9aG0oeSk7YnJlYWs7Y2FzZSAzMDpjYXNlIDMxOnkubCs9NCxGdD1RYyh5LHlbeS5sLTRdKS5yZXBsYWNlKC9cdTAwMDAr'@; put 'JC8sIiIpO2JyZWFrO2Nhc2UgMzp5LmwrPTQsRnQ9eS5yZWFkX3NoaWZ0KDQsImkiKTticmVhaztjYXNlIDE5OnkubCs9NCxGdD15LnJlYWRfc2hpZnQoNCk7YnJlYWs7Y2FzZSA1OnkubCs9NCxGdD15LnJlYWRfc2hpZnQoOCwiZiIpO2JyZWFrO2Nhc2UgMTE6eS5sKz00LEZ0PVNvKHksNCk7'@; put 'YnJlYWs7Y2FzZSA2NDp5LmwrPTQsRnQ9SHQoU2MoeSkpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bnBhcnNlZCB2YWx1ZTogIit5W3kubF0pfW50W2J0XT1GdH19cmV0dXJuIHkubD1MK1EsbnR9dmFyIGZtPVsiQ29kZVBhZ2UiLCJUaHVtYm5haWwiLCJfUElEX0xJTktCQVNF'@; put 'IiwiX1BJRF9ITElOS1MiLCJTeXN0ZW1JZGVudGlmaWVyIiwiRk1USUQiXS5jb25jYXQoWyJXb3Jrc2hlZXRzIiwiU2hlZXROYW1lcyIsIk5hbWVkUmFuZ2VzIiwiRGVmaW5lZE5hbWVzIiwiQ2hhcnRzaGVldHMiLCJDaGFydE5hbWVzIl0pO2Z1bmN0aW9uIEl3KHkpe3N3aXRjaCh0eXBlb2Yg'@; put 'eSl7Y2FzZSJib29sZWFuIjpyZXR1cm4gMTE7Y2FzZSJudW1iZXIiOnJldHVybigwfHkpPT15PzM6NTtjYXNlInN0cmluZyI6cmV0dXJuIDMxO2Nhc2Uib2JqZWN0IjppZih5IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gNjR9cmV0dXJuLTF9ZnVuY3Rpb24gYzkoeSxQLEwpe3ZhciBRPXByKDgp'@; put 'LHJlPVtdLGdlPVtdLF9lPTgsdmU9MCxTZT1wcig4KSxIZT1wcig4KTtpZihTZS53cml0ZV9zaGlmdCg0LDIpLFNlLndyaXRlX3NoaWZ0KDQsMTIwMCksSGUud3JpdGVfc2hpZnQoNCwxKSxnZS5wdXNoKFNlKSxyZS5wdXNoKEhlKSxfZSs9OCtTZS5sZW5ndGgsIVApeyhIZT1wcig4KSkud3Jp'@; put 'dGVfc2hpZnQoNCwwKSxyZS51bnNoaWZ0KEhlKTt2YXIgQmU9W3ByKDQpXTtmb3IoQmVbMF0ud3JpdGVfc2hpZnQoNCx5Lmxlbmd0aCksdmU9MDt2ZTx5Lmxlbmd0aDsrK3ZlKXt2YXIgR2U9eVt2ZV1bMF07Zm9yKChTZT1wcig4KzIqKEdlLmxlbmd0aCsxKSsoR2UubGVuZ3RoJTI/MDoyKSkp'@; put 'LndyaXRlX3NoaWZ0KDQsdmUrMiksU2Uud3JpdGVfc2hpZnQoNCxHZS5sZW5ndGgrMSksU2Uud3JpdGVfc2hpZnQoMCxHZSwiZGJjcyIpO1NlLmwhPVNlLmxlbmd0aDspU2Uud3JpdGVfc2hpZnQoMSwwKTtCZS5wdXNoKFNlKX1TZT1TKEJlKSxnZS51bnNoaWZ0KFNlKSxfZSs9OCtTZS5sZW5n'@; put 'dGh9Zm9yKHZlPTA7dmU8eS5sZW5ndGg7Kyt2ZSlpZigoIVB8fFBbeVt2ZV1bMF1dKSYmIShmbS5pbmRleE9mKHlbdmVdWzBdKT4tMSkmJm51bGwhPXlbdmVdWzFdKXt2YXIgbnQ9eVt2ZV1bMV0sZHQ9MDtpZihQKXt2YXIgQ3Q9TFtkdD0rUFt5W3ZlXVswXV1dO2lmKCJ2ZXJzaW9uIj09Q3Qu'@; put 'cCYmInN0cmluZyI9PXR5cGVvZiBudCl7dmFyIGN0PW50LnNwbGl0KCIuIik7bnQ9KCtjdFswXTw8MTYpKygrY3RbMV18fDApfVNlPWw5KEN0LnQsbnQpfWVsc2V7dmFyIGJ0PUl3KG50KTstMT09YnQmJihidD0zMSxudD1TdHJpbmcobnQpKSxTZT1sOShidCxudCl9Z2UucHVzaChTZSksKEhl'@; put 'PXByKDgpKS53cml0ZV9zaGlmdCg0LFA/ZHQ6Mit2ZSkscmUucHVzaChIZSksX2UrPTgrU2UubGVuZ3RofXZhciBGdD04KihnZS5sZW5ndGgrMSk7Zm9yKHZlPTA7dmU8Z2UubGVuZ3RoOysrdmUpcmVbdmVdLndyaXRlX3NoaWZ0KDQsRnQpLEZ0Kz1nZVt2ZV0ubGVuZ3RoO3JldHVybiBRLndy'@; put 'aXRlX3NoaWZ0KDQsX2UpLFEud3JpdGVfc2hpZnQoNCxnZS5sZW5ndGgpLFMoW1FdLmNvbmNhdChyZSkuY29uY2F0KGdlKSl9ZnVuY3Rpb24gdTkoeSxQLEwpe3ZhciBRPXkuY29udGVudDtpZighUSlyZXR1cm57fTtvbChRLDApO3ZhciByZSxnZSxfZSx2ZSxTZT0wO1EuY2hrKCJmZWZmIiwi'@; put 'Qnl0ZSBPcmRlcjogIiksUS5yZWFkX3NoaWZ0KDIpO3ZhciBIZT1RLnJlYWRfc2hpZnQoNCksQmU9US5yZWFkX3NoaWZ0KDE2KTtpZihCZSE9PWplLnV0aWxzLmNvbnN0cy5IRUFERVJfQ0xTSUQmJkJlIT09TCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBQcm9wZXJ0eVNldCBDTFNJRCAiK0JlKTtp'@; put 'ZigxIT09KHJlPVEucmVhZF9zaGlmdCg0KSkmJjIhPT1yZSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCAjU2V0czogIityZSk7aWYoZ2U9US5yZWFkX3NoaWZ0KDE2KSx2ZT1RLnJlYWRfc2hpZnQoNCksMT09PXJlJiZ2ZSE9PVEubCl0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBtaXNt'@; put 'YXRjaDogIit2ZSsiICE9PSAiK1EubCk7Mj09PXJlJiYoX2U9US5yZWFkX3NoaWZ0KDE2KSxTZT1RLnJlYWRfc2hpZnQoNCkpO3ZhciBDdCxHZT1GMShRLFApLG50PXtTeXN0ZW1JZGVudGlmaWVyOkhlfTtmb3IodmFyIGR0IGluIEdlKW50W2R0XT1HZVtkdF07aWYobnQuRk1USUQ9Z2UsMT09'@; put 'PXJlKXJldHVybiBudDtpZihTZS1RLmw9PTImJihRLmwrPTIpLFEubCE9PVNlKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoIDI6ICIrUS5sKyIgIT09ICIrU2UpO3RyeXtDdD1GMShRLG51bGwpfWNhdGNoe31mb3IoZHQgaW4gQ3QpbnRbZHRdPUN0W2R0XTtyZXR1cm4gbnQuRk1U'@; put 'SUQ9W2dlLF9lXSxudH1mdW5jdGlvbiB5aSh5LFAsTCxRLHJlLGdlKXt2YXIgX2U9cHIocmU/Njg6NDgpLHZlPVtfZV07X2Uud3JpdGVfc2hpZnQoMiw2NTUzNCksX2Uud3JpdGVfc2hpZnQoMiwwKSxfZS53cml0ZV9zaGlmdCg0LDg0MjQxMjU5OSksX2Uud3JpdGVfc2hpZnQoMTYsamUudXRp'@; put 'bHMuY29uc3RzLkhFQURFUl9DTFNJRCwiaGV4IiksX2Uud3JpdGVfc2hpZnQoNCxyZT8yOjEpLF9lLndyaXRlX3NoaWZ0KDE2LFAsImhleCIpLF9lLndyaXRlX3NoaWZ0KDQscmU/Njg6NDgpO3ZhciBTZT1jOSh5LEwsUSk7aWYodmUucHVzaChTZSkscmUpe3ZhciBIZT1jOShyZSxudWxsLG51'@; put 'bGwpO19lLndyaXRlX3NoaWZ0KDE2LGdlLCJoZXgiKSxfZS53cml0ZV9zaGlmdCg0LDY4K1NlLmxlbmd0aCksdmUucHVzaChIZSl9cmV0dXJuIFModmUpfWZ1bmN0aW9uIFBkKHksUCl7cmV0dXJuIHkucmVhZF9zaGlmdChQKSxudWxsfWZ1bmN0aW9uIFNvKHksUCl7cmV0dXJuIDE9PT15LnJl'@; put 'YWRfc2hpZnQoUCl9ZnVuY3Rpb24gRmwoeSxQKXtyZXR1cm4gUHx8KFA9cHIoMikpLFAud3JpdGVfc2hpZnQoMiwrISF5KSxQfWZ1bmN0aW9uIGhsKHkpe3JldHVybiB5LnJlYWRfc2hpZnQoMiwidSIpfWZ1bmN0aW9uIGZ1KHksUCl7cmV0dXJuIFB8fChQPXByKDIpKSxQLndyaXRlX3NoaWZ0'@; put 'KDIseSksUH1mdW5jdGlvbiBIMSh5LFApe3JldHVybiBmdW5jdGlvbiBrNCh5LFAsTCl7Zm9yKHZhciBRPVtdLHJlPXkubCtQO3kubDxyZTspUS5wdXNoKEwoeSxyZS15LmwpKTtpZihyZSE9PXkubCl0aHJvdyBuZXcgRXJyb3IoIlNsdXJwIGVycm9yIik7cmV0dXJuIFF9KHksUCxobCl9ZnVu'@; put 'Y3Rpb24gZDkoeSxQLEwpe3JldHVybiBMfHwoTD1wcigyKSksTC53cml0ZV9zaGlmdCgxLCJlIj09UD8reTorISF5KSxMLndyaXRlX3NoaWZ0KDEsImUiPT1QPzE6MCksTH1mdW5jdGlvbiBGZCh5LFAsTCl7dmFyIFE9eS5yZWFkX3NoaWZ0KEwmJkwuYmlmZj49MTI/MjoxKSxyZT0ic2Jjcy1j'@; put 'b250IixnZT1PO0wmJkwuYmlmZj49OCYmKE89MTIwMCksTCYmOCE9TC5iaWZmPzEyPT1MLmJpZmYmJihyZT0id3N0ciIpOnkucmVhZF9zaGlmdCgxKSYmKHJlPSJkYmNzLWNvbnQiKSxMLmJpZmY+PTImJkwuYmlmZjw9NSYmKHJlPSJjcHN0ciIpO3ZhciB2ZT1RP3kucmVhZF9zaGlmdChRLHJl'@; put 'KToiIjtyZXR1cm4gTz1nZSx2ZX1mdW5jdGlvbiBnbSh5KXt2YXIgUD1PO089MTIwMDt2YXIgU2UsTD15LnJlYWRfc2hpZnQoMiksUT15LnJlYWRfc2hpZnQoMSkscmU9NCZRLGdlPTgmUSxfZT0xKygxJlEpLHZlPTAsSGU9e307Z2UmJih2ZT15LnJlYWRfc2hpZnQoMikpLHJlJiYoU2U9eS5y'@; put 'ZWFkX3NoaWZ0KDQpKTt2YXIgR2U9MD09PUw/IiI6eS5yZWFkX3NoaWZ0KEwsMj09X2U/ImRiY3MtY29udCI6InNiY3MtY29udCIpO2lmKGdlKWZvcihIZS5fUj1bXTt2ZS0tID4wOylIZS5fUi5wdXNoKHtpZHg6eS5yZWFkX3NoaWZ0KDIpLGlmbnQ6eS5yZWFkX3NoaWZ0KDIpfSk7cmV0dXJu'@; put 'IHJlJiYoeS5sKz1TZSksSGUudD1HZSxnZXx8KEhlLnI9Ijx0PiIrSGUudCsiPC90PiIpLE89UCxIZX1mdW5jdGlvbiBqMCh5LFApe3ZhciBMPXkuUiYmeS5SLmxlbmd0aHx8eS5yO3kuciYmKHkuUj1EbSh5LnIpKTt2YXIgUT0iIixyZT0wO0w/eS5SLmZvckVhY2goZnVuY3Rpb24oQ3Qpe3Jl'@; put 'KyssUSs9Q3Qudnx8IiJ9KTooUT15LnR8fCIiLHJlPTEpO3ZhciBnZT1wcigzKyhyZT4xPzI6MCkpO2dlLndyaXRlX3NoaWZ0KDIsUS5sZW5ndGgpLGdlLndyaXRlX3NoaWZ0KDEsMXwocmU+MT84OjApKSxyZT4xJiZnZS53cml0ZV9zaGlmdCgyLHJlKTt2YXIgX2U9cHIoMipRLmxlbmd0aCk7'@; put 'X2Uud3JpdGVfc2hpZnQoMipRLmxlbmd0aCxRLCJ1dGYxNmxlIik7dmFyIHZlPVtnZSxfZV07aWYoTCl7dmFyIFNlPXByKDQqeS5SLmxlbmd0aCksSGU9MDt2ZS5wdXNoKFNlKTtmb3IodmFyIEJlPTA7QmU8eS5SLmxlbmd0aDsrK0JlKXt2YXIgR2U9eS5SW0JlXTtTZS53cml0ZV9zaGlmdCgy'@; put 'LEhlKSxIZSs9KEdlLnZ8fCIiKS5sZW5ndGg7dmFyIG50PUdlLnM/Z3UoUC5jZWxsWGZzLFAuY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpHZS5zfSxQKTowLGR0PVAuY2VsbFhmc1tudF0uZm9udElkO1NlLndyaXRlX3NoaWZ0KDIsZHQ8ND9kdDpkdCsxKX19cmV0dXJuIFModmUpfWZ1bmN0'@; put 'aW9uIEhkKHksUCxMKXtpZihMKXtpZihMLmJpZmY+PTImJkwuYmlmZjw9NSlyZXR1cm4geS5yZWFkX3NoaWZ0KFAsImNwc3RyIik7aWYoTC5iaWZmPj0xMilyZXR1cm4geS5yZWFkX3NoaWZ0KFAsImRiY3MtY29udCIpfXZhciByZT15LnJlYWRfc2hpZnQoMSk7cmV0dXJuIHkucmVhZF9zaGlm'@; put 'dChQLDA9PT1yZT8ic2Jjcy1jb250IjoiZGJjcy1jb250Iil9ZnVuY3Rpb24gTjIoeSxQLEwpe3ZhciBRPXkucmVhZF9zaGlmdChMJiYyPT1MLmJpZmY/MToyKTtyZXR1cm4gMD09PVE/KHkubCsrLCIiKTpIZCh5LFEsTCl9ZnVuY3Rpb24gVjIoeSxQLEwpe2lmKEwuYmlmZj41KXJldHVybiBO'@; put 'Mih5LDAsTCk7dmFyIFE9eS5yZWFkX3NoaWZ0KDEpO3JldHVybiAwPT09UT8oeS5sKyssIiIpOnkucmVhZF9zaGlmdChRLEwuYmlmZjw9NHx8IXkubGVucz8iY3BzdHIiOiJzYmNzLWNvbnQiKX1mdW5jdGlvbiBtbSh5LFAsTCl7cmV0dXJuIEx8fChMPXByKDMrMip5Lmxlbmd0aCkpLEwud3Jp'@; put 'dGVfc2hpZnQoMix5Lmxlbmd0aCksTC53cml0ZV9zaGlmdCgxLDEpLEwud3JpdGVfc2hpZnQoMzEseSwidXRmMTZsZSIpLEx9ZnVuY3Rpb24gQTQoeSl7dmFyIFA9eS5yZWFkX3NoaWZ0KDQpO3JldHVybiBQPjA/eS5yZWFkX3NoaWZ0KFAsInV0ZjE2bGUiKS5yZXBsYWNlKHYsIiIpOiIifWZ1'@; put 'bmN0aW9uIF8zKHksUCl7UHx8KFA9cHIoNisyKnkubGVuZ3RoKSksUC53cml0ZV9zaGlmdCg0LDEreS5sZW5ndGgpO2Zvcih2YXIgTD0wO0w8eS5sZW5ndGg7KytMKVAud3JpdGVfc2hpZnQoMix5LmNoYXJDb2RlQXQoTCkpO3JldHVybiBQLndyaXRlX3NoaWZ0KDIsMCksUH1mdW5jdGlvbiBi'@; put 'Myh5KXt2YXIgUD1wcig1MTIpLEw9MCxRPXkuVGFyZ2V0OyJmaWxlOi8vIj09US5zbGljZSgwLDcpJiYoUT1RLnNsaWNlKDcpKTt2YXIgcmU9US5pbmRleE9mKCIjIiksZ2U9cmU+LTE/MzE6MjM7c3dpdGNoKFEuY2hhckF0KDApKXtjYXNlIiMiOmdlPTI4O2JyZWFrO2Nhc2UiLiI6Z2UmPS0z'@; put 'fVAud3JpdGVfc2hpZnQoNCwyKSxQLndyaXRlX3NoaWZ0KDQsZ2UpO3ZhciBfZT1bOCw2ODE1ODI3LDY2MTkyMzcsNDg0OTc4MCw4M107Zm9yKEw9MDtMPF9lLmxlbmd0aDsrK0wpUC53cml0ZV9zaGlmdCg0LF9lW0xdKTtpZigyOD09Z2UpXzMoUT1RLnNsaWNlKDEpLFApO2Vsc2UgaWYoMiZn'@; put 'ZSl7Zm9yKF9lPSJlMCBjOSBlYSA3OSBmOSBiYSBjZSAxMSA4YyA4MiAwMCBhYSAwMCA0YiBhOSAwYiIuc3BsaXQoIiAiKSxMPTA7TDxfZS5sZW5ndGg7KytMKVAud3JpdGVfc2hpZnQoMSxwYXJzZUludChfZVtMXSwxNikpO3ZhciB2ZT1yZT4tMT9RLnNsaWNlKDAscmUpOlE7Zm9yKFAud3Jp'@; put 'dGVfc2hpZnQoNCwyKih2ZS5sZW5ndGgrMSkpLEw9MDtMPHZlLmxlbmd0aDsrK0wpUC53cml0ZV9zaGlmdCgyLHZlLmNoYXJDb2RlQXQoTCkpO1Aud3JpdGVfc2hpZnQoMiwwKSw4JmdlJiZfMyhyZT4tMT9RLnNsaWNlKHJlKzEpOiIiLFApfWVsc2V7Zm9yKF9lPSIwMyAwMyAwMCAwMCAwMCAw'@; put 'MCAwMCAwMCBjMCAwMCAwMCAwMCAwMCAwMCAwMCA0NiIuc3BsaXQoIiAiKSxMPTA7TDxfZS5sZW5ndGg7KytMKVAud3JpdGVfc2hpZnQoMSxwYXJzZUludChfZVtMXSwxNikpO2Zvcih2YXIgU2U9MDsiLi4vIj09US5zbGljZSgzKlNlLDMqU2UrMyl8fCIuLlxcIj09US5zbGljZSgzKlNlLDMq'@; put 'U2UrMyk7KSsrU2U7Zm9yKFAud3JpdGVfc2hpZnQoMixTZSksUC53cml0ZV9zaGlmdCg0LFEubGVuZ3RoLTMqU2UrMSksTD0wO0w8US5sZW5ndGgtMypTZTsrK0wpUC53cml0ZV9zaGlmdCgxLDI1NSZRLmNoYXJDb2RlQXQoTCszKlNlKSk7Zm9yKFAud3JpdGVfc2hpZnQoMSwwKSxQLndyaXRl'@; put 'X3NoaWZ0KDIsNjU1MzUpLFAud3JpdGVfc2hpZnQoMiw1NzAwNSksTD0wO0w8NjsrK0wpUC53cml0ZV9zaGlmdCg0LDApfXJldHVybiBQLnNsaWNlKDAsUC5sKX1mdW5jdGlvbiB2bSh5KXtyZXR1cm5beS5yZWFkX3NoaWZ0KDEpLHkucmVhZF9zaGlmdCgxKSx5LnJlYWRfc2hpZnQoMSkseS5y'@; put 'ZWFkX3NoaWZ0KDEpXX1mdW5jdGlvbiBoOSh5LFApe3ZhciBMPXZtKHkpO3JldHVybiBMWzNdPTAsTH1mdW5jdGlvbiBMdSh5KXtyZXR1cm57cjp5LnJlYWRfc2hpZnQoMiksYzp5LnJlYWRfc2hpZnQoMiksaXhmZTp5LnJlYWRfc2hpZnQoMil9fWZ1bmN0aW9uIHowKHksUCxMLFEpe3JldHVy'@; put 'biBRfHwoUT1wcig2KSksUS53cml0ZV9zaGlmdCgyLHkpLFEud3JpdGVfc2hpZnQoMixQKSxRLndyaXRlX3NoaWZ0KDIsTHx8MCksUX1mdW5jdGlvbiBwOSh5LFAsTCl7dmFyIFE9TC5iaWZmPjg/NDoyO3JldHVyblt5LnJlYWRfc2hpZnQoUSkseS5yZWFkX3NoaWZ0KFEsImkiKSx5LnJlYWRf'@; put 'c2hpZnQoUSwiaSIpXX1mdW5jdGlvbiBnOSh5KXtyZXR1cm5beS5yZWFkX3NoaWZ0KDIpLFhjKHkpXX1mdW5jdGlvbiBLaCh5KXt2YXIgUD15LnJlYWRfc2hpZnQoMiksTD15LnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6eS5yZWFkX3NoaWZ0KDIpLHI6UH0sZTp7Yzp5LnJlYWRfc2hpZnQo'@; put 'MikscjpMfX19ZnVuY3Rpb24gVTAoeSxQKXtyZXR1cm4gUHx8KFA9cHIoOCkpLFAud3JpdGVfc2hpZnQoMix5LnMuciksUC53cml0ZV9zaGlmdCgyLHkuZS5yKSxQLndyaXRlX3NoaWZ0KDIseS5zLmMpLFAud3JpdGVfc2hpZnQoMix5LmUuYyksUH1mdW5jdGlvbiBfbSh5KXt2YXIgUD15LnJl'@; put 'YWRfc2hpZnQoMiksTD15LnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6eS5yZWFkX3NoaWZ0KDEpLHI6UH0sZTp7Yzp5LnJlYWRfc2hpZnQoMSkscjpMfX19dmFyIHZhPV9tO2Z1bmN0aW9uIFQ0KHkpe3kubCs9NDt2YXIgUD15LnJlYWRfc2hpZnQoMiksTD15LnJlYWRfc2hpZnQoMiksUT15'@; put 'LnJlYWRfc2hpZnQoMik7cmV0dXJuIHkubCs9MTIsW0wsUCxRXX1mdW5jdGlvbiBIbCh5KXt5LmwrPTIseS5sKz15LnJlYWRfc2hpZnQoMil9dmFyIGJtPXswOkhsLDQ6SGwsNTpIbCw2OkhsLDc6ZnVuY3Rpb24gXzkoeSl7cmV0dXJuIHkubCs9NCx5LmNmPXkucmVhZF9zaGlmdCgyKSx7fX0s'@; put 'ODpIbCw5OkhsLDEwOkhsLDExOkhsLDEyOkhsLDEzOmZ1bmN0aW9uIHY5KHkpe3ZhciBQPXt9O3JldHVybiB5LmwrPTQseS5sKz0xNixQLmZTaGFyZWROb3RlPXkucmVhZF9zaGlmdCgyKSx5LmwrPTQsUH0sMTQ6SGwsMTU6SGwsMTY6SGwsMTc6SGwsMTg6SGwsMTk6SGwsMjA6SGwsMjE6VDR9'@; put 'O2Z1bmN0aW9uIFJ1KHksUCl7dmFyIEw9e0JJRkZWZXI6MCxkdDowfTtzd2l0Y2goTC5CSUZGVmVyPXkucmVhZF9zaGlmdCgyKSwoUC09Mik+PTImJihMLmR0PXkucmVhZF9zaGlmdCgyKSx5LmwtPTIpLEwuQklGRlZlcil7Y2FzZSAxNTM2OmNhc2UgMTI4MDpjYXNlIDEwMjQ6Y2FzZSA3Njg6'@; put 'Y2FzZSA1MTI6Y2FzZSAyOmNhc2UgNzpicmVhaztkZWZhdWx0OmlmKFA+Nil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgQklGRiBWZXIgIitMLkJJRkZWZXIpfXJldHVybiB5LnJlYWRfc2hpZnQoUCksTH1mdW5jdGlvbiBENCh5LFAsTCl7dmFyIFE9MTUzNixyZT0xNjtzd2l0Y2goTC5i'@; put 'b29rVHlwZSl7Y2FzZSJiaWZmOCI6Y2FzZSJ4bGEiOmJyZWFrO2Nhc2UiYmlmZjUiOlE9MTI4MCxyZT04O2JyZWFrO2Nhc2UiYmlmZjQiOlE9NCxyZT02O2JyZWFrO2Nhc2UiYmlmZjMiOlE9MyxyZT02O2JyZWFrO2Nhc2UiYmlmZjIiOlE9MixyZT00O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3'@; put 'IEVycm9yKCJ1bnN1cHBvcnRlZCBCSUZGIHZlcnNpb24iKX12YXIgZ2U9cHIocmUpO3JldHVybiBnZS53cml0ZV9zaGlmdCgyLFEpLGdlLndyaXRlX3NoaWZ0KDIsUCkscmU+NCYmZ2Uud3JpdGVfc2hpZnQoMiwyOTI4MikscmU+NiYmZ2Uud3JpdGVfc2hpZnQoMiwxOTk3KSxyZT44JiYoZ2Uu'@; put 'd3JpdGVfc2hpZnQoMiw0OTE2MSksZ2Uud3JpdGVfc2hpZnQoMiwxKSxnZS53cml0ZV9zaGlmdCgyLDE3OTgpLGdlLndyaXRlX3NoaWZ0KDIsMCkpLGdlfWZ1bmN0aW9uIFkwKHksUCl7dmFyIEw9IVB8fFAuYmlmZj49OD8yOjEsUT1wcig4K0wqeS5uYW1lLmxlbmd0aCk7US53cml0ZV9zaGlm'@; put 'dCg0LHkucG9zKSxRLndyaXRlX3NoaWZ0KDEseS5oc3x8MCksUS53cml0ZV9zaGlmdCgxLHkuZHQpLFEud3JpdGVfc2hpZnQoMSx5Lm5hbWUubGVuZ3RoKSxQLmJpZmY+PTgmJlEud3JpdGVfc2hpZnQoMSwxKSxRLndyaXRlX3NoaWZ0KEwqeS5uYW1lLmxlbmd0aCx5Lm5hbWUsUC5iaWZmPDg/'@; put 'InNiY3MiOiJ1dGYxNmxlIik7dmFyIHJlPVEuc2xpY2UoMCxRLmwpO3JldHVybiByZS5sPVEubCxyZX1mdW5jdGlvbiBEcih5KXtyZXR1cm4geS5yZWFkX3NoaWZ0KDQpLEpjKHkpfWZ1bmN0aW9uIGVzKHkpe3JldHVybiB5LnJlYWRfc2hpZnQoNCksbDAoeSl9ZnVuY3Rpb24gc2MoeSxQLEwp'@; put 'e3JldHVybiB5LnJlYWRfc2hpZnQoNCksb1MoeSwwLEwpfWZ1bmN0aW9uIFcwKHksUCxMKXt2YXIgUT0wO0wmJjI9PUwuYmlmZnx8KFE9eS5yZWFkX3NoaWZ0KDIpKTt2YXIgcmU9eS5yZWFkX3NoaWZ0KDIpO3JldHVybiBMJiYyPT1MLmJpZmYmJihRPTEtKHJlPj4xNSkscmUmPTMyNzY3KSxb'@; put 'e1Vuc3luY2VkOjEmUSxEeVplcm86KDImUSk+PjEsRXhBc2M6KDQmUSk+PjIsRXhEc2M6KDgmUSk+PjN9LHJlXX1mdW5jdGlvbiBYcih5LFAsTCxRKXt2YXIgcmU9TCYmNT09TC5iaWZmO1F8fChRPXByKHJlPzMrUC5sZW5ndGg6NSsyKlAubGVuZ3RoKSksUS53cml0ZV9zaGlmdCgyLHkpLFEu'@; put 'd3JpdGVfc2hpZnQocmU/MToyLFAubGVuZ3RoKSxyZXx8US53cml0ZV9zaGlmdCgxLDEpLFEud3JpdGVfc2hpZnQoKHJlPzE6MikqUC5sZW5ndGgsUCxyZT8ic2JjcyI6InV0ZjE2bGUiKTt2YXIgZ2U9US5sZW5ndGg+US5sP1Euc2xpY2UoMCxRLmwpOlE7cmV0dXJuIG51bGw9PWdlLmwmJihn'@; put 'ZS5sPWdlLmxlbmd0aCksZ2V9dmFyIFRzPVYyO2Z1bmN0aW9uIEJ0KHksUCxMKXt2YXIgUT15LmwrUCxyZT04IT1MLmJpZmYmJkwuYmlmZj8yOjQsZ2U9eS5yZWFkX3NoaWZ0KHJlKSxfZT15LnJlYWRfc2hpZnQocmUpLHZlPXkucmVhZF9zaGlmdCgyKSxTZT15LnJlYWRfc2hpZnQoMik7cmV0'@; put 'dXJuIHkubD1RLHtzOntyOmdlLGM6dmV9LGU6e3I6X2UsYzpTZX19fWZ1bmN0aW9uIENtKHksUCxMLFEpe3ZhciBnZT0hTHx8IUwuYmlmZnx8OD09TC5iaWZmO1F8fChRPXByKEwmJjU9PUwuYmlmZj8xNjoyMCkpLFEud3JpdGVfc2hpZnQoMixnZSYmTC5jZWxsU3R5bGVzJiZ5LmZvbnRJZCYm'@; put 'KHkuZm9udElkPDQ/eS5mb250SWQ6eS5mb250SWQrMSl8fDApO3ZhciBfZT0xO3kucHJvdGVjdGlvbiYmKHkucHJvdGVjdGlvbi5lZGl0YWJsZSYmKF9lJj0tMikseS5wcm90ZWN0aW9uLmhpZGRlbiYmKF9lfD0yKSkseS5zdHlsZT8oUS53cml0ZV9zaGlmdCgyLHkubnVtRm10SWR8fDApLFEu'@; put 'd3JpdGVfc2hpZnQoMiw2NTUyNHxfZSkpOihRLndyaXRlX3NoaWZ0KDIseS5udW1GbXRJZHx8MCksUS53cml0ZV9zaGlmdCgyLFA8PDR8X2UpKTt2YXIgdmU9eS5hbGlnbm1lbnR8fHt9O2lmKGdlKXt2YXIgU2U9MCxIZT0wO1dtLmluZGV4T2YodmUuaG9yaXpvbnRhbCk+LTEmJihTZXw9V20u'@; put 'aW5kZXhPZih2ZS5ob3Jpem9udGFsKSksdmUud3JhcFRleHQmJihTZXw9OCksQjQuaW5kZXhPZih2ZS52ZXJ0aWNhbCk+LTE/U2V8PUI0LmluZGV4T2YodmUudmVydGljYWwpPDw0Om51bGw9PXZlLnZlcnRpY2FsJiYoU2V8PTMyKSxRLndyaXRlX3NoaWZ0KDEsU2UpLFEud3JpdGVfc2hpZnQo'@; put 'MSwwKSx2ZS5zaHJpbmtUb0ZpdCYmKEhlfD0xNiksUS53cml0ZV9zaGlmdCgyLEhlKTt2YXIgQmU9bnVsbDtudWxsIT15LmJvcmRlcklkJiYoQmU9TC5Cb3JkZXJzJiZMLkJvcmRlcnNbeS5ib3JkZXJJZHx8MF18fHt9KTt2YXIgR2U9MCxudD0wLGR0PTA7QmUmJihudWxsIT1CZS5sZWZ0JiZC'@; put 'ZS5sZWZ0LnN0eWxlJiYoR2V8PShkdD1XMi5pbmRleE9mKEJlLmxlZnQuc3R5bGUpKT4tMT9kdDowKSxudWxsIT1CZS5yaWdodCYmQmUucmlnaHQuc3R5bGUmJihHZXw9KChkdD1XMi5pbmRleE9mKEJlLnJpZ2h0LnN0eWxlKSk+LTE/ZHQ6MCk8PDQpLG51bGwhPUJlLnRvcCYmQmUudG9wLnN0'@; put 'eWxlJiYobnR8PShkdD1XMi5pbmRleE9mKEJlLnRvcC5zdHlsZSkpPi0xP2R0OjApLG51bGwhPUJlLmJvdHRvbSYmQmUuYm90dG9tLnN0eWxlJiYobnR8PSgoZHQ9VzIuaW5kZXhPZihCZS5ib3R0b20uc3R5bGUpKT4tMT9kdDowKTw8NCkpLFEud3JpdGVfc2hpZnQoMSxHZSksUS53cml0ZV9z'@; put 'aGlmdCgxLG50KSxRLndyaXRlX3NoaWZ0KDIsMCksUS53cml0ZV9zaGlmdCgyLDApLFEud3JpdGVfc2hpZnQoMSwwKTt2YXIgQ3Q9MCxjdD1MLkZpbGxzJiZMLkZpbGxzW3kuZmlsbElkfHwwXXx8e307KGN0LmZnQ29sb3J8fGN0LmJnQ29sb3IpJiYoQ3R8PTQpLFEud3JpdGVfc2hpZnQoMSxD'@; put 'dCk7dmFyIGJ0PTA7YnR8PUgzKGN0LmZnQ29sb3IsNjUpLGJ0fD1IMyhjdC5iZ0NvbG9yLDY1KTw8NyxRLndyaXRlX3NoaWZ0KDIsYnQpfWVsc2UgUS53cml0ZV9zaGlmdCg0LDApLFEud3JpdGVfc2hpZnQoNCwwKSxRLndyaXRlX3NoaWZ0KDIsMCk7cmV0dXJuIFF9ZnVuY3Rpb24gVmMoeSxQ'@; put 'LEwpe3ZhciBRPUx1KHkpOygyPT1MLmJpZmZ8fDk9PVApJiYrK3kubDt2YXIgcmU9ZnVuY3Rpb24gcG0oeSl7dmFyIFA9eS5yZWFkX3NoaWZ0KDEpO3JldHVybiAxPT09eS5yZWFkX3NoaWZ0KDEpP1A6MT09PVB9KHkpO3JldHVybiBRLnZhbD1yZSxRLnQ9ITA9PT1yZXx8ITE9PT1yZT8iYiI6'@; put 'ImUiLFF9dmFyIFYxPWZ1bmN0aW9uIHkzKHksUCxMKXtyZXR1cm4gMD09PVA/IiI6VjIoeSwwLEwpfTtmdW5jdGlvbiB5OSh5LFAsTCl7dmFyIHJlLFE9eS5yZWFkX3NoaWZ0KDIpLGdlPXtmQnVpbHRJbjoxJlEsZldhbnRBZHZpc2U6UT4+PjEmMSxmV2FudFBpY3Q6UT4+PjImMSxmT2xlOlE+'@; put 'Pj4zJjEsZk9sZUxpbms6UT4+PjQmMSxjZjpRPj4+NSYxMDIzLGZJY29uOlE+Pj4xNSYxfTtyZXR1cm4gMTQ4NDk9PT1MLnNiY2NoJiYocmU9ZnVuY3Rpb24gUncoeSxQLEwpe3kubCs9NDt2YXIgUT15LmwrKFAtPTQpLHJlPUZkKHksMCxMKSxnZT15LnJlYWRfc2hpZnQoMik7aWYoZ2UhPT0o'@; put 'US09eS5sKSl0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBZGRpblVkZjogcGFkZGluZyA9ICIrUSsiICE9ICIrZ2UpO3JldHVybiB5LmwrPWdlLHJlfSh5LFAtMixMKSksZ2UuYm9keT1yZXx8eS5yZWFkX3NoaWZ0KFAtMiksInN0cmluZyI9PXR5cGVvZiByZSYmKGdlLk5hbWU9cmUpLGdl'@; put 'fXZhciBLVD1bIl94bG5tLkNvbnNvbGlkYXRlX0FyZWEiLCJfeGxubS5BdXRvX09wZW4iLCJfeGxubS5BdXRvX0Nsb3NlIiwiX3hsbm0uRXh0cmFjdCIsIl94bG5tLkRhdGFiYXNlIiwiX3hsbm0uQ3JpdGVyaWEiLCJfeGxubS5QcmludF9BcmVhIiwiX3hsbm0uUHJpbnRfVGl0bGVzIiwiX3hs'@; put 'bm0uUmVjb3JkZXIiLCJfeGxubS5EYXRhX0Zvcm0iLCJfeGxubS5BdXRvX0FjdGl2YXRlIiwiX3hsbm0uQXV0b19EZWFjdGl2YXRlIiwiX3hsbm0uU2hlZXRfVGl0bGUiLCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiXTtmdW5jdGlvbiBWdyh5LFAsTCl7dmFyIFE9eS5sK1AscmU9eS5yZWFkX3No'@; put 'aWZ0KDIpLGdlPXkucmVhZF9zaGlmdCgxKSxfZT15LnJlYWRfc2hpZnQoMSksdmU9eS5yZWFkX3NoaWZ0KEwmJjI9PUwuYmlmZj8xOjIpLFNlPTA7KCFMfHxMLmJpZmY+PTUpJiYoNSE9TC5iaWZmJiYoeS5sKz0yKSxTZT15LnJlYWRfc2hpZnQoMiksNT09TC5iaWZmJiYoeS5sKz0yKSx5Lmwr'@; put 'PTQpO3ZhciBIZT1IZCh5LF9lLEwpOzMyJnJlJiYoSGU9S1RbSGUuY2hhckNvZGVBdCgwKV0pO3ZhciBCZT1RLXkubDtMJiYyPT1MLmJpZmYmJi0tQmU7dmFyIEdlPVEhPXkubCYmMCE9PXZlJiZCZT4wP2Z1bmN0aW9uIGQ2KHksUCxMLFEpe3ZhciBfZSxyZT15LmwrUCxnZT1uNSh5LFEsTCk7'@; put 'cmV0dXJuIHJlIT09eS5sJiYoX2U9ajMoeSxyZS15LmwsZ2UsTCkpLFtnZSxfZV19KHksQmUsTCx2ZSk6W107cmV0dXJue2NoS2V5OmdlLE5hbWU6SGUsaXRhYjpTZSxyZ2NlOkdlfX1mdW5jdGlvbiBTbSh5LFAsTCl7aWYoTC5iaWZmPDgpcmV0dXJuIGZ1bmN0aW9uIHc5KHksUCxMKXszPT15'@; put 'W3kubCsxXSYmeVt5LmxdKys7dmFyIFE9RmQoeSwwLEwpO3JldHVybiAzPT1RLmNoYXJDb2RlQXQoMCk/US5zbGljZSgxKTpRfSh5LDAsTCk7Zm9yKHZhciBRPVtdLHJlPXkubCtQLGdlPXkucmVhZF9zaGlmdChMLmJpZmY+OD80OjIpOzAhPWdlLS07KVEucHVzaChwOSh5LDAsTCkpO2lmKHku'@; put 'bCE9cmUpdGhyb3cgbmV3IEVycm9yKCJCYWQgRXh0ZXJuU2hlZXQ6ICIreS5sKyIgIT0gIityZSk7cmV0dXJuIFF9ZnVuY3Rpb24gancoeSxQLEwpe3ZhciBRPXZhKHksNik7c3dpdGNoKEwuYmlmZil7Y2FzZSAyOnkubCsrLFAtPTc7YnJlYWs7Y2FzZSAzOmNhc2UgNDp5LmwrPTIsUC09ODti'@; put 'cmVhaztkZWZhdWx0OnkubCs9NixQLT0xMn1yZXR1cm5bUSxmdih5LFAsTCldfXZhciBNbT1bXTtmdW5jdGlvbiBYaCh5KXt2YXIgUD1wcigyNCksTD1zcyh5WzBdKTtQLndyaXRlX3NoaWZ0KDIsTC5yKSxQLndyaXRlX3NoaWZ0KDIsTC5yKSxQLndyaXRlX3NoaWZ0KDIsTC5jKSxQLndyaXRl'@; put 'X3NoaWZ0KDIsTC5jKTtmb3IodmFyIFE9ImQwIGM5IGVhIDc5IGY5IGJhIGNlIDExIDhjIDgyIDAwIGFhIDAwIDRiIGE5IDBiIi5zcGxpdCgiICIpLHJlPTA7cmU8MTY7KytyZSlQLndyaXRlX3NoaWZ0KDEscGFyc2VJbnQoUVtyZV0sMTYpKTtyZXR1cm4gUyhbUCxiMyh5WzFdKV0pfWZ1bmN0'@; put 'aW9uIFFUKHkpe3ZhciBQPXlbMV0uVG9vbHRpcCxMPXByKDEwKzIqKFAubGVuZ3RoKzEpKTtMLndyaXRlX3NoaWZ0KDIsMjA0OCk7dmFyIFE9c3MoeVswXSk7TC53cml0ZV9zaGlmdCgyLFEuciksTC53cml0ZV9zaGlmdCgyLFEuciksTC53cml0ZV9zaGlmdCgyLFEuYyksTC53cml0ZV9zaGlm'@; put 'dCgyLFEuYyk7Zm9yKHZhciByZT0wO3JlPFAubGVuZ3RoOysrcmUpTC53cml0ZV9zaGlmdCgyLFAuY2hhckNvZGVBdChyZSkpO3JldHVybiBMLndyaXRlX3NoaWZ0KDIsMCksTH1mdW5jdGlvbiBWZCh5LFAsTCl7aWYoIUwuY2VsbFN0eWxlcylyZXR1cm4geWMoeSxQKTt2YXIgUT1MJiZMLmJp'@; put 'ZmY+PTEyPzQ6MixyZT15LnJlYWRfc2hpZnQoUSksZ2U9eS5yZWFkX3NoaWZ0KFEpLF9lPXkucmVhZF9zaGlmdChRKSx2ZT15LnJlYWRfc2hpZnQoUSksU2U9eS5yZWFkX3NoaWZ0KDIpOzI9PVEmJih5LmwrPTIpO3ZhciBIZT17czpyZSxlOmdlLHc6X2UsaXhmZTp2ZSxmbGFnczpTZX07cmV0'@; put 'dXJuKEwuYmlmZj49NXx8IUwuYmlmZikmJihIZS5sZXZlbD1TZT4+OCY3KSxIZX1NbVs4XT1mdW5jdGlvbih5LFApe3ZhciBMPXkubCtQO3kubCs9MTA7dmFyIFE9eS5yZWFkX3NoaWZ0KDIpO3kubCs9NCx5LmwrPTIseS5sKz0yLHkubCs9Mix5LmwrPTQ7dmFyIHJlPXkucmVhZF9zaGlmdCgx'@; put 'KTtyZXR1cm4geS5sKz1yZSx5Lmw9TCx7Zm10OlF9fTt2YXIgcXc9THUsS3c9SDEsaUQ9TjI7dmFyIEIyPWZ1bmN0aW9uKCl7dmFyIHk9ezE6NDM3LDI6ODUwLDM6MTI1Miw0OjFlNCwxMDA6ODUyLDEwMTo4NjYsMTAyOjg2NSwxMDM6ODYxLDEwNDo4OTUsMTA1OjYyMCwxMDY6NzM3LDEwNzo4'@; put 'NTcsMTIwOjk1MCwxMjE6OTQ5LDEyMjo5MzYsMTIzOjkzMiwxMjQ6ODc0LDEyNToxMjU1LDEyNjoxMjU2LDE1MDoxMDAwNywxNTE6MTAwMjksMTUyOjEwMDA2LDIwMDoxMjUwLDIwMToxMjUxLDIwMjoxMjU0LDIwMzoxMjUzLDA6MjAxMjcsODo4NjUsOTo0MzcsMTA6ODUwLDExOjQzNywxMzo0'@; put 'MzcsMTQ6ODUwLDE1OjQzNywxNjo4NTAsMTc6NDM3LDE4Ojg1MCwxOTo5MzIsMjA6ODUwLDIxOjQzNywyMjo4NTAsMjM6ODY1LDI0OjQzNywyNTo0MzcsMjY6ODUwLDI3OjQzNywyODo4NjMsMjk6ODUwLDMxOjg1MiwzNDo4NTIsMzU6ODUyLDM2Ojg2MCwzNzo4NTAsMzg6ODY2LDU1Ojg1MCw2'@; put 'NDo4NTIsNzc6OTM2LDc4Ojk0OSw3OTo5NTAsODA6ODc0LDg3OjEyNTIsODg6MTI1Miw4OToxMjUyLDEwODo4NjMsMTM0OjczNywxMzU6ODUyLDEzNjo4NTcsMjA0OjEyNTcsMjU1OjE2OTY5fSxQPWJlKHsxOjQzNywyOjg1MCwzOjEyNTIsNDoxZTQsMTAwOjg1MiwxMDE6ODY2LDEwMjo4NjUs'@; put 'MTAzOjg2MSwxMDQ6ODk1LDEwNTo2MjAsMTA2OjczNywxMDc6ODU3LDEyMDo5NTAsMTIxOjk0OSwxMjI6OTM2LDEyMzo5MzIsMTI0Ojg3NCwxMjU6MTI1NSwxMjY6MTI1NiwxNTA6MTAwMDcsMTUxOjEwMDI5LDE1MjoxMDAwNiwyMDA6MTI1MCwyMDE6MTI1MSwyMDI6MTI1NCwyMDM6MTI1Myww'@; put 'OjIwMTI3fSk7ZnVuY3Rpb24gcmUoU2UsSGUpe3ZhciBCZT1IZXx8e307cmV0dXJuIEJlLmRhdGVORnx8KEJlLmRhdGVORj0ieXl5eW1tZGQiKSxrMShmdW5jdGlvbiBRKFNlLEhlKXt2YXIgQmU9W10sR2U9RygxKTtzd2l0Y2goSGUudHlwZSl7Y2FzZSJiYXNlNjQiOkdlPUQoc2UuZGVjb2Rl'@; put 'KFNlKSk7YnJlYWs7Y2FzZSJiaW5hcnkiOkdlPUQoU2UpO2JyZWFrO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpHZT1TZX1vbChHZSwwKTt2YXIgbnQ9R2UucmVhZF9zaGlmdCgxKSxkdD0hISgxMzYmbnQpLEN0PSExLGN0PSExO3N3aXRjaChudCl7Y2FzZSAyOmNhc2UgMzpjYXNlIDEzMTpj'@; put 'YXNlIDEzOTpjYXNlIDI0NTpicmVhaztjYXNlIDQ4OmNhc2UgNDk6Q3Q9ITAsZHQ9ITA7YnJlYWs7Y2FzZSAxNDA6Y3Q9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnN1cHBvcnRlZCBWZXJzaW9uOiAiK250LnRvU3RyaW5nKDE2KSl9dmFyIGJ0PTAsRnQ9NTIxOzI9'@; put 'PW50JiYoYnQ9R2UucmVhZF9zaGlmdCgyKSksR2UubCs9MywyIT1udCYmKGJ0PUdlLnJlYWRfc2hpZnQoNCkpLGJ0PjEwNDg1NzYmJihidD0xZTYpLDIhPW50JiYoRnQ9R2UucmVhZF9zaGlmdCgyKSk7dmFyIGt0PUdlLnJlYWRfc2hpZnQoMiksVHQ9SGUuY29kZXBhZ2V8fDEyNTI7MiE9bnQm'@; put 'JihHZS5sKz0xNixHZS5yZWFkX3NoaWZ0KDEpLDAhPT1HZVtHZS5sXSYmKFR0PXlbR2VbR2UubF1dKSxHZS5sKz0xLEdlLmwrPTIpLGN0JiYoR2UubCs9MzYpO2Zvcih2YXIgWnQ9W10scG49e30sS249TWF0aC5taW4oR2UubGVuZ3RoLDI9PW50PzUyMTpGdC0xMC0oQ3Q/MjY0OjApKSx1bj1j'@; put 'dD8zMjoxMTtHZS5sPEtuJiYxMyE9R2VbR2UubF07KXN3aXRjaChwbj17fSxwbi5uYW1lPWNwdGFibGUudXRpbHMuZGVjb2RlKFR0LEdlLnNsaWNlKEdlLmwsR2UubCt1bikpLnJlcGxhY2UoL1tcdTAwMDBcclxuXS4qJC9nLCIiKSxHZS5sKz11bixwbi50eXBlPVN0cmluZy5mcm9tQ2hhckNv'@; put 'ZGUoR2UucmVhZF9zaGlmdCgxKSksMiE9bnQmJiFjdCYmKHBuLm9mZnNldD1HZS5yZWFkX3NoaWZ0KDQpKSxwbi5sZW49R2UucmVhZF9zaGlmdCgxKSwyPT1udCYmKHBuLm9mZnNldD1HZS5yZWFkX3NoaWZ0KDIpKSxwbi5kZWM9R2UucmVhZF9zaGlmdCgxKSxwbi5uYW1lLmxlbmd0aCYmWnQu'@; put 'cHVzaChwbiksMiE9bnQmJihHZS5sKz1jdD8xMzoxNCkscG4udHlwZSl7Y2FzZSJCIjooIUN0fHw4IT1wbi5sZW4pJiZIZS5XVEYmJmNvbnNvbGUubG9nKCJTa2lwcGluZyAiK3BuLm5hbWUrIjoiK3BuLnR5cGUpO2JyZWFrO2Nhc2UiRyI6Y2FzZSJQIjpIZS5XVEYmJmNvbnNvbGUubG9nKCJT'@; put 'a2lwcGluZyAiK3BuLm5hbWUrIjoiK3BuLnR5cGUpO2JyZWFrO2Nhc2UiKyI6Y2FzZSIwIjpjYXNlIkAiOmNhc2UiQyI6Y2FzZSJEIjpjYXNlIkYiOmNhc2UiSSI6Y2FzZSJMIjpjYXNlIk0iOmNhc2UiTiI6Y2FzZSJPIjpjYXNlIlQiOmNhc2UiWSI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcg'@; put 'RXJyb3IoIlVua25vd24gRmllbGQgVHlwZTogIitwbi50eXBlKX1pZigxMyE9PUdlW0dlLmxdJiYoR2UubD1GdC0xKSwxMyE9PUdlLnJlYWRfc2hpZnQoMSkpdGhyb3cgbmV3IEVycm9yKCJEQkYgVGVybWluYXRvciBub3QgZm91bmQgIitHZS5sKyIgIitHZVtHZS5sXSk7R2UubD1GdDt2YXIg'@; put 'cW49MCx6bj0wO2ZvcihCZVswXT1bXSx6bj0wO3puIT1adC5sZW5ndGg7Kyt6bilCZVswXVt6bl09WnRbem5dLm5hbWU7Zm9yKDtidC0tID4wOylpZig0MiE9PUdlW0dlLmxdKWZvcigrK0dlLmwsQmVbKytxbl09W10sem49MCx6bj0wO3puIT1adC5sZW5ndGg7Kyt6bil7dmFyIGtuPUdlLnNs'@; put 'aWNlKEdlLmwsR2UubCtadFt6bl0ubGVuKTtHZS5sKz1adFt6bl0ubGVuLG9sKGtuLDApO3ZhciBlcj1jcHRhYmxlLnV0aWxzLmRlY29kZShUdCxrbik7c3dpdGNoKFp0W3puXS50eXBlKXtjYXNlIkMiOmVyLnRyaW0oKS5sZW5ndGgmJihCZVtxbl1bem5dPWVyLnJlcGxhY2UoL1xzKyQvLCIi'@; put 'KSk7YnJlYWs7Y2FzZSJEIjpCZVtxbl1bem5dPTg9PT1lci5sZW5ndGg/bmV3IERhdGUoK2VyLnNsaWNlKDAsNCksK2VyLnNsaWNlKDQsNiktMSwrZXIuc2xpY2UoNiw4KSk6ZXI7YnJlYWs7Y2FzZSJGIjpCZVtxbl1bem5dPXBhcnNlRmxvYXQoZXIudHJpbSgpKTticmVhaztjYXNlIisiOmNh'@; put 'c2UiSSI6QmVbcW5dW3puXT1jdD8yMTQ3NDgzNjQ4XmtuLnJlYWRfc2hpZnQoLTQsImkiKTprbi5yZWFkX3NoaWZ0KDQsImkiKTticmVhaztjYXNlIkwiOnN3aXRjaChlci50cmltKCkudG9VcHBlckNhc2UoKSl7Y2FzZSJZIjpjYXNlIlQiOkJlW3FuXVt6bl09ITA7YnJlYWs7Y2FzZSJOIjpj'@; put 'YXNlIkYiOkJlW3FuXVt6bl09ITE7YnJlYWs7Y2FzZSIiOmNhc2UiPyI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnJlY29nbml6ZWQgTDp8IitlcisifCIpfWJyZWFrO2Nhc2UiTSI6aWYoIWR0KXRocm93IG5ldyBFcnJvcigiREJGIFVuZXhwZWN0ZWQgTUVNTyBmb3Ig'@; put 'dHlwZSAiK250LnRvU3RyaW5nKDE2KSk7QmVbcW5dW3puXT0iIyNNRU1PIyMiKyhjdD9wYXJzZUludChlci50cmltKCksMTApOmtuLnJlYWRfc2hpZnQoNCkpO2JyZWFrO2Nhc2UiTiI6KGVyPWVyLnJlcGxhY2UoL1x1MDAwMC9nLCIiKS50cmltKCkpJiYiLiIhPWVyJiYoQmVbcW5dW3puXT0r'@; put 'ZXJ8fDApO2JyZWFrO2Nhc2UiQCI6QmVbcW5dW3puXT1uZXcgRGF0ZShrbi5yZWFkX3NoaWZ0KC04LCJmIiktNjIxMzU2ODMyZTUpO2JyZWFrO2Nhc2UiVCI6QmVbcW5dW3puXT1uZXcgRGF0ZSg4NjRlNSooa24ucmVhZF9zaGlmdCg0KS0yNDQwNTg4KStrbi5yZWFkX3NoaWZ0KDQpKTticmVh'@; put 'aztjYXNlIlkiOkJlW3FuXVt6bl09a24ucmVhZF9zaGlmdCg0LCJpIikvMWU0O2JyZWFrO2Nhc2UiTyI6QmVbcW5dW3puXT0ta24ucmVhZF9zaGlmdCgtOCwiZiIpO2JyZWFrO2Nhc2UiQiI6aWYoQ3QmJjg9PVp0W3puXS5sZW4pe0JlW3FuXVt6bl09a24ucmVhZF9zaGlmdCg4LCJmIik7YnJl'@; put 'YWt9Y2FzZSJHIjpjYXNlIlAiOmtuLmwrPVp0W3puXS5sZW47YnJlYWs7Y2FzZSIwIjppZigiX051bGxGbGFncyI9PT1adFt6bl0ubmFtZSlicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVuc3VwcG9ydGVkIGRhdGEgdHlwZSAiK1p0W3puXS50eXBlKX19ZWxzZSBHZS5sKz1r'@; put 'dDtpZigyIT1udCYmR2UubDxHZS5sZW5ndGgmJjI2IT1HZVtHZS5sKytdKXRocm93IG5ldyBFcnJvcigiREJGIEVPRiBNYXJrZXIgbWlzc2luZyAiKyhHZS5sLTEpKyIgb2YgIitHZS5sZW5ndGgrIiAiK0dlW0dlLmwtMV0udG9TdHJpbmcoMTYpKTtyZXR1cm4gSGUmJkhlLnNoZWV0Um93cyYm'@; put 'KEJlPUJlLnNsaWNlKDAsSGUuc2hlZXRSb3dzKSksQmV9KFNlLEJlKSxCZSl9dmFyIF9lPXtCOjgsQzoyNTAsTDoxLEQ6OCwiPyI6MCwiIjowfTtyZXR1cm57dmVyc2lvbnM6WzIsMyw0OCw0OSwxMzEsMTM5LDE0MCwyNDVdLHRvX3dvcmtib29rOmZ1bmN0aW9uIGdlKFNlLEhlKXt0cnl7cmV0'@; put 'dXJuIEVkKHJlKFNlLEhlKSxIZSl9Y2F0Y2goQmUpe2lmKEhlJiZIZS5XVEYpdGhyb3cgQmV9cmV0dXJue1NoZWV0TmFtZXM6W10sU2hlZXRzOnt9fX0sdG9fc2hlZXQ6cmUsZnJvbV9zaGVldDpmdW5jdGlvbiB2ZShTZSxIZSl7dmFyIEJlPUhlfHx7fTtpZigrQmUuY29kZXBhZ2U+PTAmJmoo'@; put 'K0JlLmNvZGVwYWdlKSwic3RyaW5nIj09QmUudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBEQkYgdG8gSlMgc3RyaW5nIik7dmFyIEdlPXdjKCksbnQ9SDYoU2Use2hlYWRlcjoxLHJhdzohMCxjZWxsRGF0ZXM6ITB9KSxkdD1udFswXSxDdD1udC5zbGljZSgxKSxjdD0wLGJ0'@; put 'PTAsRnQ9MCxrdD0xO2ZvcihjdD0wO2N0PGR0Lmxlbmd0aDsrK2N0KWlmKG51bGwhPWN0KXtpZigrK0Z0LCJudW1iZXIiPT10eXBlb2YgZHRbY3RdJiYoZHRbY3RdPWR0W2N0XS50b1N0cmluZygxMCkpLCJzdHJpbmciIT10eXBlb2YgZHRbY3RdKXRocm93IG5ldyBFcnJvcigiREJGIEludmFs'@; put 'aWQgY29sdW1uIG5hbWUgIitkdFtjdF0rIiB8Iit0eXBlb2YgZHRbY3RdKyJ8Iik7aWYoZHQuaW5kZXhPZihkdFtjdF0pIT09Y3QpZm9yKGJ0PTA7YnQ8MTAyNDsrK2J0KWlmKC0xPT1kdC5pbmRleE9mKGR0W2N0XSsiXyIrYnQpKXtkdFtjdF0rPSJfIitidDticmVha319dmFyIFR0PU9pKFNl'@; put 'WyIhcmVmIl0pLFp0PVtdO2ZvcihjdD0wO2N0PD1UdC5lLmMtVHQucy5jOysrY3Qpe3ZhciBwbj1bXTtmb3IoYnQ9MDtidDxDdC5sZW5ndGg7KytidCludWxsIT1DdFtidF1bY3RdJiZwbi5wdXNoKEN0W2J0XVtjdF0pO2lmKDAhPXBuLmxlbmd0aCYmbnVsbCE9ZHRbY3RdKXt2YXIgS249IiIs'@; put 'dW49IiI7Zm9yKGJ0PTA7YnQ8cG4ubGVuZ3RoOysrYnQpe3N3aXRjaCh0eXBlb2YgcG5bYnRdKXtjYXNlIm51bWJlciI6dW49IkIiO2JyZWFrO2Nhc2Uic3RyaW5nIjpkZWZhdWx0OnVuPSJDIjticmVhaztjYXNlImJvb2xlYW4iOnVuPSJMIjticmVhaztjYXNlIm9iamVjdCI6dW49cG5bYnRd'@; put 'aW5zdGFuY2VvZiBEYXRlPyJEIjoiQyJ9aWYoIkMiPT0oS249S24mJktuIT11bj8iQyI6dW4pKWJyZWFrfWt0Kz1fZVtLbl18fDAsWnRbY3RdPUtufWVsc2UgWnRbY3RdPSI/In12YXIgcW49R2UubmV4dCgzMik7Zm9yKHFuLndyaXRlX3NoaWZ0KDQsMzE4OTAyNTc2KSxxbi53cml0ZV9zaGlm'@; put 'dCg0LEN0Lmxlbmd0aCkscW4ud3JpdGVfc2hpZnQoMiwyOTYrMzIqRnQpLHFuLndyaXRlX3NoaWZ0KDIsa3QpLGN0PTA7Y3Q8NDsrK2N0KXFuLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKHFuLndyaXRlX3NoaWZ0KDQsMHwoK1BbUl18fDMpPDw4KSxjdD0wLGJ0PTA7Y3Q8ZHQubGVuZ3RoOysrY3Qp'@; put 'aWYobnVsbCE9ZHRbY3RdKXt2YXIgem49R2UubmV4dCgzMiksa249KGR0W2N0XS5zbGljZSgtMTApKyJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIikuc2xpY2UoMCwxMSk7em4ud3JpdGVfc2hpZnQoMSxrbiwic2JjcyIpLHpuLndyaXRlX3NoaWZ0KDEsIj8iPT1adFtjdF0/IkMiOlp0W2N0XSwi'@; put 'c2JjcyIpLHpuLndyaXRlX3NoaWZ0KDQsYnQpLHpuLndyaXRlX3NoaWZ0KDEsX2VbWnRbY3RdXXx8MCksem4ud3JpdGVfc2hpZnQoMSwwKSx6bi53cml0ZV9zaGlmdCgxLDIpLHpuLndyaXRlX3NoaWZ0KDQsMCksem4ud3JpdGVfc2hpZnQoMSwwKSx6bi53cml0ZV9zaGlmdCg0LDApLHpuLndy'@; put 'aXRlX3NoaWZ0KDQsMCksYnQrPV9lW1p0W2N0XV18fDB9dmFyIGVyPUdlLm5leHQoMjY0KTtmb3IoZXIud3JpdGVfc2hpZnQoNCwxMyksY3Q9MDtjdDw2NTsrK2N0KWVyLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKGN0PTA7Y3Q8Q3QubGVuZ3RoOysrY3Qpe3ZhciB0cj1HZS5uZXh0KGt0KTtmb3Io'@; put 'dHIud3JpdGVfc2hpZnQoMSwwKSxidD0wO2J0PGR0Lmxlbmd0aDsrK2J0KWlmKG51bGwhPWR0W2J0XSlzd2l0Y2goWnRbYnRdKXtjYXNlIkwiOnRyLndyaXRlX3NoaWZ0KDEsbnVsbD09Q3RbY3RdW2J0XT82MzpDdFtjdF1bYnRdPzg0OjcwKTticmVhaztjYXNlIkIiOnRyLndyaXRlX3NoaWZ0'@; put 'KDgsQ3RbY3RdW2J0XXx8MCwiZiIpO2JyZWFrO2Nhc2UiRCI6Q3RbY3RdW2J0XT8odHIud3JpdGVfc2hpZnQoNCwoIjAwMDAiK0N0W2N0XVtidF0uZ2V0RnVsbFllYXIoKSkuc2xpY2UoLTQpLCJzYmNzIiksdHIud3JpdGVfc2hpZnQoMiwoIjAwIisoQ3RbY3RdW2J0XS5nZXRNb250aCgpKzEp'@; put 'KS5zbGljZSgtMiksInNiY3MiKSx0ci53cml0ZV9zaGlmdCgyLCgiMDAiK0N0W2N0XVtidF0uZ2V0RGF0ZSgpKS5zbGljZSgtMiksInNiY3MiKSk6dHIud3JpdGVfc2hpZnQoOCwiMDAwMDAwMDAiLCJzYmNzIik7YnJlYWs7Y2FzZSJDIjp2YXIgWm49U3RyaW5nKEN0W2N0XVtidF18fCIiKTtm'@; put 'b3IodHIud3JpdGVfc2hpZnQoMSxabiwic2JjcyIpLEZ0PTA7RnQ8MjUwLVpuLmxlbmd0aDsrK0Z0KXRyLndyaXRlX3NoaWZ0KDEsMzIpfX1yZXR1cm4gR2UubmV4dCgxKS53cml0ZV9zaGlmdCgxLDI2KSxHZS5lbmQoKX19fSgpLEU5PWZ1bmN0aW9uKCl7dmFyIHk9e0FBOiJceGMwIixCQToi'@; put 'XHhjMSIsQ0E6Ilx4YzIiLERBOjE5NSxIQToiXHhjNCIsSkE6MTk3LEFFOiJceGM4IixCRToiXHhjOSIsQ0U6Ilx4Y2EiLEhFOiJceGNiIixBSToiXHhjYyIsQkk6Ilx4Y2QiLENJOiJceGNlIixISToiXHhjZiIsQU86Ilx4ZDIiLEJPOiJceGQzIixDTzoiXHhkNCIsRE86MjEzLEhPOiJceGQ2'@; put 'IixBVToiXHhkOSIsQlU6Ilx4ZGEiLENVOiJceGRiIixIVToiXHhkYyIsQWE6Ilx4ZTAiLEJhOiJceGUxIixDYToiXHhlMiIsRGE6MjI3LEhhOiJceGU0IixKYToyMjksQWU6Ilx4ZTgiLEJlOiJceGU5IixDZToiXHhlYSIsSGU6Ilx4ZWIiLEFpOiJceGVjIixCaToiXHhlZCIsQ2k6Ilx4ZWUi'@; put 'LEhpOiJceGVmIixBbzoiXHhmMiIsQm86Ilx4ZjMiLENvOiJceGY0IixEbzoyNDUsSG86Ilx4ZjYiLEF1OiJceGY5IixCdToiXHhmYSIsQ3U6Ilx4ZmIiLEh1OiJceGZjIixLQzoiXHhjNyIsS2M6Ilx4ZTciLHE6Ilx4ZTYiLHo6Ilx1MDE1MyIsYToiXHhjNiIsajoiXHUwMTUyIixETjoyMDks'@; put 'RG46MjQxLEh5OjI1NSxTOjE2OSxjOjE3MCxSOjE3NCwiQiAiOjE4MCwwOjE3NiwxOjE3NywyOjE3OCwzOjE3OSw1OjE4MSw2OjE4Miw3OjE4MyxROjE4NSxrOjE4NixiOjIwOCxpOjIxNixsOjIyMixzOjI0MCx5OjI0OCwiISI6MTYxLCciJzoxNjIsIiMiOjE2MywiKCI6MTY0LCIlIjoxNjUs'@; put 'IiciOjE2NywiSCAiOjE2OCwiKyI6MTcxLCI7IjoxODcsIjwiOjE4OCwiPSI6MTg5LCI+IjoxOTAsIj8iOjE5MSwieyI6MjIzfSxQPW5ldyBSZWdFeHAoIlx4MWJOKCIrbHQoeSkuam9pbigifCIpLnJlcGxhY2UoL1x8XHxcfC8sInxcXHx8IikucmVwbGFjZSgvKFs/KCkrXSkvZywiXFwkMSIp'@; put 'KyJ8XFx8KSIsImdtIiksTD1mdW5jdGlvbihudCxkdCl7dmFyIEN0PXlbZHRdO3JldHVybiJudW1iZXIiPT10eXBlb2YgQ3Q/ZWUoQ3QpOkN0fSxRPWZ1bmN0aW9uKG50LGR0LEN0KXt2YXIgY3Q9ZHQuY2hhckNvZGVBdCgwKS0zMjw8NHxDdC5jaGFyQ29kZUF0KDApLTQ4O3JldHVybiA1OT09'@; put 'Y3Q/bnQ6ZWUoY3QpfTtmdW5jdGlvbiBnZShudCxkdCl7dmFyIGVyLEN0PW50LnNwbGl0KC9bXG5ccl0rLyksY3Q9LTEsYnQ9LTEsRnQ9MCxrdD0wLFR0PVtdLFp0PVtdLHBuPW51bGwsS249e30sdW49W10scW49W10sem49W10sa249MDtmb3IoK2R0LmNvZGVwYWdlPj0wJiZqKCtkdC5jb2Rl'@; put 'cGFnZSk7RnQhPT1DdC5sZW5ndGg7KytGdCl7a249MDt2YXIgc2ksdHI9Q3RbRnRdLnRyaW0oKS5yZXBsYWNlKC9ceDFCKFtceDIwLVx4MkZdKShbXHgzMC1ceDNGXSkvZyxRKS5yZXBsYWNlKFAsTCksWm49dHIucmVwbGFjZSgvOzsvZywiXDAiKS5zcGxpdCgiOyIpLm1hcChmdW5jdGlvbih3'@; put 'aSl7cmV0dXJuIHdpLnJlcGxhY2UoL1x1MDAwMC9nLCI7Iil9KTtpZih0ci5sZW5ndGg+MClzd2l0Y2goWm5bMF0pe2Nhc2UiSUQiOmNhc2UiRSI6Y2FzZSJCIjpjYXNlIk8iOmNhc2UiVyI6YnJlYWs7Y2FzZSJQIjoiUCI9PVpuWzFdLmNoYXJBdCgwKSYmWnQucHVzaCh0ci5zbGljZSgzKS5y'@; put 'ZXBsYWNlKC87Oy9nLCI7IikpO2JyZWFrO2Nhc2UiQyI6dmFyIHhpPSExLExpPSExLFFyPSExLHVyPSExLEFuPS0xLHZyPS0xO2ZvcihrdD0xO2t0PFpuLmxlbmd0aDsrK2t0KXN3aXRjaChabltrdF0uY2hhckF0KDApKXtjYXNlIkEiOmNhc2UiRyI6YnJlYWs7Y2FzZSJYIjpidD1wYXJzZUlu'@; put 'dChabltrdF0uc2xpY2UoMSkpLTEsTGk9ITA7YnJlYWs7Y2FzZSJZIjpmb3IoY3Q9cGFyc2VJbnQoWm5ba3RdLnNsaWNlKDEpKS0xLExpfHwoYnQ9MCksZXI9VHQubGVuZ3RoO2VyPD1jdDsrK2VyKVR0W2VyXT1bXTticmVhaztjYXNlIksiOiciJz09PShzaT1abltrdF0uc2xpY2UoMSkpLmNo'@; put 'YXJBdCgwKT9zaT1zaS5zbGljZSgxLHNpLmxlbmd0aC0xKToiVFJVRSI9PT1zaT9zaT0hMDoiRkFMU0UiPT09c2k/c2k9ITE6aXNOYU4oV24oc2kpKT9pc05hTihlbihzaSkuZ2V0RGF0ZSgpKXx8KHNpPUh0KHNpKSk6KHNpPVduKHNpKSxudWxsIT09cG4mJncuaXNfZGF0ZShwbikmJihzaT1o'@; put 'dChzaSkpKSx0eXBlb2YgY3B0YWJsZTwidSImJiJzdHJpbmciPT10eXBlb2Ygc2kmJiJzdHJpbmciIT0oZHR8fHt9KS50eXBlJiYoZHR8fHt9KS5jb2RlcGFnZSYmKHNpPWNwdGFibGUudXRpbHMuZGVjb2RlKGR0LmNvZGVwYWdlLHNpKSkseGk9ITA7YnJlYWs7Y2FzZSJFIjp1cj0hMDt2YXIg'@; put 'cnI9YWYoWm5ba3RdLnNsaWNlKDEpLHtyOmN0LGM6YnR9KTtUdFtjdF1bYnRdPVtUdFtjdF1bYnRdLHJyXTticmVhaztjYXNlIlMiOlFyPSEwLFR0W2N0XVtidF09W1R0W2N0XVtidF0sIlM1UyJdO2JyZWFrO2Nhc2UiUiI6QW49cGFyc2VJbnQoWm5ba3RdLnNsaWNlKDEpKS0xO2JyZWFrO2Nh'@; put 'c2UiQyI6dnI9cGFyc2VJbnQoWm5ba3RdLnNsaWNlKDEpKS0xO2JyZWFrO2RlZmF1bHQ6aWYoZHQmJmR0LldURil0aHJvdyBuZXcgRXJyb3IoIlNZTEsgYmFkIHJlY29yZCAiK3RyKX1pZih4aSYmKFR0W2N0XVtidF0mJjI9PVR0W2N0XVtidF0ubGVuZ3RoP1R0W2N0XVtidF1bMF09c2k6VHRb'@; put 'Y3RdW2J0XT1zaSxwbj1udWxsKSxRcil7aWYodXIpdGhyb3cgbmV3IEVycm9yKCJTWUxLIHNoYXJlZCBmb3JtdWxhIGNhbm5vdCBoYXZlIG93biBmb3JtdWxhIik7dmFyIFNuPUFuPi0xJiZUdFtBbl1bdnJdO2lmKCFTbnx8IVNuWzFdKXRocm93IG5ldyBFcnJvcigiU1lMSyBzaGFyZWQgZm9y'@; put 'bXVsYSBjYW5ub3QgZmluZCBiYXNlIik7VHRbY3RdW2J0XVsxXT1qQyhTblsxXSx7cjpjdC1BbixjOmJ0LXZyfSl9YnJlYWs7Y2FzZSJGIjp2YXIgbXI9MDtmb3Ioa3Q9MTtrdDxabi5sZW5ndGg7KytrdClzd2l0Y2goWm5ba3RdLmNoYXJBdCgwKSl7Y2FzZSJYIjpidD1wYXJzZUludChabltr'@; put 'dF0uc2xpY2UoMSkpLTEsKyttcjticmVhaztjYXNlIlkiOmZvcihjdD1wYXJzZUludChabltrdF0uc2xpY2UoMSkpLTEsZXI9VHQubGVuZ3RoO2VyPD1jdDsrK2VyKVR0W2VyXT1bXTticmVhaztjYXNlIk0iOmtuPXBhcnNlSW50KFpuW2t0XS5zbGljZSgxKSkvMjA7YnJlYWs7Y2FzZSJGIjpj'@; put 'YXNlIkciOmNhc2UiUyI6Y2FzZSJEIjpjYXNlIk4iOmJyZWFrO2Nhc2UiUCI6cG49WnRbcGFyc2VJbnQoWm5ba3RdLnNsaWNlKDEpKV07YnJlYWs7Y2FzZSJXIjpmb3Ioem49Wm5ba3RdLnNsaWNlKDEpLnNwbGl0KCIgIiksZXI9cGFyc2VJbnQoem5bMF0sMTApO2VyPD1wYXJzZUludCh6blsx'@; put 'XSwxMCk7Kytlcilrbj1wYXJzZUludCh6blsyXSwxMCkscW5bZXItMV09MD09PWtuP3toaWRkZW46ITB9Ont3Y2g6a259LHB1KHFuW2VyLTFdKTticmVhaztjYXNlIkMiOnFuW2J0PXBhcnNlSW50KFpuW2t0XS5zbGljZSgxKSktMV18fChxbltidF09e30pO2JyZWFrO2Nhc2UiUiI6dW5bY3Q9'@; put 'cGFyc2VJbnQoWm5ba3RdLnNsaWNlKDEpKS0xXXx8KHVuW2N0XT17fSksa24+MD8odW5bY3RdLmhwdD1rbix1bltjdF0uaHB4PVUxKGtuKSk6MD09PWtuJiYodW5bY3RdLmhpZGRlbj0hMCk7YnJlYWs7ZGVmYXVsdDppZihkdCYmZHQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVj'@; put 'b3JkICIrdHIpfW1yPDEmJihwbj1udWxsKTticmVhaztkZWZhdWx0OmlmKGR0JiZkdC5XVEYpdGhyb3cgbmV3IEVycm9yKCJTWUxLIGJhZCByZWNvcmQgIit0cil9fXJldHVybiB1bi5sZW5ndGg+MCYmKEtuWyIhcm93cyJdPXVuKSxxbi5sZW5ndGg+MCYmKEtuWyIhY29scyJdPXFuKSxkdCYm'@; put 'ZHQuc2hlZXRSb3dzJiYoVHQ9VHQuc2xpY2UoMCxkdC5zaGVldFJvd3MpKSxbVHQsS25dfWZ1bmN0aW9uIF9lKG50LGR0KXt2YXIgQ3Q9ZnVuY3Rpb24gcmUobnQsZHQpe3N3aXRjaChkdC50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIGdlKHNlLmRlY29kZShudCksZHQpO2Nhc2UiYmluYXJ5'@; put 'IjpyZXR1cm4gZ2UobnQsZHQpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gZ2UobnQudG9TdHJpbmcoImJpbmFyeSIpLGR0KTtjYXNlImFycmF5IjpyZXR1cm4gZ2UoUHQobnQpLGR0KX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrZHQudHlwZSl9KG50LGR0KSxidD1DdFsxXSxG'@; put 'dD1rMShDdFswXSxkdCk7cmV0dXJuIGx0KGJ0KS5mb3JFYWNoKGZ1bmN0aW9uKGt0KXtGdFtrdF09YnRba3RdfSksRnR9ZnVuY3Rpb24gU2UobnQsZHQsQ3QsY3Qpe3ZhciBidD0iQztZIisoQ3QrMSkrIjtYIisoY3QrMSkrIjtLIjtzd2l0Y2gobnQudCl7Y2FzZSJuIjpidCs9bnQudnx8MCxu'@; put 'dC5mJiYhbnQuRiYmKGJ0Kz0iO0UiK0s5KG50LmYse3I6Q3QsYzpjdH0pKTticmVhaztjYXNlImIiOmJ0Kz1udC52PyJUUlVFIjoiRkFMU0UiO2JyZWFrO2Nhc2UiZSI6YnQrPW50Lnd8fG50LnY7YnJlYWs7Y2FzZSJkIjpidCs9JyInKyhudC53fHxudC52KSsnIic7YnJlYWs7Y2FzZSJzIjpi'@; put 'dCs9JyInK250LnYucmVwbGFjZSgvIi9nLCIiKSsnIid9cmV0dXJuIGJ0fXJldHVybiB5WyJ8Il09MjU0LHt0b193b3JrYm9vazpmdW5jdGlvbiB2ZShudCxkdCl7cmV0dXJuIEVkKF9lKG50LGR0KSxkdCl9LHRvX3NoZWV0Ol9lLGZyb21fc2hlZXQ6ZnVuY3Rpb24gR2UobnQsZHQpe3ZhciBG'@; put 'dCxDdD1bIklEO1BTaGVldEpTO047RSJdLGN0PVtdLGJ0PU9pKG50WyIhcmVmIl0pLGt0PUFycmF5LmlzQXJyYXkobnQpLFR0PSJcclxuIjtDdC5wdXNoKCJQO1BHZW5lcmFsIiksQ3QucHVzaCgiRjtQMDtERzBHODtNMjU1IiksbnRbIiFjb2xzIl0mJmZ1bmN0aW9uIEhlKG50LGR0KXtkdC5m'@; put 'b3JFYWNoKGZ1bmN0aW9uKEN0LGN0KXt2YXIgYnQ9IkY7VyIrKGN0KzEpKyIgIisoY3QrMSkrIiAiO0N0LmhpZGRlbj9idCs9IjAiOigibnVtYmVyIj09dHlwZW9mIEN0LndpZHRoJiYhQ3Qud3B4JiYoQ3Qud3B4PXhjKEN0LndpZHRoKSksIm51bWJlciI9PXR5cGVvZiBDdC53cHgmJiFDdC53'@; put 'Y2gmJihDdC53Y2g9dGYoQ3Qud3B4KSksIm51bWJlciI9PXR5cGVvZiBDdC53Y2gmJihidCs9TWF0aC5yb3VuZChDdC53Y2gpKSksIiAiIT1idC5jaGFyQXQoYnQubGVuZ3RoLTEpJiZudC5wdXNoKGJ0KX0pfShDdCxudFsiIWNvbHMiXSksbnRbIiFyb3dzIl0mJmZ1bmN0aW9uIEJlKG50LGR0'@; put 'KXtkdC5mb3JFYWNoKGZ1bmN0aW9uKEN0LGN0KXt2YXIgYnQ9IkY7IjtDdC5oaWRkZW4/YnQrPSJNMDsiOkN0LmhwdD9idCs9Ik0iKzIwKkN0LmhwdCsiOyI6Q3QuaHB4JiYoYnQrPSJNIisyMCpqMihDdC5ocHgpKyI7IiksYnQubGVuZ3RoPjImJm50LnB1c2goYnQrIlIiKyhjdCsxKSl9KX0o'@; put 'Q3QsbnRbIiFyb3dzIl0pLEN0LnB1c2goIkI7WSIrKGJ0LmUuci1idC5zLnIrMSkrIjtYIisoYnQuZS5jLWJ0LnMuYysxKSsiO0QiK1tidC5zLmMsYnQucy5yLGJ0LmUuYyxidC5lLnJdLmpvaW4oIiAiKSk7Zm9yKHZhciBadD1idC5zLnI7WnQ8PWJ0LmUucjsrK1p0KWZvcih2YXIgcG49YnQu'@; put 'cy5jO3BuPD1idC5lLmM7Kytwbil7dmFyIEtuPWRpKHtyOlp0LGM6cG59KTsoRnQ9a3Q/KG50W1p0XXx8W10pW3BuXTpudFtLbl0pJiYobnVsbCE9RnQudnx8RnQuZiYmIUZ0LkYpJiZjdC5wdXNoKFNlKEZ0LDAsWnQscG4pKX1yZXR1cm4gQ3Quam9pbihUdCkrVHQrY3Quam9pbihUdCkrVHQr'@; put 'IkUiK1R0fX19KCksTTM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBQKGdlLF9lKXtmb3IodmFyIHZlPWdlLnNwbGl0KCJcbiIpLFNlPS0xLEhlPS0xLEJlPTAsR2U9W107QmUhPT12ZS5sZW5ndGg7KytCZSlpZigiQk9UIiE9PXZlW0JlXS50cmltKCkpe2lmKCEoU2U8MCkpe2Zvcih2YXIgbnQ9dmVb'@; put 'QmVdLnRyaW0oKS5zcGxpdCgiLCIpLGR0PW50WzBdLEN0PW50WzFdLGN0PXZlWysrQmVdfHwiIjsxJihjdC5tYXRjaCgvWyJdL2cpfHxbXSkubGVuZ3RoJiZCZTx2ZS5sZW5ndGgtMTspY3QrPSJcbiIrdmVbKytCZV07c3dpdGNoKGN0PWN0LnRyaW0oKSwrZHQpe2Nhc2UtMTppZigiQk9UIj09'@; put 'PWN0KXtHZVsrK1NlXT1bXSxIZT0wO2NvbnRpbnVlfWlmKCJFT0QiIT09Y3QpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgRElGIHNwZWNpYWwgY29tbWFuZCAiK2N0KTticmVhaztjYXNlIDA6R2VbU2VdW0hlXT0iVFJVRSI9PT1jdHx8IkZBTFNFIiE9PWN0JiYoaXNOYU4oV24oQ3Qp'@; put 'KT9pc05hTihlbihDdCkuZ2V0RGF0ZSgpKT9DdDpIdChDdCk6V24oQ3QpKSwrK0hlO2JyZWFrO2Nhc2UgMTooY3Q9KGN0PWN0LnNsaWNlKDEsY3QubGVuZ3RoLTEpKS5yZXBsYWNlKC8iIi9nLCciJykpJiZjdC5tYXRjaCgvXj0iLioiJC8pJiYoY3Q9Y3Quc2xpY2UoMiwtMSkpLEdlW1NlXVtI'@; put 'ZSsrXT0iIiE9PWN0P2N0Om51bGx9aWYoIkVPRCI9PT1jdClicmVha319ZWxzZSBHZVsrK1NlXT1bXSxIZT0wO3JldHVybiBfZSYmX2Uuc2hlZXRSb3dzJiYoR2U9R2Uuc2xpY2UoMCxfZS5zaGVldFJvd3MpKSxHZX1mdW5jdGlvbiBMKGdlLF9lKXtyZXR1cm4gazEoZnVuY3Rpb24geShnZSxf'@; put 'ZSl7c3dpdGNoKF9lLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gUChzZS5kZWNvZGUoZ2UpLF9lKTtjYXNlImJpbmFyeSI6cmV0dXJuIFAoZ2UsX2UpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gUChnZS50b1N0cmluZygiYmluYXJ5IiksX2UpO2Nhc2UiYXJyYXkiOnJldHVybiBQKFB0KGdlKSxf'@; put 'ZSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK19lLnR5cGUpfShnZSxfZSksX2UpfXZhciBnZSxfZTtyZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gUShnZSxfZSl7cmV0dXJuIEVkKEwoZ2UsX2UpLF9lKX0sdG9fc2hlZXQ6TCxmcm9tX3NoZWV0OihnZT1mdW5jdGlv'@; put 'bihTZSxIZSxCZSxHZSxudCl7U2UucHVzaChIZSksU2UucHVzaChCZSsiLCIrR2UpLFNlLnB1c2goJyInK250LnJlcGxhY2UoLyIvZywnIiInKSsnIicpfSxfZT1mdW5jdGlvbihTZSxIZSxCZSxHZSl7U2UucHVzaChIZSsiLCIrQmUpLFNlLnB1c2goMT09SGU/JyInK0dlLnJlcGxhY2UoLyIv'@; put 'ZywnIiInKSsnIic6R2UpfSxmdW5jdGlvbihTZSl7dmFyIEdlLEhlPVtdLEJlPU9pKFNlWyIhcmVmIl0pLG50PUFycmF5LmlzQXJyYXkoU2UpO2dlKEhlLCJUQUJMRSIsMCwxLCJzaGVldGpzIiksZ2UoSGUsIlZFQ1RPUlMiLDAsQmUuZS5yLUJlLnMucisxLCIiKSxnZShIZSwiVFVQTEVTIiww'@; put 'LEJlLmUuYy1CZS5zLmMrMSwiIiksZ2UoSGUsIkRBVEEiLDAsMCwiIik7Zm9yKHZhciBkdD1CZS5zLnI7ZHQ8PUJlLmUucjsrK2R0KXtfZShIZSwtMSwwLCJCT1QiKTtmb3IodmFyIEN0PUJlLnMuYztDdDw9QmUuZS5jOysrQ3Qpe3ZhciBjdD1kaSh7cjpkdCxjOkN0fSk7aWYoR2U9bnQ/KFNl'@; put 'W2R0XXx8W10pW0N0XTpTZVtjdF0pc3dpdGNoKEdlLnQpe2Nhc2UibiI6dmFyIGJ0PUdlLnc7IWJ0JiZudWxsIT1HZS52JiYoYnQ9R2UudiksbnVsbD09YnQ/X2UoSGUsMSwwLEdlLmYmJiFHZS5GPyI9IitHZS5mOiIiKTpfZShIZSwwLGJ0LCJWIik7YnJlYWs7Y2FzZSJiIjpfZShIZSwwLEdl'@; put 'LnY/MTowLEdlLnY/IlRSVUUiOiJGQUxTRSIpO2JyZWFrO2Nhc2UicyI6X2UoSGUsMSwwLGlzTmFOKEdlLnYpP0dlLnY6Jz0iJytHZS52KyciJyk7YnJlYWs7Y2FzZSJkIjpHZS53fHwoR2Uudz13LmZvcm1hdChHZS56fHx3Ll90YWJsZVsxNF0sVWUoSHQoR2UudikpKSksX2UoSGUsMCxHZS53'@; put 'LCJWIik7YnJlYWs7ZGVmYXVsdDpfZShIZSwxLDAsIiIpfWVsc2UgX2UoSGUsMSwwLCIiKX19cmV0dXJuIF9lKEhlLC0xLDAsIkVPRCIpLEhlLmpvaW4oIlxyXG4iKX0pfX0oKSxPND1mdW5jdGlvbigpe2Z1bmN0aW9uIHkoR2Upe3JldHVybiBHZS5yZXBsYWNlKC9cXGIvZywiXFwiKS5yZXBs'@; put 'YWNlKC9cXGMvZywiOiIpLnJlcGxhY2UoL1xcbi9nLCJcbiIpfWZ1bmN0aW9uIFAoR2Upe3JldHVybiBHZS5yZXBsYWNlKC9cXC9nLCJcXGIiKS5yZXBsYWNlKC86L2csIlxcYyIpLnJlcGxhY2UoL1xuL2csIlxcbiIpfWZ1bmN0aW9uIFEoR2UsbnQpe3JldHVybiBrMShmdW5jdGlvbiBMKEdl'@; put 'LG50KXtmb3IodmFyIGR0PUdlLnNwbGl0KCJcbiIpLEN0PS0xLGN0PS0xLGJ0PTAsRnQ9W107YnQhPT1kdC5sZW5ndGg7KytidCl7dmFyIGt0PWR0W2J0XS50cmltKCkuc3BsaXQoIjoiKTtpZigiY2VsbCI9PT1rdFswXSl7dmFyIFR0PXNzKGt0WzFdKTtpZihGdC5sZW5ndGg8PVR0LnIpZm9y'@; put 'KEN0PUZ0Lmxlbmd0aDtDdDw9VHQucjsrK0N0KUZ0W0N0XXx8KEZ0W0N0XT1bXSk7c3dpdGNoKEN0PVR0LnIsY3Q9VHQuYyxrdFsyXSl7Y2FzZSJ0IjpGdFtDdF1bY3RdPXkoa3RbM10pO2JyZWFrO2Nhc2UidiI6RnRbQ3RdW2N0XT0ra3RbM107YnJlYWs7Y2FzZSJ2dGYiOnZhciBadD1rdFtr'@; put 'dC5sZW5ndGgtMV07Y2FzZSJ2dGMiOkZ0W0N0XVtjdF09Im5sIj09PWt0WzNdPyEhK2t0WzRdOitrdFs0XSwidnRmIj09a3RbMl0mJihGdFtDdF1bY3RdPVtGdFtDdF1bY3RdLFp0XSl9fX1yZXR1cm4gbnQmJm50LnNoZWV0Um93cyYmKEZ0PUZ0LnNsaWNlKDAsbnQuc2hlZXRSb3dzKSksRnR9'@; put 'KEdlLG50KSxudCl9dmFyIGdlPVsic29jaWFsY2FsYzp2ZXJzaW9uOjEuNSIsIk1JTUUtVmVyc2lvbjogMS4wIiwiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PVNvY2lhbENhbGNTcHJlYWRzaGVldENvbnRyb2xTYXZlIl0uam9pbigiXG4iKSxfZT1bIi0tU29jaWFs'@; put 'Q2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUiLCJDb250ZW50LXR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiXS5qb2luKCJcbiIpKyJcbiIsdmU9WyIjIFNvY2lhbENhbGMgU3ByZWFkc2hlZXQgQ29udHJvbCBTYXZlIiwicGFydDpzaGVldCJdLmpvaW4oIlxuIiksU2U9Ii0tU29j'@; put 'aWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUtLSI7ZnVuY3Rpb24gSGUoR2Upe2lmKCFHZXx8IUdlWyIhcmVmIl0pcmV0dXJuIiI7Zm9yKHZhciBDdCxudD1bXSxkdD1bXSxjdD0iIixidD1XcyhHZVsiIXJlZiJdKSxGdD1BcnJheS5pc0FycmF5KEdlKSxrdD1idC5zLnI7a3Q8PWJ0LmUu'@; put 'cjsrK2t0KWZvcih2YXIgVHQ9YnQucy5jO1R0PD1idC5lLmM7KytUdClpZihjdD1kaSh7cjprdCxjOlR0fSksKEN0PUZ0PyhHZVtrdF18fFtdKVtUdF06R2VbY3RdKSYmbnVsbCE9Q3QudiYmInoiIT09Q3QudCl7c3dpdGNoKGR0PVsiY2VsbCIsY3QsInQiXSxDdC50KXtjYXNlInMiOmNhc2Ui'@; put 'c3RyIjpkdC5wdXNoKFAoQ3QudikpO2JyZWFrO2Nhc2UibiI6Q3QuZj8oZHRbMl09InZ0ZiIsZHRbM109Im4iLGR0WzRdPUN0LnYsZHRbNV09UChDdC5mKSk6KGR0WzJdPSJ2IixkdFszXT1DdC52KTticmVhaztjYXNlImIiOmR0WzJdPSJ2dCIrKEN0LmY/ImYiOiJjIiksZHRbM109Im5sIixk'@; put 'dFs0XT1DdC52PyIxIjoiMCIsZHRbNV09UChDdC5mfHwoQ3Qudj8iVFJVRSI6IkZBTFNFIikpO2JyZWFrO2Nhc2UiZCI6dmFyIFp0PVVlKEh0KEN0LnYpKTtkdFsyXT0idnRjIixkdFszXT0ibmQiLGR0WzRdPSIiK1p0LGR0WzVdPUN0Lnd8fHcuZm9ybWF0KEN0Lnp8fHcuX3RhYmxlWzE0XSxa'@; put 'dCk7YnJlYWs7Y2FzZSJlIjpjb250aW51ZX1udC5wdXNoKGR0LmpvaW4oIjoiKSl9cmV0dXJuIG50LnB1c2goInNoZWV0OmM6IisoYnQuZS5jLWJ0LnMuYysxKSsiOnI6IisoYnQuZS5yLWJ0LnMucisxKSsiOnR2ZjoxIiksbnQucHVzaCgidmFsdWVmb3JtYXQ6MTp0ZXh0LXdpa2kiKSxudC5q'@; put 'b2luKCJcbiIpfXJldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiByZShHZSxudCl7cmV0dXJuIEVkKFEoR2UsbnQpLG50KX0sdG9fc2hlZXQ6USxmcm9tX3NoZWV0OmZ1bmN0aW9uIEJlKEdlKXtyZXR1cm5bZ2UsX2UsdmUsX2UsSGUoR2UpLFNlXS5qb2luKCJcbiIpfX19KCksQjE9ZnVuY3Rp'@; put 'b24oKXtmdW5jdGlvbiB5KEJlLEdlLG50LGR0LEN0KXtDdC5yYXc/R2VbbnRdW2R0XT1CZToiIj09PUJlfHwoR2VbbnRdW2R0XT0kbihCZSxDdCk/JG4oQmUsQ3QpLnY6QmUpfXZhciBMPXs0NDoiLCIsOToiXHQiLDU5OiI7In0sUT17NDQ6Myw5OjIsNTk6MX07ZnVuY3Rpb24gcmUoQmUpe2Zv'@; put 'cih2YXIgR2U9e30sbnQ9ITEsZHQ9MCxDdD0wO2R0PEJlLmxlbmd0aDsrK2R0KTM0PT0oQ3Q9QmUuY2hhckNvZGVBdChkdCkpP250PSFudDohbnQmJkN0IGluIEwmJihHZVtDdF09KEdlW0N0XXx8MCkrMSk7Zm9yKGR0IGluIEN0PVtdLEdlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVy'@; put 'dHkuY2FsbChHZSxkdCkmJkN0LnB1c2goW0dlW2R0XSxkdF0pO2lmKCFDdC5sZW5ndGgpZm9yKGR0IGluIEdlPVEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEdlLGR0KSYmQ3QucHVzaChbR2VbZHRdLGR0XSk7cmV0dXJuIEN0LnNvcnQoZnVuY3Rpb24oY3QsYnQpe3Jl'@; put 'dHVybiBjdFswXS1idFswXXx8UVtjdFsxXV0tUVtidFsxXV19KSxMW0N0LnBvcCgpWzFdXX1mdW5jdGlvbiBfZShCZSxHZSl7cmV0dXJuIUdlfHwhR2UuUFJOfHwic2VwPSI9PUJlLnNsaWNlKDAsNCl8fEJlLmluZGV4T2YoIlx0Iik+PTB8fEJlLmluZGV4T2YoIiwiKT49MHx8QmUuaW5kZXhP'@; put 'ZigiOyIpPj0wP2Z1bmN0aW9uIGdlKEJlLEdlKXt2YXIgbnQ9R2V8fHt9LGR0PSIiO251bGwhPXRlJiZudWxsPT1udC5kZW5zZSYmKG50LmRlbnNlPXRlKTt2YXIgQ3Q9bnQuZGVuc2U/W106e30sY3Q9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fTsic2VwPSI9PUJlLnNsaWNlKDAsNCk/MTM9'@; put 'PUJlLmNoYXJDb2RlQXQoNSkmJjEwPT1CZS5jaGFyQ29kZUF0KDYpPyhkdD1CZS5jaGFyQXQoNCksQmU9QmUuc2xpY2UoNykpOjEzPT1CZS5jaGFyQ29kZUF0KDUpfHwxMD09QmUuY2hhckNvZGVBdCg1KT8oZHQ9QmUuY2hhckF0KDQpLEJlPUJlLnNsaWNlKDYpKTpkdD1yZShCZS5zbGljZSgw'@; put 'LDEwMjQpKTpkdD1yZShCZS5zbGljZSgwLDEwMjQpKTt2YXIgYnQ9MCxGdD0wLGt0PTAsVHQ9MCxadD0wLHBuPWR0LmNoYXJDb2RlQXQoMCksS249ITEsdW49MCxxbj1CZS5jaGFyQ29kZUF0KDApO0JlPUJlLnJlcGxhY2UoL1xyXG4vZ20sIlxuIik7dmFyIHpuPW51bGwhPW50LmRhdGVORj9m'@; put 'dW5jdGlvbiB4ZSh5KXt2YXIgUD0ibnVtYmVyIj09dHlwZW9mIHk/dy5fdGFibGVbeV06eTtyZXR1cm4gUD1QLnJlcGxhY2UoZmUsIihcXGQrKSIpLG5ldyBSZWdFeHAoIl4iK1ArIiQiKX0obnQuZGF0ZU5GKTpudWxsO2Z1bmN0aW9uIGtuKCl7dmFyIGVyPUJlLnNsaWNlKFR0LFp0KSx0cj17'@; put 'fTtpZignIic9PWVyLmNoYXJBdCgwKSYmJyInPT1lci5jaGFyQXQoZXIubGVuZ3RoLTEpJiYoZXI9ZXIuc2xpY2UoMSwtMSkucmVwbGFjZSgvIiIvZywnIicpKSwwPT09ZXIubGVuZ3RoKXRyLnQ9InoiO2Vsc2UgaWYobnQucmF3KXRyLnQ9InMiLHRyLnY9ZXI7ZWxzZSBpZigwPT09ZXIudHJp'@; put 'bSgpLmxlbmd0aCl0ci50PSJzIix0ci52PWVyO2Vsc2UgaWYoNjE9PWVyLmNoYXJDb2RlQXQoMCkpMzQ9PWVyLmNoYXJDb2RlQXQoMSkmJjM0PT1lci5jaGFyQ29kZUF0KGVyLmxlbmd0aC0xKT8odHIudD0icyIsdHIudj1lci5zbGljZSgyLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpOmZ1bmN0'@; put 'aW9uIFg5KHkpe3JldHVybiAxIT15Lmxlbmd0aH0oZXIpPyh0ci50PSJuIix0ci5mPWVyLnNsaWNlKDEpKToodHIudD0icyIsdHIudj1lcik7ZWxzZSBpZigiVFJVRSI9PWVyKXRyLnQ9ImIiLHRyLnY9ITA7ZWxzZSBpZigiRkFMU0UiPT1lcil0ci50PSJiIix0ci52PSExO2Vsc2UgaWYoaXNO'@; put 'YU4oa3Q9V24oZXIpKSlpZighaXNOYU4oZW4oZXIpLmdldERhdGUoKSl8fHpuJiZlci5tYXRjaCh6bikpe3RyLno9bnQuZGF0ZU5GfHx3Ll90YWJsZVsxNF07dmFyIFpuPTA7em4mJmVyLm1hdGNoKHpuKSYmKGVyPWZ1bmN0aW9uIExlKHksUCxMKXt2YXIgUT0tMSxyZT0tMSxnZT0tMSxfZT0t'@; put 'MSx2ZT0tMSxTZT0tMTsoUC5tYXRjaChmZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEdlLG50KXt2YXIgZHQ9cGFyc2VJbnQoTFtudCsxXSwxMCk7c3dpdGNoKEdlLnRvTG93ZXJDYXNlKCkuY2hhckF0KDApKXtjYXNlInkiOlE9ZHQ7YnJlYWs7Y2FzZSJkIjpnZT1kdDticmVhaztjYXNlImgi'@; put 'Ol9lPWR0O2JyZWFrO2Nhc2UicyI6U2U9ZHQ7YnJlYWs7Y2FzZSJtIjpfZT49MD92ZT1kdDpyZT1kdH19KSxTZT49MCYmLTE9PXZlJiZyZT49MCYmKHZlPXJlLHJlPS0xKTt2YXIgSGU9KCIiKyhRPj0wP1E6KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpKSkuc2xpY2UoLTQpKyItIisoIjAwIiso'@; put 'cmU+PTE/cmU6MSkpLnNsaWNlKC0yKSsiLSIrKCIwMCIrKGdlPj0xP2dlOjEpKS5zbGljZSgtMik7Nz09SGUubGVuZ3RoJiYoSGU9IjAiK0hlKSw4PT1IZS5sZW5ndGgmJihIZT0iMjAiK0hlKTt2YXIgQmU9KCIwMCIrKF9lPj0wP19lOjApKS5zbGljZSgtMikrIjoiKygiMDAiKyh2ZT49MD92'@; put 'ZTowKSkuc2xpY2UoLTIpKyI6IisoIjAwIisoU2U+PTA/U2U6MCkpLnNsaWNlKC0yKTtyZXR1cm4tMT09X2UmJi0xPT12ZSYmLTE9PVNlP0hlOi0xPT1RJiYtMT09cmUmJi0xPT1nZT9CZTpIZSsiVCIrQmV9KDAsbnQuZGF0ZU5GLGVyLm1hdGNoKHpuKXx8W10pLFpuPTEpLG50LmNlbGxEYXRl'@; put 'cz8odHIudD0iZCIsdHIudj1IdChlcixabikpOih0ci50PSJuIix0ci52PVVlKEh0KGVyLFpuKSkpLCExIT09bnQuY2VsbFRleHQmJih0ci53PXcuZm9ybWF0KHRyLnosdHIudiBpbnN0YW5jZW9mIERhdGU/VWUodHIudik6dHIudikpLG50LmNlbGxORnx8ZGVsZXRlIHRyLnp9ZWxzZSB0ci50'@; put 'PSJzIix0ci52PWVyO2Vsc2UgdHIudD0ibiIsITEhPT1udC5jZWxsVGV4dCYmKHRyLnc9ZXIpLHRyLnY9a3Q7aWYoInoiPT10ci50fHwobnQuZGVuc2U/KEN0W2J0XXx8KEN0W2J0XT1bXSksQ3RbYnRdW0Z0XT10cik6Q3RbZGkoe2M6RnQscjpidH0pXT10cikscW49QmUuY2hhckNvZGVBdChU'@; put 'dD1adCsxKSxjdC5lLmM8RnQmJihjdC5lLmM9RnQpLGN0LmUucjxidCYmKGN0LmUucj1idCksdW49PXBuKSsrRnQ7ZWxzZSBpZihGdD0wLCsrYnQsbnQuc2hlZXRSb3dzJiZudC5zaGVldFJvd3M8PWJ0KXJldHVybiEwfWU6Zm9yKDtadDxCZS5sZW5ndGg7KytadClzd2l0Y2godW49QmUuY2hh'@; put 'ckNvZGVBdChadCkpe2Nhc2UgMzQ6MzQ9PT1xbiYmKEtuPSFLbik7YnJlYWs7Y2FzZSBwbjpjYXNlIDEwOmNhc2UgMTM6aWYoIUtuJiZrbigpKWJyZWFrIGV9cmV0dXJuIFp0LVR0PjAmJmtuKCksQ3RbIiFyZWYiXT1PbyhjdCksQ3R9KEJlLEdlKTprMShmdW5jdGlvbiBQKEJlLEdlKXt2YXIg'@; put 'bnQ9R2V8fHt9LGR0PVtdO2lmKCFCZXx8MD09PUJlLmxlbmd0aClyZXR1cm4gZHQ7Zm9yKHZhciBDdD1CZS5zcGxpdCgvW1xyXG5dLyksY3Q9Q3QubGVuZ3RoLTE7Y3Q+PTAmJjA9PT1DdFtjdF0ubGVuZ3RoOyktLWN0O2Zvcih2YXIgYnQ9MTAsRnQ9MCxrdD0wO2t0PD1jdDsrK2t0KS0xPT0o'@; put 'RnQ9Q3Rba3RdLmluZGV4T2YoIiAiKSk/RnQ9Q3Rba3RdLmxlbmd0aDpGdCsrLGJ0PU1hdGgubWF4KGJ0LEZ0KTtmb3Ioa3Q9MDtrdDw9Y3Q7KytrdCl7ZHRba3RdPVtdO3ZhciBUdD0wO2Zvcih5KEN0W2t0XS5zbGljZSgwLGJ0KS50cmltKCksZHQsa3QsVHQsbnQpLFR0PTE7VHQ8PShDdFtr'@; put 'dF0ubGVuZ3RoLWJ0KS8xMCsxOysrVHQpeShDdFtrdF0uc2xpY2UoYnQrMTAqKFR0LTEpLGJ0KzEwKlR0KS50cmltKCksZHQsa3QsVHQsbnQpfXJldHVybiBudC5zaGVldFJvd3MmJihkdD1kdC5zbGljZSgwLG50LnNoZWV0Um93cykpLGR0fShCZSxHZSksR2UpfWZ1bmN0aW9uIHZlKEJlLEdl'@; put 'KXt2YXIgbnQ9IiIsZHQ9InN0cmluZyI9PUdlLnR5cGU/WzAsMCwwLDBdOmZfKEJlLEdlKTtzd2l0Y2goR2UudHlwZSl7Y2FzZSJiYXNlNjQiOm50PXNlLmRlY29kZShCZSk7YnJlYWs7Y2FzZSJiaW5hcnkiOmNhc2Uic3RyaW5nIjpudD1CZTticmVhaztjYXNlImJ1ZmZlciI6bnQ9NjUwMDE9'@; put 'PUdlLmNvZGVwYWdlP0JlLnRvU3RyaW5nKCJ1dGY4Iik6R2UuY29kZXBhZ2UmJnR5cGVvZiBjcHRhYmxlPCJ1Ij9jcHRhYmxlLnV0aWxzLmRlY29kZShHZS5jb2RlcGFnZSxCZSk6QmUudG9TdHJpbmcoImJpbmFyeSIpO2JyZWFrO2Nhc2UiYXJyYXkiOm50PVB0KEJlKTticmVhaztkZWZhdWx0'@; put 'OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitHZS50eXBlKX1yZXR1cm4gMjM5PT1kdFswXSYmMTg3PT1kdFsxXSYmMTkxPT1kdFsyXT9udD1QaShudC5zbGljZSgzKSk6ImJpbmFyeSI9PUdlLnR5cGUmJnR5cGVvZiBjcHRhYmxlPCJ1IiYmR2UuY29kZXBhZ2UmJihudD1j'@; put 'cHRhYmxlLnV0aWxzLmRlY29kZShHZS5jb2RlcGFnZSxjcHRhYmxlLnV0aWxzLmVuY29kZSgyODU5MSxudCkpKSwic29jaWFsY2FsYzp2ZXJzaW9uOiI9PW50LnNsaWNlKDAsMTkpP080LnRvX3NoZWV0KCJzdHJpbmciPT1HZS50eXBlP250OlBpKG50KSxHZSk6X2UobnQsR2UpfXJldHVybnt0'@; put 'b193b3JrYm9vazpmdW5jdGlvbiBTZShCZSxHZSl7cmV0dXJuIEVkKHZlKEJlLEdlKSxHZSl9LHRvX3NoZWV0OnZlLGZyb21fc2hlZXQ6ZnVuY3Rpb24gSGUoQmUpe2Zvcih2YXIgZHQsR2U9W10sbnQ9T2koQmVbIiFyZWYiXSksQ3Q9QXJyYXkuaXNBcnJheShCZSksY3Q9bnQucy5yO2N0PD1u'@; put 'dC5lLnI7KytjdCl7Zm9yKHZhciBidD1bXSxGdD1udC5zLmM7RnQ8PW50LmUuYzsrK0Z0KXt2YXIga3Q9ZGkoe3I6Y3QsYzpGdH0pO2lmKChkdD1DdD8oQmVbY3RdfHxbXSlbRnRdOkJlW2t0XSkmJm51bGwhPWR0LnYpe2Zvcih2YXIgVHQ9KGR0Lnd8fChjdShkdCksZHQudyl8fCIiKS5zbGlj'@; put 'ZSgwLDEwKTtUdC5sZW5ndGg8MTA7KVR0Kz0iICI7YnQucHVzaChUdCsoMD09PUZ0PyIgIjoiIikpfWVsc2UgYnQucHVzaCgiICAgICAgICAgICIpfUdlLnB1c2goYnQuam9pbigiIikpfXJldHVybiBHZS5qb2luKCJcbiIpfX19KCksVG09ZnVuY3Rpb24oKXtmdW5jdGlvbiB5KEFuLHZyLHJy'@; put 'KXtpZihBbil7b2woQW4sQW4ubHx8MCk7Zm9yKHZhciBTbj1yci5FbnVtfHxRcjtBbi5sPEFuLmxlbmd0aDspe3ZhciBtcj1Bbi5yZWFkX3NoaWZ0KDIpLHdpPVNuW21yXXx8U25bNjU1MzVdLFVyPUFuLnJlYWRfc2hpZnQoMiksamk9QW4ubCtVcixfbz13aS5mJiZ3aS5mKEFuLFVyLHJyKTtp'@; put 'ZihBbi5sPWppLHZyKF9vLHdpLG1yKSlyZXR1cm59fX1mdW5jdGlvbiBMKEFuLHZyKXtpZighQW4pcmV0dXJuIEFuO3ZhciBycj12cnx8e307bnVsbCE9dGUmJm51bGw9PXJyLmRlbnNlJiYocnIuZGVuc2U9dGUpO3ZhciBTbj1yci5kZW5zZT9bXTp7fSxtcj0iU2hlZXQxIix3aT0wLFVyPXt9'@; put 'LGppPVttcl0sX289W10sVGk9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxZbz1yci5zaGVldFJvd3N8fDA7aWYoMj09QW5bMl0pcnIuRW51bT1Rcix5KEFuLGZ1bmN0aW9uKGhpLHRhLE1uKXtzd2l0Y2goTW4pe2Nhc2UgMDpyci52ZXJzPWhpLGhpPj00MDk2JiYocnIucXBybz0hMCk7YnJl'@; put 'YWs7Y2FzZSA2OlRpPWhpO2JyZWFrO2Nhc2UgMTU6Y2FzZSA1MTpyci5xcHJvfHwoaGlbMV0udj1oaVsxXS52LnNsaWNlKDEpKTtjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNjoxND09TW4mJjExMj09KDExMiZoaVsyXSkmJigxNSZoaVsyXSk+MSYmKDE1JmhpWzJdKTwxNSYmKGhpWzFdLno9cnIu'@; put 'ZGF0ZU5GfHx3Ll90YWJsZVsxNF0scnIuY2VsbERhdGVzJiYoaGlbMV0udD0iZCIsaGlbMV0udj1odChoaVsxXS52KSkpO3ZhciBNcz1yci5kZW5zZT8oU25baGlbMF0ucl18fFtdKVtoaVswXS5jXTpTbltkaShoaVswXSldO2lmKE1zKXtNcy50PWhpWzFdLnQsTXMudj1oaVsxXS52LG51bGwh'@; put 'PWhpWzFdLnomJihNcy56PWhpWzFdLnopLG51bGwhPWhpWzFdLmYmJihNcy5mPWhpWzFdLmYpO2JyZWFrfXJyLmRlbnNlPyhTbltoaVswXS5yXXx8KFNuW2hpWzBdLnJdPVtdKSxTbltoaVswXS5yXVtoaVswXS5jXT1oaVsxXSk6U25bZGkoaGlbMF0pXT1oaVsxXX19LHJyKTtlbHNle2lmKDI2'@; put 'IT1BblsyXSYmMTQhPUFuWzJdKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIExPVFVTIEJPRiAiK0FuWzJdKTtyci5FbnVtPXVyLDE0PT1BblsyXSYmKHJyLnFwcm89ITAsQW4ubD0wKSx5KEFuLGZ1bmN0aW9uKGhpLHRhLE1uKXtzd2l0Y2goTW4pe2Nhc2UgMjI6aGlbMV0udj1oaVsx'@; put 'XS52LnNsaWNlKDEpO2Nhc2UgMjM6Y2FzZSAyNDpjYXNlIDI1OmNhc2UgMzc6Y2FzZSAzOTpjYXNlIDQwOmlmKGhpWzNdPndpJiYoU25bIiFyZWYiXT1PbyhUaSksVXJbbXJdPVNuLFNuPXJyLmRlbnNlP1tdOnt9LFRpPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0samkucHVzaChtcj0iU2hl'@; put 'ZXQiKygod2k9aGlbM10pKzEpKSksWW8+MCYmaGlbMF0ucj49WW8pYnJlYWs7cnIuZGVuc2U/KFNuW2hpWzBdLnJdfHwoU25baGlbMF0ucl09W10pLFNuW2hpWzBdLnJdW2hpWzBdLmNdPWhpWzFdKTpTbltkaShoaVswXSldPWhpWzFdLFRpLmUuYzxoaVswXS5jJiYoVGkuZS5jPWhpWzBdLmMp'@; put 'LFRpLmUucjxoaVswXS5yJiYoVGkuZS5yPWhpWzBdLnIpO2JyZWFrO2Nhc2UgMjc6aGlbMTRlM10mJihfb1toaVsxNGUzXVswXV09aGlbMTRlM11bMV0pfX0scnIpfWlmKFNuWyIhcmVmIl09T28oVGkpLFVyW21yXT1TbiwhX28ubGVuZ3RoKXJldHVybntTaGVldE5hbWVzOmppLFNoZWV0czpV'@; put 'cn07Zm9yKHZhciBsbz17fSxBbz1bXSx4bz0wO3hvPF9vLmxlbmd0aDsrK3hvKVVyW2ppW3hvXV0mJihBby5wdXNoKF9vW3hvXSksbG9bX29beG9dXT1VcltqaVt4b11dKTtyZXR1cm57U2hlZXROYW1lczpBbyxTaGVldHM6bG99fWZ1bmN0aW9uIEhlKEFuLHZyLHJyKXt2YXIgU249W3tjOjAs'@; put 'cjowfSx7dDoibiIsdjowfSwwXTtyZXR1cm4gcnIucXBybyYmMjA3NjghPXJyLnZlcnM/KFNuWzBdLmM9QW4ucmVhZF9zaGlmdCgxKSxBbi5sKyssU25bMF0ucj1Bbi5yZWFkX3NoaWZ0KDIpLEFuLmwrPTIpOihTblsyXT1Bbi5yZWFkX3NoaWZ0KDEpLFNuWzBdLmM9QW4ucmVhZF9zaGlmdCgy'@; put 'KSxTblswXS5yPUFuLnJlYWRfc2hpZnQoMikpLFNufWZ1bmN0aW9uIEJlKEFuLHZyLHJyKXt2YXIgU249QW4ubCt2cixtcj1IZShBbiwwLHJyKTtpZihtclsxXS50PSJzIiwyMDc2OD09cnIudmVycyl7QW4ubCsrO3ZhciB3aT1Bbi5yZWFkX3NoaWZ0KDEpO3JldHVybiBtclsxXS52PUFuLnJl'@; put 'YWRfc2hpZnQod2ksInV0ZjgiKSxtcn1yZXR1cm4gcnIucXBybyYmQW4ubCsrLG1yWzFdLnY9QW4ucmVhZF9zaGlmdChTbi1Bbi5sLCJjc3RyIiksbXJ9ZnVuY3Rpb24gR2UoQW4sdnIscnIpe3ZhciBTbj1wcig3K3JyLmxlbmd0aCk7U24ud3JpdGVfc2hpZnQoMSwyNTUpLFNuLndyaXRlX3No'@; put 'aWZ0KDIsdnIpLFNuLndyaXRlX3NoaWZ0KDIsQW4pLFNuLndyaXRlX3NoaWZ0KDEsMzkpO2Zvcih2YXIgbXI9MDttcjxTbi5sZW5ndGg7Kyttcil7dmFyIHdpPXJyLmNoYXJDb2RlQXQobXIpO1NuLndyaXRlX3NoaWZ0KDEsd2k+PTEyOD85NTp3aSl9cmV0dXJuIFNuLndyaXRlX3NoaWZ0KDEs'@; put 'MCksU259ZnVuY3Rpb24gZHQoQW4sdnIscnIpe3ZhciBTbj1wcig3KTtyZXR1cm4gU24ud3JpdGVfc2hpZnQoMSwyNTUpLFNuLndyaXRlX3NoaWZ0KDIsdnIpLFNuLndyaXRlX3NoaWZ0KDIsQW4pLFNuLndyaXRlX3NoaWZ0KDIscnIsImkiKSxTbn1mdW5jdGlvbiBjdChBbix2cixycil7dmFy'@; put 'IFNuPXByKDEzKTtyZXR1cm4gU24ud3JpdGVfc2hpZnQoMSwyNTUpLFNuLndyaXRlX3NoaWZ0KDIsdnIpLFNuLndyaXRlX3NoaWZ0KDIsQW4pLFNuLndyaXRlX3NoaWZ0KDgscnIsImYiKSxTbn1mdW5jdGlvbiBGdChBbix2cixycil7dmFyIFNuPTMyNzY4JnZyO3JldHVybiB2cj0oU24/QW46'@; put 'MCkrKCh2ciY9LTMyNzY5KT49ODE5Mj92ci0xNjM4NDp2ciksKFNuPyIiOiIkIikrKHJyP05zKHZyKTpIcyh2cikpfXZhciBUdD17NTE6WyJGQUxTRSIsMF0sNTI6WyJUUlVFIiwwXSw3MDpbIkxFTiIsMV0sODA6WyJTVU0iLDY5XSw4MTpbIkFWRVJBR0VBIiw2OV0sODI6WyJDT1VOVEEiLDY5'@; put 'XSw4MzpbIk1JTkEiLDY5XSw4NDpbIk1BWEEiLDY5XSwxMTE6WyJUIiwxXX0sWnQ9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIrIiwiLSIsIioiLCIvIiwiXiIsIj0iLCI8PiIsIjw9IiwiPj0iLCI8IiwiPiIsIiIsIiIsIiIsIiIsIiYiLCIiLCIiLCIiLCIiLCIiLCIiLCIiXTtmdW5j'@; put 'dGlvbiBLbihBbil7dmFyIHZyPVt7YzowLHI6MH0se3Q6Im4iLHY6MH0sMF07cmV0dXJuIHZyWzBdLnI9QW4ucmVhZF9zaGlmdCgyKSx2clszXT1BbltBbi5sKytdLHZyWzBdLmM9QW5bQW4ubCsrXSx2cn1mdW5jdGlvbiBxbihBbix2cixycixTbil7dmFyIG1yPXByKDYrU24ubGVuZ3RoKTtt'@; put 'ci53cml0ZV9zaGlmdCgyLEFuKSxtci53cml0ZV9zaGlmdCgxLHJyKSxtci53cml0ZV9zaGlmdCgxLHZyKSxtci53cml0ZV9zaGlmdCgxLDM5KTtmb3IodmFyIHdpPTA7d2k8U24ubGVuZ3RoOysrd2kpe3ZhciBVcj1Tbi5jaGFyQ29kZUF0KHdpKTttci53cml0ZV9zaGlmdCgxLFVyPj0xMjg/'@; put 'OTU6VXIpfXJldHVybiBtci53cml0ZV9zaGlmdCgxLDApLG1yfWZ1bmN0aW9uIGtuKEFuLHZyKXt2YXIgcnI9S24oQW4pLFNuPUFuLnJlYWRfc2hpZnQoNCksbXI9QW4ucmVhZF9zaGlmdCg0KSx3aT1Bbi5yZWFkX3NoaWZ0KDIpO2lmKDY1NTM1PT13aSlyZXR1cm4gMD09PVNuJiYzMjIxMjI1'@; put 'NDcyPT09bXI/KHJyWzFdLnQ9ImUiLHJyWzFdLnY9MTUpOjA9PT1TbiYmMzQ4OTY2MDkyOD09PW1yPyhyclsxXS50PSJlIixyclsxXS52PTQyKTpyclsxXS52PTAscnI7dmFyIFVyPTMyNzY4JndpO3JldHVybiB3aT0oMzI3Njcmd2kpLTE2NDQ2LHJyWzFdLnY9KDEtMipVcikqKG1yKk1hdGgu'@; put 'cG93KDIsd2krMzIpK1NuKk1hdGgucG93KDIsd2kpKSxycn1mdW5jdGlvbiBlcihBbix2cixycixTbil7dmFyIG1yPXByKDE0KTtpZihtci53cml0ZV9zaGlmdCgyLEFuKSxtci53cml0ZV9zaGlmdCgxLHJyKSxtci53cml0ZV9zaGlmdCgxLHZyKSwwPT1TbilyZXR1cm4gbXIud3JpdGVfc2hp'@; put 'ZnQoNCwwKSxtci53cml0ZV9zaGlmdCg0LDApLG1yLndyaXRlX3NoaWZ0KDIsNjU1MzUpLG1yO3ZhciB3aT0wLFVyPTAsX289MDtyZXR1cm4gU248MCYmKHdpPTEsU249LVNuKSxVcj0wfE1hdGgubG9nMihTbiksMjE0NzQ4MzY0OCYoX289KFNuLz1NYXRoLnBvdygyLFVyLTMxKSk+Pj4wKXx8'@; put 'KCsrVXIsX289KFNuLz0yKT4+PjApLFNuLT1fbyxfb3w9MjE0NzQ4MzY0OCxfbz4+Pj0wLFNuKj1NYXRoLnBvdygyLDMyKSxtci53cml0ZV9zaGlmdCg0LFNuPj4+MCksbXIud3JpdGVfc2hpZnQoNCxfbyksbXIud3JpdGVfc2hpZnQoMixVcis9MTYzODMrKHdpPzMyNzY4OjApKSxtcn1mdW5j'@; put 'dGlvbiBCcihBbix2cil7dmFyIHJyPUtuKEFuKSxTbj1Bbi5yZWFkX3NoaWZ0KDgsImYiKTtyZXR1cm4gcnJbMV0udj1Tbixycn1mdW5jdGlvbiBMaShBbix2cil7dmFyIHJyPXByKDUrQW4ubGVuZ3RoKTtyci53cml0ZV9zaGlmdCgyLDE0ZTMpLHJyLndyaXRlX3NoaWZ0KDIsdnIpO2Zvcih2'@; put 'YXIgU249MDtTbjxBbi5sZW5ndGg7KytTbil7dmFyIG1yPUFuLmNoYXJDb2RlQXQoU24pO3JyW3JyLmwrK109bXI+MTI3Pzk1Om1yfXJldHVybiBycltyci5sKytdPTAscnJ9dmFyIFFyPXswOntuOiJCT0YiLGY6aGx9LDE6e246IkVPRiJ9LDI6e246IkNBTENNT0RFIn0sMzp7bjoiQ0FMQ09S'@; put 'REVSIn0sNDp7bjoiU1BMSVQifSw1OntuOiJTWU5DIn0sNjp7bjoiUkFOR0UiLGY6ZnVuY3Rpb24gdmUoQW4pe3ZhciB2cj17czp7YzowLHI6MH0sZTp7YzowLHI6MH19O3JldHVybiB2ci5zLmM9QW4ucmVhZF9zaGlmdCgyKSx2ci5zLnI9QW4ucmVhZF9zaGlmdCgyKSx2ci5lLmM9QW4ucmVh'@; put 'ZF9zaGlmdCgyKSx2ci5lLnI9QW4ucmVhZF9zaGlmdCgyKSw2NTUzNT09dnIucy5jJiYodnIucy5jPXZyLmUuYz12ci5zLnI9dnIuZS5yPTApLHZyfX0sNzp7bjoiV0lORE9XMSJ9LDg6e246IkNPTFcxIn0sOTp7bjoiV0lOVFdPIn0sMTA6e246IkNPTFcyIn0sMTE6e246Ik5BTUUifSwxMjp7'@; put 'bjoiQkxBTksifSwxMzp7bjoiSU5URUdFUiIsZjpmdW5jdGlvbiBudChBbix2cixycil7dmFyIFNuPUhlKEFuLDAscnIpO3JldHVybiBTblsxXS52PUFuLnJlYWRfc2hpZnQoMiwiaSIpLFNufX0sMTQ6e246Ik5VTUJFUiIsZjpmdW5jdGlvbiBDdChBbix2cixycil7dmFyIFNuPUhlKEFuLDAs'@; put 'cnIpO3JldHVybiBTblsxXS52PUFuLnJlYWRfc2hpZnQoOCwiZiIpLFNufX0sMTU6e246IkxBQkVMIixmOkJlfSwxNjp7bjoiRk9STVVMQSIsZjpmdW5jdGlvbiBidChBbix2cixycil7dmFyIFNuPUFuLmwrdnIsbXI9SGUoQW4sMCxycik7aWYobXJbMV0udj1Bbi5yZWFkX3NoaWZ0KDgsImYi'@; put 'KSxyci5xcHJvKUFuLmw9U247ZWxzZXt2YXIgd2k9QW4ucmVhZF9zaGlmdCgyKTsoZnVuY3Rpb24gcG4oQW4sdnIpe29sKEFuLDApO2Zvcih2YXIgcnI9W10sU249MCxtcj0iIix3aT0iIjtBbi5sPEFuLmxlbmd0aDspe3ZhciBVcj1BbltBbi5sKytdO3N3aXRjaChVcil7Y2FzZSAwOnJyLnB1'@; put 'c2goQW4ucmVhZF9zaGlmdCg4LCJmIikpO2JyZWFrO2Nhc2UgMTp3aT1GdCh2clswXS5jLEFuLnJlYWRfc2hpZnQoMiksITApLG1yPUZ0KHZyWzBdLnIsQW4ucmVhZF9zaGlmdCgyKSwhMSkscnIucHVzaCh3aSttcik7YnJlYWs7Y2FzZSAyOnZhciBqaT1GdCh2clswXS5jLEFuLnJlYWRfc2hp'@; put 'ZnQoMiksITApLF9vPUZ0KHZyWzBdLnIsQW4ucmVhZF9zaGlmdCgyKSwhMSk7d2k9RnQodnJbMF0uYyxBbi5yZWFkX3NoaWZ0KDIpLCEwKSxtcj1GdCh2clswXS5yLEFuLnJlYWRfc2hpZnQoMiksITEpLHJyLnB1c2goamkrX28rIjoiK3dpK21yKTticmVhaztjYXNlIDM6aWYoQW4ubDxBbi5s'@; put 'ZW5ndGgpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiV0sxIHByZW1hdHVyZSBmb3JtdWxhIGVuZCIpO2JyZWFrO2Nhc2UgNDpyci5wdXNoKCIoIityci5wb3AoKSsiKSIpO2JyZWFrO2Nhc2UgNTpyci5wdXNoKEFuLnJlYWRfc2hpZnQoMikpO2JyZWFrO2Nhc2UgNjpmb3IodmFyIFRpPSIi'@; put 'O1VyPUFuW0FuLmwrK107KVRpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFVyKTtyci5wdXNoKCciJytUaS5yZXBsYWNlKC8iL2csJyIiJykrJyInKTticmVhaztjYXNlIDg6cnIucHVzaCgiLSIrcnIucG9wKCkpO2JyZWFrO2Nhc2UgMjM6cnIucHVzaCgiKyIrcnIucG9wKCkpO2JyZWFrO2Nhc2Ug'@; put 'MjI6cnIucHVzaCgiTk9UKCIrcnIucG9wKCkrIikiKTticmVhaztjYXNlIDIwOmNhc2UgMjE6dmFyIFlvPXJyLnBvcCgpLGxvPXJyLnBvcCgpO3JyLnB1c2goWyJBTkQiLCJPUiJdW1VyLTIwXSsiKCIrbG8rIiwiK1lvKyIpIik7YnJlYWs7ZGVmYXVsdDppZihVcjwzMiYmWnRbVXJdKVlvPXJy'@; put 'LnBvcCgpLGxvPXJyLnBvcCgpLHJyLnB1c2gobG8rWnRbVXJdK1lvKTtlbHNle2lmKCFUdFtVcl0pcmV0dXJuIFVyPD03P2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK1VyLnRvU3RyaW5nKDE2KSk6VXI8PTI0P2NvbnNvbGUuZXJyb3IoIldLMSB1bnN1cHBvcnRlZCBvcCAi'@; put 'K1VyLnRvU3RyaW5nKDE2KSk6VXI8PTMwP2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK1VyLnRvU3RyaW5nKDE2KSk6VXI8PTExNT9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgZnVuY3Rpb24gb3Bjb2RlICIrVXIudG9TdHJpbmcoMTYpKTpjb25zb2xlLmVycm9y'@; put 'KCJXSzEgdW5yZWNvZ25pemVkIG9wY29kZSAiK1VyLnRvU3RyaW5nKDE2KSk7aWYoNjk9PShTbj1UdFtVcl1bMV0pJiYoU249QW5bQW4ubCsrXSksU24+cnIubGVuZ3RoKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIldLMSBiYWQgZm9ybXVsYSBwYXJzZSAweCIrVXIudG9TdHJpbmcoMTYp'@; put 'KyI6fCIrcnIuam9pbigifCIpKyJ8Iik7dmFyIEFvPXJyLnNsaWNlKC1Tbik7cnIubGVuZ3RoLT1Tbixyci5wdXNoKFR0W1VyXVswXSsiKCIrQW8uam9pbigiLCIpKyIpIil9fX0xPT1yci5sZW5ndGg/dnJbMV0uZj0iIityclswXTpjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFy'@; put 'c2UgfCIrcnIuam9pbigifCIpKyJ8Iil9KShBbi5zbGljZShBbi5sLEFuLmwrd2kpLG1yKSxBbi5sKz13aX1yZXR1cm4gbXJ9fSwyNDp7bjoiVEFCTEUifSwyNTp7bjoiT1JBTkdFIn0sMjY6e246IlBSQU5HRSJ9LDI3OntuOiJTUkFOR0UifSwyODp7bjoiRlJBTkdFIn0sMjk6e246IktSQU5H'@; put 'RTEifSwzMjp7bjoiSFJBTkdFIn0sMzU6e246IktSQU5HRTIifSwzNjp7bjoiUFJPVEVDIn0sMzc6e246IkZPT1RFUiJ9LDM4OntuOiJIRUFERVIifSwzOTp7bjoiU0VUVVAifSw0MDp7bjoiTUFSR0lOUyJ9LDQxOntuOiJMQUJFTEZNVCJ9LDQyOntuOiJUSVRMRVMifSw0Mzp7bjoiU0hFRVRK'@; put 'UyJ9LDQ1OntuOiJHUkFQSCJ9LDQ2OntuOiJOR1JBUEgifSw0Nzp7bjoiQ0FMQ0NPVU5UIn0sNDg6e246IlVORk9STUFUVEVEIn0sNDk6e246IkNVUlNPUlcxMiJ9LDUwOntuOiJXSU5ET1cifSw1MTp7bjoiU1RSSU5HIixmOkJlfSw1NTp7bjoiUEFTU1dPUkQifSw1Njp7bjoiTE9DS0VEIn0s'@; put 'NjA6e246IlFVRVJZIn0sNjE6e246IlFVRVJZTkFNRSJ9LDYyOntuOiJQUklOVCJ9LDYzOntuOiJQUklOVE5BTUUifSw2NDp7bjoiR1JBUEgyIn0sNjU6e246IkdSQVBITkFNRSJ9LDY2OntuOiJaT09NIn0sNjc6e246IlNZTVNQTElUIn0sNjg6e246Ik5TUk9XUyJ9LDY5OntuOiJOU0NPTFMi'@; put 'fSw3MDp7bjoiUlVMRVIifSw3MTp7bjoiTk5BTUUifSw3Mjp7bjoiQUNPTU0ifSw3Mzp7bjoiQU1BQ1JPIn0sNzQ6e246IlBBUlNFIn0sMTAyOntuOiJQUkFOR0VTPz8ifSwxMDM6e246IlJSQU5HRVM/PyJ9LDEwNDp7bjoiRk5BTUU/PyJ9LDEwNTp7bjoiTVJBTkdFUz8/In0sNjU1MzU6e246'@; put 'IiJ9fSx1cj17MDp7bjoiQk9GIn0sMTp7bjoiRU9GIn0sMjp7bjoiUEFTU1dPUkQifSwzOntuOiJDQUxDU0VUIn0sNDp7bjoiV0lORE9XU0VUIn0sNTp7bjoiU0hFRVRDRUxMUFRSIn0sNjp7bjoiU0hFRVRMQVlPVVQifSw3OntuOiJDT0xVTU5XSURUSCJ9LDg6e246IkhJRERFTkNPTFVNTiJ9'@; put 'LDk6e246IlVTRVJSQU5HRSJ9LDEwOntuOiJTWVNURU1SQU5HRSJ9LDExOntuOiJaRVJPRk9SQ0UifSwxMjp7bjoiU09SVEtFWURJUiJ9LDEzOntuOiJGSUxFU0VBTCJ9LDE0OntuOiJEQVRBRklMTE5VTVMifSwxNTp7bjoiUFJJTlRNQUlOIn0sMTY6e246IlBSSU5UU1RSSU5HIn0sMTc6e246'@; put 'IkdSQVBITUFJTiJ9LDE4OntuOiJHUkFQSFNUUklORyJ9LDE5OntuOiI/PyJ9LDIwOntuOiJFUlJDRUxMIn0sMjE6e246Ik5BQ0VMTCJ9LDIyOntuOiJMQUJFTDE2IixmOmZ1bmN0aW9uIHVuKEFuLHZyKXt2YXIgcnI9S24oQW4pO3JldHVybiByclsxXS50PSJzIixyclsxXS52PUFuLnJlYWRf'@; put 'c2hpZnQodnItNCwiY3N0ciIpLHJyfX0sMjM6e246Ik5VTUJFUjE3IixmOmtufSwyNDp7bjoiTlVNQkVSMTgiLGY6ZnVuY3Rpb24gem4oQW4sdnIpe3ZhciBycj1LbihBbik7cnJbMV0udj1Bbi5yZWFkX3NoaWZ0KDIpO3ZhciBTbj1yclsxXS52Pj4xO2lmKDEmcnJbMV0udilzd2l0Y2goNyZT'@; put 'bil7Y2FzZSAwOlNuPTVlMyooU24+PjMpO2JyZWFrO2Nhc2UgMTpTbj01MDAqKFNuPj4zKTticmVhaztjYXNlIDI6U249KFNuPj4zKS8yMDticmVhaztjYXNlIDM6U249KFNuPj4zKS8yMDA7YnJlYWs7Y2FzZSA0OlNuPShTbj4+MykvMmUzO2JyZWFrO2Nhc2UgNTpTbj0oU24+PjMpLzJlNDti'@; put 'cmVhaztjYXNlIDY6U249KFNuPj4zKS8xNjticmVhaztjYXNlIDc6U249KFNuPj4zKS82NH1yZXR1cm4gcnJbMV0udj1Tbixycn19LDI1OntuOiJGT1JNVUxBMTkiLGY6ZnVuY3Rpb24gdHIoQW4sdnIpe3ZhciBycj1rbihBbik7cmV0dXJuIEFuLmwrPXZyLTE0LHJyfX0sMjY6e246IkZPUk1V'@; put 'TEExQSJ9LDI3OntuOiJYRk9STUFUIixmOmZ1bmN0aW9uIHhpKEFuLHZyKXtmb3IodmFyIHJyPXt9LFNuPUFuLmwrdnI7QW4ubDxTbjspe3ZhciBtcj1Bbi5yZWFkX3NoaWZ0KDIpO2lmKDE0ZTM9PW1yKXtmb3IocnJbbXJdPVswLCIiXSxyclttcl1bMF09QW4ucmVhZF9zaGlmdCgyKTtBbltB'@; put 'bi5sXTspcnJbbXJdWzFdKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEFuW0FuLmxdKSxBbi5sKys7QW4ubCsrfX1yZXR1cm4gcnJ9fSwyODp7bjoiRFRMQUJFTE1JU0MifSwyOTp7bjoiRFRMQUJFTENFTEwifSwzMDp7bjoiR1JBUEhXSU5ET1cifSwzMTp7bjoiQ1BBIn0sMzI6e246IkxQTEFVVE8i'@; put 'fSwzMzp7bjoiUVVFUlkifSwzNDp7bjoiSElEREVOU0hFRVQifSwzNTp7bjoiPz8ifSwzNzp7bjoiTlVNQkVSMjUiLGY6ZnVuY3Rpb24gWm4oQW4sdnIpe3ZhciBycj1LbihBbiksU249QW4ucmVhZF9zaGlmdCg0KTtyZXR1cm4gcnJbMV0udj1Tbj4+Nixycn19LDM4OntuOiI/PyJ9LDM5Ontu'@; put 'OiJOVU1CRVIyNyIsZjpCcn0sNDA6e246IkZPUk1VTEEyOCIsZjpmdW5jdGlvbiBzaShBbix2cil7dmFyIHJyPUJyKEFuKTtyZXR1cm4gQW4ubCs9dnItMTAscnJ9fSwxNDI6e246Ij8/In0sMTQ3OntuOiI/PyJ9LDE1MDp7bjoiPz8ifSwxNTE6e246Ij8/In0sMTUyOntuOiI/PyJ9LDE1Mzp7'@; put 'bjoiPz8ifSwxNTQ6e246Ij8/In0sMTU1OntuOiI/PyJ9LDE1Njp7bjoiPz8ifSwxNjM6e246Ij8/In0sMTc0OntuOiI/PyJ9LDE3NTp7bjoiPz8ifSwxNzY6e246Ij8/In0sMTc3OntuOiI/PyJ9LDE4NDp7bjoiPz8ifSwxODU6e246Ij8/In0sMTg2OntuOiI/PyJ9LDE4Nzp7bjoiPz8ifSwx'@; put 'ODg6e246Ij8/In0sMTk1OntuOiI/PyJ9LDIwMTp7bjoiPz8ifSwyMDU6e246Ij8/In0sMjA2OntuOiI/PyJ9LDIwNzp7bjoiPz8ifSwyMDg6e246Ij8/In0sMjU2OntuOiI/PyJ9LDI1OTp7bjoiPz8ifSwyNjA6e246Ij8/In0sMjYxOntuOiI/PyJ9LDI2Mjp7bjoiPz8ifSwyNjM6e246Ij8/'@; put 'In0sMjY1OntuOiI/PyJ9LDI2Njp7bjoiPz8ifSwyNjc6e246Ij8/In0sMjY4OntuOiI/PyJ9LDI3MDp7bjoiPz8ifSwyNzE6e246Ij8/In0sMzg0OntuOiI/PyJ9LDM4OTp7bjoiPz8ifSwzOTA6e246Ij8/In0sMzkzOntuOiI/PyJ9LDM5Njp7bjoiPz8ifSw1MTI6e246Ij8/In0sNTE0Ontu'@; put 'OiI/PyJ9LDUxMzp7bjoiPz8ifSw1MTY6e246Ij8/In0sNTE3OntuOiI/PyJ9LDY0MDp7bjoiPz8ifSw2NDE6e246Ij8/In0sNjQyOntuOiI/PyJ9LDY0Mzp7bjoiPz8ifSw2NDQ6e246Ij8/In0sNjQ1OntuOiI/PyJ9LDY0Njp7bjoiPz8ifSw2NDc6e246Ij8/In0sNjQ4OntuOiI/PyJ9LDY1'@; put 'ODp7bjoiPz8ifSw2NTk6e246Ij8/In0sNjYwOntuOiI/PyJ9LDY2MTp7bjoiPz8ifSw2NjI6e246Ij8/In0sNjY1OntuOiI/PyJ9LDY2Njp7bjoiPz8ifSw3Njg6e246Ij8/In0sNzcyOntuOiI/PyJ9LDE2MDA6e246Ij8/In0sMTYwMjp7bjoiPz8ifSwxNzkzOntuOiI/PyJ9LDE3OTQ6e246'@; put 'Ij8/In0sMTc5NTp7bjoiPz8ifSwxNzk2OntuOiI/PyJ9LDE5MjA6e246Ij8/In0sMjA0ODp7bjoiPz8ifSwyMDQ5OntuOiI/PyJ9LDIwNTI6e246Ij8/In0sMjY4ODp7bjoiPz8ifSwxMDk5ODp7bjoiPz8ifSwxMjg0OTp7bjoiPz8ifSwyODIzMzp7bjoiPz8ifSwyODQ4NDp7bjoiPz8ifSw2'@; put 'NTUzNTp7bjoiIn19O3JldHVybntzaGVldF90b193azE6ZnVuY3Rpb24gUShBbix2cil7dmFyIHJyPXZyfHx7fTtpZigrcnIuY29kZXBhZ2U+PTAmJmooK3JyLmNvZGVwYWdlKSwic3RyaW5nIj09cnIudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzEgdG8gSlMgc3RyaW5n'@; put 'Iik7dmFyIFNuPXdjKCksbXI9T2koQW5bIiFyZWYiXSksd2k9QXJyYXkuaXNBcnJheShBbiksVXI9W107Q2koU24sMCxmdW5jdGlvbiBnZShBbil7dmFyIHZyPXByKDIpO3JldHVybiB2ci53cml0ZV9zaGlmdCgyLEFuKSx2cn0oMTAzMCkpLENpKFNuLDYsZnVuY3Rpb24gU2UoQW4pe3ZhciB2'@; put 'cj1wcig4KTtyZXR1cm4gdnIud3JpdGVfc2hpZnQoMixBbi5zLmMpLHZyLndyaXRlX3NoaWZ0KDIsQW4ucy5yKSx2ci53cml0ZV9zaGlmdCgyLEFuLmUuYyksdnIud3JpdGVfc2hpZnQoMixBbi5lLnIpLHZyfShtcikpO2Zvcih2YXIgamk9bXIucy5yO2ppPD1tci5lLnI7KytqaSlmb3IodmFy'@; put 'IF9vPUhzKGppKSxUaT1tci5zLmM7VGk8PW1yLmUuYzsrK1RpKXtqaT09PW1yLnMuciYmKFVyW1RpXT1OcyhUaSkpO3ZhciBsbz13aT8oQW5bamldfHxbXSlbVGldOkFuW1VyW1RpXStfb107bG8mJiJ6IiE9bG8udCYmKCJuIj09bG8udD8oMHxsby52KT09bG8udiYmbG8udj49LTMyNzY4JiZs'@; put 'by52PD0zMjc2Nz9DaShTbiwxMyxkdChqaSxUaSxsby52KSk6Q2koU24sMTQsY3QoamksVGksbG8udikpOkNpKFNuLDE1LEdlKGppLFRpLGN1KGxvKS5zbGljZSgwLDIzOSkpKSl9cmV0dXJuIENpKFNuLDEpLFNuLmVuZCgpfSxib29rX3RvX3drMzpmdW5jdGlvbiByZShBbix2cil7dmFyIHJy'@; put 'PXZyfHx7fTtpZigrcnIuY29kZXBhZ2U+PTAmJmooK3JyLmNvZGVwYWdlKSwic3RyaW5nIj09cnIudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzMgdG8gSlMgc3RyaW5nIik7dmFyIFNuPXdjKCk7Q2koU24sMCxmdW5jdGlvbiBfZShBbil7dmFyIHZyPXByKDI2KTt2ci53'@; put 'cml0ZV9zaGlmdCgyLDQwOTYpLHZyLndyaXRlX3NoaWZ0KDIsNCksdnIud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIHJyPTAsU249MCxtcj0wLHdpPTA7d2k8QW4uU2hlZXROYW1lcy5sZW5ndGg7Kyt3aSl7dmFyIGppPUFuLlNoZWV0c1tBbi5TaGVldE5hbWVzW3dpXV07aWYoamkmJmppWyIh'@; put 'cmVmIl0peysrbXI7dmFyIF9vPVdzKGppWyIhcmVmIl0pO3JyPF9vLmUuciYmKHJyPV9vLmUuciksU248X28uZS5jJiYoU249X28uZS5jKX19cmV0dXJuIHZyLndyaXRlX3NoaWZ0KDIscnIpLHZyLndyaXRlX3NoaWZ0KDEsbXIpLHZyLndyaXRlX3NoaWZ0KDEsU24pLHZyLndyaXRlX3NoaWZ0'@; put 'KDIsMCksdnIud3JpdGVfc2hpZnQoMiwwKSx2ci53cml0ZV9zaGlmdCgxLDEpLHZyLndyaXRlX3NoaWZ0KDEsMiksdnIud3JpdGVfc2hpZnQoNCwwKSx2ci53cml0ZV9zaGlmdCg0LDApLHZyfShBbikpO2Zvcih2YXIgbXI9MCx3aT0wO21yPEFuLlNoZWV0TmFtZXMubGVuZ3RoOysrbXIpKEFu'@; put 'LlNoZWV0c1tBbi5TaGVldE5hbWVzW21yXV18fHt9KVsiIXJlZiJdJiZDaShTbiwyNyxMaShBbi5TaGVldE5hbWVzW21yXSx3aSsrKSk7dmFyIFVyPTA7Zm9yKG1yPTA7bXI8QW4uU2hlZXROYW1lcy5sZW5ndGg7Kyttcil7dmFyIGppPUFuLlNoZWV0c1tBbi5TaGVldE5hbWVzW21yXV07aWYo'@; put 'amkmJmppWyIhcmVmIl0pe2Zvcih2YXIgX289T2koamlbIiFyZWYiXSksVGk9QXJyYXkuaXNBcnJheShqaSksWW89W10sbG89X28ucy5yO2xvPD1fby5lLnI7Kytsbylmb3IodmFyIEFvPUhzKGxvKSx4bz1fby5zLmM7eG88PV9vLmUuYzsrK3hvKXtsbz09PV9vLnMuciYmKFlvW3hvXT1Ocyh4'@; put 'bykpO3ZhciB0YT1UaT8oamlbbG9dfHxbXSlbeG9dOmppW1lvW3hvXStBb107dGEmJiJ6IiE9dGEudCYmKCJuIj09dGEudD9DaShTbiwyMyxlcihsbyx4byxVcix0YS52KSk6Q2koU24sMjIscW4obG8seG8sVXIsY3UodGEpLnNsaWNlKDAsMjM5KSkpKX0rK1VyfX1yZXR1cm4gQ2koU24sMSks'@; put 'U24uZW5kKCl9LHRvX3dvcmtib29rOmZ1bmN0aW9uIFAoQW4sdnIpe3N3aXRjaCh2ci50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIEwoRChzZS5kZWNvZGUoQW4pKSx2cik7Y2FzZSJiaW5hcnkiOnJldHVybiBMKEQoQW4pLHZyKTtjYXNlImJ1ZmZlciI6Y2FzZSJhcnJheSI6cmV0dXJuIEwo'@; put 'QW4sdnIpfXRocm93IlVuc3VwcG9ydGVkIHR5cGUgIit2ci50eXBlfX19KCksRG09ZnVuY3Rpb24oKXt2YXIgeT11bCgidCIpLFA9dWwoInJQciIpO2Z1bmN0aW9uIEwoZ2Upe3ZhciBfZT1nZS5tYXRjaCh5KTtpZighX2UpcmV0dXJue3Q6InMiLHY6IiJ9O3ZhciB2ZT17dDoicyIsdjp4cihf'@; put 'ZVsxXSl9LFNlPWdlLm1hdGNoKFApO3JldHVybiBTZSYmKHZlLnM9ZnVuY3Rpb24gSncoeSl7dmFyIFA9e30sTD15Lm1hdGNoKCR0KSxRPTAscmU9ITE7aWYoTClmb3IoO1EhPUwubGVuZ3RoOysrUSl7dmFyIGdlPWxuKExbUV0pO3N3aXRjaChnZVswXS5yZXBsYWNlKC9cdyo6L2csIiIpKXtj'@; put 'YXNlIjxjb25kZW5zZSI6Y2FzZSI8ZXh0ZW5kIjpicmVhaztjYXNlIjxzaGFkb3ciOmlmKCFnZS52YWwpYnJlYWs7Y2FzZSI8c2hhZG93PiI6Y2FzZSI8c2hhZG93Lz4iOlAuc2hhZG93PTE7YnJlYWs7Y2FzZSI8L3NoYWRvdz4iOmJyZWFrO2Nhc2UiPGNoYXJzZXQiOmlmKCIxIj09Z2UudmFs'@; put 'KWJyZWFrO1AuY3A9SVtwYXJzZUludChnZS52YWwsMTApXTticmVhaztjYXNlIjxvdXRsaW5lIjppZighZ2UudmFsKWJyZWFrO2Nhc2UiPG91dGxpbmU+IjpjYXNlIjxvdXRsaW5lLz4iOlAub3V0bGluZT0xO2JyZWFrO2Nhc2UiPC9vdXRsaW5lPiI6YnJlYWs7Y2FzZSI8ckZvbnQiOlAubmFt'@; put 'ZT1nZS52YWw7YnJlYWs7Y2FzZSI8c3oiOlAuc3o9Z2UudmFsO2JyZWFrO2Nhc2UiPHN0cmlrZSI6aWYoIWdlLnZhbClicmVhaztjYXNlIjxzdHJpa2U+IjpjYXNlIjxzdHJpa2UvPiI6UC5zdHJpa2U9MTticmVhaztjYXNlIjwvc3RyaWtlPiI6YnJlYWs7Y2FzZSI8dSI6aWYoIWdlLnZhbCli'@; put 'cmVhaztzd2l0Y2goZ2UudmFsKXtjYXNlImRvdWJsZSI6UC51bmRlcmxpbmU9MjticmVhaztjYXNlInNpbmdsZUFjY291bnRpbmciOlAudW5kZXJsaW5lPTMzO2JyZWFrO2Nhc2UiZG91YmxlQWNjb3VudGluZyI6UC51bmRlcmxpbmU9MzR9Y2FzZSI8dT4iOmNhc2UiPHUvPiI6UC51bmRlcmxp'@; put 'bmV8fChQLnVuZGVybGluZT0xKTticmVhaztjYXNlIjwvdT4iOmJyZWFrO2Nhc2UiPGIiOmlmKCIwIj09Z2UudmFsKWJyZWFrO2Nhc2UiPGI+IjpjYXNlIjxiLz4iOlAuYm9sZD0xO2JyZWFrO2Nhc2UiPC9iPiI6YnJlYWs7Y2FzZSI8aSI6aWYoIjAiPT1nZS52YWwpYnJlYWs7Y2FzZSI8aT4i'@; put 'OmNhc2UiPGkvPiI6UC5pdGFsaWM9MTticmVhaztjYXNlIjwvaT4iOmJyZWFrO2Nhc2UiPGNvbG9yIjpnZS5yZ2ImJihQLmNvbG9yPXtyZ2I6OD09Z2UucmdiLmxlbmd0aD9nZS5yZ2Iuc2xpY2UoMiw4KTooIjAwMDAwMCIrZ2UucmdiKS5zbGljZSgtNil9KTticmVhaztjYXNlIjxmYW1pbHki'@; put 'OlAuZmFtaWx5PWdlLnZhbDticmVhaztjYXNlIjx2ZXJ0QWxpZ24iOiJub25lIiE9KGdlLnZhbHx8Im5vbmUiKSYmKFAudmFsaWduPWdlLnZhbC5yZXBsYWNlKCJzY3JpcHQiLCIiKSk7YnJlYWs7Y2FzZSI8c2NoZW1lIjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRM'@; put 'c3Q+IjpicmVhaztjYXNlIjxleHQiOnJlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpyZT0hMTticmVhaztkZWZhdWx0OmlmKDQ3IT09Z2VbMF0uY2hhckNvZGVBdCgxKSYmIXJlKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHJpY2ggZm9ybWF0ICIrZ2VbMF0pfX1yZXR1cm4gUH0oU2Vb'@; put 'MV0pKSx2ZX12YXIgUT0vPCg/Olx3KzopP3I+L2cscmU9LzxcLyg/Olx3KzopP3I+LztyZXR1cm4gZnVuY3Rpb24oX2Upe3JldHVybiBfZS5yZXBsYWNlKFEsIiIpLnNwbGl0KHJlKS5tYXAoTCkuZmlsdGVyKGZ1bmN0aW9uKHZlKXtyZXR1cm4gdmUudn0pfX0oKSxqMT17MToic2luZ2xlIiwy'@; put 'OiJkb3VibGUiLDMzOiJzaW5nbGUtYWNjb3VudGluZyIsMzQ6ImRvdWJsZS1hY2NvdW50aW5nIn0sazk9ZnVuY3Rpb24oKXt2YXIgUD0vKFxyXG58XG4pL2c7ZnVuY3Rpb24gUShyZSl7dmFyIGdlPVtbXSxyZS52LFtdXTtyZXR1cm4gcmUudj8ocmUucyYmZnVuY3Rpb24gTChyZSxnZSxfZSl7'@; put 'dmFyIHZlPVtdO3JlLnVuZGVybGluZSYmdmUucHVzaCgidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IikscmUudW5kZXJsaW5lPjEmJnZlLnB1c2goInRleHQtdW5kZXJsaW5lLXN0eWxlOiIrajFbcmUudW5kZXJsaW5lXSsiOyIpLHJlLnN6JiZ2ZS5wdXNoKCJmb250LXNpemU6IityZS5z'@; put 'eisicHQ7IikscmUub3V0bGluZSYmdmUucHVzaCgidGV4dC1lZmZlY3Q6IG91dGxpbmU7IikscmUuc2hhZG93JiZ2ZS5wdXNoKCJ0ZXh0LXNoYWRvdzogYXV0bzsiKSxyZS5jb2xvciYmcmUuY29sb3IucmdiJiZ2ZS5wdXNoKCJjb2xvcjogIyIrT3UocmUuY29sb3IucmdiKSsiOyIpLGdlLnB1'@; put 'c2goJzxzcGFuIHN0eWxlPSInK3ZlLmpvaW4oIiIpKyciPicpLHJlLmJvbGQmJihnZS5wdXNoKCI8Yj4iKSxfZS5wdXNoKCI8L2I+IikpLHJlLml0YWxpYyYmKGdlLnB1c2goIjxpPiIpLF9lLnB1c2goIjwvaT4iKSkscmUuc3RyaWtlJiYoZ2UucHVzaCgiPHM+IiksX2UucHVzaCgiPC9zPiIp'@; put 'KTt2YXIgU2U9cmUudmFsaWdufHwiIjsic3VwZXJzY3JpcHQiPT1TZXx8InN1cGVyIj09U2U/U2U9InN1cCI6InN1YnNjcmlwdCI9PVNlJiYoU2U9InN1YiIpLCIiIT1TZSYmKGdlLnB1c2goIjwiK1NlKyI+IiksX2UucHVzaCgiPC8iK1NlKyI+IikpLF9lLnB1c2goIjwvc3Bhbj4iKX0ocmUu'@; put 'cyxnZVswXSxnZVsyXSksZ2VbMF0uam9pbigiIikrZ2VbMV0ucmVwbGFjZShQLCI8YnIvPiIpK2dlWzJdLmpvaW4oIiIpKToiIn1yZXR1cm4gZnVuY3Rpb24oZ2Upe3JldHVybiBnZS5tYXAoUSkuam9pbigiIil9fSgpO2Z1bmN0aW9uIEpoKHkpe3JldHVybiB5Lm1hcChmdW5jdGlvbihMKXty'@; put 'ZXR1cm4gZnVuY3Rpb24gSW0oeSl7dmFyIFA9IiIsTD1bXTtyZXR1cm4geS5zJiYoeS5zLmJvbGQmJkwucHVzaCgiPGIvPiIpLHkucy5pdGFsaWMmJkwucHVzaCgiPGkvPiIpLHkucy5zdHJpa2UmJkwucHVzaCgiPHN0cmlrZS8+IikseS5zLnVuZGVybGluZSYmTC5wdXNoKCc8dSB2YWw9Iicr'@; put 'KGptW3kucy51bmRlcmxpbmVdfHwic2luZ2xlIikrJyIvPicpLHkucy5jb2xvciYmTC5wdXNoKFVkKHkucy5jb2xvcikpLHkucy5zeiYmTC5wdXNoKCc8c3ogdmFsPSInK3kucy5zeisnIi8+JykseS5zLm5hbWUmJkwucHVzaCgnPHJGb250IHZhbD0iJyt5LnMubmFtZSsnIi8+JyksKCJzdXBl'@; put 'ciI9PXkucy52YWxpZ258fCJzdWIiPT15LnMudmFsaWduKSYmTC5wdXNoKCc8dmVydEFsaWduIHZhbD0iJyt5LnMudmFsaWduKydzY3JpcHQiLz4nKSksTC5sZW5ndGgmJihQKz0iPHJQcj4iK0wuam9pbigiIikrIjwvclByPiIpLCI8cj4iKyhQKz1TcigidCIsSHIoeS52KSxudWxsKSkrIjwv'@; put 'cj4ifShMKX0pLmpvaW4oIiIpfXZhciBRdz0vPCg/Olx3KzopP3RbXj5dKj4oW148XSopPFwvKD86XHcrOik/dD4vZyxBOT0vPCg/Olx3KzopP3JcYltePl0qPi8sVDk9LzwoPzpcdys6KT9yUGguKj8+KFtcc1xTXSo/KTxcLyg/Olx3KzopP3JQaD4vZztmdW5jdGlvbiBEOSh5LFApe3ZhciBM'@; put 'PSFQfHxQLmNlbGxIVE1MLFE9e307cmV0dXJuIHk/KHkubWF0Y2goL15ccyo8KD86XHcrOik/dFtePl0qPi8pPyhRLnQ9eHIoUGkoeS5zbGljZSh5LmluZGV4T2YoIj4iKSsxKS5zcGxpdCgvPFwvKD86XHcrOik/dD4vKVswXXx8IiIpKSxRLnI9UGkoeSksTCYmKFEuaD1ybyhRLnQpKSk6eS5t'@; put 'YXRjaChBOSkmJihRLnI9UGkoeSksUS50PXhyKFBpKCh5LnJlcGxhY2UoVDksIiIpLm1hdGNoKFF3KXx8W10pLmpvaW4oIiIpLnJlcGxhY2UoJHQsIiIpKSksUS5SPURtKFEuciksTCYmKFEuaD1rOShRLlIpKSksUSk6e3Q6IiJ9fXZhciBlQz0vPCg/Olx3KzopP3NzdChbXj5dKik+KFtcc1xT'@; put 'XSopPFwvKD86XHcrOik/c3N0Pi8sdEM9LzwoPzpcdys6KT8oPzpzaXxzc3RJdGVtKT4vZyxuQz0vPFwvKD86XHcrOik/KD86c2l8c3N0SXRlbSk+LztIaS5TU1Q9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc2hh'@; put 'cmVkU3RyaW5ncyI7dmFyIGxEPS9eXHN8XHMkfFtcdFxuXHJdLztmdW5jdGlvbiBMbSh5LFApe2lmKCFQLmJvb2tTU1QpcmV0dXJuIiI7dmFyIEw9W0JuXTtMW0wubGVuZ3RoXT1Tcigic3N0IixudWxsLHt4bWxuczppcy5tYWluWzBdLGNvdW50OnkuQ291bnQsdW5pcXVlQ291bnQ6eS5Vbmlx'@; put 'dWV9KTtmb3IodmFyIFE9MDtRIT15Lmxlbmd0aDsrK1EpaWYobnVsbCE9eVtRXSl7dmFyIHJlPXlbUV0sZ2U9IjxzaT4iO3JlLnI/Z2UrPXJlLnI6KGdlKz0iPHQiLHJlLnR8fChyZS50PSIiKSxyZS50Lm1hdGNoKGxEKSYmKGdlKz0nIHhtbDpzcGFjZT0icHJlc2VydmUiJyksZ2UrPSI+IitI'@; put 'cihyZS50KSsiPC90PiIpLExbTC5sZW5ndGhdPWdlKz0iPC9zaT4ifXJldHVybiBMLmxlbmd0aD4yJiYoTFtMLmxlbmd0aF09Ijwvc3N0PiIsTFsxXT1MWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxMLmpvaW4oIiIpfXZhciBvQz1mdW5jdGlvbiBBMSh5LFAsTCl7dmFyIFE9MTMrNCp5LnQubGVu'@; put 'Z3RoLHJlPXkuUiYmeS5SLmxlbmd0aHx8eS5yO3kuciYmKHkuUj1EbSh5LnIpKSxyZSYmKFErPTQrNCp5LlIubGVuZ3RoKTt2YXIgZ2U9ITE7aWYobnVsbD09TCYmKGdlPSEwLEw9cHIoUSkpLEwud3JpdGVfc2hpZnQoMSxyZT8xOjApLHJjKHkudCxMKSxyZSl7TC53cml0ZV9zaGlmdCg0LHku'@; put 'Ui5sZW5ndGgpO2Zvcih2YXIgX2U9MCx2ZT0wO3ZlPHkuUi5sZW5ndGg7Kyt2ZSl7dmFyIFNlPXkuUlt2ZV07TC53cml0ZV9zaGlmdCgyLF9lKSxfZSs9KFNlLnZ8fCIiKS5sZW5ndGg7dmFyIEhlPVNlLnM/Z3UoUC5jZWxsWGZzLFAuY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpTZS5zfSxQ'@; put 'KTowO0wud3JpdGVfc2hpZnQoMixQLmNlbGxYZnNbSGVdLmZvbnRJZCl9fXJldHVybiBnZT9MLnNsaWNlKDAsTC5sKTpMfTtmdW5jdGlvbiB4Myh5LFApe3ZhciBMPXdjKCk7dWkoTCwiQnJ0QmVnaW5Tc3QiLGZ1bmN0aW9uIGlDKHksUCl7cmV0dXJuIFB8fChQPXByKDgpKSxQLndyaXRlX3No'@; put 'aWZ0KDQseS5Db3VudCksUC53cml0ZV9zaGlmdCg0LHkuVW5pcXVlKSxQfSh5KSk7Zm9yKHZhciBRPTA7UTx5Lmxlbmd0aDsrK1EpdWkoTCwiQnJ0U1NUSXRlbSIsb0MoeVtRXSxQKSk7cmV0dXJuIHVpKEwsIkJydEVuZFNzdCIpLEwuZW5kKCl9ZnVuY3Rpb24geGEoeSl7aWYodHlwZW9mIGNw'@; put 'dGFibGU8InUiKXJldHVybiBjcHRhYmxlLnV0aWxzLmVuY29kZShSLHkpO2Zvcih2YXIgUD1bXSxMPXkuc3BsaXQoIiIpLFE9MDtRPEwubGVuZ3RoOysrUSlQW1FdPUxbUV0uY2hhckNvZGVBdCgwKTtyZXR1cm4gUH1mdW5jdGlvbiBHMCh5LFApe3ZhciBMPXt9O3JldHVybiBMLk1ham9yPXku'@; put 'cmVhZF9zaGlmdCgyKSxMLk1pbm9yPXkucmVhZF9zaGlmdCgyKSxQPj00JiYoeS5sKz1QLTQpLEx9ZnVuY3Rpb24gc0MoeSl7Zm9yKHZhciBQPXkucmVhZF9zaGlmdCg0KSxMPXkubCtQLTQsUT17fSxyZT15LnJlYWRfc2hpZnQoNCksZ2U9W107cmUtLSA+MDspZ2UucHVzaCh7dDp5LnJlYWRf'@; put 'c2hpZnQoNCksdjp5LnJlYWRfc2hpZnQoMCwibHBwNCIpfSk7aWYoUS5uYW1lPXkucmVhZF9zaGlmdCgwLCJscHA0IiksUS5jb21wcz1nZSx5LmwhPUwpdGhyb3cgbmV3IEVycm9yKCJCYWQgRGF0YVNwYWNlTWFwRW50cnk6ICIreS5sKyIgIT0gIitMKTtyZXR1cm4gUX1mdW5jdGlvbiBJOSh5'@; put 'LFApe3ZhciBMPXkubCtQLFE9e307US5GbGFncz02MyZ5LnJlYWRfc2hpZnQoNCkseS5sKz00LFEuQWxnSUQ9eS5yZWFkX3NoaWZ0KDQpO3ZhciByZT0hMTtzd2l0Y2goUS5BbGdJRCl7Y2FzZSAyNjEyNjpjYXNlIDI2MTI3OmNhc2UgMjYxMjg6cmU9MzY9PVEuRmxhZ3M7YnJlYWs7Y2FzZSAy'@; put 'NjYyNTpyZT00PT0oNTImUS5GbGFncyk7YnJlYWs7Y2FzZSAwOnJlPTE2PT1RLkZsYWdzfHw0PT1RLkZsYWdzfHwzNj09US5GbGFnczticmVhaztkZWZhdWx0OnRocm93IlVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogIitRLkFsZ0lEfWlmKCFyZSl0aHJvdyBuZXcgRXJyb3Io'@; put 'IkVuY3J5cHRpb24gRmxhZ3MvQWxnSUQgbWlzbWF0Y2giKTtyZXR1cm4gUS5BbGdJREhhc2g9eS5yZWFkX3NoaWZ0KDQpLFEuS2V5U2l6ZT15LnJlYWRfc2hpZnQoNCksUS5Qcm92aWRlclR5cGU9eS5yZWFkX3NoaWZ0KDQpLHkubCs9OCxRLkNTUE5hbWU9eS5yZWFkX3NoaWZ0KEwteS5sPj4x'@; put 'LCJ1dGYxNmxlIikseS5sPUwsUX1mdW5jdGlvbiBSbSh5LFApe3ZhciBMPXt9LFE9eS5sK1A7cmV0dXJuIHkubCs9NCxMLlNhbHQ9eS5zbGljZSh5LmwseS5sKzE2KSx5LmwrPTE2LEwuVmVyaWZpZXI9eS5zbGljZSh5LmwseS5sKzE2KSx5LmwrPTE2LHkucmVhZF9zaGlmdCg0KSxMLlZlcmlm'@; put 'aWVySGFzaD15LnNsaWNlKHkubCxRKSx5Lmw9USxMfWZ1bmN0aW9uIGdaKHkpe2lmKDM2IT0oNjMmeS5yZWFkX3NoaWZ0KDQpKSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRpb25JbmZvIG1pc21hdGNoIik7dmFyIEw9eS5yZWFkX3NoaWZ0KDQpO3JldHVybnt0OiJTdGQiLGg6STkoeSxMKSx2'@; put 'OlJtKHkseS5sZW5ndGgteS5sKX19ZnVuY3Rpb24gaEQoKXt0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaXMgcGFzc3dvcmQtcHJvdGVjdGVkOiBFQ01BLTM3NiBFeHRlbnNpYmxlIil9ZnVuY3Rpb24gbVooeSl7dmFyIFA9WyJzYWx0U2l6ZSIsImJsb2NrU2l6ZSIsImtleUJpdHMiLCJoYXNoU2l6'@; put 'ZSIsImNpcGhlckFsZ29yaXRobSIsImNpcGhlckNoYWluaW5nIiwiaGFzaEFsZ29yaXRobSIsInNhbHRWYWx1ZSJdO3kubCs9NDt2YXIgTD15LnJlYWRfc2hpZnQoeS5sZW5ndGgteS5sLCJ1dGY4IiksUT17fTtyZXR1cm4gTC5yZXBsYWNlKCR0LGZ1bmN0aW9uKGdlKXt2YXIgX2U9bG4oZ2Up'@; put 'O3N3aXRjaChqbihfZVswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPGVuY3J5cHRpb24iOmNhc2UiPC9lbmNyeXB0aW9uPiI6Y2FzZSI8L2tleUVuY3J5cHRvcnM+IjpjYXNlIjwva2V5RW5jcnlwdG9yPiI6YnJlYWs7Y2FzZSI8a2V5RGF0YSI6UC5mb3JFYWNoKGZ1bmN0aW9uKHZlKXtRW3ZlXT1f'@; put 'ZVt2ZV19KTticmVhaztjYXNlIjxkYXRhSW50ZWdyaXR5IjpRLmVuY3J5cHRlZEhtYWNLZXk9X2UuZW5jcnlwdGVkSG1hY0tleSxRLmVuY3J5cHRlZEhtYWNWYWx1ZT1fZS5lbmNyeXB0ZWRIbWFjVmFsdWU7YnJlYWs7Y2FzZSI8a2V5RW5jcnlwdG9ycz4iOmNhc2UiPGtleUVuY3J5cHRvcnMi'@; put 'OlEuZW5jcz1bXTticmVhaztjYXNlIjxrZXlFbmNyeXB0b3IiOlEudXJpPV9lLnVyaTticmVhaztjYXNlIjxlbmNyeXB0ZWRLZXkiOlEuZW5jcy5wdXNoKF9lKTticmVhaztkZWZhdWx0OnRocm93IF9lWzBdfX0pLFF9ZnVuY3Rpb24gYUMoeSl7dmFyIEwsZ2UsUD0wLFE9eGEoeSkscmU9US5s'@; put 'ZW5ndGgrMTtmb3IoKEw9RyhyZSkpWzBdPVEubGVuZ3RoLGdlPTE7Z2UhPXJlOysrZ2UpTFtnZV09UVtnZS0xXTtmb3IoZ2U9cmUtMTtnZT49MDstLWdlKVA9KCgxNjM4NCZQPzE6MCl8UDw8MSYzMjc2NyleTFtnZV07cmV0dXJuIDUyODExXlB9dmFyIGZEPWZ1bmN0aW9uKCl7dmFyIHk9WzE4'@; put 'NywyNTUsMjU1LDE4NiwyNTUsMjU1LDE4NSwxMjgsMCwxOTAsMTUsMCwxOTEsMTUsMF0sUD1bNTc4NDAsNzQzOSw1MjM4MCwzMzk4NCw0MzY0LDM2MDAsNjE5MDIsMTI2MDYsNjI1OCw1NzY1Nyw1NDI4NywzNDA0MSwxMDI1Miw0MzM3MCwyMDE2M10sTD1bNDQ3OTYsMTk5MjksMzk4NTgsMTAw'@; put 'NTMsMjAxMDYsNDAyMTIsMTA3NjEsMzE1ODUsNjMxNzAsNjQ5MzMsNjAyNjcsNTA5MzUsNDAzOTksMTExOTksMTc3NjMsMzU1MjYsMTQ1MywyOTA2LDU4MTIsMTE2MjQsMjMyNDgsODg1LDE3NzAsMzU0MCw3MDgwLDE0MTYwLDI4MzIwLDU2NjQwLDU1MzY5LDQxMTM5LDIwODA3LDQxNjE0LDIx'@; put 'ODIxLDQzNjQyLDE3NjIxLDI4NDg1LDU2OTcwLDQ0MzQxLDE5MDE5LDM4MDM4LDE0NjA1LDI5MjEwLDYwMTk1LDUwNzkxLDQwMTc1LDEwNzUxLDIxNTAyLDQzMDA0LDI0NTM3LDE4Mzg3LDM2Nzc0LDM5NDksNzg5OCwxNTc5NiwzMTU5Miw2MzE4NCw0NzIwMSwyNDgwMyw0OTYwNiwzNzgwNSwx'@; put 'NDIwMywyODQwNiw1NjgxMiwxNzgyNCwzNTY0OCwxNjk3LDMzOTQsNjc4OCwxMzU3NiwyNzE1Miw0MzYwMSwxNzUzOSwzNTA3OCw1NTcsMTExNCwyMjI4LDQ0NTYsMzAzODgsNjA3NzYsNTE5NTMsMzQyNDMsNzA3OSwxNDE1OCwyODMxNiwxNDEyOCwyODI1Niw1NjUxMiw0MzQyNSwxNzI1MSwz'@; put 'NDUwMiw3NTk3LDEzMTA1LDI2MjEwLDUyNDIwLDM1MjQxLDg4MywxNzY2LDM1MzIsNDEyOSw4MjU4LDE2NTE2LDMzMDMyLDQ2NTcsOTMxNCwxODYyOF0scmU9ZnVuY3Rpb24oX2UsdmUpe3JldHVybiBmdW5jdGlvbihfZSl7cmV0dXJuIDI1NSYoX2U+PjF8X2U8PDcpfShfZV52ZSl9O3JldHVy'@; put 'biBmdW5jdGlvbih2ZSl7Zm9yKHZhciBTZT14YSh2ZSksSGU9ZnVuY3Rpb24oX2Upe2Zvcih2YXIgdmU9UFtfZS5sZW5ndGgtMV0sU2U9MTA0LEhlPV9lLmxlbmd0aC0xO0hlPj0wOy0tSGUpZm9yKHZhciBCZT1fZVtIZV0sR2U9MDs3IT1HZTsrK0dlKTY0JkJlJiYodmVePUxbU2VdKSxCZSo9'@; put 'MiwtLVNlO3JldHVybiB2ZX0oU2UpLEJlPVNlLmxlbmd0aCxHZT1HKDE2KSxudD0wOzE2IT1udDsrK250KUdlW250XT0wO3ZhciBjdDtmb3IoMT09KDEmQmUpJiYoR2VbQmVdPXJlKHlbMF0sSGU+PjgpLEdlWy0tQmVdPXJlKFNlW1NlLmxlbmd0aC0xXSwyNTUmSGUpKTtCZT4wOylHZVstLUJl'@; put 'XT1yZShTZVtCZV0sSGU+PjgpLEdlWy0tQmVdPXJlKFNlW0JlXSwyNTUmSGUpO2ZvcihCZT0xNSxjdD0xNS1TZS5sZW5ndGg7Y3Q+MDspR2VbQmVdPXJlKHlbY3RdLEhlPj44KSwtLWN0LEdlWy0tQmVdPXJlKFNlW0JlXSwyNTUmSGUpLC0tQmUsLS1jdDtyZXR1cm4gR2V9fSgpO3ZhciBPbT1m'@; put 'dW5jdGlvbigpe2Z1bmN0aW9uIHkocmUsZ2Upe3N3aXRjaChnZS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIFAoc2UuZGVjb2RlKHJlKSxnZSk7Y2FzZSJiaW5hcnkiOnJldHVybiBQKHJlLGdlKTtjYXNlImJ1ZmZlciI6cmV0dXJuIFAocmUudG9TdHJpbmcoImJpbmFyeSIpLGdlKTtjYXNl'@; put 'ImFycmF5IjpyZXR1cm4gUChQdChyZSksZ2UpfXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitnZS50eXBlKX1mdW5jdGlvbiBQKHJlLGdlKXt2YXIgdmU9KGdlfHx7fSkuZGVuc2U/W106e307aWYoIXJlLm1hdGNoKC9cXHRyb3dkLykpdGhyb3cgbmV3IEVycm9yKCJSVEYg'@; put 'bWlzc2luZyB0YWJsZSIpO3JldHVybiB2ZVsiIXJlZiJdPU9vKHtzOntjOjAscjowfSxlOntjOjAscjowfX0pLHZlfXJldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiBMKHJlLGdlKXtyZXR1cm4gRWQoeShyZSxnZSksZ2UpfSx0b19zaGVldDp5LGZyb21fc2hlZXQ6ZnVuY3Rpb24gUShyZSl7'@; put 'Zm9yKHZhciB2ZSxnZT1bIntcXHJ0ZjFcXGFuc2kiXSxfZT1PaShyZVsiIXJlZiJdKSxTZT1BcnJheS5pc0FycmF5KHJlKSxIZT1fZS5zLnI7SGU8PV9lLmUucjsrK0hlKXtnZS5wdXNoKCJcXHRyb3dkXFx0cmF1dG9maXQxIik7Zm9yKHZhciBCZT1fZS5zLmM7QmU8PV9lLmUuYzsrK0JlKWdl'@; put 'LnB1c2goIlxcY2VsbHgiKyhCZSsxKSk7Zm9yKGdlLnB1c2goIlxccGFyZFxcaW50YmwiKSxCZT1fZS5zLmM7QmU8PV9lLmUuYzsrK0JlKXt2YXIgR2U9ZGkoe3I6SGUsYzpCZX0pOyh2ZT1TZT8ocmVbSGVdfHxbXSlbQmVdOnJlW0dlXSkmJihudWxsIT12ZS52fHx2ZS5mJiYhdmUuRikmJihn'@; put 'ZS5wdXNoKCIgIisodmUud3x8KGN1KHZlKSx2ZS53KSkpLGdlLnB1c2goIlxcY2VsbCIpKX1nZS5wdXNoKCJcXHBhcmRcXGludGJsXFxyb3ciKX1yZXR1cm4gZ2Uuam9pbigiIikrIn0ifX19KCk7ZnVuY3Rpb24gZWYoeSl7dmFyIFA9eS5zbGljZSgiIyI9PT15WzBdPzE6MCkuc2xpY2UoMCw2'@; put 'KTtyZXR1cm5bcGFyc2VJbnQoUC5zbGljZSgwLDIpLDE2KSxwYXJzZUludChQLnNsaWNlKDIsNCksMTYpLHBhcnNlSW50KFAuc2xpY2UoNCw2KSwxNildfWZ1bmN0aW9uIHoxKHkpe2Zvcih2YXIgUD0wLEw9MTszIT1QOysrUClMPTI1NipMKyh5W1BdPjI1NT8yNTU6eVtQXTwwPzA6eVtQXSk7'@; put 'cmV0dXJuIEwudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9ZnVuY3Rpb24gJDAoeSxQKXtpZihudWxsPT15KXJldHVybiBudWxsIT1QO2lmKG51bGw9PVApcmV0dXJuITA7aWYoMT09eS5hdXRvJiYxPT1QLmF1dG8pcmV0dXJuITE7aWYoISF5LmF1dG8hPSEhUC5hdXRvfHxu'@; put 'dWxsPT15LnRoZW1lIT0obnVsbD09UC50aGVtZSkpcmV0dXJuITA7aWYobnVsbCE9eS50aGVtZSlyZXR1cm4geS50aGVtZSE9UC50aGVtZXx8eS50aW50IT1QLnRpbnQ7aWYobnVsbD09eS5yZ2ImJm51bGw9PVAucmdiKXJldHVybiExO3ZhciBMPXkucmdiOyJudW1iZXIiPT10eXBlb2YgTCYm'@; put 'KEw9TC50b1N0cmluZygxNikpLEw9TC5zbGljZSgtNik7dmFyIFE9UC5yZ2I7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBRJiYoUT1RLnRvU3RyaW5nKDE2KSksUT1RLnNsaWNlKC02KSxMLnRvTG93ZXJDYXNlKCkhPVEudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBQbSh5LFApe3JldHVybiBudWxs'@; put 'PT15P251bGwhPVA6bnVsbD09UD9udWxsIT15Onkuc3R5bGUhPVAuc3R5bGV8fCQwKHkuY29sb3IsUC5jb2xvcil9ZnVuY3Rpb24gQmQoeSxQKXtpZigwPT09UClyZXR1cm4geTt2YXIgTD1mdW5jdGlvbiBwMCh5KXt2YXIgUD15WzBdLzI1NSxMPXlbMV0vMjU1LFE9eVsyXS8yNTUscmU9TWF0'@; put 'aC5tYXgoUCxMLFEpLGdlPU1hdGgubWluKFAsTCxRKSxfZT1yZS1nZTtpZigwPT09X2UpcmV0dXJuWzAsMCxQXTt2YXIgU2UsdmU9MCxIZT1yZStnZTtzd2l0Y2goU2U9X2UvKEhlPjE/Mi1IZTpIZSkscmUpe2Nhc2UgUDp2ZT0oKEwtUSkvX2UrNiklNjticmVhaztjYXNlIEw6dmU9KFEtUCkv'@; put 'X2UrMjticmVhaztjYXNlIFE6dmU9KFAtTCkvX2UrNH1yZXR1cm5bdmUvNixTZSxIZS8yXX0oZWYoeSkpO3JldHVybiBMWzJdPVA8MD9MWzJdKigxK1ApOjEtKDEtTFsyXSkqKDEtUCksejEoZnVuY3Rpb24gRjQoeSl7dmFyIFNlLEw9eVsxXSxRPXlbMl0scmU9MipMKihRPC41P1E6MS1RKSxn'@; put 'ZT1RLXJlLzIsX2U9W2dlLGdlLGdlXSx2ZT02KnlbMF07aWYoMCE9PUwpc3dpdGNoKDB8dmUpe2Nhc2UgMDpjYXNlIDY6U2U9cmUqdmUsX2VbMF0rPXJlLF9lWzFdKz1TZTticmVhaztjYXNlIDE6X2VbMF0rPVNlPXJlKigyLXZlKSxfZVsxXSs9cmU7YnJlYWs7Y2FzZSAyOlNlPXJlKih2ZS0y'@; put 'KSxfZVsxXSs9cmUsX2VbMl0rPVNlO2JyZWFrO2Nhc2UgMzpfZVsxXSs9U2U9cmUqKDQtdmUpLF9lWzJdKz1yZTticmVhaztjYXNlIDQ6U2U9cmUqKHZlLTQpLF9lWzJdKz1yZSxfZVswXSs9U2U7YnJlYWs7Y2FzZSA1Ol9lWzJdKz1TZT1yZSooNi12ZSksX2VbMF0rPXJlfWZvcih2YXIgSGU9'@; put 'MDszIT1IZTsrK0hlKV9lW0hlXT1NYXRoLnJvdW5kKDI1NSpfZVtIZV0pO3JldHVybiBfZX0oTCkpfXZhciBsQz02LHBsPWxDO2Z1bmN0aW9uIHhjKHkpe3JldHVybiBNYXRoLmZsb29yKCh5K01hdGgucm91bmQoMTI4L3BsKS8yNTYpKnBsKX1mdW5jdGlvbiB0Zih5KXtyZXR1cm4gTWF0aC5m'@; put 'bG9vcigoeS01KS9wbCoxMDArLjUpLzEwMH1mdW5jdGlvbiBqZCh5KXtyZXR1cm4gTWF0aC5yb3VuZCgoeSpwbCs1KS9wbCoyNTYpLzI1Nn1mdW5jdGlvbiBwdSh5KXt5LmJlc3RGaXQmJmRlbGV0ZSB5LmJlc3RGaXQseS53aWR0aD8oeS53cHg9eGMoeS53aWR0aCkseS53Y2g9dGYoeS53cHgp'@; put 'LHkuTURXPXBsKTp5LndweD8oeS53Y2g9dGYoeS53cHgpLHkud2lkdGg9amQoeS53Y2gpLHkuTURXPXBsKToibnVtYmVyIj09dHlwZW9mIHkud2NoJiYoeS53aWR0aD1qZCh5LndjaCkseS53cHg9eGMoeS53aWR0aCkseS5NRFc9cGwpLHkuY3VzdG9tV2lkdGgmJmRlbGV0ZSB5LmN1c3RvbVdp'@; put 'ZHRofXZhciBMOT05NixuZj1MOTtmdW5jdGlvbiBqMih5KXtyZXR1cm4gNzIqeS9uZn1mdW5jdGlvbiBVMSh5KXtyZXR1cm4geSpuZi83Mn1mdW5jdGlvbiBGbSh5KXtuZj15PXtvc3g6NzIsd2luOjk2LHdpbjEwMDo5Nix3aW4xMjU6MTIwLHdpbjE1MDoxNDR9W3ldfHx5fHxMOSxObT1nMFt5'@; put 'XX1mdW5jdGlvbiBJMyh5KXt5LmhweD95LmhwdD1qMih5LmhweCk6eS5ocHQmJih5LmhweD1VMSh5LmhwdCkpfXZhciBIND17Tm9uZToibm9uZSIsU29saWQ6InNvbGlkIixHcmF5NTA6Im1lZGl1bUdyYXkiLEdyYXk3NToiZGFya0dyYXkiLEdyYXkyNToibGlnaHRHcmF5IixIb3J6U3RyaXBl'@; put 'OiJkYXJrSG9yaXpvbnRhbCIsVmVydFN0cmlwZToiZGFya1ZlcnRpY2FsIixSZXZlcnNlRGlhZ1N0cmlwZToiZGFya0Rvd24iLERpYWdTdHJpcGU6ImRhcmtVcCIsRGlhZ0Nyb3NzOiJkYXJrR3JpZCIsVGhpY2tEaWFnQ3Jvc3M6ImRhcmtUcmVsbGlzIixUaGluSG9yelN0cmlwZToibGlnaHRI'@; put 'b3Jpem9udGFsIixUaGluVmVydFN0cmlwZToibGlnaHRWZXJ0aWNhbCIsVGhpblJldmVyc2VEaWFnU3RyaXBlOiJsaWdodERvd24iLFRoaW5Ib3J6Q3Jvc3M6ImxpZ2h0R3JpZCJ9LF9EPWJlKEg0KSx6Mj17b3JhbmdlOjE2NzUzOTIwLGJsYWNrOjAsbmF2eToxMjgsYmx1ZToyNTUsZ3JlZW46'@; put 'MzI3NjgsdGVhbDozMjg5NixsaW1lOjY1MjgwLGFxdWE6NjU1MzUsc2lsdmVyOjEyNjMyMjU2LG1hcm9vbjo4Mzg4NjA4LHB1cnBsZTo4Mzg4NzM2LG9saXZlOjg0MjEzNzYsZ3JheTo4NDIxNTA0LHJlZDoxNjcxMTY4MCxmdWNoc2lhOjE2NzExOTM1LHllbGxvdzoxNjc3Njk2MCx3aGl0ZTox'@; put 'Njc3NzIxNX07ZnVuY3Rpb24gTjQoeSxQKXtpZih5LnJlcGxhY2UoIiMiLCIiKS5tYXRjaCgvXlswLTlhLWZBLUZdezZ9JC8pKXJldHVybiBwYXJzZUludCh5LnJlcGxhY2UoIiMiLCIiKSwxNik7aWYoejJbeV0pcmV0dXJuIHoyW3ldO3ZhciBMPXkubWF0Y2goL3JnYlwoXHMqKFxkKilccyos'@; put 'XHMqKFxkKilccyosXHMqKFxkKilccypcKS8pO2lmKEwpcmV0dXJuKCtMWzFdPDwxNikrKCtMWzJdPDw4KSsgK0xbM107aWYoTD15Lm1hdGNoKC9yZ2JhXChccyooXGQqKVxzKixccyooXGQqKVxzKixccyooXGQqKVxzKihcZCopLykpcmV0dXJuIDAhPShMWzRdJiZMWzRdLmxlbmd0aD4wJiYr'@; put 'TFs0XXx8MCl8fCtMWzFdPjB8fCtMWzJdPjB8fCtMWzNdPjA/KCtMWzFdPDwxNikrKCtMWzJdPDw4KSsgK0xbM106UD8tMToxNjc3NzIxNTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gSFRNTCBjb2xvciAiK3kpfXZhciBnMD17fTtmdW5jdGlvbiBIbSh5KXt5PXl8fDk2O3ZhciBQPXtDYWxp'@; put 'YnJpOltdLEFyaWFsOltdLCJTcGFya2Fzc2UgUmciOltdLFx1NWI4Ylx1NGY1MzpbXSxcdTZlMzhcdTMwYjRcdTMwYjdcdTMwYzNcdTMwYWY6W10sIkNlbnR1cnkgR290aGljIjpbXX07cmV0dXJuIFAuQ2FsaWJyaVsxMV09NyxQLkNhbGlicmlbMTJdPXs3Mjo2LDk2OjgsMTIwOjEwLDE0NDox'@; put 'Mn1beV18fDgsUC5DYWxpYnJpWzEzXT0xMCxQLkNhbGlicmlbMTRdPTExLFAuQ2FsaWJyaVsxNl09MTIsUC5DYWxpYnJpWzE4XT0xNCxQLkNhbGlicmlbMjBdPTE2LFAuXHU1YjhiXHU0ZjUzWzExXT04LFAuXHU2ZTM4XHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmWzExXT04LFBbIlNwYXJrYXNz'@; put 'ZSBSZyJdWzExXT03LFAuQXJpYWxbMTBdPTcsUFsiQ2VudHVyeSBHb3RoaWMiXVsxMl09OSxQfWcwWzcyXT1IbSg3MiksZzBbOTZdPUhtKDk2KSxnMFsxMjBdPUhtKDEyMCksZzBbMTQ0XT1IbSgxNDQpO3ZhciBObT1nMFs5Nl07ZnVuY3Rpb24gVm0oeSl7cmV0dXJuKE5tW3kubmFtZXx8eS5G'@; put 'b250TmFtZV18fFtdKVt5LnN6fHx5LlNpemVdfWZ1bmN0aW9uIFoxKHkpe2lmKHkpe3ZhciBQPVZtKHkpO2lmKFApcmV0dXJuIHBsPVB9cmV0dXJuIHBsPTZ9ZnVuY3Rpb24gUjkoeSxQLEwpe3JldHVybiB6MShmdW5jdGlvbiB1Qyh5LFAsTCl7cmV0dXJuW01hdGgucm91bmQoUFswXSpMK3lb'@; put 'MF0qKDEtTCkpLE1hdGgucm91bmQoUFsxXSpMK3lbMV0qKDEtTCkpLE1hdGgucm91bmQoUFsyXSpMK3lbMl0qKDEtTCkpXX0oZWYoIm51bWJlciI9PXR5cGVvZiB5LnJnYj8oIjAwMDAwIit5LnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpOnkucmdiKSxlZigibnVtYmVyIj09dHlwZW9mIFAucmdi'@; put 'PygiMDAwMDAiK1AudG9TdHJpbmcoMTYpKS5zbGljZSgtNik6UC5yZ2IpLEwpKX1mdW5jdGlvbiBCbSh5LFAsTCl7aWYoTClzd2l0Y2goK3kpe2Nhc2UgNjQ6eT02NTticmVhaztjYXNlIDY1Onk9NjR9dmFyIFE9UCYmUFsreV18fENyWyt5XXx8TmFbK3ktMjAwXTtpZig4MT09K3kmJihRPUNy'@; put 'WzFdKSxRfHwoUT1DclsxXSksIVEpdGhyb3cgbmV3IEVycm9yKCJiYWQgSUNWIGluZGV4ICIreSk7cmV0dXJuIHoxKFEpfWZ1bmN0aW9uIFUyKHksUCxMKXt2YXIgUT17fTtyZXR1cm4gbnVsbCE9eS5pbmRleGVkJiYoUS5pbmRleD1wYXJzZUludCh5LmluZGV4ZWQsMTApLFEucmdiPUJtKFEu'@; put 'aW5kZXgsUC5JbmRleGVkKSksbnVsbCE9eS50aGVtZSYmKFEudGhlbWU9cGFyc2VJbnQoeS50aGVtZSwxMCkpLG51bGwhPXkudGludCYmKFEudGludD1wYXJzZUZsb2F0KHkudGludCkpLG51bGwhPXkucmdiJiYoUS5yZ2I9eS5yZ2Iuc2xpY2UoLTYpKSxudWxsIT1RLnRoZW1lJiYhUS5yZ2Im'@; put 'JkwudGhlbWVFbGVtZW50cyYmKFEucmdiPUJkKEwudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbUS50aGVtZV0ucmdiLFEudGludHx8MCksUS5yYXdfcmdiPUwudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbUS50aGVtZV0ucmdiKSxRfWZ1bmN0aW9uIEwzKHksUCxMLFEpe1AuQm9yZGVycz1bXTt2'@; put 'YXIgcmU9e30sZ2U9e30sX2U9ITE7KHlbMF0ubWF0Y2goJHQpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih2ZSl7dmFyIFNlPWxuKHZlKTtzd2l0Y2goam4oU2VbMF0pKXtjYXNlIjxib3JkZXJzIjpjYXNlIjxib3JkZXJzPiI6Y2FzZSI8L2JvcmRlcnM+IjpjYXNlIjwvYm9yZGVyPiI6Y2FzZSI8'@; put 'bGVmdC8+IjpjYXNlIjwvbGVmdD4iOmNhc2UiPHJpZ2h0Lz4iOmNhc2UiPC9yaWdodD4iOmNhc2UiPHRvcC8+IjpjYXNlIjwvdG9wPiI6Y2FzZSI8Ym90dG9tLz4iOmNhc2UiPC9ib3R0b20+IjpjYXNlIjxkaWFnb25hbCI6Y2FzZSI8ZGlhZ29uYWw+IjpjYXNlIjxkaWFnb25hbC8+IjpjYXNl'@; put 'Ijxob3Jpem9udGFsIjpjYXNlIjxob3Jpem9udGFsPiI6Y2FzZSI8aG9yaXpvbnRhbC8+IjpjYXNlIjx2ZXJ0aWNhbCI6Y2FzZSI8dmVydGljYWw+IjpjYXNlIjx2ZXJ0aWNhbC8+IjpjYXNlIjxzdGFydCI6Y2FzZSI8c3RhcnQ+IjpjYXNlIjxzdGFydC8+IjpjYXNlIjwvc3RhcnQ+IjpjYXNl'@; put 'IjxlbmQiOmNhc2UiPGVuZD4iOmNhc2UiPGVuZC8+IjpjYXNlIjwvZW5kPiI6Y2FzZSI8Y29sb3IvPiI6Y2FzZSI8L2NvbG9yPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8Ym9yZGVyIjpjYXNlIjxib3JkZXI+IjpjYXNlIjxib3Jk'@; put 'ZXIvPiI6cmU9e30sU2UuZGlhZ29uYWxVcCYmKHJlLmRpYWdvbmFsVXA9eXIoU2UuZGlhZ29uYWxVcCkpLFNlLmRpYWdvbmFsRG93biYmKHJlLmRpYWdvbmFsRG93bj15cihTZS5kaWFnb25hbERvd24pKSxQLkJvcmRlcnMucHVzaChyZSk7YnJlYWs7Y2FzZSI8bGVmdCI6Y2FzZSI8bGVmdD4i'@; put 'OmdlPXJlLmxlZnQ9e30sU2Uuc3R5bGUmJihnZS5zdHlsZT1TZS5zdHlsZSk7YnJlYWs7Y2FzZSI8cmlnaHQiOmNhc2UiPHJpZ2h0PiI6Z2U9cmUucmlnaHQ9e30sU2Uuc3R5bGUmJihnZS5zdHlsZT1TZS5zdHlsZSk7YnJlYWs7Y2FzZSI8dG9wIjpjYXNlIjx0b3A+IjpnZT1yZS50b3A9e30s'@; put 'U2Uuc3R5bGUmJihnZS5zdHlsZT1TZS5zdHlsZSk7YnJlYWs7Y2FzZSI8Ym90dG9tIjpjYXNlIjxib3R0b20+IjpnZT1yZS5ib3R0b209e30sU2Uuc3R5bGUmJihnZS5zdHlsZT1TZS5zdHlsZSk7YnJlYWs7Y2FzZSI8L2RpYWdvbmFsPiI6cmUuZGlhZ29uYWw9Z2UsZ2U9e307YnJlYWs7Y2Fz'@; put 'ZSI8L2hvcml6b250YWw+IjpyZS5ob3Jpem9udGFsPWdlLGdlPXt9O2JyZWFrO2Nhc2UiPC92ZXJ0aWNhbD4iOnJlLnZlcnRpY2FsPWdlLGdlPXt9O2JyZWFrO2Nhc2UiPGNvbG9yIjpjYXNlIjxjb2xvcj4iOmdlLmNvbG9yfHwoZ2UuY29sb3I9e30pLFNlLmF1dG8mJihnZS5jb2xvci5hdXRv'@; put 'PXlyKFNlLmF1dG8pKSxudWxsIT1TZS5yZ2I/Z2UuY29sb3IucmdiPVNlLnJnYi5zbGljZSgtNik6U2UuaW5kZXhlZD8oZ2UuY29sb3IuaW5kZXg9cGFyc2VJbnQoU2UuaW5kZXhlZCwxMCksZ2UuY29sb3IucmdiPUJtKGdlLmNvbG9yLmluZGV4LFAuSW5kZXhlZCwhMSkpOlNlLnRoZW1lJiYo'@; put 'Z2UuY29sb3IudGhlbWU9cGFyc2VJbnQoU2UudGhlbWUsMTApLFNlLnRpbnQmJihnZS5jb2xvci50aW50PXBhcnNlRmxvYXQoU2UudGludCkpLFNlLnRoZW1lJiZMLnRoZW1lRWxlbWVudHMmJkwudGhlbWVFbGVtZW50cy5jbHJTY2hlbWUmJihnZS5jb2xvci5yZ2I9QmQoTC50aGVtZUVsZW1l'@; put 'bnRzLmNsclNjaGVtZVtnZS5jb2xvci50aGVtZV0ucmdiLGdlLmNvbG9yLnRpbnR8fDApKSksIVNlLmF1dG8mJm51bGw9PVNlLnJnYiYmIVNlLmluZGV4ZWQmJmRlbGV0ZSBnZS5jb2xvcjticmVhaztjYXNlIjxleHQiOl9lPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpfZT0hMTticmVhaztkZWZh'@; put 'dWx0OmlmKFEmJlEuV1RGJiYhX2UpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitTZVswXSsiIGluIGJvcmRlcnMiKX19KX1mdW5jdGlvbiBSMyh5LFApe3ZhciBMPVsiPCIrUF07cmV0dXJuIHkmJnkuc3R5bGU/KEwucHVzaCgnIHN0eWxlPSInK3kuc3R5bGUrJyInKSx5LmNvbG9y'@; put 'PyhMLnB1c2goIj4iKSxMLnB1c2goVWQoeS5jb2xvciwhMCkpLEwuam9pbigiIikrIjwvIitQKyI+Iik6TC5qb2luKCIiKSsiLz4iKTpMWzBdKyIvPiJ9ZnVuY3Rpb24gTzkoeSxQLEwsUSl7UC5GaWxscz1bXTt2YXIgcmU9e30sZ2U9e30sX2U9ITEsdmU9ITE7KHlbMF0ubWF0Y2goJHQpfHxb'@; put 'XSkuZm9yRWFjaChmdW5jdGlvbihTZSl7dmFyIEhlPWxuKFNlKTtzd2l0Y2goam4oSGVbMF0pKXtjYXNlIjxmaWxscyI6Y2FzZSI8ZmlsbHM+IjpjYXNlIjwvZmlsbHM+IjpjYXNlIjwvZmlsbD4iOmNhc2UiPC9ncmFkaWVudEZpbGw+IjpjYXNlIjxiZ0NvbG9yLz4iOmNhc2UiPC9iZ0NvbG9y'@; put 'PiI6Y2FzZSI8ZmdDb2xvci8+IjpjYXNlIjwvZmdDb2xvcj4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmNhc2UiPHN0b3AvPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZmlsbD4iOmNhc2UiPGZpbGwiOmNhc2UiPGZp'@; put 'bGwvPiI6UC5GaWxscy5wdXNoKHJlPXt9KTticmVhaztjYXNlIjxncmFkaWVudEZpbGw+IjpyZS5zdG9wcz1bXTticmVhaztjYXNlIjxncmFkaWVudEZpbGwiOnJlLnN0b3BzPVtdLEhlLmRlZ3JlZSYmKHJlLmFuZ2xlPStIZS5kZWdyZWUpO2JyZWFrO2Nhc2UiPHBhdHRlcm5GaWxsIjpjYXNl'@; put 'IjxwYXR0ZXJuRmlsbD4iOkhlLnBhdHRlcm5UeXBlJiYocmUucGF0dGVyblR5cGU9SGUucGF0dGVyblR5cGUpO2JyZWFrO2Nhc2UiPHBhdHRlcm5GaWxsLz4iOmNhc2UiPC9wYXR0ZXJuRmlsbD4iOmlmKF9lKXRocm93IG5ldyBFcnJvcigiYmFkIHN0b3AiKTticmVhaztjYXNlIjxjb2xvciI6'@; put 'Y2FzZSI8YmdDb2xvciI6Y2FzZSI8ZmdDb2xvciI6dmFyIEJlPWpuKEhlWzBdKS5zbGljZSgxKTsiY29sb3IiIT1CZSYmIXJlW0JlXSYmKHJlW0JlXT17fSk7dmFyIEdlPV9lP2dlOnJlW0JlXTtudWxsIT1IZS5pbmRleGVkJiYoR2UuaW5kZXg9cGFyc2VJbnQoSGUuaW5kZXhlZCwxMCksR2Uu'@; put 'cmdiPUJtKEdlLmluZGV4LFAuSW5kZXhlZCkpLG51bGwhPUhlLnRoZW1lJiYoR2UudGhlbWU9cGFyc2VJbnQoSGUudGhlbWUsMTApKSxudWxsIT1IZS50aW50JiYoR2UudGludD1wYXJzZUZsb2F0KEhlLnRpbnQpKSxudWxsIT1IZS5yZ2ImJihHZS5yZ2I9SGUucmdiLnNsaWNlKC02KSksbnVs'@; put 'bCE9SGUuYXV0byYmZGVsZXRlIHJlW0JlXSxudWxsIT1HZS50aGVtZSYmIUdlLnJnYiYmTC50aGVtZUVsZW1lbnRzJiYoR2UucmdiPUJkKEwudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbR2UudGhlbWVdLnJnYixHZS50aW50fHwwKSxRLldURiYmKEdlLnJhd19yZ2I9TC50aGVtZUVsZW1lbnRz'@; put 'LmNsclNjaGVtZVtHZS50aGVtZV0ucmdiKSk7YnJlYWs7Y2FzZSI8c3RvcD4iOl9lPSEwLGdlPXt9O2JyZWFrO2Nhc2UiPHN0b3AiOl9lPSEwLGdlPXt9LG51bGwhPUhlLnBvc2l0aW9uJiYoZ2Uudj1wYXJzZUZsb2F0KEhlLnBvc2l0aW9uKSk7YnJlYWs7Y2FzZSI8L3N0b3A+IjpfZT0hMSxy'@; put 'ZS5zdG9wcy5wdXNoKGdlKTticmVhaztjYXNlIjxleHQiOnZlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+Ijp2ZT0hMTticmVhaztkZWZhdWx0OmlmKFEmJlEuV1RGJiYhdmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitIZVswXSsiIGluIGZpbGxzIil9fSl9ZnVuY3Rpb24geUQoeSxQ'@; put 'LEwsUSl7UC5Gb250cz1bXTt2YXIgcmU9e30sZ2U9ITE7KHlbMF0ubWF0Y2goJHQpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIHZlPWxuKF9lKTtzd2l0Y2goam4odmVbMF0pKXtjYXNlIjxmb250cyI6Y2FzZSI8Zm9udHM+IjpjYXNlIjwvZm9udHM+IjpicmVhaztjYXNlIjxmb250'@; put 'IjpjYXNlIjxmb250PiI6aWYoIi8+IiE9X2Uuc2xpY2UoLTIpKWJyZWFrO2Nhc2UiPC9mb250PiI6Y2FzZSI8Zm9udC8+IjpQLkZvbnRzLnB1c2gocmUpLHJlPXt9O2JyZWFrO2Nhc2UiPG5hbWUiOnZlLnZhbCYmKHJlLm5hbWU9UGkodmUudmFsKSk7YnJlYWs7Y2FzZSI8bmFtZS8+IjpjYXNl'@; put 'IjwvbmFtZT4iOmJyZWFrO2Nhc2UiPGIiOnJlLmJvbGQ9dmUudmFsP3lyKHZlLnZhbCk6MTticmVhaztjYXNlIjxiLz4iOmNhc2UiPGI+IjpyZS5ib2xkPTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjpyZS5pdGFsaWM9dmUudmFsP3lyKHZlLnZhbCk6MTticmVhaztjYXNlIjxp'@; put 'Lz4iOmNhc2UiPGk+IjpyZS5pdGFsaWM9MTticmVhaztjYXNlIjwvaT4iOmJyZWFrO2Nhc2UiPHUiOnN3aXRjaCh2ZS52YWwpe2Nhc2Uibm9uZSI6cmUudW5kZXJsaW5lPTA7YnJlYWs7Y2FzZSJzaW5nbGUiOnJlLnVuZGVybGluZT0xO2JyZWFrO2Nhc2UiZG91YmxlIjpyZS51bmRlcmxpbmU9'@; put 'MjticmVhaztjYXNlInNpbmdsZUFjY291bnRpbmciOnJlLnVuZGVybGluZT0zMzticmVhaztjYXNlImRvdWJsZUFjY291bnRpbmciOnJlLnVuZGVybGluZT0zNH1icmVhaztjYXNlIjx1Lz4iOmNhc2UiPHU+IjpyZS51bmRlcmxpbmU9MTticmVhaztjYXNlIjwvdT4iOmJyZWFrO2Nhc2UiPHN0'@; put 'cmlrZSI6cmUuc3RyaWtlPXZlLnZhbD95cih2ZS52YWwpOjE7YnJlYWs7Y2FzZSI8c3RyaWtlLz4iOnJlLnN0cmlrZT0xO2JyZWFrO2Nhc2UiPG91dGxpbmUiOnJlLm91dGxpbmU9dmUudmFsP3lyKHZlLnZhbCk6MTticmVhaztjYXNlIjxvdXRsaW5lLz4iOnJlLm91dGxpbmU9MTticmVhaztj'@; put 'YXNlIjxzaGFkb3ciOnJlLnNoYWRvdz12ZS52YWw/eXIodmUudmFsKToxO2JyZWFrO2Nhc2UiPHNoYWRvdy8+IjpyZS5zaGFkb3c9MTticmVhaztjYXNlIjxjb25kZW5zZSI6cmUuY29uZGVuc2U9dmUudmFsP3lyKHZlLnZhbCk6MTticmVhaztjYXNlIjxjb25kZW5zZS8+IjpyZS5jb25kZW5z'@; put 'ZT0xO2JyZWFrO2Nhc2UiPGV4dGVuZCI6cmUuZXh0ZW5kPXZlLnZhbD95cih2ZS52YWwpOjE7YnJlYWs7Y2FzZSI8ZXh0ZW5kLz4iOnJlLmV4dGVuZD0xO2JyZWFrO2Nhc2UiPHN6Ijp2ZS52YWwmJihyZS5zej0rdmUudmFsKTticmVhaztjYXNlIjxzei8+IjpjYXNlIjwvc3o+IjpicmVhaztj'@; put 'YXNlIjx2ZXJ0QWxpZ24iOiJub25lIiE9KHZlLnZhbHx8Im5vbmUiKSYmKHJlLnZhbGlnbj12ZS52YWwucmVwbGFjZSgic2NyaXB0IiwiIikpO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6YnJlYWs7Y2FzZSI8ZmFtaWx5Ijp2ZS52YWwmJihyZS5mYW1pbHk9'@; put 'cGFyc2VJbnQodmUudmFsLDEwKSk7YnJlYWs7Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVhaztjYXNlIjxzY2hlbWUiOnZlLnZhbCYmKHJlLnNjaGVtZT12ZS52YWwpO2JyZWFrO2Nhc2UiPHNjaGVtZS8+IjpjYXNlIjwvc2NoZW1lPiI6YnJlYWs7Y2FzZSI8Y2hhcnNldCI6'@; put 'aWYoIjEiPT12ZS52YWwpYnJlYWs7dmUuY29kZXBhZ2U9SVtwYXJzZUludCh2ZS52YWwsMTApXTticmVhaztjYXNlIjxjb2xvciI6cmUuY29sb3J8fChyZS5jb2xvcj17fSksdmUuYXV0byYmKHJlLmNvbG9yLmF1dG89eXIodmUuYXV0bykpLHZlLnJnYj9yZS5jb2xvci5yZ2I9dmUucmdiLnNs'@; put 'aWNlKC02KTp2ZS5pbmRleGVkPyhyZS5jb2xvci5pbmRleD1wYXJzZUludCh2ZS5pbmRleGVkLDEwKSxyZS5jb2xvci5yZ2I9Qm0ocmUuY29sb3IuaW5kZXgsUC5JbmRleGVkKSk6dmUudGhlbWUmJihyZS5jb2xvci50aGVtZT1wYXJzZUludCh2ZS50aGVtZSwxMCksdmUudGludCYmKHJlLmNv'@; put 'bG9yLnRpbnQ9cGFyc2VGbG9hdCh2ZS50aW50KSksdmUudGhlbWUmJkwudGhlbWVFbGVtZW50cyYmTC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZSYmKHJlLmNvbG9yLnJnYj1CZChMLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW3JlLmNvbG9yLnRoZW1lXS5yZ2IscmUuY29sb3IudGludHx8MCkp'@; put 'KTticmVhaztjYXNlIjxjb2xvci8+IjpjYXNlIjwvY29sb3I+IjpicmVhaztjYXNlIjxBbHRlcm5hdGVDb250ZW50IjpnZT0hMDticmVhaztjYXNlIjwvQWx0ZXJuYXRlQ29udGVudD4iOmdlPSExO2JyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJy'@; put 'ZWFrO2Nhc2UiPGV4dCI6Z2U9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOmdlPSExO2JyZWFrO2RlZmF1bHQ6aWYoUSYmUS5XVEYmJiFnZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK3ZlWzBdKyIgaW4gZm9udHMiKX19KX12YXIgam09ezA6Im5vbmUiLDE6InNpbmdsZSIsMjoiZG91'@; put 'YmxlIiwzMzoic2luZ2xlQWNjb3VudGluZyIsMzQ6ImRvdWJsZUFjY291bnRpbmcifSx6ZD1bIm51bUZtdElkIiwiZmlsbElkIiwiZm9udElkIiwiYm9yZGVySWQiLCJ4ZklkIl0sWjI9WyJhcHBseUFsaWdubWVudCIsImFwcGx5Qm9yZGVyIiwiYXBwbHlGaWxsIiwiYXBwbHlGb250IiwiYXBw'@; put 'bHlOdW1iZXJGb3JtYXQiLCJhcHBseVByb3RlY3Rpb24iLCJwaXZvdEJ1dHRvbiIsInF1b3RlUHJlZml4Il0seEQ9ZnVuY3Rpb24oKXt2YXIgeT0vPCg/Olx3KzopP2ZvbnQoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Zm9udD4vLFA9LzwoPzpcdys6KT9udW1GbXQoW14+XSopXC8+LyxM'@; put 'PS88KD86XHcrOik/ZmlsbChbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9maWxsPi8scmU9LzwoPzpcdys6KT9ib3JkZXIoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Ym9yZGVyPi87cmV0dXJuIGZ1bmN0aW9uKHZlLFNlLEhlLEJlKXt2YXIgZHQsQ3QsR2U9e30sbnQ9e307cmV0dXJu'@; put 'KGR0PXZlLm1hdGNoKHkpKSYmKHlEKGR0LEdlLEhlLEJlKSwoR2UuRm9udHN8fFtdKVswXSYmVXQobnQsR2UuRm9udHNbMF0pKSwoZHQ9dmUubWF0Y2goUCkpJiYoQ3Q9bG4oUGkoZHRbMF0pKSxudC56PUN0LmZvcm1hdENvZGU/eHIoQ3QuZm9ybWF0Q29kZSk6KFNlLk51bWJlckZtdHx8W10p'@; put 'WytDdC5udW1GbXRJZF18fCJHZW5lcmFsIiksKGR0PXZlLm1hdGNoKEwpKSYmKE85KGR0LEdlLEhlLEJlKSwoR2UuRmlsbHN8fFtdKVswXSYmVXQobnQsR2UuRmlsbHNbMF0pKSwoZHQ9dmUubWF0Y2gocmUpKSYmKEwzKGR0LEdlLEhlLEJlKSwoR2UuQm9yZGVyc3x8W10pWzBdJiZVdChudCxH'@; put 'ZS5Cb3JkZXJzWzBdKSksbnR9fSgpLE1aPS88KD86XHcrOik/ZHhmPltcU1xzXSo/PFwvKD86XHcrOik/ZHhmPi9nLGtaPS88KD86XHcrOik/dGFibGVTdHlsZVxiLio/PltcU1xzXSo/PFwvKD86XHcrOik/dGFibGVTdHlsZT4vZzt2YXIgWm09ZnVuY3Rpb24oKXt2YXIgUD0vPCg/Olx3Kzop'@; put 'P251bUZtdHMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/bnVtRm10cz4vLEw9LzwoPzpcdys6KT9jZWxsU3R5bGVYZnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Y2VsbFN0eWxlWGZzPi8sUT0vPCg/Olx3KzopP2NlbGxTdHlsZXMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/'@; put 'Y2VsbFN0eWxlcz4vLHJlPS88KD86XHcrOik/Y2VsbFhmcyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9jZWxsWGZzPi8sZ2U9LzwoPzpcdys6KT9maWxscyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9maWxscz4vLF9lPS88KD86XHcrOik/Zm9udHMoW14+XSopPltcU1xzXSo/PFwv'@; put 'KD86XHcrOik/Zm9udHM+Lyx2ZT0vPCg/Olx3KzopP2JvcmRlcnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Ym9yZGVycz4vLFNlPS88KD86XHcrOik/aW5kZXhlZENvbG9ycyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9pbmRleGVkQ29sb3JzPi8sSGU9LzwoPzpcdys6KT90YWJs'@; put 'ZVN0eWxlcyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT90YWJsZVN0eWxlcz4vLEJlPS88KD86XHcrOik/ZHhmcyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9keGZzPi87cmV0dXJuIGZ1bmN0aW9uKG50LGR0LEN0KXt2YXIgYnQsY3Q9e307cmV0dXJuIG50PygoYnQ9KG50PW50LnJl'@; put 'cGxhY2UoLzwhLS0oW1xzXFNdKj8pLS0+L2dtLCIiKS5yZXBsYWNlKC88IURPQ1RZUEVbXlxbXSpcW1teXF1dKlxdPi9nbSwiIikpLm1hdGNoKFNlKSkmJmZ1bmN0aW9uIFA5KHksUCxMKXtQLkluZGV4ZWR8fChQLkluZGV4ZWQ9W10pO3ZhciBRPSExOyh5WzBdLm1hdGNoKCR0KXx8W10pLmZv'@; put 'ckVhY2goZnVuY3Rpb24ocmUpe3ZhciBnZT1sbihyZSk7c3dpdGNoKGpuKGdlWzBdKSl7Y2FzZSI8aW5kZXhlZENvbG9ycz4iOmNhc2UiPGluZGV4ZWRDb2xvcnMiOmNhc2UiPGluZGV4ZWRDb2xvcnMvPiI6Y2FzZSI8L2luZGV4ZWRDb2xvcnM+IjpjYXNlIjwvcmdiQ29sb3I+IjpjYXNlIjxl'@; put 'eHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxyZ2JDb2xvciI6ZGVsZXRlIGdlWzBdO3ZhciBfZT1wYXJzZUludChnZS5yZ2Iuc2xpY2UoLTYpLDE2KTtQLkluZGV4ZWQucHVzaChbX2U+PjE2JjI1NSxfZT4+OCYyNTUsMjU1Jl9lXSk7YnJlYWs7Y2Fz'@; put 'ZSI8ZXh0IjpRPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpRPSExO2JyZWFrO2RlZmF1bHQ6aWYoTCYmTC5XVEYmJiFRKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrZ2VbMF0rIiBpbiBjZWxsU3R5bGVzIil9fSl9KGJ0LGN0LEN0KSwoYnQ9bnQubWF0Y2goUCkpJiZmdW5jdGlvbiBD'@; put 'RCh5LFAsTCl7UC5OdW1iZXJGbXQ9W107Zm9yKHZhciBRPWx0KHcuX3RhYmxlKSxyZT0wO3JlPFEubGVuZ3RoOysrcmUpUC5OdW1iZXJGbXRbUVtyZV1dPXcuX3RhYmxlW1FbcmVdXTt2YXIgZ2U9eVswXS5tYXRjaCgkdCk7aWYoZ2UpZm9yKHJlPTA7cmU8Z2UubGVuZ3RoOysrcmUpe3ZhciBf'@; put 'ZT1sbihnZVtyZV0pO3N3aXRjaChqbihfZVswXSkpe2Nhc2UiPG51bUZtdHMiOmNhc2UiPC9udW1GbXRzPiI6Y2FzZSI8bnVtRm10cy8+IjpjYXNlIjxudW1GbXRzPiI6Y2FzZSI8L251bUZtdD4iOmJyZWFrO2Nhc2UiPG51bUZtdCI6dmFyIHZlPXhyKFBpKF9lLmZvcm1hdENvZGUpKSxTZT1w'@; put 'YXJzZUludChfZS5udW1GbXRJZCwxMCk7aWYoUC5OdW1iZXJGbXRbU2VdPXZlLFNlPjApe2lmKFNlPjM5Mil7Zm9yKFNlPTM5MjtTZT42MCYmbnVsbCE9UC5OdW1iZXJGbXRbU2VdOy0tU2UpO1AuTnVtYmVyRm10W1NlXT12ZX13LmxvYWQodmUsU2UpfWJyZWFrO2RlZmF1bHQ6aWYoTC5XVEYp'@; put 'dGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitfZVswXSsiIGluIG51bUZtdHMiKX19fShidCxjdCxDdCksKGJ0PW50Lm1hdGNoKF9lKSkmJnlEKGJ0LGN0LGR0LEN0KSwoYnQ9bnQubWF0Y2goZ2UpKSYmTzkoYnQsY3QsZHQsQ3QpLChidD1udC5tYXRjaCh2ZSkpJiZMMyhidCxjdCxk'@; put 'dCxDdCksKGJ0PW50Lm1hdGNoKEwpKSYmZnVuY3Rpb24gaEMoeSxQLEwpe1AuQ2VsbFN0eWxlWGY9W107dmFyIFEscmU9ITE7KHlbMF0ubWF0Y2goJHQpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihnZSl7dmFyIF9lPWxuKGdlKSx2ZT0wO3N3aXRjaChqbihfZVswXSkpe2Nhc2UiPGNlbGxTdHls'@; put 'ZVhmcyI6Y2FzZSI8Y2VsbFN0eWxlWGZzPiI6Y2FzZSI8Y2VsbFN0eWxlWGZzLz4iOmNhc2UiPC9jZWxsU3R5bGVYZnM+IjpjYXNlIjwveGY+IjpjYXNlIjwvYWxpZ25tZW50PiI6Y2FzZSI8L3Byb3RlY3Rpb24+IjpjYXNlIjxwcm90ZWN0aW9uLz4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0'@; put 'THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHhmIjpjYXNlIjx4Zi8+Ijpmb3IoZGVsZXRlKFE9X2UpWzBdLHZlPTA7dmU8emQubGVuZ3RoOysrdmUpUVt6ZFt2ZV1dJiYoUVt6ZFt2ZV1dPXBhcnNlSW50KFFbemRbdmVdXSwxMCkpO2Zvcih2ZT0wO3ZlPFoyLmxlbmd0aDsrK3Zl'@; put 'KVFbWjJbdmVdXSYmKFFbWjJbdmVdXT15cihRW1oyW3ZlXV0pKTtpZihQLk51bWJlckZtdCYmUS5udW1GbXRJZD4zOTIpZm9yKHZlPTM5Mjt2ZT42MDstLXZlKWlmKFAuTnVtYmVyRm10W1EubnVtRm10SWRdPT1QLk51bWJlckZtdFt2ZV0pe1EubnVtRm10SWQ9dmU7YnJlYWt9UC5DZWxsU3R5'@; put 'bGVYZi5wdXNoKFEpO2JyZWFrO2Nhc2UiPGFsaWdubWVudCI6Y2FzZSI8YWxpZ25tZW50Lz4iOnZhciBTZT17fTtfZS52ZXJ0aWNhbCYmKFNlLnZlcnRpY2FsPV9lLnZlcnRpY2FsKSxfZS5ob3Jpem9udGFsJiYoU2UuaG9yaXpvbnRhbD1fZS5ob3Jpem9udGFsKSxudWxsIT1fZS50ZXh0Um90'@; put 'YXRpb24mJihTZS50ZXh0Um90YXRpb249X2UudGV4dFJvdGF0aW9uKSxfZS5pbmRlbnQmJihTZS5pbmRlbnQ9X2UuaW5kZW50KSxfZS53cmFwVGV4dCYmKFNlLndyYXBUZXh0PV9lLndyYXBUZXh0KSxfZS5zaHJpbmtUb0ZpdCYmKFNlLnNocmlua1RvRml0PXlyKF9lLnNocmlua1RvRml0KSks'@; put 'US5hbGlnbm1lbnQ9U2U7YnJlYWs7Y2FzZSI8cHJvdGVjdGlvbiI6US5wcm90ZWN0aW9uPXt9LHlyKF9lLmhpZGRlbikmJihRLnByb3RlY3Rpb24uaGlkZGVuPSEwKSxudWxsIT1fZS5sb2NrZWQmJihRLnByb3RlY3Rpb24uZWRpdGFibGU9IXlyKF9lLmxvY2tlZCkpO2JyZWFrO2Nhc2UiPGV4'@; put 'dCI6cmU9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOnJlPSExO2JyZWFrO2RlZmF1bHQ6aWYoTCYmTC5XVEYmJiFyZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK19lWzBdKyIgaW4gY2VsbFN0eWxlWGZzIil9fSl9KGJ0LGN0LEN0KSwoYnQ9bnQubWF0Y2goUSkpJiZmdW5jdGlvbiBT'@; put 'RCh5LFAsTCl7UC5DZWxsU3R5bGVYZnx8KFAuQ2VsbFN0eWxlWGY9W10pO3ZhciBRPSExOyh5WzBdLm1hdGNoKCR0KXx8W10pLmZvckVhY2goZnVuY3Rpb24ocmUpe3ZhciBnZT1sbihyZSk7c3dpdGNoKGpuKGdlWzBdKSl7Y2FzZSI8Y2VsbFN0eWxlcyI6Y2FzZSI8Y2VsbFN0eWxlcz4iOmNh'@; put 'c2UiPGNlbGxTdHlsZXMvPiI6Y2FzZSI8L2NlbGxTdHlsZXM+IjpjYXNlIjwveGY+IjpjYXNlIjwvY2VsbFN0eWxlPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8Y2VsbFN0eWxlIjpjYXNlIjxjZWxsU3R5bGUvPiI6ZGVsZXRlIGdl'@; put 'WzBdO3ZhciBfZT0rZ2UueGZJZDtpZihQLkNlbGxTdHlsZVhmW19lXSlQLkNlbGxTdHlsZVhmW19lXS5zdHlsZT1QaShnZS5uYW1lKTtlbHNlIGlmKCFnZS5idWlsdGluSWQpdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZmluZCBDZWxsU3R5bGUgIitfZSk7YnJlYWs7Y2FzZSI8ZXh0IjpR'@; put 'PSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpRPSExO2JyZWFrO2RlZmF1bHQ6aWYoTCYmTC5XVEYmJiFRKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrZ2VbMF0rIiBpbiBjZWxsU3R5bGVzIil9fSl9KGJ0LGN0LEN0KSwoYnQ9bnQubWF0Y2gocmUpKSYmZnVuY3Rpb24gZEMoeSxQLEwp'@; put 'e1AuQ2VsbFhmPVtdO3ZhciBRLHJlPSExOyh5WzBdLm1hdGNoKCR0KXx8W10pLmZvckVhY2goZnVuY3Rpb24oZ2Upe3ZhciBfZT1sbihnZSksdmU9MDtzd2l0Y2goam4oX2VbMF0pKXtjYXNlIjxjZWxsWGZzIjpjYXNlIjxjZWxsWGZzPiI6Y2FzZSI8Y2VsbFhmcy8+IjpjYXNlIjwvY2VsbFhm'@; put 'cz4iOmNhc2UiPC94Zj4iOmNhc2UiPC9hbGlnbm1lbnQ+IjpjYXNlIjwvcHJvdGVjdGlvbj4iOmNhc2UiPHByb3RlY3Rpb24vPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8eGYiOmNhc2UiPHhmLz4iOmZvcihkZWxldGUoUT1fZSlb'@; put 'MF0sdmU9MDt2ZTx6ZC5sZW5ndGg7Kyt2ZSlRW3pkW3ZlXV0mJihRW3pkW3ZlXV09cGFyc2VJbnQoUVt6ZFt2ZV1dLDEwKSk7Zm9yKHZlPTA7dmU8WjIubGVuZ3RoOysrdmUpUVtaMlt2ZV1dJiYoUVtaMlt2ZV1dPXlyKFFbWjJbdmVdXSkpO2lmKFAuTnVtYmVyRm10JiZRLm51bUZtdElkPjM5'@; put 'Milmb3IodmU9MzkyO3ZlPjYwOy0tdmUpaWYoUC5OdW1iZXJGbXRbUS5udW1GbXRJZF09PVAuTnVtYmVyRm10W3ZlXSl7US5udW1GbXRJZD12ZTticmVha31QLkNlbGxTdHlsZVhmJiZRLnhmSWQmJlAuQ2VsbFN0eWxlWGZbUS54ZklkXSYmUC5DZWxsU3R5bGVYZltRLnhmSWRdLnN0eWxlJiYo'@; put 'US5zdHlsZT1QLkNlbGxTdHlsZVhmW1EueGZJZF0uc3R5bGUpLFAuQ2VsbFhmLnB1c2goUSk7YnJlYWs7Y2FzZSI8YWxpZ25tZW50IjpjYXNlIjxhbGlnbm1lbnQvPiI6dmFyIFNlPXt9O19lLnZlcnRpY2FsJiYoU2UudmVydGljYWw9X2UudmVydGljYWwpLF9lLmhvcml6b250YWwmJihTZS5o'@; put 'b3Jpem9udGFsPV9lLmhvcml6b250YWwpLG51bGwhPV9lLnRleHRSb3RhdGlvbiYmKFNlLnRleHRSb3RhdGlvbj1fZS50ZXh0Um90YXRpb24pLF9lLmluZGVudCYmKFNlLmluZGVudD1fZS5pbmRlbnQpLF9lLndyYXBUZXh0JiYoU2Uud3JhcFRleHQ9eXIoX2Uud3JhcFRleHQpKSxfZS5zaHJp'@; put 'bmtUb0ZpdCYmKFNlLnNocmlua1RvRml0PXlyKF9lLnNocmlua1RvRml0KSksUS5hbGlnbm1lbnQ9U2U7YnJlYWs7Y2FzZSI8cHJvdGVjdGlvbiI6US5wcm90ZWN0aW9uPXt9LHlyKF9lLmhpZGRlbikmJihRLnByb3RlY3Rpb24uaGlkZGVuPSEwKSxudWxsIT1fZS5sb2NrZWQmJihRLnByb3Rl'@; put 'Y3Rpb24uZWRpdGFibGU9IXlyKF9lLmxvY2tlZCkpO2JyZWFrO2Nhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPGV4dCI6cmU9ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpjYXNlIjwvZXh0PiI6cmU9ITE7YnJlYWs7ZGVmYXVsdDppZihMJiZMLldURiYmIXJlKXRocm93'@; put 'IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrX2VbMF0rIiBpbiBjZWxsWGZzIil9fSl9KGJ0LGN0LEN0KSwoYnQ9bnQubWF0Y2goQmUpKSYmZnVuY3Rpb24gRjkoeSxQLEwsUSl7UC5EWEZ8fChQLkRYRj1bXSksKHlbMF0ubWF0Y2goTVopfHxbXSkuZm9yRWFjaChmdW5jdGlvbihyZSl7UC5E'@; put 'WEYucHVzaCh4RChyZSxQLEwsUSkpfSl9KGJ0LGN0LGR0LEN0KSwoYnQ9bnQubWF0Y2goSGUpKSYmZnVuY3Rpb24gQVooeSxQLEwsUSl7UC5UYWJsZXx8KFAuVGFibGU9W10pLCh5WzBdLm1hdGNoKGtaKXx8W10pLmZvckVhY2goZnVuY3Rpb24ocmUpe1AuVGFibGUucHVzaChmdW5jdGlvbiB4'@; put 'Wih5LFAsTCxRKXt2YXIgcmU9ITEsZ2U9e307cmV0dXJuKHkubWF0Y2goJHQpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIHZlPWxuKF9lKTtzd2l0Y2goam4odmVbMF0pKXtjYXNlIjx0YWJsZVN0eWxlPiI6Y2FzZSI8dGFibGVTdHlsZSI6Z2UubmFtZT12ZS5uYW1lLnJlcGxhY2Uo'@; put 'L14oVGFibGV8UGl2b3QpU3R5bGUvLCIiKSxnZS5yYXduYW1lPXZlLm5hbWUsZ2UucGl2b3Q9IXZlLnBpdm90fHx5cih2ZS5waXZvdCksZ2UudGFibGU9IXZlLnRhYmxlfHx5cih2ZS50YWJsZSk7YnJlYWs7Y2FzZSI8dGFibGVTdHlsZS8+IjpjYXNlIjwvdGFibGVTdHlsZT4iOmNhc2UiPGV4'@; put 'dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHRhYmxlU3R5bGVFbGVtZW50IjppZih2ZS50eXBlJiZ2ZS5keGZJZCl7aWYoIVAuRFhGfHwhUC5EWEZbK3ZlLmR4ZklkXSl0aHJvdyBuZXcgRXJyb3IoX2UrIiBjYW5ub3QgZmluZCBEWEYiKTtnZVt2ZS50'@; put 'eXBlXT1QLkRYRlsrdmUuZHhmSWRdfWJyZWFrO2Nhc2UiPGV4dCI6cmU9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOnJlPSExO2JyZWFrO2RlZmF1bHQ6aWYoUSYmUS5XVEYmJiFyZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK3ZlWzBdKyIgaW4gdGFibGVTdHlsZSIpfX0pLGdlfShy'@; put 'ZSxQLDAsUSkpfSl9KGJ0LGN0LDAsQ3QpLChjdC5Gb250c3x8W10pWzBdJiZaMShjdC5Gb250c1swXSksY3QpOmN0fX0oKSxmQz1Tcigic3R5bGVTaGVldCIsbnVsbCx7eG1sbnM6aXMubWFpblswXSwieG1sbnM6dnQiOmlzLnZ0fSk7ZnVuY3Rpb24gcEMoeSxQKXt2YXIgUSxMPVtCbixmQ107'@; put 'eS5TU0YmJm51bGwhPShRPWZ1bmN0aW9uIHptKHkpe3ZhciBQPVsiPG51bUZtdHM+Il07cmV0dXJuW1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9yRWFjaChmdW5jdGlvbihMKXtmb3IodmFyIFE9TFswXTtRPD1MWzFdOysrUSludWxsIT15W1FdJiYoUFtQLmxlbmd0aF09U3Io'@; put 'Im51bUZtdCIsbnVsbCx7bnVtRm10SWQ6USxmb3JtYXRDb2RlOkhyKHlbUV0pfSkpfSksMT09PVAubGVuZ3RoPyIiOihQW1AubGVuZ3RoXT0iPC9udW1GbXRzPiIsUFswXT1TcigibnVtRm10cyIsbnVsbCx7Y291bnQ6UC5sZW5ndGgtMn0pLnJlcGxhY2UoIi8+IiwiPiIpLFAuam9pbigiIikp'@; put 'fSh5LlNTRikpJiYoTFtMLmxlbmd0aF09USksTFtMLmxlbmd0aF09ZnVuY3Rpb24gd0QoeSl7dmFyIFA9W107cmV0dXJuIHkuZm9yRWFjaChmdW5jdGlvbihMKXt2YXIgUT1bIjxmb250PiJdO0wuYm9sZCYmUS5wdXNoKCI8Yi8+IiksTC5pdGFsaWMmJlEucHVzaCgiPGkvPiIpLEwuc3RyaWtl'@; put 'JiZRLnB1c2goIjxzdHJpa2UvPiIpLEwuc2hhZG93JiZRLnB1c2goIjxzaGFkb3cvPiIpLGptWytMLnVuZGVybGluZV0mJlEucHVzaCgnPHUgdmFsPSInK2ptWytMLnVuZGVybGluZV0rJyIvPicpLEwuc3omJlEucHVzaCgnPHN6IHZhbD0iJytMLnN6KyciLz4nKSxMLmNvbG9yJiZRLnB1c2go'@; put 'VWQoTC5jb2xvciwhMCkpLEwubmFtZSYmUS5wdXNoKCc8bmFtZSB2YWw9IicrTC5uYW1lKyciLz4nKSxMLmZhbWlseSYmUS5wdXNoKCc8ZmFtaWx5IHZhbD0iJytMLmZhbWlseSsnIi8+JyksTC5zY2hlbWUmJlEucHVzaCgnPHNjaGVtZSB2YWw9IicrTC5zY2hlbWUrJyIvPicpLEwudmFsaWdu'@; put 'JiZRLnB1c2goJzx2ZXJ0QWxpZ24gdmFsPSInK0wudmFsaWduKygic3ViIj09TC52YWxpZ258fCJzdXBlciI9PUwudmFsaWduPyJzY3JpcHQiOiIiKSsnIi8+JyksUC5wdXNoKFEuam9pbigiIikrIjwvZm9udD4iKX0pLCc8Zm9udHMgY291bnQ9IicrUC5sZW5ndGgrJyI+JytQLmpvaW4oIiIp'@; put 'KyI8L2ZvbnRzPiJ9KCh5LlN0eWxlc3x8e30pLkZvbnRzfHxbXSksTFtMLmxlbmd0aF09ZnVuY3Rpb24gYkQoeSl7dmFyIFA9W107cmV0dXJuIHkuZm9yRWFjaChmdW5jdGlvbihMKXt2YXIgUT1udWxsO2lmKEwuc3RvcHMmJkwuc3RvcHMubGVuZ3RoKXt2YXIgcmU9e307TC5hbmdsZSYmKHJl'@; put 'LmRlZ3JlZT1NYXRoLnJvdW5kKEwuYW5nbGUpKSxRPUwuc3RvcHMubWFwKGZ1bmN0aW9uKGdlKXtyZXR1cm4gU3IoInN0b3AiLFVkKGdlLCJjb2xvciIsITApLG51bGwhPWdlLnY/e3Bvc2l0aW9uOmdlLnZ9Ont9KX0pLFAucHVzaCgiPGZpbGw+IitTcigiZ3JhZGllbnRGaWxsIixRLmpvaW4o'@; put 'IiIpLHJlKSsiPC9maWxsPiIpfWVsc2V7aWYoTC5mZ0NvbG9yKXtpZihRPShRfHwiIikrIjxmZ0NvbG9yICIsTC5mZ0NvbG9yLnRoZW1lKVErPSd0aGVtZT0iJytMLmZnQ29sb3IudGhlbWUrJyInKyhMLmZnQ29sb3IudGludD8nIHRpbnQ9IicrTC5mZ0NvbG9yLnRpbnQrJyInOiIiKSsiLz4i'@; put 'O2Vsc2UgaWYobnVsbCE9TC5mZ0NvbG9yLmluZGV4JiZudWxsPT1MLmZnQ29sb3IucmdiKVErPSdpbmRleGVkPSInK0wuZmdDb2xvci5pbmRleCsnIi8+JztlbHNlIGlmKEwuZmdDb2xvci5hdXRvKVErPSdhdXRvPSIxIi8+JztlbHNle2lmKG51bGw9PUwuZmdDb2xvci5yZ2IpdGhyb3cgbmV3'@; put 'IEVycm9yKCJCYWQgY29sb3IgIitsdChMLmZnQ29sb3IpLmpvaW4oInwiKSk7USs9J3JnYj0iRkYnK091KEwuZmdDb2xvci5yZ2IpKyciLz4nfSJzb2xpZCI9PUwucGF0dGVyblR5cGUmJiFMLmJnQ29sb3ImJihMLmJnQ29sb3I9e2luZGV4OjY0fSl9aWYoTC5iZ0NvbG9yKWlmKFE9KFF8fCIi'@; put 'KSsiPGJnQ29sb3IgIixMLmJnQ29sb3IudGhlbWUpUSs9J3RoZW1lPSInK0wuYmdDb2xvci50aGVtZSsnIi8+JztlbHNlIGlmKG51bGwhPUwuYmdDb2xvci5pbmRleCYmbnVsbD09TC5iZ0NvbG9yLnJnYilRKz0naW5kZXhlZD0iJytMLmJnQ29sb3IuaW5kZXgrJyIvPic7ZWxzZSBpZihMLmJn'@; put 'Q29sb3IuYXV0bylRKz0nYXV0bz0iMSIvPic7ZWxzZXtpZihudWxsPT1MLmJnQ29sb3IucmdiKXRocm93IG5ldyBFcnJvcigiQmFkIGNvbG9yICIrbHQoTC5iZ0NvbG9yKS5qb2luKCJ8IikpO1ErPSdyZ2I9IkZGJytPdShMLmJnQ29sb3IucmdiKSsnIi8+J31QLnB1c2goIjxmaWxsPiIrU3Io'@; put 'InBhdHRlcm5GaWxsIixRLHtwYXR0ZXJuVHlwZTpMLnBhdHRlcm5UeXBlfSkrIjwvZmlsbD4iKX19KSwnPGZpbGxzIGNvdW50PSInK1AubGVuZ3RoKyciPicrUC5qb2luKCIiKSsiPC9maWxscz4ifSgoeS5TdHlsZXN8fHt9KS5GaWxsc3x8W10pLExbTC5sZW5ndGhdPWZ1bmN0aW9uIHdaKHkp'@; put 'e3ZhciBQPVtdO3JldHVybiB5LmZvckVhY2goZnVuY3Rpb24oTCl7dmFyIFE9W107US5wdXNoKFIzKEwubGVmdCwibGVmdCIpKSxRLnB1c2goUjMoTC5yaWdodCwicmlnaHQiKSksUS5wdXNoKFIzKEwudG9wLCJ0b3AiKSksUS5wdXNoKFIzKEwuYm90dG9tLCJib3R0b20iKSksUS5wdXNoKFIz'@; put 'KEwuZGlhZ29uYWwsImRpYWdvbmFsIikpLFAucHVzaCgiPGJvcmRlcj4iK1Euam9pbigiIikrIjwvYm9yZGVyPiIpfSksJzxib3JkZXJzIGNvdW50PSInK1AubGVuZ3RoKyciPicrUC5qb2luKCIiKSsiPC9ib3JkZXJzPiJ9KCh5LlN0eWxlc3x8e30pLkJvcmRlcnN8fFtdKSxMW0wubGVuZ3Ro'@; put 'XT1mdW5jdGlvbiBTWih5KXt2YXIgUD1bJzx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIi8+J107aWYoeSlmb3IodmFyIEw9MTtMPHkubGVuZ3RoOysrTClQLnB1c2goU3IoInhmIixudWxsLHtudW1GbXRJZDp5W0xdLm51bUZtdElkfHwwLGZvbnRJ'@; put 'ZDp5W0xdLmZvbnRJZHx8MCxmaWxsSWQ6eVtMXS5maWxsSWR8fDAsYm9yZGVySWQ6eVtMXS5ib3JkZXJJZHx8MH0pKTtyZXR1cm4nPGNlbGxTdHlsZVhmcyBjb3VudD0iJytQLmxlbmd0aCsnIj4nK1Auam9pbigiIikrIjwvY2VsbFN0eWxlWGZzPiJ9KFAuY2VsbFN0eWxlWGZzKSwoUT1mdW5j'@; put 'dGlvbiBDWih5KXt2YXIgUD1bXTtyZXR1cm4gUFtQLmxlbmd0aF09U3IoImNlbGxYZnMiLG51bGwpLHkuZm9yRWFjaChmdW5jdGlvbihMKXt2YXIgUT1MLmFsaWdubWVudDtkZWxldGUgTC5hbGlnbm1lbnQ7dmFyIHJlPUwucHJvdGVjdGlvbjtkZWxldGUgTC5wcm90ZWN0aW9uO3ZhciBnZT1R'@; put 'P1NyKCJhbGlnbm1lbnQiLG51bGwsUSk6IiI7Z2UrPXJlP1NyKCJwcm90ZWN0aW9uIixudWxsLHtoaWRkZW46cmUuaGlkZGVuPzE6MCxsb2NrZWQ6cmUuZWRpdGFibGU/MDoxfSk6IiIsUFtQLmxlbmd0aF09U3IoInhmIixnZXx8bnVsbCxMKSxRJiYoTC5hbGlnbm1lbnQ9USkscmUmJihMLnBy'@; put 'b3RlY3Rpb249cmUpfSksUFtQLmxlbmd0aF09IjwvY2VsbFhmcz4iLDI9PT1QLmxlbmd0aD8iIjooUFswXT1TcigiY2VsbFhmcyIsbnVsbCx7Y291bnQ6UC5sZW5ndGgtMn0pLnJlcGxhY2UoIi8+IiwiPiIpLFAuam9pbigiIikpfShQLmNlbGxYZnMpKSYmKExbTC5sZW5ndGhdPVEpLExbTC5s'@; put 'ZW5ndGhdPWZ1bmN0aW9uIE1EKHkpe3ZhciBQPVsnPGNlbGxTdHlsZSBuYW1lPSJOb3JtYWwiIHhmSWQ9IjAiIGJ1aWx0aW5JZD0iMCIvPiddO2lmKHkpZm9yKHZhciBMPTE7TDx5Lmxlbmd0aDsrK0wpUC5wdXNoKFNyKCJjZWxsU3R5bGUiLG51bGwse25hbWU6eVtMXS5uYW1lLHhmSWQ6TH0p'@; put 'KTtyZXR1cm4nPGNlbGxTdHlsZXMgY291bnQ9IicrUC5sZW5ndGgrJyI+JytQLmpvaW4oIiIpKyI8L2NlbGxTdHlsZXM+In0oUC5jZWxsU3R5bGVYZnMpLHkuU3R5bGVzLkRYRnx8KHkuU3R5bGVzLkRYRj1bXSk7dmFyIHJlPWZ1bmN0aW9uIFRaKHksUCxMKXt2YXIgUT1bJzx0YWJsZVN0eWxl'@; put 'cyBjb3VudD0iJysoeXx8W10pLmxlbmd0aCsnIiBkZWZhdWx0VGFibGVTdHlsZT0iVGFibGVTdHlsZU1lZGl1bTkiIGRlZmF1bHRQaXZvdFN0eWxlPSJQaXZvdFN0eWxlTWVkaXVtNCInXTtyZXR1cm4geSYmeS5sZW5ndGg/KFFbMF0rPSI+Iix5LmZvckVhY2goZnVuY3Rpb24ocmUpe1EucHVz'@; put 'aChmdW5jdGlvbiBFWih5LFAsTCl7dmFyIFE9W107WyJ3aG9sZVRhYmxlIiwiaGVhZGVyUm93IiwidG90YWxSb3ciLCJmaXJzdENvbHVtbiIsImxhc3RDb2x1bW4iLCJmaXJzdFJvd1N0cmlwZSIsInNlY29uZFJvd1N0cmlwZSIsImZpcnN0Q29sdW1uU3RyaXBlIiwic2Vjb25kQ29sdW1uU3Ry'@; put 'aXBlIiwiZmlyc3RIZWFkZXJDZWxsIiwibGFzdEhlYWRlckNlbGwiLCJmaXJzdFRvdGFsQ2VsbCIsImxhc3RUb3RhbENlbGwiLCJmaXJzdFN1YnRvdGFsQ29sdW1uIiwic2Vjb25kU3VidG90YWxDb2x1bW4iLCJ0aGlyZFN1YnRvdGFsQ29sdW1uIiwiZmlyc3RTdWJ0b3RhbFJvdyIsInNlY29u'@; put 'ZFN1YnRvdGFsUm93IiwidGhpcmRTdWJ0b3RhbFJvdyIsImJsYW5rUm93IiwiZmlyc3RDb2x1bW5TdWJoZWFkaW5nIiwic2Vjb25kQ29sdW1uU3ViaGVhZGluZyIsInRoaXJkQ29sdW1uU3ViaGVhZGluZyIsImZpcnN0Um93U3ViaGVhZGluZyIsInNlY29uZFJvd1N1YmhlYWRpbmciLCJ0aGly'@; put 'ZFJvd1N1YmhlYWRpbmciLCJwYWdlRmllbGRMYWJlbHMiLCJwYWdlRmllbGRWYWx1ZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKGdlKXtpZih5W2dlXSl7dmFyIF9lPUZvKFAseVtnZV0pO1EucHVzaCgnPHRhYmxlU3R5bGVFbGVtZW50IGR4ZklkPSInK19lKyciIHR5cGU9IicrZ2UrJyIvPicpfX0p'@; put 'O3ZhciByZT0nPHRhYmxlU3R5bGUgY291bnQ9IicrUS5sZW5ndGgrJyIgcGl2b3Q9IicrICshIXkucGl2b3QrJyIgbmFtZT0iJyt5Lm5hbWUrJyInO3JldHVybiBRLmxlbmd0aD9yZSsiPiIrUS5qb2luKCIiKSsiPC90YWJsZVN0eWxlPiI6cmUrIi8+In0ocmUsUCkpfSksUS5qb2luKCIiKSsi'@; put 'PC90YWJsZVN0eWxlcz4iKTpRWzBdKyIvPiJ9KCh5LlN0eWxlc3x8e30pLlRhYmxlfHxbXSx5LlN0eWxlcy5EWEYpO3JldHVybiBMW0wubGVuZ3RoXT1mdW5jdGlvbiBVbSh5LFApe2lmKCF5Lmxlbmd0aClyZXR1cm4nPGR4ZnMgY291bnQ9IjAiLz4nO3ZhciBMPVsnPGR4ZnMgY291bnQ9Iicr'@; put 'eS5sZW5ndGgrJyI+J107cmV0dXJuIHkuZm9yRWFjaChmdW5jdGlvbihRKXtMLnB1c2goZnVuY3Rpb24gRUQoeSxQKXt2YXIgTD17Ym9sZDoiYiIsaXRhbGljOiJpIix2YWxpZ246InZlcnRBbGlnbiJ9LFE9WyI8ZHhmPiJdLHJlPVtdLGdlPVtdLF9lPVtdLFNlPVtdO3JldHVybiBsdCh5KS5m'@; put 'b3JFYWNoKGZ1bmN0aW9uKEJlKXtzd2l0Y2goQmUpe2Nhc2UiYm9sZCI6Y2FzZSJpdGFsaWMiOmNhc2Uic3RyaWtlIjpjYXNlInVuZGVybGluZSI6Y2FzZSJjb2xvciI6Y2FzZSJ2YWxpZ24iOmNhc2Uic3oiOmNhc2UibmFtZSI6Y2FzZSJvdXRsaW5lIjpjYXNlInNoYWRvdyI6Y2FzZSJjaGFy'@; put 'c2V0IjpjYXNlImZhbWlseSI6Y2FzZSJjb25kZW5zZSI6Y2FzZSJleHRlbmQiOmNhc2Uic2NoZW1lIjpyZS5wdXNoKEJlKTticmVhaztjYXNlImJnQ29sb3IiOmNhc2UiZmdDb2xvciI6X2UucHVzaChCZSk7YnJlYWs7Y2FzZSJ6IjpnZS5wdXNoKEJlKTticmVhaztjYXNlInRvcCI6Y2FzZSJi'@; put 'b3R0b20iOmNhc2UibGVmdCI6Y2FzZSJyaWdodCI6Y2FzZSJkaWFnb25hbCI6Y2FzZSJ2ZXJ0aWNhbCI6Y2FzZSJob3Jpem9udGFsIjpTZS5wdXNoKEJlKTticmVhaztjYXNlInBhdHRlcm5UeXBlIjpjYXNlImRpYWdvbmFsRG93biI6Y2FzZSJkaWFnb25hbFVwIjpjYXNlInN0b3BzIjpjYXNl'@; put 'ImRlZ3JlZSI6YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnJlY29nbml6ZWQgIitCZSsiIGluIERYRiJ9fSkscmUubGVuZ3RoPjAmJihRLnB1c2goIjxmb250PiIpLHJlLmZvckVhY2goZnVuY3Rpb24oQmUpe3N3aXRjaChCZSl7Y2FzZSJib2xkIjpjYXNlIml0YWxpYyI6Y2FzZSJzdHJpa2UiOmNh'@; put 'c2Uib3V0bGluZSI6Y2FzZSJzaGFkb3ciOmNhc2UiY29uZGVuc2UiOmNhc2UiZXh0ZW5kIjpRLnB1c2goIjwiKyhMW0JlXXx8QmUpKycgdmFsPSInKyh5W0JlXT8iMSI6IjAiKSsnIi8+Jyk7YnJlYWs7Y2FzZSJjb2xvciI6US5wdXNoKFVkKHlbQmVdLEJlLCEwKSk7YnJlYWs7Y2FzZSJmYW1p'@; put 'bHkiOmNhc2UibmFtZSI6Y2FzZSJzeiI6Y2FzZSJzY2hlbWUiOlEucHVzaCgiPCIrKExbQmVdfHxCZSkrJyB2YWw9IicreVtCZV0rJyIvPicpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjpRLnB1c2goJzx1IHZhbD0iJytqbVt5W0JlXXx8MF0rJyIvPicpO2JyZWFrO2Nhc2UidmFsaWduIjpRLnB1'@; put 'c2goJzx2ZXJ0QWxpZ24gdmFsPSInK3kudmFsaWduKygic3ViIj09eS52YWxpZ258fCJzdXBlciI9PXkudmFsaWduPyJzY3JpcHQiOiIiKSsnIi8+Jyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnN1cHBvcnRlZCAiK0JlKyIgOiBmb250IERYRiJ9fSksUS5wdXNoKCI8L2ZvbnQ+IikpLGdlLmxl'@; put 'bmd0aD4wJiZRLnB1c2goJzxudW1GbXQgZm9ybWF0Q29kZT0iJytIcih5LnopKyciIG51bUZtdElkPSInK2Z1bmN0aW9uIFkzKHksUCl7aWYoIm51bWJlciI9PXR5cGVvZiB5KXJldHVybiB5O3ZhciBMPVAucmV2c3NmW3k/PyJHZW5lcmFsIl0sUT02MDtpZihudWxsPT1MKWZvcig7UTwzOTI7'@; put 'KytRKWlmKG51bGw9PVAuc3NmW1FdKXJldHVybiB3LmxvYWQoeSxRKSxQLnNzZltRXT15LFAucmV2c3NmW3ldPVEsUTtyZXR1cm4gTH0oeS56LFApKyciLz4nKSxfZS5sZW5ndGg+MCYmKFEucHVzaCgiPGZpbGw+IiksUS5wdXNoKCI8cGF0dGVybkZpbGwiKyh5LnBhdHRlcm5UeXBlPycgcGF0'@; put 'dGVyblR5cGU9IicreS5wYXR0ZXJuVHlwZSsnIj4nOiI+IikpLF9lLmZvckVhY2goZnVuY3Rpb24oQmUpe3N3aXRjaChCZSl7Y2FzZSJwYXR0ZXJuVHlwZSI6YnJlYWs7Y2FzZSJmZ0NvbG9yIjpjYXNlImJnQ29sb3IiOlEucHVzaChVZCh5W0JlXSxCZSwhMCkpO2JyZWFrO2RlZmF1bHQ6dGhy'@; put 'b3ciVW5zdXBwb3J0ZWQgIitCZSsiIDogZmlsbCBEWEYifX0pLFEucHVzaCgiPC9wYXR0ZXJuRmlsbD4iKSxRLnB1c2goIjwvZmlsbD4iKSksU2UubGVuZ3RoPjA/KFEucHVzaChbIjxib3JkZXIiLG51bGwhPXkuZGlhZ29uYWxEb3duPycgZGlhZ29uYWxEb3duPSInKyArISF5LmRpYWdvbmFs'@; put 'RG93bisnIic6IiIsbnVsbCE9eS5kaWFnb25hbFVwPycgZGlhZ29uYWxVcD0iJysgKyEheS5kaWFnb25hbFVwKyciJzoiIiwiPiJdLmpvaW4oIiIpKSxTZS5mb3JFYWNoKGZ1bmN0aW9uKEJlKXtRLnB1c2goUjMoeVtCZV0sQmUpKX0pLFEucHVzaCgiPC9ib3JkZXI+IikpOihudWxsIT15LmRp'@; put 'YWdvbmFsRG93bnx8bnVsbCE9eS5kaWFnb25hbFVwKSYmUS5wdXNoKFsiPGJvcmRlciIsbnVsbCE9eS5kaWFnb25hbERvd24/JyBkaWFnb25hbERvd249IicrICshIXkuZGlhZ29uYWxEb3duKyciJzoiIixudWxsIT15LmRpYWdvbmFsVXA/JyBkaWFnb25hbFVwPSInKyArISF5LmRpYWdvbmFs'@; put 'VXArJyInOiIiLCIvPiJdLmpvaW4oIiIpKSwxPT1RLmxlbmd0aD8iPGR4Zi8+IjpRLmpvaW4oIiIpKyI8L2R4Zj4ifShRLFApKX0pLEwuam9pbigiIikrIjwvZHhmcz4ifSh5LlN0eWxlcy5EWEYsUCksTFtMLmxlbmd0aF09cmUsTC5sZW5ndGg+MiYmKExbTC5sZW5ndGhdPSI8L3N0eWxlU2hl'@; put 'ZXQ+IixMWzFdPUxbMV0ucmVwbGFjZSgiLz4iLCI+IikpLEwuam9pbigiIil9ZnVuY3Rpb24gTzMoeSxQLEwpe0x8fChMPXByKDYrNCpQLmxlbmd0aCkpLEwud3JpdGVfc2hpZnQoMix5KSxyYyhQLEwpO3ZhciBRPUwubGVuZ3RoPkwubD9MLnNsaWNlKDAsTC5sKTpMO3JldHVybiBudWxsPT1M'@; put 'LmwmJihMLmw9TC5sZW5ndGgpLFF9ZnVuY3Rpb24gWW0oeSl7cmV0dXJue2NvbG9yOkRkKHkpLHBvczptYSh5KX19SGkuU1RZPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcyI7dmFyIFY0PVsibm9uZSIs'@; put 'InNvbGlkIiwibWVkaXVtR3JheSIsImRhcmtHcmF5IiwibGlnaHRHcmF5IiwiZGFya0hvcml6b250YWwiLCJkYXJrVmVydGljYWwiLCJkYXJrRG93biIsImRhcmtVcCIsImRhcmtHcmlkIiwiZGFya1RyZWxsaXMiLCJsaWdodEhvcml6b250YWwiLCJsaWdodFZlcnRpY2FsIiwibGlnaHREb3du'@; put 'IiwibGlnaHRVcCIsImxpZ2h0R3JpZCIsImxpZ2h0VHJlbGxpcyIsImdyYXkxMjUiLCJncmF5MDYyNSJdLFkyPWJlKFY0KSxXbT1bImdlbmVyYWwiLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiLCJmaWxsIiwianVzdGlmeSIsImNlbnRlckNvbnRpbnVvdXMiLCJkaXN0cmlidXRlZCJdLEI0PVsi'@; put 'dG9wIiwiY2VudGVyIiwiYm90dG9tIiwianVzdGlmeSIsImRpc3RyaWJ1dGVkIl07ZnVuY3Rpb24gTjkoeSxQLEwpe0x8fChMPXByKDE2KSksTC53cml0ZV9zaGlmdCgyLFB8fDApLEwud3JpdGVfc2hpZnQoMix5Lm51bUZtdElkfHwwKSxMLndyaXRlX3NoaWZ0KDIseS5mb250SWR8fDApLEwu'@; put 'd3JpdGVfc2hpZnQoMix5LmZpbGxJZHx8MCksTC53cml0ZV9zaGlmdCgyLHkuYm9yZGVySWR8fDApLEwud3JpdGVfc2hpZnQoMSx5LmFsaWdubWVudCYmeS5hbGlnbm1lbnQudGV4dFJvdGF0aW9ufHwwKSxMLndyaXRlX3NoaWZ0KDEseS5hbGlnbm1lbnQmJnkuYWxpZ25tZW50LmluZGVudHx8'@; put 'MCk7dmFyIFE9MCxyZT0wO2lmKHkuYWxpZ25tZW50KXtpZih5LmFsaWdubWVudC5ob3Jpem9udGFsKXt2YXIgZ2U9V20uaW5kZXhPZih5LmFsaWdubWVudC5ob3Jpem9udGFsKTtnZTwwJiYoZ2U9MCksUXw9Z2V9aWYoeS5hbGlnbm1lbnQudmVydGljYWwpe3ZhciBfZT1CNC5pbmRleE9mKHku'@; put 'YWxpZ25tZW50LnZlcnRpY2FsKTtfZTwwJiYoX2U9MiksUXw9X2U8PDN9eS5hbGlnbm1lbnQud3JhcFRleHQmJihRfD02NCkseS5hbGlnbm1lbnQuc2hyaW5rVG9GaXQmJihyZXw9MSl9cmV0dXJuIEwud3JpdGVfc2hpZnQoMSxRKSxMLndyaXRlX3NoaWZ0KDEscmUpLEwud3JpdGVfc2hpZnQo'@; put 'MSwwKSxMLndyaXRlX3NoaWZ0KDEsMCksTH12YXIgVzI9WyJub25lIiwidGhpbiIsIm1lZGl1bSIsImRhc2hlZCIsImRvdHRlZCIsInRoaWNrIiwiZG91YmxlIiwiaGFpciIsIm1lZGl1bURhc2hlZCIsImRhc2hEb3QiLCJtZWRpdW1EYXNoRG90IiwiZGFzaERvdERvdCIsIm1lZGl1bURhc2hE'@; put 'b3REb3QiLCJzbGFudERhc2hEb3QiXTtmdW5jdGlvbiBqNCh5KXt2YXIgUD15LnJlYWRfc2hpZnQoMSk7eS5sKz0xO3ZhciBMPURkKHkpO3JldHVybntzdHlsZTpXMltQXSxjb2xvcjpMfX1mdW5jdGlvbiBQMyh5LFApe3JldHVybiBQfHwoUD1wcigxMCkpLHkmJnkuc3R5bGUmJiIiIT15LnN0'@; put 'eWxlJiYibm9uZSIhPXkuc3R5bGUmJi0xIT09VzIuaW5kZXhPZih5LnN0eWxlKT8oUC53cml0ZV9zaGlmdCgxLFcyLmluZGV4T2YoeS5zdHlsZSkpLFAud3JpdGVfc2hpZnQoMSwwKSx5LmNvbG9yP1IyKHkuY29sb3IsUCk6KFAud3JpdGVfc2hpZnQoNCwwKSxQLndyaXRlX3NoaWZ0KDQsMCkp'@; put 'KTooUC53cml0ZV9zaGlmdCgxLDApLFAud3JpdGVfc2hpZnQoMSwwKSxQLndyaXRlX3NoaWZ0KDQsMCksUC53cml0ZV9zaGlmdCg0LDApKSxQfWZ1bmN0aW9uIHR1KHksUCl7cmV0dXJuIFB8fChQPXByKDUyKSksUC53cml0ZV9zaGlmdCg0LHkueGZJZCksUC53cml0ZV9zaGlmdCgyLDEpLFAu'@; put 'd3JpdGVfc2hpZnQoMSwreS5idWlsdGluSWQpLFAud3JpdGVfc2hpZnQoMSwwKSxBZCh5Lm5hbWV8fCIiLFApLFAubGVuZ3RoPlAubD9QLnNsaWNlKDAsUC5sKTpQfWZ1bmN0aW9uIHo0KHksUCl7IVB8fCFQLnRoZW1lRWxlbWVudHN8fCFQLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lfHxudWxs'@; put 'IT15LnRoZW1lJiYoeS5yZ2I9QmQoUC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVt5LnRoZW1lXS5yZ2IseS50aW50fHwwKSl9ZnVuY3Rpb24gUEQoeSxQKXt2YXIgTD13YygpO3JldHVybiB1aShMLCJCcnRCZWdpblN0eWxlU2hlZXQiKSxmdW5jdGlvbiBCYyh5LFApe2lmKFApe3ZhciBMPTA7'@; put 'W1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9yRWFjaChmdW5jdGlvbihRKXtmb3IodmFyIHJlPVFbMF07cmU8PVFbMV07KytyZSludWxsIT1QW3JlXSYmKytMfSksMCE9TCYmKHVpKHksIkJydEJlZ2luRm10cyIsa3UoTCkpLFtbNSw4XSxbMjMsMjZdLFs0MSw0NF0sWzUwLDM5'@; put 'Ml1dLmZvckVhY2goZnVuY3Rpb24oUSl7Zm9yKHZhciByZT1RWzBdO3JlPD1RWzFdOysrcmUpbnVsbCE9UFtyZV0mJnVpKHksIkJydEZtdCIsTzMocmUsUFtyZV0pKX0pLHVpKHksIkJydEVuZEZtdHMiKSl9fShMLHkuU1NGKSxmdW5jdGlvbiBVNCh5LFApe3ZhciBMPVAubGVuZ3RoOzAhPUwm'@; put 'Jih1aSh5LCJCcnRCZWdpbkZvbnRzIixrdShMKSksUC5mb3JFYWNoKGZ1bmN0aW9uKFEpe3VpKHksIkJydEZvbnQiLGZ1bmN0aW9uIHZDKHksUCl7UHx8KFA9cHIoMTUzKSksUC53cml0ZV9zaGlmdCgyLDIwKnkuc3opLGZ1bmN0aW9uIFloKHksUCl7UHx8KFA9cHIoMikpLFAud3JpdGVfc2hp'@; put 'ZnQoMSwoeS5pdGFsaWM/MjowKXwoeS5zdHJpa2U/ODowKXwoeS5vdXRsaW5lPzE2OjApfCh5LnNoYWRvdz8zMjowKXwoeS5jb25kZW5zZT82NDowKXwoeS5leHRlbmQ/MTI4OjApKSxQLndyaXRlX3NoaWZ0KDEsMCl9KHksUCksUC53cml0ZV9zaGlmdCgyLHkuYm9sZD83MDA6NDAwKTt2YXIg'@; put 'TD0wOyJzdXBlciI9PXkudmFsaWduP0w9MToic3ViIj09eS52YWxpZ24mJihMPTIpLFAud3JpdGVfc2hpZnQoMixMKSxQLndyaXRlX3NoaWZ0KDEseS51bmRlcmxpbmV8fDApLFAud3JpdGVfc2hpZnQoMSx5LmZhbWlseXx8MCksUC53cml0ZV9zaGlmdCgxLHkuY2hhcnNldHx8MCksUC53cml0'@; put 'ZV9zaGlmdCgxLDApLFIyKHkuY29sb3IsUCk7dmFyIFE9MDtyZXR1cm4ibWFqb3IiPT15LnNjaGVtZSYmKFE9MSksIm1pbm9yIj09eS5zY2hlbWUmJihRPTIpLFAud3JpdGVfc2hpZnQoMSxRKSxyYyh5Lm5hbWUsUCksUC5sZW5ndGg+UC5sP1Auc2xpY2UoMCxQLmwpOlB9KFEpKX0pLHVpKHks'@; put 'IkJydEVuZEZvbnRzIikpfShMLCh5LlN0eWxlc3x8e30pLkZvbnRzfHxbXSksZnVuY3Rpb24gX0MoeSxQKXt2YXIgTD1QLmxlbmd0aDswIT1MJiYodWkoeSwiQnJ0QmVnaW5GaWxscyIsa3UoTCkpLFAuZm9yRWFjaChmdW5jdGlvbihRKXt1aSh5LCJCcnRGaWxsIixmdW5jdGlvbiBBRCh5LFAp'@; put 'e1B8fChQPXByKDg0KSk7dmFyIEw9WTJbeS5wYXR0ZXJuVHlwZV07bnVsbD09TCYmKEw9NDApLFAud3JpdGVfc2hpZnQoNCxMPStMKTt2YXIgUT0wO2lmKDQwIT1MKWZvcihSMih5LmZnQ29sb3J8fHtpbmRleDo2NH0sUCksUjIoeS5iZ0NvbG9yfHx7aW5kZXg6NjV9LFApO1E8MTI7KytRKVAu'@; put 'd3JpdGVfc2hpZnQoNCwwKTtlbHNle2Zvcig7UTw0OysrUSlQLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKDtRPDEyOysrUSlQLndyaXRlX3NoaWZ0KDQsMCl9cmV0dXJuIFAubGVuZ3RoPlAubD9QLnNsaWNlKDAsUC5sKTpQfShRKSl9KSx1aSh5LCJCcnRFbmRGaWxscyIpKX0oTCwoeS5TdHlsZXN8'@; put 'fHt9KS5GaWxsc3x8W10pLGZ1bmN0aW9uIGJDKHksUCl7dmFyIEw9UC5sZW5ndGg7MCE9TCYmKHVpKHksIkJydEJlZ2luQm9yZGVycyIsa3UoTCkpLFAuZm9yRWFjaChmdW5jdGlvbihRKXt1aSh5LCJCcnRCb3JkZXIiLGZ1bmN0aW9uIEREKHksUCl7cmV0dXJuIFB8fChQPXByKDUxKSksUC53'@; put 'cml0ZV9zaGlmdCgxLDApLFAzKHkudG9wLFApLFAzKHkuYm90dG9tLFApLFAzKHkubGVmdCxQKSxQMyh5LnJpZ2h0LFApLFAzKG51bGwsUCksUC5sZW5ndGg+UC5sP1Auc2xpY2UoMCxQLmwpOlB9KFEpKX0pLHVpKHksIkJydEVuZEJvcmRlcnMiKSl9KEwsKHkuU3R5bGVzfHx7fSkuQm9yZGVy'@; put 'c3x8W10pLGZ1bmN0aW9uIElEKHksUCl7dmFyIEw9MTtpZihQJiYoTD1QLmxlbmd0aCksdWkoeSwiQnJ0QmVnaW5DZWxsU3R5bGVYRnMiLGt1KEwpKSx1aSh5LCJCcnRYRiIsTjkoe251bUZtdElkOjAsZm9udElkOjAsZmlsbElkOjAsYm9yZGVySWQ6MH0sNjU1MzUpKSxQKWZvcih2YXIgUT0x'@; put 'O1E8UC5sZW5ndGg7KytRKXVpKHksIkJydFhGIixOOSh7bnVtRm10SWQ6UFtRXS5udW1GbXRJZHx8MCxmb250SWQ6UFtRXS5mb250SWR8fDAsZmlsbElkOlBbUV0uZmlsbElkfHwwLGJvcmRlcklkOlBbUV0uYm9yZGVySWR8fDB9LDY1NTM1KSk7dWkoeSwiQnJ0RW5kQ2VsbFN0eWxlWEZzIil9'@; put 'KEwsUC5jZWxsU3R5bGVYZnMpLGZ1bmN0aW9uIHlDKHksUCl7dWkoeSwiQnJ0QmVnaW5DZWxsWEZzIixrdShQLmxlbmd0aCkpLFAuZm9yRWFjaChmdW5jdGlvbihMKXt1aSh5LCJCcnRYRiIsTjkoTCwwKSl9KSx1aSh5LCJCcnRFbmRDZWxsWEZzIil9KEwsUC5jZWxsWGZzKSxmdW5jdGlvbiBM'@; put 'RCh5LFApe3ZhciBMPTE7aWYoUCYmKEw9UC5sZW5ndGgpLHVpKHksIkJydEJlZ2luU3R5bGVzIixrdShMKSksdWkoeSwiQnJ0U3R5bGUiLHR1KHt4ZklkOjAsYnVpbHRpbklkOjAsbmFtZToiTm9ybWFsIn0pKSxQKWZvcih2YXIgUT0xO1E8UC5sZW5ndGg7KytRKXVpKHksIkJydFN0eWxlIix0'@; put 'dSh7eGZJZDpRLGJ1aWx0aW5JZDowLG5hbWU6UFtRXS5uYW1lfSkpO3VpKHksIkJydEVuZFN0eWxlcyIpfShMLFAuY2VsbFN0eWxlWGZzKSxmdW5jdGlvbiB3Qyh5KXt1aSh5LCJCcnRCZWdpbkRYRnMiLGt1KDApKSx1aSh5LCJCcnRFbmREWEZzIil9KEwpLGZ1bmN0aW9uIFJEKHkpe3VpKHks'@; put 'IkJydEJlZ2luVGFibGVTdHlsZXMiLGZ1bmN0aW9uIFY5KHksUCxMKXt2YXIgUT1wcigyMDUyKTtyZXR1cm4gUS53cml0ZV9zaGlmdCg0LHkpLEFkKFAsUSksQWQoTCxRKSxRLmxlbmd0aD5RLmw/US5zbGljZSgwLFEubCk6UX0oMCwiVGFibGVTdHlsZU1lZGl1bTkiLCJQaXZvdFN0eWxlTWVk'@; put 'aXVtNCIpKSx1aSh5LCJCcnRFbmRUYWJsZVN0eWxlcyIpfShMKSx1aShMLCJCcnRFbmRTdHlsZVNoZWV0IiksTC5lbmQoKX1IaS5USEVNRT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy90aGVtZSI7dmFyIEZEPVsi'@; put 'PC9hOmx0MT4iLCI8L2E6ZGsxPiIsIjwvYTpsdDI+IiwiPC9hOmRrMj4iLCI8L2E6YWNjZW50MT4iLCI8L2E6YWNjZW50Mj4iLCI8L2E6YWNjZW50Mz4iLCI8L2E6YWNjZW50ND4iLCI8L2E6YWNjZW50NT4iLCI8L2E6YWNjZW50Nj4iLCI8L2E6aGxpbms+IiwiPC9hOmZvbEhsaW5rPiJdO2Z1'@; put 'bmN0aW9uIGo5KHksUCxMKXtQLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lPVtdO3ZhciBRPXt9Oyh5WzBdLm1hdGNoKCR0KXx8W10pLmZvckVhY2goZnVuY3Rpb24ocmUpe3ZhciBnZT1sbihyZSk7c3dpdGNoKGdlWzBdKXtjYXNlIjxhOmNsclNjaGVtZSI6Y2FzZSI8L2E6Y2xyU2NoZW1lPiI6'@; put 'Y2FzZSI8L2E6c3JnYkNscj4iOmNhc2UiPC9hOnN5c0Nscj4iOmJyZWFrO2Nhc2UiPGE6c3JnYkNsciI6US5yZ2I9Z2UudmFsO2JyZWFrO2Nhc2UiPGE6c3lzQ2xyIjpRLnJnYj1nZS5sYXN0Q2xyO2JyZWFrO2Nhc2UiPGE6ZGsxPiI6Y2FzZSI8L2E6ZGsxPiI6Y2FzZSI8YTpsdDE+IjpjYXNl'@; put 'IjwvYTpsdDE+IjpjYXNlIjxhOmRrMj4iOmNhc2UiPC9hOmRrMj4iOmNhc2UiPGE6bHQyPiI6Y2FzZSI8L2E6bHQyPiI6Y2FzZSI8YTphY2NlbnQxPiI6Y2FzZSI8L2E6YWNjZW50MT4iOmNhc2UiPGE6YWNjZW50Mj4iOmNhc2UiPC9hOmFjY2VudDI+IjpjYXNlIjxhOmFjY2VudDM+IjpjYXNl'@; put 'IjwvYTphY2NlbnQzPiI6Y2FzZSI8YTphY2NlbnQ0PiI6Y2FzZSI8L2E6YWNjZW50ND4iOmNhc2UiPGE6YWNjZW50NT4iOmNhc2UiPC9hOmFjY2VudDU+IjpjYXNlIjxhOmFjY2VudDY+IjpjYXNlIjwvYTphY2NlbnQ2PiI6Y2FzZSI8YTpobGluaz4iOmNhc2UiPC9hOmhsaW5rPiI6Y2FzZSI8'@; put 'YTpmb2xIbGluaz4iOmNhc2UiPC9hOmZvbEhsaW5rPiI6Ii8iPT09Z2VbMF0uY2hhckF0KDEpPyhQLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW0ZELmluZGV4T2YoZ2VbMF0pXT1RLFE9e30pOlEubmFtZT1nZVswXS5zbGljZSgzLGdlWzBdLmxlbmd0aC0xKTticmVhaztkZWZhdWx0OmlmKEwm'@; put 'JkwuV1RGKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkICIrZ2VbMF0rIiBpbiBjbHJTY2hlbWUiKX19KX1mdW5jdGlvbiB6OSgpe31mdW5jdGlvbiBIRCgpe312YXIgWjQ9LzxhOmNsclNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Y2xyU2NoZW1lPi8sTkQ9LzxhOmZvbnRTY2hlbWUo'@; put 'W14+XSopPltcc1xTXSo8XC9hOmZvbnRTY2hlbWU+LyxWRD0vPGE6Zm10U2NoZW1lKFtePl0qKT5bXHNcU10qPFwvYTpmbXRTY2hlbWU+LyxTQz0vPGE6dGhlbWVFbGVtZW50cyhbXj5dKik+W1xzXFNdKjxcL2E6dGhlbWVFbGVtZW50cz4vO2Z1bmN0aW9uIEdtKHksUCl7aWYoIXl8fDA9PT15'@; put 'Lmxlbmd0aClyZXR1cm4gR20ocmYoKSk7dmFyIEwsUT17fTtpZighKEw9eS5tYXRjaChTQykpKXRocm93IG5ldyBFcnJvcigidGhlbWVFbGVtZW50cyBub3QgZm91bmQgaW4gdGhlbWUiKTtyZXR1cm4gZnVuY3Rpb24gQ0MoeSxQLEwpe3ZhciBRO1AudGhlbWVFbGVtZW50cz17fSxbWyJjbHJT'@; put 'Y2hlbWUiLFo0LGo5XSxbImZvbnRTY2hlbWUiLE5ELHo5XSxbImZtdFNjaGVtZSIsVkQsSERdXS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtpZighKFE9eS5tYXRjaChyZVsxXSkpKXRocm93IG5ldyBFcnJvcihyZVswXSsiIG5vdCBmb3VuZCBpbiB0aGVtZUVsZW1lbnRzIik7cmVbMl0oUSxQLEwp'@; put 'fSl9KExbMF0sUSxQKSxRLnJhdz15LFF9ZnVuY3Rpb24gcmYoeSxQKXtpZihQJiZQLnRoZW1lWExTWClyZXR1cm4gUC50aGVtZVhMU1g7aWYoeSYmInN0cmluZyI9PXR5cGVvZiB5LnJhdylyZXR1cm4geS5yYXc7dmFyIEw9W0JuXTtyZXR1cm4gTFtMLmxlbmd0aF09JzxhOnRoZW1lIHhtbG5z'@; put 'OmE9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9tYWluIiBuYW1lPSJPZmZpY2UgVGhlbWUiPicsTFtMLmxlbmd0aF09IjxhOnRoZW1lRWxlbWVudHM+IixMW0wubGVuZ3RoXT0nPGE6Y2xyU2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxMW0wubGVuZ3Ro'@; put 'XT0nPGE6ZGsxPjxhOnN5c0NsciB2YWw9IndpbmRvd1RleHQiIGxhc3RDbHI9IjAwMDAwMCIvPjwvYTpkazE+JyxMW0wubGVuZ3RoXT0nPGE6bHQxPjxhOnN5c0NsciB2YWw9IndpbmRvdyIgbGFzdENscj0iRkZGRkZGIi8+PC9hOmx0MT4nLExbTC5sZW5ndGhdPSc8YTpkazI+PGE6c3JnYkNs'@; put 'ciB2YWw9IjFGNDk3RCIvPjwvYTpkazI+JyxMW0wubGVuZ3RoXT0nPGE6bHQyPjxhOnNyZ2JDbHIgdmFsPSJFRUVDRTEiLz48L2E6bHQyPicsTFtMLmxlbmd0aF09JzxhOmFjY2VudDE+PGE6c3JnYkNsciB2YWw9IjRGODFCRCIvPjwvYTphY2NlbnQxPicsTFtMLmxlbmd0aF09JzxhOmFjY2Vu'@; put 'dDI+PGE6c3JnYkNsciB2YWw9IkMwNTA0RCIvPjwvYTphY2NlbnQyPicsTFtMLmxlbmd0aF09JzxhOmFjY2VudDM+PGE6c3JnYkNsciB2YWw9IjlCQkI1OSIvPjwvYTphY2NlbnQzPicsTFtMLmxlbmd0aF09JzxhOmFjY2VudDQ+PGE6c3JnYkNsciB2YWw9IjgwNjRBMiIvPjwvYTphY2NlbnQ0'@; put 'PicsTFtMLmxlbmd0aF09JzxhOmFjY2VudDU+PGE6c3JnYkNsciB2YWw9IjRCQUNDNiIvPjwvYTphY2NlbnQ1PicsTFtMLmxlbmd0aF09JzxhOmFjY2VudDY+PGE6c3JnYkNsciB2YWw9IkY3OTY0NiIvPjwvYTphY2NlbnQ2PicsTFtMLmxlbmd0aF09JzxhOmhsaW5rPjxhOnNyZ2JDbHIgdmFs'@; put 'PSIwMDAwRkYiLz48L2E6aGxpbms+JyxMW0wubGVuZ3RoXT0nPGE6Zm9sSGxpbms+PGE6c3JnYkNsciB2YWw9IjgwMDA4MCIvPjwvYTpmb2xIbGluaz4nLExbTC5sZW5ndGhdPSI8L2E6Y2xyU2NoZW1lPiIsTFtMLmxlbmd0aF09JzxhOmZvbnRTY2hlbWUgbmFtZT0iT2ZmaWNlIj4nLExbTC5s'@; put 'ZW5ndGhdPSI8YTptYWpvckZvbnQ+IixMW0wubGVuZ3RoXT0nPGE6bGF0aW4gdHlwZWZhY2U9IkNhbWJyaWEiLz4nLExbTC5sZW5ndGhdPSc8YTplYSB0eXBlZmFjZT0iIi8+JyxMW0wubGVuZ3RoXT0nPGE6Y3MgdHlwZWZhY2U9IiIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJK'@; put 'cGFuIiB0eXBlZmFjZT0iXHVmZjJkXHVmZjMzIFx1ZmYzMFx1MzBiNFx1MzBiN1x1MzBjM1x1MzBhZiIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5nIiB0eXBlZmFjZT0iXHViOWQxXHVjNzQwIFx1YWNlMFx1YjUxNSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0'@; put 'PSJIYW5zIiB0eXBlZmFjZT0iXHU1YjhiXHU0ZjUzIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnQiIHR5cGVmYWNlPSJcdTY1YjBcdTdkMzBcdTY2MGVcdTlhZDQiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQXJhYiIgdHlwZWZhY2U9IlRpbWVzIE5ldyBS'@; put 'b21hbiIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWkiIHR5cGVmYWNlPSJUYWhvbWEiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRXRoaSIg'@; put 'dHlwZWZhY2U9Ik55YWxhIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkJlbmciIHR5cGVmYWNlPSJWcmluZGEiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VqciIgdHlwZWZhY2U9IlNocnV0aSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLaG1y'@; put 'IiB0eXBlZmFjZT0iTW9vbEJvcmFuIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktuZGEiIHR5cGVmYWNlPSJUdW5nYSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdXJ1IiB0eXBlZmFjZT0iUmFhdmkiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0i'@; put 'Q2FucyIgdHlwZWZhY2U9IkV1cGhlbWlhIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNoZXIiIHR5cGVmYWNlPSJQbGFudGFnZW5ldCBDaGVyb2tlZSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJZaWlpIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFlpIEJhaXRpIi8+'@; put 'JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRpYnQiIHR5cGVmYWNlPSJNaWNyb3NvZnQgSGltYWxheWEiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhYSIgdHlwZWZhY2U9Ik1WIEJvbGkiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRGV2YSIgdHlw'@; put 'ZWZhY2U9Ik1hbmdhbCIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUZWx1IiB0eXBlZmFjZT0iR2F1dGFtaSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUYW1sIiB0eXBlZmFjZT0iTGF0aGEiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU3lyYyIg'@; put 'dHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik9yeWEiIHR5cGVmYWNlPSJLYWxpbmdhIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1seW0iIHR5cGVmYWNlPSJLYXJ0aWthIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9u'@; put 'dCBzY3JpcHQ9Ikxhb28iIHR5cGVmYWNlPSJEb2tDaGFtcGEiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU2luaCIgdHlwZWZhY2U9Iklza29vbGEgUG90YSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNb25nIiB0eXBlZmFjZT0iTW9uZ29saWFuIEJhaXRpIi8+'@; put 'JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlZpZXQiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR2Vv'@; put 'ciIgdHlwZWZhY2U9IlN5bGZhZW4iLz4nLExbTC5sZW5ndGhdPSI8L2E6bWFqb3JGb250PiIsTFtMLmxlbmd0aF09IjxhOm1pbm9yRm9udD4iLExbTC5sZW5ndGhdPSc8YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSIvPicsTFtMLmxlbmd0aF09JzxhOmVhIHR5cGVmYWNlPSIiLz4nLExbTC5s'@; put 'ZW5ndGhdPSc8YTpjcyB0eXBlZmFjZT0iIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSJcdWZmMmRcdWZmMzMgXHVmZjMwXHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbmciIHR5cGVmYWNl'@; put 'PSJcdWI5ZDFcdWM3NDAgXHVhY2UwXHViNTE1Ii8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnMiIHR5cGVmYWNlPSJcdTViOGJcdTRmNTMiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFudCIgdHlwZWZhY2U9Ilx1NjViMFx1N2QzMFx1NjYwZVx1OWFkNCIv'@; put 'PicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJBcmFiIiB0eXBlZmFjZT0iQXJpYWwiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IkFyaWFsIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWkiIHR5cGVmYWNlPSJUYWhvbWEi'@; put 'Lz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRXRoaSIgdHlwZWZhY2U9Ik55YWxhIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkJlbmciIHR5cGVmYWNlPSJWcmluZGEiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VqciIgdHlwZWZhY2U9IlNocnV0'@; put 'aSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLaG1yIiB0eXBlZmFjZT0iRGF1blBlbmgiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS25kYSIgdHlwZWZhY2U9IlR1bmdhIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1cnUiIHR5cGVmYWNlPSJS'@; put 'YWF2aSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDYW5zIiB0eXBlZmFjZT0iRXVwaGVtaWEiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2hlciIgdHlwZWZhY2U9IlBsYW50YWdlbmV0IENoZXJva2VlIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9'@; put 'IllpaWkiIHR5cGVmYWNlPSJNaWNyb3NvZnQgWWkgQmFpdGkiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGlidCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBIaW1hbGF5YSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFhIiB0eXBlZmFjZT0iTVYgQm9saSIvPics'@; put 'TFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJEZXZhIiB0eXBlZmFjZT0iTWFuZ2FsIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRlbHUiIHR5cGVmYWNlPSJHYXV0YW1pIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRhbWwiIHR5cGVmYWNlPSJMYXRoYSIv'@; put 'PicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTeXJjIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iT3J5YSIgdHlwZWZhY2U9IkthbGluZ2EiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTWx5bSIgdHlw'@; put 'ZWZhY2U9IkthcnRpa2EiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTGFvbyIgdHlwZWZhY2U9IkRva0NoYW1wYSIvPicsTFtMLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTaW5oIiB0eXBlZmFjZT0iSXNrb29sYSBQb3RhIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3Jp'@; put 'cHQ9Ik1vbmciIHR5cGVmYWNlPSJNb25nb2xpYW4gQmFpdGkiLz4nLExbTC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVmlldCIgdHlwZWZhY2U9IkFyaWFsIi8+JyxMW0wubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+JyxMW0wu'@; put 'bGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVmYWNlPSJTeWxmYWVuIi8+JyxMW0wubGVuZ3RoXT0iPC9hOm1pbm9yRm9udD4iLExbTC5sZW5ndGhdPSI8L2E6Zm9udFNjaGVtZT4iLExbTC5sZW5ndGhdPSc8YTpmbXRTY2hlbWUgbmFtZT0iT2ZmaWNlIj4nLExbTC5sZW5ndGhd'@; put 'PSI8YTpmaWxsU3R5bGVMc3Q+IixMW0wubGVuZ3RoXT0nPGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD4nLExbTC5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicsTFtMLmxlbmd0aF09IjxhOmdzTHN0PiIsTFtMLmxlbmd0'@; put 'aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI1MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsTFtMLmxlbmd0aF09JzxhOmdzIHBvcz0iMzUwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xy'@; put 'Ij48YTp0aW50IHZhbD0iMzcwMDAiLz48YTpzYXRNb2QgdmFsPSIzMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLExbTC5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIxNTAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1'@; put 'MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsTFtMLmxlbmd0aF09IjwvYTpnc0xzdD4iLExbTC5sZW5ndGhdPSc8YTpsaW4gYW5nPSIxNjIwMDAwMCIgc2NhbGVkPSIxIi8+JyxMW0wubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsTFtMLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhT'@; put 'aGFwZT0iMSI+JyxMW0wubGVuZ3RoXT0iPGE6Z3NMc3Q+IixMW0wubGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjEwMDAwMCIvPjxhOnNoYWRlIHZhbD0iMTAwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMTMwMDAwIi8+PC9hOnNjaGVt'@; put 'ZUNscj48L2E6Z3M+JyxMW0wubGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNTAwMDAiLz48YTpzaGFkZSB2YWw9IjEwMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsTFtM'@; put 'Lmxlbmd0aF09IjwvYTpnc0xzdD4iLExbTC5sZW5ndGhdPSc8YTpsaW4gYW5nPSIxNjIwMDAwMCIgc2NhbGVkPSIwIi8+JyxMW0wubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsTFtMLmxlbmd0aF09IjwvYTpmaWxsU3R5bGVMc3Q+IixMW0wubGVuZ3RoXT0iPGE6bG5TdHlsZUxzdD4iLExbTC5s'@; put 'ZW5ndGhdPSc8YTpsbiB3PSI5NTI1IiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iOTUwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDUwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpzb2xpZEZp'@; put 'bGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj4nLExbTC5sZW5ndGhdPSc8YTpsbiB3PSIyNTQwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2'@; put 'YWw9InNvbGlkIi8+PC9hOmxuPicsTFtMLmxlbmd0aF09JzxhOmxuIHc9IjM4MTAwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6'@; put 'bG4+JyxMW0wubGVuZ3RoXT0iPC9hOmxuU3R5bGVMc3Q+IixMW0wubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGVMc3Q+IixMW0wubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGU+IixMW0wubGVuZ3RoXT0iPGE6ZWZmZWN0THN0PiIsTFtMLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAw'@; put 'MCIgZGlzdD0iMjAwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM4MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz4nLExbTC5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIsTFtMLmxlbmd0aF09Ijwv'@; put 'YTplZmZlY3RTdHlsZT4iLExbTC5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZT4iLExbTC5sZW5ndGhdPSI8YTplZmZlY3RMc3Q+IixMW0wubGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBkaXN0PSIyMzAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNy'@; put 'Z2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzUwMDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PicsTFtMLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixMW0wubGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlPiIsTFtMLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIsTFtMLmxl'@; put 'bmd0aF09IjxhOmVmZmVjdExzdD4iLExbTC5sZW5ndGhdPSc8YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIzMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAwMDAwMCI+PGE6YWxwaGEgdmFsPSIzNTAwMCIvPjwvYTpzcmdiQ2xy'@; put 'PjwvYTpvdXRlclNoZHc+JyxMW0wubGVuZ3RoXT0iPC9hOmVmZmVjdExzdD4iLExbTC5sZW5ndGhdPSc8YTpzY2VuZTNkPjxhOmNhbWVyYSBwcnN0PSJvcnRob2dyYXBoaWNGcm9udCI+PGE6cm90IGxhdD0iMCIgbG9uPSIwIiByZXY9IjAiLz48L2E6Y2FtZXJhPjxhOmxpZ2h0UmlnIHJpZz0i'@; put 'dGhyZWVQdCIgZGlyPSJ0Ij48YTpyb3QgbGF0PSIwIiBsb249IjAiIHJldj0iMTIwMDAwMCIvPjwvYTpsaWdodFJpZz48L2E6c2NlbmUzZD4nLExbTC5sZW5ndGhdPSc8YTpzcDNkPjxhOmJldmVsVCB3PSI2MzUwMCIgaD0iMjU0MDAiLz48L2E6c3AzZD4nLExbTC5sZW5ndGhdPSI8L2E6ZWZm'@; put 'ZWN0U3R5bGU+IixMW0wubGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlTHN0PiIsTFtMLmxlbmd0aF09IjxhOmJnRmlsbFN0eWxlTHN0PiIsTFtMLmxlbmd0aF09JzxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+JyxMW0wubGVuZ3RoXT0nPGE6Z3Jh'@; put 'ZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLExbTC5sZW5ndGhdPSI8YTpnc0xzdD4iLExbTC5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNDAwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpn'@; put 'cz4nLExbTC5sZW5ndGhdPSc8YTpncyBwb3M9IjQwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjQ1MDAwIi8+PGE6c2hhZGUgdmFsPSI5OTAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsTFtMLmxlbmd0aF09Jzxh'@; put 'OmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSIyMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjI1NTAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsTFtMLmxlbmd0aF09IjwvYTpnc0xzdD4iLExbTC5sZW5ndGhdPSc8YTpwYXRoIHBhdGg9ImNp'@; put 'cmNsZSI+PGE6ZmlsbFRvUmVjdCBsPSI1MDAwMCIgdD0iLTgwMDAwIiByPSI1MDAwMCIgYj0iMTgwMDAwIi8+PC9hOnBhdGg+JyxMW0wubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsTFtMLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxMW0wubGVuZ3RoXT0iPGE6Z3NM'@; put 'c3Q+IixMW0wubGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjgwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxMW0wubGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVt'@; put 'ZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9IjMwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMjAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxMW0wubGVuZ3RoXT0iPC9hOmdzTHN0PiIsTFtMLmxlbmd0aF09JzxhOnBhdGggcGF0aD0iY2lyY2xlIj48YTpmaWxsVG9SZWN0IGw9IjUw'@; put 'MDAwIiB0PSI1MDAwMCIgcj0iNTAwMDAiIGI9IjUwMDAwIi8+PC9hOnBhdGg+JyxMW0wubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsTFtMLmxlbmd0aF09IjwvYTpiZ0ZpbGxTdHlsZUxzdD4iLExbTC5sZW5ndGhdPSI8L2E6Zm10U2NoZW1lPiIsTFtMLmxlbmd0aF09IjwvYTp0aGVtZUVsZW1l'@; put 'bnRzPiIsTFtMLmxlbmd0aF09IjxhOm9iamVjdERlZmF1bHRzPiIsTFtMLmxlbmd0aF09IjxhOnNwRGVmPiIsTFtMLmxlbmd0aF09JzxhOnNwUHIvPjxhOmJvZHlQci8+PGE6bHN0U3R5bGUvPjxhOnN0eWxlPjxhOmxuUmVmIGlkeD0iMSI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwv'@; put 'YTpsblJlZj48YTpmaWxsUmVmIGlkeD0iMyI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTpmaWxsUmVmPjxhOmVmZmVjdFJlZiBpZHg9IjIiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZWZmZWN0UmVmPjxhOmZvbnRSZWYgaWR4PSJtaW5vciI+PGE6c2NoZW1lQ2xy'@; put 'IHZhbD0ibHQxIi8+PC9hOmZvbnRSZWY+PC9hOnN0eWxlPicsTFtMLmxlbmd0aF09IjwvYTpzcERlZj4iLExbTC5sZW5ndGhdPSI8YTpsbkRlZj4iLExbTC5sZW5ndGhdPSc8YTpzcFByLz48YTpib2R5UHIvPjxhOmxzdFN0eWxlLz48YTpzdHlsZT48YTpsblJlZiBpZHg9IjIiPjxhOnNjaGVt'@; put 'ZUNsciB2YWw9ImFjY2VudDEiLz48L2E6bG5SZWY+PGE6ZmlsbFJlZiBpZHg9IjAiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZmlsbFJlZj48YTplZmZlY3RSZWYgaWR4PSIxIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmVmZmVjdFJlZj48YTpmb250UmVmIGlk'@; put 'eD0ibWlub3IiPjxhOnNjaGVtZUNsciB2YWw9InR4MSIvPjwvYTpmb250UmVmPjwvYTpzdHlsZT4nLExbTC5sZW5ndGhdPSI8L2E6bG5EZWY+IixMW0wubGVuZ3RoXT0iPC9hOm9iamVjdERlZmF1bHRzPiIsTFtMLmxlbmd0aF09IjxhOmV4dHJhQ2xyU2NoZW1lTHN0Lz4iLExbTC5sZW5ndGhd'@; put 'PSI8L2E6dGhlbWU+IixMLmpvaW4oIiIpfWZ1bmN0aW9uIGpEKHkpe3ZhciBQPXkucmVhZF9zaGlmdCgyKSxMPXkucmVhZF9zaGlmdCgyKS00LFE9W1BdO3N3aXRjaChQKXtjYXNlIDQ6Y2FzZSA1OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEzOlFbMV09ZnVu'@; put 'Y3Rpb24gVTkoeSl7dmFyIFA9e307c3dpdGNoKFAueGNsclR5cGU9eS5yZWFkX3NoaWZ0KDIpLFAublRpbnRTaGFkZT15LnJlYWRfc2hpZnQoMiksUC54Y2xyVHlwZSl7Y2FzZSAwOmNhc2UgNDp5LmwrPTQ7YnJlYWs7Y2FzZSAxOlAueGNsclZhbHVlPWZ1bmN0aW9uIHFtKHksUCl7cmV0dXJu'@; put 'IHljKHksUCl9KHksNCk7YnJlYWs7Y2FzZSAyOlAueGNsclZhbHVlPXZtKHkpO2JyZWFrO2Nhc2UgMzpQLnhjbHJWYWx1ZT1mdW5jdGlvbiBNQyh5KXtyZXR1cm4geS5yZWFkX3NoaWZ0KDQpfSh5KX1yZXR1cm4geS5sKz04LFB9KHkpO2JyZWFrO2Nhc2UgNjpRWzFdPWZ1bmN0aW9uIEJEKHks'@; put 'UCl7cmV0dXJuIHljKHksUCl9KHksTCk7YnJlYWs7Y2FzZSAxNDpjYXNlIDE1OlFbMV09eS5yZWFkX3NoaWZ0KDE9PT1MPzE6Mik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBFeHRQcm9wIHR5cGU6ICIrUCsiICIrTCl9cmV0dXJuIFF9ZnVuY3Rpb24gVUQo'@; put 'eSxQKXtQLmZvckVhY2goZnVuY3Rpb24oTCl7c3dpdGNoKExbMF0pe2Nhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6YnJlYWs7Y2FzZSAxMzp5LmZvbnQmJnkuZm9udC5jb2xvciYmQXJyYXkuaXNBcnJheShM'@; put 'WzFdLnhjbHJWYWx1ZSkmJih5LmZvbnQuY29sb3IucmdiPXoxKExbMV0ueGNsclZhbHVlKSl9fSl9ZnVuY3Rpb24gZGEoeSl7cmV0dXJuIHkvOTE0NDAwKm5mfWZ1bmN0aW9uIHhDKHksUCl7dmFyIEw9e307aWYoeS5wb3MpTC54PWRhKHkucG9zLngpLEwueT1kYSh5LnBvcy55KTtlbHNle2lm'@; put 'KCF5LmZyb20pdGhyb3ciYmFkIGFuY2hvciBzdGFydCI7TC5yPXkuZnJvbS5yfHwwLEwuYz15LmZyb20uY3x8MCx5LmZyb20uY09mZiYmKEwueD1kYSh5LmZyb20uY09mZikpLHkuZnJvbS5yT2ZmJiYoTC55PWRhKHkuZnJvbS5yT2ZmKSl9aWYoeS5leHQpTC53PWRhKHkuZXh0LngpLEwuaD1k'@; put 'YSh5LmV4dC55KTtlbHNle2lmKCF5LnRvKXRocm93ImJhZCBhbmNob3IgZW5kIjtMLkM9eS50by5jLEwuUj15LnRvLnIseS50by5jT2ZmJiYoTC5YPWRhKHkudG8uY09mZikpLHkudG8uck9mZiYmKEwuWT1kYSh5LnRvLnJPZmYpKX1yZXR1cm4gTH1mdW5jdGlvbiBzZih5LFApe3ZhciBMPXt4'@; put 'Oi0xLHk6LTEsdzotMSxoOi0xfTtpZih5LnBvcylMLng9ZGEoeS5wb3MueCksTC55PWRhKHkucG9zLnkpO2Vsc2V7aWYoIXkuZnJvbSl0aHJvdyJiYWQgYW5jaG9yIHN0YXJ0IjtMLng9WTEoUCx5LmZyb20uYywiQyIpK2RhKHkuZnJvbS5jT2ZmKSxMLnk9WTEoUCx5LmZyb20uciwiUiIpK2Rh'@; put 'KHkuZnJvbS5yT2ZmKX1pZih5LmV4dClMLnc9ZGEoeS5leHQueCksTC5oPWRhKHkuZXh0LnkpO2Vsc2V7aWYoIXkudG8pdGhyb3ciYmFkIGFuY2hvciBlbmQiO0wudz1ZMShQLHkudG8uYywiQyIpK2RhKHkudG8uY09mZiktTC54LEwuaD1ZMShQLHkudG8uciwiUiIpK2RhKHkudG8uck9mZikt'@; put 'TC55fXJldHVybiBMfWZ1bmN0aW9uIEttKHksUCl7dmFyIEw9e3I6LTEsYzotMSx4Oi0xLHk6LTEsUjotMSxDOi0xLFg6LTEsWTotMX07c3dpdGNoKHkudHlwZSl7Y2FzZSJ0d29DZWxsQW5jaG9yIjpMLnI9eS5mcm9tLnIsTC55PWRhKHkuZnJvbS5yT2ZmKSxMLlI9eS50by5yLEwuWT1kYSh5'@; put 'LnRvLnJPZmYpLEwuYz15LmZyb20uYyxMLng9ZGEoeS5mcm9tLmNPZmYpLEwuQz15LnRvLmMsTC5YPWRhKHkudG8uY09mZik7YnJlYWs7Y2FzZSJvbmVDZWxsQW5jaG9yIjpMLnI9eS5mcm9tLnIsTC55PWRhKHkuZnJvbS5yT2ZmKTt2YXIgUT1HMihQLEwucixMLnkrZGEoeS5leHQueSkpO0wu'@; put 'Uj1RWzBdLEwuWT1RWzFdLEwuYz15LmZyb20uYyxMLng9ZGEoeS5mcm9tLmNPZmYpO3ZhciByZT1KbShQLEwuYyxMLngrZGEoeS5leHQueCkpO0wuQz1yZVswXSxMLlg9cmVbMV07YnJlYWs7Y2FzZSJhYnNvbHV0ZUFuY2hvciI6dmFyIGdlPUcyKFAsMCxkYSh5LnBvcy55KSk7TC5yPWdlWzBd'@; put 'LEwueT1nZVsxXTt2YXIgX2U9RzIoUCxMLnIsTC55K2RhKHkuZXh0LnkpKTtMLlI9X2VbMF0sTC5ZPV9lWzFdO3ZhciB2ZT1HMihQLDAsZGEoeS5wb3MueCkpO0wuYz12ZVswXSxMLng9dmVbMV07dmFyIFNlPUcyKFAsTC5jLEwueCtkYSh5LmV4dC54KSk7TC5DPVNlWzBdLEwuWD1TZVsxXTti'@; put 'cmVhaztkZWZhdWx0OnRocm93ImJhZCBhbmNob3IgdHlwZSAiK3kudHlwZX1yZXR1cm4gTH1mdW5jdGlvbiBYbSh5LFApe3ZhciBMPXkudHJpbSgpLnNwbGl0KC9ccyosXHMqLyk7UFsiIXBvcyJdPXtjOitMWzBdLHg6K0xbMV0scjorTFsyXSx5OitMWzNdLEM6K0xbNF0sWDorTFs1XSxSOitM'@; put 'WzZdLFk6K0xbN119fWZ1bmN0aW9uIEVDKHksUCxMKXt2YXIgUT0tMTtpZihudWxsIT15LlJ8fG51bGwhPXkuQylRPTA7ZWxzZXtpZihudWxsPT15Lnh8fG51bGw9PXkueXx8bnVsbD09eS53fHxudWxsPT15LmgpdGhyb3ciY2Fubm90IHBhcnNlIGFuY2hvciAiK0pTT04uc3RyaW5naWZ5KHkp'@; put 'O1E9MSsyKiEoeS5jfHx5LnIpfWlmKFEhPVApe3N3aXRjaChQKXtjYXNlIDA6Y2FzZSAxOmlmKDMhPVEpYnJlYWs7dmFyIHJlPUptKEwseS5jfHwwLHkueHx8MCk7eS5jPXJlWzBdLHkueD1yZVsxXTt2YXIgZ2U9RzIoTCx5LnJ8fDAseS55fHwwKTt5LnI9Z2VbMF0seS55PWdlWzFdO2JyZWFr'@; put 'O2Nhc2UgMzppZigzPT1RKWJyZWFrO3ZhciBfZT15LmN8fDAsdmU9eS54fHwwO2RlbGV0ZSB5LmMsZGVsZXRlIHkueCx5Lng9KF9lP1k0KEwsX2UpOjApK3ZlO3ZhciBTZT15LnJ8fDAsSGU9eS55fHwwO2RlbGV0ZSB5LnIsZGVsZXRlIHkueSx5Lnk9KFNlP0YzKEwsU2UpOjApK0hlO2JyZWFr'@; put 'O2RlZmF1bHQ6dGhyb3ciY29udmVydF9hbmNob3IgdW5yZWNvZ25pemVkIHR5cGUgIitQfXN3aXRjaChQKXtjYXNlIDA6aWYoMD09USlicmVhazt2YXIgQmU9Sm0oTCx5LmN8fDAsKHkueHx8MCkreS53KTtkZWxldGUgeS53LHkuQz1CZVswXSx5Llg9QmVbMV07dmFyIEdlPUcyKEwseS5yfHww'@; put 'LCh5Lnl8fDApK3kuaCk7ZGVsZXRlIHkuaCx5LlI9R2VbMF0seS5ZPUdlWzFdO2JyZWFrO2Nhc2UgMTpjYXNlIDM6aWYoMCE9USlicmVhazt2YXIgbnQ9eS5DfHwwLGR0PXkuWHx8MDtkZWxldGUgeS5DLGRlbGV0ZSB5LlgseS53PVk0KEwsbnQpK2R0LSh5LmM/WTQoTCx5LmMpOjApLSh5Lnh8'@; put 'fDApO3ZhciBDdD15LlJ8fDAsY3Q9eS5ZfHwwO2RlbGV0ZSB5LlIsZGVsZXRlIHkuWSx5Lmg9RjMoTCxDdCkrY3QtKHkucj9GMyhMLHkucik6MCktKHkueXx8MCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJjb252ZXJ0X2FuY2hvciB1bnJlY29nbml6ZWQgdHlwZSAiK1B9fX1mdW5jdGlvbiBrQyh5'@; put 'KXt2YXIgUD1beS5jfHwwLE1hdGgucm91bmQoeS54fHwwKSx5LnJ8fDAsTWF0aC5yb3VuZCh5Lnl8fDApXTtyZXR1cm4oUD1QLmNvbmNhdCh5LmgmJnkudz9bUFswXSxNYXRoLnJvdW5kKFBbMV0reS53KSxQWzJdLE1hdGgucm91bmQoUFszXSt5LmgpXTpbeS5DfHwwLE1hdGgucm91bmQoeS5Y'@; put 'fHwwKSx5LlJ8fDAsTWF0aC5yb3VuZCh5Lll8fDApXSkpLmpvaW4oIiwgIil9ZnVuY3Rpb24gRjMoeSxQKXtpZigheSlyZXR1cm4gMDtmb3IodmFyIEw9MDstLVA+PTA7KXt2YXIgUT0oKHlbIiFyb3dzIl18fFtdKVtQXXx8e30pLmhweDtudWxsPT1RJiYoUT0oKHlbIiFzaGVldEZvcm1hdCJd'@; put 'fHx7fSkucm93fHx7fSkuaHB4KSxudWxsPT1RJiYoUT0yNCksTCs9UX1yZXR1cm4gTH1mdW5jdGlvbiBZNCh5LFApe2lmKCF5KXJldHVybiAwO2Zvcih2YXIgTD0wOy0tUD49MDspe3ZhciBRPSgoeVsiIWNvbHMiXXx8W10pW1BdfHx7fSkud3B4O2lmKG51bGw9PVEmJihRPSgoeVsiIXNoZWV0'@; put 'Rm9ybWF0Il18fHt9KS5jb2x8fHt9KS53cHgpLG51bGw9PVEpe3ZhciByZT17d2NoOjguNDN9O3B1KHJlKSx5WyIhY29scyJdJiYoeVsiIWNvbHMiXVtQXT1yZSksUT1yZS53cHh9TCs9UX1yZXR1cm4gTH1mdW5jdGlvbiBZMSh5LFAsTCl7cmV0dXJuIkMiPT1MP1k0KHksUCk6RjMoeSxQKX1m'@; put 'dW5jdGlvbiBHMih5LFAsTCl7dmFyIFE9W1AsTF07aWYoIXkpcmV0dXJuIFE7Zm9yKDs7KXt2YXIgcmU9KHlbIiFyb3dzIl18fFtdKVtRWzBdXXx8e307aWYocmUuaGlkZGVuKSsrUVswXTtlbHNle3ZhciBnZT1yZS5ocHg7aWYobnVsbD09Z2UmJihnZT0oKHlbIiFzaGVldEZvcm1hdCJdfHx7'@; put 'fSkucm93fHx7fSkuaHB4KSxudWxsPT1nZSYmKGdlPVUxKDE1KSksUVsxXTxnZSlicmVhaztRWzBdKyssUVsxXS09Z2V9fXJldHVybiBRfWZ1bmN0aW9uIEptKHksUCxMKXt2YXIgUT1bUCxMXTtpZigheSlyZXR1cm4gUTtmb3IoOzspe3ZhciByZT0oeVsiIWNvbHMiXXx8W10pW1FbMF1dfHx7'@; put 'fTtpZihyZS5oaWRkZW58fDA9PT1yZS53cHgpKytRWzBdO2Vsc2V7dmFyIGdlPXJlLndweDtpZihudWxsPT1nZSYmKGdlPSgoeVsiIXNoZWV0Rm9ybWF0Il18fHt9KS5jb2x8fHt9KS53cHgpLG51bGw9PWdlKXt2YXIgX2U9e3djaDo4LjQzfTtwdShfZSkseVsiIWNvbHMiXSYmKHlbIiFjb2xz'@; put 'Il1bUVswXV09X2UpLGdlPV9lLndweH1pZihRWzFdPGdlKWJyZWFrO1FbMF0rKyxRWzFdLT1nZX19cmV0dXJuIFF9ZnVuY3Rpb24gT3UoeSl7cmV0dXJuKCIwMDAwMDAiKygibnVtYmVyIj09dHlwZW9mIHk/eS50b1N0cmluZygxNik6eSkpLnNsaWNlKC02KX1mdW5jdGlvbiBVZCh5LFAsTCl7'@; put 'dmFyIFE9InN0cmluZyI9PXR5cGVvZiBQPyEhTDohIVA7InN0cmluZyIhPXR5cGVvZiBQJiYoUD0iY29sb3IiKTt2YXIgcmU9IjwiK1ArIiAiO3JldHVybiB5LmF1dG8/cmUrJ2F1dG89IjEiLz4nOnkuaW5kZXgmJm51bGw9PXkucmdiP3JlKydpbmRleGVkPSInK3kuaW5kZXgrJyIvPic6bnVs'@; put 'bCE9eS50aGVtZT9yZSsndGhlbWU9IicreS50aGVtZSsnIicrKHkudGludD8nIHRpbnQ9IicreS50aW50KyciJzoiIikrIi8+IjpudWxsIT15LnJnYj9yZSsncmdiPSInKyhRPyJGRiI6IiIpK091KHkucmdiKSsnIi8+JzpyZSsiLz4ifWZ1bmN0aW9uIEgzKHksUCl7aWYoIXl8fG51bGw9PXku'@; put 'cmdiKXJldHVybiBQO2Zvcih2YXIgTD0oIjAwMDAwMCIreS5yZ2IudG9TdHJpbmcoMTYpKS5zbGljZSgtNiksUT1bTC5zbGljZSgwLDIpLEwuc2xpY2UoMiw0KSxMLnNsaWNlKDQsNildLm1hcChmdW5jdGlvbihfZSl7cmV0dXJuIHBhcnNlSW50KF9lLDE2KX0pLHJlPTA7cmU8Q3IubGVuZ3Ro'@; put 'OysrcmUpe3ZhciBnZT1DcltyZV07aWYoZ2VbMF09PVFbMF0mJmdlWzFdPT1RWzFdJiZnZVsyXT09UVsyXSlyZXR1cm4gcmV9cmV0dXJuIENyLmxlbmd0aDw2ND8oQ3IucHVzaChbUVswXSxRWzFdLFFbMl1dKSxDci5sZW5ndGgtMSk6UH1mdW5jdGlvbiBXMSh5KXt2YXIgUD1bIiIsIiIsIiJd'@; put 'O2lmKCF5KXJldHVybltdO3ZhciBMPSIiLFE9eSYmeS5zP2Z1bmN0aW9uIFpEKHkpe3ZhciBQPVsiIiwiIl07aWYoIXkpcmV0dXJuIFA7aWYoeS5zeiYmKFBbMF0rPSImIit5LnN6LFBbMV09IiYxMiIrUFsxXSkseS5uYW1lJiYoUFswXSs9JyYiJyt5Lm5hbWUrJyxSZWd1bGFyIicsUFsxXT0n'@; put 'JiItLFJlZ3VsYXIiJytQWzFdKSx5LmJvbGQmJihQWzBdKz0iJkIiLFBbMV09IiZCIitQWzFdKSx5LnVuZGVybGluZSl7dmFyIEw9Mj09eS51bmRlcmxpbmU/IiZFIjoiJlUiO1BbMF0rPUwsUFsxXT1MK1BbMV19cmV0dXJuIHkuaXRhbGljJiYoUFswXSs9IiZJIixQWzFdPSImSSIrUFsxXSks'@; put 'eS5jb2xvciYmbnVsbCE9eS5jb2xvci5yZ2ImJihQWzBdKz0iJksiK091KHkuY29sb3IucmdiKSxQWzFdKz0iJkswMDAwMDAiKSx5LnN0cmlrZSYmKFBbMF0rPSImUyIsUFsxXT0iJlMiK1BbMV0pLCJzdXBlciI9PXkudmFsaWduJiYoUFswXSs9IiZYIixQWzFdPSImWCIrUFsxXSksInN1YiI9'@; put 'PXkudmFsaWduJiYoUFswXSs9IiZZIixQWzFdPSImWSIrUFsxXSksUH0oeS5zKTpbIiIsIiJdO3JldHVybiJzdHJpbmciPT10eXBlb2YgeT9beSx5LHldOm51bGwhPXkuZmlyc3R8fG51bGwhPXkuZXZlbnx8bnVsbCE9eS5vZGQ/KG51bGwhPXkub2RkJiYoUFswXT1XMSh5Lm9kZClbMF0pLHZv'@; put 'aWQgMD09PXkuZmlyc3QmJlBbMF0mJihQWzFdPVBbMF0pLG51bGwhPXkuZmlyc3QmJihQWzFdPVcxKHkuZmlyc3QpWzBdKSxudWxsIT15LmV2ZW4mJihQWzJdPVcxKHkuZXZlbilbMF0pLFApOnkubGVmdHx8eS5jZW50ZXJ8fHkucmlnaHQ/KHkubGVmdCYmKEwrPSImTCIrVzEoeS5sZWZ0KVsw'@; put 'XSkseS5jZW50ZXImJihMKz0iJkMiK1cxKHkuY2VudGVyKVswXSkseS5yaWdodCYmKEwrPSImUiIrVzEoeS5yaWdodClbMF0pLFtMLEwsTF0pOm51bGwhPXkudj9bTD1RWzBdK3kudi5yZXBsYWNlKC8mL2csIiYmIikrUVsxXSxMLExdOm51bGwhPXkudz9bTD1RWzBdK3kudytRWzFdLEwsTF06'@; put 'QXJyYXkuaXNBcnJheSh5LlIpPyh5LlIuZm9yRWFjaChmdW5jdGlvbihyZSl7TCs9VzEocmUpWzBdfSksW0wsTCxMXSk6W119dmFyIFFtPXsxOiJMZXR0ZXIiLDM6IlRhYmxvaWQiLDU6IkxlZ2FsIiw3OiJFeGVjdXRpdmUiLDg6IkEzIiw5OiJBNCIsMTE6IkE1IiwxMjoiQjQiLDEzOiJCNSIs'@; put 'MTQ6IkZvbGlvIiwyMDoiRW52ZWxvcGUiLDM3OiJNb25hcmNoIiw3MDoiQTYifSxaOT1iZShRbSk7SGkuQ09OTj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jb25uZWN0aW9ucyI7dmFyIHQ2PVNyKCJleHRlcm5h'@; put 'bExpbmsiLG51bGwse3htbG5zOmlzLm1haW5bMF19KTtIaS5JTUc9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaW1hZ2UiLEhpLkRSQVc9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VE'@; put 'b2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZHJhd2luZyI7dmFyIFlEPXt0OiJ0b3AiLGN0cjoiY2VudGVyIixiOiJib3R0b20iLGp1c3Q6InRvcCIsZGlzdDoidG9wIn0sTEM9e2N0cjoiY2VudGVyIixkaXN0OiJjZW50ZXIiLGp1c3Q6ImNlbnRlciIsanVzdExvdzoiY2VudGVyIixsOiJs'@; put 'ZWZ0IixyOiJyaWdodCIsdGhhaURpc3Q6ImNlbnRlciJ9O2Z1bmN0aW9uIFJDKCl7dmFyIHk9W0JuXTtyZXR1cm4geS5wdXNoKCc8eGRyOndzRHIgeG1sbnM6eGRyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvc3ByZWFkc2hlZXREcmF3aW5nIiB4'@; put 'bWxuczphPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpbiIvPicpLHkuam9pbigiIil9ZnVuY3Rpb24gT0MoeSl7dmFyIEwsUD15WyIhZGF0YSJdO3JldHVybiJiYXNlNjQiPT09eVsiIWRhdGF0eXBlIl0/KChMPVAubWF0Y2goL15kYXRhOi4q'@; put 'LC8pKSYmKFA9UC5zbGljZShMWzBdLmxlbmd0aCkpLHNlLmRlY29kZShQKSk6UH1IaS5UQUJMRT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy90YWJsZSI7dmFyIE4zPS88KD86XHcrOik/c2hhcGUoPzpbXlx3XVte'@; put 'Pl0qKT8+KFtcc1xTXSo/KTxcLyg/Olx3KzopP3NoYXBlPi9nO2Z1bmN0aW9uIHFEKHksUCxMLFEpe3ZhciByZT1bMjE2MDAsMjE2MDBdLGdlPVsibTAsMGwwIixyZVsxXSxyZVswXSxyZVsxXSxyZVswXSwiMHhlIl0uam9pbigiLCIpLF9lPVtTcigieG1sIixudWxsLHsieG1sbnM6diI6V2ku'@; put 'diwieG1sbnM6byI6V2kubywieG1sbnM6eCI6V2kueCwieG1sbnM6bXYiOldpLm12fSkucmVwbGFjZSgvXC8+LywiPiIpLFNyKCJvOnNoYXBlbGF5b3V0IixTcigibzppZG1hcCIsbnVsbCx7InY6ZXh0IjoiZWRpdCJ9KSx7InY6ZXh0IjoiZWRpdCJ9KV0sdmU9MTAyNCp5LFNlPUx8fFtdO1Nl'@; put 'Lmxlbmd0aD4wJiZfZS5wdXNoKFNyKCJ2OnNoYXBldHlwZSIsW1NyKCJ2OnN0cm9rZSIsbnVsbCx7am9pbnN0eWxlOiJtaXRlciJ9KSxTcigidjpwYXRoIixudWxsLHtzaGFkb3dvazoiZiIsZXh0cnVzaW9ub2s6ImYiLHN0cm9rZW9rOiJmIixmaWxsb2s6ImYiLCJvOmNvbm5lY3R0eXBlIjoi'@; put 'cmVjdCJ9KSxTcigibzpsb2NrIixudWxsLHsidjpleHQiOiJlZGl0IixzaGFwZXR5cGU6InQifSldLmpvaW4oIiIpLHtpZDoiX3gwMDAwX3QyMDEiLGNvb3Jkc2l6ZTpyZS5qb2luKCIsIiksIm86c3B0IjoyMDEscGF0aDpnZX0pKSxTZS5mb3JFYWNoKGZ1bmN0aW9uKEJlKXsrK3ZlLF9lPV9l'@; put 'LmNvbmNhdChmdW5jdGlvbiBGQyh5LFApe3ZhciBMPXtpZDoiX3gwMDAwX3MiK1AsdHlwZToiI194MDAwMF90MjAxIixzdHlsZToibXNvLXdyYXAtc3R5bGU6dGlnaHQifTsoIlJhZGlvIj09eVsiIXR5cGUiXXx8IkNoZWNrYm94Ij09eVsiIXR5cGUiXXx8Ikxpc3QiPT15WyIhdHlwZSJdfHwi'@; put 'RHJvcCI9PXlbIiF0eXBlIl0pJiYoTC5zdHJva2VkPSJmIiksIkxhYmVsIj09eVsiIXR5cGUiXSYmKEwuZmlsbGVkPSJmIik7dmFyIFE9IiI7eS50JiZQQ1t5WyIhdHlwZSJdXSYmKFE9UENbeVsiIXR5cGUiXV0ucmVwbGFjZSgvIyMjIy8sSHIoeS50KSkpO3ZhciByZT1bXTtyZXR1cm4geS5t'@; put 'YWNybyYmcmUucHVzaChmcygieDpGbWxhTWFjcm8iLHkubWFjcm8pKSx5LmxpbmsmJnJlLnB1c2goZnMoIng6Rm1sYUxpbmsiLHkubGluaykpLHkudmFsJiZyZS5wdXNoKGZzKCJSYWRpbyI9PXlbIiF0eXBlIl18fCJDaGVja2JveCI9PXlbIiF0eXBlIl0/Ing6Q2hlY2tlZCI6Ing6VmFsIixT'@; put 'dHJpbmcoeS52YWwpKSkseS5yZWYmJnJlLnB1c2goZnMoIng6Rm1sYVJhbmdlIix5LnJlZikpLHkuc2VsJiYiTGlzdCI9PXlbIiF0eXBlIl0mJnJlLnB1c2goZnMoIng6U2VsVHlwZSIseS5zZWwpKSx5Lm1pbiYmcmUucHVzaChmcygieDpNaW4iLFN0cmluZyh5Lm1pbikpKSx5Lm1heCYmcmUu'@; put 'cHVzaChmcygieDpNYXgiLFN0cmluZyh5Lm1heCkpKSx5LnN0ZXAmJnJlLnB1c2goZnMoIng6SW5jIixTdHJpbmcoeS5zdGVwKSkpLHkucGFnZSYmcmUucHVzaChmcygieDpQYWdlIixTdHJpbmcoeS5wYWdlKSkpLFtdLmNvbmNhdChbIjx2OnNoYXBlIitQYShMKSsiPiJdKS5jb25jYXQoRzlb'@; put 'eVsiIXR5cGUiXV18fFtdKS5jb25jYXQoW1FdKS5jb25jYXQoWyc8eDpDbGllbnREYXRhIE9iamVjdFR5cGU9IicreVsiIXR5cGUiXSsnIj4nLGZzKCJ4OkFuY2hvciIsa0MoeVsiIXBvcyJdKSksZnMoIng6UHJpbnRPYmplY3QiLCJGYWxzZSIpXSkuY29uY2F0KHJlKS5jb25jYXQoTFpbeVsi'@; put 'IXR5cGUiXV18fFtdKS5jb25jYXQoWyI8L3g6Q2xpZW50RGF0YT4iLCI8L3Y6c2hhcGU+Il0pfShCZSx2ZSkpfSk7dmFyIEhlPVB8fFtdO3JldHVybiBIZS5sZW5ndGg+MCYmX2UucHVzaChTcigidjpzaGFwZXR5cGUiLFtTcigidjpzdHJva2UiLG51bGwse2pvaW5zdHlsZToibWl0ZXIifSks'@; put 'U3IoInY6cGF0aCIsbnVsbCx7Z3JhZGllbnRzaGFwZW9rOiJ0Iiwibzpjb25uZWN0dHlwZSI6InJlY3QifSldLmpvaW4oIiIpLHtpZDoiX3gwMDAwX3QyMDIiLGNvb3Jkc2l6ZTpyZS5qb2luKCIsIiksIm86c3B0IjoyMDIscGF0aDpnZX0pKSxIZS5mb3JFYWNoKGZ1bmN0aW9uKEJlKXsrK3Zl'@; put 'LF9lPV9lLmNvbmNhdChmdW5jdGlvbiBLNCh5LFAsTCl7dmFyIFE9c3MoeVswXSkscmU9eVsxXS5maWxsfHx7fTt5WzFdLnMmJihyZT17dHlwZTp5WzFdLnMucGF0dGVyblR5cGV8fCJzb2xpZCJ9LHlbMV0ucy5mZ0NvbG9yJiYocmUuY29sb3IyPXJlLmNvbG9yMT0iIyIrT3UoeVsxXS5zLmZn'@; put 'Q29sb3IucmdiKSkseVsxXS5zLmJnQ29sb3ImJihyZS5jb2xvcjI9IiMiK091KHlbMV0ucy5iZ0NvbG9yLnJnYikpKTt2YXIgZ2U9e2NvbG9yMjpyZS5jb2xvcjJ8fCIjQkVGRjgyIix0eXBlOnJlLnR5cGV8fCJncmFkaWVudCJ9OyJncmFkaWVudCI9PWdlLnR5cGUmJihnZS5hbmdsZT0iLTE4'@; put 'MCIpO3ZhciBfZT0iZ3JhZGllbnQiPT1nZS50eXBlP1NyKCJvOmZpbGwiLG51bGwse3R5cGU6ImdyYWRpZW50VW5zY2FsZWQiLCJ2OmV4dCI6InZpZXcifSk6bnVsbCx2ZT1TcigidjpmaWxsIixfZSxnZSksU2U9e307eVsxXS5zaGFkb3cmJih5WzFdLnNoYWRvdy5jb2xvciYmKFNlLmNvbG9y'@; put 'PXlbMV0uc2hhZG93LmNvbG9yKSx5WzFdLnNoYWRvdy5vbiYmKFNlLm9uPXlbMV0uc2hhZG93Lm9uKSksU2Uub2JzY3VyZWQ9InQiO3ZhciBIZT0hMCxCZT0hMCxHZT15WzFdWyIhcG9zIl0/b24oeVsxXVsiIXBvcyJdKTpudWxsO3JldHVybiBHZSYmKEJlPW51bGw9PUdlLlImJm51bGw9PUdl'@; put 'LkMmJm51bGw9PUdlLlgmJm51bGw9PUdlLlksSGU9IUdlLnImJiFHZS5jLEVDKEdlLDAsTCkpLFsiPHY6c2hhcGUiK1BhKHtpZDoiX3gwMDAwX3MiK1AsdHlwZToiI194MDAwMF90MjAyIixzdHlsZToicG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi1sZWZ0OjgwcHQ7bWFyZ2luLXRvcDo1cHQ7'@; put 'd2lkdGg6MTA0cHQ7aGVpZ2h0OjY0cHQ7ei1pbmRleDoxMCIrKHlbMV0uaGlkZGVuPyI7dmlzaWJpbGl0eTpoaWRkZW4iOiIiKSxmaWxsY29sb3I6cmUuY29sb3IxfHwiI0VDRkFENCIsc3Ryb2tlY29sb3I6KHlbMV0uc3Ryb2tlfHx7fSkuY29sb3J8fCIjZWRlYWExIn0pKyI+Iix2ZSxTcigi'@; put 'djpzaGFkb3ciLG51bGwsU2UpLFNyKCJ2OnBhdGgiLG51bGwseyJvOmNvbm5lY3R0eXBlIjoibm9uZSJ9KSwnPHY6dGV4dGJveD48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjwvZGl2Pjwvdjp0ZXh0Ym94PicsJzx4OkNsaWVudERhdGEgT2JqZWN0VHlwZT0iTm90ZSI+JyxIZT8iPHg6'@; put 'TW92ZVdpdGhDZWxscy8+IjoiIixCZT8iPHg6U2l6ZVdpdGhDZWxscy8+IjoiIixmcygieDpBbmNob3IiLEdlP2tDKEdlKTp5WzFdLnJhd2FuY2hvcnx8W1EuYysxLDAsUS5yKzEsMCxRLmMrMywyMCxRLnIrNSwyMF0uam9pbigiLCIpKSxmcygieDpBdXRvRmlsbCIsIkZhbHNlIiksZnMoIng6'@; put 'Um93IixTdHJpbmcoUS5yKSksZnMoIng6Q29sdW1uIixTdHJpbmcoUS5jKSkseVsxXS5oaWRkZW4/IiI6Ijx4OlZpc2libGUvPiIsIjwveDpDbGllbnREYXRhPiIsIjwvdjpzaGFwZT4iXX0oQmUsdmUsUSkpfSksX2UucHVzaCgiPC94bWw+IiksX2Uuam9pbigiIil9dmFyIExaPXtCdXR0b246'@; put 'WyI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpUZXh0SEFsaWduPkNlbnRlcjwveDpUZXh0SEFsaWduPiIsIjx4OlRleHRWQWxpZ24+Q2VudGVyPC94OlRleHRWQWxpZ24+Il0sR0JveDpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9G'@; put 'aWxsPiIsIjx4Ok5vVGhyZWVELz4iXSxMYWJlbDpbIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9GaWxsPiIsIjx4OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9MaW5lPiJdLFJhZGlvOlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0ZpbGw+RmFsc2U8L3g6QXV0b0ZpbGw+IiwiPHg6QXV0'@; put 'b0xpbmU+RmFsc2U8L3g6QXV0b0xpbmU+IiwiPHg6VGV4dFZBbGlnbj5DZW50ZXI8L3g6VGV4dFZBbGlnbj4iLCI8eDpOb1RocmVlRC8+Il0sQ2hlY2tib3g6WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpBdXRvTGluZT5GYWxzZTwv'@; put 'eDpBdXRvTGluZT4iLCI8eDpUZXh0VkFsaWduPkNlbnRlcjwveDpUZXh0VkFsaWduPiIsIjx4Ok5vVGhyZWVELz4iXSxEcm9wOlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0xpbmU+RmFsc2U8L3g6QXV0b0xpbmU+IiwiPHg6Tm9UaHJlZUQyLz4iLCI8eDpTZWxUeXBlPlNpbmdsZTwv'@; put 'eDpTZWxUeXBlPiIsIjx4OkRyb3BTdHlsZT5Db21ibzwveDpEcm9wU3R5bGU+IiwiPHg6TENUPk5vcm1hbDwveDpMQ1Q+IiwiPHg6RHJvcExpbmVzPjQ8L3g6RHJvcExpbmVzPiJdLExpc3Q6WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpBdXRvTGluZT5GYWxzZTwveDpBdXRvTGluZT4iLCI8'@; put 'eDpOb1RocmVlRDIvPiIsIjx4OkxDVD5Ob3JtYWw8L3g6TENUPiIsIjx4OlZhbD4wPC94OlZhbD4iLCI8eDpNaW4+MDwveDpNaW4+IiwiPHg6TWF4PjU8L3g6TWF4PiIsIjx4OkluYz4xPC94OkluYz4iLCI8eDpQYWdlPjQ8L3g6UGFnZT4iLCI8eDpEeD4xNTwveDpEeD4iXSxTY3JvbGw6WyI8'@; put 'eDpTaXplV2l0aENlbGxzLz4iLCI8eDpIb3Jpei8+IiwiPHg6RHg+MTU8L3g6RHg+Il0sU3BpbjpbIjx4OkR4PjE1PC94OkR4PiJdfSxQQz17QnV0dG9uOiI8djp0ZXh0Ym94IHN0eWxlPSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0'@; put 'LWFsaWduOmNlbnRlcic+PGZvbnQgZmFjZT0nQ2FsaWJyaScgc2l6ZT0nMjQwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLEdCb3g6Ijx2OnRleHRib3ggc3R5bGU9J21zby1kaXJlY3Rpb24tYWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9J2YnPjxkaXYg'@; put 'c3R5bGU9J3RleHQtYWxpZ246bGVmdCc+PGZvbnQgZmFjZT0nTHVjaWRhIEdyYW5kZScgc2l6ZT0nMjYwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLFJhZGlvOiI8djp0ZXh0Ym94IHN0eWxlPSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmds'@; put 'ZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQnPjxmb250IGZhY2U9J0x1Y2lkYSBHcmFuZGUnIHNpemU9JzI2MCcgY29sb3I9J2F1dG8nPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixMYWJlbDoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6'@; put 'YXV0bycgbzpzaW5nbGVjbGljaz0nZic+PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0Jz48Zm9udCBmYWNlPSdMdWNpZGEgR3JhbmRlJyBzaXplPScyNjAnIGNvbG9yPScjMDAwMDAwJz4jIyMjPC9mb250PjwvZGl2Pjwvdjp0ZXh0Ym94PiIsQ2hlY2tib3g6Ijx2OnRleHRib3ggc3R5bGU9'@; put 'J21zby1kaXJlY3Rpb24tYWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9J2YnPjxkaXYgc3R5bGU9J3RleHQtYWxpZ246bGVmdCc+PGZvbnQgZmFjZT0nTHVjaWRhIEdyYW5kZScgc2l6ZT0nMjYwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLHNoZWV0anM6'@; put 'ImRhZnVxIn0sRzk9e0J1dHRvbjpbJzx2OmZpbGwgY29sb3IyPSIjZjBmMGYwIFs2N10iIG86ZGV0ZWN0bW91c2VjbGljaz0idCIvPicsJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10sR0JveDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10sRHJv'@; put 'cDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10sTGlzdDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10sU3BpbjpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10sU2Nyb2xs'@; put 'OlsnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiIHRleHQ9InQiLz4nXSxMYWJlbDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10sUmFkaW86Wyc8djpwYXRoIHNoYWRvd29rPSJ0IiBzdHJva2Vvaz0idCIgZmlsbG9rPSJ0Ii8+JywnPG86bG9jayB2OmV4'@; put 'dD0iZWRpdCIgcm90YXRpb249InQiLz4nXSxDaGVja2JveDpbJzx2OnBhdGggc2hhZG93b2s9InQiIHN0cm9rZW9rPSJ0IiBmaWxsb2s9InQiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPiddLHNoZWV0anM6W119O2Z1bmN0aW9uIG42KHksUCxMLFEpe3ZhciByZT17'@; put 'IiFpZCI6e319LGdlPVtTcigieG1sIixudWxsLHsieG1sbnM6diI6V2kudiwieG1sbnM6byI6V2kubywieG1sbnM6eCI6V2kueH0pLnJlcGxhY2UoL1wvPi8sIj4iKSxTcigibzpzaGFwZWxheW91dCIsU3IoIm86aWRtYXAiLG51bGwseyJ2OmV4dCI6ImVkaXQiLGRhdGE6MX0pLHsidjpleHQi'@; put 'OiJlZGl0In0pLCc8djpzaGFwZXR5cGUgaWQ9Il94MDAwMF90NzUiIGNvb3Jkc2l6ZT0iMjE2MDAsMjE2MDAiIG86c3B0PSI3NSIgbzpwcmVmZXJyZWxhdGl2ZT0idCIgcGF0aD0ibUA0QDVsQDRAMTFAOUAxMUA5QDV4ZSIgZmlsbGVkPSJmIiBzdHJva2VkPSJmIj4nLCc8djpzdHJva2Ugam9p'@; put 'bnN0eWxlPSJtaXRlciIvPicsIjx2OmZvcm11bGFzPiIsJzx2OmYgZXFuPSJpZiBsaW5lRHJhd24gcGl4ZWxMaW5lV2lkdGggMCIvPicsJzx2OmYgZXFuPSJzdW0gQDAgMSAwIi8+JywnPHY6ZiBlcW49InN1bSAwIDAgQDEiLz4nLCc8djpmIGVxbj0icHJvZCBAMiAxIDIiLz4nLCc8djpmIGVx'@; put 'bj0icHJvZCBAMyAyMTYwMCBwaXhlbFdpZHRoIi8+JywnPHY6ZiBlcW49InByb2QgQDMgMjE2MDAgcGl4ZWxIZWlnaHQiLz4nLCc8djpmIGVxbj0ic3VtIEAwIDAgMSIvPicsJzx2OmYgZXFuPSJwcm9kIEA2IDEgMiIvPicsJzx2OmYgZXFuPSJwcm9kIEA3IDIxNjAwIHBpeGVsV2lkdGgiLz4n'@; put 'LCc8djpmIGVxbj0ic3VtIEA4IDIxNjAwIDAiLz4nLCc8djpmIGVxbj0icHJvZCBANyAyMTYwMCBwaXhlbEhlaWdodCIvPicsJzx2OmYgZXFuPSJzdW0gQDEwIDIxNjAwIDAiLz4nLCI8L3Y6Zm9ybXVsYXM+IiwnPHY6cGF0aCBvOmV4dHJ1c2lvbm9rPSJmIiBncmFkaWVudHNoYXBlb2s9InQi'@; put 'IG86Y29ubmVjdHR5cGU9InJlY3QiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0IiBhc3BlY3RyYXRpbz0idCIvPicsIjwvdjpzaGFwZXR5cGU+Il0sX2U9MTtbImhlYWRlciIsImZvb3RlciJdLmZvckVhY2goZnVuY3Rpb24odmUpe1FbdmVdJiZbIm9kZCIsImV2ZW4iLCJmaXJzdCJdLmZvckVh'@; put 'Y2goZnVuY3Rpb24oU2Upe1FbdmVdW1NlXSYmWyJsZWZ0IiwicmlnaHQiLCJjZW50ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKEhlKXtpZihBcnJheS5pc0FycmF5KFFbdmVdW1NlXVtIZV0pKWZvcih2YXIgQmU9MDtCZTxRW3ZlXVtTZV1bSGVdLmxlbmd0aDsrK0JlKWlmKFFbdmVdW1NlXVtIZV1b'@; put 'QmVdKXt2YXIgR2U9UVt2ZV1bU2VdW0hlXVtCZV07aWYoInJlbW90ZSI9PUdlWyIhZGF0YXR5cGUiXSl0aHJvdyJDYW5ub3QgdXNlIGxpbmtlZCBpbWFnZSBpbiBoZWFkZXIgb3IgZm9vdGVyIjtmb3IoO21uKHksInhsL21lZGlhL2ltYWdlIitfZSsiLmpwZyIpOykrK19lO3kuZmlsZSgieGwv'@; put 'bWVkaWEvaW1hZ2UiK19lKyIuanBnIixPQyhHZSkse2JpbmFyeTohMH0pLHpvKHJlLC0xLCIuLi9tZWRpYS9pbWFnZSIrX2UrIi5qcGciLEhpLklNRyk7dmFyIG50PSJfeDAwMDBfcyIrKDEwMjUrR2UuX2NudCksZHQ9InBvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRv'@; put 'cDowO3otaW5kZXg6IisoR2UuX2NudCsxKSsiOyI7ZHQrPSJ3aWR0aDoiK0dlWyIhcG9zIl0udysicHg7IixkdCs9ImhlaWdodDoiK0dlWyIhcG9zIl0uaCsicHg7Ijt2YXIgQ3Q9SGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdmUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7Im9kZCIhPT1T'@; put 'ZSYmKEN0Kz1TZS50b1VwcGVyQ2FzZSgpKSxRW3ZlXVtTZV1bSGVdLmxlbmd0aD4xJiYoQ3QrPUJlKSxnZS5wdXNoKFNyKCJ2OnNoYXBlIixbJzx2OmltYWdlZGF0YSBvOnJlbGlkPSJySWQnKyhHZS5fY250KzEpKyciIG86dGl0bGU9InNoZWV0anMiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0'@; put 'IiByb3RhdGlvbj0idCIvPiddLmpvaW4oIiIpLHtpZDpDdCwibzpzcGlkIjpudCx0eXBlOiIjX3gwMDAwX3Q3NSIsc3R5bGU6ZHR9KSl9fSl9KX0pLGdlLnB1c2goIjwveG1sPiIpLHkuZmlsZSgieGwvZHJhd2luZ3Mvdm1sRHJhd2luZyIrTCsiSEYudm1sIixnZS5qb2luKCIiKSkseS5maWxl'@; put 'KCJ4bC9kcmF3aW5ncy9fcmVscy92bWxEcmF3aW5nIitMKyJIRi52bWwucmVscyIsWGEocmUpKX1IaS5DTU5UPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2NvbW1lbnRzIjt2YXIgTkM9U3IoImNvbW1lbnRzIixu'@; put 'dWxsLHt4bWxuczppcy5tYWluWzBdfSk7ZnVuY3Rpb24gVkMoeSl7dmFyIFA9W0JuLE5DXSxMPVtdO3JldHVybiBQLnB1c2goIjxhdXRob3JzPiIpLHkuZm9yRWFjaChmdW5jdGlvbihRKXtRWzFdLmZvckVhY2goZnVuY3Rpb24ocmUpe3ZhciBnZT1IcihyZS5hKTtMLmluZGV4T2YoZ2UpPi0x'@; put 'fHwoTC5wdXNoKGdlKSxQLnB1c2goIjxhdXRob3I+IitnZSsiPC9hdXRob3I+IikpfSl9KSxQLnB1c2goIjwvYXV0aG9ycz4iKSxQLnB1c2goIjxjb21tZW50TGlzdD4iKSx5LmZvckVhY2goZnVuY3Rpb24oUSl7UVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtQLnB1c2goJzxjb21tZW50IHJl'@; put 'Zj0iJytRWzBdKyciIGF1dGhvcklkPSInK0wuaW5kZXhPZihIcihyZS5hKSkrJyI+PHRleHQ+JyksUC5wdXNoKHJlLlI/SmgocmUuUik6ZnMoInQiLG51bGw9PXJlLnQ/IiI6SHIocmUudCkpKSxQLnB1c2goIjwvdGV4dD48L2NvbW1lbnQ+Iil9KX0pLFAucHVzaCgiPC9jb21tZW50TGlzdD4i'@; put 'KSxQLmxlbmd0aD4yJiYoUFtQLmxlbmd0aF09IjwvY29tbWVudHM+IixQWzFdPVBbMV0ucmVwbGFjZSgiLz4iLCI+IikpLFAuam9pbigiIil9dmFyIFhEPUNjO2Z1bmN0aW9uIGVJKHkpe3ZhciBQPXdjKCksTD1bXTtyZXR1cm4gdWkoUCwiQnJ0QmVnaW5Db21tZW50cyIpLHVpKFAsIkJydEJl'@; put 'Z2luQ29tbWVudEF1dGhvcnMiKSx5LmZvckVhY2goZnVuY3Rpb24oUSl7UVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtMLmluZGV4T2YocmUuYSk+LTF8fChMLnB1c2gocmUuYS5zbGljZSgwLDU0KSksdWkoUCwiQnJ0Q29tbWVudEF1dGhvciIsZnVuY3Rpb24gSkQoeSl7cmV0dXJuIHJjKHku'@; put 'c2xpY2UoMCw1NCkpfShyZS5hKSkpfSl9KSx1aShQLCJCcnRFbmRDb21tZW50QXV0aG9ycyIpLHVpKFAsIkJydEJlZ2luQ29tbWVudExpc3QiKSx5LmZvckVhY2goZnVuY3Rpb24oUSl7UVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtyZS5pYXV0aG9yPUwuaW5kZXhPZihyZS5hKTt2YXIgZ2U9'@; put 'e3M6c3MoUVswXSksZTpzcyhRWzBdKX07dWkoUCwiQnJ0QmVnaW5Db21tZW50IixmdW5jdGlvbiBLRCh5LFApe3JldHVybiBudWxsPT1QJiYoUD1wcigzNikpLFAud3JpdGVfc2hpZnQoNCx5WzFdLmlhdXRob3IpLEQxKHlbMF0sUCksUC53cml0ZV9zaGlmdCg0LDApLFAud3JpdGVfc2hpZnQo'@; put 'NCwwKSxQLndyaXRlX3NoaWZ0KDQsMCksUC53cml0ZV9zaGlmdCg0LDApLFB9KFtnZSxyZV0pKSxyZS50JiZyZS50Lmxlbmd0aD4wJiZ1aShQLCJCcnRDb21tZW50VGV4dCIsZnVuY3Rpb24gYXIoeSxQKXt2YXIgTD0hMTtyZXR1cm4gbnVsbD09UCYmKEw9ITAsUD1wcigyMys0KnkudC5sZW5n'@; put 'dGgpKSxQLndyaXRlX3NoaWZ0KDEsMSkscmMoeS50LFApLFAud3JpdGVfc2hpZnQoNCwxKSxmdW5jdGlvbiBrZCh5LFApe1B8fChQPXByKDQpKSxQLndyaXRlX3NoaWZ0KDIseS5pY2h8fDApLFAud3JpdGVfc2hpZnQoMix5LmlmbnR8fDApfSh7aWNoOjAsaWZudDowfSxQKSxMP1Auc2xpY2Uo'@; put 'MCxQLmwpOlB9KHJlKSksdWkoUCwiQnJ0RW5kQ29tbWVudCIpLGRlbGV0ZSByZS5pYXV0aG9yfSl9KSx1aShQLCJCcnRFbmRDb21tZW50TGlzdCIpLHVpKFAsIkJydEVuZENvbW1lbnRzIiksUC5lbmQoKX12YXIgJDI9ImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdCIsUlo9'@; put 'WyJ4bHNiIiwieGxzbSIsInhsYW0iLCJiaWZmOCIsInhsYSJdO0hpLkRTPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2RpYWxvZ3NoZWV0IixIaS5NUz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZp'@; put 'Y2UvMjAwNi9yZWxhdGlvbnNoaXBzL3hsTWFjcm9zaGVldCI7dmFyIGFmPWZ1bmN0aW9uKCl7dmFyIHk9LyhefFteQS1aYS16X10pUihcWz8tP1xkK1xdfFsxLTldXGQqfClDKFxbPy0/XGQrXF18WzEtOV1cZCp8KSg/IVtBLVphLXowLTlfXSkvZyxQPXtyOjAsYzowfTtmdW5jdGlvbiBMKFEs'@; put 'cmUsZ2UsX2Upe3ZhciB2ZT0hMSxTZT0hMTswPT1nZS5sZW5ndGg/U2U9ITA6IlsiPT1nZS5jaGFyQXQoMCkmJihTZT0hMCxnZT1nZS5zbGljZSgxLC0xKSksMD09X2UubGVuZ3RoP3ZlPSEwOiJbIj09X2UuY2hhckF0KDApJiYodmU9ITAsX2U9X2Uuc2xpY2UoMSwtMSkpO3ZhciBIZT1nZS5s'@; put 'ZW5ndGg+MD8wfHBhcnNlSW50KGdlLDEwKTowLEJlPV9lLmxlbmd0aD4wPzB8cGFyc2VJbnQoX2UsMTApOjA7cmV0dXJuIHZlP0JlKz1QLmM6LS1CZSxTZT9IZSs9UC5yOi0tSGUscmUrKHZlPyIiOiIkIikrTnMoQmUpKyhTZT8iIjoiJCIpK0hzKEhlKX1yZXR1cm4gZnVuY3Rpb24ocmUsZ2Up'@; put 'e3JldHVybiBQPWdlLHJlLnJlcGxhY2UoeSxMKX19KCkscTk9LyhefFteLl9BLVowLTldKShbJF0/KShbQS1aXXsxLDJ9fFtBLVddW0EtWl17Mn18WFtBLUVdW0EtWl18WEZbQS1EXSkoWyRdPykoMTBbMC0zXVxkezR9fDEwNFswLTddXGR7M318MTA0OFswLTRdXGR7Mn18MTA0ODVbMC02XVxk'@; put 'fDEwNDg1N1swLTZdfFsxLTldXGR7MCw1fSkoPyFbXy5cKEEtWmEtejAtOV0pL2csSzk9ZnVuY3Rpb24oUCxMKXtyZXR1cm4gUC5yZXBsYWNlKHE5LGZ1bmN0aW9uKFEscmUsZ2UsX2UsdmUsU2Upe3ZhciBIZT1qaChfZSktKGdlPzA6TC5jKSxCZT1CMChTZSktKHZlPzA6TC5yKTtyZXR1cm4g'@; put 'cmUrIlIiKygwPT1CZT8iIjp2ZT9CZSsxOiJbIitCZSsiXSIpKyJDIisoMD09SGU/IiI6Z2U/SGUrMToiWyIrSGUrIl0iKX0pfTtmdW5jdGlvbiBqQyh5LFApe3JldHVybiB5LnJlcGxhY2UocTksZnVuY3Rpb24oTCxRLHJlLGdlLF9lLHZlKXtyZXR1cm4gUSsoIiQiPT1yZT9yZStnZTpOcyhq'@; put 'aChnZSkrUC5jKSkrKCIkIj09X2U/X2UrdmU6SHMoQjAodmUpK1AucikpfSkucmVwbGFjZSgvKFxkKyk6KFxkKykvZyxmdW5jdGlvbihMLFEscmUpe3JldHVybiBIcyhCMChRKStQLnIpKyI6IitIcyhCMChyZSkrUC5yKX0pfWZ1bmN0aW9uIG5JKHksUCxMKXt2YXIgcmU9V3MoUCkucyxnZT1z'@; put 'cyhMKTtyZXR1cm4gakMoeSx7cjpnZS5yLXJlLnIsYzpnZS5jLXJlLmN9KX1mdW5jdGlvbiBHMSh5KXtyZXR1cm4geS5yZXBsYWNlKC9feGxmblwuL2csIiIpfWZ1bmN0aW9uIEJhKHkpe3kubCs9MX1mdW5jdGlvbiBaZCh5LFApe3ZhciBMPXkucmVhZF9zaGlmdCgxPT1QPzE6Mik7cmV0dXJu'@; put 'WzE2MzgzJkwsTD4+MTQmMSxMPj4xNSYxXX1mdW5jdGlvbiBKOSh5LFAsTCl7dmFyIFE9MjtpZihMKXtpZihMLmJpZmY+PTImJkwuYmlmZjw9NSlyZXR1cm4gUTkoeSk7MTI9PUwuYmlmZiYmKFE9NCl9dmFyIHJlPXkucmVhZF9zaGlmdChRKSxnZT15LnJlYWRfc2hpZnQoUSksX2U9WmQoeSwy'@; put 'KSx2ZT1aZCh5LDIpO3JldHVybntzOntyOnJlLGM6X2VbMF0sY1JlbDpfZVsxXSxyUmVsOl9lWzJdfSxlOntyOmdlLGM6dmVbMF0sY1JlbDp2ZVsxXSxyUmVsOnZlWzJdfX19ZnVuY3Rpb24gUTkoeSl7dmFyIFA9WmQoeSwyKSxMPVpkKHksMiksUT15LnJlYWRfc2hpZnQoMSkscmU9eS5yZWFk'@; put 'X3NoaWZ0KDEpO3JldHVybntzOntyOlBbMF0sYzpRLGNSZWw6UFsxXSxyUmVsOlBbMl19LGU6e3I6TFswXSxjOnJlLGNSZWw6TFsxXSxyUmVsOkxbMl19fX1mdW5jdGlvbiBySSh5LFAsTCl7aWYoTCYmTC5iaWZmPj0yJiZMLmJpZmY8PTUpcmV0dXJuIGZ1bmN0aW9uIFZaKHkpe3ZhciBQPVpk'@; put 'KHksMiksTD15LnJlYWRfc2hpZnQoMSk7cmV0dXJue3I6UFswXSxjOkwsY1JlbDpQWzFdLHJSZWw6UFsyXX19KHkpO3ZhciBRPXkucmVhZF9zaGlmdChMJiYxMj09TC5iaWZmPzQ6MikscmU9WmQoeSwyKTtyZXR1cm57cjpRLGM6cmVbMF0sY1JlbDpyZVsxXSxyUmVsOnJlWzJdfX1mdW5jdGlv'@; put 'biBldih5KXt2YXIgUD15LnJlYWRfc2hpZnQoMiksTD15LnJlYWRfc2hpZnQoMik7cmV0dXJue3I6UCxjOjI1NSZMLGZRdW90ZWQ6ISEoMTYzODQmTCksY1JlbDpMPj4xNSxyUmVsOkw+PjE1fX1mdW5jdGlvbiBxMih5KXtyZXR1cm5beS5yZWFkX3NoaWZ0KDEpLHkucmVhZF9zaGlmdCgxKV19'@; put 'ZnVuY3Rpb24gJEMoeSxQKXt2YXIgTD1beS5yZWFkX3NoaWZ0KDEpXTtpZigxMj09UClzd2l0Y2goTFswXSl7Y2FzZSAyOkxbMF09NDticmVhaztjYXNlIDQ6TFswXT0xNjticmVhaztjYXNlIDA6TFswXT0xO2JyZWFrO2Nhc2UgMTpMWzBdPTJ9c3dpdGNoKExbMF0pe2Nhc2UgNDpMWzFdPVNv'@; put 'KHksMSk/IlRSVUUiOiJGQUxTRSIsMTIhPVAmJih5LmwrPTcpO2JyZWFrO2Nhc2UgMzc6Y2FzZSAxNjpMWzFdPVFvW3lbeS5sXV0seS5sKz0xMj09UD80Ojg7YnJlYWs7Y2FzZSAwOnkubCs9ODticmVhaztjYXNlIDE6TFsxXT1tYSh5KTticmVhaztjYXNlIDI6TFsxXT1WMih5LDAse2JpZmY6'@; put 'UD4wJiZQPDg/MjpQfSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkJhZCBTZXJBcjogIitMWzBdKX1yZXR1cm4gTH1mdW5jdGlvbiBpdih5LFAsTCl7Zm9yKHZhciBRPXkucmVhZF9zaGlmdCgxMj09TC5iaWZmPzQ6MikscmU9W10sZ2U9MDtnZSE9UTsrK2dlKXJlLnB1c2goKDEy'@; put 'PT1MLmJpZmY/SmM6S2gpKHksOCkpO3JldHVybiByZX1mdW5jdGlvbiBnSSh5LFAsTCl7dmFyIFE9MCxyZT0wOzEyPT1MLmJpZmY/KFE9eS5yZWFkX3NoaWZ0KDQpLHJlPXkucmVhZF9zaGlmdCg0KSk6KHJlPTEreS5yZWFkX3NoaWZ0KDEpLFE9MSt5LnJlYWRfc2hpZnQoMikpLEwuYmlmZj49'@; put 'MiYmTC5iaWZmPDgmJigtLVEsMD09LS1yZSYmKHJlPTI1NikpO2Zvcih2YXIgZ2U9MCxfZT1bXTtnZSE9USYmKF9lW2dlXT1bXSk7KytnZSlmb3IodmFyIHZlPTA7dmUhPXJlOysrdmUpX2VbZ2VdW3ZlXT0kQyh5LEwuYmlmZik7cmV0dXJuIF9lfWZ1bmN0aW9uIGU1KHksUCxMKXtyZXR1cm4g'@; put 'eS5sKz0yLFtldih5KV19ZnVuY3Rpb24gdDUoeSl7cmV0dXJuIHkubCs9NixbXX12YXIgbzY9ZTUsdkk9dDUsbHY9dDUsczY9ZTU7ZnVuY3Rpb24gcTAoeSl7cmV0dXJuIHkubCs9MixbaGwoeSksMSZ5LnJlYWRfc2hpZnQoMildfXZhciBjdj1lNSx1dj1xMCxfST10NSxiST1lNSxRQz1lNSxC'@; put 'Mz1bIkRhdGEiLCJBbGwiLCJIZWFkZXJzIiwiPz8iLCI/RGF0YTIiLCI/PyIsIj9EYXRhSGVhZGVycyIsIj8/IiwiVG90YWxzIiwiPz8iLCI/PyIsIj8/IiwiP0RhdGFUb3RhbHMiLCI/PyIsIj8/IiwiPz8iLCI/Q3VycmVudCJdLEdzPXsxOntuOiJQdGdFeHAiLGY6ZnVuY3Rpb24gVVooeSxQ'@; put 'LEwpe3JldHVybiB5LmwrKyxMJiYxMj09TC5iaWZmP1t5LnJlYWRfc2hpZnQoNCwiaSIpLDBdOlt5LnJlYWRfc2hpZnQoMikseS5yZWFkX3NoaWZ0KEwmJjI9PUwuYmlmZj8xOjIpXX19LDI6e246IlB0Z1RibCIsZjp5Y30sMzp7bjoiUHRnQWRkIixmOkJhfSw0OntuOiJQdGdTdWIiLGY6QmF9'@; put 'LDU6e246IlB0Z011bCIsZjpCYX0sNjp7bjoiUHRnRGl2IixmOkJhfSw3OntuOiJQdGdQb3dlciIsZjpCYX0sODp7bjoiUHRnQ29uY2F0IixmOkJhfSw5OntuOiJQdGdMdCIsZjpCYX0sMTA6e246IlB0Z0xlIixmOkJhfSwxMTp7bjoiUHRnRXEiLGY6QmF9LDEyOntuOiJQdGdHZSIsZjpCYX0s'@; put 'MTM6e246IlB0Z0d0IixmOkJhfSwxNDp7bjoiUHRnTmUiLGY6QmF9LDE1OntuOiJQdGdJc2VjdCIsZjpCYX0sMTY6e246IlB0Z1VuaW9uIixmOkJhfSwxNzp7bjoiUHRnUmFuZ2UiLGY6QmF9LDE4OntuOiJQdGdVcGx1cyIsZjpCYX0sMTk6e246IlB0Z1VtaW51cyIsZjpCYX0sMjA6e246IlB0'@; put 'Z1BlcmNlbnQiLGY6QmF9LDIxOntuOiJQdGdQYXJlbiIsZjpCYX0sMjI6e246IlB0Z01pc3NBcmciLGY6QmF9LDIzOntuOiJQdGdTdHIiLGY6ZnVuY3Rpb24gR0MoeSxQLEwpe3JldHVybiB5LmwrKyxGZCh5LDAsTCl9fSwyNjp7bjoiUHRnU2hlZXQiLGY6ZnVuY3Rpb24gQ0koeSxQLEwpe3Jl'@; put 'dHVybiB5LmwrPTUseS5sKz0yLHkubCs9Mj09TC5iaWZmPzE6NCxbIlBUR1NIRUVUIl19fSwyNzp7bjoiUHRnRW5kU2hlZXQiLGY6ZnVuY3Rpb24gZHYoeSxQLEwpe3JldHVybiB5LmwrPTI9PUwuYmlmZj80OjUsWyJQVEdFTkRTSEVFVCJdfX0sMjg6e246IlB0Z0VyciIsZjpmdW5jdGlvbiBK'@; put 'NCh5KXtyZXR1cm4geS5sKyssUW9beS5yZWFkX3NoaWZ0KDEpXX19LDI5OntuOiJQdGdCb29sIixmOmZ1bmN0aW9uIFE0KHkpe3JldHVybiB5LmwrKywwIT09eS5yZWFkX3NoaWZ0KDEpfX0sMzA6e246IlB0Z0ludCIsZjpmdW5jdGlvbiBTaSh5KXtyZXR1cm4geS5sKysseS5yZWFkX3NoaWZ0'@; put 'KDIpfX0sMzE6e246IlB0Z051bSIsZjpmdW5jdGlvbiBXQyh5KXtyZXR1cm4geS5sKyssbWEoeSl9fSwzMjp7bjoiUHRnQXJyYXkiLGY6ZnVuY3Rpb24gYUkoeSxQLEwpe3ZhciBRPSg5NiZ5W3kubCsrXSk+PjU7cmV0dXJuIHkubCs9Mj09TC5iaWZmPzY6MTI9PUwuYmlmZj8xNDo3LFtRXX19'@; put 'LDMzOntuOiJQdGdGdW5jIixmOmZ1bmN0aW9uIGZJKHksUCxMKXt2YXIgUT0oOTYmeVt5LmxdKT4+NTt5LmwrPTE7dmFyIHJlPXkucmVhZF9zaGlmdChMJiZMLmJpZmY8PTM/MToyKTtyZXR1cm5bYnZbcmVdLF92W3JlXSxRXX19LDM0OntuOiJQdGdGdW5jVmFyIixmOmZ1bmN0aW9uIHBJKHks'@; put 'UCxMKXt2YXIgUT15W3kubCsrXSxyZT15LnJlYWRfc2hpZnQoMSksZ2U9TCYmTC5iaWZmPD0zP1s4OD09UT8tMTowLHkucmVhZF9zaGlmdCgxKV06ZnVuY3Rpb24gWUMoeSl7cmV0dXJuW3lbeS5sKzFdPj43LDMyNzY3JnkucmVhZF9zaGlmdCgyKV19KHkpO3JldHVybltyZSwoMD09PWdlWzBd'@; put 'P192OmtJKVtnZVsxXV1dfX0sMzU6e246IlB0Z05hbWUiLGY6ZnVuY3Rpb24gcUMoeSxQLEwpe3ZhciBRPXkucmVhZF9zaGlmdCgxKT4+PjUmMyxnZT15LnJlYWRfc2hpZnQoIUx8fEwuYmlmZj49OD80OjIpO3N3aXRjaChMLmJpZmYpe2Nhc2UgMjp5LmwrPTU7YnJlYWs7Y2FzZSAzOmNhc2Ug'@; put 'NDp5LmwrPTg7YnJlYWs7Y2FzZSA1OnkubCs9MTJ9cmV0dXJuW1EsMCxnZV19fSwzNjp7bjoiUHRnUmVmIixmOmZ1bmN0aW9uIFpDKHksUCxMKXt2YXIgUT0oOTYmeVt5LmxdKT4+NTtyZXR1cm4geS5sKz0xLFtRLHJJKHksMCxMKV19fSwzNzp7bjoiUHRnQXJlYSIsZjpmdW5jdGlvbiBqWih5'@; put 'LFAsTCl7cmV0dXJuWyg5NiZ5W3kubCsrXSk+PjUsSjkoeSwwLEwpXX19LDM4OntuOiJQdGdNZW1BcmVhIixmOmZ1bmN0aW9uIFpaKHksUCxMKXt2YXIgUT15LnJlYWRfc2hpZnQoMSk+Pj41JjM7cmV0dXJuIHkubCs9TCYmMj09TC5iaWZmPzM6NCxbUSx5LnJlYWRfc2hpZnQoTCYmMj09TC5i'@; put 'aWZmPzE6MildfX0sMzk6e246IlB0Z01lbUVyciIsZjp5Y30sNDA6e246IlB0Z01lbU5vTWVtIixmOnljfSw0MTp7bjoiUHRnTWVtRnVuYyIsZjpmdW5jdGlvbiBzdih5LFAsTCl7cmV0dXJuW3kucmVhZF9zaGlmdCgxKT4+PjUmMyx5LnJlYWRfc2hpZnQoTCYmMj09TC5iaWZmPzE6MildfX0s'@; put 'NDI6e246IlB0Z1JlZkVyciIsZjpmdW5jdGlvbiBtSSh5LFAsTCl7dmFyIFE9eS5yZWFkX3NoaWZ0KDEpPj4+NSYzO3JldHVybiB5LmwrPTQsTC5iaWZmPDgmJnkubC0tLDEyPT1MLmJpZmYmJih5LmwrPTIpLFtRXX19LDQzOntuOiJQdGdBcmVhRXJyIixmOmZ1bmN0aW9uIGlJKHksUCxMKXt2'@; put 'YXIgUT0oOTYmeVt5LmwrK10pPj41O3JldHVybiB5LmwrPUwmJkwuYmlmZj44PzEyOkwuYmlmZjw4PzY6OCxbUV19fSw0NDp7bjoiUHRnUmVmTiIsZjpmdW5jdGlvbiBkSSh5LFAsTCl7dmFyIFE9KDk2JnlbeS5sXSk+PjU7eS5sKz0xO3ZhciByZT1mdW5jdGlvbiB0dih5LFAsTCl7dmFyIFE9'@; put 'TCYmTC5iaWZmP0wuYmlmZjo4O2lmKFE+PTImJlE8PTUpcmV0dXJuIGZ1bmN0aW9uIEJaKHkpe3ZhciBQPXkucmVhZF9zaGlmdCgyKSxMPXkucmVhZF9zaGlmdCgxKSxRPSgzMjc2OCZQKT4+MTUscmU9KDE2Mzg0JlApPj4xNDtyZXR1cm4gUCY9MTYzODMsMT09USYmUD49ODE5MiYmKFAtPTE2'@; put 'Mzg0KSwxPT1yZSYmTD49MTI4JiYoTC09MjU2KSx7cjpQLGM6TCxjUmVsOnJlLHJSZWw6UX19KHkpO3ZhciByZT15LnJlYWRfc2hpZnQoUT49MTI/NDoyKSxnZT15LnJlYWRfc2hpZnQoMiksX2U9KDE2Mzg0JmdlKT4+MTQsdmU9KDMyNzY4JmdlKT4+MTU7aWYoZ2UmPTE2MzgzLDE9PXZlKWZv'@; put 'cig7cmU+NTI0Mjg3OylyZS09MTA0ODU3NjtpZigxPT1fZSlmb3IoO2dlPjgxOTE7KWdlLT0xNjM4NDtyZXR1cm57cjpyZSxjOmdlLGNSZWw6X2UsclJlbDp2ZX19KHksMCxMKTtyZXR1cm5bUSxyZV19fSw0NTp7bjoiUHRnQXJlYU4iLGY6ZnVuY3Rpb24gc0koeSxQLEwpe3ZhciBRPSg5NiZ5'@; put 'W3kubCsrXSk+PjUscmU9ZnVuY3Rpb24gTlooeSxQLEwpe2lmKEwuYmlmZjw4KXJldHVybiBROSh5KTt2YXIgUT15LnJlYWRfc2hpZnQoMTI9PUwuYmlmZj80OjIpLHJlPXkucmVhZF9zaGlmdCgxMj09TC5iaWZmPzQ6MiksZ2U9WmQoeSwyKSxfZT1aZCh5LDIpO3JldHVybntzOntyOlEsYzpn'@; put 'ZVswXSxjUmVsOmdlWzFdLHJSZWw6Z2VbMl19LGU6e3I6cmUsYzpfZVswXSxjUmVsOl9lWzFdLHJSZWw6X2VbMl19fX0oeSwwLEwpO3JldHVybltRLHJlXX19LDQ2OntuOiJQdGdNZW1BcmVhTiIsZjpmdW5jdGlvbiBhNih5KXtyZXR1cm5beS5yZWFkX3NoaWZ0KDEpPj4+NSYzLHkucmVhZF9z'@; put 'aGlmdCgyKV19fSw0Nzp7bjoiUHRnTWVtTm9NZW1OIixmOmZ1bmN0aW9uIFNJKHkpe3JldHVyblt5LnJlYWRfc2hpZnQoMSk+Pj41JjMseS5yZWFkX3NoaWZ0KDIpXX19LDU3OntuOiJQdGdOYW1lWCIsZjpmdW5jdGlvbiBLQyh5LFAsTCl7cmV0dXJuIDU9PUwuYmlmZj9mdW5jdGlvbiBvdih5'@; put 'KXt2YXIgUD15LnJlYWRfc2hpZnQoMSk+Pj41JjMsTD15LnJlYWRfc2hpZnQoMiwiaSIpO3kubCs9ODt2YXIgUT15LnJlYWRfc2hpZnQoMik7cmV0dXJuIHkubCs9MTIsW1AsTCxRXX0oeSk6W3kucmVhZF9zaGlmdCgxKT4+PjUmMyx5LnJlYWRfc2hpZnQoMikseS5yZWFkX3NoaWZ0KDQpXX19'@; put 'LDU4OntuOiJQdGdSZWYzZCIsZjpmdW5jdGlvbiBoSSh5LFAsTCl7dmFyIFE9KDk2JnlbeS5sXSk+PjU7eS5sKz0xO3ZhciByZT15LnJlYWRfc2hpZnQoMik7cmV0dXJuIEwmJjU9PUwuYmlmZiYmKHkubCs9MTIpLFtRLHJlLHJJKHksMCxMKV19fSw1OTp7bjoiUHRnQXJlYTNkIixmOmZ1bmN0'@; put 'aW9uIHpDKHksUCxMKXt2YXIgUT0oOTYmeVt5LmwrK10pPj41LHJlPXkucmVhZF9zaGlmdCgyLCJpIik7aWYoTCYmNT09PUwuYmlmZil5LmwrPTEyO3JldHVybltRLHJlLEo5KHksMCxMKV19fSw2MDp7bjoiUHRnUmVmRXJyM2QiLGY6ZnVuY3Rpb24gYXYoeSxQLEwpe3ZhciBRPSg5NiZ5W3ku'@; put 'bCsrXSk+PjUscmU9eS5yZWFkX3NoaWZ0KDIpLGdlPTQ7aWYoTClzd2l0Y2goTC5iaWZmKXtjYXNlIDU6Z2U9MTU7YnJlYWs7Y2FzZSAxMjpnZT02fXJldHVybiB5LmwrPWdlLFtRLHJlXX19LDYxOntuOiJQdGdBcmVhRXJyM2QiLGY6ZnVuY3Rpb24gb0koeSxQLEwpe3ZhciBRPSg5NiZ5W3ku'@; put 'bCsrXSk+PjUscmU9eS5yZWFkX3NoaWZ0KDIpLGdlPTg7aWYoTClzd2l0Y2goTC5iaWZmKXtjYXNlIDU6eS5sKz0xMixnZT02O2JyZWFrO2Nhc2UgMTI6Z2U9MTJ9cmV0dXJuIHkubCs9Z2UsW1EscmVdfX0sMjU1Ont9fSxNST17NjQ6MzIsOTY6MzIsNjU6MzMsOTc6MzMsNjY6MzQsOTg6MzQs'@; put 'Njc6MzUsOTk6MzUsNjg6MzYsMTAwOjM2LDY5OjM3LDEwMTozNyw3MDozOCwxMDI6MzgsNzE6MzksMTAzOjM5LDcyOjQwLDEwNDo0MCw3Mzo0MSwxMDU6NDEsNzQ6NDIsMTA2OjQyLDc1OjQzLDEwNzo0Myw3Njo0NCwxMDg6NDQsNzc6NDUsMTA5OjQ1LDc4OjQ2LDExMDo0Niw3OTo0NywxMTE6'@; put 'NDcsODg6MzQsMTIwOjM0LDg5OjU3LDEyMTo1Nyw5MDo1OCwxMjI6NTgsOTE6NTksMTIzOjU5LDkyOjYwLDEyNDo2MCw5Mzo2MSwxMjU6NjF9OyFmdW5jdGlvbigpe2Zvcih2YXIgeSBpbiBNSSlHc1t5XT1Hc1tNSVt5XV19KCk7dmFyIHRTPXsxOntuOiJQdGdFbGZMZWwiLGY6cTB9LDI6e246'@; put 'IlB0Z0VsZlJ3IixmOmJJfSwzOntuOiJQdGdFbGZDb2wiLGY6bzZ9LDY6e246IlB0Z0VsZlJ3ViIsZjpRQ30sNzp7bjoiUHRnRWxmQ29sViIsZjpzNn0sMTA6e246IlB0Z0VsZlJhZGljYWwiLGY6Y3Z9LDExOntuOiJQdGdFbGZSYWRpY2FsUyIsZjpfSX0sMTM6e246IlB0Z0VsZkNvbFMiLGY6'@; put 'dkl9LDE1OntuOiJQdGdFbGZDb2xTViIsZjpsdn0sMTY6e246IlB0Z0VsZlJhZGljYWxMZWwiLGY6dXZ9LDI1OntuOiJQdGdMaXN0IixmOmZ1bmN0aW9uIHlJKHkpe3kubCs9Mjt2YXIgUD15LnJlYWRfc2hpZnQoMiksTD15LnJlYWRfc2hpZnQoMiksUT15LnJlYWRfc2hpZnQoNCkscmU9eS5y'@; put 'ZWFkX3NoaWZ0KDIpLGdlPXkucmVhZF9zaGlmdCgyKTtyZXR1cm57aXh0aTpQLGNvbHR5cGU6MyZMLHJ0OkIzW0w+PjImMzFdLGlkeDpRLGM6cmUsQzpnZX19fSwyOTp7bjoiUHRnU3hOYW1lIixmOmZ1bmN0aW9uIHdJKHkpe3JldHVybiB5LmwrPTIsW3kucmVhZF9zaGlmdCg0KV19fSwyNTU6'@; put 'e319LGw2PXswOntuOiJQdGdBdHRyTm9vcCIsZjpmdW5jdGlvbiBlUyh5KXtyZXR1cm4geS5sKz00LFswLDBdfX0sMTp7bjoiUHRnQXR0clNlbWkiLGY6ZnVuY3Rpb24gVjMoeSxQLEwpe3ZhciBRPTI1NSZ5W3kubCsxXT8xOjA7cmV0dXJuIHkubCs9TCYmMj09TC5iaWZmPzM6NCxbUV19fSwy'@; put 'OntuOiJQdGdBdHRySWYiLGY6ZnVuY3Rpb24gbnYoeSxQLEwpe3ZhciBRPTI1NSZ5W3kubCsxXT8xOjA7cmV0dXJuIHkubCs9MixbUSx5LnJlYWRfc2hpZnQoTCYmMj09TC5iaWZmPzE6MildfX0sNDp7bjoiUHRnQXR0ckNob29zZSIsZjpmdW5jdGlvbiByNih5LFAsTCl7eS5sKz0yO2Zvcih2'@; put 'YXIgUT15LnJlYWRfc2hpZnQoTCYmMj09TC5iaWZmPzE6MikscmU9W10sZ2U9MDtnZTw9UTsrK2dlKXJlLnB1c2goeS5yZWFkX3NoaWZ0KEwmJjI9PUwuYmlmZj8xOjIpKTtyZXR1cm4gcmV9fSw4OntuOiJQdGdBdHRyR290byIsZjpmdW5jdGlvbiBsSSh5LFAsTCl7dmFyIFE9MjU1JnlbeS5s'@; put 'KzFdPzE6MDtyZXR1cm4geS5sKz0yLFtRLHkucmVhZF9zaGlmdChMJiYyPT1MLmJpZmY/MToyKV19fSwxNjp7bjoiUHRnQXR0clN1bSIsZjpmdW5jdGlvbiB6Wih5LFAsTCl7eS5sKz1MJiYyPT1MLmJpZmY/Mzo0fX0sMzI6e246IlB0Z0F0dHJCYXhjZWwiLGY6ZnVuY3Rpb24gVUMoeSl7dmFy'@; put 'IFA9MSZ5W3kubCsxXTtyZXR1cm4geS5sKz00LFtQLDFdfX0sNjQ6e246IlB0Z0F0dHJTcGFjZSIsZjpmdW5jdGlvbiB1SSh5KXtyZXR1cm4geS5yZWFkX3NoaWZ0KDIpLHEyKHkpfX0sNjU6e246IlB0Z0F0dHJTcGFjZVNlbWkiLGY6ZnVuY3Rpb24gcnYoeSl7cmV0dXJuIHkucmVhZF9zaGlm'@; put 'dCgyKSxxMih5KX19LDEyODp7bjoiUHRnQXR0cklmRXJyb3IiLGY6ZnVuY3Rpb24gY0koeSl7dmFyIFA9MjU1JnlbeS5sKzFdPzE6MDtyZXR1cm4geS5sKz0yLFtQLHkucmVhZF9zaGlmdCgyKV19fSwyNTU6e319O2Z1bmN0aW9uIGozKHksUCxMLFEscmUpe2lmKFEuYmlmZjw4KXJldHVybiB5'@; put 'Yyh5LFApO2Zvcih2YXIgZ2U9eS5sK1AsX2U9W10sdmU9MDt2ZSE9PUwubGVuZ3RoOysrdmUpc3dpdGNoKExbdmVdWzBdKXtjYXNlIlB0Z0FycmF5IjpMW3ZlXVsxXT1nSSh5LDAsUSksX2UucHVzaChMW3ZlXVsxXSk7YnJlYWs7Y2FzZSJQdGdNZW1BcmVhIjpMW3ZlXVsyXT1pdih5LDAsUSks'@; put 'X2UucHVzaChMW3ZlXVsyXSk7YnJlYWs7Y2FzZSJQdGdFeHAiOlEmJjEyPT1RLmJpZmYmJihMW3ZlXVsxXVsxXT15LnJlYWRfc2hpZnQoNCksX2UucHVzaChMW3ZlXVsxXSkpO2JyZWFrO2Nhc2UiUHRnTGlzdCI6Y2FzZSJQdGdFbGZSYWRpY2FsUyI6Y2FzZSJQdGdFbGZDb2xTIjpjYXNlIlB0'@; put 'Z0VsZkNvbFNWIjp0aHJvdyJVbnN1cHBvcnRlZCAiK0xbdmVdWzBdfXJldHVybiBQPWdlLXkubCwhcmUmJjAhPT1QJiZfZS5wdXNoKHljKHksUCkpLF9lfWZ1bmN0aW9uIG41KHksUCxMKXtmb3IodmFyIHJlLGdlLFE9eS5sK1AsX2U9W107USE9eS5sOylQPVEteS5sLHJlPUdzW2dlPXlbeS5s'@; put 'XV0sKDI0PT09Z2V8fDI1PT09Z2UpJiYocmU9KDI0PT09Z2U/dFM6bDYpW3lbeS5sKzFdXSkscmUmJnJlLmY/X2UucHVzaChbcmUubixyZS5mKHksUCxMKV0pOnljKHksUCk7cmV0dXJuIF9lfWZ1bmN0aW9uIFlaKHkpe2Zvcih2YXIgUD1bXSxMPTA7TDx5Lmxlbmd0aDsrK0wpe2Zvcih2YXIg'@; put 'UT15W0xdLHJlPVtdLGdlPTA7Z2U8US5sZW5ndGg7KytnZSl7dmFyIF9lPVFbZ2VdO3JlLnB1c2goX2U/Mj09PV9lWzBdPyciJytfZVsxXS5yZXBsYWNlKC8iL2csJyIiJykrJyInOl9lWzFdOiIiKX1QLnB1c2gocmUuam9pbigiLCIpKX1yZXR1cm4gUC5qb2luKCI7Iil9bDZbMzNdPWw2WzMy'@; put 'XTt2YXIgYzY9e1B0Z0FkZDoiKyIsUHRnQ29uY2F0OiImIixQdGdEaXY6Ii8iLFB0Z0VxOiI9IixQdGdHZToiPj0iLFB0Z0d0OiI+IixQdGdMZToiPD0iLFB0Z0x0OiI8IixQdGdNdWw6IioiLFB0Z05lOiI8PiIsUHRnUG93ZXI6Il4iLFB0Z1N1YjoiLSJ9LHhJPW5ldyBSZWdFeHAoL1teXHdc'@; put 'dTRFMDAtXHU5RkZGXHUzMDQwLVx1MzBGRl0vKTtmdW5jdGlvbiB1Nih5LFAsTCl7aWYoIXkpcmV0dXJuIlNIMzNUSlNFUlIwIjtpZihMLmJpZmY+OCYmKCF5LlhUSXx8IXkuWFRJW1BdKSlyZXR1cm4geS5TaGVldE5hbWVzW1BdO2lmKCF5LlhUSSlyZXR1cm4iU0gzM1RKU0VSUjYiO3ZhciBR'@; put 'PXkuWFRJW1BdO2lmKEwuYmlmZjw4KXJldHVybiBQPjFlNCYmKFAtPTY1NTM2KSxQPDAmJihQPS1QKSwwPT1QPyIiOnkuWFRJW1AtMV07aWYoIVEpcmV0dXJuIlNIMzNUSlNFUlIxIjt2YXIgcmU9IiI7aWYoTC5iaWZmPjgpc3dpdGNoKHlbUVswXV1bMF0pe2Nhc2UgMzU3OnJldHVybiByZT0t'@; put 'MT09UVsxXT8iI1JFRiI6eS5TaGVldE5hbWVzW1FbMV1dLFFbMV09PVFbMl0/cmU6cmUrIjoiK3kuU2hlZXROYW1lc1tRWzJdXTtjYXNlIDM1ODpyZXR1cm4gbnVsbCE9TC5TSUQ/eS5TaGVldE5hbWVzW0wuU0lEXToiU0gzM1RKU1NBTUUiK3lbUVswXV1bMF07ZGVmYXVsdDpyZXR1cm4iU0gz'@; put 'M1RKU1NSQyIreVtRWzBdXVswXX1zd2l0Y2goeVtRWzBdXVswXVswXSl7Y2FzZSAxMDI1OnJldHVybiByZT0tMT09UVsxXT8iI1JFRiI6eS5TaGVldE5hbWVzW1FbMV1dfHwiU0gzM1RKU0VSUjMiLFFbMV09PVFbMl0/cmU6cmUrIjoiK3kuU2hlZXROYW1lc1tRWzJdXTtjYXNlIDE0ODQ5OnJl'@; put 'dHVybiB5W1FbMF1dLnNsaWNlKDEpLm1hcChmdW5jdGlvbihnZSl7cmV0dXJuIGdlLk5hbWV9KS5qb2luKCI7OyIpO2RlZmF1bHQ6cmV0dXJuIHlbUVswXV1bMF1bM10/KHJlPS0xPT1RWzFdPyIjUkVGIjp5W1FbMF1dWzBdWzNdW1FbMV1dfHwiU0gzM1RKU0VSUjQiLFFbMV09PVFbMl0/cmU6'@; put 'cmUrIjoiK3lbUVswXV1bMF1bM11bUVsyXV0pOiJTSDMzVEpTRVJSMiJ9fWZ1bmN0aW9uIGNmKHksUCxMKXtyZXR1cm4gZnVuY3Rpb24gaHYoeSxQKXtpZighKHl8fFAmJlAuYmlmZjw9NSYmUC5iaWZmPj0yKSl0aHJvdyBuZXcgRXJyb3IoImVtcHR5IHNoZWV0IG5hbWUiKTtyZXR1cm4vI1JF'@; put 'Ri8udGVzdCh5KT95OnhJLnRlc3QoeSk/IiciK3krIiciOnl9KHU2KHksUCxMKSxMKX1mdW5jdGlvbiB4bCh5LFAsTCxRLHJlLGdlKXt2YXIgSGUsQmUsR2UsQ3QsX2U9cmUmJnJlLmJpZmZ8fDgsdmU9Z2UmJm51bGwhPVA/UDp7czp7YzowLHI6MH0sZTp7YzowLHI6MH19LFNlPVtdLG50PTAs'@; put 'ZHQ9MCxjdD0iIjtpZigheVswXXx8IXlbMF1bMF0pcmV0dXJuIiI7Zm9yKHZhciBidD0tMSxGdD0iIixrdD0wLFR0PXlbMF0ubGVuZ3RoO2t0PFR0Oysra3Qpe3ZhciBadD15WzBdW2t0XTtzd2l0Y2goWnRbMF0pe2Nhc2UiUHRnVW1pbnVzIjpTZS5wdXNoKCItIitTZS5wb3AoKSk7YnJlYWs7'@; put 'Y2FzZSJQdGdVcGx1cyI6U2UucHVzaCgiKyIrU2UucG9wKCkpO2JyZWFrO2Nhc2UiUHRnUGVyY2VudCI6U2UucHVzaChTZS5wb3AoKSsiJSIpO2JyZWFrO2Nhc2UiUHRnQWRkIjpjYXNlIlB0Z0NvbmNhdCI6Y2FzZSJQdGdEaXYiOmNhc2UiUHRnRXEiOmNhc2UiUHRnR2UiOmNhc2UiUHRnR3Qi'@; put 'OmNhc2UiUHRnTGUiOmNhc2UiUHRnTHQiOmNhc2UiUHRnTXVsIjpjYXNlIlB0Z05lIjpjYXNlIlB0Z1Bvd2VyIjpjYXNlIlB0Z1N1YiI6aWYoSGU9U2UucG9wKCksQmU9U2UucG9wKCksYnQ+PTApe3N3aXRjaCh5WzBdW2J0XVsxXVswXSl7Y2FzZSAwOkZ0PWJuKCIgIix5WzBdW2J0XVsxXVsx'@; put 'XSk7YnJlYWs7Y2FzZSAxOkZ0PWJuKCJcciIseVswXVtidF1bMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoRnQ9IiIscmUuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBQdGdBdHRyU3BhY2VUeXBlICIreVswXVtidF1bMV1bMF0pfUJlKz1GdCxidD0tMX1TZS5wdXNoKEJlK2M2W1p0'@; put 'WzBdXStIZSk7YnJlYWs7Y2FzZSJQdGdJc2VjdCI6SGU9U2UucG9wKCksQmU9U2UucG9wKCksU2UucHVzaChCZSsiICIrSGUpO2JyZWFrO2Nhc2UiUHRnVW5pb24iOkhlPVNlLnBvcCgpLEJlPVNlLnBvcCgpLFNlLnB1c2goQmUrIiwiK0hlKTticmVhaztjYXNlIlB0Z1JhbmdlIjpIZT1TZS5w'@; put 'b3AoKSxCZT1TZS5wb3AoKSxTZS5wdXNoKEJlKyI6IitIZSk7YnJlYWs7Y2FzZSJQdGdBdHRyQ2hvb3NlIjpjYXNlIlB0Z0F0dHJHb3RvIjpjYXNlIlB0Z0F0dHJJZiI6Y2FzZSJQdGdBdHRySWZFcnJvciI6Y2FzZSJQdGdBdHRyQmF4Y2VsIjpjYXNlIlB0Z0F0dHJTZW1pIjpjYXNlIlB0Z01l'@; put 'bUFyZWEiOmNhc2UiUHRnVGJsIjpjYXNlIlB0Z01lbUVyciI6Y2FzZSJQdGdNZW1BcmVhTiI6Y2FzZSJQdGdNZW1Ob01lbU4iOmNhc2UiUHRnQXR0ck5vb3AiOmNhc2UiUHRnU2hlZXQiOmNhc2UiUHRnRW5kU2hlZXQiOmNhc2UiUHRnTWVtRnVuYyI6Y2FzZSJQdGdNZW1Ob01lbSI6YnJlYWs7'@; put 'Y2FzZSJQdGdSZWYiOkdlPWx1KFp0WzFdWzFdLHZlLHJlKSxTZS5wdXNoKEwyKEdlLF9lKSk7YnJlYWs7Y2FzZSJQdGdSZWZOIjpHZT1MP2x1KFp0WzFdWzFdLEwscmUpOlp0WzFdWzFdLFNlLnB1c2goTDIoR2UsX2UpKTticmVhaztjYXNlIlB0Z1JlZjNkIjpudD1adFsxXVsxXSxHZT1sdSha'@; put 'dFsxXVsyXSx2ZSxyZSksY3Q9Y2YoUSxudCxyZSksU2UucHVzaChjdCsiISIrTDIoR2UsX2UpKTticmVhaztjYXNlIlB0Z0Z1bmMiOmNhc2UiUHRnRnVuY1ZhciI6dmFyIEtuPVp0WzFdWzBdLHVuPVp0WzFdWzFdO0tufHwoS249MCk7dmFyIHFuPTA9PShLbiY9MTI3KT9bXTpTZS5zbGljZSgt'@; put 'S24pO1NlLmxlbmd0aC09S24sIlVzZXIiPT09dW4mJih1bj1xbi5zaGlmdCgpKSxTZS5wdXNoKHVuKyIoIitxbi5qb2luKCIsIikrIikiKTticmVhaztjYXNlIlB0Z0Jvb2wiOlNlLnB1c2goWnRbMV0/IlRSVUUiOiJGQUxTRSIpO2JyZWFrO2Nhc2UiUHRnSW50IjpjYXNlIlB0Z051bSI6U2Uu'@; put 'cHVzaChTdHJpbmcoWnRbMV0pKTticmVhaztjYXNlIlB0Z1N0ciI6U2UucHVzaCgnIicrWnRbMV0ucmVwbGFjZSgvIi9nLCciIicpKyciJyk7YnJlYWs7Y2FzZSJQdGdFcnIiOlNlLnB1c2goWnRbMV0pO2JyZWFrO2Nhc2UiUHRnQXJlYU4iOkN0PWhyKFp0WzFdWzFdLEw/e3M6TH06dmUscmUp'@; put 'LFNlLnB1c2gobWkoQ3QscmUpKTticmVhaztjYXNlIlB0Z0FyZWEiOkN0PWhyKFp0WzFdWzFdLHZlLHJlKSxTZS5wdXNoKG1pKEN0LHJlKSk7YnJlYWs7Y2FzZSJQdGdBcmVhM2QiOm50PVp0WzFdWzFdLEN0PWhyKFp0WzFdWzJdLHZlLHJlKSxjdD1jZihRLG50LHJlKSxTZS5wdXNoKGN0KyIh'@; put 'IittaShDdCxyZSkpO2JyZWFrO2Nhc2UiUHRnQXR0clN1bSI6U2UucHVzaCgiU1VNKCIrU2UucG9wKCkrIikiKTticmVhaztjYXNlIlB0Z05hbWUiOnZhciB6bj0oUS5uYW1lc3x8W10pWyhkdD1adFsxXVsyXSktMV18fChRWzBdfHxbXSlbZHRdLGtuPXpuP3puLk5hbWU6IlNIMzNUSlNOQU1F'@; put 'IitTdHJpbmcoZHQpO2tuIGluIG81JiYoa249bzVba25dKSxTZS5wdXNoKGtuKTticmVhaztjYXNlIlB0Z05hbWVYIjp2YXIgdHIsZXI9WnRbMV1bMV07aWYoZHQ9WnRbMV1bMl0sIShyZS5iaWZmPD01KSl7dmFyIFpuPSIiO2lmKDE0ODQ5PT0oKFFbZXJdfHxbXSlbMF18fFtdKVswXXx8KDEw'@; put 'MjU9PSgoUVtlcl18fFtdKVswXXx8W10pWzBdP1FbZXJdW2R0XSYmUVtlcl1bZHRdLml0YWI+MCYmKFpuPVEuU2hlZXROYW1lc1tRW2VyXVtkdF0uaXRhYi0xXSsiISIpOlpuPVEuU2hlZXROYW1lc1tkdC0xXSsiISIpLFFbZXJdJiZRW2VyXVtkdF0pWm4rPVFbZXJdW2R0XS5OYW1lO2Vsc2Ug'@; put 'aWYoUVswXSYmUVswXVtkdF0pWm4rPVFbMF1bZHRdLk5hbWU7ZWxzZXt2YXIgc2k9KHU2KFEsZXIscmUpfHwiIikuc3BsaXQoIjs7Iik7c2lbZHQtMV0/Wm49c2lbZHQtMV06Wm4rPSJTSDMzVEpTRVJSWCJ9U2UucHVzaChabik7YnJlYWt9ZXI8MCYmKGVyPS1lciksUVtlcl0mJih0cj1RW2Vy'@; put 'XVtkdF0pLHRyfHwodHI9e05hbWU6IlNIMzNUSlNFUlJZIn0pLFNlLnB1c2godHIuTmFtZSk7YnJlYWs7Y2FzZSJQdGdQYXJlbiI6dmFyIHhpPSIoIixMaT0iKSI7aWYoYnQ+PTApe3N3aXRjaChGdD0iIix5WzBdW2J0XVsxXVswXSl7Y2FzZSAyOnhpPWJuKCIgIix5WzBdW2J0XVsxXVsxXSkr'@; put 'eGk7YnJlYWs7Y2FzZSAzOnhpPWJuKCJcciIseVswXVtidF1bMV1bMV0pK3hpO2JyZWFrO2Nhc2UgNDpMaT1ibigiICIseVswXVtidF1bMV1bMV0pK0xpO2JyZWFrO2Nhc2UgNTpMaT1ibigiXHIiLHlbMF1bYnRdWzFdWzFdKStMaTticmVhaztkZWZhdWx0OmlmKHJlLldURil0aHJvdyBuZXcg'@; put 'RXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK3lbMF1bYnRdWzFdWzBdKX1idD0tMX1TZS5wdXNoKHhpK1NlLnBvcCgpK0xpKTticmVhaztjYXNlIlB0Z1JlZkVyciI6Y2FzZSJQdGdBcmVhRXJyIjpjYXNlIlB0Z0FyZWFFcnIzZCI6Y2FzZSJQdGdSZWZFcnIzZCI6U2UucHVz'@; put 'aCgiI1JFRiEiKTticmVhaztjYXNlIlB0Z0V4cCI6dmFyIHVyPXtjOkwuYyxyOkwucn07aWYoUS5zaGFyZWRmW2RpKEdlPXtjOlp0WzFdWzFdLHI6WnRbMV1bMF19KV0pe3ZhciBBbj1RLnNoYXJlZGZbZGkoR2UpXTtTZS5wdXNoKHhsKEFuLHZlLHVyLFEscmUpKX1lbHNle3ZhciB2cj0hMTtm'@; put 'b3IoSGU9MDtIZSE9US5hcnJheWYubGVuZ3RoOysrSGUpaWYoIShHZS5jPChCZT1RLmFycmF5ZltIZV0pWzBdLnMuY3x8R2UuYz5CZVswXS5lLmN8fEdlLnI8QmVbMF0ucy5yfHxHZS5yPkJlWzBdLmUucikpe1NlLnB1c2goeGwoQmVbMV0sdmUsdXIsUSxyZSkpLHZyPSEwO2JyZWFrfXZyfHxT'@; put 'ZS5wdXNoKFp0WzFdKX1icmVhaztjYXNlIlB0Z0FycmF5IjpTZS5wdXNoKCJ7IitZWihadFsxXSkrIn0iKTticmVhaztjYXNlIlB0Z0F0dHJTcGFjZSI6Y2FzZSJQdGdBdHRyU3BhY2VTZW1pIjpidD1rdDticmVhaztjYXNlIlB0Z01pc3NBcmciOlNlLnB1c2goIiIpO2JyZWFrO2Nhc2UiUHRn'@; put 'TGlzdCI6U2UucHVzaCgiVGFibGUiK1p0WzFdLmlkeCsiWyMiK1p0WzFdLnJ0KyJdIik7YnJlYWs7Y2FzZSJQdGdFbGZDb2wiOmNhc2UiUHRnRWxmQ29sUyI6Y2FzZSJQdGdFbGZDb2xTViI6Y2FzZSJQdGdFbGZDb2xWIjpjYXNlIlB0Z0VsZkxlbCI6Y2FzZSJQdGdFbGZSYWRpY2FsIjpjYXNl'@; put 'IlB0Z0VsZlJhZGljYWxMZWwiOmNhc2UiUHRnRWxmUmFkaWNhbFMiOmNhc2UiUHRnRWxmUnciOmNhc2UiUHRnRWxmUndWIjp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIEVMRnMiKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIEZvcm11bGEgVG9rZW46ICIrU3Ry'@; put 'aW5nKFp0KSl9aWYoMyE9cmUuYmlmZiYmYnQ+PTAmJi0xPT1bIlB0Z0F0dHJTcGFjZSIsIlB0Z0F0dHJTcGFjZVNlbWkiLCJQdGdBdHRyR290byJdLmluZGV4T2YoeVswXVtrdF1bMF0pKXt2YXIgU249ITA7c3dpdGNoKChadD15WzBdW2J0XSlbMV1bMF0pe2Nhc2UgNDpTbj0hMTtjYXNlIDA6'@; put 'RnQ9Ym4oIiAiLFp0WzFdWzFdKTticmVhaztjYXNlIDU6U249ITE7Y2FzZSAxOkZ0PWJuKCJcciIsWnRbMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoRnQ9IiIscmUuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBQdGdBdHRyU3BhY2VUeXBlICIrWnRbMV1bMF0pfVNlLnB1c2goKFNu'@; put 'P0Z0OiIiKStTZS5wb3AoKSsoU24/IiI6RnQpKSxidD0tMX19aWYoU2UubGVuZ3RoPjEmJnJlLldURil0aHJvdyBuZXcgRXJyb3IoImJhZCBmb3JtdWxhIHN0YWNrIik7cmV0dXJuIFNlWzBdfWZ1bmN0aW9uIGZ2KHksUCxMKXt2YXIgZ2UsUT15LmwrUCxyZT0yPT1MLmJpZmY/MToyLF9lPXku'@; put 'cmVhZF9zaGlmdChyZSk7aWYoNjU1MzU9PV9lKXJldHVybltbXSx5Yyh5LFAtMildO3ZhciB2ZT1uNSh5LF9lLEwpO3JldHVybiBQIT09X2UrcmUmJihnZT1qMyh5LFAtX2UtcmUsdmUsTCkpLHkubD1RLFt2ZSxnZV19ZnVuY3Rpb24gaTUoeSxQLEwpe3ZhciByZSxRPXkubCtQLGdlPXkucmVh'@; put 'ZF9zaGlmdCgyKSxfZT1uNSh5LGdlLEwpO3JldHVybiA2NTUzNT09Z2U/W1tdLHljKHksUC0yKV06KFAhPT1nZSsyJiYocmU9ajMoeSxRLWdlLTIsX2UsTCkpLFtfZSxyZV0pfWZ1bmN0aW9uIHozKHksUCxMKXt2YXIgUT15LmwrUCxyZT1MdSh5KTsyPT1MLmJpZmYmJisreS5sO3ZhciBnZT1m'@; put 'dW5jdGlvbiBuUyh5KXt2YXIgUDtpZig2NTUzNSE9PVluKHkseS5sKzYpKXJldHVyblttYSh5KSwibiJdO3N3aXRjaCh5W3kubF0pe2Nhc2UgMDpyZXR1cm4geS5sKz04LFsiU3RyaW5nIiwicyJdO2Nhc2UgMTpyZXR1cm4gUD0xPT09eVt5LmwrMl0seS5sKz04LFtQLCJiIl07Y2FzZSAyOnJl'@; put 'dHVybiBQPXlbeS5sKzJdLHkubCs9OCxbUCwiZSJdO2Nhc2UgMzpyZXR1cm4geS5sKz04LFsiIiwicyJdfXJldHVybltdfSh5KSxfZT15LnJlYWRfc2hpZnQoMSk7MiE9TC5iaWZmJiYoeS5yZWFkX3NoaWZ0KDEpLEwuYmlmZj49NSYmeS5yZWFkX3NoaWZ0KDQpKTt2YXIgdmU9ZnVuY3Rpb24g'@; put 'cjUoeSxQLEwpe3ZhciBnZSxRPXkubCtQLHJlPTI9PUwuYmlmZj8xOjIsX2U9eS5yZWFkX3NoaWZ0KHJlKTtpZig2NTUzNT09X2UpcmV0dXJuW1tdLHljKHksUC0yKV07dmFyIHZlPW41KHksX2UsTCk7cmV0dXJuIFAhPT1fZStyZSYmKGdlPWozKHksUC1fZS1yZSx2ZSxMKSkseS5sPVEsW3Zl'@; put 'LGdlXX0oeSxRLXkubCxMKTtyZXR1cm57Y2VsbDpyZSx2YWw6Z2VbMF0sZm9ybXVsYTp2ZSxzaGFyZWQ6X2U+PjMmMSx0dDpnZVsxXX19ZnVuY3Rpb24gdWYoeSxQLEwpe3ZhciBRPXkucmVhZF9zaGlmdCg0KSxyZT1uNSh5LFEsTCksZ2U9eS5yZWFkX3NoaWZ0KDQpO3JldHVybltyZSxnZT4w'@; put 'P2ozKHksZ2UscmUsTCwhMCk6bnVsbF19dmFyIHJTPXVmLGg2PXVmLGlTPXVmLG9TPWZ1bmN0aW9uIGd2KHksUCxMKXt2YXIgUT15LnJlYWRfc2hpZnQoNCkscmU9eS5yZWFkX3NoaWZ0KDQpLGdlPW41KHksUSxMKTtyZXR1cm5bZ2UscmU+MD9qMyh5LHJlLGdlLEwsITApOm51bGxdfSxzUz11'@; put 'ZixFST11ZjtmdW5jdGlvbiBtdih5KXtpZigoMHx5KT09eSYmeTxNYXRoLnBvdygyLDE2KSYmeT49MCl7dmFyIFA9cHIoMTEpO3JldHVybiBQLndyaXRlX3NoaWZ0KDQsMyksUC53cml0ZV9zaGlmdCgxLDMwKSxQLndyaXRlX3NoaWZ0KDIseSksUC53cml0ZV9zaGlmdCg0LDApLFB9dmFyIEw9'@; put 'cHIoMTcpO3JldHVybiBMLndyaXRlX3NoaWZ0KDQsMTEpLEwud3JpdGVfc2hpZnQoMSwzMSksTC53cml0ZV9zaGlmdCg4LHkpLEwud3JpdGVfc2hpZnQoNCwwKSxMfWZ1bmN0aW9uIGFTKHkpe3ZhciBQPXByKDcpO1Aud3JpdGVfc2hpZnQoNCwzKzIqeS5sZW5ndGgpLFAud3JpdGVfc2hpZnQo'@; put 'MSwyMyksUC53cml0ZV9zaGlmdCgyLHkubGVuZ3RoKTt2YXIgTD1wcigyKnkubGVuZ3RoKTtMLndyaXRlX3NoaWZ0KDIqeS5sZW5ndGgseSwidXRmMTZsZSIpO3ZhciBRPXByKDQpO3JldHVybiBRLndyaXRlX3NoaWZ0KDQsMCksUyhbUCxMLFFdKX1mdW5jdGlvbiBVMyh5KXtpZih5Lm1hdGNo'@; put 'KC9eIyhESVZcLzAhfEdFVFRJTkdfREFUQXxOXC9BfE5BTUVcP3xOVUxMIXxOVU0hfFJFRiF8VkFMVUUhKSQvKSlyZXR1cm4gZnVuY3Rpb24gR1ooeSl7dmFyIFA9cHIoMTApO3JldHVybiBQLndyaXRlX3NoaWZ0KDQsMiksUC53cml0ZV9zaGlmdCgxLDI4KSxQLndyaXRlX3NoaWZ0KDEseSks'@; put 'UC53cml0ZV9zaGlmdCg0LDApLFB9KCtLYVt5XSk7aWYoeS5tYXRjaCgvXlwkPyg/OltBLVddW0EtWl17Mn18WFtBLUVdW0EtWl18WEZbQS1EXXxbQS1aXXsxLDJ9KVwkPyg/OjEwWzAtM11cZHs0fXwxMDRbMC03XVxkezN9fDEwNDhbMC00XVxkezJ9fDEwNDg1WzAtNl1cZHwxMDQ4NTdbMC02'@; put 'XXxbMS05XVxkezAsNX0pJC8pKXJldHVybiBmdW5jdGlvbiB2dih5KXt2YXIgUD1zcyh5KSxMPXByKDE1KTtyZXR1cm4gTC53cml0ZV9zaGlmdCg0LDcpLEwud3JpdGVfc2hpZnQoMSwzNiksTC53cml0ZV9zaGlmdCg0LFAuciksTC53cml0ZV9zaGlmdCgyLFAuY3woIiQiPT15LmNoYXJBdCgw'@; put 'KT8wOjEpPDwxNHwoeS5tYXRjaCgvXCRcZC8pPzA6MSk8PDE1KSxMLndyaXRlX3NoaWZ0KDQsMCksTH0oeSk7aWYoeS5tYXRjaCgvXiIuKiIkLykpcmV0dXJuIGFTKHkpO3Rocm93IkZvcm11bGEgfCIreSsifCBub3Qgc3VwcG9ydGVkIGZvciBYTFNCIn12YXIga0k9ezA6IkJFRVAiLDE6Ik9Q'@; put 'RU4iLDI6Ik9QRU4uTElOS1MiLDM6IkNMT1NFLkFMTCIsNDoiU0FWRSIsNToiU0FWRS5BUyIsNjoiRklMRS5ERUxFVEUiLDc6IlBBR0UuU0VUVVAiLDg6IlBSSU5UIiw5OiJQUklOVEVSLlNFVFVQIiwxMDoiUVVJVCIsMTE6Ik5FVy5XSU5ET1ciLDEyOiJBUlJBTkdFLkFMTCIsMTM6IldJTkRP'@; put 'Vy5TSVpFIiwxNDoiV0lORE9XLk1PVkUiLDE1OiJGVUxMIiwxNjoiQ0xPU0UiLDE3OiJSVU4iLDIyOiJTRVQuUFJJTlQuQVJFQSIsMjM6IlNFVC5QUklOVC5USVRMRVMiLDI0OiJTRVQuUEFHRS5CUkVBSyIsMjU6IlJFTU9WRS5QQUdFLkJSRUFLIiwyNjoiRk9OVCIsMjc6IkRJU1BMQVkiLDI4'@; put 'OiJQUk9URUNULkRPQ1VNRU5UIiwyOToiUFJFQ0lTSU9OIiwzMDoiQTEuUjFDMSIsMzE6IkNBTENVTEFURS5OT1ciLDMyOiJDQUxDVUxBVElPTiIsMzQ6IkRBVEEuRklORCIsMzU6IkVYVFJBQ1QiLDM2OiJEQVRBLkRFTEVURSIsMzc6IlNFVC5EQVRBQkFTRSIsMzg6IlNFVC5DUklURVJJQSIs'@; put 'Mzk6IlNPUlQiLDQwOiJEQVRBLlNFUklFUyIsNDE6IlRBQkxFIiw0MjoiRk9STUFULk5VTUJFUiIsNDM6IkFMSUdOTUVOVCIsNDQ6IlNUWUxFIiw0NToiQk9SREVSIiw0NjoiQ0VMTC5QUk9URUNUSU9OIiw0NzoiQ09MVU1OLldJRFRIIiw0ODoiVU5ETyIsNDk6IkNVVCIsNTA6IkNPUFkiLDUx'@; put 'OiJQQVNURSIsNTI6IkNMRUFSIiw1MzoiUEFTVEUuU1BFQ0lBTCIsNTQ6IkVESVQuREVMRVRFIiw1NToiSU5TRVJUIiw1NjoiRklMTC5SSUdIVCIsNTc6IkZJTEwuRE9XTiIsNjE6IkRFRklORS5OQU1FIiw2MjoiQ1JFQVRFLk5BTUVTIiw2MzoiRk9STVVMQS5HT1RPIiw2NDoiRk9STVVMQS5G'@; put 'SU5EIiw2NToiU0VMRUNULkxBU1QuQ0VMTCIsNjY6IlNIT1cuQUNUSVZFLkNFTEwiLDY3OiJHQUxMRVJZLkFSRUEiLDY4OiJHQUxMRVJZLkJBUiIsNjk6IkdBTExFUlkuQ09MVU1OIiw3MDoiR0FMTEVSWS5MSU5FIiw3MToiR0FMTEVSWS5QSUUiLDcyOiJHQUxMRVJZLlNDQVRURVIiLDczOiJD'@; put 'T01CSU5BVElPTiIsNzQ6IlBSRUZFUlJFRCIsNzU6IkFERC5PVkVSTEFZIiw3NjoiR1JJRExJTkVTIiw3NzoiU0VULlBSRUZFUlJFRCIsNzg6IkFYRVMiLDc5OiJMRUdFTkQiLDgwOiJBVFRBQ0guVEVYVCIsODE6IkFERC5BUlJPVyIsODI6IlNFTEVDVC5DSEFSVCIsODM6IlNFTEVDVC5QTE9U'@; put 'LkFSRUEiLDg0OiJQQVRURVJOUyIsODU6Ik1BSU4uQ0hBUlQiLDg2OiJPVkVSTEFZIiw4NzoiU0NBTEUiLDg4OiJGT1JNQVQuTEVHRU5EIiw4OToiRk9STUFULlRFWFQiLDkwOiJFRElULlJFUEVBVCIsOTE6IlBBUlNFIiw5MjoiSlVTVElGWSIsOTM6IkhJREUiLDk0OiJVTkhJREUiLDk1OiJX'@; put 'T1JLU1BBQ0UiLDk2OiJGT1JNVUxBIiw5NzoiRk9STVVMQS5GSUxMIiw5ODoiRk9STVVMQS5BUlJBWSIsOTk6IkRBVEEuRklORC5ORVhUIiwxMDA6IkRBVEEuRklORC5QUkVWIiwxMDE6IkZPUk1VTEEuRklORC5ORVhUIiwxMDI6IkZPUk1VTEEuRklORC5QUkVWIiwxMDM6IkFDVElWQVRFIiwx'@; put 'MDQ6IkFDVElWQVRFLk5FWFQiLDEwNToiQUNUSVZBVEUuUFJFViIsMTA2OiJVTkxPQ0tFRC5ORVhUIiwxMDc6IlVOTE9DS0VELlBSRVYiLDEwODoiQ09QWS5QSUNUVVJFIiwxMDk6IlNFTEVDVCIsMTEwOiJERUxFVEUuTkFNRSIsMTExOiJERUxFVEUuRk9STUFUIiwxMTI6IlZMSU5FIiwxMTM6'@; put 'IkhMSU5FIiwxMTQ6IlZQQUdFIiwxMTU6IkhQQUdFIiwxMTY6IlZTQ1JPTEwiLDExNzoiSFNDUk9MTCIsMTE4OiJBTEVSVCIsMTE5OiJORVciLDEyMDoiQ0FOQ0VMLkNPUFkiLDEyMToiU0hPVy5DTElQQk9BUkQiLDEyMjoiTUVTU0FHRSIsMTI0OiJQQVNURS5MSU5LIiwxMjU6IkFQUC5BQ1RJ'@; put 'VkFURSIsMTI2OiJERUxFVEUuQVJST1ciLDEyNzoiUk9XLkhFSUdIVCIsMTI4OiJGT1JNQVQuTU9WRSIsMTI5OiJGT1JNQVQuU0laRSIsMTMwOiJGT1JNVUxBLlJFUExBQ0UiLDEzMToiU0VORC5LRVlTIiwxMzI6IlNFTEVDVC5TUEVDSUFMIiwxMzM6IkFQUExZLk5BTUVTIiwxMzQ6IlJFUExB'@; put 'Q0UuRk9OVCIsMTM1OiJGUkVFWkUuUEFORVMiLDEzNjoiU0hPVy5JTkZPIiwxMzc6IlNQTElUIiwxMzg6Ik9OLldJTkRPVyIsMTM5OiJPTi5EQVRBIiwxNDA6IkRJU0FCTEUuSU5QVVQiLDE0MjoiT1VUTElORSIsMTQzOiJMSVNULk5BTUVTIiwxNDQ6IkZJTEUuQ0xPU0UiLDE0NToiU0FWRS5X'@; put 'T1JLQk9PSyIsMTQ2OiJEQVRBLkZPUk0iLDE0NzoiQ09QWS5DSEFSVCIsMTQ4OiJPTi5USU1FIiwxNDk6IldBSVQiLDE1MDoiRk9STUFULkZPTlQiLDE1MToiRklMTC5VUCIsMTUyOiJGSUxMLkxFRlQiLDE1MzoiREVMRVRFLk9WRVJMQVkiLDE1NToiU0hPUlQuTUVOVVMiLDE1OToiU0VULlVQ'@; put 'REFURS5TVEFUVVMiLDE2MToiQ09MT1IuUEFMRVRURSIsMTYyOiJERUxFVEUuU1RZTEUiLDE2MzoiV0lORE9XLlJFU1RPUkUiLDE2NDoiV0lORE9XLk1BWElNSVpFIiwxNjY6IkNIQU5HRS5MSU5LIiwxNjc6IkNBTENVTEFURS5ET0NVTUVOVCIsMTY4OiJPTi5LRVkiLDE2OToiQVBQLlJFU1RP'@; put 'UkUiLDE3MDoiQVBQLk1PVkUiLDE3MToiQVBQLlNJWkUiLDE3MjoiQVBQLk1JTklNSVpFIiwxNzM6IkFQUC5NQVhJTUlaRSIsMTc0OiJCUklORy5UTy5GUk9OVCIsMTc1OiJTRU5ELlRPLkJBQ0siLDE4NToiTUFJTi5DSEFSVC5UWVBFIiwxODY6Ik9WRVJMQVkuQ0hBUlQuVFlQRSIsMTg3OiJT'@; put 'RUxFQ1QuRU5EIiwxODg6Ik9QRU4uTUFJTCIsMTg5OiJTRU5ELk1BSUwiLDE5MDoiU1RBTkRBUkQuRk9OVCIsMTkxOiJDT05TT0xJREFURSIsMTkyOiJTT1JULlNQRUNJQUwiLDE5MzoiR0FMTEVSWS4zRC5BUkVBIiwxOTQ6IkdBTExFUlkuM0QuQ09MVU1OIiwxOTU6IkdBTExFUlkuM0QuTElO'@; put 'RSIsMTk2OiJHQUxMRVJZLjNELlBJRSIsMTk3OiJWSUVXLjNEIiwxOTg6IkdPQUwuU0VFSyIsMTk5OiJXT1JLR1JPVVAiLDIwMDoiRklMTC5HUk9VUCIsMjAxOiJVUERBVEUuTElOSyIsMjAyOiJQUk9NT1RFIiwyMDM6IkRFTU9URSIsMjA0OiJTSE9XLkRFVEFJTCIsMjA2OiJVTkdST1VQIiwy'@; put 'MDc6Ik9CSkVDVC5QUk9QRVJUSUVTIiwyMDg6IlNBVkUuTkVXLk9CSkVDVCIsMjA5OiJTSEFSRSIsMjEwOiJTSEFSRS5OQU1FIiwyMTE6IkRVUExJQ0FURSIsMjEyOiJBUFBMWS5TVFlMRSIsMjEzOiJBU1NJR04uVE8uT0JKRUNUIiwyMTQ6Ik9CSkVDVC5QUk9URUNUSU9OIiwyMTU6IkhJREUu'@; put 'T0JKRUNUIiwyMTY6IlNFVC5FWFRSQUNUIiwyMTc6IkNSRUFURS5QVUJMSVNIRVIiLDIxODoiU1VCU0NSSUJFLlRPIiwyMTk6IkFUVFJJQlVURVMiLDIyMDoiU0hPVy5UT09MQkFSIiwyMjI6IlBSSU5ULlBSRVZJRVciLDIyMzoiRURJVC5DT0xPUiIsMjI0OiJTSE9XLkxFVkVMUyIsMjI1OiJG'@; put 'T1JNQVQuTUFJTiIsMjI2OiJGT1JNQVQuT1ZFUkxBWSIsMjI3OiJPTi5SRUNBTEMiLDIyODoiRURJVC5TRVJJRVMiLDIyOToiREVGSU5FLlNUWUxFIiwyNDA6IkxJTkUuUFJJTlQiLDI0MzoiRU5URVIuREFUQSIsMjQ5OiJHQUxMRVJZLlJBREFSIiwyNTA6Ik1FUkdFLlNUWUxFUyIsMjUxOiJF'@; put 'RElUSU9OLk9QVElPTlMiLDI1MjoiUEFTVEUuUElDVFVSRSIsMjUzOiJQQVNURS5QSUNUVVJFLkxJTksiLDI1NDoiU1BFTExJTkciLDI1NjoiWk9PTSIsMjU5OiJJTlNFUlQuT0JKRUNUIiwyNjA6IldJTkRPVy5NSU5JTUlaRSIsMjY1OiJTT1VORC5OT1RFIiwyNjY6IlNPVU5ELlBMQVkiLDI2'@; put 'NzoiRk9STUFULlNIQVBFIiwyNjg6IkVYVEVORC5QT0xZR09OIiwyNjk6IkZPUk1BVC5BVVRPIiwyNzI6IkdBTExFUlkuM0QuQkFSIiwyNzM6IkdBTExFUlkuM0QuU1VSRkFDRSIsMjc0OiJGSUxMLkFVVE8iLDI3NjoiQ1VTVE9NSVpFLlRPT0xCQVIiLDI3NzoiQURELlRPT0wiLDI3ODoiRURJ'@; put 'VC5PQkpFQ1QiLDI3OToiT04uRE9VQkxFQ0xJQ0siLDI4MDoiT04uRU5UUlkiLDI4MToiV09SS0JPT0suQUREIiwyODI6IldPUktCT09LLk1PVkUiLDI4MzoiV09SS0JPT0suQ09QWSIsMjg0OiJXT1JLQk9PSy5PUFRJT05TIiwyODU6IlNBVkUuV09SS1NQQUNFIiwyODg6IkNIQVJULldJWkFS'@; put 'RCIsMjg5OiJERUxFVEUuVE9PTCIsMjkwOiJNT1ZFLlRPT0wiLDI5MToiV09SS0JPT0suU0VMRUNUIiwyOTI6IldPUktCT09LLkFDVElWQVRFIiwyOTM6IkFTU0lHTi5UTy5UT09MIiwyOTU6IkNPUFkuVE9PTCIsMjk2OiJSRVNFVC5UT09MIiwyOTc6IkNPTlNUUkFJTi5OVU1FUklDIiwyOTg6'@; put 'IlBBU1RFLlRPT0wiLDMwMjoiV09SS0JPT0suTkVXIiwzMDU6IlNDRU5BUklPLkNFTExTIiwzMDY6IlNDRU5BUklPLkRFTEVURSIsMzA3OiJTQ0VOQVJJTy5BREQiLDMwODoiU0NFTkFSSU8uRURJVCIsMzA5OiJTQ0VOQVJJTy5TSE9XIiwzMTA6IlNDRU5BUklPLlNIT1cuTkVYVCIsMzExOiJT'@; put 'Q0VOQVJJTy5TVU1NQVJZIiwzMTI6IlBJVk9ULlRBQkxFLldJWkFSRCIsMzEzOiJQSVZPVC5GSUVMRC5QUk9QRVJUSUVTIiwzMTQ6IlBJVk9ULkZJRUxEIiwzMTU6IlBJVk9ULklURU0iLDMxNjoiUElWT1QuQURELkZJRUxEUyIsMzE4OiJPUFRJT05TLkNBTENVTEFUSU9OIiwzMTk6Ik9QVElP'@; put 'TlMuRURJVCIsMzIwOiJPUFRJT05TLlZJRVciLDMyMToiQURESU4uTUFOQUdFUiIsMzIyOiJNRU5VLkVESVRPUiIsMzIzOiJBVFRBQ0guVE9PTEJBUlMiLDMyNDoiVkJBQWN0aXZhdGUiLDMyNToiT1BUSU9OUy5DSEFSVCIsMzI4OiJWQkEuSU5TRVJULkZJTEUiLDMzMDoiVkJBLlBST0NFRFVS'@; put 'RS5ERUZJTklUSU9OIiwzMzY6IlJPVVRJTkcuU0xJUCIsMzM4OiJST1VURS5ET0NVTUVOVCIsMzM5OiJNQUlMLkxPR09OIiwzNDI6IklOU0VSVC5QSUNUVVJFIiwzNDM6IkVESVQuVE9PTCIsMzQ0OiJHQUxMRVJZLkRPVUdITlVUIiwzNTA6IkNIQVJULlRSRU5EIiwzNTI6IlBJVk9ULklURU0u'@; put 'UFJPUEVSVElFUyIsMzU0OiJXT1JLQk9PSy5JTlNFUlQiLDM1NToiT1BUSU9OUy5UUkFOU0lUSU9OIiwzNTY6Ik9QVElPTlMuR0VORVJBTCIsMzcwOiJGSUxURVIuQURWQU5DRUQiLDM3MzoiTUFJTC5BREQuTUFJTEVSIiwzNzQ6Ik1BSUwuREVMRVRFLk1BSUxFUiIsMzc1OiJNQUlMLlJFUExZ'@; put 'IiwzNzY6Ik1BSUwuUkVQTFkuQUxMIiwzNzc6Ik1BSUwuRk9SV0FSRCIsMzc4OiJNQUlMLk5FWFQuTEVUVEVSIiwzNzk6IkRBVEEuTEFCRUwiLDM4MDoiSU5TRVJULlRJVExFIiwzODE6IkZPTlQuUFJPUEVSVElFUyIsMzgyOiJNQUNSTy5PUFRJT05TIiwzODM6IldPUktCT09LLkhJREUiLDM4'@; put 'NDoiV09SS0JPT0suVU5ISURFIiwzODU6IldPUktCT09LLkRFTEVURSIsMzg2OiJXT1JLQk9PSy5OQU1FIiwzODg6IkdBTExFUlkuQ1VTVE9NIiwzOTA6IkFERC5DSEFSVC5BVVRPRk9STUFUIiwzOTE6IkRFTEVURS5DSEFSVC5BVVRPRk9STUFUIiwzOTI6IkNIQVJULkFERC5EQVRBIiwzOTM6'@; put 'IkFVVE8uT1VUTElORSIsMzk0OiJUQUIuT1JERVIiLDM5NToiU0hPVy5ESUFMT0ciLDM5NjoiU0VMRUNULkFMTCIsMzk3OiJVTkdST1VQLlNIRUVUUyIsMzk4OiJTVUJUT1RBTC5DUkVBVEUiLDM5OToiU1VCVE9UQUwuUkVNT1ZFIiw0MDA6IlJFTkFNRS5PQkpFQ1QiLDQxMjoiV09SS0JPT0su'@; put 'U0NST0xMIiw0MTM6IldPUktCT09LLk5FWFQiLDQxNDoiV09SS0JPT0suUFJFViIsNDE1OiJXT1JLQk9PSy5UQUIuU1BMSVQiLDQxNjoiRlVMTC5TQ1JFRU4iLDQxNzoiV09SS0JPT0suUFJPVEVDVCIsNDIwOiJTQ1JPTExCQVIuUFJPUEVSVElFUyIsNDIxOiJQSVZPVC5TSE9XLlBBR0VTIiw0'@; put 'MjI6IlRFWFQuVE8uQ09MVU1OUyIsNDIzOiJGT1JNQVQuQ0hBUlRUWVBFIiw0MjQ6IkxJTksuRk9STUFUIiw0MjU6IlRSQUNFUi5ESVNQTEFZIiw0MzA6IlRSQUNFUi5OQVZJR0FURSIsNDMxOiJUUkFDRVIuQ0xFQVIiLDQzMjoiVFJBQ0VSLkVSUk9SIiw0MzM6IlBJVk9ULkZJRUxELkdST1VQ'@; put 'Iiw0MzQ6IlBJVk9ULkZJRUxELlVOR1JPVVAiLDQzNToiQ0hFQ0tCT1guUFJPUEVSVElFUyIsNDM2OiJMQUJFTC5QUk9QRVJUSUVTIiw0Mzc6IkxJU1RCT1guUFJPUEVSVElFUyIsNDM4OiJFRElUQk9YLlBST1BFUlRJRVMiLDQzOToiUElWT1QuUkVGUkVTSCIsNDQwOiJMSU5LLkNPTUJPIiw0'@; put 'NDE6Ik9QRU4uVEVYVCIsNDQyOiJISURFLkRJQUxPRyIsNDQzOiJTRVQuRElBTE9HLkZPQ1VTIiw0NDQ6IkVOQUJMRS5PQkpFQ1QiLDQ0NToiUFVTSEJVVFRPTi5QUk9QRVJUSUVTIiw0NDY6IlNFVC5ESUFMT0cuREVGQVVMVCIsNDQ3OiJGSUxURVIiLDQ0ODoiRklMVEVSLlNIT1cuQUxMIiw0'@; put 'NDk6IkNMRUFSLk9VVExJTkUiLDQ1MDoiRlVOQ1RJT04uV0laQVJEIiw0NTE6IkFERC5MSVNULklURU0iLDQ1MjoiU0VULkxJU1QuSVRFTSIsNDUzOiJSRU1PVkUuTElTVC5JVEVNIiw0NTQ6IlNFTEVDVC5MSVNULklURU0iLDQ1NToiU0VULkNPTlRST0wuVkFMVUUiLDQ1NjoiU0FWRS5DT1BZ'@; put 'LkFTIiw0NTg6Ik9QVElPTlMuTElTVFMuQUREIiw0NTk6Ik9QVElPTlMuTElTVFMuREVMRVRFIiw0NjA6IlNFUklFUy5BWEVTIiw0NjE6IlNFUklFUy5YIiw0NjI6IlNFUklFUy5ZIiw0NjM6IkVSUk9SQkFSLlgiLDQ2NDoiRVJST1JCQVIuWSIsNDY1OiJGT1JNQVQuQ0hBUlQiLDQ2NjoiU0VS'@; put 'SUVTLk9SREVSIiw0Njc6Ik1BSUwuTE9HT0ZGIiw0Njg6IkNMRUFSLlJPVVRJTkcuU0xJUCIsNDY5OiJBUFAuQUNUSVZBVEUuTUlDUk9TT0ZUIiw0NzA6Ik1BSUwuRURJVC5NQUlMRVIiLDQ3MToiT04uU0hFRVQiLDQ3MjoiU1RBTkRBUkQuV0lEVEgiLDQ3MzoiU0NFTkFSSU8uTUVSR0UiLDQ3'@; put 'NDoiU1VNTUFSWS5JTkZPIiw0NzU6IkZJTkQuRklMRSIsNDc2OiJBQ1RJVkUuQ0VMTC5GT05UIiw0Nzc6IkVOQUJMRS5USVBXSVpBUkQiLDQ3ODoiVkJBLk1BS0UuQURESU4iLDQ4MDoiSU5TRVJUREFUQVRBQkxFIiw0ODE6IldPUktHUk9VUC5PUFRJT05TIiw0ODI6Ik1BSUwuU0VORC5NQUlM'@; put 'RVIiLDQ4NToiQVVUT0NPUlJFQ1QiLDQ4OToiUE9TVC5ET0NVTUVOVCIsNDkxOiJQSUNLTElTVCIsNDkzOiJWSUVXLlNIT1ciLDQ5NDoiVklFVy5ERUZJTkUiLDQ5NToiVklFVy5ERUxFVEUiLDUwOToiU0hFRVQuQkFDS0dST1VORCIsNTEwOiJJTlNFUlQuTUFQLk9CSkVDVCIsNTExOiJPUFRJ'@; put 'T05TLk1FTk9OTyIsNTE3OiJNU09DSEVDS1MiLDUxODoiTk9STUFMIiw1MTk6IkxBWU9VVCIsNTIwOiJSTS5QUklOVC5BUkVBIiw1MjE6IkNMRUFSLlBSSU5ULkFSRUEiLDUyMjoiQURELlBSSU5ULkFSRUEiLDUyMzoiTU9WRS5CUksiLDU0NToiSElERUNVUlIuTk9URSIsNTQ2OiJISURFQUxM'@; put 'Lk5PVEVTIiw1NDc6IkRFTEVURS5OT1RFIiw1NDg6IlRSQVZFUlNFLk5PVEVTIiw1NDk6IkFDVElWQVRFLk5PVEVTIiw2MjA6IlBST1RFQ1QuUkVWSVNJT05TIiw2MjE6IlVOUFJPVEVDVC5SRVZJU0lPTlMiLDY0NzoiT1BUSU9OUy5NRSIsNjUzOiJXRUIuUFVCTElTSCIsNjY3OiJORVdXRUJR'@; put 'VUVSWSIsNjczOiJQSVZPVC5UQUJMRS5DSEFSVCIsNzUzOiJPUFRJT05TLlNBVkUiLDc1NToiT1BUSU9OUy5TUEVMTCIsODA4OiJISURFQUxMLklOS0FOTk9UUyJ9LF92PXswOiJDT1VOVCIsMToiSUYiLDI6IklTTkEiLDM6IklTRVJST1IiLDQ6IlNVTSIsNToiQVZFUkFHRSIsNjoiTUlOIiw3'@; put 'OiJNQVgiLDg6IlJPVyIsOToiQ09MVU1OIiwxMDoiTkEiLDExOiJOUFYiLDEyOiJTVERFViIsMTM6IkRPTExBUiIsMTQ6IkZJWEVEIiwxNToiU0lOIiwxNjoiQ09TIiwxNzoiVEFOIiwxODoiQVRBTiIsMTk6IlBJIiwyMDoiU1FSVCIsMjE6IkVYUCIsMjI6IkxOIiwyMzoiTE9HMTAiLDI0OiJB'@; put 'QlMiLDI1OiJJTlQiLDI2OiJTSUdOIiwyNzoiUk9VTkQiLDI4OiJMT09LVVAiLDI5OiJJTkRFWCIsMzA6IlJFUFQiLDMxOiJNSUQiLDMyOiJMRU4iLDMzOiJWQUxVRSIsMzQ6IlRSVUUiLDM1OiJGQUxTRSIsMzY6IkFORCIsMzc6Ik9SIiwzODoiTk9UIiwzOToiTU9EIiw0MDoiRENPVU5UIiw0'@; put 'MToiRFNVTSIsNDI6IkRBVkVSQUdFIiw0MzoiRE1JTiIsNDQ6IkRNQVgiLDQ1OiJEU1RERVYiLDQ2OiJWQVIiLDQ3OiJEVkFSIiw0ODoiVEVYVCIsNDk6IkxJTkVTVCIsNTA6IlRSRU5EIiw1MToiTE9HRVNUIiw1MjoiR1JPV1RIIiw1MzoiR09UTyIsNTQ6IkhBTFQiLDU1OiJSRVRVUk4iLDU2'@; put 'OiJQViIsNTc6IkZWIiw1ODoiTlBFUiIsNTk6IlBNVCIsNjA6IlJBVEUiLDYxOiJNSVJSIiw2MjoiSVJSIiw2MzoiUkFORCIsNjQ6Ik1BVENIIiw2NToiREFURSIsNjY6IlRJTUUiLDY3OiJEQVkiLDY4OiJNT05USCIsNjk6IllFQVIiLDcwOiJXRUVLREFZIiw3MToiSE9VUiIsNzI6Ik1JTlVU'@; put 'RSIsNzM6IlNFQ09ORCIsNzQ6Ik5PVyIsNzU6IkFSRUFTIiw3NjoiUk9XUyIsNzc6IkNPTFVNTlMiLDc4OiJPRkZTRVQiLDc5OiJBQlNSRUYiLDgwOiJSRUxSRUYiLDgxOiJBUkdVTUVOVCIsODI6IlNFQVJDSCIsODM6IlRSQU5TUE9TRSIsODQ6IkVSUk9SIiw4NToiU1RFUCIsODY6IlRZUEUi'@; put 'LDg3OiJFQ0hPIiw4ODoiU0VULk5BTUUiLDg5OiJDQUxMRVIiLDkwOiJERVJFRiIsOTE6IldJTkRPV1MiLDkyOiJTRVJJRVMiLDkzOiJET0NVTUVOVFMiLDk0OiJBQ1RJVkUuQ0VMTCIsOTU6IlNFTEVDVElPTiIsOTY6IlJFU1VMVCIsOTc6IkFUQU4yIiw5ODoiQVNJTiIsOTk6IkFDT1MiLDEw'@; put 'MDoiQ0hPT1NFIiwxMDE6IkhMT09LVVAiLDEwMjoiVkxPT0tVUCIsMTAzOiJMSU5LUyIsMTA0OiJJTlBVVCIsMTA1OiJJU1JFRiIsMTA2OiJHRVQuRk9STVVMQSIsMTA3OiJHRVQuTkFNRSIsMTA4OiJTRVQuVkFMVUUiLDEwOToiTE9HIiwxMTA6IkVYRUMiLDExMToiQ0hBUiIsMTEyOiJMT1dF'@; put 'UiIsMTEzOiJVUFBFUiIsMTE0OiJQUk9QRVIiLDExNToiTEVGVCIsMTE2OiJSSUdIVCIsMTE3OiJFWEFDVCIsMTE4OiJUUklNIiwxMTk6IlJFUExBQ0UiLDEyMDoiU1VCU1RJVFVURSIsMTIxOiJDT0RFIiwxMjI6Ik5BTUVTIiwxMjM6IkRJUkVDVE9SWSIsMTI0OiJGSU5EIiwxMjU6IkNFTEwi'@; put 'LDEyNjoiSVNFUlIiLDEyNzoiSVNURVhUIiwxMjg6IklTTlVNQkVSIiwxMjk6IklTQkxBTksiLDEzMDoiVCIsMTMxOiJOIiwxMzI6IkZPUEVOIiwxMzM6IkZDTE9TRSIsMTM0OiJGU0laRSIsMTM1OiJGUkVBRExOIiwxMzY6IkZSRUFEIiwxMzc6IkZXUklURUxOIiwxMzg6IkZXUklURSIsMTM5'@; put 'OiJGUE9TIiwxNDA6IkRBVEVWQUxVRSIsMTQxOiJUSU1FVkFMVUUiLDE0MjoiU0xOIiwxNDM6IlNZRCIsMTQ0OiJEREIiLDE0NToiR0VULkRFRiIsMTQ2OiJSRUZURVhUIiwxNDc6IlRFWFRSRUYiLDE0ODoiSU5ESVJFQ1QiLDE0OToiUkVHSVNURVIiLDE1MDoiQ0FMTCIsMTUxOiJBREQuQkFS'@; put 'IiwxNTI6IkFERC5NRU5VIiwxNTM6IkFERC5DT01NQU5EIiwxNTQ6IkVOQUJMRS5DT01NQU5EIiwxNTU6IkNIRUNLLkNPTU1BTkQiLDE1NjoiUkVOQU1FLkNPTU1BTkQiLDE1NzoiU0hPVy5CQVIiLDE1ODoiREVMRVRFLk1FTlUiLDE1OToiREVMRVRFLkNPTU1BTkQiLDE2MDoiR0VULkNIQVJU'@; put 'LklURU0iLDE2MToiRElBTE9HLkJPWCIsMTYyOiJDTEVBTiIsMTYzOiJNREVURVJNIiwxNjQ6Ik1JTlZFUlNFIiwxNjU6Ik1NVUxUIiwxNjY6IkZJTEVTIiwxNjc6IklQTVQiLDE2ODoiUFBNVCIsMTY5OiJDT1VOVEEiLDE3MDoiQ0FOQ0VMLktFWSIsMTcxOiJGT1IiLDE3MjoiV0hJTEUiLDE3'@; put 'MzoiQlJFQUsiLDE3NDoiTkVYVCIsMTc1OiJJTklUSUFURSIsMTc2OiJSRVFVRVNUIiwxNzc6IlBPS0UiLDE3ODoiRVhFQ1VURSIsMTc5OiJURVJNSU5BVEUiLDE4MDoiUkVTVEFSVCIsMTgxOiJIRUxQIiwxODI6IkdFVC5CQVIiLDE4MzoiUFJPRFVDVCIsMTg0OiJGQUNUIiwxODU6IkdFVC5D'@; put 'RUxMIiwxODY6IkdFVC5XT1JLU1BBQ0UiLDE4NzoiR0VULldJTkRPVyIsMTg4OiJHRVQuRE9DVU1FTlQiLDE4OToiRFBST0RVQ1QiLDE5MDoiSVNOT05URVhUIiwxOTE6IkdFVC5OT1RFIiwxOTI6Ik5PVEUiLDE5MzoiU1RERVZQIiwxOTQ6IlZBUlAiLDE5NToiRFNUREVWUCIsMTk2OiJEVkFS'@; put 'UCIsMTk3OiJUUlVOQyIsMTk4OiJJU0xPR0lDQUwiLDE5OToiRENPVU5UQSIsMjAwOiJERUxFVEUuQkFSIiwyMDE6IlVOUkVHSVNURVIiLDIwNDoiVVNET0xMQVIiLDIwNToiRklOREIiLDIwNjoiU0VBUkNIQiIsMjA3OiJSRVBMQUNFQiIsMjA4OiJMRUZUQiIsMjA5OiJSSUdIVEIiLDIxMDoi'@; put 'TUlEQiIsMjExOiJMRU5CIiwyMTI6IlJPVU5EVVAiLDIxMzoiUk9VTkRET1dOIiwyMTQ6IkFTQyIsMjE1OiJEQkNTIiwyMTY6IlJBTksiLDIxOToiQUREUkVTUyIsMjIwOiJEQVlTMzYwIiwyMjE6IlRPREFZIiwyMjI6IlZEQiIsMjIzOiJFTFNFIiwyMjQ6IkVMU0UuSUYiLDIyNToiRU5ELklG'@; put 'IiwyMjY6IkZPUi5DRUxMIiwyMjc6Ik1FRElBTiIsMjI4OiJTVU1QUk9EVUNUIiwyMjk6IlNJTkgiLDIzMDoiQ09TSCIsMjMxOiJUQU5IIiwyMzI6IkFTSU5IIiwyMzM6IkFDT1NIIiwyMzQ6IkFUQU5IIiwyMzU6IkRHRVQiLDIzNjoiQ1JFQVRFLk9CSkVDVCIsMjM3OiJWT0xBVElMRSIsMjM4'@; put 'OiJMQVNULkVSUk9SIiwyMzk6IkNVU1RPTS5VTkRPIiwyNDA6IkNVU1RPTS5SRVBFQVQiLDI0MToiRk9STVVMQS5DT05WRVJUIiwyNDI6IkdFVC5MSU5LLklORk8iLDI0MzoiVEVYVC5CT1giLDI0NDoiSU5GTyIsMjQ1OiJHUk9VUCIsMjQ2OiJHRVQuT0JKRUNUIiwyNDc6IkRCIiwyNDg6IlBB'@; put 'VVNFIiwyNTE6IlJFU1VNRSIsMjUyOiJGUkVRVUVOQ1kiLDI1MzoiQURELlRPT0xCQVIiLDI1NDoiREVMRVRFLlRPT0xCQVIiLDI1NToiVXNlciIsMjU2OiJSRVNFVC5UT09MQkFSIiwyNTc6IkVWQUxVQVRFIiwyNTg6IkdFVC5UT09MQkFSIiwyNTk6IkdFVC5UT09MIiwyNjA6IlNQRUxMSU5H'@; put 'LkNIRUNLIiwyNjE6IkVSUk9SLlRZUEUiLDI2MjoiQVBQLlRJVExFIiwyNjM6IldJTkRPVy5USVRMRSIsMjY0OiJTQVZFLlRPT0xCQVIiLDI2NToiRU5BQkxFLlRPT0wiLDI2NjoiUFJFU1MuVE9PTCIsMjY3OiJSRUdJU1RFUi5JRCIsMjY4OiJHRVQuV09SS0JPT0siLDI2OToiQVZFREVWIiwy'@; put 'NzA6IkJFVEFESVNUIiwyNzE6IkdBTU1BTE4iLDI3MjoiQkVUQUlOViIsMjczOiJCSU5PTURJU1QiLDI3NDoiQ0hJRElTVCIsMjc1OiJDSElJTlYiLDI3NjoiQ09NQklOIiwyNzc6IkNPTkZJREVOQ0UiLDI3ODoiQ1JJVEJJTk9NIiwyNzk6IkVWRU4iLDI4MDoiRVhQT05ESVNUIiwyODE6IkZE'@; put 'SVNUIiwyODI6IkZJTlYiLDI4MzoiRklTSEVSIiwyODQ6IkZJU0hFUklOViIsMjg1OiJGTE9PUiIsMjg2OiJHQU1NQURJU1QiLDI4NzoiR0FNTUFJTlYiLDI4ODoiQ0VJTElORyIsMjg5OiJIWVBHRU9NRElTVCIsMjkwOiJMT0dOT1JNRElTVCIsMjkxOiJMT0dJTlYiLDI5MjoiTkVHQklOT01E'@; put 'SVNUIiwyOTM6Ik5PUk1ESVNUIiwyOTQ6Ik5PUk1TRElTVCIsMjk1OiJOT1JNSU5WIiwyOTY6Ik5PUk1TSU5WIiwyOTc6IlNUQU5EQVJESVpFIiwyOTg6Ik9ERCIsMjk5OiJQRVJNVVQiLDMwMDoiUE9JU1NPTiIsMzAxOiJURElTVCIsMzAyOiJXRUlCVUxMIiwzMDM6IlNVTVhNWTIiLDMwNDoi'@; put 'U1VNWDJNWTIiLDMwNToiU1VNWDJQWTIiLDMwNjoiQ0hJVEVTVCIsMzA3OiJDT1JSRUwiLDMwODoiQ09WQVIiLDMwOToiRk9SRUNBU1QiLDMxMDoiRlRFU1QiLDMxMToiSU5URVJDRVBUIiwzMTI6IlBFQVJTT04iLDMxMzoiUlNRIiwzMTQ6IlNURVlYIiwzMTU6IlNMT1BFIiwzMTY6IlRURVNU'@; put 'IiwzMTc6IlBST0IiLDMxODoiREVWU1EiLDMxOToiR0VPTUVBTiIsMzIwOiJIQVJNRUFOIiwzMjE6IlNVTVNRIiwzMjI6IktVUlQiLDMyMzoiU0tFVyIsMzI0OiJaVEVTVCIsMzI1OiJMQVJHRSIsMzI2OiJTTUFMTCIsMzI3OiJRVUFSVElMRSIsMzI4OiJQRVJDRU5USUxFIiwzMjk6IlBFUkNF'@; put 'TlRSQU5LIiwzMzA6Ik1PREUiLDMzMToiVFJJTU1FQU4iLDMzMjoiVElOViIsMzM0OiJNT1ZJRS5DT01NQU5EIiwzMzU6IkdFVC5NT1ZJRSIsMzM2OiJDT05DQVRFTkFURSIsMzM3OiJQT1dFUiIsMzM4OiJQSVZPVC5BREQuREFUQSIsMzM5OiJHRVQuUElWT1QuVEFCTEUiLDM0MDoiR0VULlBJ'@; put 'Vk9ULkZJRUxEIiwzNDE6IkdFVC5QSVZPVC5JVEVNIiwzNDI6IlJBRElBTlMiLDM0MzoiREVHUkVFUyIsMzQ0OiJTVUJUT1RBTCIsMzQ1OiJTVU1JRiIsMzQ2OiJDT1VOVElGIiwzNDc6IkNPVU5UQkxBTksiLDM0ODoiU0NFTkFSSU8uR0VUIiwzNDk6Ik9QVElPTlMuTElTVFMuR0VUIiwzNTA6'@; put 'IklTUE1UIiwzNTE6IkRBVEVESUYiLDM1MjoiREFURVNUUklORyIsMzUzOiJOVU1CRVJTVFJJTkciLDM1NDoiUk9NQU4iLDM1NToiT1BFTi5ESUFMT0ciLDM1NjoiU0FWRS5ESUFMT0ciLDM1NzoiVklFVy5HRVQiLDM1ODoiR0VUUElWT1REQVRBIiwzNTk6IkhZUEVSTElOSyIsMzYwOiJQSE9O'@; put 'RVRJQyIsMzYxOiJBVkVSQUdFQSIsMzYyOiJNQVhBIiwzNjM6Ik1JTkEiLDM2NDoiU1RERVZQQSIsMzY1OiJWQVJQQSIsMzY2OiJTVERFVkEiLDM2NzoiVkFSQSIsMzY4OiJCQUhUVEVYVCIsMzY5OiJUSEFJREFZT0ZXRUVLIiwzNzA6IlRIQUlESUdJVCIsMzcxOiJUSEFJTU9OVEhPRllFQVIi'@; put 'LDM3MjoiVEhBSU5VTVNPVU5EIiwzNzM6IlRIQUlOVU1TVFJJTkciLDM3NDoiVEhBSVNUUklOR0xFTkdUSCIsMzc1OiJJU1RIQUlESUdJVCIsMzc2OiJST1VOREJBSFRET1dOIiwzNzc6IlJPVU5EQkFIVFVQIiwzNzg6IlRIQUlZRUFSIiwzNzk6IlJURCIsMzgwOiJDVUJFVkFMVUUiLDM4MToi'@; put 'Q1VCRU1FTUJFUiIsMzgyOiJDVUJFTUVNQkVSUFJPUEVSVFkiLDM4MzoiQ1VCRVJBTktFRE1FTUJFUiIsMzg0OiJIRVgyQklOIiwzODU6IkhFWDJERUMiLDM4NjoiSEVYMk9DVCIsMzg3OiJERUMyQklOIiwzODg6IkRFQzJIRVgiLDM4OToiREVDMk9DVCIsMzkwOiJPQ1QyQklOIiwzOTE6Ik9D'@; put 'VDJIRVgiLDM5MjoiT0NUMkRFQyIsMzkzOiJCSU4yREVDIiwzOTQ6IkJJTjJPQ1QiLDM5NToiQklOMkhFWCIsMzk2OiJJTVNVQiIsMzk3OiJJTURJViIsMzk4OiJJTVBPV0VSIiwzOTk6IklNQUJTIiw0MDA6IklNU1FSVCIsNDAxOiJJTUxOIiw0MDI6IklNTE9HMiIsNDAzOiJJTUxPRzEwIiw0'@; put 'MDQ6IklNU0lOIiw0MDU6IklNQ09TIiw0MDY6IklNRVhQIiw0MDc6IklNQVJHVU1FTlQiLDQwODoiSU1DT05KVUdBVEUiLDQwOToiSU1BR0lOQVJZIiw0MTA6IklNUkVBTCIsNDExOiJDT01QTEVYIiw0MTI6IklNU1VNIiw0MTM6IklNUFJPRFVDVCIsNDE0OiJTRVJJRVNTVU0iLDQxNToiRkFD'@; put 'VERPVUJMRSIsNDE2OiJTUVJUUEkiLDQxNzoiUVVPVElFTlQiLDQxODoiREVMVEEiLDQxOToiR0VTVEVQIiw0MjA6IklTRVZFTiIsNDIxOiJJU09ERCIsNDIyOiJNUk9VTkQiLDQyMzoiRVJGIiw0MjQ6IkVSRkMiLDQyNToiQkVTU0VMSiIsNDI2OiJCRVNTRUxLIiw0Mjc6IkJFU1NFTFkiLDQy'@; put 'ODoiQkVTU0VMSSIsNDI5OiJYSVJSIiw0MzA6IlhOUFYiLDQzMToiUFJJQ0VNQVQiLDQzMjoiWUlFTERNQVQiLDQzMzoiSU5UUkFURSIsNDM0OiJSRUNFSVZFRCIsNDM1OiJESVNDIiw0MzY6IlBSSUNFRElTQyIsNDM3OiJZSUVMRERJU0MiLDQzODoiVEJJTExFUSIsNDM5OiJUQklMTFBSSUNF'@; put 'Iiw0NDA6IlRCSUxMWUlFTEQiLDQ0MToiUFJJQ0UiLDQ0MjoiWUlFTEQiLDQ0MzoiRE9MTEFSREUiLDQ0NDoiRE9MTEFSRlIiLDQ0NToiTk9NSU5BTCIsNDQ2OiJFRkZFQ1QiLDQ0NzoiQ1VNUFJJTkMiLDQ0ODoiQ1VNSVBNVCIsNDQ5OiJFREFURSIsNDUwOiJFT01PTlRIIiw0NTE6IllFQVJG'@; put 'UkFDIiw0NTI6IkNPVVBEQVlCUyIsNDUzOiJDT1VQREFZUyIsNDU0OiJDT1VQREFZU05DIiw0NTU6IkNPVVBOQ0QiLDQ1NjoiQ09VUE5VTSIsNDU3OiJDT1VQUENEIiw0NTg6IkRVUkFUSU9OIiw0NTk6Ik1EVVJBVElPTiIsNDYwOiJPRERMUFJJQ0UiLDQ2MToiT0RETFlJRUxEIiw0NjI6Ik9E'@; put 'REZQUklDRSIsNDYzOiJPRERGWUlFTEQiLDQ2NDoiUkFOREJFVFdFRU4iLDQ2NToiV0VFS05VTSIsNDY2OiJBTU9SREVHUkMiLDQ2NzoiQU1PUkxJTkMiLDQ2ODoiQ09OVkVSVCIsNzI0OiJTSEVFVEpTIiw0Njk6IkFDQ1JJTlQiLDQ3MDoiQUNDUklOVE0iLDQ3MToiV09SS0RBWSIsNDcyOiJO'@; put 'RVRXT1JLREFZUyIsNDczOiJHQ0QiLDQ3NDoiTVVMVElOT01JQUwiLDQ3NToiTENNIiw0NzY6IkZWU0NIRURVTEUiLDQ3NzoiQ1VCRUtQSU1FTUJFUiIsNDc4OiJDVUJFU0VUIiw0Nzk6IkNVQkVTRVRDT1VOVCIsNDgwOiJJRkVSUk9SIiw0ODE6IkNPVU5USUZTIiw0ODI6IlNVTUlGUyIsNDgz'@; put 'OiJBVkVSQUdFSUYiLDQ4NDoiQVZFUkFHRUlGUyJ9LGJ2PXsyOjEsMzoxLDEwOjAsMTU6MSwxNjoxLDE3OjEsMTg6MSwxOTowLDIwOjEsMjE6MSwyMjoxLDIzOjEsMjQ6MSwyNToxLDI2OjEsMjc6MiwzMDoyLDMxOjMsMzI6MSwzMzoxLDM0OjAsMzU6MCwzODoxLDM5OjIsNDA6Myw0MTozLDQy'@; put 'OjMsNDM6Myw0NDozLDQ1OjMsNDc6Myw0ODoyLDUzOjEsNjE6Myw2MzowLDY1OjMsNjY6Myw2NzoxLDY4OjEsNjk6MSw3MDoxLDcxOjEsNzI6MSw3MzoxLDc0OjAsNzU6MSw3NjoxLDc3OjEsNzk6Miw4MDoyLDgzOjEsODU6MCw4NjoxLDg5OjAsOTA6MSw5NDowLDk1OjAsOTc6Miw5ODoxLDk5'@; put 'OjEsMTAxOjMsMTAyOjMsMTA1OjEsMTA2OjEsMTA4OjIsMTExOjEsMTEyOjEsMTEzOjEsMTE0OjEsMTE3OjIsMTE4OjEsMTE5OjQsMTIxOjEsMTI2OjEsMTI3OjEsMTI4OjEsMTI5OjEsMTMwOjEsMTMxOjEsMTMzOjEsMTM0OjEsMTM1OjEsMTM2OjIsMTM3OjIsMTM4OjIsMTQwOjEsMTQxOjEs'@; put 'MTQyOjMsMTQzOjQsMTQ0OjQsMTYxOjEsMTYyOjEsMTYzOjEsMTY0OjEsMTY1OjIsMTcyOjEsMTc1OjIsMTc2OjIsMTc3OjMsMTc4OjIsMTc5OjEsMTg0OjEsMTg2OjEsMTg5OjMsMTkwOjEsMTk1OjMsMTk2OjMsMTk3OjEsMTk4OjEsMTk5OjMsMjAxOjEsMjA3OjQsMjEwOjMsMjExOjEsMjEy'@; put 'OjIsMjEzOjIsMjE0OjEsMjE1OjEsMjI1OjAsMjI5OjEsMjMwOjEsMjMxOjEsMjMyOjEsMjMzOjEsMjM0OjEsMjM1OjMsMjQ0OjEsMjQ3OjQsMjUyOjIsMjU3OjEsMjYxOjEsMjcxOjEsMjczOjQsMjc0OjIsMjc1OjIsMjc2OjIsMjc3OjMsMjc4OjMsMjc5OjEsMjgwOjMsMjgxOjMsMjgyOjMs'@; put 'MjgzOjEsMjg0OjEsMjg1OjIsMjg2OjQsMjg3OjMsMjg4OjIsMjg5OjQsMjkwOjMsMjkxOjMsMjkyOjMsMjkzOjQsMjk0OjEsMjk1OjMsMjk2OjEsMjk3OjMsMjk4OjEsMjk5OjIsMzAwOjMsMzAxOjMsMzAyOjQsMzAzOjIsMzA0OjIsMzA1OjIsMzA2OjIsMzA3OjIsMzA4OjIsMzA5OjMsMzEw'@; put 'OjIsMzExOjIsMzEyOjIsMzEzOjIsMzE0OjIsMzE1OjIsMzE2OjQsMzI1OjIsMzI2OjIsMzI3OjIsMzI4OjIsMzMxOjIsMzMyOjIsMzM3OjIsMzQyOjEsMzQzOjEsMzQ2OjIsMzQ3OjEsMzUwOjQsMzUxOjMsMzUyOjEsMzUzOjIsMzYwOjEsMzY4OjEsMzY5OjEsMzcwOjEsMzcxOjEsMzcyOjEs'@; put 'MzczOjEsMzc0OjEsMzc1OjEsMzc2OjEsMzc3OjEsMzc4OjEsMzgyOjMsMzg1OjEsMzkyOjEsMzkzOjEsMzk2OjIsMzk3OjIsMzk4OjIsMzk5OjEsNDAwOjEsNDAxOjEsNDAyOjEsNDAzOjEsNDA0OjEsNDA1OjEsNDA2OjEsNDA3OjEsNDA4OjEsNDA5OjEsNDEwOjEsNDE0OjQsNDE1OjEsNDE2'@; put 'OjEsNDE3OjIsNDIwOjEsNDIxOjEsNDIyOjIsNDI0OjEsNDI1OjIsNDI2OjIsNDI3OjIsNDI4OjIsNDMwOjMsNDM4OjMsNDM5OjMsNDQwOjMsNDQzOjIsNDQ0OjIsNDQ1OjIsNDQ2OjIsNDQ3OjYsNDQ4OjYsNDQ5OjIsNDUwOjIsNDY0OjIsNDY4OjMsNDc2OjIsNDc5OjEsNDgwOjIsNjU1MzU6'@; put 'MH0sbzU9eyJfeGxmbi5BQ09UIjoiQUNPVCIsIl94bGZuLkFDT1RIIjoiQUNPVEgiLCJfeGxmbi5BR0dSRUdBVEUiOiJBR0dSRUdBVEUiLCJfeGxmbi5BUkFCSUMiOiJBUkFCSUMiLCJfeGxmbi5BVkVSQUdFSUYiOiJBVkVSQUdFSUYiLCJfeGxmbi5BVkVSQUdFSUZTIjoiQVZFUkFHRUlGUyIs'@; put 'Il94bGZuLkJBU0UiOiJCQVNFIiwiX3hsZm4uQkVUQS5ESVNUIjoiQkVUQS5ESVNUIiwiX3hsZm4uQkVUQS5JTlYiOiJCRVRBLklOViIsIl94bGZuLkJJTk9NLkRJU1QiOiJCSU5PTS5ESVNUIiwiX3hsZm4uQklOT00uRElTVC5SQU5HRSI6IkJJTk9NLkRJU1QuUkFOR0UiLCJfeGxmbi5CSU5P'@; put 'TS5JTlYiOiJCSU5PTS5JTlYiLCJfeGxmbi5CSVRBTkQiOiJCSVRBTkQiLCJfeGxmbi5CSVRMU0hJRlQiOiJCSVRMU0hJRlQiLCJfeGxmbi5CSVRPUiI6IkJJVE9SIiwiX3hsZm4uQklUUlNISUZUIjoiQklUUlNISUZUIiwiX3hsZm4uQklUWE9SIjoiQklUWE9SIiwiX3hsZm4uQ0VJTElORy5N'@; put 'QVRIIjoiQ0VJTElORy5NQVRIIiwiX3hsZm4uQ0VJTElORy5QUkVDSVNFIjoiQ0VJTElORy5QUkVDSVNFIiwiX3hsZm4uQ0hJU1EuRElTVCI6IkNISVNRLkRJU1QiLCJfeGxmbi5DSElTUS5ESVNULlJUIjoiQ0hJU1EuRElTVC5SVCIsIl94bGZuLkNISVNRLklOViI6IkNISVNRLklOViIsIl94'@; put 'bGZuLkNISVNRLklOVi5SVCI6IkNISVNRLklOVi5SVCIsIl94bGZuLkNISVNRLlRFU1QiOiJDSElTUS5URVNUIiwiX3hsZm4uQ09NQklOQSI6IkNPTUJJTkEiLCJfeGxmbi5DT05DQVQiOiJDT05DQVQiLCJfeGxmbi5DT05GSURFTkNFLk5PUk0iOiJDT05GSURFTkNFLk5PUk0iLCJfeGxmbi5D'@; put 'T05GSURFTkNFLlQiOiJDT05GSURFTkNFLlQiLCJfeGxmbi5DT1QiOiJDT1QiLCJfeGxmbi5DT1RIIjoiQ09USCIsIl94bGZuLkNPVU5USUZTIjoiQ09VTlRJRlMiLCJfeGxmbi5DT1ZBUklBTkNFLlAiOiJDT1ZBUklBTkNFLlAiLCJfeGxmbi5DT1ZBUklBTkNFLlMiOiJDT1ZBUklBTkNFLlMi'@; put 'LCJfeGxmbi5DU0MiOiJDU0MiLCJfeGxmbi5DU0NIIjoiQ1NDSCIsIl94bGZuLkRBWVMiOiJEQVlTIiwiX3hsZm4uREVDSU1BTCI6IkRFQ0lNQUwiLCJfeGxmbi5FQ01BLkNFSUxJTkciOiJFQ01BLkNFSUxJTkciLCJfeGxmbi5FUkYuUFJFQ0lTRSI6IkVSRi5QUkVDSVNFIiwiX3hsZm4uRVJG'@; put 'Qy5QUkVDSVNFIjoiRVJGQy5QUkVDSVNFIiwiX3hsZm4uRVhQT04uRElTVCI6IkVYUE9OLkRJU1QiLCJfeGxmbi5GLkRJU1QiOiJGLkRJU1QiLCJfeGxmbi5GLkRJU1QuUlQiOiJGLkRJU1QuUlQiLCJfeGxmbi5GLklOViI6IkYuSU5WIiwiX3hsZm4uRi5JTlYuUlQiOiJGLklOVi5SVCIsIl94'@; put 'bGZuLkYuVEVTVCI6IkYuVEVTVCIsIl94bGZuLkZJTFRFUlhNTCI6IkZJTFRFUlhNTCIsIl94bGZuLkZMT09SLk1BVEgiOiJGTE9PUi5NQVRIIiwiX3hsZm4uRkxPT1IuUFJFQ0lTRSI6IkZMT09SLlBSRUNJU0UiLCJfeGxmbi5GT1JFQ0FTVC5FVFMiOiJGT1JFQ0FTVC5FVFMiLCJfeGxmbi5G'@; put 'T1JFQ0FTVC5FVFMuQ09ORklOVCI6IkZPUkVDQVNULkVUUy5DT05GSU5UIiwiX3hsZm4uRk9SRUNBU1QuRVRTLlNFQVNPTkFMSVRZIjoiRk9SRUNBU1QuRVRTLlNFQVNPTkFMSVRZIiwiX3hsZm4uRk9SRUNBU1QuRVRTLlNUQVQiOiJGT1JFQ0FTVC5FVFMuU1RBVCIsIl94bGZuLkZPUkVDQVNU'@; put 'LkxJTkVBUiI6IkZPUkVDQVNULkxJTkVBUiIsIl94bGZuLkZPUk1VTEFURVhUIjoiRk9STVVMQVRFWFQiLCJfeGxmbi5HQU1NQSI6IkdBTU1BIiwiX3hsZm4uR0FNTUEuRElTVCI6IkdBTU1BLkRJU1QiLCJfeGxmbi5HQU1NQS5JTlYiOiJHQU1NQS5JTlYiLCJfeGxmbi5HQU1NQUxOLlBSRUNJ'@; put 'U0UiOiJHQU1NQUxOLlBSRUNJU0UiLCJfeGxmbi5HQVVTUyI6IkdBVVNTIiwiX3hsZm4uSFlQR0VPTS5ESVNUIjoiSFlQR0VPTS5ESVNUIiwiX3hsZm4uSUZFUlJPUiI6IklGRVJST1IiLCJfeGxmbi5JRk5BIjoiSUZOQSIsIl94bGZuLklGUyI6IklGUyIsIl94bGZuLklNQ09TSCI6IklNQ09T'@; put 'SCIsIl94bGZuLklNQ09UIjoiSU1DT1QiLCJfeGxmbi5JTUNTQyI6IklNQ1NDIiwiX3hsZm4uSU1DU0NIIjoiSU1DU0NIIiwiX3hsZm4uSU1TRUMiOiJJTVNFQyIsIl94bGZuLklNU0VDSCI6IklNU0VDSCIsIl94bGZuLklNU0lOSCI6IklNU0lOSCIsIl94bGZuLklNVEFOIjoiSU1UQU4iLCJf'@; put 'eGxmbi5JU0ZPUk1VTEEiOiJJU0ZPUk1VTEEiLCJfeGxmbi5JU08uQ0VJTElORyI6IklTTy5DRUlMSU5HIiwiX3hsZm4uSVNPV0VFS05VTSI6IklTT1dFRUtOVU0iLCJfeGxmbi5MT0dOT1JNLkRJU1QiOiJMT0dOT1JNLkRJU1QiLCJfeGxmbi5MT0dOT1JNLklOViI6IkxPR05PUk0uSU5WIiwi'@; put 'X3hsZm4uTUFYSUZTIjoiTUFYSUZTIiwiX3hsZm4uTUlOSUZTIjoiTUlOSUZTIiwiX3hsZm4uTU9ERS5NVUxUIjoiTU9ERS5NVUxUIiwiX3hsZm4uTU9ERS5TTkdMIjoiTU9ERS5TTkdMIiwiX3hsZm4uTVVOSVQiOiJNVU5JVCIsIl94bGZuLk5FR0JJTk9NLkRJU1QiOiJORUdCSU5PTS5ESVNU'@; put 'IiwiX3hsZm4uTkVUV09SS0RBWVMuSU5UTCI6Ik5FVFdPUktEQVlTLklOVEwiLCJfeGxmbi5OSUdCSU5PTSI6Ik5JR0JJTk9NIiwiX3hsZm4uTk9STS5ESVNUIjoiTk9STS5ESVNUIiwiX3hsZm4uTk9STS5JTlYiOiJOT1JNLklOViIsIl94bGZuLk5PUk0uUy5ESVNUIjoiTk9STS5TLkRJU1Qi'@; put 'LCJfeGxmbi5OT1JNLlMuSU5WIjoiTk9STS5TLklOViIsIl94bGZuLk5VTUJFUlZBTFVFIjoiTlVNQkVSVkFMVUUiLCJfeGxmbi5QRFVSQVRJT04iOiJQRFVSQVRJT04iLCJfeGxmbi5QRVJDRU5USUxFLkVYQyI6IlBFUkNFTlRJTEUuRVhDIiwiX3hsZm4uUEVSQ0VOVElMRS5JTkMiOiJQRVJD'@; put 'RU5USUxFLklOQyIsIl94bGZuLlBFUkNFTlRSQU5LLkVYQyI6IlBFUkNFTlRSQU5LLkVYQyIsIl94bGZuLlBFUkNFTlRSQU5LLklOQyI6IlBFUkNFTlRSQU5LLklOQyIsIl94bGZuLlBFUk1VVEFUSU9OQSI6IlBFUk1VVEFUSU9OQSIsIl94bGZuLlBISSI6IlBISSIsIl94bGZuLlBPSVNTT04u'@; put 'RElTVCI6IlBPSVNTT04uRElTVCIsIl94bGZuLlFVQVJUSUxFLkVYQyI6IlFVQVJUSUxFLkVYQyIsIl94bGZuLlFVQVJUSUxFLklOQyI6IlFVQVJUSUxFLklOQyIsIl94bGZuLlFVRVJZU1RSSU5HIjoiUVVFUllTVFJJTkciLCJfeGxmbi5SQU5LLkFWRyI6IlJBTksuQVZHIiwiX3hsZm4uUkFO'@; put 'Sy5FUSI6IlJBTksuRVEiLCJfeGxmbi5SUkkiOiJSUkkiLCJfeGxmbi5TRUMiOiJTRUMiLCJfeGxmbi5TRUNIIjoiU0VDSCIsIl94bGZuLlNIRUVUIjoiU0hFRVQiLCJfeGxmbi5TSEVFVFMiOiJTSEVFVFMiLCJfeGxmbi5TS0VXLlAiOiJTS0VXLlAiLCJfeGxmbi5TVERFVi5QIjoiU1RERVYu'@; put 'UCIsIl94bGZuLlNUREVWLlMiOiJTVERFVi5TIiwiX3hsZm4uU1VNSUZTIjoiU1VNSUZTIiwiX3hsZm4uU1dJVENIIjoiU1dJVENIIiwiX3hsZm4uVC5ESVNUIjoiVC5ESVNUIiwiX3hsZm4uVC5ESVNULjJUIjoiVC5ESVNULjJUIiwiX3hsZm4uVC5ESVNULlJUIjoiVC5ESVNULlJUIiwiX3hs'@; put 'Zm4uVC5JTlYiOiJULklOViIsIl94bGZuLlQuSU5WLjJUIjoiVC5JTlYuMlQiLCJfeGxmbi5ULlRFU1QiOiJULlRFU1QiLCJfeGxmbi5URVhUSk9JTiI6IlRFWFRKT0lOIiwiX3hsZm4uVU5JQ0hBUiI6IlVOSUNIQVIiLCJfeGxmbi5VTklDT0RFIjoiVU5JQ09ERSIsIl94bGZuLlZBUi5QIjoi'@; put 'VkFSLlAiLCJfeGxmbi5WQVIuUyI6IlZBUi5TIiwiX3hsZm4uV0VCU0VSVklDRSI6IldFQlNFUlZJQ0UiLCJfeGxmbi5XRUlCVUxMLkRJU1QiOiJXRUlCVUxMLkRJU1QiLCJfeGxmbi5XT1JLREFZLklOVEwiOiJXT1JLREFZLklOVEwiLCJfeGxmbi5YT1IiOiJYT1IiLCJfeGxmbi5aLlRFU1Qi'@; put 'OiJaLlRFU1QifTtmdW5jdGlvbiBsUyh5KXtyZXR1cm4ib2Y6Ij09eS5zbGljZSgwLDMpJiYoeT15LnNsaWNlKDMpKSw2MT09eS5jaGFyQ29kZUF0KDApJiY2MT09KHk9eS5zbGljZSgxKSkuY2hhckNvZGVBdCgwKSYmKHk9eS5zbGljZSgxKSksKHk9KHk9KHk9eS5yZXBsYWNlKC9DT01cLk1J'@; put 'Q1JPU09GVFwuL2csIiIpKS5yZXBsYWNlKC9cWygoPzpcLltBLVpdK1swLTldKykoPzo6XC5bQS1aXStbMC05XSspPylcXS9nLGZ1bmN0aW9uKFAsTCl7cmV0dXJuIEwucmVwbGFjZSgvXC4vZywiIil9KSkucmVwbGFjZSgvXFsuKCNbQS1aXSpbPyFdKVxdL2csIiQxIikpLnJlcGxhY2UoL1s7'@; put 'fl0vZywiLCIpLnJlcGxhY2UoL1x8L2csIjsiKX1mdW5jdGlvbiBjUyh5KXtyZXR1cm4oIm9mOj0iK3kucmVwbGFjZShxOSwiJDFbLiQyJDMkNCQ1XSIpLnJlcGxhY2UoL1xdOlxbL2csIjoiKSkucmVwbGFjZSgvOy9nLCJ8IikucmVwbGFjZSgvLC9nLCI7Iil9ZnVuY3Rpb24geXYoeSl7dmFy'@; put 'IFA9eS5zcGxpdCgiOiIpO3JldHVybltQWzBdLnNwbGl0KCIuIilbMF0sUFswXS5zcGxpdCgiLiIpWzFdKyhQLmxlbmd0aD4xPyI6IisoUFsxXS5zcGxpdCgiLiIpWzFdfHxQWzFdLnNwbGl0KCIuIilbMF0pOiIiKV19ZnVuY3Rpb24gdVMoeSl7cmV0dXJuIHkucmVwbGFjZSgvXC4vLCIhIil9'@; put 'dmFyIGY2PXt9LFozPXt9O0hpLldTPVsiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiLCJodHRwOi8vcHVybC5vY2xjLm9yZy9vb3htbC9vZmZpY2VEb2N1bWVudC9yZWxhdGlvbnNoaXBzL3dvcmtz'@; put 'aGVldCJdO3ZhciBLMD10eXBlb2YgTWFwPCJ1IjtmdW5jdGlvbiB3dih5LFAsTCxRKXt2YXIgcmU9MCxnZT15Lmxlbmd0aDtpZihRKXtpZihLMD9RLmhhcyhQKTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUSxQKSlmb3IodmFyIF9lPUswP1EuZ2V0KFApOlFbUF07cmU8'@; put 'X2UubGVuZ3RoOysrcmUpaWYoeVtfZVtyZV1dLnQ9PT1QJiYoIXlbX2VbcmVdXS5yJiYhTHx8eVtfZVtyZV1dLnI9PUwpKXJldHVybiB5LkNvdW50KyssX2VbcmVdfWVsc2UgZm9yKDtyZTxnZTsrK3JlKWlmKHlbcmVdLnQ9PT1QJiYoIXlbcmVdLnImJiFMfHx5W3JlXS5yPT1MKSlyZXR1cm4g'@; put 'eS5Db3VudCsrLHJlO3JldHVybiB5W2dlXT17dDpQLHI6TH0seS5Db3VudCsrLHkuVW5pcXVlKyssUSYmKEswPyhRLmhhcyhQKXx8US5zZXQoUCxbXSksUS5nZXQoUCkucHVzaChnZSkpOihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUSxQKXx8KFFbUF09W10pLFFbUF0u'@; put 'cHVzaChnZSkpKSxnZX1mdW5jdGlvbiBZZCh5LFApe3ZhciBMPXttaW46eSsxLG1heDp5KzF9LFE9cGw7aWYoIVApcmV0dXJuIFA7dmFyIHJlPS0xO3JldHVybiBQLmF1dG8mJihMLmJlc3RGaXQ9MSxQLmJlc3R3aWR0aCYmKHJlPVAuYmVzdHdpZHRoKSxkZWxldGUgUC5iZXN0d2lkdGgpLG51'@; put 'bGwhPVAud3B4P3JlPXRmKFAud3B4KTpudWxsIT1QLndjaD9yZT1QLndjaDpudWxsIT1QLndpZHRoJiYoTC5jdXN0b21XaWR0aD0xKSxyZT4tMT8oTC53aWR0aD1qZChyZSksTC5jdXN0b21XaWR0aD0xKTpudWxsIT1QLndpZHRoJiYoTC53aWR0aD1QLndpZHRoKSxQLmhpZGRlbiYmKEwuaGlk'@; put 'ZGVuPSEwKSxMLmJlc3RGaXQmJmRlbGV0ZSBMLmN1c3RvbVdpZHRoLHBsPVEsbnVsbCE9UC5sZXZlbCYmKEwub3V0bGluZUxldmVsPUwubGV2ZWw9UC5sZXZlbCksbnVsbCE9UC5zdHlsZSYmKEwuc3R5bGU9UC5zdHlsZSksTH1mdW5jdGlvbiBOaSh5LFAsTCl7dmFyIFE9V3MoeVsiIXJlZiJd'@; put 'KSxyZT0wLGdlPXlbIiFtZXJnZXMiXXx8W10sX2U9QXJyYXkuaXNBcnJheSh5KTtlOmZvcih2YXIgdmU9MDt2ZTw9US5lLnI7Kyt2ZSl7Zm9yKHZhciBTZT0wO1NlPGdlLmxlbmd0aDsrK1NlKWlmKGdlW1NlXS5zLnI8PXZlJiZ2ZTw9Z2VbU2VdLmUuciYmZ2VbU2VdLnMuYzw9TCYmTDw9Z2Vb'@; put 'U2VdLmUuYyljb250aW51ZSBlO3ZhciBIZT1fZT8oeVt2ZV18fFtdKVtMXTp5W2RpKHtyOnZlLGM6TH0pXTtpZihIZSl7dmFyIEJlPTE7aWYoSGUucyYmKEJlPVZtKEhlLnMpL05tLkNhbGlicmlbMTJdfHwxKSxIZS53KXJlPU1hdGgubWF4KHJlLEhlLncubGVuZ3RoKkJlKTtlbHNlIHN3aXRj'@; put 'aChIZS50KXtjYXNlImIiOmNhc2UiZSI6cmU9TWF0aC5tYXgocmUsNSpCZSk7YnJlYWs7Y2FzZSJzIjpyZT1NYXRoLm1heChyZSxIZS52Lmxlbmd0aCpCZSoxLjJ8MCk7YnJlYWs7Y2FzZSJuIjpybShIZSxIZS52KSxyZT1NYXRoLm1heChyZSxTdHJpbmcoSGUud3x8SGUudikubGVuZ3RoKkJl'@; put 'KTticmVhaztjYXNlImQiOnJlPU1hdGgubWF4KHJlLDgqQmUpfX19cmU8MSYmKHJlPTEpLFAuYmVzdHdpZHRoPXJlfWZ1bmN0aW9uIGRmKHksUCl7aWYoeSl7dmFyIEw9Wy43LC43LC43NSwuNzUsLjMsLjNdOyJ4bG1sIj09UCYmKEw9WzEsMSwxLDEsLjUsLjVdKSxudWxsPT15LmxlZnQmJih5'@; put 'LmxlZnQ9TFswXSksbnVsbD09eS5yaWdodCYmKHkucmlnaHQ9TFsxXSksbnVsbD09eS50b3AmJih5LnRvcD1MWzJdKSxudWxsPT15LmJvdHRvbSYmKHkuYm90dG9tPUxbM10pLG51bGw9PXkuaGVhZGVyJiYoeS5oZWFkZXI9TFs0XSksbnVsbD09eS5mb290ZXImJih5LmZvb3Rlcj1MWzVdKX19'@; put 'ZnVuY3Rpb24gRm8oeSxQKXtmb3IodmFyIEw9bHQoUCksUT0wO1E8eS5sZW5ndGg7KytRKXt2YXIgcmU9ITAsZ2U9eVtRXTtpZihnZSYmTC5sZW5ndGg9PWx0KGdlKS5sZW5ndGgmJihMLmZvckVhY2goZnVuY3Rpb24oX2Upe2lmKHJlKXtpZihudWxsPT09UFtfZV0hPShudWxsPT09Z2VbX2Vd'@; put 'KSlyZXR1cm4gdm9pZChyZT0hMSk7aWYoIm9iamVjdCI9PXR5cGVvZiBQW19lXSlpZihbImNvbG9yIiwiZmdDb2xvciIsImJnQ29sb3IiXS5pbmRleE9mKF9lKT4tMSl7aWYoJDAoUFtfZV0sZ2VbX2VdKSlyZXR1cm4gdm9pZChyZT0hMSl9ZWxzZXtpZighKFsibGVmdCIsInJpZ2h0IiwidG9w'@; put 'IiwiYm90dG9tIl0uaW5kZXhPZihfZSk+LTEpKXJldHVybiB2b2lkKHJlPSExKTtpZihQbShQW19lXSxnZVtfZV0pKXJldHVybiB2b2lkKHJlPSExKX1pZihQW19lXSE9Z2VbX2VdKXJldHVybiB2b2lkKHJlPSExKX19KSxyZSkpcmV0dXJuIFF9cmV0dXJuIHlbeS5sZW5ndGhdPW9uKFApLHku'@; put 'bGVuZ3RoLTF9ZnVuY3Rpb24gZ3UoeSxQLEwsUSl7dmFyIHJlPVEucmV2c3NmW251bGwhPUwuej9MLno6IkdlbmVyYWwiXSxnZT02MCxfZT15Lmxlbmd0aDtpZihudWxsPT1yZSYmUS5zc2YpZm9yKDtnZTwzOTI7KytnZSlpZihudWxsPT1RLnNzZltnZV0pe3cubG9hZChMLnosZ2UpLFEuc3Nm'@; put 'W2dlXT1MLnosUS5yZXZzc2ZbTC56XT1yZT1nZTticmVha312YXIgdmU9MCxTZT0wLEhlPTAsQmU9MDtpZihRLmNlbGxTdHlsZXMpe2lmKEwucyl7aWYoUS5Gb250cyl7TC5zLmNvbG9yfHwoTC5zLmNvbG9yPXt0aGVtZToxLHJnYjoiMDAwMDAwIn0pO2Zvcih2YXIgR2U9KEwucy5ib2xkPzE6'@; put 'MCl8KEwucy5pdGFsaWM/MjowKXwoTC5zLnN0cmlrZT80OjApfChMLnMuc2hhZG93Pzg6MCk7dmU8US5Gb250cy5sZW5ndGg7Kyt2ZSl7dmFyIG50PVEuRm9udHNbdmVdO2lmKG51bGw9PW50LmZvbnRoYXNoJiYobnQuZm9udGhhc2g9KG50LmJvbGQ/MTowKXwobnQuaXRhbGljPzI6MCl8KG50'@; put 'LnN0cmlrZT80OjApfChudC5zaGFkb3c/ODowKSksIShHZSE9bnQuZm9udGhhc2h8fCEhTC5zLmNvbG9yIT0hIW50LmNvbG9yfHxMLnMudmFsaWduIT1udC52YWxpZ258fChMLnMuc3p8fG50LnN6KSYmKEwucy5zenx8MTIpIT0obnQuc3p8fDEyKXx8TC5zLm5hbWUmJkwucy5uYW1lIT1udC5u'@; put 'YW1lfHwoTC5zLnVuZGVybGluZXx8MCkhPShudC51bmRlcmxpbmV8fDApfHxMLnMuY29sb3ImJiQwKEwucy5jb2xvcixudC5jb2xvcikpKWJyZWFrfXZlPT1RLkZvbnRzLmxlbmd0aCYmKFEuRm9udHMucHVzaCh7c3o6TC5zLnN6fHwxMixjb2xvcjpMLnMuY29sb3J8fHt0aGVtZToxLHJnYjoi'@; put 'MDAwMDAwIn0sbmFtZTpMLnMubmFtZXx8IkNhbGlicmkiLGZhbWlseTpMLnMuZmFtaWx5fHwyLHNjaGVtZTpMLnMuc2NoZW1lLGJvbGQ6TC5zLmJvbGQsaXRhbGljOkwucy5pdGFsaWMsc3RyaWtlOkwucy5zdHJpa2Usc2hhZG93Okwucy5zaGFkb3csdmFsaWduOkwucy52YWxpZ24sdW5kZXJs'@; put 'aW5lOkwucy51bmRlcmxpbmV9KSwxPT1RLkZvbnRzLmxlbmd0aCYmWjEoUS5Gb250c1swXSkpfWlmKFEuRmlsbHMpe2Zvcig7U2U8US5GaWxscy5sZW5ndGg7KytTZSl7dmFyIGR0PVEuRmlsbHNbU2VdO2lmKCEhTC5zLnN0b3BzPT0hIWR0LnN0b3BzKXtpZihMLnMuc3RvcHMpe2lmKEwucy5h'@; put 'bmdsZSE9ZHQuYW5nbGUpY29udGludWU7dmFyIEN0PSEwO2lmKEwucy5zdG9wcy5mb3JFYWNoKGZ1bmN0aW9uKGt0LFR0KXskMChrdCxkdC5zdG9wc1tUdF0pJiYoQ3Q9ITEpLGt0LnYhPWR0LnN0b3BzW1R0XS52JiYoQ3Q9ITEpfSksIUN0KWNvbnRpbnVlfWVsc2V7aWYobnVsbD09TC5zLnBh'@; put 'dHRlcm5UeXBlJiZMLnMuZmdDb2xvciYmKEwucy5wYXR0ZXJuVHlwZT0ic29saWQiKSxudWxsPT1MLnMucGF0dGVyblR5cGUpYnJlYWs7aWYoTC5zLnBhdHRlcm5UeXBlIT1kdC5wYXR0ZXJuVHlwZXx8JDAoTC5zLmZnQ29sb3IsZHQuZmdDb2xvcil8fCQwKEwucy5iZ0NvbG9yLGR0LmJnQ29s'@; put 'b3IpKWNvbnRpbnVlfWJyZWFrfX1pZihTZT09US5GaWxscy5sZW5ndGgpe3ZhciBjdD17fTtMLnMuc3RvcHM/KG51bGwhPUwucy5hbmdsZSYmKGN0LmFuZ2xlPUwucy5hbmdsZSksY3Quc3RvcHM9W10sTC5zLnN0b3BzLmZvckVhY2goZnVuY3Rpb24oa3Qpe2N0LnN0b3BzLnB1c2gob24oa3Qp'@; put 'KX0pKTpjdD17cGF0dGVyblR5cGU6TC5zLnBhdHRlcm5UeXBlLGZnQ29sb3I6TC5zLmZnQ29sb3IsYmdDb2xvcjpMLnMuYmdDb2xvcn0sUS5GaWxscy5wdXNoKGN0KX19aWYoUS5Cb3JkZXJzKXtmb3IoO0hlPFEuQm9yZGVycy5sZW5ndGg7KytIZSl7dmFyIGJ0PVEuQm9yZGVyc1tIZV0sRnQ9'@; put 'InRvcCI7aWYoTC5zW0Z0XSl7aWYoIWJ0W0Z0XXx8TC5zW0Z0XS5zdHlsZSE9YnRbRnRdLnN0eWxlfHwkMChMLnNbRnRdLmNvbG9yLGJ0W0Z0XS5jb2xvcikpY29udGludWV9ZWxzZSBpZihudWxsIT1idFtGdF0pY29udGludWU7aWYoTC5zW0Z0PSJib3R0b20iXSl7aWYoIWJ0W0Z0XXx8TC5z'@; put 'W0Z0XS5zdHlsZSE9YnRbRnRdLnN0eWxlfHwkMChMLnNbRnRdLmNvbG9yLGJ0W0Z0XS5jb2xvcikpY29udGludWV9ZWxzZSBpZihudWxsIT1idFtGdF0pY29udGludWU7aWYoTC5zW0Z0PSJsZWZ0Il0pe2lmKCFidFtGdF18fEwuc1tGdF0uc3R5bGUhPWJ0W0Z0XS5zdHlsZXx8JDAoTC5zW0Z0'@; put 'XS5jb2xvcixidFtGdF0uY29sb3IpKWNvbnRpbnVlfWVsc2UgaWYobnVsbCE9YnRbRnRdKWNvbnRpbnVlO2lmKEwuc1tGdD0icmlnaHQiXSl7aWYoIWJ0W0Z0XXx8TC5zW0Z0XS5zdHlsZSE9YnRbRnRdLnN0eWxlfHwkMChMLnNbRnRdLmNvbG9yLGJ0W0Z0XS5jb2xvcikpY29udGludWV9ZWxz'@; put 'ZSBpZihudWxsIT1idFtGdF0pY29udGludWU7YnJlYWt9SGU9PVEuQm9yZGVycy5sZW5ndGgmJlEuQm9yZGVycy5wdXNoKHt0b3A6TC5zLnRvcCYmb24oTC5zLnRvcCl8fHZvaWQgMCxib3R0b206TC5zLmJvdHRvbSYmb24oTC5zLmJvdHRvbSl8fHZvaWQgMCxsZWZ0Okwucy5sZWZ0JiZvbihM'@; put 'LnMubGVmdCl8fHZvaWQgMCxyaWdodDpMLnMucmlnaHQmJm9uKEwucy5yaWdodCl8fHZvaWQgMH0pfWlmKFAmJkwucy5zdHlsZSYmIk5vcm1hbCIhPT1MLnMuc3R5bGUpe2ZvcihCZT0xO0JlPFAubGVuZ3RoJiZQW0JlXS5uYW1lIT1MLnMuc3R5bGU7KytCZSk7QmU9PVAubGVuZ3RoJiZQLnB1'@; put 'c2goe25hbWU6TC5zLnN0eWxlLG51bUZtdElkOnJlLGZvbnRJZDp2ZSxmaWxsSWQ6U2UsYm9yZGVySWQ6SGV9KX19Zm9yKGdlPTA7Z2UhPV9lOysrZ2UpaWYoeVtnZV0ubnVtRm10SWQ9PXJlJiZ5W2dlXS5mb250SWQ9PXZlJiZ5W2dlXS5maWxsSWQ9PVNlJiZ5W2dlXS5ib3JkZXJJZD09SGUm'@; put 'JnlbZ2VdLnhmSWQ9PUJlKXtpZihMLnMmJkwucy5hbGlnbm1lbnQpe2lmKCF5W2dlXS5hbGlnbm1lbnQpY29udGludWU7aWYoTC5zLmFsaWdubWVudC5ob3Jpem9udGFsIT15W2dlXS5hbGlnbm1lbnQuaG9yaXpvbnRhbHx8TC5zLmFsaWdubWVudC52ZXJ0aWNhbCE9eVtnZV0uYWxpZ25tZW50'@; put 'LnZlcnRpY2FsfHxMLnMuYWxpZ25tZW50LndyYXBUZXh0IT15W2dlXS5hbGlnbm1lbnQud3JhcFRleHR8fEwucy5hbGlnbm1lbnQuc2hyaW5rVG9GaXQhPXlbZ2VdLmFsaWdubWVudC5zaHJpbmtUb0ZpdHx8TC5zLmFsaWdubWVudC50ZXh0Um90YXRpb24hPXlbZ2VdLmFsaWdubWVudC50ZXh0'@; put 'Um90YXRpb258fEwucy5hbGlnbm1lbnQuaW5kZW50IT15W2dlXS5hbGlnbm1lbnQuaW5kZW50KWNvbnRpbnVlfWVsc2UgaWYoeVtnZV0uYWxpZ25tZW50KWNvbnRpbnVlO2lmKEwucyl7aWYoISFMLnMuaGlkZGVuPT0oIXlbZ2VdLnByb3RlY3Rpb258fCF5W2dlXS5wcm90ZWN0aW9uLmhpZGRl'@; put 'bil8fCEhTC5zLmVkaXRhYmxlPT0oIXlbZ2VdLnByb3RlY3Rpb258fCF5W2dlXS5wcm90ZWN0aW9uLmVkaXRhYmxlKSljb250aW51ZX1lbHNlIGlmKHlbZ2VdLnByb3RlY3Rpb24pY29udGludWU7cmV0dXJuIGdlfX1lbHNlIGZvcihnZT0wO2dlIT1fZTsrK2dlKWlmKHlbZ2VdLm51bUZtdElk'@; put 'PT09cmUpcmV0dXJuIGdlO3JldHVybiB5W19lXT17bnVtRm10SWQ6cmUsZm9udElkOnZlLGZpbGxJZDpTZSxib3JkZXJJZDpIZSx4ZklkOkJlLGFwcGx5TnVtYmVyRm9ybWF0OjF9LHZlPjAmJih5W19lXS5hcHBseUZvbnQ9MSksU2U+MCYmKHlbX2VdLmFwcGx5RmlsbD0xKSxIZT4wJiYoeVtf'@; put 'ZV0uYXBwbHlCb3JkZXI9MSksIVAmJkwucyYmTC5zLnN0eWxlJiYiTm9ybWFsIiE9TC5zLnN0eWxlJiYoeVtfZV0uc3R5bGU9TC5zLnN0eWxlKSxMLnMmJkwucy5hbGlnbm1lbnQmJih5W19lXS5hbGlnbm1lbnQ9e30sWyJob3Jpem9udGFsIiwidmVydGljYWwiLCJ3cmFwVGV4dCIsInNocmlu'@; put 'a1RvRml0IiwiaW5kZW50IiwidGV4dFJvdGF0aW9uIl0uZm9yRWFjaChmdW5jdGlvbihrdCl7bnVsbCE9TC5zLmFsaWdubWVudFtrdF0mJih5W19lXS5hbGlnbm1lbnRba3RdPUwucy5hbGlnbm1lbnRba3RdKX0pKSxMLnMmJkwucy5oaWRkZW4mJih5W19lXS5wcm90ZWN0aW9ufHwoeVtfZV0u'@; put 'cHJvdGVjdGlvbj17fSkseVtfZV0ucHJvdGVjdGlvbi5oaWRkZW49ITApLEwucyYmTC5zLmVkaXRhYmxlJiYoeVtfZV0ucHJvdGVjdGlvbnx8KHlbX2VdLnByb3RlY3Rpb249e30pLHlbX2VdLnByb3RlY3Rpb24uZWRpdGFibGU9ITApLF9lfWZ1bmN0aW9uIHA2KHksUCxMLFEscmUsZ2UsX2Us'@; put 'dmUpeyJkIj09PXkudCYmInN0cmluZyI9PXR5cGVvZiB5LnYmJih5LnY9SHQoeS52KSk7dHJ5e2dlLmNlbGxORiYmKHkuej13Ll90YWJsZVtQXSl9Y2F0Y2goSGUpe2lmKGdlLldURil0aHJvdyBIZX1pZigoIWdlfHwhMSE9PWdlLmNlbGxUZXh0KSYmInoiIT15LnQpdHJ5e2lmKG51bGw9PXcu'@; put 'X3RhYmxlW1BdJiZ3LmxvYWQoZGVbUF18fCJHZW5lcmFsIixQKSwiZSI9PT15LnQpeS53PXkud3x8UW9beS52XTtlbHNlIGlmKDA9PT1QKWlmKCJuIj09PXkudCl5Lnc9KDB8eS52KT09PXkudj93Ll9nZW5lcmFsX2ludCh5LnYpOncuX2dlbmVyYWxfbnVtKHkudik7ZWxzZSBpZigiZCI9PT15'@; put 'LnQpe3ZhciBTZT1VZSh5LnYpO3kudz0oMHxTZSk9PT1TZT93Ll9nZW5lcmFsX2ludChTZSk6dy5fZ2VuZXJhbF9udW0oU2UpfWVsc2V7aWYodm9pZCAwPT09eS52KXJldHVybiIiO3kudz13Ll9nZW5lcmFsKHkudixaMyl9ZWxzZSB5Lnc9dy5mb3JtYXQoUCwiZCI9PT15LnQ/VWUoeS52KTp5'@; put 'LnYsWjMpfWNhdGNoKEhlKXtpZihnZS5XVEYpdGhyb3cgSGV9aWYoZ2UuY2VsbFN0eWxlcyYmdmUpe2lmKHkucz17fSxudWxsIT1MJiZ2ZS5GaWxscyl0cnl7VXQoeS5zLHZlLkZpbGxzW0xdKX1jYXRjaChIZSl7aWYoZ2UuV1RGKXRocm93IEhlfWlmKG51bGwhPVEmJnZlLkZvbnRzKXRyeXtV'@; put 'dCh5LnMsdmUuRm9udHNbUV0pfWNhdGNoKEhlKXtpZihnZS5XVEYpdGhyb3cgSGV9aWYobnVsbCE9cmUmJnZlLkJvcmRlcnMpdHJ5e1V0KHkucyx2ZS5Cb3JkZXJzW3JlXSl9Y2F0Y2goSGUpe2lmKGdlLldURil0aHJvdyBIZX19fWZ1bmN0aW9uIHM1KHksUCxMKXtpZih5JiZ5WyIhcmVmIl0p'@; put 'e3ZhciBRPU9pKHlbIiFyZWYiXSk7aWYoUS5lLmM8US5zLmN8fFEuZS5yPFEucy5yKXRocm93IG5ldyBFcnJvcigiQmFkIHJhbmdlICgiK0wrIik6ICIreVsiIXJlZiJdKX19dmFyIEN2PS88KD86XHc6KT9tZXJnZUNlbGwgcmVmPSJbQS1aMC05Ol0rIlxzKltcL10/Pi9nLGE1PS88KD86XHcr'@; put 'Oik/c2hlZXREYXRhW14+XSo+KFtcc1xTXSopPFwvKD86XHcrOik/c2hlZXREYXRhPi8sZFM9LzwoPzpcdzopP2h5cGVybGluayBbXj5dKj4vZ20sJFo9LyIoXHcqOlx3KikiLyxTdj0vPCg/Olx3Oik/Y29sXGJbXj5dKltcL10/Pi9nLGhmPS88KD86XHc6KT9jb250cm9sXGJbXj5dKltcL10/'@; put 'Pi9nLGc2PS88KD86XHc6KT9hdXRvRmlsdGVyW14+XSooW1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9hdXRvRmlsdGVyKT4vZyxNdj0vPCg/Olx3Oik/cGFnZU1hcmdpbnNbXj5dKlwvPi9nLHh2PS88KD86XHc6KT9zaGVldFByXGIoPzpbXj5hLXpdW14+XSopP1wvPi8sVEk9LzwoPzpcdzop'@; put 'P3NoZWV0UHJvdGVjdGlvblxiKD86W14+YS16XVtePl0qKT9cLz4vLERJPS88KD86XHc6KT9zaGVldFByW14+XSooPzpbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP3NoZWV0UHIpPi8sSUk9LzwoPzpcdzopP3NoZWV0Vmlld3NbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/c2hl'@; put 'ZXRWaWV3cyk+LyxoUz0vPCg/Olx3KzopP2RhdGFWYWxpZGF0aW9uc1tePl0qKD86W1wvXXw+KFtcc1xTXSo/KTxcLyg/Olx3KzopP2RhdGFWYWxpZGF0aW9ucyk+LyxtNj0vPCg/Olx3KzopP2NvbmRpdGlvbmFsRm9ybWF0dGluZ1xiW14+XSooPzpbXC9dfD4oW1xzXFNdKj8pPFwvKD86XHcr'@; put 'Oik/Y29uZGl0aW9uYWxGb3JtYXR0aW5nKT4vZyxmZj0vPCg/Olx3Oik/c2hlZXRGb3JtYXRQcltePl0qXC8+LyxFdj0vPCg/Olx3KzopP3RhYmxlUGFydHMuKj8+KFtcc1xTXSo/KTxcLyg/Olx3KzopP3RhYmxlUGFydHM+LyxXMz0vPCg/Olx3Oik/cGFnZVNldHVwW14+XSpcLz4vLFdkPS88'@; put 'KD86XHc6KT9yb3dCcmVha3NbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/cm93QnJlYWtzKT4vLGZTPS88KD86XHc6KT9jb2xCcmVha3NbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/Y29sQnJlYWtzKT4vLHFaPS88KD86XHc6KT9oZWFkZXJGb290ZXJbXj5dKig/'@; put 'OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/aGVhZGVyRm9vdGVyKT4vLExJPS88KD86XHc6KT9wcmludE9wdGlvbnNcYltePlwvXSpcLz4vO3ZhciBwUz0vPCg/Olx3Oik/dGFibGVQYXJ0XGJbXlwvPl0qW1wvXT8+L2c7ZnVuY3Rpb24gdjYoeSxQLEwsUSl7dmFyIHJlPWxuKHkpO0wuU2hl'@; put 'ZXRzW1FdfHwoTC5TaGVldHNbUV09e30pLHJlLmNvZGVOYW1lJiYoTC5TaGVldHNbUV0uQ29kZU5hbWU9cmUuY29kZU5hbWUpfXZhciBfNj0vPCg/Olx3Oik/dGFiQ29sb3JbXj5dKltcL10/Pi8sbVM9LzwoPzpcdzopP3BhZ2VTZXRVcFByW14+XSpbXC9dPz4vLHZTPS88KD86XHc6KT9vdXRs'@; put 'aW5lUHJbXj5dKltcL10/Pi8sQ2U9e2Rpc3BsYXllZDoiYXNEaXNwbGF5ZWQiLGVuZDoiYXRFbmQiLG5vbmU6Im5vbmUifSxrdj1iZShDZSksUkk9e2Rpc3BsYXllZDoiZGlzcGxheWVkIixub25lOiJibGFuayIsZGFzaDoiZGFzaCIsIm4vYSI6Ik5BIn0sYlM9YmUoUkkpLENTPS88KD86XHc6'@; put 'KT9icmtbXj5dKlwvPi9nLEF2PVsib2JqZWN0cyIsInNjZW5hcmlvcyIsInNlbGVjdExvY2tlZENlbGxzIiwic2VsZWN0VW5sb2NrZWRDZWxscyJdLFR2PVsiZm9ybWF0Q29sdW1ucyIsImZvcm1hdFJvd3MiLCJmb3JtYXRDZWxscyIsImluc2VydENvbHVtbnMiLCJpbnNlcnRSb3dzIiwiaW5z'@; put 'ZXJ0SHlwZXJsaW5rcyIsImRlbGV0ZUNvbHVtbnMiLCJkZWxldGVSb3dzIiwic29ydCIsImF1dG9GaWx0ZXIiLCJwaXZvdFRhYmxlcyJdO2Z1bmN0aW9uIHhTKHkpe3ZhciBQPXt9O3JldHVyblsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIiwiaGVhZGVyIiwiZm9vdGVyIl0uZm9yRWFj'@; put 'aChmdW5jdGlvbihMKXt5W0xdJiYoUFtMXT1wYXJzZUZsb2F0KHlbTF0pKX0pLFB9dmFyIHk2PXtDdXN0b206ImN1c3RvbSIsRGF0ZToiZGF0ZSIsVGltZToidGltZSIsTGVuZ3RoOiJ0ZXh0TGVuZ3RoIixMaXN0OiJsaXN0IixEZWNpbWFsOiJkZWNpbWFsIixXaG9sZToid2hvbGUiLEFueToi'@; put 'bm9uZSJ9LGtTPWJlKHk2KSwkMz17SU46ImJldHdlZW4iLE9UOiJub3RCZXR3ZWVuIixFUToiZXF1YWwiLE5FOiJub3RFcXVhbCIsR1Q6ImdyZWF0ZXJUaGFuIixMVDoibGVzc1RoYW4iLEdFOiJncmVhdGVyVGhhbk9yRXF1YWwiLExFOiJsZXNzVGhhbk9yRXF1YWwifSxBUz1iZSgkMyk7ZnVu'@; put 'Y3Rpb24gVFMoeSxQLEwpe3ZhciBRPVtdLHJlPXt9LGdlPSIiLF9lPSExLHZlPTAsU2U9MDtyZXR1cm4geS5yZXBsYWNlKCR0LGZ1bmN0aW9uKEhlLEJlKXt2YXIgR2U9bG4oSGUpO3N3aXRjaChqbihHZVswXSkpe2Nhc2UiPGRhdGFWYWxpZGF0aW9ucyI6Y2FzZSI8ZGF0YVZhbGlkYXRpb25z'@; put 'PiI6Y2FzZSI8L2RhdGFWYWxpZGF0aW9ucz4iOmJyZWFrO2Nhc2UiPGRhdGFWYWxpZGF0aW9uIjpyZT17dDprU1tHZS50eXBlfHwibm9uZSJdLHJlZjooZ2U9R2Uuc3FyZWYpP2dlLmluZGV4T2YoIiAiKT4tMT9nZTpPaShnZSk6IiJ9LEdlLm9wZXJhdG9yJiYocmUub3A9QVNbR2Uub3BlcmF0'@; put 'b3JdKSxyZS5ibGFuaz0hIUdlLmFsbG93QmxhbmsmJnlyKEdlLmFsbG93QmxhbmspLCghR2Uuc2hvd0lucHV0TWVzc2FnZXx8IXlyKEdlLnNob3dJbnB1dE1lc3NhZ2UpKSYmKHJlLmlucHV0PSExKSxHZS5wcm9tcHRUaXRsZSYmKChyZS5pbnB1dHx8KHJlLmlucHV0PXt9KSkudGl0bGU9eHIo'@; put 'R2UucHJvbXB0VGl0bGUpKSxHZS5wcm9tcHQmJigocmUuaW5wdXR8fChyZS5pbnB1dD17fSkpLm1lc3NhZ2U9eHIoR2UucHJvbXB0KSksKCFHZS5zaG93RXJyb3JNZXNzYWdlfHwheXIoR2Uuc2hvd0Vycm9yTWVzc2FnZSkpJiYocmUuZXJyb3I9ITEpLEdlLmVycm9yVGl0bGUmJigocmUuZXJy'@; put 'b3J8fChyZS5lcnJvcj17fSkpLnRpdGxlPXhyKEdlLmVycm9yVGl0bGUpKSxHZS5lcnJvciYmKChyZS5lcnJvcnx8KHJlLmVycm9yPXt9KSkubWVzc2FnZT14cihHZS5lcnJvcikpLHJlLmVycm9yP3JlLmVycm9yLnN0eWxlPUdlLmVycm9yU3R5bGV8fCJzdG9wIjpHZS5lcnJvclN0eWxlJiYo'@; put 'cmUuZXJyb3I9e3N0eWxlOkdlLmVycm9yU3R5bGV9KSxyZS50JiZRLnB1c2gocmUpO2JyZWFrO2Nhc2UiPGRhdGFWYWxpZGF0aW9uLz4iOmNhc2UiPC9kYXRhVmFsaWRhdGlvbj4iOmJyZWFrO2Nhc2UiPHNxcmVmPiI6U2U9QmUrSGUubGVuZ3RoO2JyZWFrO2Nhc2UiPC9zcXJlZj4iOmdlPXku'@; put 'c2xpY2UoU2UsQmUpLHJlLnJlZj1nZT9nZS5pbmRleE9mKCIgIik+LTE/Z2U6T2koZ2UpOiIiO2JyZWFrO2Nhc2UiPGY+IjpjYXNlIjxmb3JtdWxhMSI6Y2FzZSI8Zm9ybXVsYTE+IjpjYXNlIjxmb3JtdWxhMiI6Y2FzZSI8Zm9ybXVsYTI+Ijp2ZT1CZStIZS5sZW5ndGg7YnJlYWs7Y2FzZSI8'@; put 'L2Zvcm11bGExPiI6Y2FzZSI8L2Zvcm11bGEyPiI6aWYoTClicmVhaztjYXNlIjwvZj4iOnZhciBudD14cihQaSh5LnNsaWNlKHZlLEJlKSkpO3N3aXRjaChyZS50KXtjYXNlIkxpc3QiOmlmKHJlLmx8fHJlLmYpYnJlYWs7aWYoMzQ9PW50LmNoYXJDb2RlQXQoMCkpe3JlLmw9bnQuc2xpY2Uo'@; put 'MSwtMSkuc3BsaXQoIiwiKTticmVha31jYXNlIkN1c3RvbSI6bnVsbD09cmUuZiYmKHJlLmY9bnQpO2JyZWFrO2Nhc2UiRGF0ZSI6Y2FzZSJEZWNpbWFsIjpjYXNlIkxlbmd0aCI6Y2FzZSJUaW1lIjpjYXNlIldob2xlIjpyZS5vcHx8KHJlLm9wPSJJTiIpLG51bGw9PXJlLnY/cmUudj1pc05h'@; put 'TigrbnQpP250OitudDoocmUubWluPXJlLnYscmUubWF4PWlzTmFOKCtudCk/bnQ6K250LGRlbGV0ZSByZS52KX1icmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOl9lPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpfZT0hMTti'@; put 'cmVhaztkZWZhdWx0OmlmKFAmJlAuV1RGJiYhX2UpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitHZVswXSsiIGluIGRhdGEgdmFsaWRhdGlvbiIpfXJldHVybiBIZX0pLFF9dmFyIFJ2PXtJTjoiY29udGFpbnNUZXh0IixPVDoibm90Q29udGFpbnNUZXh0IixTVDoiYmVnaW5zV2l0'@; put 'aCIsTkQ6ImVuZHNXaXRoIn0sRFM9YmUoUnYpLElTPXtMTToibGFzdE1vbnRoIixMUzoibGFzdDdEYXlzIixMVzoibGFzdFdlZWsiLE5NOiJuZXh0TW9udGgiLE5XOiJuZXh0V2VlayIsVE06InRoaXNNb250aCIsVFc6InRoaXNXZWVrIixURDoidG9kYXkiLFRPOiJ0b21vcnJvdyIsWVM6Inll'@; put 'c3RlcmRheSJ9LFZJPWJlKElTKTtmdW5jdGlvbiB3Nih5KXt2YXIgUD17fTtyZXR1cm4gbnVsbCE9eS52YWwmJihpc05hTigreS52YWwpP1AuZj15LnZhbDpQLnY9K3kudmFsKSxQLnQ9eS50eXBlLFB9ZnVuY3Rpb24gcGYoeSl7cmV0dXJuIFNyKCJjZnZvIixudWxsLHt0eXBlOnkudCx2YWw6'@; put 'bnVsbCE9eS52P3kudjpIcih5LmYpfSl9ZnVuY3Rpb24gQzYoeSxQLEwsUSl7dmFyIHJlPXc2KHkpO3JldHVybiByZS5jb2xvcj1VMihQLEwsUSkscmV9ZnVuY3Rpb24gTFMoeSxQLEwsUSxyZSl7dmFyIGdlPSh5Lm1hdGNoKC9zcXJlZj0iKFtcdzokIF0qKSIvKXx8W10pWzFdO3JldHVybiBm'@; put 'dW5jdGlvbiBCSSh5LFAsTCxRLHJlLGdlKXt2YXIgX2U9ITEsdmU9W10sU2U9e2Y6W119LEhlPTAsQmU9MCxHZT17Y2Z2b3M6W10sY29sb3JzOltdfSxudD17fSxkdD0tMSxDdD0wLGN0PSIiO3JldHVybiB5LnJlcGxhY2UoJHQsZnVuY3Rpb24oYnQsRnQpe3ZhciBrdD1sbihidCk7c3dpdGNo'@; put 'KGpuKGt0WzBdKSl7Y2FzZSI8Y29uZGl0aW9uYWxGb3JtYXR0aW5nIjpjYXNlIjwvY29uZGl0aW9uYWxGb3JtYXR0aW5nPiI6YnJlYWs7Y2FzZSI8Y2ZSdWxlIjpjYXNlIjxjZlJ1bGU+IjppZihCZT1GdCxudD1rdCxTZT17cmVmOlAsZjpbXX0sIWJ0Lm1hdGNoKC9cLz4vKSlicmVhaztjYXNl'@; put 'IjwvY2ZSdWxlPiI6c3dpdGNoKG50LmR4ZklkJiZyZSYmcmUuRFhGJiYoU2Uucz1yZS5EWEZbK250LmR4ZklkXSksbnQudHlwZSl7Y2FzZSJkdXBsaWNhdGVWYWx1ZXMiOlNlLnQ9ImR1cCI7YnJlYWs7Y2FzZSJ1bmlxdWVWYWx1ZXMiOlNlLnQ9InVuaXF1ZSI7YnJlYWs7Y2FzZSJjb250YWlu'@; put 'c0JsYW5rcyI6U2UudD0iYmxhbmsiLFNlLnY9ITA7YnJlYWs7Y2FzZSJub3RDb250YWluc0JsYW5rcyI6U2UudD0iYmxhbmsiLFNlLnY9ITE7YnJlYWs7Y2FzZSJjb250YWluc0Vycm9ycyI6U2UudD0iZXJyb3IiLFNlLnY9ITA7YnJlYWs7Y2FzZSJub3RDb250YWluc0Vycm9ycyI6U2UudD0i'@; put 'ZXJyb3IiLFNlLnY9ITE7YnJlYWs7Y2FzZSJjZWxsSXMiOnN3aXRjaChudC5vcGVyYXRvcil7Y2FzZSJjb250YWluc1RleHQiOmNhc2Uibm90Q29udGFpbnMiOmNhc2UiYmVnaW5zV2l0aCI6Y2FzZSJlbmRzV2l0aCI6aWYoU2UudD0idGV4dCIsU2Uub3A9RFNbbnQub3BlcmF0b3JdLG51bGw9'@; put 'PW50LnRleHQpdGhyb3cgbmV3IEVycm9yKCJDRiBUZXh0IFJ1bGUgIitTZS5vcCsiIG1pc3NpbmcgdGV4dCIpO1NlLnY9bnQudGV4dCxTZS5mPVNlLmZbMF0sbnVsbD09U2UuZiYmZGVsZXRlIFNlLmY7YnJlYWs7ZGVmYXVsdDpTZS50PSJ2YWwiLFNlLm9wPUFTW250Lm9wZXJhdG9yXSwxPT1T'@; put 'ZS5mLmxlbmd0aD9pc05hTigrU2UuZlswXSk/U2UuZj1TZS5mWzBdOihTZS52PStTZS5mWzBdLGRlbGV0ZSBTZS5mKTooU2UubWluPWlzTmFOKCtTZS5mWzBdKT9TZS5mWzBdOitTZS5mWzBdLFNlLm1heD1pc05hTigrU2UuZlsxXSk/U2UuZlsxXTorU2UuZlsxXSxkZWxldGUgU2UuZil9YnJl'@; put 'YWs7Y2FzZSJleHByZXNzaW9uIjpTZS50PSJmb3JtdWxhIixTZS5mPVNlLmZbMF07YnJlYWs7Y2FzZSJjb250YWluc1RleHQiOmNhc2Uibm90Q29udGFpbnNUZXh0IjpjYXNlImJlZ2luc1dpdGgiOmNhc2UiZW5kc1dpdGgiOmlmKFNlLnQ9InRleHQiLFNlLm9wPURTW250LnR5cGVdLG51bGw9'@; put 'PW50LnRleHQmJlNlLmYubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJDRiBUZXh0IFJ1bGUgIitTZS5vcCsiIG1pc3NpbmcgdGV4dCIpO1NlLnY9bnVsbCE9bnQudGV4dD9udC50ZXh0OlNlLmZbMV0ubWF0Y2goLyIuKiIvKT9TZS5mWzFdLnNsaWNlKDEsLTEpOlNlLmZbMV0sU2UuZj1TZS5m'@; put 'WzBdLG51bGw9PVNlLmYmJmRlbGV0ZSBTZS5mO2JyZWFrO2Nhc2UiY29sb3JTY2FsZSI6aWYoU2UudD0ic2NhbGUiLCFTZS5jb2xvclNjYWxlKXRocm93IG5ldyBFcnJvcigibWlzc2luZyBjb2xvclNjYWxlIik7U2UuY21pbj1DNigoR2U9U2UuY29sb3JTY2FsZSkuY2Z2b3NbMF0sR2UuY29s'@; put 'b3JzWzBdLHJlLFEpLDM9PUdlLmNmdm9zLmxlbmd0aCYmKFNlLmNtaWQ9QzYoR2UuY2Z2b3NbMV0sR2UuY29sb3JzWzFdLHJlLFEpKSxTZS5jbWF4PUM2KEdlLmNmdm9zW0dlLmNmdm9zLmxlbmd0aC0xXSxHZS5jb2xvcnNbR2UuY2Z2b3MubGVuZ3RoLTFdLHJlLFEpO2JyZWFrO2Nhc2UiZGF0'@; put 'YUJhciI6aWYoU2UudD0iYmFyIiwhU2UuZGF0YUJhcil0aHJvdyBuZXcgRXJyb3IoIm1pc3NpbmcgZGF0YUJhciIpOyhHZT1TZS5kYXRhQmFyKS5jb2xvcnNbMF0mJihTZS5jb2xvcj1VMihHZS5jb2xvcnNbMF0scmUsUSkpLFNlLmNtaW49dzYoR2UuY2Z2b3NbMF0pLFNlLmNtYXg9dzYoR2Uu'@; put 'Y2Z2b3NbMV0pO2JyZWFrO2Nhc2UiaWNvblNldCI6aWYoU2UudD0iaWNvbiIsIVNlLmljb25TZXQpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nIGljb25TZXQiKTtTZS50aHJlc2g9KEdlPVNlLmljb25TZXQpLmNmdm9zLm1hcChmdW5jdGlvbihUdCl7cmV0dXJuIHc2KFR0KX0pLFNlLnY9R2Uu'@; put 'dGFnJiZHZS50YWcuaWNvblNldHx8IjNUcmFmZmljTGlnaHRzMSIsU2UucmV2PXlyKEdlLnRhZy5yZXZlcnNlfHwiZmFsc2UiKSxTZS5wY3Q9eXIoR2UudGFnLnBlcmNlbnR8fCJ0cnVlIiksU2UuaGlkZGVuPSF5cihHZS50YWcuc2hvd1ZhbHVlfHwidHJ1ZSIpO2JyZWFrO2Nhc2UidGltZVBl'@; put 'cmlvZCI6U2UudD0iZGF0ZSIsU2Uub3A9VklbbnQudGltZVBlcmlvZF07YnJlYWs7Y2FzZSJhYm92ZUF2ZXJhZ2UiOlNlLnQ9ImF2ZyIsU2Uub3A9IjAiPT1udC5hYm92ZUF2ZXJhZ2U/IkwiOiJHIixTZS5vcCs9bnQuc3RkRGV2P250LnN0ZERldjp5cihudC5lcXVhbEF2ZXJhZ2V8fCIwIik/'@; put 'IkUiOiJUIjticmVhaztjYXNlInRvcDEwIjpTZS50PSJyYW5rIixTZS5vcD0oeXIobnQuYm90dG9tfHwiMCIpPyJCIjoiVCIpKyh5cihudC5wZXJjZW50fHwiMCIpPyJQIjoiViIpLFNlLnY9K250LnJhbms7YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnN1cHBvcnRlZCBDRiBUeXBlICIrbnQudHlw'@; put 'ZX1pZihkZWxldGUgU2UuY29sb3JTY2FsZSxkZWxldGUgU2UuZGF0YUJhcixkZWxldGUgU2UuaWNvblNldCwhU2UudCl0aHJvdyBjb25zb2xlLmxvZyh5LnNsaWNlKEJlLEZ0K2J0Lmxlbmd0aCkpLCJiYWQgQ0YgcnVsZSI7bnVsbCE9U2UuZiYmIVNlLmYubGVuZ3RoJiZkZWxldGUgU2UuZixT'@; put 'ZS5kZWx8fHZlLnB1c2goU2UpO2JyZWFrO2Nhc2UiPGZvcm11bGEiOmNhc2UiPGZvcm11bGE+IjpIZT1GdCtidC5sZW5ndGg7YnJlYWs7Y2FzZSI8L2Zvcm11bGE+IjpTZS5mLnB1c2goeHIoeS5zbGljZShIZSxGdCkpKTticmVhaztjYXNlIjxmIjpjYXNlIjxmPiI6SGU9RnQrYnQubGVuZ3Ro'@; put 'O2JyZWFrO2Nhc2UiPC9mPiI6U2UuZi5wdXNoKHhyKHkuc2xpY2UoSGUsRnQpKSk7YnJlYWs7Y2FzZSI8c3FyZWY+IjpDdD1GdCtidC5sZW5ndGg7YnJlYWs7Y2FzZSI8L3NxcmVmPiI6Y3Q9eS5zbGljZShDdCxGdCksUD1jdD9jdC5pbmRleE9mKCIgIik+LTE/Y3Q6T2koY3QpOiIiLFNlLnJl'@; put 'Zj1QLHZlLmZvckVhY2goZnVuY3Rpb24oVHQpe1R0LnJlZj1QfSk7YnJlYWs7Y2FzZSI8Y29sb3JTY2FsZSI6Y2FzZSI8Y29sb3JTY2FsZT4iOmNhc2UiPGRhdGFCYXIiOmNhc2UiPGRhdGFCYXI+IjpjYXNlIjxpY29uU2V0IjpjYXNlIjxpY29uU2V0PiI6R2U9e2Nmdm9zOltdLGNvbG9yczpb'@; put 'XSx0YWc6a3R9LEhlPUZ0K2J0Lmxlbmd0aDticmVhaztjYXNlIjwvY29sb3JTY2FsZT4iOlNlLmNvbG9yU2NhbGU9R2U7YnJlYWs7Y2FzZSI8L2RhdGFCYXI+IjpTZS5kYXRhQmFyPUdlO2JyZWFrO2Nhc2UiPC9pY29uU2V0PiI6U2UuaWNvblNldD1HZTticmVhaztjYXNlIjxjZnZvIjpjYXNl'@; put 'IjxjZnZvLz4iOkdlLmNmdm9zLnB1c2goa3QpO2JyZWFrO2Nhc2UiPC9jZnZvPiI6YnJlYWs7Y2FzZSI8Y29sb3IiOkdlLmNvbG9ycy5wdXNoKGt0KTticmVhaztjYXNlIjwvY29sb3I+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxl'@; put 'eHQiOl9lPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpfZT0hMTticmVhaztjYXNlIjxuZWdhdGl2ZUZpbGxDb2xvciI6Y2FzZSI8YXhpc0NvbG9yIjpjYXNlIjxib3JkZXJDb2xvciI6Y2FzZSI8bmVnYXRpdmVCb3JkZXJDb2xvciI6Y2FzZSI8Y2ZJY29uIjpTZS5kZWw9ITA7YnJlYWs7Y2FzZSI8'@; put 'ZHhmPiI6X2U9ITAsZHQ9RnQ7YnJlYWs7Y2FzZSI8L2R4Zj4iOl9lPSExLFNlLnM9eEQoeS5zbGljZShkdCxGdCtidC5sZW5ndGgpLHJlLFEsTCk7YnJlYWs7ZGVmYXVsdDppZihMJiZMLldURil7aWYoZ2UpYnJlYWs7aWYoIV9lKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIra3Rb'@; put 'MF0rIiBpbiBjb25kZm10Iil9fXJldHVybiBidH0pLHZlfSh5LGdlLFAsTCxRLHJlKX12YXIgekk9LzwoPzpcdzopP3NoZWV0Vmlldyg/OltePmEtel1bXj5dKik/XC8/Pi9nO2Z1bmN0aW9uIGM1KHksUCl7dmFyIEw9MCxRPTAscmU9MCxnZT0wO2lmKCFQfHwhUC5DZWxsWGYpcmV0dXJuIG51'@; put 'bGw7dmFyIF9lPVAuQ2VsbFhmW3ldO251bGwhPV9lJiYobnVsbCE9X2UubnVtRm10SWQmJihMPV9lLm51bUZtdElkKSxudWxsIT1fZS5maWxsSWQmJihRPV9lLmZpbGxJZCksbnVsbCE9X2UuZm9udElkJiYocmU9X2UuZm9udElkKSxudWxsIT1fZS5ib3JkZXJJZCYmKGdlPV9lLmJvcmRlcklk'@; put 'KSk7dmFyIHZlPXt0OiJ6In07dHJ5e3A2KHZlLEwsUSxyZSxnZSx7V1RGOjEsY2VsbFN0eWxlczohMH0sMCxQKX1jYXRjaHt9cmV0dXJuIHZlLnN9ZnVuY3Rpb24gVUkoeSxQLEwsUSl7aWYodm9pZCAwPT09eS52JiZ2b2lkIDA9PT15LmYmJm51bGw9PXkucyYmIXkuY3x8InoiPT09eS50JiYh'@; put 'eS5jJiYhUS5zaGVldFN0dWJzKXJldHVybiIiO3ZhciByZT0iIixnZT15LnQsX2U9eS52O2lmKCJ6IiE9PXkudClzd2l0Y2goeS50KXtjYXNlImIiOnJlPXkudj8iMSI6IjAiO2JyZWFrO2Nhc2UibiI6cmU9IiIreS52O2JyZWFrO2Nhc2UiZSI6cmU9UW9beS52XTticmVhaztjYXNlImQiOlEm'@; put 'JlEuY2VsbERhdGVzP3JlPUh0KHkudiwtMSkudG9JU09TdHJpbmcoKTooKHk9b24oeSkpLnQ9Im4iLHJlPSIiKyh5LnY9VWUoSHQoeS52KSkpKSx0eXBlb2YgeS56PiJ1IiYmKHkuej13Ll90YWJsZVsxNF0pO2JyZWFrO2RlZmF1bHQ6cmU9eS52fXZhciB2ZT0ieiI9PXkudD8iIjpmcygidiIs'@; put 'SHIocmUpKSxTZT17cjpQfSxIZT1RP2d1KFEuY2VsbFhmcyxRLmNlbGxTdHlsZVhmcyx5LFEpOjA7c3dpdGNoKDAhPT1IZSYmKFNlLnM9SGUpLHkudCl7Y2FzZSJuIjpjYXNlInoiOmJyZWFrO2Nhc2UiZCI6U2UudD0iZCI7YnJlYWs7Y2FzZSJiIjpTZS50PSJiIjticmVhaztjYXNlImUiOlNl'@; put 'LnQ9ImUiO2JyZWFrO2RlZmF1bHQ6aWYobnVsbD09eS52KXtkZWxldGUgeS50O2JyZWFrfWlmKFEmJlEuYm9va1NTVCl7dmU9ZnMoInYiLCIiK3d2KFEuU3RyaW5ncyx5LnYseS5SP3kucj1KaCh5LlIpOm51bGwsUS5yZXZTdHJpbmdzKSksU2UudD0icyI7YnJlYWt9QXJyYXkuaXNBcnJheSh5'@; put 'LlIpPyh2ZT0iPGlzPiIrSmgoeS5SKSsiPC9pcz4iLFNlLnQ9ImlubGluZVN0ciIpOlNlLnQ9InN0ciJ9aWYoeS50IT1nZSYmKHkudD1nZSx5LnY9X2UpLHkuZil7dmFyIEJlPXkuRiYmeS5GLnNsaWNlKDAsUC5sZW5ndGgpPT1QP3t0OiJhcnJheSIscmVmOnkuRn06bnVsbDt2ZT1TcigiZiIs'@; put 'SHIoeS5mKSxCZSkrKG51bGwhPXkudj92ZToiIil9cmV0dXJuIHkubCYmTFsiIWxpbmtzIl0ucHVzaChbUCx5LmxdKSx5LmMmJkxbIiFjb21tZW50cyJdLnB1c2goW1AseS5jXSksU3IoImMiLHZlLFNlKX12YXIgWkk9ZnVuY3Rpb24oKXt2YXIgeT0vPCg/Olx3KzopP2NbIFwvPl0vLFA9Lzxc'@; put 'Lyg/Olx3KzopP3Jvdz4vLEw9L3I9WyInXShbXiInXSopWyInXS8sUT0vPCg/Olx3KzopP2lzPihbXFNcc10qPyk8XC8oPzpcdys6KT9pcz4vLHJlPS9yZWY9WyInXShbXiInXSopWyInXS8sZ2U9dWwoInYiKSxfZT11bCgiZiIpO3JldHVybiBmdW5jdGlvbihTZSxIZSxCZSxHZSxudCxkdCxD'@; put 'dCl7Zm9yKHZhciB1bixxbixlcix0cixRcixjdD0wLGJ0PSIiLEZ0PVtdLGt0PVtdLFR0PTAsWnQ9MCxwbj0wLEtuPSIiLHpuPTAsa249MCxabj0wLEJyPTAsc2k9MCx4aT0wLExpPUFycmF5LmlzQXJyYXkoQ3QuQ2VsbFhmKSx1cj1bXSxBbj1bXSx2cj1BcnJheS5pc0FycmF5KEJlKSxycj1b'@; put 'XSxTbj17fSxtcj0hMSx3aT1TZS5zcGxpdChQKSxVcj0hIUdlLnNoZWV0U3R1YnMsamk9ISFHZS5jZWxsSFRNTCxfbz0hKCExPT09R2UuY2VsbFRleHQmJiFHZS5jZWxsTkYmJiFHZS5jZWxsU3R5bGVzKSxUaT0wLFlvPXdpLmxlbmd0aDtUaSE9WW87KytUaSl7dmFyIGxvPShidD13aVtUaV0u'@; put 'dHJpbSgpKS5sZW5ndGg7aWYoMCE9PWxvKXt2YXIgQW89MDtlOmZvcihjdD0wO2N0PGxvOysrY3Qpc3dpdGNoKGJ0W2N0XSl7Y2FzZSI+IjppZigiLyIhPWJ0W2N0LTFdKXsrK2N0O2JyZWFrIGV9R2UuY2VsbFN0eWxlcyYmbnVsbCE9KHFuPWxuKGJ0LnNsaWNlKEFvLGN0KSwhMCkpLnImJnBh'@; put 'cnNlSW50KHFuLnIsMTApJiYoem49cGFyc2VJbnQocW4uciwxMCksU249e30sbXI9ITEscW4uaHQmJihtcj0hMCxTbi5ocHQ9cGFyc2VGbG9hdChxbi5odCksU24uaHB4PVUxKFNuLmhwdCkpLHFuLmR5RGVzY2VudCYmKG1yPSEwLFNuLmR5RGVzY2VudD1xbi5keURlc2NlbnQpLCIxIj09cW4u'@; put 'aGlkZGVuJiYobXI9ITAsU24uaGlkZGVuPSEwKSxudWxsIT1xbi5vdXRsaW5lTGV2ZWwmJihtcj0hMCxTbi5sZXZlbD0rcW4ub3V0bGluZUxldmVsKSxxbi5zJiZDdCYmQ3QuQ2VsbFhmJiYobXI9ITAsU24ucz1jNShxbi5zLEN0KSksbXImJihyclt6bi0xXT1TbikpO2JyZWFrO2Nhc2UiPCI6'@; put 'QW89Y3R9aWYoQW8+PWN0KWJyZWFrO2lmKHpuPW51bGwhPShxbj1sbihidC5zbGljZShBbyxjdCksITApKS5yP3BhcnNlSW50KHFuLnIsMTApOnpuKzEsa249LTEsIShHZS5zaGVldFJvd3MmJkdlLnNoZWV0Um93czx6bikpe0dlLm5vZGltfHwobnQucy5yPnpuLTEmJihudC5zLnI9em4tMSks'@; put 'bnQuZS5yPHpuLTEmJihudC5lLnI9em4tMSkpO3ZhciB4bz17dDoicm93Iixyb3c6W10sUjp6bi0xLGlkeDpIZX07R2UuY2VsbFN0eWxlcyYmKFNuPXt9LG1yPSExLHFuLmh0JiYobXI9ITAsU24uaHB0PXBhcnNlRmxvYXQocW4uaHQpLFNuLmhweD1VMShTbi5ocHQpKSxxbi5keURlc2NlbnQm'@; put 'Jihtcj0hMCxTbi5keURlc2NlbnQ9cW4uZHlEZXNjZW50KSwiMSI9PXFuLmhpZGRlbiYmKG1yPSEwLFNuLmhpZGRlbj0hMCksbnVsbCE9cW4ub3V0bGluZUxldmVsJiYobXI9ITAsU24ubGV2ZWw9K3FuLm91dGxpbmVMZXZlbCkscW4ucyYmKG1yPSEwLFNuLnM9YzUocW4ucyxDdCkpLG1yJiYo'@; put 'R2UuY2FsbGJhY2s/eG8ucHJvcHM9U246cnJbem4tMV09U24pKSxGdD1idC5zbGljZShjdCkuc3BsaXQoeSk7Zm9yKHZhciBoaT0wO2hpIT1GdC5sZW5ndGgmJiI8Ij09RnRbaGldLnRyaW0oKS5jaGFyQXQoMCk7KytoaSk7Zm9yKEZ0PUZ0LnNsaWNlKGhpKSxjdD0wO2N0IT1GdC5sZW5ndGg7'@; put 'KytjdClpZigwIT09KGJ0PUZ0W2N0XS50cmltKCkpLmxlbmd0aCl7aWYoa3Q9YnQubWF0Y2goTCksVHQ9Y3QsWnQ9MCxwbj0wLGJ0PSI8YyAiKygiPCI9PWJ0LnNsaWNlKDAsMSk/Ij4iOiIiKStidCxudWxsIT1rdCYmMj09PWt0Lmxlbmd0aCl7Zm9yKFR0PTAsS249a3RbMV0sWnQ9MDtadCE9'@; put 'S24ubGVuZ3RoJiYhKChwbj1Lbi5jaGFyQ29kZUF0KFp0KS02NCk8MXx8cG4+MjYpOysrWnQpVHQ9MjYqVHQrcG47a249LS1UdH1lbHNlKytrbjtmb3IoWnQ9MDtadCE9YnQubGVuZ3RoJiY2MiE9PWJ0LmNoYXJDb2RlQXQoWnQpOysrWnQpO2lmKCsrWnQsKHFuPWxuKGJ0LnNsaWNlKDAsWnQp'@; put 'LCEwKSkucnx8KHFuLnI9ZGkoe3I6em4tMSxjOmtufSkpLHVuPXt0OiIifSxudWxsIT0oa3Q9KEtuPWJ0LnNsaWNlKFp0KSkubWF0Y2goZ2UpKSYmIiIhPT1rdFsxXSYmKHVuLnY9eHIoa3RbMV0pKSxHZS5jZWxsRm9ybXVsYSl7aWYobnVsbCE9KGt0PUtuLm1hdGNoKF9lKSkmJiIiIT09a3Rb'@; put 'MV0pe2lmKHVuLmY9eHIoUGkoa3RbMV0pKS5yZXBsYWNlKC9cclxuL2csIlxuIiksR2UueGxmbnx8KHVuLmY9RzEodW4uZikpLGt0WzBdLmluZGV4T2YoJ3Q9ImFycmF5IicpPi0xKXVuLkY9KEtuLm1hdGNoKHJlKXx8W10pWzFdLHVuLkYuaW5kZXhPZigiOiIpPi0xJiZ1ci5wdXNoKFtPaSh1'@; put 'bi5GKSx1bi5GXSk7ZWxzZSBpZihrdFswXS5pbmRleE9mKCd0PSJzaGFyZWQiJyk+LTEpe3RyPWxuKGt0WzBdKTt2YXIgdGE9eHIoUGkoa3RbMV0pKTtHZS54bGZufHwodGE9RzEodGEpKSxBbltwYXJzZUludCh0ci5zaSwxMCldPVt0cix0YSxxbi5yXX19ZWxzZShrdD1Lbi5tYXRjaCgvPGZb'@; put 'Xj5dKlwvPi8pKSYmQW5bKHRyPWxuKGt0WzBdKSkuc2ldJiYodW4uZj1uSShBblt0ci5zaV1bMV0sQW5bdHIuc2ldWzJdLHFuLnIpKTt2YXIgTW49c3MocW4ucik7Zm9yKFp0PTA7WnQ8dXIubGVuZ3RoOysrWnQpTW4ucj49dXJbWnRdWzBdLnMuciYmTW4ucjw9dXJbWnRdWzBdLmUuciYmTW4u'@; put 'Yz49dXJbWnRdWzBdLnMuYyYmTW4uYzw9dXJbWnRdWzBdLmUuYyYmKHVuLkY9dXJbWnRdWzFdKX1pZihudWxsPT1xbi50JiZ2b2lkIDA9PT11bi52KWlmKHVuLmZ8fHVuLkYpdW4udj0wLHVuLnQ9Im4iO2Vsc2V7aWYoIVVyKWNvbnRpbnVlO3VuLnQ9InoifWVsc2UgdW4udD1xbi50fHwibiI7'@; put 'c3dpdGNoKG50LnMuYz5rbiYmKG50LnMuYz1rbiksbnQuZS5jPGtuJiYobnQuZS5jPWtuKSx1bi50KXtjYXNlIm4iOmlmKCIiPT11bi52fHxudWxsPT11bi52KXtpZighVXIpY29udGludWU7dW4udD0ieiJ9ZWxzZSB1bi52PXBhcnNlRmxvYXQodW4udik7YnJlYWs7Y2FzZSJzIjppZih0eXBl'@; put 'b2YgdW4udj4idSIpe2lmKCFVciljb250aW51ZTt1bi50PSJ6In1lbHNlIGVyPWY2W3BhcnNlSW50KHVuLnYsMTApXSx1bi52PWVyLnQsdW4ucj1lci5yLGVyLlImJih1bi5SPWVyLlIpLGppJiYodW4uaD1lci5oKTticmVhaztjYXNlInN0ciI6dW4udD0icyIsdW4udj1udWxsIT11bi52P1Bp'@; put 'KHVuLnYpOiIiLGppJiYodW4uaD1ybyh1bi52KSk7YnJlYWs7Y2FzZSJpbmxpbmVTdHIiOmt0PUtuLm1hdGNoKFEpLHVuLnQ9InMiLG51bGwhPWt0JiYoZXI9RDkoa3RbMV0pKT8odW4udj1lci50LGVyLlImJih1bi5SPWVyLlIpLGppJiYodW4uaD1lci5oKSk6dW4udj0iIjticmVhaztjYXNl'@; put 'ImIiOnVuLnY9eXIodW4udik7YnJlYWs7Y2FzZSJkIjpHZS5jZWxsRGF0ZXM/dW4udj1IdCh1bi52LDEpOih1bi52PVVlKEh0KHVuLnYsMSkpLHVuLnQ9Im4iKTticmVhaztjYXNlImUiOiExIT09R2UuY2VsbFRleHQmJih1bi53PXVuLnYpLHVuLnY9S2FbdW4udl19aWYoX28pe1puPUJyPXNp'@; put 'PXhpPTAsUXI9bnVsbCxMaSYmdm9pZCAwIT09cW4ucyYmbnVsbCE9KFFyPUN0LkNlbGxYZltxbi5zXSkmJihudWxsIT1Rci5udW1GbXRJZCYmKFpuPVFyLm51bUZtdElkKSxHZS5jZWxsU3R5bGVzJiYobnVsbCE9UXIuZmlsbElkJiYoQnI9UXIuZmlsbElkKSxudWxsIT1Rci5mb250SWQmJihz'@; put 'aT1Rci5mb250SWQpLG51bGwhPVFyLmJvcmRlcklkJiYoeGk9UXIuYm9yZGVySWQpKSk7dHJ5e3A2KHVuLFpuLEJyLHNpLHhpLEdlLDAsQ3QpfWNhdGNoe31HZS5jZWxsU3R5bGVzJiZ1bi5zJiYoUXImJlFyLmFsaWdubWVudCYmKHVuLnMuYWxpZ25tZW50PW9uKFFyLmFsaWdubWVudCkpLFFy'@; put 'JiZRci5wcm90ZWN0aW9uJiYobnVsbCE9UXIucHJvdGVjdGlvbi5oaWRkZW4mJih1bi5zLmhpZGRlbj1Rci5wcm90ZWN0aW9uLmhpZGRlbiksbnVsbCE9UXIucHJvdGVjdGlvbi5lZGl0YWJsZSYmKHVuLnMuZWRpdGFibGU9UXIucHJvdGVjdGlvbi5lZGl0YWJsZSkpLFFyJiZRci5zdHlsZSYm'@; put 'KHVuLnMuc3R5bGU9UXIuc3R5bGUpKSxHZS5jZWxsRGF0ZXMmJkxpJiYibiI9PXVuLnQmJncuaXNfZGF0ZSh3Ll90YWJsZVtabl0pJiYodW4udD0iZCIsdW4udj1odCh1bi52KSl9dmFyIE1zO0dlLm5vZGltJiYoTXM9c3MocW4uciksbnQucy5yPk1zLnImJihudC5zLnI9TXMuciksbnQuZS5y'@; put 'PE1zLnImJihudC5lLnI9TXMucikpLEdlLmNhbGxiYWNrPyhNcz1zcyhxbi5yKSx4by5yb3dbTXMuY109dW4pOnZyPyhCZVsoTXM9c3MocW4ucikpLnJdfHwoQmVbTXMucl09W10pLEJlW01zLnJdW01zLmNdPXVuKTpCZVtxbi5yXT11bn1HZS5jYWxsYmFjayYmR2UuY2FsbGJhY2soeG8pfX19'@; put 'VXImJiFHZS5jYWxsYmFjayYmYzUoMCxDdCkscnIubGVuZ3RoPjAmJihCZVsiIXJvd3MiXT1ycil9fSgpLFJTPVNyKCJ3b3Jrc2hlZXQiLG51bGwse3htbG5zOmlzLm1haW5bMF0sInhtbG5zOnIiOmlzLnIsInhtbG5zOngxNGFjIjoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZp'@; put 'Y2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiLCJ4bWxuczptYyI6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiwibWM6SWdub3JhYmxlIjoieDE0YWMifSk7ZnVuY3Rpb24gV0koeSxQLEwsUSl7dmFyIF9lLHJlPVtCbixSU10s'@; put 'dmU9IiIsU2U9TC5TaGVldHNbTC5TaGVldE5hbWVzW3ldXTtudWxsPT1TZSYmKFNlPXt9KTt2YXIgSGU9U2VbIiFyZWYiXXx8IkExIixCZT1PaShIZSk7aWYoQmUuZS5jPjE2MzgzfHxCZS5lLnI+MTA0ODU3NSl7aWYoUC5XVEYpdGhyb3cgbmV3IEVycm9yKCJSYW5nZSAiK0hlKyIgZXhjZWVk'@; put 'cyBmb3JtYXQgbGltaXQgQTE6WEZEMTA0ODU3NiIpO0JlLmUuYz1NYXRoLm1pbihCZS5lLmMsMTYzODMpLEJlLmUucj1NYXRoLm1pbihCZS5lLmMsMTA0ODU3NSksSGU9T28oQmUpfVF8fChRPXt9KSxTZVsiIWNvbW1lbnRzIl09W107dmFyIEdlPVtdLG50PVNlWyIhcHJpbnQiXTtpZihmdW5j'@; put 'dGlvbiBabyh5LFAsTCxRLHJlKXt2YXIgZ2U9ITEsX2U9e30sdmU9bnVsbDtpZigieGxzeCIhPT1RLmJvb2tUeXBlJiZQLnZiYXJhdyl7dmFyIFNlPVAuU2hlZXROYW1lc1tMXTt0cnl7UC5Xb3JrYm9vayYmKFNlPVAuV29ya2Jvb2suU2hlZXRzW0xdLkNvZGVOYW1lfHxTZSl9Y2F0Y2h7fWdl'@; put 'PSEwLF9lLmNvZGVOYW1lPUhyKFNlKX15JiZ5WyIhY29uZGZtdCJdJiYoX2UuZW5hYmxlRm9ybWF0Q29uZGl0aW9uc0NhbGN1bGF0aW9uPSIxIikseSYmeVsiIXRhYmNvbG9yIl0mJih2ZT0odmV8fCIiKSsnPHRhYkNvbG9yIHJnYj0iRkYnK091KHlbIiF0YWJjb2xvciJdLnJnYikrJyIvPicp'@; put 'O3ZhciBIZT0hMSxCZT17fTtpZigoKCh5fHx7fSlbIiFwcmludCJdfHx7fSkucHJvcHN8fHt9KS5maXQmJihIZT0hMCxCZS5maXRUb1BhZ2U9MSksSGUmJih2ZT0odmV8fCIiKStTcigicGFnZVNldFVwUHIiLG51bGwsQmUpKSx5JiZ5WyIhb3V0bGluZSJdKXt2YXIgR2U9e3N1bW1hcnlCZWxv'@; put 'dzoxLHN1bW1hcnlSaWdodDoxfTt5WyIhb3V0bGluZSJdLmFib3ZlJiYoR2Uuc3VtbWFyeUJlbG93PTApLHlbIiFvdXRsaW5lIl0ubGVmdCYmKEdlLnN1bW1hcnlSaWdodD0wKSx2ZT0odmV8fCIiKStTcigib3V0bGluZVByIixudWxsLEdlKX0hZ2UmJiF2ZXx8KHJlW3JlLmxlbmd0aF09U3Io'@; put 'InNoZWV0UHIiLHZlLF9lKSl9KFNlLEwseSxQLHJlKSxyZVtyZS5sZW5ndGhdPVNyKCJkaW1lbnNpb24iLG51bGwse3JlZjpIZX0pLHJlW3JlLmxlbmd0aF09ZnVuY3Rpb24gT3YoeSxQLEwsUSl7dmFyIHJlPXt3b3JrYm9va1ZpZXdJZDoiMCJ9O2lmKCgoKFF8fHt9KS5Xb3JrYm9va3x8e30p'@; put 'LlZpZXdzfHxbXSkubGVuZ3RoKXt2YXIgZ2U9US5Xb3JrYm9vay5WaWV3cyxfZT1nZVtMXXx8Z2VbMF07cmUucmlnaHRUb0xlZnQ9X2UuUlRMPyIxIjoiMCIsX2Uuem9vbSYmKHJlLnpvb21TY2FsZT1fZS56b29tKSxudWxsIT1fZS5ncmlkJiYocmUuc2hvd0dyaWRMaW5lcz1fZS5ncmlkKSxf'@; put 'ZS52aWV3JiYocmUudmlldz1fZS52aWV3KX1udWxsIT15WyIhZ3JpZGxpbmVzIl0mJihyZS5zaG93R3JpZExpbmVzPSEheVsiIWdyaWRsaW5lcyJdKTt2YXIgdmU9IiIsU2U9e3I6MCxjOjB9O2lmKHlbIiFzZWwiXSl7aWYoIShTZT15WyIhc2VsIl0uY2VsbCkpe2lmKCF5WyIhc2VsIl0ucmFu'@; put 'Z2UpdGhyb3cgbmV3IEVycm9yKCJNdXN0IHNwZWNpZnkgYSBzZWxlY3Rpb24gY2VsbCBvciByYW5nZSIpO1NlPVdzKHlbIiFzZWwiXS5yYW5nZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zfSJzdHJpbmciPT10eXBlb2YgU2UmJihTZT1zcyhTZSkpfXZhciBCZT15WyIhZnJlZXplIl0/InN0cmlu'@; put 'ZyI9PXR5cGVvZiB5WyIhZnJlZXplIl0/c3MoeVsiIWZyZWV6ZSJdKTp5WyIhZnJlZXplIl06e2M6MCxyOjB9O2lmKHlbIiFmcmVlemUiXSl7dmFyIEdlPWRpKEJlKSxudD17c3RhdGU6ImZyb3plbiIseFNwbGl0OkJlLmMseVNwbGl0OkJlLnIsdG9wTGVmdENlbGw6R2V9O3lbIiFzZWwiXSYm'@; put 'KG50LmFjdGl2ZVBhbmU9KFNlLnI+PUJlLnImJkJlLnI+MD8iYm90dG9tIjoidG9wIikrKFNlLmM+PUJlLmMmJkJlLmM+MD8iUmlnaHQiOiJMZWZ0IikpLHZlPVNyKCJwYW5lIixudWxsLG50KX1pZih5WyIhc2VsIl0pe3ZhciBkdD17YWN0aXZlQ2VsbDoic3RyaW5nIj09dHlwZW9mIFNlP1Nl'@; put 'OmRpKFNlKX07ZHQuc3FyZWY9eVsiIXNlbCJdLnJhbmdlP3lbIiFzZWwiXS5yYW5nZTpkdC5hY3RpdmVDZWxsKyI6IitkdC5hY3RpdmVDZWxsLHZlKz1Tcigic2VsZWN0aW9uIixudWxsLGR0KSx5WyIhZnJlZXplIl0mJihCZS5jPjAmJihkdC5wYW5lPSJ0b3BSaWdodCIsdmUrPVNyKCJzZWxl'@; put 'Y3Rpb24iLG51bGwsZHQpKSxCZS5yPjAmJihkdC5wYW5lPSJib3R0b21MZWZ0Iix2ZSs9U3IoInNlbGVjdGlvbiIsbnVsbCxkdCkpLEJlLmM+MCYmQmUucj4wJiYoZHQucGFuZT0iYm90dG9tUmlnaHQiLHZlKz1Tcigic2VsZWN0aW9uIixudWxsLGR0KSkpfXJldHVybiBTcigic2hlZXRWaWV3'@; put 'cyIsU3IoInNoZWV0VmlldyIsdmV8fG51bGwscmUpLHt9KX0oU2UsMCx5LEwpLFAuc2hlZXRGb3JtYXQpe3ZhciBkdD17ZGVmYXVsdFJvd0hlaWdodDpQLnNoZWV0Rm9ybWF0LmRlZmF1bHRSb3dIZWlnaHR8fCIxNiIsYmFzZUNvbFdpZHRoOlAuc2hlZXRGb3JtYXQuYmFzZUNvbFdpZHRofHwi'@; put 'MTAifTtudWxsIT1QLnNoZWV0Rm9ybWF0Lm91dGxpbmVMZXZlbFJvdyYmKGR0Lm91dGxpbmVMZXZlbFJvdz1QLnNoZWV0Rm9ybWF0Lm91dGxpbmVMZXZlbFJvdykscmVbcmUubGVuZ3RoXT1Tcigic2hlZXRGb3JtYXRQciIsbnVsbCxkdCl9ZWxzZSBpZihTZVsiIXNoZWV0Rm9ybWF0Il0pe3Zh'@; put 'ciBDdD17fSxjdD0hMTtTZVsiIXNoZWV0Rm9ybWF0Il0ucm93JiYoU2VbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHQ/KGN0PSEwLEN0LmRlZmF1bHRSb3dIZWlnaHQ9U2VbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHQsQ3QuY3VzdG9tSGVpZ2h0PTEpOlNlWyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB4'@; put 'PyhjdD0hMCxDdC5kZWZhdWx0Um93SGVpZ2h0PWoyKFNlWyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB4KSxDdC5jdXN0b21IZWlnaHQ9MSk6KDA9PT1TZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhwdHx8MD09PVNlWyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB4fHxTZVsiIXNoZWV0Rm9ybWF0Il0ucm93'@; put 'LmhpZGRlbikmJihjdD0hMCxDdC5kZWZhdWx0Um93SGVpZ2h0PUN0LmRlZmF1bHRSb3dIZWlnaHR8fDE2LEN0LmN1c3RvbUhlaWdodD0xLEN0Lnplcm9IZWlnaHQ9MSksU2VbIiFzaGVldEZvcm1hdCJdLmR5RGVzY2VudCYmKEN0WyJ4MTRhYzpkeURlc2NlbnQiXT1TZVsiIXNoZWV0Rm9ybWF0'@; put 'Il0uZHlEZXNjZW50KSksU2VbIiFzaGVldEZvcm1hdCJdLmNvbCYmKFNlWyIhc2hlZXRGb3JtYXQiXS5jb2wud2NofHxwdShTZVsiIXNoZWV0Rm9ybWF0Il0uY29sKSxDdC5kZWZhdWx0Q29sV2lkdGg9U2VbIiFzaGVldEZvcm1hdCJdLmNvbC53Y2grNS9wbHx8MCxjdD0hMCksbnVsbD09Q3Qu'@; put 'ZGVmYXVsdFJvd0hlaWdodCYmKEN0LmRlZmF1bHRSb3dIZWlnaHQ9MTYpLG51bGw9PUN0LmRlZmF1bHRDb2xXaWR0aCYmKEN0LmRlZmF1bHRDb2xXaWR0aD0xMCksQ3Qub3V0bGluZUxldmVsUm93PUN0Lm91dGxpbmVMZXZlbFJvd3x8NyxjdCYmKHJlW3JlLmxlbmd0aF09U3IoInNoZWV0Rm9y'@; put 'bWF0UHIiLG51bGwsQ3QpKX1udWxsIT1TZVsiIWNvbHMiXSYmU2VbIiFjb2xzIl0ubGVuZ3RoPjAmJihyZVtyZS5sZW5ndGhdPWZ1bmN0aW9uIER2KHksUCxMKXtmb3IodmFyIHJlLFE9WyI8Y29scz4iXSxnZT0wO2dlIT1QLmxlbmd0aDsrK2dlKWlmKHJlPVBbZ2VdKXtpZihyZS5hdXRvJiZO'@; put 'aSh5LHJlLGdlKSxyZS5zfHxyZS56KXt2YXIgX2U9e3Q6InoifTtudWxsIT1yZS5zJiYoX2Uucz1yZS5zKSxudWxsIT1yZS56JiYoX2Uuej1yZS56KSxyZS5zdHlsZT1ndShMLmNlbGxYZnMsTC5jZWxsU3R5bGVYZnMsX2UsTCl9UVtRLmxlbmd0aF09U3IoImNvbCIsbnVsbCxZZChnZSxyZSkp'@; put 'fXJldHVybiBRW1EubGVuZ3RoXT0iPC9jb2xzPiIsUS5qb2luKCIiKX0oU2UsU2VbIiFjb2xzIl0sUCkpLHJlW19lPXJlLmxlbmd0aF09IjxzaGVldERhdGEvPiIsU2VbIiFsaW5rcyJdPVtdLG51bGwhPVNlWyIhcmVmIl0mJih2ZT1mdW5jdGlvbiBZSSh5LFAsTCxRKXt2YXIgU2UsYnQscmU9'@; put 'W10sZ2U9W10sX2U9T2koeVsiIXJlZiJdKSx2ZT0iIixIZT0iIixCZT1bXSxHZT0wLG50PTAsZHQ9eVsiIXJvd3MiXSxDdD1BcnJheS5pc0FycmF5KHkpLGN0PXtyOkhlfSxGdD0tMTtmb3IobnQ9X2Uucy5jO250PD1fZS5lLmM7KytudClCZVtudF09TnMobnQpO2ZvcihHZT1fZS5zLnI7R2U8'@; put 'PV9lLmUucjsrK0dlKXtmb3IoZ2U9W10sSGU9SHMoR2UpLG50PV9lLnMuYztudDw9X2UuZS5jOysrbnQpe1NlPUJlW250XStIZTt2YXIga3Q9Q3Q/KHlbR2VdfHxbXSlbbnRdOnlbU2VdO3ZvaWQgMCE9PWt0JiZudWxsIT0odmU9VUkoa3QsU2UseSxQKSkmJmdlLnB1c2godmUpfShnZS5sZW5n'@; put 'dGg+MHx8ZHQmJmR0W0dlXSkmJihjdD17cjpIZX0sZHQmJmR0W0dlXSYmKChidD1kdFtHZV0pLmhpZGRlbiYmKGN0LmhpZGRlbj0xKSxGdD0tMSxidC5ocHg/RnQ9ajIoYnQuaHB4KTpidC5ocHQmJihGdD1idC5ocHQpLEZ0Pi0xJiYoY3QuaHQ9RnQsY3QuY3VzdG9tSGVpZ2h0PTEpLGJ0Lmxl'@; put 'dmVsJiYoY3Qub3V0bGluZUxldmVsPWJ0LmxldmVsKSxidC5keURlc2NlbnQmJihjdFsieDE0YWM6ZHlEZXNjZW50Il09YnQuZHlEZXNjZW50KSxidC5zJiYoY3Qucz1ndShQLmNlbGxYZnMsUC5jZWxsU3R5bGVYZnMse3Q6InoiLHM6YnQuc30sUCksY3QuY3VzdG9tRm9ybWF0PTEpKSxyZVty'@; put 'ZS5sZW5ndGhdPVNyKCJyb3ciLGdlLmpvaW4oIiIpLGN0KSl9aWYoZHQpZm9yKDtHZTxkdC5sZW5ndGg7KytHZSlkdCYmZHRbR2VdJiYoY3Q9e3I6R2UrMX0sKGJ0PWR0W0dlXSkuaGlkZGVuJiYoY3QuaGlkZGVuPTEpLEZ0PS0xLGJ0LmhweD9GdD1qMihidC5ocHgpOmJ0LmhwdCYmKEZ0PWJ0'@; put 'LmhwdCksRnQ+LTEmJihjdC5odD1GdCxjdC5jdXN0b21IZWlnaHQ9MSksYnQubGV2ZWwmJihjdC5vdXRsaW5lTGV2ZWw9YnQubGV2ZWwpLHJlW3JlLmxlbmd0aF09U3IoInJvdyIsIiIsY3QpKTtyZXR1cm4gcmUuam9pbigiIil9KFNlLFApLHZlLmxlbmd0aD4wJiYocmVbcmUubGVuZ3RoXT12'@; put 'ZSkpLHJlLmxlbmd0aD5fZSsxJiYocmVbcmUubGVuZ3RoXT0iPC9zaGVldERhdGE+IixyZVtfZV09cmVbX2VdLnJlcGxhY2UoIi8+IiwiPiIpKSxTZVsiIXByb3RlY3QiXSYmKHJlW3JlLmxlbmd0aF09ZnVuY3Rpb24gRWEoeSl7dmFyIFA9e3NoZWV0OjF9O3JldHVybiBBdi5mb3JFYWNoKGZ1'@; put 'bmN0aW9uKEwpe251bGwhPXlbTF0mJnlbTF0mJihQW0xdPSIxIil9KSxUdi5mb3JFYWNoKGZ1bmN0aW9uKEwpe251bGwhPXlbTF0mJiF5W0xdJiYoUFtMXT0iMCIpfSkseS5wYXNzd29yZD9QLnBhc3N3b3JkPWFDKHkucGFzc3dvcmQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOnkuZW5j'@; put 'cnlwdGlvbiYmKFAuYWxnb3JpdGhtTmFtZT15LmVuY3J5cHRpb24uYWxnbyxQLmhhc2hWYWx1ZT15LmVuY3J5cHRpb24uaGFzaCxQLnNhbHRWYWx1ZT15LmVuY3J5cHRpb24uc2FsdCxQLnNwaW5Db3VudD15LmVuY3J5cHRpb24uc3BpbiksU3IoInNoZWV0UHJvdGVjdGlvbiIsbnVsbCxQKX0o'@; put 'U2VbIiFwcm90ZWN0Il0pKSxudWxsIT1TZVsiIWF1dG9maWx0ZXIiXSYmKHJlW3JlLmxlbmd0aF09ZnVuY3Rpb24gRVMoeSxQLEwsUSl7dmFyIHJlPSJzdHJpbmciPT10eXBlb2YgeS5yZWY/eS5yZWY6T28oeS5yZWYpO0wuV29ya2Jvb2t8fChMLldvcmtib29rPXtTaGVldHM6W119KSxMLldv'@; put 'cmtib29rLk5hbWVzfHwoTC5Xb3JrYm9vay5OYW1lcz1bXSk7dmFyIGdlPUwuV29ya2Jvb2suTmFtZXMsX2U9V3MocmUpO19lLnMucj09X2UuZS5yJiYoX2UuZS5yPVdzKFBbIiFyZWYiXSkuZS5yLHJlPU9vKF9lKSk7Zm9yKHZhciB2ZT0wO3ZlPGdlLmxlbmd0aDsrK3ZlKXt2YXIgU2U9Z2Vb'@; put 'dmVdO2lmKCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiPT1TZS5OYW1lJiZTZS5TaGVldD09USl7U2UuUmVmPSInIitMLlNoZWV0TmFtZXNbUV0rIichIityZTticmVha319cmV0dXJuIHZlPT1nZS5sZW5ndGgmJmdlLnB1c2goe05hbWU6Il94bG5tLl9GaWx0ZXJEYXRhYmFzZSIsU2hlZXQ6USxS'@; put 'ZWY6IiciK0wuU2hlZXROYW1lc1tRXSsiJyEiK3JlfSksU3IoImF1dG9GaWx0ZXIiLG51bGwse3JlZjpyZX0pfShTZVsiIWF1dG9maWx0ZXIiXSxTZSxMLHkpKSxudWxsIT1TZVsiIW1lcmdlcyJdJiZTZVsiIW1lcmdlcyJdLmxlbmd0aD4wJiYocmVbcmUubGVuZ3RoXT1mdW5jdGlvbiBKWih5'@; put 'KXtpZigwPT09eS5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBQPSc8bWVyZ2VDZWxscyBjb3VudD0iJyt5Lmxlbmd0aCsnIj4nLEw9MDtMIT15Lmxlbmd0aDsrK0wpUCs9JzxtZXJnZUNlbGwgcmVmPSInK09vKHlbTF0pKyciLz4nO3JldHVybiBQKyI8L21lcmdlQ2VsbHM+In0oU2VbIiFtZXJn'@; put 'ZXMiXSkpLFNlWyIhY29uZGZtdCJdJiYocmVbcmUubGVuZ3RoXT1mdW5jdGlvbiBqSSh5LFApe3JldHVybiB5Lm1hcChmdW5jdGlvbihMLFEpe3JldHVybiBmdW5jdGlvbiBQdSh5LFAsTCl7dmFyIFE9eS5zP0ZvKEwuRFhGLHkucyk6LTEscmU9InN0cmluZyI9PXR5cGVvZiB5LnJlZj95LnJl'@; put 'ZjpPbyh5LnJlZiksX2U9T2kocmUucmVwbGFjZSgvXHMuKiQvLCIiKSkucztfZS5yPDAmJihfZS5yPTApLF9lLmM8MCYmKF9lLmM9MCk7dmFyIHZlPSIiLFNlPXtwcmlvcml0eTpQKzF9O3N3aXRjaChRPi0xJiYoU2UuZHhmSWQ9USkseS50KXtjYXNlInVuaXF1ZSI6U2UudHlwZT0idW5pcXVl'@; put 'VmFsdWVzIjticmVhaztjYXNlImR1cCI6U2UudHlwZT0iZHVwbGljYXRlVmFsdWVzIjticmVhaztjYXNlImJsYW5rIjpTZS50eXBlPSh5LnY/ImMiOiJub3RDIikrIm9udGFpbnNCbGFua3MiLHZlPSI8Zm9ybXVsYT5MRU4oVFJJTSgiK2RpKF9lKSsiKSkiKyh5LnY/Ij0iOiImZ3Q7IikrIjA8'@; put 'L2Zvcm11bGE+IjticmVhaztjYXNlImVycm9yIjpTZS50eXBlPSh5LnY/ImMiOiJub3RDIikrIm9udGFpbnNFcnJvcnMiO2JyZWFrO2Nhc2UiZm9ybXVsYSI6U2UudHlwZT0iZXhwcmVzc2lvbiIsdmU9U3IoImZvcm11bGEiLEhyKHkuZikse30pO2JyZWFrO2Nhc2UiZGF0ZSI6U2UudHlwZT0i'@; put 'dGltZVBlcmlvZCIsU2UudGltZVBlcmlvZD1JU1t5Lm9wXTticmVhaztjYXNlInRleHQiOnN3aXRjaChTZS50eXBlPVNlLm9wZXJhdG9yPVJ2W3kub3BdLFNlLnRleHQ9eS52LHkub3Ape2Nhc2UiSU4iOnZlPSc8Zm9ybXVsYT5OT1QoSVNFUlJPUihTRUFSQ0goIicrSHIoeS52KSsnIiwnK2Rp'@; put 'KF9lKSsiKSkpPC9mb3JtdWxhPiI7YnJlYWs7Y2FzZSJPVCI6dmU9Jzxmb3JtdWxhPklTRVJST1IoU0VBUkNIKCInK0hyKHkudikrJyIsJytkaShfZSkrIikpPC9mb3JtdWxhPiI7YnJlYWs7Y2FzZSJTVCI6dmU9Ijxmb3JtdWxhPkxFRlQoIitkaShfZSkrJyxMRU4oIicrSHIoeS52KSsnIikp'@; put 'PSInK0hyKHkudikrJyI8L2Zvcm11bGE+JzticmVhaztjYXNlIk5EIjp2ZT0iPGZvcm11bGE+UklHSFQoIitkaShfZSkrJyxMRU4oIicrSHIoeS52KSsnIikpPSInK0hyKHkudikrJyI8L2Zvcm11bGE+J31icmVhaztjYXNlInZhbCI6U2UudHlwZT0iY2VsbElzIixTZS5vcGVyYXRvcj0kM1t5'@; put 'Lm9wXSx2ZT1udWxsIT15Lm1pbj9TcigiZm9ybXVsYSIsSHIoU3RyaW5nKHkubWluKSkse30pK1NyKCJmb3JtdWxhIixIcihTdHJpbmcoeS5tYXgpKSx7fSk6U3IoImZvcm11bGEiLEhyKG51bGwhPXkudj9TdHJpbmcoInN0cmluZyI9PXR5cGVvZiB5LnY/JyInK3kudi5yZXBsYWNlKC8iL2cs'@; put 'JyIiJykrJyInOnkudik6eS5mKSx7fSk7YnJlYWs7Y2FzZSJhdmciOnN3aXRjaChTZS50eXBlPSJhYm92ZUF2ZXJhZ2UiLFNlLmFib3ZlQXZlcmFnZT0iTCI9PXkub3AuY2hhckF0KDApPyIwIjoiMSIseS5vcC5jaGFyQXQoMSkpe2Nhc2UiVCI6U2UuZXF1YWxBdmVyYWdlPSIwIjticmVhaztj'@; put 'YXNlIkUiOlNlLmVxdWFsQXZlcmFnZT0iMSI7YnJlYWs7ZGVmYXVsdDpTZS5zdGREZXY9eS5vcC5jaGFyQXQoMSl9YnJlYWs7Y2FzZSJyYW5rIjpTZS50eXBlPSJ0b3AxMCIsU2UuYm90dG9tPSJCIj09eS5vcC5jaGFyQXQoMCk/IjEiOiIwIixTZS5wZXJjZW50PSJQIj09eS5vcC5jaGFyQXQo'@; put 'MSk/IjEiOiIwIixTZS5yYW5rPXkudjticmVhaztjYXNlImljb24iOlNlLnR5cGU9Imljb25TZXQiO3ZhciBIZT17aWNvblNldDp5LnYscGVyY2VudDp5LnBjdD8idHJ1ZSI6ImZhbHNlIn07eS5yZXYmJihIZS5yZXZlcnNlPSJ0cnVlIikseS5oaWRkZW4mJihIZS5zaG93VmFsdWU9ImZhbHNl'@; put 'IiksdmU9U3IoImljb25TZXQiLHkudGhyZXNoLm1hcChwZikuam9pbigiIiksSGUpO2JyZWFrO2Nhc2Uic2NhbGUiOlNlLnR5cGU9ImNvbG9yU2NhbGUiLHZlKz1wZih5LmNtaW4pLHkuY21pZCYmKHZlKz1wZih5LmNtaWQpKSx2ZSs9cGYoeS5jbWF4KSx2ZSs9VWQoeS5jbWluLmNvbG9yKSx5'@; put 'LmNtaWQmJih2ZSs9VWQoeS5jbWlkLmNvbG9yKSksdmU9U3IoImNvbG9yU2NhbGUiLHZlKz1VZCh5LmNtYXguY29sb3IpLHt9KTticmVhaztjYXNlImJhciI6U2UudHlwZT0iZGF0YUJhciIsdmUrPXBmKHkuY21pbiksdmUrPXBmKHkuY21heCksdmU9U3IoImRhdGFCYXIiLHZlKz1VZCh5LmNv'@; put 'bG9yKSx7fSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBjb25zb2xlLmxvZyh5KSwiQ0YgbWlzc2luZyB0eXBlICIreS50fXJldHVybic8Y29uZGl0aW9uYWxGb3JtYXR0aW5nIHNxcmVmPSInK3JlKyciPicrU3IoImNmUnVsZSIsIiI9PXZlP251bGw6dmUsU2UpKyI8L2NvbmRpdGlvbmFsRm9ybWF0'@; put 'dGluZz4ifShMLFEsUCl9KS5qb2luKCIiKX0oU2VbIiFjb25kZm10Il0sUCkpLFNlWyIhdmFsaWRhdGlvbnMiXSYmKHJlW3JlLmxlbmd0aF09ZnVuY3Rpb24gTkkoeSl7aWYoIXl8fDA9PXkubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgUD1bXSxMPTAsUT0wO1E8eS5sZW5ndGg7KytRKXt2YXIg'@; put 'cmU9eVtRXSxnZT15NltyZS50XTtpZihyZS5yZWYmJigic3RyaW5nIiE9dHlwZW9mIHJlLnJlZnx8LTEhPXJlLnJlZi5pbmRleE9mKCIgIil8fChyZS5yZWY9T2kocmUucmVmKSxyZS5yZWYucyYmIShyZS5yZWYucy5jPDApKSkpeysrTDt2YXIgX2U9e3R5cGU6Z2UsYWxsb3dCbGFuazorKDAh'@; put 'PXJlLmJsYW5rKSxzaG93SW5wdXRNZXNzYWdlOisoMCE9cmUuaW5wdXQpLHNob3dFcnJvck1lc3NhZ2U6KygwIT1yZS5lcnJvciksc3FyZWY6InN0cmluZyI9PXR5cGVvZiByZS5yZWY/cmUucmVmOk9vKHJlLnJlZil9O2lmKHJlLmlucHV0JiYocmUuaW5wdXQudGl0bGUmJihfZS5wcm9tcHRU'@; put 'aXRsZT1xaShyZS5pbnB1dC50aXRsZSkpLHJlLmlucHV0Lm1lc3NhZ2UmJihfZS5wcm9tcHQ9cWkocmUuaW5wdXQubWVzc2FnZSkpKSxyZS5lcnJvciYmKHJlLmVycm9yLnRpdGxlJiYoX2UuZXJyb3JUaXRsZT1xaShyZS5lcnJvci50aXRsZSkpLHJlLmVycm9yLm1lc3NhZ2UmJihfZS5lcnJv'@; put 'cj1xaShyZS5lcnJvci5tZXNzYWdlKSkscmUuZXJyb3Iuc3R5bGUmJihfZS5lcnJvclN0eWxlPXJlLmVycm9yLnN0eWxlKSksIWdlKXRocm93IG5ldyBFcnJvcigiQmFkIHZhbGlkYXRpb246IHVucmVjb2duaXplZCB0eXBlICIrcmUudCk7dmFyIHZlPSIiO3N3aXRjaChyZS50KXtjYXNlIkFu'@; put 'eSI6YnJlYWs7Y2FzZSJMaXN0IjpjYXNlIkN1c3RvbSI6aWYocmUubCl7aWYocmUubC5qb2luKCIsIikubGVuZ3RoPjI1MCl0aHJvdyBuZXcgRXJyb3IoIkRWIGxlbmd0aCA+IDI1MCB0cmlnZ2VycyBjb3JydXB0aW9uIGVycm9ycyBpbiBFeGNlbC4gIFVzZSBhIGxvb2t1cCB0YWJsZSIpO3Zl'@; put 'PSc8Zm9ybXVsYTE+IicrSHIocmUubC5qb2luKCIsIikpKyciPC9mb3JtdWxhMT4nfWVsc2UgdmU9Ijxmb3JtdWxhMT4iK0hyKHJlLmYpKyI8L2Zvcm11bGExPiI7YnJlYWs7Y2FzZSJEYXRlIjpjYXNlIlRpbWUiOmNhc2UiRGVjaW1hbCI6Y2FzZSJMZW5ndGgiOmNhc2UiV2hvbGUiOmlmKCEk'@; put 'M1tyZS5vcF0pdGhyb3cgbmV3IEVycm9yKCJCYWQgRGF0YSBWYWxpZGF0aW9uIHR5cGUgIityZS5vcCsiIGZvciAiK3JlLnQpO2lmKF9lLm9wZXJhdG9yPSQzW3JlLm9wXSxudWxsIT1yZS52KXZlPSI8Zm9ybXVsYTE+IitIcihTdHJpbmcocmUudiBpbnN0YW5jZW9mIERhdGU/VWUocmUudik6'@; put 'cmUudikpKyI8L2Zvcm11bGExPiI7ZWxzZXtpZihudWxsPT1yZS5taW58fG51bGw9PXJlLm1heCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRhIFZhbGlkYXRpb246IGB2YCBvciBgbWluYCtgbWF4YCByZXF1aXJlZCBmb3IgVHlwZSAiK3JlLnQpO3ZlPSI8Zm9ybXVsYTE+IitIcihTdHJpbmco'@; put 'cmUubWluIGluc3RhbmNlb2YgRGF0ZT9VZShyZS5taW4pOnJlLm1pbikpKyI8L2Zvcm11bGExPjxmb3JtdWxhMj4iK0hyKFN0cmluZyhyZS5tYXggaW5zdGFuY2VvZiBEYXRlP1VlKHJlLm1heCk6cmUubWF4KSkrIjwvZm9ybXVsYTI+In19UC5wdXNoKFNyKCJkYXRhVmFsaWRhdGlvbiIsdmV8'@; put 'fG51bGwsX2UpKX19cmV0dXJuIEw+MD8nPGRhdGFWYWxpZGF0aW9ucyBjb3VudD0iJytMKyciPicrUC5qb2luKCIiKSsiPC9kYXRhVmFsaWRhdGlvbnM+IjoiIn0oU2VbIiF2YWxpZGF0aW9ucyJdKSk7dmFyIEZ0LGJ0PS0xLGt0PS0xO2lmKFNlWyIhbGlua3MiXS5sZW5ndGg+MCYmKHJlW3Jl'@; put 'Lmxlbmd0aF09IjxoeXBlcmxpbmtzPiIsU2VbIiFsaW5rcyJdLmZvckVhY2goZnVuY3Rpb24odW4pe3VuWzFdLlRhcmdldCYmKEZ0PXtyZWY6dW5bMF19LCIjIiE9dW5bMV0uVGFyZ2V0LmNoYXJBdCgwKSYmKGt0PXpvKFEsLTEsSHIodW5bMV0uVGFyZ2V0KS5yZXBsYWNlKC8jLiokLywiIiks'@; put 'SGkuSExJTkspLEZ0WyJyOmlkIl09InJJZCIra3QpLChidD11blsxXS5UYXJnZXQuaW5kZXhPZigiIyIpKT4tMSYmKEZ0LmxvY2F0aW9uPUhyKHVuWzFdLlRhcmdldC5zbGljZShidCsxKSkpLHVuWzFdLlRvb2x0aXAmJihGdC50b29sdGlwPUhyKHVuWzFdLlRvb2x0aXApKSxyZVtyZS5sZW5n'@; put 'dGhdPVNyKCJoeXBlcmxpbmsiLG51bGwsRnQpKX0pLHJlW3JlLmxlbmd0aF09IjwvaHlwZXJsaW5rcz4iKSxkZWxldGUgU2VbIiFsaW5rcyJdLG50KXt2YXIgVHQ9ZnVuY3Rpb24gd1MoeSl7aWYoeS5wcm9wcyl7dmFyIFA9e30sTD15LnByb3BzO3JldHVybiBMLmdyaWRsaW5lcyYmKFAuZ3Jp'@; put 'ZExpbmVzPVAuZ3JpZExpbmVzU2V0PTEpLEwuaGVhZGluZ3MmJihQLmhlYWRpbmdzPTEpLEwuY2VudGVyWCYmKFAuaG9yaXpvbnRhbENlbnRlcmVkPTEpLEwuY2VudGVyWSYmKFAudmVydGljYWxDZW50ZXJlZD0xKSxTcigicHJpbnRPcHRpb25zIixudWxsLFApfXJldHVybiIifShudCk7VHQu'@; put 'bGVuZ3RoJiYocmVbcmUubGVuZ3RoXT1UdCl9aWYoKG51bGwhPVNlWyIhbWFyZ2lucyJdfHxudCYmbnQubWFyZ2lucykmJihyZVtyZS5sZW5ndGhdPWZ1bmN0aW9uIGI2KHkpe3JldHVybiBkZih5KSxTcigicGFnZU1hcmdpbnMiLG51bGwseSl9KFNlWyIhbWFyZ2lucyJdfHxudC5tYXJnaW5z'@; put 'KSksbnQpe3ZhciBadD1mdW5jdGlvbiBPSSh5KXtpZih5LnByb3BzKXt2YXIgUD17fSxMPXkucHJvcHM7aWYoTC5vcmllbnRhdGlvbiYmKFAub3JpZW50YXRpb249TC5vcmllbnRhdGlvbiksTC5zY2FsZSYmKFAuc2NhbGU9TC5zY2FsZSksTC5maXQmJihudWxsIT1MLmZpdC5oZWlnaHQmJihQ'@; put 'LmZpdFRvSGVpZ2h0PUwuZml0LmhlaWdodCksbnVsbCE9TC5maXQud2lkdGgmJihQLmZpdFRvV2lkdGg9TC5maXQud2lkdGgpKSxMLmRwaSYmKFAuaG9yaXpvbnRhbERwaT1QLnZlcnRpY2FsRHBpPUwuZHBpKSxudWxsIT1MLmZpcnN0JiYoUC5maXJzdFBhZ2VOdW1iZXI9TC5maXJzdCxQLnVz'@; put 'ZUZpcnN0UGFnZU51bWJlcj0xKSxMLmJ3JiYoUC5ibGFja0FuZFdoaXRlPTEpLEwuZHJhZnQmJihQLmRyYWZ0PTEpLEwuY29tbWVudHMmJihQLmNlbGxDb21tZW50cz1DZVtMLmNvbW1lbnRzXXx8Im5vbmUiKSxMLmVycm9ycyYmKFAuZXJyb3JzPVJJW0wuZXJyb3JzXXx8Im5vbmUiKSxMLnBh'@; put 'cGVyKXN3aXRjaCh0eXBlb2YgTC5wYXBlcil7Y2FzZSJudW1iZXIiOlAucGFwZXJTaXplPUwucGFwZXI7YnJlYWs7Y2FzZSJzdHJpbmciOlo5W0wucGFwZXJdP1AucGFwZXJTaXplPVo5W0wucGFwZXJdOitMLnBhcGVyJiYoUC5wYXBlclNpemU9K0wucGFwZXIpO2JyZWFrO2Nhc2Uib2JqZWN0'@; put 'IjppZighTC5wYXBlci5oZWlnaHR8fCFMLnBhcGVyLndpZHRoKXRocm93IkN1c3RvbSBQYXBlciBTaXplIG11c3QgaW5jbHVkZSB3aWR0aCBhbmQgaGVpZ2h0ISI7UC5wYXBlckhlaWdodD1MLnBhcGVyLmhlaWdodCxQLnBhcGVyV2lkdGg9TC5wYXBlci53aWR0aH1yZXR1cm5bMSwhMCwidHJ1'@; put 'ZSIsIm92ZXIiXS5pbmRleE9mKEwub3JkZXIpPi0xJiYoUC5wYWdlT3JkZXI9Im92ZXJUaGVuRG93biIpLFNyKCJwYWdlU2V0dXAiLG51bGwsUCl9cmV0dXJuIiJ9KG50KTtadC5sZW5ndGgmJihyZVtyZS5sZW5ndGhdPVp0KSxadD1mdW5jdGlvbiBMdih5KXt2YXIgUD1bXSxMPSIiLFE9IiIs'@; put 'cmU9IiIsZ2U9IiIsX2U9IiIsdmU9IiIsU2U9IiIsSGU9VzEoeS5oZWFkZXIpO0hlLmxlbmd0aCYmKFE9SGVbMF0sdmU9SGVbMV0sZ2U9SGVbMl0pO3ZhciBCZT1XMSh5LmZvb3Rlcik7cmV0dXJuIEJlLmxlbmd0aCYmKHJlPUJlWzBdLFNlPUJlWzFdLF9lPUJlWzJdKSxRJiZQLnB1c2goIjxv'@; put 'ZGRIZWFkZXI+IitIcihRKSsiPC9vZGRIZWFkZXI+IikscmUmJlAucHVzaCgiPG9kZEZvb3Rlcj4iK0hyKHJlKSsiPC9vZGRGb290ZXI+IiksKF9lIT1yZXx8Z2UhPVEpJiYoTCs9JyBkaWZmZXJlbnRPZGRFdmVuPSIxIicsUC5wdXNoKCI8ZXZlbkhlYWRlcj4iK0hyKGdlKSsiPC9ldmVuSGVh'@; put 'ZGVyPiIpLFAucHVzaCgiPGV2ZW5Gb290ZXI+IitIcihfZSkrIjwvZXZlbkZvb3Rlcj4iKSksKFNlIT1yZXx8dmUhPVEpJiYoTCs9JyBkaWZmZXJlbnRGaXJzdD0iMSInLFAucHVzaCgiPGZpcnN0SGVhZGVyPiIrSHIodmUpKyI8L2ZpcnN0SGVhZGVyPiIpLFAucHVzaCgiPGZpcnN0Rm9vdGVy'@; put 'PiIrSHIoU2UpKyI8L2ZpcnN0Rm9vdGVyPiIpKSxQLmxlbmd0aD8iPGhlYWRlckZvb3RlciIrTCsiPiIrUC5qb2luKCIiKSsiPC9oZWFkZXJGb290ZXI+IjoiIn0obnQpLFp0Lmxlbmd0aCYmKHJlW3JlLmxlbmd0aF09WnQpfWlmKChudWxsIT1TZVsiIXJvd0JyZWFrcyJdfHxudCYmbnQucm93'@; put 'QnJlYWtzKSYmKHJlW3JlLmxlbmd0aF09ZnVuY3Rpb24gRkkoeSl7aWYoMD09eS5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBQPVsnPHJvd0JyZWFrcyBjb3VudD0iJyt5Lmxlbmd0aCsnIiBtYW51YWxCcmVha0NvdW50PSInK3kubGVuZ3RoKyciPiddLEw9MDtMPHkubGVuZ3RoOysrTClQLnB1'@; put 'c2goJzxicmsgaWQ9IicreVtMXS5SKyciIG1hbj0iMSIvPicpO3JldHVybiBQLmpvaW4oIiIpKyI8L3Jvd0JyZWFrcz4ifShTZVsiIXJvd0JyZWFrcyJdfHxudC5yb3dCcmVha3MpKSwobnVsbCE9U2VbIiFjb2xCcmVha3MiXXx8bnQmJm50LmNvbEJyZWFrcykmJihyZVtyZS5sZW5ndGhdPWZ1'@; put 'bmN0aW9uIFFaKHkpe2lmKDA9PXkubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgUD1bJzxjb2xCcmVha3MgY291bnQ9IicreS5sZW5ndGgrJyIgbWFudWFsQnJlYWtDb3VudD0iJyt5Lmxlbmd0aCsnIj4nXSxMPTA7TDx5Lmxlbmd0aDsrK0wpUC5wdXNoKCc8YnJrIGlkPSInK3lbTF0uQysnIiBt'@; put 'YW49IjEiLz4nKTtyZXR1cm4gUC5qb2luKCIiKSsiPC9jb2xCcmVha3M+In0oU2VbIiFjb2xCcmVha3MiXXx8bnQuY29sQnJlYWtzKSksKCFQfHxQLmlnbm9yZUVDfHxudWxsPT1QLmlnbm9yZUVDKSYmKHJlW3JlLmxlbmd0aF09ZnMoImlnbm9yZWRFcnJvcnMiLFNyKCJpZ25vcmVkRXJyb3Ii'@; put 'LG51bGwse251bWJlclN0b3JlZEFzVGV4dDoxLHNxcmVmOkhlfSkpKSxTZVsiIWNoYXJ0cyJdJiZHZS5wdXNoLmFwcGx5KEdlLFNlWyIhY2hhcnRzIl0pLFNlWyIhaW1hZ2VzIl0mJkdlLnB1c2guYXBwbHkoR2UsU2VbIiFpbWFnZXMiXSksU2VbIiFzaGFwZXMiXSYmR2UucHVzaC5hcHBseShH'@; put 'ZSxTZVsiIXNoYXBlcyJdKSxHZS5sZW5ndGg+MCYmKGt0PXpvKFEsLTEsIi4uL2RyYXdpbmdzL2RyYXdpbmciKyh5KzEpKyIueG1sIixIaS5EUkFXKSxyZVtyZS5sZW5ndGhdPVNyKCJkcmF3aW5nIixudWxsLHsicjppZCI6InJJZCIra3R9KSxTZVsiIWRyYXdpbmciXT1HZSksKFNlWyIhY29t'@; put 'bWVudHMiXS5sZW5ndGg+MHx8KFNlWyIhY29udHJvbHMiXXx8W10pLmxlbmd0aD4wKSYmKGt0PXpvKFEsLTEsIi4uL2RyYXdpbmdzL3ZtbERyYXdpbmciKyh5KzEpKyIudm1sIixIaS5WTUwpLHJlW3JlLmxlbmd0aF09U3IoImxlZ2FjeURyYXdpbmciLG51bGwseyJyOmlkIjoicklkIitrdH0p'@; put 'LFNlWyIhbGVnYWN5Il09a3QpLFNlWyIhcHJpbnQiXSYmU2VbIiFwcmludCJdLmltYWdlcyl7dmFyIHBuPVNlWyIhcHJpbnQiXS5pbWFnZXMsS249MDtbImhlYWRlciIsImZvb3RlciJdLmZvckVhY2goZnVuY3Rpb24odW4pe3BuW3VuXSYmWyJvZGQiLCJldmVuIiwiZmlyc3QiXS5mb3JFYWNo'@; put 'KGZ1bmN0aW9uKHFuKXtwblt1bl1bcW5dJiZbImxlZnQiLCJyaWdodCIsImNlbnRlciJdLmZvckVhY2goZnVuY3Rpb24oem4pe2lmKEFycmF5LmlzQXJyYXkocG5bdW5dW3FuXVt6bl0pKWZvcih2YXIga249MDtrbjxwblt1bl1bcW5dW3puXS5sZW5ndGg7Kytrbilwblt1bl1bcW5dW3puXVtr'@; put 'bl0mJihwblt1bl1bcW5dW3puXVtrbl0uX2NudD1LbisrKX0pfSl9KSxLbj4wJiYoa3Q9em8oUSwtMSwiLi4vZHJhd2luZ3Mvdm1sRHJhd2luZyIrKHkrMSkrIkhGLnZtbCIsSGkuVk1MKSxyZVtyZS5sZW5ndGhdPVNyKCJsZWdhY3lEcmF3aW5nSEYiLG51bGwseyJyOmlkIjoicklkIitrdH0p'@; put 'LFNlWyIhbGVnYWN5SEYiXT1rdCl9cmV0dXJuKFNlWyIhdGFibGVzIl18fFtdKS5sZW5ndGg+MCYmKHJlW3JlLmxlbmd0aF09Jzx0YWJsZVBhcnRzIGNvdW50PSInK1NlWyIhdGFibGVzIl0ubGVuZ3RoKyciPicsU2VbIiF0YWJsZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKHVuLHFuKXtrdD16byhR'@; put 'LC0xLCIuLi90YWJsZXMvdGFibGUiKyh5KzEpKyJfIitxbisiLnhtbCIsSGkuVEFCTEUpLHJlW3JlLmxlbmd0aF09Jzx0YWJsZVBhcnQgcjppZD0icklkJytrdCsnIi8+J30pLHJlW3JlLmxlbmd0aF09IjwvdGFibGVQYXJ0cz4iKSxyZS5sZW5ndGg+MSYmKHJlW3JlLmxlbmd0aF09Ijwvd29y'@; put 'a3NoZWV0PiIscmVbMV09cmVbMV0ucmVwbGFjZSgiLz4iLCI+IikpLHJlLmpvaW4oIiIpfWZ1bmN0aW9uICRJKHksUCxMLFEpe3ZhciByZT1mdW5jdGlvbiBQdih5LFAsTCl7dmFyIFE9cHIoMTQ1KSxyZT0oTFsiIXJvd3MiXXx8W10pW3ldfHx7fTtRLndyaXRlX3NoaWZ0KDQseSksUS53cml0'@; put 'ZV9zaGlmdCg0LDApO3ZhciBnZT0zMjA7cmUuaHB4P2dlPTIwKmoyKHJlLmhweCk6cmUuaHB0JiYoZ2U9MjAqcmUuaHB0KSxRLndyaXRlX3NoaWZ0KDIsZ2UpLFEud3JpdGVfc2hpZnQoMSwwKTt2YXIgX2U9MDtyZS5sZXZlbCYmKF9lfD1yZS5sZXZlbCkscmUuaGlkZGVuJiYoX2V8PTE2KSwo'@; put 'cmUuaHB4fHxyZS5ocHQpJiYoX2V8PTMyKSxRLndyaXRlX3NoaWZ0KDEsX2UpLFEud3JpdGVfc2hpZnQoMSwwKTt2YXIgdmU9MCxTZT1RLmw7US5sKz00O2Zvcih2YXIgSGU9e3I6eSxjOjB9LEJlPTA7QmU8MTY7KytCZSlpZighKFAucy5jPkJlKzE8PDEwfHxQLmUuYzxCZTw8MTApKXtmb3Io'@; put 'dmFyIEdlPS0xLG50PS0xLGR0PUJlPDwxMDtkdDxCZSsxPDwxMDsrK2R0KUhlLmM9ZHQsKEFycmF5LmlzQXJyYXkoTCk/KExbSGUucl18fFtdKVtIZS5jXTpMW2RpKEhlKV0pJiYoR2U8MCYmKEdlPWR0KSxudD1kdCk7R2U8MHx8KCsrdmUsUS53cml0ZV9zaGlmdCg0LEdlKSxRLndyaXRlX3No'@; put 'aWZ0KDQsbnQpKX12YXIgY3Q9US5sO3JldHVybiBRLmw9U2UsUS53cml0ZV9zaGlmdCg0LHZlKSxRLmw9Y3QsUS5sZW5ndGg+US5sP1Euc2xpY2UoMCxRLmwpOlF9KFEsTCxQKTsocmUubGVuZ3RoPjE3fHwoUFsiIXJvd3MiXXx8W10pW1FdKSYmdWkoeSwiQnJ0Um93SGRyIixyZSl9dmFyIHFJ'@; put 'PUpjLEtJPUQxO2Z1bmN0aW9uIGpTKHkpe3JldHVyblthMCh5KSxtYSh5KSwibiJdfXZhciBsTD1KYyxZUz1EMSxxUz1bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdLGVvPVsiQW55IiwiV2hvbGUiLCJEZWNpbWFsIiwiTGlzdCIsIkRhdGUiLCJUaW1l'@; put 'IiwiTGVuZ3RoIiwiQ3VzdG9tIl0sQnY9WyJJTiIsIk9UIiwiRVEiLCJORSIsIkdUIiwiTFQiLCJHRSIsIkxFIl07ZnVuY3Rpb24gd0woeSl7dmFyIFA9cHIoNCksTD1bUF0sUT1lby5pbmRleE9mKHkudCk7aWYoUTwwKXRocm93IG5ldyBFcnJvcigiQmFkIHZhbGlkYXRpb246IHVucmVjb2du'@; put 'aXplZCB0eXBlICIreS50KTt2YXIgZ2U9QnYuaW5kZXhPZih5Lm9wKTtzd2l0Y2goUSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDc6Z2U9MDticmVhaztkZWZhdWx0OmlmKC0xPT1nZSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRhIFZhbGlkYXRpb24gdHlwZSAiK3kub3ArIiBmb3IgIit5LnQpfVAu'@; put 'd3JpdGVfc2hpZnQoMSwwfFEpLFAud3JpdGVfc2hpZnQoMSwxKSxQLndyaXRlX3NoaWZ0KDEsMTJ8Z2U8PDQpLFAud3JpdGVfc2hpZnQoMSwwKSxMLnB1c2goZnVuY3Rpb24gWmgoeSl7dmFyIFA9eS5zcGxpdCgvXHMqLFxzKi8pLEw9cHIoNCk7TC53cml0ZV9zaGlmdCg0LFAubGVuZ3RoKTt2'@; put 'YXIgUT1bTF07cmV0dXJuIFAuZm9yRWFjaChmdW5jdGlvbihyZSl7US5wdXNoKEQxKE9pKHJlKSkpfSksUyhRKX0oInN0cmluZyI9PXR5cGVvZiB5LnJlZj95LnJlZjpPbyh5LnJlZikpKTt2YXIgX2U9cHIoMTYpO19lLndyaXRlX3NoaWZ0KDQsNDI5NDk2NzI5NSksX2Uud3JpdGVfc2hpZnQo'@; put 'NCw0Mjk0OTY3Mjk1KSxfZS53cml0ZV9zaGlmdCg0LDQyOTQ5NjcyOTUpLF9lLndyaXRlX3NoaWZ0KDQsNDI5NDk2NzI5NSksTC5wdXNoKF9lKTt2YXIgdmU9cHIoOCk7dmUud3JpdGVfc2hpZnQoNCwwKSx2ZS53cml0ZV9zaGlmdCg0LDApO3ZhciBTZT0xO3N3aXRjaCh5LnQpe2Nhc2UiQW55'@; put 'IjpMLnB1c2godmUpLEwucHVzaCh2ZSk7YnJlYWs7Y2FzZSJEZWNpbWFsIjpjYXNlIkxlbmd0aCI6Y2FzZSJXaG9sZSI6aWYobnVsbCE9eS52fHxudWxsIT15LmYpTC5wdXNoKCJudW1iZXIiPT10eXBlb2YgeS52P212KHkudik6VTMobnVsbD09eS52P3kuZjp5LnYpKTtlbHNle2lmKG51bGw9'@; put 'PXkubWlufHxudWxsPT15Lm1heCl0aHJvdyJVbnN1cHBvcnRlZCBEYXRhIFZhbGlkYXRpb246IGB2YCBvciBgbWluYCtgbWF4YCByZXF1aXJlZCBmb3IgVHlwZSAiK3kudDtMLnB1c2goIm51bWJlciI9PXR5cGVvZiB5Lm1pbj9tdih5Lm1pbik6VTMoeS5taW4pKSxMLnB1c2goIm51bWJlciI9'@; put 'PXR5cGVvZiB5Lm1heD9tdih5Lm1heCk6VTMoeS5tYXgpKSxTZT0yfWJyZWFrO2Nhc2UiTGlzdCI6aWYobnVsbCE9eS5sKXtMLnB1c2goYVMoeS5sLmpvaW4oIiwiKSkpO2JyZWFrfWNhc2UiQ3VzdG9tIjppZigibnVsbCIhPXkuZil7TC5wdXNoKFUzKHkuZikpO2JyZWFrfXRocm93IlVuc3Vw'@; put 'cG9ydGVkIERhdGEgVmFsaWRhdGlvbjogYGZgIisoIkxpc3QiPT15LnQ/IiBvciBgbGAiOiIiKSsiIHJlcXVpcmVkIGZvciBUeXBlICIreS50O2RlZmF1bHQ6dGhyb3ciWExTQiBkb2VzIG5vdCBzdXBwb3J0IERhdGEgVmFsaWRhdGlvbiB0eXBlICIreS50fXJldHVybiAxPT1TZSYmTC5wdXNo'@; put 'KHZlKSxTKEwpfWZ1bmN0aW9uIFNMKHksUCxMLFEscmUsZ2UsX2Upe2lmKHZvaWQgMD09PVAudiYmbnVsbD09UC5zfHwieiI9PT1QLnQmJiFyZS5zaGVldFN0dWJzKXJldHVybiExO3ZhciB2ZT0iIjtzd2l0Y2goUC50KXtjYXNlImIiOnZlPVAudj8iMSI6IjAiO2JyZWFrO2Nhc2UiZCI6KFA9'@; put 'b24oUCkpLno9UC56fHx3Ll90YWJsZVsxNF0sUC52PVVlKEh0KFAudikpLFAudD0ibiI7YnJlYWs7Y2FzZSJuIjpjYXNlImUiOnZlPSIiK1AudjticmVhaztkZWZhdWx0OnZlPVAudn12YXIgU2U9e3I6TCxjOlF9O3N3aXRjaChTZS5zPWd1KHJlLmNlbGxYZnMscmUuY2VsbFN0eWxlWGZzLFAs'@; put 'cmUpLFAubCYmZ2VbIiFsaW5rcyJdLnB1c2goW2RpKFNlKSxQLmxdKSxQLmMmJmdlWyIhY29tbWVudHMiXS5wdXNoKFtkaShTZSksUC5jXSksUC50KXtjYXNlInMiOmNhc2Uic3RyIjppZihyZS5ib29rU1NUKXtpZih2ZT13dihyZS5TdHJpbmdzLFAudixQLlI/UC5yPUpoKFAuUik6bnVsbCxy'@; put 'ZS5yZXZTdHJpbmdzKSxQLlIpZm9yKHZhciBIZT0wO0hlPFAuUi5sZW5ndGg7KytIZSlQLlJbSGVdLnMmJmd1KHJlLmNlbGxYZnMscmUuY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpQLlJbSGVdLnN9LHJlKTtTZS50PSJzIixTZS52PXZlLF9lP3VpKHksIkJydFNob3J0SXNzdCIsZnVuY3Rp'@; put 'b24gdEwoeSxQLEwpe3JldHVybiBudWxsPT1MJiYoTD1wcig4KSksS2MoUCxMKSxMLndyaXRlX3NoaWZ0KDQsUC52KSxMfSgwLFNlKSk6dWkoeSwiQnJ0Q2VsbElzc3QiLGZ1bmN0aW9uIE52KHksUCxMKXtyZXR1cm4gbnVsbD09TCYmKEw9cHIoMTIpKSxGaShQLEwpLEwud3JpdGVfc2hpZnQo'@; put 'NCxQLnYpLEx9KDAsU2UpKX1lbHNlIFNlLnQ9InN0ciIsX2U/dWkoeSwiQnJ0U2hvcnRTdCIsZnVuY3Rpb24gclkoeSxQLEwpe3JldHVybiBudWxsPT1MJiYoTD1wcig4KzQqeS52Lmxlbmd0aCkpLEtjKFAsTCkscmMoeS52LEwpLEwubGVuZ3RoPkwubD9MLnNsaWNlKDAsTC5sKTpMfShQLFNl'@; put 'KSk6dWkoeSwiQnJ0Q2VsbFN0IixmdW5jdGlvbiB1NSh5LFAsTCl7cmV0dXJuIG51bGw9PUwmJihMPXByKDEyKzQqeS52Lmxlbmd0aCkpLEZpKFAsTCkscmMoeS52LEwpLEwubGVuZ3RoPkwubD9MLnNsaWNlKDAsTC5sKTpMfShQLFNlKSk7cmV0dXJuITA7Y2FzZSJuIjpyZXR1cm4gUC52PT0o'@; put 'MHxQLnYpJiZQLnY+LTFlMyYmUC52PDFlMz9fZT91aSh5LCJCcnRTaG9ydFJrIixmdW5jdGlvbiBvTCh5LFAsTCl7cmV0dXJuIG51bGw9PUwmJihMPXByKDgpKSxLYyhQLEwpLFNzKHkudixMKSxMfShQLFNlKSk6dWkoeSwiQnJ0Q2VsbFJrIixmdW5jdGlvbiBuWSh5LFAsTCl7cmV0dXJuIG51'@; put 'bGw9PUwmJihMPXByKDEyKSksRmkoUCxMKSxTcyh5LnYsTCksTH0oUCxTZSkpOl9lP3VpKHksIkJydFNob3J0UmVhbCIsZnVuY3Rpb24gckwoeSxQLEwpe3JldHVybiBudWxsPT1MJiYoTD1wcigxMikpLEtjKFAsTCksRmMoeS52LEwpLEx9KFAsU2UpKTp1aSh5LCJCcnRDZWxsUmVhbCIsZnVu'@; put 'Y3Rpb24gVnYoeSxQLEwpe3JldHVybiBudWxsPT1MJiYoTD1wcigxNikpLEZpKFAsTCksRmMoeS52LEwpLEx9KFAsU2UpKSwhMDtjYXNlImIiOnJldHVybiBTZS50PSJiIixfZT91aSh5LCJCcnRTaG9ydEJvb2wiLGZ1bmN0aW9uIEh2KHksUCxMKXtyZXR1cm4gbnVsbD09TCYmKEw9cHIoNSkp'@; put 'LEtjKFAsTCksTC53cml0ZV9zaGlmdCgxLHkudj8xOjApLEx9KFAsU2UpKTp1aSh5LCJCcnRDZWxsQm9vbCIsZnVuY3Rpb24gRlMoeSxQLEwpe3JldHVybiBudWxsPT1MJiYoTD1wcig5KSksRmkoUCxMKSxMLndyaXRlX3NoaWZ0KDEseS52PzE6MCksTH0oUCxTZSkpLCEwO2Nhc2UiZSI6cmV0'@; put 'dXJuIFNlLnQ9ImUiLF9lP3VpKHksIkJydFNob3J0RXJyb3IiLGZ1bmN0aW9uIFZTKHksUCxMKXtyZXR1cm4gbnVsbD09TCYmKEw9cHIoOCkpLEtjKFAsTCksTC53cml0ZV9zaGlmdCgxLHkudiksTC53cml0ZV9zaGlmdCgyLDApLEwud3JpdGVfc2hpZnQoMSwwKSxMfShQLFNlKSk6dWkoeSwi'@; put 'QnJ0Q2VsbEVycm9yIixmdW5jdGlvbiBIUyh5LFAsTCl7cmV0dXJuIG51bGw9PUwmJihMPXByKDkpKSxGaShQLEwpLEwud3JpdGVfc2hpZnQoMSx5LnYpLEx9KFAsU2UpKSwhMH1yZXR1cm4gX2U/dWkoeSwiQnJ0U2hvcnRCbGFuayIsZnVuY3Rpb24gZUwoeSxQLEwpe3JldHVybiBudWxsPT1M'@; put 'JiYoTD1wcig0KSksS2MoUCxMKX0oMCxTZSkpOnVpKHksIkJydENlbGxCbGFuayIsZnVuY3Rpb24gUUkoeSxQLEwpe3JldHVybiBudWxsPT1MJiYoTD1wcig4KSksRmkoUCxMKX0oMCxTZSkpLCEwfWZ1bmN0aW9uIEFMKHksUCxMLFEpe3ZhciByZT13YygpLGdlPUwuU2hlZXROYW1lc1t5XSxf'@; put 'ZT1MLlNoZWV0c1tnZV18fHt9LHZlPWdlO3RyeXtMJiZMLldvcmtib29rJiYodmU9TC5Xb3JrYm9vay5TaGVldHNbeV0uQ29kZU5hbWV8fHZlKX1jYXRjaHt9dmFyIFNlPU9pKF9lWyIhcmVmIl18fCJBMSIpO2lmKFNlLmUuYz4xNjM4M3x8U2UuZS5yPjEwNDg1NzUpe2lmKFAuV1RGKXRocm93'@; put 'IG5ldyBFcnJvcigiUmFuZ2UgIisoX2VbIiFyZWYiXXx8IkExIikrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpYRkQxMDQ4NTc2Iik7U2UuZS5jPU1hdGgubWluKFNlLmUuYywxNjM4MyksU2UuZS5yPU1hdGgubWluKFNlLmUuYywxMDQ4NTc1KX1yZXR1cm4gX2VbIiFsaW5rcyJdPVtdLF9l'@; put 'WyIhY29tbWVudHMiXT1bXSx1aShyZSwiQnJ0QmVnaW5TaGVldCIpLChMLnZiYXJhd3x8X2VbIiFvdXRsaW5lIl0pJiZ1aShyZSwiQnJ0V3NQcm9wIixmdW5jdGlvbiAkMSh5LFAsTCl7bnVsbD09TCYmKEw9cHIoODQrNCp5Lmxlbmd0aCkpO3ZhciBRPTE5MjtQJiYoUC5hYm92ZSYmKFEmPS02'@; put 'NSksUC5sZWZ0JiYoUSY9LTEyOSkpLEwud3JpdGVfc2hpZnQoMSxRKTtmb3IodmFyIHJlPTE7cmU8MzsrK3JlKUwud3JpdGVfc2hpZnQoMSwwKTtyZXR1cm4gUjIoe2F1dG86MX0sTCksTC53cml0ZV9zaGlmdCgtNCwtMSksTC53cml0ZV9zaGlmdCgtNCwtMSksc20oeSxMKSxMLnNsaWNlKDAs'@; put 'TC5sKX0odmUsX2VbIiFvdXRsaW5lIl0pKSx1aShyZSwiQnJ0V3NEaW0iLEtJKFNlKSksZnVuY3Rpb24gZU0oeSxQLEwpe3VpKHksIkJydEJlZ2luV3NWaWV3cyIpLHVpKHksIkJydEJlZ2luV3NWaWV3IixmdW5jdGlvbiBtTCh5LFAsTCl7bnVsbD09TCYmKEw9cHIoMzApKTt2YXIgUT05MjQ7'@; put 'cmV0dXJuKCgoUHx8e30pLlZpZXdzfHxbXSlbMF18fHt9KS5SVEwmJihRfD0zMiksaG4oeVsiIWdyaWRsaW5lcyJdKSYmKFEmPS01KSxobigoKChQfHx7fSkuVmlld3N8fFtdKVswXXx8e30pLmdyaWQpJiYoUSY9LTUpLEwud3JpdGVfc2hpZnQoMixRKSxMLndyaXRlX3NoaWZ0KDQsMCksTC53'@; put 'cml0ZV9zaGlmdCg0LDApLEwud3JpdGVfc2hpZnQoNCwwKSxMLndyaXRlX3NoaWZ0KDEsMCksTC53cml0ZV9zaGlmdCgxLDApLEwud3JpdGVfc2hpZnQoMiwwKSxMLndyaXRlX3NoaWZ0KDIsMTAwKSxMLndyaXRlX3NoaWZ0KDIsMCksTC53cml0ZV9zaGlmdCgyLDApLEwud3JpdGVfc2hpZnQo'@; put 'MiwwKSxMLndyaXRlX3NoaWZ0KDQsMCksTH0oUCxMKSksUFsiIWZyZWV6ZSJdJiZ1aSh5LCJCcnRQYW5lIixmdW5jdGlvbiAkUyh5KXt2YXIgUD1zcyh5WyIhZnJlZXplIl0pLEw9cHIoMjkpO3JldHVybiBMLndyaXRlX3NoaWZ0KDgsUC5jLCJmIiksTC53cml0ZV9zaGlmdCg4LFAuciwiZiIp'@; put 'LEwud3JpdGVfc2hpZnQoNCxQLnIpLEwud3JpdGVfc2hpZnQoNCxQLmMpLEwud3JpdGVfc2hpZnQoNCwwKSxMLndyaXRlX3NoaWZ0KDEsMyksTH0oUCkpLFBbIiFzZWwiXSYmdWkoeSwiQnJ0U2VsIixmdW5jdGlvbiBkTCh5LFApe3ZhciBMPXByKDM2KSxRPXkuY2VsbDtpZighUSl7aWYoIXku'@; put 'cmFuZ2UpdGhyb3cgbmV3IEVycm9yKCJNdXN0IHNwZWNpZnkgYSBzZWxlY3Rpb24gY2VsbCBvciByYW5nZSIpO1E9ZGkoV3MoeS5yYW5nZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zKX12YXIgcmU9InN0cmluZyI9PXR5cGVvZiBRP3NzKFEpOlE7aWYoUCl7dmFyIGdlPSJzdHJpbmciPT10eXBl'@; put 'b2YgUD9zcyhQKTpQO0wud3JpdGVfc2hpZnQoNCxyZS5yPj1nZS5yJiZyZS5jPj1nZS5jPzA6cmUucj49Z2UuciYmcmUuYzxnZS5jPzI6cmUucjxnZS5yJiZyZS5jPj1nZS5jPzE6Myl9ZWxzZSBMLndyaXRlX3NoaWZ0KDQsMyk7cmV0dXJuIEwud3JpdGVfc2hpZnQoNCxyZS5yKSxMLndyaXRl'@; put 'X3NoaWZ0KDQscmUuYyksTC53cml0ZV9zaGlmdCg0LDApLEwud3JpdGVfc2hpZnQoNCwxKSxMLndyaXRlX3NoaWZ0KDQscmUuciksTC53cml0ZV9zaGlmdCg0LHJlLnIpLEwud3JpdGVfc2hpZnQoNCxyZS5jKSxMLndyaXRlX3NoaWZ0KDQscmUuYyksTH0oUFsiIXNlbCJdLFBbIiFmcmVlemUi'@; put 'XSkpLHVpKHksIkJydEVuZFdzVmlldyIpLHVpKHksIkJydEVuZFdzVmlld3MiKX0ocmUsX2UsTC5Xb3JrYm9vayksZnVuY3Rpb24gWFMoeSxQKXshUHx8IVBbIiFjb2xzIl18fCh1aSh5LCJCcnRCZWdpbkNvbEluZm9zIiksUFsiIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKEwsUSl7TCYmdWko'@; put 'eSwiQnJ0Q29sSW5mbyIsZnVuY3Rpb24gaVkoeSxQLEwpe251bGw9PUwmJihMPXByKDE4KSk7dmFyIFE9WWQoeSxQKTtMLndyaXRlX3NoaWZ0KC00LHkpLEwud3JpdGVfc2hpZnQoLTQseSksTC53cml0ZV9zaGlmdCg0LDI1NiooUS53aWR0aHx8MTApKSxMLndyaXRlX3NoaWZ0KDQsMCk7dmFy'@; put 'IHJlPTA7cmV0dXJuIFAuaGlkZGVuJiYocmV8PTEpLCJudW1iZXIiPT10eXBlb2YgUS53aWR0aCYmKHJlfD0yKSxQLmxldmVsJiYocmV8PVAubGV2ZWw8PDgpLEwud3JpdGVfc2hpZnQoMixyZSksTH0oUSxMKSl9KSx1aSh5LCJCcnRFbmRDb2xJbmZvcyIpKX0ocmUsX2UpLGZ1bmN0aW9uIE1M'@; put 'KHksUCxMLFEpe3ZhciByZT1PaShQWyIhcmVmIl18fCJBMSIpLF9lPSIiLHZlPVtdO3VpKHksIkJydEJlZ2luU2hlZXREYXRhIik7dmFyIFNlPUFycmF5LmlzQXJyYXkoUCksSGU9cmUuZS5yO1BbIiFyb3dzIl0mJihIZT1NYXRoLm1heChyZS5lLnIsUFsiIXJvd3MiXS5sZW5ndGgtMSkpO2Zv'@; put 'cih2YXIgQmU9cmUucy5yO0JlPD1IZTsrK0JlKXtfZT1IcyhCZSksJEkoeSxQLHJlLEJlKTt2YXIgR2U9ITE7aWYoQmU8PXJlLmUucilmb3IodmFyIG50PXJlLnMuYztudDw9cmUuZS5jOysrbnQpe0JlPT09cmUucy5yJiYodmVbbnRdPU5zKG50KSk7dmFyIGR0PVNlPyhQW0JlXXx8W10pW250'@; put 'XTpQW3ZlW250XStfZV07R2U9ISFkdCYmU0woeSxkdCxCZSxudCxRLFAsR2UpfX11aSh5LCJCcnRFbmRTaGVldERhdGEiKX0ocmUsX2UsMCxQKSxmdW5jdGlvbiBrNih5LFApe1BbIiFwcm90ZWN0Il0mJnVpKHksIkJydFNoZWV0UHJvdGVjdGlvbiIsZnVuY3Rpb24gX0woeSxQKXtyZXR1cm4g'@; put 'bnVsbD09UCYmKFA9cHIoNjYpKSxQLndyaXRlX3NoaWZ0KDIseS5wYXNzd29yZD9hQyh5LnBhc3N3b3JkKTowKSxQLndyaXRlX3NoaWZ0KDQsMSksW1sib2JqZWN0cyIsITFdLFsic2NlbmFyaW9zIiwhMV0sWyJmb3JtYXRDZWxscyIsITBdLFsiZm9ybWF0Q29sdW1ucyIsITBdLFsiZm9ybWF0'@; put 'Um93cyIsITBdLFsiaW5zZXJ0Q29sdW1ucyIsITBdLFsiaW5zZXJ0Um93cyIsITBdLFsiaW5zZXJ0SHlwZXJsaW5rcyIsITBdLFsiZGVsZXRlQ29sdW1ucyIsITBdLFsiZGVsZXRlUm93cyIsITBdLFsic2VsZWN0TG9ja2VkQ2VsbHMiLCExXSxbInNvcnQiLCEwXSxbImF1dG9GaWx0ZXIiLCEw'@; put 'XSxbInBpdm90VGFibGVzIiwhMF0sWyJzZWxlY3RVbmxvY2tlZENlbGxzIiwhMV1dLmZvckVhY2goZnVuY3Rpb24oTCl7UC53cml0ZV9zaGlmdCg0LExbMV0/bnVsbD09eVtMWzBdXXx8eVtMWzBdXT8wOjE6bnVsbCE9eVtMWzBdXSYmeVtMWzBdXT8wOjEpfSksUH0oUFsiIXByb3RlY3QiXSkp'@; put 'fShyZSxfZSksZnVuY3Rpb24gUVMoeSxQLEwsUSl7aWYoUFsiIWF1dG9maWx0ZXIiXSl7dmFyIHJlPVBbIiFhdXRvZmlsdGVyIl0sZ2U9InN0cmluZyI9PXR5cGVvZiByZS5yZWY/cmUucmVmOk9vKHJlLnJlZik7TC5Xb3JrYm9va3x8KEwuV29ya2Jvb2s9e1NoZWV0czpbXX0pLEwuV29ya2Jv'@; put 'b2suTmFtZXN8fChMLldvcmtib29rLk5hbWVzPVtdKTt2YXIgX2U9TC5Xb3JrYm9vay5OYW1lcyx2ZT1XcyhnZSk7dmUucy5yPT12ZS5lLnImJih2ZS5lLnI9V3MoUFsiIXJlZiJdKS5lLnIsZ2U9T28odmUpKTtmb3IodmFyIFNlPTA7U2U8X2UubGVuZ3RoOysrU2Upe3ZhciBIZT1fZVtTZV07'@; put 'aWYoIl94bG5tLl9GaWx0ZXJEYXRhYmFzZSI9PUhlLk5hbWUmJkhlLlNoZWV0PT1RKXtIZS5SZWY9IiciK0wuU2hlZXROYW1lc1tRXSsiJyEiK2dlO2JyZWFrfX1TZT09X2UubGVuZ3RoJiZfZS5wdXNoKHtOYW1lOiJfeGxubS5fRmlsdGVyRGF0YWJhc2UiLFNoZWV0OlEsUmVmOiInIitMLlNo'@; put 'ZWV0TmFtZXNbUV0rIichIitnZX0pLHVpKHksIkJydEJlZ2luQUZpbHRlciIsRDEoT2koZ2UpKSksdWkoeSwiQnJ0RW5kQUZpbHRlciIpfX0ocmUsX2UsTCx5KSxmdW5jdGlvbiB4TCh5LFApeyFQfHwhUFsiIW1lcmdlcyJdfHwodWkoeSwiQnJ0QmVnaW5NZXJnZUNlbGxzIixmdW5jdGlvbiBX'@; put 'Uyh5LFApe3JldHVybiBudWxsPT1QJiYoUD1wcig0KSksUC53cml0ZV9zaGlmdCg0LHkpLFB9KFBbIiFtZXJnZXMiXS5sZW5ndGgpKSxQWyIhbWVyZ2VzIl0uZm9yRWFjaChmdW5jdGlvbihMKXt1aSh5LCJCcnRNZXJnZUNlbGwiLFlTKEwpKX0pLHVpKHksIkJydEVuZE1lcmdlQ2VsbHMiKSl9'@; put 'KHJlLF9lKSxmdW5jdGlvbiBrTCh5LFApe2lmKFApe3VpKHksIkJydEJlZ2luRFZhbHMiLGZ1bmN0aW9uIEtTKHksUCl7bnVsbD09UCYmKFA9cHIoMTgpKSxQLndyaXRlX3NoaWZ0KDIsMCksUC53cml0ZV9zaGlmdCg0LDApLFAud3JpdGVfc2hpZnQoNCwwKSxQLndyaXRlX3NoaWZ0KDQsMCk7'@; put 'Zm9yKHZhciBMPTAsUT0wO1E8eS5sZW5ndGg7KytRKSgoeVtRXXx8e30pLnJlZnx8e30pLnMmJnlbUV0ucmVmLnMuYzwwfHwrK0w7cmV0dXJuIFAud3JpdGVfc2hpZnQoNCxMKSxQfShQKSk7Zm9yKHZhciBMPTA7TDxQLmxlbmd0aDsrK0wpKChQW0xdfHx7fSkucmVmfHx7fSkucyYmUFtMXS5y'@; put 'ZWYucy5jPDB8fHVpKHksIkJydERWYWwiLHdMKFBbTF0pKTt1aSh5LCJCcnRFbmREVmFscyIpfX0ocmUsX2VbIiF2YWxpZGF0aW9ucyJdKSxmdW5jdGlvbiBFTCh5LFAsTCl7UFsiIWxpbmtzIl0uZm9yRWFjaChmdW5jdGlvbihRKXtpZihRWzFdLlRhcmdldCl7dmFyIHJlPXpvKEwsLTEsUVsx'@; put 'XS5UYXJnZXQucmVwbGFjZSgvIy4qJC8sIiIpLEhpLkhMSU5LKTt1aSh5LCJCcnRITGluayIsZnVuY3Rpb24gY0woeSxQKXt2YXIgTD1wcig1MCs0Kih5WzFdLlRhcmdldC5sZW5ndGgrKHlbMV0uVG9vbHRpcHx8IiIpLmxlbmd0aCkpO0QxKHtzOnNzKHlbMF0pLGU6c3MoeVswXSl9LEwpLFBj'@; put 'KCJySWQiK1AsTCk7dmFyIFE9eVsxXS5UYXJnZXQuaW5kZXhPZigiIyIpO3JldHVybiByYygoLTE9PVE/IiI6eVsxXS5UYXJnZXQuc2xpY2UoUSsxKSl8fCIiLEwpLHJjKHlbMV0uVG9vbHRpcHx8IiIsTCkscmMoIiIsTCksTC5zbGljZSgwLEwubCl9KFEscmUpKX19KSxkZWxldGUgUFsiIWxp'@; put 'bmtzIl19KHJlLF9lLFEpLF9lWyIhbWFyZ2lucyJdJiZ1aShyZSwiQnJ0TWFyZ2lucyIsZnVuY3Rpb24gcEwoeSxQKXtyZXR1cm4gbnVsbD09UCYmKFA9cHIoNDgpKSxkZih5KSxxUy5mb3JFYWNoKGZ1bmN0aW9uKEwpe0ZjKHlbTF0sUCl9KSxQfShfZVsiIW1hcmdpbnMiXSkpLCghUHx8UC5p'@; put 'Z25vcmVFQ3x8bnVsbD09UC5pZ25vcmVFQykmJmZ1bmN0aW9uIEpTKHksUCl7IVB8fCFQWyIhcmVmIl18fCh1aSh5LCJCcnRCZWdpbkNlbGxJZ25vcmVFQ3MiKSx1aSh5LCJCcnRDZWxsSWdub3JlRUMiLGZ1bmN0aW9uIHZMKHkpe3ZhciBQPXByKDI0KTtyZXR1cm4gUC53cml0ZV9zaGlmdCg0'@; put 'LDQpLFAud3JpdGVfc2hpZnQoNCwxKSxEMSh5LFApLFB9KE9pKFBbIiFyZWYiXSkpKSx1aSh5LCJCcnRFbmRDZWxsSWdub3JlRUNzIikpfShyZSxfZSksZnVuY3Rpb24gb1koeSxQLEwsUSl7aWYoUFsiIWNvbW1lbnRzIl0ubGVuZ3RoPjApe3ZhciByZT16byhRLC0xLCIuLi9kcmF3aW5ncy92'@; put 'bWxEcmF3aW5nIisoTCsxKSsiLnZtbCIsSGkuVk1MKTt1aSh5LCJCcnRMZWdhY3lEcmF3aW5nIixQYygicklkIityZSkpLFBbIiFsZWdhY3kiXT1yZX19KHJlLF9lLHksUSksdWkocmUsIkJydEVuZFNoZWV0IikscmUuZW5kKCl9ZnVuY3Rpb24gQTYoeSl7dmFyIFEsUD1bXSxMPXkubWF0Y2go'@; put 'L148YzpudW1DYWNoZT4vKTsoeS5tYXRjaCgvPGM6cHQgaWR4PSIoXGQqKSI+KC4qPyk8XC9jOnB0Pi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGdlKXt2YXIgX2U9Z2UubWF0Y2goLzxjOnB0IGlkeD0iKFxkKj8pIj48Yzp2PiguKik8XC9jOnY+PFwvYzpwdD4vKTtfZSYmKFBbK19lWzFd'@; put 'XT1MPytfZVsyXTpfZVsyXSl9KTt2YXIgcmU9eHIoKHkubWF0Y2goLzxjOmZvcm1hdENvZGU+KFtcc1xTXSo/KTxcL2M6Zm9ybWF0Q29kZT4vKXx8WyIiLCJHZW5lcmFsIl0pWzFdKTtyZXR1cm4oeS5tYXRjaCgvPGM6Zj4oLio/KTxcL2M6Zj4vZ20pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihn'@; put 'ZSl7UT1nZS5yZXBsYWNlKC88Lio/Pi9nLCIiKX0pLFtQLHJlLFFdfUhpLkNIQVJUPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2NoYXJ0IixIaS5DSEFSVEVYPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29t'@; put 'L29mZmljZS8yMDE0L3JlbGF0aW9uc2hpcHMvY2hhcnRFeCI7dmFyIGY1PS88KD86XHcrOik/Y2hhcnQ+KFtcc1xTXSo/KTxcLyg/Olx3KzopP2NoYXJ0Pi8samM9LzwoPzpcdys6KT9wbG90QXJlYT4oW1xzXFNdKj8pPFwvKD86XHcrOik/cGxvdEFyZWE+LyxnZj0vPCg/Olx3KzopP2xlZ2Vu'@; put 'ZD4oW1xzXFNdKj8pPFwvKD86XHcrOik/bGVnZW5kPi8sVDY9LzwoPzpcdys6KT90aXRsZT4oW1xzXFNdKj8pPFwvKD86XHcrOik/dGl0bGU+LztmdW5jdGlvbiBtMCh5LFAsTCxRLHJlLGdlLF9lLHZlKXt2YXIgU2U9Z2V8fHsiIXR5cGUiOiJjaGFydCJ9O2lmKCF5KXJldHVybiBnZTtfZSYm'@; put 'X2UuQW5jaG9yJiYoU2VbIiFwb3MiXT1zZihfZS5BbmNob3IsdmUpLFNlWyIhcG9zVHlwZSJdPV9lLkFuY2hvci50eXBlLnJlcGxhY2UoL0FuY2hvci8sIiIpLFNlWyIhYWJzcG9zIl09c2YoX2UuQW5jaG9yLHZlKSxTZVsiIXJlbHBvcyJdPUttKF9lLkFuY2hvcix2ZSkpLFNlWyIhcGxvdCJd'@; put 'PVtdO3ZhciBIZT0iIixCZT0iIixHZT15Lm1hdGNoKGY1KTtHZT8oSGU9eS5zbGljZSgwLEdlLmluZGV4KSxCZT15LnNsaWNlKEdlLmluZGV4K0dlWzBdLmxlbmd0aCkpOkhlPUJlPXk7dmFyIG50PVtdLGR0PUhlLm1hdGNoKC88YzpsYW5nLio/Pi8pfHx5Lm1hdGNoKC88YzpsYW5nLio/Pi8p'@; put 'fHxCZS5tYXRjaCgvPGM6bGFuZy4qPz4vKTtyZXR1cm4gZHQmJihTZVsiIWxhbmciXT0obG4oZHRbMF0pfHx7fSkudmFsfHwiZW4tVVMiKSxHZSYmKChudD1HZVsxXS5tYXRjaChUNikpJiZmdW5jdGlvbiBxMSh5LFApe3ZhciBMPSIiO3kubWF0Y2goLzxjOnJpY2g+LykmJnkucmVwbGFjZSgv'@; put 'PGE6dD4oW1xzXFNdKj8pPFwvYTp0Pi9nLGZ1bmN0aW9uKFEscmUpe0wrPXJlfSksUFsiIXRpdGxlIl09THx8IkNoYXJ0IFRpdGxlIn0obnRbMV0sU2UpLGZ1bmN0aW9uIEszKHksUCl7aWYoeSl7dmFyIEw9MCxRPTAscmU9IkEiLGdlPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19O3ku'@; put 'cmVwbGFjZShUcixmdW5jdGlvbihfZSx2ZSl7dmFyIFNlPXt0OnZlLGM6TCx3OjAsc2VyOltdfSxIZT1bXSxCZT0oX2UubWF0Y2goLzxjOnNlci8pfHxbXSkuaW5kZXgsR2U9QmU/X2Uuc2xpY2UoMCxCZSk6X2U7InNjYXR0ZXIiPT12ZSYmKEhlPV9lLm1hdGNoKC88YzpzY2F0dGVyU3R5bGUo'@; put 'W15cLz5dKilcLz4vbSkpJiZsbihIZVswXSksImJhciI9PXZlJiYoSGU9X2UubWF0Y2goLzxjOmJhckRpcihbXlwvPl0qKVwvPi9tKSkmJihTZS5iYXJEaXI9ImJhciI9PWxuKEhlWzBdKS52YWw/ImgiOiJ2IiksKEhlPUdlLm1hdGNoKC88Yzpncm91cGluZyhbXlwvPl0qKVwvPi9tKSkmJihT'@; put 'ZS5ncm91cGluZz1sbihIZVswXSkudmFsfHwic3RhbmRhcmQiKSwoX2UubWF0Y2gocTMpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihkdCl7dmFyIEN0PVtdLGN0PXt9LGJ0PVtdO2lmKGR0Lm1hdGNoKC88Yzp0eD4vKSl7dmFyIEZ0PUE2KChkdC5tYXRjaCgvPGM6dHg+KFtcc1xTXSo/KTxcL2M6'@; put 'dHg+Lyl8fFtdKVsxXXx8IiIpfHxbXTtGdFswXSYmRnRbMF1bMF0mJihjdC5uYW1lPUZ0WzBdWzBdKSxGdFsyXSYmKGN0Lm5hbWVyZWY9RnRbMl0pfVsieFZhbCIsInlWYWwiLCJjYXQiLCJ2YWwiLCJidWJibGVTaXplIl0uZm9yRWFjaChmdW5jdGlvbihrdCl7dmFyIFp0LFR0PWR0Lm1hdGNo'@; put 'KG5ldyBSZWdFeHAoIjxjOiIra3QrIj5bXFxzXFxTXSo/PFxcL2M6IitrdCsiPiIsImdtIikpO1R0JiYoKFR0WzBdLm1hdGNoKC88YzpmPiguKj8pPFwvYzpmPi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHBuKXtadD1wbi5yZXBsYWNlKC88Lio/Pi9nLCIiKX0pLChUdFswXS5tYXRjaCgv'@; put 'PGM6KD86XHcqKUNhY2hlPltcc1xTXSo/PFwvYzooPzpcdyopQ2FjaGU+L2dtKXx8W10pLmZvckVhY2goZnVuY3Rpb24ocG4pe3ZhciBLbj1BNihwbik7Z2Uucy5yPWdlLnMuYz0wLGdlLmUuYz1MLHJlPU5zKEwpLEtuWzBdLmZvckVhY2goZnVuY3Rpb24odW4scW4pe1BbcmUrSHMocW4pXT17'@; put 'dDoibnVtYmVyIj09dHlwZW9mIHVuPyJuIjoicyIsdjp1bix6OktuWzFdfSxRPXFufSksZ2UuZS5yPFEmJihnZS5lLnI9USksKytMLFNlLncrKyxDdC5wdXNoKGt0KSwoS25bMl18fFp0KSYmYnQucHVzaChLblsyXXx8WnQpLCJ2YWwiPT1rdCYmKGN0Lno9S25bMV18fCJHZW5lcmFsIil9KSl9'@; put 'KSwoSGU9X2UubWF0Y2goLzxjOnNtb290aChbXlwvPl0qKVwvPi9tKSkmJihjdC5zbW9vdGg9bnVsbD09bG4oSGVbMF0pLnZhbHx8eXIobG4oSGVbMF0pLnZhbCkpLGN0LmNvbHM9Q3QsY3QucmFuZ2VzPWJ0LFNlLnNlci5wdXNoKGN0KX0pLCJkb3VnaG51dCI9PXZlJiYoSGU9X2UubWF0Y2go'@; put 'LzxjOmhvbGVTaXplKFteXC8+XSopXC8+L20pKSYmKFNlLmhvbGU9KGxuKEhlWzBdKS52YWx8fDEwKS8xMDApLFBbIiFwbG90Il0ucHVzaChTZSl9KSxMPjAmJihQWyIhcmVmIl09T28oZ2UpKX19KChHZVsxXS5tYXRjaChqYyl8fFtdKVsxXSxTZSksbnVsbCE9KG50PUdlWzFdLm1hdGNoKGdm'@; put 'KSkmJmZ1bmN0aW9uIFRMKHksUCl7dmFyIEw7UFsiIWxlZ2VuZCJdPXtwb3M6InIifSwoTD15Lm1hdGNoKC88YzpsZWdlbmRQb3MoW15cLz5dKilcLz4vbSkpJiYoUFsiIWxlZ2VuZCJdLnBvcz1sbihMWzBdKS52YWx8fCJyIil9KG50WzBdLFNlKSksU2V9dmFyIFRyPS88YzooKD86YXJlYXxs'@; put 'aW5lfHN0b2NrfHJhZGFyfHNjYXR0ZXJ8cGllfGRvdWdobnV0fGJhcnxvZlBpZXxzdXJmYWNlfGJ1YmJsZSkoPzozRCk/KUNoYXJ0W14+XSo+KFtcc1xTXSo/KTxcL2M6KD86YXJlYXxsaW5lfHN0b2NrfHJhZGFyfHNjYXR0ZXJ8cGllfGRvdWdobnV0fGJhcnxvZlBpZXxzdXJmYWNlfGJ1YmJs'@; put 'ZSkoPzozRCk/Q2hhcnQ+L2dtLHEzPS88YzpzZXI+KFtcc1xTXSo/KTxcL2M6c2VyPi9nbTtIaS5DUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jaGFydHNoZWV0Ijt2YXIgWDM9U3IoImNoYXJ0c2hlZXQiLG51'@; put 'bGwse3htbG5zOmlzLm1haW5bMF0sInhtbG5zOnIiOmlzLnJ9KTtmdW5jdGlvbiBRMyh5LFAsTCxRKXt2YXIgcmU9W0JuLFgzXTtyZXR1cm4gcmUucHVzaCgiPHNoZWV0UHIvPiIpLHJlLnB1c2goJzxzaGVldFZpZXdzPjxzaGVldFZpZXcgem9vbVNjYWxlPSIxMDAiIHdvcmtib29rVmlld0lk'@; put 'PSIwIiB6b29tVG9GaXQ9IjEiLz48L3NoZWV0Vmlld3M+JykscmVbcmUubGVuZ3RoXT1TcigiZHJhd2luZyIsbnVsbCx7InI6aWQiOiJySWQxIn0pLHpvKFEsLTEsIi4uL2RyYXdpbmdzL2RyYXdpbmciKyh5KzEpKyIueG1sIixIaS5EUkFXKSxyZS5sZW5ndGg+MiYmKHJlW3JlLmxlbmd0aF09'@; put 'IjwvY2hhcnRzaGVldD4iLHJlWzFdPXJlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxyZS5qb2luKCIiKX1mdW5jdGlvbiBucCgpe3ZhciB5PXdjKCk7cmV0dXJuIHVpKHksIkJydEJlZ2luU2hlZXQiKSx1aSh5LCJCcnRFbmRTaGVldCIpLHkuZW5kKCl9dmFyIEsyPVtbImFsbG93UmVmcmVzaFF1'@; put 'ZXJ5IiwhMSwiYm9vbCJdLFsiYXV0b0NvbXByZXNzUGljdHVyZXMiLCEwLCJib29sIl0sWyJiYWNrdXBGaWxlIiwhMSwiYm9vbCJdLFsiY2hlY2tDb21wYXRpYmlsaXR5IiwhMSwiYm9vbCJdLFsiQ29kZU5hbWUiLCIiXSxbImRhdGUxOTA0IiwhMSwiYm9vbCJdLFsiZGVmYXVsdFRoZW1lVmVy'@; put 'c2lvbiIsMCwiaW50Il0sWyJmaWx0ZXJQcml2YWN5IiwhMSwiYm9vbCJdLFsiaGlkZVBpdm90RmllbGRMaXN0IiwhMSwiYm9vbCJdLFsicHJvbXB0ZWRTb2x1dGlvbnMiLCExLCJib29sIl0sWyJwdWJsaXNoSXRlbXMiLCExLCJib29sIl0sWyJyZWZyZXNoQWxsQ29ubmVjdGlvbnMiLCExLCJi'@; put 'b29sIl0sWyJzYXZlRXh0ZXJuYWxMaW5rVmFsdWVzIiwhMCwiYm9vbCJdLFsic2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXMiLCEwLCJib29sIl0sWyJzaG93SW5rQW5ub3RhdGlvbiIsITAsImJvb2wiXSxbInNob3dPYmplY3RzIiwiYWxsIl0sWyJzaG93UGl2b3RDaGFydEZpbHRlciIsITEs'@; put 'ImJvb2wiXSxbInVwZGF0ZUxpbmtzIiwidXNlclNldCJdXSx0TT1bWyJhY3RpdmVUYWIiLDAsImludCJdLFsiYXV0b0ZpbHRlckRhdGVHcm91cGluZyIsITAsImJvb2wiXSxbImZpcnN0U2hlZXQiLDAsImludCJdLFsibWluaW1pemVkIiwhMSwiYm9vbCJdLFsic2hvd0hvcml6b250YWxTY3Jv'@; put 'bGwiLCEwLCJib29sIl0sWyJzaG93U2hlZXRUYWJzIiwhMCwiYm9vbCJdLFsic2hvd1ZlcnRpY2FsU2Nyb2xsIiwhMCwiYm9vbCJdLFsidGFiUmF0aW8iLDYwMCwiaW50Il0sWyJ2aXNpYmlsaXR5IiwidmlzaWJsZSJdXSxuTT1bXSxyTT1bWyJjYWxjQ29tcGxldGVkIiwidHJ1ZSJdLFsiY2Fs'@; put 'Y01vZGUiLCJhdXRvIl0sWyJjYWxjT25TYXZlIiwidHJ1ZSJdLFsiY29uY3VycmVudENhbGMiLCJ0cnVlIl0sWyJmdWxsQ2FsY09uTG9hZCIsImZhbHNlIl0sWyJmdWxsUHJlY2lzaW9uIiwidHJ1ZSJdLFsiaXRlcmF0ZSIsImZhbHNlIl0sWyJpdGVyYXRlQ291bnQiLCIxMDAiXSxbIml0ZXJh'@; put 'dGVEZWx0YSIsIjAuMDAxIl0sWyJyZWZNb2RlIiwiQTEiXV07ZnVuY3Rpb24ganYoeSxQKXtmb3IodmFyIEw9MDtMIT15Lmxlbmd0aDsrK0wpZm9yKHZhciBRPXlbTF0scmU9MDtyZSE9UC5sZW5ndGg7KytyZSl7dmFyIGdlPVBbcmVdO2lmKG51bGw9PVFbZ2VbMF1dKVFbZ2VbMF1dPWdlWzFd'@; put 'O2Vsc2Ugc3dpdGNoKGdlWzJdKXtjYXNlImJvb2wiOiJzdHJpbmciPT10eXBlb2YgUVtnZVswXV0mJihRW2dlWzBdXT15cihRW2dlWzBdXSkpO2JyZWFrO2Nhc2UiaW50Ijoic3RyaW5nIj09dHlwZW9mIFFbZ2VbMF1dJiYoUVtnZVswXV09cGFyc2VJbnQoUVtnZVswXV0sMTApKX19fWZ1bmN0'@; put 'aW9uIHp2KHksUCl7Zm9yKHZhciBMPTA7TCE9UC5sZW5ndGg7KytMKXt2YXIgUT1QW0xdO2lmKG51bGw9PXlbUVswXV0peVtRWzBdXT1RWzFdO2Vsc2Ugc3dpdGNoKFFbMl0pe2Nhc2UiYm9vbCI6InN0cmluZyI9PXR5cGVvZiB5W1FbMF1dJiYoeVtRWzBdXT15cih5W1FbMF1dKSk7YnJlYWs7'@; put 'Y2FzZSJpbnQiOiJzdHJpbmciPT10eXBlb2YgeVtRWzBdXSYmKHlbUVswXV09cGFyc2VJbnQoeVtRWzBdXSwxMCkpfX19ZnVuY3Rpb24gVXYoeSl7enYoeS5XQlByb3BzLEsyKSx6dih5LkNhbGNQcixyTSksanYoeS5XQlZpZXcsdE0pLGp2KHkuU2hlZXRzLG5NKSxaMy5kYXRlMTkwND15cih5'@; put 'LldCUHJvcHMuZGF0ZTE5MDQpfXZhciBvTT0iXVsqPy9cXCIuc3BsaXQoIiIpO2Z1bmN0aW9uIFp2KHksUCl7aWYoeS5sZW5ndGg+MzEpe2lmKFApcmV0dXJuITE7dGhyb3cgbmV3IEVycm9yKCJTaGVldCBuYW1lcyBjYW5ub3QgZXhjZWVkIDMxIGNoYXJzIil9dmFyIEw9ITA7cmV0dXJuIG9N'@; put 'LmZvckVhY2goZnVuY3Rpb24oUSl7aWYoLTEhPXkuaW5kZXhPZihRKSl7aWYoIVApdGhyb3cgbmV3IEVycm9yKCJTaGVldCBuYW1lIGNhbm5vdCBjb250YWluIDogXFwgLyA/ICogWyBdIik7TD0hMX19KSxMfXZhciBzWT0vPFx3Kzp3b3JrYm9vay8sbFk9U3IoIndvcmtib29rIixudWxsLHt4'@; put 'bWxuczppcy5tYWluWzBdLCJ4bWxuczpyIjppcy5yfSk7ZnVuY3Rpb24gUkwoeSxQKXt2YXIgTD1QfHx7fSxRPVtCbl07UVtRLmxlbmd0aF09bFk7dmFyIHJlPXkuV29ya2Jvb2smJih5Lldvcmtib29rLk5hbWVzfHxbXSkubGVuZ3RoPjA7eS5Xb3JrYm9vayYmeS5Xb3JrYm9vay5Nb2RpZnkm'@; put 'JihRW1EubGVuZ3RoXT1mdW5jdGlvbiBJTCh5KXt2YXIgUD17fTtyZXR1cm4geS53YXJuJiYoUC5yZWFkT25seVJlY29tbWVuZGVkPTEpLFAudXNlck5hbWU9eS51c2VyfHwiU2hlZXQgSlMiLHkuZW5jcnlwdGlvbiYmKHkuZW5jcnlwdGlvbi5hbGdvJiYoUC5hbGdvcml0aG1OYW1lPXkuZW5j'@; put 'cnlwdGlvbi5hbGdvKSx5LmVuY3J5cHRpb24uaGFzaCYmKFAuaGFzaFZhbHVlPXkuZW5jcnlwdGlvbi5oYXNoKSx5LmVuY3J5cHRpb24uc2FsdCYmKFAuc2FsdFZhbHVlPXkuZW5jcnlwdGlvbi5zYWx0KSx5LmVuY3J5cHRpb24uc3BpbiYmKFAuc3BpbkNvdW50PXkuZW5jcnlwdGlvbi5zcGlu'@; put 'KSksU3IoImZpbGVTaGFyaW5nIixudWxsLFApfSh5Lldvcmtib29rLk1vZGlmeSkpO3ZhciBnZT17Y29kZU5hbWU6IlRoaXNXb3JrYm9vayJ9O3kuV29ya2Jvb2smJnkuV29ya2Jvb2suV0JQcm9wcyYmKEsyLmZvckVhY2goZnVuY3Rpb24oSGUpe251bGwhPXkuV29ya2Jvb2suV0JQcm9wc1tI'@; put 'ZVswXV0mJnkuV29ya2Jvb2suV0JQcm9wc1tIZVswXV0hPUhlWzFdJiYoZ2VbSGVbMF1dPXkuV29ya2Jvb2suV0JQcm9wc1tIZVswXV0pfSkseS5Xb3JrYm9vay5XQlByb3BzLkNvZGVOYW1lJiYoZ2UuY29kZU5hbWU9eS5Xb3JrYm9vay5XQlByb3BzLkNvZGVOYW1lLGRlbGV0ZSBnZS5Db2Rl'@; put 'TmFtZSkpLFFbUS5sZW5ndGhdPVNyKCJ3b3JrYm9va1ByIixudWxsLGdlKSx5Lldvcmtib29rJiZ5Lldvcmtib29rLlByb3RlY3Rpb24mJihRW1EubGVuZ3RoXT1mdW5jdGlvbiBMTCh5KXt2YXIgUD17fTtyZXR1cm4geS5sb2NrU3RydWN0dXJlJiYoUC5sb2NrU3RydWN0dXJlPTEpLHkubG9j'@; put 'a1dpbmRvd3MmJihQLmxvY2tXaW5kb3dzPTEpLHkuZW5jcnlwdGlvbiYmKHkuZW5jcnlwdGlvbi5hbGdvJiYoUC53b3JrYm9va0FsZ29yaXRobU5hbWU9eS5lbmNyeXB0aW9uLmFsZ28pLHkuZW5jcnlwdGlvbi5oYXNoJiYoUC53b3JrYm9va0hhc2hWYWx1ZT15LmVuY3J5cHRpb24uaGFzaCks'@; put 'eS5lbmNyeXB0aW9uLnNhbHQmJihQLndvcmtib29rU2FsdFZhbHVlPXkuZW5jcnlwdGlvbi5zYWx0KSx5LmVuY3J5cHRpb24uc3BpbiYmKFAud29ya2Jvb2tTcGluQ291bnQ9eS5lbmNyeXB0aW9uLnNwaW4pKSxTcigid29ya2Jvb2tQcm90ZWN0aW9uIixudWxsLFApfSh5Lldvcmtib29rLlBy'@; put 'b3RlY3Rpb24pKTt2YXIgX2U9eS5Xb3JrYm9vayYmeS5Xb3JrYm9vay5TaGVldHN8fFtdLHZlPTA7aWYoX2UmJl9lWzBdJiZfZVswXS5IaWRkZW4pe2ZvcihRW1EubGVuZ3RoXT0iPGJvb2tWaWV3cz4iLHZlPTA7dmUhPXkuU2hlZXROYW1lcy5sZW5ndGgmJl9lW3ZlXSYmX2VbdmVdLkhpZGRl'@; put 'bjsrK3ZlKTt2ZT09eS5TaGVldE5hbWVzLmxlbmd0aCYmKHZlPTApLFFbUS5sZW5ndGhdPSc8d29ya2Jvb2tWaWV3IGZpcnN0U2hlZXQ9IicrdmUrJyIgYWN0aXZlVGFiPSInK3ZlKyciLz4nLFFbUS5sZW5ndGhdPSI8L2Jvb2tWaWV3cz4ifWZvcihRW1EubGVuZ3RoXT0iPHNoZWV0cz4iLHZl'@; put 'PTA7dmUhPXkuU2hlZXROYW1lcy5sZW5ndGg7Kyt2ZSl7dmFyIFNlPXtuYW1lOkhyKHkuU2hlZXROYW1lc1t2ZV0uc2xpY2UoMCwzMSkpfTtpZihTZS5zaGVldElkPSIiKyh2ZSsxKSxTZVsicjppZCJdPSJySWQiKyh2ZSsxKSxfZVt2ZV0pc3dpdGNoKF9lW3ZlXS5IaWRkZW4pe2Nhc2UgMTpT'@; put 'ZS5zdGF0ZT0iaGlkZGVuIjticmVhaztjYXNlIDI6U2Uuc3RhdGU9InZlcnlIaWRkZW4ifVFbUS5sZW5ndGhdPVNyKCJzaGVldCIsbnVsbCxTZSl9cmV0dXJuIFFbUS5sZW5ndGhdPSI8L3NoZWV0cz4iLHkuRXh0ZXJuYWxXQiYmeS5FeHRlcm5hbFdCLmxlbmd0aCYmKFFbUS5sZW5ndGhdPSI8'@; put 'ZXh0ZXJuYWxSZWZlcmVuY2VzPiIsKHkuRXh0ZXJuYWxXQnx8W10pLmZvckVhY2goZnVuY3Rpb24oSGUsQmUpe3ZhciBHZT16byhMLndicmVscywtMSwiZXh0ZXJuYWxMaW5rcy9leHRlcm5hbExpbmsiKyhCZSsxKSsiLnhtbCIsSGkuWExJTkspO1FbUS5sZW5ndGhdPSc8ZXh0ZXJuYWxSZWZl'@; put 'cmVuY2UgcjppZD0icklkJytHZSsnIi8+J30pLFFbUS5sZW5ndGhdPSI8L2V4dGVybmFsUmVmZXJlbmNlcz4iKSxyZSYmKFFbUS5sZW5ndGhdPSI8ZGVmaW5lZE5hbWVzPiIseS5Xb3JrYm9vayYmeS5Xb3JrYm9vay5OYW1lcyYmeS5Xb3JrYm9vay5OYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKEhl'@; put 'KXt2YXIgQmU9e25hbWU6SGUuTmFtZX07SGUuQ29tbWVudCYmKEJlLmNvbW1lbnQ9SGUuQ29tbWVudCksbnVsbCE9SGUuU2hlZXQmJihCZS5sb2NhbFNoZWV0SWQ9IiIrSGUuU2hlZXQpLEhlLkhpZGRlbiYmKEJlLmhpZGRlbj0iMSIpLEhlLlJlZiYmKFFbUS5sZW5ndGhdPVNyKCJkZWZpbmVk'@; put 'TmFtZSIsSHIoSGUuUmVmKSxCZSkpfSksUVtRLmxlbmd0aF09IjwvZGVmaW5lZE5hbWVzPiIpLEwmJkwucGl2b3RzJiZMLnBpdm90cy5sZW5ndGg+MCYmKFEucHVzaCgiPHBpdm90Q2FjaGVzPiIpLEwucGl2b3RzLmZvckVhY2goZnVuY3Rpb24oSGUsQmUpe1EucHVzaCgnPHBpdm90Q2FjaGUg'@; put 'Y2FjaGVJZD0iJysoQmUrMSkrJyIgcjppZD0icklkJytIZVsyXSsnIi8+Jyl9KSxRLnB1c2goIjwvcGl2b3RDYWNoZXM+IikpLFEubGVuZ3RoPjImJihRW1EubGVuZ3RoXT0iPC93b3JrYm9vaz4iLFFbMV09UVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksUS5qb2luKCIiKX1mdW5jdGlvbiBPTCh5'@; put 'LFApe3JldHVybiBQfHwoUD1wcigxMjcpKSxQLndyaXRlX3NoaWZ0KDQseS5IaWRkZW4pLFAud3JpdGVfc2hpZnQoNCx5LmlUYWJJRCksUGMoeS5zdHJSZWxJRCxQKSxyYyh5Lm5hbWUuc2xpY2UoMCwzMSksUCksUC5sZW5ndGg+UC5sP1Auc2xpY2UoMCxQLmwpOlB9ZnVuY3Rpb24gV3YoeSxQ'@; put 'KXt2YXIgTD17fTtyZXR1cm4geS5yZWFkX3NoaWZ0KDQpLEwuQXJjaElEPXkucmVhZF9zaGlmdCg0KSx5LmwrPVAtOCxMfWZ1bmN0aW9uIEhMKHksUCl7dmFyIEw9d2MoKTtyZXR1cm4gdWkoTCwiQnJ0QmVnaW5Cb29rIiksdWkoTCwiQnJ0RmlsZVZlcnNpb24iLGZ1bmN0aW9uIHNNKHksUCl7'@; put 'UHx8KFA9cHIoMTI3KSk7Zm9yKHZhciBMPTA7NCE9TDsrK0wpUC53cml0ZV9zaGlmdCg0LDApO3JldHVybiByYygiU2hlZXRKUyIsUCkscmMoTS52ZXJzaW9uLFApLHJjKE0udmVyc2lvbixQKSxyYygiNzI2MiIsUCksUC5sZW5ndGg+UC5sP1Auc2xpY2UoMCxQLmwpOlB9KCkpLHVpKEwsIkJy'@; put 'dFdiUHJvcCIsZnVuY3Rpb24gRkwoeSxQKXtQfHwoUD1wcig3MikpO3ZhciBMPTA7cmV0dXJuIHkmJnkuZmlsdGVyUHJpdmFjeSYmKEx8PTgpLFAud3JpdGVfc2hpZnQoNCxMKSxQLndyaXRlX3NoaWZ0KDQsMCksc20oeSYmeS5Db2RlTmFtZXx8IlRoaXNXb3JrYm9vayIsUCksUC5zbGljZSgw'@; put 'LFAubCl9KHkuV29ya2Jvb2smJnkuV29ya2Jvb2suV0JQcm9wc3x8bnVsbCkpLGZ1bmN0aW9uIGFNKHksUCl7aWYoUC5Xb3JrYm9vayYmUC5Xb3JrYm9vay5TaGVldHMpe2Zvcih2YXIgTD1QLldvcmtib29rLlNoZWV0cyxRPTAscmU9LTEsZ2U9LTE7UTxMLmxlbmd0aDsrK1EpIUxbUV18fCFM'@; put 'W1FdLkhpZGRlbiYmLTE9PXJlP3JlPVE6MT09TFtRXS5IaWRkZW4mJi0xPT1nZSYmKGdlPVEpO2dlPnJlfHwodWkoeSwiQnJ0QmVnaW5Cb29rVmlld3MiKSx1aSh5LCJCcnRCb29rVmlldyIsZnVuY3Rpb24gZzUoeSxQKXtyZXR1cm4gUHx8KFA9cHIoMjkpKSxQLndyaXRlX3NoaWZ0KC00LDAp'@; put 'LFAud3JpdGVfc2hpZnQoLTQsNDYwKSxQLndyaXRlX3NoaWZ0KDQsMjg4MDApLFAud3JpdGVfc2hpZnQoNCwxNzYwMCksUC53cml0ZV9zaGlmdCg0LDUwMCksUC53cml0ZV9zaGlmdCg0LHkpLFAud3JpdGVfc2hpZnQoNCx5KSxQLndyaXRlX3NoaWZ0KDEsMTIwKSxQLmxlbmd0aD5QLmw/UC5z'@; put 'bGljZSgwLFAubCk6UH0ocmUpKSx1aSh5LCJCcnRFbmRCb29rVmlld3MiKSl9fShMLHkpLGZ1bmN0aW9uIEQ2KHksUCl7dWkoeSwiQnJ0QmVnaW5CdW5kbGVTaHMiKTtmb3IodmFyIEw9MDtMIT1QLlNoZWV0TmFtZXMubGVuZ3RoOysrTCl1aSh5LCJCcnRCdW5kbGVTaCIsT0woe0hpZGRlbjpQ'@; put 'Lldvcmtib29rJiZQLldvcmtib29rLlNoZWV0cyYmUC5Xb3JrYm9vay5TaGVldHNbTF0mJlAuV29ya2Jvb2suU2hlZXRzW0xdLkhpZGRlbnx8MCxpVGFiSUQ6TCsxLHN0clJlbElEOiJySWQiKyhMKzEpLG5hbWU6UC5TaGVldE5hbWVzW0xdfSkpO3VpKHksIkJydEVuZEJ1bmRsZVNocyIpfShM'@; put 'LHkpLHVpKEwsIkJydEVuZEJvb2siKSxMLmVuZCgpfWZ1bmN0aW9uIFpMKHksUCxMLFEscmUpe3JldHVybigiLmJpbiI9PT1QLnNsaWNlKC00KT9BTDpXSSkoeSxMLFEscmUpfWZ1bmN0aW9uIGxNKHksUCxMLFEscmUpe3JldHVybigiLmJpbiI9PT1QLnNsaWNlKC00KT9ucDpRMykoeSxMLFEs'@; put 'cmUpfWZ1bmN0aW9uIFdMKHksUCxMKXtyZXR1cm4oIi5iaW4iPT09UC5zbGljZSgtNCk/eDM6TG0pKHksTCl9ZnVuY3Rpb24gSmUoeSxQLEwpe3JldHVybigiLmJpbiI9PT1QLnNsaWNlKC00KT9lSTpWQykoeSxMKX12YXIgS3Y9LyhbXHc6XSspPSgoPzoiKShbXiJdKikoPzoiKXwoPzonKShb'@; put 'XiddKikoPzonKSkvZyxYdj0vKFtcdzpdKyk9KCg/OiIpKD86W14iXSopKD86Iil8KD86JykoPzpbXiddKikoPzonKSkvO2Z1bmN0aW9uIG11KHksUCl7dmFyIEw9eS5zcGxpdCgvXHMrLyksUT1bXTtpZihQfHwoUVswXT1MWzBdKSwxPT09TC5sZW5ndGgpcmV0dXJuIFE7dmFyIGdlLF9lLFNl'@; put 'LHJlPXkubWF0Y2goS3YpO2lmKHJlKWZvcihTZT0wO1NlIT1yZS5sZW5ndGg7KytTZSktMT09PShfZT0oZ2U9cmVbU2VdLm1hdGNoKFh2KSlbMV0uaW5kZXhPZigiOiIpKT9RW2dlWzFdXT1nZVsyXS5zbGljZSgxLGdlWzJdLmxlbmd0aC0xKTpRWyJ4bWxuczoiPT09Z2VbMV0uc2xpY2UoMCw2'@; put 'KT8ieG1sbnMiK2dlWzFdLnNsaWNlKDYpOmdlWzFdLnNsaWNlKF9lKzEpXT1nZVsyXS5zbGljZSgxLGdlWzJdLmxlbmd0aC0xKTtyZXR1cm4gUX1mdW5jdGlvbiBjTSh5KXt2YXIgTD17fTtpZigxPT09eS5zcGxpdCgvXHMrLykubGVuZ3RoKXJldHVybiBMO3ZhciByZSxnZSx2ZSxRPXkubWF0'@; put 'Y2goS3YpO2lmKFEpZm9yKHZlPTA7dmUhPVEubGVuZ3RoOysrdmUpLTE9PT0oZ2U9KHJlPVFbdmVdLm1hdGNoKFh2KSlbMV0uaW5kZXhPZigiOiIpKT9MW3JlWzFdXT1yZVsyXS5zbGljZSgxLHJlWzJdLmxlbmd0aC0xKTpMWyJ4bWxuczoiPT09cmVbMV0uc2xpY2UoMCw2KT8ieG1sbnMiK3Jl'@; put 'WzFdLnNsaWNlKDYpOnJlWzFdLnNsaWNlKGdlKzEpXT1yZVsyXS5zbGljZSgxLHJlWzJdLmxlbmd0aC0xKTtyZXR1cm4gTH1mdW5jdGlvbiBHTCh5KXt2YXIgUD17fTtpZih5LkRlZmF1bHRSb3dIZWlnaHQpe3ZhciBMPXtocHg6NCpwYXJzZUludCh5LkRlZmF1bHRSb3dIZWlnaHQpLzN9O0kz'@; put 'KEwpLFAucm93PUx9aWYoeS5EZWZhdWx0Q29sV2lkdGgpe3ZhciBRPXt3cHg6NCpwYXJzZUludCh5LkRlZmF1bHRDb2xXaWR0aCkvM307cHUoUSksUC5jb2w9UX1yZXR1cm4gUH1mdW5jdGlvbiBSZSh5LFAsTCxRKXt2YXIgcmU9UTtzd2l0Y2goKExbMF0ubWF0Y2goL2R0OmR0PSIoW1x3Ll0r'@; put 'KSIvKXx8WyIiLCIiXSlbMV0pe2Nhc2UiYm9vbGVhbiI6cmU9eXIoUSk7YnJlYWs7Y2FzZSJpMiI6Y2FzZSJpbnQiOnJlPXBhcnNlSW50KFEsMTApO2JyZWFrO2Nhc2UicjQiOmNhc2UiZmxvYXQiOnJlPXBhcnNlRmxvYXQoUSk7YnJlYWs7Y2FzZSJkYXRlIjpjYXNlImRhdGVUaW1lLnR6Ijpy'@; put 'ZT1IdChRKTticmVhaztjYXNlImk4IjpjYXNlInN0cmluZyI6Y2FzZSJmaXhlZCI6Y2FzZSJ1dWlkIjpjYXNlImJpbi5iYXNlNjQiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJiYWQgY3VzdHByb3A6IitMWzBdKX15W3hyKFApXT1yZX12YXIgdU09ezA6Ik5vbmUiLDE6IlNpbmds'@; put 'ZSIsMjoiRG91YmxlIiwzMzoiU2luZ2xlQWNjb3VudGluZyIsMzQ6IkRvdWJsZUFjY291bnRpbmcifSxtZT1BZSh1TSk7ZnVuY3Rpb24geWUoeSxQLEwsUSl7aWYoUS5jZWxsU3R5bGVzKXtpZihMPUwucmVwbGFjZSgvXHMrL2csIiAiKSxQLkludGVyaW9yKXt2YXIgcmU9UC5JbnRlcmlvcjty'@; put 'ZS5QYXR0ZXJuJiYocmUucGF0dGVyblR5cGU9SDRbcmUuUGF0dGVybl18fHJlLlBhdHRlcm4pLHJlLkNvbG9yJiZyZS5Db2xvci5tYXRjaCgvI1swLTlBLUZhLWZdKi8pJiYocmUuZmdDb2xvcj17cmdiOnJlLkNvbG9yLnNsaWNlKDEpfSl9IWZ1bmN0aW9uIGRNKHkpe3kuQm9yZGVycyYmKHku'@; put 'Qm9yZGVycy5mb3JFYWNoKGZ1bmN0aW9uKFApe3ZhciBMPVAuUG9zaXRpb24udG9Mb3dlckNhc2UoKTt5W0xdPXtzdHlsZTpxdChQLkxpbmVTdHlsZSwrUC5XZWlnaHQpLGNvbG9yOntyZ2I6KFAuQ29sb3J8fCIjMDAwMDAwIikuc2xpY2UoMSl9fX0pLGRlbGV0ZSB5LkJvcmRlcnMpfShQKTt2'@; put 'YXIgX2UsZ2U9TC5tYXRjaCgvPCg/Olx3KzopP0ZvbnRcc1tePl0qPi8pO2dlJiYoeXIoKF9lPWxuKGdlWzBdKSkuQm9sZCkmJihQLkJvbGQ9ITApLHlyKF9lLkl0YWxpYykmJihQLkl0YWxpYz0hMCkseXIoX2UuU3RyaWtlVGhyb3VnaCkmJihQLlN0cmlrZT0hMCksX2UuU2l6ZSYmKFAuU2l6'@; put 'ZT0rX2UuU2l6ZSksUC5Gb250TmFtZT1fZS5Gb250TmFtZT9fZS5Gb250TmFtZToiQXJpYWwiLF9lLlVuZGVybGluZSYmKFAuVW5kZXJsaW5lPW1lW19lLlVuZGVybGluZV0pLF9lLkNvbG9yJiYoUC5SR0I9X2UuQ29sb3Iuc2xpY2UoLTYpKSksUC5BbGlnbm1lbnQmJihQLmFsaWdubWVudD17'@; put 'fSxQLkFsaWdubWVudC5WZXJ0aWNhbCYmKFAuYWxpZ25tZW50LnZlcnRpY2FsPVAuQWxpZ25tZW50LlZlcnRpY2FsLnRvTG93ZXJDYXNlKCkpLFAuQWxpZ25tZW50Lkhvcml6b250YWwmJihQLmFsaWdubWVudC5ob3Jpem9udGFsPVAuQWxpZ25tZW50Lkhvcml6b250YWwudG9Mb3dlckNhc2Uo'@; put 'KSkseXIoUC5BbGlnbm1lbnQuV3JhcFRleHR8fCIwIik/UC5hbGlnbm1lbnQud3JhcFRleHQ9ITA6bnVsbD09UC5BbGlnbm1lbnQuV3JhcFRleHQmJmRlbGV0ZSBQLmFsaWdubWVudC53cmFwVGV4dCx5cihQLkFsaWdubWVudC5TaHJpbmtUb0ZpdHx8IjAiKSYmKFAuYWxpZ25tZW50LnNocmlu'@; put 'a1RvRml0PSEwKSwrUC5BbGlnbm1lbnQuSW5kZW50JiYoUC5hbGlnbm1lbnQuaW5kZW50PStQLkFsaWdubWVudC5JbmRlbnR8fDApLCtQLkFsaWdubWVudC5Sb3RhdGUmJihQLmFsaWdubWVudC50ZXh0Um90YXRpb249K1AuQWxpZ25tZW50LlJvdGF0ZXx8MCkpfXlbUC5JRF09UCwoIkRlZmF1'@; put 'bHQiPT1QLklEfHwiTm9ybWFsIj09UC5OYW1lKSYmWjEoUCl9ZnVuY3Rpb24gcXQoeSxQKXtzd2l0Y2goeSl7Y2FzZSJOb25lIjpyZXR1cm4ibm9uZSI7Y2FzZSJEYXNoIjpyZXR1cm4iZGFzaGVkIjtjYXNlIkRvdCI6cmV0dXJuImRvdHRlZCI7Y2FzZSJEYXNoRG90IjpyZXR1cm4iZGFzaERv'@; put 'dCI7Y2FzZSJEYXNoRG90RG90IjpyZXR1cm4iZGFzaERvdERvdCI7Y2FzZSJTbGFudERhc2hEb3QiOnJldHVybiJzbGFudERhc2hEb3QiO2Nhc2UiRG91YmxlIjpyZXR1cm4iZG91YmxlIjtjYXNlIkNvbnRpbnVvdXMiOnN3aXRjaCgrUHx8MCl7Y2FzZSAwOnJldHVybiJoYWlyIjtjYXNlIDE6'@; put 'cmV0dXJuInRoaW4iO2Nhc2UgMjpyZXR1cm4ibWVkaXVtIjtjYXNlIDM6cmV0dXJuInRoaWNrIn1yZXR1cm4idGhpbiJ9cmV0dXJuIHl9ZnVuY3Rpb24gaE0oeSxQLEwsUSxyZSxnZSxfZSx2ZSxTZSxIZSl7dmFyIEJlPSJHZW5lcmFsIixHZT1RLlN0eWxlSUQsbnQ9e307SGU9SGV8fHt9O3Zh'@; put 'ciBkdD1bXSxDdD0wO2Zvcih2b2lkIDA9PT1HZSYmdmUmJihHZT12ZS5TdHlsZUlEKSx2b2lkIDA9PT1HZSYmX2UmJihHZT1fZS5TdHlsZUlEKTt2b2lkIDAhPT1nZVtHZV07KXt2YXIgY3Q9Z2VbR2VdO2lmKCJHZW5lcmFsIj09QmUmJmN0Lm5mJiYoQmU9Z2VbR2VdLm5mKSxjdC5JbnRlcmlv'@; put 'ciYmZHQucHVzaChnZVtHZV0uSW50ZXJpb3IpLGN0LmFsaWdubWVudCYmKG50LmFsaWdubWVudHx8KG50LmFsaWdubWVudD1vbihjdC5hbGlnbm1lbnQpKSksbnVsbD09bnQuYm9sZCYmY3QuQm9sZCYmKG50LmJvbGQ9ITApLG51bGw9PW50Lml0YWxpYyYmY3QuSXRhbGljJiYobnQuaXRhbGlj'@; put 'PSEwKSxudWxsPT1udC5zdHJpa2UmJmN0LlN0cmlrZSYmKG50LnN0cmlrZT0hMCksbnVsbD09bnQuc3omJmN0LlNpemUmJihudC5zej1jdC5TaXplKSxudWxsPT1udC5uYW1lJiZjdC5Gb250TmFtZSYmKG50Lm5hbWU9Y3QuRm9udE5hbWUpLG51bGw9PW50LnVuZGVybGluZSYmY3QuVW5kZXJs'@; put 'aW5lJiYobnQudW5kZXJsaW5lPWN0LlVuZGVybGluZSksbnVsbD09bnQuY29sb3ImJmN0LlJHQiYmKG50LmNvbG9yPXtyZ2I6Y3QuUkdCfSksWyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXS5mb3JFYWNoKGZ1bmN0aW9uKFR0KXtudWxsPT1udFtUdF0mJmN0W1R0XSYmKG50W1R0XT1v'@; put 'bihjdFtUdF0pKX0pLCJEZWZhdWx0Ij09R2UpYnJlYWs7R2U9Y3QuUGFyZW50fHwiRGVmYXVsdCJ9bnQubmFtZXx8KG50Lm5hbWU9Z2UuRGVmYXVsdCYmZ2UuRGVmYXVsdC5Gb250TmFtZXx8IkFyaWFsIiksbnQuc3p8fChudC5zej1nZS5EZWZhdWx0JiZnZS5EZWZhdWx0LlNpemV8fDEyKTt2'@; put 'YXIgYnQ9IiI7aWYoeXx8US5Gb3JtdWxhfHwiU3RyaW5nIj09TC5UeXBlfHwiTnVtYmVyIj09TC5UeXBlKXN3aXRjaChMLlR5cGUpe2Nhc2UiQm9vbGVhbiI6US50PSJiIixRLnY9eXIoeSk7YnJlYWs7Y2FzZSJTdHJpbmciOlEudD0icyIsYnQ9R2koeHIoeSkpLFEudj15LmluZGV4T2YoIjwi'@; put 'KT4tMT94cihQfHx5KS5yZXBsYWNlKC88W15dKj8+L2csIiIpOmJ0LHkuaW5kZXhPZigiPCIpPi0xJiYoUS5SPUZ1Lmh0bWxfdG9fcnMoeHIoeSkpKTticmVhaztjYXNlIkRhdGVUaW1lIjoiWiIhPXkuc2xpY2UoLTEpJiYoeSs9IloiKSxRLnY9KEh0KHkpLW5ldyBEYXRlKERhdGUuVVRDKDE4'@; put 'OTksMTEsMzApKSkvODY0ZTUsUS52IT1RLnY/US52PXhyKHkpOlEudjw2MCYmKFEudj1RLnYtMSksKCFCZXx8IkdlbmVyYWwiPT1CZSkmJihCZT0ieXl5eS1tbS1kZCIpO2Nhc2UiTnVtYmVyIjp2b2lkIDA9PT1RLnYmJihRLnY9K3kpLFEudHx8KFEudD0ibiIpO2JyZWFrO2Nhc2UiRXJyb3Ii'@; put 'OlEudD0iZSIsUS52PUthW3ldLCExIT09SGUuY2VsbFRleHQmJihRLnc9eSk7YnJlYWs7ZGVmYXVsdDoiIj09eSYmIiI9PVA/US50PSJ6IjooUS50PSJzIixidD1HaSh4cih5KSksUS52PXkuaW5kZXhPZigiPCIpPi0xP3hyKFB8fHkpLnJlcGxhY2UoLzxbXl0qPz4vZywiIik6YnQseS5pbmRl'@; put 'eE9mKCI8Iik+LTEmJihRLlI9RnUuaHRtbF90b19ycyh4cih5KSkpKX1lbHNlIFEudD0ieiIsZGVsZXRlIFEudjtpZihmdW5jdGlvbiBKdih5LFAsTCl7aWYoInoiIT09eS50KXtpZighTHx8ITEhPT1MLmNlbGxUZXh0KXRyeXt5Lnc9ImUiPT09eS50P3kud3x8UW9beS52XToiR2VuZXJhbCI9'@; put 'PT1QPyJuIj09PXkudD8oMHx5LnYpPT09eS52P3cuX2dlbmVyYWxfaW50KHkudik6dy5fZ2VuZXJhbF9udW0oeS52KTp3Ll9nZW5lcmFsKHkudik6ZnVuY3Rpb24gJGkoeSxQKXt2YXIgTD1uZVt5XXx8eHIoeSk7cmV0dXJuIkdlbmVyYWwiPT09TD93Ll9nZW5lcmFsKFApOncuZm9ybWF0KEws'@; put 'UCl9KFB8fCJHZW5lcmFsIix5LnYpfWNhdGNoKGdlKXtpZihMLldURil0aHJvdyBnZX10cnl7dmFyIFE9bmVbUF18fFB8fCJHZW5lcmFsIjtpZihMLmNlbGxORiYmKHkuej1RKSxMLmNlbGxEYXRlcyYmIm4iPT15LnQmJncuaXNfZGF0ZShRKSl7dmFyIHJlPXcucGFyc2VfZGF0ZV9jb2RlKHku'@; put 'dik7cmUmJih5LnQ9ImQiLHkudj1uZXcgRGF0ZShyZS55LHJlLm0tMSxyZS5kLHJlLkgscmUuTSxyZS5TLHJlLnUpKX19Y2F0Y2goZ2Upe2lmKEwuV1RGKXRocm93IGdlfX19KFEsQmUsSGUpLCExIT09SGUuY2VsbEZvcm11bGEpaWYoUS5Gb3JtdWxhKXt2YXIgRnQ9eHIoUS5Gb3JtdWxhKTs2'@; put 'MT09RnQuY2hhckNvZGVBdCgwKSYmKEZ0PUZ0LnNsaWNlKDEpKSxRLmY9YWYoRnQscmUpLGRlbGV0ZSBRLkZvcm11bGEsIlJDIj09US5BcnJheVJhbmdlP1EuRj1hZigiUkM6UkMiLHJlKTpRLkFycmF5UmFuZ2UmJihRLkY9YWYoUS5BcnJheVJhbmdlLHJlKSxTZS5wdXNoKFtPaShRLkYpLFEu'@; put 'Rl0pKX1lbHNlIGZvcihDdD0wO0N0PFNlLmxlbmd0aDsrK0N0KXJlLnI+PVNlW0N0XVswXS5zLnImJnJlLnI8PVNlW0N0XVswXS5lLnImJnJlLmM+PVNlW0N0XVswXS5zLmMmJnJlLmM8PVNlW0N0XVswXS5lLmMmJihRLkY9U2VbQ3RdWzFdKTtpZihIZS5jZWxsU3R5bGVzJiYoZHQuZm9yRWFj'@; put 'aChmdW5jdGlvbihUdCl7IW50LnBhdHRlcm5UeXBlJiZUdC5wYXR0ZXJuVHlwZSYmKG50LnBhdHRlcm5UeXBlPVR0LnBhdHRlcm5UeXBlKSwhbnQuZmdDb2xvciYmVHQuZmdDb2xvciYmKG50LmZnQ29sb3I9VHQuZmdDb2xvcil9KSxRLnM9bnQpLHZvaWQgMCE9PVEuU3R5bGVJRCYmKFEuaXhm'@; put 'ZT1RLlN0eWxlSUQpLFEuUiYmUS5zKXt2YXIga3Q9b24oUS5zKTtkZWxldGUga3QuYm9sZCxkZWxldGUga3QuaXRhbGljLGRlbGV0ZSBrdC51bmRlcmxpbmUsZGVsZXRlIGt0LnN0cmlrZSxRLlIuZm9yRWFjaChmdW5jdGlvbihUdCl7VHQucz1VdChvbihrdCksVHQucyl9KX19ZnVuY3Rpb24g'@; put 'JEwoeSl7eS50PXkudnx8IiIseS50PXkudC5yZXBsYWNlKC9cclxuL2csIlxuIikucmVwbGFjZSgvXHIvZywiXG4iKSx5LnY9eS53PXkuaXhmZT12b2lkIDB9ZnVuY3Rpb24gUXYoeSl7aWYoaGUmJkJ1ZmZlci5pc0J1ZmZlcih5KSlyZXR1cm4geS50b1N0cmluZygidXRmOCIpO2lmKCJzdHJp'@; put 'bmciPT10eXBlb2YgeSlyZXR1cm4geTtpZih0eXBlb2YgVWludDhBcnJheTwidSImJnkgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBQaShOKEMoeSkpKTt0aHJvdyBuZXcgRXJyb3IoIkJhZCBpbnB1dCBmb3JtYXQ6IGV4cGVjdGVkIEJ1ZmZlciBvciBzdHJpbmciKX12YXIgVnI9Lzwo'@; put 'XC8/KShbXlxzPz48IVwvOl0qOnwpKFteXHM/PD46XC9cW10rKSg/Oltccz86PFwvXVtePl0qKT8+L2dtO2Z1bmN0aW9uIHpyKHksUCl7dmFyIEw9UHx8e30sUT1VKFF2KHkpKTsoImJpbmFyeSI9PUwudHlwZXx8ImFycmF5Ij09TC50eXBlfHwiYmFzZTY0Ij09TC50eXBlKSYmKFE9dHlwZW9m'@; put 'IGNwdGFibGU8InUiP2NwdGFibGUudXRpbHMuZGVjb2RlKDY1MDAxLEIoUSkpOlBpKFEpKTt2YXIgcmU9US5zbGljZSgwLDEwMjQpLnRvTG93ZXJDYXNlKCksZ2U9ITE7aWYoKDEwMjMmcmUuaW5kZXhPZigiPiIpKT5NYXRoLm1pbigxMDIzJnJlLmluZGV4T2YoIiwiKSwxMDIzJnJlLmluZGV4'@; put 'T2YoIjsiKSkpe3ZhciBfZT1vbihMKTtyZXR1cm4gX2UudHlwZT0ic3RyaW5nIixCMS50b193b3JrYm9vayhRLF9lKX1pZigtMT09cmUuaW5kZXhPZigiPD94bWwiKSYmWyJodG1sIiwidGFibGUiLCJoZWFkIiwibWV0YSIsInNjcmlwdCIsInN0eWxlIiwiZGl2Il0uZm9yRWFjaChmdW5jdGlv'@; put 'bihudSl7cmUuaW5kZXhPZigiPCIrbnUpPj0wJiYoZ2U9ITApfSksZ2UpcmV0dXJuIEZ1LnRvX3dvcmtib29rKFEsTCk7dmFyIHZlLEhlLFNlPVtdO251bGwhPXRlJiZudWxsPT1MLmRlbnNlJiYoTC5kZW5zZT10ZSk7dmFyIHVyLEJlPXt9LEdlPVtdLG50PUwuZGVuc2U/W106e30sZHQ9IiIs'@; put 'Q3Q9e30sY3Q9e30sYnQ9e30sRnQ9bXUoJzxEYXRhIHNzOlR5cGU9IlN0cmluZyI+Jyksa3Q9MCxUdD0wLFp0PTAscG49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sS249e30sdW49e30scW49IiIsem49MCxrbj1bXSxlcj17fSx0cj17fSxabj0wLEJyPVtdLHNpPXt9LHhpPVtdLExp'@; put 'PXt9LFFyPVtdLEFuPSExLHZyPVtdLHJyPVtdLFNuPXt9LG1yPTAsd2k9MCxVcj17U2hlZXRzOltdLFdCUHJvcHM6e2RhdGUxOTA0OiExfX0samk9e307VnIubGFzdEluZGV4PTAsUT1RLnJlcGxhY2UoLzwhLS0oW1xzXFNdKj8pLS0+L2dtLCIiKTtmb3IodmFyIF9vPSIiO3ZlPVZyLmV4ZWMo'@; put 'USk7KXN3aXRjaCh2ZVszXT0oX289dmVbM10pLnRvTG93ZXJDYXNlKCkpe2Nhc2UiZGF0YSI6aWYoImRhdGEiPT1fbyl7aWYoIi8iPT09dmVbMV0pe2lmKChIZT1TZS5wb3AoKSlbMF0hPT12ZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitIZS5qb2luKCJ8IikpfWVsc2UiLyIh'@; put 'PT12ZVswXS5jaGFyQXQodmVbMF0ubGVuZ3RoLTIpJiZTZS5wdXNoKFt2ZVszXSwhMF0pO2JyZWFrfWlmKFNlW1NlLmxlbmd0aC0xXVsxXSlicmVhazsiLyI9PT12ZVsxXT9oTShRLnNsaWNlKGt0LHZlLmluZGV4KSxxbixGdCwiY29tbWVudCI9PVNlW1NlLmxlbmd0aC0xXVswXT9MaTpjdCx7'@; put 'YzpUdCxyOlp0fSxLbixRcltUdF0sYnQsdnIsTCk6KHFuPSIiLEZ0PW11KHZlWzBdKSxrdD12ZS5pbmRleCt2ZVswXS5sZW5ndGgpO2JyZWFrO2Nhc2UiY2VsbCI6aWYoIi8iPT09dmVbMV18fCIvPiI9PT12ZVswXS5zbGljZSgtMikpe2lmKCIvPiI9PT12ZVswXS5zbGljZSgtMikpe2lmKChj'@; put 'dD1jTSh2ZVswXSkpLkluZGV4JiYoVHQ9K2N0LkluZGV4LTEpLFR0PHBuLnMuYyYmKHBuLnMuYz1UdCksVHQ+cG4uZS5jJiYocG4uZS5jPVR0KSx4aT1bXSwhTC5zaGVldFN0dWJzKXsrK1R0O2JyZWFrfWhNKCIiLCIiLHt9LCJjb21tZW50Ij09U2VbU2UubGVuZ3RoLTFdWzBdP0xpOmN0LHtj'@; put 'OlR0LHI6WnR9LEtuLFFyW1R0XSxidCx2cixMKX1pZih4aS5sZW5ndGg+MCYmKGN0LmM9eGkpLCghTC5zaGVldFJvd3N8fEwuc2hlZXRSb3dzPlp0KSYmKHZvaWQgMCE9PWN0LnZ8fEwuc2hlZXRTdHVicykmJihMLmRlbnNlPyhudFtadF18fChudFtadF09W10pLG50W1p0XVtUdF09Y3QpOm50'@; put 'W05zKFR0KStIcyhadCldPWN0KSxjdC5IUmVmJiYoY3QubD17VGFyZ2V0OnhyKGN0LkhSZWYpfSxjdC5IUmVmU2NyZWVuVGlwJiYoY3QubC5Ub29sdGlwPWN0LkhSZWZTY3JlZW5UaXApLGRlbGV0ZSBjdC5IUmVmLGRlbGV0ZSBjdC5IUmVmU2NyZWVuVGlwKSwoY3QuTWVyZ2VBY3Jvc3N8fGN0'@; put 'Lk1lcmdlRG93bikmJihtcj1UdCsoMHxwYXJzZUludChjdC5NZXJnZUFjcm9zcywxMCkpLHdpPVp0KygwfHBhcnNlSW50KGN0Lk1lcmdlRG93biwxMCkpLChtcj5UdHx8d2k+WnQpJiZrbi5wdXNoKHtzOntjOlR0LHI6WnR9LGU6e2M6bXIscjp3aX19KSksTC5zaGVldFN0dWJzKWlmKGN0Lk1l'@; put 'cmdlQWNyb3NzfHxjdC5NZXJnZURvd24pe2Zvcih2YXIgVGk9VHQ7VGk8PW1yOysrVGkpZm9yKHZhciBZbz1adDtZbzw9d2k7KytZbykoVGk+VHR8fFlvPlp0KSYmKEwuZGVuc2U/KG50W1lvXXx8KG50W1lvXT1bXSksbnRbWW9dW1RpXT17dDoieiJ9KTpudFtOcyhUaSkrSHMoWW8pXT17dDoi'@; put 'eiJ9KTtUdD1tcisxfWVsc2UrK1R0O2Vsc2UgY3QuTWVyZ2VBY3Jvc3M/VHQ9bXIrMTorK1R0fWVsc2UoY3Q9Y00odmVbMF0pKS5JbmRleCYmKFR0PStjdC5JbmRleC0xKSxUdDxwbi5zLmMmJihwbi5zLmM9VHQpLFR0PnBuLmUuYyYmKHBuLmUuYz1UdCksIi8+Ij09PXZlWzBdLnNsaWNlKC0y'@; put 'KSYmKytUdCx4aT1bXTticmVhaztjYXNlInJvdyI6Ii8iPT09dmVbMV18fCIvPiI9PT12ZVswXS5zbGljZSgtMik/KFp0PHBuLnMuciYmKHBuLnMucj1adCksWnQ+cG4uZS5yJiYocG4uZS5yPVp0KSwiLz4iPT09dmVbMF0uc2xpY2UoLTIpJiYoYnQ9bXUodmVbMF0pKS5JbmRleCYmKFp0PSti'@; put 'dC5JbmRleC0xKSxUdD0wLCsrWnQpOigoYnQ9bXUodmVbMF0pKS5JbmRleCYmKFp0PStidC5JbmRleC0xKSxTbj17fSwoIjAiPT1idC5BdXRvRml0SGVpZ2h0fHxidC5IZWlnaHQpJiYoU24uaHB0PXBhcnNlRmxvYXQoYnQuSGVpZ2h0KSxTbi5ocHg9VTEoU24uaHB0KSxycltadF09U24pLCIx'@; put 'Ij09YnQuSGlkZGVuJiYoU24uaGlkZGVuPSEwLHJyW1p0XT1TbikpO2JyZWFrO2Nhc2Uid29ya3NoZWV0IjppZigiLyI9PT12ZVsxXSl7aWYoKEhlPVNlLnBvcCgpKVswXSE9PXZlWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK0hlLmpvaW4oInwiKSk7R2UucHVzaChkdCkscG4u'@; put 'cy5yPD1wbi5lLnImJnBuLnMuYzw9cG4uZS5jJiYobnRbIiFyZWYiXT1PbyhwbiksTC5zaGVldFJvd3MmJkwuc2hlZXRSb3dzPD1wbi5lLnImJihudFsiIWZ1bGxyZWYiXT1udFsiIXJlZiJdLHBuLmUucj1MLnNoZWV0Um93cy0xLG50WyIhcmVmIl09T28ocG4pKSksa24ubGVuZ3RoJiYobnRb'@; put 'IiFtZXJnZXMiXT1rbiksUXIubGVuZ3RoPjAmJihudFsiIWNvbHMiXT1RcikscnIubGVuZ3RoPjAmJihudFsiIXJvd3MiXT1yciksQ3QmJihudFsiIXNoZWV0Rm9ybWF0Il09R0woQ3QpKSxCZVtkdF09bnR9ZWxzZSBwbj17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxadD1UdD0wLFNl'@; put 'LnB1c2goW3ZlWzNdLCExXSksSGU9bXUodmVbMF0pLGR0PXhyKEhlLk5hbWUpLG50PUwuZGVuc2U/W106e30sa249W10sdnI9W10scnI9W10sVXIuU2hlZXRzLnB1c2goamk9e25hbWU6ZHQsSGlkZGVuOjB9KTticmVhaztjYXNlInRhYmxlIjppZigiLyI9PT12ZVsxXSl7aWYoKEhlPVNlLnBv'@; put 'cCgpKVswXSE9PXZlWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK0hlLmpvaW4oInwiKSl9ZWxzZXtpZigiLz4iPT12ZVswXS5zbGljZSgtMikpYnJlYWs7Q3Q9bXUodmVbMF0pLFNlLnB1c2goW3ZlWzNdLCExXSksUXI9W10sQW49ITF9YnJlYWs7Y2FzZSJzdHlsZSI6Ii8iPT09'@; put 'dmVbMV0/eWUoS24sdW4scW4sTCk6KHVuPW11KHZlWzBdKSxxbj0iIik7YnJlYWs7Y2FzZSJudW1iZXJmb3JtYXQiOnVuLm5mPXhyKG11KHZlWzBdKS5Gb3JtYXR8fCJHZW5lcmFsIiksbmVbdW4ubmZdJiYodW4ubmY9bmVbdW4ubmZdKTtmb3IodmFyIGxvPTA7MzkyIT1sbyYmdy5fdGFibGVb'@; put 'bG9dIT11bi5uZjsrK2xvKTtpZigzOTI9PWxvKWZvcihsbz01NzszOTIhPWxvOysrbG8paWYobnVsbD09dy5fdGFibGVbbG9dKXt3LmxvYWQodW4ubmYsbG8pO2JyZWFrfWJyZWFrO2Nhc2UiY29sdW1uIjppZigidGFibGUiIT09U2VbU2UubGVuZ3RoLTFdWzBdfHwiLyI9PT12ZVsxXSlicmVh'@; put 'aztpZigodXI9bXUodmVbMF0pKS5IaWRkZW4mJih1ci5oaWRkZW49ITAsZGVsZXRlIHVyLkhpZGRlbiksdXIuV2lkdGg/dXIud3B4PTQqcGFyc2VJbnQodXIuV2lkdGgsMTApLzM6K3VyLkF1dG9GaXRXaWR0aCYmKHVyLmF1dG89MSksIUFuJiZ1ci53cHg+MTApe0FuPSEwLHBsPWxDO2Zvcih2'@; put 'YXIgQW89MDtBbzxRci5sZW5ndGg7KytBbylRcltBb10mJnB1KFFyW0FvXSl9QW4mJnB1KHVyKSxRclt1ci5JbmRleC0xfHxRci5sZW5ndGhdPXVyO2Zvcih2YXIgeG89MDt4bzwrdXIuU3BhbjsrK3hvKVFyW1FyLmxlbmd0aF09b24odXIpO2JyZWFrO2Nhc2UibmFtZWRyYW5nZSI6aWYoIi8i'@; put 'PT09dmVbMV0pYnJlYWs7VXIuTmFtZXN8fChVci5OYW1lcz1bXSk7dmFyIGhpPWxuKHZlWzBdKSx0YT17TmFtZTpoaS5OYW1lLFJlZjphZihoaS5SZWZlcnNUby5zbGljZSgxKSx7cjowLGM6MH0pfTtVci5TaGVldHMubGVuZ3RoPjAmJih0YS5TaGVldD1Vci5TaGVldHMubGVuZ3RoLTEpLFVy'@; put 'Lk5hbWVzLnB1c2godGEpO2JyZWFrO2Nhc2UibmFtZWRjZWxsIjpjYXNlImIiOmNhc2UiaSI6Y2FzZSJ1IjpjYXNlInMiOmNhc2UiZW0iOmNhc2UiaDIiOmNhc2UiaDMiOmNhc2Uic3ViIjpjYXNlInN1cCI6Y2FzZSJzcGFuIjpjYXNlInByb3RlY3Rpb24iOmNhc2UicGFyYWdyYXBocyI6Y2Fz'@; put 'ZSJuYW1lIjpicmVhaztjYXNlImFsaWdubWVudCI6aWYoIUwuY2VsbFN0eWxlc3x8Ii8iPT09dmVbMV0pYnJlYWs7dW4uQWxpZ25tZW50PW11KHZlWzBdKTticmVhaztjYXNlImJvcmRlcnMiOiIvIiE9PXZlWzFdJiYodW4uQm9yZGVycz1bXSk7YnJlYWs7Y2FzZSJib3JkZXIiOmlmKCIvIj09'@; put 'PXZlWzFdKWJyZWFrO3VuLkJvcmRlcnN8fCh1bi5Cb3JkZXJzPVtdKSx1bi5Cb3JkZXJzLnB1c2gobXUodmVbMF0pKTticmVhaztjYXNlImZvbnQiOmlmKCIvPiI9PT12ZVswXS5zbGljZSgtMikpe3FuKz12ZVswXTticmVha30iLyI9PT12ZVsxXT9xbis9US5zbGljZSh6bix2ZS5pbmRleCt2'@; put 'ZVswXS5sZW5ndGgpOnpuPXZlLmluZGV4O2JyZWFrO2Nhc2UiaW50ZXJpb3IiOmlmKCFMLmNlbGxTdHlsZXN8fCIvIj09PXZlWzFdKWJyZWFrO3VuLkludGVyaW9yPW11KHZlWzBdKTticmVhaztjYXNlImF1dGhvciI6Y2FzZSJ0aXRsZSI6Y2FzZSJkZXNjcmlwdGlvbiI6Y2FzZSJjcmVhdGVk'@; put 'IjpjYXNlImtleXdvcmRzIjpjYXNlInN1YmplY3QiOmNhc2UiY2F0ZWdvcnkiOmNhc2UiY29tcGFueSI6Y2FzZSJsYXN0YXV0aG9yIjpjYXNlImxhc3RzYXZlZCI6Y2FzZSJsYXN0cHJpbnRlZCI6Y2FzZSJ2ZXJzaW9uIjpjYXNlInJldmlzaW9uIjpjYXNlInRvdGFsdGltZSI6Y2FzZSJoeXBl'@; put 'cmxpbmtiYXNlIjpjYXNlIm1hbmFnZXIiOmNhc2UiY29udGVudHN0YXR1cyI6Y2FzZSJpZGVudGlmaWVyIjpjYXNlImxhbmd1YWdlIjpjYXNlImFwcG5hbWUiOmlmKCIvPiI9PT12ZVswXS5zbGljZSgtMikpYnJlYWs7Ii8iPT09dmVbMV0/UmQoZXIsX28sUS5zbGljZShabix2ZS5pbmRleCkp'@; put 'OlpuPXZlLmluZGV4K3ZlWzBdLmxlbmd0aDticmVhaztjYXNlInN0eWxlcyI6Y2FzZSJ3b3JrYm9vayI6aWYoIi8iPT09dmVbMV0pe2lmKChIZT1TZS5wb3AoKSlbMF0hPT12ZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitIZS5qb2luKCJ8IikpfWVsc2UgU2UucHVzaChbdmVb'@; put 'M10sITFdKTticmVhaztjYXNlImNvbW1lbnQiOmlmKCIvIj09PXZlWzFdKXtpZigoSGU9U2UucG9wKCkpWzBdIT09dmVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrSGUuam9pbigifCIpKTskTChMaSkseGkucHVzaChMaSl9ZWxzZSBTZS5wdXNoKFt2ZVszXSwhMV0pLExpPXth'@; put 'OihIZT1tdSh2ZVswXSkpLkF1dGhvcn07YnJlYWs7Y2FzZSJhdXRvZmlsdGVyIjppZigiLyI9PT12ZVsxXSl7aWYoKEhlPVNlLnBvcCgpKVswXSE9PXZlWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK0hlLmpvaW4oInwiKSl9ZWxzZSBpZigiLyIhPT12ZVswXS5jaGFyQXQodmVb'@; put 'MF0ubGVuZ3RoLTIpKXt2YXIgTW49bXUodmVbMF0pO250WyIhYXV0b2ZpbHRlciJdPXtyZWY6YWYoTW4uUmFuZ2UpLnJlcGxhY2UoL1wkL2csIiIpfSxTZS5wdXNoKFt2ZVszXSwhMF0pfWJyZWFrO2Nhc2UiZGF0YXZhbGlkYXRpb24iOmlmKG50WyIhdmFsaWRhdGlvbnMiXXx8KG50WyIhdmFs'@; put 'aWRhdGlvbnMiXT1bXSksIi8iPT09dmVbMV0pe2lmKChIZT1TZS5wb3AoKSlbMF0hPT12ZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitIZS5qb2luKCJ8IikpfWVsc2UiLyIhPT12ZVswXS5jaGFyQXQodmVbMF0ubGVuZ3RoLTIpJiZTZS5wdXNoKFt2ZVszXSwhMF0pLHNpPXt9'@; put 'O2JyZWFrO2Nhc2UicGl4ZWxzcGVyaW5jaCI6aWYoIi8iPT09dmVbMV0pe3ZhciBNcz0rUS5zbGljZShrdCx2ZS5pbmRleCk7KDcyPT1Nc3x8OTY9PU1zKSYmRm0oTXMpfWVsc2Uga3Q9dmUuaW5kZXgrdmVbMF0ubGVuZ3RoO2JyZWFrO2Nhc2UiY29tcG9uZW50b3B0aW9ucyI6Y2FzZSJkb2N1'@; put 'bWVudHByb3BlcnRpZXMiOmNhc2UiY3VzdG9tZG9jdW1lbnRwcm9wZXJ0aWVzIjpjYXNlIm9mZmljZWRvY3VtZW50c2V0dGluZ3MiOmNhc2UicGl2b3R0YWJsZSI6Y2FzZSJwaXZvdGNhY2hlIjpjYXNlIm5hbWVzIjpjYXNlIm1hcGluZm8iOmNhc2UicGFnZWJyZWFrcyI6Y2FzZSJxdWVyeXRh'@; put 'YmxlIjpjYXNlInNvcnRpbmciOmNhc2Uic2NoZW1hIjpjYXNlImNvbmRpdGlvbmFsZm9ybWF0dGluZyI6Y2FzZSJzbWFydHRhZ3R5cGUiOmNhc2Uic21hcnR0YWdzIjpjYXNlImV4Y2Vsd29ya2Jvb2siOmNhc2Uid29ya2Jvb2tvcHRpb25zIjpjYXNlIndvcmtzaGVldG9wdGlvbnMiOmlmKCIv'@; put 'Ij09PXZlWzFdKXtpZigoSGU9U2UucG9wKCkpWzBdIT09dmVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrSGUuam9pbigifCIpKX1lbHNlIi8iIT09dmVbMF0uY2hhckF0KHZlWzBdLmxlbmd0aC0yKSYmU2UucHVzaChbdmVbM10sITBdKTticmVhaztkZWZhdWx0OmlmKDA9PVNl'@; put 'Lmxlbmd0aCYmImRvY3VtZW50Ij09dmVbM118fDA9PVNlLmxlbmd0aCYmInVvZiI9PXZlWzNdKXJldHVybiBhXyhRLEwpO3ZhciB5cz0hMDtzd2l0Y2goU2VbU2UubGVuZ3RoLTFdWzBdKXtjYXNlIm9mZmljZWRvY3VtZW50c2V0dGluZ3MiOnN3aXRjaCh2ZVszXSl7Y2FzZSJhbGxvd3BuZyI6'@; put 'Y2FzZSJyZW1vdmVwZXJzb25hbGluZm9ybWF0aW9uIjpjYXNlImRvd25sb2FkY29tcG9uZW50cyI6Y2FzZSJsb2NhdGlvbm9mY29tcG9uZW50cyI6Y2FzZSJjb2xvcnMiOmNhc2UiY29sb3IiOmNhc2UiaW5kZXgiOmNhc2UicmdiIjpjYXNlInRhcmdldHNjcmVlbnNpemUiOmNhc2UicmVhZG9u'@; put 'bHlyZWNvbW1lbmRlZCI6YnJlYWs7ZGVmYXVsdDp5cz0hMX1icmVhaztjYXNlImNvbXBvbmVudG9wdGlvbnMiOnN3aXRjaCh2ZVszXSl7Y2FzZSJ0b29sYmFyIjpjYXNlImhpZGVvZmZpY2Vsb2dvIjpjYXNlInNwcmVhZHNoZWV0YXV0b2ZpdCI6Y2FzZSJsYWJlbCI6Y2FzZSJjYXB0aW9uIjpj'@; put 'YXNlIm1heGhlaWdodCI6Y2FzZSJtYXh3aWR0aCI6Y2FzZSJuZXh0c2hlZXRudW1iZXIiOmJyZWFrO2RlZmF1bHQ6eXM9ITF9YnJlYWs7Y2FzZSJleGNlbHdvcmtib29rIjpzd2l0Y2godmVbM10pe2Nhc2UiZGF0ZTE5MDQiOlVyLldCUHJvcHMuZGF0ZTE5MDQ9ITA7YnJlYWs7Y2FzZSJ3aW5k'@; put 'b3doZWlnaHQiOmNhc2Uid2luZG93d2lkdGgiOmNhc2Uid2luZG93dG9weCI6Y2FzZSJ3aW5kb3d0b3B5IjpjYXNlInRhYnJhdGlvIjpjYXNlInByb3RlY3RzdHJ1Y3R1cmUiOmNhc2UicHJvdGVjdHdpbmRvdyI6Y2FzZSJwcm90ZWN0d2luZG93cyI6Y2FzZSJhY3RpdmVzaGVldCI6Y2FzZSJk'@; put 'aXNwbGF5aW5rbm90ZXMiOmNhc2UiZmlyc3R2aXNpYmxlc2hlZXQiOmNhc2Uic3VwYm9vayI6Y2FzZSJzaGVldG5hbWUiOmNhc2Uic2hlZXRpbmRleCI6Y2FzZSJzaGVldGluZGV4Zmlyc3QiOmNhc2Uic2hlZXRpbmRleGxhc3QiOmNhc2UiZGxsIjpjYXNlImFjY2VwdGxhYmVsc2luZm9ybXVs'@; put 'YXMiOmNhc2UiZG9ub3RzYXZlbGlua3ZhbHVlcyI6Y2FzZSJpdGVyYXRpb24iOmNhc2UibWF4aXRlcmF0aW9ucyI6Y2FzZSJtYXhjaGFuZ2UiOmNhc2UicGF0aCI6Y2FzZSJ4Y3QiOmNhc2UiY291bnQiOmNhc2Uic2VsZWN0ZWRzaGVldHMiOmNhc2UiY2FsY3VsYXRpb24iOmNhc2UidW5jYWxj'@; put 'ZWQiOmNhc2Uic3RhcnR1cHByb21wdCI6Y2FzZSJjcm4iOmNhc2UiZXh0ZXJubmFtZSI6Y2FzZSJmb3JtdWxhIjpjYXNlImNvbGZpcnN0IjpjYXNlImNvbGxhc3QiOmNhc2Uid2FudGFkdmlzZSI6Y2FzZSJib29sZWFuIjpjYXNlImVycm9yIjpjYXNlInRleHQiOmNhc2Uib2xlIjpjYXNlIm5v'@; put 'YXV0b3JlY292ZXIiOmNhc2UicHVibGlzaG9iamVjdHMiOmNhc2UiZG9ub3RjYWxjdWxhdGViZWZvcmVzYXZlIjpjYXNlIm51bWJlciI6Y2FzZSJyZWZtb2RlcjFjMSI6Y2FzZSJlbWJlZHNhdmVzbWFydHRhZ3MiOmJyZWFrO2RlZmF1bHQ6eXM9ITF9YnJlYWs7Y2FzZSJ3b3JrYm9va29wdGlv'@; put 'bnMiOnN3aXRjaCh2ZVszXSl7Y2FzZSJvd2N2ZXJzaW9uIjpjYXNlImhlaWdodCI6Y2FzZSJ3aWR0aCI6YnJlYWs7ZGVmYXVsdDp5cz0hMX1icmVhaztjYXNlIndvcmtzaGVldG9wdGlvbnMiOnN3aXRjaCh2ZVszXSl7Y2FzZSJ2aXNpYmxlIjppZigiLz4iIT09dmVbMF0uc2xpY2UoLTIpKWlm'@; put 'KCIvIj09PXZlWzFdKXN3aXRjaChRLnNsaWNlKFpuLHZlLmluZGV4KSl7Y2FzZSJTaGVldEhpZGRlbiI6amkuSGlkZGVuPTE7YnJlYWs7Y2FzZSJTaGVldFZlcnlIaWRkZW4iOmppLkhpZGRlbj0yfWVsc2UgWm49dmUuaW5kZXgrdmVbMF0ubGVuZ3RoO2JyZWFrO2Nhc2UiaGVhZGVyIjpudFsi'@; put 'IW1hcmdpbnMiXXx8ZGYobnRbIiFtYXJnaW5zIl09e30sInhsbWwiKSxudFsiIW1hcmdpbnMiXS5oZWFkZXI9bG4odmVbMF0pLk1hcmdpbjticmVhaztjYXNlImZvb3RlciI6bnRbIiFtYXJnaW5zIl18fGRmKG50WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIiksbnRbIiFtYXJnaW5zIl0uZm9vdGVy'@; put 'PWxuKHZlWzBdKS5NYXJnaW47YnJlYWs7Y2FzZSJwYWdlbWFyZ2lucyI6dmFyIEVsPWxuKHZlWzBdKTtudFsiIW1hcmdpbnMiXXx8ZGYobnRbIiFtYXJnaW5zIl09e30sInhsbWwiKSxFbC5Ub3AmJihudFsiIW1hcmdpbnMiXS50b3A9RWwuVG9wKSxFbC5MZWZ0JiYobnRbIiFtYXJnaW5zIl0u'@; put 'bGVmdD1FbC5MZWZ0KSxFbC5SaWdodCYmKG50WyIhbWFyZ2lucyJdLnJpZ2h0PUVsLlJpZ2h0KSxFbC5Cb3R0b20mJihudFsiIW1hcmdpbnMiXS5ib3R0b209RWwuQm90dG9tKTticmVhaztjYXNlImRpc3BsYXlyaWdodHRvbGVmdCI6VXIuVmlld3N8fChVci5WaWV3cz1bXSksVXIuVmlld3Nb'@; put 'MF18fChVci5WaWV3c1swXT17fSksVXIuVmlld3NbMF0uUlRMPSEwO2JyZWFrO2Nhc2UiZnJlZXplcGFuZXMiOmNhc2UiZnJvemVubm9zcGxpdCI6Y2FzZSJhY3RpdmVyb3ciOmNhc2UiYWN0aXZlY29sIjpjYXNlInRvcHJvd2JvdHRvbXBhbmUiOmNhc2UibGVmdGNvbHVtbnJpZ2h0cGFuZSI6'@; put 'Y2FzZSJ1bnN5bmNlZCI6Y2FzZSJwcmludCI6Y2FzZSJwcmludGVycm9ycyI6Y2FzZSJwYW5lcyI6Y2FzZSJzY2FsZSI6Y2FzZSJwYW5lIjpjYXNlIm51bWJlciI6Y2FzZSJsYXlvdXQiOmNhc2UicGFnZXNldHVwIjpjYXNlInNlbGVjdGVkIjpjYXNlInByb3RlY3RvYmplY3RzIjpjYXNlImVu'@; put 'YWJsZXNlbGVjdGlvbiI6Y2FzZSJwcm90ZWN0c2NlbmFyaW9zIjpjYXNlInZhbGlkcHJpbnRlcmluZm8iOmNhc2UiaG9yaXpvbnRhbHJlc29sdXRpb24iOmNhc2UidmVydGljYWxyZXNvbHV0aW9uIjpjYXNlIm51bWJlcm9mY29waWVzIjpjYXNlImFjdGl2ZXBhbmUiOmNhc2UidG9wcm93dmlz'@; put 'aWJsZSI6Y2FzZSJsZWZ0Y29sdW1udmlzaWJsZSI6Y2FzZSJmaXR0b3BhZ2UiOmNhc2UicmFuZ2VzZWxlY3Rpb24iOmNhc2UicGFwZXJzaXplaW5kZXgiOmNhc2UicGFnZWxheW91dHpvb20iOmNhc2UicGFnZWJyZWFrem9vbSI6Y2FzZSJmaWx0ZXJvbiI6Y2FzZSJmaXR3aWR0aCI6Y2FzZSJm'@; put 'aXRoZWlnaHQiOmNhc2UiY29tbWVudHNsYXlvdXQiOmNhc2Uiem9vbSI6Y2FzZSJsZWZ0dG9yaWdodCI6Y2FzZSJncmlkbGluZXMiOmNhc2UiYWxsb3dzb3J0IjpjYXNlImFsbG93ZmlsdGVyIjpjYXNlImFsbG93aW5zZXJ0cm93cyI6Y2FzZSJhbGxvd2RlbGV0ZXJvd3MiOmNhc2UiYWxsb3dp'@; put 'bnNlcnRjb2xzIjpjYXNlImFsbG93ZGVsZXRlY29scyI6Y2FzZSJhbGxvd2luc2VydGh5cGVybGlua3MiOmNhc2UiYWxsb3dmb3JtYXRjZWxscyI6Y2FzZSJhbGxvd3NpemVjb2xzIjpjYXNlImFsbG93c2l6ZXJvd3MiOmNhc2UidGFiY29sb3JpbmRleCI6Y2FzZSJkb25vdGRpc3BsYXloZWFk'@; put 'aW5ncyI6Y2FzZSJzaG93cGFnZWxheW91dHpvb20iOmNhc2UiYmxhY2thbmR3aGl0ZSI6Y2FzZSJkb25vdGRpc3BsYXl6ZXJvcyI6Y2FzZSJkaXNwbGF5cGFnZWJyZWFrIjpjYXNlInJvd2NvbGhlYWRpbmdzIjpjYXNlImRvbm90ZGlzcGxheW91dGxpbmUiOmNhc2Uibm9vcmllbnRhdGlvbiI6'@; put 'Y2FzZSJhbGxvd3VzZXBpdm90dGFibGVzIjpjYXNlInplcm9oZWlnaHQiOmNhc2Uidmlld2FibGVyYW5nZSI6Y2FzZSJzZWxlY3Rpb24iOmNhc2UicHJvdGVjdGNvbnRlbnRzIjpicmVhaztjYXNlInNwbGl0aG9yaXpvbnRhbCI6Y2FzZSJzcGxpdHZlcnRpY2FsIjppZigiLz4iIT09dmVbMF0u'@; put 'c2xpY2UoLTIpKWlmKCIvIj09dmVbMV0pe250WyIhZnJlZXplIl18fChudFsiIWZyZWV6ZSJdPSJBMSIpO3ZhciBzbD1zcyhudFsiIWZyZWV6ZSJdKTsic3BsaXRob3Jpem9udGFsIj09dmVbM10/c2wucj0rUS5zbGljZShabix2ZS5pbmRleCk6c2wuYz0rUS5zbGljZShabix2ZS5pbmRleCks'@; put 'bnRbIiFmcmVlemUiXT1kaShzbCl9ZWxzZSBabj12ZS5pbmRleCt2ZVswXS5sZW5ndGg7YnJlYWs7Y2FzZSJkb25vdGRpc3BsYXlncmlkbGluZXMiOm50WyIhZ3JpZGxpbmVzIl09ITE7YnJlYWs7Y2FzZSJub3N1bW1hcnlyb3dzYmVsb3dkZXRhaWwiOm50WyIhb3V0bGluZSJdfHwobnRbIiFv'@; put 'dXRsaW5lIl09e30pLG50WyIhb3V0bGluZSJdLmFib3ZlPSEwO2JyZWFrO2Nhc2Uibm9zdW1tYXJ5Y29sdW1uc3JpZ2h0ZGV0YWlsIjpudFsiIW91dGxpbmUiXXx8KG50WyIhb3V0bGluZSJdPXt9KSxudFsiIW91dGxpbmUiXS5sZWZ0PSEwO2JyZWFrO2RlZmF1bHQ6eXM9ITF9YnJlYWs7Y2Fz'@; put 'ZSJwaXZvdHRhYmxlIjpjYXNlInBpdm90Y2FjaGUiOnN3aXRjaCh2ZVszXSl7Y2FzZSJpbW1lZGlhdGVpdGVtc29uZHJvcCI6Y2FzZSJzaG93cGFnZW11bHRpcGxlaXRlbWxhYmVsIjpjYXNlImNvbXBhY3Ryb3dpbmRlbnQiOmNhc2UibG9jYXRpb24iOmNhc2UicGl2b3RmaWVsZCI6Y2FzZSJv'@; put 'cmllbnRhdGlvbiI6Y2FzZSJsYXlvdXRmb3JtIjpjYXNlImxheW91dHN1YnRvdGFsbG9jYXRpb24iOmNhc2UibGF5b3V0Y29tcGFjdHJvdyI6Y2FzZSJwb3NpdGlvbiI6Y2FzZSJwaXZvdGl0ZW0iOmNhc2UiZGF0YXR5cGUiOmNhc2UiZGF0YWZpZWxkIjpjYXNlInNvdXJjZW5hbWUiOmNhc2Ui'@; put 'cGFyZW50ZmllbGQiOmNhc2UicHRsaW5laXRlbXMiOmNhc2UicHRsaW5laXRlbSI6Y2FzZSJjb3VudG9mc2FtZWl0ZW1zIjpjYXNlIml0ZW0iOmNhc2UiaXRlbXR5cGUiOmNhc2UicHRzb3VyY2UiOmNhc2UiY2FjaGVpbmRleCI6Y2FzZSJjb25zb2xpZGF0aW9ucmVmZXJlbmNlIjpjYXNlImZp'@; put 'bGVuYW1lIjpjYXNlInJlZmVyZW5jZSI6Y2FzZSJub2NvbHVtbmdyYW5kIjpjYXNlIm5vcm93Z3JhbmQiOmNhc2UiYmxhbmtsaW5lYWZ0ZXJpdGVtcyI6Y2FzZSJoaWRkZW4iOmNhc2Uic3VidG90YWwiOmNhc2UiYmFzZWZpZWxkIjpjYXNlIm1hcGNoaWxkaXRlbXMiOmNhc2UiZnVuY3Rpb24i'@; put 'OmNhc2UicmVmcmVzaG9uZmlsZW9wZW4iOmNhc2UicHJpbnRzZXR0aXRsZXMiOmNhc2UibWVyZ2VsYWJlbHMiOmNhc2UiZGVmYXVsdHZlcnNpb24iOmNhc2UicmVmcmVzaG5hbWUiOmNhc2UicmVmcmVzaGRhdGUiOmNhc2UicmVmcmVzaGRhdGVjb3B5IjpjYXNlInZlcnNpb25sYXN0cmVmcmVz'@; put 'aCI6Y2FzZSJ2ZXJzaW9ubGFzdHVwZGF0ZSI6Y2FzZSJ2ZXJzaW9udXBkYXRlYWJsZW1pbiI6Y2FzZSJ2ZXJzaW9ucmVmcmVzaGFibGVtaW4iOmNhc2UiY2FsY3VsYXRpb24iOmJyZWFrO2RlZmF1bHQ6eXM9ITF9YnJlYWs7Y2FzZSJwYWdlYnJlYWtzIjpzd2l0Y2godmVbM10pe2Nhc2UiY29s'@; put 'YnJlYWtzIjpjYXNlImNvbGJyZWFrIjpjYXNlInJvd2JyZWFrcyI6Y2FzZSJyb3dicmVhayI6Y2FzZSJjb2xzdGFydCI6Y2FzZSJjb2xlbmQiOmNhc2Uicm93ZW5kIjpicmVhaztkZWZhdWx0OnlzPSExfWJyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6c3dpdGNoKHZlWzNdKXtjYXNlImF1dG9maWx0'@; put 'ZXJjb2x1bW4iOmNhc2UiYXV0b2ZpbHRlcmNvbmRpdGlvbiI6Y2FzZSJhdXRvZmlsdGVyYW5kIjpjYXNlImF1dG9maWx0ZXJvciI6YnJlYWs7ZGVmYXVsdDp5cz0hMX1icmVhaztjYXNlInF1ZXJ5dGFibGUiOnN3aXRjaCh2ZVszXSl7Y2FzZSJpZCI6Y2FzZSJhdXRvZm9ybWF0Zm9udCI6Y2Fz'@; put 'ZSJhdXRvZm9ybWF0cGF0dGVybiI6Y2FzZSJxdWVyeXNvdXJjZSI6Y2FzZSJxdWVyeXR5cGUiOmNhc2UiZW5hYmxlcmVkaXJlY3Rpb25zIjpjYXNlInJlZnJlc2hlZGlueGw5IjpjYXNlInVybHN0cmluZyI6Y2FzZSJodG1sdGFibGVzIjpjYXNlImNvbm5lY3Rpb24iOmNhc2UiY29tbWFuZHRl'@; put 'eHQiOmNhc2UicmVmcmVzaGluZm8iOmNhc2Uibm90aXRsZXMiOmNhc2UibmV4dGlkIjpjYXNlImNvbHVtbmluZm8iOmNhc2Uib3ZlcndyaXRlY2VsbHMiOmNhc2UiZG9ub3Rwcm9tcHRmb3JmaWxlIjpjYXNlInRleHR3aXphcmRzZXR0aW5ncyI6Y2FzZSJzb3VyY2UiOmNhc2UibnVtYmVyIjpj'@; put 'YXNlImRlY2ltYWwiOmNhc2UidGhvdXNhbmRzZXBhcmF0b3IiOmNhc2UidHJhaWxpbmdtaW51c251bWJlcnMiOmNhc2UiZm9ybWF0c2V0dGluZ3MiOmNhc2UiZmllbGR0eXBlIjpjYXNlImRlbGltaXRlcnMiOmNhc2UidGFiIjpjYXNlImNvbW1hIjpjYXNlImF1dG9mb3JtYXRuYW1lIjpjYXNl'@; put 'InZlcnNpb25sYXN0ZWRpdCI6Y2FzZSJ2ZXJzaW9ubGFzdHJlZnJlc2giOmJyZWFrO2RlZmF1bHQ6eXM9ITF9YnJlYWs7Y2FzZSJkYXRhdmFsaWRhdGlvbiI6c3dpdGNoKHZlWzNdKXtjYXNlInJhbmdlIjpzaS5yZWY9dmU7YnJlYWs7Y2FzZSJ0eXBlIjpjYXNlIm1pbiI6Y2FzZSJtYXgiOmNh'@; put 'c2Uic29ydCI6Y2FzZSJkZXNjZW5kaW5nIjpjYXNlIm9yZGVyIjpjYXNlImNhc2VzZW5zaXRpdmUiOmNhc2UidmFsdWUiOmNhc2UiZXJyb3JzdHlsZSI6Y2FzZSJlcnJvcm1lc3NhZ2UiOmNhc2UiZXJyb3J0aXRsZSI6Y2FzZSJpbnB1dG1lc3NhZ2UiOmNhc2UiaW5wdXR0aXRsZSI6Y2FzZSJj'@; put 'b21ib2hpZGUiOmNhc2UiaW5wdXRoaWRlIjpjYXNlImNvbmRpdGlvbiI6Y2FzZSJxdWFsaWZpZXIiOmNhc2UidXNlYmxhbmsiOmNhc2UidmFsdWUxIjpjYXNlInZhbHVlMiI6Y2FzZSJmb3JtYXQiOmNhc2UiY2VsbHJhbmdlbGlzdCI6YnJlYWs7ZGVmYXVsdDp5cz0hMX1icmVhaztjYXNlInNv'@; put 'cnRpbmciOmNhc2UiY29uZGl0aW9uYWxmb3JtYXR0aW5nIjpzd2l0Y2godmVbM10pe2Nhc2UicmFuZ2UiOmNhc2UidHlwZSI6Y2FzZSJtaW4iOmNhc2UibWF4IjpjYXNlInNvcnQiOmNhc2UiZGVzY2VuZGluZyI6Y2FzZSJvcmRlciI6Y2FzZSJjYXNlc2Vuc2l0aXZlIjpjYXNlInZhbHVlIjpj'@; put 'YXNlImVycm9yc3R5bGUiOmNhc2UiZXJyb3JtZXNzYWdlIjpjYXNlImVycm9ydGl0bGUiOmNhc2UiY2VsbHJhbmdlbGlzdCI6Y2FzZSJpbnB1dG1lc3NhZ2UiOmNhc2UiaW5wdXR0aXRsZSI6Y2FzZSJjb21ib2hpZGUiOmNhc2UiaW5wdXRoaWRlIjpjYXNlImNvbmRpdGlvbiI6Y2FzZSJxdWFs'@; put 'aWZpZXIiOmNhc2UidXNlYmxhbmsiOmNhc2UidmFsdWUxIjpjYXNlInZhbHVlMiI6Y2FzZSJmb3JtYXQiOmJyZWFrO2RlZmF1bHQ6eXM9ITF9YnJlYWs7Y2FzZSJtYXBpbmZvIjpjYXNlInNjaGVtYSI6Y2FzZSJkYXRhIjpzd2l0Y2godmVbM10pe2Nhc2UibWFwIjpjYXNlImVudHJ5IjpjYXNl'@; put 'InJhbmdlIjpjYXNlInhwYXRoIjpjYXNlImZpZWxkIjpjYXNlInhzZHR5cGUiOmNhc2UiZmlsdGVyb24iOmNhc2UiYWdncmVnYXRlIjpjYXNlImVsZW1lbnR0eXBlIjpjYXNlImF0dHJpYnV0ZXR5cGUiOmNhc2Uic2NoZW1hIjpjYXNlImVsZW1lbnQiOmNhc2UiY29tcGxleHR5cGUiOmNhc2Ui'@; put 'ZGF0YXR5cGUiOmNhc2UiYWxsIjpjYXNlImF0dHJpYnV0ZSI6Y2FzZSJleHRlbmRzIjpjYXNlInJvdyI6YnJlYWs7ZGVmYXVsdDp5cz0hMX1icmVhaztjYXNlInNtYXJ0dGFncyI6YnJlYWs7ZGVmYXVsdDp5cz0hMX1pZih5c3x8dmVbM10ubWF0Y2goLyFcW0NEQVRBLykpYnJlYWs7aWYoIVNl'@; put 'W1NlLmxlbmd0aC0xXVsxXSl0aHJvdyJVbnJlY29nbml6ZWQgdGFnOiAiK3ZlWzNdKyJ8IitTZS5qb2luKCJ8Iik7aWYoImN1c3RvbWRvY3VtZW50cHJvcGVydGllcyI9PT1TZVtTZS5sZW5ndGgtMV1bMF0pe2lmKCIvPiI9PT12ZVswXS5zbGljZSgtMikpYnJlYWs7Ii8iPT09dmVbMV0/UmUo'@; put 'dHIsX28sQnIsUS5zbGljZShabix2ZS5pbmRleCkpOihCcj12ZSxabj12ZS5pbmRleCt2ZVswXS5sZW5ndGgpO2JyZWFrfWlmKEwuV1RGKXRocm93IlVucmVjb2duaXplZCB0YWc6ICIrdmVbM10rInwiK1NlLmpvaW4oInwiKX12YXIgZ2w9e307cmV0dXJuIUwuYm9va1NoZWV0cyYmIUwuYm9v'@; put 'a1Byb3BzJiYoZ2wuU2hlZXRzPUJlKSxnbC5TaGVldE5hbWVzPUdlLGdsLldvcmtib29rPVVyLGdsLlNTRj13LmdldF90YWJsZSgpLGdsLlByb3BzPWVyLGdsLkN1c3Rwcm9wcz10cixnbC5TaGVldHMmJmdsLlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihudSl7dmFyIHRsPWdsLlNoZWV0'@; put 'c1tudV07dGxbIiFtZXJnZXMiXSYmdGxbIiFtZXJnZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKEt0KXsic3RyaW5nIj09dHlwZW9mIEt0JiYoS3Q9TS51dGlscy5kZWNvZGVfcmFuZ2UoS3QpKTt2YXIgZ249TS51dGlscy5lbmNvZGVfY2VsbChLdC5zKSxMbj1BcnJheS5pc0FycmF5KHRsKT8odGxb'@; put 'S3Qucy5yXXx8W10pW0t0LnMuY106dGxbZ25dO0xuJiZMbi5zJiYobnVsbCE9TG4ucy50b3AmJnFvLnNoZWV0X3NldF9yYW5nZV9zdHlsZSh0bCxLdCx7dG9wOkxuLnMudG9wfSksbnVsbCE9TG4ucy5ib3R0b20mJnFvLnNoZWV0X3NldF9yYW5nZV9zdHlsZSh0bCxLdCx7Ym90dG9tOkxuLnMu'@; put 'Ym90dG9tfSksbnVsbCE9TG4ucy5sZWZ0JiZxby5zaGVldF9zZXRfcmFuZ2Vfc3R5bGUodGwsS3Qse2xlZnQ6TG4ucy5sZWZ0fSksbnVsbCE9TG4ucy5yaWdodCYmcW8uc2hlZXRfc2V0X3JhbmdlX3N0eWxlKHRsLEt0LHtyaWdodDpMbi5zLnJpZ2h0fSkpfSl9KSxnbH1mdW5jdGlvbiBqYSh5'@; put 'LFApe3N3aXRjaChQNihQPVB8fHt9KSxQLnR5cGV8fCJiYXNlNjQiKXtjYXNlImJhc2U2NCI6cmV0dXJuIHpyKHNlLmRlY29kZSh5KSxQKTtjYXNlImJpbmFyeSI6Y2FzZSJidWZmZXIiOmNhc2UiZmlsZSI6cmV0dXJuIHpyKHksUCk7Y2FzZSJhcnJheSI6cmV0dXJuIHpyKE4oeSksUCl9fWZ1'@; put 'bmN0aW9uIFZuKHkpe3JldHVybiBTcigiTmFtZWRSYW5nZSIsbnVsbCx7InNzOk5hbWUiOnkuTmFtZSwic3M6UmVmZXJzVG8iOiI9IitLOSh5LlJlZix7cjowLGM6MH0pfSl9ZnVuY3Rpb24gZ00oeSxQLEwsUSxyZSxnZSxfZSl7aWYoIXl8fG51bGw9PXkudiYmbnVsbD09eS5mJiYhUS5zaGVl'@; put 'dFN0dWJzKXJldHVybiIiO3ZhciB2ZT17fTtpZih5LmYmJih2ZVsic3M6Rm9ybXVsYSJdPSI9IitIcihLOSh5LmYsX2UpKSkseS5GJiZ5LkYuc2xpY2UoMCxQLmxlbmd0aCk9PVApe3ZhciBTZT1zcyh5LkYuc2xpY2UoUC5sZW5ndGgrMSkpO3ZlWyJzczpBcnJheVJhbmdlIl09IlJDOlIiKyhT'@; put 'ZS5yPT1fZS5yPyIiOiJbIisoU2Uuci1fZS5yKSsiXSIpKyJDIisoU2UuYz09X2UuYz8iIjoiWyIrKFNlLmMtX2UuYykrIl0iKX1pZih5LmwmJnkubC5UYXJnZXQmJih2ZVsic3M6SFJlZiJdPUhyKHkubC5UYXJnZXQpLHkubC5Ub29sdGlwJiYodmVbIng6SFJlZlNjcmVlblRpcCJdPUhyKHku'@; put 'bC5Ub29sdGlwKSkpLExbIiFtZXJnZXMiXSlmb3IodmFyIEhlPUxbIiFtZXJnZXMiXSxCZT0wO0JlIT1IZS5sZW5ndGg7KytCZSlIZVtCZV0ucy5jIT1fZS5jfHxIZVtCZV0ucy5yIT1fZS5yfHwoSGVbQmVdLmUuYz5IZVtCZV0ucy5jJiYodmVbInNzOk1lcmdlQWNyb3NzIl09SGVbQmVdLmUu'@; put 'Yy1IZVtCZV0ucy5jKSxIZVtCZV0uZS5yPkhlW0JlXS5zLnImJih2ZVsic3M6TWVyZ2VEb3duIl09SGVbQmVdLmUuci1IZVtCZV0ucy5yKSk7dmFyIEdlPSIiLG50PSIiO3N3aXRjaCh5LnQpe2Nhc2UieiI6aWYoIVEuc2hlZXRTdHVicylyZXR1cm4iIjticmVhaztjYXNlIm4iOkdlPSJOdW1i'@; put 'ZXIiLG50PVN0cmluZyh5LnYpO2JyZWFrO2Nhc2UiYiI6R2U9IkJvb2xlYW4iLG50PXkudj8iMSI6IjAiO2JyZWFrO2Nhc2UiZSI6R2U9IkVycm9yIixudD1Rb1t5LnZdO2JyZWFrO2Nhc2UiZCI6R2U9IkRhdGVUaW1lIixudD1uZXcgRGF0ZSh5LnYpLnRvSVNPU3RyaW5nKCksbnVsbD09eS56'@; put 'JiYoeS56PXkuenx8dy5fdGFibGVbMTRdKTticmVhaztjYXNlInMiOkdlPSJTdHJpbmciLG50PWlvKHkudnx8IiIpfXZhciBkdD1ndShRLmNlbGxYZnMsbnVsbCx5LFEpO3ZlWyJzczpTdHlsZUlEIl09InMiKygyMStkdCksdmVbInNzOkluZGV4Il09X2UuYysxO3ZhciBDdD1udWxsIT15LnY/'@; put 'bnQ6IiIsY3Q9InoiPT15LnQ/IiI6eS5SP2Z1bmN0aW9uIFhMKHkpe3JldHVybic8c3M6RGF0YSBzczpUeXBlPSJTdHJpbmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4nK3kubWFwKGZ1bmN0aW9uKEwpe3ZhciBRPWlvKEwudik7cmV0dXJuIEwucyYmKEwucy5i'@; put 'b2xkJiYoUT0iPEI+IitRKyI8L0I+IiksTC5zLml0YWxpYyYmKFE9IjxJPiIrUSsiPC9JPiIpLEwucy5zdHJpa2UmJihRPSI8Uz4iK1ErIjwvUz4iKSxMLnMudW5kZXJsaW5lJiYoUT0iPFU+IitRKyI8L1U+IiksInN1cGVyIj09TC5zLnZhbGlnbiYmKFE9IjxTdXA+IitRKyI8L1N1cD4iKSwi'@; put 'c3ViIj09TC5zLnZhbGlnbiYmKFE9IjxTdWI+IitRKyI8L1N1Yj4iKSwoTC5zLm5hbWV8fEwucy5zenx8TC5zLmNvbG9yJiZudWxsIT1MLnMuY29sb3IucmdiKSYmKFE9WyI8Rm9udCIsTC5zLm5hbWU/JyBodG1sOkZhY2U9IicrTC5zLm5hbWUrJyInOiIiLEwucy5zej8nIGh0bWw6U2l6ZT0i'@; put 'JytMLnMuc3orJyInOiIiLEwucy5jb2xvcj8nIGh0bWw6Q29sb3I9IiMnKygiMDAwMDAwIisoIm51bWJlciI9PXR5cGVvZiBMLnMuY29sb3IucmdiP0wucy5jb2xvci5yZ2IudG9TdHJpbmcoMTYpOkwucy5jb2xvci5yZ2IpKS5zbGljZSgtNikrJyInOiIiLCI+IixRLCI8L0ZvbnQ+Il0uam9p'@; put 'bigiIikpKSxRfSkuam9pbigiIikrIjwvRGF0YT4ifSh5LlIpOic8RGF0YSBzczpUeXBlPSInK0dlKyciPicrQ3QrIjwvRGF0YT4iO3JldHVybih5LmN8fFtdKS5sZW5ndGg+MCYmKGN0Kz1mdW5jdGlvbiBlXyh5KXtyZXR1cm4geS5tYXAoZnVuY3Rpb24oUCl7dmFyIFE9U3IoInNzOkRhdGEi'@; put 'LGhvKFAudHx8IiIpLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCJ9KTtyZXR1cm4gU3IoIkNvbW1lbnQiLFEseyJzczpBdXRob3IiOlAuYX0pfSkuam9pbigiIil9KHkuYykpLFNyKCJDZWxsIixjdCx2ZSl9ZnVuY3Rpb24gbU0oeSxQKXt2YXIgTD0nPFJvdyBzczpJ'@; put 'bmRleD0iJysoeSsxKSsnIic7cmV0dXJuIFAmJihQLmhweCYmIVAuaHB0JiYoUC5ocHQ9ajIoUC5ocHgpKSxQLmhwdCYmKEwrPScgc3M6QXV0b0ZpdEhlaWdodD0iMCIgc3M6SGVpZ2h0PSInK1AuaHB0KyciJyksUC5oaWRkZW4mJihMKz0nIHNzOkhpZGRlbj0iMSInKSksTCsiPiJ9ZnVuY3Rp'@; put 'b24gVmUoeSxQLEwpe3ZhciBRPVtdLGdlPUwuU2hlZXRzW0wuU2hlZXROYW1lc1t5XV0sX2U9Z2U/ZnVuY3Rpb24gcE0oeSxQLEwsUSl7aWYoIXl8fCEoKFF8fHt9KS5Xb3JrYm9va3x8e30pLk5hbWVzKXJldHVybiIiO2Zvcih2YXIgcmU9US5Xb3JrYm9vay5OYW1lcyxnZT1bXSxfZT0wO19l'@; put 'PHJlLmxlbmd0aDsrK19lKXt2YXIgdmU9cmVbX2VdO3ZlLlNoZWV0PT1MJiYodmUuTmFtZS5tYXRjaCgvXl94bGZuXC4vKXx8Z2UucHVzaChWbih2ZSkpKX1yZXR1cm4gZ2Uuam9pbigiIil9KGdlLDAseSxMKToiIjtyZXR1cm4gX2UubGVuZ3RoPjAmJlEucHVzaCgiPE5hbWVzPiIrX2UrIjwv'@; put 'TmFtZXM+IiksX2U9Z2U/ZnVuY3Rpb24gdk0oeSxQLEwsUSl7aWYoIXlbIiFyZWYiXSlyZXR1cm4iIjt2YXIgcmU9T2koeVsiIXJlZiJdKSxnZT15WyIhbWVyZ2VzIl18fFtdLF9lPTAsdmU9W107eVsiIWNvbHMiXSYmeVsiIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKGJ0LEZ0KXtwdShidCk7'@; put 'dmFyIGt0PSEhYnQud2lkdGgsVHQ9WWQoRnQsYnQpLFp0PXsic3M6SW5kZXgiOkZ0KzF9O2t0JiYoWnRbInNzOldpZHRoIl09eGMoVHQud2lkdGgpKSxidC5oaWRkZW4mJihadFsic3M6SGlkZGVuIl09IjEiKSx2ZS5wdXNoKFNyKCJDb2x1bW4iLG51bGwsWnQpKX0pO2Zvcih2YXIgU2U9QXJy'@; put 'YXkuaXNBcnJheSh5KSxIZT1yZS5zLnI7SGU8PXJlLmUucjsrK0hlKXtmb3IodmFyIEJlPVttTShIZSwoeVsiIXJvd3MiXXx8W10pW0hlXSldLEdlPXJlLnMuYztHZTw9cmUuZS5jOysrR2Upe3ZhciBudD0hMTtmb3IoX2U9MDtfZSE9Z2UubGVuZ3RoOysrX2UpaWYoIShnZVtfZV0ucy5jPkdl'@; put 'fHxnZVtfZV0ucy5yPkhlfHxnZVtfZV0uZS5jPEdlfHxnZVtfZV0uZS5yPEhlKSl7KGdlW19lXS5zLmMhPUdlfHxnZVtfZV0ucy5yIT1IZSkmJihudD0hMCk7YnJlYWt9aWYoIW50KXt2YXIgZHQ9e3I6SGUsYzpHZX0sQ3Q9ZGkoZHQpO0JlLnB1c2goZ00oU2U/KHlbSGVdfHxbXSlbR2VdOnlb'@; put 'Q3RdLEN0LHksUCwwLDAsZHQpKX19QmUucHVzaCgiPC9Sb3c+IiksQmUubGVuZ3RoPjImJnZlLnB1c2goQmUuam9pbigiIikpfXJldHVybiB2ZS5qb2luKCIiKX0oZ2UsUCk6IiIsX2UubGVuZ3RoPjAmJlEucHVzaCgiPFRhYmxlPiIrX2UrIjwvVGFibGU+IiksUS5wdXNoKGZ1bmN0aW9uIHh0'@; put 'KHksUCxMLFEpe2lmKCF5KXJldHVybiIiO3ZhciByZT1bXTtpZih5WyIhbWFyZ2lucyJdJiYocmUucHVzaCgiPFBhZ2VTZXR1cD4iKSx5WyIhbWFyZ2lucyJdLmhlYWRlciYmcmUucHVzaChTcigiSGVhZGVyIixudWxsLHsieDpNYXJnaW4iOnlbIiFtYXJnaW5zIl0uaGVhZGVyfSkpLHlbIiFt'@; put 'YXJnaW5zIl0uZm9vdGVyJiZyZS5wdXNoKFNyKCJGb290ZXIiLG51bGwseyJ4Ok1hcmdpbiI6eVsiIW1hcmdpbnMiXS5mb290ZXJ9KSkscmUucHVzaChTcigiUGFnZU1hcmdpbnMiLG51bGwseyJ4OkJvdHRvbSI6eVsiIW1hcmdpbnMiXS5ib3R0b218fCIwLjc1IiwieDpMZWZ0Ijp5WyIhbWFy'@; put 'Z2lucyJdLmxlZnR8fCIwLjciLCJ4OlJpZ2h0Ijp5WyIhbWFyZ2lucyJdLnJpZ2h0fHwiMC43IiwieDpUb3AiOnlbIiFtYXJnaW5zIl0udG9wfHwiMC43NSJ9KSkscmUucHVzaCgiPC9QYWdlU2V0dXA+IikpLFEmJlEuV29ya2Jvb2smJlEuV29ya2Jvb2suU2hlZXRzJiZRLldvcmtib29rLlNo'@; put 'ZWV0c1tMXSlpZihRLldvcmtib29rLlNoZWV0c1tMXS5IaWRkZW4pcmUucHVzaChTcigiVmlzaWJsZSIsMT09US5Xb3JrYm9vay5TaGVldHNbTF0uSGlkZGVuPyJTaGVldEhpZGRlbiI6IlNoZWV0VmVyeUhpZGRlbiIse30pKTtlbHNle2Zvcih2YXIgZ2U9MDtnZTxMJiYoIVEuV29ya2Jvb2su'@; put 'U2hlZXRzW2dlXXx8US5Xb3JrYm9vay5TaGVldHNbZ2VdLkhpZGRlbik7KytnZSk7Z2U9PUwmJnJlLnB1c2goIjxTZWxlY3RlZC8+Iil9aWYoKCgoKFF8fHt9KS5Xb3JrYm9va3x8e30pLlZpZXdzfHxbXSlbMF18fHt9KS5SVEwmJnJlLnB1c2goIjxEaXNwbGF5UmlnaHRUb0xlZnQvPiIpLGhu'@; put 'KHlbIiFncmlkbGluZXMiXSkmJnJlLnB1c2goIjxEb05vdERpc3BsYXlHcmlkbGluZXMvPiIpLHlbIiFmcmVlemUiXSl7cmUucHVzaCgiPEZyZWV6ZVBhbmVzLz4iKSxyZS5wdXNoKCI8RnJvemVuTm9TcGxpdC8+Iik7dmFyIF9lPXNzKHlbIiFmcmVlemUiXSk7X2Uucj4wJiYocmUucHVzaChm'@; put 'cygiU3BsaXRIb3Jpem9udGFsIiwiIitfZS5yKSkscmUucHVzaChmcygiVG9wUm93Qm90dG9tUGFuZSIsIiIrX2UucikpKSxfZS5jPjAmJihyZS5wdXNoKGZzKCJTcGxpdFZlcnRpY2FsIiwiIitfZS5jKSkscmUucHVzaChmcygiTGVmdENvbHVtblJpZ2h0UGFuZSIsIiIrX2UuYykpKX1yZXR1'@; put 'cm4geVsiIXByb3RlY3QiXSYmKHJlLnB1c2goZnMoIlByb3RlY3RDb250ZW50cyIsIlRydWUiKSkseVsiIXByb3RlY3QiXS5vYmplY3RzJiZyZS5wdXNoKGZzKCJQcm90ZWN0T2JqZWN0cyIsIlRydWUiKSkseVsiIXByb3RlY3QiXS5zY2VuYXJpb3MmJnJlLnB1c2goZnMoIlByb3RlY3RTY2Vu'@; put 'YXJpb3MiLCJUcnVlIikpLG51bGw9PXlbIiFwcm90ZWN0Il0uc2VsZWN0TG9ja2VkQ2VsbHN8fHlbIiFwcm90ZWN0Il0uc2VsZWN0TG9ja2VkQ2VsbHM/bnVsbCE9eVsiIXByb3RlY3QiXS5zZWxlY3RVbmxvY2tlZENlbGxzJiYheVsiIXByb3RlY3QiXS5zZWxlY3RVbmxvY2tlZENlbGxzJiZy'@; put 'ZS5wdXNoKGZzKCJFbmFibGVTZWxlY3Rpb24iLCJVbmxvY2tlZENlbGxzIikpOnJlLnB1c2goZnMoIkVuYWJsZVNlbGVjdGlvbiIsIk5vU2VsZWN0aW9uIikpLFtbImZvcm1hdENlbGxzIiwiQWxsb3dGb3JtYXRDZWxscyJdLFsiZm9ybWF0Q29sdW1ucyIsIkFsbG93U2l6ZUNvbHMiXSxbImZv'@; put 'cm1hdFJvd3MiLCJBbGxvd1NpemVSb3dzIl0sWyJpbnNlcnRDb2x1bW5zIiwiQWxsb3dJbnNlcnRDb2xzIl0sWyJpbnNlcnRSb3dzIiwiQWxsb3dJbnNlcnRSb3dzIl0sWyJpbnNlcnRIeXBlcmxpbmtzIiwiQWxsb3dJbnNlcnRIeXBlcmxpbmtzIl0sWyJkZWxldGVDb2x1bW5zIiwiQWxsb3dE'@; put 'ZWxldGVDb2xzIl0sWyJkZWxldGVSb3dzIiwiQWxsb3dEZWxldGVSb3dzIl0sWyJzb3J0IiwiQWxsb3dTb3J0Il0sWyJhdXRvRmlsdGVyIiwiQWxsb3dGaWx0ZXIiXSxbInBpdm90VGFibGVzIiwiQWxsb3dVc2VQaXZvdFRhYmxlcyJdXS5mb3JFYWNoKGZ1bmN0aW9uKHZlKXt5WyIhcHJvdGVj'@; put 'dCJdW3ZlWzBdXSYmcmUucHVzaCgiPCIrdmVbMV0rIi8+Iil9KSksMD09cmUubGVuZ3RoPyIiOlNyKCJXb3Jrc2hlZXRPcHRpb25zIixyZS5qb2luKCIiKSx7eG1sbnM6V2kueH0pfShnZSwwLHksTCkpLFEuam9pbigiIil9ZnVuY3Rpb24gSkwoeSxQKXtQfHwoUD17fSkseS5TU0Z8fCh5LlNT'@; put 'Rj13LmdldF90YWJsZSgpKSx5LlNTRiYmKEoodyksdy5sb2FkX3RhYmxlKHkuU1NGKSxQLnJldnNzZj1BZSh5LlNTRiksUC5yZXZzc2ZbeS5TU0ZbNjU1MzVdXT0wLFAuc3NmPXkuU1NGLHkuU3R5bGVzPXtGb250czpQLkZvbnRzPVt7c3o6MTIsY29sb3I6e3RoZW1lOjEscmdiOiIwMDAwMDAi'@; put 'fSxuYW1lOiJDYWxpYnJpIixmYW1pbHk6MixzY2hlbWU6Im1pbm9yIn1dLEZpbGxzOlAuRmlsbHM9W3twYXR0ZXJuVHlwZToibm9uZSJ9LHtwYXR0ZXJuVHlwZToiZ3JheTEyNSJ9XSxCb3JkZXJzOlAuQm9yZGVycz1be31dfSxQLmNlbGxYZnM9W10sUC5jZWxsU3R5bGVYZnM9W3tuYW1lOiJO'@; put 'b3JtYWwifV0sZ3UoUC5jZWxsWGZzLG51bGwse30se3JldnNzZjp7R2VuZXJhbDowfX0pKTt2YXIgTD1bXTtMLnB1c2goZnVuY3Rpb24gZk0oeSxQKXt2YXIgTD1bXTtyZXR1cm4geS5Qcm9wcyYmTC5wdXNoKGZ1bmN0aW9uIGljKHksUCl7dmFyIEw9W107cmV0dXJuIGx0KEYyKS5tYXAoZnVu'@; put 'Y3Rpb24oUSl7Zm9yKHZhciByZT0wO3JlPFBsLmxlbmd0aDsrK3JlKWlmKFBsW3JlXVsxXT09USlyZXR1cm4gUGxbcmVdO2ZvcihyZT0wO3JlPFIxLmxlbmd0aDsrK3JlKWlmKFIxW3JlXVsxXT09USlyZXR1cm4gUjFbcmVdO3Rocm93IFF9KS5mb3JFYWNoKGZ1bmN0aW9uKFEpe2lmKG51bGwh'@; put 'PXlbUVsxXV0pe3ZhciByZT1QJiZQLlByb3BzJiZudWxsIT1QLlByb3BzW1FbMV1dP1AuUHJvcHNbUVsxXV06eVtRWzFdXTsiZGF0ZSI9PT1RWzJdJiYocmU9bmV3IERhdGUocmUpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvXC5cZCpaLywiWiIpKSwibnVtYmVyIj09dHlwZW9mIHJlP3JlPVN0'@; put 'cmluZyhyZSk6ITA9PT1yZXx8ITE9PT1yZT9yZT1yZT8iMSI6IjAiOnJlIGluc3RhbmNlb2YgRGF0ZSYmKHJlPW5ldyBEYXRlKHJlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqWi8sIiIpKSxMLnB1c2goZnMoRjJbUVsxXV18fFFbMV0scmUpKX19KSxTcigiRG9jdW1lbnRQcm9wZXJ0'@; put 'aWVzIixMLmpvaW4oIiIpLHt4bWxuczpXaS5vfSl9KHkuUHJvcHMsUCkpLHkuQ3VzdHByb3BzJiZMLnB1c2goZnVuY3Rpb24gVHcoeSxQKXt2YXIgTD1bIldvcmtzaGVldHMiLCJTaGVldE5hbWVzIl0sUT0iQ3VzdG9tRG9jdW1lbnRQcm9wZXJ0aWVzIixyZT1bXTtyZXR1cm4geSYmbHQoeSku'@; put 'Zm9yRWFjaChmdW5jdGlvbihnZSl7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHksZ2UpKXtmb3IodmFyIF9lPTA7X2U8UGwubGVuZ3RoOysrX2UpaWYoZ2U9PVBsW19lXVsxXSlyZXR1cm47Zm9yKF9lPTA7X2U8UjEubGVuZ3RoOysrX2UpaWYoZ2U9PVIxW19lXVsx'@; put 'XSlyZXR1cm47Zm9yKF9lPTA7X2U8TC5sZW5ndGg7KytfZSlpZihnZT09TFtfZV0pcmV0dXJuO3ZhciB2ZT15W2dlXSxTZT0ic3RyaW5nIjsibnVtYmVyIj09dHlwZW9mIHZlPyhTZT0iZmxvYXQiLHZlPVN0cmluZyh2ZSkpOiEwPT09dmV8fCExPT09dmU/KFNlPSJib29sZWFuIix2ZT12ZT8i'@; put 'MSI6IjAiKTp2ZT1TdHJpbmcodmUpLHJlLnB1c2goU3IoSmkoZ2UpLHZlLHsiZHQ6ZHQiOlNlfSkpfX0pLFAmJmx0KFApLmZvckVhY2goZnVuY3Rpb24oZ2Upe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChQLGdlKSYmKCF5fHwhT2JqZWN0LnByb3RvdHlwZS5oYXNP'@; put 'd25Qcm9wZXJ0eS5jYWxsKHksZ2UpKSl7dmFyIF9lPVBbZ2VdLHZlPSJzdHJpbmciOyJudW1iZXIiPT10eXBlb2YgX2U/KHZlPSJmbG9hdCIsX2U9U3RyaW5nKF9lKSk6ITA9PT1fZXx8ITE9PT1fZT8odmU9ImJvb2xlYW4iLF9lPV9lPyIxIjoiMCIpOl9lIGluc3RhbmNlb2YgRGF0ZT8odmU9'@; put 'ImRhdGVUaW1lLnR6IixfZT1fZS50b0lTT1N0cmluZygpKTpfZT1TdHJpbmcoX2UpLHJlLnB1c2goU3IoSmkoZ2UpLF9lLHsiZHQ6ZHQiOnZlfSkpfX0pLCI8IitRKycgeG1sbnM9IicrV2kubysnIj4nK3JlLmpvaW4oIiIpKyI8LyIrUSsiPiJ9KHkuUHJvcHMseS5DdXN0cHJvcHMpKSxMLmpv'@; put 'aW4oIiIpfSh5LFApKSxMLnB1c2goIiIpLEwucHVzaCgiIiksTC5wdXNoKCIiKTtmb3IodmFyIFE9MDtRPHkuU2hlZXROYW1lcy5sZW5ndGg7KytRKUwucHVzaChTcigiV29ya3NoZWV0IixWZShRLFAseSkseyJzczpOYW1lIjpIcih5LlNoZWV0TmFtZXNbUV0pfSkpO3JldHVybiBMWzJdPWZ1'@; put 'bmN0aW9uIEtMKHksUCl7dmFyIFE9W1snPFN0eWxlIHNzOklEPSJEZWZhdWx0IiBzczpOYW1lPSJOb3JtYWwiPicsJzxBbGlnbm1lbnQgc3M6VmVydGljYWw9IkJvdHRvbSIvPicsIjxCb3JkZXJzLz4iLCc8Rm9udCBzczpGb250TmFtZT0iQ2FsaWJyaSIgeDpGYW1pbHk9IlN3aXNzIiBzczpT'@; put 'aXplPSIxMiIgc3M6Q29sb3I9IiMwMDAwMDAiLz4nLCI8SW50ZXJpb3IvPiIsIjxOdW1iZXJGb3JtYXQvPiIsIjxQcm90ZWN0aW9uLz4iLCI8L1N0eWxlPiJdLmpvaW4oIiIpXTtyZXR1cm4gUC5jZWxsWGZzLmZvckVhY2goZnVuY3Rpb24ocmUsZ2Upe3ZhciBfZT1bXTtpZihyZS5hbGlnbm1l'@; put 'bnQpe3ZhciB2ZT17fTtyZS5hbGlnbm1lbnQuc2hyaW5rVG9GaXQmJih2ZVsic3M6U2hyaW5rVG9GaXQiXT0iMSIpLHJlLmFsaWdubWVudC53cmFwVGV4dCYmKHZlWyJzczpXcmFwVGV4dCJdPSIxIikscmUuYWxpZ25tZW50LnZlcnRpY2FsJiYodmVbInNzOlZlcnRpY2FsIl09d3QocmUuYWxp'@; put 'Z25tZW50LnZlcnRpY2FsKSkscmUuYWxpZ25tZW50Lmhvcml6b250YWwmJih2ZVsic3M6SG9yaXpvbnRhbCJdPXd0KHJlLmFsaWdubWVudC5ob3Jpem9udGFsKSkscmUuYWxpZ25tZW50LmluZGVudCYmKHZlWyJzczpJbmRlbnQiXT1yZS5hbGlnbm1lbnQuaW5kZW50KSxyZS5hbGlnbm1lbnQu'@; put 'dGV4dFJvdGF0aW9uJiYodmVbInNzOlJvdGF0ZSJdPXJlLmFsaWdubWVudC50ZXh0Um90YXRpb24pLF9lLnB1c2goU3IoIkFsaWdubWVudCIsbnVsbCx2ZSkpfWU6aWYobnVsbCE9cmUuZm9udElkKXt2YXIgU2U9UC5Gb250c1tyZS5mb250SWRdO2lmKCFTZSlicmVhayBlO3ZhciBIZT17InNz'@; put 'OkZvbnROYW1lIjoiQ2FsaWJyaSIsInNzOlNpemUiOiIxMiJ9LEJlPSExO1NlLmJvbGQmJihCZT0hMCxIZVsic3M6Qm9sZCJdPSIxIiksU2UuaXRhbGljJiYoQmU9ITAsSGVbInNzOkl0YWxpYyJdPSIxIiksU2Uuc3RyaWtlJiYoQmU9ITAsSGVbInNzOlN0cmlrZVRocm91Z2giXT0iMSIpLG51'@; put 'bGwhPVNlLnVuZGVybGluZSYmKEJlPSEwLEhlWyJzczpVbmRlcmxpbmUiXT11TVtTZS51bmRlcmxpbmVdfHwoU2UudW5kZXJsaW5lPyJTaW5nbGUiOiJOb25lIikpLG51bGwhPVNlLnN6JiYoQmU9ITAsSGVbInNzOlNpemUiXT1TZS5zeiksbnVsbCE9U2UubmFtZSYmKEJlPSEwLEhlWyJzczpG'@; put 'b250TmFtZSJdPVNlLm5hbWUpLFNlLmNvbG9yJiZudWxsIT1TZS5jb2xvci5yZ2ImJihCZT0hMCxIZVsic3M6Q29sb3IiXT0iIyIrKCJudW1iZXIiPT10eXBlb2YgU2UuY29sb3IucmdiPyIwMDAwMDAiK1NlLmNvbG9yLnJnYi50b1N0cmluZygxNik6U2UuY29sb3IucmdiKS5zbGljZSgtNikp'@; put 'LFsic3ViIiwic3VwZXIiXS5pbmRleE9mKFNlLnZhbGlnbik+LTEmJihIZVsic3M6VmVydGljYWxBbGlnbiJdPXd0KFNlLnZhbGlnbikrInNjcmlwdCIpLEJlJiZfZS5wdXNoKFNyKCJGb250IixudWxsLEhlKSl9ZTppZihyZS5maWxsSWQ+MCl7dmFyIEdlPVAuRmlsbHNbcmUuZmlsbElkXTtp'@; put 'ZighR2V8fCFHZS5mZ0NvbG9yfHxudWxsPT1HZS5mZ0NvbG9yLnJnYilicmVhayBlO19lLnB1c2goU3IoIkludGVyaW9yIixudWxsLHsic3M6UGF0dGVybiI6X0RbR2UucGF0dGVyblR5cGVdfHwiU29saWQiLCJzczpDb2xvciI6IiMiKygibnVtYmVyIj09dHlwZW9mIEdlLmZnQ29sb3Iucmdi'@; put 'PyIwMCIrR2UuZmdDb2xvci5yZ2IudG9TdHJpbmcoMTYpOkdlLmZnQ29sb3IucmdiKS5zbGljZSgtNil9KSl9X2UucHVzaChTcigiTnVtYmVyRm9ybWF0IixudWxsLHsic3M6Rm9ybWF0IjpIcih3Ll90YWJsZVtyZS5udW1GbXRJZF0pfSkpO3ZhciBudD17InNzOklEIjoicyIrKDIxK2dlKX07'@; put 'cmUuc3R5bGUmJihudFsic3M6TmFtZSJdPXJlLnN0eWxlKSxRLnB1c2goU3IoIlN0eWxlIixfZS5qb2luKCIiKSxudCkpfSksU3IoIlN0eWxlcyIsUS5qb2luKCIiKSl9KDAsUCksTFszXT1mdW5jdGlvbiB2NSh5KXtpZighKCh5fHx7fSkuV29ya2Jvb2t8fHt9KS5OYW1lcylyZXR1cm4iIjtm'@; put 'b3IodmFyIFA9eS5Xb3JrYm9vay5OYW1lcyxMPVtdLFE9MDtRPFAubGVuZ3RoOysrUSl7dmFyIHJlPVBbUV07bnVsbD09cmUuU2hlZXQmJihyZS5OYW1lLm1hdGNoKC9eX3hsZm5cLi8pfHxMLnB1c2goVm4ocmUpKSl9cmV0dXJuIFNyKCJOYW1lcyIsTC5qb2luKCIiKSl9KHkpLEJuK1NyKCJX'@; put 'b3JrYm9vayIsTC5qb2luKCIiKSx7eG1sbnM6V2kuc3MsInhtbG5zOm8iOldpLm8sInhtbG5zOngiOldpLngsInhtbG5zOnNzIjpXaS5zcywieG1sbnM6ZHQiOldpLmR0LCJ4bWxuczpodG1sIjpXaS5odG1sfSl9ZnVuY3Rpb24ga3IoeSxQLEwsUSl7dmFyIHJlPUwsZ2U9W10sX2U9UC5zbGlj'@; put 'ZShQLmwsUC5sK3JlKTtpZihRJiZRLmVuYyYmUS5lbmMuaW5zaXR1JiZfZS5sZW5ndGg+MClzd2l0Y2goeS5uKXtjYXNlIkJPRiI6Y2FzZSJGaWxlUGFzcyI6Y2FzZSJGaWxlTG9jayI6Y2FzZSJJbnRlcmZhY2VIZHIiOmNhc2UiUlJESW5mbyI6Y2FzZSJSUkRIZWFkIjpjYXNlIlVzckV4Y2wi'@; put 'OmNhc2UiRU9GIjpRLmVuYy5pbnNpdHUodWUoe2xlbmd0aDpfZS5sZW5ndGh9KSwic2tpcCIpO2JyZWFrO2Nhc2UiQm91bmRTaGVldDgiOlEuZW5jLmluc2l0dSh1ZSh7bGVuZ3RoOjR9KSwic2tpcCIpLF9lPUJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKF9lLnNsaWNlKDAsNCkpLEJ1ZmZl'@; put 'ci5mcm9tKFEuZW5jLmluc2l0dShfZS5zbGljZSg0KSkpXSk7YnJlYWs7ZGVmYXVsdDpfZT1RLmVuYy5pbnNpdHUoX2UpfUFycmF5LmlzQXJyYXkoUCkmJiFBcnJheS5pc0FycmF5KF9lKSYmKF9lPUFycmF5LmZyb20oX2UpKSxnZS5wdXNoKF9lKSxQLmwrPXJlO2Zvcih2YXIgdmU9WDBbWW4o'@; put 'UCxQLmwpXSxTZT0wO251bGwhPXZlJiYiQ29udGludWUiPT09dmUubi5zbGljZSgwLDgpOylyZT1ZbihQLFAubCsyKSxTZT1QLmwrNCxRJiZRLmVuYyYmUS5lbmMuaW5zaXR1JiZRLmVuYy5pbnNpdHUodWUoe2xlbmd0aDo0fSksInNraXAiKSwiQ29udGludWVGcnQiPT12ZS5uP1NlKz00OiJD'@; put 'b250aW51ZUZydCI9PXZlLm4uc2xpY2UoMCwxMSkmJihTZSs9MTIsUSYmUS5lbmMmJlEuZW5jLmluc2l0dSYmUS5lbmMuaW5zaXR1KHVlKHtsZW5ndGg6OH0pLCJza2lwIikpLF9lPVAuc2xpY2UoU2UsUC5sKzQrcmUpLFEmJlEuZW5jJiZRLmVuYy5pbnNpdHUmJl9lLmxlbmd0aD4wJiYoX2U9'@; put 'US5lbmMuaW5zaXR1KF9lKSksZ2UucHVzaChfZSksUC5sKz00K3JlLHZlPVgwW1luKFAsUC5sKV07dmFyIEhlPVMoZ2UpO29sKEhlLDApO3ZhciBCZT0wO0hlLmxlbnM9W107Zm9yKHZhciBHZT0wO0dlPGdlLmxlbmd0aDsrK0dlKUhlLmxlbnMucHVzaChCZSksQmUrPWdlW0dlXS5sZW5ndGg7'@; put 'aWYoSGUubGVuZ3RoPEwpdGhyb3ciWExTIFJlY29yZCAiKyh5JiZ5Lm58fCI/PyIpKyIgVHJ1bmNhdGVkOiAiK0hlLmxlbmd0aCsiIDwgIitMO3JldHVybiB5LmYoSGUsSGUubGVuZ3RoLFEpfWZ1bmN0aW9uIEVjKHksUCxMKXtpZigieiIhPT15LnQmJnkuWEYpe3ZhciBRPTA7dHJ5e1E9eS56'@; put 'fHx5LlhGLm51bUZtdElkfHwwLFAuY2VsbE5GJiYoeS56PXcuX3RhYmxlW1FdKX1jYXRjaChnZSl7aWYoUC5XVEYpdGhyb3cgZ2V9aWYoIVB8fCExIT09UC5jZWxsVGV4dCl0cnl7eS53PSJlIj09PXkudD95Lnd8fFFvW3kudl06MD09PVF8fCJHZW5lcmFsIj09UT8ibiI9PT15LnQ/KDB8eS52'@; put 'KT09PXkudj93Ll9nZW5lcmFsX2ludCh5LnYpOncuX2dlbmVyYWxfbnVtKHkudik6dy5fZ2VuZXJhbCh5LnYpOncuZm9ybWF0KFEseS52LHtkYXRlMTkwNDohIUwsZGF0ZU5GOlAmJlAuZGF0ZU5GfSl9Y2F0Y2goZ2Upe2lmKFAuV1RGKXRocm93IGdlfWlmKFAuY2VsbERhdGVzJiZRJiYibiI9'@; put 'PXkudCYmdy5pc19kYXRlKHcuX3RhYmxlW1FdfHxTdHJpbmcoUSkpKXt2YXIgcmU9dy5wYXJzZV9kYXRlX2NvZGUoeS52KTtyZSYmKHkudD0iZCIseS52PW5ldyBEYXRlKHJlLnkscmUubS0xLHJlLmQscmUuSCxyZS5NLHJlLlMscmUudSkpfX19ZnVuY3Rpb24gWDIoeSxQLEwpe3JldHVybnt2'@; put 'OnksaXhmZTpQLHQ6TH19dmFyIF9NPWZ1bmN0aW9uKHksUCxMKXtQWyIhb2JqZWN0cyJdPXl9LHJwPXtTSToiZTA4NTlmZjJmOTRmNjgxMGFiOTEwODAwMmIyN2IzZDkiLERTSToiMDJkNWNkZDU5YzJlMWIxMDkzOTcwODAwMmIyY2Y5YWUiLFVESToiMDVkNWNkZDU5YzJlMWIxMDkzOTcwODAw'@; put 'MmIyY2Y5YWUifTtmdW5jdGlvbiBfNSh5LFApe3ZhciBMLFEscmUsZ2U7aWYoUHx8KFA9e30pLFA2KFApLFYoKSxQLmNvZGVwYWdlJiZrKFAuY29kZXBhZ2UpLHkuRnVsbFBhdGhzKXtpZihqZS5maW5kKHksIi9lbmNyeXB0aW9uIikpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3Jk'@; put 'LXByb3RlY3RlZCIpO0w9amUuZmluZCh5LCIhQ29tcE9iaiIpLFE9amUuZmluZCh5LCIvV29ya2Jvb2siKXx8amUuZmluZCh5LCIvQm9vayIpfWVsc2V7c3dpdGNoKFAudHlwZSl7Y2FzZSJiYXNlNjQiOnk9RChzZS5kZWNvZGUoeSkpO2JyZWFrO2Nhc2UiYmluYXJ5Ijp5PUQoeSk7YnJlYWs7'@; put 'Y2FzZSJidWZmZXIiOmJyZWFrO2Nhc2UiYXJyYXkiOkFycmF5LmlzQXJyYXkoeSl8fCh5PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHkpKX1vbCh5LDApLFE9e2NvbnRlbnQ6eX19aWYoTCYmZnVuY3Rpb24gQWkoeSl7dmFyIFA9e30sTD15LmNvbnRlbnQ7aWYoTC5sPTI4LFAuQW5zaVVz'@; put 'ZXJUeXBlPUwucmVhZF9zaGlmdCgwLCJscHN0ci1hbnNpIiksUC5BbnNpQ2xpcGJvYXJkRm9ybWF0PWZ1bmN0aW9uIGc0KHkpe3JldHVybiBwNCh5LDEpfShMKSxMLmxlbmd0aC1MLmw8PTQpcmV0dXJuIFA7dmFyIFE9TC5yZWFkX3NoaWZ0KDQpO2lmKDA9PVF8fFE+NDB8fChMLmwtPTQsUC5S'@; put 'ZXNlcnZlZDE9TC5yZWFkX3NoaWZ0KDAsImxwc3RyLWFuc2kiKSxMLmxlbmd0aC1MLmw8PTQpfHwxOTA3NTA1NjUyIT09KFE9TC5yZWFkX3NoaWZ0KDQpKXx8KFAuVW5pY29kZUNsaXBib2FyZEZvcm1hdD1mdW5jdGlvbiBKNyh5KXtyZXR1cm4gcDQoeSwyKX0oTCksMD09KFE9TC5yZWFkX3No'@; put 'aWZ0KDQpKXx8UT40MCkpcmV0dXJuIFA7TC5sLT00LFAuUmVzZXJ2ZWQyPUwucmVhZF9zaGlmdCgwLCJscHdzdHIiKX0oTCksUC5ib29rUHJvcHMmJiFQLmJvb2tTaGVldHMpcmU9e307ZWxzZXt2YXIgX2U9aGU/ImJ1ZmZlciI6ImFycmF5IjtpZihRJiZRLmNvbnRlbnQpcmU9ZnVuY3Rpb24g'@; put 'Yk0oeSxQKXt2YXIgTD17b3B0czp7fX0sUT17fTtudWxsIT10ZSYmbnVsbD09UC5kZW5zZSYmKFAuZGVuc2U9dGUpO3ZhciBHZSxkdCxjdCxidCxUdCxadCxyZT1QLmRlbnNlP1tdOnt9LGdlPXt9LF9lPXt9LHZlPW51bGwsU2U9W10sSGU9IiIsQmU9e30sbnQ9IiIsRnQ9e30sa3Q9W10scG49'@; put 'W10sS249W10sdW49e1NoZWV0czpbXSxXQlByb3BzOntkYXRlMTkwNDohMX0sVmlld3M6W3t9XX0scW49e30sem49e0ZvbnRzOltdfSxrbj1mdW5jdGlvbihKcil7cmV0dXJuIEpyPDg/Q3JbSnJdOkpyPDY0JiZLbltKci04XXx8Q3JbSnJdfSxlcj1mdW5jdGlvbihKcix3cyl7dmFyIG1sLHZz'@; put 'PUpyLlhGLmRhdGE7dnMmJih2cy5wYXR0ZXJuVHlwZXx8bnVsbCE9dnMuaWN2Rm9yZSkmJndzJiZ3cy5jZWxsU3R5bGVzJiYoSnIucz17fSxKci5zLnBhdHRlcm5UeXBlPXZzLnBhdHRlcm5UeXBlLEpyLlhGLmZvbnQmJlV0KEpyLnMsSnIuWEYuZm9udCksdnMuZldyYXAmJigoSnIucy5hbGln'@; put 'bm1lbnR8fChKci5zLmFsaWdubWVudD17fSkpLndyYXBUZXh0PSEwKSx2cy5mU2hyaW5rVG9GaXQmJigoSnIucy5hbGlnbm1lbnR8fChKci5zLmFsaWdubWVudD17fSkpLnNocmlua1RvRml0PSEwKSx2cy5oYWxpZ24mJigoSnIucy5hbGlnbm1lbnR8fChKci5zLmFsaWdubWVudD17fSkpLmhv'@; put 'cml6b250YWw9dnMuaGFsaWduKSx2cy52YWxpZ24mJigoSnIucy5hbGlnbm1lbnR8fChKci5zLmFsaWdubWVudD17fSkpLnZlcnRpY2FsPXZzLnZhbGlnbiksdnMuY0luZGVudCYmKChKci5zLmFsaWdubWVudHx8KEpyLnMuYWxpZ25tZW50PXt9KSkuaW5kZW50PXZzLmNJbmRlbnQpLDY0IT12'@; put 'cy5pY3ZGb3JlJiY2NSE9dnMuaWN2QmFjayYmKChtbD16MShrbih2cy5pY3ZGb3JlKSkpJiYoSnIucy5mZ0NvbG9yPXtyZ2I6bWx9KSwobWw9ejEoa24odnMuaWN2QmFjaykpKSYmKEpyLnMuYmdDb2xvcj17cmdiOm1sfSkpLFsiTGVmdCIsIlJpZ2h0IiwiVG9wIiwiQm90dG9tIl0uZm9yRWFj'@; put 'aChmdW5jdGlvbih6bCl7dnNbImRnIit6bF0mJihKci5zW3psLnRvTG93ZXJDYXNlKCldPXtzdHlsZTpXMlt2c1siZGciK3psXV0sY29sb3I6e3JnYjp6MShrbih2c1siaWN2Iit6bF0pKX19KX0pKX0sdHI9ZnVuY3Rpb24oSnIsd3MsdnMpe2lmKCEod2k+MXx8dnMuc2hlZXRSb3dzJiZKci5y'@; put 'Pj12cy5zaGVldFJvd3MpKXtpZih2cy5jZWxsU3R5bGVzJiZ3cy5YRiYmd3MuWEYuZGF0YSYmZXIod3MsdnMpLGRlbGV0ZSB3cy5peGZlLGRlbGV0ZSB3cy5YRixHZT1KcixudD1kaShKciksKCFfZXx8IV9lLnN8fCFfZS5lKSYmKF9lPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0pLEpyLnI8'@; put 'X2Uucy5yJiYoX2Uucy5yPUpyLnIpLEpyLmM8X2Uucy5jJiYoX2Uucy5jPUpyLmMpLEpyLnIrMT5fZS5lLnImJihfZS5lLnI9SnIucisxKSxKci5jKzE+X2UuZS5jJiYoX2UuZS5jPUpyLmMrMSksdnMuY2VsbEZvcm11bGEmJndzLmYpZm9yKHZhciBtbD0wO21sPGt0Lmxlbmd0aDsrK21sKWlm'@; put 'KCEoa3RbbWxdWzBdLnMuYz5Kci5jfHxrdFttbF1bMF0ucy5yPkpyLnJ8fGt0W21sXVswXS5lLmM8SnIuY3x8a3RbbWxdWzBdLmUucjxKci5yKSl7d3MuRj1PbyhrdFttbF1bMF0pLChrdFttbF1bMF0ucy5jIT1Kci5jfHxrdFttbF1bMF0ucy5yIT1Kci5yKSYmZGVsZXRlIHdzLmYsd3MuZiYm'@; put 'KHdzLmY9IiIreGwoa3RbbWxdWzFdLF9lLEpyLFNuLFpuKSk7YnJlYWt9dnMuZGVuc2U/KHJlW0pyLnJdfHwocmVbSnIucl09W10pLHJlW0pyLnJdW0pyLmNdPXdzKTpyZVtudF09d3N9fSxabj17ZW5jOiExLHNiY2NoOjAsc25hbWVzOltdLHNoYXJlZGY6RnQsYXJyYXlmOmt0LHJydGFiaWQ6'@; put 'W10sbGFzdHVzZXI6IiIsYmlmZjo4LGNvZGVwYWdlOjAsd2lubG9ja2VkOjAsY2VsbFN0eWxlczohIVAmJiEhUC5jZWxsU3R5bGVzLFdURjohIVAmJiEhUC53dGZ9O1puLnBhc3N3b3JkPVAucGFzc3dvcmQ/UC5wYXNzd29yZDoiVmVsdmV0U3dlYXRzaG9wIjt2YXIgc2ksQnI9bnVsbCx4aT1b'@; put 'XSxMaT1bXSxRcj1bXSx1cj1bXSxycj0hMSxTbj1bXTtTbi5TaGVldE5hbWVzPVpuLnNuYW1lcyxTbi5zaGFyZWRmPVpuLnNoYXJlZGYsU24uYXJyYXlmPVpuLmFycmF5ZixTbi5uYW1lcz1bXSxTbi5YVEk9W107dmFyIFRpLG1yPSIiLHdpPTAsVXI9MCxqaT1bXSxfbz1bXTtabi5jb2RlcGFn'@; put 'ZT0xMjAwLGooMTIwMCk7Zm9yKHZhciBZbz0hMTt5Lmw8eS5sZW5ndGgtMTspe3ZhciBsbz15LmwsQW89eS5yZWFkX3NoaWZ0KDIpO2lmKFpuJiZabi5lbmMmJlpuLmVuYy5pbnNpdHUmJlpuLmVuYy5pbnNpdHUodWUoWzAsMF0pLCJoZWFkZXItMCIpLDA9PT1BbyYmIkVPRiI9PT1tcilicmVh'@; put 'azt2YXIgeG89eS5sPT09eS5sZW5ndGg/MDp5LnJlYWRfc2hpZnQoMik7Wm4mJlpuLmVuYyYmWm4uZW5jLmluc2l0dSYmWm4uZW5jLmluc2l0dSh1ZShbMCwwXSksImxlbmd0aC0wIik7dmFyIGhpPVgwW0FvXTtpZihoaSYmaGkuZil7aWYoUC5ib29rU2hlZXRzJiYiQm91bmRTaGVldDgiPT09'@; put 'bXImJiJCb3VuZFNoZWV0OCIhPT1oaS5uKWJyZWFrO2lmKG1yPWhpLm4sMj09PWhpLnJ8fDEyPT1oaS5yKXt2YXIgdGE9eS5yZWFkX3NoaWZ0KDIpO2lmKHhvLT0yLFpuJiZabi5lbmMmJlpuLmVuYy5pbnNpdHUmJlpuLmVuYy5pbnNpdHUodWUoWzAsMF0pKSwhWm4uZW5jJiZ0YSE9PUFvJiYo'@; put 'KDI1NSZ0YSk8PDh8dGE+PjgpIT09QW8pdGhyb3cgbmV3IEVycm9yKCJydCBtaXNtYXRjaDogIit0YSsiIT0iK0FvKTsxMj09aGkuciYmKHkubCs9MTAseG8tPTEwLFpuJiZabi5lbmMmJlpuLmVuYy5pbnNpdHUmJlpuLmVuYy5pbnNpdHUodWUoWzAsMCwwLDAsMCwwLDAsMCwwLDBdKSkpfXZh'@; put 'ciBNbj1rcihoaSx5LHhvLFpuKSxNcz1oaS5uO2lmKDA9PXdpJiYiQk9GIiE9TXMpY29udGludWU7c3dpdGNoKE1zKXtjYXNlIkRhdGUxOTA0IjpMLm9wdHMuRGF0ZTE5MDQ9dW4uV0JQcm9wcy5kYXRlMTkwND1NbjticmVhaztjYXNlIldyaXRlUHJvdGVjdCI6TC5vcHRzLldyaXRlUHJvdGVj'@; put 'dD0hMDticmVhaztjYXNlIkZpbGVQYXNzIjppZihabi5lbmN8fCh5Lmw9MCx3aT0wKSxabi5lbmM9TW4sIVAucGFzc3dvcmQmJm51bGw9PU1uLnZhbGlkKXRocm93IG5ldyBFcnJvcigiRmlsZSBpcyBwYXNzd29yZC1wcm90ZWN0ZWQiKTtpZihudWxsPT1Nbi52YWxpZCl0aHJvdyBuZXcgRXJy'@; put 'b3IoIkVuY3J5cHRpb24gc2NoZW1lIHVuc3VwcG9ydGVkIik7aWYoIU1uLnZhbGlkKXRocm93IG5ldyBFcnJvcigiUGFzc3dvcmQgaXMgaW5jb3JyZWN0Iik7YnJlYWs7Y2FzZSJXcml0ZUFjY2VzcyI6Wm4ubGFzdHVzZXI9TW47YnJlYWs7Y2FzZSJGaWxlU2hhcmluZyI6Y2FzZSJUZW1wbGF0'@; put 'ZSI6Y2FzZSJCb29rQm9vbCI6Y2FzZSJVc2VzRUxGcyI6Y2FzZSJNVFJTZXR0aW5ncyI6Y2FzZSJVbmNhbGNlZCI6Y2FzZSJFeHRTU1QiOmNhc2UiQm9va0V4dCI6Y2FzZSJSaWNoVGV4dFN0cmVhbSI6Y2FzZSJCa0hpbSI6Y2FzZSJJbmRleCI6Y2FzZSJQcm90NFJldiI6Y2FzZSJQcm90NFJl'@; put 'dlBhc3MiOmJyZWFrO2Nhc2UiQ29kZVBhZ2UiOnZhciB5cz1OdW1iZXIoTW4pO3N3aXRjaCh5cyl7Y2FzZSAyMTAxMDp5cz0xMjAwO2JyZWFrO2Nhc2UgMzI3Njg6eXM9MWU0O2JyZWFrO2Nhc2UgMzI3Njk6eXM9MTI1Mn1qKFpuLmNvZGVwYWdlPXlzKSxZbz0hMDticmVhaztjYXNlIlJSVGFi'@; put 'SWQiOlpuLnJydGFiaWQ9TW47YnJlYWs7Y2FzZSJXaW5Qcm90ZWN0Ijpabi53aW5sb2NrZWQ9TW47YnJlYWs7Y2FzZSJSZWZyZXNoQWxsIjpjYXNlIkNhbGNDb3VudCI6Y2FzZSJDYWxjRGVsdGEiOmNhc2UiQ2FsY0l0ZXIiOmNhc2UiQ2FsY01vZGUiOmNhc2UiQ2FsY1ByZWNpc2lvbiI6Y2Fz'@; put 'ZSJDYWxjU2F2ZVJlY2FsYyI6TC5vcHRzW01zXT1NbjticmVhaztjYXNlIkNhbGNSZWZNb2RlIjpabi5DYWxjUmVmTW9kZT1NbjticmVhaztjYXNlIkZvcmNlRnVsbENhbGN1bGF0aW9uIjpMLm9wdHMuRnVsbENhbGM9TW47YnJlYWs7Y2FzZSJXc0Jvb2wiOk1uLmZEaWFsb2cmJihyZVsiIXR5'@; put 'cGUiXT0iZGlhbG9nIiksTW4uZkJlbG93fHwoKHJlWyIhb3V0bGluZSJdfHwocmVbIiFvdXRsaW5lIl09e30pKS5hYm92ZT0hMCksTW4uZlJpZ2h0fHwoKHJlWyIhb3V0bGluZSJdfHwocmVbIiFvdXRsaW5lIl09e30pKS5sZWZ0PSEwKTticmVhaztjYXNlIlhGIjpNbi5mb250PXpuLkZvbnRz'@; put 'W01uLmlmbnQ8ND9Nbi5pZm50Ok1uLmlmbnQtMV0scG4ucHVzaChNbik7YnJlYWs7Y2FzZSJTdXBCb29rIjpTbi5wdXNoKFtNbl0pLFNuW1NuLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSJFeHRlcm5OYW1lIjpTbltTbi5sZW5ndGgtMV0ucHVzaChNbik7YnJlYWs7Y2FzZSJMYmwiOlRp'@; put 'PXtOYW1lOk1uLk5hbWUsUmVmOnhsKE1uLnJnY2UsX2UsbnVsbCxTbixabil9LE1uLml0YWI+MCYmKFRpLlNoZWV0PU1uLml0YWItMSksU24ubmFtZXMucHVzaChUaSksU25bMF18fChTblswXT1bXSxTblswXS5YVEk9W10pLFNuW1NuLmxlbmd0aC0xXS5wdXNoKE1uKSwiX3hsbm0uX0ZpbHRl'@; put 'ckRhdGFiYXNlIj09TW4uTmFtZSYmTW4uaXRhYj4wJiZNbi5yZ2NlJiZNbi5yZ2NlWzBdJiZNbi5yZ2NlWzBdWzBdJiYiUHRnQXJlYTNkIj09TW4ucmdjZVswXVswXVswXSYmKF9vW01uLml0YWItMV09e3JlZjpPbyhNbi5yZ2NlWzBdWzBdWzFdWzJdKX0pO2JyZWFrO2Nhc2UiRXh0ZXJuQ291'@; put 'bnQiOlpuLkV4dGVybkNvdW50PU1uO2JyZWFrO2Nhc2UiRXh0ZXJuU2hlZXQiOjA9PVNuLmxlbmd0aCYmKFNuWzBdPVtdLFNuWzBdLlhUST1bXSksU25bU24ubGVuZ3RoLTFdLlhUST1TbltTbi5sZW5ndGgtMV0uWFRJLmNvbmNhdChNbiksU24uWFRJPVNuLlhUSS5jb25jYXQoTW4pO2JyZWFr'@; put 'O2Nhc2UiTmFtZUNtdCI6aWYoWm4uYmlmZjw4KWJyZWFrO251bGwhPVRpJiYoVGkuQ29tbWVudD1NblsxXSk7YnJlYWs7Y2FzZSJQcm90ZWN0IjpyZVsiIXByb3RlY3QiXT1NbjticmVhaztjYXNlIlBhc3N3b3JkIjowIT09TW4mJlpuLldURiYmY29uc29sZS5lcnJvcigiUGFzc3dvcmQgdmVy'@; put 'aWZpZXI6ICIrTW4pO2JyZWFrO2Nhc2UiQm91bmRTaGVldDgiOmdlW01uLnBvc109TW4sWm4uc25hbWVzLnB1c2goTW4ubmFtZSk7YnJlYWs7Y2FzZSJFT0YiOmlmKHJlWyIhZ3JpZGxpbmVzIl09IUJyfHxCci5ncmlkLEJyPW51bGwsLS13aSlicmVhaztpZihfZS5lKXtpZihfZS5lLnI+MCYm'@; put 'X2UuZS5jPjApe2lmKF9lLmUuci0tLF9lLmUuYy0tLHJlWyIhcmVmIl09T28oX2UpLFAuc2hlZXRSb3dzJiZQLnNoZWV0Um93czw9X2UuZS5yKXt2YXIgRWw9X2UuZS5yO19lLmUucj1QLnNoZWV0Um93cy0xLHJlWyIhZnVsbHJlZiJdPXJlWyIhcmVmIl0scmVbIiFyZWYiXT1PbyhfZSksX2Uu'@; put 'ZS5yPUVsfV9lLmUucisrLF9lLmUuYysrfXhpLmxlbmd0aD4wJiYocmVbIiFtZXJnZXMiXT14aSksTGkubGVuZ3RoPjAmJl9NKExpLHJlLHpuKSxRci5sZW5ndGg+MCYmKHJlWyIhY29scyJdPVFyKSx1ci5sZW5ndGg+MCYmKHJlWyIhcm93cyJdPXVyKSx1bi5TaGVldHMucHVzaChxbil9IiI9'@; put 'PT1IZT9CZT1yZTpRW0hlXT1yZSxyZT1QLmRlbnNlP1tdOnt9O2JyZWFrO2Nhc2UiQk9GIjppZig4PT09Wm4uYmlmZiYmKFpuLmJpZmY9ezk6Miw1MjE6MywxMDMzOjR9W0FvXXx8ezUxMjoyLDc2ODozLDEwMjQ6NCwxMjgwOjUsMTUzNjo4LDI6Miw3OjJ9W01uLkJJRkZWZXJdfHw4KSxabi5i'@; put 'aWZmZ3Vlc3M9MD09TW4uQklGRlZlciwwPT1Nbi5CSUZGVmVyJiY0MDk2PT1Nbi5kdCYmKFpuLmJpZmY9NSxZbz0hMCxqKFpuLmNvZGVwYWdlPTI4NTkxKSksOD09Wm4uYmlmZiYmMD09TW4uQklGRlZlciYmMTY9PU1uLmR0JiYoWm4uYmlmZj0yKSx3aSsrKWJyZWFrO2lmKHJlPVAuZGVuc2U/'@; put 'W106e30sWm4uYmlmZjw4JiYhWW8mJihZbz0hMCxqKFpuLmNvZGVwYWdlPVAuY29kZXBhZ2V8fDEyNTIpKSxabi5iaWZmPDV8fDA9PU1uLkJJRkZWZXImJjQwOTY9PU1uLmR0KXsiIj09PUhlJiYoSGU9IlNoZWV0MSIpLF9lPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07dmFyIHNsPXtwb3M6'@; put 'eS5sLXhvLG5hbWU6SGV9O2dlW3NsLnBvc109c2wsWm4uc25hbWVzLnB1c2goSGUpfWVsc2UgSGU9KGdlW2xvXXx8e25hbWU6IiJ9KS5uYW1lOzMyPT1Nbi5kdCYmKHJlWyIhdHlwZSJdPSJjaGFydCIpLDY0PT1Nbi5kdCYmKHJlWyIhdHlwZSJdPSJtYWNybyIpLHhpPVtdLExpPVtdLFpuLmFy'@; put 'cmF5Zj1rdD1bXSxRcj1bXSx1cj1bXSxycj0hMSxxbj17SGlkZGVuOihnZVtsb118fHtoczowfSkuaHMsbmFtZTpIZX07YnJlYWs7Y2FzZSJOdW1iZXIiOmNhc2UiQklGRjJOVU0iOmNhc2UiQklGRjJJTlQiOiJjaGFydCI9PXJlWyIhdHlwZSJdJiYoUC5kZW5zZT8ocmVbTW4ucl18fFtdKVtN'@; put 'bi5jXTpyZVtkaSh7YzpNbi5jLHI6TW4ucn0pXSkmJisrTW4uYyxUdD17aXhmZTpNbi5peGZlLFhGOnBuW01uLml4ZmVdfHx7fSx2Ok1uLnZhbCx0OiJuIn0sVXI+MCYmKFR0Lno9amlbVHQuaXhmZT4+OCY2M10pLEVjKFR0LFAsTC5vcHRzLkRhdGUxOTA0KSx0cih7YzpNbi5jLHI6TW4ucn0s'@; put 'VHQsUCk7YnJlYWs7Y2FzZSJCb29sRXJyIjpUdD17aXhmZTpNbi5peGZlLFhGOnBuW01uLml4ZmVdLHY6TW4udmFsLHQ6TW4udH0sVXI+MCYmKFR0Lno9amlbVHQuaXhmZT4+OCY2M10pLEVjKFR0LFAsTC5vcHRzLkRhdGUxOTA0KSx0cih7YzpNbi5jLHI6TW4ucn0sVHQsUCk7YnJlYWs7Y2Fz'@; put 'ZSJSSyI6VHQ9e2l4ZmU6TW4uaXhmZSxYRjpwbltNbi5peGZlXSx2Ok1uLnJrbnVtLHQ6Im4ifSxVcj4wJiYoVHQuej1qaVtUdC5peGZlPj44JjYzXSksRWMoVHQsUCxMLm9wdHMuRGF0ZTE5MDQpLHRyKHtjOk1uLmMscjpNbi5yfSxUdCxQKTticmVhaztjYXNlIk11bFJrIjpmb3IodmFyIGds'@; put 'PU1uLmM7Z2w8PU1uLkM7KytnbCl7dmFyIG51PU1uLnJrcmVjW2dsLU1uLmNdWzBdO1R0PXtpeGZlOm51LFhGOnBuW251XSx2Ok1uLnJrcmVjW2dsLU1uLmNdWzFdLHQ6Im4ifSxVcj4wJiYoVHQuej1qaVtUdC5peGZlPj44JjYzXSksRWMoVHQsUCxMLm9wdHMuRGF0ZTE5MDQpLHRyKHtjOmds'@; put 'LHI6TW4ucn0sVHQsUCl9YnJlYWs7Y2FzZSJGb3JtdWxhIjppZigiU3RyaW5nIj09TW4udmFsKXt2ZT1NbjticmVha31pZigoVHQ9WDIoTW4udmFsLE1uLmNlbGwuaXhmZSxNbi50dCkpLlhGPXBuW1R0Lml4ZmVdLFAuY2VsbEZvcm11bGEpe3ZhciB0bD1Nbi5mb3JtdWxhO2lmKHRsJiZ0bFsw'@; put 'XSYmdGxbMF1bMF0mJiJQdGdFeHAiPT10bFswXVswXVswXSl7dmFyIEt0PXRsWzBdWzBdWzFdWzBdLGduPXRsWzBdWzBdWzFdWzFdLExuPWRpKHtyOkt0LGM6Z259KTtGdFtMbl0/VHQuZj0iIit4bChNbi5mb3JtdWxhLF9lLE1uLmNlbGwsU24sWm4pOlR0LkY9KChQLmRlbnNlPyhyZVtLdF18'@; put 'fFtdKVtnbl06cmVbTG5dKXx8e30pLkZ9ZWxzZSBUdC5mPSIiK3hsKE1uLmZvcm11bGEsX2UsTW4uY2VsbCxTbixabil9VXI+MCYmKFR0Lno9amlbVHQuaXhmZT4+OCY2M10pLEVjKFR0LFAsTC5vcHRzLkRhdGUxOTA0KSx0cihNbi5jZWxsLFR0LFApLHZlPU1uO2JyZWFrO2Nhc2UiU3RyaW5n'@; put 'IjppZighdmUpdGhyb3cgbmV3IEVycm9yKCJTdHJpbmcgcmVjb3JkIGV4cGVjdHMgRm9ybXVsYSIpO3ZlLnZhbD1NbiwoVHQ9WDIoTW4sdmUuY2VsbC5peGZlLCJzIikpLlhGPXBuW1R0Lml4ZmVdLFAuY2VsbEZvcm11bGEmJihUdC5mPSIiK3hsKHZlLmZvcm11bGEsX2UsdmUuY2VsbCxTbixa'@; put 'bikpLFVyPjAmJihUdC56PWppW1R0Lml4ZmU+PjgmNjNdKSxFYyhUdCxQLEwub3B0cy5EYXRlMTkwNCksdHIodmUuY2VsbCxUdCxQKSx2ZT1udWxsO2JyZWFrO2Nhc2UiQXJyYXkiOmt0LnB1c2goTW4pO3ZhciBXcj1kaShNblswXS5zKTtpZihkdD1QLmRlbnNlPyhyZVtNblswXS5zLnJdfHxb'@; put 'XSlbTW5bMF0ucy5jXTpyZVtXcl0sUC5jZWxsRm9ybXVsYSYmZHQpe2lmKCF2ZXx8IVdyfHwhZHQpYnJlYWs7ZHQuZj0iIit4bChNblsxXSxfZSxNblswXSxTbixabiksZHQuRj1PbyhNblswXSl9YnJlYWs7Y2FzZSJTaHJGbWxhIjppZighUC5jZWxsRm9ybXVsYSlicmVhaztpZihudCl7aWYo'@; put 'IXZlKWJyZWFrO0Z0W2RpKHZlLmNlbGwpXT1NblswXSwoKGR0PVAuZGVuc2U/KHJlW3ZlLmNlbGwucl18fFtdKVt2ZS5jZWxsLmNdOnJlW2RpKHZlLmNlbGwpXSl8fHt9KS5mPSIiK3hsKE1uWzBdLF9lLEdlLFNuLFpuKX1icmVhaztjYXNlIkxhYmVsU3N0IjpUdD1YMihTZVtNbi5pc3N0XS50'@; put 'LE1uLml4ZmUsInMiKSxTZVtNbi5pc3N0XS5oJiYoVHQuaD1TZVtNbi5pc3N0XS5oKSxUdC5YRj1wbltUdC5peGZlXSxVcj4wJiYoVHQuej1qaVtUdC5peGZlPj44JjYzXSksRWMoVHQsUCxMLm9wdHMuRGF0ZTE5MDQpLHRyKHtjOk1uLmMscjpNbi5yfSxUdCxQKSxTZVtNbi5pc3N0XS5SJiYo'@; put 'VHQuUj1TZVtNbi5pc3N0XS5SLm1hcChmdW5jdGlvbih6aSl7dmFyIEpyPW9uKHppKTtyZXR1cm4gemkucz09em4uRm9udHNbMF0mJihKci5zPVR0LnMpLEpyfSkpO2JyZWFrO2Nhc2UiQmxhbmsiOlAuc2hlZXRTdHVicyYmKFR0PXtpeGZlOk1uLml4ZmUsWEY6cG5bTW4uaXhmZV0sdDoieiJ9'@; put 'LFVyPjAmJihUdC56PWppW1R0Lml4ZmU+PjgmNjNdKSxFYyhUdCxQLEwub3B0cy5EYXRlMTkwNCksdHIoe2M6TW4uYyxyOk1uLnJ9LFR0LFApKTticmVhaztjYXNlIk11bEJsYW5rIjppZihQLnNoZWV0U3R1YnMpZm9yKHZhciBYbj1Nbi5jO1huPD1Nbi5DOysrWG4pe3ZhciBlaT1Nbi5peGZl'@; put 'W1huLU1uLmNdO1R0PXtpeGZlOmVpLFhGOnBuW2VpXSx0OiJ6In0sVXI+MCYmKFR0Lno9amlbVHQuaXhmZT4+OCY2M10pLEVjKFR0LFAsTC5vcHRzLkRhdGUxOTA0KSx0cih7YzpYbixyOk1uLnJ9LFR0LFApfWJyZWFrO2Nhc2UiUlN0cmluZyI6Y2FzZSJMYWJlbCI6Y2FzZSJCSUZGMlNUUiI6'@; put 'KFR0PVgyKE1uLnZhbCxNbi5peGZlLCJzIikpLlhGPXBuW1R0Lml4ZmVdLFVyPjAmJihUdC56PWppW1R0Lml4ZmU+PjgmNjNdKSxFYyhUdCxQLEwub3B0cy5EYXRlMTkwNCksdHIoe2M6TW4uYyxyOk1uLnJ9LFR0LFApO2JyZWFrO2Nhc2UiRGltZW5zaW9ucyI6MT09PXdpJiYoX2U9TW4pO2Jy'@; put 'ZWFrO2Nhc2UiU1NUIjooU2U9TW4pLmZvckVhY2goZnVuY3Rpb24oemkpe3ppLl9SPyh6aS5fUlswXSYmemkuX1JbMF0uaWR4PjAmJnppLl9SLnVuc2hpZnQoe2lkeDowLGlmbnQ6MH0pLHppLlI9emkuX1IubWFwKGZ1bmN0aW9uKEpyLHdzKXtyZXR1cm57dDoicyIsdjp6aS50LnNsaWNlKEpy'@; put 'LmlkeCwoemkuX1Jbd3MrMV18fHt9KS5pZHgpLHM6em4uRm9udHNbSnIuaWZudDw0P0pyLmlmbnQ6SnIuaWZudC0xXX19KSxQLmNlbGxIVE1MJiYoemkuaD1rOSh6aS5SKSkpOlAuY2VsbEhUTUwmJih6aS5oPXJvKHppLnQpKSxkZWxldGUgemkuX1J9KTticmVhaztjYXNlIkZvcm1hdCI6aWYo'@; put 'ND09Wm4uYmlmZil7amlbVXIrK109TW5bMV07Zm9yKHZhciBpcj0wO2lyPFVyKzE2MyYmdy5fdGFibGVbaXJdIT1NblsxXTsrK2lyKTtpcj49MTYzJiZ3LmxvYWQoTW5bMV0sVXIrMTYzKX1lbHNlIHcubG9hZChNblsxXSxNblswXSk7YnJlYWs7Y2FzZSJCSUZGMkZPUk1BVCI6amlbVXIrK109'@; put 'TW47Zm9yKHZhciByaT0wO3JpPFVyKzE2MyYmdy5fdGFibGVbcmldIT1NbjsrK3JpKTtyaT49MTYzJiZ3LmxvYWQoTW4sVXIrMTYzKTticmVhaztjYXNlIk1lcmdlQ2VsbHMiOnhpPXhpLmNvbmNhdChNbik7YnJlYWs7Y2FzZSJPYmoiOkxpW01uLmNtb1swXV09Wm4ubGFzdG9iaj1NbjticmVh'@; put 'aztjYXNlIlR4TyI6Wm4ubGFzdG9iai5UeE89TW47YnJlYWs7Y2FzZSJJbURhdGEiOlpuLmxhc3RvYmouSW1EYXRhPU1uO2JyZWFrO2Nhc2UiSExpbmsiOmZvcihidD1NblswXS5zLnI7YnQ8PU1uWzBdLmUucjsrK2J0KWZvcihjdD1NblswXS5zLmM7Y3Q8PU1uWzBdLmUuYzsrK2N0KShkdD1Q'@; put 'LmRlbnNlPyhyZVtidF18fFtdKVtjdF06cmVbZGkoe2M6Y3QscjpidH0pXSkmJihkdC5sPU1uWzFdKTticmVhaztjYXNlIkhMaW5rVG9vbHRpcCI6Zm9yKGJ0PU1uWzBdLnMucjtidDw9TW5bMF0uZS5yOysrYnQpZm9yKGN0PU1uWzBdLnMuYztjdDw9TW5bMF0uZS5jOysrY3QpKGR0PVAuZGVu'@; put 'c2U/KHJlW2J0XXx8W10pW2N0XTpyZVtkaSh7YzpjdCxyOmJ0fSldKSYmZHQubCYmKGR0LmwuVG9vbHRpcD1NblsxXSk7YnJlYWs7Y2FzZSJOb3RlIjppZihabi5iaWZmPD01JiZabi5iaWZmPj0yKWJyZWFrO2R0PVAuZGVuc2U/KHJlW01uWzBdLnJdfHxbXSlbTW5bMF0uY106cmVbZGkoTW5b'@; put 'MF0pXTt2YXIgbW89TGlbTW5bMl1dO2R0fHwoUC5kZW5zZT8ocmVbTW5bMF0ucl18fChyZVtNblswXS5yXT1bXSksZHQ9cmVbTW5bMF0ucl1bTW5bMF0uY109e3Q6InoifSk6ZHQ9cmVbZGkoTW5bMF0pXT17dDoieiJ9LF9lLmUucj1NYXRoLm1heChfZS5lLnIsTW5bMF0uciksX2Uucy5yPU1h'@; put 'dGgubWluKF9lLnMucixNblswXS5yKSxfZS5lLmM9TWF0aC5tYXgoX2UuZS5jLE1uWzBdLmMpLF9lLnMuYz1NYXRoLm1pbihfZS5zLmMsTW5bMF0uYykpLGR0LmN8fChkdC5jPVtdKSxkdC5jLnB1c2goe2E6TW5bMV0sdDptby5UeE8udH0pO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKGhpLm4pe2Nh'@; put 'c2UiQ2xydENsaWVudCI6Y2FzZSJIZWFkZXIiOmNhc2UiRm9vdGVyIjpjYXNlIkhDZW50ZXIiOmNhc2UiVkNlbnRlciI6Y2FzZSJQbHMiOmNhc2UiR0NXIjpjYXNlIkxIUmVjb3JkIjpjYXNlIkRCQ2VsbCI6Y2FzZSJFbnRFeFUyIjpjYXNlIlN4VmlldyI6Y2FzZSJTeHZkIjpjYXNlIlNYVkki'@; put 'OmNhc2UiU1hWREV4IjpjYXNlIlN4SXZkIjpjYXNlIlNYU3RyaW5nIjpjYXNlIlN5bmMiOmNhc2UiQWRkaW4iOmNhc2UiU1hESSI6Y2FzZSJTWExJIjpjYXNlIlNYRXgiOmNhc2UiUXNpU1hUYWciOmNhc2UiRmVhdCI6Y2FzZSJGZWF0SGRyIjpjYXNlIkZlYXRIZHIxMSI6Y2FzZSJGZWF0dXJl'@; put 'MTEiOmNhc2UiRmVhdHVyZTEyIjpjYXNlIkxpc3QxMiI6Y2FzZSJSZWNhbGNJZCI6Y2FzZSJEeEdDb2wiOmNhc2UiRmJpIjpjYXNlIkZiaTIiOmNhc2UiR2VsRnJhbWUiOmNhc2UiWEZDUkMiOmNhc2UiU3R5bGUiOmNhc2UiU3R5bGVFeHQiOmNhc2UiU2NlbmFyaW9Qcm90ZWN0IjpjYXNlIk9i'@; put 'alByb3RlY3QiOmNhc2UiQ29uZEZtdDEyIjpjYXNlIlRhYmxlIjpjYXNlIlRhYmxlU3R5bGVzIjpjYXNlIlRhYmxlU3R5bGUiOmNhc2UiVGFibGVTdHlsZUVsZW1lbnQiOmNhc2UiU1hTdHJlYW1JRCI6Y2FzZSJTWFZTIjpjYXNlIkRDb25SZWYiOmNhc2UiU1hBZGRsIjpjYXNlIkRDb25CaW4i'@; put 'OmNhc2UiRENvbk5hbWUiOmNhc2UiU1hQSSI6Y2FzZSJTeEZvcm1hdCI6Y2FzZSJTeFNlbGVjdCI6Y2FzZSJTeFJ1bGUiOmNhc2UiU3hGaWx0IjpjYXNlIlN4SXRtIjpjYXNlIlN4RFhGIjpjYXNlIlNjZW5NYW4iOmNhc2UiRENvbiI6Y2FzZSJDZWxsV2F0Y2giOmNhc2UiUHJpbnRSb3dDb2wi'@; put 'OmNhc2UiUHJpbnRHcmlkIjpjYXNlIlByaW50U2l6ZSI6Y2FzZSJYQ1QiOmNhc2UiQ1JOIjpjYXNlIlNjbCI6Y2FzZSJTaGVldEV4dCI6Y2FzZSJTaGVldEV4dE9wdGlvbmFsIjpjYXNlIk9iTm9NYWNyb3MiOmNhc2UiT2JQcm9qIjpjYXNlIkdVSURUeXBlTGliIjpjYXNlIldPcHQiOmNhc2Ui'@; put 'UGhvbmV0aWNJbmZvIjpjYXNlIk9sZU9iamVjdFNpemUiOmNhc2UiRFhGIjpjYXNlIkRYRk4iOmNhc2UiRFhGTjEyIjpjYXNlIkRYRk4xMkxpc3QiOmNhc2UiRFhGTjEyTm9DQiI6Y2FzZSJEdiI6Y2FzZSJEVmFsIjpjYXNlIkJSQUkiOmNhc2UiU2VyaWVzIjpjYXNlIlNlcmllc1RleHQiOmNh'@; put 'c2UiRENvbm4iOmNhc2UiRGJPclBhcmFtUXJ5IjpjYXNlIkRCUXVlcnlFeHQiOmNhc2UiT2xlRGJDb25uIjpjYXNlIkV4dFN0cmluZyI6Y2FzZSJJRm10UmVjb3JkIjpjYXNlIkNvbmRGbXQiOmNhc2UiQ0YiOmNhc2UiQ0YxMiI6Y2FzZSJDRkV4IjpjYXNlIkV4Y2VsOUZpbGUiOmNhc2UiVW5p'@; put 'dHMiOmNhc2UiSW50ZXJmYWNlSGRyIjpjYXNlIk1tcyI6Y2FzZSJJbnRlcmZhY2VFbmQiOmNhc2UiRFNGIjpjYXNlIkJ1aWx0SW5Gbkdyb3VwQ291bnQiOmNhc2UiV2luZG93MSI6Y2FzZSJIaWRlT2JqIjpjYXNlIkdyaWRTZXQiOmNhc2UiR3V0cyI6Y2FzZSJVc2VyQlZpZXciOmNhc2UiVXNl'@; put 'clNWaWV3QmVnaW4iOmNhc2UiVXNlclNWaWV3RW5kIjpjYXNlIkRlZkNvbFdpZHRoIjpjYXNlIkRlZmF1bHRSb3dIZWlnaHQiOmJyZWFrO2Nhc2UiWEZFeHQiOlVEKHBuW01uLml4ZmVdLE1uLmV4dCk7YnJlYWs7Y2FzZSJDb2xJbmZvIjppZighWm4uY2VsbFN0eWxlcylicmVhaztmb3IoO01u'@; put 'LmU+PU1uLnM7KVFyW01uLmUtLV09e3dpZHRoOk1uLncvMjU2LGxldmVsOk1uLmxldmVsfHwwLGhpZGRlbjohISgxJk1uLmZsYWdzKX0scnJ8fChycj0hMCkscHUoUXJbTW4uZSsxXSk7YnJlYWs7Y2FzZSJSb3ciOnZhciBvaT17fTtudWxsIT1Nbi5sZXZlbCYmKHVyW01uLnJdPW9pLG9pLmxl'@; put 'dmVsPU1uLmxldmVsKSxNbi5oaWRkZW4mJih1cltNbi5yXT1vaSxvaS5oaWRkZW49ITApLE1uLmhwdCYmKHVyW01uLnJdPW9pLG9pLmhwdD1Nbi5ocHQsb2kuaHB4PVUxKE1uLmhwdCkpLE1uLml4ZmUmJih1cltNbi5yXT1vaSxlcihUdD17aXhmZTpNbi5peGZlLFhGOnBuW01uLml4ZmVdfHx7'@; put 'fSx2OjAsdDoibiJ9LFApLG9pLnM9VHQucyk7YnJlYWs7Y2FzZSJMZWZ0TWFyZ2luIjpjYXNlIlJpZ2h0TWFyZ2luIjpjYXNlIlRvcE1hcmdpbiI6Y2FzZSJCb3R0b21NYXJnaW4iOnJlWyIhbWFyZ2lucyJdfHxkZihyZVsiIW1hcmdpbnMiXT17fSkscmVbIiFtYXJnaW5zIl1bTXMuc2xpY2Uo'@; put 'MCwtNikudG9Mb3dlckNhc2UoKV09TW47YnJlYWs7Y2FzZSJTZWxlY3Rpb24iOnJlWyIhc2VsIl09TW47YnJlYWs7Y2FzZSJTZXR1cCI6cmVbIiFtYXJnaW5zIl18fGRmKHJlWyIhbWFyZ2lucyJdPXt9KSxyZVsiIW1hcmdpbnMiXS5oZWFkZXI9TW4uaGVhZGVyLHJlWyIhbWFyZ2lucyJdLmZv'@; put 'b3Rlcj1Nbi5mb290ZXI7YnJlYWs7Y2FzZSJXaW5kb3cyIjpNbi5SVEwmJih1bi5WaWV3c1swXS5SVEw9ITApLEJyPU1uO2JyZWFrO2Nhc2UiQ291bnRyeSI6WnQ9TW47YnJlYWs7Y2FzZSJGb250IjpNbi5pY3YmJmtuKE1uLmljdikmJihNbi5jb2xvcj17cmdiOnoxKGtuKE1uLmljdikpfSks'@; put 'ZGVsZXRlIE1uLmljdiwwPT16bi5Gb250cy5sZW5ndGgmJloxKE1uKSx6bi5Gb250cy5wdXNoKE1uKTticmVhaztjYXNlIlBhbGV0dGUiOktuPU1uO2JyZWFrO2Nhc2UiVGhlbWUiOnNpPU1uO2JyZWFrO2Nhc2UiQ29kZU5hbWUiOkhlP3FuLkNvZGVOYW1lPU1ufHxxbi5uYW1lOnVuLldCUHJv'@; put 'cHMuQ29kZU5hbWU9TW58fCJUaGlzV29ya2Jvb2siO2JyZWFrO2Nhc2UiUGFuZSI6KEJyfHx7fSkuZnJvemVuJiYocmVbIiFmcmVlemUiXT1kaSh7cjpNbi55fHwwLGM6TW4ueHx8MH0pKTticmVhaztkZWZhdWx0OnN3aXRjaChoaS5uKXtjYXNlIkRhdCI6Y2FzZSJCZWdpbiI6Y2FzZSJFbmQi'@; put 'OmNhc2UiU3RhcnRCbG9jayI6Y2FzZSJFbmRCbG9jayI6Y2FzZSJGcmFtZSI6Y2FzZSJBcmVhIjpjYXNlIkF4aXMiOmNhc2UiQXhpc0xpbmUiOmNhc2UiVGljayI6Y2FzZSJBeGVzVXNlZCI6Y2FzZSJDcnRMYXlvdXQxMiI6Y2FzZSJDcnRMYXlvdXQxMkEiOmNhc2UiQ3J0TGluayI6Y2FzZSJD'@; put 'cnRMaW5lIjpjYXNlIkNydE1sRnJ0IjpjYXNlIkNydE1sRnJ0Q29udGludWUiOmNhc2UiTGluZUZvcm1hdCI6Y2FzZSJBcmVhRm9ybWF0IjpjYXNlIkNoYXJ0IjpjYXNlIkNoYXJ0M2QiOmNhc2UiQ2hhcnQzREJhclNoYXBlIjpjYXNlIkNoYXJ0Rm9ybWF0IjpjYXNlIkNoYXJ0RnJ0SW5mbyI6'@; put 'Y2FzZSJQbG90QXJlYSI6Y2FzZSJQbG90R3Jvd3RoIjpjYXNlIlNlcmllc0xpc3QiOmNhc2UiU2VyUGFyZW50IjpjYXNlIlNlckF1eFRyZW5kIjpjYXNlIkRhdGFGb3JtYXQiOmNhc2UiU2VyVG9DcnQiOmNhc2UiRm9udFgiOmNhc2UiQ2F0U2VyUmFuZ2UiOmNhc2UiQXhjRXh0IjpjYXNlIlNl'@; put 'ckZtdCI6Y2FzZSJTaHRQcm9wcyI6Y2FzZSJEZWZhdWx0VGV4dCI6Y2FzZSJUZXh0IjpjYXNlIkNhdExhYiI6Y2FzZSJEYXRhTGFiRXh0Q29udGVudHMiOmNhc2UiTGVnZW5kIjpjYXNlIkxlZ2VuZEV4Y2VwdGlvbiI6Y2FzZSJQaWUiOmNhc2UiU2NhdHRlciI6Y2FzZSJQaWVGb3JtYXQiOmNh'@; put 'c2UiTWFya2VyRm9ybWF0IjpjYXNlIlN0YXJ0T2JqZWN0IjpjYXNlIkVuZE9iamVjdCI6Y2FzZSJBbFJ1bnMiOmNhc2UiT2JqZWN0TGluayI6Y2FzZSJTSUluZGV4IjpjYXNlIkF0dGFjaGVkTGFiZWwiOmNhc2UiWU11bHQiOmNhc2UiTGluZSI6Y2FzZSJCYXIiOmNhc2UiU3VyZiI6Y2FzZSJB'@; put 'eGlzUGFyZW50IjpjYXNlIlBvcyI6Y2FzZSJWYWx1ZVJhbmdlIjpjYXNlIlNYVmlld0V4OSI6Y2FzZSJTWFZpZXdMaW5rIjpjYXNlIlBpdm90Q2hhcnRCaXRzIjpjYXNlIlNCYXNlUmVmIjpjYXNlIlRleHRQcm9wc1N0cmVhbSI6Y2FzZSJMbkV4dCI6Y2FzZSJNa3JFeHQiOmNhc2UiQ3J0Q29v'@; put 'cHQiOmNhc2UiUXNpIjpjYXNlIlFzaWYiOmNhc2UiUXNpciI6Y2FzZSJRc2lTWFRhZyI6Y2FzZSJUeHRRcnkiOmNhc2UiRmlsdGVyTW9kZSI6Y2FzZSJBdXRvRmlsdGVyIjpjYXNlIkF1dG9GaWx0ZXJJbmZvIjpjYXNlIkF1dG9GaWx0ZXIxMiI6Y2FzZSJEcm9wRG93bk9iaklkcyI6Y2FzZSJT'@; put 'b3J0IjpjYXNlIlNvcnREYXRhIjpjYXNlIlNoYXBlUHJvcHNTdHJlYW0iOmNhc2UiTXNvRHJhd2luZyI6Y2FzZSJNc29EcmF3aW5nR3JvdXAiOmNhc2UiTXNvRHJhd2luZ1NlbGVjdGlvbiI6Y2FzZSJXZWJQdWIiOmNhc2UiQXV0b1dlYlB1YiI6Y2FzZSJIZWFkZXJGb290ZXIiOmNhc2UiSEZQ'@; put 'aWN0dXJlIjpjYXNlIlBMViI6Y2FzZSJIb3Jpem9udGFsUGFnZUJyZWFrcyI6Y2FzZSJWZXJ0aWNhbFBhZ2VCcmVha3MiOmNhc2UiQmFja3VwIjpjYXNlIkNvbXByZXNzUGljdHVyZXMiOmNhc2UiQ29tcGF0MTIiOmNhc2UiQ29udGludWUiOmNhc2UiQ29udGludWVGcnQxMiI6Y2FzZSJGcnRG'@; put 'b250TGlzdCI6Y2FzZSJGcnRXcmFwcGVyIjpicmVhaztkZWZhdWx0OnN3aXRjaChoaS5uKXtjYXNlIlRhYklkQ29uZiI6Y2FzZSJSYWRhciI6Y2FzZSJSYWRhckFyZWEiOmNhc2UiRHJvcEJhciI6Y2FzZSJJbnRsIjpjYXNlIkNvb3JkTGlzdCI6Y2FzZSJTZXJBdXhFcnJCYXIiOmNhc2UiQklG'@; put 'RjJGT05UQ0xSIjpjYXNlIkJJRkYyRk1UQ05UIjpjYXNlIkJJRkYyRk9OVFhUUkEiOmNhc2UiQklGRjJYRiI6Y2FzZSJCSUZGM1hGIjpjYXNlIkJJRkY0WEYiOmNhc2UiQklGRjJYRklOREVYIjpjYXNlIkJJRkY0Rk1UQ05UIjpjYXNlIkJJRkYyUk9XIjpjYXNlIkJJRkYyV0lORE9XMiI6Y2Fz'@; put 'ZSJTQ0VOQVJJTyI6Y2FzZSJEQ29uQmluIjpjYXNlIlBpY0YiOmNhc2UiRGF0YUxhYkV4dCI6Y2FzZSJMZWwiOmNhc2UiQm9wUG9wIjpjYXNlIkJvcFBvcEN1c3RvbSI6Y2FzZSJSZWFsVGltZURhdGEiOmNhc2UiTmFtZSI6Y2FzZSJMSE5HcmFwaCI6Y2FzZSJGbkdyb3VwTmFtZSI6Y2FzZSJB'@; put 'ZGRNZW51IjpjYXNlIkxQciI6Y2FzZSJMaXN0T2JqIjpjYXNlIkxpc3RGaWVsZCI6Y2FzZSJSUlNvcnQiOmNhc2UiQmlnTmFtZSI6Y2FzZSJUb29sYmFySGRyIjpjYXNlIlRvb2xiYXJFbmQiOmNhc2UiRERFT2JqTmFtZSI6Y2FzZSJGUlRBcmNoSWQkIjpicmVhaztkZWZhdWx0OmlmKFAuV1RG'@; put 'KXRocm93IlVucmVjb2duaXplZCBSZWNvcmQgIitoaS5ufX19fX1lbHNlIHkubCs9eG8sWm4mJlpuLmVuYyYmWm4uZW5jLmluc2l0dSYmWm4uZW5jLmluc2l0dSh1ZSh7bGVuZ3RoOnhvfSkpfXJldHVybiBMLlNoZWV0TmFtZXM9bHQoZ2UpLnNvcnQoZnVuY3Rpb24oemksSnIpe3JldHVybiBO'@; put 'dW1iZXIoemkpLU51bWJlcihKcil9KS5tYXAoZnVuY3Rpb24oemkpe3JldHVybiBnZVt6aV0ubmFtZX0pLFAuYm9va1NoZWV0c3x8KEwuU2hlZXRzPVEpLCFMLlNoZWV0TmFtZXMubGVuZ3RoJiZCZVsiIXJlZiJdPyhMLlNoZWV0TmFtZXMucHVzaCgiU2hlZXQxIiksTC5TaGVldHMmJihMLlNo'@; put 'ZWV0cy5TaGVldDE9QmUpKTpMLlByZWFtYmxlPUJlLEwuU2hlZXRzJiZfby5mb3JFYWNoKGZ1bmN0aW9uKHppLEpyKXtMLlNoZWV0c1tMLlNoZWV0TmFtZXNbSnJdXVsiIWF1dG9maWx0ZXIiXT16aX0pLEwuU3RyaW5ncz1TZSxMLlNTRj13LmdldF90YWJsZSgpLFpuLmVuYyYmKEwuRW5jcnlw'@; put 'dGlvbj1abi5lbmMpLHNpJiYoTC5UaGVtZXM9c2kpLEwuTWV0YWRhdGE9e30sdm9pZCAwIT09WnQmJihMLk1ldGFkYXRhLkNvdW50cnk9WnQpLFNuLm5hbWVzLmxlbmd0aD4wJiYodW4uTmFtZXM9U24ubmFtZXMpLEwuV29ya2Jvb2s9dW4sTH0oUS5jb250ZW50LFApO2Vsc2UgaWYoKGdlPWpl'@; put 'LmZpbmQoeSwiUGVyZmVjdE9mZmljZV9NQUlOIikpJiZnZS5jb250ZW50KXJlPVRtLnRvX3dvcmtib29rKGdlLmNvbnRlbnQsKFAudHlwZT1fZSxQKSk7ZWxzZXtpZighKGdlPWplLmZpbmQoeSwiTmF0aXZlQ29udGVudF9NQUlOIikpfHwhZ2UuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkNh'@; put 'bm5vdCBmaW5kIFdvcmtib29rIHN0cmVhbSIpO3JlPVRtLnRvX3dvcmtib29rKGdlLmNvbnRlbnQsKFAudHlwZT1fZSxQKSl9UC5ib29rVkJBJiZ5LkZ1bGxQYXRocyYmamUuZmluZCh5LCIvX1ZCQV9QUk9KRUNUX0NVUi9WQkEvZGlyIikmJihyZS52YmFyYXc9ZnVuY3Rpb24gWDQoeSl7dmFy'@; put 'IFA9amUudXRpbHMuY2ZiX25ldyh7cm9vdDoiUiJ9KTtyZXR1cm4geS5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihMLFEpe2lmKCIvIiE9PUwuc2xpY2UoLTEpJiZMLm1hdGNoKC9fVkJBX1BST0pFQ1RfQ1VSLykpe3ZhciByZT1MLnJlcGxhY2UoL15bXlwvXSovLCJSIikucmVwbGFjZSgv'@; put 'XC9fVkJBX1BST0pFQ1RfQ1VSXHUwMDAwKi8sIiIpO2plLnV0aWxzLmNmYl9hZGQoUCxyZSx5LkZpbGVJbmRleFtRXS5jb250ZW50KX19KSxqZS53cml0ZShQKX0oeSkpfXZhciB2ZT17fTtyZXR1cm4geS5GdWxsUGF0aHMmJmZ1bmN0aW9uIHlNKHksUCxMKXt2YXIgUT1qZS5maW5kKHksIiFE'@; put 'b2N1bWVudFN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKFEmJlEuc2l6ZT4wKXRyeXt2YXIgcmU9dTkoUSxfNCxycC5EU0kpO2Zvcih2YXIgZ2UgaW4gcmUpUFtnZV09cmVbZ2VdfWNhdGNoKEhlKXtpZihMLldURil0aHJvdyBIZX12YXIgX2U9amUuZmluZCh5LCIhU3VtbWFyeUluZm9ybWF0aW9u'@; put 'Iik7aWYoX2UmJl9lLnNpemU+MCl0cnl7dmFyIHZlPXU5KF9lLHdyLHJwLlNJKTtmb3IodmFyIFNlIGluIHZlKW51bGw9PVBbU2VdJiYoUFtTZV09dmVbU2VdKX1jYXRjaChIZSl7aWYoTC5XVEYpdGhyb3cgSGV9UC5IZWFkaW5nUGFpcnMmJlAuVGl0bGVzT2ZQYXJ0cyYmKHUwKFAuSGVhZGlu'@; put 'Z1BhaXJzLFAuVGl0bGVzT2ZQYXJ0cyxQLEwpLGRlbGV0ZSBQLkhlYWRpbmdQYWlycyxkZWxldGUgUC5UaXRsZXNPZlBhcnRzKX0oeSx2ZSxQKSxyZS5Qcm9wcz1yZS5DdXN0cHJvcHM9dmUsUC5ib29rRmlsZXMmJihyZS5jZmI9eSkscmV9dmFyIG1mPXswOntuOiJCcnRSb3dIZHIiLGY6ZnVu'@; put 'Y3Rpb24gR0koeSxQKXt2YXIgTD17fSxRPXkubCtQO0wucj15LnJlYWRfc2hpZnQoNCkseS5sKz00O3ZhciByZT15LnJlYWRfc2hpZnQoMik7eS5sKz0xO3ZhciBnZT15LnJlYWRfc2hpZnQoMSk7cmV0dXJuIHkubD1RLDcmZ2UmJihMLmxldmVsPTcmZ2UpLDE2JmdlJiYoTC5oaWRkZW49ITAp'@; put 'LDMyJmdlJiYoTC5ocHQ9cmUvMjApLEx9fSwxOntuOiJCcnRDZWxsQmxhbmsiLGY6ZnVuY3Rpb24gRnYoeSl7cmV0dXJuW3V1KHkpXX19LDI6e246IkJydENlbGxSayIsZjpmdW5jdGlvbiBpTCh5KXtyZXR1cm5bdXUoeSksWGMoeSksIm4iXX19LDM6e246IkJydENlbGxFcnJvciIsZjpmdW5j'@; put 'dGlvbiB0WSh5KXtyZXR1cm5bdXUoeSkseS5yZWFkX3NoaWZ0KDEpLCJlIl19fSw0OntuOiJCcnRDZWxsQm9vbCIsZjpmdW5jdGlvbiBQUyh5KXtyZXR1cm5bdXUoeSkseS5yZWFkX3NoaWZ0KDEpLCJiIl19fSw1OntuOiJCcnRDZWxsUmVhbCIsZjpmdW5jdGlvbiBuTCh5KXtyZXR1cm5bdXUo'@; put 'eSksbWEoeSksIm4iXX19LDY6e246IkJydENlbGxTdCIsZjpmdW5jdGlvbiBNNih5KXtyZXR1cm5bdXUoeSksQ2MoeSksInN0ciJdfX0sNzp7bjoiQnJ0Q2VsbElzc3QiLGY6ZnVuY3Rpb24gQlMoeSl7cmV0dXJuW3V1KHkpLHkucmVhZF9zaGlmdCg0KSwicyJdfX0sODp7bjoiQnJ0Rm1sYVN0'@; put 'cmluZyIsZjpmdW5jdGlvbiBhTCh5LFAsTCl7dmFyIFE9eS5sK1AscmU9dXUoeSk7cmUucj1MWyIhcm93Il07dmFyIF9lPVtyZSxDYyh5KSwic3RyIl07aWYoTC5jZWxsRm9ybXVsYSl7eS5sKz0yO3ZhciB2ZT1oNih5LFEteS5sLEwpO19lWzNdPXhsKHZlLG51bGwscmUsTC5zdXBib29rcyxM'@; put 'KX1lbHNlIHkubD1RO3JldHVybiBfZX19LDk6e246IkJydEZtbGFOdW0iLGY6ZnVuY3Rpb24gWlMoeSxQLEwpe3ZhciBRPXkubCtQLHJlPXV1KHkpO3JlLnI9TFsiIXJvdyJdO3ZhciBfZT1bcmUsbWEoeSksIm4iXTtpZihMLmNlbGxGb3JtdWxhKXt5LmwrPTI7dmFyIHZlPWg2KHksUS15Lmws'@; put 'TCk7X2VbM109eGwodmUsbnVsbCxyZSxMLnN1cGJvb2tzLEwpfWVsc2UgeS5sPVE7cmV0dXJuIF9lfX0sMTA6e246IkJydEZtbGFCb29sIixmOmZ1bmN0aW9uIHNMKHksUCxMKXt2YXIgUT15LmwrUCxyZT11dSh5KTtyZS5yPUxbIiFyb3ciXTt2YXIgX2U9W3JlLHkucmVhZF9zaGlmdCgxKSwi'@; put 'YiJdO2lmKEwuY2VsbEZvcm11bGEpe3kubCs9Mjt2YXIgdmU9aDYoeSxRLXkubCxMKTtfZVszXT14bCh2ZSxudWxsLHJlLEwuc3VwYm9va3MsTCl9ZWxzZSB5Lmw9UTtyZXR1cm4gX2V9fSwxMTp7bjoiQnJ0Rm1sYUVycm9yIixmOmZ1bmN0aW9uIFVTKHksUCxMKXt2YXIgUT15LmwrUCxyZT11'@; put 'dSh5KTtyZS5yPUxbIiFyb3ciXTt2YXIgX2U9W3JlLHkucmVhZF9zaGlmdCgxKSwiZSJdO2lmKEwuY2VsbEZvcm11bGEpe3kubCs9Mjt2YXIgdmU9aDYoeSxRLXkubCxMKTtfZVszXT14bCh2ZSxudWxsLHJlLEwuc3VwYm9va3MsTCl9ZWxzZSB5Lmw9UTtyZXR1cm4gX2V9fSwxMjp7bjoiQnJ0'@; put 'U2hvcnRCbGFuayIsZjpmdW5jdGlvbiBPUyh5KXtyZXR1cm5bYTAoeSldfX0sMTM6e246IkJydFNob3J0UmsiLGY6ZnVuY3Rpb24gelMoeSl7cmV0dXJuW2EwKHkpLFhjKHkpLCJuIl19fSwxNDp7bjoiQnJ0U2hvcnRFcnJvciIsZjpmdW5jdGlvbiBOUyh5KXtyZXR1cm5bYTAoeSkseS5yZWFk'@; put 'X3NoaWZ0KDEpLCJlIl19fSwxNTp7bjoiQnJ0U2hvcnRCb29sIixmOmZ1bmN0aW9uIFM2KHkpe3JldHVyblthMCh5KSx5LnJlYWRfc2hpZnQoMSksImIiXX19LDE2OntuOiJCcnRTaG9ydFJlYWwiLGY6alN9LDE3OntuOiJCcnRTaG9ydFN0IixmOmZ1bmN0aW9uIHg2KHkpe3JldHVyblthMCh5'@; put 'KSxDYyh5KSwic3RyIl19fSwxODp7bjoiQnJ0U2hvcnRJc3N0IixmOmZ1bmN0aW9uIEdkKHkpe3JldHVyblthMCh5KSx5LnJlYWRfc2hpZnQoNCksInMiXX19LDE5OntuOiJCcnRTU1RJdGVtIixmOmNhfSwyMDp7bjoiQnJ0UENESU1pc3NpbmcifSwyMTp7bjoiQnJ0UENESU51bWJlciJ9LDIy'@; put 'OntuOiJCcnRQQ0RJQm9vbGVhbiJ9LDIzOntuOiJCcnRQQ0RJRXJyb3IifSwyNDp7bjoiQnJ0UENESVN0cmluZyJ9LDI1OntuOiJCcnRQQ0RJRGF0ZXRpbWUifSwyNjp7bjoiQnJ0UENESUluZGV4In0sMjc6e246IkJydFBDRElBTWlzc2luZyJ9LDI4OntuOiJCcnRQQ0RJQU51bWJlciJ9LDI5'@; put 'OntuOiJCcnRQQ0RJQUJvb2xlYW4ifSwzMDp7bjoiQnJ0UENESUFFcnJvciJ9LDMxOntuOiJCcnRQQ0RJQVN0cmluZyJ9LDMyOntuOiJCcnRQQ0RJQURhdGV0aW1lIn0sMzM6e246IkJydFBDUlJlY29yZCJ9LDM0OntuOiJCcnRQQ1JSZWNvcmREdCJ9LDM1OntuOiJCcnRGUlRCZWdpbiJ9LDM2'@; put 'OntuOiJCcnRGUlRFbmQifSwzNzp7bjoiQnJ0QUNCZWdpbiJ9LDM4OntuOiJCcnRBQ0VuZCJ9LDM5OntuOiJCcnROYW1lIixmOmZ1bmN0aW9uIHA1KHksUCxMKXt2YXIgUT15LmwrUDt5LmwrPTQseS5sKz0xO3ZhciByZT15LnJlYWRfc2hpZnQoNCksZ2U9ZHUoeSksX2U9c1MoeSwwLEwpLHZl'@; put 'PUF1KHkpO3kubD1RO3ZhciBTZT17TmFtZTpnZSxQdGc6X2V9O3JldHVybiByZTwyNjg0MzU0NTUmJihTZS5TaGVldD1yZSksdmUmJihTZS5Db21tZW50PXZlKSxTZX19LDQwOntuOiJCcnRJbmRleFJvd0Jsb2NrIn0sNDI6e246IkJydEluZGV4QmxvY2sifSw0Mzp7bjoiQnJ0Rm9udCIsZjpm'@; put 'dW5jdGlvbiBtQyh5LFAsTCl7dmFyIFE9e307US5zej15LnJlYWRfc2hpZnQoMikvMjA7dmFyIHJlPWY0KHkpO3N3aXRjaChyZS5mQm9sZCYmKFEuYm9sZD0xKSxyZS5mSXRhbGljJiYoUS5pdGFsaWM9MSkscmUuZlVuZGVybGluZSYmKFEudW5kZXJsaW5lPTEpLHJlLmZDb25kZW5zZSYmKFEu'@; put 'Y29uZGVuc2U9MSkscmUuZkV4dGVuZCYmKFEuZXh0ZW5kPTEpLHJlLmZTaGFkb3cmJihRLnNoYWRvdz0xKSxyZS5mT3V0bGluZSYmKFEub3V0bGluZT0xKSxyZS5mU3RyaWtlb3V0JiYoUS5zdHJpa2U9MSksNzAwPT09eS5yZWFkX3NoaWZ0KDIpJiYoUS5ib2xkPTEpLHkucmVhZF9zaGlmdCgy'@; put 'KSl7Y2FzZSAxOlEudmFsaWduPSJzdXBlciI7YnJlYWs7Y2FzZSAyOlEudmFsaWduPSJzdWIifXZhciBfZT15LnJlYWRfc2hpZnQoMSk7MCE9X2UmJihRLnVuZGVybGluZT1fZSk7dmFyIHZlPXkucmVhZF9zaGlmdCgxKTt2ZT4wJiYoUS5mYW1pbHk9dmUpO3ZhciBTZT15LnJlYWRfc2hpZnQo'@; put 'MSk7c3dpdGNoKFNlPjAmJihRLmNoYXJzZXQ9U2UpLHkubCsrLFEuY29sb3I9RGQoeSkseS5yZWFkX3NoaWZ0KDEpKXtjYXNlIDE6US5zY2hlbWU9Im1ham9yIjticmVhaztjYXNlIDI6US5zY2hlbWU9Im1pbm9yIn1yZXR1cm4gUS5uYW1lPUNjKHkpLFF9fSw0NDp7bjoiQnJ0Rm10IixmOmZ1'@; put 'bmN0aW9uIGdDKHksUCl7cmV0dXJuW3kucmVhZF9zaGlmdCgyKSxDYyh5KV19fSw0NTp7bjoiQnJ0RmlsbCIsZjpmdW5jdGlvbiBrRCh5LFApe3ZhciBMPXkubCtQLFE9e30scmU9eS5yZWFkX3NoaWZ0KDQpO2lmKDQwIT1yZSl7US5wYXR0ZXJuVHlwZT1WNFtyZV07dmFyIGdlPURkKHkpOzY0'@; put 'IT1nZS5pbmRleCYmKFEuZmdDb2xvcj1nZSk7dmFyIF9lPURkKHkpOzY1IT1fZS5pbmRleCYmKFEuYmdDb2xvcj1fZSl9ZWxzZXt5LmwrPTE2LHkucmVhZF9zaGlmdCg0KSxtYSh5KSxtYSh5KSxtYSh5KSxtYSh5KSxtYSh5KTtmb3IodmFyIHZlPXkucmVhZF9zaGlmdCg0KSxTZT1bXSxIZT0w'@; put 'O0hlPHZlOysrSGUpU2UucHVzaChZbSh5KSl9cmV0dXJuIHkubD1MLFF9fSw0Njp7bjoiQnJ0Qm9yZGVyIixmOmZ1bmN0aW9uIFREKHkpe3ZhciBQPXt9O3kucmVhZF9zaGlmdCgxKTt2YXIgTD1qNCh5KTsibm9uZSIhPUwuc3R5bGUmJihQLnRvcD1MKTt2YXIgUT1qNCh5KTsibm9uZSIhPVEu'@; put 'c3R5bGUmJihQLmJvdHRvbT1RKTt2YXIgcmU9ajQoeSk7Im5vbmUiIT1yZS5zdHlsZSYmKFAubGVmdD1yZSk7dmFyIGdlPWo0KHkpOyJub25lIiE9Z2Uuc3R5bGUmJihQLnJpZ2h0PWdlKTt2YXIgX2U9ajQoeSk7cmV0dXJuIm5vbmUiIT1fZS5zdHlsZSYmKFAuZGlhZz1fZSksUH19LDQ3Ontu'@; put 'OiJCcnRYRiIsZjpmdW5jdGlvbiBIOSh5LFApe3ZhciBMPXkubCtQLFE9e30scmU9eS5yZWFkX3NoaWZ0KDIpLGdlPXkucmVhZF9zaGlmdCgyKSxfZT15LnJlYWRfc2hpZnQoMiksdmU9eS5yZWFkX3NoaWZ0KDIpLFNlPXkucmVhZF9zaGlmdCgyKSxIZT15LnJlYWRfc2hpZnQoMSk7eS5yZWFk'@; put 'X3NoaWZ0KDEpO3ZhciBCZT15LnJlYWRfc2hpZnQoMiksR2U9eS5yZWFkX3NoaWZ0KDEpO3kubD1MLFEueGZJZD1yZSxRLm51bUZtdElkPWdlLFEuZm9udElkPV9lLFEuZmlsbElkPXZlLFEuYm9yZGVySWQ9U2UsMSZHZSYmMCE9US5udW1GbXRJZCYmKFEuYXBwbHlOdW1iZXJGb3JtYXQ9ITAp'@; put 'LFEuYWxpZ25tZW50PXt9LEhlPjAmJihRLmFsaWdubWVudC50ZXh0Um90YXRpb249SGUpO3ZhciBudD0hMTtyZXR1cm4gNyZCZSYmKG50PSEwLFEuYWxpZ25tZW50Lmhvcml6b250YWw9V21bNyZCZV0pLFEuYWxpZ25tZW50LnZlcnRpY2FsPUI0W0JlPj4+MyY3XSxRLmFsaWdubWVudC52ZXJ0'@; put 'aWNhbCYmKG50PSEwKSxCZT4+PjYmMSYmKFEuYWxpZ25tZW50LndyYXBUZXh0PSEwKSxCZT4+PjgmMSYmKFEuYWxpZ25tZW50LnNocmlua1RvRml0PSEwKSxudHx8ZGVsZXRlIFEuYWxpZ25tZW50LDQmR2UmJm50JiYoUS5hcHBseUFsaWdubWVudD0hMCksUX19LDQ4OntuOiJCcnRTdHlsZSJ9'@; put 'LDQ5OntuOiJCcnRDZWxsTWV0YSJ9LDUwOntuOiJCcnRWYWx1ZU1ldGEifSw1MTp7bjoiQnJ0TWRiIn0sNTI6e246IkJydEJlZ2luRm1kIn0sNTM6e246IkJydEVuZEZtZCJ9LDU0OntuOiJCcnRCZWdpbk1keCJ9LDU1OntuOiJCcnRFbmRNZHgifSw1Njp7bjoiQnJ0QmVnaW5NZHhUdXBsZSJ9'@; put 'LDU3OntuOiJCcnRFbmRNZHhUdXBsZSJ9LDU4OntuOiJCcnRNZHhNYnJJc3RyIn0sNTk6e246IkJydFN0ciJ9LDYwOntuOiJCcnRDb2xJbmZvIixmOlZkfSw2Mjp7bjoiQnJ0Q2VsbFJTdHJpbmcifSw2Mzp7bjoiQnJ0Q2FsY0NoYWluSXRlbSQiLGY6ZnVuY3Rpb24gVzQoeSl7dmFyIFA9e307'@; put 'UC5pPXkucmVhZF9zaGlmdCg0KTt2YXIgTD17fTtMLnI9eS5yZWFkX3NoaWZ0KDQpLEwuYz15LnJlYWRfc2hpZnQoNCksUC5yPWRpKEwpO3ZhciBRPXkucmVhZF9zaGlmdCgxKTtyZXR1cm4gMiZRJiYoUC5sPSIxIiksOCZRJiYoUC5hPSIxIiksUH19LDY0OntuOiJCcnREVmFsIixmOmZ1bmN0'@; put 'aW9uIEU2KHksUCxMKXt2YXIgUT15LmwrUCxyZT15LnJlYWRfc2hpZnQoNCksZ2U9bDAoeSksX2U9QXUoeSksdmU9QXUoeSksU2U9QXUoeSksSGU9QXUoeSksQmU9aVMoeSxQLEwpLEdlPXkubDxRP2lTKHksUCxMKTpudWxsLG50PTE1JnJlLGR0PXt0OmVvW250XSxzcXJmeDpnZSxzOltfZSx2'@; put 'ZSxTZSxIZV19O3JldHVybiBCZSYmKGR0LmYxPUJlKSxHZSYmKGR0LmYyPUdlKSwwPT1udHx8Mz09bnR8fDc9PW50fHwoZHQub3A9QnZbcmU+PjIwJjE1XSksZHR9fSw2NTp7bjoiQnJ0U3h2Y2VsbE51bSJ9LDY2OntuOiJCcnRTeHZjZWxsU3RyIn0sNjc6e246IkJydFN4dmNlbGxCb29sIn0s'@; put 'Njg6e246IkJydFN4dmNlbGxFcnIifSw2OTp7bjoiQnJ0U3h2Y2VsbERhdGUifSw3MDp7bjoiQnJ0U3h2Y2VsbE5pbCJ9LDEyODp7bjoiQnJ0RmlsZVZlcnNpb24ifSwxMjk6e246IkJydEJlZ2luU2hlZXQifSwxMzA6e246IkJydEVuZFNoZWV0In0sMTMxOntuOiJCcnRCZWdpbkJvb2siLGY6'@; put 'eWMscDowfSwxMzI6e246IkJydEVuZEJvb2sifSwxMzM6e246IkJydEJlZ2luV3NWaWV3cyJ9LDEzNDp7bjoiQnJ0RW5kV3NWaWV3cyJ9LDEzNTp7bjoiQnJ0QmVnaW5Cb29rVmlld3MifSwxMzY6e246IkJydEVuZEJvb2tWaWV3cyJ9LDEzNzp7bjoiQnJ0QmVnaW5Xc1ZpZXciLGY6ZnVuY3Rp'@; put 'b24gZ0woeSl7dmFyIFA9eS5yZWFkX3NoaWZ0KDIpO3JldHVybiB5LmwrPTI4LHtSVEw6MzImUCxncmlkOiEhKDQmUCl9fX0sMTM4OntuOiJCcnRFbmRXc1ZpZXcifSwxMzk6e246IkJydEJlZ2luQ3NWaWV3cyJ9LDE0MDp7bjoiQnJ0RW5kQ3NWaWV3cyJ9LDE0MTp7bjoiQnJ0QmVnaW5Dc1Zp'@; put 'ZXcifSwxNDI6e246IkJydEVuZENzVmlldyJ9LDE0Mzp7bjoiQnJ0QmVnaW5CdW5kbGVTaHMifSwxNDQ6e246IkJydEVuZEJ1bmRsZVNocyJ9LDE0NTp7bjoiQnJ0QmVnaW5TaGVldERhdGEifSwxNDY6e246IkJydEVuZFNoZWV0RGF0YSJ9LDE0Nzp7bjoiQnJ0V3NQcm9wIixmOmZ1bmN0aW9u'@; put 'IEpJKHksUCl7dmFyIEw9e30sUT15W3kubF07cmV0dXJuKyt5LmwsTC5hYm92ZT0hKDY0JlEpLEwubGVmdD0hKDEyOCZRKSx5LmwrPTE4LEwubmFtZT16aCh5LFAtMTkpLEx9fSwxNDg6e246IkJydFdzRGltIixmOnFJLHA6MTZ9LDE1MTp7bjoiQnJ0UGFuZSIsZjpmdW5jdGlvbiBHUyh5LFAp'@; put 'e3ZhciBMPXkubCtQO21hKHkpLG1hKHkpO3ZhciBRPXkucmVhZF9zaGlmdCg0LCJpIikscmU9eS5yZWFkX3NoaWZ0KDQsImkiKTtpZih5LnJlYWRfc2hpZnQoNCkseS5yZWFkX3NoaWZ0KDEpLEwhPXkubCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBCcnRQYW5lOiAiK0wrIiAhPSAiK3kubCk7cmV0'@; put 'dXJuW2RpKHtyOlEsYzpyZX0pXX19LDE1Mjp7bjoiQnJ0U2VsIixmOmZ1bmN0aW9uIHVMKHksUCl7cmV0dXJuIHkucmVhZF9zaGlmdCg0KSx7Y2VsbDpkaSh7cjp5LnJlYWRfc2hpZnQoNCksYzp5LnJlYWRfc2hpZnQoNCl9KX19fSwxNTM6e246IkJydFdiUHJvcCIsZjpmdW5jdGlvbiBQTCh5'@; put 'LFApe3ZhciBMPXt9LFE9eS5yZWFkX3NoaWZ0KDQpO0wuZGVmYXVsdFRoZW1lVmVyc2lvbj15LnJlYWRfc2hpZnQoNCk7dmFyIHJlPVA+OD9DYyh5KToiIjtyZXR1cm4gcmUubGVuZ3RoPjAmJihMLkNvZGVOYW1lPXJlKSxMLmF1dG9Db21wcmVzc1BpY3R1cmVzPSEhKDY1NTM2JlEpLEwuYmFj'@; put 'a3VwRmlsZT0hISg2NCZRKSxMLmNoZWNrQ29tcGF0aWJpbGl0eT0hISg0MDk2JlEpLEwuZGF0ZTE5MDQ9ISEoMSZRKSxMLmZpbHRlclByaXZhY3k9ISEoOCZRKSxMLmhpZGVQaXZvdEZpZWxkTGlzdD0hISgxMDI0JlEpLEwucHJvbXB0ZWRTb2x1dGlvbnM9ISEoMTYmUSksTC5wdWJsaXNoSXRl'@; put 'bXM9ISEoMjA0OCZRKSxMLnJlZnJlc2hBbGxDb25uZWN0aW9ucz0hISgyNjIxNDQmUSksTC5zYXZlRXh0ZXJuYWxMaW5rVmFsdWVzPSEhKDEyOCZRKSxMLnNob3dCb3JkZXJVbnNlbGVjdGVkVGFibGVzPSEhKDQmUSksTC5zaG93SW5rQW5ub3RhdGlvbj0hISgzMiZRKSxMLnNob3dPYmplY3Rz'@; put 'PVsiYWxsIiwicGxhY2Vob2xkZXJzIiwibm9uZSJdW1E+PjEzJjNdLEwuc2hvd1Bpdm90Q2hhcnRGaWx0ZXI9ISEoMzI3NjgmUSksTC51cGRhdGVMaW5rcz1bInVzZXJTZXQiLCJuZXZlciIsImFsd2F5cyJdW1E+PjgmM10sTH19LDE1NDp7bjoiQnJ0V2JGYWN0b2lkIn0sMTU1OntuOiJCcnRG'@; put 'aWxlUmVjb3ZlciJ9LDE1Njp7bjoiQnJ0QnVuZGxlU2giLGY6ZnVuY3Rpb24gY1koeSxQKXt2YXIgTD17fTtyZXR1cm4gTC5IaWRkZW49eS5yZWFkX3NoaWZ0KDQpLEwuaVRhYklEPXkucmVhZF9zaGlmdCg0KSxMLnN0clJlbElEPVQxKHksUC04KSxMLm5hbWU9Q2MoeSksTH19LDE1Nzp7bjoi'@; put 'QnJ0Q2FsY1Byb3AifSwxNTg6e246IkJydEJvb2tWaWV3In0sMTU5OntuOiJCcnRCZWdpblNzdCIsZjpmdW5jdGlvbiBRaCh5KXtyZXR1cm5beS5yZWFkX3NoaWZ0KDQpLHkucmVhZF9zaGlmdCg0KV19fSwxNjA6e246IkJydEVuZFNzdCJ9LDE2MTp7bjoiQnJ0QmVnaW5BRmlsdGVyIixmOkpj'@; put 'fSwxNjI6e246IkJydEVuZEFGaWx0ZXIifSwxNjM6e246IkJydEJlZ2luRmlsdGVyQ29sdW1uIn0sMTY0OntuOiJCcnRFbmRGaWx0ZXJDb2x1bW4ifSwxNjU6e246IkJydEJlZ2luRmlsdGVycyJ9LDE2Njp7bjoiQnJ0RW5kRmlsdGVycyJ9LDE2Nzp7bjoiQnJ0RmlsdGVyIn0sMTY4OntuOiJC'@; put 'cnRDb2xvckZpbHRlciJ9LDE2OTp7bjoiQnJ0SWNvbkZpbHRlciJ9LDE3MDp7bjoiQnJ0VG9wMTBGaWx0ZXIifSwxNzE6e246IkJydER5bmFtaWNGaWx0ZXIifSwxNzI6e246IkJydEJlZ2luQ3VzdG9tRmlsdGVycyJ9LDE3Mzp7bjoiQnJ0RW5kQ3VzdG9tRmlsdGVycyJ9LDE3NDp7bjoiQnJ0'@; put 'Q3VzdG9tRmlsdGVyIn0sMTc1OntuOiJCcnRBRmlsdGVyRGF0ZUdyb3VwSXRlbSJ9LDE3Njp7bjoiQnJ0TWVyZ2VDZWxsIixmOmxMfSwxNzc6e246IkJydEJlZ2luTWVyZ2VDZWxscyJ9LDE3ODp7bjoiQnJ0RW5kTWVyZ2VDZWxscyJ9LDE3OTp7bjoiQnJ0QmVnaW5QaXZvdENhY2hlRGVmIn0s'@; put 'MTgwOntuOiJCcnRFbmRQaXZvdENhY2hlRGVmIn0sMTgxOntuOiJCcnRCZWdpblBDREZpZWxkcyJ9LDE4Mjp7bjoiQnJ0RW5kUENERmllbGRzIn0sMTgzOntuOiJCcnRCZWdpblBDREZpZWxkIn0sMTg0OntuOiJCcnRFbmRQQ0RGaWVsZCJ9LDE4NTp7bjoiQnJ0QmVnaW5QQ0RTb3VyY2UifSwx'@; put 'ODY6e246IkJydEVuZFBDRFNvdXJjZSJ9LDE4Nzp7bjoiQnJ0QmVnaW5QQ0RTUmFuZ2UifSwxODg6e246IkJydEVuZFBDRFNSYW5nZSJ9LDE4OTp7bjoiQnJ0QmVnaW5QQ0RGQXRibCJ9LDE5MDp7bjoiQnJ0RW5kUENERkF0YmwifSwxOTE6e246IkJydEJlZ2luUENESVJ1biJ9LDE5Mjp7bjoi'@; put 'QnJ0RW5kUENESVJ1biJ9LDE5Mzp7bjoiQnJ0QmVnaW5QaXZvdENhY2hlUmVjb3JkcyJ9LDE5NDp7bjoiQnJ0RW5kUGl2b3RDYWNoZVJlY29yZHMifSwxOTU6e246IkJydEJlZ2luUENESGllcmFyY2hpZXMifSwxOTY6e246IkJydEVuZFBDREhpZXJhcmNoaWVzIn0sMTk3OntuOiJCcnRCZWdp'@; put 'blBDREhpZXJhcmNoeSJ9LDE5ODp7bjoiQnJ0RW5kUENESGllcmFyY2h5In0sMTk5OntuOiJCcnRCZWdpblBDREhGaWVsZHNVc2FnZSJ9LDIwMDp7bjoiQnJ0RW5kUENESEZpZWxkc1VzYWdlIn0sMjAxOntuOiJCcnRCZWdpbkV4dENvbm5lY3Rpb24ifSwyMDI6e246IkJydEVuZEV4dENvbm5l'@; put 'Y3Rpb24ifSwyMDM6e246IkJydEJlZ2luRUNEYlByb3BzIn0sMjA0OntuOiJCcnRFbmRFQ0RiUHJvcHMifSwyMDU6e246IkJydEJlZ2luRUNPbGFwUHJvcHMifSwyMDY6e246IkJydEVuZEVDT2xhcFByb3BzIn0sMjA3OntuOiJCcnRCZWdpblBDRFNDb25zb2wifSwyMDg6e246IkJydEVuZFBD'@; put 'RFNDb25zb2wifSwyMDk6e246IkJydEJlZ2luUENEU0NQYWdlcyJ9LDIxMDp7bjoiQnJ0RW5kUENEU0NQYWdlcyJ9LDIxMTp7bjoiQnJ0QmVnaW5QQ0RTQ1BhZ2UifSwyMTI6e246IkJydEVuZFBDRFNDUGFnZSJ9LDIxMzp7bjoiQnJ0QmVnaW5QQ0RTQ1BJdGVtIn0sMjE0OntuOiJCcnRFbmRQ'@; put 'Q0RTQ1BJdGVtIn0sMjE1OntuOiJCcnRCZWdpblBDRFNDU2V0cyJ9LDIxNjp7bjoiQnJ0RW5kUENEU0NTZXRzIn0sMjE3OntuOiJCcnRCZWdpblBDRFNDU2V0In0sMjE4OntuOiJCcnRFbmRQQ0RTQ1NldCJ9LDIxOTp7bjoiQnJ0QmVnaW5QQ0RGR3JvdXAifSwyMjA6e246IkJydEVuZFBDREZH'@; put 'cm91cCJ9LDIyMTp7bjoiQnJ0QmVnaW5QQ0RGR0l0ZW1zIn0sMjIyOntuOiJCcnRFbmRQQ0RGR0l0ZW1zIn0sMjIzOntuOiJCcnRCZWdpblBDREZHUmFuZ2UifSwyMjQ6e246IkJydEVuZFBDREZHUmFuZ2UifSwyMjU6e246IkJydEJlZ2luUENERkdEaXNjcmV0ZSJ9LDIyNjp7bjoiQnJ0RW5k'@; put 'UENERkdEaXNjcmV0ZSJ9LDIyNzp7bjoiQnJ0QmVnaW5QQ0RTRFR1cGxlQ2FjaGUifSwyMjg6e246IkJydEVuZFBDRFNEVHVwbGVDYWNoZSJ9LDIyOTp7bjoiQnJ0QmVnaW5QQ0RTRFRDRW50cmllcyJ9LDIzMDp7bjoiQnJ0RW5kUENEU0RUQ0VudHJpZXMifSwyMzE6e246IkJydEJlZ2luUENE'@; put 'U0RUQ0VNZW1iZXJzIn0sMjMyOntuOiJCcnRFbmRQQ0RTRFRDRU1lbWJlcnMifSwyMzM6e246IkJydEJlZ2luUENEU0RUQ0VNZW1iZXIifSwyMzQ6e246IkJydEVuZFBDRFNEVENFTWVtYmVyIn0sMjM1OntuOiJCcnRCZWdpblBDRFNEVENRdWVyaWVzIn0sMjM2OntuOiJCcnRFbmRQQ0RTRFRD'@; put 'UXVlcmllcyJ9LDIzNzp7bjoiQnJ0QmVnaW5QQ0RTRFRDUXVlcnkifSwyMzg6e246IkJydEVuZFBDRFNEVENRdWVyeSJ9LDIzOTp7bjoiQnJ0QmVnaW5QQ0RTRFRDU2V0cyJ9LDI0MDp7bjoiQnJ0RW5kUENEU0RUQ1NldHMifSwyNDE6e246IkJydEJlZ2luUENEU0RUQ1NldCJ9LDI0Mjp7bjoi'@; put 'QnJ0RW5kUENEU0RUQ1NldCJ9LDI0Mzp7bjoiQnJ0QmVnaW5QQ0RDYWxjSXRlbXMifSwyNDQ6e246IkJydEVuZFBDRENhbGNJdGVtcyJ9LDI0NTp7bjoiQnJ0QmVnaW5QQ0RDYWxjSXRlbSJ9LDI0Njp7bjoiQnJ0RW5kUENEQ2FsY0l0ZW0ifSwyNDc6e246IkJydEJlZ2luUFJ1bGUifSwyNDg6'@; put 'e246IkJydEVuZFBSdWxlIn0sMjQ5OntuOiJCcnRCZWdpblBSRmlsdGVycyJ9LDI1MDp7bjoiQnJ0RW5kUFJGaWx0ZXJzIn0sMjUxOntuOiJCcnRCZWdpblBSRmlsdGVyIn0sMjUyOntuOiJCcnRFbmRQUkZpbHRlciJ9LDI1Mzp7bjoiQnJ0QmVnaW5QTmFtZXMifSwyNTQ6e246IkJydEVuZFBO'@; put 'YW1lcyJ9LDI1NTp7bjoiQnJ0QmVnaW5QTmFtZSJ9LDI1Njp7bjoiQnJ0RW5kUE5hbWUifSwyNTc6e246IkJydEJlZ2luUE5QYWlycyJ9LDI1ODp7bjoiQnJ0RW5kUE5QYWlycyJ9LDI1OTp7bjoiQnJ0QmVnaW5QTlBhaXIifSwyNjA6e246IkJydEVuZFBOUGFpciJ9LDI2MTp7bjoiQnJ0QmVn'@; put 'aW5FQ1dlYlByb3BzIn0sMjYyOntuOiJCcnRFbmRFQ1dlYlByb3BzIn0sMjYzOntuOiJCcnRCZWdpbkVjV3BUYWJsZXMifSwyNjQ6e246IkJydEVuZEVDV1BUYWJsZXMifSwyNjU6e246IkJydEJlZ2luRUNQYXJhbXMifSwyNjY6e246IkJydEVuZEVDUGFyYW1zIn0sMjY3OntuOiJCcnRCZWdp'@; put 'bkVDUGFyYW0ifSwyNjg6e246IkJydEVuZEVDUGFyYW0ifSwyNjk6e246IkJydEJlZ2luUENES1BJcyJ9LDI3MDp7bjoiQnJ0RW5kUENES1BJcyJ9LDI3MTp7bjoiQnJ0QmVnaW5QQ0RLUEkifSwyNzI6e246IkJydEVuZFBDREtQSSJ9LDI3Mzp7bjoiQnJ0QmVnaW5EaW1zIn0sMjc0OntuOiJC'@; put 'cnRFbmREaW1zIn0sMjc1OntuOiJCcnRCZWdpbkRpbSJ9LDI3Njp7bjoiQnJ0RW5kRGltIn0sMjc3OntuOiJCcnRJbmRleFBhcnRFbmQifSwyNzg6e246IkJydEJlZ2luU3R5bGVTaGVldCJ9LDI3OTp7bjoiQnJ0RW5kU3R5bGVTaGVldCJ9LDI4MDp7bjoiQnJ0QmVnaW5TWFZpZXcifSwyODE6'@; put 'e246IkJydEVuZFNYVkkifSwyODI6e246IkJydEJlZ2luU1hWSSJ9LDI4Mzp7bjoiQnJ0QmVnaW5TWFZJcyJ9LDI4NDp7bjoiQnJ0RW5kU1hWSXMifSwyODU6e246IkJydEJlZ2luU1hWRCJ9LDI4Njp7bjoiQnJ0RW5kU1hWRCJ9LDI4Nzp7bjoiQnJ0QmVnaW5TWFZEcyJ9LDI4ODp7bjoiQnJ0'@; put 'RW5kU1hWRHMifSwyODk6e246IkJydEJlZ2luU1hQSSJ9LDI5MDp7bjoiQnJ0RW5kU1hQSSJ9LDI5MTp7bjoiQnJ0QmVnaW5TWFBJcyJ9LDI5Mjp7bjoiQnJ0RW5kU1hQSXMifSwyOTM6e246IkJydEJlZ2luU1hESSJ9LDI5NDp7bjoiQnJ0RW5kU1hESSJ9LDI5NTp7bjoiQnJ0QmVnaW5TWERJ'@; put 'cyJ9LDI5Njp7bjoiQnJ0RW5kU1hESXMifSwyOTc6e246IkJydEJlZ2luU1hMSSJ9LDI5ODp7bjoiQnJ0RW5kU1hMSSJ9LDI5OTp7bjoiQnJ0QmVnaW5TWExJUndzIn0sMzAwOntuOiJCcnRFbmRTWExJUndzIn0sMzAxOntuOiJCcnRCZWdpblNYTElDb2xzIn0sMzAyOntuOiJCcnRFbmRTWExJ'@; put 'Q29scyJ9LDMwMzp7bjoiQnJ0QmVnaW5TWEZvcm1hdCJ9LDMwNDp7bjoiQnJ0RW5kU1hGb3JtYXQifSwzMDU6e246IkJydEJlZ2luU1hGb3JtYXRzIn0sMzA2OntuOiJCcnRFbmRTeEZvcm1hdHMifSwzMDc6e246IkJydEJlZ2luU3hTZWxlY3QifSwzMDg6e246IkJydEVuZFN4U2VsZWN0In0s'@; put 'MzA5OntuOiJCcnRCZWdpbklTWFZEUndzIn0sMzEwOntuOiJCcnRFbmRJU1hWRFJ3cyJ9LDMxMTp7bjoiQnJ0QmVnaW5JU1hWRENvbHMifSwzMTI6e246IkJydEVuZElTWFZEQ29scyJ9LDMxMzp7bjoiQnJ0RW5kU1hMb2NhdGlvbiJ9LDMxNDp7bjoiQnJ0QmVnaW5TWExvY2F0aW9uIn0sMzE1'@; put 'OntuOiJCcnRFbmRTWFZpZXcifSwzMTY6e246IkJydEJlZ2luU1hUSHMifSwzMTc6e246IkJydEVuZFNYVEhzIn0sMzE4OntuOiJCcnRCZWdpblNYVEgifSwzMTk6e246IkJydEVuZFNYVEgifSwzMjA6e246IkJydEJlZ2luSVNYVEhSd3MifSwzMjE6e246IkJydEVuZElTWFRIUndzIn0sMzIy'@; put 'OntuOiJCcnRCZWdpbklTWFRIQ29scyJ9LDMyMzp7bjoiQnJ0RW5kSVNYVEhDb2xzIn0sMzI0OntuOiJCcnRCZWdpblNYVERNUFMifSwzMjU6e246IkJydEVuZFNYVERNUHMifSwzMjY6e246IkJydEJlZ2luU1hURE1QIn0sMzI3OntuOiJCcnRFbmRTWFRETVAifSwzMjg6e246IkJydEJlZ2lu'@; put 'U1hUSEl0ZW1zIn0sMzI5OntuOiJCcnRFbmRTWFRISXRlbXMifSwzMzA6e246IkJydEJlZ2luU1hUSEl0ZW0ifSwzMzE6e246IkJydEVuZFNYVEhJdGVtIn0sMzMyOntuOiJCcnRCZWdpbk1ldGFkYXRhIn0sMzMzOntuOiJCcnRFbmRNZXRhZGF0YSJ9LDMzNDp7bjoiQnJ0QmVnaW5Fc21kdGlu'@; put 'Zm8ifSwzMzU6e246IkJydE1kdGluZm8ifSwzMzY6e246IkJydEVuZEVzbWR0aW5mbyJ9LDMzNzp7bjoiQnJ0QmVnaW5Fc21kYiJ9LDMzODp7bjoiQnJ0RW5kRXNtZGIifSwzMzk6e246IkJydEJlZ2luRXNmbWQifSwzNDA6e246IkJydEVuZEVzZm1kIn0sMzQxOntuOiJCcnRCZWdpblNpbmds'@; put 'ZUNlbGxzIn0sMzQyOntuOiJCcnRFbmRTaW5nbGVDZWxscyJ9LDM0Mzp7bjoiQnJ0QmVnaW5MaXN0In0sMzQ0OntuOiJCcnRFbmRMaXN0In0sMzQ1OntuOiJCcnRCZWdpbkxpc3RDb2xzIn0sMzQ2OntuOiJCcnRFbmRMaXN0Q29scyJ9LDM0Nzp7bjoiQnJ0QmVnaW5MaXN0Q29sIn0sMzQ4Ontu'@; put 'OiJCcnRFbmRMaXN0Q29sIn0sMzQ5OntuOiJCcnRCZWdpbkxpc3RYbWxDUHIifSwzNTA6e246IkJydEVuZExpc3RYbWxDUHIifSwzNTE6e246IkJydExpc3RDQ0ZtbGEifSwzNTI6e246IkJydExpc3RUckZtbGEifSwzNTM6e246IkJydEJlZ2luRXh0ZXJuYWxzIn0sMzU0OntuOiJCcnRFbmRF'@; put 'eHRlcm5hbHMifSwzNTU6e246IkJydFN1cEJvb2tTcmMiLGY6VDF9LDM1Nzp7bjoiQnJ0U3VwU2VsZiJ9LDM1ODp7bjoiQnJ0U3VwU2FtZSJ9LDM1OTp7bjoiQnJ0U3VwVGFicyJ9LDM2MDp7bjoiQnJ0QmVnaW5TdXBCb29rIn0sMzYxOntuOiJCcnRQbGFjZWhvbGRlck5hbWUifSwzNjI6e246'@; put 'IkJydEV4dGVyblNoZWV0IixmOlNtfSwzNjM6e246IkJydEV4dGVyblRhYmxlU3RhcnQifSwzNjQ6e246IkJydEV4dGVyblRhYmxlRW5kIn0sMzY2OntuOiJCcnRFeHRlcm5Sb3dIZHIifSwzNjc6e246IkJydEV4dGVybkNlbGxCbGFuayJ9LDM2ODp7bjoiQnJ0RXh0ZXJuQ2VsbFJlYWwifSwz'@; put 'Njk6e246IkJydEV4dGVybkNlbGxCb29sIn0sMzcwOntuOiJCcnRFeHRlcm5DZWxsRXJyb3IifSwzNzE6e246IkJydEV4dGVybkNlbGxTdHJpbmcifSwzNzI6e246IkJydEJlZ2luRXNtZHgifSwzNzM6e246IkJydEVuZEVzbWR4In0sMzc0OntuOiJCcnRCZWdpbk1keFNldCJ9LDM3NTp7bjoi'@; put 'QnJ0RW5kTWR4U2V0In0sMzc2OntuOiJCcnRCZWdpbk1keE1iclByb3AifSwzNzc6e246IkJydEVuZE1keE1iclByb3AifSwzNzg6e246IkJydEJlZ2luTWR4S1BJIn0sMzc5OntuOiJCcnRFbmRNZHhLUEkifSwzODA6e246IkJydEJlZ2luRXNzdHIifSwzODE6e246IkJydEVuZEVzc3RyIn0s'@; put 'MzgyOntuOiJCcnRCZWdpblBSRkl0ZW0ifSwzODM6e246IkJydEVuZFBSRkl0ZW0ifSwzODQ6e246IkJydEJlZ2luUGl2b3RDYWNoZUlEcyJ9LDM4NTp7bjoiQnJ0RW5kUGl2b3RDYWNoZUlEcyJ9LDM4Njp7bjoiQnJ0QmVnaW5QaXZvdENhY2hlSUQifSwzODc6e246IkJydEVuZFBpdm90Q2Fj'@; put 'aGVJRCJ9LDM4ODp7bjoiQnJ0QmVnaW5JU1hWSXMifSwzODk6e246IkJydEVuZElTWFZJcyJ9LDM5MDp7bjoiQnJ0QmVnaW5Db2xJbmZvcyJ9LDM5MTp7bjoiQnJ0RW5kQ29sSW5mb3MifSwzOTI6e246IkJydEJlZ2luUndCcmsifSwzOTM6e246IkJydEVuZFJ3QnJrIn0sMzk0OntuOiJCcnRC'@; put 'ZWdpbkNvbEJyayJ9LDM5NTp7bjoiQnJ0RW5kQ29sQnJrIn0sMzk2OntuOiJCcnRCcmsifSwzOTc6e246IkJydFVzZXJCb29rVmlldyJ9LDM5ODp7bjoiQnJ0SW5mbyJ9LDM5OTp7bjoiQnJ0Q1VzciJ9LDQwMDp7bjoiQnJ0VXNyIn0sNDAxOntuOiJCcnRCZWdpblVzZXJzIn0sNDAzOntuOiJC'@; put 'cnRFT0YifSw0MDQ6e246IkJydFVDUiJ9LDQwNTp7bjoiQnJ0UlJJbnNEZWwifSw0MDY6e246IkJydFJSRW5kSW5zRGVsIn0sNDA3OntuOiJCcnRSUk1vdmUifSw0MDg6e246IkJydFJSRW5kTW92ZSJ9LDQwOTp7bjoiQnJ0UlJDaGdDZWxsIn0sNDEwOntuOiJCcnRSUkVuZENoZ0NlbGwifSw0'@; put 'MTE6e246IkJydFJSSGVhZGVyIn0sNDEyOntuOiJCcnRSUlVzZXJWaWV3In0sNDEzOntuOiJCcnRSUlJlblNoZWV0In0sNDE0OntuOiJCcnRSUkluc2VydFNoIn0sNDE1OntuOiJCcnRSUkRlZk5hbWUifSw0MTY6e246IkJydFJSTm90ZSJ9LDQxNzp7bjoiQnJ0UlJDb25mbGljdCJ9LDQxODp7'@; put 'bjoiQnJ0UlJUUVNJRiJ9LDQxOTp7bjoiQnJ0UlJGb3JtYXQifSw0MjA6e246IkJydFJSRW5kRm9ybWF0In0sNDIxOntuOiJCcnRSUkF1dG9GbXQifSw0MjI6e246IkJydEJlZ2luVXNlclNoVmlld3MifSw0MjM6e246IkJydEJlZ2luVXNlclNoVmlldyJ9LDQyNDp7bjoiQnJ0RW5kVXNlclNo'@; put 'VmlldyJ9LDQyNTp7bjoiQnJ0RW5kVXNlclNoVmlld3MifSw0MjY6e246IkJydEFyckZtbGEiLGY6ZnVuY3Rpb24gaDUoeSxQLEwpe3ZhciBRPXkubCtQLHJlPVRkKHkpLGdlPXkucmVhZF9zaGlmdCgxKSxfZT1bcmVdO2lmKF9lWzJdPWdlLEwuY2VsbEZvcm11bGEpe3ZhciB2ZT1yUyh5LFEt'@; put 'eS5sLEwpO19lWzFdPXZlfWVsc2UgeS5sPVE7cmV0dXJuIF9lfX0sNDI3OntuOiJCcnRTaHJGbWxhIixmOmZ1bmN0aW9uIGhMKHksUCxMKXt2YXIgUT15LmwrUCxnZT1bSmMoeSwxNildO2lmKEwuY2VsbEZvcm11bGEpe3ZhciBfZT1FSSh5LFEteS5sLEwpO2dlWzFdPV9lLHkubD1RfWVsc2Ug'@; put 'eS5sPVE7cmV0dXJuIGdlfX0sNDI4OntuOiJCcnRUYWJsZSJ9LDQyOTp7bjoiQnJ0QmVnaW5FeHRDb25uZWN0aW9ucyJ9LDQzMDp7bjoiQnJ0RW5kRXh0Q29ubmVjdGlvbnMifSw0MzE6e246IkJydEJlZ2luUENEQ2FsY01lbXMifSw0MzI6e246IkJydEVuZFBDRENhbGNNZW1zIn0sNDMzOntu'@; put 'OiJCcnRCZWdpblBDRENhbGNNZW0ifSw0MzQ6e246IkJydEVuZFBDRENhbGNNZW0ifSw0MzU6e246IkJydEJlZ2luUENESEdMZXZlbHMifSw0MzY6e246IkJydEVuZFBDREhHTGV2ZWxzIn0sNDM3OntuOiJCcnRCZWdpblBDREhHTGV2ZWwifSw0Mzg6e246IkJydEVuZFBDREhHTGV2ZWwifSw0'@; put 'Mzk6e246IkJydEJlZ2luUENESEdMR3JvdXBzIn0sNDQwOntuOiJCcnRFbmRQQ0RIR0xHcm91cHMifSw0NDE6e246IkJydEJlZ2luUENESEdMR3JvdXAifSw0NDI6e246IkJydEVuZFBDREhHTEdyb3VwIn0sNDQzOntuOiJCcnRCZWdpblBDREhHTEdNZW1iZXJzIn0sNDQ0OntuOiJCcnRFbmRQ'@; put 'Q0RIR0xHTWVtYmVycyJ9LDQ0NTp7bjoiQnJ0QmVnaW5QQ0RIR0xHTWVtYmVyIn0sNDQ2OntuOiJCcnRFbmRQQ0RIR0xHTWVtYmVyIn0sNDQ3OntuOiJCcnRCZWdpblFTSSJ9LDQ0ODp7bjoiQnJ0RW5kUVNJIn0sNDQ5OntuOiJCcnRCZWdpblFTSVIifSw0NTA6e246IkJydEVuZFFTSVIifSw0'@; put 'NTE6e246IkJydEJlZ2luRGVsZXRlZE5hbWVzIn0sNDUyOntuOiJCcnRFbmREZWxldGVkTmFtZXMifSw0NTM6e246IkJydEJlZ2luRGVsZXRlZE5hbWUifSw0NTQ6e246IkJydEVuZERlbGV0ZWROYW1lIn0sNDU1OntuOiJCcnRCZWdpblFTSUZzIn0sNDU2OntuOiJCcnRFbmRRU0lGcyJ9LDQ1'@; put 'Nzp7bjoiQnJ0QmVnaW5RU0lGIn0sNDU4OntuOiJCcnRFbmRRU0lGIn0sNDU5OntuOiJCcnRCZWdpbkF1dG9Tb3J0U2NvcGUifSw0NjA6e246IkJydEVuZEF1dG9Tb3J0U2NvcGUifSw0NjE6e246IkJydEJlZ2luQ29uZGl0aW9uYWxGb3JtYXR0aW5nIn0sNDYyOntuOiJCcnRFbmRDb25kaXRp'@; put 'b25hbEZvcm1hdHRpbmcifSw0NjM6e246IkJydEJlZ2luQ0ZSdWxlIn0sNDY0OntuOiJCcnRFbmRDRlJ1bGUifSw0NjU6e246IkJydEJlZ2luSWNvblNldCJ9LDQ2Njp7bjoiQnJ0RW5kSWNvblNldCJ9LDQ2Nzp7bjoiQnJ0QmVnaW5EYXRhYmFyIn0sNDY4OntuOiJCcnRFbmREYXRhYmFyIn0s'@; put 'NDY5OntuOiJCcnRCZWdpbkNvbG9yU2NhbGUifSw0NzA6e246IkJydEVuZENvbG9yU2NhbGUifSw0NzE6e246IkJydENGVk8ifSw0NzI6e246IkJydEV4dGVyblZhbHVlTWV0YSJ9LDQ3Mzp7bjoiQnJ0QmVnaW5Db2xvclBhbGV0dGUifSw0NzQ6e246IkJydEVuZENvbG9yUGFsZXR0ZSJ9LDQ3'@; put 'NTp7bjoiQnJ0SW5kZXhlZENvbG9yIn0sNDc2OntuOiJCcnRNYXJnaW5zIixmOmZ1bmN0aW9uIGZMKHkpe3ZhciBQPXt9O3JldHVybiBxUy5mb3JFYWNoKGZ1bmN0aW9uKEwpe1BbTF09bWEoeSl9KSxQfX0sNDc3OntuOiJCcnRQcmludE9wdGlvbnMifSw0Nzg6e246IkJydFBhZ2VTZXR1cCJ9'@; put 'LDQ3OTp7bjoiQnJ0QmVnaW5IZWFkZXJGb290ZXIifSw0ODA6e246IkJydEVuZEhlYWRlckZvb3RlciJ9LDQ4MTp7bjoiQnJ0QmVnaW5TWENydEZvcm1hdCJ9LDQ4Mjp7bjoiQnJ0RW5kU1hDcnRGb3JtYXQifSw0ODM6e246IkJydEJlZ2luU1hDcnRGb3JtYXRzIn0sNDg0OntuOiJCcnRFbmRT'@; put 'WENydEZvcm1hdHMifSw0ODU6e246IkJydFdzRm10SW5mbyIsZjpmdW5jdGlvbiBYSSh5KXt2YXIgUD17fSxMPXt9LFE9e30scmU9eS5yZWFkX3NoaWZ0KDQpLGdlPXkucmVhZF9zaGlmdCgyKTtRLndjaD1yZTw9NjU1MzY/cmUvMjU2OmdlO3ZhciBfZT15LnJlYWRfc2hpZnQoMik7TC5ocHQ9'@; put 'X2UvMjA7dmFyIHZlPXkucmVhZF9zaGlmdCgyKTtyZXR1cm4gMiZ2ZSYmKEwuaGlkZGVuPSEwKSw0JnZlJiYoUC50b3B0aGljaz0hMCksOCZ2ZSYmKFAuYm90dGhpY2s9ITApLFAucm93b3V0bGluZT15LnJlYWRfc2hpZnQoMSksUC5jb2xvdXRsaW5lPXkucmVhZF9zaGlmdCgxKSxJMyhMKSxQ'@; put 'LnJvdz1MLHB1KFEpLFAuY29sPVEsUH19LDQ4Njp7bjoiQnJ0QmVnaW5NZ3MifSw0ODc6e246IkJydEVuZE1HcyJ9LDQ4ODp7bjoiQnJ0QmVnaW5NR01hcHMifSw0ODk6e246IkJydEVuZE1HTWFwcyJ9LDQ5MDp7bjoiQnJ0QmVnaW5NRyJ9LDQ5MTp7bjoiQnJ0RW5kTUcifSw0OTI6e246IkJy'@; put 'dEJlZ2luTWFwIn0sNDkzOntuOiJCcnRFbmRNYXAifSw0OTQ6e246IkJydEhMaW5rIixmOmZ1bmN0aW9uIGQ1KHksUCl7dmFyIEw9eS5sK1AsUT1KYyh5LDE2KSxyZT1BdSh5KSxnZT1DYyh5KSxfZT1DYyh5KSx2ZT1DYyh5KTt5Lmw9TDt2YXIgU2U9e3JmeDpRLHJlbElkOnJlLGxvYzpnZSxk'@; put 'aXNwbGF5OnZlfTtyZXR1cm4gX2UmJihTZS5Ub29sdGlwPV9lKSxTZX19LDQ5NTp7bjoiQnJ0QmVnaW5EQ29uIn0sNDk2OntuOiJCcnRFbmREQ29uIn0sNDk3OntuOiJCcnRCZWdpbkRSZWZzIn0sNDk4OntuOiJCcnRFbmREUmVmcyJ9LDQ5OTp7bjoiQnJ0RFJlZiJ9LDUwMDp7bjoiQnJ0QmVn'@; put 'aW5TY2VuTWFuIn0sNTAxOntuOiJCcnRFbmRTY2VuTWFuIn0sNTAyOntuOiJCcnRCZWdpblNjdCJ9LDUwMzp7bjoiQnJ0RW5kU2N0In0sNTA0OntuOiJCcnRTbGMifSw1MDU6e246IkJydEJlZ2luRFhGcyJ9LDUwNjp7bjoiQnJ0RW5kRFhGcyJ9LDUwNzp7bjoiQnJ0RFhGIn0sNTA4OntuOiJC'@; put 'cnRCZWdpblRhYmxlU3R5bGVzIn0sNTA5OntuOiJCcnRFbmRUYWJsZVN0eWxlcyJ9LDUxMDp7bjoiQnJ0QmVnaW5UYWJsZVN0eWxlIn0sNTExOntuOiJCcnRFbmRUYWJsZVN0eWxlIn0sNTEyOntuOiJCcnRUYWJsZVN0eWxlRWxlbWVudCJ9LDUxMzp7bjoiQnJ0VGFibGVTdHlsZUNsaWVudCJ9'@; put 'LDUxNDp7bjoiQnJ0QmVnaW5Wb2xEZXBzIn0sNTE1OntuOiJCcnRFbmRWb2xEZXBzIn0sNTE2OntuOiJCcnRCZWdpblZvbFR5cGUifSw1MTc6e246IkJydEVuZFZvbFR5cGUifSw1MTg6e246IkJydEJlZ2luVm9sTWFpbiJ9LDUxOTp7bjoiQnJ0RW5kVm9sTWFpbiJ9LDUyMDp7bjoiQnJ0QmVn'@; put 'aW5Wb2xUb3BpYyJ9LDUyMTp7bjoiQnJ0RW5kVm9sVG9waWMifSw1MjI6e246IkJydFZvbFN1YnRvcGljIn0sNTIzOntuOiJCcnRWb2xSZWYifSw1MjQ6e246IkJydFZvbE51bSJ9LDUyNTp7bjoiQnJ0Vm9sRXJyIn0sNTI2OntuOiJCcnRWb2xTdHIifSw1Mjc6e246IkJydFZvbEJvb2wifSw1'@; put 'Mjg6e246IkJydEJlZ2luQ2FsY0NoYWluJCJ9LDUyOTp7bjoiQnJ0RW5kQ2FsY0NoYWluJCJ9LDUzMDp7bjoiQnJ0QmVnaW5Tb3J0U3RhdGUifSw1MzE6e246IkJydEVuZFNvcnRTdGF0ZSJ9LDUzMjp7bjoiQnJ0QmVnaW5Tb3J0Q29uZCJ9LDUzMzp7bjoiQnJ0RW5kU29ydENvbmQifSw1MzQ6'@; put 'e246IkJydEJvb2tQcm90ZWN0aW9uIn0sNTM1OntuOiJCcnRTaGVldFByb3RlY3Rpb24ifSw1MzY6e246IkJydFJhbmdlUHJvdGVjdGlvbiJ9LDUzNzp7bjoiQnJ0UGhvbmV0aWNJbmZvIn0sNTM4OntuOiJCcnRCZWdpbkVDVHh0V2l6In0sNTM5OntuOiJCcnRFbmRFQ1R4dFdpeiJ9LDU0MDp7'@; put 'bjoiQnJ0QmVnaW5FQ1RXRmxkSW5mb0xzdCJ9LDU0MTp7bjoiQnJ0RW5kRUNUV0ZsZEluZm9Mc3QifSw1NDI6e246IkJydEJlZ2luRUNUd0ZsZEluZm8ifSw1NDg6e246IkJydEZpbGVTaGFyaW5nIn0sNTQ5OntuOiJCcnRPbGVTaXplIn0sNTUwOntuOiJCcnREcmF3aW5nIixmOlQxfSw1NTE6'@; put 'e246IkJydExlZ2FjeURyYXdpbmcifSw1NTI6e246IkJydExlZ2FjeURyYXdpbmdIRiJ9LDU1Mzp7bjoiQnJ0V2ViT3B0In0sNTU0OntuOiJCcnRCZWdpbldlYlB1Ykl0ZW1zIn0sNTU1OntuOiJCcnRFbmRXZWJQdWJJdGVtcyJ9LDU1Njp7bjoiQnJ0QmVnaW5XZWJQdWJJdGVtIn0sNTU3Ontu'@; put 'OiJCcnRFbmRXZWJQdWJJdGVtIn0sNTU4OntuOiJCcnRCZWdpblNYQ29uZEZtdCJ9LDU1OTp7bjoiQnJ0RW5kU1hDb25kRm10In0sNTYwOntuOiJCcnRCZWdpblNYQ29uZEZtdHMifSw1NjE6e246IkJydEVuZFNYQ29uZEZtdHMifSw1NjI6e246IkJydEJrSGltIn0sNTY0OntuOiJCcnRDb2xv'@; put 'ciJ9LDU2NTp7bjoiQnJ0QmVnaW5JbmRleGVkQ29sb3JzIn0sNTY2OntuOiJCcnRFbmRJbmRleGVkQ29sb3JzIn0sNTY5OntuOiJCcnRCZWdpbk1SVUNvbG9ycyJ9LDU3MDp7bjoiQnJ0RW5kTVJVQ29sb3JzIn0sNTcyOntuOiJCcnRNUlVDb2xvciJ9LDU3Mzp7bjoiQnJ0QmVnaW5EVmFscyJ9'@; put 'LDU3NDp7bjoiQnJ0RW5kRFZhbHMifSw1Nzc6e246IkJydFN1cE5hbWVTdGFydCJ9LDU3ODp7bjoiQnJ0U3VwTmFtZVZhbHVlU3RhcnQifSw1Nzk6e246IkJydFN1cE5hbWVWYWx1ZUVuZCJ9LDU4MDp7bjoiQnJ0U3VwTmFtZU51bSJ9LDU4MTp7bjoiQnJ0U3VwTmFtZUVyciJ9LDU4Mjp7bjoi'@; put 'QnJ0U3VwTmFtZVN0In0sNTgzOntuOiJCcnRTdXBOYW1lTmlsIn0sNTg0OntuOiJCcnRTdXBOYW1lQm9vbCJ9LDU4NTp7bjoiQnJ0U3VwTmFtZUZtbGEifSw1ODY6e246IkJydFN1cE5hbWVCaXRzIn0sNTg3OntuOiJCcnRTdXBOYW1lRW5kIn0sNTg4OntuOiJCcnRFbmRTdXBCb29rIn0sNTg5'@; put 'OntuOiJCcnRDZWxsU21hcnRUYWdQcm9wZXJ0eSJ9LDU5MDp7bjoiQnJ0QmVnaW5DZWxsU21hcnRUYWcifSw1OTE6e246IkJydEVuZENlbGxTbWFydFRhZyJ9LDU5Mjp7bjoiQnJ0QmVnaW5DZWxsU21hcnRUYWdzIn0sNTkzOntuOiJCcnRFbmRDZWxsU21hcnRUYWdzIn0sNTk0OntuOiJCcnRC'@; put 'ZWdpblNtYXJ0VGFncyJ9LDU5NTp7bjoiQnJ0RW5kU21hcnRUYWdzIn0sNTk2OntuOiJCcnRTbWFydFRhZ1R5cGUifSw1OTc6e246IkJydEJlZ2luU21hcnRUYWdUeXBlcyJ9LDU5ODp7bjoiQnJ0RW5kU21hcnRUYWdUeXBlcyJ9LDU5OTp7bjoiQnJ0QmVnaW5TWEZpbHRlcnMifSw2MDA6e246'@; put 'IkJydEVuZFNYRmlsdGVycyJ9LDYwMTp7bjoiQnJ0QmVnaW5TWEZJTFRFUiJ9LDYwMjp7bjoiQnJ0RW5kU1hGaWx0ZXIifSw2MDM6e246IkJydEJlZ2luRmlsbHMifSw2MDQ6e246IkJydEVuZEZpbGxzIn0sNjA1OntuOiJCcnRCZWdpbkNlbGxXYXRjaGVzIn0sNjA2OntuOiJCcnRFbmRDZWxs'@; put 'V2F0Y2hlcyJ9LDYwNzp7bjoiQnJ0Q2VsbFdhdGNoIn0sNjA4OntuOiJCcnRCZWdpbkNSRXJycyJ9LDYwOTp7bjoiQnJ0RW5kQ1JFcnJzIn0sNjEwOntuOiJCcnRDcmFzaFJlY0VyciJ9LDYxMTp7bjoiQnJ0QmVnaW5Gb250cyJ9LDYxMjp7bjoiQnJ0RW5kRm9udHMifSw2MTM6e246IkJydEJl'@; put 'Z2luQm9yZGVycyJ9LDYxNDp7bjoiQnJ0RW5kQm9yZGVycyJ9LDYxNTp7bjoiQnJ0QmVnaW5GbXRzIn0sNjE2OntuOiJCcnRFbmRGbXRzIn0sNjE3OntuOiJCcnRCZWdpbkNlbGxYRnMifSw2MTg6e246IkJydEVuZENlbGxYRnMifSw2MTk6e246IkJydEJlZ2luU3R5bGVzIn0sNjIwOntuOiJC'@; put 'cnRFbmRTdHlsZXMifSw2MjU6e246IkJydEJpZ05hbWUifSw2MjY6e246IkJydEJlZ2luQ2VsbFN0eWxlWEZzIn0sNjI3OntuOiJCcnRFbmRDZWxsU3R5bGVYRnMifSw2Mjg6e246IkJydEJlZ2luQ29tbWVudHMifSw2Mjk6e246IkJydEVuZENvbW1lbnRzIn0sNjMwOntuOiJCcnRCZWdpbkNv'@; put 'bW1lbnRBdXRob3JzIn0sNjMxOntuOiJCcnRFbmRDb21tZW50QXV0aG9ycyJ9LDYzMjp7bjoiQnJ0Q29tbWVudEF1dGhvciIsZjpYRH0sNjMzOntuOiJCcnRCZWdpbkNvbW1lbnRMaXN0In0sNjM0OntuOiJCcnRFbmRDb21tZW50TGlzdCJ9LDYzNTp7bjoiQnJ0QmVnaW5Db21tZW50IixmOmZ1'@; put 'bmN0aW9uIEJDKHkpe3ZhciBQPXt9O1AuaWF1dGhvcj15LnJlYWRfc2hpZnQoNCk7dmFyIEw9SmMoeSwxNik7cmV0dXJuIFAucmZ4PUwucyxQLnJlZj1kaShMLnMpLHkubCs9MTYsUH19LDYzNjp7bjoiQnJ0RW5kQ29tbWVudCJ9LDYzNzp7bjoiQnJ0Q29tbWVudFRleHQiLGY6WDd9LDYzODp7'@; put 'bjoiQnJ0QmVnaW5PbGVPYmplY3RzIn0sNjM5OntuOiJCcnRPbGVPYmplY3QifSw2NDA6e246IkJydEVuZE9sZU9iamVjdHMifSw2NDE6e246IkJydEJlZ2luU3hydWxlcyJ9LDY0Mjp7bjoiQnJ0RW5kU3hSdWxlcyJ9LDY0Mzp7bjoiQnJ0QmVnaW5BY3RpdmVYQ29udHJvbHMifSw2NDQ6e246'@; put 'IkJydEFjdGl2ZVgifSw2NDU6e246IkJydEVuZEFjdGl2ZVhDb250cm9scyJ9LDY0Njp7bjoiQnJ0QmVnaW5QQ0RTRFRDRU1lbWJlcnNTb3J0QnkifSw2NDg6e246IkJydEJlZ2luQ2VsbElnbm9yZUVDcyJ9LDY0OTp7bjoiQnJ0Q2VsbElnbm9yZUVDIn0sNjUwOntuOiJCcnRFbmRDZWxsSWdu'@; put 'b3JlRUNzIn0sNjUxOntuOiJCcnRDc1Byb3AiLGY6ZnVuY3Rpb24gZXAoeSxQKXtyZXR1cm4geS5sKz0xMCx7bmFtZTpDYyh5KX19fSw2NTI6e246IkJydENzUGFnZVNldHVwIn0sNjUzOntuOiJCcnRCZWdpblVzZXJDc1ZpZXdzIn0sNjU0OntuOiJCcnRFbmRVc2VyQ3NWaWV3cyJ9LDY1NTp7'@; put 'bjoiQnJ0QmVnaW5Vc2VyQ3NWaWV3In0sNjU2OntuOiJCcnRFbmRVc2VyQ3NWaWV3In0sNjU3OntuOiJCcnRCZWdpblBjZFNGQ0lFbnRyaWVzIn0sNjU4OntuOiJCcnRFbmRQQ0RTRkNJRW50cmllcyJ9LDY1OTp7bjoiQnJ0UENEU0ZDSUVudHJ5In0sNjYwOntuOiJCcnRCZWdpbkxpc3RQYXJ0'@; put 'cyJ9LDY2MTp7bjoiQnJ0TGlzdFBhcnQifSw2NjI6e246IkJydEVuZExpc3RQYXJ0cyJ9LDY2Mzp7bjoiQnJ0U2hlZXRDYWxjUHJvcCJ9LDY2NDp7bjoiQnJ0QmVnaW5Gbkdyb3VwIn0sNjY1OntuOiJCcnRGbkdyb3VwIn0sNjY2OntuOiJCcnRFbmRGbkdyb3VwIn0sNjY3OntuOiJCcnRTdXBB'@; put 'ZGRpbiJ9LDY2ODp7bjoiQnJ0U1hURE1QT3JkZXIifSw2Njk6e246IkJydENzUHJvdGVjdGlvbiJ9LDY3MTp7bjoiQnJ0QmVnaW5Xc1NvcnRNYXAifSw2NzI6e246IkJydEVuZFdzU29ydE1hcCJ9LDY3Mzp7bjoiQnJ0QmVnaW5SUlNvcnQifSw2NzQ6e246IkJydEVuZFJSU29ydCJ9LDY3NTp7'@; put 'bjoiQnJ0UlJTb3J0SXRlbSJ9LDY3Njp7bjoiQnJ0RmlsZVNoYXJpbmdJc28ifSw2Nzc6e246IkJydEJvb2tQcm90ZWN0aW9uSXNvIn0sNjc4OntuOiJCcnRTaGVldFByb3RlY3Rpb25Jc28ifSw2Nzk6e246IkJydENzUHJvdGVjdGlvbklzbyJ9LDY4MDp7bjoiQnJ0UmFuZ2VQcm90ZWN0aW9u'@; put 'SXNvIn0sNjgxOntuOiJCcnREVmFsTGlzdCJ9LDEwMjQ6e246IkJydFJ3RGVzY2VudCJ9LDEwMjU6e246IkJydEtub3duRm9udHMifSwxMDI2OntuOiJCcnRCZWdpblNYVHVwbGVTZXQifSwxMDI3OntuOiJCcnRFbmRTWFR1cGxlU2V0In0sMTAyODp7bjoiQnJ0QmVnaW5TWFR1cGxlU2V0SGVh'@; put 'ZGVyIn0sMTAyOTp7bjoiQnJ0RW5kU1hUdXBsZVNldEhlYWRlciJ9LDEwMzA6e246IkJydFNYVHVwbGVTZXRIZWFkZXJJdGVtIn0sMTAzMTp7bjoiQnJ0QmVnaW5TWFR1cGxlU2V0RGF0YSJ9LDEwMzI6e246IkJydEVuZFNYVHVwbGVTZXREYXRhIn0sMTAzMzp7bjoiQnJ0QmVnaW5TWFR1cGxl'@; put 'U2V0Um93In0sMTAzNDp7bjoiQnJ0RW5kU1hUdXBsZVNldFJvdyJ9LDEwMzU6e246IkJydFNYVHVwbGVTZXRSb3dJdGVtIn0sMTAzNjp7bjoiQnJ0TmFtZUV4dCJ9LDEwMzc6e246IkJydFBDREgxNCJ9LDEwMzg6e246IkJydEJlZ2luUENEQ2FsY01lbTE0In0sMTAzOTp7bjoiQnJ0RW5kUENE'@; put 'Q2FsY01lbTE0In0sMTA0MDp7bjoiQnJ0U1hUSDE0In0sMTA0MTp7bjoiQnJ0QmVnaW5TcGFya2xpbmVHcm91cCJ9LDEwNDI6e246IkJydEVuZFNwYXJrbGluZUdyb3VwIn0sMTA0Mzp7bjoiQnJ0U3BhcmtsaW5lIn0sMTA0NDp7bjoiQnJ0U1hESTE0In0sMTA0NTp7bjoiQnJ0V3NGbXRJbmZv'@; put 'RXgxNCJ9LDEwNDY6e246IkJydEJlZ2luQ29uZGl0aW9uYWxGb3JtYXR0aW5nMTQifSwxMDQ3OntuOiJCcnRFbmRDb25kaXRpb25hbEZvcm1hdHRpbmcxNCJ9LDEwNDg6e246IkJydEJlZ2luQ0ZSdWxlMTQifSwxMDQ5OntuOiJCcnRFbmRDRlJ1bGUxNCJ9LDEwNTA6e246IkJydENGVk8xNCJ9'@; put 'LDEwNTE6e246IkJydEJlZ2luRGF0YWJhcjE0In0sMTA1Mjp7bjoiQnJ0QmVnaW5JY29uU2V0MTQifSwxMDUzOntuOiJCcnREVmFsMTQiLGY6ZnVuY3Rpb24gYkwoeSxQLEwpe3ZhciBRPWZ1bmN0aW9uIEd0KHksUCxMKXt2YXIgUT15LnJlYWRfc2hpZnQoNCkscmU9e307cmV0dXJuIDEmUSYm'@; put 'KHJlLnJlZnM9ZnVuY3Rpb24gVW4oeSl7Zm9yKHZhciBQPXkucmVhZF9zaGlmdCg0KSxMPVtdO1AtLSA+MDspTC5wdXNoKERyKHkpKTtyZXR1cm4gTH0oeSkpLDImUSYmKHJlLnNxcmVmcz1mdW5jdGlvbiB5byh5KXtmb3IodmFyIFA9eS5yZWFkX3NoaWZ0KDQpLEw9W107UC0tID4wOylMLnB1'@; put 'c2goZXMoeSkpO3JldHVybiBMfSh5KSksNCZRJiYocmUuZm9ybXVsYXM9ZnVuY3Rpb24genMoeSxQLEwpe2Zvcih2YXIgUT15LnJlYWRfc2hpZnQoNCkscmU9W107US0tID4wOylyZS5wdXNoKHNjKHksMCxMKSk7cmV0dXJuIHJlfSh5LDAsTCkpLDgmUSYmKHJlLnJlbElEPWZ1bmN0aW9uIGlt'@; put 'KHkpe3ZhciBQPXkucmVhZF9zaGlmdCgyKTtyZXR1cm4gMD09PVA/IiI6eS5yZWFkX3NoaWZ0KFAsInV0ZjE2bGUiKX0oeSkpLHJlfSh5LDAsTCkscmU9eS5yZWFkX3NoaWZ0KDQpLGdlPUF1KHkpLF9lPUF1KHkpLHZlPUF1KHkpLFNlPUF1KHkpLEhlPShRLmZvcm11bGFzfHxbXSlbMF0sQmU9'@; put 'KFEuZm9ybXVsYXN8fFtdKVsxXSxHZT0xNSZyZSxudD17dDplb1tHZV0sc3FyZng6US5zcXJlZnNbMF0sczpbZ2UsX2UsdmUsU2VdfTtyZXR1cm4gSGUmJihudC5mMT1IZSksQmUmJihudC5mMj1CZSksMD09R2V8fDM9PUdlfHw3PT1HZXx8KG50Lm9wPUJ2W3JlPj4yMCYxNV0pLG50fX0sMTA1'@; put 'NDp7bjoiQnJ0QmVnaW5EVmFsczE0In0sMTA1NTp7bjoiQnJ0Q29sb3IxNCJ9LDEwNTY6e246IkJydEJlZ2luU3BhcmtsaW5lcyJ9LDEwNTc6e246IkJydEVuZFNwYXJrbGluZXMifSwxMDU4OntuOiJCcnRCZWdpblNwYXJrbGluZUdyb3VwcyJ9LDEwNTk6e246IkJydEVuZFNwYXJrbGluZUdy'@; put 'b3VwcyJ9LDEwNjE6e246IkJydFNYVkQxNCJ9LDEwNjI6e246IkJydEJlZ2luU1hWaWV3MTQifSwxMDYzOntuOiJCcnRFbmRTWFZpZXcxNCJ9LDEwNjQ6e246IkJydEJlZ2luU1hWaWV3MTYifSwxMDY1OntuOiJCcnRFbmRTWFZpZXcxNiJ9LDEwNjY6e246IkJydEJlZ2luUENEMTQifSwxMDY3'@; put 'OntuOiJCcnRFbmRQQ0QxNCJ9LDEwNjg6e246IkJydEJlZ2luRXh0Q29ubjE0In0sMTA2OTp7bjoiQnJ0RW5kRXh0Q29ubjE0In0sMTA3MDp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZUlEcyJ9LDEwNzE6e246IkJydEVuZFNsaWNlckNhY2hlSURzIn0sMTA3Mjp7bjoiQnJ0QmVnaW5TbGljZXJD'@; put 'YWNoZUlEIn0sMTA3Mzp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVJRCJ9LDEwNzU6e246IkJydEJlZ2luU2xpY2VyQ2FjaGUifSwxMDc2OntuOiJCcnRFbmRTbGljZXJDYWNoZSJ9LDEwNzc6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVEZWYifSwxMDc4OntuOiJCcnRFbmRTbGljZXJDYWNoZURlZiJ9'@; put 'LDEwNzk6e246IkJydEJlZ2luU2xpY2Vyc0V4In0sMTA4MDp7bjoiQnJ0RW5kU2xpY2Vyc0V4In0sMTA4MTp7bjoiQnJ0QmVnaW5TbGljZXJFeCJ9LDEwODI6e246IkJydEVuZFNsaWNlckV4In0sMTA4Mzp7bjoiQnJ0QmVnaW5TbGljZXIifSwxMDg0OntuOiJCcnRFbmRTbGljZXIifSwxMDg1'@; put 'OntuOiJCcnRTbGljZXJDYWNoZVBpdm90VGFibGVzIn0sMTA4Njp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZU9sYXBJbXBsIn0sMTA4Nzp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVPbGFwSW1wbCJ9LDEwODg6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVMZXZlbHNEYXRhIn0sMTA4OTp7bjoiQnJ0RW5k'@; put 'U2xpY2VyQ2FjaGVMZXZlbHNEYXRhIn0sMTA5MDp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZUxldmVsRGF0YSJ9LDEwOTE6e246IkJydEVuZFNsaWNlckNhY2hlTGV2ZWxEYXRhIn0sMTA5Mjp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZVNpUmFuZ2VzIn0sMTA5Mzp7bjoiQnJ0RW5kU2xpY2VyQ2Fj'@; put 'aGVTaVJhbmdlcyJ9LDEwOTQ6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVTaVJhbmdlIn0sMTA5NTp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVTaVJhbmdlIn0sMTA5Njp7bjoiQnJ0U2xpY2VyQ2FjaGVPbGFwSXRlbSJ9LDEwOTc6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVTZWxlY3Rpb25zIn0sMTA5'@; put 'ODp7bjoiQnJ0U2xpY2VyQ2FjaGVTZWxlY3Rpb24ifSwxMDk5OntuOiJCcnRFbmRTbGljZXJDYWNoZVNlbGVjdGlvbnMifSwxMTAwOntuOiJCcnRCZWdpblNsaWNlckNhY2hlTmF0aXZlIn0sMTEwMTp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVOYXRpdmUifSwxMTAyOntuOiJCcnRTbGljZXJDYWNo'@; put 'ZU5hdGl2ZUl0ZW0ifSwxMTAzOntuOiJCcnRSYW5nZVByb3RlY3Rpb24xNCJ9LDExMDQ6e246IkJydFJhbmdlUHJvdGVjdGlvbklzbzE0In0sMTEwNTp7bjoiQnJ0Q2VsbElnbm9yZUVDMTQifSwxMTExOntuOiJCcnRMaXN0MTQifSwxMTEyOntuOiJCcnRDRkljb24ifSwxMTEzOntuOiJCcnRC'@; put 'ZWdpblNsaWNlckNhY2hlc1Bpdm90Q2FjaGVJRHMifSwxMTE0OntuOiJCcnRFbmRTbGljZXJDYWNoZXNQaXZvdENhY2hlSURzIn0sMTExNTp7bjoiQnJ0QmVnaW5TbGljZXJzIn0sMTExNjp7bjoiQnJ0RW5kU2xpY2VycyJ9LDExMTc6e246IkJydFdiUHJvcDE0In0sMTExODp7bjoiQnJ0QmVn'@; put 'aW5TWEVkaXQifSwxMTE5OntuOiJCcnRFbmRTWEVkaXQifSwxMTIwOntuOiJCcnRCZWdpblNYRWRpdHMifSwxMTIxOntuOiJCcnRFbmRTWEVkaXRzIn0sMTEyMjp7bjoiQnJ0QmVnaW5TWENoYW5nZSJ9LDExMjM6e246IkJydEVuZFNYQ2hhbmdlIn0sMTEyNDp7bjoiQnJ0QmVnaW5TWENoYW5n'@; put 'ZXMifSwxMTI1OntuOiJCcnRFbmRTWENoYW5nZXMifSwxMTI2OntuOiJCcnRTWFR1cGxlSXRlbXMifSwxMTI4OntuOiJCcnRCZWdpblNsaWNlclN0eWxlIn0sMTEyOTp7bjoiQnJ0RW5kU2xpY2VyU3R5bGUifSwxMTMwOntuOiJCcnRTbGljZXJTdHlsZUVsZW1lbnQifSwxMTMxOntuOiJCcnRC'@; put 'ZWdpblN0eWxlU2hlZXRFeHQxNCJ9LDExMzI6e246IkJydEVuZFN0eWxlU2hlZXRFeHQxNCJ9LDExMzM6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVzUGl2b3RDYWNoZUlEIn0sMTEzNDp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVzUGl2b3RDYWNoZUlEIn0sMTEzNTp7bjoiQnJ0QmVnaW5Db25kaXRp'@; put 'b25hbEZvcm1hdHRpbmdzIn0sMTEzNjp7bjoiQnJ0RW5kQ29uZGl0aW9uYWxGb3JtYXR0aW5ncyJ9LDExMzc6e246IkJydEJlZ2luUENEQ2FsY01lbUV4dCJ9LDExMzg6e246IkJydEVuZFBDRENhbGNNZW1FeHQifSwxMTM5OntuOiJCcnRCZWdpblBDRENhbGNNZW1zRXh0In0sMTE0MDp7bjoi'@; put 'QnJ0RW5kUENEQ2FsY01lbXNFeHQifSwxMTQxOntuOiJCcnRQQ0RGaWVsZDE0In0sMTE0Mjp7bjoiQnJ0QmVnaW5TbGljZXJTdHlsZXMifSwxMTQzOntuOiJCcnRFbmRTbGljZXJTdHlsZXMifSwxMTQ0OntuOiJCcnRCZWdpblNsaWNlclN0eWxlRWxlbWVudHMifSwxMTQ1OntuOiJCcnRFbmRT'@; put 'bGljZXJTdHlsZUVsZW1lbnRzIn0sMTE0Njp7bjoiQnJ0Q0ZSdWxlRXh0In0sMTE0Nzp7bjoiQnJ0QmVnaW5TWENvbmRGbXQxNCJ9LDExNDg6e246IkJydEVuZFNYQ29uZEZtdDE0In0sMTE0OTp7bjoiQnJ0QmVnaW5TWENvbmRGbXRzMTQifSwxMTUwOntuOiJCcnRFbmRTWENvbmRGbXRzMTQi'@; put 'fSwxMTUyOntuOiJCcnRCZWdpblNvcnRDb25kMTQifSwxMTUzOntuOiJCcnRFbmRTb3J0Q29uZDE0In0sMTE1NDp7bjoiQnJ0RW5kRFZhbHMxNCJ9LDExNTU6e246IkJydEVuZEljb25TZXQxNCJ9LDExNTY6e246IkJydEVuZERhdGFiYXIxNCJ9LDExNTc6e246IkJydEJlZ2luQ29sb3JTY2Fs'@; put 'ZTE0In0sMTE1ODp7bjoiQnJ0RW5kQ29sb3JTY2FsZTE0In0sMTE1OTp7bjoiQnJ0QmVnaW5TeHJ1bGVzMTQifSwxMTYwOntuOiJCcnRFbmRTeHJ1bGVzMTQifSwxMTYxOntuOiJCcnRCZWdpblBSdWxlMTQifSwxMTYyOntuOiJCcnRFbmRQUnVsZTE0In0sMTE2Mzp7bjoiQnJ0QmVnaW5QUkZp'@; put 'bHRlcnMxNCJ9LDExNjQ6e246IkJydEVuZFBSRmlsdGVyczE0In0sMTE2NTp7bjoiQnJ0QmVnaW5QUkZpbHRlcjE0In0sMTE2Njp7bjoiQnJ0RW5kUFJGaWx0ZXIxNCJ9LDExNjc6e246IkJydEJlZ2luUFJGSXRlbTE0In0sMTE2ODp7bjoiQnJ0RW5kUFJGSXRlbTE0In0sMTE2OTp7bjoiQnJ0'@; put 'QmVnaW5DZWxsSWdub3JlRUNzMTQifSwxMTcwOntuOiJCcnRFbmRDZWxsSWdub3JlRUNzMTQifSwxMTcxOntuOiJCcnREeGYxNCJ9LDExNzI6e246IkJydEJlZ2luRHhGMTRzIn0sMTE3Mzp7bjoiQnJ0RW5kRHhmMTRzIn0sMTE3Nzp7bjoiQnJ0RmlsdGVyMTQifSwxMTc4OntuOiJCcnRCZWdp'@; put 'bkN1c3RvbUZpbHRlcnMxNCJ9LDExODA6e246IkJydEN1c3RvbUZpbHRlcjE0In0sMTE4MTp7bjoiQnJ0SWNvbkZpbHRlcjE0In0sMTE4Mjp7bjoiQnJ0UGl2b3RDYWNoZUNvbm5lY3Rpb25OYW1lIn0sMjA0ODp7bjoiQnJ0QmVnaW5EZWNvdXBsZWRQaXZvdENhY2hlSURzIn0sMjA0OTp7bjoi'@; put 'QnJ0RW5kRGVjb3VwbGVkUGl2b3RDYWNoZUlEcyJ9LDIwNTA6e246IkJydERlY291cGxlZFBpdm90Q2FjaGVJRCJ9LDIwNTE6e246IkJydEJlZ2luUGl2b3RUYWJsZVJlZnMifSwyMDUyOntuOiJCcnRFbmRQaXZvdFRhYmxlUmVmcyJ9LDIwNTM6e246IkJydFBpdm90VGFibGVSZWYifSwyMDU0'@; put 'OntuOiJCcnRTbGljZXJDYWNoZUJvb2tQaXZvdFRhYmxlcyJ9LDIwNTU6e246IkJydEJlZ2luU3h2Y2VsbHMifSwyMDU2OntuOiJCcnRFbmRTeHZjZWxscyJ9LDIwNTc6e246IkJydEJlZ2luU3hSb3cifSwyMDU4OntuOiJCcnRFbmRTeFJvdyJ9LDIwNjA6e246IkJydFBjZENhbGNNZW0xNSJ9'@; put 'LDIwNjc6e246IkJydFFzaTE1In0sMjA2ODp7bjoiQnJ0QmVnaW5XZWJFeHRlbnNpb25zIn0sMjA2OTp7bjoiQnJ0RW5kV2ViRXh0ZW5zaW9ucyJ9LDIwNzA6e246IkJydFdlYkV4dGVuc2lvbiJ9LDIwNzE6e246IkJydEFic1BhdGgxNSJ9LDIwNzI6e246IkJydEJlZ2luUGl2b3RUYWJsZVVJ'@; put 'U2V0dGluZ3MifSwyMDczOntuOiJCcnRFbmRQaXZvdFRhYmxlVUlTZXR0aW5ncyJ9LDIwNzU6e246IkJydFRhYmxlU2xpY2VyQ2FjaGVJRHMifSwyMDc2OntuOiJCcnRUYWJsZVNsaWNlckNhY2hlSUQifSwyMDc3OntuOiJCcnRCZWdpblRhYmxlU2xpY2VyQ2FjaGUifSwyMDc4OntuOiJCcnRF'@; put 'bmRUYWJsZVNsaWNlckNhY2hlIn0sMjA3OTp7bjoiQnJ0U3hGaWx0ZXIxNSJ9LDIwODA6e246IkJydEJlZ2luVGltZWxpbmVDYWNoZVBpdm90Q2FjaGVJRHMifSwyMDgxOntuOiJCcnRFbmRUaW1lbGluZUNhY2hlUGl2b3RDYWNoZUlEcyJ9LDIwODI6e246IkJydFRpbWVsaW5lQ2FjaGVQaXZv'@; put 'dENhY2hlSUQifSwyMDgzOntuOiJCcnRCZWdpblRpbWVsaW5lQ2FjaGVJRHMifSwyMDg0OntuOiJCcnRFbmRUaW1lbGluZUNhY2hlSURzIn0sMjA4NTp7bjoiQnJ0QmVnaW5UaW1lbGluZUNhY2hlSUQifSwyMDg2OntuOiJCcnRFbmRUaW1lbGluZUNhY2hlSUQifSwyMDg3OntuOiJCcnRCZWdp'@; put 'blRpbWVsaW5lc0V4In0sMjA4ODp7bjoiQnJ0RW5kVGltZWxpbmVzRXgifSwyMDg5OntuOiJCcnRCZWdpblRpbWVsaW5lRXgifSwyMDkwOntuOiJCcnRFbmRUaW1lbGluZUV4In0sMjA5MTp7bjoiQnJ0V29ya0Jvb2tQcjE1In0sMjA5Mjp7bjoiQnJ0UENESDE1In0sMjA5Mzp7bjoiQnJ0QmVn'@; put 'aW5UaW1lbGluZVN0eWxlIn0sMjA5NDp7bjoiQnJ0RW5kVGltZWxpbmVTdHlsZSJ9LDIwOTU6e246IkJydFRpbWVsaW5lU3R5bGVFbGVtZW50In0sMjA5Njp7bjoiQnJ0QmVnaW5UaW1lbGluZVN0eWxlc2hlZXRFeHQxNSJ9LDIwOTc6e246IkJydEVuZFRpbWVsaW5lU3R5bGVzaGVldEV4dDE1'@; put 'In0sMjA5ODp7bjoiQnJ0QmVnaW5UaW1lbGluZVN0eWxlcyJ9LDIwOTk6e246IkJydEVuZFRpbWVsaW5lU3R5bGVzIn0sMjEwMDp7bjoiQnJ0QmVnaW5UaW1lbGluZVN0eWxlRWxlbWVudHMifSwyMTAxOntuOiJCcnRFbmRUaW1lbGluZVN0eWxlRWxlbWVudHMifSwyMTAyOntuOiJCcnREeGYx'@; put 'NSJ9LDIxMDM6e246IkJydEJlZ2luRHhmczE1In0sMjEwNDp7bjoiYnJ0RW5kRHhmczE1In0sMjEwNTp7bjoiQnJ0U2xpY2VyQ2FjaGVIaWRlSXRlbXNXaXRoTm9EYXRhIn0sMjEwNjp7bjoiQnJ0QmVnaW5JdGVtVW5pcXVlTmFtZXMifSwyMTA3OntuOiJCcnRFbmRJdGVtVW5pcXVlTmFtZXMi'@; put 'fSwyMTA4OntuOiJCcnRJdGVtVW5pcXVlTmFtZSJ9LDIxMDk6e246IkJydEJlZ2luRXh0Q29ubjE1In0sMjExMDp7bjoiQnJ0RW5kRXh0Q29ubjE1In0sMjExMTp7bjoiQnJ0QmVnaW5PbGVkYlByMTUifSwyMTEyOntuOiJCcnRFbmRPbGVkYlByMTUifSwyMTEzOntuOiJCcnRCZWdpbkRhdGFG'@; put 'ZWVkUHIxNSJ9LDIxMTQ6e246IkJydEVuZERhdGFGZWVkUHIxNSJ9LDIxMTU6e246IkJydFRleHRQcjE1In0sMjExNjp7bjoiQnJ0UmFuZ2VQcjE1In0sMjExNzp7bjoiQnJ0RGJDb21tYW5kMTUifSwyMTE4OntuOiJCcnRCZWdpbkRiVGFibGVzMTUifSwyMTE5OntuOiJCcnRFbmREYlRhYmxl'@; put 'czE1In0sMjEyMDp7bjoiQnJ0RGJUYWJsZTE1In0sMjEyMTp7bjoiQnJ0QmVnaW5EYXRhTW9kZWwifSwyMTIyOntuOiJCcnRFbmREYXRhTW9kZWwifSwyMTIzOntuOiJCcnRCZWdpbk1vZGVsVGFibGVzIn0sMjEyNDp7bjoiQnJ0RW5kTW9kZWxUYWJsZXMifSwyMTI1OntuOiJCcnRNb2RlbFRh'@; put 'YmxlIn0sMjEyNjp7bjoiQnJ0QmVnaW5Nb2RlbFJlbGF0aW9uc2hpcHMifSwyMTI3OntuOiJCcnRFbmRNb2RlbFJlbGF0aW9uc2hpcHMifSwyMTI4OntuOiJCcnRNb2RlbFJlbGF0aW9uc2hpcCJ9LDIxMjk6e246IkJydEJlZ2luRUNUeHRXaXoxNSJ9LDIxMzA6e246IkJydEVuZEVDVHh0V2l6'@; put 'MTUifSwyMTMxOntuOiJCcnRCZWdpbkVDVFdGbGRJbmZvTHN0MTUifSwyMTMyOntuOiJCcnRFbmRFQ1RXRmxkSW5mb0xzdDE1In0sMjEzMzp7bjoiQnJ0QmVnaW5FQ1RXRmxkSW5mbzE1In0sMjEzNDp7bjoiQnJ0RmllbGRMaXN0QWN0aXZlSXRlbSJ9LDIxMzU6e246IkJydFBpdm90Q2FjaGVJ'@; put 'ZFZlcnNpb24ifSwyMTM2OntuOiJCcnRTWERJMTUifSwyMTM3OntuOiJCcnRCZWdpbk1vZGVsVGltZUdyb3VwaW5ncyJ9LDIxMzg6e246IkJydEVuZE1vZGVsVGltZUdyb3VwaW5ncyJ9LDIxMzk6e246IkJydEJlZ2luTW9kZWxUaW1lR3JvdXBpbmcifSwyMTQwOntuOiJCcnRFbmRNb2RlbFRp'@; put 'bWVHcm91cGluZyJ9LDIxNDE6e246IkJydE1vZGVsVGltZUdyb3VwaW5nQ2FsY0NvbCJ9LDMwNzI6e246IkJydFVpZCJ9LDMwNzM6e246IkJydFJldmlzaW9uUHRyIn0sNTA5NTp7bjoiQnJ0QmVnaW5DYWxjRmVhdHVyZXMifSw1MDk2OntuOiJCcnRFbmRDYWxjRmVhdHVyZXMifSw1MDk3Ontu'@; put 'OiJCcnRDYWxjRmVhdHVyZSJ9LDY1NTM1OntuOiIifX0sYjU9UGUobWYsIm4iKTtiNS5CcnRGUlRBcmNoSUQkPTE2O3ZhciBYMD17Njp7bjoiRm9ybXVsYSIsZjp6M30sMTA6e246IkVPRiIsZjpQZH0sMTI6e246IkNhbGNDb3VudCIsZjpobH0sMTM6e246IkNhbGNNb2RlIixmOmhsfSwxNDp7'@; put 'bjoiQ2FsY1ByZWNpc2lvbiIsZjpTb30sMTU6e246IkNhbGNSZWZNb2RlIixmOlNvfSwxNjp7bjoiQ2FsY0RlbHRhIixmOm1hfSwxNzp7bjoiQ2FsY0l0ZXIiLGY6U299LDE4OntuOiJQcm90ZWN0IixmOlNvfSwxOTp7bjoiUGFzc3dvcmQiLGY6aGx9LDIwOntuOiJIZWFkZXIiLGY6VjF9LDIx'@; put 'OntuOiJGb290ZXIiLGY6VjF9LDIzOntuOiJFeHRlcm5TaGVldCIsZjpTbX0sMjQ6e246IkxibCIsZjpWd30sMjU6e246IldpblByb3RlY3QiLGY6U299LDI2OntuOiJWZXJ0aWNhbFBhZ2VCcmVha3MifSwyNzp7bjoiSG9yaXpvbnRhbFBhZ2VCcmVha3MifSwyODp7bjoiTm90ZSIsZjpmdW5j'@; put 'dGlvbiBVdyh5LFAsTCl7cmV0dXJuIGZ1bmN0aW9uIFM5KHksUCxMKXtpZighKEwuYmlmZjw4KSl7dmFyIFE9eS5yZWFkX3NoaWZ0KDIpLHJlPXkucmVhZF9zaGlmdCgyKSxnZT15LnJlYWRfc2hpZnQoMiksX2U9eS5yZWFkX3NoaWZ0KDIpLHZlPVYyKHksMCxMKTtyZXR1cm4gTC5iaWZmPDgm'@; put 'JnkucmVhZF9zaGlmdCgxKSxbe3I6USxjOnJlfSx2ZSxfZSxnZV19fSh5LDAsTCl9fSwyOTp7bjoiU2VsZWN0aW9uIixmOmZ1bmN0aW9uIFMzKHksUCxMKXtyZXR1cm4gTCYmTC5iaWZmPDU/KHkubCs9UCx7Y2VsbDp7cjowLGM6MH19KTooeS5yZWFkX3NoaWZ0KDEpLHtjZWxsOmRpKHtyOnku'@; put 'cmVhZF9zaGlmdCgyKSxjOnkucmVhZF9zaGlmdCgyKX0pfSl9fSwzNDp7bjoiRGF0ZTE5MDQiLGY6U299LDM1OntuOiJFeHRlcm5OYW1lIixmOnk5fSwzODp7bjoiTGVmdE1hcmdpbiIsZjptYX0sMzk6e246IlJpZ2h0TWFyZ2luIixmOm1hfSw0MDp7bjoiVG9wTWFyZ2luIixmOm1hfSw0MTp7'@; put 'bjoiQm90dG9tTWFyZ2luIixmOm1hfSw0Mjp7bjoiUHJpbnRSb3dDb2wiLGY6U299LDQzOntuOiJQcmludEdyaWQiLGY6U299LDQ3OntuOiJGaWxlUGFzcyIsZjpmdW5jdGlvbiBWbCh5LFAsTCl7aWYoTC5lbmMpcmV0dXJuIEwuZW5jO3ZhciBRPXtUeXBlOkwuYmlmZj49OD95LnJlYWRfc2hp'@; put 'ZnQoMik6MH07cmV0dXJuIFEuVHlwZT9mdW5jdGlvbiBnRCh5LFAsTCxRKXt2YXIgcmU9UXx8e307aWYocmUuSW5mbz15LnJlYWRfc2hpZnQoMikseS5sLT0yLDE9PT1yZS5JbmZvKXtpZihyZS5EYXRhPWZ1bmN0aW9uIF9aKHkpe3ZhciBQPXt9LEw9UC5FbmNyeXB0aW9uVmVyc2lvbkluZm89'@; put 'RzAoeSw0KTtpZigxIT1MLk1ham9yfHwxIT1MLk1pbm9yKXRocm93InVucmVjb2duaXplZCB2ZXJzaW9uIGNvZGUgIitMLk1ham9yKyIgOiAiK0wuTWlub3I7cmV0dXJuIFAuU2FsdD15LnJlYWRfc2hpZnQoMTYpLFAuRW5jcnlwdGVkVmVyaWZpZXI9eS5yZWFkX3NoaWZ0KDE2KSxQLkVuY3J5'@; put 'cHRlZFZlcmlmaWVySGFzaD15LnJlYWRfc2hpZnQoMTYpLFB9KHkpLEwucGFzc3dvcmQmJnR5cGVvZiBPNjwidSIpe3ZhciBnZT1PNihMLnBhc3N3b3JkLHJlLkRhdGEuU2FsdCwiMDAwMDAwMDAiKSxfZT11ZShyZS5EYXRhLkVuY3J5cHRlZFZlcmlmaWVyK3JlLkRhdGEuRW5jcnlwdGVkVmVy'@; put 'aWZpZXJIYXNoLCJoZXgiKSx2ZT14ZC5yYzQodWUoZ2UsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSxfZSk7US52YWxpZD14ZC5tZDUodmUuc2xpY2UoMCwxNikpPT1CdWZmZXIuZnJvbSh2ZS5zbGljZSgxNikpLnRvU3RyaW5nKCJoZXgiKSxyZS5EYXRhLktleT1nZSxRLmluc2l0dT1mdW5j'@; put 'dGlvbiBvcih5LFApe3ZhciBMPW5ldyBBcnJheSgyNTYpLFE9MCxyZT0wLGdlPTAsX2U9MDtmdW5jdGlvbiB2ZShudCl7Zm9yKFE9MCxyZT0wLGdlPTAsX2U9MCxyZT0wOzI1NiE9cmU7KytyZSlMW3JlXT1yZTtmb3IoZ2U9MCxyZT0wOzI1NiE9cmU7KytyZSl7dHJ5e2dlPWdlK0xbcmVdK250'@; put 'W3JlJW50Lmxlbmd0aF0uY2hhckNvZGVBdCgwKSYyNTV9Y2F0Y2goZHQpe3Rocm93IGNvbnNvbGUubG9nKHJlLG50W3JlJW50Lmxlbmd0aF0pLGR0fV9lPUxbcmVdLExbcmVdPUxbZ2VdLExbZ2VdPV9lfXJlPWdlPTB9ZnVuY3Rpb24gU2UobnQpe3ZhciBkdD1HKG50Lmxlbmd0aCk7Zm9yKFE9'@; put 'MDtRIT1udC5sZW5ndGg7KytRKV9lPUxbcmU9cmUrMSYyNTVdLExbcmVdPUxbZ2U9KGdlK0xbcmVdKSUyNTZdLExbZ2VdPV9lLGR0W1FdPW50W1FdXkxbTFtyZV0rTFtnZV0mMjU1XTtyZXR1cm4gQnVmZmVyLmZyb20oZHQpfXZhciBIZT15LktleSxCZT0wO3ZlKHVlKEhlLCJoZXgiKS50b1N0'@; put 'cmluZygiYmluYXJ5IikpO3ZhciBHZT0wO3JldHVybiBmdW5jdGlvbihudCl7aWYoR2UrbnQubGVuZ3RoPDEwMjQpcmV0dXJuIEdlKz1udC5sZW5ndGgsU2UobnQpO3ZhciBjdD0wLGJ0PXVlKG50LnNsaWNlKGN0LGN0KyhDdD0xMDI0LUdlKSkpO2N0Kz1DdCxHZT0wO3ZhciBGdD1TZShidCk7'@; put 'Zm9yKGN0PT1udC5sZW5ndGgmJigrK0JlLEhlPU82KFAseS5TYWx0LFI2KEJlKSksdmUodWUoSGUsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSkpO2N0PG50Lmxlbmd0aDspeysrQmUsSGU9TzYoUCx5LlNhbHQsUjYoQmUpKSx2ZShCdWZmZXIuZnJvbShIZSwiaGV4IikudG9TdHJpbmcoImJp'@; put 'bmFyeSIpKTt2YXIgQ3Q9TWF0aC5taW4oMTAyNCxudC5sZW5ndGgtY3QpO2J0PXVlKG50LnNsaWNlKGN0LGN0K0N0KSksY3QrPUN0LEdlPUN0LEZ0PUJ1ZmZlci5jb25jYXQoW0Z0LFNlKGJ0KV0pfXJldHVybiBGdH19KHJlLkRhdGEsTC5wYXNzd29yZCl9fWVsc2UgaWYocmUuRGF0YT1mdW5j'@; put 'dGlvbiB2Wih5LFApe3ZhciBMPXt9LFE9TC5FbmNyeXB0aW9uVmVyc2lvbkluZm89RzAoeSw0KTtpZihQLT00LDIhPVEuTWlub3IpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgbWlub3IgdmVyc2lvbiBjb2RlOiAiK1EuTWlub3IpO2lmKFEuTWFqb3I+NHx8US5NYWpvcjwyKXRocm93'@; put 'IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIG1ham9yIHZlcnNpb24gY29kZTogIitRLk1ham9yKTtMLkZsYWdzPXkucmVhZF9zaGlmdCg0KSxQLT00O3ZhciByZT15LnJlYWRfc2hpZnQoNCk7cmV0dXJuIFAtPTQsTC5FbmNyeXB0aW9uSGVhZGVyPUk5KHkscmUpLEwuRW5jcnlwdGlvblZlcmlm'@; put 'aWVyPVJtKHksUC09cmUpLEx9KHksUCkscmUuRGF0YSYmcmUuRGF0YS5FbmNyeXB0aW9uSGVhZGVyJiYyNjYyNT09PXJlLkRhdGEuRW5jcnlwdGlvbkhlYWRlci5BbGdJRCYmTC5wYXNzd29yZCYmdHlwZW9mIGdyPCJ1Iil7dmFyIFNlPWdyKEwucGFzc3dvcmQscmUuRGF0YS5FbmNyeXB0aW9u'@; put 'VmVyaWZpZXIuU2FsdC50b1N0cmluZygiaGV4IiksIjAwMDAwMDAwIiksSGU9cmUuRGF0YS5FbmNyeXB0aW9uSGVhZGVyLktleVNpemU+Pj4zOzU9PUhlfHxIZTxTZS5sZW5ndGgmJihTZT1TZS5zbGljZSgwLEhlKSk7dmFyIEJlPXVlKHJlLkRhdGEuRW5jcnlwdGlvblZlcmlmaWVyLlZlcmlm'@; put 'aWVyLnRvU3RyaW5nKCJoZXgiKStyZS5EYXRhLkVuY3J5cHRpb25WZXJpZmllci5WZXJpZmllckhhc2gudG9TdHJpbmcoImhleCIpLCJoZXgiKSxHZT14ZC5yYzQoU2UudG9TdHJpbmcoImJpbmFyeSIpLEJlKTtRLnZhbGlkPWVsKEdlLnNsaWNlKDAsSGUpLCJTSEExIikudG9TdHJpbmcoImhl'@; put 'eCIpPT1HZS5zbGljZShIZSkudG9TdHJpbmcoImhleCIpLHJlLkRhdGEuS2V5PVNlLFEudmFsaWQmJihRLmluc2l0dT1mdW5jdGlvbiB6Yyh5LFApe3ZhciBMPW5ldyBBcnJheSgyNTYpLFE9MCxyZT0wLGdlPTAsX2U9MCx2ZT15LkVuY3J5cHRpb25IZWFkZXIuS2V5U2l6ZT4+PjM7ZnVuY3Rp'@; put 'b24gU2UoZHQpe2ZvcihkdD1CdWZmZXIuZnJvbShkdC5zbGljZSgwLHZlKSksUT0wLHJlPTAsZ2U9MCxfZT0wLHJlPTA7MjU2IT1yZTsrK3JlKUxbcmVdPXJlO2ZvcihnZT0wLHJlPTA7MjU2IT1yZTsrK3JlKXt2YXIgQ3Q9ZHRbcmUlZHQubGVuZ3RoXTtnZT1nZStMW3JlXSsoInN0cmluZyI9'@; put 'PXR5cGVvZiBDdD9DdC5jaGFyQ29kZUF0KDApOkN0KSYyNTUsX2U9TFtyZV0sTFtyZV09TFtnZV0sTFtnZV09X2V9cmU9Z2U9MH1mdW5jdGlvbiBIZShkdCl7dmFyIEN0PUcoZHQubGVuZ3RoKTtmb3IoUT0wO1EhPWR0Lmxlbmd0aDsrK1EpX2U9TFtyZT1yZSsxJjI1NV0sTFtyZV09TFtnZT0o'@; put 'Z2UrTFtyZV0pJTI1Nl0sTFtnZV09X2UsQ3RbUV09ZHRbUV1eTFtMW3JlXStMW2dlXSYyNTVdO3JldHVybiBCdWZmZXIuZnJvbShDdCl9dmFyIEJlPXkuS2V5LEdlPTA7U2UodWUoQmUsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSk7dmFyIG50PTA7cmV0dXJuIGZ1bmN0aW9uKGR0KXtpZihu'@; put 'dCtkdC5sZW5ndGg8MTAyNClyZXR1cm4gbnQrPWR0Lmxlbmd0aCxIZShkdCk7dmFyIGN0PTEwMjQtbnQsYnQ9MCxGdD1CdWZmZXIuZnJvbShkdC5zbGljZShidCxidCtjdCkpO2J0Kz1jdCxudD0wO3ZhciBrdD1IZShGdCk7Zm9yKGJ0PT1kdC5sZW5ndGgmJigrK0dlLEJlPWdyKFAseS5FbmNy'@; put 'eXB0aW9uVmVyaWZpZXIuU2FsdCxSNihHZSkpLFNlKEJ1ZmZlci5mcm9tKEJlLCJoZXgiKS50b1N0cmluZygiYmluYXJ5IikpKTtidDxkdC5sZW5ndGg7KSsrR2UsQmU9Z3IoUCx5LkVuY3J5cHRpb25WZXJpZmllci5TYWx0LFI2KEdlKSksU2UoQnVmZmVyLmZyb20oQmUsImhleCIpLnRvU3Ry'@; put 'aW5nKCJiaW5hcnkiKSksY3Q9TWF0aC5taW4oMTAyNCxkdC5sZW5ndGgtYnQpLEZ0PUJ1ZmZlci5mcm9tKGR0LnNsaWNlKGJ0LGJ0K2N0KSksYnQrPWN0LGN0PDEwMjQmJihudD1jdCksa3Q9QnVmZmVyLmNvbmNhdChba3QsSGUoRnQpXSk7cmV0dXJuIGt0fX0ocmUuRGF0YSxMLnBhc3N3b3Jk'@; put 'KSl9cmV0dXJuIHJlfSh5LFAtMixMLFEpOmZ1bmN0aW9uIHBEKHksUCxMLFEpe3ZhciByZT17a2V5OmhsKHkpLHZlcmlmaWNhdGlvbkJ5dGVzOmhsKHkpfTtMLnBhc3N3b3JkJiYocmUudmVyaWZpZXI9YUMoTC5wYXNzd29yZCkpLFEudmFsaWQ9cmUudmVyaWZpY2F0aW9uQnl0ZXM9PT1yZS52'@; put 'ZXJpZmllcixRLnZhbGlkJiYoUS5pbnNpdHU9ZnVuY3Rpb24oeSxQKXt2YXIgTD1QfHwwLFE9ZkQoeSk7cmV0dXJuIGZ1bmN0aW9uKHJlKXt2YXIgZ2U9ZnVuY3Rpb24oeSxQLEwsUSxyZSl7dmFyIGdlLF9lO2ZvcihyZXx8KHJlPVApLFF8fChRPWZEKCIiKSksZ2U9MDtnZSE9UC5sZW5ndGg7'@; put 'KytnZSlfZT0yNTUmKChfZT1QW2dlXSk+PjV8X2U8PDMpLHJlW2dlXT1fZV49UVtMXSxMPUwrMSYxNTtyZXR1cm5bcmUsTCxRXX0oMCxyZSxMLFEpO3JldHVybiBMPWdlWzFdLGdlWzBdfX0oTC5wYXNzd29yZCwwKSl9KHksMCxMLFEpLFF9fSw0OTp7bjoiRm9udCIsZjpmdW5jdGlvbiBQdyh5'@; put 'LFAsTCl7dmFyIFE9e3N6OnkucmVhZF9zaGlmdCgyKS8yMH0scmU9ZjQoeSk7cmUuZkJvbGQmJihRLmJvbGQ9MSkscmUuZkl0YWxpYyYmKFEuaXRhbGljPTEpLHJlLmZVbmRlcmxpbmUmJihRLnVuZGVybGluZT0xKSxyZS5mQ29uZGVuc2UmJihRLmNvbmRlbnNlPTEpLHJlLmZFeHRlbmQmJihR'@; put 'LmV4dGVuZD0xKSxyZS5mU2hhZG93JiYoUS5zaGFkb3c9MSkscmUuZk91dGxpbmUmJihRLm91dGxpbmU9MSkscmUuZlN0cmlrZW91dCYmKFEuc3RyaWtlPTEpO3ZhciBnZT1MJiZMLmJpZmZ8fDg7aWYoMiE9Z2UmJihRLmljdj15LnJlYWRfc2hpZnQoMiksMyE9Z2UmJjQhPWdlKSl7c3dpdGNo'@; put 'KDcwMD09PXkucmVhZF9zaGlmdCgyKSYmKFEuYm9sZD0xKSx5LnJlYWRfc2hpZnQoMikpe2Nhc2UgMTpRLnZhbGlnbj0ic3VwZXIiO2JyZWFrO2Nhc2UgMjpRLnZhbGlnbj0ic3ViIn12YXIgdmU9eS5yZWFkX3NoaWZ0KDEpOzAhPXZlJiYoUS51bmRlcmxpbmU9dmUpO3ZhciBTZT15LnJlYWRf'@; put 'c2hpZnQoMSk7U2U+MCYmKFEuZmFtaWx5PVNlKTt2YXIgSGU9eS5yZWFkX3NoaWZ0KDEpO0hlPjAmJihRLmNoYXJzZXQ9SGUpLHkubCs9MX1yZXR1cm4gUS5uYW1lPUZkKHksMCxMKSxRfX0sNTE6e246IlByaW50U2l6ZSIsZjpobH0sNjA6e246IkNvbnRpbnVlIn0sNjE6e246IldpbmRvdzEi'@; put 'LGY6ZnVuY3Rpb24gUG8oeSl7cmV0dXJue1BvczpbeS5yZWFkX3NoaWZ0KDIpLHkucmVhZF9zaGlmdCgyKV0sRGltOlt5LnJlYWRfc2hpZnQoMikseS5yZWFkX3NoaWZ0KDIpXSxGbGFnczp5LnJlYWRfc2hpZnQoMiksQ3VyVGFiOnkucmVhZF9zaGlmdCgyKSxGaXJzdFRhYjp5LnJlYWRfc2hp'@; put 'ZnQoMiksU2VsZWN0ZWQ6eS5yZWFkX3NoaWZ0KDIpLFRhYlJhdGlvOnkucmVhZF9zaGlmdCgyKX19fSw2NDp7bjoiQmFja3VwIixmOlNvfSw2NTp7bjoiUGFuZSIsZjpmdW5jdGlvbiBqVCh5LFAsTCl7aWYoTCYmTC5iaWZmPDUpcmV0dXJue307dmFyIFE9e307cmV0dXJuIFEueD15LnJlYWRf'@; put 'c2hpZnQoMiksUS55PXkucmVhZF9zaGlmdCgyKSxRLnJ3VG9wPXkucmVhZF9zaGlmdCgyKSxRLmNvbExlZnQ9eS5yZWFkX3NoaWZ0KDIpLFEucG5uQWNjdD15LnJlYWRfc2hpZnQoMSkseS5yZWFkX3NoaWZ0KDEpLFF9fSw2Njp7bjoiQ29kZVBhZ2UiLGY6aGx9LDc3OntuOiJQbHMiLGY6eWN9'@; put 'LDgwOntuOiJEQ29uIn0sODE6e246IkRDb25SZWYifSw4Mjp7bjoiRENvbk5hbWUifSw4NTp7bjoiRGVmQ29sV2lkdGgiLGY6aGx9LDg5OntuOiJYQ1QifSw5MDp7bjoiQ1JOIn0sOTE6e246IkZpbGVTaGFyaW5nIn0sOTI6e246IldyaXRlQWNjZXNzIixmOmZ1bmN0aW9uIHltKHksUCxMKXtp'@; put 'ZihMLmVuYylyZXR1cm4geS5sKz1QLCIiO3ZhciBRPXkubCxyZT1WMih5LDAsTCk7cmV0dXJuIHkucmVhZF9zaGlmdChQK1EteS5sKSxyZX19LDkzOntuOiJPYmoiLGY6ZnVuY3Rpb24gV3coeSxQLEwpe2lmKEwmJkwuYmlmZjw4KXJldHVybiBmdW5jdGlvbiBYVCh5LFAsTCl7eS5sKz00O3Zh'@; put 'ciBRPXkucmVhZF9zaGlmdCgyKSxyZT15LnJlYWRfc2hpZnQoMiksZ2U9eS5yZWFkX3NoaWZ0KDIpO3kubCs9Mix5LmwrPTIseS5sKz0yLHkubCs9Mix5LmwrPTIseS5sKz0yLHkubCs9Mix5LmwrPTIseS5sKz0yLHkubCs9Njt2YXIgX2U9W107cmV0dXJuIF9lLnB1c2goKE1tW1FdfHx5Yyko'@; put 'eSxQLT0zNixMKSkse2NtbzpbcmUsUSxnZV0sZnQ6X2V9fSh5LFAsTCk7dmFyIFE9VDQoeSkscmU9ZnVuY3Rpb24gWjAoeSxQLEwpe2Zvcih2YXIgUT15LmwrUCxyZT1bXTt5Lmw8UTspe3ZhciBnZT15LnJlYWRfc2hpZnQoMik7eS5sLT0yO3RyeXtyZVtnZV09Ym1bZ2VdKHksUS15LmwpfWNh'@; put 'dGNoe3JldHVybiB5Lmw9USxyZX19cmV0dXJuIHkubCE9USYmKHkubD1RKSxyZX0oeSxQLTIyKTtyZXR1cm57Y21vOlEsZnQ6cmV9fX0sOTQ6e246IlVuY2FsY2VkIn0sOTU6e246IkNhbGNTYXZlUmVjYWxjIixmOlNvfSw5Njp7bjoiVGVtcGxhdGUifSw5Nzp7bjoiSW50bCJ9LDk5OntuOiJP'@; put 'YmpQcm90ZWN0IixmOlNvfSwxMjU6e246IkNvbEluZm8iLGY6VmR9LDEyODp7bjoiR3V0cyIsZjpmdW5jdGlvbiBjWih5KXt5LmwrPTQ7dmFyIFA9W3kucmVhZF9zaGlmdCgyKSx5LnJlYWRfc2hpZnQoMildO2lmKDAhPT1QWzBdJiZQWzBdLS0sMCE9PVBbMV0mJlBbMV0tLSxQWzBdPjd8fFBb'@; put 'MV0+Nyl0aHJvdyBuZXcgRXJyb3IoIkJhZCBHdXR0ZXJzOiAiK1Auam9pbigifCIpKTtyZXR1cm4gUH19LDEyOTp7bjoiV3NCb29sIixmOmZ1bmN0aW9uIF9hKHksUCxMKXt2YXIgUT1MJiY4PT1MLmJpZmZ8fDI9PVA/eS5yZWFkX3NoaWZ0KDIpOih5LmwrPVAsMCk7cmV0dXJue2ZEaWFsb2c6'@; put 'MTYmUSxmQmVsb3c6NjQmUSxmUmlnaHQ6MTI4JlF9fX0sMTMwOntuOiJHcmlkU2V0IixmOmhsfSwxMzE6e246IkhDZW50ZXIiLGY6U299LDEzMjp7bjoiVkNlbnRlciIsZjpTb30sMTMzOntuOiJCb3VuZFNoZWV0OCIsZjpmdW5jdGlvbiBJNCh5LFAsTCl7dmFyIFE9eS5yZWFkX3NoaWZ0KDQp'@; put 'LHJlPTMmeS5yZWFkX3NoaWZ0KDEpLGdlPXkucmVhZF9zaGlmdCgxKTtzd2l0Y2goZ2Upe2Nhc2UgMDpnZT0iV29ya3NoZWV0IjticmVhaztjYXNlIDE6Z2U9Ik1hY3Jvc2hlZXQiO2JyZWFrO2Nhc2UgMjpnZT0iQ2hhcnRzaGVldCI7YnJlYWs7Y2FzZSA2OmdlPSJWQkFNb2R1bGUifXZhciBf'@; put 'ZT1GZCh5LDAsTCk7cmV0dXJuIDA9PT1fZS5sZW5ndGgmJihfZT0iU2hlZXQxIikse3BvczpRLGhzOnJlLGR0OmdlLG5hbWU6X2V9fX0sMTM0OntuOiJXcml0ZVByb3RlY3QifSwxNDA6e246IkNvdW50cnkiLGY6ZnVuY3Rpb24gZUQoeSl7dmFyIEwsUD1bMCwwXTtyZXR1cm4gTD15LnJlYWRf'@; put 'c2hpZnQoMiksUFswXT1sbVtMXXx8TCxMPXkucmVhZF9zaGlmdCgyKSxQWzFdPWxtW0xdfHxMLFB9fSwxNDE6e246IkhpZGVPYmoiLGY6aGx9LDE0NDp7bjoiU29ydCJ9LDE0Njp7bjoiUGFsZXR0ZSIsZjpmdW5jdGlvbiBHdyh5KXtmb3IodmFyIFA9eS5yZWFkX3NoaWZ0KDIpLEw9W107UC0t'@; put 'ID4wOylMLnB1c2goaDkoeSkpO3JldHVybiBMfX0sMTUxOntuOiJTeW5jIn0sMTUyOntuOiJMUHIifSwxNTM6e246IkR4R0NvbCJ9LDE1NDp7bjoiRm5Hcm91cE5hbWUifSwxNTU6e246IkZpbHRlck1vZGUifSwxNTY6e246IkJ1aWx0SW5Gbkdyb3VwQ291bnQiLGY6aGx9LDE1Nzp7bjoiQXV0'@; put 'b0ZpbHRlckluZm8ifSwxNTg6e246IkF1dG9GaWx0ZXIifSwxNjA6e246IlNjbCIsZjpLd30sMTYxOntuOiJTZXR1cCIsZjpmdW5jdGlvbiBFbSh5LFApe3ZhciBMPXt9O3JldHVybiBQPDMyfHwoeS5sKz0xNixMLmhlYWRlcj1tYSh5KSxMLmZvb3Rlcj1tYSh5KSx5LmwrPTIpLEx9fSwxNzQ6'@; put 'e246IlNjZW5NYW4ifSwxNzU6e246IlNDRU5BUklPIn0sMTc2OntuOiJTeFZpZXcifSwxNzc6e246IlN4dmQifSwxNzg6e246IlNYVkkifSwxODA6e246IlN4SXZkIn0sMTgxOntuOiJTWExJIn0sMTgyOntuOiJTWFBJIn0sMTg0OntuOiJEb2NSb3V0ZSJ9LDE4NTp7bjoiUmVjaXBOYW1lIn0s'@; put 'MTg5OntuOiJNdWxSayIsZjpmdW5jdGlvbiBGdyh5LFApe2Zvcih2YXIgTD15LmwrUC0yLFE9eS5yZWFkX3NoaWZ0KDIpLHJlPXkucmVhZF9zaGlmdCgyKSxnZT1bXTt5Lmw8TDspZ2UucHVzaChnOSh5KSk7aWYoeS5sIT09TCl0aHJvdyBuZXcgRXJyb3IoIk11bFJLIHJlYWQgZXJyb3IiKTt2'@; put 'YXIgX2U9eS5yZWFkX3NoaWZ0KDIpO2lmKGdlLmxlbmd0aCE9X2UtcmUrMSl0aHJvdyBuZXcgRXJyb3IoIk11bFJLIGxlbmd0aCBtaXNtYXRjaCIpO3JldHVybntyOlEsYzpyZSxDOl9lLHJrcmVjOmdlfX19LDE5MDp7bjoiTXVsQmxhbmsiLGY6ZnVuY3Rpb24gTDQoeSxQKXtmb3IodmFyIEw9'@; put 'eS5sK1AtMixRPXkucmVhZF9zaGlmdCgyKSxyZT15LnJlYWRfc2hpZnQoMiksZ2U9W107eS5sPEw7KWdlLnB1c2goeS5yZWFkX3NoaWZ0KDIpKTtpZih5LmwhPT1MKXRocm93IG5ldyBFcnJvcigiTXVsQmxhbmsgcmVhZCBlcnJvciIpO3ZhciBfZT15LnJlYWRfc2hpZnQoMik7aWYoZ2UubGVu'@; put 'Z3RoIT1fZS1yZSsxKXRocm93IG5ldyBFcnJvcigiTXVsQmxhbmsgbGVuZ3RoIG1pc21hdGNoIik7cmV0dXJue3I6USxjOnJlLEM6X2UsaXhmZTpnZX19fSwxOTM6e246Ik1tcyIsZjpQZH0sMTk3OntuOiJTWERJIn0sMTk4OntuOiJTWERCIn0sMTk5OntuOiJTWEZEQiJ9LDIwMDp7bjoiU1hE'@; put 'QkIifSwyMDE6e246IlNYTnVtIn0sMjAyOntuOiJTeEJvb2wiLGY6U299LDIwMzp7bjoiU3hFcnIifSwyMDQ6e246IlNYSW50In0sMjA1OntuOiJTWFN0cmluZyJ9LDIwNjp7bjoiU1hEdHIifSwyMDc6e246IlN4TmlsIn0sMjA4OntuOiJTWFRibCJ9LDIwOTp7bjoiU1hUQlJHSUlUTSJ9LDIx'@; put 'MDp7bjoiU3hUYnBnIn0sMjExOntuOiJPYlByb2oifSwyMTM6e246IlNYU3RyZWFtSUQifSwyMTU6e246IkRCQ2VsbCJ9LDIxNjp7bjoiU1hSbmcifSwyMTc6e246IlN4SXN4b3BlciJ9LDIxODp7bjoiQm9va0Jvb2wiLGY6aGx9LDIyMDp7bjoiRGJPclBhcmFtUXJ5In0sMjIxOntuOiJTY2Vu'@; put 'YXJpb1Byb3RlY3QiLGY6U299LDIyMjp7bjoiT2xlT2JqZWN0U2l6ZSJ9LDIyNDp7bjoiWEYiLGY6ZnVuY3Rpb24gYjkoeSxQLEwpe3ZhciBRPXt9O3JldHVybiBRLmlmbnQ9eS5yZWFkX3NoaWZ0KDIpLFEubnVtRm10SWQ9eS5yZWFkX3NoaWZ0KDIpLFEuZmxhZ3M9eS5yZWFkX3NoaWZ0KDIp'@; put 'LFEuZlN0eWxlPVEuZmxhZ3M+PjImMSxRLmRhdGE9ZnVuY3Rpb24gTjEoeSxQLEwsUSl7dmFyIHJlPXt9LGdlPXkucmVhZF9zaGlmdCg0KSxfZT15LnJlYWRfc2hpZnQoNCksdmU9eS5yZWFkX3NoaWZ0KDQpLFNlPXkucmVhZF9zaGlmdCgyKTtpZihyZS5wYXR0ZXJuVHlwZT12aVt2ZT4+MjZd'@; put 'LCFRLmNlbGxTdHlsZXMpcmV0dXJuIHJlO3ZhciBIZT03JmdlO3N3aXRjaChIZSl7Y2FzZSAxOnJlLmhhbGlnbj0ibGVmdCI7YnJlYWs7Y2FzZSAyOnJlLmhhbGlnbj0iY2VudGVyIjticmVhaztjYXNlIDM6cmUuaGFsaWduPSJyaWdodCJ9c3dpdGNoKHJlLmZXcmFwPWdlPj4zJjEsSGU9Z2U+'@; put 'PjQmNyl7Y2FzZSAwOnJlLnZhbGlnbj0idG9wIjticmVhaztjYXNlIDE6cmUudmFsaWduPSJjZW50ZXIiO2JyZWFrO2Nhc2UgMjpyZS52YWxpZ249ImJvdHRvbSJ9cmV0dXJuIHJlLmZKdXN0TGFzdD1nZT4+NyYxLHJlLnRyb3Q9Z2U+PjgmMjU1LHJlLmNJbmRlbnQ9Z2U+PjE2JjE1LHJlLmZT'@; put 'aHJpbmtUb0ZpdD1nZT4+MjAmMSxyZS5pUmVhZE9yZGVyPWdlPj4yMiYyLHJlLmZBdHJOdW09Z2U+PjI2JjEscmUuZkF0ckZudD1nZT4+MjcmMSxyZS5mQXRyQWxjPWdlPj4yOCYxLHJlLmZBdHJCZHI9Z2U+PjI5JjEscmUuZkF0clBhdD1nZT4+MzAmMSxyZS5mQXRyUHJvdD1nZT4+MzEmMSxy'@; put 'ZS5kZ0xlZnQ9MTUmX2UscmUuZGdSaWdodD1fZT4+NCYxNSxyZS5kZ1RvcD1fZT4+OCYxNSxyZS5kZ0JvdHRvbT1fZT4+MTImMTUscmUuaWN2TGVmdD1fZT4+MTYmMTI3LHJlLmljdlJpZ2h0PV9lPj4yMyYxMjcscmUuZ3JiaXREaWFnPV9lPj4zMCYzLHJlLmljdlRvcD0xMjcmdmUscmUuaWN2'@; put 'Qm90dG9tPXZlPj43JjEyNyxyZS5pY3ZEaWFnPXZlPj4xNCYxMjcscmUuZGdEaWFnPXZlPj4yMSYxNSxyZS5pY3ZGb3JlPTEyNyZTZSxyZS5pY3ZCYWNrPVNlPj43JjEyNyxyZS5mc3hCdXR0b249U2U+PjE0JjEscmV9KHksMCwwLEwpLFF9fSwyMjU6e246IkludGVyZmFjZUhkciIsZjpmdW5j'@; put 'dGlvbiBoMCh5LFApe3JldHVybiAwPT09UHx8eS5yZWFkX3NoaWZ0KDIpLDEyMDB9fSwyMjY6e246IkludGVyZmFjZUVuZCIsZjpQZH0sMjI3OntuOiJTWFZTIn0sMjI5OntuOiJNZXJnZUNlbGxzIixmOmZ1bmN0aW9uIFp3KHksUCl7Zm9yKHZhciBMPVtdLFE9eS5yZWFkX3NoaWZ0KDIpO1Et'@; put 'LTspTC5wdXNoKEtoKHkpKTtyZXR1cm4gTH19LDIzMzp7bjoiQmtIaW0ifSwyMzU6e246Ik1zb0RyYXdpbmdHcm91cCJ9LDIzNjp7bjoiTXNvRHJhd2luZyJ9LDIzNzp7bjoiTXNvRHJhd2luZ1NlbGVjdGlvbiJ9LDIzOTp7bjoiUGhvbmV0aWNJbmZvIn0sMjQwOntuOiJTeFJ1bGUifSwyNDE6'@; put 'e246IlNYRXgifSwyNDI6e246IlN4RmlsdCJ9LDI0NDp7bjoiU3hEWEYifSwyNDU6e246IlN4SXRtIn0sMjQ2OntuOiJTeE5hbWUifSwyNDc6e246IlN4U2VsZWN0In0sMjQ4OntuOiJTWFBhaXIifSwyNDk6e246IlN4Rm1sYSJ9LDI1MTp7bjoiU3hGb3JtYXQifSwyNTI6e246IlNTVCIsZjpm'@; put 'dW5jdGlvbiBObCh5LFApe2Zvcih2YXIgTD15LmwrUCxRPXkucmVhZF9zaGlmdCg0KSxyZT15LnJlYWRfc2hpZnQoNCksZ2U9W10sX2U9MDtfZSE9cmUmJnkubDxMOysrX2UpZ2UucHVzaChnbSh5KSk7cmV0dXJuIGdlLkNvdW50PVEsZ2UuVW5pcXVlPXJlLGdlfX0sMjUzOntuOiJMYWJlbFNz'@; put 'dCIsZjpmdW5jdGlvbiBVVCh5KXt2YXIgUD1MdSh5KTtyZXR1cm4gUC5pc3N0PXkucmVhZF9zaGlmdCg0KSxQfX0sMjU1OntuOiJFeHRTU1QiLGY6ZnVuY3Rpb24ga2UoeSxQKXt2YXIgTD17fTtyZXR1cm4gTC5kc3N0PXkucmVhZF9zaGlmdCgyKSx5LmwrPVAtMixMfX0sMjU2OntuOiJTWFZE'@; put 'RXgifSwyNTk6e246IlNYRm9ybXVsYSJ9LDI5MDp7bjoiU1hEQkV4In0sMzExOntuOiJSUkRJbnNEZWwifSwzMTI6e246IlJSREhlYWQifSwzMTU6e246IlJSRENoZ0NlbGwifSwzMTc6e246IlJSVGFiSWQiLGY6SDF9LDMxODp7bjoiUlJEUmVuU2hlZXQifSwzMTk6e246IlJSU29ydCJ9LDMy'@; put 'MDp7bjoiUlJETW92ZSJ9LDMzMDp7bjoiUlJGb3JtYXQifSwzMzE6e246IlJSQXV0b0ZtdCJ9LDMzMzp7bjoiUlJJbnNlcnRTaCJ9LDMzNDp7bjoiUlJETW92ZUJlZ2luIn0sMzM1OntuOiJSUkRNb3ZlRW5kIn0sMzM2OntuOiJSUkRJbnNEZWxCZWdpbiJ9LDMzNzp7bjoiUlJESW5zRGVsRW5k'@; put 'In0sMzM4OntuOiJSUkRDb25mbGljdCJ9LDMzOTp7bjoiUlJERGVmTmFtZSJ9LDM0MDp7bjoiUlJEUnN0RXR4cCJ9LDM1MTp7bjoiTFJuZyJ9LDM1Mjp7bjoiVXNlc0VMRnMiLGY6U299LDM1Mzp7bjoiRFNGIixmOlBkfSw0MDE6e246IkNVc3IifSw0MDI6e246IkNiVXNyIn0sNDAzOntuOiJV'@; put 'c3JJbmZvIn0sNDA0OntuOiJVc3JFeGNsIn0sNDA1OntuOiJGaWxlTG9jayJ9LDQwNjp7bjoiUlJESW5mbyJ9LDQwNzp7bjoiQkNVc3JzIn0sNDA4OntuOiJVc3JDaGsifSw0MjU6e246IlVzZXJCVmlldyJ9LDQyNjp7bjoiVXNlclNWaWV3QmVnaW4ifSw0Mjc6e246IlVzZXJTVmlld0VuZCJ9'@; put 'LDQyODp7bjoiUlJEVXNlclZpZXcifSw0Mjk6e246IlFzaSJ9LDQzMDp7bjoiU3VwQm9vayIsZjpmdW5jdGlvbiBxVCh5LFAsTCl7dmFyIFE9eS5sK1AscmU9eS5yZWFkX3NoaWZ0KDIpLGdlPXkucmVhZF9zaGlmdCgyKTtpZihMLnNiY2NoPWdlLDEwMjU9PWdlfHwxNDg0OT09Z2UpcmV0dXJu'@; put 'W2dlLHJlXTtpZihnZTwxfHxnZT4yNTUpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIFN1cEJvb2sgdHlwZTogIitnZSk7Zm9yKHZhciBfZT1IZCh5LGdlKSx2ZT1bXTtRPnkubDspdmUucHVzaChOMih5KSk7cmV0dXJuW2dlLHJlLF9lLHZlXX19LDQzMTp7bjoiUHJvdDRSZXYiLGY6U299'@; put 'LDQzMjp7bjoiQ29uZEZtdCJ9LDQzMzp7bjoiQ0YifSw0MzQ6e246IkRWYWwifSw0Mzc6e246IkRDb25CaW4ifSw0Mzg6e246IlR4TyIsZjpmdW5jdGlvbiBKVCh5LFAsTCl7dmFyIFE9eS5sLHJlPSIiLGdlPS0xO3RyeXt5LmwrPTQsLTE9PVswLDUsNywxMSwxMiwxNF0uaW5kZXhPZigoTC5s'@; put 'YXN0b2JqfHx7Y21vOlswLDBdfSkuY21vWzFdKT95LmwrPTY6ZnVuY3Rpb24gRHUoeSl7dmFyIFA9eS5yZWFkX3NoaWZ0KDEpO3kubCsrO3ZhciBMPXkucmVhZF9zaGlmdCgyKTt5LmwrPTJ9KHkpO3ZhciBTZT15LnJlYWRfc2hpZnQoMik7eS5yZWFkX3NoaWZ0KDIpLGdlPXkucmVhZF9zaGlm'@; put 'dCgyKTt2YXIgQmU9eS5yZWFkX3NoaWZ0KDIpO3kubCs9QmU7Zm9yKHZhciBHZT0xO0dlPHkubGVucy5sZW5ndGgtMTsrK0dlKXtpZih5LmwtUSE9eS5sZW5zW0dlXSl0aHJvdyBuZXcgRXJyb3IoIlR4TzogYmFkIGNvbnRpbnVlIHJlY29yZCIpO3ZhciBudD15W3kubF07aWYoKHJlKz1IZCh5'@; put 'LHkubGVuc1tHZSsxXS15LmxlbnNbR2VdLTEpKS5sZW5ndGg+PShudD9TZToyKlNlKSlicmVha31pZihyZS5sZW5ndGghPT1TZSYmcmUubGVuZ3RoIT09MipTZSl0aHJvdyBuZXcgRXJyb3IoImNjaFRleHQ6ICIrU2UrIiAhPSAiK3JlLmxlbmd0aCk7cmV0dXJuIHkubD1RK1Ase3Q6cmUsaWZu'@; put 'dDpnZX19Y2F0Y2h7cmV0dXJuIHkubD1RK1Ase3Q6cmUsaWZudDpnZX19fX0sNDM5OntuOiJSZWZyZXNoQWxsIixmOlNvfSw0NDA6e246IkhMaW5rIixmOmZ1bmN0aW9uIGV1KHksUCl7dmFyIEw9S2goeSk7eS5sKz0xNjt2YXIgUT1mdW5jdGlvbiBJdSh5LFApe3ZhciBMPXkubCtQLFE9eS5y'@; put 'ZWFkX3NoaWZ0KDQpO2lmKDIhPT1RKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHN0cmVhbVZlcnNpb246ICIrUSk7dmFyIHJlPXkucmVhZF9zaGlmdCgyKTt5LmwrPTI7dmFyIGdlLF9lLHZlLFNlLEJlLEdlLEhlPSIiOzE2JnJlJiYoZ2U9QTQoeSkpLDEyOCZyZSYmKF9lPUE0KHkp'@; put 'KSwyNTc9PSgyNTcmcmUpJiYodmU9QTQoeSkpLDE9PSgyNTcmcmUpJiYoU2U9ZnVuY3Rpb24gdjMoeSxQKXt2YXIgTD15LnJlYWRfc2hpZnQoMTYpO3N3aXRjaChMKXtjYXNlImUwYzllYTc5ZjliYWNlMTE4YzgyMDBhYTAwNGJhOTBiIjpyZXR1cm4gZnVuY3Rpb24gbTMoeSl7dmFyIFA9eS5y'@; put 'ZWFkX3NoaWZ0KDQpLEw9eS5sLFE9ITE7UD4yNCYmKHkubCs9UC0yNCwiNzk1ODgxZjQzYjFkN2Y0OGFmMmM4MjVkYzQ4NTI3NjMiPT09eS5yZWFkX3NoaWZ0KDE2KSYmKFE9ITApLHkubD1MKTt2YXIgcmU9eS5yZWFkX3NoaWZ0KChRP1AtMjQ6UCk+PjEsInV0ZjE2bGUiKS5yZXBsYWNlKHYs'@; put 'IiIpO3JldHVybiBRJiYoeS5sKz0yNCkscmV9KHkpO2Nhc2UiMDMwMzAwMDAwMDAwMDAwMGMwMDAwMDAwMDAwMDAwNDYiOnJldHVybiBmdW5jdGlvbiBmbCh5KXtmb3IodmFyIFA9eS5yZWFkX3NoaWZ0KDIpLEw9IiI7UC0tID4wOylMKz0iLi4vIjt2YXIgUT15LnJlYWRfc2hpZnQoMCwibHBz'@; put 'dHItYW5zaSIpO2lmKHkubCs9Miw1NzAwNSE9eS5yZWFkX3NoaWZ0KDIpKXRocm93IG5ldyBFcnJvcigiQmFkIEZpbGVNb25pa2VyIik7aWYoMD09PXkucmVhZF9zaGlmdCg0KSlyZXR1cm4gTCtRLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgZ2U9eS5yZWFkX3NoaWZ0KDQpO2lmKDMhPXkucmVh'@; put 'ZF9zaGlmdCgyKSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBGaWxlTW9uaWtlciIpO3JldHVybiBMK3kucmVhZF9zaGlmdChnZT4+MSwidXRmMTZsZSIpLnJlcGxhY2UodiwiIil9KHkpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBNb25pa2VyICIrTCl9fSh5KSksOCZyZSYm'@; put 'KEhlPUE0KHkpKSwzMiZyZSYmKEJlPXkucmVhZF9zaGlmdCgxNikpLDY0JnJlJiYoR2U9U2MoeSkpLHkubD1MO3ZhciBudD1fZXx8dmV8fFNlfHwiIjtudCYmSGUmJihudCs9IiMiK0hlKSxudHx8KG50PSIjIitIZSksMiZyZSYmIi8iPT1udC5jaGFyQXQoMCkmJiIvIiE9bnQuY2hhckF0KDEp'@; put 'JiYobnQ9ImZpbGU6Ly8iK250KTt2YXIgZHQ9e1RhcmdldDpudH07cmV0dXJuIEJlJiYoZHQuZ3VpZD1CZSksR2UmJihkdC50aW1lPUdlKSxnZSYmKGR0LlRvb2x0aXA9Z2UpLGR0fSh5LFAtMjQpO3JldHVybltMLFFdfX0sNDQxOntuOiJMZWwifSw0NDI6e246IkNvZGVOYW1lIixmOk4yfSw0'@; put 'NDM6e246IlNYRkRCVHlwZSJ9LDQ0NDp7bjoiUHJvdDRSZXZQYXNzIixmOmhsfSw0NDU6e246Ik9iTm9NYWNyb3MifSw0NDY6e246IkR2In0sNDQ4OntuOiJFeGNlbDlGaWxlIixmOlBkfSw0NDk6e246IlJlY2FsY0lkIixmOmZ1bmN0aW9uIGYwKHkpe3JldHVybiB5LnJlYWRfc2hpZnQoMiks'@; put 'eS5yZWFkX3NoaWZ0KDQpfSxyOjJ9LDQ1MDp7bjoiRW50RXhVMiIsZjpQZH0sNTEyOntuOiJEaW1lbnNpb25zIixmOkJ0fSw1MTM6e246IkJsYW5rIixmOnF3fSw1MTU6e246Ik51bWJlciIsZjpmdW5jdGlvbiBOdyh5LFAsTCl7TC5iaWZmZ3Vlc3MmJjI9PUwuYmlmZiYmKEwuYmlmZj01KTt2'@; put 'YXIgUT1MdSh5KSxyZT1tYSh5KTtyZXR1cm4gUS52YWw9cmUsUX19LDUxNjp7bjoiTGFiZWwiLGY6ZnVuY3Rpb24gWVQoeSxQLEwpe0wuYmlmZmd1ZXNzJiYyPT1MLmJpZmYmJihMLmJpZmY9NSk7dmFyIHJlPUx1KHkpOzI9PUwuYmlmZiYmeS5sKys7dmFyIGdlPU4yKHksMCxMKTtyZXR1cm4g'@; put 'cmUudmFsPWdlLHJlfX0sNTE3OntuOiJCb29sRXJyIixmOlZjfSw1MTk6e246IlN0cmluZyIsZjppRH0sNTIwOntuOiJSb3ciLGY6ZnVuY3Rpb24gJGUoeSl7dmFyIFA9e307UC5yPXkucmVhZF9zaGlmdCgyKSxQLmM9eS5yZWFkX3NoaWZ0KDIpLFAuY250PXkucmVhZF9zaGlmdCgyKS1QLmM7'@; put 'dmFyIEw9eS5yZWFkX3NoaWZ0KDIpO3kubCs9NDt2YXIgUT15LnJlYWRfc2hpZnQoMSk7eS5sKz0xO3ZhciByZT15LnJlYWRfc2hpZnQoMik7cmV0dXJuIFAuaXhmZT00MDk1JnJlLDcmUSYmKFAubGV2ZWw9NyZRKSwzMiZRJiYoUC5oaWRkZW49ITApLDY0JlEmJihQLmhwdD1MLzIwKSxQfX0s'@; put 'NTIzOntuOiJJbmRleCJ9LDU0NTp7bjoiQXJyYXkiLGY6and9LDU0OTp7bjoiRGVmYXVsdFJvd0hlaWdodCIsZjpXMH0sNTY2OntuOiJUYWJsZSJ9LDU3NDp7bjoiV2luZG93MiIsZjpmdW5jdGlvbiBsWih5LFAsTCl7aWYoTCYmTC5iaWZmPj0yJiZMLmJpZmY8NSlyZXR1cm57fTt2YXIgUT15'@; put 'LnJlYWRfc2hpZnQoMik7cmV0dXJue1JUTDo2NCZRLGdyaWQ6ISEoMiZRKSxmcm96ZW46ISEoOCZRKX19fSw2Mzg6e246IlJLIixmOmZ1bmN0aW9uIE1jKHkpe3ZhciBQPXkucmVhZF9zaGlmdCgyKSxMPXkucmVhZF9zaGlmdCgyKSxRPWc5KHkpO3JldHVybntyOlAsYzpMLGl4ZmU6UVswXSxy'@; put 'a251bTpRWzFdfX19LDY1OTp7bjoiU3R5bGUiLGY6ZnVuY3Rpb24gJFQoeSxQLEwpe3JldHVybiB5LmwrPVAse319fSwxMDQ4OntuOiJCaWdOYW1lIn0sMTA1NDp7bjoiRm9ybWF0IixmOmZ1bmN0aW9uIEdUKHksUCxMKXtyZXR1cm5beS5yZWFkX3NoaWZ0KDIpLFYyKHksMCxMKV19fSwxMDg0'@; put 'OntuOiJDb250aW51ZUJpZ05hbWUifSwxMjEyOntuOiJTaHJGbWxhIixmOmZ1bmN0aW9uIEM5KHksUCxMKXt2YXIgUT1fbSh5KTt5LmwrKzt2YXIgcmU9eS5yZWFkX3NoaWZ0KDEpO3JldHVybltpNSh5LFAtPTgsTCkscmUsUV19fSwyMDQ4OntuOiJITGlua1Rvb2x0aXAiLGY6ZnVuY3Rpb24g'@; put 'UWEoeSxQKXt5LnJlYWRfc2hpZnQoMik7dmFyIEw9S2goeSksUT15LnJlYWRfc2hpZnQoKFAtMTApLzIsImRiY3MtY29udCIpO3JldHVybltMLFE9US5yZXBsYWNlKHYsIiIpXX19LDIwNDk6e246IldlYlB1YiJ9LDIwNTA6e246IlFzaVNYVGFnIn0sMjA1MTp7bjoiREJRdWVyeUV4dCJ9LDIw'@; put 'NTI6e246IkV4dFN0cmluZyJ9LDIwNTM6e246IlR4dFFyeSJ9LDIwNTQ6e246IlFzaXIifSwyMDU1OntuOiJRc2lmIn0sMjA1Njp7bjoiUlJEVFFTSUYifSwyMDU3OntuOiJCT0YiLGY6UnV9LDIwNTg6e246Ik9sZURiQ29ubiJ9LDIwNTk6e246IldPcHQifSwyMDYwOntuOiJTWFZpZXdFeCJ9'@; put 'LDIwNjE6e246IlNYVEgifSwyMDYyOntuOiJTWFBJRXgifSwyMDYzOntuOiJTWFZEVEV4In0sMjA2NDp7bjoiU1hWaWV3RXg5In0sMjA2Njp7bjoiQ29udGludWVGcnQifSwyMDY3OntuOiJSZWFsVGltZURhdGEifSwyMTI4OntuOiJDaGFydEZydEluZm8ifSwyMTI5OntuOiJGcnRXcmFwcGVy'@; put 'In0sMjEzMDp7bjoiU3RhcnRCbG9jayJ9LDIxMzE6e246IkVuZEJsb2NrIn0sMjEzMjp7bjoiU3RhcnRPYmplY3QifSwyMTMzOntuOiJFbmRPYmplY3QifSwyMTM0OntuOiJDYXRMYWIifSwyMTM1OntuOiJZTXVsdCJ9LDIxMzY6e246IlNYVmlld0xpbmsifSwyMTM3OntuOiJQaXZvdENoYXJ0'@; put 'Qml0cyJ9LDIxMzg6e246IkZydEZvbnRMaXN0In0sMjE0Njp7bjoiU2hlZXRFeHQifSwyMTQ3OntuOiJCb29rRXh0IixyOjEyfSwyMTQ4OntuOiJTWEFkZGwifSwyMTQ5OntuOiJDckVyciJ9LDIxNTA6e246IkhGUGljdHVyZSJ9LDIxNTE6e246IkZlYXRIZHIiLGY6UGR9LDIxNTI6e246IkZl'@; put 'YXQifSwyMTU0OntuOiJEYXRhTGFiRXh0In0sMjE1NTp7bjoiRGF0YUxhYkV4dENvbnRlbnRzIn0sMjE1Njp7bjoiQ2VsbFdhdGNoIn0sMjE2MTp7bjoiRmVhdEhkcjExIn0sMjE2Mjp7bjoiRmVhdHVyZTExIn0sMjE2NDp7bjoiRHJvcERvd25PYmpJZHMifSwyMTY1OntuOiJDb250aW51ZUZy'@; put 'dDExIn0sMjE2Njp7bjoiRENvbm4ifSwyMTY3OntuOiJMaXN0MTIifSwyMTY4OntuOiJGZWF0dXJlMTIifSwyMTY5OntuOiJDb25kRm10MTIifSwyMTcwOntuOiJDRjEyIn0sMjE3MTp7bjoiQ0ZFeCJ9LDIxNzI6e246IlhGQ1JDIixmOmZ1bmN0aW9uIHhtKHkpe3kubCs9Mjt2YXIgUD17Y3hm'@; put 'czowLGNyYzowfTtyZXR1cm4gUC5jeGZzPXkucmVhZF9zaGlmdCgyKSxQLmNyYz15LnJlYWRfc2hpZnQoNCksUH0scjoxMn0sMjE3Mzp7bjoiWEZFeHQiLGY6ZnVuY3Rpb24gekQoeSxQKXt5LmwrPTI7dmFyIFE9eS5yZWFkX3NoaWZ0KDIpO3kubCs9Mjtmb3IodmFyIHJlPXkucmVhZF9zaGlm'@; put 'dCgyKSxnZT1bXTtyZS0tID4wOylnZS5wdXNoKGpEKHkpKTtyZXR1cm57aXhmZTpRLGV4dDpnZX19LHI6MTJ9LDIxNzQ6e246IkF1dG9GaWx0ZXIxMiJ9LDIxNzU6e246IkNvbnRpbnVlRnJ0MTIifSwyMTgwOntuOiJNRFRJbmZvIn0sMjE4MTp7bjoiTURYU3RyIn0sMjE4Mjp7bjoiTURYVHVw'@; put 'bGUifSwyMTgzOntuOiJNRFhTZXQifSwyMTg0OntuOiJNRFhQcm9wIn0sMjE4NTp7bjoiTURYS1BJIn0sMjE4Njp7bjoiTURCIn0sMjE4Nzp7bjoiUExWIn0sMjE4ODp7bjoiQ29tcGF0MTIiLGY6U28scjoxMn0sMjE4OTp7bjoiRFhGIn0sMjE5MDp7bjoiVGFibGVTdHlsZXMiLHI6MTJ9LDIx'@; put 'OTE6e246IlRhYmxlU3R5bGUifSwyMTkyOntuOiJUYWJsZVN0eWxlRWxlbWVudCJ9LDIxOTQ6e246IlN0eWxlRXh0In0sMjE5NTp7bjoiTmFtZVB1Ymxpc2gifSwyMTk2OntuOiJOYW1lQ210IixmOmZ1bmN0aW9uIEJ3KHksUCxMKXtpZighKEwuYmlmZjw4KSl7dmFyIFE9eS5yZWFkX3NoaWZ0'@; put 'KDIpLHJlPXkucmVhZF9zaGlmdCgyKTtyZXR1cm5bSGQoeSxRLEwpLEhkKHkscmUsTCldfXkubCs9UH0scjoxMn0sMjE5Nzp7bjoiU29ydERhdGEifSwyMTk4OntuOiJUaGVtZSIsZjpmdW5jdGlvbiAkbSh5LFAsTCl7dmFyIFE9eS5sK1A7aWYoMTI0MjI2IT09eS5yZWFkX3NoaWZ0KDQpKXtp'@; put 'ZighTC5jZWxsU3R5bGVzKXJldHVybiB2b2lkKHkubD1RKTt2YXIgX2UsZ2U9eS5zbGljZSh5LmwpO3kubD1RO3RyeXtfZT14bihnZSx7dHlwZToiYXJyYXkifSl9Y2F0Y2h7cmV0dXJufXZhciB2ZT1RdChfZSwidGhlbWUvdGhlbWUvdGhlbWUxLnhtbCIsITApO2lmKHZlKXJldHVybiBHbSh2'@; put 'ZSxMKX19LHI6MTJ9LDIxOTk6e246IkdVSURUeXBlTGliIn0sMjIwMDp7bjoiRm5HcnAxMiJ9LDIyMDE6e246Ik5hbWVGbkdycDEyIn0sMjIwMjp7bjoiTVRSU2V0dGluZ3MiLGY6ZnVuY3Rpb24gencoeSl7cmV0dXJuWzAhPT15LnJlYWRfc2hpZnQoNCksMCE9PXkucmVhZF9zaGlmdCg0KSx5'@; put 'LnJlYWRfc2hpZnQoNCldfSxyOjEyfSwyMjAzOntuOiJDb21wcmVzc1BpY3R1cmVzIixmOlBkfSwyMjA0OntuOiJIZWFkZXJGb290ZXIifSwyMjA1OntuOiJDcnRMYXlvdXQxMiJ9LDIyMDY6e246IkNydE1sRnJ0In0sMjIwNzp7bjoiQ3J0TWxGcnRDb250aW51ZSJ9LDIyMTE6e246IkZvcmNl'@; put 'RnVsbENhbGN1bGF0aW9uIixmOmZ1bmN0aW9uIEx0KHkpe3ZhciBQPWZ1bmN0aW9uIGY5KHkpe3ZhciBQPXkucmVhZF9zaGlmdCgyKSxMPXkucmVhZF9zaGlmdCgyKTtyZXR1cm4geS5sKz04LHt0eXBlOlAsZmxhZ3M6TH19KHkpO2lmKDIyMTEhPVAudHlwZSl0aHJvdyBuZXcgRXJyb3IoIklu'@; put 'dmFsaWQgRnV0dXJlIFJlY29yZCAiK1AudHlwZSk7cmV0dXJuIDAhPT15LnJlYWRfc2hpZnQoNCl9fSwyMjEyOntuOiJTaGFwZVByb3BzU3RyZWFtIn0sMjIxMzp7bjoiVGV4dFByb3BzU3RyZWFtIn0sMjIxNDp7bjoiUmljaFRleHRTdHJlYW0ifSwyMjE1OntuOiJDcnRMYXlvdXQxMkEifSw0'@; put 'MDk3OntuOiJVbml0cyJ9LDQwOTg6e246IkNoYXJ0In0sNDA5OTp7bjoiU2VyaWVzIn0sNDEwMjp7bjoiRGF0YUZvcm1hdCJ9LDQxMDM6e246IkxpbmVGb3JtYXQifSw0MTA1OntuOiJNYXJrZXJGb3JtYXQifSw0MTA2OntuOiJBcmVhRm9ybWF0In0sNDEwNzp7bjoiUGllRm9ybWF0In0sNDEw'@; put 'ODp7bjoiQXR0YWNoZWRMYWJlbCJ9LDQxMDk6e246IlNlcmllc1RleHQifSw0MTE2OntuOiJDaGFydEZvcm1hdCJ9LDQxMTc6e246IkxlZ2VuZCJ9LDQxMTg6e246IlNlcmllc0xpc3QifSw0MTE5OntuOiJCYXIifSw0MTIwOntuOiJMaW5lIn0sNDEyMTp7bjoiUGllIn0sNDEyMjp7bjoiQXJl'@; put 'YSJ9LDQxMjM6e246IlNjYXR0ZXIifSw0MTI0OntuOiJDcnRMaW5lIn0sNDEyNTp7bjoiQXhpcyJ9LDQxMjY6e246IlRpY2sifSw0MTI3OntuOiJWYWx1ZVJhbmdlIn0sNDEyODp7bjoiQ2F0U2VyUmFuZ2UifSw0MTI5OntuOiJBeGlzTGluZSJ9LDQxMzA6e246IkNydExpbmsifSw0MTMyOntu'@; put 'OiJEZWZhdWx0VGV4dCJ9LDQxMzM6e246IlRleHQifSw0MTM0OntuOiJGb250WCIsZjpobH0sNDEzNTp7bjoiT2JqZWN0TGluayJ9LDQxNDY6e246IkZyYW1lIn0sNDE0Nzp7bjoiQmVnaW4ifSw0MTQ4OntuOiJFbmQifSw0MTQ5OntuOiJQbG90QXJlYSJ9LDQxNTQ6e246IkNoYXJ0M2QifSw0'@; put 'MTU2OntuOiJQaWNGIn0sNDE1Nzp7bjoiRHJvcEJhciJ9LDQxNTg6e246IlJhZGFyIn0sNDE1OTp7bjoiU3VyZiJ9LDQxNjA6e246IlJhZGFyQXJlYSJ9LDQxNjE6e246IkF4aXNQYXJlbnQifSw0MTYzOntuOiJMZWdlbmRFeGNlcHRpb24ifSw0MTY0OntuOiJTaHRQcm9wcyIsZjpmdW5jdGlv'@; put 'biBBbSh5LFAsTCl7dmFyIFE9e2FyZWE6ITF9O2lmKDUhPUwuYmlmZilyZXR1cm4geS5sKz1QLFE7dmFyIHJlPXkucmVhZF9zaGlmdCgxKTtyZXR1cm4geS5sKz0zLDE2JnJlJiYoUS5hcmVhPSEwKSxRfX0sNDE2NTp7bjoiU2VyVG9DcnQifSw0MTY2OntuOiJBeGVzVXNlZCJ9LDQxNjg6e246'@; put 'IlNCYXNlUmVmIn0sNDE3MDp7bjoiU2VyUGFyZW50In0sNDE3MTp7bjoiU2VyQXV4VHJlbmQifSw0MTc0OntuOiJJRm10UmVjb3JkIn0sNDE3NTp7bjoiUG9zIn0sNDE3Njp7bjoiQWxSdW5zIn0sNDE3Nzp7bjoiQlJBSSJ9LDQxODc6e246IlNlckF1eEVyckJhciJ9LDQxODg6e246IkNscnRD'@; put 'bGllbnQiLGY6ZnVuY3Rpb24gbkQoeSl7Zm9yKHZhciBQPXkucmVhZF9zaGlmdCgyKSxMPVtdO1AtLSA+MDspTC5wdXNoKGg5KHkpKTtyZXR1cm4gTH19LDQxODk6e246IlNlckZtdCJ9LDQxOTE6e246IkNoYXJ0M0RCYXJTaGFwZSJ9LDQxOTI6e246IkZiaSJ9LDQxOTM6e246IkJvcFBvcCJ9'@; put 'LDQxOTQ6e246IkF4Y0V4dCJ9LDQxOTU6e246IkRhdCJ9LDQxOTY6e246IlBsb3RHcm93dGgifSw0MTk3OntuOiJTSUluZGV4In0sNDE5ODp7bjoiR2VsRnJhbWUifSw0MTk5OntuOiJCb3BQb3BDdXN0b20ifSw0MjAwOntuOiJGYmkyIn0sMDp7bjoiRGltZW5zaW9ucyIsZjpCdH0sMTp7bjoi'@; put 'QklGRjJCTEFOSyJ9LDI6e246IkJJRkYySU5UIixmOmZ1bmN0aW9uIHNEKHkpe3ZhciBQPUx1KHkpOysreS5sO3ZhciBMPXkucmVhZF9zaGlmdCgyKTtyZXR1cm4gUC50PSJuIixQLnZhbD1MLFB9fSwzOntuOiJCSUZGMk5VTSIsZjpmdW5jdGlvbiB4OSh5KXt2YXIgUD1MdSh5KTsrK3kubDt2'@; put 'YXIgTD1tYSh5KTtyZXR1cm4gUC50PSJuIixQLnZhbD1MLFB9fSw0OntuOiJCSUZGMlNUUiIsZjpmdW5jdGlvbiB1Wih5LFAsTCl7TC5iaWZmZ3Vlc3MmJjU9PUwuYmlmZiYmKEwuYmlmZj0yKTt2YXIgUT1MdSh5KTsrK3kubDt2YXIgcmU9VjIoeSwwLEwpO3JldHVybiBRLnQ9InN0ciIsUS52'@; put 'YWw9cmUsUX19LDU6e246IkJvb2xFcnIiLGY6VmN9LDc6e246IlN0cmluZyIsZjpmdW5jdGlvbiBoWih5KXt2YXIgUD15LnJlYWRfc2hpZnQoMSk7cmV0dXJuIDA9PT1QPyh5LmwrKywiIik6eS5yZWFkX3NoaWZ0KFAsInNiY3MtY29udCIpfX0sODp7bjoiQklGRjJST1cifSw5OntuOiJCT0Yi'@; put 'LGY6UnV9LDExOntuOiJJbmRleCJ9LDIyOntuOiJFeHRlcm5Db3VudCIsZjpobH0sMzA6e246IkJJRkYyRk9STUFUIixmOlRzfSwzMTp7bjoiQklGRjJGTVRDTlQifSwzMjp7bjoiQklGRjJDT0xJTkZPIn0sMzM6e246IkFycmF5IixmOmp3fSwzNjp7bjoiQ09MV0lEVEgifSwzNzp7bjoiRGVm'@; put 'YXVsdFJvd0hlaWdodCIsZjpXMH0sNTA6e246IkJJRkYyRk9OVFhUUkEiLGY6ZnVuY3Rpb24gZlooeSxQKXt5LmwrPTYseS5sKz0yLHkubCs9MSx5LmwrPTMseS5sKz0xLHkubCs9UC0xM319LDYyOntuOiJCSUZGMldJTkRPVzIifSw1Mjp7bjoiRERFT2JqTmFtZSJ9LDY3OntuOiJCSUZGMlhG'@; put 'In0sNjg6e246IkJJRkYyWEZJTkRFWCIsZjpobH0sNjk6e246IkJJRkYyRk9OVENMUiJ9LDg2OntuOiJCSUZGNEZNVENOVCJ9LDEyNjp7bjoiUksifSwxMjc6e246IkltRGF0YSIsZjpmdW5jdGlvbiBvRCh5KXt2YXIgUD15LnJlYWRfc2hpZnQoMiksTD15LnJlYWRfc2hpZnQoMiksUT15LnJl'@; put 'YWRfc2hpZnQoNCkscmU9e2ZtdDpQLGVudjpMLGxlbjpRLGRhdGE6eS5zbGljZSh5LmwseS5sK1EpfTtyZXR1cm4geS5sKz1RLHJlfX0sMTM1OntuOiJBZGRpbiJ9LDEzNjp7bjoiRWRnIn0sMTM3OntuOiJQdWIifSwxNDU6e246IlN1YiJ9LDE0ODp7bjoiTEhSZWNvcmQifSwxNDk6e246IkxI'@; put 'TkdyYXBoIn0sMTUwOntuOiJTb3VuZCJ9LDE2OTp7bjoiQ29vcmRMaXN0In0sMTcxOntuOiJHQ1cifSwxODg6e246IlNockZtbGEifSwxOTE6e246IlRvb2xiYXJIZHIifSwxOTI6e246IlRvb2xiYXJFbmQifSwxOTQ6e246IkFkZE1lbnUifSwxOTU6e246IkRlbE1lbnUifSwyMTQ6e246IlJT'@; put 'dHJpbmciLGY6ZnVuY3Rpb24gWHcoeSxQLEwpe3ZhciBRPXkubCtQLHJlPUx1KHkpLGdlPXkucmVhZF9zaGlmdCgyKSxfZT1IZCh5LGdlLEwpO3JldHVybiB5Lmw9USxyZS50PSJzdHIiLHJlLnZhbD1fZSxyZX19LDIyMzp7bjoiVUREZXNjIn0sMjM0OntuOiJUYWJJZENvbmYifSwzNTQ6e246'@; put 'IlhMNU1vZGlmeSJ9LDQyMTp7bjoiRmlsZVNoYXJpbmcyIn0sNTE4OntuOiJGb3JtdWxhIixmOnozfSw1MjE6e246IkJPRiIsZjpSdX0sNTM2OntuOiJMYmwiLGY6Vnd9LDU0Nzp7bjoiRXh0ZXJuTmFtZSIsZjp5OX0sNTYxOntuOiJGb250In0sNTc5OntuOiJCSUZGM1hGIn0sMTAzMDp7bjoi'@; put 'Rm9ybXVsYSIsZjp6M30sMTAzMzp7bjoiQk9GIixmOlJ1fSwxMDkxOntuOiJCSUZGNFhGIn0sMjE1Nzp7bjoiRmVhdEluZm8ifSwyMTYzOntuOiJGZWF0SW5mbzExIn0sMjE3Nzp7bjoiU1hBZGRsMTIifSwyMjQwOntuOiJBdXRvV2ViUHViIn0sMjI0MTp7bjoiTGlzdE9iaiJ9LDIyNDI6e246'@; put 'Ikxpc3RGaWVsZCJ9LDIyNDM6e246Ikxpc3REViJ9LDIyNDQ6e246Ikxpc3RDb25kRm10In0sMjI0NTp7bjoiTGlzdENGIn0sMjI0Njp7bjoiRk1RcnkifSwyMjQ3OntuOiJGTVNRcnkifSwyMjQ4OntuOiJQTFYifSwyMjQ5OntuOiJMbkV4dCJ9LDIyNTA6e246Ik1rckV4dCJ9LDIyNTE6e246'@; put 'IkNydENvb3B0In0sMjI2Mjp7bjoiRlJUQXJjaElkJCIscjoxMn0sMjkyODI6e319LFNNPVBlKFgwLCJuIik7ZnVuY3Rpb24gQ2koeSxQLEwsUSl7dmFyIHJlPStQfHwrU01bUF07aWYoIWlzTmFOKHJlKSl7dmFyIGdlPVF8fChMfHxbXSkubGVuZ3RofHwwLF9lPXkubmV4dCg0KTtfZS53cml0'@; put 'ZV9zaGlmdCgyLHJlKSxfZS53cml0ZV9zaGlmdCgyLGdlKSxnZT4wJiZOaChMKSYmeS5wdXNoKEwpfX1mdW5jdGlvbiBKMCh5LFAsTCl7cmV0dXJuIHl8fCh5PXByKDcpKSx5LndyaXRlX3NoaWZ0KDIsUCkseS53cml0ZV9zaGlmdCgyLEwpLHkud3JpdGVfc2hpZnQoMiwwKSx5LndyaXRlX3No'@; put 'aWZ0KDEsMCkseX1mdW5jdGlvbiByXyh5LFAsTCxRKXtpZihudWxsIT1QLnYpc3dpdGNoKFAudCl7Y2FzZSJkIjpjYXNlIm4iOnZhciByZT0iZCI9PVAudD9VZShIdChQLnYpKTpQLnY7cmV0dXJuIHZvaWQocmU9PSgwfHJlKSYmcmU+PTAmJnJlPDY1NTM2P0NpKHksMixmdW5jdGlvbiBhRCh5'@; put 'LFAsTCl7dmFyIFE9cHIoOSk7cmV0dXJuIEowKFEseSxQKSxRLndyaXRlX3NoaWZ0KDIsTCksUX0oTCxRLHJlKSk6Q2koeSwzLGZ1bmN0aW9uIGRaKHksUCxMKXt2YXIgUT1wcigxNSk7cmV0dXJuIEowKFEseSxQKSxRLndyaXRlX3NoaWZ0KDgsTCwiZiIpLFF9KEwsUSxyZSkpKTtjYXNlImIi'@; put 'OmNhc2UiZSI6cmV0dXJuIHZvaWQgQ2koeSw1LGZ1bmN0aW9uIG5fKHksUCxMLFEpe3ZhciByZT1wcig5KTtyZXR1cm4gSjAocmUseSxQKSxkOShMLFF8fCJiIixyZSkscmV9KEwsUSxQLnYsUC50KSk7Y2FzZSJzIjpjYXNlInN0ciI6cmV0dXJuIHZvaWQgQ2koeSw0LGZ1bmN0aW9uIFFMKHks'@; put 'UCxMKXt2YXIgUT1wcig4KzIqTC5sZW5ndGgpO3JldHVybiBKMChRLHksUCksUS53cml0ZV9zaGlmdCgxLEwubGVuZ3RoKSxRLndyaXRlX3NoaWZ0KEwubGVuZ3RoLEwsInNiY3MiKSxRLmw8US5sZW5ndGg/US5zbGljZSgwLFEubCk6UX0oTCxRLChQLnZ8fCIiKS5zbGljZSgwLDI1NSkpKX1D'@; put 'aSh5LDEsSjAobnVsbCxMLFEpKX1mdW5jdGlvbiByUih5LFAsTCxRLHJlKXt2YXIgZ2U9MTYrZ3UocmUuY2VsbFhmcyxyZS5jZWxsU3R5bGVYZnMsUCxyZSk7aWYobnVsbCE9UC52fHxQLmJmKWlmKFAuYmYpQ2koeSwiRm9ybXVsYSIsZnVuY3Rpb24gV1ooeSxQLEwsUSxyZSl7dmFyIGdlPXow'@; put 'KFAsTCxyZSksX2U9ZnVuY3Rpb24gcHYoeSl7aWYobnVsbD09eSl7dmFyIFA9cHIoOCk7cmV0dXJuIFAud3JpdGVfc2hpZnQoMSwzKSxQLndyaXRlX3NoaWZ0KDEsMCksUC53cml0ZV9zaGlmdCgyLDApLFAud3JpdGVfc2hpZnQoMiwwKSxQLndyaXRlX3NoaWZ0KDIsNjU1MzUpLFB9cmV0dXJu'@; put 'IEZjKCJudW1iZXIiPT10eXBlb2YgeT95OjApfSh5LnYpLHZlPXByKDYpO3ZlLndyaXRlX3NoaWZ0KDIsMzMpLHZlLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKHZhciBIZT1wcih5LmJmLmxlbmd0aCksQmU9MDtCZTx5LmJmLmxlbmd0aDsrK0JlKUhlW0JlXT15LmJmW0JlXTtyZXR1cm4gUyhbZ2Us'@; put 'X2UsdmUsSGVdKX0oUCxMLFEsMCxnZSkpO2Vsc2Ugc3dpdGNoKFAudCl7Y2FzZSJkIjpjYXNlIm4iOkNpKHksIk51bWJlciIsZnVuY3Rpb24gQzMoeSxQLEwsUSl7dmFyIHJlPXByKDE0KTtyZXR1cm4gejAoeSxQLFEscmUpLEZjKEwscmUpLHJlfShMLFEsImQiPT1QLnQ/VWUoSHQoUC52KSk6'@; put 'UC52LGdlKSk7YnJlYWs7Y2FzZSJiIjpjYXNlImUiOkNpKHksNTE3LGZ1bmN0aW9uIE5kKHksUCxMLFEscmUsZ2Upe3ZhciBfZT1wcig4KTtyZXR1cm4gejAoeSxQLFEsX2UpLGQ5KEwsZ2UsX2UpLF9lfShMLFEsUC52LGdlLDAsUC50KSk7YnJlYWs7Y2FzZSJzIjpjYXNlInN0ciI6aWYocmUu'@; put 'Ym9va1NTVCl7dmFyIHZlPXd2KHJlLlN0cmluZ3MsUC52LFAuUj9QLnI9SmgoUC5SKTpudWxsLHJlLnJldlN0cmluZ3MpO2lmKFAuUilmb3IodmFyIFNlPTA7U2U8UC5SLmxlbmd0aDsrK1NlKVAuUltTZV0ucyYmZ3UocmUuY2VsbFhmcyxyZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOlAu'@; put 'UltTZV0uc30scmUpO0NpKHksIkxhYmVsU3N0IixmdW5jdGlvbiBaVCh5LFAsTCxRKXt2YXIgcmU9cHIoMTApO3JldHVybiB6MCh5LFAsUSxyZSkscmUud3JpdGVfc2hpZnQoNCxMKSxyZX0oTCxRLHZlLGdlKSl9ZWxzZSBDaSh5LCJMYWJlbCIsZnVuY3Rpb24gV1QoeSxQLEwsUSxyZSl7dmFy'@; put 'IGdlPSFyZXx8OD09cmUuYmlmZixfZT1wcigrZ2UrOCsoMStnZSkqTC5sZW5ndGgpO3JldHVybiB6MCh5LFAsUSxfZSksX2Uud3JpdGVfc2hpZnQoMixMLmxlbmd0aCksZ2UmJl9lLndyaXRlX3NoaWZ0KDEsMSksX2Uud3JpdGVfc2hpZnQoKDErZ2UpKkwubGVuZ3RoLEwsZ2U/InV0ZjE2bGUi'@; put 'OiJzYmNzIiksX2V9KEwsUSwoUC52fHwiIikuc2xpY2UoMCwyNTUpLGdlLHJlKSk7YnJlYWs7ZGVmYXVsdDpDaSh5LCJCbGFuayIsejAoTCxRLGdlKSl9ZWxzZSBDaSh5LCJCbGFuayIsejAoTCxRLGdlKSl9ZnVuY3Rpb24gaVIoeSxQLEwpe3ZhciBCZSxRPXdjKCkscmU9TC5TaGVldE5hbWVz'@; put 'W3ldLGdlPUwuU2hlZXRzW3JlXXx8e30sX2U9KEx8fHt9KS5Xb3JrYm9va3x8e30sdmU9KF9lLlNoZWV0c3x8W10pW3ldfHx7fSxTZT1BcnJheS5pc0FycmF5KGdlKSxIZT04PT1QLmJpZmYsR2U9IiIsbnQ9W10sZHQ9T2koZ2VbIiFyZWYiXXx8IkExIiksQ3Q9SGU/NjU1MzY6MTYzODQ7aWYo'@; put 'ZHQuZS5jPjI1NXx8ZHQuZS5yPj1DdCl7aWYoUC5XVEYpdGhyb3cgbmV3IEVycm9yKCJSYW5nZSAiKyhnZVsiIXJlZiJdfHwiQTEiKSsiIGV4Y2VlZHMgZm9ybWF0IGxpbWl0IEExOklWMTYzODQiKTtkdC5lLmM9TWF0aC5taW4oZHQuZS5jLDI1NSksZHQuZS5yPU1hdGgubWluKGR0LmUuYyxD'@; put 'dC0xKX1DaShRLDIwNTcsRDQoMCwxNixQKSksQ2koUSwiQ2FsY01vZGUiLGZ1KDEpKSxDaShRLCJDYWxjQ291bnQiLGZ1KDEwMCkpLENpKFEsIkNhbGNSZWZNb2RlIixGbCghMCkpLENpKFEsIkNhbGNJdGVyIixGbCghMSkpLENpKFEsIkNhbGNEZWx0YSIsRmMoLjAwMSkpLENpKFEsIkNhbGNT'@; put 'YXZlUmVjYWxjIixGbCghMCkpLENpKFEsIlByaW50Um93Q29sIixGbCghMSkpLENpKFEsIlByaW50R3JpZCIsRmwoITEpKSxDaShRLCJHcmlkU2V0IixmdSgxKSksQ2koUSwiR3V0cyIsZnVuY3Rpb24gSHcoeSl7dmFyIFA9cHIoOCk7cmV0dXJuIFAud3JpdGVfc2hpZnQoNCwwKSxQLndyaXRl'@; put 'X3NoaWZ0KDIseVswXT95WzBdKzE6MCksUC53cml0ZV9zaGlmdCgyLHlbMV0/eVsxXSsxOjApLFB9KFswLDBdKSksQ2koUSwiSENlbnRlciIsRmwoITEpKSxDaShRLCJWQ2VudGVyIixGbCghMSkpO3ZhciBjdD1nZVsiIXByaW50Il0mJmdlWyIhcHJpbnQiXS5tYXJnaW5zfHxnZVsiIW1hcmdp'@; put 'bnMiXTtjdCYmKG51bGwhPWN0LmxlZnQmJkNpKFEsIkxlZnRNYXJnaW4iLEZjKGN0LmxlZnQpKSxudWxsIT1jdC5yaWdodCYmQ2koUSwiUmlnaHRNYXJnaW4iLEZjKGN0LnJpZ2h0KSksbnVsbCE9Y3QudG9wJiZDaShRLCJUb3BNYXJnaW4iLEZjKGN0LnRvcCkpLG51bGwhPWN0LmJvdHRvbSYm'@; put 'Q2koUSwiQm90dG9tTWFyZ2luIixGYyhjdC5ib3R0b20pKSwobnVsbCE9Y3QuaGVhZGVyfHxudWxsIT1jdC5mb290ZXIpJiZDaShRLCJTZXR1cCIsZnVuY3Rpb24ga20oeSxQKXt2YXIgTD1wcigzNCksUT0hMSxyZT03MDtyZXR1cm4ibGFuZHNjYXBlIj09KFAucHJvcHN8fHt9KS5vcmllbnRh'@; put 'dGlvbiYmKFE9ITAscmUmPS02NyksUSYmKHJlJj0tNSksTC53cml0ZV9zaGlmdCgyLDEpLEwud3JpdGVfc2hpZnQoMiwxMDApLEwud3JpdGVfc2hpZnQoMiwwKSxMLndyaXRlX3NoaWZ0KDIsMCksTC53cml0ZV9zaGlmdCgyLDApLEwud3JpdGVfc2hpZnQoMSxyZSksTC53cml0ZV9zaGlmdCgx'@; put 'LDApLEwud3JpdGVfc2hpZnQoMiw2MDApLEwud3JpdGVfc2hpZnQoMiw2MDApLEZjKG51bGw9PXkuaGVhZGVyPy41OnkuaGVhZGVyLEwpLEZjKG51bGw9PXkuZm9vdGVyPy41OnkuZm9vdGVyLEwpLEwud3JpdGVfc2hpZnQoMiwxKSxMfShjdCxnZVsiIXByaW50Il18fHt9KSkpLEhlJiZmdW5j'@; put 'dGlvbiB4TSh5LFAsTCl7aWYoUCl7dmFyIFE9MDtQLmZvckVhY2goZnVuY3Rpb24ocmUsZ2UpeysrUTw9MjU2JiZyZSYmKHJlLmF1dG8mJk5pKEwscmUsZ2UpLENpKHksIkNvbEluZm8iLGZ1bmN0aW9uIHJEKHksUCl7dmFyIEw9cHIoMTIpO0wud3JpdGVfc2hpZnQoMixQKSxMLndyaXRlX3No'@; put 'aWZ0KDIsUCksTC53cml0ZV9zaGlmdCgyLDI1Nip5LndpZHRoKSxMLndyaXRlX3NoaWZ0KDIsMCk7dmFyIFE9MDtyZXR1cm4geS5oaWRkZW4mJihRfD0xKSxMLndyaXRlX3NoaWZ0KDEsUSksTC53cml0ZV9zaGlmdCgxLFE9eS5sZXZlbHx8MCksTC53cml0ZV9zaGlmdCgyLDApLEx9KFlkKGdl'@; put 'LHJlKSxnZSkpKX0pfX0oUSxnZVsiIWNvbHMiXSxnZSksQ2koUSwiRGltZW5zaW9ucyIsZnVuY3Rpb24ganQoeSxQKXt2YXIgTD04IT1QLmJpZmYmJlAuYmlmZj8yOjQsUT1wcigyKkwrNik7cmV0dXJuIFEud3JpdGVfc2hpZnQoTCx5LnMuciksUS53cml0ZV9zaGlmdChMLHkuZS5yKzEpLFEu'@; put 'd3JpdGVfc2hpZnQoMix5LnMuYyksUS53cml0ZV9zaGlmdCgyLHkuZS5jKzEpLFEud3JpdGVfc2hpZnQoMiwwKSxRfShkdCxQKSksSGUmJihnZVsiIWxpbmtzIl09W10pLGdlWyIhcm93cyJdJiZIZSYmZ2VbIiFyb3dzIl0uZm9yRWFjaChmdW5jdGlvbihadCxwbil7Zm9yKHZhciBLbj1Icyhw'@; put 'biksdW49MjU2LHFuPTAsem49WnQucz8xNitndShQLmNlbGxYZnMsUC5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOlp0LnN9LFApOjAsa249ZHQucy5jO2tuPD1kdC5lLmM7KytrbikoU2U/KGdlW3BuXXx8W10pW2tuXTpnZVtudFtrbl0rS25dKSYmKGtuPHVuJiYodW49a24pLGtuPnFuJiYo'@; put 'cW49a24pKTtxbjx1biYmKHVuPXFuPTApLENpKFEsIlJvdyIsZnVuY3Rpb24gbXQoeSxQLEwpe3ZhciBRPXByKDE2KTtRLndyaXRlX3NoaWZ0KDIsUCksUS53cml0ZV9zaGlmdCgyLExbMF0pLFEud3JpdGVfc2hpZnQoMixMWzFdKzEpLFEud3JpdGVfc2hpZnQoMiwyMCp5LmhwdHx8MjAqajIo'@; put 'eS5ocHgpfHwzMzApLFEud3JpdGVfc2hpZnQoNCwwKTt2YXIgcmU9MDtyZXR1cm4gcmV8PTB8eS5sZXZlbCx5LmhpZGRlbiYmKHJlfD0zMikscmV8PTY0LExbMl0mJihyZXw9MTI4KSxRLndyaXRlX3NoaWZ0KDEscmUpLFEud3JpdGVfc2hpZnQoMSwxKSxRLndyaXRlX3NoaWZ0KDIsTFsyXXx8'@; put 'MCksUX0oWnQscG4sW3VuLHFuLHpuXSkpfSk7Zm9yKHZhciBidD1kdC5zLnI7YnQ8PWR0LmUucjsrK2J0KXtHZT1IcyhidCk7Zm9yKHZhciBGdD1kdC5zLmM7RnQ8PWR0LmUuYzsrK0Z0KXtidD09PWR0LnMuciYmKG50W0Z0XT1OcyhGdCkpLEJlPW50W0Z0XStHZTt2YXIga3Q9U2U/KGdlW2J0'@; put 'XXx8W10pW0Z0XTpnZVtCZV07a3QmJihyUihRLGt0LGJ0LEZ0LFApLEhlJiZrdC5sJiZnZVsiIWxpbmtzIl0ucHVzaChbQmUsa3QubF0pKX19dmFyIFR0PXZlLkNvZGVOYW1lfHx2ZS5uYW1lfHxyZTtyZXR1cm4oSGV8fDU9PVAuYmlmZiYmZ2VbIiFmcmVlemUiXSkmJkNpKFEsIldpbmRvdzIi'@; put 'LGZ1bmN0aW9uIEJUKHksUCxMLFEpe3ZhciByZT1RJiZRLmJpZmZ8fDgsZ2U9cHIoOD09cmU/MTg6MTApLF9lPTE3MTg7cmV0dXJuIEw+MCYmKF9lJj0tNTEzKSxobihQWyIhZ3JpZGxpbmVzIl0pJiYoX2UmPS0zKSxQWyIhZnJlZXplIl0mJihfZXw9OCkseSYmeS5SVEwmJihfZXw9NjQpLDU9'@; put 'PXJlJiYoX2U9NDQ2KSxnZS53cml0ZV9zaGlmdCgyLF9lKSw4PT1yZT8oZ2Uud3JpdGVfc2hpZnQoNCwwKSxnZS53cml0ZV9zaGlmdCg0LDY0KSxnZS53cml0ZV9zaGlmdCg0LDApLGdlLndyaXRlX3NoaWZ0KDQsMCkpOihnZS53cml0ZV9zaGlmdCg0LDApLGdlLndyaXRlX3NoaWZ0KDQsMCkp'@; put 'LGdlfSgoX2UuVmlld3N8fFtdKVswXSxnZSx5KSksKEhlfHw1PT1QLmJpZmYpJiZnZVsiIWZyZWV6ZSJdJiZDaShRLCJQYW5lIixmdW5jdGlvbiB6VCh5KXsic3RyaW5nIj09dHlwZW9mIHkmJih5PXNzKHkpKTt2YXIgUD1wcigxMCk7cmV0dXJuIFAud3JpdGVfc2hpZnQoMix5LmMpLFAud3Jp'@; put 'dGVfc2hpZnQoMix5LnIpLFAud3JpdGVfc2hpZnQoMix5LnIpLFAud3JpdGVfc2hpZnQoMix5LmMpLFAud3JpdGVfc2hpZnQoMSwzKSxQLndyaXRlX3NoaWZ0KDEsMCksUH0oZ2VbIiFmcmVlemUiXSkpLEhlJiZnZVsiIXNlbCJdJiZDaShRLCJTZWxlY3Rpb24iLGZ1bmN0aW9uIFI0KHksUCl7'@; put 'dmFyIEw9cHIoMTUpLFE9eS5jZWxsO2lmKCFRKXtpZigheS5yYW5nZSl0aHJvdyBuZXcgRXJyb3IoIk11c3Qgc3BlY2lmeSBhIHNlbGVjdGlvbiBjZWxsIG9yIHJhbmdlIik7UT1kaShXcyh5LnJhbmdlLnJlcGxhY2UoL1xzLiokLywiIikpLnMpfXZhciByZT0ic3RyaW5nIj09dHlwZW9mIFE/'@; put 'c3MoUSk6UTtpZihQKXt2YXIgZ2U9InN0cmluZyI9PXR5cGVvZiBQP3NzKFApOlA7TC53cml0ZV9zaGlmdCgxLHJlLnI+PWdlLnImJnJlLmM+PWdlLmM/MDpyZS5yPj1nZS5yJiZyZS5jPGdlLmM/MjpyZS5yPGdlLnImJnJlLmM+PWdlLmM/MTozKX1lbHNlIEwud3JpdGVfc2hpZnQoMSwzKTty'@; put 'ZXR1cm4gTC53cml0ZV9zaGlmdCgyLHJlLnIpLEwud3JpdGVfc2hpZnQoMixyZS5jKSxMLndyaXRlX3NoaWZ0KDIsMCksTC53cml0ZV9zaGlmdCgyLDEpLGZ1bmN0aW9uIG05KHksUCl7UHx8KFA9cHIoNikpLFAud3JpdGVfc2hpZnQoMix5LnM/eS5zLnI6eS5yKSxQLndyaXRlX3NoaWZ0KDIs'@; put 'eS5lP3kuZS5yOnkuciksUC53cml0ZV9zaGlmdCgxLHkucz95LnMuYzp5LmMpLFAud3JpdGVfc2hpZnQoMSx5LmU/eS5lLmM6eS5jKX0oe3M6cmUsZTpyZX0sTCksTH0oZ2VbIiFzZWwiXSxnZVsiIWZyZWV6ZSJdKSksSGUmJihnZVsiIW1lcmdlcyJdfHxbXSkubGVuZ3RoJiZDaShRLCJNZXJn'@; put 'ZUNlbGxzIixmdW5jdGlvbiBZdyh5KXt2YXIgUD1wcigyKzgqeS5sZW5ndGgpO1Aud3JpdGVfc2hpZnQoMix5Lmxlbmd0aCk7Zm9yKHZhciBMPTA7TDx5Lmxlbmd0aDsrK0wpVTAoeVtMXSxQKTtyZXR1cm4gUH0oZ2VbIiFtZXJnZXMiXSkpLEhlJiZmdW5jdGlvbiBCbCh5LFApe2Zvcih2YXIg'@; put 'TD0wO0w8UFsiIWxpbmtzIl0ubGVuZ3RoOysrTCl7dmFyIFE9UFsiIWxpbmtzIl1bTF07Q2koeSwiSExpbmsiLFhoKFEpKSxRWzFdLlRvb2x0aXAmJkNpKHksIkhMaW5rVG9vbHRpcCIsUVQoUSkpfWRlbGV0ZSBQWyIhbGlua3MiXX0oUSxnZSksQ2koUSwiQ29kZU5hbWUiLG1tKFR0KSksSGUm'@; put 'JmZ1bmN0aW9uIE1NKHksUCl7dmFyIEw9cHIoMTkpO0wud3JpdGVfc2hpZnQoNCwyMTUxKSxMLndyaXRlX3NoaWZ0KDQsMCksTC53cml0ZV9zaGlmdCg0LDApLEwud3JpdGVfc2hpZnQoMiwzKSxMLndyaXRlX3NoaWZ0KDEsMSksTC53cml0ZV9zaGlmdCg0LDApLENpKHksIkZlYXRIZHIiLEwp'@; put 'LChMPXByKDM5KSkud3JpdGVfc2hpZnQoNCwyMTUyKSxMLndyaXRlX3NoaWZ0KDQsMCksTC53cml0ZV9zaGlmdCg0LDApLEwud3JpdGVfc2hpZnQoMiwzKSxMLndyaXRlX3NoaWZ0KDEsMCksTC53cml0ZV9zaGlmdCg0LDApLEwud3JpdGVfc2hpZnQoMiwxKSxMLndyaXRlX3NoaWZ0KDQsNCks'@; put 'TC53cml0ZV9zaGlmdCgyLDApLFUwKE9pKFBbIiFyZWYiXXx8IkExIiksTCksTC53cml0ZV9zaGlmdCg0LDQpLENpKHksIkZlYXQiLEwpfShRLGdlKSxDaShRLCJFT0YiKSxRLmVuZCgpfWZ1bmN0aW9uIEVNKHksUCxMKXt2YXIgUT13YygpLHJlPSh5fHx7fSkuV29ya2Jvb2t8fHt9LGdlPXJl'@; put 'LlNoZWV0c3x8W10sX2U9cmUuV0JQcm9wc3x8e30sdmU9OD09TC5iaWZmLFNlPTU9PUwuYmlmZjtDaShRLDIwNTcsRDQoMCw1LEwpKSwieGxhIj09TC5ib29rVHlwZSYmQ2koUSwiQWRkaW4iKSxDaShRLCJJbnRlcmZhY2VIZHIiLHZlP2Z1KDEyMDApOm51bGwpLENpKFEsIk1tcyIsZnVuY3Rp'@; put 'b24gTHcoeSxQKXtQfHwoUD1wcih5KSk7Zm9yKHZhciBMPTA7TDx5OysrTClQLndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIFB9KDIpKSxTZSYmQ2koUSwiVG9vbGJhckhkciIpLFNlJiZDaShRLCJUb29sYmFyRW5kIiksQ2koUSwiSW50ZXJmYWNlRW5kIiksQ2koUSwiV3JpdGVBY2Nlc3MiLGZ1'@; put 'bmN0aW9uIHdtKHksUCl7dmFyIEw9IVB8fDg9PVAuYmlmZixRPXByKEw/MTEyOjU0KTtmb3IoUS53cml0ZV9zaGlmdCg4PT1QLmJpZmY/MjoxLDcpLEwmJlEud3JpdGVfc2hpZnQoMSwwKSxRLndyaXRlX3NoaWZ0KDQsODU5MDA3MDU5KSxRLndyaXRlX3NoaWZ0KDQsNTQ1ODU0OHwoTD8wOjUz'@; put 'Njg3MDkxMikpO1EubDxRLmxlbmd0aDspUS53cml0ZV9zaGlmdCgxLEw/MDozMik7cmV0dXJuIFF9KDAsTCkpLENpKFEsIkNvZGVQYWdlIixmdSh2ZT8xMjAwOjEyNTIpKSx2ZSYmQ2koUSwiRFNGIixmdSgwKSksdmUmJkNpKFEsIkV4Y2VsOUZpbGUiKSxDaShRLCJSUlRhYklkIixmdW5jdGlv'@; put 'biBNOSh5KXtmb3IodmFyIFA9cHIoMip5KSxMPTA7TDx5OysrTClQLndyaXRlX3NoaWZ0KDIsTCsxKTtyZXR1cm4gUH0oeS5TaGVldE5hbWVzLmxlbmd0aCkpLHZlJiZ5LnZiYXJhdyYmQ2koUSwiT2JQcm9qIiksdmUmJnkudmJhcmF3JiZDaShRLCJDb2RlTmFtZSIsbW0oX2UuQ29kZU5hbWV8'@; put 'fCJUaGlzV29ya2Jvb2siKSksQ2koUSwiQnVpbHRJbkZuR3JvdXBDb3VudCIsZnUoMTcpKSxDaShRLCJXaW5Qcm90ZWN0IixGbCghMSkpLENpKFEsIlByb3RlY3QiLEZsKCExKSksQ2koUSwiUGFzc3dvcmQiLGZ1KDApKSx2ZSYmQ2koUSwiUHJvdDRSZXYiLEZsKCExKSksdmUmJkNpKFEsIlBy'@; put 'b3Q0UmV2UGFzcyIsZnUoMCkpLENpKFEsIldpbmRvdzEiLGZ1bmN0aW9uIE93KCl7dmFyIHk9cHIoMTgpO3JldHVybiB5LndyaXRlX3NoaWZ0KDIsMCkseS53cml0ZV9zaGlmdCgyLDApLHkud3JpdGVfc2hpZnQoMiwyOTI4MCkseS53cml0ZV9zaGlmdCgyLDE3NjAwKSx5LndyaXRlX3NoaWZ0'@; put 'KDIsNTYpLHkud3JpdGVfc2hpZnQoMiwwKSx5LndyaXRlX3NoaWZ0KDIsMCkseS53cml0ZV9zaGlmdCgyLDEpLHkud3JpdGVfc2hpZnQoMiw1MDApLHl9KCkpLENpKFEsIkJhY2t1cCIsRmwoITEpKSxDaShRLCJIaWRlT2JqIixmdSgwKSksQ2koUSwiRGF0ZTE5MDQiLEZsKCJ0cnVlIj09ZnVu'@; put 'Y3Rpb24gaU0oeSl7cmV0dXJuIHkuV29ya2Jvb2smJnkuV29ya2Jvb2suV0JQcm9wcyYmeXIoeS5Xb3JrYm9vay5XQlByb3BzLmRhdGUxOTA0KT8idHJ1ZSI6ImZhbHNlIn0oeSkpKSxDaShRLCJDYWxjUHJlY2lzaW9uIixGbCghMCkpLHZlJiZDaShRLCJSZWZyZXNoQWxsIixGbCghMSkpLENp'@; put 'KFEsIkJvb2tCb29sIixmdSgwKSksQ3I9dzQoWzAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1XSksZnVuY3Rpb24gZVIoeSxQLEwpeygoKFB8fHt9'@; put 'KS5TdHlsZXN8fHt9KS5Gb250c3x8W3tzejoxMixjb2xvcjp7dGhlbWU6MX0sbmFtZToiQXJpYWwiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0pLmZvckVhY2goZnVuY3Rpb24oUSl7Q2koeSwiRm9udCIsZnVuY3Rpb24gdzMoeSxQKXt2YXIgTD15Lm5hbWV8fCJBcmlhbCIsUT1QJiY1PT1Q'@; put 'LmJpZmYsZ2U9cHIoUT8xNStMLmxlbmd0aDoxNisyKkwubGVuZ3RoKTtnZS53cml0ZV9zaGlmdCgyLDIwKih5LnN6fHwxMikpO3ZhciBfZT0wO3JldHVybiB5LmJvbGQmJihfZXw9MSkseS5pdGFsaWMmJihfZXw9MikseS5zdHJpa2UmJihfZXw9OCkseS5zaGFkb3cmJihfZXw9MzIpLGdlLndy'@; put 'aXRlX3NoaWZ0KDEsX2UpLGdlLndyaXRlX3NoaWZ0KDEsMCksZ2Uud3JpdGVfc2hpZnQoMix5LmNvbG9yP0gzKHkuY29sb3IsNjQpOjY0KSxnZS53cml0ZV9zaGlmdCgyLHkuYm9sZD83MDA6NDAwKSxnZS53cml0ZV9zaGlmdCgyLCJzdXBlciI9PXkudmFsaWduPzE6InN1YiI9PXkudmFsaWdu'@; put 'PzI6MCksZ2Uud3JpdGVfc2hpZnQoMSx5LnVuZGVybGluZXx8MCksZ2Uud3JpdGVfc2hpZnQoMSxnZS5mYW1pbHl8fDApLGdlLndyaXRlX3NoaWZ0KDEsZ2UuY2hhcnNldHx8MCksZ2Uud3JpdGVfc2hpZnQoMSwwKSxnZS53cml0ZV9zaGlmdCgxLEwubGVuZ3RoKSxRfHxnZS53cml0ZV9zaGlm'@; put 'dCgxLDEpLGdlLndyaXRlX3NoaWZ0KChRPzE6MikqTC5sZW5ndGgsTCxRPyJzYmNzIjoidXRmMTZsZSIpLGdlfShRLEwpKX0pfShRLHksTCksZnVuY3Rpb24gdFIoeSxQLEwpe1AmJltbNSw4XSxbMjMsMjZdLFs0MSw0NF0sWzUwLDM5Ml1dLmZvckVhY2goZnVuY3Rpb24oUSl7Zm9yKHZhciBy'@; put 'ZT1RWzBdO3JlPD1RWzFdOysrcmUpbnVsbCE9UFtyZV0mJkNpKHksIkZvcm1hdCIsWHIocmUsUFtyZV0sTCkpfSl9KFEseS5TU0YsTCksZnVuY3Rpb24gblIoeSxQKXtmb3IodmFyIEw9MDtMPDE2OysrTClDaSh5LCJYRiIsQ20oe251bUZtdElkOjAsc3R5bGU6ITB9LDAsUCkpO1AuY2VsbFhm'@; put 'cy5mb3JFYWNoKGZ1bmN0aW9uKFEpe0NpKHksIlhGIixDbShRLDAsUCkpfSl9KFEsTCksQ2koUSwiUGFsZXR0ZSIsZnVuY3Rpb24gJHcoeSl7dmFyIFA9cHIoMjI2KTtQLndyaXRlX3NoaWZ0KDIsNTYpO2Zvcih2YXIgTD0wO0w8NTY7KytMKXt2YXIgUT15W0wrOF18fGgzW0wrOF07UC53cml0'@; put 'ZV9zaGlmdCgxLFFbMF0pLFAud3JpdGVfc2hpZnQoMSxRWzFdKSxQLndyaXRlX3NoaWZ0KDEsUVsyXSksUC53cml0ZV9zaGlmdCgxLDApfXJldHVybiBQfShDcikpLENyPW9uKGgzKSx2ZSYmQ2koUSwiVXNlc0VMRnMiLEZsKCExKSk7dmFyIEJlPVEuZW5kKCksR2U9d2MoKTt2ZSYmQ2koR2Us'@; put 'IkNvdW50cnkiLGZ1bmN0aW9uIHREKHkpe3JldHVybiB5fHwoeT1wcig0KSkseS53cml0ZV9zaGlmdCgyLDEpLHkud3JpdGVfc2hpZnQoMiwxKSx5fSgpKSx2ZSYmTC5TdHJpbmdzJiZmdW5jdGlvbiB0Xyh5LFAsTCxRKXt2YXIgcmU9UXx8KEx8fFtdKS5sZW5ndGh8fDA7aWYocmU8PTgyMjQp'@; put 'cmV0dXJuIENpKHksUCxMLHJlKTt2YXIgZ2U9K1B8fCtTTVtQXTtpZighaXNOYU4oZ2UpKXtmb3IodmFyIF9lPUwucGFydHN8fFtdLHZlPTAsU2U9MCxIZT0wO0hlKyhfZVt2ZV18fDgyMjQpPD04MjI0OylIZSs9X2VbdmVdfHw4MjI0LHZlKys7dmFyIEJlPXkubmV4dCg0KTtmb3IoQmUud3Jp'@; put 'dGVfc2hpZnQoMixnZSksQmUud3JpdGVfc2hpZnQoMixIZSkseS5wdXNoKEwuc2xpY2UoU2UsU2UrSGUpKSxTZSs9SGU7U2U8cmU7KXtmb3IoKEJlPXkubmV4dCg0KSkud3JpdGVfc2hpZnQoMiw2MCksSGU9MDtIZSsoX2VbdmVdfHw4MjI0KTw9ODIyNDspSGUrPV9lW3ZlXXx8ODIyNCx2ZSsr'@; put 'O0JlLndyaXRlX3NoaWZ0KDIsSGUpLHkucHVzaChMLnNsaWNlKFNlLFNlK0hlKSksU2UrPUhlfX19KEdlLCJTU1QiLGZ1bmN0aW9uIGJzKHksUCl7dmFyIEw9cHIoOCk7TC53cml0ZV9zaGlmdCg0LHkuQ291bnQpLEwud3JpdGVfc2hpZnQoNCx5LlVuaXF1ZSk7Zm9yKHZhciBRPVtdLHJlPTA7'@; put 'cmU8eS5sZW5ndGg7KytyZSlRW3JlXT1qMCh5W3JlXSxQKTt2YXIgZ2U9UyhbTF0uY29uY2F0KFEpKTtyZXR1cm4gZ2UucGFydHM9W0wubGVuZ3RoXS5jb25jYXQoUS5tYXAoZnVuY3Rpb24oX2Upe3JldHVybiBfZS5sZW5ndGh9KSksZ2V9KEwuU3RyaW5ncyxMKSksQ2koR2UsIkVPRiIpO3Zh'@; put 'ciBudD1HZS5lbmQoKSxkdD13YygpLEN0PTAsY3Q9MDtmb3IoY3Q9MDtjdDx5LlNoZWV0TmFtZXMubGVuZ3RoOysrY3QpQ3QrPSh2ZT8xMjoxMSkrKHZlPzI6MSkqeS5TaGVldE5hbWVzW2N0XS5sZW5ndGg7dmFyIGJ0PUJlLmxlbmd0aCtDdCtudC5sZW5ndGg7Zm9yKGN0PTA7Y3Q8eS5TaGVl'@; put 'dE5hbWVzLmxlbmd0aDsrK2N0KUNpKGR0LCJCb3VuZFNoZWV0OCIsWTAoe3BvczpidCxoczooZ2VbY3RdfHx7fSkuSGlkZGVufHwwLGR0OjAsbmFtZTp5LlNoZWV0TmFtZXNbY3RdfSxMKSksYnQrPVBbY3RdLmxlbmd0aDt2YXIga3Q9ZHQuZW5kKCk7aWYoQ3QhPWt0Lmxlbmd0aCl0aHJvdyBu'@; put 'ZXcgRXJyb3IoIkJTOCAiK0N0KyIgIT0gIitrdC5sZW5ndGgpO3ZhciBUdD1bXTtyZXR1cm4gQmUubGVuZ3RoJiZUdC5wdXNoKEJlKSxrdC5sZW5ndGgmJlR0LnB1c2goa3QpLG50Lmxlbmd0aCYmVHQucHVzaChudCksU2EoW1R0XSl9ZnVuY3Rpb24gaV8oeSxQKXt2YXIgTD1QfHx7fTtzd2l0'@; put 'Y2goTC5iaWZmfHwyKXtjYXNlIDg6Y2FzZSA1OnJldHVybiBmdW5jdGlvbiBvUih5LFApe3ZhciBMPVB8fHt9LFE9W107Rm0oUCYmUC5QUEl8fDk2KSx5JiYheS5TU0YmJih5LlNTRj13LmdldF90YWJsZSgpKSx5JiZ5LlNTRiYmKEoodyksdy5sb2FkX3RhYmxlKHkuU1NGKSxMLnJldnNzZj1B'@; put 'ZSh5LlNTRiksTC5yZXZzc2ZbeS5TU0ZbNjU1MzVdXT0wLEwuc3NmPXkuU1NGKSx5LlN0eWxlcz17Rm9udHM6TC5Gb250cz1be3N6OjEyLGNvbG9yOnt0aGVtZToxLHJnYjoiMDAwMDAwIn0sbmFtZToiQ2FsaWJyaSIsZmFtaWx5OjIsc2NoZW1lOiJtaW5vciJ9XSxGaWxsczpMLkZpbGxzPVt7'@; put 'cGF0dGVyblR5cGU6Im5vbmUifSx7cGF0dGVyblR5cGU6ImdyYXkxMjUifV0sQm9yZGVyczpMLkJvcmRlcnM9W3t9XSxEWEY6TC5EWEY9eS5TdHlsZXMmJnkuU3R5bGVzLkRYRnx8W119LFoxKEwuRm9udHNbMF0pLEwuU3RyaW5ncz1bXSxMLlN0cmluZ3MuQ291bnQ9MCxMLlN0cmluZ3MuVW5p'@; put 'cXVlPTAsSzA/TC5yZXZTdHJpbmdzPW5ldyBNYXA6KEwucmV2U3RyaW5ncz17fSxMLnJldlN0cmluZ3MuZm9vPVtdLGRlbGV0ZSBMLnJldlN0cmluZ3MuZm9vKSxoXyhMKSxMLmNlbGxYZnM9W10sTC5jZWxsU3R5bGVYZnM9W3tuYW1lOiJOb3JtYWwifV0sZ3UoTC5jZWxsWGZzLEwuY2VsbFN0'@; put 'eWxlWGZzLHt9LHtyZXZzc2Y6e0dlbmVyYWw6MH19KSx5LlByb3BzfHwoeS5Qcm9wcz17fSk7Zm9yKHZhciByZT0wO3JlPHkuU2hlZXROYW1lcy5sZW5ndGg7KytyZSlRW1EubGVuZ3RoXT1pUihyZSxMLHkpO3JldHVybiBRLnVuc2hpZnQoRU0oeSxRLEwpKSxTYShbUV0pfSh5LFApO2Nhc2Ug'@; put 'NDpjYXNlIDM6Y2FzZSAyOnJldHVybiBmdW5jdGlvbiBoWSh5LFApe3ZhciBMPVB8fHt9O251bGwhPXRlJiZudWxsPT1MLmRlbnNlJiYoTC5kZW5zZT10ZSk7Zm9yKHZhciBRPXdjKCkscmU9MCxnZT0wO2dlPHkuU2hlZXROYW1lcy5sZW5ndGg7KytnZSl5LlNoZWV0TmFtZXNbZ2VdPT1MLnNo'@; put 'ZWV0JiYocmU9Z2UpO2lmKDA9PXJlJiZMLnNoZWV0JiZ5LlNoZWV0TmFtZXNbMF0hPUwuc2hlZXQpdGhyb3cgbmV3IEVycm9yKCJTaGVldCBub3QgZm91bmQ6ICIrTC5zaGVldCk7cmV0dXJuIENpKFEsND09TC5iaWZmPzEwMzM6Mz09TC5iaWZmPzUyMTo5LEQ0KDAsMTYsTCkpLGZ1bmN0aW9u'@; put 'IGRZKHksUCxMLFEpe3ZhciBfZSxyZT1BcnJheS5pc0FycmF5KFApLGdlPU9pKFBbIiFyZWYiXXx8IkExIiksdmU9IiIsU2U9W107aWYoZ2UuZS5jPjI1NXx8Z2UuZS5yPjE2MzgzKXtpZihRLldURil0aHJvdyBuZXcgRXJyb3IoIlJhbmdlICIrKFBbIiFyZWYiXXx8IkExIikrIiBleGNlZWRz'@; put 'IGZvcm1hdCBsaW1pdCBBMTpJVjE2Mzg0Iik7Z2UuZS5jPU1hdGgubWluKGdlLmUuYywyNTUpLGdlLmUucj1NYXRoLm1pbihnZS5lLmMsMTYzODMpLF9lPU9vKGdlKX1mb3IodmFyIEhlPWdlLnMucjtIZTw9Z2UuZS5yOysrSGUpe3ZlPUhzKEhlKTtmb3IodmFyIEJlPWdlLnMuYztCZTw9Z2Uu'@; put 'ZS5jOysrQmUpe0hlPT09Z2Uucy5yJiYoU2VbQmVdPU5zKEJlKSksX2U9U2VbQmVdK3ZlO3ZhciBHZT1yZT8oUFtIZV18fFtdKVtCZV06UFtfZV07R2UmJnJfKHksR2UsSGUsQmUpfX19KFEseS5TaGVldHNbeS5TaGVldE5hbWVzW3JlXV0sMCxMKSxDaShRLDEwKSxRLmVuZCgpfSh5LFApfXRo'@; put 'cm93IG5ldyBFcnJvcigiaW52YWxpZCB0eXBlICIrTC5ib29rVHlwZSsiIGZvciBCSUZGIil9dmFyIEZ1PWZ1bmN0aW9uKCl7dmFyIHk9e2NlbnRlckNvbnRpbnVvdXM6ImNlbnRlciIsanVzdGlmeToibGVmdCJ9O2Z1bmN0aW9uIEwoR2UsbnQpe3ZhciBkdD1udHx8e307bnVsbCE9dGUmJm51'@; put 'bGw9PWR0LmRlbnNlJiYoZHQuZGVuc2U9dGUpO3ZhciBDdD1kdC5kZW5zZT9bXTp7fSxjdD0oR2U9R2UucmVwbGFjZSgvPCEtLS4qPy0tPi9nLCIiKSkubWF0Y2goLzx0YWJsZS9pKTtpZighY3QpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEhUTUw6IGNvdWxkIG5vdCBmaW5kIDx0YWJsZT4i'@; put 'KTt2YXIgYnQ9R2UubWF0Y2goLzxcL3RhYmxlL2kpLEZ0PWN0LmluZGV4LGt0PWJ0JiZidC5pbmRleHx8R2UubGVuZ3RoLFR0PWZ1bmN0aW9uIGZ0KHksUCxMKXtpZihIbnx8InN0cmluZyI9PXR5cGVvZiBQKXJldHVybiB5LnNwbGl0KFApO2Zvcih2YXIgUT15LnNwbGl0KFApLHJlPVtRWzBd'@; put 'XSxnZT0xO2dlPFEubGVuZ3RoOysrZ2UpcmUucHVzaChMKSxyZS5wdXNoKFFbZ2VdKTtyZXR1cm4gcmV9KEdlLnNsaWNlKEZ0LGt0KSwvKDo/PHRyW14+XSo+KS9pLCI8dHI+IiksWnQ9LTEscG49MCxLbj0wLHVuPTAscW49e3M6e3I6MWU3LGM6MWU3fSxlOntyOjAsYzowfX0sem49W107Zm9y'@; put 'KEZ0PTA7RnQ8VHQubGVuZ3RoOysrRnQpe3ZhciBrbj1UdFtGdF0udHJpbSgpLGVyPWtuLnNsaWNlKDAsMykudG9Mb3dlckNhc2UoKTtpZigiPHRyIiE9ZXIpe2lmKCI8dGQiPT1lcnx8Ijx0aCI9PWVyKXt2YXIgdHI9a24uc3BsaXQoLzxcL3RbZGhdPi9pKTtmb3Ioa3Q9MDtrdDx0ci5sZW5n'@; put 'dGg7KytrdCl7dmFyIFpuPXRyW2t0XS50cmltKCk7aWYoWm4ubWF0Y2goLzx0W2RoXS9pKSl7Zm9yKHZhciBCcj1abixzaT0wOyI8Ij09QnIuY2hhckF0KDApJiYoc2k9QnIuaW5kZXhPZigiPiIpKT4tMTspQnI9QnIuc2xpY2Uoc2krMSk7Zm9yKHZhciB4aT0wO3hpPHpuLmxlbmd0aDsrK3hp'@; put 'KXt2YXIgTGk9em5beGldO0xpLnMuYz09cG4mJkxpLnMucjxadCYmWnQ8PUxpLmUuciYmKHBuPUxpLmUuYysxLHhpPS0xKX12YXIgUXI9bG4oWm4uc2xpY2UoMCxabi5pbmRleE9mKCI+IikpKTt1bj1Rci5jb2xzcGFuPytRci5jb2xzcGFuOjEsKChLbj0rUXIucm93c3Bhbik+MXx8dW4+MSkm'@; put 'JnpuLnB1c2goe3M6e3I6WnQsYzpwbn0sZTp7cjpadCsoS258fDEpLTEsYzpwbit1bi0xfX0pO3ZhciB1cj1Rci50fHxRclsiZGF0YS10Il18fCIiO2lmKCFCci5sZW5ndGgpe3BuKz11bjtjb250aW51ZX1pZihCcj1PYyhCcikscW4ucy5yPlp0JiYocW4ucy5yPVp0KSxxbi5lLnI8WnQmJihx'@; put 'bi5lLnI9WnQpLHFuLnMuYz5wbiYmKHFuLnMuYz1wbikscW4uZS5jPHBuJiYocW4uZS5jPXBuKSxCci5sZW5ndGgpe3ZhciBBbj17dDoicyIsdjpCcn07ZHQucmF3fHwhQnIudHJpbSgpLmxlbmd0aHx8InMiPT11cnx8KEFuPSRuKEJyLGR0KSksZHQuZGVuc2U/KEN0W1p0XXx8KEN0W1p0XT1b'@; put 'XSksQ3RbWnRdW3BuXT1Bbik6Q3RbZGkoe3I6WnQsYzpwbn0pXT1Bbixwbis9dW59fX19fWVsc2V7aWYoKytadCxkdC5zaGVldFJvd3MmJmR0LnNoZWV0Um93czw9WnQpey0tWnQ7YnJlYWt9cG49MH19cmV0dXJuIEN0WyIhcmVmIl09T28ocW4pLHpuLmxlbmd0aCYmKEN0WyIhbWVyZ2VzIl09'@; put 'em4pLEN0fWZ1bmN0aW9uIHJlKEdlLG50LGR0LEN0LGN0LGJ0KXt2YXIgVHQsRnQ9R2VbIiFtZXJnZXMiXXx8W10sa3Q9W10sWnQ9e3N0eWxlOltdfSxwbj0hMTtmdW5jdGlvbiBLbihUaSxZbyxsbyl7dmFyIEFvPSIiLHhvPTA7aWYoVHRbVGldKXN3aXRjaChUdFtUaV0uc3R5bGUpe2Nhc2Ui'@; put 'dGhpbiI6Y2FzZSJoYWlyIjpBbz0ic29saWQiLHhvPTE7YnJlYWs7Y2FzZSJtZWRpdW0iOkFvPSJzb2xpZCIseG89MjticmVhaztjYXNlInRoaWNrIjpBbz0ic29saWQiLHhvPTM7YnJlYWs7Y2FzZSJkb3VibGUiOkFvPSJkb3VibGUiLHhvPTM7YnJlYWs7Y2FzZSJkb3R0ZWQiOmNhc2UiZGFz'@; put 'aERvdERvdCI6QW89ImRvdHRlZCIseG89MTticmVhaztjYXNlIm1lZGl1bURhc2hEb3REb3QiOkFvPSJkb3R0ZWQiLHhvPTI7YnJlYWs7Y2FzZSJkYXNoZWQiOmNhc2UiZGFzaERvdCI6Y2FzZSJzbGFudERhc2hEb3QiOkFvPSJkYXNoZWQiLHhvPTE7YnJlYWs7Y2FzZSJtZWRpdW1EYXNoZWQi'@; put 'OmNhc2UibWVkaXVtRGFzaERvdCI6QW89ImRhc2hlZCIseG89Mn1lOmlmKDA9PXhvKXtzd2l0Y2goVGkpe2Nhc2UidG9wIjotLVlvO2JyZWFrO2Nhc2UibGVmdCI6LS1sbzticmVhaztjYXNlImJvdHRvbSI6KytZbzticmVhaztjYXNlInJpZ2h0IjorK2xvfXZhciBoaT1Zbz49MCYmbG8+PTA/'@; put 'Q3QuZGVuc2U/KEdlW1lvXXx8W10pW2xvXTpHZVtkaSh7cjpZbyxjOmxvfSldOm51bGw7aWYoaGkpe2lmKGhpLnMmJmhpLnNbe3RvcDoiYm90dG9tIixib3R0b206InRvcCIsbGVmdDoicmlnaHQiLHJpZ2h0OiJsZWZ0In1bVGldXSlicmVhayBlO2hpLnMmJmhpLnMuZmdDb2xvciYmKHhvPTEp'@; put 'fVR0LmZnQ29sb3ImJih4bz0xKSwhaGkmJnBuJiYwPT14byYmKHhvPTEpfTAhPXhvJiZ4byYmKFp0LnN0eWxlLnB1c2goImJvcmRlci0iK1RpKyItc3R5bGU6IisoQW98fCJ0cmFuc3BhcmVudCIpKSxadC5zdHlsZS5wdXNoKCJib3JkZXItIitUaSsiLXdpZHRoOiIreG8rInB4IiksIiI9PUFv'@; put 'P1p0LnN0eWxlLnB1c2goImJvcmRlci0iK1RpKyItY29sb3I6IHRyYW5zcGFyZW50Iik6VHRbVGldLmNvbG9yJiZUdFtUaV0uY29sb3IucmdiJiZadC5zdHlsZS5wdXNoKCJib3JkZXItIitUaSsiLWNvbG9yOiMiK091KFR0W1RpXS5jb2xvci5yZ2IpKSl9Zm9yKHZhciB1bj1udC5zLmM7dW48'@; put 'PW50LmUuYzsrK3VuKXtmb3IodmFyIHFuPTAsem49MCxrbj0wO2tuPEZ0Lmxlbmd0aDsrK2tuKWlmKCEoRnRba25dLnMucj5kdHx8RnRba25dLnMuYz51bnx8RnRba25dLmUucjxkdHx8RnRba25dLmUuYzx1bikpe2lmKEZ0W2tuXS5zLnI8ZHR8fEZ0W2tuXS5zLmM8dW4pe3FuPS0xO2JyZWFr'@; put 'fXFuPUZ0W2tuXS5lLnItRnRba25dLnMucisxLHpuPUZ0W2tuXS5lLmMtRnRba25dLnMuYysxO2JyZWFrfWlmKCEocW48MCkpe3ZhciBlcj1kaSh7cjpkdCxjOnVufSksdHI9Q3QuZGVuc2U/KEdlW2R0XXx8W10pW3VuXTpHZVtlcl07dHI/cG49ITE6KHBuPSEwLHRyPXt0OiJ6IixzOnt9fSk7'@; put 'dmFyIFpuPSJ6Ij09dHIudD8iIjp0ci5ofHxybyh0ci53fHwoY3UodHIpLHRyLncpfHwiIik7aWYoWnQ9e3N0eWxlOltdfSxUdD10ci5zKXt2YXIgQnI9MTtpZigoInN1cGVyIj09VHQudmFsaWdufHwic3ViIj09VHQudmFsaWduKSYmKEJyPS44Myxabj1Tcigic3BhbiIsWm4se3N0eWxlOiJ2'@; put 'ZXJ0aWNhbC1hbGlnbjogIitUdC52YWxpZ259KSksWnQuc3R5bGUucHVzaCgiZm9udC13ZWlnaHQ6IisoVHQuYm9sZD83MDA6NDAwKSksVHQuaXRhbGljJiZadC5zdHlsZS5wdXNoKCJmb250LXN0eWxlOiBpdGFsaWMiKSwoVHQudW5kZXJsaW5lfHxUdC5zdHJpa2UpJiZadC5zdHlsZS5wdXNo'@; put 'KCJ0ZXh0LWRlY29yYXRpb246IisoVHQudW5kZXJsaW5lPyIgdW5kZXJsaW5lIjoiIikrKFR0LnN0cmlrZT8iIGxpbmUtdGhyb3VnaCI6IiIpKSxUdC5jb2xvciYmVHQuY29sb3IucmdiJiZadC5zdHlsZS5wdXNoKCJjb2xvcjogIyIrT3UoVHQuY29sb3IucmdiKSksVHQubmFtZSYmWnQuc3R5'@; put 'bGUucHVzaCgiZm9udC1mYW1pbHk6IitUdC5uYW1lKyIsIHNhbnMtc2VyaWYiKSxUdC5zeiYmWnQuc3R5bGUucHVzaCgiZm9udC1zaXplOiIrVHQuc3oqQnIrInB0IiksbnVsbCE9PVR0LnBhdHRlcm5UeXBlJiZUdC5mZ0NvbG9yJiZUdC5mZ0NvbG9yLnJnYiYmWnQuc3R5bGUucHVzaCgiYmFj'@; put 'a2dyb3VuZC1jb2xvcjogIyIrT3UoVHQuZmdDb2xvci5yZ2IpKSxbInRvcCIsImxlZnQiXS5mb3JFYWNoKGZ1bmN0aW9uKFRpKXtLbihUaSxkdCx1bil9KSxxbj4xfHx6bj4xKXt2YXIgc2k9ZGkoe3I6ZHQrcW4tMSxjOnVuK3puLTF9KSx4aT1DdC5kZW5zZT8oR2VbZHQrcW4tMV18fFtdKVt1'@; put 'bit6bi0xXTpHZVtzaV0sUXI9VHQ7VHQ9eGkmJnhpLnN8fFR0LFsiYm90dG9tIiwicmlnaHQiXS5mb3JFYWNoKGZ1bmN0aW9uKFRpKXtLbihUaSxkdCx1bil9KSxUdD1Rcn1lbHNlWyJib3R0b20iLCJyaWdodCJdLmZvckVhY2goZnVuY3Rpb24oVGkpe0tuKFRpLGR0LHVuKX0pO2lmKFR0LmFs'@; put 'aWdubWVudCl7aWYoVHQuYWxpZ25tZW50Lmhvcml6b250YWw/WnQuc3R5bGUucHVzaCgidGV4dC1hbGlnbjogIisoeVtUdC5hbGlnbm1lbnQuaG9yaXpvbnRhbF18fFR0LmFsaWdubWVudC5ob3Jpem9udGFsKSk6Im4iPT10ci50JiZadC5zdHlsZS5wdXNoKCJ0ZXh0LWFsaWduOiByaWdodCIp'@; put 'LFR0LmFsaWdubWVudC52ZXJ0aWNhbCl7dmFyIHVyPVR0LmFsaWdubWVudC52ZXJ0aWNhbDtadC5zdHlsZS5wdXNoKCJ2ZXJ0aWNhbC1hbGlnbjogIisoImNlbnRlciI9PXVyPyJtaWRkbGUiOnVyKSl9aWYoVHQuYWxpZ25tZW50LndyYXBUZXh0KVp0LnN0eWxlLnB1c2goIndoaXRlLXNwYWNl'@; put 'OiBwcmUtd3JhcCIpO2Vsc2V7dmFyIEFuPUN0LmRlbnNlPyhHZVtkdF18fFtdKVt1bisxXTpHZVtkaSh7cjpkdCxjOnVuKzF9KV07QW4mJiJ6IiE9QW4udCYmWnQuc3R5bGUucHVzaCgid2hpdGUtc3BhY2U6IHByZS13cmFwIil9fWVsc2UibiI9PXRyLnQmJlp0LnN0eWxlLnB1c2goInRleHQt'@; put 'YWxpZ246IHJpZ2h0Iik7dmFyIHZyPSgoR2VbIiFjb2xzIl18fFtdKVt1bl18fHt9KS53cHg7bnVsbD09dnImJih2cj0oKEdlWyIhc2hlZXRGb3JtYXQiXXx8e30pLmNvbHx8e30pLndweCl9dmFyIHJyPTA7aWYoem48PTEmJnFuPD0xJiYocnI9KChHZVsiIWNvbHMiXXx8W10pW3VuXXx8e30p'@; put 'LndweCkmJlp0LnN0eWxlLnB1c2goIndpZHRoOiAiK3JyKyJweCIpLEdlWyIhY29uZGZtdCJdJiZnZSh0cixkdCx1bixHZVsiIWNvbmRmbXQiXSxadC5zdHlsZSxHZSksMD09WnQuc3R5bGUubGVuZ3RoP2RlbGV0ZSBadC5zdHlsZTpadC5zdHlsZT1adC5zdHlsZS5qb2luKCI7IiksQ3QuY3Nz'@; put 'KXt2YXIgU249Y3QuaW5kZXhPZihadC5zdHlsZSk7LTE9PVNuJiYoY3QucHVzaChadC5zdHlsZSksU249Y3QubGVuZ3RoLTEpLGRlbGV0ZSBadC5zdHlsZSxadC5jbGFzcz0ic2pzIisoYnR8fCIiKSsiLSIrU259cW4+MSYmKFp0LnJvd3NwYW49cW4pLHpuPjEmJihadC5jb2xzcGFuPXpuKSxD'@; put 'dC5lZGl0YWJsZT9abj0nPHNwYW4gY29udGVudGVkaXRhYmxlPSJ0cnVlIj4nK1puKyI8L3NwYW4+Ijp0ciYmKFp0WyJkYXRhLXQiXT10ciYmdHIudHx8InoiLG51bGwhPXRyLnYmJihadFsiZGF0YS12Il09dHIudiksbnVsbCE9dHIueiYmKFp0WyJkYXRhLXoiXT10ci56KSksWnQuaWQ9KEN0'@; put 'LmlkfHwic2pzIikrIi0iK2VyLGt0LnB1c2goU3IoInRkIixabixadCkpfX12YXIgd2ksbXI9e3N0eWxlOltdfTsod2k9R2VbIiFzaGVldEZvcm1hdCJdKSYmd2kucm93JiYoSTMod2kucm93KSx3aS5yb3cuaHB4JiYobXIuc3R5bGUucHVzaChbImhlaWdodCIsd2kucm93LmhweCsicHgiXSks'@; put 'bXIuaGVpZ2h0PU1hdGgucm91bmQod2kucm93LmhweCkpKTt2YXIgVXI9R2VbIiFyb3dzIl07aWYoVXImJlVyW2R0XSl7dmFyIGppPVVyW2R0XTtqaS5ocHgmJihtci5zdHlsZS5wdXNoKFsiaGVpZ2h0IiwramkuaHB4KyJweCJdKSxtci5oZWlnaHQ9TWF0aC5yb3VuZChqaS5ocHgpKSxqaS5o'@; put 'aWRkZW4mJm1yLnN0eWxlLnB1c2goWyJkaXNwbGF5Iiwibm9uZSJdKX12YXIgX289W107cmV0dXJuIG1yLnN0eWxlPW1yLnN0eWxlLnJldmVyc2UoKS5maWx0ZXIoZnVuY3Rpb24oVGkpe3JldHVybiEoX28uaW5kZXhPZihUaVswXSk+LTF8fChfby5wdXNoKFRpWzBdKSwwKSl9KS5tYXAoZnVu'@; put 'Y3Rpb24oVGkpe3JldHVybiBUaVswXSsiOiIrVGlbMV19KSwwPT1tci5zdHlsZS5sZW5ndGg/ZGVsZXRlIG1yLnN0eWxlOm1yLnN0eWxlPW1yLnN0eWxlLmpvaW4oIjsiKSxTcigidHIiLGt0LmpvaW4oIiIpLG1yKX1mdW5jdGlvbiBnZShHZSxudCxkdCxDdCxjdCxidCl7Q3QuZm9yRWFjaChm'@; put 'dW5jdGlvbihGdCl7aWYoRnQuX3JlZnx8KEZ0Ll9yZWY9InN0cmluZyI9PXR5cGVvZiBGdC5yZWY/V3MoRnQucmVmKTpGdC5yZWYpLCEoRnQuX3JlZi5zLmM+ZHR8fEZ0Ll9yZWYuZS5jPGR0fHxGdC5fcmVmLnMucj5udHx8RnQuX3JlZi5lLnI8bnR8fCJzY2FsZSIhPT1GdC50KSl7aWYoIm4i'@; put 'IT1HZS50KXJldHVybjt2YXIga3Q7aWYobnVsbD09RnQuX21pbil7RnQuX3ZhbHVlcz1bXTtmb3IodmFyIFR0PUZ0Ll9yZWYucy5yO1R0PD1GdC5fcmVmLmUucjsrK1R0KWZvcih2YXIgWnQ9RnQuX3JlZi5zLmM7WnQ8PUZ0Ll9yZWYuZS5jOysrWnQpe3ZhciBwbj1BcnJheS5pc0FycmF5KGJ0'@; put 'KT8oYnRbVHRdfHxbXSlbWnRdOmJ0W2RpKHtyOlR0LGM6WnR9KV07cG4mJiJuIj09cG4udCYmRnQuX3ZhbHVlcy5wdXNoKHBuLnYpfWlmKEZ0Ll92YWx1ZXMuc29ydChmdW5jdGlvbihLbix1bil7cmV0dXJuIEtuLXVufSksRnQuX21pbj1GdC5fdmFsdWVzWzBdLEZ0Ll9tYXg9RnQuX3ZhbHVl'@; put 'cy5zbGljZSgtMSlbMF0sRnQuX2JhbmQ9RnQuX21heC1GdC5fbWluLEZ0LmNtaWQpe3N3aXRjaChGdC5jbWlkLnQpe2Nhc2UibnVtIjpGdC5fbWlkPUZ0LmNtaWQudjticmVhaztjYXNlInBlcmNlbnQiOkZ0Ll9taWQ9RnQuY21pZC52LzEwMCpGdC5fYmFuZCtGdC5fbWluO2JyZWFrO2Nhc2Ui'@; put 'cGVyY2VudGlsZSI6RnQuX21pZD1mdW5jdGlvbiBmbih5LFApe2lmKDA9PVApcmV0dXJuIHlbMF07aWYoMTAwPT1QKXJldHVybiB5W3kubGVuZ3RoLTFdO3ZhciBRPVAvMTAwKih5Lmxlbmd0aC0xKSxyZT1RLU1hdGguZmxvb3IoUSk7cmV0dXJuIHJlKnlbTWF0aC5jZWlsKFEpXSsoMS1yZSkq'@; put 'eVtNYXRoLmZsb29yKFEpXX0oRnQuX3ZhbHVlcyxGdC5jbWlkLnYpfUZ0Ll9iYW5kaD1GdC5fbWF4LUZ0Ll9taWQsRnQuX2JhbmRsPUZ0Ll9taWQtRnQuX21pbn19KGt0PUZ0LmNtaWQ/R2Uudj49RnQuX21pZD9SOShGdC5jbWlkLmNvbG9yLEZ0LmNtYXguY29sb3IsKEdlLnYtRnQuX21pZCkv'@; put 'RnQuX2JhbmRoKTpSOShGdC5jbWluLmNvbG9yLEZ0LmNtaWQuY29sb3IsKEdlLnYtRnQuX21pbikvRnQuX2JhbmRsKTpSOShGdC5jbWluLmNvbG9yLEZ0LmNtYXguY29sb3IsKEdlLnYtRnQuX21pbikvRnQuX2JhbmQpKSYmY3QucHVzaCgiYmFja2dyb3VuZC1jb2xvcjogIyIra3QpfX0pfWZ1'@; put 'bmN0aW9uIF9lKEdlLG50KXt2YXIgZHQ9e3NwYW46bnR8fDEsc3R5bGU6IiJ9LEN0PVtdO3JldHVybiBHZSYmR2Uud3B4JiYoZHQud2lkdGg9TWF0aC5yb3VuZCg0KkdlLndweC8zKSxDdC5wdXNoKCJ3aWR0aDoiKyhHZS53cHh8fDApKyJweCIpKSxDdC5sZW5ndGg+MCYmKGR0LnN0eWxlPUN0'@; put 'LmpvaW4oIjsiKSksU3IoImNvbCIsbnVsbCxkdCl9ZnVuY3Rpb24gdmUoR2UsbnQsZHQpe3ZhciBDdD17Ym9yZGVyOjAsY2VsbHBhZGRpbmc6MCxjZWxsc3BhY2luZzowLHN0eWxlOlsiYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIiwidGFibGUtbGF5b3V0OmZpeGVkIl0uam9pbigiOyIpfTtk'@; put 'dCYmZHQuaWQmJihDdC5pZD1kdC5pZCk7dmFyIGN0PUdlWyIhY29scyJdLGJ0PUdlWyIhc2hlZXRGb3JtYXQiXTtpZihHZSYmY3Qpe2Zvcih2YXIgRnQ9MCxUdD1udC5zLmM7VHQ8PW50LmUuYzsrK1R0KXt2YXIgWnQ9Y3RbVHRdO0Z0Kz1adCYmWnQud3B4P1p0LndweDpidCYmYnQuY29sJiZi'@; put 'dC5jb2wud3B4P2J0LmNvbC53cHg6NTN9Q3Quc3R5bGUrPSI7d2lkdGg6IitGdCsicHgifXZhciBLbixwbj1bIjx0YWJsZSIrUGEoQ3QpKyI+Il07aWYocG4ucHVzaCgiPHN0eWxlPnRkIHsgcGFkZGluZy10b3A6IDFweDsgcGFkZGluZy1yaWdodDoxcHg7IHBhZGRpbmctbGVmdDoxcHg7IHRl'@; put 'eHQtYWxpZ246Z2VuZXJhbDsgdmVydGljYWwtYWxpZ246Ym90dG9tOyBib3JkZXI6MXB4IHNvbGlkOyBib3JkZXItY29sb3I6IisoZHQmJmR0LmdyaWRjb2xvcj9kdC5ncmlkY29sb3I6aG4oR2VbIiFncmlkbGluZXMiXSk/InRyYW5zcGFyZW50IjoiYmxhY2siKSsiOyB3aGl0ZS1zcGFjZTpu'@; put 'b3dyYXA7IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9PC9zdHlsZT4iKSxwbi5wdXNoKCc8Y29sZ3JvdXAgc3Bhbj0iJysobnQuZS5jLW50LnMuYysxKSsnIj4nKSxjdCl7Zm9yKHZhciB1bj1udC5zLmM7dW48TWF0aC5taW4oY3QubGVuZ3RoLG50LmUuYysxKTsrK3VuKSEoS249Y3RbdW5dKSYm'@; put 'YnQmJmJ0LmNvbCYmKEtuPWJ0LmNvbCksS258fChLbj17d3B4OjUzfSkscG4ucHVzaChfZShLbiwxKSk7bnQuZS5jLW50LnMuYysxPmN0Lmxlbmd0aCYmKEtuPW51bGwsYnQmJmJ0LmNvbCYmKEtuPWJ0LmNvbCksS258fChLbj17d3B4OjUzfSkscG4ucHVzaChfZShLbixudC5lLmMtbnQucy5j'@; put 'KzEtY3QubGVuZ3RoKSkpfWVsc2UgS249bnVsbCxidCYmYnQuY29sJiYoS249YnQuY29sKSxLbnx8KEtuPXt3cHg6NTN9KSxwbi5wdXNoKF9lKEtuLG50LmUuYy1udC5zLmMrMSkpO3JldHVybiBwbi5wdXNoKCI8L2NvbGdyb3VwPiIpLHBuLmpvaW4oIiIpfXZhciBTZT0nPGh0bWw+PGhlYWQ+'@; put 'PG1ldGEgY2hhcnNldD0idXRmLTgiLz48dGl0bGU+U2hlZXRKUyBUYWJsZSBFeHBvcnQ8L3RpdGxlPjwvaGVhZD48Ym9keT4nLEhlPSI8L2JvZHk+PC9odG1sPiI7cmV0dXJue3RvX3dvcmtib29rOmZ1bmN0aW9uIFEoR2UsbnQpe3JldHVybiBFZChMKEdlLG50KSxudCl9LHRvX3NoZWV0Okws'@; put 'X3JvdzpyZSxCRUdJTjpTZSxFTkQ6SGUsX3ByZWFtYmxlOnZlLGh0bWxfdG9fcnM6ZnVuY3Rpb24gUChHZSl7dmFyIG50PVtdLGR0PXt9LEN0PTA7cmV0dXJuIEdlLnJlcGxhY2UoLzwoXC8/KShbXlxzPz4hXC86XSo6fCkoW15ccz8+OlwvXSspW14+XSo+L2dtLGZ1bmN0aW9uKGN0LGJ0LEZ0'@; put 'LGt0LFR0KXt2YXIgcG49am4obG4oY3QpWzBdKS5yZXBsYWNlKC9bPFwvPl0vZywiIiksS249R2Uuc2xpY2UoQ3QsVHQpLnJlcGxhY2UoL1xzL2csIiAiKTtzd2l0Y2goS24ubGVuZ3RoPjAmJihudC5wdXNoKHt0OiJzIix2OktuLHM6ZHR9KSxkdD1vbihkdCkpLHBuLnRvTG93ZXJDYXNlKCkp'@; put 'e2Nhc2UiYiI6Ii8iIT1idD9kdC5ib2xkPSEwOmRlbGV0ZSBkdC5ib2xkO2JyZWFrO2Nhc2UiaSI6Ii8iIT1idD9kdC5pdGFsaWM9ITA6ZGVsZXRlIGR0Lml0YWxpYzticmVhaztjYXNlInUiOiIvIiE9YnQ/ZHQudW5kZXJsaW5lPTE6ZGVsZXRlIGR0LnVuZGVybGluZTticmVhaztjYXNlInMi'@; put 'OiIvIiE9YnQ/ZHQuc3RyaWtlPSEwOmRlbGV0ZSBkdC5zdHJpa2V9cmV0dXJuIEN0PVR0K2N0Lmxlbmd0aCxjdH0pLG50fSxmcm9tX3NoZWV0OmZ1bmN0aW9uIEJlKEdlLG50KXt2YXIgZHQ9bnR8fHt9LGN0PW51bGwhPWR0LmZvb3Rlcj9kdC5mb290ZXI6SGUsYnQ9W251bGwhPWR0LmhlYWRl'@; put 'cj9kdC5oZWFkZXI6U2UsIiJdLEZ0PVtdLGt0PShuZXcgRGF0ZSkudmFsdWVPZigpO0dlfHwoR2U9e30pLEdlWyIhcmVmIl18fChHZVsiIXJlZiJdPSJBMTpBMSIpO3ZhciBUdD1XcyhHZVsiIXJlZiJdKTtpZihkdC5kZW5zZT1BcnJheS5pc0FycmF5KEdlKSxkdC5za2lwZW5kKXt2YXIgWnQ9'@; put 'VHQuZS5yO2U6Zm9yKDtadD49VHQucy5yOy0tWnQpZm9yKHZhciBwbj1UdC5lLmM7cG4+PVR0LnMuYzstLXBuKWlmKG51bGwhPSgoZHQuZGVuc2U/KEdlW1p0XXx8W10pW3BuXTpHZVtkaSh7cjpadCxjOnBufSldKXx8e30pLnYpYnJlYWsgZTtUdC5lLnI9WnQ7dmFyIEtuPVR0LmUuYztlOmZv'@; put 'cig7S24+PVR0LnMuYzstLUtuKWZvcih2YXIgdW49VHQuZS5yO3VuPj1UdC5zLnI7LS11bilpZihudWxsIT0oKGR0LmRlbnNlPyhHZVt1bl18fFtdKVtLbl06R2VbZGkoe3I6dW4sYzpLbn0pXSl8fHt9KS52KWJyZWFrIGU7VHQuZS5jPUtufWJ0LnB1c2godmUoR2UsVHQsZHQpKTtmb3IodmFy'@; put 'IHFuPVR0LnMucjtxbjw9VHQuZS5yOysrcW4pYnQucHVzaChyZShHZSxUdCxxbixkdCxGdCxrdCkpO3JldHVybiBidC5wdXNoKCI8L3RhYmxlPiIrY3QpLGR0LmNzcyYmKGJ0WzFdPSI8c3R5bGU+XG4iK0Z0Lm1hcChmdW5jdGlvbih6bixrbil7cmV0dXJuIi5zanMiK2t0KyItIitrbisiIHsi'@; put 'K3puKyJ9In0pLmpvaW4oIlxuIikrIjwvc3R5bGU+IiksYnQuam9pbigiIil9fX0oKTtmdW5jdGlvbiB2Zih5LFAsTCl7dmFyIFE9e307aWYodHlwZW9mIGdldENvbXB1dGVkU3R5bGU+InUiKXJldHVybiBRO3ZhciByZT1nZXRDb21wdXRlZFN0eWxlKHkpO2lmKCg3MDA9PXJlWyJmb250LXdl'@; put 'aWdodCJdfHwiYm9sZCI9PXJlWyJmb250LXdlaWdodCJdKSYmKFEuYm9sZD0hMCksKHJlWyJmb250LXN0eWxlIl18fCIiKS5tYXRjaCgvaXRhbGljLykmJihRLml0YWxpYz0hMCksKHJlWyJ0ZXh0LWRlY29yYXRpb24iXXx8IiIpLm1hdGNoKC91bmRlcmxpbmUvKSYmKFEudW5kZXJsaW5lPTEp'@; put 'LChyZVsidGV4dC1kZWNvcmF0aW9uIl18fCIiKS5tYXRjaCgvbGluZS10aHJvdWdoLykmJihRLnN0cmlrZT0xKSxwYXJzZUludChyZVsiZm9udC1zaXplIl0pJiYoUS5zej1wYXJzZUZsb2F0KHJlWyJmb250LXNpemUiXSkqKHJlWyJmb250LXNpemUiXS5tYXRjaCgvcHgvKT8zLzQ6MSkpLHJl'@; put 'WyJmb250LWZhbWlseSJdJiYoUS5uYW1lPXJlWyJmb250LWZhbWlseSJdLnNwbGl0KCIsIilbMF0ucmVwbGFjZSgvXHMqIlxzKi9nLCIiKSkscmUuY29sb3Ipe3ZhciBnZT1ONChyZS5jb2xvci50b0xvd2VyQ2FzZSgpLCEwKTtnZT49MCYmKFEuY29sb3I9e3JnYjpnZX0pfXN3aXRjaChyZVsi'@; put 'dGV4dC10cmFuc2Zvcm0iXSYmKFEudGV4dF90cmFuc2Zvcm09cmVbInRleHQtdHJhbnNmb3JtIl0udG9Mb3dlckNhc2UoKSksIm5vbmUiIT0ocmVbInRleHQtc2hhZG93Il18fCJub25lIikmJihRLnNoYWRvdz0hMCkscmVbInRleHQtYWxpZ24iXSl7Y2FzZSJjZW50ZXIiOlEuYWxpZ25tZW50'@; put 'PXtob3Jpem9udGFsOiJjZW50ZXIifTticmVhaztjYXNlInJpZ2h0IjpRLmFsaWdubWVudD17aG9yaXpvbnRhbDoicmlnaHQifTticmVhaztjYXNlImxlZnQiOlEuYWxpZ25tZW50PXtob3Jpem9udGFsOiJsZWZ0In07YnJlYWs7Y2FzZSJqdXN0aWZ5IjpRLmFsaWdubWVudD17aG9yaXpvbnRh'@; put 'bDoianVzdGlmeSJ9fXN3aXRjaChyZVsidmVydGljYWwtYWxpZ24iXSl7Y2FzZSJ0b3AiOmNhc2UibWlkZGxlIjpjYXNlImJvdHRvbSI6US5hbGlnbm1lbnR8fChRLmFsaWdubWVudD17fSksUS5hbGlnbm1lbnQudmVydGljYWw9cmVbInZlcnRpY2FsLWFsaWduIl0sIm1pZGRsZSI9PVEuYWxp'@; put 'Z25tZW50LnZlcnRpY2FsJiYoUS5hbGlnbm1lbnQudmVydGljYWw9ImNlbnRlciIpO2JyZWFrO2Nhc2Uic3ViIjpjYXNlInN1cGVyIjpRLnZhbGlnbj1yZVsidmVydGljYWwtYWxpZ24iXSxRLnN6JiYoUS5zei89LjgzKX12YXIgX2U9UCYmZ2V0Q29tcHV0ZWRTdHlsZShQKTtyZXR1cm4gX2Um'@; put 'JkwmJlAmJlsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIl0uZm9yRWFjaChmdW5jdGlvbih2ZSl7dmFyIFNlPXZlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3ZlLnNsaWNlKDEpLEhlPV9lWyJib3JkZXItIit2ZSsiLXN0eWxlIl07aWYoKCJub25lIj09SGV8fCFIZSkmJihIZT1fZVsi'@; put 'Ym9yZGVyIitTZSsiU3R5bGUiXSksIm5vbmUiIT1IZSYmSGUpe3ZhciBCZT1wYXJzZUludChfZVsiYm9yZGVyLSIrdmUrIi13aWR0aCJdfHxfZVsiYm9yZGVyIitTZSsiV2lkdGgiXSwxMCksR2U9InRoaW4iO2lmKEJlPjApe3N3aXRjaChIZSl7Y2FzZSJkb3VibGUiOkdlPSJkb3VibGUiO2Jy'@; put 'ZWFrO2Nhc2UiZGFzaGVkIjpHZT1CZT49Mj8ibWVkaXVtRGFzaGVkIjoiZGFzaGVkIjticmVhaztjYXNlImRvdHRlZCI6R2U9QmU+PTI/Im1lZGl1bURhc2hEb3REb3QiOiJkb3R0ZWQiO2JyZWFrO2Nhc2Uic29saWQiOkdlPUJlPj0zPyJ0aGljayI6QmU+PTI/Im1lZGl1bSI6InRoaW4ifWlm'@; put 'KFFbdmVdPXtzdHlsZTpHZX0sX2VbImJvcmRlci0iK3ZlKyItY29sb3IiXXx8X2VbImJvcmRlciIrU2UrIkNvbG9yIl0pe3ZhciBudD1ONCgoX2VbImJvcmRlci0iK3ZlKyItY29sb3IiXXx8X2VbImJvcmRlciIrU2UrIkNvbG9yIl0pLnRvTG93ZXJDYXNlKCksITApO250Pj0wJiYoUVt2ZV0u'@; put 'Y29sb3I9e3JnYjpudH0pfX19fSksUX1mdW5jdGlvbiBvXyh5LFAsTCl7dmFyIFE9eS5jaGlsZE5vZGVzO2lmKDE9PXkubm9kZVR5cGUpc3dpdGNoKHkudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlInAiOlAubGVuZ3RoPjAmJlAucHVzaCh7dDoidCIsdjoiXG4iLHM6TH0pO2JyZWFrO2Nh'@; put 'c2Uic2VsZWN0IjpyZXR1cm4gZnVuY3Rpb24gYVIoeSxQLEwpe1AucHVzaCh7dDoidCIsdjp5LmNoaWxkcmVuW3kuc2VsZWN0ZWRJbmRleF0uaW5uZXJUZXh0LHM6TH0pfSh5LFAsTCl9aWYoUS5sZW5ndGg+MCl7dmFyIHJlPXZmKHksbnVsbCwhMSk7TCYmKEwudW5kZXJsaW5lJiYocmUudW5k'@; put 'ZXJsaW5lPUwudW5kZXJsaW5lKSxMLnN0cmlrZSYmKHJlLnN0cmlrZT1MLnN0cmlrZSkpO2Zvcih2YXIgZ2U9MDtnZTxRLmxlbmd0aDsrK2dlKXt0cnl7aWYoUVtnZV0uZ2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpKWNvbnRpbnVlfWNhdGNoe31vXyhRW2dlXSxQLHJlKX1kZWxldGUgcmUu'@; put 'dGV4dF90cmFuc2Zvcm19ZWxzZSBpZigzPT15Lm5vZGVUeXBlKXt2YXIgX2U9e3Q6InQiLHY6eS5ub2RlVmFsdWUucmVwbGFjZSgvXltcbiBdKy8sIiAiKS5yZXBsYWNlKC9bXG4gXSskLywiICIpLHM6TH07c3dpdGNoKEwudGV4dF90cmFuc2Zvcm0pe2Nhc2UidXBwZXJjYXNlIjpfZS52PV9l'@; put 'LnYudG9VcHBlckNhc2UoKTticmVhaztjYXNlImxvd2VyY2FzZSI6X2Uudj1fZS52LnRvTG93ZXJDYXNlKCl9KFAubGVuZ3RoPjB8fF9lLnYmJiIgIiE9X2UudikmJlAucHVzaChfZSl9ZWxzZSAxPT15Lm5vZGVUeXBlJiYiYnIiPT09eS50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJlAucHVzaCh7'@; put 'dDoidCIsdjoiXG4iLHM6TH0pfWZ1bmN0aW9uIHNfKHksUCxMLFEscmUpe3ZhciBfZSxnZT15LmlubmVySFRNTDtpZih0eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZTwidSIpc3dpdGNoKF9lPWdldENvbXB1dGVkU3R5bGUoeSksKF9lWyJ3aGl0ZS1zcGFjZSJdfHwiIikubWF0Y2goL3ByZS8pJiYo'@; put 'Z2U9Z2UucmVwbGFjZSgvXG4vZywiPGJyLz4iKSksKF9lWyJ0ZXh0LXRyYW5zZm9ybSJdfHwiIikudG9Mb3dlckNhc2UoKSl7Y2FzZSJ1cHBlcmNhc2UiOmdlPWdlLnRvVXBwZXJDYXNlKCk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOmdlPWdlLnRvTG93ZXJDYXNlKCl9dmFyIHZlPWZ1bmN0aW9u'@; put 'IHNSKHksUCxMLFEpe3ZhciByZT17dDoicyIsdjpQfSxnZT0iIjtpZih5KXtMPXkuZ2V0QXR0cmlidXRlKCJkYXRhLXQiKXx8eS5nZXRBdHRyaWJ1dGUoInQiKTt2YXIgX2U9eS5nZXRBdHRyaWJ1dGUoImRhdGEtdiIpfHx5LmdldEF0dHJpYnV0ZSgidiIpO2lmKG51bGwhPShnZT15LmdldEF0'@; put 'dHJpYnV0ZSgiZGF0YS16Iil8fHkuZ2V0QXR0cmlidXRlKCJ6IikpJiYocmUuej1nZSksbnVsbCE9TCYmbnVsbCE9X2UpcmV0dXJuIHJlLnQ9TCxyZS52PV9lLHJlfXJldHVybiBudWxsIT1QJiYoMD09UC5sZW5ndGg/cmUudD1MfHwieiI6US5yYXd8fCFQLnRyaW0oKS5sZW5ndGh8fCJzIj09'@; put 'THx8KHJlPSRuKFAsUSkpKSxnZSYmKHJlLno9Z2UpLHJlfSh5LE9jKGdlKSxMLHJlKTtpZih0eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZTwidSImJih2ZS5zPXZmKHksUCxyZS5ib3JkZXJzKSxkZWxldGUgdmUucy50ZXh0X3RyYW5zZm9ybSx5LmNoaWxkTm9kZXMubGVuZ3RoPjF8fDE9PXkuY2hp'@; put 'bGROb2Rlcy5sZW5ndGgmJjMhPXkuY2hpbGROb2Rlc1swXS5ub2RlVHlwZSkpc3dpdGNoKG9fKHksdmUuUj1bXSxudWxsKSx2ZS5SJiZ2ZS5SW3ZlLlIubGVuZ3RoLTFdJiYiXG4iPT12ZS5SW3ZlLlIubGVuZ3RoLTFdLnYmJnZlLlIubGVuZ3RoLS0sKF9lWyJ0ZXh0LXRyYW5zZm9ybSJdfHwi'@; put 'IikudG9Mb3dlckNhc2UoKSl7Y2FzZSJ1cHBlcmNhc2UiOnZlLlIuZm9yRWFjaChmdW5jdGlvbihudCl7bnQudj1udC52LnRvVXBwZXJDYXNlKCl9KTticmVhaztjYXNlImxvd2VyY2FzZSI6dmUuUi5mb3JFYWNoKGZ1bmN0aW9uKG50KXtudC52PW50LnYudG9Mb3dlckNhc2UoKX0pfWlmKCJz'@; put 'Ij09dmUudCl7dmFyIFNlPXZlLnYubWF0Y2goL1xuLyk7IVNlJiZ2ZS5SJiZ2ZS5SLmZvckVhY2goZnVuY3Rpb24obnQpeyJzdHJpbmciPT10eXBlb2YgbnQudiYmbnQudi5tYXRjaCgvXG4vKSYmKFNlPSEwKX0pLCJzIj09dmUudCYmU2UmJih2ZS5zfHwodmUucz17fSksdmUucy5hbGlnbm1l'@; put 'bnR8fCh2ZS5zLmFsaWdubWVudD17fSksdmUucy5hbGlnbm1lbnQud3JhcFRleHQ9ITApfWlmKFApe3ZhciBIZT0iIixCZT1QLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBIik7aWYoQmUmJkJlLmxlbmd0aClmb3IodmFyIEdlPTA7R2U8QmUubGVuZ3RoJiYoIUJlW0dlXS5oYXNBdHRyaWJ1dGUo'@; put 'ImhyZWYiKXx8IiMiPT0oSGU9QmVbR2VdLmdldEF0dHJpYnV0ZSgiaHJlZiIpKS5jaGFyQXQoMCkpOysrR2UpO0hlJiYiIyIhPUhlLmNoYXJBdCgwKSYmKHZlLmw9e1RhcmdldDpIZX0pfXJldHVybiB2ZX1mdW5jdGlvbiBBTSh5LFAsTCl7dmFyIHJlLFE9UC5yb3dzO2lmKCFRKXtpZihMJiZu'@; put 'dWxsIT1MLm9yaWdpbil0aHJvdyJVbnN1cHBvcnRlZCBvcmlnaW4gd2hlbiAiK1AudGFnTmFtZSsiIGlzIG5vdCBhIFRBQkxFIjtyZXR1cm4gZnVuY3Rpb24ga00oeSxQLEwpe0w9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShMfHx7fSkpO3ZhciBnZT17czp7cjowLGM6MH0sZTp7cjowLGM6'@; put 'MH19O3lbIiFtZXJnZXMiXXx8KHlbIiFtZXJnZXMiXT1bXSk7Zm9yKHZhciB2ZSxfZT1QLmNoaWxkcmVuLFNlPTAsSGU9MDtIZTxfZS5sZW5ndGg7KytIZSl7dmFyIG50LEJlPV9lW0hlXSxHZT0iIjt0cnl7dHlwZW9mIGdldENvbXB1dGVkU3R5bGU8InUiP250PWdldENvbXB1dGVkU3R5bGU6'@; put 'QmUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyYmImZ1bmN0aW9uIj09dHlwZW9mIEJlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSYmKG50PUJlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSl9Y2F0Y2h7fWlmKCFudHx8Im5v'@; put 'bmUiIT1udChCZSkuZGlzcGxheSlzd2l0Y2goQmUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKXtjYXNlIlRBQkxFIjpTZT0tMSx5WyIhcmVmIl0mJihMLm9yaWdpbj0tMSksQU0oeSxCZSxMKTticmVhaztjYXNlIkJSIjpjYXNlIkhSIjpTZT0tMSx5WyIhcmVmIl0/KCsrKGdlPVdzKHlbIiFyZWYi'@; put 'XSkpLmUucix5WyIhcmVmIl09T28oZ2UpKTp5WyIhcmVmIl09IkExOkExIjticmVhaztjYXNlIkRJViI6Y2FzZSJQIjpjYXNlIkgxIjpjYXNlIkgyIjpjYXNlIkgzIjpjYXNlIkg0IjpjYXNlIkg1IjpjYXNlIkg2IjpTZT0tMSx2ZT1zXyhCZSxudWxsLCIiLDAsTCkseVsiIXJlZiJdPyhMLm9y'@; put 'aWdpbj0tMSxzMCh5LFtbdmVdXSxMKSk6KHlbIiFyZWYiXT0iQTEiLEFycmF5LmlzQXJyYXkoeSk/KHlbMF18fCh5WzBdPVtdKSx5WzBdWzBdPXZlKTp5LkExPXZlKSx5WyIhcm93cyJdfHwoeVsiIXJvd3MiXT1bXSksbnQmJihnZT1Xcyh5WyIhcmVmIl0pLChHZT1udChCZSkuaGVpZ2h0KSYm'@; put 'ImF1dG8iIT1HZSYmKHlbIiFyb3dzIl1bZ2UuZS5yXT17aHB0OnBhcnNlSW50KEdlLDEwKX0pKTticmVhaztjYXNlIlNQQU4iOmNhc2UiQSI6Y2FzZSJCIjpjYXNlIkVNIjpjYXNlIkkiOmNhc2UiRk9OVCI6Y2FzZSJTIjpjYXNlIlNVQiI6Y2FzZSJTVVAiOmNhc2UiVSI6dmU9c18oQmUsbnVs'@; put 'bCwiIiwwLEwpLHlbIiFyZWYiXXx8KHlbIiFyZWYiXT0iQTE6QTEiKSxzMCh5LFtbdmVdXSx7b3JpZ2luOmRpKHtyOihTZTwwPzE6MCkrKGdlPVdzKHlbIiFyZWYiXSkpLmUucixjOisrU2V9KX0pO2JyZWFrO2Nhc2UiREwiOmNhc2UiVUwiOmNhc2UiT0wiOlNlPS0xLGNvbnNvbGUuZXJyb3Io'@; put 'IkhUTUwgQ29udmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IGxpc3QgZWxlbWVudCAiK0JlLnRhZ05hbWUudG9VcHBlckNhc2UoKSk7YnJlYWs7ZGVmYXVsdDpTZT0tMSxjb25zb2xlLmVycm9yKCJTa2lwcGluZyAiK0JlLnRhZ05hbWUudG9VcHBlckNhc2UoKSl9fXJldHVybiB5fSh5LFAsTCl9'@; put 'dHJ5e3R5cGVvZiBnZXRDb21wdXRlZFN0eWxlPCJ1Ij9yZT1nZXRDb21wdXRlZFN0eWxlOlAub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyYmImZ1bmN0aW9uIj09dHlwZW9mIFAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYocmU9UC5vd25lckRvY3VtZW50'@; put 'LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpfWNhdGNoe312YXIgZ2U9THx8e307bnVsbCE9dGUmJihnZS5kZW5zZT10ZSk7dmFyIF9lPTAsdmU9MDtpZihudWxsIT1nZS5vcmlnaW4paWYoIm51bWJlciI9PXR5cGVvZiBnZS5vcmlnaW4pX2U9Z2Uub3JpZ2luO2Vsc2V7dmFyIFNlPSJz'@; put 'dHJpbmciPT10eXBlb2YgZ2Uub3JpZ2luP3NzKGdlLm9yaWdpbik6Z2Uub3JpZ2luO19lPVNlLnIsdmU9U2UuY312YXIgSGU9TWF0aC5taW4oZ2Uuc2hlZXRSb3dzfHwxZTcsUS5sZW5ndGgpLEJlPXtzOntyOjAsYzowfSxlOntyOl9lLGM6dmV9fTtpZih5WyIhcmVmIl0pe3ZhciBHZT1Xcyh5'@; put 'WyIhcmVmIl0pO0JlLnMucj1NYXRoLm1pbihCZS5zLnIsR2Uucy5yKSxCZS5zLmM9TWF0aC5taW4oQmUucy5jLEdlLnMuYyksQmUuZS5yPU1hdGgubWF4KEJlLmUucixHZS5lLnIpLEJlLmUuYz1NYXRoLm1heChCZS5lLmMsR2UuZS5jKSwtMT09X2UmJihCZS5lLnI9X2U9R2UuZS5yKzEpfXZh'@; put 'ciBudD1bXSxkdD0wLEN0PXlbIiFyb3dzIl18fCh5WyIhcm93cyJdPVtdKSxjdD0wLGJ0PTAsRnQ9MCxrdD0wLFR0PTAsWnQ9MDtmb3IoeVsiIWNvbHMiXXx8KHlbIiFjb2xzIl09W10pO2N0PFEubGVuZ3RoJiZidDxIZTsrK2N0KXtmb3IodmFyIHBuPVFbY3RdLEtuPXBuLnBhcmVudEVsZW1l'@; put 'bnQ7IlRBQkxFIiE9S24udGFnTmFtZS50b1VwcGVyQ2FzZSgpOylLbj1Lbi5wYXJlbnRFbGVtZW50O2lmKEtuPT1QKXtlOmlmKHR5cGVvZiByZTwidSIpe3ZhciB1bj1yZShwbik7aWYobnVsbD09dW4pYnJlYWsgZTtpZih1bi5zdHlsZXx8KHVuLnN0eWxlPXt9KSxnZS5kaXNwbGF5JiYibm9u'@; put 'ZSI9PSh1bi5kaXNwbGF5fHx1bi5zdHlsZS5kaXNwbGF5KSljb250aW51ZTsibm9uZSI9PSh1bi5kaXNwbGF5fHx1bi5zdHlsZS5kaXNwbGF5KSYmKChDdFtidF18fChDdFtidF09e30pKS5oaWRkZW49ITApfXZhciBxbj1wbi5jZWxscztmb3IoRnQ9a3Q9MDtGdDxxbi5sZW5ndGg7KytGdCl7'@; put 'dmFyIHpuPXFuW0Z0XSxrbj1udWxsO2lmKCEodHlwZW9mIHJlPCJ1IiYmKG51bGw9PWtuJiYoa249cmUoem4pKSxrbi5zdHlsZXx8KGtuLnN0eWxlPXt9KSxnZS5kaXNwbGF5JiZudWxsIT1rbiYmIm5vbmUiPT0oa24uZGlzcGxheXx8a24uc3R5bGUuZGlzcGxheSkpKSl7Zm9yKFp0PSt6bi5n'@; put 'ZXRBdHRyaWJ1dGUoImNvbHNwYW4iKXx8MSxkdD0wO2R0PG50Lmxlbmd0aDsrK2R0KXt2YXIgZXI9bnRbZHRdO2VyLnMuYz09a3QrdmUmJmVyLnMucjxidCtfZSYmYnQrX2U8PWVyLmUuciYmKGt0PWVyLmUuYysxLXZlLGR0PS0xKX0oKFR0PSt6bi5nZXRBdHRyaWJ1dGUoInJvd3NwYW4iKXx8'@; put 'MSk+MXx8WnQ+MSkmJm50LnB1c2goe3M6e3I6YnQrX2UsYzprdCt2ZX0sZTp7cjpidCtfZSsoVHR8fDEpLTEsYzprdCt2ZSsoWnR8fDEpLTF9fSk7dmFyIHRyPXpuLmdldEF0dHJpYnV0ZSgidCIpfHwiIixabj16bi5nZXRBdHRyaWJ1dGUoImJnY29sb3IiKTtlOmlmKHR5cGVvZiByZTwidSIp'@; put 'e2lmKG51bGw9PWtuJiYoa249cmUoem4pKSxudWxsPT1rbilicmVhayBlO2lmKGtuLnN0eWxlfHwoa24uc3R5bGU9e30pLDE9PVp0JiZrbi53aWR0aCYmKHlbIiFjb2xzIl1ba3QrdmVdPXlbIiFjb2xzIl1ba3QrdmVdfHx7fSxrbi53aWR0aC5tYXRjaCgvcHgvKT95WyIhY29scyJdW2t0K3Zl'@; put 'XS53cHg9TWF0aC5tYXgocGFyc2VJbnQoa24ud2lkdGgsMTApKzUseVsiIWNvbHMiXVtrdCt2ZV0ud3B4fHwwKTprbi53aWR0aC5tYXRjaCgvcHQvKSYmKHlbIiFjb2xzIl1ba3QrdmVdLndweD1NYXRoLm1heCg0KnBhcnNlSW50KGtuLndpZHRoLDEwKS8zKzUseVsiIWNvbHMiXVtrdCt2ZV0u'@; put 'd3B4fHwwKSkpLFR0PD0xKXtDdFtidCtfZV18fChDdFtidCtfZV09e30pO3ZhciBCcj1rbi5oZWlnaHQ7KEJyPUJyLm1hdGNoKC9wdC8pP1UxKHBhcnNlSW50KEJyLDEwKSk6cGFyc2VJbnQoQnIsMTApKT4oQ3RbYnQrX2VdLmhweHx8VTEoQ3RbYnQrX2VdLmhwdCl8fDApJiYoZGVsZXRlIEN0'@; put 'W2J0K19lXS5ocHQsQ3RbYnQrX2VdLmhweD1Ccil9fXZhciBzaT16bjtpZih6bi5maXJzdEVsZW1lbnRDaGlsZCYmMT09em4uY2hpbGRyZW4ubGVuZ3RoJiYic3BhbiI9PXpuLmZpcnN0RWxlbWVudENoaWxkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpe2Zvcih2YXIgeGk9MCxMaT16bi5jaGls'@; put 'ZE5vZGVzLFFyPTA7UXI8TGkubGVuZ3RoOysrUXIpMz09TGlbUXJdLm5vZGVUeXBlJiYrK3hpOzA9PXhpJiYoem49em4uZmlyc3RFbGVtZW50Q2hpbGQpfXZhciB1cj1zXyh6bixzaSx0ciwwLGdlKTtpZihrbil7dmFyIEFuPXJlKHpuKTtpZihBbiYmIUFuLnN0eWxlJiYoQW4uc3R5bGU9e30p'@; put 'LChBbiYmQW5bImJhY2tncm91bmQtY29sb3IiXXx8a25bImJhY2tncm91bmQtY29sb3IiXSkmJih1ci5zfHwodXIucz17fSksIXVyLnMuZmdDb2xvcikpdHJ5e3ZhciB2cj1BbiYmQW5bImJhY2tncm91bmQtY29sb3IiXXx8a25bImJhY2tncm91bmQtY29sb3IiXTt2ci5tYXRjaCgvcmdiYVso'@; put 'XVxzKjAuKlspXS9pKSYmKHZyPWtuWyJiYWNrZ3JvdW5kLWNvbG9yIl0pO3ZhciBycj1ONCh2ci50b0xvd2VyQ2FzZSgpLCEwKTtycj49MCYmKHVyLnMuZmdDb2xvcj17cmdiOnJyfSl9Y2F0Y2h7fXN3aXRjaChrblsidmVydGljYWwtYWxpZ24iXSl7Y2FzZSJtaWRkbGUiOmNhc2UiYmFzZWxp'@; put 'bmUiOnVyLnN8fCh1ci5zPXt9KSx1ci5zLmFsaWdubWVudHx8KHVyLnMuYWxpZ25tZW50PXt9KSx1ci5zLmFsaWdubWVudC52ZXJ0aWNhbD0iY2VudGVyIn19aWYoWm4mJih1ci5zfHwodXIucz17fSksIXVyLnMuZmdDb2xvcikpdHJ5e3ZhciBTbj1ONChabi50b0xvd2VyQ2FzZSgpLCEwKTtT'@; put 'bj49MCYmKHVyLnMuZmdDb2xvcj17cmdiOlNufSl9Y2F0Y2h7fWlmKGdlLmRlbnNlPyh5W2J0K19lXXx8KHlbYnQrX2VdPVtdKSx5W2J0K19lXVtrdCt2ZV09dXIpOnlbZGkoe2M6a3QrdmUscjpidCtfZX0pXT11cixUdD4xfHxadD4xKWZvcih2YXIgbXI9YnQ7bXI8YnQrVHQ7Kyttcilmb3Io'@; put 'dmFyIHdpPWt0O3dpPGt0K1p0Oysrd2kpYnQ9PW1yJiZrdD09d2l8fChnZS5kZW5zZT8oeVttcitfZV18fCh5W21yK19lXT1bXSkseVttcitfZV1bd2krdmVdPXt0OiJ6IixzOm9uKHVyLnN8fHt9KX0pOnlbZGkoe2M6d2krdmUscjptcitfZX0pXT17dDoieiIsczpvbih1ci5zfHx7fSl9KTtC'@; put 'ZS5lLmM8a3QrdmUmJihCZS5lLmM9a3QrdmUpLGt0Kz1adH19KytidH19aWYobnQubGVuZ3RoJiYoeVsiIW1lcmdlcyJdPSh5WyIhbWVyZ2VzIl18fFtdKS5jb25jYXQobnQpKSxCZS5lLnI9TWF0aC5tYXgoQmUuZS5yLGJ0LTErX2UpLHlbIiFyZWYiXT1PbyhCZSksYnQ+PUhlJiYoeVsiIWZ1'@; put 'bGxyZWYiXT1PbygoQmUuZS5yPVEubGVuZ3RoLWN0K2J0LTErX2UsQmUpKSksZ2UuYm9yZGVycylmb3IoYnQ9QmUucy5yO2J0PD1CZS5lLnI7KytidClmb3Ioa3Q9QmUucy5jO2t0PD1CZS5lLmM7KytrdClpZighZ2UuZGVuc2Upe3ZhciBVcj15W2RpKHtyOmJ0LGM6a3R9KV07aWYoIVVyfHwh'@; put 'VXIucyljb250aW51ZTtpZihidD4wKXt2YXIgamk9eVtkaSh7cjpidC0xLGM6a3R9KV07amkmJmppLnMmJmppLnMuYm90dG9tJiZkZWxldGUgVXIucy50b3B9aWYoa3Q+MCl7dmFyIF9vPXlbZGkoe3I6YnQsYzprdC0xfSldO19vJiZfby5zJiZfby5zLmJvdHRvbSYmZGVsZXRlIFVyLnMubGVm'@; put 'dH19cmV0dXJuIHl9ZnVuY3Rpb24gSHUoeSxQKXtyZXR1cm4gQU0oKFB8fHt9KS5kZW5zZT9bXTp7fSx5LFApfXZhciBRMD1mdW5jdGlvbigpe3ZhciB5PWZ1bmN0aW9uKFEscmUsZ2Upe3ZhciBfZT1RLnJlcGxhY2UoL1tcdFxyXG5dL2csIiAiKS50cmltKCkucmVwbGFjZSgvICsvZywiICIp'@; put 'LnJlcGxhY2UoLzx0ZXh0OnNcLz4vZywiICIpLnJlcGxhY2UoLzx0ZXh0OnMgdGV4dDpjPSIoXGQrKSJcLz4vZyxmdW5jdGlvbihCZSxHZSl7cmV0dXJuIEFycmF5KHBhcnNlSW50KEdlLDEwKSsxKS5qb2luKCIgIil9KS5yZXBsYWNlKC88dGV4dDp0YWJbXj5dKlwvPi9nLCJcdCIpLnJlcGxh'@; put 'Y2UoLzx0ZXh0OmxpbmUtYnJlYWtcLz4vZywiXG4iKSx2ZT14cihfZS5yZXBsYWNlKC88W14+XSo+L2csIiIpKSxTZT1bXSxIZT0wO3JldHVybiBfZS5yZXBsYWNlKC8oPHRleHQ6c3Bhbi4qPz4pKC4qPyk8W1wvXXRleHQ6c3Bhbj4vZyxmdW5jdGlvbihCZSxHZSxudCxkdCl7ZHQhPUhlJiZT'@; put 'ZS5wdXNoKHt0OiJzIix2OnhyKF9lLnNsaWNlKEhlLGR0KSl9KTt2YXIgQ3Q9e3Q6InMiLHY6eHIobnQpfSxjdD1sbihHZSlbInN0eWxlLW5hbWUiXTtyZXR1cm4gY3QmJmdlW2N0XSYmKEN0LnM9b24oZ2VbY3RdKSksU2UucHVzaChDdCksSGU9ZHQrQmUubGVuZ3RoLCIifSksSGU8X2UubGVu'@; put 'Z3RoJiZTZS5wdXNoKHt0OiJzIix2OnhyKF9lLnNsaWNlKEhlKSl9KSxbdmUsU2VdfSxQPXtkYXk6WyJkIiwiZGQiXSxtb250aDpbIm0iLCJtbSJdLHllYXI6WyJ5IiwieXkiXSxob3VyczpbImgiLCJoaCJdLG1pbnV0ZXM6WyJtIiwibW0iXSxzZWNvbmRzOlsicyIsInNzIl0sImFtLXBtIjpb'@; put 'IkEvUCIsIkFNL1BNIl0sImRheS1vZi13ZWVrIjpbImRkZCIsImRkZGQiXSxlcmE6WyJlIiwiZWUiXSxxdWFydGVyOlsiXFxRbSIsJ21cXCJ0aCBxdWFydGVyIiddfSxMPWZ1bmN0aW9uKFEscmUpe3ZhciBnZT1sbihRLnNsaWNlKDAsUS5pbmRleE9mKCI+IikpKSxfZT1RLnNsaWNlKFEuaW5k'@; put 'ZXhPZigiPiIpKzEpLHZlPXtuYW1lOmdlLm5hbWUsZmFtaWx5OmdlLmZhbWlseX07W1sicGFyZW50IiwicGFyZW50LXN0eWxlLW5hbWUiXSxbImRhdGFuYW1lIiwiZGF0YS1zdHlsZS1uYW1lIl0sWyJtcG5hbWUiLCJtYXN0ZXItcGFnZS1uYW1lIl1dLmZvckVhY2goZnVuY3Rpb24oSGUpe2dl'@; put 'W0hlWzFdXSYmKHZlW0hlWzBdXT1nZVtIZVsxXV0pfSk7dmFyIFNlPXt9O19lLnJlcGxhY2UoJHQsZnVuY3Rpb24oSGUpe3ZhciBCZT1sbihIZSk7aWYoIjxzdHlsZTp0ZXh0LXByb3BlcnRpZXMiPT09QmVbMF0pe2lmKEJlWyJmb250LXdlaWdodCJdJiYoU2UuYm9sZD0rKCJib2xkIj09QmVb'@; put 'ImZvbnQtd2VpZ2h0Il18fCI3MDAiPT1CZVsiZm9udC13ZWlnaHQiXSkpLCgiaXRhbGljIj09QmVbImZvbnQtc3R5bGUiXXx8Im9ibGlxdWUiPT1CZVsiZm9udC1zdHlsZSJdKSYmKFNlLml0YWxpYz0xKSwibm9uZSIhPShCZVsidGV4dC11bmRlcmxpbmUtc3R5bGUiXXx8Im5vbmUiKT9TZS51'@; put 'bmRlcmxpbmU9ImRvdWJsZSI9PUJlWyJ0ZXh0LXVuZGVybGluZS10eXBlIl0/MjoxOihCZVsidGV4dC11bmRlcmxpbmUtc3R5bGUiXXx8Im5vbmUiPT1CZVsidGV4dC11bmRlcmxpbmUtdHlwZSJdKSYmKFNlLnVuZGVybGluZT0wKSwoQmVbImZvbnQtc2l6ZSJdfHwiIikubWF0Y2goL3B0JC8p'@; put 'JiYoU2Uuc3o9K0JlWyJmb250LXNpemUiXS5yZXBsYWNlKCJwdCIsIiIpKSwibm9uZSIhPShCZVsidGV4dC1saW5lLXRocm91Z2gtc3R5bGUiXXx8Im5vbmUiKSYmKFNlLnN0cmlrZT0xKSxCZVsiZm9udC1uYW1lIl0mJihTZS5uYW1lPUJlWyJmb250LW5hbWUiXSksQmUuY29sb3Ipe3ZhciBH'@; put 'ZT1ONChCZS5jb2xvciwhMCk7R2U+PTAmJihTZS5jb2xvcj1HZSl9c3dpdGNoKEJlWyJ0ZXh0LXBvc2l0aW9uIl0pe2Nhc2Uic3VwZXIiOlNlLnZhbGlnbj0ic3VwZXIiO2JyZWFrO2Nhc2Uic3ViIjpTZS52YWxpZ249InN1YiI7YnJlYWs7ZGVmYXVsdDooQmVbInRleHQtcG9zaXRpb24iXXx8'@; put 'IiIpLm1hdGNoKC8lLykmJihTZS52YWxpZ249Ii0iPT1CZVsidGV4dC1wb3NpdGlvbiJdLmNoYXJBdCgwKT8ic3ViIjoic3VwZXIiKX0ibm9uZSIhPShCZVsidGV4dC1zaGFkb3ciXXx8Im5vbmUiKSYmKFNlLnNoYWRvdz0xKX1yZXR1cm4iIn0pLHJlW2dlLm5hbWVdPVNlfTtyZXR1cm4gZnVu'@; put 'Y3Rpb24ocmUsZ2Upe3ZhciBfZT1nZXx8e307bnVsbCE9dGUmJm51bGw9PV9lLmRlbnNlJiYoX2UuZGVuc2U9dGUpO3ZhciBIZSxCZSxDdCxjdCxUdCxadCx2ZT1RdihyZSksU2U9W10sR2U9e25hbWU6IiJ9LG50PSIiLGR0PTAsYnQ9e30sRnQ9W10sa3Q9X2UuZGVuc2U/W106e30scG49e3Zh'@; put 'bHVlOiIifSxLbj0iIix1bj0wLHpuPVtdLGtuPS0xLGVyPS0xLHRyPXtzOntyOjFlNixjOjFlN30sZTp7cjowLGM6MH19LFpuPTAsQnI9e30sc2k9W10seGk9e30sTGk9MCxRcj0wLHVyPVtdLEFuPTEsdnI9MSxycj1bXSxTbj17TmFtZXM6W119LG1yPXt9LHdpPVsiIiwiIl0sVXI9W10samk9'@; put 'e30sX289e30sVGk9MCxZbz0iIixsbz0wLEFvPSExLHhvPSExLGhpPTA7Zm9yKFZyLmxhc3RJbmRleD0wLHZlPXZlLnJlcGxhY2UoLzwhLS0oW1xzXFNdKj8pLS0+L2dtLCIiKS5yZXBsYWNlKC88IURPQ1RZUEVbXlxbXSpcW1teXF1dKlxdPi9nbSwiIik7VHQ9VnIuZXhlYyh2ZSk7KXN3aXRj'@; put 'aChUdFszXT1UdFszXS5yZXBsYWNlKC9fLiokLywiIikpe2Nhc2UidGFibGUiOmNhc2UiXHU1ZGU1XHU0ZjVjXHU4ODY4IjoiLyI9PT1UdFsxXT8oa3RbIiFyZWYiXT10ci5lLmM+PXRyLnMuYyYmdHIuZS5yPj10ci5zLnI/T28odHIpOiJBMTpBMSIsX2Uuc2hlZXRSb3dzPjAmJl9lLnNoZWV0'@; put 'Um93czw9dHIuZS5yJiYoa3RbIiFmdWxscmVmIl09a3RbIiFyZWYiXSx0ci5lLnI9X2Uuc2hlZXRSb3dzLTEsa3RbIiFyZWYiXT1Pbyh0cikpLHNpLmxlbmd0aCYmKGt0WyIhbWVyZ2VzIl09c2kpLHVyLmxlbmd0aCYmKGt0WyIhcm93cyJdPXVyKSxDdC5uYW1lPUN0Llx1NTQwZFx1NzlmMHx8'@; put 'Q3QubmFtZSx0eXBlb2YgSlNPTjwidSImJkpTT04uc3RyaW5naWZ5KEN0KSxGdC5wdXNoKEN0Lm5hbWUpLGJ0W0N0Lm5hbWVdPWt0LHhvPSExKToiLyIhPT1UdFswXS5jaGFyQXQoVHRbMF0ubGVuZ3RoLTIpJiYoQ3Q9bG4oVHRbMF0sITEpLGtuPWVyPS0xLHRyLnMucj10ci5zLmM9MWU3LHRy'@; put 'LmUucj10ci5lLmM9MCxrdD1fZS5kZW5zZT9bXTp7fSxzaT1bXSx1cj1bXSx4bz0hMCk7YnJlYWs7Y2FzZSJ0YWJsZS1yb3ctZ3JvdXAiOiIvIj09PVR0WzFdPy0tWm46KytabjticmVhaztjYXNlInRhYmxlLXJvdyI6Y2FzZSJcdTg4NGMiOmlmKCIvIj09PVR0WzFdKXtrbis9QW4sQW49MTti'@; put 'cmVha31pZigoY3Q9bG4oVHRbMF0sITEpKS5cdTg4NGNcdTUzZjc/a249Y3QuXHU4ODRjXHU1M2Y3LTE6LTE9PWtuJiYoa249MCksKEFuPStjdFsibnVtYmVyLXJvd3MtcmVwZWF0ZWQiXXx8MSk8MTApZm9yKGhpPTA7aGk8QW47KytoaSlabj4wJiYodXJba24raGldPXtsZXZlbDpabn0pO2Vy'@; put 'PS0xO2JyZWFrO2Nhc2UiY292ZXJlZC10YWJsZS1jZWxsIjoiLyIhPT1UdFsxXSYmKytlcixfZS5zaGVldFN0dWJzJiYoX2UuZGVuc2U/KGt0W2tuXXx8KGt0W2tuXT1bXSksa3Rba25dW2VyXT17dDoieiJ9KTprdFtkaSh7cjprbixjOmVyfSldPXt0OiJ6In0pLEtuPSIiLHpuPVtdO2JyZWFr'@; put 'O2Nhc2UidGFibGUtY2VsbCI6Y2FzZSJcdTY1NzBcdTYzNmUiOmlmKCIvIj09PVR0WzBdLmNoYXJBdChUdFswXS5sZW5ndGgtMikpKytlcixwbj1sbihUdFswXSwhMSksdnI9cGFyc2VJbnQocG5bIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl18fCIxIiwxMCksWnQ9e3Q6InoiLHY6bnVsbH0s'@; put 'cG4uZm9ybXVsYSYmMCE9X2UuY2VsbEZvcm11bGEmJihadC5mPWxTKHhyKHBuLmZvcm11bGEpKSksInN0cmluZyI9PShwbi5cdTY1NzBcdTYzNmVcdTdjN2JcdTU3OGJ8fHBuWyJ2YWx1ZS10eXBlIl0pJiYoWnQudD0icyIsWnQudj14cihwblsic3RyaW5nLXZhbHVlIl18fCIiKSxfZS5kZW5z'@; put 'ZT8oa3Rba25dfHwoa3Rba25dPVtdKSxrdFtrbl1bZXJdPVp0KTprdFtkaSh7cjprbixjOmVyfSldPVp0KSxlcis9dnItMTtlbHNlIGlmKCIvIiE9PVR0WzFdKXt2cj0xO3ZhciB0YT1Bbj9rbitBbi0xOmtuO2lmKCsrZXI+dHIuZS5jJiYodHIuZS5jPWVyKSxlcjx0ci5zLmMmJih0ci5zLmM9'@; put 'ZXIpLGtuPHRyLnMuciYmKHRyLnMucj1rbiksdGE+dHIuZS5yJiYodHIuZS5yPXRhKSxVcj1bXSxqaT17fSxadD17dDoocG49bG4oVHRbMF0sITEpKS5cdTY1NzBcdTYzNmVcdTdjN2JcdTU3OGJ8fHBuWyJ2YWx1ZS10eXBlIl0sdjpudWxsfSxfZS5jZWxsRm9ybXVsYSlpZihwbi5mb3JtdWxh'@; put 'JiYocG4uZm9ybXVsYT14cihwbi5mb3JtdWxhKSkscG5bIm51bWJlci1tYXRyaXgtY29sdW1ucy1zcGFubmVkIl0mJnBuWyJudW1iZXItbWF0cml4LXJvd3Mtc3Bhbm5lZCJdJiYoTGk9cGFyc2VJbnQocG5bIm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl0sMTApfHwwLFFyPXBhcnNlSW50'@; put 'KHBuWyJudW1iZXItbWF0cml4LWNvbHVtbnMtc3Bhbm5lZCJdLDEwKXx8MCxadC5GPU9vKHhpPXtzOntyOmtuLGM6ZXJ9LGU6e3I6a24rTGktMSxjOmVyK1FyLTF9fSkscnIucHVzaChbeGksWnQuRl0pKSxwbi5mb3JtdWxhKVp0LmY9bFMocG4uZm9ybXVsYSk7ZWxzZSBmb3IoaGk9MDtoaTxy'@; put 'ci5sZW5ndGg7KytoaSlrbj49cnJbaGldWzBdLnMuciYma248PXJyW2hpXVswXS5lLnImJmVyPj1ycltoaV1bMF0ucy5jJiZlcjw9cnJbaGldWzBdLmUuYyYmKFp0LkY9cnJbaGldWzFdKTtzd2l0Y2goKHBuWyJudW1iZXItY29sdW1ucy1zcGFubmVkIl18fHBuWyJudW1iZXItcm93cy1zcGFu'@; put 'bmVkIl0pJiYoTGk9cGFyc2VJbnQocG5bIm51bWJlci1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsUXI9cGFyc2VJbnQocG5bIm51bWJlci1jb2x1bW5zLXNwYW5uZWQiXSwxMCl8fDAsc2kucHVzaCh4aT17czp7cjprbixjOmVyfSxlOntyOmtuK0xpLTEsYzplcitRci0xfX0pKSxwblsibnVtYmVy'@; put 'LWNvbHVtbnMtcmVwZWF0ZWQiXSYmKHZyPXBhcnNlSW50KHBuWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdLDEwKSksWnQudCl7Y2FzZSJib29sZWFuIjpadC50PSJiIixadC52PXlyKHBuWyJib29sZWFuLXZhbHVlIl0pO2JyZWFrO2Nhc2UiZmxvYXQiOmNhc2UicGVyY2VudGFnZSI6Y2Fz'@; put 'ZSJjdXJyZW5jeSI6WnQudD0ibiIsWnQudj1wYXJzZUZsb2F0KHBuLnZhbHVlKTticmVhaztjYXNlImRhdGUiOlp0LnQ9ImQiLFp0LnY9SHQocG5bImRhdGUtdmFsdWUiXSksX2UuY2VsbERhdGVzfHwoWnQudD0ibiIsWnQudj1VZShadC52KSksWnQuej0ibS9kL3l5IjticmVhaztjYXNlInRp'@; put 'bWUiOlp0LnQ9Im4iLFp0LnY9b3QocG5bInRpbWUtdmFsdWUiXSkvODY0MDAsX2UuY2VsbERhdGVzJiYoWnQudD0iZCIsWnQudj1odChadC52KSksWnQuej0iSEg6TU06U1MiO2JyZWFrO2Nhc2UibnVtYmVyIjpadC50PSJuIixadC52PXBhcnNlRmxvYXQocG4uXHU2NTcwXHU2MzZlXHU2NTcw'@; put 'XHU1MDNjKTticmVhaztkZWZhdWx0OmlmKCJzdHJpbmciIT09WnQudCYmInRleHQiIT09WnQudCYmWnQudCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHZhbHVlIHR5cGUgIitadC50KTtadC50PSJzIixudWxsIT1wblsic3RyaW5nLXZhbHVlIl0mJihLbj14cihwblsic3RyaW5nLXZh'@; put 'bHVlIl0pLHpuPVtdKX19ZWxzZXtpZihBbz0hMSwicyI9PT1adC50JiYoWnQudj1Lbnx8IiIsem4ubGVuZ3RoJiYoWnQuUj16biksQW89MD09dW4pLG1yLlRhcmdldCYmKFp0Lmw9bXIpLFVyLmxlbmd0aD4wJiYoWnQuYz1VcixVcj1bXSksS24mJiExIT09X2UuY2VsbFRleHQmJihadC53PUtu'@; put 'KSxBbyYmKFp0LnQ9InoiLGRlbGV0ZSBadC52KSxfZS5jZWxsSFRNTCYmKFp0Lmg9WnQuUj9rOShadC5SKTpybygiIitadC52KSksKCFBb3x8X2Uuc2hlZXRTdHVicykmJiEoX2Uuc2hlZXRSb3dzJiZfZS5zaGVldFJvd3M8PWtuKSlmb3IodmFyIE1uPTA7TW48QW47KytNbil7aWYodnI9cGFy'@; put 'c2VJbnQocG5bIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl18fCIxIiwxMCksX2UuZGVuc2UpZm9yKGt0W2tuK01uXXx8KGt0W2tuK01uXT1bXSksa3Rba24rTW5dW2VyXT0wPT1Nbj9adDpvbihadCk7LS12cj4wOylrdFtrbitNbl1bZXIrdnJdPW9uKFp0KTtlbHNlIGZvcihrdFtkaSh7cjpr'@; put 'bitNbixjOmVyfSldPVp0Oy0tdnI+MDspa3RbZGkoe3I6a24rTW4sYzplcit2cn0pXT1vbihadCk7dHIuZS5jPD1lciYmKHRyLmUuYz1lcil9ZXIrPSh2cj1wYXJzZUludChwblsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSktMSx2cj0wLFp0PXt9LEtuPSIiLHpuPVtdfW1y'@; put 'PXt9O2JyZWFrO2Nhc2UiZG9jdW1lbnQiOmNhc2UiZG9jdW1lbnQtY29udGVudCI6Y2FzZSJcdTc1MzVcdTViNTBcdTg4NjhcdTY4M2NcdTY1ODdcdTY4NjMiOmNhc2Uic3ByZWFkc2hlZXQiOmNhc2UiXHU0ZTNiXHU0ZjUzIjpjYXNlInNjcmlwdHMiOmNhc2Uic3R5bGVzIjpjYXNlImZvbnQt'@; put 'ZmFjZS1kZWNscyI6Y2FzZSJtYXN0ZXItc3R5bGVzIjppZigiLyI9PT1UdFsxXSl7aWYoKEhlPVNlLnBvcCgpKVswXSE9PVR0WzNdKXRocm93IkJhZCBzdGF0ZTogIitIZX1lbHNlIi8iIT09VHRbMF0uY2hhckF0KFR0WzBdLmxlbmd0aC0yKSYmU2UucHVzaChbVHRbM10sITBdKTticmVhaztj'@; put 'YXNlImFubm90YXRpb24iOmlmKCIvIj09PVR0WzFdKXtpZigoSGU9U2UucG9wKCkpWzBdIT09VHRbM10pdGhyb3ciQmFkIHN0YXRlOiAiK0hlO2ppLnQ9S24sem4ubGVuZ3RoJiYoamkuUj16biksamkuYT1ZbyxVci5wdXNoKGppKX1lbHNlIi8iIT09VHRbMF0uY2hhckF0KFR0WzBdLmxlbmd0'@; put 'aC0yKSYmU2UucHVzaChbVHRbM10sITFdKTtZbz0iIixsbz0wLEtuPSIiLHVuPTAsem49W107YnJlYWs7Y2FzZSJjcmVhdG9yIjoiLyI9PT1UdFsxXT9Zbz12ZS5zbGljZShsbyxUdC5pbmRleCk6bG89VHQuaW5kZXgrVHRbMF0ubGVuZ3RoO2JyZWFrO2Nhc2UibWV0YSI6Y2FzZSJcdTUxNDNc'@; put 'dTY1NzBcdTYzNmUiOmNhc2Uic2V0dGluZ3MiOmNhc2UiY29uZmlnLWl0ZW0tc2V0IjpjYXNlImNvbmZpZy1pdGVtLW1hcC1pbmRleGVkIjpjYXNlImNvbmZpZy1pdGVtLW1hcC1lbnRyeSI6Y2FzZSJjb25maWctaXRlbS1tYXAtbmFtZWQiOmNhc2Uic2hhcGVzIjpjYXNlImZyYW1lIjpjYXNl'@; put 'InRleHQtYm94IjpjYXNlImltYWdlIjpjYXNlImRhdGEtcGlsb3QtdGFibGVzIjpjYXNlImxpc3Qtc3R5bGUiOmNhc2UiZm9ybSI6Y2FzZSJkZGUtbGlua3MiOmNhc2UiZXZlbnQtbGlzdGVuZXJzIjpjYXNlImNoYXJ0IjppZigiLyI9PT1UdFsxXSl7aWYoKEhlPVNlLnBvcCgpKVswXSE9PVR0'@; put 'WzNdKXRocm93IkJhZCBzdGF0ZTogIitIZX1lbHNlIi8iIT09VHRbMF0uY2hhckF0KFR0WzBdLmxlbmd0aC0yKSYmU2UucHVzaChbVHRbM10sITFdKTtLbj0iIix1bj0wLHpuPVtdO2JyZWFrO2Nhc2Uic2NpZW50aWZpYy1udW1iZXIiOmNhc2UiY3VycmVuY3ktc3ltYm9sIjpjYXNlImN1cnJl'@; put 'bmN5LXN0eWxlIjpjYXNlInNjcmlwdCI6Y2FzZSJsaWJyYXJpZXMiOmNhc2UiYXV0b21hdGljLXN0eWxlcyI6Y2FzZSJkZWZhdWx0LXN0eWxlIjpjYXNlInBhZ2UtbGF5b3V0IjpjYXNlIm1hcCI6Y2FzZSJmb250LWZhY2UiOmNhc2UicGFyYWdyYXBoLXByb3BlcnRpZXMiOmNhc2UidGFibGUt'@; put 'cHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1jb2x1bW4tcHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1yb3ctcHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1jZWxsLXByb3BlcnRpZXMiOmNhc2UiZnJhY3Rpb24iOmNhc2UiYm9vbGVhbi1zdHlsZSI6Y2FzZSJib29sZWFuIjpjYXNlInRleHQtc3R5bGUiOmNh'@; put 'c2UidGV4dC1jb250ZW50IjpjYXNlInRleHQtcHJvcGVydGllcyI6Y2FzZSJlbWJlZGRlZC10ZXh0IjpjYXNlImJvZHkiOmNhc2UiXHU3NTM1XHU1YjUwXHU4ODY4XHU2ODNjIjpjYXNlImZvcm1zIjpjYXNlInRhYmxlLWNvbHVtbiI6Y2FzZSJ0YWJsZS1oZWFkZXItcm93cyI6Y2FzZSJ0YWJs'@; put 'ZS1yb3dzIjpjYXNlInRhYmxlLWNvbHVtbi1ncm91cCI6Y2FzZSJ0YWJsZS1oZWFkZXItY29sdW1ucyI6Y2FzZSJ0YWJsZS1jb2x1bW5zIjpjYXNlIm51bGwtZGF0ZSI6Y2FzZSJncmFwaGljLXByb3BlcnRpZXMiOmNhc2UiY2FsY3VsYXRpb24tc2V0dGluZ3MiOmNhc2UibmFtZWQtZXhwcmVz'@; put 'c2lvbnMiOmNhc2UibGFiZWwtcmFuZ2UiOmNhc2UibGFiZWwtcmFuZ2VzIjpjYXNlIm5hbWVkLWV4cHJlc3Npb24iOmNhc2Uic29ydCI6Y2FzZSJzb3J0LWJ5IjpjYXNlInNvcnQtZ3JvdXBzIjpjYXNlInRhYiI6Y2FzZSJsaW5lLWJyZWFrIjpjYXNlInNwYW4iOmNhc2UicyI6Y2FzZSJkYXRl'@; put 'IjpjYXNlIm9iamVjdCI6Y2FzZSJ0aXRsZSI6Y2FzZSJcdTY4MDdcdTk4OTgiOmNhc2UiZGVzYyI6Y2FzZSJiaW5hcnktZGF0YSI6Y2FzZSJ0YWJsZS1zb3VyY2UiOmNhc2Uic2NlbmFyaW8iOmNhc2UiaXRlcmF0aW9uIjpjYXNlImNvbnRlbnQtdmFsaWRhdGlvbnMiOmNhc2UiY29udGVudC12'@; put 'YWxpZGF0aW9uIjpjYXNlImhlbHAtbWVzc2FnZSI6Y2FzZSJlcnJvci1tZXNzYWdlIjpjYXNlImRhdGFiYXNlLXJhbmdlcyI6Y2FzZSJmaWx0ZXIiOmNhc2UiZmlsdGVyLWFuZCI6Y2FzZSJmaWx0ZXItb3IiOmNhc2UiZmlsdGVyLWNvbmRpdGlvbiI6Y2FzZSJsaXN0LWxldmVsLXN0eWxlLWJ1'@; put 'bGxldCI6Y2FzZSJsaXN0LWxldmVsLXN0eWxlLW51bWJlciI6Y2FzZSJsaXN0LWxldmVsLXByb3BlcnRpZXMiOmNhc2Uic2VuZGVyLWZpcnN0bmFtZSI6Y2FzZSJzZW5kZXItbGFzdG5hbWUiOmNhc2Uic2VuZGVyLWluaXRpYWxzIjpjYXNlInNlbmRlci10aXRsZSI6Y2FzZSJzZW5kZXItcG9z'@; put 'aXRpb24iOmNhc2Uic2VuZGVyLWVtYWlsIjpjYXNlInNlbmRlci1waG9uZS1wcml2YXRlIjpjYXNlInNlbmRlci1mYXgiOmNhc2Uic2VuZGVyLWNvbXBhbnkiOmNhc2Uic2VuZGVyLXBob25lLXdvcmsiOmNhc2Uic2VuZGVyLXN0cmVldCI6Y2FzZSJzZW5kZXItY2l0eSI6Y2FzZSJzZW5kZXIt'@; put 'cG9zdGFsLWNvZGUiOmNhc2Uic2VuZGVyLWNvdW50cnkiOmNhc2Uic2VuZGVyLXN0YXRlLW9yLXByb3ZpbmNlIjpjYXNlImF1dGhvci1uYW1lIjpjYXNlImF1dGhvci1pbml0aWFscyI6Y2FzZSJjaGFwdGVyIjpjYXNlImZpbGUtbmFtZSI6Y2FzZSJ0ZW1wbGF0ZS1uYW1lIjpjYXNlInNoZWV0'@; put 'LW5hbWUiOmNhc2UiZXZlbnQtbGlzdGVuZXIiOmNhc2UiaW5pdGlhbC1jcmVhdG9yIjpjYXNlImNyZWF0aW9uLWRhdGUiOmNhc2UicHJpbnQtZGF0ZSI6Y2FzZSJnZW5lcmF0b3IiOmNhc2UiZG9jdW1lbnQtc3RhdGlzdGljIjpjYXNlInVzZXItZGVmaW5lZCI6Y2FzZSJlZGl0aW5nLWR1cmF0'@; put 'aW9uIjpjYXNlImVkaXRpbmctY3ljbGVzIjpjYXNlImNvbmZpZy1pdGVtIjpjYXNlInBhZ2UtbnVtYmVyIjpjYXNlInBhZ2UtY291bnQiOmNhc2UidGltZSI6Y2FzZSJjZWxsLXJhbmdlLXNvdXJjZSI6Y2FzZSJkZXRlY3RpdmUiOmNhc2Uib3BlcmF0aW9uIjpjYXNlImhpZ2hsaWdodGVkLXJh'@; put 'bmdlIjpjYXNlImRhdGEtcGlsb3QtdGFibGUiOmNhc2Uic291cmNlLWNlbGwtcmFuZ2UiOmNhc2Uic291cmNlLXNlcnZpY2UiOmNhc2UiZGF0YS1waWxvdC1maWVsZCI6Y2FzZSJkYXRhLXBpbG90LWxldmVsIjpjYXNlImRhdGEtcGlsb3Qtc3VidG90YWxzIjpjYXNlImRhdGEtcGlsb3Qtc3Vi'@; put 'dG90YWwiOmNhc2UiZGF0YS1waWxvdC1tZW1iZXJzIjpjYXNlImRhdGEtcGlsb3QtbWVtYmVyIjpjYXNlImRhdGEtcGlsb3QtZGlzcGxheS1pbmZvIjpjYXNlImRhdGEtcGlsb3Qtc29ydC1pbmZvIjpjYXNlImRhdGEtcGlsb3QtbGF5b3V0LWluZm8iOmNhc2UiZGF0YS1waWxvdC1maWVsZC1y'@; put 'ZWZlcmVuY2UiOmNhc2UiZGF0YS1waWxvdC1ncm91cHMiOmNhc2UiZGF0YS1waWxvdC1ncm91cCI6Y2FzZSJkYXRhLXBpbG90LWdyb3VwLW1lbWJlciI6Y2FzZSJyZWN0IjpjYXNlImRkZS1jb25uZWN0aW9uLWRlY2xzIjpjYXNlImRkZS1jb25uZWN0aW9uLWRlY2wiOmNhc2UiZGRlLWxpbmsi'@; put 'OmNhc2UiZGRlLXNvdXJjZSI6Y2FzZSJwcm9wZXJ0aWVzIjpjYXNlInByb3BlcnR5IjpjYXNlInRhYmxlLXByb3RlY3Rpb24iOmNhc2UiZGF0YS1waWxvdC1ncmFuZC10b3RhbCI6Y2FzZSJvZmZpY2UtZG9jdW1lbnQtY29tbW9uLWF0dHJzIjpicmVhaztjYXNlIm51bWJlci1zdHlsZSI6Y2Fz'@; put 'ZSJwZXJjZW50YWdlLXN0eWxlIjpjYXNlImRhdGUtc3R5bGUiOmNhc2UidGltZS1zdHlsZSI6aWYoIi8iPT09VHRbMV0pe2lmKEJyW0dlLm5hbWVdPW50LChIZT1TZS5wb3AoKSlbMF0hPT1UdFszXSl0aHJvdyJCYWQgc3RhdGU6ICIrSGV9ZWxzZSIvIiE9PVR0WzBdLmNoYXJBdChUdFswXS5s'@; put 'ZW5ndGgtMikmJihudD0iIixHZT1sbihUdFswXSwhMSksU2UucHVzaChbVHRbM10sITBdKSk7YnJlYWs7Y2FzZSJzdHlsZSI6Ii8+Ij09PVR0WzBdLnNsaWNlKC0yKT9MKFR0WzBdLF9vKToiLyI9PVR0WzFdP0wodmUuc2xpY2UoVGksVHQuaW5kZXgrVHRbMF0ubGVuZ3RoKSxfbyk6VGk9VHQu'@; put 'aW5kZXg7YnJlYWs7Y2FzZSJudW1iZXIiOmNhc2UiZGF5IjpjYXNlIm1vbnRoIjpjYXNlInllYXIiOmNhc2UiZXJhIjpjYXNlImRheS1vZi13ZWVrIjpjYXNlIndlZWstb2YteWVhciI6Y2FzZSJxdWFydGVyIjpjYXNlImhvdXJzIjpjYXNlIm1pbnV0ZXMiOmNhc2Uic2Vjb25kcyI6Y2FzZSJh'@; put 'bS1wbSI6c3dpdGNoKFNlW1NlLmxlbmd0aC0xXVswXSl7Y2FzZSJ0aW1lLXN0eWxlIjpjYXNlImRhdGUtc3R5bGUiOkJlPWxuKFR0WzBdLCExKSxudCs9UFtUdFszXV1bImxvbmciPT09QmUuc3R5bGU/MTowXX1icmVhaztjYXNlInRleHQiOmlmKCIvPiI9PT1UdFswXS5zbGljZSgtMikpYnJl'@; put 'YWs7aWYoIi8iPT09VHRbMV0pc3dpdGNoKFNlW1NlLmxlbmd0aC0xXVswXSl7Y2FzZSJudW1iZXItc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjpudCs9dmUuc2xpY2UoZHQsVHQuaW5kZXgpfWVsc2UgZHQ9VHQuaW5kZXgrVHRbMF0ubGVuZ3RoO2JyZWFrO2Nhc2Ui'@; put 'bmFtZWQtcmFuZ2UiOndpPXl2KChCZT1sbihUdFswXSwhMSkpWyJjZWxsLXJhbmdlLWFkZHJlc3MiXSk7dmFyIE1zPXtOYW1lOkJlLm5hbWUsUmVmOndpWzBdKyIhIit3aVsxXX07eG8mJihNcy5TaGVldD1GdC5sZW5ndGgpLFNuLk5hbWVzLnB1c2goTXMpO2JyZWFrO2Nhc2UicCI6Y2FzZSJc'@; put 'dTY1ODdcdTY3MmNcdTRlMzIiOmlmKFsibWFzdGVyLXN0eWxlcyJdLmluZGV4T2YoU2VbU2UubGVuZ3RoLTFdWzBdKT4tMSlicmVhaztpZigiLyIhPT1UdFsxXXx8cG4mJnBuWyJzdHJpbmctdmFsdWUiXSlsbihUdFswXSwhMSksdW49VHQuaW5kZXgrVHRbMF0ubGVuZ3RoO2Vsc2V7dmFyIHlz'@; put 'PXkodmUuc2xpY2UodW4sVHQuaW5kZXgpLDAsX28pO0tuPShLbi5sZW5ndGg+MD9LbisiXG4iOiIiKSt5c1swXSx6bj15c1sxXX1icmVhaztjYXNlImRhdGFiYXNlLXJhbmdlIjppZigiLyI9PT1UdFsxXSlicmVhazt0cnl7YnRbKHdpPXl2KGxuKFR0WzBdKVsidGFyZ2V0LXJhbmdlLWFkZHJl'@; put 'c3MiXSkpWzBdXVsiIWF1dG9maWx0ZXIiXT17cmVmOndpWzFdfX1jYXRjaHt9YnJlYWs7Y2FzZSJhIjppZigiLyIhPT1UdFsxXSl7aWYoIShtcj1sbihUdFswXSwhMSkpLmhyZWYpYnJlYWs7bXIuVGFyZ2V0PXhyKG1yLmhyZWYpLGRlbGV0ZSBtci5ocmVmLCIjIj09bXIuVGFyZ2V0LmNoYXJB'@; put 'dCgwKSYmbXIuVGFyZ2V0LmluZGV4T2YoIi4iKT4tMT8od2k9eXYobXIuVGFyZ2V0LnNsaWNlKDEpKSxtci5UYXJnZXQ9IiMiK3dpWzBdKyIhIit3aVsxXSk6bXIuVGFyZ2V0Lm1hdGNoKC9eXC5cLltcXFwvXS8pJiYobXIuVGFyZ2V0PW1yLlRhcmdldC5zbGljZSgzKSl9YnJlYWs7ZGVmYXVs'@; put 'dDpzd2l0Y2goVHRbMl0pe2Nhc2UiZGM6IjpjYXNlImNhbGNleHQ6IjpjYXNlImxvZXh0OiI6Y2FzZSJvb286IjpjYXNlImNoYXJ0b29vOiI6Y2FzZSJkcmF3OiI6Y2FzZSJzdHlsZToiOmNhc2UiY2hhcnQ6IjpjYXNlImZvcm06IjpjYXNlInVvZjoiOmNhc2UiXHU4ODY4OiI6Y2FzZSJcdTVi'@; put 'NTc6IjpicmVhaztkZWZhdWx0OmlmKF9lLldURil0aHJvdyBuZXcgRXJyb3IoVHQpfX12YXIgRWw9e1NoZWV0czpidCxTaGVldE5hbWVzOkZ0LFdvcmtib29rOlNufTtyZXR1cm4gX2UuYm9va1NoZWV0cyYmZGVsZXRlIEVsLlNoZWV0cyxFbH19KCk7ZnVuY3Rpb24gYV8oeSxQKXtyZXR1cm4g'@; put 'UTAoeSxQKX12YXIgSzE9ZnVuY3Rpb24oKXt2YXIgeT1bIiAgPG9mZmljZTptYXN0ZXItc3R5bGVzPiIsJyAgICA8c3R5bGU6bWFzdGVyLXBhZ2Ugc3R5bGU6bmFtZT0ibXAxIiBzdHlsZTpwYWdlLWxheW91dC1uYW1lPSJtcDEiPicsIiAgICAgIDxzdHlsZTpoZWFkZXIvPiIsJyAgICAgIDxz'@; put 'dHlsZTpoZWFkZXItbGVmdCBzdHlsZTpkaXNwbGF5PSJmYWxzZSIvPicsIiAgICAgIDxzdHlsZTpmb290ZXIvPiIsJyAgICAgIDxzdHlsZTpmb290ZXItbGVmdCBzdHlsZTpkaXNwbGF5PSJmYWxzZSIvPicsIiAgICA8L3N0eWxlOm1hc3Rlci1wYWdlPiIsIiAgPC9vZmZpY2U6bWFzdGVyLXN0'@; put 'eWxlcz4iXS5qb2luKCJcbiIpLFA9IjxvZmZpY2U6ZG9jdW1lbnQtc3R5bGVzICIrUGEoeyJ4bWxuczpvZmZpY2UiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mZmljZToxLjAiLCJ4bWxuczp0YWJsZSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6'@; put 'eG1sbnM6dGFibGU6MS4wIiwieG1sbnM6c3R5bGUiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnN0eWxlOjEuMCIsInhtbG5zOnRleHQiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnRleHQ6MS4wIiwieG1sbnM6ZHJhdyI6InVybjpvYXNp'@; put 'czpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZHJhd2luZzoxLjAiLCJ4bWxuczpmbyI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6eHNsLWZvLWNvbXBhdGlibGU6MS4wIiwieG1sbnM6eGxpbmsiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieG1s'@; put 'bnM6ZGMiOiJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIsInhtbG5zOm51bWJlciI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZGF0YXN0eWxlOjEuMCIsInhtbG5zOnN2ZyI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c3Zn'@; put 'LWNvbXBhdGlibGU6MS4wIiwieG1sbnM6b2YiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mOjEuMiIsIm9mZmljZTp2ZXJzaW9uIjoiMS4yIn0pKyI+XG4iK3krIlxuPC9vZmZpY2U6ZG9jdW1lbnQtc3R5bGVzPiI7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEJu'@; put 'K1B9fSgpLHYwPWZ1bmN0aW9uKCl7dmFyIHk9ZnVuY3Rpb24odmUsU2Upe3JldHVybiBIcih2ZSkucmVwbGFjZSgvICArL2csZnVuY3Rpb24oSGUpe3JldHVybic8dGV4dDpzIHRleHQ6Yz0iJytIZS5sZW5ndGgrJyIvPid9KS5yZXBsYWNlKC9cdC9nLCI8dGV4dDp0YWIvPiIpLnJlcGxhY2Uo'@; put 'L1xuL2csU2U/Ijx0ZXh0OmxpbmUtYnJlYWsvPiI6IjwvdGV4dDpwPjx0ZXh0OnA+IikucmVwbGFjZSgvXiAvLCI8dGV4dDpzLz4iKS5yZXBsYWNlKC8gJC8sIjx0ZXh0OnMvPiIpfSxQPWZ1bmN0aW9uKHZlKXtyZXR1cm4gdmUubWFwKGZ1bmN0aW9uKFNlKXt2YXIgSGU9IiI7cmV0dXJuIG51'@; put 'bGwhPVNlLm9kcyYmKEhlKz0nIHRleHQ6c3R5bGUtbmFtZT0iVCcrU2Uub2RzKyciJyksU2Uudj8iPHRleHQ6c3BhbiIrSGUrIj4iK3koU2UudiwhMCkrIjwvdGV4dDpzcGFuPiI6IiJ9KS5qb2luKCIiKX0sTD0iICAgICAgICAgIDx0YWJsZTp0YWJsZS1jZWxsIC8+XG4iLHJlPWZ1bmN0aW9u'@; put 'KHZlLFNlLEhlKXt2YXIgQmU9W107QmUucHVzaCgnICAgICAgPHRhYmxlOnRhYmxlIHRhYmxlOm5hbWU9IicrSHIoU2UuU2hlZXROYW1lc1tIZV0pKyciIHRhYmxlOnN0eWxlLW5hbWU9InRhMSI+XG4nKTt2YXIgR2U9MCxudD0wLGR0PVdzKHZlWyIhcmVmIl18fCJBMSIpLEN0PXZlWyIhbWVy'@; put 'Z2VzIl18fFtdLGN0PTAsYnQ9QXJyYXkuaXNBcnJheSh2ZSk7aWYodmVbIiFjb2xzIl0pZm9yKG50PTA7bnQ8PWR0LmUuYzsrK250KUJlLnB1c2goIiAgICAgICAgPHRhYmxlOnRhYmxlLWNvbHVtbiIrKHZlWyIhY29scyJdW250XT8nIHRhYmxlOnN0eWxlLW5hbWU9ImNvJyt2ZVsiIWNvbHMi'@; put 'XVtudF0ub2RzKyciJzoiIikrIj48L3RhYmxlOnRhYmxlLWNvbHVtbj5cbiIpO3ZhciBrdD12ZVsiIXJvd3MiXXx8W107Zm9yKEdlPTA7R2U8ZHQucy5yOysrR2UpQmUucHVzaCgiICAgICAgICA8dGFibGU6dGFibGUtcm93Iisoa3RbR2VdPycgdGFibGU6c3R5bGUtbmFtZT0icm8nK2t0W0dl'@; put 'XS5vZHMrJyInOiIiKSsiPjwvdGFibGU6dGFibGUtcm93PlxuIik7Zm9yKDtHZTw9ZHQuZS5yOysrR2Upe2ZvcihCZS5wdXNoKCIgICAgICAgIDx0YWJsZTp0YWJsZS1yb3ciKyhrdFtHZV0/JyB0YWJsZTpzdHlsZS1uYW1lPSJybycra3RbR2VdLm9kcysnIic6IiIpKyI+XG4iKSxudD0wO250'@; put 'PGR0LnMuYzsrK250KUJlLnB1c2goTCk7Zm9yKDtudDw9ZHQuZS5jOysrbnQpe3ZhciBUdD0hMSxadD17fSxwbj0iIjtmb3IoY3Q9MDtjdCE9Q3QubGVuZ3RoOysrY3QpaWYoIShDdFtjdF0ucy5jPm50fHxDdFtjdF0ucy5yPkdlfHxDdFtjdF0uZS5jPG50fHxDdFtjdF0uZS5yPEdlKSl7KEN0'@; put 'W2N0XS5zLmMhPW50fHxDdFtjdF0ucy5yIT1HZSkmJihUdD0hMCksWnRbInRhYmxlOm51bWJlci1jb2x1bW5zLXNwYW5uZWQiXT1DdFtjdF0uZS5jLUN0W2N0XS5zLmMrMSxadFsidGFibGU6bnVtYmVyLXJvd3Mtc3Bhbm5lZCJdPUN0W2N0XS5lLnItQ3RbY3RdLnMucisxO2JyZWFrfWlmKFR0'@; put 'KUJlLnB1c2goIiAgICAgICAgICA8dGFibGU6Y292ZXJlZC10YWJsZS1jZWxsLz5cbiIpO2Vsc2V7dmFyIEtuPWRpKHtyOkdlLGM6bnR9KSx1bj1idD8odmVbR2VdfHxbXSlbbnRdOnZlW0tuXTtpZih1biYmdW4uZiYmKFp0WyJ0YWJsZTpmb3JtdWxhIl09SHIoY1ModW4uZikpLHVuLkYmJnVu'@; put 'LkYuc2xpY2UoMCxLbi5sZW5ndGgpPT1Lbikpe3ZhciBxbj1Xcyh1bi5GKTtadFsidGFibGU6bnVtYmVyLW1hdHJpeC1jb2x1bW5zLXNwYW5uZWQiXT1xbi5lLmMtcW4ucy5jKzEsWnRbInRhYmxlOm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl09cW4uZS5yLXFuLnMucisxfWlmKHVuKXtz'@; put 'd2l0Y2godW4udCl7Y2FzZSJiIjpwbj11bi52PyJUUlVFIjoiRkFMU0UiLFp0WyJvZmZpY2U6dmFsdWUtdHlwZSJdPSJib29sZWFuIixadFsib2ZmaWNlOmJvb2xlYW4tdmFsdWUiXT11bi52PyJ0cnVlIjoiZmFsc2UiO2JyZWFrO2Nhc2UibiI6cG49dW4ud3x8U3RyaW5nKHVuLnZ8fDApLFp0'@; put 'WyJvZmZpY2U6dmFsdWUtdHlwZSJdPSJmbG9hdCIsWnRbIm9mZmljZTp2YWx1ZSJdPXVuLnZ8fDA7YnJlYWs7Y2FzZSJzIjpjYXNlInN0ciI6cG49dW4udixadFsib2ZmaWNlOnZhbHVlLXR5cGUiXT0ic3RyaW5nIjticmVhaztjYXNlImQiOnBuPXVuLnd8fEh0KHVuLnYpLnRvSVNPU3RyaW5n'@; put 'KCksWnRbIm9mZmljZTp2YWx1ZS10eXBlIl09ImRhdGUiLFp0WyJvZmZpY2U6ZGF0ZS12YWx1ZSJdPUh0KHVuLnYpLnRvSVNPU3RyaW5nKCksWnRbInRhYmxlOnN0eWxlLW5hbWUiXT0iY2UxIjticmVhaztkZWZhdWx0OkJlLnB1c2goTCk7Y29udGludWV9bnVsbCE9dW4ub2RzJiYhWnRbInRh'@; put 'YmxlOnN0eWxlLW5hbWUiXSYmKFp0WyJ0YWJsZTpzdHlsZS1uYW1lIl09ImNlIit1bi5vZHMpO3ZhciB6bj0hdW4uUnx8dW4ubCYmdW4ubC5UYXJnZXQ/eShwbik6UCh1bi5SKTtpZih1bi5sJiZ1bi5sLlRhcmdldCl7dmFyIGtuPXVuLmwuVGFyZ2V0OyIjIiE9KGtuPSIjIj09a24uY2hhckF0'@; put 'KDApPyIjIit1Uyhrbi5zbGljZSgxKSk6a24pLmNoYXJBdCgwKSYmIWtuLm1hdGNoKC9eXHcrOi8pJiYoa249Ii4uLyIra24pLHpuPVNyKCJ0ZXh0OmEiLHpuLHsieGxpbms6aHJlZiI6a24ucmVwbGFjZSgvJi9nLCImYW1wOyIpfSl9QmUucHVzaCgiICAgICAgICAgICIrU3IoInRhYmxlOnRh'@; put 'YmxlLWNlbGwiLFNyKCJ0ZXh0OnAiLHpuLHt9KSxadCkrIlxuIil9ZWxzZSBCZS5wdXNoKEwpfX1CZS5wdXNoKCIgICAgICAgIDwvdGFibGU6dGFibGUtcm93PlxuIil9cmV0dXJuIEJlLnB1c2goIiAgICAgIDwvdGFibGU6dGFibGU+XG4iKSxCZS5qb2luKCIiKX0sZ2U9e2NlbnRlcjoiY2Vu'@; put 'dGVyIixsZWZ0OiJzdGFydCIscmlnaHQ6ImVuZCJ9O3JldHVybiBmdW5jdGlvbihTZSxIZSl7dmFyIEJlPVtCbl0sR2U9UGEoeyJ4bWxuczpvZmZpY2UiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mZmljZToxLjAiLCJ4bWxuczp0YWJsZSI6InVybjpvYXNpczpu'@; put 'YW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGFibGU6MS4wIiwieG1sbnM6c3R5bGUiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnN0eWxlOjEuMCIsInhtbG5zOnRleHQiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnRleHQ6MS4wIiwi'@; put 'eG1sbnM6ZHJhdyI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZHJhd2luZzoxLjAiLCJ4bWxuczpmbyI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6eHNsLWZvLWNvbXBhdGlibGU6MS4wIiwieG1sbnM6eGxpbmsiOiJodHRwOi8vd3d3Lncz'@; put 'Lm9yZy8xOTk5L3hsaW5rIiwieG1sbnM6ZGMiOiJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIsInhtbG5zOm1ldGEiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm1ldGE6MS4wIiwieG1sbnM6bnVtYmVyIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5k'@; put 'b2N1bWVudDp4bWxuczpkYXRhc3R5bGU6MS4wIiwieG1sbnM6cHJlc2VudGF0aW9uIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpwcmVzZW50YXRpb246MS4wIiwieG1sbnM6c3ZnIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdmctY29t'@; put 'cGF0aWJsZToxLjAiLCJ4bWxuczpjaGFydCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6Y2hhcnQ6MS4wIiwieG1sbnM6ZHIzZCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZHIzZDoxLjAiLCJ4bWxuczptYXRoIjoiaHR0cDovL3d3dy53'@; put 'My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsInhtbG5zOmZvcm0iOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmZvcm06MS4wIiwieG1sbnM6c2NyaXB0IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzY3JpcHQ6MS4wIiwieG1sbnM6b29vIjoi'@; put 'aHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDQvb2ZmaWNlIiwieG1sbnM6b29vdyI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L3dyaXRlciIsInhtbG5zOm9vb2MiOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9jYWxjIiwieG1sbnM6ZG9tIjoiaHR0cDovL3d3dy53My5vcmcvMjAw'@; put 'MS94bWwtZXZlbnRzIiwieG1sbnM6eGZvcm1zIjoiaHR0cDovL3d3dy53My5vcmcvMjAwMi94Zm9ybXMiLCJ4bWxuczp4c2QiOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIsInhtbG5zOnhzaSI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiwi'@; put 'eG1sbnM6c2hlZXQiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnNoMzN0anM6MS4wIiwieG1sbnM6cnB0IjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDUvcmVwb3J0IiwieG1sbnM6b2YiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mOjEuMiIs'@; put 'InhtbG5zOnhodG1sIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsInhtbG5zOmdyZGRsIjoiaHR0cDovL3d3dy53My5vcmcvMjAwMy9nL2RhdGEtdmlldyMiLCJ4bWxuczp0YWJsZW9vbyI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA5L3RhYmxlIiwieG1sbnM6ZHJhd29vbyI6'@; put 'Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDEwL2RyYXciLCJ4bWxuczpjYWxjZXh0IjoidXJuOm9yZzpkb2N1bWVudGZvdW5kYXRpb246bmFtZXM6ZXhwZXJpbWVudGFsOmNhbGM6eG1sbnM6Y2FsY2V4dDoxLjAiLCJ4bWxuczpsb2V4dCI6InVybjpvcmc6ZG9jdW1lbnRmb3VuZGF0aW9uOm5h'@; put 'bWVzOmV4cGVyaW1lbnRhbDpvZmZpY2U6eG1sbnM6bG9leHQ6MS4wIiwieG1sbnM6ZmllbGQiOiJ1cm46b3Blbm9mZmljZTpuYW1lczpleHBlcmltZW50YWw6b29vLW1zLWludGVyb3A6eG1sbnM6ZmllbGQ6MS4wIiwieG1sbnM6Zm9ybXgiOiJ1cm46b3Blbm9mZmljZTpuYW1lczpleHBlcmlt'@; put 'ZW50YWw6b294bWwtb2RmLWludGVyb3A6eG1sbnM6Zm9ybToxLjAiLCJ4bWxuczpjc3MzdCI6Imh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdGV4dC8iLCJvZmZpY2U6dmVyc2lvbiI6IjEuMiJ9KSxudD1QYSh7InhtbG5zOmNvbmZpZyI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1l'@; put 'bnQ6eG1sbnM6Y29uZmlnOjEuMCIsIm9mZmljZTptaW1ldHlwZSI6ImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQifSk7ImZvZHMiPT1IZS5ib29rVHlwZT8oQmUucHVzaCgiPG9mZmljZTpkb2N1bWVudCIrR2UrbnQrIj5cbiIpLEJlLnB1c2goUzQoKS5y'@; put 'ZXBsYWNlKC9vZmZpY2U6ZG9jdW1lbnQtbWV0YS9nLCJvZmZpY2U6bWV0YSIpKSk6QmUucHVzaCgiPG9mZmljZTpkb2N1bWVudC1jb250ZW50IitHZSsiPlxuIiksZnVuY3Rpb24odmUsU2Upe3ZhciBIZT1bXSxCZT17fTtIZS5wdXNoKCIgPG9mZmljZTphdXRvbWF0aWMtc3R5bGVzPlxuIiks'@; put 'SGUucHVzaCgnICA8bnVtYmVyOmRhdGUtc3R5bGUgc3R5bGU6bmFtZT0iTjM3IiBudW1iZXI6YXV0b21hdGljLW9yZGVyPSJ0cnVlIj5cbicpLEhlLnB1c2goJyAgIDxudW1iZXI6bW9udGggbnVtYmVyOnN0eWxlPSJsb25nIi8+XG4nKSxIZS5wdXNoKCIgICA8bnVtYmVyOnRleHQ+LzwvbnVt'@; put 'YmVyOnRleHQ+XG4iKSxIZS5wdXNoKCcgICA8bnVtYmVyOmRheSBudW1iZXI6c3R5bGU9ImxvbmciLz5cbicpLEhlLnB1c2goIiAgIDxudW1iZXI6dGV4dD4vPC9udW1iZXI6dGV4dD5cbiIpLEhlLnB1c2goIiAgIDxudW1iZXI6eWVhci8+XG4iKSxIZS5wdXNoKCIgIDwvbnVtYmVyOmRhdGUt'@; put 'c3R5bGU+XG4iKTt2YXIgR2U9MDtTZS5TaGVldE5hbWVzLm1hcChmdW5jdGlvbihjdCl7cmV0dXJuIFNlLlNoZWV0c1tjdF19KS5mb3JFYWNoKGZ1bmN0aW9uKGN0KXtpZihjdCYmY3RbIiFjb2xzIl0pZm9yKHZhciBidD0wO2J0PGN0WyIhY29scyJdLmxlbmd0aDsrK2J0KWlmKGN0WyIhY29s'@; put 'cyJdW2J0XSl7dmFyIEZ0PWN0WyIhY29scyJdW2J0XTtpZihudWxsPT1GdC53aWR0aCYmbnVsbD09RnQud3B4JiZudWxsPT1GdC53Y2gpY29udGludWU7cHUoRnQpLEZ0Lm9kcz1HZTt2YXIga3Q9Y3RbIiFjb2xzIl1bYnRdLndweCsicHgiO0hlLnB1c2goJyAgPHN0eWxlOnN0eWxlIHN0eWxl'@; put 'Om5hbWU9ImNvJytHZSsnIiBzdHlsZTpmYW1pbHk9InRhYmxlLWNvbHVtbiI+XG4nKSxIZS5wdXNoKCcgICA8c3R5bGU6dGFibGUtY29sdW1uLXByb3BlcnRpZXMgZm86YnJlYWstYmVmb3JlPSJhdXRvIiBzdHlsZTpjb2x1bW4td2lkdGg9Iicra3QrJyIvPlxuJyksSGUucHVzaCgiICA8L3N0'@; put 'eWxlOnN0eWxlPlxuIiksKytHZX19KTt2YXIgbnQ9MDtTZS5TaGVldE5hbWVzLm1hcChmdW5jdGlvbihjdCl7cmV0dXJuIFNlLlNoZWV0c1tjdF19KS5mb3JFYWNoKGZ1bmN0aW9uKGN0KXtpZihjdCYmY3RbIiFyb3dzIl0pZm9yKHZhciBidD0wO2J0PGN0WyIhcm93cyJdLmxlbmd0aDsrK2J0'@; put 'KWlmKGN0WyIhcm93cyJdW2J0XSl7Y3RbIiFyb3dzIl1bYnRdLm9kcz1udDt2YXIgRnQ9Y3RbIiFyb3dzIl1bYnRdLmhweCsicHgiO0hlLnB1c2goJyAgPHN0eWxlOnN0eWxlIHN0eWxlOm5hbWU9InJvJytudCsnIiBzdHlsZTpmYW1pbHk9InRhYmxlLXJvdyI+XG4nKSxIZS5wdXNoKCcgICA8'@; put 'c3R5bGU6dGFibGUtcm93LXByb3BlcnRpZXMgZm86YnJlYWstYmVmb3JlPSJhdXRvIiBzdHlsZTpyb3ctaGVpZ2h0PSInK0Z0KyciLz5cbicpLEhlLnB1c2goIiAgPC9zdHlsZTpzdHlsZT5cbiIpLCsrbnR9fSksSGUucHVzaCgnICA8c3R5bGU6c3R5bGUgc3R5bGU6bmFtZT0idGExIiBzdHls'@; put 'ZTpmYW1pbHk9InRhYmxlIiBzdHlsZTptYXN0ZXItcGFnZS1uYW1lPSJtcDEiPlxuJyksSGUucHVzaCgnICAgPHN0eWxlOnRhYmxlLXByb3BlcnRpZXMgdGFibGU6ZGlzcGxheT0idHJ1ZSIgc3R5bGU6d3JpdGluZy1tb2RlPSJsci10YiIvPlxuJyksSGUucHVzaCgiICA8L3N0eWxlOnN0eWxl'@; put 'PlxuIiksSGUucHVzaCgnICA8c3R5bGU6c3R5bGUgc3R5bGU6bmFtZT0iY2UxIiBzdHlsZTpmYW1pbHk9InRhYmxlLWNlbGwiIHN0eWxlOnBhcmVudC1zdHlsZS1uYW1lPSJEZWZhdWx0IiBzdHlsZTpkYXRhLXN0eWxlLW5hbWU9Ik4zNyIvPlxuJyk7dmFyIGR0PTI7bnQ9MCxTZS5TaGVldE5h'@; put 'bWVzLm1hcChmdW5jdGlvbihjdCl7cmV0dXJuIFNlLlNoZWV0c1tjdF19KS5mb3JFYWNoKGZ1bmN0aW9uKGN0KXtpZihjdClmb3IodmFyIGJ0PTAsRnQ9MCxrdD1XcyhjdFsiIXJlZiJdKSxUdD1BcnJheS5pc0FycmF5KGN0KTtidDw9a3QuZS5yOysrYnQpZm9yKEZ0PTA7RnQ8PWt0LmUuYzsr'@; put 'K0Z0KXt2YXIgWnQ9ZGkoe3I6YnQsYzpGdH0pLHBuPVR0PyhjdFtidF18fFtdKVtGdF06Y3RbWnRdO2lmKHBuJiYocG4uc3x8cG4uUikpe3ZhciBLbj1bXTtwbi5zJiZLbi5wdXNoKFtwbiwhMF0pLHBuLlImJnBuLlIuZm9yRWFjaChmdW5jdGlvbih1bil7dW4mJnVuLnMmJktuLnB1c2goW3Vu'@; put 'LCExXSl9KSxLbi5mb3JFYWNoKGZ1bmN0aW9uKHVuKXt2YXIgcW49dW5bMF0sem49cW4ucyxrbj0iIixlcj17InN0eWxlOm5hbWUiOih1blsxXT8iY2UiOiJUIikrZHQsInN0eWxlOmZhbWlseSI6dW5bMV0/InRhYmxlLWNlbGwiOiJ0ZXh0In07dW5bMV0mJihlclsic3R5bGU6cGFyZW50LXN0'@; put 'eWxlLW5hbWUiXT0iRGVmYXVsdCIsZXJbInN0eWxlOmRhdGEtc3R5bGUtbmFtZSJdPSJOMCIpO3ZhciB0cj17fSxabj0hMSxCcj17fSxzaT0hMSx4aT17fSxMaT0hMTtpZih6bi5jb2xvciYmKEJyWyJmbzpjb2xvciJdPSIjIitPdSh6bi5jb2xvci5yZ2IpLHNpPSEwKSx6bi5zeiYmKEJyWyJm'@; put 'bzpmb250LXNpemUiXT16bi5zeisicHQiLHNpPSEwKSx6bi5ib2xkJiYoQnJbImZvOmZvbnQtd2VpZ2h0Il09ImJvbGQiLHNpPSEwKSx6bi5pdGFsaWMmJihCclsiZm86Zm9udC1zdHlsZSJdPSJpdGFsaWMiLHNpPSEwKSx6bi5uYW1lJiYoQmVbem4ubmFtZV18fChCZVt6bi5uYW1lXT16bi5u'@; put 'YW1lLm1hdGNoKC8gLyk/IiZhcG9zOyIrem4ubmFtZSsiJmFwb3M7Ijp6bi5uYW1lKSxCclsic3R5bGU6Zm9udC1uYW1lIl09em4ubmFtZSxzaT0hMCksem4uc3RyaWtlJiYoQnJbInN0eWxlOnRleHQtbGluZS10aHJvdWdoLXN0eWxlIl09InNvbGlkIixCclsic3R5bGU6dGV4dC1saW5lLXRo'@; put 'cm91Z2gtdHlwZSJdPSJzaW5nbGUiLHNpPSEwKSx6bi51bmRlcmxpbmUmJihCclsic3R5bGU6dGV4dC11bmRlcmxpbmUtc3R5bGUiXT0ic29saWQiLEJyWyJzdHlsZTp0ZXh0LXVuZGVybGluZS13aWR0aCJdPSJhdXRvIixCclsic3R5bGU6dGV4dC11bmRlcmxpbmUtY29sb3IiXT0iZm9udC1j'@; put 'b2xvciIsc2k9ITApLHVuWzFdKXtpZih6bi5hbGlnbm1lbnQpe3ZhciBRcj16bi5hbGlnbm1lbnQ7UXIud3JhcFRleHQmJih0clsiZm86d3JhcC1vcHRpb24iXT0id3JhcCIsWm49ITApLFFyLnZlcnRpY2FsJiYodHJbInN0eWxlOnZlcnRpY2FsLWFsaWduIl09ImNlbnRlciI9PVFyLnZlcnRp'@; put 'Y2FsPyJtaWRkbGUiOlFyLnZlcnRpY2FsLFpuPSEwKSxnZVtRci5ob3Jpem9udGFsXSYmKHhpWyJmbzp0ZXh0LWFsaWduIl09Z2VbUXIuaG9yaXpvbnRhbF0sTGk9ITApfXpuLmZnQ29sb3ImJih0clsiZm86YmFja2dyb3VuZC1jb2xvciJdPSIjIitPdSh6bi5mZ0NvbG9yLnJnYiksWm49ITAp'@; put 'fVpuJiYoa24rPVNyKCJzdHlsZTp0YWJsZS1jZWxsLXByb3BlcnRpZXMiLG51bGwsdHIpKSxzaSYmKGtuKz1Tcigic3R5bGU6dGV4dC1wcm9wZXJ0aWVzIixudWxsLEJyKSksTGkmJihrbis9U3IoInN0eWxlOnBhcmFncmFwaC1wcm9wZXJ0aWVzIixudWxsLHhpKSksSGUucHVzaCgiICAiK1Ny'@; put 'KCJzdHlsZTpzdHlsZSIsa24sZXIpKyJcbiIpLHFuLm9kcz1kdCwrK2R0fSl9fX0pLEhlLnB1c2goIiA8L29mZmljZTphdXRvbWF0aWMtc3R5bGVzPlxuIik7dmFyIEN0PSIgPG9mZmljZTpmb250LWZhY2UtZGVjbHM+XG4iK2x0KEJlKS5tYXAoZnVuY3Rpb24oY3Qpe3JldHVybicgIDxzdHls'@; put 'ZTpmb250LWZhY2Ugc3R5bGU6bmFtZT0iJytjdCsnIiBzdmc6Zm9udC1mYW1pbHk9IicrQmVbY3RdKyciLz5cbid9KS5qb2luKCIiKSsiIDwvb2ZmaWNlOmZvbnQtZmFjZS1kZWNscz5cbiI7dmUucHVzaChDdCksdmUucHVzaChIZS5qb2luKCIiKSl9KEJlLFNlKSxCZS5wdXNoKCIgIDxvZmZp'@; put 'Y2U6Ym9keT5cbiIpLEJlLnB1c2goIiAgICA8b2ZmaWNlOnNwcmVhZHNoZWV0PlxuIik7Zm9yKHZhciBkdD0wO2R0IT1TZS5TaGVldE5hbWVzLmxlbmd0aDsrK2R0KUJlLnB1c2gocmUoU2UuU2hlZXRzW1NlLlNoZWV0TmFtZXNbZHRdXSxTZSxkdCkpO3JldHVybiBCZS5wdXNoKCIgICAgPC9v'@; put 'ZmZpY2U6c3ByZWFkc2hlZXQ+XG4iKSxCZS5wdXNoKCIgIDwvb2ZmaWNlOmJvZHk+XG4iKSxCZS5wdXNoKCJmb2RzIj09SGUuYm9va1R5cGU/Ijwvb2ZmaWNlOmRvY3VtZW50PiI6Ijwvb2ZmaWNlOmRvY3VtZW50LWNvbnRlbnQ+IiksQmUuam9pbigiIil9fSgpO2Z1bmN0aW9uIF8wKHksUCl7'@; put 'aWYoImZvZHMiPT1QLmJvb2tUeXBlKXJldHVybiB2MCh5LFApO3ZhciBMPXluKCksUT0iIixyZT1bXSxnZT1bXTtyZXR1cm4gWXQoTCxRPSJtaW1ldHlwZSIsImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiKSxZdChMLFE9ImNvbnRlbnQueG1sIix2MCh5'@; put 'LFApKSxyZS5wdXNoKFtRLCJ0ZXh0L3htbCJdKSxnZS5wdXNoKFtRLCJDb250ZW50RmlsZSJdKSxZdChMLFE9InN0eWxlcy54bWwiLEsxKHksUCkpLHJlLnB1c2goW1EsInRleHQveG1sIl0pLGdlLnB1c2goW1EsIlN0eWxlc0ZpbGUiXSksWXQoTCxRPSJtZXRhLnhtbCIsQm4rUzQoKSkscmUu'@; put 'cHVzaChbUSwidGV4dC94bWwiXSksZ2UucHVzaChbUSwiTWV0YWRhdGFGaWxlIl0pLFl0KEwsUT0ibWFuaWZlc3QucmRmIixmdW5jdGlvbiBHaCh5KXt2YXIgUD1bQm5dO1AucHVzaCgnPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt'@; put 'bnMjIj5cbicpO2Zvcih2YXIgTD0wO0whPXkubGVuZ3RoOysrTClQLnB1c2goTDEoeVtMXVswXSx5W0xdWzFdKSksUC5wdXNoKFZvKCIiLHlbTF1bMF0pKTtyZXR1cm4gUC5wdXNoKEwxKCIiLCJEb2N1bWVudCIsInBrZyIpKSxQLnB1c2goIjwvcmRmOlJERj4iKSxQLmpvaW4oIiIpfShnZSkp'@; put 'LHJlLnB1c2goW1EsImFwcGxpY2F0aW9uL3JkZit4bWwiXSksWXQoTCxRPSJNRVRBLUlORi9tYW5pZmVzdC54bWwiLGZ1bmN0aW9uIExkKHkpe3ZhciBQPVtCbl07UC5wdXNoKCc8bWFuaWZlc3Q6bWFuaWZlc3QgeG1sbnM6bWFuaWZlc3Q9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1l'@; put 'bnQ6eG1sbnM6bWFuaWZlc3Q6MS4wIiBtYW5pZmVzdDp2ZXJzaW9uPSIxLjIiPlxuJyksUC5wdXNoKCcgIDxtYW5pZmVzdDpmaWxlLWVudHJ5IG1hbmlmZXN0OmZ1bGwtcGF0aD0iLyIgbWFuaWZlc3Q6dmVyc2lvbj0iMS4yIiBtYW5pZmVzdDptZWRpYS10eXBlPSJhcHBsaWNhdGlvbi92bmQu'@; put 'b2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0Ii8+XG4nKTtmb3IodmFyIEw9MDtMPHkubGVuZ3RoOysrTClQLnB1c2goJyAgPG1hbmlmZXN0OmZpbGUtZW50cnkgbWFuaWZlc3Q6ZnVsbC1wYXRoPSInK3lbTF1bMF0rJyIgbWFuaWZlc3Q6bWVkaWEtdHlwZT0iJyt5W0xdWzFdKyciLz5c'@; put 'bicpO3JldHVybiBQLnB1c2goIjwvbWFuaWZlc3Q6bWFuaWZlc3Q+IiksUC5qb2luKCIiKX0ocmUpKSxMfWZ1bmN0aW9uIFgxKHkpe3JldHVybiBmdW5jdGlvbihMLFEpe3ZhciByZT1mdW5jdGlvbiBETSh5LFApe2lmKCFQKXJldHVybiAwO3ZhciBMPXkuU2hlZXROYW1lcy5pbmRleE9mKFAp'@; put 'O2lmKC0xPT1MKXRocm93IG5ldyBFcnJvcigiU2hlZXQgbm90IGZvdW5kOiAiK1ApO3JldHVybiBMfShMLFEuc2hlZXQpO3JldHVybiB5LmZyb21fc2hlZXQoTC5TaGVldHNbTC5TaGVldE5hbWVzW3JlXV0sUSxMKX19dmFyIGxSPVgxKEZ1KSxjUj1YMSh7ZnJvbV9zaGVldDpqbH0pLHVSPVgx'@; put 'KHR5cGVvZiBFOTwidSI/RTk6e30pLGRSPVgxKHR5cGVvZiBNMzwidSI/TTM6e30pLGxfPVgxKHR5cGVvZiBCMTwidSI/QjE6e30pLHk1PVgxKHR5cGVvZiBPbTwidSI/T206e30pLGhSPVgxKHtmcm9tX3NoZWV0OnhSfSksSU09WDEodHlwZW9mIEIyPCJ1Ij9CMjp7fSksZlI9WDEodHlwZW9m'@; put 'IE80PCJ1Ij9PNDp7fSksYWM9Rig3NzkwMyl8fHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuY3J5cHRvQnJvd3NlcmlmeTtpZighYWMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBjcnlwdG8gZXh0ZW5zaW9ucyEiKTt2YXIgY189e1NIQTUxMjoic2hhNTEyIixTSEEyNTY6InNoYTI1'@; put 'NiIsU0hBMzg0OiJzaGEzODQiLFNIQTE6InNoYTEiLE1ENToibWQ1IixNRDQ6Im1kNCIsTUQyOiJtZDIifTtmdW5jdGlvbiBlbCh5LFApe3N3aXRjaChQPShQfHwiIikucmVwbGFjZSgvLS9nLCIiKSl7Y2FzZSJTSEEtNTEyIjpjYXNlIlNIQTUxMiI6cmV0dXJuIG5ldyBhYy5jcmVhdGVIYXNo'@; put 'KCJzaGE1MTIiKS51cGRhdGUoeSkuZGlnZXN0KCk7Y2FzZSJTSEEtMSI6Y2FzZSJTSEExIjpyZXR1cm4gbmV3IGFjLmNyZWF0ZUhhc2goInNoYTEiKS51cGRhdGUoeSkuZGlnZXN0KCk7Y2FzZSJNRDIiOnJldHVybiBuZXcgYWMuY3JlYXRlSGFzaCgibWQyIikudXBkYXRlKHkpLmRpZ2VzdCgp'@; put 'O2RlZmF1bHQ6aWYoY19bUF0pcmV0dXJuIG5ldyBhYy5jcmVhdGVIYXNoKGNfW1BdKS51cGRhdGUoeSkuZGlnZXN0KCk7dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBoYXNoIGFsZ29yaXRobSAiK1ApfX1mdW5jdGlvbiBKMSh5LFAsTCl7aWYoInJjMiI9PUwpdGhyb3ciVW5zdXBwb3J0'@; put 'ZWQgUkMyIjt2YXIgUT1hYy5jcmVhdGVEZWNpcGhlcml2KEx8fCJhZXMtMjU2LWNiYyIseSxQKTtyZXR1cm4gUS5zZXRBdXRvUGFkZGluZyghMSksUX1mdW5jdGlvbiBSNih5KXtyZXR1cm5bKCIwMCIrKDI1NSZ5KS50b1N0cmluZygxNikpLnNsaWNlKC0yKSwoIjAwIisoeT4+PjgmMjU1KS50'@; put 'b1N0cmluZygxNikpLnNsaWNlKC0yKSwoIjAwIisoeT4+PjE2JjI1NSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMiksKCIwMCIrKHk+Pj4yNCYyNTUpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpXS5qb2luKCIiKX12YXIgTzY9ZnVuY3Rpb24oeSxQLEwpe2Zvcih2YXIgUT0ic3RyaW5nIj09dHlw'@; put 'ZW9mIFA/QnVmZmVyLmZyb20oUCwiaGV4Iik6UCxyZT0ic3RyaW5nIj09dHlwZW9mIHk/QnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCx5KSk6eSxnZT0ic3RyaW5nIj09dHlwZW9mIEw/QnVmZmVyLmZyb20oTCwiaGV4Iik6TCxfZT1lbChyZSwiTUQ1IiksdmU9QnVmZmVy'@; put 'LmNvbmNhdChbX2Uuc2xpY2UoMCw1KSxRXSksU2U9MDtTZTw0OysrU2UpdmU9QnVmZmVyLmNvbmNhdChbdmUsdmVdKTt2YXIgSGU9ZWwodmUsIk1ENSIpO3JldHVybihlbChCdWZmZXIuY29uY2F0KFtIZS5zbGljZSgwLDUpLGdlXSksIk1ENSIpLnRvU3RyaW5nKCJoZXgiKSsiMDAwMDAwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKS5zbGljZSgwLDMyKX0sZ3I9ZnVuY3Rpb24oeSxQLEwpe3ZhciBRPSJzdHJpbmciPT10eXBlb2YgUD9CdWZmZXIuZnJvbShQLCJoZXgiKTpQLHJlPSJzdHJpbmciPT10eXBlb2YgeT9CdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAw'@; put 'LHkpKTp5LGdlPSJzdHJpbmciPT10eXBlb2YgTD9CdWZmZXIuZnJvbShMLCJoZXgiKTpMLF9lPWVsKEJ1ZmZlci5jb25jYXQoW1EscmVdKSwiU0hBMSIpO3JldHVybiBlbChCdWZmZXIuY29uY2F0KFtfZSxnZV0pLCJTSEExIil9LGIwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gUCgpe31QLnByb3Rv'@; put 'dHlwZS5idWlsZD1mdW5jdGlvbihjdCl7dGhpcy5faT0wO3ZhciBidD10aGlzLl9idWlsZChjdCwiIik7cmV0dXJuIiI9PT1idD8iIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PicrYnR9LFAucHJvdG90eXBlLl9idWlsZD1mdW5jdGlv'@; put 'bihjdCxidCl7aWYodGhpcy5faSsrJTFlNj09MCYmKHRoaXMuX2M9YnRbMF0pLG51bGw9PWN0fHwib2JqZWN0IiE9dHlwZW9mIGN0JiYiZnVuY3Rpb24iIT10eXBlb2YgY3QpbnVsbCE9Y3QmJihidCs9ZnVuY3Rpb24geShjdCxidCl7cmV0dXJuIG51bGw9PWN0fHwoY3Q9Y3QudG9TdHJpbmco'@; put 'KS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksYnQmJihjdD1jdC5yZXBsYWNlKC8iL2csIiZxdW90OyIpKSksY3R9KGN0KSk7ZWxzZXtpZighY3QubmFtZSl0aHJvdyBuZXcgRXJyb3IoIlhNTCBub2RlIGRvZXMgbm90IGhh'@; put 'dmUgbmFtZTogIitKU09OLnN0cmluZ2lmeShjdCkpO2J0Kz0iPCIrY3QubmFtZTt2YXIgRnQ9dGhpcztidCs9Y3QuYXR0cmlidXRlcyYmUGEoY3QuYXR0cmlidXRlcyl8fCIiLEFycmF5LmlzQXJyYXkoY3QuY2hpbGRyZW4pJiYwIT1jdC5jaGlsZHJlbi5sZW5ndGg/KGJ0Kz0iPiIsY3QuY2hp'@; put 'bGRyZW4uZm9yRWFjaChmdW5jdGlvbihrdCl7YnQ9RnQuX2J1aWxkKGt0LGJ0KX0pLGJ0Kz0iPC8iK2N0Lm5hbWUrIj4iKTpidCs9Ii8+In1yZXR1cm4gYnR9O3ZhciBMPUJ1ZmZlci5mcm9tKFs0LDAsNCwwLDY0LDAsMCwwXSksZ2U9e2RhdGFJbnRlZ3JpdHk6e2htYWNLZXk6QnVmZmVyLmZy'@; put 'b20oWzk1LDE3OCwxNzMsMSwxMiwxODUsMjI1LDI0Nl0pLGhtYWNWYWx1ZTpCdWZmZXIuZnJvbShbMTYwLDEwMywxMjcsMiwxNzgsNDQsMTMyLDUxXSl9LGtleTpCdWZmZXIuZnJvbShbMjAsMTEwLDExLDIzMSwxNzEsMTcyLDIwOCwyMTRdKSx2ZXJpZmllckhhc2g6e2lucHV0OkJ1ZmZlci5m'@; put 'cm9tKFsyNTQsMTY3LDIxMCwxMTgsNTksNzUsMTU4LDEyMV0pLHZhbHVlOkJ1ZmZlci5mcm9tKFsyMTUsMTcwLDE1LDEwOSw0OCw5Nyw1Miw3OF0pfX07ZnVuY3Rpb24gX2UoY3QsYnQsRnQsa3QsVHQsWnQpe3ZhciBwbj1idC50b0xvd2VyQ2FzZSgpKyItIis4Kmt0Lmxlbmd0aDtpZigiQ2hh'@; put 'aW5pbmdNb2RlQ0JDIiE9PUZ0KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBjaXBoZXIgY2hhaW5pbmc6ICIrRnQpO3ZhciBLbj1hY1tjdD8iY3JlYXRlQ2lwaGVyaXYiOiJjcmVhdGVEZWNpcGhlcml2Il0ocG4rPSItY2JjIixrdCxUdCk7S24uc2V0QXV0b1BhZGRpbmcoITEpO3ZhciB1bj1L'@; put 'bi51cGRhdGUoWnQpLHFuPVt1bl07dHJ5e3ZhciB6bj1Lbi5maW5hbCgpO3FuLnB1c2goem4pfWNhdGNoe31yZXR1cm4gQnVmZmVyLmNvbmNhdChxbil9ZnVuY3Rpb24gdmUoY3Qpe2N0PWN0LnRvTG93ZXJDYXNlKCk7dmFyIGJ0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2lmKGFjLmdl'@; put 'dEhhc2hlcygpLmluZGV4T2YoY3QpPDApdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBoYXNoIGFsZ29yaXRobSAiK2N0KTt2YXIga3Q9YWMuY3JlYXRlSGFzaChjdCk7cmV0dXJuIGt0LnVwZGF0ZShCdWZmZXIuY29uY2F0KGJ0KSksa3QuZGlnZXN0KCl9ZnVuY3Rpb24gU2UoY3QsYnQs'@; put 'RnQsa3QpeyJudW1iZXIiPT10eXBlb2Yga3QmJihrdD1IZShrdCkpO3ZhciBUdD12ZShjdCxidCxrdCk7aWYoVHQubGVuZ3RoPEZ0KXt2YXIgWnQ9QnVmZmVyLmFsbG9jKEZ0LDU0KTtUdC5jb3B5KFp0KSxUdD1adH1lbHNlIFR0Lmxlbmd0aD5GdCYmKFR0PVR0LnNsaWNlKDAsRnQpKTtyZXR1'@; put 'cm4gVHR9ZnVuY3Rpb24gSGUoY3QsYnQpe3ZhciBGdD1CdWZmZXIuYWxsb2MoYnR8fDQpO3JldHVybiBGdC53cml0ZVVJbnQzMkxFKGN0LDApLEZ0fWZ1bmN0aW9uIEJlKGN0LGJ0LEZ0LGt0LFR0LFp0KXtmb3IodmFyIEtuPXZlKGJ0LEZ0LEJ1ZmZlci5mcm9tKGN0LCJ1dGYxNmxlIikpLHVu'@; put 'PTA7dW48a3Q7dW4rKylLbj12ZShidCxIZSh1biksS24pO3ZhciB6bj1UdC84O2lmKChLbj12ZShidCxLbixadCkpLmxlbmd0aDx6bil7dmFyIGtuPUJ1ZmZlci5hbGxvYyh6biw1NCk7S24uY29weShrbiksS249a259ZWxzZSBLbi5sZW5ndGg+em4mJihLbj1Lbi5zbGljZSgwLHpuKSk7cmV0'@; put 'dXJuIEtufXJldHVybiBhYy5yYW5kb21CeXRlc3x8KGFjLnJhbmRvbUJ5dGVzPWZ1bmN0aW9uKGN0KXtmb3IodmFyIGJ0PUJ1ZmZlci5hbGxvYyhjdCksRnQ9MDtGdDxjdDsrK0Z0KWJ0W0Z0XT1NYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKTtyZXR1cm4gYnR9KSxmdW5jdGlvbiBDdChj'@; put 'dCxidCl7aWYoInN0cmluZyI9PXR5cGVvZiBjdClyZXR1cm4gQ3QoQnVmZmVyLmZyb20oY3QsImJpbmFyeSIpLGJ0KTt2YXIgRnQ9YWMucmFuZG9tQnl0ZXMoMzIpLGt0PXtwYWNrYWdlOntjaXBoZXJBbGdvcml0aG06IkFFUyIsY2lwaGVyQ2hhaW5pbmc6IkNoYWluaW5nTW9kZUNCQyIsc2Fs'@; put 'dFZhbHVlOmFjLnJhbmRvbUJ5dGVzKDE2KSxoYXNoQWxnb3JpdGhtOiJTSEE1MTIiLGhhc2hTaXplOjY0LGJsb2NrU2l6ZToxNixrZXlCaXRzOjgqRnQubGVuZ3RofSxrZXk6e2NpcGhlckFsZ29yaXRobToiQUVTIixjaXBoZXJDaGFpbmluZzoiQ2hhaW5pbmdNb2RlQ0JDIixzYWx0VmFsdWU6'@; put 'YWMucmFuZG9tQnl0ZXMoMTYpLGhhc2hBbGdvcml0aG06IlNIQTUxMiIsaGFzaFNpemU6NjQsYmxvY2tTaXplOjE2LHNwaW5Db3VudDoxLGtleUJpdHM6MjU2fX0sVHQ9ZnVuY3Rpb24gR2UoY3QsYnQsRnQsa3QsVHQsWnQscG4sS24pe2Zvcih2YXIgdW49W10scW49Y3Q/MDo4LHpuPTAsa249'@; put 'MCxlcj0wO2VyPEtuLmxlbmd0aDspeyhlcj0oa249ZXIpKzQwOTYpPktuLmxlbmd0aCYmKGVyPUtuLmxlbmd0aCk7dmFyIHRyPUtuLnNsaWNlKGtuK3FuLGVyK3FuKSxabj10ci5sZW5ndGglVHQ7Wm4mJih0cj1CdWZmZXIuY29uY2F0KFt0cixCdWZmZXIuYWxsb2MoVHQtWm4pXSkpO3ZhciBz'@; put 'aT1fZShjdCxidCxGdCxwbixTZShrdCxadCxUdCx6biksdHIpO3VuLnB1c2goc2kpLHpuKyt9dmFyIHhpPUJ1ZmZlci5jb25jYXQodW4pO2lmKGN0KXhpPUJ1ZmZlci5jb25jYXQoW0hlKEtuLmxlbmd0aCw4KSx4aV0pO2Vsc2V7dmFyIExpPUtuLnJlYWRVSW50MzJMRSgwKTt4aT14aS5zbGlj'@; put 'ZSgwLExpKX1yZXR1cm4geGl9KCEwLGt0LnBhY2thZ2UuY2lwaGVyQWxnb3JpdGhtLGt0LnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsa3QucGFja2FnZS5oYXNoQWxnb3JpdGhtLGt0LnBhY2thZ2UuYmxvY2tTaXplLGt0LnBhY2thZ2Uuc2FsdFZhbHVlLEZ0LGN0KSxadD1hYy5yYW5kb21CeXRl'@; put 'cyg2NCkscG49U2Uoa3QucGFja2FnZS5oYXNoQWxnb3JpdGhtLGt0LnBhY2thZ2Uuc2FsdFZhbHVlLGt0LnBhY2thZ2UuYmxvY2tTaXplLGdlLmRhdGFJbnRlZ3JpdHkuaG1hY0tleSksS249X2UoITAsa3QucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sa3QucGFja2FnZS5jaXBoZXJDaGFpbmlu'@; put 'ZyxGdCxwbixadCksdW49ZnVuY3Rpb24gbnQoY3QsYnQpe2N0PWN0LnRvTG93ZXJDYXNlKCk7dmFyIEZ0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpO2lmKGFjLmdldEhhc2hlcygpLmluZGV4T2YoY3QpPDApdGhyb3cgbmV3IEVycm9yKCJITUFDIGFsZ29yaXRobSAnIitjdCsiJyBub3Qg'@; put 'c3VwcG9ydGVkISIpO3ZhciBUdD1hYy5jcmVhdGVIbWFjKGN0LGJ0KTtyZXR1cm4gVHQudXBkYXRlKEJ1ZmZlci5jb25jYXQoRnQpKSxUdC5kaWdlc3QoKX0oa3QucGFja2FnZS5oYXNoQWxnb3JpdGhtLFp0LFR0KSxxbj1TZShrdC5wYWNrYWdlLmhhc2hBbGdvcml0aG0sa3QucGFja2FnZS5z'@; put 'YWx0VmFsdWUsa3QucGFja2FnZS5ibG9ja1NpemUsZ2UuZGF0YUludGVncml0eS5obWFjVmFsdWUpLHpuPV9lKCEwLGt0LnBhY2thZ2UuY2lwaGVyQWxnb3JpdGhtLGt0LnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsRnQscW4sdW4pO2t0LmRhdGFJbnRlZ3JpdHk9e2VuY3J5cHRlZEhtYWNLZXk6'@; put 'S24sZW5jcnlwdGVkSG1hY1ZhbHVlOnpufTt2YXIga249QmUoYnQsa3Qua2V5Lmhhc2hBbGdvcml0aG0sa3Qua2V5LnNhbHRWYWx1ZSxrdC5rZXkuc3BpbkNvdW50LGt0LmtleS5rZXlCaXRzLGdlLmtleSk7a3Qua2V5LmVuY3J5cHRlZEtleVZhbHVlPV9lKCEwLGt0LmtleS5jaXBoZXJBbGdv'@; put 'cml0aG0sa3Qua2V5LmNpcGhlckNoYWluaW5nLGtuLGt0LmtleS5zYWx0VmFsdWUsRnQpO3ZhciBlcj1hYy5yYW5kb21CeXRlcygxNiksdHI9QmUoYnQsa3Qua2V5Lmhhc2hBbGdvcml0aG0sa3Qua2V5LnNhbHRWYWx1ZSxrdC5rZXkuc3BpbkNvdW50LGt0LmtleS5rZXlCaXRzLGdlLnZlcmlm'@; put 'aWVySGFzaC5pbnB1dCk7a3Qua2V5LmVuY3J5cHRlZFZlcmlmaWVySGFzaElucHV0PV9lKCEwLGt0LmtleS5jaXBoZXJBbGdvcml0aG0sa3Qua2V5LmNpcGhlckNoYWluaW5nLHRyLGt0LmtleS5zYWx0VmFsdWUsZXIpO3ZhciBabj12ZShrdC5rZXkuaGFzaEFsZ29yaXRobSxlciksQnI9QmUo'@; put 'YnQsa3Qua2V5Lmhhc2hBbGdvcml0aG0sa3Qua2V5LnNhbHRWYWx1ZSxrdC5rZXkuc3BpbkNvdW50LGt0LmtleS5rZXlCaXRzLGdlLnZlcmlmaWVySGFzaC52YWx1ZSk7a3Qua2V5LmVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlPV9lKCEwLGt0LmtleS5jaXBoZXJBbGdvcml0aG0sa3Qua2V5'@; put 'LmNpcGhlckNoYWluaW5nLEJyLGt0LmtleS5zYWx0VmFsdWUsWm4pO3ZhciBzaT1mdW5jdGlvbiBkdChjdCl7dmFyIGJ0PXtuYW1lOiJlbmNyeXB0aW9uIixhdHRyaWJ1dGVzOnt4bWxuczoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9lbmNyeXB0aW9uIiwieG1s'@; put 'bnM6cCI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIiwieG1sbnM6YyI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL2NlcnRpZmljYXRlIn0sY2hpbGRyZW46W3tuYW1l'@; put 'OiJrZXlEYXRhIixhdHRyaWJ1dGVzOntzYWx0U2l6ZTpjdC5wYWNrYWdlLnNhbHRWYWx1ZS5sZW5ndGgsYmxvY2tTaXplOmN0LnBhY2thZ2UuYmxvY2tTaXplLGtleUJpdHM6Y3QucGFja2FnZS5rZXlCaXRzLGhhc2hTaXplOmN0LnBhY2thZ2UuaGFzaFNpemUsY2lwaGVyQWxnb3JpdGhtOmN0'@; put 'LnBhY2thZ2UuY2lwaGVyQWxnb3JpdGhtLGNpcGhlckNoYWluaW5nOmN0LnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsaGFzaEFsZ29yaXRobTpjdC5wYWNrYWdlLmhhc2hBbGdvcml0aG0sc2FsdFZhbHVlOmN0LnBhY2thZ2Uuc2FsdFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKX19LHtuYW1lOiJk'@; put 'YXRhSW50ZWdyaXR5IixhdHRyaWJ1dGVzOntlbmNyeXB0ZWRIbWFjS2V5OmN0LmRhdGFJbnRlZ3JpdHkuZW5jcnlwdGVkSG1hY0tleS50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkSG1hY1ZhbHVlOmN0LmRhdGFJbnRlZ3JpdHkuZW5jcnlwdGVkSG1hY1ZhbHVlLnRvU3RyaW5nKCJiYXNl'@; put 'NjQiKX19LHtuYW1lOiJrZXlFbmNyeXB0b3JzIixjaGlsZHJlbjpbe25hbWU6ImtleUVuY3J5cHRvciIsYXR0cmlidXRlczp7dXJpOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L2tleUVuY3J5cHRvci9wYXNzd29yZCJ9LGNoaWxkcmVuOlt7bmFtZToicDplbmNy'@; put 'eXB0ZWRLZXkiLGF0dHJpYnV0ZXM6e3NwaW5Db3VudDpjdC5rZXkuc3BpbkNvdW50LHNhbHRTaXplOmN0LmtleS5zYWx0VmFsdWUubGVuZ3RoLGJsb2NrU2l6ZTpjdC5rZXkuYmxvY2tTaXplLGtleUJpdHM6Y3Qua2V5LmtleUJpdHMsaGFzaFNpemU6Y3Qua2V5Lmhhc2hTaXplLGNpcGhlckFs'@; put 'Z29yaXRobTpjdC5rZXkuY2lwaGVyQWxnb3JpdGhtLGNpcGhlckNoYWluaW5nOmN0LmtleS5jaXBoZXJDaGFpbmluZyxoYXNoQWxnb3JpdGhtOmN0LmtleS5oYXNoQWxnb3JpdGhtLHNhbHRWYWx1ZTpjdC5rZXkuc2FsdFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKSxlbmNyeXB0ZWRWZXJpZmll'@; put 'ckhhc2hJbnB1dDpjdC5rZXkuZW5jcnlwdGVkVmVyaWZpZXJIYXNoSW5wdXQudG9TdHJpbmcoImJhc2U2NCIpLGVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlOmN0LmtleS5lbmNyeXB0ZWRWZXJpZmllckhhc2hWYWx1ZS50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkS2V5VmFsdWU6Y3Qu'@; put 'a2V5LmVuY3J5cHRlZEtleVZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKX19XX1dfV19LGt0PShuZXcgUCkuYnVpbGQoYnQpO3JldHVybiBCdWZmZXIuY29uY2F0KFtMLEJ1ZmZlci5mcm9tKGt0LCJ1dGY4IildKX0oa3QpLHhpPWplLnV0aWxzLmNmYl9uZXcoKTtyZXR1cm4gamUudXRpbHMuY2Zi'@; put 'X2FkZCh4aSwiRW5jcnlwdGlvbkluZm8iLHNpKSxqZS51dGlscy5jZmJfYWRkKHhpLCJFbmNyeXB0ZWRQYWNrYWdlIixUdCkseGl9fSgpO2Z1bmN0aW9uIHc1KHkpe3JldHVybiBmdW5jdGlvbihMKXtmb3IodmFyIFE9MDtRIT15Lmxlbmd0aDsrK1Epe3ZhciByZT15W1FdO3ZvaWQgMD09PUxb'@; put 'cmVbMF1dJiYoTFtyZVswXV09cmVbMV0pLCJuIj09PXJlWzJdJiYoTFtyZVswXV09TnVtYmVyKExbcmVbMF1dKSl9fX12YXIgUDY9ZnVuY3Rpb24oeSl7dzUoW1siY2VsbE5GIiwhMV0sWyJjZWxsSFRNTCIsITBdLFsiY2VsbEZvcm11bGEiLCEwXSxbImNlbGxTdHlsZXMiLCExXSxbImNlbGxU'@; put 'ZXh0IiwhMF0sWyJjZWxsRGF0ZXMiLCExXSxbInNoZWV0U3R1YnMiLCExXSxbInNoZWV0Um93cyIsMCwibiJdLFsiYm9va0RlcHMiLCExXSxbImJvb2tTaGVldHMiLCExXSxbImJvb2tQcm9wcyIsITFdLFsiYm9va0ZpbGVzIiwhMV0sWyJib29rVkJBIiwhMV0sWyJwYXNzd29yZCIsIiJdLFsi'@; put 'V1RGIiwhMV1dKSh5KSx5LmJvb2tJbWFnZXMmJih5LmNlbGxTdHlsZXM9ITApfSxoXz13NShbWyJjZWxsRGF0ZXMiLCExXSxbImJvb2tTU1QiLCExXSxbImJvb2tUeXBlIiwieGxzeCJdLFsiY29tcHJlc3Npb24iLCExXSxbIldURiIsITFdXSk7ZnVuY3Rpb24gUk0oeSl7cmV0dXJuIEhpLldT'@; put 'LmluZGV4T2YoeSk+LTE/InNoZWV0IjpIaS5DUyYmeT09SGkuQ1M/ImNoYXJ0IjpIaS5EUyYmeT09SGkuRFM/ImRpYWxvZyI6SGkuTVMmJnk9PUhpLk1TPyJtYWNybyI6eSYmeS5sZW5ndGg/eToic2hlZXQifXZhciBGNj1bXTtmdW5jdGlvbiBnUih5LFAsTCxRLHJlLGdlLF9lLHZlLFNlLEhl'@; put 'LEJlLEdlKXt0cnl7Z2VbUV09RG8oUXQoeSxMLCEwKSxQKTt2YXIgZHQsbnQ9SXQoeSxQKTtzd2l0Y2godmUpe2Nhc2Uic2hlZXQiOmR0PWZ1bmN0aW9uIE5MKHksUCxMLFEscmUsZ2UsX2UsdmUpe3JldHVybiIuYmluIj09PVAuc2xpY2UoLTQpP2Z1bmN0aW9uIENMKHksUCxMLFEscmUsZ2Us'@; put 'X2Upe2lmKCF5KXJldHVybiB5O3ZhciB2ZT1QfHx7fTtRfHwoUT17IiFpZCI6e319KSxudWxsIT10ZSYmbnVsbD09dmUuZGVuc2UmJih2ZS5kZW5zZT10ZSk7dmFyIEhlLEN0LGN0LGJ0LEZ0LGt0LFR0LFp0LHBuLEtuLFNlPXZlLmRlbnNlP1tdOnt9LEJlPXtzOntyOjJlNixjOjJlNn0sZTp7'@; put 'cjowLGM6MH19LEdlPVtdLG50PSExLGR0PSExLHVuPVtdO3ZlLmJpZmY9MTIsdmVbIiFyb3ciXT0wO3ZhciBxbj0wLHpuPSExLGtuPVtdLGVyPXt9LHRyPXZlLnN1cGJvb2tzfHxyZS5zdXBib29rc3x8W1tdXTtpZih0ci5zaGFyZWRmPWVyLHRyLmFycmF5Zj1rbix0ci5TaGVldE5hbWVzPXJl'@; put 'LlNoZWV0TmFtZXN8fHJlLlNoZWV0cy5tYXAoZnVuY3Rpb24oUXIpe3JldHVybiBRci5uYW1lfSksIXZlLnN1cGJvb2tzJiYodmUuc3VwYm9va3M9dHIscmUuTmFtZXMpKWZvcih2YXIgWm49MDtabjxyZS5OYW1lcy5sZW5ndGg7Kytabil0clswXVtabisxXT1yZS5OYW1lc1tabl07dmFyIEJy'@; put 'PVtdLHNpPVtdLHhpPSExO2lmKG1mWzE2XT17bjoiQnJ0U2hvcnRSZWFsIixmOmpTfSxIbyh5LGZ1bmN0aW9uKHVyLEFuLHZyKXtpZighZHQpc3dpdGNoKHZyKXtjYXNlIDE0ODpIZT11cjticmVhaztjYXNlIDA6Q3Q9dXIsdmUuc2hlZXRSb3dzJiZ2ZS5zaGVldFJvd3M8PUN0LnImJihkdD0h'@; put 'MCkscG49SHMoRnQ9Q3QuciksdmVbIiFyb3ciXT1DdC5yLCh1ci5oaWRkZW58fHVyLmhwdHx8bnVsbCE9dXIubGV2ZWwpJiYodXIuaHB0JiYodXIuaHB4PVUxKHVyLmhwdCkpLHNpW3VyLnJdPXVyKTticmVhaztjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgNzpjYXNl'@; put 'IDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDE2OmNhc2UgMTc6Y2FzZSAxODpzd2l0Y2goY3Q9e3Q6dXJbMl19LHVyWzJdKXtjYXNlIm4iOmN0LnY9dXJbMV07YnJlYWs7Y2FzZSJzIjpjdC52PShadD1mNlt1clsxXV0pLnQsdmUuY2VsbFN0'@; put 'eWxlcyYmKGN0LlI9ZnVuY3Rpb24gdUQoeSxQKXtpZih5LlIpcmV0dXJuIHkuUjtpZihQJiZQLkZvbnRzJiYoMSE9eS5yLmxlbmd0aHx8MCE9eS5yWzBdLmljaCkpe3kuUj1bXTt2YXIgTD0wLFE9eS5yW0xdLHJlPXkucltMKzFdO2ZvcihRLmljaD4wJiZ5LlIucHVzaCh7dDoicyIsdjp5LnQu'@; put 'c2xpY2UoMCxRLmljaCl9KTtMPHkuci5sZW5ndGgtMTsrK0wpeS5SLnB1c2goe3Q6InMiLHY6eS50LnNsaWNlKChRPXkucltMXSkuaWNoLChyZT15LnJbTCsxXSkuaWNoKSxzOlAuRm9udHNbUS5pZm50XX0pO3JldHVybiB5LlIucHVzaCh7dDoicyIsdjp5LnQuc2xpY2UoKHJlfHxRKS5pY2gp'@; put 'LHM6UC5Gb250c1socmV8fFEpLmlmbnRdfSkseS5SfX0oWnQsX2UpKTticmVhaztjYXNlImIiOmN0LnY9ISF1clsxXTticmVhaztjYXNlImUiOmN0LnY9dXJbMV0sITEhPT12ZS5jZWxsVGV4dCYmKGN0Lnc9UW9bY3Qudl0pO2JyZWFrO2Nhc2Uic3RyIjpjdC50PSJzIixjdC52PXVyWzFdfWlm'@; put 'KChidD1fZS5DZWxsWGZbdXJbMF0uaVN0eWxlUmVmXSkmJnA2KGN0LGJ0Lm51bUZtdElkLGJ0LmZpbGxJZCxidC5mb250SWQsYnQuYm9yZGVySWQsdmUsMCxfZSksdmUuY2VsbFN0eWxlcyYmY3QucyYmYnQuYWxpZ25tZW50JiYoY3Qucy5hbGlnbm1lbnQ9b24oYnQuYWxpZ25tZW50KSksa3Q9'@; put 'LTE9PXVyWzBdLmM/a3QrMTp1clswXS5jLHZlLmRlbnNlPyhTZVtGdF18fChTZVtGdF09W10pLFNlW0Z0XVtrdF09Y3QpOlNlW05zKGt0KStwbl09Y3QsdmUuY2VsbEZvcm11bGEpe2Zvcih6bj0hMSxxbj0wO3FuPGtuLmxlbmd0aDsrK3FuKXt2YXIgcnI9a25bcW5dO0N0LnI+PXJyWzBdLnMu'@; put 'ciYmQ3Qucjw9cnJbMF0uZS5yJiZrdD49cnJbMF0ucy5jJiZrdDw9cnJbMF0uZS5jJiYoY3QuRj1PbyhyclswXSksem49ITApfSF6biYmdXIubGVuZ3RoPjMmJihjdC5mPXVyWzNdKX1pZihCZS5zLnI+Q3QuciYmKEJlLnMucj1DdC5yKSxCZS5zLmM+a3QmJihCZS5zLmM9a3QpLEJlLmUucjxD'@; put 'dC5yJiYoQmUuZS5yPUN0LnIpLEJlLmUuYzxrdCYmKEJlLmUuYz1rdCksdmUuY2VsbERhdGVzJiZidCYmIm4iPT1jdC50JiZ3LmlzX2RhdGUody5fdGFibGVbYnQubnVtRm10SWRdKSl7dmFyIFNuPXcucGFyc2VfZGF0ZV9jb2RlKGN0LnYpO1NuJiYoY3QudD0iZCIsY3Qudj1uZXcgRGF0ZShT'@; put 'bi55LFNuLm0tMSxTbi5kLFNuLkgsU24uTSxTbi5TLFNuLnUpKX1icmVhaztjYXNlIDE6Y2FzZSAxMjppZighdmUuc2hlZXRTdHVic3x8bnQpYnJlYWs7Y3Q9e3Q6InoiLHY6dm9pZCAwfSxrdD0tMT09dXJbMF0uYz9rdCsxOnVyWzBdLmMsKGJ0PV9lLkNlbGxYZlt1clswXS5pU3R5bGVSZWZd'@; put 'KSYmcDYoY3QsYnQubnVtRm10SWQsYnQuZmlsbElkLGJ0LmZvbnRJZCxidC5ib3JkZXJJZCx2ZSwwLF9lKSx2ZS5jZWxsU3R5bGVzJiZjdC5zJiZidC5hbGlnbm1lbnQmJihjdC5zLmFsaWdubWVudD1vbihidC5hbGlnbm1lbnQpKSx2ZS5kZW5zZT8oU2VbRnRdfHwoU2VbRnRdPVtdKSxTZVtG'@; put 'dF1ba3RdPWN0KTpTZVtOcyhrdCkrcG5dPWN0LEJlLnMucj5DdC5yJiYoQmUucy5yPUN0LnIpLEJlLnMuYz5rdCYmKEJlLnMuYz1rdCksQmUuZS5yPEN0LnImJihCZS5lLnI9Q3QuciksQmUuZS5jPGt0JiYoQmUuZS5jPWt0KTticmVhaztjYXNlIDE3Njp1bi5wdXNoKHVyKTticmVhaztjYXNl'@; put 'IDQ5NDp2YXIgbXI9UVsiIWlkIl1bdXIucmVsSWRdO2Zvcihtcj8odXIuVGFyZ2V0PW1yLlRhcmdldCx1ci5sb2MmJih1ci5UYXJnZXQrPSIjIit1ci5sb2MpLHVyLlJlbD1tcik6IiI9PXVyLnJlbElkJiYodXIuVGFyZ2V0PSIjIit1ci5sb2MpLEZ0PXVyLnJmeC5zLnI7RnQ8PXVyLnJmeC5l'@; put 'LnI7KytGdClmb3Ioa3Q9dXIucmZ4LnMuYztrdDw9dXIucmZ4LmUuYzsrK2t0KXZlLmRlbnNlPyhTZVtGdF18fChTZVtGdF09W10pLFNlW0Z0XVtrdF18fChTZVtGdF1ba3RdPXt0OiJ6Iix2OnZvaWQgMH0pLFNlW0Z0XVtrdF0ubD11cik6KFR0PWRpKHtjOmt0LHI6RnR9KSxTZVtUdF18fChT'@; put 'ZVtUdF09e3Q6InoiLHY6dm9pZCAwfSksU2VbVHRdLmw9dXIpO2JyZWFrO2Nhc2UgNDI2OmlmKCF2ZS5jZWxsRm9ybXVsYSlicmVhaztrbi5wdXNoKHVyKSwoS249dmUuZGVuc2U/U2VbRnRdW2t0XTpTZVtOcyhrdCkrcG5dKS5mPXhsKHVyWzFdLEJlLHtyOkN0LnIsYzprdH0sdHIsdmUpLEtu'@; put 'LkY9T28odXJbMF0pO2JyZWFrO2Nhc2UgNDI3OmlmKCF2ZS5jZWxsRm9ybXVsYSlicmVhaztlcltkaSh1clswXS5zKV09dXJbMV0sKEtuPXZlLmRlbnNlP1NlW0Z0XVtrdF06U2VbTnMoa3QpK3BuXSkuZj14bCh1clsxXSxCZSx7cjpDdC5yLGM6a3R9LHRyLHZlKTticmVhaztjYXNlIDYwOmlm'@; put 'KCF2ZS5jZWxsU3R5bGVzKWJyZWFrO2Zvcig7dXIuZT49dXIuczspQnJbdXIuZS0tXT17d2lkdGg6dXIudy8yNTYsaGlkZGVuOiEhKDEmdXIuZmxhZ3MpLGxldmVsOnVyLmxldmVsfSx4aXx8KHhpPSEwKSxwdShCclt1ci5lKzFdKTticmVhaztjYXNlIDE2MTpTZVsiIWF1dG9maWx0ZXIiXT17'@; put 'cmVmOk9vKHVyKX07YnJlYWs7Y2FzZSA0NzY6U2VbIiFtYXJnaW5zIl09dXI7YnJlYWs7Y2FzZSAxNDc6cmUuU2hlZXRzW0xdfHwocmUuU2hlZXRzW0xdPXt9KSx1ci5uYW1lJiYocmUuU2hlZXRzW0xdLkNvZGVOYW1lPXVyLm5hbWUpLCh1ci5hYm92ZXx8dXIubGVmdCkmJihTZVsiIW91dGxp'@; put 'bmUiXT17YWJvdmU6dXIuYWJvdmUsbGVmdDp1ci5sZWZ0fSk7YnJlYWs7Y2FzZSAxMzc6cmUuVmlld3N8fChyZS5WaWV3cz1be31dKSxyZS5WaWV3c1swXXx8KHJlLlZpZXdzWzBdPXt9KSx1ci5SVEwmJihyZS5WaWV3c1swXS5SVEw9ITApLHVyLmdyaWR8fChyZS5WaWV3c1swXS5ncmlkPSEx'@; put 'LFNlWyIhZ3JpZGxpbmVzIl09ITEpO2JyZWFrO2Nhc2UgNDg1OlNlWyIhc2hlZXRGb3JtYXQiXT11cjticmVhaztjYXNlIDY0OmNhc2UgMTA1MzohZnVuY3Rpb24geUwoeSxQLEwsUSl7aWYoUCl7dmFyIHJlPXtyZWY6UC5zcXJmeCx0OlAudH07UC5vcCYmKHJlLm9wPVAub3ApO3ZhciBnZT0i'@; put 'IixfZT0iIix2ZT1QLnNxcmZ4PyJzdHJpbmciPT10eXBlb2YgUC5zcXJmeD9PaShQLnNxcmZ4LnNwbGl0KCIsIilbMF0pOlAuc3FyZng6bnVsbDtpZihQLmYxJiYoZ2U9eGwoUC5mMSx2ZSxudWxsLEwsUSwhMCkpLFAuZjImJihfZT14bChQLmYyLHZlLG51bGwsTCxRLCEwKSksUC5vcCYmWyJJ'@; put 'TiIsIk9UIl0uaW5kZXhPZihQLm9wKT49LTEpcmUubWluPWdlLHJlLm1heD1fZTtlbHNlIGlmKFAub3ApcmUudj1nZTtlbHNlIHRyeXtzd2l0Y2goUC50KXtjYXNlIkxpc3QiOmlmKCJQdGdTdHIiPT09UC5mMVswXVswXVswXSYmMT09UC5mMVswXS5sZW5ndGgpe3JlLmw9UC5mMVswXVswXVsx'@; put 'XS5zcGxpdCgiLCIpO2JyZWFrfWNhc2UiQ3VzdG9tIjpyZS5mPWdlfX1jYXRjaHt9eVsiIXZhbGlkYXRpb25zIl18fCh5WyIhdmFsaWRhdGlvbnMiXT1bXSkseVsiIXZhbGlkYXRpb25zIl0ucHVzaChyZSl9fShTZSx1cix0cix2ZSk7YnJlYWs7Y2FzZSAxNTE6U2VbIiFmcmVlemUiXT11clsw'@; put 'XTticmVhaztjYXNlIDE1MjpTZVsiIXNlbCJdPXVyO2JyZWFrO2Nhc2UgMTc1OmNhc2UgNjQ0OmNhc2UgNjI1OmNhc2UgNTYyOmNhc2UgMzk2OmNhc2UgMTExMjpjYXNlIDExNDY6Y2FzZSA0NzE6Y2FzZSAxMDUwOmNhc2UgNjQ5OmNhc2UgMTEwNTpjYXNlIDQ5OmNhc2UgNTg5OmNhc2UgNjA3'@; put 'OmNhc2UgNTY0OmNhc2UgMTA1NTpjYXNlIDE2ODpjYXNlIDE3NDpjYXNlIDExODA6Y2FzZSA0OTk6Y2FzZSA1MDc6Y2FzZSA1NTA6Y2FzZSAxNzE6Y2FzZSAxNjc6Y2FzZSAxMTc3OmNhc2UgMTY5OmNhc2UgMTE4MTpjYXNlIDU1MTpjYXNlIDU1MjpjYXNlIDY2MTpjYXNlIDYzOTpjYXNlIDQ3'@; put 'ODpjYXNlIDUzNzpjYXNlIDQ3NzpjYXNlIDUzNjpjYXNlIDExMDM6Y2FzZSA2ODA6Y2FzZSAxMTA0OmNhc2UgMTAyNDpjYXNlIDY2MzpjYXNlIDUzNTpjYXNlIDY3ODpjYXNlIDUwNDpjYXNlIDEwNDM6Y2FzZSA0Mjg6Y2FzZSAxNzA6Y2FzZSAzMDcyOmNhc2UgNTA6Y2FzZSAyMDcwOmNhc2Ug'@; put 'MTA0NTpicmVhaztjYXNlIDM1Om50PSEwO2JyZWFrO2Nhc2UgMzY6bnQ9ITE7YnJlYWs7Y2FzZSAzNzpHZS5wdXNoKEFuKSxudD0hMDticmVhaztjYXNlIDM4OkdlLnBvcCgpLG50PSExO2JyZWFrO2RlZmF1bHQ6aWYoISgoQW58fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApJiYhKChBbnx8IiIp'@; put 'LmluZGV4T2YoIkVuZCIpPjApJiYoIW50fHx2ZS5XVEYmJiJCcnRBQ0JlZ2luIiE9R2VbR2UubGVuZ3RoLTFdKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrdnIrIiAiK0FuKX19LHZlKSxkZWxldGUgdmUuc3VwYm9va3MsZGVsZXRlIHZlWyIhcm93Il0sIVNlWyIhcmVm'@; put 'Il0mJihCZS5zLnI8MmU2fHxIZSYmKEhlLmUucj4wfHxIZS5lLmM+MHx8SGUucy5yPjB8fEhlLnMuYz4wKSkmJihTZVsiIXJlZiJdPU9vKEhlfHxCZSkpLHZlLnNoZWV0Um93cyYmU2VbIiFyZWYiXSl7dmFyIExpPU9pKFNlWyIhcmVmIl0pO3ZlLnNoZWV0Um93czw9K0xpLmUuciYmKExpLmUu'@; put 'cj12ZS5zaGVldFJvd3MtMSxMaS5lLnI+QmUuZS5yJiYoTGkuZS5yPUJlLmUuciksTGkuZS5yPExpLnMuciYmKExpLnMucj1MaS5lLnIpLExpLmUuYz5CZS5lLmMmJihMaS5lLmM9QmUuZS5jKSxMaS5lLmM8TGkucy5jJiYoTGkucy5jPUxpLmUuYyksU2VbIiFmdWxscmVmIl09U2VbIiFyZWYi'@; put 'XSxTZVsiIXJlZiJdPU9vKExpKSl9cmV0dXJuIHVuLmxlbmd0aD4wJiYoU2VbIiFtZXJnZXMiXT11biksQnIubGVuZ3RoPjAmJihTZVsiIWNvbHMiXT1Cciksc2kubGVuZ3RoPjAmJihTZVsiIXJvd3MiXT1zaSksU2V9KHksUSxMLHJlLGdlLDAsdmUpOmZ1bmN0aW9uIEtaKHksUCxMLFEscmUs'@; put 'Z2UsX2Upe2lmKCF5KXJldHVybiB5O1F8fChRPXsiIWlkIjp7fX0pLG51bGwhPXRlJiZudWxsPT1QLmRlbnNlJiYoUC5kZW5zZT10ZSk7dmFyIHZlPVAuZGVuc2U/W106e30sU2U9e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sSGU9IiIsQmU9IiIsR2U9eS5tYXRjaChhNSk7R2U/KEhl'@; put 'PXkuc2xpY2UoMCxHZS5pbmRleCksQmU9eS5zbGljZShHZS5pbmRleCtHZVswXS5sZW5ndGgpKTpIZT1CZT15O3ZhciBudD1CZS5sYXN0SW5kZXhPZigiZXh0THN0IiksQ3Q9KC0xPT1udHx8QmUuc2xpY2UobnQpLEhlLm1hdGNoKHh2KSk7Q3Q/djYoQ3RbMF0sMCxyZSxMKTooQ3Q9SGUubWF0'@; put 'Y2goREkpKSYmZnVuY3Rpb24gX1MoeSxQLEwsUSxyZSxnZSxfZSl7djYoeS5zbGljZSgwLHkuaW5kZXhPZigiPiIpKSwwLFEscmUpO3ZhciB2ZT1QLm1hdGNoKF82KTtpZih2ZSl7dmFyIEhlPVUyKGxuKHZlWzBdKSxnZSxfZSk7TFsiIXRhYmNvbG9yIl09SGV9aWYoKHZlPVAubWF0Y2gobVMp'@; put 'KSYmbG4odmVbMF0pLmZpdFRvUGFnZSYmKExbIiFwcmludCJdfHwoTFsiIXByaW50Il09e30pLExbIiFwcmludCJdLnByb3BzfHwoTFsiIXByaW50Il0ucHJvcHM9e30pLExbIiFwcmludCJdLnByb3BzLmZpdHx8KExbIiFwcmludCJdLnByb3BzLmZpdD17fSksbnVsbD09TFsiIXByaW50Il0u'@; put 'cHJvcHMuZml0LmhlaWdodCYmKExbIiFwcmludCJdLnByb3BzLmZpdC5oZWlnaHQ9MSksbnVsbD09TFsiIXByaW50Il0ucHJvcHMuZml0LndpZHRoJiYoTFsiIXByaW50Il0ucHJvcHMuZml0LndpZHRoPTEpKSx2ZT1QLm1hdGNoKHZTKSl7TFsiIW91dGxpbmUiXT17fTt2YXIgR2U9bG4odmVb'@; put 'MF0pO0dlLnN1bW1hcnlCZWxvdyYmKExbIiFvdXRsaW5lIl0uYWJvdmU9IXlyKEdlLnN1bW1hcnlCZWxvdykpLEdlLnN1bW1hcnlSaWdodCYmKExbIiFvdXRsaW5lIl0ubGVmdD0heXIoR2Uuc3VtbWFyeVJpZ2h0KSl9fShDdFswXSxDdFsxXXx8IiIsdmUscmUsTCxfZSxnZSk7dmFyIGN0PShI'@; put 'ZS5tYXRjaCgvPCg/Olx3KjopP2RpbWVuc2lvbi8pfHx7aW5kZXg6LTF9KS5pbmRleDtpZihjdD4wKXt2YXIgYnQ9SGUuc2xpY2UoY3QsY3QrNTApLm1hdGNoKCRaKTtidCYmKCFQfHwhUC5ub2RpbSkmJmZ1bmN0aW9uIEFJKHksUCl7dmFyIEw9T2koUCk7TC5zLnI8PUwuZS5yJiZMLnMuYzw9'@; put 'TC5lLmMmJkwucy5yPj0wJiZMLnMuYz49MCYmKHlbIiFyZWYiXT1PbyhMKSl9KHZlLGJ0WzFdKX12YXIgRnQ9SGUubWF0Y2goSUkpO0Z0JiZGdFsxXSYmZnVuY3Rpb24gZVkoeSxQLEwsUSl7TC5WaWV3c3x8KEwuVmlld3M9W3t9XSk7dmFyIHJlPTA7eS5yZXBsYWNlKHpJLGZ1bmN0aW9uKGdl'@; put 'LF9lKXt2YXIgdmU9bG4oZ2UpO2lmKEwuVmlld3NbUV18fChMLlZpZXdzW1FdPXt9KSx5cih2ZS5yaWdodFRvTGVmdCkmJihMLlZpZXdzW1FdLlJUTD0hMCksdmUuc2hvd0dyaWRMaW5lcyYmKEwuVmlld3NbUV0uZ3JpZD15cih2ZS5zaG93R3JpZExpbmVzKSxudWxsPT1QWyIhZ3JpZGxpbmVz'@; put 'Il0mJihQWyIhZ3JpZGxpbmVzIl09eXIodmUuc2hvd0dyaWRMaW5lcykpKSwrdmUuem9vbVNjYWxlJiYoTC5WaWV3c1tRXS56b29tPSt2ZS56b29tU2NhbGUpLHZlLnZpZXcmJihMLlZpZXdzW1FdLnZpZXc9dmUudmlldyksMT09KytyZSYmIi8+IiE9Z2Uuc2xpY2UoLTIpKXt2YXIgU2U9eS5z'@; put 'bGljZShfZStnZS5sZW5ndGgpLEhlPVNlLm1hdGNoKC88XC8oPzpcdzopP3NoZWV0Vmlldyg/OltePmEtel1bXj5dKik/XC8/Pi8pO2lmKCFIZSlyZXR1cm4iIjt2YXIgQmU9KFNlPVNlLnNsaWNlKDAsSGUuaW5kZXgpKS5tYXRjaCgvPCg/Olx3Oik/cGFuZSg/OltePmEtel1bXj5dKik/XC8/'@; put 'Pi8pO2lmKEJlKXt2YXIgR2U9bG4oQmVbMF0pOyJmcm96ZW4iPT1HZS5zdGF0ZT9QWyIhZnJlZXplIl09TnMoK0dlLnhTcGxpdHx8MCkrSHMoK0dlLnlTcGxpdHx8MCk6R2UudG9wTGVmdENlbGwmJihQWyIhZnJlZXplIl09R2UudG9wTGVmdENlbGwpfXZhciBudD1TZS5tYXRjaCgvPCg/Olx3'@; put 'Oik/c2VsZWN0aW9uKD86W14+YS16XVtePl0qKT9cLz8+Lyk7aWYobnQpe3ZhciBkdD1sbihudFswXSk7aWYoZHQuYWN0aXZlQ2VsbCYmKFBbIiFzZWwiXT17Y2VsbDpkdC5hY3RpdmVDZWxsfSksZHQuc3FyZWYpe3ZhciBDdD1kdC5zcXJlZi5yZXBsYWNlKC9ccy4qJC8sIiIpO1BbIiFzZWwi'@; put 'XXx8KFBbIiFzZWwiXT17Y2VsbDpkaShXcyhDdCkucyl9KSxQWyIhc2VsIl0ucmFuZ2U9ZHQuc3FyZWZ9fX1yZXR1cm4iIn0pfShGdFsxXSx2ZSxyZSxMKTt2YXIga3Q9SGUubWF0Y2goZmYpLFR0PVtdO2lmKFAuY2VsbFN0eWxlcyl7dmFyIFp0PUhlLm1hdGNoKFN2KTtadCYmZnVuY3Rpb24g'@; put 'RzMoeSxQLEwpe2Zvcih2YXIgUT0hMSxyZT0wO3JlIT1QLmxlbmd0aDsrK3JlKXt2YXIgZ2U9bG4oUFtyZV0sITApO2dlLmhpZGRlbiYmKGdlLmhpZGRlbj15cihnZS5oaWRkZW4pKTt2YXIgX2U9cGFyc2VJbnQoZ2UubWluLDEwKS0xLHZlPXBhcnNlSW50KGdlLm1heCwxMCktMTtmb3IoZ2Uu'@; put 'b3V0bGluZUxldmVsJiYoZ2UubGV2ZWw9K2dlLm91dGxpbmVMZXZlbHx8MCksZGVsZXRlIGdlLm1pbixkZWxldGUgZ2UubWF4LGdlLndpZHRoPStnZS53aWR0aCwhUSYmZ2Uud2lkdGgmJihRPSEwKSxwdShnZSksZ2Uuc3R5bGUmJihnZS5zPWM1KGdlLnN0eWxlLEwpKTtfZTw9dmU7KXlbX2Ur'@; put 'K109b24oZ2UpfX0oVHQsWnQsX2UpfWlmKEdlJiZaSShHZVsxXSxMLHZlLFAsU2UsZ2UsX2UpLFAuY2FsbGJhY2spcmV0dXJuIHZlO3ZhciBwbj1CZS5tYXRjaChUSSk7cG4mJih2ZVsiIXByb3RlY3QiXT1mdW5jdGlvbiB0dCh5KXt2YXIgUD1sbih5LCEwLCEwKSxMPXt9O2lmKHlyKFAuc2hl'@; put 'ZXQpKXJldHVybiBBdi5mb3JFYWNoKGZ1bmN0aW9uKFEpe0xbUV09bnVsbCE9UFtRXSYmeXIoUFtRXSl9KSxUdi5mb3JFYWNoKGZ1bmN0aW9uKFEpe0xbUV09bnVsbD09UFtRXXx8eXIoUFtRXSl9KSxQLmFsZ29yaXRobU5hbWUmJihMLmVuY3J5cHRpb249e2FsZ286UC5hbGdvcml0aG1OYW1l'@; put 'LGhhc2g6UC5oYXNoVmFsdWUsc2FsdDpQLnNhbHRWYWx1ZSxzcGluOitQLnNwaW5Db3VudHx8MWU1fSksTH0ocG5bMF0pKTt2YXIgS249QmUubWF0Y2goZzYpO0tuJiYodmVbIiFhdXRvZmlsdGVyIl09ZnVuY3Rpb24gbDUoeSl7cmV0dXJue3JlZjooeS5tYXRjaCgvcmVmPSIoW14iXSopIi8p'@; put 'fHxbXSlbMV19fShLblswXSkpO3ZhciB1bj1bXSxxbj1CZS5tYXRjaChDdik7aWYocW4pZm9yKGN0PTA7Y3QhPXFuLmxlbmd0aDsrK2N0KXVuW2N0XT1PaShxbltjdF0uc2xpY2UocW5bY3RdLmluZGV4T2YoJyInKSsxKSk7dmFyIHpuPSgtMT09bnQ/QmU6QmUuc2xpY2UoMCxudCkpLm1hdGNo'@; put 'KG02KTt6biYmKHZlWyIhY29uZGZtdCJdPVtdLmNvbmNhdC5hcHBseShbXSx6bi5tYXAoZnVuY3Rpb24oQW4pe3JldHVybiBMUyhBbixQLGdlLF9lKX0pKSksbnQ+LTEmJih6bj1CZS5zbGljZShudCkubWF0Y2gobTYpKSYmKHZlWyIhY29uZGZtdCJdfHwodmVbIiFjb25kZm10Il09W10pLHZl'@; put 'WyIhY29uZGZtdCJdPXZlWyIhY29uZGZtdCJdLmNvbmNhdC5hcHBseSh2ZVsiIWNvbmRmbXQiXSx6bi5tYXAoZnVuY3Rpb24oQW4pe3JldHVybiBMUyhBbixQLGdlLF9lLCEwKX0pKSk7dmFyIGtuPSgtMT09bnQ/QmU6QmUuc2xpY2UoMCxudCkpLm1hdGNoKGhTKTtrbiYmKHZlWyIhdmFsaWRh'@; put 'dGlvbnMiXT1UUyhrblswXSxQKSksbnQ+LTEmJihrbj1CZS5zbGljZShudCkubWF0Y2goaFMpKSYmKHZlWyIhdmFsaWRhdGlvbnMiXXx8KHZlWyIhdmFsaWRhdGlvbnMiXT1bXSksdmVbIiF2YWxpZGF0aW9ucyJdPXZlWyIhdmFsaWRhdGlvbnMiXS5jb25jYXQoVFMoa25bMF0sUCwhMCkpKTt2'@; put 'YXIgZXI9QmUubWF0Y2goZFMpO2VyJiZmdW5jdGlvbiBNUyh5LFAsTCl7Zm9yKHZhciBRPUFycmF5LmlzQXJyYXkoeSkscmU9MDtyZSE9UC5sZW5ndGg7KytyZSl7dmFyIGdlPWxuKFBpKFBbcmVdKSwhMCk7aWYoIWdlLnJlZilyZXR1cm47dmFyIF9lPSgoTHx8e30pWyIhaWQiXXx8W10pW2dl'@; put 'LmlkXTtfZT8oZ2UuVGFyZ2V0PV9lLlRhcmdldCxnZS5sb2NhdGlvbiYmKGdlLlRhcmdldCs9IiMiK3hyKGdlLmxvY2F0aW9uKSkpOihnZS5UYXJnZXQ9IiMiK3hyKGdlLmxvY2F0aW9uKSxfZT17VGFyZ2V0OmdlLlRhcmdldCxUYXJnZXRNb2RlOiJJbnRlcm5hbCJ9KSxnZS5SZWw9X2UsZ2Uu'@; put 'dG9vbHRpcCYmKGdlLlRvb2x0aXA9Z2UudG9vbHRpcCxkZWxldGUgZ2UudG9vbHRpcCk7Zm9yKHZhciB2ZT1PaShnZS5yZWYpLFNlPXZlLnMucjtTZTw9dmUuZS5yOysrU2UpZm9yKHZhciBIZT12ZS5zLmM7SGU8PXZlLmUuYzsrK0hlKXt2YXIgQmU9ZGkoe2M6SGUscjpTZX0pO1E/KHlbU2Vd'@; put 'fHwoeVtTZV09W10pLHlbU2VdW0hlXXx8KHlbU2VdW0hlXT17dDoieiIsdjp2b2lkIDB9KSx5W1NlXVtIZV0ubD1nZSk6KHlbQmVdfHwoeVtCZV09e3Q6InoiLHY6dm9pZCAwfSkseVtCZV0ubD1nZSl9fX0odmUsZXIsUSk7dmFyIHRyPUJlLm1hdGNoKExJKTt0ciYmZnVuY3Rpb24gUEkoeSxQ'@; put 'KXt2YXIgTD1sbih5LCExLCEwKTtQWyIhcHJpbnQiXXx8KFBbIiFwcmludCJdPXt9KSxQWyIhcHJpbnQiXS5wcm9wc3x8KFBbIiFwcmludCJdLnByb3BzPXt9KTt2YXIgUT1QWyIhcHJpbnQiXS5wcm9wcztMLmdyaWRMaW5lcyYmKFEuZ3JpZGxpbmVzPXlyKEwuZ3JpZExpbmVzKSksbnVsbCE9'@; put 'TC5ob3Jpem9udGFsQ2VudGVyZWQmJihRLmNlbnRlclg9eXIoTC5ob3Jpem9udGFsQ2VudGVyZWQpKSxudWxsIT1MLnZlcnRpY2FsQ2VudGVyZWQmJihRLmNlbnRlclk9eXIoTC52ZXJ0aWNhbENlbnRlcmVkKSl9KHRyWzBdLHZlKTt2YXIgWm49QmUubWF0Y2goTXYpO1puJiYoKHZlWyIhcHJp'@; put 'bnQiXXx8KHZlWyIhcHJpbnQiXT17fSkpLm1hcmdpbnM9dmVbIiFtYXJnaW5zIl09eFMobG4oWm5bMF0pKSk7dmFyIEJyPUJlLm1hdGNoKFczKTtCciYmZnVuY3Rpb24geVMoeSxQKXt2YXIgTD1sbih5LCExLCEwKTtkZWxldGUgTC5pZCxkZWxldGUgTFswXSxQWyIhcHJpbnQiXXx8KFBbIiFw'@; put 'cmludCJdPXt9KSxQWyIhcHJpbnQiXS5wcm9wc3x8KFBbIiFwcmludCJdLnByb3BzPXt9KTt2YXIgUT1QWyIhcHJpbnQiXS5wcm9wcztMLm9yaWVudGF0aW9uJiYoUS5vcmllbnRhdGlvbj1MLm9yaWVudGF0aW9uKSxMLnNjYWxlJiYoUS5zY2FsZT0rTC5zY2FsZSksK0wuZml0VG9IZWlnaHQ+'@; put 'PTAmJigoUS5maXR8fChRLmZpdD17fSkpLmhlaWdodD0rTC5maXRUb0hlaWdodCksK0wuZml0VG9XaWR0aD49MCYmKChRLmZpdHx8KFEuZml0PXt9KSkud2lkdGg9K0wuZml0VG9XaWR0aCksTC5wYXBlckhlaWdodCYmTC5wYXBlcldpZHRoP1EucGFwZXI9e3dpZHRoOkwucGFwZXJXaWR0aCxo'@; put 'ZWlnaHQ6TC5wYXBlckhlaWdodH06TC5wYXBlclNpemUmJihRLnBhcGVyPVFtW1EucGFwZXI9K0wucGFwZXJTaXplXXx8US5wYXBlciksTC5ob3Jpem9udGFsRHBpP1EuZHBpPStMLmhvcml6b250YWxEcGk6TC52ZXJ0aWNhbERwaSYmKFEuZHBpPStMLnZlcnRpY2FsRHBpKSwiYXV0b21hdGlj'@; put 'IiE9KEwuZmlyc3RQYWdlTnVtYmVyfHwiYXV0b21hdGljIikmJihRLmZpcnN0PStMLmZpcnN0UGFnZU51bWJlcikseXIoTC5ibGFja0FuZFdoaXRlKSYmKFEuYnc9ITApLHlyKEwuZHJhZnQpJiYoUS5kcmFmdD0hMCksIm92ZXJUaGVuRG93biI9PUwucGFnZU9yZGVyJiYoUS5vcmRlcj0ib3Zl'@; put 'ciIpLGt2W0wuY2VsbENvbW1lbnRzXSYmKFEuY29tbWVudHM9a3ZbTC5jZWxsQ29tbWVudHNdKSxiU1tMLmVycm9yc10mJihRLmVycm9ycz1iU1tMLmVycm9yc10pfShCclswXSx2ZSk7dmFyIHNpPUJlLm1hdGNoKHFaKTtzaSYmZnVuY3Rpb24gSXYoeSxQKXtpZihQWyIhcHJpbnQiXXx8KFBb'@; put 'IiFwcmludCJdPXt9KSx5WzFdKXt2YXIgTD0iIixRPTA7eVsxXS5yZXBsYWNlKCR0LGZ1bmN0aW9uKHJlLGdlKXtpZigiLyIhPXJlLmNoYXJBdCgxKSlMPXJlLnNsaWNlKDEsLTEpLFE9Z2UrcmUubGVuZ3RoO2Vsc2UgaWYoTCl7dmFyIF9lPUwubWF0Y2goL0hlYWRlci8pPyJoZWFkZXIiOiJm'@; put 'b290ZXIiLHZlPUwucmVwbGFjZSgvSGVhZGVyfEZvb3Rlci8sIiIpO0w9IiIsUFsiIXByaW50Il1bX2VdfHwoUFsiIXByaW50Il1bX2VdPXt9KSxQWyIhcHJpbnQiXVtfZV1bdmVdPXhyKFBpKHlbMV0uc2xpY2UoUSxnZSkpKX19KX19KHNpLHZlKTt2YXIgeGk9QmUubWF0Y2goV2QpO3hpJiYo'@; put 'KHZlWyIhcHJpbnQiXXx8KHZlWyIhcHJpbnQiXT17fSkpLnJvd0JyZWFrcz12ZVsiIXJvd0JyZWFrcyJdPWZ1bmN0aW9uIFNTKHkpe3ZhciBQPVtdO3JldHVybih5Lm1hdGNoKENTKXx8W10pLmZvckVhY2goZnVuY3Rpb24oTCl7dmFyIFE9bG4oTCk7UC5wdXNoKHtSOitRLmlkfSl9KSxQfSh4'@; put 'aVswXSkpO3ZhciBMaT1CZS5tYXRjaChmUyk7TGkmJigodmVbIiFwcmludCJdfHwodmVbIiFwcmludCJdPXt9KSkuY29sQnJlYWtzPXZlWyIhY29sQnJlYWtzIl09ZnVuY3Rpb24gSEkoeSl7dmFyIFA9W107cmV0dXJuKHkubWF0Y2goQ1MpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihMKXt2YXIg'@; put 'UT1sbihMKTtQLnB1c2goe0M6K1EuaWR9KX0pLFB9KExpWzBdKSk7dmFyIFFyPVtdO2lmKChRcj1CZS5tYXRjaCgvZHJhd2luZyByOmlkPSIoLio/KSIvKSkmJih2ZVsiIXJlbCJdPVFyWzFdKSwoUXI9QmUubWF0Y2goL2xlZ2FjeURyYXdpbmcgcjppZD0iKC4qPykiLykpJiYodmVbIiFsZWdy'@; put 'ZWwiXT1RclsxXSksKFFyPUJlLm1hdGNoKGhmKSkmJih2ZVsiIWN0cmxpZCJdPVFyLm1hcChmdW5jdGlvbihBbil7cmV0dXJuIGxuKEFuKX0pKSwoUXI9QmUubWF0Y2goRXYpKSYmZnVuY3Rpb24gZ1MoeSxQKXt5WyIhdGFibGVyZWZzIl18fCh5WyIhdGFibGVyZWZzIl09W10pLChQLm1hdGNo'@; put 'KHBTKXx8W10pLmZvckVhY2goZnVuY3Rpb24oTCl7eVsiIXRhYmxlcmVmcyJdLnB1c2gobG4oTCkuaWQpfSl9KHZlLFFyWzFdKSxQJiZQLm5vZGltJiYoU2Uucy5jPVNlLnMucj0wKSwhdmVbIiFyZWYiXSYmU2UuZS5jPj1TZS5zLmMmJlNlLmUucj49U2Uucy5yJiYodmVbIiFyZWYiXT1PbyhT'@; put 'ZSkpLFAuc2hlZXRSb3dzPjAmJnZlWyIhcmVmIl0pe3ZhciB1cj1PaSh2ZVsiIXJlZiJdKTtQLnNoZWV0Um93czw9K3VyLmUuciYmKHVyLmUucj1QLnNoZWV0Um93cy0xLHVyLmUucj5TZS5lLnImJih1ci5lLnI9U2UuZS5yKSx1ci5lLnI8dXIucy5yJiYodXIucy5yPXVyLmUuciksdXIuZS5j'@; put 'PlNlLmUuYyYmKHVyLmUuYz1TZS5lLmMpLHVyLmUuYzx1ci5zLmMmJih1ci5zLmM9dXIuZS5jKSx2ZVsiIWZ1bGxyZWYiXT12ZVsiIXJlZiJdLHZlWyIhcmVmIl09T28odXIpKX1yZXR1cm4ga3QmJih2ZVsiIXNoZWV0Rm9ybWF0Il09ZnVuY3Rpb24gWFooeSl7dmFyIFA9e30sTD17fSxRPSEx'@; put 'LHJlPXt9LGdlPSExO3JldHVybiB5LmRlZmF1bHRSb3dIZWlnaHQmJihRPSEwLEwuaHB0PXBhcnNlRmxvYXQoeS5kZWZhdWx0Um93SGVpZ2h0KSkseS56ZXJvSGVpZ2h0JiYoUT0hMCxMLmhpZGRlbj15cih5Lnplcm9IZWlnaHQpKSx5LmJhc2VDb2xXaWR0aD8oZ2U9ITAscmUud2NoPXBhcnNl'@; put 'RmxvYXQoeS5iYXNlQ29sV2lkdGgpKTp5LmRlZmF1bHRDb2xXaWR0aCYmKGdlPSEwLHJlLndjaD1wYXJzZUZsb2F0KHkuZGVmYXVsdENvbFdpZHRoKS01L3BsKSx5Lm91dGxpbmVMZXZlbENvbCYmKFAuY29sb3V0bGluZT1wYXJzZUludCh5Lm91dGxpbmVMZXZlbENvbCkpLHkub3V0bGluZUxl'@; put 'dmVsUm93JiYoUC5yb3dvdXRsaW5lPXBhcnNlSW50KHkub3V0bGluZUxldmVsUm93KSkseS50aGlja0JvdHRvbSYmKFAuYm90dGhpY2s9eXIoeS50aGlja0JvdHRvbSkpLHkudGhpY2tUb3AmJihQLnRvcHRoaWNrPXlyKHkudGhpY2tUb3ApKSx5LmR5RGVzY2VudCYmKFAuZHlEZXNjZW50PXBh'@; put 'cnNlRmxvYXQoeS5keURlc2NlbnQpKSxRJiYoSTMoTCksUC5yb3c9TCksZ2UmJihwdShyZSksUC5jb2w9cmUpLFB9KGxuKGt0WzBdKSkpLFR0Lmxlbmd0aD4wJiYodmVbIiFjb2xzIl09VHQpLHVuLmxlbmd0aD4wJiYodmVbIiFtZXJnZXMiXT11biksUVsiIWlkIl1bdmVbIiFyZWwiXV0mJih2'@; put 'ZVsiIWRyYXdlbCJdPVFbIiFpZCJdW3ZlWyIhcmVsIl1dKSxRWyIhaWQiXVt2ZVsiIWxlZ3JlbCJdXSYmKHZlWyIhbGVnZHJhd2VsIl09UVsiIWlkIl1bdmVbIiFsZWdyZWwiXV0pLCh2ZVsiIWN0cmxpZCJdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihBbil7QW4ucmVsPVFbIiFpZCJdW0FuLmlk'@; put 'XX0pLG51bGw9PXZlWyIhZ3JpZGxpbmVzIl0mJih2ZVsiIWdyaWRsaW5lcyJdPSEwKSx2ZX0oeSxRLEwscmUsZ2UsX2UsdmUpfShudCxQLHJlLFNlLGdlW1FdLEhlLEJlLEdlKTticmVhaztjYXNlImNoYXJ0IjpkdD1mdW5jdGlvbiBWTCh5LFAsTCxRLHJlLGdlLF9lLHZlKXtyZXR1cm4iLmJp'@; put 'biI9PT1QLnNsaWNlKC00KT9mdW5jdGlvbiB0cCh5LFAsTCxRLHJlKXtpZigheSlyZXR1cm4geTtRfHwoUT17IiFpZCI6e319KTt2YXIgZ2U9eyIhdHlwZSI6ImNoYXJ0IiwiIWRyYXdlbCI6bnVsbCwiIXJlbCI6IiJ9LF9lPVtdLHZlPSExO3JldHVybiBIbyh5LGZ1bmN0aW9uKEhlLEJlLEdl'@; put 'KXtzd2l0Y2goR2Upe2Nhc2UgNTUwOmdlWyIhcmVsIl09SGU7YnJlYWs7Y2FzZSA2NTE6cmUuU2hlZXRzW0xdfHwocmUuU2hlZXRzW0xdPXt9KSxIZS5uYW1lJiYocmUuU2hlZXRzW0xdLkNvZGVOYW1lPUhlLm5hbWUpO2JyZWFrO2Nhc2UgNTYyOmNhc2UgNjUyOmNhc2UgNjY5OmNhc2UgNjc5'@; put 'OmNhc2UgNTUxOmNhc2UgNTUyOmNhc2UgNDc2OmNhc2UgMzA3MjpicmVhaztjYXNlIDM1OnZlPSEwO2JyZWFrO2Nhc2UgMzY6dmU9ITE7YnJlYWs7Y2FzZSAzNzpfZS5wdXNoKEJlKTticmVhaztjYXNlIDM4Ol9lLnBvcCgpO2JyZWFrO2RlZmF1bHQ6aWYoKEJlfHwiIikuaW5kZXhPZigiQmVn'@; put 'aW4iKT4wKV9lLnB1c2goQmUpO2Vsc2UgaWYoKEJlfHwiIikuaW5kZXhPZigiRW5kIik+MClfZS5wb3AoKTtlbHNlIGlmKCF2ZXx8UC5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK0dlKyIgIitCZSl9fSxQKSxRWyIhaWQiXVtnZVsiIXJlbCJdXSYmKGdlWyIhZHJh'@; put 'd2VsIl09UVsiIWlkIl1bZ2VbIiFyZWwiXV0pLGdlfSh5LFEsTCxyZSxnZSk6ZnVuY3Rpb24gSjMoeSxQLEwsUSxyZSl7aWYoIXkpcmV0dXJuIHk7UXx8KFE9eyIhaWQiOnt9fSk7dmFyIF9lLGdlPXsiIXR5cGUiOiJjaGFydCIsIiFkcmF3ZWwiOm51bGwsIiFyZWwiOiIifSx2ZT15Lm1hdGNo'@; put 'KHh2KTt2ZSYmdjYodmVbMF0sMCxyZSxMKTt2YXIgU2U9eS5tYXRjaChNdik7cmV0dXJuIFNlJiYoZ2VbIiFtYXJnaW5zIl09eFMobG4oU2VbMF0pKSksKF9lPXkubWF0Y2goL2RyYXdpbmcgcjppZD0iKC4qPykiLykpJiYoZ2VbIiFyZWwiXT1fZVsxXSksUVsiIWlkIl1bZ2VbIiFyZWwiXV0m'@; put 'JihnZVsiIWRyYXdlbCJdPVFbIiFpZCJdW2dlWyIhcmVsIl1dKSxnZX0oeSwwLEwscmUsZ2UpfShudCxQLHJlLFNlLGdlW1FdLEhlKTticmVhaztjYXNlIm1hY3JvIjpkdD1mdW5jdGlvbiBCTCh5LFAsTCxRLHJlLGdlLF9lLHZlKXtyZXR1cm4gUC5zbGljZSgtNCkseyIhdHlwZSI6Im1hY3Jv'@; put 'In19KDAsUCk7YnJlYWs7Y2FzZSJkaWFsb2ciOmR0PWZ1bmN0aW9uIGpMKHksUCxMLFEscmUsZ2UsX2UsdmUpe3JldHVybiBQLnNsaWNlKC00KSx7IiF0eXBlIjoiZGlhbG9nIn19KDAsUCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBzaGVldCB0eXBlICIr'@; put 'dmUpfWlmKFNlLmNhbGxiYWNrKXJldHVybjtfZVtRXT1kdCxmdW5jdGlvbiBQTSh5LFAsTCxRLHJlLGdlLF9lLHZlKXtpZih5JiZ5WyIhZHJhd2VsIl0pe3ZhciBTZT1zbih5WyIhZHJhd2VsIl0uVGFyZ2V0LFEpLEhlPUJpKFNlKSxCZT1mdW5jdGlvbiBHRCh5LFAsTCxRLHJlKXt2YXIgZ2U9'@; put 'e2NoYXJ0czpbXSxpbWFnZXM6W10sc2hhcGVzOltdfTtpZigheSlyZXR1cm4gZ2U7dmFyIF9lPXJlfHx7fTtyZXR1cm4oeS5tYXRjaCgvPFtePF0qPyhhYnNvbHV0ZUFuY2hvcnxvbmVDZWxsQW5jaG9yfHR3b0NlbGxBbmNob3IpLio/KGFic29sdXRlQW5jaG9yfG9uZUNlbGxBbmNob3J8dHdv'@; put 'Q2VsbEFuY2hvcikuKj8+L2cpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih2ZSl7dmFyIFNlPSIiLEhlPXt0eXBlOiIifSxCZT17fSxHZT0hMCxudD0hMSxkdD0hMSxDdD0hMSxjdD17czp7fX0sYnQ9LTEsRnQ9W10sa3Q9W10sVHQ9e3M6e2FsaWdubWVudDp7aG9yaXpvbnRhbDoiY2VudGVyIix2'@; put 'ZXJ0aWNhbDoiY2VudGVyIn19fSxadD0iIixwbj0tMSx1bj17fTt2ZS5yZXBsYWNlKCR0LGZ1bmN0aW9uKHFuLHpuKXtGdD1udWxsO3ZhciBrbj1sbihxbiksZXI9am4oa25bMF0pLnJlcGxhY2UoL1tcL10/PiQvLCIiKTtzd2l0Y2goZXIpe2Nhc2UiPGNsaWVudERhdGEiOmJyZWFrO2Nhc2Ui'@; put 'PGFic29sdXRlQW5jaG9yIjpjYXNlIjxvbmVDZWxsQW5jaG9yIjpjYXNlIjx0d29DZWxsQW5jaG9yIjpIZS50eXBlPWpuKGtuWzBdKS5yZXBsYWNlKC9bPD5dL2csIiIpO2JyZWFrO2Nhc2UiPC9hYnNvbHV0ZUFuY2hvciI6Y2FzZSI8L29uZUNlbGxBbmNob3IiOmNhc2UiPC90d29DZWxsQW5j'@; put 'aG9yIjpicmVhaztjYXNlIjxwb3MiOkhlLnBvcz17eDora24ueCx5Oitrbi55fTticmVhaztjYXNlIjxleHQiOkdlJiYoSGUuZXh0PXt4Oitrbi5jeCx5Oitrbi5jeX0pO2JyZWFrO2Nhc2UiPGZyb20iOmNhc2UiPHRvIjpCZT17fTticmVhaztjYXNlIjwvZnJvbSI6R2UmJihIZS5mcm9tPUJl'@; put 'KTticmVhaztjYXNlIjwvdG8iOkdlJiYoSGUudG89QmUpO2JyZWFrO2Nhc2UiPGNvbCI6Y2FzZSI8Y29sT2ZmIjpjYXNlIjxyb3ciOmNhc2UiPHJvd09mZiI6YnQ9em4rcW4ubGVuZ3RoO2JyZWFrO2Nhc2UiPC9jb2wiOkJlLmM9K3ZlLnNsaWNlKGJ0LHpuKTticmVhaztjYXNlIjwvY29sT2Zm'@; put 'IjpCZS5jT2ZmPSt2ZS5zbGljZShidCx6bik7YnJlYWs7Y2FzZSI8L3JvdyI6QmUucj0rdmUuc2xpY2UoYnQsem4pO2JyZWFrO2Nhc2UiPC9yb3dPZmYiOkJlLnJPZmY9K3ZlLnNsaWNlKGJ0LHpuKTticmVhaztjYXNlIjxzcCI6U2U9InNoYXBlIixUdC5BbmNob3I9SGUsZ2Uuc2hhcGVzLnB1'@; put 'c2goVHQpLEdlPSExO2JyZWFrO2Nhc2UiPC9zcCI6R2U9ITA7YnJlYWs7Y2FzZSI8Z3JhcGhpY0ZyYW1lIjpTZT0iZ3JhcGhpYyIsR2U9ITE7YnJlYWs7Y2FzZSI8L2dyYXBoaWNGcmFtZSI6R2U9ITA7YnJlYWs7Y2FzZSI8cGljIjpTZT0icGljdHVyZSIsR2U9ITE7YnJlYWs7Y2FzZSI8L3Bp'@; put 'YyI6R2U9ITA7YnJlYWs7Y2FzZSI8Z3JwU3AiOlNlPSJncm91cHNoYXBlIixHZT0hMTticmVhaztjYXNlIjwvZ3JwU3AiOkdlPSEwO2JyZWFrO2Nhc2UiPGdyYXBoaWMiOmNhc2UiPC9ncmFwaGljIjpjYXNlIjx4ZnJtIjpjYXNlIjwveGZybSI6Y2FzZSI8b2ZmIjpicmVhaztjYXNlIjxncmFw'@; put 'aGljRGF0YSI6bnQ9ITA7YnJlYWs7Y2FzZSI8L2dyYXBoaWNEYXRhIjpudD0hMTticmVhaztjYXNlIjxibGlwRmlsbCI6bnQ9ITA7YnJlYWs7Y2FzZSI8L2JsaXBGaWxsIjpudD0hMTticmVhaztjYXNlIjwvYmxpcCI6YnJlYWs7Y2FzZSI8c3JjUmVjdCI6bnQ9ITA7YnJlYWs7Y2FzZSI8L3Ny'@; put 'Y1JlY3QiOm50PSExO2JyZWFrO2Nhc2UiPG5vRmlsbCI6aWYoZHQpYnJlYWs7IjxzcFByIj09a3Quc2xpY2UoLTEpWzBdJiYoVHQucy5mZ0NvbG9yPW51bGwpO2JyZWFrO2Nhc2UiPC9zb2xpZEZpbGwiOmlmKGR0fHxDdClicmVhazsiPHNwUHIiPT1rdC5zbGljZSgtMilbMF0/VHQucy5mZ0Nv'@; put 'bG9yPXVuOiI8clByIj09a3Quc2xpY2UoLTIpWzBdJiZrdC5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihjdC5zLmNvbG9yPXVuKSx1bj17fSxDdD0hMTticmVhaztjYXNlIjxwcnN0R2VvbSI6InNoYXBlIj09U2UmJihUdFsiIXNoYXBlIl09a24ucHJzdCk7YnJlYWs7Y2FzZSI8L3Byc3RHZW9t'@; put 'IjpjYXNlIjxhdkxzdCI6YnJlYWs7Y2FzZSI8dHhCb2R5IjpudD0hMCxUdC5SPVtdO2JyZWFrO2Nhc2UiPC90eEJvZHkiOm50PSExO2JyZWFrO2Nhc2UiPGJvZHlQciI6VHQucy5hbGlnbm1lbnQudmVydGljYWw9WURba24uYW5jaG9yfHwidCJdfHwidG9wIjticmVhaztjYXNlIjxsc3RTdHls'@; put 'ZSI6YnJlYWs7Y2FzZSI8dCI6cG49em4rcW4ubGVuZ3RoO2JyZWFrO2Nhc2UiPGJyIjpjYXNlIjxici8+IjpadCs9IlxuIjticmVhaztjYXNlIjwvdCI6WnQrPXZlLnNsaWNlKHBuLHpuKTticmVhaztjYXNlIjxwUHIiOlR0LnMuYWxpZ25tZW50Lmhvcml6b250YWx8fChUdC5zLmFsaWdubWVu'@; put 'dC5ob3Jpem9udGFsPUxDW2tuLmFsZ258fCJsIl18fCJsZWZ0Iiksa3QuaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoY3Qucy5hbGlnbm1lbnQuaG9yaXpvbnRhbD1MQ1trbi5hbGdufHwibCJdfHwibGVmdCIpO2JyZWFrO2Nhc2UiPHJQciI6a24uc3omJmt0LmluZGV4T2YoIjx0eEJvZHkiKT4t'@; put 'MSYmKFR0LnMuc3o9Y3Qucy5zej0ra24uc3ovMTAwKTticmVhaztjYXNlIjxwIjpadD0iIixjdD17dDoicyIsdjoiIixzOnthbGlnbm1lbnQ6e319fTticmVhaztjYXNlIjwvcCI6InNoYXBlIj09U2UmJmt0LmluZGV4T2YoIjx0eEJvZHkiKT4tMSYmKFR0LnY9KFR0LnZ8fCIiKStadCxjdC52'@; put 'PVp0LFR0LlIucHVzaChjdCkpO2JyZWFrO2Nhc2UiPGxhdGluIjprbi50eXBlZmFjZSYma3QuaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoY3Qucy5uYW1lPWtuLnR5cGVmYWNlKTticmVhaztjYXNlIjxzdHlsZSI6bnQ9ITAsZHQ9ITA7YnJlYWs7Y2FzZSI8L3N0eWxlIjpudD0hMSxkdD0hMTti'@; put 'cmVhaztjYXNlIjxsblJlZiI6Y2FzZSI8ZmlsbFJlZiI6Y2FzZSI8ZWZmZWN0UmVmIjpjYXNlIjxmb250UmVmIjpicmVhaztjYXNlIjwvZmlsbFJlZiI6IWR0JiYic2hhcGUiPT1TZSYmKFR0LnMuZmdDb2xvcj11biksdW49e307YnJlYWs7Y2FzZSI8L2ZvbnRSZWYiOiFkdCYmInNoYXBlIj09'@; put 'U2UmJihUdC5zLmNvbG9yPXVuKSx1bj17fTticmVhaztjYXNlIjxzY2hlbWVDbHIiOnZhciB0cj17YmcxOiJsdDEiLGJnMjoibHQyIix0eDE6ImRrMSIsdHgyOiJkazIifVtrbi52YWxdfHxrbi52YWwsWm49KChRLnRoZW1lRWxlbWVudHN8fHt9KS5jbHJTY2hlbWV8fFtdKS5maW5kKGZ1bmN0'@; put 'aW9uKHNpKXtyZXR1cm4gc2kubmFtZT09dHJ9KTtabj91bi5yZ2I9Wm4ucmdiOkN0PSEwO2JyZWFrO2Nhc2UiPHNjcmdiQ2xyIjpDdD0hMDticmVhaztjYXNlIjxzcmdiQ2xyIjp1bi5yZ2I9a24udmFsLnNsaWNlKC02KTticmVhaztjYXNlIjxoc2xDbHIiOmNhc2UiPHN5c0NsciI6Y2FzZSI8'@; put 'cHJzdENsciI6Q3Q9ITA7YnJlYWs7Y2FzZSI8Y2hhcnQiOkZ0PWdlLmNoYXJ0czt2YXIgQnI9a24uaWQ7Y2FzZSI8YmxpcCI6RnR8fChGdD1nZS5pbWFnZXMsQnI9a24uZW1iZWQpLEZ0LnB1c2goe0FuY2hvcjpIZSxUYXJnZXQ6KFBbIiFpZCJdW0JyXXx8e30pLlRhcmdldH0pLGtuLmxpbmsm'@; put 'JihGdFtGdC5sZW5ndGgtMV0uTGluaz0oUFsiIWlkIl1ba24ubGlua118fHt9KS5UYXJnZXQpO2JyZWFrO2Nhc2UiPGdycFNwUHIiOm50PSEwO2JyZWFrO2Nhc2UiPC9ncnBTcFByIjpudD0hMTticmVhaztjYXNlIjxudkdycFNwUHIiOm50PSEwO2JyZWFrO2Nhc2UiPC9udkdycFNwUHIiOm50'@; put 'PSExO2JyZWFrO2Nhc2UiPHNwUHIiOm50PSEwO2JyZWFrO2Nhc2UiPC9zcFByIjpudD0hMTticmVhaztjYXNlIjxzdHJldGNoIjpjYXNlIjwvc3RyZXRjaCI6Y2FzZSI8ZmlsbFJlY3QiOmNhc2UiPG52R3JhcGhpY0ZyYW1lUHIiOmNhc2UiPC9udkdyYXBoaWNGcmFtZVByIjpjYXNlIjxjTnZH'@; put 'cmFwaGljRnJhbWVQciI6Y2FzZSI8L2NOdkdyYXBoaWNGcmFtZVByIjpjYXNlIjxncmFwaGljRnJhbWVMb2NrcyI6Y2FzZSI8bnZQaWNQciI6Y2FzZSI8L252UGljUHIiOmNhc2UiPGNOdlBpY1ByIjpjYXNlIjwvY052UGljUHIiOmNhc2UiPHBpY0xvY2tzIjpjYXNlIjxjTnZHcnBTcFByIjpj'@; put 'YXNlIjwvY052R3JwU3BQciI6Y2FzZSI8Z3JwU3BMb2NrcyI6Y2FzZSI8bnZTcFByIjpjYXNlIjwvbnZTcFByIjpjYXNlIjxjTnZTcFByIjpjYXNlIjwvY052U3BQciI6Y2FzZSI8c3BMb2NrcyI6YnJlYWs7Y2FzZSI8Y052UHIiOm50PSEwO2JyZWFrO2Nhc2UiPC9jTnZQciI6bnQ9ITE7YnJl'@; put 'YWs7Y2FzZSI8Y3huU3AiOm50PSEwO2JyZWFrO2Nhc2UiPC9jeG5TcCI6bnQ9ITE7YnJlYWs7Y2FzZSI8Y052Q3huU3BQciI6bnQ9ITA7YnJlYWs7Y2FzZSI8L2NOdkN4blNwUHIiOm50PSExO2JyZWFrO2Nhc2UiPG52Q3huU3BQciI6Y2FzZSI8L252Q3huU3BQciI6YnJlYWs7Y2FzZSI8ZXh0'@; put 'THN0IjpudD0hMCxkdD0hMDticmVhaztjYXNlIjwvZXh0THN0IjpudD0hMSxkdD0hMTticmVhaztjYXNlIjwvZXh0IjpicmVhaztkZWZhdWx0OmlmKF9lJiZfZS5XVEYmJiFudCl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2tuWzBdKyIgaW4gZHJhd2luZyIpfXJldHVybiI8LyI9'@; put 'PWVyLnNsaWNlKDAsMik/a3QucG9wKCk6Ii8+IiE9cW4uc2xpY2UocW4ubGVuZ3RoLTIpJiZrdC5wdXNoKGVyKSwiIn0pfSksZ2V9KFF0KEwsU2UsITApLERvKFF0KEwsSGUsITApLFNlKSwwLHZlLHJlKTtpZihCZSl7aWYoQmUuY2hhcnRzKWZvcih2YXIgR2U9MDtHZTxCZS5jaGFydHMubGVu'@; put 'Z3RoOysrR2Upe3ZhciBudD1CZS5jaGFydHNbR2VdLGR0PXNuKG50LlRhcmdldCxTZSksQ3Q9QmkoZHQpLGN0PSJjaGFydCI9PVAmJjA9PUdlLGJ0PW0wKFF0KEwsZHQsITApLDAsMCxEbyhRdChMLEN0LCEwKSxkdCksMCxjdD95Om51bGwsbnQsY3Q/bnVsbDp5KTtjdHx8KHlbIiFjaGFydHMi'@; put 'XXx8KHlbIiFjaGFydHMiXT1bXSkseVsiIWNoYXJ0cyJdLnB1c2goYnQpKX1pZihyZS5ib29rSW1hZ2VzJiZCZS5pbWFnZXMpZm9yKHZhciBGdD0wO0Z0PEJlLmltYWdlcy5sZW5ndGg7KytGdCl7dmFyIGt0PUJlLmltYWdlc1tGdF0sVHQ9eyIhdHlwZSI6ImltYWdlIiwiIXBvcyI6eEMoa3Qu'@; put 'QW5jaG9yKSwiIXBvc1R5cGUiOmt0LkFuY2hvci50eXBlLnJlcGxhY2UoL0FuY2hvci8sIiIpLCIhYWJzcG9zIjpzZihrdC5BbmNob3IseSksIiFyZWxwb3MiOkttKGt0LkFuY2hvcix5KX07aWYoa3QuVGFyZ2V0JiYoVHRbIiFwYXRoIl09c24oa3QuVGFyZ2V0LFNlKSxUdFsiIWRhdGEiXT1J'@; put 'dChMLFR0WyIhcGF0aCJdKSxUdFsiIWRhdGF0eXBlIl09InN0cmluZyI9PXR5cGVvZiBUdFsiIWRhdGEiXT8iYmluYXJ5IjoiYnVmZmVyIiksa3QuTGluayYmKFR0WyIhZGF0YXR5cGUiXXx8KFR0WyIhZGF0YXR5cGUiXT0icmVtb3RlIiksVHRbIiFsaW5rIl09a3QuTGluayksIVR0WyIhZGF0'@; put 'YXR5cGUiXSl0aHJvdyJJbWFnZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCI7eVsiIWltYWdlcyJdfHwoeVsiIWltYWdlcyJdPVtdKSx5WyIhaW1hZ2VzIl0ucHVzaChUdCl9dmFyIFp0LHBuO2lmKEJlLnNoYXBlcylmb3IodmFyIHVuPTA7dW48QmUuc2hhcGVzLmxlbmd0aDsrK3VuKXBuPXsiIXR5'@; put 'cGUiOiJzaGFwZSIsIiFwb3MiOnNmKChadD1CZS5zaGFwZXNbdW5dKS5BbmNob3IseSksIiFwb3NUeXBlIjpadC5BbmNob3IudHlwZS5yZXBsYWNlKC9BbmNob3IvLCIiKSwiIWFic3BvcyI6c2YoWnQuQW5jaG9yLHkpLCIhcmVscG9zIjpLbShadC5BbmNob3IseSl9LFsidiIsIiFzaGFwZSIs'@; put 'InMiLCJSIl0uZm9yRWFjaChLbikseVsiIXNoYXBlcyJdfHwoeVsiIXNoYXBlcyJdPVtdKSx5WyIhc2hhcGVzIl0ucHVzaChwbil9fWZ1bmN0aW9uIEtuKHFuKXtadFtxbl0mJihwbltxbl09WnRbcW5dKX19KGR0LHZlLHksUCxTZSwwLDAsQmUpO3ZhciBDdD1bXTtyZXR1cm4gZ2UmJmdlW1Fd'@; put 'JiZsdChnZVtRXSkuZm9yRWFjaChmdW5jdGlvbihjdCl7aWYoZ2VbUV1bY3RdLlR5cGU9PUhpLkNNTlQpe3ZhciBidD1zbihnZVtRXVtjdF0uVGFyZ2V0LFApO2lmKCEoQ3Q9ZnVuY3Rpb24gdVkoeSxQLEwpe3JldHVybiIuYmluIj09PVAuc2xpY2UoLTQpP2Z1bmN0aW9uIFFEKHksUCl7dmFy'@; put 'IEw9W10sUT1bXSxyZT17fSxnZT0hMTtyZXR1cm4gSG8oeSxmdW5jdGlvbih2ZSxTZSxIZSl7c3dpdGNoKEhlKXtjYXNlIDYzMjpRLnB1c2godmUpO2JyZWFrO2Nhc2UgNjM1OnJlPXZlO2JyZWFrO2Nhc2UgNjM3OnJlLnQ9dmUudCxyZS5oPXZlLmgscmUucj12ZS5yO2JyZWFrO2Nhc2UgNjM2'@; put 'OmlmKHJlLmF1dGhvcj1RW3JlLmlhdXRob3JdLGRlbGV0ZSByZS5pYXV0aG9yLFAuc2hlZXRSb3dzJiZyZS5yZngmJlAuc2hlZXRSb3dzPD1yZS5yZngucilicmVhaztyZS50fHwocmUudD0iIiksZGVsZXRlIHJlLnJmeCxMLnB1c2gocmUpO2JyZWFrO2Nhc2UgMzA3MjpjYXNlIDM3OmNhc2Ug'@; put 'Mzg6YnJlYWs7Y2FzZSAzNTpnZT0hMDticmVhaztjYXNlIDM2OmdlPSExO2JyZWFrO2RlZmF1bHQ6aWYoISgoU2V8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApJiYhKChTZXx8IiIpLmluZGV4T2YoIkVuZCIpPjApJiYoIWdlfHxQLldURikpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJl'@; put 'Y29yZCAiK0hlKyIgIitTZSl9fSksTH0oeSxMKTpmdW5jdGlvbiBIQyh5LFApe2lmKHkubWF0Y2goLzwoPzpcdys6KT9jb21tZW50cyAqXC8+LykpcmV0dXJuW107dmFyIEw9W10sUT1bXSxyZT15Lm1hdGNoKC88KD86XHcrOik/YXV0aG9ycz4oW1xzXFNdKik8XC8oPzpcdys6KT9hdXRob3Jz'@; put 'Pi8pO3JlJiZyZVsxXSYmcmVbMV0uc3BsaXQoLzxcL1x3Kjo/YXV0aG9yPi8pLmZvckVhY2goZnVuY3Rpb24oX2Upe2lmKCIiIT09X2UmJiIiIT09X2UudHJpbSgpKXt2YXIgdmU9X2UubWF0Y2goLzwoPzpcdys6KT9hdXRob3JbXj5dKj4oLiopLyk7dmUmJkwucHVzaCh2ZVsxXSl9fSk7dmFy'@; put 'IGdlPXkubWF0Y2goLzwoPzpcdys6KT9jb21tZW50TGlzdD4oW1xzXFNdKik8XC8oPzpcdys6KT9jb21tZW50TGlzdD4vKTtyZXR1cm4gZ2UmJmdlWzFdJiZnZVsxXS5zcGxpdCgvPFwvXHcqOj9jb21tZW50Pi8pLmZvckVhY2goZnVuY3Rpb24oX2Upe2lmKCIiIT09X2UmJiIiIT09X2UudHJp'@; put 'bSgpKXt2YXIgdmU9X2UubWF0Y2goLzwoPzpcdys6KT9jb21tZW50W14+XSo+Lyk7aWYodmUpe3ZhciBTZT1sbih2ZVswXSksSGU9e2F1dGhvcjpTZS5hdXRob3JJZCYmTFtTZS5hdXRob3JJZF18fCJzaGVldGpzZ2hvc3QiLHJlZjpTZS5yZWYsZ3VpZDpTZS5ndWlkfSxCZT1zcyhTZS5yZWYp'@; put 'O2lmKCEoUC5zaGVldFJvd3MmJlAuc2hlZXRSb3dzPD1CZS5yKSl7dmFyIEdlPV9lLm1hdGNoKC88KD86XHcrOik/dGV4dD4oW1xzXFNdKik8XC8oPzpcdys6KT90ZXh0Pi8pLG50PSEhR2UmJiEhR2VbMV0mJkQ5KEdlWzFdKXx8e3I6IiIsdDoiIixoOiIifTtIZS5yPW50LnIsIjx0PjwvdD4i'@; put 'PT1udC5yJiYobnQudD1udC5oPSIiKSxIZS50PShudC50fHwiIikucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnJlcGxhY2UoL1xyL2csIlxuIiksUC5jZWxsSFRNTCYmKEhlLmg9bnQuaCksUS5wdXNoKEhlKX19fX0pLFF9KHksTCl9KEl0KHksYnQsITApLGJ0LFNlKSl8fCFDdC5sZW5ndGgpcmV0'@; put 'dXJuOyFmdW5jdGlvbiAkOSh5LFApe3ZhciBRLEw9QXJyYXkuaXNBcnJheSh5KTtQLmZvckVhY2goZnVuY3Rpb24ocmUpe3ZhciBnZT1zcyhyZS5yZWYpO2lmKEw/KHlbZ2Uucl18fCh5W2dlLnJdPVtdKSxRPXlbZ2Uucl1bZ2UuY10pOlE9eVtyZS5yZWZdLCFRKXtRPXt0OiJ6In0sTD95W2dl'@; put 'LnJdW2dlLmNdPVE6eVtyZS5yZWZdPVE7dmFyIF9lPU9pKHlbIiFyZWYiXXx8IkJEV0dPMTAwMDAwMTpBMSIpO19lLnMucj5nZS5yJiYoX2Uucy5yPWdlLnIpLF9lLmUucjxnZS5yJiYoX2UuZS5yPWdlLnIpLF9lLnMuYz5nZS5jJiYoX2Uucy5jPWdlLmMpLF9lLmUuYzxnZS5jJiYoX2UuZS5j'@; put 'PWdlLmMpO3ZhciB2ZT1PbyhfZSk7dmUhPT15WyIhcmVmIl0mJih5WyIhcmVmIl09dmUpfVEuY3x8KFEuYz1bXSk7dmFyIFNlPXthOnJlLmF1dGhvcix0OnJlLnQscjpyZS5yfTtTZS5yJiYic3RyaW5nIj09dHlwZW9mIFNlLnImJihTZS5SPURtKFNlLnIpKSxyZS5oJiYoU2UuaD1yZS5oKSxR'@; put 'LmMucHVzaChTZSl9KX0oZHQsQ3QpfX0pLGZ1bmN0aW9uIHBSKHksUCxMLFEscmUsZ2UsX2UpeyF5fHwheVsiIXRhYmxlcmVmcyJdfHwhTHx8IUxbIiFpZCJdfHwoeVsiIXRhYmxlcyJdPVtdLHlbIiF0YWJsZXJlZnMiXS5mb3JFYWNoKGZ1bmN0aW9uKHZlKXt2YXIgU2U9TFsiIWlkIl1bdmVd'@; put 'O2lmKFNlJiZTZS5UYXJnZXQpe3ZhciBIZT1zbihTZS5UYXJnZXQsUSk7IWZ1bmN0aW9uICQ0KHksUCxMLFEscmUpe3ZhciBnZT17c3R5bGU6e30saGVhZGVyOjB9LF9lPSExO3kucmVwbGFjZSgkdCxmdW5jdGlvbih2ZSl7dmFyIFNlPWxuKHZlKTtzd2l0Y2goam4oU2VbMF0pKXtjYXNlIjw/'@; put 'eG1sIjpjYXNlIjwvdGFibGU+IjpjYXNlIjwvYXV0b0ZpbHRlcj4iOmNhc2UiPHNvcnRTdGF0ZSI6Y2FzZSI8c29ydFN0YXRlPiI6Y2FzZSI8L3NvcnRTdGF0ZT4iOmNhc2UiPC90YWJsZUNvbHVtbnMiOmNhc2UiPC90YWJsZUNvbHVtbnM+IjpjYXNlIjwvdGFibGVDb2x1bW4+IjpjYXNlIjxj'@; put 'YWxjdWxhdGVkQ29sdW1uRm9ybXVsYT4iOmNhc2UiPGNhbGN1bGF0ZWRDb2x1bW5Gb3JtdWxhIjpjYXNlIjwvY2FsY3VsYXRlZENvbHVtbkZvcm11bGE+IjpjYXNlIjx0b3RhbHNSb3dGb3JtdWxhPiI6Y2FzZSI8dG90YWxzUm93Rm9ybXVsYSI6Y2FzZSI8L3RvdGFsc1Jvd0Zvcm11bGE+Ijpj'@; put 'YXNlIjx4bWxDb2x1bW5Qcj4iOmNhc2UiPHhtbENvbHVtblByIjpjYXNlIjwveG1sQ29sdW1uUHI+IjpjYXNlIjxzb3J0Q29uZGl0aW9uPiI6Y2FzZSI8c29ydENvbmRpdGlvbiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmJy'@; put 'ZWFrO2Nhc2UiPHRhYmxlIjpTZS5yZWYmJihnZS5yZWY9U2UucmVmKSxTZS5uYW1lP2dlLm5hbWU9U2UubmFtZTpTZS5kaXNwbGF5TmFtZSYmKGdlLm5hbWU9U2UuZGlzcGxheU5hbWUpLG51bGwhPVNlLmhlYWRlcnJvd2NvdW50JiYxIT0rU2UuaGVhZGVycm93Y291bnQ/Z2UuaGVhZGVyPStT'@; put 'ZS5oZWFkZXJyb3djb3VudDpudWxsPT1TZS5oZWFkZXJyb3djb3VudCYmKGdlLmhlYWRlcj0xKTticmVhaztjYXNlIjxhdXRvRmlsdGVyIjpjYXNlIjxhdXRvRmlsdGVyPiI6Z2UuZmlsdGVyPSEwO2JyZWFrO2Nhc2UiPHRhYmxlQ29sdW1ucyI6Y2FzZSI8dGFibGVDb2x1bW5zPiI6Z2UuY29s'@; put 'cz1bXTticmVhaztjYXNlIjx0YWJsZVN0eWxlSW5mbyI6U2Uuc2hvd1Jvd1N0cmlwZXMmJihnZS5zdHlsZS5yb3dzdHJpcGU9eXIoU2Uuc2hvd1Jvd1N0cmlwZXMpKSxTZS5zaG93Q29sdW1uU3RyaXBlcyYmKGdlLnN0eWxlLmNvbHN0cmlwZT15cihTZS5zaG93Q29sdW1uU3RyaXBlcykpLFNl'@; put 'LnNob3dGaXJzdENvbHVtbiYmKGdlLnN0eWxlLmNvbGZpcnN0PXlyKFNlLnNob3dGaXJzdENvbHVtbikpLFNlLnNob3dMYXN0Q29sdW1uJiYoZ2Uuc3R5bGUuY29sbGFzdD15cihTZS5zaG93TGFzdENvbHVtbikpLFNlLm5hbWUmJihnZS5zdHlsZS5uYW1lPVNlLm5hbWUucmVwbGFjZSgvXlRh'@; put 'YmxlU3R5bGUvLCIiKSk7YnJlYWs7Y2FzZSI8dGFibGVDb2x1bW4iOmNhc2UiPHRhYmxlQ29sdW1uPiI6Z2UuY29scy5wdXNoKHtpZDorU2UuaWQsbmFtZTpTZS5uYW1lfSk7YnJlYWs7Y2FzZSI8ZmlsdGVyQ29sdW1uPiI6Y2FzZSI8ZmlsdGVyQ29sdW1uIjpjYXNlIjxjdXN0b21GaWx0ZXJz'@; put 'IjpjYXNlIjxjdXN0b21GaWx0ZXJzPiI6Y2FzZSI8ZXh0IjpfZT0hMDticmVhaztjYXNlIjwvZmlsdGVyQ29sdW1uPiI6Y2FzZSI8L2N1c3RvbUZpbHRlcnM+IjpjYXNlIjwvZXh0PiI6X2U9ITE7YnJlYWs7ZGVmYXVsdDppZighX2UmJnJlLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2du'@; put 'aXplZCAiK1NlWzBdKyIgaW4gdGFibGUiKX1yZXR1cm4gdmV9KSxnZS5maWx0ZXJ8fChnZS5maWx0ZXI9ITEpLGdlLnN0eWxlLm5hbWUmJiFnZS5zdHlsZS5uYW1lLm1hdGNoKC9eKExpZ2h0fE1lZGl1bXxEYXJrKVxkKyQvKSYmTC5UYWJsZSYmTC5UYWJsZS5mb3JFYWNoKGZ1bmN0aW9uKHZl'@; put 'KXsodmUubmFtZT09Z2Uuc3R5bGUubmFtZXx8dmUucmF3bmFtZT09Z2Uuc3R5bGUubmFtZSkmJihnZS5zdHlsZS5yYXc9b24odmUpKX0pLFBbIiF0YWJsZXMiXS5wdXNoKGdlKX0oSXQoUCxIZSwhMCkseSxyZSwwLF9lKX19KSxkZWxldGUgeVsiIXRhYmxlcmVmcyJdKX0oZHQseSxnZVtRXSxQ'@; put 'LEdlLDAsU2UpLHR5cGVvZiBwYXJzZV9zaGVldF9waXZvdDwidSImJkY2LnB1c2goW2R0LHksZ2VbUV0sUCx7U2hlZXRzOl9lfSxHZSxTZV0pLGZ1bmN0aW9uIEZNKHksUCxMLFEscmUsZ2UsX2UsdmUpe2lmKHkmJnlbIiFsZWdkcmF3ZWwiXSl7dmFyIFNlPXNuKHlbIiFsZWdkcmF3ZWwiXS5U'@; put 'YXJnZXQsUSksSGU9UXQoTCxTZSwhMCk7SGUmJmZ1bmN0aW9uICREKHksUCxMKXt2YXIgUT0wOyh5Lm1hdGNoKE4zKXx8W10pLmZvckVhY2goZnVuY3Rpb24ocmUpe3ZhciBGdCxrdCxUdCxadCxwbixLbix1bixxbixnZT0iIixfZT0hMCx2ZT0iIixTZT0tMSxIZT17fSxCZT17fSxHZT17fSxu'@; put 'dD0tMSxkdD0tMSxDdD0iIixjdD0iIixidD0iIix6bj0hMSxrbj0hMTtzd2l0Y2gocmUucmVwbGFjZSgkdCxmdW5jdGlvbihabixCcil7dmFyIHNpPWxuKFpuKTtzd2l0Y2goam4oc2lbMF0pKXtjYXNlIjxzaGFwZSI6c2kuZmlsbGNvbG9yJiYoSGUuY29sb3IxPXNpLmZpbGxjb2xvciksc2ku'@; put 'c3Ryb2tlY29sb3ImJihHZS5jb2xvcj1zaS5zdHJva2Vjb2xvcik7YnJlYWs7Y2FzZSI8ZmlsbCI6Y2FzZSI8ZmlsbD4iOiI8djpmaWxsIj09c2lbMF0mJihzaS5jb2xvcjImJihIZS5jb2xvcjI9c2kuY29sb3IyKSxzaS50eXBlJiYoSGUudHlwZT1zaS50eXBlKSk7YnJlYWs7Y2FzZSI8L2Zp'@; put 'bGw+IjpjYXNlIjxsb2NrIjpjYXNlIjxsb2NrLz4iOmJyZWFrO2Nhc2UiPHNoYWRvdyI6c2kuY29sb3ImJihCZS5jb2xvcj1zaS5jb2xvciksc2kub24mJihCZS5vbj1zaS5vbik7YnJlYWs7Y2FzZSI8Q2xpZW50RGF0YSI6c2kuT2JqZWN0VHlwZSYmKGdlPXNpLk9iamVjdFR5cGUpO2JyZWFr'@; put 'O2Nhc2UiPFZpc2libGUiOmNhc2UiPFZpc2libGUvPiI6X2U9ITE7YnJlYWs7Y2FzZSI8QW5jaG9yIjpjYXNlIjxBbmNob3I+IjpjYXNlIjxSb3ciOmNhc2UiPFJvdz4iOmNhc2UiPENvbHVtbiI6Y2FzZSI8Q29sdW1uPiI6Y2FzZSI8Rm1sYU1hY3JvIjpjYXNlIjxGbWxhTWFjcm8+IjpjYXNl'@; put 'IjxGbWxhTGluayI6Y2FzZSI8Rm1sYUxpbms+IjpjYXNlIjxGbWxhUmFuZ2UiOmNhc2UiPEZtbGFSYW5nZT4iOmNhc2UiPFNlbFR5cGUiOmNhc2UiPFNlbFR5cGU+IjpjYXNlIjxWYWwiOmNhc2UiPFZhbD4iOmNhc2UiPE1pbiI6Y2FzZSI8TWluPiI6Y2FzZSI8TWF4IjpjYXNlIjxNYXg+Ijpj'@; put 'YXNlIjxJbmMiOmNhc2UiPEluYz4iOmNhc2UiPFBhZ2UiOmNhc2UiPFBhZ2U+IjpjYXNlIjxDaGVja2VkIjpjYXNlIjxDaGVja2VkPiI6Y2FzZSI8dGV4dGJveCI6Y2FzZSI8dGV4dGJveD4iOlNlPUJyK1puLmxlbmd0aDticmVhaztjYXNlIjwvQW5jaG9yPiI6dmU9cmUuc2xpY2UoU2UsQnIp'@; put 'LnRyaW0oKTticmVhaztjYXNlIjwvUm93PiI6bnQ9K3JlLnNsaWNlKFNlLEJyKS50cmltKCk7YnJlYWs7Y2FzZSI8L0NvbHVtbj4iOmR0PStyZS5zbGljZShTZSxCcikudHJpbSgpO2JyZWFrO2Nhc2UiPC9GbWxhTWFjcm8+IjpDdD1yZS5zbGljZShTZSxCcikudHJpbSgpO2JyZWFrO2Nhc2Ui'@; put 'PC9GbWxhTGluaz4iOmN0PXJlLnNsaWNlKFNlLEJyKS50cmltKCk7YnJlYWs7Y2FzZSI8L0ZtbGFSYW5nZT4iOnVuPXJlLnNsaWNlKFNlLEJyKS50cmltKCk7YnJlYWs7Y2FzZSI8L1NlbFR5cGU+Ijpxbj1yZS5zbGljZShTZSxCcikudHJpbSgpO2JyZWFrO2Nhc2UiPC9WYWw+IjpGdD0rcmUu'@; put 'c2xpY2UoU2UsQnIpLnRyaW0oKTticmVhaztjYXNlIjwvTWluPiI6a3Q9K3JlLnNsaWNlKFNlLEJyKS50cmltKCk7YnJlYWs7Y2FzZSI8L01heD4iOlR0PStyZS5zbGljZShTZSxCcikudHJpbSgpO2JyZWFrO2Nhc2UiPC9JbmM+IjpadD0rcmUuc2xpY2UoU2UsQnIpLnRyaW0oKTticmVhaztj'@; put 'YXNlIjwvUGFnZT4iOnBuPStyZS5zbGljZShTZSxCcikudHJpbSgpO2JyZWFrO2Nhc2UiPC9DaGVja2VkPiI6S249K3JlLnNsaWNlKFNlLEJyKS50cmltKCk7YnJlYWs7Y2FzZSI8L3RleHRib3g+IjpidD1yZS5zbGljZShTZSxCcikudHJpbSgpO2JyZWFrO2Nhc2UiPE1vdmVXaXRoQ2VsbHMv'@; put 'PiI6Y2FzZSI8TW92ZVdpdGhDZWxscz4iOnpuPSEwO2JyZWFrO2Nhc2UiPFNpemVXaXRoQ2VsbHMvPiI6Y2FzZSI8U2l6ZVdpdGhDZWxscz4iOmtuPSEwfXJldHVybiIifSksZ2Upe2Nhc2UiTm90ZSI6dmFyIGVyPXFvLnNoZWV0X2dldF9jZWxsKFAsbnQ+PTAmJmR0Pj0wP2RpKHtyOm50LGM6'@; put 'ZHR9KTpMW1FdLnJlZik7ZXIuYyYmKGVyLmMuaGlkZGVuPV9lLHZlJiYoZXIuYy5yYXdhbmNob3I9dmUsWG0odmUsZXIuYyksRUMoZXIuY1siIXBvcyJdLDIqISF6bishIWtuLFApKSxIZS5jb2xvcjEmJihlci5jLmZpbGw9SGUpLEJlLmNvbG9yJiYoZXIuYy5zaGFkb3c9QmUpLEdlLmNvbG9y'@; put 'JiYoZXIuYy5zdHJva2U9R2UpKSwrK1E7YnJlYWs7Y2FzZSJCdXR0b24iOmNhc2UiR0JveCI6Y2FzZSJEcm9wIjpjYXNlIkxhYmVsIjpjYXNlIkNoZWNrYm94IjpjYXNlIlNjcm9sbCI6Y2FzZSJMaXN0IjpjYXNlIlJhZGlvIjpjYXNlIlNwaW4iOmNhc2UiRWRpdCI6UFsiIWNvbnRyb2xzIl18'@; put 'fChQWyIhY29udHJvbHMiXT1bXSk7dmFyIHRyPXsiIXR5cGUiOmdlfTt2ZSYmWG0odmUsdHIpLEN0JiYodHIubWFjcm89Q3QucmVwbGFjZSgiWzBdISIsIiIpKSxjdCYmKHRyLmxpbms9Y3QpLCJTY3JvbGwiPT1nZXx8IlNwaW4iPT1nZT8obnVsbD09RnQmJihGdD0wKSxudWxsPT1rdCYmKGt0'@; put 'PTApLG51bGw9PVR0JiYoVHQ9M2U0KSxudWxsPT1adCYmKFp0PTEpLCJTY3JvbGwiPT1nZSYmbnVsbD09cG4mJihwbj0xMCkpOiJSYWRpbyI9PWdlfHwiQ2hlY2tib3giPT1nZT8obnVsbD09S24mJihLbj0wKSxGdD1Lbik6KCJMaXN0Ij09Z2V8fCJEcm9wIj09Z2UpJiYobnVsbCE9dW4mJih0'@; put 'ci5yZWY9dW4pLG51bGw9PXFuJiYocW49IlNpbmdsZSIpLCJMaXN0Ij09Z2UmJih0ci5zZWw9cW4pKSxudWxsIT1GdCYmKHRyLnZhbD1GdCksbnVsbCE9a3QmJih0ci5taW49a3QpLG51bGwhPVR0JiYodHIubWF4PVR0KSxudWxsIT1adCYmKHRyLnN0ZXA9WnQpLG51bGwhPXBuJiYodHIucGFn'@; put 'ZT1wbiksYnQmJih0ci50PWJ0LnJlcGxhY2UoL1xzKjxbXHNcU10qPz5ccyovZywiIikpLFBbIiFjb250cm9scyJdLnB1c2godHIpfX0pfShQaShIZSkseSx2ZXx8W10pLHlbIiFMRFAiXT1TZSx5WyIhY3RybGlkIl0mJnlbIiFjdHJsaWQiXS5mb3JFYWNoKGZ1bmN0aW9uKEJlKXtpZihCZS5y'@; put 'ZWwmJkJlLnJlbC5UYXJnZXQpe3ZhciBHZT1zbihCZS5yZWwuVGFyZ2V0LFEpO0JlLnBhdGg9R2UsZGVsZXRlIEJlLnJlbH19KX19KGR0LDAseSxQLDAsMCwwLEN0KSxkdH1jYXRjaChjdCl7aWYoU2UuV1RGKXRocm93IGN0fX1mdW5jdGlvbiBsYyh5KXtyZXR1cm4iLyI9PXkuY2hhckF0KDAp'@; put 'P3kuc2xpY2UoMSk6eX12YXIgbVI9ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIEhNKHksUCl7aWYoRjY9W10sUDYoUD1QfHx7fSksbW4oeSwiTUVUQS1JTkYvbWFuaWZlc3QueG1sIil8fG1uKHksIm9iamVjdGRhdGEueG1sIikpcmV0dXJuIGZ1bmN0aW9uIFRNKHksUCl7UD1QfHx7fSxtbih5LCJN'@; put 'RVRBLUlORi9tYW5pZmVzdC54bWwiKSYmZnVuY3Rpb24gVmEoeSxQKXtmb3IodmFyIFEscmUsTD1Rdih5KTtRPVZyLmV4ZWMoTCk7KXN3aXRjaChRWzNdKXtjYXNlIm1hbmlmZXN0IjpicmVhaztjYXNlImZpbGUtZW50cnkiOmlmKCIvIj09KHJlPWxuKFFbMF0sITEpKS5wYXRoJiZyZS50eXBl'@; put 'IT09VHUpdGhyb3cgbmV3IEVycm9yKCJUaGlzIE9wZW5Eb2N1bWVudCBpcyBub3QgYSBzcHJlYWRzaGVldCIpO2JyZWFrO2Nhc2UiZW5jcnlwdGlvbi1kYXRhIjpjYXNlImFsZ29yaXRobSI6Y2FzZSJzdGFydC1rZXktZ2VuZXJhdGlvbiI6Y2FzZSJrZXktZGVyaXZhdGlvbiI6dGhyb3cgbmV3'@; put 'IEVycm9yKCJVbnN1cHBvcnRlZCBPRFMgRW5jcnlwdGlvbiIpO2RlZmF1bHQ6aWYoUCYmUC5XVEYpdGhyb3cgUX19KEl0KHksIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpLFApO3ZhciBMPVF0KHksImNvbnRlbnQueG1sIik7aWYoIUwpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGNvbnRlbnQu'@; put 'eG1sIGluIE9EUyAvIFVPRiBmaWxlIik7dmFyIFE9UTAoUGkoTCksUCk7cmV0dXJuIG1uKHksIm1ldGEueG1sIikmJihRLlByb3BzPU8yKEl0KHksIm1ldGEueG1sIikpKSxRfSh5LFApO2lmKG1uKHksIkluZGV4L0RvY3VtZW50Lml3YSIpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQg'@; put 'TlVNQkVSUyBmaWxlIik7dmFyIGdlLF9lLEw9ZnVuY3Rpb24gcHQoeSl7Zm9yKHZhciBQPXkuRnVsbFBhdGhzfHxsdCh5LmZpbGVzKSxMPVtdLFE9MDtRPFAubGVuZ3RoOysrUSkiLyIhPVBbUV0uc2xpY2UoLTEpJiZMLnB1c2goUFtRXSk7cmV0dXJuIEwuc29ydCgpfSh5KSxRPWZ1bmN0aW9u'@; put 'IGNtKHkpe3ZhciBQPXt3b3JrYm9va3M6W10sc2hlZXRzOltdLGNoYXJ0czpbXSxkaWFsb2dzOltdLG1hY3JvczpbXSxyZWxzOltdLHN0cnM6W10sY29tbWVudHM6W10sbGlua3M6W10sY29yZXByb3BzOltdLGV4dHByb3BzOltdLGN1c3Rwcm9wczpbXSx0aGVtZXM6W10sc3R5bGVzOltdLGNh'@; put 'bGNjaGFpbnM6W10sdmJhOltdLGRyYXdpbmdzOltdLHBpdm90czpbXSxwaXZvdGNhY2hlczpbXSxwaXZvdHJlY29yZHM6W10sZGF0YW1vZGVsczpbXSxjaGFydG9ianM6W10sY2hhcnRzdHlsZXM6W10sY2hhcnRjb2xvcnM6W10sY2hhcnRleHM6W10sdGFibGVzOltdLGNvbm5zOltdLGN0cmxw'@; put 'cm9wczpbXSxjdXN0b214bWxwcm9wczpbXSxUT0RPOltdLHhtbG5zOiIifTtpZigheXx8IXkubWF0Y2gpcmV0dXJuIFA7dmFyIEw9e307aWYoKHkubWF0Y2goJHQpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihRKXt2YXIgcmU9bG4oUSk7c3dpdGNoKHJlWzBdLnJlcGxhY2UoRm4sIjwiKSl7Y2Fz'@; put 'ZSI8P3htbCI6YnJlYWs7Y2FzZSI8VHlwZXMiOlAueG1sbnM9cmVbInhtbG5zIisocmVbMF0ubWF0Y2goLzwoXHcrKTovKXx8WyIiLCIiXSlbMV1dO2JyZWFrO2Nhc2UiPERlZmF1bHQiOkxbcmUuRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCldPXJlLkNvbnRlbnRUeXBlO2JyZWFrO2Nhc2UiPE92'@; put 'ZXJyaWRlIjp2b2lkIDAhPT1QW09sW3JlLkNvbnRlbnRUeXBlXV0mJlBbT2xbcmUuQ29udGVudFR5cGVdXS5wdXNoKHJlLlBhcnROYW1lKX19KSxQLnhtbG5zIT09aXMuQ1QpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIitQLnhtbG5zKTtyZXR1cm4gUC5jYWxjY2hhaW49'@; put 'UC5jYWxjY2hhaW5zLmxlbmd0aD4wP1AuY2FsY2NoYWluc1swXToiIixQLnNzdD1QLnN0cnMubGVuZ3RoPjA/UC5zdHJzWzBdOiIiLFAuc3R5bGU9UC5zdHlsZXMubGVuZ3RoPjA/UC5zdHlsZXNbMF06IiIsUC5jb25uPVAuY29ubnMubGVuZ3RoPjA/UC5jb25uc1swXToiIixQLmRlZmF1bHRz'@; put 'PUwsZGVsZXRlIFAuY2FsY2NoYWlucyxQfShRdCh5LCJbQ29udGVudF9UeXBlc10ueG1sIikpLHJlPSExO2lmKDA9PT1RLndvcmtib29rcy5sZW5ndGgmJkl0KHksX2U9InhsL3dvcmtib29rLnhtbCIsITApJiZRLndvcmtib29rcy5wdXNoKF9lKSwwPT09US53b3JrYm9va3MubGVuZ3RoKXtp'@; put 'ZighSXQoeSxfZT0ieGwvd29ya2Jvb2suYmluIiwhMCkpdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZmluZCB3b3JrYm9vayIpO1Eud29ya2Jvb2tzLnB1c2goX2UpLHJlPSEwfSJiaW4iPT1RLndvcmtib29rc1swXS5zbGljZSgtMykmJihyZT0hMCk7dmFyIHZlPXt9LFNlPXt9O2lmKCFQ'@; put 'LmJvb2tTaGVldHMmJiFQLmJvb2tQcm9wcyl7aWYoZjY9W10sUS5zc3QpdHJ5e2Y2PWZ1bmN0aW9uIEw2KHksUCxMKXtyZXR1cm4iLmJpbiI9PT1QLnNsaWNlKC00KT9mdW5jdGlvbiBjRCh5LFApe3ZhciBMPVtdLFE9ITE7cmV0dXJuIEhvKHksZnVuY3Rpb24oZ2UsX2UsdmUpe3N3aXRjaCh2'@; put 'ZSl7Y2FzZSAxNTk6TC5Db3VudD1nZVswXSxMLlVuaXF1ZT1nZVsxXTticmVhaztjYXNlIDE5OkwucHVzaChnZSk7YnJlYWs7Y2FzZSAxNjA6cmV0dXJuITA7Y2FzZSAzNTpRPSEwO2JyZWFrO2Nhc2UgMzY6UT0hMTticmVhaztkZWZhdWx0OmlmKF9lLmluZGV4T2YoIkJlZ2luIik+MHx8X2Uu'@; put 'aW5kZXhPZigiRW5kIiksIVF8fFAuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIit2ZSsiICIrX2UpfX0pLEx9KHksTCk6ZnVuY3Rpb24gckMoeSxQKXt2YXIgTD1bXSxRPSIiO2lmKCF5KXJldHVybiBMO3ZhciByZT15Lm1hdGNoKGVDKTtpZihyZSl7UT1yZVsyXS5y'@; put 'ZXBsYWNlKHRDLCIiKS5zcGxpdChuQyk7Zm9yKHZhciBnZT0wO2dlIT1RLmxlbmd0aDsrK2dlKXt2YXIgX2U9RDkoUVtnZV0udHJpbSgpLFApO251bGwhPV9lJiYoTFtMLmxlbmd0aF09X2UpfXJlPWxuKHJlWzFdKSxMLkNvdW50PXJlLmNvdW50LEwuVW5pcXVlPXJlLnVuaXF1ZUNvdW50fXJl'@; put 'dHVybiBMfSh5LEwpfShJdCh5LGxjKFEuc3N0KSksUS5zc3QsUCl9Y2F0Y2gocnIpe2lmKFAuV1RGKXRocm93IHJyfVAuY2VsbFN0eWxlcyYmUS50aGVtZXMubGVuZ3RoJiYodmU9ZnVuY3Rpb24gSTYoeSxQLEwpe3JldHVybiBHbSh5LEwpfShRdCh5LFEudGhlbWVzWzBdLnJlcGxhY2UoL15c'@; put 'Ly8sIiIpLCEwKXx8IiIsMCxQKSksUS5zdHlsZSYmKFNlPWZ1bmN0aW9uICR2KHksUCxMLFEpe3JldHVybiIuYmluIj09PVAuc2xpY2UoLTQpP2Z1bmN0aW9uIEI5KHksUCxMKXt2YXIgUT17TnVtYmVyRm10OltdfTtmb3IodmFyIHJlIGluIHcuX3RhYmxlKVEuTnVtYmVyRm10W3JlXT13Ll90'@; put 'YWJsZVtyZV07US5DZWxsWGY9W10sUS5Gb250cz1bXSxRLkZpbGxzPVtdLFEuQm9yZGVycz1bXTt2YXIgZ2U9W10sX2U9ITE7cmV0dXJuIEhvKHksZnVuY3Rpb24oU2UsSGUsQmUpe3N3aXRjaChCZSl7Y2FzZSA0NDpRLk51bWJlckZtdFtTZVswXV09U2VbMV0sdy5sb2FkKFNlWzFdLFNlWzBd'@; put 'KTticmVhaztjYXNlIDQzOno0KFNlLmNvbG9yLFApLFEuRm9udHMucHVzaChTZSk7YnJlYWs7Y2FzZSAxMDI1OmNhc2UgNDg6Y2FzZSA1MDc6Y2FzZSA1NzI6Y2FzZSA0NzU6Y2FzZSAxMTcxOmNhc2UgMjEwMjpjYXNlIDExMzA6Y2FzZSA1MTI6Y2FzZSAyMDk1OmNhc2UgMzA3MjpicmVhaztj'@; put 'YXNlIDQ1OlNlLmZnQ29sb3ImJno0KFNlLmZnQ29sb3IsUCksU2UuYmdDb2xvciYmejQoU2UuYmdDb2xvcixQKSxRLkZpbGxzLnB1c2goU2UpO2JyZWFrO2Nhc2UgNDY6WyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJkaWFnIl0uZm9yRWFjaChmdW5jdGlvbihHZSl7U2VbR2VdJiZT'@; put 'ZVtHZV0uY29sb3ImJno0KFNlW0dlXS5jb2xvcixQKX0pLFEuQm9yZGVycy5wdXNoKFNlKTticmVhaztjYXNlIDQ3OiJCcnRCZWdpbkNlbGxYRnMiPT1nZVtnZS5sZW5ndGgtMV0mJlEuQ2VsbFhmLnB1c2goU2UpO2JyZWFrO2Nhc2UgMzU6X2U9ITA7YnJlYWs7Y2FzZSAzNjpfZT0hMTticmVh'@; put 'aztjYXNlIDM3OmdlLnB1c2goSGUpLF9lPSEwO2JyZWFrO2Nhc2UgMzg6Z2UucG9wKCksX2U9ITE7YnJlYWs7ZGVmYXVsdDppZigoSGV8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApZ2UucHVzaChIZSk7ZWxzZSBpZigoSGV8fCIiKS5pbmRleE9mKCJFbmQiKT4wKWdlLnBvcCgpO2Vsc2UgaWYo'@; put 'IV9lfHxMLldURiYmIkJydEFDQmVnaW4iIT1nZVtnZS5sZW5ndGgtMV0pdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK0JlKyIgIitIZSl9fSksKFEuRm9udHN8fFtdKVswXSYmWjEoUS5Gb250c1swXSksUX0oeSxMLFEpOlptKHksTCxRKX0oSXQoeSxsYyhRLnN0eWxlKSks'@; put 'US5zdHlsZSx2ZSxQKSl9dmFyIEhlPVEubGlua3MubWFwKGZ1bmN0aW9uKHJyKXt0cnl7dmFyIFNuPURvKFF0KHksQmkobGMocnIpKSkscnIpO3JldHVybiBmdW5jdGlvbiBVTCh5LFAsTCxRKXtyZXR1cm4iLmJpbiI9PT1MLnNsaWNlKC00KT9mdW5jdGlvbiBHNCh5LFAsTCxRKXtpZigheSly'@; put 'ZXR1cm4geTt2YXIgcmU9UXx8e30sZ2U9ITE7SG8oeSxmdW5jdGlvbihTZSxIZSxCZSl7c3dpdGNoKEJlKXtjYXNlIDM1OTpjYXNlIDM2MzpjYXNlIDM2NDpjYXNlIDM2NjpjYXNlIDM2NzpjYXNlIDM2ODpjYXNlIDM2OTpjYXNlIDM3MDpjYXNlIDM3MTpjYXNlIDQ3MjpjYXNlIDU3NzpjYXNl'@; put 'IDU3ODpjYXNlIDU3OTpjYXNlIDU4MDpjYXNlIDU4MTpjYXNlIDU4MjpjYXNlIDU4MzpjYXNlIDU4NDpjYXNlIDU4NTpjYXNlIDU4NjpjYXNlIDU4NzpicmVhaztjYXNlIDM1OmdlPSEwO2JyZWFrO2Nhc2UgMzY6Z2U9ITE7YnJlYWs7ZGVmYXVsdDppZighKChIZXx8IiIpLmluZGV4T2YoIkJl'@; put 'Z2luIik+MCkmJiEoKEhlfHwiIikuaW5kZXhPZigiRW5kIik+MCkmJighZ2V8fHJlLldURikpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK0JlLnRvU3RyaW5nKDE2KSsiICIrSGUpfX0scmUpfSh5LDAsMCxRKTpmdW5jdGlvbiBZOSh5LFAsTCxRKXt2YXIgcmU9UXx8e30s'@; put 'Z2U9e1NoZWV0TmFtZXM6W10sU2hlZXRzOnt9fSx2ZT0hMSxTZT17fSxIZT0tMSxCZT0tMSxHZT17czp7cjowLGM6MH0sZTp7cjotMSxjOi0xfX0sbnQ9e30sZHQ9MDtyZXR1cm4oeXx8IiIpLnJlcGxhY2UoJHQsZnVuY3Rpb24oQ3QsY3Qpe3ZhciBidD1sbihDdCk7c3dpdGNoKGpuKGJ0WzBd'@; put 'KSl7Y2FzZSI8P3htbCI6Y2FzZSI8ZXh0ZXJuYWxMaW5rIjpjYXNlIjwvZXh0ZXJuYWxMaW5rPiI6Y2FzZSI8L2V4dGVybmFsQm9vaz4iOmNhc2UiPHNoZWV0TmFtZXMiOmNhc2UiPHNoZWV0TmFtZXM+IjpjYXNlIjwvc2hlZXROYW1lcz4iOmNhc2UiPHNoZWV0RGF0YVNldD4iOmNhc2UiPHNo'@; put 'ZWV0RGF0YVNldC8+IjpjYXNlIjwvc2hlZXREYXRhU2V0PiI6Y2FzZSI8L3Jvdz4iOmJyZWFrO2Nhc2UiPGV4dGVybmFsQm9vayI6Y2FzZSI8ZXh0ZXJuYWxCb29rPiI6Z2UuVGFyZ2V0PVBbIiFpZCJdW2J0LmlkXS5UYXJnZXQsZ2UuTWlzc2luZz1QWyIhaWQiXVtidC5pZF0uVHlwZT09SGku'@; put 'WE1JU1M7YnJlYWs7Y2FzZSI8c2hlZXROYW1lIjpnZS5TaGVldE5hbWVzLnB1c2goeHIoUGkoYnQudmFsKSkpO2JyZWFrO2Nhc2UiPHNoZWV0RGF0YSI6U2U9e30sZ2UuU2hlZXRzW2dlLlNoZWV0TmFtZXNbYnQuc2hlZXRJZF1dPXlyKGJ0LnJlZnJlc2hFcnJvcnx8IjAiKT9udWxsOlNlO2Jy'@; put 'ZWFrO2Nhc2UiPC9zaGVldERhdGE+IjpHZS5lLmM+PTAmJihTZVsiIXJlZiJdPU9vKEdlKSk7YnJlYWs7Y2FzZSI8cm93IjpjYXNlIjxyb3c+IjpidC5yP0hlPXBhcnNlSW50KGJ0LnIsMTApLTE6SGUrKyxCZT0tMTticmVhaztjYXNlIjxjZWxsIjpjYXNlIjxjZWxsPiI6YnQucj9CZT1zcyhi'@; put 'dC5yKS5jOisrQmUsbnQudD1idC50fHwibiIsInN0ciI9PW50LnQmJihudC50PSJzIik7YnJlYWs7Y2FzZSI8L2NlbGw+IjpHZS5lLnI8SGUmJihHZS5lLnI9SGUpLEdlLmUuYzxCZSYmKEdlLmUuYz1CZSksU2VbZGkoe3I6SGUsYzpCZX0pXT1udCxudD17fTticmVhaztjYXNlIjx2IjpjYXNl'@; put 'Ijx2PiI6ZHQ9Q3QubGVuZ3RoK2N0O2JyZWFrO2Nhc2UiPC92PiI6dmFyIEZ0PXhyKHkuc2xpY2UoZHQsY3QpKTtudC52PSJuIj09bnQudD9wYXJzZUZsb2F0KEZ0KTpGdDticmVhaztjYXNlIjx2Lz4iOm50LnY9IiI7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWVzPiI6dmU9ITA7YnJlYWs7Y2Fz'@; put 'ZSI8L2RlZmluZWROYW1lcz4iOnZlPSExO2JyZWFrO2RlZmF1bHQ6aWYoIXZlJiZyZS5XVEYpdGhyb3cidW5yZWNvZ25pemVkICIrYnRbMF0rIiBpbiBleHRlcm5hbCBsaW5rIn19KSxnZX0oeSxQLDAsUSl9KEl0KHksbGMocnIpKSxTbixycixQKX1jYXRjaHt9fSksQmU9ZnVuY3Rpb24gbTUo'@; put 'eSxQLEwpe3JldHVybiIuYmluIj09PVAuc2xpY2UoLTQpP2Z1bmN0aW9uIEd2KHksUCl7dmFyIEw9e0FwcFZlcnNpb246e30sV0JQcm9wczp7fSxXQlZpZXc6W10sU2hlZXRzOltdLENhbGNQcjp7fSx4bWxuczoiIn0sUT1bXSxyZT0hMTtQfHwoUD17fSksUC5iaWZmPTEyO3ZhciBnZT1bXSxf'@; put 'ZT1bW11dO3JldHVybiBfZS5TaGVldE5hbWVzPVtdLF9lLlhUST1bXSxtZlsxNl09e246IkJydEZSVEFyY2hJRCQiLGY6V3Z9LEhvKHksZnVuY3Rpb24oU2UsSGUsQmUpe3N3aXRjaChCZSl7Y2FzZSAxNTY6X2UuU2hlZXROYW1lcy5wdXNoKFNlLm5hbWUpLEwuU2hlZXRzLnB1c2goU2UpO2Jy'@; put 'ZWFrO2Nhc2UgMTUzOkwuV0JQcm9wcz1TZTticmVhaztjYXNlIDM5Om51bGwhPVNlLlNoZWV0JiYoUC5TSUQ9U2UuU2hlZXQpLFNlLlJlZj14bChTZS5QdGcsbnVsbCxudWxsLF9lLFApLGRlbGV0ZSBQLlNJRCxkZWxldGUgU2UuUHRnLGdlLnB1c2goU2UpO2JyZWFrO2Nhc2UgMTAzNjpjYXNl'@; put 'IDM2MTpjYXNlIDIwNzE6Y2FzZSAxNTg6Y2FzZSAxNDM6Y2FzZSA2NjQ6Y2FzZSAzNTM6Y2FzZSAzMDcyOmNhc2UgMzA3MzpjYXNlIDUzNDpjYXNlIDY3NzpjYXNlIDE1NzpjYXNlIDYxMDpjYXNlIDIwNTA6Y2FzZSAxNTU6Y2FzZSA1NDg6Y2FzZSA2NzY6Y2FzZSAxMjg6Y2FzZSA2NjU6Y2Fz'@; put 'ZSAyMTI4OmNhc2UgMjEyNTpjYXNlIDU0OTpjYXNlIDIwNTM6Y2FzZSA1OTY6Y2FzZSAyMDc2OmNhc2UgMjA3NTpjYXNlIDIwODI6Y2FzZSAzOTc6Y2FzZSAxNTQ6Y2FzZSAxMTE3OmNhc2UgNTUzOmNhc2UgMjA5MTpjYXNlIDE2OmJyZWFrO2Nhc2UgMzU3OmNhc2UgMzU4OmNhc2UgMzU1OmNh'@; put 'c2UgNjY3Ol9lWzBdLmxlbmd0aD9fZS5wdXNoKFtCZSxTZV0pOl9lWzBdPVtCZSxTZV0sX2VbX2UubGVuZ3RoLTFdLlhUST1bXTticmVhaztjYXNlIDM2MjowPT09X2UubGVuZ3RoJiYoX2VbMF09W10sX2VbMF0uWFRJPVtdKSxfZVtfZS5sZW5ndGgtMV0uWFRJPV9lW19lLmxlbmd0aC0xXS5Y'@; put 'VEkuY29uY2F0KFNlKSxfZS5YVEk9X2UuWFRJLmNvbmNhdChTZSk7YnJlYWs7Y2FzZSAzNTpjYXNlIDM3OlEucHVzaChIZSkscmU9ITA7YnJlYWs7Y2FzZSAzNjpjYXNlIDM4OlEucG9wKCkscmU9ITE7YnJlYWs7ZGVmYXVsdDppZighKChIZXx8IiIpLmluZGV4T2YoIkJlZ2luIik+MCkmJiEo'@; put 'KEhlfHwiIikuaW5kZXhPZigiRW5kIik+MCkmJighcmV8fFAuV1RGJiYiQnJ0QUNCZWdpbiIhPVFbUS5sZW5ndGgtMV0mJiJCcnRGUlRCZWdpbiIhPVFbUS5sZW5ndGgtMV0pKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIitCZSsiICIrSGUpfX0sUCksVXYoTCksTC5OYW1l'@; put 'cz1nZSxMLnN1cGJvb2tzPV9lLEx9KHksTCk6ZnVuY3Rpb24gYVkoeSxQKXtpZigheSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGZpbGUiKTt2YXIgTD17QXBwVmVyc2lvbjp7fSxXQlByb3BzOnt9LFdCVmlldzpbXSxTaGVldHM6W10sQ2FsY1ByOnt9LE5hbWVzOltdLEV4dGVy'@; put 'bjpbXSx4bWxuczoiIn0sUT0hMSxyZT0ieG1sbnMiLGdlPXt9LF9lPTA7aWYoeS5yZXBsYWNlKCR0LGZ1bmN0aW9uKFNlLEhlKXt2YXIgQmU9bG4oU2UpO3N3aXRjaChqbihCZVswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPC93b3JrYm9vaz4iOmNhc2UiPGZpbGVWZXJzaW9uLz4iOmNhc2UiPC9m'@; put 'aWxlVmVyc2lvbj4iOmNhc2UiPGZpbGVTaGFyaW5nLz4iOmNhc2UiPC93b3JrYm9va1ByPiI6Y2FzZSI8d29ya2Jvb2tQcm90ZWN0aW9uLz4iOmNhc2UiPGJvb2tWaWV3cyI6Y2FzZSI8Ym9va1ZpZXdzPiI6Y2FzZSI8L2Jvb2tWaWV3cz4iOmNhc2UiPC93b3JrYm9va1ZpZXc+IjpjYXNlIjxz'@; put 'aGVldHMiOmNhc2UiPHNoZWV0cz4iOmNhc2UiPC9zaGVldHM+IjpjYXNlIjwvc2hlZXQ+IjpjYXNlIjxmdW5jdGlvbkdyb3VwcyI6Y2FzZSI8ZnVuY3Rpb25Hcm91cHMvPiI6Y2FzZSI8ZnVuY3Rpb25Hcm91cCI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzIjpjYXNlIjwvZXh0ZXJuYWxSZWZl'@; put 'cmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzLz4iOmNhc2UiPGRlZmluZWROYW1lLz4iOmNhc2UiPC9jYWxjUHI+IjpjYXNlIjxvbGVTaXplIjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXdzPiI6Y2FzZSI8L2N1c3RvbVdvcmtib29rVmlld3M+'@; put 'IjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXdzIjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXciOmNhc2UiPC9jdXN0b21Xb3JrYm9va1ZpZXc+IjpjYXNlIjxwaXZvdENhY2hlcz4iOmNhc2UiPC9waXZvdENhY2hlcz4iOmNhc2UiPHBpdm90Q2FjaGVzIjpjYXNlIjxwaXZvdENhY2hlIjpjYXNl'@; put 'IjxzbWFydFRhZ1ByIjpjYXNlIjxzbWFydFRhZ1ByLz4iOmNhc2UiPHNtYXJ0VGFnVHlwZXMiOmNhc2UiPHNtYXJ0VGFnVHlwZXM+IjpjYXNlIjwvc21hcnRUYWdUeXBlcz4iOmNhc2UiPHNtYXJ0VGFnVHlwZSI6Y2FzZSI8d2ViUHVibGlzaGluZyI6Y2FzZSI8d2ViUHVibGlzaGluZy8+Ijpj'@; put 'YXNlIjxmaWxlUmVjb3ZlcnlQciI6Y2FzZSI8ZmlsZVJlY292ZXJ5UHIvPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdHM+IjpjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0cyI6Y2FzZSI8L3dlYlB1Ymxpc2hPYmplY3RzPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdCI6Y2FzZSI8ZXh0THN0IjpjYXNl'@; put 'IjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmNhc2UiPEFyY2hJRCI6Y2FzZSI8cmV2aXNpb25QdHIiOmJyZWFrO2Nhc2UiPHdvcmtib29rIjpTZS5tYXRjaChzWSkmJihyZT0ieG1sbnMiK1NlLm1hdGNoKC88KFx3Kyk6LylbMV0pLEwueG1sbnM9QmVbcmVdO2Jy'@; put 'ZWFrO2Nhc2UiPGZpbGVWZXJzaW9uIjpkZWxldGUgQmVbMF0sTC5BcHBWZXJzaW9uPUJlO2JyZWFrO2Nhc2UiPGZpbGVTaGFyaW5nIjpMLk1vZGlmeT17dXNlcjpCZS51c2VyTmFtZSx3YXJuOnlyKEJlLnJlYWRPbmx5UmVjb21tZW5kZWR8fCJmYWxzZSIpfSwoQmUuYWxnb3JpdGhtTmFtZXx8'@; put 'QmUuaGFzaFZhbHVlfHxCZS5zYWx0VmFsdWV8fEJlLnNwaW5Db3VudCkmJihMLk1vZGlmeS5lbmNyeXB0aW9uPXthbGdvOkJlLmFsZ29yaXRobU5hbWUsaGFzaDpCZS5oYXNoVmFsdWUsc2FsdDpCZS5zYWx0VmFsdWUsc3BpbjorQmUuc3BpbkNvdW50fHwxZTV9KTticmVhaztjYXNlIjx3b3Jr'@; put 'Ym9va1ByIjpjYXNlIjx3b3JrYm9va1ByLz4iOksyLmZvckVhY2goZnVuY3Rpb24obnQpe2lmKG51bGwhPUJlW250WzBdXSlzd2l0Y2gobnRbMl0pe2Nhc2UiYm9vbCI6TC5XQlByb3BzW250WzBdXT15cihCZVtudFswXV0pO2JyZWFrO2Nhc2UiaW50IjpMLldCUHJvcHNbbnRbMF1dPXBhcnNl'@; put 'SW50KEJlW250WzBdXSwxMCk7YnJlYWs7ZGVmYXVsdDpMLldCUHJvcHNbbnRbMF1dPUJlW250WzBdXX19KSxCZS5jb2RlTmFtZSYmKEwuV0JQcm9wcy5Db2RlTmFtZT1QaShCZS5jb2RlTmFtZSkpO2JyZWFrO2Nhc2UiPHdvcmtib29rUHJvdGVjdGlvbiI6dmFyIEdlPUwuUHJvdGVjdGlvbnx8'@; put 'e307R2UubG9ja1N0cnVjdHVyZT15cihCZS5sb2NrU3RydWN0dXJlfHwiZmFsc2UiKSxHZS5sb2NrV2luZG93cz15cihCZS5sb2NrV2luZG93c3x8ImZhbHNlIiksQmUud29ya2Jvb2tBbGdvcml0aG1OYW1lJiYoR2UuZW5jcnlwdGlvbj17YWxnbzpCZS53b3JrYm9va0FsZ29yaXRobU5hbWUs'@; put 'aGFzaDpCZS53b3JrYm9va0hhc2hWYWx1ZSxzYWx0OkJlLndvcmtib29rU2FsdFZhbHVlLHNwaW46K0JlLndvcmtib29rU3BpbkNvdW50fHwxZTV9KSxMLlByb3RlY3Rpb249R2U7YnJlYWs7Y2FzZSI8d29ya2Jvb2tWaWV3IjpjYXNlIjx3b3JrYm9va1ZpZXcvPiI6ZGVsZXRlIEJlWzBdLEwu'@; put 'V0JWaWV3LnB1c2goQmUpO2JyZWFrO2Nhc2UiPHNoZWV0Ijpzd2l0Y2goQmUuc3RhdGUpe2Nhc2UiaGlkZGVuIjpCZS5IaWRkZW49MTticmVhaztjYXNlInZlcnlIaWRkZW4iOkJlLkhpZGRlbj0yO2JyZWFrO2RlZmF1bHQ6QmUuSGlkZGVuPTB9ZGVsZXRlIEJlLnN0YXRlLEJlLm5hbWU9eHIo'@; put 'UGkoQmUubmFtZSkpLGRlbGV0ZSBCZVswXSxMLlNoZWV0cy5wdXNoKEJlKTticmVhaztjYXNlIjxleHRlcm5hbFJlZmVyZW5jZSI6TC5FeHRlcm4ucHVzaChCZS5pZCk7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWVzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzIjpjYXNlIjxleHQiOmNhc2UiPEFsdGVy'@; put 'bmF0ZUNvbnRlbnQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQ+IjpRPSEwO2JyZWFrO2Nhc2UiPC9kZWZpbmVkTmFtZXM+IjpjYXNlIjwvZXh0PiI6Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpRPSExO2JyZWFrO2Nhc2UiPGRlZmluZWROYW1lIjooZ2U9e30pLk5hbWU9UGkoQmUubmFtZSks'@; put 'QmUuY29tbWVudCYmKGdlLkNvbW1lbnQ9QmUuY29tbWVudCksQmUubG9jYWxTaGVldElkJiYoZ2UuU2hlZXQ9K0JlLmxvY2FsU2hlZXRJZCkseXIoQmUuaGlkZGVufHwiMCIpJiYoZ2UuSGlkZGVuPSEwKSxfZT1IZStTZS5sZW5ndGg7YnJlYWs7Y2FzZSI8L2RlZmluZWROYW1lPiI6Z2UuUmVm'@; put 'PXhyKFBpKHkuc2xpY2UoX2UsSGUpKSksTC5OYW1lcy5wdXNoKGdlKTticmVhaztjYXNlIjxjYWxjUHIiOmNhc2UiPGNhbGNQci8+IjpkZWxldGUgQmVbMF0sTC5DYWxjUHI9QmU7YnJlYWs7ZGVmYXVsdDppZighUSYmUC5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitCZVsw'@; put 'XSsiIGluIHdvcmtib29rIil9cmV0dXJuIFNlfSksLTE9PT1pcy5tYWluLmluZGV4T2YoTC54bWxucykpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIitMLnhtbG5zKTtyZXR1cm4gVXYoTCksTH0oeSxMKX0oSXQoeSxsYyhRLndvcmtib29rc1swXSkpLFEud29ya2Jvb2tz'@; put 'WzBdLFApLEdlPXt9LG50PSIiO1EuY29yZXByb3BzLmxlbmd0aCYmKChudD1JdCh5LGxjKFEuY29yZXByb3BzWzBdKSwhMCkpJiYoR2U9TzIobnQpKSwwIT09US5leHRwcm9wcy5sZW5ndGgmJihudD1JdCh5LGxjKFEuZXh0cHJvcHNbMF0pLCEwKSkmJmZ1bmN0aW9uIHAzKHksUCxMKXt2YXIg'@; put 'UT17fTtQfHwoUD17fSkseT1QaSh5KSxSMS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXt2YXIgZ2U9KHkubWF0Y2godWwocmVbMF0pKXx8W10pWzFdO3N3aXRjaChyZVsyXSl7Y2FzZSJzdHJpbmciOmdlJiYoUFtyZVsxXV09eHIoZ2UpKTticmVhaztjYXNlImJvb2wiOlBbcmVbMV1dPSJ0cnVlIj09'@; put 'PWdlO2JyZWFrO2Nhc2UicmF3Ijp2YXIgX2U9eS5tYXRjaChuZXcgUmVnRXhwKCI8IityZVswXSsiW14+XSo+KFtcXHNcXFNdKj8pPC8iK3JlWzBdKyI+IikpO19lJiZfZS5sZW5ndGg+MCYmKFFbcmVbMV1dPV9lWzFdKX19KSxRLkhlYWRpbmdQYWlycyYmUS5UaXRsZXNPZlBhcnRzJiZ1MChR'@; put 'LkhlYWRpbmdQYWlycyxRLlRpdGxlc09mUGFydHMsUCxMKX0obnQsR2UsUCkpO3ZhciBkdD17fTsoIVAuYm9va1NoZWV0c3x8UC5ib29rUHJvcHMpJiYwIT09US5jdXN0cHJvcHMubGVuZ3RoJiYobnQ9UXQoeSxsYyhRLmN1c3Rwcm9wc1swXSksITApKSYmKGR0PWZ1bmN0aW9uIE00KHksUCl7'@; put 'dmFyIEw9e30sUT0iIixyZT15Lm1hdGNoKEF3KTtpZihyZSlmb3IodmFyIGdlPTA7Z2UhPXJlLmxlbmd0aDsrK2dlKXt2YXIgX2U9cmVbZ2VdLHZlPWxuKF9lKTtzd2l0Y2godmVbMF0pe2Nhc2UiPD94bWwiOmNhc2UiPFByb3BlcnRpZXMiOmJyZWFrO2Nhc2UiPHByb3BlcnR5IjpRPXhyKHZl'@; put 'Lm5hbWUpO2JyZWFrO2Nhc2UiPC9wcm9wZXJ0eT4iOlE9bnVsbDticmVhaztkZWZhdWx0OmlmKDA9PT1fZS5pbmRleE9mKCI8dnQ6Iikpe3ZhciBTZT1fZS5zcGxpdCgiPiIpLEhlPVNlWzBdLnNsaWNlKDQpLEJlPVNlWzFdO3N3aXRjaChIZSl7Y2FzZSJscHN0ciI6Y2FzZSJic3RyIjpjYXNl'@; put 'Imxwd3N0ciI6Y2FzZSJjeSI6Y2FzZSJlcnJvciI6TFtRXT14cihCZSk7YnJlYWs7Y2FzZSJib29sIjpMW1FdPXlyKEJlKTticmVhaztjYXNlImkxIjpjYXNlImkyIjpjYXNlImk0IjpjYXNlImk4IjpjYXNlImludCI6Y2FzZSJ1aW50IjpMW1FdPXBhcnNlSW50KEJlLDEwKTticmVhaztjYXNl'@; put 'InI0IjpjYXNlInI4IjpjYXNlImRlY2ltYWwiOkxbUV09cGFyc2VGbG9hdChCZSk7YnJlYWs7Y2FzZSJmaWxldGltZSI6Y2FzZSJkYXRlIjpMW1FdPUh0KEJlKTticmVhaztkZWZhdWx0OmlmKCIvIj09SGUuc2xpY2UoLTEpKWJyZWFrO1AuV1RGJiZ0eXBlb2YgY29uc29sZTwidSImJmNvbnNv'@; put 'bGUud2FybigiVW5leHBlY3RlZCIsX2UsSGUsU2UpfX1lbHNlIGlmKCI8LyIhPT1fZS5zbGljZSgwLDIpJiZQLldURil0aHJvdyBuZXcgRXJyb3IoX2UpfX1yZXR1cm4gTH0obnQsUCkpO3ZhciBDdD17fTtpZigoUC5ib29rU2hlZXRzfHxQLmJvb2tQcm9wcykmJihCZS5TaGVldHM/Z2U9QmUu'@; put 'U2hlZXRzLm1hcChmdW5jdGlvbihTbil7cmV0dXJuIFNuLm5hbWV9KTpHZS5Xb3Jrc2hlZXRzJiZHZS5TaGVldE5hbWVzLmxlbmd0aD4wJiYoZ2U9R2UuU2hlZXROYW1lcyksUC5ib29rUHJvcHMmJihDdC5Qcm9wcz1HZSxDdC5DdXN0cHJvcHM9ZHQpLFAuYm9va1NoZWV0cyYmdHlwZW9mIGdl'@; put 'PCJ1IiYmKEN0LlNoZWV0TmFtZXM9Z2UpLFAuYm9va1NoZWV0cz9DdC5TaGVldE5hbWVzOlAuYm9va1Byb3BzKSlyZXR1cm4gQ3Q7Z2U9e307dmFyIGN0PXt9O1AuYm9va0RlcHMmJlEuY2FsY2NoYWluJiYoY3Q9ZnVuY3Rpb24gekwoeSxQLEwpe3JldHVybiIuYmluIj09PVAuc2xpY2UoLTQp'@; put 'P2Z1bmN0aW9uIERDKHksUCxMKXt2YXIgUT1bXTtyZXR1cm4gSG8oeSxmdW5jdGlvbihfZSx2ZSxTZSl7aWYoNjM9PT1TZSlRLnB1c2goX2UpO2Vsc2UgaWYoISgodmV8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjB8fCh2ZXx8IiIpLmluZGV4T2YoIkVuZCIpPjApKXRocm93IG5ldyBFcnJvcigi'@; put 'VW5leHBlY3RlZCByZWNvcmQgIitTZSsiICIrdmUpfSksUX0oeSk6ZnVuY3Rpb24gZTYoeSl7dmFyIFA9W107aWYoIXkpcmV0dXJuIFA7dmFyIEw9MTtyZXR1cm4oeS5tYXRjaCgkdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFEpe3ZhciByZT1sbihRKTtzd2l0Y2gocmVbMF0pe2Nhc2UiPD94'@; put 'bWwiOmNhc2UiPGNhbGNDaGFpbiI6Y2FzZSI8Y2FsY0NoYWluPiI6Y2FzZSI8L2NhbGNDaGFpbj4iOmJyZWFrO2Nhc2UiPGMiOmRlbGV0ZSByZVswXSxyZS5pP0w9cmUuaTpyZS5pPUwsUC5wdXNoKHJlKX19KSxQfSh5KX0oSXQoeSxsYyhRLmNhbGNjaGFpbikpLFEuY2FsY2NoYWluKSk7dmFy'@; put 'IGt0LFR0LGJ0PTAsRnQ9e30sWnQ9QmUuU2hlZXRzO0dlLldvcmtzaGVldHM9WnQubGVuZ3RoLEdlLlNoZWV0TmFtZXM9W107Zm9yKHZhciBwbj0wO3BuIT1adC5sZW5ndGg7KytwbilHZS5TaGVldE5hbWVzW3BuXT1adFtwbl0ubmFtZTt2YXIgS249cmU/ImJpbiI6InhtbCIsdW49US53b3Jr'@; put 'Ym9va3NbMF0ubGFzdEluZGV4T2YoIi8iKSxxbj0oUS53b3JrYm9va3NbMF0uc2xpY2UoMCx1bisxKSsiX3JlbHMvIitRLndvcmtib29rc1swXS5zbGljZSh1bisxKSsiLnJlbHMiKS5yZXBsYWNlKC9eXC8vLCIiKTttbih5LHFuKXx8KHFuPSJ4bC9fcmVscy93b3JrYm9vay4iK0tuKyIucmVs'@; put 'cyIpO3ZhciB6bj1EbyhRdCh5LHFuLCEwKSxxbiksa249em4sZXI9W107em4mJihCZSYmQmUuRXh0ZXJuJiZCZS5FeHRlcm4ubGVuZ3RoJiZCZS5FeHRlcm4uZm9yRWFjaChmdW5jdGlvbihycixTbil7dmFyIHdpPSgiL3hsLyIrem5bIiFpZCJdW3JyXS5UYXJnZXQpLnJlcGxhY2UoL1tcL11b'@; put 'XC9dL2csIi8iKSxVcj1RLmxpbmtzLmluZGV4T2Yod2kpO1VyPi0xJiYoZXJbU25dPUhlW1VyXSl9KSxCZSYmZGVsZXRlIEJlLkV4dGVybiksem4mJih6bj1mdW5jdGlvbiBPTSh5LFApe2lmKCF5KXJldHVybiAwO3RyeXt5PVAubWFwKGZ1bmN0aW9uKFEpe3JldHVybiBRLmlkfHwoUS5pZD1R'@; put 'LnN0clJlbElEKSxbUS5uYW1lLHlbIiFpZCJdW1EuaWRdLlRhcmdldCxSTSh5WyIhaWQiXVtRLmlkXS5UeXBlKV19KX1jYXRjaHtyZXR1cm4gbnVsbH1yZXR1cm4geSYmMCE9PXkubGVuZ3RoP3k6bnVsbH0oem4sQmUuU2hlZXRzKSk7dmFyIHRyPW1uKHksInhsL3dvcmtzaGVldHMvc2hlZXQu'@; put 'eG1sIik/MTowLFpuPVtdLEJyPVtdO2U6Zm9yKGJ0PTA7YnQhPUdlLldvcmtzaGVldHM7KytidCl7dmFyIHNpPSJzaGVldCI7aWYoem4mJnpuW2J0XT8oa3Q9InhsLyIrem5bYnRdWzFdLnJlcGxhY2UoL1tcL10/eGxcLy8sIiIpLG1uKHksa3QpfHwoa3Q9em5bYnRdWzFdKSxtbih5LGt0KXx8'@; put 'KGt0PXFuLnJlcGxhY2UoL19yZWxzXC8uKiQvLCIiKSt6bltidF1bMV0pLHNpPXpuW2J0XVsyXSk6a3Q9KGt0PSJ4bC93b3Jrc2hlZXRzL3NoZWV0IisoYnQrMS10cikrIi4iK0tuKS5yZXBsYWNlKC9zaGVldDBcLi8sInNoZWV0LiIpLFR0PWt0LnJlcGxhY2UoL14oLiopKFwvKShbXlwvXSop'@; put 'JC8sIiQxL19yZWxzLyQzLnJlbHMiKSxabi5wdXNoKGt0KSxQJiZudWxsIT1QLnNoZWV0cylzd2l0Y2godHlwZW9mIFAuc2hlZXRzKXtjYXNlIm51bWJlciI6aWYoYnQhPVAuc2hlZXRzKWNvbnRpbnVlIGU7YnJlYWs7Y2FzZSJzdHJpbmciOmlmKEdlLlNoZWV0TmFtZXNbYnRdLnRvTG93ZXJD'@; put 'YXNlKCkhPVAuc2hlZXRzLnRvTG93ZXJDYXNlKCkpY29udGludWUgZTticmVhaztkZWZhdWx0OmlmKEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkoUC5zaGVldHMpKXtmb3IodmFyIHhpPTAsTGk9MDtMaSE9UC5zaGVldHMubGVuZ3RoOysrTGkpIm51bWJlciI9PXR5cGVvZiBQLnNoZWV0'@; put 'c1tMaV0mJlAuc2hlZXRzW0xpXT09YnQmJih4aT0xKSwic3RyaW5nIj09dHlwZW9mIFAuc2hlZXRzW0xpXSYmUC5zaGVldHNbTGldLnRvTG93ZXJDYXNlKCk9PUdlLlNoZWV0TmFtZXNbYnRdLnRvTG93ZXJDYXNlKCkmJih4aT0xKTtpZigheGkpY29udGludWUgZX19aWYoIVAuc2tpcFBhcnNl'@; put 'KXt2YXIgUXI9Z1IoeSxrdCxUdCxHZS5TaGVldE5hbWVzW2J0XSxidCxGdCxnZSxzaSxQLEJlLHZlLFNlKTtRciYmUXJbIiFMRFAiXSYmKEJyW2J0XT1RclsiIUxEUCJdLGRlbGV0ZSBRclsiIUxEUCJdKX19aWYodHlwZW9mIHBhcnNlX3NoZWV0X3Bpdm90PCJ1Iilmb3IoYnQ9MDtidDxGNi5s'@; put 'ZW5ndGg7KytidClwYXJzZV9zaGVldF9waXZvdC5hcHBseShudWxsLEY2W2J0XSk7aWYoQ3Q9e0RpcmVjdG9yeTpRLFdvcmtib29rOkJlLFByb3BzOkdlLEN1c3Rwcm9wczpkdCxEZXBzOmN0LFNoZWV0czpnZSxTaGVldE5hbWVzOkdlLlNoZWV0TmFtZXMsU3RyaW5nczpmNixTdHlsZXM6U2Us'@; put 'VGhlbWVzOnZlLFNTRjp3LmdldF90YWJsZSgpfSwhUC5za2lwUGFyc2Upe2lmKGZ1bmN0aW9uIEFDKHkpeyF5fHwheS5Xb3JrYm9va3x8IXkuV29ya2Jvb2suTmFtZXN8fHkuV29ya2Jvb2suTmFtZXMuZm9yRWFjaChmdW5jdGlvbihQKXtpZihQLk5hbWUmJiJfeGxubS4iPT1QLk5hbWUuc2xp'@; put 'Y2UoMCw2KSYmKCJfeGxubS5QcmludF9BcmVhIj09UC5OYW1lfHwiX3hsbm0uUHJpbnRfVGl0bGVzIj09UC5OYW1lKSl7dmFyIEw9eS5TaGVldHNbeS5TaGVldE5hbWVzW1AuU2hlZXRdXTtpZihMKXtMWyIhcHJpbnQiXXx8KExbIiFwcmludCJdPXt9KSxMWyIhcHJpbnQiXS5wcm9wc3x8KExb'@; put 'IiFwcmludCJdLnByb3BzPXt9KTt2YXIgUT1MWyIhcHJpbnQiXSxyZT1QLlJlZjtpZigiX3hsbm0uUHJpbnRfQXJlYSI9PVAuTmFtZSl7cmUuaW5kZXhPZigiISIpPi0xJiYocmU9cmUuc2xpY2UocmUuaW5kZXhPZigiISIpKzEpKTt2YXIgZ2U9T2kocmU9cmUucmVwbGFjZSgvWyRdL2csIiIp'@; put 'KTtRLmFyZWE9Z2V9ZWxzZSJfeGxubS5QcmludF9UaXRsZXMiPT1QLk5hbWUmJihRLnRpdGxlcz17czp7cjotMSxjOi0xfSxlOntyOi0xLGM6LTF9fSxyZS5zcGxpdCgiLCIpLmZvckVhY2goZnVuY3Rpb24oX2Upe3ZhciBTZT1XcyhfZS5zbGljZShfZS5pbmRleE9mKCIhIikrMSkucmVwbGFj'@; put 'ZSgvWyRdL2csIiIpKTtTZS5zLmM+LTEmJihRLnRpdGxlcy5zLmM9U2Uucy5jKSxTZS5lLmM+LTEmJihRLnRpdGxlcy5lLmM9U2UuZS5jKSxTZS5zLnI+LTEmJihRLnRpdGxlcy5zLnI9U2Uucy5yKSxTZS5lLnI+LTEmJihRLnRpdGxlcy5lLnI9U2UuZS5yKX0pKX19fSl9KEN0KSxQJiZQLmJv'@; put 'b2tGaWxlcyYmKEN0LmtleXM9TCxDdC5maWxlcz15LmZpbGVzKSxQJiZQLmJvb2tWQkEmJihRLnZiYS5sZW5ndGg+MD9DdC52YmFyYXc9SXQoeSxsYyhRLnZiYVswXSksITApOlEuZGVmYXVsdHMmJlEuZGVmYXVsdHMuYmluPT09JDImJihDdC52YmFyYXc9SXQoeSwieGwvdmJhUHJvamVjdC5i'@; put 'aW4iLCEwKSkpLGtuJiZrblsiIWlkIl0pe2Zvcih2YXIgdXI9W10sQW49MTtBbjw9MTAyNDsrK0FuKWtuWyIhaWQiXVsicklkIitBbl0mJmtuWyIhaWQiXVsicklkIitBbl0uVHlwZSYmL2N1c3RvbVhtbCQvLnRlc3Qoa25bIiFpZCJdWyJySWQiK0FuXS5UeXBlKSYmdXIucHVzaChzbihrblsi'@; put 'IWlkIl1bInJJZCIrQW5dLlRhcmdldCxRLndvcmtib29rc1swXSkpO3VyLmxlbmd0aD4wJiYoQ3QuQ3VzdG9tWE1MPVtdLHVyLmZvckVhY2goZnVuY3Rpb24ocnIpe3ZhciBTbj17ZGF0YTpRdCh5LGxjKHJyKSl9LG1yPUJpKHJyKTt0cnl7dmFyIHdpPURvKFF0KHksbGMobXIpLCEwKSxtcik7'@; put 'aWYod2kpZm9yKHZhciBVcj0xO1VyPD0xMDI0OysrVXIpd2lbIiFpZCJdWyJySWQiK1VyXSYmd2lbIiFpZCJdWyJySWQiK1VyXS5UeXBlJiYvY3VzdG9tWG1sUHJvcHMkLy50ZXN0KHdpWyIhaWQiXVsicklkIitVcl0uVHlwZSkmJihTbi5wcm9wcz1RdCh5LGxjKHNuKHdpWyIhaWQiXVsicklk'@; put 'IitVcl0uVGFyZ2V0LHJyKSkpKX1jYXRjaHt9Q3QuQ3VzdG9tWE1MLnB1c2goU24pfSkpfXZhciB2cj1EdCh5LCJ4bC9tb2RlbC9pdGVtLmRhdGEiLCEwKTt2ciYmKEN0Lm1vZGVsPXZyKSxRLmNvbm4mJihDdC5jb25uPUl0KHksbGMoUS5jb25uKSwhMCkpLGVyLmxlbmd0aCYmKEN0LkV4dGVy'@; put 'bmFsV0I9ZXIpLEJlJiYoQmUuUFBJPW5mKX1yZXR1cm4gUC50ZW1wbGF0ZSYmKEN0Ll93c3BhdGhzPVpuLEN0Ll9zdHlwYXRoPWxjKFEuc3R5bGV8fCIiKSxDdC5fd2JwYXRoPWxjKFEud29ya2Jvb2tzWzBdfHwieGwvd29ya2Jvb2sueG1sIiksQ3QuX3ZtbHBhdGhzPUJyLEN0Ll93YnJlbHNw'@; put 'YXRoPXFuLEN0Ll9jdD1RdCh5LCJbQ29udGVudF9UeXBlc10ueG1sIiksQ3QuZmlsZXM9eS5maWxlcyxtUihDdCx5LFApKSxDdH1mdW5jdGlvbiB2Uih5LFApe3ZhciBMPVB8fHt9O0wucGFzc3dvcmR8fChMLnBhc3N3b3JkPSJWZWx2ZXRTd2VhdHNob3AiKTt2YXIgUT0iV29ya2Jvb2siLHJl'@; put 'PWplLmZpbmQoeSxRKTt0cnl7aWYoIShyZT1qZS5maW5kKHksUT0iLyFEYXRhU3BhY2VzL1ZlcnNpb24iKSl8fCFyZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK1EpO2lmKGZ1bmN0aW9uIGREKHkpe3ZhciBQPXt9O1AuaWQ9eS5y'@; put 'ZWFkX3NoaWZ0KDAsImxwcDQiKSxQLlI9RzAoeSw0KSxQLlU9RzAoeSw0KSxQLlc9RzAoeSw0KX0ocmUuY29udGVudCksIShyZT1qZS5maW5kKHksUT0iLyFEYXRhU3BhY2VzL0RhdGFTcGFjZU1hcCIpKXx8IXJlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQg'@; put 'ZmlsZSBtaXNzaW5nICIrUSk7dmFyIGdlPWZ1bmN0aW9uIFA0KHkpe3ZhciBQPVtdO3kubCs9NDtmb3IodmFyIEw9eS5yZWFkX3NoaWZ0KDQpO0wtLSA+MDspUC5wdXNoKHNDKHkpKTtyZXR1cm4gUH0ocmUuY29udGVudCk7aWYoMSE9PWdlLmxlbmd0aHx8MSE9PWdlWzBdLmNvbXBzLmxlbmd0'@; put 'aHx8MCE9PWdlWzBdLmNvbXBzWzBdLnR8fCJTdHJvbmdFbmNyeXB0aW9uRGF0YVNwYWNlIiE9PWdlWzBdLm5hbWV8fCJFbmNyeXB0ZWRQYWNrYWdlIiE9PWdlWzBdLmNvbXBzWzBdLnYpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBiYWQgIitRKTtpZighKHJlPWpl'@; put 'LmZpbmQoeSxRPSIvIURhdGFTcGFjZXMvRGF0YVNwYWNlSW5mby9TdHJvbmdFbmNyeXB0aW9uRGF0YVNwYWNlIikpfHwhcmUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIitRKTt2YXIgX2U9ZnVuY3Rpb24gRTMoeSl7dmFyIFA9W107'@; put 'eS5sKz00O2Zvcih2YXIgTD15LnJlYWRfc2hpZnQoNCk7TC0tID4wOylQLnB1c2goeS5yZWFkX3NoaWZ0KDAsImxwcDQiKSk7cmV0dXJuIFB9KHJlLmNvbnRlbnQpO2lmKDEhPV9lLmxlbmd0aHx8IlN0cm9uZ0VuY3J5cHRpb25UcmFuc2Zvcm0iIT1fZVswXSl0aHJvdyBuZXcgRXJyb3IoIkVD'@; put 'TUEtMzc2IEVuY3J5cHRlZCBmaWxlIGJhZCAiK1EpO2lmKCEocmU9amUuZmluZCh5LFE9Ii8hRGF0YVNwYWNlcy9UcmFuc2Zvcm1JbmZvL1N0cm9uZ0VuY3J5cHRpb25UcmFuc2Zvcm0vIVByaW1hcnkiKSl8fCFyZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVk'@; put 'IGZpbGUgbWlzc2luZyAiK1EpOyFmdW5jdGlvbiBBMyh5KXt2YXIgUD1mdW5jdGlvbiBrMyh5KXt2YXIgUD17fTtyZXR1cm4geS5yZWFkX3NoaWZ0KDQpLHkubCs9NCxQLmlkPXkucmVhZF9zaGlmdCgwLCJscHA0IiksUC5uYW1lPXkucmVhZF9zaGlmdCgwLCJscHA0IiksUC5SPUcwKHksNCks'@; put 'UC5VPUcwKHksNCksUC5XPUcwKHksNCksUH0oeSk7aWYoUC5lbmFtZT15LnJlYWRfc2hpZnQoMCwiOGxwcDQiKSxQLmJsa3N6PXkucmVhZF9zaGlmdCg0KSxQLmNtb2RlPXkucmVhZF9zaGlmdCg0KSw0IT15LnJlYWRfc2hpZnQoNCkpdGhyb3cgbmV3IEVycm9yKCJCYWQgIVByaW1hcnkgcmVj'@; put 'b3JkIik7cmV0dXJuIFB9KHJlLmNvbnRlbnQpfWNhdGNoe31pZighKHJlPWplLmZpbmQoeSxRPSIvRW5jcnlwdGlvbkluZm8iKSl8fCFyZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK1EpO3ZhciB2ZT1mdW5jdGlvbiBUMyh5KXt2'@; put 'YXIgUD1HMCh5KTtzd2l0Y2goUC5NaW5vcil7Y2FzZSAyOnJldHVybltQLk1pbm9yLGdaKHkpXTtjYXNlIDM6cmV0dXJuW1AuTWlub3IsaEQoKV07Y2FzZSA0OnJldHVybltQLk1pbm9yLG1aKHkpXX10aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIHVucmVjb2duaXpl'@; put 'ZCBWZXJzaW9uOiAiK1AuTWlub3IpfShyZS5jb250ZW50KTtpZighKHJlPWplLmZpbmQoeSxRPSIvRW5jcnlwdGVkUGFja2FnZSIpKXx8IXJlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrUSk7aWYoND09dmVbMF0pcmV0dXJuIGZ1'@; put 'bmN0aW9uIE5lKHksUCxMLFEpe3ZhciByZT1qZS51dGlscy5wcmVwX2Jsb2I7aWYoImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIiE9eS51cmkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFQ01BLTM3NiBBZ2lsZSBV'@; put 'UkkgIit5LnVyaSk7dmFyIGdlPXkuZW5jc1swXSxfZT1nZS5oYXNoQWxnb3JpdGhtLHZlPSJhZXMtMjU2LWNiYyIsU2U9QnVmZmVyLmZyb20oZ2Uuc2FsdFZhbHVlLCJiYXNlNjQiKSxIZT1CdWZmZXIuZnJvbSh5LnNhbHRWYWx1ZSwiYmFzZTY0IiksQmU9K2dlLmJsb2NrU2l6ZSxHZT0rZ2Uu'@; put 'a2V5Qml0cz4+MyxudD1lbChCdWZmZXIuY29uY2F0KFtTZSxCdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLEwpKV0pLF9lKSxkdD1CdWZmZXIuYWxsb2MoNCk7cmUoZHQsMCk7Zm9yKHZhciBDdD0wO0N0PGdlLnNwaW5Db3VudDsrK0N0KWR0Lmw9MCxkdC53cml0ZV9zaGlm'@; put 'dCg0LEN0KSxudD1lbChCdWZmZXIuY29uY2F0KFtkdCxudF0pLF9lKTt2YXIgY3Q9ZnVuY3Rpb24odHIsWm4sQnIsc2kpe3ZhciB4aT1lbChCdWZmZXIuY29uY2F0KFt0cixCdWZmZXIuZnJvbShbMjAsMTEwLDExLDIzMSwxNzEsMTcyLDIwOCwyMTRdKV0pLHNpKSxMaT14aS5sZW5ndGg+PUJy'@; put 'P3hpLnNsaWNlKDAsQnIpOkJ1ZmZlci5hbGxvYyhCcik7aWYoeGkubGVuZ3RoPEJyKXtmb3IodmFyIFFyPTA7UXI8eGkubGVuZ3RoOysrUXIpTGlbUXJdPXhpW1FyXTtmb3IoO1FyPEJyOysrUXIpTGlbUXJdPTU0fXJldHVybiBMaX0obnQsMCxHZSxfZSk7c3dpdGNoKGdlLmNpcGhlckFsZ29y'@; put 'aXRobSl7Y2FzZSJBRVMiOmlmKCJDaGFpbmluZ01vZGVDQkMiIT1nZS5jaXBoZXJDaGFpbmluZyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNpcGhlciBjaGFpbmluZyAiK2dlLmNpcGhlckNoYWluaW5nKTt2ZT0iYWVzLSIrZ2Uua2V5Qml0cysiLWNiYyI7YnJlYWs7Y2FzZSJSQzIi'@; put 'OnZlPSJyYzIiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBjaXBoZXIgYWxnbyAiK2dlLmNpcGhlckFsZ29yaXRobSl9U2U9ZnVuY3Rpb24oZXIpe2Zvcih2YXIgdHI9QnVmZmVyLmFsbG9jKEJlKSxabj0wO1puPEJlOysrWm4pdHJbWm5dPVpuPGVyLmxlbmd0'@; put 'aD9lcltabl06NTQ7cmV0dXJuIHRyfShTZSk7dmFyIGJ0PUJ1ZmZlci5mcm9tKGdlLmVuY3J5cHRlZEtleVZhbHVlLCJiYXNlNjQiKSxGdD1KMShjdCxTZSx2ZSkudXBkYXRlKGJ0KSxrdD1KMShlbChCdWZmZXIuY29uY2F0KFtudCxCdWZmZXIuZnJvbShbMjE1LDE3MCwxNSwxMDksNDgsOTcs'@; put 'NTIsNzhdKV0pLF9lKS5zbGljZSgwLEdlKSxTZSx2ZSkudXBkYXRlKEJ1ZmZlci5mcm9tKGdlLmVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlLCJiYXNlNjQiKSksVHQ9ZWwoSjEoZWwoQnVmZmVyLmNvbmNhdChbbnQsQnVmZmVyLmZyb20oWzI1NCwxNjcsMjEwLDExOCw1OSw3NSwxNTgsMTIx'@; put 'XSldKSxfZSkuc2xpY2UoMCxHZSksU2UsdmUpLnVwZGF0ZShCdWZmZXIuZnJvbShnZS5lbmNyeXB0ZWRWZXJpZmllckhhc2hJbnB1dCwiYmFzZTY0IikpLF9lKSxadD0rZ2UuaGFzaFNpemV8fE1hdGgubWluKGt0Lmxlbmd0aCxUdC5sZW5ndGgpO2lmKDAhPWt0LnNsaWNlKDAsWnQpLmNvbXBh'@; put 'cmUoVHQuc2xpY2UoMCxadCkpKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IFBhc3N3b3JkIik7cmUoUCwwKTt2YXIgcG49UC5yZWFkX3NoaWZ0KDQpO1AubCs9NDt2YXIgS249W10sdW49QnVmZmVyLmNvbmNhdChbSGUsQnVmZmVyLmFsbG9jKDQpXSk7Zm9yKHJlKHVuKSxDdD0wO1AubDxQ'@; put 'Lmxlbmd0aDspdW4ubD1TZS5sZW5ndGgsdW4ud3JpdGVfc2hpZnQoNCxDdCksS24ucHVzaChKMShGdCxlbChCdWZmZXIuZnJvbSh1biksX2UpLnNsaWNlKDAsMTYpLHZlKS51cGRhdGUoQnVmZmVyLmZyb20oUC5zbGljZShQLmwsUC5sKzQwOTYpKSkpLFAubCs9NDA5NiwrK0N0O3ZhciB6bj1C'@; put 'dWZmZXIuY29uY2F0KEtuKS5zbGljZSgwLHBuKSxrbj1vbihRKTtyZXR1cm4ga24udHlwZT0iYnVmZmVyIixfZih6bixrbil9KHZlWzFdLHJlLmNvbnRlbnQsTC5wYXNzd29yZHx8IiIsTCk7aWYoMj09dmVbMF0pcmV0dXJuIGZ1bmN0aW9uIGRfKHksUCxMLFEpe3ZhciByZT1qZS51dGlscy5w'@; put 'cmVwX2Jsb2I7aWYoIlN0ZCIhPT15LnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBCYWQgU3RhbmRhcmQgRW5jcnlwdGlvbiIpO3ZhciBnZT15LnYuU2FsdCxfZT15LnYuVmVyaWZpZXIsdmU9eS52LlZlcmlmaWVySGFzaDtpZigzNiE9eS5oLkZsYWdzKXRocm93IG5ldyBFcnJvcigiRUNN'@; put 'QS0zNzYgU3RhbmRhcmQgRW5jcnlwdGlvbiBiYWQgRmxhZ3MiKTt2YXIgU2U9MCxIZT0iIjtzd2l0Y2goeS5oLkFsZ0lEKXtjYXNlIDI2MTI2OlNlPTEyOCxIZT0iYWVzLTEyOC1lY2IiO2JyZWFrO2Nhc2UgMjYxMjc6U2U9MTk2LEhlPSJhZXMtMTkyLWVjYiI7YnJlYWs7Y2FzZSAyNjEyODpT'@; put 'ZT0yNTYsSGU9ImFlcy0yNTYtZWNiIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgQmFkIFN0YW5kYXJkIEVuY3J5cHRpb24iKX1pZigzMjc3MiE9eS5oLkFsZ0lESGFzaCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEJhZCBTdGFuZGFyZCBFbmNyeXB0aW9uIik7'@; put 'aWYoeS5oLktleVNpemUhPVNlKXRocm93IG5ldyBFcnJvcigiQWxnSUQvS2V5U2l6ZSBtaXNtYXRjaCIpO2lmKDI0IT15LmguUHJvdmlkZXJUeXBlKXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgdW5zdXBwb3J0ZWQgUHJvdmlkZXJUeXBlICIreS5oLlByb3ZpZGVyVHlwZSk7aWYoIk1pY3Jv'@; put 'c29mdCBFbmhhbmNlZCBSU0EgYW5kIEFFUyBDcnlwdG9ncmFwaGljIFByb3ZpZGVyIiE9PXkuaC5DU1BOYW1lLnNsaWNlKDAsNTMpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ3J5cHRvIFByb3ZpZGVyICIreS5oLkNTUE5hbWUpO3ZhciBHZT0iU0hBLTEiLG50PVNlPj4zLGR0PWVs'@; put 'KEJ1ZmZlci5jb25jYXQoW2dlLGNwdGFibGUudXRpbHMuZW5jb2RlKDEyMDAsTCldKSxHZSksQ3Q9QnVmZmVyLmFsbG9jKDQpO3JlKEN0LDApO2Zvcih2YXIgY3Q9MDtjdDw1ZTQ7KytjdClDdC5sPTAsQ3Qud3JpdGVfc2hpZnQoNCxjdCksZHQ9ZWwoQnVmZmVyLmNvbmNhdChbQ3QsZHRdKSxH'@; put 'ZSk7Q3QubD0wLEN0LndyaXRlX3NoaWZ0KDQsMCk7dmFyIEtuLHVuLHFuLHpuLGtuLEZ0PSh6bj0ocW49ZnVuY3Rpb24odHIsWm4sQnIpe2Zvcih2YXIgc2k9QnVmZmVyLmFsbG9jKDY0KSx4aT0wO3hpPHNpLmxlbmd0aDsrK3hpKXNpW3hpXT10cjtmb3IoeGk9MDt4aTxabi5sZW5ndGg7Kyt4'@; put 'aSlzaVt4aV1ePVpuW3hpXTtyZXR1cm4gZWwoc2ksQnIpfSkoNTQsS249ZWwoQnVmZmVyLmNvbmNhdChbZHQsQ3RdKSxHZSksdW49R2UpLGtuPXFuKDkyLEtuLHVuKSxCdWZmZXIuY29uY2F0KFt6bixrbl0pLnNsaWNlKDAsbnQpKTtpZihKMShGdCxCdWZmZXIuYWxsb2MoMCksSGUpLnVwZGF0'@; put 'ZSh2ZSkuc2xpY2UoMCwyMCkuY29tcGFyZShlbChKMShGdCxCdWZmZXIuYWxsb2MoMCksSGUpLnVwZGF0ZShfZSksR2UpKSl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCBQYXNzd29yZCIpO3JlKFAsMCk7dmFyIGt0PVAucmVhZF9zaGlmdCg0KTtQLmwrPTQ7dmFyIFR0PVtdO2ZvcihjdD0w'@; put 'O1AubDxQLmxlbmd0aDspVHQucHVzaChKMShGdCxCdWZmZXIuYWxsb2MoMCksSGUpLnVwZGF0ZShQLnNsaWNlKFAubCxQLmwrNDA5NikpKSxQLmwrPTQwOTYsKytjdDtyZXR1cm4gX2YoQnVmZmVyLmNvbmNhdChUdCkuc2xpY2UoMCxrdCksUSl9KHZlWzFdLHJlLmNvbnRlbnQsTC5wYXNzd29y'@; put 'ZHx8IiIsTCk7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpfXZhciBfUj1mdW5jdGlvbigpe307ZnVuY3Rpb24gYlIoeSxQKXtpZihQLnRlbXBsYXRlKXJldHVybiBfUih5LFApO2lmKCJvZHMiPT1QLmJvb2tUeXBlKXJldHVybiBfMCh5LFApO0ZtKFAmJlAu'@; put 'UFBJfHw5NikseSYmIXkuU1NGJiYoeS5TU0Y9dy5nZXRfdGFibGUoKSkseSYmeS5TU0YmJihKKHcpLHcubG9hZF90YWJsZSh5LlNTRiksUC5yZXZzc2Y9QWUoeS5TU0YpLFAucmV2c3NmW3kuU1NGWzY1NTM1XV09MCxQLnNzZj15LlNTRikseS5TdHlsZXM9e0ZvbnRzOlAuRm9udHM9W3tzejox'@; put 'Mixjb2xvcjp7dGhlbWU6MSxyZ2I6IjAwMDAwMCJ9LG5hbWU6IkNhbGlicmkiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0sRmlsbHM6UC5GaWxscz1be3BhdHRlcm5UeXBlOiJub25lIn0se3BhdHRlcm5UeXBlOiJncmF5MTI1In1dLEJvcmRlcnM6UC5Cb3JkZXJzPVt7fV0sRFhGOlAuRFhG'@; put 'PXkuU3R5bGVzJiZ5LlN0eWxlcy5EWEZ8fFtdLFRhYmxlOlAuVGFibGU9eS5TdHlsZXMmJnkuU3R5bGVzLlRhYmxlfHxbXX0sUC5vdmVycmlkZU1EVz9wbD1QLm92ZXJyaWRlTURXOloxKFAuRm9udHNbMF0pLFAucmVscz17fSxQLndicmVscz17fSxQLlN0cmluZ3M9W10sUC5TdHJpbmdzLkNv'@; put 'dW50PTAsUC5TdHJpbmdzLlVuaXF1ZT0wLEswP1AucmV2U3RyaW5ncz1uZXcgTWFwOihQLnJldlN0cmluZ3M9e30sUC5yZXZTdHJpbmdzLmZvbz1bXSxkZWxldGUgUC5yZXZTdHJpbmdzLmZvbyk7dmFyIEw9Inhsc2IiPT1QLmJvb2tUeXBlPyJiaW4iOiJ4bWwiLFE9UlouaW5kZXhPZihQLmJv'@; put 'b2tUeXBlKT4tMSxyZT17d29ya2Jvb2tzOltdLHNoZWV0czpbXSxjaGFydHM6W10sZGlhbG9nczpbXSxtYWNyb3M6W10scmVsczpbXSxzdHJzOltdLGNvbW1lbnRzOltdLGxpbmtzOltdLGNvcmVwcm9wczpbXSxleHRwcm9wczpbXSxjdXN0cHJvcHM6W10sdGhlbWVzOltdLHN0eWxlczpbXSxj'@; put 'YWxjY2hhaW5zOltdLHZiYTpbXSxkcmF3aW5nczpbXSxwaXZvdHM6W10scGl2b3RjYWNoZXM6W10scGl2b3RyZWNvcmRzOltdLGRhdGFtb2RlbHM6W10sY2hhcnRvYmpzOltdLGNoYXJ0c3R5bGVzOltdLGNoYXJ0Y29sb3JzOltdLGNoYXJ0ZXhzOltdLHRhYmxlczpbXSxjb25uczpbXSxjdHJs'@; put 'cHJvcHM6W10sY3VzdG9teG1scHJvcHM6W10sVE9ETzpbXSx4bWxuczoiIn07aF8oUD1QfHx7fSk7dmFyIGdlPXluKCksX2U9IiIsdmU9MDtpZihQLmNlbGxYZnM9W10sUC5jZWxsU3R5bGVYZnM9W3tuYW1lOiJOb3JtYWwifV0sZ3UoUC5jZWxsWGZzLFAuY2VsbFN0eWxlWGZzLHt9LHtyZXZz'@; put 'c2Y6e0dlbmVyYWw6MH19KSx5LlByb3BzfHwoeS5Qcm9wcz17fSksWXQoZ2UsX2U9ImRvY1Byb3BzL2NvcmUueG1sIixmdW5jdGlvbiAkaCh5LFApe3ZhciBMPVB8fHt9LFE9W0JuLFAyXSxyZT17fTtpZigheSYmIUwuUHJvcHMpcmV0dXJuIFEuam9pbigiIik7eSYmKG51bGwhPXkuQ3JlYXRl'@; put 'ZERhdGUmJmh1KCJkY3Rlcm1zOmNyZWF0ZWQiLCJzdHJpbmciPT10eXBlb2YgeS5DcmVhdGVkRGF0ZT95LkNyZWF0ZWREYXRlOlBoKHkuQ3JlYXRlZERhdGUsTC5XVEYpLHsieHNpOnR5cGUiOiJkY3Rlcm1zOlczQ0RURiJ9LFEscmUpLG51bGwhPXkuTW9kaWZpZWREYXRlJiZodSgiZGN0ZXJt'@; put 'czptb2RpZmllZCIsInN0cmluZyI9PXR5cGVvZiB5Lk1vZGlmaWVkRGF0ZT95Lk1vZGlmaWVkRGF0ZTpQaCh5Lk1vZGlmaWVkRGF0ZSxMLldURikseyJ4c2k6dHlwZSI6ImRjdGVybXM6VzNDRFRGIn0sUSxyZSkpO2Zvcih2YXIgZ2U9MDtnZSE9UGwubGVuZ3RoOysrZ2Upe3ZhciBfZT1QbFtn'@; put 'ZV0sdmU9TC5Qcm9wcyYmbnVsbCE9TC5Qcm9wc1tfZVsxXV0/TC5Qcm9wc1tfZVsxXV06eT95W19lWzFdXTpudWxsOyEwPT09dmU/dmU9IjEiOiExPT09dmU/dmU9IjAiOiJudW1iZXIiPT10eXBlb2YgdmUmJih2ZT1TdHJpbmcodmUpKSxudWxsIT12ZSYmaHUoX2VbMF0sdmUsbnVsbCxRLHJl'@; put 'KX1yZXR1cm4gUS5sZW5ndGg+MiYmKFFbUS5sZW5ndGhdPSI8L2NwOmNvcmVQcm9wZXJ0aWVzPiIsUVsxXT1RWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxRLmpvaW4oIiIpfSh5LlByb3BzLFApKSxyZS5jb3JlcHJvcHMucHVzaChfZSksem8oUC5yZWxzLDIsX2UsSGkuQ09SRV9QUk9QUyksX2U9'@; put 'ImRvY1Byb3BzL2FwcC54bWwiLCF5LlByb3BzfHwheS5Qcm9wcy5TaGVldE5hbWVzKWlmKHkuV29ya2Jvb2smJnkuV29ya2Jvb2suU2hlZXRzKXtmb3IodmFyIFNlPVtdLEhlPTA7SGU8eS5TaGVldE5hbWVzLmxlbmd0aDsrK0hlKTIhPSh5Lldvcmtib29rLlNoZWV0c1tIZV18fHt9KS5IaWRk'@; put 'ZW4mJlNlLnB1c2goeS5TaGVldE5hbWVzW0hlXSk7eS5Qcm9wcy5TaGVldE5hbWVzPVNlfWVsc2UgeS5Qcm9wcy5TaGVldE5hbWVzPXkuU2hlZXROYW1lczt5LlByb3BzLldvcmtzaGVldHM9eS5Qcm9wcy5TaGVldE5hbWVzLmxlbmd0aCxZdChnZSxfZSxmdW5jdGlvbiBwcyh5KXt2YXIgUD1b'@; put 'XSxMPVNyO3JldHVybiB5fHwoeT17fSkseS5BcHBsaWNhdGlvbj0iU2hlZXRKUyIsUFtQLmxlbmd0aF09Qm4sUFtQLmxlbmd0aF09ZzMsUjEuZm9yRWFjaChmdW5jdGlvbihRKXtpZih2b2lkIDAhPT15W1FbMV1dKXt2YXIgcmU7c3dpdGNoKFFbMl0pe2Nhc2Uic3RyaW5nIjpyZT1IcihTdHJp'@; put 'bmcoeVtRWzFdXSkpO2JyZWFrO2Nhc2UiYm9vbCI6cmU9eVtRWzFdXT8idHJ1ZSI6ImZhbHNlIn12b2lkIDAhPT1yZSYmKFBbUC5sZW5ndGhdPUwoUVswXSxyZSkpfX0pLFBbUC5sZW5ndGhdPUwoIkhlYWRpbmdQYWlycyIsTCgidnQ6dmVjdG9yIixMKCJ2dDp2YXJpYW50IiwiPHZ0Omxwc3Ry'@; put 'PldvcmtzaGVldHM8L3Z0Omxwc3RyPiIpK0woInZ0OnZhcmlhbnQiLEwoInZ0Omk0IixTdHJpbmcoeS5Xb3Jrc2hlZXRzKSkpLHtzaXplOjIsYmFzZVR5cGU6InZhcmlhbnQifSkpLFBbUC5sZW5ndGhdPUwoIlRpdGxlc09mUGFydHMiLEwoInZ0OnZlY3RvciIseS5TaGVldE5hbWVzLm1hcChm'@; put 'dW5jdGlvbihRKXtyZXR1cm4iPHZ0Omxwc3RyPiIrSHIoUSkrIjwvdnQ6bHBzdHI+In0pLmpvaW4oIiIpLHtzaXplOnkuV29ya3NoZWV0cyxiYXNlVHlwZToibHBzdHIifSkpLFAubGVuZ3RoPjImJihQW1AubGVuZ3RoXT0iPC9Qcm9wZXJ0aWVzPiIsUFsxXT1QWzFdLnJlcGxhY2UoIi8+Iiwi'@; put 'PiIpKSxQLmpvaW4oIiIpfSh5LlByb3BzKSkscmUuZXh0cHJvcHMucHVzaChfZSksem8oUC5yZWxzLDMsX2UsSGkuRVhUX1BST1BTKSx5LkN1c3Rwcm9wcyE9PXkuUHJvcHMmJmx0KHkuQ3VzdHByb3BzfHx7fSkubGVuZ3RoPjAmJihZdChnZSxfZT0iZG9jUHJvcHMvY3VzdG9tLnhtbCIsZnVu'@; put 'Y3Rpb24gZDAoeSl7dmFyIFA9W0JuLHVtXTtpZigheSlyZXR1cm4gUC5qb2luKCIiKTt2YXIgTD0xO3JldHVybiBsdCh5KS5mb3JFYWNoKGZ1bmN0aW9uKHJlKXsrK0wsUFtQLmxlbmd0aF09U3IoInByb3BlcnR5IixmdW5jdGlvbiBlYSh5LFApe3N3aXRjaCh0eXBlb2YgeSl7Y2FzZSJzdHJp'@; put 'bmciOnZhciBMPVNyKCJ2dDpscHdzdHIiLEhyKHkpKTtyZXR1cm4gUCYmKEw9TC5yZXBsYWNlKC8mcXVvdDsvZywiX3gwMDIyXyIpKSxMO2Nhc2UibnVtYmVyIjpyZXR1cm4gU3IoKDB8eSk9PXk/InZ0Omk0IjoidnQ6cjgiLEhyKFN0cmluZyh5KSkpO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIFNy'@; put 'KCJ2dDpib29sIix5PyJ0cnVlIjoiZmFsc2UiKX1pZih5IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gU3IoInZ0OmZpbGV0aW1lIixQaCh5KSk7dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gc2VyaWFsaXplICIreSl9KHlbcmVdLCEwKSx7Zm10aWQ6IntENUNERDUwNS0yRTlDLTEwMUItOTM5'@; put 'Ny0wODAwMkIyQ0Y5QUV9IixwaWQ6TCxuYW1lOkhyKHJlKX0pfSksUC5sZW5ndGg+MiYmKFBbUC5sZW5ndGhdPSI8L1Byb3BlcnRpZXM+IixQWzFdPVBbMV0ucmVwbGFjZSgiLz4iLCI+IikpLFAuam9pbigiIil9KHkuQ3VzdHByb3BzKSkscmUuY3VzdHByb3BzLnB1c2goX2UpLHpvKFAucmVs'@; put 'cyw0LF9lLEhpLkNVU1RfUFJPUFMpKTt2YXIgQmU9W10sR2U9W107ZnVuY3Rpb24gbnQocG4sS24pe0dlLnB1c2goW3ZlLTEsS24scG5dKX1mdW5jdGlvbiBkdChwbil7QmUucHVzaChbdmUtMSxwbl0pLHpvKEN0LC0xLCIuLi9waXZvdFRhYmxlcy9waXZvdFRhYmxlIitCZS5sZW5ndGgrIi4i'@; put 'K0wsSGkuUElWT1QpfWZvcih2ZT0xO3ZlPD15LlNoZWV0TmFtZXMubGVuZ3RoOysrdmUpe3ZhciBDdD17IiFpZCI6e319LGN0PXkuU2hlZXRzW3kuU2hlZXROYW1lc1t2ZS0xXV0sYnQ9KGN0fHx7fSlbIiF0eXBlIl18fCJzaGVldCI7c3dpdGNoKGJ0KXtjYXNlImNoYXJ0IjppZih0eXBlb2Yg'@; put 'd3JpdGVfZHJhd2luZ188InUiKXtZdChnZSxfZT0ieGwvY2hhcnRzaGVldHMvc2hlZXQiK3ZlKyIuIitMLGxNKHZlLTEsX2UsUCx5LEN0KSkscmUuY2hhcnRzLnB1c2goX2UpLHpvKFAud2JyZWxzLC0xLCJjaGFydHNoZWV0cy9zaGVldCIrdmUrIi4iK0wsSGkuQ1MpO2JyZWFrfWRlZmF1bHQ6'@; put 'WXQoZ2UsX2U9InhsL3dvcmtzaGVldHMvc2hlZXQiK3ZlKyIuIitMLFpMKHZlLTEsX2UsUCx5LEN0KSkscmUuc2hlZXRzLnB1c2goX2UpLHpvKFAud2JyZWxzLC0xLCJ3b3Jrc2hlZXRzL3NoZWV0Iit2ZSsiLiIrTCxIaS5XU1swXSl9aWYoY3QpeyJjaGFydCI9PWJ0JiYhY3RbIiFwb3MiXSYm'@; put 'KGN0WyIhcG9zIl09e3g6MCx5OjAsdzo5MDAsaDo2MDB9KTt2YXIgRnQ9Y3RbIiFjb21tZW50cyJdLGt0PSExO2lmKEZ0JiZGdC5sZW5ndGg+MCl7dmFyIFR0PSJ4bC9jb21tZW50cyIrdmUrIi4iK0w7WXQoZ2UsVHQsSmUoRnQsVHQsUCkpLHJlLmNvbW1lbnRzLnB1c2goVHQpLHpvKEN0LC0x'@; put 'LCIuLi9jb21tZW50cyIrdmUrIi4iK0wsSGkuQ01OVCksa3Q9ITB9KGN0WyIhY29udHJvbHMiXXx8W10pLmxlbmd0aD4wJiYoa3Q9ITApLGN0WyIhbGVnYWN5Il0mJmt0JiZZdChnZSwieGwvZHJhd2luZ3Mvdm1sRHJhd2luZyIrdmUrIi52bWwiLHFEKHZlLGN0WyIhY29tbWVudHMiXSxjdFsi'@; put 'IWNvbnRyb2xzIl0sY3QpKSxjdFsiIWxlZ2FjeUhGIl0mJm42KGdlLDAsdmUsY3RbIiFwcmludCJdLmltYWdlcyk7dmFyIFp0PSgiY2hhcnQiPT1jdFsiIXR5cGUiXT9bY3RdOmN0WyIhY2hhcnRzIl18fFtdKS5jb25jYXQoKGN0WyIhaW1hZ2VzIl18fFtdKS5tYXAoZnVuY3Rpb24ocG4pe3Jl'@; put 'dHVybiBwblsiIXR5cGUiXXx8KHBuWyIhdHlwZSJdPSJpbWFnZSIpLHBufSkpLmNvbmNhdCgoY3RbIiFzaGFwZXMiXXx8W10pLm1hcChmdW5jdGlvbihwbil7cmV0dXJuIHBuWyIhdHlwZSJdfHwocG5bIiF0eXBlIl09InNoYXBlIikscG59KSk7WnQmJlp0Lmxlbmd0aCYmKHR5cGVvZiB3cml0'@; put 'ZV9kcmF3aW5nXzwidSI/d3JpdGVfZHJhd2luZ18oZ2UscmUsdmUsY3QsWnQpOihZdChnZSwieGwvZHJhd2luZ3MvZHJhd2luZyIrdmUrIi54bWwiLFJDKCkpLHJlLmRyYXdpbmdzLnB1c2goInhsL2RyYXdpbmdzL2RyYXdpbmciK3ZlKyIueG1sIikpKSxkZWxldGUgY3RbIiFjb21tZW50cyJd'@; put 'LGRlbGV0ZSBjdFsiIWxlZ2FjeSJdLGRlbGV0ZSBjdFsiIWxlZ2FjeUhGIl19Y3QmJmN0WyIhcGl2b3RzIl0mJiJ4bWwiPT1MJiZ0eXBlb2Ygd3JpdGVfcGl2b3RfeG1sPCJ1IiYmY3RbIiFwaXZvdHMiXS5mb3JFYWNoKGR0KSxDdFsiIWlkIl0ucklkMSYmWXQoZ2UsQmkoX2UpLFhhKEN0KSks'@; put 'Y3QmJmN0WyIhdGFibGVzIl0mJiJ4bWwiPT1MJiZjdFsiIXRhYmxlcyJdLmZvckVhY2gobnQpfXJldHVybiBudWxsIT1QLlN0cmluZ3MmJlAuU3RyaW5ncy5sZW5ndGg+MCYmKFl0KGdlLF9lPSJ4bC9zaGFyZWRTdHJpbmdzLiIrTCxXTChQLlN0cmluZ3MsX2UsUCkpLHJlLnN0cnMucHVzaChf'@; put 'ZSksem8oUC53YnJlbHMsLTEsInNoYXJlZFN0cmluZ3MuIitMLEhpLlNTVCkpLCJ4bWwiPT1MJiZ0eXBlb2Ygd3JpdGVfcGl2b3RfeG1sPCJ1IiYmd3JpdGVfcGl2b3RfeG1sKEJlLHksZ2UscmUsUCksInhtbCI9PUwmJmZ1bmN0aW9uIHE0KHksUCxMLFEpe3kuZm9yRWFjaChmdW5jdGlvbihy'@; put 'ZSxnZSl7dmFyIF9lPVAuU2hlZXRzW1AuU2hlZXROYW1lc1tyZVswXV1dLHZlPSJ4bC90YWJsZXMvdGFibGUiKyhyZVswXSsxKSsiXyIrcmVbMV0rIi54bWwiO1EudGFibGVzLnB1c2godmUpO3ZhciBTZT1yZVsyXS5yZWZ8fF9lWyIhcmVmIl07InN0cmluZyIhPXR5cGVvZiBTZSYmKFNlPU9v'@; put 'KFNlKSk7dmFyIEhlPU9pKFNlKSxCZT1yZVsyXS5uYW1lfHwic2pzdGJsXyIrcmVbMF0rIl8iK3JlWzFdLEdlPVtCbl0sbnQ9IWhuKHJlWzJdLmhlYWRlciksZHQ9bnQmJiFobihyZVsyXS5maWx0ZXIpO0dlLnB1c2goJzx0YWJsZSB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1h'@; put 'dHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiBpZD0iJysoZ2UrMSkrJyIgbmFtZT0iJytIcihCZSkrJyIgZGlzcGxheU5hbWU9IicrSHIoQmUpKyciIHJlZj0iJytTZSsnIiAnKyhudWxsIT1yZVsyXS5oZWFkZXImJjEhPXJlWzJdLmhlYWRlcj8naGVhZGVyUm93Q291bnQ9IicrKHJl'@; put 'WzJdLmhlYWRlcnx8MCkrJyIgJzoiIikrIj4iKSxkdCYmR2UucHVzaCgnPGF1dG9GaWx0ZXIgcmVmPSInK1NlKyciLz4nKSxHZS5wdXNoKCc8dGFibGVDb2x1bW5zIGNvdW50PSInKyhIZS5lLmMtSGUucy5jKzEpKyciPicpO2Zvcih2YXIgQ3Q9W10sY3Q9SGUucy5jO2N0PD1IZS5lLmM7Kytj'@; put 'dClpZihudCl7Zm9yKHZhciBidD1kaSh7cjpIZS5zLnIsYzpjdH0pLEZ0PV9lW2J0XSxrdD1yZVsyXS5jb2xzJiZyZVsyXS5jb2xzW2N0LUhlLnMuY10mJnJlWzJdLmNvbHNbY3QtSGUucy5jXS5uYW1lfHxGdCYmKEZ0Lnd8fEZ0LnYpfHwiQ29sdW1uICIrKGN0LUhlLnMuYysxKSxUdD1rdCxa'@; put 'dD0xO0N0LmluZGV4T2YoVHQpPi0xJiYrK1p0PDE2Mzg0OylUdD1rdCtadDtpZihUdCE9a3QpdGhyb3cidGFibGUgY29sdW1ucyAiK2N0KyIgYW5kICIrKEN0LmluZGV4T2Yoa3QpK0hlLnMuYykrIiBoYXZlIHRoZSBzYW1lIGhlYWRlciAnIitrdCsiJzsgdHJ5IHNldHRpbmcgY2VsbCAiK2J0'@; put 'KyIgdG8gJyIrVHQrIiciO0N0LnB1c2goVHQpLEdlLnB1c2goJzx0YWJsZUNvbHVtbiBpZD0iJysocmVbMl0uY29scyYmcmVbMl0uY29sc1tjdC1IZS5zLmNdJiZudWxsIT1yZVsyXS5jb2xzW2N0LUhlLnMuY10uaWQ/cmVbMl0uY29sc1tjdC1IZS5zLmNdLmlkOmN0LUhlLnMuYysxKSsnIiBu'@; put 'YW1lPSInK0hyKFR0KSsnIi8+Jyl9ZWxzZSBHZS5wdXNoKHJlWzJdLmNvbHMmJnJlWzJdLmNvbHNbY3QtSGUucy5jXT8nPHRhYmxlQ29sdW1uIGlkPSInK3JlWzJdLmNvbHNbY3QtSGUucy5jXS5pZCsnIiBuYW1lPSInK3JlWzJdLmNvbHNbY3QtSGUucy5jXS5uYW1lKyciLz4nOic8dGFibGVD'@; put 'b2x1bW4gaWQ9IicrKGN0LUhlLnMuYysxKSsnIiB1bmlxdWVOYW1lPSInKyhjdC1IZS5zLmMrMSkrJyIgbmFtZT0iJysoY3QtSGUucy5jKzEpKyciLz4nKTtHZS5wdXNoKCI8L3RhYmxlQ29sdW1ucz4iKTt2YXIgS249KyghMSE9PShyZVsyXS5zdHlsZXx8e30pLnJvd3N0cmlwZSksdW49KyEh'@; put 'KHJlWzJdLnN0eWxlfHx7fSkuY29sc3RyaXBlLHFuPSshIShyZVsyXS5zdHlsZXx8e30pLmNvbGZpcnN0LHpuPSshIShyZVsyXS5zdHlsZXx8e30pLmNvbGxhc3Qsa249KHJlWzJdLnN0eWxlfHx7fSkubmFtZXx8Ik1lZGl1bTkiO2tuPWtuLm1hdGNoKC9eKExpZ2h0fE1lZGl1bXxEYXJrKVxk'@; put 'KyQvKT8iVGFibGVTdHlsZSIra246a24sR2UucHVzaCgnPHRhYmxlU3R5bGVJbmZvIG5hbWU9Iicra24rJyIgc2hvd0ZpcnN0Q29sdW1uPSInK3FuKyciIHNob3dMYXN0Q29sdW1uPSInK3puKyciIHNob3dSb3dTdHJpcGVzPSInK0tuKyciIHNob3dDb2x1bW5TdHJpcGVzPSInK3VuKyciLz4n'@; put 'KSxHZS5wdXNoKCI8L3RhYmxlPiIpLFl0KEwsdmUsR2Uuam9pbigiIikpfSl9KEdlLHksZ2UscmUpLCJ4bWwiPT1MJiYoeS5FeHRlcm5hbFdCfHxbXSkubGVuZ3RoJiZmdW5jdGlvbiBXOSh5LFAsTCl7TC5saW5rc3x8KEwubGlua3M9W10pLHkuRXh0ZXJuYWxXQiYmeS5FeHRlcm5hbFdCLmZv'@; put 'ckVhY2goZnVuY3Rpb24oUSxyZSl7dmFyIGdlPSIveGwvZXh0ZXJuYWxMaW5rcy9fcmVscy9leHRlcm5hbExpbmsiKyhyZSsxKSsiLnhtbC5yZWxzIixfZT17fTt6byhfZSwtMSxRLlRhcmdldCxRLk1pc3Npbmc/SGkuWE1JU1M6SGkuWFBBVEgpLFl0KFAsbGMoZ2UpLFhhKF9lKSk7dmFyIHZl'@; put 'PSIveGwvZXh0ZXJuYWxMaW5rcy9leHRlcm5hbExpbmsiKyhyZSsxKSsiLnhtbCI7TC5saW5rcy5wdXNoKHZlKSxZdChQLGxjKHZlKSxmdW5jdGlvbiBJQyh5KXt2YXIgUD1bQm4sdDZdO3JldHVybih5LlNoZWV0TmFtZXN8fFtdKS5sZW5ndGgmJihQLnB1c2goJzxleHRlcm5hbEJvb2sgeG1s'@; put 'bnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyIgcjppZD0icklkMSI+JyksUC5wdXNoKCI8c2hlZXROYW1lcz4iKSx5LlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihMKXtQLnB1c2goJzxzaGVldE5hbWUg'@; put 'dmFsPSInK0hyKEwpKyciLz4nKX0pLFAucHVzaCgiPC9zaGVldE5hbWVzPiIpLFAucHVzaCgiPHNoZWV0RGF0YVNldD4iKSx5LlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihMLFEpe3ZhciByZT15LlNoZWV0c1tMXSxnZT17c2hlZXRJZDpRfSxfZT1udWxsO2lmKG51bGw9PXJlKWdlLnJl'@; put 'ZnJlc2hFcnJvcj0xO2Vsc2UgaWYocmVbIiFyZWYiXSl7dmFyIHZlPVdzKHJlWyIhcmVmIl0pO19lPSIiO2Zvcih2YXIgU2U9dmUucy5yO1NlPD12ZS5lLnI7KytTZSl7Zm9yKHZhciBIZT0iIixCZT12ZS5zLmM7QmU8PXZlLmUuYzsrK0JlKXt2YXIgR2U9ZGkoe3I6U2UsYzpCZX0pO3JlW0dl'@; put 'XSYmKEhlfHwoSGU9Jzxyb3cgcj0iJysoU2UrMSkrJyI+JyksSGUrPSc8Y2VsbCByPSInK0dlKyciJysocmVbR2VdLnQ/JyB0PSInK3JlW0dlXS50KyciJzoiIikrIj48dj4iK0hyKHJlW0dlXS52KSsiPC92PjwvY2VsbD4iKX1IZSYmKF9lKz1IZSsiPC9yb3c+Iil9fVAucHVzaChTcigic2hl'@; put 'ZXREYXRhIixfZSxnZSkpfSksUC5wdXNoKCI8L3NoZWV0RGF0YVNldD4iKSxQLnB1c2goIjwvZXh0ZXJuYWxCb29rPiIpKSxQLmxlbmd0aD4yJiYoUFtQLmxlbmd0aF09IjwvZXh0ZXJuYWxMaW5rPiIsUFsxXT1QWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxQLmpvaW4oIiIpfShRKSl9KX0oeSxn'@; put 'ZSxyZSksInhtbCI9PUwmJmZ1bmN0aW9uIFRDKHkpe3ZhciBQLEw7eS5Xb3JrYm9va3x8KHkuV29ya2Jvb2s9e05hbWVzOltdfSkseS5Xb3JrYm9vay5OYW1lc3x8KHkuV29ya2Jvb2suTmFtZXM9W10pO2Zvcih2YXIgUT15Lldvcmtib29rLk5hbWVzLHJlPTA7cmU8eS5TaGVldE5hbWVzLmxl'@; put 'bmd0aDsrK3JlKXt2YXIgZ2U9eS5TaGVldE5hbWVzW3JlXSxfZT15LlNoZWV0c1tnZV07aWYoX2UmJl9lWyIhcHJpbnQiXSl7dmFyIHZlPSInIitnZSsiJyEiLFNlPV9lWyIhcHJpbnQiXTtpZihTZSl7dmFyIEhlPSEoUD1TZS5hcmVhKSxCZT0hKEw9U2UudGl0bGVzKSxHZT1QPyJzdHJpbmci'@; put 'PT10eXBlb2YgUD9QOk9vKFApOiIiO2lmKFAmJihRLmZvckVhY2goZnVuY3Rpb24oZHQpe2R0LlNoZWV0PT1yZSYmIUhlJiYiX3hsbm0uUHJpbnRfQXJlYSI9PWR0Lk5hbWUmJihIZT0hMCxkdC5SZWY9dmUrR2UpfSksSGV8fFEucHVzaCh7TmFtZToiX3hsbm0uUHJpbnRfQXJlYSIsUmVmOnZl'@; put 'K0dlLFNoZWV0OnJlfSkpLEwpe3ZhciBudD0iIjtMLnMuYz4tMSYmTC5lLmM+LTEmJihudCs9dmUrTnMoTC5zLmMpKyI6IitOcyhMLmUuYykrIiwiKSxMLnMucj4tMSYmTC5lLnI+LTEmJihudCs9dmUrSHMoTC5zLnIpKyI6IitIcyhMLmUucikrIiwiKSxudD1udC5zbGljZSgwLC0xKSxRLmZv'@; put 'ckVhY2goZnVuY3Rpb24oZHQpe2R0LlNoZWV0PT1yZSYmIUJlJiYiX3hsbm0uUHJpbnRfVGl0bGVzIj09ZHQuTmFtZSYmKEhlPSEwLGR0LlJlZj1udCl9KSxCZXx8US5wdXNoKHtOYW1lOiJfeGxubS5QcmludF9UaXRsZXMiLFJlZjpudCxTaGVldDpyZX0pfX19fX0oeSksWXQoZ2UsX2U9Inhs'@; put 'L3dvcmtib29rLiIrTCxmdW5jdGlvbiBxdih5LFAsTCl7cmV0dXJuKCIuYmluIj09PVAuc2xpY2UoLTQpP0hMOlJMKSh5LEwpfSh5LF9lLFApKSxyZS53b3JrYm9va3MucHVzaChfZSksem8oUC5yZWxzLDEsX2UsSGkuV0IpLFl0KGdlLF9lPSJ4bC90aGVtZS90aGVtZTEueG1sIixyZih5LlRo'@; put 'ZW1lcyxQKSkscmUudGhlbWVzLnB1c2goX2UpLHpvKFAud2JyZWxzLC0xLCJ0aGVtZS90aGVtZTEueG1sIixIaS5USEVNRSksWXQoZ2UsX2U9InhsL3N0eWxlcy4iK0wsZnVuY3Rpb24gWUwoeSxQLEwpe3JldHVybigiLmJpbiI9PT1QLnNsaWNlKC00KT9QRDpwQykoeSxMKX0oeSxfZSxQKSks'@; put 'cmUuc3R5bGVzLnB1c2goX2UpLHpvKFAud2JyZWxzLC0xLCJzdHlsZXMuIitMLEhpLlNUWSkseS52YmFyYXcmJlEmJihZdChnZSxfZT0ieGwvdmJhUHJvamVjdC5iaW4iLHkudmJhcmF3KSxyZS52YmEucHVzaChfZSksem8oUC53YnJlbHMsLTEsInZiYVByb2plY3QuYmluIixIaS5WQkEpKSx5'@; put 'Lm1vZGVsJiZ5Lm1vZGVsLmxlbmd0aCYmKFl0KGdlLCJ4bC9tb2RlbC9pdGVtLmRhdGEiLHkubW9kZWwpLHpvKFAud2JyZWxzLC0xLCJtb2RlbC9pdGVtLmRhdGEiLEhpLlBXUlBEKSkseS5jb25uJiYoWXQoZ2UsInhsL2Nvbm5lY3Rpb25zLnhtbCIseS5jb25uKSxyZS5jb25ucy5wdXNoKCIv'@; put 'eGwvY29ubmVjdGlvbnMueG1sIiksem8oUC53YnJlbHMsLTEsImNvbm5lY3Rpb25zLnhtbCIsSGkuQ09OTikpLHkuQ3VzdG9tWE1MJiZ5LkN1c3RvbVhNTC5mb3JFYWNoKGZ1bmN0aW9uKHBuLEtuKXtpZihZdChnZSwiY3VzdG9tWG1sL2l0ZW0iKyhLbisxKSsiLnhtbCIscG4uZGF0YSksem8o'@; put 'UC53YnJlbHMsLTEsIi4uL2N1c3RvbVhtbC9pdGVtIisoS24rMSkrIi54bWwiLEhpLkNYTUwpLHBuLnByb3BzKXtZdChnZSwiY3VzdG9tWG1sL2l0ZW1Qcm9wcyIrKEtuKzEpKyIueG1sIixwbi5wcm9wcykscmUuY3VzdG9teG1scHJvcHMucHVzaCgiL2N1c3RvbVhtbC9pdGVtUHJvcHMiKyhL'@; put 'bisxKSsiLnhtbCIpO3ZhciB1bj17fTt6byh1biwtMSwiaXRlbVByb3BzIisoS24rMSkrIi54bWwiLEhpLkNYTUxQKSxZdChnZSwiY3VzdG9tWG1sL19yZWxzL2l0ZW0iKyhLbisxKSsiLnhtbC5yZWxzIixYYSh1bikpfX0pLFl0KGdlLCJbQ29udGVudF9UeXBlc10ueG1sIixmdW5jdGlvbiBy'@; put 'OSh5LFAsTCl7dmFyIHJlLFE9W107THx8KFFbUS5sZW5ndGhdPUJuLFFbUS5sZW5ndGhdPWYzLFE9US5jb25jYXQobjkpKTt2YXIgZ2U9ZnVuY3Rpb24oU2Upe3lbU2VdJiZ5W1NlXS5sZW5ndGg+MCYmKFFbUS5sZW5ndGhdPVNyKCJPdmVycmlkZSIsbnVsbCx7UGFydE5hbWU6KCIvIj09KHJl'@; put 'PXlbU2VdWzBdKVswXT8iIjoiLyIpK3JlLENvbnRlbnRUeXBlOklkW1NlXVtQLmJvb2tUeXBlfHwieGxzeCJdfSkpfSxfZT1mdW5jdGlvbihTZSl7KHlbU2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihIZSl7UVtRLmxlbmd0aF09U3IoIk92ZXJyaWRlIixudWxsLHtQYXJ0TmFtZTooIi8iPT1I'@; put 'ZVswXT8iIjoiLyIpK0hlLENvbnRlbnRUeXBlOklkW1NlXVtQLmJvb2tUeXBlfHwieGxzeCJdfSl9KX0sdmU9ZnVuY3Rpb24oU2Upeyh5W1NlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oSGUpe1FbUS5sZW5ndGhdPVNyKCJPdmVycmlkZSIsbnVsbCx7UGFydE5hbWU6KCIvIj09SGVbMF0/IiI6'@; put 'Ii8iKStIZSxDb250ZW50VHlwZTpOY1tTZV1bMF19KX0pfTtyZXR1cm4gZ2UoIndvcmtib29rcyIpLF9lKCJzaGVldHMiKSxfZSgiY2hhcnRzIiksdmUoInRoZW1lcyIpLFsic3RycyIsInN0eWxlcyIsImNvbm5zIl0uZm9yRWFjaChnZSksWyJjb3JlcHJvcHMiLCJleHRwcm9wcyIsImN1c3Rw'@; put 'cm9wcyJdLmZvckVhY2godmUpLHZlKCJ2YmEiKSx2ZSgiY29tbWVudHMiKSx2ZSgiZHJhd2luZ3MiKSxfZSgidGFibGVzIiksX2UoInBpdm90cyIpLF9lKCJwaXZvdGNhY2hlcyIpLF9lKCJwaXZvdHJlY29yZHMiKSx2ZSgiZGF0YW1vZGVscyIpLHZlKCJjdHJscHJvcHMiKSx2ZSgiY2hhcnRv'@; put 'YmpzIiksdmUoImNoYXJ0c3R5bGVzIiksdmUoImNoYXJ0Y29sb3JzIiksdmUoImNoYXJ0ZXhzIiksX2UoImxpbmtzIiksdmUoImN1c3RvbXhtbHByb3BzIiksIUwmJlEubGVuZ3RoPjImJihRW1EubGVuZ3RoXT0iPC9UeXBlcz4iLFFbMV09UVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksUS5qb2lu'@; put 'KCIiKX0ocmUsUCkpLFl0KGdlLCJfcmVscy8ucmVscyIsWGEoUC5yZWxzKSksWXQoZ2UsInhsL19yZWxzL3dvcmtib29rLiIrTCsiLnJlbHMiLFhhKFAud2JyZWxzKSksZGVsZXRlIFAuRm9udHMsZGVsZXRlIFAuRmlsbHMsZGVsZXRlIFAuQm9yZGVycyxkZWxldGUgUC5yZXZzc2YsZGVsZXRl'@; put 'IFAuc3NmLGdlfWZ1bmN0aW9uIGZfKHksUCl7dmFyIEw9IiI7c3dpdGNoKChQfHx7fSkudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm5beVswXSx5WzFdLHlbMl0seVszXSx5WzRdLHlbNV0seVs2XSx5WzddXTtjYXNlImJhc2U2NCI6TD1zZS5kZWNvZGUo'@; put 'eS5zbGljZSgwLDEyKSk7YnJlYWs7Y2FzZSJiaW5hcnkiOkw9eTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIisoUCYmUC50eXBlfHwidW5kZWZpbmVkIikpfXJldHVybltMLmNoYXJDb2RlQXQoMCksTC5jaGFyQ29kZUF0KDEpLEwuY2hhckNvZGVB'@; put 'dCgyKSxMLmNoYXJDb2RlQXQoMyksTC5jaGFyQ29kZUF0KDQpLEwuY2hhckNvZGVBdCg1KSxMLmNoYXJDb2RlQXQoNiksTC5jaGFyQ29kZUF0KDcpXX1mdW5jdGlvbiBOTSh5LFApe3ZhciBMPTA7ZTpmb3IoO0w8eS5sZW5ndGg7KXN3aXRjaCh5LmNoYXJDb2RlQXQoTCkpe2Nhc2UgMTA6Y2Fz'@; put 'ZSAxMzpjYXNlIDMyOisrTDticmVhaztjYXNlIDYwOnJldHVybiBqYSh5LnNsaWNlKEwpLFApO2RlZmF1bHQ6YnJlYWsgZX1yZXR1cm4gQjEudG9fd29ya2Jvb2soeSxQKX1mdW5jdGlvbiBwXyh5LFAsTCxRKXtyZXR1cm4gUT8oTC50eXBlPSJzdHJpbmciLEIxLnRvX3dvcmtib29rKHksTCkp'@; put 'OkIxLnRvX3dvcmtib29rKFAsTCl9ZnVuY3Rpb24gX2YoeSxQKXt2YXIgTD13LmdldGxvY2FsZSgpO0oodyksdy5zZXRsb2NhbGUoTCksVigpO3ZhciBRPVB8fHt9O2lmKHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJnkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gX2YobmV3IFVpbnQ4'@; put 'QXJyYXkoeSksKChRPW9uKFEpKS50eXBlPSJhcnJheSIsUSkpO3ZhciBnZSxyZT15LF9lPSExO2lmKEZtKG5mPVEuUFBJfHxMOSksUS5jZWxsU3R5bGVzJiYoUS5jZWxsTkY9ITAsUS5zaGVldFN0dWJzPSEwKSxaMz17fSxRLmRhdGVORiYmKFozLmRhdGVORj1RLmRhdGVORiksUS50eXBlfHwo'@; put 'US50eXBlPWhlJiZCdWZmZXIuaXNCdWZmZXIoeSk/ImJ1ZmZlciI6ImJhc2U2NCIpLCJmaWxlIj09US50eXBlJiYoUS50eXBlPWhlPyJidWZmZXIiOiJiaW5hcnkiLHJlPWZ1bmN0aW9uIFFlKHkpe2lmKHR5cGVvZiBXZTwidSIpcmV0dXJuIFdlLnJlYWRGaWxlU3luYyh5KTtpZih0eXBlb2Yg'@; put 'JDwidSImJnR5cGVvZiBGaWxlPCJ1IiYmdHlwZW9mIEZvbGRlcjwidSIpdHJ5e3ZhciBQPUZpbGUoeSk7UC5vcGVuKCJyIiksUC5lbmNvZGluZz0iYmluYXJ5Ijt2YXIgTD1QLnJlYWQoKTtyZXR1cm4gUC5jbG9zZSgpLEx9Y2F0Y2goUSl7aWYoIVEubWVzc2FnZXx8IVEubWVzc2FnZS5tYXRj'@; put 'aCgvb25zdHJ1Y3QvKSl0aHJvdyBRfXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGFjY2VzcyBmaWxlICIreSl9KHkpKSwic3RyaW5nIj09US50eXBlJiYoX2U9ITAsUS50eXBlPSJiaW5hcnkiLFEuY29kZXBhZ2U9NjUwMDEscmU9ZnVuY3Rpb24gTVIoeSl7cmV0dXJuIHkubWF0Y2goL1teXHgw'@; put 'MC1ceDdGXS8pP0xvKHkpOnl9KHkpKSwiYXJyYXkiPT1RLnR5cGUmJnR5cGVvZiBVaW50OEFycmF5PCJ1IiYmeSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkmJnR5cGVvZiBBcnJheUJ1ZmZlcjwidSIpe3ZhciB2ZT1uZXcgQXJyYXlCdWZmZXIoMyksU2U9bmV3IFVpbnQ4QXJyYXkodmUpO2lmKFNl'@; put 'LmZvbz0iYmFyIiwhU2UuZm9vKXJldHVybihRPW9uKFEpKS50eXBlPSJhcnJheSIsX2YoQyhyZSksUSl9c3dpdGNoKChnZT1mXyhyZSxRKSlbMF0pe2Nhc2UgMjA4OmlmKDIwNz09PWdlWzFdJiYxNz09PWdlWzJdJiYyMjQ9PT1nZVszXSYmMTYxPT09Z2VbNF0mJjE3Nz09PWdlWzVdJiYyNj09'@; put 'PWdlWzZdJiYyMjU9PT1nZVs3XSlyZXR1cm4gZnVuY3Rpb24geVIoeSxQKXtyZXR1cm4gamUuZmluZCh5LCJFbmNyeXB0ZWRQYWNrYWdlIik/dlIoeSxQKTpfNSh5LFApfShqZS5yZWFkKHJlLFEpLFEpO2JyZWFrO2Nhc2UgOTppZihnZVsxXTw9OClyZXR1cm4gXzUocmUsUSk7YnJlYWs7Y2Fz'@; put 'ZSA2MDpyZXR1cm4gamEocmUsUSk7Y2FzZSA3MzppZig3Mz09PWdlWzFdJiY0Mj09PWdlWzJdJiYwPT09Z2VbM10pdGhyb3cgbmV3IEVycm9yKCJUSUZGIEltYWdlIEZpbGUgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTtpZig2OD09PWdlWzFdKXJldHVybiBmdW5jdGlvbiBwWih5LFApe3ZhciBM'@; put 'PVB8fHt9LFE9ISFMLldURjtMLldURj0hMDt0cnl7dmFyIHJlPUU5LnRvX3dvcmtib29rKHksTCk7cmV0dXJuIEwuV1RGPVEscmV9Y2F0Y2goZ2Upe2lmKEwuV1RGPVEsIWdlLm1lc3NhZ2UubWF0Y2goL1NZTEsgYmFkIHJlY29yZCBJRC8pJiZRKXRocm93IGdlO3JldHVybiBCMS50b193b3Jr'@; put 'Ym9vayh5LFApfX0ocmUsUSk7YnJlYWs7Y2FzZSA4NDppZig2NT09PWdlWzFdJiY2Nj09PWdlWzJdJiY3Nj09PWdlWzNdKXJldHVybiBNMy50b193b3JrYm9vayhyZSxRKTticmVhaztjYXNlIDgwOnJldHVybiA3NT09PWdlWzFdJiZnZVsyXTw5JiZnZVszXTw5P2Z1bmN0aW9uIHdSKHksUCl7'@; put 'dmFyIFE9eSxyZT1QfHx7fTtyZXR1cm4gcmUudHlwZXx8KHJlLnR5cGU9aGUmJkJ1ZmZlci5pc0J1ZmZlcih5KT8iYnVmZmVyIjoiYmFzZTY0IiksSE0oeG4oUSxyZSkscmUpfShyZSxRKTpwXyh5LHJlLFEsX2UpO2Nhc2UgMjM5OnJldHVybiA2MD09PWdlWzNdP2phKHJlLFEpOnBfKHkscmUs'@; put 'USxfZSk7Y2FzZSAyNTU6aWYoMjU0PT09Z2VbMV0pcmV0dXJuIGZ1bmN0aW9uIFNSKHksUCl7dmFyIEw9eTtyZXR1cm4iYmFzZTY0Ij09UC50eXBlJiYoTD1zZS5kZWNvZGUoTCkpLEw9Y3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCxMLnNsaWNlKDIpLCJzdHIiKSxQLnR5cGU9ImJpbmFyeSIs'@; put 'Tk0oTCxQKX0ocmUsUSk7YnJlYWs7Y2FzZSAwOmlmKDA9PT1nZVsxXSYmZ2VbMl0+PTImJjA9PT1nZVszXSlyZXR1cm4gVG0udG9fd29ya2Jvb2socmUsUSk7YnJlYWs7Y2FzZSAzOmNhc2UgMTMxOmNhc2UgMTM5OmNhc2UgMTQwOnJldHVybiBCMi50b193b3JrYm9vayhyZSxRKTtjYXNlIDEy'@; put 'MzppZig5Mj09PWdlWzFdJiYxMTQ9PT1nZVsyXSYmMTE2PT09Z2VbM10pcmV0dXJuIE9tLnRvX3dvcmtib29rKHJlLFEpO2JyZWFrO2Nhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBmdW5jdGlvbiBDUih5LFApe3ZhciBMPSIiLFE9Zl8oeSxQKTtzd2l0Y2goUC50eXBlKXtjYXNlImJh'@; put 'c2U2NCI6TD1zZS5kZWNvZGUoeSk7YnJlYWs7Y2FzZSJiaW5hcnkiOkw9eTticmVhaztjYXNlImJ1ZmZlciI6TD15LnRvU3RyaW5nKCJiaW5hcnkiKTticmVhaztjYXNlImFycmF5IjpMPVB0KHkpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK1Au'@; put 'dHlwZSl9cmV0dXJuIDIzOT09UVswXSYmMTg3PT1RWzFdJiYxOTE9PVFbMl0mJihMPVBpKEwpKSxOTShMLFApfShyZSxRKX1yZXR1cm4gQjIudmVyc2lvbnMuaW5kZXhPZihnZVswXSk+LTEmJmdlWzJdPD0xMiYmZ2VbM108PTMxP0IyLnRvX3dvcmtib29rKHJlLFEpOnBfKHkscmUsUSxfZSl9'@; put 'ZnVuY3Rpb24gZ18oeSxQKXt2YXIgTD1QfHx7fTtyZXR1cm4gTC50eXBlPSJmaWxlIixfZih5LEwpfWZ1bmN0aW9uIG1fKHksUCl7c3dpdGNoKFAudHlwZSl7Y2FzZSJiYXNlNjQiOmNhc2UiYmluYXJ5IjpicmVhaztjYXNlImJ1ZmZlciI6Y2FzZSJhcnJheSI6UC50eXBlPSIiO2JyZWFrO2Nh'@; put 'c2UiZmlsZSI6cmV0dXJuIFllKFAuZmlsZSxqZS53cml0ZSh5LHt0eXBlOmhlPyJidWZmZXIiOiIifSkpO2Nhc2Uic3RyaW5nIjp0aHJvdyBuZXcgRXJyb3IoIidzdHJpbmcnIG91dHB1dCB0eXBlIGludmFsaWQgZm9yICciK1AuYm9va1R5cGUrIicgZmlsZXMiKTtkZWZhdWx0OnRocm93IG5l'@; put 'dyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitQLnR5cGUpfXJldHVybiBqZS53cml0ZSh5LFApfWZ1bmN0aW9uIGUxKHksUCxMKXtMfHwoTD0iIik7dmFyIFE9TCt5O3N3aXRjaChQLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gc2UuZW5jb2RlKExvKFEpKTtjYXNlImJpbmFyeSI6cmV0'@; put 'dXJuIExvKFEpO2Nhc2Uic3RyaW5nIjpyZXR1cm4geTtjYXNlImZpbGUiOnJldHVybiBZZShQLmZpbGUsUSwidXRmOCIpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gaGU/dWUoUSwidXRmOCIpOmUxKFEse3R5cGU6ImJpbmFyeSJ9KS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKHJlKXtyZXR1cm4gcmUu'@; put 'Y2hhckNvZGVBdCgwKX0pfXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitQLnR5cGUpfWZ1bmN0aW9uIHZfKHksUCl7c3dpdGNoKFAudHlwZSl7Y2FzZSJzdHJpbmciOmNhc2UiYmFzZTY0IjpjYXNlImJpbmFyeSI6Zm9yKHZhciBMPSIiLFE9MDtRPHkubGVuZ3RoOysrUSlM'@; put 'Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKHlbUV0pO3JldHVybiJiYXNlNjQiPT1QLnR5cGU/c2UuZW5jb2RlKEwpOiJzdHJpbmciPT1QLnR5cGU/UGkoTCk6TDtjYXNlImZpbGUiOnJldHVybiBZZShQLmZpbGUseSk7Y2FzZSJidWZmZXIiOnJldHVybiB5O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9y'@; put 'KCJVbnJlY29nbml6ZWQgdHlwZSAiK1AudHlwZSl9fWZ1bmN0aW9uIEM1KHksUCl7VigpLGZ1bmN0aW9uIERMKHkpe2lmKCF5fHwheS5TaGVldE5hbWVzfHwheS5TaGVldHMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFdvcmtib29rIik7aWYoIXkuU2hlZXROYW1lcy5sZW5ndGgpdGhyb3cg'@; put 'bmV3IEVycm9yKCJXb3JrYm9vayBpcyBlbXB0eSIpOyFmdW5jdGlvbiBZdih5LFAsTCl7eS5mb3JFYWNoKGZ1bmN0aW9uKFEscmUpe1p2KFEpO2Zvcih2YXIgZ2U9MDtnZTxyZTsrK2dlKWlmKFE9PXlbZ2VdKXRocm93IG5ldyBFcnJvcigiRHVwbGljYXRlIFNoZWV0IE5hbWU6ICIrUSk7aWYo'@; put 'TCl7dmFyIF9lPVAmJlBbcmVdJiZQW3JlXS5Db2RlTmFtZXx8UTtpZig5NT09X2UuY2hhckNvZGVBdCgwKSYmX2UubGVuZ3RoPjIyKXRocm93IG5ldyBFcnJvcigiQmFkIENvZGUgTmFtZTogV29ya3NoZWV0IitfZSl9fSl9KHkuU2hlZXROYW1lcyx5Lldvcmtib29rJiZ5Lldvcmtib29rLlNo'@; put 'ZWV0c3x8W10sISF5LnZiYXJhdyk7Zm9yKHZhciBMPTA7TDx5LlNoZWV0TmFtZXMubGVuZ3RoOysrTClzNSh5LlNoZWV0c1t5LlNoZWV0TmFtZXNbTF1dLDAsTCl9KHkpO3ZhciBMPVB8fHt9O2lmKEwuY2VsbFN0eWxlcyYmKEwuY2VsbE5GPSEwLEwuc2hlZXRTdHVicz0hMCksImFycmF5Ij09'@; put 'TC50eXBlKXtMLnR5cGU9ImJpbmFyeSI7dmFyIFE9QzUoeSxMKTtyZXR1cm4gTC50eXBlPSJhcnJheSIsSChRKX1zd2l0Y2goTC5ib29rVHlwZXx8Inhsc2IiKXtjYXNlInhtbCI6Y2FzZSJ4bG1sIjpyZXR1cm4gZTEoSkwoeSxMKSxMKTtjYXNlInNsayI6Y2FzZSJzeWxrIjpyZXR1cm4gZTEo'@; put 'dVIoeSxMKSxMKTtjYXNlImh0bSI6Y2FzZSJodG1sIjpyZXR1cm4gZTEobFIoeSxMKSxMKTtjYXNlInR4dCI6cmV0dXJuIGZ1bmN0aW9uIGpNKHksUCl7c3dpdGNoKFAudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBzZS5lbmNvZGUoeSk7Y2FzZSJiaW5hcnkiOmNhc2Uic3RyaW5nIjpyZXR1'@; put 'cm4geTtjYXNlImZpbGUiOnJldHVybiBZZShQLmZpbGUseSwiYmluYXJ5Iik7Y2FzZSJidWZmZXIiOnJldHVybiBoZT91ZSh5LCJiaW5hcnkiKTp5LnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oTCl7cmV0dXJuIEwuY2hhckNvZGVBdCgwKX0pfXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVk'@; put 'IHR5cGUgIitQLnR5cGUpfShoUih5LEwpLEwpO2Nhc2UiY3N2IjpyZXR1cm4gZTEoY1IoeSxMKSxMLCJcdWZlZmYiKTtjYXNlImRpZiI6cmV0dXJuIGUxKGRSKHksTCksTCk7Y2FzZSJkYmYiOnJldHVybiB2XyhJTSh5LEwpLEwpO2Nhc2UicHJuIjpyZXR1cm4gZTEobF8oeSxMKSxMKTtjYXNl'@; put 'InJ0ZiI6cmV0dXJuIGUxKHk1KHksTCksTCk7Y2FzZSJldGgiOnJldHVybiBlMShmUih5LEwpLEwpO2Nhc2UiZm9kcyI6cmV0dXJuIGUxKF8wKHksTCksTCk7Y2FzZSJiaWZmMiI6TC5iaWZmfHwoTC5iaWZmPTIpO2Nhc2UiYmlmZjMiOkwuYmlmZnx8KEwuYmlmZj0zKTtjYXNlImJpZmY0Ijpy'@; put 'ZXR1cm4gTC5iaWZmfHwoTC5iaWZmPTQpLHZfKGlfKHksTCksTCk7Y2FzZSJiaWZmNSI6TC5iaWZmfHwoTC5iaWZmPTUpO2Nhc2UiYmlmZjgiOmNhc2UieGxhIjpjYXNlInhscyI6cmV0dXJuIEwuYmlmZnx8KEwuYmlmZj04KSxmdW5jdGlvbiBCTSh5LFApe3ZhciBMPVB8fHt9O3JldHVybiBt'@; put 'XyhmdW5jdGlvbiBDTSh5LFApe3ZhciBMPVB8fHt9LFE9amUudXRpbHMuY2ZiX25ldyh7cm9vdDoiUiJ9KSxyZT0iL1dvcmtib29rIjtzd2l0Y2goTC5ib29rVHlwZXx8InhscyIpe2Nhc2UieGxzIjpMLmJvb2tUeXBlPSJiaWZmOCI7Y2FzZSJ4bGEiOkwuYm9va1R5cGV8fChMLmJvb2tUeXBl'@; put 'PSJ4bGEiKTtjYXNlImJpZmY4IjpyZT0iL1dvcmtib29rIixMLmJpZmY9ODticmVhaztjYXNlImJpZmY1IjpyZT0iL0Jvb2siLEwuYmlmZj01O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHR5cGUgIitMLmJvb2tUeXBlKyIgZm9yIFhMUyBDRkIiKX1yZXR1cm4gamUu'@; put 'dXRpbHMuY2ZiX2FkZChRLHJlLGlfKHksTCkpLDg9PUwuYmlmZiYmKHkuUHJvcHN8fHkuQ3VzdHByb3BzKSYmZnVuY3Rpb24gd00oeSxQKXt2YXIgX2UsTD1bXSxRPVtdLHJlPVtdLGdlPTA7aWYoeS5Qcm9wcylmb3IoX2U9bHQoeS5Qcm9wcyksZ2U9MDtnZTxfZS5sZW5ndGg7KytnZSkoT2Jq'@; put 'ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGI0LF9lW2dlXSk/TDpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeTQsX2VbZ2VdKT9ROnJlKS5wdXNoKFtfZVtnZV0seS5Qcm9wc1tfZVtnZV1dXSk7aWYoeS5DdXN0cHJvcHMpZm9yKF9lPWx0KHkuQ3VzdHBy'@; put 'b3BzKSxnZT0wO2dlPF9lLmxlbmd0aDsrK2dlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh5LlByb3BzfHx7fSxfZVtnZV0pfHwoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGI0LF9lW2dlXSk/TDpPYmplY3QucHJvdG90eXBlLmhhc093blByb3Bl'@; put 'cnR5LmNhbGwoeTQsX2VbZ2VdKT9ROnJlKS5wdXNoKFtfZVtnZV0seS5DdXN0cHJvcHNbX2VbZ2VdXV0pO3ZhciB2ZT1bXTtmb3IoZ2U9MDtnZTxyZS5sZW5ndGg7KytnZSlmbS5pbmRleE9mKHJlW2dlXVswXSk+LTF8fG51bGwhPXJlW2dlXVsxXSYmdmUucHVzaChyZVtnZV0pO1EubGVuZ3Ro'@; put 'JiZqZS51dGlscy5jZmJfYWRkKFAsIi9ceDA1U3VtbWFyeUluZm9ybWF0aW9uIix5aShRLHJwLlNJLHk0LHdyKSksKEwubGVuZ3RofHx2ZS5sZW5ndGgpJiZqZS51dGlscy5jZmJfYWRkKFAsIi9ceDA1RG9jdW1lbnRTdW1tYXJ5SW5mb3JtYXRpb24iLHlpKEwscnAuRFNJLGI0LF80LHZlLmxl'@; put 'bmd0aD92ZTpudWxsLHJwLlVESSkpfSh5LFEpLDg9PUwuYmlmZiYmeS52YmFyYXcmJmZ1bmN0aW9uIHRJKHksUCl7UC5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihMLFEpe2lmKDAhPVEpe3ZhciByZT1MLnJlcGxhY2UoL1teXC9dKltcL10vLCIvX1ZCQV9QUk9KRUNUX0NVUi8iKTsiLyIh'@; put 'PT1yZS5zbGljZSgtMSkmJmplLnV0aWxzLmNmYl9hZGQoeSxyZSxQLkZpbGVJbmRleFtRXS5jb250ZW50KX19KX0oUSxqZS5yZWFkKHkudmJhcmF3LHt0eXBlOiJzdHJpbmciPT10eXBlb2YgeS52YmFyYXc/ImJpbmFyeSI6ImJ1ZmZlciJ9KSksUX0oeSxMKSxMKX0oeSxMKTtjYXNlInhsc3gi'@; put 'OmNhc2UieGxzbSI6Y2FzZSJ4bGFtIjpjYXNlInhsc2IiOmNhc2Uib2RzIjpyZXR1cm4gZnVuY3Rpb24gVk0oeSxQKXt2YXIgTD1QfHx7fSxRPWJSKHksTCkscmU9e307aWYoTC5jb21wcmVzc2lvbiYmKHJlLmNvbXByZXNzaW9uPSJERUZMQVRFIiksTC5wYXNzd29yZClyZS50eXBlPWhlPyJu'@; put 'b2RlYnVmZmVyIjoic3RyaW5nIjtlbHNlIHN3aXRjaChMLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZS50eXBlPSJiYXNlNjQiO2JyZWFrO2Nhc2UiYmluYXJ5IjpyZS50eXBlPSJzdHJpbmciO2JyZWFrO2Nhc2Uic3RyaW5nIjp0aHJvdyBuZXcgRXJyb3IoIidzdHJpbmcnIG91dHB1dCB0eXBlIGlu'@; put 'dmFsaWQgZm9yICciK0wuYm9va1R5cGUrIicgZmlsZXMiKTtjYXNlImJ1ZmZlciI6Y2FzZSJmaWxlIjpyZS50eXBlPWhlPyJub2RlYnVmZmVyIjoic3RyaW5nIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitMLnR5cGUpfXZhciBnZT1RLkZ1bGxQ'@; put 'YXRocz9qZS53cml0ZShRLHtmaWxlVHlwZToiemlwIix0eXBlOntub2RlYnVmZmVyOiJidWZmZXIiLHN0cmluZzoiYmluYXJ5In1bcmUudHlwZV18fHJlLnR5cGV9KTpRLmdlbmVyYXRlKHJlKTtyZXR1cm4gTC5wYXNzd29yZCYmdHlwZW9mIGIwPCJ1Ij9tXyhiMChnZSxMLnBhc3N3b3JkKSxM'@; put 'KToiZmlsZSI9PT1MLnR5cGU/WWUoTC5maWxlLGdlKToic3RyaW5nIj09TC50eXBlP1BpKGdlKTpnZX0oeSxMKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIGJvb2tUeXBlIHwiK0wuYm9va1R5cGUrInwiKX19ZnVuY3Rpb24gdDEoeSl7aWYoIXkuYm9va1R5cGUpe3Zh'@; put 'ciBMPXkuZmlsZS5zbGljZSh5LmZpbGUubGFzdEluZGV4T2YoIi4iKSkudG9Mb3dlckNhc2UoKTtMLm1hdGNoKC9eXC5bYS16XSskLykmJih5LmJvb2tUeXBlPUwuc2xpY2UoMSkpLHkuYm9va1R5cGU9e3hsczoiYmlmZjgiLGh0bToiaHRtbCIsc2xrOiJzeWxrIixzb2NpYWxjYWxjOiJldGgi'@; put 'LFNoMzN0SlM6IldURiJ9W3kuYm9va1R5cGVdfHx5LmJvb2tUeXBlfX1mdW5jdGlvbiBTNSh5LFAsTCl7dmFyIFE9THx8e307cmV0dXJuIFEudHlwZT0iZmlsZSIsUS5maWxlPVAsdDEoUSksQzUoeSxRKX1mdW5jdGlvbiB6TSh5LFAsTCxRLHJlLGdlLF9lLHZlKXt2YXIgU2U9SHMoTCksSGU9'@; put 'dmUuZGVmdmFsLEJlPXZlLnJhdyxHZT0hMCxudD0xPT09cmU/W106e307aWYoMSE9PXJlKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSl0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG50LCJfX3Jvd051bV9fIix7dmFsdWU6TCxlbnVtZXJhYmxlOiExfSl9Y2F0Y2h7bnQuX19yb3dOdW1fXz1M'@; put 'fWVsc2UgbnQuX19yb3dOdW1fXz1MO2lmKCFfZXx8eVtMXSlmb3IodmFyIGR0PVAucy5jO2R0PD1QLmUuYzsrK2R0KXt2YXIgQ3Q9X2U/eVtMXVtkdF06eVtRW2R0XStTZV07aWYodm9pZCAwIT09Q3QmJnZvaWQgMCE9PUN0LnQpe3ZhciBjdD1DdC52O3N3aXRjaChDdC50KXtjYXNlInoiOmlm'@; put 'KG51bGw9PWN0KWJyZWFrO2NvbnRpbnVlO2Nhc2UiZSI6Y3Q9MD09Y3Q/bnVsbDp2b2lkIDA7YnJlYWs7Y2FzZSJzIjpjYXNlImQiOmNhc2UiYiI6Y2FzZSJuIjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHR5cGUgIitDdC50KX1pZihudWxsIT1nZVtkdF0p'@; put 'e2lmKG51bGw9PWN0KWlmKCJlIj09Q3QudCYmbnVsbD09PWN0KW50W2dlW2R0XV09bnVsbDtlbHNlIGlmKHZvaWQgMCE9PUhlKW50W2dlW2R0XV09SGU7ZWxzZXtpZighQmV8fG51bGwhPT1jdCljb250aW51ZTtudFtnZVtkdF1dPW51bGx9ZWxzZSBudFtnZVtkdF1dPUJlP2N0OmN1KEN0LGN0'@; put 'LHZlKTtudWxsIT1jdCYmKEdlPSExKX19ZWxzZXtpZih2b2lkIDA9PT1IZSljb250aW51ZTtudWxsIT1nZVtkdF0mJihudFtnZVtkdF1dPUhlKX19cmV0dXJue3JvdzpudCxpc2VtcHR5OkdlfX1mdW5jdGlvbiBINih5LFApe2lmKG51bGw9PXl8fG51bGw9PXlbIiFyZWYiXSlyZXR1cm5bXTt2'@; put 'YXIgTD17dDoibiIsdjowfSxRPTAscmU9MSxnZT1bXSxfZT0wLHZlPSIiLFNlPUpTT04ucGFyc2UoJ3sicyI6eyJyIjowLCJjIjowfSwiZSI6eyJyIjowLCJjIjowfX0nKSxIZT1QfHx7fSxCZT1udWxsIT1IZS5yYW5nZT9IZS5yYW5nZTp5WyIhcmVmIl07c3dpdGNoKDE9PT1IZS5oZWFkZXI/'@; put 'UT0xOiJBIj09PUhlLmhlYWRlcj9RPTI6QXJyYXkuaXNBcnJheShIZS5oZWFkZXIpP1E9MzpudWxsPT1IZS5oZWFkZXImJihRPTApLHR5cGVvZiBCZSl7Y2FzZSJzdHJpbmciOlNlPU9pKEJlKTticmVhaztjYXNlIm51bWJlciI6KFNlPU9pKHlbIiFyZWYiXSkpLnMucj1CZTticmVhaztkZWZh'@; put 'dWx0OlNlPUJlfVE+MCYmKHJlPTApO3ZhciBHZT1IcyhTZS5zLnIpLG50PVtdLGR0PVtdLEN0PTAsY3Q9MCxidD1BcnJheS5pc0FycmF5KHkpLEZ0PVNlLnMucixrdD0wLFR0PTA7Zm9yKGJ0JiYheVtGdF0mJih5W0Z0XT1bXSksa3Q9U2Uucy5jO2t0PD1TZS5lLmM7KytrdClzd2l0Y2gobnRb'@; put 'a3RdPU5zKGt0KSxMPWJ0P3lbRnRdW2t0XTp5W250W2t0XStHZV0sUSl7Y2FzZSAxOmdlW2t0XT1rdC1TZS5zLmM7YnJlYWs7Y2FzZSAyOmdlW2t0XT1udFtrdF07YnJlYWs7Y2FzZSAzOmdlW2t0XT1IZS5oZWFkZXJba3QtU2Uucy5jXTticmVhaztkZWZhdWx0OmZvcihudWxsPT1MJiYoTD1K'@; put 'U09OLnBhcnNlKCd7InciOiAiX19FTVBUWSIsICJ0IjogInMifScpKSx2ZT1fZT1jdShMLG51bGwsSGUpLGN0PTAsVHQ9MDtUdDxnZS5sZW5ndGg7KytUdClnZVtUdF09PXZlJiYodmU9X2UrIl8iKyArK2N0KTtnZVtrdF09dmV9Zm9yKEZ0PVNlLnMucityZTtGdDw9U2UuZS5yOysrRnQpe3Zh'@; put 'ciBadD16TSh5LFNlLEZ0LG50LFEsZ2UsYnQsSGUpOyghMT09PVp0LmlzZW1wdHl8fCgxPT09UT8hMSE9PUhlLmJsYW5rcm93czpIZS5ibGFua3Jvd3MpKSYmKGR0W0N0KytdPVp0LnJvdyl9cmV0dXJuIGR0Lmxlbmd0aD1DdCxkdH12YXIgJGQ9LyIvZztmdW5jdGlvbiBVTSh5LFAsTCxRLHJl'@; put 'LGdlLF9lLHZlKXtmb3IodmFyIFNlPSEwLEhlPVtdLEJlPSIiLEdlPUhzKEwpLG50PVAucy5jO250PD1QLmUuYzsrK250KWlmKFFbbnRdKXt2YXIgZHQ9dmUuZGVuc2U/KHlbTF18fFtdKVtudF06eVtRW250XStHZV07aWYobnVsbD09ZHQpQmU9IiI7ZWxzZSBpZihudWxsIT1kdC52KXtTZT0h'@; put 'MSxCZT0iIitjdShkdCxudWxsLHZlKTtmb3IodmFyIEN0PTAsY3Q9MDtDdCE9PUJlLmxlbmd0aDsrK0N0KWlmKChjdD1CZS5jaGFyQ29kZUF0KEN0KSk9PT1yZXx8Y3Q9PT1nZXx8MzQ9PT1jdCl7QmU9JyInK0JlLnJlcGxhY2UoJGQsJyIiJykrJyInO2JyZWFrfSJJRCI9PUJlJiYoQmU9JyJJ'@; put 'RCInKX1lbHNlIG51bGw9PWR0LmZ8fGR0LkY/QmU9IiI6KFNlPSExLChCZT0iPSIrZHQuZikuaW5kZXhPZigiLCIpPj0wJiYoQmU9JyInK0JlLnJlcGxhY2UoJGQsJyIiJykrJyInKSk7SGUucHVzaChCZSl9cmV0dXJuITE9PT12ZS5ibGFua3Jvd3MmJlNlP251bGw6SGUuam9pbihfZSl9ZnVu'@; put 'Y3Rpb24gamwoeSxQKXt2YXIgTD1bXSxRPVA/P3t9O2lmKG51bGw9PXl8fG51bGw9PXlbIiFyZWYiXSlyZXR1cm4iIjt2YXIgcmU9T2koeVsiIXJlZiJdKSxnZT12b2lkIDAhPT1RLkZTP1EuRlM6IiwiLF9lPWdlLmNoYXJDb2RlQXQoMCksdmU9dm9pZCAwIT09US5SUz9RLlJTOiJcbiIsU2U9'@; put 'dmUuY2hhckNvZGVBdCgwKSxIZT1uZXcgUmVnRXhwKCgifCI9PWdlPyJcXHwiOmdlKSsiKyQiKSxCZT0iIixHZT1bXTtRLmRlbnNlPUFycmF5LmlzQXJyYXkoeSk7Zm9yKHZhciBudD1RLnNraXBIaWRkZW4mJnlbIiFjb2xzIl18fFtdLGR0PVEuc2tpcEhpZGRlbiYmeVsiIXJvd3MiXXx8W10s'@; put 'Q3Q9cmUucy5jO0N0PD1yZS5lLmM7KytDdCkobnRbQ3RdfHx7fSkuaGlkZGVufHwoR2VbQ3RdPU5zKEN0KSk7Zm9yKHZhciBjdD1yZS5zLnI7Y3Q8PXJlLmUucjsrK2N0KShkdFtjdF18fHt9KS5oaWRkZW58fG51bGwhPShCZT1VTSh5LHJlLGN0LEdlLF9lLFNlLGdlLFEpKSYmKFEuc3RyaXAm'@; put 'JihCZT1CZS5yZXBsYWNlKEhlLCIiKSksTC5wdXNoKEJlK3ZlKSk7cmV0dXJuIGRlbGV0ZSBRLmRlbnNlLEwuam9pbigiIil9ZnVuY3Rpb24geFIoeSxQKXtQfHwoUD17fSksUC5GUz0iXHQiLFAuUlM9IlxuIjt2YXIgTD1qbCh5LFApO2lmKHR5cGVvZiBjcHRhYmxlPiJ1Inx8InN0cmluZyI9'@; put 'PVAudHlwZSlyZXR1cm4gTDt2YXIgUT1jcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLEwsInN0ciIpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSkrU3RyaW5nLmZyb21DaGFyQ29kZSgyNTQpK1F9ZnVuY3Rpb24gTjYoeSl7dmFyIEwsUD0iIixRPSIiO2lmKG51bGw9PXl8fG51bGw9'@; put 'PXlbIiFyZWYiXSlyZXR1cm5bXTt2YXIgdmUscmU9T2koeVsiIXJlZiJdKSxnZT0iIixfZT1bXSxTZT1bXSxIZT1BcnJheS5pc0FycmF5KHkpO2Zvcih2ZT1yZS5zLmM7dmU8PXJlLmUuYzsrK3ZlKV9lW3ZlXT1Ocyh2ZSk7Zm9yKHZhciBCZT1yZS5zLnI7QmU8PXJlLmUucjsrK0JlKWZvcihn'@; put 'ZT1IcyhCZSksdmU9cmUucy5jO3ZlPD1yZS5lLmM7Kyt2ZSlpZihQPV9lW3ZlXStnZSxRPSIiLHZvaWQgMCE9PShMPUhlPyh5W0JlXXx8W10pW3ZlXTp5W1BdKSl7aWYobnVsbCE9TC5GKXtpZihQPUwuRiwhTC5mKWNvbnRpbnVlO1E9TC5mLC0xPT1QLmluZGV4T2YoIjoiKSYmKFA9UCsiOiIr'@; put 'UCl9aWYobnVsbCE9TC5mKVE9TC5mO2Vsc2V7aWYoInoiPT1MLnQpY29udGludWU7aWYoIm4iPT1MLnQmJm51bGwhPUwudilRPSIiK0wudjtlbHNlIGlmKCJiIj09TC50KVE9TC52PyJUUlVFIjoiRkFMU0UiO2Vsc2UgaWYodm9pZCAwIT09TC53KVE9IiciK0wudztlbHNle2lmKHZvaWQgMD09'@; put 'PUwudiljb250aW51ZTtRPSJzIj09TC50PyInIitMLnY6IiIrTC52fX1TZVtTZS5sZW5ndGhdPVArIj0iK1F9cmV0dXJuIFNlfWZ1bmN0aW9uIF9fKHksUCxMKXt2YXIgUT1MfHx7fSxyZT0rIVEuc2tpcEhlYWRlcixnZT15fHx7fSxfZT0wLHZlPTA7aWYoZ2UmJm51bGwhPVEub3JpZ2luKWlm'@; put 'KCJudW1iZXIiPT10eXBlb2YgUS5vcmlnaW4pX2U9US5vcmlnaW47ZWxzZXt2YXIgU2U9InN0cmluZyI9PXR5cGVvZiBRLm9yaWdpbj9zcyhRLm9yaWdpbik6US5vcmlnaW47X2U9U2Uucix2ZT1TZS5jfXZhciBIZSxCZT1KU09OLnBhcnNlKCd7InMiOiB7ImMiOjAsICJyIjowfSwgImUiOiB7'@; put 'ImMiOjAsICJyIjowfX0nKTtpZihCZS5lLmM9dmUsQmUuZS5yPV9lK1AubGVuZ3RoLTErcmUsZ2VbIiFyZWYiXSl7dmFyIEdlPU9pKGdlWyIhcmVmIl0pO0JlLmUuYz1NYXRoLm1heChCZS5lLmMsR2UuZS5jKSxCZS5lLnI9TWF0aC5tYXgoQmUuZS5yLEdlLmUuciksLTE9PV9lJiYoQmUuZS5y'@; put 'PShfZT1HZS5lLnIrMSkrUC5sZW5ndGgtMStyZSl9ZWxzZS0xPT1fZSYmKF9lPTAsQmUuZS5yPVAubGVuZ3RoLTErcmUpO3ZhciBudD1RLmhlYWRlcnx8W10sZHQ9MDtQLmZvckVhY2goZnVuY3Rpb24oY3QsYnQpe2x0KGN0KS5mb3JFYWNoKGZ1bmN0aW9uKEZ0KXstMT09KGR0PW50LmluZGV4'@; put 'T2YoRnQpKSYmKG50W2R0PW50Lmxlbmd0aF09RnQpO3ZhciBrdD1jdFtGdF0sVHQ9InoiLFp0PSIiLHBuPWRpKHtjOnZlK2R0LHI6X2UrYnQrcmV9KTtpZihIZT1xby5zaGVldF9nZXRfY2VsbChnZSxwbiksIWt0fHwib2JqZWN0IiE9dHlwZW9mIGt0fHxrdCBpbnN0YW5jZW9mIERhdGUpe2lm'@; put 'KCJudW1iZXIiPT10eXBlb2Yga3Q/VHQ9Im4iOiJib29sZWFuIj09dHlwZW9mIGt0P1R0PSJiIjoic3RyaW5nIj09dHlwZW9mIGt0P1R0PSJzIjprdCBpbnN0YW5jZW9mIERhdGU/KFR0PSJkIixRLmNlbGxEYXRlc3x8KFR0PSJuIixrdD1VZShrdCkpLFp0PUhlLnomJncuaXNfZGF0ZShIZS56'@; put 'KT9IZS56OlEuZGF0ZU5GfHx3Ll90YWJsZVsxNF0pOm51bGw9PT1rdCYmUS5udWxsRXJyb3ImJihUdD0iZSIsa3Q9MCksSGU/KEhlLnQ9VHQsSGUudj1rdCxkZWxldGUgSGUudyxkZWxldGUgSGUuUixadCYmKEhlLno9WnQpKTpnZVtwbl09SGU9e3Q6VHQsdjprdH0sWnQmJihIZS56PVp0KSxI'@; put 'ZSYmSGUuaCl0cnl7aWYoSGUuUj1GdS5odG1sX3RvX3JzKEhlLmgpLCFIZS52KXtIZS52PSIiO2Zvcih2YXIgS249MDtLbjxIZS5SLmxlbmd0aDsrK0tuKUhlLnYrPUhlLlJbS25dLnZ8fCIifX1jYXRjaHt9fWVsc2UgZ2VbcG5dPWt0fSl9KSxCZS5lLmM9TWF0aC5tYXgoQmUuZS5jLHZlK250'@; put 'Lmxlbmd0aC0xKTt2YXIgQ3Q9SHMoX2UpO2lmKHJlKWZvcihkdD0wO2R0PG50Lmxlbmd0aDsrK2R0KWdlW05zKGR0K3ZlKStDdF09e3Q6InMiLHY6bnRbZHRdfTtyZXR1cm4gZ2VbIiFyZWYiXT1PbyhCZSksZ2V9dmFyIHFvPXtlbmNvZGVfY29sOk5zLGVuY29kZV9yb3c6SHMsZW5jb2RlX2Nl'@; put 'bGw6ZGksZW5jb2RlX3JhbmdlOk9vLGRlY29kZV9jb2w6amgsZGVjb2RlX3JvdzpCMCxzcGxpdF9jZWxsOmZ1bmN0aW9uIGg0KHkpe3JldHVybiB5LnJlcGxhY2UoLyhcJD9bQS1aXSopKFwkP1xkKikvLCIkMSwkMiIpLnNwbGl0KCIsIil9LGRlY29kZV9jZWxsOnNzLGRlY29kZV9yYW5nZTpX'@; put 'cyxmb3JtYXRfY2VsbDpjdSxnZXRfZm9ybXVsYWU6TjYsbWFrZV9jc3Y6amwsbWFrZV9qc29uOkg2LG1ha2VfZm9ybXVsYWU6TjYsaHRtbF90b19yczpGdS5odG1sX3RvX3JzLHNoZWV0X2FkZF9hb2E6czAsc2hlZXRfYWRkX2pzb246X18sc2hlZXRfYWRkX2RvbTpBTSxhb2FfdG9fc2hlZXQ6'@; put 'azEsanNvbl90b19zaGVldDpmdW5jdGlvbiBmWSh5LFApe3JldHVybiBfXyhudWxsLHksUCl9LHRhYmxlX3RvX3NoZWV0Okh1LHRhYmxlX3RvX2Jvb2s6ZnVuY3Rpb24gZHIoeSxQKXtyZXR1cm4gRWQoSHUoeSxQKSxQKX0sc2hlZXRfdG9fY3N2OmpsLHNoZWV0X3RvX3R4dDp4UixzaGVldF90'@; put 'b19qc29uOkg2LHNoZWV0X3RvX2h0bWw6RnUuZnJvbV9zaGVldCxzaGVldF90b19mb3JtdWxhZTpONixzaGVldF90b19yb3dfb2JqZWN0X2FycmF5Okg2fTtmdW5jdGlvbiBaTSh5LFAsTCxRLHJlKXt2YXIgZ2U7aWYoeS5zdHlsZSYmISh5Ll9yYW5nZSYmKGdlPSJzdHJpbmciPT10eXBlb2Yg'@; put 'eS5fcmFuZ2U/TS51dGlscy5kZWNvZGVfcmFuZ2UoeS5fcmFuZ2UpOnkuX3JhbmdlLEwuYz5nZS5lLmN8fEwuYzxnZS5zLmN8fEwucj5nZS5lLnJ8fEwucjxnZS5zLnIpKSYmZ2Upe3ZhciBfZT15LnN0eWxlLnN0eWxlO2lmKF9lKXtfZS53aG9sZVRhYmxlJiZxby5hcHBseV9zdHlsZV9kZWx0'@; put 'YShRLF9lLndob2xlVGFibGUpO2U6aWYoX2UuaGVhZGVyUm93KWlmKHJlKXtpZihMLnIhPWdlLnMucilicmVhayBlO2huKHkuc3R5bGUuY29saGVhZCl8fHFvLmFwcGx5X3N0eWxlX2RlbHRhKFEsX2UuaGVhZGVyUm93KX1lbHNle2lmKEwuciE9Z2Uucy5yKWJyZWFrIGU7aG4oeS5oZWFkZXIp'@; put 'fHxxby5hcHBseV9zdHlsZV9kZWx0YShRLF9lLmhlYWRlclJvdyl9fX19cW8udGVzdF9wYXNzd29yZD1mdW5jdGlvbiBMTSh5LFApe3ZhciBMPUJ1ZmZlci5mcm9tKHkuc2FsdCwiYmFzZTY0IiksUT15LmFsZ28scmU9ZWwoQnVmZmVyLmNvbmNhdChbTCxCdWZmZXIuZnJvbShjcHRhYmxlLnV0'@; put 'aWxzLmVuY29kZSgxMjAwLFApKV0pLFEpLGdlPUJ1ZmZlci5hbGxvYyg0KTtvbChnZSwwKTtmb3IodmFyIF9lPTA7X2U8eS5zcGluOysrX2UpZ2UubD0wLGdlLndyaXRlX3NoaWZ0KDQsX2UpLHJlPWVsKEJ1ZmZlci5jb25jYXQoW3JlLGdlXSksUSk7dmFyIHZlPUJ1ZmZlci5mcm9tKHkuaGFz'@; put 'aCwiYmFzZTY0Iik7cmV0dXJuIDA9PXJlLmNvbXBhcmUodmUpfSxxby5oYXNoX3Bhc3N3b3JkPWZ1bmN0aW9uIHVfKHkpe3ZhciBQPXthbGdvOiJTSEEtNTEyIixzYWx0OiJVMmhsWlhSS1V5NWpiMjB2ZUd4emVBPT0iLHNwaW46MWUzfSxMPUJ1ZmZlci5mcm9tKFAuc2FsdCwiYmFzZTY0Iiks'@; put 'UT1QLmFsZ28scmU9ZWwoQnVmZmVyLmNvbmNhdChbTCxCdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLHkpKV0pLFEpLGdlPUJ1ZmZlci5hbGxvYyg0KTtvbChnZSwwKTtmb3IodmFyIF9lPTA7X2U8UC5zcGluOysrX2UpZ2UubD0wLGdlLndyaXRlX3NoaWZ0KDQsX2UpLHJl'@; put 'PWVsKEJ1ZmZlci5jb25jYXQoW3JlLGdlXSksUSk7cmV0dXJuIFAuaGFzaD1yZS50b1N0cmluZygiYmFzZTY0IiksUH0scW8uc2hlZXRfc2V0X3JhbmdlX3N0eWxlPWZ1bmN0aW9uKHksUCxMKXtpZihMKXt2YXIgUT0ic3RyaW5nIj09dHlwZW9mIFA/T2koUCk6UDtudWxsIT1RLnImJm51bGwh'@; put 'PVEuYyYmKFE9e3M6USxlOlF9KTt2YXIgdmUscmU9US5zLnIsZ2U9MCxfZT0iIixTZT1Xcyh5WyIhcmVmIl18fCJBMSIpO1NlLnMucj5RLnMuciYmKFNlLnMucj1RLnMuciksU2Uucy5jPlEucy5jJiYoU2Uucy5jPVEucy5jKSxTZS5lLnI8US5lLnImJihTZS5lLnI9US5lLnIpLFNlLmUuYzxR'@; put 'LmUuYyYmKFNlLmUuYz1RLmUuYykseVsiIXJlZiJdPU9vKFNlKTtmb3IodmFyIEJlPUFycmF5LmlzQXJyYXkoeSk7cmU8PVEuZS5yOysrcmUpZm9yKGdlPVEucy5jO2dlPD1RLmUuYzsrK2dlKUJlPyh5W3JlXXx8KHlbcmVdPVtdKSx5W3JlXVtnZV18fCh5W3JlXVtnZV09e3Q6InoifSksdmU9'@; put 'eVtyZV1bZ2VdKTooeVtfZT1kaSh7cjpyZSxjOmdlfSldfHwoeVtfZV09e3Q6InoifSksdmU9eVtfZV0pLHZlLnN8fCh2ZS5zPXt9KSxPYmplY3Qua2V5cyhMKS5mb3JFYWNoKEhlKSx2ZS5zLnBhdHRlcm5UeXBlJiYhdmUucy5mZ0NvbG9yJiYoZGVsZXRlIHZlLnMucGF0dGVyblR5cGUsZGVs'@; put 'ZXRlIHZlLnMuYmdDb2xvciksKHZlLnMuZmdDb2xvcnx8dmUucy5iZ0NvbG9yKSYmIm5vbmUiPT0odmUucy5wYXR0ZXJuVHlwZXx8Im5vbmUiKSYmKHZlLnMucGF0dGVyblR5cGU9InNvbGlkIik7aWYocmU9US5zLnIsTC50b3B8fG51bGw9PT1MLnRvcClmb3IoZ2U9US5zLmM7Z2U8PVEuZS5j'@; put 'OysrZ2Upe2lmKEJlKXtpZigheVtyZV0pY29udGludWU7dmU9eVtyZV1bZ2VdfWVsc2UgX2U9ZGkoe3I6cmUsYzpnZX0pLHZlPXlbX2VdO3ZlJiYobnVsbD09PUwudG9wP2RlbGV0ZSB2ZS5zLnRvcDp2ZS5zLnRvcD1vbihMLnRvcCkpfWlmKHJlPVEuZS5yLEwuYm90dG9tfHxudWxsPT09TC5i'@; put 'b3R0b20pZm9yKGdlPVEucy5jO2dlPD1RLmUuYzsrK2dlKXtpZihCZSl7aWYoIXlbcmVdKWNvbnRpbnVlO3ZlPXlbcmVdW2dlXX1lbHNlIF9lPWRpKHtyOnJlLGM6Z2V9KSx2ZT15W19lXTt2ZSYmKG51bGw9PT1MLmJvdHRvbT9kZWxldGUgdmUucy5ib3R0b206dmUucy5ib3R0b209b24oTC5i'@; put 'b3R0b20pKX1pZihnZT1RLnMuYyxMLmxlZnR8fG51bGw9PT1MLmxlZnQpZm9yKHJlPVEucy5yO3JlPD1RLmUucjsrK3JlKXtpZihCZSl7aWYoIXlbcmVdKWNvbnRpbnVlO3ZlPXlbcmVdW2dlXX1lbHNlIF9lPWRpKHtyOnJlLGM6Z2V9KSx2ZT15W19lXTt2ZSYmKG51bGw9PT1MLmxlZnQ/ZGVs'@; put 'ZXRlIHZlLnMubGVmdDp2ZS5zLmxlZnQ9b24oTC5sZWZ0KSl9aWYoZ2U9US5lLmMsTC5yaWdodHx8bnVsbD09PUwucmlnaHQpZm9yKHJlPVEucy5yO3JlPD1RLmUucjsrK3JlKXtpZihCZSl7aWYoIXlbcmVdKWNvbnRpbnVlO3ZlPXlbcmVdW2dlXX1lbHNlIF9lPWRpKHtyOnJlLGM6Z2V9KSx2'@; put 'ZT15W19lXTt2ZSYmKG51bGw9PT1MLnJpZ2h0P2RlbGV0ZSB2ZS5zLnJpZ2h0OnZlLnMucmlnaHQ9b24oTC5yaWdodCkpfX1mdW5jdGlvbiBIZShHZSl7aWYoInRvcCIhPUdlJiYiYm90dG9tIiE9R2UmJiJsZWZ0IiE9R2UmJiJyaWdodCIhPUdlKXtpZigieiI9PUdlKXJldHVybiB2b2lkKHZl'@; put 'Lno9TC56KTtpZigiYWxpZ25tZW50Ij09R2UpcmV0dXJuIHZvaWQodmUuc1tHZV0/T2JqZWN0LmtleXMoTFtHZV0pLmZvckVhY2goZnVuY3Rpb24obnQpe3ZlLnNbR2VdW250XT1MW0dlXVtudF19KTp2ZS5zW0dlXT1vbihMW0dlXSkpO2lmKCJpbmNvbCI9PUdlKXJldHVybiBnZT5RLnMuYyYm'@; put 'KG51bGw9PT1MLmxlZnQ/ZGVsZXRlIHZlLnMubGVmdDp2ZS5zLmxlZnQ9Im9iamVjdCI9PXR5cGVvZiBMW0dlXT9vbihMW0dlXSk6TFtHZV0pLHZvaWQoZ2U8US5lLmMmJihudWxsPT09TC5yaWdodD9kZWxldGUgdmUucy5yaWdodDp2ZS5zLnJpZ2h0PSJvYmplY3QiPT10eXBlb2YgTFtHZV0/'@; put 'b24oTFtHZV0pOkxbR2VdKSk7aWYoImlucm93Ij09R2UpcmV0dXJuIHJlPlEucy5yJiYobnVsbD09PUwudG9wP2RlbGV0ZSB2ZS5zLnRvcDp2ZS5zLnRvcD0ib2JqZWN0Ij09dHlwZW9mIExbR2VdP29uKExbR2VdKTpMW0dlXSksdm9pZChyZTxRLmUuciYmKG51bGw9PT1MLmJvdHRvbT9kZWxl'@; put 'dGUgdmUucy5ib3R0b206dmUucy5ib3R0b209Im9iamVjdCI9PXR5cGVvZiBMW0dlXT9vbihMW0dlXSk6TFtHZV0pKTtudWxsPT09TFtHZV0/ZGVsZXRlIHZlLnNbR2VdOnZlLnNbR2VdPUxbR2VdJiZBcnJheS5pc0FycmF5KExbR2VdKT9MW0dlXS5zbGljZSgpLm1hcChmdW5jdGlvbihudCl7'@; put 'cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBudD9vbihudCk6bnR9KToib2JqZWN0Ij09dHlwZW9mIExbR2VdP29uKExbR2VdKTpMW0dlXX19fSxxby5hcHBseV9zdHlsZV9kZWx0YT1mdW5jdGlvbih5LFApe1sic3oiLCJib2xkIiwiaXRhbGljIiwidW5kZXJsaW5lIiwic3RyaWtlIiwibmFtZSIs'@; put 'InZhbGlnbiJdLmZvckVhY2goZnVuY3Rpb24oTCl7dmFyIFE9TDsiYmdDb2xvciI9PUw/UT0iZmdDb2xvciI6ImZnQ29sb3IiPT1MJiYoUT0iYmdDb2xvciIpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChQLEwpJiYobnVsbD09PVBbTF0/ZGVsZXRlIHlbUV06bnVsbCE9'@; put 'UFtMXSYmKHlbUV09UFtMXSkpfSksWyJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJhbGlnbm1lbnQiLCJwcm90ZWN0aW9uIiwiY29sb3IiLCJmZ0NvbG9yIiwiYmdDb2xvciJdLmZvckVhY2goZnVuY3Rpb24oTCl7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFAs'@; put 'TCkmJihudWxsPT09UFtMXT9kZWxldGUgeVtMXTpudWxsIT1QW0xdJiYoeVtMXT1vbihQW0xdKSkpfSl9LHFvLmdldF9jb21wdXRlZF9zdHlsZT1mdW5jdGlvbih5LFApeyJzdHJpbmciPT10eXBlb2YgUCYmKFA9TS51dGlscy5kZWNvZGVfY2VsbChQKSk7dmFyIEw9QXJyYXkuaXNBcnJheSh5'@; put 'KT8oeVtQLnJdfHxbXSlbUC5jXTp5W00udXRpbHMuZW5jb2RlX2NlbGwoUCldLFE9b24oTCYmTC5zfHx7fSk7cmV0dXJuIHlbIiF0YWJsZXMiXSYmeVsiIXRhYmxlcyJdLmZvckVhY2goZnVuY3Rpb24ocmUpe1pNKHJlLDAsUCxRKX0pLHlbIiFwaXZvdHMiXSYmeVsiIXBpdm90cyJdLmZvckVh'@; put 'Y2goZnVuY3Rpb24ocmUpe1pNKHJlLDAsUCxRLCEwKX0pLFF9O3ZhciBZTT17fTtxby5jZWxsX2FycmF5X3RvX2Nzdl9yb3c9ZnVuY3Rpb24oeSxQKXt2YXIgTD1QPz97fSxRPXZvaWQgMCE9PUwuRlM/TC5GUzoiLCIscmU9US5jaGFyQ29kZUF0KDApLGdlPXZvaWQgMCE9PUwuUlM/TC5SUzoi'@; put 'XG4iLF9lPWdlLmNoYXJDb2RlQXQoMCksdmU9WU1bUV18fChZTVtRXT1uZXcgUmVnRXhwKCgifCI9PVE/IlxcfCI6USkrIiskIikpLFNlPWZ1bmN0aW9uIGlwKHksUCxMLFEscmUpe2Zvcih2YXIgZ2U9ITAsX2U9W10sdmU9IiIsU2U9MDtTZTw9eS5sZW5ndGgtMTsrK1NlKXt2YXIgSGU9eVtT'@; put 'ZV07aWYobnVsbD09SGUpdmU9IiI7ZWxzZSBpZihudWxsIT1IZS52KXtnZT0hMSx2ZT0iIitjdShIZSxudWxsLHJlKTtmb3IodmFyIEJlPTAsR2U9MDtCZSE9PXZlLmxlbmd0aDsrK0JlKWlmKChHZT12ZS5jaGFyQ29kZUF0KEJlKSk9PT1QfHxHZT09PUx8fDM0PT09R2Upe3ZlPSciJyt2ZS5y'@; put 'ZXBsYWNlKCRkLCciIicpKyciJzticmVha30iSUQiPT12ZSYmKHZlPSciSUQiJyl9ZWxzZSBudWxsPT1IZS5mfHxIZS5GP3ZlPSIiOihnZT0hMSwodmU9Ij0iK0hlLmYpLmluZGV4T2YoIiwiKT49MCYmKHZlPSciJyt2ZS5yZXBsYWNlKCRkLCciIicpKyciJykpO19lLnB1c2godmUpfXJldHVy'@; put 'biExPT09cmUuYmxhbmtyb3dzJiZnZT9udWxsOl9lLmpvaW4oUSl9KHkscmUsX2UsUSxMKTtyZXR1cm4gTC5zdHJpcCYmKFNlPVNlLnJlcGxhY2UodmUsIiIpKSxTZStnZX0sZnVuY3Rpb24oeSl7ZnVuY3Rpb24gTChnZSxfZSx2ZSl7cmV0dXJuIG51bGwhPWdlW19lXT9nZVtfZV06Z2VbX2Vd'@; put 'PXZlfWZ1bmN0aW9uIFEoZ2UsX2UsdmUpe2lmKCJzdHJpbmciPT10eXBlb2YgX2Upe2lmKEFycmF5LmlzQXJyYXkoZ2UpKXt2YXIgU2U9c3MoX2UpO3JldHVybiBnZVtTZS5yXXx8KGdlW1NlLnJdPVtdKSxnZVtTZS5yXVtTZS5jXXx8KGdlW1NlLnJdW1NlLmNdPXt0OiJ6In0pfXJldHVybiBn'@; put 'ZVtfZV18fChnZVtfZV09e3Q6InoifSl9cmV0dXJuIFEoZ2UsZGkoIm51bWJlciIhPXR5cGVvZiBfZT9fZTp7cjpfZSxjOnZlfHwwfSkpfXkuY29uc3RzPXkuY29uc3RzfHx7fSx5LnNoZWV0X2dldF9jZWxsPVEseS5ib29rX25ldz1mdW5jdGlvbigpe3JldHVybntTaGVldE5hbWVzOltdLFNo'@; put 'ZWV0czp7fX19LHkuYm9va19hcHBlbmRfc2hlZXQ9ZnVuY3Rpb24oZ2UsX2UsdmUpe2lmKCF2ZSlmb3IodmFyIFNlPTE7U2U8PTY1NTM1JiYtMSE9Z2UuU2hlZXROYW1lcy5pbmRleE9mKHZlPSJTaGVldCIrU2UpOysrU2UpO2lmKFp2KHZlKSxnZS5TaGVldE5hbWVzLmluZGV4T2YodmUpPj0w'@; put 'KXRocm93IG5ldyBFcnJvcigiV29ya3NoZWV0IHdpdGggbmFtZSB8Iit2ZSsifCBhbHJlYWR5IGV4aXN0cyEiKTtnZS5TaGVldE5hbWVzLnB1c2godmUpLGdlLlNoZWV0c1t2ZV09X2V9LHkuYm9va19zZXRfc2hlZXRfdmlzaWJpbGl0eT1mdW5jdGlvbihnZSxfZSx2ZSl7TChnZSwiV29ya2Jv'@; put 'b2siLHt9KSxMKGdlLldvcmtib29rLCJTaGVldHMiLFtdKTt2YXIgU2U9ZnVuY3Rpb24gcmUoZ2UsX2Upe2lmKCJudW1iZXIiPT10eXBlb2YgX2Upe2lmKF9lPj0wJiZnZS5TaGVldE5hbWVzLmxlbmd0aD5fZSlyZXR1cm4gX2U7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBzaGVldCAj'@; put 'ICIrX2UpfWlmKCJzdHJpbmciPT10eXBlb2YgX2Upe3ZhciB2ZT1nZS5TaGVldE5hbWVzLmluZGV4T2YoX2UpO2lmKHZlPi0xKXJldHVybiB2ZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNoZWV0IG5hbWUgfCIrX2UrInwiKX10aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNo'@; put 'ZWV0IHwiK19lKyJ8Iil9KGdlLF9lKTtzd2l0Y2goTChnZS5Xb3JrYm9vay5TaGVldHMsU2Use30pLHZlKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQmFkIHNoZWV0IHZpc2liaWxpdHkgc2V0dGluZyAiK3ZlKX1nZS5Xb3JrYm9vay5TaGVl'@; put 'dHNbU2VdLkhpZGRlbj12ZX0sZnVuY3Rpb24gUChnZSl7Z2UuZm9yRWFjaChmdW5jdGlvbihfZSl7eS5jb25zdHNbX2VbMF1dPV9lWzFdfSl9KFtbIlNIRUVUX1ZJU0lCTEUiLDBdLFsiU0hFRVRfSElEREVOIiwxXSxbIlNIRUVUX1ZFUllfSElEREVOIiwyXV0pLHkuY2VsbF9zZXRfbnVtYmVy'@; put 'X2Zvcm1hdD1mdW5jdGlvbihnZSxfZSl7cmV0dXJuIGdlLno9X2UsZ2V9LHkuY2VsbF9zZXRfaHlwZXJsaW5rPWZ1bmN0aW9uKGdlLF9lLHZlKXtyZXR1cm4gX2U/KGdlLmw9e1RhcmdldDpfZX0sdmUmJihnZS5sLlRvb2x0aXA9dmUpLGdlLnN8fChnZS5zPXt9KSxnZS5zLmNvbG9yPXt0aGVt'@; put 'ZToxMH0pOihkZWxldGUgZ2UubCxnZS5zJiZnZS5zLmNvbG9yJiYxMD09Z2Uucy5jb2xvci50aGVtZSYmZGVsZXRlIGdlLnMuY29sb3IpLGdlfSx5LmNlbGxfc2V0X2ludGVybmFsX2xpbms9ZnVuY3Rpb24oZ2UsX2UsdmUpe3JldHVybiB5LmNlbGxfc2V0X2h5cGVybGluayhnZSwiIyIrX2Us'@; put 'dmUpfSx5LmNlbGxfYWRkX2NvbW1lbnQ9ZnVuY3Rpb24oZ2UsX2UsdmUpe2dlLmN8fChnZS5jPVtdKSxnZS5jLnB1c2goe3Q6X2UsYTp2ZXx8IlNoZWV0SlMifSl9LHkuc2hlZXRfc2V0X2FycmF5X2Zvcm11bGE9ZnVuY3Rpb24oZ2UsX2UsdmUpe2Zvcih2YXIgU2U9InN0cmluZyIhPXR5cGVv'@; put 'ZiBfZT9fZTpPaShfZSksSGU9InN0cmluZyI9PXR5cGVvZiBfZT9fZTpPbyhfZSksQmU9U2Uucy5yO0JlPD1TZS5lLnI7KytCZSlmb3IodmFyIEdlPVNlLnMuYztHZTw9U2UuZS5jOysrR2Upe3ZhciBudD1RKGdlLEJlLEdlKTtudC50PSJuIixudC5GPUhlLGRlbGV0ZSBudC52LEJlPT1TZS5z'@; put 'LnImJkdlPT1TZS5zLmMmJihudC5mPXZlKX1yZXR1cm4gZ2V9fShxbyksaGUmJmZ1bmN0aW9uKCl7dmFyIHk9Rig1MTc5MykuUmVhZGFibGU7TS5zdHJlYW09e3RvX2pzb246ZnVuY3Rpb24ocmUsZ2Upe3ZhciBfZT15KHtvYmplY3RNb2RlOiEwfSk7aWYobnVsbD09cmV8fG51bGw9PXJlWyIh'@; put 'cmVmIl0pcmV0dXJuIF9lLnB1c2gobnVsbCksX2U7dmFyIHZlPXt0OiJuIix2OjB9LFNlPTAsSGU9MSxCZT1bXSxHZT0wLG50PSIiLGR0PXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0sQ3Q9Z2V8fHt9LGN0PW51bGwhPUN0LnJhbmdlP0N0LnJhbmdlOnJlWyIhcmVmIl07c3dpdGNoKDE9PT1D'@; put 'dC5oZWFkZXI/U2U9MToiQSI9PT1DdC5oZWFkZXI/U2U9MjpBcnJheS5pc0FycmF5KEN0LmhlYWRlcikmJihTZT0zKSx0eXBlb2YgY3Qpe2Nhc2Uic3RyaW5nIjpkdD1PaShjdCk7YnJlYWs7Y2FzZSJudW1iZXIiOihkdD1PaShyZVsiIXJlZiJdKSkucy5yPWN0O2JyZWFrO2RlZmF1bHQ6ZHQ9'@; put 'Y3R9U2U+MCYmKEhlPTApO3ZhciBidD1IcyhkdC5zLnIpLEZ0PVtdLGt0PTAsVHQ9QXJyYXkuaXNBcnJheShyZSksWnQ9ZHQucy5yLHBuPTAsS249MDtmb3IoVHQmJiFyZVtadF0mJihyZVtadF09W10pLHBuPWR0LnMuYztwbjw9ZHQuZS5jOysrcG4pc3dpdGNoKEZ0W3BuXT1OcyhwbiksdmU9'@; put 'VHQ/cmVbWnRdW3BuXTpyZVtGdFtwbl0rYnRdLFNlKXtjYXNlIDE6QmVbcG5dPXBuLWR0LnMuYzticmVhaztjYXNlIDI6QmVbcG5dPUZ0W3BuXTticmVhaztjYXNlIDM6QmVbcG5dPUN0LmhlYWRlcltwbi1kdC5zLmNdO2JyZWFrO2RlZmF1bHQ6Zm9yKG51bGw9PXZlJiYodmU9e3c6Il9fRU1Q'@; put 'VFkiLHQ6InMifSksbnQ9R2U9Y3UodmUsbnVsbCxDdCksa3Q9MCxLbj0wO0tuPEJlLmxlbmd0aDsrK0tuKUJlW0tuXT09bnQmJihudD1HZSsiXyIrICsra3QpO0JlW3BuXT1udH1yZXR1cm4gWnQ9ZHQucy5yK0hlLF9lLl9yZWFkPWZ1bmN0aW9uKCl7aWYoWnQ+ZHQuZS5yKXJldHVybiBfZS5w'@; put 'dXNoKG51bGwpO2Zvcig7WnQ8PWR0LmUucjspe3ZhciB1bj16TShyZSxkdCxadCxGdCxTZSxCZSxUdCxDdCk7aWYoKytadCwhMT09PXVuLmlzZW1wdHl8fCgxPT09U2U/ITEhPT1DdC5ibGFua3Jvd3M6Q3QuYmxhbmtyb3dzKSl7X2UucHVzaCh1bi5yb3cpO2JyZWFrfX19LF9lfSx0b19odG1s'@; put 'OmZ1bmN0aW9uKHJlLGdlKXt2YXIgX2U9eSgpLHZlPWdlfHx7fSxIZT1udWxsIT12ZS5mb290ZXI/dmUuZm9vdGVyOkZ1LkVORDtfZS5wdXNoKG51bGwhPXZlLmhlYWRlcj92ZS5oZWFkZXI6RnUuQkVHSU4pO3ZhciBCZT1XcyhyZVsiIXJlZiJdKTt2ZS5kZW5zZT1BcnJheS5pc0FycmF5KHJl'@; put 'KSxfZS5wdXNoKEZ1Ll9wcmVhbWJsZShyZSxCZSx2ZSkpO3ZhciBHZT1CZS5zLnIsbnQ9ITEsZHQ9W107cmV0dXJuIF9lLl9yZWFkPWZ1bmN0aW9uKCl7aWYoR2U+QmUuZS5yKXJldHVybiBudHx8KG50PSEwLF9lLnB1c2goIjwvdGFibGU+IitIZSkpLF9lLnB1c2gobnVsbCk7Zm9yKDtHZTw9'@; put 'QmUuZS5yOyl7X2UucHVzaChGdS5fcm93KHJlLEJlLEdlLHZlLGR0LCIiKSksKytHZTticmVha319LF9lfSx0b19jc3Y6ZnVuY3Rpb24ocmUsZ2Upe3ZhciBfZT15KCksdmU9Z2U/P3t9O2lmKG51bGw9PXJlfHxudWxsPT1yZVsiIXJlZiJdKXJldHVybiBfZS5wdXNoKG51bGwpLF9lO3ZhciBT'@; put 'ZT1PaShyZVsiIXJlZiJdKSxIZT12b2lkIDAhPT12ZS5GUz92ZS5GUzoiLCIsQmU9SGUuY2hhckNvZGVBdCgwKSxHZT12b2lkIDAhPT12ZS5SUz92ZS5SUzoiXG4iLG50PUdlLmNoYXJDb2RlQXQoMCksZHQ9bmV3IFJlZ0V4cCgoInwiPT1IZT8iXFx8IjpIZSkrIiskIiksQ3Q9IiIsY3Q9W107'@; put 'dmUuZGVuc2U9QXJyYXkuaXNBcnJheShyZSk7Zm9yKHZhciBidD12ZS5za2lwSGlkZGVuJiZyZVsiIWNvbHMiXXx8W10sRnQ9dmUuc2tpcEhpZGRlbiYmcmVbIiFyb3dzIl18fFtdLGt0PVNlLnMuYztrdDw9U2UuZS5jOysra3QpKGJ0W2t0XXx8e30pLmhpZGRlbnx8KGN0W2t0XT1OcyhrdCkp'@; put 'O3ZhciBUdD1TZS5zLnIsWnQ9ITE7cmV0dXJuIF9lLl9yZWFkPWZ1bmN0aW9uKCl7aWYoIVp0KXJldHVybiBadD0hMCxfZS5wdXNoKCJcdWZlZmYiKTtmb3IoO1R0PD1TZS5lLnI7KWlmKCsrVHQsIShGdFtUdC0xXXx8e30pLmhpZGRlbiYmbnVsbCE9KEN0PVVNKHJlLFNlLFR0LTEsY3QsQmUs'@; put 'bnQsSGUsdmUpKSl7dmUuc3RyaXAmJihDdD1DdC5yZXBsYWNlKGR0LCIiKSksX2UucHVzaChDdCtHZSk7YnJlYWt9cmV0dXJuIFR0PlNlLmUucj9fZS5wdXNoKG51bGwpOnZvaWQgMH0sX2V9fX0oKSxNLnBhcnNlX3hsc2NmYj1fNSxNLnBhcnNlX3ppcD1ITSxNLnJlYWQ9X2YsTS5yZWFkRmls'@; put 'ZT1nXyxNLnJlYWRGaWxlU3luYz1nXyxNLndyaXRlPUM1LE0ud3JpdGVGaWxlPVM1LE0ud3JpdGVGaWxlU3luYz1TNSxNLndyaXRlRmlsZUFzeW5jPWZ1bmN0aW9uIGJmKHksUCxMLFEpe3ZhciByZT1MfHx7fTtyZS50eXBlPSJmaWxlIixyZS5maWxlPXksdDEocmUpLHJlLnR5cGU9ImJ1ZmZl'@; put 'ciI7dmFyIGdlPVE7cmV0dXJuIGdlIGluc3RhbmNlb2YgRnVuY3Rpb258fChnZT1MKSxXZS53cml0ZUZpbGUoeSxDNShQLHJlKSxnZSl9LE0uc2V0X2RhdGVfc3R5bGU9ZnVuY3Rpb24gemUoeSl7c3dpdGNoKHkpe2Nhc2UgMDpNZSgpO2JyZWFrO2Nhc2UgMTohZnVuY3Rpb24gRGUoKXt2YXIg'@; put 'eT1uZXcgRGF0ZTtYZT1xZS5nZXRUaW1lKCkrNmU0Kih5LmdldFRpbWV6b25lT2Zmc2V0KCktcWUuZ2V0VGltZXpvbmVPZmZzZXQoKSk7dmFyIFA9eS5nZXRUaW1lem9uZU9mZnNldCgpO1VlPWZ1bmN0aW9uKFEscmUpe3ZhciBnZT1RLmdldFRpbWUoKTtyZXR1cm4gcmUmJihnZS09MTI2MzE2'@; put 'OGU1KSwoZ2UtKHFlLmdldFRpbWUoKSs2ZTQqKFEuZ2V0VGltZXpvbmVPZmZzZXQoKS1xZS5nZXRUaW1lem9uZU9mZnNldCgpKSkpLzg2NGU1fSxodD1mdW5jdGlvbihRKXt2YXIgcmU9bmV3IERhdGU7cmV0dXJuIHJlLnNldFRpbWUoMjQqUSo2MCo2MCoxZTMrWGUpLHJlLmdldFRpbWV6b25l'@; put 'T2Zmc2V0KCkhPT1QJiZyZS5zZXRUaW1lKHJlLmdldFRpbWUoKSs2ZTQqKHJlLmdldFRpbWV6b25lT2Zmc2V0KCktUCkpLHJlfX0oKX19LE0udXRpbHM9cW8sTS5TU0Y9dyx0eXBlb2YgamU8InUiJiYoTS5DRkI9amUpfShJZSl9LDI3NDE0OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijtjb25z'@; put 'dCBhZT1JZTthZS5iaWdudW09Rig1MDQ3KSxhZS5kZWZpbmU9Rig5MDMwMikuZGVmaW5lLGFlLmJhc2U9Rig0MDUxMCksYWUuY29uc3RhbnRzPUYoNDQxNTUpLGFlLmRlY29kZXJzPUYoNzEzMDEpLGFlLmVuY29kZXJzPUYoMjM2OTMpfSw5MDMwMjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7'@; put 'Y29uc3QgYWU9RigyMzY5MykseD1GKDcxMzAxKSxtPUYoNjY2OTgpO2Z1bmN0aW9uIE0oTyxSKXt0aGlzLm5hbWU9Tyx0aGlzLmJvZHk9Uix0aGlzLmRlY29kZXJzPXt9LHRoaXMuZW5jb2RlcnM9e319SWUuZGVmaW5lPWZ1bmN0aW9uKFIseil7cmV0dXJuIG5ldyBNKFIseil9LE0ucHJvdG90'@; put 'eXBlLl9jcmVhdGVOYW1lZD1mdW5jdGlvbihSKXtjb25zdCB6PXRoaXMubmFtZTtmdW5jdGlvbiBLKEkpe3RoaXMuX2luaXROYW1lZChJLHopfXJldHVybiBtKEssUiksSy5wcm90b3R5cGUuX2luaXROYW1lZD1mdW5jdGlvbihrLEUpe1IuY2FsbCh0aGlzLGssRSl9LG5ldyBLKHRoaXMpfSxN'@; put 'LnByb3RvdHlwZS5fZ2V0RGVjb2Rlcj1mdW5jdGlvbihSKXtyZXR1cm4gdGhpcy5kZWNvZGVycy5oYXNPd25Qcm9wZXJ0eShSPVJ8fCJkZXIiKXx8KHRoaXMuZGVjb2RlcnNbUl09dGhpcy5fY3JlYXRlTmFtZWQoeFtSXSkpLHRoaXMuZGVjb2RlcnNbUl19LE0ucHJvdG90eXBlLmRlY29kZT1m'@; put 'dW5jdGlvbihSLHosSyl7cmV0dXJuIHRoaXMuX2dldERlY29kZXIoeikuZGVjb2RlKFIsSyl9LE0ucHJvdG90eXBlLl9nZXRFbmNvZGVyPWZ1bmN0aW9uKFIpe3JldHVybiB0aGlzLmVuY29kZXJzLmhhc093blByb3BlcnR5KFI9Unx8ImRlciIpfHwodGhpcy5lbmNvZGVyc1tSXT10aGlzLl9j'@; put 'cmVhdGVOYW1lZChhZVtSXSkpLHRoaXMuZW5jb2RlcnNbUl19LE0ucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihSLHosSyl7cmV0dXJuIHRoaXMuX2dldEVuY29kZXIoeikuZW5jb2RlKFIsSyl9fSw3NTcyMDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7Y29uc3QgYWU9Rig2NjY5OCkseD1G'@; put 'KDk1Njg0KS5iLG09RigyNDE3OSkuQnVmZmVyO2Z1bmN0aW9uIGxlKE8sUil7eC5jYWxsKHRoaXMsUiksbS5pc0J1ZmZlcihPKT8odGhpcy5iYXNlPU8sdGhpcy5vZmZzZXQ9MCx0aGlzLmxlbmd0aD1PLmxlbmd0aCk6dGhpcy5lcnJvcigiSW5wdXQgbm90IEJ1ZmZlciIpfWZ1bmN0aW9uIE0o'@; put 'TyxSKXtpZihBcnJheS5pc0FycmF5KE8pKXRoaXMubGVuZ3RoPTAsdGhpcy52YWx1ZT1PLm1hcChmdW5jdGlvbih6KXtyZXR1cm4gTS5pc0VuY29kZXJCdWZmZXIoeil8fCh6PW5ldyBNKHosUikpLHRoaXMubGVuZ3RoKz16Lmxlbmd0aCx6fSx0aGlzKTtlbHNlIGlmKCJudW1iZXIiPT10eXBl'@; put 'b2YgTyl7aWYoISgwPD1PJiZPPD0yNTUpKXJldHVybiBSLmVycm9yKCJub24tYnl0ZSBFbmNvZGVyQnVmZmVyIHZhbHVlIik7dGhpcy52YWx1ZT1PLHRoaXMubGVuZ3RoPTF9ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIE8pdGhpcy52YWx1ZT1PLHRoaXMubGVuZ3RoPW0uYnl0ZUxlbmd0aChP'@; put 'KTtlbHNle2lmKCFtLmlzQnVmZmVyKE8pKXJldHVybiBSLmVycm9yKCJVbnN1cHBvcnRlZCB0eXBlOiAiK3R5cGVvZiBPKTt0aGlzLnZhbHVlPU8sdGhpcy5sZW5ndGg9Ty5sZW5ndGh9fWFlKGxlLHgpLEllLkM9bGUsbGUuaXNEZWNvZGVyQnVmZmVyPWZ1bmN0aW9uKFIpe3JldHVybiBSIGlu'@; put 'c3RhbmNlb2YgbGV8fCJvYmplY3QiPT10eXBlb2YgUiYmbS5pc0J1ZmZlcihSLmJhc2UpJiYiRGVjb2RlckJ1ZmZlciI9PT1SLmNvbnN0cnVjdG9yLm5hbWUmJiJudW1iZXIiPT10eXBlb2YgUi5vZmZzZXQmJiJudW1iZXIiPT10eXBlb2YgUi5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBS'@; put 'LnNhdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBSLnJlc3RvcmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBSLmlzRW1wdHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBSLnJlYWRVSW50OCYmImZ1bmN0aW9uIj09dHlwZW9mIFIuc2tpcCYmImZ1bmN0aW9uIj09dHlwZW9mIFIucmF3fSxsZS5wcm90b3R5cGUu'@; put 'c2F2ZT1mdW5jdGlvbigpe3JldHVybntvZmZzZXQ6dGhpcy5vZmZzZXQscmVwb3J0ZXI6eC5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpfX0sbGUucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24oUil7Y29uc3Qgej1uZXcgbGUodGhpcy5iYXNlKTtyZXR1cm4gei5vZmZzZXQ9Ui5vZmZzZXQs'@; put 'ei5sZW5ndGg9dGhpcy5vZmZzZXQsdGhpcy5vZmZzZXQ9Ui5vZmZzZXQseC5wcm90b3R5cGUucmVzdG9yZS5jYWxsKHRoaXMsUi5yZXBvcnRlciksen0sbGUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXQ9PT10aGlzLmxlbmd0aH0sbGUucHJvdG90eXBl'@; put 'LnJlYWRVSW50OD1mdW5jdGlvbihSKXtyZXR1cm4gdGhpcy5vZmZzZXQrMTw9dGhpcy5sZW5ndGg/dGhpcy5iYXNlLnJlYWRVSW50OCh0aGlzLm9mZnNldCsrLCEwKTp0aGlzLmVycm9yKFJ8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0sbGUucHJvdG90eXBlLnNraXA9ZnVuY3Rpb24oUix6'@; put 'KXtpZighKHRoaXMub2Zmc2V0K1I8PXRoaXMubGVuZ3RoKSlyZXR1cm4gdGhpcy5lcnJvcih6fHwiRGVjb2RlckJ1ZmZlciBvdmVycnVuIik7Y29uc3QgSz1uZXcgbGUodGhpcy5iYXNlKTtyZXR1cm4gSy5fcmVwb3J0ZXJTdGF0ZT10aGlzLl9yZXBvcnRlclN0YXRlLEsub2Zmc2V0PXRoaXMu'@; put 'b2Zmc2V0LEsubGVuZ3RoPXRoaXMub2Zmc2V0K1IsdGhpcy5vZmZzZXQrPVIsS30sbGUucHJvdG90eXBlLnJhdz1mdW5jdGlvbihSKXtyZXR1cm4gdGhpcy5iYXNlLnNsaWNlKFI/Ui5vZmZzZXQ6dGhpcy5vZmZzZXQsdGhpcy5sZW5ndGgpfSxJZS5SPU0sTS5pc0VuY29kZXJCdWZmZXI9ZnVu'@; put 'Y3Rpb24oUil7cmV0dXJuIFIgaW5zdGFuY2VvZiBNfHwib2JqZWN0Ij09dHlwZW9mIFImJiJFbmNvZGVyQnVmZmVyIj09PVIuY29uc3RydWN0b3IubmFtZSYmIm51bWJlciI9PXR5cGVvZiBSLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIFIuam9pbn0sTS5wcm90b3R5cGUuam9pbj1mdW5j'@; put 'dGlvbihSLHope3JldHVybiBSfHwoUj1tLmFsbG9jKHRoaXMubGVuZ3RoKSksenx8KHo9MCksMD09PXRoaXMubGVuZ3RofHwoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKT90aGlzLnZhbHVlLmZvckVhY2goZnVuY3Rpb24oSyl7Sy5qb2luKFIseikseis9Sy5sZW5ndGh9KTooIm51bWJlciI9'@; put 'PXR5cGVvZiB0aGlzLnZhbHVlP1Jbel09dGhpcy52YWx1ZToic3RyaW5nIj09dHlwZW9mIHRoaXMudmFsdWU/Ui53cml0ZSh0aGlzLnZhbHVlLHopOm0uaXNCdWZmZXIodGhpcy52YWx1ZSkmJnRoaXMudmFsdWUuY29weShSLHopLHorPXRoaXMubGVuZ3RoKSksUn19LDQwNTEwOihhdCxJZSxG'@; put 'KT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBhZT1JZTthZS5SZXBvcnRlcj1GKDk1Njg0KS5iLGFlLkRlY29kZXJCdWZmZXI9Rig3NTcyMCkuQyxhZS5FbmNvZGVyQnVmZmVyPUYoNzU3MjApLlIsYWUuTm9kZT1GKDU4NTMzKX0sNTg1MzM6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO2NvbnN0IGFl'@; put 'PUYoOTU2ODQpLmIseD1GKDc1NzIwKS5SLG09Rig3NTcyMCkuQyxsZT1GKDU3Nzk4KSxNPVsic2VxIiwic2Vxb2YiLCJzZXQiLCJzZXRvZiIsIm9iamlkIiwiYm9vbCIsImdlbnRpbWUiLCJ1dGN0aW1lIiwibnVsbF8iLCJlbnVtIiwiaW50Iiwib2JqRGVzYyIsImJpdHN0ciIsImJtcHN0ciIs'@; put 'ImNoYXJzdHIiLCJnZW5zdHIiLCJncmFwaHN0ciIsImlhNXN0ciIsImlzbzY0NnN0ciIsIm51bXN0ciIsIm9jdHN0ciIsInByaW50c3RyIiwidDYxc3RyIiwidW5pc3RyIiwidXRmOHN0ciIsInZpZGVvc3RyIl0sTz1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJp'@; put 'bXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KE0pO2Z1bmN0aW9uIHooSSxrLEUpe2NvbnN0IGo9e307dGhpcy5fYmFzZVN0YXRlPWosai5uYW1lPUUsai5lbmM9SSxqLnBhcmVudD1rfHxudWxsLGouY2hpbGRyZW49bnVsbCxqLnRhZz1udWxsLGouYXJn'@; put 'cz1udWxsLGoucmV2ZXJzZUFyZ3M9bnVsbCxqLmNob2ljZT1udWxsLGoub3B0aW9uYWw9ITEsai5hbnk9ITEsai5vYmo9ITEsai51c2U9bnVsbCxqLnVzZURlY29kZXI9bnVsbCxqLmtleT1udWxsLGouZGVmYXVsdD1udWxsLGouZXhwbGljaXQ9bnVsbCxqLmltcGxpY2l0PW51bGwsai5jb250'@; put 'YWlucz1udWxsLGoucGFyZW50fHwoai5jaGlsZHJlbj1bXSx0aGlzLl93cmFwKCkpfWF0LmV4cG9ydHM9ejtjb25zdCBLPVsiZW5jIiwicGFyZW50IiwiY2hpbGRyZW4iLCJ0YWciLCJhcmdzIiwicmV2ZXJzZUFyZ3MiLCJjaG9pY2UiLCJvcHRpb25hbCIsImFueSIsIm9iaiIsInVzZSIsImFs'@; put 'dGVyZWRVc2UiLCJrZXkiLCJkZWZhdWx0IiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImNvbnRhaW5zIl07ei5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtjb25zdCBrPXRoaXMuX2Jhc2VTdGF0ZSxFPXt9O0suZm9yRWFjaChmdW5jdGlvbihWKXtFW1ZdPWtbVl19KTtjb25zdCBqPW5ldyB0'@; put 'aGlzLmNvbnN0cnVjdG9yKEUucGFyZW50KTtyZXR1cm4gai5fYmFzZVN0YXRlPUUsan0sei5wcm90b3R5cGUuX3dyYXA9ZnVuY3Rpb24oKXtjb25zdCBrPXRoaXMuX2Jhc2VTdGF0ZTtPLmZvckVhY2goZnVuY3Rpb24oRSl7dGhpc1tFXT1mdW5jdGlvbigpe2NvbnN0IFY9bmV3IHRoaXMuY29u'@; put 'c3RydWN0b3IodGhpcyk7cmV0dXJuIGsuY2hpbGRyZW4ucHVzaChWKSxWW0VdLmFwcGx5KFYsYXJndW1lbnRzKX19LHRoaXMpfSx6LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihrKXtjb25zdCBFPXRoaXMuX2Jhc2VTdGF0ZTtsZShudWxsPT09RS5wYXJlbnQpLGsuY2FsbCh0aGlzKSxFLmNo'@; put 'aWxkcmVuPUUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBqLl9iYXNlU3RhdGUucGFyZW50PT09dGhpc30sdGhpcyksbGUuZXF1YWwoRS5jaGlsZHJlbi5sZW5ndGgsMSwiUm9vdCBub2RlIGNhbiBoYXZlIG9ubHkgb25lIGNoaWxkIil9LHoucHJvdG90eXBlLl91c2VBcmdz'@; put 'PWZ1bmN0aW9uKGspe2NvbnN0IEU9dGhpcy5fYmFzZVN0YXRlLGo9ay5maWx0ZXIoZnVuY3Rpb24oVil7cmV0dXJuIFYgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yfSx0aGlzKTtrPWsuZmlsdGVyKGZ1bmN0aW9uKFYpe3JldHVybiEoViBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3Ip'@; put 'fSx0aGlzKSwwIT09ai5sZW5ndGgmJihsZShudWxsPT09RS5jaGlsZHJlbiksRS5jaGlsZHJlbj1qLGouZm9yRWFjaChmdW5jdGlvbihWKXtWLl9iYXNlU3RhdGUucGFyZW50PXRoaXN9LHRoaXMpKSwwIT09ay5sZW5ndGgmJihsZShudWxsPT09RS5hcmdzKSxFLmFyZ3M9ayxFLnJldmVyc2VB'@; put 'cmdzPWsubWFwKGZ1bmN0aW9uKFYpe2lmKCJvYmplY3QiIT10eXBlb2YgVnx8Vi5jb25zdHJ1Y3RvciE9PU9iamVjdClyZXR1cm4gVjtjb25zdCBCPXt9O3JldHVybiBPYmplY3Qua2V5cyhWKS5mb3JFYWNoKGZ1bmN0aW9uKFkpe1k9PSgwfFkpJiYoWXw9MCksQltWW1ldXT1ZfSksQn0pKX0s'@; put 'WyJfcGVla1RhZyIsIl9kZWNvZGVUYWciLCJfdXNlIiwiX2RlY29kZVN0ciIsIl9kZWNvZGVPYmppZCIsIl9kZWNvZGVUaW1lIiwiX2RlY29kZU51bGwiLCJfZGVjb2RlSW50IiwiX2RlY29kZUJvb2wiLCJfZGVjb2RlTGlzdCIsIl9lbmNvZGVDb21wb3NpdGUiLCJfZW5jb2RlU3RyIiwiX2Vu'@; put 'Y29kZU9iamlkIiwiX2VuY29kZVRpbWUiLCJfZW5jb2RlTnVsbCIsIl9lbmNvZGVJbnQiLCJfZW5jb2RlQm9vbCJdLmZvckVhY2goZnVuY3Rpb24oSSl7ei5wcm90b3R5cGVbSV09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoSSsiIG5vdCBpbXBsZW1lbnRlZCBmb3IgZW5jb2Rpbmc6ICIr'@; put 'dGhpcy5fYmFzZVN0YXRlLmVuYyl9fSksTS5mb3JFYWNoKGZ1bmN0aW9uKEkpe3oucHJvdG90eXBlW0ldPWZ1bmN0aW9uKCl7Y29uc3QgRT10aGlzLl9iYXNlU3RhdGUsaj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBsZShudWxsPT09RS50YWcpLEUudGFn'@; put 'PUksdGhpcy5fdXNlQXJncyhqKSx0aGlzfX0pLHoucHJvdG90eXBlLnVzZT1mdW5jdGlvbihrKXtsZShrKTtjb25zdCBFPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gbGUobnVsbD09PUUudXNlKSxFLnVzZT1rLHRoaXN9LHoucHJvdG90eXBlLm9wdGlvbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRo'@; put 'aXMuX2Jhc2VTdGF0ZS5vcHRpb25hbD0hMCx0aGlzfSx6LnByb3RvdHlwZS5kZWY9ZnVuY3Rpb24oayl7Y29uc3QgRT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGxlKG51bGw9PT1FLmRlZmF1bHQpLEUuZGVmYXVsdD1rLEUub3B0aW9uYWw9ITAsdGhpc30sei5wcm90b3R5cGUuZXhwbGljaXQ9'@; put 'ZnVuY3Rpb24oayl7Y29uc3QgRT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGxlKG51bGw9PT1FLmV4cGxpY2l0JiZudWxsPT09RS5pbXBsaWNpdCksRS5leHBsaWNpdD1rLHRoaXN9LHoucHJvdG90eXBlLmltcGxpY2l0PWZ1bmN0aW9uKGspe2NvbnN0IEU9dGhpcy5fYmFzZVN0YXRlO3JldHVy'@; put 'biBsZShudWxsPT09RS5leHBsaWNpdCYmbnVsbD09PUUuaW1wbGljaXQpLEUuaW1wbGljaXQ9ayx0aGlzfSx6LnByb3RvdHlwZS5vYmo9ZnVuY3Rpb24oKXtjb25zdCBrPXRoaXMuX2Jhc2VTdGF0ZSxFPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIGsub2Jq'@; put 'PSEwLDAhPT1FLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhFKSx0aGlzfSx6LnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24oayl7Y29uc3QgRT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGxlKG51bGw9PT1FLmtleSksRS5rZXk9ayx0aGlzfSx6LnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'dGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSx6LnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24oayl7Y29uc3QgRT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIGxlKG51bGw9PT1FLmNob2ljZSksRS5jaG9pY2U9ayx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKGspLm1hcChmdW5jdGlvbihq'@; put 'KXtyZXR1cm4ga1tqXX0pKSx0aGlzfSx6LnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihrKXtjb25zdCBFPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gbGUobnVsbD09PUUudXNlKSxFLmNvbnRhaW5zPWssdGhpc30sei5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbihrLEUpe2NvbnN0IGo9'@; put 'dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1qLnBhcmVudClyZXR1cm4gay53cmFwUmVzdWx0KGouY2hpbGRyZW5bMF0uX2RlY29kZShrLEUpKTtsZXQgWCxWPWouZGVmYXVsdCxCPSEwLFk9bnVsbDtpZihudWxsIT09ai5rZXkmJihZPWsuZW50ZXJLZXkoai5rZXkpKSxqLm9wdGlvbmFsKXts'@; put 'ZXQgVT1udWxsO2lmKG51bGwhPT1qLmV4cGxpY2l0P1U9ai5leHBsaWNpdDpudWxsIT09ai5pbXBsaWNpdD9VPWouaW1wbGljaXQ6bnVsbCE9PWoudGFnJiYoVT1qLnRhZyksbnVsbCE9PVV8fGouYW55KXtpZihCPXRoaXMuX3BlZWtUYWcoayxVLGouYW55KSxrLmlzRXJyb3IoQikpcmV0dXJu'@; put 'IEJ9ZWxzZXtjb25zdCBxPWsuc2F2ZSgpO3RyeXtudWxsPT09ai5jaG9pY2U/dGhpcy5fZGVjb2RlR2VuZXJpYyhqLnRhZyxrLEUpOnRoaXMuX2RlY29kZUNob2ljZShrLEUpLEI9ITB9Y2F0Y2h7Qj0hMX1rLnJlc3RvcmUocSl9fWlmKGoub2JqJiZCJiYoWD1rLmVudGVyT2JqZWN0KCkpLEIp'@; put 'e2lmKG51bGwhPT1qLmV4cGxpY2l0KXtjb25zdCBxPXRoaXMuX2RlY29kZVRhZyhrLGouZXhwbGljaXQpO2lmKGsuaXNFcnJvcihxKSlyZXR1cm4gcTtrPXF9Y29uc3QgVT1rLm9mZnNldDtpZihudWxsPT09ai51c2UmJm51bGw9PT1qLmNob2ljZSl7bGV0IHE7ai5hbnkmJihxPWsuc2F2ZSgp'@; put 'KTtjb25zdCBlZT10aGlzLl9kZWNvZGVUYWcoayxudWxsIT09ai5pbXBsaWNpdD9qLmltcGxpY2l0OmoudGFnLGouYW55KTtpZihrLmlzRXJyb3IoZWUpKXJldHVybiBlZTtqLmFueT9WPWsucmF3KHEpOms9ZWV9aWYoRSYmRS50cmFjayYmbnVsbCE9PWoudGFnJiZFLnRyYWNrKGsucGF0aCgp'@; put 'LFUsay5sZW5ndGgsInRhZ2dlZCIpLEUmJkUudHJhY2smJm51bGwhPT1qLnRhZyYmRS50cmFjayhrLnBhdGgoKSxrLm9mZnNldCxrLmxlbmd0aCwiY29udGVudCIpLGouYW55fHwoVj1udWxsPT09ai5jaG9pY2U/dGhpcy5fZGVjb2RlR2VuZXJpYyhqLnRhZyxrLEUpOnRoaXMuX2RlY29kZUNo'@; put 'b2ljZShrLEUpKSxrLmlzRXJyb3IoVikpcmV0dXJuIFY7aWYoIWouYW55JiZudWxsPT09ai5jaG9pY2UmJm51bGwhPT1qLmNoaWxkcmVuJiZqLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oZWUpe2VlLl9kZWNvZGUoayxFKX0pLGouY29udGFpbnMmJigib2N0c3RyIj09PWoudGFnfHwiYml0'@; put 'c3RyIj09PWoudGFnKSl7Y29uc3QgcT1uZXcgbShWKTtWPXRoaXMuX2dldFVzZShqLmNvbnRhaW5zLGsuX3JlcG9ydGVyU3RhdGUub2JqKS5fZGVjb2RlKHEsRSl9fXJldHVybiBqLm9iaiYmQiYmKFY9ay5sZWF2ZU9iamVjdChYKSksbnVsbD09PWoua2V5fHxudWxsPT09ViYmITAhPT1CP251'@; put 'bGwhPT1ZJiZrLmV4aXRLZXkoWSk6ay5sZWF2ZUtleShZLGoua2V5LFYpLFZ9LHoucHJvdG90eXBlLl9kZWNvZGVHZW5lcmljPWZ1bmN0aW9uKGssRSxqKXtjb25zdCBWPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4ic2VxIj09PWt8fCJzZXQiPT09az9udWxsOiJzZXFvZiI9PT1rfHwic2V0b2Yi'@; put 'PT09az90aGlzLl9kZWNvZGVMaXN0KEUsayxWLmFyZ3NbMF0saik6L3N0ciQvLnRlc3Qoayk/dGhpcy5fZGVjb2RlU3RyKEUsayxqKToib2JqaWQiPT09ayYmVi5hcmdzP3RoaXMuX2RlY29kZU9iamlkKEUsVi5hcmdzWzBdLFYuYXJnc1sxXSxqKToib2JqaWQiPT09az90aGlzLl9kZWNvZGVP'@; put 'YmppZChFLG51bGwsbnVsbCxqKToiZ2VudGltZSI9PT1rfHwidXRjdGltZSI9PT1rP3RoaXMuX2RlY29kZVRpbWUoRSxrLGopOiJudWxsXyI9PT1rP3RoaXMuX2RlY29kZU51bGwoRSxqKToiYm9vbCI9PT1rP3RoaXMuX2RlY29kZUJvb2woRSxqKToib2JqRGVzYyI9PT1rP3RoaXMuX2RlY29k'@; put 'ZVN0cihFLGssaik6ImludCI9PT1rfHwiZW51bSI9PT1rP3RoaXMuX2RlY29kZUludChFLFYuYXJncyYmVi5hcmdzWzBdLGopOm51bGwhPT1WLnVzZT90aGlzLl9nZXRVc2UoVi51c2UsRS5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUoRSxqKTpFLmVycm9yKCJ1bmtub3duIHRhZzogIitr'@; put 'KX0sei5wcm90b3R5cGUuX2dldFVzZT1mdW5jdGlvbihrLEUpe2NvbnN0IGo9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBqLnVzZURlY29kZXI9dGhpcy5fdXNlKGssRSksbGUobnVsbD09PWoudXNlRGVjb2Rlci5fYmFzZVN0YXRlLnBhcmVudCksai51c2VEZWNvZGVyPWoudXNlRGVjb2Rlci5f'@; put 'YmFzZVN0YXRlLmNoaWxkcmVuWzBdLGouaW1wbGljaXQhPT1qLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdCYmKGoudXNlRGVjb2Rlcj1qLnVzZURlY29kZXIuY2xvbmUoKSxqLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdD1qLmltcGxpY2l0KSxqLnVzZURlY29kZXJ9LHou'@; put 'cHJvdG90eXBlLl9kZWNvZGVDaG9pY2U9ZnVuY3Rpb24oayxFKXtjb25zdCBqPXRoaXMuX2Jhc2VTdGF0ZTtsZXQgVj1udWxsLEI9ITE7cmV0dXJuIE9iamVjdC5rZXlzKGouY2hvaWNlKS5zb21lKGZ1bmN0aW9uKFkpe2NvbnN0IFg9ay5zYXZlKCksVT1qLmNob2ljZVtZXTt0cnl7Y29uc3Qg'@; put 'cT1VLl9kZWNvZGUoayxFKTtpZihrLmlzRXJyb3IocSkpcmV0dXJuITE7Vj17dHlwZTpZLHZhbHVlOnF9LEI9ITB9Y2F0Y2h7cmV0dXJuIGsucmVzdG9yZShYKSwhMX1yZXR1cm4hMH0sdGhpcyksQj9WOmsuZXJyb3IoIkNob2ljZSBub3QgbWF0Y2hlZCIpfSx6LnByb3RvdHlwZS5fY3JlYXRl'@; put 'RW5jb2RlckJ1ZmZlcj1mdW5jdGlvbihrKXtyZXR1cm4gbmV3IHgoayx0aGlzLnJlcG9ydGVyKX0sei5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbihrLEUsail7Y29uc3QgVj10aGlzLl9iYXNlU3RhdGU7aWYobnVsbCE9PVYuZGVmYXVsdCYmVi5kZWZhdWx0PT09aylyZXR1cm47Y29uc3Qg'@; put 'Qj10aGlzLl9lbmNvZGVWYWx1ZShrLEUsaik7cmV0dXJuIHZvaWQgMD09PUJ8fHRoaXMuX3NraXBEZWZhdWx0KEIsRSxqKT92b2lkIDA6Qn0sei5wcm90b3R5cGUuX2VuY29kZVZhbHVlPWZ1bmN0aW9uKGssRSxqKXtjb25zdCBWPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09Vi5wYXJlbnQp'@; put 'cmV0dXJuIFYuY2hpbGRyZW5bMF0uX2VuY29kZShrLEV8fG5ldyBhZSk7bGV0IEI9bnVsbDtpZih0aGlzLnJlcG9ydGVyPUUsVi5vcHRpb25hbCYmdm9pZCAwPT09ayl7aWYobnVsbD09PVYuZGVmYXVsdClyZXR1cm47az1WLmRlZmF1bHR9bGV0IFk9bnVsbCxYPSExO2lmKFYuYW55KUI9dGhp'@; put 'cy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihrKTtlbHNlIGlmKFYuY2hvaWNlKUI9dGhpcy5fZW5jb2RlQ2hvaWNlKGssRSk7ZWxzZSBpZihWLmNvbnRhaW5zKVk9dGhpcy5fZ2V0VXNlKFYuY29udGFpbnMsaikuX2VuY29kZShrLEUpLFg9ITA7ZWxzZSBpZihWLmNoaWxkcmVuKVk9Vi5jaGlsZHJl'@; put 'bi5tYXAoZnVuY3Rpb24oVSl7aWYoIm51bGxfIj09PVUuX2Jhc2VTdGF0ZS50YWcpcmV0dXJuIFUuX2VuY29kZShudWxsLEUsayk7aWYobnVsbD09PVUuX2Jhc2VTdGF0ZS5rZXkpcmV0dXJuIEUuZXJyb3IoIkNoaWxkIHNob3VsZCBoYXZlIGEga2V5Iik7Y29uc3QgcT1FLmVudGVyS2V5KFUu'@; put 'X2Jhc2VTdGF0ZS5rZXkpO2lmKCJvYmplY3QiIT10eXBlb2YgaylyZXR1cm4gRS5lcnJvcigiQ2hpbGQgZXhwZWN0ZWQsIGJ1dCBpbnB1dCBpcyBub3Qgb2JqZWN0Iik7Y29uc3QgZWU9VS5fZW5jb2RlKGtbVS5fYmFzZVN0YXRlLmtleV0sRSxrKTtyZXR1cm4gRS5sZWF2ZUtleShxKSxlZX0s'@; put 'dGhpcykuZmlsdGVyKGZ1bmN0aW9uKFUpe3JldHVybiBVfSksWT10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFkpO2Vsc2UgaWYoInNlcW9mIj09PVYudGFnfHwic2V0b2YiPT09Vi50YWcpe2lmKCFWLmFyZ3N8fDEhPT1WLmFyZ3MubGVuZ3RoKXJldHVybiBFLmVycm9yKCJUb28gbWFueSBh'@; put 'cmdzIGZvciA6ICIrVi50YWcpO2lmKCFBcnJheS5pc0FycmF5KGspKXJldHVybiBFLmVycm9yKCJzZXFvZi9zZXRvZiwgYnV0IGRhdGEgaXMgbm90IEFycmF5Iik7Y29uc3QgVT10aGlzLmNsb25lKCk7VS5fYmFzZVN0YXRlLmltcGxpY2l0PW51bGwsWT10aGlzLl9jcmVhdGVFbmNvZGVyQnVm'@; put 'ZmVyKGsubWFwKGZ1bmN0aW9uKHEpe3JldHVybiB0aGlzLl9nZXRVc2UodGhpcy5fYmFzZVN0YXRlLmFyZ3NbMF0saykuX2VuY29kZShxLEUpfSxVKSl9ZWxzZSBudWxsIT09Vi51c2U/Qj10aGlzLl9nZXRVc2UoVi51c2UsaikuX2VuY29kZShrLEUpOihZPXRoaXMuX2VuY29kZVByaW1pdGl2'@; put 'ZShWLnRhZyxrKSxYPSEwKTtpZighVi5hbnkmJm51bGw9PT1WLmNob2ljZSl7Y29uc3QgVT1udWxsIT09Vi5pbXBsaWNpdD9WLmltcGxpY2l0OlYudGFnLHE9bnVsbD09PVYuaW1wbGljaXQ/InVuaXZlcnNhbCI6ImNvbnRleHQiO251bGw9PT1VP251bGw9PT1WLnVzZSYmRS5lcnJvcigiVGFn'@; put 'IGNvdWxkIGJlIG9taXR0ZWQgb25seSBmb3IgLnVzZSgpIik6bnVsbD09PVYudXNlJiYoQj10aGlzLl9lbmNvZGVDb21wb3NpdGUoVSxYLHEsWSkpfXJldHVybiBudWxsIT09Vi5leHBsaWNpdCYmKEI9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKFYuZXhwbGljaXQsITEsImNvbnRleHQiLEIpKSxC'@; put 'fSx6LnByb3RvdHlwZS5fZW5jb2RlQ2hvaWNlPWZ1bmN0aW9uKGssRSl7Y29uc3Qgaj10aGlzLl9iYXNlU3RhdGUsVj1qLmNob2ljZVtrLnR5cGVdO3JldHVybiBWfHxsZSghMSxrLnR5cGUrIiBub3QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhqLmNob2ljZSkpKSxW'@; put 'Ll9lbmNvZGUoay52YWx1ZSxFKX0sei5wcm90b3R5cGUuX2VuY29kZVByaW1pdGl2ZT1mdW5jdGlvbihrLEUpe2NvbnN0IGo9dGhpcy5fYmFzZVN0YXRlO2lmKC9zdHIkLy50ZXN0KGspKXJldHVybiB0aGlzLl9lbmNvZGVTdHIoRSxrKTtpZigib2JqaWQiPT09ayYmai5hcmdzKXJldHVybiB0'@; put 'aGlzLl9lbmNvZGVPYmppZChFLGoucmV2ZXJzZUFyZ3NbMF0sai5hcmdzWzFdKTtpZigib2JqaWQiPT09aylyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoRSxudWxsLG51bGwpO2lmKCJnZW50aW1lIj09PWt8fCJ1dGN0aW1lIj09PWspcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUoRSxrKTtpZigi'@; put 'bnVsbF8iPT09aylyZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO2lmKCJpbnQiPT09a3x8ImVudW0iPT09aylyZXR1cm4gdGhpcy5fZW5jb2RlSW50KEUsai5hcmdzJiZqLnJldmVyc2VBcmdzWzBdKTtpZigiYm9vbCI9PT1rKXJldHVybiB0aGlzLl9lbmNvZGVCb29sKEUpO2lmKCJvYmpEZXNj'@; put 'Ij09PWspcmV0dXJuIHRoaXMuX2VuY29kZVN0cihFLGspO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdGFnOiAiK2spfSx6LnByb3RvdHlwZS5faXNOdW1zdHI9ZnVuY3Rpb24oayl7cmV0dXJuL15bMC05IF0qJC8udGVzdChrKX0sei5wcm90b3R5cGUuX2lzUHJpbnRzdHI9ZnVuY3Rp'@; put 'b24oayl7cmV0dXJuL15bQS1aYS16MC05ICcoKSssLS4vOj0/XSokLy50ZXN0KGspfX0sOTU2ODQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO2NvbnN0IGFlPUYoNjY2OTgpO2Z1bmN0aW9uIHgobGUpe3RoaXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczpsZXx8'@; put 'e30sZXJyb3JzOltdfX1mdW5jdGlvbiBtKGxlLE0pe3RoaXMucGF0aD1sZSx0aGlzLnJldGhyb3coTSl9SWUuYj14LHgucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24oTSl7cmV0dXJuIE0gaW5zdGFuY2VvZiBtfSx4LnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7Y29uc3QgTT10aGlzLl9y'@; put 'ZXBvcnRlclN0YXRlO3JldHVybntvYmo6TS5vYmoscGF0aExlbjpNLnBhdGgubGVuZ3RofX0seC5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbihNKXtjb25zdCBPPXRoaXMuX3JlcG9ydGVyU3RhdGU7Ty5vYmo9TS5vYmosTy5wYXRoPU8ucGF0aC5zbGljZSgwLE0ucGF0aExlbil9LHgucHJv'@; put 'dG90eXBlLmVudGVyS2V5PWZ1bmN0aW9uKE0pe3JldHVybiB0aGlzLl9yZXBvcnRlclN0YXRlLnBhdGgucHVzaChNKX0seC5wcm90b3R5cGUuZXhpdEtleT1mdW5jdGlvbihNKXtjb25zdCBPPXRoaXMuX3JlcG9ydGVyU3RhdGU7Ty5wYXRoPU8ucGF0aC5zbGljZSgwLE0tMSl9LHgucHJvdG90'@; put 'eXBlLmxlYXZlS2V5PWZ1bmN0aW9uKE0sTyxSKXtjb25zdCB6PXRoaXMuX3JlcG9ydGVyU3RhdGU7dGhpcy5leGl0S2V5KE0pLG51bGwhPT16Lm9iaiYmKHoub2JqW09dPVIpfSx4LnByb3RvdHlwZS5wYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5qb2lu'@; put 'KCIvIil9LHgucHJvdG90eXBlLmVudGVyT2JqZWN0PWZ1bmN0aW9uKCl7Y29uc3QgTT10aGlzLl9yZXBvcnRlclN0YXRlLE89TS5vYmo7cmV0dXJuIE0ub2JqPXt9LE99LHgucHJvdG90eXBlLmxlYXZlT2JqZWN0PWZ1bmN0aW9uKE0pe2NvbnN0IE89dGhpcy5fcmVwb3J0ZXJTdGF0ZSxSPU8u'@; put 'b2JqO3JldHVybiBPLm9iaj1NLFJ9LHgucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKE0pe2xldCBPO2NvbnN0IFI9dGhpcy5fcmVwb3J0ZXJTdGF0ZSx6PU0gaW5zdGFuY2VvZiBtO2lmKE89ej9NOm5ldyBtKFIucGF0aC5tYXAoZnVuY3Rpb24oSyl7cmV0dXJuIlsiK0pTT04uc3RyaW5naWZ5'@; put 'KEspKyJdIn0pLmpvaW4oIiIpLE0ubWVzc2FnZXx8TSxNLnN0YWNrKSwhUi5vcHRpb25zLnBhcnRpYWwpdGhyb3cgTztyZXR1cm4genx8Ui5lcnJvcnMucHVzaChPKSxPfSx4LnByb3RvdHlwZS53cmFwUmVzdWx0PWZ1bmN0aW9uKE0pe2NvbnN0IE89dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyZXR1'@; put 'cm4gTy5vcHRpb25zLnBhcnRpYWw/e3Jlc3VsdDp0aGlzLmlzRXJyb3IoTSk/bnVsbDpNLGVycm9yczpPLmVycm9yc306TX0sYWUobSxFcnJvciksbS5wcm90b3R5cGUucmV0aHJvdz1mdW5jdGlvbihNKXtpZih0aGlzLm1lc3NhZ2U9TSsiIGF0OiAiKyh0aGlzLnBhdGh8fCIoc2hhbGxvdyki'@; put 'KSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxtKSwhdGhpcy5zdGFjayl0cnl7dGhyb3cgbmV3IEVycm9yKHRoaXMubWVzc2FnZSl9Y2F0Y2goTyl7dGhpcy5zdGFjaz1PLnN0YWNrfXJldHVybiB0aGlzfX0sNjUwODY6KGF0LEllKT0+eyJ1'@; put 'c2Ugc3RyaWN0IjtmdW5jdGlvbiBGKGFlKXtjb25zdCB4PXt9O3JldHVybiBPYmplY3Qua2V5cyhhZSkuZm9yRWFjaChmdW5jdGlvbihtKXsoMHxtKT09bSYmKG18PTApLHhbYWVbbV1dPW19KSx4fUllLnRhZ0NsYXNzPXswOiJ1bml2ZXJzYWwiLDE6ImFwcGxpY2F0aW9uIiwyOiJjb250ZXh0'@; put 'IiwzOiJwcml2YXRlIn0sSWUudGFnQ2xhc3NCeU5hbWU9RihJZS50YWdDbGFzcyksSWUudGFnPXswOiJlbmQiLDE6ImJvb2wiLDI6ImludCIsMzoiYml0c3RyIiw0OiJvY3RzdHIiLDU6Im51bGxfIiw2OiJvYmppZCIsNzoib2JqRGVzYyIsODoiZXh0ZXJuYWwiLDk6InJlYWwiLDEwOiJlbnVt'@; put 'IiwxMToiZW1iZWQiLDEyOiJ1dGY4c3RyIiwxMzoicmVsYXRpdmVPaWQiLDE2OiJzZXEiLDE3OiJzZXQiLDE4OiJudW1zdHIiLDE5OiJwcmludHN0ciIsMjA6InQ2MXN0ciIsMjE6InZpZGVvc3RyIiwyMjoiaWE1c3RyIiwyMzoidXRjdGltZSIsMjQ6ImdlbnRpbWUiLDI1OiJncmFwaHN0ciIs'@; put 'MjY6ImlzbzY0NnN0ciIsMjc6ImdlbnN0ciIsMjg6InVuaXN0ciIsMjk6ImNoYXJzdHIiLDMwOiJibXBzdHIifSxJZS50YWdCeU5hbWU9RihJZS50YWcpfSw0NDE1NTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7Y29uc3QgYWU9SWU7YWUuX3JldmVyc2U9ZnVuY3Rpb24obSl7Y29uc3QgbGU9'@; put 'e307cmV0dXJuIE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oTSl7KDB8TSk9PU0mJihNfD0wKSxsZVttW01dXT1NfSksbGV9LGFlLmRlcj1GKDY1MDg2KX0sOTY4MzU6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO2NvbnN0IGFlPUYoNjY2OTgpLHg9Rig1MDQ3KSxtPUYoNzU3MjAp'@; put 'LkMsbGU9Rig1ODUzMyksTT1GKDY1MDg2KTtmdW5jdGlvbiBPKEkpe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT1JLm5hbWUsdGhpcy5lbnRpdHk9SSx0aGlzLnRyZWU9bmV3IFIsdGhpcy50cmVlLl9pbml0KEkuYm9keSl9ZnVuY3Rpb24gUihJKXtsZS5jYWxsKHRoaXMsImRlciIsSSl9ZnVu'@; put 'Y3Rpb24geihJLGspe2xldCBFPUkucmVhZFVJbnQ4KGspO2lmKEkuaXNFcnJvcihFKSlyZXR1cm4gRTtjb25zdCBqPU0udGFnQ2xhc3NbRT4+Nl0sVj0wPT0oMzImRSk7aWYoMzE9PSgzMSZFKSl7bGV0IFk9RTtmb3IoRT0wOzEyOD09KDEyOCZZKTspe2lmKFk9SS5yZWFkVUludDgoayksSS5p'@; put 'c0Vycm9yKFkpKXJldHVybiBZO0U8PD03LEV8PTEyNyZZfX1lbHNlIEUmPTMxO3JldHVybntjbHM6aixwcmltaXRpdmU6Vix0YWc6RSx0YWdTdHI6TS50YWdbRV19fWZ1bmN0aW9uIEsoSSxrLEUpe2xldCBqPUkucmVhZFVJbnQ4KEUpO2lmKEkuaXNFcnJvcihqKSlyZXR1cm4gajtpZighayYm'@; put 'MTI4PT09ailyZXR1cm4gbnVsbDtpZighKDEyOCZqKSlyZXR1cm4gajtjb25zdCBWPTEyNyZqO2lmKFY+NClyZXR1cm4gSS5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO2o9MDtmb3IobGV0IEI9MDtCPFY7QisrKXtqPDw9ODtjb25zdCBZPUkucmVhZFVJbnQ4KEUpO2lmKEku'@; put 'aXNFcnJvcihZKSlyZXR1cm4gWTtqfD1ZfXJldHVybiBqfWF0LmV4cG9ydHM9TyxPLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oayxFKXtyZXR1cm4gbS5pc0RlY29kZXJCdWZmZXIoayl8fChrPW5ldyBtKGssRSkpLHRoaXMudHJlZS5fZGVjb2RlKGssRSl9LGFlKFIsbGUpLFIucHJvdG90'@; put 'eXBlLl9wZWVrVGFnPWZ1bmN0aW9uKGssRSxqKXtpZihrLmlzRW1wdHkoKSlyZXR1cm4hMTtjb25zdCBWPWsuc2F2ZSgpLEI9eihrLCdGYWlsZWQgdG8gcGVlayB0YWc6ICInK0UrJyInKTtyZXR1cm4gay5pc0Vycm9yKEIpP0I6KGsucmVzdG9yZShWKSxCLnRhZz09PUV8fEIudGFnU3RyPT09'@; put 'RXx8Qi50YWdTdHIrIm9mIj09PUV8fGopfSxSLnByb3RvdHlwZS5fZGVjb2RlVGFnPWZ1bmN0aW9uKGssRSxqKXtjb25zdCBWPXooaywnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrRSsnIicpO2lmKGsuaXNFcnJvcihWKSlyZXR1cm4gVjtsZXQgQj1LKGssVi5wcmltaXRpdmUsJ0ZhaWxl'@; put 'ZCB0byBnZXQgbGVuZ3RoIG9mICInK0UrJyInKTtpZihrLmlzRXJyb3IoQikpcmV0dXJuIEI7aWYoIWomJlYudGFnIT09RSYmVi50YWdTdHIhPT1FJiZWLnRhZ1N0cisib2YiIT09RSlyZXR1cm4gay5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrRSsnIicpO2lmKFYucHJpbWl0aXZl'@; put 'fHxudWxsIT09QilyZXR1cm4gay5za2lwKEIsJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytFKyciJyk7Y29uc3QgWT1rLnNhdmUoKSxYPXRoaXMuX3NraXBVbnRpbEVuZChrLCdGYWlsZWQgdG8gc2tpcCBpbmRlZmluaXRlIGxlbmd0aCBib2R5OiAiJyt0aGlzLnRhZysnIicpO3JldHVy'@; put 'biBrLmlzRXJyb3IoWCk/WDooQj1rLm9mZnNldC1ZLm9mZnNldCxrLnJlc3RvcmUoWSksay5za2lwKEIsJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytFKyciJykpfSxSLnByb3RvdHlwZS5fc2tpcFVudGlsRW5kPWZ1bmN0aW9uKGssRSl7Zm9yKDs7KXtjb25zdCBqPXooayxFKTtpZihr'@; put 'LmlzRXJyb3IoaikpcmV0dXJuIGo7Y29uc3QgVj1LKGssai5wcmltaXRpdmUsRSk7aWYoay5pc0Vycm9yKFYpKXJldHVybiBWO2xldCBCO2lmKEI9ai5wcmltaXRpdmV8fG51bGwhPT1WP2suc2tpcChWKTp0aGlzLl9za2lwVW50aWxFbmQoayxFKSxrLmlzRXJyb3IoQikpcmV0dXJuIEI7aWYo'@; put 'ImVuZCI9PT1qLnRhZ1N0cilicmVha319LFIucHJvdG90eXBlLl9kZWNvZGVMaXN0PWZ1bmN0aW9uKGssRSxqLFYpe2NvbnN0IEI9W107Zm9yKDshay5pc0VtcHR5KCk7KXtjb25zdCBZPXRoaXMuX3BlZWtUYWcoaywiZW5kIik7aWYoay5pc0Vycm9yKFkpKXJldHVybiBZO2NvbnN0IFg9ai5k'@; put 'ZWNvZGUoaywiZGVyIixWKTtpZihrLmlzRXJyb3IoWCkmJlkpYnJlYWs7Qi5wdXNoKFgpfXJldHVybiBCfSxSLnByb3RvdHlwZS5fZGVjb2RlU3RyPWZ1bmN0aW9uKGssRSl7aWYoImJpdHN0ciI9PT1FKXtjb25zdCBqPWsucmVhZFVJbnQ4KCk7cmV0dXJuIGsuaXNFcnJvcihqKT9qOnt1bnVz'@; put 'ZWQ6aixkYXRhOmsucmF3KCl9fWlmKCJibXBzdHIiPT09RSl7Y29uc3Qgaj1rLnJhdygpO2lmKGoubGVuZ3RoJTI9PTEpcmV0dXJuIGsuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBibXBzdHIgbGVuZ3RoIG1pc21hdGNoIik7bGV0IFY9IiI7Zm9yKGxldCBCPTA7QjxqLmxlbmd0'@; put 'aC8yO0IrKylWKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGoucmVhZFVJbnQxNkJFKDIqQikpO3JldHVybiBWfWlmKCJudW1zdHIiPT09RSl7Y29uc3Qgaj1rLnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc051bXN0cihqKT9qOmsuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmlu'@; put 'ZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09RSlyZXR1cm4gay5yYXcoKTtpZigib2JqRGVzYyI9PT1FKXJldHVybiBrLnJhdygpO2lmKCJwcmludHN0ciI9PT1FKXtjb25zdCBqPWsucmF3KCkudG9TdHJpbmcoImFzY2lpIik7cmV0dXJuIHRo'@; put 'aXMuX2lzUHJpbnRzdHIoaik/ajprLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfXJldHVybi9zdHIkLy50ZXN0KEUpP2sucmF3KCkudG9TdHJpbmcoKTprLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitF'@; put 'KyIgdW5zdXBwb3J0ZWQiKX0sUi5wcm90b3R5cGUuX2RlY29kZU9iamlkPWZ1bmN0aW9uKGssRSxqKXtsZXQgVjtjb25zdCBCPVtdO2xldCBZPTAsWD0wO2Zvcig7IWsuaXNFbXB0eSgpOylYPWsucmVhZFVJbnQ4KCksWTw8PTcsWXw9MTI3JlgsMTI4Jlh8fChCLnB1c2goWSksWT0wKTtpZigx'@; put 'MjgmWCYmQi5wdXNoKFkpLFY9aj9COltCWzBdLzQwfDAsQlswXSU0MF0uY29uY2F0KEIuc2xpY2UoMSkpLEUpe2xldCBlZT1FW1Yuam9pbigiICIpXTt2b2lkIDA9PT1lZSYmKGVlPUVbVi5qb2luKCIuIildKSx2b2lkIDAhPT1lZSYmKFY9ZWUpfXJldHVybiBWfSxSLnByb3RvdHlwZS5fZGVj'@; put 'b2RlVGltZT1mdW5jdGlvbihrLEUpe2NvbnN0IGo9ay5yYXcoKS50b1N0cmluZygpO2xldCBWLEIsWSxYLFUscTtpZigiZ2VudGltZSI9PT1FKVY9MHxqLnNsaWNlKDAsNCksQj0wfGouc2xpY2UoNCw2KSxZPTB8ai5zbGljZSg2LDgpLFg9MHxqLnNsaWNlKDgsMTApLFU9MHxqLnNsaWNlKDEw'@; put 'LDEyKSxxPTB8ai5zbGljZSgxMiwxNCk7ZWxzZXtpZigidXRjdGltZSIhPT1FKXJldHVybiBrLmVycm9yKCJEZWNvZGluZyAiK0UrIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7Vj0wfGouc2xpY2UoMCwyKSxCPTB8ai5zbGljZSgyLDQpLFk9MHxqLnNsaWNlKDQsNiksWD0wfGouc2xp'@; put 'Y2UoNiw4KSxVPTB8ai5zbGljZSg4LDEwKSxxPTB8ai5zbGljZSgxMCwxMiksVj1WPDcwPzJlMytWOjE5MDArVn1yZXR1cm4gRGF0ZS5VVEMoVixCLTEsWSxYLFUscSwwKX0sUi5wcm90b3R5cGUuX2RlY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sUi5wcm90b3R5cGUuX2RlY29k'@; put 'ZUJvb2w9ZnVuY3Rpb24oayl7Y29uc3QgRT1rLnJlYWRVSW50OCgpO3JldHVybiBrLmlzRXJyb3IoRSk/RTowIT09RX0sUi5wcm90b3R5cGUuX2RlY29kZUludD1mdW5jdGlvbihrLEUpe2NvbnN0IGo9ay5yYXcoKTtsZXQgVj1uZXcgeChqKTtyZXR1cm4gRSYmKFY9RVtWLnRvU3RyaW5nKDEw'@; put 'KV18fFYpLFZ9LFIucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24oayxFKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgayYmKGs9ayhFKSksay5fZ2V0RGVjb2RlcigiZGVyIikudHJlZX19LDcxMzAxOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBhZT1JZTthZS5kZXI9Rig5NjgzNSks'@; put 'YWUucGVtPUYoMjIwOCl9LDIyMDg6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO2NvbnN0IGFlPUYoNjY2OTgpLHg9RigyNDE3OSkuQnVmZmVyLG09Rig5NjgzNSk7ZnVuY3Rpb24gbGUoTSl7bS5jYWxsKHRoaXMsTSksdGhpcy5lbmM9InBlbSJ9YWUobGUsbSksYXQuZXhwb3J0cz1sZSxsZS5w'@; put 'cm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKE8sUil7Y29uc3Qgej1PLnRvU3RyaW5nKCkuc3BsaXQoL1tcclxuXSsvZyksSz1SLmxhYmVsLnRvVXBwZXJDYXNlKCksST0vXi0tLS0tKEJFR0lOfEVORCkgKFteLV0rKS0tLS0tJC87bGV0IGs9LTEsRT0tMTtmb3IobGV0IEI9MDtCPHoubGVuZ3Ro'@; put 'O0IrKyl7Y29uc3QgWT16W0JdLm1hdGNoKEkpO2lmKG51bGwhPT1ZJiZZWzJdPT09Syl7aWYoLTEhPT1rKXtpZigiRU5EIiE9PVlbMV0pYnJlYWs7RT1CO2JyZWFrfWlmKCJCRUdJTiIhPT1ZWzFdKWJyZWFrO2s9Qn19aWYoLTE9PT1rfHwtMT09PUUpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2Vj'@; put 'dGlvbiBub3QgZm91bmQgZm9yOiAiK0spO2NvbnN0IGo9ei5zbGljZShrKzEsRSkuam9pbigiIik7ai5yZXBsYWNlKC9bXmEtejAtOSsvPV0rL2dpLCIiKTtjb25zdCBWPXguZnJvbShqLCJiYXNlNjQiKTtyZXR1cm4gbS5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxWLFIpfX0sNjkxMzM6'@; put 'KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO2NvbnN0IGFlPUYoNjY2OTgpLHg9RigyNDE3OSkuQnVmZmVyLG09Rig1ODUzMyksbGU9Rig2NTA4Nik7ZnVuY3Rpb24gTShLKXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9Sy5uYW1lLHRoaXMuZW50aXR5PUssdGhpcy50cmVlPW5ldyBPLHRoaXMu'@; put 'dHJlZS5faW5pdChLLmJvZHkpfWZ1bmN0aW9uIE8oSyl7bS5jYWxsKHRoaXMsImRlciIsSyl9ZnVuY3Rpb24gUihLKXtyZXR1cm4gSzwxMD8iMCIrSzpLfWF0LmV4cG9ydHM9TSxNLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oSSxrKXtyZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUoSSxrKS5q'@; put 'b2luKCl9LGFlKE8sbSksTy5wcm90b3R5cGUuX2VuY29kZUNvbXBvc2l0ZT1mdW5jdGlvbihJLGssRSxqKXtjb25zdCBWPWZ1bmN0aW9uIHooSyxJLGssRSl7bGV0IGo7aWYoInNlcW9mIj09PUs/Sz0ic2VxIjoic2V0b2YiPT09SyYmKEs9InNldCIpLGxlLnRhZ0J5TmFtZS5oYXNPd25Qcm9w'@; put 'ZXJ0eShLKSlqPWxlLnRhZ0J5TmFtZVtLXTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgS3x8KDB8SykhPT1LKXJldHVybiBFLmVycm9yKCJVbmtub3duIHRhZzogIitLKTtqPUt9cmV0dXJuIGo+PTMxP0UuZXJyb3IoIk11bHRpLW9jdGV0IHRhZyBlbmNvZGluZyB1bnN1cHBvcnRlZCIpOihJ'@; put 'fHwoanw9MzIpLGp8PWxlLnRhZ0NsYXNzQnlOYW1lW2t8fCJ1bml2ZXJzYWwiXTw8NixqKX0oSSxrLEUsdGhpcy5yZXBvcnRlcik7aWYoai5sZW5ndGg8MTI4KXtjb25zdCBYPXguYWxsb2MoMik7cmV0dXJuIFhbMF09VixYWzFdPWoubGVuZ3RoLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIo'@; put 'W1gsal0pfWxldCBCPTE7Zm9yKGxldCBYPWoubGVuZ3RoO1g+PTI1NjtYPj49OClCKys7Y29uc3QgWT14LmFsbG9jKDIrQik7WVswXT1WLFlbMV09MTI4fEI7Zm9yKGxldCBYPTErQixVPWoubGVuZ3RoO1U+MDtYLS0sVT4+PTgpWVtYXT0yNTUmVTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2Rl'@; put 'ckJ1ZmZlcihbWSxqXSl9LE8ucHJvdG90eXBlLl9lbmNvZGVTdHI9ZnVuY3Rpb24oSSxrKXtpZigiYml0c3RyIj09PWspcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWzB8SS51bnVzZWQsSS5kYXRhXSk7aWYoImJtcHN0ciI9PT1rKXtjb25zdCBFPXguYWxsb2MoMipJLmxlbmd0'@; put 'aCk7Zm9yKGxldCBqPTA7ajxJLmxlbmd0aDtqKyspRS53cml0ZVVJbnQxNkJFKEkuY2hhckNvZGVBdChqKSwyKmopO3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEUpfXJldHVybiJudW1zdHIiPT09az90aGlzLl9pc051bXN0cihJKT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVy'@; put 'KEkpOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgc3VwcG9ydHMgb25seSBkaWdpdHMgYW5kIHNwYWNlIik6InByaW50c3RyIj09PWs/dGhpcy5faXNQcmludHN0cihJKT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEkpOnRoaXMucmVwb3J0'@; put 'ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiBwcmludHN0ciBzdXBwb3J0cyBvbmx5IGxhdGluIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIGRpZ2l0cywgc3BhY2UsIGFwb3N0cm9waGUsIGxlZnQgYW5kIHJpZ3RoIHBhcmVudGhlc2lzLCBwbHVzIHNpZ24sIGNvbW1h'@; put 'LCBoeXBoZW4sIGRvdCwgc2xhc2gsIGNvbG9uLCBlcXVhbCBzaWduLCBxdWVzdGlvbiBtYXJrIik6L3N0ciQvLnRlc3Qoayl8fCJvYmpEZXNjIj09PWs/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihJKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitr'@; put 'KyIgdW5zdXBwb3J0ZWQiKX0sTy5wcm90b3R5cGUuX2VuY29kZU9iamlkPWZ1bmN0aW9uKEksayxFKXtpZigic3RyaW5nIj09dHlwZW9mIEkpe2lmKCFrKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJzdHJpbmcgb2JqaWQgZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIGZvdW5kIik7aWYo'@; put 'IWsuaGFzT3duUHJvcGVydHkoSSkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwIik7ST1rW0ldLnNwbGl0KC9bXHMuXSsvZyk7Zm9yKGxldCBZPTA7WTxJLmxlbmd0aDtZKyspSVtZXXw9MH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoSSkp'@; put 'e0k9SS5zbGljZSgpO2ZvcihsZXQgWT0wO1k8SS5sZW5ndGg7WSsrKUlbWV18PTB9aWYoIUFycmF5LmlzQXJyYXkoSSkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeShJKSk7'@; put 'aWYoIUUpe2lmKElbMV0+PTQwKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTZWNvbmQgb2JqaWQgaWRlbnRpZmllciBPT0IiKTtJLnNwbGljZSgwLDIsNDAqSVswXStJWzFdKX1sZXQgaj0wO2ZvcihsZXQgWT0wO1k8SS5sZW5ndGg7WSsrKXtsZXQgWD1JW1ldO2ZvcihqKys7WD49MTI4'@; put 'O1g+Pj03KWorK31jb25zdCBWPXguYWxsb2Moaik7bGV0IEI9Vi5sZW5ndGgtMTtmb3IobGV0IFk9SS5sZW5ndGgtMTtZPj0wO1ktLSl7bGV0IFg9SVtZXTtmb3IoVltCLS1dPTEyNyZYOyhYPj49Nyk+MDspVltCLS1dPTEyOHwxMjcmWH1yZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZl'@; put 'cihWKX0sTy5wcm90b3R5cGUuX2VuY29kZVRpbWU9ZnVuY3Rpb24oSSxrKXtsZXQgRTtjb25zdCBqPW5ldyBEYXRlKEkpO3JldHVybiJnZW50aW1lIj09PWs/RT1bUihqLmdldFVUQ0Z1bGxZZWFyKCkpLFIoai5nZXRVVENNb250aCgpKzEpLFIoai5nZXRVVENEYXRlKCkpLFIoai5nZXRVVENI'@; put 'b3VycygpKSxSKGouZ2V0VVRDTWludXRlcygpKSxSKGouZ2V0VVRDU2Vjb25kcygpKSwiWiJdLmpvaW4oIiIpOiJ1dGN0aW1lIj09PWs/RT1bUihqLmdldFVUQ0Z1bGxZZWFyKCklMTAwKSxSKGouZ2V0VVRDTW9udGgoKSsxKSxSKGouZ2V0VVRDRGF0ZSgpKSxSKGouZ2V0VVRDSG91cnMoKSks'@; put 'UihqLmdldFVUQ01pbnV0ZXMoKSksUihqLmdldFVUQ1NlY29uZHMoKSksIloiXS5qb2luKCIiKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyAiK2srIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IiksdGhpcy5fZW5jb2RlU3RyKEUsIm9jdHN0ciIpfSxPLnByb3RvdHlwZS5fZW5j'@; put 'b2RlTnVsbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKCIiKX0sTy5wcm90b3R5cGUuX2VuY29kZUludD1mdW5jdGlvbihJLGspe2lmKCJzdHJpbmciPT10eXBlb2YgSSl7aWYoIWspcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlN0cmluZyBpbnQgb3Ig'@; put 'ZW51bSBnaXZlbiwgYnV0IG5vIHZhbHVlcyBtYXAiKTtpZighay5oYXNPd25Qcm9wZXJ0eShJKSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiVmFsdWVzIG1hcCBkb2Vzbid0IGNvbnRhaW46ICIrSlNPTi5zdHJpbmdpZnkoSSkpO0k9a1tJXX1pZigibnVtYmVyIiE9dHlwZW9mIEkmJiF4'@; put 'LmlzQnVmZmVyKEkpKXtjb25zdCBWPUkudG9BcnJheSgpOyFJLnNpZ24mJjEyOCZWWzBdJiZWLnVuc2hpZnQoMCksST14LmZyb20oVil9aWYoeC5pc0J1ZmZlcihJKSl7bGV0IFY9SS5sZW5ndGg7MD09PUkubGVuZ3RoJiZWKys7Y29uc3QgQj14LmFsbG9jKFYpO3JldHVybiBJLmNvcHkoQiks'@; put 'MD09PUkubGVuZ3RoJiYoQlswXT0wKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEIpfWlmKEk8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEkpO2lmKEk8MjU2KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswLEldKTtsZXQgRT0xO2ZvcihsZXQgVj1J'@; put 'O1Y+PTI1NjtWPj49OClFKys7Y29uc3Qgaj1uZXcgQXJyYXkoRSk7Zm9yKGxldCBWPWoubGVuZ3RoLTE7Vj49MDtWLS0paltWXT0yNTUmSSxJPj49ODtyZXR1cm4gMTI4JmpbMF0mJmoudW5zaGlmdCgwKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHguZnJvbShqKSl9LE8ucHJvdG90eXBl'@; put 'Ll9lbmNvZGVCb29sPWZ1bmN0aW9uKEkpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEk/MjU1OjApfSxPLnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKEksayl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEkmJihJPUkoaykpLEkuX2dldEVuY29kZXIoImRlciIpLnRyZWV9LE8u'@; put 'cHJvdG90eXBlLl9za2lwRGVmYXVsdD1mdW5jdGlvbihJLGssRSl7Y29uc3Qgaj10aGlzLl9iYXNlU3RhdGU7bGV0IFY7aWYobnVsbD09PWouZGVmYXVsdClyZXR1cm4hMTtjb25zdCBCPUkuam9pbigpO2lmKHZvaWQgMD09PWouZGVmYXVsdEJ1ZmZlciYmKGouZGVmYXVsdEJ1ZmZlcj10aGlz'@; put 'Ll9lbmNvZGVWYWx1ZShqLmRlZmF1bHQsayxFKS5qb2luKCkpLEIubGVuZ3RoIT09ai5kZWZhdWx0QnVmZmVyLmxlbmd0aClyZXR1cm4hMTtmb3IoVj0wO1Y8Qi5sZW5ndGg7VisrKWlmKEJbVl0hPT1qLmRlZmF1bHRCdWZmZXJbVl0pcmV0dXJuITE7cmV0dXJuITB9fSwyMzY5MzooYXQsSWUs'@; put 'Rik9PnsidXNlIHN0cmljdCI7Y29uc3QgYWU9SWU7YWUuZGVyPUYoNjkxMzMpLGFlLnBlbT1GKDc5MDApfSw3OTAwOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBhZT1GKDY2Njk4KSx4PUYoNjkxMzMpO2Z1bmN0aW9uIG0obGUpe3guY2FsbCh0aGlzLGxlKSx0aGlzLmVuYz0icGVt'@; put 'In1hZShtLHgpLGF0LmV4cG9ydHM9bSxtLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oTSxPKXtjb25zdCB6PXgucHJvdG90eXBlLmVuY29kZS5jYWxsKHRoaXMsTSkudG9TdHJpbmcoImJhc2U2NCIpLEs9WyItLS0tLUJFR0lOICIrTy5sYWJlbCsiLS0tLS0iXTtmb3IobGV0IEk9MDtJPHou'@; put 'bGVuZ3RoO0krPTY0KUsucHVzaCh6LnNsaWNlKEksSSs2NCkpO3JldHVybiBLLnB1c2goIi0tLS0tRU5EICIrTy5sYWJlbCsiLS0tLS0iKSxLLmpvaW4oIlxuIil9fSw1MDQ3OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSx4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShHLGIpe2lm'@; put 'KCFHKXRocm93IG5ldyBFcnJvcihifHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGxlKEcsYil7Ry5zdXBlcl89Yjt2YXIgRD1mdW5jdGlvbigpe307RC5wcm90b3R5cGU9Yi5wcm90b3R5cGUsRy5wcm90b3R5cGU9bmV3IEQsRy5wcm90b3R5cGUuY29uc3RydWN0b3I9R31mdW5jdGlv'@; put 'biBNKEcsYixEKXtpZihNLmlzQk4oRykpcmV0dXJuIEc7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PUcmJigoImxlIj09PWJ8fCJiZSI9PT1iKSYmKEQ9YixiPTEwKSx0aGlzLl9pbml0KEd8fDAsYnx8MTAsRHx8ImJl'@; put 'IikpfXZhciBPOyJvYmplY3QiPT10eXBlb2YgYWU/YWUuZXhwb3J0cz1NOnguQk49TSxNLkJOPU0sTS53b3JkU2l6ZT0yNjt0cnl7Tz10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIHdpbmRvdy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Rig4MDk1MCkuQnVmZmVyfWNhdGNoe31mdW5jdGlv'@; put 'biBSKEcsYil7dmFyIEQ9Ry5jaGFyQ29kZUF0KGIpO3JldHVybiBEPj02NSYmRDw9NzA/RC01NTpEPj05NyYmRDw9MTAyP0QtODc6RC00OCYxNX1mdW5jdGlvbiB6KEcsYixEKXt2YXIgSD1SKEcsRCk7cmV0dXJuIEQtMT49YiYmKEh8PVIoRyxELTEpPDw0KSxIfWZ1bmN0aW9uIEsoRyxiLEQs'@; put 'SCl7Zm9yKHZhciBOPTAsZz1NYXRoLm1pbihHLmxlbmd0aCxEKSxDPWI7QzxnO0MrKyl7dmFyIFM9Ry5jaGFyQ29kZUF0KEMpLTQ4O04qPUgsTis9Uz49NDk/Uy00OSsxMDpTPj0xNz9TLTE3KzEwOlN9cmV0dXJuIE59TS5pc0JOPWZ1bmN0aW9uKGIpe3JldHVybiBiIGluc3RhbmNlb2YgTXx8'@; put 'bnVsbCE9PWImJiJvYmplY3QiPT10eXBlb2YgYiYmYi5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU0ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoYi53b3Jkcyl9LE0ubWF4PWZ1bmN0aW9uKGIsRCl7cmV0dXJuIGIuY21wKEQpPjA/YjpEfSxNLm1pbj1mdW5jdGlvbihiLEQpe3JldHVybiBiLmNt'@; put 'cChEKTwwP2I6RH0sTS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oYixELEgpe2lmKCJudW1iZXIiPT10eXBlb2YgYilyZXR1cm4gdGhpcy5faW5pdE51bWJlcihiLEQsSCk7aWYoIm9iamVjdCI9PXR5cGVvZiBiKXJldHVybiB0aGlzLl9pbml0QXJyYXkoYixELEgpOyJoZXgiPT09RCYmKEQ9'@; put 'MTYpLG0oRD09PSgwfEQpJiZEPj0yJiZEPD0zNik7dmFyIE49MDsiLSI9PT0oYj1iLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKE4rKyx0aGlzLm5lZ2F0aXZlPTEpLE48Yi5sZW5ndGgmJigxNj09PUQ/dGhpcy5fcGFyc2VIZXgoYixOLEgpOih0aGlzLl9wYXJzZUJhc2Uo'@; put 'YixELE4pLCJsZSI9PT1IJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksRCxIKSkpfSxNLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihiLEQsSCl7YjwwJiYodGhpcy5uZWdhdGl2ZT0xLGI9LWIpLGI8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmJdLHRoaXMu'@; put 'bGVuZ3RoPTEpOmI8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmYixiLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToobShiPDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJmIsYi82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxl'@; put 'bmd0aD0zKSwibGUiPT09SCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLEQsSCl9LE0ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oYixELEgpe2lmKG0oIm51bWJlciI9PXR5cGVvZiBiLmxlbmd0aCksYi5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMu'@; put 'bGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoYi5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgTj0wO048dGhpcy5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09MDt2YXIgZyxDLFM9MDtpZigiYmUiPT09SClmb3IoTj1iLmxlbmd0'@; put 'aC0xLGc9MDtOPj0wO04tPTMpdGhpcy53b3Jkc1tnXXw9KEM9YltOXXxiW04tMV08PDh8YltOLTJdPDwxNik8PFMmNjcxMDg4NjMsdGhpcy53b3Jkc1tnKzFdPUM+Pj4yNi1TJjY3MTA4ODYzLChTKz0yNCk+PTI2JiYoUy09MjYsZysrKTtlbHNlIGlmKCJsZSI9PT1IKWZvcihOPTAsZz0wO048'@; put 'Yi5sZW5ndGg7Tis9Myl0aGlzLndvcmRzW2ddfD0oQz1iW05dfGJbTisxXTw8OHxiW04rMl08PDE2KTw8UyY2NzEwODg2Myx0aGlzLndvcmRzW2crMV09Qz4+PjI2LVMmNjcxMDg4NjMsKFMrPTI0KT49MjYmJihTLT0yNixnKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLl9w'@; put 'YXJzZUhleD1mdW5jdGlvbihiLEQsSCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChiLmxlbmd0aC1EKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBOPTA7Tjx0aGlzLmxlbmd0aDtOKyspdGhpcy53b3Jkc1tOXT0wO3ZhciBTLGc9MCxDPTA7aWYoImJlIj09'@; put 'PUgpZm9yKE49Yi5sZW5ndGgtMTtOPj1EO04tPTIpUz16KGIsRCxOKTw8Zyx0aGlzLndvcmRzW0NdfD02NzEwODg2MyZTLGc+PTE4PyhnLT0xOCx0aGlzLndvcmRzW0MrPTFdfD1TPj4+MjYpOmcrPTg7ZWxzZSBmb3IoTj0oYi5sZW5ndGgtRCklMj09MD9EKzE6RDtOPGIubGVuZ3RoO04rPTIp'@; put 'Uz16KGIsRCxOKTw8Zyx0aGlzLndvcmRzW0NdfD02NzEwODg2MyZTLGc+PTE4PyhnLT0xOCx0aGlzLndvcmRzW0MrPTFdfD1TPj4+MjYpOmcrPTg7dGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKGIsRCxIKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0x'@; put 'O2Zvcih2YXIgTj0wLGc9MTtnPD02NzEwODg2MztnKj1EKU4rKztOLS0sZz1nL0R8MDtmb3IodmFyIEM9Yi5sZW5ndGgtSCxTPUMlTix2PU1hdGgubWluKEMsQy1TKStILHA9MCx3PUg7dzx2O3crPU4pcD1LKGIsdyx3K04sRCksdGhpcy5pbXVsbihnKSx0aGlzLndvcmRzWzBdK3A8NjcxMDg4'@; put 'NjQ/dGhpcy53b3Jkc1swXSs9cDp0aGlzLl9pYWRkbihwKTtpZigwIT09Uyl7dmFyIEo9MTtmb3IocD1LKGIsdyxiLmxlbmd0aCxEKSx3PTA7dzxTO3crKylKKj1EO3RoaXMuaW11bG4oSiksdGhpcy53b3Jkc1swXStwPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPXA6dGhpcy5faWFkZG4ocCl9'@; put 'dGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGIpe2Iud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEQ9MDtEPHRoaXMubGVuZ3RoO0QrKyliLndvcmRzW0RdPXRoaXMud29yZHNbRF07Yi5sZW5ndGg9dGhpcy5sZW5ndGgsYi5uZWdhdGl2ZT10aGlz'@; put 'Lm5lZ2F0aXZlLGIucmVkPXRoaXMucmVkfSxNLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBiPW5ldyBNKG51bGwpO3JldHVybiB0aGlzLmNvcHkoYiksYn0sTS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihiKXtmb3IoO3RoaXMubGVuZ3RoPGI7KXRoaXMud29yZHNbdGhpcy5s'@; put 'ZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxNLnByb3RvdHlwZS5fbm9ybVNpZ249'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4i'@; put 'fTt2YXIgST1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAw'@; put 'MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAi'@; put 'LCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxrPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVd'@; put 'LEU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2'@; put 'NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gVihHLGIsRCl7RC5uZWdh'@; put 'dGl2ZT1iLm5lZ2F0aXZlXkcubmVnYXRpdmU7dmFyIEg9Ry5sZW5ndGgrYi5sZW5ndGh8MDtELmxlbmd0aD1ILEg9SC0xfDA7dmFyIE49MHxHLndvcmRzWzBdLGc9MHxiLndvcmRzWzBdLEM9TipnLHY9Qy82NzEwODg2NHwwO0Qud29yZHNbMF09NjcxMDg4NjMmQztmb3IodmFyIHA9MTtwPEg7'@; put 'cCsrKXtmb3IodmFyIHc9dj4+PjI2LEo9NjcxMDg4NjMmdixuZT1NYXRoLm1pbihwLGIubGVuZ3RoLTEpLGRlPU1hdGgubWF4KDAscC1HLmxlbmd0aCsxKTtkZTw9bmU7ZGUrKyl3Kz0oQz0oTj0wfEcud29yZHNbcC1kZXwwXSkqKGc9MHxiLndvcmRzW2RlXSkrSikvNjcxMDg4NjR8MCxKPTY3'@; put 'MTA4ODYzJkM7RC53b3Jkc1twXT0wfEosdj0wfHd9cmV0dXJuIDAhPT12P0Qud29yZHNbcF09MHx2OkQubGVuZ3RoLS0sRC5zdHJpcCgpfU0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKGIsRCl7dmFyIEg7aWYoRD0wfER8fDEsMTY9PT0oYj1ifHwxMCl8fCJoZXgiPT09Yil7SD0iIjtm'@; put 'b3IodmFyIE49MCxnPTAsQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz10aGlzLndvcmRzW0NdLHY9KDE2Nzc3MjE1JihTPDxOfGcpKS50b1N0cmluZygxNik7SD0wIT0oZz1TPj4+MjQtTiYxNjc3NzIxNSl8fEMhPT10aGlzLmxlbmd0aC0xP0lbNi12Lmxlbmd0aF0rditIOnYrSCwoTis9'@; put 'Mik+PTI2JiYoTi09MjYsQy0tKX1mb3IoMCE9PWcmJihIPWcudG9TdHJpbmcoMTYpK0gpO0gubGVuZ3RoJUQhPTA7KUg9IjAiK0g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoSD0iLSIrSCksSH1pZihiPT09KDB8YikmJmI+PTImJmI8PTM2KXt2YXIgcD1rW2JdLHc9RVtiXTtIPSIiO3Zh'@; put 'ciBKPXRoaXMuY2xvbmUoKTtmb3IoSi5uZWdhdGl2ZT0wOyFKLmlzWmVybygpOyl7dmFyIG5lPUoubW9kbih3KS50b1N0cmluZyhiKTtIPShKPUouaWRpdm4odykpLmlzWmVybygpP25lK0g6SVtwLW5lLmxlbmd0aF0rbmUrSH1mb3IodGhpcy5pc1plcm8oKSYmKEg9IjAiK0gpO0gubGVuZ3Ro'@; put 'JUQhPTA7KUg9IjAiK0g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoSD0iLSIrSCksSH1tKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LE0ucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVu'@; put 'Z3RoP2IrPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9iKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmbSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1'@; put 'MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LWI6Yn0sTS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxNLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihiLEQpe3JldHVybiBtKHR5cGVvZiBPPCJ1IiksdGhpcy50b0FycmF5TGlrZShP'@; put 'LGIsRCl9LE0ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxiLEQpfSxNLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihiLEQsSCl7dmFyIE49dGhpcy5ieXRlTGVuZ3RoKCksZz1IfHxNYXRoLm1heCgxLE4pO20oTjw9'@; put 'ZywiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLG0oZz4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIHYscCxDPSJsZSI9PT1ELFM9bmV3IGIoZyksdz10aGlzLmNsb25lKCk7aWYoQyl7Zm9yKHA9MDshdy5pc1plcm8oKTtw'@; put 'Kyspdj13LmFuZGxuKDI1NSksdy5pdXNocm4oOCksU1twXT12O2Zvcig7cDxnO3ArKylTW3BdPTB9ZWxzZXtmb3IocD0wO3A8Zy1OO3ArKylTW3BdPTA7Zm9yKHA9MDshdy5pc1plcm8oKTtwKyspdj13LmFuZGxuKDI1NSksdy5pdXNocm4oOCksU1tnLXAtMV09dn1yZXR1cm4gU30sTS5wcm90'@; put 'b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKGIpe3JldHVybiAzMi1NYXRoLmNsejMyKGIpfTpmdW5jdGlvbihiKXt2YXIgRD1iLEg9MDtyZXR1cm4gRD49NDA5NiYmKEgrPTEzLEQ+Pj49MTMpLEQ+PTY0JiYoSCs9NyxEPj4+PTcpLEQ+PTgmJihIKz00LEQ+Pj49NCksRD49'@; put 'MiYmKEgrPTIsRD4+Pj0yKSxIK0R9LE0ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihiKXtpZigwPT09YilyZXR1cm4gMjY7dmFyIEQ9YixIPTA7cmV0dXJuIDgxOTEmRHx8KEgrPTEzLEQ+Pj49MTMpLDEyNyZEfHwoSCs9NyxEPj4+PTcpLDE1JkR8fChIKz00LEQ+Pj49NCksMyZEfHwo'@; put 'SCs9MixEPj4+PTIpLDEmRHx8SCsrLEh9LE0ucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBEPXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK0R9LE0ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9u'@; put 'KCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIGI9MCxEPTA7RDx0aGlzLmxlbmd0aDtEKyspe3ZhciBIPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbRF0pO2lmKGIrPUgsMjYhPT1IKWJyZWFrfXJldHVybiBifSxNLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxNLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oYil7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oYikuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxNLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlv'@; put 'bihiKXtyZXR1cm4gdGhpcy50ZXN0bihiLTEpP3RoaXMubm90bihiKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxNLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sTS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'Y2xvbmUoKS5pbmVnKCl9LE0ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LE0ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oYil7Zm9yKDt0aGlzLmxlbmd0aDxiLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxl'@; put 'bmd0aCsrXT0wO2Zvcih2YXIgRD0wO0Q8Yi5sZW5ndGg7RCsrKXRoaXMud29yZHNbRF09dGhpcy53b3Jkc1tEXXxiLndvcmRzW0RdO3JldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlvcj1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT0odGhpcy5uZWdhdGl2ZXxiLm5lZ2F0aXZlKSks'@; put 'dGhpcy5pdW9yKGIpfSxNLnByb3RvdHlwZS5vcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihiKTpiLmNsb25lKCkuaW9yKHRoaXMpfSxNLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3Ro'@; put 'P3RoaXMuY2xvbmUoKS5pdW9yKGIpOmIuY2xvbmUoKS5pdW9yKHRoaXMpfSxNLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihiKXt2YXIgRDtEPXRoaXMubGVuZ3RoPmIubGVuZ3RoP2I6dGhpcztmb3IodmFyIEg9MDtIPEQubGVuZ3RoO0grKyl0aGlzLndvcmRzW0hdPXRoaXMud29yZHNbSF0m'@; put 'Yi53b3Jkc1tIXTtyZXR1cm4gdGhpcy5sZW5ndGg9RC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGIpe3JldHVybiBtKDA9PSh0aGlzLm5lZ2F0aXZlfGIubmVnYXRpdmUpKSx0aGlzLml1YW5kKGIpfSxNLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oYil7'@; put 'cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKGIpOmIuY2xvbmUoKS5pYW5kKHRoaXMpfSxNLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoYik6Yi5jbG9uZSgpLml1YW5k'@; put 'KHRoaXMpfSxNLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihiKXt2YXIgRCxIO3RoaXMubGVuZ3RoPmIubGVuZ3RoPyhEPXRoaXMsSD1iKTooRD1iLEg9dGhpcyk7Zm9yKHZhciBOPTA7TjxILmxlbmd0aDtOKyspdGhpcy53b3Jkc1tOXT1ELndvcmRzW05dXkgud29yZHNbTl07aWYodGhpcyE9'@; put 'PUQpZm9yKDtOPEQubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPUQud29yZHNbTl07cmV0dXJuIHRoaXMubGVuZ3RoPUQubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT0odGhpcy5uZWdhdGl2ZXxiLm5lZ2F0aXZlKSksdGhpcy5p'@; put 'dXhvcihiKX0sTS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihiKTpiLmNsb25lKCkuaXhvcih0aGlzKX0sTS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/'@; put 'dGhpcy5jbG9uZSgpLml1eG9yKGIpOmIuY2xvbmUoKS5pdXhvcih0aGlzKX0sTS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApO3ZhciBEPTB8TWF0aC5jZWlsKGIvMjYpLEg9YiUyNjt0aGlzLl9leHBhbmQoRCksSD4wJiZELS07Zm9yKHZh'@; put 'ciBOPTA7TjxEO04rKyl0aGlzLndvcmRzW05dPTY3MTA4ODYzJn50aGlzLndvcmRzW05dO3JldHVybiBIPjAmJih0aGlzLndvcmRzW05dPX50aGlzLndvcmRzW05dJjY3MTA4ODYzPj4yNi1IKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMu'@; put 'Y2xvbmUoKS5pbm90bihiKX0sTS5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihiLEQpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgSD1iLzI2fDAsTj1iJTI2O3JldHVybiB0aGlzLl9leHBhbmQoSCsxKSx0aGlzLndvcmRzW0hdPUQ/dGhpcy53b3Jkc1tIXXwxPDxOOnRoaXMud29y'@; put 'ZHNbSF0mfigxPDxOKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oYil7dmFyIEQsSCxOO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Yi5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLEQ9dGhpcy5pc3ViKGIpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5f'@; put 'bm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWIubmVnYXRpdmUpcmV0dXJuIGIubmVnYXRpdmU9MCxEPXRoaXMuaXN1YihiKSxiLm5lZ2F0aXZlPTEsRC5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5iLmxlbmd0aD8oSD10aGlzLE49Yik6KEg9YixOPXRoaXMpO2Zvcih2YXIg'@; put 'Zz0wLEM9MDtDPE4ubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTY3MTA4ODYzJihEPSgwfEgud29yZHNbQ10pKygwfE4ud29yZHNbQ10pK2cpLGc9RD4+PjI2O2Zvcig7MCE9PWcmJkM8SC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmKEQ9KDB8SC53b3Jkc1tDXSkrZyksZz1E'@; put 'Pj4+MjY7aWYodGhpcy5sZW5ndGg9SC5sZW5ndGgsMCE9PWcpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09Zyx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoSCE9PXRoaXMpZm9yKDtDPEgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPUgud29yZHNbQ107cmV0dXJuIHRoaXN9LE0ucHJvdG90eXBlLmFk'@; put 'ZD1mdW5jdGlvbihiKXt2YXIgRDtyZXR1cm4gMCE9PWIubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhiLm5lZ2F0aXZlPTAsRD10aGlzLnN1YihiKSxiLm5lZ2F0aXZlXj0xLEQpOjA9PT1iLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLEQ9Yi5zdWIo'@; put 'dGhpcyksdGhpcy5uZWdhdGl2ZT0xLEQpOnRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGIpOmIuY2xvbmUoKS5pYWRkKHRoaXMpfSxNLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGIpe2lmKDAhPT1iLm5lZ2F0aXZlKXtiLm5lZ2F0aXZlPTA7dmFyIEQ9dGhpcy5pYWRk'@; put 'KGIpO3JldHVybiBiLm5lZ2F0aXZlPTEsRC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChiKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgTixnLEg9dGhpcy5jbXAoYik7aWYoMD09PUgpcmV0dXJu'@; put 'IHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO0g+MD8oTj10aGlzLGc9Yik6KE49YixnPXRoaXMpO2Zvcih2YXIgQz0wLFM9MDtTPGcubGVuZ3RoO1MrKylDPShEPSgwfE4ud29yZHNbU10pLSgwfGcud29yZHNbU10pK0MpPj4yNix0aGlzLndvcmRz'@; put 'W1NdPTY3MTA4ODYzJkQ7Zm9yKDswIT09QyYmUzxOLmxlbmd0aDtTKyspQz0oRD0oMHxOLndvcmRzW1NdKStDKT4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZEO2lmKDA9PT1DJiZTPE4ubGVuZ3RoJiZOIT09dGhpcylmb3IoO1M8Ti5sZW5ndGg7UysrKXRoaXMud29yZHNbU109Ti53b3Jk'@; put 'c1tTXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsUyksTiE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihiKX07dmFyIEI9ZnVuY3Rpb24oYixE'@; put 'LEgpe3ZhciB2LHAsdyxOPWIud29yZHMsZz1ELndvcmRzLEM9SC53b3JkcyxTPTAsSj0wfE5bMF0sbmU9ODE5MSZKLGRlPUo+Pj4xMyxmZT0wfE5bMV0seGU9ODE5MSZmZSxMZT1mZT4+PjEzLEZlPTB8TlsyXSxPZT04MTkxJkZlLGplPUZlPj4+MTMsV2U9MHxOWzNdLEtlPTgxOTEmV2UsWWU9'@; put 'V2U+Pj4xMyxRZT0wfE5bNF0sbHQ9ODE5MSZRZSxQZT1RZT4+PjEzLGJlPTB8Tls1XSxBZT04MTkxJmJlLFRlPWJlPj4+MTMscWU9MHxOWzZdLFhlPTgxOTEmcWUsVWU9cWU+Pj4xMyxodD0wfE5bN10sTWU9ODE5MSZodCxEZT1odD4+PjEzLHplPTB8Tls4XSxvdD04MTkxJnplLHV0PXplPj4+'@; put 'MTMsTXQ9MHxOWzldLEh0PTgxOTEmTXQsUHQ9TXQ+Pj4xMyxvbj0wfGdbMF0sQ249ODE5MSZvbixVdD1vbj4+PjEzLGJuPTB8Z1sxXSxXbj04MTkxJmJuLGVuPWJuPj4+MTMsJG49MHxnWzJdLEhuPTgxOTEmJG4sZnQ9JG4+Pj4xMyxmbj0wfGdbM10saG49ODE5MSZmbix3dD1mbj4+PjEzLFh0'@; put 'PTB8Z1s0XSxfdD04MTkxJlh0LE50PVh0Pj4+MTMsbW49MHxnWzVdLHJ0PTgxOTEmbW4sSXQ9bW4+Pj4xMyxRdD0wfGdbNl0sRHQ9ODE5MSZRdCxwdD1RdD4+PjEzLFl0PTB8Z1s3XSxJbj04MTkxJll0LHp0PVl0Pj4+MTMseW49MHxnWzhdLHhuPTgxOTEmeW4sc249eW4+Pj4xMyxCbj0wfGdb'@; put 'OV0sUm49ODE5MSZCbiwkdD1Cbj4+PjEzO0gubmVnYXRpdmU9Yi5uZWdhdGl2ZV5ELm5lZ2F0aXZlLEgubGVuZ3RoPTE5O3ZhciBGbj0oUysodj1NYXRoLmltdWwobmUsQ24pKXwwKSsoKDgxOTEmKHA9KHA9TWF0aC5pbXVsKG5lLFV0KSkrTWF0aC5pbXVsKGRlLENuKXwwKSk8PDEzKXwwO1M9'@; put 'KCh3PU1hdGguaW11bChkZSxVdCkpKyhwPj4+MTMpfDApKyhGbj4+PjI2KXwwLEZuJj02NzEwODg2Myx2PU1hdGguaW11bCh4ZSxDbikscD0ocD1NYXRoLmltdWwoeGUsVXQpKStNYXRoLmltdWwoTGUsQ24pfDAsdz1NYXRoLmltdWwoTGUsVXQpO3ZhciBuaT0oUysodj12K01hdGguaW11bChu'@; put 'ZSxXbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLGVuKXwwKStNYXRoLmltdWwoZGUsV24pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsZW4pfDApKyhwPj4+MTMpfDApKyhuaT4+PjI2KXwwLG5pJj02NzEwODg2Myx2PU1hdGguaW11bChPZSxDbikscD0ocD1N'@; put 'YXRoLmltdWwoT2UsVXQpKStNYXRoLmltdWwoamUsQ24pfDAsdz1NYXRoLmltdWwoamUsVXQpLHY9ditNYXRoLmltdWwoeGUsV24pfDAscD0ocD1wK01hdGguaW11bCh4ZSxlbil8MCkrTWF0aC5pbXVsKExlLFduKXwwLHc9dytNYXRoLmltdWwoTGUsZW4pfDA7dmFyIGxuPShTKyh2PXYrTWF0'@; put 'aC5pbXVsKG5lLEhuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsZnQpfDApK01hdGguaW11bChkZSxIbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxmdCl8MCkrKHA+Pj4xMyl8MCkrKGxuPj4+MjYpfDAsbG4mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEtlLENu'@; put 'KSxwPShwPU1hdGguaW11bChLZSxVdCkpK01hdGguaW11bChZZSxDbil8MCx3PU1hdGguaW11bChZZSxVdCksdj12K01hdGguaW11bChPZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKE9lLGVuKXwwKStNYXRoLmltdWwoamUsV24pfDAsdz13K01hdGguaW11bChqZSxlbil8MCx2PXYrTWF0aC5p'@; put 'bXVsKHhlLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsZnQpfDApK01hdGguaW11bChMZSxIbil8MCx3PXcrTWF0aC5pbXVsKExlLGZ0KXwwO3ZhciBqbj0oUysodj12K01hdGguaW11bChuZSxobil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLHd0KXwwKStNYXRoLmltdWwo'@; put 'ZGUsaG4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsd3QpfDApKyhwPj4+MTMpfDApKyhqbj4+PjI2KXwwLGpuJj02NzEwODg2Myx2PU1hdGguaW11bChsdCxDbikscD0ocD1NYXRoLmltdWwobHQsVXQpKStNYXRoLmltdWwoUGUsQ24pfDAsdz1NYXRoLmltdWwoUGUsVXQpLHY9'@; put 'ditNYXRoLmltdWwoS2UsV24pfDAscD0ocD1wK01hdGguaW11bChLZSxlbil8MCkrTWF0aC5pbXVsKFllLFduKXwwLHc9dytNYXRoLmltdWwoWWUsZW4pfDAsdj12K01hdGguaW11bChPZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKE9lLGZ0KXwwKStNYXRoLmltdWwoamUsSG4pfDAsdz13K01h'@; put 'dGguaW11bChqZSxmdCl8MCx2PXYrTWF0aC5pbXVsKHhlLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsd3QpfDApK01hdGguaW11bChMZSxobil8MCx3PXcrTWF0aC5pbXVsKExlLHd0KXwwO3ZhciBxcj0oUysodj12K01hdGguaW11bChuZSxfdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0'@; put 'aC5pbXVsKG5lLE50KXwwKStNYXRoLmltdWwoZGUsX3QpfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsTnQpfDApKyhwPj4+MTMpfDApKyhxcj4+PjI2KXwwLHFyJj02NzEwODg2Myx2PU1hdGguaW11bChBZSxDbikscD0ocD1NYXRoLmltdWwoQWUsVXQpKStNYXRoLmltdWwoVGUs'@; put 'Q24pfDAsdz1NYXRoLmltdWwoVGUsVXQpLHY9ditNYXRoLmltdWwobHQsV24pfDAscD0ocD1wK01hdGguaW11bChsdCxlbil8MCkrTWF0aC5pbXVsKFBlLFduKXwwLHc9dytNYXRoLmltdWwoUGUsZW4pfDAsdj12K01hdGguaW11bChLZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKEtlLGZ0KXww'@; put 'KStNYXRoLmltdWwoWWUsSG4pfDAsdz13K01hdGguaW11bChZZSxmdCl8MCx2PXYrTWF0aC5pbXVsKE9lLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoT2Usd3QpfDApK01hdGguaW11bChqZSxobil8MCx3PXcrTWF0aC5pbXVsKGplLHd0KXwwLHY9ditNYXRoLmltdWwoeGUsX3QpfDAscD0ocD1w'@; put 'K01hdGguaW11bCh4ZSxOdCl8MCkrTWF0aC5pbXVsKExlLF90KXwwLHc9dytNYXRoLmltdWwoTGUsTnQpfDA7dmFyIGdpPShTKyh2PXYrTWF0aC5pbXVsKG5lLHJ0KXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsSXQpfDApK01hdGguaW11bChkZSxydCl8MCkpPDwxMyl8MDtT'@; put 'PSgodz13K01hdGguaW11bChkZSxJdCl8MCkrKHA+Pj4xMyl8MCkrKGdpPj4+MjYpfDAsZ2kmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFhlLENuKSxwPShwPU1hdGguaW11bChYZSxVdCkpK01hdGguaW11bChVZSxDbil8MCx3PU1hdGguaW11bChVZSxVdCksdj12K01hdGguaW11bChBZSxXbil8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKEFlLGVuKXwwKStNYXRoLmltdWwoVGUsV24pfDAsdz13K01hdGguaW11bChUZSxlbil8MCx2PXYrTWF0aC5pbXVsKGx0LEhuKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsZnQpfDApK01hdGguaW11bChQZSxIbil8MCx3PXcrTWF0aC5pbXVsKFBlLGZ0KXwwLHY9'@; put 'ditNYXRoLmltdWwoS2UsaG4pfDAscD0ocD1wK01hdGguaW11bChLZSx3dCl8MCkrTWF0aC5pbXVsKFllLGhuKXwwLHc9dytNYXRoLmltdWwoWWUsd3QpfDAsdj12K01hdGguaW11bChPZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKE9lLE50KXwwKStNYXRoLmltdWwoamUsX3QpfDAsdz13K01h'@; put 'dGguaW11bChqZSxOdCl8MCx2PXYrTWF0aC5pbXVsKHhlLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsSXQpfDApK01hdGguaW11bChMZSxydCl8MCx3PXcrTWF0aC5pbXVsKExlLEl0KXwwO3ZhciB4cj0oUysodj12K01hdGguaW11bChuZSxEdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0'@; put 'aC5pbXVsKG5lLHB0KXwwKStNYXRoLmltdWwoZGUsRHQpfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUscHQpfDApKyhwPj4+MTMpfDApKyh4cj4+PjI2KXwwLHhyJj02NzEwODg2Myx2PU1hdGguaW11bChNZSxDbikscD0ocD1NYXRoLmltdWwoTWUsVXQpKStNYXRoLmltdWwoRGUs'@; put 'Q24pfDAsdz1NYXRoLmltdWwoRGUsVXQpLHY9ditNYXRoLmltdWwoWGUsV24pfDAscD0ocD1wK01hdGguaW11bChYZSxlbil8MCkrTWF0aC5pbXVsKFVlLFduKXwwLHc9dytNYXRoLmltdWwoVWUsZW4pfDAsdj12K01hdGguaW11bChBZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKEFlLGZ0KXww'@; put 'KStNYXRoLmltdWwoVGUsSG4pfDAsdz13K01hdGguaW11bChUZSxmdCl8MCx2PXYrTWF0aC5pbXVsKGx0LGhuKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsd3QpfDApK01hdGguaW11bChQZSxobil8MCx3PXcrTWF0aC5pbXVsKFBlLHd0KXwwLHY9ditNYXRoLmltdWwoS2UsX3QpfDAscD0ocD1w'@; put 'K01hdGguaW11bChLZSxOdCl8MCkrTWF0aC5pbXVsKFllLF90KXwwLHc9dytNYXRoLmltdWwoWWUsTnQpfDAsdj12K01hdGguaW11bChPZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKE9lLEl0KXwwKStNYXRoLmltdWwoamUscnQpfDAsdz13K01hdGguaW11bChqZSxJdCl8MCx2PXYrTWF0aC5p'@; put 'bXVsKHhlLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoeGUscHQpfDApK01hdGguaW11bChMZSxEdCl8MCx3PXcrTWF0aC5pbXVsKExlLHB0KXwwO3ZhciBVaT0oUysodj12K01hdGguaW11bChuZSxJbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLHp0KXwwKStNYXRoLmltdWwo'@; put 'ZGUsSW4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsenQpfDApKyhwPj4+MTMpfDApKyhVaT4+PjI2KXwwLFVpJj02NzEwODg2Myx2PU1hdGguaW11bChvdCxDbikscD0ocD1NYXRoLmltdWwob3QsVXQpKStNYXRoLmltdWwodXQsQ24pfDAsdz1NYXRoLmltdWwodXQsVXQpLHY9'@; put 'ditNYXRoLmltdWwoTWUsV24pfDAscD0ocD1wK01hdGguaW11bChNZSxlbil8MCkrTWF0aC5pbXVsKERlLFduKXwwLHc9dytNYXRoLmltdWwoRGUsZW4pfDAsdj12K01hdGguaW11bChYZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKFhlLGZ0KXwwKStNYXRoLmltdWwoVWUsSG4pfDAsdz13K01h'@; put 'dGguaW11bChVZSxmdCl8MCx2PXYrTWF0aC5pbXVsKEFlLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsd3QpfDApK01hdGguaW11bChUZSxobil8MCx3PXcrTWF0aC5pbXVsKFRlLHd0KXwwLHY9ditNYXRoLmltdWwobHQsX3QpfDAscD0ocD1wK01hdGguaW11bChsdCxOdCl8MCkrTWF0aC5p'@; put 'bXVsKFBlLF90KXwwLHc9dytNYXRoLmltdWwoUGUsTnQpfDAsdj12K01hdGguaW11bChLZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKEtlLEl0KXwwKStNYXRoLmltdWwoWWUscnQpfDAsdz13K01hdGguaW11bChZZSxJdCl8MCx2PXYrTWF0aC5pbXVsKE9lLER0KXwwLHA9KHA9cCtNYXRoLmlt'@; put 'dWwoT2UscHQpfDApK01hdGguaW11bChqZSxEdCl8MCx3PXcrTWF0aC5pbXVsKGplLHB0KXwwLHY9ditNYXRoLmltdWwoeGUsSW4pfDAscD0ocD1wK01hdGguaW11bCh4ZSx6dCl8MCkrTWF0aC5pbXVsKExlLEluKXwwLHc9dytNYXRoLmltdWwoTGUsenQpfDA7dmFyIEtyPShTKyh2PXYrTWF0'@; put 'aC5pbXVsKG5lLHhuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsc24pfDApK01hdGguaW11bChkZSx4bil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxzbil8MCkrKHA+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LENu'@; put 'KSxwPShwPU1hdGguaW11bChIdCxVdCkpK01hdGguaW11bChQdCxDbil8MCx3PU1hdGguaW11bChQdCxVdCksdj12K01hdGguaW11bChvdCxXbil8MCxwPShwPXArTWF0aC5pbXVsKG90LGVuKXwwKStNYXRoLmltdWwodXQsV24pfDAsdz13K01hdGguaW11bCh1dCxlbil8MCx2PXYrTWF0aC5p'@; put 'bXVsKE1lLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsZnQpfDApK01hdGguaW11bChEZSxIbil8MCx3PXcrTWF0aC5pbXVsKERlLGZ0KXwwLHY9ditNYXRoLmltdWwoWGUsaG4pfDAscD0ocD1wK01hdGguaW11bChYZSx3dCl8MCkrTWF0aC5pbXVsKFVlLGhuKXwwLHc9dytNYXRoLmltdWwo'@; put 'VWUsd3QpfDAsdj12K01hdGguaW11bChBZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKEFlLE50KXwwKStNYXRoLmltdWwoVGUsX3QpfDAsdz13K01hdGguaW11bChUZSxOdCl8MCx2PXYrTWF0aC5pbXVsKGx0LHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwobHQsSXQpfDApK01hdGguaW11bChQZSxy'@; put 'dCl8MCx3PXcrTWF0aC5pbXVsKFBlLEl0KXwwLHY9ditNYXRoLmltdWwoS2UsRHQpfDAscD0ocD1wK01hdGguaW11bChLZSxwdCl8MCkrTWF0aC5pbXVsKFllLER0KXwwLHc9dytNYXRoLmltdWwoWWUscHQpfDAsdj12K01hdGguaW11bChPZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKE9lLHp0'@; put 'KXwwKStNYXRoLmltdWwoamUsSW4pfDAsdz13K01hdGguaW11bChqZSx6dCl8MCx2PXYrTWF0aC5pbXVsKHhlLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsc24pfDApK01hdGguaW11bChMZSx4bil8MCx3PXcrTWF0aC5pbXVsKExlLHNuKXwwO3ZhciBubz0oUysodj12K01hdGguaW11bChu'@; put 'ZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLCR0KXwwKStNYXRoLmltdWwoZGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsJHQpfDApKyhwPj4+MTMpfDApKyhubz4+PjI2KXwwLG5vJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxXbikscD0ocD1N'@; put 'YXRoLmltdWwoSHQsZW4pKStNYXRoLmltdWwoUHQsV24pfDAsdz1NYXRoLmltdWwoUHQsZW4pLHY9ditNYXRoLmltdWwob3QsSG4pfDAscD0ocD1wK01hdGguaW11bChvdCxmdCl8MCkrTWF0aC5pbXVsKHV0LEhuKXwwLHc9dytNYXRoLmltdWwodXQsZnQpfDAsdj12K01hdGguaW11bChNZSxo'@; put 'bil8MCxwPShwPXArTWF0aC5pbXVsKE1lLHd0KXwwKStNYXRoLmltdWwoRGUsaG4pfDAsdz13K01hdGguaW11bChEZSx3dCl8MCx2PXYrTWF0aC5pbXVsKFhlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsTnQpfDApK01hdGguaW11bChVZSxfdCl8MCx3PXcrTWF0aC5pbXVsKFVlLE50KXww'@; put 'LHY9ditNYXRoLmltdWwoQWUscnQpfDAscD0ocD1wK01hdGguaW11bChBZSxJdCl8MCkrTWF0aC5pbXVsKFRlLHJ0KXwwLHc9dytNYXRoLmltdWwoVGUsSXQpfDAsdj12K01hdGguaW11bChsdCxEdCl8MCxwPShwPXArTWF0aC5pbXVsKGx0LHB0KXwwKStNYXRoLmltdWwoUGUsRHQpfDAsdz13'@; put 'K01hdGguaW11bChQZSxwdCl8MCx2PXYrTWF0aC5pbXVsKEtlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsenQpfDApK01hdGguaW11bChZZSxJbil8MCx3PXcrTWF0aC5pbXVsKFllLHp0KXwwLHY9ditNYXRoLmltdWwoT2UseG4pfDAscD0ocD1wK01hdGguaW11bChPZSxzbil8MCkrTWF0'@; put 'aC5pbXVsKGplLHhuKXwwLHc9dytNYXRoLmltdWwoamUsc24pfDA7dmFyIEhyPShTKyh2PXYrTWF0aC5pbXVsKHhlLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoeGUsJHQpfDApK01hdGguaW11bChMZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChMZSwkdCl8'@; put 'MCkrKHA+Pj4xMyl8MCkrKEhyPj4+MjYpfDAsSHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LEhuKSxwPShwPU1hdGguaW11bChIdCxmdCkpK01hdGguaW11bChQdCxIbil8MCx3PU1hdGguaW11bChQdCxmdCksdj12K01hdGguaW11bChvdCxobil8MCxwPShwPXArTWF0aC5pbXVsKG90LHd0'@; put 'KXwwKStNYXRoLmltdWwodXQsaG4pfDAsdz13K01hdGguaW11bCh1dCx3dCl8MCx2PXYrTWF0aC5pbXVsKE1lLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsTnQpfDApK01hdGguaW11bChEZSxfdCl8MCx3PXcrTWF0aC5pbXVsKERlLE50KXwwLHY9ditNYXRoLmltdWwoWGUscnQpfDAscD0o'@; put 'cD1wK01hdGguaW11bChYZSxJdCl8MCkrTWF0aC5pbXVsKFVlLHJ0KXwwLHc9dytNYXRoLmltdWwoVWUsSXQpfDAsdj12K01hdGguaW11bChBZSxEdCl8MCxwPShwPXArTWF0aC5pbXVsKEFlLHB0KXwwKStNYXRoLmltdWwoVGUsRHQpfDAsdz13K01hdGguaW11bChUZSxwdCl8MCx2PXYrTWF0'@; put 'aC5pbXVsKGx0LEluKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsenQpfDApK01hdGguaW11bChQZSxJbil8MCx3PXcrTWF0aC5pbXVsKFBlLHp0KXwwLHY9ditNYXRoLmltdWwoS2UseG4pfDAscD0ocD1wK01hdGguaW11bChLZSxzbil8MCkrTWF0aC5pbXVsKFllLHhuKXwwLHc9dytNYXRoLmlt'@; put 'dWwoWWUsc24pfDA7dmFyIHFpPShTKyh2PXYrTWF0aC5pbXVsKE9lLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoT2UsJHQpfDApK01hdGguaW11bChqZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChqZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKHFpPj4+MjYpfDAs'@; put 'cWkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LGhuKSxwPShwPU1hdGguaW11bChIdCx3dCkpK01hdGguaW11bChQdCxobil8MCx3PU1hdGguaW11bChQdCx3dCksdj12K01hdGguaW11bChvdCxfdCl8MCxwPShwPXArTWF0aC5pbXVsKG90LE50KXwwKStNYXRoLmltdWwodXQsX3QpfDAsdz13'@; put 'K01hdGguaW11bCh1dCxOdCl8MCx2PXYrTWF0aC5pbXVsKE1lLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsSXQpfDApK01hdGguaW11bChEZSxydCl8MCx3PXcrTWF0aC5pbXVsKERlLEl0KXwwLHY9ditNYXRoLmltdWwoWGUsRHQpfDAscD0ocD1wK01hdGguaW11bChYZSxwdCl8MCkrTWF0'@; put 'aC5pbXVsKFVlLER0KXwwLHc9dytNYXRoLmltdWwoVWUscHQpfDAsdj12K01hdGguaW11bChBZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKEFlLHp0KXwwKStNYXRoLmltdWwoVGUsSW4pfDAsdz13K01hdGguaW11bChUZSx6dCl8MCx2PXYrTWF0aC5pbXVsKGx0LHhuKXwwLHA9KHA9cCtNYXRo'@; put 'LmltdWwobHQsc24pfDApK01hdGguaW11bChQZSx4bil8MCx3PXcrTWF0aC5pbXVsKFBlLHNuKXwwO3ZhciBKaT0oUysodj12K01hdGguaW11bChLZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKEtlLCR0KXwwKStNYXRoLmltdWwoWWUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9'@; put 'dytNYXRoLmltdWwoWWUsJHQpfDApKyhwPj4+MTMpfDApKyhKaT4+PjI2KXwwLEppJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxfdCkscD0ocD1NYXRoLmltdWwoSHQsTnQpKStNYXRoLmltdWwoUHQsX3QpfDAsdz1NYXRoLmltdWwoUHQsTnQpLHY9ditNYXRoLmltdWwob3QscnQpfDAscD0o'@; put 'cD1wK01hdGguaW11bChvdCxJdCl8MCkrTWF0aC5pbXVsKHV0LHJ0KXwwLHc9dytNYXRoLmltdWwodXQsSXQpfDAsdj12K01hdGguaW11bChNZSxEdCl8MCxwPShwPXArTWF0aC5pbXVsKE1lLHB0KXwwKStNYXRoLmltdWwoRGUsRHQpfDAsdz13K01hdGguaW11bChEZSxwdCl8MCx2PXYrTWF0'@; put 'aC5pbXVsKFhlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsenQpfDApK01hdGguaW11bChVZSxJbil8MCx3PXcrTWF0aC5pbXVsKFVlLHp0KXwwLHY9ditNYXRoLmltdWwoQWUseG4pfDAscD0ocD1wK01hdGguaW11bChBZSxzbil8MCkrTWF0aC5pbXVsKFRlLHhuKXwwLHc9dytNYXRoLmlt'@; put 'dWwoVGUsc24pfDA7dmFyIGFvPShTKyh2PXYrTWF0aC5pbXVsKGx0LFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobHQsJHQpfDApK01hdGguaW11bChQZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChQZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKGFvPj4+MjYpfDAs'@; put 'YW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LHJ0KSxwPShwPU1hdGguaW11bChIdCxJdCkpK01hdGguaW11bChQdCxydCl8MCx3PU1hdGguaW11bChQdCxJdCksdj12K01hdGguaW11bChvdCxEdCl8MCxwPShwPXArTWF0aC5pbXVsKG90LHB0KXwwKStNYXRoLmltdWwodXQsRHQpfDAsdz13'@; put 'K01hdGguaW11bCh1dCxwdCl8MCx2PXYrTWF0aC5pbXVsKE1lLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsenQpfDApK01hdGguaW11bChEZSxJbil8MCx3PXcrTWF0aC5pbXVsKERlLHp0KXwwLHY9ditNYXRoLmltdWwoWGUseG4pfDAscD0ocD1wK01hdGguaW11bChYZSxzbil8MCkrTWF0'@; put 'aC5pbXVsKFVlLHhuKXwwLHc9dytNYXRoLmltdWwoVWUsc24pfDA7dmFyIHJvPShTKyh2PXYrTWF0aC5pbXVsKEFlLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoQWUsJHQpfDApK01hdGguaW11bChUZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChUZSwkdCl8'@; put 'MCkrKHA+Pj4xMyl8MCkrKHJvPj4+MjYpfDAscm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LER0KSxwPShwPU1hdGguaW11bChIdCxwdCkpK01hdGguaW11bChQdCxEdCl8MCx3PU1hdGguaW11bChQdCxwdCksdj12K01hdGguaW11bChvdCxJbil8MCxwPShwPXArTWF0aC5pbXVsKG90LHp0'@; put 'KXwwKStNYXRoLmltdWwodXQsSW4pfDAsdz13K01hdGguaW11bCh1dCx6dCl8MCx2PXYrTWF0aC5pbXVsKE1lLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsc24pfDApK01hdGguaW11bChEZSx4bil8MCx3PXcrTWF0aC5pbXVsKERlLHNuKXwwO3ZhciBpbz0oUysodj12K01hdGguaW11bChY'@; put 'ZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKFhlLCR0KXwwKStNYXRoLmltdWwoVWUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoVWUsJHQpfDApKyhwPj4+MTMpfDApKyhpbz4+PjI2KXwwLGlvJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxJbikscD0ocD1N'@; put 'YXRoLmltdWwoSHQsenQpKStNYXRoLmltdWwoUHQsSW4pfDAsdz1NYXRoLmltdWwoUHQsenQpLHY9ditNYXRoLmltdWwob3QseG4pfDAscD0ocD1wK01hdGguaW11bChvdCxzbil8MCkrTWF0aC5pbXVsKHV0LHhuKXwwLHc9dytNYXRoLmltdWwodXQsc24pfDA7dmFyIEdpPShTKyh2PXYrTWF0'@; put 'aC5pbXVsKE1lLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoTWUsJHQpfDApK01hdGguaW11bChEZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChEZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKEdpPj4+MjYpfDAsR2kmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LHhu'@; put 'KSxwPShwPU1hdGguaW11bChIdCxzbikpK01hdGguaW11bChQdCx4bil8MCx3PU1hdGguaW11bChQdCxzbik7dmFyIGhvPShTKyh2PXYrTWF0aC5pbXVsKG90LFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwob3QsJHQpfDApK01hdGguaW11bCh1dCxSbil8MCkpPDwxMyl8MDtT'@; put 'PSgodz13K01hdGguaW11bCh1dCwkdCl8MCkrKHA+Pj4xMyl8MCkrKGhvPj4+MjYpfDAsaG8mPTY3MTA4ODYzO3ZhciB5cj0oUysodj1NYXRoLmltdWwoSHQsUm4pKXwwKSsoKDgxOTEmKHA9KHA9TWF0aC5pbXVsKEh0LCR0KSkrTWF0aC5pbXVsKFB0LFJuKXwwKSk8PDEzKXwwO3JldHVybiBT'@; put 'PSgodz1NYXRoLmltdWwoUHQsJHQpKSsocD4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsQ1swXT1GbixDWzFdPW5pLENbMl09bG4sQ1szXT1qbixDWzRdPXFyLENbNV09Z2ksQ1s2XT14cixDWzddPVVpLENbOF09S3IsQ1s5XT1ubyxDWzEwXT1IcixDWzExXT1xaSxDWzEyXT1K'@; put 'aSxDWzEzXT1hbyxDWzE0XT1ybyxDWzE1XT1pbyxDWzE2XT1HaSxDWzE3XT1obyxDWzE4XT15ciwwIT09UyYmKENbMTldPVMsSC5sZW5ndGgrKyksSH07ZnVuY3Rpb24gWChHLGIsRCl7cmV0dXJuKG5ldyBVKS5tdWxwKEcsYixEKX1mdW5jdGlvbiBVKEcsYil7dGhpcy54PUcsdGhpcy55PWJ9'@; put 'TWF0aC5pbXVsfHwoQj1WKSxNLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihiLEQpe3ZhciBILE49dGhpcy5sZW5ndGgrYi5sZW5ndGg7cmV0dXJuIEg9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1iLmxlbmd0aD9CKHRoaXMsYixEKTpOPDYzP1YodGhpcyxiLEQpOk48MTAyND9mdW5jdGlvbiBZ'@; put 'KEcsYixEKXtELm5lZ2F0aXZlPWIubmVnYXRpdmVeRy5uZWdhdGl2ZSxELmxlbmd0aD1HLmxlbmd0aCtiLmxlbmd0aDtmb3IodmFyIEg9MCxOPTAsZz0wO2c8RC5sZW5ndGgtMTtnKyspe3ZhciBDPU47Tj0wO2Zvcih2YXIgUz02NzEwODg2MyZILHY9TWF0aC5taW4oZyxiLmxlbmd0aC0xKSxw'@; put 'PU1hdGgubWF4KDAsZy1HLmxlbmd0aCsxKTtwPD12O3ArKyl7dmFyIGRlPSgwfEcud29yZHNbZy1wXSkqKDB8Yi53b3Jkc1twXSksZmU9NjcxMDg4NjMmZGU7Uz02NzEwODg2MyYoZmU9ZmUrU3wwKSxOKz0oQz0oQz1DKyhkZS82NzEwODg2NHwwKXwwKSsoZmU+Pj4yNil8MCk+Pj4yNixDJj02'@; put 'NzEwODg2M31ELndvcmRzW2ddPVMsSD1DLEM9Tn1yZXR1cm4gMCE9PUg/RC53b3Jkc1tnXT1IOkQubGVuZ3RoLS0sRC5zdHJpcCgpfSh0aGlzLGIsRCk6WCh0aGlzLGIsRCksSH0sVS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihiKXtmb3IodmFyIEQ9bmV3IEFycmF5KGIpLEg9TS5wcm90'@; put 'b3R5cGUuX2NvdW50Qml0cyhiKS0xLE49MDtOPGI7TisrKURbTl09dGhpcy5yZXZCaW4oTixILGIpO3JldHVybiBEfSxVLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oYixELEgpe2lmKDA9PT1ifHxiPT09SC0xKXJldHVybiBiO2Zvcih2YXIgTj0wLGc9MDtnPEQ7ZysrKU58PSgxJmIpPDxE'@; put 'LWctMSxiPj49MTtyZXR1cm4gTn0sVS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihiLEQsSCxOLGcsQyl7Zm9yKHZhciBTPTA7UzxDO1MrKylOW1NdPURbYltTXV0sZ1tTXT1IW2JbU11dfSxVLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oYixELEgsTixnLEMpe3RoaXMucGVybXV0'@; put 'ZShDLGIsRCxILE4sZyk7Zm9yKHZhciBTPTE7UzxnO1M8PD0xKWZvcih2YXIgdj1TPDwxLHA9TWF0aC5jb3MoMipNYXRoLlBJL3YpLHc9TWF0aC5zaW4oMipNYXRoLlBJL3YpLEo9MDtKPGc7Sis9dilmb3IodmFyIG5lPXAsZGU9dyxmZT0wO2ZlPFM7ZmUrKyl7dmFyIHhlPUhbSitmZV0sTGU9'@; put 'TltKK2ZlXSxGZT1IW0orZmUrU10sT2U9TltKK2ZlK1NdLGplPW5lKkZlLWRlKk9lO09lPW5lKk9lK2RlKkZlLEhbSitmZV09eGUrKEZlPWplKSxOW0orZmVdPUxlK09lLEhbSitmZStTXT14ZS1GZSxOW0orZmUrU109TGUtT2UsZmUhPT12JiYoamU9cCpuZS13KmRlLGRlPXAqZGUrdypuZSxu'@; put 'ZT1qZSl9fSxVLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihiLEQpe3ZhciBIPTF8TWF0aC5tYXgoRCxiKSxOPTEmSCxnPTA7Zm9yKEg9SC8yfDA7SDtIPj4+PTEpZysrO3JldHVybiAxPDxnKzErTn0sVS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGIsRCxIKXtpZighKEg8'@; put 'PTEpKWZvcih2YXIgTj0wO048SC8yO04rKyl7dmFyIGc9YltOXTtiW05dPWJbSC1OLTFdLGJbSC1OLTFdPWcsZz1EW05dLERbTl09LURbSC1OLTFdLERbSC1OLTFdPS1nfX0sVS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKGIsRCl7Zm9yKHZhciBIPTAsTj0wO048RC8yO04rKyl7'@; put 'dmFyIGc9ODE5MipNYXRoLnJvdW5kKGJbMipOKzFdL0QpK01hdGgucm91bmQoYlsyKk5dL0QpK0g7YltOXT02NzEwODg2MyZnLEg9Zzw2NzEwODg2ND8wOmcvNjcxMDg4NjR8MH1yZXR1cm4gYn0sVS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihiLEQsSCxOKXtmb3IodmFyIGc9MCxD'@; put 'PTA7QzxEO0MrKylIWzIqQ109ODE5MSYoZys9MHxiW0NdKSxIWzIqQysxXT04MTkxJihnPj4+PTEzKSxnPj4+PTEzO2ZvcihDPTIqRDtDPE47KytDKUhbQ109MDttKDA9PT1nKSxtKDA9PSgtODE5MiZnKSl9LFUucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oYil7Zm9yKHZhciBEPW5ldyBBcnJh'@; put 'eShiKSxIPTA7SDxiO0grKylEW0hdPTA7cmV0dXJuIER9LFUucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oYixELEgpe3ZhciBOPTIqdGhpcy5ndWVzc0xlbjEzYihiLmxlbmd0aCxELmxlbmd0aCksZz10aGlzLm1ha2VSQlQoTiksQz10aGlzLnN0dWIoTiksUz1uZXcgQXJyYXkoTiksdj1uZXcg'@; put 'QXJyYXkoTikscD1uZXcgQXJyYXkoTiksdz1uZXcgQXJyYXkoTiksSj1uZXcgQXJyYXkoTiksbmU9bmV3IEFycmF5KE4pLGRlPUgud29yZHM7ZGUubGVuZ3RoPU4sdGhpcy5jb252ZXJ0MTNiKGIud29yZHMsYi5sZW5ndGgsUyxOKSx0aGlzLmNvbnZlcnQxM2IoRC53b3JkcyxELmxlbmd0aCx3'@; put 'LE4pLHRoaXMudHJhbnNmb3JtKFMsQyx2LHAsTixnKSx0aGlzLnRyYW5zZm9ybSh3LEMsSixuZSxOLGcpO2Zvcih2YXIgZmU9MDtmZTxOO2ZlKyspe3ZhciB4ZT12W2ZlXSpKW2ZlXS1wW2ZlXSpuZVtmZV07cFtmZV09dltmZV0qbmVbZmVdK3BbZmVdKkpbZmVdLHZbZmVdPXhlfXJldHVybiB0'@; put 'aGlzLmNvbmp1Z2F0ZSh2LHAsTiksdGhpcy50cmFuc2Zvcm0odixwLGRlLEMsTixnKSx0aGlzLmNvbmp1Z2F0ZShkZSxDLE4pLHRoaXMubm9ybWFsaXplMTNiKGRlLE4pLEgubmVnYXRpdmU9Yi5uZWdhdGl2ZV5ELm5lZ2F0aXZlLEgubGVuZ3RoPWIubGVuZ3RoK0QubGVuZ3RoLEguc3RyaXAo'@; put 'KX0sTS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGIpe3ZhciBEPW5ldyBNKG51bGwpO3JldHVybiBELndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtiLmxlbmd0aCksdGhpcy5tdWxUbyhiLEQpfSxNLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGIpe3ZhciBEPW5ldyBNKG51bGwpO3JldHVy'@; put 'biBELndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtiLmxlbmd0aCksWCh0aGlzLGIsRCl9LE0ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhiLHRoaXMpfSxNLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBl'@; put 'b2YgYiksbShiPDY3MTA4ODY0KTtmb3IodmFyIEQ9MCxIPTA7SDx0aGlzLmxlbmd0aDtIKyspe3ZhciBOPSgwfHRoaXMud29yZHNbSF0pKmIsZz0oNjcxMDg4NjMmTikrKDY3MTA4ODYzJkQpO0Q+Pj0yNixEKz1OLzY3MTA4ODY0fDAsRCs9Zz4+PjI2LHRoaXMud29yZHNbSF09NjcxMDg4NjMm'@; put 'Z31yZXR1cm4gMCE9PUQmJih0aGlzLndvcmRzW0hdPUQsdGhpcy5sZW5ndGgrKyksdGhpc30sTS5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKGIpfSxNLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE0u'@; put 'cHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LE0ucHJvdG90eXBlLnBvdz1mdW5jdGlvbihiKXt2YXIgRD1mdW5jdGlvbiBqKEcpe2Zvcih2YXIgYj1uZXcgQXJyYXkoRy5iaXRMZW5ndGgoKSksRD0wO0Q8Yi5sZW5ndGg7RCsrKXt2YXIg'@; put 'Tj1EJTI2O2JbRF09KEcud29yZHNbRC8yNnwwXSYxPDxOKT4+Pk59cmV0dXJuIGJ9KGIpO2lmKDA9PT1ELmxlbmd0aClyZXR1cm4gbmV3IE0oMSk7Zm9yKHZhciBIPXRoaXMsTj0wO048RC5sZW5ndGgmJjA9PT1EW05dO04rKyxIPUguc3FyKCkpO2lmKCsrTjxELmxlbmd0aClmb3IodmFyIGc9'@; put 'SC5zcXIoKTtOPEQubGVuZ3RoO04rKyxnPWcuc3FyKCkpMCE9PURbTl0mJihIPUgubXVsKGcpKTtyZXR1cm4gSH0sTS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgZyxEPWIlMjYsSD0oYi1EKS8yNixOPTY3MTA4ODYzPj4+MjYt'@; put 'RDw8MjYtRDtpZigwIT09RCl7dmFyIEM9MDtmb3IoZz0wO2c8dGhpcy5sZW5ndGg7ZysrKXt2YXIgUz10aGlzLndvcmRzW2ddJk47dGhpcy53b3Jkc1tnXT0oMHx0aGlzLndvcmRzW2ddKS1TPDxEfEMsQz1TPj4+MjYtRH1DJiYodGhpcy53b3Jkc1tnXT1DLHRoaXMubGVuZ3RoKyspfWlmKDAh'@; put 'PT1IKXtmb3IoZz10aGlzLmxlbmd0aC0xO2c+PTA7Zy0tKXRoaXMud29yZHNbZytIXT10aGlzLndvcmRzW2ddO2ZvcihnPTA7ZzxIO2crKyl0aGlzLndvcmRzW2ddPTA7dGhpcy5sZW5ndGgrPUh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oYil7cmV0'@; put 'dXJuIG0oMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGIpfSxNLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oYixELEgpe3ZhciBOO20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKSxOPUQ/KEQtRCUyNikvMjY6MDt2YXIgZz1iJTI2LEM9TWF0aC5taW4oKGItZykvMjYsdGhpcy5s'@; put 'ZW5ndGgpLFM9NjcxMDg4NjNeNjcxMDg4NjM+Pj5nPDxnLHY9SDtpZihOLT1DLE49TWF0aC5tYXgoMCxOKSx2KXtmb3IodmFyIHA9MDtwPEM7cCsrKXYud29yZHNbcF09dGhpcy53b3Jkc1twXTt2Lmxlbmd0aD1DfWlmKDAhPT1DKWlmKHRoaXMubGVuZ3RoPkMpZm9yKHRoaXMubGVuZ3RoLT1D'@; put 'LHA9MDtwPHRoaXMubGVuZ3RoO3ArKyl0aGlzLndvcmRzW3BdPXRoaXMud29yZHNbcCtDXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciB3PTA7Zm9yKHA9dGhpcy5sZW5ndGgtMTtwPj0wJiYoMCE9PXd8fHA+PU4pO3AtLSl7dmFyIEo9MHx0aGlzLndvcmRzW3BdO3Ro'@; put 'aXMud29yZHNbcF09dzw8MjYtZ3xKPj4+Zyx3PUomU31yZXR1cm4gdiYmMCE9PXcmJih2LndvcmRzW3YubGVuZ3RoKytdPXcpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGIs'@; put 'RCxIKXtyZXR1cm4gbSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oYixELEgpfSxNLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oYil9LE0ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXVz'@; put 'aGxuKGIpfSxNLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oYil9LE0ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGIpfSxNLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihiKXttKCJudW1i'@; put 'ZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIEQ9YiUyNixIPShiLUQpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PUh8fCEodGhpcy53b3Jkc1tIXSYxPDxEKSl9LE0ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIEQ9YiUyNixIPShi'@; put 'LUQpLzI2O3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9SD90aGlzOigwIT09RCYmSCsrLHRoaXMubGVuZ3RoPU1hdGgubWluKEgsdGhpcy5sZW5ndGgpLDAhPT1EJiYodGhpcy53b3Jkc1t0'@; put 'aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5EPDxEKSx0aGlzLnN0cmlwKCkpfSxNLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihiKX0sTS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oYil7cmV0dXJuIG0oIm51bWJlciI9'@; put 'PXR5cGVvZiBiKSxtKGI8NjcxMDg4NjQpLGI8MD90aGlzLmlzdWJuKC1iKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPGI/KHRoaXMud29yZHNbMF09Yi0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVn'@; put 'YXRpdmU9MCx0aGlzLmlzdWJuKGIpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihiKX0sTS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKGIpe3RoaXMud29yZHNbMF0rPWI7Zm9yKHZhciBEPTA7RDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tEXT49NjcxMDg4NjQ7RCsrKXRo'@; put 'aXMud29yZHNbRF0tPTY3MTA4ODY0LEQ9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbRCsxXT0xOnRoaXMud29yZHNbRCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxEKzEpLHRoaXN9LE0ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKGIpe2lmKG0oIm51'@; put 'bWJlciI9PXR5cGVvZiBiKSxtKGI8NjcxMDg4NjQpLGI8MClyZXR1cm4gdGhpcy5pYWRkbigtYik7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGIpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWIsMT09PXRoaXMu'@; put 'bGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIEQ9MDtEPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0RdPDA7RCsrKXRoaXMud29yZHNbRF0rPTY3MTA4ODY0LHRoaXMud29yZHNbRCsxXS09MTty'@; put 'ZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oYil9LE0ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihiKX0sTS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigp'@; put 'e3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE0ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihiLEQsSCl7dmFyIGc7dGhpcy5fZXhwYW5kKGIubGVuZ3RoK0gpO3ZhciBDLFM9'@; put 'MDtmb3IoZz0wO2c8Yi5sZW5ndGg7ZysrKXtDPSgwfHRoaXMud29yZHNbZytIXSkrUzt2YXIgdj0oMHxiLndvcmRzW2ddKSpEO1M9KChDLT02NzEwODg2MyZ2KT4+MjYpLSh2LzY3MTA4ODY0fDApLHRoaXMud29yZHNbZytIXT02NzEwODg2MyZDfWZvcig7Zzx0aGlzLmxlbmd0aC1IO2crKylT'@; put 'PShDPSgwfHRoaXMud29yZHNbZytIXSkrUyk+PjI2LHRoaXMud29yZHNbZytIXT02NzEwODg2MyZDO2lmKDA9PT1TKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKG0oLTE9PT1TKSxTPTAsZz0wO2c8dGhpcy5sZW5ndGg7ZysrKVM9KEM9LSgwfHRoaXMud29yZHNbZ10pK1MpPj4yNix0aGlzLndv'@; put 'cmRzW2ddPTY3MTA4ODYzJkM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKGIsRCl7dmFyIEgsTj10aGlzLmNsb25lKCksZz1iLEM9MHxnLndvcmRzW2cubGVuZ3RoLTFdOzAhPShIPTI2LXRoaXMuX2NvdW50Qml0cyhD'@; put 'KSkmJihnPWcudXNobG4oSCksTi5pdXNobG4oSCksQz0wfGcud29yZHNbZy5sZW5ndGgtMV0pO3ZhciBwLHY9Ti5sZW5ndGgtZy5sZW5ndGg7aWYoIm1vZCIhPT1EKXsocD1uZXcgTShudWxsKSkubGVuZ3RoPXYrMSxwLndvcmRzPW5ldyBBcnJheShwLmxlbmd0aCk7Zm9yKHZhciB3PTA7dzxw'@; put 'Lmxlbmd0aDt3KyspcC53b3Jkc1t3XT0wfXZhciBKPU4uY2xvbmUoKS5faXNobG5zdWJtdWwoZywxLHYpOzA9PT1KLm5lZ2F0aXZlJiYoTj1KLHAmJihwLndvcmRzW3ZdPTEpKTtmb3IodmFyIG5lPXYtMTtuZT49MDtuZS0tKXt2YXIgZGU9NjcxMDg4NjQqKDB8Ti53b3Jkc1tnLmxlbmd0aCtu'@; put 'ZV0pKygwfE4ud29yZHNbZy5sZW5ndGgrbmUtMV0pO2ZvcihkZT1NYXRoLm1pbihkZS9DfDAsNjcxMDg4NjMpLE4uX2lzaGxuc3VibXVsKGcsZGUsbmUpOzAhPT1OLm5lZ2F0aXZlOylkZS0tLE4ubmVnYXRpdmU9MCxOLl9pc2hsbnN1Ym11bChnLDEsbmUpLE4uaXNaZXJvKCl8fChOLm5lZ2F0'@; put 'aXZlXj0xKTtwJiYocC53b3Jkc1tuZV09ZGUpfXJldHVybiBwJiZwLnN0cmlwKCksTi5zdHJpcCgpLCJkaXYiIT09RCYmMCE9PUgmJk4uaXVzaHJuKEgpLHtkaXY6cHx8bnVsbCxtb2Q6Tn19LE0ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihiLEQsSCl7cmV0dXJuIG0oIWIuaXNaZXJvKCkp'@; put 'LHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTSgwKSxtb2Q6bmV3IE0oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Yi5uZWdhdGl2ZT8oQz10aGlzLm5lZygpLmRpdm1vZChiLEQpLCJtb2QiIT09RCYmKE49Qy5kaXYubmVnKCkpLCJkaXYiIT09RCYmKGc9Qy5tb2QubmVnKCksSCYmMCE9PWcu'@; put 'bmVnYXRpdmUmJmcuaWFkZChiKSkse2RpdjpOLG1vZDpnfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1iLm5lZ2F0aXZlPyhDPXRoaXMuZGl2bW9kKGIubmVnKCksRCksIm1vZCIhPT1EJiYoTj1DLmRpdi5uZWcoKSkse2RpdjpOLG1vZDpDLm1vZH0pOnRoaXMubmVnYXRpdmUmYi5uZWdhdGl2'@; put 'ZT8oQz10aGlzLm5lZygpLmRpdm1vZChiLm5lZygpLEQpLCJkaXYiIT09RCYmKGc9Qy5tb2QubmVnKCksSCYmMCE9PWcubmVnYXRpdmUmJmcuaXN1YihiKSkse2RpdjpDLmRpdixtb2Q6Z30pOmIubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChiKTwwP3tkaXY6bmV3IE0oMCksbW9kOnRo'@; put 'aXN9OjE9PT1iLmxlbmd0aD8iZGl2Ij09PUQ/e2Rpdjp0aGlzLmRpdm4oYi53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09RD97ZGl2Om51bGwsbW9kOm5ldyBNKHRoaXMubW9kbihiLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKGIud29yZHNbMF0pLG1vZDpuZXcgTSh0aGlzLm1vZG4o'@; put 'Yi53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KGIsRCk7dmFyIE4sZyxDfSxNLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZGl2bW9kKGIsImRpdiIsITEpLmRpdn0sTS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmRpdm1vZChiLCJtb2QiLCEx'@; put 'KS5tb2R9LE0ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZGl2bW9kKGIsIm1vZCIsITApLm1vZH0sTS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oYil7dmFyIEQ9dGhpcy5kaXZtb2QoYik7aWYoRC5tb2QuaXNaZXJvKCkpcmV0dXJuIEQuZGl2O3ZhciBIPTAh'@; put 'PT1ELmRpdi5uZWdhdGl2ZT9ELm1vZC5pc3ViKGIpOkQubW9kLE49Yi51c2hybigxKSxnPWIuYW5kbG4oMSksQz1ILmNtcChOKTtyZXR1cm4gQzwwfHwxPT09ZyYmMD09PUM/RC5kaXY6MCE9PUQuZGl2Lm5lZ2F0aXZlP0QuZGl2LmlzdWJuKDEpOkQuZGl2LmlhZGRuKDEpfSxNLnByb3RvdHlw'@; put 'ZS5tb2RuPWZ1bmN0aW9uKGIpe20oYjw9NjcxMDg4NjMpO2Zvcih2YXIgRD0oMTw8MjYpJWIsSD0wLE49dGhpcy5sZW5ndGgtMTtOPj0wO04tLSlIPShEKkgrKDB8dGhpcy53b3Jkc1tOXSkpJWI7cmV0dXJuIEh9LE0ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGIpe20oYjw9NjcxMDg4NjMp'@; put 'O2Zvcih2YXIgRD0wLEg9dGhpcy5sZW5ndGgtMTtIPj0wO0gtLSl7dmFyIE49KDB8dGhpcy53b3Jkc1tIXSkrNjcxMDg4NjQqRDt0aGlzLndvcmRzW0hdPU4vYnwwLEQ9TiVifXJldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xv'@; put 'bmUoKS5pZGl2bihiKX0sTS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihiKXttKDA9PT1iLm5lZ2F0aXZlKSxtKCFiLmlzWmVybygpKTt2YXIgRD10aGlzLEg9Yi5jbG9uZSgpO0Q9MCE9PUQubmVnYXRpdmU/RC51bW9kKGIpOkQuY2xvbmUoKTtmb3IodmFyIE49bmV3IE0oMSksZz1uZXcgTSgw'@; put 'KSxDPW5ldyBNKDApLFM9bmV3IE0oMSksdj0wO0QuaXNFdmVuKCkmJkguaXNFdmVuKCk7KUQuaXVzaHJuKDEpLEguaXVzaHJuKDEpLCsrdjtmb3IodmFyIHA9SC5jbG9uZSgpLHc9RC5jbG9uZSgpOyFELmlzWmVybygpOyl7Zm9yKHZhciBKPTAsbmU9MTshKEQud29yZHNbMF0mbmUpJiZKPDI2'@; put 'OysrSixuZTw8PTEpO2lmKEo+MClmb3IoRC5pdXNocm4oSik7Si0tID4wOykoTi5pc09kZCgpfHxnLmlzT2RkKCkpJiYoTi5pYWRkKHApLGcuaXN1Yih3KSksTi5pdXNocm4oMSksZy5pdXNocm4oMSk7Zm9yKHZhciBkZT0wLGZlPTE7IShILndvcmRzWzBdJmZlKSYmZGU8MjY7KytkZSxmZTw8'@; put 'PTEpO2lmKGRlPjApZm9yKEguaXVzaHJuKGRlKTtkZS0tID4wOykoQy5pc09kZCgpfHxTLmlzT2RkKCkpJiYoQy5pYWRkKHApLFMuaXN1Yih3KSksQy5pdXNocm4oMSksUy5pdXNocm4oMSk7RC5jbXAoSCk+PTA/KEQuaXN1YihIKSxOLmlzdWIoQyksZy5pc3ViKFMpKTooSC5pc3ViKEQpLEMu'@; put 'aXN1YihOKSxTLmlzdWIoZykpfXJldHVybnthOkMsYjpTLGdjZDpILml1c2hsbih2KX19LE0ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihiKXttKDA9PT1iLm5lZ2F0aXZlKSxtKCFiLmlzWmVybygpKTt2YXIgSixEPXRoaXMsSD1iLmNsb25lKCk7RD0wIT09RC5uZWdhdGl2ZT9ELnVtb2Qo'@; put 'Yik6RC5jbG9uZSgpO2Zvcih2YXIgTj1uZXcgTSgxKSxnPW5ldyBNKDApLEM9SC5jbG9uZSgpO0QuY21wbigxKT4wJiZILmNtcG4oMSk+MDspe2Zvcih2YXIgUz0wLHY9MTshKEQud29yZHNbMF0mdikmJlM8MjY7KytTLHY8PD0xKTtpZihTPjApZm9yKEQuaXVzaHJuKFMpO1MtLSA+MDspTi5p'@; put 'c09kZCgpJiZOLmlhZGQoQyksTi5pdXNocm4oMSk7Zm9yKHZhciBwPTAsdz0xOyEoSC53b3Jkc1swXSZ3KSYmcDwyNjsrK3Asdzw8PTEpO2lmKHA+MClmb3IoSC5pdXNocm4ocCk7cC0tID4wOylnLmlzT2RkKCkmJmcuaWFkZChDKSxnLml1c2hybigxKTtELmNtcChIKT49MD8oRC5pc3ViKEgp'@; put 'LE4uaXN1YihnKSk6KEguaXN1YihEKSxnLmlzdWIoTikpfXJldHVybihKPTA9PT1ELmNtcG4oMSk/TjpnKS5jbXBuKDApPDAmJkouaWFkZChiKSxKfSxNLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oYil7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gYi5hYnMoKTtpZihiLmlzWmVybygpKXJldHVy'@; put 'biB0aGlzLmFicygpO3ZhciBEPXRoaXMuY2xvbmUoKSxIPWIuY2xvbmUoKTtELm5lZ2F0aXZlPTAsSC5uZWdhdGl2ZT0wO2Zvcih2YXIgTj0wO0QuaXNFdmVuKCkmJkguaXNFdmVuKCk7TisrKUQuaXVzaHJuKDEpLEguaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtELmlzRXZlbigpOylELml1c2hy'@; put 'bigxKTtmb3IoO0guaXNFdmVuKCk7KUguaXVzaHJuKDEpO3ZhciBnPUQuY21wKEgpO2lmKGc8MCl7dmFyIEM9RDtEPUgsSD1DfWVsc2UgaWYoMD09PWd8fDA9PT1ILmNtcG4oMSkpYnJlYWs7RC5pc3ViKEgpfXJldHVybiBILml1c2hsbihOKX0sTS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihi'@; put 'KXtyZXR1cm4gdGhpcy5lZ2NkKGIpLmEudW1vZChiKX0sTS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxNLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sTS5wcm90b3R5cGUuYW5k'@; put 'bG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMud29yZHNbMF0mYn0sTS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGIpO3ZhciBEPWIlMjYsSD0oYi1EKS8yNixOPTE8PEQ7aWYodGhpcy5sZW5ndGg8PUgpcmV0dXJuIHRoaXMuX2V4cGFuZChIKzEpLHRo'@; put 'aXMud29yZHNbSF18PU4sdGhpcztmb3IodmFyIGc9TixDPUg7MCE9PWcmJkM8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz0wfHRoaXMud29yZHNbQ107Zz0oUys9Zyk+Pj4yNix0aGlzLndvcmRzW0NdPVMmPTY3MTA4ODYzfXJldHVybiAwIT09ZyYmKHRoaXMud29yZHNbQ109Zyx0aGlzLmxlbmd0'@; put 'aCsrKSx0aGlzfSxNLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sTS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihiKXt2YXIgSCxEPWI8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIUQpcmV0dXJuLTE7aWYoMD09'@; put 'PXRoaXMubmVnYXRpdmUmJkQpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpSD0xO2Vsc2V7RCYmKGI9LWIpLG0oYjw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIE49MHx0aGlzLndvcmRzWzBdO0g9Tj09PWI/MDpOPGI/LTE6MX1yZXR1cm4gMCE9PXRo'@; put 'aXMubmVnYXRpdmU/MHwtSDpIfSxNLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oYil7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1iLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Yi5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgRD10aGlzLnVjbXAoYik7cmV0dXJu'@; put 'IDAhPT10aGlzLm5lZ2F0aXZlPzB8LUQ6RH0sTS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihiKXtpZih0aGlzLmxlbmd0aD5iLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxiLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEQ9MCxIPXRoaXMubGVuZ3RoLTE7SD49MDtILS0pe3ZhciBO'@; put 'PTB8dGhpcy53b3Jkc1tIXSxnPTB8Yi53b3Jkc1tIXTtpZihOIT09Zyl7TjxnP0Q9LTE6Tj5nJiYoRD0xKTticmVha319cmV0dXJuIER9LE0ucHJvdG90eXBlLmd0bj1mdW5jdGlvbihiKXtyZXR1cm4gMT09PXRoaXMuY21wbihiKX0sTS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oYil7cmV0dXJu'@; put 'IDE9PT10aGlzLmNtcChiKX0sTS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbXBuKGIpPj0wfSxNLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY21wKGIpPj0wfSxNLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oYil7cmV0dXJuLTE9PT10aGlz'@; put 'LmNtcG4oYil9LE0ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGIpe3JldHVybi0xPT09dGhpcy5jbXAoYil9LE0ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY21wbihiKTw9MH0sTS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcChiKTw9MH0s'@; put 'TS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGIpe3JldHVybiAwPT09dGhpcy5jbXBuKGIpfSxNLnByb3RvdHlwZS5lcT1mdW5jdGlvbihiKXtyZXR1cm4gMD09PXRoaXMuY21wKGIpfSxNLnJlZD1mdW5jdGlvbihiKXtyZXR1cm4gbmV3IHVlKGIpfSxNLnByb3RvdHlwZS50b1JlZD1mdW5jdGlv'@; put 'bihiKXtyZXR1cm4gbSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxtKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGIuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChiKX0sTS5wcm90b3R5cGUuZnJv'@; put 'bVJlZD1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LE0ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5y'@; put 'ZWQ9Yix0aGlzfSxNLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihiKXtyZXR1cm4gbSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChiKX0sTS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRo'@; put 'aXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu'@; put 'aWFkZCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihiKXtyZXR1cm4gbSh0'@; put 'aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVk'@; put 'LnNobCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGIpLHRoaXMucmVkLm11bCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRJ'@; put 'TXVsPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxiKSx0aGlzLnJlZC5pbXVsKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMu'@; put 'cmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxNLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBu'@; put 'dW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sTS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMp'@; put 'LHRoaXMucmVkLnNxcnQodGhpcyl9LE0ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxNLnByb3RvdHlw'@; put 'ZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sTS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMu'@; put 'cmVkJiYhYi5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsYil9O3ZhciBxPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gZWUoRyxiKXt0aGlzLm5hbWU9Ryx0aGlzLnA9'@; put 'bmV3IE0oYiwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE0oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHRlKCl7ZWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBvZSgpe2VlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gc2UoKXtlZS5j'@; put 'YWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIGhlKCl7ZWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZm'@; put 'ZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiB1ZShHKXtpZigic3RyaW5nIj09dHlwZW9mIEcpe3ZhciBiPU0uX3ByaW1lKEcpO3RoaXMubT1iLnAsdGhpcy5wcmltZT1ifWVsc2UgbShHLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPUcsdGhpcy5wcmltZT1u'@; put 'dWxsfWZ1bmN0aW9uIGNlKEcpe3VlLmNhbGwodGhpcyxHKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBNKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1v'@; put 'ZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYp'@; put 'fWVlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IE0obnVsbCk7cmV0dXJuIGIud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxifSxlZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihiKXt2YXIgSCxEPWI7ZG97dGhpcy5zcGxpdChELHRoaXMudG1w'@; put 'KSxIPShEPShEPXRoaXMuaW11bEsoRCkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShIPnRoaXMubik7dmFyIE49SDx0aGlzLm4/LTE6RC51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1OPyhELndvcmRzWzBdPTAsRC5sZW5ndGg9MSk6Tj4wP0QuaXN1Yih0aGlzLnApOnZvaWQg'@; put 'MCE9PUQuc3RyaXA/RC5zdHJpcCgpOkQuX3N0cmlwKCksRH0sZWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGIsRCl7Yi5pdXNocm4odGhpcy5uLDAsRCl9LGVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihiKXtyZXR1cm4gYi5pbXVsKHRoaXMuayl9LGxlKHRlLGVlKSx0ZS5wcm90b3R5'@; put 'cGUuc3BsaXQ9ZnVuY3Rpb24oYixEKXtmb3IodmFyIEg9NDE5NDMwMyxOPU1hdGgubWluKGIubGVuZ3RoLDkpLGc9MDtnPE47ZysrKUQud29yZHNbZ109Yi53b3Jkc1tnXTtpZihELmxlbmd0aD1OLGIubGVuZ3RoPD05KXJldHVybiBiLndvcmRzWzBdPTAsdm9pZChiLmxlbmd0aD0xKTt2YXIg'@; put 'Qz1iLndvcmRzWzldO2ZvcihELndvcmRzW0QubGVuZ3RoKytdPUMmSCxnPTEwO2c8Yi5sZW5ndGg7ZysrKXt2YXIgUz0wfGIud29yZHNbZ107Yi53b3Jkc1tnLTEwXT0oUyZIKTw8NHxDPj4+MjIsQz1TfWIud29yZHNbZy0xMF09Qz4+Pj0yMixiLmxlbmd0aC09MD09PUMmJmIubGVuZ3RoPjEw'@; put 'PzEwOjl9LHRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihiKXtiLndvcmRzW2IubGVuZ3RoXT0wLGIud29yZHNbYi5sZW5ndGgrMV09MCxiLmxlbmd0aCs9Mjtmb3IodmFyIEQ9MCxIPTA7SDxiLmxlbmd0aDtIKyspe3ZhciBOPTB8Yi53b3Jkc1tIXTtiLndvcmRzW0hdPTY3MTA4ODYzJihE'@; put 'Kz05NzcqTiksRD02NCpOKyhELzY3MTA4ODY0fDApfXJldHVybiAwPT09Yi53b3Jkc1tiLmxlbmd0aC0xXSYmKGIubGVuZ3RoLS0sMD09PWIud29yZHNbYi5sZW5ndGgtMV0mJmIubGVuZ3RoLS0pLGJ9LGxlKG9lLGVlKSxsZShzZSxlZSksbGUoaGUsZWUpLGhlLnByb3RvdHlwZS5pbXVsSz1m'@; put 'dW5jdGlvbihiKXtmb3IodmFyIEQ9MCxIPTA7SDxiLmxlbmd0aDtIKyspe3ZhciBOPTE5KigwfGIud29yZHNbSF0pK0QsZz02NzEwODg2MyZOO04+Pj49MjYsYi53b3Jkc1tIXT1nLEQ9Tn1yZXR1cm4gMCE9PUQmJihiLndvcmRzW2IubGVuZ3RoKytdPUQpLGJ9LE0uX3ByaW1lPWZ1bmN0aW9u'@; put 'KGIpe2lmKHFbYl0pcmV0dXJuIHFbYl07dmFyIEQ7aWYoImsyNTYiPT09YilEPW5ldyB0ZTtlbHNlIGlmKCJwMjI0Ij09PWIpRD1uZXcgb2U7ZWxzZSBpZigicDE5MiI9PT1iKUQ9bmV3IHNlO2Vsc2V7aWYoInAyNTUxOSIhPT1iKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK2Ip'@; put 'O0Q9bmV3IGhlfXJldHVybiBxW2JdPUQsRH0sdWUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGIpe20oMD09PWIubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksbShiLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSx1ZS5wcm90b3R5'@; put 'cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oYixEKXttKDA9PShiLm5lZ2F0aXZlfEQubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLG0oYi5yZWQmJmIucmVkPT09RC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sdWUucHJvdG90eXBlLmltb2Q9'@; put 'ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGIpLl9mb3JjZVJlZCh0aGlzKTpiLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LHVlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oYil7cmV0dXJuIGIuaXNaZXJvKCk/Yi5jbG9uZSgpOnRoaXMubS5z'@; put 'dWIoYikuX2ZvcmNlUmVkKHRoaXMpfSx1ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGIsRCl7dGhpcy5fdmVyaWZ5MihiLEQpO3ZhciBIPWIuYWRkKEQpO3JldHVybiBILmNtcCh0aGlzLm0pPj0wJiZILmlzdWIodGhpcy5tKSxILl9mb3JjZVJlZCh0aGlzKX0sdWUucHJvdG90eXBlLmlhZGQ9'@; put 'ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9Yi5pYWRkKEQpO3JldHVybiBILmNtcCh0aGlzLm0pPj0wJiZILmlzdWIodGhpcy5tKSxIfSx1ZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGIsRCl7dGhpcy5fdmVyaWZ5MihiLEQpO3ZhciBIPWIuc3ViKEQpO3JldHVybiBI'@; put 'LmNtcG4oMCk8MCYmSC5pYWRkKHRoaXMubSksSC5fZm9yY2VSZWQodGhpcyl9LHVlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGIsRCl7dGhpcy5fdmVyaWZ5MihiLEQpO3ZhciBIPWIuaXN1YihEKTtyZXR1cm4gSC5jbXBuKDApPDAmJkguaWFkZCh0aGlzLm0pLEh9LHVlLnByb3RvdHlwZS5z'@; put 'aGw9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShiKSx0aGlzLmltb2QoYi51c2hsbihEKSl9LHVlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoYixEKSx0aGlzLmltb2QoYi5pbXVsKEQpKX0sdWUucHJvdG90eXBlLm11bD1mdW5j'@; put 'dGlvbihiLEQpe3JldHVybiB0aGlzLl92ZXJpZnkyKGIsRCksdGhpcy5pbW9kKGIubXVsKEQpKX0sdWUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuaW11bChiLGIuY2xvbmUoKSl9LHVlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubXVsKGIs'@; put 'Yil9LHVlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKGIpe2lmKGIuaXNaZXJvKCkpcmV0dXJuIGIuY2xvbmUoKTt2YXIgRD10aGlzLm0uYW5kbG4oMyk7aWYobShEJTI9PTEpLDM9PT1EKXt2YXIgSD10aGlzLm0uYWRkKG5ldyBNKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KGIsSCl9'@; put 'Zm9yKHZhciBOPXRoaXMubS5zdWJuKDEpLGc9MDshTi5pc1plcm8oKSYmMD09PU4uYW5kbG4oMSk7KWcrKyxOLml1c2hybigxKTttKCFOLmlzWmVybygpKTt2YXIgQz1uZXcgTSgxKS50b1JlZCh0aGlzKSxTPUMucmVkTmVnKCksdj10aGlzLm0uc3VibigxKS5pdXNocm4oMSkscD10aGlzLm0u'@; put 'Yml0TGVuZ3RoKCk7Zm9yKHA9bmV3IE0oMipwKnApLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhwLHYpLmNtcChTKTspcC5yZWRJQWRkKFMpO2Zvcih2YXIgdz10aGlzLnBvdyhwLE4pLEo9dGhpcy5wb3coYixOLmFkZG4oMSkuaXVzaHJuKDEpKSxuZT10aGlzLnBvdyhiLE4pLGRlPWc7MCE9'@; put 'PW5lLmNtcChDKTspe2Zvcih2YXIgZmU9bmUseGU9MDswIT09ZmUuY21wKEMpO3hlKyspZmU9ZmUucmVkU3FyKCk7bSh4ZTxkZSk7dmFyIExlPXRoaXMucG93KHcsbmV3IE0oMSkuaXVzaGxuKGRlLXhlLTEpKTtKPUoucmVkTXVsKExlKSx3PUxlLnJlZFNxcigpLG5lPW5lLnJlZE11bCh3KSxk'@; put 'ZT14ZX1yZXR1cm4gSn0sdWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oYil7dmFyIEQ9Yi5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PUQubmVnYXRpdmU/KEQubmVnYXRpdmU9MCx0aGlzLmltb2QoRCkucmVkTmVnKCkpOnRoaXMuaW1vZChEKX0sdWUucHJvdG90eXBlLnBvdz1mdW5jdGlv'@; put 'bihiLEQpe2lmKEQuaXNaZXJvKCkpcmV0dXJuIG5ldyBNKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1ELmNtcG4oMSkpcmV0dXJuIGIuY2xvbmUoKTt2YXIgTj1uZXcgQXJyYXkoMTYpO05bMF09bmV3IE0oMSkudG9SZWQodGhpcyksTlsxXT1iO2Zvcih2YXIgZz0yO2c8Ti5sZW5ndGg7ZysrKU5b'@; put 'Z109dGhpcy5tdWwoTltnLTFdLGIpO3ZhciBDPU5bMF0sUz0wLHY9MCxwPUQuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1wJiYocD0yNiksZz1ELmxlbmd0aC0xO2c+PTA7Zy0tKXtmb3IodmFyIHc9RC53b3Jkc1tnXSxKPXAtMTtKPj0wO0otLSl7dmFyIG5lPXc+PkomMTtDIT09TlswXSYmKEM9'@; put 'dGhpcy5zcXIoQykpLDAhPT1uZXx8MCE9PVM/KFM8PD0xLFN8PW5lLCg0PT0rK3Z8fDA9PT1nJiYwPT09SikmJihDPXRoaXMubXVsKEMsTltTXSksdj0wLFM9MCkpOnY9MH1wPTI2fXJldHVybiBDfSx1ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGIpe3ZhciBEPWIudW1vZCh0aGlz'@; put 'Lm0pO3JldHVybiBEPT09Yj9ELmNsb25lKCk6RH0sdWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGIpe3ZhciBEPWIuY2xvbmUoKTtyZXR1cm4gRC5yZWQ9bnVsbCxEfSxNLm1vbnQ9ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBjZShiKX0sbGUoY2UsdWUpLGNlLnByb3RvdHlwZS5j'@; put 'b252ZXJ0VG89ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuaW1vZChiLnVzaGxuKHRoaXMuc2hpZnQpKX0sY2UucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGIpe3ZhciBEPXRoaXMuaW1vZChiLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gRC5yZWQ9bnVsbCxEfSxjZS5wcm90b3R5cGUu'@; put 'aW11bD1mdW5jdGlvbihiLEQpe2lmKGIuaXNaZXJvKCl8fEQuaXNaZXJvKCkpcmV0dXJuIGIud29yZHNbMF09MCxiLmxlbmd0aD0xLGI7dmFyIEg9Yi5pbXVsKEQpLE49SC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksZz1I'@; put 'LmlzdWIoTikuaXVzaHJuKHRoaXMuc2hpZnQpLEM9ZztyZXR1cm4gZy5jbXAodGhpcy5tKT49MD9DPWcuaXN1Yih0aGlzLm0pOmcuY21wbigwKTwwJiYoQz1nLmlhZGQodGhpcy5tKSksQy5fZm9yY2VSZWQodGhpcyl9LGNlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oYixEKXtpZihiLmlzWmVy'@; put 'bygpfHxELmlzWmVybygpKXJldHVybiBuZXcgTSgwKS5fZm9yY2VSZWQodGhpcyk7dmFyIEg9Yi5tdWwoRCksTj1ILm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxnPUguaXN1YihOKS5pdXNocm4odGhpcy5zaGlmdCksQz1n'@; put 'O3JldHVybiBnLmNtcCh0aGlzLm0pPj0wP0M9Zy5pc3ViKHRoaXMubSk6Zy5jbXBuKDApPDAmJihDPWcuaWFkZCh0aGlzLm0pKSxDLl9mb3JjZVJlZCh0aGlzKX0sY2UucHJvdG90eXBlLmludm09ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuaW1vZChiLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlz'@; put 'LnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oYXQ9Ri5ubWQoYXQpLHRoaXMpfSwzNjA3MjooYXQsSWUpPT57IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Zvcih2YXIgRj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYWU9'@; put 'bmV3IFVpbnQ4QXJyYXkoMjU2KSx4PTA7eDw2NDt4KyspYWVbRi5jaGFyQ29kZUF0KHgpXT14O0llLmM9ZnVuY3Rpb24obSl7dmFyIE0sbGU9bmV3IFVpbnQ4QXJyYXkobSksTz1sZS5sZW5ndGgsUj0iIjtmb3IoTT0wO008TztNKz0zKVIrPUZbbGVbTV0+PjJdLFIrPUZbKDMmbGVbTV0pPDw0'@; put 'fGxlW00rMV0+PjRdLFIrPUZbKDE1JmxlW00rMV0pPDwyfGxlW00rMl0+PjZdLFIrPUZbNjMmbGVbTSsyXV07cmV0dXJuIE8lMz09Mj9SPVIuc3Vic3RyaW5nKDAsUi5sZW5ndGgtMSkrIj0iOk8lMz09MSYmKFI9Ui5zdWJzdHJpbmcoMCxSLmxlbmd0aC0yKSsiPT0iKSxSfSxJZS5KPWZ1bmN0'@; put 'aW9uKG0pe3ZhciBPLHosSyxJLGssbGU9Ljc1Km0ubGVuZ3RoLE09bS5sZW5ndGgsUj0wOyI9Ij09PW1bbS5sZW5ndGgtMV0mJihsZS0tLCI9Ij09PW1bbS5sZW5ndGgtMl0mJmxlLS0pO3ZhciBFPW5ldyBBcnJheUJ1ZmZlcihsZSksaj1uZXcgVWludDhBcnJheShFKTtmb3IoTz0wO088TTtP'@; put 'Kz00KXo9YWVbbS5jaGFyQ29kZUF0KE8pXSxLPWFlW20uY2hhckNvZGVBdChPKzEpXSxJPWFlW20uY2hhckNvZGVBdChPKzIpXSxrPWFlW20uY2hhckNvZGVBdChPKzMpXSxqW1IrK109ejw8MnxLPj40LGpbUisrXT0oMTUmSyk8PDR8ST4+MixqW1IrK109KDMmSSk8PDZ8NjMmaztyZXR1cm4g'@; put 'RX19KCl9LDk5MTk6KGF0LEllKT0+eyJ1c2Ugc3RyaWN0IjtJZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uIFIoail7dmFyIFY9TyhqKSxZPVZbMV07cmV0dXJuIDMqKFZbMF0rWSkvNC1ZfSxJZS50b0J5dGVBcnJheT1mdW5jdGlvbiBLKGope3ZhciBWLHRlLEI9TyhqKSxZPUJbMF0sWD1CWzFdLFU9'@; put 'bmV3IHgoZnVuY3Rpb24geihqLFYsQil7cmV0dXJuIDMqKFYrQikvNC1CfSgwLFksWCkpLHE9MCxlZT1YPjA/WS00Olk7Zm9yKHRlPTA7dGU8ZWU7dGUrPTQpVj1hZVtqLmNoYXJDb2RlQXQodGUpXTw8MTh8YWVbai5jaGFyQ29kZUF0KHRlKzEpXTw8MTJ8YWVbai5jaGFyQ29kZUF0KHRlKzIp'@; put 'XTw8NnxhZVtqLmNoYXJDb2RlQXQodGUrMyldLFVbcSsrXT1WPj4xNiYyNTUsVVtxKytdPVY+PjgmMjU1LFVbcSsrXT0yNTUmVjtyZXR1cm4gMj09PVgmJihWPWFlW2ouY2hhckNvZGVBdCh0ZSldPDwyfGFlW2ouY2hhckNvZGVBdCh0ZSsxKV0+PjQsVVtxKytdPTI1NSZWKSwxPT09WCYmKFY9'@; put 'YWVbai5jaGFyQ29kZUF0KHRlKV08PDEwfGFlW2ouY2hhckNvZGVBdCh0ZSsxKV08PDR8YWVbai5jaGFyQ29kZUF0KHRlKzIpXT4+MixVW3ErK109Vj4+OCYyNTUsVVtxKytdPTI1NSZWKSxVfSxJZS5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uIEUoail7Zm9yKHZhciBWLEI9ai5sZW5ndGgsWT1C'@; put 'JTMsWD1bXSxVPTE2MzgzLHE9MCxlZT1CLVk7cTxlZTtxKz1VKVgucHVzaChrKGoscSxxK1U+ZWU/ZWU6cStVKSk7cmV0dXJuIDE9PT1ZP1gucHVzaChGWyhWPWpbQi0xXSk+PjJdK0ZbVjw8NCY2M10rIj09Iik6Mj09PVkmJlgucHVzaChGWyhWPShqW0ItMl08PDgpK2pbQi0xXSk+PjEwXStG'@; put 'W1Y+PjQmNjNdK0ZbVjw8MiY2M10rIj0iKSxYLmpvaW4oIiIpfTtmb3IodmFyIEY9W10sYWU9W10seD10eXBlb2YgVWludDhBcnJheTwidSI/VWludDhBcnJheTpBcnJheSxtPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsv'@; put 'IixsZT0wO2xlPDY0OysrbGUpRltsZV09bVtsZV0sYWVbbS5jaGFyQ29kZUF0KGxlKV09bGU7ZnVuY3Rpb24gTyhqKXt2YXIgVj1qLmxlbmd0aDtpZihWJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgQj1q'@; put 'LmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PUImJihCPVYpLFtCLEI9PT1WPzA6NC1CJTRdfWZ1bmN0aW9uIEkoail7cmV0dXJuIEZbaj4+MTgmNjNdK0Zbaj4+MTImNjNdK0Zbaj4+NiY2M10rRls2MyZqXX1mdW5jdGlvbiBrKGosVixCKXtmb3IodmFyIFg9W10sVT1WO1U8QjtVKz0zKVgucHVz'@; put 'aChJKChqW1VdPDwxNiYxNjcxMTY4MCkrKGpbVSsxXTw8OCY2NTI4MCkrKDI1NSZqW1UrMl0pKSk7cmV0dXJuIFguam9pbigiIil9YWVbIi0iLmNoYXJDb2RlQXQoMCldPTYyLGFlWyJfIi5jaGFyQ29kZUF0KDApXT02M30sNjI2NjI6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlLHgp'@; put 'eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKEgsTil7aWYoIUgpdGhyb3cgbmV3IEVycm9yKE58fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gbGUoSCxOKXtILnN1cGVyXz1OO3ZhciBnPWZ1bmN0aW9uKCl7fTtnLnByb3RvdHlwZT1OLnByb3RvdHlwZSxILnByb3RvdHlwZT1uZXcgZyxI'@; put 'LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1IfWZ1bmN0aW9uIE0oSCxOLGcpe2lmKE0uaXNCTihIKSlyZXR1cm4gSDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09SCYmKCgibGUiPT09Tnx8ImJlIj09PU4pJiYoZz1OLE49'@; put 'MTApLHRoaXMuX2luaXQoSHx8MCxOfHwxMCxnfHwiYmUiKSl9dmFyIE87Im9iamVjdCI9PXR5cGVvZiBhZT9hZS5leHBvcnRzPU06eC5CTj1NLE0uQk49TSxNLndvcmRTaXplPTI2O3RyeXtPPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2Ygd2luZG93LkJ1ZmZlcjwidSI/d2luZG93LkJ1ZmZl'@; put 'cjpGKDQ2NjAxKS5CdWZmZXJ9Y2F0Y2h7fWZ1bmN0aW9uIFIoSCxOKXt2YXIgZz1ILmNoYXJDb2RlQXQoTik7cmV0dXJuIGc+PTQ4JiZnPD01Nz9nLTQ4Omc+PTY1JiZnPD03MD9nLTU1Omc+PTk3JiZnPD0xMDI/Zy04Nzp2b2lkIG0oITEsIkludmFsaWQgY2hhcmFjdGVyIGluICIrSCl9ZnVu'@; put 'Y3Rpb24geihILE4sZyl7dmFyIEM9UihILGcpO3JldHVybiBnLTE+PU4mJihDfD1SKEgsZy0xKTw8NCksQ31mdW5jdGlvbiBLKEgsTixnLEMpe2Zvcih2YXIgUz0wLHY9MCxwPU1hdGgubWluKEgubGVuZ3RoLGcpLHc9Tjt3PHA7dysrKXt2YXIgSj1ILmNoYXJDb2RlQXQodyktNDg7Uyo9Qyx2'@; put 'PUo+PTQ5P0otNDkrMTA6Sj49MTc/Si0xNysxMDpKLG0oSj49MCYmdjxDLCJJbnZhbGlkIGNoYXJhY3RlciIpLFMrPXZ9cmV0dXJuIFN9ZnVuY3Rpb24gSShILE4pe0gud29yZHM9Ti53b3JkcyxILmxlbmd0aD1OLmxlbmd0aCxILm5lZ2F0aXZlPU4ubmVnYXRpdmUsSC5yZWQ9Ti5yZWR9aWYo'@; put 'TS5pc0JOPWZ1bmN0aW9uKE4pe3JldHVybiBOIGluc3RhbmNlb2YgTXx8bnVsbCE9PU4mJiJvYmplY3QiPT10eXBlb2YgTiYmTi5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU0ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoTi53b3Jkcyl9LE0ubWF4PWZ1bmN0aW9uKE4sZyl7cmV0dXJuIE4uY21w'@; put 'KGcpPjA/TjpnfSxNLm1pbj1mdW5jdGlvbihOLGcpe3JldHVybiBOLmNtcChnKTwwP046Z30sTS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oTixnLEMpe2lmKCJudW1iZXIiPT10eXBlb2YgTilyZXR1cm4gdGhpcy5faW5pdE51bWJlcihOLGcsQyk7aWYoIm9iamVjdCI9PXR5cGVvZiBOKXJl'@; put 'dHVybiB0aGlzLl9pbml0QXJyYXkoTixnLEMpOyJoZXgiPT09ZyYmKGc9MTYpLG0oZz09PSgwfGcpJiZnPj0yJiZnPD0zNik7dmFyIFM9MDsiLSI9PT0oTj1OLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFMrKyx0aGlzLm5lZ2F0aXZlPTEpLFM8Ti5sZW5ndGgmJigxNj09'@; put 'PWc/dGhpcy5fcGFyc2VIZXgoTixTLEMpOih0aGlzLl9wYXJzZUJhc2UoTixnLFMpLCJsZSI9PT1DJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZyxDKSkpfSxNLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihOLGcsQyl7TjwwJiYodGhpcy5uZWdhdGl2ZT0xLE49LU4p'@; put 'LE48NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJk5dLHRoaXMubGVuZ3RoPTEpOk48NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmTixOLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToobShOPDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9'@; put 'WzY3MTA4ODYzJk4sTi82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09QyYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLGcsQyl9LE0ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTixnLEMpe2lmKG0oIm51bWJlciI9PXR5cGVvZiBOLmxlbmd0'@; put 'aCksTi5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoTi5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgUz0wO1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNb'@; put 'U109MDt2YXIgdixwLHc9MDtpZigiYmUiPT09Qylmb3IoUz1OLmxlbmd0aC0xLHY9MDtTPj0wO1MtPTMpdGhpcy53b3Jkc1t2XXw9KHA9TltTXXxOW1MtMV08PDh8TltTLTJdPDwxNik8PHcmNjcxMDg4NjMsdGhpcy53b3Jkc1t2KzFdPXA+Pj4yNi13JjY3MTA4ODYzLCh3Kz0yNCk+PTI2JiYo'@; put 'dy09MjYsdisrKTtlbHNlIGlmKCJsZSI9PT1DKWZvcihTPTAsdj0wO1M8Ti5sZW5ndGg7Uys9Myl0aGlzLndvcmRzW3ZdfD0ocD1OW1NdfE5bUysxXTw8OHxOW1MrMl08PDE2KTw8dyY2NzEwODg2Myx0aGlzLndvcmRzW3YrMV09cD4+PjI2LXcmNjcxMDg4NjMsKHcrPTI0KT49MjYmJih3LT0y'@; put 'Nix2KyspO3JldHVybiB0aGlzLl9zdHJpcCgpfSxNLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTixnLEMpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoTi5sZW5ndGgtZykvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgUz0wO1M8dGhpcy5sZW5ndGg7'@; put 'UysrKXRoaXMud29yZHNbU109MDt2YXIgdyx2PTAscD0wO2lmKCJiZSI9PT1DKWZvcihTPU4ubGVuZ3RoLTE7Uz49ZztTLT0yKXc9eihOLGcsUyk8PHYsdGhpcy53b3Jkc1twXXw9NjcxMDg4NjMmdyx2Pj0xOD8odi09MTgsdGhpcy53b3Jkc1twKz0xXXw9dz4+PjI2KTp2Kz04O2Vsc2UgZm9y'@; put 'KFM9KE4ubGVuZ3RoLWcpJTI9PTA/ZysxOmc7UzxOLmxlbmd0aDtTKz0yKXc9eihOLGcsUyk8PHYsdGhpcy53b3Jkc1twXXw9NjcxMDg4NjMmdyx2Pj0xOD8odi09MTgsdGhpcy53b3Jkc1twKz0xXXw9dz4+PjI2KTp2Kz04O3RoaXMuX3N0cmlwKCl9LE0ucHJvdG90eXBlLl9wYXJzZUJhc2U9'@; put 'ZnVuY3Rpb24oTixnLEMpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBTPTAsdj0xO3Y8PTY3MTA4ODYzO3YqPWcpUysrO1MtLSx2PXYvZ3wwO2Zvcih2YXIgcD1OLmxlbmd0aC1DLHc9cCVTLEo9TWF0aC5taW4ocCxwLXcpK0MsbmU9MCxkZT1DO2RlPEo7ZGUrPVMpbmU9'@; put 'SyhOLGRlLGRlK1MsZyksdGhpcy5pbXVsbih2KSx0aGlzLndvcmRzWzBdK25lPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW5lOnRoaXMuX2lhZGRuKG5lKTtpZigwIT09dyl7dmFyIGZlPTE7Zm9yKG5lPUsoTixkZSxOLmxlbmd0aCxnKSxkZT0wO2RlPHc7ZGUrKylmZSo9Zzt0aGlzLmltdWxu'@; put 'KGZlKSx0aGlzLndvcmRzWzBdK25lPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW5lOnRoaXMuX2lhZGRuKG5lKX10aGlzLl9zdHJpcCgpfSxNLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE4pe04ud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIGc9MDtnPHRoaXMubGVuZ3Ro'@; put 'O2crKylOLndvcmRzW2ddPXRoaXMud29yZHNbZ107Ti5sZW5ndGg9dGhpcy5sZW5ndGgsTi5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE4ucmVkPXRoaXMucmVkfSxNLnByb3RvdHlwZS5fbW92ZT1mdW5jdGlvbihOKXtJKE4sdGhpcyl9LE0ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFy'@; put 'IE49bmV3IE0obnVsbCk7cmV0dXJuIHRoaXMuY29weShOKSxOfSxNLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE4pe2Zvcig7dGhpcy5sZW5ndGg8TjspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxNLnByb3RvdHlwZS5fc3RyaXA9ZnVuY3Rpb24oKXtmb3Io'@; put 'O3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxNLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRo'@; put 'aXMubmVnYXRpdmU9MCksdGhpc30sdHlwZW9mIFN5bWJvbDwidSImJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yKXRyeXtNLnByb3RvdHlwZVtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1rfWNhdGNoe00ucHJvdG90eXBlLmluc3BlY3Q9a31lbHNlIE0u'@; put 'cHJvdG90eXBlLmluc3BlY3Q9aztmdW5jdGlvbiBrKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9dmFyIEU9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAw'@; put 'MDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwIl0saj1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxWPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3'@; put 'MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTEx'@; put 'NDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIFgoSCxOLGcpe2cubmVnYXRpdmU9Ti5uZWdhdGl2ZV5ILm5lZ2F0aXZlO3ZhciBDPUgubGVuZ3RoK04ubGVuZ3RofDA7Zy5sZW5ndGg9QyxDPUMtMXwwO3ZhciBT'@; put 'PTB8SC53b3Jkc1swXSx2PTB8Ti53b3Jkc1swXSxwPVMqdixKPXAvNjcxMDg4NjR8MDtnLndvcmRzWzBdPTY3MTA4ODYzJnA7Zm9yKHZhciBuZT0xO25lPEM7bmUrKyl7Zm9yKHZhciBkZT1KPj4+MjYsZmU9NjcxMDg4NjMmSix4ZT1NYXRoLm1pbihuZSxOLmxlbmd0aC0xKSxMZT1NYXRoLm1h'@; put 'eCgwLG5lLUgubGVuZ3RoKzEpO0xlPD14ZTtMZSsrKWRlKz0ocD0oUz0wfEgud29yZHNbbmUtTGV8MF0pKih2PTB8Ti53b3Jkc1tMZV0pK2ZlKS82NzEwODg2NHwwLGZlPTY3MTA4ODYzJnA7Zy53b3Jkc1tuZV09MHxmZSxKPTB8ZGV9cmV0dXJuIDAhPT1KP2cud29yZHNbbmVdPTB8SjpnLmxl'@; put 'bmd0aC0tLGcuX3N0cmlwKCl9TS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTixnKXt2YXIgQztpZihnPTB8Z3x8MSwxNj09PShOPU58fDEwKXx8ImhleCI9PT1OKXtDPSIiO2Zvcih2YXIgUz0wLHY9MCxwPTA7cDx0aGlzLmxlbmd0aDtwKyspe3ZhciB3PXRoaXMud29yZHNbcF0sSj0o'@; put 'MTY3NzcyMTUmKHc8PFN8dikpLnRvU3RyaW5nKDE2KTt2PXc+Pj4yNC1TJjE2Nzc3MjE1LChTKz0yKT49MjYmJihTLT0yNixwLS0pLEM9MCE9PXZ8fHAhPT10aGlzLmxlbmd0aC0xP0VbNi1KLmxlbmd0aF0rSitDOkorQ31mb3IoMCE9PXYmJihDPXYudG9TdHJpbmcoMTYpK0MpO0MubGVuZ3Ro'@; put 'JWchPTA7KUM9IjAiK0M7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoQz0iLSIrQyksQ31pZihOPT09KDB8TikmJk4+PTImJk48PTM2KXt2YXIgbmU9altOXSxkZT1WW05dO0M9IiI7dmFyIGZlPXRoaXMuY2xvbmUoKTtmb3IoZmUubmVnYXRpdmU9MDshZmUuaXNaZXJvKCk7KXt2YXIgeGU9'@; put 'ZmUubW9kcm4oZGUpLnRvU3RyaW5nKE4pO0M9KGZlPWZlLmlkaXZuKGRlKSkuaXNaZXJvKCk/eGUrQzpFW25lLXhlLmxlbmd0aF0reGUrQ31mb3IodGhpcy5pc1plcm8oKSYmKEM9IjAiK0MpO0MubGVuZ3RoJWchPTA7KUM9IjAiK0M7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoQz0iLSIr'@; put 'QyksQ31tKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LE0ucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE49dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP04rPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYx'@; put 'PT09dGhpcy53b3Jkc1syXT9OKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmbSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LU46Tn0sTS5wcm90b3R5cGUudG9K'@; put 'U09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYsMil9LE8mJihNLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihOLGcpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKE8sTixnKX0pLE0ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTixnKXtyZXR1cm4gdGhpcy50b0Fy'@; put 'cmF5TGlrZShBcnJheSxOLGcpfSxNLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihOLGcsQyl7dGhpcy5fc3RyaXAoKTt2YXIgUz10aGlzLmJ5dGVMZW5ndGgoKSx2PUN8fE1hdGgubWF4KDEsUyk7bShTPD12LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiks'@; put 'bSh2PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBwPWZ1bmN0aW9uKE4sZyl7cmV0dXJuIE4uYWxsb2NVbnNhZmU/Ti5hbGxvY1Vuc2FmZShnKTpuZXcgTihnKX0oTix2KTtyZXR1cm4gdGhpc1siX3RvQXJyYXlMaWtlIisoImxlIj09PWc/IkxFIjoiQkUiKV0ocCxTKSxw'@; put 'fSxNLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbihOLGcpe2Zvcih2YXIgQz0wLFM9MCx2PTAscD0wO3Y8dGhpcy5sZW5ndGg7disrKXt2YXIgdz10aGlzLndvcmRzW3ZdPDxwfFM7TltDKytdPTI1NSZ3LEM8Ti5sZW5ndGgmJihOW0MrK109dz4+OCYyNTUpLEM8Ti5sZW5ndGgm'@; put 'JihOW0MrK109dz4+MTYmMjU1KSw2PT09cD8oQzxOLmxlbmd0aCYmKE5bQysrXT13Pj4yNCYyNTUpLFM9MCxwPTApOihTPXc+Pj4yNCxwKz0yKX1pZihDPE4ubGVuZ3RoKWZvcihOW0MrK109UztDPE4ubGVuZ3RoOylOW0MrK109MH0sTS5wcm90b3R5cGUuX3RvQXJyYXlMaWtlQkU9ZnVuY3Rp'@; put 'b24oTixnKXtmb3IodmFyIEM9Ti5sZW5ndGgtMSxTPTAsdj0wLHA9MDt2PHRoaXMubGVuZ3RoO3YrKyl7dmFyIHc9dGhpcy53b3Jkc1t2XTw8cHxTO05bQy0tXT0yNTUmdyxDPj0wJiYoTltDLS1dPXc+PjgmMjU1KSxDPj0wJiYoTltDLS1dPXc+PjE2JjI1NSksNj09PXA/KEM+PTAmJihOW0Mt'@; put 'LV09dz4+MjQmMjU1KSxTPTAscD0wKTooUz13Pj4+MjQscCs9Mil9aWYoQz49MClmb3IoTltDLS1dPVM7Qz49MDspTltDLS1dPTB9LE0ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihOKXtyZXR1cm4gMzItTWF0aC5jbHozMihOKX06ZnVuY3Rpb24oTil7dmFyIGc9'@; put 'TixDPTA7cmV0dXJuIGc+PTQwOTYmJihDKz0xMyxnPj4+PTEzKSxnPj02NCYmKEMrPTcsZz4+Pj03KSxnPj04JiYoQys9NCxnPj4+PTQpLGc+PTImJihDKz0yLGc+Pj49MiksQytnfSxNLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oTil7aWYoMD09PU4pcmV0dXJuIDI2O3ZhciBnPU4s'@; put 'Qz0wO3JldHVybiA4MTkxJmd8fChDKz0xMyxnPj4+PTEzKSwxMjcmZ3x8KEMrPTcsZz4+Pj03KSwxNSZnfHwoQys9NCxnPj4+PTQpLDMmZ3x8KEMrPTIsZz4+Pj0yKSwxJmd8fEMrKyxDfSxNLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLl9jb3VudEJpdHModGhp'@; put 'cy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStnfSxNLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBOPTAsZz0wO2c8dGhpcy5sZW5ndGg7ZysrKXt2YXIgQz10aGlzLl96ZXJvQml0'@; put 'cyh0aGlzLndvcmRzW2ddKTtpZihOKz1DLDI2IT09QylicmVha31yZXR1cm4gTn0sTS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKE4pe3JldHVybiAwIT09dGhp'@; put 'cy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKE4pLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMudGVzdG4oTi0xKT90aGlzLm5vdG4oTikuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTS5wcm90b3R5cGUu'@; put 'aXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE0ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxNLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0x'@; put 'KSx0aGlzfSxNLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKE4pe2Zvcig7dGhpcy5sZW5ndGg8Ti5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIGc9MDtnPE4ubGVuZ3RoO2crKyl0aGlzLndvcmRzW2ddPXRoaXMud29yZHNbZ118Ti53b3Jkc1tnXTtyZXR1cm4g'@; put 'dGhpcy5fc3RyaXAoKX0sTS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKE4pe3JldHVybiBtKDA9PSh0aGlzLm5lZ2F0aXZlfE4ubmVnYXRpdmUpKSx0aGlzLml1b3IoTil9LE0ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmxlbmd0aD5OLmxlbmd0aD90aGlzLmNsb25lKCku'@; put 'aW9yKE4pOk4uY2xvbmUoKS5pb3IodGhpcyl9LE0ucHJvdG90eXBlLnVvcj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ti5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTik6Ti5jbG9uZSgpLml1b3IodGhpcyl9LE0ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE4pe3ZhciBnO2c9'@; put 'dGhpcy5sZW5ndGg+Ti5sZW5ndGg/Tjp0aGlzO2Zvcih2YXIgQz0wO0M8Zy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109dGhpcy53b3Jkc1tDXSZOLndvcmRzW0NdO3JldHVybiB0aGlzLmxlbmd0aD1nLmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxNLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE4p'@; put 'e3JldHVybiBtKDA9PSh0aGlzLm5lZ2F0aXZlfE4ubmVnYXRpdmUpKSx0aGlzLml1YW5kKE4pfSxNLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMubGVuZ3RoPk4ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKE4pOk4uY2xvbmUoKS5pYW5kKHRoaXMpfSxNLnByb3RvdHlw'@; put 'ZS51YW5kPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmxlbmd0aD5OLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTik6Ti5jbG9uZSgpLml1YW5kKHRoaXMpfSxNLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihOKXt2YXIgZyxDO3RoaXMubGVuZ3RoPk4ubGVuZ3RoPyhnPXRoaXMsQz1OKToo'@; put 'Zz1OLEM9dGhpcyk7Zm9yKHZhciBTPTA7UzxDLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT1nLndvcmRzW1NdXkMud29yZHNbU107aWYodGhpcyE9PWcpZm9yKDtTPGcubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPWcud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPWcubGVuZ3RoLHRoaXMu'@; put 'X3N0cmlwKCl9LE0ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oTil7cmV0dXJuIG0oMD09KHRoaXMubmVnYXRpdmV8Ti5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoTil9LE0ucHJvdG90eXBlLnhvcj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ti5sZW5ndGg/dGhpcy5jbG9uZSgpLml4'@; put 'b3IoTik6Ti5jbG9uZSgpLml4b3IodGhpcyl9LE0ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMubGVuZ3RoPk4ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihOKTpOLmNsb25lKCkuaXV4b3IodGhpcyl9LE0ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKE4pe20oIm51'@; put 'bWJlciI9PXR5cGVvZiBOJiZOPj0wKTt2YXIgZz0wfE1hdGguY2VpbChOLzI2KSxDPU4lMjY7dGhpcy5fZXhwYW5kKGcpLEM+MCYmZy0tO2Zvcih2YXIgUz0wO1M8ZztTKyspdGhpcy53b3Jkc1tTXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tTXTtyZXR1cm4gQz4wJiYodGhpcy53b3Jkc1tTXT1+'@; put 'dGhpcy53b3Jkc1tTXSY2NzEwODg2Mz4+MjYtQyksdGhpcy5fc3RyaXAoKX0sTS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKE4pfSxNLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE4sZyl7bSgibnVtYmVyIj09dHlwZW9mIE4mJk4+PTApO3Zh'@; put 'ciBDPU4vMjZ8MCxTPU4lMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChDKzEpLHRoaXMud29yZHNbQ109Zz90aGlzLndvcmRzW0NdfDE8PFM6dGhpcy53b3Jkc1tDXSZ+KDE8PFMpLHRoaXMuX3N0cmlwKCl9LE0ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTil7dmFyIGcsQyxTO2lmKDAhPT10aGlz'@; put 'Lm5lZ2F0aXZlJiYwPT09Ti5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLGc9dGhpcy5pc3ViKE4pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU4ubmVnYXRpdmUpcmV0dXJuIE4ubmVnYXRpdmU9MCxnPXRoaXMuaXN1'@; put 'YihOKSxOLm5lZ2F0aXZlPTEsZy5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5OLmxlbmd0aD8oQz10aGlzLFM9Tik6KEM9TixTPXRoaXMpO2Zvcih2YXIgdj0wLHA9MDtwPFMubGVuZ3RoO3ArKyl0aGlzLndvcmRzW3BdPTY3MTA4ODYzJihnPSgwfEMud29yZHNbcF0pKygwfFMud29yZHNbcF0p'@; put 'K3YpLHY9Zz4+PjI2O2Zvcig7MCE9PXYmJnA8Qy5sZW5ndGg7cCsrKXRoaXMud29yZHNbcF09NjcxMDg4NjMmKGc9KDB8Qy53b3Jkc1twXSkrdiksdj1nPj4+MjY7aWYodGhpcy5sZW5ndGg9Qy5sZW5ndGgsMCE9PXYpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09dix0aGlzLmxlbmd0aCsrO2Vs'@; put 'c2UgaWYoQyE9PXRoaXMpZm9yKDtwPEMubGVuZ3RoO3ArKyl0aGlzLndvcmRzW3BdPUMud29yZHNbcF07cmV0dXJuIHRoaXN9LE0ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihOKXt2YXIgZztyZXR1cm4gMCE9PU4ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhOLm5lZ2F0aXZlPTAsZz10'@; put 'aGlzLnN1YihOKSxOLm5lZ2F0aXZlXj0xLGcpOjA9PT1OLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLGc9Ti5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLGcpOnRoaXMubGVuZ3RoPk4ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKE4pOk4uY2xvbmUoKS5p'@; put 'YWRkKHRoaXMpfSxNLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE4pe2lmKDAhPT1OLm5lZ2F0aXZlKXtOLm5lZ2F0aXZlPTA7dmFyIGc9dGhpcy5pYWRkKE4pO3JldHVybiBOLm5lZ2F0aXZlPTEsZy5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2'@; put 'ZT0wLHRoaXMuaWFkZChOKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgUyx2LEM9dGhpcy5jbXAoTik7aWYoMD09PUMpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO0M+MD8oUz10aGlzLHY9Tik6KFM9Tix2PXRo'@; put 'aXMpO2Zvcih2YXIgcD0wLHc9MDt3PHYubGVuZ3RoO3crKylwPShnPSgwfFMud29yZHNbd10pLSgwfHYud29yZHNbd10pK3ApPj4yNix0aGlzLndvcmRzW3ddPTY3MTA4ODYzJmc7Zm9yKDswIT09cCYmdzxTLmxlbmd0aDt3KyspcD0oZz0oMHxTLndvcmRzW3ddKStwKT4+MjYsdGhpcy53b3Jk'@; put 'c1t3XT02NzEwODg2MyZnO2lmKDA9PT1wJiZ3PFMubGVuZ3RoJiZTIT09dGhpcylmb3IoO3c8Uy5sZW5ndGg7dysrKXRoaXMud29yZHNbd109Uy53b3Jkc1t3XTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsdyksUyE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRo'@; put 'aXMuX3N0cmlwKCl9LE0ucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoTil9O3ZhciBVPWZ1bmN0aW9uKE4sZyxDKXt2YXIgSixuZSxkZSxTPU4ud29yZHMsdj1nLndvcmRzLHA9Qy53b3Jkcyx3PTAsZmU9MHxTWzBdLHhlPTgxOTEmZmUsTGU9ZmU+'@; put 'Pj4xMyxGZT0wfFNbMV0sT2U9ODE5MSZGZSxqZT1GZT4+PjEzLFdlPTB8U1syXSxLZT04MTkxJldlLFllPVdlPj4+MTMsUWU9MHxTWzNdLGx0PTgxOTEmUWUsUGU9UWU+Pj4xMyxiZT0wfFNbNF0sQWU9ODE5MSZiZSxUZT1iZT4+PjEzLHFlPTB8U1s1XSxYZT04MTkxJnFlLFVlPXFlPj4+MTMs'@; put 'aHQ9MHxTWzZdLE1lPTgxOTEmaHQsRGU9aHQ+Pj4xMyx6ZT0wfFNbN10sb3Q9ODE5MSZ6ZSx1dD16ZT4+PjEzLE10PTB8U1s4XSxIdD04MTkxJk10LFB0PU10Pj4+MTMsb249MHxTWzldLENuPTgxOTEmb24sVXQ9b24+Pj4xMyxibj0wfHZbMF0sV249ODE5MSZibixlbj1ibj4+PjEzLCRuPTB8'@; put 'dlsxXSxIbj04MTkxJiRuLGZ0PSRuPj4+MTMsZm49MHx2WzJdLGhuPTgxOTEmZm4sd3Q9Zm4+Pj4xMyxYdD0wfHZbM10sX3Q9ODE5MSZYdCxOdD1YdD4+PjEzLG1uPTB8dls0XSxydD04MTkxJm1uLEl0PW1uPj4+MTMsUXQ9MHx2WzVdLER0PTgxOTEmUXQscHQ9UXQ+Pj4xMyxZdD0wfHZbNl0s'@; put 'SW49ODE5MSZZdCx6dD1ZdD4+PjEzLHluPTB8dls3XSx4bj04MTkxJnluLHNuPXluPj4+MTMsQm49MHx2WzhdLFJuPTgxOTEmQm4sJHQ9Qm4+Pj4xMyxGbj0wfHZbOV0sbmk9ODE5MSZGbixsbj1Gbj4+PjEzO0MubmVnYXRpdmU9Ti5uZWdhdGl2ZV5nLm5lZ2F0aXZlLEMubGVuZ3RoPTE5O3Zh'@; put 'ciBqbj0odysoSj1NYXRoLmltdWwoeGUsV24pKXwwKSsoKDgxOTEmKG5lPShuZT1NYXRoLmltdWwoeGUsZW4pKStNYXRoLmltdWwoTGUsV24pfDApKTw8MTMpfDA7dz0oKGRlPU1hdGguaW11bChMZSxlbikpKyhuZT4+PjEzKXwwKSsoam4+Pj4yNil8MCxqbiY9NjcxMDg4NjMsSj1NYXRoLmlt'@; put 'dWwoT2UsV24pLG5lPShuZT1NYXRoLmltdWwoT2UsZW4pKStNYXRoLmltdWwoamUsV24pfDAsZGU9TWF0aC5pbXVsKGplLGVuKTt2YXIgcXI9KHcrKEo9SitNYXRoLmltdWwoeGUsSG4pfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bCh4ZSxmdCl8MCkrTWF0aC5pbXVsKExlLEhu'@; put 'KXwwKSk8PDEzKXwwO3c9KChkZT1kZStNYXRoLmltdWwoTGUsZnQpfDApKyhuZT4+PjEzKXwwKSsocXI+Pj4yNil8MCxxciY9NjcxMDg4NjMsSj1NYXRoLmltdWwoS2UsV24pLG5lPShuZT1NYXRoLmltdWwoS2UsZW4pKStNYXRoLmltdWwoWWUsV24pfDAsZGU9TWF0aC5pbXVsKFllLGVuKSxK'@; put 'PUorTWF0aC5pbXVsKE9lLEhuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoT2UsZnQpfDApK01hdGguaW11bChqZSxIbil8MCxkZT1kZStNYXRoLmltdWwoamUsZnQpfDA7dmFyIGdpPSh3KyhKPUorTWF0aC5pbXVsKHhlLGhuKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoeGUs'@; put 'd3QpfDApK01hdGguaW11bChMZSxobil8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKExlLHd0KXwwKSsobmU+Pj4xMyl8MCkrKGdpPj4+MjYpfDAsZ2kmPTY3MTA4ODYzLEo9TWF0aC5pbXVsKGx0LFduKSxuZT0obmU9TWF0aC5pbXVsKGx0LGVuKSkrTWF0aC5pbXVsKFBlLFduKXww'@; put 'LGRlPU1hdGguaW11bChQZSxlbiksSj1KK01hdGguaW11bChLZSxIbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEtlLGZ0KXwwKStNYXRoLmltdWwoWWUsSG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFllLGZ0KXwwLEo9SitNYXRoLmltdWwoT2UsaG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChPZSx3'@; put 'dCl8MCkrTWF0aC5pbXVsKGplLGhuKXwwLGRlPWRlK01hdGguaW11bChqZSx3dCl8MDt2YXIgeHI9KHcrKEo9SitNYXRoLmltdWwoeGUsX3QpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bCh4ZSxOdCl8MCkrTWF0aC5pbXVsKExlLF90KXwwKSk8PDEzKXwwO3c9KChkZT1kZStN'@; put 'YXRoLmltdWwoTGUsTnQpfDApKyhuZT4+PjEzKXwwKSsoeHI+Pj4yNil8MCx4ciY9NjcxMDg4NjMsSj1NYXRoLmltdWwoQWUsV24pLG5lPShuZT1NYXRoLmltdWwoQWUsZW4pKStNYXRoLmltdWwoVGUsV24pfDAsZGU9TWF0aC5pbXVsKFRlLGVuKSxKPUorTWF0aC5pbXVsKGx0LEhuKXwwLG5l'@; put 'PShuZT1uZStNYXRoLmltdWwobHQsZnQpfDApK01hdGguaW11bChQZSxIbil8MCxkZT1kZStNYXRoLmltdWwoUGUsZnQpfDAsSj1KK01hdGguaW11bChLZSxobil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEtlLHd0KXwwKStNYXRoLmltdWwoWWUsaG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFllLHd0'@; put 'KXwwLEo9SitNYXRoLmltdWwoT2UsX3QpfDAsbmU9KG5lPW5lK01hdGguaW11bChPZSxOdCl8MCkrTWF0aC5pbXVsKGplLF90KXwwLGRlPWRlK01hdGguaW11bChqZSxOdCl8MDt2YXIgVWk9KHcrKEo9SitNYXRoLmltdWwoeGUscnQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11'@; put 'bCh4ZSxJdCl8MCkrTWF0aC5pbXVsKExlLHJ0KXwwKSk8PDEzKXwwO3c9KChkZT1kZStNYXRoLmltdWwoTGUsSXQpfDApKyhuZT4+PjEzKXwwKSsoVWk+Pj4yNil8MCxVaSY9NjcxMDg4NjMsSj1NYXRoLmltdWwoWGUsV24pLG5lPShuZT1NYXRoLmltdWwoWGUsZW4pKStNYXRoLmltdWwoVWUs'@; put 'V24pfDAsZGU9TWF0aC5pbXVsKFVlLGVuKSxKPUorTWF0aC5pbXVsKEFlLEhuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoQWUsZnQpfDApK01hdGguaW11bChUZSxIbil8MCxkZT1kZStNYXRoLmltdWwoVGUsZnQpfDAsSj1KK01hdGguaW11bChsdCxobil8MCxuZT0obmU9bmUrTWF0aC5pbXVs'@; put 'KGx0LHd0KXwwKStNYXRoLmltdWwoUGUsaG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFBlLHd0KXwwLEo9SitNYXRoLmltdWwoS2UsX3QpfDAsbmU9KG5lPW5lK01hdGguaW11bChLZSxOdCl8MCkrTWF0aC5pbXVsKFllLF90KXwwLGRlPWRlK01hdGguaW11bChZZSxOdCl8MCxKPUorTWF0aC5pbXVs'@; put 'KE9lLHJ0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoT2UsSXQpfDApK01hdGguaW11bChqZSxydCl8MCxkZT1kZStNYXRoLmltdWwoamUsSXQpfDA7dmFyIEtyPSh3KyhKPUorTWF0aC5pbXVsKHhlLER0KXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoeGUscHQpfDApK01hdGgu'@; put 'aW11bChMZSxEdCl8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKExlLHB0KXwwKSsobmU+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLEo9TWF0aC5pbXVsKE1lLFduKSxuZT0obmU9TWF0aC5pbXVsKE1lLGVuKSkrTWF0aC5pbXVsKERlLFduKXwwLGRlPU1hdGguaW11'@; put 'bChEZSxlbiksSj1KK01hdGguaW11bChYZSxIbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFhlLGZ0KXwwKStNYXRoLmltdWwoVWUsSG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFVlLGZ0KXwwLEo9SitNYXRoLmltdWwoQWUsaG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChBZSx3dCl8MCkrTWF0aC5p'@; put 'bXVsKFRlLGhuKXwwLGRlPWRlK01hdGguaW11bChUZSx3dCl8MCxKPUorTWF0aC5pbXVsKGx0LF90KXwwLG5lPShuZT1uZStNYXRoLmltdWwobHQsTnQpfDApK01hdGguaW11bChQZSxfdCl8MCxkZT1kZStNYXRoLmltdWwoUGUsTnQpfDAsSj1KK01hdGguaW11bChLZSxydCl8MCxuZT0obmU9'@; put 'bmUrTWF0aC5pbXVsKEtlLEl0KXwwKStNYXRoLmltdWwoWWUscnQpfDAsZGU9ZGUrTWF0aC5pbXVsKFllLEl0KXwwLEo9SitNYXRoLmltdWwoT2UsRHQpfDAsbmU9KG5lPW5lK01hdGguaW11bChPZSxwdCl8MCkrTWF0aC5pbXVsKGplLER0KXwwLGRlPWRlK01hdGguaW11bChqZSxwdCl8MDt2'@; put 'YXIgbm89KHcrKEo9SitNYXRoLmltdWwoeGUsSW4pfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bCh4ZSx6dCl8MCkrTWF0aC5pbXVsKExlLEluKXwwKSk8PDEzKXwwO3c9KChkZT1kZStNYXRoLmltdWwoTGUsenQpfDApKyhuZT4+PjEzKXwwKSsobm8+Pj4yNil8MCxubyY9Njcx'@; put 'MDg4NjMsSj1NYXRoLmltdWwob3QsV24pLG5lPShuZT1NYXRoLmltdWwob3QsZW4pKStNYXRoLmltdWwodXQsV24pfDAsZGU9TWF0aC5pbXVsKHV0LGVuKSxKPUorTWF0aC5pbXVsKE1lLEhuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoTWUsZnQpfDApK01hdGguaW11bChEZSxIbil8MCxkZT1k'@; put 'ZStNYXRoLmltdWwoRGUsZnQpfDAsSj1KK01hdGguaW11bChYZSxobil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFhlLHd0KXwwKStNYXRoLmltdWwoVWUsaG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFVlLHd0KXwwLEo9SitNYXRoLmltdWwoQWUsX3QpfDAsbmU9KG5lPW5lK01hdGguaW11bChBZSxO'@; put 'dCl8MCkrTWF0aC5pbXVsKFRlLF90KXwwLGRlPWRlK01hdGguaW11bChUZSxOdCl8MCxKPUorTWF0aC5pbXVsKGx0LHJ0KXwwLG5lPShuZT1uZStNYXRoLmltdWwobHQsSXQpfDApK01hdGguaW11bChQZSxydCl8MCxkZT1kZStNYXRoLmltdWwoUGUsSXQpfDAsSj1KK01hdGguaW11bChLZSxE'@; put 'dCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEtlLHB0KXwwKStNYXRoLmltdWwoWWUsRHQpfDAsZGU9ZGUrTWF0aC5pbXVsKFllLHB0KXwwLEo9SitNYXRoLmltdWwoT2UsSW4pfDAsbmU9KG5lPW5lK01hdGguaW11bChPZSx6dCl8MCkrTWF0aC5pbXVsKGplLEluKXwwLGRlPWRlK01hdGguaW11'@; put 'bChqZSx6dCl8MDt2YXIgSHI9KHcrKEo9SitNYXRoLmltdWwoeGUseG4pfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bCh4ZSxzbil8MCkrTWF0aC5pbXVsKExlLHhuKXwwKSk8PDEzKXwwO3c9KChkZT1kZStNYXRoLmltdWwoTGUsc24pfDApKyhuZT4+PjEzKXwwKSsoSHI+Pj4y'@; put 'Nil8MCxIciY9NjcxMDg4NjMsSj1NYXRoLmltdWwoSHQsV24pLG5lPShuZT1NYXRoLmltdWwoSHQsZW4pKStNYXRoLmltdWwoUHQsV24pfDAsZGU9TWF0aC5pbXVsKFB0LGVuKSxKPUorTWF0aC5pbXVsKG90LEhuKXwwLG5lPShuZT1uZStNYXRoLmltdWwob3QsZnQpfDApK01hdGguaW11bCh1'@; put 'dCxIbil8MCxkZT1kZStNYXRoLmltdWwodXQsZnQpfDAsSj1KK01hdGguaW11bChNZSxobil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE1lLHd0KXwwKStNYXRoLmltdWwoRGUsaG4pfDAsZGU9ZGUrTWF0aC5pbXVsKERlLHd0KXwwLEo9SitNYXRoLmltdWwoWGUsX3QpfDAsbmU9KG5lPW5lK01h'@; put 'dGguaW11bChYZSxOdCl8MCkrTWF0aC5pbXVsKFVlLF90KXwwLGRlPWRlK01hdGguaW11bChVZSxOdCl8MCxKPUorTWF0aC5pbXVsKEFlLHJ0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoQWUsSXQpfDApK01hdGguaW11bChUZSxydCl8MCxkZT1kZStNYXRoLmltdWwoVGUsSXQpfDAsSj1KK01h'@; put 'dGguaW11bChsdCxEdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKGx0LHB0KXwwKStNYXRoLmltdWwoUGUsRHQpfDAsZGU9ZGUrTWF0aC5pbXVsKFBlLHB0KXwwLEo9SitNYXRoLmltdWwoS2UsSW4pfDAsbmU9KG5lPW5lK01hdGguaW11bChLZSx6dCl8MCkrTWF0aC5pbXVsKFllLEluKXwwLGRl'@; put 'PWRlK01hdGguaW11bChZZSx6dCl8MCxKPUorTWF0aC5pbXVsKE9lLHhuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoT2Usc24pfDApK01hdGguaW11bChqZSx4bil8MCxkZT1kZStNYXRoLmltdWwoamUsc24pfDA7dmFyIHFpPSh3KyhKPUorTWF0aC5pbXVsKHhlLFJuKXwwKXwwKSsoKDgxOTEm'@; put 'KG5lPShuZT1uZStNYXRoLmltdWwoeGUsJHQpfDApK01hdGguaW11bChMZSxSbil8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKExlLCR0KXwwKSsobmU+Pj4xMyl8MCkrKHFpPj4+MjYpfDAscWkmPTY3MTA4ODYzLEo9TWF0aC5pbXVsKENuLFduKSxuZT0obmU9TWF0aC5pbXVsKENu'@; put 'LGVuKSkrTWF0aC5pbXVsKFV0LFduKXwwLGRlPU1hdGguaW11bChVdCxlbiksSj1KK01hdGguaW11bChIdCxIbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEh0LGZ0KXwwKStNYXRoLmltdWwoUHQsSG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFB0LGZ0KXwwLEo9SitNYXRoLmltdWwob3QsaG4pfDAs'@; put 'bmU9KG5lPW5lK01hdGguaW11bChvdCx3dCl8MCkrTWF0aC5pbXVsKHV0LGhuKXwwLGRlPWRlK01hdGguaW11bCh1dCx3dCl8MCxKPUorTWF0aC5pbXVsKE1lLF90KXwwLG5lPShuZT1uZStNYXRoLmltdWwoTWUsTnQpfDApK01hdGguaW11bChEZSxfdCl8MCxkZT1kZStNYXRoLmltdWwoRGUs'@; put 'TnQpfDAsSj1KK01hdGguaW11bChYZSxydCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFhlLEl0KXwwKStNYXRoLmltdWwoVWUscnQpfDAsZGU9ZGUrTWF0aC5pbXVsKFVlLEl0KXwwLEo9SitNYXRoLmltdWwoQWUsRHQpfDAsbmU9KG5lPW5lK01hdGguaW11bChBZSxwdCl8MCkrTWF0aC5pbXVs'@; put 'KFRlLER0KXwwLGRlPWRlK01hdGguaW11bChUZSxwdCl8MCxKPUorTWF0aC5pbXVsKGx0LEluKXwwLG5lPShuZT1uZStNYXRoLmltdWwobHQsenQpfDApK01hdGguaW11bChQZSxJbil8MCxkZT1kZStNYXRoLmltdWwoUGUsenQpfDAsSj1KK01hdGguaW11bChLZSx4bil8MCxuZT0obmU9bmUr'@; put 'TWF0aC5pbXVsKEtlLHNuKXwwKStNYXRoLmltdWwoWWUseG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFllLHNuKXwwLEo9SitNYXRoLmltdWwoT2UsUm4pfDAsbmU9KG5lPW5lK01hdGguaW11bChPZSwkdCl8MCkrTWF0aC5pbXVsKGplLFJuKXwwLGRlPWRlK01hdGguaW11bChqZSwkdCl8MDt2YXIg'@; put 'Smk9KHcrKEo9SitNYXRoLmltdWwoeGUsbmkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bCh4ZSxsbil8MCkrTWF0aC5pbXVsKExlLG5pKXwwKSk8PDEzKXwwO3c9KChkZT1kZStNYXRoLmltdWwoTGUsbG4pfDApKyhuZT4+PjEzKXwwKSsoSmk+Pj4yNil8MCxKaSY9NjcxMDg4'@; put 'NjMsSj1NYXRoLmltdWwoQ24sSG4pLG5lPShuZT1NYXRoLmltdWwoQ24sZnQpKStNYXRoLmltdWwoVXQsSG4pfDAsZGU9TWF0aC5pbXVsKFV0LGZ0KSxKPUorTWF0aC5pbXVsKEh0LGhuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoSHQsd3QpfDApK01hdGguaW11bChQdCxobil8MCxkZT1kZStN'@; put 'YXRoLmltdWwoUHQsd3QpfDAsSj1KK01hdGguaW11bChvdCxfdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG90LE50KXwwKStNYXRoLmltdWwodXQsX3QpfDAsZGU9ZGUrTWF0aC5pbXVsKHV0LE50KXwwLEo9SitNYXRoLmltdWwoTWUscnQpfDAsbmU9KG5lPW5lK01hdGguaW11bChNZSxJdCl8'@; put 'MCkrTWF0aC5pbXVsKERlLHJ0KXwwLGRlPWRlK01hdGguaW11bChEZSxJdCl8MCxKPUorTWF0aC5pbXVsKFhlLER0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoWGUscHQpfDApK01hdGguaW11bChVZSxEdCl8MCxkZT1kZStNYXRoLmltdWwoVWUscHQpfDAsSj1KK01hdGguaW11bChBZSxJbil8'@; put 'MCxuZT0obmU9bmUrTWF0aC5pbXVsKEFlLHp0KXwwKStNYXRoLmltdWwoVGUsSW4pfDAsZGU9ZGUrTWF0aC5pbXVsKFRlLHp0KXwwLEo9SitNYXRoLmltdWwobHQseG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChsdCxzbil8MCkrTWF0aC5pbXVsKFBlLHhuKXwwLGRlPWRlK01hdGguaW11bChQ'@; put 'ZSxzbil8MCxKPUorTWF0aC5pbXVsKEtlLFJuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoS2UsJHQpfDApK01hdGguaW11bChZZSxSbil8MCxkZT1kZStNYXRoLmltdWwoWWUsJHQpfDA7dmFyIGFvPSh3KyhKPUorTWF0aC5pbXVsKE9lLG5pKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRo'@; put 'LmltdWwoT2UsbG4pfDApK01hdGguaW11bChqZSxuaSl8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKGplLGxuKXwwKSsobmU+Pj4xMyl8MCkrKGFvPj4+MjYpfDAsYW8mPTY3MTA4ODYzLEo9TWF0aC5pbXVsKENuLGhuKSxuZT0obmU9TWF0aC5pbXVsKENuLHd0KSkrTWF0aC5pbXVs'@; put 'KFV0LGhuKXwwLGRlPU1hdGguaW11bChVdCx3dCksSj1KK01hdGguaW11bChIdCxfdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEh0LE50KXwwKStNYXRoLmltdWwoUHQsX3QpfDAsZGU9ZGUrTWF0aC5pbXVsKFB0LE50KXwwLEo9SitNYXRoLmltdWwob3QscnQpfDAsbmU9KG5lPW5lK01hdGgu'@; put 'aW11bChvdCxJdCl8MCkrTWF0aC5pbXVsKHV0LHJ0KXwwLGRlPWRlK01hdGguaW11bCh1dCxJdCl8MCxKPUorTWF0aC5pbXVsKE1lLER0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoTWUscHQpfDApK01hdGguaW11bChEZSxEdCl8MCxkZT1kZStNYXRoLmltdWwoRGUscHQpfDAsSj1KK01hdGgu'@; put 'aW11bChYZSxJbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFhlLHp0KXwwKStNYXRoLmltdWwoVWUsSW4pfDAsZGU9ZGUrTWF0aC5pbXVsKFVlLHp0KXwwLEo9SitNYXRoLmltdWwoQWUseG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChBZSxzbil8MCkrTWF0aC5pbXVsKFRlLHhuKXwwLGRlPWRl'@; put 'K01hdGguaW11bChUZSxzbil8MCxKPUorTWF0aC5pbXVsKGx0LFJuKXwwLG5lPShuZT1uZStNYXRoLmltdWwobHQsJHQpfDApK01hdGguaW11bChQZSxSbil8MCxkZT1kZStNYXRoLmltdWwoUGUsJHQpfDA7dmFyIHJvPSh3KyhKPUorTWF0aC5pbXVsKEtlLG5pKXwwKXwwKSsoKDgxOTEmKG5l'@; put 'PShuZT1uZStNYXRoLmltdWwoS2UsbG4pfDApK01hdGguaW11bChZZSxuaSl8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKFllLGxuKXwwKSsobmU+Pj4xMyl8MCkrKHJvPj4+MjYpfDAscm8mPTY3MTA4ODYzLEo9TWF0aC5pbXVsKENuLF90KSxuZT0obmU9TWF0aC5pbXVsKENuLE50'@; put 'KSkrTWF0aC5pbXVsKFV0LF90KXwwLGRlPU1hdGguaW11bChVdCxOdCksSj1KK01hdGguaW11bChIdCxydCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEh0LEl0KXwwKStNYXRoLmltdWwoUHQscnQpfDAsZGU9ZGUrTWF0aC5pbXVsKFB0LEl0KXwwLEo9SitNYXRoLmltdWwob3QsRHQpfDAsbmU9'@; put 'KG5lPW5lK01hdGguaW11bChvdCxwdCl8MCkrTWF0aC5pbXVsKHV0LER0KXwwLGRlPWRlK01hdGguaW11bCh1dCxwdCl8MCxKPUorTWF0aC5pbXVsKE1lLEluKXwwLG5lPShuZT1uZStNYXRoLmltdWwoTWUsenQpfDApK01hdGguaW11bChEZSxJbil8MCxkZT1kZStNYXRoLmltdWwoRGUsenQp'@; put 'fDAsSj1KK01hdGguaW11bChYZSx4bil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFhlLHNuKXwwKStNYXRoLmltdWwoVWUseG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFVlLHNuKXwwLEo9SitNYXRoLmltdWwoQWUsUm4pfDAsbmU9KG5lPW5lK01hdGguaW11bChBZSwkdCl8MCkrTWF0aC5pbXVsKFRl'@; put 'LFJuKXwwLGRlPWRlK01hdGguaW11bChUZSwkdCl8MDt2YXIgaW89KHcrKEo9SitNYXRoLmltdWwobHQsbmkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChsdCxsbil8MCkrTWF0aC5pbXVsKFBlLG5pKXwwKSk8PDEzKXwwO3c9KChkZT1kZStNYXRoLmltdWwoUGUsbG4pfDAp'@; put 'KyhuZT4+PjEzKXwwKSsoaW8+Pj4yNil8MCxpbyY9NjcxMDg4NjMsSj1NYXRoLmltdWwoQ24scnQpLG5lPShuZT1NYXRoLmltdWwoQ24sSXQpKStNYXRoLmltdWwoVXQscnQpfDAsZGU9TWF0aC5pbXVsKFV0LEl0KSxKPUorTWF0aC5pbXVsKEh0LER0KXwwLG5lPShuZT1uZStNYXRoLmltdWwo'@; put 'SHQscHQpfDApK01hdGguaW11bChQdCxEdCl8MCxkZT1kZStNYXRoLmltdWwoUHQscHQpfDAsSj1KK01hdGguaW11bChvdCxJbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG90LHp0KXwwKStNYXRoLmltdWwodXQsSW4pfDAsZGU9ZGUrTWF0aC5pbXVsKHV0LHp0KXwwLEo9SitNYXRoLmltdWwo'@; put 'TWUseG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChNZSxzbil8MCkrTWF0aC5pbXVsKERlLHhuKXwwLGRlPWRlK01hdGguaW11bChEZSxzbil8MCxKPUorTWF0aC5pbXVsKFhlLFJuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoWGUsJHQpfDApK01hdGguaW11bChVZSxSbil8MCxkZT1kZStNYXRo'@; put 'LmltdWwoVWUsJHQpfDA7dmFyIEdpPSh3KyhKPUorTWF0aC5pbXVsKEFlLG5pKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoQWUsbG4pfDApK01hdGguaW11bChUZSxuaSl8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKFRlLGxuKXwwKSsobmU+Pj4xMyl8MCkrKEdp'@; put 'Pj4+MjYpfDAsR2kmPTY3MTA4ODYzLEo9TWF0aC5pbXVsKENuLER0KSxuZT0obmU9TWF0aC5pbXVsKENuLHB0KSkrTWF0aC5pbXVsKFV0LER0KXwwLGRlPU1hdGguaW11bChVdCxwdCksSj1KK01hdGguaW11bChIdCxJbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEh0LHp0KXwwKStNYXRoLmlt'@; put 'dWwoUHQsSW4pfDAsZGU9ZGUrTWF0aC5pbXVsKFB0LHp0KXwwLEo9SitNYXRoLmltdWwob3QseG4pfDAsbmU9KG5lPW5lK01hdGguaW11bChvdCxzbil8MCkrTWF0aC5pbXVsKHV0LHhuKXwwLGRlPWRlK01hdGguaW11bCh1dCxzbil8MCxKPUorTWF0aC5pbXVsKE1lLFJuKXwwLG5lPShuZT1u'@; put 'ZStNYXRoLmltdWwoTWUsJHQpfDApK01hdGguaW11bChEZSxSbil8MCxkZT1kZStNYXRoLmltdWwoRGUsJHQpfDA7dmFyIGhvPSh3KyhKPUorTWF0aC5pbXVsKFhlLG5pKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWGUsbG4pfDApK01hdGguaW11bChVZSxuaSl8MCkpPDwx'@; put 'Myl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKFVlLGxuKXwwKSsobmU+Pj4xMyl8MCkrKGhvPj4+MjYpfDAsaG8mPTY3MTA4ODYzLEo9TWF0aC5pbXVsKENuLEluKSxuZT0obmU9TWF0aC5pbXVsKENuLHp0KSkrTWF0aC5pbXVsKFV0LEluKXwwLGRlPU1hdGguaW11bChVdCx6dCksSj1KK01hdGgu'@; put 'aW11bChIdCx4bil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKEh0LHNuKXwwKStNYXRoLmltdWwoUHQseG4pfDAsZGU9ZGUrTWF0aC5pbXVsKFB0LHNuKXwwLEo9SitNYXRoLmltdWwob3QsUm4pfDAsbmU9KG5lPW5lK01hdGguaW11bChvdCwkdCl8MCkrTWF0aC5pbXVsKHV0LFJuKXwwLGRlPWRl'@; put 'K01hdGguaW11bCh1dCwkdCl8MDt2YXIgeXI9KHcrKEo9SitNYXRoLmltdWwoTWUsbmkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChNZSxsbil8MCkrTWF0aC5pbXVsKERlLG5pKXwwKSk8PDEzKXwwO3c9KChkZT1kZStNYXRoLmltdWwoRGUsbG4pfDApKyhuZT4+PjEzKXww'@; put 'KSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsSj1NYXRoLmltdWwoQ24seG4pLG5lPShuZT1NYXRoLmltdWwoQ24sc24pKStNYXRoLmltdWwoVXQseG4pfDAsZGU9TWF0aC5pbXVsKFV0LHNuKSxKPUorTWF0aC5pbXVsKEh0LFJuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoSHQsJHQpfDApK01h'@; put 'dGguaW11bChQdCxSbil8MCxkZT1kZStNYXRoLmltdWwoUHQsJHQpfDA7dmFyIFBpPSh3KyhKPUorTWF0aC5pbXVsKG90LG5pKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwob3QsbG4pfDApK01hdGguaW11bCh1dCxuaSl8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVs'@; put 'KHV0LGxuKXwwKSsobmU+Pj4xMyl8MCkrKFBpPj4+MjYpfDAsUGkmPTY3MTA4ODYzLEo9TWF0aC5pbXVsKENuLFJuKSxuZT0obmU9TWF0aC5pbXVsKENuLCR0KSkrTWF0aC5pbXVsKFV0LFJuKXwwLGRlPU1hdGguaW11bChVdCwkdCk7dmFyIExvPSh3KyhKPUorTWF0aC5pbXVsKEh0LG5pKXww'@; put 'KXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoSHQsbG4pfDApK01hdGguaW11bChQdCxuaSl8MCkpPDwxMyl8MDt3PSgoZGU9ZGUrTWF0aC5pbXVsKFB0LGxuKXwwKSsobmU+Pj4xMyl8MCkrKExvPj4+MjYpfDAsTG8mPTY3MTA4ODYzO3ZhciBocz0odysoSj1NYXRoLmltdWwoQ24s'@; put 'bmkpKXwwKSsoKDgxOTEmKG5lPShuZT1NYXRoLmltdWwoQ24sbG4pKStNYXRoLmltdWwoVXQsbmkpfDApKTw8MTMpfDA7cmV0dXJuIHc9KChkZT1NYXRoLmltdWwoVXQsbG4pKSsobmU+Pj4xMyl8MCkrKGhzPj4+MjYpfDAsaHMmPTY3MTA4ODYzLHBbMF09am4scFsxXT1xcixwWzJdPWdpLHBb'@; put 'M109eHIscFs0XT1VaSxwWzVdPUtyLHBbNl09bm8scFs3XT1IcixwWzhdPXFpLHBbOV09SmkscFsxMF09YW8scFsxMV09cm8scFsxMl09aW8scFsxM109R2kscFsxNF09aG8scFsxNV09eXIscFsxNl09UGkscFsxN109TG8scFsxOF09aHMsMCE9PXcmJihwWzE5XT13LEMubGVuZ3RoKyspLEN9'@; put 'O2Z1bmN0aW9uIHEoSCxOLGcpe2cubmVnYXRpdmU9Ti5uZWdhdGl2ZV5ILm5lZ2F0aXZlLGcubGVuZ3RoPUgubGVuZ3RoK04ubGVuZ3RoO2Zvcih2YXIgQz0wLFM9MCx2PTA7djxnLmxlbmd0aC0xO3YrKyl7dmFyIHA9UztTPTA7Zm9yKHZhciB3PTY3MTA4ODYzJkMsSj1NYXRoLm1pbih2LE4u'@; put 'bGVuZ3RoLTEpLG5lPU1hdGgubWF4KDAsdi1ILmxlbmd0aCsxKTtuZTw9SjtuZSsrKXt2YXIgTGU9KDB8SC53b3Jkc1t2LW5lXSkqKDB8Ti53b3Jkc1tuZV0pLEZlPTY3MTA4ODYzJkxlO3c9NjcxMDg4NjMmKEZlPUZlK3d8MCksUys9KHA9KHA9cCsoTGUvNjcxMDg4NjR8MCl8MCkrKEZlPj4+'@; put 'MjYpfDApPj4+MjYscCY9NjcxMDg4NjN9Zy53b3Jkc1t2XT13LEM9cCxwPVN9cmV0dXJuIDAhPT1DP2cud29yZHNbdl09QzpnLmxlbmd0aC0tLGcuX3N0cmlwKCl9ZnVuY3Rpb24gZWUoSCxOLGcpe3JldHVybiBxKEgsTixnKX1mdW5jdGlvbiB0ZShILE4pe3RoaXMueD1ILHRoaXMueT1OfU1h'@; put 'dGguaW11bHx8KFU9WCksTS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oTixnKXt2YXIgUz10aGlzLmxlbmd0aCtOLmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT1OLmxlbmd0aD9VKHRoaXMsTixnKTpTPDYzP1godGhpcyxOLGcpOlM8MTAyND9xKHRoaXMsTixnKTplZSh0'@; put 'aGlzLE4sZyl9LHRlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKE4pe2Zvcih2YXIgZz1uZXcgQXJyYXkoTiksQz1NLnByb3RvdHlwZS5fY291bnRCaXRzKE4pLTEsUz0wO1M8TjtTKyspZ1tTXT10aGlzLnJldkJpbihTLEMsTik7cmV0dXJuIGd9LHRlLnByb3RvdHlwZS5yZXZCaW49ZnVu'@; put 'Y3Rpb24oTixnLEMpe2lmKDA9PT1OfHxOPT09Qy0xKXJldHVybiBOO2Zvcih2YXIgUz0wLHY9MDt2PGc7disrKVN8PSgxJk4pPDxnLXYtMSxOPj49MTtyZXR1cm4gU30sdGUucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTixnLEMsUyx2LHApe2Zvcih2YXIgdz0wO3c8cDt3KyspU1t3XT1n'@; put 'W05bd11dLHZbd109Q1tOW3ddXX0sdGUucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihOLGcsQyxTLHYscCl7dGhpcy5wZXJtdXRlKHAsTixnLEMsUyx2KTtmb3IodmFyIHc9MTt3PHY7dzw8PTEpZm9yKHZhciBKPXc8PDEsbmU9TWF0aC5jb3MoMipNYXRoLlBJL0opLGRlPU1hdGguc2lu'@; put 'KDIqTWF0aC5QSS9KKSxmZT0wO2ZlPHY7ZmUrPUopZm9yKHZhciB4ZT1uZSxMZT1kZSxGZT0wO0ZlPHc7RmUrKyl7dmFyIE9lPUNbZmUrRmVdLGplPVNbZmUrRmVdLFdlPUNbZmUrRmUrd10sS2U9U1tmZStGZSt3XSxZZT14ZSpXZS1MZSpLZTtLZT14ZSpLZStMZSpXZSxDW2ZlK0ZlXT1PZSso'@; put 'V2U9WWUpLFNbZmUrRmVdPWplK0tlLENbZmUrRmUrd109T2UtV2UsU1tmZStGZSt3XT1qZS1LZSxGZSE9PUomJihZZT1uZSp4ZS1kZSpMZSxMZT1uZSpMZStkZSp4ZSx4ZT1ZZSl9fSx0ZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTixnKXt2YXIgQz0xfE1hdGgubWF4KGcsTiks'@; put 'Uz0xJkMsdj0wO2ZvcihDPUMvMnwwO0M7Qz4+Pj0xKXYrKztyZXR1cm4gMTw8disxK1N9LHRlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oTixnLEMpe2lmKCEoQzw9MSkpZm9yKHZhciBTPTA7UzxDLzI7UysrKXt2YXIgdj1OW1NdO05bU109TltDLVMtMV0sTltDLVMtMV09dix2PWdb'@; put 'U10sZ1tTXT0tZ1tDLVMtMV0sZ1tDLVMtMV09LXZ9fSx0ZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKE4sZyl7Zm9yKHZhciBDPTAsUz0wO1M8Zy8yO1MrKyl7dmFyIHY9ODE5MipNYXRoLnJvdW5kKE5bMipTKzFdL2cpK01hdGgucm91bmQoTlsyKlNdL2cpK0M7TltTXT02NzEw'@; put 'ODg2MyZ2LEM9djw2NzEwODg2ND8wOnYvNjcxMDg4NjR8MH1yZXR1cm4gTn0sdGUucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oTixnLEMsUyl7Zm9yKHZhciB2PTAscD0wO3A8ZztwKyspQ1syKnBdPTgxOTEmKHYrPTB8TltwXSksQ1syKnArMV09ODE5MSYodj4+Pj0xMyksdj4+Pj0x'@; put 'Mztmb3IocD0yKmc7cDxTOysrcClDW3BdPTA7bSgwPT09diksbSgwPT0oLTgxOTImdikpfSx0ZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihOKXtmb3IodmFyIGc9bmV3IEFycmF5KE4pLEM9MDtDPE47QysrKWdbQ109MDtyZXR1cm4gZ30sdGUucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTixn'@; put 'LEMpe3ZhciBTPTIqdGhpcy5ndWVzc0xlbjEzYihOLmxlbmd0aCxnLmxlbmd0aCksdj10aGlzLm1ha2VSQlQoUykscD10aGlzLnN0dWIoUyksdz1uZXcgQXJyYXkoUyksSj1uZXcgQXJyYXkoUyksbmU9bmV3IEFycmF5KFMpLGRlPW5ldyBBcnJheShTKSxmZT1uZXcgQXJyYXkoUykseGU9bmV3'@; put 'IEFycmF5KFMpLExlPUMud29yZHM7TGUubGVuZ3RoPVMsdGhpcy5jb252ZXJ0MTNiKE4ud29yZHMsTi5sZW5ndGgsdyxTKSx0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0aCxkZSxTKSx0aGlzLnRyYW5zZm9ybSh3LHAsSixuZSxTLHYpLHRoaXMudHJhbnNmb3JtKGRlLHAsZmUseGUs'@; put 'Uyx2KTtmb3IodmFyIEZlPTA7RmU8UztGZSsrKXt2YXIgT2U9SltGZV0qZmVbRmVdLW5lW0ZlXSp4ZVtGZV07bmVbRmVdPUpbRmVdKnhlW0ZlXStuZVtGZV0qZmVbRmVdLEpbRmVdPU9lfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShKLG5lLFMpLHRoaXMudHJhbnNmb3JtKEosbmUsTGUscCxTLHYp'@; put 'LHRoaXMuY29uanVnYXRlKExlLHAsUyksdGhpcy5ub3JtYWxpemUxM2IoTGUsUyksQy5uZWdhdGl2ZT1OLm5lZ2F0aXZlXmcubmVnYXRpdmUsQy5sZW5ndGg9Ti5sZW5ndGgrZy5sZW5ndGgsQy5fc3RyaXAoKX0sTS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE4pe3ZhciBnPW5ldyBNKG51bGwp'@; put 'O3JldHVybiBnLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtOLmxlbmd0aCksdGhpcy5tdWxUbyhOLGcpfSxNLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE4pe3ZhciBnPW5ldyBNKG51bGwpO3JldHVybiBnLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtOLmxlbmd0aCksZWUodGhp'@; put 'cyxOLGcpfSxNLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oTix0aGlzKX0sTS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTil7dmFyIGc9TjwwO2cmJihOPS1OKSxtKCJudW1iZXIiPT10eXBlb2YgTiksbShOPDY3MTA4ODY0KTtmb3IodmFy'@; put 'IEM9MCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspe3ZhciB2PSgwfHRoaXMud29yZHNbU10pKk4scD0oNjcxMDg4NjMmdikrKDY3MTA4ODYzJkMpO0M+Pj0yNixDKz12LzY3MTA4ODY0fDAsQys9cD4+PjI2LHRoaXMud29yZHNbU109NjcxMDg4NjMmcH1yZXR1cm4gMCE9PUMmJih0aGlzLndvcmRz'@; put 'W1NdPUMsdGhpcy5sZW5ndGgrKyksZz90aGlzLmluZWcoKTp0aGlzfSxNLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTil9LE0ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTS5wcm90b3R5cGUuaXNx'@; put 'cj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE4pe3ZhciBnPWZ1bmN0aW9uIFkoSCl7Zm9yKHZhciBOPW5ldyBBcnJheShILmJpdExlbmd0aCgpKSxnPTA7ZzxOLmxlbmd0aDtnKyspTltnXT1ILndvcmRzW2cvMjZ8'@; put 'MF0+Pj5nJTI2JjE7cmV0dXJuIE59KE4pO2lmKDA9PT1nLmxlbmd0aClyZXR1cm4gbmV3IE0oMSk7Zm9yKHZhciBDPXRoaXMsUz0wO1M8Zy5sZW5ndGgmJjA9PT1nW1NdO1MrKyxDPUMuc3FyKCkpO2lmKCsrUzxnLmxlbmd0aClmb3IodmFyIHY9Qy5zcXIoKTtTPGcubGVuZ3RoO1MrKyx2PXYu'@; put 'c3FyKCkpMCE9PWdbU10mJihDPUMubXVsKHYpKTtyZXR1cm4gQ30sTS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE4pe20oIm51bWJlciI9PXR5cGVvZiBOJiZOPj0wKTt2YXIgdixnPU4lMjYsQz0oTi1nKS8yNixTPTY3MTA4ODYzPj4+MjYtZzw8MjYtZztpZigwIT09Zyl7dmFyIHA9MDtm'@; put 'b3Iodj0wO3Y8dGhpcy5sZW5ndGg7disrKXt2YXIgdz10aGlzLndvcmRzW3ZdJlM7dGhpcy53b3Jkc1t2XT0oMHx0aGlzLndvcmRzW3ZdKS13PDxnfHAscD13Pj4+MjYtZ31wJiYodGhpcy53b3Jkc1t2XT1wLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1DKXtmb3Iodj10aGlzLmxlbmd0aC0xO3Y+'@; put 'PTA7di0tKXRoaXMud29yZHNbditDXT10aGlzLndvcmRzW3ZdO2Zvcih2PTA7djxDO3YrKyl0aGlzLndvcmRzW3ZdPTA7dGhpcy5sZW5ndGgrPUN9cmV0dXJuIHRoaXMuX3N0cmlwKCl9LE0ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE4pe3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlKSx0'@; put 'aGlzLml1c2hsbihOKX0sTS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKE4sZyxDKXt2YXIgUzttKCJudW1iZXIiPT10eXBlb2YgTiYmTj49MCksUz1nPyhnLWclMjYpLzI2OjA7dmFyIHY9TiUyNixwPU1hdGgubWluKChOLXYpLzI2LHRoaXMubGVuZ3RoKSx3PTY3MTA4ODYzXjY3MTA4ODYz'@; put 'Pj4+djw8dixKPUM7aWYoUy09cCxTPU1hdGgubWF4KDAsUyksSil7Zm9yKHZhciBuZT0wO25lPHA7bmUrKylKLndvcmRzW25lXT10aGlzLndvcmRzW25lXTtKLmxlbmd0aD1wfWlmKDAhPT1wKWlmKHRoaXMubGVuZ3RoPnApZm9yKHRoaXMubGVuZ3RoLT1wLG5lPTA7bmU8dGhpcy5sZW5ndGg7'@; put 'bmUrKyl0aGlzLndvcmRzW25lXT10aGlzLndvcmRzW25lK3BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIGRlPTA7Zm9yKG5lPXRoaXMubGVuZ3RoLTE7bmU+PTAmJigwIT09ZGV8fG5lPj1TKTtuZS0tKXt2YXIgZmU9MHx0aGlzLndvcmRzW25lXTt0aGlzLndvcmRz'@; put 'W25lXT1kZTw8MjYtdnxmZT4+PnYsZGU9ZmUmd31yZXR1cm4gSiYmMCE9PWRlJiYoSi53b3Jkc1tKLmxlbmd0aCsrXT1kZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuX3N0cmlwKCl9LE0ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE4s'@; put 'ZyxDKXtyZXR1cm4gbSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTixnLEMpfSxNLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oTil9LE0ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNsb25lKCkuaXVz'@; put 'aGxuKE4pfSxNLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oTil9LE0ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKE4pfSxNLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihOKXttKCJudW1i'@; put 'ZXIiPT10eXBlb2YgTiYmTj49MCk7dmFyIGc9TiUyNixDPShOLWcpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PUN8fCEodGhpcy53b3Jkc1tDXSYxPDxnKSl9LE0ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihOKXttKCJudW1iZXIiPT10eXBlb2YgTiYmTj49MCk7dmFyIGc9TiUyNixDPShO'@; put 'LWcpLzI2O3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Qz90aGlzOigwIT09ZyYmQysrLHRoaXMubGVuZ3RoPU1hdGgubWluKEMsdGhpcy5sZW5ndGgpLDAhPT1nJiYodGhpcy53b3Jkc1t0'@; put 'aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5nPDxnKSx0aGlzLl9zdHJpcCgpKX0sTS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oTil9LE0ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKE4pe3JldHVybiBtKCJudW1iZXIi'@; put 'PT10eXBlb2YgTiksbShOPDY3MTA4ODY0KSxOPDA/dGhpcy5pc3VibigtTik6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTw9Tj8odGhpcy53b3Jkc1swXT1OLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5u'@; put 'ZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTiksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE4pfSxNLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTil7dGhpcy53b3Jkc1swXSs9Tjtmb3IodmFyIGc9MDtnPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW2ddPj02NzEwODg2NDtnKysp'@; put 'dGhpcy53b3Jkc1tnXS09NjcxMDg4NjQsZz09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tnKzFdPTE6dGhpcy53b3Jkc1tnKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLGcrMSksdGhpc30sTS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTil7aWYobSgi'@; put 'bnVtYmVyIj09dHlwZW9mIE4pLG0oTjw2NzEwODg2NCksTjwwKXJldHVybiB0aGlzLmlhZGRuKC1OKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oTiksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09TiwxPT09dGhp'@; put 'cy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgZz0wO2c8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbZ108MDtnKyspdGhpcy53b3Jkc1tnXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tnKzFdLT0x'@; put 'O3JldHVybiB0aGlzLl9zdHJpcCgpfSxNLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oTil9LE0ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihOKX0sTS5wcm90b3R5cGUuaWFicz1mdW5jdGlv'@; put 'bigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE0ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihOLGcsQyl7dmFyIHY7dGhpcy5fZXhwYW5kKE4ubGVuZ3RoK0MpO3ZhciBw'@; put 'LHc9MDtmb3Iodj0wO3Y8Ti5sZW5ndGg7disrKXtwPSgwfHRoaXMud29yZHNbditDXSkrdzt2YXIgSj0oMHxOLndvcmRzW3ZdKSpnO3c9KChwLT02NzEwODg2MyZKKT4+MjYpLShKLzY3MTA4ODY0fDApLHRoaXMud29yZHNbditDXT02NzEwODg2MyZwfWZvcig7djx0aGlzLmxlbmd0aC1DO3Yr'@; put 'Kyl3PShwPSgwfHRoaXMud29yZHNbditDXSkrdyk+PjI2LHRoaXMud29yZHNbditDXT02NzEwODg2MyZwO2lmKDA9PT13KXJldHVybiB0aGlzLl9zdHJpcCgpO2ZvcihtKC0xPT09dyksdz0wLHY9MDt2PHRoaXMubGVuZ3RoO3YrKyl3PShwPS0oMHx0aGlzLndvcmRzW3ZdKSt3KT4+MjYsdGhp'@; put 'cy53b3Jkc1t2XT02NzEwODg2MyZwO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fc3RyaXAoKX0sTS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oTixnKXt2YXIgQyxTPXRoaXMuY2xvbmUoKSx2PU4scD0wfHYud29yZHNbdi5sZW5ndGgtMV07MCE9KEM9MjYtdGhpcy5fY291bnRC'@; put 'aXRzKHApKSYmKHY9di51c2hsbihDKSxTLml1c2hsbihDKSxwPTB8di53b3Jkc1t2Lmxlbmd0aC0xXSk7dmFyIG5lLEo9Uy5sZW5ndGgtdi5sZW5ndGg7aWYoIm1vZCIhPT1nKXsobmU9bmV3IE0obnVsbCkpLmxlbmd0aD1KKzEsbmUud29yZHM9bmV3IEFycmF5KG5lLmxlbmd0aCk7Zm9yKHZh'@; put 'ciBkZT0wO2RlPG5lLmxlbmd0aDtkZSsrKW5lLndvcmRzW2RlXT0wfXZhciBmZT1TLmNsb25lKCkuX2lzaGxuc3VibXVsKHYsMSxKKTswPT09ZmUubmVnYXRpdmUmJihTPWZlLG5lJiYobmUud29yZHNbSl09MSkpO2Zvcih2YXIgeGU9Si0xO3hlPj0wO3hlLS0pe3ZhciBMZT02NzEwODg2NCoo'@; put 'MHxTLndvcmRzW3YubGVuZ3RoK3hlXSkrKDB8Uy53b3Jkc1t2Lmxlbmd0aCt4ZS0xXSk7Zm9yKExlPU1hdGgubWluKExlL3B8MCw2NzEwODg2MyksUy5faXNobG5zdWJtdWwodixMZSx4ZSk7MCE9PVMubmVnYXRpdmU7KUxlLS0sUy5uZWdhdGl2ZT0wLFMuX2lzaGxuc3VibXVsKHYsMSx4ZSks'@; put 'Uy5pc1plcm8oKXx8KFMubmVnYXRpdmVePTEpO25lJiYobmUud29yZHNbeGVdPUxlKX1yZXR1cm4gbmUmJm5lLl9zdHJpcCgpLFMuX3N0cmlwKCksImRpdiIhPT1nJiYwIT09QyYmUy5pdXNocm4oQykse2RpdjpuZXx8bnVsbCxtb2Q6U319LE0ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihO'@; put 'LGcsQyl7cmV0dXJuIG0oIU4uaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTSgwKSxtb2Q6bmV3IE0oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ti5uZWdhdGl2ZT8ocD10aGlzLm5lZygpLmRpdm1vZChOLGcpLCJtb2QiIT09ZyYmKFM9cC5kaXYubmVnKCkpLCJkaXYiIT09'@; put 'ZyYmKHY9cC5tb2QubmVnKCksQyYmMCE9PXYubmVnYXRpdmUmJnYuaWFkZChOKSkse2RpdjpTLG1vZDp2fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1OLm5lZ2F0aXZlPyhwPXRoaXMuZGl2bW9kKE4ubmVnKCksZyksIm1vZCIhPT1nJiYoUz1wLmRpdi5uZWcoKSkse2RpdjpTLG1vZDpwLm1v'@; put 'ZH0pOnRoaXMubmVnYXRpdmUmTi5uZWdhdGl2ZT8ocD10aGlzLm5lZygpLmRpdm1vZChOLm5lZygpLGcpLCJkaXYiIT09ZyYmKHY9cC5tb2QubmVnKCksQyYmMCE9PXYubmVnYXRpdmUmJnYuaXN1YihOKSkse2RpdjpwLmRpdixtb2Q6dn0pOk4ubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNt'@; put 'cChOKTwwP3tkaXY6bmV3IE0oMCksbW9kOnRoaXN9OjE9PT1OLmxlbmd0aD8iZGl2Ij09PWc/e2Rpdjp0aGlzLmRpdm4oTi53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09Zz97ZGl2Om51bGwsbW9kOm5ldyBNKHRoaXMubW9kcm4oTi53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihOLndv'@; put 'cmRzWzBdKSxtb2Q6bmV3IE0odGhpcy5tb2RybihOLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTixnKTt2YXIgUyx2LHB9LE0ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5kaXZtb2QoTiwiZGl2IiwhMSkuZGl2fSxNLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTil7'@; put 'cmV0dXJuIHRoaXMuZGl2bW9kKE4sIm1vZCIsITEpLm1vZH0sTS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5kaXZtb2QoTiwibW9kIiwhMCkubW9kfSxNLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihOKXt2YXIgZz10aGlzLmRpdm1vZChOKTtpZihnLm1vZC5p'@; put 'c1plcm8oKSlyZXR1cm4gZy5kaXY7dmFyIEM9MCE9PWcuZGl2Lm5lZ2F0aXZlP2cubW9kLmlzdWIoTik6Zy5tb2QsUz1OLnVzaHJuKDEpLHY9Ti5hbmRsbigxKSxwPUMuY21wKFMpO3JldHVybiBwPDB8fDE9PT12JiYwPT09cD9nLmRpdjowIT09Zy5kaXYubmVnYXRpdmU/Zy5kaXYuaXN1Ym4o'@; put 'MSk6Zy5kaXYuaWFkZG4oMSl9LE0ucHJvdG90eXBlLm1vZHJuPWZ1bmN0aW9uKE4pe3ZhciBnPU48MDtnJiYoTj0tTiksbShOPD02NzEwODg2Myk7Zm9yKHZhciBDPSgxPDwyNiklTixTPTAsdj10aGlzLmxlbmd0aC0xO3Y+PTA7di0tKVM9KEMqUysoMHx0aGlzLndvcmRzW3ZdKSklTjtyZXR1'@; put 'cm4gZz8tUzpTfSxNLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLm1vZHJuKE4pfSxNLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihOKXt2YXIgZz1OPDA7ZyYmKE49LU4pLG0oTjw9NjcxMDg4NjMpO2Zvcih2YXIgQz0wLFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl7'@; put 'dmFyIHY9KDB8dGhpcy53b3Jkc1tTXSkrNjcxMDg4NjQqQzt0aGlzLndvcmRzW1NdPXYvTnwwLEM9diVOfXJldHVybiB0aGlzLl9zdHJpcCgpLGc/dGhpcy5pbmVnKCk6dGhpc30sTS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKE4pfSxNLnBy'@; put 'b3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE4pe20oMD09PU4ubmVnYXRpdmUpLG0oIU4uaXNaZXJvKCkpO3ZhciBnPXRoaXMsQz1OLmNsb25lKCk7Zz0wIT09Zy5uZWdhdGl2ZT9nLnVtb2QoTik6Zy5jbG9uZSgpO2Zvcih2YXIgUz1uZXcgTSgxKSx2PW5ldyBNKDApLHA9bmV3IE0oMCksdz1uZXcg'@; put 'TSgxKSxKPTA7Zy5pc0V2ZW4oKSYmQy5pc0V2ZW4oKTspZy5pdXNocm4oMSksQy5pdXNocm4oMSksKytKO2Zvcih2YXIgbmU9Qy5jbG9uZSgpLGRlPWcuY2xvbmUoKTshZy5pc1plcm8oKTspe2Zvcih2YXIgZmU9MCx4ZT0xOyEoZy53b3Jkc1swXSZ4ZSkmJmZlPDI2OysrZmUseGU8PD0xKTtp'@; put 'ZihmZT4wKWZvcihnLml1c2hybihmZSk7ZmUtLSA+MDspKFMuaXNPZGQoKXx8di5pc09kZCgpKSYmKFMuaWFkZChuZSksdi5pc3ViKGRlKSksUy5pdXNocm4oMSksdi5pdXNocm4oMSk7Zm9yKHZhciBMZT0wLEZlPTE7IShDLndvcmRzWzBdJkZlKSYmTGU8MjY7KytMZSxGZTw8PTEpO2lmKExl'@; put 'PjApZm9yKEMuaXVzaHJuKExlKTtMZS0tID4wOykocC5pc09kZCgpfHx3LmlzT2RkKCkpJiYocC5pYWRkKG5lKSx3LmlzdWIoZGUpKSxwLml1c2hybigxKSx3Lml1c2hybigxKTtnLmNtcChDKT49MD8oZy5pc3ViKEMpLFMuaXN1YihwKSx2LmlzdWIodykpOihDLmlzdWIoZykscC5pc3ViKFMp'@; put 'LHcuaXN1Yih2KSl9cmV0dXJue2E6cCxiOncsZ2NkOkMuaXVzaGxuKEopfX0sTS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKE4pe20oMD09PU4ubmVnYXRpdmUpLG0oIU4uaXNaZXJvKCkpO3ZhciBmZSxnPXRoaXMsQz1OLmNsb25lKCk7Zz0wIT09Zy5uZWdhdGl2ZT9nLnVtb2QoTik6Zy5j'@; put 'bG9uZSgpO2Zvcih2YXIgUz1uZXcgTSgxKSx2PW5ldyBNKDApLHA9Qy5jbG9uZSgpO2cuY21wbigxKT4wJiZDLmNtcG4oMSk+MDspe2Zvcih2YXIgdz0wLEo9MTshKGcud29yZHNbMF0mSikmJnc8MjY7Kyt3LEo8PD0xKTtpZih3PjApZm9yKGcuaXVzaHJuKHcpO3ctLSA+MDspUy5pc09kZCgp'@; put 'JiZTLmlhZGQocCksUy5pdXNocm4oMSk7Zm9yKHZhciBuZT0wLGRlPTE7IShDLndvcmRzWzBdJmRlKSYmbmU8MjY7KytuZSxkZTw8PTEpO2lmKG5lPjApZm9yKEMuaXVzaHJuKG5lKTtuZS0tID4wOyl2LmlzT2RkKCkmJnYuaWFkZChwKSx2Lml1c2hybigxKTtnLmNtcChDKT49MD8oZy5pc3Vi'@; put 'KEMpLFMuaXN1Yih2KSk6KEMuaXN1YihnKSx2LmlzdWIoUykpfXJldHVybihmZT0wPT09Zy5jbXBuKDEpP1M6dikuY21wbigwKTwwJiZmZS5pYWRkKE4pLGZlfSxNLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTil7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gTi5hYnMoKTtpZihOLmlzWmVybygp'@; put 'KXJldHVybiB0aGlzLmFicygpO3ZhciBnPXRoaXMuY2xvbmUoKSxDPU4uY2xvbmUoKTtnLm5lZ2F0aXZlPTAsQy5uZWdhdGl2ZT0wO2Zvcih2YXIgUz0wO2cuaXNFdmVuKCkmJkMuaXNFdmVuKCk7UysrKWcuaXVzaHJuKDEpLEMuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtnLmlzRXZlbigpOyln'@; put 'Lml1c2hybigxKTtmb3IoO0MuaXNFdmVuKCk7KUMuaXVzaHJuKDEpO3ZhciB2PWcuY21wKEMpO2lmKHY8MCl7dmFyIHA9ZztnPUMsQz1wfWVsc2UgaWYoMD09PXZ8fDA9PT1DLmNtcG4oMSkpYnJlYWs7Zy5pc3ViKEMpfXJldHVybiBDLml1c2hsbihTKX0sTS5wcm90b3R5cGUuaW52bT1mdW5j'@; put 'dGlvbihOKXtyZXR1cm4gdGhpcy5lZ2NkKE4pLmEudW1vZChOKX0sTS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxNLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sTS5wcm90b3R5'@; put 'cGUuYW5kbG49ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMud29yZHNbMF0mTn0sTS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oTil7bSgibnVtYmVyIj09dHlwZW9mIE4pO3ZhciBnPU4lMjYsQz0oTi1nKS8yNixTPTE8PGc7aWYodGhpcy5sZW5ndGg8PUMpcmV0dXJuIHRoaXMuX2V4cGFuZChD'@; put 'KzEpLHRoaXMud29yZHNbQ118PVMsdGhpcztmb3IodmFyIHY9UyxwPUM7MCE9PXYmJnA8dGhpcy5sZW5ndGg7cCsrKXt2YXIgdz0wfHRoaXMud29yZHNbcF07dj0odys9dik+Pj4yNix0aGlzLndvcmRzW3BdPXcmPTY3MTA4ODYzfXJldHVybiAwIT09diYmKHRoaXMud29yZHNbcF09dix0aGlz'@; put 'Lmxlbmd0aCsrKSx0aGlzfSxNLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sTS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihOKXt2YXIgQyxnPU48MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIWcpcmV0dXJuLTE7'@; put 'aWYoMD09PXRoaXMubmVnYXRpdmUmJmcpcmV0dXJuIDE7aWYodGhpcy5fc3RyaXAoKSx0aGlzLmxlbmd0aD4xKUM9MTtlbHNle2cmJihOPS1OKSxtKE48PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBTPTB8dGhpcy53b3Jkc1swXTtDPVM9PT1OPzA6UzxOPy0xOjF9cmV0dXJu'@; put 'IDAhPT10aGlzLm5lZ2F0aXZlPzB8LUM6Q30sTS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE4pe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ti5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU4ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIGc9dGhpcy51Y21wKE4p'@; put 'O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1nOmd9LE0ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oTil7aWYodGhpcy5sZW5ndGg+Ti5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Ti5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBnPTAsQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0t'@; put 'KXt2YXIgUz0wfHRoaXMud29yZHNbQ10sdj0wfE4ud29yZHNbQ107aWYoUyE9PXYpe1M8dj9nPS0xOlM+diYmKGc9MSk7YnJlYWt9fXJldHVybiBnfSxNLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTil7cmV0dXJuIDE9PT10aGlzLmNtcG4oTil9LE0ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE4p'@; put 'e3JldHVybiAxPT09dGhpcy5jbXAoTil9LE0ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuY21wbihOKT49MH0sTS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNtcChOKT49MH0sTS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE4pe3JldHVybi0x'@; put 'PT09dGhpcy5jbXBuKE4pfSxNLnByb3RvdHlwZS5sdD1mdW5jdGlvbihOKXtyZXR1cm4tMT09PXRoaXMuY21wKE4pfSxNLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmNtcG4oTik8PTB9LE0ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5jbXAo'@; put 'Tik8PTB9LE0ucHJvdG90eXBlLmVxbj1mdW5jdGlvbihOKXtyZXR1cm4gMD09PXRoaXMuY21wbihOKX0sTS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTil7cmV0dXJuIDA9PT10aGlzLmNtcChOKX0sTS5yZWQ9ZnVuY3Rpb24oTil7cmV0dXJuIG5ldyBiKE4pfSxNLnByb3RvdHlwZS50b1JlZD1m'@; put 'dW5jdGlvbihOKXtyZXR1cm4gbSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxtKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE4uY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChOKX0sTS5wcm90b3R5'@; put 'cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LE0ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihOKXtyZXR1cm4g'@; put 'dGhpcy5yZWQ9Tix0aGlzfSxNLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihOKXtyZXR1cm4gbSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChOKX0sTS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE4pe3JldHVy'@; put 'biBtKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTil9LE0ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTil7cmV0dXJuIG0odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp'@; put 'cy5yZWQuaWFkZCh0aGlzLE4pfSxNLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTil7cmV0dXJuIG0odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxOKX0sTS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihOKXtyZXR1'@; put 'cm4gbSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTil9LE0ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihOKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRo'@; put 'aXMucmVkLnNobCh0aGlzLE4pfSxNLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTil7cmV0dXJuIG0odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE4pLHRoaXMucmVkLm11bCh0aGlzLE4pfSxNLnByb3RvdHlw'@; put 'ZS5yZWRJTXVsPWZ1bmN0aW9uKE4pe3JldHVybiBtKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxOKSx0aGlzLnJlZC5pbXVsKHRoaXMsTil9LE0ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBt'@; put 'KHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxNLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRo'@; put 'IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sTS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkx'@; put 'KHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LE0ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxNLnBy'@; put 'b3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sTS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE4pe3JldHVybiBt'@; put 'KHRoaXMucmVkJiYhTi5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTil9O3ZhciBvZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHNlKEgsTil7dGhpcy5uYW1lPUgs'@; put 'dGhpcy5wPW5ldyBNKE4sMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBNKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBoZSgpe3NlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZm'@; put 'ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24gdWUoKXtzZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIGNl'@; put 'KCl7c2UuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBHKCl7c2UuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZm'@; put 'IGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBiKEgpe2lmKCJzdHJpbmciPT10eXBlb2YgSCl7dmFyIE49TS5fcHJpbWUoSCk7dGhpcy5tPU4ucCx0aGlzLnByaW1lPU59ZWxzZSBtKEguZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09SCx0aGlzLnBy'@; put 'aW1lPW51bGx9ZnVuY3Rpb24gRChIKXtiLmNhbGwodGhpcyxIKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBNKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMu'@; put 'aW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1p'@; put 'bnYpfXNlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIE49bmV3IE0obnVsbCk7cmV0dXJuIE4ud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxOfSxzZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihOKXt2YXIgQyxnPU47ZG97dGhpcy5zcGxpdChnLHRoaXMu'@; put 'dG1wKSxDPShnPShnPXRoaXMuaW11bEsoZykpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShDPnRoaXMubik7dmFyIFM9Qzx0aGlzLm4/LTE6Zy51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1TPyhnLndvcmRzWzBdPTAsZy5sZW5ndGg9MSk6Uz4wP2cuaXN1Yih0aGlzLnApOnZv'@; put 'aWQgMCE9PWcuc3RyaXA/Zy5zdHJpcCgpOmcuX3N0cmlwKCksZ30sc2UucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE4sZyl7Ti5pdXNocm4odGhpcy5uLDAsZyl9LHNlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihOKXtyZXR1cm4gTi5pbXVsKHRoaXMuayl9LGxlKGhlLHNlKSxoZS5wcm90'@; put 'b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTixnKXtmb3IodmFyIEM9NDE5NDMwMyxTPU1hdGgubWluKE4ubGVuZ3RoLDkpLHY9MDt2PFM7disrKWcud29yZHNbdl09Ti53b3Jkc1t2XTtpZihnLmxlbmd0aD1TLE4ubGVuZ3RoPD05KXJldHVybiBOLndvcmRzWzBdPTAsdm9pZChOLmxlbmd0aD0xKTt2'@; put 'YXIgcD1OLndvcmRzWzldO2ZvcihnLndvcmRzW2cubGVuZ3RoKytdPXAmQyx2PTEwO3Y8Ti5sZW5ndGg7disrKXt2YXIgdz0wfE4ud29yZHNbdl07Ti53b3Jkc1t2LTEwXT0odyZDKTw8NHxwPj4+MjIscD13fU4ud29yZHNbdi0xMF09cD4+Pj0yMixOLmxlbmd0aC09MD09PXAmJk4ubGVuZ3Ro'@; put 'PjEwPzEwOjl9LGhlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihOKXtOLndvcmRzW04ubGVuZ3RoXT0wLE4ud29yZHNbTi5sZW5ndGgrMV09MCxOLmxlbmd0aCs9Mjtmb3IodmFyIGc9MCxDPTA7QzxOLmxlbmd0aDtDKyspe3ZhciBTPTB8Ti53b3Jkc1tDXTtOLndvcmRzW0NdPTY3MTA4ODYz'@; put 'JihnKz05NzcqUyksZz02NCpTKyhnLzY3MTA4ODY0fDApfXJldHVybiAwPT09Ti53b3Jkc1tOLmxlbmd0aC0xXSYmKE4ubGVuZ3RoLS0sMD09PU4ud29yZHNbTi5sZW5ndGgtMV0mJk4ubGVuZ3RoLS0pLE59LGxlKHVlLHNlKSxsZShjZSxzZSksbGUoRyxzZSksRy5wcm90b3R5cGUuaW11bEs9'@; put 'ZnVuY3Rpb24oTil7Zm9yKHZhciBnPTAsQz0wO0M8Ti5sZW5ndGg7QysrKXt2YXIgUz0xOSooMHxOLndvcmRzW0NdKStnLHY9NjcxMDg4NjMmUztTPj4+PTI2LE4ud29yZHNbQ109dixnPVN9cmV0dXJuIDAhPT1nJiYoTi53b3Jkc1tOLmxlbmd0aCsrXT1nKSxOfSxNLl9wcmltZT1mdW5jdGlv'@; put 'bihOKXtpZihvZVtOXSlyZXR1cm4gb2VbTl07dmFyIGc7aWYoImsyNTYiPT09TilnPW5ldyBoZTtlbHNlIGlmKCJwMjI0Ij09PU4pZz1uZXcgdWU7ZWxzZSBpZigicDE5MiI9PT1OKWc9bmV3IGNlO2Vsc2V7aWYoInAyNTUxOSIhPT1OKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAi'@; put 'K04pO2c9bmV3IEd9cmV0dXJuIG9lW05dPWcsZ30sYi5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oTil7bSgwPT09Ti5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxtKE4ucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGIucHJvdG90'@; put 'eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE4sZyl7bSgwPT0oTi5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxtKE4ucmVkJiZOLnJlZD09PWcucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGIucHJvdG90eXBlLmltb2Q9'@; put 'ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE4pLl9mb3JjZVJlZCh0aGlzKTooSShOLE4udW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKSksTil9LGIucHJvdG90eXBlLm5lZz1mdW5jdGlvbihOKXtyZXR1cm4gTi5pc1plcm8oKT9OLmNsb25lKCk6'@; put 'dGhpcy5tLnN1YihOKS5fZm9yY2VSZWQodGhpcyl9LGIucHJvdG90eXBlLmFkZD1mdW5jdGlvbihOLGcpe3RoaXMuX3ZlcmlmeTIoTixnKTt2YXIgQz1OLmFkZChnKTtyZXR1cm4gQy5jbXAodGhpcy5tKT49MCYmQy5pc3ViKHRoaXMubSksQy5fZm9yY2VSZWQodGhpcyl9LGIucHJvdG90eXBl'@; put 'LmlhZGQ9ZnVuY3Rpb24oTixnKXt0aGlzLl92ZXJpZnkyKE4sZyk7dmFyIEM9Ti5pYWRkKGcpO3JldHVybiBDLmNtcCh0aGlzLm0pPj0wJiZDLmlzdWIodGhpcy5tKSxDfSxiLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTixnKXt0aGlzLl92ZXJpZnkyKE4sZyk7dmFyIEM9Ti5zdWIoZyk7cmV0'@; put 'dXJuIEMuY21wbigwKTwwJiZDLmlhZGQodGhpcy5tKSxDLl9mb3JjZVJlZCh0aGlzKX0sYi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihOLGcpe3RoaXMuX3ZlcmlmeTIoTixnKTt2YXIgQz1OLmlzdWIoZyk7cmV0dXJuIEMuY21wbigwKTwwJiZDLmlhZGQodGhpcy5tKSxDfSxiLnByb3RvdHlw'@; put 'ZS5zaGw9ZnVuY3Rpb24oTixnKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShOKSx0aGlzLmltb2QoTi51c2hsbihnKSl9LGIucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTixnKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihOLGcpLHRoaXMuaW1vZChOLmltdWwoZykpfSxiLnByb3RvdHlwZS5tdWw9ZnVu'@; put 'Y3Rpb24oTixnKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihOLGcpLHRoaXMuaW1vZChOLm11bChnKSl9LGIucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuaW11bChOLE4uY2xvbmUoKSl9LGIucHJvdG90eXBlLnNxcj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5tdWwoTixO'@; put 'KX0sYi5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihOKXtpZihOLmlzWmVybygpKXJldHVybiBOLmNsb25lKCk7dmFyIGc9dGhpcy5tLmFuZGxuKDMpO2lmKG0oZyUyPT0xKSwzPT09Zyl7dmFyIEM9dGhpcy5tLmFkZChuZXcgTSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhOLEMpfWZv'@; put 'cih2YXIgUz10aGlzLm0uc3VibigxKSx2PTA7IVMuaXNaZXJvKCkmJjA9PT1TLmFuZGxuKDEpOyl2KyssUy5pdXNocm4oMSk7bSghUy5pc1plcm8oKSk7dmFyIHA9bmV3IE0oMSkudG9SZWQodGhpcyksdz1wLnJlZE5lZygpLEo9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLG5lPXRoaXMubS5i'@; put 'aXRMZW5ndGgoKTtmb3IobmU9bmV3IE0oMipuZSpuZSkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KG5lLEopLmNtcCh3KTspbmUucmVkSUFkZCh3KTtmb3IodmFyIGRlPXRoaXMucG93KG5lLFMpLGZlPXRoaXMucG93KE4sUy5hZGRuKDEpLml1c2hybigxKSkseGU9dGhpcy5wb3coTixTKSxM'@; put 'ZT12OzAhPT14ZS5jbXAocCk7KXtmb3IodmFyIEZlPXhlLE9lPTA7MCE9PUZlLmNtcChwKTtPZSsrKUZlPUZlLnJlZFNxcigpO20oT2U8TGUpO3ZhciBqZT10aGlzLnBvdyhkZSxuZXcgTSgxKS5pdXNobG4oTGUtT2UtMSkpO2ZlPWZlLnJlZE11bChqZSksZGU9amUucmVkU3FyKCkseGU9eGUu'@; put 'cmVkTXVsKGRlKSxMZT1PZX1yZXR1cm4gZmV9LGIucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTil7dmFyIGc9Ti5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PWcubmVnYXRpdmU/KGcubmVnYXRpdmU9MCx0aGlzLmltb2QoZykucmVkTmVnKCkpOnRoaXMuaW1vZChnKX0sYi5wcm90b3R5cGUu'@; put 'cG93PWZ1bmN0aW9uKE4sZyl7aWYoZy5pc1plcm8oKSlyZXR1cm4gbmV3IE0oMSkudG9SZWQodGhpcyk7aWYoMD09PWcuY21wbigxKSlyZXR1cm4gTi5jbG9uZSgpO3ZhciBTPW5ldyBBcnJheSgxNik7U1swXT1uZXcgTSgxKS50b1JlZCh0aGlzKSxTWzFdPU47Zm9yKHZhciB2PTI7djxTLmxl'@; put 'bmd0aDt2KyspU1t2XT10aGlzLm11bChTW3YtMV0sTik7dmFyIHA9U1swXSx3PTAsSj0wLG5lPWcuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1uZSYmKG5lPTI2KSx2PWcubGVuZ3RoLTE7dj49MDt2LS0pe2Zvcih2YXIgZGU9Zy53b3Jkc1t2XSxmZT1uZS0xO2ZlPj0wO2ZlLS0pe3ZhciB4ZT1k'@; put 'ZT4+ZmUmMTtwIT09U1swXSYmKHA9dGhpcy5zcXIocCkpLDAhPT14ZXx8MCE9PXc/KHc8PD0xLHd8PXhlLCg0PT0rK0p8fDA9PT12JiYwPT09ZmUpJiYocD10aGlzLm11bChwLFNbd10pLEo9MCx3PTApKTpKPTB9bmU9MjZ9cmV0dXJuIHB9LGIucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlv'@; put 'bihOKXt2YXIgZz1OLnVtb2QodGhpcy5tKTtyZXR1cm4gZz09PU4/Zy5jbG9uZSgpOmd9LGIucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE4pe3ZhciBnPU4uY2xvbmUoKTtyZXR1cm4gZy5yZWQ9bnVsbCxnfSxNLm1vbnQ9ZnVuY3Rpb24oTil7cmV0dXJuIG5ldyBEKE4pfSxsZShE'@; put 'LGIpLEQucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5pbW9kKE4udXNobG4odGhpcy5zaGlmdCkpfSxELnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihOKXt2YXIgZz10aGlzLmltb2QoTi5tdWwodGhpcy5yaW52KSk7cmV0dXJuIGcucmVkPW51bGws'@; put 'Z30sRC5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihOLGcpe2lmKE4uaXNaZXJvKCl8fGcuaXNaZXJvKCkpcmV0dXJuIE4ud29yZHNbMF09MCxOLmxlbmd0aD0xLE47dmFyIEM9Ti5pbXVsKGcpLFM9Qy5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCku'@; put 'bXVsKHRoaXMubSksdj1DLmlzdWIoUykuaXVzaHJuKHRoaXMuc2hpZnQpLHA9djtyZXR1cm4gdi5jbXAodGhpcy5tKT49MD9wPXYuaXN1Yih0aGlzLm0pOnYuY21wbigwKTwwJiYocD12LmlhZGQodGhpcy5tKSkscC5fZm9yY2VSZWQodGhpcyl9LEQucHJvdG90eXBlLm11bD1mdW5jdGlvbihO'@; put 'LGcpe2lmKE4uaXNaZXJvKCl8fGcuaXNaZXJvKCkpcmV0dXJuIG5ldyBNKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgQz1OLm11bChnKSxTPUMubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHY9Qy5pc3ViKFMpLml1c2hybih0'@; put 'aGlzLnNoaWZ0KSxwPXY7cmV0dXJuIHYuY21wKHRoaXMubSk+PTA/cD12LmlzdWIodGhpcy5tKTp2LmNtcG4oMCk8MCYmKHA9di5pYWRkKHRoaXMubSkpLHAuX2ZvcmNlUmVkKHRoaXMpfSxELnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmltb2QoTi5faW52bXAodGhp'@; put 'cy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KGF0PUYubm1kKGF0KSx0aGlzKX0sNjAwODI6KGF0LEllLEYpPT57dmFyIGFlO2Z1bmN0aW9uIHgobGUpe3RoaXMucmFuZD1sZX1pZihhdC5leHBvcnRzPWZ1bmN0aW9uKE0pe3JldHVybiBhZXx8KGFlPW5ldyB4KG51bGwpKSxh'@; put 'ZS5nZW5lcmF0ZShNKX0sYXQuZXhwb3J0cy5SYW5kPXgseC5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oTSl7cmV0dXJuIHRoaXMuX3JhbmQoTSl9LHgucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKE0pe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVz'@; put 'KE0pO2Zvcih2YXIgTz1uZXcgVWludDhBcnJheShNKSxSPTA7UjxPLmxlbmd0aDtSKyspT1tSXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiBPfSwib2JqZWN0Ij09dHlwZW9mIHNlbGYpc2VsZi5jcnlwdG8mJnNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcz94LnByb3RvdHlwZS5fcmFu'@; put 'ZD1mdW5jdGlvbihNKXt2YXIgTz1uZXcgVWludDhBcnJheShNKTtyZXR1cm4gc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKE8pLE99OnNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP3gucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKE0pe3ZhciBPPW5ldyBV'@; put 'aW50OEFycmF5KE0pO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhPKSxPfToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHgucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQgeWV0Iil9KTtlbHNlIHRyeXt2YXIg'@; put 'bT1GKDc3OTAzKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgbS5yYW5kb21CeXRlcyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQiKTt4LnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihNKXtyZXR1cm4gbS5yYW5kb21CeXRlcyhNKX19Y2F0Y2h7fX0sNjQwMzooYXQsSWUsRik9Pnt2YXIg'@; put 'YWU9Rig4NDMpLkJ1ZmZlcjtmdW5jdGlvbiB4KHope2FlLmlzQnVmZmVyKHopfHwoej1hZS5mcm9tKHopKTtmb3IodmFyIEs9ei5sZW5ndGgvNHwwLEk9bmV3IEFycmF5KEspLGs9MDtrPEs7aysrKUlba109ei5yZWFkVUludDMyQkUoNCprKTtyZXR1cm4gSX1mdW5jdGlvbiBtKHope2Zvcig7'@; put 'MDx6Lmxlbmd0aDt6KyspelswXT0wfWZ1bmN0aW9uIGxlKHosSyxJLGssRSl7Zm9yKHZhciB0ZSxvZSxzZSxoZSxqPUlbMF0sVj1JWzFdLEI9SVsyXSxZPUlbM10sWD16WzBdXktbMF0sVT16WzFdXktbMV0scT16WzJdXktbMl0sZWU9elszXV5LWzNdLHVlPTQsY2U9MTtjZTxFO2NlKyspdGU9'@; put 'altYPj4+MjRdXlZbVT4+PjE2JjI1NV1eQltxPj4+OCYyNTVdXllbMjU1JmVlXV5LW3VlKytdLG9lPWpbVT4+PjI0XV5WW3E+Pj4xNiYyNTVdXkJbZWU+Pj44JjI1NV1eWVsyNTUmWF1eS1t1ZSsrXSxzZT1qW3E+Pj4yNF1eVltlZT4+PjE2JjI1NV1eQltYPj4+OCYyNTVdXllbMjU1JlVdXktb'@; put 'dWUrK10saGU9altlZT4+PjI0XV5WW1g+Pj4xNiYyNTVdXkJbVT4+PjgmMjU1XV5ZWzI1NSZxXV5LW3VlKytdLFg9dGUsVT1vZSxxPXNlLGVlPWhlO3JldHVybiB0ZT0oa1tYPj4+MjRdPDwyNHxrW1U+Pj4xNiYyNTVdPDwxNnxrW3E+Pj44JjI1NV08PDh8a1syNTUmZWVdKV5LW3VlKytdLG9l'@; put 'PShrW1U+Pj4yNF08PDI0fGtbcT4+PjE2JjI1NV08PDE2fGtbZWU+Pj44JjI1NV08PDh8a1syNTUmWF0pXktbdWUrK10sc2U9KGtbcT4+PjI0XTw8MjR8a1tlZT4+PjE2JjI1NV08PDE2fGtbWD4+PjgmMjU1XTw8OHxrWzI1NSZVXSleS1t1ZSsrXSxoZT0oa1tlZT4+PjI0XTw8MjR8a1tYPj4+'@; put 'MTYmMjU1XTw8MTZ8a1tVPj4+OCYyNTVdPDw4fGtbMjU1JnFdKV5LW3VlKytdLFt0ZT4+Pj0wLG9lPj4+PTAsc2U+Pj49MCxoZT4+Pj0wXX12YXIgTT1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sTz1mdW5jdGlvbigpe2Zvcih2YXIgej1uZXcgQXJyYXkoMjU2KSxLPTA7SzwyNTY7'@; put 'SysrKXpbS109SzwxMjg/Szw8MTpLPDwxXjI4Mztmb3IodmFyIEk9W10saz1bXSxFPVtbXSxbXSxbXSxbXV0saj1bW10sW10sW10sW11dLFY9MCxCPTAsWT0wO1k8MjU2OysrWSl7dmFyIFg9Ql5CPDwxXkI8PDJeQjw8M15CPDw0O0lbVl09WD1YPj4+OF4yNTUmWF45OSxrW1hdPVY7dmFyIFU9'@; put 'eltWXSxxPXpbVV0sZWU9eltxXSx0ZT0yNTcqeltYXV4xNjg0MzAwOCpYO0VbMF1bVl09dGU8PDI0fHRlPj4+OCxFWzFdW1ZdPXRlPDwxNnx0ZT4+PjE2LEVbMl1bVl09dGU8PDh8dGU+Pj4yNCxFWzNdW1ZdPXRlLGpbMF1bWF09KHRlPTE2ODQzMDA5KmVlXjY1NTM3KnFeMjU3KlVeMTY4NDMw'@; put 'MDgqVik8PDI0fHRlPj4+OCxqWzFdW1hdPXRlPDwxNnx0ZT4+PjE2LGpbMl1bWF09dGU8PDh8dGU+Pj4yNCxqWzNdW1hdPXRlLDA9PT1WP1Y9Qj0xOihWPVVeelt6W3pbZWVeVV1dXSxCXj16W3pbQl1dKX1yZXR1cm57U0JPWDpJLElOVl9TQk9YOmssU1VCX01JWDpFLElOVl9TVUJfTUlYOmp9'@; put 'fSgpO2Z1bmN0aW9uIFIoeil7dGhpcy5fa2V5PXgoeiksdGhpcy5fcmVzZXQoKX1SLmJsb2NrU2l6ZT0xNixSLmtleVNpemU9MzIsUi5wcm90b3R5cGUuYmxvY2tTaXplPVIuYmxvY2tTaXplLFIucHJvdG90eXBlLmtleVNpemU9Ui5rZXlTaXplLFIucHJvdG90eXBlLl9yZXNldD1mdW5jdGlv'@; put 'bigpe2Zvcih2YXIgej10aGlzLl9rZXksSz16Lmxlbmd0aCxJPUsrNixrPTQqKEkrMSksRT1bXSxqPTA7ajxLO2orKylFW2pdPXpbal07Zm9yKGo9SztqPGs7aisrKXt2YXIgVj1FW2otMV07aiVLPT0wPyhWPU8uU0JPWFsoVj1WPDw4fFY+Pj4yNCk+Pj4yNF08PDI0fE8uU0JPWFtWPj4+MTYm'@; put 'MjU1XTw8MTZ8Ty5TQk9YW1Y+Pj44JjI1NV08PDh8Ty5TQk9YWzI1NSZWXSxWXj1NW2ovS3wwXTw8MjQpOks+NiYmaiVLPT00JiYoVj1PLlNCT1hbVj4+PjI0XTw8MjR8Ty5TQk9YW1Y+Pj4xNiYyNTVdPDwxNnxPLlNCT1hbVj4+PjgmMjU1XTw8OHxPLlNCT1hbMjU1JlZdKSxFW2pdPUVbai1L'@; put 'XV5WfWZvcih2YXIgQj1bXSxZPTA7WTxrO1krKyl7dmFyIFg9ay1ZLFU9RVtYLShZJTQ/MDo0KV07QltZXT1ZPDR8fFg8PTQ/VTpPLklOVl9TVUJfTUlYWzBdW08uU0JPWFtVPj4+MjRdXV5PLklOVl9TVUJfTUlYWzFdW08uU0JPWFtVPj4+MTYmMjU1XV1eTy5JTlZfU1VCX01JWFsyXVtPLlNC'@; put 'T1hbVT4+PjgmMjU1XV1eTy5JTlZfU1VCX01JWFszXVtPLlNCT1hbMjU1JlVdXX10aGlzLl9uUm91bmRzPUksdGhpcy5fa2V5U2NoZWR1bGU9RSx0aGlzLl9pbnZLZXlTY2hlZHVsZT1CfSxSLnByb3RvdHlwZS5lbmNyeXB0QmxvY2tSYXc9ZnVuY3Rpb24oeil7cmV0dXJuIGxlKHo9eCh6KSx0'@; put 'aGlzLl9rZXlTY2hlZHVsZSxPLlNVQl9NSVgsTy5TQk9YLHRoaXMuX25Sb3VuZHMpfSxSLnByb3RvdHlwZS5lbmNyeXB0QmxvY2s9ZnVuY3Rpb24oeil7dmFyIEs9dGhpcy5lbmNyeXB0QmxvY2tSYXcoeiksST1hZS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIEkud3JpdGVVSW50MzJCRShLWzBd'@; put 'LDApLEkud3JpdGVVSW50MzJCRShLWzFdLDQpLEkud3JpdGVVSW50MzJCRShLWzJdLDgpLEkud3JpdGVVSW50MzJCRShLWzNdLDEyKSxJfSxSLnByb3RvdHlwZS5kZWNyeXB0QmxvY2s9ZnVuY3Rpb24oeil7dmFyIEs9KHo9eCh6KSlbMV07elsxXT16WzNdLHpbM109Szt2YXIgST1sZSh6LHRo'@; put 'aXMuX2ludktleVNjaGVkdWxlLE8uSU5WX1NVQl9NSVgsTy5JTlZfU0JPWCx0aGlzLl9uUm91bmRzKSxrPWFlLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gay53cml0ZVVJbnQzMkJFKElbMF0sMCksay53cml0ZVVJbnQzMkJFKElbM10sNCksay53cml0ZVVJbnQzMkJFKElbMl0sOCksay53cml0'@; put 'ZVVJbnQzMkJFKElbMV0sMTIpLGt9LFIucHJvdG90eXBlLnNjcnViPWZ1bmN0aW9uKCl7bSh0aGlzLl9rZXlTY2hlZHVsZSksbSh0aGlzLl9pbnZLZXlTY2hlZHVsZSksbSh0aGlzLl9rZXkpfSxhdC5leHBvcnRzLkFFUz1SfSw1NjA4NzooYXQsSWUsRik9Pnt2YXIgYWU9Rig2NDAzKSx4PUYo'@; put 'ODQzKS5CdWZmZXIsbT1GKDg2NDIwKSxsZT1GKDY2Njk4KSxNPUYoMTUwMyksTz1GKDYzNjM2KSxSPUYoOTEwNyk7ZnVuY3Rpb24gSShrLEUsaixWKXttLmNhbGwodGhpcyk7dmFyIEI9eC5hbGxvYyg0LDApO3RoaXMuX2NpcGhlcj1uZXcgYWUuQUVTKEUpO3ZhciBZPXRoaXMuX2NpcGhlci5l'@; put 'bmNyeXB0QmxvY2soQik7dGhpcy5fZ2hhc2g9bmV3IE0oWSksaj1mdW5jdGlvbiBLKGssRSxqKXtpZigxMj09PUUubGVuZ3RoKXJldHVybiBrLl9maW5JRD14LmNvbmNhdChbRSx4LmZyb20oWzAsMCwwLDFdKV0pLHguY29uY2F0KFtFLHguZnJvbShbMCwwLDAsMl0pXSk7dmFyIFY9bmV3IE0o'@; put 'aiksQj1FLmxlbmd0aCxZPUIlMTY7Vi51cGRhdGUoRSksWSYmVi51cGRhdGUoeC5hbGxvYyhZPTE2LVksMCkpLFYudXBkYXRlKHguYWxsb2MoOCwwKSk7dmFyIFg9OCpCLFU9eC5hbGxvYyg4KTtVLndyaXRlVUludEJFKFgsMCw4KSxWLnVwZGF0ZShVKSxrLl9maW5JRD1WLnN0YXRlO3ZhciBx'@; put 'PXguZnJvbShrLl9maW5JRCk7cmV0dXJuIFIocSkscX0odGhpcyxqLFkpLHRoaXMuX3ByZXY9eC5mcm9tKGopLHRoaXMuX2NhY2hlPXguYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9eC5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PVYsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0w'@; put 'LHRoaXMuX21vZGU9ayx0aGlzLl9hdXRoVGFnPW51bGwsdGhpcy5fY2FsbGVkPSExfWxlKEksbSksSS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihrKXtpZighdGhpcy5fY2FsbGVkJiZ0aGlzLl9hbGVuKXt2YXIgRT0xNi10aGlzLl9hbGVuJTE2O0U8MTYmJihFPXguYWxsb2MoRSwwKSx0'@; put 'aGlzLl9naGFzaC51cGRhdGUoRSkpfXRoaXMuX2NhbGxlZD0hMDt2YXIgaj10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxrKTtyZXR1cm4gdGhpcy5fZ2hhc2gudXBkYXRlKHRoaXMuX2RlY3J5cHQ/azpqKSx0aGlzLl9sZW4rPWsubGVuZ3RoLGp9LEkucHJvdG90eXBlLl9maW5hbD1mdW5jdGlv'@; put 'bigpe2lmKHRoaXMuX2RlY3J5cHQmJiF0aGlzLl9hdXRoVGFnKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dmFyIGs9Tyh0aGlzLl9naGFzaC5maW5hbCg4KnRoaXMuX2FsZW4sOCp0aGlzLl9sZW4pLHRoaXMuX2Np'@; put 'cGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKTtpZih0aGlzLl9kZWNyeXB0JiZmdW5jdGlvbiB6KGssRSl7dmFyIGo9MDtrLmxlbmd0aCE9PUUubGVuZ3RoJiZqKys7Zm9yKHZhciBWPU1hdGgubWluKGsubGVuZ3RoLEUubGVuZ3RoKSxCPTA7QjxWOysrQilqKz1rW0JdXkVbQl07cmV0'@; put 'dXJuIGp9KGssdGhpcy5fYXV0aFRhZykpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGEiKTt0aGlzLl9hdXRoVGFnPWssdGhpcy5fY2lwaGVyLnNjcnViKCl9LEkucHJvdG90eXBlLmdldEF1dGhUYWc9ZnVuY3Rpb24oKXtp'@; put 'Zih0aGlzLl9kZWNyeXB0fHwheC5pc0J1ZmZlcih0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7cmV0dXJuIHRoaXMuX2F1dGhUYWd9LEkucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24o'@; put 'RSl7aWYoIXRoaXMuX2RlY3J5cHQpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3RoaXMuX2F1dGhUYWc9RX0sSS5wcm90b3R5cGUuc2V0QUFEPWZ1bmN0aW9uKEUpe2lmKHRoaXMuX2NhbGxlZCl0aHJvdyBuZXcgRXJy'@; put 'b3IoIkF0dGVtcHRpbmcgdG8gc2V0IEFBRCBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3RoaXMuX2doYXNoLnVwZGF0ZShFKSx0aGlzLl9hbGVuKz1FLmxlbmd0aH0sYXQuZXhwb3J0cz1JfSw4MjQ4OTooYXQsSWUsRik9Pnt2YXIgYWU9RigxMjY4OSkseD1GKDUwMDQ2KSxtPUYoNDQ5NDYpO0ll'@; put 'LmNyZWF0ZUNpcGhlcj1JZS5DaXBoZXI9YWUuY3JlYXRlQ2lwaGVyLEllLmNyZWF0ZUNpcGhlcml2PUllLkNpcGhlcml2PWFlLmNyZWF0ZUNpcGhlcml2LEllLmNyZWF0ZURlY2lwaGVyPUllLkRlY2lwaGVyPXguY3JlYXRlRGVjaXBoZXIsSWUuY3JlYXRlRGVjaXBoZXJpdj1JZS5EZWNpcGhl'@; put 'cml2PXguY3JlYXRlRGVjaXBoZXJpdixJZS5saXN0Q2lwaGVycz1JZS5nZXRDaXBoZXJzPWZ1bmN0aW9uIGxlKCl7cmV0dXJuIE9iamVjdC5rZXlzKG0pfX0sNTAwNDY6KGF0LEllLEYpPT57dmFyIGFlPUYoNTYwODcpLHg9Rig4NDMpLkJ1ZmZlcixtPUYoMTI0MjEpLGxlPUYoODkzNTQpLE09'@; put 'Rig4NjQyMCksTz1GKDY0MDMpLFI9RigzNjUwNSk7ZnVuY3Rpb24gSyhWLEIsWSl7TS5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBJLHRoaXMuX2xhc3Q9dm9pZCAwLHRoaXMuX2NpcGhlcj1uZXcgTy5BRVMoQiksdGhpcy5fcHJldj14LmZyb20oWSksdGhpcy5fbW9kZT1WLHRoaXMuX2F1'@; put 'dG9wYWRkaW5nPSEwfWZ1bmN0aW9uIEkoKXt0aGlzLmNhY2hlPXguYWxsb2NVbnNhZmUoMCl9ZnVuY3Rpb24gRShWLEIsWSl7dmFyIFg9bVtWLnRvTG93ZXJDYXNlKCldO2lmKCFYKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2Yg'@; put 'WSYmKFk9eC5mcm9tKFkpKSwiR0NNIiE9PVgubW9kZSYmWS5sZW5ndGghPT1YLml2KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaXYgbGVuZ3RoICIrWS5sZW5ndGgpO2lmKCJzdHJpbmciPT10eXBlb2YgQiYmKEI9eC5mcm9tKEIpKSxCLmxlbmd0aCE9PVgua2V5LzgpdGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoICIrQi5sZW5ndGgpO3JldHVybiJzdHJlYW0iPT09WC50eXBlP25ldyBsZShYLm1vZHVsZSxCLFksITApOiJhdXRoIj09PVgudHlwZT9uZXcgYWUoWC5tb2R1bGUsQixZLCEwKTpuZXcgSyhYLm1vZHVsZSxCLFkpfUYoNjY2OTgpKEssTSks'@; put 'Sy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihWKXt0aGlzLl9jYWNoZS5hZGQoVik7Zm9yKHZhciBCLFksWD1bXTtCPXRoaXMuX2NhY2hlLmdldCh0aGlzLl9hdXRvcGFkZGluZyk7KVk9dGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsQiksWC5wdXNoKFkpO3JldHVybiB4LmNvbmNhdChYKX0s'@; put 'Sy5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIFY9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24gayhWKXt2YXIgQj1WWzE1XTtpZihCPDF8fEI+MTYpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7'@; put 'Zm9yKHZhciBZPS0xOysrWTxCOylpZihWW1krKDE2LUIpXSE9PUIpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7aWYoMTYhPT1CKXJldHVybiBWLnNsaWNlKDAsMTYtQil9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLFYpKTtpZihWKXRocm93IG5ldyBFcnJvcigi'@; put 'ZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LEsucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKFYpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIVYsdGhpc30sSS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKFYpe3RoaXMuY2FjaGU9eC5jb25jYXQoW3RoaXMu'@; put 'Y2FjaGUsVl0pfSxJLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oVil7dmFyIEI7aWYoVil7aWYodGhpcy5jYWNoZS5sZW5ndGg+MTYpcmV0dXJuIEI9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLEJ9ZWxzZSBpZih0aGlzLmNhY2hlLmxlbmd0'@; put 'aD49MTYpcmV0dXJuIEI9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLEI7cmV0dXJuIG51bGx9LEkucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGV9LEllLmNyZWF0ZURl'@; put 'Y2lwaGVyPWZ1bmN0aW9uIGooVixCKXt2YXIgWT1tW1YudG9Mb3dlckNhc2UoKV07aWYoIVkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIFg9UihCLCExLFkua2V5LFkuaXYpO3JldHVybiBFKFYsWC5rZXksWC5pdil9LEllLmNyZWF0ZURlY2lwaGVyaXY9'@; put 'RX0sMTI2ODk6KGF0LEllLEYpPT57dmFyIGFlPUYoMTI0MjEpLHg9Rig1NjA4NyksbT1GKDg0MykuQnVmZmVyLGxlPUYoODkzNTQpLE09Rig4NjQyMCksTz1GKDY0MDMpLFI9RigzNjUwNSk7ZnVuY3Rpb24gSyhWLEIsWSl7TS5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBrLHRoaXMuX2Np'@; put 'cGhlcj1uZXcgTy5BRVMoQiksdGhpcy5fcHJldj1tLmZyb20oWSksdGhpcy5fbW9kZT1WLHRoaXMuX2F1dG9wYWRkaW5nPSEwfUYoNjY2OTgpKEssTSksSy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihWKXt0aGlzLl9jYWNoZS5hZGQoVik7Zm9yKHZhciBCLFksWD1bXTtCPXRoaXMuX2Nh'@; put 'Y2hlLmdldCgpOylZPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLEIpLFgucHVzaChZKTtyZXR1cm4gbS5jb25jYXQoWCl9O3ZhciBJPW0uYWxsb2MoMTYsMTYpO2Z1bmN0aW9uIGsoKXt0aGlzLmNhY2hlPW0uYWxsb2NVbnNhZmUoMCl9ZnVuY3Rpb24gRShWLEIsWSl7dmFyIFg9YWVbVi50b0xv'@; put 'd2VyQ2FzZSgpXTtpZighWCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtpZigic3RyaW5nIj09dHlwZW9mIEImJihCPW0uZnJvbShCKSksQi5sZW5ndGghPT1YLmtleS84KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQga2V5IGxlbmd0aCAiK0IubGVuZ3Ro'@; put 'KTtpZigic3RyaW5nIj09dHlwZW9mIFkmJihZPW0uZnJvbShZKSksIkdDTSIhPT1YLm1vZGUmJlkubGVuZ3RoIT09WC5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK1kubGVuZ3RoKTtyZXR1cm4ic3RyZWFtIj09PVgudHlwZT9uZXcgbGUoWC5tb2R1bGUsQixZ'@; put 'KToiYXV0aCI9PT1YLnR5cGU/bmV3IHgoWC5tb2R1bGUsQixZKTpuZXcgSyhYLm1vZHVsZSxCLFkpfUsucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBWPXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIFY9dGhpcy5fbW9kZS5lbmNyeXB0KHRo'@; put 'aXMsViksdGhpcy5fY2lwaGVyLnNjcnViKCksVjtpZighVi5lcXVhbHMoSSkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCksbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0sSy5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oVil7cmV0dXJu'@; put 'IHRoaXMuX2F1dG9wYWRkaW5nPSEhVix0aGlzfSxrLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oVil7dGhpcy5jYWNoZT1tLmNvbmNhdChbdGhpcy5jYWNoZSxWXSl9LGsucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgVj10aGlzLmNhY2hlLnNs'@; put 'aWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLFZ9cmV0dXJuIG51bGx9LGsucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBWPTE2LXRoaXMuY2FjaGUubGVuZ3RoLEI9bS5hbGxvY1Vuc2FmZShWKSxZPS0xOysrWTxWOylCLndyaXRlVUlu'@; put 'dDgoVixZKTtyZXR1cm4gbS5jb25jYXQoW3RoaXMuY2FjaGUsQl0pfSxJZS5jcmVhdGVDaXBoZXJpdj1FLEllLmNyZWF0ZUNpcGhlcj1mdW5jdGlvbiBqKFYsQil7dmFyIFk9YWVbVi50b0xvd2VyQ2FzZSgpXTtpZighWSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUi'@; put 'KTt2YXIgWD1SKEIsITEsWS5rZXksWS5pdik7cmV0dXJuIEUoVixYLmtleSxYLml2KX19LDE1MDM6KGF0LEllLEYpPT57dmFyIGFlPUYoODQzKS5CdWZmZXIseD1hZS5hbGxvYygxNiwwKTtmdW5jdGlvbiBsZShPKXt2YXIgUj1hZS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIFIud3JpdGVVSW50'@; put 'MzJCRShPWzBdPj4+MCwwKSxSLndyaXRlVUludDMyQkUoT1sxXT4+PjAsNCksUi53cml0ZVVJbnQzMkJFKE9bMl0+Pj4wLDgpLFIud3JpdGVVSW50MzJCRShPWzNdPj4+MCwxMiksUn1mdW5jdGlvbiBNKE8pe3RoaXMuaD1PLHRoaXMuc3RhdGU9YWUuYWxsb2MoMTYsMCksdGhpcy5jYWNoZT1h'@; put 'ZS5hbGxvY1Vuc2FmZSgwKX1NLnByb3RvdHlwZS5naGFzaD1mdW5jdGlvbihPKXtmb3IodmFyIFI9LTE7KytSPE8ubGVuZ3RoOyl0aGlzLnN0YXRlW1JdXj1PW1JdO3RoaXMuX211bHRpcGx5KCl9LE0ucHJvdG90eXBlLl9tdWx0aXBseT1mdW5jdGlvbigpe2Zvcih2YXIgeixJLE89ZnVuY3Rp'@; put 'b24gbShPKXtyZXR1cm5bTy5yZWFkVUludDMyQkUoMCksTy5yZWFkVUludDMyQkUoNCksTy5yZWFkVUludDMyQkUoOCksTy5yZWFkVUludDMyQkUoMTIpXX0odGhpcy5oKSxSPVswLDAsMCwwXSxrPS0xOysrazwxMjg7KXtmb3IoMCE9KHRoaXMuc3RhdGVbfn4oay84KV0mMTw8Ny1rJTgpJiYo'@; put 'UlswXV49T1swXSxSWzFdXj1PWzFdLFJbMl1ePU9bMl0sUlszXV49T1szXSksST0wIT0oMSZPWzNdKSx6PTM7ej4wO3otLSlPW3pdPU9bel0+Pj4xfCgxJk9bei0xXSk8PDMxO09bMF09T1swXT4+PjEsSSYmKE9bMF09T1swXV4yMjU8PDI0KX10aGlzLnN0YXRlPWxlKFIpfSxNLnByb3RvdHlw'@; put 'ZS51cGRhdGU9ZnVuY3Rpb24oTyl7dGhpcy5jYWNoZT1hZS5jb25jYXQoW3RoaXMuY2FjaGUsT10pO2Zvcih2YXIgUjt0aGlzLmNhY2hlLmxlbmd0aD49MTY7KVI9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHRoaXMuZ2hhc2goUil9LE0u'@; put 'cHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKE8sUil7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNoKGFlLmNvbmNhdChbdGhpcy5jYWNoZSx4XSwxNikpLHRoaXMuZ2hhc2gobGUoWzAsTywwLFJdKSksdGhpcy5zdGF0ZX0sYXQuZXhwb3J0cz1NfSw5MTA3OmF0PT57YXQuZXhw'@; put 'b3J0cz1mdW5jdGlvbiBJZShGKXtmb3IodmFyIHgsYWU9Ri5sZW5ndGg7YWUtLTspe2lmKDI1NSE9PSh4PUYucmVhZFVJbnQ4KGFlKSkpe3grKyxGLndyaXRlVUludDgoeCxhZSk7YnJlYWt9Ri53cml0ZVVJbnQ4KDAsYWUpfX19LDMxMTc1OihhdCxJZSxGKT0+e3ZhciBhZT1GKDYzNjM2KTtJ'@; put 'ZS5lbmNyeXB0PWZ1bmN0aW9uKHgsbSl7dmFyIGxlPWFlKG0seC5fcHJldik7cmV0dXJuIHguX3ByZXY9eC5fY2lwaGVyLmVuY3J5cHRCbG9jayhsZSkseC5fcHJldn0sSWUuZGVjcnlwdD1mdW5jdGlvbih4LG0pe3ZhciBsZT14Ll9wcmV2O3guX3ByZXY9bTt2YXIgTT14Ll9jaXBoZXIuZGVj'@; put 'cnlwdEJsb2NrKG0pO3JldHVybiBhZShNLGxlKX19LDQzNjMxOihhdCxJZSxGKT0+e3ZhciBhZT1GKDg0MykuQnVmZmVyLHg9Rig2MzYzNik7ZnVuY3Rpb24gbShsZSxNLE8pe3ZhciBSPU0ubGVuZ3RoLHo9eChNLGxlLl9jYWNoZSk7cmV0dXJuIGxlLl9jYWNoZT1sZS5fY2FjaGUuc2xpY2Uo'@; put 'UiksbGUuX3ByZXY9YWUuY29uY2F0KFtsZS5fcHJldixPP006el0pLHp9SWUuZW5jcnlwdD1mdW5jdGlvbihsZSxNLE8pe2Zvcih2YXIgeixSPWFlLmFsbG9jVW5zYWZlKDApO00ubGVuZ3RoOyl7aWYoMD09PWxlLl9jYWNoZS5sZW5ndGgmJihsZS5fY2FjaGU9bGUuX2NpcGhlci5lbmNyeXB0'@; put 'QmxvY2sobGUuX3ByZXYpLGxlLl9wcmV2PWFlLmFsbG9jVW5zYWZlKDApKSwhKGxlLl9jYWNoZS5sZW5ndGg8PU0ubGVuZ3RoKSl7Uj1hZS5jb25jYXQoW1IsbShsZSxNLE8pXSk7YnJlYWt9Uj1hZS5jb25jYXQoW1IsbShsZSxNLnNsaWNlKDAsej1sZS5fY2FjaGUubGVuZ3RoKSxPKV0pLE09'@; put 'TS5zbGljZSh6KX1yZXR1cm4gUn19LDMzODkyOihhdCxJZSxGKT0+e3ZhciBhZT1GKDg0MykuQnVmZmVyO2Z1bmN0aW9uIHgobGUsTSxPKXtmb3IodmFyIGssRSx6PS0xLEk9MDsrK3o8ODspSSs9KDEyOCYoRT1sZS5fY2lwaGVyLmVuY3J5cHRCbG9jayhsZS5fcHJldilbMF1eKGs9TSYxPDw3'@; put 'LXo/MTI4OjApKSk+PnolOCxsZS5fcHJldj1tKGxlLl9wcmV2LE8/azpFKTtyZXR1cm4gSX1mdW5jdGlvbiBtKGxlLE0pe3ZhciBPPWxlLmxlbmd0aCxSPS0xLHo9YWUuYWxsb2NVbnNhZmUobGUubGVuZ3RoKTtmb3IobGU9YWUuY29uY2F0KFtsZSxhZS5mcm9tKFtNXSldKTsrK1I8TzspeltS'@; put 'XT1sZVtSXTw8MXxsZVtSKzFdPj43O3JldHVybiB6fUllLmVuY3J5cHQ9ZnVuY3Rpb24obGUsTSxPKXtmb3IodmFyIFI9TS5sZW5ndGgsej1hZS5hbGxvY1Vuc2FmZShSKSxLPS0xOysrSzxSOyl6W0tdPXgobGUsTVtLXSxPKTtyZXR1cm4gen19LDM2Nzg3OihhdCxJZSxGKT0+e3ZhciBhZT1G'@; put 'KDg0MykuQnVmZmVyO2Z1bmN0aW9uIHgobSxsZSxNKXt2YXIgUj1tLl9jaXBoZXIuZW5jcnlwdEJsb2NrKG0uX3ByZXYpWzBdXmxlO3JldHVybiBtLl9wcmV2PWFlLmNvbmNhdChbbS5fcHJldi5zbGljZSgxKSxhZS5mcm9tKFtNP2xlOlJdKV0pLFJ9SWUuZW5jcnlwdD1mdW5jdGlvbihtLGxl'@; put 'LE0pe2Zvcih2YXIgTz1sZS5sZW5ndGgsUj1hZS5hbGxvY1Vuc2FmZShPKSx6PS0xOysrejxPOylSW3pdPXgobSxsZVt6XSxNKTtyZXR1cm4gUn19LDg1MjY4OihhdCxJZSxGKT0+e3ZhciBhZT1GKDYzNjM2KSx4PUYoODQzKS5CdWZmZXIsbT1GKDkxMDcpO2Z1bmN0aW9uIGxlKE8pe3ZhciBS'@; put 'PU8uX2NpcGhlci5lbmNyeXB0QmxvY2tSYXcoTy5fcHJldik7cmV0dXJuIG0oTy5fcHJldiksUn1JZS5lbmNyeXB0PWZ1bmN0aW9uKE8sUil7dmFyIHo9TWF0aC5jZWlsKFIubGVuZ3RoLzE2KSxLPU8uX2NhY2hlLmxlbmd0aDtPLl9jYWNoZT14LmNvbmNhdChbTy5fY2FjaGUseC5hbGxvY1Vu'@; put 'c2FmZSgxNip6KV0pO2Zvcih2YXIgST0wO0k8ejtJKyspe3ZhciBrPWxlKE8pLEU9SysxNipJO08uX2NhY2hlLndyaXRlVUludDMyQkUoa1swXSxFKzApLE8uX2NhY2hlLndyaXRlVUludDMyQkUoa1sxXSxFKzQpLE8uX2NhY2hlLndyaXRlVUludDMyQkUoa1syXSxFKzgpLE8uX2NhY2hlLndy'@; put 'aXRlVUludDMyQkUoa1szXSxFKzEyKX12YXIgaj1PLl9jYWNoZS5zbGljZSgwLFIubGVuZ3RoKTtyZXR1cm4gTy5fY2FjaGU9Ty5fY2FjaGUuc2xpY2UoUi5sZW5ndGgpLGFlKFIsail9fSw0NTk5NTooYXQsSWUpPT57SWUuZW5jcnlwdD1mdW5jdGlvbihGLGFlKXtyZXR1cm4gRi5fY2lwaGVy'@; put 'LmVuY3J5cHRCbG9jayhhZSl9LEllLmRlY3J5cHQ9ZnVuY3Rpb24oRixhZSl7cmV0dXJuIEYuX2NpcGhlci5kZWNyeXB0QmxvY2soYWUpfX0sMTI0MjE6KGF0LEllLEYpPT57dmFyIGFlPXtFQ0I6Rig0NTk5NSksQ0JDOkYoMzExNzUpLENGQjpGKDQzNjMxKSxDRkI4OkYoMzY3ODcpLENGQjE6'@; put 'RigzMzg5MiksT0ZCOkYoMzQ1MzIpLENUUjpGKDg1MjY4KSxHQ006Rig4NTI2OCl9LHg9Rig0NDk0Nik7Zm9yKHZhciBtIGluIHgpeFttXS5tb2R1bGU9YWVbeFttXS5tb2RlXTthdC5leHBvcnRzPXh9LDM0NTMyOihhdCxJZSxGKT0+e3ZhciBhZT1GKDYzNjM2KTtmdW5jdGlvbiB4KG0pe3Jl'@; put 'dHVybiBtLl9wcmV2PW0uX2NpcGhlci5lbmNyeXB0QmxvY2sobS5fcHJldiksbS5fcHJldn1JZS5lbmNyeXB0PWZ1bmN0aW9uKG0sbGUpe2Zvcig7bS5fY2FjaGUubGVuZ3RoPGxlLmxlbmd0aDspbS5fY2FjaGU9QnVmZmVyLmNvbmNhdChbbS5fY2FjaGUseChtKV0pO3ZhciBNPW0uX2NhY2hl'@; put 'LnNsaWNlKDAsbGUubGVuZ3RoKTtyZXR1cm4gbS5fY2FjaGU9bS5fY2FjaGUuc2xpY2UobGUubGVuZ3RoKSxhZShsZSxNKX19LDg5MzU0OihhdCxJZSxGKT0+e3ZhciBhZT1GKDY0MDMpLHg9Rig4NDMpLkJ1ZmZlcixtPUYoODY0MjApO2Z1bmN0aW9uIE0oTyxSLHosSyl7bS5jYWxsKHRoaXMp'@; put 'LHRoaXMuX2NpcGhlcj1uZXcgYWUuQUVTKFIpLHRoaXMuX3ByZXY9eC5mcm9tKHopLHRoaXMuX2NhY2hlPXguYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9eC5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PUssdGhpcy5fbW9kZT1PfUYoNjY2OTgpKE0sbSksTS5wcm90b3R5cGUu'@; put 'X3VwZGF0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsTyx0aGlzLl9kZWNyeXB0KX0sTS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dGhpcy5fY2lwaGVyLnNjcnViKCl9LGF0LmV4cG9ydHM9TX0sMjU2MDA6KGF0LEllLEYpPT57dmFyIGFlPUYoMTQ5'@; put 'NDgpLHg9Rig4MjQ4OSksbT1GKDEyNDIxKSxsZT1GKDg5NDAyKSxNPUYoMzY1MDUpO2Z1bmN0aW9uIHooayxFLGope2lmKGs9ay50b0xvd2VyQ2FzZSgpLG1ba10pcmV0dXJuIHguY3JlYXRlQ2lwaGVyaXYoayxFLGopO2lmKGxlW2tdKXJldHVybiBuZXcgYWUoe2tleTpFLGl2OmosbW9kZTpr'@; put 'fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIil9ZnVuY3Rpb24gSyhrLEUsail7aWYoaz1rLnRvTG93ZXJDYXNlKCksbVtrXSlyZXR1cm4geC5jcmVhdGVEZWNpcGhlcml2KGssRSxqKTtpZihsZVtrXSlyZXR1cm4gbmV3IGFlKHtrZXk6RSxpdjpqLG1vZGU6ayxk'@; put 'ZWNyeXB0OiEwfSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIil9SWUuY3JlYXRlQ2lwaGVyPUllLkNpcGhlcj1mdW5jdGlvbiBPKGssRSl7dmFyIGosVjtpZihrPWsudG9Mb3dlckNhc2UoKSxtW2tdKWo9bVtrXS5rZXksVj1tW2tdLml2O2Vsc2V7aWYoIWxlW2td'@; put 'KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2o9OCpsZVtrXS5rZXksVj1sZVtrXS5pdn12YXIgQj1NKEUsITEsaixWKTtyZXR1cm4geihrLEIua2V5LEIuaXYpfSxJZS5jcmVhdGVDaXBoZXJpdj1JZS5DaXBoZXJpdj16LEllLmNyZWF0ZURlY2lwaGVyPUllLkRl'@; put 'Y2lwaGVyPWZ1bmN0aW9uIFIoayxFKXt2YXIgaixWO2lmKGs9ay50b0xvd2VyQ2FzZSgpLG1ba10paj1tW2tdLmtleSxWPW1ba10uaXY7ZWxzZXtpZighbGVba10pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aj04KmxlW2tdLmtleSxWPWxlW2tdLml2fXZhciBC'@; put 'PU0oRSwhMSxqLFYpO3JldHVybiBLKGssQi5rZXksQi5pdil9LEllLmNyZWF0ZURlY2lwaGVyaXY9SWUuRGVjaXBoZXJpdj1LLEllLmxpc3RDaXBoZXJzPUllLmdldENpcGhlcnM9ZnVuY3Rpb24gSSgpe3JldHVybiBPYmplY3Qua2V5cyhsZSkuY29uY2F0KHguZ2V0Q2lwaGVycygpKX19LDE0'@; put 'OTQ4OihhdCxJZSxGKT0+e3ZhciBhZT1GKDg2NDIwKSx4PUYoNDAxMzIpLG09Rig2NjY5OCksbGU9Rig4NDMpLkJ1ZmZlcixNPXsiZGVzLWVkZTMtY2JjIjp4LkNCQy5pbnN0YW50aWF0ZSh4LkVERSksImRlcy1lZGUzIjp4LkVERSwiZGVzLWVkZS1jYmMiOnguQ0JDLmluc3RhbnRpYXRlKHgu'@; put 'RURFKSwiZGVzLWVkZSI6eC5FREUsImRlcy1jYmMiOnguQ0JDLmluc3RhbnRpYXRlKHguREVTKSwiZGVzLWVjYiI6eC5ERVN9O2Z1bmN0aW9uIE8oUil7YWUuY2FsbCh0aGlzKTt2YXIgSSx6PVIubW9kZS50b0xvd2VyQ2FzZSgpLEs9TVt6XTtJPVIuZGVjcnlwdD8iZGVjcnlwdCI6ImVuY3J5'@; put 'cHQiO3ZhciBrPVIua2V5O2xlLmlzQnVmZmVyKGspfHwoaz1sZS5mcm9tKGspKSwoImRlcy1lZGUiPT09enx8ImRlcy1lZGUtY2JjIj09PXopJiYoaz1sZS5jb25jYXQoW2ssay5zbGljZSgwLDgpXSkpO3ZhciBFPVIuaXY7bGUuaXNCdWZmZXIoRSl8fChFPWxlLmZyb20oRSkpLHRoaXMuX2Rl'@; put 'cz1LLmNyZWF0ZSh7a2V5OmssaXY6RSx0eXBlOkl9KX1NLmRlcz1NWyJkZXMtY2JjIl0sTS5kZXMzPU1bImRlcy1lZGUzLWNiYyJdLGF0LmV4cG9ydHM9TyxtKE8sYWUpLE8ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oUil7cmV0dXJuIGxlLmZyb20odGhpcy5fZGVzLnVwZGF0ZShSKSl9'@; put 'LE8ucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBsZS5mcm9tKHRoaXMuX2Rlcy5maW5hbCgpKX19LDg5NDAyOihhdCxJZSk9PntJZVsiZGVzLWVjYiJdPXtrZXk6OCxpdjowfSxJZVsiZGVzLWNiYyJdPUllLmRlcz17a2V5OjgsaXY6OH0sSWVbImRlcy1lZGUzLWNiYyJdPUll'@; put 'LmRlczM9e2tleToyNCxpdjo4fSxJZVsiZGVzLWVkZTMiXT17a2V5OjI0LGl2OjB9LEllWyJkZXMtZWRlLWNiYyJdPXtrZXk6MTYsaXY6OH0sSWVbImRlcy1lZGUiXT17a2V5OjE2LGl2OjB9fSw3MTk0NjooYXQsSWUsRik9Pnt2YXIgYWU9Rig2MjY2MikseD1GKDQ0MDE5KTtmdW5jdGlvbiBs'@; put 'ZShPKXt2YXIgeixSPU8ubW9kdWx1cy5ieXRlTGVuZ3RoKCk7ZG97ej1uZXcgYWUoeChSKSl9d2hpbGUoei5jbXAoTy5tb2R1bHVzKT49MHx8IXoudW1vZChPLnByaW1lMSl8fCF6LnVtb2QoTy5wcmltZTIpKTtyZXR1cm4gen1mdW5jdGlvbiBNKE8sUil7dmFyIHo9ZnVuY3Rpb24gbShPKXt2'@; put 'YXIgUj1sZShPKTtyZXR1cm57YmxpbmRlcjpSLnRvUmVkKGFlLm1vbnQoTy5tb2R1bHVzKSkucmVkUG93KG5ldyBhZShPLnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLHVuYmxpbmRlcjpSLmludm0oTy5tb2R1bHVzKX19KFIpLEs9Ui5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxJPW5ldyBhZShP'@; put 'KS5tdWwoei5ibGluZGVyKS51bW9kKFIubW9kdWx1cyksaz1JLnRvUmVkKGFlLm1vbnQoUi5wcmltZTEpKSxFPUkudG9SZWQoYWUubW9udChSLnByaW1lMikpLGo9Ui5jb2VmZmljaWVudCxWPVIucHJpbWUxLEI9Ui5wcmltZTIsWT1rLnJlZFBvdyhSLmV4cG9uZW50MSkuZnJvbVJlZCgpLFg9'@; put 'RS5yZWRQb3coUi5leHBvbmVudDIpLmZyb21SZWQoKSxVPVkuaXN1YihYKS5pbXVsKGopLnVtb2QoVikuaW11bChCKTtyZXR1cm4gWC5pYWRkKFUpLmltdWwoei51bmJsaW5kZXIpLnVtb2QoUi5tb2R1bHVzKS50b0FycmF5TGlrZShCdWZmZXIsImJlIixLKX1NLmdldHI9bGUsYXQuZXhwb3J0'@; put 'cz1NfSw4MTY5OTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz1GKDc1MjA3KX0sMjc2ODY6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg0MykuQnVmZmVyLHg9Rig5NjM2MiksbT1GKDk2NzQ1KSxsZT1GKDY2Njk4KSxNPUYoNjM2MDIpLE89Rig1MTE3Myks'@; put 'Uj1GKDc1MjA3KTtmdW5jdGlvbiB6KEUpe20uV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgaj1SW0VdO2lmKCFqKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPWouaGFzaCx0aGlzLl9oYXNoPXgoai5oYXNoKSx0aGlzLl90YWc9ai5pZCx0'@; put 'aGlzLl9zaWduVHlwZT1qLnNpZ259ZnVuY3Rpb24gSyhFKXttLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIGo9UltFXTtpZighail0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoPXgoai5oYXNoKSx0aGlzLl90YWc9ai5pZCx0aGlzLl9zaWduVHlw'@; put 'ZT1qLnNpZ259ZnVuY3Rpb24gSShFKXtyZXR1cm4gbmV3IHooRSl9ZnVuY3Rpb24gayhFKXtyZXR1cm4gbmV3IEsoRSl9T2JqZWN0LmtleXMoUikuZm9yRWFjaChmdW5jdGlvbihFKXtSW0VdLmlkPWFlLmZyb20oUltFXS5pZCwiaGV4IiksUltFLnRvTG93ZXJDYXNlKCldPVJbRV19KSxsZSh6'@; put 'LG0uV3JpdGFibGUpLHoucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihqLFYsQil7dGhpcy5faGFzaC51cGRhdGUoaiksQigpfSx6LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oaixWKXtyZXR1cm4gdGhpcy5faGFzaC51cGRhdGUoInN0cmluZyI9PXR5cGVvZiBqP2FlLmZyb20oaixWKTpq'@; put 'KSx0aGlzfSx6LnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKGosVil7dGhpcy5lbmQoKTt2YXIgQj10aGlzLl9oYXNoLmRpZ2VzdCgpLFk9TShCLGosdGhpcy5faGFzaFR5cGUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKTtyZXR1cm4gVj9ZLnRvU3RyaW5nKFYpOll9LGxlKEssbS5Xcml0YWJs'@; put 'ZSksSy5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKGosVixCKXt0aGlzLl9oYXNoLnVwZGF0ZShqKSxCKCl9LEsucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihqLFYpe3JldHVybiB0aGlzLl9oYXNoLnVwZGF0ZSgic3RyaW5nIj09dHlwZW9mIGo/YWUuZnJvbShqLFYpOmopLHRoaXN9LEsu'@; put 'cHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihqLFYsQil7dmFyIFk9InN0cmluZyI9PXR5cGVvZiBWP2FlLmZyb20oVixCKTpWO3RoaXMuZW5kKCk7dmFyIFg9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4gTyhZLFgsaix0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpfSxhdC5leHBvcnRzPXtT'@; put 'aWduOkksVmVyaWZ5OmssY3JlYXRlU2lnbjpJLGNyZWF0ZVZlcmlmeTprfX0sNjM2MDI6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg0MykuQnVmZmVyLHg9Rig4NTgyNSksbT1GKDcxOTQ2KSxsZT1GKDg4NjUxKS5lYyxNPUYoNjI2NjIpLE89Rig4Nzk4MyksUj1GKDEzMDgp'@; put 'O2Z1bmN0aW9uIGooVSxxLGVlLHRlKXtpZigoVT1hZS5mcm9tKFUudG9BcnJheSgpKSkubGVuZ3RoPHEuYnl0ZUxlbmd0aCgpKXt2YXIgb2U9YWUuYWxsb2MocS5ieXRlTGVuZ3RoKCktVS5sZW5ndGgpO1U9YWUuY29uY2F0KFtvZSxVXSl9dmFyIHNlPWVlLmxlbmd0aCxoZT1mdW5jdGlvbiBC'@; put 'KFUscSl7VT0oVT1WKFUscSkpLm1vZChxKTt2YXIgZWU9YWUuZnJvbShVLnRvQXJyYXkoKSk7aWYoZWUubGVuZ3RoPHEuYnl0ZUxlbmd0aCgpKXt2YXIgdGU9YWUuYWxsb2MocS5ieXRlTGVuZ3RoKCktZWUubGVuZ3RoKTtlZT1hZS5jb25jYXQoW3RlLGVlXSl9cmV0dXJuIGVlfShlZSxxKSx1'@; put 'ZT1hZS5hbGxvYyhzZSk7dWUuZmlsbCgxKTt2YXIgY2U9YWUuYWxsb2Moc2UpO3JldHVybiBjZT14KHRlLGNlKS51cGRhdGUodWUpLnVwZGF0ZShhZS5mcm9tKFswXSkpLnVwZGF0ZShVKS51cGRhdGUoaGUpLmRpZ2VzdCgpLHVlPXgodGUsY2UpLnVwZGF0ZSh1ZSkuZGlnZXN0KCkse2s6Y2U9'@; put 'eCh0ZSxjZSkudXBkYXRlKHVlKS51cGRhdGUoYWUuZnJvbShbMV0pKS51cGRhdGUoVSkudXBkYXRlKGhlKS5kaWdlc3QoKSx2OnVlPXgodGUsY2UpLnVwZGF0ZSh1ZSkuZGlnZXN0KCl9fWZ1bmN0aW9uIFYoVSxxKXt2YXIgZWU9bmV3IE0oVSksdGU9KFUubGVuZ3RoPDwzKS1xLmJpdExlbmd0'@; put 'aCgpO3JldHVybiB0ZT4wJiZlZS5pc2hybih0ZSksZWV9ZnVuY3Rpb24gWShVLHEsZWUpe3ZhciB0ZSxvZTtkb3tmb3IodGU9YWUuYWxsb2MoMCk7OCp0ZS5sZW5ndGg8VS5iaXRMZW5ndGgoKTspcS52PXgoZWUscS5rKS51cGRhdGUocS52KS5kaWdlc3QoKSx0ZT1hZS5jb25jYXQoW3RlLHEu'@; put 'dl0pO29lPVYodGUsVSkscS5rPXgoZWUscS5rKS51cGRhdGUocS52KS51cGRhdGUoYWUuZnJvbShbMF0pKS5kaWdlc3QoKSxxLnY9eChlZSxxLmspLnVwZGF0ZShxLnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09b2UuY21wKFUpKTtyZXR1cm4gb2V9ZnVuY3Rpb24gWChVLHEsZWUsdGUpe3JldHVy'@; put 'biBVLnRvUmVkKE0ubW9udChlZSkpLnJlZFBvdyhxKS5mcm9tUmVkKCkubW9kKHRlKX1hdC5leHBvcnRzPWZ1bmN0aW9uIEsoVSxxLGVlLHRlLG9lKXt2YXIgc2U9TyhxKTtpZihzZS5jdXJ2ZSl7aWYoImVjZHNhIiE9PXRlJiYiZWNkc2EvcnNhIiE9PXRlKXRocm93IG5ldyBFcnJvcigid3Jv'@; put 'bmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbiBJKFUscSl7dmFyIGVlPVJbcS5jdXJ2ZS5qb2luKCIuIildO2lmKCFlZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY3VydmUgIitxLmN1cnZlLmpvaW4oIi4iKSk7dmFyIHNlPW5ldyBsZShlZSkua2V5RnJvbVByaXZhdGUo'@; put 'cS5wcml2YXRlS2V5KS5zaWduKFUpO3JldHVybiBhZS5mcm9tKHNlLnRvREVSKCkpfShVLHNlKX1pZigiZHNhIj09PXNlLnR5cGUpe2lmKCJkc2EiIT09dGUpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uIGsoVSxxLGVlKXtmb3IodmFy'@; put 'IGNlLHRlPXEucGFyYW1zLnByaXZfa2V5LG9lPXEucGFyYW1zLnAsc2U9cS5wYXJhbXMucSxoZT1xLnBhcmFtcy5nLHVlPW5ldyBNKDApLEc9VihVLHNlKS5tb2Qoc2UpLGI9ITEsRD1qKHRlLHNlLFUsZWUpOyExPT09YjspdWU9WChoZSxjZT1ZKHNlLEQsZWUpLG9lLHNlKSwwPT09KGI9Y2Uu'@; put 'aW52bShzZSkuaW11bChHLmFkZCh0ZS5tdWwodWUpKSkubW9kKHNlKSkuY21wbigwKSYmKGI9ITEsdWU9bmV3IE0oMCkpO3JldHVybiBmdW5jdGlvbiBFKFUscSl7VT1VLnRvQXJyYXkoKSxxPXEudG9BcnJheSgpLDEyOCZVWzBdJiYoVT1bMF0uY29uY2F0KFUpKSwxMjgmcVswXSYmKHE9WzBd'@; put 'LmNvbmNhdChxKSk7dmFyIHRlPVs0OCxVLmxlbmd0aCtxLmxlbmd0aCs0LDIsVS5sZW5ndGhdO3JldHVybiB0ZT10ZS5jb25jYXQoVSxbMixxLmxlbmd0aF0scSksYWUuZnJvbSh0ZSl9KHVlLGIpfShVLHNlLGVlKX1pZigicnNhIiE9PXRlJiYiZWNkc2EvcnNhIiE9PXRlKXRocm93IG5ldyBF'@; put 'cnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO2lmKHZvaWQgMCE9PXEucGFkZGluZyYmMSE9PXEucGFkZGluZyl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgb3IgdW5zdXBwb3J0ZWQgcGFkZGluZyBtb2RlIik7VT1hZS5jb25jYXQoW29lLFVdKTtmb3IodmFyIGhlPXNlLm1vZHVsdXMu'@; put 'Ynl0ZUxlbmd0aCgpLHVlPVswLDFdO1UubGVuZ3RoK3VlLmxlbmd0aCsxPGhlOyl1ZS5wdXNoKDI1NSk7dWUucHVzaCgwKTtmb3IodmFyIGNlPS0xOysrY2U8VS5sZW5ndGg7KXVlLnB1c2goVVtjZV0pO3JldHVybiBtKHVlLHNlKX0sYXQuZXhwb3J0cy5nZXRLZXk9aixhdC5leHBvcnRzLm1h'@; put 'a2VLZXk9WX0sNTExNzM6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg0MykuQnVmZmVyLHg9Rig2MjY2MiksbT1GKDg4NjUxKS5lYyxsZT1GKDg3OTgzKSxNPUYoMTMwOCk7ZnVuY3Rpb24gSyhJLGspe2lmKEkuY21wbigwKTw9MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQg'@; put 'c2lnIik7aWYoSS5jbXAoayk+PTApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpZyIpfWF0LmV4cG9ydHM9ZnVuY3Rpb24gTyhJLGssRSxqLFYpe3ZhciBCPWxlKEUpO2lmKCJlYyI9PT1CLnR5cGUpe2lmKCJlY2RzYSIhPT1qJiYiZWNkc2EvcnNhIiE9PWopdGhyb3cgbmV3IEVycm9yKCJ3'@; put 'cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gUihJLGssRSl7dmFyIGo9TVtFLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKV07aWYoIWopdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrRS5kYXRhLmFsZ29yaXRobS5jdXJ2ZS5qb2luKCIuIikpO3Jl'@; put 'dHVybiBuZXcgbShqKS52ZXJpZnkoayxJLEUuZGF0YS5zdWJqZWN0UHJpdmF0ZUtleS5kYXRhKX0oSSxrLEIpfWlmKCJkc2EiPT09Qi50eXBlKXtpZigiZHNhIiE9PWopdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24geihJLGssRSl7dmFy'@; put 'IGo9RS5kYXRhLnAsVj1FLmRhdGEucSxCPUUuZGF0YS5nLFk9RS5kYXRhLnB1Yl9rZXksWD1sZS5zaWduYXR1cmUuZGVjb2RlKEksImRlciIpLFU9WC5zLHE9WC5yO0soVSxWKSxLKHEsVik7dmFyIGVlPXgubW9udChqKSx0ZT1VLmludm0oVik7cmV0dXJuIDA9PT1CLnRvUmVkKGVlKS5yZWRQ'@; put 'b3cobmV3IHgoaykubXVsKHRlKS5tb2QoVikpLmZyb21SZWQoKS5tdWwoWS50b1JlZChlZSkucmVkUG93KHEubXVsKHRlKS5tb2QoVikpLmZyb21SZWQoKSkubW9kKGopLm1vZChWKS5jbXAocSl9KEksayxCKX1pZigicnNhIiE9PWomJiJlY2RzYS9yc2EiIT09ail0aHJvdyBuZXcgRXJyb3Io'@; put 'Indyb25nIHB1YmxpYyBrZXkgdHlwZSIpO2s9YWUuY29uY2F0KFtWLGtdKTtmb3IodmFyIFk9Qi5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxYPVsxXSxVPTA7ay5sZW5ndGgrWC5sZW5ndGgrMjxZOylYLnB1c2goMjU1KSxVKz0xO1gucHVzaCgwKTtmb3IodmFyIHE9LTE7KytxPGsubGVuZ3RoOylY'@; put 'LnB1c2goa1txXSk7WD1hZS5mcm9tKFgpO3ZhciBlZT14Lm1vbnQoQi5tb2R1bHVzKTtJPShJPW5ldyB4KEkpLnRvUmVkKGVlKSkucmVkUG93KG5ldyB4KEIucHVibGljRXhwb25lbnQpKSxJPWFlLmZyb20oSS5mcm9tUmVkKCkudG9BcnJheSgpKTt2YXIgdGU9VTw4PzE6MDtmb3IoWT1NYXRo'@; put 'Lm1pbihJLmxlbmd0aCxYLmxlbmd0aCksSS5sZW5ndGghPT1YLmxlbmd0aCYmKHRlPTEpLHE9LTE7KytxPFk7KXRlfD1JW3FdXlhbcV07cmV0dXJuIDA9PT10ZX19LDYzNjM2OmF0PT57YXQuZXhwb3J0cz1mdW5jdGlvbihGLGFlKXtmb3IodmFyIHg9TWF0aC5taW4oRi5sZW5ndGgsYWUubGVu'@; put 'Z3RoKSxtPW5ldyBCdWZmZXIoeCksbGU9MDtsZTx4OysrbGUpbVtsZV09RltsZV1eYWVbbGVdO3JldHVybiBtfX0sMzkwMDc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDk5MTkpLHg9RigyMjYwMSksbT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24iPT10'@; put 'eXBlb2YgU3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpOm51bGw7SWUuQnVmZmVyPVIsSWUuU2xvd0J1ZmZlcj1mdW5jdGlvbiBVKFBlKXtyZXR1cm4rUGUhPVBlJiYoUGU9MCksUi5hbGxvYygrUGUpfSxJZS5JTlNQRUNUX01BWF9CWVRFUz01MDt2'@; put 'YXIgbGU9MjE0NzQ4MzY0NztmdW5jdGlvbiBPKFBlKXtpZihQZT5sZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK1BlKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgYmU9bmV3IFVpbnQ4QXJyYXkoUGUpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBl'@; put 'T2YoYmUsUi5wcm90b3R5cGUpLGJlfWZ1bmN0aW9uIFIoUGUsYmUsQWUpe2lmKCJudW1iZXIiPT10eXBlb2YgUGUpe2lmKCJzdHJpbmciPT10eXBlb2YgYmUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVk'@; put 'IHR5cGUgbnVtYmVyJyk7cmV0dXJuIGsoUGUpfXJldHVybiB6KFBlLGJlLEFlKX1mdW5jdGlvbiB6KFBlLGJlLEFlKXtpZigic3RyaW5nIj09dHlwZW9mIFBlKXJldHVybiBmdW5jdGlvbiBFKFBlLGJlKXtpZigoInN0cmluZyIhPXR5cGVvZiBiZXx8IiI9PT1iZSkmJihiZT0idXRmOCIpLCFS'@; put 'LmlzRW5jb2RpbmcoYmUpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrYmUpO3ZhciBBZT0wfHEoUGUsYmUpLFRlPU8oQWUpLHFlPVRlLndyaXRlKFBlLGJlKTtyZXR1cm4gcWUhPT1BZSYmKFRlPVRlLnNsaWNlKDAscWUpKSxUZX0oUGUsYmUpO2lmKEFycmF5QnVm'@; put 'ZmVyLmlzVmlldyhQZSkpcmV0dXJuIGZ1bmN0aW9uIFYoUGUpe2lmKFllKFBlLFVpbnQ4QXJyYXkpKXt2YXIgYmU9bmV3IFVpbnQ4QXJyYXkoUGUpO3JldHVybiBCKGJlLmJ1ZmZlcixiZS5ieXRlT2Zmc2V0LGJlLmJ5dGVMZW5ndGgpfXJldHVybiBqKFBlKX0oUGUpO2lmKG51bGw9PVBlKXRo'@; put 'cm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIFBlKTtpZihZZShQZSxBcnJheUJ1ZmZlcil8'@; put 'fFBlJiZZZShQZS5idWZmZXIsQXJyYXlCdWZmZXIpfHx0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI8InUiJiYoWWUoUGUsU2hhcmVkQXJyYXlCdWZmZXIpfHxQZSYmWWUoUGUuYnVmZmVyLFNoYXJlZEFycmF5QnVmZmVyKSkpcmV0dXJuIEIoUGUsYmUsQWUpO2lmKCJudW1iZXIiPT10eXBlb2Yg'@; put 'UGUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7dmFyIFRlPVBlLnZhbHVlT2YmJlBlLnZhbHVlT2YoKTtpZihudWxsIT1UZSYmVGUhPT1QZSlyZXR1cm4gUi5mcm9tKFRl'@; put 'LGJlLEFlKTt2YXIgcWU9ZnVuY3Rpb24gWShQZSl7aWYoUi5pc0J1ZmZlcihQZSkpe3ZhciBiZT0wfFgoUGUubGVuZ3RoKSxBZT1PKGJlKTtyZXR1cm4gMD09PUFlLmxlbmd0aHx8UGUuY29weShBZSwwLDAsYmUpLEFlfXJldHVybiB2b2lkIDAhPT1QZS5sZW5ndGg/Im51bWJlciIhPXR5cGVv'@; put 'ZiBQZS5sZW5ndGh8fFFlKFBlLmxlbmd0aCk/TygwKTpqKFBlKToiQnVmZmVyIj09PVBlLnR5cGUmJkFycmF5LmlzQXJyYXkoUGUuZGF0YSk/aihQZS5kYXRhKTp2b2lkIDB9KFBlKTtpZihxZSlyZXR1cm4gcWU7aWYodHlwZW9mIFN5bWJvbDwidSImJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2'@; put 'ZSYmImZ1bmN0aW9uIj09dHlwZW9mIFBlW1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIFIuZnJvbShQZVtTeW1ib2wudG9QcmltaXRpdmVdKCJzdHJpbmciKSxiZSxBZSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5n'@; put 'LCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgUGUpfWZ1bmN0aW9uIEsoUGUpe2lmKCJudW1iZXIiIT10eXBlb2YgUGUpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2Yg'@; put 'dHlwZSBudW1iZXInKTtpZihQZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrUGUrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIGsoUGUpe3JldHVybiBLKFBlKSxPKFBlPDA/MDowfFgoUGUpKX1mdW5jdGlvbiBqKFBlKXtmb3IodmFyIGJl'@; put 'PVBlLmxlbmd0aDwwPzA6MHxYKFBlLmxlbmd0aCksQWU9TyhiZSksVGU9MDtUZTxiZTtUZSs9MSlBZVtUZV09MjU1JlBlW1RlXTtyZXR1cm4gQWV9ZnVuY3Rpb24gQihQZSxiZSxBZSl7aWYoYmU8MHx8UGUuYnl0ZUxlbmd0aDxiZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMg'@; put 'b3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYoUGUuYnl0ZUxlbmd0aDxiZSsoQWV8fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTt2YXIgVGU7cmV0dXJuIFRlPXZvaWQgMD09PWJlJiZ2b2lkIDA9PT1BZT9uZXcgVWlu'@; put 'dDhBcnJheShQZSk6dm9pZCAwPT09QWU/bmV3IFVpbnQ4QXJyYXkoUGUsYmUpOm5ldyBVaW50OEFycmF5KFBlLGJlLEFlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoVGUsUi5wcm90b3R5cGUpLFRlfWZ1bmN0aW9uIFgoUGUpe2lmKFBlPj1sZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1w'@; put 'dCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrbGUudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHxQZX1mdW5jdGlvbiBxKFBlLGJlKXtpZihSLmlzQnVmZmVyKFBlKSlyZXR1cm4gUGUubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyhQ'@; put 'ZSl8fFllKFBlLEFycmF5QnVmZmVyKSlyZXR1cm4gUGUuYnl0ZUxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIFBlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVj'@; put 'ZWl2ZWQgdHlwZSAnK3R5cGVvZiBQZSk7dmFyIEFlPVBlLmxlbmd0aCxUZT1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCFUZSYmMD09PUFlKXJldHVybiAwO2Zvcih2YXIgcWU9ITE7Oylzd2l0Y2goYmUpe2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJp'@; put 'bmFyeSI6cmV0dXJuIEFlO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIEZlKFBlKS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKkFlO2Nhc2UiaGV4IjpyZXR1cm4gQWU+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1'@; put 'cm4gV2UoUGUpLmxlbmd0aDtkZWZhdWx0OmlmKHFlKXJldHVybiBUZT8tMTpGZShQZSkubGVuZ3RoO2JlPSgiIitiZSkudG9Mb3dlckNhc2UoKSxxZT0hMH19ZnVuY3Rpb24gZWUoUGUsYmUsQWUpe3ZhciBUZT0hMTtpZigodm9pZCAwPT09YmV8fGJlPDApJiYoYmU9MCksYmU+dGhpcy5sZW5n'@; put 'dGh8fCgodm9pZCAwPT09QWV8fEFlPnRoaXMubGVuZ3RoKSYmKEFlPXRoaXMubGVuZ3RoKSxBZTw9MCl8fChBZT4+Pj0wKTw9KGJlPj4+PTApKXJldHVybiIiO2ZvcihQZXx8KFBlPSJ1dGY4Iik7Oylzd2l0Y2goUGUpe2Nhc2UiaGV4IjpyZXR1cm4gdih0aGlzLGJlLEFlKTtjYXNlInV0Zjgi'@; put 'OmNhc2UidXRmLTgiOnJldHVybiBIKHRoaXMsYmUsQWUpO2Nhc2UiYXNjaWkiOnJldHVybiBDKHRoaXMsYmUsQWUpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIFModGhpcyxiZSxBZSk7Y2FzZSJiYXNlNjQiOnJldHVybiBEKHRoaXMsYmUsQWUpO2Nhc2UidWNzMiI6Y2FzZSJ1'@; put 'Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gcCh0aGlzLGJlLEFlKTtkZWZhdWx0OmlmKFRlKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrUGUpO1BlPShQZSsiIikudG9Mb3dlckNhc2UoKSxUZT0hMH19ZnVuY3Rpb24gdGUoUGUsYmUs'@; put 'QWUpe3ZhciBUZT1QZVtiZV07UGVbYmVdPVBlW0FlXSxQZVtBZV09VGV9ZnVuY3Rpb24gb2UoUGUsYmUsQWUsVGUscWUpe2lmKDA9PT1QZS5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiBBZT8oVGU9QWUsQWU9MCk6QWU+MjE0NzQ4MzY0Nz9BZT0yMTQ3NDgzNjQ3OkFlPC0y'@; put 'MTQ3NDgzNjQ4JiYoQWU9LTIxNDc0ODM2NDgpLFFlKEFlPStBZSkmJihBZT1xZT8wOlBlLmxlbmd0aC0xKSxBZTwwJiYoQWU9UGUubGVuZ3RoK0FlKSxBZT49UGUubGVuZ3RoKXtpZihxZSlyZXR1cm4tMTtBZT1QZS5sZW5ndGgtMX1lbHNlIGlmKEFlPDApe2lmKCFxZSlyZXR1cm4tMTtBZT0w'@; put 'fWlmKCJzdHJpbmciPT10eXBlb2YgYmUmJihiZT1SLmZyb20oYmUsVGUpKSxSLmlzQnVmZmVyKGJlKSlyZXR1cm4gMD09PWJlLmxlbmd0aD8tMTpzZShQZSxiZSxBZSxUZSxxZSk7aWYoIm51bWJlciI9PXR5cGVvZiBiZSlyZXR1cm4gYmUmPTI1NSwiZnVuY3Rpb24iPT10eXBlb2YgVWludDhB'@; put 'cnJheS5wcm90b3R5cGUuaW5kZXhPZj9xZT9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoUGUsYmUsQWUpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoUGUsYmUsQWUpOnNlKFBlLFtiZV0sQWUsVGUscWUpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBt'@; put 'dXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIHNlKFBlLGJlLEFlLFRlLHFlKXt2YXIgRGUsWGU9MSxVZT1QZS5sZW5ndGgsaHQ9YmUubGVuZ3RoO2lmKHZvaWQgMCE9PVRlJiYoInVjczIiPT09KFRlPVN0cmluZyhUZSkudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9'@; put 'PT1UZXx8InV0ZjE2bGUiPT09VGV8fCJ1dGYtMTZsZSI9PT1UZSkpe2lmKFBlLmxlbmd0aDwyfHxiZS5sZW5ndGg8MilyZXR1cm4tMTtYZT0yLFVlLz0yLGh0Lz0yLEFlLz0yfWZ1bmN0aW9uIE1lKE10LEh0KXtyZXR1cm4gMT09PVhlP010W0h0XTpNdC5yZWFkVUludDE2QkUoSHQqWGUpfWlm'@; put 'KHFlKXt2YXIgemU9LTE7Zm9yKERlPUFlO0RlPFVlO0RlKyspaWYoTWUoUGUsRGUpPT09TWUoYmUsLTE9PT16ZT8wOkRlLXplKSl7aWYoLTE9PT16ZSYmKHplPURlKSxEZS16ZSsxPT09aHQpcmV0dXJuIHplKlhlfWVsc2UtMSE9PXplJiYoRGUtPURlLXplKSx6ZT0tMX1lbHNlIGZvcihBZSto'@; put 'dD5VZSYmKEFlPVVlLWh0KSxEZT1BZTtEZT49MDtEZS0tKXtmb3IodmFyIG90PSEwLHV0PTA7dXQ8aHQ7dXQrKylpZihNZShQZSxEZSt1dCkhPT1NZShiZSx1dCkpe290PSExO2JyZWFrfWlmKG90KXJldHVybiBEZX1yZXR1cm4tMX1mdW5jdGlvbiBoZShQZSxiZSxBZSxUZSl7QWU9TnVtYmVy'@; put 'KEFlKXx8MDt2YXIgcWU9UGUubGVuZ3RoLUFlO1RlPyhUZT1OdW1iZXIoVGUpKT5xZSYmKFRlPXFlKTpUZT1xZTt2YXIgWGU9YmUubGVuZ3RoO1RlPlhlLzImJihUZT1YZS8yKTtmb3IodmFyIFVlPTA7VWU8VGU7KytVZSl7dmFyIGh0PXBhcnNlSW50KGJlLnN1YnN0cigyKlVlLDIpLDE2KTtp'@; put 'ZihRZShodCkpcmV0dXJuIFVlO1BlW0FlK1VlXT1odH1yZXR1cm4gVWV9ZnVuY3Rpb24gdWUoUGUsYmUsQWUsVGUpe3JldHVybiBLZShGZShiZSxQZS5sZW5ndGgtQWUpLFBlLEFlLFRlKX1mdW5jdGlvbiBjZShQZSxiZSxBZSxUZSl7cmV0dXJuIEtlKGZ1bmN0aW9uIE9lKFBlKXtmb3IodmFy'@; put 'IGJlPVtdLEFlPTA7QWU8UGUubGVuZ3RoOysrQWUpYmUucHVzaCgyNTUmUGUuY2hhckNvZGVBdChBZSkpO3JldHVybiBiZX0oYmUpLFBlLEFlLFRlKX1mdW5jdGlvbiBHKFBlLGJlLEFlLFRlKXtyZXR1cm4gS2UoV2UoYmUpLFBlLEFlLFRlKX1mdW5jdGlvbiBiKFBlLGJlLEFlLFRlKXtyZXR1'@; put 'cm4gS2UoZnVuY3Rpb24gamUoUGUsYmUpe2Zvcih2YXIgQWUsVGUsWGU9W10sVWU9MDtVZTxQZS5sZW5ndGgmJiEoKGJlLT0yKTwwKTsrK1VlKVRlPShBZT1QZS5jaGFyQ29kZUF0KFVlKSk+PjgsWGUucHVzaChBZSUyNTYpLFhlLnB1c2goVGUpO3JldHVybiBYZX0oYmUsUGUubGVuZ3RoLUFl'@; put 'KSxQZSxBZSxUZSl9ZnVuY3Rpb24gRChQZSxiZSxBZSl7cmV0dXJuIGFlLmZyb21CeXRlQXJyYXkoMD09PWJlJiZBZT09PVBlLmxlbmd0aD9QZTpQZS5zbGljZShiZSxBZSkpfWZ1bmN0aW9uIEgoUGUsYmUsQWUpe0FlPU1hdGgubWluKFBlLmxlbmd0aCxBZSk7Zm9yKHZhciBUZT1bXSxxZT1i'@; put 'ZTtxZTxBZTspe3ZhciBNZSxEZSx6ZSxvdCxYZT1QZVtxZV0sVWU9bnVsbCxodD1YZT4yMzk/NDpYZT4yMjM/MzpYZT4xOTE/MjoxO2lmKHFlK2h0PD1BZSlzd2l0Y2goaHQpe2Nhc2UgMTpYZTwxMjgmJihVZT1YZSk7YnJlYWs7Y2FzZSAyOjEyOD09KDE5MiYoTWU9UGVbcWUrMV0pKSYmKG90'@; put 'PSgzMSZYZSk8PDZ8NjMmTWUpPjEyNyYmKFVlPW90KTticmVhaztjYXNlIDM6RGU9UGVbcWUrMl0sMTI4PT0oMTkyJihNZT1QZVtxZSsxXSkpJiYxMjg9PSgxOTImRGUpJiYob3Q9KDE1JlhlKTw8MTJ8KDYzJk1lKTw8Nnw2MyZEZSk+MjA0NyYmKG90PDU1Mjk2fHxvdD41NzM0MykmJihVZT1v'@; put 'dCk7YnJlYWs7Y2FzZSA0OkRlPVBlW3FlKzJdLHplPVBlW3FlKzNdLDEyOD09KDE5MiYoTWU9UGVbcWUrMV0pKSYmMTI4PT0oMTkyJkRlKSYmMTI4PT0oMTkyJnplKSYmKG90PSgxNSZYZSk8PDE4fCg2MyZNZSk8PDEyfCg2MyZEZSk8PDZ8NjMmemUpPjY1NTM1JiZvdDwxMTE0MTEyJiYoVWU9'@; put 'b3QpfW51bGw9PT1VZT8oVWU9NjU1MzMsaHQ9MSk6VWU+NjU1MzUmJihUZS5wdXNoKChVZS09NjU1MzYpPj4+MTAmMTAyM3w1NTI5NiksVWU9NTYzMjB8MTAyMyZVZSksVGUucHVzaChVZSkscWUrPWh0fXJldHVybiBmdW5jdGlvbiBnKFBlKXt2YXIgYmU9UGUubGVuZ3RoO2lmKGJlPD1OKXJl'@; put 'dHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxQZSk7Zm9yKHZhciBBZT0iIixUZT0wO1RlPGJlOylBZSs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsUGUuc2xpY2UoVGUsVGUrPU4pKTtyZXR1cm4gQWV9KFRlKX1JZS5rTWF4TGVuZ3RoPWxlLCEoUi5UWVBF'@; put 'RF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uIE0oKXt0cnl7dmFyIFBlPW5ldyBVaW50OEFycmF5KDEpLGJlPXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGJlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2Yo'@; put 'UGUsYmUpLDQyPT09UGUuZm9vKCl9Y2F0Y2h7cmV0dXJuITF9fSgpKSYmdHlwZW9mIGNvbnNvbGU8InUiJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdo'@; put 'aWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFIucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lm'@; put 'KFIuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihSLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksUi5wb29s'@; put 'U2l6ZT04MTkyLFIuZnJvbT1mdW5jdGlvbihQZSxiZSxBZSl7cmV0dXJuIHooUGUsYmUsQWUpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YoUi5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihSLFVpbnQ4QXJyYXkpLFIuYWxsb2M9ZnVuY3Rpb24o'@; put 'UGUsYmUsQWUpe3JldHVybiBmdW5jdGlvbiBJKFBlLGJlLEFlKXtyZXR1cm4gSyhQZSksUGU8PTA/TyhQZSk6dm9pZCAwIT09YmU/InN0cmluZyI9PXR5cGVvZiBBZT9PKFBlKS5maWxsKGJlLEFlKTpPKFBlKS5maWxsKGJlKTpPKFBlKX0oUGUsYmUsQWUpfSxSLmFsbG9jVW5zYWZlPWZ1bmN0'@; put 'aW9uKFBlKXtyZXR1cm4gayhQZSl9LFIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKFBlKXtyZXR1cm4gayhQZSl9LFIuaXNCdWZmZXI9ZnVuY3Rpb24oYmUpe3JldHVybiBudWxsIT1iZSYmITA9PT1iZS5faXNCdWZmZXImJmJlIT09Ui5wcm90b3R5cGV9LFIuY29tcGFyZT1mdW5jdGlvbihi'@; put 'ZSxBZSl7aWYoWWUoYmUsVWludDhBcnJheSkmJihiZT1SLmZyb20oYmUsYmUub2Zmc2V0LGJlLmJ5dGVMZW5ndGgpKSxZZShBZSxVaW50OEFycmF5KSYmKEFlPVIuZnJvbShBZSxBZS5vZmZzZXQsQWUuYnl0ZUxlbmd0aCkpLCFSLmlzQnVmZmVyKGJlKXx8IVIuaXNCdWZmZXIoQWUpKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoJ1RoZSAiYnVmMSIsICJidWYyIiBhcmd1bWVudHMgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKGJlPT09QWUpcmV0dXJuIDA7Zm9yKHZhciBUZT1iZS5sZW5ndGgscWU9QWUubGVuZ3RoLFhlPTAsVWU9TWF0aC5taW4oVGUscWUp'@; put 'O1hlPFVlOysrWGUpaWYoYmVbWGVdIT09QWVbWGVdKXtUZT1iZVtYZV0scWU9QWVbWGVdO2JyZWFrfXJldHVybiBUZTxxZT8tMTpxZTxUZT8xOjB9LFIuaXNFbmNvZGluZz1mdW5jdGlvbihiZSl7c3dpdGNoKFN0cmluZyhiZSkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6'@; put 'Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxSLmNvbmNhdD1mdW5jdGlvbihiZSxB'@; put 'ZSl7aWYoIUFycmF5LmlzQXJyYXkoYmUpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09YmUubGVuZ3RoKXJldHVybiBSLmFsbG9jKDApO3ZhciBUZTtpZih2b2lkIDA9PT1BZSlmb3IoQWU9MCxUZT0wO1Rl'@; put 'PGJlLmxlbmd0aDsrK1RlKUFlKz1iZVtUZV0ubGVuZ3RoO3ZhciBxZT1SLmFsbG9jVW5zYWZlKEFlKSxYZT0wO2ZvcihUZT0wO1RlPGJlLmxlbmd0aDsrK1RlKXt2YXIgVWU9YmVbVGVdO2lmKFllKFVlLFVpbnQ4QXJyYXkpKVhlK1VlLmxlbmd0aD5xZS5sZW5ndGg/Ui5mcm9tKFVlKS5jb3B5'@; put 'KHFlLFhlKTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChxZSxVZSxYZSk7ZWxzZXtpZighUi5pc0J1ZmZlcihVZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO1VlLmNvcHkocWUsWGUpfVhlKz1VZS5sZW5n'@; put 'dGh9cmV0dXJuIHFlfSxSLmJ5dGVMZW5ndGg9cSxSLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsUi5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIGJlPXRoaXMubGVuZ3RoO2lmKGJlJTIhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBs'@; put 'ZSBvZiAxNi1iaXRzIik7Zm9yKHZhciBBZT0wO0FlPGJlO0FlKz0yKXRlKHRoaXMsQWUsQWUrMSk7cmV0dXJuIHRoaXN9LFIucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciBiZT10aGlzLmxlbmd0aDtpZihiZSU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBt'@; put 'dXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2Zvcih2YXIgQWU9MDtBZTxiZTtBZSs9NCl0ZSh0aGlzLEFlLEFlKzMpLHRlKHRoaXMsQWUrMSxBZSsyKTtyZXR1cm4gdGhpc30sUi5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIGJlPXRoaXMubGVuZ3RoO2lmKGJlJTghPTAp'@; put 'dGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKHZhciBBZT0wO0FlPGJlO0FlKz04KXRlKHRoaXMsQWUsQWUrNyksdGUodGhpcyxBZSsxLEFlKzYpLHRlKHRoaXMsQWUrMixBZSs1KSx0ZSh0aGlzLEFlKzMsQWUrNCk7'@; put 'cmV0dXJuIHRoaXN9LFIucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPVIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGJlPXRoaXMubGVuZ3RoO3JldHVybiAwPT09YmU/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/SCh0aGlzLDAsYmUpOmVlLmFwcGx5KHRoaXMsYXJndW1lbnRz'@; put 'KX0sUi5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKGJlKXtpZighUi5pc0J1ZmZlcihiZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09YmV8fDA9PT1SLmNvbXBhcmUodGhpcyxiZSl9LFIucHJvdG90eXBlLmluc3BlY3Q9'@; put 'ZnVuY3Rpb24oKXt2YXIgYmU9IiIsQWU9SWUuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIGJlPXRoaXMudG9TdHJpbmcoImhleCIsMCxBZSkucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5BZSYmKGJlKz0iIC4uLiAiKSwiPEJ1ZmZlciAiK2JlKyI+In0sbSYm'@; put 'KFIucHJvdG90eXBlW21dPVIucHJvdG90eXBlLmluc3BlY3QpLFIucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24oYmUsQWUsVGUscWUsWGUpe2lmKFllKGJlLFVpbnQ4QXJyYXkpJiYoYmU9Ui5mcm9tKGJlLGJlLm9mZnNldCxiZS5ieXRlTGVuZ3RoKSksIVIuaXNCdWZmZXIoYmUpKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGJlKTtpZih2b2lkIDA9PT1BZSYmKEFlPTApLHZvaWQgMD09PVRlJiYoVGU9YmU/YmUubGVuZ3RoOjApLHZv'@; put 'aWQgMD09PXFlJiYocWU9MCksdm9pZCAwPT09WGUmJihYZT10aGlzLmxlbmd0aCksQWU8MHx8VGU+YmUubGVuZ3RofHxxZTwwfHxYZT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYocWU+PVhlJiZBZT49VGUpcmV0dXJuIDA7aWYocWU+'@; put 'PVhlKXJldHVybi0xO2lmKEFlPj1UZSlyZXR1cm4gMTtpZih0aGlzPT09YmUpcmV0dXJuIDA7Zm9yKHZhciBVZT0oWGU+Pj49MCktKHFlPj4+PTApLGh0PShUZT4+Pj0wKS0oQWU+Pj49MCksTWU9TWF0aC5taW4oVWUsaHQpLERlPXRoaXMuc2xpY2UocWUsWGUpLHplPWJlLnNsaWNlKEFlLFRl'@; put 'KSxvdD0wO290PE1lOysrb3QpaWYoRGVbb3RdIT09emVbb3RdKXtVZT1EZVtvdF0saHQ9emVbb3RdO2JyZWFrfXJldHVybiBVZTxodD8tMTpodDxVZT8xOjB9LFIucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKGJlLEFlLFRlKXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZihiZSxBZSxUZSl9'@; put 'LFIucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oYmUsQWUsVGUpe3JldHVybiBvZSh0aGlzLGJlLEFlLFRlLCEwKX0sUi5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24oYmUsQWUsVGUpe3JldHVybiBvZSh0aGlzLGJlLEFlLFRlLCExKX0sUi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rp'@; put 'b24oYmUsQWUsVGUscWUpe2lmKHZvaWQgMD09PUFlKXFlPSJ1dGY4IixUZT10aGlzLmxlbmd0aCxBZT0wO2Vsc2UgaWYodm9pZCAwPT09VGUmJiJzdHJpbmciPT10eXBlb2YgQWUpcWU9QWUsVGU9dGhpcy5sZW5ndGgsQWU9MDtlbHNle2lmKCFpc0Zpbml0ZShBZSkpdGhyb3cgbmV3IEVycm9y'@; put 'KCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO0FlPj4+PTAsaXNGaW5pdGUoVGUpPyhUZT4+Pj0wLHZvaWQgMD09PXFlJiYocWU9InV0ZjgiKSk6KHFlPVRlLFRlPXZvaWQgMCl9dmFyIFhlPXRoaXMubGVu'@; put 'Z3RoLUFlO2lmKCh2b2lkIDA9PT1UZXx8VGU+WGUpJiYoVGU9WGUpLGJlLmxlbmd0aD4wJiYoVGU8MHx8QWU8MCl8fEFlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO3FlfHwocWU9InV0ZjgiKTtmb3Io'@; put 'dmFyIFVlPSExOzspc3dpdGNoKHFlKXtjYXNlImhleCI6cmV0dXJuIGhlKHRoaXMsYmUsQWUsVGUpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHVlKHRoaXMsYmUsQWUsVGUpO2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGNlKHRoaXMsYmUsQWUs'@; put 'VGUpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gRyh0aGlzLGJlLEFlLFRlKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIGIodGhpcyxiZSxBZSxUZSk7ZGVmYXVsdDppZihVZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29k'@; put 'aW5nOiAiK3FlKTtxZT0oIiIrcWUpLnRvTG93ZXJDYXNlKCksVWU9ITB9fSxSLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O3ZhciBOPTQwOTY7ZnVuY3Rp'@; put 'b24gQyhQZSxiZSxBZSl7dmFyIFRlPSIiO0FlPU1hdGgubWluKFBlLmxlbmd0aCxBZSk7Zm9yKHZhciBxZT1iZTtxZTxBZTsrK3FlKVRlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZQZVtxZV0pO3JldHVybiBUZX1mdW5jdGlvbiBTKFBlLGJlLEFlKXt2YXIgVGU9IiI7QWU9TWF0aC5taW4o'@; put 'UGUubGVuZ3RoLEFlKTtmb3IodmFyIHFlPWJlO3FlPEFlOysrcWUpVGUrPVN0cmluZy5mcm9tQ2hhckNvZGUoUGVbcWVdKTtyZXR1cm4gVGV9ZnVuY3Rpb24gdihQZSxiZSxBZSl7dmFyIFRlPVBlLmxlbmd0aDsoIWJlfHxiZTwwKSYmKGJlPTApLCghQWV8fEFlPDB8fEFlPlRlKSYmKEFlPVRl'@; put 'KTtmb3IodmFyIHFlPSIiLFhlPWJlO1hlPEFlOysrWGUpcWUrPWx0W1BlW1hlXV07cmV0dXJuIHFlfWZ1bmN0aW9uIHAoUGUsYmUsQWUpe2Zvcih2YXIgVGU9UGUuc2xpY2UoYmUsQWUpLHFlPSIiLFhlPTA7WGU8VGUubGVuZ3RoLTE7WGUrPTIpcWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoVGVb'@; put 'WGVdKzI1NipUZVtYZSsxXSk7cmV0dXJuIHFlfWZ1bmN0aW9uIHcoUGUsYmUsQWUpe2lmKFBlJTEhPTB8fFBlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKFBlK2JlPkFlKXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9u'@; put 'ZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gSihQZSxiZSxBZSxUZSxxZSxYZSl7aWYoIVIuaXNCdWZmZXIoUGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihiZT5xZXx8YmU8WGUpdGhyb3cgbmV3IFJhbmdl'@; put 'RXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKEFlK1RlPlBlLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gbmUoUGUsYmUsQWUsVGUscWUsWGUpe2lmKEFlK1RlPlBlLmxlbmd0aCl0aHJvdyBuZXcg'@; put 'UmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoQWU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gZGUoUGUsYmUsQWUsVGUscWUpe3JldHVybiBiZT0rYmUsQWU+Pj49MCxxZXx8bmUoUGUsMCxBZSw0KSx4LndyaXRlKFBlLGJl'@; put 'LEFlLFRlLDIzLDQpLEFlKzR9ZnVuY3Rpb24gZmUoUGUsYmUsQWUsVGUscWUpe3JldHVybiBiZT0rYmUsQWU+Pj49MCxxZXx8bmUoUGUsMCxBZSw4KSx4LndyaXRlKFBlLGJlLEFlLFRlLDUyLDgpLEFlKzh9Ui5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24oYmUsQWUpe3ZhciBUZT10aGlzLmxl'@; put 'bmd0aDsoYmU9fn5iZSk8MD8oYmUrPVRlKTwwJiYoYmU9MCk6YmU+VGUmJihiZT1UZSksKEFlPXZvaWQgMD09PUFlP1RlOn5+QWUpPDA/KEFlKz1UZSk8MCYmKEFlPTApOkFlPlRlJiYoQWU9VGUpLEFlPGJlJiYoQWU9YmUpO3ZhciBxZT10aGlzLnN1YmFycmF5KGJlLEFlKTtyZXR1cm4gT2Jq'@; put 'ZWN0LnNldFByb3RvdHlwZU9mKHFlLFIucHJvdG90eXBlKSxxZX0sUi5wcm90b3R5cGUucmVhZFVpbnRMRT1SLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKGJlLEFlLFRlKXtiZT4+Pj0wLEFlPj4+PTAsVGV8fHcoYmUsQWUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgcWU9dGhpc1tiZV0s'@; put 'WGU9MSxVZT0wOysrVWU8QWUmJihYZSo9MjU2KTspcWUrPXRoaXNbYmUrVWVdKlhlO3JldHVybiBxZX0sUi5wcm90b3R5cGUucmVhZFVpbnRCRT1SLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKGJlLEFlLFRlKXtiZT4+Pj0wLEFlPj4+PTAsVGV8fHcoYmUsQWUsdGhpcy5sZW5ndGgp'@; put 'O2Zvcih2YXIgcWU9dGhpc1tiZSstLUFlXSxYZT0xO0FlPjAmJihYZSo9MjU2KTspcWUrPXRoaXNbYmUrLS1BZV0qWGU7cmV0dXJuIHFlfSxSLnByb3RvdHlwZS5yZWFkVWludDg9Ui5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKGJlLEFlKXtyZXR1cm4gYmU+Pj49MCxBZXx8dyhiZSwx'@; put 'LHRoaXMubGVuZ3RoKSx0aGlzW2JlXX0sUi5wcm90b3R5cGUucmVhZFVpbnQxNkxFPVIucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIGJlPj4+PTAsQWV8fHcoYmUsMix0aGlzLmxlbmd0aCksdGhpc1tiZV18dGhpc1tiZSsxXTw8OH0sUi5wcm90b3R5cGUu'@; put 'cmVhZFVpbnQxNkJFPVIucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIGJlPj4+PTAsQWV8fHcoYmUsMix0aGlzLmxlbmd0aCksdGhpc1tiZV08PDh8dGhpc1tiZSsxXX0sUi5wcm90b3R5cGUucmVhZFVpbnQzMkxFPVIucHJvdG90eXBlLnJlYWRVSW50MzJM'@; put 'RT1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIGJlPj4+PTAsQWV8fHcoYmUsNCx0aGlzLmxlbmd0aCksKHRoaXNbYmVdfHRoaXNbYmUrMV08PDh8dGhpc1tiZSsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbYmUrM119LFIucHJvdG90eXBlLnJlYWRVaW50MzJCRT1SLnByb3RvdHlwZS5yZWFkVUludDMy'@; put 'QkU9ZnVuY3Rpb24oYmUsQWUpe3JldHVybiBiZT4+Pj0wLEFlfHx3KGJlLDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbYmVdKyh0aGlzW2JlKzFdPDwxNnx0aGlzW2JlKzJdPDw4fHRoaXNbYmUrM10pfSxSLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24oYmUsQWUsVGUpe2JlPj4+'@; put 'PTAsQWU+Pj49MCxUZXx8dyhiZSxBZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBxZT10aGlzW2JlXSxYZT0xLFVlPTA7KytVZTxBZSYmKFhlKj0yNTYpOylxZSs9dGhpc1tiZStVZV0qWGU7cmV0dXJuIHFlPj0oWGUqPTEyOCkmJihxZS09TWF0aC5wb3coMiw4KkFlKSkscWV9LFIucHJvdG90eXBl'@; put 'LnJlYWRJbnRCRT1mdW5jdGlvbihiZSxBZSxUZSl7YmU+Pj49MCxBZT4+Pj0wLFRlfHx3KGJlLEFlLHRoaXMubGVuZ3RoKTtmb3IodmFyIHFlPUFlLFhlPTEsVWU9dGhpc1tiZSstLXFlXTtxZT4wJiYoWGUqPTI1Nik7KVVlKz10aGlzW2JlKy0tcWVdKlhlO3JldHVybiBVZT49KFhlKj0xMjgp'@; put 'JiYoVWUtPU1hdGgucG93KDIsOCpBZSkpLFVlfSxSLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIGJlPj4+PTAsQWV8fHcoYmUsMSx0aGlzLmxlbmd0aCksMTI4JnRoaXNbYmVdPy0xKigyNTUtdGhpc1tiZV0rMSk6dGhpc1tiZV19LFIucHJvdG90eXBlLnJlYWRJ'@; put 'bnQxNkxFPWZ1bmN0aW9uKGJlLEFlKXtiZT4+Pj0wLEFlfHx3KGJlLDIsdGhpcy5sZW5ndGgpO3ZhciBUZT10aGlzW2JlXXx0aGlzW2JlKzFdPDw4O3JldHVybiAzMjc2OCZUZT80Mjk0OTAxNzYwfFRlOlRlfSxSLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbihiZSxBZSl7YmU+Pj49'@; put 'MCxBZXx8dyhiZSwyLHRoaXMubGVuZ3RoKTt2YXIgVGU9dGhpc1tiZSsxXXx0aGlzW2JlXTw8ODtyZXR1cm4gMzI3NjgmVGU/NDI5NDkwMTc2MHxUZTpUZX0sUi5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24oYmUsQWUpe3JldHVybiBiZT4+Pj0wLEFlfHx3KGJlLDQsdGhpcy5sZW5n'@; put 'dGgpLHRoaXNbYmVdfHRoaXNbYmUrMV08PDh8dGhpc1tiZSsyXTw8MTZ8dGhpc1tiZSszXTw8MjR9LFIucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKGJlLEFlKXtyZXR1cm4gYmU+Pj49MCxBZXx8dyhiZSw0LHRoaXMubGVuZ3RoKSx0aGlzW2JlXTw8MjR8dGhpc1tiZSsxXTw8MTZ8'@; put 'dGhpc1tiZSsyXTw8OHx0aGlzW2JlKzNdfSxSLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIGJlPj4+PTAsQWV8fHcoYmUsNCx0aGlzLmxlbmd0aCkseC5yZWFkKHRoaXMsYmUsITAsMjMsNCl9LFIucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uKGJl'@; put 'LEFlKXtyZXR1cm4gYmU+Pj49MCxBZXx8dyhiZSw0LHRoaXMubGVuZ3RoKSx4LnJlYWQodGhpcyxiZSwhMSwyMyw0KX0sUi5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKGJlLEFlKXtyZXR1cm4gYmU+Pj49MCxBZXx8dyhiZSw4LHRoaXMubGVuZ3RoKSx4LnJlYWQodGhpcyxiZSwh'@; put 'MCw1Miw4KX0sUi5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKGJlLEFlKXtyZXR1cm4gYmU+Pj49MCxBZXx8dyhiZSw4LHRoaXMubGVuZ3RoKSx4LnJlYWQodGhpcyxiZSwhMSw1Miw4KX0sUi5wcm90b3R5cGUud3JpdGVVaW50TEU9Ui5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVu'@; put 'Y3Rpb24oYmUsQWUsVGUscWUpe2JlPStiZSxBZT4+Pj0wLFRlPj4+PTAscWV8fEoodGhpcyxiZSxBZSxUZSxNYXRoLnBvdygyLDgqVGUpLTEsMCk7dmFyIFVlPTEsaHQ9MDtmb3IodGhpc1tBZV09MjU1JmJlOysraHQ8VGUmJihVZSo9MjU2KTspdGhpc1tBZStodF09YmUvVWUmMjU1O3JldHVy'@; put 'biBBZStUZX0sUi5wcm90b3R5cGUud3JpdGVVaW50QkU9Ui5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24oYmUsQWUsVGUscWUpe2JlPStiZSxBZT4+Pj0wLFRlPj4+PTAscWV8fEoodGhpcyxiZSxBZSxUZSxNYXRoLnBvdygyLDgqVGUpLTEsMCk7dmFyIFVlPVRlLTEsaHQ9MTtmb3Io'@; put 'dGhpc1tBZStVZV09MjU1JmJlOy0tVWU+PTAmJihodCo9MjU2KTspdGhpc1tBZStVZV09YmUvaHQmMjU1O3JldHVybiBBZStUZX0sUi5wcm90b3R5cGUud3JpdGVVaW50OD1SLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKGJlLEFlLFRlKXtyZXR1cm4gYmU9K2JlLEFlPj4+PTAsVGV8'@; put 'fEoodGhpcyxiZSxBZSwxLDI1NSwwKSx0aGlzW0FlXT0yNTUmYmUsQWUrMX0sUi5wcm90b3R5cGUud3JpdGVVaW50MTZMRT1SLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKGJlLEFlLFRlKXtyZXR1cm4gYmU9K2JlLEFlPj4+PTAsVGV8fEoodGhpcyxiZSxBZSwyLDY1NTM1LDAp'@; put 'LHRoaXNbQWVdPTI1NSZiZSx0aGlzW0FlKzFdPWJlPj4+OCxBZSsyfSxSLnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPVIucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24oYmUsQWUsVGUpe3JldHVybiBiZT0rYmUsQWU+Pj49MCxUZXx8Sih0aGlzLGJlLEFlLDIsNjU1MzUsMCksdGhp'@; put 'c1tBZV09YmU+Pj44LHRoaXNbQWUrMV09MjU1JmJlLEFlKzJ9LFIucHJvdG90eXBlLndyaXRlVWludDMyTEU9Ui5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihiZSxBZSxUZSl7cmV0dXJuIGJlPStiZSxBZT4+Pj0wLFRlfHxKKHRoaXMsYmUsQWUsNCw0Mjk0OTY3Mjk1LDApLHRo'@; put 'aXNbQWUrM109YmU+Pj4yNCx0aGlzW0FlKzJdPWJlPj4+MTYsdGhpc1tBZSsxXT1iZT4+PjgsdGhpc1tBZV09MjU1JmJlLEFlKzR9LFIucHJvdG90eXBlLndyaXRlVWludDMyQkU9Ui5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbihiZSxBZSxUZSl7cmV0dXJuIGJlPStiZSxBZT4+'@; put 'Pj0wLFRlfHxKKHRoaXMsYmUsQWUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbQWVdPWJlPj4+MjQsdGhpc1tBZSsxXT1iZT4+PjE2LHRoaXNbQWUrMl09YmU+Pj44LHRoaXNbQWUrM109MjU1JmJlLEFlKzR9LFIucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24oYmUsQWUsVGUscWUpe2lmKGJl'@; put 'PStiZSxBZT4+Pj0wLCFxZSl7dmFyIFhlPU1hdGgucG93KDIsOCpUZS0xKTtKKHRoaXMsYmUsQWUsVGUsWGUtMSwtWGUpfXZhciBVZT0wLGh0PTEsTWU9MDtmb3IodGhpc1tBZV09MjU1JmJlOysrVWU8VGUmJihodCo9MjU2KTspYmU8MCYmMD09PU1lJiYwIT09dGhpc1tBZStVZS0xXSYmKE1l'@; put 'PTEpLHRoaXNbQWUrVWVdPShiZS9odD4+MCktTWUmMjU1O3JldHVybiBBZStUZX0sUi5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihiZSxBZSxUZSxxZSl7aWYoYmU9K2JlLEFlPj4+PTAsIXFlKXt2YXIgWGU9TWF0aC5wb3coMiw4KlRlLTEpO0oodGhpcyxiZSxBZSxUZSxYZS0xLC1Y'@; put 'ZSl9dmFyIFVlPVRlLTEsaHQ9MSxNZT0wO2Zvcih0aGlzW0FlK1VlXT0yNTUmYmU7LS1VZT49MCYmKGh0Kj0yNTYpOyliZTwwJiYwPT09TWUmJjAhPT10aGlzW0FlK1VlKzFdJiYoTWU9MSksdGhpc1tBZStVZV09KGJlL2h0Pj4wKS1NZSYyNTU7cmV0dXJuIEFlK1RlfSxSLnByb3RvdHlwZS53'@; put 'cml0ZUludDg9ZnVuY3Rpb24oYmUsQWUsVGUpe3JldHVybiBiZT0rYmUsQWU+Pj49MCxUZXx8Sih0aGlzLGJlLEFlLDEsMTI3LC0xMjgpLGJlPDAmJihiZT0yNTUrYmUrMSksdGhpc1tBZV09MjU1JmJlLEFlKzF9LFIucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbihiZSxBZSxUZSl7'@; put 'cmV0dXJuIGJlPStiZSxBZT4+Pj0wLFRlfHxKKHRoaXMsYmUsQWUsMiwzMjc2NywtMzI3NjgpLHRoaXNbQWVdPTI1NSZiZSx0aGlzW0FlKzFdPWJlPj4+OCxBZSsyfSxSLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24oYmUsQWUsVGUpe3JldHVybiBiZT0rYmUsQWU+Pj49MCxUZXx8'@; put 'Sih0aGlzLGJlLEFlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW0FlXT1iZT4+PjgsdGhpc1tBZSsxXT0yNTUmYmUsQWUrMn0sUi5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKGJlLEFlLFRlKXtyZXR1cm4gYmU9K2JlLEFlPj4+PTAsVGV8fEoodGhpcyxiZSxBZSw0LDIxNDc0ODM2NDcs'@; put 'LTIxNDc0ODM2NDgpLHRoaXNbQWVdPTI1NSZiZSx0aGlzW0FlKzFdPWJlPj4+OCx0aGlzW0FlKzJdPWJlPj4+MTYsdGhpc1tBZSszXT1iZT4+PjI0LEFlKzR9LFIucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbihiZSxBZSxUZSl7cmV0dXJuIGJlPStiZSxBZT4+Pj0wLFRlfHxKKHRo'@; put 'aXMsYmUsQWUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSxiZTwwJiYoYmU9NDI5NDk2NzI5NStiZSsxKSx0aGlzW0FlXT1iZT4+PjI0LHRoaXNbQWUrMV09YmU+Pj4xNix0aGlzW0FlKzJdPWJlPj4+OCx0aGlzW0FlKzNdPTI1NSZiZSxBZSs0fSxSLnByb3RvdHlwZS53cml0ZUZsb2F0TEU9'@; put 'ZnVuY3Rpb24oYmUsQWUsVGUpe3JldHVybiBkZSh0aGlzLGJlLEFlLCEwLFRlKX0sUi5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKGJlLEFlLFRlKXtyZXR1cm4gZGUodGhpcyxiZSxBZSwhMSxUZSl9LFIucHJvdG90eXBlLndyaXRlRG91YmxlTEU9ZnVuY3Rpb24oYmUsQWUsVGUp'@; put 'e3JldHVybiBmZSh0aGlzLGJlLEFlLCEwLFRlKX0sUi5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbihiZSxBZSxUZSl7cmV0dXJuIGZlKHRoaXMsYmUsQWUsITEsVGUpfSxSLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGJlLEFlLFRlLHFlKXtpZighUi5pc0J1ZmZlcihiZSkpdGhy'@; put 'b3cgbmV3IFR5cGVFcnJvcigiYXJndW1lbnQgc2hvdWxkIGJlIGEgQnVmZmVyIik7aWYoVGV8fChUZT0wKSwhcWUmJjAhPT1xZSYmKHFlPXRoaXMubGVuZ3RoKSxBZT49YmUubGVuZ3RoJiYoQWU9YmUubGVuZ3RoKSxBZXx8KEFlPTApLHFlPjAmJnFlPFRlJiYocWU9VGUpLHFlPT09VGV8fDA9'@; put 'PT1iZS5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZihBZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYoVGU8MHx8VGU+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtp'@; put 'ZihxZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO3FlPnRoaXMubGVuZ3RoJiYocWU9dGhpcy5sZW5ndGgpLGJlLmxlbmd0aC1BZTxxZS1UZSYmKHFlPWJlLmxlbmd0aC1BZStUZSk7dmFyIFhlPXFlLVRlO3JldHVybiB0aGlzPT09YmUmJiJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluP3RoaXMuY29weVdpdGhpbihBZSxUZSxxZSk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoYmUsdGhpcy5zdWJhcnJheShUZSxxZSksQWUpLFhlfSxSLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKGJlLEFl'@; put 'LFRlLHFlKXtpZigic3RyaW5nIj09dHlwZW9mIGJlKXtpZigic3RyaW5nIj09dHlwZW9mIEFlPyhxZT1BZSxBZT0wLFRlPXRoaXMubGVuZ3RoKToic3RyaW5nIj09dHlwZW9mIFRlJiYocWU9VGUsVGU9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PXFlJiYic3RyaW5nIiE9dHlwZW9mIHFlKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmciKTtpZigic3RyaW5nIj09dHlwZW9mIHFlJiYhUi5pc0VuY29kaW5nKHFlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3FlKTtpZigxPT09YmUubGVuZ3RoKXt2YXIgWGU9YmUuY2hhckNv'@; put 'ZGVBdCgwKTsoInV0ZjgiPT09cWUmJlhlPDEyOHx8ImxhdGluMSI9PT1xZSkmJihiZT1YZSl9fWVsc2UibnVtYmVyIj09dHlwZW9mIGJlP2JlJj0yNTU6ImJvb2xlYW4iPT10eXBlb2YgYmUmJihiZT1OdW1iZXIoYmUpKTtpZihBZTwwfHx0aGlzLmxlbmd0aDxBZXx8dGhpcy5sZW5ndGg8VGUp'@; put 'dGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKFRlPD1BZSlyZXR1cm4gdGhpczt2YXIgVWU7aWYoQWU+Pj49MCxUZT12b2lkIDA9PT1UZT90aGlzLmxlbmd0aDpUZT4+PjAsYmV8fChiZT0wKSwibnVtYmVyIj09dHlwZW9mIGJlKWZvcihVZT1BZTtVZTxUZTsr'@; put 'K1VlKXRoaXNbVWVdPWJlO2Vsc2V7dmFyIGh0PVIuaXNCdWZmZXIoYmUpP2JlOlIuZnJvbShiZSxxZSksTWU9aHQubGVuZ3RoO2lmKDA9PT1NZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgIicrYmUrJyIgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQgInZhbHVlIicpO2ZvcihVZT0w'@; put 'O1VlPFRlLUFlOysrVWUpdGhpc1tVZStBZV09aHRbVWUlTWVdfXJldHVybiB0aGlzfTt2YXIgeGU9L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiBGZShQZSxiZSl7YmU9YmV8fDEvMDtmb3IodmFyIEFlLFRlPVBlLmxlbmd0aCxxZT1udWxsLFhlPVtdLFVlPTA7VWU8VGU7KytVZSl7aWYo'@; put 'KEFlPVBlLmNoYXJDb2RlQXQoVWUpKT41NTI5NSYmQWU8NTczNDQpe2lmKCFxZSl7aWYoQWU+NTYzMTkpeyhiZS09Myk+LTEmJlhlLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKFVlKzE9PT1UZSl7KGJlLT0zKT4tMSYmWGUucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9cWU9QWU7'@; put 'Y29udGludWV9aWYoQWU8NTYzMjApeyhiZS09Myk+LTEmJlhlLnB1c2goMjM5LDE5MSwxODkpLHFlPUFlO2NvbnRpbnVlfUFlPTY1NTM2KyhxZS01NTI5Njw8MTB8QWUtNTYzMjApfWVsc2UgcWUmJihiZS09Myk+LTEmJlhlLnB1c2goMjM5LDE5MSwxODkpO2lmKHFlPW51bGwsQWU8MTI4KXtp'@; put 'ZigoYmUtPTEpPDApYnJlYWs7WGUucHVzaChBZSl9ZWxzZSBpZihBZTwyMDQ4KXtpZigoYmUtPTIpPDApYnJlYWs7WGUucHVzaChBZT4+NnwxOTIsNjMmQWV8MTI4KX1lbHNlIGlmKEFlPDY1NTM2KXtpZigoYmUtPTMpPDApYnJlYWs7WGUucHVzaChBZT4+MTJ8MjI0LEFlPj42JjYzfDEyOCw2'@; put 'MyZBZXwxMjgpfWVsc2V7aWYoIShBZTwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKChiZS09NCk8MClicmVhaztYZS5wdXNoKEFlPj4xOHwyNDAsQWU+PjEyJjYzfDEyOCxBZT4+NiY2M3wxMjgsNjMmQWV8MTI4KX19cmV0dXJuIFhlfWZ1bmN0aW9u'@; put 'IFdlKFBlKXtyZXR1cm4gYWUudG9CeXRlQXJyYXkoZnVuY3Rpb24gTGUoUGUpe2lmKChQZT0oUGU9UGUuc3BsaXQoIj0iKVswXSkudHJpbSgpLnJlcGxhY2UoeGUsIiIpKS5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO1BlLmxlbmd0aCU0IT0wOylQZSs9Ij0iO3JldHVybiBQZX0oUGUpKX1mdW5j'@; put 'dGlvbiBLZShQZSxiZSxBZSxUZSl7Zm9yKHZhciBxZT0wO3FlPFRlJiYhKHFlK0FlPj1iZS5sZW5ndGh8fHFlPj1QZS5sZW5ndGgpOysrcWUpYmVbcWUrQWVdPVBlW3FlXTtyZXR1cm4gcWV9ZnVuY3Rpb24gWWUoUGUsYmUpe3JldHVybiBQZSBpbnN0YW5jZW9mIGJlfHxudWxsIT1QZSYmbnVs'@; put 'bCE9UGUuY29uc3RydWN0b3ImJm51bGwhPVBlLmNvbnN0cnVjdG9yLm5hbWUmJlBlLmNvbnN0cnVjdG9yLm5hbWU9PT1iZS5uYW1lfWZ1bmN0aW9uIFFlKFBlKXtyZXR1cm4gUGUhPVBlfXZhciBsdD1mdW5jdGlvbigpe2Zvcih2YXIgUGU9IjAxMjM0NTY3ODlhYmNkZWYiLGJlPW5ldyBBcnJh'@; put 'eSgyNTYpLEFlPTA7QWU8MTY7KytBZSlmb3IodmFyIFRlPTE2KkFlLHFlPTA7cWU8MTY7KytxZSliZVtUZStxZV09UGVbQWVdK1BlW3FlXTtyZXR1cm4gYmV9KCl9LDg2NDIwOihhdCxJZSxGKT0+e3ZhciBhZT1GKDg0MykuQnVmZmVyLHg9Rig1MTc5MykuVHJhbnNmb3JtLG09Rig3MjAyNCku'@; put 'cztmdW5jdGlvbiBNKE8pe3guY2FsbCh0aGlzKSx0aGlzLmhhc2hNb2RlPSJzdHJpbmciPT10eXBlb2YgTyx0aGlzLmhhc2hNb2RlP3RoaXNbT109dGhpcy5fZmluYWxPckRpZ2VzdDp0aGlzLmZpbmFsPXRoaXMuX2ZpbmFsT3JEaWdlc3QsdGhpcy5fZmluYWwmJih0aGlzLl9fZmluYWw9dGhp'@; put 'cy5fZmluYWwsdGhpcy5fZmluYWw9bnVsbCksdGhpcy5fZGVjb2Rlcj1udWxsLHRoaXMuX2VuY29kaW5nPW51bGx9Rig2NjY5OCkoTSx4KSxNLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oTyxSLHopeyJzdHJpbmciPT10eXBlb2YgTyYmKE89YWUuZnJvbShPLFIpKTt2YXIgSz10aGlzLl91'@; put 'cGRhdGUoTyk7cmV0dXJuIHRoaXMuaGFzaE1vZGU/dGhpczooeiYmKEs9dGhpcy5fdG9TdHJpbmcoSyx6KSksSyl9LE0ucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKCl7fSxNLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcg'@; put 'dG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LE0ucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0sTS5wcm90b3R5cGUuc2V0QUFEPWZ1bmN0aW9u'@; put 'KCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGFhZCBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxNLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKE8sUix6KXt2YXIgSzt0cnl7dGhpcy5oYXNoTW9kZT90aGlzLl91cGRhdGUoTyk6dGhpcy5wdXNoKHRoaXMuX3VwZGF0ZShP'@; put 'KSl9Y2F0Y2goSSl7Sz1JfWZpbmFsbHl7eihLKX19LE0ucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbihPKXt2YXIgUjt0cnl7dGhpcy5wdXNoKHRoaXMuX19maW5hbCgpKX1jYXRjaCh6KXtSPXp9TyhSKX0sTS5wcm90b3R5cGUuX2ZpbmFsT3JEaWdlc3Q9ZnVuY3Rpb24oTyl7dmFyIFI9dGhp'@; put 'cy5fX2ZpbmFsKCl8fGFlLmFsbG9jKDApO3JldHVybiBPJiYoUj10aGlzLl90b1N0cmluZyhSLE8sITApKSxSfSxNLnByb3RvdHlwZS5fdG9TdHJpbmc9ZnVuY3Rpb24oTyxSLHope2lmKHRoaXMuX2RlY29kZXJ8fCh0aGlzLl9kZWNvZGVyPW5ldyBtKFIpLHRoaXMuX2VuY29kaW5nPVIpLHRo'@; put 'aXMuX2VuY29kaW5nIT09Uil0aHJvdyBuZXcgRXJyb3IoImNhbid0IHN3aXRjaCBlbmNvZGluZ3MiKTt2YXIgSz10aGlzLl9kZWNvZGVyLndyaXRlKE8pO3JldHVybiB6JiYoSys9dGhpcy5fZGVjb2Rlci5lbmQoKSksS30sYXQuZXhwb3J0cz1NfSwzODg0MDooYXQsSWUsRik9Pnt2YXIgYWU9'@; put 'Rig4ODY1MSkseD1GKDMxODUpO2F0LmV4cG9ydHM9ZnVuY3Rpb24oUil7cmV0dXJuIG5ldyBsZShSKX07dmFyIG09e3NlY3AyNTZrMTp7bmFtZToic2VjcDI1NmsxIixieXRlTGVuZ3RoOjMyfSxzZWNwMjI0cjE6e25hbWU6InAyMjQiLGJ5dGVMZW5ndGg6Mjh9LHByaW1lMjU2djE6e25hbWU6'@; put 'InAyNTYiLGJ5dGVMZW5ndGg6MzJ9LHByaW1lMTkydjE6e25hbWU6InAxOTIiLGJ5dGVMZW5ndGg6MjR9LGVkMjU1MTk6e25hbWU6ImVkMjU1MTkiLGJ5dGVMZW5ndGg6MzJ9LHNlY3AzODRyMTp7bmFtZToicDM4NCIsYnl0ZUxlbmd0aDo0OH0sc2VjcDUyMXIxOntuYW1lOiJwNTIxIixieXRl'@; put 'TGVuZ3RoOjY2fX07ZnVuY3Rpb24gbGUoTyl7dGhpcy5jdXJ2ZVR5cGU9bVtPXSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVUeXBlPXtuYW1lOk99KSx0aGlzLmN1cnZlPW5ldyBhZS5lYyh0aGlzLmN1cnZlVHlwZS5uYW1lKSx0aGlzLmtleXM9dm9pZCAwfWZ1bmN0aW9uIE0oTyxSLHop'@; put 'e0FycmF5LmlzQXJyYXkoTyl8fChPPU8udG9BcnJheSgpKTt2YXIgSz1uZXcgQnVmZmVyKE8pO2lmKHomJksubGVuZ3RoPHope3ZhciBJPW5ldyBCdWZmZXIoei1LLmxlbmd0aCk7SS5maWxsKDApLEs9QnVmZmVyLmNvbmNhdChbSSxLXSl9cmV0dXJuIFI/Sy50b1N0cmluZyhSKTpLfW0ucDIy'@; put 'ND1tLnNlY3AyMjRyMSxtLnAyNTY9bS5zZWNwMjU2cjE9bS5wcmltZTI1NnYxLG0ucDE5Mj1tLnNlY3AxOTJyMT1tLnByaW1lMTkydjEsbS5wMzg0PW0uc2VjcDM4NHIxLG0ucDUyMT1tLnNlY3A1MjFyMSxsZS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKE8sUil7cmV0dXJuIHRo'@; put 'aXMua2V5cz10aGlzLmN1cnZlLmdlbktleVBhaXIoKSx0aGlzLmdldFB1YmxpY0tleShPLFIpfSxsZS5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihPLFIseil7cmV0dXJuIFI9Unx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihPKXx8KE89bmV3IEJ1ZmZlcihPLFIpKSxNKHRoaXMu'@; put 'Y3VydmUua2V5RnJvbVB1YmxpYyhPKS5nZXRQdWJsaWMoKS5tdWwodGhpcy5rZXlzLmdldFByaXZhdGUoKSkuZ2V0WCgpLHosdGhpcy5jdXJ2ZVR5cGUuYnl0ZUxlbmd0aCl9LGxlLnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9ZnVuY3Rpb24oTyxSKXt2YXIgej10aGlzLmtleXMuZ2V0UHVibGlj'@; put 'KCJjb21wcmVzc2VkIj09PVIsITApO3JldHVybiJoeWJyaWQiPT09UiYmKHpbMF09elt6Lmxlbmd0aC0xXSUyPzc6NiksTSh6LE8pfSxsZS5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleT1mdW5jdGlvbihPKXtyZXR1cm4gTSh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpLE8pfSxsZS5wcm90b3R5cGUu'@; put 'c2V0UHVibGljS2V5PWZ1bmN0aW9uKE8sUil7cmV0dXJuIFI9Unx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihPKXx8KE89bmV3IEJ1ZmZlcihPLFIpKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyhPKSx0aGlzfSxsZS5wcm90b3R5cGUuc2V0UHJpdmF0ZUtleT1mdW5jdGlvbihPLFIpe1I9Unx8'@; put 'InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihPKXx8KE89bmV3IEJ1ZmZlcihPLFIpKTt2YXIgej1uZXcgeChPKTtyZXR1cm4gej16LnRvU3RyaW5nKDE2KSx0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5rZXlzLl9pbXBvcnRQcml2YXRlKHopLHRoaXN9fSwzMTg1OmZ1bmN0'@; put 'aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSx4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShHLGIpe2lmKCFHKXRocm93IG5ldyBFcnJvcihifHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGxlKEcsYil7Ry5zdXBlcl89Yjt2YXIgRD1mdW5jdGlvbigpe307RC5wcm90b3R5cGU9Yi5w'@; put 'cm90b3R5cGUsRy5wcm90b3R5cGU9bmV3IEQsRy5wcm90b3R5cGUuY29uc3RydWN0b3I9R31mdW5jdGlvbiBNKEcsYixEKXtpZihNLmlzQk4oRykpcmV0dXJuIEc7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PUcmJigo'@; put 'ImxlIj09PWJ8fCJiZSI9PT1iKSYmKEQ9YixiPTEwKSx0aGlzLl9pbml0KEd8fDAsYnx8MTAsRHx8ImJlIikpfXZhciBPOyJvYmplY3QiPT10eXBlb2YgYWU/YWUuZXhwb3J0cz1NOnguQk49TSxNLkJOPU0sTS53b3JkU2l6ZT0yNjt0cnl7Tz10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIHdp'@; put 'bmRvdy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Rig4NjIzKS5CdWZmZXJ9Y2F0Y2h7fWZ1bmN0aW9uIFIoRyxiKXt2YXIgRD1HLmNoYXJDb2RlQXQoYik7cmV0dXJuIEQ+PTY1JiZEPD03MD9ELTU1OkQ+PTk3JiZEPD0xMDI/RC04NzpELTQ4JjE1fWZ1bmN0aW9uIHooRyxiLEQpe3ZhciBI'@; put 'PVIoRyxEKTtyZXR1cm4gRC0xPj1iJiYoSHw9UihHLEQtMSk8PDQpLEh9ZnVuY3Rpb24gSyhHLGIsRCxIKXtmb3IodmFyIE49MCxnPU1hdGgubWluKEcubGVuZ3RoLEQpLEM9YjtDPGc7QysrKXt2YXIgUz1HLmNoYXJDb2RlQXQoQyktNDg7Tio9SCxOKz1TPj00OT9TLTQ5KzEwOlM+PTE3P1Mt'@; put 'MTcrMTA6U31yZXR1cm4gTn1NLmlzQk49ZnVuY3Rpb24oYil7cmV0dXJuIGIgaW5zdGFuY2VvZiBNfHxudWxsIT09YiYmIm9iamVjdCI9PXR5cGVvZiBiJiZiLmNvbnN0cnVjdG9yLndvcmRTaXplPT09TS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShiLndvcmRzKX0sTS5tYXg9ZnVuY3Rpb24o'@; put 'YixEKXtyZXR1cm4gYi5jbXAoRCk+MD9iOkR9LE0ubWluPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIGIuY21wKEQpPDA/YjpEfSxNLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihiLEQsSCl7aWYoIm51bWJlciI9PXR5cGVvZiBiKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKGIsRCxIKTtpZigib2Jq'@; put 'ZWN0Ij09dHlwZW9mIGIpcmV0dXJuIHRoaXMuX2luaXRBcnJheShiLEQsSCk7ImhleCI9PT1EJiYoRD0xNiksbShEPT09KDB8RCkmJkQ+PTImJkQ8PTM2KTt2YXIgTj0wOyItIj09PShiPWIudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoTisrLHRoaXMubmVnYXRpdmU9MSks'@; put 'TjxiLmxlbmd0aCYmKDE2PT09RD90aGlzLl9wYXJzZUhleChiLE4sSCk6KHRoaXMuX3BhcnNlQmFzZShiLEQsTiksImxlIj09PUgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxELEgpKSl9LE0ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKGIsRCxIKXtiPDAmJih0aGlz'@; put 'Lm5lZ2F0aXZlPTEsYj0tYiksYjw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmYl0sdGhpcy5sZW5ndGg9MSk6Yjw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZiLGIvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihtKGI8OTAwNzE5OTI1NDc0'@; put 'MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmYixiLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1IJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksRCxIKX0sTS5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihiLEQsSCl7aWYobSgibnVtYmVy'@; put 'Ij09dHlwZW9mIGIubGVuZ3RoKSxiLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChiLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBOPTA7Tjx0aGlzLmxlbmd0'@; put 'aDtOKyspdGhpcy53b3Jkc1tOXT0wO3ZhciBnLEMsUz0wO2lmKCJiZSI9PT1IKWZvcihOPWIubGVuZ3RoLTEsZz0wO04+PTA7Ti09Myl0aGlzLndvcmRzW2ddfD0oQz1iW05dfGJbTi0xXTw8OHxiW04tMl08PDE2KTw8UyY2NzEwODg2Myx0aGlzLndvcmRzW2crMV09Qz4+PjI2LVMmNjcxMDg4'@; put 'NjMsKFMrPTI0KT49MjYmJihTLT0yNixnKyspO2Vsc2UgaWYoImxlIj09PUgpZm9yKE49MCxnPTA7TjxiLmxlbmd0aDtOKz0zKXRoaXMud29yZHNbZ118PShDPWJbTl18YltOKzFdPDw4fGJbTisyXTw8MTYpPDxTJjY3MTA4ODYzLHRoaXMud29yZHNbZysxXT1DPj4+MjYtUyY2NzEwODg2Mywo'@; put 'Uys9MjQpPj0yNiYmKFMtPTI2LGcrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKGIsRCxIKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKGIubGVuZ3RoLUQpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIE49'@; put 'MDtOPHRoaXMubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPTA7dmFyIFMsZz0wLEM9MDtpZigiYmUiPT09SClmb3IoTj1iLmxlbmd0aC0xO04+PUQ7Ti09MilTPXooYixELE4pPDxnLHRoaXMud29yZHNbQ118PTY3MTA4ODYzJlMsZz49MTg/KGctPTE4LHRoaXMud29yZHNbQys9MV18PVM+Pj4y'@; put 'Nik6Zys9ODtlbHNlIGZvcihOPShiLmxlbmd0aC1EKSUyPT0wP0QrMTpEO048Yi5sZW5ndGg7Tis9MilTPXooYixELE4pPDxnLHRoaXMud29yZHNbQ118PTY3MTA4ODYzJlMsZz49MTg/KGctPTE4LHRoaXMud29yZHNbQys9MV18PVM+Pj4yNik6Zys9ODt0aGlzLnN0cmlwKCl9LE0ucHJvdG90'@; put 'eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oYixELEgpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBOPTAsZz0xO2c8PTY3MTA4ODYzO2cqPUQpTisrO04tLSxnPWcvRHwwO2Zvcih2YXIgQz1iLmxlbmd0aC1ILFM9QyVOLHY9TWF0aC5taW4oQyxDLVMpK0gscD0wLHc9SDt3'@; put 'PHY7dys9TilwPUsoYix3LHcrTixEKSx0aGlzLmltdWxuKGcpLHRoaXMud29yZHNbMF0rcDw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1wOnRoaXMuX2lhZGRuKHApO2lmKDAhPT1TKXt2YXIgSj0xO2ZvcihwPUsoYix3LGIubGVuZ3RoLEQpLHc9MDt3PFM7dysrKUoqPUQ7dGhpcy5pbXVsbihK'@; put 'KSx0aGlzLndvcmRzWzBdK3A8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9cDp0aGlzLl9pYWRkbihwKX10aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oYil7Yi53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgRD0wO0Q8dGhpcy5sZW5ndGg7RCsrKWIu'@; put 'd29yZHNbRF09dGhpcy53b3Jkc1tEXTtiLmxlbmd0aD10aGlzLmxlbmd0aCxiLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsYi5yZWQ9dGhpcy5yZWR9LE0ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IE0obnVsbCk7cmV0dXJuIHRoaXMuY29weShiKSxifSxNLnByb3RvdHlw'@; put 'ZS5fZXhwYW5kPWZ1bmN0aW9uKGIpe2Zvcig7dGhpcy5sZW5ndGg8YjspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxNLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRo'@; put 'aXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LE0ucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxNLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBJPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAw'@; put 'MDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAw'@; put 'MDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGs9WzAsMCwyNSwxNiwxMiwxMSwxMCw5'@; put 'LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sRT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0'@; put 'ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5'@; put 'MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBWKEcsYixEKXtELm5lZ2F0aXZlPWIubmVnYXRpdmVeRy5uZWdhdGl2ZTt2YXIgSD1HLmxlbmd0aCtiLmxlbmd0aHwwO0QubGVuZ3RoPUgsSD1ILTF8MDt2YXIgTj0wfEcud29yZHNbMF0sZz0wfGIud29yZHNbMF0s'@; put 'Qz1OKmcsdj1DLzY3MTA4ODY0fDA7RC53b3Jkc1swXT02NzEwODg2MyZDO2Zvcih2YXIgcD0xO3A8SDtwKyspe2Zvcih2YXIgdz12Pj4+MjYsSj02NzEwODg2MyZ2LG5lPU1hdGgubWluKHAsYi5sZW5ndGgtMSksZGU9TWF0aC5tYXgoMCxwLUcubGVuZ3RoKzEpO2RlPD1uZTtkZSsrKXcrPShD'@; put 'PShOPTB8Ry53b3Jkc1twLWRlfDBdKSooZz0wfGIud29yZHNbZGVdKStKKS82NzEwODg2NHwwLEo9NjcxMDg4NjMmQztELndvcmRzW3BdPTB8Six2PTB8d31yZXR1cm4gMCE9PXY/RC53b3Jkc1twXT0wfHY6RC5sZW5ndGgtLSxELnN0cmlwKCl9TS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rp'@; put 'b24oYixEKXt2YXIgSDtpZihEPTB8RHx8MSwxNj09PShiPWJ8fDEwKXx8ImhleCI9PT1iKXtIPSIiO2Zvcih2YXIgTj0wLGc9MCxDPTA7Qzx0aGlzLmxlbmd0aDtDKyspe3ZhciBTPXRoaXMud29yZHNbQ10sdj0oMTY3NzcyMTUmKFM8PE58ZykpLnRvU3RyaW5nKDE2KTtIPTAhPShnPVM+Pj4y'@; put 'NC1OJjE2Nzc3MjE1KXx8QyE9PXRoaXMubGVuZ3RoLTE/SVs2LXYubGVuZ3RoXSt2K0g6ditILChOKz0yKT49MjYmJihOLT0yNixDLS0pfWZvcigwIT09ZyYmKEg9Zy50b1N0cmluZygxNikrSCk7SC5sZW5ndGglRCE9MDspSD0iMCIrSDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihIPSIt'@; put 'IitIKSxIfWlmKGI9PT0oMHxiKSYmYj49MiYmYjw9MzYpe3ZhciBwPWtbYl0sdz1FW2JdO0g9IiI7dmFyIEo9dGhpcy5jbG9uZSgpO2ZvcihKLm5lZ2F0aXZlPTA7IUouaXNaZXJvKCk7KXt2YXIgbmU9Si5tb2RuKHcpLnRvU3RyaW5nKGIpO0g9KEo9Si5pZGl2bih3KSkuaXNaZXJvKCk/bmUr'@; put 'SDpJW3AtbmUubGVuZ3RoXStuZStIfWZvcih0aGlzLmlzWmVybygpJiYoSD0iMCIrSCk7SC5sZW5ndGglRCE9MDspSD0iMCIrSDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihIPSItIitIKSxIfW0oITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sTS5wcm90b3R5cGUu'@; put 'dG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgYj10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Yis9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP2IrPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sx'@; put 'XTp0aGlzLmxlbmd0aD4yJiZtKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tYjpifSxNLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LE0ucHJvdG90eXBlLnRvQnVm'@; put 'ZmVyPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIG0odHlwZW9mIE88InUiKSx0aGlzLnRvQXJyYXlMaWtlKE8sYixEKX0sTS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihiLEQpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGIsRCl9LE0ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0'@; put 'aW9uKGIsRCxIKXt2YXIgTj10aGlzLmJ5dGVMZW5ndGgoKSxnPUh8fE1hdGgubWF4KDEsTik7bShOPD1nLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksbShnPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgdixwLEM9Imxl'@; put 'Ij09PUQsUz1uZXcgYihnKSx3PXRoaXMuY2xvbmUoKTtpZihDKXtmb3IocD0wOyF3LmlzWmVybygpO3ArKyl2PXcuYW5kbG4oMjU1KSx3Lml1c2hybig4KSxTW3BdPXY7Zm9yKDtwPGc7cCsrKVNbcF09MH1lbHNle2ZvcihwPTA7cDxnLU47cCsrKVNbcF09MDtmb3IocD0wOyF3LmlzWmVybygp'@; put 'O3ArKyl2PXcuYW5kbG4oMjU1KSx3Lml1c2hybig4KSxTW2ctcC0xXT12fXJldHVybiBTfSxNLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oYil7cmV0dXJuIDMyLU1hdGguY2x6MzIoYil9OmZ1bmN0aW9uKGIpe3ZhciBEPWIsSD0wO3JldHVybiBEPj00MDk2JiYo'@; put 'SCs9MTMsRD4+Pj0xMyksRD49NjQmJihIKz03LEQ+Pj49NyksRD49OCYmKEgrPTQsRD4+Pj00KSxEPj0yJiYoSCs9MixEPj4+PTIpLEgrRH0sTS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGIpe2lmKDA9PT1iKXJldHVybiAyNjt2YXIgRD1iLEg9MDtyZXR1cm4gODE5MSZEfHwoSCs9'@; put 'MTMsRD4+Pj0xMyksMTI3JkR8fChIKz03LEQ+Pj49NyksMTUmRHx8KEgrPTQsRD4+Pj00KSwzJkR8fChIKz0yLEQ+Pj49MiksMSZEfHxIKyssSH0sTS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIEQ9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0p'@; put 'O3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrRH0sTS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgYj0wLEQ9MDtEPHRoaXMubGVuZ3RoO0QrKyl7dmFyIEg9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tEXSk7aWYoYis9'@; put 'SCwyNiE9PUgpYnJlYWt9cmV0dXJuIGJ9LE0ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE0ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihiKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5p'@; put 'bm90bihiKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE0ucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnRlc3RuKGItMSk/dGhpcy5ub3RuKGIpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE0ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IDAhPT10aGlzLm5lZ2F0aXZlfSxNLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTS5wcm90b3R5cGUuaXVv'@; put 'cj1mdW5jdGlvbihiKXtmb3IoO3RoaXMubGVuZ3RoPGIubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBEPTA7RDxiLmxlbmd0aDtEKyspdGhpcy53b3Jkc1tEXT10aGlzLndvcmRzW0RdfGIud29yZHNbRF07cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5'@; put 'cGUuaW9yPWZ1bmN0aW9uKGIpe3JldHVybiBtKDA9PSh0aGlzLm5lZ2F0aXZlfGIubmVnYXRpdmUpKSx0aGlzLml1b3IoYil9LE0ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKGIpOmIuY2xvbmUoKS5pb3IodGhp'@; put 'cyl9LE0ucHJvdG90eXBlLnVvcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoYik6Yi5jbG9uZSgpLml1b3IodGhpcyl9LE0ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKGIpe3ZhciBEO0Q9dGhpcy5sZW5ndGg+Yi5sZW5ndGg/Yjp0'@; put 'aGlzO2Zvcih2YXIgSD0wO0g8RC5sZW5ndGg7SCsrKXRoaXMud29yZHNbSF09dGhpcy53b3Jkc1tIXSZiLndvcmRzW0hdO3JldHVybiB0aGlzLmxlbmd0aD1ELmxlbmd0aCx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0oMD09KHRoaXMubmVnYXRp'@; put 'dmV8Yi5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoYil9LE0ucHJvdG90eXBlLmFuZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoYik6Yi5jbG9uZSgpLmlhbmQodGhpcyl9LE0ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oYil7cmV0dXJu'@; put 'IHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChiKTpiLmNsb25lKCkuaXVhbmQodGhpcyl9LE0ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKGIpe3ZhciBELEg7dGhpcy5sZW5ndGg+Yi5sZW5ndGg/KEQ9dGhpcyxIPWIpOihEPWIsSD10aGlzKTtmb3IodmFyIE49MDtO'@; put 'PEgubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPUQud29yZHNbTl1eSC53b3Jkc1tOXTtpZih0aGlzIT09RClmb3IoO048RC5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09RC53b3Jkc1tOXTtyZXR1cm4gdGhpcy5sZW5ndGg9RC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5peG9y'@; put 'PWZ1bmN0aW9uKGIpe3JldHVybiBtKDA9PSh0aGlzLm5lZ2F0aXZlfGIubmVnYXRpdmUpKSx0aGlzLml1eG9yKGIpfSxNLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKGIpOmIuY2xvbmUoKS5peG9yKHRoaXMp'@; put 'fSxNLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoYik6Yi5jbG9uZSgpLml1eG9yKHRoaXMpfSxNLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFy'@; put 'IEQ9MHxNYXRoLmNlaWwoYi8yNiksSD1iJTI2O3RoaXMuX2V4cGFuZChEKSxIPjAmJkQtLTtmb3IodmFyIE49MDtOPEQ7TisrKXRoaXMud29yZHNbTl09NjcxMDg4NjMmfnRoaXMud29yZHNbTl07cmV0dXJuIEg+MCYmKHRoaXMud29yZHNbTl09fnRoaXMud29yZHNbTl0mNjcxMDg4NjM+PjI2'@; put 'LUgpLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKGIpfSxNLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGIsRCl7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApO3ZhciBIPWIvMjZ8MCxOPWIlMjY7cmV0dXJuIHRo'@; put 'aXMuX2V4cGFuZChIKzEpLHRoaXMud29yZHNbSF09RD90aGlzLndvcmRzW0hdfDE8PE46dGhpcy53b3Jkc1tIXSZ+KDE8PE4pLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihiKXt2YXIgRCxILE47aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1iLm5lZ2F0aXZlKXJl'@; put 'dHVybiB0aGlzLm5lZ2F0aXZlPTAsRD10aGlzLmlzdWIoYiksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Yi5uZWdhdGl2ZSlyZXR1cm4gYi5uZWdhdGl2ZT0wLEQ9dGhpcy5pc3ViKGIpLGIubmVnYXRpdmU9MSxELl9ub3JtU2ln'@; put 'bigpO3RoaXMubGVuZ3RoPmIubGVuZ3RoPyhIPXRoaXMsTj1iKTooSD1iLE49dGhpcyk7Zm9yKHZhciBnPTAsQz0wO0M8Ti5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmKEQ9KDB8SC53b3Jkc1tDXSkrKDB8Ti53b3Jkc1tDXSkrZyksZz1EPj4+MjY7Zm9yKDswIT09ZyYmQzxI'@; put 'Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT02NzEwODg2MyYoRD0oMHxILndvcmRzW0NdKStnKSxnPUQ+Pj4yNjtpZih0aGlzLmxlbmd0aD1ILmxlbmd0aCwwIT09Zyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1nLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihIIT09dGhpcylmb3IoO0M8SC5sZW5n'@; put 'dGg7QysrKXRoaXMud29yZHNbQ109SC53b3Jkc1tDXTtyZXR1cm4gdGhpc30sTS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGIpe3ZhciBEO3JldHVybiAwIT09Yi5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KGIubmVnYXRpdmU9MCxEPXRoaXMuc3ViKGIpLGIubmVnYXRpdmVePTEsRCk6'@; put 'MD09PWIubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsRD1iLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsRCk6dGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoYik6Yi5jbG9uZSgpLmlhZGQodGhpcyl9LE0ucHJvdG90eXBlLmlzdWI9'@; put 'ZnVuY3Rpb24oYil7aWYoMCE9PWIubmVnYXRpdmUpe2IubmVnYXRpdmU9MDt2YXIgRD10aGlzLmlhZGQoYik7cmV0dXJuIGIubmVnYXRpdmU9MSxELl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKGIpLHRoaXMubmVnYXRp'@; put 'dmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBOLGcsSD10aGlzLmNtcChiKTtpZigwPT09SClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7SD4wPyhOPXRoaXMsZz1iKTooTj1iLGc9dGhpcyk7Zm9yKHZhciBDPTAsUz0wO1M8Zy5sZW5n'@; put 'dGg7UysrKUM9KEQ9KDB8Ti53b3Jkc1tTXSktKDB8Zy53b3Jkc1tTXSkrQyk+PjI2LHRoaXMud29yZHNbU109NjcxMDg4NjMmRDtmb3IoOzAhPT1DJiZTPE4ubGVuZ3RoO1MrKylDPShEPSgwfE4ud29yZHNbU10pK0MpPj4yNix0aGlzLndvcmRzW1NdPTY3MTA4ODYzJkQ7aWYoMD09PUMmJlM8'@; put 'Ti5sZW5ndGgmJk4hPT10aGlzKWZvcig7UzxOLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT1OLndvcmRzW1NdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxTKSxOIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5zdWI9'@; put 'ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGIpfTt2YXIgQj1mdW5jdGlvbihiLEQsSCl7dmFyIHYscCx3LE49Yi53b3JkcyxnPUQud29yZHMsQz1ILndvcmRzLFM9MCxKPTB8TlswXSxuZT04MTkxJkosZGU9Sj4+PjEzLGZlPTB8TlsxXSx4ZT04MTkxJmZlLExlPWZlPj4+'@; put 'MTMsRmU9MHxOWzJdLE9lPTgxOTEmRmUsamU9RmU+Pj4xMyxXZT0wfE5bM10sS2U9ODE5MSZXZSxZZT1XZT4+PjEzLFFlPTB8Tls0XSxsdD04MTkxJlFlLFBlPVFlPj4+MTMsYmU9MHxOWzVdLEFlPTgxOTEmYmUsVGU9YmU+Pj4xMyxxZT0wfE5bNl0sWGU9ODE5MSZxZSxVZT1xZT4+PjEzLGh0'@; put 'PTB8Tls3XSxNZT04MTkxJmh0LERlPWh0Pj4+MTMsemU9MHxOWzhdLG90PTgxOTEmemUsdXQ9emU+Pj4xMyxNdD0wfE5bOV0sSHQ9ODE5MSZNdCxQdD1NdD4+PjEzLG9uPTB8Z1swXSxDbj04MTkxJm9uLFV0PW9uPj4+MTMsYm49MHxnWzFdLFduPTgxOTEmYm4sZW49Ym4+Pj4xMywkbj0wfGdb'@; put 'Ml0sSG49ODE5MSYkbixmdD0kbj4+PjEzLGZuPTB8Z1szXSxobj04MTkxJmZuLHd0PWZuPj4+MTMsWHQ9MHxnWzRdLF90PTgxOTEmWHQsTnQ9WHQ+Pj4xMyxtbj0wfGdbNV0scnQ9ODE5MSZtbixJdD1tbj4+PjEzLFF0PTB8Z1s2XSxEdD04MTkxJlF0LHB0PVF0Pj4+MTMsWXQ9MHxnWzddLElu'@; put 'PTgxOTEmWXQsenQ9WXQ+Pj4xMyx5bj0wfGdbOF0seG49ODE5MSZ5bixzbj15bj4+PjEzLEJuPTB8Z1s5XSxSbj04MTkxJkJuLCR0PUJuPj4+MTM7SC5uZWdhdGl2ZT1iLm5lZ2F0aXZlXkQubmVnYXRpdmUsSC5sZW5ndGg9MTk7dmFyIEZuPShTKyh2PU1hdGguaW11bChuZSxDbikpfDApKygo'@; put 'ODE5MSYocD0ocD1NYXRoLmltdWwobmUsVXQpKStNYXRoLmltdWwoZGUsQ24pfDApKTw8MTMpfDA7Uz0oKHc9TWF0aC5pbXVsKGRlLFV0KSkrKHA+Pj4xMyl8MCkrKEZuPj4+MjYpfDAsRm4mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKHhlLENuKSxwPShwPU1hdGguaW11bCh4ZSxVdCkpK01hdGgu'@; put 'aW11bChMZSxDbil8MCx3PU1hdGguaW11bChMZSxVdCk7dmFyIG5pPShTKyh2PXYrTWF0aC5pbXVsKG5lLFduKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsZW4pfDApK01hdGguaW11bChkZSxXbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxlbil8MCkrKHA+'@; put 'Pj4xMyl8MCkrKG5pPj4+MjYpfDAsbmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKE9lLENuKSxwPShwPU1hdGguaW11bChPZSxVdCkpK01hdGguaW11bChqZSxDbil8MCx3PU1hdGguaW11bChqZSxVdCksdj12K01hdGguaW11bCh4ZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKHhlLGVuKXwwKStN'@; put 'YXRoLmltdWwoTGUsV24pfDAsdz13K01hdGguaW11bChMZSxlbil8MDt2YXIgbG49KFMrKHY9ditNYXRoLmltdWwobmUsSG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxmdCl8MCkrTWF0aC5pbXVsKGRlLEhuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLGZ0'@; put 'KXwwKSsocD4+PjEzKXwwKSsobG4+Pj4yNil8MCxsbiY9NjcxMDg4NjMsdj1NYXRoLmltdWwoS2UsQ24pLHA9KHA9TWF0aC5pbXVsKEtlLFV0KSkrTWF0aC5pbXVsKFllLENuKXwwLHc9TWF0aC5pbXVsKFllLFV0KSx2PXYrTWF0aC5pbXVsKE9lLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoT2Us'@; put 'ZW4pfDApK01hdGguaW11bChqZSxXbil8MCx3PXcrTWF0aC5pbXVsKGplLGVuKXwwLHY9ditNYXRoLmltdWwoeGUsSG4pfDAscD0ocD1wK01hdGguaW11bCh4ZSxmdCl8MCkrTWF0aC5pbXVsKExlLEhuKXwwLHc9dytNYXRoLmltdWwoTGUsZnQpfDA7dmFyIGpuPShTKyh2PXYrTWF0aC5pbXVs'@; put 'KG5lLGhuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsd3QpfDApK01hdGguaW11bChkZSxobil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSx3dCl8MCkrKHA+Pj4xMyl8MCkrKGpuPj4+MjYpfDAsam4mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKGx0LENuKSxwPShw'@; put 'PU1hdGguaW11bChsdCxVdCkpK01hdGguaW11bChQZSxDbil8MCx3PU1hdGguaW11bChQZSxVdCksdj12K01hdGguaW11bChLZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKEtlLGVuKXwwKStNYXRoLmltdWwoWWUsV24pfDAsdz13K01hdGguaW11bChZZSxlbil8MCx2PXYrTWF0aC5pbXVsKE9l'@; put 'LEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoT2UsZnQpfDApK01hdGguaW11bChqZSxIbil8MCx3PXcrTWF0aC5pbXVsKGplLGZ0KXwwLHY9ditNYXRoLmltdWwoeGUsaG4pfDAscD0ocD1wK01hdGguaW11bCh4ZSx3dCl8MCkrTWF0aC5pbXVsKExlLGhuKXwwLHc9dytNYXRoLmltdWwoTGUsd3Qp'@; put 'fDA7dmFyIHFyPShTKyh2PXYrTWF0aC5pbXVsKG5lLF90KXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsTnQpfDApK01hdGguaW11bChkZSxfdCl8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxOdCl8MCkrKHA+Pj4xMyl8MCkrKHFyPj4+MjYpfDAscXImPTY3MTA4'@; put 'ODYzLHY9TWF0aC5pbXVsKEFlLENuKSxwPShwPU1hdGguaW11bChBZSxVdCkpK01hdGguaW11bChUZSxDbil8MCx3PU1hdGguaW11bChUZSxVdCksdj12K01hdGguaW11bChsdCxXbil8MCxwPShwPXArTWF0aC5pbXVsKGx0LGVuKXwwKStNYXRoLmltdWwoUGUsV24pfDAsdz13K01hdGguaW11'@; put 'bChQZSxlbil8MCx2PXYrTWF0aC5pbXVsKEtlLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsZnQpfDApK01hdGguaW11bChZZSxIbil8MCx3PXcrTWF0aC5pbXVsKFllLGZ0KXwwLHY9ditNYXRoLmltdWwoT2UsaG4pfDAscD0ocD1wK01hdGguaW11bChPZSx3dCl8MCkrTWF0aC5pbXVsKGpl'@; put 'LGhuKXwwLHc9dytNYXRoLmltdWwoamUsd3QpfDAsdj12K01hdGguaW11bCh4ZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKHhlLE50KXwwKStNYXRoLmltdWwoTGUsX3QpfDAsdz13K01hdGguaW11bChMZSxOdCl8MDt2YXIgZ2k9KFMrKHY9ditNYXRoLmltdWwobmUscnQpfDApfDApKygoODE5'@; put 'MSYocD0ocD1wK01hdGguaW11bChuZSxJdCl8MCkrTWF0aC5pbXVsKGRlLHJ0KXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLEl0KXwwKSsocD4+PjEzKXwwKSsoZ2k+Pj4yNil8MCxnaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoWGUsQ24pLHA9KHA9TWF0aC5pbXVsKFhlLFV0KSkr'@; put 'TWF0aC5pbXVsKFVlLENuKXwwLHc9TWF0aC5pbXVsKFVlLFV0KSx2PXYrTWF0aC5pbXVsKEFlLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsZW4pfDApK01hdGguaW11bChUZSxXbil8MCx3PXcrTWF0aC5pbXVsKFRlLGVuKXwwLHY9ditNYXRoLmltdWwobHQsSG4pfDAscD0ocD1wK01hdGgu'@; put 'aW11bChsdCxmdCl8MCkrTWF0aC5pbXVsKFBlLEhuKXwwLHc9dytNYXRoLmltdWwoUGUsZnQpfDAsdj12K01hdGguaW11bChLZSxobil8MCxwPShwPXArTWF0aC5pbXVsKEtlLHd0KXwwKStNYXRoLmltdWwoWWUsaG4pfDAsdz13K01hdGguaW11bChZZSx3dCl8MCx2PXYrTWF0aC5pbXVsKE9l'@; put 'LF90KXwwLHA9KHA9cCtNYXRoLmltdWwoT2UsTnQpfDApK01hdGguaW11bChqZSxfdCl8MCx3PXcrTWF0aC5pbXVsKGplLE50KXwwLHY9ditNYXRoLmltdWwoeGUscnQpfDAscD0ocD1wK01hdGguaW11bCh4ZSxJdCl8MCkrTWF0aC5pbXVsKExlLHJ0KXwwLHc9dytNYXRoLmltdWwoTGUsSXQp'@; put 'fDA7dmFyIHhyPShTKyh2PXYrTWF0aC5pbXVsKG5lLER0KXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUscHQpfDApK01hdGguaW11bChkZSxEdCl8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxwdCl8MCkrKHA+Pj4xMyl8MCkrKHhyPj4+MjYpfDAseHImPTY3MTA4'@; put 'ODYzLHY9TWF0aC5pbXVsKE1lLENuKSxwPShwPU1hdGguaW11bChNZSxVdCkpK01hdGguaW11bChEZSxDbil8MCx3PU1hdGguaW11bChEZSxVdCksdj12K01hdGguaW11bChYZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKFhlLGVuKXwwKStNYXRoLmltdWwoVWUsV24pfDAsdz13K01hdGguaW11'@; put 'bChVZSxlbil8MCx2PXYrTWF0aC5pbXVsKEFlLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsZnQpfDApK01hdGguaW11bChUZSxIbil8MCx3PXcrTWF0aC5pbXVsKFRlLGZ0KXwwLHY9ditNYXRoLmltdWwobHQsaG4pfDAscD0ocD1wK01hdGguaW11bChsdCx3dCl8MCkrTWF0aC5pbXVsKFBl'@; put 'LGhuKXwwLHc9dytNYXRoLmltdWwoUGUsd3QpfDAsdj12K01hdGguaW11bChLZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKEtlLE50KXwwKStNYXRoLmltdWwoWWUsX3QpfDAsdz13K01hdGguaW11bChZZSxOdCl8MCx2PXYrTWF0aC5pbXVsKE9lLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoT2Us'@; put 'SXQpfDApK01hdGguaW11bChqZSxydCl8MCx3PXcrTWF0aC5pbXVsKGplLEl0KXwwLHY9ditNYXRoLmltdWwoeGUsRHQpfDAscD0ocD1wK01hdGguaW11bCh4ZSxwdCl8MCkrTWF0aC5pbXVsKExlLER0KXwwLHc9dytNYXRoLmltdWwoTGUscHQpfDA7dmFyIFVpPShTKyh2PXYrTWF0aC5pbXVs'@; put 'KG5lLEluKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsenQpfDApK01hdGguaW11bChkZSxJbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSx6dCl8MCkrKHA+Pj4xMyl8MCkrKFVpPj4+MjYpfDAsVWkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKG90LENuKSxwPShw'@; put 'PU1hdGguaW11bChvdCxVdCkpK01hdGguaW11bCh1dCxDbil8MCx3PU1hdGguaW11bCh1dCxVdCksdj12K01hdGguaW11bChNZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKE1lLGVuKXwwKStNYXRoLmltdWwoRGUsV24pfDAsdz13K01hdGguaW11bChEZSxlbil8MCx2PXYrTWF0aC5pbXVsKFhl'@; put 'LEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsZnQpfDApK01hdGguaW11bChVZSxIbil8MCx3PXcrTWF0aC5pbXVsKFVlLGZ0KXwwLHY9ditNYXRoLmltdWwoQWUsaG4pfDAscD0ocD1wK01hdGguaW11bChBZSx3dCl8MCkrTWF0aC5pbXVsKFRlLGhuKXwwLHc9dytNYXRoLmltdWwoVGUsd3Qp'@; put 'fDAsdj12K01hdGguaW11bChsdCxfdCl8MCxwPShwPXArTWF0aC5pbXVsKGx0LE50KXwwKStNYXRoLmltdWwoUGUsX3QpfDAsdz13K01hdGguaW11bChQZSxOdCl8MCx2PXYrTWF0aC5pbXVsKEtlLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsSXQpfDApK01hdGguaW11bChZZSxydCl8MCx3'@; put 'PXcrTWF0aC5pbXVsKFllLEl0KXwwLHY9ditNYXRoLmltdWwoT2UsRHQpfDAscD0ocD1wK01hdGguaW11bChPZSxwdCl8MCkrTWF0aC5pbXVsKGplLER0KXwwLHc9dytNYXRoLmltdWwoamUscHQpfDAsdj12K01hdGguaW11bCh4ZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKHhlLHp0KXwwKStN'@; put 'YXRoLmltdWwoTGUsSW4pfDAsdz13K01hdGguaW11bChMZSx6dCl8MDt2YXIgS3I9KFMrKHY9ditNYXRoLmltdWwobmUseG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxzbil8MCkrTWF0aC5pbXVsKGRlLHhuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLHNu'@; put 'KXwwKSsocD4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsQ24pLHA9KHA9TWF0aC5pbXVsKEh0LFV0KSkrTWF0aC5pbXVsKFB0LENuKXwwLHc9TWF0aC5pbXVsKFB0LFV0KSx2PXYrTWF0aC5pbXVsKG90LFduKXwwLHA9KHA9cCtNYXRoLmltdWwob3Qs'@; put 'ZW4pfDApK01hdGguaW11bCh1dCxXbil8MCx3PXcrTWF0aC5pbXVsKHV0LGVuKXwwLHY9ditNYXRoLmltdWwoTWUsSG4pfDAscD0ocD1wK01hdGguaW11bChNZSxmdCl8MCkrTWF0aC5pbXVsKERlLEhuKXwwLHc9dytNYXRoLmltdWwoRGUsZnQpfDAsdj12K01hdGguaW11bChYZSxobil8MCxw'@; put 'PShwPXArTWF0aC5pbXVsKFhlLHd0KXwwKStNYXRoLmltdWwoVWUsaG4pfDAsdz13K01hdGguaW11bChVZSx3dCl8MCx2PXYrTWF0aC5pbXVsKEFlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsTnQpfDApK01hdGguaW11bChUZSxfdCl8MCx3PXcrTWF0aC5pbXVsKFRlLE50KXwwLHY9ditN'@; put 'YXRoLmltdWwobHQscnQpfDAscD0ocD1wK01hdGguaW11bChsdCxJdCl8MCkrTWF0aC5pbXVsKFBlLHJ0KXwwLHc9dytNYXRoLmltdWwoUGUsSXQpfDAsdj12K01hdGguaW11bChLZSxEdCl8MCxwPShwPXArTWF0aC5pbXVsKEtlLHB0KXwwKStNYXRoLmltdWwoWWUsRHQpfDAsdz13K01hdGgu'@; put 'aW11bChZZSxwdCl8MCx2PXYrTWF0aC5pbXVsKE9lLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoT2UsenQpfDApK01hdGguaW11bChqZSxJbil8MCx3PXcrTWF0aC5pbXVsKGplLHp0KXwwLHY9ditNYXRoLmltdWwoeGUseG4pfDAscD0ocD1wK01hdGguaW11bCh4ZSxzbil8MCkrTWF0aC5pbXVs'@; put 'KExlLHhuKXwwLHc9dytNYXRoLmltdWwoTGUsc24pfDA7dmFyIG5vPShTKyh2PXYrTWF0aC5pbXVsKG5lLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsJHQpfDApK01hdGguaW11bChkZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSwkdCl8MCkrKHA+'@; put 'Pj4xMyl8MCkrKG5vPj4+MjYpfDAsbm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LFduKSxwPShwPU1hdGguaW11bChIdCxlbikpK01hdGguaW11bChQdCxXbil8MCx3PU1hdGguaW11bChQdCxlbiksdj12K01hdGguaW11bChvdCxIbil8MCxwPShwPXArTWF0aC5pbXVsKG90LGZ0KXwwKStN'@; put 'YXRoLmltdWwodXQsSG4pfDAsdz13K01hdGguaW11bCh1dCxmdCl8MCx2PXYrTWF0aC5pbXVsKE1lLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsd3QpfDApK01hdGguaW11bChEZSxobil8MCx3PXcrTWF0aC5pbXVsKERlLHd0KXwwLHY9ditNYXRoLmltdWwoWGUsX3QpfDAscD0ocD1wK01h'@; put 'dGguaW11bChYZSxOdCl8MCkrTWF0aC5pbXVsKFVlLF90KXwwLHc9dytNYXRoLmltdWwoVWUsTnQpfDAsdj12K01hdGguaW11bChBZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKEFlLEl0KXwwKStNYXRoLmltdWwoVGUscnQpfDAsdz13K01hdGguaW11bChUZSxJdCl8MCx2PXYrTWF0aC5pbXVs'@; put 'KGx0LER0KXwwLHA9KHA9cCtNYXRoLmltdWwobHQscHQpfDApK01hdGguaW11bChQZSxEdCl8MCx3PXcrTWF0aC5pbXVsKFBlLHB0KXwwLHY9ditNYXRoLmltdWwoS2UsSW4pfDAscD0ocD1wK01hdGguaW11bChLZSx6dCl8MCkrTWF0aC5pbXVsKFllLEluKXwwLHc9dytNYXRoLmltdWwoWWUs'@; put 'enQpfDAsdj12K01hdGguaW11bChPZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKE9lLHNuKXwwKStNYXRoLmltdWwoamUseG4pfDAsdz13K01hdGguaW11bChqZSxzbil8MDt2YXIgSHI9KFMrKHY9ditNYXRoLmltdWwoeGUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bCh4ZSwk'@; put 'dCl8MCkrTWF0aC5pbXVsKExlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKExlLCR0KXwwKSsocD4+PjEzKXwwKSsoSHI+Pj4yNil8MCxIciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsSG4pLHA9KHA9TWF0aC5pbXVsKEh0LGZ0KSkrTWF0aC5pbXVsKFB0LEhuKXwwLHc9TWF0'@; put 'aC5pbXVsKFB0LGZ0KSx2PXYrTWF0aC5pbXVsKG90LGhuKXwwLHA9KHA9cCtNYXRoLmltdWwob3Qsd3QpfDApK01hdGguaW11bCh1dCxobil8MCx3PXcrTWF0aC5pbXVsKHV0LHd0KXwwLHY9ditNYXRoLmltdWwoTWUsX3QpfDAscD0ocD1wK01hdGguaW11bChNZSxOdCl8MCkrTWF0aC5pbXVs'@; put 'KERlLF90KXwwLHc9dytNYXRoLmltdWwoRGUsTnQpfDAsdj12K01hdGguaW11bChYZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKFhlLEl0KXwwKStNYXRoLmltdWwoVWUscnQpfDAsdz13K01hdGguaW11bChVZSxJdCl8MCx2PXYrTWF0aC5pbXVsKEFlLER0KXwwLHA9KHA9cCtNYXRoLmltdWwo'@; put 'QWUscHQpfDApK01hdGguaW11bChUZSxEdCl8MCx3PXcrTWF0aC5pbXVsKFRlLHB0KXwwLHY9ditNYXRoLmltdWwobHQsSW4pfDAscD0ocD1wK01hdGguaW11bChsdCx6dCl8MCkrTWF0aC5pbXVsKFBlLEluKXwwLHc9dytNYXRoLmltdWwoUGUsenQpfDAsdj12K01hdGguaW11bChLZSx4bil8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKEtlLHNuKXwwKStNYXRoLmltdWwoWWUseG4pfDAsdz13K01hdGguaW11bChZZSxzbil8MDt2YXIgcWk9KFMrKHY9ditNYXRoLmltdWwoT2UsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChPZSwkdCl8MCkrTWF0aC5pbXVsKGplLFJuKXwwKSk8'@; put 'PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGplLCR0KXwwKSsocD4+PjEzKXwwKSsocWk+Pj4yNil8MCxxaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsaG4pLHA9KHA9TWF0aC5pbXVsKEh0LHd0KSkrTWF0aC5pbXVsKFB0LGhuKXwwLHc9TWF0aC5pbXVsKFB0LHd0KSx2PXYrTWF0aC5pbXVs'@; put 'KG90LF90KXwwLHA9KHA9cCtNYXRoLmltdWwob3QsTnQpfDApK01hdGguaW11bCh1dCxfdCl8MCx3PXcrTWF0aC5pbXVsKHV0LE50KXwwLHY9ditNYXRoLmltdWwoTWUscnQpfDAscD0ocD1wK01hdGguaW11bChNZSxJdCl8MCkrTWF0aC5pbXVsKERlLHJ0KXwwLHc9dytNYXRoLmltdWwoRGUs'@; put 'SXQpfDAsdj12K01hdGguaW11bChYZSxEdCl8MCxwPShwPXArTWF0aC5pbXVsKFhlLHB0KXwwKStNYXRoLmltdWwoVWUsRHQpfDAsdz13K01hdGguaW11bChVZSxwdCl8MCx2PXYrTWF0aC5pbXVsKEFlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsenQpfDApK01hdGguaW11bChUZSxJbil8'@; put 'MCx3PXcrTWF0aC5pbXVsKFRlLHp0KXwwLHY9ditNYXRoLmltdWwobHQseG4pfDAscD0ocD1wK01hdGguaW11bChsdCxzbil8MCkrTWF0aC5pbXVsKFBlLHhuKXwwLHc9dytNYXRoLmltdWwoUGUsc24pfDA7dmFyIEppPShTKyh2PXYrTWF0aC5pbXVsKEtlLFJuKXwwKXwwKSsoKDgxOTEmKHA9'@; put 'KHA9cCtNYXRoLmltdWwoS2UsJHQpfDApK01hdGguaW11bChZZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChZZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LF90KSxwPShwPU1hdGguaW11bChIdCxOdCkpK01hdGgu'@; put 'aW11bChQdCxfdCl8MCx3PU1hdGguaW11bChQdCxOdCksdj12K01hdGguaW11bChvdCxydCl8MCxwPShwPXArTWF0aC5pbXVsKG90LEl0KXwwKStNYXRoLmltdWwodXQscnQpfDAsdz13K01hdGguaW11bCh1dCxJdCl8MCx2PXYrTWF0aC5pbXVsKE1lLER0KXwwLHA9KHA9cCtNYXRoLmltdWwo'@; put 'TWUscHQpfDApK01hdGguaW11bChEZSxEdCl8MCx3PXcrTWF0aC5pbXVsKERlLHB0KXwwLHY9ditNYXRoLmltdWwoWGUsSW4pfDAscD0ocD1wK01hdGguaW11bChYZSx6dCl8MCkrTWF0aC5pbXVsKFVlLEluKXwwLHc9dytNYXRoLmltdWwoVWUsenQpfDAsdj12K01hdGguaW11bChBZSx4bil8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKEFlLHNuKXwwKStNYXRoLmltdWwoVGUseG4pfDAsdz13K01hdGguaW11bChUZSxzbil8MDt2YXIgYW89KFMrKHY9ditNYXRoLmltdWwobHQsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChsdCwkdCl8MCkrTWF0aC5pbXVsKFBlLFJuKXwwKSk8'@; put 'PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKFBlLCR0KXwwKSsocD4+PjEzKXwwKSsoYW8+Pj4yNil8MCxhbyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQscnQpLHA9KHA9TWF0aC5pbXVsKEh0LEl0KSkrTWF0aC5pbXVsKFB0LHJ0KXwwLHc9TWF0aC5pbXVsKFB0LEl0KSx2PXYrTWF0aC5pbXVs'@; put 'KG90LER0KXwwLHA9KHA9cCtNYXRoLmltdWwob3QscHQpfDApK01hdGguaW11bCh1dCxEdCl8MCx3PXcrTWF0aC5pbXVsKHV0LHB0KXwwLHY9ditNYXRoLmltdWwoTWUsSW4pfDAscD0ocD1wK01hdGguaW11bChNZSx6dCl8MCkrTWF0aC5pbXVsKERlLEluKXwwLHc9dytNYXRoLmltdWwoRGUs'@; put 'enQpfDAsdj12K01hdGguaW11bChYZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKFhlLHNuKXwwKStNYXRoLmltdWwoVWUseG4pfDAsdz13K01hdGguaW11bChVZSxzbil8MDt2YXIgcm89KFMrKHY9ditNYXRoLmltdWwoQWUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChBZSwk'@; put 'dCl8MCkrTWF0aC5pbXVsKFRlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKFRlLCR0KXwwKSsocD4+PjEzKXwwKSsocm8+Pj4yNil8MCxybyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsRHQpLHA9KHA9TWF0aC5pbXVsKEh0LHB0KSkrTWF0aC5pbXVsKFB0LER0KXwwLHc9TWF0'@; put 'aC5pbXVsKFB0LHB0KSx2PXYrTWF0aC5pbXVsKG90LEluKXwwLHA9KHA9cCtNYXRoLmltdWwob3QsenQpfDApK01hdGguaW11bCh1dCxJbil8MCx3PXcrTWF0aC5pbXVsKHV0LHp0KXwwLHY9ditNYXRoLmltdWwoTWUseG4pfDAscD0ocD1wK01hdGguaW11bChNZSxzbil8MCkrTWF0aC5pbXVs'@; put 'KERlLHhuKXwwLHc9dytNYXRoLmltdWwoRGUsc24pfDA7dmFyIGlvPShTKyh2PXYrTWF0aC5pbXVsKFhlLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoWGUsJHQpfDApK01hdGguaW11bChVZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChVZSwkdCl8MCkrKHA+'@; put 'Pj4xMyl8MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LEluKSxwPShwPU1hdGguaW11bChIdCx6dCkpK01hdGguaW11bChQdCxJbil8MCx3PU1hdGguaW11bChQdCx6dCksdj12K01hdGguaW11bChvdCx4bil8MCxwPShwPXArTWF0aC5pbXVsKG90LHNuKXwwKStN'@; put 'YXRoLmltdWwodXQseG4pfDAsdz13K01hdGguaW11bCh1dCxzbil8MDt2YXIgR2k9KFMrKHY9ditNYXRoLmltdWwoTWUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChNZSwkdCl8MCkrTWF0aC5pbXVsKERlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKERlLCR0'@; put 'KXwwKSsocD4+PjEzKXwwKSsoR2k+Pj4yNil8MCxHaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQseG4pLHA9KHA9TWF0aC5pbXVsKEh0LHNuKSkrTWF0aC5pbXVsKFB0LHhuKXwwLHc9TWF0aC5pbXVsKFB0LHNuKTt2YXIgaG89KFMrKHY9ditNYXRoLmltdWwob3QsUm4pfDApfDApKygoODE5'@; put 'MSYocD0ocD1wK01hdGguaW11bChvdCwkdCl8MCkrTWF0aC5pbXVsKHV0LFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKHV0LCR0KXwwKSsocD4+PjEzKXwwKSsoaG8+Pj4yNil8MCxobyY9NjcxMDg4NjM7dmFyIHlyPShTKyh2PU1hdGguaW11bChIdCxSbikpfDApKygoODE5MSYo'@; put 'cD0ocD1NYXRoLmltdWwoSHQsJHQpKStNYXRoLmltdWwoUHQsUm4pfDApKTw8MTMpfDA7cmV0dXJuIFM9KCh3PU1hdGguaW11bChQdCwkdCkpKyhwPj4+MTMpfDApKyh5cj4+PjI2KXwwLHlyJj02NzEwODg2MyxDWzBdPUZuLENbMV09bmksQ1syXT1sbixDWzNdPWpuLENbNF09cXIsQ1s1XT1n'@; put 'aSxDWzZdPXhyLENbN109VWksQ1s4XT1LcixDWzldPW5vLENbMTBdPUhyLENbMTFdPXFpLENbMTJdPUppLENbMTNdPWFvLENbMTRdPXJvLENbMTVdPWlvLENbMTZdPUdpLENbMTddPWhvLENbMThdPXlyLDAhPT1TJiYoQ1sxOV09UyxILmxlbmd0aCsrKSxIfTtmdW5jdGlvbiBYKEcsYixEKXty'@; put 'ZXR1cm4obmV3IFUpLm11bHAoRyxiLEQpfWZ1bmN0aW9uIFUoRyxiKXt0aGlzLng9Ryx0aGlzLnk9Yn1NYXRoLmltdWx8fChCPVYpLE0ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGIsRCl7dmFyIEgsTj10aGlzLmxlbmd0aCtiLmxlbmd0aDtyZXR1cm4gSD0xMD09PXRoaXMubGVuZ3RoJiYx'@; put 'MD09PWIubGVuZ3RoP0IodGhpcyxiLEQpOk48NjM/Vih0aGlzLGIsRCk6TjwxMDI0P2Z1bmN0aW9uIFkoRyxiLEQpe0QubmVnYXRpdmU9Yi5uZWdhdGl2ZV5HLm5lZ2F0aXZlLEQubGVuZ3RoPUcubGVuZ3RoK2IubGVuZ3RoO2Zvcih2YXIgSD0wLE49MCxnPTA7ZzxELmxlbmd0aC0xO2crKyl7'@; put 'dmFyIEM9TjtOPTA7Zm9yKHZhciBTPTY3MTA4ODYzJkgsdj1NYXRoLm1pbihnLGIubGVuZ3RoLTEpLHA9TWF0aC5tYXgoMCxnLUcubGVuZ3RoKzEpO3A8PXY7cCsrKXt2YXIgZGU9KDB8Ry53b3Jkc1tnLXBdKSooMHxiLndvcmRzW3BdKSxmZT02NzEwODg2MyZkZTtTPTY3MTA4ODYzJihmZT1m'@; put 'ZStTfDApLE4rPShDPShDPUMrKGRlLzY3MTA4ODY0fDApfDApKyhmZT4+PjI2KXwwKT4+PjI2LEMmPTY3MTA4ODYzfUQud29yZHNbZ109UyxIPUMsQz1OfXJldHVybiAwIT09SD9ELndvcmRzW2ddPUg6RC5sZW5ndGgtLSxELnN0cmlwKCl9KHRoaXMsYixEKTpYKHRoaXMsYixEKSxIfSxVLnBy'@; put 'b3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGIpe2Zvcih2YXIgRD1uZXcgQXJyYXkoYiksSD1NLnByb3RvdHlwZS5fY291bnRCaXRzKGIpLTEsTj0wO048YjtOKyspRFtOXT10aGlzLnJldkJpbihOLEgsYik7cmV0dXJuIER9LFUucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihiLEQsSCl7aWYo'@; put 'MD09PWJ8fGI9PT1ILTEpcmV0dXJuIGI7Zm9yKHZhciBOPTAsZz0wO2c8RDtnKyspTnw9KDEmYik8PEQtZy0xLGI+Pj0xO3JldHVybiBOfSxVLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGIsRCxILE4sZyxDKXtmb3IodmFyIFM9MDtTPEM7UysrKU5bU109RFtiW1NdXSxnW1NdPUhbYltT'@; put 'XV19LFUucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihiLEQsSCxOLGcsQyl7dGhpcy5wZXJtdXRlKEMsYixELEgsTixnKTtmb3IodmFyIFM9MTtTPGc7Uzw8PTEpZm9yKHZhciB2PVM8PDEscD1NYXRoLmNvcygyKk1hdGguUEkvdiksdz1NYXRoLnNpbigyKk1hdGguUEkvdiksSj0wO0o8'@; put 'ZztKKz12KWZvcih2YXIgbmU9cCxkZT13LGZlPTA7ZmU8UztmZSsrKXt2YXIgeGU9SFtKK2ZlXSxMZT1OW0orZmVdLEZlPUhbSitmZStTXSxPZT1OW0orZmUrU10samU9bmUqRmUtZGUqT2U7T2U9bmUqT2UrZGUqRmUsSFtKK2ZlXT14ZSsoRmU9amUpLE5bSitmZV09TGUrT2UsSFtKK2ZlK1Nd'@; put 'PXhlLUZlLE5bSitmZStTXT1MZS1PZSxmZSE9PXYmJihqZT1wKm5lLXcqZGUsZGU9cCpkZSt3Km5lLG5lPWplKX19LFUucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGIsRCl7dmFyIEg9MXxNYXRoLm1heChELGIpLE49MSZILGc9MDtmb3IoSD1ILzJ8MDtIO0g+Pj49MSlnKys7cmV0'@; put 'dXJuIDE8PGcrMStOfSxVLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oYixELEgpe2lmKCEoSDw9MSkpZm9yKHZhciBOPTA7TjxILzI7TisrKXt2YXIgZz1iW05dO2JbTl09YltILU4tMV0sYltILU4tMV09ZyxnPURbTl0sRFtOXT0tRFtILU4tMV0sRFtILU4tMV09LWd9fSxVLnByb3Rv'@; put 'dHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oYixEKXtmb3IodmFyIEg9MCxOPTA7TjxELzI7TisrKXt2YXIgZz04MTkyKk1hdGgucm91bmQoYlsyKk4rMV0vRCkrTWF0aC5yb3VuZChiWzIqTl0vRCkrSDtiW05dPTY3MTA4ODYzJmcsSD1nPDY3MTA4ODY0PzA6Zy82NzEwODg2NHwwfXJldHVy'@; put 'biBifSxVLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGIsRCxILE4pe2Zvcih2YXIgZz0wLEM9MDtDPEQ7QysrKUhbMipDXT04MTkxJihnKz0wfGJbQ10pLEhbMipDKzFdPTgxOTEmKGc+Pj49MTMpLGc+Pj49MTM7Zm9yKEM9MipEO0M8TjsrK0MpSFtDXT0wO20oMD09PWcpLG0oMD09'@; put 'KC04MTkyJmcpKX0sVS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihiKXtmb3IodmFyIEQ9bmV3IEFycmF5KGIpLEg9MDtIPGI7SCsrKURbSF09MDtyZXR1cm4gRH0sVS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihiLEQsSCl7dmFyIE49Mip0aGlzLmd1ZXNzTGVuMTNiKGIubGVuZ3RoLEQubGVu'@; put 'Z3RoKSxnPXRoaXMubWFrZVJCVChOKSxDPXRoaXMuc3R1YihOKSxTPW5ldyBBcnJheShOKSx2PW5ldyBBcnJheShOKSxwPW5ldyBBcnJheShOKSx3PW5ldyBBcnJheShOKSxKPW5ldyBBcnJheShOKSxuZT1uZXcgQXJyYXkoTiksZGU9SC53b3JkcztkZS5sZW5ndGg9Tix0aGlzLmNvbnZlcnQx'@; put 'M2IoYi53b3JkcyxiLmxlbmd0aCxTLE4pLHRoaXMuY29udmVydDEzYihELndvcmRzLEQubGVuZ3RoLHcsTiksdGhpcy50cmFuc2Zvcm0oUyxDLHYscCxOLGcpLHRoaXMudHJhbnNmb3JtKHcsQyxKLG5lLE4sZyk7Zm9yKHZhciBmZT0wO2ZlPE47ZmUrKyl7dmFyIHhlPXZbZmVdKkpbZmVdLXBb'@; put 'ZmVdKm5lW2ZlXTtwW2ZlXT12W2ZlXSpuZVtmZV0rcFtmZV0qSltmZV0sdltmZV09eGV9cmV0dXJuIHRoaXMuY29uanVnYXRlKHYscCxOKSx0aGlzLnRyYW5zZm9ybSh2LHAsZGUsQyxOLGcpLHRoaXMuY29uanVnYXRlKGRlLEMsTiksdGhpcy5ub3JtYWxpemUxM2IoZGUsTiksSC5uZWdhdGl2'@; put 'ZT1iLm5lZ2F0aXZlXkQubmVnYXRpdmUsSC5sZW5ndGg9Yi5sZW5ndGgrRC5sZW5ndGgsSC5zdHJpcCgpfSxNLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oYil7dmFyIEQ9bmV3IE0obnVsbCk7cmV0dXJuIEQud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2IubGVuZ3RoKSx0aGlzLm11bFRv'@; put 'KGIsRCl9LE0ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oYil7dmFyIEQ9bmV3IE0obnVsbCk7cmV0dXJuIEQud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2IubGVuZ3RoKSxYKHRoaXMsYixEKX0sTS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11'@; put 'bFRvKGIsdGhpcyl9LE0ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiKSxtKGI8NjcxMDg4NjQpO2Zvcih2YXIgRD0wLEg9MDtIPHRoaXMubGVuZ3RoO0grKyl7dmFyIE49KDB8dGhpcy53b3Jkc1tIXSkqYixnPSg2NzEwODg2MyZOKSsoNjcxMDg4NjMm'@; put 'RCk7RD4+PTI2LEQrPU4vNjcxMDg4NjR8MCxEKz1nPj4+MjYsdGhpcy53b3Jkc1tIXT02NzEwODg2MyZnfXJldHVybiAwIT09RCYmKHRoaXMud29yZHNbSF09RCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxNLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaW11'@; put 'bG4oYil9LE0ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGIpe3ZhciBEPWZ1bmN0aW9uIGooRyl7'@; put 'Zm9yKHZhciBiPW5ldyBBcnJheShHLmJpdExlbmd0aCgpKSxEPTA7RDxiLmxlbmd0aDtEKyspe3ZhciBOPUQlMjY7YltEXT0oRy53b3Jkc1tELzI2fDBdJjE8PE4pPj4+Tn1yZXR1cm4gYn0oYik7aWYoMD09PUQubGVuZ3RoKXJldHVybiBuZXcgTSgxKTtmb3IodmFyIEg9dGhpcyxOPTA7TjxE'@; put 'Lmxlbmd0aCYmMD09PURbTl07TisrLEg9SC5zcXIoKSk7aWYoKytOPEQubGVuZ3RoKWZvcih2YXIgZz1ILnNxcigpO048RC5sZW5ndGg7TisrLGc9Zy5zcXIoKSkwIT09RFtOXSYmKEg9SC5tdWwoZykpO3JldHVybiBIfSxNLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oYil7bSgibnVtYmVy'@; put 'Ij09dHlwZW9mIGImJmI+PTApO3ZhciBnLEQ9YiUyNixIPShiLUQpLzI2LE49NjcxMDg4NjM+Pj4yNi1EPDwyNi1EO2lmKDAhPT1EKXt2YXIgQz0wO2ZvcihnPTA7Zzx0aGlzLmxlbmd0aDtnKyspe3ZhciBTPXRoaXMud29yZHNbZ10mTjt0aGlzLndvcmRzW2ddPSgwfHRoaXMud29yZHNbZ10p'@; put 'LVM8PER8QyxDPVM+Pj4yNi1EfUMmJih0aGlzLndvcmRzW2ddPUMsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PUgpe2ZvcihnPXRoaXMubGVuZ3RoLTE7Zz49MDtnLS0pdGhpcy53b3Jkc1tnK0hdPXRoaXMud29yZHNbZ107Zm9yKGc9MDtnPEg7ZysrKXRoaXMud29yZHNbZ109MDt0aGlzLmxlbmd0'@; put 'aCs9SH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oYil9LE0ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihiLEQsSCl7dmFyIE47bSgibnVtYmVyIj09dHlwZW9mIGImJmI+'@; put 'PTApLE49RD8oRC1EJTI2KS8yNjowO3ZhciBnPWIlMjYsQz1NYXRoLm1pbigoYi1nKS8yNix0aGlzLmxlbmd0aCksUz02NzEwODg2M142NzEwODg2Mz4+Pmc8PGcsdj1IO2lmKE4tPUMsTj1NYXRoLm1heCgwLE4pLHYpe2Zvcih2YXIgcD0wO3A8QztwKyspdi53b3Jkc1twXT10aGlzLndvcmRz'@; put 'W3BdO3YubGVuZ3RoPUN9aWYoMCE9PUMpaWYodGhpcy5sZW5ndGg+Qylmb3IodGhpcy5sZW5ndGgtPUMscD0wO3A8dGhpcy5sZW5ndGg7cCsrKXRoaXMud29yZHNbcF09dGhpcy53b3Jkc1twK0NdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIHc9MDtmb3IocD10aGlz'@; put 'Lmxlbmd0aC0xO3A+PTAmJigwIT09d3x8cD49Tik7cC0tKXt2YXIgSj0wfHRoaXMud29yZHNbcF07dGhpcy53b3Jkc1twXT13PDwyNi1nfEo+Pj5nLHc9SiZTfXJldHVybiB2JiYwIT09dyYmKHYud29yZHNbdi5sZW5ndGgrK109dyksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0w'@; put 'LHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oYixELEgpe3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihiLEQsSCl9LE0ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hs'@; put 'bihiKX0sTS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oYil9LE0ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihiKX0sTS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oYil7cmV0dXJuIHRo'@; put 'aXMuY2xvbmUoKS5pdXNocm4oYil9LE0ucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgRD1iJTI2LEg9KGItRCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9SHx8ISh0aGlzLndvcmRzW0hdJjE8PEQpKX0sTS5wcm90b3R5cGUuaW1h'@; put 'c2tuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgRD1iJTI2LEg9KGItRCkvMjY7cmV0dXJuIG0oMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1IP3RoaXM6KDAhPT1EJiZI'@; put 'KyssdGhpcy5sZW5ndGg9TWF0aC5taW4oSCx0aGlzLmxlbmd0aCksMCE9PUQmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PkQ8PEQpLHRoaXMuc3RyaXAoKSl9LE0ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCku'@; put 'aW1hc2tuKGIpfSxNLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihiKXtyZXR1cm4gbSgibnVtYmVyIj09dHlwZW9mIGIpLG0oYjw2NzEwODg2NCksYjwwP3RoaXMuaXN1Ym4oLWIpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Yj8odGhpcy53'@; put 'b3Jkc1swXT1iLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oYiksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGIpfSxNLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oYil7dGhpcy53b3Jkc1swXSs9'@; put 'Yjtmb3IodmFyIEQ9MDtEPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0RdPj02NzEwODg2NDtEKyspdGhpcy53b3Jkc1tEXS09NjcxMDg4NjQsRD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tEKzFdPTE6dGhpcy53b3Jkc1tEKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRo'@; put 'aXMubGVuZ3RoLEQrMSksdGhpc30sTS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oYil7aWYobSgibnVtYmVyIj09dHlwZW9mIGIpLG0oYjw2NzEwODg2NCksYjwwKXJldHVybiB0aGlzLmlhZGRuKC1iKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMu'@; put 'aWFkZG4oYiksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09YiwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgRD0wO0Q8dGhpcy5sZW5ndGgmJnRoaXMu'@; put 'd29yZHNbRF08MDtEKyspdGhpcy53b3Jkc1tEXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tEKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihiKX0sTS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihi'@; put 'KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGIpfSxNLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxNLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTS5wcm90b3R5cGUuX2lzaGxuc3Vi'@; put 'bXVsPWZ1bmN0aW9uKGIsRCxIKXt2YXIgZzt0aGlzLl9leHBhbmQoYi5sZW5ndGgrSCk7dmFyIEMsUz0wO2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspe0M9KDB8dGhpcy53b3Jkc1tnK0hdKStTO3ZhciB2PSgwfGIud29yZHNbZ10pKkQ7Uz0oKEMtPTY3MTA4ODYzJnYpPj4yNiktKHYvNjcxMDg4'@; put 'NjR8MCksdGhpcy53b3Jkc1tnK0hdPTY3MTA4ODYzJkN9Zm9yKDtnPHRoaXMubGVuZ3RoLUg7ZysrKVM9KEM9KDB8dGhpcy53b3Jkc1tnK0hdKStTKT4+MjYsdGhpcy53b3Jkc1tnK0hdPTY3MTA4ODYzJkM7aWYoMD09PVMpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IobSgtMT09PVMpLFM9MCxn'@; put 'PTA7Zzx0aGlzLmxlbmd0aDtnKyspUz0oQz0tKDB8dGhpcy53b3Jkc1tnXSkrUyk+PjI2LHRoaXMud29yZHNbZ109NjcxMDg4NjMmQztyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oYixEKXt2YXIgSCxOPXRoaXMuY2xv'@; put 'bmUoKSxnPWIsQz0wfGcud29yZHNbZy5sZW5ndGgtMV07MCE9KEg9MjYtdGhpcy5fY291bnRCaXRzKEMpKSYmKGc9Zy51c2hsbihIKSxOLml1c2hsbihIKSxDPTB8Zy53b3Jkc1tnLmxlbmd0aC0xXSk7dmFyIHAsdj1OLmxlbmd0aC1nLmxlbmd0aDtpZigibW9kIiE9PUQpeyhwPW5ldyBNKG51'@; put 'bGwpKS5sZW5ndGg9disxLHAud29yZHM9bmV3IEFycmF5KHAubGVuZ3RoKTtmb3IodmFyIHc9MDt3PHAubGVuZ3RoO3crKylwLndvcmRzW3ddPTB9dmFyIEo9Ti5jbG9uZSgpLl9pc2hsbnN1Ym11bChnLDEsdik7MD09PUoubmVnYXRpdmUmJihOPUoscCYmKHAud29yZHNbdl09MSkpO2Zvcih2'@; put 'YXIgbmU9di0xO25lPj0wO25lLS0pe3ZhciBkZT02NzEwODg2NCooMHxOLndvcmRzW2cubGVuZ3RoK25lXSkrKDB8Ti53b3Jkc1tnLmxlbmd0aCtuZS0xXSk7Zm9yKGRlPU1hdGgubWluKGRlL0N8MCw2NzEwODg2MyksTi5faXNobG5zdWJtdWwoZyxkZSxuZSk7MCE9PU4ubmVnYXRpdmU7KWRl'@; put 'LS0sTi5uZWdhdGl2ZT0wLE4uX2lzaGxuc3VibXVsKGcsMSxuZSksTi5pc1plcm8oKXx8KE4ubmVnYXRpdmVePTEpO3AmJihwLndvcmRzW25lXT1kZSl9cmV0dXJuIHAmJnAuc3RyaXAoKSxOLnN0cmlwKCksImRpdiIhPT1EJiYwIT09SCYmTi5pdXNocm4oSCkse2RpdjpwfHxudWxsLG1vZDpO'@; put 'fX0sTS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGIsRCxIKXtyZXR1cm4gbSghYi5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBNKDApLG1vZDpuZXcgTSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1iLm5lZ2F0aXZlPyhDPXRoaXMubmVnKCkuZGl2bW9kKGIsRCksIm1v'@; put 'ZCIhPT1EJiYoTj1DLmRpdi5uZWcoKSksImRpdiIhPT1EJiYoZz1DLm1vZC5uZWcoKSxIJiYwIT09Zy5uZWdhdGl2ZSYmZy5pYWRkKGIpKSx7ZGl2Ok4sbW9kOmd9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWIubmVnYXRpdmU/KEM9dGhpcy5kaXZtb2QoYi5uZWcoKSxEKSwibW9kIiE9PUQm'@; put 'JihOPUMuZGl2Lm5lZygpKSx7ZGl2Ok4sbW9kOkMubW9kfSk6dGhpcy5uZWdhdGl2ZSZiLm5lZ2F0aXZlPyhDPXRoaXMubmVnKCkuZGl2bW9kKGIubmVnKCksRCksImRpdiIhPT1EJiYoZz1DLm1vZC5uZWcoKSxIJiYwIT09Zy5uZWdhdGl2ZSYmZy5pc3ViKGIpKSx7ZGl2OkMuZGl2LG1vZDpn'@; put 'fSk6Yi5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGIpPDA/e2RpdjpuZXcgTSgwKSxtb2Q6dGhpc306MT09PWIubGVuZ3RoPyJkaXYiPT09RD97ZGl2OnRoaXMuZGl2bihiLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1EP3tkaXY6bnVsbCxtb2Q6bmV3IE0odGhpcy5tb2RuKGIu'@; put 'd29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oYi53b3Jkc1swXSksbW9kOm5ldyBNKHRoaXMubW9kbihiLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoYixEKTt2YXIgTixnLEN9LE0ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5kaXZtb2QoYiwiZGl2IiwhMSkuZGl2'@; put 'fSxNLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZGl2bW9kKGIsIm1vZCIsITEpLm1vZH0sTS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5kaXZtb2QoYiwibW9kIiwhMCkubW9kfSxNLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihiKXt2'@; put 'YXIgRD10aGlzLmRpdm1vZChiKTtpZihELm1vZC5pc1plcm8oKSlyZXR1cm4gRC5kaXY7dmFyIEg9MCE9PUQuZGl2Lm5lZ2F0aXZlP0QubW9kLmlzdWIoYik6RC5tb2QsTj1iLnVzaHJuKDEpLGc9Yi5hbmRsbigxKSxDPUguY21wKE4pO3JldHVybiBDPDB8fDE9PT1nJiYwPT09Qz9ELmRpdjow'@; put 'IT09RC5kaXYubmVnYXRpdmU/RC5kaXYuaXN1Ym4oMSk6RC5kaXYuaWFkZG4oMSl9LE0ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oYil7bShiPD02NzEwODg2Myk7Zm9yKHZhciBEPSgxPDwyNiklYixIPTAsTj10aGlzLmxlbmd0aC0xO04+PTA7Ti0tKUg9KEQqSCsoMHx0aGlzLndvcmRzW05d'@; put 'KSklYjtyZXR1cm4gSH0sTS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oYil7bShiPD02NzEwODg2Myk7Zm9yKHZhciBEPTAsSD10aGlzLmxlbmd0aC0xO0g+PTA7SC0tKXt2YXIgTj0oMHx0aGlzLndvcmRzW0hdKSs2NzEwODg2NCpEO3RoaXMud29yZHNbSF09Ti9ifDAsRD1OJWJ9cmV0dXJu'@; put 'IHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGIpfSxNLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGIpe20oMD09PWIubmVnYXRpdmUpLG0oIWIuaXNaZXJvKCkpO3ZhciBEPXRoaXMsSD1iLmNsb25lKCk7RD0wIT09'@; put 'RC5uZWdhdGl2ZT9ELnVtb2QoYik6RC5jbG9uZSgpO2Zvcih2YXIgTj1uZXcgTSgxKSxnPW5ldyBNKDApLEM9bmV3IE0oMCksUz1uZXcgTSgxKSx2PTA7RC5pc0V2ZW4oKSYmSC5pc0V2ZW4oKTspRC5pdXNocm4oMSksSC5pdXNocm4oMSksKyt2O2Zvcih2YXIgcD1ILmNsb25lKCksdz1ELmNs'@; put 'b25lKCk7IUQuaXNaZXJvKCk7KXtmb3IodmFyIEo9MCxuZT0xOyEoRC53b3Jkc1swXSZuZSkmJko8MjY7KytKLG5lPDw9MSk7aWYoSj4wKWZvcihELml1c2hybihKKTtKLS0gPjA7KShOLmlzT2RkKCl8fGcuaXNPZGQoKSkmJihOLmlhZGQocCksZy5pc3ViKHcpKSxOLml1c2hybigxKSxnLml1'@; put 'c2hybigxKTtmb3IodmFyIGRlPTAsZmU9MTshKEgud29yZHNbMF0mZmUpJiZkZTwyNjsrK2RlLGZlPDw9MSk7aWYoZGU+MClmb3IoSC5pdXNocm4oZGUpO2RlLS0gPjA7KShDLmlzT2RkKCl8fFMuaXNPZGQoKSkmJihDLmlhZGQocCksUy5pc3ViKHcpKSxDLml1c2hybigxKSxTLml1c2hybigx'@; put 'KTtELmNtcChIKT49MD8oRC5pc3ViKEgpLE4uaXN1YihDKSxnLmlzdWIoUykpOihILmlzdWIoRCksQy5pc3ViKE4pLFMuaXN1YihnKSl9cmV0dXJue2E6QyxiOlMsZ2NkOkguaXVzaGxuKHYpfX0sTS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGIpe20oMD09PWIubmVnYXRpdmUpLG0oIWIu'@; put 'aXNaZXJvKCkpO3ZhciBKLEQ9dGhpcyxIPWIuY2xvbmUoKTtEPTAhPT1ELm5lZ2F0aXZlP0QudW1vZChiKTpELmNsb25lKCk7Zm9yKHZhciBOPW5ldyBNKDEpLGc9bmV3IE0oMCksQz1ILmNsb25lKCk7RC5jbXBuKDEpPjAmJkguY21wbigxKT4wOyl7Zm9yKHZhciBTPTAsdj0xOyEoRC53b3Jk'@; put 'c1swXSZ2KSYmUzwyNjsrK1Msdjw8PTEpO2lmKFM+MClmb3IoRC5pdXNocm4oUyk7Uy0tID4wOylOLmlzT2RkKCkmJk4uaWFkZChDKSxOLml1c2hybigxKTtmb3IodmFyIHA9MCx3PTE7IShILndvcmRzWzBdJncpJiZwPDI2OysrcCx3PDw9MSk7aWYocD4wKWZvcihILml1c2hybihwKTtwLS0g'@; put 'PjA7KWcuaXNPZGQoKSYmZy5pYWRkKEMpLGcuaXVzaHJuKDEpO0QuY21wKEgpPj0wPyhELmlzdWIoSCksTi5pc3ViKGcpKTooSC5pc3ViKEQpLGcuaXN1YihOKSl9cmV0dXJuKEo9MD09PUQuY21wbigxKT9OOmcpLmNtcG4oMCk8MCYmSi5pYWRkKGIpLEp9LE0ucHJvdG90eXBlLmdjZD1mdW5j'@; put 'dGlvbihiKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBiLmFicygpO2lmKGIuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIEQ9dGhpcy5jbG9uZSgpLEg9Yi5jbG9uZSgpO0QubmVnYXRpdmU9MCxILm5lZ2F0aXZlPTA7Zm9yKHZhciBOPTA7RC5pc0V2ZW4oKSYmSC5pc0V2ZW4oKTtO'@; put 'KyspRC5pdXNocm4oMSksSC5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO0QuaXNFdmVuKCk7KUQuaXVzaHJuKDEpO2Zvcig7SC5pc0V2ZW4oKTspSC5pdXNocm4oMSk7dmFyIGc9RC5jbXAoSCk7aWYoZzwwKXt2YXIgQz1EO0Q9SCxIPUN9ZWxzZSBpZigwPT09Z3x8MD09PUguY21wbigxKSlicmVh'@; put 'aztELmlzdWIoSCl9cmV0dXJuIEguaXVzaGxuKE4pfSxNLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmVnY2QoYikuYS51bW9kKGIpfSxNLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE0ucHJvdG90eXBlLmlz'@; put 'T2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxNLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZifSxNLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYik7dmFyIEQ9YiUyNixIPShi'@; put 'LUQpLzI2LE49MTw8RDtpZih0aGlzLmxlbmd0aDw9SClyZXR1cm4gdGhpcy5fZXhwYW5kKEgrMSksdGhpcy53b3Jkc1tIXXw9Tix0aGlzO2Zvcih2YXIgZz1OLEM9SDswIT09ZyYmQzx0aGlzLmxlbmd0aDtDKyspe3ZhciBTPTB8dGhpcy53b3Jkc1tDXTtnPShTKz1nKT4+PjI2LHRoaXMud29y'@; put 'ZHNbQ109UyY9NjcxMDg4NjN9cmV0dXJuIDAhPT1nJiYodGhpcy53b3Jkc1tDXT1nLHRoaXMubGVuZ3RoKyspLHRoaXN9LE0ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxNLnByb3RvdHlwZS5jbXBuPWZ1bmN0'@; put 'aW9uKGIpe3ZhciBILEQ9YjwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhRClyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmRClyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlIPTE7ZWxzZXtEJiYoYj0tYiksbShiPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBi'@; put 'aWciKTt2YXIgTj0wfHRoaXMud29yZHNbMF07SD1OPT09Yj8wOk48Yj8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1IOkh9LE0ucHJvdG90eXBlLmNtcD1mdW5jdGlvbihiKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWIubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMu'@; put 'bmVnYXRpdmUmJjAhPT1iLm5lZ2F0aXZlKXJldHVybiAxO3ZhciBEPXRoaXMudWNtcChiKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtRDpEfSxNLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGIpe2lmKHRoaXMubGVuZ3RoPmIubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPGIu'@; put 'bGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgRD0wLEg9dGhpcy5sZW5ndGgtMTtIPj0wO0gtLSl7dmFyIE49MHx0aGlzLndvcmRzW0hdLGc9MHxiLndvcmRzW0hdO2lmKE4hPT1nKXtOPGc/RD0tMTpOPmcmJihEPTEpO2JyZWFrfX1yZXR1cm4gRH0sTS5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKGIp'@; put 'e3JldHVybiAxPT09dGhpcy5jbXBuKGIpfSxNLnByb3RvdHlwZS5ndD1mdW5jdGlvbihiKXtyZXR1cm4gMT09PXRoaXMuY21wKGIpfSxNLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcG4oYik+PTB9LE0ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihiKXtyZXR1cm4g'@; put 'dGhpcy5jbXAoYik+PTB9LE0ucHJvdG90eXBlLmx0bj1mdW5jdGlvbihiKXtyZXR1cm4tMT09PXRoaXMuY21wbihiKX0sTS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oYil7cmV0dXJuLTE9PT10aGlzLmNtcChiKX0sTS5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbXBu'@; put 'KGIpPD0wfSxNLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY21wKGIpPD0wfSxNLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oYil7cmV0dXJuIDA9PT10aGlzLmNtcG4oYil9LE0ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGIpe3JldHVybiAwPT09dGhpcy5jbXAoYil9LE0u'@; put 'cmVkPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgdWUoYil9LE0ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGIpe3JldHVybiBtKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG0oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGgg'@; put 'cG9zaXRpdmVzIiksYi5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGIpfSxNLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0'@; put 'RnJvbSh0aGlzKX0sTS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnJlZD1iLHRoaXN9LE0ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGIpe3JldHVybiBtKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRo'@; put 'aXMuX2ZvcmNlUmVkKGIpfSxNLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihiKXtyZXR1cm4g'@; put 'bSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMu'@; put 'cmVkLnN1Yih0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGIpe3JldHVy'@; put 'biBtKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMu'@; put 'cmVkLl92ZXJpZnkyKHRoaXMsYiksdGhpcy5yZWQubXVsKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGIpLHRoaXMucmVk'@; put 'LmltdWwodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE0ucHJvdG90eXBlLnJlZElTcXI9'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxNLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJl'@; put 'ZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVy'@; put 'cyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LE0ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5y'@; put 'ZWQubmVnKHRoaXMpfSxNLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQmJiFiLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxiKX07dmFyIHE9e2syNTY6bnVsbCxwMjI0Om51bGws'@; put 'cDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBlZShHLGIpe3RoaXMubmFtZT1HLHRoaXMucD1uZXcgTShiLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTSgxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVu'@; put 'Y3Rpb24gdGUoKXtlZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIG9lKCl7ZWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm'@; put 'ZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBzZSgpe2VlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gaGUoKXtlZS5jYWxsKHRoaXMsIjI1NTE5'@; put 'IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIHVlKEcpe2lmKCJzdHJpbmciPT10eXBlb2YgRyl7dmFyIGI9TS5fcHJpbWUoRyk7dGhpcy5tPWIucCx0aGlzLnByaW1lPWJ9ZWxzZSBtKEcuZ3Ru'@; put 'KDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09Ryx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gY2UoRyl7dWUuY2FsbCh0aGlzLEcpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNo'@; put 'aWZ0JTI2KSx0aGlzLnI9bmV3IE0oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMu'@; put 'bWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9ZWUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgTShudWxsKTtyZXR1cm4gYi53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLGJ9LGVlLnByb3Rv'@; put 'dHlwZS5pcmVkdWNlPWZ1bmN0aW9uKGIpe3ZhciBILEQ9Yjtkb3t0aGlzLnNwbGl0KEQsdGhpcy50bXApLEg9KEQ9KEQ9dGhpcy5pbXVsSyhEKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKEg+dGhpcy5uKTt2YXIgTj1IPHRoaXMubj8tMTpELnVjbXAodGhpcy5wKTtyZXR1'@; put 'cm4gMD09PU4/KEQud29yZHNbMF09MCxELmxlbmd0aD0xKTpOPjA/RC5pc3ViKHRoaXMucCk6dm9pZCAwIT09RC5zdHJpcD9ELnN0cmlwKCk6RC5fc3RyaXAoKSxEfSxlZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oYixEKXtiLml1c2hybih0aGlzLm4sMCxEKX0sZWUucHJvdG90eXBlLmlt'@; put 'dWxLPWZ1bmN0aW9uKGIpe3JldHVybiBiLmltdWwodGhpcy5rKX0sbGUodGUsZWUpLHRlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihiLEQpe2Zvcih2YXIgSD00MTk0MzAzLE49TWF0aC5taW4oYi5sZW5ndGgsOSksZz0wO2c8TjtnKyspRC53b3Jkc1tnXT1iLndvcmRzW2ddO2lmKEQubGVu'@; put 'Z3RoPU4sYi5sZW5ndGg8PTkpcmV0dXJuIGIud29yZHNbMF09MCx2b2lkKGIubGVuZ3RoPTEpO3ZhciBDPWIud29yZHNbOV07Zm9yKEQud29yZHNbRC5sZW5ndGgrK109QyZILGc9MTA7ZzxiLmxlbmd0aDtnKyspe3ZhciBTPTB8Yi53b3Jkc1tnXTtiLndvcmRzW2ctMTBdPShTJkgpPDw0fEM+'@; put 'Pj4yMixDPVN9Yi53b3Jkc1tnLTEwXT1DPj4+PTIyLGIubGVuZ3RoLT0wPT09QyYmYi5sZW5ndGg+MTA/MTA6OX0sdGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGIpe2Iud29yZHNbYi5sZW5ndGhdPTAsYi53b3Jkc1tiLmxlbmd0aCsxXT0wLGIubGVuZ3RoKz0yO2Zvcih2YXIgRD0wLEg9'@; put 'MDtIPGIubGVuZ3RoO0grKyl7dmFyIE49MHxiLndvcmRzW0hdO2Iud29yZHNbSF09NjcxMDg4NjMmKEQrPTk3NypOKSxEPTY0Kk4rKEQvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1iLndvcmRzW2IubGVuZ3RoLTFdJiYoYi5sZW5ndGgtLSwwPT09Yi53b3Jkc1tiLmxlbmd0aC0xXSYmYi5sZW5n'@; put 'dGgtLSksYn0sbGUob2UsZWUpLGxlKHNlLGVlKSxsZShoZSxlZSksaGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGIpe2Zvcih2YXIgRD0wLEg9MDtIPGIubGVuZ3RoO0grKyl7dmFyIE49MTkqKDB8Yi53b3Jkc1tIXSkrRCxnPTY3MTA4ODYzJk47Tj4+Pj0yNixiLndvcmRzW0hdPWcsRD1O'@; put 'fXJldHVybiAwIT09RCYmKGIud29yZHNbYi5sZW5ndGgrK109RCksYn0sTS5fcHJpbWU9ZnVuY3Rpb24oYil7aWYocVtiXSlyZXR1cm4gcVtiXTt2YXIgRDtpZigiazI1NiI9PT1iKUQ9bmV3IHRlO2Vsc2UgaWYoInAyMjQiPT09YilEPW5ldyBvZTtlbHNlIGlmKCJwMTkyIj09PWIpRD1uZXcg'@; put 'c2U7ZWxzZXtpZigicDI1NTE5IiE9PWIpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrYik7RD1uZXcgaGV9cmV0dXJuIHFbYl09RCxEfSx1ZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oYil7bSgwPT09Yi5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2'@; put 'ZXMiKSxtKGIucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LHVlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihiLEQpe20oMD09KGIubmVnYXRpdmV8RC5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksbShiLnJlZCYmYi5yZWQ9PT1E'@; put 'LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSx1ZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoYikuX2ZvcmNlUmVkKHRoaXMpOmIudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sdWUucHJv'@; put 'dG90eXBlLm5lZz1mdW5jdGlvbihiKXtyZXR1cm4gYi5pc1plcm8oKT9iLmNsb25lKCk6dGhpcy5tLnN1YihiKS5fZm9yY2VSZWQodGhpcyl9LHVlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9Yi5hZGQoRCk7cmV0dXJuIEguY21wKHRoaXMu'@; put 'bSk+PTAmJkguaXN1Yih0aGlzLm0pLEguX2ZvcmNlUmVkKHRoaXMpfSx1ZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIgSD1iLmlhZGQoRCk7cmV0dXJuIEguY21wKHRoaXMubSk+PTAmJkguaXN1Yih0aGlzLm0pLEh9LHVlLnByb3RvdHlwZS5z'@; put 'dWI9ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9Yi5zdWIoRCk7cmV0dXJuIEguY21wbigwKTwwJiZILmlhZGQodGhpcy5tKSxILl9mb3JjZVJlZCh0aGlzKX0sdWUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9Yi5p'@; put 'c3ViKEQpO3JldHVybiBILmNtcG4oMCk8MCYmSC5pYWRkKHRoaXMubSksSH0sdWUucHJvdG90eXBlLnNobD1mdW5jdGlvbihiLEQpe3JldHVybiB0aGlzLl92ZXJpZnkxKGIpLHRoaXMuaW1vZChiLnVzaGxuKEQpKX0sdWUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhp'@; put 'cy5fdmVyaWZ5MihiLEQpLHRoaXMuaW1vZChiLmltdWwoRCkpfSx1ZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoYixEKSx0aGlzLmltb2QoYi5tdWwoRCkpfSx1ZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5pbXVsKGIs'@; put 'Yi5jbG9uZSgpKX0sdWUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5tdWwoYixiKX0sdWUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oYil7aWYoYi5pc1plcm8oKSlyZXR1cm4gYi5jbG9uZSgpO3ZhciBEPXRoaXMubS5hbmRsbigzKTtpZihtKEQlMj09MSksMz09PUQp'@; put 'e3ZhciBIPXRoaXMubS5hZGQobmV3IE0oMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coYixIKX1mb3IodmFyIE49dGhpcy5tLnN1Ym4oMSksZz0wOyFOLmlzWmVybygpJiYwPT09Ti5hbmRsbigxKTspZysrLE4uaXVzaHJuKDEpO20oIU4uaXNaZXJvKCkpO3ZhciBDPW5ldyBNKDEpLnRv'@; put 'UmVkKHRoaXMpLFM9Qy5yZWROZWcoKSx2PXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxwPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IocD1uZXcgTSgyKnAqcCkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KHAsdikuY21wKFMpOylwLnJlZElBZGQoUyk7Zm9yKHZhciB3PXRoaXMucG93KHAsTiks'@; put 'Sj10aGlzLnBvdyhiLE4uYWRkbigxKS5pdXNocm4oMSkpLG5lPXRoaXMucG93KGIsTiksZGU9ZzswIT09bmUuY21wKEMpOyl7Zm9yKHZhciBmZT1uZSx4ZT0wOzAhPT1mZS5jbXAoQyk7eGUrKylmZT1mZS5yZWRTcXIoKTttKHhlPGRlKTt2YXIgTGU9dGhpcy5wb3codyxuZXcgTSgxKS5pdXNo'@; put 'bG4oZGUteGUtMSkpO0o9Si5yZWRNdWwoTGUpLHc9TGUucmVkU3FyKCksbmU9bmUucmVkTXVsKHcpLGRlPXhlfXJldHVybiBKfSx1ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihiKXt2YXIgRD1iLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09RC5uZWdhdGl2ZT8oRC5uZWdhdGl2ZT0wLHRo'@; put 'aXMuaW1vZChEKS5yZWROZWcoKSk6dGhpcy5pbW9kKEQpfSx1ZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGIsRCl7aWYoRC5pc1plcm8oKSlyZXR1cm4gbmV3IE0oMSkudG9SZWQodGhpcyk7aWYoMD09PUQuY21wbigxKSlyZXR1cm4gYi5jbG9uZSgpO3ZhciBOPW5ldyBBcnJheSgxNik7Tlsw'@; put 'XT1uZXcgTSgxKS50b1JlZCh0aGlzKSxOWzFdPWI7Zm9yKHZhciBnPTI7ZzxOLmxlbmd0aDtnKyspTltnXT10aGlzLm11bChOW2ctMV0sYik7dmFyIEM9TlswXSxTPTAsdj0wLHA9RC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PXAmJihwPTI2KSxnPUQubGVuZ3RoLTE7Zz49MDtnLS0pe2Zvcih2'@; put 'YXIgdz1ELndvcmRzW2ddLEo9cC0xO0o+PTA7Si0tKXt2YXIgbmU9dz4+SiYxO0MhPT1OWzBdJiYoQz10aGlzLnNxcihDKSksMCE9PW5lfHwwIT09Uz8oUzw8PTEsU3w9bmUsKDQ9PSsrdnx8MD09PWcmJjA9PT1KKSYmKEM9dGhpcy5tdWwoQyxOW1NdKSx2PTAsUz0wKSk6dj0wfXA9MjZ9cmV0'@; put 'dXJuIEN9LHVlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oYil7dmFyIEQ9Yi51bW9kKHRoaXMubSk7cmV0dXJuIEQ9PT1iP0QuY2xvbmUoKTpEfSx1ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oYil7dmFyIEQ9Yi5jbG9uZSgpO3JldHVybiBELnJlZD1udWxsLER9LE0u'@; put 'bW9udD1mdW5jdGlvbihiKXtyZXR1cm4gbmV3IGNlKGIpfSxsZShjZSx1ZSksY2UucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5pbW9kKGIudXNobG4odGhpcy5zaGlmdCkpfSxjZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oYil7dmFyIEQ9dGhp'@; put 'cy5pbW9kKGIubXVsKHRoaXMucmludikpO3JldHVybiBELnJlZD1udWxsLER9LGNlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGIsRCl7aWYoYi5pc1plcm8oKXx8RC5pc1plcm8oKSlyZXR1cm4gYi53b3Jkc1swXT0wLGIubGVuZ3RoPTEsYjt2YXIgSD1iLmltdWwoRCksTj1ILm1hc2tuKHRo'@; put 'aXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxnPUguaXN1YihOKS5pdXNocm4odGhpcy5zaGlmdCksQz1nO3JldHVybiBnLmNtcCh0aGlzLm0pPj0wP0M9Zy5pc3ViKHRoaXMubSk6Zy5jbXBuKDApPDAmJihDPWcuaWFkZCh0aGlzLm0pKSxD'@; put 'Ll9mb3JjZVJlZCh0aGlzKX0sY2UucHJvdG90eXBlLm11bD1mdW5jdGlvbihiLEQpe2lmKGIuaXNaZXJvKCl8fEQuaXNaZXJvKCkpcmV0dXJuIG5ldyBNKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgSD1iLm11bChEKSxOPUgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tu'@; put 'KHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGc9SC5pc3ViKE4pLml1c2hybih0aGlzLnNoaWZ0KSxDPWc7cmV0dXJuIGcuY21wKHRoaXMubSk+PTA/Qz1nLmlzdWIodGhpcy5tKTpnLmNtcG4oMCk8MCYmKEM9Zy5pYWRkKHRoaXMubSkpLEMuX2ZvcmNlUmVkKHRoaXMpfSxjZS5wcm90b3R5cGUu'@; put 'aW52bT1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5pbW9kKGIuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShhdD1GLm5tZChhdCksdGhpcyl9LDk2MzYyOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig2NjY5OCkseD1GKDc1ODI5KSxtPUYo'@; put 'Mzk3MDYpLGxlPUYoOTc5NjUpLE09Rig4NjQyMCk7ZnVuY3Rpb24gTyhSKXtNLmNhbGwodGhpcywiZGlnZXN0IiksdGhpcy5faGFzaD1SfWFlKE8sTSksTy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihSKXt0aGlzLl9oYXNoLnVwZGF0ZShSKX0sTy5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LGF0LmV4cG9ydHM9ZnVuY3Rpb24oeil7cmV0dXJuIm1kNSI9PT0oej16LnRvTG93ZXJDYXNlKCkpP25ldyB4OiJybWQxNjAiPT09enx8InJpcGVtZDE2MCI9PT16P25ldyBtOm5ldyBPKGxlKHopKX19LDg3NTg4OihhdCxJZSxGKT0+'@; put 'e3ZhciBhZT1GKDc1ODI5KTthdC5leHBvcnRzPWZ1bmN0aW9uKHgpe3JldHVybihuZXcgYWUpLnVwZGF0ZSh4KS5kaWdlc3QoKX19LDg1ODI1OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig2NjY5OCkseD1GKDk1OTIyKSxtPUYoODY0MjApLGxlPUYoODQzKS5CdWZmZXIsTT1G'@; put 'KDg3NTg4KSxPPUYoMzk3MDYpLFI9Rig5Nzk2NSksej1sZS5hbGxvYygxMjgpO2Z1bmN0aW9uIEsoSSxrKXttLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiBrJiYoaz1sZS5mcm9tKGspKTt2YXIgRT0ic2hhNTEyIj09PUl8fCJzaGEzODQiPT09ST8xMjg6NjQ7dGhpcy5f'@; put 'YWxnPUksdGhpcy5fa2V5PWssay5sZW5ndGg+RT9rPSgicm1kMTYwIj09PUk/bmV3IE86UihJKSkudXBkYXRlKGspLmRpZ2VzdCgpOmsubGVuZ3RoPEUmJihrPWxlLmNvbmNhdChbayx6XSxFKSk7Zm9yKHZhciBWPXRoaXMuX2lwYWQ9bGUuYWxsb2NVbnNhZmUoRSksQj10aGlzLl9vcGFkPWxl'@; put 'LmFsbG9jVW5zYWZlKEUpLFk9MDtZPEU7WSsrKVZbWV09NTRea1tZXSxCW1ldPTkyXmtbWV07dGhpcy5faGFzaD0icm1kMTYwIj09PUk/bmV3IE86UihJKSx0aGlzLl9oYXNoLnVwZGF0ZShWKX1hZShLLG0pLEsucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSSl7dGhpcy5faGFzaC51cGRh'@; put 'dGUoSSl9LEsucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBJPXRoaXMuX2hhc2guZGlnZXN0KCk7cmV0dXJuKCJybWQxNjAiPT09dGhpcy5fYWxnP25ldyBPOlIodGhpcy5fYWxnKSkudXBkYXRlKHRoaXMuX29wYWQpLnVwZGF0ZShJKS5kaWdlc3QoKX0sYXQuZXhwb3J0cz1mdW5j'@; put 'dGlvbihrLEUpe3JldHVybiJybWQxNjAiPT09KGs9ay50b0xvd2VyQ2FzZSgpKXx8InJpcGVtZDE2MCI9PT1rP25ldyBLKCJybWQxNjAiLEUpOiJtZDUiPT09az9uZXcgeChNLEUpOm5ldyBLKGssRSl9fSw5NTkyMjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjY2OTgpLHg9'@; put 'Rig4NDMpLkJ1ZmZlcixtPUYoODY0MjApLGxlPXguYWxsb2MoMTI4KSxNPTY0O2Z1bmN0aW9uIE8oUix6KXttLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiB6JiYoej14LmZyb20oeikpLHRoaXMuX2FsZz1SLHRoaXMuX2tleT16LHoubGVuZ3RoPk0/ej1SKHopOnoubGVu'@; put 'Z3RoPE0mJih6PXguY29uY2F0KFt6LGxlXSxNKSk7Zm9yKHZhciBLPXRoaXMuX2lwYWQ9eC5hbGxvY1Vuc2FmZShNKSxJPXRoaXMuX29wYWQ9eC5hbGxvY1Vuc2FmZShNKSxrPTA7azxNO2srKylLW2tdPTU0Xnpba10sSVtrXT05Ml56W2tdO3RoaXMuX2hhc2g9W0tdfWFlKE8sbSksTy5wcm90'@; put 'b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihSKXt0aGlzLl9oYXNoLnB1c2goUil9LE8ucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBSPXRoaXMuX2FsZyh4LmNvbmNhdCh0aGlzLl9oYXNoKSk7cmV0dXJuIHRoaXMuX2FsZyh4LmNvbmNhdChbdGhpcy5fb3BhZCxSXSkpfSxhdC5leHBv'@; put 'cnRzPU99LDc3OTAzOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0IjtJZS5yYW5kb21CeXRlcz1JZS5ybmc9SWUucHNldWRvUmFuZG9tQnl0ZXM9SWUucHJuZz1GKDQ0MDE5KSxJZS5jcmVhdGVIYXNoPUllLkhhc2g9Rig5NjM2MiksSWUuY3JlYXRlSG1hYz1JZS5IbWFjPUYoODU4MjUpO3ZhciBh'@; put 'ZT1GKDgxNjk5KSx4PU9iamVjdC5rZXlzKGFlKSxtPVsic2hhMSIsInNoYTIyNCIsInNoYTI1NiIsInNoYTM4NCIsInNoYTUxMiIsIm1kNSIsInJtZDE2MCJdLmNvbmNhdCh4KTtJZS5nZXRIYXNoZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbX07dmFyIGxlPUYoNTcxMDApO0llLnBia2RmMj1sZS5w'@; put 'YmtkZjIsSWUucGJrZGYyU3luYz1sZS5wYmtkZjJTeW5jO3ZhciBNPUYoMjU2MDApO0llLkNpcGhlcj1NLkNpcGhlcixJZS5jcmVhdGVDaXBoZXI9TS5jcmVhdGVDaXBoZXIsSWUuQ2lwaGVyaXY9TS5DaXBoZXJpdixJZS5jcmVhdGVDaXBoZXJpdj1NLmNyZWF0ZUNpcGhlcml2LEllLkRlY2lw'@; put 'aGVyPU0uRGVjaXBoZXIsSWUuY3JlYXRlRGVjaXBoZXI9TS5jcmVhdGVEZWNpcGhlcixJZS5EZWNpcGhlcml2PU0uRGVjaXBoZXJpdixJZS5jcmVhdGVEZWNpcGhlcml2PU0uY3JlYXRlRGVjaXBoZXJpdixJZS5nZXRDaXBoZXJzPU0uZ2V0Q2lwaGVycyxJZS5saXN0Q2lwaGVycz1NLmxpc3RD'@; put 'aXBoZXJzO3ZhciBPPUYoNDUxNDQpO0llLkRpZmZpZUhlbGxtYW5Hcm91cD1PLkRpZmZpZUhlbGxtYW5Hcm91cCxJZS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9Ty5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAsSWUuZ2V0RGlmZmllSGVsbG1hbj1PLmdldERpZmZpZUhlbGxtYW4sSWUuY3Jl'@; put 'YXRlRGlmZmllSGVsbG1hbj1PLmNyZWF0ZURpZmZpZUhlbGxtYW4sSWUuRGlmZmllSGVsbG1hbj1PLkRpZmZpZUhlbGxtYW47dmFyIFI9RigyNzY4Nik7SWUuY3JlYXRlU2lnbj1SLmNyZWF0ZVNpZ24sSWUuU2lnbj1SLlNpZ24sSWUuY3JlYXRlVmVyaWZ5PVIuY3JlYXRlVmVyaWZ5LEllLlZl'@; put 'cmlmeT1SLlZlcmlmeSxJZS5jcmVhdGVFQ0RIPUYoMzg4NDApO3ZhciB6PUYoMjcwNTApO0llLnB1YmxpY0VuY3J5cHQ9ei5wdWJsaWNFbmNyeXB0LEllLnByaXZhdGVFbmNyeXB0PXoucHJpdmF0ZUVuY3J5cHQsSWUucHVibGljRGVjcnlwdD16LnB1YmxpY0RlY3J5cHQsSWUucHJpdmF0ZURl'@; put 'Y3J5cHQ9ei5wcml2YXRlRGVjcnlwdDt2YXIgSz1GKDYxMjM3KTtJZS5yYW5kb21GaWxsPUsucmFuZG9tRmlsbCxJZS5yYW5kb21GaWxsU3luYz1LLnJhbmRvbUZpbGxTeW5jLEllLmNyZWF0ZUNyZWRlbnRpYWxzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFsic29ycnksIGNyZWF0ZUNy'@; put 'ZWRlbnRpYWxzIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQiLCJ3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cyIsImh0dHBzOi8vZ2l0aHViLmNvbS9jcnlwdG8tYnJvd3NlcmlmeS9jcnlwdG8tYnJvd3NlcmlmeSJdLmpvaW4oIlxuIikpfSxJZS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVf'@; put 'UFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9O'@; put 'T19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklE'@; put 'OjZ9fSwxMDAxMjpmdW5jdGlvbihhdCxJZSxGKXt2YXIgYWU7YXQuZXhwb3J0cz0oYWU9YWV8fGZ1bmN0aW9uKHgsbSl7dmFyIGxlO2lmKHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuY3J5cHRvJiYobGU9d2luZG93LmNyeXB0byksdHlwZW9mIHNlbGY8InUiJiZzZWxmLmNyeXB0byYmKGxl'@; put 'PXNlbGYuY3J5cHRvKSx0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiYobGU9Z2xvYmFsVGhpcy5jcnlwdG8pLCFsZSYmdHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5tc0NyeXB0byYmKGxlPXdpbmRvdy5tc0NyeXB0byksIWxlJiZ0eXBlb2YgZ2xvYmFsPCJ1IiYm'@; put 'Z2xvYmFsLmNyeXB0byYmKGxlPWdsb2JhbC5jcnlwdG8pLCFsZSl0cnl7bGU9Rig3NzkwMyl9Y2F0Y2h7fXZhciBNPWZ1bmN0aW9uKCl7aWYobGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBsZS5nZXRSYW5kb21WYWx1ZXMpdHJ5e3JldHVybiBsZS5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQz'@; put 'MkFycmF5KDEpKVswXX1jYXRjaHt9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGxlLnJhbmRvbUJ5dGVzKXRyeXtyZXR1cm4gbGUucmFuZG9tQnl0ZXMoNCkucmVhZEludDMyTEUoKX1jYXRjaHt9fXRocm93IG5ldyBFcnJvcigiTmF0aXZlIGNyeXB0byBtb2R1bGUgY291bGQgbm90IGJlIHVzZWQg'@; put 'dG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVyLiIpfSxPPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKCl7ZnVuY3Rpb24gVSgpe31yZXR1cm4gZnVuY3Rpb24ocSl7dmFyIGVlO3JldHVybiBVLnByb3RvdHlwZT1xLGVlPW5ldyBVLFUucHJvdG90eXBlPW51bGwsZWV9fSgpLFI9e30sej1SLmxp'@; put 'Yj17fSxLPXouQmFzZT17ZXh0ZW5kOmZ1bmN0aW9uKFUpe3ZhciBxPU8odGhpcyk7cmV0dXJuIFUmJnEubWl4SW4oVSksKCFxLmhhc093blByb3BlcnR5KCJpbml0Iil8fHRoaXMuaW5pdD09PXEuaW5pdCkmJihxLmluaXQ9ZnVuY3Rpb24oKXtxLiRzdXBlci5pbml0LmFwcGx5KHRoaXMsYXJn'@; put 'dW1lbnRzKX0pLHEuaW5pdC5wcm90b3R5cGU9cSxxLiRzdXBlcj10aGlzLHF9LGNyZWF0ZTpmdW5jdGlvbigpe3ZhciBVPXRoaXMuZXh0ZW5kKCk7cmV0dXJuIFUuaW5pdC5hcHBseShVLGFyZ3VtZW50cyksVX0saW5pdDpmdW5jdGlvbigpe30sbWl4SW46ZnVuY3Rpb24oVSl7Zm9yKHZhciBx'@; put 'IGluIFUpVS5oYXNPd25Qcm9wZXJ0eShxKSYmKHRoaXNbcV09VVtxXSk7VS5oYXNPd25Qcm9wZXJ0eSgidG9TdHJpbmciKSYmKHRoaXMudG9TdHJpbmc9VS50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX0sST16Lldv'@; put 'cmRBcnJheT1LLmV4dGVuZCh7aW5pdDpmdW5jdGlvbihVLHEpe1U9dGhpcy53b3Jkcz1VfHxbXSx0aGlzLnNpZ0J5dGVzPW51bGwhPXE/cTo0KlUubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbihVKXtyZXR1cm4oVXx8RSkuc3RyaW5naWZ5KHRoaXMpfSxjb25jYXQ6ZnVuY3Rpb24oVSl7dmFy'@; put 'IHE9dGhpcy53b3JkcyxlZT1VLndvcmRzLHRlPXRoaXMuc2lnQnl0ZXMsb2U9VS5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksdGUlNClmb3IodmFyIHNlPTA7c2U8b2U7c2UrKylxW3RlK3NlPj4+Ml18PShlZVtzZT4+PjJdPj4+MjQtc2UlNCo4JjI1NSk8PDI0LSh0ZStzZSklNCo4O2Vsc2Ug'@; put 'Zm9yKHZhciB1ZT0wO3VlPG9lO3VlKz00KXFbdGUrdWU+Pj4yXT1lZVt1ZT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1vZSx0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciBVPXRoaXMud29yZHMscT10aGlzLnNpZ0J5dGVzO1VbcT4+PjJdJj00Mjk0OTY3Mjk1PDwzMi1xJTQqOCxVLmxl'@; put 'bmd0aD14LmNlaWwocS80KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgVT1LLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIFUud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxVfSxyYW5kb206ZnVuY3Rpb24oVSl7Zm9yKHZhciBxPVtdLGVlPTA7ZWU8VTtlZSs9NClxLnB1c2goTSgpKTtyZXR1cm4g'@; put 'bmV3IEkuaW5pdChxLFUpfX0pLGs9Ui5lbmM9e30sRT1rLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKFUpe2Zvcih2YXIgcT1VLndvcmRzLGVlPVUuc2lnQnl0ZXMsdGU9W10sb2U9MDtvZTxlZTtvZSsrKXt2YXIgc2U9cVtvZT4+PjJdPj4+MjQtb2UlNCo4JjI1NTt0ZS5wdXNoKChzZT4+PjQp'@; put 'LnRvU3RyaW5nKDE2KSksdGUucHVzaCgoMTUmc2UpLnRvU3RyaW5nKDE2KSl9cmV0dXJuIHRlLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihVKXtmb3IodmFyIHE9VS5sZW5ndGgsZWU9W10sdGU9MDt0ZTxxO3RlKz0yKWVlW3RlPj4+M118PXBhcnNlSW50KFUuc3Vic3RyKHRlLDIpLDE2KTw8'@; put 'MjQtdGUlOCo0O3JldHVybiBuZXcgSS5pbml0KGVlLHEvMil9fSxqPWsuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24oVSl7Zm9yKHZhciBxPVUud29yZHMsZWU9VS5zaWdCeXRlcyx0ZT1bXSxvZT0wO29lPGVlO29lKyspdGUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHFbb2U+Pj4yXT4+'@; put 'PjI0LW9lJTQqOCYyNTUpKTtyZXR1cm4gdGUuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKFUpe2Zvcih2YXIgcT1VLmxlbmd0aCxlZT1bXSx0ZT0wO3RlPHE7dGUrKyllZVt0ZT4+PjJdfD0oMjU1JlUuY2hhckNvZGVBdCh0ZSkpPDwyNC10ZSU0Kjg7cmV0dXJuIG5ldyBJLmluaXQoZWUscSl9'@; put 'fSxWPWsuVXRmOD17c3RyaW5naWZ5OmZ1bmN0aW9uKFUpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShqLnN0cmluZ2lmeShVKSkpfWNhdGNoe3Rocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIFVURi04IGRhdGEiKX19LHBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBqLnBh'@; put 'cnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChVKSkpfX0sQj16LkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG09Sy5leHRlbmQoe3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5fZGF0YT1uZXcgSS5pbml0LHRoaXMuX25EYXRhQnl0ZXM9MH0sX2FwcGVuZDpmdW5jdGlvbihVKXsic3RyaW5nIj09'@; put 'dHlwZW9mIFUmJihVPVYucGFyc2UoVSkpLHRoaXMuX2RhdGEuY29uY2F0KFUpLHRoaXMuX25EYXRhQnl0ZXMrPVUuc2lnQnl0ZXN9LF9wcm9jZXNzOmZ1bmN0aW9uKFUpe3ZhciBxLGVlPXRoaXMuX2RhdGEsdGU9ZWUud29yZHMsb2U9ZWUuc2lnQnl0ZXMsc2U9dGhpcy5ibG9ja1NpemUsdWU9'@; put 'b2UvKDQqc2UpLGNlPSh1ZT1VP3guY2VpbCh1ZSk6eC5tYXgoKDB8dWUpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCkpKnNlLEc9eC5taW4oNCpjZSxvZSk7aWYoY2Upe2Zvcih2YXIgYj0wO2I8Y2U7Yis9c2UpdGhpcy5fZG9Qcm9jZXNzQmxvY2sodGUsYik7cT10ZS5zcGxpY2UoMCxjZSksZWUu'@; put 'c2lnQnl0ZXMtPUd9cmV0dXJuIG5ldyBJLmluaXQocSxHKX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgVT1LLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIFUuX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLFV9LF9taW5CdWZmZXJTaXplOjB9KSxYPSh6Lkhhc2hlcj1CLmV4dGVuZCh7Y2ZnOksuZXh0'@; put 'ZW5kKCksaW5pdDpmdW5jdGlvbihVKXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQoVSksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe0IucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHVwZGF0ZTpmdW5jdGlvbihVKXtyZXR1cm4gdGhpcy5fYXBwZW5kKFUpLHRoaXMu'@; put 'X3Byb2Nlc3MoKSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbihVKXtyZXR1cm4gVSYmdGhpcy5fYXBwZW5kKFUpLHRoaXMuX2RvRmluYWxpemUoKX0sYmxvY2tTaXplOjE2LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oVSl7cmV0dXJuIGZ1bmN0aW9uKHEsZWUpe3JldHVybiBuZXcgVS5pbml0KGVl'@; put 'KS5maW5hbGl6ZShxKX19LF9jcmVhdGVIbWFjSGVscGVyOmZ1bmN0aW9uKFUpe3JldHVybiBmdW5jdGlvbihxLGVlKXtyZXR1cm4gbmV3IFguSE1BQy5pbml0KFUsZWUpLmZpbmFsaXplKHEpfX19KSxSLmFsZ289e30pO3JldHVybiBSfShNYXRoKSxhZSl9LDkyODczOmZ1bmN0aW9uKGF0LEll'@; put 'LEYpe3ZhciBhZTthdC5leHBvcnRzPShhZT1GKDEwMDEyKSxmdW5jdGlvbih4KXt2YXIgbT1hZSxsZT1tLmxpYixNPWxlLldvcmRBcnJheSxPPWxlLkhhc2hlcixSPW0uYWxnbyx6PVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgVj0wO1Y8NjQ7VisrKXpbVl09NDI5NDk2NzI5Nip4LmFicyh4LnNp'@; put 'bihWKzEpKXwwfSgpO3ZhciBLPVIuTUQ1PU8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IE0uaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbihWLEIpe2Zvcih2YXIgWT0w'@; put 'O1k8MTY7WSsrKXt2YXIgWD1CK1ksVT1WW1hdO1ZbWF09MTY3MTE5MzUmKFU8PDh8VT4+PjI0KXw0Mjc4MjU1MzYwJihVPDwyNHxVPj4+OCl9dmFyIHE9dGhpcy5faGFzaC53b3JkcyxlZT1WW0IrMF0sdGU9VltCKzFdLG9lPVZbQisyXSxzZT1WW0IrM10saGU9VltCKzRdLHVlPVZbQis1XSxj'@; put 'ZT1WW0IrNl0sRz1WW0IrN10sYj1WW0IrOF0sRD1WW0IrOV0sSD1WW0IrMTBdLE49VltCKzExXSxnPVZbQisxMl0sQz1WW0IrMTNdLFM9VltCKzE0XSx2PVZbQisxNV0scD1xWzBdLHc9cVsxXSxKPXFbMl0sbmU9cVszXTtwPUkocCx3LEosbmUsZWUsNyx6WzBdKSxuZT1JKG5lLHAsdyxKLHRl'@; put 'LDEyLHpbMV0pLEo9SShKLG5lLHAsdyxvZSwxNyx6WzJdKSx3PUkodyxKLG5lLHAsc2UsMjIselszXSkscD1JKHAsdyxKLG5lLGhlLDcsels0XSksbmU9SShuZSxwLHcsSix1ZSwxMix6WzVdKSxKPUkoSixuZSxwLHcsY2UsMTcsels2XSksdz1JKHcsSixuZSxwLEcsMjIsels3XSkscD1JKHAs'@; put 'dyxKLG5lLGIsNyx6WzhdKSxuZT1JKG5lLHAsdyxKLEQsMTIsels5XSksSj1JKEosbmUscCx3LEgsMTcselsxMF0pLHc9SSh3LEosbmUscCxOLDIyLHpbMTFdKSxwPUkocCx3LEosbmUsZyw3LHpbMTJdKSxuZT1JKG5lLHAsdyxKLEMsMTIselsxM10pLEo9SShKLG5lLHAsdyxTLDE3LHpbMTRd'@; put 'KSxwPWsocCx3PUkodyxKLG5lLHAsdiwyMix6WzE1XSksSixuZSx0ZSw1LHpbMTZdKSxuZT1rKG5lLHAsdyxKLGNlLDkselsxN10pLEo9ayhKLG5lLHAsdyxOLDE0LHpbMThdKSx3PWsodyxKLG5lLHAsZWUsMjAselsxOV0pLHA9ayhwLHcsSixuZSx1ZSw1LHpbMjBdKSxuZT1rKG5lLHAsdyxK'@; put 'LEgsOSx6WzIxXSksSj1rKEosbmUscCx3LHYsMTQselsyMl0pLHc9ayh3LEosbmUscCxoZSwyMCx6WzIzXSkscD1rKHAsdyxKLG5lLEQsNSx6WzI0XSksbmU9ayhuZSxwLHcsSixTLDkselsyNV0pLEo9ayhKLG5lLHAsdyxzZSwxNCx6WzI2XSksdz1rKHcsSixuZSxwLGIsMjAselsyN10pLHA9'@; put 'ayhwLHcsSixuZSxDLDUselsyOF0pLG5lPWsobmUscCx3LEosb2UsOSx6WzI5XSksSj1rKEosbmUscCx3LEcsMTQselszMF0pLHA9RShwLHc9ayh3LEosbmUscCxnLDIwLHpbMzFdKSxKLG5lLHVlLDQselszMl0pLG5lPUUobmUscCx3LEosYiwxMSx6WzMzXSksSj1FKEosbmUscCx3LE4sMTYs'@; put 'elszNF0pLHc9RSh3LEosbmUscCxTLDIzLHpbMzVdKSxwPUUocCx3LEosbmUsdGUsNCx6WzM2XSksbmU9RShuZSxwLHcsSixoZSwxMSx6WzM3XSksSj1FKEosbmUscCx3LEcsMTYselszOF0pLHc9RSh3LEosbmUscCxILDIzLHpbMzldKSxwPUUocCx3LEosbmUsQyw0LHpbNDBdKSxuZT1FKG5l'@; put 'LHAsdyxKLGVlLDExLHpbNDFdKSxKPUUoSixuZSxwLHcsc2UsMTYsels0Ml0pLHc9RSh3LEosbmUscCxjZSwyMyx6WzQzXSkscD1FKHAsdyxKLG5lLEQsNCx6WzQ0XSksbmU9RShuZSxwLHcsSixnLDExLHpbNDVdKSxKPUUoSixuZSxwLHcsdiwxNix6WzQ2XSkscD1qKHAsdz1FKHcsSixuZSxw'@; put 'LG9lLDIzLHpbNDddKSxKLG5lLGVlLDYsels0OF0pLG5lPWoobmUscCx3LEosRywxMCx6WzQ5XSksSj1qKEosbmUscCx3LFMsMTUsels1MF0pLHc9aih3LEosbmUscCx1ZSwyMSx6WzUxXSkscD1qKHAsdyxKLG5lLGcsNix6WzUyXSksbmU9aihuZSxwLHcsSixzZSwxMCx6WzUzXSksSj1qKEos'@; put 'bmUscCx3LEgsMTUsels1NF0pLHc9aih3LEosbmUscCx0ZSwyMSx6WzU1XSkscD1qKHAsdyxKLG5lLGIsNix6WzU2XSksbmU9aihuZSxwLHcsSix2LDEwLHpbNTddKSxKPWooSixuZSxwLHcsY2UsMTUsels1OF0pLHc9aih3LEosbmUscCxDLDIxLHpbNTldKSxwPWoocCx3LEosbmUsaGUsNix6'@; put 'WzYwXSksbmU9aihuZSxwLHcsSixOLDEwLHpbNjFdKSxKPWooSixuZSxwLHcsb2UsMTUsels2Ml0pLHc9aih3LEosbmUscCxELDIxLHpbNjNdKSxxWzBdPXFbMF0rcHwwLHFbMV09cVsxXSt3fDAscVsyXT1xWzJdK0p8MCxxWzNdPXFbM10rbmV8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2'@; put 'YXIgVj10aGlzLl9kYXRhLEI9Vi53b3JkcyxZPTgqdGhpcy5fbkRhdGFCeXRlcyxYPTgqVi5zaWdCeXRlcztCW1g+Pj41XXw9MTI4PDwyNC1YJTMyO3ZhciBVPXguZmxvb3IoWS80Mjk0OTY3Mjk2KSxxPVk7QlsxNSsoWCs2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoVTw8OHxVPj4+MjQpfDQyNzgy'@; put 'NTUzNjAmKFU8PDI0fFU+Pj44KSxCWzE0KyhYKzY0Pj4+OTw8NCldPTE2NzExOTM1JihxPDw4fHE+Pj4yNCl8NDI3ODI1NTM2MCYocTw8MjR8cT4+PjgpLFYuc2lnQnl0ZXM9NCooQi5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgZWU9dGhpcy5faGFzaCx0ZT1lZS53b3Jkcyxv'@; put 'ZT0wO29lPDQ7b2UrKyl7dmFyIHNlPXRlW29lXTt0ZVtvZV09MTY3MTE5MzUmKHNlPDw4fHNlPj4+MjQpfDQyNzgyNTUzNjAmKHNlPDwyNHxzZT4+PjgpfXJldHVybiBlZX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgVj1PLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIFYuX2hhc2g9dGhpcy5faGFz'@; put 'aC5jbG9uZSgpLFZ9fSk7ZnVuY3Rpb24gSShWLEIsWSxYLFUscSxlZSl7dmFyIHRlPVYrKEImWXx+QiZYKStVK2VlO3JldHVybih0ZTw8cXx0ZT4+PjMyLXEpK0J9ZnVuY3Rpb24gayhWLEIsWSxYLFUscSxlZSl7dmFyIHRlPVYrKEImWHxZJn5YKStVK2VlO3JldHVybih0ZTw8cXx0ZT4+PjMy'@; put 'LXEpK0J9ZnVuY3Rpb24gRShWLEIsWSxYLFUscSxlZSl7dmFyIHRlPVYrKEJeWV5YKStVK2VlO3JldHVybih0ZTw8cXx0ZT4+PjMyLXEpK0J9ZnVuY3Rpb24gaihWLEIsWSxYLFUscSxlZSl7dmFyIHRlPVYrKFleKEJ8flgpKStVK2VlO3JldHVybih0ZTw8cXx0ZT4+PjMyLXEpK0J9bS5NRDU9'@; put 'Ty5fY3JlYXRlSGVscGVyKEspLG0uSG1hY01ENT1PLl9jcmVhdGVIbWFjSGVscGVyKEspfShNYXRoKSxhZS5NRDUpfSw0MDEzMjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7SWUudXRpbHM9Rig1MjI5NCksSWUuQ2lwaGVyPUYoMjk0ODQpLEllLkRFUz1GKDE0Mzc0KSxJZS5DQkM9RigxMjA2'@; put 'NiksSWUuRURFPUYoNTk3MTApfSwxMjA2NjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNTc3OTgpLHg9Rig2NjY5OCksbT17fTtmdW5jdGlvbiBsZShPKXthZS5lcXVhbChPLmxlbmd0aCw4LCJJbnZhbGlkIElWIGxlbmd0aCIpLHRoaXMuaXY9bmV3IEFycmF5KDgpO2Zvcih2'@; put 'YXIgUj0wO1I8dGhpcy5pdi5sZW5ndGg7UisrKXRoaXMuaXZbUl09T1tSXX1JZS5pbnN0YW50aWF0ZT1mdW5jdGlvbiBNKE8pe2Z1bmN0aW9uIFIoayl7Ty5jYWxsKHRoaXMsayksdGhpcy5fY2JjSW5pdCgpfXgoUixPKTtmb3IodmFyIHo9T2JqZWN0LmtleXMobSksSz0wO0s8ei5sZW5ndGg7'@; put 'SysrKXt2YXIgST16W0tdO1IucHJvdG90eXBlW0ldPW1bSV19cmV0dXJuIFIuY3JlYXRlPWZ1bmN0aW9uKEUpe3JldHVybiBuZXcgUihFKX0sUn0sbS5fY2JjSW5pdD1mdW5jdGlvbigpe3ZhciBSPW5ldyBsZSh0aGlzLm9wdGlvbnMuaXYpO3RoaXMuX2NiY1N0YXRlPVJ9LG0uX3VwZGF0ZT1m'@; put 'dW5jdGlvbihSLHosSyxJKXt2YXIgRT10aGlzLmNvbnN0cnVjdG9yLnN1cGVyXy5wcm90b3R5cGUsaj10aGlzLl9jYmNTdGF0ZS5pdjtpZigiZW5jcnlwdCI9PT10aGlzLnR5cGUpe2Zvcih2YXIgVj0wO1Y8dGhpcy5ibG9ja1NpemU7VisrKWpbVl1ePVJbeitWXTtmb3IoRS5fdXBkYXRlLmNh'@; put 'bGwodGhpcyxqLDAsSyxJKSxWPTA7Vjx0aGlzLmJsb2NrU2l6ZTtWKyspaltWXT1LW0krVl19ZWxzZXtmb3IoRS5fdXBkYXRlLmNhbGwodGhpcyxSLHosSyxJKSxWPTA7Vjx0aGlzLmJsb2NrU2l6ZTtWKyspS1tJK1ZdXj1qW1ZdO2ZvcihWPTA7Vjx0aGlzLmJsb2NrU2l6ZTtWKyspaltWXT1S'@; put 'W3orVl19fX0sMjk0ODQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDU3Nzk4KTtmdW5jdGlvbiB4KG0pe3RoaXMub3B0aW9ucz1tLHRoaXMudHlwZT10aGlzLm9wdGlvbnMudHlwZSx0aGlzLmJsb2NrU2l6ZT04LHRoaXMuX2luaXQoKSx0aGlzLmJ1ZmZlcj1uZXcgQXJyYXko'@; put 'dGhpcy5ibG9ja1NpemUpLHRoaXMuYnVmZmVyT2ZmPTAsdGhpcy5wYWRkaW5nPSExIT09bS5wYWRkaW5nfWF0LmV4cG9ydHM9eCx4LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbigpe30seC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGxlKXtyZXR1cm4gMD09PWxlLmxlbmd0aD9bXToiZGVj'@; put 'cnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fdXBkYXRlRGVjcnlwdChsZSk6dGhpcy5fdXBkYXRlRW5jcnlwdChsZSl9LHgucHJvdG90eXBlLl9idWZmZXI9ZnVuY3Rpb24obGUsTSl7Zm9yKHZhciBPPU1hdGgubWluKHRoaXMuYnVmZmVyLmxlbmd0aC10aGlzLmJ1ZmZlck9mZixsZS5sZW5ndGgt'@; put 'TSksUj0wO1I8TztSKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmYrUl09bGVbTStSXTtyZXR1cm4gdGhpcy5idWZmZXJPZmYrPU8sT30seC5wcm90b3R5cGUuX2ZsdXNoQnVmZmVyPWZ1bmN0aW9uKGxlLE0pe3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCxsZSxNKSx0aGlz'@; put 'LmJ1ZmZlck9mZj0wLHRoaXMuYmxvY2tTaXplfSx4LnByb3RvdHlwZS5fdXBkYXRlRW5jcnlwdD1mdW5jdGlvbihsZSl7dmFyIE09MCxPPTAsej1uZXcgQXJyYXkoKCh0aGlzLmJ1ZmZlck9mZitsZS5sZW5ndGgpL3RoaXMuYmxvY2tTaXplfDApKnRoaXMuYmxvY2tTaXplKTswIT09dGhpcy5i'@; put 'dWZmZXJPZmYmJihNKz10aGlzLl9idWZmZXIobGUsTSksdGhpcy5idWZmZXJPZmY9PT10aGlzLmJ1ZmZlci5sZW5ndGgmJihPKz10aGlzLl9mbHVzaEJ1ZmZlcih6LE8pKSk7Zm9yKHZhciBLPWxlLmxlbmd0aC0obGUubGVuZ3RoLU0pJXRoaXMuYmxvY2tTaXplO008SztNKz10aGlzLmJsb2Nr'@; put 'U2l6ZSl0aGlzLl91cGRhdGUobGUsTSx6LE8pLE8rPXRoaXMuYmxvY2tTaXplO2Zvcig7TTxsZS5sZW5ndGg7TSsrLHRoaXMuYnVmZmVyT2ZmKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZdPWxlW01dO3JldHVybiB6fSx4LnByb3RvdHlwZS5fdXBkYXRlRGVjcnlwdD1mdW5jdGlvbihs'@; put 'ZSl7Zm9yKHZhciBNPTAsTz0wLFI9TWF0aC5jZWlsKCh0aGlzLmJ1ZmZlck9mZitsZS5sZW5ndGgpL3RoaXMuYmxvY2tTaXplKS0xLHo9bmV3IEFycmF5KFIqdGhpcy5ibG9ja1NpemUpO1I+MDtSLS0pTSs9dGhpcy5fYnVmZmVyKGxlLE0pLE8rPXRoaXMuX2ZsdXNoQnVmZmVyKHosTyk7cmV0'@; put 'dXJuIE0rPXRoaXMuX2J1ZmZlcihsZSxNKSx6fSx4LnByb3RvdHlwZS5maW5hbD1mdW5jdGlvbihsZSl7dmFyIE0sTztyZXR1cm4gbGUmJihNPXRoaXMudXBkYXRlKGxlKSksTz0iZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZmluYWxFbmNyeXB0KCk6dGhpcy5fZmluYWxEZWNyeXB0KCks'@; put 'TT9NLmNvbmNhdChPKTpPfSx4LnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKGxlLE0pe2lmKDA9PT1NKXJldHVybiExO2Zvcig7TTxsZS5sZW5ndGg7KWxlW00rK109MDtyZXR1cm4hMH0seC5wcm90b3R5cGUuX2ZpbmFsRW5jcnlwdD1mdW5jdGlvbigpe2lmKCF0aGlzLl9wYWQodGhpcy5idWZm'@; put 'ZXIsdGhpcy5idWZmZXJPZmYpKXJldHVybltdO3ZhciBsZT1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCxsZSwwKSxsZX0seC5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKGxlKXtyZXR1cm4gbGV9LHgucHJvdG90eXBlLl9maW5h'@; put 'bERlY3J5cHQ9ZnVuY3Rpb24oKXthZS5lcXVhbCh0aGlzLmJ1ZmZlck9mZix0aGlzLmJsb2NrU2l6ZSwiTm90IGVub3VnaCBkYXRhIHRvIGRlY3J5cHQiKTt2YXIgbGU9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fZmx1c2hCdWZmZXIobGUsMCksdGhpcy5fdW5wYWQo'@; put 'bGUpfX0sMTQzNzQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDU3Nzk4KSx4PUYoNjY2OTgpLG09Rig1MjI5NCksbGU9RigyOTQ4NCk7ZnVuY3Rpb24gTSgpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBPKHope2xlLmNhbGwodGhpcyx6'@; put 'KTt2YXIgSz1uZXcgTTt0aGlzLl9kZXNTdGF0ZT1LLHRoaXMuZGVyaXZlS2V5cyhLLHoua2V5KX14KE8sbGUpLGF0LmV4cG9ydHM9TyxPLmNyZWF0ZT1mdW5jdGlvbihLKXtyZXR1cm4gbmV3IE8oSyl9O3ZhciBSPVsxLDEsMiwyLDIsMiwyLDIsMSwyLDIsMiwyLDIsMiwxXTtPLnByb3RvdHlw'@; put 'ZS5kZXJpdmVLZXlzPWZ1bmN0aW9uKEssSSl7Sy5rZXlzPW5ldyBBcnJheSgzMiksYWUuZXF1YWwoSS5sZW5ndGgsdGhpcy5ibG9ja1NpemUsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBrPW0ucmVhZFVJbnQzMkJFKEksMCksRT1tLnJlYWRVSW50MzJCRShJLDQpO20ucGMxKGssRSxLLnRt'@; put 'cCwwKSxrPUsudG1wWzBdLEU9Sy50bXBbMV07Zm9yKHZhciBqPTA7ajxLLmtleXMubGVuZ3RoO2orPTIpe3ZhciBWPVJbaj4+PjFdO2s9bS5yMjhzaGwoayxWKSxFPW0ucjI4c2hsKEUsViksbS5wYzIoayxFLEsua2V5cyxqKX19LE8ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSyxJLGss'@; put 'RSl7dmFyIGo9dGhpcy5fZGVzU3RhdGUsVj1tLnJlYWRVSW50MzJCRShLLEkpLEI9bS5yZWFkVUludDMyQkUoSyxJKzQpO20uaXAoVixCLGoudG1wLDApLFY9ai50bXBbMF0sQj1qLnRtcFsxXSwiZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZW5jcnlwdChqLFYsQixqLnRtcCwwKTp0aGlz'@; put 'Ll9kZWNyeXB0KGosVixCLGoudG1wLDApLEI9ai50bXBbMV0sbS53cml0ZVVJbnQzMkJFKGssVj1qLnRtcFswXSxFKSxtLndyaXRlVUludDMyQkUoayxCLEUrNCl9LE8ucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oSyxJKXtpZighMT09PXRoaXMucGFkZGluZylyZXR1cm4hMTtmb3IodmFyIGs9'@; put 'Sy5sZW5ndGgtSSxFPUk7RTxLLmxlbmd0aDtFKyspS1tFXT1rO3JldHVybiEwfSxPLnByb3RvdHlwZS5fdW5wYWQ9ZnVuY3Rpb24oSyl7aWYoITE9PT10aGlzLnBhZGRpbmcpcmV0dXJuIEs7Zm9yKHZhciBJPUtbSy5sZW5ndGgtMV0saz1LLmxlbmd0aC1JO2s8Sy5sZW5ndGg7aysrKWFlLmVx'@; put 'dWFsKEtba10sSSk7cmV0dXJuIEsuc2xpY2UoMCxLLmxlbmd0aC1JKX0sTy5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24oSyxJLGssRSxqKXtmb3IodmFyIFY9SSxCPWssWT0wO1k8Sy5rZXlzLmxlbmd0aDtZKz0yKXt2YXIgWD1LLmtleXNbWV0sVT1LLmtleXNbWSsxXTttLmV4cGFuZChC'@; put 'LEsudG1wLDApO3ZhciBxPW0uc3Vic3RpdHV0ZShYXj1LLnRtcFswXSxVXj1LLnRtcFsxXSksdGU9QjtCPShWXm0ucGVybXV0ZShxKSk+Pj4wLFY9dGV9bS5yaXAoQixWLEUsail9LE8ucHJvdG90eXBlLl9kZWNyeXB0PWZ1bmN0aW9uKEssSSxrLEUsail7Zm9yKHZhciBWPWssQj1JLFk9Sy5r'@; put 'ZXlzLmxlbmd0aC0yO1k+PTA7WS09Mil7dmFyIFg9Sy5rZXlzW1ldLFU9Sy5rZXlzW1krMV07bS5leHBhbmQoVixLLnRtcCwwKTt2YXIgcT1tLnN1YnN0aXR1dGUoWF49Sy50bXBbMF0sVV49Sy50bXBbMV0pLHRlPVY7Vj0oQl5tLnBlcm11dGUocSkpPj4+MCxCPXRlfW0ucmlwKFYsQixFLGop'@; put 'fX0sNTk3MTA6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDU3Nzk4KSx4PUYoNjY2OTgpLG09RigyOTQ4NCksbGU9RigxNDM3NCk7ZnVuY3Rpb24gTShSLHope2FlLmVxdWFsKHoubGVuZ3RoLDI0LCJJbnZhbGlkIGtleSBsZW5ndGgiKTt2YXIgSz16LnNsaWNlKDAsOCksST16'@; put 'LnNsaWNlKDgsMTYpLGs9ei5zbGljZSgxNiwyNCk7dGhpcy5jaXBoZXJzPSJlbmNyeXB0Ij09PVI/W2xlLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Okt9KSxsZS5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpJfSksbGUuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6a30pXTpbbGUu'@; put 'Y3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6a30pLGxlLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Okl9KSxsZS5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpLfSldfWZ1bmN0aW9uIE8oUil7bS5jYWxsKHRoaXMsUik7dmFyIHo9bmV3IE0odGhpcy50eXBlLHRoaXMub3B0aW9ucy5r'@; put 'ZXkpO3RoaXMuX2VkZVN0YXRlPXp9eChPLG0pLGF0LmV4cG9ydHM9TyxPLmNyZWF0ZT1mdW5jdGlvbih6KXtyZXR1cm4gbmV3IE8oeil9LE8ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oeixLLEksayl7dmFyIEU9dGhpcy5fZWRlU3RhdGU7RS5jaXBoZXJzWzBdLl91cGRhdGUoeixLLEks'@; put 'ayksRS5jaXBoZXJzWzFdLl91cGRhdGUoSSxrLEksayksRS5jaXBoZXJzWzJdLl91cGRhdGUoSSxrLEksayl9LE8ucHJvdG90eXBlLl9wYWQ9bGUucHJvdG90eXBlLl9wYWQsTy5wcm90b3R5cGUuX3VucGFkPWxlLnByb3RvdHlwZS5fdW5wYWR9LDUyMjk0OihhdCxJZSk9PnsidXNlIHN0cmlj'@; put 'dCI7SWUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKGxlLE0pe3JldHVybihsZVswK01dPDwyNHxsZVsxK01dPDwxNnxsZVsyK01dPDw4fGxlWzMrTV0pPj4+MH0sSWUud3JpdGVVSW50MzJCRT1mdW5jdGlvbihsZSxNLE8pe2xlWzArT109TT4+PjI0LGxlWzErT109TT4+PjE2JjI1NSxsZVsyK09d'@; put 'PU0+Pj44JjI1NSxsZVszK09dPTI1NSZNfSxJZS5pcD1mdW5jdGlvbihsZSxNLE8sUil7Zm9yKHZhciB6PTAsSz0wLEk9NjtJPj0wO0ktPTIpe2Zvcih2YXIgaz0wO2s8PTI0O2srPTgpejw8PTEsenw9TT4+PmsrSSYxO2ZvcihrPTA7azw9MjQ7ays9OCl6PDw9MSx6fD1sZT4+PmsrSSYxfWZv'@; put 'cihJPTY7ST49MDtJLT0yKXtmb3Ioaz0xO2s8PTI1O2srPTgpSzw8PTEsS3w9TT4+PmsrSSYxO2ZvcihrPTE7azw9MjU7ays9OClLPDw9MSxLfD1sZT4+PmsrSSYxfU9bUiswXT16Pj4+MCxPW1IrMV09Sz4+PjB9LEllLnJpcD1mdW5jdGlvbihsZSxNLE8sUil7Zm9yKHZhciB6PTAsSz0wLEk9'@; put 'MDtJPDQ7SSsrKWZvcih2YXIgaz0yNDtrPj0wO2stPTgpejw8PTEsenw9TT4+PmsrSSYxLHo8PD0xLHp8PWxlPj4+aytJJjE7Zm9yKEk9NDtJPDg7SSsrKWZvcihrPTI0O2s+PTA7ay09OClLPDw9MSxLfD1NPj4+aytJJjEsSzw8PTEsS3w9bGU+Pj5rK0kmMTtPW1IrMF09ej4+PjAsT1tSKzFd'@; put 'PUs+Pj4wfSxJZS5wYzE9ZnVuY3Rpb24obGUsTSxPLFIpe2Zvcih2YXIgej0wLEs9MCxJPTc7ST49NTtJLS0pe2Zvcih2YXIgaz0wO2s8PTI0O2srPTgpejw8PTEsenw9TT4+aytJJjE7Zm9yKGs9MDtrPD0yNDtrKz04KXo8PD0xLHp8PWxlPj5rK0kmMX1mb3Ioaz0wO2s8PTI0O2srPTgpejw8'@; put 'PTEsenw9TT4+aytJJjE7Zm9yKEk9MTtJPD0zO0krKyl7Zm9yKGs9MDtrPD0yNDtrKz04KUs8PD0xLEt8PU0+PmsrSSYxO2ZvcihrPTA7azw9MjQ7ays9OClLPDw9MSxLfD1sZT4+aytJJjF9Zm9yKGs9MDtrPD0yNDtrKz04KUs8PD0xLEt8PWxlPj5rK0kmMTtPW1IrMF09ej4+PjAsT1tSKzFd'@; put 'PUs+Pj4wfSxJZS5yMjhzaGw9ZnVuY3Rpb24obGUsTSl7cmV0dXJuIGxlPDxNJjI2ODQzNTQ1NXxsZT4+PjI4LU19O3ZhciBGPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwy'@; put 'Myw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO0llLnBjMj1mdW5jdGlvbihsZSxNLE8sUil7Zm9yKHZhciB6PTAsSz0wLEk9Ri5sZW5ndGg+Pj4xLGs9MDtrPEk7aysrKXo8PD0xLHp8PWxlPj4+RltrXSYxO2ZvcihrPUk7azxGLmxlbmd0aDtrKyspSzw8PTEsS3w9TT4+PkZb'@; put 'a10mMTtPW1IrMF09ej4+PjAsT1tSKzFdPUs+Pj4wfSxJZS5leHBhbmQ9ZnVuY3Rpb24obGUsTSxPKXt2YXIgUj0wLHo9MDtSPSgxJmxlKTw8NXxsZT4+PjI3O2Zvcih2YXIgSz0yMztLPj0xNTtLLT00KVI8PD02LFJ8PWxlPj4+SyY2Mztmb3IoSz0xMTtLPj0zO0stPTQpenw9bGU+Pj5LJjYz'@; put 'LHo8PD02O3p8PSgzMSZsZSk8PDF8bGU+Pj4zMSxNW08rMF09Uj4+PjAsTVtPKzFdPXo+Pj4wfTt2YXIgYWU9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2'@; put 'LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwy'@; put 'LDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQs'@; put 'MTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwy'@; put 'LDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywx'@; put 'MiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDEx'@; put 'LDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUs'@; put 'MywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07SWUuc3Vic3RpdHV0ZT1mdW5jdGlvbihsZSxNKXtmb3IodmFyIE89'@; put 'MCxSPTA7Ujw0O1IrKylPPDw9NCxPfD1hZVs2NCpSKyhsZT4+PjE4LTYqUiY2MyldO2ZvcihSPTA7Ujw0O1IrKylPPDw9NCxPfD1hZVsyNTYrNjQqUisoTT4+PjE4LTYqUiY2MyldO3JldHVybiBPPj4+MH07dmFyIHg9WzE2LDI1LDEyLDExLDMsMjAsNCwxNSwzMSwxNyw5LDYsMjcsMTQsMSwy'@; put 'MiwzMCwyNCw4LDE4LDAsNSwyOSwyMywxMywxOSwyLDI2LDEwLDIxLDI4LDddO0llLnBlcm11dGU9ZnVuY3Rpb24obGUpe2Zvcih2YXIgTT0wLE89MDtPPHgubGVuZ3RoO08rKylNPDw9MSxNfD1sZT4+PnhbT10mMTtyZXR1cm4gTT4+PjB9LEllLnBhZFNwbGl0PWZ1bmN0aW9uKGxlLE0sTyl7'@; put 'Zm9yKHZhciBSPWxlLnRvU3RyaW5nKDIpO1IubGVuZ3RoPE07KVI9IjAiK1I7Zm9yKHZhciB6PVtdLEs9MDtLPE07Sys9Tyl6LnB1c2goUi5zbGljZShLLEsrTykpO3JldHVybiB6LmpvaW4oIiAiKX19LDQ1MTQ0OihhdCxJZSxGKT0+e3ZhciBhZT1GKDcxMDk2KSx4PUYoMjk3OTkpLG09Rig5'@; put 'NTU4MCksTT17YmluYXJ5OiEwLGhleDohMCxiYXNlNjQ6ITB9O0llLkRpZmZpZUhlbGxtYW5Hcm91cD1JZS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9SWUuZ2V0RGlmZmllSGVsbG1hbj1mdW5jdGlvbiBsZShSKXt2YXIgej1uZXcgQnVmZmVyKHhbUl0ucHJpbWUsImhleCIpLEs9bmV3IEJ1'@; put 'ZmZlcih4W1JdLmdlbiwiaGV4Iik7cmV0dXJuIG5ldyBtKHosSyl9LEllLmNyZWF0ZURpZmZpZUhlbGxtYW49SWUuRGlmZmllSGVsbG1hbj1mdW5jdGlvbiBPKFIseixLLEkpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoeil8fHZvaWQgMD09PU1bel0/TyhSLCJiaW5hcnkiLHosSyk6KHo9enx8'@; put 'ImJpbmFyeSIsST1JfHwiYmluYXJ5IixLPUt8fG5ldyBCdWZmZXIoWzJdKSxCdWZmZXIuaXNCdWZmZXIoSyl8fChLPW5ldyBCdWZmZXIoSyxJKSksIm51bWJlciI9PXR5cGVvZiBSP25ldyBtKGFlKFIsSyksSywhMCk6KEJ1ZmZlci5pc0J1ZmZlcihSKXx8KFI9bmV3IEJ1ZmZlcihSLHopKSxu'@; put 'ZXcgbShSLEssITApKSl9fSw5NTU4MDooYXQsSWUsRik9Pnt2YXIgYWU9Rig4NzMwMSksbT1uZXcoRig0ODYwNikpLGxlPW5ldyBhZSgyNCksTT1uZXcgYWUoMTEpLE89bmV3IGFlKDEwKSxSPW5ldyBhZSgzKSx6PW5ldyBhZSg3KSxLPUYoNzEwOTYpLEk9Rig0NDAxOSk7ZnVuY3Rpb24gayhY'@; put 'LFUpe3JldHVybiBVPVV8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIoWCl8fChYPW5ldyBCdWZmZXIoWCxVKSksdGhpcy5fcHViPW5ldyBhZShYKSx0aGlzfWZ1bmN0aW9uIEUoWCxVKXtyZXR1cm4gVT1VfHwidXRmOCIsQnVmZmVyLmlzQnVmZmVyKFgpfHwoWD1uZXcgQnVmZmVyKFgsVSkpLHRo'@; put 'aXMuX3ByaXY9bmV3IGFlKFgpLHRoaXN9YXQuZXhwb3J0cz1CO3ZhciBqPXt9O2Z1bmN0aW9uIEIoWCxVLHEpe3RoaXMuc2V0R2VuZXJhdG9yKFUpLHRoaXMuX19wcmltZT1uZXcgYWUoWCksdGhpcy5fcHJpbWU9YWUubW9udCh0aGlzLl9fcHJpbWUpLHRoaXMuX3ByaW1lTGVuPVgubGVuZ3Ro'@; put 'LHRoaXMuX3B1Yj12b2lkIDAsdGhpcy5fcHJpdj12b2lkIDAsdGhpcy5fcHJpbWVDb2RlPXZvaWQgMCxxPyh0aGlzLnNldFB1YmxpY0tleT1rLHRoaXMuc2V0UHJpdmF0ZUtleT1FKTp0aGlzLl9wcmltZUNvZGU9OH1mdW5jdGlvbiBZKFgsVSl7dmFyIHE9bmV3IEJ1ZmZlcihYLnRvQXJyYXko'@; put 'KSk7cmV0dXJuIFU/cS50b1N0cmluZyhVKTpxfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLnByb3RvdHlwZSwidmVyaWZ5RXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdGhpcy5fcHJpbWVDb2RlJiYodGhpcy5fcHJpbWVDb2RlPWZ1'@; put 'bmN0aW9uIFYoWCxVKXt2YXIgcT1VLnRvU3RyaW5nKCJoZXgiKSxlZT1bcSxYLnRvU3RyaW5nKDE2KV0uam9pbigiXyIpO2lmKGVlIGluIGopcmV0dXJuIGpbZWVdO3ZhciBvZSx0ZT0wO2lmKFguaXNFdmVuKCl8fCFLLnNpbXBsZVNpZXZlfHwhSy5mZXJtYXRUZXN0KFgpfHwhbS50ZXN0KFgp'@; put 'KXJldHVybiB0ZSs9MSxqW2VlXT10ZSs9IjAyIj09PXF8fCIwNSI9PT1xPzg6NCx0ZTtzd2l0Y2gobS50ZXN0KFguc2hybigxKSl8fCh0ZSs9MikscSl7Y2FzZSIwMiI6WC5tb2QobGUpLmNtcChNKSYmKHRlKz04KTticmVhaztjYXNlIjA1Ijoob2U9WC5tb2QoTykpLmNtcChSKSYmb2UuY21w'@; put 'KHopJiYodGUrPTgpO2JyZWFrO2RlZmF1bHQ6dGUrPTR9cmV0dXJuIGpbZWVdPXRlLHRlfSh0aGlzLl9fcHJpbWUsdGhpcy5fX2dlbikpLHRoaXMuX3ByaW1lQ29kZX19KSxCLnByb3RvdHlwZS5nZW5lcmF0ZUtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJpdnx8KHRoaXMuX3ByaXY9'@; put 'bmV3IGFlKEkodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0aGlzLmdldFB1YmxpY0tleSgpfSxCLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKFgpe3ZhciBVPShYPShY'@; put 'PW5ldyBhZShYKSkudG9SZWQodGhpcy5fcHJpbWUpKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpLHE9bmV3IEJ1ZmZlcihVLnRvQXJyYXkoKSksZWU9dGhpcy5nZXRQcmltZSgpO2lmKHEubGVuZ3RoPGVlLmxlbmd0aCl7dmFyIHRlPW5ldyBCdWZmZXIoZWUubGVuZ3RoLXEubGVuZ3Ro'@; put 'KTt0ZS5maWxsKDApLHE9QnVmZmVyLmNvbmNhdChbdGUscV0pfXJldHVybiBxfSxCLnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9ZnVuY3Rpb24oVSl7cmV0dXJuIFkodGhpcy5fcHViLFUpfSxCLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKFUpe3JldHVybiBZKHRoaXMuX3ByaXYs'@; put 'VSl9LEIucHJvdG90eXBlLmdldFByaW1lPWZ1bmN0aW9uKFgpe3JldHVybiBZKHRoaXMuX19wcmltZSxYKX0sQi5wcm90b3R5cGUuZ2V0R2VuZXJhdG9yPWZ1bmN0aW9uKFgpe3JldHVybiBZKHRoaXMuX2dlbixYKX0sQi5wcm90b3R5cGUuc2V0R2VuZXJhdG9yPWZ1bmN0aW9uKFgsVSl7cmV0'@; put 'dXJuIFU9VXx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihYKXx8KFg9bmV3IEJ1ZmZlcihYLFUpKSx0aGlzLl9fZ2VuPVgsdGhpcy5fZ2VuPW5ldyBhZShYKSx0aGlzfX0sNzEwOTY6KGF0LEllLEYpPT57dmFyIGFlPUYoNDQwMTkpO2F0LmV4cG9ydHM9dGUsdGUuc2ltcGxlU2lldmU9cSx0ZS5m'@; put 'ZXJtYXRUZXN0PWVlO3ZhciB4PUYoODczMDEpLG09bmV3IHgoMjQpLE09bmV3KEYoNDg2MDYpKSxPPW5ldyB4KDEpLFI9bmV3IHgoMiksej1uZXcgeCg1KSxrPShuZXcgeCgxNiksbmV3IHgoOCksbmV3IHgoMTApKSxFPW5ldyB4KDMpLFY9KG5ldyB4KDcpLG5ldyB4KDExKSksQj1uZXcgeCg0'@; put 'KSxYPShuZXcgeCgxMiksbnVsbCk7ZnVuY3Rpb24gcShvZSl7Zm9yKHZhciBzZT1mdW5jdGlvbiBVKCl7aWYobnVsbCE9PVgpcmV0dXJuIFg7dmFyIHNlPVtdO3NlWzBdPTI7Zm9yKHZhciBoZT0xLHVlPTM7dWU8MTA0ODU3Njt1ZSs9Mil7Zm9yKHZhciBjZT1NYXRoLmNlaWwoTWF0aC5zcXJ0'@; put 'KHVlKSksRz0wO0c8aGUmJnNlW0ddPD1jZSYmdWUlc2VbR10hPTA7RysrKTtoZSE9PUcmJnNlW0ddPD1jZXx8KHNlW2hlKytdPXVlKX1yZXR1cm4gWD1zZSxzZX0oKSxoZT0wO2hlPHNlLmxlbmd0aDtoZSsrKWlmKDA9PT1vZS5tb2RuKHNlW2hlXSkpcmV0dXJuIDA9PT1vZS5jbXBuKHNlW2hl'@; put 'XSk7cmV0dXJuITB9ZnVuY3Rpb24gZWUob2Upe3ZhciBzZT14Lm1vbnQob2UpO3JldHVybiAwPT09Ui50b1JlZChzZSkucmVkUG93KG9lLnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0aW9uIHRlKG9lLHNlKXtpZihvZTwxNilyZXR1cm4gbmV3IHgoMj09PXNlfHw1PT09c2U/WzE0'@; put 'MCwxMjNdOlsxNDAsMzldKTtzZT1uZXcgeChzZSk7Zm9yKHZhciBoZSx1ZTs7KXtmb3IoaGU9bmV3IHgoYWUoTWF0aC5jZWlsKG9lLzgpKSk7aGUuYml0TGVuZ3RoKCk+b2U7KWhlLmlzaHJuKDEpO2lmKGhlLmlzRXZlbigpJiZoZS5pYWRkKE8pLGhlLnRlc3RuKDEpfHxoZS5pYWRkKFIpLHNl'@; put 'LmNtcChSKSl7aWYoIXNlLmNtcCh6KSlmb3IoO2hlLm1vZChrKS5jbXAoRSk7KWhlLmlhZGQoQil9ZWxzZSBmb3IoO2hlLm1vZChtKS5jbXAoVik7KWhlLmlhZGQoQik7aWYocSh1ZT1oZS5zaHJuKDEpKSYmcShoZSkmJmVlKHVlKSYmZWUoaGUpJiZNLnRlc3QodWUpJiZNLnRlc3QoaGUpKXJl'@; put 'dHVybiBoZX19fSw4NzMwMTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUseCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0oRyxiKXtpZighRyl0aHJvdyBuZXcgRXJyb3IoYnx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBsZShHLGIpe0cuc3VwZXJfPWI7dmFyIEQ9ZnVuY3Rp'@; put 'b24oKXt9O0QucHJvdG90eXBlPWIucHJvdG90eXBlLEcucHJvdG90eXBlPW5ldyBELEcucHJvdG90eXBlLmNvbnN0cnVjdG9yPUd9ZnVuY3Rpb24gTShHLGIsRCl7aWYoTS5pc0JOKEcpKXJldHVybiBHO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlz'@; put 'LnJlZD1udWxsLG51bGwhPT1HJiYoKCJsZSI9PT1ifHwiYmUiPT09YikmJihEPWIsYj0xMCksdGhpcy5faW5pdChHfHwwLGJ8fDEwLER8fCJiZSIpKX12YXIgTzsib2JqZWN0Ij09dHlwZW9mIGFlP2FlLmV4cG9ydHM9TTp4LkJOPU0sTS5CTj1NLE0ud29yZFNpemU9MjY7dHJ5e089dHlwZW9m'@; put 'IHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuQnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOkYoNzc0OCkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBSKEcsYil7dmFyIEQ9Ry5jaGFyQ29kZUF0KGIpO3JldHVybiBEPj02NSYmRDw9NzA/RC01NTpEPj05NyYmRDw9MTAyP0QtODc6RC00OCYxNX1m'@; put 'dW5jdGlvbiB6KEcsYixEKXt2YXIgSD1SKEcsRCk7cmV0dXJuIEQtMT49YiYmKEh8PVIoRyxELTEpPDw0KSxIfWZ1bmN0aW9uIEsoRyxiLEQsSCl7Zm9yKHZhciBOPTAsZz1NYXRoLm1pbihHLmxlbmd0aCxEKSxDPWI7QzxnO0MrKyl7dmFyIFM9Ry5jaGFyQ29kZUF0KEMpLTQ4O04qPUgsTis9'@; put 'Uz49NDk/Uy00OSsxMDpTPj0xNz9TLTE3KzEwOlN9cmV0dXJuIE59TS5pc0JOPWZ1bmN0aW9uKGIpe3JldHVybiBiIGluc3RhbmNlb2YgTXx8bnVsbCE9PWImJiJvYmplY3QiPT10eXBlb2YgYiYmYi5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU0ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoYi53'@; put 'b3Jkcyl9LE0ubWF4PWZ1bmN0aW9uKGIsRCl7cmV0dXJuIGIuY21wKEQpPjA/YjpEfSxNLm1pbj1mdW5jdGlvbihiLEQpe3JldHVybiBiLmNtcChEKTwwP2I6RH0sTS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oYixELEgpe2lmKCJudW1iZXIiPT10eXBlb2YgYilyZXR1cm4gdGhpcy5faW5p'@; put 'dE51bWJlcihiLEQsSCk7aWYoIm9iamVjdCI9PXR5cGVvZiBiKXJldHVybiB0aGlzLl9pbml0QXJyYXkoYixELEgpOyJoZXgiPT09RCYmKEQ9MTYpLG0oRD09PSgwfEQpJiZEPj0yJiZEPD0zNik7dmFyIE49MDsiLSI9PT0oYj1iLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYm'@; put 'KE4rKyx0aGlzLm5lZ2F0aXZlPTEpLE48Yi5sZW5ndGgmJigxNj09PUQ/dGhpcy5fcGFyc2VIZXgoYixOLEgpOih0aGlzLl9wYXJzZUJhc2UoYixELE4pLCJsZSI9PT1IJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksRCxIKSkpfSxNLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5j'@; put 'dGlvbihiLEQsSCl7YjwwJiYodGhpcy5uZWdhdGl2ZT0xLGI9LWIpLGI8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmJdLHRoaXMubGVuZ3RoPTEpOmI8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmYixiLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0'@; put 'aD0yKToobShiPDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJmIsYi82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09SCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLEQsSCl9LE0ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rp'@; put 'b24oYixELEgpe2lmKG0oIm51bWJlciI9PXR5cGVvZiBiLmxlbmd0aCksYi5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoYi5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zv'@; put 'cih2YXIgTj0wO048dGhpcy5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09MDt2YXIgZyxDLFM9MDtpZigiYmUiPT09SClmb3IoTj1iLmxlbmd0aC0xLGc9MDtOPj0wO04tPTMpdGhpcy53b3Jkc1tnXXw9KEM9YltOXXxiW04tMV08PDh8YltOLTJdPDwxNik8PFMmNjcxMDg4NjMsdGhpcy53b3Jk'@; put 'c1tnKzFdPUM+Pj4yNi1TJjY3MTA4ODYzLChTKz0yNCk+PTI2JiYoUy09MjYsZysrKTtlbHNlIGlmKCJsZSI9PT1IKWZvcihOPTAsZz0wO048Yi5sZW5ndGg7Tis9Myl0aGlzLndvcmRzW2ddfD0oQz1iW05dfGJbTisxXTw8OHxiW04rMl08PDE2KTw8UyY2NzEwODg2Myx0aGlzLndvcmRzW2cr'@; put 'MV09Qz4+PjI2LVMmNjcxMDg4NjMsKFMrPTI0KT49MjYmJihTLT0yNixnKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihiLEQsSCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChiLmxlbmd0aC1EKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0'@; put 'aGlzLmxlbmd0aCk7Zm9yKHZhciBOPTA7Tjx0aGlzLmxlbmd0aDtOKyspdGhpcy53b3Jkc1tOXT0wO3ZhciBTLGc9MCxDPTA7aWYoImJlIj09PUgpZm9yKE49Yi5sZW5ndGgtMTtOPj1EO04tPTIpUz16KGIsRCxOKTw8Zyx0aGlzLndvcmRzW0NdfD02NzEwODg2MyZTLGc+PTE4PyhnLT0xOCx0'@; put 'aGlzLndvcmRzW0MrPTFdfD1TPj4+MjYpOmcrPTg7ZWxzZSBmb3IoTj0oYi5sZW5ndGgtRCklMj09MD9EKzE6RDtOPGIubGVuZ3RoO04rPTIpUz16KGIsRCxOKTw8Zyx0aGlzLndvcmRzW0NdfD02NzEwODg2MyZTLGc+PTE4PyhnLT0xOCx0aGlzLndvcmRzW0MrPTFdfD1TPj4+MjYpOmcrPTg7'@; put 'dGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKGIsRCxIKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgTj0wLGc9MTtnPD02NzEwODg2MztnKj1EKU4rKztOLS0sZz1nL0R8MDtmb3IodmFyIEM9Yi5sZW5ndGgtSCxTPUMlTix2PU1hdGgu'@; put 'bWluKEMsQy1TKStILHA9MCx3PUg7dzx2O3crPU4pcD1LKGIsdyx3K04sRCksdGhpcy5pbXVsbihnKSx0aGlzLndvcmRzWzBdK3A8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9cDp0aGlzLl9pYWRkbihwKTtpZigwIT09Uyl7dmFyIEo9MTtmb3IocD1LKGIsdyxiLmxlbmd0aCxEKSx3PTA7dzxT'@; put 'O3crKylKKj1EO3RoaXMuaW11bG4oSiksdGhpcy53b3Jkc1swXStwPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPXA6dGhpcy5faWFkZG4ocCl9dGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGIpe2Iud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEQ9'@; put 'MDtEPHRoaXMubGVuZ3RoO0QrKyliLndvcmRzW0RdPXRoaXMud29yZHNbRF07Yi5sZW5ndGg9dGhpcy5sZW5ndGgsYi5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGIucmVkPXRoaXMucmVkfSxNLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBiPW5ldyBNKG51bGwpO3JldHVybiB0aGlz'@; put 'LmNvcHkoYiksYn0sTS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihiKXtmb3IoO3RoaXMubGVuZ3RoPGI7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndv'@; put 'cmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxNLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTS5wcm90'@; put 'b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgST1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIs'@; put 'IjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAw'@; put 'MDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxr'@; put 'PVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLEU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcs'@; put 'MTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNl'@; put 'NSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gVihHLGIsRCl7RC5uZWdhdGl2ZT1iLm5lZ2F0aXZlXkcubmVnYXRpdmU7dmFyIEg9Ry5sZW5ndGgrYi5sZW5ndGh8MDtELmxlbmd0aD1ILEg9SC0xfDA7dmFyIE49MHxHLndv'@; put 'cmRzWzBdLGc9MHxiLndvcmRzWzBdLEM9TipnLHY9Qy82NzEwODg2NHwwO0Qud29yZHNbMF09NjcxMDg4NjMmQztmb3IodmFyIHA9MTtwPEg7cCsrKXtmb3IodmFyIHc9dj4+PjI2LEo9NjcxMDg4NjMmdixuZT1NYXRoLm1pbihwLGIubGVuZ3RoLTEpLGRlPU1hdGgubWF4KDAscC1HLmxlbmd0'@; put 'aCsxKTtkZTw9bmU7ZGUrKyl3Kz0oQz0oTj0wfEcud29yZHNbcC1kZXwwXSkqKGc9MHxiLndvcmRzW2RlXSkrSikvNjcxMDg4NjR8MCxKPTY3MTA4ODYzJkM7RC53b3Jkc1twXT0wfEosdj0wfHd9cmV0dXJuIDAhPT12P0Qud29yZHNbcF09MHx2OkQubGVuZ3RoLS0sRC5zdHJpcCgpfU0ucHJv'@; put 'dG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKGIsRCl7dmFyIEg7aWYoRD0wfER8fDEsMTY9PT0oYj1ifHwxMCl8fCJoZXgiPT09Yil7SD0iIjtmb3IodmFyIE49MCxnPTAsQz0wO0M8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz10aGlzLndvcmRzW0NdLHY9KDE2Nzc3MjE1JihTPDxOfGcpKS50b1N0'@; put 'cmluZygxNik7SD0wIT0oZz1TPj4+MjQtTiYxNjc3NzIxNSl8fEMhPT10aGlzLmxlbmd0aC0xP0lbNi12Lmxlbmd0aF0rditIOnYrSCwoTis9Mik+PTI2JiYoTi09MjYsQy0tKX1mb3IoMCE9PWcmJihIPWcudG9TdHJpbmcoMTYpK0gpO0gubGVuZ3RoJUQhPTA7KUg9IjAiK0g7cmV0dXJuIDAh'@; put 'PT10aGlzLm5lZ2F0aXZlJiYoSD0iLSIrSCksSH1pZihiPT09KDB8YikmJmI+PTImJmI8PTM2KXt2YXIgcD1rW2JdLHc9RVtiXTtIPSIiO3ZhciBKPXRoaXMuY2xvbmUoKTtmb3IoSi5uZWdhdGl2ZT0wOyFKLmlzWmVybygpOyl7dmFyIG5lPUoubW9kbih3KS50b1N0cmluZyhiKTtIPShKPUou'@; put 'aWRpdm4odykpLmlzWmVybygpP25lK0g6SVtwLW5lLmxlbmd0aF0rbmUrSH1mb3IodGhpcy5pc1plcm8oKSYmKEg9IjAiK0gpO0gubGVuZ3RoJUQhPTA7KUg9IjAiK0g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoSD0iLSIrSCksSH1tKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIg'@; put 'YW5kIDM2Iil9LE0ucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP2IrPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9iKz00NTAzNTk5NjI3MzcwNDk2'@; put 'KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmbSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LWI6Yn0sTS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmco'@; put 'MTYpfSxNLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihiLEQpe3JldHVybiBtKHR5cGVvZiBPPCJ1IiksdGhpcy50b0FycmF5TGlrZShPLGIsRCl9LE0ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxiLEQpfSxNLnByb3Rv'@; put 'dHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihiLEQsSCl7dmFyIE49dGhpcy5ieXRlTGVuZ3RoKCksZz1IfHxNYXRoLm1heCgxLE4pO20oTjw9ZywiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLG0oZz4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlz'@; put 'LnN0cmlwKCk7dmFyIHYscCxDPSJsZSI9PT1ELFM9bmV3IGIoZyksdz10aGlzLmNsb25lKCk7aWYoQyl7Zm9yKHA9MDshdy5pc1plcm8oKTtwKyspdj13LmFuZGxuKDI1NSksdy5pdXNocm4oOCksU1twXT12O2Zvcig7cDxnO3ArKylTW3BdPTB9ZWxzZXtmb3IocD0wO3A8Zy1OO3ArKylTW3Bd'@; put 'PTA7Zm9yKHA9MDshdy5pc1plcm8oKTtwKyspdj13LmFuZGxuKDI1NSksdy5pdXNocm4oOCksU1tnLXAtMV09dn1yZXR1cm4gU30sTS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKGIpe3JldHVybiAzMi1NYXRoLmNsejMyKGIpfTpmdW5jdGlvbihiKXt2YXIgRD1i'@; put 'LEg9MDtyZXR1cm4gRD49NDA5NiYmKEgrPTEzLEQ+Pj49MTMpLEQ+PTY0JiYoSCs9NyxEPj4+PTcpLEQ+PTgmJihIKz00LEQ+Pj49NCksRD49MiYmKEgrPTIsRD4+Pj0yKSxIK0R9LE0ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihiKXtpZigwPT09YilyZXR1cm4gMjY7dmFyIEQ9YixI'@; put 'PTA7cmV0dXJuIDgxOTEmRHx8KEgrPTEzLEQ+Pj49MTMpLDEyNyZEfHwoSCs9NyxEPj4+PTcpLDE1JkR8fChIKz00LEQ+Pj49NCksMyZEfHwoSCs9MixEPj4+PTIpLDEmRHx8SCsrLEh9LE0ucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBEPXRoaXMuX2NvdW50Qml0cyh0aGlz'@; put 'LndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK0R9LE0ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIGI9MCxEPTA7RDx0aGlzLmxlbmd0aDtEKyspe3ZhciBIPXRoaXMuX3plcm9CaXRz'@; put 'KHRoaXMud29yZHNbRF0pO2lmKGIrPUgsMjYhPT1IKWJyZWFrfXJldHVybiBifSxNLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxNLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oYil7cmV0dXJuIDAhPT10aGlz'@; put 'Lm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oYikuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxNLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy50ZXN0bihiLTEpP3RoaXMubm90bihiKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxNLnByb3RvdHlwZS5p'@; put 'c05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sTS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LE0ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEp'@; put 'LHRoaXN9LE0ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oYil7Zm9yKDt0aGlzLmxlbmd0aDxiLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgRD0wO0Q8Yi5sZW5ndGg7RCsrKXRoaXMud29yZHNbRF09dGhpcy53b3Jkc1tEXXxiLndvcmRzW0RdO3JldHVybiB0'@; put 'aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlvcj1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT0odGhpcy5uZWdhdGl2ZXxiLm5lZ2F0aXZlKSksdGhpcy5pdW9yKGIpfSxNLnByb3RvdHlwZS5vcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLmlv'@; put 'cihiKTpiLmNsb25lKCkuaW9yKHRoaXMpfSxNLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKGIpOmIuY2xvbmUoKS5pdW9yKHRoaXMpfSxNLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihiKXt2YXIgRDtEPXRo'@; put 'aXMubGVuZ3RoPmIubGVuZ3RoP2I6dGhpcztmb3IodmFyIEg9MDtIPEQubGVuZ3RoO0grKyl0aGlzLndvcmRzW0hdPXRoaXMud29yZHNbSF0mYi53b3Jkc1tIXTtyZXR1cm4gdGhpcy5sZW5ndGg9RC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGIpe3Jl'@; put 'dHVybiBtKDA9PSh0aGlzLm5lZ2F0aXZlfGIubmVnYXRpdmUpKSx0aGlzLml1YW5kKGIpfSxNLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKGIpOmIuY2xvbmUoKS5pYW5kKHRoaXMpfSxNLnByb3RvdHlwZS51'@; put 'YW5kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoYik6Yi5jbG9uZSgpLml1YW5kKHRoaXMpfSxNLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihiKXt2YXIgRCxIO3RoaXMubGVuZ3RoPmIubGVuZ3RoPyhEPXRoaXMsSD1iKTooRD1i'@; put 'LEg9dGhpcyk7Zm9yKHZhciBOPTA7TjxILmxlbmd0aDtOKyspdGhpcy53b3Jkc1tOXT1ELndvcmRzW05dXkgud29yZHNbTl07aWYodGhpcyE9PUQpZm9yKDtOPEQubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPUQud29yZHNbTl07cmV0dXJuIHRoaXMubGVuZ3RoPUQubGVuZ3RoLHRoaXMuc3Ry'@; put 'aXAoKX0sTS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT0odGhpcy5uZWdhdGl2ZXxiLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihiKX0sTS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihi'@; put 'KTpiLmNsb25lKCkuaXhvcih0aGlzKX0sTS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKGIpOmIuY2xvbmUoKS5pdXhvcih0aGlzKX0sTS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oYil7bSgibnVtYmVy'@; put 'Ij09dHlwZW9mIGImJmI+PTApO3ZhciBEPTB8TWF0aC5jZWlsKGIvMjYpLEg9YiUyNjt0aGlzLl9leHBhbmQoRCksSD4wJiZELS07Zm9yKHZhciBOPTA7TjxEO04rKyl0aGlzLndvcmRzW05dPTY3MTA4ODYzJn50aGlzLndvcmRzW05dO3JldHVybiBIPjAmJih0aGlzLndvcmRzW05dPX50aGlz'@; put 'LndvcmRzW05dJjY3MTA4ODYzPj4yNi1IKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihiKX0sTS5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihiLEQpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgSD1i'@; put 'LzI2fDAsTj1iJTI2O3JldHVybiB0aGlzLl9leHBhbmQoSCsxKSx0aGlzLndvcmRzW0hdPUQ/dGhpcy53b3Jkc1tIXXwxPDxOOnRoaXMud29yZHNbSF0mfigxPDxOKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oYil7dmFyIEQsSCxOO2lmKDAhPT10aGlzLm5lZ2F0'@; put 'aXZlJiYwPT09Yi5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLEQ9dGhpcy5pc3ViKGIpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWIubmVnYXRpdmUpcmV0dXJuIGIubmVnYXRpdmU9MCxEPXRoaXMuaXN1YihiKSxi'@; put 'Lm5lZ2F0aXZlPTEsRC5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5iLmxlbmd0aD8oSD10aGlzLE49Yik6KEg9YixOPXRoaXMpO2Zvcih2YXIgZz0wLEM9MDtDPE4ubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTY3MTA4ODYzJihEPSgwfEgud29yZHNbQ10pKygwfE4ud29yZHNbQ10pK2cpLGc9'@; put 'RD4+PjI2O2Zvcig7MCE9PWcmJkM8SC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmKEQ9KDB8SC53b3Jkc1tDXSkrZyksZz1EPj4+MjY7aWYodGhpcy5sZW5ndGg9SC5sZW5ndGgsMCE9PWcpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09Zyx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYo'@; put 'SCE9PXRoaXMpZm9yKDtDPEgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPUgud29yZHNbQ107cmV0dXJuIHRoaXN9LE0ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihiKXt2YXIgRDtyZXR1cm4gMCE9PWIubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhiLm5lZ2F0aXZlPTAsRD10aGlzLnN1'@; put 'YihiKSxiLm5lZ2F0aXZlXj0xLEQpOjA9PT1iLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLEQ9Yi5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLEQpOnRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGIpOmIuY2xvbmUoKS5pYWRkKHRo'@; put 'aXMpfSxNLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGIpe2lmKDAhPT1iLm5lZ2F0aXZlKXtiLm5lZ2F0aXZlPTA7dmFyIEQ9dGhpcy5pYWRkKGIpO3JldHVybiBiLm5lZ2F0aXZlPTEsRC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRo'@; put 'aXMuaWFkZChiKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgTixnLEg9dGhpcy5jbXAoYik7aWYoMD09PUgpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO0g+MD8oTj10aGlzLGc9Yik6KE49YixnPXRoaXMpO2Zv'@; put 'cih2YXIgQz0wLFM9MDtTPGcubGVuZ3RoO1MrKylDPShEPSgwfE4ud29yZHNbU10pLSgwfGcud29yZHNbU10pK0MpPj4yNix0aGlzLndvcmRzW1NdPTY3MTA4ODYzJkQ7Zm9yKDswIT09QyYmUzxOLmxlbmd0aDtTKyspQz0oRD0oMHxOLndvcmRzW1NdKStDKT4+MjYsdGhpcy53b3Jkc1tTXT02'@; put 'NzEwODg2MyZEO2lmKDA9PT1DJiZTPE4ubGVuZ3RoJiZOIT09dGhpcylmb3IoO1M8Ti5sZW5ndGg7UysrKXRoaXMud29yZHNbU109Ti53b3Jkc1tTXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsUyksTiE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3Ry'@; put 'aXAoKX0sTS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihiKX07dmFyIEI9ZnVuY3Rpb24oYixELEgpe3ZhciB2LHAsdyxOPWIud29yZHMsZz1ELndvcmRzLEM9SC53b3JkcyxTPTAsSj0wfE5bMF0sbmU9ODE5MSZKLGRlPUo+Pj4xMyxmZT0wfE5b'@; put 'MV0seGU9ODE5MSZmZSxMZT1mZT4+PjEzLEZlPTB8TlsyXSxPZT04MTkxJkZlLGplPUZlPj4+MTMsV2U9MHxOWzNdLEtlPTgxOTEmV2UsWWU9V2U+Pj4xMyxRZT0wfE5bNF0sbHQ9ODE5MSZRZSxQZT1RZT4+PjEzLGJlPTB8Tls1XSxBZT04MTkxJmJlLFRlPWJlPj4+MTMscWU9MHxOWzZdLFhl'@; put 'PTgxOTEmcWUsVWU9cWU+Pj4xMyxodD0wfE5bN10sTWU9ODE5MSZodCxEZT1odD4+PjEzLHplPTB8Tls4XSxvdD04MTkxJnplLHV0PXplPj4+MTMsTXQ9MHxOWzldLEh0PTgxOTEmTXQsUHQ9TXQ+Pj4xMyxvbj0wfGdbMF0sQ249ODE5MSZvbixVdD1vbj4+PjEzLGJuPTB8Z1sxXSxXbj04MTkx'@; put 'JmJuLGVuPWJuPj4+MTMsJG49MHxnWzJdLEhuPTgxOTEmJG4sZnQ9JG4+Pj4xMyxmbj0wfGdbM10saG49ODE5MSZmbix3dD1mbj4+PjEzLFh0PTB8Z1s0XSxfdD04MTkxJlh0LE50PVh0Pj4+MTMsbW49MHxnWzVdLHJ0PTgxOTEmbW4sSXQ9bW4+Pj4xMyxRdD0wfGdbNl0sRHQ9ODE5MSZRdCxw'@; put 'dD1RdD4+PjEzLFl0PTB8Z1s3XSxJbj04MTkxJll0LHp0PVl0Pj4+MTMseW49MHxnWzhdLHhuPTgxOTEmeW4sc249eW4+Pj4xMyxCbj0wfGdbOV0sUm49ODE5MSZCbiwkdD1Cbj4+PjEzO0gubmVnYXRpdmU9Yi5uZWdhdGl2ZV5ELm5lZ2F0aXZlLEgubGVuZ3RoPTE5O3ZhciBGbj0oUysodj1N'@; put 'YXRoLmltdWwobmUsQ24pKXwwKSsoKDgxOTEmKHA9KHA9TWF0aC5pbXVsKG5lLFV0KSkrTWF0aC5pbXVsKGRlLENuKXwwKSk8PDEzKXwwO1M9KCh3PU1hdGguaW11bChkZSxVdCkpKyhwPj4+MTMpfDApKyhGbj4+PjI2KXwwLEZuJj02NzEwODg2Myx2PU1hdGguaW11bCh4ZSxDbikscD0ocD1N'@; put 'YXRoLmltdWwoeGUsVXQpKStNYXRoLmltdWwoTGUsQ24pfDAsdz1NYXRoLmltdWwoTGUsVXQpO3ZhciBuaT0oUysodj12K01hdGguaW11bChuZSxXbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLGVuKXwwKStNYXRoLmltdWwoZGUsV24pfDApKTw8MTMpfDA7Uz0oKHc9dytN'@; put 'YXRoLmltdWwoZGUsZW4pfDApKyhwPj4+MTMpfDApKyhuaT4+PjI2KXwwLG5pJj02NzEwODg2Myx2PU1hdGguaW11bChPZSxDbikscD0ocD1NYXRoLmltdWwoT2UsVXQpKStNYXRoLmltdWwoamUsQ24pfDAsdz1NYXRoLmltdWwoamUsVXQpLHY9ditNYXRoLmltdWwoeGUsV24pfDAscD0ocD1w'@; put 'K01hdGguaW11bCh4ZSxlbil8MCkrTWF0aC5pbXVsKExlLFduKXwwLHc9dytNYXRoLmltdWwoTGUsZW4pfDA7dmFyIGxuPShTKyh2PXYrTWF0aC5pbXVsKG5lLEhuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsZnQpfDApK01hdGguaW11bChkZSxIbil8MCkpPDwxMyl8MDtT'@; put 'PSgodz13K01hdGguaW11bChkZSxmdCl8MCkrKHA+Pj4xMyl8MCkrKGxuPj4+MjYpfDAsbG4mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEtlLENuKSxwPShwPU1hdGguaW11bChLZSxVdCkpK01hdGguaW11bChZZSxDbil8MCx3PU1hdGguaW11bChZZSxVdCksdj12K01hdGguaW11bChPZSxXbil8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKE9lLGVuKXwwKStNYXRoLmltdWwoamUsV24pfDAsdz13K01hdGguaW11bChqZSxlbil8MCx2PXYrTWF0aC5pbXVsKHhlLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsZnQpfDApK01hdGguaW11bChMZSxIbil8MCx3PXcrTWF0aC5pbXVsKExlLGZ0KXwwO3Zh'@; put 'ciBqbj0oUysodj12K01hdGguaW11bChuZSxobil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLHd0KXwwKStNYXRoLmltdWwoZGUsaG4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsd3QpfDApKyhwPj4+MTMpfDApKyhqbj4+PjI2KXwwLGpuJj02NzEwODg2Myx2'@; put 'PU1hdGguaW11bChsdCxDbikscD0ocD1NYXRoLmltdWwobHQsVXQpKStNYXRoLmltdWwoUGUsQ24pfDAsdz1NYXRoLmltdWwoUGUsVXQpLHY9ditNYXRoLmltdWwoS2UsV24pfDAscD0ocD1wK01hdGguaW11bChLZSxlbil8MCkrTWF0aC5pbXVsKFllLFduKXwwLHc9dytNYXRoLmltdWwoWWUs'@; put 'ZW4pfDAsdj12K01hdGguaW11bChPZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKE9lLGZ0KXwwKStNYXRoLmltdWwoamUsSG4pfDAsdz13K01hdGguaW11bChqZSxmdCl8MCx2PXYrTWF0aC5pbXVsKHhlLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsd3QpfDApK01hdGguaW11bChMZSxobil8'@; put 'MCx3PXcrTWF0aC5pbXVsKExlLHd0KXwwO3ZhciBxcj0oUysodj12K01hdGguaW11bChuZSxfdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLE50KXwwKStNYXRoLmltdWwoZGUsX3QpfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsTnQpfDApKyhwPj4+MTMpfDAp'@; put 'Kyhxcj4+PjI2KXwwLHFyJj02NzEwODg2Myx2PU1hdGguaW11bChBZSxDbikscD0ocD1NYXRoLmltdWwoQWUsVXQpKStNYXRoLmltdWwoVGUsQ24pfDAsdz1NYXRoLmltdWwoVGUsVXQpLHY9ditNYXRoLmltdWwobHQsV24pfDAscD0ocD1wK01hdGguaW11bChsdCxlbil8MCkrTWF0aC5pbXVs'@; put 'KFBlLFduKXwwLHc9dytNYXRoLmltdWwoUGUsZW4pfDAsdj12K01hdGguaW11bChLZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKEtlLGZ0KXwwKStNYXRoLmltdWwoWWUsSG4pfDAsdz13K01hdGguaW11bChZZSxmdCl8MCx2PXYrTWF0aC5pbXVsKE9lLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwo'@; put 'T2Usd3QpfDApK01hdGguaW11bChqZSxobil8MCx3PXcrTWF0aC5pbXVsKGplLHd0KXwwLHY9ditNYXRoLmltdWwoeGUsX3QpfDAscD0ocD1wK01hdGguaW11bCh4ZSxOdCl8MCkrTWF0aC5pbXVsKExlLF90KXwwLHc9dytNYXRoLmltdWwoTGUsTnQpfDA7dmFyIGdpPShTKyh2PXYrTWF0aC5p'@; put 'bXVsKG5lLHJ0KXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsSXQpfDApK01hdGguaW11bChkZSxydCl8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxJdCl8MCkrKHA+Pj4xMyl8MCkrKGdpPj4+MjYpfDAsZ2kmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKFhlLENuKSxw'@; put 'PShwPU1hdGguaW11bChYZSxVdCkpK01hdGguaW11bChVZSxDbil8MCx3PU1hdGguaW11bChVZSxVdCksdj12K01hdGguaW11bChBZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKEFlLGVuKXwwKStNYXRoLmltdWwoVGUsV24pfDAsdz13K01hdGguaW11bChUZSxlbil8MCx2PXYrTWF0aC5pbXVs'@; put 'KGx0LEhuKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsZnQpfDApK01hdGguaW11bChQZSxIbil8MCx3PXcrTWF0aC5pbXVsKFBlLGZ0KXwwLHY9ditNYXRoLmltdWwoS2UsaG4pfDAscD0ocD1wK01hdGguaW11bChLZSx3dCl8MCkrTWF0aC5pbXVsKFllLGhuKXwwLHc9dytNYXRoLmltdWwoWWUs'@; put 'd3QpfDAsdj12K01hdGguaW11bChPZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKE9lLE50KXwwKStNYXRoLmltdWwoamUsX3QpfDAsdz13K01hdGguaW11bChqZSxOdCl8MCx2PXYrTWF0aC5pbXVsKHhlLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsSXQpfDApK01hdGguaW11bChMZSxydCl8'@; put 'MCx3PXcrTWF0aC5pbXVsKExlLEl0KXwwO3ZhciB4cj0oUysodj12K01hdGguaW11bChuZSxEdCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLHB0KXwwKStNYXRoLmltdWwoZGUsRHQpfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUscHQpfDApKyhwPj4+MTMpfDAp'@; put 'Kyh4cj4+PjI2KXwwLHhyJj02NzEwODg2Myx2PU1hdGguaW11bChNZSxDbikscD0ocD1NYXRoLmltdWwoTWUsVXQpKStNYXRoLmltdWwoRGUsQ24pfDAsdz1NYXRoLmltdWwoRGUsVXQpLHY9ditNYXRoLmltdWwoWGUsV24pfDAscD0ocD1wK01hdGguaW11bChYZSxlbil8MCkrTWF0aC5pbXVs'@; put 'KFVlLFduKXwwLHc9dytNYXRoLmltdWwoVWUsZW4pfDAsdj12K01hdGguaW11bChBZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKEFlLGZ0KXwwKStNYXRoLmltdWwoVGUsSG4pfDAsdz13K01hdGguaW11bChUZSxmdCl8MCx2PXYrTWF0aC5pbXVsKGx0LGhuKXwwLHA9KHA9cCtNYXRoLmltdWwo'@; put 'bHQsd3QpfDApK01hdGguaW11bChQZSxobil8MCx3PXcrTWF0aC5pbXVsKFBlLHd0KXwwLHY9ditNYXRoLmltdWwoS2UsX3QpfDAscD0ocD1wK01hdGguaW11bChLZSxOdCl8MCkrTWF0aC5pbXVsKFllLF90KXwwLHc9dytNYXRoLmltdWwoWWUsTnQpfDAsdj12K01hdGguaW11bChPZSxydCl8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKE9lLEl0KXwwKStNYXRoLmltdWwoamUscnQpfDAsdz13K01hdGguaW11bChqZSxJdCl8MCx2PXYrTWF0aC5pbXVsKHhlLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoeGUscHQpfDApK01hdGguaW11bChMZSxEdCl8MCx3PXcrTWF0aC5pbXVsKExlLHB0KXwwO3Zh'@; put 'ciBVaT0oUysodj12K01hdGguaW11bChuZSxJbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLHp0KXwwKStNYXRoLmltdWwoZGUsSW4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsenQpfDApKyhwPj4+MTMpfDApKyhVaT4+PjI2KXwwLFVpJj02NzEwODg2Myx2'@; put 'PU1hdGguaW11bChvdCxDbikscD0ocD1NYXRoLmltdWwob3QsVXQpKStNYXRoLmltdWwodXQsQ24pfDAsdz1NYXRoLmltdWwodXQsVXQpLHY9ditNYXRoLmltdWwoTWUsV24pfDAscD0ocD1wK01hdGguaW11bChNZSxlbil8MCkrTWF0aC5pbXVsKERlLFduKXwwLHc9dytNYXRoLmltdWwoRGUs'@; put 'ZW4pfDAsdj12K01hdGguaW11bChYZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKFhlLGZ0KXwwKStNYXRoLmltdWwoVWUsSG4pfDAsdz13K01hdGguaW11bChVZSxmdCl8MCx2PXYrTWF0aC5pbXVsKEFlLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsd3QpfDApK01hdGguaW11bChUZSxobil8'@; put 'MCx3PXcrTWF0aC5pbXVsKFRlLHd0KXwwLHY9ditNYXRoLmltdWwobHQsX3QpfDAscD0ocD1wK01hdGguaW11bChsdCxOdCl8MCkrTWF0aC5pbXVsKFBlLF90KXwwLHc9dytNYXRoLmltdWwoUGUsTnQpfDAsdj12K01hdGguaW11bChLZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKEtlLEl0KXww'@; put 'KStNYXRoLmltdWwoWWUscnQpfDAsdz13K01hdGguaW11bChZZSxJdCl8MCx2PXYrTWF0aC5pbXVsKE9lLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoT2UscHQpfDApK01hdGguaW11bChqZSxEdCl8MCx3PXcrTWF0aC5pbXVsKGplLHB0KXwwLHY9ditNYXRoLmltdWwoeGUsSW4pfDAscD0ocD1w'@; put 'K01hdGguaW11bCh4ZSx6dCl8MCkrTWF0aC5pbXVsKExlLEluKXwwLHc9dytNYXRoLmltdWwoTGUsenQpfDA7dmFyIEtyPShTKyh2PXYrTWF0aC5pbXVsKG5lLHhuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsc24pfDApK01hdGguaW11bChkZSx4bil8MCkpPDwxMyl8MDtT'@; put 'PSgodz13K01hdGguaW11bChkZSxzbil8MCkrKHA+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LENuKSxwPShwPU1hdGguaW11bChIdCxVdCkpK01hdGguaW11bChQdCxDbil8MCx3PU1hdGguaW11bChQdCxVdCksdj12K01hdGguaW11bChvdCxXbil8'@; put 'MCxwPShwPXArTWF0aC5pbXVsKG90LGVuKXwwKStNYXRoLmltdWwodXQsV24pfDAsdz13K01hdGguaW11bCh1dCxlbil8MCx2PXYrTWF0aC5pbXVsKE1lLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsZnQpfDApK01hdGguaW11bChEZSxIbil8MCx3PXcrTWF0aC5pbXVsKERlLGZ0KXwwLHY9'@; put 'ditNYXRoLmltdWwoWGUsaG4pfDAscD0ocD1wK01hdGguaW11bChYZSx3dCl8MCkrTWF0aC5pbXVsKFVlLGhuKXwwLHc9dytNYXRoLmltdWwoVWUsd3QpfDAsdj12K01hdGguaW11bChBZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKEFlLE50KXwwKStNYXRoLmltdWwoVGUsX3QpfDAsdz13K01h'@; put 'dGguaW11bChUZSxOdCl8MCx2PXYrTWF0aC5pbXVsKGx0LHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwobHQsSXQpfDApK01hdGguaW11bChQZSxydCl8MCx3PXcrTWF0aC5pbXVsKFBlLEl0KXwwLHY9ditNYXRoLmltdWwoS2UsRHQpfDAscD0ocD1wK01hdGguaW11bChLZSxwdCl8MCkrTWF0aC5p'@; put 'bXVsKFllLER0KXwwLHc9dytNYXRoLmltdWwoWWUscHQpfDAsdj12K01hdGguaW11bChPZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKE9lLHp0KXwwKStNYXRoLmltdWwoamUsSW4pfDAsdz13K01hdGguaW11bChqZSx6dCl8MCx2PXYrTWF0aC5pbXVsKHhlLHhuKXwwLHA9KHA9cCtNYXRoLmlt'@; put 'dWwoeGUsc24pfDApK01hdGguaW11bChMZSx4bil8MCx3PXcrTWF0aC5pbXVsKExlLHNuKXwwO3ZhciBubz0oUysodj12K01hdGguaW11bChuZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLCR0KXwwKStNYXRoLmltdWwoZGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytN'@; put 'YXRoLmltdWwoZGUsJHQpfDApKyhwPj4+MTMpfDApKyhubz4+PjI2KXwwLG5vJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxXbikscD0ocD1NYXRoLmltdWwoSHQsZW4pKStNYXRoLmltdWwoUHQsV24pfDAsdz1NYXRoLmltdWwoUHQsZW4pLHY9ditNYXRoLmltdWwob3QsSG4pfDAscD0ocD1w'@; put 'K01hdGguaW11bChvdCxmdCl8MCkrTWF0aC5pbXVsKHV0LEhuKXwwLHc9dytNYXRoLmltdWwodXQsZnQpfDAsdj12K01hdGguaW11bChNZSxobil8MCxwPShwPXArTWF0aC5pbXVsKE1lLHd0KXwwKStNYXRoLmltdWwoRGUsaG4pfDAsdz13K01hdGguaW11bChEZSx3dCl8MCx2PXYrTWF0aC5p'@; put 'bXVsKFhlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsTnQpfDApK01hdGguaW11bChVZSxfdCl8MCx3PXcrTWF0aC5pbXVsKFVlLE50KXwwLHY9ditNYXRoLmltdWwoQWUscnQpfDAscD0ocD1wK01hdGguaW11bChBZSxJdCl8MCkrTWF0aC5pbXVsKFRlLHJ0KXwwLHc9dytNYXRoLmltdWwo'@; put 'VGUsSXQpfDAsdj12K01hdGguaW11bChsdCxEdCl8MCxwPShwPXArTWF0aC5pbXVsKGx0LHB0KXwwKStNYXRoLmltdWwoUGUsRHQpfDAsdz13K01hdGguaW11bChQZSxwdCl8MCx2PXYrTWF0aC5pbXVsKEtlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsenQpfDApK01hdGguaW11bChZZSxJ'@; put 'bil8MCx3PXcrTWF0aC5pbXVsKFllLHp0KXwwLHY9ditNYXRoLmltdWwoT2UseG4pfDAscD0ocD1wK01hdGguaW11bChPZSxzbil8MCkrTWF0aC5pbXVsKGplLHhuKXwwLHc9dytNYXRoLmltdWwoamUsc24pfDA7dmFyIEhyPShTKyh2PXYrTWF0aC5pbXVsKHhlLFJuKXwwKXwwKSsoKDgxOTEm'@; put 'KHA9KHA9cCtNYXRoLmltdWwoeGUsJHQpfDApK01hdGguaW11bChMZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChMZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKEhyPj4+MjYpfDAsSHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LEhuKSxwPShwPU1hdGguaW11bChIdCxmdCkpK01h'@; put 'dGguaW11bChQdCxIbil8MCx3PU1hdGguaW11bChQdCxmdCksdj12K01hdGguaW11bChvdCxobil8MCxwPShwPXArTWF0aC5pbXVsKG90LHd0KXwwKStNYXRoLmltdWwodXQsaG4pfDAsdz13K01hdGguaW11bCh1dCx3dCl8MCx2PXYrTWF0aC5pbXVsKE1lLF90KXwwLHA9KHA9cCtNYXRoLmlt'@; put 'dWwoTWUsTnQpfDApK01hdGguaW11bChEZSxfdCl8MCx3PXcrTWF0aC5pbXVsKERlLE50KXwwLHY9ditNYXRoLmltdWwoWGUscnQpfDAscD0ocD1wK01hdGguaW11bChYZSxJdCl8MCkrTWF0aC5pbXVsKFVlLHJ0KXwwLHc9dytNYXRoLmltdWwoVWUsSXQpfDAsdj12K01hdGguaW11bChBZSxE'@; put 'dCl8MCxwPShwPXArTWF0aC5pbXVsKEFlLHB0KXwwKStNYXRoLmltdWwoVGUsRHQpfDAsdz13K01hdGguaW11bChUZSxwdCl8MCx2PXYrTWF0aC5pbXVsKGx0LEluKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsenQpfDApK01hdGguaW11bChQZSxJbil8MCx3PXcrTWF0aC5pbXVsKFBlLHp0KXww'@; put 'LHY9ditNYXRoLmltdWwoS2UseG4pfDAscD0ocD1wK01hdGguaW11bChLZSxzbil8MCkrTWF0aC5pbXVsKFllLHhuKXwwLHc9dytNYXRoLmltdWwoWWUsc24pfDA7dmFyIHFpPShTKyh2PXYrTWF0aC5pbXVsKE9lLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoT2UsJHQpfDAp'@; put 'K01hdGguaW11bChqZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChqZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKHFpPj4+MjYpfDAscWkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LGhuKSxwPShwPU1hdGguaW11bChIdCx3dCkpK01hdGguaW11bChQdCxobil8MCx3PU1hdGguaW11'@; put 'bChQdCx3dCksdj12K01hdGguaW11bChvdCxfdCl8MCxwPShwPXArTWF0aC5pbXVsKG90LE50KXwwKStNYXRoLmltdWwodXQsX3QpfDAsdz13K01hdGguaW11bCh1dCxOdCl8MCx2PXYrTWF0aC5pbXVsKE1lLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsSXQpfDApK01hdGguaW11bChEZSxy'@; put 'dCl8MCx3PXcrTWF0aC5pbXVsKERlLEl0KXwwLHY9ditNYXRoLmltdWwoWGUsRHQpfDAscD0ocD1wK01hdGguaW11bChYZSxwdCl8MCkrTWF0aC5pbXVsKFVlLER0KXwwLHc9dytNYXRoLmltdWwoVWUscHQpfDAsdj12K01hdGguaW11bChBZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKEFlLHp0'@; put 'KXwwKStNYXRoLmltdWwoVGUsSW4pfDAsdz13K01hdGguaW11bChUZSx6dCl8MCx2PXYrTWF0aC5pbXVsKGx0LHhuKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsc24pfDApK01hdGguaW11bChQZSx4bil8MCx3PXcrTWF0aC5pbXVsKFBlLHNuKXwwO3ZhciBKaT0oUysodj12K01hdGguaW11bChL'@; put 'ZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKEtlLCR0KXwwKStNYXRoLmltdWwoWWUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoWWUsJHQpfDApKyhwPj4+MTMpfDApKyhKaT4+PjI2KXwwLEppJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxfdCkscD0ocD1N'@; put 'YXRoLmltdWwoSHQsTnQpKStNYXRoLmltdWwoUHQsX3QpfDAsdz1NYXRoLmltdWwoUHQsTnQpLHY9ditNYXRoLmltdWwob3QscnQpfDAscD0ocD1wK01hdGguaW11bChvdCxJdCl8MCkrTWF0aC5pbXVsKHV0LHJ0KXwwLHc9dytNYXRoLmltdWwodXQsSXQpfDAsdj12K01hdGguaW11bChNZSxE'@; put 'dCl8MCxwPShwPXArTWF0aC5pbXVsKE1lLHB0KXwwKStNYXRoLmltdWwoRGUsRHQpfDAsdz13K01hdGguaW11bChEZSxwdCl8MCx2PXYrTWF0aC5pbXVsKFhlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsenQpfDApK01hdGguaW11bChVZSxJbil8MCx3PXcrTWF0aC5pbXVsKFVlLHp0KXww'@; put 'LHY9ditNYXRoLmltdWwoQWUseG4pfDAscD0ocD1wK01hdGguaW11bChBZSxzbil8MCkrTWF0aC5pbXVsKFRlLHhuKXwwLHc9dytNYXRoLmltdWwoVGUsc24pfDA7dmFyIGFvPShTKyh2PXYrTWF0aC5pbXVsKGx0LFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobHQsJHQpfDAp'@; put 'K01hdGguaW11bChQZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChQZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKGFvPj4+MjYpfDAsYW8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LHJ0KSxwPShwPU1hdGguaW11bChIdCxJdCkpK01hdGguaW11bChQdCxydCl8MCx3PU1hdGguaW11'@; put 'bChQdCxJdCksdj12K01hdGguaW11bChvdCxEdCl8MCxwPShwPXArTWF0aC5pbXVsKG90LHB0KXwwKStNYXRoLmltdWwodXQsRHQpfDAsdz13K01hdGguaW11bCh1dCxwdCl8MCx2PXYrTWF0aC5pbXVsKE1lLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsenQpfDApK01hdGguaW11bChEZSxJ'@; put 'bil8MCx3PXcrTWF0aC5pbXVsKERlLHp0KXwwLHY9ditNYXRoLmltdWwoWGUseG4pfDAscD0ocD1wK01hdGguaW11bChYZSxzbil8MCkrTWF0aC5pbXVsKFVlLHhuKXwwLHc9dytNYXRoLmltdWwoVWUsc24pfDA7dmFyIHJvPShTKyh2PXYrTWF0aC5pbXVsKEFlLFJuKXwwKXwwKSsoKDgxOTEm'@; put 'KHA9KHA9cCtNYXRoLmltdWwoQWUsJHQpfDApK01hdGguaW11bChUZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChUZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKHJvPj4+MjYpfDAscm8mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LER0KSxwPShwPU1hdGguaW11bChIdCxwdCkpK01h'@; put 'dGguaW11bChQdCxEdCl8MCx3PU1hdGguaW11bChQdCxwdCksdj12K01hdGguaW11bChvdCxJbil8MCxwPShwPXArTWF0aC5pbXVsKG90LHp0KXwwKStNYXRoLmltdWwodXQsSW4pfDAsdz13K01hdGguaW11bCh1dCx6dCl8MCx2PXYrTWF0aC5pbXVsKE1lLHhuKXwwLHA9KHA9cCtNYXRoLmlt'@; put 'dWwoTWUsc24pfDApK01hdGguaW11bChEZSx4bil8MCx3PXcrTWF0aC5pbXVsKERlLHNuKXwwO3ZhciBpbz0oUysodj12K01hdGguaW11bChYZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKFhlLCR0KXwwKStNYXRoLmltdWwoVWUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytN'@; put 'YXRoLmltdWwoVWUsJHQpfDApKyhwPj4+MTMpfDApKyhpbz4+PjI2KXwwLGlvJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxJbikscD0ocD1NYXRoLmltdWwoSHQsenQpKStNYXRoLmltdWwoUHQsSW4pfDAsdz1NYXRoLmltdWwoUHQsenQpLHY9ditNYXRoLmltdWwob3QseG4pfDAscD0ocD1w'@; put 'K01hdGguaW11bChvdCxzbil8MCkrTWF0aC5pbXVsKHV0LHhuKXwwLHc9dytNYXRoLmltdWwodXQsc24pfDA7dmFyIEdpPShTKyh2PXYrTWF0aC5pbXVsKE1lLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoTWUsJHQpfDApK01hdGguaW11bChEZSxSbil8MCkpPDwxMyl8MDtT'@; put 'PSgodz13K01hdGguaW11bChEZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKEdpPj4+MjYpfDAsR2kmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LHhuKSxwPShwPU1hdGguaW11bChIdCxzbikpK01hdGguaW11bChQdCx4bil8MCx3PU1hdGguaW11bChQdCxzbik7dmFyIGhvPShTKyh2PXYrTWF0aC5p'@; put 'bXVsKG90LFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwob3QsJHQpfDApK01hdGguaW11bCh1dCxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bCh1dCwkdCl8MCkrKHA+Pj4xMyl8MCkrKGhvPj4+MjYpfDAsaG8mPTY3MTA4ODYzO3ZhciB5cj0oUysodj1NYXRoLmlt'@; put 'dWwoSHQsUm4pKXwwKSsoKDgxOTEmKHA9KHA9TWF0aC5pbXVsKEh0LCR0KSkrTWF0aC5pbXVsKFB0LFJuKXwwKSk8PDEzKXwwO3JldHVybiBTPSgodz1NYXRoLmltdWwoUHQsJHQpKSsocD4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsQ1swXT1GbixDWzFdPW5pLENbMl09bG4s'@; put 'Q1szXT1qbixDWzRdPXFyLENbNV09Z2ksQ1s2XT14cixDWzddPVVpLENbOF09S3IsQ1s5XT1ubyxDWzEwXT1IcixDWzExXT1xaSxDWzEyXT1KaSxDWzEzXT1hbyxDWzE0XT1ybyxDWzE1XT1pbyxDWzE2XT1HaSxDWzE3XT1obyxDWzE4XT15ciwwIT09UyYmKENbMTldPVMsSC5sZW5ndGgrKyks'@; put 'SH07ZnVuY3Rpb24gWChHLGIsRCl7cmV0dXJuKG5ldyBVKS5tdWxwKEcsYixEKX1mdW5jdGlvbiBVKEcsYil7dGhpcy54PUcsdGhpcy55PWJ9TWF0aC5pbXVsfHwoQj1WKSxNLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihiLEQpe3ZhciBILE49dGhpcy5sZW5ndGgrYi5sZW5ndGg7cmV0dXJu'@; put 'IEg9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1iLmxlbmd0aD9CKHRoaXMsYixEKTpOPDYzP1YodGhpcyxiLEQpOk48MTAyND9mdW5jdGlvbiBZKEcsYixEKXtELm5lZ2F0aXZlPWIubmVnYXRpdmVeRy5uZWdhdGl2ZSxELmxlbmd0aD1HLmxlbmd0aCtiLmxlbmd0aDtmb3IodmFyIEg9MCxOPTAs'@; put 'Zz0wO2c8RC5sZW5ndGgtMTtnKyspe3ZhciBDPU47Tj0wO2Zvcih2YXIgUz02NzEwODg2MyZILHY9TWF0aC5taW4oZyxiLmxlbmd0aC0xKSxwPU1hdGgubWF4KDAsZy1HLmxlbmd0aCsxKTtwPD12O3ArKyl7dmFyIGRlPSgwfEcud29yZHNbZy1wXSkqKDB8Yi53b3Jkc1twXSksZmU9NjcxMDg4'@; put 'NjMmZGU7Uz02NzEwODg2MyYoZmU9ZmUrU3wwKSxOKz0oQz0oQz1DKyhkZS82NzEwODg2NHwwKXwwKSsoZmU+Pj4yNil8MCk+Pj4yNixDJj02NzEwODg2M31ELndvcmRzW2ddPVMsSD1DLEM9Tn1yZXR1cm4gMCE9PUg/RC53b3Jkc1tnXT1IOkQubGVuZ3RoLS0sRC5zdHJpcCgpfSh0aGlzLGIs'@; put 'RCk6WCh0aGlzLGIsRCksSH0sVS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihiKXtmb3IodmFyIEQ9bmV3IEFycmF5KGIpLEg9TS5wcm90b3R5cGUuX2NvdW50Qml0cyhiKS0xLE49MDtOPGI7TisrKURbTl09dGhpcy5yZXZCaW4oTixILGIpO3JldHVybiBEfSxVLnByb3RvdHlwZS5yZXZC'@; put 'aW49ZnVuY3Rpb24oYixELEgpe2lmKDA9PT1ifHxiPT09SC0xKXJldHVybiBiO2Zvcih2YXIgTj0wLGc9MDtnPEQ7ZysrKU58PSgxJmIpPDxELWctMSxiPj49MTtyZXR1cm4gTn0sVS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihiLEQsSCxOLGcsQyl7Zm9yKHZhciBTPTA7UzxDO1MrKylO'@; put 'W1NdPURbYltTXV0sZ1tTXT1IW2JbU11dfSxVLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oYixELEgsTixnLEMpe3RoaXMucGVybXV0ZShDLGIsRCxILE4sZyk7Zm9yKHZhciBTPTE7UzxnO1M8PD0xKWZvcih2YXIgdj1TPDwxLHA9TWF0aC5jb3MoMipNYXRoLlBJL3YpLHc9TWF0aC5z'@; put 'aW4oMipNYXRoLlBJL3YpLEo9MDtKPGc7Sis9dilmb3IodmFyIG5lPXAsZGU9dyxmZT0wO2ZlPFM7ZmUrKyl7dmFyIHhlPUhbSitmZV0sTGU9TltKK2ZlXSxGZT1IW0orZmUrU10sT2U9TltKK2ZlK1NdLGplPW5lKkZlLWRlKk9lO09lPW5lKk9lK2RlKkZlLEhbSitmZV09eGUrKEZlPWplKSxO'@; put 'W0orZmVdPUxlK09lLEhbSitmZStTXT14ZS1GZSxOW0orZmUrU109TGUtT2UsZmUhPT12JiYoamU9cCpuZS13KmRlLGRlPXAqZGUrdypuZSxuZT1qZSl9fSxVLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihiLEQpe3ZhciBIPTF8TWF0aC5tYXgoRCxiKSxOPTEmSCxnPTA7Zm9yKEg9'@; put 'SC8yfDA7SDtIPj4+PTEpZysrO3JldHVybiAxPDxnKzErTn0sVS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGIsRCxIKXtpZighKEg8PTEpKWZvcih2YXIgTj0wO048SC8yO04rKyl7dmFyIGc9YltOXTtiW05dPWJbSC1OLTFdLGJbSC1OLTFdPWcsZz1EW05dLERbTl09LURbSC1OLTFd'@; put 'LERbSC1OLTFdPS1nfX0sVS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKGIsRCl7Zm9yKHZhciBIPTAsTj0wO048RC8yO04rKyl7dmFyIGc9ODE5MipNYXRoLnJvdW5kKGJbMipOKzFdL0QpK01hdGgucm91bmQoYlsyKk5dL0QpK0g7YltOXT02NzEwODg2MyZnLEg9Zzw2NzEwODg2'@; put 'ND8wOmcvNjcxMDg4NjR8MH1yZXR1cm4gYn0sVS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihiLEQsSCxOKXtmb3IodmFyIGc9MCxDPTA7QzxEO0MrKylIWzIqQ109ODE5MSYoZys9MHxiW0NdKSxIWzIqQysxXT04MTkxJihnPj4+PTEzKSxnPj4+PTEzO2ZvcihDPTIqRDtDPE47KytD'@; put 'KUhbQ109MDttKDA9PT1nKSxtKDA9PSgtODE5MiZnKSl9LFUucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oYil7Zm9yKHZhciBEPW5ldyBBcnJheShiKSxIPTA7SDxiO0grKylEW0hdPTA7cmV0dXJuIER9LFUucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oYixELEgpe3ZhciBOPTIqdGhpcy5ndWVz'@; put 'c0xlbjEzYihiLmxlbmd0aCxELmxlbmd0aCksZz10aGlzLm1ha2VSQlQoTiksQz10aGlzLnN0dWIoTiksUz1uZXcgQXJyYXkoTiksdj1uZXcgQXJyYXkoTikscD1uZXcgQXJyYXkoTiksdz1uZXcgQXJyYXkoTiksSj1uZXcgQXJyYXkoTiksbmU9bmV3IEFycmF5KE4pLGRlPUgud29yZHM7ZGUu'@; put 'bGVuZ3RoPU4sdGhpcy5jb252ZXJ0MTNiKGIud29yZHMsYi5sZW5ndGgsUyxOKSx0aGlzLmNvbnZlcnQxM2IoRC53b3JkcyxELmxlbmd0aCx3LE4pLHRoaXMudHJhbnNmb3JtKFMsQyx2LHAsTixnKSx0aGlzLnRyYW5zZm9ybSh3LEMsSixuZSxOLGcpO2Zvcih2YXIgZmU9MDtmZTxOO2ZlKysp'@; put 'e3ZhciB4ZT12W2ZlXSpKW2ZlXS1wW2ZlXSpuZVtmZV07cFtmZV09dltmZV0qbmVbZmVdK3BbZmVdKkpbZmVdLHZbZmVdPXhlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZSh2LHAsTiksdGhpcy50cmFuc2Zvcm0odixwLGRlLEMsTixnKSx0aGlzLmNvbmp1Z2F0ZShkZSxDLE4pLHRoaXMubm9ybWFs'@; put 'aXplMTNiKGRlLE4pLEgubmVnYXRpdmU9Yi5uZWdhdGl2ZV5ELm5lZ2F0aXZlLEgubGVuZ3RoPWIubGVuZ3RoK0QubGVuZ3RoLEguc3RyaXAoKX0sTS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGIpe3ZhciBEPW5ldyBNKG51bGwpO3JldHVybiBELndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0'@; put 'aCtiLmxlbmd0aCksdGhpcy5tdWxUbyhiLEQpfSxNLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGIpe3ZhciBEPW5ldyBNKG51bGwpO3JldHVybiBELndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtiLmxlbmd0aCksWCh0aGlzLGIsRCl9LE0ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oYil7'@; put 'cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhiLHRoaXMpfSxNLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiksbShiPDY3MTA4ODY0KTtmb3IodmFyIEQ9MCxIPTA7SDx0aGlzLmxlbmd0aDtIKyspe3ZhciBOPSgwfHRoaXMud29yZHNbSF0pKmIsZz0o'@; put 'NjcxMDg4NjMmTikrKDY3MTA4ODYzJkQpO0Q+Pj0yNixEKz1OLzY3MTA4ODY0fDAsRCs9Zz4+PjI2LHRoaXMud29yZHNbSF09NjcxMDg4NjMmZ31yZXR1cm4gMCE9PUQmJih0aGlzLndvcmRzW0hdPUQsdGhpcy5sZW5ndGgrKyksdGhpc30sTS5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihiKXty'@; put 'ZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKGIpfSxNLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE0ucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LE0ucHJvdG90eXBlLnBvdz1mdW5jdGlvbihi'@; put 'KXt2YXIgRD1mdW5jdGlvbiBqKEcpe2Zvcih2YXIgYj1uZXcgQXJyYXkoRy5iaXRMZW5ndGgoKSksRD0wO0Q8Yi5sZW5ndGg7RCsrKXt2YXIgTj1EJTI2O2JbRF09KEcud29yZHNbRC8yNnwwXSYxPDxOKT4+Pk59cmV0dXJuIGJ9KGIpO2lmKDA9PT1ELmxlbmd0aClyZXR1cm4gbmV3IE0oMSk7'@; put 'Zm9yKHZhciBIPXRoaXMsTj0wO048RC5sZW5ndGgmJjA9PT1EW05dO04rKyxIPUguc3FyKCkpO2lmKCsrTjxELmxlbmd0aClmb3IodmFyIGc9SC5zcXIoKTtOPEQubGVuZ3RoO04rKyxnPWcuc3FyKCkpMCE9PURbTl0mJihIPUgubXVsKGcpKTtyZXR1cm4gSH0sTS5wcm90b3R5cGUuaXVzaGxu'@; put 'PWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgZyxEPWIlMjYsSD0oYi1EKS8yNixOPTY3MTA4ODYzPj4+MjYtRDw8MjYtRDtpZigwIT09RCl7dmFyIEM9MDtmb3IoZz0wO2c8dGhpcy5sZW5ndGg7ZysrKXt2YXIgUz10aGlzLndvcmRzW2ddJk47dGhpcy53b3Jk'@; put 'c1tnXT0oMHx0aGlzLndvcmRzW2ddKS1TPDxEfEMsQz1TPj4+MjYtRH1DJiYodGhpcy53b3Jkc1tnXT1DLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1IKXtmb3IoZz10aGlzLmxlbmd0aC0xO2c+PTA7Zy0tKXRoaXMud29yZHNbZytIXT10aGlzLndvcmRzW2ddO2ZvcihnPTA7ZzxIO2crKyl0aGlz'@; put 'LndvcmRzW2ddPTA7dGhpcy5sZW5ndGgrPUh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oYil7cmV0dXJuIG0oMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGIpfSxNLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oYixELEgpe3ZhciBOO20o'@; put 'Im51bWJlciI9PXR5cGVvZiBiJiZiPj0wKSxOPUQ/KEQtRCUyNikvMjY6MDt2YXIgZz1iJTI2LEM9TWF0aC5taW4oKGItZykvMjYsdGhpcy5sZW5ndGgpLFM9NjcxMDg4NjNeNjcxMDg4NjM+Pj5nPDxnLHY9SDtpZihOLT1DLE49TWF0aC5tYXgoMCxOKSx2KXtmb3IodmFyIHA9MDtwPEM7cCsr'@; put 'KXYud29yZHNbcF09dGhpcy53b3Jkc1twXTt2Lmxlbmd0aD1DfWlmKDAhPT1DKWlmKHRoaXMubGVuZ3RoPkMpZm9yKHRoaXMubGVuZ3RoLT1DLHA9MDtwPHRoaXMubGVuZ3RoO3ArKyl0aGlzLndvcmRzW3BdPXRoaXMud29yZHNbcCtDXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0'@; put 'aD0xO3ZhciB3PTA7Zm9yKHA9dGhpcy5sZW5ndGgtMTtwPj0wJiYoMCE9PXd8fHA+PU4pO3AtLSl7dmFyIEo9MHx0aGlzLndvcmRzW3BdO3RoaXMud29yZHNbcF09dzw8MjYtZ3xKPj4+Zyx3PUomU31yZXR1cm4gdiYmMCE9PXcmJih2LndvcmRzW3YubGVuZ3RoKytdPXcpLDA9PT10aGlzLmxl'@; put 'bmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGIsRCxIKXtyZXR1cm4gbSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oYixELEgpfSxNLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGIpe3Jl'@; put 'dHVybiB0aGlzLmNsb25lKCkuaXNobG4oYil9LE0ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGIpfSxNLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oYil9LE0ucHJvdG90eXBlLnVzaHJu'@; put 'PWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGIpfSxNLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIEQ9YiUyNixIPShiLUQpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PUh8fCEodGhpcy53b3Jkc1tIXSYx'@; put 'PDxEKSl9LE0ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIEQ9YiUyNixIPShiLUQpLzI2O3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxl'@; put 'bmd0aDw9SD90aGlzOigwIT09RCYmSCsrLHRoaXMubGVuZ3RoPU1hdGgubWluKEgsdGhpcy5sZW5ndGgpLDAhPT1EJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5EPDxEKSx0aGlzLnN0cmlwKCkpfSxNLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihi'@; put 'KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihiKX0sTS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oYil7cmV0dXJuIG0oIm51bWJlciI9PXR5cGVvZiBiKSxtKGI8NjcxMDg4NjQpLGI8MD90aGlzLmlzdWJuKC1iKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRo'@; put 'aXMud29yZHNbMF0pPGI/KHRoaXMud29yZHNbMF09Yi0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKGIpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihiKX0sTS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0'@; put 'aW9uKGIpe3RoaXMud29yZHNbMF0rPWI7Zm9yKHZhciBEPTA7RDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tEXT49NjcxMDg4NjQ7RCsrKXRoaXMud29yZHNbRF0tPTY3MTA4ODY0LEQ9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbRCsxXT0xOnRoaXMud29yZHNbRCsxXSsrO3JldHVybiB0'@; put 'aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxEKzEpLHRoaXN9LE0ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKGIpe2lmKG0oIm51bWJlciI9PXR5cGVvZiBiKSxtKGI8NjcxMDg4NjQpLGI8MClyZXR1cm4gdGhpcy5pYWRkbigtYik7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJu'@; put 'IHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGIpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWIsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIEQ9'@; put 'MDtEPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0RdPDA7RCsrKXRoaXMud29yZHNbRF0rPTY3MTA4ODY0LHRoaXMud29yZHNbRCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oYil9LE0ucHJv'@; put 'dG90eXBlLnN1Ym49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihiKX0sTS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9'@; put 'LE0ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihiLEQsSCl7dmFyIGc7dGhpcy5fZXhwYW5kKGIubGVuZ3RoK0gpO3ZhciBDLFM9MDtmb3IoZz0wO2c8Yi5sZW5ndGg7ZysrKXtDPSgwfHRoaXMud29yZHNbZytIXSkrUzt2YXIgdj0oMHxiLndvcmRzW2ddKSpEO1M9KChDLT02NzEw'@; put 'ODg2MyZ2KT4+MjYpLSh2LzY3MTA4ODY0fDApLHRoaXMud29yZHNbZytIXT02NzEwODg2MyZDfWZvcig7Zzx0aGlzLmxlbmd0aC1IO2crKylTPShDPSgwfHRoaXMud29yZHNbZytIXSkrUyk+PjI2LHRoaXMud29yZHNbZytIXT02NzEwODg2MyZDO2lmKDA9PT1TKXJldHVybiB0aGlzLnN0cmlw'@; put 'KCk7Zm9yKG0oLTE9PT1TKSxTPTAsZz0wO2c8dGhpcy5sZW5ndGg7ZysrKVM9KEM9LSgwfHRoaXMud29yZHNbZ10pK1MpPj4yNix0aGlzLndvcmRzW2ddPTY3MTA4ODYzJkM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9u'@; put 'KGIsRCl7dmFyIEgsTj10aGlzLmNsb25lKCksZz1iLEM9MHxnLndvcmRzW2cubGVuZ3RoLTFdOzAhPShIPTI2LXRoaXMuX2NvdW50Qml0cyhDKSkmJihnPWcudXNobG4oSCksTi5pdXNobG4oSCksQz0wfGcud29yZHNbZy5sZW5ndGgtMV0pO3ZhciBwLHY9Ti5sZW5ndGgtZy5sZW5ndGg7aWYo'@; put 'Im1vZCIhPT1EKXsocD1uZXcgTShudWxsKSkubGVuZ3RoPXYrMSxwLndvcmRzPW5ldyBBcnJheShwLmxlbmd0aCk7Zm9yKHZhciB3PTA7dzxwLmxlbmd0aDt3KyspcC53b3Jkc1t3XT0wfXZhciBKPU4uY2xvbmUoKS5faXNobG5zdWJtdWwoZywxLHYpOzA9PT1KLm5lZ2F0aXZlJiYoTj1KLHAm'@; put 'JihwLndvcmRzW3ZdPTEpKTtmb3IodmFyIG5lPXYtMTtuZT49MDtuZS0tKXt2YXIgZGU9NjcxMDg4NjQqKDB8Ti53b3Jkc1tnLmxlbmd0aCtuZV0pKygwfE4ud29yZHNbZy5sZW5ndGgrbmUtMV0pO2ZvcihkZT1NYXRoLm1pbihkZS9DfDAsNjcxMDg4NjMpLE4uX2lzaGxuc3VibXVsKGcsZGUs'@; put 'bmUpOzAhPT1OLm5lZ2F0aXZlOylkZS0tLE4ubmVnYXRpdmU9MCxOLl9pc2hsbnN1Ym11bChnLDEsbmUpLE4uaXNaZXJvKCl8fChOLm5lZ2F0aXZlXj0xKTtwJiYocC53b3Jkc1tuZV09ZGUpfXJldHVybiBwJiZwLnN0cmlwKCksTi5zdHJpcCgpLCJkaXYiIT09RCYmMCE9PUgmJk4uaXVzaHJu'@; put 'KEgpLHtkaXY6cHx8bnVsbCxtb2Q6Tn19LE0ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihiLEQsSCl7cmV0dXJuIG0oIWIuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTSgwKSxtb2Q6bmV3IE0oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Yi5uZWdhdGl2ZT8oQz10aGlz'@; put 'Lm5lZygpLmRpdm1vZChiLEQpLCJtb2QiIT09RCYmKE49Qy5kaXYubmVnKCkpLCJkaXYiIT09RCYmKGc9Qy5tb2QubmVnKCksSCYmMCE9PWcubmVnYXRpdmUmJmcuaWFkZChiKSkse2RpdjpOLG1vZDpnfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1iLm5lZ2F0aXZlPyhDPXRoaXMuZGl2bW9k'@; put 'KGIubmVnKCksRCksIm1vZCIhPT1EJiYoTj1DLmRpdi5uZWcoKSkse2RpdjpOLG1vZDpDLm1vZH0pOnRoaXMubmVnYXRpdmUmYi5uZWdhdGl2ZT8oQz10aGlzLm5lZygpLmRpdm1vZChiLm5lZygpLEQpLCJkaXYiIT09RCYmKGc9Qy5tb2QubmVnKCksSCYmMCE9PWcubmVnYXRpdmUmJmcuaXN1'@; put 'YihiKSkse2RpdjpDLmRpdixtb2Q6Z30pOmIubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChiKTwwP3tkaXY6bmV3IE0oMCksbW9kOnRoaXN9OjE9PT1iLmxlbmd0aD8iZGl2Ij09PUQ/e2Rpdjp0aGlzLmRpdm4oYi53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09RD97ZGl2Om51bGws'@; put 'bW9kOm5ldyBNKHRoaXMubW9kbihiLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKGIud29yZHNbMF0pLG1vZDpuZXcgTSh0aGlzLm1vZG4oYi53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KGIsRCk7dmFyIE4sZyxDfSxNLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMu'@; put 'ZGl2bW9kKGIsImRpdiIsITEpLmRpdn0sTS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmRpdm1vZChiLCJtb2QiLCExKS5tb2R9LE0ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZGl2bW9kKGIsIm1vZCIsITApLm1vZH0sTS5wcm90b3R5cGUu'@; put 'ZGl2Um91bmQ9ZnVuY3Rpb24oYil7dmFyIEQ9dGhpcy5kaXZtb2QoYik7aWYoRC5tb2QuaXNaZXJvKCkpcmV0dXJuIEQuZGl2O3ZhciBIPTAhPT1ELmRpdi5uZWdhdGl2ZT9ELm1vZC5pc3ViKGIpOkQubW9kLE49Yi51c2hybigxKSxnPWIuYW5kbG4oMSksQz1ILmNtcChOKTtyZXR1cm4gQzww'@; put 'fHwxPT09ZyYmMD09PUM/RC5kaXY6MCE9PUQuZGl2Lm5lZ2F0aXZlP0QuZGl2LmlzdWJuKDEpOkQuZGl2LmlhZGRuKDEpfSxNLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKGIpe20oYjw9NjcxMDg4NjMpO2Zvcih2YXIgRD0oMTw8MjYpJWIsSD0wLE49dGhpcy5sZW5ndGgtMTtOPj0wO04tLSlI'@; put 'PShEKkgrKDB8dGhpcy53b3Jkc1tOXSkpJWI7cmV0dXJuIEh9LE0ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGIpe20oYjw9NjcxMDg4NjMpO2Zvcih2YXIgRD0wLEg9dGhpcy5sZW5ndGgtMTtIPj0wO0gtLSl7dmFyIE49KDB8dGhpcy53b3Jkc1tIXSkrNjcxMDg4NjQqRDt0aGlzLndvcmRz'@; put 'W0hdPU4vYnwwLEQ9TiVifXJldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihiKX0sTS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihiKXttKDA9PT1iLm5lZ2F0aXZlKSxtKCFiLmlzWmVybygpKTt2YXIgRD10'@; put 'aGlzLEg9Yi5jbG9uZSgpO0Q9MCE9PUQubmVnYXRpdmU/RC51bW9kKGIpOkQuY2xvbmUoKTtmb3IodmFyIE49bmV3IE0oMSksZz1uZXcgTSgwKSxDPW5ldyBNKDApLFM9bmV3IE0oMSksdj0wO0QuaXNFdmVuKCkmJkguaXNFdmVuKCk7KUQuaXVzaHJuKDEpLEguaXVzaHJuKDEpLCsrdjtmb3Io'@; put 'dmFyIHA9SC5jbG9uZSgpLHc9RC5jbG9uZSgpOyFELmlzWmVybygpOyl7Zm9yKHZhciBKPTAsbmU9MTshKEQud29yZHNbMF0mbmUpJiZKPDI2OysrSixuZTw8PTEpO2lmKEo+MClmb3IoRC5pdXNocm4oSik7Si0tID4wOykoTi5pc09kZCgpfHxnLmlzT2RkKCkpJiYoTi5pYWRkKHApLGcuaXN1'@; put 'Yih3KSksTi5pdXNocm4oMSksZy5pdXNocm4oMSk7Zm9yKHZhciBkZT0wLGZlPTE7IShILndvcmRzWzBdJmZlKSYmZGU8MjY7KytkZSxmZTw8PTEpO2lmKGRlPjApZm9yKEguaXVzaHJuKGRlKTtkZS0tID4wOykoQy5pc09kZCgpfHxTLmlzT2RkKCkpJiYoQy5pYWRkKHApLFMuaXN1Yih3KSks'@; put 'Qy5pdXNocm4oMSksUy5pdXNocm4oMSk7RC5jbXAoSCk+PTA/KEQuaXN1YihIKSxOLmlzdWIoQyksZy5pc3ViKFMpKTooSC5pc3ViKEQpLEMuaXN1YihOKSxTLmlzdWIoZykpfXJldHVybnthOkMsYjpTLGdjZDpILml1c2hsbih2KX19LE0ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihiKXtt'@; put 'KDA9PT1iLm5lZ2F0aXZlKSxtKCFiLmlzWmVybygpKTt2YXIgSixEPXRoaXMsSD1iLmNsb25lKCk7RD0wIT09RC5uZWdhdGl2ZT9ELnVtb2QoYik6RC5jbG9uZSgpO2Zvcih2YXIgTj1uZXcgTSgxKSxnPW5ldyBNKDApLEM9SC5jbG9uZSgpO0QuY21wbigxKT4wJiZILmNtcG4oMSk+MDspe2Zv'@; put 'cih2YXIgUz0wLHY9MTshKEQud29yZHNbMF0mdikmJlM8MjY7KytTLHY8PD0xKTtpZihTPjApZm9yKEQuaXVzaHJuKFMpO1MtLSA+MDspTi5pc09kZCgpJiZOLmlhZGQoQyksTi5pdXNocm4oMSk7Zm9yKHZhciBwPTAsdz0xOyEoSC53b3Jkc1swXSZ3KSYmcDwyNjsrK3Asdzw8PTEpO2lmKHA+'@; put 'MClmb3IoSC5pdXNocm4ocCk7cC0tID4wOylnLmlzT2RkKCkmJmcuaWFkZChDKSxnLml1c2hybigxKTtELmNtcChIKT49MD8oRC5pc3ViKEgpLE4uaXN1YihnKSk6KEguaXN1YihEKSxnLmlzdWIoTikpfXJldHVybihKPTA9PT1ELmNtcG4oMSk/TjpnKS5jbXBuKDApPDAmJkouaWFkZChiKSxK'@; put 'fSxNLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oYil7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gYi5hYnMoKTtpZihiLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBEPXRoaXMuY2xvbmUoKSxIPWIuY2xvbmUoKTtELm5lZ2F0aXZlPTAsSC5uZWdhdGl2ZT0wO2Zvcih2YXIgTj0wO0Qu'@; put 'aXNFdmVuKCkmJkguaXNFdmVuKCk7TisrKUQuaXVzaHJuKDEpLEguaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtELmlzRXZlbigpOylELml1c2hybigxKTtmb3IoO0guaXNFdmVuKCk7KUguaXVzaHJuKDEpO3ZhciBnPUQuY21wKEgpO2lmKGc8MCl7dmFyIEM9RDtEPUgsSD1DfWVsc2UgaWYoMD09'@; put 'PWd8fDA9PT1ILmNtcG4oMSkpYnJlYWs7RC5pc3ViKEgpfXJldHVybiBILml1c2hsbihOKX0sTS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5lZ2NkKGIpLmEudW1vZChiKX0sTS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29y'@; put 'ZHNbMF0pfSxNLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sTS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMud29yZHNbMF0mYn0sTS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlw'@; put 'ZW9mIGIpO3ZhciBEPWIlMjYsSD0oYi1EKS8yNixOPTE8PEQ7aWYodGhpcy5sZW5ndGg8PUgpcmV0dXJuIHRoaXMuX2V4cGFuZChIKzEpLHRoaXMud29yZHNbSF18PU4sdGhpcztmb3IodmFyIGc9TixDPUg7MCE9PWcmJkM8dGhpcy5sZW5ndGg7QysrKXt2YXIgUz0wfHRoaXMud29yZHNbQ107'@; put 'Zz0oUys9Zyk+Pj4yNix0aGlzLndvcmRzW0NdPVMmPTY3MTA4ODYzfXJldHVybiAwIT09ZyYmKHRoaXMud29yZHNbQ109Zyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxNLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0s'@; put 'TS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihiKXt2YXIgSCxEPWI8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIUQpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJkQpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpSD0xO2Vsc2V7RCYmKGI9LWIpLG0oYjw9Njcx'@; put 'MDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIE49MHx0aGlzLndvcmRzWzBdO0g9Tj09PWI/MDpOPGI/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtSDpIfSxNLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oYil7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1iLm5lZ2F0aXZl'@; put 'KXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Yi5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgRD10aGlzLnVjbXAoYik7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LUQ6RH0sTS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihiKXtpZih0aGlzLmxlbmd0aD5iLmxlbmd0aClyZXR1'@; put 'cm4gMTtpZih0aGlzLmxlbmd0aDxiLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIEQ9MCxIPXRoaXMubGVuZ3RoLTE7SD49MDtILS0pe3ZhciBOPTB8dGhpcy53b3Jkc1tIXSxnPTB8Yi53b3Jkc1tIXTtpZihOIT09Zyl7TjxnP0Q9LTE6Tj5nJiYoRD0xKTticmVha319cmV0dXJuIER9LE0ucHJv'@; put 'dG90eXBlLmd0bj1mdW5jdGlvbihiKXtyZXR1cm4gMT09PXRoaXMuY21wbihiKX0sTS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oYil7cmV0dXJuIDE9PT10aGlzLmNtcChiKX0sTS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbXBuKGIpPj0wfSxNLnByb3RvdHlwZS5n'@; put 'dGU9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY21wKGIpPj0wfSxNLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oYil7cmV0dXJuLTE9PT10aGlzLmNtcG4oYil9LE0ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGIpe3JldHVybi0xPT09dGhpcy5jbXAoYil9LE0ucHJvdG90eXBlLmx0ZW49ZnVuY3Rp'@; put 'b24oYil7cmV0dXJuIHRoaXMuY21wbihiKTw9MH0sTS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcChiKTw9MH0sTS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGIpe3JldHVybiAwPT09dGhpcy5jbXBuKGIpfSxNLnByb3RvdHlwZS5lcT1mdW5jdGlvbihiKXtyZXR1'@; put 'cm4gMD09PXRoaXMuY21wKGIpfSxNLnJlZD1mdW5jdGlvbihiKXtyZXR1cm4gbmV3IHVlKGIpfSxNLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihiKXtyZXR1cm4gbSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxtKDA9PT10aGlzLm5lZ2F0aXZl'@; put 'LCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGIuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChiKX0sTS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250'@; put 'ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LE0ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5yZWQ9Yix0aGlzfSxNLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihiKXtyZXR1cm4gbSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4g'@; put 'cmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChiKX0sTS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZElB'@; put 'ZGQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdp'@; put 'dGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsYil9LE0ucHJvdG90eXBlLnJl'@; put 'ZFNobD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdp'@; put 'dGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGIpLHRoaXMucmVkLm11bCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3Zl'@; put 'cmlmeTIodGhpcyxiKSx0aGlzLnJlZC5pbXVsKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMp'@; put 'fSxNLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sTS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigp'@; put 'e3JldHVybiBtKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LE0ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkSW52bSB3b3Jr'@; put 'cyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxNLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVk'@; put 'Ll92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sTS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkJiYhYi5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsYil9O3ZhciBx'@; put 'PXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gZWUoRyxiKXt0aGlzLm5hbWU9Ryx0aGlzLnA9bmV3IE0oYiwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE0oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRo'@; put 'aXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHRlKCl7ZWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBvZSgpe2VlLmNhbGwodGhpcywicDIyNCIsImZm'@; put 'ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gc2UoKXtlZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIGhl'@; put 'KCl7ZWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiB1ZShHKXtpZigic3RyaW5nIj09dHlwZW9mIEcpe3ZhciBiPU0uX3ByaW1lKEcpO3RoaXMubT1iLnAsdGhp'@; put 'cy5wcmltZT1ifWVsc2UgbShHLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPUcsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIGNlKEcpe3VlLmNhbGwodGhpcyxHKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYo'@; put 'dGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBNKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3Vi'@; put 'bigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfWVlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IE0obnVsbCk7cmV0dXJuIGIud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0'@; put 'aGlzLm4vMTMpKSxifSxlZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihiKXt2YXIgSCxEPWI7ZG97dGhpcy5zcGxpdChELHRoaXMudG1wKSxIPShEPShEPXRoaXMuaW11bEsoRCkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShIPnRoaXMubik7dmFyIE49SDx0aGlzLm4/'@; put 'LTE6RC51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1OPyhELndvcmRzWzBdPTAsRC5sZW5ndGg9MSk6Tj4wP0QuaXN1Yih0aGlzLnApOnZvaWQgMCE9PUQuc3RyaXA/RC5zdHJpcCgpOkQuX3N0cmlwKCksRH0sZWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGIsRCl7Yi5pdXNocm4odGhpcy5u'@; put 'LDAsRCl9LGVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihiKXtyZXR1cm4gYi5pbXVsKHRoaXMuayl9LGxlKHRlLGVlKSx0ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oYixEKXtmb3IodmFyIEg9NDE5NDMwMyxOPU1hdGgubWluKGIubGVuZ3RoLDkpLGc9MDtnPE47ZysrKUQud29yZHNb'@; put 'Z109Yi53b3Jkc1tnXTtpZihELmxlbmd0aD1OLGIubGVuZ3RoPD05KXJldHVybiBiLndvcmRzWzBdPTAsdm9pZChiLmxlbmd0aD0xKTt2YXIgQz1iLndvcmRzWzldO2ZvcihELndvcmRzW0QubGVuZ3RoKytdPUMmSCxnPTEwO2c8Yi5sZW5ndGg7ZysrKXt2YXIgUz0wfGIud29yZHNbZ107Yi53'@; put 'b3Jkc1tnLTEwXT0oUyZIKTw8NHxDPj4+MjIsQz1TfWIud29yZHNbZy0xMF09Qz4+Pj0yMixiLmxlbmd0aC09MD09PUMmJmIubGVuZ3RoPjEwPzEwOjl9LHRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihiKXtiLndvcmRzW2IubGVuZ3RoXT0wLGIud29yZHNbYi5sZW5ndGgrMV09MCxiLmxl'@; put 'bmd0aCs9Mjtmb3IodmFyIEQ9MCxIPTA7SDxiLmxlbmd0aDtIKyspe3ZhciBOPTB8Yi53b3Jkc1tIXTtiLndvcmRzW0hdPTY3MTA4ODYzJihEKz05NzcqTiksRD02NCpOKyhELzY3MTA4ODY0fDApfXJldHVybiAwPT09Yi53b3Jkc1tiLmxlbmd0aC0xXSYmKGIubGVuZ3RoLS0sMD09PWIud29y'@; put 'ZHNbYi5sZW5ndGgtMV0mJmIubGVuZ3RoLS0pLGJ9LGxlKG9lLGVlKSxsZShzZSxlZSksbGUoaGUsZWUpLGhlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihiKXtmb3IodmFyIEQ9MCxIPTA7SDxiLmxlbmd0aDtIKyspe3ZhciBOPTE5KigwfGIud29yZHNbSF0pK0QsZz02NzEwODg2MyZOO04+'@; put 'Pj49MjYsYi53b3Jkc1tIXT1nLEQ9Tn1yZXR1cm4gMCE9PUQmJihiLndvcmRzW2IubGVuZ3RoKytdPUQpLGJ9LE0uX3ByaW1lPWZ1bmN0aW9uKGIpe2lmKHFbYl0pcmV0dXJuIHFbYl07dmFyIEQ7aWYoImsyNTYiPT09YilEPW5ldyB0ZTtlbHNlIGlmKCJwMjI0Ij09PWIpRD1uZXcgb2U7ZWxz'@; put 'ZSBpZigicDE5MiI9PT1iKUQ9bmV3IHNlO2Vsc2V7aWYoInAyNTUxOSIhPT1iKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK2IpO0Q9bmV3IGhlfXJldHVybiBxW2JdPUQsRH0sdWUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGIpe20oMD09PWIubmVnYXRpdmUsInJlZCB3'@; put 'b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksbShiLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSx1ZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oYixEKXttKDA9PShiLm5lZ2F0aXZlfEQubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZl'@; put 'cyIpLG0oYi5yZWQmJmIucmVkPT09RC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sdWUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGIpLl9mb3JjZVJlZCh0aGlzKTpiLnVtb2QodGhpcy5tKS5f'@; put 'Zm9yY2VSZWQodGhpcyl9LHVlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oYil7cmV0dXJuIGIuaXNaZXJvKCk/Yi5jbG9uZSgpOnRoaXMubS5zdWIoYikuX2ZvcmNlUmVkKHRoaXMpfSx1ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGIsRCl7dGhpcy5fdmVyaWZ5MihiLEQpO3ZhciBIPWIuYWRk'@; put 'KEQpO3JldHVybiBILmNtcCh0aGlzLm0pPj0wJiZILmlzdWIodGhpcy5tKSxILl9mb3JjZVJlZCh0aGlzKX0sdWUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9Yi5pYWRkKEQpO3JldHVybiBILmNtcCh0aGlzLm0pPj0wJiZILmlzdWIodGhp'@; put 'cy5tKSxIfSx1ZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGIsRCl7dGhpcy5fdmVyaWZ5MihiLEQpO3ZhciBIPWIuc3ViKEQpO3JldHVybiBILmNtcG4oMCk8MCYmSC5pYWRkKHRoaXMubSksSC5fZm9yY2VSZWQodGhpcyl9LHVlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGIsRCl7dGhpcy5f'@; put 'dmVyaWZ5MihiLEQpO3ZhciBIPWIuaXN1YihEKTtyZXR1cm4gSC5jbXBuKDApPDAmJkguaWFkZCh0aGlzLm0pLEh9LHVlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShiKSx0aGlzLmltb2QoYi51c2hsbihEKSl9LHVlLnByb3RvdHlwZS5pbXVsPWZ1'@; put 'bmN0aW9uKGIsRCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoYixEKSx0aGlzLmltb2QoYi5pbXVsKEQpKX0sdWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihiLEQpe3JldHVybiB0aGlzLl92ZXJpZnkyKGIsRCksdGhpcy5pbW9kKGIubXVsKEQpKX0sdWUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24o'@; put 'Yil7cmV0dXJuIHRoaXMuaW11bChiLGIuY2xvbmUoKSl9LHVlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubXVsKGIsYil9LHVlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKGIpe2lmKGIuaXNaZXJvKCkpcmV0dXJuIGIuY2xvbmUoKTt2YXIgRD10aGlzLm0uYW5kbG4o'@; put 'Myk7aWYobShEJTI9PTEpLDM9PT1EKXt2YXIgSD10aGlzLm0uYWRkKG5ldyBNKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KGIsSCl9Zm9yKHZhciBOPXRoaXMubS5zdWJuKDEpLGc9MDshTi5pc1plcm8oKSYmMD09PU4uYW5kbG4oMSk7KWcrKyxOLml1c2hybigxKTttKCFOLmlzWmVy'@; put 'bygpKTt2YXIgQz1uZXcgTSgxKS50b1JlZCh0aGlzKSxTPUMucmVkTmVnKCksdj10aGlzLm0uc3VibigxKS5pdXNocm4oMSkscD10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKHA9bmV3IE0oMipwKnApLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhwLHYpLmNtcChTKTspcC5yZWRJQWRkKFMpO2Zv'@; put 'cih2YXIgdz10aGlzLnBvdyhwLE4pLEo9dGhpcy5wb3coYixOLmFkZG4oMSkuaXVzaHJuKDEpKSxuZT10aGlzLnBvdyhiLE4pLGRlPWc7MCE9PW5lLmNtcChDKTspe2Zvcih2YXIgZmU9bmUseGU9MDswIT09ZmUuY21wKEMpO3hlKyspZmU9ZmUucmVkU3FyKCk7bSh4ZTxkZSk7dmFyIExlPXRo'@; put 'aXMucG93KHcsbmV3IE0oMSkuaXVzaGxuKGRlLXhlLTEpKTtKPUoucmVkTXVsKExlKSx3PUxlLnJlZFNxcigpLG5lPW5lLnJlZE11bCh3KSxkZT14ZX1yZXR1cm4gSn0sdWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oYil7dmFyIEQ9Yi5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PUQubmVn'@; put 'YXRpdmU/KEQubmVnYXRpdmU9MCx0aGlzLmltb2QoRCkucmVkTmVnKCkpOnRoaXMuaW1vZChEKX0sdWUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihiLEQpe2lmKEQuaXNaZXJvKCkpcmV0dXJuIG5ldyBNKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1ELmNtcG4oMSkpcmV0dXJuIGIuY2xvbmUoKTt2'@; put 'YXIgTj1uZXcgQXJyYXkoMTYpO05bMF09bmV3IE0oMSkudG9SZWQodGhpcyksTlsxXT1iO2Zvcih2YXIgZz0yO2c8Ti5sZW5ndGg7ZysrKU5bZ109dGhpcy5tdWwoTltnLTFdLGIpO3ZhciBDPU5bMF0sUz0wLHY9MCxwPUQuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1wJiYocD0yNiksZz1ELmxl'@; put 'bmd0aC0xO2c+PTA7Zy0tKXtmb3IodmFyIHc9RC53b3Jkc1tnXSxKPXAtMTtKPj0wO0otLSl7dmFyIG5lPXc+PkomMTtDIT09TlswXSYmKEM9dGhpcy5zcXIoQykpLDAhPT1uZXx8MCE9PVM/KFM8PD0xLFN8PW5lLCg0PT0rK3Z8fDA9PT1nJiYwPT09SikmJihDPXRoaXMubXVsKEMsTltTXSks'@; put 'dj0wLFM9MCkpOnY9MH1wPTI2fXJldHVybiBDfSx1ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGIpe3ZhciBEPWIudW1vZCh0aGlzLm0pO3JldHVybiBEPT09Yj9ELmNsb25lKCk6RH0sdWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGIpe3ZhciBEPWIuY2xvbmUoKTty'@; put 'ZXR1cm4gRC5yZWQ9bnVsbCxEfSxNLm1vbnQ9ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBjZShiKX0sbGUoY2UsdWUpLGNlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuaW1vZChiLnVzaGxuKHRoaXMuc2hpZnQpKX0sY2UucHJvdG90eXBlLmNvbnZlcnRGcm9t'@; put 'PWZ1bmN0aW9uKGIpe3ZhciBEPXRoaXMuaW1vZChiLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gRC5yZWQ9bnVsbCxEfSxjZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihiLEQpe2lmKGIuaXNaZXJvKCl8fEQuaXNaZXJvKCkpcmV0dXJuIGIud29yZHNbMF09MCxiLmxlbmd0aD0xLGI7dmFyIEg9'@; put 'Yi5pbXVsKEQpLE49SC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksZz1ILmlzdWIoTikuaXVzaHJuKHRoaXMuc2hpZnQpLEM9ZztyZXR1cm4gZy5jbXAodGhpcy5tKT49MD9DPWcuaXN1Yih0aGlzLm0pOmcuY21wbigwKTww'@; put 'JiYoQz1nLmlhZGQodGhpcy5tKSksQy5fZm9yY2VSZWQodGhpcyl9LGNlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oYixEKXtpZihiLmlzWmVybygpfHxELmlzWmVybygpKXJldHVybiBuZXcgTSgwKS5fZm9yY2VSZWQodGhpcyk7dmFyIEg9Yi5tdWwoRCksTj1ILm1hc2tuKHRoaXMuc2hpZnQp'@; put 'Lm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxnPUguaXN1YihOKS5pdXNocm4odGhpcy5zaGlmdCksQz1nO3JldHVybiBnLmNtcCh0aGlzLm0pPj0wP0M9Zy5pc3ViKHRoaXMubSk6Zy5jbXBuKDApPDAmJihDPWcuaWFkZCh0aGlzLm0pKSxDLl9mb3JjZVJl'@; put 'ZCh0aGlzKX0sY2UucHJvdG90eXBlLmludm09ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuaW1vZChiLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oYXQ9Ri5ubWQoYXQpLHRoaXMpfSw3MDg5NjpmdW5jdGlvbihhdCl7YXQuZXhwb3J0cz1mdW5jdGlvbigp'@; put 'eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBJZShNZSl7cmV0dXJuKEllPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKERlKXtyZXR1cm4gdHlwZW9mIERlfTpmdW5jdGlvbihEZSl7cmV0dXJuIERlJiYiZnVuY3Rpb24i'@; put 'PT10eXBlb2YgU3ltYm9sJiZEZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmRGUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBEZX0pKE1lKX1mdW5jdGlvbiBGKE1lLERlKXtyZXR1cm4oRj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKG90LHV0KXtyZXR1cm4gb3Qu'@; put 'X19wcm90b19fPXV0LG90fSkoTWUsRGUpfWZ1bmN0aW9uIHgoTWUsRGUsemUpe3JldHVybih4PWZ1bmN0aW9uIGFlKCl7aWYodHlwZW9mIFJlZmxlY3Q+InUifHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2h7cmV0dXJuITF9fSgpP1JlZmxlY3QuY29uc3RydWN0OmZ1bmN0aW9uKHV0LE10LEh0KXt2YXIg'@; put 'UHQ9W251bGxdO1B0LnB1c2guYXBwbHkoUHQsTXQpO3ZhciBDbj1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh1dCxQdCkpO3JldHVybiBIdCYmRihDbixIdC5wcm90b3R5cGUpLENufSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIG0oTWUpe3JldHVybiBmdW5jdGlvbiBsZShNZSl7'@; put 'aWYoQXJyYXkuaXNBcnJheShNZSkpcmV0dXJuIFIoTWUpfShNZSl8fGZ1bmN0aW9uIE0oTWUpe2lmKHR5cGVvZiBTeW1ib2w8InUiJiZudWxsIT1NZVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1NZVsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKE1lKX0oTWUpfHxmdW5jdGlvbiBP'@; put 'KE1lLERlKXtpZihNZSl7aWYoInN0cmluZyI9PXR5cGVvZiBNZSlyZXR1cm4gUihNZSxEZSk7dmFyIHplPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChNZSkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT16ZSYmTWUuY29uc3RydWN0b3ImJih6ZT1NZS5jb25zdHJ1Y3Rvci5uYW1l'@; put 'KSwiTWFwIj09PXplfHwiU2V0Ij09PXplKXJldHVybiBBcnJheS5mcm9tKE1lKTtpZigiQXJndW1lbnRzIj09PXplfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh6ZSkpcmV0dXJuIFIoTWUsRGUpfX0oTWUpfHxmdW5jdGlvbiB6KCl7dGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gUihNZSxE'@; put 'ZSl7KG51bGw9PURlfHxEZT5NZS5sZW5ndGgpJiYoRGU9TWUubGVuZ3RoKTtmb3IodmFyIHplPTAsb3Q9bmV3IEFycmF5KERlKTt6ZTxEZTt6ZSsrKW90W3plXT1NZVt6ZV07cmV0dXJuIG90fXZhciBLPU9iamVjdC5oYXNPd25Qcm9wZXJ0eSxJPU9iamVjdC5zZXRQcm90b3R5cGVPZixrPU9i'@; put 'amVjdC5pc0Zyb3plbixFPU9iamVjdC5nZXRQcm90b3R5cGVPZixqPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsVj1PYmplY3QuZnJlZXplLEI9T2JqZWN0LnNlYWwsWT1PYmplY3QuY3JlYXRlLFg9dHlwZW9mIFJlZmxlY3Q8InUiJiZSZWZsZWN0LFU9WC5hcHBseSxxPVguY29u'@; put 'c3RydWN0O1V8fChVPWZ1bmN0aW9uKERlLHplLG90KXtyZXR1cm4gRGUuYXBwbHkoemUsb3QpfSksVnx8KFY9ZnVuY3Rpb24oRGUpe3JldHVybiBEZX0pLEJ8fChCPWZ1bmN0aW9uKERlKXtyZXR1cm4gRGV9KSxxfHwocT1mdW5jdGlvbihEZSx6ZSl7cmV0dXJuIHgoRGUsbSh6ZSkpfSk7dmFy'@; put 'IGVlPU4oQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLHRlPU4oQXJyYXkucHJvdG90eXBlLnBvcCksb2U9TihBcnJheS5wcm90b3R5cGUucHVzaCksc2U9TihTdHJpbmcucHJvdG90eXBlLnRvTG93ZXJDYXNlKSxoZT1OKFN0cmluZy5wcm90b3R5cGUudG9TdHJpbmcpLHVlPU4oU3RyaW5nLnBy'@; put 'b3RvdHlwZS5tYXRjaCksY2U9TihTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLEc9TihTdHJpbmcucHJvdG90eXBlLmluZGV4T2YpLGI9TihTdHJpbmcucHJvdG90eXBlLnRyaW0pLEQ9TihSZWdFeHAucHJvdG90eXBlLnRlc3QpLEg9ZnVuY3Rpb24gZyhNZSl7cmV0dXJuIGZ1bmN0aW9uKCl7'@; put 'Zm9yKHZhciBEZT1hcmd1bWVudHMubGVuZ3RoLHplPW5ldyBBcnJheShEZSksb3Q9MDtvdDxEZTtvdCsrKXplW290XT1hcmd1bWVudHNbb3RdO3JldHVybiBxKE1lLHplKX19KFR5cGVFcnJvcik7ZnVuY3Rpb24gTihNZSl7cmV0dXJuIGZ1bmN0aW9uKERlKXtmb3IodmFyIHplPWFyZ3VtZW50'@; put 'cy5sZW5ndGgsb3Q9bmV3IEFycmF5KHplPjE/emUtMTowKSx1dD0xO3V0PHplO3V0Kyspb3RbdXQtMV09YXJndW1lbnRzW3V0XTtyZXR1cm4gVShNZSxEZSxvdCl9fWZ1bmN0aW9uIEMoTWUsRGUsemUpe3ZhciBvdDt6ZT1udWxsIT09KG90PXplKSYmdm9pZCAwIT09b3Q/b3Q6c2UsSSYmSShN'@; put 'ZSxudWxsKTtmb3IodmFyIHV0PURlLmxlbmd0aDt1dC0tOyl7dmFyIE10PURlW3V0XTtpZigic3RyaW5nIj09dHlwZW9mIE10KXt2YXIgSHQ9emUoTXQpO0h0IT09TXQmJihrKERlKXx8KERlW3V0XT1IdCksTXQ9SHQpfU1lW010XT0hMH1yZXR1cm4gTWV9ZnVuY3Rpb24gUyhNZSl7dmFyIHpl'@; put 'LERlPVkobnVsbCk7Zm9yKHplIGluIE1lKSEwPT09VShLLE1lLFt6ZV0pJiYoRGVbemVdPU1lW3plXSk7cmV0dXJuIERlfWZ1bmN0aW9uIHYoTWUsRGUpe2Zvcig7bnVsbCE9PU1lOyl7dmFyIHplPWooTWUsRGUpO2lmKHplKXtpZih6ZS5nZXQpcmV0dXJuIE4oemUuZ2V0KTtpZigiZnVuY3Rp'@; put 'b24iPT10eXBlb2YgemUudmFsdWUpcmV0dXJuIE4oemUudmFsdWUpfU1lPUUoTWUpfXJldHVybiBmdW5jdGlvbiBvdCh1dCl7cmV0dXJuIGNvbnNvbGUud2FybigiZmFsbGJhY2sgdmFsdWUgZm9yIix1dCksbnVsbH19dmFyIHA9VihbImEiLCJhYmJyIiwiYWNyb255bSIsImFkZHJlc3MiLCJh'@; put 'cmVhIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxpbmsiLCJibG9ja3F1b3RlIiwiYm9keSIsImJyIiwiYnV0dG9uIiwiY2FudmFzIiwiY2FwdGlvbiIsImNlbnRlciIsImNpdGUiLCJjb2RlIiwiY29sIiwiY29sZ3JvdXAiLCJjb250ZW50Iiwi'@; put 'ZGF0YSIsImRhdGFsaXN0IiwiZGQiLCJkZWNvcmF0b3IiLCJkZWwiLCJkZXRhaWxzIiwiZGZuIiwiZGlhbG9nIiwiZGlyIiwiZGl2IiwiZGwiLCJkdCIsImVsZW1lbnQiLCJlbSIsImZpZWxkc2V0IiwiZmlnY2FwdGlvbiIsImZpZ3VyZSIsImZvbnQiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJo'@; put 'MiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhlYWRlciIsImhncm91cCIsImhyIiwiaHRtbCIsImkiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJtYWluIiwibWFwIiwibWFyayIsIm1hcnF1ZWUiLCJtZW51IiwibWVudWl0ZW0iLCJtZXRl'@; put 'ciIsIm5hdiIsIm5vYnIiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwib3V0cHV0IiwicCIsInBpY3R1cmUiLCJwcmUiLCJwcm9ncmVzcyIsInEiLCJycCIsInJ0IiwicnVieSIsInMiLCJzYW1wIiwic2VjdGlvbiIsInNlbGVjdCIsInNoYWRvdyIsInNtYWxsIiwic291cmNlIiwic3BhY2Vy'@; put 'Iiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN0eWxlIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRlbXBsYXRlIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aW1lIiwidHIiLCJ0cmFjayIsInR0IiwidSIsInVsIiwidmFyIiwidmlk'@; put 'ZW8iLCJ3YnIiXSksdz1WKFsic3ZnIiwiYSIsImFsdGdseXBoIiwiYWx0Z2x5cGhkZWYiLCJhbHRnbHlwaGl0ZW0iLCJhbmltYXRlY29sb3IiLCJhbmltYXRlbW90aW9uIiwiYW5pbWF0ZXRyYW5zZm9ybSIsImNpcmNsZSIsImNsaXBwYXRoIiwiZGVmcyIsImRlc2MiLCJlbGxpcHNlIiwiZmls'@; put 'dGVyIiwiZm9udCIsImciLCJnbHlwaCIsImdseXBocmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmUiLCJsaW5lYXJncmFkaWVudCIsIm1hcmtlciIsIm1hc2siLCJtZXRhZGF0YSIsIm1wYXRoIiwicGF0aCIsInBhdHRlcm4iLCJwb2x5Z29uIiwicG9seWxpbmUiLCJyYWRpYWxncmFkaWVudCIs'@; put 'InJlY3QiLCJzdG9wIiwic3R5bGUiLCJzd2l0Y2giLCJzeW1ib2wiLCJ0ZXh0IiwidGV4dHBhdGgiLCJ0aXRsZSIsInRyZWYiLCJ0c3BhbiIsInZpZXciLCJ2a2VybiJdKSxKPVYoWyJmZUJsZW5kIiwiZmVDb2xvck1hdHJpeCIsImZlQ29tcG9uZW50VHJhbnNmZXIiLCJmZUNvbXBvc2l0ZSIs'@; put 'ImZlQ29udm9sdmVNYXRyaXgiLCJmZURpZmZ1c2VMaWdodGluZyIsImZlRGlzcGxhY2VtZW50TWFwIiwiZmVEaXN0YW50TGlnaHQiLCJmZUZsb29kIiwiZmVGdW5jQSIsImZlRnVuY0IiLCJmZUZ1bmNHIiwiZmVGdW5jUiIsImZlR2F1c3NpYW5CbHVyIiwiZmVJbWFnZSIsImZlTWVyZ2UiLCJm'@; put 'ZU1lcmdlTm9kZSIsImZlTW9ycGhvbG9neSIsImZlT2Zmc2V0IiwiZmVQb2ludExpZ2h0IiwiZmVTcGVjdWxhckxpZ2h0aW5nIiwiZmVTcG90TGlnaHQiLCJmZVRpbGUiLCJmZVR1cmJ1bGVuY2UiXSksbmU9VihbImFuaW1hdGUiLCJjb2xvci1wcm9maWxlIiwiY3Vyc29yIiwiZGlzY2FyZCIs'@; put 'ImZlZHJvcHNoYWRvdyIsImZvbnQtZmFjZSIsImZvbnQtZmFjZS1mb3JtYXQiLCJmb250LWZhY2UtbmFtZSIsImZvbnQtZmFjZS1zcmMiLCJmb250LWZhY2UtdXJpIiwiZm9yZWlnbm9iamVjdCIsImhhdGNoIiwiaGF0Y2hwYXRoIiwibWVzaCIsIm1lc2hncmFkaWVudCIsIm1lc2hwYXRjaCIs'@; put 'Im1lc2hyb3ciLCJtaXNzaW5nLWdseXBoIiwic2NyaXB0Iiwic2V0Iiwic29saWRjb2xvciIsInVua25vd24iLCJ1c2UiXSksZGU9VihbIm1hdGgiLCJtZW5jbG9zZSIsIm1lcnJvciIsIm1mZW5jZWQiLCJtZnJhYyIsIm1nbHlwaCIsIm1pIiwibWxhYmVsZWR0ciIsIm1tdWx0aXNjcmlwdHMi'@; put 'LCJtbiIsIm1vIiwibW92ZXIiLCJtcGFkZGVkIiwibXBoYW50b20iLCJtcm9vdCIsIm1yb3ciLCJtcyIsIm1zcGFjZSIsIm1zcXJ0IiwibXN0eWxlIiwibXN1YiIsIm1zdXAiLCJtc3Vic3VwIiwibXRhYmxlIiwibXRkIiwibXRleHQiLCJtdHIiLCJtdW5kZXIiLCJtdW5kZXJvdmVyIl0pLGZl'@; put 'PVYoWyJtYWN0aW9uIiwibWFsaWduZ3JvdXAiLCJtYWxpZ25tYXJrIiwibWxvbmdkaXYiLCJtc2NhcnJpZXMiLCJtc2NhcnJ5IiwibXNncm91cCIsIm1zdGFjayIsIm1zbGluZSIsIm1zcm93Iiwic2VtYW50aWNzIiwiYW5ub3RhdGlvbiIsImFubm90YXRpb24teG1sIiwibXByZXNjcmlwdHMi'@; put 'LCJub25lIl0pLHhlPVYoWyIjdGV4dCJdKSxMZT1WKFsiYWNjZXB0IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJhdXRvY2FwaXRhbGl6ZSIsImF1dG9jb21wbGV0ZSIsImF1dG9waWN0dXJlaW5waWN0dXJlIiwiYXV0b3BsYXkiLCJiYWNrZ3JvdW5kIiwiYmdjb2xvciIsImJvcmRlciIsImNh'@; put 'cHR1cmUiLCJjZWxscGFkZGluZyIsImNlbGxzcGFjaW5nIiwiY2hlY2tlZCIsImNpdGUiLCJjbGFzcyIsImNsZWFyIiwiY29sb3IiLCJjb2xzIiwiY29sc3BhbiIsImNvbnRyb2xzIiwiY29udHJvbHNsaXN0IiwiY29vcmRzIiwiY3Jvc3NvcmlnaW4iLCJkYXRldGltZSIsImRlY29kaW5nIiwi'@; put 'ZGVmYXVsdCIsImRpciIsImRpc2FibGVkIiwiZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUiLCJkaXNhYmxlcmVtb3RlcGxheWJhY2siLCJkb3dubG9hZCIsImRyYWdnYWJsZSIsImVuY3R5cGUiLCJlbnRlcmtleWhpbnQiLCJmYWNlIiwiZm9yIiwiaGVhZGVycyIsImhlaWdodCIsImhpZGRlbiIs'@; put 'ImhpZ2giLCJocmVmIiwiaHJlZmxhbmciLCJpZCIsImlucHV0bW9kZSIsImludGVncml0eSIsImlzbWFwIiwia2luZCIsImxhYmVsIiwibGFuZyIsImxpc3QiLCJsb2FkaW5nIiwibG9vcCIsImxvdyIsIm1heCIsIm1heGxlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibWluIiwibWlubGVuZ3Ro'@; put 'IiwibXVsdGlwbGUiLCJtdXRlZCIsIm5hbWUiLCJub25jZSIsIm5vc2hhZGUiLCJub3ZhbGlkYXRlIiwibm93cmFwIiwib3BlbiIsIm9wdGltdW0iLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJwbGF5c2lubGluZSIsInBvc3RlciIsInByZWxvYWQiLCJwdWJkYXRlIiwicmFkaW9ncm91cCIs'@; put 'InJlYWRvbmx5IiwicmVsIiwicmVxdWlyZWQiLCJyZXYiLCJyZXZlcnNlZCIsInJvbGUiLCJyb3dzIiwicm93c3BhbiIsInNwZWxsY2hlY2siLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic2l6ZXMiLCJzcGFuIiwic3JjbGFuZyIsInN0YXJ0Iiwic3JjIiwic3Jjc2V0Iiwi'@; put 'c3RlcCIsInN0eWxlIiwic3VtbWFyeSIsInRhYmluZGV4IiwidGl0bGUiLCJ0cmFuc2xhdGUiLCJ0eXBlIiwidXNlbWFwIiwidmFsaWduIiwidmFsdWUiLCJ3aWR0aCIsInhtbG5zIiwic2xvdCJdKSxGZT1WKFsiYWNjZW50LWhlaWdodCIsImFjY3VtdWxhdGUiLCJhZGRpdGl2ZSIsImFsaWdu'@; put 'bWVudC1iYXNlbGluZSIsImFzY2VudCIsImF0dHJpYnV0ZW5hbWUiLCJhdHRyaWJ1dGV0eXBlIiwiYXppbXV0aCIsImJhc2VmcmVxdWVuY3kiLCJiYXNlbGluZS1zaGlmdCIsImJlZ2luIiwiYmlhcyIsImJ5IiwiY2xhc3MiLCJjbGlwIiwiY2xpcHBhdGh1bml0cyIsImNsaXAtcGF0aCIsImNs'@; put 'aXAtcnVsZSIsImNvbG9yIiwiY29sb3ItaW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsImNvbG9yLXByb2ZpbGUiLCJjb2xvci1yZW5kZXJpbmciLCJjeCIsImN5IiwiZCIsImR4IiwiZHkiLCJkaWZmdXNlY29uc3RhbnQiLCJkaXJlY3Rpb24iLCJkaXNwbGF5'@; put 'IiwiZGl2aXNvciIsImR1ciIsImVkZ2Vtb2RlIiwiZWxldmF0aW9uIiwiZW5kIiwiZmlsbCIsImZpbGwtb3BhY2l0eSIsImZpbGwtcnVsZSIsImZpbHRlciIsImZpbHRlcnVuaXRzIiwiZmxvb2QtY29sb3IiLCJmbG9vZC1vcGFjaXR5IiwiZm9udC1mYW1pbHkiLCJmb250LXNpemUiLCJmb250'@; put 'LXNpemUtYWRqdXN0IiwiZm9udC1zdHJldGNoIiwiZm9udC1zdHlsZSIsImZvbnQtdmFyaWFudCIsImZvbnQtd2VpZ2h0IiwiZngiLCJmeSIsImcxIiwiZzIiLCJnbHlwaC1uYW1lIiwiZ2x5cGhyZWYiLCJncmFkaWVudHVuaXRzIiwiZ3JhZGllbnR0cmFuc2Zvcm0iLCJoZWlnaHQiLCJocmVm'@; put 'IiwiaWQiLCJpbWFnZS1yZW5kZXJpbmciLCJpbiIsImluMiIsImsiLCJrMSIsImsyIiwiazMiLCJrNCIsImtlcm5pbmciLCJrZXlwb2ludHMiLCJrZXlzcGxpbmVzIiwia2V5dGltZXMiLCJsYW5nIiwibGVuZ3RoYWRqdXN0IiwibGV0dGVyLXNwYWNpbmciLCJrZXJuZWxtYXRyaXgiLCJrZXJu'@; put 'ZWx1bml0bGVuZ3RoIiwibGlnaHRpbmctY29sb3IiLCJsb2NhbCIsIm1hcmtlci1lbmQiLCJtYXJrZXItbWlkIiwibWFya2VyLXN0YXJ0IiwibWFya2VyaGVpZ2h0IiwibWFya2VydW5pdHMiLCJtYXJrZXJ3aWR0aCIsIm1hc2tjb250ZW50dW5pdHMiLCJtYXNrdW5pdHMiLCJtYXgiLCJtYXNr'@; put 'IiwibWVkaWEiLCJtZXRob2QiLCJtb2RlIiwibWluIiwibmFtZSIsIm51bW9jdGF2ZXMiLCJvZmZzZXQiLCJvcGVyYXRvciIsIm9wYWNpdHkiLCJvcmRlciIsIm9yaWVudCIsIm9yaWVudGF0aW9uIiwib3JpZ2luIiwib3ZlcmZsb3ciLCJwYWludC1vcmRlciIsInBhdGgiLCJwYXRobGVuZ3Ro'@; put 'IiwicGF0dGVybmNvbnRlbnR1bml0cyIsInBhdHRlcm50cmFuc2Zvcm0iLCJwYXR0ZXJudW5pdHMiLCJwb2ludHMiLCJwcmVzZXJ2ZWFscGhhIiwicHJlc2VydmVhc3BlY3RyYXRpbyIsInByaW1pdGl2ZXVuaXRzIiwiciIsInJ4IiwicnkiLCJyYWRpdXMiLCJyZWZ4IiwicmVmeSIsInJlcGVh'@; put 'dGNvdW50IiwicmVwZWF0ZHVyIiwicmVzdGFydCIsInJlc3VsdCIsInJvdGF0ZSIsInNjYWxlIiwic2VlZCIsInNoYXBlLXJlbmRlcmluZyIsInNwZWN1bGFyY29uc3RhbnQiLCJzcGVjdWxhcmV4cG9uZW50Iiwic3ByZWFkbWV0aG9kIiwic3RhcnRvZmZzZXQiLCJzdGRkZXZpYXRpb24iLCJz'@; put 'dGl0Y2h0aWxlcyIsInN0b3AtY29sb3IiLCJzdG9wLW9wYWNpdHkiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtbGluZWNhcCIsInN0cm9rZS1saW5lam9pbiIsInN0cm9rZS1taXRlcmxpbWl0Iiwic3Ryb2tlLW9wYWNpdHkiLCJzdHJva2UiLCJzdHJv'@; put 'a2Utd2lkdGgiLCJzdHlsZSIsInN1cmZhY2VzY2FsZSIsInN5c3RlbWxhbmd1YWdlIiwidGFiaW5kZXgiLCJ0YXJnZXR4IiwidGFyZ2V0eSIsInRyYW5zZm9ybSIsInRyYW5zZm9ybS1vcmlnaW4iLCJ0ZXh0LWFuY2hvciIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtcmVuZGVyaW5nIiwidGV4'@; put 'dGxlbmd0aCIsInR5cGUiLCJ1MSIsInUyIiwidW5pY29kZSIsInZhbHVlcyIsInZpZXdib3giLCJ2aXNpYmlsaXR5IiwidmVyc2lvbiIsInZlcnQtYWR2LXkiLCJ2ZXJ0LW9yaWdpbi14IiwidmVydC1vcmlnaW4teSIsIndpZHRoIiwid29yZC1zcGFjaW5nIiwid3JhcCIsIndyaXRpbmctbW9k'@; put 'ZSIsInhjaGFubmVsc2VsZWN0b3IiLCJ5Y2hhbm5lbHNlbGVjdG9yIiwieCIsIngxIiwieDIiLCJ4bWxucyIsInkiLCJ5MSIsInkyIiwieiIsInpvb21hbmRwYW4iXSksT2U9VihbImFjY2VudCIsImFjY2VudHVuZGVyIiwiYWxpZ24iLCJiZXZlbGxlZCIsImNsb3NlIiwiY29sdW1uc2FsaWdu'@; put 'IiwiY29sdW1ubGluZXMiLCJjb2x1bW5zcGFuIiwiZGVub21hbGlnbiIsImRlcHRoIiwiZGlyIiwiZGlzcGxheSIsImRpc3BsYXlzdHlsZSIsImVuY29kaW5nIiwiZmVuY2UiLCJmcmFtZSIsImhlaWdodCIsImhyZWYiLCJpZCIsImxhcmdlb3AiLCJsZW5ndGgiLCJsaW5ldGhpY2tuZXNzIiwi'@; put 'bHNwYWNlIiwibHF1b3RlIiwibWF0aGJhY2tncm91bmQiLCJtYXRoY29sb3IiLCJtYXRoc2l6ZSIsIm1hdGh2YXJpYW50IiwibWF4c2l6ZSIsIm1pbnNpemUiLCJtb3ZhYmxlbGltaXRzIiwibm90YXRpb24iLCJudW1hbGlnbiIsIm9wZW4iLCJyb3dhbGlnbiIsInJvd2xpbmVzIiwicm93c3Bh'@; put 'Y2luZyIsInJvd3NwYW4iLCJyc3BhY2UiLCJycXVvdGUiLCJzY3JpcHRsZXZlbCIsInNjcmlwdG1pbnNpemUiLCJzY3JpcHRzaXplbXVsdGlwbGllciIsInNlbGVjdGlvbiIsInNlcGFyYXRvciIsInNlcGFyYXRvcnMiLCJzdHJldGNoeSIsInN1YnNjcmlwdHNoaWZ0Iiwic3Vwc2NyaXB0c2hp'@; put 'ZnQiLCJzeW1tZXRyaWMiLCJ2b2Zmc2V0Iiwid2lkdGgiLCJ4bWxucyJdKSxqZT1WKFsieGxpbms6aHJlZiIsInhtbDppZCIsInhsaW5rOnRpdGxlIiwieG1sOnNwYWNlIiwieG1sbnM6eGxpbmsiXSksV2U9QigvXHtce1tcd1xXXSp8W1x3XFddKlx9XH0vZ20pLEtlPUIoLzwlW1x3XFddKnxb'@; put 'XHdcV10qJT4vZ20pLFllPUIoL1wke1tcd1xXXSp9L2dtKSxRZT1CKC9eZGF0YS1bXC1cdy5cdTAwQjctXHVGRkZGXS8pLGx0PUIoL15hcmlhLVtcLVx3XSskLyksUGU9QigvXig/Oig/Oig/OmZ8aHQpdHBzP3xtYWlsdG98dGVsfGNhbGx0b3xjaWR8eG1wcCk6fFteYS16XXxbYS16Ky5cLV0r'@; put 'KD86W15hLXorLlwtOl18JCkpL2kpLGJlPUIoL14oPzpcdytzY3JpcHR8ZGF0YSk6L2kpLEFlPUIoL1tcdTAwMDAtXHUwMDIwXHUwMEEwXHUxNjgwXHUxODBFXHUyMDAwLVx1MjAyOVx1MjA1Rlx1MzAwMF0vZyksVGU9QigvXmh0bWwkL2kpO3JldHVybiBmdW5jdGlvbiBVZSgpe3ZhciBNZT1h'@; put 'cmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dHlwZW9mIHdpbmRvdz4idSI/bnVsbDp3aW5kb3csRGU9ZnVuY3Rpb24oWW4pe3JldHVybiBVZShZbil9O2lmKERlLnZlcnNpb249IjIuNC43IixEZS5yZW1vdmVkPVtdLCFNZXx8IU1lLmRvY3Vt'@; put 'ZW50fHw5IT09TWUuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIERlLmlzU3VwcG9ydGVkPSExLERlO3ZhciB6ZT1NZS5kb2N1bWVudCxvdD1NZS5kb2N1bWVudCx1dD1NZS5Eb2N1bWVudEZyYWdtZW50LE10PU1lLkhUTUxUZW1wbGF0ZUVsZW1lbnQsSHQ9TWUuTm9kZSxQdD1NZS5FbGVtZW50'@; put 'LG9uPU1lLk5vZGVGaWx0ZXIsQ249TWUuTmFtZWROb2RlTWFwLFV0PXZvaWQgMD09PUNuP01lLk5hbWVkTm9kZU1hcHx8TWUuTW96TmFtZWRBdHRyTWFwOkNuLGJuPU1lLkhUTUxGb3JtRWxlbWVudCxXbj1NZS5ET01QYXJzZXIsZW49TWUudHJ1c3RlZFR5cGVzLCRuPVB0LnByb3RvdHlwZSxI'@; put 'bj12KCRuLCJjbG9uZU5vZGUiKSxmdD12KCRuLCJuZXh0U2libGluZyIpLGZuPXYoJG4sImNoaWxkTm9kZXMiKSxobj12KCRuLCJwYXJlbnROb2RlIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE10KXt2YXIgd3Q9b3QuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTt3dC5jb250ZW50JiZ3dC5j'@; put 'b250ZW50Lm93bmVyRG9jdW1lbnQmJihvdD13dC5jb250ZW50Lm93bmVyRG9jdW1lbnQpfXZhciBYdD1mdW5jdGlvbihEZSx6ZSl7aWYoIm9iamVjdCIhPT1JZShEZSl8fCJmdW5jdGlvbiIhPXR5cGVvZiBEZS5jcmVhdGVQb2xpY3kpcmV0dXJuIG51bGw7dmFyIG90PW51bGwsdXQ9ImRhdGEt'@; put 'dHQtcG9saWN5LXN1ZmZpeCI7emUuY3VycmVudFNjcmlwdCYmemUuY3VycmVudFNjcmlwdC5oYXNBdHRyaWJ1dGUodXQpJiYob3Q9emUuY3VycmVudFNjcmlwdC5nZXRBdHRyaWJ1dGUodXQpKTt2YXIgTXQ9ImRvbXB1cmlmeSIrKG90PyIjIitvdDoiIik7dHJ5e3JldHVybiBEZS5jcmVhdGVQ'@; put 'b2xpY3koTXQse2NyZWF0ZUhUTUw6ZnVuY3Rpb24oUHQpe3JldHVybiBQdH0sY3JlYXRlU2NyaXB0VVJMOmZ1bmN0aW9uKFB0KXtyZXR1cm4gUHR9fSl9Y2F0Y2h7cmV0dXJuIGNvbnNvbGUud2FybigiVHJ1c3RlZFR5cGVzIHBvbGljeSAiK010KyIgY291bGQgbm90IGJlIGNyZWF0ZWQuIiks'@; put 'bnVsbH19KGVuLHplKSxfdD1YdD9YdC5jcmVhdGVIVE1MKCIiKToiIixtbj1vdC5pbXBsZW1lbnRhdGlvbixydD1vdC5jcmVhdGVOb2RlSXRlcmF0b3IsSXQ9b3QuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxRdD1vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSxEdD16ZS5pbXBvcnROb2RlLHB0PXt9'@; put 'O3RyeXtwdD1TKG90KS5kb2N1bWVudE1vZGU/b3QuZG9jdW1lbnRNb2RlOnt9fWNhdGNoe312YXIgWXQ9e307RGUuaXNTdXBwb3J0ZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIGhuJiZtbiYmdm9pZCAwIT09bW4uY3JlYXRlSFRNTERvY3VtZW50JiY5IT09cHQ7dmFyIGVhLCRhLEluPVdlLHp0PUtl'@; put 'LHluPVllLHhuPVFlLHNuPWx0LEJuPWJlLFJuPUFlLCR0PVBlLEZuPW51bGwsbmk9Qyh7fSxbXS5jb25jYXQobShwKSxtKHcpLG0oSiksbShkZSksbSh4ZSkpKSxsbj1udWxsLGpuPUMoe30sW10uY29uY2F0KG0oTGUpLG0oRmUpLG0oT2UpLG0oamUpKSkscXI9T2JqZWN0LnNlYWwoT2JqZWN0'@; put 'LmNyZWF0ZShudWxsLHt0YWdOYW1lQ2hlY2s6e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOm51bGx9LGF0dHJpYnV0ZU5hbWVDaGVjazp7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6bnVsbH0sYWxsb3dDdXN0'@; put 'b21pemVkQnVpbHRJbkVsZW1lbnRzOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTohMX19KSksZ2k9bnVsbCx4cj1udWxsLFVpPSEwLEtyPSEwLG5vPSExLEhyPSEwLHFpPSExLEppPSExLGFvPSExLHJvPSExLGlvPSExLEdpPSExLGhvPSExLHlyPSEw'@; put 'LFBpPSExLGhzPSEwLHJzPSExLFJjPXt9LHVsPW51bGwsT2M9Qyh7fSxbImFubm90YXRpb24teG1sIiwiYXVkaW8iLCJjb2xncm91cCIsImRlc2MiLCJmb3JlaWdub2JqZWN0IiwiaGVhZCIsImlmcmFtZSIsIm1hdGgiLCJtaSIsIm1uIiwibW8iLCJtcyIsIm10ZXh0Iiwibm9lbWJlZCIsIm5v'@; put 'ZnJhbWVzIiwibm9zY3JpcHQiLCJwbGFpbnRleHQiLCJzY3JpcHQiLCJzdHlsZSIsInN2ZyIsInRlbXBsYXRlIiwidGhlYWQiLCJ0aXRsZSIsInZpZGVvIiwieG1wIl0pLE4wPW51bGwsczM9Qyh7fSxbImF1ZGlvIiwidmlkZW8iLCJpbWciLCJzb3VyY2UiLCJpbWFnZSIsInRyYWNrIl0pLGsy'@; put 'PW51bGwsZTA9Qyh7fSxbImFsdCIsImNsYXNzIiwiZm9yIiwiaWQiLCJsYWJlbCIsIm5hbWUiLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJyb2xlIiwic3VtbWFyeSIsInRpdGxlIiwidmFsdWUiLCJzdHlsZSIsInhtbG5zIl0pLHh1PSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0'@; put 'aE1MIixmcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLFBhPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixTcj1QYSxBMj0hMSxhMz1udWxsLFBoPUMoe30sW3h1LGZzLFBhXSxoZSksaXM9WyJhcHBsaWNhdGlvbi94aHRtbCt4bWwiLCJ0ZXh0L2h0bWwiXSx0MD1udWxsLFNh'@; put 'PW90LmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxGaD1mdW5jdGlvbihZbil7cmV0dXJuIFluIGluc3RhbmNlb2YgUmVnRXhwfHxZbiBpbnN0YW5jZW9mIEZ1bmN0aW9ufSxFdT1mdW5jdGlvbihZbil7dDAmJnQwPT09WW58fCgoIVlufHwib2JqZWN0IiE9PUllKFluKSkmJihZbj17fSksWW49UyhZ'@; put 'biksZWE9ZWE9LTE9PT1pcy5pbmRleE9mKFluLlBBUlNFUl9NRURJQV9UWVBFKT8idGV4dC9odG1sIjpZbi5QQVJTRVJfTUVESUFfVFlQRSwkYT0iYXBwbGljYXRpb24veGh0bWwreG1sIj09PWVhP2hlOnNlLEZuPSJBTExPV0VEX1RBR1MiaW4gWW4/Qyh7fSxZbi5BTExPV0VEX1RBR1MsJGEp'@; put 'Om5pLGxuPSJBTExPV0VEX0FUVFIiaW4gWW4/Qyh7fSxZbi5BTExPV0VEX0FUVFIsJGEpOmpuLGEzPSJBTExPV0VEX05BTUVTUEFDRVMiaW4gWW4/Qyh7fSxZbi5BTExPV0VEX05BTUVTUEFDRVMsaGUpOlBoLGsyPSJBRERfVVJJX1NBRkVfQVRUUiJpbiBZbj9DKFMoZTApLFluLkFERF9VUklf'@; put 'U0FGRV9BVFRSLCRhKTplMCxOMD0iQUREX0RBVEFfVVJJX1RBR1MiaW4gWW4/QyhTKHMzKSxZbi5BRERfREFUQV9VUklfVEFHUywkYSk6czMsdWw9IkZPUkJJRF9DT05URU5UUyJpbiBZbj9DKHt9LFluLkZPUkJJRF9DT05URU5UUywkYSk6T2MsZ2k9IkZPUkJJRF9UQUdTImluIFluP0Moe30s'@; put 'WW4uRk9SQklEX1RBR1MsJGEpOnt9LHhyPSJGT1JCSURfQVRUUiJpbiBZbj9DKHt9LFluLkZPUkJJRF9BVFRSLCRhKTp7fSxSYz0iVVNFX1BST0ZJTEVTImluIFluJiZZbi5VU0VfUFJPRklMRVMsVWk9ITEhPT1Zbi5BTExPV19BUklBX0FUVFIsS3I9ITEhPT1Zbi5BTExPV19EQVRBX0FUVFIs'@; put 'bm89WW4uQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFN8fCExLEhyPSExIT09WW4uQUxMT1dfU0VMRl9DTE9TRV9JTl9BVFRSLHFpPVluLlNBRkVfRk9SX1RFTVBMQVRFU3x8ITEsSmk9WW4uV0hPTEVfRE9DVU1FTlR8fCExLGlvPVluLlJFVFVSTl9ET018fCExLEdpPVluLlJFVFVSTl9ET01fRlJB'@; put 'R01FTlR8fCExLGhvPVluLlJFVFVSTl9UUlVTVEVEX1RZUEV8fCExLHJvPVluLkZPUkNFX0JPRFl8fCExLHlyPSExIT09WW4uU0FOSVRJWkVfRE9NLFBpPVluLlNBTklUSVpFX05BTUVEX1BST1BTfHwhMSxocz0hMSE9PVluLktFRVBfQ09OVEVOVCxycz1Zbi5JTl9QTEFDRXx8ITEsJHQ9WW4u'@; put 'QUxMT1dFRF9VUklfUkVHRVhQfHwkdCxTcj1Zbi5OQU1FU1BBQ0V8fFBhLHFyPVluLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HfHx7fSxZbi5DVVNUT01fRUxFTUVOVF9IQU5ETElORyYmRmgoWW4uQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKSYmKHFyLnRhZ05hbWVDaGVj'@; put 'az1Zbi5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spLFluLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiZGaChZbi5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spJiYocXIuYXR0cmlidXRlTmFtZUNoZWNrPVluLkNVU1RPTV9FTEVNRU5UX0hB'@; put 'TkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjayksWW4uQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJiJib29sZWFuIj09dHlwZW9mIFluLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyYmKHFyLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50'@; put 'cz1Zbi5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMpLHFpJiYoS3I9ITEpLEdpJiYoaW89ITApLFJjJiYoRm49Qyh7fSxtKHhlKSksbG49W10sITA9PT1SYy5odG1sJiYoQyhGbixwKSxDKGxuLExlKSksITA9PT1SYy5zdmcmJihDKEZuLHcp'@; put 'LEMobG4sRmUpLEMobG4samUpKSwhMD09PVJjLnN2Z0ZpbHRlcnMmJihDKEZuLEopLEMobG4sRmUpLEMobG4samUpKSwhMD09PVJjLm1hdGhNbCYmKEMoRm4sZGUpLEMobG4sT2UpLEMobG4samUpKSksWW4uQUREX1RBR1MmJihGbj09PW5pJiYoRm49UyhGbikpLEMoRm4sWW4uQUREX1RBR1Ms'@; put 'JGEpKSxZbi5BRERfQVRUUiYmKGxuPT09am4mJihsbj1TKGxuKSksQyhsbixZbi5BRERfQVRUUiwkYSkpLFluLkFERF9VUklfU0FGRV9BVFRSJiZDKGsyLFluLkFERF9VUklfU0FGRV9BVFRSLCRhKSxZbi5GT1JCSURfQ09OVEVOVFMmJih1bD09PU9jJiYodWw9Uyh1bCkpLEModWwsWW4uRk9S'@; put 'QklEX0NPTlRFTlRTLCRhKSksaHMmJihGblsiI3RleHQiXT0hMCksSmkmJkMoRm4sWyJodG1sIiwiaGVhZCIsImJvZHkiXSksRm4udGFibGUmJihDKEZuLFsidGJvZHkiXSksZGVsZXRlIGdpLnRib2R5KSxWJiZWKFluKSx0MD1Zbil9LEFzPUMoe30sWyJtaSIsIm1vIiwibW4iLCJtcyIsIm10'@; put 'ZXh0Il0pLG4wPUMoe30sWyJmb3JlaWdub2JqZWN0IiwiZGVzYyIsInRpdGxlIiwiYW5ub3RhdGlvbi14bWwiXSkscWE9Qyh7fSxbInRpdGxlIiwic3R5bGUiLCJmb250IiwiYSIsInNjcmlwdCJdKSxfYz1DKHt9LHcpO0MoX2MsSiksQyhfYyxuZSk7dmFyIEhoPUMoe30sZGUpO0MoSGgsZmUp'@; put 'O3ZhciBibz1mdW5jdGlvbihZbil7b2UoRGUucmVtb3ZlZCx7ZWxlbWVudDpZbn0pO3RyeXtZbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKFluKX1jYXRjaHt0cnl7WW4ub3V0ZXJIVE1MPV90fWNhdGNoe1luLnJlbW92ZSgpfX19LHIwPWZ1bmN0aW9uKFluLF9pKXt0cnl7b2UoRGUucmVtb3Zl'@; put 'ZCx7YXR0cmlidXRlOl9pLmdldEF0dHJpYnV0ZU5vZGUoWW4pLGZyb206X2l9KX1jYXRjaHtvZShEZS5yZW1vdmVkLHthdHRyaWJ1dGU6bnVsbCxmcm9tOl9pfSl9aWYoX2kucmVtb3ZlQXR0cmlidXRlKFluKSwiaXMiPT09WW4mJiFsbltZbl0paWYoaW98fEdpKXRyeXtibyhfaSl9Y2F0Y2h7'@; put 'fWVsc2UgdHJ5e19pLnNldEF0dHJpYnV0ZShZbiwiIil9Y2F0Y2h7fX0sVDI9ZnVuY3Rpb24oWW4pe3ZhciBfaSxiaTtpZihybylZbj0iPHJlbW92ZT48L3JlbW92ZT4iK1luO2Vsc2V7dmFyIG9zPXVlKFluLC9eW1xyXG5cdCBdKy8pO2JpPW9zJiZvc1swXX0iYXBwbGljYXRpb24veGh0bWwr'@; put 'eG1sIj09PWVhJiZTcj09PVBhJiYoWW49JzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48L2hlYWQ+PGJvZHk+JytZbisiPC9ib2R5PjwvaHRtbD4iKTt2YXIgRmE9WHQ/WHQuY3JlYXRlSFRNTChZbik6WW47aWYoU3I9PT1QYSl0cnl7X2k9KG5ldyBX'@; put 'bikucGFyc2VGcm9tU3RyaW5nKEZhLGVhKX1jYXRjaHt9aWYoIV9pfHwhX2kuZG9jdW1lbnRFbGVtZW50KXtfaT1tbi5jcmVhdGVEb2N1bWVudChTciwidGVtcGxhdGUiLG51bGwpO3RyeXtfaS5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MPUEyP190OkZhfWNhdGNoe319dmFyIEhhPV9pLmJv'@; put 'ZHl8fF9pLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gWW4mJmJpJiZIYS5pbnNlcnRCZWZvcmUob3QuY3JlYXRlVGV4dE5vZGUoYmkpLEhhLmNoaWxkTm9kZXNbMF18fG51bGwpLFNyPT09UGE/UXQuY2FsbChfaSxKaT8iaHRtbCI6ImJvZHkiKVswXTpKaT9faS5kb2N1bWVudEVsZW1lbnQ6SGF9'@; put 'LEQyPWZ1bmN0aW9uKFluKXtyZXR1cm4gcnQuY2FsbChZbi5vd25lckRvY3VtZW50fHxZbixZbixvbi5TSE9XX0VMRU1FTlR8b24uU0hPV19DT01NRU5UfG9uLlNIT1dfVEVYVCxudWxsLCExKX0sQXI9ZnVuY3Rpb24oWW4pe3JldHVybiJvYmplY3QiPT09SWUoSHQpP1luIGluc3RhbmNlb2Yg'@; put 'SHQ6WW4mJiJvYmplY3QiPT09SWUoWW4pJiYibnVtYmVyIj09dHlwZW9mIFluLm5vZGVUeXBlJiYic3RyaW5nIj09dHlwZW9mIFluLm5vZGVOYW1lfSxiYz1mdW5jdGlvbihZbixfaSxiaSl7WXRbWW5dJiZlZShZdFtZbl0sZnVuY3Rpb24ob3Mpe29zLmNhbGwoRGUsX2ksYmksdDApfSl9LGtv'@; put 'PWZ1bmN0aW9uKFluKXt2YXIgX2k7aWYoYmMoImJlZm9yZVNhbml0aXplRWxlbWVudHMiLFluLG51bGwpLGZ1bmN0aW9uKFluKXtyZXR1cm4gWW4gaW5zdGFuY2VvZiBibiYmKCJzdHJpbmciIT10eXBlb2YgWW4ubm9kZU5hbWV8fCJzdHJpbmciIT10eXBlb2YgWW4udGV4dENvbnRlbnR8fCJm'@; put 'dW5jdGlvbiIhPXR5cGVvZiBZbi5yZW1vdmVDaGlsZHx8IShZbi5hdHRyaWJ1dGVzIGluc3RhbmNlb2YgVXQpfHwiZnVuY3Rpb24iIT10eXBlb2YgWW4ucmVtb3ZlQXR0cmlidXRlfHwiZnVuY3Rpb24iIT10eXBlb2YgWW4uc2V0QXR0cmlidXRlfHwic3RyaW5nIiE9dHlwZW9mIFluLm5hbWVz'@; put 'cGFjZVVSSXx8ImZ1bmN0aW9uIiE9dHlwZW9mIFluLmluc2VydEJlZm9yZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIFluLmhhc0NoaWxkTm9kZXMpfShZbil8fEQoL1tcdTAwODAtXHVGRkZGXS8sWW4ubm9kZU5hbWUpKXJldHVybiBibyhZbiksITA7dmFyIGJpPSRhKFluLm5vZGVOYW1lKTtpZihi'@; put 'YygidXBvblNhbml0aXplRWxlbWVudCIsWW4se3RhZ05hbWU6YmksYWxsb3dlZFRhZ3M6Rm59KSxZbi5oYXNDaGlsZE5vZGVzKCkmJiFBcihZbi5maXJzdEVsZW1lbnRDaGlsZCkmJighQXIoWW4uY29udGVudCl8fCFBcihZbi5jb250ZW50LmZpcnN0RWxlbWVudENoaWxkKSkmJkQoLzxbL1x3'@; put 'XS9nLFluLmlubmVySFRNTCkmJkQoLzxbL1x3XS9nLFluLnRleHRDb250ZW50KXx8InNlbGVjdCI9PT1iaSYmRCgvPHRlbXBsYXRlL2ksWW4uaW5uZXJIVE1MKSlyZXR1cm4gYm8oWW4pLCEwO2lmKCFGbltiaV18fGdpW2JpXSl7aWYoIWdpW2JpXSYmbzAoYmkpJiYocXIudGFnTmFtZUNoZWNr'@; put 'IGluc3RhbmNlb2YgUmVnRXhwJiZEKHFyLnRhZ05hbWVDaGVjayxiaSl8fHFyLnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZxci50YWdOYW1lQ2hlY2soYmkpKSlyZXR1cm4hMTtpZihocyYmIXVsW2JpXSl7dmFyIG9zPWhuKFluKXx8WW4ucGFyZW50Tm9kZSxGYT1mbihZbil8'@; put 'fFluLmNoaWxkTm9kZXM7aWYoRmEmJm9zKWZvcih2YXIgJG89RmEubGVuZ3RoLTE7JG8+PTA7LS0kbylvcy5pbnNlcnRCZWZvcmUoSG4oRmFbJG9dLCEwKSxmdChZbikpfXJldHVybiBibyhZbiksITB9cmV0dXJuIFluIGluc3RhbmNlb2YgUHQmJiFmdW5jdGlvbihZbil7dmFyIF9pPWhuKFlu'@; put 'KTsoIV9pfHwhX2kudGFnTmFtZSkmJihfaT17bmFtZXNwYWNlVVJJOlNyLHRhZ05hbWU6InRlbXBsYXRlIn0pO3ZhciBiaT1zZShZbi50YWdOYW1lKSxvcz1zZShfaS50YWdOYW1lKTtyZXR1cm4hIWEzW1luLm5hbWVzcGFjZVVSSV0mJihZbi5uYW1lc3BhY2VVUkk9PT1mcz9faS5uYW1lc3Bh'@; put 'Y2VVUkk9PT1QYT8ic3ZnIj09PWJpOl9pLm5hbWVzcGFjZVVSST09PXh1PyJzdmciPT09YmkmJigiYW5ub3RhdGlvbi14bWwiPT09b3N8fEFzW29zXSk6ISFfY1tiaV06WW4ubmFtZXNwYWNlVVJJPT09eHU/X2kubmFtZXNwYWNlVVJJPT09UGE/Im1hdGgiPT09Ymk6X2kubmFtZXNwYWNlVVJJ'@; put 'PT09ZnM/Im1hdGgiPT09YmkmJm4wW29zXTohIUhoW2JpXTpZbi5uYW1lc3BhY2VVUkk9PT1QYT8hKF9pLm5hbWVzcGFjZVVSST09PWZzJiYhbjBbb3NdfHxfaS5uYW1lc3BhY2VVUkk9PT14dSYmIUFzW29zXSkmJiFIaFtiaV0mJihxYVtiaV18fCFfY1tiaV0pOiEoImFwcGxpY2F0aW9uL3ho'@; put 'dG1sK3htbCIhPT1lYXx8IWEzW1luLm5hbWVzcGFjZVVSSV0pKX0oWW4pfHwoIm5vc2NyaXB0Ij09PWJpfHwibm9lbWJlZCI9PT1iaXx8Im5vZnJhbWVzIj09PWJpKSYmRCgvPFwvbm8oc2NyaXB0fGVtYmVkfGZyYW1lcykvaSxZbi5pbm5lckhUTUwpPyhibyhZbiksITApOihxaSYmMz09PVlu'@; put 'Lm5vZGVUeXBlJiYoX2k9Y2UoX2k9WW4udGV4dENvbnRlbnQsSW4sIiAiKSxfaT1jZShfaSx6dCwiICIpLF9pPWNlKF9pLHluLCIgIiksWW4udGV4dENvbnRlbnQhPT1faSYmKG9lKERlLnJlbW92ZWQse2VsZW1lbnQ6WW4uY2xvbmVOb2RlKCl9KSxZbi50ZXh0Q29udGVudD1faSkpLGJjKCJh'@; put 'ZnRlclNhbml0aXplRWxlbWVudHMiLFluLG51bGwpLCExKX0sQ3M9ZnVuY3Rpb24oWW4sX2ksYmkpe2lmKHlyJiYoImlkIj09PV9pfHwibmFtZSI9PT1faSkmJihiaSBpbiBvdHx8YmkgaW4gU2EpKXJldHVybiExO2lmKCghS3J8fHhyW19pXXx8IUQoeG4sX2kpKSYmKCFVaXx8IUQoc24sX2kp'@; put 'KSlpZighbG5bX2ldfHx4cltfaV0pe2lmKCEobzAoWW4pJiYocXIudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZEKHFyLnRhZ05hbWVDaGVjayxZbil8fHFyLnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZxci50YWdOYW1lQ2hlY2soWW4pKSYmKHFyLmF0dHJpYnV0'@; put 'ZU5hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCYmRChxci5hdHRyaWJ1dGVOYW1lQ2hlY2ssX2kpfHxxci5hdHRyaWJ1dGVOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiYmcXIuYXR0cmlidXRlTmFtZUNoZWNrKF9pKSl8fCJpcyI9PT1faSYmcXIuYWxsb3dDdXN0b21pemVkQnVpbHRJ'@; put 'bkVsZW1lbnRzJiYocXIudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZEKHFyLnRhZ05hbWVDaGVjayxiaSl8fHFyLnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZxci50YWdOYW1lQ2hlY2soYmkpKSkpcmV0dXJuITF9ZWxzZSBpZighazJbX2ldJiYhRCgkdCxjZShi'@; put 'aSxSbiwiIikpJiYoInNyYyIhPT1faSYmInhsaW5rOmhyZWYiIT09X2kmJiJocmVmIiE9PV9pfHwic2NyaXB0Ij09PVlufHwwIT09RyhiaSwiZGF0YToiKXx8IU4wW1luXSkmJighbm98fEQoQm4sY2UoYmksUm4sIiIpKSkmJmJpKXJldHVybiExO3JldHVybiEwfSxvMD1mdW5jdGlvbihZbil7'@; put 'cmV0dXJuIFluLmluZGV4T2YoIi0iKT4wfSxJMj1mdW5jdGlvbihZbil7dmFyIF9pLGJpLG9zLEZhO2JjKCJiZWZvcmVTYW5pdGl6ZUF0dHJpYnV0ZXMiLFluLG51bGwpO3ZhciBIYT1Zbi5hdHRyaWJ1dGVzO2lmKEhhKXt2YXIgJG89e2F0dHJOYW1lOiIiLGF0dHJWYWx1ZToiIixrZWVwQXR0'@; put 'cjohMCxhbGxvd2VkQXR0cmlidXRlczpsbn07Zm9yKEZhPUhhLmxlbmd0aDtGYS0tOyl7dmFyIERhPShfaT1IYVtGYV0pLm5hbWUsVmg9X2kubmFtZXNwYWNlVVJJO2lmKGJpPSJ2YWx1ZSI9PT1EYT9faS52YWx1ZTpiKF9pLnZhbHVlKSxvcz0kYShEYSksJG8uYXR0ck5hbWU9b3MsJG8uYXR0'@; put 'clZhbHVlPWJpLCRvLmtlZXBBdHRyPSEwLCRvLmZvcmNlS2VlcEF0dHI9dm9pZCAwLGJjKCJ1cG9uU2FuaXRpemVBdHRyaWJ1dGUiLFluLCRvKSxiaT0kby5hdHRyVmFsdWUsISRvLmZvcmNlS2VlcEF0dHImJihyMChEYSxZbiksJG8ua2VlcEF0dHIpKXtpZighSHImJkQoL1wvPi9pLGJpKSl7'@; put 'cjAoRGEsWW4pO2NvbnRpbnVlfXFpJiYoYmk9Y2UoYmksSW4sIiAiKSxiaT1jZShiaSx6dCwiICIpLGJpPWNlKGJpLHluLCIgIikpO3ZhciBCaD0kYShZbi5ub2RlTmFtZSk7aWYoQ3MoQmgsb3MsYmkpKXtpZihQaSYmKCJpZCI9PT1vc3x8Im5hbWUiPT09b3MpJiYocjAoRGEsWW4pLGJpPSJ1'@; put 'c2VyLWNvbnRlbnQtIitiaSksWHQmJiJvYmplY3QiPT09SWUoZW4pJiYiZnVuY3Rpb24iPT10eXBlb2YgZW4uZ2V0QXR0cmlidXRlVHlwZSYmIVZoKXN3aXRjaChlbi5nZXRBdHRyaWJ1dGVUeXBlKEJoLG9zKSl7Y2FzZSJUcnVzdGVkSFRNTCI6Ymk9WHQuY3JlYXRlSFRNTChiaSk7YnJlYWs7'@; put 'Y2FzZSJUcnVzdGVkU2NyaXB0VVJMIjpiaT1YdC5jcmVhdGVTY3JpcHRVUkwoYmkpfXRyeXtWaD9Zbi5zZXRBdHRyaWJ1dGVOUyhWaCxEYSxiaSk6WW4uc2V0QXR0cmlidXRlKERhLGJpKSx0ZShEZS5yZW1vdmVkKX1jYXRjaHt9fX19YmMoImFmdGVyU2FuaXRpemVBdHRyaWJ1dGVzIixZbixu'@; put 'dWxsKX19LE5oPWZ1bmN0aW9uIFFpKFluKXt2YXIgX2ksYmk9RDIoWW4pO2ZvcihiYygiYmVmb3JlU2FuaXRpemVTaGFkb3dET00iLFluLG51bGwpO19pPWJpLm5leHROb2RlKCk7KWJjKCJ1cG9uU2FuaXRpemVTaGFkb3dOb2RlIixfaSxudWxsKSwha28oX2kpJiYoX2kuY29udGVudCBpbnN0'@; put 'YW5jZW9mIHV0JiZRaShfaS5jb250ZW50KSxJMihfaSkpO2JjKCJhZnRlclNhbml0aXplU2hhZG93RE9NIixZbixudWxsKX07cmV0dXJuIERlLnNhbml0aXplPWZ1bmN0aW9uKFFpKXt2YXIgX2ksYmksb3MsRmEsSGEsWW49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNb'@; put 'MV0/YXJndW1lbnRzWzFdOnt9O2lmKChBMj0hUWkpJiYoUWk9Ilx4M2MhLS1ceDNlIiksInN0cmluZyIhPXR5cGVvZiBRaSYmIUFyKFFpKSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFFpLnRvU3RyaW5nKXRocm93IEgoInRvU3RyaW5nIGlzIG5vdCBhIGZ1bmN0aW9uIik7aWYoInN0cmluZyIh'@; put 'PXR5cGVvZihRaT1RaS50b1N0cmluZygpKSl0aHJvdyBIKCJkaXJ0eSBpcyBub3QgYSBzdHJpbmcsIGFib3J0aW5nIil9aWYoIURlLmlzU3VwcG9ydGVkKXtpZigib2JqZWN0Ij09PUllKE1lLnRvU3RhdGljSFRNTCl8fCJmdW5jdGlvbiI9PXR5cGVvZiBNZS50b1N0YXRpY0hUTUwpe2lmKCJz'@; put 'dHJpbmciPT10eXBlb2YgUWkpcmV0dXJuIE1lLnRvU3RhdGljSFRNTChRaSk7aWYoQXIoUWkpKXJldHVybiBNZS50b1N0YXRpY0hUTUwoUWkub3V0ZXJIVE1MKX1yZXR1cm4gUWl9aWYoYW98fEV1KFluKSxEZS5yZW1vdmVkPVtdLCJzdHJpbmciPT10eXBlb2YgUWkmJihycz0hMSkscnMpe2lm'@; put 'KFFpLm5vZGVOYW1lKXt2YXIgJG89JGEoUWkubm9kZU5hbWUpO2lmKCFGblskb118fGdpWyRvXSl0aHJvdyBIKCJyb290IG5vZGUgaXMgZm9yYmlkZGVuIGFuZCBjYW5ub3QgYmUgc2FuaXRpemVkIGluLXBsYWNlIil9fWVsc2UgaWYoUWkgaW5zdGFuY2VvZiBIdCkxPT09KGJpPShfaT1UMigi'@; put 'XHgzYyEtLS0tXHgzZSIpKS5vd25lckRvY3VtZW50LmltcG9ydE5vZGUoUWksITApKS5ub2RlVHlwZSYmIkJPRFkiPT09Ymkubm9kZU5hbWV8fCJIVE1MIj09PWJpLm5vZGVOYW1lP19pPWJpOl9pLmFwcGVuZENoaWxkKGJpKTtlbHNle2lmKCFpbyYmIXFpJiYhSmkmJi0xPT09UWkuaW5kZXhP'@; put 'ZigiPCIpKXJldHVybiBYdCYmaG8/WHQuY3JlYXRlSFRNTChRaSk6UWk7aWYoIShfaT1UMihRaSkpKXJldHVybiBpbz9udWxsOmhvP190OiIifV9pJiZybyYmYm8oX2kuZmlyc3RDaGlsZCk7Zm9yKHZhciBWMD1EMihycz9RaTpfaSk7b3M9VjAubmV4dE5vZGUoKTspMz09PW9zLm5vZGVUeXBl'@; put 'JiZvcz09PUZhfHxrbyhvcyl8fChvcy5jb250ZW50IGluc3RhbmNlb2YgdXQmJk5oKG9zLmNvbnRlbnQpLEkyKG9zKSxGYT1vcyk7aWYoRmE9bnVsbCxycylyZXR1cm4gUWk7aWYoaW8pe2lmKEdpKWZvcihIYT1JdC5jYWxsKF9pLm93bmVyRG9jdW1lbnQpO19pLmZpcnN0Q2hpbGQ7KUhhLmFw'@; put 'cGVuZENoaWxkKF9pLmZpcnN0Q2hpbGQpO2Vsc2UgSGE9X2k7cmV0dXJuKGxuLnNoYWRvd3Jvb3R8fGxuLnNoYWRvd3Jvb3Rtb2QpJiYoSGE9RHQuY2FsbCh6ZSxIYSwhMCkpLEhhfXZhciBEYT1KaT9faS5vdXRlckhUTUw6X2kuaW5uZXJIVE1MO3JldHVybiBKaSYmRm5bIiFkb2N0eXBlIl0m'@; put 'Jl9pLm93bmVyRG9jdW1lbnQmJl9pLm93bmVyRG9jdW1lbnQuZG9jdHlwZSYmX2kub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUmJkQoVGUsX2kub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUpJiYoRGE9IjwhRE9DVFlQRSAiK19pLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lKyI+XG4i'@; put 'K0RhKSxxaSYmKERhPWNlKERhLEluLCIgIiksRGE9Y2UoRGEsenQsIiAiKSxEYT1jZShEYSx5biwiICIpKSxYdCYmaG8/WHQuY3JlYXRlSFRNTChEYSk6RGF9LERlLnNldENvbmZpZz1mdW5jdGlvbihRaSl7RXUoUWkpLGFvPSEwfSxEZS5jbGVhckNvbmZpZz1mdW5jdGlvbigpe3QwPW51bGws'@; put 'YW89ITF9LERlLmlzVmFsaWRBdHRyaWJ1dGU9ZnVuY3Rpb24oUWksWW4sX2kpe3QwfHxFdSh7fSk7dmFyIGJpPSRhKFFpKSxvcz0kYShZbik7cmV0dXJuIENzKGJpLG9zLF9pKX0sRGUuYWRkSG9vaz1mdW5jdGlvbihRaSxZbil7ImZ1bmN0aW9uIj09dHlwZW9mIFluJiYoWXRbUWldPVl0W1Fp'@; put 'XXx8W10sb2UoWXRbUWldLFluKSl9LERlLnJlbW92ZUhvb2s9ZnVuY3Rpb24oUWkpe2lmKFl0W1FpXSlyZXR1cm4gdGUoWXRbUWldKX0sRGUucmVtb3ZlSG9va3M9ZnVuY3Rpb24oUWkpe1l0W1FpXSYmKFl0W1FpXT1bXSl9LERlLnJlbW92ZUFsbEhvb2tzPWZ1bmN0aW9uKCl7WXQ9e319LERl'@; put 'fSgpfSgpfSw4ODY1MTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUllO2FlLnZlcnNpb249RigxODU5NykuaTgsYWUudXRpbHM9Rig0Njc2NyksYWUucmFuZD1GKDYwMDgyKSxhZS5jdXJ2ZT1GKDkxMzIpLGFlLmN1cnZlcz1GKDgwNDkpLGFlLmVjPUYoNjQ0MyksYWUuZWRkc2E9'@; put 'Rig5OTU3Nyl9LDcxMzI0OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigzMTM4NykseD1GKDQ2NzY3KSxtPXguZ2V0TkFGLGxlPXguZ2V0SlNGLE09eC5hc3NlcnQ7ZnVuY3Rpb24gTyh6LEspe3RoaXMudHlwZT16LHRoaXMucD1uZXcgYWUoSy5wLDE2KSx0aGlzLnJlZD1LLnBy'@; put 'aW1lP2FlLnJlZChLLnByaW1lKTphZS5tb250KHRoaXMucCksdGhpcy56ZXJvPW5ldyBhZSgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3IGFlKDEpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnR3bz1uZXcgYWUoMikudG9SZWQodGhpcy5yZWQpLHRoaXMubj1LLm4mJm5ldyBhZShLLm4s'@; put 'MTYpLHRoaXMuZz1LLmcmJnRoaXMucG9pbnRGcm9tSlNPTihLLmcsSy5nUmVkKSx0aGlzLl93bmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMj1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQzPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDQ9bmV3IEFycmF5KDQpLHRoaXMuX2JpdExlbmd0'@; put 'aD10aGlzLm4/dGhpcy5uLmJpdExlbmd0aCgpOjA7dmFyIEk9dGhpcy5uJiZ0aGlzLnAuZGl2KHRoaXMubik7IUl8fEkuY21wbigxMDApPjA/dGhpcy5yZWROPW51bGw6KHRoaXMuX21heHdlbGxUcmljaz0hMCx0aGlzLnJlZE49dGhpcy5uLnRvUmVkKHRoaXMucmVkKSl9ZnVuY3Rpb24gUih6'@; put 'LEspe3RoaXMuY3VydmU9eix0aGlzLnR5cGU9Syx0aGlzLnByZWNvbXB1dGVkPW51bGx9YXQuZXhwb3J0cz1PLE8ucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sTy5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJv'@; put 'dyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxPLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24oSyxJKXtNKEsucHJlY29tcHV0ZWQpO3ZhciBrPUsuX2dldERvdWJsZXMoKSxFPW0oSSwxLHRoaXMuX2JpdExlbmd0aCksaj0oMTw8ay5zdGVwKzEpLShrLnN0ZXAlMj09MD8y'@; put 'OjEpO2ovPTM7dmFyIEIsWSxWPVtdO2ZvcihCPTA7QjxFLmxlbmd0aDtCKz1rLnN0ZXApe1k9MDtmb3IodmFyIFg9QitrLnN0ZXAtMTtYPj1CO1gtLSlZPShZPDwxKStFW1hdO1YucHVzaChZKX1mb3IodmFyIFU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHE9dGhpcy5qcG9pbnQobnVs'@; put 'bCxudWxsLG51bGwpLGVlPWo7ZWU+MDtlZS0tKXtmb3IoQj0wO0I8Vi5sZW5ndGg7QisrKShZPVZbQl0pPT09ZWU/cT1xLm1peGVkQWRkKGsucG9pbnRzW0JdKTpZPT09LWVlJiYocT1xLm1peGVkQWRkKGsucG9pbnRzW0JdLm5lZygpKSk7VT1VLmFkZChxKX1yZXR1cm4gVS50b1AoKX0sTy5w'@; put 'cm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24oSyxJKXtmb3IodmFyIGs9NCxFPUsuX2dldE5BRlBvaW50cyhrKSxqPUUucG9pbnRzLFY9bShJLGs9RS53bmQsdGhpcy5fYml0TGVuZ3RoKSxCPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxZPVYubGVuZ3RoLTE7WT49MDtZLS0pe2Zvcih2'@; put 'YXIgWD0wO1k+PTAmJjA9PT1WW1ldO1ktLSlYKys7aWYoWT49MCYmWCsrLEI9Qi5kYmxwKFgpLFk8MClicmVhazt2YXIgVT1WW1ldO00oMCE9PVUpLEI9ImFmZmluZSI9PT1LLnR5cGU/Qi5taXhlZEFkZChVPjA/altVLTE+PjFdOmpbLVUtMT4+MV0ubmVnKCkpOkIuYWRkKFU+MD9qW1UtMT4+'@; put 'MV06alstVS0xPj4xXS5uZWcoKSl9cmV0dXJuImFmZmluZSI9PT1LLnR5cGU/Qi50b1AoKTpCfSxPLnByb3RvdHlwZS5fd25hZk11bEFkZD1mdW5jdGlvbihLLEksayxFLGope3ZhciBVLHEsZWUsVj10aGlzLl93bmFmVDEsQj10aGlzLl93bmFmVDIsWT10aGlzLl93bmFmVDMsWD0wO2ZvcihV'@; put 'PTA7VTxFO1UrKyl7dmFyIHRlPShlZT1JW1VdKS5fZ2V0TkFGUG9pbnRzKEspO1ZbVV09dGUud25kLEJbVV09dGUucG9pbnRzfWZvcihVPUUtMTtVPj0xO1UtPTIpe3ZhciBvZT1VLTEsc2U9VTtpZigxPT09VltvZV0mJjE9PT1WW3NlXSl7dmFyIGhlPVtJW29lXSxudWxsLG51bGwsSVtzZV1d'@; put 'OzA9PT1JW29lXS55LmNtcChJW3NlXS55KT8oaGVbMV09SVtvZV0uYWRkKElbc2VdKSxoZVsyXT1JW29lXS50b0ooKS5taXhlZEFkZChJW3NlXS5uZWcoKSkpOjA9PT1JW29lXS55LmNtcChJW3NlXS55LnJlZE5lZygpKT8oaGVbMV09SVtvZV0udG9KKCkubWl4ZWRBZGQoSVtzZV0pLGhlWzJd'@; put 'PUlbb2VdLmFkZChJW3NlXS5uZWcoKSkpOihoZVsxXT1JW29lXS50b0ooKS5taXhlZEFkZChJW3NlXSksaGVbMl09SVtvZV0udG9KKCkubWl4ZWRBZGQoSVtzZV0ubmVnKCkpKTt2YXIgdWU9Wy0zLC0xLC01LC03LDAsNyw1LDEsM10sY2U9bGUoa1tvZV0sa1tzZV0pO2ZvcihYPU1hdGgubWF4'@; put 'KGNlWzBdLmxlbmd0aCxYKSxZW29lXT1uZXcgQXJyYXkoWCksWVtzZV09bmV3IEFycmF5KFgpLHE9MDtxPFg7cSsrKVlbb2VdW3FdPXVlWzMqKDErKDB8Y2VbMF1bcV0pKSsoMSsoMHxjZVsxXVtxXSkpXSxZW3NlXVtxXT0wLEJbb2VdPWhlfWVsc2UgWVtvZV09bShrW29lXSxWW29lXSx0aGlz'@; put 'Ll9iaXRMZW5ndGgpLFlbc2VdPW0oa1tzZV0sVltzZV0sdGhpcy5fYml0TGVuZ3RoKSxYPU1hdGgubWF4KFlbb2VdLmxlbmd0aCxYKSxYPU1hdGgubWF4KFlbc2VdLmxlbmd0aCxYKX12YXIgRD10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksSD10aGlzLl93bmFmVDQ7Zm9yKFU9WDtVPj0w'@; put 'O1UtLSl7Zm9yKHZhciBOPTA7VT49MDspe3ZhciBnPSEwO2ZvcihxPTA7cTxFO3ErKylIW3FdPTB8WVtxXVtVXSwwIT09SFtxXSYmKGc9ITEpO2lmKCFnKWJyZWFrO04rKyxVLS19aWYoVT49MCYmTisrLEQ9RC5kYmxwKE4pLFU8MClicmVhaztmb3IocT0wO3E8RTtxKyspe3ZhciBDPUhbcV07'@; put 'MCE9PUMmJihDPjA/ZWU9QltxXVtDLTE+PjFdOkM8MCYmKGVlPUJbcV1bLUMtMT4+MV0ubmVnKCkpLEQ9ImFmZmluZSI9PT1lZS50eXBlP0QubWl4ZWRBZGQoZWUpOkQuYWRkKGVlKSl9fWZvcihVPTA7VTxFO1UrKylCW1VdPW51bGw7cmV0dXJuIGo/RDpELnRvUCgpfSxPLkJhc2VQb2ludD1S'@; put 'LFIucHJvdG90eXBlLmVxPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sUi5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJ2ZS52YWxpZGF0ZSh0aGlzKX0sTy5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oSyxJ'@; put 'KXtLPXgudG9BcnJheShLLEkpO3ZhciBrPXRoaXMucC5ieXRlTGVuZ3RoKCk7aWYoKDQ9PT1LWzBdfHw2PT09S1swXXx8Nz09PUtbMF0pJiZLLmxlbmd0aC0xPT0yKmspcmV0dXJuIDY9PT1LWzBdP00oS1tLLmxlbmd0aC0xXSUyPT0wKTo3PT09S1swXSYmTShLW0subGVuZ3RoLTFdJTI9PTEp'@; put 'LHRoaXMucG9pbnQoSy5zbGljZSgxLDErayksSy5zbGljZSgxK2ssMSsyKmspKTtpZigoMj09PUtbMF18fDM9PT1LWzBdKSYmSy5sZW5ndGgtMT09PWspcmV0dXJuIHRoaXMucG9pbnRGcm9tWChLLnNsaWNlKDEsMStrKSwzPT09S1swXSk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHBvaW50'@; put 'IGZvcm1hdCIpfSxSLnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkPWZ1bmN0aW9uKEspe3JldHVybiB0aGlzLmVuY29kZShLLCEwKX0sUi5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbihLKXt2YXIgST10aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpLGs9dGhpcy5nZXRYKCkudG9BcnJheSgi'@; put 'YmUiLEkpO3JldHVybiBLP1t0aGlzLmdldFkoKS5pc0V2ZW4oKT8yOjNdLmNvbmNhdChrKTpbNF0uY29uY2F0KGssdGhpcy5nZXRZKCkudG9BcnJheSgiYmUiLEkpKX0sUi5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKEssSSl7cmV0dXJuIHguZW5jb2RlKHRoaXMuX2VuY29kZShJKSxLKX0s'@; put 'Ui5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbihLKXtpZih0aGlzLnByZWNvbXB1dGVkKXJldHVybiB0aGlzO3ZhciBJPXtkb3VibGVzOm51bGwsbmFmOm51bGwsYmV0YTpudWxsfTtyZXR1cm4gSS5uYWY9dGhpcy5fZ2V0TkFGUG9pbnRzKDgpLEkuZG91Ymxlcz10aGlzLl9nZXREb3Vi'@; put 'bGVzKDQsSyksSS5iZXRhPXRoaXMuX2dldEJldGEoKSx0aGlzLnByZWNvbXB1dGVkPUksdGhpc30sUi5wcm90b3R5cGUuX2hhc0RvdWJsZXM9ZnVuY3Rpb24oSyl7aWYoIXRoaXMucHJlY29tcHV0ZWQpcmV0dXJuITE7dmFyIEk9dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO3JldHVybiEhSSYm'@; put 'SS5wb2ludHMubGVuZ3RoPj1NYXRoLmNlaWwoKEsuYml0TGVuZ3RoKCkrMSkvSS5zdGVwKX0sUi5wcm90b3R5cGUuX2dldERvdWJsZXM9ZnVuY3Rpb24oSyxJKXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQuZG91'@; put 'Ymxlcztmb3IodmFyIGs9W3RoaXNdLEU9dGhpcyxqPTA7ajxJO2orPUspe2Zvcih2YXIgVj0wO1Y8SztWKyspRT1FLmRibCgpO2sucHVzaChFKX1yZXR1cm57c3RlcDpLLHBvaW50czprfX0sUi5wcm90b3R5cGUuX2dldE5BRlBvaW50cz1mdW5jdGlvbihLKXtpZih0aGlzLnByZWNvbXB1dGVk'@; put 'JiZ0aGlzLnByZWNvbXB1dGVkLm5hZilyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5uYWY7Zm9yKHZhciBJPVt0aGlzXSxrPSgxPDxLKS0xLEU9MT09PWs/bnVsbDp0aGlzLmRibCgpLGo9MTtqPGs7aisrKUlbal09SVtqLTFdLmFkZChFKTtyZXR1cm57d25kOksscG9pbnRzOkl9fSxSLnByb3Rv'@; put 'dHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe3JldHVybiBudWxsfSxSLnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKEspe2Zvcih2YXIgST10aGlzLGs9MDtrPEs7aysrKUk9SS5kYmwoKTtyZXR1cm4gSX19LDI3NjY1OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig0Njc2NykseD1G'@; put 'KDMxMzg3KSxtPUYoNjY2OTgpLGxlPUYoNzEzMjQpLE09YWUuYXNzZXJ0O2Z1bmN0aW9uIE8oeil7dGhpcy50d2lzdGVkPTEhPSgwfHouYSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJi0xPT0oMHx6LmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxsZS5jYWxsKHRoaXMsImVkd2FyZHMi'@; put 'LHopLHRoaXMuYT1uZXcgeCh6LmEsMTYpLnVtb2QodGhpcy5yZWQubSksdGhpcy5hPXRoaXMuYS50b1JlZCh0aGlzLnJlZCksdGhpcy5jPW5ldyB4KHouYywxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYzI9dGhpcy5jLnJlZFNxcigpLHRoaXMuZD1uZXcgeCh6LmQsMTYpLnRvUmVkKHRoaXMu'@; put 'cmVkKSx0aGlzLmRkPXRoaXMuZC5yZWRBZGQodGhpcy5kKSxNKCF0aGlzLnR3aXN0ZWR8fDA9PT10aGlzLmMuZnJvbVJlZCgpLmNtcG4oMSkpLHRoaXMub25lQz0xPT0oMHx6LmMpfWZ1bmN0aW9uIFIoeixLLEksayxFKXtsZS5CYXNlUG9pbnQuY2FsbCh0aGlzLHosInByb2plY3RpdmUiKSxu'@; put 'dWxsPT09SyYmbnVsbD09PUkmJm51bGw9PT1rPyh0aGlzLng9dGhpcy5jdXJ2ZS56ZXJvLHRoaXMueT10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PXRoaXMuY3VydmUuemVybyx0aGlzLnpPbmU9ITApOih0aGlzLng9bmV3IHgoSywxNiksdGhpcy55PW5ldyB4'@; put 'KEksMTYpLHRoaXMuej1rP25ldyB4KGssMTYpOnRoaXMuY3VydmUub25lLHRoaXMudD1FJiZuZXcgeChFLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSks'@; put 'dGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnQmJiF0aGlzLnQucmVkJiYodGhpcy50PXRoaXMudC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZSx0aGlzLmN1cnZlLmV4dGVuZGVkJiYh'@; put 'dGhpcy50JiYodGhpcy50PXRoaXMueC5yZWRNdWwodGhpcy55KSx0aGlzLnpPbmV8fCh0aGlzLnQ9dGhpcy50LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSkpKX1tKE8sbGUpLGF0LmV4cG9ydHM9TyxPLnByb3RvdHlwZS5fbXVsQT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpcy5tT25lQT9LLnJl'@; put 'ZE5lZygpOnRoaXMuYS5yZWRNdWwoSyl9LE8ucHJvdG90eXBlLl9tdWxDPWZ1bmN0aW9uKEspe3JldHVybiB0aGlzLm9uZUM/Szp0aGlzLmMucmVkTXVsKEspfSxPLnByb3RvdHlwZS5qcG9pbnQ9ZnVuY3Rpb24oSyxJLGssRSl7cmV0dXJuIHRoaXMucG9pbnQoSyxJLGssRSl9LE8ucHJvdG90'@; put 'eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oSyxJKXsoSz1uZXcgeChLLDE2KSkucmVkfHwoSz1LLnRvUmVkKHRoaXMucmVkKSk7dmFyIGs9Sy5yZWRTcXIoKSxFPXRoaXMuYzIucmVkU3ViKHRoaXMuYS5yZWRNdWwoaykpLGo9dGhpcy5vbmUucmVkU3ViKHRoaXMuYzIucmVkTXVsKHRoaXMuZCku'@; put 'cmVkTXVsKGspKSxWPUUucmVkTXVsKGoucmVkSW52bSgpKSxCPVYucmVkU3FydCgpO2lmKDAhPT1CLnJlZFNxcigpLnJlZFN1YihWKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTt2YXIgWT1CLmZyb21SZWQoKS5pc09kZCgpO3JldHVybihJJiYhWXx8'@; put 'IUkmJlkpJiYoQj1CLnJlZE5lZygpKSx0aGlzLnBvaW50KEssQil9LE8ucHJvdG90eXBlLnBvaW50RnJvbVk9ZnVuY3Rpb24oSyxJKXsoSz1uZXcgeChLLDE2KSkucmVkfHwoSz1LLnRvUmVkKHRoaXMucmVkKSk7dmFyIGs9Sy5yZWRTcXIoKSxFPWsucmVkU3ViKHRoaXMuYzIpLGo9ay5yZWRN'@; put 'dWwodGhpcy5kKS5yZWRNdWwodGhpcy5jMikucmVkU3ViKHRoaXMuYSksVj1FLnJlZE11bChqLnJlZEludm0oKSk7aWYoMD09PVYuY21wKHRoaXMuemVybykpe2lmKEkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0dXJuIHRoaXMucG9pbnQodGhpcy56ZXJvLEspfXZhciBC'@; put 'PVYucmVkU3FydCgpO2lmKDAhPT1CLnJlZFNxcigpLnJlZFN1YihWKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gQi5mcm9tUmVkKCkuaXNPZGQoKSE9PUkmJihCPUIucmVkTmVnKCkpLHRoaXMucG9pbnQoQixLKX0sTy5wcm90b3R5cGUu'@; put 'dmFsaWRhdGU9ZnVuY3Rpb24oSyl7aWYoSy5pc0luZmluaXR5KCkpcmV0dXJuITA7Sy5ub3JtYWxpemUoKTt2YXIgST1LLngucmVkU3FyKCksaz1LLnkucmVkU3FyKCksRT1JLnJlZE11bCh0aGlzLmEpLnJlZEFkZChrKSxqPXRoaXMuYzIucmVkTXVsKHRoaXMub25lLnJlZEFkZCh0aGlzLmQu'@; put 'cmVkTXVsKEkpLnJlZE11bChrKSkpO3JldHVybiAwPT09RS5jbXAoail9LG0oUixsZS5CYXNlUG9pbnQpLE8ucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oSyl7cmV0dXJuIFIuZnJvbUpTT04odGhpcyxLKX0sTy5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oSyxJLGssRSl7cmV0'@; put 'dXJuIG5ldyBSKHRoaXMsSyxJLGssRSl9LFIuZnJvbUpTT049ZnVuY3Rpb24oSyxJKXtyZXR1cm4gbmV3IFIoSyxJWzBdLElbMV0sSVsyXSl9LFIucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBQb2ludCBJbmZpbml0eT4iOiI8RUMg'@; put 'UG9pbnQgeDogIit0aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyIgeTogIit0aGlzLnkuZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnouZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyI+In0sUi5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVy'@; put 'biAwPT09dGhpcy54LmNtcG4oMCkmJigwPT09dGhpcy55LmNtcCh0aGlzLnopfHx0aGlzLnpPbmUmJjA9PT10aGlzLnkuY21wKHRoaXMuY3VydmUuYykpfSxSLnByb3RvdHlwZS5fZXh0RGJsPWZ1bmN0aW9uKCl7dmFyIEs9dGhpcy54LnJlZFNxcigpLEk9dGhpcy55LnJlZFNxcigpLGs9dGhp'@; put 'cy56LnJlZFNxcigpO2s9ay5yZWRJQWRkKGspO3ZhciBFPXRoaXMuY3VydmUuX211bEEoSyksaj10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCkucmVkSVN1YihLKS5yZWRJU3ViKEkpLFY9RS5yZWRBZGQoSSksQj1WLnJlZFN1YihrKSxZPUUucmVkU3ViKEkpLFg9ai5yZWRNdWwoQiks'@; put 'VT1WLnJlZE11bChZKSxxPWoucmVkTXVsKFkpLGVlPUIucmVkTXVsKFYpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFgsVSxlZSxxKX0sUi5wcm90b3R5cGUuX3Byb2pEYmw9ZnVuY3Rpb24oKXt2YXIgRSxqLFYsQixZLFgsSz10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCksST10aGlz'@; put 'LngucmVkU3FyKCksaz10aGlzLnkucmVkU3FyKCk7aWYodGhpcy5jdXJ2ZS50d2lzdGVkKXt2YXIgVT0oQj10aGlzLmN1cnZlLl9tdWxBKEkpKS5yZWRBZGQoayk7dGhpcy56T25lPyhFPUsucmVkU3ViKEkpLnJlZFN1YihrKS5yZWRNdWwoVS5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKSxqPVUu'@; put 'cmVkTXVsKEIucmVkU3ViKGspKSxWPVUucmVkU3FyKCkucmVkU3ViKFUpLnJlZFN1YihVKSk6KFk9dGhpcy56LnJlZFNxcigpLFg9VS5yZWRTdWIoWSkucmVkSVN1YihZKSxFPUsucmVkU3ViKEkpLnJlZElTdWIoaykucmVkTXVsKFgpLGo9VS5yZWRNdWwoQi5yZWRTdWIoaykpLFY9VS5yZWRN'@; put 'dWwoWCkpfWVsc2UgQj1JLnJlZEFkZChrKSxZPXRoaXMuY3VydmUuX211bEModGhpcy56KS5yZWRTcXIoKSxYPUIucmVkU3ViKFkpLnJlZFN1YihZKSxFPXRoaXMuY3VydmUuX211bEMoSy5yZWRJU3ViKEIpKS5yZWRNdWwoWCksaj10aGlzLmN1cnZlLl9tdWxDKEIpLnJlZE11bChJLnJlZElT'@; put 'dWIoaykpLFY9Qi5yZWRNdWwoWCk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoRSxqLFYpfSxSLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dERibCgpOnRoaXMuX3Byb2pEYmwoKX0sUi5w'@; put 'cm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbihLKXt2YXIgST10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKEsueS5yZWRTdWIoSy54KSksaz10aGlzLnkucmVkQWRkKHRoaXMueCkucmVkTXVsKEsueS5yZWRBZGQoSy54KSksRT10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11'@; put 'bChLLnQpLGo9dGhpcy56LnJlZE11bChLLnoucmVkQWRkKEsueikpLFY9ay5yZWRTdWIoSSksQj1qLnJlZFN1YihFKSxZPWoucmVkQWRkKEUpLFg9ay5yZWRBZGQoSSksVT1WLnJlZE11bChCKSxxPVkucmVkTXVsKFgpLGVlPVYucmVkTXVsKFgpLHRlPUIucmVkTXVsKFkpO3JldHVybiB0aGlz'@; put 'LmN1cnZlLnBvaW50KFUscSx0ZSxlZSl9LFIucHJvdG90eXBlLl9wcm9qQWRkPWZ1bmN0aW9uKEspe3ZhciBxLGVlLEk9dGhpcy56LnJlZE11bChLLnopLGs9SS5yZWRTcXIoKSxFPXRoaXMueC5yZWRNdWwoSy54KSxqPXRoaXMueS5yZWRNdWwoSy55KSxWPXRoaXMuY3VydmUuZC5yZWRNdWwo'@; put 'RSkucmVkTXVsKGopLEI9ay5yZWRTdWIoViksWT1rLnJlZEFkZChWKSxYPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRNdWwoSy54LnJlZEFkZChLLnkpKS5yZWRJU3ViKEUpLnJlZElTdWIoaiksVT1JLnJlZE11bChCKS5yZWRNdWwoWCk7cmV0dXJuIHRoaXMuY3VydmUudHdpc3RlZD8ocT1J'@; put 'LnJlZE11bChZKS5yZWRNdWwoai5yZWRTdWIodGhpcy5jdXJ2ZS5fbXVsQShFKSkpLGVlPUIucmVkTXVsKFkpKToocT1JLnJlZE11bChZKS5yZWRNdWwoai5yZWRTdWIoRSkpLGVlPXRoaXMuY3VydmUuX211bEMoQikucmVkTXVsKFkpKSx0aGlzLmN1cnZlLnBvaW50KFUscSxlZSl9LFIucHJv'@; put 'dG90eXBlLmFkZD1mdW5jdGlvbihLKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/SzpLLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuZXh0ZW5kZWQ/dGhpcy5fZXh0QWRkKEspOnRoaXMuX3Byb2pBZGQoSyl9LFIucHJvdG90eXBlLm11bD1mdW5jdGlvbihLKXtyZXR1cm4gdGhpcy5f'@; put 'aGFzRG91YmxlcyhLKT90aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLEspOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxLKX0sUi5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKEssSSxrKXtyZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLFt0aGlzLEldLFtLLGtdLDIsITEpfSxS'@; put 'LnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKEssSSxrKXtyZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLFt0aGlzLEldLFtLLGtdLDIsITApfSxSLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oKXtpZih0aGlzLnpPbmUpcmV0dXJuIHRoaXM7dmFyIEs9dGhpcy56LnJlZElu'@; put 'dm0oKTtyZXR1cm4gdGhpcy54PXRoaXMueC5yZWRNdWwoSyksdGhpcy55PXRoaXMueS5yZWRNdWwoSyksdGhpcy50JiYodGhpcy50PXRoaXMudC5yZWRNdWwoSykpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzLnpPbmU9ITAsdGhpc30sUi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE5lZygpLHRoaXMueSx0aGlzLnosdGhpcy50JiZ0aGlzLnQucmVkTmVnKCkpfSxSLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy54LmZyb21SZWQoKX0sUi5wcm90b3R5cGUuZ2V0WT1m'@; put 'dW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueS5mcm9tUmVkKCl9LFIucHJvdG90eXBlLmVxPWZ1bmN0aW9uKEspe3JldHVybiB0aGlzPT09S3x8MD09PXRoaXMuZ2V0WCgpLmNtcChLLmdldFgoKSkmJjA9PT10aGlzLmdldFkoKS5jbXAoSy5nZXRZKCkpfSxSLnByb3Rv'@; put 'dHlwZS5lcVhUb1A9ZnVuY3Rpb24oSyl7dmFyIEk9Sy50b1JlZCh0aGlzLmN1cnZlLnJlZCkucmVkTXVsKHRoaXMueik7aWYoMD09PXRoaXMueC5jbXAoSSkpcmV0dXJuITA7Zm9yKHZhciBrPUsuY2xvbmUoKSxFPXRoaXMuY3VydmUucmVkTi5yZWRNdWwodGhpcy56KTs7KXtpZihrLmlhZGQo'@; put 'dGhpcy5jdXJ2ZS5uKSxrLmNtcCh0aGlzLmN1cnZlLnApPj0wKXJldHVybiExO2lmKEkucmVkSUFkZChFKSwwPT09dGhpcy54LmNtcChJKSlyZXR1cm4hMH19LFIucHJvdG90eXBlLnRvUD1SLnByb3RvdHlwZS5ub3JtYWxpemUsUi5wcm90b3R5cGUubWl4ZWRBZGQ9Ui5wcm90b3R5cGUuYWRk'@; put 'fSw5MTMyOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9SWU7YWUuYmFzZT1GKDcxMzI0KSxhZS5zaG9ydD1GKDg5OTk2KSxhZS5tb250PUYoMjkyNTMpLGFlLmVkd2FyZHM9RigyNzY2NSl9LDI5MjUzOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigzMTM4NykseD1G'@; put 'KDY2Njk4KSxtPUYoNzEzMjQpLGxlPUYoNDY3NjcpO2Z1bmN0aW9uIE0oUil7bS5jYWxsKHRoaXMsIm1vbnQiLFIpLHRoaXMuYT1uZXcgYWUoUi5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBhZShSLmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmk0PW5ldyBhZSg0KS50b1Jl'@; put 'ZCh0aGlzLnJlZCkucmVkSW52bSgpLHRoaXMudHdvPW5ldyBhZSgyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5hMjQ9dGhpcy5pNC5yZWRNdWwodGhpcy5hLnJlZEFkZCh0aGlzLnR3bykpfWZ1bmN0aW9uIE8oUix6LEspe20uQmFzZVBvaW50LmNhbGwodGhpcyxSLCJwcm9qZWN0aXZlIiksbnVs'@; put 'bD09PXomJm51bGw9PT1LPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUuemVybyk6KHRoaXMueD1uZXcgYWUoeiwxNiksdGhpcy56PW5ldyBhZShLLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8'@; put 'fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSkpfXgoTSxtKSxhdC5leHBvcnRzPU0sTS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oeil7dmFyIEs9ei5ub3JtYWxpemUoKS54LEk9Sy5yZWRTcXIoKSxrPUkucmVkTXVsKEspLnJlZEFkZChJLnJlZE11bCh0aGlzLmEp'@; put 'KS5yZWRBZGQoSyk7cmV0dXJuIDA9PT1rLnJlZFNxcnQoKS5yZWRTcXIoKS5jbXAoayl9LHgoTyxtLkJhc2VQb2ludCksTS5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oeixLKXtyZXR1cm4gdGhpcy5wb2ludChsZS50b0FycmF5KHosSyksMSl9LE0ucHJvdG90eXBlLnBvaW50PWZ1'@; put 'bmN0aW9uKHosSyl7cmV0dXJuIG5ldyBPKHRoaXMseixLKX0sTS5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbih6KXtyZXR1cm4gTy5mcm9tSlNPTih0aGlzLHopfSxPLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKCl7fSxPLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHRoaXMuZ2V0WCgpLnRvQXJyYXkoImJlIix0aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpKX0sTy5mcm9tSlNPTj1mdW5jdGlvbih6LEspe3JldHVybiBuZXcgTyh6LEtbMF0sS1sxXXx8ei5vbmUpfSxPLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'aXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LE8ucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gMD09PXRoaXMuei5jbXBuKDApfSxPLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXt2YXIgSz10aGlzLngucmVkQWRkKHRoaXMueikucmVkU3FyKCksaz10aGlzLngucmVkU3ViKHRoaXMueikucmVkU3FyKCksRT1LLnJlZFN1YihrKSxqPUsucmVkTXVsKGspLFY9RS5yZWRNdWwoay5yZWRB'@; put 'ZGQodGhpcy5jdXJ2ZS5hMjQucmVkTXVsKEUpKSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoaixWKX0sTy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sTy5wcm90b3R5cGUuZGlmZkFkZD1mdW5j'@; put 'dGlvbih6LEspe3ZhciBJPXRoaXMueC5yZWRBZGQodGhpcy56KSxrPXRoaXMueC5yZWRTdWIodGhpcy56KSxFPXoueC5yZWRBZGQoei56KSxWPXoueC5yZWRTdWIoei56KS5yZWRNdWwoSSksQj1FLnJlZE11bChrKSxZPUsuei5yZWRNdWwoVi5yZWRBZGQoQikucmVkU3FyKCkpLFg9Sy54LnJl'@; put 'ZE11bChWLnJlZElTdWIoQikucmVkU3FyKCkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFksWCl9LE8ucHJvdG90eXBlLm11bD1mdW5jdGlvbih6KXtmb3IodmFyIEs9ei5jbG9uZSgpLEk9dGhpcyxrPXRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKSxqPVtdOzAhPT1LLmNtcG4oMCk7Sy5p'@; put 'dXNocm4oMSkpai5wdXNoKEsuYW5kbG4oMSkpO2Zvcih2YXIgVj1qLmxlbmd0aC0xO1Y+PTA7Vi0tKTA9PT1qW1ZdPyhJPUkuZGlmZkFkZChrLHRoaXMpLGs9ay5kYmwoKSk6KGs9SS5kaWZmQWRkKGssdGhpcyksST1JLmRibCgpKTtyZXR1cm4ga30sTy5wcm90b3R5cGUubXVsQWRkPWZ1bmN0'@; put 'aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sTy5wcm90b3R5cGUuanVtbEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LE8ucHJvdG90eXBlLmVxPWZ1bmN0'@; put 'aW9uKHope3JldHVybiAwPT09dGhpcy5nZXRYKCkuY21wKHouZ2V0WCgpKX0sTy5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzfSxPLnByb3RvdHlwZS5n'@; put 'ZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy54LmZyb21SZWQoKX19LDg5OTk2OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig0Njc2NykseD1GKDMxMzg3KSxtPUYoNjY2OTgpLGxlPUYoNzEzMjQpLE09YWUuYXNzZXJ0O2Z1bmN0aW9uIE8oSyl7'@; put 'bGUuY2FsbCh0aGlzLCJzaG9ydCIsSyksdGhpcy5hPW5ldyB4KEsuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgeChLLmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9MD09PXRoaXMuYS5mcm9tUmVkKCkuY21wbigw'@; put 'KSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKEspLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfWZ1bmN0aW9uIFIoSyxJ'@; put 'LGssRSl7bGUuQmFzZVBvaW50LmNhbGwodGhpcyxLLCJhZmZpbmUiKSxudWxsPT09SSYmbnVsbD09PWs/KHRoaXMueD1udWxsLHRoaXMueT1udWxsLHRoaXMuaW5mPSEwKToodGhpcy54PW5ldyB4KEksMTYpLHRoaXMueT1uZXcgeChrLDE2KSxFJiYodGhpcy54LmZvcmNlUmVkKHRoaXMuY3Vy'@; put 'dmUucmVkKSx0aGlzLnkuZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy5pbmY9ITEpfWZ1bmN0aW9uIHoo'@; put 'SyxJLGssRSl7bGUuQmFzZVBvaW50LmNhbGwodGhpcyxLLCJqYWNvYmlhbiIpLG51bGw9PT1JJiZudWxsPT09ayYmbnVsbD09PUU/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PW5ldyB4KDApKToodGhpcy54PW5ldyB4KEksMTYpLHRoaXMueT1u'@; put 'ZXcgeChrLDE2KSx0aGlzLno9bmV3IHgoRSwxNikpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0'@; put 'aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZX1tKE8sbGUpLGF0LmV4cG9ydHM9TyxPLnByb3RvdHlwZS5fZ2V0RW5kb21vcnBoaXNtPWZ1bmN0aW9uKEkpe2lmKHRoaXMuemVyb0EmJnRoaXMuZyYmdGhpcy5uJiYxPT09dGhpcy5wLm1vZG4oMykpe3Zh'@; put 'ciBrLEU7aWYoSS5iZXRhKWs9bmV3IHgoSS5iZXRhLDE2KS50b1JlZCh0aGlzLnJlZCk7ZWxzZXt2YXIgaj10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5wKTtrPShrPWpbMF0uY21wKGpbMV0pPDA/alswXTpqWzFdKS50b1JlZCh0aGlzLnJlZCl9aWYoSS5sYW1iZGEpRT1uZXcgeChJLmxhbWJk'@; put 'YSwxNik7ZWxzZXt2YXIgVj10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTswPT09dGhpcy5nLm11bChWWzBdKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoaykpP0U9VlswXTpNKDA9PT10aGlzLmcubXVsKEU9VlsxXSkueC5jbXAodGhpcy5nLngucmVkTXVsKGspKSl9cmV0dXJue2JldGE6ayxs'@; put 'YW1iZGE6RSxiYXNpczpJLmJhc2lzP0kuYmFzaXMubWFwKGZ1bmN0aW9uKFkpe3JldHVybnthOm5ldyB4KFkuYSwxNiksYjpuZXcgeChZLmIsMTYpfX0pOnRoaXMuX2dldEVuZG9CYXNpcyhFKX19fSxPLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKEkpe3ZhciBrPUk9PT10aGlz'@; put 'LnA/dGhpcy5yZWQ6eC5tb250KEkpLEU9bmV3IHgoMikudG9SZWQoaykucmVkSW52bSgpLGo9RS5yZWROZWcoKSxWPW5ldyB4KDMpLnRvUmVkKGspLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwoRSk7cmV0dXJuW2oucmVkQWRkKFYpLmZyb21SZWQoKSxqLnJlZFN1YihWKS5mcm9tUmVkKCld'@; put 'fSxPLnByb3RvdHlwZS5fZ2V0RW5kb0Jhc2lzPWZ1bmN0aW9uKEkpe2Zvcih2YXIgVSxxLGVlLHRlLG9lLHNlLGhlLGNlLEcsaz10aGlzLm4udXNocm4oTWF0aC5mbG9vcih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLEU9SSxqPXRoaXMubi5jbG9uZSgpLFY9bmV3IHgoMSksQj1uZXcgeCgwKSxZ'@; put 'PW5ldyB4KDApLFg9bmV3IHgoMSksdWU9MDswIT09RS5jbXBuKDApOyl7dmFyIGI9ai5kaXYoRSk7Y2U9ai5zdWIoYi5tdWwoRSkpLEc9WS5zdWIoYi5tdWwoVikpO3ZhciBEPVguc3ViKGIubXVsKEIpKTtpZighZWUmJmNlLmNtcChrKTwwKVU9aGUubmVnKCkscT1WLGVlPWNlLm5lZygpLHRl'@; put 'PUc7ZWxzZSBpZihlZSYmMj09Kyt1ZSlicmVhaztoZT1jZSxqPUUsRT1jZSxZPVYsVj1HLFg9QixCPUR9b2U9Y2UubmVnKCksc2U9Rzt2YXIgSD1lZS5zcXIoKS5hZGQodGUuc3FyKCkpO3JldHVybiBvZS5zcXIoKS5hZGQoc2Uuc3FyKCkpLmNtcChIKT49MCYmKG9lPVUsc2U9cSksZWUubmVn'@; put 'YXRpdmUmJihlZT1lZS5uZWcoKSx0ZT10ZS5uZWcoKSksb2UubmVnYXRpdmUmJihvZT1vZS5uZWcoKSxzZT1zZS5uZWcoKSksW3thOmVlLGI6dGV9LHthOm9lLGI6c2V9XX0sTy5wcm90b3R5cGUuX2VuZG9TcGxpdD1mdW5jdGlvbihJKXt2YXIgaz10aGlzLmVuZG8uYmFzaXMsRT1rWzBdLGo9'@; put 'a1sxXSxWPWouYi5tdWwoSSkuZGl2Um91bmQodGhpcy5uKSxCPUUuYi5uZWcoKS5tdWwoSSkuZGl2Um91bmQodGhpcy5uKSxZPVYubXVsKEUuYSksWD1CLm11bChqLmEpLFU9Vi5tdWwoRS5iKSxxPUIubXVsKGouYik7cmV0dXJue2sxOkkuc3ViKFkpLnN1YihYKSxrMjpVLmFkZChxKS5uZWco'@; put 'KX19LE8ucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oSSxrKXsoST1uZXcgeChJLDE2KSkucmVkfHwoST1JLnRvUmVkKHRoaXMucmVkKSk7dmFyIEU9SS5yZWRTcXIoKS5yZWRNdWwoSSkucmVkSUFkZChJLnJlZE11bCh0aGlzLmEpKS5yZWRJQWRkKHRoaXMuYiksaj1FLnJlZFNxcnQo'@; put 'KTtpZigwIT09ai5yZWRTcXIoKS5yZWRTdWIoRSkuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIFY9ai5mcm9tUmVkKCkuaXNPZGQoKTtyZXR1cm4oayYmIVZ8fCFrJiZWKSYmKGo9ai5yZWROZWcoKSksdGhpcy5wb2ludChJLGopfSxPLnByb3Rv'@; put 'dHlwZS52YWxpZGF0ZT1mdW5jdGlvbihJKXtpZihJLmluZilyZXR1cm4hMDt2YXIgaz1JLngsRT1JLnksaj10aGlzLmEucmVkTXVsKGspLFY9ay5yZWRTcXIoKS5yZWRNdWwoaykucmVkSUFkZChqKS5yZWRJQWRkKHRoaXMuYik7cmV0dXJuIDA9PT1FLnJlZFNxcigpLnJlZElTdWIoVikuY21w'@; put 'bigwKX0sTy5wcm90b3R5cGUuX2VuZG9XbmFmTXVsQWRkPWZ1bmN0aW9uKEksayxFKXtmb3IodmFyIGo9dGhpcy5fZW5kb1duYWZUMSxWPXRoaXMuX2VuZG9XbmFmVDIsQj0wO0I8SS5sZW5ndGg7QisrKXt2YXIgWT10aGlzLl9lbmRvU3BsaXQoa1tCXSksWD1JW0JdLFU9WC5fZ2V0QmV0YSgp'@; put 'O1kuazEubmVnYXRpdmUmJihZLmsxLmluZWcoKSxYPVgubmVnKCEwKSksWS5rMi5uZWdhdGl2ZSYmKFkuazIuaW5lZygpLFU9VS5uZWcoITApKSxqWzIqQl09WCxqWzIqQisxXT1VLFZbMipCXT1ZLmsxLFZbMipCKzFdPVkuazJ9Zm9yKHZhciBxPXRoaXMuX3duYWZNdWxBZGQoMSxqLFYsMipC'@; put 'LEUpLGVlPTA7ZWU8MipCO2VlKyspaltlZV09bnVsbCxWW2VlXT1udWxsO3JldHVybiBxfSxtKFIsbGUuQmFzZVBvaW50KSxPLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihJLGssRSl7cmV0dXJuIG5ldyBSKHRoaXMsSSxrLEUpfSxPLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9u'@; put 'KEksayl7cmV0dXJuIFIuZnJvbUpTT04odGhpcyxJLGspfSxSLnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe2lmKHRoaXMuY3VydmUuZW5kbyl7dmFyIEk9dGhpcy5wcmVjb21wdXRlZDtpZihJJiZJLmJldGEpcmV0dXJuIEkuYmV0YTt2YXIgaz10aGlzLmN1cnZlLnBvaW50KHRoaXMu'@; put 'eC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYoSSl7dmFyIEU9dGhpcy5jdXJ2ZSxqPWZ1bmN0aW9uKFYpe3JldHVybiBFLnBvaW50KFYueC5yZWRNdWwoRS5lbmRvLmJldGEpLFYueSl9O0kuYmV0YT1rLGsucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6SS5uYWYm'@; put 'Jnt3bmQ6SS5uYWYud25kLHBvaW50czpJLm5hZi5wb2ludHMubWFwKGopfSxkb3VibGVzOkkuZG91YmxlcyYme3N0ZXA6SS5kb3VibGVzLnN0ZXAscG9pbnRzOkkuZG91Ymxlcy5wb2ludHMubWFwKGopfX19cmV0dXJuIGt9fSxSLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'dGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMmJntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNl'@; put 'KDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfSxSLmZyb21KU09OPWZ1bmN0aW9uKEksayxFKXsic3RyaW5nIj09dHlw'@; put 'ZW9mIGsmJihrPUpTT04ucGFyc2UoaykpO3ZhciBqPUkucG9pbnQoa1swXSxrWzFdLEUpO2lmKCFrWzJdKXJldHVybiBqO2Z1bmN0aW9uIFYoWSl7cmV0dXJuIEkucG9pbnQoWVswXSxZWzFdLEUpfXZhciBCPWtbMl07cmV0dXJuIGoucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOkIu'@; put 'ZG91YmxlcyYme3N0ZXA6Qi5kb3VibGVzLnN0ZXAscG9pbnRzOltqXS5jb25jYXQoQi5kb3VibGVzLnBvaW50cy5tYXAoVikpfSxuYWY6Qi5uYWYmJnt3bmQ6Qi5uYWYud25kLHBvaW50czpbal0uY29uY2F0KEIubmFmLnBvaW50cy5tYXAoVikpfX0san0sUi5wcm90b3R5cGUuaW5zcGVjdD1m'@; put 'dW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxSLnByb3RvdHlwZS5pc0lu'@; put 'ZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfSxSLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oSSl7aWYodGhpcy5pbmYpcmV0dXJuIEk7aWYoSS5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcShJKSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKEkpKXJldHVybiB0'@; put 'aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYoMD09PXRoaXMueC5jbXAoSS54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBrPXRoaXMueS5yZWRTdWIoSS55KTswIT09ay5jbXBuKDApJiYoaz1rLnJlZE11bCh0aGlzLngucmVkU3ViKEkueCkucmVkSW52bSgp'@; put 'KSk7dmFyIEU9ay5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueCkucmVkSVN1YihJLngpLGo9ay5yZWRNdWwodGhpcy54LnJlZFN1YihFKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEUsail9LFIucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJl'@; put 'dHVybiB0aGlzO3ZhciBJPXRoaXMueS5yZWRBZGQodGhpcy55KTtpZigwPT09SS5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIGs9dGhpcy5jdXJ2ZS5hLEU9dGhpcy54LnJlZFNxcigpLGo9SS5yZWRJbnZtKCksVj1FLnJlZEFkZChFKS5yZWRJQWRkKEUp'@; put 'LnJlZElBZGQoaykucmVkTXVsKGopLEI9Vi5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSksWT1WLnJlZE11bCh0aGlzLngucmVkU3ViKEIpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoQixZKX0sUi5wcm90b3R5cGUuZ2V0WD1mdW5jdGlv'@; put 'bigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfSxSLnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueS5mcm9tUmVkKCl9LFIucHJvdG90eXBlLm11bD1mdW5jdGlvbihJKXtyZXR1cm4gST1uZXcgeChJLDE2KSx0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuX2hhc0Rv'@; put 'dWJsZXMoSSk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyxJKTp0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoW3RoaXNdLFtJXSk6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLEkpfSxSLnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24oSSxrLEUpe3ZhciBq'@; put 'PVt0aGlzLGtdLFY9W0ksRV07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChqLFYpOnRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxqLFYsMil9LFIucHJvdG90eXBlLmptdWxBZGQ9ZnVuY3Rpb24oSSxrLEUpe3ZhciBqPVt0aGlzLGtdLFY9W0ksRV07'@; put 'cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChqLFYsITApOnRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxqLFYsMiwhMCl9LFIucHJvdG90eXBlLmVxPWZ1bmN0aW9uKEkpe3JldHVybiB0aGlzPT09SXx8dGhpcy5pbmY9PT1JLmluZiYmKHRoaXMuaW5m'@; put 'fHwwPT09dGhpcy54LmNtcChJLngpJiYwPT09dGhpcy55LmNtcChJLnkpKX0sUi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKEkpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciBrPXRoaXMuY3VydmUucG9pbnQodGhpcy54LHRoaXMueS5yZWROZWcoKSk7aWYoSSYmdGhpcy5wcmVjb21wdXRl'@; put 'ZCl7dmFyIEU9dGhpcy5wcmVjb21wdXRlZCxqPWZ1bmN0aW9uKFYpe3JldHVybiBWLm5lZygpfTtrLnByZWNvbXB1dGVkPXtuYWY6RS5uYWYmJnt3bmQ6RS5uYWYud25kLHBvaW50czpFLm5hZi5wb2ludHMubWFwKGopfSxkb3VibGVzOkUuZG91YmxlcyYme3N0ZXA6RS5kb3VibGVzLnN0ZXAs'@; put 'cG9pbnRzOkUuZG91Ymxlcy5wb2ludHMubWFwKGopfX19cmV0dXJuIGt9LFIucHJvdG90eXBlLnRvSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZj90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LHRoaXMueSx0aGlzLmN1cnZlLm9u'@; put 'ZSl9LG0oeixsZS5CYXNlUG9pbnQpLE8ucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihJLGssRSl7cmV0dXJuIG5ldyB6KHRoaXMsSSxrLEUpfSx6LnByb3RvdHlwZS50b1A9ZnVuY3Rpb24oKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwp'@; put 'O3ZhciBJPXRoaXMuei5yZWRJbnZtKCksaz1JLnJlZFNxcigpLEU9dGhpcy54LnJlZE11bChrKSxqPXRoaXMueS5yZWRNdWwoaykucmVkTXVsKEkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEUsail9LHoucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2lu'@; put 'dCh0aGlzLngsdGhpcy55LnJlZE5lZygpLHRoaXMueil9LHoucHJvdG90eXBlLmFkZD1mdW5jdGlvbihJKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gSTtpZihJLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgaz1JLnoucmVkU3FyKCksRT10aGlzLnoucmVkU3FyKCksaj10aGlz'@; put 'LngucmVkTXVsKGspLFY9SS54LnJlZE11bChFKSxCPXRoaXMueS5yZWRNdWwoay5yZWRNdWwoSS56KSksWT1JLnkucmVkTXVsKEUucmVkTXVsKHRoaXMueikpLFg9ai5yZWRTdWIoViksVT1CLnJlZFN1YihZKTtpZigwPT09WC5jbXBuKDApKXJldHVybiAwIT09VS5jbXBuKDApP3RoaXMuY3Vy'@; put 'dmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBxPVgucmVkU3FyKCksZWU9cS5yZWRNdWwoWCksdGU9ai5yZWRNdWwocSksb2U9VS5yZWRTcXIoKS5yZWRJQWRkKGVlKS5yZWRJU3ViKHRlKS5yZWRJU3ViKHRlKSxzZT1VLnJlZE11bCh0ZS5yZWRJU3ViKG9lKSkucmVk'@; put 'SVN1YihCLnJlZE11bChlZSkpLGhlPXRoaXMuei5yZWRNdWwoSS56KS5yZWRNdWwoWCk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG9lLHNlLGhlKX0sei5wcm90b3R5cGUubWl4ZWRBZGQ9ZnVuY3Rpb24oSSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIEkudG9KKCk7aWYoSS5pc0lu'@; put 'ZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIGs9dGhpcy56LnJlZFNxcigpLEU9dGhpcy54LGo9SS54LnJlZE11bChrKSxWPXRoaXMueSxCPUkueS5yZWRNdWwoaykucmVkTXVsKHRoaXMueiksWT1FLnJlZFN1YihqKSxYPVYucmVkU3ViKEIpO2lmKDA9PT1ZLmNtcG4oMCkpcmV0dXJuIDAhPT1Y'@; put 'LmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIFU9WS5yZWRTcXIoKSxxPVUucmVkTXVsKFkpLGVlPUUucmVkTXVsKFUpLHRlPVgucmVkU3FyKCkucmVkSUFkZChxKS5yZWRJU3ViKGVlKS5yZWRJU3ViKGVlKSxvZT1YLnJlZE11bChlZS5y'@; put 'ZWRJU3ViKHRlKSkucmVkSVN1YihWLnJlZE11bChxKSksc2U9dGhpcy56LnJlZE11bChZKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQodGUsb2Usc2UpfSx6LnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKEkpe2lmKDA9PT1JKXJldHVybiB0aGlzO2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVy'@; put 'biB0aGlzO2lmKCFJKXJldHVybiB0aGlzLmRibCgpO3ZhciBrO2lmKHRoaXMuY3VydmUuemVyb0F8fHRoaXMuY3VydmUudGhyZWVBKXt2YXIgRT10aGlzO2ZvcihrPTA7azxJO2srKylFPUUuZGJsKCk7cmV0dXJuIEV9dmFyIGo9dGhpcy5jdXJ2ZS5hLFY9dGhpcy5jdXJ2ZS50aW52LEI9dGhp'@; put 'cy54LFk9dGhpcy55LFg9dGhpcy56LFU9WC5yZWRTcXIoKS5yZWRTcXIoKSxxPVkucmVkQWRkKFkpO2ZvcihrPTA7azxJO2srKyl7dmFyIGVlPUIucmVkU3FyKCksdGU9cS5yZWRTcXIoKSxvZT10ZS5yZWRTcXIoKSxzZT1lZS5yZWRBZGQoZWUpLnJlZElBZGQoZWUpLnJlZElBZGQoai5yZWRN'@; put 'dWwoVSkpLGhlPUIucmVkTXVsKHRlKSx1ZT1zZS5yZWRTcXIoKS5yZWRJU3ViKGhlLnJlZEFkZChoZSkpLGNlPWhlLnJlZElTdWIodWUpLEc9c2UucmVkTXVsKGNlKTtHPUcucmVkSUFkZChHKS5yZWRJU3ViKG9lKTt2YXIgYj1xLnJlZE11bChYKTtrKzE8SSYmKFU9VS5yZWRNdWwob2UpKSxC'@; put 'PXVlLFg9YixxPUd9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KEIscS5yZWRNdWwoViksWCl9LHoucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuemVyb0E/dGhpcy5femVyb0RibCgpOnRoaXMuY3VydmUudGhyZWVBP3Ro'@; put 'aXMuX3RocmVlRGJsKCk6dGhpcy5fZGJsKCl9LHoucHJvdG90eXBlLl96ZXJvRGJsPWZ1bmN0aW9uKCl7dmFyIEksayxFO2lmKHRoaXMuek9uZSl7dmFyIGo9dGhpcy54LnJlZFNxcigpLFY9dGhpcy55LnJlZFNxcigpLEI9Vi5yZWRTcXIoKSxZPXRoaXMueC5yZWRBZGQoVikucmVkU3FyKCku'@; put 'cmVkSVN1YihqKS5yZWRJU3ViKEIpO1k9WS5yZWRJQWRkKFkpO3ZhciBYPWoucmVkQWRkKGopLnJlZElBZGQoaiksVT1YLnJlZFNxcigpLnJlZElTdWIoWSkucmVkSVN1YihZKSxxPUIucmVkSUFkZChCKTtxPShxPXEucmVkSUFkZChxKSkucmVkSUFkZChxKSxJPVUsaz1YLnJlZE11bChZLnJl'@; put 'ZElTdWIoVSkpLnJlZElTdWIocSksRT10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgZWU9dGhpcy54LnJlZFNxcigpLHRlPXRoaXMueS5yZWRTcXIoKSxvZT10ZS5yZWRTcXIoKSxzZT10aGlzLngucmVkQWRkKHRlKS5yZWRTcXIoKS5yZWRJU3ViKGVlKS5yZWRJU3ViKG9lKTtzZT1z'@; put 'ZS5yZWRJQWRkKHNlKTt2YXIgaGU9ZWUucmVkQWRkKGVlKS5yZWRJQWRkKGVlKSx1ZT1oZS5yZWRTcXIoKSxjZT1vZS5yZWRJQWRkKG9lKTtjZT0oY2U9Y2UucmVkSUFkZChjZSkpLnJlZElBZGQoY2UpLEk9dWUucmVkSVN1YihzZSkucmVkSVN1YihzZSksaz1oZS5yZWRNdWwoc2UucmVkSVN1'@; put 'YihJKSkucmVkSVN1YihjZSksRT0oRT10aGlzLnkucmVkTXVsKHRoaXMueikpLnJlZElBZGQoRSl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KEksayxFKX0sei5wcm90b3R5cGUuX3RocmVlRGJsPWZ1bmN0aW9uKCl7dmFyIEksayxFO2lmKHRoaXMuek9uZSl7dmFyIGo9dGhpcy54LnJlZFNx'@; put 'cigpLFY9dGhpcy55LnJlZFNxcigpLEI9Vi5yZWRTcXIoKSxZPXRoaXMueC5yZWRBZGQoVikucmVkU3FyKCkucmVkSVN1YihqKS5yZWRJU3ViKEIpO1k9WS5yZWRJQWRkKFkpO3ZhciBYPWoucmVkQWRkKGopLnJlZElBZGQoaikucmVkSUFkZCh0aGlzLmN1cnZlLmEpLFU9WC5yZWRTcXIoKS5y'@; put 'ZWRJU3ViKFkpLnJlZElTdWIoWSk7ST1VO3ZhciBxPUIucmVkSUFkZChCKTtxPShxPXEucmVkSUFkZChxKSkucmVkSUFkZChxKSxrPVgucmVkTXVsKFkucmVkSVN1YihVKSkucmVkSVN1YihxKSxFPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBlZT10aGlzLnoucmVkU3FyKCksdGU9'@; put 'dGhpcy55LnJlZFNxcigpLG9lPXRoaXMueC5yZWRNdWwodGUpLHNlPXRoaXMueC5yZWRTdWIoZWUpLnJlZE11bCh0aGlzLngucmVkQWRkKGVlKSk7c2U9c2UucmVkQWRkKHNlKS5yZWRJQWRkKHNlKTt2YXIgaGU9b2UucmVkSUFkZChvZSksdWU9KGhlPWhlLnJlZElBZGQoaGUpKS5yZWRBZGQo'@; put 'aGUpO0k9c2UucmVkU3FyKCkucmVkSVN1Yih1ZSksRT10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1Yih0ZSkucmVkSVN1YihlZSk7dmFyIGNlPXRlLnJlZFNxcigpO2NlPShjZT0oY2U9Y2UucmVkSUFkZChjZSkpLnJlZElBZGQoY2UpKS5yZWRJQWRkKGNlKSxrPXNlLnJl'@; put 'ZE11bChoZS5yZWRJU3ViKEkpKS5yZWRJU3ViKGNlKX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoSSxrLEUpfSx6LnByb3RvdHlwZS5fZGJsPWZ1bmN0aW9uKCl7dmFyIEk9dGhpcy5jdXJ2ZS5hLGs9dGhpcy54LEU9dGhpcy55LGo9dGhpcy56LFY9ai5yZWRTcXIoKS5yZWRTcXIoKSxCPWsu'@; put 'cmVkU3FyKCksWT1FLnJlZFNxcigpLFg9Qi5yZWRBZGQoQikucmVkSUFkZChCKS5yZWRJQWRkKEkucmVkTXVsKFYpKSxVPWsucmVkQWRkKGspLHE9KFU9VS5yZWRJQWRkKFUpKS5yZWRNdWwoWSksZWU9WC5yZWRTcXIoKS5yZWRJU3ViKHEucmVkQWRkKHEpKSx0ZT1xLnJlZElTdWIoZWUpLG9l'@; put 'PVkucmVkU3FyKCk7b2U9KG9lPShvZT1vZS5yZWRJQWRkKG9lKSkucmVkSUFkZChvZSkpLnJlZElBZGQob2UpO3ZhciBzZT1YLnJlZE11bCh0ZSkucmVkSVN1YihvZSksaGU9RS5yZWRBZGQoRSkucmVkTXVsKGopO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChlZSxzZSxoZSl9LHoucHJvdG90'@; put 'eXBlLnRycGw9ZnVuY3Rpb24oKXtpZighdGhpcy5jdXJ2ZS56ZXJvQSlyZXR1cm4gdGhpcy5kYmwoKS5hZGQodGhpcyk7dmFyIEk9dGhpcy54LnJlZFNxcigpLGs9dGhpcy55LnJlZFNxcigpLEU9dGhpcy56LnJlZFNxcigpLGo9ay5yZWRTcXIoKSxWPUkucmVkQWRkKEkpLnJlZElBZGQoSSks'@; put 'Qj1WLnJlZFNxcigpLFk9dGhpcy54LnJlZEFkZChrKS5yZWRTcXIoKS5yZWRJU3ViKEkpLnJlZElTdWIoaiksWD0oWT0oWT0oWT1ZLnJlZElBZGQoWSkpLnJlZEFkZChZKS5yZWRJQWRkKFkpKS5yZWRJU3ViKEIpKS5yZWRTcXIoKSxVPWoucmVkSUFkZChqKTtVPShVPShVPVUucmVkSUFkZChV'@; put 'KSkucmVkSUFkZChVKSkucmVkSUFkZChVKTt2YXIgcT1WLnJlZElBZGQoWSkucmVkU3FyKCkucmVkSVN1YihCKS5yZWRJU3ViKFgpLnJlZElTdWIoVSksZWU9ay5yZWRNdWwocSk7ZWU9KGVlPWVlLnJlZElBZGQoZWUpKS5yZWRJQWRkKGVlKTt2YXIgdGU9dGhpcy54LnJlZE11bChYKS5yZWRJ'@; put 'U3ViKGVlKTt0ZT0odGU9dGUucmVkSUFkZCh0ZSkpLnJlZElBZGQodGUpO3ZhciBvZT10aGlzLnkucmVkTXVsKHEucmVkTXVsKFUucmVkSVN1YihxKSkucmVkSVN1YihZLnJlZE11bChYKSkpO29lPShvZT0ob2U9b2UucmVkSUFkZChvZSkpLnJlZElBZGQob2UpKS5yZWRJQWRkKG9lKTt2YXIg'@; put 'c2U9dGhpcy56LnJlZEFkZChZKS5yZWRTcXIoKS5yZWRJU3ViKEUpLnJlZElTdWIoWCk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHRlLG9lLHNlKX0sei5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKEksayl7cmV0dXJuIEk9bmV3IHgoSSxrKSx0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsSSl9'@; put 'LHoucHJvdG90eXBlLmVxPWZ1bmN0aW9uKEkpe2lmKCJhZmZpbmUiPT09SS50eXBlKXJldHVybiB0aGlzLmVxKEkudG9KKCkpO2lmKHRoaXM9PT1JKXJldHVybiEwO3ZhciBrPXRoaXMuei5yZWRTcXIoKSxFPUkuei5yZWRTcXIoKTtpZigwIT09dGhpcy54LnJlZE11bChFKS5yZWRJU3ViKEku'@; put 'eC5yZWRNdWwoaykpLmNtcG4oMCkpcmV0dXJuITE7dmFyIGo9ay5yZWRNdWwodGhpcy56KSxWPUUucmVkTXVsKEkueik7cmV0dXJuIDA9PT10aGlzLnkucmVkTXVsKFYpLnJlZElTdWIoSS55LnJlZE11bChqKSkuY21wbigwKX0sei5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKEkpe3ZhciBr'@; put 'PXRoaXMuei5yZWRTcXIoKSxFPUkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bChrKTtpZigwPT09dGhpcy54LmNtcChFKSlyZXR1cm4hMDtmb3IodmFyIGo9SS5jbG9uZSgpLFY9dGhpcy5jdXJ2ZS5yZWROLnJlZE11bChrKTs7KXtpZihqLmlhZGQodGhpcy5jdXJ2ZS5uKSxqLmNtcCh0'@; put 'aGlzLmN1cnZlLnApPj0wKXJldHVybiExO2lmKEUucmVkSUFkZChWKSwwPT09dGhpcy54LmNtcChFKSlyZXR1cm4hMH19LHoucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBKUG9pbnQgSW5maW5pdHk+IjoiPEVDIEpQb2ludCB4OiAi'@; put 'K3RoaXMueC50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnoudG9TdHJpbmcoMTYsMikrIj4ifSx6LnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX19LDgwNDk6KGF0LEllLEYpPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciB6LGFlPUllLHg9Rig3MTA3NiksbT1GKDkxMzIpLE09Rig0Njc2NykuYXNzZXJ0O2Z1bmN0aW9uIE8oSyl7dGhpcy5jdXJ2ZT0ic2hvcnQiPT09Sy50eXBlP25ldyBtLnNob3J0KEspOiJlZHdhcmRzIj09PUsudHlwZT9uZXcgbS5lZHdhcmRzKEspOm5ldyBtLm1v'@; put 'bnQoSyksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD1LLmhhc2gsTSh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLE0odGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1mdW5j'@; put 'dGlvbiBSKEssSSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGFlLEsse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciBrPW5ldyBPKEkpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYWUsSyx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAs'@; put 'dmFsdWU6a30pLGt9fSl9YWUuUHJlc2V0Q3VydmU9TyxSKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDp4LnNoYTI1NixnUmVkOiExLGc6WyIxODhk'@; put 'YTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KSxSKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJwMjI0IixwOiJmZmZmZmZmZiBmZmZmZmZm'@; put 'ZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3'@; put 'MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDp4LnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAzYzFkMyA1NmMyMTEyMiAzNDMyODBkNiAx'@; put 'MTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KSxSKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZm'@; put 'ZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAy'@; put 'N2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6eC5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAg'@; put 'ZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSksUigicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm'@; put 'ZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAw'@; put 'MDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOnguc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5'@; put 'Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0p'@; put 'LFIoInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBm'@; put 'ZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0'@; put 'IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQw'@; put 'OSIsaGFzaDp4LnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBm'@; put 'OTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlm'@; put 'ZDE2NjUwIl19KSxSKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAw'@; put 'MDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6eC5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSksUigiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZm'@; put 'ZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3'@; put 'OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOnguc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2'@; put 'NjY2NjY2NjY2NjY2NjU4Il19KTt0cnl7ej1GKDI3Mjc0KX1jYXRjaHt6PXZvaWQgMH1SKCJzZWNwMjU2azEiLHt0eXBlOiJzaG9ydCIscHJpbWU6ImsyNTYiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJm'@; put 'IixhOiIwIixiOiI3IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBiYWFlZGNlNiBhZjQ4YTAzYiBiZmQyNWU4YyBkMDM2NDE0MSIsaDoiMSIsaGFzaDp4LnNoYTI1NixiZXRhOiI3YWU5NmEyYjY1N2MwNzEwNmU2NDQ3OWVhYzM0MzRlOTljZjA0OTc1MTJmNTg5OTVj'@; put 'MTM5NmMyODcxOTUwMWVlIixsYW1iZGE6IjUzNjNhZDRjYzA1YzMwZTBhNTI2MWMwMjg4MTI2NDVhMTIyZTIyZWEyMDgxNjY3OGRmMDI5NjdjMWIyM2JkNzIiLGJhc2lzOlt7YToiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUiLGI6Ii1lNDQzN2VkNjAxMGU4ODI4NmY1NDdmYTkw'@; put 'YWJmZTRjMyJ9LHthOiIxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgiLGI6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1In1dLGdSZWQ6ITEsZzpbIjc5YmU2NjdlZjlkY2JiYWM1NWEwNjI5NWNlODcwYjA3MDI5YmZjZGIyZGNlMjhkOTU5ZjI4MTViMTZmODE3OTgi'@; put 'LCI0ODNhZGE3NzI2YTNjNDY1NWRhNGZiZmMwZTExMDhhOGZkMTdiNDQ4YTY4NTU0MTk5YzQ3ZDA4ZmZiMTBkNGI4Iix6XX0pfSw2NDQzOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigzMTM4NykseD1GKDkyNDQ3KSxtPUYoNDY3NjcpLGxlPUYoODA0OSksTT1GKDYwMDgyKSxP'@; put 'PW0uYXNzZXJ0LFI9Rig5MTM3Myksej1GKDU3NzQ2KTtmdW5jdGlvbiBLKEkpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEspKXJldHVybiBuZXcgSyhJKTsic3RyaW5nIj09dHlwZW9mIEkmJihPKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChsZSxJKSwiVW5rbm93biBjdXJ2'@; put 'ZSAiK0kpLEk9bGVbSV0pLEkgaW5zdGFuY2VvZiBsZS5QcmVzZXRDdXJ2ZSYmKEk9e2N1cnZlOkl9KSx0aGlzLmN1cnZlPUkuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMuZz1JLmN1cnZlLmcs'@; put 'dGhpcy5nLnByZWNvbXB1dGUoSS5jdXJ2ZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMuaGFzaD1JLmhhc2h8fEkuY3VydmUuaGFzaH1hdC5leHBvcnRzPUssSy5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbihrKXtyZXR1cm4gbmV3IFIodGhpcyxrKX0sSy5wcm90b3R5cGUua2V5RnJvbVByaXZh'@; put 'dGU9ZnVuY3Rpb24oayxFKXtyZXR1cm4gUi5mcm9tUHJpdmF0ZSh0aGlzLGssRSl9LEsucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oayxFKXtyZXR1cm4gUi5mcm9tUHVibGljKHRoaXMsayxFKX0sSy5wcm90b3R5cGUuZ2VuS2V5UGFpcj1mdW5jdGlvbihrKXtrfHwoaz17fSk7'@; put 'Zm9yKHZhciBFPW5ldyB4KHtoYXNoOnRoaXMuaGFzaCxwZXJzOmsucGVycyxwZXJzRW5jOmsucGVyc0VuY3x8InV0ZjgiLGVudHJvcHk6ay5lbnRyb3B5fHxNKHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLGVudHJvcHlFbmM6ay5lbnRyb3B5JiZrLmVudHJvcHlFbmN8fCJ1dGY4Iixub25jZTp0'@; put 'aGlzLm4udG9BcnJheSgpfSksaj10aGlzLm4uYnl0ZUxlbmd0aCgpLFY9dGhpcy5uLnN1YihuZXcgYWUoMikpOzspe3ZhciBCPW5ldyBhZShFLmdlbmVyYXRlKGopKTtpZighKEIuY21wKFYpPjApKXJldHVybiBCLmlhZGRuKDEpLHRoaXMua2V5RnJvbVByaXZhdGUoQil9fSxLLnByb3RvdHlw'@; put 'ZS5fdHJ1bmNhdGVUb049ZnVuY3Rpb24oayxFKXt2YXIgaj04KmsuYnl0ZUxlbmd0aCgpLXRoaXMubi5iaXRMZW5ndGgoKTtyZXR1cm4gaj4wJiYoaz1rLnVzaHJuKGopKSwhRSYmay5jbXAodGhpcy5uKT49MD9rLnN1Yih0aGlzLm4pOmt9LEsucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oayxF'@; put 'LGosVil7Im9iamVjdCI9PXR5cGVvZiBqJiYoVj1qLGo9bnVsbCksVnx8KFY9e30pLEU9dGhpcy5rZXlGcm9tUHJpdmF0ZShFLGopLGs9dGhpcy5fdHJ1bmNhdGVUb04obmV3IGFlKGssMTYpKTtmb3IodmFyIEI9dGhpcy5uLmJ5dGVMZW5ndGgoKSxZPUUuZ2V0UHJpdmF0ZSgpLnRvQXJyYXko'@; put 'ImJlIixCKSxYPWsudG9BcnJheSgiYmUiLEIpLFU9bmV3IHgoe2hhc2g6dGhpcy5oYXNoLGVudHJvcHk6WSxub25jZTpYLHBlcnM6Vi5wZXJzLHBlcnNFbmM6Vi5wZXJzRW5jfHwidXRmOCJ9KSxxPXRoaXMubi5zdWIobmV3IGFlKDEpKSxlZT0wOztlZSsrKXt2YXIgdGU9Vi5rP1YuayhlZSk6'@; put 'bmV3IGFlKFUuZ2VuZXJhdGUodGhpcy5uLmJ5dGVMZW5ndGgoKSkpO2lmKCEoKHRlPXRoaXMuX3RydW5jYXRlVG9OKHRlLCEwKSkuY21wbigxKTw9MHx8dGUuY21wKHEpPj0wKSl7dmFyIG9lPXRoaXMuZy5tdWwodGUpO2lmKCFvZS5pc0luZmluaXR5KCkpe3ZhciBzZT1vZS5nZXRYKCksaGU9'@; put 'c2UudW1vZCh0aGlzLm4pO2lmKDAhPT1oZS5jbXBuKDApKXt2YXIgdWU9dGUuaW52bSh0aGlzLm4pLm11bChoZS5tdWwoRS5nZXRQcml2YXRlKCkpLmlhZGQoaykpO2lmKDAhPT0odWU9dWUudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgY2U9KG9lLmdldFkoKS5pc09kZCgpPzE6MCl8KDAh'@; put 'PT1zZS5jbXAoaGUpPzI6MCk7cmV0dXJuIFYuY2Fub25pY2FsJiZ1ZS5jbXAodGhpcy5uaCk+MCYmKHVlPXRoaXMubi5zdWIodWUpLGNlXj0xKSxuZXcgeih7cjpoZSxzOnVlLHJlY292ZXJ5UGFyYW06Y2V9KX19fX19fSxLLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oayxFLGosVil7az10'@; put 'aGlzLl90cnVuY2F0ZVRvTihuZXcgYWUoaywxNikpLGo9dGhpcy5rZXlGcm9tUHVibGljKGosVik7dmFyIEI9KEU9bmV3IHooRSwiaGV4IikpLnIsWT1FLnM7aWYoQi5jbXBuKDEpPDB8fEIuY21wKHRoaXMubik+PTB8fFkuY21wbigxKTwwfHxZLmNtcCh0aGlzLm4pPj0wKXJldHVybiExO3Zh'@; put 'ciBlZSxYPVkuaW52bSh0aGlzLm4pLFU9WC5tdWwoaykudW1vZCh0aGlzLm4pLHE9WC5tdWwoQikudW1vZCh0aGlzLm4pO3JldHVybiB0aGlzLmN1cnZlLl9tYXh3ZWxsVHJpY2s/IShlZT10aGlzLmcuam11bEFkZChVLGouZ2V0UHVibGljKCkscSkpLmlzSW5maW5pdHkoKSYmZWUuZXFYVG9Q'@; put 'KEIpOiEoZWU9dGhpcy5nLm11bEFkZChVLGouZ2V0UHVibGljKCkscSkpLmlzSW5maW5pdHkoKSYmMD09PWVlLmdldFgoKS51bW9kKHRoaXMubikuY21wKEIpfSxLLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0aW9uKEksayxFLGope08oKDMmRSk9PT1FLCJUaGUgcmVjb3ZlcnkgcGFy'@; put 'YW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksaz1uZXcgeihrLGopO3ZhciBWPXRoaXMubixCPW5ldyBhZShJKSxZPWsucixYPWsucyxVPTEmRSxxPUU+PjE7aWYoWS5jbXAodGhpcy5jdXJ2ZS5wLnVtb2QodGhpcy5jdXJ2ZS5uKSk+PTAmJnEpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8g'@; put 'ZmluZCBzZW5jb25kIGtleSBjYW5kaW5hdGUiKTtZPXRoaXMuY3VydmUucG9pbnRGcm9tWChxP1kuYWRkKHRoaXMuY3VydmUubik6WSxVKTt2YXIgZWU9ay5yLmludm0oViksdGU9Vi5zdWIoQikubXVsKGVlKS51bW9kKFYpLG9lPVgubXVsKGVlKS51bW9kKFYpO3JldHVybiB0aGlzLmcubXVs'@; put 'QWRkKHRlLFksb2UpfSxLLnByb3RvdHlwZS5nZXRLZXlSZWNvdmVyeVBhcmFtPWZ1bmN0aW9uKEksayxFLGope2lmKG51bGwhPT0oaz1uZXcgeihrLGopKS5yZWNvdmVyeVBhcmFtKXJldHVybiBrLnJlY292ZXJ5UGFyYW07Zm9yKHZhciBWPTA7Vjw0O1YrKyl7dmFyIEI7dHJ5e0I9dGhpcy5y'@; put 'ZWNvdmVyUHViS2V5KEksayxWKX1jYXRjaHtjb250aW51ZX1pZihCLmVxKEUpKXJldHVybiBWfXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgdmFsaWQgcmVjb3ZlcnkgZmFjdG9yIil9fSw5MTM3MzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMzEzODcpLG09Rig0'@; put 'Njc2NykuYXNzZXJ0O2Z1bmN0aW9uIGxlKE0sTyl7dGhpcy5lYz1NLHRoaXMucHJpdj1udWxsLHRoaXMucHViPW51bGwsTy5wcml2JiZ0aGlzLl9pbXBvcnRQcml2YXRlKE8ucHJpdixPLnByaXZFbmMpLE8ucHViJiZ0aGlzLl9pbXBvcnRQdWJsaWMoTy5wdWIsTy5wdWJFbmMpfWF0LmV4cG9y'@; put 'dHM9bGUsbGUuZnJvbVB1YmxpYz1mdW5jdGlvbihPLFIseil7cmV0dXJuIFIgaW5zdGFuY2VvZiBsZT9SOm5ldyBsZShPLHtwdWI6UixwdWJFbmM6en0pfSxsZS5mcm9tUHJpdmF0ZT1mdW5jdGlvbihPLFIseil7cmV0dXJuIFIgaW5zdGFuY2VvZiBsZT9SOm5ldyBsZShPLHtwcml2OlIscHJp'@; put 'dkVuYzp6fSl9LGxlLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3ZhciBPPXRoaXMuZ2V0UHVibGljKCk7cmV0dXJuIE8uaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITEscmVhc29uOiJJbnZhbGlkIHB1YmxpYyBrZXkifTpPLnZhbGlkYXRlKCk/Ty5tdWwodGhpcy5lYy5jdXJ2ZS5uKS5p'@; put 'c0luZmluaXR5KCk/e3Jlc3VsdDohMCxyZWFzb246bnVsbH06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgKiBOICE9IE8ifTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSBpcyBub3QgYSBwb2ludCJ9fSxsZS5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKE8sUil7cmV0'@; put 'dXJuInN0cmluZyI9PXR5cGVvZiBPJiYoUj1PLE89bnVsbCksdGhpcy5wdWJ8fCh0aGlzLnB1Yj10aGlzLmVjLmcubXVsKHRoaXMucHJpdikpLFI/dGhpcy5wdWIuZW5jb2RlKFIsTyk6dGhpcy5wdWJ9LGxlLnByb3RvdHlwZS5nZXRQcml2YXRlPWZ1bmN0aW9uKE8pe3JldHVybiJoZXgiPT09'@; put 'Tz90aGlzLnByaXYudG9TdHJpbmcoMTYsMik6dGhpcy5wcml2fSxsZS5wcm90b3R5cGUuX2ltcG9ydFByaXZhdGU9ZnVuY3Rpb24oTyxSKXt0aGlzLnByaXY9bmV3IGFlKE8sUnx8MTYpLHRoaXMucHJpdj10aGlzLnByaXYudW1vZCh0aGlzLmVjLmN1cnZlLm4pfSxsZS5wcm90b3R5cGUuX2lt'@; put 'cG9ydFB1YmxpYz1mdW5jdGlvbihPLFIpe2lmKE8ueHx8Ty55KXJldHVybiJtb250Ij09PXRoaXMuZWMuY3VydmUudHlwZT9tKE8ueCwiTmVlZCB4IGNvb3JkaW5hdGUiKTooInNob3J0Ij09PXRoaXMuZWMuY3VydmUudHlwZXx8ImVkd2FyZHMiPT09dGhpcy5lYy5jdXJ2ZS50eXBlKSYmbShP'@; put 'LngmJk8ueSwiTmVlZCBib3RoIHggYW5kIHkgY29vcmRpbmF0ZSIpLHZvaWQodGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5wb2ludChPLngsTy55KSk7dGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5kZWNvZGVQb2ludChPLFIpfSxsZS5wcm90b3R5cGUuZGVyaXZlPWZ1bmN0aW9uKE8pe3JldHVybiBP'@; put 'LnZhbGlkYXRlKCl8fG0oTy52YWxpZGF0ZSgpLCJwdWJsaWMgcG9pbnQgbm90IHZhbGlkYXRlZCIpLE8ubXVsKHRoaXMucHJpdikuZ2V0WCgpfSxsZS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihPLFIseil7cmV0dXJuIHRoaXMuZWMuc2lnbihPLHRoaXMsUix6KX0sbGUucHJvdG90eXBlLnZl'@; put 'cmlmeT1mdW5jdGlvbihPLFIpe3JldHVybiB0aGlzLmVjLnZlcmlmeShPLFIsdGhpcyl9LGxlLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhp'@; put 'cy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sNTc3NDY6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDMxMzg3KSx4PUYoNDY3NjcpLG09eC5hc3NlcnQ7ZnVuY3Rpb24gbGUoSyxJKXtpZihLIGluc3RhbmNlb2YgbGUpcmV0dXJuIEs7dGhpcy5faW1wb3J0REVSKEssSSl8fChtKEsu'@; put 'ciYmSy5zLCJTaWduYXR1cmUgd2l0aG91dCByIG9yIHMiKSx0aGlzLnI9bmV3IGFlKEsuciwxNiksdGhpcy5zPW5ldyBhZShLLnMsMTYpLHRoaXMucmVjb3ZlcnlQYXJhbT12b2lkIDA9PT1LLnJlY292ZXJ5UGFyYW0/bnVsbDpLLnJlY292ZXJ5UGFyYW0pfWZ1bmN0aW9uIE0oKXt0aGlzLnBs'@; put 'YWNlPTB9ZnVuY3Rpb24gTyhLLEkpe3ZhciBrPUtbSS5wbGFjZSsrXTtpZighKDEyOCZrKSlyZXR1cm4gazt2YXIgRT0xNSZrO2lmKDA9PT1FfHxFPjQpcmV0dXJuITE7Zm9yKHZhciBqPTAsVj0wLEI9SS5wbGFjZTtWPEU7VisrLEIrKylqPDw9OCxqfD1LW0JdLGo+Pj49MDtyZXR1cm4hKGo8'@; put 'PTEyNykmJihJLnBsYWNlPUIsail9ZnVuY3Rpb24gUihLKXtmb3IodmFyIEk9MCxrPUsubGVuZ3RoLTE7IUtbSV0mJiEoMTI4JktbSSsxXSkmJkk8azspSSsrO3JldHVybiAwPT09ST9LOksuc2xpY2UoSSl9ZnVuY3Rpb24geihLLEkpe2lmKEk8MTI4KUsucHVzaChJKTtlbHNle3ZhciBrPTEr'@; put 'KE1hdGgubG9nKEkpL01hdGguTE4yPj4+Myk7Zm9yKEsucHVzaCgxMjh8ayk7LS1rOylLLnB1c2goST4+PihrPDwzKSYyNTUpO0sucHVzaChJKX19YXQuZXhwb3J0cz1sZSxsZS5wcm90b3R5cGUuX2ltcG9ydERFUj1mdW5jdGlvbihJLGspe0k9eC50b0FycmF5KEksayk7dmFyIEU9bmV3IE07'@; put 'aWYoNDghPT1JW0UucGxhY2UrK10pcmV0dXJuITE7dmFyIGo9TyhJLEUpO2lmKCExPT09anx8aitFLnBsYWNlIT09SS5sZW5ndGh8fDIhPT1JW0UucGxhY2UrK10pcmV0dXJuITE7dmFyIFY9TyhJLEUpO2lmKCExPT09VilyZXR1cm4hMTt2YXIgQj1JLnNsaWNlKEUucGxhY2UsVitFLnBsYWNl'@; put 'KTtpZihFLnBsYWNlKz1WLDIhPT1JW0UucGxhY2UrK10pcmV0dXJuITE7dmFyIFk9TyhJLEUpO2lmKCExPT09WXx8SS5sZW5ndGghPT1ZK0UucGxhY2UpcmV0dXJuITE7dmFyIFg9SS5zbGljZShFLnBsYWNlLFkrRS5wbGFjZSk7aWYoMD09PUJbMF0pe2lmKCEoMTI4JkJbMV0pKXJldHVybiEx'@; put 'O0I9Qi5zbGljZSgxKX1pZigwPT09WFswXSl7aWYoISgxMjgmWFsxXSkpcmV0dXJuITE7WD1YLnNsaWNlKDEpfXJldHVybiB0aGlzLnI9bmV3IGFlKEIpLHRoaXMucz1uZXcgYWUoWCksdGhpcy5yZWNvdmVyeVBhcmFtPW51bGwsITB9LGxlLnByb3RvdHlwZS50b0RFUj1mdW5jdGlvbihJKXt2'@; put 'YXIgaz10aGlzLnIudG9BcnJheSgpLEU9dGhpcy5zLnRvQXJyYXkoKTtmb3IoMTI4JmtbMF0mJihrPVswXS5jb25jYXQoaykpLDEyOCZFWzBdJiYoRT1bMF0uY29uY2F0KEUpKSxrPVIoayksRT1SKEUpOyEoRVswXXx8MTI4JkVbMV0pOylFPUUuc2xpY2UoMSk7dmFyIGo9WzJdO3ooaixrLmxl'@; put 'bmd0aCksKGo9ai5jb25jYXQoaykpLnB1c2goMikseihqLEUubGVuZ3RoKTt2YXIgVj1qLmNvbmNhdChFKSxCPVs0OF07cmV0dXJuIHooQixWLmxlbmd0aCksQj1CLmNvbmNhdChWKSx4LmVuY29kZShCLEkpfX0sOTk1Nzc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDcxMDc2'@; put 'KSx4PUYoODA0OSksbT1GKDQ2NzY3KSxsZT1tLmFzc2VydCxNPW0ucGFyc2VCeXRlcyxPPUYoMTcwMTIpLFI9Rig3ODA2Mik7ZnVuY3Rpb24geihLKXtpZihsZSgiZWQyNTUxOSI9PT1LLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFyIiksISh0aGlzIGluc3RhbmNlb2YgeikpcmV0'@; put 'dXJuIG5ldyB6KEspO3RoaXMuY3VydmU9Sz14W0tdLmN1cnZlLHRoaXMuZz1LLmcsdGhpcy5nLnByZWNvbXB1dGUoSy5uLmJpdExlbmd0aCgpKzEpLHRoaXMucG9pbnRDbGFzcz1LLnBvaW50KCkuY29uc3RydWN0b3IsdGhpcy5lbmNvZGluZ0xlbmd0aD1NYXRoLmNlaWwoSy5uLmJpdExlbmd0'@; put 'aCgpLzgpLHRoaXMuaGFzaD1hZS5zaGE1MTJ9YXQuZXhwb3J0cz16LHoucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oSSxrKXtJPU0oSSk7dmFyIEU9dGhpcy5rZXlGcm9tU2VjcmV0KGspLGo9dGhpcy5oYXNoSW50KEUubWVzc2FnZVByZWZpeCgpLEkpLFY9dGhpcy5nLm11bChqKSxCPXRoaXMu'@; put 'ZW5jb2RlUG9pbnQoViksWT10aGlzLmhhc2hJbnQoQixFLnB1YkJ5dGVzKCksSSkubXVsKEUucHJpdigpKSxYPWouYWRkKFkpLnVtb2QodGhpcy5jdXJ2ZS5uKTtyZXR1cm4gdGhpcy5tYWtlU2lnbmF0dXJlKHtSOlYsUzpYLFJlbmNvZGVkOkJ9KX0sei5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0'@; put 'aW9uKEksayxFKXtJPU0oSSksaz10aGlzLm1ha2VTaWduYXR1cmUoayk7dmFyIGo9dGhpcy5rZXlGcm9tUHVibGljKEUpLFY9dGhpcy5oYXNoSW50KGsuUmVuY29kZWQoKSxqLnB1YkJ5dGVzKCksSSksQj10aGlzLmcubXVsKGsuUygpKTtyZXR1cm4gay5SKCkuYWRkKGoucHViKCkubXVsKFYp'@; put 'KS5lcShCKX0sei5wcm90b3R5cGUuaGFzaEludD1mdW5jdGlvbigpe2Zvcih2YXIgST10aGlzLmhhc2goKSxrPTA7azxhcmd1bWVudHMubGVuZ3RoO2srKylJLnVwZGF0ZShhcmd1bWVudHNba10pO3JldHVybiBtLmludEZyb21MRShJLmRpZ2VzdCgpKS51bW9kKHRoaXMuY3VydmUubil9LHou'@; put 'cHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oSSl7cmV0dXJuIE8uZnJvbVB1YmxpYyh0aGlzLEkpfSx6LnByb3RvdHlwZS5rZXlGcm9tU2VjcmV0PWZ1bmN0aW9uKEkpe3JldHVybiBPLmZyb21TZWNyZXQodGhpcyxJKX0sei5wcm90b3R5cGUubWFrZVNpZ25hdHVyZT1mdW5jdGlv'@; put 'bihJKXtyZXR1cm4gSSBpbnN0YW5jZW9mIFI/STpuZXcgUih0aGlzLEkpfSx6LnByb3RvdHlwZS5lbmNvZGVQb2ludD1mdW5jdGlvbihJKXt2YXIgaz1JLmdldFkoKS50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0aCk7cmV0dXJuIGtbdGhpcy5lbmNvZGluZ0xlbmd0aC0xXXw9SS5n'@; put 'ZXRYKCkuaXNPZGQoKT8xMjg6MCxrfSx6LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihJKXt2YXIgaz0oST1tLnBhcnNlQnl0ZXMoSSkpLmxlbmd0aC0xLEU9SS5zbGljZSgwLGspLmNvbmNhdCgtMTI5Jklba10pLGo9MCE9KDEyOCZJW2tdKSxWPW0uaW50RnJvbUxFKEUpO3JldHVy'@; put 'biB0aGlzLmN1cnZlLnBvaW50RnJvbVkoVixqKX0sei5wcm90b3R5cGUuZW5jb2RlSW50PWZ1bmN0aW9uKEkpe3JldHVybiBJLnRvQXJyYXkoImxlIix0aGlzLmVuY29kaW5nTGVuZ3RoKX0sei5wcm90b3R5cGUuZGVjb2RlSW50PWZ1bmN0aW9uKEkpe3JldHVybiBtLmludEZyb21MRShJKX0s'@; put 'ei5wcm90b3R5cGUuaXNQb2ludD1mdW5jdGlvbihJKXtyZXR1cm4gSSBpbnN0YW5jZW9mIHRoaXMucG9pbnRDbGFzc319LDE3MDEyOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig0Njc2NykseD1hZS5hc3NlcnQsbT1hZS5wYXJzZUJ5dGVzLGxlPWFlLmNhY2hlZFByb3BlcnR5'@; put 'O2Z1bmN0aW9uIE0oTyxSKXt0aGlzLmVkZHNhPU8sdGhpcy5fc2VjcmV0PW0oUi5zZWNyZXQpLE8uaXNQb2ludChSLnB1Yik/dGhpcy5fcHViPVIucHViOnRoaXMuX3B1YkJ5dGVzPW0oUi5wdWIpfU0uZnJvbVB1YmxpYz1mdW5jdGlvbihSLHope3JldHVybiB6IGluc3RhbmNlb2YgTT96Om5l'@; put 'dyBNKFIse3B1Yjp6fSl9LE0uZnJvbVNlY3JldD1mdW5jdGlvbihSLHope3JldHVybiB6IGluc3RhbmNlb2YgTT96Om5ldyBNKFIse3NlY3JldDp6fSl9LE0ucHJvdG90eXBlLnNlY3JldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWNyZXR9LGxlKE0sInB1YkJ5dGVzIixmdW5jdGlvbigp'@; put 'e3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSksbGUoTSwicHViIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wdWJCeXRlcz90aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuX3B1YkJ5dGVzKTp0aGlzLmVkZHNhLmcubXVsKHRoaXMucHJpdigpKX0pLGxlKE0s'@; put 'InByaXZCeXRlcyIsZnVuY3Rpb24oKXt2YXIgUj10aGlzLmVkZHNhLHo9dGhpcy5oYXNoKCksSz1SLmVuY29kaW5nTGVuZ3RoLTEsST16LnNsaWNlKDAsUi5lbmNvZGluZ0xlbmd0aCk7cmV0dXJuIElbMF0mPTI0OCxJW0tdJj0xMjcsSVtLXXw9NjQsSX0pLGxlKE0sInByaXYiLGZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpfSksbGUoTSwiaGFzaCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5oYXNoKCkudXBkYXRlKHRoaXMuc2VjcmV0KCkpLmRpZ2VzdCgpfSksbGUoTSwibWVzc2FnZVByZWZpeCIsZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gdGhpcy5oYXNoKCkuc2xpY2UodGhpcy5lZGRzYS5lbmNvZGluZ0xlbmd0aCl9KSxNLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKFIpe3JldHVybiB4KHRoaXMuX3NlY3JldCwiS2V5UGFpciBjYW4gb25seSB2ZXJpZnkiKSx0aGlzLmVkZHNhLnNpZ24oUix0aGlzKX0sTS5wcm90b3R5'@; put 'cGUudmVyaWZ5PWZ1bmN0aW9uKFIseil7cmV0dXJuIHRoaXMuZWRkc2EudmVyaWZ5KFIseix0aGlzKX0sTS5wcm90b3R5cGUuZ2V0U2VjcmV0PWZ1bmN0aW9uKFIpe3JldHVybiB4KHRoaXMuX3NlY3JldCwiS2V5UGFpciBpcyBwdWJsaWMgb25seSIpLGFlLmVuY29kZSh0aGlzLnNlY3JldCgp'@; put 'LFIpfSxNLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oUil7cmV0dXJuIGFlLmVuY29kZSh0aGlzLnB1YkJ5dGVzKCksUil9LGF0LmV4cG9ydHM9TX0sNzgwNjI6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDMxMzg3KSx4PUYoNDY3NjcpLG09eC5hc3NlcnQsbGU9eC5j'@; put 'YWNoZWRQcm9wZXJ0eSxNPXgucGFyc2VCeXRlcztmdW5jdGlvbiBPKFIseil7dGhpcy5lZGRzYT1SLCJvYmplY3QiIT10eXBlb2YgeiYmKHo9TSh6KSksQXJyYXkuaXNBcnJheSh6KSYmKHo9e1I6ei5zbGljZSgwLFIuZW5jb2RpbmdMZW5ndGgpLFM6ei5zbGljZShSLmVuY29kaW5nTGVuZ3Ro'@; put 'KX0pLG0oei5SJiZ6LlMsIlNpZ25hdHVyZSB3aXRob3V0IFIgb3IgUyIpLFIuaXNQb2ludCh6LlIpJiYodGhpcy5fUj16LlIpLHouUyBpbnN0YW5jZW9mIGFlJiYodGhpcy5fUz16LlMpLHRoaXMuX1JlbmNvZGVkPUFycmF5LmlzQXJyYXkoei5SKT96LlI6ei5SZW5jb2RlZCx0aGlzLl9TZW5j'@; put 'b2RlZD1BcnJheS5pc0FycmF5KHouUyk/ei5TOnouU2VuY29kZWR9bGUoTywiUyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5TZW5jb2RlZCgpKX0pLGxlKE8sIlIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5SZW5j'@; put 'b2RlZCgpKX0pLGxlKE8sIlJlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMuUigpKX0pLGxlKE8sIlNlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZUludCh0aGlzLlMoKSl9KSxPLnByb3RvdHlwZS50b0J5dGVz'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX0sTy5wcm90b3R5cGUudG9IZXg9ZnVuY3Rpb24oKXtyZXR1cm4geC5lbmNvZGUodGhpcy50b0J5dGVzKCksImhleCIpLnRvVXBwZXJDYXNlKCl9LGF0LmV4cG9ydHM9T30sMjcyNzQ6YXQ9'@; put 'PnthdC5leHBvcnRzPXtkb3VibGVzOntzdGVwOjQscG9pbnRzOltbImU2MGZjZTkzYjU5ZTllYzUzMDExYWFiYzIxYzIzZTk3YjJhMzEzNjliODdhNWFlOWM0NGVlODllMmE2ZGVjMGEiLCJmN2UzNTA3Mzk5ZTU5NTkyOWRiOTlmMzRmNTc5MzcxMDEyOTY4OTFlNDRkMjNmMGJlMWYzMmNjZTY5'@; put 'NjE2ODIxIl0sWyI4MjgyMjYzMjEyYzYwOWQ5ZWEyYTZlM2UxNzJkZTIzOGQ4YzM5Y2FiZDVhYzFjYTEwNjQ2ZTIzZmQ1ZjUxNTA4IiwiMTFmOGE4MDk4NTU3ZGZlNDVlODI1NmU4MzBiNjBhY2U2MmQ2MTNhYzJmN2IxN2JlZDMxYjZlYWZmNmUyNmNhZiJdLFsiMTc1ZTE1OWY3MjhiODY1YTcy'@; put 'Zjk5Y2M2YzZmYzg0NmRlMGI5MzgzM2ZkMjIyMmVkNzNmY2U1YjU1MWU1YjczOSIsImQzNTA2ZTBkOWUzYzc5ZWJhNGVmOTdhNTFmZjcxZjVlYWNiNTk1NWFkZDI0MzQ1YzZlZmE2ZmZlZTlmZWQ2OTUiXSxbIjM2M2Q5MGQ0NDdiMDBjOWM5OWNlYWMwNWI2MjYyZWUwNTM0NDFjN2U1NTU1MmZm'@; put 'ZTUyNmJhZDhmODNmZjQ2NDAiLCI0ZTI3M2FkZmM3MzIyMjE5NTNiNDQ1Mzk3ZjMzNjMxNDViOWE4OTAwODE5OWVjYjYyMDAzYzdmM2JlZTlkZTkiXSxbIjhiNGI1ZjE2NWRmM2MyYmU4YzYyNDRiNWI3NDU2Mzg4NDNlNGE3ODFhMTViY2QxYjY5Zjc5YTU1ZGZmZGY4MGMiLCI0YWFkMGE2ZjY4'@; put 'ZDMwOGI0YjNmYmQ3ODEzYWIwZGEwNGY5ZTMzNjU0NjE2MmVlNTZiM2VmZjBjNjVmZDRmZDM2Il0sWyI3MjNjYmFhNmU1ZGI5OTZkNmJmNzcxYzAwYmQ1NDhjN2I3MDBkYmZmYTZjMGU3N2JjYjYxMTU5MjUyMzJmY2RhIiwiOTZlODY3YjU1OTVjYzQ5OGE5MjExMzc0ODg4MjRkNmUyNjYwYTA2'@; put 'NTM3Nzk0OTQ4MDFkYzA2OWQ5ZWIzOWY1ZiJdLFsiZWViZmE0ZDQ5M2JlYmY5OGJhNWZlZWM4MTJjMmQzYjUwOTQ3OTYxMjM3YTkxOTgzOWE1MzNlY2EwZTdkZDdmYSIsIjVkOWE4Y2EzOTcwZWYwZjI2OWVlN2VkYWYxNzgwODlkOWFlNGNkYzNhNzExZjcxMmRkZmQ0ZmRhZTFkZTg5OTkiXSxb'@; put 'IjEwMGY0NGRhNjk2ZTcxNjcyNzkxZDBhMDliN2JkZTQ1OWYxMjE1YTI5YjNjMDNiZmVmZDc4MzViMzlhNDhkYjAiLCJjZGQ5ZTEzMTkyYTAwYjc3MmVjOGYzMzAwYzA5MDY2NmI3ZmY0YTE4ZmY1MTk1YWMwZmJkNWNkNjJiYzY1YTA5Il0sWyJlMTAzMWJlMjYyYzdlZDFiMWRjOTIyN2E0YTA0'@; put 'YzAxN2E3N2Y4ZDQ0NjRmM2IzODUyYzhhY2RlNmU1MzRmZDJkIiwiOWQ3MDYxOTI4OTQwNDA1ZTZiYjZhNDE3NjU5NzUzNWFmMjkyZGQ0MTllMWNlZDc5YTQ0ZjE4ZjI5NDU2YTAwZCJdLFsiZmVlYTZjYWU0NmQ1NWI1MzBhYzI4MzlmMTQzYmQ3ZWM1Y2Y4YjI2NmE0MWQ2YWY1MmQ1ZTY4OGQ5'@; put 'MDk0Njk2ZCIsImU1N2M2YjZjOTdkY2UxYmFiMDZlNGUxMmJmM2VjZDVjOTgxYzg5NTdjYzQxNDQyZDMxNTVkZWJmMTgwOTAwODgiXSxbImRhNjdhOTFkOTEwNDljZGNiMzY3YmU0YmU2ZmZjYTNjZmVlZDY1N2Q4MDg1ODNkZTMzZmE5NzhiYzFlYzZjYjEiLCI5YmFjYWEzNTQ4MTY0MmJjNDFm'@; put 'NDYzZjdlYzk3ODBlNWRlYzdhZGM1MDhmNzQwYTE3ZTllYThlMjdhNjhiZTFkIl0sWyI1MzkwNGZhYTBiMzM0Y2RkYTZlMDAwOTM1ZWYyMjE1MWVjMDhkMGY3YmIxMTA2OWY1NzU0NWNjYzFhMzdiN2MwIiwiNWJjMDg3ZDBiYzgwMTA2ZDg4YzllY2NhYzIwZDNjMWMxMzk5OTk4MWUxNDQzNDY5'@; put 'OWRjYjA5NmIwMjI3NzFjOCJdLFsiOGU3YmNkMGJkMzU5ODNhNzcxOWNjYTc3NjRjYTkwNjc3OWI1M2EwNDNhOWI4YmNhZWZmOTU5ZjQzYWQ4NjA0NyIsIjEwYjc3NzBiMmEzZGE0YjM5NDAzMTA0MjBjYTk1MTQ1NzllODhlMmU0N2ZkNjhiM2VhMTAwNDdlODQ2MDM3MmEiXSxbIjM4NWVlZDM0'@; put 'YzFjZGZmMjFlNmQwODE4Njg5YjgxYmRlNzFhN2Y0ZjE4Mzk3ZTY2OTBhODQxZTE1OTljNDM4NjIiLCIyODNiZWJjM2U4ZWEyM2Y1NjcwMWRlMTllOWViZjQ1NzZiMzA0ZWVjMjA4NmRjOGNjMDQ1OGZlNTU0MmU1NDUzIl0sWyI2ZjlkOWI4MDNlY2YxOTE2MzdjNzNhNDQxM2RmYTE4MGZkZGY4'@; put 'NGE1OTQ3ZmJjOWM2MDZlZDg2YzNmYWMzYTciLCI3YzgwYzY4ZTYwMzA1OWJhNjliOGUyYTMwZTQ1YzRkNDdlYTRkZDJmNWMyODEwMDJkODY4OTA2MDNhODQyMTYwIl0sWyIzMzIyZDQwMTI0M2M0ZTI1ODJhMjE0N2MxMDRkNmVjYmY3NzRkMTYzZGIwZjVlNTMxM2I3ZTBlNzQyZDBlNmJkIiwi'@; put 'NTZlNzA3OTdlOTY2NGVmNWJmYjAxOWJjNGRkYWY5YjcyODA1ZjYzZWEyODczYWY2MjRmM2EyZTk2YzI4YjJhMCJdLFsiODU2NzJjN2QyZGUwYjdkYTJiZDE3NzBkODk2NjU4Njg3NDFiM2Y5YWY3NjQzMzk3NzIxZDc0ZDI4MTM0YWI4MyIsIjdjNDgxYjliNWI0M2IyZWI2Mzc0MDQ5YmZhNjJj'@; put 'MmU1ZTc3ZjE3ZmNjNTI5OGY0NGM4ZTMwOTRmNzkwMzEzYTYiXSxbIjk0OGJmODA5YjE5ODhhNDZiMDZjOWYxOTE5NDEzYjEwZjkyMjZjNjBmNjY4ODMyZmZkOTU5YWY2MGM4MmEwYSIsIjUzYTU2Mjg1NmRjYjY2NDZkYzZiNzRjNWQxYzM0MThjNmQ0ZGZmMDhjOTdjZDJiZWQ0Y2I3Zjg4ZDhj'@; put 'OGU1ODkiXSxbIjYyNjBjZTdmNDYxODAxYzM0ZjA2N2NlMGYwMjg3M2E4ZjFiMGU0NGRmYzY5NzUyYWNjZWNkODE5ZjM4ZmQ4ZTgiLCJiYzJkYTgyYjZmYTViNTcxYTdmMDkwNDk3NzZhMWVmN2VjZDI5MjIzODA1MWMxOThjMWE4NGU5NWIyYjRhZTE3Il0sWyJlNTAzN2RlMGFmYzFkOGQ0M2Q4'@; put 'MzQ4NDE0YmJmNDEwMzA0M2VjOGY1NzViZmRjNDMyOTUzY2M4ZDIwMzdmYTJkIiwiNDU3MTUzNGJhYTk0ZDNiNWY5Zjk4ZDA5ZmI5OTBiZGRiZDVmNWIwM2VjNDgxZjEwZTBlNWRjODQxZDc1NWJkYSJdLFsiZTA2MzcyYjBmNGEyMDdhZGY1ZWE5MDVlOGYxNzcxYjRlN2U4ZGJkMWM2YTZjNWI3'@; put 'MjU4NjZhMGFlNGZjZTcyNSIsIjdhOTA4OTc0YmNlMThjZmUxMmEyN2JiMmFkNWE0ODhjZDc0ODRhNzc4NzEwNDg3MGIyNzAzNGY5NGVlZTMxZGQiXSxbIjIxM2M3YTcxNWNkNWQ0NTM1OGQwYmJmOWRjMGNlMDIyMDRiMTBiZGRlMmEzZjU4NTQwYWQ2OTA4ZDA1NTk3NTQiLCI0YjZkYWQwYjVh'@; put 'ZTQ2MjUwNzAxM2FkMDYyNDViYTE5MGJiNDg1MGY1ZjM2YTdlZWRkZmYyYzI3NTM0YjQ1OGYyIl0sWyI0ZTdjMjcyYTdhZjRiMzRlOGRiYjkzNTJhNTQxOWE4N2UyODM4YzcwYWRjNjJjZGRmMGNjM2EzYjA4ZmJkNTNjIiwiMTc3NDljNzY2YzlkMGIxOGUxNmZkMDlmNmRlZjY4MWI1MzBiOTYx'@; put 'NGJmZjdkZDMzZTBiMzk0MTgxN2RjYWFlNiJdLFsiZmVhNzRlM2RiZTc3OGIxYjEwZjIzOGFkNjE2ODZhYTVjNzZlM2RiMmJlNDMwNTc2MzI0MjdlMjg0MGZiMjdiNiIsIjZlMDU2OGRiOWIwYjEzMjk3Y2Y2NzRkZWNjYjZhZjkzMTI2YjU5NmI5NzNmN2I3NzcwMWQzZGI3ZjIzY2I5NmYiXSxb'@; put 'Ijc2ZTY0MTEzZjY3N2NmMGUxMGEyNTcwZDU5OTk2OGQzMTU0NGUxNzliNzYwNDMyOTUyYzAyYTQ0MTdiZGRlMzkiLCJjOTBkZGY4ZGVlNGU5NWNmNTc3MDY2ZDcwNjgxZjBkMzVlMmEzM2QyYjU2ZDIwMzJiNGIxNzUyZDE5MDFhYzAxIl0sWyJjNzM4YzU2YjAzYjJhYmUxZTgyODFiYWE3NDNm'@; put 'OGY5YThmN2NjNjQzZGYyNmNiZWUzYWIxNTAyNDJiY2JiODkxIiwiODkzZmI1Nzg5NTFhZDI1MzdmNzE4ZjJlYWNiZmJiYmI4MjMxNGVlZjc4ODBjZmU5MTdlNzM1ZDk2OTlhODRjMyJdLFsiZDg5NTYyNjU0OGI2NWI4MWUyNjRjNzYzN2M5NzI4NzdkMWQ3MmU1ZjNhOTI1MDE0MzcyZTlmNjU4'@; put 'OGY2YzE0YiIsImZlYmZhYTM4ZjJiYzdlYWU3MjhlYzYwODE4YzM0MGViMDM0MjhkNjMyYmIwNjdlMTc5MzYzZWQ3NWQ3ZDk5MWYiXSxbImI4ZGE5NDAzMmE5NTc1MThlYjBmNjQzMzU3MWU4NzYxY2VmZmM3MzY5M2U4NGVkZDQ5MTUwYTU2NGY2NzZlMDMiLCIyODA0ZGZhNDQ4MDVhMWU0ZDdj'@; put 'OTljYzk3NjI4MDhiMDkyY2M1ODRkOTVmZjNiNTExNDg4ZTRlNzRlZmRmNmU3Il0sWyJlODBmZWExNDQ0MWZiMzNhN2Q4YWRhYjk0NzVkN2ZhYjIwMTllZmZiNTE1NmE3OTJmMWExMTc3OGUzYzBkZjVkIiwiZWVkMWRlN2Y2MzhlMDA3NzFlODk3NjhjYTNjYTk0NDcyZDE1NWU4MGFmMzIyZWE5'@; put 'ZmNiNDI5MWI2YWM5ZWM3OCJdLFsiYTMwMTY5N2JkZmNkNzA0MzEzYmE0OGU1MWQ1Njc1NDNmMmExODIwMzFlZmQ2OTE1ZGRjMDdiYmNjNGUxNjA3MCIsIjczNzBmOTFjZmI2N2U0ZjUwODE4MDlmYTI1ZDQwZjliMTczNWRiZjdjMGExMWExMzBjMGQxYTA0MWUxNzdlYTEiXSxbIjkwYWQ4NWIz'@; put 'ODlkNmI5MzY0NjNmOWQwNTEyNjc4ZGUyMDhjYzMzMGIxMTMwN2ZmZmFiN2FjNjNlM2ZiMDRlZDQiLCJlNTA3YTM2MjBhMzgyNjFhZmZkY2JkOTQyNzIyMmI4MzlhZWZhYmUxNTgyODk0ZDk5MWQ0ZDQ4Y2I2ZWYxNTAiXSxbIjhmNjhiOWQyZjYzYjVmMzM5MjM5YzFhZDk4MWYxNjJlZTg4YzU2'@; put 'Nzg3MjNlYTMzNTFiN2I0NDRjOWVjNGMwZGEiLCI2NjJhOWYyZGJhMDYzOTg2ZGUxZDkwYzJiNmJlMjE1ZGJiZWEyY2ZlOTU1MTBiZmRmMjNjYmY3OTUwMWZmZjgyIl0sWyJlNGYzZmIwMTc2YWY4NWQ2NWZmOTlmZjkxOThjMzYwOTFmNDhlODY1MDM2ODFlM2U2Njg2ZmQ1MDUzMjMxZTExIiwi'@; put 'MWU2MzYzM2FkMGVmNGYxYzE2NjFhNmQwZWEwMmI3Mjg2Y2M3ZTc0ZWM5NTFkMWM5ODIyYzM4NTc2ZmViNzNiYyJdLFsiOGMwMGZhOWIxOGViZjMzMWViOTYxNTM3YTQ1YTQyNjZjNzAzNGYyZjBkNGUxZDA3MTZmYjZlYWUyMGVhZTI5ZSIsImVmYTQ3MjY3ZmVhNTIxYTFhOWRjMzQzYTM3MzZj'@; put 'OTc0YzJmYWRhZmE4MWUzNmM1NGU3ZDJhNGM2NjcwMjQxNGIiXSxbImU3YTI2Y2U2OWRkNDgyOWYzZTEwY2VjMGE5ZTk4ZWQzMTQzZDA4NGYzMDhiOTJjMDk5N2ZkZGZjNjBjYjNlNDEiLCIyYTc1OGUzMDBmYTc5ODRiNDcxYjAwNmExYWFmYmIxOGQwYTZiMmMwNDIwZTgzZTIwZThhOTQyMWNm'@; put 'MmNmZDUxIl0sWyJiNjQ1OWUwZWUzNjYyZWM4ZDIzNTQwYzIyM2JjYmRjNTcxY2JjYjk2N2Q3OTQyNGYzY2YyOWViM2RlNmI4MGVmIiwiNjdjODc2ZDA2ZjNlMDZkZTFkYWRmMTZlNTY2MWRiM2M0YjNhZTZkNDhlMzViMmZmMzBiZjBiNjFhNzFiYTQ1Il0sWyJkNjhhODBjODI4MGJiODQwNzkz'@; put 'MjM0YWExMThmMDYyMzFkNmYxZmM2N2U3M2M1YTVkZWRhMGY1YjQ5Njk0M2U4IiwiZGI4YmE5ZmZmNGI1ODZkMDBjNGIxZjkxNzdiMGUyOGI1YjBlN2I4Zjc4NDUyOTVhMjk0Yzg0MjY2YjEzMzEyMCJdLFsiMzI0YWVkN2RmNjVjODA0MjUyZGMwMjcwOTA3YTMwYjA5NjEyYWViOTczNDQ5Y2Vh'@; put 'NDA5NTk4MGZjMjhkM2Q1ZCIsIjY0OGEzNjU3NzRiNjFmMmZmMTMwYzBjMzVhZWMxZjRmMTkyMTNiMGM3ZTMzMjg0Mzk2NzIyNGFmOTZhYjdjODQiXSxbIjRkZjljMTQ5MTljZGU2MWY2ZDUxZGZkYmU1ZmVlNWRjZWVjNDE0M2JhOGQxY2E4ODhlOGJkMzczZmQwNTRjOTYiLCIzNWVjNTEwOTJk'@; put 'ODcyODA1MDk3NGMyM2ExZDg1ZDRiNWQ1MDZjZGMyODg0OTAxOTJlYmFjMDZjYWQxMGQ1ZCJdLFsiOWMzOTE5YTg0YTQ3NDg3MGZhZWQ4YTljMWNjNjYwMjE1MjM0ODkwNTRkN2YwMzA4Y2JmYzk5YzhhYzFmOThjZCIsImRkYjg0ZjBmNGE0ZGRkNTc1ODRmMDQ0YmYyNjBlNjQxOTA1MzI2Zjc2'@; put 'YzY0YzhlNmJlN2U1ZTAzZDRmYzU5OWQiXSxbIjYwNTcxNzBiMWRkMTJmZGY4ZGUwNWYyODFkOGUwNmJiOTFlMTQ5M2E4YjkxZDRjYzVhMjEzODIxMjBhOTU5ZTUiLCI5YTFhZjBiMjZhNmE0ODA3YWRkOWEyZGFmNzFkZjI2MjQ2NTE1MmJjM2VlMjRjNjVlODk5YmU5MzIzODVhMmE4Il0sWyJh'@; put 'NTc2ZGY4ZTIzYTA4NDExNDIxNDM5YTQ1MThkYTMxODgwY2VmMGZiYTdkNGRmMTJiMWE2OTczZWVjYjk0MjY2IiwiNDBhNmJmMjBlNzY2NDBiMmM5MmI5N2FmZTU4Y2Q4MmM0MzJlMTBhN2Y1MTRkOWYzZWU4YmUxMWFlMWIyOGVjOCJdLFsiNzc3OGE3OGMyOGRlYzNlMzBhMDVmZTk2MjlkZThj'@; put 'MzhiYjMwZDFmNWNmOWEzYTIwOGY3NjM4ODliZTU4YWQ3MSIsIjM0NjI2ZDlhYjVhNWIyMmZmNzA5OGUxMmYyZmY1ODAwODdiMzg0MTFmZjI0YWM1NjNiNTEzZmMxZmQ5ZjQzYWMiXSxbIjkyODk1NWVlNjM3YTg0NDYzNzI5ZmQzMGU3YWZkMmVkNWY5NjI3NGU1YWQ3ZTVjYjA5ZWRhOWMwNmQ5'@; put 'MDNhYyIsImMyNTYyMTAwM2QzZjQyYTgyN2I3OGExMzA5M2E5NWVlYWMzZDI2ZWZhOGE4ZDgzZmM1MTgwZTkzNWJjZDA5MWYiXSxbIjg1ZDBmZWYzZWM2ZGIxMDkzOTkwNjRmM2EwZTNiMjg1NTY0NWI0YTkwN2FkMzU0NTI3YWFlNzUxNjNkODI3NTEiLCIxZjAzNjQ4NDEzYTM4YzBiZTI5ZDQ5'@; put 'NmU1ODJjZjU2NjNlODc1MWU5Njg3NzMzMTU4MmMyMzdhMjRlYjFmOTYyIl0sWyJmZjJiMGRjZTk3ZWVjZTk3YzFjOWI2MDQxNzk4Yjg1ZGZkZmI2ZDg4ODJkYTIwMzA4ZjU0MDQ4MjQ1MjYwODdlIiwiNDkzZDEzZmVmNTI0YmExODhhZjRjNGRjNTRkMDc5MzZjN2I3ZWQ2ZmI5MGUyY2ViMmM5'@; put 'NTFlMDFmMGMyOTkwNyJdLFsiODI3ZmJiZTRiMWU4ODBlYTllZDJiMmU2MzAxYjIxMmI1N2YxZWUxNDhjZDZkZDI4NzgwZTVlMmNmODU2ZTI0MSIsImM2MGY5YzkyM2M3MjdiMGI3MWJlZjJjNjdkMWQxMjY4N2ZmN2E2MzE4NjkwMzE2NmQ2MDViNjhiYWVjMjkzZWMiXSxbImVhYTY0OWYyMWY1'@; put 'MWJkYmFlN2JlNGFlMzRjZTZlNTIxN2E1OGZkY2U3ZjQ3ZjlhYTdmM2I1OGZhMjEyMGUyYjMiLCJiZTMyNzllZDViYmJiMDNhYzY5YTgwZjg5ODc5YWE1YTAxYTZiOTY1ZjEzZjdlNTlkNDdhNTMwNWJhNWFkOTNkIl0sWyJlNGE0MmQ0M2M1Y2YxNjlkOTM5MWRmNmRlY2Y0MmVlNTQxYjZkOGYw'@; put 'YzlhMTM3NDAxZTIzNjMyZGRhMzRkMjRmIiwiNGQ5ZjkyZTcxNmQxYzczNTI2ZmM5OWNjZmI4YWQzNGNlODg2ZWVkZmE4ZDhlNGYxM2E3ZjcxMzFkZWJhOTQxNCJdLFsiMWVjODBmZWYzNjBjYmRkOTU0MTYwZmFkYWIzNTJiNmI5MmI1MzU3NmE4OGZlYTQ5NDcxNzNiOWQ0MzAwYmYxOSIsImFl'@; put 'ZWZlOTM3NTZiNTM0MGQyZjNhNDk1OGE3YWJiZjVlMDE0NmU3N2Y2Mjk1YTA3YjY3MWNkYzFjYzEwN2NlZmQiXSxbIjE0NmE3NzhjMDQ2NzBjMmY5MWIwMGFmNDY4MGRmYThiY2UzNDkwNzE3ZDU4YmE4ODlkZGI1OTI4MzY2NjQyYmUiLCJiMzE4ZTBlYzMzNTQwMjhhZGQ2Njk4MjdmOWQ0YjI4'@; put 'NzBhYWE5NzFkMmY3ZTVlZDFkMGIyOTc0ODNkODNlZmQwIl0sWyJmYTUwYzBmNjFkMjJlNWYwN2UzYWNlYmIxYWEwN2IxMjhkMDAxMjIwOWEyOGI5Nzc2ZDc2YTg3OTMxODBlZWY5IiwiNmI4NGM2OTIyMzk3ZWJhOWI3MmNkMjg3MjI4MWE2OGE1ZTY4MzI5M2E1N2EyMTNiMzhjZDhkN2QzZjRm'@; put 'MjgxMSJdLFsiZGExZDYxZDBjYTcyMWExMWIxYTViZjZiN2Q4OGU4NDIxYTI4OGFiNWQ1YmJhNTIyMGU1M2QzMmI1ZjA2N2VjMiIsIjgxNTdmNTVhN2M5OTMwNmM3OWMwNzY2MTYxYzkxZTI5NjZhNzM4OTlkMjc5YjQ4YTY1NWZiYTBmMWFkODM2ZjEiXSxbImE4ZTI4MmZmMGM5NzA2OTA3MjE1'@; put 'ZmY5OGU4ZmQ0MTY2MTUzMTFkZTA0NDZmMWUwNjJhNzNiMDYxMGQwNjRlMTMiLCI3Zjk3MzU1YjhkYjgxYzA5YWJmYjdmM2M1YjI1MTU4ODhiNjc5YTNlNTBkZDZiZDZjZWY3YzczMTExZjRjYzBjIl0sWyIxNzRhNTNiOWM5YTI4NTg3MmQzOWU1NmU2OTEzY2FiMTVkNTliMWZhNTEyNTA4YzAy'@; put 'MmYzODJkZTgzMTk0OTdjIiwiY2NjOWRjMzdhYmZjOWMxNjU3YjQxNTVmMmM0N2Y5ZTY2NDZiM2ExZDhjYjk4NTQzODNkYTEzYWMwNzlhZmE3MyJdLFsiOTU5Mzk2OTgxOTQzNzg1YzNkM2U1N2VkZjUwMThjZGJlMDM5ZTczMGU0OTE4YjNkODg0ZmRmZjA5NDc1YjdiYSIsIjJlN2U1NTI4ODhj'@; put 'MzMxZGQ4YmEwMzg2YTRiOWNkNjg0OWM2NTNmNjRjODcwOTM4NWU5YjhhYmY4NzUyNGYyZmQiXSxbImQyYTYzYTUwYWU0MDFlNTZkNjQ1YTExNTNiMTA5YThmY2NhMGE0M2Q1NjFmYmEyZGJiNTEzNDBjOWQ4MmIxNTEiLCJlODJkODZmYjY0NDNmY2I3NTY1YWVlNThiMjk0ODIyMGE3MGY3NTBh'@; put 'ZjQ4NGNhNTJkNDE0MjE3NGRjZjg5NDA1Il0sWyI2NDU4N2UyMzM1NDcxZWI4OTBlZTc4OTZkN2NmZGM4NjZiYWNiZGJkMzgzOTMxN2IzNDM2ZjliNDU2MTdlMDczIiwiZDk5ZmNkZDViZjY5MDJlMmFlOTZkZDY0NDdjMjk5YTE4NWI5MGEzOTEzM2FlYWIzNTgyOTllNWU5ZmFmNjU4OSJdLFsi'@; put 'ODQ4MWJkZTBlNGU0ZDg4NWIzYTU0NmQzZTU0OWRlMDQyZjBhYTZjZWEyNTBlN2ZkMzU4ZDZjODZkZDQ1ZTQ1OCIsIjM4ZWU3YjhjYmE1NDA0ZGQ4NGEyNWJmMzljZWNiMmNhOTAwYTc5YzQyYjI2MmU1NTZkNjRiMWI1OTc3OTA1N2UiXSxbIjEzNDY0YTU3YTc4MTAyYWE2MmI2OTc5YWU4MTdm'@; put 'NDYzN2ZmY2ZlZDNjNGIxY2UzMGJjZDYzMDNmNmNhZjY2NmIiLCI2OWJlMTU5MDA0NjE0NTgwZWY3ZTQzMzQ1M2NjYjBjYTQ4ZjMwMGE4MWQwOTQyZTEzZjQ5NWE5MDdmNmVjYzI3Il0sWyJiYzRhOWRmNWI3MTNmZTJlOWFlZjQzMGJjYzFkYzk3YTBjZDljY2VkZTJmMjg1ODhjYWRhM2EwZDJk'@; put 'ODNmMzY2IiwiZDNhODFjYTZlNzg1YzA2MzgzOTM3YWRmNGI3OThjYWE2ZThhOWZiZmE1NDdiMTZkNzU4ZDY2NjU4MWYzM2MxIl0sWyI4YzI4YTk3YmY4Mjk4YmMwZDIzZDhjNzQ5NDUyYTMyZTY5NGI2NWUzMGE5NDcyYTM5NTRhYjMwZmU1MzI0Y2FhIiwiNDBhMzA0NjNhMzMwNTE5MzM3OGZl'@; put 'ZGYzMWY3Y2MwZWI3YWU3ODRmMDQ1MWNiOTQ1OWU3MWRjNzNjYmVmOTQ4MiJdLFsiOGVhOTY2NjEzOTUyN2E4YzFkZDk0Y2U0ZjA3MWZkMjNjOGIzNTBjNWE0YmIzMzc0OGM0YmExMTFmYWNjYWUwIiwiNjIwZWZhYmJjOGVlMjc4MmUyNGU3YzBjZmI5NWM1ZDczNWI3ODNiZTljZjBmOGU5NTVh'@; put 'ZjM0YTMwZTYyYjk0NSJdLFsiZGQzNjI1ZmFlZjViYTA2MDc0NjY5NzE2YmJkMzc4OGQ4OWJkZGU4MTU5NTk5NjgwOTJmNzZjYzRlYjlhOTc4NyIsIjdhMTg4ZmEzNTIwZTMwZDQ2MWRhMjUwMTA0NTczMWNhOTQxNDYxOTgyODgzMzk1OTM3ZjY4ZDAwYzY0NGE1NzMiXSxbImY3MTBkNzlkOWVi'@; put 'OTYyMjk3ZTRmNjIzMmI0MGU4ZjdmZWIyYmM2MzgxNDYxNGQ2OTJjMTJkZTc1MjQwODIyMWUiLCJlYTk4ZTY3MjMyZDNiMzI5NWQzYjUzNTUzMjExNWNjYWM4NjEyYzcyMTg1MTYxNzUyNmFlNDdhOWM3N2JmYzgyIl1dfSxuYWY6e3duZDo3LHBvaW50czpbWyJmOTMwOGEwMTkyNThjMzEwNDkz'@; put 'NDRmODVmODlkNTIyOWI1MzFjODQ1ODM2Zjk5YjA4NjAxZjExM2JjZTAzNmY5IiwiMzg4ZjdiMGY2MzJkZTgxNDBmZTMzN2U2MmEzN2YzNTY2NTAwYTk5OTM0YzIyMzFiNmNiOWZkNzU4NGI4ZTY3MiJdLFsiMmY4YmRlNGQxYTA3MjA5MzU1YjRhNzI1MGE1YzUxMjhlODhiODRiZGRjNjE5YWI3'@; put 'Y2JhOGQ1NjliMjQwZWZlNCIsImQ4YWMyMjI2MzZlNWUzZDZkNGRiYTlkZGE2YzljNDI2Zjc4ODI3MWJhYjBkNjg0MGRjYTg3ZDNhYTZhYzYyZDYiXSxbIjVjYmRmMDY0NmU1ZGI0ZWFhMzk4ZjM2NWYyZWE3YTBlM2Q0MTliN2UwMzMwZTM5Y2U5MmJkZGVkY2FjNGY5YmMiLCI2YWViY2E0MGJh'@; put 'MjU1OTYwYTMxNzhkNmQ4NjFhNTRkYmE4MTNkMGI4MTNmZGU3YjVhNTA4MjYyODA4NzI2NGRhIl0sWyJhY2Q0ODRlMmYwYzdmNjUzMDlhZDE3OGE5ZjU1OWFiZGUwOTc5Njk3NGM1N2U3MTRjMzVmMTEwZGZjMjdjY2JlIiwiY2MzMzg5MjFiMGE3ZDlmZDY0MzgwOTcxNzYzYjYxZTlhZGQ4ODhh'@; put 'NDM3NWY4ZTBmMDVjYzI2MmFjNjRmOWMzNyJdLFsiNzc0YWU3Zjg1OGE5NDExZTVlZjQyNDZiNzBjNjVhYWM1NjQ5OTgwYmU1YzE3ODkxYmJlYzE3ODk1ZGEwMDhjYiIsImQ5ODRhMDMyZWI2YjVlMTkwMjQzZGQ1NmQ3YjdiMzY1MzcyZGIxZTJkZmY5ZDZhODMwMWQ3NGM5Yzk1M2M2MWIiXSxb'@; put 'ImYyODc3M2MyZDk3NTI4OGJjN2QxZDIwNWMzNzQ4NjUxYjA3NWZiYzY2MTBlNThjZGRlZWRkZjhmMTk0MDVhYTgiLCJhYjA5MDJlOGQ4ODBhODk3NTgyMTJlYjY1Y2RhZjQ3M2ExYTA2ZGE1MjFmYTkxZjI5YjVjYjUyZGIwM2VkODEiXSxbImQ3OTI0ZDRmN2Q0M2VhOTY1YTQ2NWFlMzA5NWZm'@; put 'NDExMzFlNTk0NmYzYzg1Zjc5ZTQ0YWRiY2Y4ZTI3ZTA4MGUiLCI1ODFlMjg3MmE4NmM3MmE2ODM4NDJlYzIyOGNjNmRlZmVhNDBhZjJiZDg5NmQzYTVjNTA0ZGM5ZmY2YTI2YjU4Il0sWyJkZWZkZWE0Y2RiNjc3NzUwYTQyMGZlZTgwN2VhY2YyMWViOTg5OGFlNzliOTc2ODc2NmU0ZmFhMDRh'@; put 'MmQ0YTM0IiwiNDIxMWFiMDY5NDYzNTE2OGU5OTdiMGVhZDJhOTNkYWVjZWQxZjRhMDRhOTVjMGY2Y2ZiMTk5ZjY5ZTU2ZWI3NyJdLFsiMmI0ZWEwYTc5N2E0NDNkMjkzZWY1Y2ZmNDQ0ZjQ5NzlmMDZhY2ZlYmQ3ZTg2ZDI3NzQ3NTY1NjEzODM4NWI2YyIsIjg1ZTg5YmMwMzc5NDVkOTNiMzQz'@; put 'MDgzYjVhMWM4NjEzMWEwMWY2MGM1MDI2OTc2M2I1NzBjODU0ZTVjMDliN2EiXSxbIjM1MmJiZjRhNGNkZDEyNTY0ZjkzZmEzMzJjZTMzMzMwMWQ5YWQ0MDI3MWY4MTA3MTgxMzQwYWVmMjViZTU5ZDUiLCIzMjFlYjQwNzUzNDhmNTM0ZDU5YzE4MjU5ZGRhM2UxZjRhMWIzYjJlNzFiMTAzOWM2'@; put 'N2JkM2Q4YmNmODE5OThjIl0sWyIyZmEyMTA0ZDZiMzhkMTFiMDIzMDAxMDU1OTg3OTEyNGU0MmFiOGRmZWZmNWZmMjlkYzljZGFkZDRlY2FjYzNmIiwiMmRlMTA2ODI5NWRkODY1YjY0NTY5MzM1YmQ1ZGQ4MDE4MWQ3MGVjZmM4ODI2NDg0MjNiYTc2YjUzMmI3ZDY3Il0sWyI5MjQ4Mjc5YjA5'@; put 'YjRkNjhkYWIyMWE5YjA2NmVkZGE4MzI2M2MzZDg0ZTA5NTcyZTI2OWNhMGNkN2Y1NDUzNzE0IiwiNzMwMTZmN2JmMjM0YWFkZTVkMWFhNzFiZGVhMmIxZmYzZmMwZGUyYTg4NzkxMmZmZTU0YTMyY2U5N2NiMzQwMiJdLFsiZGFlZDRmMmJlM2E4YmYyNzhlNzAxMzJmYjBiZWI3NTIyZjU3MGUx'@; put 'NDRiZjYxNWMwN2U5OTZkNDQzZGVlODcyOSIsImE2OWRjZTRhN2Q2Yzk4ZThkNGExYWNhODdlZjhkNzAwM2Y4M2MyMzBmM2FmYTcyNmFiNDBlNTIyOTBiZTFjNTUiXSxbImM0NGQxMmM3MDY1ZDgxMmU4YWNmMjhkN2NiYjE5ZjkwMTFlY2Q5ZTlmZGYyODFiMGU2YTNiNWU4N2QyMmU3ZGIiLCIy'@; put 'MTE5YTQ2MGNlMzI2Y2RjNzZjNDU5MjZjOTgyZmRhYzBlMTA2ZTg2MWVkZjYxYzVhMDM5MDYzZjBlMGU2NDgyIl0sWyI2YTI0NWJmNmRjNjk4NTA0Yzg5YTIwY2ZkZWQ2MDg1MzE1MmI2OTUzMzZjMjgwNjNiNjFjNjVjYmQyNjllNmI0IiwiZTAyMmNmNDJjMmJkNGE3MDhiM2Y1MTI2ZjE2YTI0'@; put 'YWQ4YjMzYmE0OGQwNDIzYjZlZmQ1ZTYzNDgxMDBkOGE4MiJdLFsiMTY5N2ZmYTZmZDlkZTYyN2MwNzdlM2QyZmU1NDEwODRjZTEzMzAwYjBiZWMxMTQ2Zjk1YWU1N2YwZDBiZDZhNSIsImI5YzM5OGYxODY4MDZmNWQyNzU2MTUwNmU0NTU3NDMzYTJjZjE1MDA5ZTQ5OGFlN2FkZWU5ZDYzZDAx'@; put 'YjIzOTYiXSxbIjYwNWJkYjAxOTk4MTcxOGI5ODZkMGYwN2U4MzRjYjBkOWRlYjgzNjBmZmI3ZjYxZGY5ODIzNDVlZjI3YTc0NzkiLCIyOTcyZDJkZTRmOGQyMDY4MWE3OGQ5M2VjOTZmZTIzYzI2YmZhZTg0ZmIxNGRiNDNiMDFlMWU5MDU2YjhjNDkiXSxbIjYyZDE0ZGFiNDE1MGJmNDk3NDAy'@; put 'ZmRjNDVhMjE1ZTEwZGNiMDFjMzU0OTU5YjEwY2ZlMzFjN2U5ZDg3ZmYzM2QiLCI4MGZjMDZiZDhjYzViMDEwOTgwODhhMTk1MGVlZDBkYjAxYWExMzI5NjdhYjQ3MjIzNWY1NjQyNDgzYjI1ZWFmIl0sWyI4MGM2MGFkMDA0MGYyN2RhZGU1YjRiMDZjNDA4ZTU2YjJjNTBlOWY1NmI5YjhiNDI1'@; put 'ZTU1NWMyZjg2MzA4YjZmIiwiMWMzODMwM2YxY2M1YzMwZjI2ZTY2YmFkN2ZlNzJmNzBhNjVlZWQ0Y2JlNzAyNGViMWFhMDFmNTY0MzBiZDU3YSJdLFsiN2E5Mzc1YWQ2MTY3YWQ1NGFhNzRjNjM0OGNjNTRkMzQ0Y2M1ZGM5NDg3ZDg0NzA0OWQ1ZWFiYjBmYTAzYzhmYiIsImQwZTNmYTllY2E4'@; put 'NzI2OTA5NTU5ZTBkNzkyNjkwNDZiZGM1OWVhMTBjNzBjZTJiMDJkNDk5ZWMyMjRkYzdmNyJdLFsiZDUyOGVjZDliNjk2YjU0YzkwN2E5ZWQwNDU0NDdhNzliYjQwOGVjMzliNjhkZjUwNGJiNTFmNDU5YmMzZmZjOSIsImVlY2Y0MTI1MzEzNmU1Zjk5OTY2ZjIxODgxZmQ2NTZlYmM0MzQ1NDA1'@; put 'YzUyMGRiYzA2MzQ2NWI1MjE0MDk5MzMiXSxbIjQ5MzcwYTRiNWY0MzQxMmVhMjVmNTE0ZThlY2RhZDA1MjY2MTE1ZTRhN2VjYjEzODcyMzE4MDhmOGI0NTk2MyIsIjc1OGYzZjQxYWZkNmVkNDI4YjMwODFiMDUxMmZkNjJhNTRjM2YzYWZiYjViNjc2NGI2NTMwNTJhMTI5NDljOWEiXSxbIjc3'@; put 'ZjIzMDkzNmVlODhjYmJkNzNkZjkzMGQ2NDcwMmVmODgxZDgxMWUwZTE0OThlMmYxYzEzZWIxZmMzNDVkNzQiLCI5NThlZjQyYTc4ODZiNjQwMGEwODI2NmU5YmExYjM3ODk2Yzk1MzMwZDk3MDc3Y2JiZThlYjNjNzY3MWM2MGQ2Il0sWyJmMmRhYzk5MWNjNGNlNGI5ZWE0NDg4N2U1YzdjMGJj'@; put 'ZTU4YzgwMDc0YWI5ZDRkYmFlYjI4NTMxYjc3MzlmNTMwIiwiZTBkZWRjOWIzYjJmOGRhZDRkYTFmMzJkZWMyNTMxZGY5ZWI1ZmJlYjA1OThlNGZkMWExMTdkYmE3MDNhM2MzNyJdLFsiNDYzYjNkOWY2NjI2MjFmYjFiNGJlOGZiYmUyNTIwMTI1YTIxNmNkZmM5ZGFlM2RlYmNiYTQ4NTBjNjkw'@; put 'ZDQ1YiIsIjVlZDQzMGQ3OGMyOTZjMzU0MzExNDMwNmRkODYyMmQ3YzYyMmUyN2M5NzBhMWRlMzFjYjM3N2IwMWFmNzMwN2UiXSxbImYxNmY4MDQyNDRlNDZlMmEwOTIzMmQ0YWZmM2I1OTk3NmI5OGZhYzE0MzI4YTJkMWEzMjQ5NmI0OTk5OGYyNDciLCJjZWRhYmQ5YjgyMjAzZjdlMTNkMjA2'@; put 'ZmNkZjRlMzNkOTJhNmM1M2MyNmU1Y2NlMjZkNjU3OTk2MmM0ZTMxZGY2Il0sWyJjYWY3NTQyNzJkYzg0NTYzYjAzNTJiN2ExNDMxMWFmNTVkMjQ1MzE1YWNlMjdjNjUzNjllMTVmNzE1MWQ0MWQxIiwiY2I0NzQ2NjBlZjM1ZjVmMmE0MWI2NDNmYTVlNDYwNTc1ZjRmYTliNzk2MjIzMmE1YzMy'@; put 'ZjkwODMxOGEwNDQ3NiJdLFsiMjYwMGNhNGIyODJjYjk4NmY4NWQwZjE3MDk5NzlkOGI0NGEwOWMwN2NiODZkN2MxMjQ0OTdiYzg2ZjA4MjEyMCIsIjQxMTliODg3NTNjMTViZDZhNjkzYjAzZmNkZGJiNDVkNWFjNmJlNzRhYjVmMGVmNDRiMGJlOTQ3NWE3ZTRiNDAiXSxbIjc2MzVjYTcyZDdl'@; put 'ODQzMmMzMzhlYzUzY2QxMjIyMGJjMDFjNDg2ODVlMjRmN2RjOGM2MDJhNzc0Njk5OGU0MzUiLCI5MWI2NDk2MDk0ODlkNjEzZDFkNWU1OTBmNzhlNmQ3NGVjZmMwNjFkNTcwNDhiYWQ5ZTc2ZjMwMmM1YjljNjEiXSxbIjc1NGUzMjM5ZjMyNTU3MGNkYmJmNGE4N2RlZWU4YTY2YjdmMmIzMzQ3'@; put 'OWQ0NjhmYmMxYTUwNzQzYmY1NmNjMTgiLCI2NzNmYjg2ZTViZGEzMGZiM2NkMGVkMzA0ZWE0OWEwMjNlZTMzZDAxOTdhNjk1ZDBjNWQ5ODA5M2M1MzY2ODMiXSxbImUzZTZiZDEwNzFhMWU5NmFmZjU3ODU5YzgyZDU3MGYwMzMwODAwNjYxZDFjOTUyZjlmZTI2OTQ2OTFkOWI5ZTgiLCI1OWM5'@; put 'ZTBiYmEzOTRlNzZmNDBjMGFhNTgzNzlhM2NiNmE1YTIyODM5OTNlOTBjNDE2NzAwMmFmNDkyMGUzN2Y1Il0sWyIxODZiNDgzZDA1NmEwMzM4MjZhZTczZDg4ZjczMjk4NWM0Y2NiMWYzMmJhMzVmNGI0Y2M0N2ZkY2YwNGFhNmViIiwiM2I5NTJkMzJjNjdjZjc3ZTJlMTc0NDZlMjA0MTgwYWIy'@; put 'MWZiODA5MDg5NTEzOGI0YTRhNzk3Zjg2ZTgwODg4YiJdLFsiZGY5ZDcwYTZiOTg3NmNlNTQ0Yzk4NTYxZjRiZTRmNzI1NDQyZTZkMmI3MzdkOWM5MWE4MzIxNzI0Y2UwOTYzZiIsIjU1ZWIyZGFmZDg0ZDZjY2Q1Zjg2MmI3ODVkYzM5ZDRhYjE1NzIyMjcyMGVmOWRhMjE3YjhjNDVjZjJiYTI0'@; put 'MTciXSxbIjVlZGQ1Y2MyM2M1MWU4N2E0OTdjYTgxNWQ1ZGNlMGY4YWI1MjU1NGY4NDllZDg5OTVkZTY0YzVmMzRjZTcxNDMiLCJlZmFlOWM4ZGJjMTQxMzA2NjFlOGNlYzAzMGM4OWFkMGMxM2M2NmMwZDE3YTI5MDVjZGM3MDZhYjczOTlhODY4Il0sWyIyOTA3OThjMmI2NDc2ODMwZGExMmZl'@; put 'MDIyODdlOWU3NzdhYTNmYmExYzM1NWIxN2E3MjJkMzYyZjg0NjE0ZmJhIiwiZTM4ZGE3NmRjZDQ0MDYyMTk4OGQwMGJjZjc5YWYyNWQ1YjI5YzA5NGRiMmEyMzE0NmQwMDNhZmQ0MTk0M2U3YSJdLFsiYWYzYzQyM2E5NWQ5ZjViMzA1NDc1NGVmYTE1MGFjMzljZDI5NTUyZmUzNjAyNTczNjJk'@; put 'ZmRlY2VmNDA1M2I0NSIsImY5OGEzZmQ4MzFlYjJiNzQ5YTkzYjBlNmYzNWNmYjQwYzhjZDVhYTY2N2ExNTU4MWJjMmZlZGVkNDk4ZmQ5YzYiXSxbIjc2NmRiYjI0ZDEzNGU3NDVjY2NhYTI4Yzk5YmYyNzQ5MDZiYjY2YjI2ZGNmOThkZjhkMmZlZDUwZDg4NDI0OWEiLCI3NDRiMTE1MmVhY2Jl'@; put 'NWUzOGRjYzg4Nzk4MGRhMzhiODk3NTg0YTY1ZmEwNmNlZGQyYzkyNGY5N2NiYWM1OTk2Il0sWyI1OWRiZjQ2ZjhjOTQ3NTliYTIxMjc3YzMzNzg0ZjQxNjQ1ZjdiNDRmNmM1OTZhNThjZTkyZTY2NjE5MWFiZTNlIiwiYzUzNGFkNDQxNzVmYmMzMDBmNGVhNmNlNjQ4MzA5YTA0MmNlNzM5YTc5'@; put 'MTk3OThjZDg1ZTIxNmM0YTMwN2Y2ZSJdLFsiZjEzYWRhOTUxMDNjNDUzNzMwNWU2OTFlNzRlOWE0YThkZDY0N2U3MTFhOTVlNzNjYjYyZGM2MDE4Y2ZkODdiOCIsImUxMzgxN2I0NGVlMTRkZTY2M2JmNGJjODA4MzQxZjMyNjk0OWUyMWE2YTc1YzI1NzA3Nzg0MTliZGFmNTczM2QiXSxbIjc3'@; put 'NTRiNGZhMGU4YWNlZDA2ZDQxNjdhMmM1OWNjYTRjZGExODY5YzA2ZWJhZGZiNjQ4ODU1MDAxNWE4ODUyMmMiLCIzMGU5M2U4NjRlNjY5ZDgyMjI0Yjk2N2MzMDIwYjhmYThkMWU0ZTM1MGI2Y2JjYzUzN2E0OGI1Nzg0MTE2M2EyIl0sWyI5NDhkY2FkZjU5OTBlMDQ4YWEzODc0ZDQ2YWJlZjlk'@; put 'NzAxODU4Zjk1ZGU4MDQxZDJhNjgyOGM5OWUyMjYyNTE5IiwiZTQ5MWE0MjUzN2Y2ZTU5N2Q1ZDI4YTMyMjRiMWJjMjVkZjkxNTRlZmJkMmVmMWQyY2JiYTJjYWU1MzQ3ZDU3ZSJdLFsiNzk2MjQxNDQ1MGM3NmMxNjg5YzdiNDhmODIwMmVjMzdmYjIyNGNmNWFjMGJmYTE1NzAzMjhhOGEzZDdj'@; put 'NzdhYiIsIjEwMGI2MTBlYzRmZmI0NzYwZDVjMWZjMTMzZWY2ZjZiMTI1MDdhMDUxZjA0YWM1NzYwYWZhNWIyOWRiODM0MzciXSxbIjM1MTQwODc4MzQ5NjRiNTRiMTViMTYwNjQ0ZDkxNTQ4NWExNjk3NzIyNWI4ODQ3YmIwZGQwODUxMzdlYzQ3Y2EiLCJlZjBhZmJiMjA1NjIwNTQ0OGUxNjUy'@; put 'YzQ4ZTgxMjdmYzYwMzllNzdjMTVjMjM3OGI3ZTdkMTVhMGRlMjkzMzExIl0sWyJkM2NjMzBhZDZiNDgzZTRiYzc5Y2UyYzlkZDhiYzU0OTkzZTk0N2ViOGRmNzg3YjQ0Mjk0M2QzZjdiNTI3ZWFmIiwiOGIzNzhhMjJkODI3Mjc4ZDg5YzVlOWJlOGY5NTA4YWUzYzJhZDQ2MjkwMzU4NjMwYWZi'@; put 'MzRkYjA0ZWVkZTBhNCJdLFsiMTYyNGQ4NDc4MDczMjg2MGNlMWM3OGZjYmZlZmUwOGIyYjI5ODIzZGI5MTNmNjQ5Mzk3NWJhMGZmNDg0NzYxMCIsIjY4NjUxY2Y5YjZkYTkwM2UwOTE0NDQ4YzZjZDlkNGNhODk2ODc4ZjUyODJiZTRjOGNjMDZlMmE0MDQwNzg1NzUiXSxbIjczM2NlODBkYTk1'@; put 'NWE4YTI2OTAyYzk1NjMzZTYyYTk4NTE5MjQ3NGI1YWYyMDdkYTZkZjdiNGZkNWZjNjFjZDQiLCJmNTQzNWEyYmQyYmFkZjdkNDg1YTRkOGI4ZGI5ZmNjZTNlMWVmOGUwMjAxZTQ1NzhjNTQ2NzNiYzFkYzVlYTFkIl0sWyIxNWQ5NDQxMjU0OTQ1MDY0Y2YxYTFjMzNiYmQzYjQ5Zjg5NjZjNTA5'@; put 'MjE3MWU2OTllZjI1OGRmYWI4MWMwNDVjIiwiZDU2ZWIzMGI2OTQ2M2U3MjM0ZjUxMzdiNzNiODQxNzc0MzQ4MDBiYWNlYmZjNjg1ZmMzN2JiZTllZmU0MDcwZCJdLFsiYTFkMGZjZjJlYzlkZTY3NWI2MTIxMzZlNWNlNzBkMjcxYzIxNDE3YzlkMmI4YWFhYWMxMzg1OTlkMDcxNzk0MCIsImVk'@; put 'ZDc3ZjUwYmNiNWEzY2FiMmU5MDczNzMwOTY2N2YyNjQxNDYyYTU0MDcwZjNkNTE5MjEyZDM5YzE5N2E2MjkiXSxbImUyMmZiZTE1YzBhZjhjY2M1NzgwYzA3MzVmODRkYmU5YTc5MGJhZGVlODI0NWMwNmM3Y2EzNzMzMWNiMzY5ODAiLCJhODU1YmFiYWQ1Y2Q2MGM4OGI0MzBhNjlmNTNhMWE3'@; put 'YTM4Mjg5MTU0OTY0Nzk5YmU0M2QwNmQ3N2QzMWRhMDYiXSxbIjMxMTA5MWRkOTg2MGU4ZTIwZWUxMzQ3M2MxMTU1ZjVmNjk2MzVlMzk0NzA0ZWFhNzQwMDk0NTIyNDZjZmE5YjMiLCI2NmRiNjU2Zjg3ZDFmMDRmZmZkMWYwNDc4OGMwNjgzMDg3MWVjNWE2NGZlZWU2ODViZDgwZjBiMTI4NmQ4'@; put 'Mzc0Il0sWyIzNGMxZmQwNGQzMDFiZTg5YjMxYzA0NDJkM2U2YWMyNDg4MzkyOGI0NWE5MzQwNzgxODY3ZDQyMzJlYzJkYmRmIiwiOTQxNDY4NWU5N2IxYjU5NTRiZDQ2ZjczMDE3NDEzNmQ1N2YxY2VlYjQ4NzQ0M2RjNTMyMTg1N2JhNzNhYmVlIl0sWyJmMjE5ZWE1ZDZiNTQ3MDFjMWMxNGRl'@; put 'NWI1NTdlYjQyYThkMTNmM2FiYmNkMDhhZmZjYzJhNWU2YjA0OWI4ZDYzIiwiNGNiOTU5NTdlODNkNDBiMGY3M2FmNDU0NGNjY2Y2YjFmNGIwOGQzYzA3YjI3ZmI4ZDhjMjk2MmE0MDA3NjZkMSJdLFsiZDdiODc0MGY3NGE4ZmJhYWIxZjY4M2RiOGY0NWRlMjY1NDNhNTQ5MGJjYTYyNzA4NzIz'@; put 'NjkxMjQ2OWEwYjQ0OCIsImZhNzc5NjgxMjhkOWM5MmVlMTAxMGYzMzdhZDQ3MTdlZmYxNWRiNWVkM2MwNDliMzQxMWUwMzE1ZWFhNDU5M2IiXSxbIjMyZDMxYzIyMmY4ZjZmMGVmODZmN2M5OGQzYTMzMzVlYWQ1YmNkMzJhYmRkOTQyODlmZTRkMzA5MWFhODI0YmYiLCI1ZjMwMzJmNTg5MjE1'@; put 'NmUzOWNjZDNkNzkxNWI5ZTFkYTJlNmRhYzllNmYyNmU5NjExMThkMTRiODQ2MmUxNjYxIl0sWyI3NDYxZjM3MTkxNGFiMzI2NzEwNDVhMTU1ZDk4MzFlYTg3OTNkNzdjZDU5NTkyYzQzNDBmODZjYmMxODM0N2I1IiwiOGVjMGJhMjM4Yjk2YmVjMGNiZGRkY2FlMGFhNDQyNTQyZWVlMWZmNTBj'@; put 'OTg2ZWE2YjM5ODQ3YjNjYzA5MmZmNiJdLFsiZWUwNzlhZGIxZGYxODYwMDc0MzU2YTI1YWEzODIwNmE2ZDcxNmIyYzNlNjc0NTNkMjg3Njk4YmFkN2IyYjJkNiIsIjhkYzI0MTJhYWZlM2JlNWM0YzVmMzdlMGVjYzVmOWY2YTQ0Njk4OWFmMDRjNGUyNWViYWFjNDc5ZWMxYzhjMWUiXSxbIjE2'@; put 'ZWM5M2U0NDdlYzgzZjA0NjdiMTgzMDJlZTYyMGY3ZTY1ZGUzMzE4NzRjOWRjNzJiZmQ4NjE2YmE5ZGE2YjUiLCI1ZTQ2MzExNTBlNjJmYjQwZDBlOGMyYTdjYTU4MDRhMzlkNTgxODZhNTBlNDk3MTM5NjI2Nzc4ZTI1YjA2NzRkIl0sWyJlYWE1Zjk4MGMyNDVmNmYwMzg5NzgyOTBhZmE3MGI2'@; put 'YmQ4ODU1ODk3Zjk4YjZhYTQ4NWI5NjA2NWQ1MzdiZDk5IiwiZjY1ZjVkM2UyOTJjMmUwODE5YTUyODM5MWM5OTQ2MjRkNzg0ODY5ZDdlNmVhNjdmYjE4MDQxMDI0ZWRjMDdkYyJdLFsiNzhjOTQwNzU0NGFjMTMyNjkyZWUxOTEwYTAyNDM5OTU4YWUwNDg3NzE1MTM0MmVhOTZjNGI2YjM1YTQ5'@; put 'ZjUxIiwiZjNlMDMxOTE2OWViOWI4NWQ1NDA0Nzk1NTM5YTVlNjhmYTFmYmQ1ODNjMDY0ZDI0NjJiNjc1ZjE5NGEzZGRiNCJdLFsiNDk0ZjRiZTIxOWExYTc3MDE2ZGNkODM4NDMxYWVhMDAwMWNkYzhhZTdhNmZjNjg4NzI2NTc4ZDk3MDI4NTdhNSIsIjQyMjQyYTk2OTI4M2E1ZjMzOWJhN2Yw'@; put 'NzVlMzZiYTJhZjkyNWNlMzBkNzY3ZWQ2ZTU1ZjRiMDMxODgwZDU2MmMiXSxbImE1OThhODAzMGRhNmQ4NmM2YmM3ZjJmNTE0NGVhNTQ5ZDI4MjExZWE1OGZhYTcwZWJmNGMxZTY2NWMxZmU5YjUiLCIyMDRiNWQ2Zjg0ODIyYzMwN2U0YjRhNzE0MDczN2FlYzIzZmM2M2I2NWIzNWY4NmExMDAy'@; put 'NmRiZDJkODY0ZTZiIl0sWyJjNDE5MTYzNjVhYmIyYjVkMDkxOTJmNWYyZGJlYWZlYzIwOGYwMjBmMTI1NzBhMTg0ZGJhZGMzZTU4NTk1OTk3IiwiNGYxNDM1MWQwMDg3ZWZhNDlkMjQ1YjMyODk4NDk4OWQ1Y2FmOTQ1MGYzNGJmYzBlZDE2ZTk2YjU4ZmE5OTEzIl0sWyI4NDFkNjA2M2E1ODZm'@; put 'YTQ3NWE3MjQ2MDRkYTAzYmM1YjkyYTJlMGQyZTBhMzZhY2ZlNGM3M2E1NTE0NzQyODgxIiwiNzM4NjdmNTljMDY1OWU4MTkwNGY5YTFjNzU0MzY5OGU2MjU2MmQ2NzQ0YzE2OWNlN2EzNmRlMDFhOGQ2MTU0Il0sWyI1ZTk1YmIzOTlhNjk3MWQzNzYwMjY5NDdmODliZGUyZjI4MmIzMzgxMDky'@; put 'OGJlNGRlZDExMmFjNGQ3MGUyMGQ1IiwiMzlmMjNmMzY2ODA5MDg1YmVlYmZjNzExODEzMTM3NzVhOTljOWFlZDdkOGJhMzhiMTYxMzg0Yzc0NjAxMjg2NSJdLFsiMzZlNDY0MWE1Mzk0OGZkNDc2YzM5ZjhhOTlmZDk3NGU1ZWMwNzU2NGI1MzE1ZDhiZjk5NDcxYmNhMGVmMmY2NiIsImQyNDI0'@; put 'YjFiMWFiZTRlYjgxNjQyMjdiMDg1YzlhYTk0NTZlYTEzNDkzZmQ1NjNlMDZmZDUxY2Y1Njk0Yzc4ZmMiXSxbIjMzNjU4MWVhN2JmYmJiMjkwYzE5MWEyZjUwN2E0MWNmNTY0Mzg0MjE3MGU5MTRmYWVhYjI3YzJjNTc5ZjcyNiIsImVhZDEyMTY4NTk1ZmUxYmU5OTI1MjEyOWI2ZTU2YjMzOTFm'@; put 'N2FiMTQxMGNkMWUwZWYzZGNkY2FiZDJmZGEyMjQiXSxbIjhhYjg5ODE2ZGFkZmQ2YjZhMWYyNjM0ZmNmMDBlYzg0MDM3ODEwMjVlZDY4OTBjNDg0OTc0MjcwNmJkNDNlZGUiLCI2ZmRjZWYwOWYyZjZkMGEwNDRlNjU0YWVmNjI0MTM2ZjUwM2Q0NTljM2U4OTg0NTg1OGE0N2E5MTI5Y2RkMjRl'@; put 'Il0sWyIxZTMzZjFhNzQ2YzljNTc3ODEzMzM0NGQ5Mjk5ZmNhYTIwYjA5MzhlOGFjZmYyNTQ0YmI0MDI4NGI4YzVmYjk0IiwiNjA2NjAyNTdkZDExYjNhYTljOGVkNjE4ZDI0ZWRmZjIzMDZkMzIwZjFkMDMwMTBlMzNhN2QyMDU3ZjNiM2I2Il0sWyI4NWI3YzFkY2IzY2VjMWI3ZWU3ZjMwZGVk'@; put 'NzlkZDIwYTBlZDFmNGNjMThjYmNmY2ZhNDEwMzYxZmQ4ZjA4ZjMxIiwiM2Q5OGE5Y2RkMDI2ZGQ0M2YzOTA0OGYyNWE4ODQ3ZjRmY2FmYWQxODk1ZDdhNjMzYzZmZWQzYzM1ZTk5OTUxMSJdLFsiMjlkZjlmYmQ4ZDllNDY1MDkyNzVmNGIxMjVkNmQ0NWQ3ZmJlOWEzYjg3OGE3YWY4NzJhMjgw'@; put 'MDY2MWFjNWY1MSIsImI0YzRmZTk5Yzc3NWE2MDZlMmQ4ODYyMTc5MTM5ZmZkYTYxZGM4NjFjMDE5ZTU1Y2QyODc2ZWIyYTI3ZDg0YiJdLFsiYTBiMWNhZTA2YjBhODQ3YTNmZWE2ZTY3MWFhZjhhZGZkZmU1OGNhMmY3NjgxMDVjODA4MmIyZTQ0OWZjZTI1MiIsImFlNDM0MTAyZWRkZTA5NThl'@; put 'YzRiMTlkOTE3YTZhMjhlNmI3MmRhMTgzNGFmZjBlNjUwZjA0OTUwM2EyOTZjZjIiXSxbIjRlOGNlYWZiOWIzZTlhMTM2ZGM3ZmY2N2U4NDAyOTViNDk5ZGZiM2IyMTMzZTRiYTExM2YyZTRjMGUxMjFlNSIsImNmMjE3NDExOGM4YjZkN2E0YjQ4ZjZkNTM0Y2U1Yzc5NDIyYzA4NmE2MzQ2MDUw'@; put 'MmI4MjdjZTYyYTMyNjY4M2MiXSxbImQyNGE0NGUwNDdlMTliNmY1YWZiODFjN2NhMmY2OTA4MGE1MDc2Njg5YTAxMDkxOWY0MjcyNWMyYjc4OWEzM2IiLCI2ZmI4ZDU1OTFiNDY2ZjhmYzYzZGI1MGYxYzBmMWM2OTAxM2Y5OTY4ODdiODI0NGQyY2RlYzQxN2FmZWE4ZmEzIl0sWyJlYTAxNjA2'@; put 'YTdhNmM5Y2RkMjQ5ZmRmY2ZhY2I5OTU4NDAwMWVkZDI4YWJiYWI3N2I1MTA0ZTk4ZThlM2IzNWQ0IiwiMzIyYWY0OTA4YzczMTJiMGNmYmZlMzY5ZjdhN2IzY2RiN2Q0NDk0YmMyODIzNzAwY2ZkNjUyMTg4YTNlYTk4ZCJdLFsiYWY4YWRkYmYyYjY2MWM4YTZjNjMyODY1NWViOTY2NTEyNTIw'@; put 'MDdkOGM1ZWEzMWJlNGFkMTk2ZGU4Y2UyMTMxZiIsIjY3NDllNjdjMDI5Yjg1ZjUyYTAzNGVhZmQwOTY4MzZiMjUyMDgxODY4MGUyNmFjOGYzZGZiY2RiNzE3NDk3MDAiXSxbImUzYWUxOTc0NTY2Y2EwNmNjNTE2ZDQ3ZTBmYjE2NWE2NzRhM2RhYmNmY2ExNWU3MjJmMGUzNDUwZjQ1ODg5Iiwi'@; put 'MmFlYWJlN2U0NTMxNTEwMTE2MjE3ZjA3YmY0ZDA3MzAwZGU5N2U0ODc0ZjgxZjUzMzQyMGE3MmVlYjBiZDZhNCJdLFsiNTkxZWUzNTUzMTNkOTk3MjFjZjY5OTNmZmVkMWUzZTMwMTk5M2ZmM2VkMjU4ODAyMDc1ZWE4Y2VkMzk3ZTI0NiIsImIwZWE1NThhMTEzYzMwYmVhNjBmYzQ3NzU0NjBj'@; put 'NzkwMWZmMGIwNTNkMjVjYTJiZGVlZTk4ZjFhNGJlNWQxOTYiXSxbIjExMzk2ZDU1ZmRhNTRjNDlmMTlhYTk3MzE4ZDhkYTYxZmE4NTg0ZTQ3YjA4NDk0NTA3N2NmMDMyNTViNTI5ODQiLCI5OThjNzRhOGNkNDVhYzAxMjg5ZDU4MzNhN2JlYjQ3NDRmZjUzNmIwMWIyNTdiZTRjNTc2N2JlYTkz'@; put 'ZWE1N2E0Il0sWyIzYzVkMmExYmEzOWM1YTE3OTAwMDA3MzhjOWUwYzQwYjhkY2RmZDU0Njg3NTRiNjQwNTU0MDE1N2UwMTdhYTdhIiwiYjIyODQyNzk5OTVhMzRlMmY5ZDRkZTczOTZmYzE4YjgwZjliOGI5ZmRkMjcwZjY2NjFmNzljYTRjODFiZDI1NyJdLFsiY2M4NzA0YjhhNjBhMGRlZmEz'@; put 'YTk5YTcyOTlmMmU5YzNmYmMzOTVhZmIwNGFjMDc4NDI1ZWY4YTE3OTNjYzAzMCIsImJkZDQ2MDM5ZmVlZDE3ODgxZDFlMDg2MmRiMzQ3ZjhjZjM5NWI3NGZjNGJjZGM0ZTk0MGI3NGUzYWMxZjFiMTMiXSxbImM1MzNlNGY3ZWE4NTU1YWFjZDk3NzdhYzVjYWQyOWI5N2RkNGRlZmNjYzUzZWU3'@; put 'ZWEyMDQxMTliMjg4OWIxOTciLCI2ZjBhMjU2YmM1ZWZkZjQyOWEyZmI2MjQyZjFhNDNhMmQ5YjkyNWJiNGE0YjNhMjZiYjhlMGY0NWViNTk2MDk2Il0sWyJjMTRmOGYyY2NiMjdkNmYxMDlmNmQwOGQwM2NjOTZhNjliYThjMzRlZWMwN2JiY2Y1NjZkNDhlMzNkYTY1OTMiLCJjMzU5ZDY5MjNi'@; put 'YjM5OGY3ZmQ0NDczZTE2ZmUxYzI4NDc1Yjc0MGRkMDk4MDc1ZTZjMGU4NjQ5MTEzZGMzYTM4Il0sWyJhNmNiYzMwNDZiYzZhNDUwYmFjMjQ3ODlmYTE3MTE1YTRjOTczOWVkNzVmOGYyMWNlNDQxZjcyZTBiOTBlNmVmIiwiMjFhZTdmNDY4MGU4ODliYjEzMDYxOWUyYzBmOTVhMzYwY2ViNTcz'@; put 'YzcwNjAzMTM5ODYyYWZkNjE3ZmE5YjlmIl0sWyIzNDdkNmQ5YTAyYzQ4OTI3ZWJmYjg2YzEzNTliMWNhZjEzMGEzYzAyNjdkMTFjZTYzNDRiMzlmOTlkNDNjYzM4IiwiNjBlYTdmNjFhMzUzNTI0ZDFjOTg3ZjZlY2VjOTJmMDg2ZDU2NWFiNjg3ODcwY2IxMjY4OWZmMWUzMWM3NDQ0OCJdLFsi'@; put 'ZGE2NTQ1ZDIxODFkYjhkOTgzZjdkY2IzNzVlZjU4NjZkNDdjNjdiMWJmMzFjOGNmODU1ZWY3NDM3YjcyNjU2YSIsIjQ5Yjk2NzE1YWI2ODc4YTc5ZTc4ZjA3Y2U1NjgwYzVkNjY3MzA1MWI0OTM1YmQ4OTdmZWE4MjRiNzdkYzIwOGEiXSxbImM0MDc0N2NjOWQwMTJjYjFhMTNiODE0ODMwOWM2'@; put 'ZGU3ZWMyNWQ2OTQ1ZDY1NzE0NmI5ZDU5OTRiOGZlYjExMTEiLCI1Y2E1NjA3NTNiZTJhMTJmYzZkZTZjYWYyY2I0ODk1NjVkYjkzNjE1NmI5NTE0ZTFiYjVlODMwMzdlMGZhMmQ0Il0sWyI0ZTQyYzhlYzgyYzk5Nzk4Y2NmM2E2MTBiZTg3MGU3ODMzOGM3ZjcxMzM0OGJkMzRjODIwM2VmNDAz'@; put 'N2YzNTAyIiwiNzU3MWQ3NGVlNWUwZmI5MmE3YThiMzNhMDc3ODMzNDFhNTQ5MjE0NGNjNTRiY2M0MGE5NDQ3MzY5MzYwNjQzNyJdLFsiMzc3NWFiNzA4OWJjNmFmODIzYWJhMmUxYWY3MGIyMzZkMjUxY2FkYjBjODY3NDMyODc1MjJhMWIzYjBkZWRlYSIsImJlNTJkMTA3YmNmYTA5ZDhiY2I5'@; put 'NzM2YTgyOGNmYTdmYWM4ZGIxN2JmN2E3NmEyYzQyYWQ5NjE0MDkwMThjZjciXSxbImNlZTMxY2JmN2UzNGVjMzc5ZDk0ZmI4MTRkM2Q3NzVhZDk1NDU5NWQxMzE0YmE4ODQ2OTU5ZTNlODJmNzRlMjYiLCI4ZmQ2NGExNGMwNmI1ODljMjZiOTQ3YWUyYmNmNmJmYTAxNDllZjBiZTE0ZWQ0ZDgw'@; put 'ZjQ0OGEwMWM0M2IxYzZkIl0sWyJiNGY5ZWFlYTA5YjY5MTc2MTlmNmVhNmE0ZWI1NDY0ZWZkZGI1OGZkNDViMWViZWZjZGMxYTAxZDA4YjQ3OTg2IiwiMzllNWM5OTI1YjVhNTRiMDc0MzNhNGYxOGM2MTcyNmY4YmIxMzFjMDEyY2E1NDJlYjI0YThhYzA3MjAwNjgyYSJdLFsiZDQyNjNkZmMz'@; put 'ZDJkZjkyM2EwMTc5YTQ4OTY2ZDMwY2U4NGUyNTE1YWZjM2RjY2MxYjc3OTA3NzkyZWJjYzYwZSIsIjYyZGZhZjA3YTBmNzhmZWIzMGUzMGQ2Mjk1ODUzY2UxODllMTI3NzYwYWQ2Y2Y3ZmFlMTY0ZTEyMmEyMDhkNTQiXSxbIjQ4NDU3NTI0ODIwZmE2NWE0ZjhkMzVlYjY5MzA4NTdjMDAzMmFj'@; put 'YzBhNGEyZGU0MjIyMzNlZWRhODk3NjEyYzQiLCIyNWE3NDhhYjM2Nzk3OWQ5ODczM2MzOGExZmExYzJlN2RjNmNjMDdkYjJkNjBhOWFlN2E3NmFhYTQ5YmQwZjc3Il0sWyJkZmVlZWYxODgxMTAxZjJjYjExNjQ0ZjNhMmFmZGZjMjA0NWUxOTkxOTE1MjkyM2YzNjdhMTc2N2MxMWNjZWRhIiwi'@; put 'ZWNmYjcwNTZjZjFkZTA0MmY5NDIwYmFiMzk2NzkzYzBjMzkwYmRlNzRiNGJiZGZmMTZhODNhZTA5YTlhNzUxNyJdLFsiNmQ3ZWY2YjE3NTQzZjgzNzNjNTczZjQ0ZTFmMzg5ODM1ZDg5YmNiYzYwNjJjZWQzNmM4MmRmODNiOGZhZTg1OSIsImNkNDUwZWMzMzU0Mzg5ODZkZmVmYTEwYzU3ZmVh'@; put 'OWJjYzUyMWEwOTU5YjJkODBiYmY3NGIxOTBkY2E3MTJkMTAiXSxbImU3NTYwNWQ1OTEwMmE1YTI2ODQ1MDBkM2I5OTFmMmUzZjNjODhiOTMyMjU1NDcwMzVhZjI1YWY2NmUwNDU0MWYiLCJmNWM1NDc1NGE4ZjcxZWU1NDBiOWI0ODcyODQ3M2UzMTRmNzI5YWM1MzA4YjA2OTM4MzYwOTkwZTJi'@; put 'ZmFkMTI1Il0sWyJlYjk4NjYwZjRjNGRmYWEwNmEyYmU0NTNkNTAyMGJjOTlhMGMyZTYwYWJlMzg4NDU3ZGQ0M2ZlZmIxZWQ2MjBjIiwiNmNiOWE4ODc2ZDljYjg1MjA2MDlhZjNhZGQyNmNkMjBhMGE3Y2Q4YTk0MTExMzFjZTg1ZjQ0MTAwMDk5MjIzZSJdLFsiMTNlODdiMDI3ZDg1MTRkMzU5'@; put 'MzlmMmU2ODkyYjE5OTIyMTU0NTk2OTQxODg4MzM2ZGMzNTYzZTNiOGRiYTk0MiIsImZlZjVhM2M2ODA1OWE2ZGVjNWQ2MjQxMTRiZjFlOTFhYWMyYjlkYTU2OGQ2YWJlYjI1NzBkNTU2NDZiOGFkZjEiXSxbImVlMTYzMDI2ZTlmZDZmZTAxN2MzOGYwNmE1YmU2ZmMxMjU0MjRiMzcxY2UyNzA4'@; put 'ZTdiZjQ0OTE2OTFlNTc2NGEiLCIxYWNiMjUwZjI1NWRkNjFjNDNkOTRjY2M2NzBkMGY1OGY0OWFlM2ZhMTViOTY2MjNlNTQzMGRhMGFkNmM2MmIyIl0sWyJiMjY4ZjVlZjlhZDUxZTRkNzhkZTNhNzUwYzJkYzg5YjFlNjI2ZDQzNTA1ODY3OTk5OTMyZTVkYjMzYWYzZDgwIiwiNWYzMTBkNGIz'@; put 'Yzk5YjllYmIxOWY3N2Q0MWMxZGVlMDE4Y2YwZDM0ZmQ0MTkxNjE0MDAzZTk0NWExMjE2ZTQyMyJdLFsiZmYwN2YzMTE4YTlkZjAzNWU5ZmFkODVlYjZjN2JmZTQyYjAyZjAxY2E5OWNlZWEzYmY3ZmZkYmE5M2M0NzUwZCIsIjQzODEzNmQ2MDNlODU4YTNhNWM0NDBjMzhlY2NiYWRkYzFkMjk0'@; put 'MjExNGUyZWRkZDQ3NDBkMDk4Y2VkMWYwZDgiXSxbIjhkOGI5ODU1YzdjMDUyYTM0MTQ2ZmQyMGZmYjY1OGJlYTRiOWY2OWUwZDgyNWViZWMxNmU4YzNjZTJiNTI2YTEiLCJjZGI1NTllZWRjMmQ3OWY5MjZiYWY0NGZiODRlYTRkNDRiY2Y1MGZlZTUxZDdjZWIzMGUyZTdmNDYzMDM2NzU4Il0s'@; put 'WyI1MmRiMGI1Mzg0ZGZiZjA1YmZhOWQ0NzJkN2FlMjZkZmU0Yjg1MWNlY2E5MWIxZWJhNTQyNjMxODBkYTMyYjYzIiwiYzNiOTk3ZDA1MGVlNWQ0MjNlYmFmNjZhNmRiOWY1N2IzMTgwYzkwMjg3NTY3OWRlOTI0YjY5ZDg0YTdiMzc1Il0sWyJlNjJmOTQ5MGQzZDUxZGE2Mzk1ZWZkMjRlODA5'@; put 'MTljYzdkMGYyOWMzZjNmYTQ4YzZmZmY1NDNiZWNiZDQzMzUyIiwiNmQ4OWFkN2JhNDg3NmIwYjIyYzJjYTI4MGM2ODI4NjJmMzQyYzg1OTFmMWRhZjUxNzBlMDdiZmQ5Y2NhZmE3ZCJdLFsiN2YzMGVhMjQ3NmIzOTliNDk1NzUwOWM4OGY3N2QwMTkxYWZhMmZmNWNiN2IxNGZkNmQ4ZTdkNjVh'@; put 'YWFiMTE5MyIsImNhNWVmN2Q0YjIzMWM5NGMzYjE1Mzg5YTVmNjMxMWU5ZGFmZjdiYjY3YjEwM2U5ODgwZWY0YmZmNjM3YWNhZWMiXSxbIjUwOThmZjFlMWQ5ZjE0ZmI0NmEyMTBmYWRhNmM5MDNmZWYwZmI3YjRhMWRkMWQ5YWM2MGEwMzYxODAwYjdhMDAiLCI5NzMxMTQxZDgxZmM4ZjgwODRk'@; put 'MzdjNmU3NTQyMDA2YjNlZTFiNDBkNjBkZmU1MzYyYTViMTMyZmQxN2RkYzAiXSxbIjMyYjc4YzdkZTllZTUxMmE3Mjg5NWJlNmI5Y2JlZmE2ZTJmM2M0Y2NjZTQ0NWM5NmI5ZjJjODFlMjc3OGFkNTgiLCJlZTE4NDlmNTEzZGY3MWUzMmVmYzM4OTZlZTI4MjYwYzczYmI4MDU0N2FlMjI3NWJh'@; put 'NDk3MjM3Nzk0Yzg3NTNjIl0sWyJlMmNiNzRmZGRjOGU5ZmJjZDA3NmVlZjJhN2M3MmIwY2UzN2Q1MGYwODI2OWRmYzA3NGI1ODE1NTA1NDdhNGY3IiwiZDNhYTJlZDcxYzlkZDIyNDdhNjJkZjA2MjczNmViMGJhZGRlYTllMzYxMjJkMmJlODY0MWFiY2IwMDVjYzRhNCJdLFsiODQzODQ0NzU2'@; put 'NmQ0ZDdiZWRhZGMyOTk0OTZhYjM1NzQyNjAwOWEzNWYyMzVjYjE0MWJlMGQ5OWNkMTBhZTNhOCIsImM0ZTEwMjA5MTY5ODBhNGRhNWQwMWFjNWU2YWQzMzA3MzRlZjBkNzkwNjYzMWM0ZjIzOTA0MjZiMmVkZDc5MWYiXSxbIjQxNjJkNDg4Yjg5NDAyMDM5YjU4NGM2ZmM2YzMwODg3MDU4N2Q5'@; put 'YzQ2ZjY2MGI4NzhhYjY1YzgyYzcxMWQ2N2UiLCI2NzE2M2U5MDMyMzYyODlmNzc2ZjIyYzI1ZmI4YTNhZmMxNzMyZjJiODRiNGU5NWRiZGE0N2FlNWEwODUyNjQ5Il0sWyIzZmFkM2ZhODRjYWYwZjM0ZjBmODliZmQyZGNmNTRmYzE3NWQ3NjdhZWMzZTUwNjg0ZjNiYTRhNGJmNWY2ODNkIiwi'@; put 'Y2QxYmM3Y2I2Y2M0MDdiYjJmMGNhNjQ3YzcxOGE3MzBjZjcxODcyZTdkMGQyYTUzZmEyMGVmY2RmZTYxODI2Il0sWyI2NzRmMjYwMGEzMDA3YTAwNTY4YzFhN2NlMDVkMDgxNmMxZmI4NGJmMTM3MDc5OGYxYzY5NTMyZmFlYjFhODZiIiwiMjk5ZDIxZjk0MTNmMzNiM2VkZjQzYjI1NzAwNDU4'@; put 'MGI3MGRiNTdkYTBiMTgyMjU5ZTA5ZWVjYzY5ZTBkMzhhNSJdLFsiZDMyZjRkYTU0YWRlNzRhYmI4MWI4MTVhZDFmYjNiMjYzZDgyZDZjNjkyNzE0YmNmZjg3ZDI5YmQ1ZWU5ZjA4ZiIsImY5NDI5ZTczOGI4ZTUzYjk2OGU5OTAxNmMwNTk3MDc3ODJlMTRmNDUzNTM1OWQ1ODJmYzQxNjkxMGIz'@; put 'ZWVhODciXSxbIjMwZTRlNjcwNDM1Mzg1NTU2ZTU5MzY1NzEzNTg0NWQzNmZiYjY5MzFmNzJiMDhjYjFlZDk1NGYxZTNjZTNmZjYiLCI0NjJmOWJjZTYxOTg5ODYzODQ5OTM1MDExM2JiYzliMTBhODc4ZDM1ZGE3MDc0MGRjNjk1YTU1OWViODhkYjdiIl0sWyJiZTIwNjIwMDNjNTFjYzMwMDQ2'@; put 'ODI5MDQzMzBlNGRlZTdmM2RjZDEwYjAxZTU4MGJmMTk3MWIwNGQ0Y2FkMjk3IiwiNjIxODhiYzQ5ZDYxZTU0Mjg1NzNkNDhhNzRlMWM2NTViMWM2MTA5MDkwNTY4MmEwZDU1NThlZDcyZGNjYjliYyJdLFsiOTMxNDQ0MjNhY2UzNDUxZWQyOWUwZmI5YWMyYWYyMTFjYjZlODRhNjAxZGY1OTkz'@; put 'YzQxOTg1OWZmZjVkZjA0YSIsIjdjMTBkZmIxNjRjMzQyNWY1YzcxYTNmOWQ3OTkyMDM4ZjEwNjUyMjRmNzJiYjlkMWQ5MDJhNmQxMzAzN2I0N2MiXSxbImIwMTVmODA0NGY1ZmNiZGNmMjFjYTI2ZDZjMzRmYjgxOTc4MjkyMDVjN2I3ZDJhN2NiNjY0MThjMTU3YjExMmMiLCJhYjhjMWUwODZk'@; put 'MDRlODEzNzQ0YTY1NWIyZGY4ZDVmODNiM2NkYzZmYWEzMDg4YzFkM2FlYTE0NTRlM2ExZDVmIl0sWyJkNWU5ZTFkYTY0OWQ5N2Q4OWU0ODY4MTE3YTQ2NWEzYTRmOGExOGRlNTdhMTQwZDM2YjNmMmFmMzQxYTIxYjUyIiwiNGNiMDQ0MzdmMzkxZWQ3MzExMWExM2NjMWQ0ZGQwZGIxNjkzNDY1'@; put 'YzIyNDA0ODBkODk1NWU4NTkyZjI3NDQ3YSJdLFsiZDNhZTQxMDQ3ZGQ3Y2EwNjVkYmY4ZWQ3N2I5OTI0Mzk5ODMwMDVjZDcyZTE2ZDZmOTk2YTUzMTZkMzY5NjZiYiIsImJkMWFlYjIxYWQyMmViYjIyYTEwZjAzMDM0MTdjNmQ5NjRmOGNkZDdkZjBhY2E2MTRiMTBkYzE0ZDEyNWFjNDYiXSxb'@; put 'IjQ2M2UyNzYzZDg4NWY5NThmYzY2Y2RkMjI4MDBmMGE0ODcxOTdkMGE4MmUzNzdiNDlmODBhZjg3Yzg5N2IwNjUiLCJiZmVmYWNkYjBlNWQwZmQ3ZGYzYTMxMWE5NGRlMDYyYjI2YjgwYzYxZmJjOTc1MDhiNzk5OTI2NzFlZjdjYTdmIl0sWyI3OTg1ZmRmZDEyN2MwNTY3YzZmNTNlYzFiYjYz'@; put 'ZWMzMTU4ZTU5N2M0MGJmZTc0N2M4M2NkZGZjOTEwNjQxOTE3IiwiNjAzYzEyZGFmM2Q5ODYyZWYyYjI1ZmUxZGUyODlhZWQyNGVkMjkxZTBlYzY3MDg3MDNhNWJkNTY3ZjMyZWQwMyJdLFsiNzRhMWFkNmI1Zjc2ZTM5ZGIyZGQyNDk0MTBlYWM3Zjk5ZTc0YzU5Y2I4M2QyZDBlZDVmZjE1NDNk'@; put 'YTc3MDNlOSIsImNjNjE1N2VmMThjOWM2M2NkNjE5M2Q4MzYzMWJiZWEwMDkzZTA5Njg5NDJlOGMzM2Q1NzM3ZmQ3OTBlMGRiMDgiXSxbIjMwNjgyYTUwNzAzMzc1ZjYwMmQ0MTY2NjRiYTE5YjdmYzliYWI0MmM3Mjc0NzQ2M2E3MWQwODk2YjIyZjZkYTMiLCI1NTNlMDRmNmIwMThiNGZhNmM4'@; put 'ZjM5ZTdmMzExZDMxNzYyOTBkMGUwZjE5Y2E3M2YxNzcxNGQ5OTc3YTIyZmY4Il0sWyI5ZTIxNThmMGQ3YzBkNWYyNmMzNzkxZWZlZmE3OTU5NzY1NGU3YTJiMjQ2NGY1MmIxZWU2YzEzNDc3NjllZjU3IiwiNzEyZmNkZDFiOTA1M2YwOTAwM2EzNDgxZmE3NzYyZTlmZmQ3YzhlZjM1YTM4NTA5'@; put 'ZTJmYmYyNjI5MDA4MzczIl0sWyIxNzZlMjY5ODlhNDNjOWNmZWJhNDAyOWMyMDI1MzhjMjgxNzJlNTY2ZTNjNGZjZTczMjI4NTdmM2JlMzI3ZDY2IiwiZWQ4Y2M5ZDA0YjI5ZWI4NzdkMjcwYjQ4NzhkYzQzYzE5YWVmZDMxZjRlZWUwOWVlN2I0NzgzNGMxZmE0YjFjMyJdLFsiNzVkNDZlZmVh'@; put 'Mzc3MWU2ZTY4YWJiODlhMTNhZDc0N2VjZjE4OTIzOTNkZmM0ZjFiNzAwNDc4OGM1MDM3NGRhOCIsIjk4NTIzOTBhOTk1MDc2NzlmZDBiODZmZDJiMzlhODY4ZDdlZmMyMjE1MTM0NmUxYTNjYTQ3MjY1ODZhNmJlZDgiXSxbIjgwOWEyMGM2N2Q2NDkwMGZmYjY5OGM0YzgyNWY2ZDVmMjMxMGZi'@; put 'MDQ1MWM4NjkzNDViNzMxOWY2NDU2MDU3MjEiLCI5ZTk5NDk4MGQ5OTE3ZTIyYjc2YjA2MTkyN2ZhMDQxNDNkMDk2Y2NjNTQ5NjNlNmE1ZWJmYTVmM2Y4ZTI4NmMxIl0sWyIxYjM4OTAzYTQzZjdmMTE0ZWQ0NTAwYjRlYWM3MDgzZmRlZmVjZTFjZjI5YzYzNTI4ZDU2MzQ0NmY5NzJjMTgwIiwi'@; put 'NDAzNmVkYzkzMWE2MGFlODg5MzUzZjc3ZmQ1M2RlNGEyNzA4YjI2YjZmNWRhNzJhZDMzOTQxMTlkYWY0MDhmOSJdXX19fSw0Njc2NzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUllLHg9RigzMTM4NyksbT1GKDU3Nzk4KSxsZT1GKDc4MjQ3KTthZS5hc3NlcnQ9bSxhZS50b0Fy'@; put 'cmF5PWxlLnRvQXJyYXksYWUuemVybzI9bGUuemVybzIsYWUudG9IZXg9bGUudG9IZXgsYWUuZW5jb2RlPWxlLmVuY29kZSxhZS5nZXROQUY9ZnVuY3Rpb24gTShJLGssRSl7dmFyIGo9bmV3IEFycmF5KE1hdGgubWF4KEkuYml0TGVuZ3RoKCksRSkrMSk7ai5maWxsKDApO2Zvcih2YXIgVj0x'@; put 'PDxrKzEsQj1JLmNsb25lKCksWT0wO1k8ai5sZW5ndGg7WSsrKXt2YXIgWCxVPUIuYW5kbG4oVi0xKTtCLmlzT2RkKCk/Qi5pc3VibihYPVU+KFY+PjEpLTE/KFY+PjEpLVU6VSk6WD0wLGpbWV09WCxCLml1c2hybigxKX1yZXR1cm4gan0sYWUuZ2V0SlNGPWZ1bmN0aW9uIE8oSSxrKXt2YXIg'@; put 'RT1bW10sW11dO0k9SS5jbG9uZSgpLGs9ay5jbG9uZSgpO2Zvcih2YXIgQixqPTAsVj0wO0kuY21wbigtaik+MHx8ay5jbXBuKC1WKT4wOyl7dmFyIFUscSxZPUkuYW5kbG4oMykraiYzLFg9ay5hbmRsbigzKStWJjM7Mz09PVkmJihZPS0xKSwzPT09WCYmKFg9LTEpLFU9MSZZPzMhPShCPUku'@; put 'YW5kbG4oNykraiY3KSYmNSE9PUJ8fDIhPT1YP1k6LVk6MCxFWzBdLnB1c2goVSkscT0xJlg/MyE9KEI9ay5hbmRsbig3KStWJjcpJiY1IT09Qnx8MiE9PVk/WDotWDowLEVbMV0ucHVzaChxKSwyKmo9PT1VKzEmJihqPTEtaiksMipWPT09cSsxJiYoVj0xLVYpLEkuaXVzaHJuKDEpLGsuaXVz'@; put 'aHJuKDEpfXJldHVybiBFfSxhZS5jYWNoZWRQcm9wZXJ0eT1mdW5jdGlvbiBSKEksayxFKXt2YXIgaj0iXyIraztJLnByb3RvdHlwZVtrXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzW2pdP3RoaXNbal06dGhpc1tqXT1FLmNhbGwodGhpcyl9fSxhZS5wYXJzZUJ5dGVzPWZ1bmN0'@; put 'aW9uIHooSSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBJP2FlLnRvQXJyYXkoSSwiaGV4Iik6SX0sYWUuaW50RnJvbUxFPWZ1bmN0aW9uIEsoSSl7cmV0dXJuIG5ldyB4KEksImhleCIsImxlIil9fSwzMTM4NzpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUseCl7InVzZSBzdHJpY3Qi'@; put 'O2Z1bmN0aW9uIG0oRyxiKXtpZighRyl0aHJvdyBuZXcgRXJyb3IoYnx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBsZShHLGIpe0cuc3VwZXJfPWI7dmFyIEQ9ZnVuY3Rpb24oKXt9O0QucHJvdG90eXBlPWIucHJvdG90eXBlLEcucHJvdG90eXBlPW5ldyBELEcucHJvdG90eXBlLmNv'@; put 'bnN0cnVjdG9yPUd9ZnVuY3Rpb24gTShHLGIsRCl7aWYoTS5pc0JOKEcpKXJldHVybiBHO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1HJiYoKCJsZSI9PT1ifHwiYmUiPT09YikmJihEPWIsYj0xMCksdGhpcy5faW5p'@; put 'dChHfHwwLGJ8fDEwLER8fCJiZSIpKX12YXIgTzsib2JqZWN0Ij09dHlwZW9mIGFlP2FlLmV4cG9ydHM9TTp4LkJOPU0sTS5CTj1NLE0ud29yZFNpemU9MjY7dHJ5e089dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuQnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOkYoODU1NjgpLkJ1'@; put 'ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gUihHLGIpe3ZhciBEPUcuY2hhckNvZGVBdChiKTtyZXR1cm4gRD49NjUmJkQ8PTcwP0QtNTU6RD49OTcmJkQ8PTEwMj9ELTg3OkQtNDgmMTV9ZnVuY3Rpb24geihHLGIsRCl7dmFyIEg9UihHLEQpO3JldHVybiBELTE+PWImJihIfD1SKEcsRC0xKTw8NCks'@; put 'SH1mdW5jdGlvbiBLKEcsYixELEgpe2Zvcih2YXIgTj0wLGc9TWF0aC5taW4oRy5sZW5ndGgsRCksQz1iO0M8ZztDKyspe3ZhciBTPUcuY2hhckNvZGVBdChDKS00ODtOKj1ILE4rPVM+PTQ5P1MtNDkrMTA6Uz49MTc/Uy0xNysxMDpTfXJldHVybiBOfU0uaXNCTj1mdW5jdGlvbihiKXtyZXR1'@; put 'cm4gYiBpbnN0YW5jZW9mIE18fG51bGwhPT1iJiYib2JqZWN0Ij09dHlwZW9mIGImJmIuY29uc3RydWN0b3Iud29yZFNpemU9PT1NLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGIud29yZHMpfSxNLm1heD1mdW5jdGlvbihiLEQpe3JldHVybiBiLmNtcChEKT4wP2I6RH0sTS5taW49ZnVuY3Rp'@; put 'b24oYixEKXtyZXR1cm4gYi5jbXAoRCk8MD9iOkR9LE0ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGIsRCxIKXtpZigibnVtYmVyIj09dHlwZW9mIGIpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoYixELEgpO2lmKCJvYmplY3QiPT10eXBlb2YgYilyZXR1cm4gdGhpcy5faW5pdEFycmF5KGIs'@; put 'RCxIKTsiaGV4Ij09PUQmJihEPTE2KSxtKEQ9PT0oMHxEKSYmRD49MiYmRDw9MzYpO3ZhciBOPTA7Ii0iPT09KGI9Yi50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihOKyssdGhpcy5uZWdhdGl2ZT0xKSxOPGIubGVuZ3RoJiYoMTY9PT1EP3RoaXMuX3BhcnNlSGV4KGIsTixI'@; put 'KToodGhpcy5fcGFyc2VCYXNlKGIsRCxOKSwibGUiPT09SCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLEQsSCkpKX0sTS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oYixELEgpe2I8MCYmKHRoaXMubmVnYXRpdmU9MSxiPS1iKSxiPDY3MTA4ODY0Pyh0aGlzLndvcmRz'@; put 'PVs2NzEwODg2MyZiXSx0aGlzLmxlbmd0aD0xKTpiPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmIsYi82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KG0oYjw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZiLGIvNjcxMDg4NjQm'@; put 'NjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PUgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxELEgpfSxNLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGIsRCxIKXtpZihtKCJudW1iZXIiPT10eXBlb2YgYi5sZW5ndGgpLGIubGVuZ3RoPD0wKXJldHVybiB0'@; put 'aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKGIubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIE49MDtOPHRoaXMubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPTA7dmFyIGcsQyxTPTA7aWYoImJl'@; put 'Ij09PUgpZm9yKE49Yi5sZW5ndGgtMSxnPTA7Tj49MDtOLT0zKXRoaXMud29yZHNbZ118PShDPWJbTl18YltOLTFdPDw4fGJbTi0yXTw8MTYpPDxTJjY3MTA4ODYzLHRoaXMud29yZHNbZysxXT1DPj4+MjYtUyY2NzEwODg2MywoUys9MjQpPj0yNiYmKFMtPTI2LGcrKyk7ZWxzZSBpZigibGUi'@; put 'PT09SClmb3IoTj0wLGc9MDtOPGIubGVuZ3RoO04rPTMpdGhpcy53b3Jkc1tnXXw9KEM9YltOXXxiW04rMV08PDh8YltOKzJdPDwxNik8PFMmNjcxMDg4NjMsdGhpcy53b3Jkc1tnKzFdPUM+Pj4yNi1TJjY3MTA4ODYzLChTKz0yNCk+PTI2JiYoUy09MjYsZysrKTtyZXR1cm4gdGhpcy5zdHJp'@; put 'cCgpfSxNLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oYixELEgpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoYi5sZW5ndGgtRCkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgTj0wO048dGhpcy5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09MDt2YXIg'@; put 'UyxnPTAsQz0wO2lmKCJiZSI9PT1IKWZvcihOPWIubGVuZ3RoLTE7Tj49RDtOLT0yKVM9eihiLEQsTik8PGcsdGhpcy53b3Jkc1tDXXw9NjcxMDg4NjMmUyxnPj0xOD8oZy09MTgsdGhpcy53b3Jkc1tDKz0xXXw9Uz4+PjI2KTpnKz04O2Vsc2UgZm9yKE49KGIubGVuZ3RoLUQpJTI9PTA/RCsx'@; put 'OkQ7TjxiLmxlbmd0aDtOKz0yKVM9eihiLEQsTik8PGcsdGhpcy53b3Jkc1tDXXw9NjcxMDg4NjMmUyxnPj0xOD8oZy09MTgsdGhpcy53b3Jkc1tDKz0xXXw9Uz4+PjI2KTpnKz04O3RoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihiLEQsSCl7dGhpcy53b3Jk'@; put 'cz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIE49MCxnPTE7Zzw9NjcxMDg4NjM7Zyo9RClOKys7Ti0tLGc9Zy9EfDA7Zm9yKHZhciBDPWIubGVuZ3RoLUgsUz1DJU4sdj1NYXRoLm1pbihDLEMtUykrSCxwPTAsdz1IO3c8djt3Kz1OKXA9SyhiLHcsdytOLEQpLHRoaXMuaW11bG4oZyksdGhp'@; put 'cy53b3Jkc1swXStwPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPXA6dGhpcy5faWFkZG4ocCk7aWYoMCE9PVMpe3ZhciBKPTE7Zm9yKHA9SyhiLHcsYi5sZW5ndGgsRCksdz0wO3c8Uzt3KyspSio9RDt0aGlzLmltdWxuKEopLHRoaXMud29yZHNbMF0rcDw2NzEwODg2ND90aGlzLndvcmRzWzBd'@; put 'Kz1wOnRoaXMuX2lhZGRuKHApfXRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuY29weT1mdW5jdGlvbihiKXtiLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBEPTA7RDx0aGlzLmxlbmd0aDtEKyspYi53b3Jkc1tEXT10aGlzLndvcmRzW0RdO2IubGVuZ3RoPXRoaXMubGVu'@; put 'Z3RoLGIubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxiLnJlZD10aGlzLnJlZH0sTS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgTShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KGIpLGJ9LE0ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oYil7Zm9yKDt0aGlzLmxlbmd0aDxi'@; put 'Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE0ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sTS5w'@; put 'cm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE0ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3Ro'@; put 'aXMudG9TdHJpbmcoMTYpKyI+In07dmFyIEk9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAw'@; put 'MDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0saz1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1'@; put 'LDUsNSw1LDUsNSw1LDUsNSw1XSxFPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1Njks'@; put 'MzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0'@; put 'aW9uIFYoRyxiLEQpe0QubmVnYXRpdmU9Yi5uZWdhdGl2ZV5HLm5lZ2F0aXZlO3ZhciBIPUcubGVuZ3RoK2IubGVuZ3RofDA7RC5sZW5ndGg9SCxIPUgtMXwwO3ZhciBOPTB8Ry53b3Jkc1swXSxnPTB8Yi53b3Jkc1swXSxDPU4qZyx2PUMvNjcxMDg4NjR8MDtELndvcmRzWzBdPTY3MTA4ODYz'@; put 'JkM7Zm9yKHZhciBwPTE7cDxIO3ArKyl7Zm9yKHZhciB3PXY+Pj4yNixKPTY3MTA4ODYzJnYsbmU9TWF0aC5taW4ocCxiLmxlbmd0aC0xKSxkZT1NYXRoLm1heCgwLHAtRy5sZW5ndGgrMSk7ZGU8PW5lO2RlKyspdys9KEM9KE49MHxHLndvcmRzW3AtZGV8MF0pKihnPTB8Yi53b3Jkc1tkZV0p'@; put 'K0opLzY3MTA4ODY0fDAsSj02NzEwODg2MyZDO0Qud29yZHNbcF09MHxKLHY9MHx3fXJldHVybiAwIT09dj9ELndvcmRzW3BdPTB8djpELmxlbmd0aC0tLEQuc3RyaXAoKX1NLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihiLEQpe3ZhciBIO2lmKEQ9MHxEfHwxLDE2PT09KGI9Ynx8MTAp'@; put 'fHwiaGV4Ij09PWIpe0g9IiI7Zm9yKHZhciBOPTAsZz0wLEM9MDtDPHRoaXMubGVuZ3RoO0MrKyl7dmFyIFM9dGhpcy53b3Jkc1tDXSx2PSgxNjc3NzIxNSYoUzw8TnxnKSkudG9TdHJpbmcoMTYpO0g9MCE9KGc9Uz4+PjI0LU4mMTY3NzcyMTUpfHxDIT09dGhpcy5sZW5ndGgtMT9JWzYtdi5s'@; put 'ZW5ndGhdK3YrSDp2K0gsKE4rPTIpPj0yNiYmKE4tPTI2LEMtLSl9Zm9yKDAhPT1nJiYoSD1nLnRvU3RyaW5nKDE2KStIKTtILmxlbmd0aCVEIT0wOylIPSIwIitIO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKEg9Ii0iK0gpLEh9aWYoYj09PSgwfGIpJiZiPj0yJiZiPD0zNil7dmFyIHA9'@; put 'a1tiXSx3PUVbYl07SD0iIjt2YXIgSj10aGlzLmNsb25lKCk7Zm9yKEoubmVnYXRpdmU9MDshSi5pc1plcm8oKTspe3ZhciBuZT1KLm1vZG4odykudG9TdHJpbmcoYik7SD0oSj1KLmlkaXZuKHcpKS5pc1plcm8oKT9uZStIOklbcC1uZS5sZW5ndGhdK25lK0h9Zm9yKHRoaXMuaXNaZXJvKCkm'@; put 'JihIPSIwIitIKTtILmxlbmd0aCVEIT0wOylIPSIwIitIO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKEg9Ii0iK0gpLEh9bSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxNLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBiPXRoaXMud29yZHNbMF07'@; put 'cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9iKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Yis9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJm0oITEsIk51bWJlciBjYW4gb25seSBz'@; put 'YWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1iOmJ9LE0ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oYixEKXtyZXR1cm4gbSh0eXBlb2YgTzwidSIp'@; put 'LHRoaXMudG9BcnJheUxpa2UoTyxiLEQpfSxNLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKGIsRCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksYixEKX0sTS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oYixELEgpe3ZhciBOPXRoaXMuYnl0ZUxlbmd0aCgpLGc9SHx8'@; put 'TWF0aC5tYXgoMSxOKTttKE48PWcsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxtKGc+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciB2LHAsQz0ibGUiPT09RCxTPW5ldyBiKGcpLHc9dGhpcy5jbG9uZSgpO2lmKEMpe2Zv'@; put 'cihwPTA7IXcuaXNaZXJvKCk7cCsrKXY9dy5hbmRsbigyNTUpLHcuaXVzaHJuKDgpLFNbcF09djtmb3IoO3A8ZztwKyspU1twXT0wfWVsc2V7Zm9yKHA9MDtwPGctTjtwKyspU1twXT0wO2ZvcihwPTA7IXcuaXNaZXJvKCk7cCsrKXY9dy5hbmRsbigyNTUpLHcuaXVzaHJuKDgpLFNbZy1wLTFd'@; put 'PXZ9cmV0dXJuIFN9LE0ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihiKXtyZXR1cm4gMzItTWF0aC5jbHozMihiKX06ZnVuY3Rpb24oYil7dmFyIEQ9YixIPTA7cmV0dXJuIEQ+PTQwOTYmJihIKz0xMyxEPj4+PTEzKSxEPj02NCYmKEgrPTcsRD4+Pj03KSxEPj04'@; put 'JiYoSCs9NCxEPj4+PTQpLEQ+PTImJihIKz0yLEQ+Pj49MiksSCtEfSxNLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oYil7aWYoMD09PWIpcmV0dXJuIDI2O3ZhciBEPWIsSD0wO3JldHVybiA4MTkxJkR8fChIKz0xMyxEPj4+PTEzKSwxMjcmRHx8KEgrPTcsRD4+Pj03KSwxNSZEfHwo'@; put 'SCs9NCxEPj4+PTQpLDMmRHx8KEgrPTIsRD4+Pj0yKSwxJkR8fEgrKyxIfSxNLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgRD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStEfSxNLnByb3RvdHlw'@; put 'ZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBiPTAsRD0wO0Q8dGhpcy5sZW5ndGg7RCsrKXt2YXIgSD10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW0RdKTtpZihiKz1ILDI2IT09SClicmVha31yZXR1cm4gYn0sTS5wcm90b3R5cGUuYnl0'@; put 'ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGIpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGIpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTS5wcm90b3R5'@; put 'cGUuZnJvbVR3b3M9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMudGVzdG4oYi0xKT90aGlzLm5vdG4oYikuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE0ucHJvdG90eXBlLm5lZz1mdW5j'@; put 'dGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxNLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxNLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGIpe2Zvcig7dGhpcy5sZW5ndGg8Yi5sZW5ndGg7'@; put 'KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIEQ9MDtEPGIubGVuZ3RoO0QrKyl0aGlzLndvcmRzW0RdPXRoaXMud29yZHNbRF18Yi53b3Jkc1tEXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oYil7cmV0dXJuIG0oMD09KHRoaXMubmVn'@; put 'YXRpdmV8Yi5uZWdhdGl2ZSkpLHRoaXMuaXVvcihiKX0sTS5wcm90b3R5cGUub3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoYik6Yi5jbG9uZSgpLmlvcih0aGlzKX0sTS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGIpe3JldHVybiB0'@; put 'aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihiKTpiLmNsb25lKCkuaXVvcih0aGlzKX0sTS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oYil7dmFyIEQ7RD10aGlzLmxlbmd0aD5iLmxlbmd0aD9iOnRoaXM7Zm9yKHZhciBIPTA7SDxELmxlbmd0aDtIKyspdGhpcy53b3Jk'@; put 'c1tIXT10aGlzLndvcmRzW0hdJmIud29yZHNbSF07cmV0dXJuIHRoaXMubGVuZ3RoPUQubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT0odGhpcy5uZWdhdGl2ZXxiLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChiKX0sTS5wcm90b3R5'@; put 'cGUuYW5kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChiKTpiLmNsb25lKCkuaWFuZCh0aGlzKX0sTS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5k'@; put 'KGIpOmIuY2xvbmUoKS5pdWFuZCh0aGlzKX0sTS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oYil7dmFyIEQsSDt0aGlzLmxlbmd0aD5iLmxlbmd0aD8oRD10aGlzLEg9Yik6KEQ9YixIPXRoaXMpO2Zvcih2YXIgTj0wO048SC5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09RC53b3Jkc1tOXV5I'@; put 'LndvcmRzW05dO2lmKHRoaXMhPT1EKWZvcig7TjxELmxlbmd0aDtOKyspdGhpcy53b3Jkc1tOXT1ELndvcmRzW05dO3JldHVybiB0aGlzLmxlbmd0aD1ELmxlbmd0aCx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oYil7cmV0dXJuIG0oMD09KHRoaXMubmVnYXRpdmV8'@; put 'Yi5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoYil9LE0ucHJvdG90eXBlLnhvcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoYik6Yi5jbG9uZSgpLml4b3IodGhpcyl9LE0ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRo'@; put 'aXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihiKTpiLmNsb25lKCkuaXV4b3IodGhpcyl9LE0ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgRD0wfE1hdGguY2VpbChiLzI2KSxIPWIlMjY7dGhpcy5fZXhwYW5k'@; put 'KEQpLEg+MCYmRC0tO2Zvcih2YXIgTj0wO048RDtOKyspdGhpcy53b3Jkc1tOXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tOXTtyZXR1cm4gSD4wJiYodGhpcy53b3Jkc1tOXT1+dGhpcy53b3Jkc1tOXSY2NzEwODg2Mz4+MjYtSCksdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5ub3RuPWZ1bmN0'@; put 'aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oYil9LE0ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oYixEKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIEg9Yi8yNnwwLE49YiUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKEgrMSksdGhpcy53b3Jkc1tIXT1EP3RoaXMud29y'@; put 'ZHNbSF18MTw8Tjp0aGlzLndvcmRzW0hdJn4oMTw8TiksdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGIpe3ZhciBELEgsTjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWIubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxEPXRoaXMuaXN1YihiKSx0aGlz'@; put 'Lm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1iLm5lZ2F0aXZlKXJldHVybiBiLm5lZ2F0aXZlPTAsRD10aGlzLmlzdWIoYiksYi5uZWdhdGl2ZT0xLEQuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Yi5sZW5ndGg/KEg9dGhpcyxOPWIpOihI'@; put 'PWIsTj10aGlzKTtmb3IodmFyIGc9MCxDPTA7QzxOLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT02NzEwODg2MyYoRD0oMHxILndvcmRzW0NdKSsoMHxOLndvcmRzW0NdKStnKSxnPUQ+Pj4yNjtmb3IoOzAhPT1nJiZDPEgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTY3MTA4ODYzJihEPSgw'@; put 'fEgud29yZHNbQ10pK2cpLGc9RD4+PjI2O2lmKHRoaXMubGVuZ3RoPUgubGVuZ3RoLDAhPT1nKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPWcsdGhpcy5sZW5ndGgrKztlbHNlIGlmKEghPT10aGlzKWZvcig7QzxILmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT1ILndvcmRzW0NdO3JldHVybiB0'@; put 'aGlzfSxNLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYil7dmFyIEQ7cmV0dXJuIDAhPT1iLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oYi5uZWdhdGl2ZT0wLEQ9dGhpcy5zdWIoYiksYi5uZWdhdGl2ZV49MSxEKTowPT09Yi5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMu'@; put 'bmVnYXRpdmU9MCxEPWIuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxEKTp0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChiKTpiLmNsb25lKCkuaWFkZCh0aGlzKX0sTS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihiKXtpZigwIT09Yi5uZWdhdGl2ZSl7Yi5uZWdhdGl2'@; put 'ZT0wO3ZhciBEPXRoaXMuaWFkZChiKTtyZXR1cm4gYi5uZWdhdGl2ZT0xLEQuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoYiksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIE4sZyxIPXRoaXMuY21w'@; put 'KGIpO2lmKDA9PT1IKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztIPjA/KE49dGhpcyxnPWIpOihOPWIsZz10aGlzKTtmb3IodmFyIEM9MCxTPTA7UzxnLmxlbmd0aDtTKyspQz0oRD0oMHxOLndvcmRzW1NdKS0oMHxnLndvcmRzW1Nd'@; put 'KStDKT4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZEO2Zvcig7MCE9PUMmJlM8Ti5sZW5ndGg7UysrKUM9KEQ9KDB8Ti53b3Jkc1tTXSkrQyk+PjI2LHRoaXMud29yZHNbU109NjcxMDg4NjMmRDtpZigwPT09QyYmUzxOLmxlbmd0aCYmTiE9PXRoaXMpZm9yKDtTPE4ubGVuZ3RoO1MrKyl0'@; put 'aGlzLndvcmRzW1NdPU4ud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFMpLE4hPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoYil9'@; put 'O3ZhciBCPWZ1bmN0aW9uKGIsRCxIKXt2YXIgdixwLHcsTj1iLndvcmRzLGc9RC53b3JkcyxDPUgud29yZHMsUz0wLEo9MHxOWzBdLG5lPTgxOTEmSixkZT1KPj4+MTMsZmU9MHxOWzFdLHhlPTgxOTEmZmUsTGU9ZmU+Pj4xMyxGZT0wfE5bMl0sT2U9ODE5MSZGZSxqZT1GZT4+PjEzLFdlPTB8'@; put 'TlszXSxLZT04MTkxJldlLFllPVdlPj4+MTMsUWU9MHxOWzRdLGx0PTgxOTEmUWUsUGU9UWU+Pj4xMyxiZT0wfE5bNV0sQWU9ODE5MSZiZSxUZT1iZT4+PjEzLHFlPTB8Tls2XSxYZT04MTkxJnFlLFVlPXFlPj4+MTMsaHQ9MHxOWzddLE1lPTgxOTEmaHQsRGU9aHQ+Pj4xMyx6ZT0wfE5bOF0s'@; put 'b3Q9ODE5MSZ6ZSx1dD16ZT4+PjEzLE10PTB8Tls5XSxIdD04MTkxJk10LFB0PU10Pj4+MTMsb249MHxnWzBdLENuPTgxOTEmb24sVXQ9b24+Pj4xMyxibj0wfGdbMV0sV249ODE5MSZibixlbj1ibj4+PjEzLCRuPTB8Z1syXSxIbj04MTkxJiRuLGZ0PSRuPj4+MTMsZm49MHxnWzNdLGhuPTgx'@; put 'OTEmZm4sd3Q9Zm4+Pj4xMyxYdD0wfGdbNF0sX3Q9ODE5MSZYdCxOdD1YdD4+PjEzLG1uPTB8Z1s1XSxydD04MTkxJm1uLEl0PW1uPj4+MTMsUXQ9MHxnWzZdLER0PTgxOTEmUXQscHQ9UXQ+Pj4xMyxZdD0wfGdbN10sSW49ODE5MSZZdCx6dD1ZdD4+PjEzLHluPTB8Z1s4XSx4bj04MTkxJnlu'@; put 'LHNuPXluPj4+MTMsQm49MHxnWzldLFJuPTgxOTEmQm4sJHQ9Qm4+Pj4xMztILm5lZ2F0aXZlPWIubmVnYXRpdmVeRC5uZWdhdGl2ZSxILmxlbmd0aD0xOTt2YXIgRm49KFMrKHY9TWF0aC5pbXVsKG5lLENuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChuZSxVdCkpK01hdGguaW11bChk'@; put 'ZSxDbil8MCkpPDwxMyl8MDtTPSgodz1NYXRoLmltdWwoZGUsVXQpKSsocD4+PjEzKXwwKSsoRm4+Pj4yNil8MCxGbiY9NjcxMDg4NjMsdj1NYXRoLmltdWwoeGUsQ24pLHA9KHA9TWF0aC5pbXVsKHhlLFV0KSkrTWF0aC5pbXVsKExlLENuKXwwLHc9TWF0aC5pbXVsKExlLFV0KTt2YXIgbmk9'@; put 'KFMrKHY9ditNYXRoLmltdWwobmUsV24pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxlbil8MCkrTWF0aC5pbXVsKGRlLFduKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLGVuKXwwKSsocD4+PjEzKXwwKSsobmk+Pj4yNil8MCxuaSY9NjcxMDg4NjMsdj1NYXRo'@; put 'LmltdWwoT2UsQ24pLHA9KHA9TWF0aC5pbXVsKE9lLFV0KSkrTWF0aC5pbXVsKGplLENuKXwwLHc9TWF0aC5pbXVsKGplLFV0KSx2PXYrTWF0aC5pbXVsKHhlLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsZW4pfDApK01hdGguaW11bChMZSxXbil8MCx3PXcrTWF0aC5pbXVsKExlLGVuKXww'@; put 'O3ZhciBsbj0oUysodj12K01hdGguaW11bChuZSxIbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLGZ0KXwwKStNYXRoLmltdWwoZGUsSG4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsZnQpfDApKyhwPj4+MTMpfDApKyhsbj4+PjI2KXwwLGxuJj02NzEwODg2'@; put 'Myx2PU1hdGguaW11bChLZSxDbikscD0ocD1NYXRoLmltdWwoS2UsVXQpKStNYXRoLmltdWwoWWUsQ24pfDAsdz1NYXRoLmltdWwoWWUsVXQpLHY9ditNYXRoLmltdWwoT2UsV24pfDAscD0ocD1wK01hdGguaW11bChPZSxlbil8MCkrTWF0aC5pbXVsKGplLFduKXwwLHc9dytNYXRoLmltdWwo'@; put 'amUsZW4pfDAsdj12K01hdGguaW11bCh4ZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKHhlLGZ0KXwwKStNYXRoLmltdWwoTGUsSG4pfDAsdz13K01hdGguaW11bChMZSxmdCl8MDt2YXIgam49KFMrKHY9ditNYXRoLmltdWwobmUsaG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChu'@; put 'ZSx3dCl8MCkrTWF0aC5pbXVsKGRlLGhuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLHd0KXwwKSsocD4+PjEzKXwwKSsoam4+Pj4yNil8MCxqbiY9NjcxMDg4NjMsdj1NYXRoLmltdWwobHQsQ24pLHA9KHA9TWF0aC5pbXVsKGx0LFV0KSkrTWF0aC5pbXVsKFBlLENuKXwwLHc9'@; put 'TWF0aC5pbXVsKFBlLFV0KSx2PXYrTWF0aC5pbXVsKEtlLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsZW4pfDApK01hdGguaW11bChZZSxXbil8MCx3PXcrTWF0aC5pbXVsKFllLGVuKXwwLHY9ditNYXRoLmltdWwoT2UsSG4pfDAscD0ocD1wK01hdGguaW11bChPZSxmdCl8MCkrTWF0aC5p'@; put 'bXVsKGplLEhuKXwwLHc9dytNYXRoLmltdWwoamUsZnQpfDAsdj12K01hdGguaW11bCh4ZSxobil8MCxwPShwPXArTWF0aC5pbXVsKHhlLHd0KXwwKStNYXRoLmltdWwoTGUsaG4pfDAsdz13K01hdGguaW11bChMZSx3dCl8MDt2YXIgcXI9KFMrKHY9ditNYXRoLmltdWwobmUsX3QpfDApfDAp'@; put 'KygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxOdCl8MCkrTWF0aC5pbXVsKGRlLF90KXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLE50KXwwKSsocD4+PjEzKXwwKSsocXI+Pj4yNil8MCxxciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoQWUsQ24pLHA9KHA9TWF0aC5pbXVsKEFl'@; put 'LFV0KSkrTWF0aC5pbXVsKFRlLENuKXwwLHc9TWF0aC5pbXVsKFRlLFV0KSx2PXYrTWF0aC5pbXVsKGx0LFduKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsZW4pfDApK01hdGguaW11bChQZSxXbil8MCx3PXcrTWF0aC5pbXVsKFBlLGVuKXwwLHY9ditNYXRoLmltdWwoS2UsSG4pfDAscD0ocD1w'@; put 'K01hdGguaW11bChLZSxmdCl8MCkrTWF0aC5pbXVsKFllLEhuKXwwLHc9dytNYXRoLmltdWwoWWUsZnQpfDAsdj12K01hdGguaW11bChPZSxobil8MCxwPShwPXArTWF0aC5pbXVsKE9lLHd0KXwwKStNYXRoLmltdWwoamUsaG4pfDAsdz13K01hdGguaW11bChqZSx3dCl8MCx2PXYrTWF0aC5p'@; put 'bXVsKHhlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsTnQpfDApK01hdGguaW11bChMZSxfdCl8MCx3PXcrTWF0aC5pbXVsKExlLE50KXwwO3ZhciBnaT0oUysodj12K01hdGguaW11bChuZSxydCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLEl0KXwwKStNYXRoLmltdWwo'@; put 'ZGUscnQpfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsSXQpfDApKyhwPj4+MTMpfDApKyhnaT4+PjI2KXwwLGdpJj02NzEwODg2Myx2PU1hdGguaW11bChYZSxDbikscD0ocD1NYXRoLmltdWwoWGUsVXQpKStNYXRoLmltdWwoVWUsQ24pfDAsdz1NYXRoLmltdWwoVWUsVXQpLHY9'@; put 'ditNYXRoLmltdWwoQWUsV24pfDAscD0ocD1wK01hdGguaW11bChBZSxlbil8MCkrTWF0aC5pbXVsKFRlLFduKXwwLHc9dytNYXRoLmltdWwoVGUsZW4pfDAsdj12K01hdGguaW11bChsdCxIbil8MCxwPShwPXArTWF0aC5pbXVsKGx0LGZ0KXwwKStNYXRoLmltdWwoUGUsSG4pfDAsdz13K01h'@; put 'dGguaW11bChQZSxmdCl8MCx2PXYrTWF0aC5pbXVsKEtlLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoS2Usd3QpfDApK01hdGguaW11bChZZSxobil8MCx3PXcrTWF0aC5pbXVsKFllLHd0KXwwLHY9ditNYXRoLmltdWwoT2UsX3QpfDAscD0ocD1wK01hdGguaW11bChPZSxOdCl8MCkrTWF0aC5p'@; put 'bXVsKGplLF90KXwwLHc9dytNYXRoLmltdWwoamUsTnQpfDAsdj12K01hdGguaW11bCh4ZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKHhlLEl0KXwwKStNYXRoLmltdWwoTGUscnQpfDAsdz13K01hdGguaW11bChMZSxJdCl8MDt2YXIgeHI9KFMrKHY9ditNYXRoLmltdWwobmUsRHQpfDApfDAp'@; put 'KygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxwdCl8MCkrTWF0aC5pbXVsKGRlLER0KXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLHB0KXwwKSsocD4+PjEzKXwwKSsoeHI+Pj4yNil8MCx4ciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoTWUsQ24pLHA9KHA9TWF0aC5pbXVsKE1l'@; put 'LFV0KSkrTWF0aC5pbXVsKERlLENuKXwwLHc9TWF0aC5pbXVsKERlLFV0KSx2PXYrTWF0aC5pbXVsKFhlLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsZW4pfDApK01hdGguaW11bChVZSxXbil8MCx3PXcrTWF0aC5pbXVsKFVlLGVuKXwwLHY9ditNYXRoLmltdWwoQWUsSG4pfDAscD0ocD1w'@; put 'K01hdGguaW11bChBZSxmdCl8MCkrTWF0aC5pbXVsKFRlLEhuKXwwLHc9dytNYXRoLmltdWwoVGUsZnQpfDAsdj12K01hdGguaW11bChsdCxobil8MCxwPShwPXArTWF0aC5pbXVsKGx0LHd0KXwwKStNYXRoLmltdWwoUGUsaG4pfDAsdz13K01hdGguaW11bChQZSx3dCl8MCx2PXYrTWF0aC5p'@; put 'bXVsKEtlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsTnQpfDApK01hdGguaW11bChZZSxfdCl8MCx3PXcrTWF0aC5pbXVsKFllLE50KXwwLHY9ditNYXRoLmltdWwoT2UscnQpfDAscD0ocD1wK01hdGguaW11bChPZSxJdCl8MCkrTWF0aC5pbXVsKGplLHJ0KXwwLHc9dytNYXRoLmltdWwo'@; put 'amUsSXQpfDAsdj12K01hdGguaW11bCh4ZSxEdCl8MCxwPShwPXArTWF0aC5pbXVsKHhlLHB0KXwwKStNYXRoLmltdWwoTGUsRHQpfDAsdz13K01hdGguaW11bChMZSxwdCl8MDt2YXIgVWk9KFMrKHY9ditNYXRoLmltdWwobmUsSW4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChu'@; put 'ZSx6dCl8MCkrTWF0aC5pbXVsKGRlLEluKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLHp0KXwwKSsocD4+PjEzKXwwKSsoVWk+Pj4yNil8MCxVaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwob3QsQ24pLHA9KHA9TWF0aC5pbXVsKG90LFV0KSkrTWF0aC5pbXVsKHV0LENuKXwwLHc9'@; put 'TWF0aC5pbXVsKHV0LFV0KSx2PXYrTWF0aC5pbXVsKE1lLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsZW4pfDApK01hdGguaW11bChEZSxXbil8MCx3PXcrTWF0aC5pbXVsKERlLGVuKXwwLHY9ditNYXRoLmltdWwoWGUsSG4pfDAscD0ocD1wK01hdGguaW11bChYZSxmdCl8MCkrTWF0aC5p'@; put 'bXVsKFVlLEhuKXwwLHc9dytNYXRoLmltdWwoVWUsZnQpfDAsdj12K01hdGguaW11bChBZSxobil8MCxwPShwPXArTWF0aC5pbXVsKEFlLHd0KXwwKStNYXRoLmltdWwoVGUsaG4pfDAsdz13K01hdGguaW11bChUZSx3dCl8MCx2PXYrTWF0aC5pbXVsKGx0LF90KXwwLHA9KHA9cCtNYXRoLmlt'@; put 'dWwobHQsTnQpfDApK01hdGguaW11bChQZSxfdCl8MCx3PXcrTWF0aC5pbXVsKFBlLE50KXwwLHY9ditNYXRoLmltdWwoS2UscnQpfDAscD0ocD1wK01hdGguaW11bChLZSxJdCl8MCkrTWF0aC5pbXVsKFllLHJ0KXwwLHc9dytNYXRoLmltdWwoWWUsSXQpfDAsdj12K01hdGguaW11bChPZSxE'@; put 'dCl8MCxwPShwPXArTWF0aC5pbXVsKE9lLHB0KXwwKStNYXRoLmltdWwoamUsRHQpfDAsdz13K01hdGguaW11bChqZSxwdCl8MCx2PXYrTWF0aC5pbXVsKHhlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bChMZSxJbil8MCx3PXcrTWF0aC5pbXVsKExlLHp0KXww'@; put 'O3ZhciBLcj0oUysodj12K01hdGguaW11bChuZSx4bil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLHNuKXwwKStNYXRoLmltdWwoZGUseG4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsc24pfDApKyhwPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2'@; put 'Myx2PU1hdGguaW11bChIdCxDbikscD0ocD1NYXRoLmltdWwoSHQsVXQpKStNYXRoLmltdWwoUHQsQ24pfDAsdz1NYXRoLmltdWwoUHQsVXQpLHY9ditNYXRoLmltdWwob3QsV24pfDAscD0ocD1wK01hdGguaW11bChvdCxlbil8MCkrTWF0aC5pbXVsKHV0LFduKXwwLHc9dytNYXRoLmltdWwo'@; put 'dXQsZW4pfDAsdj12K01hdGguaW11bChNZSxIbil8MCxwPShwPXArTWF0aC5pbXVsKE1lLGZ0KXwwKStNYXRoLmltdWwoRGUsSG4pfDAsdz13K01hdGguaW11bChEZSxmdCl8MCx2PXYrTWF0aC5pbXVsKFhlLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsd3QpfDApK01hdGguaW11bChVZSxo'@; put 'bil8MCx3PXcrTWF0aC5pbXVsKFVlLHd0KXwwLHY9ditNYXRoLmltdWwoQWUsX3QpfDAscD0ocD1wK01hdGguaW11bChBZSxOdCl8MCkrTWF0aC5pbXVsKFRlLF90KXwwLHc9dytNYXRoLmltdWwoVGUsTnQpfDAsdj12K01hdGguaW11bChsdCxydCl8MCxwPShwPXArTWF0aC5pbXVsKGx0LEl0'@; put 'KXwwKStNYXRoLmltdWwoUGUscnQpfDAsdz13K01hdGguaW11bChQZSxJdCl8MCx2PXYrTWF0aC5pbXVsKEtlLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoS2UscHQpfDApK01hdGguaW11bChZZSxEdCl8MCx3PXcrTWF0aC5pbXVsKFllLHB0KXwwLHY9ditNYXRoLmltdWwoT2UsSW4pfDAscD0o'@; put 'cD1wK01hdGguaW11bChPZSx6dCl8MCkrTWF0aC5pbXVsKGplLEluKXwwLHc9dytNYXRoLmltdWwoamUsenQpfDAsdj12K01hdGguaW11bCh4ZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKHhlLHNuKXwwKStNYXRoLmltdWwoTGUseG4pfDAsdz13K01hdGguaW11bChMZSxzbil8MDt2YXIgbm89'@; put 'KFMrKHY9ditNYXRoLmltdWwobmUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSwkdCl8MCkrTWF0aC5pbXVsKGRlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLCR0KXwwKSsocD4+PjEzKXwwKSsobm8+Pj4yNil8MCxubyY9NjcxMDg4NjMsdj1NYXRo'@; put 'LmltdWwoSHQsV24pLHA9KHA9TWF0aC5pbXVsKEh0LGVuKSkrTWF0aC5pbXVsKFB0LFduKXwwLHc9TWF0aC5pbXVsKFB0LGVuKSx2PXYrTWF0aC5pbXVsKG90LEhuKXwwLHA9KHA9cCtNYXRoLmltdWwob3QsZnQpfDApK01hdGguaW11bCh1dCxIbil8MCx3PXcrTWF0aC5pbXVsKHV0LGZ0KXww'@; put 'LHY9ditNYXRoLmltdWwoTWUsaG4pfDAscD0ocD1wK01hdGguaW11bChNZSx3dCl8MCkrTWF0aC5pbXVsKERlLGhuKXwwLHc9dytNYXRoLmltdWwoRGUsd3QpfDAsdj12K01hdGguaW11bChYZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKFhlLE50KXwwKStNYXRoLmltdWwoVWUsX3QpfDAsdz13'@; put 'K01hdGguaW11bChVZSxOdCl8MCx2PXYrTWF0aC5pbXVsKEFlLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsSXQpfDApK01hdGguaW11bChUZSxydCl8MCx3PXcrTWF0aC5pbXVsKFRlLEl0KXwwLHY9ditNYXRoLmltdWwobHQsRHQpfDAscD0ocD1wK01hdGguaW11bChsdCxwdCl8MCkrTWF0'@; put 'aC5pbXVsKFBlLER0KXwwLHc9dytNYXRoLmltdWwoUGUscHQpfDAsdj12K01hdGguaW11bChLZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKEtlLHp0KXwwKStNYXRoLmltdWwoWWUsSW4pfDAsdz13K01hdGguaW11bChZZSx6dCl8MCx2PXYrTWF0aC5pbXVsKE9lLHhuKXwwLHA9KHA9cCtNYXRo'@; put 'LmltdWwoT2Usc24pfDApK01hdGguaW11bChqZSx4bil8MCx3PXcrTWF0aC5pbXVsKGplLHNuKXwwO3ZhciBIcj0oUysodj12K01hdGguaW11bCh4ZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKHhlLCR0KXwwKStNYXRoLmltdWwoTGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9'@; put 'dytNYXRoLmltdWwoTGUsJHQpfDApKyhwPj4+MTMpfDApKyhIcj4+PjI2KXwwLEhyJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxIbikscD0ocD1NYXRoLmltdWwoSHQsZnQpKStNYXRoLmltdWwoUHQsSG4pfDAsdz1NYXRoLmltdWwoUHQsZnQpLHY9ditNYXRoLmltdWwob3QsaG4pfDAscD0o'@; put 'cD1wK01hdGguaW11bChvdCx3dCl8MCkrTWF0aC5pbXVsKHV0LGhuKXwwLHc9dytNYXRoLmltdWwodXQsd3QpfDAsdj12K01hdGguaW11bChNZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKE1lLE50KXwwKStNYXRoLmltdWwoRGUsX3QpfDAsdz13K01hdGguaW11bChEZSxOdCl8MCx2PXYrTWF0'@; put 'aC5pbXVsKFhlLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsSXQpfDApK01hdGguaW11bChVZSxydCl8MCx3PXcrTWF0aC5pbXVsKFVlLEl0KXwwLHY9ditNYXRoLmltdWwoQWUsRHQpfDAscD0ocD1wK01hdGguaW11bChBZSxwdCl8MCkrTWF0aC5pbXVsKFRlLER0KXwwLHc9dytNYXRoLmlt'@; put 'dWwoVGUscHQpfDAsdj12K01hdGguaW11bChsdCxJbil8MCxwPShwPXArTWF0aC5pbXVsKGx0LHp0KXwwKStNYXRoLmltdWwoUGUsSW4pfDAsdz13K01hdGguaW11bChQZSx6dCl8MCx2PXYrTWF0aC5pbXVsKEtlLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoS2Usc24pfDApK01hdGguaW11bChZ'@; put 'ZSx4bil8MCx3PXcrTWF0aC5pbXVsKFllLHNuKXwwO3ZhciBxaT0oUysodj12K01hdGguaW11bChPZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKE9lLCR0KXwwKStNYXRoLmltdWwoamUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoamUsJHQpfDApKyhwPj4+'@; put 'MTMpfDApKyhxaT4+PjI2KXwwLHFpJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxobikscD0ocD1NYXRoLmltdWwoSHQsd3QpKStNYXRoLmltdWwoUHQsaG4pfDAsdz1NYXRoLmltdWwoUHQsd3QpLHY9ditNYXRoLmltdWwob3QsX3QpfDAscD0ocD1wK01hdGguaW11bChvdCxOdCl8MCkrTWF0'@; put 'aC5pbXVsKHV0LF90KXwwLHc9dytNYXRoLmltdWwodXQsTnQpfDAsdj12K01hdGguaW11bChNZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKE1lLEl0KXwwKStNYXRoLmltdWwoRGUscnQpfDAsdz13K01hdGguaW11bChEZSxJdCl8MCx2PXYrTWF0aC5pbXVsKFhlLER0KXwwLHA9KHA9cCtNYXRo'@; put 'LmltdWwoWGUscHQpfDApK01hdGguaW11bChVZSxEdCl8MCx3PXcrTWF0aC5pbXVsKFVlLHB0KXwwLHY9ditNYXRoLmltdWwoQWUsSW4pfDAscD0ocD1wK01hdGguaW11bChBZSx6dCl8MCkrTWF0aC5pbXVsKFRlLEluKXwwLHc9dytNYXRoLmltdWwoVGUsenQpfDAsdj12K01hdGguaW11bChs'@; put 'dCx4bil8MCxwPShwPXArTWF0aC5pbXVsKGx0LHNuKXwwKStNYXRoLmltdWwoUGUseG4pfDAsdz13K01hdGguaW11bChQZSxzbil8MDt2YXIgSmk9KFMrKHY9ditNYXRoLmltdWwoS2UsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChLZSwkdCl8MCkrTWF0aC5pbXVsKFllLFJu'@; put 'KXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKFllLCR0KXwwKSsocD4+PjEzKXwwKSsoSmk+Pj4yNil8MCxKaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsX3QpLHA9KHA9TWF0aC5pbXVsKEh0LE50KSkrTWF0aC5pbXVsKFB0LF90KXwwLHc9TWF0aC5pbXVsKFB0LE50KSx2PXYrTWF0'@; put 'aC5pbXVsKG90LHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwob3QsSXQpfDApK01hdGguaW11bCh1dCxydCl8MCx3PXcrTWF0aC5pbXVsKHV0LEl0KXwwLHY9ditNYXRoLmltdWwoTWUsRHQpfDAscD0ocD1wK01hdGguaW11bChNZSxwdCl8MCkrTWF0aC5pbXVsKERlLER0KXwwLHc9dytNYXRoLmlt'@; put 'dWwoRGUscHQpfDAsdj12K01hdGguaW11bChYZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKFhlLHp0KXwwKStNYXRoLmltdWwoVWUsSW4pfDAsdz13K01hdGguaW11bChVZSx6dCl8MCx2PXYrTWF0aC5pbXVsKEFlLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsc24pfDApK01hdGguaW11bChU'@; put 'ZSx4bil8MCx3PXcrTWF0aC5pbXVsKFRlLHNuKXwwO3ZhciBhbz0oUysodj12K01hdGguaW11bChsdCxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKGx0LCR0KXwwKStNYXRoLmltdWwoUGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoUGUsJHQpfDApKyhwPj4+'@; put 'MTMpfDApKyhhbz4+PjI2KXwwLGFvJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxydCkscD0ocD1NYXRoLmltdWwoSHQsSXQpKStNYXRoLmltdWwoUHQscnQpfDAsdz1NYXRoLmltdWwoUHQsSXQpLHY9ditNYXRoLmltdWwob3QsRHQpfDAscD0ocD1wK01hdGguaW11bChvdCxwdCl8MCkrTWF0'@; put 'aC5pbXVsKHV0LER0KXwwLHc9dytNYXRoLmltdWwodXQscHQpfDAsdj12K01hdGguaW11bChNZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKE1lLHp0KXwwKStNYXRoLmltdWwoRGUsSW4pfDAsdz13K01hdGguaW11bChEZSx6dCl8MCx2PXYrTWF0aC5pbXVsKFhlLHhuKXwwLHA9KHA9cCtNYXRo'@; put 'LmltdWwoWGUsc24pfDApK01hdGguaW11bChVZSx4bil8MCx3PXcrTWF0aC5pbXVsKFVlLHNuKXwwO3ZhciBybz0oUysodj12K01hdGguaW11bChBZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKEFlLCR0KXwwKStNYXRoLmltdWwoVGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9'@; put 'dytNYXRoLmltdWwoVGUsJHQpfDApKyhwPj4+MTMpfDApKyhybz4+PjI2KXwwLHJvJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxEdCkscD0ocD1NYXRoLmltdWwoSHQscHQpKStNYXRoLmltdWwoUHQsRHQpfDAsdz1NYXRoLmltdWwoUHQscHQpLHY9ditNYXRoLmltdWwob3QsSW4pfDAscD0o'@; put 'cD1wK01hdGguaW11bChvdCx6dCl8MCkrTWF0aC5pbXVsKHV0LEluKXwwLHc9dytNYXRoLmltdWwodXQsenQpfDAsdj12K01hdGguaW11bChNZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKE1lLHNuKXwwKStNYXRoLmltdWwoRGUseG4pfDAsdz13K01hdGguaW11bChEZSxzbil8MDt2YXIgaW89'@; put 'KFMrKHY9ditNYXRoLmltdWwoWGUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChYZSwkdCl8MCkrTWF0aC5pbXVsKFVlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKFVlLCR0KXwwKSsocD4+PjEzKXwwKSsoaW8+Pj4yNil8MCxpbyY9NjcxMDg4NjMsdj1NYXRo'@; put 'LmltdWwoSHQsSW4pLHA9KHA9TWF0aC5pbXVsKEh0LHp0KSkrTWF0aC5pbXVsKFB0LEluKXwwLHc9TWF0aC5pbXVsKFB0LHp0KSx2PXYrTWF0aC5pbXVsKG90LHhuKXwwLHA9KHA9cCtNYXRoLmltdWwob3Qsc24pfDApK01hdGguaW11bCh1dCx4bil8MCx3PXcrTWF0aC5pbXVsKHV0LHNuKXww'@; put 'O3ZhciBHaT0oUysodj12K01hdGguaW11bChNZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKE1lLCR0KXwwKStNYXRoLmltdWwoRGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoRGUsJHQpfDApKyhwPj4+MTMpfDApKyhHaT4+PjI2KXwwLEdpJj02NzEwODg2'@; put 'Myx2PU1hdGguaW11bChIdCx4bikscD0ocD1NYXRoLmltdWwoSHQsc24pKStNYXRoLmltdWwoUHQseG4pfDAsdz1NYXRoLmltdWwoUHQsc24pO3ZhciBobz0oUysodj12K01hdGguaW11bChvdCxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG90LCR0KXwwKStNYXRoLmltdWwo'@; put 'dXQsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwodXQsJHQpfDApKyhwPj4+MTMpfDApKyhobz4+PjI2KXwwLGhvJj02NzEwODg2Mzt2YXIgeXI9KFMrKHY9TWF0aC5pbXVsKEh0LFJuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChIdCwkdCkpK01hdGguaW11bChQdCxSbil8'@; put 'MCkpPDwxMyl8MDtyZXR1cm4gUz0oKHc9TWF0aC5pbXVsKFB0LCR0KSkrKHA+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLENbMF09Rm4sQ1sxXT1uaSxDWzJdPWxuLENbM109am4sQ1s0XT1xcixDWzVdPWdpLENbNl09eHIsQ1s3XT1VaSxDWzhdPUtyLENbOV09bm8sQ1sxMF09'@; put 'SHIsQ1sxMV09cWksQ1sxMl09SmksQ1sxM109YW8sQ1sxNF09cm8sQ1sxNV09aW8sQ1sxNl09R2ksQ1sxN109aG8sQ1sxOF09eXIsMCE9PVMmJihDWzE5XT1TLEgubGVuZ3RoKyspLEh9O2Z1bmN0aW9uIFgoRyxiLEQpe3JldHVybihuZXcgVSkubXVscChHLGIsRCl9ZnVuY3Rpb24gVShHLGIp'@; put 'e3RoaXMueD1HLHRoaXMueT1ifU1hdGguaW11bHx8KEI9ViksTS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oYixEKXt2YXIgSCxOPXRoaXMubGVuZ3RoK2IubGVuZ3RoO3JldHVybiBIPTEwPT09dGhpcy5sZW5ndGgmJjEwPT09Yi5sZW5ndGg/Qih0aGlzLGIsRCk6Tjw2Mz9WKHRoaXMsYixE'@; put 'KTpOPDEwMjQ/ZnVuY3Rpb24gWShHLGIsRCl7RC5uZWdhdGl2ZT1iLm5lZ2F0aXZlXkcubmVnYXRpdmUsRC5sZW5ndGg9Ry5sZW5ndGgrYi5sZW5ndGg7Zm9yKHZhciBIPTAsTj0wLGc9MDtnPEQubGVuZ3RoLTE7ZysrKXt2YXIgQz1OO049MDtmb3IodmFyIFM9NjcxMDg4NjMmSCx2PU1hdGgu'@; put 'bWluKGcsYi5sZW5ndGgtMSkscD1NYXRoLm1heCgwLGctRy5sZW5ndGgrMSk7cDw9djtwKyspe3ZhciBkZT0oMHxHLndvcmRzW2ctcF0pKigwfGIud29yZHNbcF0pLGZlPTY3MTA4ODYzJmRlO1M9NjcxMDg4NjMmKGZlPWZlK1N8MCksTis9KEM9KEM9QysoZGUvNjcxMDg4NjR8MCl8MCkrKGZl'@; put 'Pj4+MjYpfDApPj4+MjYsQyY9NjcxMDg4NjN9RC53b3Jkc1tnXT1TLEg9QyxDPU59cmV0dXJuIDAhPT1IP0Qud29yZHNbZ109SDpELmxlbmd0aC0tLEQuc3RyaXAoKX0odGhpcyxiLEQpOlgodGhpcyxiLEQpLEh9LFUucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oYil7Zm9yKHZhciBEPW5l'@; put 'dyBBcnJheShiKSxIPU0ucHJvdG90eXBlLl9jb3VudEJpdHMoYiktMSxOPTA7TjxiO04rKylEW05dPXRoaXMucmV2QmluKE4sSCxiKTtyZXR1cm4gRH0sVS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKGIsRCxIKXtpZigwPT09Ynx8Yj09PUgtMSlyZXR1cm4gYjtmb3IodmFyIE49MCxnPTA7'@; put 'ZzxEO2crKylOfD0oMSZiKTw8RC1nLTEsYj4+PTE7cmV0dXJuIE59LFUucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oYixELEgsTixnLEMpe2Zvcih2YXIgUz0wO1M8QztTKyspTltTXT1EW2JbU11dLGdbU109SFtiW1NdXX0sVS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGIsRCxI'@; put 'LE4sZyxDKXt0aGlzLnBlcm11dGUoQyxiLEQsSCxOLGcpO2Zvcih2YXIgUz0xO1M8ZztTPDw9MSlmb3IodmFyIHY9Uzw8MSxwPU1hdGguY29zKDIqTWF0aC5QSS92KSx3PU1hdGguc2luKDIqTWF0aC5QSS92KSxKPTA7SjxnO0orPXYpZm9yKHZhciBuZT1wLGRlPXcsZmU9MDtmZTxTO2ZlKysp'@; put 'e3ZhciB4ZT1IW0orZmVdLExlPU5bSitmZV0sRmU9SFtKK2ZlK1NdLE9lPU5bSitmZStTXSxqZT1uZSpGZS1kZSpPZTtPZT1uZSpPZStkZSpGZSxIW0orZmVdPXhlKyhGZT1qZSksTltKK2ZlXT1MZStPZSxIW0orZmUrU109eGUtRmUsTltKK2ZlK1NdPUxlLU9lLGZlIT09diYmKGplPXAqbmUt'@; put 'dypkZSxkZT1wKmRlK3cqbmUsbmU9amUpfX0sVS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oYixEKXt2YXIgSD0xfE1hdGgubWF4KEQsYiksTj0xJkgsZz0wO2ZvcihIPUgvMnwwO0g7SD4+Pj0xKWcrKztyZXR1cm4gMTw8ZysxK059LFUucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5j'@; put 'dGlvbihiLEQsSCl7aWYoIShIPD0xKSlmb3IodmFyIE49MDtOPEgvMjtOKyspe3ZhciBnPWJbTl07YltOXT1iW0gtTi0xXSxiW0gtTi0xXT1nLGc9RFtOXSxEW05dPS1EW0gtTi0xXSxEW0gtTi0xXT0tZ319LFUucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihiLEQpe2Zvcih2YXIg'@; put 'SD0wLE49MDtOPEQvMjtOKyspe3ZhciBnPTgxOTIqTWF0aC5yb3VuZChiWzIqTisxXS9EKStNYXRoLnJvdW5kKGJbMipOXS9EKStIO2JbTl09NjcxMDg4NjMmZyxIPWc8NjcxMDg4NjQ/MDpnLzY3MTA4ODY0fDB9cmV0dXJuIGJ9LFUucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oYixE'@; put 'LEgsTil7Zm9yKHZhciBnPTAsQz0wO0M8RDtDKyspSFsyKkNdPTgxOTEmKGcrPTB8YltDXSksSFsyKkMrMV09ODE5MSYoZz4+Pj0xMyksZz4+Pj0xMztmb3IoQz0yKkQ7QzxOOysrQylIW0NdPTA7bSgwPT09ZyksbSgwPT0oLTgxOTImZykpfSxVLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKGIp'@; put 'e2Zvcih2YXIgRD1uZXcgQXJyYXkoYiksSD0wO0g8YjtIKyspRFtIXT0wO3JldHVybiBEfSxVLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGIsRCxIKXt2YXIgTj0yKnRoaXMuZ3Vlc3NMZW4xM2IoYi5sZW5ndGgsRC5sZW5ndGgpLGc9dGhpcy5tYWtlUkJUKE4pLEM9dGhpcy5zdHViKE4pLFM9'@; put 'bmV3IEFycmF5KE4pLHY9bmV3IEFycmF5KE4pLHA9bmV3IEFycmF5KE4pLHc9bmV3IEFycmF5KE4pLEo9bmV3IEFycmF5KE4pLG5lPW5ldyBBcnJheShOKSxkZT1ILndvcmRzO2RlLmxlbmd0aD1OLHRoaXMuY29udmVydDEzYihiLndvcmRzLGIubGVuZ3RoLFMsTiksdGhpcy5jb252ZXJ0MTNi'@; put 'KEQud29yZHMsRC5sZW5ndGgsdyxOKSx0aGlzLnRyYW5zZm9ybShTLEMsdixwLE4sZyksdGhpcy50cmFuc2Zvcm0odyxDLEosbmUsTixnKTtmb3IodmFyIGZlPTA7ZmU8TjtmZSsrKXt2YXIgeGU9dltmZV0qSltmZV0tcFtmZV0qbmVbZmVdO3BbZmVdPXZbZmVdKm5lW2ZlXStwW2ZlXSpKW2Zl'@; put 'XSx2W2ZlXT14ZX1yZXR1cm4gdGhpcy5jb25qdWdhdGUodixwLE4pLHRoaXMudHJhbnNmb3JtKHYscCxkZSxDLE4sZyksdGhpcy5jb25qdWdhdGUoZGUsQyxOKSx0aGlzLm5vcm1hbGl6ZTEzYihkZSxOKSxILm5lZ2F0aXZlPWIubmVnYXRpdmVeRC5uZWdhdGl2ZSxILmxlbmd0aD1iLmxlbmd0'@; put 'aCtELmxlbmd0aCxILnN0cmlwKCl9LE0ucHJvdG90eXBlLm11bD1mdW5jdGlvbihiKXt2YXIgRD1uZXcgTShudWxsKTtyZXR1cm4gRC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrYi5sZW5ndGgpLHRoaXMubXVsVG8oYixEKX0sTS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihiKXt2YXIg'@; put 'RD1uZXcgTShudWxsKTtyZXR1cm4gRC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrYi5sZW5ndGgpLFgodGhpcyxiLEQpfSxNLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oYix0aGlzKX0sTS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24o'@; put 'Yil7bSgibnVtYmVyIj09dHlwZW9mIGIpLG0oYjw2NzEwODg2NCk7Zm9yKHZhciBEPTAsSD0wO0g8dGhpcy5sZW5ndGg7SCsrKXt2YXIgTj0oMHx0aGlzLndvcmRzW0hdKSpiLGc9KDY3MTA4ODYzJk4pKyg2NzEwODg2MyZEKTtEPj49MjYsRCs9Ti82NzEwODg2NHwwLEQrPWc+Pj4yNix0aGlz'@; put 'LndvcmRzW0hdPTY3MTA4ODYzJmd9cmV0dXJuIDAhPT1EJiYodGhpcy53b3Jkc1tIXT1ELHRoaXMubGVuZ3RoKyspLHRoaXN9LE0ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihiKX0sTS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IHRoaXMubXVsKHRoaXMpfSxNLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxNLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oYil7dmFyIEQ9ZnVuY3Rpb24gaihHKXtmb3IodmFyIGI9bmV3IEFycmF5KEcuYml0TGVuZ3RoKCkpLEQ9MDtE'@; put 'PGIubGVuZ3RoO0QrKyl7dmFyIE49RCUyNjtiW0RdPShHLndvcmRzW0QvMjZ8MF0mMTw8Tik+Pj5OfXJldHVybiBifShiKTtpZigwPT09RC5sZW5ndGgpcmV0dXJuIG5ldyBNKDEpO2Zvcih2YXIgSD10aGlzLE49MDtOPEQubGVuZ3RoJiYwPT09RFtOXTtOKyssSD1ILnNxcigpKTtpZigrK048'@; put 'RC5sZW5ndGgpZm9yKHZhciBnPUguc3FyKCk7TjxELmxlbmd0aDtOKyssZz1nLnNxcigpKTAhPT1EW05dJiYoSD1ILm11bChnKSk7cmV0dXJuIEh9LE0ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIGcsRD1iJTI2LEg9KGItRCkv'@; put 'MjYsTj02NzEwODg2Mz4+PjI2LUQ8PDI2LUQ7aWYoMCE9PUQpe3ZhciBDPTA7Zm9yKGc9MDtnPHRoaXMubGVuZ3RoO2crKyl7dmFyIFM9dGhpcy53b3Jkc1tnXSZOO3RoaXMud29yZHNbZ109KDB8dGhpcy53b3Jkc1tnXSktUzw8RHxDLEM9Uz4+PjI2LUR9QyYmKHRoaXMud29yZHNbZ109Qyx0'@; put 'aGlzLmxlbmd0aCsrKX1pZigwIT09SCl7Zm9yKGc9dGhpcy5sZW5ndGgtMTtnPj0wO2ctLSl0aGlzLndvcmRzW2crSF09dGhpcy53b3Jkc1tnXTtmb3IoZz0wO2c8SDtnKyspdGhpcy53b3Jkc1tnXT0wO3RoaXMubGVuZ3RoKz1IfXJldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlz'@; put 'aGxuPWZ1bmN0aW9uKGIpe3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihiKX0sTS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKGIsRCxIKXt2YXIgTjttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCksTj1EPyhELUQlMjYpLzI2OjA7dmFyIGc9YiUyNixDPU1hdGgu'@; put 'bWluKChiLWcpLzI2LHRoaXMubGVuZ3RoKSxTPTY3MTA4ODYzXjY3MTA4ODYzPj4+Zzw8Zyx2PUg7aWYoTi09QyxOPU1hdGgubWF4KDAsTiksdil7Zm9yKHZhciBwPTA7cDxDO3ArKyl2LndvcmRzW3BdPXRoaXMud29yZHNbcF07di5sZW5ndGg9Q31pZigwIT09QylpZih0aGlzLmxlbmd0aD5D'@; put 'KWZvcih0aGlzLmxlbmd0aC09QyxwPTA7cDx0aGlzLmxlbmd0aDtwKyspdGhpcy53b3Jkc1twXT10aGlzLndvcmRzW3ArQ107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgdz0wO2ZvcihwPXRoaXMubGVuZ3RoLTE7cD49MCYmKDAhPT13fHxwPj1OKTtwLS0pe3ZhciBK'@; put 'PTB8dGhpcy53b3Jkc1twXTt0aGlzLndvcmRzW3BdPXc8PDI2LWd8Sj4+Pmcsdz1KJlN9cmV0dXJuIHYmJjAhPT13JiYodi53b3Jkc1t2Lmxlbmd0aCsrXT13KSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlw'@; put 'ZS5pc2hybj1mdW5jdGlvbihiLEQsSCl7cmV0dXJuIG0oMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKGIsRCxIKX0sTS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGIpfSxNLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihiKXtyZXR1'@; put 'cm4gdGhpcy5jbG9uZSgpLml1c2hsbihiKX0sTS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGIpfSxNLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihiKX0sTS5wcm90b3R5cGUudGVzdG49'@; put 'ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApO3ZhciBEPWIlMjYsSD0oYi1EKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1IfHwhKHRoaXMud29yZHNbSF0mMTw8RCkpfSxNLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+'@; put 'PTApO3ZhciBEPWIlMjYsSD0oYi1EKS8yNjtyZXR1cm4gbSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PUg/dGhpczooMCE9PUQmJkgrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihILHRoaXMubGVuZ3RoKSww'@; put 'IT09RCYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+RDw8RCksdGhpcy5zdHJpcCgpKX0sTS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oYil9LE0ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGIp'@; put 'e3JldHVybiBtKCJudW1iZXIiPT10eXBlb2YgYiksbShiPDY3MTA4ODY0KSxiPDA/dGhpcy5pc3VibigtYik6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxiPyh0aGlzLndvcmRzWzBdPWItKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2'@; put 'ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihiKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oYil9LE0ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihiKXt0aGlzLndvcmRzWzBdKz1iO2Zvcih2YXIgRD0wO0Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNb'@; put 'RF0+PTY3MTA4ODY0O0QrKyl0aGlzLndvcmRzW0RdLT02NzEwODg2NCxEPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW0QrMV09MTp0aGlzLndvcmRzW0QrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsRCsxKSx0aGlzfSxNLnByb3RvdHlwZS5pc3Vibj1m'@; put 'dW5jdGlvbihiKXtpZihtKCJudW1iZXIiPT10eXBlb2YgYiksbShiPDY3MTA4ODY0KSxiPDApcmV0dXJuIHRoaXMuaWFkZG4oLWIpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihiKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndv'@; put 'cmRzWzBdLT1iLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciBEPTA7RDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tEXTwwO0QrKyl0aGlzLndvcmRzW0RdKz02NzEwODg2NCx0'@; put 'aGlzLndvcmRzW0QrMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGIpfSxNLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oYil9LE0ucHJvdG90'@; put 'eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LE0ucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxNLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oYixELEgpe3ZhciBnO3RoaXMuX2V4cGFuZChi'@; put 'Lmxlbmd0aCtIKTt2YXIgQyxTPTA7Zm9yKGc9MDtnPGIubGVuZ3RoO2crKyl7Qz0oMHx0aGlzLndvcmRzW2crSF0pK1M7dmFyIHY9KDB8Yi53b3Jkc1tnXSkqRDtTPSgoQy09NjcxMDg4NjMmdik+PjI2KS0odi82NzEwODg2NHwwKSx0aGlzLndvcmRzW2crSF09NjcxMDg4NjMmQ31mb3IoO2c8'@; put 'dGhpcy5sZW5ndGgtSDtnKyspUz0oQz0oMHx0aGlzLndvcmRzW2crSF0pK1MpPj4yNix0aGlzLndvcmRzW2crSF09NjcxMDg4NjMmQztpZigwPT09UylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihtKC0xPT09UyksUz0wLGc9MDtnPHRoaXMubGVuZ3RoO2crKylTPShDPS0oMHx0aGlzLndvcmRz'@; put 'W2ddKStTKT4+MjYsdGhpcy53b3Jkc1tnXT02NzEwODg2MyZDO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihiLEQpe3ZhciBILE49dGhpcy5jbG9uZSgpLGc9YixDPTB8Zy53b3Jkc1tnLmxlbmd0aC0xXTswIT0oSD0y'@; put 'Ni10aGlzLl9jb3VudEJpdHMoQykpJiYoZz1nLnVzaGxuKEgpLE4uaXVzaGxuKEgpLEM9MHxnLndvcmRzW2cubGVuZ3RoLTFdKTt2YXIgcCx2PU4ubGVuZ3RoLWcubGVuZ3RoO2lmKCJtb2QiIT09RCl7KHA9bmV3IE0obnVsbCkpLmxlbmd0aD12KzEscC53b3Jkcz1uZXcgQXJyYXkocC5sZW5n'@; put 'dGgpO2Zvcih2YXIgdz0wO3c8cC5sZW5ndGg7dysrKXAud29yZHNbd109MH12YXIgSj1OLmNsb25lKCkuX2lzaGxuc3VibXVsKGcsMSx2KTswPT09Si5uZWdhdGl2ZSYmKE49SixwJiYocC53b3Jkc1t2XT0xKSk7Zm9yKHZhciBuZT12LTE7bmU+PTA7bmUtLSl7dmFyIGRlPTY3MTA4ODY0Kigw'@; put 'fE4ud29yZHNbZy5sZW5ndGgrbmVdKSsoMHxOLndvcmRzW2cubGVuZ3RoK25lLTFdKTtmb3IoZGU9TWF0aC5taW4oZGUvQ3wwLDY3MTA4ODYzKSxOLl9pc2hsbnN1Ym11bChnLGRlLG5lKTswIT09Ti5uZWdhdGl2ZTspZGUtLSxOLm5lZ2F0aXZlPTAsTi5faXNobG5zdWJtdWwoZywxLG5lKSxO'@; put 'LmlzWmVybygpfHwoTi5uZWdhdGl2ZV49MSk7cCYmKHAud29yZHNbbmVdPWRlKX1yZXR1cm4gcCYmcC5zdHJpcCgpLE4uc3RyaXAoKSwiZGl2IiE9PUQmJjAhPT1IJiZOLml1c2hybihIKSx7ZGl2OnB8fG51bGwsbW9kOk59fSxNLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oYixELEgpe3Jl'@; put 'dHVybiBtKCFiLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE0oMCksbW9kOm5ldyBNKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWIubmVnYXRpdmU/KEM9dGhpcy5uZWcoKS5kaXZtb2QoYixEKSwibW9kIiE9PUQmJihOPUMuZGl2Lm5lZygpKSwiZGl2IiE9PUQmJihnPUMu'@; put 'bW9kLm5lZygpLEgmJjAhPT1nLm5lZ2F0aXZlJiZnLmlhZGQoYikpLHtkaXY6Tixtb2Q6Z30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Yi5uZWdhdGl2ZT8oQz10aGlzLmRpdm1vZChiLm5lZygpLEQpLCJtb2QiIT09RCYmKE49Qy5kaXYubmVnKCkpLHtkaXY6Tixtb2Q6Qy5tb2R9KTp0aGlz'@; put 'Lm5lZ2F0aXZlJmIubmVnYXRpdmU/KEM9dGhpcy5uZWcoKS5kaXZtb2QoYi5uZWcoKSxEKSwiZGl2IiE9PUQmJihnPUMubW9kLm5lZygpLEgmJjAhPT1nLm5lZ2F0aXZlJiZnLmlzdWIoYikpLHtkaXY6Qy5kaXYsbW9kOmd9KTpiLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoYik8MD97'@; put 'ZGl2Om5ldyBNKDApLG1vZDp0aGlzfToxPT09Yi5sZW5ndGg/ImRpdiI9PT1EP3tkaXY6dGhpcy5kaXZuKGIud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PUQ/e2RpdjpudWxsLG1vZDpuZXcgTSh0aGlzLm1vZG4oYi53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihiLndvcmRzWzBdKSxt'@; put 'b2Q6bmV3IE0odGhpcy5tb2RuKGIud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihiLEQpO3ZhciBOLGcsQ30sTS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmRpdm1vZChiLCJkaXYiLCExKS5kaXZ9LE0ucHJvdG90eXBlLm1vZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhp'@; put 'cy5kaXZtb2QoYiwibW9kIiwhMSkubW9kfSxNLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmRpdm1vZChiLCJtb2QiLCEwKS5tb2R9LE0ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGIpe3ZhciBEPXRoaXMuZGl2bW9kKGIpO2lmKEQubW9kLmlzWmVybygpKXJl'@; put 'dHVybiBELmRpdjt2YXIgSD0wIT09RC5kaXYubmVnYXRpdmU/RC5tb2QuaXN1YihiKTpELm1vZCxOPWIudXNocm4oMSksZz1iLmFuZGxuKDEpLEM9SC5jbXAoTik7cmV0dXJuIEM8MHx8MT09PWcmJjA9PT1DP0QuZGl2OjAhPT1ELmRpdi5uZWdhdGl2ZT9ELmRpdi5pc3VibigxKTpELmRpdi5p'@; put 'YWRkbigxKX0sTS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihiKXttKGI8PTY3MTA4ODYzKTtmb3IodmFyIEQ9KDE8PDI2KSViLEg9MCxOPXRoaXMubGVuZ3RoLTE7Tj49MDtOLS0pSD0oRCpIKygwfHRoaXMud29yZHNbTl0pKSViO3JldHVybiBIfSxNLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlv'@; put 'bihiKXttKGI8PTY3MTA4ODYzKTtmb3IodmFyIEQ9MCxIPXRoaXMubGVuZ3RoLTE7SD49MDtILS0pe3ZhciBOPSgwfHRoaXMud29yZHNbSF0pKzY3MTA4ODY0KkQ7dGhpcy53b3Jkc1tIXT1OL2J8MCxEPU4lYn1yZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9u'@; put 'KGIpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oYil9LE0ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oYil7bSgwPT09Yi5uZWdhdGl2ZSksbSghYi5pc1plcm8oKSk7dmFyIEQ9dGhpcyxIPWIuY2xvbmUoKTtEPTAhPT1ELm5lZ2F0aXZlP0QudW1vZChiKTpELmNsb25lKCk7Zm9yKHZhciBO'@; put 'PW5ldyBNKDEpLGc9bmV3IE0oMCksQz1uZXcgTSgwKSxTPW5ldyBNKDEpLHY9MDtELmlzRXZlbigpJiZILmlzRXZlbigpOylELml1c2hybigxKSxILml1c2hybigxKSwrK3Y7Zm9yKHZhciBwPUguY2xvbmUoKSx3PUQuY2xvbmUoKTshRC5pc1plcm8oKTspe2Zvcih2YXIgSj0wLG5lPTE7IShE'@; put 'LndvcmRzWzBdJm5lKSYmSjwyNjsrK0osbmU8PD0xKTtpZihKPjApZm9yKEQuaXVzaHJuKEopO0otLSA+MDspKE4uaXNPZGQoKXx8Zy5pc09kZCgpKSYmKE4uaWFkZChwKSxnLmlzdWIodykpLE4uaXVzaHJuKDEpLGcuaXVzaHJuKDEpO2Zvcih2YXIgZGU9MCxmZT0xOyEoSC53b3Jkc1swXSZm'@; put 'ZSkmJmRlPDI2OysrZGUsZmU8PD0xKTtpZihkZT4wKWZvcihILml1c2hybihkZSk7ZGUtLSA+MDspKEMuaXNPZGQoKXx8Uy5pc09kZCgpKSYmKEMuaWFkZChwKSxTLmlzdWIodykpLEMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO0QuY21wKEgpPj0wPyhELmlzdWIoSCksTi5pc3ViKEMpLGcuaXN1'@; put 'YihTKSk6KEguaXN1YihEKSxDLmlzdWIoTiksUy5pc3ViKGcpKX1yZXR1cm57YTpDLGI6UyxnY2Q6SC5pdXNobG4odil9fSxNLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oYil7bSgwPT09Yi5uZWdhdGl2ZSksbSghYi5pc1plcm8oKSk7dmFyIEosRD10aGlzLEg9Yi5jbG9uZSgpO0Q9MCE9'@; put 'PUQubmVnYXRpdmU/RC51bW9kKGIpOkQuY2xvbmUoKTtmb3IodmFyIE49bmV3IE0oMSksZz1uZXcgTSgwKSxDPUguY2xvbmUoKTtELmNtcG4oMSk+MCYmSC5jbXBuKDEpPjA7KXtmb3IodmFyIFM9MCx2PTE7IShELndvcmRzWzBdJnYpJiZTPDI2OysrUyx2PDw9MSk7aWYoUz4wKWZvcihELml1'@; put 'c2hybihTKTtTLS0gPjA7KU4uaXNPZGQoKSYmTi5pYWRkKEMpLE4uaXVzaHJuKDEpO2Zvcih2YXIgcD0wLHc9MTshKEgud29yZHNbMF0mdykmJnA8MjY7KytwLHc8PD0xKTtpZihwPjApZm9yKEguaXVzaHJuKHApO3AtLSA+MDspZy5pc09kZCgpJiZnLmlhZGQoQyksZy5pdXNocm4oMSk7RC5j'@; put 'bXAoSCk+PTA/KEQuaXN1YihIKSxOLmlzdWIoZykpOihILmlzdWIoRCksZy5pc3ViKE4pKX1yZXR1cm4oSj0wPT09RC5jbXBuKDEpP046ZykuY21wbigwKTwwJiZKLmlhZGQoYiksSn0sTS5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGIpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGIuYWJzKCk7'@; put 'aWYoYi5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgRD10aGlzLmNsb25lKCksSD1iLmNsb25lKCk7RC5uZWdhdGl2ZT0wLEgubmVnYXRpdmU9MDtmb3IodmFyIE49MDtELmlzRXZlbigpJiZILmlzRXZlbigpO04rKylELml1c2hybigxKSxILml1c2hybigxKTtmb3IoOzspe2Zvcig7'@; put 'RC5pc0V2ZW4oKTspRC5pdXNocm4oMSk7Zm9yKDtILmlzRXZlbigpOylILml1c2hybigxKTt2YXIgZz1ELmNtcChIKTtpZihnPDApe3ZhciBDPUQ7RD1ILEg9Q31lbHNlIGlmKDA9PT1nfHwwPT09SC5jbXBuKDEpKWJyZWFrO0QuaXN1YihIKX1yZXR1cm4gSC5pdXNobG4oTil9LE0ucHJvdG90'@; put 'eXBlLmludm09ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZWdjZChiKS5hLnVtb2QoYil9LE0ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTS5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1sw'@; put 'XSl9LE0ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLndvcmRzWzBdJmJ9LE0ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiKTt2YXIgRD1iJTI2LEg9KGItRCkvMjYsTj0xPDxEO2lmKHRoaXMubGVuZ3RoPD1IKXJldHVybiB0'@; put 'aGlzLl9leHBhbmQoSCsxKSx0aGlzLndvcmRzW0hdfD1OLHRoaXM7Zm9yKHZhciBnPU4sQz1IOzAhPT1nJiZDPHRoaXMubGVuZ3RoO0MrKyl7dmFyIFM9MHx0aGlzLndvcmRzW0NdO2c9KFMrPWcpPj4+MjYsdGhpcy53b3Jkc1tDXT1TJj02NzEwODg2M31yZXR1cm4gMCE9PWcmJih0aGlzLndv'@; put 'cmRzW0NdPWcsdGhpcy5sZW5ndGgrKyksdGhpc30sTS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE0ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oYil7dmFyIEgsRD1iPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUm'@; put 'JiFEKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZEKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKUg9MTtlbHNle0QmJihiPS1iKSxtKGI8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBOPTB8dGhpcy53b3Jkc1swXTtIPU49PT1iPzA6Tjxi'@; put 'Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LUg6SH0sTS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKGIpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Yi5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWIubmVnYXRpdmUpcmV0dXJuIDE7dmFyIEQ9'@; put 'dGhpcy51Y21wKGIpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1EOkR9LE0ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oYil7aWYodGhpcy5sZW5ndGg+Yi5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Yi5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBEPTAsSD10aGlzLmxlbmd0'@; put 'aC0xO0g+PTA7SC0tKXt2YXIgTj0wfHRoaXMud29yZHNbSF0sZz0wfGIud29yZHNbSF07aWYoTiE9PWcpe048Zz9EPS0xOk4+ZyYmKEQ9MSk7YnJlYWt9fXJldHVybiBEfSxNLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oYil7cmV0dXJuIDE9PT10aGlzLmNtcG4oYil9LE0ucHJvdG90eXBlLmd0'@; put 'PWZ1bmN0aW9uKGIpe3JldHVybiAxPT09dGhpcy5jbXAoYil9LE0ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY21wbihiKT49MH0sTS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcChiKT49MH0sTS5wcm90b3R5cGUubHRuPWZ1bmN0aW9u'@; put 'KGIpe3JldHVybi0xPT09dGhpcy5jbXBuKGIpfSxNLnByb3RvdHlwZS5sdD1mdW5jdGlvbihiKXtyZXR1cm4tMT09PXRoaXMuY21wKGIpfSxNLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcG4oYik8PTB9LE0ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihiKXtyZXR1'@; put 'cm4gdGhpcy5jbXAoYik8PTB9LE0ucHJvdG90eXBlLmVxbj1mdW5jdGlvbihiKXtyZXR1cm4gMD09PXRoaXMuY21wbihiKX0sTS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oYil7cmV0dXJuIDA9PT10aGlzLmNtcChiKX0sTS5yZWQ9ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyB1ZShiKX0sTS5wcm90'@; put 'b3R5cGUudG9SZWQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0oIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksbSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxiLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQo'@; put 'Yil9LE0ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxNLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rp'@; put 'b24oYil7cmV0dXJuIHRoaXMucmVkPWIsdGhpc30sTS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0oIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoYil9LE0ucHJvdG90eXBlLnJlZEFkZD1mdW5j'@; put 'dGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQg'@; put 'bnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZElTdWI9ZnVu'@; put 'Y3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVk'@; put 'IG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxiKSx0aGlzLnJlZC5tdWwodGhpcyxi'@; put 'KX0sTS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsYiksdGhpcy5yZWQuaW11bCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJU3FyIHdv'@; put 'cmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE0ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlz'@; put 'LnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxNLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52'@; put 'bSh0aGlzKX0sTS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE0ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlv'@; put 'bihiKXtyZXR1cm4gbSh0aGlzLnJlZCYmIWIucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLGIpfTt2YXIgcT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIGVlKEcsYil7'@; put 'dGhpcy5uYW1lPUcsdGhpcy5wPW5ldyBNKGIsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBNKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiB0ZSgpe2VlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZm'@; put 'IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24gb2UoKXtlZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIp'@; put 'fWZ1bmN0aW9uIHNlKCl7ZWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBoZSgpe2VlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZm'@; put 'ZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gdWUoRyl7aWYoInN0cmluZyI9PXR5cGVvZiBHKXt2YXIgYj1NLl9wcmltZShHKTt0aGlzLm09Yi5wLHRoaXMucHJpbWU9Yn1lbHNlIG0oRy5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRo'@; put 'aXMubT1HLHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBjZShHKXt1ZS5jYWxsKHRoaXMsRyksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgTSgxKS5pdXNobG4odGhpcy5zaGlm'@; put 'dCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRo'@; put 'aXMuci5zdWIodGhpcy5taW52KX1lZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBiPW5ldyBNKG51bGwpO3JldHVybiBiLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksYn0sZWUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oYil7dmFyIEgsRD1iO2Rve3Ro'@; put 'aXMuc3BsaXQoRCx0aGlzLnRtcCksSD0oRD0oRD10aGlzLmltdWxLKEQpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoSD50aGlzLm4pO3ZhciBOPUg8dGhpcy5uPy0xOkQudWNtcCh0aGlzLnApO3JldHVybiAwPT09Tj8oRC53b3Jkc1swXT0wLEQubGVuZ3RoPTEpOk4+MD9E'@; put 'LmlzdWIodGhpcy5wKTp2b2lkIDAhPT1ELnN0cmlwP0Quc3RyaXAoKTpELl9zdHJpcCgpLER9LGVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihiLEQpe2IuaXVzaHJuKHRoaXMubiwwLEQpfSxlZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oYil7cmV0dXJuIGIuaW11bCh0aGlzLmspfSxs'@; put 'ZSh0ZSxlZSksdGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGIsRCl7Zm9yKHZhciBIPTQxOTQzMDMsTj1NYXRoLm1pbihiLmxlbmd0aCw5KSxnPTA7ZzxOO2crKylELndvcmRzW2ddPWIud29yZHNbZ107aWYoRC5sZW5ndGg9TixiLmxlbmd0aDw9OSlyZXR1cm4gYi53b3Jkc1swXT0wLHZv'@; put 'aWQoYi5sZW5ndGg9MSk7dmFyIEM9Yi53b3Jkc1s5XTtmb3IoRC53b3Jkc1tELmxlbmd0aCsrXT1DJkgsZz0xMDtnPGIubGVuZ3RoO2crKyl7dmFyIFM9MHxiLndvcmRzW2ddO2Iud29yZHNbZy0xMF09KFMmSCk8PDR8Qz4+PjIyLEM9U31iLndvcmRzW2ctMTBdPUM+Pj49MjIsYi5sZW5ndGgt'@; put 'PTA9PT1DJiZiLmxlbmd0aD4xMD8xMDo5fSx0ZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oYil7Yi53b3Jkc1tiLmxlbmd0aF09MCxiLndvcmRzW2IubGVuZ3RoKzFdPTAsYi5sZW5ndGgrPTI7Zm9yKHZhciBEPTAsSD0wO0g8Yi5sZW5ndGg7SCsrKXt2YXIgTj0wfGIud29yZHNbSF07Yi53'@; put 'b3Jkc1tIXT02NzEwODg2MyYoRCs9OTc3Kk4pLEQ9NjQqTisoRC82NzEwODg2NHwwKX1yZXR1cm4gMD09PWIud29yZHNbYi5sZW5ndGgtMV0mJihiLmxlbmd0aC0tLDA9PT1iLndvcmRzW2IubGVuZ3RoLTFdJiZiLmxlbmd0aC0tKSxifSxsZShvZSxlZSksbGUoc2UsZWUpLGxlKGhlLGVlKSxo'@; put 'ZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oYil7Zm9yKHZhciBEPTAsSD0wO0g8Yi5sZW5ndGg7SCsrKXt2YXIgTj0xOSooMHxiLndvcmRzW0hdKStELGc9NjcxMDg4NjMmTjtOPj4+PTI2LGIud29yZHNbSF09ZyxEPU59cmV0dXJuIDAhPT1EJiYoYi53b3Jkc1tiLmxlbmd0aCsrXT1EKSxi'@; put 'fSxNLl9wcmltZT1mdW5jdGlvbihiKXtpZihxW2JdKXJldHVybiBxW2JdO3ZhciBEO2lmKCJrMjU2Ij09PWIpRD1uZXcgdGU7ZWxzZSBpZigicDIyNCI9PT1iKUQ9bmV3IG9lO2Vsc2UgaWYoInAxOTIiPT09YilEPW5ldyBzZTtlbHNle2lmKCJwMjU1MTkiIT09Yil0aHJvdyBuZXcgRXJyb3Io'@; put 'IlVua25vd24gcHJpbWUgIitiKTtEPW5ldyBoZX1yZXR1cm4gcVtiXT1ELER9LHVlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihiKXttKDA9PT1iLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLG0oYi5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51'@; put 'bWJlcnMiKX0sdWUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKGIsRCl7bSgwPT0oYi5uZWdhdGl2ZXxELm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxtKGIucmVkJiZiLnJlZD09PUQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9'@; put 'LHVlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShiKS5fZm9yY2VSZWQodGhpcyk6Yi51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSx1ZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKGIpe3JldHVybiBiLmlzWmVybygp'@; put 'P2IuY2xvbmUoKTp0aGlzLm0uc3ViKGIpLl9mb3JjZVJlZCh0aGlzKX0sdWUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIgSD1iLmFkZChEKTtyZXR1cm4gSC5jbXAodGhpcy5tKT49MCYmSC5pc3ViKHRoaXMubSksSC5fZm9yY2VSZWQodGhpcyl9'@; put 'LHVlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGIsRCl7dGhpcy5fdmVyaWZ5MihiLEQpO3ZhciBIPWIuaWFkZChEKTtyZXR1cm4gSC5jbXAodGhpcy5tKT49MCYmSC5pc3ViKHRoaXMubSksSH0sdWUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIg'@; put 'SD1iLnN1YihEKTtyZXR1cm4gSC5jbXBuKDApPDAmJkguaWFkZCh0aGlzLm0pLEguX2ZvcmNlUmVkKHRoaXMpfSx1ZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIgSD1iLmlzdWIoRCk7cmV0dXJuIEguY21wbigwKTwwJiZILmlhZGQodGhpcy5t'@; put 'KSxIfSx1ZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoYiksdGhpcy5pbW9kKGIudXNobG4oRCkpfSx1ZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihiLEQpe3JldHVybiB0aGlzLl92ZXJpZnkyKGIsRCksdGhpcy5pbW9kKGIuaW11bChEKSl9LHVl'@; put 'LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihiLEQpLHRoaXMuaW1vZChiLm11bChEKSl9LHVlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmltdWwoYixiLmNsb25lKCkpfSx1ZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKGIp'@; put 'e3JldHVybiB0aGlzLm11bChiLGIpfSx1ZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihiKXtpZihiLmlzWmVybygpKXJldHVybiBiLmNsb25lKCk7dmFyIEQ9dGhpcy5tLmFuZGxuKDMpO2lmKG0oRCUyPT0xKSwzPT09RCl7dmFyIEg9dGhpcy5tLmFkZChuZXcgTSgxKSkuaXVzaHJuKDIpO3Jl'@; put 'dHVybiB0aGlzLnBvdyhiLEgpfWZvcih2YXIgTj10aGlzLm0uc3VibigxKSxnPTA7IU4uaXNaZXJvKCkmJjA9PT1OLmFuZGxuKDEpOylnKyssTi5pdXNocm4oMSk7bSghTi5pc1plcm8oKSk7dmFyIEM9bmV3IE0oMSkudG9SZWQodGhpcyksUz1DLnJlZE5lZygpLHY9dGhpcy5tLnN1Ym4oMSku'@; put 'aXVzaHJuKDEpLHA9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihwPW5ldyBNKDIqcCpwKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cocCx2KS5jbXAoUyk7KXAucmVkSUFkZChTKTtmb3IodmFyIHc9dGhpcy5wb3cocCxOKSxKPXRoaXMucG93KGIsTi5hZGRuKDEpLml1c2hybigxKSksbmU9dGhp'@; put 'cy5wb3coYixOKSxkZT1nOzAhPT1uZS5jbXAoQyk7KXtmb3IodmFyIGZlPW5lLHhlPTA7MCE9PWZlLmNtcChDKTt4ZSsrKWZlPWZlLnJlZFNxcigpO20oeGU8ZGUpO3ZhciBMZT10aGlzLnBvdyh3LG5ldyBNKDEpLml1c2hsbihkZS14ZS0xKSk7Sj1KLnJlZE11bChMZSksdz1MZS5yZWRTcXIo'@; put 'KSxuZT1uZS5yZWRNdWwodyksZGU9eGV9cmV0dXJuIEp9LHVlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGIpe3ZhciBEPWIuX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT1ELm5lZ2F0aXZlPyhELm5lZ2F0aXZlPTAsdGhpcy5pbW9kKEQpLnJlZE5lZygpKTp0aGlzLmltb2QoRCl9LHVlLnBy'@; put 'b3RvdHlwZS5wb3c9ZnVuY3Rpb24oYixEKXtpZihELmlzWmVybygpKXJldHVybiBuZXcgTSgxKS50b1JlZCh0aGlzKTtpZigwPT09RC5jbXBuKDEpKXJldHVybiBiLmNsb25lKCk7dmFyIE49bmV3IEFycmF5KDE2KTtOWzBdPW5ldyBNKDEpLnRvUmVkKHRoaXMpLE5bMV09Yjtmb3IodmFyIGc9'@; put 'MjtnPE4ubGVuZ3RoO2crKylOW2ddPXRoaXMubXVsKE5bZy0xXSxiKTt2YXIgQz1OWzBdLFM9MCx2PTAscD1ELmJpdExlbmd0aCgpJTI2O2ZvcigwPT09cCYmKHA9MjYpLGc9RC5sZW5ndGgtMTtnPj0wO2ctLSl7Zm9yKHZhciB3PUQud29yZHNbZ10sSj1wLTE7Sj49MDtKLS0pe3ZhciBuZT13'@; put 'Pj5KJjE7QyE9PU5bMF0mJihDPXRoaXMuc3FyKEMpKSwwIT09bmV8fDAhPT1TPyhTPDw9MSxTfD1uZSwoND09Kyt2fHwwPT09ZyYmMD09PUopJiYoQz10aGlzLm11bChDLE5bU10pLHY9MCxTPTApKTp2PTB9cD0yNn1yZXR1cm4gQ30sdWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihi'@; put 'KXt2YXIgRD1iLnVtb2QodGhpcy5tKTtyZXR1cm4gRD09PWI/RC5jbG9uZSgpOkR9LHVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihiKXt2YXIgRD1iLmNsb25lKCk7cmV0dXJuIEQucmVkPW51bGwsRH0sTS5tb250PWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgY2UoYil9LGxlKGNl'@; put 'LHVlKSxjZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmltb2QoYi51c2hsbih0aGlzLnNoaWZ0KSl9LGNlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihiKXt2YXIgRD10aGlzLmltb2QoYi5tdWwodGhpcy5yaW52KSk7cmV0dXJuIEQucmVkPW51'@; put 'bGwsRH0sY2UucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oYixEKXtpZihiLmlzWmVybygpfHxELmlzWmVybygpKXJldHVybiBiLndvcmRzWzBdPTAsYi5sZW5ndGg9MSxiO3ZhciBIPWIuaW11bChEKSxOPUgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hp'@; put 'ZnQpLm11bCh0aGlzLm0pLGc9SC5pc3ViKE4pLml1c2hybih0aGlzLnNoaWZ0KSxDPWc7cmV0dXJuIGcuY21wKHRoaXMubSk+PTA/Qz1nLmlzdWIodGhpcy5tKTpnLmNtcG4oMCk8MCYmKEM9Zy5pYWRkKHRoaXMubSkpLEMuX2ZvcmNlUmVkKHRoaXMpfSxjZS5wcm90b3R5cGUubXVsPWZ1bmN0'@; put 'aW9uKGIsRCl7aWYoYi5pc1plcm8oKXx8RC5pc1plcm8oKSlyZXR1cm4gbmV3IE0oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBIPWIubXVsKEQpLE49SC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksZz1ILmlzdWIoTikuaXVz'@; put 'aHJuKHRoaXMuc2hpZnQpLEM9ZztyZXR1cm4gZy5jbXAodGhpcy5tKT49MD9DPWcuaXN1Yih0aGlzLm0pOmcuY21wbigwKTwwJiYoQz1nLmlhZGQodGhpcy5tKSksQy5fZm9yY2VSZWQodGhpcyl9LGNlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmltb2QoYi5faW52'@; put 'bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KGF0PUYubm1kKGF0KSx0aGlzKX0sODIwMTY6YXQ9PnsidXNlIHN0cmljdCI7dmFyIGFlLEllPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdD9SZWZsZWN0Om51bGwsRj1JZSYmImZ1bmN0aW9uIj09dHlwZW9mIEllLmFw'@; put 'cGx5P0llLmFwcGx5OmZ1bmN0aW9uKGVlLHRlLG9lKXtyZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoZWUsdGUsb2UpfTthZT1JZSYmImZ1bmN0aW9uIj09dHlwZW9mIEllLm93bktleXM/SWUub3duS2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9u'@; put 'KGVlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZWUpLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGVlKSl9OmZ1bmN0aW9uKGVlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZWUpfTt2YXIgbT1OdW1iZXIuaXNOYU58fGZ1bmN0aW9u'@; put 'KGVlKXtyZXR1cm4gZWUhPWVlfTtmdW5jdGlvbiBsZSgpe2xlLmluaXQuY2FsbCh0aGlzKX1hdC5leHBvcnRzPWxlLGF0LmV4cG9ydHMub25jZT1mdW5jdGlvbiBZKHEsZWUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0ZSxvZSl7ZnVuY3Rpb24gc2UodWUpe3EucmVtb3ZlTGlzdGVu'@; put 'ZXIoZWUsaGUpLG9lKHVlKX1mdW5jdGlvbiBoZSgpeyJmdW5jdGlvbiI9PXR5cGVvZiBxLnJlbW92ZUxpc3RlbmVyJiZxLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsc2UpLHRlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSl9VShxLGVlLGhlLHtvbmNlOiEwfSksImVycm9yIiE9PWVlJiZmdW5j'@; put 'dGlvbiBYKHEsZWUsdGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBxLm9uJiZVKHEsImVycm9yIixlZSx0ZSl9KHEsc2Use29uY2U6ITB9KX0pfSxsZS5FdmVudEVtaXR0ZXI9bGUsbGUucHJvdG90eXBlLl9ldmVudHM9dm9pZCAwLGxlLnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxsZS5wcm90b3R5'@; put 'cGUuX21heExpc3RlbmVycz12b2lkIDA7dmFyIE09MTA7ZnVuY3Rpb24gTyhxKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgcSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImxpc3RlbmVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2Yg'@; put 'cSl9ZnVuY3Rpb24gUihxKXtyZXR1cm4gdm9pZCAwPT09cS5fbWF4TGlzdGVuZXJzP2xlLmRlZmF1bHRNYXhMaXN0ZW5lcnM6cS5fbWF4TGlzdGVuZXJzfWZ1bmN0aW9uIHoocSxlZSx0ZSxvZSl7dmFyIHNlLGhlLHVlO2lmKE8odGUpLHZvaWQgMD09PShoZT1xLl9ldmVudHMpPyhoZT1xLl9l'@; put 'dmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxxLl9ldmVudHNDb3VudD0wKToodm9pZCAwIT09aGUubmV3TGlzdGVuZXImJihxLmVtaXQoIm5ld0xpc3RlbmVyIixlZSx0ZS5saXN0ZW5lcj90ZS5saXN0ZW5lcjp0ZSksaGU9cS5fZXZlbnRzKSx1ZT1oZVtlZV0pLHZvaWQgMD09PXVlKXVlPWhl'@; put 'W2VlXT10ZSwrK3EuX2V2ZW50c0NvdW50O2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIHVlP3VlPWhlW2VlXT1vZT9bdGUsdWVdOlt1ZSx0ZV06b2U/dWUudW5zaGlmdCh0ZSk6dWUucHVzaCh0ZSksKHNlPVIocSkpPjAmJnVlLmxlbmd0aD5zZSYmIXVlLndhcm5lZCl7dWUud2FybmVkPSEw'@; put 'O3ZhciBjZT1uZXcgRXJyb3IoIlBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gIit1ZS5sZW5ndGgrIiAiK1N0cmluZyhlZSkrIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0Iik7Y2UubmFt'@; put 'ZT0iTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nIixjZS5lbWl0dGVyPXEsY2UudHlwZT1lZSxjZS5jb3VudD11ZS5sZW5ndGgsZnVuY3Rpb24geChxKXtjb25zb2xlJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihxKX0oY2UpfXJldHVybiBxfWZ1bmN0aW9uIEsoKXtpZighdGhpcy5m'@; put 'aXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1'@; put 'bWVudHMpfWZ1bmN0aW9uIEkocSxlZSx0ZSl7dmFyIG9lPXtmaXJlZDohMSx3cmFwRm46dm9pZCAwLHRhcmdldDpxLHR5cGU6ZWUsbGlzdGVuZXI6dGV9LHNlPUsuYmluZChvZSk7cmV0dXJuIHNlLmxpc3RlbmVyPXRlLG9lLndyYXBGbj1zZSxzZX1mdW5jdGlvbiBrKHEsZWUsdGUpe3ZhciBv'@; put 'ZT1xLl9ldmVudHM7aWYodm9pZCAwPT09b2UpcmV0dXJuW107dmFyIHNlPW9lW2VlXTtyZXR1cm4gdm9pZCAwPT09c2U/W106ImZ1bmN0aW9uIj09dHlwZW9mIHNlP3RlP1tzZS5saXN0ZW5lcnx8c2VdOltzZV06dGU/ZnVuY3Rpb24gQihxKXtmb3IodmFyIGVlPW5ldyBBcnJheShxLmxlbmd0'@; put 'aCksdGU9MDt0ZTxlZS5sZW5ndGg7Kyt0ZSllZVt0ZV09cVt0ZV0ubGlzdGVuZXJ8fHFbdGVdO3JldHVybiBlZX0oc2UpOmooc2Usc2UubGVuZ3RoKX1mdW5jdGlvbiBFKHEpe3ZhciBlZT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09ZWUpe3ZhciB0ZT1lZVtxXTtpZigiZnVuY3Rpb24iPT10'@; put 'eXBlb2YgdGUpcmV0dXJuIDE7aWYodm9pZCAwIT09dGUpcmV0dXJuIHRlLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlvbiBqKHEsZWUpe2Zvcih2YXIgdGU9bmV3IEFycmF5KGVlKSxvZT0wO29lPGVlOysrb2UpdGVbb2VdPXFbb2VdO3JldHVybiB0ZX1mdW5jdGlvbiBVKHEsZWUsdGUsb2Upe2lm'@; put 'KCJmdW5jdGlvbiI9PXR5cGVvZiBxLm9uKW9lLm9uY2U/cS5vbmNlKGVlLHRlKTpxLm9uKGVlLHRlKTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBxLmFkZEV2ZW50TGlzdGVuZXIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJlbWl0dGVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUg'@; put 'RXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHEpO3EuYWRkRXZlbnRMaXN0ZW5lcihlZSxmdW5jdGlvbiBzZShoZSl7b2Uub25jZSYmcS5yZW1vdmVFdmVudExpc3RlbmVyKGVlLHNlKSx0ZShoZSl9KX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGxlLCJkZWZhdWx0TWF4TGlz'@; put 'dGVuZXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sc2V0OmZ1bmN0aW9uKHEpe2lmKCJudW1iZXIiIT10eXBlb2YgcXx8cTwwfHxtKHEpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgImRlZmF1bHRNYXhMaXN0ZW5lcnMiIGlzIG91dCBvZiBy'@; put 'YW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrcSsiLiIpO009cX19KSxsZS5pbml0PWZ1bmN0aW9uKCl7KHZvaWQgMD09PXRoaXMuX2V2ZW50c3x8dGhpcy5fZXZlbnRzPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpJiYodGhp'@; put 'cy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpcy5fbWF4TGlzdGVuZXJzPXRoaXMuX21heExpc3RlbmVyc3x8dm9pZCAwfSxsZS5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKGVlKXtpZigibnVtYmVyIiE9dHlwZW9mIGVlfHxl'@; put 'ZTwwfHxtKGVlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK2VlKyIuIik7cmV0dXJuIHRoaXMuX21heExpc3RlbmVycz1lZSx0aGlzfSxsZS5wcm90b3R5'@; put 'cGUuZ2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIFIodGhpcyl9LGxlLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGVlKXtmb3IodmFyIHRlPVtdLG9lPTE7b2U8YXJndW1lbnRzLmxlbmd0aDtvZSsrKXRlLnB1c2goYXJndW1lbnRzW29lXSk7dmFyIHNlPSJlcnJvciI9PT1lZSxo'@; put 'ZT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09aGUpc2U9c2UmJnZvaWQgMD09PWhlLmVycm9yO2Vsc2UgaWYoIXNlKXJldHVybiExO2lmKHNlKXt2YXIgdWU7aWYodGUubGVuZ3RoPjAmJih1ZT10ZVswXSksdWUgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyB1ZTt2YXIgY2U9bmV3IEVycm9yKCJV'@; put 'bmhhbmRsZWQgZXJyb3IuIisodWU/IiAoIit1ZS5tZXNzYWdlKyIpIjoiIikpO3Rocm93IGNlLmNvbnRleHQ9dWUsY2V9dmFyIEc9aGVbZWVdO2lmKHZvaWQgMD09PUcpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEcpRihHLHRoaXMsdGUpO2Vsc2V7dmFyIGI9Ry5sZW5ndGgsRD1q'@; put 'KEcsYik7Zm9yKG9lPTA7b2U8YjsrK29lKUYoRFtvZV0sdGhpcyx0ZSl9cmV0dXJuITB9LGxlLnByb3RvdHlwZS5vbj1sZS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oZWUsdGUpe3JldHVybiB6KHRoaXMsZWUsdGUsITEpfSxsZS5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyPWZ1'@; put 'bmN0aW9uKGVlLHRlKXtyZXR1cm4geih0aGlzLGVlLHRlLCEwKX0sbGUucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZWUsdGUpe3JldHVybiBPKHRlKSx0aGlzLm9uKGVlLEkodGhpcyxlZSx0ZSkpLHRoaXN9LGxlLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyPWZ1bmN0aW9uKGVlLHRl'@; put 'KXtyZXR1cm4gTyh0ZSksdGhpcy5wcmVwZW5kTGlzdGVuZXIoZWUsSSh0aGlzLGVlLHRlKSksdGhpc30sbGUucHJvdG90eXBlLm9mZj1sZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oZWUsdGUpe3ZhciBvZSxzZSxoZSx1ZSxjZTtpZihPKHRlKSx2b2lkIDA9PT0oc2U9dGhp'@; put 'cy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT0ob2U9c2VbZWVdKSlyZXR1cm4gdGhpcztpZihvZT09PXRlfHxvZS5saXN0ZW5lcj09PXRlKTA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6KGRlbGV0ZSBzZVtlZV0sc2UucmVt'@; put 'b3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLGVlLG9lLmxpc3RlbmVyfHx0ZSkpO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIG9lKXtmb3IoaGU9LTEsdWU9b2UubGVuZ3RoLTE7dWU+PTA7dWUtLSlpZihvZVt1ZV09PT10ZXx8b2VbdWVdLmxpc3RlbmVyPT09dGUp'@; put 'e2NlPW9lW3VlXS5saXN0ZW5lcixoZT11ZTticmVha31pZihoZTwwKXJldHVybiB0aGlzOzA9PT1oZT9vZS5zaGlmdCgpOmZ1bmN0aW9uIFYocSxlZSl7Zm9yKDtlZSsxPHEubGVuZ3RoO2VlKyspcVtlZV09cVtlZSsxXTtxLnBvcCgpfShvZSxoZSksMT09PW9lLmxlbmd0aCYmKHNlW2VlXT1v'@; put 'ZVswXSksdm9pZCAwIT09c2UucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLGVlLGNlfHx0ZSl9cmV0dXJuIHRoaXN9LGxlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oZWUpe3ZhciB0ZSxvZSxzZTtpZih2b2lkIDA9PT0ob2U9dGhpcy5f'@; put 'ZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT1vZS5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApOnZvaWQgMCE9PW9lW2VlXSYmKDA9PS0tdGhpcy5fZXZl'@; put 'bnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIG9lW2VlXSksdGhpcztpZigwPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIHVlLGhlPU9iamVjdC5rZXlzKG9lKTtmb3Ioc2U9MDtzZTxoZS5sZW5ndGg7KytzZSkicmVtb3ZlTGlzdGVuZXIiIT09KHVlPWhl'@; put 'W3NlXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKHVlKTtyZXR1cm4gdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoInJlbW92ZUxpc3RlbmVyIiksdGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCx0aGlzfWlmKCJmdW5jdGlvbiI9PXR5cGVvZih0'@; put 'ZT1vZVtlZV0pKXRoaXMucmVtb3ZlTGlzdGVuZXIoZWUsdGUpO2Vsc2UgaWYodm9pZCAwIT09dGUpZm9yKHNlPXRlLmxlbmd0aC0xO3NlPj0wO3NlLS0pdGhpcy5yZW1vdmVMaXN0ZW5lcihlZSx0ZVtzZV0pO3JldHVybiB0aGlzfSxsZS5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKGVl'@; put 'KXtyZXR1cm4gayh0aGlzLGVlLCEwKX0sbGUucHJvdG90eXBlLnJhd0xpc3RlbmVycz1mdW5jdGlvbihlZSl7cmV0dXJuIGsodGhpcyxlZSwhMSl9LGxlLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24ocSxlZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHEubGlzdGVuZXJDb3VudD9xLmxpc3Rl'@; put 'bmVyQ291bnQoZWUpOkUuY2FsbChxLGVlKX0sbGUucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9RSxsZS5wcm90b3R5cGUuZXZlbnROYW1lcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP2FlKHRoaXMuX2V2ZW50cyk6W119fSwzNjUwNTooYXQsSWUsRik9Pnt2YXIgYWU9'@; put 'Rig4NDMpLkJ1ZmZlcix4PUYoNzU4MjkpO2F0LmV4cG9ydHM9ZnVuY3Rpb24gbShsZSxNLE8sUil7aWYoYWUuaXNCdWZmZXIobGUpfHwobGU9YWUuZnJvbShsZSwiYmluYXJ5IikpLE0mJihhZS5pc0J1ZmZlcihNKXx8KE09YWUuZnJvbShNLCJiaW5hcnkiKSksOCE9PU0ubGVuZ3RoKSl0aHJv'@; put 'dyBuZXcgUmFuZ2VFcnJvcigic2FsdCBzaG91bGQgYmUgQnVmZmVyIHdpdGggOCBieXRlIGxlbmd0aCIpO2Zvcih2YXIgej1PLzgsSz1hZS5hbGxvYyh6KSxJPWFlLmFsbG9jKFJ8fDApLGs9YWUuYWxsb2MoMCk7ej4wfHxSPjA7KXt2YXIgRT1uZXcgeDtFLnVwZGF0ZShrKSxFLnVwZGF0ZShs'@; put 'ZSksTSYmRS51cGRhdGUoTSksaz1FLmRpZ2VzdCgpO3ZhciBqPTA7aWYoej4wKXt2YXIgVj1LLmxlbmd0aC16O2o9TWF0aC5taW4oeixrLmxlbmd0aCksay5jb3B5KEssViwwLGopLHotPWp9aWYoajxrLmxlbmd0aCYmUj4wKXt2YXIgQj1JLmxlbmd0aC1SLFk9TWF0aC5taW4oUixrLmxlbmd0'@; put 'aC1qKTtrLmNvcHkoSSxCLGosaitZKSxSLT1ZfX1yZXR1cm4gay5maWxsKDApLHtrZXk6SyxpdjpJfX19LDYwMzgwOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig4NDMpLkJ1ZmZlcix4PUYoOTY3NDUpLlRyYW5zZm9ybTtmdW5jdGlvbiBNKE8pe3guY2FsbCh0aGlzKSx0aGlz'@; put 'Ll9ibG9jaz1hZS5hbGxvY1Vuc2FmZShPKSx0aGlzLl9ibG9ja1NpemU9Tyx0aGlzLl9ibG9ja09mZnNldD0wLHRoaXMuX2xlbmd0aD1bMCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSExfUYoNjY2OTgpKE0seCksTS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihPLFIseil7dmFyIEs9'@; put 'bnVsbDt0cnl7dGhpcy51cGRhdGUoTyxSKX1jYXRjaChJKXtLPUl9eihLKX0sTS5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKE8pe3ZhciBSPW51bGw7dHJ5e3RoaXMucHVzaCh0aGlzLmRpZ2VzdCgpKX1jYXRjaCh6KXtSPXp9TyhSKX0sTS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKE8s'@; put 'Uil7aWYoZnVuY3Rpb24gbGUoTyxSKXtpZighYWUuaXNCdWZmZXIoTykmJiJzdHJpbmciIT10eXBlb2YgTyl0aHJvdyBuZXcgVHlwZUVycm9yKFIrIiBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIil9KE8sIkRhdGEiKSx0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdl'@; put 'c3QgYWxyZWFkeSBjYWxsZWQiKTthZS5pc0J1ZmZlcihPKXx8KE89YWUuZnJvbShPLFIpKTtmb3IodmFyIHo9dGhpcy5fYmxvY2ssSz0wO3RoaXMuX2Jsb2NrT2Zmc2V0K08ubGVuZ3RoLUs+PXRoaXMuX2Jsb2NrU2l6ZTspe2Zvcih2YXIgST10aGlzLl9ibG9ja09mZnNldDtJPHRoaXMuX2Js'@; put 'b2NrU2l6ZTspeltJKytdPU9bSysrXTt0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wfWZvcig7SzxPLmxlbmd0aDspelt0aGlzLl9ibG9ja09mZnNldCsrXT1PW0srK107Zm9yKHZhciBrPTAsRT04Kk8ubGVuZ3RoO0U+MDsrK2spdGhpcy5fbGVuZ3RoW2tdKz1FLChFPXRoaXMu'@; put 'X2xlbmd0aFtrXS80Mjk0OTY3Mjk2fDApPjAmJih0aGlzLl9sZW5ndGhba10tPTQyOTQ5NjcyOTYqRSk7cmV0dXJuIHRoaXN9LE0ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl91cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIil9LE0ucHJvdG90eXBlLmRp'@; put 'Z2VzdD1mdW5jdGlvbihPKXtpZih0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt0aGlzLl9maW5hbGl6ZWQ9ITA7dmFyIFI9dGhpcy5fZGlnZXN0KCk7dm9pZCAwIT09TyYmKFI9Ui50b1N0cmluZyhPKSksdGhpcy5fYmxvY2suZmlsbCgw'@; put 'KSx0aGlzLl9ibG9ja09mZnNldD0wO2Zvcih2YXIgej0wO3o8NDsrK3opdGhpcy5fbGVuZ3RoW3pdPTA7cmV0dXJuIFJ9LE0ucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl9kaWdlc3QgaXMgbm90IGltcGxlbWVudGVkIil9LGF0LmV4cG9ydHM9TX0sNzEw'@; put 'NzY6KGF0LEllLEYpPT57dmFyIGFlPUllO2FlLnV0aWxzPUYoMTk4NzUpLGFlLmNvbW1vbj1GKDkyMDg1KSxhZS5zaGE9Rig1NzY1OCksYWUucmlwZW1kPUYoNDgzNDQpLGFlLmhtYWM9Rig3NjE5MiksYWUuc2hhMT1hZS5zaGEuc2hhMSxhZS5zaGEyNTY9YWUuc2hhLnNoYTI1NixhZS5zaGEy'@; put 'MjQ9YWUuc2hhLnNoYTIyNCxhZS5zaGEzODQ9YWUuc2hhLnNoYTM4NCxhZS5zaGE1MTI9YWUuc2hhLnNoYTUxMixhZS5yaXBlbWQxNjA9YWUucmlwZW1kLnJpcGVtZDE2MH0sOTIwODU6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDE5ODc1KSx4PUYoNTc3OTgpO2Z1bmN0aW9u'@; put 'IG0oKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tTaXplPXRoaXMuY29uc3RydWN0b3IuYmxvY2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5obWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3Ry'@; put 'ZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlzLmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfUllLkJsb2NrSGFzaD1tLG0ucHJvdG90eXBlLnVwZGF0ZT1m'@; put 'dW5jdGlvbihNLE8pe2lmKE09YWUudG9BcnJheShNLE8pLHRoaXMucGVuZGluZz10aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nLmNvbmNhdChNKTpNLHRoaXMucGVuZGluZ1RvdGFsKz1NLmxlbmd0aCx0aGlzLnBlbmRpbmcubGVuZ3RoPj10aGlzLl9kZWx0YTgpe3ZhciBSPShNPXRoaXMucGVu'@; put 'ZGluZykubGVuZ3RoJXRoaXMuX2RlbHRhODt0aGlzLnBlbmRpbmc9TS5zbGljZShNLmxlbmd0aC1SLE0ubGVuZ3RoKSwwPT09dGhpcy5wZW5kaW5nLmxlbmd0aCYmKHRoaXMucGVuZGluZz1udWxsKSxNPWFlLmpvaW4zMihNLDAsTS5sZW5ndGgtUix0aGlzLmVuZGlhbik7Zm9yKHZhciB6PTA7'@; put 'ejxNLmxlbmd0aDt6Kz10aGlzLl9kZWx0YTMyKXRoaXMuX3VwZGF0ZShNLHoseit0aGlzLl9kZWx0YTMyKX1yZXR1cm4gdGhpc30sbS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKE0pe3JldHVybiB0aGlzLnVwZGF0ZSh0aGlzLl9wYWQoKSkseChudWxsPT09dGhpcy5wZW5kaW5nKSx0aGlz'@; put 'Ll9kaWdlc3QoTSl9LG0ucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oKXt2YXIgTT10aGlzLnBlbmRpbmdUb3RhbCxPPXRoaXMuX2RlbHRhOCxSPU8tKE0rdGhpcy5wYWRMZW5ndGgpJU8sej1uZXcgQXJyYXkoUit0aGlzLnBhZExlbmd0aCk7elswXT0xMjg7Zm9yKHZhciBLPTE7SzxSO0srKyl6'@; put 'W0tdPTA7aWYoTTw8PTMsImJpZyI9PT10aGlzLmVuZGlhbil7Zm9yKHZhciBJPTg7STx0aGlzLnBhZExlbmd0aDtJKyspeltLKytdPTA7eltLKytdPTAseltLKytdPTAseltLKytdPTAseltLKytdPTAseltLKytdPU0+Pj4yNCYyNTUseltLKytdPU0+Pj4xNiYyNTUseltLKytdPU0+Pj44JjI1'@; put 'NSx6W0srK109MjU1Jk19ZWxzZSBmb3IoeltLKytdPTI1NSZNLHpbSysrXT1NPj4+OCYyNTUseltLKytdPU0+Pj4xNiYyNTUseltLKytdPU0+Pj4yNCYyNTUseltLKytdPTAseltLKytdPTAseltLKytdPTAseltLKytdPTAsST04O0k8dGhpcy5wYWRMZW5ndGg7SSsrKXpbSysrXT0wO3JldHVy'@; put 'biB6fX0sNzYxOTI6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDE5ODc1KSx4PUYoNTc3OTgpO2Z1bmN0aW9uIG0obGUsTSxPKXtpZighKHRoaXMgaW5zdGFuY2VvZiBtKSlyZXR1cm4gbmV3IG0obGUsTSxPKTt0aGlzLkhhc2g9bGUsdGhpcy5ibG9ja1NpemU9bGUuYmxvY2tT'@; put 'aXplLzgsdGhpcy5vdXRTaXplPWxlLm91dFNpemUvOCx0aGlzLmlubmVyPW51bGwsdGhpcy5vdXRlcj1udWxsLHRoaXMuX2luaXQoYWUudG9BcnJheShNLE8pKX1hdC5leHBvcnRzPW0sbS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oTSl7TS5sZW5ndGg+dGhpcy5ibG9ja1NpemUmJihNPShu'@; put 'ZXcgdGhpcy5IYXNoKS51cGRhdGUoTSkuZGlnZXN0KCkpLHgoTS5sZW5ndGg8PXRoaXMuYmxvY2tTaXplKTtmb3IodmFyIE89TS5sZW5ndGg7Tzx0aGlzLmJsb2NrU2l6ZTtPKyspTS5wdXNoKDApO2ZvcihPPTA7TzxNLmxlbmd0aDtPKyspTVtPXV49NTQ7Zm9yKHRoaXMuaW5uZXI9KG5ldyB0'@; put 'aGlzLkhhc2gpLnVwZGF0ZShNKSxPPTA7TzxNLmxlbmd0aDtPKyspTVtPXV49MTA2O3RoaXMub3V0ZXI9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZShNKX0sbS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKE0sTyl7cmV0dXJuIHRoaXMuaW5uZXIudXBkYXRlKE0sTyksdGhpc30sbS5wcm90b3R5'@; put 'cGUuZGlnZXN0PWZ1bmN0aW9uKE0pe3JldHVybiB0aGlzLm91dGVyLnVwZGF0ZSh0aGlzLmlubmVyLmRpZ2VzdCgpKSx0aGlzLm91dGVyLmRpZ2VzdChNKX19LDQ4MzQ0OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigxOTg3NSkseD1GKDkyMDg1KSxtPWFlLnJvdGwzMixsZT1h'@; put 'ZS5zdW0zMixNPWFlLnN1bTMyXzMsTz1hZS5zdW0zMl80LFI9eC5CbG9ja0hhc2g7ZnVuY3Rpb24geigpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHopKXJldHVybiBuZXcgejtSLmNhbGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4'@; put 'NTM3NzUyMF0sdGhpcy5lbmRpYW49ImxpdHRsZSJ9ZnVuY3Rpb24gSyhZLFgsVSxxKXtyZXR1cm4gWTw9MTU/WF5VXnE6WTw9MzE/WCZVfH5YJnE6WTw9NDc/KFh8flUpXnE6WTw9NjM/WCZxfFUmfnE6WF4oVXx+cSl9ZnVuY3Rpb24gayhZKXtyZXR1cm4gWTw9MTU/MTM1MjgyOTkyNjpZPD0z'@; put 'MT8xNTQ4NjAzNjg0Olk8PTQ3PzE4MzYwNzI2OTE6WTw9NjM/MjA1Mzk5NDIxNzowfWFlLmluaGVyaXRzKHosUiksSWUucmlwZW1kMTYwPXosei5ibG9ja1NpemU9NTEyLHoub3V0U2l6ZT0xNjAsei5obWFjU3RyZW5ndGg9MTkyLHoucGFkTGVuZ3RoPTY0LHoucHJvdG90eXBlLl91cGRhdGU9'@; put 'ZnVuY3Rpb24oWCxVKXtmb3IodmFyIHE9dGhpcy5oWzBdLGVlPXRoaXMuaFsxXSx0ZT10aGlzLmhbMl0sb2U9dGhpcy5oWzNdLHNlPXRoaXMuaFs0XSxoZT1xLHVlPWVlLGNlPXRlLEc9b2UsYj1zZSxEPTA7RDw4MDtEKyspe3ZhciBIPWxlKG0oTyhxLEsoRCxlZSx0ZSxvZSksWFtFW0RdK1Vd'@; put 'LChZPUQpPD0xNT8wOlk8PTMxPzE1MTg1MDAyNDk6WTw9NDc/MTg1OTc3NTM5MzpZPD02Mz8yNDAwOTU5NzA4OjI4NDA4NTM4MzgpLFZbRF0pLHNlKTtxPXNlLHNlPW9lLG9lPW0odGUsMTApLHRlPWVlLGVlPUgsSD1sZShtKE8oaGUsSyg3OS1ELHVlLGNlLEcpLFhbaltEXStVXSxrKEQpKSxC'@; put 'W0RdKSxiKSxoZT1iLGI9RyxHPW0oY2UsMTApLGNlPXVlLHVlPUh9dmFyIFk7SD1NKHRoaXMuaFsxXSx0ZSxHKSx0aGlzLmhbMV09TSh0aGlzLmhbMl0sb2UsYiksdGhpcy5oWzJdPU0odGhpcy5oWzNdLHNlLGhlKSx0aGlzLmhbM109TSh0aGlzLmhbNF0scSx1ZSksdGhpcy5oWzRdPU0odGhp'@; put 'cy5oWzBdLGVlLGNlKSx0aGlzLmhbMF09SH0sei5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihYKXtyZXR1cm4iaGV4Ij09PVg/YWUudG9IZXgzMih0aGlzLmgsImxpdHRsZSIpOmFlLnNwbGl0MzIodGhpcy5oLCJsaXR0bGUiKX07dmFyIEU9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEs'@; put 'MTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10s'@; put 'aj1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0'@; put 'LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxWPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwx'@; put 'NCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSxCPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYs'@; put 'NiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXX0sNTc2NTg6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO0llLnNoYTE9Rig3NTAxMCksSWUuc2hhMjI0'@; put 'PUYoODM1NzgpLEllLnNoYTI1Nj1GKDk3ODU3KSxJZS5zaGEzODQ9Rig2ODcyMyksSWUuc2hhNTEyPUYoNDUzMDQpfSw3NTAxMDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMTk4NzUpLHg9Rig5MjA4NSksbT1GKDcyMjEpLGxlPWFlLnJvdGwzMixNPWFlLnN1bTMyLE89YWUu'@; put 'c3VtMzJfNSxSPW0uZnRfMSx6PXguQmxvY2tIYXNoLEs9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDMzOTU0Njk3ODJdO2Z1bmN0aW9uIEkoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBJKSlyZXR1cm4gbmV3IEk7ei5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIz'@; put 'MjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuVz1uZXcgQXJyYXkoODApfWFlLmluaGVyaXRzKEkseiksYXQuZXhwb3J0cz1JLEkuYmxvY2tTaXplPTUxMixJLm91dFNpemU9MTYwLEkuaG1hY1N0cmVuZ3RoPTgwLEkucGFkTGVuZ3RoPTY0LEkucHJvdG90eXBl'@; put 'Ll91cGRhdGU9ZnVuY3Rpb24oRSxqKXtmb3IodmFyIFY9dGhpcy5XLEI9MDtCPDE2O0IrKylWW0JdPUVbaitCXTtmb3IoO0I8Vi5sZW5ndGg7QisrKVZbQl09bGUoVltCLTNdXlZbQi04XV5WW0ItMTRdXlZbQi0xNl0sMSk7dmFyIFk9dGhpcy5oWzBdLFg9dGhpcy5oWzFdLFU9dGhpcy5oWzJd'@; put 'LHE9dGhpcy5oWzNdLGVlPXRoaXMuaFs0XTtmb3IoQj0wO0I8Vi5sZW5ndGg7QisrKXt2YXIgdGU9fn4oQi8yMCksb2U9TyhsZShZLDUpLFIodGUsWCxVLHEpLGVlLFZbQl0sS1t0ZV0pO2VlPXEscT1VLFU9bGUoWCwzMCksWD1ZLFk9b2V9dGhpcy5oWzBdPU0odGhpcy5oWzBdLFkpLHRoaXMu'@; put 'aFsxXT1NKHRoaXMuaFsxXSxYKSx0aGlzLmhbMl09TSh0aGlzLmhbMl0sVSksdGhpcy5oWzNdPU0odGhpcy5oWzNdLHEpLHRoaXMuaFs0XT1NKHRoaXMuaFs0XSxlZSl9LEkucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oRSl7cmV0dXJuImhleCI9PT1FP2FlLnRvSGV4MzIodGhpcy5oLCJi'@; put 'aWciKTphZS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw4MzU3ODooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMTk4NzUpLHg9Rig5Nzg1Nyk7ZnVuY3Rpb24gbSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG0pKXJldHVybiBuZXcgbTt4LmNhbGwodGhpcyksdGhpcy5oPVszMjM4'@; put 'MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XX1hZS5pbmhlcml0cyhtLHgpLGF0LmV4cG9ydHM9bSxtLmJsb2NrU2l6ZT01MTIsbS5vdXRTaXplPTIyNCxtLmhtYWNTdHJlbmd0aD0xOTIsbS5w'@; put 'YWRMZW5ndGg9NjQsbS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihNKXtyZXR1cm4iaGV4Ij09PU0/YWUudG9IZXgzMih0aGlzLmguc2xpY2UoMCw3KSwiYmlnIik6YWUuc3BsaXQzMih0aGlzLmguc2xpY2UoMCw3KSwiYmlnIil9fSw5Nzg1NzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7'@; put 'dmFyIGFlPUYoMTk4NzUpLHg9Rig5MjA4NSksbT1GKDcyMjEpLGxlPUYoNTc3OTgpLE09YWUuc3VtMzIsTz1hZS5zdW0zMl80LFI9YWUuc3VtMzJfNSx6PW0uY2gzMixLPW0ubWFqMzIsST1tLnMwXzI1NixrPW0uczFfMjU2LEU9bS5nMF8yNTYsaj1tLmcxXzI1NixWPXguQmxvY2tIYXNoLEI9'@; put 'WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMy'@; put 'NDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzky'@; put 'Njk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1Mjgw'@; put 'NCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2'@; put 'NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07ZnVuY3Rpb24gWSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFkpKXJldHVybiBuZXcgWTtWLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjky'@; put 'NCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV0sdGhpcy5rPUIsdGhpcy5XPW5ldyBBcnJheSg2NCl9YWUuaW5oZXJpdHMoWSxWKSxhdC5leHBvcnRzPVksWS5ibG9ja1NpemU9NTEyLFkub3V0U2l6ZT0yNTYsWS5obWFjU3RyZW5ndGg9MTkyLFkucGFkTGVuZ3RoPTY0LFkucHJvdG90eXBlLl91cGRh'@; put 'dGU9ZnVuY3Rpb24oVSxxKXtmb3IodmFyIGVlPXRoaXMuVyx0ZT0wO3RlPDE2O3RlKyspZWVbdGVdPVVbcSt0ZV07Zm9yKDt0ZTxlZS5sZW5ndGg7dGUrKyllZVt0ZV09TyhqKGVlW3RlLTJdKSxlZVt0ZS03XSxFKGVlW3RlLTE1XSksZWVbdGUtMTZdKTt2YXIgb2U9dGhpcy5oWzBdLHNlPXRo'@; put 'aXMuaFsxXSxoZT10aGlzLmhbMl0sdWU9dGhpcy5oWzNdLGNlPXRoaXMuaFs0XSxHPXRoaXMuaFs1XSxiPXRoaXMuaFs2XSxEPXRoaXMuaFs3XTtmb3IobGUodGhpcy5rLmxlbmd0aD09PWVlLmxlbmd0aCksdGU9MDt0ZTxlZS5sZW5ndGg7dGUrKyl7dmFyIEg9UihELGsoY2UpLHooY2UsRyxi'@; put 'KSx0aGlzLmtbdGVdLGVlW3RlXSksTj1NKEkob2UpLEsob2Usc2UsaGUpKTtEPWIsYj1HLEc9Y2UsY2U9TSh1ZSxIKSx1ZT1oZSxoZT1zZSxzZT1vZSxvZT1NKEgsTil9dGhpcy5oWzBdPU0odGhpcy5oWzBdLG9lKSx0aGlzLmhbMV09TSh0aGlzLmhbMV0sc2UpLHRoaXMuaFsyXT1NKHRoaXMu'@; put 'aFsyXSxoZSksdGhpcy5oWzNdPU0odGhpcy5oWzNdLHVlKSx0aGlzLmhbNF09TSh0aGlzLmhbNF0sY2UpLHRoaXMuaFs1XT1NKHRoaXMuaFs1XSxHKSx0aGlzLmhbNl09TSh0aGlzLmhbNl0sYiksdGhpcy5oWzddPU0odGhpcy5oWzddLEQpfSxZLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9u'@; put 'KFUpe3JldHVybiJoZXgiPT09VT9hZS50b0hleDMyKHRoaXMuaCwiYmlnIik6YWUuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sNjg3MjM6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDE5ODc1KSx4PUYoNDUzMDQpO2Z1bmN0aW9uIG0oKXtpZighKHRoaXMgaW5zdGFuY2VvZiBt'@; put 'KSlyZXR1cm4gbmV3IG07eC5jYWxsKHRoaXMpLHRoaXMuaD1bMzQxODA3MDM2NSwzMjM4MzcxMDMyLDE2NTQyNzAyNTAsOTE0MTUwNjYzLDI0Mzg1MjkzNzAsODEyNzAyOTk5LDM1NTQ2MjM2MCw0MTQ0OTEyNjk3LDE3MzE0MDU0MTUsNDI5MDc3NTg1NywyMzk0MTgwMjMxLDE3NTA2MDMwMjUs'@; put 'MzY3NTAwODUyNSwxNjk0MDc2ODM5LDEyMDMwNjI4MTMsMzIwNDA3NTQyOF19YWUuaW5oZXJpdHMobSx4KSxhdC5leHBvcnRzPW0sbS5ibG9ja1NpemU9MTAyNCxtLm91dFNpemU9Mzg0LG0uaG1hY1N0cmVuZ3RoPTE5MixtLnBhZExlbmd0aD0xMjgsbS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5j'@; put 'dGlvbihNKXtyZXR1cm4iaGV4Ij09PU0/YWUudG9IZXgzMih0aGlzLmguc2xpY2UoMCwxMiksImJpZyIpOmFlLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LDQ1MzA0OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigxOTg3NSkseD1GKDkyMDg1KSxtPUYoNTc3'@; put 'OTgpLGxlPWFlLnJvdHI2NF9oaSxNPWFlLnJvdHI2NF9sbyxPPWFlLnNocjY0X2hpLFI9YWUuc2hyNjRfbG8sej1hZS5zdW02NCxLPWFlLnN1bTY0X2hpLEk9YWUuc3VtNjRfbG8saz1hZS5zdW02NF80X2hpLEU9YWUuc3VtNjRfNF9sbyxqPWFlLnN1bTY0XzVfaGksVj1hZS5zdW02NF81X2xv'@; put 'LEI9eC5CbG9ja0hhc2gsWT1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3'@; put 'MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEw'@; put 'Myw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1'@; put 'NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2'@; put 'OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1'@; put 'MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQs'@; put 'MzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3'@; put 'NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0'@; put 'NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTky'@; put 'LDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2'@; put 'NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdO2Z1bmN0aW9uIFgoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBYKSlyZXR1cm4gbmV3IFg7Qi5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3'@; put 'OTAzMzcwMyw0MDg5MjM1NzIwLDMxNDQxMzQyNzcsMjIyNzg3MzU5NSwxMDEzOTA0MjQyLDQyNzExNzU3MjMsMjc3MzQ4MDc2MiwxNTk1NzUwMTI5LDEzNTk4OTMxMTksMjkxNzU2NTEzNywyNjAwODIyOTI0LDcyNTUxMTE5OSw1Mjg3MzQ2MzUsNDIxNTM4OTU0NywxNTQxNDU5MjI1LDMyNzAz'@; put 'MzIwOV0sdGhpcy5rPVksdGhpcy5XPW5ldyBBcnJheSgxNjApfWZ1bmN0aW9uIFUoSCxOLGcsQyxTKXt2YXIgdj1IJmdefkgmUztyZXR1cm4gdjwwJiYodis9NDI5NDk2NzI5Niksdn1mdW5jdGlvbiBxKEgsTixnLEMsUyx2KXt2YXIgcD1OJkNefk4mdjtyZXR1cm4gcDwwJiYocCs9NDI5NDk2'@; put 'NzI5NikscH1mdW5jdGlvbiBlZShILE4sZyxDLFMpe3ZhciB2PUgmZ15IJlNeZyZTO3JldHVybiB2PDAmJih2Kz00Mjk0OTY3Mjk2KSx2fWZ1bmN0aW9uIHRlKEgsTixnLEMsUyx2KXt2YXIgcD1OJkNeTiZ2XkMmdjtyZXR1cm4gcDwwJiYocCs9NDI5NDk2NzI5NikscH1mdW5jdGlvbiBvZShI'@; put 'LE4pe3ZhciB2PWxlKEgsTiwyOClebGUoTixILDIpXmxlKE4sSCw3KTtyZXR1cm4gdjwwJiYodis9NDI5NDk2NzI5Niksdn1mdW5jdGlvbiBzZShILE4pe3ZhciB2PU0oSCxOLDI4KV5NKE4sSCwyKV5NKE4sSCw3KTtyZXR1cm4gdjwwJiYodis9NDI5NDk2NzI5Niksdn1mdW5jdGlvbiBoZShI'@; put 'LE4pe3ZhciB2PWxlKEgsTiwxNClebGUoSCxOLDE4KV5sZShOLEgsOSk7cmV0dXJuIHY8MCYmKHYrPTQyOTQ5NjcyOTYpLHZ9ZnVuY3Rpb24gdWUoSCxOKXt2YXIgdj1NKEgsTiwxNCleTShILE4sMTgpXk0oTixILDkpO3JldHVybiB2PDAmJih2Kz00Mjk0OTY3Mjk2KSx2fWZ1bmN0aW9uIGNl'@; put 'KEgsTil7dmFyIHY9bGUoSCxOLDEpXmxlKEgsTiw4KV5PKEgsTiw3KTtyZXR1cm4gdjwwJiYodis9NDI5NDk2NzI5Niksdn1mdW5jdGlvbiBHKEgsTil7dmFyIHY9TShILE4sMSleTShILE4sOCleUihILE4sNyk7cmV0dXJuIHY8MCYmKHYrPTQyOTQ5NjcyOTYpLHZ9ZnVuY3Rpb24gYihILE4p'@; put 'e3ZhciB2PWxlKEgsTiwxOSlebGUoTixILDI5KV5PKEgsTiw2KTtyZXR1cm4gdjwwJiYodis9NDI5NDk2NzI5Niksdn1mdW5jdGlvbiBEKEgsTil7dmFyIHY9TShILE4sMTkpXk0oTixILDI5KV5SKEgsTiw2KTtyZXR1cm4gdjwwJiYodis9NDI5NDk2NzI5Niksdn1hZS5pbmhlcml0cyhYLEIp'@; put 'LGF0LmV4cG9ydHM9WCxYLmJsb2NrU2l6ZT0xMDI0LFgub3V0U2l6ZT01MTIsWC5obWFjU3RyZW5ndGg9MTkyLFgucGFkTGVuZ3RoPTEyOCxYLnByb3RvdHlwZS5fcHJlcGFyZUJsb2NrPWZ1bmN0aW9uKE4sZyl7Zm9yKHZhciBDPXRoaXMuVyxTPTA7UzwzMjtTKyspQ1tTXT1OW2crU107Zm9y'@; put 'KDtTPEMubGVuZ3RoO1MrPTIpe3ZhciB2PWIoQ1tTLTRdLENbUy0zXSkscD1EKENbUy00XSxDW1MtM10pLHc9Q1tTLTE0XSxKPUNbUy0xM10sbmU9Y2UoQ1tTLTMwXSxDW1MtMjldKSxkZT1HKENbUy0zMF0sQ1tTLTI5XSksZmU9Q1tTLTMyXSx4ZT1DW1MtMzFdO0NbU109ayh2LHAsdyxKLG5l'@; put 'LGRlLGZlLHhlKSxDW1MrMV09RSh2LHAsdyxKLG5lLGRlLGZlLHhlKX19LFgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oTixnKXt0aGlzLl9wcmVwYXJlQmxvY2soTixnKTt2YXIgQz10aGlzLlcsUz10aGlzLmhbMF0sdj10aGlzLmhbMV0scD10aGlzLmhbMl0sdz10aGlzLmhbM10sSj10'@; put 'aGlzLmhbNF0sbmU9dGhpcy5oWzVdLGRlPXRoaXMuaFs2XSxmZT10aGlzLmhbN10seGU9dGhpcy5oWzhdLExlPXRoaXMuaFs5XSxGZT10aGlzLmhbMTBdLE9lPXRoaXMuaFsxMV0samU9dGhpcy5oWzEyXSxXZT10aGlzLmhbMTNdLEtlPXRoaXMuaFsxNF0sWWU9dGhpcy5oWzE1XTttKHRoaXMu'@; put 'ay5sZW5ndGg9PT1DLmxlbmd0aCk7Zm9yKHZhciBRZT0wO1FlPEMubGVuZ3RoO1FlKz0yKXt2YXIgbHQ9S2UsUGU9WWUsYmU9aGUoeGUsTGUpLEFlPXVlKHhlLExlKSxUZT1VKHhlLDAsRmUsMCxqZSkscWU9cSgwLExlLDAsT2UsMCxXZSksWGU9dGhpcy5rW1FlXSxVZT10aGlzLmtbUWUrMV0s'@; put 'aHQ9Q1tRZV0sTWU9Q1tRZSsxXSxEZT1qKGx0LFBlLGJlLEFlLFRlLHFlLFhlLFVlLGh0LE1lKSx6ZT1WKGx0LFBlLGJlLEFlLFRlLHFlLFhlLFVlLGh0LE1lKTtsdD1vZShTLHYpLFBlPXNlKFMsdiksYmU9ZWUoUywwLHAsMCxKKSxBZT10ZSgwLHYsMCx3LDAsbmUpO3ZhciBvdD1LKGx0LFBl'@; put 'LGJlLEFlKSx1dD1JKGx0LFBlLGJlLEFlKTtLZT1qZSxZZT1XZSxqZT1GZSxXZT1PZSxGZT14ZSxPZT1MZSx4ZT1LKGRlLGZlLERlLHplKSxMZT1JKGZlLGZlLERlLHplKSxkZT1KLGZlPW5lLEo9cCxuZT13LHA9Uyx3PXYsUz1LKERlLHplLG90LHV0KSx2PUkoRGUsemUsb3QsdXQpfXoodGhp'@; put 'cy5oLDAsUyx2KSx6KHRoaXMuaCwyLHAsdykseih0aGlzLmgsNCxKLG5lKSx6KHRoaXMuaCw2LGRlLGZlKSx6KHRoaXMuaCw4LHhlLExlKSx6KHRoaXMuaCwxMCxGZSxPZSkseih0aGlzLmgsMTIsamUsV2UpLHoodGhpcy5oLDE0LEtlLFllKX0sWC5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlv'@; put 'bihOKXtyZXR1cm4iaGV4Ij09PU4/YWUudG9IZXgzMih0aGlzLmgsImJpZyIpOmFlLnNwbGl0MzIodGhpcy5oLCJiaWciKX19LDcyMjE6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciB4PUYoMTk4NzUpLnJvdHIzMjtmdW5jdGlvbiBsZShrLEUsail7cmV0dXJuIGsmRV5+ayZqfWZ1bmN0'@; put 'aW9uIE0oayxFLGope3JldHVybiBrJkVeayZqXkUman1mdW5jdGlvbiBPKGssRSxqKXtyZXR1cm4ga15FXmp9SWUuZnRfMT1mdW5jdGlvbiBtKGssRSxqLFYpe3JldHVybiAwPT09az9sZShFLGosVik6MT09PWt8fDM9PT1rP08oRSxqLFYpOjI9PT1rP00oRSxqLFYpOnZvaWQgMH0sSWUuY2gz'@; put 'Mj1sZSxJZS5tYWozMj1NLEllLnAzMj1PLEllLnMwXzI1Nj1mdW5jdGlvbiBSKGspe3JldHVybiB4KGssMileeChrLDEzKV54KGssMjIpfSxJZS5zMV8yNTY9ZnVuY3Rpb24geihrKXtyZXR1cm4geChrLDYpXngoaywxMSleeChrLDI1KX0sSWUuZzBfMjU2PWZ1bmN0aW9uIEsoayl7cmV0dXJu'@; put 'IHgoayw3KV54KGssMTgpXms+Pj4zfSxJZS5nMV8yNTY9ZnVuY3Rpb24gSShrKXtyZXR1cm4geChrLDE3KV54KGssMTkpXms+Pj4xMH19LDE5ODc1OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig1Nzc5OCkseD1GKDY2Njk4KTtmdW5jdGlvbiBtKEQsSCl7cmV0dXJuISg1NTI5'@; put 'NiE9KDY0NTEyJkQuY2hhckNvZGVBdChIKSl8fEg8MHx8SCsxPj1ELmxlbmd0aCkmJjU2MzIwPT0oNjQ1MTImRC5jaGFyQ29kZUF0KEgrMSkpfWZ1bmN0aW9uIE8oRCl7cmV0dXJuKEQ+Pj4yNHxEPj4+OCY2NTI4MHxEPDw4JjE2NzExNjgwfCgyNTUmRCk8PDI0KT4+PjB9ZnVuY3Rpb24geihE'@; put 'KXtyZXR1cm4gMT09PUQubGVuZ3RoPyIwIitEOkR9ZnVuY3Rpb24gSyhEKXtyZXR1cm4gNz09PUQubGVuZ3RoPyIwIitEOjY9PT1ELmxlbmd0aD8iMDAiK0Q6NT09PUQubGVuZ3RoPyIwMDAiK0Q6ND09PUQubGVuZ3RoPyIwMDAwIitEOjM9PT1ELmxlbmd0aD8iMDAwMDAiK0Q6Mj09PUQubGVu'@; put 'Z3RoPyIwMDAwMDAiK0Q6MT09PUQubGVuZ3RoPyIwMDAwMDAwIitEOkR9SWUuaW5oZXJpdHM9eCxJZS50b0FycmF5PWZ1bmN0aW9uIGxlKEQsSCl7aWYoQXJyYXkuaXNBcnJheShEKSlyZXR1cm4gRC5zbGljZSgpO2lmKCFEKXJldHVybltdO3ZhciBOPVtdO2lmKCJzdHJpbmciPT10eXBlb2Yg'@; put 'RClpZihIKXtpZigiaGV4Ij09PUgpZm9yKChEPUQucmVwbGFjZSgvW15hLXowLTldKy9naSwiIikpLmxlbmd0aCUyIT0wJiYoRD0iMCIrRCksQz0wO0M8RC5sZW5ndGg7Qys9MilOLnB1c2gocGFyc2VJbnQoRFtDXStEW0MrMV0sMTYpKX1lbHNlIGZvcih2YXIgZz0wLEM9MDtDPEQubGVuZ3Ro'@; put 'O0MrKyl7dmFyIFM9RC5jaGFyQ29kZUF0KEMpO1M8MTI4P05bZysrXT1TOlM8MjA0OD8oTltnKytdPVM+PjZ8MTkyLE5bZysrXT02MyZTfDEyOCk6bShELEMpPyhTPTY1NTM2KygoMTAyMyZTKTw8MTApKygxMDIzJkQuY2hhckNvZGVBdCgrK0MpKSxOW2crK109Uz4+MTh8MjQwLE5bZysrXT1T'@; put 'Pj4xMiY2M3wxMjgsTltnKytdPVM+PjYmNjN8MTI4LE5bZysrXT02MyZTfDEyOCk6KE5bZysrXT1TPj4xMnwyMjQsTltnKytdPVM+PjYmNjN8MTI4LE5bZysrXT02MyZTfDEyOCl9ZWxzZSBmb3IoQz0wO0M8RC5sZW5ndGg7QysrKU5bQ109MHxEW0NdO3JldHVybiBOfSxJZS50b0hleD1mdW5j'@; put 'dGlvbiBNKEQpe2Zvcih2YXIgSD0iIixOPTA7TjxELmxlbmd0aDtOKyspSCs9eihEW05dLnRvU3RyaW5nKDE2KSk7cmV0dXJuIEh9LEllLmh0b25sPU8sSWUudG9IZXgzMj1mdW5jdGlvbiBSKEQsSCl7Zm9yKHZhciBOPSIiLGc9MDtnPEQubGVuZ3RoO2crKyl7dmFyIEM9RFtnXTsibGl0dGxl'@; put 'Ij09PUgmJihDPU8oQykpLE4rPUsoQy50b1N0cmluZygxNikpfXJldHVybiBOfSxJZS56ZXJvMj16LEllLnplcm84PUssSWUuam9pbjMyPWZ1bmN0aW9uIEkoRCxILE4sZyl7dmFyIEM9Ti1IO2FlKEMlND09MCk7Zm9yKHZhciBTPW5ldyBBcnJheShDLzQpLHY9MCxwPUg7djxTLmxlbmd0aDt2'@; put 'KysscCs9NClTW3ZdPSgiYmlnIj09PWc/RFtwXTw8MjR8RFtwKzFdPDwxNnxEW3ArMl08PDh8RFtwKzNdOkRbcCszXTw8MjR8RFtwKzJdPDwxNnxEW3ArMV08PDh8RFtwXSk+Pj4wO3JldHVybiBTfSxJZS5zcGxpdDMyPWZ1bmN0aW9uIGsoRCxIKXtmb3IodmFyIE49bmV3IEFycmF5KDQqRC5s'@; put 'ZW5ndGgpLGc9MCxDPTA7ZzxELmxlbmd0aDtnKyssQys9NCl7dmFyIFM9RFtnXTsiYmlnIj09PUg/KE5bQ109Uz4+PjI0LE5bQysxXT1TPj4+MTYmMjU1LE5bQysyXT1TPj4+OCYyNTUsTltDKzNdPTI1NSZTKTooTltDKzNdPVM+Pj4yNCxOW0MrMl09Uz4+PjE2JjI1NSxOW0MrMV09Uz4+Pjgm'@; put 'MjU1LE5bQ109MjU1JlMpfXJldHVybiBOfSxJZS5yb3RyMzI9ZnVuY3Rpb24gRShELEgpe3JldHVybiBEPj4+SHxEPDwzMi1IfSxJZS5yb3RsMzI9ZnVuY3Rpb24gaihELEgpe3JldHVybiBEPDxIfEQ+Pj4zMi1IfSxJZS5zdW0zMj1mdW5jdGlvbiBWKEQsSCl7cmV0dXJuIEQrSD4+PjB9LEll'@; put 'LnN1bTMyXzM9ZnVuY3Rpb24gQihELEgsTil7cmV0dXJuIEQrSCtOPj4+MH0sSWUuc3VtMzJfND1mdW5jdGlvbiBZKEQsSCxOLGcpe3JldHVybiBEK0grTitnPj4+MH0sSWUuc3VtMzJfNT1mdW5jdGlvbiBYKEQsSCxOLGcsQyl7cmV0dXJuIEQrSCtOK2crQz4+PjB9LEllLnN1bTY0PWZ1bmN0'@; put 'aW9uIFUoRCxILE4sZyl7dmFyIHY9ZytEW0grMV0+Pj4wO0RbSF09KHY8Zz8xOjApK04rRFtIXT4+PjAsRFtIKzFdPXZ9LEllLnN1bTY0X2hpPWZ1bmN0aW9uIHEoRCxILE4sZyl7cmV0dXJuKEgrZz4+PjA8SD8xOjApK0QrTj4+PjB9LEllLnN1bTY0X2xvPWZ1bmN0aW9uIGVlKEQsSCxOLGcp'@; put 'e3JldHVybiBIK2c+Pj4wfSxJZS5zdW02NF80X2hpPWZ1bmN0aW9uIHRlKEQsSCxOLGcsQyxTLHYscCl7dmFyIHc9MCxKPUg7cmV0dXJuIHcrPShKPUorZz4+PjApPEg/MTowLHcrPShKPUorUz4+PjApPFM/MTowLEQrTitDK3YrKHcrPShKPUorcD4+PjApPHA/MTowKT4+PjB9LEllLnN1bTY0'@; put 'XzRfbG89ZnVuY3Rpb24gb2UoRCxILE4sZyxDLFMsdixwKXtyZXR1cm4gSCtnK1MrcD4+PjB9LEllLnN1bTY0XzVfaGk9ZnVuY3Rpb24gc2UoRCxILE4sZyxDLFMsdixwLHcsSil7dmFyIG5lPTAsZGU9SDtyZXR1cm4gbmUrPShkZT1kZStnPj4+MCk8SD8xOjAsbmUrPShkZT1kZStTPj4+MCk8'@; put 'Uz8xOjAsbmUrPShkZT1kZStwPj4+MCk8cD8xOjAsRCtOK0Mrdit3KyhuZSs9KGRlPWRlK0o+Pj4wKTxKPzE6MCk+Pj4wfSxJZS5zdW02NF81X2xvPWZ1bmN0aW9uIGhlKEQsSCxOLGcsQyxTLHYscCx3LEope3JldHVybiBIK2crUytwK0o+Pj4wfSxJZS5yb3RyNjRfaGk9ZnVuY3Rpb24gdWUo'@; put 'RCxILE4pe3JldHVybihIPDwzMi1OfEQ+Pj5OKT4+PjB9LEllLnJvdHI2NF9sbz1mdW5jdGlvbiBjZShELEgsTil7cmV0dXJuKEQ8PDMyLU58SD4+Pk4pPj4+MH0sSWUuc2hyNjRfaGk9ZnVuY3Rpb24gRyhELEgsTil7cmV0dXJuIEQ+Pj5OfSxJZS5zaHI2NF9sbz1mdW5jdGlvbiBiKEQsSCxO'@; put 'KXtyZXR1cm4oRDw8MzItTnxIPj4+Tik+Pj4wfX0sOTI0NDc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDcxMDc2KSx4PUYoNzgyNDcpLG09Rig1Nzc5OCk7ZnVuY3Rpb24gbGUoTSl7aWYoISh0aGlzIGluc3RhbmNlb2YgbGUpKXJldHVybiBuZXcgbGUoTSk7dGhpcy5oYXNo'@; put 'PU0uaGFzaCx0aGlzLnByZWRSZXNpc3Q9ISFNLnByZWRSZXNpc3QsdGhpcy5vdXRMZW49dGhpcy5oYXNoLm91dFNpemUsdGhpcy5taW5FbnRyb3B5PU0ubWluRW50cm9weXx8dGhpcy5oYXNoLmhtYWNTdHJlbmd0aCx0aGlzLl9yZXNlZWQ9bnVsbCx0aGlzLnJlc2VlZEludGVydmFsPW51bGws'@; put 'dGhpcy5LPW51bGwsdGhpcy5WPW51bGw7dmFyIE89eC50b0FycmF5KE0uZW50cm9weSxNLmVudHJvcHlFbmN8fCJoZXgiKSxSPXgudG9BcnJheShNLm5vbmNlLE0ubm9uY2VFbmN8fCJoZXgiKSx6PXgudG9BcnJheShNLnBlcnMsTS5wZXJzRW5jfHwiaGV4Iik7bShPLmxlbmd0aD49dGhpcy5t'@; put 'aW5FbnRyb3B5LzgsIk5vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBpczogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhpcy5faW5pdChPLFIseil9YXQuZXhwb3J0cz1sZSxsZS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oTyxSLHope3ZhciBLPU8uY29uY2F0KFIpLmNvbmNhdCh6'@; put 'KTt0aGlzLks9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpLHRoaXMuVj1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCk7Zm9yKHZhciBJPTA7STx0aGlzLlYubGVuZ3RoO0krKyl0aGlzLktbSV09MCx0aGlzLlZbSV09MTt0aGlzLl91cGRhdGUoSyksdGhpcy5fcmVzZWVkPTEsdGhpcy5yZXNlZWRJ'@; put 'bnRlcnZhbD0yODE0NzQ5NzY3MTA2NTZ9LGxlLnByb3RvdHlwZS5faG1hYz1mdW5jdGlvbigpe3JldHVybiBuZXcgYWUuaG1hYyh0aGlzLmhhc2gsdGhpcy5LKX0sbGUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oTyl7dmFyIFI9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLnVwZGF0'@; put 'ZShbMF0pO08mJihSPVIudXBkYXRlKE8pKSx0aGlzLks9Ui5kaWdlc3QoKSx0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpLE8mJih0aGlzLks9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLnVwZGF0ZShbMV0pLnVwZGF0ZShPKS5kaWdlc3QoKSx0aGlzLlY9'@; put 'dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpKX0sbGUucHJvdG90eXBlLnJlc2VlZD1mdW5jdGlvbihPLFIseixLKXsic3RyaW5nIiE9dHlwZW9mIFImJihLPXosej1SLFI9bnVsbCksTz14LnRvQXJyYXkoTyxSKSx6PXgudG9BcnJheSh6LEspLG0oTy5sZW5ndGg+PXRoaXMu'@; put 'bWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX3VwZGF0ZShPLmNvbmNhdCh6fHxbXSkpLHRoaXMuX3Jlc2VlZD0xfSxsZS5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oTyxSLHosSyl7aWYodGhp'@; put 'cy5fcmVzZWVkPnRoaXMucmVzZWVkSW50ZXJ2YWwpdGhyb3cgbmV3IEVycm9yKCJSZXNlZWQgaXMgcmVxdWlyZWQiKTsic3RyaW5nIiE9dHlwZW9mIFImJihLPXosej1SLFI9bnVsbCkseiYmKHo9eC50b0FycmF5KHosS3x8ImhleCIpLHRoaXMuX3VwZGF0ZSh6KSk7Zm9yKHZhciBJPVtdO0ku'@; put 'bGVuZ3RoPE87KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksST1JLmNvbmNhdCh0aGlzLlYpO3ZhciBrPUkuc2xpY2UoMCxPKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHopLHRoaXMuX3Jlc2VlZCsrLHguZW5jb2RlKGssUil9fSw1NTgzMzooYXQsSWUsRik9Pnsi'@; put 'dXNlIHN0cmljdCI7dmFyIGFlPUYoMjQxNzkpLkJ1ZmZlcjtJZS5fZGJjcz1LO2Zvcih2YXIgeD0tMSxtPS0yLGxlPS0xMCxNPS0xZTMsTz1uZXcgQXJyYXkoMjU2KSx6PTA7ejwyNTY7eisrKU9bel09eDtmdW5jdGlvbiBLKGosVil7aWYodGhpcy5lbmNvZGluZ05hbWU9ai5lbmNvZGluZ05h'@; put 'bWUsIWopdGhyb3cgbmV3IEVycm9yKCJEQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLiIpO2lmKCFqLnRhYmxlKXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgJyIrdGhpcy5lbmNvZGluZ05hbWUrIicgaGFzIG5vIGRhdGEuIik7dmFyIEI9ai50YWJsZSgpO3RoaXMuZGVj'@; put 'b2RlVGFibGVzPVtdLHRoaXMuZGVjb2RlVGFibGVzWzBdPU8uc2xpY2UoMCksdGhpcy5kZWNvZGVUYWJsZVNlcT1bXTtmb3IodmFyIFk9MDtZPEIubGVuZ3RoO1krKyl0aGlzLl9hZGREZWNvZGVDaHVuayhCW1ldKTt0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1WLmRlZmF1bHRDaGFyVW5pY29k'@; put 'ZSx0aGlzLmVuY29kZVRhYmxlPVtdLHRoaXMuZW5jb2RlVGFibGVTZXE9W107dmFyIFg9e307aWYoai5lbmNvZGVTa2lwVmFscylmb3IoWT0wO1k8ai5lbmNvZGVTa2lwVmFscy5sZW5ndGg7WSsrKXt2YXIgVT1qLmVuY29kZVNraXBWYWxzW1ldO2lmKCJudW1iZXIiPT10eXBlb2YgVSlYW1Vd'@; put 'PSEwO2Vsc2UgZm9yKHZhciBxPVUuZnJvbTtxPD1VLnRvO3ErKylYW3FdPSEwfWlmKHRoaXMuX2ZpbGxFbmNvZGVUYWJsZSgwLDAsWCksai5lbmNvZGVBZGQpZm9yKHZhciBlZSBpbiBqLmVuY29kZUFkZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoai5lbmNvZGVBZGQs'@; put 'ZWUpJiZ0aGlzLl9zZXRFbmNvZGVDaGFyKGVlLmNoYXJDb2RlQXQoMCksai5lbmNvZGVBZGRbZWVdKTtpZih0aGlzLmRlZkNoYXJTQj10aGlzLmVuY29kZVRhYmxlWzBdW1YuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCldLHRoaXMuZGVmQ2hhclNCPT09eCYmKHRoaXMuZGVm'@; put 'Q2hhclNCPXRoaXMuZW5jb2RlVGFibGVbMF1bIj8iXSksdGhpcy5kZWZDaGFyU0I9PT14JiYodGhpcy5kZWZDaGFyU0I9Ij8iLmNoYXJDb2RlQXQoMCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBqLmdiMTgwMzApe3RoaXMuZ2IxODAzMD1qLmdiMTgwMzAoKTt2YXIgdGU9dGhpcy5kZWNvZGVUYWJs'@; put 'ZXMubGVuZ3RoLG9lPXRoaXMuZGVjb2RlVGFibGVzW3RlXT1PLnNsaWNlKDApLHNlPXRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aCxoZT10aGlzLmRlY29kZVRhYmxlc1tzZV09Ty5zbGljZSgwKTtmb3IoWT0xMjk7WTw9MjU0O1krKyl7dmFyIGNlPXRoaXMuZGVjb2RlVGFibGVzW00tdGhpcy5k'@; put 'ZWNvZGVUYWJsZXNbMF1bWV1dO2ZvcihxPTQ4O3E8PTU3O3ErKyljZVtxXT1NLXRlfWZvcihZPTEyOTtZPD0yNTQ7WSsrKW9lW1ldPU0tc2U7Zm9yKFk9NDg7WTw9NTc7WSsrKWhlW1ldPW19fWZ1bmN0aW9uIEkoaixWKXt0aGlzLmxlYWRTdXJyb2dhdGU9LTEsdGhpcy5zZXFPYmo9dm9pZCAw'@; put 'LHRoaXMuZW5jb2RlVGFibGU9Vi5lbmNvZGVUYWJsZSx0aGlzLmVuY29kZVRhYmxlU2VxPVYuZW5jb2RlVGFibGVTZXEsdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGU9Vi5kZWZDaGFyU0IsdGhpcy5nYjE4MDMwPVYuZ2IxODAzMH1mdW5jdGlvbiBrKGosVil7dGhpcy5ub2RlSWR4PTAsdGhp'@; put 'cy5wcmV2QnVmPWFlLmFsbG9jKDApLHRoaXMuZGVjb2RlVGFibGVzPVYuZGVjb2RlVGFibGVzLHRoaXMuZGVjb2RlVGFibGVTZXE9Vi5kZWNvZGVUYWJsZVNlcSx0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1WLmRlZmF1bHRDaGFyVW5pY29kZSx0aGlzLmdiMTgwMzA9Vi5nYjE4MDMwfWZ1bmN0'@; put 'aW9uIEUoaixWKXtpZihqWzBdPlYpcmV0dXJuLTE7Zm9yKHZhciBCPTAsWT1qLmxlbmd0aDtCPFktMTspe3ZhciBYPUIrTWF0aC5mbG9vcigoWS1CKzEpLzIpO2pbWF08PVY/Qj1YOlk9WH1yZXR1cm4gQn1LLnByb3RvdHlwZS5lbmNvZGVyPUksSy5wcm90b3R5cGUuZGVjb2Rlcj1rLEsucHJv'@; put 'dG90eXBlLl9nZXREZWNvZGVUcmllTm9kZT1mdW5jdGlvbihqKXtmb3IodmFyIFY9W107aj4wO2o+Pj04KVYucHVzaCgyNTUmaik7MD09Vi5sZW5ndGgmJlYucHVzaCgwKTtmb3IodmFyIEI9dGhpcy5kZWNvZGVUYWJsZXNbMF0sWT1WLmxlbmd0aC0xO1k+MDtZLS0pe3ZhciBYPUJbVltZXV07'@; put 'aWYoWD09eClCW1ZbWV1dPU0tdGhpcy5kZWNvZGVUYWJsZXMubGVuZ3RoLHRoaXMuZGVjb2RlVGFibGVzLnB1c2goQj1PLnNsaWNlKDApKTtlbHNle2lmKCEoWDw9TSkpdGhyb3cgbmV3IEVycm9yKCJPdmVyd3JpdGUgYnl0ZSBpbiAiK3RoaXMuZW5jb2RpbmdOYW1lKyIsIGFkZHI6ICIrai50'@; put 'b1N0cmluZygxNikpO0I9dGhpcy5kZWNvZGVUYWJsZXNbTS1YXX19cmV0dXJuIEJ9LEsucHJvdG90eXBlLl9hZGREZWNvZGVDaHVuaz1mdW5jdGlvbihqKXt2YXIgVj1wYXJzZUludChqWzBdLDE2KSxCPXRoaXMuX2dldERlY29kZVRyaWVOb2RlKFYpO1YmPTI1NTtmb3IodmFyIFk9MTtZPGou'@; put 'bGVuZ3RoO1krKyl7dmFyIFg9altZXTtpZigic3RyaW5nIj09dHlwZW9mIFgpZm9yKHZhciBVPTA7VTxYLmxlbmd0aDspe3ZhciBxPVguY2hhckNvZGVBdChVKyspO2lmKDU1Mjk2PD1xJiZxPDU2MzIwKXt2YXIgZWU9WC5jaGFyQ29kZUF0KFUrKyk7aWYoISg1NjMyMDw9ZWUmJmVlPDU3MzQ0'@; put 'KSl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCBzdXJyb2dhdGUgcGFpciBpbiAiK3RoaXMuZW5jb2RpbmdOYW1lKyIgYXQgY2h1bmsgIitqWzBdKTtCW1YrK109NjU1MzYrMTAyNCoocS01NTI5NikrKGVlLTU2MzIwKX1lbHNlIGlmKDQwODA8cSYmcTw9NDA5NSl7Zm9yKHZhciB0ZT00MDk1'@; put 'LXErMixvZT1bXSxzZT0wO3NlPHRlO3NlKyspb2UucHVzaChYLmNoYXJDb2RlQXQoVSsrKSk7QltWKytdPWxlLXRoaXMuZGVjb2RlVGFibGVTZXEubGVuZ3RoLHRoaXMuZGVjb2RlVGFibGVTZXEucHVzaChvZSl9ZWxzZSBCW1YrK109cX1lbHNle2lmKCJudW1iZXIiIT10eXBlb2YgWCl0aHJv'@; put 'dyBuZXcgRXJyb3IoIkluY29ycmVjdCB0eXBlICciK3R5cGVvZiBYKyInIGdpdmVuIGluICIrdGhpcy5lbmNvZGluZ05hbWUrIiBhdCBjaHVuayAiK2pbMF0pO3ZhciBoZT1CW1YtMV0rMTtmb3IoVT0wO1U8WDtVKyspQltWKytdPWhlKyt9fWlmKFY+MjU1KXRocm93IG5ldyBFcnJvcigiSW5j'@; put 'b3JyZWN0IGNodW5rIGluICIrdGhpcy5lbmNvZGluZ05hbWUrIiBhdCBhZGRyICIralswXSsiOiB0b28gbG9uZyIrVil9LEsucHJvdG90eXBlLl9nZXRFbmNvZGVCdWNrZXQ9ZnVuY3Rpb24oail7dmFyIFY9aj4+ODtyZXR1cm4gdm9pZCAwPT09dGhpcy5lbmNvZGVUYWJsZVtWXSYmKHRoaXMu'@; put 'ZW5jb2RlVGFibGVbVl09Ty5zbGljZSgwKSksdGhpcy5lbmNvZGVUYWJsZVtWXX0sSy5wcm90b3R5cGUuX3NldEVuY29kZUNoYXI9ZnVuY3Rpb24oaixWKXt2YXIgQj10aGlzLl9nZXRFbmNvZGVCdWNrZXQoaiksWT0yNTUmajtCW1ldPD1sZT90aGlzLmVuY29kZVRhYmxlU2VxW2xlLUJbWV1d'@; put 'Wy0xXT1WOkJbWV09PXgmJihCW1ldPVYpfSxLLnByb3RvdHlwZS5fc2V0RW5jb2RlU2VxdWVuY2U9ZnVuY3Rpb24oaixWKXt2YXIgVSxCPWpbMF0sWT10aGlzLl9nZXRFbmNvZGVCdWNrZXQoQiksWD0yNTUmQjtZW1hdPD1sZT9VPXRoaXMuZW5jb2RlVGFibGVTZXFbbGUtWVtYXV06KFU9e30s'@; put 'WVtYXSE9PXgmJihVWy0xXT1ZW1hdKSxZW1hdPWxlLXRoaXMuZW5jb2RlVGFibGVTZXEubGVuZ3RoLHRoaXMuZW5jb2RlVGFibGVTZXEucHVzaChVKSk7Zm9yKHZhciBxPTE7cTxqLmxlbmd0aC0xO3ErKyl7dmFyIGVlPVVbQl07Im9iamVjdCI9PXR5cGVvZiBlZT9VPWVlOihVPVVbQl09e30s'@; put 'dm9pZCAwIT09ZWUmJihVWy0xXT1lZSkpfVVbQj1qW2oubGVuZ3RoLTFdXT1WfSxLLnByb3RvdHlwZS5fZmlsbEVuY29kZVRhYmxlPWZ1bmN0aW9uKGosVixCKXtmb3IodmFyIFk9dGhpcy5kZWNvZGVUYWJsZXNbal0sWD0wO1g8MjU2O1grKyl7dmFyIFU9WVtYXSxxPVYrWDtCW3FdfHwoVT49'@; put 'MD90aGlzLl9zZXRFbmNvZGVDaGFyKFUscSk6VTw9TT90aGlzLl9maWxsRW5jb2RlVGFibGUoTS1VLHE8PDgsQik6VTw9bGUmJnRoaXMuX3NldEVuY29kZVNlcXVlbmNlKHRoaXMuZGVjb2RlVGFibGVTZXFbbGUtVV0scSkpfX0sSS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oail7Zm9yKHZh'@; put 'ciBWPWFlLmFsbG9jKGoubGVuZ3RoKih0aGlzLmdiMTgwMzA/NDozKSksQj10aGlzLmxlYWRTdXJyb2dhdGUsWT10aGlzLnNlcU9iaixYPS0xLFU9MCxxPTA7Oyl7aWYoLTE9PT1YKXtpZihVPT1qLmxlbmd0aClicmVhazt2YXIgZWU9ai5jaGFyQ29kZUF0KFUrKyl9ZWxzZSBlZT1YLFg9LTE7'@; put 'aWYoNTUyOTY8PWVlJiZlZTw1NzM0NClpZihlZTw1NjMyMCl7aWYoLTE9PT1CKXtCPWVlO2NvbnRpbnVlfUI9ZWUsZWU9eH1lbHNlLTEhPT1CPyhlZT02NTUzNisxMDI0KihCLTU1Mjk2KSsoZWUtNTYzMjApLEI9LTEpOmVlPXg7ZWxzZS0xIT09QiYmKFg9ZWUsZWU9eCxCPS0xKTt2YXIgdGU9'@; put 'eDtpZih2b2lkIDAhPT1ZJiZlZSE9eCl7dmFyIG9lPVlbZWVdO2lmKCJvYmplY3QiPT10eXBlb2Ygb2Upe1k9b2U7Y29udGludWV9Im51bWJlciI9PXR5cGVvZiBvZT90ZT1vZTpudWxsPT1vZSYmdm9pZCAwIT09KG9lPVlbLTFdKSYmKHRlPW9lLFg9ZWUpLFk9dm9pZCAwfWVsc2UgaWYoZWU+'@; put 'PTApe3ZhciBzZT10aGlzLmVuY29kZVRhYmxlW2VlPj44XTtpZih2b2lkIDAhPT1zZSYmKHRlPXNlWzI1NSZlZV0pLHRlPD1sZSl7WT10aGlzLmVuY29kZVRhYmxlU2VxW2xlLXRlXTtjb250aW51ZX1pZih0ZT09eCYmdGhpcy5nYjE4MDMwKXt2YXIgaGU9RSh0aGlzLmdiMTgwMzAudUNoYXJz'@; put 'LGVlKTtpZigtMSE9aGUpe3RlPXRoaXMuZ2IxODAzMC5nYkNoYXJzW2hlXSsoZWUtdGhpcy5nYjE4MDMwLnVDaGFyc1toZV0pLFZbcSsrXT0xMjkrTWF0aC5mbG9vcih0ZS8xMjYwMCksdGUlPTEyNjAwLFZbcSsrXT00OCtNYXRoLmZsb29yKHRlLzEyNjApLHRlJT0xMjYwLFZbcSsrXT0xMjkr'@; put 'TWF0aC5mbG9vcih0ZS8xMCksVltxKytdPTQ4Kyh0ZSU9MTApO2NvbnRpbnVlfX19dGU9PT14JiYodGU9dGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUpLHRlPDI1Nj9WW3ErK109dGU6dGU8NjU1MzY/KFZbcSsrXT10ZT4+OCxWW3ErK109MjU1JnRlKTooVltxKytdPXRlPj4xNixWW3ErK109'@; put 'dGU+PjgmMjU1LFZbcSsrXT0yNTUmdGUpfXJldHVybiB0aGlzLnNlcU9iaj1ZLHRoaXMubGVhZFN1cnJvZ2F0ZT1CLFYuc2xpY2UoMCxxKX0sSS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7aWYoLTEhPT10aGlzLmxlYWRTdXJyb2dhdGV8fHZvaWQgMCE9PXRoaXMuc2VxT2JqKXt2YXIgaj1h'@; put 'ZS5hbGxvYygxMCksVj0wO2lmKHRoaXMuc2VxT2JqKXt2YXIgQj10aGlzLnNlcU9ialstMV07dm9pZCAwIT09QiYmKEI8MjU2P2pbVisrXT1COihqW1YrK109Qj4+OCxqW1YrK109MjU1JkIpKSx0aGlzLnNlcU9iaj12b2lkIDB9cmV0dXJuLTEhPT10aGlzLmxlYWRTdXJyb2dhdGUmJihqW1Yr'@; put 'K109dGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUsdGhpcy5sZWFkU3Vycm9nYXRlPS0xKSxqLnNsaWNlKDAsVil9fSxJLnByb3RvdHlwZS5maW5kSWR4PUUsay5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oail7dmFyIFY9YWUuYWxsb2MoMipqLmxlbmd0aCksQj10aGlzLm5vZGVJZHgsWT10'@; put 'aGlzLnByZXZCdWYsWD10aGlzLnByZXZCdWYubGVuZ3RoLFU9LXRoaXMucHJldkJ1Zi5sZW5ndGg7WD4wJiYoWT1hZS5jb25jYXQoW1ksai5zbGljZSgwLDEwKV0pKTtmb3IodmFyIGVlPTAsdGU9MDtlZTxqLmxlbmd0aDtlZSsrKXt2YXIgcSxvZT1lZT49MD9qW2VlXTpZW2VlK1hdO2lmKCEo'@; put 'KHE9dGhpcy5kZWNvZGVUYWJsZXNbQl1bb2VdKT49MCkpaWYocT09PXgpZWU9VSxxPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCk7ZWxzZSBpZihxPT09bSl7dmFyIHNlPVU+PTA/ai5zbGljZShVLGVlKzEpOlkuc2xpY2UoVStYLGVlKzErWCksaGU9MTI2MDAqKHNlWzBd'@; put 'LTEyOSkrMTI2MCooc2VbMV0tNDgpKzEwKihzZVsyXS0xMjkpKyhzZVszXS00OCksdWU9RSh0aGlzLmdiMTgwMzAuZ2JDaGFycyxoZSk7cT10aGlzLmdiMTgwMzAudUNoYXJzW3VlXStoZS10aGlzLmdiMTgwMzAuZ2JDaGFyc1t1ZV19ZWxzZXtpZihxPD1NKXtCPU0tcTtjb250aW51ZX1pZigh'@; put 'KHE8PWxlKSl0aHJvdyBuZXcgRXJyb3IoImljb252LWxpdGUgaW50ZXJuYWwgZXJyb3I6IGludmFsaWQgZGVjb2RpbmcgdGFibGUgdmFsdWUgIitxKyIgYXQgIitCKyIvIitvZSk7Zm9yKHZhciBjZT10aGlzLmRlY29kZVRhYmxlU2VxW2xlLXFdLEc9MDtHPGNlLmxlbmd0aC0xO0crKylWW3Rl'@; put 'KytdPTI1NSYocT1jZVtHXSksVlt0ZSsrXT1xPj44O3E9Y2VbY2UubGVuZ3RoLTFdfWlmKHE+NjU1MzUpe3EtPTY1NTM2O3ZhciBiPTU1Mjk2K01hdGguZmxvb3IocS8xMDI0KTtWW3RlKytdPTI1NSZiLFZbdGUrK109Yj4+OCxxPTU2MzIwK3ElMTAyNH1WW3RlKytdPTI1NSZxLFZbdGUrK109'@; put 'cT4+OCxCPTAsVT1lZSsxfXJldHVybiB0aGlzLm5vZGVJZHg9Qix0aGlzLnByZXZCdWY9VT49MD9qLnNsaWNlKFUpOlkuc2xpY2UoVStYKSxWLnNsaWNlKDAsdGUpLnRvU3RyaW5nKCJ1Y3MyIil9LGsucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe2Zvcih2YXIgaj0iIjt0aGlzLnByZXZCdWYu'@; put 'bGVuZ3RoPjA7KXtqKz10aGlzLmRlZmF1bHRDaGFyVW5pY29kZTt2YXIgVj10aGlzLnByZXZCdWYuc2xpY2UoMSk7dGhpcy5wcmV2QnVmPWFlLmFsbG9jKDApLHRoaXMubm9kZUlkeD0wLFYubGVuZ3RoPjAmJihqKz10aGlzLndyaXRlKFYpKX1yZXR1cm4gdGhpcy5ub2RlSWR4PTAsan19LDMy'@; put 'NTU0OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPXtzaGlmdGppczp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIEYoMjcwMTQpfSxlbmNvZGVBZGQ6eyJceGE1Ijo5MiwiXHUyMDNlIjoxMjZ9LGVuY29kZVNraXBWYWxzOlt7ZnJvbTo2MDczNix0bzo2'@; put 'MzgwOH1dfSxjc3NoaWZ0amlzOiJzaGlmdGppcyIsbXNrYW5qaToic2hpZnRqaXMiLHNqaXM6InNoaWZ0amlzIix3aW5kb3dzMzFqOiJzaGlmdGppcyIsbXMzMWo6InNoaWZ0amlzIix4c2ppczoic2hpZnRqaXMiLHdpbmRvd3M5MzI6InNoaWZ0amlzIixtczkzMjoic2hpZnRqaXMiLDkzMjoi'@; put 'c2hpZnRqaXMiLGNwOTMyOiJzaGlmdGppcyIsZXVjanA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBGKDMxNTMyKX0sZW5jb2RlQWRkOnsiXHhhNSI6OTIsIlx1MjAzZSI6MTI2fX0sZ2IyMzEyOiJjcDkzNiIsZ2IyMzEyODA6ImNwOTM2IixnYjIzMTIxOTgwOiJjcDkz'@; put 'NiIsY3NnYjIzMTI6ImNwOTM2Iixjc2lzbzU4Z2IyMzEyODA6ImNwOTM2IixldWNjbjoiY3A5MzYiLHdpbmRvd3M5MzY6ImNwOTM2IixtczkzNjoiY3A5MzYiLDkzNjoiY3A5MzYiLGNwOTM2Ont0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gRigxMzMzNil9fSxnYms6e3R5'@; put 'cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBGKDEzMzM2KS5jb25jYXQoRig0NDM0NikpfX0seGdiazoiZ2JrIixpc29pcjU4OiJnYmsiLGdiMTgwMzA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBGKDEzMzM2KS5jb25jYXQoRig0NDM0NikpfSxnYjE4'@; put 'MDMwOmZ1bmN0aW9uKCl7cmV0dXJuIEYoMzYyNTgpfSxlbmNvZGVTa2lwVmFsczpbMTI4XSxlbmNvZGVBZGQ6eyJcdTIwYWMiOjQxNjk5fX0sY2hpbmVzZToiZ2IxODAzMCIsd2luZG93czk0OToiY3A5NDkiLG1zOTQ5OiJjcDk0OSIsOTQ5OiJjcDk0OSIsY3A5NDk6e3R5cGU6Il9kYmNzIix0'@; put 'YWJsZTpmdW5jdGlvbigpe3JldHVybiBGKDc3MzQ4KX19LGNzZXVja3I6ImNwOTQ5Iixjc2tzYzU2MDExOTg3OiJjcDk0OSIsZXVja3I6ImNwOTQ5Iixpc29pcjE0OToiY3A5NDkiLGtvcmVhbjoiY3A5NDkiLGtzYzU2MDExOTg3OiJjcDk0OSIsa3NjNTYwMTE5ODk6ImNwOTQ5Iixrc2M1NjAx'@; put 'OiJjcDk0OSIsd2luZG93czk1MDoiY3A5NTAiLG1zOTUwOiJjcDk1MCIsOTUwOiJjcDk1MCIsY3A5NTA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBGKDc0Mjg0KX19LGJpZzU6ImJpZzVoa3NjcyIsYmlnNWhrc2NzOnt0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gRig3NDI4NCkuY29uY2F0KEYoNjM0ODApKX0sZW5jb2RlU2tpcFZhbHM6WzQxNjc2XX0sY25iaWc1OiJiaWc1aGtzY3MiLGNzYmlnNToiYmlnNWhrc2NzIix4eGJpZzU6ImJpZzVoa3NjcyJ9fSw0NDY1NzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7Zm9yKHZhciBhZT1bRigy'@; put 'NzY0OCksRig5Mjg0NCksRig0MzI4MCksRig3ODM1NCksRig3MTc2NCksRig2NDc3MyksRigyMDUwMyksRig1NTgzMyksRigzMjU1NCldLHg9MDt4PGFlLmxlbmd0aDt4Kyspe3ZhciBtPWFlW3hdO2Zvcih2YXIgbGUgaW4gbSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo'@; put 'bSxsZSkmJihJZVtsZV09bVtsZV0pfX0sMjc2NDg6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI0MTc5KS5CdWZmZXI7ZnVuY3Rpb24geChLLEkpe3RoaXMuZW5jPUsuZW5jb2RpbmdOYW1lLHRoaXMuYm9tQXdhcmU9Sy5ib21Bd2FyZSwiYmFzZTY0Ij09PXRoaXMuZW5jP3Ro'@; put 'aXMuZW5jb2Rlcj1POiJjZXN1OCI9PT10aGlzLmVuYyYmKHRoaXMuZW5jPSJ1dGY4Iix0aGlzLmVuY29kZXI9UiwiXHV7MWY0YTl9IiE9PWFlLmZyb20oImVkYTBiZGVkYjJhOSIsImhleCIpLnRvU3RyaW5nKCkmJih0aGlzLmRlY29kZXI9eix0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1JLmRl'@; put 'ZmF1bHRDaGFyVW5pY29kZSkpfWF0LmV4cG9ydHM9e3V0Zjg6e3R5cGU6Il9pbnRlcm5hbCIsYm9tQXdhcmU6ITB9LGNlc3U4Ont0eXBlOiJfaW50ZXJuYWwiLGJvbUF3YXJlOiEwfSx1bmljb2RlMTF1dGY4OiJ1dGY4Iix1Y3MyOnt0eXBlOiJfaW50ZXJuYWwiLGJvbUF3YXJlOiEwfSx1dGYx'@; put 'NmxlOiJ1Y3MyIixiaW5hcnk6e3R5cGU6Il9pbnRlcm5hbCJ9LGJhc2U2NDp7dHlwZToiX2ludGVybmFsIn0saGV4Ont0eXBlOiJfaW50ZXJuYWwifSxfaW50ZXJuYWw6eH0seC5wcm90b3R5cGUuZW5jb2Rlcj1NLHgucHJvdG90eXBlLmRlY29kZXI9bGU7dmFyIG09Rig3MjAyNCkucztmdW5j'@; put 'dGlvbiBsZShLLEkpe20uY2FsbCh0aGlzLEkuZW5jKX1mdW5jdGlvbiBNKEssSSl7dGhpcy5lbmM9SS5lbmN9ZnVuY3Rpb24gTyhLLEkpe3RoaXMucHJldlN0cj0iIn1mdW5jdGlvbiBSKEssSSl7fWZ1bmN0aW9uIHooSyxJKXt0aGlzLmFjYz0wLHRoaXMuY29udEJ5dGVzPTAsdGhpcy5hY2NC'@; put 'eXRlcz0wLHRoaXMuZGVmYXVsdENoYXJVbmljb2RlPUkuZGVmYXVsdENoYXJVbmljb2RlfW0ucHJvdG90eXBlLmVuZHx8KG0ucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30pLGxlLnByb3RvdHlwZT1tLnByb3RvdHlwZSxNLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihLKXtyZXR1cm4gYWUu'@; put 'ZnJvbShLLHRoaXMuZW5jKX0sTS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSxPLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihLKXt2YXIgST0oSz10aGlzLnByZXZTdHIrSykubGVuZ3RoLUsubGVuZ3RoJTQ7cmV0dXJuIHRoaXMucHJldlN0cj1LLnNsaWNlKEkpLEs9Sy5zbGljZSgwLEkp'@; put 'LGFlLmZyb20oSywiYmFzZTY0Iil9LE8ucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiBhZS5mcm9tKHRoaXMucHJldlN0ciwiYmFzZTY0Iil9LFIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEspe2Zvcih2YXIgST1hZS5hbGxvYygzKksubGVuZ3RoKSxrPTAsRT0wO0U8Sy5sZW5n'@; put 'dGg7RSsrKXt2YXIgaj1LLmNoYXJDb2RlQXQoRSk7ajwxMjg/SVtrKytdPWo6ajwyMDQ4PyhJW2srK109MTkyKyhqPj4+NiksSVtrKytdPTEyOCsoNjMmaikpOihJW2srK109MjI0KyhqPj4+MTIpLElbaysrXT0xMjgrKGo+Pj42JjYzKSxJW2srK109MTI4Kyg2MyZqKSl9cmV0dXJuIEkuc2xp'@; put 'Y2UoMCxrKX0sUi5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSx6LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihLKXtmb3IodmFyIEk9dGhpcy5hY2Msaz10aGlzLmNvbnRCeXRlcyxFPXRoaXMuYWNjQnl0ZXMsaj0iIixWPTA7VjxLLmxlbmd0aDtWKyspe3ZhciBCPUtbVl07MTI4IT0oMTky'@; put 'JkIpPyhrPjAmJihqKz10aGlzLmRlZmF1bHRDaGFyVW5pY29kZSxrPTApLEI8MTI4P2orPVN0cmluZy5mcm9tQ2hhckNvZGUoQik6QjwyMjQ/KEk9MzEmQixrPTEsRT0xKTpCPDI0MD8oST0xNSZCLGs9MixFPTEpOmorPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlKTprPjA/KEk9STw8Nnw2MyZC'@; put 'LEUrKywwPT0tLWsmJihqKz0yPT09RSYmSTwxMjgmJkk+MHx8Mz09PUUmJkk8MjA0OD90aGlzLmRlZmF1bHRDaGFyVW5pY29kZTpTdHJpbmcuZnJvbUNoYXJDb2RlKEkpKSk6ais9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGV9cmV0dXJuIHRoaXMuYWNjPUksdGhpcy5jb250Qnl0ZXM9ayx0aGlz'@; put 'LmFjY0J5dGVzPUUsan0sei5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dmFyIEs9MDtyZXR1cm4gdGhpcy5jb250Qnl0ZXM+MCYmKEsrPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlKSxLfX0sNzE3NjQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI0MTc5KS5CdWZmZXI7ZnVu'@; put 'Y3Rpb24geChNLE8pe2lmKCFNKXRocm93IG5ldyBFcnJvcigiU0JDUyBjb2RlYyBpcyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0YS4iKTtpZighTS5jaGFyc3x8MTI4IT09TS5jaGFycy5sZW5ndGgmJjI1NiE9PU0uY2hhcnMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgJyIrTS50'@; put 'eXBlKyInIGhhcyBpbmNvcnJlY3QgJ2NoYXJzJyAobXVzdCBiZSBvZiBsZW4gMTI4IG9yIDI1NikiKTtpZigxMjg9PT1NLmNoYXJzLmxlbmd0aCl7Zm9yKHZhciBSPSIiLHo9MDt6PDEyODt6KyspUis9U3RyaW5nLmZyb21DaGFyQ29kZSh6KTtNLmNoYXJzPVIrTS5jaGFyc310aGlzLmRlY29k'@; put 'ZUJ1Zj1hZS5mcm9tKE0uY2hhcnMsInVjczIiKTt2YXIgSz1hZS5hbGxvYyg2NTUzNixPLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZS5jaGFyQ29kZUF0KDApKTtmb3Ioej0wO3o8TS5jaGFycy5sZW5ndGg7eisrKUtbTS5jaGFycy5jaGFyQ29kZUF0KHopXT16O3RoaXMuZW5jb2RlQnVmPUt9ZnVu'@; put 'Y3Rpb24gbShNLE8pe3RoaXMuZW5jb2RlQnVmPU8uZW5jb2RlQnVmfWZ1bmN0aW9uIGxlKE0sTyl7dGhpcy5kZWNvZGVCdWY9Ty5kZWNvZGVCdWZ9SWUuX3NiY3M9eCx4LnByb3RvdHlwZS5lbmNvZGVyPW0seC5wcm90b3R5cGUuZGVjb2Rlcj1sZSxtLnByb3RvdHlwZS53cml0ZT1mdW5jdGlv'@; put 'bihNKXtmb3IodmFyIE89YWUuYWxsb2MoTS5sZW5ndGgpLFI9MDtSPE0ubGVuZ3RoO1IrKylPW1JdPXRoaXMuZW5jb2RlQnVmW00uY2hhckNvZGVBdChSKV07cmV0dXJuIE99LG0ucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sbGUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKE0pe2Zvcih2'@; put 'YXIgTz10aGlzLmRlY29kZUJ1ZixSPWFlLmFsbG9jKDIqTS5sZW5ndGgpLHo9MCxLPTAsST0wO0k8TS5sZW5ndGg7SSsrKVJbSz0yKkldPU9bej0yKk1bSV1dLFJbSysxXT1PW3orMV07cmV0dXJuIFIudG9TdHJpbmcoInVjczIiKX0sbGUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe319LDIw'@; put 'NTAzOmF0PT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9ezQzNzoiY3A0MzciLDczNzoiY3A3MzciLDc3NToiY3A3NzUiLDg1MDoiY3A4NTAiLDg1MjoiY3A4NTIiLDg1NToiY3A4NTUiLDg1NjoiY3A4NTYiLDg1NzoiY3A4NTciLDg1ODoiY3A4NTgiLDg2MDoiY3A4NjAiLDg2MToiY3A4NjEi'@; put 'LDg2MjoiY3A4NjIiLDg2MzoiY3A4NjMiLDg2NDoiY3A4NjQiLDg2NToiY3A4NjUiLDg2NjoiY3A4NjYiLDg2OToiY3A4NjkiLDg3NDoid2luZG93czg3NCIsOTIyOiJjcDkyMiIsMTA0NjoiY3AxMDQ2IiwxMTI0OiJjcDExMjQiLDExMjU6ImNwMTEyNSIsMTEyOToiY3AxMTI5IiwxMTMzOiJj'@; put 'cDExMzMiLDExNjE6ImNwMTE2MSIsMTE2MjoiY3AxMTYyIiwxMTYzOiJjcDExNjMiLDEyNTA6IndpbmRvd3MxMjUwIiwxMjUxOiJ3aW5kb3dzMTI1MSIsMTI1Mjoid2luZG93czEyNTIiLDEyNTM6IndpbmRvd3MxMjUzIiwxMjU0OiJ3aW5kb3dzMTI1NCIsMTI1NToid2luZG93czEyNTUiLDEy'@; put 'NTY6IndpbmRvd3MxMjU2IiwxMjU3OiJ3aW5kb3dzMTI1NyIsMTI1ODoid2luZG93czEyNTgiLDI4NTkxOiJpc284ODU5MSIsMjg1OTI6Imlzbzg4NTkyIiwyODU5MzoiaXNvODg1OTMiLDI4NTk0OiJpc284ODU5NCIsMjg1OTU6Imlzbzg4NTk1IiwyODU5NjoiaXNvODg1OTYiLDI4NTk3OiJp'@; put 'c284ODU5NyIsMjg1OTg6Imlzbzg4NTk4IiwyODU5OToiaXNvODg1OTkiLDI4NjAwOiJpc284ODU5MTAiLDI4NjAxOiJpc284ODU5MTEiLDI4NjAzOiJpc284ODU5MTMiLDI4NjA0OiJpc284ODU5MTQiLDI4NjA1OiJpc284ODU5MTUiLDI4NjA2OiJpc284ODU5MTYiLHdpbmRvd3M4NzQ6e3R5'@; put 'cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDI2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1'@; put 'MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUy'@; put 'Zlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1'@; put 'MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LHdpbjg3NDoid2luZG93czg3NCIsY3A4NzQ6IndpbmRvd3M4NzQi'@; put 'LHdpbmRvd3MxMjUwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1YVx1MDE2NFx1MDE3ZFx1MDE3OVx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAy'@; put 'Mlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDE2MVx1MjAzYVx1MDE1Ylx1MDE2NVx1MDE3ZVx1MDE3YVx4YTBcdTAyYzdcdTAyZDhcdTAxNDFceGE0XHUwMTA0XHhhNlx4YTdceGE4XHhhOVx1MDE1ZVx4YWJceGFjXHhhZFx4YWVcdTAxN2JceGIwXHhiMVx1MDJkYlx1MDE0Mlx4YjRceGI1'@; put 'XHhiNlx4YjdceGI4XHUwMTA1XHUwMTVmXHhiYlx1MDEzZFx1MDJkZFx1MDEzZVx1MDE3Y1x1MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQzXHUwMTQ3XHhkM1x4ZDRcdTAxNTBc'@; put 'eGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBceGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVceGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhlZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0OFx4ZjNceGY0XHUwMTUxXHhmNlx4'@; put 'ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4ZmRcdTAxNjNcdTAyZDkifSx3aW4xMjUwOiJ3aW5kb3dzMTI1MCIsY3AxMjUwOiJ3aW5kb3dzMTI1MCIsd2luZG93czEyNTE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDAyXHUwNDAzXHUyMDFhXHUwNDUzXHUyMDFlXHUyMDI2XHUyMDIw'@; put 'XHUyMDIxXHUyMGFjXHUyMDMwXHUwNDA5XHUyMDM5XHUwNDBhXHUwNDBjXHUwNDBiXHUwNDBmXHUwNDUyXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHUwNDU5XHUyMDNhXHUwNDVhXHUwNDVjXHUwNDViXHUwNDVmXHhhMFx1MDQwZVx1MDQ1'@; put 'ZVx1MDQwOFx4YTRcdTA0OTBceGE2XHhhN1x1MDQwMVx4YTlcdTA0MDRceGFiXHhhY1x4YWRceGFlXHUwNDA3XHhiMFx4YjFcdTA0MDZcdTA0NTZcdTA0OTFceGI1XHhiNlx4YjdcdTA0NTFcdTIxMTZcdTA0NTRceGJiXHUwNDU4XHUwNDA1XHUwNDU1XHUwNDU3XHUwNDEwXHUwNDExXHUwNDEy'@; put 'XHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUw'@; put 'NDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5'@; put 'XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmIn0sd2luMTI1MToid2luZG93czEyNTEiLGNwMTI1MToid2luZG93czEyNTEiLHdpbmRvd3MxMjUyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1'@; put 'MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1ZmZmZFx1MDE3ZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1MDE3ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhh'@; put 'NVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNl'@; put 'XHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4Zjdc'@; put 'eGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LHdpbjEyNTI6IndpbmRvd3MxMjUyIixjcDEyNTI6IndpbmRvd3MxMjUyIix3aW5kb3dzMTI1Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRc'@; put 'dTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwMzg1XHUwMzg2XHhhM1x4YTRceGE1'@; put 'XHhhNlx4YTdceGE4XHhhOVx1ZmZmZFx4YWJceGFjXHhhZFx4YWVcdTIwMTVceGIwXHhiMVx4YjJceGIzXHUwMzg0XHhiNVx4YjZceGI3XHUwMzg4XHUwMzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRcdTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZc'@; put 'dTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAzYWZcdTAzYjBcdTAzYjFcdTAz'@; put 'YjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2FcdTAzY2JcdTAzY2NcdTAzY2Rc'@; put 'dTAzY2VcdWZmZmQifSx3aW4xMjUzOiJ3aW5kb3dzMTI1MyIsY3AxMjUzOiJ3aW5kb3dzMTI1MyIsd2luZG93czEyNTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUw'@; put 'MTUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHVmZmZkXHVmZmZkXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFi'@; put 'XHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHUwMTFlXHhkMVx4ZDJceGQzXHhk'@; put 'NFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMTMwXHUwMTVlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxMWZceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4'@; put 'ZmNcdTAxMzFcdTAxNWZceGZmIn0sd2luMTI1NDoid2luZG93czEyNTQiLGNwMTI1NDoid2luZG93czEyNTQiLHdpbmRvd3MxMjU1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1ZmZmZFx1'@; put 'MjAzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBceGExXHhhMlx4YTNcdTIwYWFceGE1XHhhNlx4YTdceGE4XHhh'@; put 'OVx4ZDdceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGY3XHhiYlx4YmNceGJkXHhiZVx4YmZcdTA1YjBcdTA1YjFcdTA1YjJcdTA1YjNcdTA1YjRcdTA1YjVcdTA1YjZcdTA1YjdcdTA1YjhcdTA1YjlcdTA1YmFcdTA1YmJcdTA1'@; put 'YmNcdTA1YmRcdTA1YmVcdTA1YmZcdTA1YzBcdTA1YzFcdTA1YzJcdTA1YzNcdTA1ZjBcdTA1ZjFcdTA1ZjJcdTA1ZjNcdTA1ZjRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVcdTA1ZDZcdTA1ZDdc'@; put 'dTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFcdWZmZmRcdWZmZmRcdTIwMGVcdTIwMGZcdWZmZmQifSx3aW4xMjU1OiJ3aW5kb3dzMTI1'@; put 'NSIsY3AxMjU1OiJ3aW5kb3dzMTI1NSIsd2luZG93czEyNTY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHUwNjdlXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwNjc5XHUyMDM5XHUwMTUyXHUwNjg2XHUwNjk4XHUwNjg4XHUwNmFmXHUyMDE4'@; put 'XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNmE5XHUyMTIyXHUwNjkxXHUyMDNhXHUwMTUzXHUyMDBjXHUyMDBkXHUwNmJhXHhhMFx1MDYwY1x4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHUwNmJlXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJc'@; put 'eGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHUwNjFiXHhiYlx4YmNceGJkXHhiZVx1MDYxZlx1MDZjMVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1'@; put 'MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx4ZDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNceGUwXHUwNjQ0XHhlMlx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx4ZTdceGU4XHhlOVx4ZWFceGViXHUwNjQ5XHUwNjRhXHhlZVx4ZWZcdTA2NGJc'@; put 'dTA2NGNcdTA2NGRcdTA2NGVceGY0XHUwNjRmXHUwNjUwXHhmN1x1MDY1MVx4ZjlcdTA2NTJceGZiXHhmY1x1MjAwZVx1MjAwZlx1MDZkMiJ9LHdpbjEyNTY6IndpbmRvd3MxMjU2IixjcDEyNTY6IndpbmRvd3MxMjU2Iix3aW5kb3dzMTI1Nzp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNc'@; put 'dWZmZmRcdTIwMWFcdWZmZmRcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRceGE4XHUwMmM3XHhiOFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx4'@; put 'YWZcdTAyZGJcdWZmZmRceGEwXHVmZmZkXHhhMlx4YTNceGE0XHVmZmZkXHhhNlx4YTdceGQ4XHhhOVx1MDE1Nlx4YWJceGFjXHhhZFx4YWVceGM2XHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGY4XHhiOVx1MDE1N1x4YmJceGJjXHhiZFx4YmVceGU2XHUwMTA0XHUwMTJlXHUw'@; put 'MTAwXHUwMTA2XHhjNFx4YzVcdTAxMThcdTAxMTJcdTAxMGNceGM5XHUwMTc5XHUwMTE2XHUwMTIyXHUwMTM2XHUwMTJhXHUwMTNiXHUwMTYwXHUwMTQzXHUwMTQ1XHhkM1x1MDE0Y1x4ZDVceGQ2XHhkN1x1MDE3Mlx1MDE0MVx1MDE1YVx1MDE2YVx4ZGNcdTAxN2JcdTAxN2RceGRmXHUwMTA1'@; put 'XHUwMTJmXHUwMTAxXHUwMTA3XHhlNFx4ZTVcdTAxMTlcdTAxMTNcdTAxMGRceGU5XHUwMTdhXHUwMTE3XHUwMTIzXHUwMTM3XHUwMTJiXHUwMTNjXHUwMTYxXHUwMTQ0XHUwMTQ2XHhmM1x1MDE0ZFx4ZjVceGY2XHhmN1x1MDE3M1x1MDE0Mlx1MDE1Ylx1MDE2Ylx4ZmNcdTAxN2NcdTAxN2Vc'@; put 'dTAyZDkifSx3aW4xMjU3OiJ3aW5kb3dzMTI1NyIsY3AxMjU3OiJ3aW5kb3dzMTI1NyIsd2luZG93czEyNTg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHUwMTUyXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHVmZmZkXHUyMDNhXHUwMTUzXHVmZmZkXHVmZmZkXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4'@; put 'YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJcdTAxMDJceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx1MDMwMFx4Y2RceGNlXHhjZlx1MDExMFx4ZDFcdTAzMDlceGQzXHhk'@; put 'NFx1MDFhMFx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNcdTAxYWZcdTAzMDNceGRmXHhlMFx4ZTFceGUyXHUwMTAzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJcdTAzMDFceGVkXHhlZVx4ZWZcdTAxMTFceGYxXHUwMzIzXHhmM1x4ZjRcdTAxYTFceGY2XHhmN1x4ZjhceGY5'@; put 'XHhmYVx4ZmJceGZjXHUwMWIwXHUyMGFiXHhmZiJ9LHdpbjEyNTg6IndpbmRvd3MxMjU4IixjcDEyNTg6IndpbmRvd3MxMjU4Iixpc284ODU5MTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVc'@; put 'eDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4'@; put 'YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhl'@; put 'MVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LGNwMjg1OTE6Imlzbzg4NTkxIixpc284ODU5Mjp7dHlwZToiX3NiY3Mi'@; put 'LGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMDRcdTAyZDhcdTAxNDFceGE0XHUw'@; put 'MTNkXHUwMTVhXHhhN1x4YThcdTAxNjBcdTAxNWVcdTAxNjRcdTAxNzlceGFkXHUwMTdkXHUwMTdiXHhiMFx1MDEwNVx1MDJkYlx1MDE0Mlx4YjRcdTAxM2VcdTAxNWJcdTAyYzdceGI4XHUwMTYxXHUwMTVmXHUwMTY1XHUwMTdhXHUwMmRkXHUwMTdlXHUwMTdjXHUwMTU0XHhjMVx4YzJcdTAx'@; put 'MDJceGM0XHUwMTM5XHUwMTA2XHhjN1x1MDEwY1x4YzlcdTAxMThceGNiXHUwMTFhXHhjZFx4Y2VcdTAxMGVcdTAxMTBcdTAxNDNcdTAxNDdceGQzXHhkNFx1MDE1MFx4ZDZceGQ3XHUwMTU4XHUwMTZlXHhkYVx1MDE3MFx4ZGNceGRkXHUwMTYyXHhkZlx1MDE1NVx4ZTFceGUyXHUwMTAzXHhl'@; put 'NFx1MDEzYVx1MDEwN1x4ZTdcdTAxMGRceGU5XHUwMTE5XHhlYlx1MDExYlx4ZWRceGVlXHUwMTBmXHUwMTExXHUwMTQ0XHUwMTQ4XHhmM1x4ZjRcdTAxNTFceGY2XHhmN1x1MDE1OVx1MDE2Zlx4ZmFcdTAxNzFceGZjXHhmZFx1MDE2M1x1MDJkOSJ9LGNwMjg1OTI6Imlzbzg4NTkyIixpc284'@; put 'ODU5Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMjZc'@; put 'dTAyZDhceGEzXHhhNFx1ZmZmZFx1MDEyNFx4YTdceGE4XHUwMTMwXHUwMTVlXHUwMTFlXHUwMTM0XHhhZFx1ZmZmZFx1MDE3Ylx4YjBcdTAxMjdceGIyXHhiM1x4YjRceGI1XHUwMTI1XHhiN1x4YjhcdTAxMzFcdTAxNWZcdTAxMWZcdTAxMzVceGJkXHVmZmZkXHUwMTdjXHhjMFx4YzFceGMy'@; put 'XHVmZmZkXHhjNFx1MDEwYVx1MDEwOFx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1ZmZmZFx4ZDFceGQyXHhkM1x4ZDRcdTAxMjBceGQ2XHhkN1x1MDExY1x4ZDlceGRhXHhkYlx4ZGNcdTAxNmNcdTAxNWNceGRmXHhlMFx4ZTFceGUyXHVmZmZkXHhlNFx1MDEwYlx1MDEw'@; put 'OVx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1ZmZmZFx4ZjFceGYyXHhmM1x4ZjRcdTAxMjFceGY2XHhmN1x1MDExZFx4ZjlceGZhXHhmYlx4ZmNcdTAxNmRcdTAxNWRcdTAyZDkifSxjcDI4NTkzOiJpc284ODU5MyIsaXNvODg1OTQ6e3R5cGU6Il9zYmNzIixjaGFyczoi'@; put 'XHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMTM4XHUwMTU2XHhhNFx1MDEyOFx1MDEz'@; put 'Ylx4YTdceGE4XHUwMTYwXHUwMTEyXHUwMTIyXHUwMTY2XHhhZFx1MDE3ZFx4YWZceGIwXHUwMTA1XHUwMmRiXHUwMTU3XHhiNFx1MDEyOVx1MDEzY1x1MDJjN1x4YjhcdTAxNjFcdTAxMTNcdTAxMjNcdTAxNjdcdTAxNGFcdTAxN2VcdTAxNGJcdTAxMDBceGMxXHhjMlx4YzNceGM0XHhjNVx4'@; put 'YzZcdTAxMmVcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExNlx4Y2RceGNlXHUwMTJhXHUwMTEwXHUwMTQ1XHUwMTRjXHUwMTM2XHhkNFx4ZDVceGQ2XHhkN1x4ZDhcdTAxNzJceGRhXHhkYlx4ZGNcdTAxNjhcdTAxNmFceGRmXHUwMTAxXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHUwMTJmXHUw'@; put 'MTBkXHhlOVx1MDExOVx4ZWJcdTAxMTdceGVkXHhlZVx1MDEyYlx1MDExMVx1MDE0Nlx1MDE0ZFx1MDEzN1x4ZjRceGY1XHhmNlx4ZjdceGY4XHUwMTczXHhmYVx4ZmJceGZjXHUwMTY5XHUwMTZiXHUwMmQ5In0sY3AyODU5NDoiaXNvODg1OTQiLGlzbzg4NTk1Ont0eXBlOiJfc2JjcyIsY2hh'@; put 'cnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDQwMVx1MDQwMlx1MDQwM1x1MDQwNFx1MDQw'@; put 'NVx1MDQwNlx1MDQwN1x1MDQwOFx1MDQwOVx1MDQwYVx1MDQwYlx1MDQwY1x4YWRcdTA0MGVcdTA0MGZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0'@; put 'MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2Nc'@; put 'dTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTIxMTZcdTA0NTFcdTA0NTJcdTA0NTNcdTA0NTRcdTA0NTVcdTA0NTZcdTA0NTdcdTA0'@; put 'NThcdTA0NTlcdTA0NWFcdTA0NWJcdTA0NWNceGE3XHUwNDVlXHUwNDVmIn0sY3AyODU5NToiaXNvODg1OTUiLGlzbzg4NTk2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5'@; put 'MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA2MGNceGFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjFiXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjFmXHVmZmZkXHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUwNjJkXHUw'@; put 'NjJlXHUwNjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHUwNjM2XHUwNjM3XHUwNjM4XHUwNjM5XHUwNjNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjQwXHUwNjQxXHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5'@; put 'XHUwNjRhXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHUwNjRmXHUwNjUwXHUwNjUxXHUwNjUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0sY3AyODU5NjoiaXNvODg1OTYiLGlzbzg4NTk3Ont0'@; put 'eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MjAxOFx1MjAxOVx4'@; put 'YTNcdTIwYWNcdTIwYWZceGE2XHhhN1x4YThceGE5XHUwMzdhXHhhYlx4YWNceGFkXHVmZmZkXHUyMDE1XHhiMFx4YjFceGIyXHhiM1x1MDM4NFx1MDM4NVx1MDM4Nlx4YjdcdTAzODhcdTAzODlcdTAzOGFceGJiXHUwMzhjXHhiZFx1MDM4ZVx1MDM4Zlx1MDM5MFx1MDM5MVx1MDM5Mlx1MDM5'@; put 'M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1ZmZmZFx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNhYVx1MDNhYlx1MDNhY1x1MDNhZFx1MDNhZVx1'@; put 'MDNhZlx1MDNiMFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjMlx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1MDNj'@; put 'YVx1MDNjYlx1MDNjY1x1MDNjZFx1MDNjZVx1ZmZmZCJ9LGNwMjg1OTc6Imlzbzg4NTk3Iixpc284ODU5ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4'@; put 'OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdWZmZmRceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4ZDdceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGY3XHhiYlx4YmNc'@; put 'eGJkXHhiZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxN1x1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVl'@; put 'NFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx1ZmZmZFx1MjAwZVx1MjAwZlx1ZmZmZCJ9LGNwMjg1OTg6Imlzbzg4NTk4Iixpc284ODU5OTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4'@; put 'OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhi'@; put 'NFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDExZVx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1'@; put 'MDEzMFx1MDE1ZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTFmXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMTMxXHUwMTVmXHhmZiJ9LGNwMjg1OTk6Imlzbzg4'@; put 'NTk5Iixpc284ODU5MTA6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZc'@; put 'eGEwXHUwMTA0XHUwMTEyXHUwMTIyXHUwMTJhXHUwMTI4XHUwMTM2XHhhN1x1MDEzYlx1MDExMFx1MDE2MFx1MDE2Nlx1MDE3ZFx4YWRcdTAxNmFcdTAxNGFceGIwXHUwMTA1XHUwMTEzXHUwMTIzXHUwMTJiXHUwMTI5XHUwMTM3XHhiN1x1MDEzY1x1MDExMVx1MDE2MVx1MDE2N1x1MDE3ZVx1'@; put 'MjAxNVx1MDE2Ylx1MDE0Ylx1MDEwMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx1MDEyZVx1MDEwY1x4YzlcdTAxMThceGNiXHUwMTE2XHhjZFx4Y2VceGNmXHhkMFx1MDE0NVx1MDE0Y1x4ZDNceGQ0XHhkNVx4ZDZcdTAxNjhceGQ4XHUwMTcyXHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHUw'@; put 'MTAxXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHUwMTJmXHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMTdceGVkXHhlZVx4ZWZceGYwXHUwMTQ2XHUwMTRkXHhmM1x4ZjRceGY1XHhmNlx1MDE2OVx4ZjhcdTAxNzNceGZhXHhmYlx4ZmNceGZkXHhmZVx1MDEzOCJ9LGNwMjg2MDA6Imlzbzg4NTkx'@; put 'MCIsaXNvODg1OTExOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhh'@; put 'MFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1'@; put 'MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUz'@; put 'N1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1'@; put 'MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGNwMjg2MDE6Imlzbzg4NTkxMSIsaXNvODg1OTEzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4'@; put 'OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MjAxZFx4YTJceGEzXHhhNFx1MjAxZVx4YTZceGE3XHhkOFx4YTlcdTAxNTZceGFiXHhhY1x4YWRceGFlXHhjNlx4'@; put 'YjBceGIxXHhiMlx4YjNcdTIwMWNceGI1XHhiNlx4YjdceGY4XHhiOVx1MDE1N1x4YmJceGJjXHhiZFx4YmVceGU2XHUwMTA0XHUwMTJlXHUwMTAwXHUwMTA2XHhjNFx4YzVcdTAxMThcdTAxMTJcdTAxMGNceGM5XHUwMTc5XHUwMTE2XHUwMTIyXHUwMTM2XHUwMTJhXHUwMTNiXHUwMTYwXHUw'@; put 'MTQzXHUwMTQ1XHhkM1x1MDE0Y1x4ZDVceGQ2XHhkN1x1MDE3Mlx1MDE0MVx1MDE1YVx1MDE2YVx4ZGNcdTAxN2JcdTAxN2RceGRmXHUwMTA1XHUwMTJmXHUwMTAxXHUwMTA3XHhlNFx4ZTVcdTAxMTlcdTAxMTNcdTAxMGRceGU5XHUwMTdhXHUwMTE3XHUwMTIzXHUwMTM3XHUwMTJiXHUwMTNj'@; put 'XHUwMTYxXHUwMTQ0XHUwMTQ2XHhmM1x1MDE0ZFx4ZjVceGY2XHhmN1x1MDE3M1x1MDE0Mlx1MDE1Ylx1MDE2Ylx4ZmNcdTAxN2NcdTAxN2VcdTIwMTkifSxjcDI4NjAzOiJpc284ODU5MTMiLGlzbzg4NTkxNDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVc'@; put 'eDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTFlMDJcdTFlMDNceGEzXHUwMTBhXHUwMTBiXHUxZTBhXHhhN1x1MWU4MFx4YTlcdTFlODJcdTFl'@; put 'MGJcdTFlZjJceGFkXHhhZVx1MDE3OFx1MWUxZVx1MWUxZlx1MDEyMFx1MDEyMVx1MWU0MFx1MWU0MVx4YjZcdTFlNTZcdTFlODFcdTFlNTdcdTFlODNcdTFlNjBcdTFlZjNcdTFlODRcdTFlODVcdTFlNjFceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2Jc'@; put 'eGNjXHhjZFx4Y2VceGNmXHUwMTc0XHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHUxZTZhXHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHUwMTc2XHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxNzVceGYxXHhmMlx4'@; put 'ZjNceGY0XHhmNVx4ZjZcdTFlNmJceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRcdTAxNzdceGZmIn0sY3AyODYwNDoiaXNvODg1OTE0Iixpc284ODU5MTU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRc'@; put 'eDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHUyMGFjXHhhNVx1MDE2MFx4YTdcdTAxNjFceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x1MDE3ZFx4'@; put 'YjVceGI2XHhiN1x1MDE3ZVx4YjlceGJhXHhiYlx1MDE1Mlx1MDE1M1x1MDE3OFx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhk'@; put 'Y1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0sY3AyODYwNToiaXNvODg1OTE1Iixp'@; put 'c284ODU5MTY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUw'@; put 'MTA0XHUwMTA1XHUwMTQxXHUyMGFjXHUyMDFlXHUwMTYwXHhhN1x1MDE2MVx4YTlcdTAyMThceGFiXHUwMTc5XHhhZFx1MDE3YVx1MDE3Ylx4YjBceGIxXHUwMTBjXHUwMTQyXHUwMTdkXHUyMDFkXHhiNlx4YjdcdTAxN2VcdTAxMGRcdTAyMTlceGJiXHUwMTUyXHUwMTUzXHUwMTc4XHUwMTdj'@; put 'XHhjMFx4YzFceGMyXHUwMTAyXHhjNFx1MDEwNlx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxMTBcdTAxNDNceGQyXHhkM1x4ZDRcdTAxNTBceGQ2XHUwMTVhXHUwMTcwXHhkOVx4ZGFceGRiXHhkY1x1MDExOFx1MDIxYVx4ZGZceGUwXHhlMVx4ZTJcdTAxMDNc'@; put 'eGU0XHUwMTA3XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDExMVx1MDE0NFx4ZjJceGYzXHhmNFx1MDE1MVx4ZjZcdTAxNWJcdTAxNzFceGY5XHhmYVx4ZmJceGZjXHUwMTE5XHUwMjFiXHhmZiJ9LGNwMjg2MDY6Imlzbzg4NTkxNiIsY3A0Mzc6e3R5cGU6Il9z'@; put 'YmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRjXHhhMlx4YTNceGE1XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFc'@; put 'eGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFj'@; put 'XHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUy'@; put 'NTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdm'@; put 'XHhiMlx1MjVhMFx4YTAifSxpYm00Mzc6ImNwNDM3Iixjc2libTQzNzoiY3A0MzciLGNwNzM3Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5'@; put 'Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1'@; put 'MDNjMlx1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUz'@; put 'Y1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNjOVx1'@; put 'MDNhY1x1MDNhZFx1MDNhZVx1MDNjYVx1MDNhZlx1MDNjY1x1MDNjZFx1MDNjYlx1MDNjZVx1MDM4Nlx1MDM4OFx1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDM4Zlx4YjFcdTIyNjVcdTIyNjRcdTAzYWFcdTAzYWJceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUy'@; put 'NWEwXHhhMCJ9LGlibTczNzoiY3A3MzciLGNzaWJtNzM3OiJjcDczNyIsY3A3NzU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwMTA2XHhmY1x4ZTlcdTAxMDFceGU0XHUwMTIzXHhlNVx1MDEwN1x1MDE0Mlx1MDExM1x1MDE1Nlx1MDE1N1x1MDEyYlx1MDE3OVx4YzRceGM1XHhjOVx4ZTZceGM2'@; put 'XHUwMTRkXHhmNlx1MDEyMlx4YTJcdTAxNWFcdTAxNWJceGQ2XHhkY1x4ZjhceGEzXHhkOFx4ZDdceGE0XHUwMTAwXHUwMTJhXHhmM1x1MDE3Ylx1MDE3Y1x1MDE3YVx1MjAxZFx4YTZceGE5XHhhZVx4YWNceGJkXHhiY1x1MDE0MVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUy'@; put 'NTI0XHUwMTA0XHUwMTBjXHUwMTE4XHUwMTE2XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwMTJlXHUwMTYwXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUwMTcyXHUwMTZhXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUwMTdk'@; put 'XHUwMTA1XHUwMTBkXHUwMTE5XHUwMTE3XHUwMTJmXHUwMTYxXHUwMTczXHUwMTZiXHUwMTdlXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHhkM1x4ZGZcdTAxNGNcdTAxNDNceGY1XHhkNVx4YjVcdTAxNDRcdTAxMzZcdTAxMzdcdTAxM2JcdTAxM2NcdTAxNDZc'@; put 'dTAxMTJcdTAxNDVcdTIwMTlceGFkXHhiMVx1MjAxY1x4YmVceGI2XHhhN1x4ZjdcdTIwMWVceGIwXHUyMjE5XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAifSxpYm03NzU6ImNwNzc1Iixjc2libTc3NToiY3A3NzUiLGNwODUwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4'@; put 'ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx4ZDdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGFlXHhhY1x4YmRc'@; put 'eGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1'@; put 'NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhmMFx4ZDBceGNhXHhjYlx4YzhcdTAxMzFceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVceGZlXHhkZVx4ZGFceGRiXHhkOVx4ZmRceGRkXHhhZlx4YjRc'@; put 'eGFkXHhiMVx1MjAxN1x4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCJ9LGlibTg1MDoiY3A4NTAiLGNzaWJtODUwOiJjcDg1MCIsY3A4NTI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRcdTAxNmZcdTAxMDdceGU3'@; put 'XHUwMTQyXHhlYlx1MDE1MFx1MDE1MVx4ZWVcdTAxNzlceGM0XHUwMTA2XHhjOVx1MDEzOVx1MDEzYVx4ZjRceGY2XHUwMTNkXHUwMTNlXHUwMTVhXHUwMTViXHhkNlx4ZGNcdTAxNjRcdTAxNjVcdTAxNDFceGQ3XHUwMTBkXHhlMVx4ZWRceGYzXHhmYVx1MDEwNFx1MDEwNVx1MDE3ZFx1MDE3'@; put 'ZVx1MDExOFx1MDExOVx4YWNcdTAxN2FcdTAxMGNcdTAxNWZceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHUwMTFhXHUwMTVlXHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwMTdiXHUwMTdjXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAw'@; put 'XHUyNTNjXHUwMTAyXHUwMTAzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx1MDExMVx1MDExMFx1MDEwZVx4Y2JcdTAxMGZcdTAxNDdceGNkXHhjZVx1MDExYlx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MDE2Mlx1MDE2ZVx1MjU4MFx4ZDNceGRmXHhk'@; put 'NFx1MDE0M1x1MDE0NFx1MDE0OFx1MDE2MFx1MDE2MVx1MDE1NFx4ZGFcdTAxNTVcdTAxNzBceGZkXHhkZFx1MDE2M1x4YjRceGFkXHUwMmRkXHUwMmRiXHUwMmM3XHUwMmQ4XHhhN1x4ZjdceGI4XHhiMFx4YThcdTAyZDlcdTAxNzFcdTAxNThcdTAxNTlcdTI1YTBceGEwIn0saWJtODUyOiJj'@; put 'cDg1MiIsY3NpYm04NTI6ImNwODUyIixjcDg1NTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0NTJcdTA0MDJcdTA0NTNcdTA0MDNcdTA0NTFcdTA0MDFcdTA0NTRcdTA0MDRcdTA0NTVcdTA0MDVcdTA0NTZcdTA0MDZcdTA0NTdcdTA0MDdcdTA0NThcdTA0MDhcdTA0NTlcdTA0MDlcdTA0NWFc'@; put 'dTA0MGFcdTA0NWJcdTA0MGJcdTA0NWNcdTA0MGNcdTA0NWVcdTA0MGVcdTA0NWZcdTA0MGZcdTA0NGVcdTA0MmVcdTA0NGFcdTA0MmFcdTA0MzBcdTA0MTBcdTA0MzFcdTA0MTFcdTA0NDZcdTA0MjZcdTA0MzRcdTA0MTRcdTA0MzVcdTA0MTVcdTA0NDRcdTA0MjRcdTA0MzNcdTA0MTNceGFi'@; put 'XHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MDQ0NVx1MDQyNVx1MDQzOFx1MDQxOFx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDQzOVx1MDQxOVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDQzYVx1MDQxYVx1MjU1YVx1MjU1NFx1MjU2'@; put 'OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRcdTA0M2JcdTA0MWJcdTA0M2NcdTA0MWNcdTA0M2RcdTA0MWRcdTA0M2VcdTA0MWVcdTA0M2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTA0MWZcdTA0NGZcdTI1ODBcdTA0MmZcdTA0NDBcdTA0MjBcdTA0NDFcdTA0MjFcdTA0NDJcdTA0'@; put 'MjJcdTA0NDNcdTA0MjNcdTA0MzZcdTA0MTZcdTA0MzJcdTA0MTJcdTA0NGNcdTA0MmNcdTIxMTZceGFkXHUwNDRiXHUwNDJiXHUwNDM3XHUwNDE3XHUwNDQ4XHUwNDI4XHUwNDRkXHUwNDJkXHUwNDQ5XHUwNDI5XHUwNDQ3XHUwNDI3XHhhN1x1MjVhMFx4YTAifSxpYm04NTU6ImNwODU1Iixj'@; put 'c2libTg1NToiY3A4NTUiLGNwODU2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1'@; put 'MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx4YTNcdWZmZmRceGQ3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhZVx4YWNceGJkXHhiY1x1ZmZmZFx4YWJceGJiXHUyNTkxXHUyNTkyXHUy'@; put 'NTkzXHUyNTAyXHUyNTI0XHVmZmZkXHVmZmZkXHVmZmZkXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHVmZmZkXHVmZmZkXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZj'@; put 'XHhhNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx4YTZcdWZmZmRcdTI1ODBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGI1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHhhZlx4YjRceGFkXHhiMVx1MjAxN1x4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCJ9LGlibTg1NjoiY3A4NTYiLGNzaWJtODU2OiJjcDg1NiIsY3A4NTc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5'@; put 'XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx1MDEzMVx4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlcdTAxMzBceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MDE1ZVx1MDE1Zlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx1MDExZVx1MDExZlx4YmZc'@; put 'eGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1'@; put 'NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhiYVx4YWFceGNhXHhjYlx4YzhcdWZmZmRceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVcdWZmZmRceGQ3XHhkYVx4ZGJceGQ5XHhl'@; put 'Y1x4ZmZceGFmXHhiNFx4YWRceGIxXHVmZmZkXHhiZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIn0saWJtODU3OiJjcDg1NyIsY3NpYm04NTc6ImNwODU3IixjcDg1ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4'@; put 'ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhceGQ3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFc'@; put 'eGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHhjMFx4YTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYw'@; put 'XHUyNTUwXHUyNTZjXHhhNFx4ZjBceGQwXHhjYVx4Y2JceGM4XHUyMGFjXHhjZFx4Y2VceGNmXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHhmZVx4ZGVceGRhXHhkYlx4ZDlceGZkXHhkZFx4YWZceGI0XHhhZFx4YjFc'@; put 'dTIwMTdceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAifSxpYm04NTg6ImNwODU4Iixjc2libTg1ODoiY3A4NTgiLGNwODYwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGUzXHhlMFx4YzFceGU3XHhlYVx4Y2FceGU4'@; put 'XHhjZFx4ZDRceGVjXHhjM1x4YzJceGM5XHhjMFx4YzhceGY0XHhmNVx4ZjJceGRhXHhmOVx4Y2NceGQ1XHhkY1x4YTJceGEzXHhkOVx1MjBhN1x4ZDNceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGQyXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUy'@; put 'NTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUw'@; put 'XHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThc'@; put 'dTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjA6ImNwODYwIixjc2libTg2MDoiY3A4NjAiLGNwODYxOnt0eXBl'@; put 'OiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhkMFx4ZjBceGRlXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZmVceGZiXHhkZFx4ZmRceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFc'@; put 'eGMxXHhjZFx4ZDNceGRhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1'@; put 'MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5'@; put 'MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1'@; put 'MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtODYxOiJjcDg2MSIsY3NpYm04NjE6ImNwODYxIixjcDg2Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVcdTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRc'@; put 'dTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFceGEyXHhhM1x4YTVcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4'@; put 'YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1Njlc'@; put 'dTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1'@; put 'MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2MjoiY3A4NjIiLGNzaWJtODYyOiJj'@; put 'cDg2MiIsY3A4NjM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4YzJceGUwXHhiNlx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx1MjAxN1x4YzBceGE3XHhjOVx4YzhceGNhXHhmNFx4Y2JceGNmXHhmYlx4ZjlceGE0XHhkNFx4ZGNceGEyXHhhM1x4ZDlceGRiXHUwMTky'@; put 'XHhhNlx4YjRceGYzXHhmYVx4YThceGI4XHhiM1x4YWZceGNlXHUyMzEwXHhhY1x4YmRceGJjXHhiZVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUy'@; put 'NTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4'@; put 'XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBc'@; put 'dTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjM6ImNwODYzIixjc2libTg2MzoiY3A4NjMiLGNwODY0Ont0eXBlOiJfc2JjcyIsY2hhcnM6IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4'@; put 'MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJFx1MDY2YSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGIwXHhiN1x1MjIx'@; put 'OVx1MjIxYVx1MjU5Mlx1MjUwMFx1MjUwMlx1MjUzY1x1MjUyNFx1MjUyY1x1MjUxY1x1MjUzNFx1MjUxMFx1MjUwY1x1MjUxNFx1MjUxOFx1MDNiMlx1MjIxZVx1MDNjNlx4YjFceGJkXHhiY1x1MjI0OFx4YWJceGJiXHVmZWY3XHVmZWY4XHVmZmZkXHVmZmZkXHVmZWZiXHVmZWZjXHVmZmZk'@; put 'XHhhMFx4YWRcdWZlODJceGEzXHhhNFx1ZmU4NFx1ZmZmZFx1ZmZmZFx1ZmU4ZVx1ZmU4Zlx1ZmU5NVx1ZmU5OVx1MDYwY1x1ZmU5ZFx1ZmVhMVx1ZmVhNVx1MDY2MFx1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2Nlx1MDY2N1x1MDY2OFx1MDY2OVx1ZmVkMVx1MDYxYlx1ZmVi'@; put 'MVx1ZmViNVx1ZmViOVx1MDYxZlx4YTJcdWZlODBcdWZlODFcdWZlODNcdWZlODVcdWZlY2FcdWZlOGJcdWZlOGRcdWZlOTFcdWZlOTNcdWZlOTdcdWZlOWJcdWZlOWZcdWZlYTNcdWZlYTdcdWZlYTlcdWZlYWJcdWZlYWRcdWZlYWZcdWZlYjNcdWZlYjdcdWZlYmJcdWZlYmZcdWZlYzFcdWZl'@; put 'YzVcdWZlY2JcdWZlY2ZceGE2XHhhY1x4ZjdceGQ3XHVmZWM5XHUwNjQwXHVmZWQzXHVmZWQ3XHVmZWRiXHVmZWRmXHVmZWUzXHVmZWU3XHVmZWViXHVmZWVkXHVmZWVmXHVmZWYzXHVmZWJkXHVmZWNjXHVmZWNlXHVmZWNkXHVmZWUxXHVmZTdkXHUwNjUxXHVmZWU1XHVmZWU5XHVmZWVjXHVm'@; put 'ZWYwXHVmZWYyXHVmZWQwXHVmZWQ1XHVmZWY1XHVmZWY2XHVmZWRkXHVmZWQ5XHVmZWYxXHUyNWEwXHVmZmZkIn0saWJtODY0OiJjcDg2NCIsY3NpYm04NjQ6ImNwODY0IixjcDg2NTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGVi'@; put 'XHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YTRcdTI1OTFc'@; put 'dTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1'@; put 'NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNh'@; put 'Nlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2NToiY3A4NjUiLGNzaWJtODY1OiJjcDg2NSIsY3A4'@; put 'NjY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUw'@; put 'NDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkz'@; put 'XHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUy'@; put 'NTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5'@; put 'XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUwNDAxXHUwNDUxXHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBlXHUwNDVlXHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIxMTZceGE0XHUyNWEwXHhhMCJ9LGlibTg2NjoiY3A4NjYiLGNzaWJtODY2OiJjcDg2NiIsY3A4Njk6'@; put 'e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzg2XHVmZmZkXHhiN1x4YWNceGE2XHUyMDE4XHUyMDE5XHUwMzg4XHUyMDE1XHUwMzg5XHUwMzhhXHUwM2FhXHUwMzhjXHVmZmZkXHVmZmZkXHUwMzhlXHUwM2FiXHhhOVx1MDM4Zlx4'@; put 'YjJceGIzXHUwM2FjXHhhM1x1MDNhZFx1MDNhZVx1MDNhZlx1MDNjYVx1MDM5MFx1MDNjY1x1MDNjZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x4YmRcdTAzOThcdTAzOTlceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MDM5YVx1MDM5'@; put 'Ylx1MDM5Y1x1MDM5ZFx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDM5ZVx1MDM5Zlx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDNhMFx1MDNhMVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MDNhM1x1MDNhNFx1MDNhNVx1'@; put 'MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNiMVx1MDNiMlx1MDNiM1x1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MDNiNFx1MDNiNVx1MjU4MFx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNj'@; put 'Mlx1MDNjNFx1MDM4NFx4YWRceGIxXHUwM2M1XHUwM2M2XHUwM2M3XHhhN1x1MDNjOFx1MDM4NVx4YjBceGE4XHUwM2M5XHUwM2NiXHUwM2IwXHUwM2NlXHUyNWEwXHhhMCJ9LGlibTg2OToiY3A4NjkiLGNzaWJtODY5OiJjcDg2OSIsY3A5MjI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4'@; put 'ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhh'@; put 'YVx4YWJceGFjXHhhZFx4YWVcdTIwM2VceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDE2MFx4ZDFceGQy'@; put 'XHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRcdTAxN2RceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDE2MVx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFc'@; put 'eGZiXHhmY1x4ZmRcdTAxN2VceGZmIn0saWJtOTIyOiJjcDkyMiIsY3NpYm05MjI6ImNwOTIyIixjcDEwNDY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZTg4XHhkN1x4ZjdcdWY4ZjZcdWY4ZjVcdWY4ZjRcdWY4ZjdcdWZlNzFceDg4XHUyNWEwXHUyNTAyXHUyNTAwXHUyNTEwXHUyNTBjXHUy'@; put 'NTE0XHUyNTE4XHVmZTc5XHVmZTdiXHVmZTdkXHVmZTdmXHVmZTc3XHVmZThhXHVmZWYwXHVmZWYzXHVmZWYyXHVmZWNlXHVmZWNmXHVmZWQwXHVmZWY2XHVmZWY4XHVmZWZhXHVmZWZjXHhhMFx1ZjhmYVx1ZjhmOVx1ZjhmOFx4YTRcdWY4ZmJcdWZlOGJcdWZlOTFcdWZlOTdcdWZlOWJcdWZl'@; put 'OWZcdWZlYTNcdTA2MGNceGFkXHVmZWE3XHVmZWIzXHUwNjYwXHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHVmZWI3XHUwNjFiXHVmZWJiXHVmZWJmXHVmZWNhXHUwNjFmXHVmZWNiXHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwNjI1XHUw'@; put 'NjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUwNjJkXHUwNjJlXHUwNjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHUwNjM2XHUwNjM3XHVmZWM3XHUwNjM5XHUwNjNhXHVmZWNjXHVmZTgyXHVmZTg0XHVmZThlXHVmZWQzXHUwNjQwXHUwNjQx'@; put 'XHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRhXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHUwNjRmXHUwNjUwXHUwNjUxXHUwNjUyXHVmZWQ3XHVmZWRiXHVmZWRmXHVmOGZjXHVmZWY1XHVmZWY3XHVmZWY5XHVmZWZiXHVmZWUzXHVmZWU3XHVm'@; put 'ZWVjXHVmZWU5XHVmZmZkIn0saWJtMTA0NjoiY3AxMDQ2Iixjc2libTEwNDY6ImNwMTA0NiIsY3AxMTI0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5'@; put 'NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDQwMVx1MDQwMlx1MDQ5MFx1MDQwNFx1MDQwNVx1MDQwNlx1MDQwN1x1MDQwOFx1MDQwOVx1MDQwYVx1MDQwYlx1MDQwY1x4YWRcdTA0MGVcdTA0MGZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0'@; put 'MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZc'@; put 'dTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0'@; put 'NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTIxMTZcdTA0NTFcdTA0NTJcdTA0OTFcdTA0NTRcdTA0NTVcdTA0NTZcdTA0NTdcdTA0NThcdTA0NTlcdTA0NWFcdTA0NWJcdTA0NWNceGE3XHUwNDVlXHUwNDVmIn0saWJtMTEyNDoiY3AxMTI0Iixjc2libTExMjQ6ImNwMTEyNCIsY3AxMTI1'@; put 'Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQy'@; put 'N1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1'@; put 'MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2'@; put 'Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1'@; put 'MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQwMVx1MDQ1MVx1MDQ5MFx1MDQ5MVx1MDQwNFx1MDQ1NFx1MDQwNlx1MDQ1Nlx1MDQwN1x1MDQ1N1x4YjdcdTIyMWFcdTIxMTZceGE0XHUyNWEwXHhhMCJ9LGlibTExMjU6ImNwMTEyNSIsY3NpYm0xMTI1OiJjcDExMjUiLGNw'@; put 'MTEyOTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhh'@; put 'Mlx4YTNceGE0XHhhNVx4YTZceGE3XHUwMTUzXHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNcdTAxNzhceGI1XHhiNlx4YjdcdTAxNTJceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHUwMTAyXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5'@; put 'XHhjYVx4Y2JcdTAzMDBceGNkXHhjZVx4Y2ZcdTAxMTBceGQxXHUwMzA5XHhkM1x4ZDRcdTAxYTBceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMWFmXHUwMzAzXHhkZlx4ZTBceGUxXHhlMlx1MDEwM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHUwMzAxXHhlZFx4ZWVc'@; put 'eGVmXHUwMTExXHhmMVx1MDMyM1x4ZjNceGY0XHUwMWExXHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDFiMFx1MjBhYlx4ZmYifSxpYm0xMTI5OiJjcDExMjkiLGNzaWJtMTEyOToiY3AxMTI5IixjcDExMzM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRc'@; put 'eDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwZTgxXHUwZTgyXHUwZTg0XHUwZTg3XHUwZTg4XHUwZWFhXHUwZThhXHUwZThkXHUwZTk0'@; put 'XHUwZTk1XHUwZTk2XHUwZTk3XHUwZTk5XHUwZTlhXHUwZTliXHUwZTljXHUwZTlkXHUwZTllXHUwZTlmXHUwZWExXHUwZWEyXHUwZWEzXHUwZWE1XHUwZWE3XHUwZWFiXHUwZWFkXHUwZWFlXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWFmXHUwZWIwXHUwZWIyXHUwZWIzXHUwZWI0XHUwZWI1XHUw'@; put 'ZWI2XHUwZWI3XHUwZWI4XHUwZWI5XHUwZWJjXHUwZWIxXHUwZWJiXHUwZWJkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWMwXHUwZWMxXHUwZWMyXHUwZWMzXHUwZWM0XHUwZWM4XHUwZWM5XHUwZWNhXHUwZWNiXHUwZWNjXHUwZWNkXHUwZWM2XHVmZmZkXHUwZWRjXHUwZWRkXHUyMGFkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWQwXHUwZWQxXHUwZWQyXHUwZWQzXHUwZWQ0XHUwZWQ1XHUwZWQ2XHUwZWQ3XHUwZWQ4XHUwZWQ5XHVmZmZkXHVmZmZkXHhh'@; put 'Mlx4YWNceGE2XHVmZmZkIn0saWJtMTEzMzoiY3AxMTMzIixjc2libTExMzM6ImNwMTEzMyIsY3AxMTYxOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGU0OFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1'@; put 'MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUy'@; put 'NFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1MGU0OVx1MGU0YVx1MGU0Ylx1MjBhY1x1MGUzZlx1'@; put 'MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1'@; put 'Ylx4YTJceGFjXHhhNlx4YTAifSxpYm0xMTYxOiJjcDExNjEiLGNzaWJtMTE2MToiY3AxMTYxIixjcDExNjI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHg4MVx4ODJceDgzXHg4NFx1MjAyNlx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHUyMDE4XHUy'@; put 'MDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEw'@; put 'XHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUw'@; put 'ZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3'@; put 'XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0saWJtMTE2MjoiY3AxMTYyIixj'@; put 'c2libTExNjI6ImNwMTE2MiIsY3AxMTYzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5'@; put 'ZFx4OWVceDlmXHhhMFx4YTFceGEyXHhhM1x1MjBhY1x4YTVceGE2XHhhN1x1MDE1M1x4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHUwMTc4XHhiNVx4YjZceGI3XHUwMTUyXHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx1MDEwMlx4'@; put 'YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHUwMzAwXHhjZFx4Y2VceGNmXHUwMTEwXHhkMVx1MDMwOVx4ZDNceGQ0XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlc'@; put 'eGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDExMVx4ZjFcdTAzMjNceGYzXHhmNFx1MDFhMVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZmIn0saWJtMTE2MzoiY3AxMTYzIixjc2libTExNjM6ImNwMTE2MyIsbWFjY3JvYXRpYW46e3R5cGU6Il9zYmNzIixj'@; put 'aGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhi'@; put 'Nlx4ZGZceGFlXHUwMTYwXHUyMTIyXHhiNFx4YThcdTIyNjBcdTAxN2RceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx1MjIwNlx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAxNjFcdTIyMmJceGFhXHhiYVx1MjEyNlx1MDE3ZVx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTAx'@; put 'MDZceGFiXHUwMTBjXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MDExMFx1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdWZmZmRceGE5XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx4YzZceGJiXHUyMDEzXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJc'@; put 'dTAxMDdceGMxXHUwMTBkXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1MDExMVx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwM2MwXHhjYlx1MDJkYVx4YjhceGNhXHhlNlx1MDJjNyJ9LG1hY2N5cmlsbGljOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1'@; put 'MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQy'@; put 'Y1x1MDQyZFx1MDQyZVx1MDQyZlx1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MjIwMlx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1'@; put 'MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyMDFlXHUw'@; put 'NDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQz'@; put 'XHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHhhNCJ9LG1hY2dyZWVrOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGI5XHhiMlx4YzlceGIzXHhkNlx4ZGNcdTAzODVceGUwXHhlMlx4ZTRcdTAzODRceGE4XHhlN1x4'@; put 'ZTlceGU4XHhlYVx4ZWJceGEzXHUyMTIyXHhlZVx4ZWZcdTIwMjJceGJkXHUyMDMwXHhmNFx4ZjZceGE2XHhhZFx4ZjlceGZiXHhmY1x1MjAyMFx1MDM5M1x1MDM5NFx1MDM5OFx1MDM5Ylx1MDM5ZVx1MDNhMFx4ZGZceGFlXHhhOVx1MDNhM1x1MDNhYVx4YTdcdTIyNjBceGIwXHUwMzg3XHUw'@; put 'MzkxXHhiMVx1MjI2NFx1MjI2NVx4YTVcdTAzOTJcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOTlcdTAzOWFcdTAzOWNcdTAzYTZcdTAzYWJcdTAzYThcdTAzYTlcdTAzYWNcdTAzOWRceGFjXHUwMzlmXHUwM2ExXHUyMjQ4XHUwM2E0XHhhYlx4YmJcdTIwMjZceGEwXHUwM2E1XHUwM2E3XHUwMzg2'@; put 'XHUwMzg4XHUwMTUzXHUyMDEzXHUyMDE1XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDNhZFx1MDNhZVx1MDNhZlx1MDNjY1x1MDM4Zlx1MDNjZFx1MDNiMVx1MDNiMlx1MDNjOFx1MDNiNFx1MDNiNVx1MDNjNlx1MDNiM1x1MDNiN1x1MDNi'@; put 'OVx1MDNiZVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZlx1MDNjMFx1MDNjZVx1MDNjMVx1MDNjM1x1MDNjNFx1MDNiOFx1MDNjOVx1MDNjMlx1MDNjN1x1MDNjNVx1MDNiNlx1MDNjYVx1MDNjYlx1MDM5MFx1MDNiMFx1ZmZmZCJ9LG1hY2ljZWxhbmQ6e3R5cGU6Il9zYmNzIixjaGFy'@; put 'czoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNceGRkXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRm'@; put 'XHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUy'@; put 'MDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx4ZDBceGYwXHhkZVx4ZmVceGZkXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4'@; put 'Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjcm9tYW46e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4'@; put 'ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUyMjYwXHhj'@; put 'Nlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUz'@; put 'XHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTIwNDRceGE0XHUyMDM5XHUyMDNhXHVmYjAxXHVmYjAyXHUyMDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVm'@; put 'ZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjcm9tYW5pYTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNc'@; put 'eGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBcdTAxMDJcdTAxNWVcdTIyMWVceGIx'@; put 'XHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx1MDEwM1x1MDE1Zlx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAx'@; put 'NFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx1MDE2Mlx1MDE2M1x1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRh'@; put 'XHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyJ9LG1hY3RoYWk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhhYlx4YmJcdTIwMjZcdWY4OGNcdWY4OGZcdWY4OTJcdWY4OTVcdWY4OThcdWY4OGJcdWY4OGVcdWY4OTFc'@; put 'dWY4OTRcdWY4OTdcdTIwMWNcdTIwMWRcdWY4OTlcdWZmZmRcdTIwMjJcdWY4ODRcdWY4ODlcdWY4ODVcdWY4ODZcdWY4ODdcdWY4ODhcdWY4OGFcdWY4OGRcdWY4OTBcdWY4OTNcdWY4OTZcdTIwMThcdTIwMTlcdWZmZmRceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2'@; put 'XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUw'@; put 'ZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZWZmXHUyMDBiXHUyMDEz'@; put 'XHUyMDE0XHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUyMTIyXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUw'@; put 'ZTU5XHhhZVx4YTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSxtYWN0dXJraXNoOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhm'@; put 'M1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJi'@; put 'XHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUwMTFlXHUw'@; put 'MTFmXHUwMTMwXHUwMTMxXHUwMTVlXHUwMTVmXHUyMDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1ZmZmZFx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4'@; put 'XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjdWtyYWluZTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0'@; put 'MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTIwMjBceGIwXHUwNDkwXHhhM1x4YTdcdTIwMjJceGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNc'@; put 'dTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MDQ5MVx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0'@; put 'MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUw'@; put 'NDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHhhNCJ9LGtvaThyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1'@; put 'MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjUxY1x1MjUyNFx1MjUyY1x1MjUzNFx1MjUzY1x1MjU4MFx1MjU4NFx1MjU4OFx1MjU4Y1x1MjU5MFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjMyMFx1MjVhMFx1MjIxOVx1MjIxYVx1MjI0OFx1MjI2NFx1MjI2NVx4YTBcdTIzMjFc'@; put 'eGIwXHhiMlx4YjdceGY3XHUyNTUwXHUyNTUxXHUyNTUyXHUwNDUxXHUyNTUzXHUyNTU0XHUyNTU1XHUyNTU2XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUyNTVjXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUwNDAxXHUyNTYyXHUyNTYzXHUyNTY0XHUyNTY1XHUyNTY2'@; put 'XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUyNTZiXHUyNTZjXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0'@; put 'Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1'@; put 'MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGtvaTh1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjUx'@; put 'Y1x1MjUyNFx1MjUyY1x1MjUzNFx1MjUzY1x1MjU4MFx1MjU4NFx1MjU4OFx1MjU4Y1x1MjU5MFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjMyMFx1MjVhMFx1MjIxOVx1MjIxYVx1MjI0OFx1MjI2NFx1MjI2NVx4YTBcdTIzMjFceGIwXHhiMlx4YjdceGY3XHUyNTUwXHUyNTUxXHUyNTUyXHUwNDUx'@; put 'XHUwNDU0XHUyNTU0XHUwNDU2XHUwNDU3XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUwNDkxXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUwNDAxXHUwNDA0XHUyNTYzXHUwNDA2XHUwNDA3XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUwNDkwXHUyNTZjXHhh'@; put 'OVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1'@; put 'MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQx'@; put 'Nlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGtvaThydTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1MWNcdTI1MjRcdTI1MmNcdTI1MzRcdTI1M2NcdTI1ODBcdTI1ODRc'@; put 'dTI1ODhcdTI1OGNcdTI1OTBcdTI1OTFcdTI1OTJcdTI1OTNcdTIzMjBcdTI1YTBcdTIyMTlcdTIyMWFcdTIyNDhcdTIyNjRcdTIyNjVceGEwXHUyMzIxXHhiMFx4YjJceGI3XHhmN1x1MjU1MFx1MjU1MVx1MjU1Mlx1MDQ1MVx1MDQ1NFx1MjU1NFx1MDQ1Nlx1MDQ1N1x1MjU1N1x1MjU1OFx1'@; put 'MjU1OVx1MjU1YVx1MjU1Ylx1MDQ5MVx1MDQ1ZVx1MjU1ZVx1MjU1Zlx1MjU2MFx1MjU2MVx1MDQwMVx1MDQwNFx1MjU2M1x1MDQwNlx1MDQwN1x1MjU2Nlx1MjU2N1x1MjU2OFx1MjU2OVx1MjU2YVx1MDQ5MFx1MDQwZVx4YTlcdTA0NGVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVc'@; put 'dTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NGZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NGNcdTA0NGJcdTA0MzdcdTA0NDhcdTA0NGRcdTA0NDlcdTA0NDdcdTA0NGFcdTA0MmVcdTA0'@; put 'MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0MjRcdTA0MTNcdTA0MjVcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MmZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0MTJcdTA0MmNcdTA0MmJcdTA0MTdcdTA0MjhcdTA0MmRc'@; put 'dTA0MjlcdTA0MjdcdTA0MmEifSxrb2k4dDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0OWJcdTA0OTNcdTIwMWFcdTA0OTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdTA0YjNcdTIwMzlcdTA0YjJcdTA0YjdcdTA0YjZcdWZmZmRcdTA0OWFcdTIwMThcdTIwMTlcdTIw'@; put 'MWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0ZWZcdTA0ZWVcdTA0NTFceGE0XHUwNGUzXHhhNlx4YTdcdWZmZmRcdWZmZmRcdWZmZmRceGFiXHhhY1x4YWRceGFlXHVmZmZkXHhiMFx4YjFc'@; put 'eGIyXHUwNDAxXHVmZmZkXHUwNGUyXHhiNlx4YjdcdWZmZmRcdTIxMTZcdWZmZmRceGJiXHVmZmZkXHVmZmZkXHVmZmZkXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1'@; put 'MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQx'@; put 'OVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGFybXNjaWk4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBc'@; put 'eDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1ZmZmZFx1MDU4N1x1MDU4OSkoXHhiYlx4YWJcdTIwMTQuXHUw'@; put 'NTVkLC1cdTA1OGFcdTIwMjZcdTA1NWNcdTA1NWJcdTA1NWVcdTA1MzFcdTA1NjFcdTA1MzJcdTA1NjJcdTA1MzNcdTA1NjNcdTA1MzRcdTA1NjRcdTA1MzVcdTA1NjVcdTA1MzZcdTA1NjZcdTA1MzdcdTA1NjdcdTA1MzhcdTA1NjhcdTA1MzlcdTA1NjlcdTA1M2FcdTA1NmFcdTA1M2JcdTA1'@; put 'NmJcdTA1M2NcdTA1NmNcdTA1M2RcdTA1NmRcdTA1M2VcdTA1NmVcdTA1M2ZcdTA1NmZcdTA1NDBcdTA1NzBcdTA1NDFcdTA1NzFcdTA1NDJcdTA1NzJcdTA1NDNcdTA1NzNcdTA1NDRcdTA1NzRcdTA1NDVcdTA1NzVcdTA1NDZcdTA1NzZcdTA1NDdcdTA1NzdcdTA1NDhcdTA1NzhcdTA1NDlc'@; put 'dTA1NzlcdTA1NGFcdTA1N2FcdTA1NGJcdTA1N2JcdTA1NGNcdTA1N2NcdTA1NGRcdTA1N2RcdTA1NGVcdTA1N2VcdTA1NGZcdTA1N2ZcdTA1NTBcdTA1ODBcdTA1NTFcdTA1ODFcdTA1NTJcdTA1ODJcdTA1NTNcdTA1ODNcdTA1NTRcdTA1ODRcdTA1NTVcdTA1ODVcdTA1NTZcdTA1ODZcdTA1'@; put 'NWFcdWZmZmQifSxyazEwNDg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDAyXHUwNDAzXHUyMDFhXHUwNDUzXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUyMGFjXHUyMDMwXHUwNDA5XHUyMDM5XHUwNDBhXHUwNDlhXHUwNGJhXHUwNDBmXHUwNDUyXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFk'@; put 'XHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHUwNDU5XHUyMDNhXHUwNDVhXHUwNDliXHUwNGJiXHUwNDVmXHhhMFx1MDRiMFx1MDRiMVx1MDRkOFx4YTRcdTA0ZThceGE2XHhhN1x1MDQwMVx4YTlcdTA0OTJceGFiXHhhY1x4YWRceGFlXHUwNGFlXHhiMFx4YjFcdTA0MDZcdTA0NTZc'@; put 'dTA0ZTlceGI1XHhiNlx4YjdcdTA0NTFcdTIxMTZcdTA0OTNceGJiXHUwNGQ5XHUwNGEyXHUwNGEzXHUwNGFmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIw'@; put 'XHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUw'@; put 'NDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmIn0sdGN2bjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4ZGFcdTFlZTRceDAzXHUx'@; put 'ZWVhXHUxZWVjXHUxZWVlXHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx1MWVlOFx1MWVmMFx1MWVmMlx1MWVmNlx1MWVmOFx4ZGRcdTFlZjRceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9Q'@; put 'UVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjMFx1MWVhMlx4YzNceGMxXHUxZWEwXHUxZWI2XHUxZWFjXHhjOFx1MWViYVx1MWViY1x4YzlcdTFlYjhcdTFlYzZceGNjXHUxZWM4XHUwMTI4XHhjZFx1MWVjYVx4ZDJcdTFlY2VceGQ1XHhkM1x1'@; put 'MWVjY1x1MWVkOFx1MWVkY1x1MWVkZVx1MWVlMFx1MWVkYVx1MWVlMlx4ZDlcdTFlZTZcdTAxNjhceGEwXHUwMTAyXHhjMlx4Y2FceGQ0XHUwMWEwXHUwMWFmXHUwMTEwXHUwMTAzXHhlMlx4ZWFceGY0XHUwMWExXHUwMWIwXHUwMTExXHUxZWIwXHUwMzAwXHUwMzA5XHUwMzAzXHUwMzAxXHUw'@; put 'MzIzXHhlMFx1MWVhM1x4ZTNceGUxXHUxZWExXHUxZWIyXHUxZWIxXHUxZWIzXHUxZWI1XHUxZWFmXHUxZWI0XHUxZWFlXHUxZWE2XHUxZWE4XHUxZWFhXHUxZWE0XHUxZWMwXHUxZWI3XHUxZWE3XHUxZWE5XHUxZWFiXHUxZWE1XHUxZWFkXHhlOFx1MWVjMlx1MWViYlx1MWViZFx4ZTlcdTFl'@; put 'YjlcdTFlYzFcdTFlYzNcdTFlYzVcdTFlYmZcdTFlYzdceGVjXHUxZWM5XHUxZWM0XHUxZWJlXHUxZWQyXHUwMTI5XHhlZFx1MWVjYlx4ZjJcdTFlZDRcdTFlY2ZceGY1XHhmM1x1MWVjZFx1MWVkM1x1MWVkNVx1MWVkN1x1MWVkMVx1MWVkOVx1MWVkZFx1MWVkZlx1MWVlMVx1MWVkYlx1MWVl'@; put 'M1x4ZjlcdTFlZDZcdTFlZTdcdTAxNjlceGZhXHUxZWU1XHUxZWViXHUxZWVkXHUxZWVmXHUxZWU5XHUxZWYxXHUxZWYzXHUxZWY3XHUxZWY5XHhmZFx1MWVmNVx1MWVkMCJ9LGdlb3JnaWFuYWNhZGVteTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx1MjAxYVx1MDE5Mlx1MjAxZVx1'@; put 'MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx4OGRceDhlXHg4Zlx4OTBcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNceDlkXHg5ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNc'@; put 'eGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHUxMGQwXHUxMGQxXHUxMGQyXHUxMGQzXHUxMGQ0XHUxMGQ1XHUxMGQ2XHUxMGQ3XHUxMGQ4'@; put 'XHUxMGQ5XHUxMGRhXHUxMGRiXHUxMGRjXHUxMGRkXHUxMGRlXHUxMGRmXHUxMGUwXHUxMGUxXHUxMGUyXHUxMGUzXHUxMGU0XHUxMGU1XHUxMGU2XHUxMGU3XHUxMGU4XHUxMGU5XHUxMGVhXHUxMGViXHUxMGVjXHUxMGVkXHUxMGVlXHUxMGVmXHUxMGYwXHUxMGYxXHUxMGYyXHUxMGYzXHUx'@; put 'MGY0XHUxMGY1XHUxMGY2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LGdlb3JnaWFucHM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFcdTIwMWFc'@; put 'dTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJceDhkXHg4ZVx4OGZceDkwXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHg5ZFx4OWVcdTAxNzhceGEw'@; put 'XHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx1MTBkMFx1MTBkMVx1MTBkMlx1MTBkM1x1MTBkNFx1MTBkNVx1MTBk'@; put 'Nlx1MTBmMVx1MTBkN1x1MTBkOFx1MTBkOVx1MTBkYVx1MTBkYlx1MTBkY1x1MTBmMlx1MTBkZFx1MTBkZVx1MTBkZlx1MTBlMFx1MTBlMVx1MTBlMlx1MTBmM1x1MTBlM1x1MTBlNFx1MTBlNVx1MTBlNlx1MTBlN1x1MTBlOFx1MTBlOVx1MTBlYVx1MTBlYlx1MTBlY1x1MTBlZFx1MTBlZVx1'@; put 'MTBmNFx1MTBlZlx1MTBmMFx1MTBmNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0scHQxNTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDk2XHUw'@; put 'NDkyXHUwNGVlXHUwNDkzXHUyMDFlXHUyMDI2XHUwNGI2XHUwNGFlXHUwNGIyXHUwNGFmXHUwNGEwXHUwNGUyXHUwNGEyXHUwNDlhXHUwNGJhXHUwNGI4XHUwNDk3XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNGIzXHUwNGI3XHUwNGExXHUwNGUzXHUwNGEz'@; put 'XHUwNDliXHUwNGJiXHUwNGI5XHhhMFx1MDQwZVx1MDQ1ZVx1MDQwOFx1MDRlOFx1MDQ5OFx1MDRiMFx4YTdcdTA0MDFceGE5XHUwNGQ4XHhhYlx4YWNcdTA0ZWZceGFlXHUwNDljXHhiMFx1MDRiMVx1MDQwNlx1MDQ1Nlx1MDQ5OVx1MDRlOVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNGQ5XHhi'@; put 'Ylx1MDQ1OFx1MDRhYVx1MDRhYlx1MDQ5ZFx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1'@; put 'MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0'@; put 'Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0ZiJ9LHZpc2NpaTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4MDFcdTFlYjJceDAzXHgwNFx1MWViNFx1MWVhYVx4MDdcYlx0XG5cdlxmXHJceDBlXHgw'@; put 'Zlx4MTBceDExXHgxMlx4MTNcdTFlZjZceDE1XHgxNlx4MTdceDE4XHUxZWY4XHgxYVx4MWJceDFjXHgxZFx1MWVmNFx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7'@; put 'fH1+XHg3Zlx1MWVhMFx1MWVhZVx1MWViMFx1MWViNlx1MWVhNFx1MWVhNlx1MWVhOFx1MWVhY1x1MWViY1x1MWViOFx1MWViZVx1MWVjMFx1MWVjMlx1MWVjNFx1MWVjNlx1MWVkMFx1MWVkMlx1MWVkNFx1MWVkNlx1MWVkOFx1MWVlMlx1MWVkYVx1MWVkY1x1MWVkZVx1MWVjYVx1MWVjZVx1'@; put 'MWVjY1x1MWVjOFx1MWVlNlx1MDE2OFx1MWVlNFx1MWVmMlx4ZDVcdTFlYWZcdTFlYjFcdTFlYjdcdTFlYTVcdTFlYTdcdTFlYTlcdTFlYWRcdTFlYmRcdTFlYjlcdTFlYmZcdTFlYzFcdTFlYzNcdTFlYzVcdTFlYzdcdTFlZDFcdTFlZDNcdTFlZDVcdTFlZDdcdTFlZTBcdTAxYTBcdTFlZDlc'@; put 'dTFlZGRcdTFlZGZcdTFlY2JcdTFlZjBcdTFlZThcdTFlZWFcdTFlZWNcdTAxYTFcdTFlZGJcdTAxYWZceGMwXHhjMVx4YzJceGMzXHUxZWEyXHUwMTAyXHUxZWIzXHUxZWI1XHhjOFx4YzlceGNhXHUxZWJhXHhjY1x4Y2RcdTAxMjhcdTFlZjNcdTAxMTBcdTFlZTlceGQyXHhkM1x4ZDRcdTFl'@; put 'YTFcdTFlZjdcdTFlZWJcdTFlZWRceGQ5XHhkYVx1MWVmOVx1MWVmNVx4ZGRcdTFlZTFcdTAxYjBceGUwXHhlMVx4ZTJceGUzXHUxZWEzXHUwMTAzXHUxZWVmXHUxZWFiXHhlOFx4ZTlceGVhXHUxZWJiXHhlY1x4ZWRcdTAxMjlcdTFlYzlcdTAxMTFcdTFlZjFceGYyXHhmM1x4ZjRceGY1XHUx'@; put 'ZWNmXHUxZWNkXHUxZWU1XHhmOVx4ZmFcdTAxNjlcdTFlZTdceGZkXHUxZWUzXHUxZWVlIn0saXNvNjQ2Y246e3R5cGU6Il9zYmNzIixjaGFyczoiXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgx'@; put 'N1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiNceGE1JSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XHUyMDNlXHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGlzbzY0NmpwOnt0eXBlOiJfc2JjcyIsY2hhcnM6IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVc'@; put 'eDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltceGE1XV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9'@; put 'XHUyMDNlXHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGhwcm9tYW44Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4'@; put 'ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YzBceGMyXHhjOFx4Y2FceGNiXHhjZVx4Y2ZceGI0XHUwMmNiXHUwMmM2XHhh'@; put 'OFx1MDJkY1x4ZDlceGRiXHUyMGE0XHhhZlx4ZGRceGZkXHhiMFx4YzdceGU3XHhkMVx4ZjFceGExXHhiZlx4YTRceGEzXHhhNVx4YTdcdTAxOTJceGEyXHhlMlx4ZWFceGY0XHhmYlx4ZTFceGU5XHhmM1x4ZmFceGUwXHhlOFx4ZjJceGY5XHhlNFx4ZWJceGY2XHhmY1x4YzVceGVlXHhkOFx4'@; put 'YzZceGU1XHhlZFx4ZjhceGU2XHhjNFx4ZWNceGQ2XHhkY1x4YzlceGVmXHhkZlx4ZDRceGMxXHhjM1x4ZTNceGQwXHhmMFx4Y2RceGNjXHhkM1x4ZDJceGQ1XHhmNVx1MDE2MFx1MDE2MVx4ZGFcdTAxNzhceGZmXHhkZVx4ZmVceGI3XHhiNVx4YjZceGJlXHUyMDE0XHhiY1x4YmRceGFhXHhi'@; put 'YVx4YWJcdTI1YTBceGJiXHhiMVx1ZmZmZCJ9LG1hY2ludG9zaDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4'@; put 'ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUy'@; put 'MTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4YTRcdTIwMzlcdTIw'@; put 'M2FcdWZiMDFcdWZiMDJcdTIwMjFceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJc'@; put 'dTAyYzcifSxhc2NpaTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSx0aXM2MjA6e3R5cGU6Il9zYmNz'@; put 'IixjaGFyczoiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUw'@; put 'ZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMw'@; put 'XHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUw'@; put 'ZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn19fSw2NDc3MzphdD0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPXsxMDAyOToi'@; put 'bWFjY2VudGV1cm8iLG1hY2NlbnRldXJvOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRcdTAxMDBcdTAxMDFceGM5XHUwMTA0XHhkNlx4ZGNceGUxXHUwMTA1XHUwMTBjXHhlNFx1MDEwZFx1MDEwNlx1MDEwN1x4ZTlcdTAxNzlcdTAxN2FcdTAxMGVceGVkXHUwMTBmXHUwMTEyXHUwMTEzXHUw'@; put 'MTE2XHhmM1x1MDExN1x4ZjRceGY2XHhmNVx4ZmFcdTAxMWFcdTAxMWJceGZjXHUyMDIwXHhiMFx1MDExOFx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx1MDExOVx4YThcdTIyNjBcdTAxMjNcdTAxMmVcdTAxMmZcdTAxMmFcdTIyNjRcdTIyNjVcdTAxMmJcdTAxMzZcdTIy'@; put 'MDJcdTIyMTFcdTAxNDJcdTAxM2JcdTAxM2NcdTAxM2RcdTAxM2VcdTAxMzlcdTAxM2FcdTAxNDVcdTAxNDZcdTAxNDNceGFjXHUyMjFhXHUwMTQ0XHUwMTQ3XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHUwMTQ4XHUwMTUwXHhkNVx1MDE1MVx1MDE0Y1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAx'@; put 'ZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdTAxNGRcdTAxNTRcdTAxNTVcdTAxNThcdTIwMzlcdTIwM2FcdTAxNTlcdTAxNTZcdTAxNTdcdTAxNjBcdTIwMWFcdTIwMWVcdTAxNjFcdTAxNWFcdTAxNWJceGMxXHUwMTY0XHUwMTY1XHhjZFx1MDE3ZFx1MDE3ZVx1MDE2YVx4ZDNceGQ0XHUwMTZi'@; put 'XHUwMTZlXHhkYVx1MDE2Zlx1MDE3MFx1MDE3MVx1MDE3Mlx1MDE3M1x4ZGRceGZkXHUwMTM3XHUwMTdiXHUwMTQxXHUwMTdjXHUwMTIyXHUwMmM3In0sODA4OiJjcDgwOCIsaWJtODA4OiJjcDgwOCIsY3A4MDg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEz'@; put 'XHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUw'@; put 'NDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUx'@; put 'XHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUy'@; put 'NTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUwNDAxXHUwNDUx'@; put 'XHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBlXHUwNDVlXHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIxMTZcdTIwYWNcdTI1YTBceGEwIn0sbWlrOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQx'@; put 'OVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1'@; put 'MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MjUx'@; put 'NFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU2M1x1MjU1MVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjUxMFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjExNlx4YTdcdTI1NTdcdTI1NWRcdTI1MThcdTI1MGNcdTI1ODhcdTI1'@; put 'ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIx'@; put 'OVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGNwNzIwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHhlOVx4ZTJceDg0XHhlMFx4ODZceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceDhkXHg4ZVx4OGZceDkwXHUwNjUxXHUwNjUyXHhmNFx4YTRcdTA2NDBceGZiXHhmOVx1'@; put 'MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx4YTNcdTA2MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2MjlcdTA2MmFcdTA2MmJcdTA2MmNcdTA2MmRcdTA2MmVcdTA2MmZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUy'@; put 'NFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1'@; put 'MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDYzNlx1MDYzN1x1MDYzOFx1MDYzOVx1MDYzYVx1MDY0MVx4YjVcdTA2NDJcdTA2NDNcdTA2NDRcdTA2NDVcdTA2NDZc'@; put 'dTA2NDdcdTA2NDhcdTA2NDlcdTA2NGFcdTIyNjFcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVcdTA2NGZcdTA2NTBcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0sYXNjaWk4Yml0OiJhc2NpaSIsdXNhc2NpaToiYXNjaWkiLGFuc2l4MzQ6ImFzY2lpIixh'@; put 'bnNpeDM0MTk2ODoiYXNjaWkiLGFuc2l4MzQxOTg2OiJhc2NpaSIsY3Nhc2NpaToiYXNjaWkiLGNwMzY3OiJhc2NpaSIsaWJtMzY3OiJhc2NpaSIsaXNvaXI2OiJhc2NpaSIsaXNvNjQ2dXM6ImFzY2lpIixpc282NDZpcnY6ImFzY2lpIix1czoiYXNjaWkiLGxhdGluMToiaXNvODg1OTEiLGxh'@; put 'dGluMjoiaXNvODg1OTIiLGxhdGluMzoiaXNvODg1OTMiLGxhdGluNDoiaXNvODg1OTQiLGxhdGluNToiaXNvODg1OTkiLGxhdGluNjoiaXNvODg1OTEwIixsYXRpbjc6Imlzbzg4NTkxMyIsbGF0aW44OiJpc284ODU5MTQiLGxhdGluOToiaXNvODg1OTE1IixsYXRpbjEwOiJpc284ODU5MTYi'@; put 'LGNzaXNvbGF0aW4xOiJpc284ODU5MSIsY3Npc29sYXRpbjI6Imlzbzg4NTkyIixjc2lzb2xhdGluMzoiaXNvODg1OTMiLGNzaXNvbGF0aW40OiJpc284ODU5NCIsY3Npc29sYXRpbmN5cmlsbGljOiJpc284ODU5NSIsY3Npc29sYXRpbmFyYWJpYzoiaXNvODg1OTYiLGNzaXNvbGF0aW5ncmVl'@; put 'azoiaXNvODg1OTciLGNzaXNvbGF0aW5oZWJyZXc6Imlzbzg4NTk4Iixjc2lzb2xhdGluNToiaXNvODg1OTkiLGNzaXNvbGF0aW42OiJpc284ODU5MTAiLGwxOiJpc284ODU5MSIsbDI6Imlzbzg4NTkyIixsMzoiaXNvODg1OTMiLGw0OiJpc284ODU5NCIsbDU6Imlzbzg4NTk5IixsNjoiaXNv'@; put 'ODg1OTEwIixsNzoiaXNvODg1OTEzIixsODoiaXNvODg1OTE0IixsOToiaXNvODg1OTE1IixsMTA6Imlzbzg4NTkxNiIsaXNvaXIxNDoiaXNvNjQ2anAiLGlzb2lyNTc6ImlzbzY0NmNuIixpc29pcjEwMDoiaXNvODg1OTEiLGlzb2lyMTAxOiJpc284ODU5MiIsaXNvaXIxMDk6Imlzbzg4NTkz'@; put 'Iixpc29pcjExMDoiaXNvODg1OTQiLGlzb2lyMTQ0OiJpc284ODU5NSIsaXNvaXIxMjc6Imlzbzg4NTk2Iixpc29pcjEyNjoiaXNvODg1OTciLGlzb2lyMTM4OiJpc284ODU5OCIsaXNvaXIxNDg6Imlzbzg4NTk5Iixpc29pcjE1NzoiaXNvODg1OTEwIixpc29pcjE2NjoidGlzNjIwIixpc29p'@; put 'cjE3OToiaXNvODg1OTEzIixpc29pcjE5OToiaXNvODg1OTE0Iixpc29pcjIwMzoiaXNvODg1OTE1Iixpc29pcjIyNjoiaXNvODg1OTE2IixjcDgxOToiaXNvODg1OTEiLGlibTgxOToiaXNvODg1OTEiLGN5cmlsbGljOiJpc284ODU5NSIsYXJhYmljOiJpc284ODU5NiIsYXJhYmljODoiaXNv'@; put 'ODg1OTYiLGVjbWExMTQ6Imlzbzg4NTk2Iixhc21vNzA4OiJpc284ODU5NiIsZ3JlZWs6Imlzbzg4NTk3IixncmVlazg6Imlzbzg4NTk3IixlY21hMTE4OiJpc284ODU5NyIsZWxvdDkyODoiaXNvODg1OTciLGhlYnJldzoiaXNvODg1OTgiLGhlYnJldzg6Imlzbzg4NTk4Iix0dXJraXNoOiJp'@; put 'c284ODU5OSIsdHVya2lzaDg6Imlzbzg4NTk5Iix0aGFpOiJpc284ODU5MTEiLHRoYWk4OiJpc284ODU5MTEiLGNlbHRpYzoiaXNvODg1OTE0IixjZWx0aWM4OiJpc284ODU5MTQiLGlzb2NlbHRpYzoiaXNvODg1OTE0Iix0aXM2MjAwOiJ0aXM2MjAiLHRpczYyMDI1MjkxOiJ0aXM2MjAiLHRp'@; put 'czYyMDI1MzMwOiJ0aXM2MjAiLDFlNDoibWFjcm9tYW4iLDEwMDA2OiJtYWNncmVlayIsMTAwMDc6Im1hY2N5cmlsbGljIiwxMDA3OToibWFjaWNlbGFuZCIsMTAwODE6Im1hY3R1cmtpc2giLGNzcGM4Y29kZXBhZ2U0Mzc6ImNwNDM3Iixjc3BjNzc1YmFsdGljOiJjcDc3NSIsY3NwYzg1MG11'@; put 'bHRpbGluZ3VhbDoiY3A4NTAiLGNzcGNwODUyOiJjcDg1MiIsY3NwYzg2MmxhdGluaGVicmV3OiJjcDg2MiIsY3BncjoiY3A4NjkiLG1zZWU6ImNwMTI1MCIsbXNjeXJsOiJjcDEyNTEiLG1zYW5zaToiY3AxMjUyIixtc2dyZWVrOiJjcDEyNTMiLG1zdHVyazoiY3AxMjU0Iixtc2hlYnI6ImNw'@; put 'MTI1NSIsbXNhcmFiOiJjcDEyNTYiLHdpbmJhbHRyaW06ImNwMTI1NyIsY3AyMDg2Njoia29pOHIiLDIwODY2OiJrb2k4ciIsaWJtODc4OiJrb2k4ciIsY3Nrb2k4cjoia29pOHIiLGNwMjE4NjY6ImtvaTh1IiwyMTg2Njoia29pOHUiLGlibTExNjg6ImtvaTh1IixzdHJrMTA0ODIwMDI6InJr'@; put 'MTA0OCIsdGN2bjU3MTI6InRjdm4iLHRjdm41NzEyMToidGN2biIsZ2IxOTg4ODA6ImlzbzY0NmNuIixjbjoiaXNvNjQ2Y24iLGNzaXNvMTRqaXNjNjIyMHJvOiJpc282NDZqcCIsamlzYzYyMjAxOTY5cm86ImlzbzY0NmpwIixqcDoiaXNvNjQ2anAiLGNzaHByb21hbjg6Imhwcm9tYW44Iixy'@; put 'ODoiaHByb21hbjgiLHJvbWFuODoiaHByb21hbjgiLHhyb21hbjg6Imhwcm9tYW44IixpYm0xMDUxOiJocHJvbWFuOCIsbWFjOiJtYWNpbnRvc2giLGNzbWFjaW50b3NoOiJtYWNpbnRvc2gifX0sNDMyODA6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI0MTc5KS5CdWZmZXI7'@; put 'ZnVuY3Rpb24geCgpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGxlKCl7dGhpcy5vdmVyZmxvd0J5dGU9LTF9ZnVuY3Rpb24gTShLLEkpe3RoaXMuaWNvbnY9SX1mdW5jdGlvbiBPKEssSSl7dm9pZCAwPT09KEs9S3x8e30pLmFkZEJPTSYmKEsuYWRkQk9NPSEwKSx0aGlzLmVuY29kZXI9SS5p'@; put 'Y29udi5nZXRFbmNvZGVyKCJ1dGYtMTZsZSIsSyl9ZnVuY3Rpb24gUihLLEkpe3RoaXMuZGVjb2Rlcj1udWxsLHRoaXMuaW5pdGlhbEJ5dGVzPVtdLHRoaXMuaW5pdGlhbEJ5dGVzTGVuPTAsdGhpcy5vcHRpb25zPUt8fHt9LHRoaXMuaWNvbnY9SS5pY29udn1mdW5jdGlvbiB6KEssSSl7dmFy'@; put 'IGs9SXx8InV0Zi0xNmxlIjtpZihLLmxlbmd0aD49MilpZigyNTQ9PUtbMF0mJjI1NT09S1sxXSlrPSJ1dGYtMTZiZSI7ZWxzZSBpZigyNTU9PUtbMF0mJjI1ND09S1sxXSlrPSJ1dGYtMTZsZSI7ZWxzZXtmb3IodmFyIEU9MCxqPTAsVj1NYXRoLm1pbihLLmxlbmd0aC1LLmxlbmd0aCUyLDY0'@; put 'KSxCPTA7QjxWO0IrPTIpMD09PUtbQl0mJjAhPT1LW0IrMV0mJmorKywwIT09S1tCXSYmMD09PUtbQisxXSYmRSsrO2o+RT9rPSJ1dGYtMTZiZSI6ajxFJiYoaz0idXRmLTE2bGUiKX1yZXR1cm4ga31JZS51dGYxNmJlPXgseC5wcm90b3R5cGUuZW5jb2Rlcj1tLHgucHJvdG90eXBlLmRlY29k'@; put 'ZXI9bGUseC5wcm90b3R5cGUuYm9tQXdhcmU9ITAsbS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oSyl7Zm9yKHZhciBJPWFlLmZyb20oSywidWNzMiIpLGs9MDtrPEkubGVuZ3RoO2srPTIpe3ZhciBFPUlba107SVtrXT1JW2srMV0sSVtrKzFdPUV9cmV0dXJuIEl9LG0ucHJvdG90eXBlLmVu'@; put 'ZD1mdW5jdGlvbigpe30sbGUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEspe2lmKDA9PUsubGVuZ3RoKXJldHVybiIiO3ZhciBJPWFlLmFsbG9jKEsubGVuZ3RoKzEpLGs9MCxFPTA7Zm9yKC0xIT09dGhpcy5vdmVyZmxvd0J5dGUmJihJWzBdPUtbMF0sSVsxXT10aGlzLm92ZXJmbG93Qnl0'@; put 'ZSxrPTEsRT0yKTtrPEsubGVuZ3RoLTE7ays9MixFKz0yKUlbRV09S1trKzFdLElbRSsxXT1LW2tdO3JldHVybiB0aGlzLm92ZXJmbG93Qnl0ZT1rPT1LLmxlbmd0aC0xP0tbSy5sZW5ndGgtMV06LTEsSS5zbGljZSgwLEUpLnRvU3RyaW5nKCJ1Y3MyIil9LGxlLnByb3RvdHlwZS5lbmQ9ZnVu'@; put 'Y3Rpb24oKXt9LEllLnV0ZjE2PU0sTS5wcm90b3R5cGUuZW5jb2Rlcj1PLE0ucHJvdG90eXBlLmRlY29kZXI9UixPLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKEspfSxPLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5l'@; put 'bmNvZGVyLmVuZCgpfSxSLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihLKXtpZighdGhpcy5kZWNvZGVyKXtpZih0aGlzLmluaXRpYWxCeXRlcy5wdXNoKEspLHRoaXMuaW5pdGlhbEJ5dGVzTGVuKz1LLmxlbmd0aCx0aGlzLmluaXRpYWxCeXRlc0xlbjwxNilyZXR1cm4iIjt2YXIgST16KEs9'@; put 'YWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSx0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTt0aGlzLmRlY29kZXI9dGhpcy5pY29udi5nZXREZWNvZGVyKEksdGhpcy5vcHRpb25zKSx0aGlzLmluaXRpYWxCeXRlcy5sZW5ndGg9dGhpcy5pbml0aWFsQnl0ZXNMZW49MH1yZXR1cm4g'@; put 'dGhpcy5kZWNvZGVyLndyaXRlKEspfSxSLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5kZWNvZGVyKXt2YXIgSz1hZS5jb25jYXQodGhpcy5pbml0aWFsQnl0ZXMpLEk9eihLLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252Lmdl'@; put 'dERlY29kZXIoSSx0aGlzLm9wdGlvbnMpO3ZhciBrPXRoaXMuZGVjb2Rlci53cml0ZShLKSxFPXRoaXMuZGVjb2Rlci5lbmQoKTtyZXR1cm4gRT9rK0U6a31yZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpfX0sOTI4NDQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI0MTc5KS5C'@; put 'dWZmZXI7ZnVuY3Rpb24geChLLEkpe3RoaXMuaWNvbnY9SSx0aGlzLmJvbUF3YXJlPSEwLHRoaXMuaXNMRT1LLmlzTEV9ZnVuY3Rpb24gbShLLEkpe3RoaXMuaXNMRT1JLmlzTEUsdGhpcy5oaWdoU3Vycm9nYXRlPTB9ZnVuY3Rpb24gbGUoSyxJKXt0aGlzLmlzTEU9SS5pc0xFLHRoaXMuYmFk'@; put 'Q2hhcj1JLmljb252LmRlZmF1bHRDaGFyVW5pY29kZS5jaGFyQ29kZUF0KDApLHRoaXMub3ZlcmZsb3c9bnVsbH1mdW5jdGlvbiBNKEssSSl7dGhpcy5pY29udj1JfWZ1bmN0aW9uIE8oSyxJKXt2b2lkIDA9PT0oSz1LfHx7fSkuYWRkQk9NJiYoSy5hZGRCT009ITApLHRoaXMuZW5jb2Rlcj1J'@; put 'Lmljb252LmdldEVuY29kZXIoSy5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGYtMzJsZSIsSyl9ZnVuY3Rpb24gUihLLEkpe3RoaXMuZGVjb2Rlcj1udWxsLHRoaXMuaW5pdGlhbEJ5dGVzPVtdLHRoaXMuaW5pdGlhbEJ5dGVzTGVuPTAsdGhpcy5vcHRpb25zPUt8fHt9LHRoaXMuaWNvbnY9SS5pY29u'@; put 'dn1mdW5jdGlvbiB6KEssSSl7dmFyIGs9SXx8InV0Zi0zMmxlIjtpZihLLmxlbmd0aD49NClpZig2NTI3OT09PUsucmVhZFVJbnQzMkJFKDApKWs9InV0Zi0zMmJlIjtlbHNlIGlmKDY1Mjc5PT09Sy5yZWFkVUludDMyTEUoMCkpaz0idXRmLTMybGUiO2Vsc2V7Zm9yKHZhciBFPTAsaj0wLFY9'@; put 'MCxCPTAsWT1NYXRoLm1pbihLLmxlbmd0aC1LLmxlbmd0aCU0LDEyOCksWD0wO1g8WTtYKz00KXt2YXIgVT1LW1hdLHE9S1tYKzFdLGVlPUtbWCsyXSx0ZT1LW1grM107KDAhPT1VfHxxPjE2KSYmKytqLCgwIT09dGV8fGVlPjE2KSYmKytFLDA9PT1VJiYwPT09cSYmMD09PWVlJiYwIT09dGUm'@; put 'JkIrKywwIT09VSYmMD09PXEmJjA9PT1lZSYmMD09PXRlJiZWKyt9ajxFP2s9InV0Zi0zMmJlIjpFPGomJihrPSJ1dGYtMzJsZSIpLEI+Vj9rPSJ1dGYtMzJiZSI6QjxWJiYoaz0idXRmLTMybGUiKX1yZXR1cm4ga31JZS5fdXRmMzI9eCxJZS51dGYzMmxlPXt0eXBlOiJfdXRmMzIiLGlzTEU6'@; put 'ITB9LEllLnV0ZjMyYmU9e3R5cGU6Il91dGYzMiIsaXNMRTohMX0sSWUudWNzNGxlPSJ1dGYzMmxlIixJZS51Y3M0YmU9InV0ZjMyYmUiLHgucHJvdG90eXBlLmVuY29kZXI9bSx4LnByb3RvdHlwZS5kZWNvZGVyPWxlLG0ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEspe2Zvcih2YXIgST1h'@; put 'ZS5mcm9tKEssInVjczIiKSxrPWFlLmFsbG9jKDIqSS5sZW5ndGgpLEU9dGhpcy5pc0xFP2sud3JpdGVVSW50MzJMRTprLndyaXRlVUludDMyQkUsaj0wLFY9MDtWPEkubGVuZ3RoO1YrPTIpe3ZhciBCPUkucmVhZFVJbnQxNkxFKFYpLFk9NTUyOTY8PUImJkI8NTYzMjA7aWYodGhpcy5oaWdo'@; put 'U3Vycm9nYXRlKXtpZighWSYmNTYzMjA8PUImJkI8NTczNDQpe0UuY2FsbChrLDY1NTM2Kyh0aGlzLmhpZ2hTdXJyb2dhdGUtNTUyOTY8PDEwfEItNTYzMjApLGopLGorPTQsdGhpcy5oaWdoU3Vycm9nYXRlPTA7Y29udGludWV9RS5jYWxsKGssdGhpcy5oaWdoU3Vycm9nYXRlLGopLGorPTR9'@; put 'WT90aGlzLmhpZ2hTdXJyb2dhdGU9QjooRS5jYWxsKGssQixqKSxqKz00LHRoaXMuaGlnaFN1cnJvZ2F0ZT0wKX1yZXR1cm4gajxrLmxlbmd0aCYmKGs9ay5zbGljZSgwLGopKSxrfSxtLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZih0aGlzLmhpZ2hTdXJyb2dhdGUpe3ZhciBLPWFlLmFs'@; put 'bG9jKDQpO3JldHVybiB0aGlzLmlzTEU/Sy53cml0ZVVJbnQzMkxFKHRoaXMuaGlnaFN1cnJvZ2F0ZSwwKTpLLndyaXRlVUludDMyQkUodGhpcy5oaWdoU3Vycm9nYXRlLDApLHRoaXMuaGlnaFN1cnJvZ2F0ZT0wLEt9fSxsZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oSyl7aWYoMD09PUsu'@; put 'bGVuZ3RoKXJldHVybiIiO3RoaXMub3ZlcmZsb3cmJihLPWFlLmNvbmNhdChbdGhpcy5vdmVyZmxvdyxLXSkpO3ZhciBJPUsubGVuZ3RoLUsubGVuZ3RoJTQ7Sy5sZW5ndGghPT1JPyh0aGlzLm92ZXJmbG93PUsuc2xpY2UoSSksSz1LLnNsaWNlKDAsSSkpOnRoaXMub3ZlcmZsb3c9bnVsbDtm'@; put 'b3IodmFyIGs9YWUuYWxsb2MoSSksRT0wLGo9MDtqPEk7ais9NCl7dmFyIFY9dGhpcy5pc0xFP0sucmVhZFVJbnQzMkxFKGopOksucmVhZFVJbnQzMkJFKGopO2lmKFY8NjU1MzYpay53cml0ZVVJbnQxNkxFKFYsRSksRSs9MjtlbHNlIGlmKFY+MTExNDExMSlrLndyaXRlVUludDE2TEUodGhp'@; put 'cy5iYWRDaGFyLEUpLEUrPTI7ZWxzZXt2YXIgWT01NjMyMCsoMTAyMyYoVi09NjU1MzYpKTtrLndyaXRlVUludDE2TEUoNTUyOTZ8Vj4+MTAsRSksay53cml0ZVVJbnQxNkxFKFksRSs9MiksRSs9Mn19cmV0dXJuIGsuc2xpY2UoMCxFKS50b1N0cmluZygidWNzMiIpfSxsZS5wcm90b3R5cGUu'@; put 'ZW5kPWZ1bmN0aW9uKCl7dGhpcy5vdmVyZmxvdz1udWxsfSxJZS51dGYzMj1NLEllLnVjczQ9TSxNLnByb3RvdHlwZS5lbmNvZGVyPU8sTS5wcm90b3R5cGUuZGVjb2Rlcj1SLE8ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEspe3JldHVybiB0aGlzLmVuY29kZXIud3JpdGUoSyl9LE8ucHJv'@; put 'dG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuY29kZXIuZW5kKCl9LFIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEspe2lmKCF0aGlzLmRlY29kZXIpe2lmKHRoaXMuaW5pdGlhbEJ5dGVzLnB1c2goSyksdGhpcy5pbml0aWFsQnl0ZXNMZW4rPUsubGVuZ3RoLHRoaXMuaW5p'@; put 'dGlhbEJ5dGVzTGVuPDMyKXJldHVybiIiO3ZhciBrPXooYWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSx0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTt0aGlzLmRlY29kZXI9dGhpcy5pY29udi5nZXREZWNvZGVyKGssdGhpcy5vcHRpb25zKSx0aGlzLmluaXRpYWxCeXRlcy5sZW5n'@; put 'dGg9dGhpcy5pbml0aWFsQnl0ZXNMZW49MH1yZXR1cm4gdGhpcy5kZWNvZGVyLndyaXRlKEspfSxSLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5kZWNvZGVyKXt2YXIgSz1hZS5jb25jYXQodGhpcy5pbml0aWFsQnl0ZXMpLEk9eihLLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5j'@; put 'b2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoSSx0aGlzLm9wdGlvbnMpO3ZhciBrPXRoaXMuZGVjb2Rlci53cml0ZShLKSxFPXRoaXMuZGVjb2Rlci5lbmQoKTtyZXR1cm4gRT9rK0U6a31yZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpfX0sNzgzNTQ6KGF0LEllLEYp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI0MTc5KS5CdWZmZXI7ZnVuY3Rpb24geChZLFgpe3RoaXMuaWNvbnY9WH1JZS51dGY3PXgsSWUudW5pY29kZTExdXRmNz0idXRmNyIseC5wcm90b3R5cGUuZW5jb2Rlcj1sZSx4LnByb3RvdHlwZS5kZWNvZGVyPU0seC5wcm90b3R5cGUuYm9tQXdh'@; put 'cmU9ITA7dmFyIG09L1teQS1aYS16MC05J1woXCksLVwuXC86XD8gXG5cclx0XSsvZztmdW5jdGlvbiBsZShZLFgpe3RoaXMuaWNvbnY9WC5pY29udn1mdW5jdGlvbiBNKFksWCl7dGhpcy5pY29udj1YLmljb252LHRoaXMuaW5CYXNlNjQ9ITEsdGhpcy5iYXNlNjRBY2N1bT0iIn1sZS5wcm90'@; put 'b3R5cGUud3JpdGU9ZnVuY3Rpb24oWSl7cmV0dXJuIGFlLmZyb20oWS5yZXBsYWNlKG0sZnVuY3Rpb24oWCl7cmV0dXJuIisiKygiKyI9PT1YPyIiOnRoaXMuaWNvbnYuZW5jb2RlKFgsInV0ZjE2LWJlIikudG9TdHJpbmcoImJhc2U2NCIpLnJlcGxhY2UoLz0rJC8sIiIpKSsiLSJ9LmJpbmQo'@; put 'dGhpcykpKX0sbGUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe307Zm9yKHZhciBPPS9bQS1aYS16MC05XC8rXS8sUj1bXSx6PTA7ejwyNTY7eisrKVJbel09Ty50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoeikpO3ZhciBLPSIrIi5jaGFyQ29kZUF0KDApLEk9Ii0iLmNoYXJDb2RlQXQoMCks'@; put 'az0iJiIuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBFKFksWCl7dGhpcy5pY29udj1YfWZ1bmN0aW9uIGooWSxYKXt0aGlzLmljb252PVguaWNvbnYsdGhpcy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3VtPWFlLmFsbG9jKDYpLHRoaXMuYmFzZTY0QWNjdW1JZHg9MH1mdW5jdGlvbiBWKFks'@; put 'WCl7dGhpcy5pY29udj1YLmljb252LHRoaXMuaW5CYXNlNjQ9ITEsdGhpcy5iYXNlNjRBY2N1bT0iIn1NLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihZKXtmb3IodmFyIFg9IiIsVT0wLHE9dGhpcy5pbkJhc2U2NCxlZT10aGlzLmJhc2U2NEFjY3VtLHRlPTA7dGU8WS5sZW5ndGg7dGUrKylp'@; put 'ZihxKXtpZighUltZW3RlXV0pe2lmKHRlPT1VJiZZW3RlXT09SSlYKz0iKyI7ZWxzZXt2YXIgb2U9ZWUrWS5zbGljZShVLHRlKS50b1N0cmluZygpO1grPXRoaXMuaWNvbnYuZGVjb2RlKGFlLmZyb20ob2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfVlbdGVdIT1JJiZ0ZS0tLFU9dGUrMSxxPSEx'@; put 'LGVlPSIifX1lbHNlIFlbdGVdPT1LJiYoWCs9dGhpcy5pY29udi5kZWNvZGUoWS5zbGljZShVLHRlKSwiYXNjaWkiKSxVPXRlKzEscT0hMCk7aWYocSl7dmFyIHNlPShvZT1lZStZLnNsaWNlKFUpLnRvU3RyaW5nKCkpLmxlbmd0aC1vZS5sZW5ndGglODtlZT1vZS5zbGljZShzZSksb2U9b2Uu'@; put 'c2xpY2UoMCxzZSksWCs9dGhpcy5pY29udi5kZWNvZGUoYWUuZnJvbShvZSwiYmFzZTY0IiksInV0ZjE2LWJlIil9ZWxzZSBYKz10aGlzLmljb252LmRlY29kZShZLnNsaWNlKFUpLCJhc2NpaSIpO3JldHVybiB0aGlzLmluQmFzZTY0PXEsdGhpcy5iYXNlNjRBY2N1bT1lZSxYfSxNLnByb3Rv'@; put 'dHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgWT0iIjtyZXR1cm4gdGhpcy5pbkJhc2U2NCYmdGhpcy5iYXNlNjRBY2N1bS5sZW5ndGg+MCYmKFk9dGhpcy5pY29udi5kZWNvZGUoYWUuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCJiYXNlNjQiKSwidXRmMTYtYmUiKSksdGhpcy5pbkJhc2U2ND0hMSx0'@; put 'aGlzLmJhc2U2NEFjY3VtPSIiLFl9LEllLnV0ZjdpbWFwPUUsRS5wcm90b3R5cGUuZW5jb2Rlcj1qLEUucHJvdG90eXBlLmRlY29kZXI9VixFLnByb3RvdHlwZS5ib21Bd2FyZT0hMCxqLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihZKXtmb3IodmFyIFg9dGhpcy5pbkJhc2U2NCxVPXRoaXMu'@; put 'YmFzZTY0QWNjdW0scT10aGlzLmJhc2U2NEFjY3VtSWR4LGVlPWFlLmFsbG9jKDUqWS5sZW5ndGgrMTApLHRlPTAsb2U9MDtvZTxZLmxlbmd0aDtvZSsrKXt2YXIgc2U9WS5jaGFyQ29kZUF0KG9lKTszMjw9c2UmJnNlPD0xMjY/KFgmJihxPjAmJih0ZSs9ZWUud3JpdGUoVS5zbGljZSgwLHEp'@; put 'LnRvU3RyaW5nKCJiYXNlNjQiKS5yZXBsYWNlKC9cLy9nLCIsIikucmVwbGFjZSgvPSskLywiIiksdGUpLHE9MCksZWVbdGUrK109SSxYPSExKSxYfHwoZWVbdGUrK109c2Usc2U9PT1rJiYoZWVbdGUrK109SSkpKTooWHx8KGVlW3RlKytdPWssWD0hMCksWCYmKFVbcSsrXT1zZT4+OCxVW3Er'@; put 'K109MjU1JnNlLHE9PVUubGVuZ3RoJiYodGUrPWVlLndyaXRlKFUudG9TdHJpbmcoImJhc2U2NCIpLnJlcGxhY2UoL1wvL2csIiwiKSx0ZSkscT0wKSkpfXJldHVybiB0aGlzLmluQmFzZTY0PVgsdGhpcy5iYXNlNjRBY2N1bUlkeD1xLGVlLnNsaWNlKDAsdGUpfSxqLnByb3RvdHlwZS5lbmQ9'@; put 'ZnVuY3Rpb24oKXt2YXIgWT1hZS5hbGxvYygxMCksWD0wO3JldHVybiB0aGlzLmluQmFzZTY0JiYodGhpcy5iYXNlNjRBY2N1bUlkeD4wJiYoWCs9WS53cml0ZSh0aGlzLmJhc2U2NEFjY3VtLnNsaWNlKDAsdGhpcy5iYXNlNjRBY2N1bUlkeCkudG9TdHJpbmcoImJhc2U2NCIpLnJlcGxhY2Uo'@; put 'L1wvL2csIiwiKS5yZXBsYWNlKC89KyQvLCIiKSxYKSx0aGlzLmJhc2U2NEFjY3VtSWR4PTApLFlbWCsrXT1JLHRoaXMuaW5CYXNlNjQ9ITEpLFkuc2xpY2UoMCxYKX07dmFyIEI9Ui5zbGljZSgpO0JbIiwiLmNoYXJDb2RlQXQoMCldPSEwLFYucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKFkp'@; put 'e2Zvcih2YXIgWD0iIixVPTAscT10aGlzLmluQmFzZTY0LGVlPXRoaXMuYmFzZTY0QWNjdW0sdGU9MDt0ZTxZLmxlbmd0aDt0ZSsrKWlmKHEpe2lmKCFCW1lbdGVdXSl7aWYodGU9PVUmJllbdGVdPT1JKVgrPSImIjtlbHNle3ZhciBvZT1lZStZLnNsaWNlKFUsdGUpLnRvU3RyaW5nKCkucmVw'@; put 'bGFjZSgvLC9nLCIvIik7WCs9dGhpcy5pY29udi5kZWNvZGUoYWUuZnJvbShvZSwiYmFzZTY0IiksInV0ZjE2LWJlIil9WVt0ZV0hPUkmJnRlLS0sVT10ZSsxLHE9ITEsZWU9IiJ9fWVsc2UgWVt0ZV09PWsmJihYKz10aGlzLmljb252LmRlY29kZShZLnNsaWNlKFUsdGUpLCJhc2NpaSIpLFU9'@; put 'dGUrMSxxPSEwKTtpZihxKXt2YXIgc2U9KG9lPWVlK1kuc2xpY2UoVSkudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csIi8iKSkubGVuZ3RoLW9lLmxlbmd0aCU4O2VlPW9lLnNsaWNlKHNlKSxvZT1vZS5zbGljZSgwLHNlKSxYKz10aGlzLmljb252LmRlY29kZShhZS5mcm9tKG9lLCJiYXNlNjQi'@; put 'KSwidXRmMTYtYmUiKX1lbHNlIFgrPXRoaXMuaWNvbnYuZGVjb2RlKFkuc2xpY2UoVSksImFzY2lpIik7cmV0dXJuIHRoaXMuaW5CYXNlNjQ9cSx0aGlzLmJhc2U2NEFjY3VtPWVlLFh9LFYucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3ZhciBZPSIiO3JldHVybiB0aGlzLmluQmFzZTY0JiZ0'@; put 'aGlzLmJhc2U2NEFjY3VtLmxlbmd0aD4wJiYoWT10aGlzLmljb252LmRlY29kZShhZS5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sImJhc2U2NCIpLCJ1dGYxNi1iZSIpKSx0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiIsWX19LDYzMDE4OihhdCxJZSk9PnsidXNlIHN0cmljdCI7'@; put 'ZnVuY3Rpb24gYWUobSxsZSl7dGhpcy5lbmNvZGVyPW0sdGhpcy5hZGRCT009ITB9ZnVuY3Rpb24geChtLGxlKXt0aGlzLmRlY29kZXI9bSx0aGlzLnBhc3M9ITEsdGhpcy5vcHRpb25zPWxlfHx7fX1JZS5QcmVwZW5kQk9NPWFlLGFlLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihtKXtyZXR1'@; put 'cm4gdGhpcy5hZGRCT00mJihtPSJcdWZlZmYiK20sdGhpcy5hZGRCT009ITEpLHRoaXMuZW5jb2Rlci53cml0ZShtKX0sYWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuY29kZXIuZW5kKCl9LEllLlN0cmlwQk9NPXgseC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24o'@; put 'bSl7dmFyIGxlPXRoaXMuZGVjb2Rlci53cml0ZShtKTtyZXR1cm4gdGhpcy5wYXNzfHwhbGV8fCgiXHVmZWZmIj09PWxlWzBdJiYobGU9bGUuc2xpY2UoMSksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5zdHJpcEJPTSYmdGhpcy5vcHRpb25zLnN0cmlwQk9NKCkpLHRoaXMucGFz'@; put 'cz0hMCksbGV9LHgucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlY29kZXIuZW5kKCl9fSw1MzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMjQxNzkpLkJ1ZmZlcix4PUYoNjMwMTgpLG09YXQuZXhwb3J0czttLmVuY29kaW5ncz1udWxsLG0uZGVmYXVs'@; put 'dENoYXJVbmljb2RlPSJcdWZmZmQiLG0uZGVmYXVsdENoYXJTaW5nbGVCeXRlPSI/IixtLmVuY29kZT1mdW5jdGlvbihSLHosSyl7Uj0iIisoUnx8IiIpO3ZhciBJPW0uZ2V0RW5jb2Rlcih6LEspLGs9SS53cml0ZShSKSxFPUkuZW5kKCk7cmV0dXJuIEUmJkUubGVuZ3RoPjA/YWUuY29uY2F0'@; put 'KFtrLEVdKTprfSxtLmRlY29kZT1mdW5jdGlvbihSLHosSyl7InN0cmluZyI9PXR5cGVvZiBSJiYobS5za2lwRGVjb2RlV2FybmluZ3x8KGNvbnNvbGUuZXJyb3IoIkljb252LWxpdGUgd2FybmluZzogZGVjb2RlKCktaW5nIHN0cmluZ3MgaXMgZGVwcmVjYXRlZC4gUmVmZXIgdG8gaHR0cHM6'@; put 'Ly9naXRodWIuY29tL2FzaHR1Y2hraW4vaWNvbnYtbGl0ZS93aWtpL1VzZS1CdWZmZXJzLXdoZW4tZGVjb2RpbmciKSxtLnNraXBEZWNvZGVXYXJuaW5nPSEwKSxSPWFlLmZyb20oIiIrKFJ8fCIiKSwiYmluYXJ5IikpO3ZhciBJPW0uZ2V0RGVjb2Rlcih6LEspLGs9SS53cml0ZShSKSxFPUku'@; put 'ZW5kKCk7cmV0dXJuIEU/aytFOmt9LG0uZW5jb2RpbmdFeGlzdHM9ZnVuY3Rpb24oUil7dHJ5e3JldHVybiBtLmdldENvZGVjKFIpLCEwfWNhdGNoe3JldHVybiExfX0sbS50b0VuY29kaW5nPW0uZW5jb2RlLG0uZnJvbUVuY29kaW5nPW0uZGVjb2RlLG0uX2NvZGVjRGF0YUNhY2hlPXt9LG0u'@; put 'Z2V0Q29kZWM9ZnVuY3Rpb24oUil7bS5lbmNvZGluZ3N8fChtLmVuY29kaW5ncz1GKDQ0NjU3KSk7Zm9yKHZhciB6PW0uX2Nhbm9uaWNhbGl6ZUVuY29kaW5nKFIpLEs9e307Oyl7dmFyIEk9bS5fY29kZWNEYXRhQ2FjaGVbel07aWYoSSlyZXR1cm4gSTt2YXIgaz1tLmVuY29kaW5nc1t6XTtz'@; put 'd2l0Y2godHlwZW9mIGspe2Nhc2Uic3RyaW5nIjp6PWs7YnJlYWs7Y2FzZSJvYmplY3QiOmZvcih2YXIgRSBpbiBrKUtbRV09a1tFXTtLLmVuY29kaW5nTmFtZXx8KEsuZW5jb2RpbmdOYW1lPXopLHo9ay50eXBlO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOnJldHVybiBLLmVuY29kaW5nTmFtZXx8'@; put 'KEsuZW5jb2RpbmdOYW1lPXopLEk9bmV3IGsoSyxtKSxtLl9jb2RlY0RhdGFDYWNoZVtLLmVuY29kaW5nTmFtZV09SSxJO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJFbmNvZGluZyBub3QgcmVjb2duaXplZDogJyIrUisiJyAoc2VhcmNoZWQgYXM6ICciK3orIicpIil9fX0sbS5fY2Fub25p'@; put 'Y2FsaXplRW5jb2Rpbmc9ZnVuY3Rpb24oTyl7cmV0dXJuKCIiK08pLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvOlxkezR9JHxbXjAtOWEtel0vZywiIil9LG0uZ2V0RW5jb2Rlcj1mdW5jdGlvbihSLHope3ZhciBLPW0uZ2V0Q29kZWMoUiksST1uZXcgSy5lbmNvZGVyKHosSyk7cmV0dXJuIEsu'@; put 'Ym9tQXdhcmUmJnomJnouYWRkQk9NJiYoST1uZXcgeC5QcmVwZW5kQk9NKEkseikpLEl9LG0uZ2V0RGVjb2Rlcj1mdW5jdGlvbihSLHope3ZhciBLPW0uZ2V0Q29kZWMoUiksST1uZXcgSy5kZWNvZGVyKHosSyk7cmV0dXJuIEsuYm9tQXdhcmUmJiEoeiYmITE9PT16LnN0cmlwQk9NKSYmKEk9'@; put 'bmV3IHguU3RyaXBCT00oSSx6KSksSX07dmFyIGxlPXR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy52ZXJzaW9ucyYmcHJvY2Vzcy52ZXJzaW9ucy5ub2RlO2lmKGxlKXt2YXIgTT1sZS5zcGxpdCgiLiIpLm1hcChOdW1iZXIpOyhNWzBdPjB8fE1bMV0+PTEwKSYmRig2OTMzMSkobSksRigx'@; put 'OTUyNykobSl9fSwyMjYwMTooYXQsSWUpPT57SWUucmVhZD1mdW5jdGlvbihGLGFlLHgsbSxsZSl7dmFyIE0sTyxSPTgqbGUtbS0xLHo9KDE8PFIpLTEsSz16Pj4xLEk9LTcsaz14P2xlLTE6MCxFPXg/LTE6MSxqPUZbYWUra107Zm9yKGsrPUUsTT1qJigxPDwtSSktMSxqPj49LUksSSs9UjtJ'@; put 'PjA7TT0yNTYqTStGW2FlK2tdLGsrPUUsSS09OCk7Zm9yKE89TSYoMTw8LUkpLTEsTT4+PS1JLEkrPW07ST4wO089MjU2Kk8rRlthZStrXSxrKz1FLEktPTgpO2lmKDA9PT1NKU09MS1LO2Vsc2V7aWYoTT09PXopcmV0dXJuIE8/TmFOOjEvMCooaj8tMToxKTtPKz1NYXRoLnBvdygyLG0pLE0t'@; put 'PUt9cmV0dXJuKGo/LTE6MSkqTypNYXRoLnBvdygyLE0tbSl9LEllLndyaXRlPWZ1bmN0aW9uKEYsYWUseCxtLGxlLE0pe3ZhciBPLFIseixLPTgqTS1sZS0xLEk9KDE8PEspLTEsaz1JPj4xLEU9MjM9PT1sZT9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsaj1tPzA6TS0xLFY9'@; put 'bT8xOi0xLEI9YWU8MHx8MD09PWFlJiYxL2FlPDA/MTowO2ZvcihhZT1NYXRoLmFicyhhZSksaXNOYU4oYWUpfHxhZT09PTEvMD8oUj1pc05hTihhZSk/MTowLE89SSk6KE89TWF0aC5mbG9vcihNYXRoLmxvZyhhZSkvTWF0aC5MTjIpLGFlKih6PU1hdGgucG93KDIsLU8pKTwxJiYoTy0tLHoq'@; put 'PTIpLChhZSs9TytrPj0xP0UvejpFKk1hdGgucG93KDIsMS1rKSkqej49MiYmKE8rKyx6Lz0yKSxPK2s+PUk/KFI9MCxPPUkpOk8raz49MT8oUj0oYWUqei0xKSpNYXRoLnBvdygyLGxlKSxPKz1rKTooUj1hZSpNYXRoLnBvdygyLGstMSkqTWF0aC5wb3coMixsZSksTz0wKSk7bGU+PTg7Rlt4'@; put 'K2pdPTI1NSZSLGorPVYsUi89MjU2LGxlLT04KTtmb3IoTz1PPDxsZXxSLEsrPWxlO0s+MDtGW3gral09MjU1Jk8sais9VixPLz0yNTYsSy09OCk7Rlt4K2otVl18PTEyOCpCfX0sNjY2OTg6YXQ9PnthdC5leHBvcnRzPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2Z1bmN0aW9u'@; put 'KEYsYWUpe2FlJiYoRi5zdXBlcl89YWUsRi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpGLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX06ZnVuY3Rpb24oRixhZSl7aWYoYWUpe0Yuc3VwZXJfPWFl'@; put 'O3ZhciB4PWZ1bmN0aW9uKCl7fTt4LnByb3RvdHlwZT1hZS5wcm90b3R5cGUsRi5wcm90b3R5cGU9bmV3IHgsRi5wcm90b3R5cGUuY29uc3RydWN0b3I9Rn19fSw3NTgyOTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjY2OTgpLHg9Rig2MDM4MCksbT1GKDg0MykuQnVmZmVy'@; put 'LGxlPW5ldyBBcnJheSgxNik7ZnVuY3Rpb24gTSgpe3guY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OH1mdW5jdGlvbiBPKGssRSl7cmV0dXJuIGs8PEV8az4+PjMyLUV9ZnVuY3Rp'@; put 'b24gUihrLEUsaixWLEIsWSxYKXtyZXR1cm4gTyhrKyhFJmp8fkUmVikrQitZfDAsWCkrRXwwfWZ1bmN0aW9uIHooayxFLGosVixCLFksWCl7cmV0dXJuIE8oaysoRSZWfGomflYpK0IrWXwwLFgpK0V8MH1mdW5jdGlvbiBLKGssRSxqLFYsQixZLFgpe3JldHVybiBPKGsrKEVeal5WKStCK1l8'@; put 'MCxYKStFfDB9ZnVuY3Rpb24gSShrLEUsaixWLEIsWSxYKXtyZXR1cm4gTyhrKyhqXihFfH5WKSkrQitZfDAsWCkrRXwwfWFlKE0seCksTS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgaz1sZSxFPTA7RTwxNjsrK0Upa1tFXT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0'@; put 'KkUpO3ZhciBqPXRoaXMuX2EsVj10aGlzLl9iLEI9dGhpcy5fYyxZPXRoaXMuX2Q7aj1SKGosVixCLFksa1swXSwzNjE0MDkwMzYwLDcpLFk9UihZLGosVixCLGtbMV0sMzkwNTQwMjcxMCwxMiksQj1SKEIsWSxqLFYsa1syXSw2MDYxMDU4MTksMTcpLFY9UihWLEIsWSxqLGtbM10sMzI1MDQ0'@; put 'MTk2NiwyMiksaj1SKGosVixCLFksa1s0XSw0MTE4NTQ4Mzk5LDcpLFk9UihZLGosVixCLGtbNV0sMTIwMDA4MDQyNiwxMiksQj1SKEIsWSxqLFYsa1s2XSwyODIxNzM1OTU1LDE3KSxWPVIoVixCLFksaixrWzddLDQyNDkyNjEzMTMsMjIpLGo9UihqLFYsQixZLGtbOF0sMTc3MDAzNTQxNiw3'@; put 'KSxZPVIoWSxqLFYsQixrWzldLDIzMzY1NTI4NzksMTIpLEI9UihCLFksaixWLGtbMTBdLDQyOTQ5MjUyMzMsMTcpLFY9UihWLEIsWSxqLGtbMTFdLDIzMDQ1NjMxMzQsMjIpLGo9UihqLFYsQixZLGtbMTJdLDE4MDQ2MDM2ODIsNyksWT1SKFksaixWLEIsa1sxM10sNDI1NDYyNjE5NSwxMiks'@; put 'Qj1SKEIsWSxqLFYsa1sxNF0sMjc5Mjk2NTAwNiwxNyksaj16KGosVj1SKFYsQixZLGosa1sxNV0sMTIzNjUzNTMyOSwyMiksQixZLGtbMV0sNDEyOTE3MDc4Niw1KSxZPXooWSxqLFYsQixrWzZdLDMyMjU0NjU2NjQsOSksQj16KEIsWSxqLFYsa1sxMV0sNjQzNzE3NzEzLDE0KSxWPXooVixC'@; put 'LFksaixrWzBdLDM5MjEwNjk5OTQsMjApLGo9eihqLFYsQixZLGtbNV0sMzU5MzQwODYwNSw1KSxZPXooWSxqLFYsQixrWzEwXSwzODAxNjA4Myw5KSxCPXooQixZLGosVixrWzE1XSwzNjM0NDg4OTYxLDE0KSxWPXooVixCLFksaixrWzRdLDM4ODk0Mjk0NDgsMjApLGo9eihqLFYsQixZLGtb'@; put 'OV0sNTY4NDQ2NDM4LDUpLFk9eihZLGosVixCLGtbMTRdLDMyNzUxNjM2MDYsOSksQj16KEIsWSxqLFYsa1szXSw0MTA3NjAzMzM1LDE0KSxWPXooVixCLFksaixrWzhdLDExNjM1MzE1MDEsMjApLGo9eihqLFYsQixZLGtbMTNdLDI4NTAyODU4MjksNSksWT16KFksaixWLEIsa1syXSw0MjQz'@; put 'NTYzNTEyLDkpLEI9eihCLFksaixWLGtbN10sMTczNTMyODQ3MywxNCksaj1LKGosVj16KFYsQixZLGosa1sxMl0sMjM2ODM1OTU2MiwyMCksQixZLGtbNV0sNDI5NDU4ODczOCw0KSxZPUsoWSxqLFYsQixrWzhdLDIyNzIzOTI4MzMsMTEpLEI9SyhCLFksaixWLGtbMTFdLDE4MzkwMzA1NjIs'@; put 'MTYpLFY9SyhWLEIsWSxqLGtbMTRdLDQyNTk2NTc3NDAsMjMpLGo9SyhqLFYsQixZLGtbMV0sMjc2Mzk3NTIzNiw0KSxZPUsoWSxqLFYsQixrWzRdLDEyNzI4OTMzNTMsMTEpLEI9SyhCLFksaixWLGtbN10sNDEzOTQ2OTY2NCwxNiksVj1LKFYsQixZLGosa1sxMF0sMzIwMDIzNjY1NiwyMyks'@; put 'aj1LKGosVixCLFksa1sxM10sNjgxMjc5MTc0LDQpLFk9SyhZLGosVixCLGtbMF0sMzkzNjQzMDA3NCwxMSksQj1LKEIsWSxqLFYsa1szXSwzNTcyNDQ1MzE3LDE2KSxWPUsoVixCLFksaixrWzZdLDc2MDI5MTg5LDIzKSxqPUsoaixWLEIsWSxrWzldLDM2NTQ2MDI4MDksNCksWT1LKFksaixW'@; put 'LEIsa1sxMl0sMzg3MzE1MTQ2MSwxMSksQj1LKEIsWSxqLFYsa1sxNV0sNTMwNzQyNTIwLDE2KSxqPUkoaixWPUsoVixCLFksaixrWzJdLDMyOTk2Mjg2NDUsMjMpLEIsWSxrWzBdLDQwOTYzMzY0NTIsNiksWT1JKFksaixWLEIsa1s3XSwxMTI2ODkxNDE1LDEwKSxCPUkoQixZLGosVixrWzE0'@; put 'XSwyODc4NjEyMzkxLDE1KSxWPUkoVixCLFksaixrWzVdLDQyMzc1MzMyNDEsMjEpLGo9SShqLFYsQixZLGtbMTJdLDE3MDA0ODU1NzEsNiksWT1JKFksaixWLEIsa1szXSwyMzk5OTgwNjkwLDEwKSxCPUkoQixZLGosVixrWzEwXSw0MjkzOTE1NzczLDE1KSxWPUkoVixCLFksaixrWzFdLDIy'@; put 'NDAwNDQ0OTcsMjEpLGo9SShqLFYsQixZLGtbOF0sMTg3MzMxMzM1OSw2KSxZPUkoWSxqLFYsQixrWzE1XSw0MjY0MzU1NTUyLDEwKSxCPUkoQixZLGosVixrWzZdLDI3MzQ3Njg5MTYsMTUpLFY9SShWLEIsWSxqLGtbMTNdLDEzMDkxNTE2NDksMjEpLGo9SShqLFYsQixZLGtbNF0sNDE0OTQ0'@; put 'NDIyNiw2KSxZPUkoWSxqLFYsQixrWzExXSwzMTc0NzU2OTE3LDEwKSxCPUkoQixZLGosVixrWzJdLDcxODc4NzI1OSwxNSksVj1JKFYsQixZLGosa1s5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2EranwwLHRoaXMuX2I9dGhpcy5fYitWfDAsdGhpcy5fYz10aGlzLl9jK0J8MCx0'@; put 'aGlzLl9kPXRoaXMuX2QrWXwwfSxNLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUo'@; put 'KSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBk'@; put 'YXRlKCk7dmFyIGs9bS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIGsud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksay53cml0ZUludDMyTEUodGhpcy5fYiw0KSxrLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLGsud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLGt9LGF0LmV4cG9ydHM9TX0sNDg2MDY6'@; put 'KGF0LEllLEYpPT57dmFyIGFlPUYoNjAzMDMpLHg9Rig2MDA4Mik7ZnVuY3Rpb24gbShsZSl7dGhpcy5yYW5kPWxlfHxuZXcgeC5SYW5kfWF0LmV4cG9ydHM9bSxtLmNyZWF0ZT1mdW5jdGlvbihNKXtyZXR1cm4gbmV3IG0oTSl9LG0ucHJvdG90eXBlLl9yYW5kYmVsb3c9ZnVuY3Rpb24oTSl7'@; put 'dmFyIE89TS5iaXRMZW5ndGgoKSxSPU1hdGguY2VpbChPLzgpO2Rve3ZhciB6PW5ldyBhZSh0aGlzLnJhbmQuZ2VuZXJhdGUoUikpfXdoaWxlKHouY21wKE0pPj0wKTtyZXR1cm4gen0sbS5wcm90b3R5cGUuX3JhbmRyYW5nZT1mdW5jdGlvbihNLE8pe3ZhciBSPU8uc3ViKE0pO3JldHVybiBN'@; put 'LmFkZCh0aGlzLl9yYW5kYmVsb3coUikpfSxtLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKE0sTyxSKXt2YXIgej1NLmJpdExlbmd0aCgpLEs9YWUubW9udChNKSxJPW5ldyBhZSgxKS50b1JlZChLKTtPfHwoTz1NYXRoLm1heCgxLHovNDh8MCkpO2Zvcih2YXIgaz1NLnN1Ym4oMSksRT0wOyFr'@; put 'LnRlc3RuKEUpO0UrKyk7Zm9yKHZhciBqPU0uc2hybihFKSxWPWsudG9SZWQoSyk7Tz4wO08tLSl7dmFyIFk9dGhpcy5fcmFuZHJhbmdlKG5ldyBhZSgyKSxrKTtSJiZSKFkpO3ZhciBYPVkudG9SZWQoSykucmVkUG93KGopO2lmKDAhPT1YLmNtcChJKSYmMCE9PVguY21wKFYpKXtmb3IodmFy'@; put 'IFU9MTtVPEU7VSsrKXtpZigwPT09KFg9WC5yZWRTcXIoKSkuY21wKEkpKXJldHVybiExO2lmKDA9PT1YLmNtcChWKSlicmVha31pZihVPT09RSlyZXR1cm4hMX19cmV0dXJuITB9LG0ucHJvdG90eXBlLmdldERpdmlzb3I9ZnVuY3Rpb24oTSxPKXt2YXIgUj1NLmJpdExlbmd0aCgpLHo9YWUu'@; put 'bW9udChNKSxLPW5ldyBhZSgxKS50b1JlZCh6KTtPfHwoTz1NYXRoLm1heCgxLFIvNDh8MCkpO2Zvcih2YXIgST1NLnN1Ym4oMSksaz0wOyFJLnRlc3RuKGspO2srKyk7Zm9yKHZhciBFPU0uc2hybihrKSxqPUkudG9SZWQoeik7Tz4wO08tLSl7dmFyIFY9dGhpcy5fcmFuZHJhbmdlKG5ldyBh'@; put 'ZSgyKSxJKSxCPU0uZ2NkKFYpO2lmKDAhPT1CLmNtcG4oMSkpcmV0dXJuIEI7dmFyIFk9Vi50b1JlZCh6KS5yZWRQb3coRSk7aWYoMCE9PVkuY21wKEspJiYwIT09WS5jbXAoaikpe2Zvcih2YXIgWD0xO1g8aztYKyspe2lmKDA9PT0oWT1ZLnJlZFNxcigpKS5jbXAoSykpcmV0dXJuIFkuZnJv'@; put 'bVJlZCgpLnN1Ym4oMSkuZ2NkKE0pO2lmKDA9PT1ZLmNtcChqKSlicmVha31pZihYPT09aylyZXR1cm4oWT1ZLnJlZFNxcigpKS5mcm9tUmVkKCkuc3VibigxKS5nY2QoTSl9fXJldHVybiExfX0sNjAzMDM6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlLHgpeyJ1c2Ugc3RyaWN0Ijtm'@; put 'dW5jdGlvbiBtKEcsYil7aWYoIUcpdGhyb3cgbmV3IEVycm9yKGJ8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gbGUoRyxiKXtHLnN1cGVyXz1iO3ZhciBEPWZ1bmN0aW9uKCl7fTtELnByb3RvdHlwZT1iLnByb3RvdHlwZSxHLnByb3RvdHlwZT1uZXcgRCxHLnByb3RvdHlwZS5jb25z'@; put 'dHJ1Y3Rvcj1HfWZ1bmN0aW9uIE0oRyxiLEQpe2lmKE0uaXNCTihHKSlyZXR1cm4gRzt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09RyYmKCgibGUiPT09Ynx8ImJlIj09PWIpJiYoRD1iLGI9MTApLHRoaXMuX2luaXQo'@; put 'R3x8MCxifHwxMCxEfHwiYmUiKSl9dmFyIE87Im9iamVjdCI9PXR5cGVvZiBhZT9hZS5leHBvcnRzPU06eC5CTj1NLE0uQk49TSxNLndvcmRTaXplPTI2O3RyeXtPPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2Ygd2luZG93LkJ1ZmZlcjwidSI/d2luZG93LkJ1ZmZlcjpGKDU2NjE5KS5CdWZm'@; put 'ZXJ9Y2F0Y2h7fWZ1bmN0aW9uIFIoRyxiKXt2YXIgRD1HLmNoYXJDb2RlQXQoYik7cmV0dXJuIEQ+PTY1JiZEPD03MD9ELTU1OkQ+PTk3JiZEPD0xMDI/RC04NzpELTQ4JjE1fWZ1bmN0aW9uIHooRyxiLEQpe3ZhciBIPVIoRyxEKTtyZXR1cm4gRC0xPj1iJiYoSHw9UihHLEQtMSk8PDQpLEh9'@; put 'ZnVuY3Rpb24gSyhHLGIsRCxIKXtmb3IodmFyIE49MCxnPU1hdGgubWluKEcubGVuZ3RoLEQpLEM9YjtDPGc7QysrKXt2YXIgUz1HLmNoYXJDb2RlQXQoQyktNDg7Tio9SCxOKz1TPj00OT9TLTQ5KzEwOlM+PTE3P1MtMTcrMTA6U31yZXR1cm4gTn1NLmlzQk49ZnVuY3Rpb24oYil7cmV0dXJu'@; put 'IGIgaW5zdGFuY2VvZiBNfHxudWxsIT09YiYmIm9iamVjdCI9PXR5cGVvZiBiJiZiLmNvbnN0cnVjdG9yLndvcmRTaXplPT09TS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShiLndvcmRzKX0sTS5tYXg9ZnVuY3Rpb24oYixEKXtyZXR1cm4gYi5jbXAoRCk+MD9iOkR9LE0ubWluPWZ1bmN0aW9u'@; put 'KGIsRCl7cmV0dXJuIGIuY21wKEQpPDA/YjpEfSxNLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihiLEQsSCl7aWYoIm51bWJlciI9PXR5cGVvZiBiKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKGIsRCxIKTtpZigib2JqZWN0Ij09dHlwZW9mIGIpcmV0dXJuIHRoaXMuX2luaXRBcnJheShiLEQs'@; put 'SCk7ImhleCI9PT1EJiYoRD0xNiksbShEPT09KDB8RCkmJkQ+PTImJkQ8PTM2KTt2YXIgTj0wOyItIj09PShiPWIudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoTisrLHRoaXMubmVnYXRpdmU9MSksTjxiLmxlbmd0aCYmKDE2PT09RD90aGlzLl9wYXJzZUhleChiLE4sSCk6'@; put 'KHRoaXMuX3BhcnNlQmFzZShiLEQsTiksImxlIj09PUgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxELEgpKSl9LE0ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKGIsRCxIKXtiPDAmJih0aGlzLm5lZ2F0aXZlPTEsYj0tYiksYjw2NzEwODg2ND8odGhpcy53b3Jkcz1b'@; put 'NjcxMDg4NjMmYl0sdGhpcy5sZW5ndGg9MSk6Yjw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZiLGIvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihtKGI8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmYixiLzY3MTA4ODY0JjY3'@; put 'MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1IJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksRCxIKX0sTS5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihiLEQsSCl7aWYobSgibnVtYmVyIj09dHlwZW9mIGIubGVuZ3RoKSxiLmxlbmd0aDw9MClyZXR1cm4gdGhp'@; put 'cy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChiLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBOPTA7Tjx0aGlzLmxlbmd0aDtOKyspdGhpcy53b3Jkc1tOXT0wO3ZhciBnLEMsUz0wO2lmKCJiZSI9'@; put 'PT1IKWZvcihOPWIubGVuZ3RoLTEsZz0wO04+PTA7Ti09Myl0aGlzLndvcmRzW2ddfD0oQz1iW05dfGJbTi0xXTw8OHxiW04tMl08PDE2KTw8UyY2NzEwODg2Myx0aGlzLndvcmRzW2crMV09Qz4+PjI2LVMmNjcxMDg4NjMsKFMrPTI0KT49MjYmJihTLT0yNixnKyspO2Vsc2UgaWYoImxlIj09'@; put 'PUgpZm9yKE49MCxnPTA7TjxiLmxlbmd0aDtOKz0zKXRoaXMud29yZHNbZ118PShDPWJbTl18YltOKzFdPDw4fGJbTisyXTw8MTYpPDxTJjY3MTA4ODYzLHRoaXMud29yZHNbZysxXT1DPj4+MjYtUyY2NzEwODg2MywoUys9MjQpPj0yNiYmKFMtPTI2LGcrKyk7cmV0dXJuIHRoaXMuc3RyaXAo'@; put 'KX0sTS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKGIsRCxIKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKGIubGVuZ3RoLUQpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIE49MDtOPHRoaXMubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPTA7dmFyIFMs'@; put 'Zz0wLEM9MDtpZigiYmUiPT09SClmb3IoTj1iLmxlbmd0aC0xO04+PUQ7Ti09MilTPXooYixELE4pPDxnLHRoaXMud29yZHNbQ118PTY3MTA4ODYzJlMsZz49MTg/KGctPTE4LHRoaXMud29yZHNbQys9MV18PVM+Pj4yNik6Zys9ODtlbHNlIGZvcihOPShiLmxlbmd0aC1EKSUyPT0wP0QrMTpE'@; put 'O048Yi5sZW5ndGg7Tis9MilTPXooYixELE4pPDxnLHRoaXMud29yZHNbQ118PTY3MTA4ODYzJlMsZz49MTg/KGctPTE4LHRoaXMud29yZHNbQys9MV18PVM+Pj4yNik6Zys9ODt0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oYixELEgpe3RoaXMud29yZHM9'@; put 'WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBOPTAsZz0xO2c8PTY3MTA4ODYzO2cqPUQpTisrO04tLSxnPWcvRHwwO2Zvcih2YXIgQz1iLmxlbmd0aC1ILFM9QyVOLHY9TWF0aC5taW4oQyxDLVMpK0gscD0wLHc9SDt3PHY7dys9TilwPUsoYix3LHcrTixEKSx0aGlzLmltdWxuKGcpLHRoaXMu'@; put 'd29yZHNbMF0rcDw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1wOnRoaXMuX2lhZGRuKHApO2lmKDAhPT1TKXt2YXIgSj0xO2ZvcihwPUsoYix3LGIubGVuZ3RoLEQpLHc9MDt3PFM7dysrKUoqPUQ7dGhpcy5pbXVsbihKKSx0aGlzLndvcmRzWzBdK3A8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9'@; put 'cDp0aGlzLl9pYWRkbihwKX10aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oYil7Yi53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgRD0wO0Q8dGhpcy5sZW5ndGg7RCsrKWIud29yZHNbRF09dGhpcy53b3Jkc1tEXTtiLmxlbmd0aD10aGlzLmxlbmd0'@; put 'aCxiLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsYi5yZWQ9dGhpcy5yZWR9LE0ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IE0obnVsbCk7cmV0dXJuIHRoaXMuY29weShiKSxifSxNLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKGIpe2Zvcig7dGhpcy5sZW5ndGg8Yjsp'@; put 'dGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxNLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LE0ucHJv'@; put 'dG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxNLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlz'@; put 'LnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBJPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAw'@; put 'MDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGs9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1'@; put 'LDUsNSw1LDUsNSw1LDUsNV0sRT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0'@; put 'MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlv'@; put 'biBWKEcsYixEKXtELm5lZ2F0aXZlPWIubmVnYXRpdmVeRy5uZWdhdGl2ZTt2YXIgSD1HLmxlbmd0aCtiLmxlbmd0aHwwO0QubGVuZ3RoPUgsSD1ILTF8MDt2YXIgTj0wfEcud29yZHNbMF0sZz0wfGIud29yZHNbMF0sQz1OKmcsdj1DLzY3MTA4ODY0fDA7RC53b3Jkc1swXT02NzEwODg2MyZD'@; put 'O2Zvcih2YXIgcD0xO3A8SDtwKyspe2Zvcih2YXIgdz12Pj4+MjYsSj02NzEwODg2MyZ2LG5lPU1hdGgubWluKHAsYi5sZW5ndGgtMSksZGU9TWF0aC5tYXgoMCxwLUcubGVuZ3RoKzEpO2RlPD1uZTtkZSsrKXcrPShDPShOPTB8Ry53b3Jkc1twLWRlfDBdKSooZz0wfGIud29yZHNbZGVdKStK'@; put 'KS82NzEwODg2NHwwLEo9NjcxMDg4NjMmQztELndvcmRzW3BdPTB8Six2PTB8d31yZXR1cm4gMCE9PXY/RC53b3Jkc1twXT0wfHY6RC5sZW5ndGgtLSxELnN0cmlwKCl9TS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oYixEKXt2YXIgSDtpZihEPTB8RHx8MSwxNj09PShiPWJ8fDEwKXx8'@; put 'ImhleCI9PT1iKXtIPSIiO2Zvcih2YXIgTj0wLGc9MCxDPTA7Qzx0aGlzLmxlbmd0aDtDKyspe3ZhciBTPXRoaXMud29yZHNbQ10sdj0oMTY3NzcyMTUmKFM8PE58ZykpLnRvU3RyaW5nKDE2KTtIPTAhPShnPVM+Pj4yNC1OJjE2Nzc3MjE1KXx8QyE9PXRoaXMubGVuZ3RoLTE/SVs2LXYubGVu'@; put 'Z3RoXSt2K0g6ditILChOKz0yKT49MjYmJihOLT0yNixDLS0pfWZvcigwIT09ZyYmKEg9Zy50b1N0cmluZygxNikrSCk7SC5sZW5ndGglRCE9MDspSD0iMCIrSDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihIPSItIitIKSxIfWlmKGI9PT0oMHxiKSYmYj49MiYmYjw9MzYpe3ZhciBwPWtb'@; put 'Yl0sdz1FW2JdO0g9IiI7dmFyIEo9dGhpcy5jbG9uZSgpO2ZvcihKLm5lZ2F0aXZlPTA7IUouaXNaZXJvKCk7KXt2YXIgbmU9Si5tb2RuKHcpLnRvU3RyaW5nKGIpO0g9KEo9Si5pZGl2bih3KSkuaXNaZXJvKCk/bmUrSDpJW3AtbmUubGVuZ3RoXStuZStIfWZvcih0aGlzLmlzWmVybygpJiYo'@; put 'SD0iMCIrSCk7SC5sZW5ndGglRCE9MDspSD0iMCIrSDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihIPSItIitIKSxIfW0oITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sTS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgYj10aGlzLndvcmRzWzBdO3Jl'@; put 'dHVybiAyPT09dGhpcy5sZW5ndGg/Yis9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP2IrPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZtKCExLCJOdW1iZXIgY2FuIG9ubHkgc2Fm'@; put 'ZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tYjpifSxNLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LE0ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIG0odHlwZW9mIE88InUiKSx0'@; put 'aGlzLnRvQXJyYXlMaWtlKE8sYixEKX0sTS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihiLEQpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGIsRCl9LE0ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGIsRCxIKXt2YXIgTj10aGlzLmJ5dGVMZW5ndGgoKSxnPUh8fE1h'@; put 'dGgubWF4KDEsTik7bShOPD1nLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksbShnPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgdixwLEM9ImxlIj09PUQsUz1uZXcgYihnKSx3PXRoaXMuY2xvbmUoKTtpZihDKXtmb3Io'@; put 'cD0wOyF3LmlzWmVybygpO3ArKyl2PXcuYW5kbG4oMjU1KSx3Lml1c2hybig4KSxTW3BdPXY7Zm9yKDtwPGc7cCsrKVNbcF09MH1lbHNle2ZvcihwPTA7cDxnLU47cCsrKVNbcF09MDtmb3IocD0wOyF3LmlzWmVybygpO3ArKyl2PXcuYW5kbG4oMjU1KSx3Lml1c2hybig4KSxTW2ctcC0xXT12'@; put 'fXJldHVybiBTfSxNLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oYil7cmV0dXJuIDMyLU1hdGguY2x6MzIoYil9OmZ1bmN0aW9uKGIpe3ZhciBEPWIsSD0wO3JldHVybiBEPj00MDk2JiYoSCs9MTMsRD4+Pj0xMyksRD49NjQmJihIKz03LEQ+Pj49NyksRD49OCYm'@; put 'KEgrPTQsRD4+Pj00KSxEPj0yJiYoSCs9MixEPj4+PTIpLEgrRH0sTS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGIpe2lmKDA9PT1iKXJldHVybiAyNjt2YXIgRD1iLEg9MDtyZXR1cm4gODE5MSZEfHwoSCs9MTMsRD4+Pj0xMyksMTI3JkR8fChIKz03LEQ+Pj49NyksMTUmRHx8KEgr'@; put 'PTQsRD4+Pj00KSwzJkR8fChIKz0yLEQ+Pj49MiksMSZEfHxIKyssSH0sTS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIEQ9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrRH0sTS5wcm90b3R5cGUu'@; put 'emVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgYj0wLEQ9MDtEPHRoaXMubGVuZ3RoO0QrKyl7dmFyIEg9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tEXSk7aWYoYis9SCwyNiE9PUgpYnJlYWt9cmV0dXJuIGJ9LE0ucHJvdG90eXBlLmJ5dGVM'@; put 'ZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE0ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihiKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihiKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE0ucHJvdG90eXBl'@; put 'LmZyb21Ud29zPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnRlc3RuKGItMSk/dGhpcy5ub3RuKGIpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE0ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxNLnByb3RvdHlwZS5uZWc9ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihiKXtmb3IoO3RoaXMubGVuZ3RoPGIubGVuZ3RoOyl0'@; put 'aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBEPTA7RDxiLmxlbmd0aDtEKyspdGhpcy53b3Jkc1tEXT10aGlzLndvcmRzW0RdfGIud29yZHNbRF07cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKGIpe3JldHVybiBtKDA9PSh0aGlzLm5lZ2F0'@; put 'aXZlfGIubmVnYXRpdmUpKSx0aGlzLml1b3IoYil9LE0ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKGIpOmIuY2xvbmUoKS5pb3IodGhpcyl9LE0ucHJvdG90eXBlLnVvcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhp'@; put 'cy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoYik6Yi5jbG9uZSgpLml1b3IodGhpcyl9LE0ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKGIpe3ZhciBEO0Q9dGhpcy5sZW5ndGg+Yi5sZW5ndGg/Yjp0aGlzO2Zvcih2YXIgSD0wO0g8RC5sZW5ndGg7SCsrKXRoaXMud29yZHNb'@; put 'SF09dGhpcy53b3Jkc1tIXSZiLndvcmRzW0hdO3JldHVybiB0aGlzLmxlbmd0aD1ELmxlbmd0aCx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0oMD09KHRoaXMubmVnYXRpdmV8Yi5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoYil9LE0ucHJvdG90eXBl'@; put 'LmFuZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoYik6Yi5jbG9uZSgpLmlhbmQodGhpcyl9LE0ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChi'@; put 'KTpiLmNsb25lKCkuaXVhbmQodGhpcyl9LE0ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKGIpe3ZhciBELEg7dGhpcy5sZW5ndGg+Yi5sZW5ndGg/KEQ9dGhpcyxIPWIpOihEPWIsSD10aGlzKTtmb3IodmFyIE49MDtOPEgubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPUQud29yZHNbTl1eSC53'@; put 'b3Jkc1tOXTtpZih0aGlzIT09RClmb3IoO048RC5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09RC53b3Jkc1tOXTtyZXR1cm4gdGhpcy5sZW5ndGg9RC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKGIpe3JldHVybiBtKDA9PSh0aGlzLm5lZ2F0aXZlfGIu'@; put 'bmVnYXRpdmUpKSx0aGlzLml1eG9yKGIpfSxNLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKGIpOmIuY2xvbmUoKS5peG9yKHRoaXMpfSxNLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlz'@; put 'Lmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoYik6Yi5jbG9uZSgpLml1eG9yKHRoaXMpfSxNLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIEQ9MHxNYXRoLmNlaWwoYi8yNiksSD1iJTI2O3RoaXMuX2V4cGFuZChE'@; put 'KSxIPjAmJkQtLTtmb3IodmFyIE49MDtOPEQ7TisrKXRoaXMud29yZHNbTl09NjcxMDg4NjMmfnRoaXMud29yZHNbTl07cmV0dXJuIEg+MCYmKHRoaXMud29yZHNbTl09fnRoaXMud29yZHNbTl0mNjcxMDg4NjM+PjI2LUgpLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUubm90bj1mdW5jdGlv'@; put 'bihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKGIpfSxNLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGIsRCl7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApO3ZhciBIPWIvMjZ8MCxOPWIlMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChIKzEpLHRoaXMud29yZHNbSF09RD90aGlzLndvcmRz'@; put 'W0hdfDE8PE46dGhpcy53b3Jkc1tIXSZ+KDE8PE4pLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihiKXt2YXIgRCxILE47aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1iLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsRD10aGlzLmlzdWIoYiksdGhpcy5u'@; put 'ZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Yi5uZWdhdGl2ZSlyZXR1cm4gYi5uZWdhdGl2ZT0wLEQ9dGhpcy5pc3ViKGIpLGIubmVnYXRpdmU9MSxELl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPmIubGVuZ3RoPyhIPXRoaXMsTj1iKTooSD1i'@; put 'LE49dGhpcyk7Zm9yKHZhciBnPTAsQz0wO0M8Ti5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmKEQ9KDB8SC53b3Jkc1tDXSkrKDB8Ti53b3Jkc1tDXSkrZyksZz1EPj4+MjY7Zm9yKDswIT09ZyYmQzxILmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT02NzEwODg2MyYoRD0oMHxI'@; put 'LndvcmRzW0NdKStnKSxnPUQ+Pj4yNjtpZih0aGlzLmxlbmd0aD1ILmxlbmd0aCwwIT09Zyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1nLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihIIT09dGhpcylmb3IoO0M8SC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109SC53b3Jkc1tDXTtyZXR1cm4gdGhp'@; put 'c30sTS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGIpe3ZhciBEO3JldHVybiAwIT09Yi5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KGIubmVnYXRpdmU9MCxEPXRoaXMuc3ViKGIpLGIubmVnYXRpdmVePTEsRCk6MD09PWIubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5l'@; put 'Z2F0aXZlPTAsRD1iLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsRCk6dGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoYik6Yi5jbG9uZSgpLmlhZGQodGhpcyl9LE0ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oYil7aWYoMCE9PWIubmVnYXRpdmUpe2IubmVnYXRpdmU9'@; put 'MDt2YXIgRD10aGlzLmlhZGQoYik7cmV0dXJuIGIubmVnYXRpdmU9MSxELl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKGIpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBOLGcsSD10aGlzLmNtcChi'@; put 'KTtpZigwPT09SClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7SD4wPyhOPXRoaXMsZz1iKTooTj1iLGc9dGhpcyk7Zm9yKHZhciBDPTAsUz0wO1M8Zy5sZW5ndGg7UysrKUM9KEQ9KDB8Ti53b3Jkc1tTXSktKDB8Zy53b3Jkc1tTXSkr'@; put 'Qyk+PjI2LHRoaXMud29yZHNbU109NjcxMDg4NjMmRDtmb3IoOzAhPT1DJiZTPE4ubGVuZ3RoO1MrKylDPShEPSgwfE4ud29yZHNbU10pK0MpPj4yNix0aGlzLndvcmRzW1NdPTY3MTA4ODYzJkQ7aWYoMD09PUMmJlM8Ti5sZW5ndGgmJk4hPT10aGlzKWZvcig7UzxOLmxlbmd0aDtTKyspdGhp'@; put 'cy53b3Jkc1tTXT1OLndvcmRzW1NdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxTKSxOIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGIpfTt2'@; put 'YXIgQj1mdW5jdGlvbihiLEQsSCl7dmFyIHYscCx3LE49Yi53b3JkcyxnPUQud29yZHMsQz1ILndvcmRzLFM9MCxKPTB8TlswXSxuZT04MTkxJkosZGU9Sj4+PjEzLGZlPTB8TlsxXSx4ZT04MTkxJmZlLExlPWZlPj4+MTMsRmU9MHxOWzJdLE9lPTgxOTEmRmUsamU9RmU+Pj4xMyxXZT0wfE5b'@; put 'M10sS2U9ODE5MSZXZSxZZT1XZT4+PjEzLFFlPTB8Tls0XSxsdD04MTkxJlFlLFBlPVFlPj4+MTMsYmU9MHxOWzVdLEFlPTgxOTEmYmUsVGU9YmU+Pj4xMyxxZT0wfE5bNl0sWGU9ODE5MSZxZSxVZT1xZT4+PjEzLGh0PTB8Tls3XSxNZT04MTkxJmh0LERlPWh0Pj4+MTMsemU9MHxOWzhdLG90'@; put 'PTgxOTEmemUsdXQ9emU+Pj4xMyxNdD0wfE5bOV0sSHQ9ODE5MSZNdCxQdD1NdD4+PjEzLG9uPTB8Z1swXSxDbj04MTkxJm9uLFV0PW9uPj4+MTMsYm49MHxnWzFdLFduPTgxOTEmYm4sZW49Ym4+Pj4xMywkbj0wfGdbMl0sSG49ODE5MSYkbixmdD0kbj4+PjEzLGZuPTB8Z1szXSxobj04MTkx'@; put 'JmZuLHd0PWZuPj4+MTMsWHQ9MHxnWzRdLF90PTgxOTEmWHQsTnQ9WHQ+Pj4xMyxtbj0wfGdbNV0scnQ9ODE5MSZtbixJdD1tbj4+PjEzLFF0PTB8Z1s2XSxEdD04MTkxJlF0LHB0PVF0Pj4+MTMsWXQ9MHxnWzddLEluPTgxOTEmWXQsenQ9WXQ+Pj4xMyx5bj0wfGdbOF0seG49ODE5MSZ5bixz'@; put 'bj15bj4+PjEzLEJuPTB8Z1s5XSxSbj04MTkxJkJuLCR0PUJuPj4+MTM7SC5uZWdhdGl2ZT1iLm5lZ2F0aXZlXkQubmVnYXRpdmUsSC5sZW5ndGg9MTk7dmFyIEZuPShTKyh2PU1hdGguaW11bChuZSxDbikpfDApKygoODE5MSYocD0ocD1NYXRoLmltdWwobmUsVXQpKStNYXRoLmltdWwoZGUs'@; put 'Q24pfDApKTw8MTMpfDA7Uz0oKHc9TWF0aC5pbXVsKGRlLFV0KSkrKHA+Pj4xMyl8MCkrKEZuPj4+MjYpfDAsRm4mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKHhlLENuKSxwPShwPU1hdGguaW11bCh4ZSxVdCkpK01hdGguaW11bChMZSxDbil8MCx3PU1hdGguaW11bChMZSxVdCk7dmFyIG5pPShT'@; put 'Kyh2PXYrTWF0aC5pbXVsKG5lLFduKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsZW4pfDApK01hdGguaW11bChkZSxXbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxlbil8MCkrKHA+Pj4xMyl8MCkrKG5pPj4+MjYpfDAsbmkmPTY3MTA4ODYzLHY9TWF0aC5p'@; put 'bXVsKE9lLENuKSxwPShwPU1hdGguaW11bChPZSxVdCkpK01hdGguaW11bChqZSxDbil8MCx3PU1hdGguaW11bChqZSxVdCksdj12K01hdGguaW11bCh4ZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKHhlLGVuKXwwKStNYXRoLmltdWwoTGUsV24pfDAsdz13K01hdGguaW11bChMZSxlbil8MDt2'@; put 'YXIgbG49KFMrKHY9ditNYXRoLmltdWwobmUsSG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxmdCl8MCkrTWF0aC5pbXVsKGRlLEhuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLGZ0KXwwKSsocD4+PjEzKXwwKSsobG4+Pj4yNil8MCxsbiY9NjcxMDg4NjMs'@; put 'dj1NYXRoLmltdWwoS2UsQ24pLHA9KHA9TWF0aC5pbXVsKEtlLFV0KSkrTWF0aC5pbXVsKFllLENuKXwwLHc9TWF0aC5pbXVsKFllLFV0KSx2PXYrTWF0aC5pbXVsKE9lLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoT2UsZW4pfDApK01hdGguaW11bChqZSxXbil8MCx3PXcrTWF0aC5pbXVsKGpl'@; put 'LGVuKXwwLHY9ditNYXRoLmltdWwoeGUsSG4pfDAscD0ocD1wK01hdGguaW11bCh4ZSxmdCl8MCkrTWF0aC5pbXVsKExlLEhuKXwwLHc9dytNYXRoLmltdWwoTGUsZnQpfDA7dmFyIGpuPShTKyh2PXYrTWF0aC5pbXVsKG5lLGhuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUs'@; put 'd3QpfDApK01hdGguaW11bChkZSxobil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSx3dCl8MCkrKHA+Pj4xMyl8MCkrKGpuPj4+MjYpfDAsam4mPTY3MTA4ODYzLHY9TWF0aC5pbXVsKGx0LENuKSxwPShwPU1hdGguaW11bChsdCxVdCkpK01hdGguaW11bChQZSxDbil8MCx3PU1h'@; put 'dGguaW11bChQZSxVdCksdj12K01hdGguaW11bChLZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKEtlLGVuKXwwKStNYXRoLmltdWwoWWUsV24pfDAsdz13K01hdGguaW11bChZZSxlbil8MCx2PXYrTWF0aC5pbXVsKE9lLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoT2UsZnQpfDApK01hdGguaW11'@; put 'bChqZSxIbil8MCx3PXcrTWF0aC5pbXVsKGplLGZ0KXwwLHY9ditNYXRoLmltdWwoeGUsaG4pfDAscD0ocD1wK01hdGguaW11bCh4ZSx3dCl8MCkrTWF0aC5pbXVsKExlLGhuKXwwLHc9dytNYXRoLmltdWwoTGUsd3QpfDA7dmFyIHFyPShTKyh2PXYrTWF0aC5pbXVsKG5lLF90KXwwKXwwKSso'@; put 'KDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsTnQpfDApK01hdGguaW11bChkZSxfdCl8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxOdCl8MCkrKHA+Pj4xMyl8MCkrKHFyPj4+MjYpfDAscXImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEFlLENuKSxwPShwPU1hdGguaW11bChBZSxV'@; put 'dCkpK01hdGguaW11bChUZSxDbil8MCx3PU1hdGguaW11bChUZSxVdCksdj12K01hdGguaW11bChsdCxXbil8MCxwPShwPXArTWF0aC5pbXVsKGx0LGVuKXwwKStNYXRoLmltdWwoUGUsV24pfDAsdz13K01hdGguaW11bChQZSxlbil8MCx2PXYrTWF0aC5pbXVsKEtlLEhuKXwwLHA9KHA9cCtN'@; put 'YXRoLmltdWwoS2UsZnQpfDApK01hdGguaW11bChZZSxIbil8MCx3PXcrTWF0aC5pbXVsKFllLGZ0KXwwLHY9ditNYXRoLmltdWwoT2UsaG4pfDAscD0ocD1wK01hdGguaW11bChPZSx3dCl8MCkrTWF0aC5pbXVsKGplLGhuKXwwLHc9dytNYXRoLmltdWwoamUsd3QpfDAsdj12K01hdGguaW11'@; put 'bCh4ZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKHhlLE50KXwwKStNYXRoLmltdWwoTGUsX3QpfDAsdz13K01hdGguaW11bChMZSxOdCl8MDt2YXIgZ2k9KFMrKHY9ditNYXRoLmltdWwobmUscnQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxJdCl8MCkrTWF0aC5pbXVsKGRl'@; put 'LHJ0KXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLEl0KXwwKSsocD4+PjEzKXwwKSsoZ2k+Pj4yNil8MCxnaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoWGUsQ24pLHA9KHA9TWF0aC5pbXVsKFhlLFV0KSkrTWF0aC5pbXVsKFVlLENuKXwwLHc9TWF0aC5pbXVsKFVlLFV0KSx2PXYr'@; put 'TWF0aC5pbXVsKEFlLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsZW4pfDApK01hdGguaW11bChUZSxXbil8MCx3PXcrTWF0aC5pbXVsKFRlLGVuKXwwLHY9ditNYXRoLmltdWwobHQsSG4pfDAscD0ocD1wK01hdGguaW11bChsdCxmdCl8MCkrTWF0aC5pbXVsKFBlLEhuKXwwLHc9dytNYXRo'@; put 'LmltdWwoUGUsZnQpfDAsdj12K01hdGguaW11bChLZSxobil8MCxwPShwPXArTWF0aC5pbXVsKEtlLHd0KXwwKStNYXRoLmltdWwoWWUsaG4pfDAsdz13K01hdGguaW11bChZZSx3dCl8MCx2PXYrTWF0aC5pbXVsKE9lLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoT2UsTnQpfDApK01hdGguaW11'@; put 'bChqZSxfdCl8MCx3PXcrTWF0aC5pbXVsKGplLE50KXwwLHY9ditNYXRoLmltdWwoeGUscnQpfDAscD0ocD1wK01hdGguaW11bCh4ZSxJdCl8MCkrTWF0aC5pbXVsKExlLHJ0KXwwLHc9dytNYXRoLmltdWwoTGUsSXQpfDA7dmFyIHhyPShTKyh2PXYrTWF0aC5pbXVsKG5lLER0KXwwKXwwKSso'@; put 'KDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUscHQpfDApK01hdGguaW11bChkZSxEdCl8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSxwdCl8MCkrKHA+Pj4xMyl8MCkrKHhyPj4+MjYpfDAseHImPTY3MTA4ODYzLHY9TWF0aC5pbXVsKE1lLENuKSxwPShwPU1hdGguaW11bChNZSxV'@; put 'dCkpK01hdGguaW11bChEZSxDbil8MCx3PU1hdGguaW11bChEZSxVdCksdj12K01hdGguaW11bChYZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKFhlLGVuKXwwKStNYXRoLmltdWwoVWUsV24pfDAsdz13K01hdGguaW11bChVZSxlbil8MCx2PXYrTWF0aC5pbXVsKEFlLEhuKXwwLHA9KHA9cCtN'@; put 'YXRoLmltdWwoQWUsZnQpfDApK01hdGguaW11bChUZSxIbil8MCx3PXcrTWF0aC5pbXVsKFRlLGZ0KXwwLHY9ditNYXRoLmltdWwobHQsaG4pfDAscD0ocD1wK01hdGguaW11bChsdCx3dCl8MCkrTWF0aC5pbXVsKFBlLGhuKXwwLHc9dytNYXRoLmltdWwoUGUsd3QpfDAsdj12K01hdGguaW11'@; put 'bChLZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKEtlLE50KXwwKStNYXRoLmltdWwoWWUsX3QpfDAsdz13K01hdGguaW11bChZZSxOdCl8MCx2PXYrTWF0aC5pbXVsKE9lLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoT2UsSXQpfDApK01hdGguaW11bChqZSxydCl8MCx3PXcrTWF0aC5pbXVsKGpl'@; put 'LEl0KXwwLHY9ditNYXRoLmltdWwoeGUsRHQpfDAscD0ocD1wK01hdGguaW11bCh4ZSxwdCl8MCkrTWF0aC5pbXVsKExlLER0KXwwLHc9dytNYXRoLmltdWwoTGUscHQpfDA7dmFyIFVpPShTKyh2PXYrTWF0aC5pbXVsKG5lLEluKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUs'@; put 'enQpfDApK01hdGguaW11bChkZSxJbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSx6dCl8MCkrKHA+Pj4xMyl8MCkrKFVpPj4+MjYpfDAsVWkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKG90LENuKSxwPShwPU1hdGguaW11bChvdCxVdCkpK01hdGguaW11bCh1dCxDbil8MCx3PU1h'@; put 'dGguaW11bCh1dCxVdCksdj12K01hdGguaW11bChNZSxXbil8MCxwPShwPXArTWF0aC5pbXVsKE1lLGVuKXwwKStNYXRoLmltdWwoRGUsV24pfDAsdz13K01hdGguaW11bChEZSxlbil8MCx2PXYrTWF0aC5pbXVsKFhlLEhuKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsZnQpfDApK01hdGguaW11'@; put 'bChVZSxIbil8MCx3PXcrTWF0aC5pbXVsKFVlLGZ0KXwwLHY9ditNYXRoLmltdWwoQWUsaG4pfDAscD0ocD1wK01hdGguaW11bChBZSx3dCl8MCkrTWF0aC5pbXVsKFRlLGhuKXwwLHc9dytNYXRoLmltdWwoVGUsd3QpfDAsdj12K01hdGguaW11bChsdCxfdCl8MCxwPShwPXArTWF0aC5pbXVs'@; put 'KGx0LE50KXwwKStNYXRoLmltdWwoUGUsX3QpfDAsdz13K01hdGguaW11bChQZSxOdCl8MCx2PXYrTWF0aC5pbXVsKEtlLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsSXQpfDApK01hdGguaW11bChZZSxydCl8MCx3PXcrTWF0aC5pbXVsKFllLEl0KXwwLHY9ditNYXRoLmltdWwoT2UsRHQp'@; put 'fDAscD0ocD1wK01hdGguaW11bChPZSxwdCl8MCkrTWF0aC5pbXVsKGplLER0KXwwLHc9dytNYXRoLmltdWwoamUscHQpfDAsdj12K01hdGguaW11bCh4ZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKHhlLHp0KXwwKStNYXRoLmltdWwoTGUsSW4pfDAsdz13K01hdGguaW11bChMZSx6dCl8MDt2'@; put 'YXIgS3I9KFMrKHY9ditNYXRoLmltdWwobmUseG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxzbil8MCkrTWF0aC5pbXVsKGRlLHhuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLHNuKXwwKSsocD4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMs'@; put 'dj1NYXRoLmltdWwoSHQsQ24pLHA9KHA9TWF0aC5pbXVsKEh0LFV0KSkrTWF0aC5pbXVsKFB0LENuKXwwLHc9TWF0aC5pbXVsKFB0LFV0KSx2PXYrTWF0aC5pbXVsKG90LFduKXwwLHA9KHA9cCtNYXRoLmltdWwob3QsZW4pfDApK01hdGguaW11bCh1dCxXbil8MCx3PXcrTWF0aC5pbXVsKHV0'@; put 'LGVuKXwwLHY9ditNYXRoLmltdWwoTWUsSG4pfDAscD0ocD1wK01hdGguaW11bChNZSxmdCl8MCkrTWF0aC5pbXVsKERlLEhuKXwwLHc9dytNYXRoLmltdWwoRGUsZnQpfDAsdj12K01hdGguaW11bChYZSxobil8MCxwPShwPXArTWF0aC5pbXVsKFhlLHd0KXwwKStNYXRoLmltdWwoVWUsaG4p'@; put 'fDAsdz13K01hdGguaW11bChVZSx3dCl8MCx2PXYrTWF0aC5pbXVsKEFlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsTnQpfDApK01hdGguaW11bChUZSxfdCl8MCx3PXcrTWF0aC5pbXVsKFRlLE50KXwwLHY9ditNYXRoLmltdWwobHQscnQpfDAscD0ocD1wK01hdGguaW11bChsdCxJdCl8'@; put 'MCkrTWF0aC5pbXVsKFBlLHJ0KXwwLHc9dytNYXRoLmltdWwoUGUsSXQpfDAsdj12K01hdGguaW11bChLZSxEdCl8MCxwPShwPXArTWF0aC5pbXVsKEtlLHB0KXwwKStNYXRoLmltdWwoWWUsRHQpfDAsdz13K01hdGguaW11bChZZSxwdCl8MCx2PXYrTWF0aC5pbXVsKE9lLEluKXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwoT2UsenQpfDApK01hdGguaW11bChqZSxJbil8MCx3PXcrTWF0aC5pbXVsKGplLHp0KXwwLHY9ditNYXRoLmltdWwoeGUseG4pfDAscD0ocD1wK01hdGguaW11bCh4ZSxzbil8MCkrTWF0aC5pbXVsKExlLHhuKXwwLHc9dytNYXRoLmltdWwoTGUsc24pfDA7dmFyIG5vPShT'@; put 'Kyh2PXYrTWF0aC5pbXVsKG5lLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwobmUsJHQpfDApK01hdGguaW11bChkZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChkZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKG5vPj4+MjYpfDAsbm8mPTY3MTA4ODYzLHY9TWF0aC5p'@; put 'bXVsKEh0LFduKSxwPShwPU1hdGguaW11bChIdCxlbikpK01hdGguaW11bChQdCxXbil8MCx3PU1hdGguaW11bChQdCxlbiksdj12K01hdGguaW11bChvdCxIbil8MCxwPShwPXArTWF0aC5pbXVsKG90LGZ0KXwwKStNYXRoLmltdWwodXQsSG4pfDAsdz13K01hdGguaW11bCh1dCxmdCl8MCx2'@; put 'PXYrTWF0aC5pbXVsKE1lLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoTWUsd3QpfDApK01hdGguaW11bChEZSxobil8MCx3PXcrTWF0aC5pbXVsKERlLHd0KXwwLHY9ditNYXRoLmltdWwoWGUsX3QpfDAscD0ocD1wK01hdGguaW11bChYZSxOdCl8MCkrTWF0aC5pbXVsKFVlLF90KXwwLHc9dytN'@; put 'YXRoLmltdWwoVWUsTnQpfDAsdj12K01hdGguaW11bChBZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKEFlLEl0KXwwKStNYXRoLmltdWwoVGUscnQpfDAsdz13K01hdGguaW11bChUZSxJdCl8MCx2PXYrTWF0aC5pbXVsKGx0LER0KXwwLHA9KHA9cCtNYXRoLmltdWwobHQscHQpfDApK01hdGgu'@; put 'aW11bChQZSxEdCl8MCx3PXcrTWF0aC5pbXVsKFBlLHB0KXwwLHY9ditNYXRoLmltdWwoS2UsSW4pfDAscD0ocD1wK01hdGguaW11bChLZSx6dCl8MCkrTWF0aC5pbXVsKFllLEluKXwwLHc9dytNYXRoLmltdWwoWWUsenQpfDAsdj12K01hdGguaW11bChPZSx4bil8MCxwPShwPXArTWF0aC5p'@; put 'bXVsKE9lLHNuKXwwKStNYXRoLmltdWwoamUseG4pfDAsdz13K01hdGguaW11bChqZSxzbil8MDt2YXIgSHI9KFMrKHY9ditNYXRoLmltdWwoeGUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bCh4ZSwkdCl8MCkrTWF0aC5pbXVsKExlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcr'@; put 'TWF0aC5pbXVsKExlLCR0KXwwKSsocD4+PjEzKXwwKSsoSHI+Pj4yNil8MCxIciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsSG4pLHA9KHA9TWF0aC5pbXVsKEh0LGZ0KSkrTWF0aC5pbXVsKFB0LEhuKXwwLHc9TWF0aC5pbXVsKFB0LGZ0KSx2PXYrTWF0aC5pbXVsKG90LGhuKXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwob3Qsd3QpfDApK01hdGguaW11bCh1dCxobil8MCx3PXcrTWF0aC5pbXVsKHV0LHd0KXwwLHY9ditNYXRoLmltdWwoTWUsX3QpfDAscD0ocD1wK01hdGguaW11bChNZSxOdCl8MCkrTWF0aC5pbXVsKERlLF90KXwwLHc9dytNYXRoLmltdWwoRGUsTnQpfDAsdj12K01hdGgu'@; put 'aW11bChYZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKFhlLEl0KXwwKStNYXRoLmltdWwoVWUscnQpfDAsdz13K01hdGguaW11bChVZSxJdCl8MCx2PXYrTWF0aC5pbXVsKEFlLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoQWUscHQpfDApK01hdGguaW11bChUZSxEdCl8MCx3PXcrTWF0aC5pbXVs'@; put 'KFRlLHB0KXwwLHY9ditNYXRoLmltdWwobHQsSW4pfDAscD0ocD1wK01hdGguaW11bChsdCx6dCl8MCkrTWF0aC5pbXVsKFBlLEluKXwwLHc9dytNYXRoLmltdWwoUGUsenQpfDAsdj12K01hdGguaW11bChLZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKEtlLHNuKXwwKStNYXRoLmltdWwoWWUs'@; put 'eG4pfDAsdz13K01hdGguaW11bChZZSxzbil8MDt2YXIgcWk9KFMrKHY9ditNYXRoLmltdWwoT2UsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChPZSwkdCl8MCkrTWF0aC5pbXVsKGplLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGplLCR0KXwwKSsocD4+PjEz'@; put 'KXwwKSsocWk+Pj4yNil8MCxxaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsaG4pLHA9KHA9TWF0aC5pbXVsKEh0LHd0KSkrTWF0aC5pbXVsKFB0LGhuKXwwLHc9TWF0aC5pbXVsKFB0LHd0KSx2PXYrTWF0aC5pbXVsKG90LF90KXwwLHA9KHA9cCtNYXRoLmltdWwob3QsTnQpfDApK01hdGgu'@; put 'aW11bCh1dCxfdCl8MCx3PXcrTWF0aC5pbXVsKHV0LE50KXwwLHY9ditNYXRoLmltdWwoTWUscnQpfDAscD0ocD1wK01hdGguaW11bChNZSxJdCl8MCkrTWF0aC5pbXVsKERlLHJ0KXwwLHc9dytNYXRoLmltdWwoRGUsSXQpfDAsdj12K01hdGguaW11bChYZSxEdCl8MCxwPShwPXArTWF0aC5p'@; put 'bXVsKFhlLHB0KXwwKStNYXRoLmltdWwoVWUsRHQpfDAsdz13K01hdGguaW11bChVZSxwdCl8MCx2PXYrTWF0aC5pbXVsKEFlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsenQpfDApK01hdGguaW11bChUZSxJbil8MCx3PXcrTWF0aC5pbXVsKFRlLHp0KXwwLHY9ditNYXRoLmltdWwobHQs'@; put 'eG4pfDAscD0ocD1wK01hdGguaW11bChsdCxzbil8MCkrTWF0aC5pbXVsKFBlLHhuKXwwLHc9dytNYXRoLmltdWwoUGUsc24pfDA7dmFyIEppPShTKyh2PXYrTWF0aC5pbXVsKEtlLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoS2UsJHQpfDApK01hdGguaW11bChZZSxSbil8'@; put 'MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChZZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKEppPj4+MjYpfDAsSmkmPTY3MTA4ODYzLHY9TWF0aC5pbXVsKEh0LF90KSxwPShwPU1hdGguaW11bChIdCxOdCkpK01hdGguaW11bChQdCxfdCl8MCx3PU1hdGguaW11bChQdCxOdCksdj12K01hdGgu'@; put 'aW11bChvdCxydCl8MCxwPShwPXArTWF0aC5pbXVsKG90LEl0KXwwKStNYXRoLmltdWwodXQscnQpfDAsdz13K01hdGguaW11bCh1dCxJdCl8MCx2PXYrTWF0aC5pbXVsKE1lLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoTWUscHQpfDApK01hdGguaW11bChEZSxEdCl8MCx3PXcrTWF0aC5pbXVs'@; put 'KERlLHB0KXwwLHY9ditNYXRoLmltdWwoWGUsSW4pfDAscD0ocD1wK01hdGguaW11bChYZSx6dCl8MCkrTWF0aC5pbXVsKFVlLEluKXwwLHc9dytNYXRoLmltdWwoVWUsenQpfDAsdj12K01hdGguaW11bChBZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKEFlLHNuKXwwKStNYXRoLmltdWwoVGUs'@; put 'eG4pfDAsdz13K01hdGguaW11bChUZSxzbil8MDt2YXIgYW89KFMrKHY9ditNYXRoLmltdWwobHQsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChsdCwkdCl8MCkrTWF0aC5pbXVsKFBlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKFBlLCR0KXwwKSsocD4+PjEz'@; put 'KXwwKSsoYW8+Pj4yNil8MCxhbyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQscnQpLHA9KHA9TWF0aC5pbXVsKEh0LEl0KSkrTWF0aC5pbXVsKFB0LHJ0KXwwLHc9TWF0aC5pbXVsKFB0LEl0KSx2PXYrTWF0aC5pbXVsKG90LER0KXwwLHA9KHA9cCtNYXRoLmltdWwob3QscHQpfDApK01hdGgu'@; put 'aW11bCh1dCxEdCl8MCx3PXcrTWF0aC5pbXVsKHV0LHB0KXwwLHY9ditNYXRoLmltdWwoTWUsSW4pfDAscD0ocD1wK01hdGguaW11bChNZSx6dCl8MCkrTWF0aC5pbXVsKERlLEluKXwwLHc9dytNYXRoLmltdWwoRGUsenQpfDAsdj12K01hdGguaW11bChYZSx4bil8MCxwPShwPXArTWF0aC5p'@; put 'bXVsKFhlLHNuKXwwKStNYXRoLmltdWwoVWUseG4pfDAsdz13K01hdGguaW11bChVZSxzbil8MDt2YXIgcm89KFMrKHY9ditNYXRoLmltdWwoQWUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChBZSwkdCl8MCkrTWF0aC5pbXVsKFRlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcr'@; put 'TWF0aC5pbXVsKFRlLCR0KXwwKSsocD4+PjEzKXwwKSsocm8+Pj4yNil8MCxybyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsRHQpLHA9KHA9TWF0aC5pbXVsKEh0LHB0KSkrTWF0aC5pbXVsKFB0LER0KXwwLHc9TWF0aC5pbXVsKFB0LHB0KSx2PXYrTWF0aC5pbXVsKG90LEluKXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwob3QsenQpfDApK01hdGguaW11bCh1dCxJbil8MCx3PXcrTWF0aC5pbXVsKHV0LHp0KXwwLHY9ditNYXRoLmltdWwoTWUseG4pfDAscD0ocD1wK01hdGguaW11bChNZSxzbil8MCkrTWF0aC5pbXVsKERlLHhuKXwwLHc9dytNYXRoLmltdWwoRGUsc24pfDA7dmFyIGlvPShT'@; put 'Kyh2PXYrTWF0aC5pbXVsKFhlLFJuKXwwKXwwKSsoKDgxOTEmKHA9KHA9cCtNYXRoLmltdWwoWGUsJHQpfDApK01hdGguaW11bChVZSxSbil8MCkpPDwxMyl8MDtTPSgodz13K01hdGguaW11bChVZSwkdCl8MCkrKHA+Pj4xMyl8MCkrKGlvPj4+MjYpfDAsaW8mPTY3MTA4ODYzLHY9TWF0aC5p'@; put 'bXVsKEh0LEluKSxwPShwPU1hdGguaW11bChIdCx6dCkpK01hdGguaW11bChQdCxJbil8MCx3PU1hdGguaW11bChQdCx6dCksdj12K01hdGguaW11bChvdCx4bil8MCxwPShwPXArTWF0aC5pbXVsKG90LHNuKXwwKStNYXRoLmltdWwodXQseG4pfDAsdz13K01hdGguaW11bCh1dCxzbil8MDt2'@; put 'YXIgR2k9KFMrKHY9ditNYXRoLmltdWwoTWUsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChNZSwkdCl8MCkrTWF0aC5pbXVsKERlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKERlLCR0KXwwKSsocD4+PjEzKXwwKSsoR2k+Pj4yNil8MCxHaSY9NjcxMDg4NjMs'@; put 'dj1NYXRoLmltdWwoSHQseG4pLHA9KHA9TWF0aC5pbXVsKEh0LHNuKSkrTWF0aC5pbXVsKFB0LHhuKXwwLHc9TWF0aC5pbXVsKFB0LHNuKTt2YXIgaG89KFMrKHY9ditNYXRoLmltdWwob3QsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChvdCwkdCl8MCkrTWF0aC5pbXVsKHV0'@; put 'LFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKHV0LCR0KXwwKSsocD4+PjEzKXwwKSsoaG8+Pj4yNil8MCxobyY9NjcxMDg4NjM7dmFyIHlyPShTKyh2PU1hdGguaW11bChIdCxSbikpfDApKygoODE5MSYocD0ocD1NYXRoLmltdWwoSHQsJHQpKStNYXRoLmltdWwoUHQsUm4pfDAp'@; put 'KTw8MTMpfDA7cmV0dXJuIFM9KCh3PU1hdGguaW11bChQdCwkdCkpKyhwPj4+MTMpfDApKyh5cj4+PjI2KXwwLHlyJj02NzEwODg2MyxDWzBdPUZuLENbMV09bmksQ1syXT1sbixDWzNdPWpuLENbNF09cXIsQ1s1XT1naSxDWzZdPXhyLENbN109VWksQ1s4XT1LcixDWzldPW5vLENbMTBdPUhy'@; put 'LENbMTFdPXFpLENbMTJdPUppLENbMTNdPWFvLENbMTRdPXJvLENbMTVdPWlvLENbMTZdPUdpLENbMTddPWhvLENbMThdPXlyLDAhPT1TJiYoQ1sxOV09UyxILmxlbmd0aCsrKSxIfTtmdW5jdGlvbiBYKEcsYixEKXtyZXR1cm4obmV3IFUpLm11bHAoRyxiLEQpfWZ1bmN0aW9uIFUoRyxiKXt0'@; put 'aGlzLng9Ryx0aGlzLnk9Yn1NYXRoLmltdWx8fChCPVYpLE0ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGIsRCl7dmFyIEgsTj10aGlzLmxlbmd0aCtiLmxlbmd0aDtyZXR1cm4gSD0xMD09PXRoaXMubGVuZ3RoJiYxMD09PWIubGVuZ3RoP0IodGhpcyxiLEQpOk48NjM/Vih0aGlzLGIsRCk6'@; put 'TjwxMDI0P2Z1bmN0aW9uIFkoRyxiLEQpe0QubmVnYXRpdmU9Yi5uZWdhdGl2ZV5HLm5lZ2F0aXZlLEQubGVuZ3RoPUcubGVuZ3RoK2IubGVuZ3RoO2Zvcih2YXIgSD0wLE49MCxnPTA7ZzxELmxlbmd0aC0xO2crKyl7dmFyIEM9TjtOPTA7Zm9yKHZhciBTPTY3MTA4ODYzJkgsdj1NYXRoLm1p'@; put 'bihnLGIubGVuZ3RoLTEpLHA9TWF0aC5tYXgoMCxnLUcubGVuZ3RoKzEpO3A8PXY7cCsrKXt2YXIgZGU9KDB8Ry53b3Jkc1tnLXBdKSooMHxiLndvcmRzW3BdKSxmZT02NzEwODg2MyZkZTtTPTY3MTA4ODYzJihmZT1mZStTfDApLE4rPShDPShDPUMrKGRlLzY3MTA4ODY0fDApfDApKyhmZT4+'@; put 'PjI2KXwwKT4+PjI2LEMmPTY3MTA4ODYzfUQud29yZHNbZ109UyxIPUMsQz1OfXJldHVybiAwIT09SD9ELndvcmRzW2ddPUg6RC5sZW5ndGgtLSxELnN0cmlwKCl9KHRoaXMsYixEKTpYKHRoaXMsYixEKSxIfSxVLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGIpe2Zvcih2YXIgRD1uZXcg'@; put 'QXJyYXkoYiksSD1NLnByb3RvdHlwZS5fY291bnRCaXRzKGIpLTEsTj0wO048YjtOKyspRFtOXT10aGlzLnJldkJpbihOLEgsYik7cmV0dXJuIER9LFUucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihiLEQsSCl7aWYoMD09PWJ8fGI9PT1ILTEpcmV0dXJuIGI7Zm9yKHZhciBOPTAsZz0wO2c8'@; put 'RDtnKyspTnw9KDEmYik8PEQtZy0xLGI+Pj0xO3JldHVybiBOfSxVLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGIsRCxILE4sZyxDKXtmb3IodmFyIFM9MDtTPEM7UysrKU5bU109RFtiW1NdXSxnW1NdPUhbYltTXV19LFUucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihiLEQsSCxO'@; put 'LGcsQyl7dGhpcy5wZXJtdXRlKEMsYixELEgsTixnKTtmb3IodmFyIFM9MTtTPGc7Uzw8PTEpZm9yKHZhciB2PVM8PDEscD1NYXRoLmNvcygyKk1hdGguUEkvdiksdz1NYXRoLnNpbigyKk1hdGguUEkvdiksSj0wO0o8ZztKKz12KWZvcih2YXIgbmU9cCxkZT13LGZlPTA7ZmU8UztmZSsrKXt2'@; put 'YXIgeGU9SFtKK2ZlXSxMZT1OW0orZmVdLEZlPUhbSitmZStTXSxPZT1OW0orZmUrU10samU9bmUqRmUtZGUqT2U7T2U9bmUqT2UrZGUqRmUsSFtKK2ZlXT14ZSsoRmU9amUpLE5bSitmZV09TGUrT2UsSFtKK2ZlK1NdPXhlLUZlLE5bSitmZStTXT1MZS1PZSxmZSE9PXYmJihqZT1wKm5lLXcq'@; put 'ZGUsZGU9cCpkZSt3Km5lLG5lPWplKX19LFUucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGIsRCl7dmFyIEg9MXxNYXRoLm1heChELGIpLE49MSZILGc9MDtmb3IoSD1ILzJ8MDtIO0g+Pj49MSlnKys7cmV0dXJuIDE8PGcrMStOfSxVLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rp'@; put 'b24oYixELEgpe2lmKCEoSDw9MSkpZm9yKHZhciBOPTA7TjxILzI7TisrKXt2YXIgZz1iW05dO2JbTl09YltILU4tMV0sYltILU4tMV09ZyxnPURbTl0sRFtOXT0tRFtILU4tMV0sRFtILU4tMV09LWd9fSxVLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oYixEKXtmb3IodmFyIEg9'@; put 'MCxOPTA7TjxELzI7TisrKXt2YXIgZz04MTkyKk1hdGgucm91bmQoYlsyKk4rMV0vRCkrTWF0aC5yb3VuZChiWzIqTl0vRCkrSDtiW05dPTY3MTA4ODYzJmcsSD1nPDY3MTA4ODY0PzA6Zy82NzEwODg2NHwwfXJldHVybiBifSxVLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGIsRCxI'@; put 'LE4pe2Zvcih2YXIgZz0wLEM9MDtDPEQ7QysrKUhbMipDXT04MTkxJihnKz0wfGJbQ10pLEhbMipDKzFdPTgxOTEmKGc+Pj49MTMpLGc+Pj49MTM7Zm9yKEM9MipEO0M8TjsrK0MpSFtDXT0wO20oMD09PWcpLG0oMD09KC04MTkyJmcpKX0sVS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihiKXtm'@; put 'b3IodmFyIEQ9bmV3IEFycmF5KGIpLEg9MDtIPGI7SCsrKURbSF09MDtyZXR1cm4gRH0sVS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihiLEQsSCl7dmFyIE49Mip0aGlzLmd1ZXNzTGVuMTNiKGIubGVuZ3RoLEQubGVuZ3RoKSxnPXRoaXMubWFrZVJCVChOKSxDPXRoaXMuc3R1YihOKSxTPW5l'@; put 'dyBBcnJheShOKSx2PW5ldyBBcnJheShOKSxwPW5ldyBBcnJheShOKSx3PW5ldyBBcnJheShOKSxKPW5ldyBBcnJheShOKSxuZT1uZXcgQXJyYXkoTiksZGU9SC53b3JkcztkZS5sZW5ndGg9Tix0aGlzLmNvbnZlcnQxM2IoYi53b3JkcyxiLmxlbmd0aCxTLE4pLHRoaXMuY29udmVydDEzYihE'@; put 'LndvcmRzLEQubGVuZ3RoLHcsTiksdGhpcy50cmFuc2Zvcm0oUyxDLHYscCxOLGcpLHRoaXMudHJhbnNmb3JtKHcsQyxKLG5lLE4sZyk7Zm9yKHZhciBmZT0wO2ZlPE47ZmUrKyl7dmFyIHhlPXZbZmVdKkpbZmVdLXBbZmVdKm5lW2ZlXTtwW2ZlXT12W2ZlXSpuZVtmZV0rcFtmZV0qSltmZV0s'@; put 'dltmZV09eGV9cmV0dXJuIHRoaXMuY29uanVnYXRlKHYscCxOKSx0aGlzLnRyYW5zZm9ybSh2LHAsZGUsQyxOLGcpLHRoaXMuY29uanVnYXRlKGRlLEMsTiksdGhpcy5ub3JtYWxpemUxM2IoZGUsTiksSC5uZWdhdGl2ZT1iLm5lZ2F0aXZlXkQubmVnYXRpdmUsSC5sZW5ndGg9Yi5sZW5ndGgr'@; put 'RC5sZW5ndGgsSC5zdHJpcCgpfSxNLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oYil7dmFyIEQ9bmV3IE0obnVsbCk7cmV0dXJuIEQud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2IubGVuZ3RoKSx0aGlzLm11bFRvKGIsRCl9LE0ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oYil7dmFyIEQ9'@; put 'bmV3IE0obnVsbCk7cmV0dXJuIEQud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2IubGVuZ3RoKSxYKHRoaXMsYixEKX0sTS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKGIsdGhpcyl9LE0ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGIp'@; put 'e20oIm51bWJlciI9PXR5cGVvZiBiKSxtKGI8NjcxMDg4NjQpO2Zvcih2YXIgRD0wLEg9MDtIPHRoaXMubGVuZ3RoO0grKyl7dmFyIE49KDB8dGhpcy53b3Jkc1tIXSkqYixnPSg2NzEwODg2MyZOKSsoNjcxMDg4NjMmRCk7RD4+PTI2LEQrPU4vNjcxMDg4NjR8MCxEKz1nPj4+MjYsdGhpcy53'@; put 'b3Jkc1tIXT02NzEwODg2MyZnfXJldHVybiAwIT09RCYmKHRoaXMud29yZHNbSF09RCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxNLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oYil9LE0ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0'@; put 'aGlzLm11bCh0aGlzKX0sTS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGIpe3ZhciBEPWZ1bmN0aW9uIGooRyl7Zm9yKHZhciBiPW5ldyBBcnJheShHLmJpdExlbmd0aCgpKSxEPTA7RDxi'@; put 'Lmxlbmd0aDtEKyspe3ZhciBOPUQlMjY7YltEXT0oRy53b3Jkc1tELzI2fDBdJjE8PE4pPj4+Tn1yZXR1cm4gYn0oYik7aWYoMD09PUQubGVuZ3RoKXJldHVybiBuZXcgTSgxKTtmb3IodmFyIEg9dGhpcyxOPTA7TjxELmxlbmd0aCYmMD09PURbTl07TisrLEg9SC5zcXIoKSk7aWYoKytOPEQu'@; put 'bGVuZ3RoKWZvcih2YXIgZz1ILnNxcigpO048RC5sZW5ndGg7TisrLGc9Zy5zcXIoKSkwIT09RFtOXSYmKEg9SC5tdWwoZykpO3JldHVybiBIfSxNLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApO3ZhciBnLEQ9YiUyNixIPShiLUQpLzI2'@; put 'LE49NjcxMDg4NjM+Pj4yNi1EPDwyNi1EO2lmKDAhPT1EKXt2YXIgQz0wO2ZvcihnPTA7Zzx0aGlzLmxlbmd0aDtnKyspe3ZhciBTPXRoaXMud29yZHNbZ10mTjt0aGlzLndvcmRzW2ddPSgwfHRoaXMud29yZHNbZ10pLVM8PER8QyxDPVM+Pj4yNi1EfUMmJih0aGlzLndvcmRzW2ddPUMsdGhp'@; put 'cy5sZW5ndGgrKyl9aWYoMCE9PUgpe2ZvcihnPXRoaXMubGVuZ3RoLTE7Zz49MDtnLS0pdGhpcy53b3Jkc1tnK0hdPXRoaXMud29yZHNbZ107Zm9yKGc9MDtnPEg7ZysrKXRoaXMud29yZHNbZ109MDt0aGlzLmxlbmd0aCs9SH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pc2hs'@; put 'bj1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oYil9LE0ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihiLEQsSCl7dmFyIE47bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApLE49RD8oRC1EJTI2KS8yNjowO3ZhciBnPWIlMjYsQz1NYXRoLm1p'@; put 'bigoYi1nKS8yNix0aGlzLmxlbmd0aCksUz02NzEwODg2M142NzEwODg2Mz4+Pmc8PGcsdj1IO2lmKE4tPUMsTj1NYXRoLm1heCgwLE4pLHYpe2Zvcih2YXIgcD0wO3A8QztwKyspdi53b3Jkc1twXT10aGlzLndvcmRzW3BdO3YubGVuZ3RoPUN9aWYoMCE9PUMpaWYodGhpcy5sZW5ndGg+Qylm'@; put 'b3IodGhpcy5sZW5ndGgtPUMscD0wO3A8dGhpcy5sZW5ndGg7cCsrKXRoaXMud29yZHNbcF09dGhpcy53b3Jkc1twK0NdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIHc9MDtmb3IocD10aGlzLmxlbmd0aC0xO3A+PTAmJigwIT09d3x8cD49Tik7cC0tKXt2YXIgSj0w'@; put 'fHRoaXMud29yZHNbcF07dGhpcy53b3Jkc1twXT13PDwyNi1nfEo+Pj5nLHc9SiZTfXJldHVybiB2JiYwIT09dyYmKHYud29yZHNbdi5sZW5ndGgrK109dyksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUu'@; put 'aXNocm49ZnVuY3Rpb24oYixELEgpe3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihiLEQsSCl9LE0ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihiKX0sTS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oYil7cmV0dXJu'@; put 'IHRoaXMuY2xvbmUoKS5pdXNobG4oYil9LE0ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihiKX0sTS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oYil9LE0ucHJvdG90eXBlLnRlc3RuPWZ1'@; put 'bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgRD1iJTI2LEg9KGItRCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9SHx8ISh0aGlzLndvcmRzW0hdJjE8PEQpKX0sTS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0w'@; put 'KTt2YXIgRD1iJTI2LEg9KGItRCkvMjY7cmV0dXJuIG0oMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1IP3RoaXM6KDAhPT1EJiZIKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oSCx0aGlzLmxlbmd0aCksMCE9'@; put 'PUQmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PkQ8PEQpLHRoaXMuc3RyaXAoKSl9LE0ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGIpfSxNLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihiKXty'@; put 'ZXR1cm4gbSgibnVtYmVyIj09dHlwZW9mIGIpLG0oYjw2NzEwODg2NCksYjwwP3RoaXMuaXN1Ym4oLWIpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Yj8odGhpcy53b3Jkc1swXT1iLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9'@; put 'MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oYiksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGIpfSxNLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oYil7dGhpcy53b3Jkc1swXSs9Yjtmb3IodmFyIEQ9MDtEPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW0Rd'@; put 'Pj02NzEwODg2NDtEKyspdGhpcy53b3Jkc1tEXS09NjcxMDg4NjQsRD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tEKzFdPTE6dGhpcy53b3Jkc1tEKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEQrMSksdGhpc30sTS5wcm90b3R5cGUuaXN1Ym49ZnVu'@; put 'Y3Rpb24oYil7aWYobSgibnVtYmVyIj09dHlwZW9mIGIpLG0oYjw2NzEwODg2NCksYjwwKXJldHVybiB0aGlzLmlhZGRuKC1iKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oYiksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jk'@; put 'c1swXS09YiwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgRD0wO0Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbRF08MDtEKyspdGhpcy53b3Jkc1tEXSs9NjcxMDg4NjQsdGhp'@; put 'cy53b3Jkc1tEKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihiKX0sTS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGIpfSxNLnByb3RvdHlw'@; put 'ZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxNLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGIsRCxIKXt2YXIgZzt0aGlzLl9leHBhbmQoYi5s'@; put 'ZW5ndGgrSCk7dmFyIEMsUz0wO2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspe0M9KDB8dGhpcy53b3Jkc1tnK0hdKStTO3ZhciB2PSgwfGIud29yZHNbZ10pKkQ7Uz0oKEMtPTY3MTA4ODYzJnYpPj4yNiktKHYvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tnK0hdPTY3MTA4ODYzJkN9Zm9yKDtnPHRo'@; put 'aXMubGVuZ3RoLUg7ZysrKVM9KEM9KDB8dGhpcy53b3Jkc1tnK0hdKStTKT4+MjYsdGhpcy53b3Jkc1tnK0hdPTY3MTA4ODYzJkM7aWYoMD09PVMpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IobSgtMT09PVMpLFM9MCxnPTA7Zzx0aGlzLmxlbmd0aDtnKyspUz0oQz0tKDB8dGhpcy53b3Jkc1tn'@; put 'XSkrUyk+PjI2LHRoaXMud29yZHNbZ109NjcxMDg4NjMmQztyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oYixEKXt2YXIgSCxOPXRoaXMuY2xvbmUoKSxnPWIsQz0wfGcud29yZHNbZy5sZW5ndGgtMV07MCE9KEg9MjYt'@; put 'dGhpcy5fY291bnRCaXRzKEMpKSYmKGc9Zy51c2hsbihIKSxOLml1c2hsbihIKSxDPTB8Zy53b3Jkc1tnLmxlbmd0aC0xXSk7dmFyIHAsdj1OLmxlbmd0aC1nLmxlbmd0aDtpZigibW9kIiE9PUQpeyhwPW5ldyBNKG51bGwpKS5sZW5ndGg9disxLHAud29yZHM9bmV3IEFycmF5KHAubGVuZ3Ro'@; put 'KTtmb3IodmFyIHc9MDt3PHAubGVuZ3RoO3crKylwLndvcmRzW3ddPTB9dmFyIEo9Ti5jbG9uZSgpLl9pc2hsbnN1Ym11bChnLDEsdik7MD09PUoubmVnYXRpdmUmJihOPUoscCYmKHAud29yZHNbdl09MSkpO2Zvcih2YXIgbmU9di0xO25lPj0wO25lLS0pe3ZhciBkZT02NzEwODg2NCooMHxO'@; put 'LndvcmRzW2cubGVuZ3RoK25lXSkrKDB8Ti53b3Jkc1tnLmxlbmd0aCtuZS0xXSk7Zm9yKGRlPU1hdGgubWluKGRlL0N8MCw2NzEwODg2MyksTi5faXNobG5zdWJtdWwoZyxkZSxuZSk7MCE9PU4ubmVnYXRpdmU7KWRlLS0sTi5uZWdhdGl2ZT0wLE4uX2lzaGxuc3VibXVsKGcsMSxuZSksTi5p'@; put 'c1plcm8oKXx8KE4ubmVnYXRpdmVePTEpO3AmJihwLndvcmRzW25lXT1kZSl9cmV0dXJuIHAmJnAuc3RyaXAoKSxOLnN0cmlwKCksImRpdiIhPT1EJiYwIT09SCYmTi5pdXNocm4oSCkse2RpdjpwfHxudWxsLG1vZDpOfX0sTS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGIsRCxIKXtyZXR1'@; put 'cm4gbSghYi5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBNKDApLG1vZDpuZXcgTSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1iLm5lZ2F0aXZlPyhDPXRoaXMubmVnKCkuZGl2bW9kKGIsRCksIm1vZCIhPT1EJiYoTj1DLmRpdi5uZWcoKSksImRpdiIhPT1EJiYoZz1DLm1v'@; put 'ZC5uZWcoKSxIJiYwIT09Zy5uZWdhdGl2ZSYmZy5pYWRkKGIpKSx7ZGl2Ok4sbW9kOmd9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWIubmVnYXRpdmU/KEM9dGhpcy5kaXZtb2QoYi5uZWcoKSxEKSwibW9kIiE9PUQmJihOPUMuZGl2Lm5lZygpKSx7ZGl2Ok4sbW9kOkMubW9kfSk6dGhpcy5u'@; put 'ZWdhdGl2ZSZiLm5lZ2F0aXZlPyhDPXRoaXMubmVnKCkuZGl2bW9kKGIubmVnKCksRCksImRpdiIhPT1EJiYoZz1DLm1vZC5uZWcoKSxIJiYwIT09Zy5uZWdhdGl2ZSYmZy5pc3ViKGIpKSx7ZGl2OkMuZGl2LG1vZDpnfSk6Yi5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGIpPDA/e2Rp'@; put 'djpuZXcgTSgwKSxtb2Q6dGhpc306MT09PWIubGVuZ3RoPyJkaXYiPT09RD97ZGl2OnRoaXMuZGl2bihiLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1EP3tkaXY6bnVsbCxtb2Q6bmV3IE0odGhpcy5tb2RuKGIud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oYi53b3Jkc1swXSksbW9k'@; put 'Om5ldyBNKHRoaXMubW9kbihiLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoYixEKTt2YXIgTixnLEN9LE0ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5kaXZtb2QoYiwiZGl2IiwhMSkuZGl2fSxNLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMu'@; put 'ZGl2bW9kKGIsIm1vZCIsITEpLm1vZH0sTS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5kaXZtb2QoYiwibW9kIiwhMCkubW9kfSxNLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihiKXt2YXIgRD10aGlzLmRpdm1vZChiKTtpZihELm1vZC5pc1plcm8oKSlyZXR1'@; put 'cm4gRC5kaXY7dmFyIEg9MCE9PUQuZGl2Lm5lZ2F0aXZlP0QubW9kLmlzdWIoYik6RC5tb2QsTj1iLnVzaHJuKDEpLGc9Yi5hbmRsbigxKSxDPUguY21wKE4pO3JldHVybiBDPDB8fDE9PT1nJiYwPT09Qz9ELmRpdjowIT09RC5kaXYubmVnYXRpdmU/RC5kaXYuaXN1Ym4oMSk6RC5kaXYuaWFk'@; put 'ZG4oMSl9LE0ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oYil7bShiPD02NzEwODg2Myk7Zm9yKHZhciBEPSgxPDwyNiklYixIPTAsTj10aGlzLmxlbmd0aC0xO04+PTA7Ti0tKUg9KEQqSCsoMHx0aGlzLndvcmRzW05dKSklYjtyZXR1cm4gSH0sTS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24o'@; put 'Yil7bShiPD02NzEwODg2Myk7Zm9yKHZhciBEPTAsSD10aGlzLmxlbmd0aC0xO0g+PTA7SC0tKXt2YXIgTj0oMHx0aGlzLndvcmRzW0hdKSs2NzEwODg2NCpEO3RoaXMud29yZHNbSF09Ti9ifDAsRD1OJWJ9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihi'@; put 'KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGIpfSxNLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGIpe20oMD09PWIubmVnYXRpdmUpLG0oIWIuaXNaZXJvKCkpO3ZhciBEPXRoaXMsSD1iLmNsb25lKCk7RD0wIT09RC5uZWdhdGl2ZT9ELnVtb2QoYik6RC5jbG9uZSgpO2Zvcih2YXIgTj1u'@; put 'ZXcgTSgxKSxnPW5ldyBNKDApLEM9bmV3IE0oMCksUz1uZXcgTSgxKSx2PTA7RC5pc0V2ZW4oKSYmSC5pc0V2ZW4oKTspRC5pdXNocm4oMSksSC5pdXNocm4oMSksKyt2O2Zvcih2YXIgcD1ILmNsb25lKCksdz1ELmNsb25lKCk7IUQuaXNaZXJvKCk7KXtmb3IodmFyIEo9MCxuZT0xOyEoRC53'@; put 'b3Jkc1swXSZuZSkmJko8MjY7KytKLG5lPDw9MSk7aWYoSj4wKWZvcihELml1c2hybihKKTtKLS0gPjA7KShOLmlzT2RkKCl8fGcuaXNPZGQoKSkmJihOLmlhZGQocCksZy5pc3ViKHcpKSxOLml1c2hybigxKSxnLml1c2hybigxKTtmb3IodmFyIGRlPTAsZmU9MTshKEgud29yZHNbMF0mZmUp'@; put 'JiZkZTwyNjsrK2RlLGZlPDw9MSk7aWYoZGU+MClmb3IoSC5pdXNocm4oZGUpO2RlLS0gPjA7KShDLmlzT2RkKCl8fFMuaXNPZGQoKSkmJihDLmlhZGQocCksUy5pc3ViKHcpKSxDLml1c2hybigxKSxTLml1c2hybigxKTtELmNtcChIKT49MD8oRC5pc3ViKEgpLE4uaXN1YihDKSxnLmlzdWIo'@; put 'UykpOihILmlzdWIoRCksQy5pc3ViKE4pLFMuaXN1YihnKSl9cmV0dXJue2E6QyxiOlMsZ2NkOkguaXVzaGxuKHYpfX0sTS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGIpe20oMD09PWIubmVnYXRpdmUpLG0oIWIuaXNaZXJvKCkpO3ZhciBKLEQ9dGhpcyxIPWIuY2xvbmUoKTtEPTAhPT1E'@; put 'Lm5lZ2F0aXZlP0QudW1vZChiKTpELmNsb25lKCk7Zm9yKHZhciBOPW5ldyBNKDEpLGc9bmV3IE0oMCksQz1ILmNsb25lKCk7RC5jbXBuKDEpPjAmJkguY21wbigxKT4wOyl7Zm9yKHZhciBTPTAsdj0xOyEoRC53b3Jkc1swXSZ2KSYmUzwyNjsrK1Msdjw8PTEpO2lmKFM+MClmb3IoRC5pdXNo'@; put 'cm4oUyk7Uy0tID4wOylOLmlzT2RkKCkmJk4uaWFkZChDKSxOLml1c2hybigxKTtmb3IodmFyIHA9MCx3PTE7IShILndvcmRzWzBdJncpJiZwPDI2OysrcCx3PDw9MSk7aWYocD4wKWZvcihILml1c2hybihwKTtwLS0gPjA7KWcuaXNPZGQoKSYmZy5pYWRkKEMpLGcuaXVzaHJuKDEpO0QuY21w'@; put 'KEgpPj0wPyhELmlzdWIoSCksTi5pc3ViKGcpKTooSC5pc3ViKEQpLGcuaXN1YihOKSl9cmV0dXJuKEo9MD09PUQuY21wbigxKT9OOmcpLmNtcG4oMCk8MCYmSi5pYWRkKGIpLEp9LE0ucHJvdG90eXBlLmdjZD1mdW5jdGlvbihiKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBiLmFicygpO2lm'@; put 'KGIuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIEQ9dGhpcy5jbG9uZSgpLEg9Yi5jbG9uZSgpO0QubmVnYXRpdmU9MCxILm5lZ2F0aXZlPTA7Zm9yKHZhciBOPTA7RC5pc0V2ZW4oKSYmSC5pc0V2ZW4oKTtOKyspRC5pdXNocm4oMSksSC5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO0Qu'@; put 'aXNFdmVuKCk7KUQuaXVzaHJuKDEpO2Zvcig7SC5pc0V2ZW4oKTspSC5pdXNocm4oMSk7dmFyIGc9RC5jbXAoSCk7aWYoZzwwKXt2YXIgQz1EO0Q9SCxIPUN9ZWxzZSBpZigwPT09Z3x8MD09PUguY21wbigxKSlicmVhaztELmlzdWIoSCl9cmV0dXJuIEguaXVzaGxuKE4pfSxNLnByb3RvdHlw'@; put 'ZS5pbnZtPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmVnY2QoYikuYS51bW9kKGIpfSxNLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE0ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0p'@; put 'fSxNLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZifSxNLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYik7dmFyIEQ9YiUyNixIPShiLUQpLzI2LE49MTw8RDtpZih0aGlzLmxlbmd0aDw9SClyZXR1cm4gdGhp'@; put 'cy5fZXhwYW5kKEgrMSksdGhpcy53b3Jkc1tIXXw9Tix0aGlzO2Zvcih2YXIgZz1OLEM9SDswIT09ZyYmQzx0aGlzLmxlbmd0aDtDKyspe3ZhciBTPTB8dGhpcy53b3Jkc1tDXTtnPShTKz1nKT4+PjI2LHRoaXMud29yZHNbQ109UyY9NjcxMDg4NjN9cmV0dXJuIDAhPT1nJiYodGhpcy53b3Jk'@; put 'c1tDXT1nLHRoaXMubGVuZ3RoKyspLHRoaXN9LE0ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxNLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGIpe3ZhciBILEQ9YjwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYh'@; put 'RClyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmRClyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlIPTE7ZWxzZXtEJiYoYj0tYiksbShiPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgTj0wfHRoaXMud29yZHNbMF07SD1OPT09Yj8wOk48Yj8t'@; put 'MToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1IOkh9LE0ucHJvdG90eXBlLmNtcD1mdW5jdGlvbihiKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWIubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1iLm5lZ2F0aXZlKXJldHVybiAxO3ZhciBEPXRo'@; put 'aXMudWNtcChiKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtRDpEfSxNLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGIpe2lmKHRoaXMubGVuZ3RoPmIubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPGIubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgRD0wLEg9dGhpcy5sZW5ndGgt'@; put 'MTtIPj0wO0gtLSl7dmFyIE49MHx0aGlzLndvcmRzW0hdLGc9MHxiLndvcmRzW0hdO2lmKE4hPT1nKXtOPGc/RD0tMTpOPmcmJihEPTEpO2JyZWFrfX1yZXR1cm4gRH0sTS5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKGIpe3JldHVybiAxPT09dGhpcy5jbXBuKGIpfSxNLnByb3RvdHlwZS5ndD1m'@; put 'dW5jdGlvbihiKXtyZXR1cm4gMT09PXRoaXMuY21wKGIpfSxNLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcG4oYik+PTB9LE0ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbXAoYik+PTB9LE0ucHJvdG90eXBlLmx0bj1mdW5jdGlvbihi'@; put 'KXtyZXR1cm4tMT09PXRoaXMuY21wbihiKX0sTS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oYil7cmV0dXJuLTE9PT10aGlzLmNtcChiKX0sTS5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbXBuKGIpPD0wfSxNLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oYil7cmV0dXJu'@; put 'IHRoaXMuY21wKGIpPD0wfSxNLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oYil7cmV0dXJuIDA9PT10aGlzLmNtcG4oYil9LE0ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGIpe3JldHVybiAwPT09dGhpcy5jbXAoYil9LE0ucmVkPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgdWUoYil9LE0ucHJvdG90'@; put 'eXBlLnRvUmVkPWZ1bmN0aW9uKGIpe3JldHVybiBtKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG0oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksYi5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGIp'@; put 'fSxNLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sTS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9u'@; put 'KGIpe3JldHVybiB0aGlzLnJlZD1iLHRoaXN9LE0ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGIpe3JldHVybiBtKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGIpfSxNLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rp'@; put 'b24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51'@; put 'bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0'@; put 'aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBu'@; put 'dW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsYiksdGhpcy5yZWQubXVsKHRoaXMsYil9'@; put 'LE0ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGIpLHRoaXMucmVkLmltdWwodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE0ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkSVNxciB3b3Jr'@; put 'cyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxNLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5y'@; put 'ZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0o'@; put 'dGhpcyl9LE0ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxNLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24o'@; put 'Yil7cmV0dXJuIG0odGhpcy5yZWQmJiFiLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxiKX07dmFyIHE9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBlZShHLGIpe3Ro'@; put 'aXMubmFtZT1HLHRoaXMucD1uZXcgTShiLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTSgxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gdGUoKXtlZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBm'@; put 'ZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIG9lKCl7ZWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1m'@; put 'dW5jdGlvbiBzZSgpe2VlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gaGUoKXtlZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZm'@; put 'ZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIHVlKEcpe2lmKCJzdHJpbmciPT10eXBlb2YgRyl7dmFyIGI9TS5fcHJpbWUoRyk7dGhpcy5tPWIucCx0aGlzLnByaW1lPWJ9ZWxzZSBtKEcuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlz'@; put 'Lm09Ryx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gY2UoRyl7dWUuY2FsbCh0aGlzLEcpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IE0oMSkuaXVzaGxuKHRoaXMuc2hpZnQp'@; put 'LHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlz'@; put 'LnIuc3ViKHRoaXMubWludil9ZWUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgTShudWxsKTtyZXR1cm4gYi53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLGJ9LGVlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKGIpe3ZhciBILEQ9Yjtkb3t0aGlz'@; put 'LnNwbGl0KEQsdGhpcy50bXApLEg9KEQ9KEQ9dGhpcy5pbXVsSyhEKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKEg+dGhpcy5uKTt2YXIgTj1IPHRoaXMubj8tMTpELnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PU4/KEQud29yZHNbMF09MCxELmxlbmd0aD0xKTpOPjA/RC5p'@; put 'c3ViKHRoaXMucCk6dm9pZCAwIT09RC5zdHJpcD9ELnN0cmlwKCk6RC5fc3RyaXAoKSxEfSxlZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oYixEKXtiLml1c2hybih0aGlzLm4sMCxEKX0sZWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGIpe3JldHVybiBiLmltdWwodGhpcy5rKX0sbGUo'@; put 'dGUsZWUpLHRlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihiLEQpe2Zvcih2YXIgSD00MTk0MzAzLE49TWF0aC5taW4oYi5sZW5ndGgsOSksZz0wO2c8TjtnKyspRC53b3Jkc1tnXT1iLndvcmRzW2ddO2lmKEQubGVuZ3RoPU4sYi5sZW5ndGg8PTkpcmV0dXJuIGIud29yZHNbMF09MCx2b2lk'@; put 'KGIubGVuZ3RoPTEpO3ZhciBDPWIud29yZHNbOV07Zm9yKEQud29yZHNbRC5sZW5ndGgrK109QyZILGc9MTA7ZzxiLmxlbmd0aDtnKyspe3ZhciBTPTB8Yi53b3Jkc1tnXTtiLndvcmRzW2ctMTBdPShTJkgpPDw0fEM+Pj4yMixDPVN9Yi53b3Jkc1tnLTEwXT1DPj4+PTIyLGIubGVuZ3RoLT0w'@; put 'PT09QyYmYi5sZW5ndGg+MTA/MTA6OX0sdGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGIpe2Iud29yZHNbYi5sZW5ndGhdPTAsYi53b3Jkc1tiLmxlbmd0aCsxXT0wLGIubGVuZ3RoKz0yO2Zvcih2YXIgRD0wLEg9MDtIPGIubGVuZ3RoO0grKyl7dmFyIE49MHxiLndvcmRzW0hdO2Iud29y'@; put 'ZHNbSF09NjcxMDg4NjMmKEQrPTk3NypOKSxEPTY0Kk4rKEQvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1iLndvcmRzW2IubGVuZ3RoLTFdJiYoYi5sZW5ndGgtLSwwPT09Yi53b3Jkc1tiLmxlbmd0aC0xXSYmYi5sZW5ndGgtLSksYn0sbGUob2UsZWUpLGxlKHNlLGVlKSxsZShoZSxlZSksaGUu'@; put 'cHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGIpe2Zvcih2YXIgRD0wLEg9MDtIPGIubGVuZ3RoO0grKyl7dmFyIE49MTkqKDB8Yi53b3Jkc1tIXSkrRCxnPTY3MTA4ODYzJk47Tj4+Pj0yNixiLndvcmRzW0hdPWcsRD1OfXJldHVybiAwIT09RCYmKGIud29yZHNbYi5sZW5ndGgrK109RCksYn0s'@; put 'TS5fcHJpbWU9ZnVuY3Rpb24oYil7aWYocVtiXSlyZXR1cm4gcVtiXTt2YXIgRDtpZigiazI1NiI9PT1iKUQ9bmV3IHRlO2Vsc2UgaWYoInAyMjQiPT09YilEPW5ldyBvZTtlbHNlIGlmKCJwMTkyIj09PWIpRD1uZXcgc2U7ZWxzZXtpZigicDI1NTE5IiE9PWIpdGhyb3cgbmV3IEVycm9yKCJV'@; put 'bmtub3duIHByaW1lICIrYik7RD1uZXcgaGV9cmV0dXJuIHFbYl09RCxEfSx1ZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oYil7bSgwPT09Yi5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxtKGIucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1i'@; put 'ZXJzIil9LHVlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihiLEQpe20oMD09KGIubmVnYXRpdmV8RC5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksbShiLnJlZCYmYi5yZWQ9PT1ELnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSx1'@; put 'ZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoYikuX2ZvcmNlUmVkKHRoaXMpOmIudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sdWUucHJvdG90eXBlLm5lZz1mdW5jdGlvbihiKXtyZXR1cm4gYi5pc1plcm8oKT9i'@; put 'LmNsb25lKCk6dGhpcy5tLnN1YihiKS5fZm9yY2VSZWQodGhpcyl9LHVlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9Yi5hZGQoRCk7cmV0dXJuIEguY21wKHRoaXMubSk+PTAmJkguaXN1Yih0aGlzLm0pLEguX2ZvcmNlUmVkKHRoaXMpfSx1'@; put 'ZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIgSD1iLmlhZGQoRCk7cmV0dXJuIEguY21wKHRoaXMubSk+PTAmJkguaXN1Yih0aGlzLm0pLEh9LHVlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9'@; put 'Yi5zdWIoRCk7cmV0dXJuIEguY21wbigwKTwwJiZILmlhZGQodGhpcy5tKSxILl9mb3JjZVJlZCh0aGlzKX0sdWUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oYixEKXt0aGlzLl92ZXJpZnkyKGIsRCk7dmFyIEg9Yi5pc3ViKEQpO3JldHVybiBILmNtcG4oMCk8MCYmSC5pYWRkKHRoaXMubSks'@; put 'SH0sdWUucHJvdG90eXBlLnNobD1mdW5jdGlvbihiLEQpe3JldHVybiB0aGlzLl92ZXJpZnkxKGIpLHRoaXMuaW1vZChiLnVzaGxuKEQpKX0sdWUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihiLEQpLHRoaXMuaW1vZChiLmltdWwoRCkpfSx1ZS5w'@; put 'cm90b3R5cGUubXVsPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoYixEKSx0aGlzLmltb2QoYi5tdWwoRCkpfSx1ZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5pbXVsKGIsYi5jbG9uZSgpKX0sdWUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihiKXty'@; put 'ZXR1cm4gdGhpcy5tdWwoYixiKX0sdWUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oYil7aWYoYi5pc1plcm8oKSlyZXR1cm4gYi5jbG9uZSgpO3ZhciBEPXRoaXMubS5hbmRsbigzKTtpZihtKEQlMj09MSksMz09PUQpe3ZhciBIPXRoaXMubS5hZGQobmV3IE0oMSkpLml1c2hybigyKTtyZXR1'@; put 'cm4gdGhpcy5wb3coYixIKX1mb3IodmFyIE49dGhpcy5tLnN1Ym4oMSksZz0wOyFOLmlzWmVybygpJiYwPT09Ti5hbmRsbigxKTspZysrLE4uaXVzaHJuKDEpO20oIU4uaXNaZXJvKCkpO3ZhciBDPW5ldyBNKDEpLnRvUmVkKHRoaXMpLFM9Qy5yZWROZWcoKSx2PXRoaXMubS5zdWJuKDEpLml1'@; put 'c2hybigxKSxwPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IocD1uZXcgTSgyKnAqcCkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KHAsdikuY21wKFMpOylwLnJlZElBZGQoUyk7Zm9yKHZhciB3PXRoaXMucG93KHAsTiksSj10aGlzLnBvdyhiLE4uYWRkbigxKS5pdXNocm4oMSkpLG5lPXRoaXMu'@; put 'cG93KGIsTiksZGU9ZzswIT09bmUuY21wKEMpOyl7Zm9yKHZhciBmZT1uZSx4ZT0wOzAhPT1mZS5jbXAoQyk7eGUrKylmZT1mZS5yZWRTcXIoKTttKHhlPGRlKTt2YXIgTGU9dGhpcy5wb3codyxuZXcgTSgxKS5pdXNobG4oZGUteGUtMSkpO0o9Si5yZWRNdWwoTGUpLHc9TGUucmVkU3FyKCks'@; put 'bmU9bmUucmVkTXVsKHcpLGRlPXhlfXJldHVybiBKfSx1ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihiKXt2YXIgRD1iLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09RC5uZWdhdGl2ZT8oRC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChEKS5yZWROZWcoKSk6dGhpcy5pbW9kKEQpfSx1ZS5wcm90'@; put 'b3R5cGUucG93PWZ1bmN0aW9uKGIsRCl7aWYoRC5pc1plcm8oKSlyZXR1cm4gbmV3IE0oMSkudG9SZWQodGhpcyk7aWYoMD09PUQuY21wbigxKSlyZXR1cm4gYi5jbG9uZSgpO3ZhciBOPW5ldyBBcnJheSgxNik7TlswXT1uZXcgTSgxKS50b1JlZCh0aGlzKSxOWzFdPWI7Zm9yKHZhciBnPTI7'@; put 'ZzxOLmxlbmd0aDtnKyspTltnXT10aGlzLm11bChOW2ctMV0sYik7dmFyIEM9TlswXSxTPTAsdj0wLHA9RC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PXAmJihwPTI2KSxnPUQubGVuZ3RoLTE7Zz49MDtnLS0pe2Zvcih2YXIgdz1ELndvcmRzW2ddLEo9cC0xO0o+PTA7Si0tKXt2YXIgbmU9dz4+'@; put 'SiYxO0MhPT1OWzBdJiYoQz10aGlzLnNxcihDKSksMCE9PW5lfHwwIT09Uz8oUzw8PTEsU3w9bmUsKDQ9PSsrdnx8MD09PWcmJjA9PT1KKSYmKEM9dGhpcy5tdWwoQyxOW1NdKSx2PTAsUz0wKSk6dj0wfXA9MjZ9cmV0dXJuIEN9LHVlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oYil7'@; put 'dmFyIEQ9Yi51bW9kKHRoaXMubSk7cmV0dXJuIEQ9PT1iP0QuY2xvbmUoKTpEfSx1ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oYil7dmFyIEQ9Yi5jbG9uZSgpO3JldHVybiBELnJlZD1udWxsLER9LE0ubW9udD1mdW5jdGlvbihiKXtyZXR1cm4gbmV3IGNlKGIpfSxsZShjZSx1'@; put 'ZSksY2UucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5pbW9kKGIudXNobG4odGhpcy5zaGlmdCkpfSxjZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oYil7dmFyIEQ9dGhpcy5pbW9kKGIubXVsKHRoaXMucmludikpO3JldHVybiBELnJlZD1udWxs'@; put 'LER9LGNlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGIsRCl7aWYoYi5pc1plcm8oKXx8RC5pc1plcm8oKSlyZXR1cm4gYi53b3Jkc1swXT0wLGIubGVuZ3RoPTEsYjt2YXIgSD1iLmltdWwoRCksTj1ILm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0'@; put 'KS5tdWwodGhpcy5tKSxnPUguaXN1YihOKS5pdXNocm4odGhpcy5zaGlmdCksQz1nO3JldHVybiBnLmNtcCh0aGlzLm0pPj0wP0M9Zy5pc3ViKHRoaXMubSk6Zy5jbXBuKDApPDAmJihDPWcuaWFkZCh0aGlzLm0pKSxDLl9mb3JjZVJlZCh0aGlzKX0sY2UucHJvdG90eXBlLm11bD1mdW5jdGlv'@; put 'bihiLEQpe2lmKGIuaXNaZXJvKCl8fEQuaXNaZXJvKCkpcmV0dXJuIG5ldyBNKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgSD1iLm11bChEKSxOPUgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGc9SC5pc3ViKE4pLml1c2hy'@; put 'bih0aGlzLnNoaWZ0KSxDPWc7cmV0dXJuIGcuY21wKHRoaXMubSk+PTA/Qz1nLmlzdWIodGhpcy5tKTpnLmNtcG4oMCk8MCYmKEM9Zy5pYWRkKHRoaXMubSkpLEMuX2ZvcmNlUmVkKHRoaXMpfSxjZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5pbW9kKGIuX2ludm1w'@; put 'KHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShhdD1GLm5tZChhdCksdGhpcyl9LDU3Nzk4OmF0PT57ZnVuY3Rpb24gSWUoRixhZSl7aWYoIUYpdGhyb3cgbmV3IEVycm9yKGFlfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWF0LmV4cG9ydHM9SWUsSWUuZXF1YWw9ZnVuY3Rp'@; put 'b24oYWUseCxtKXtpZihhZSE9eCl0aHJvdyBuZXcgRXJyb3IobXx8IkFzc2VydGlvbiBmYWlsZWQ6ICIrYWUrIiAhPSAiK3gpfX0sNzgyNDc6KGF0LEllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRj1JZTtmdW5jdGlvbiB4KGxlKXtyZXR1cm4gMT09PWxlLmxlbmd0aD8iMCIrbGU6bGV9ZnVuY3Rp'@; put 'b24gbShsZSl7Zm9yKHZhciBNPSIiLE89MDtPPGxlLmxlbmd0aDtPKyspTSs9eChsZVtPXS50b1N0cmluZygxNikpO3JldHVybiBNfUYudG9BcnJheT1mdW5jdGlvbiBhZShsZSxNKXtpZihBcnJheS5pc0FycmF5KGxlKSlyZXR1cm4gbGUuc2xpY2UoKTtpZighbGUpcmV0dXJuW107dmFyIE89'@; put 'W107aWYoInN0cmluZyIhPXR5cGVvZiBsZSl7Zm9yKHZhciBSPTA7UjxsZS5sZW5ndGg7UisrKU9bUl09MHxsZVtSXTtyZXR1cm4gT31pZigiaGV4Ij09PU0pZm9yKChsZT1sZS5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCIiKSkubGVuZ3RoJTIhPTAmJihsZT0iMCIrbGUpLFI9MDtSPGxlLmxl'@; put 'bmd0aDtSKz0yKU8ucHVzaChwYXJzZUludChsZVtSXStsZVtSKzFdLDE2KSk7ZWxzZSBmb3IoUj0wO1I8bGUubGVuZ3RoO1IrKyl7dmFyIHo9bGUuY2hhckNvZGVBdChSKSxLPXo+PjgsST0yNTUmejtLP08ucHVzaChLLEkpOk8ucHVzaChJKX1yZXR1cm4gT30sRi56ZXJvMj14LEYudG9IZXg9'@; put 'bSxGLmVuY29kZT1mdW5jdGlvbihNLE8pe3JldHVybiJoZXgiPT09Tz9tKE0pOk19fSw4MzI3NDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImFmIix7bW9udGhzOiJKYW51YXJpZV9GZWJydWFyaWVfTWFhcnRfQXByaWxfTWVp'@; put 'X0p1bmllX0p1bGllX0F1Z3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01ydF9BcHJfTWVpX0p1bl9KdWxfQXVnX1NlcF9Pa3RfTm92X0RlcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU29uZGFnX01hYW5k'@; put 'YWdfRGluc2RhZ19Xb2Vuc2RhZ19Eb25kZXJkYWdfVnJ5ZGFnX1NhdGVyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvbl9NYWFfRGluX1dvZV9Eb25fVnJ5X1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTWFfRGlfV29fRG9fVnJfU2EiLnNwbGl0KCJfIiksbWVyaWRp'@; put 'ZW1QYXJzZTovdm18bm0vaSxpc1BNOmZ1bmN0aW9uKG0pe3JldHVybi9ebm0kL2kudGVzdChtKX0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXtyZXR1cm4gbTwxMj9NPyJ2bSI6IlZNIjpNPyJubSI6Ik5NIn0sbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoi'@; put 'REQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVmFuZGFnIG9tXSBMVCIsbmV4dERheToiW01ceGY0cmUgb21dIExUIixuZXh0V2VlazoiZGRkZCBbb21d'@; put 'IExUIixsYXN0RGF5OiJbR2lzdGVyIG9tXSBMVCIsbGFzdFdlZWs6IltMYWFzXSBkZGRkIFtvbV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9vciAlcyIscGFzdDoiJXMgZ2VsZWRlIixzOiInbiBwYWFyIHNla29uZGVzIixzczoiJWQgc2Vrb25kZXMiLG06Iidu'@; put 'IG1pbnV1dCIsbW06IiVkIG1pbnV0ZSIsaDoiJ24gdXVyIixoaDoiJWQgdXJlIixkOiInbiBkYWciLGRkOiIlZCBkYWUiLE06IiduIG1hYW5kIixNTToiJWQgbWFhbmRlIix5OiInbiBqYWFyIix5eToiJWQgamFhciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8s'@; put 'b3JkaW5hbDpmdW5jdGlvbihtKXtyZXR1cm4gbSsoMT09PW18fDg9PT1tfHxtPj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNjE4Njc6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9ZnVuY3Rpb24oUil7'@; put 'cmV0dXJuIDA9PT1SPzA6MT09PVI/MToyPT09Uj8yOlIlMTAwPj0zJiZSJTEwMDw9MTA/MzpSJTEwMD49MTE/NDo1fSxtPXtzOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFc'@; put 'dTA2MjkgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwNjI5IixbIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLCIlZCBc'@; put 'dTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLCIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiXSxtOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2'@; put 'MjkgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwNjI5IixbIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLCIl'@; put 'ZCBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLCIlZCBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiXSxoOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkgXHUwNjQ4'@; put 'XHUwNjI3XHUwNjJkXHUwNjJmXHUwNjI5IixbIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLCIlZCBcdTA2MzNcdTA2MjdcdTA2Mzlc'@; put 'dTA2MjkiLCIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiXSxkOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2NGFcdTA2NDhcdTA2NDUiLCJcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1MDY0YVx1MDY0OFx1MDY0NVx1MDYy'@; put 'N1x1MDY0NiIsIlx1MDY0YVx1MDY0OFx1MDY0NVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLCIlZCBcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGJcdTA2MjciLCIlZCBcdTA2NGFcdTA2NDhcdTA2NDUiXSxNOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1'@; put 'MDY0NiBcdTA2MzRcdTA2NDdcdTA2MzEiLCJcdTA2MzRcdTA2NDdcdTA2MzEgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1MDYzNFx1MDY0N1x1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYzNFx1MDY0N1x1MDYzMVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2'@; put 'MzEiLCIlZCBcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjciLCIlZCBcdTA2MzRcdTA2NDdcdTA2MzEiXSx5OlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MzlcdTA2MjdcdTA2NDUiLCJcdTA2MzlcdTA2MjdcdTA2NDUgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1'@; put 'MDYzOVx1MDYyN1x1MDY0NVx1MDYyN1x1MDY0NiIsIlx1MDYzOVx1MDYyN1x1MDY0NVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2MzlcdTA2NDhcdTA2MjdcdTA2NDUiLCIlZCBcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGJcdTA2MjciLCIlZCBcdTA2MzlcdTA2MjdcdTA2NDUiXX0sbGU9'@; put 'ZnVuY3Rpb24oUil7cmV0dXJuIGZ1bmN0aW9uKHosSyxJLGspe3ZhciBFPXgoeiksaj1tW1JdW3goeildO3JldHVybiAyPT09RSYmKGo9altLPzA6MV0pLGoucmVwbGFjZSgvJWQvaSx6KX19LE09WyJcdTA2MmNcdTA2MjdcdTA2NDZcdTA2NDFcdTA2NGEiLCJcdTA2NDFcdTA2NGFcdTA2NDFc'@; put 'dTA2MzFcdTA2NGEiLCJcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzMiLCJcdTA2MjNcdTA2NDFcdTA2MzFcdTA2NGFcdTA2NDQiLCJcdTA2NDVcdTA2MjdcdTA2NGEiLCJcdTA2MmNcdTA2NDhcdTA2MjdcdTA2NDYiLCJcdTA2MmNcdTA2NDhcdTA2NGFcdTA2NDRcdTA2NGFcdTA2MjkiLCJcdTA2'@; put 'MjNcdTA2NDhcdTA2MmEiLCJcdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2Mjhc'@; put 'dTA2MzEiXTthZS5kZWZpbmVMb2NhbGUoImFyLWR6Iix7bW9udGhzOk0sbW9udGhzU2hvcnQ6TSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRc'@; put 'dTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMz'@; put 'XHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9c'@; put 'dTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFy'@; put 'c2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJEL1x1MjAwZk0vXHUyMDBmWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTov'@; put 'XHUwNjM1fFx1MDY0NS8saXNQTTpmdW5jdGlvbihSKXtyZXR1cm4iXHUwNjQ1Ij09PVJ9LG1lcmlkaWVtOmZ1bmN0aW9uKFIseixLKXtyZXR1cm4gUjwxMj8iXHUwNjM1IjoiXHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5'@; put 'XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2NGJcdTA2MjcgXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRk'@; put 'IFtcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRk'@; put 'ZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2MjhcdTA2MzlcdTA2MmYgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczpsZSgicyIpLHNz'@; put 'OmxlKCJzIiksbTpsZSgibSIpLG1tOmxlKCJtIiksaDpsZSgiaCIpLGhoOmxlKCJoIiksZDpsZSgiZCIpLGRkOmxlKCJkIiksTTpsZSgiTSIpLE1NOmxlKCJNIikseTpsZSgieSIpLHl5OmxlKCJ5Iil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oUil7cmV0dXJuIFIucmVwbGFjZSgvLC9nLCJcdTA2'@; put 'MGMiKX0sd2Vlazp7ZG93OjAsZG95OjR9fSl9KEYoMTY2NzYpKX0sMTcwNzg6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJhci1rdyIse21vbnRoczoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYy'@; put 'OFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4XHUw'@; put 'NjMyX1x1MDYzYVx1MDYzNFx1MDYyYV9cdTA2MzRcdTA2MmFcdTA2NDZcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MmNcdTA2NDZcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiks'@; put 'bW9udGhzU2hvcnQ6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjRhXHUw'@; put 'NjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OFx1MDYzMl9cdTA2M2FcdTA2MzRcdTA2MmFfXHUwNjM0XHUwNjJhXHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDZc'@; put 'dTA2MjhcdTA2MzFfXHUwNjJmXHUwNjJjXHUwNjQ2XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJhXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1'@; put 'MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNc'@; put 'dTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjI3XHUwNjJkXHUwNjJmX1x1MDYyN1x1MDYyYVx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1'@; put 'MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJz'@; put 'ZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3'@; put 'XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0RGF5OiJbXHUwNjNhXHUwNjJmXHUwNjI3IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2Mzlc'@; put 'dTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3REYXk6IltcdTA2MjNcdTA2NDVcdTA2MzMgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYz'@; put 'OVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQxXHUwNjRhICVzIixwYXN0OiJcdTA2NDVcdTA2NDZcdTA2'@; put 'MzAgJXMiLHM6Ilx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsc3M6IiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsbToiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IixtbToiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIixoOiJcdTA2MzNcdTA2Mjdc'@; put 'dTA2MzlcdTA2MjkiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLGQ6Ilx1MDY0YVx1MDY0OFx1MDY0NSIsZGQ6IiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1MDY0NSIsTToiXHUwNjM0XHUwNjQ3XHUwNjMxIixNTToiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIix5'@; put 'OiJcdTA2MzNcdTA2NDZcdTA2MjkiLHl5OiIlZCBcdTA2MzNcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmEifSx3ZWVrOntkb3c6MCxkb3k6MTJ9fSl9KEYoMTY2NzYpKX0sNzc3NzY6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9ezE6IjEiLDI6IjIi'@; put 'LDM6IjMiLDQ6IjQiLDU6IjUiLDY6IjYiLDc6IjciLDg6IjgiLDk6IjkiLDA6IjAifSxtPWZ1bmN0aW9uKHope3JldHVybiAwPT09ej8wOjE9PT16PzE6Mj09PXo/Mjp6JTEwMD49MyYmeiUxMDA8PTEwPzM6eiUxMDA+PTExPzQ6NX0sbGU9e3M6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1'@; put 'XHUwNjQ2IFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjJiXHUwNjI3XHUw'@; put 'NjQ2XHUwNjRhXHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsIiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsIiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSJdLG06WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUw'@; put 'NjQ2IFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjJmXHUwNjQyXHUwNjRh'@; put 'XHUwNjQyXHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsIiVkIFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsIiVkIFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSJdLGg6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1'@; put 'XHUwNjQ2IFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXHUwNjRhXHUw'@; put 'NjQ2Il0sIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSJdLGQ6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDY0YVx1MDY0OFx1MDY0NSIsIlx1MDY0'@; put 'YVx1MDY0OFx1MDY0NSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjI3XHUwNjQ2IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1MDY0NSIsIiVkIFx1MDY0YVx1MDY0OFx1MDY0NVx1MDY0'@; put 'Ylx1MDYyNyIsIiVkIFx1MDY0YVx1MDY0OFx1MDY0NSJdLE06WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYzNFx1MDY0N1x1MDYzMSIsIlx1MDYzNFx1MDY0N1x1MDYzMSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3XHUw'@; put 'NjQ2IiwiXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIsIiVkIFx1MDYzNFx1MDY0N1x1MDYzMVx1MDYyNyIsIiVkIFx1MDYzNFx1MDY0N1x1MDYzMSJdLHk6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYz'@; put 'OVx1MDYyN1x1MDY0NSIsIlx1MDYzOVx1MDYyN1x1MDY0NSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjI3XHUwNjQ2IiwiXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDYzOVx1MDY0OFx1MDYyN1x1MDY0NSIs'@; put 'IiVkIFx1MDYzOVx1MDYyN1x1MDY0NVx1MDY0Ylx1MDYyNyIsIiVkIFx1MDYzOVx1MDYyN1x1MDY0NSJdfSxNPWZ1bmN0aW9uKHope3JldHVybiBmdW5jdGlvbihLLEksayxFKXt2YXIgaj1tKEspLFY9bGVbel1bbShLKV07cmV0dXJuIDI9PT1qJiYoVj1WW0k/MDoxXSksVi5yZXBsYWNlKC8l'@; put 'ZC9pLEspfX0sTz1bIlx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMSIsIlx1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDYzMyIsIlx1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NCIsIlx1MDY0NVx1MDYyN1x1MDY0YVx1'@; put 'MDY0OCIsIlx1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OCIsIlx1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OCIsIlx1MDYyM1x1MDYzYVx1MDYzM1x1MDYzN1x1MDYzMyIsIlx1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyM1x1MDY0M1x1MDYyYVx1'@; put 'MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdO2FlLmRlZmluZUxvY2FsZSgiYXItbHkiLHttb250aHM6Tyxtb250aHNTaG9ydDpPLHdlZWtkYXlzOiJcdTA2MjdcdTA2'@; put 'NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUw'@; put 'NjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0'@; put 'Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgi'@; put 'XyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIwMGZZWVlZ'@; put 'IixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKHope3JldHVybiJcdTA2NDUiPT09en0sbWVyaWRpZW06ZnVuY3Rpb24oeixLLEkp'@; put 'e3JldHVybiB6PDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYy'@; put 'Zlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUw'@; put 'NjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJM'@; put 'In0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOk0oInMiKSxzczpNKCJzIiksbTpNKCJtIiksbW06TSgibSIpLGg6TSgiaCIpLGhoOk0oImgiKSxkOk0oImQiKSxkZDpNKCJkIiksTTpNKCJNIiksTU06'@; put 'TSgiTSIpLHk6TSgieSIpLHl5Ok0oInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24oeil7cmV0dXJuIHoucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbih6KXtyZXR1cm4gei5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKEspe3JldHVybiB4W0tdfSkucmVwbGFjZSgvLC9n'@; put 'LCJcdTA2MGMiKX0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShGKDE2Njc2KSl9LDU2Nzg5OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiYXItbWEiLHttb250aHM6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2'@; put 'NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1'@; put 'MDY0OFx1MDYzMl9cdTA2M2FcdTA2MzRcdTA2MmFfXHUwNjM0XHUwNjJhXHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDZcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjJjXHUwNjQ2XHUwNjI4XHUwNjMxIi5zcGxp'@; put 'dCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1'@; put 'MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4'@; put 'XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJc'@; put 'dTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0'@; put 'XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyN1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1'@; put 'MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtk'@; put 'YXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToi'@; put 'W1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDYyNyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3'@; put 'XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2'@; put 'MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0MVx1MDY0YSAlcyIscGFzdDoiXHUwNjQ1XHUw'@; put 'NjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsbW06IiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsaDoiXHUwNjMz'@; put 'XHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUiLGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLE06Ilx1MDYzNFx1MDY0N1x1MDYzMSIsTU06IiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1'@; put 'MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNjg5NzpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD17MToiXHUw'@; put 'NjYxIiwyOiJcdTA2NjIiLDM6Ilx1MDY2MyIsNDoiXHUwNjY0Iiw1OiJcdTA2NjUiLDY6Ilx1MDY2NiIsNzoiXHUwNjY3Iiw4OiJcdTA2NjgiLDk6Ilx1MDY2OSIsMDoiXHUwNjYwIn0sbT17Ilx1MDY2MSI6IjEiLCJcdTA2NjIiOiIyIiwiXHUwNjYzIjoiMyIsIlx1MDY2NCI6IjQiLCJcdTA2'@; put 'NjUiOiI1IiwiXHUwNjY2IjoiNiIsIlx1MDY2NyI6IjciLCJcdTA2NjgiOiI4IiwiXHUwNjY5IjoiOSIsIlx1MDY2MCI6IjAifTthZS5kZWZpbmVMb2NhbGUoImFyLXNhIix7bW9udGhzOiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUw'@; put 'NjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhfXHUwNjIzXHUwNjNh'@; put 'XHUwNjMzXHUwNjM3XHUwNjMzX1x1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYz'@; put 'MSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1'@; put 'MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4X1x1MDYyM1x1MDYzYVx1MDYzM1x1MDYzN1x1MDYzM19cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4'@; put 'XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmJc'@; put 'dTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0'@; put 'XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1'@; put 'MDYyMV9cdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9c'@; put 'dTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQg'@; put 'TU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjM1fFx1MDY0NS8saXNQTTpmdW5jdGlvbihNKXtyZXR1cm4iXHUwNjQ1Ij09PU19LG1lcmlkaWVtOmZ1bmN0aW9uKE0sTyxSKXtyZXR1cm4gTTwxMj8iXHUwNjM1IjoiXHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2'@; put 'MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2MjcgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYz'@; put 'OVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUw'@; put 'NjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2NDFcdTA2NGEgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1'@; put 'MDYzMCAlcyIsczoiXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IixtOiJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLG1tOiIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLGg6Ilx1MDYzM1x1MDYy'@; put 'N1x1MDYzOVx1MDYyOSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsZDoiXHUwNjRhXHUwNjQ4XHUwNjQ1IixkZDoiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IixNOiJcdTA2MzRcdTA2NDdcdTA2MzEiLE1NOiIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2MzEi'@; put 'LHk6Ilx1MDYzM1x1MDY0Nlx1MDYyOSIseXk6IiVkIFx1MDYzM1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyYSJ9LHByZXBhcnNlOmZ1bmN0aW9uKE0pe3JldHVybiBNLnJlcGxhY2UoL1tcdTA2NjFcdTA2NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdTA2NjBd'@; put 'L2csZnVuY3Rpb24oTyl7cmV0dXJuIG1bT119KS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKE0pe3JldHVybiBNLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oTyl7cmV0dXJuIHhbT119KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MCxkb3k6'@; put 'Nn19KX0oRigxNjY3NikpfSw3MTU4NTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImFyLXRuIix7bW9udGhzOiJcdTA2MmNcdTA2MjdcdTA2NDZcdTA2NDFcdTA2NGFfXHUwNjQxXHUwNjRhXHUwNjQxXHUwNjMxXHUwNjRhX1x1'@; put 'MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2NDFcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDYyY1x1MDY0OFx1MDYyN1x1MDY0Nl9cdTA2MmNcdTA2NDhcdTA2NGFcdTA2NDRcdTA2NGFcdTA2MjlfXHUwNjIzXHUwNjQ4XHUwNjJhX1x1MDYzM1x1MDYy'@; put 'OFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUw'@; put 'NjJjXHUwNjI3XHUwNjQ2XHUwNjQxXHUwNjRhX1x1MDY0MVx1MDY0YVx1MDY0MVx1MDYzMVx1MDY0YV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjQxXHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MmNcdTA2NDhcdTA2MjdcdTA2NDZfXHUwNjJj'@; put 'XHUwNjQ4XHUwNjRhXHUwNjQ0XHUwNjRhXHUwNjI5X1x1MDYyM1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2'@; put 'MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJi'@; put 'XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYy'@; put 'YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1'@; put 'XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAs'@; put 'bG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2'@; put 'NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2MjcgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQi'@; put 'LG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBM'@; put 'VCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2NDFcdTA2NGEgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczoi'@; put 'XHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IixtOiJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLG1tOiIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLGg6Ilx1MDYzM1x1MDYyN1x1MDYzOVx1MDYy'@; put 'OSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsZDoiXHUwNjRhXHUwNjQ4XHUwNjQ1IixkZDoiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IixNOiJcdTA2MzRcdTA2NDdcdTA2MzEiLE1NOiIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2MzEiLHk6Ilx1MDYzM1x1'@; put 'MDY0Nlx1MDYyOSIseXk6IiVkIFx1MDYzM1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyYSJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDIyMDk3OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PXsxOiJcdTA2NjEiLDI6Ilx1MDY2MiIs'@; put 'MzoiXHUwNjYzIiw0OiJcdTA2NjQiLDU6Ilx1MDY2NSIsNjoiXHUwNjY2Iiw3OiJcdTA2NjciLDg6Ilx1MDY2OCIsOToiXHUwNjY5IiwwOiJcdTA2NjAifSxtPXsiXHUwNjYxIjoiMSIsIlx1MDY2MiI6IjIiLCJcdTA2NjMiOiIzIiwiXHUwNjY0IjoiNCIsIlx1MDY2NSI6IjUiLCJcdTA2NjYi'@; put 'OiI2IiwiXHUwNjY3IjoiNyIsIlx1MDY2OCI6IjgiLCJcdTA2NjkiOiI5IiwiXHUwNjYwIjoiMCJ9LGxlPWZ1bmN0aW9uKEspe3JldHVybiAwPT09Sz8wOjE9PT1LPzE6Mj09PUs/MjpLJTEwMD49MyYmSyUxMDA8PTEwPzM6SyUxMDA+PTExPzQ6NX0sTT17czpbIlx1MDYyM1x1MDY0Mlx1MDY0'@; put 'NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJc'@; put 'dTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBc'@; put 'dTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2'@; put 'NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0'@; put 'NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFc'@; put 'dTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5Il0sZDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1'@; put 'IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUw'@; put 'NjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUwNjQ3XHUwNjMxIFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFc'@; put 'dTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3IiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2'@; put 'NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3'@; put 'XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LE89ZnVuY3Rpb24oSyl7cmV0dXJuIGZ1bmN0aW9uKEksayxFLGope3ZhciBWPWxlKEkpLEI9TVtLXVtsZShJKV07cmV0dXJuIDI9PT1WJiYoQj1CW2s/MDoxXSksQi5y'@; put 'ZXBsYWNlKC8lZC9pLEkpfX0sUj1bIlx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMSIsIlx1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDYzMyIsIlx1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NCIsIlx1MDY0NVx1MDYy'@; put 'N1x1MDY0YVx1MDY0OCIsIlx1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OCIsIlx1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OCIsIlx1MDYyM1x1MDYzYVx1MDYzM1x1MDYzN1x1MDYzMyIsIlx1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyM1x1MDY0'@; put 'M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdO2FlLmRlZmluZUxvY2FsZSgiYXIiLHttb250aHM6Uixtb250aHNTaG9ydDpSLHdlZWtkYXlzOiJcdTA2'@; put 'MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2'@; put 'MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYy'@; put 'Ylx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5z'@; put 'cGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIw'@; put 'MGZZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKEspe3JldHVybiJcdTA2NDUiPT09S30sbWVyaWRpZW06ZnVuY3Rpb24o'@; put 'SyxJLGspe3JldHVybiBLPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYz'@; put 'YVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5'@; put 'OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVF'@; put 'bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOk8oInMiKSxzczpPKCJzIiksbTpPKCJtIiksbW06TygibSIpLGg6TygiaCIpLGhoOk8oImgiKSxkOk8oImQiKSxkZDpPKCJkIiksTTpPKCJN'@; put 'IiksTU06TygiTSIpLHk6TygieSIpLHl5Ok8oInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24oSyl7cmV0dXJuIEsucmVwbGFjZSgvW1x1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2Nlx1MDY2N1x1MDY2OFx1MDY2OVx1MDY2MF0vZyxmdW5jdGlvbihJKXtyZXR1cm4gbVtJXX0pLnJl'@; put 'cGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oSyl7cmV0dXJuIEsucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihJKXtyZXR1cm4geFtJXX0pLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2Rvdzo2LGRveToxMn19KX0oRigxNjY3NikpfSwxNTYxMTpmdW5jdGlv'@; put 'bihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD17MToiLWluY2kiLDU6Ii1pbmNpIiw4OiItaW5jaSIsNzA6Ii1pbmNpIiw4MDoiLWluY2kiLDI6Ii1uY2kiLDc6Ii1uY2kiLDIwOiItbmNpIiw1MDoiLW5jaSIsMzoiLVx4ZmNuY1x4ZmMiLDQ6Ii1ceGZjbmNceGZj'@; put 'IiwxMDA6Ii1ceGZjbmNceGZjIiw2OiItbmNcdTAxMzEiLDk6Ii11bmN1IiwxMDoiLXVuY3UiLDMwOiItdW5jdSIsNjA6Ii1cdTAxMzFuY1x1MDEzMSIsOTA6Ii1cdTAxMzFuY1x1MDEzMSJ9O2FlLmRlZmluZUxvY2FsZSgiYXoiLHttb250aHM6InlhbnZhcl9mZXZyYWxfbWFydF9hcHJlbF9t'@; put 'YXlfaXl1bl9peXVsX2F2cXVzdF9zZW50eWFicl9va3R5YWJyX25veWFicl9kZWthYnIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Inlhbl9mZXZfbWFyX2Fwcl9tYXlfaXluX2l5bF9hdnFfc2VuX29rdF9ub3lfZGVrIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJCYXphcl9CYXphciBlcnRcdTAy'@; put 'NTlzaV9ceGM3XHUwMjU5clx1MDE1Zlx1MDI1OW5iXHUwMjU5IGF4XHUwMTVmYW1cdTAxMzFfXHhjN1x1MDI1OXJcdTAxNWZcdTAyNTluYlx1MDI1OV9DXHhmY21cdTAyNTkgYXhcdTAxNWZhbVx1MDEzMV9DXHhmY21cdTAyNTlfXHUwMTVlXHUwMjU5bmJcdTAyNTkiLnNwbGl0KCJfIiksd2Vl'@; put 'a2RheXNTaG9ydDoiQmF6X0J6RV9ceGM3QXhfXHhjN1x1MDI1OXJfQ0F4X0NceGZjbV9cdTAxNWVcdTAyNTluIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJCel9CRV9ceGM3QV9ceGM3XHUwMjU5X0NBX0NceGZjX1x1MDE1ZVx1MDI1OSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6'@; put 'ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYnVnXHhmY24gc2Fh'@; put 'dF0gTFQiLG5leHREYXk6IltzYWJhaCBzYWF0XSBMVCIsbmV4dFdlZWs6IltnXHUwMjU5bFx1MDI1OW4gaFx1MDI1OWZ0XHUwMjU5XSBkZGRkIFtzYWF0XSBMVCIsbGFzdERheToiW2RceGZjblx1MDI1OW5dIExUIixsYXN0V2VlazoiW2tlXHhlN1x1MDI1OW4gaFx1MDI1OWZ0XHUwMjU5XSBk'@; put 'ZGRkIFtzYWF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgc29ucmEiLHBhc3Q6IiVzIFx1MDI1OXZ2XHUwMjU5bCIsczoiYmlyIG5lXHhlN1x1MDI1OSBzYW5peVx1MDI1OSIsc3M6IiVkIHNhbml5XHUwMjU5IixtOiJiaXIgZFx1MDI1OXFpcVx1MDI1OSIs'@; put 'bW06IiVkIGRcdTAyNTlxaXFcdTAyNTkiLGg6ImJpciBzYWF0IixoaDoiJWQgc2FhdCIsZDoiYmlyIGdceGZjbiIsZGQ6IiVkIGdceGZjbiIsTToiYmlyIGF5IixNTToiJWQgYXkiLHk6ImJpciBpbCIseXk6IiVkIGlsIn0sbWVyaWRpZW1QYXJzZTovZ2VjXHUwMjU5fHNcdTAyNTloXHUwMjU5'@; put 'cnxnXHhmY25kXHhmY3p8YXhcdTAxNWZhbS8saXNQTTpmdW5jdGlvbihsZSl7cmV0dXJuL14oZ1x4ZmNuZFx4ZmN6fGF4XHUwMTVmYW0pJC8udGVzdChsZSl9LG1lcmlkaWVtOmZ1bmN0aW9uKGxlLE0sTyl7cmV0dXJuIGxlPDQ/ImdlY1x1MDI1OSI6bGU8MTI/InNcdTAyNTloXHUwMjU5ciI6'@; put 'bGU8MTc/ImdceGZjbmRceGZjeiI6ImF4XHUwMTVmYW0ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTAxMzFuY1x1MDEzMXxpbmNpfG5jaXxceGZjbmNceGZjfG5jXHUwMTMxfHVuY3UpLyxvcmRpbmFsOmZ1bmN0aW9uKGxlKXtpZigwPT09bGUpcmV0dXJuIGxlKyItXHUw'@; put 'MTMxbmNcdTAxMzEiO3ZhciBNPWxlJTEwO3JldHVybiBsZSsoeFtNXXx8eFtsZSUxMDAtTV18fHhbbGU+PTEwMD8xMDA6bnVsbF0pfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oRigxNjY3NikpfSw2MjQ1OTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjtmdW5j'@; put 'dGlvbiBtKE0sTyxSKXtyZXR1cm4ibSI9PT1SP08/Ilx1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQzMCI6Ilx1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQ0MyI6ImgiPT09Uj9PPyJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0'@; put 'M2RcdTA0MzAiOiJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0NDMiOk0rIiAiK2Z1bmN0aW9uIHgoTSxPKXt2YXIgUj1NLnNwbGl0KCJfIik7cmV0dXJuIE8lMTA9PTEmJk8lMTAwIT0xMT9SWzBdOk8lMTA+PTImJk8lMTA8PTQmJihPJTEwMDwxMHx8TyUxMDA+PTIw'@; put 'KT9SWzFdOlJbMl19KHtzczpPPyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCI6Ilx1MDQ0MVx1MDQzNVx1MDQzYVx1'@; put 'MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0M19cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NGJfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtbTpPPyJcdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0MzBfXHUwNDQ1XHUwNDMy'@; put 'XHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZCI6Ilx1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQ0M19cdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0NGJfXHUwNDQ1XHUw'@; put 'NDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkIixoaDpPPyJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0MzBfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZCI6Ilx1MDQz'@; put 'M1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQ0M19cdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0NGJfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkIixkZDoiXHUwNDM0XHUwNDM3XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNFx1MDQz'@; put 'ZFx1MDQ1Nl9cdTA0MzRcdTA0MzdcdTA0NTFcdTA0M2QiLE1NOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZfXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDRiX1x1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQzMFx1MDQ1ZSIseXk6Ilx1MDQzM1x1MDQz'@; put 'ZVx1MDQzNF9cdTA0MzNcdTA0MzBcdTA0MzRcdTA0NGJfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDNlXHUwNDVlIn1bUl0sK00pfWFlLmRlZmluZUxvY2FsZSgiYmUiLHttb250aHM6e2Zvcm1hdDoiXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM0XHUwNDM3XHUwNDM1XHUwNDNkXHUwNDRmX1x1MDQz'@; put 'Ylx1MDQ0ZVx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQzMF9cdTA0NDFcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzJcdTA0NTZcdTA0M2FcdTA0MzBfXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDMwXHUwNDMyXHUwNDU2XHUwNDNhXHUwNDMwX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ1ZVx1MDQz'@; put 'ZFx1MDQ0Zl9cdTA0NDdcdTA0NGRcdTA0NDBcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGZfXHUwNDNiXHUwNDU2XHUwNDNmXHUwNDM1XHUwNDNkXHUwNDRmX1x1MDQzNlx1MDQzZFx1MDQ1Nlx1MDQ1ZVx1MDQzZFx1MDQ0Zl9cdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M2RcdTA0'@; put 'NGZfXHUwNDNhXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDU2XHUwNDNhXHUwNDMwX1x1MDQzYlx1MDQ1Nlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzZlx1MDQzMFx1MDQzNFx1MDQzMF9cdTA0NDFcdTA0M2RcdTA0MzVcdTA0MzZcdTA0M2RcdTA0NGYiLnNw'@; put 'bGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM0XHUwNDM3XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQ0Yl9cdTA0NDFcdTA0MzBcdTA0M2FcdTA0MzBcdTA0MzJcdTA0NTZcdTA0M2FfXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQxXHUw'@; put 'NDMwXHUwNDMyXHUwNDU2XHUwNDNhX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0NDdcdTA0NGRcdTA0NDBcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNiXHUwNDU2XHUwNDNmXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNlx1MDQzZFx1MDQ1Nlx1'@; put 'MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNhXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDRiXHUwNDQ3XHUwNDNkXHUwNDU2XHUwNDNhX1x1MDQzYlx1MDQ1Nlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1'@; put 'MDQzZlx1MDQzMFx1MDQzNF9cdTA0NDFcdTA0M2RcdTA0MzVcdTA0MzZcdTA0MzBcdTA0M2RcdTA0NGMiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0OiJcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzRfXHUwNDNiXHUwNDRlXHUwNDQyX1x1MDQ0MVx1MDQzMFx1MDQzYV9cdTA0M2FcdTA0NDBcdTA0'@; put 'MzBcdTA0NDFfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDMyX1x1MDQ0N1x1MDQ0ZFx1MDQ0MFx1MDQzMl9cdTA0M2JcdTA0NTZcdTA0M2ZfXHUwNDM2XHUwNDNkXHUwNDU2XHUwNDMyX1x1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0M2FcdTA0MzBcdTA0NDFcdTA0NDJfXHUwNDNiXHUwNDU2XHUwNDQx'@; put 'XHUwNDQyX1x1MDQ0MVx1MDQzZFx1MDQzNVx1MDQzNiIuc3BsaXQoIl8iKSx3ZWVrZGF5czp7Zm9ybWF0OiJcdTA0M2RcdTA0NGZcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2JcdTA0NGVfXHUwNDNmXHUwNDMwXHUwNDNkXHUwNDRmXHUwNDM0XHUwNDM3XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDNh'@; put 'X1x1MDQzMFx1MDQ1ZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzMFx1MDQzYV9cdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzRcdTA0NDNfXHUwNDQ3XHUwNDMwXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQwX1x1MDQzZlx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQ1Nlx1MDQ0Nlx1MDQ0M19cdTA0'@; put 'NDFcdTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJcdTA0NDMiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNDNkXHUwNDRmXHUwNDM0XHUwNDM3XHUwNDM1XHUwNDNiXHUwNDRmX1x1MDQzZlx1MDQzMFx1MDQzZFx1MDQ0Zlx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzYlx1MDQzMFx1MDQzYV9cdTA0'@; put 'MzBcdTA0NWVcdTA0NDJcdTA0M2VcdTA0NDBcdTA0MzBcdTA0M2FfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzMFx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0NTZcdTA0NDZcdTA0MzBfXHUwNDQxXHUw'@; put 'NDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9cWyA/W1x1MDQyM1x1MDQ0M1x1MDQ1ZV0gPyg/Olx1MDQzY1x1MDQ1Nlx1MDQzZFx1MDQ0M1x1MDQzYlx1MDQ0M1x1MDQ0ZXxcdTA0M2RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0M2ZcdTA0M2Rc'@; put 'dTA0NDNcdTA0NGUpPyA/XF0gP2RkZGQvfSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzRfXHUwNDNmXHUwNDNkX1x1MDQzMFx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQ2X1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzZFx1'@; put 'MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMwXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDZfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZ'@; put 'WVkgXHUwNDMzLiIsTExMOiJEIE1NTU0gWVlZWSBcdTA0MzMuLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgXHUwNDMzLiwgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQyMVx1MDQ1MVx1MDQzZFx1MDQzZFx1MDQ0ZiBcdTA0NWVdIExUIixuZXh0RGF5OiJbXHUwNDE3'@; put 'XHUwNDMwXHUwNDVlXHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQ1ZV0gTFQiLGxhc3REYXk6IltcdTA0MjNcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzAgXHUwNDVlXSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW1x1MDQyM10gZGRkZCBbXHUwNDVlXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0'@; put 'aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpjYXNlIDM6Y2FzZSA1OmNhc2UgNjpyZXR1cm4iW1x1MDQyMyBcdTA0M2NcdTA0NTZcdTA0M2RcdTA0NDNcdTA0M2JcdTA0NDNcdTA0NGVdIGRkZGQgW1x1MDQ1ZV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiJbXHUwNDIz'@; put 'IFx1MDQzY1x1MDQ1Nlx1MDQzZFx1MDQ0M1x1MDQzYlx1MDQ0Yl0gZGRkZCBbXHUwNDVlXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzcgJXMiLHBhc3Q6IiVzIFx1MDQ0Mlx1MDQzMFx1MDQzY1x1MDQ0MyIsczoiXHUw'@; put 'NDNkXHUwNDM1XHUwNDNhXHUwNDMwXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDU2IFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbSxtbTptLGg6bSxoaDptLGQ6Ilx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0YyIsZGQ6bSxNOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0'@; put 'NGZcdTA0NDYiLE1NOm0seToiXHUwNDMzXHUwNDNlXHUwNDM0Iix5eTptfSxtZXJpZGllbVBhcnNlOi9cdTA0M2RcdTA0M2VcdTA0NDdcdTA0NGJ8XHUwNDQwXHUwNDMwXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDRifFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzBc'@; put 'dTA0NDBcdTA0MzAvLGlzUE06ZnVuY3Rpb24oTSl7cmV0dXJuL14oXHUwNDM0XHUwNDNkXHUwNDRmfFx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0MFx1MDQzMCkkLy50ZXN0KE0pfSxtZXJpZGllbTpmdW5jdGlvbihNLE8sUil7cmV0dXJuIE08ND8iXHUwNDNkXHUwNDNlXHUwNDQ3XHUw'@; put 'NDRiIjpNPDEyPyJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0NTZcdTA0NDZcdTA0NGIiOk08MTc/Ilx1MDQzNFx1MDQzZFx1MDQ0ZiI6Ilx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ1NnxcdTA0NGJ8XHUw'@; put 'NDMzXHUwNDMwKS8sb3JkaW5hbDpmdW5jdGlvbihNLE8pe3N3aXRjaChPKXtjYXNlIk0iOmNhc2UiZCI6Y2FzZSJEREQiOmNhc2UidyI6Y2FzZSJXIjpyZXR1cm4gTSUxMCE9MiYmTSUxMCE9M3x8TSUxMDA9PTEyfHxNJTEwMD09MTM/TSsiLVx1MDQ0YiI6TSsiLVx1MDQ1NiI7Y2FzZSJEIjpy'@; put 'ZXR1cm4gTSsiLVx1MDQzM1x1MDQzMCI7ZGVmYXVsdDpyZXR1cm4gTX19LHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDkxODI1OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiYmciLHttb250aHM6Ilx1MDQ0Zlx1'@; put 'MDQzZFx1MDQ0M1x1MDQzMFx1MDQ0MFx1MDQzOF9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0NDNcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDRlXHUwNDNk'@; put 'XHUwNDM4X1x1MDQ0ZVx1MDQzYlx1MDQzOF9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNmXHUwNDQyXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQz'@; put 'OF9cdTA0M2RcdTA0M2VcdTA0MzVcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0NDNfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1'@; put 'MDQzMFx1MDQ0MF9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQ0ZVx1MDQzZFx1MDQzOF9cdTA0NGVcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQzNVx1MDQzZl9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDM1X1x1'@; put 'MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDRmX1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQzYV9cdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0'@; put 'M2RcdTA0MzhcdTA0M2FfXHUwNDQxXHUwNDQwXHUwNDRmXHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQ0YVx1MDQ0MFx1MDQ0Mlx1MDQ0YVx1MDQzYV9cdTA0M2ZcdTA0MzVcdTA0NDJcdTA0NGFcdTA0M2FfXHUwNDQxXHUwNDRhXHUwNDMxXHUwNDNlXHUwNDQyXHUw'@; put 'NDMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQzZFx1MDQzNVx1MDQzNF9cdTA0M2ZcdTA0M2VcdTA0M2RfXHUwNDMyXHUwNDQyXHUwNDNlX1x1MDQ0MVx1MDQ0MFx1MDQ0Zl9cdTA0NDdcdTA0MzVcdTA0NDJfXHUwNDNmXHUwNDM1XHUwNDQyX1x1MDQ0MVx1MDQ0YVx1MDQzMSIu'@; put 'c3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNz'@; put 'IixMOiJELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MTRcdTA0M2RcdTA0MzVcdTA0NDEgXHUwNDMyXSBMVCIsbmV4dERheToiW1x1MDQyM1x1MDQ0'@; put 'Mlx1MDQ0MFx1MDQzNSBcdTA0MzJdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNDMyXSBMVCIsbGFzdERheToiW1x1MDQxMlx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMCBcdTA0MzJdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2FzZSAzOmNhc2Ug'@; put 'NjpyZXR1cm4iW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQzMFx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQzMF0gZGRkZCBbXHUwNDMyXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbXHUwNDFjXHUwNDM4XHUwNDNkXHUwNDMwXHUwNDNiXHUwNDM4XHUwNDRmXSBkZGRkIFtc'@; put 'dTA0MzJdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNCAlcyIscGFzdDoiXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM4ICVzIixzOiJcdTA0M2RcdTA0NGZcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2FcdTA0M2Ug'@; put 'XHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4IixzczoiJWQgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4IixtOiJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0'@; put 'NDNcdTA0NDJcdTA0MzgiLGg6Ilx1MDQ0N1x1MDQzMFx1MDQ0MSIsaGg6IiVkIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMCIsZDoiXHUwNDM0XHUwNDM1XHUwNDNkIixkZDoiJWQgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDMwIix3OiJcdTA0NDFcdTA0MzVcdTA0MzRcdTA0M2NcdTA0MzhcdTA0'@; put 'NDZcdTA0MzAiLHd3OiIlZCBcdTA0NDFcdTA0MzVcdTA0MzRcdTA0M2NcdTA0MzhcdTA0NDZcdTA0MzgiLE06Ilx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0NiIsTU06IiVkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzMCIseToiXHUwNDMzXHUwNDNlXHUwNDM0XHUw'@; put 'NDM4XHUwNDNkXHUwNDMwIix5eToiJWQgXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM4In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwNDM1XHUwNDMyfFx1MDQzNVx1MDQzZHxcdTA0NDJcdTA0Mzh8XHUwNDMyXHUwNDM4fFx1MDQ0MFx1MDQzOHxcdTA0'@; put 'M2NcdTA0MzgpLyxvcmRpbmFsOmZ1bmN0aW9uKG0pe3ZhciBsZT1tJTEwLE09bSUxMDA7cmV0dXJuIDA9PT1tP20rIi1cdTA0MzVcdTA0MzIiOjA9PT1NP20rIi1cdTA0MzVcdTA0M2QiOk0+MTAmJk08MjA/bSsiLVx1MDQ0Mlx1MDQzOCI6MT09PWxlP20rIi1cdTA0MzJcdTA0MzgiOjI9PT1s'@; put 'ZT9tKyItXHUwNDQwXHUwNDM4Ijo3PT09bGV8fDg9PT1sZT9tKyItXHUwNDNjXHUwNDM4IjptKyItXHUwNDQyXHUwNDM4In0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sNzU5MTg6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5l'@; put 'TG9jYWxlKCJibSIse21vbnRoczoiWmFud3V5ZWthbG9fRmV3dXJ1eWVrYWxvX01hcmlzaWthbG9fQXdpcmlsaWthbG9fTVx1MDI1YmthbG9fWnV3XHUwMjVibmthbG9fWnVsdXlla2Fsb19VdGlrYWxvX1NcdTAyNWJ0YW5idXJ1a2Fsb19cdTAyNTRrdXRcdTAyNTRidXJ1a2Fsb19Ob3dhbmJ1'@; put 'cnVrYWxvX0Rlc2FuYnVydWthbG8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilphbl9GZXdfTWFyX0F3aV9NXHUwMjViX1p1d19adWxfVXRpX1NcdTAyNWJ0X1x1MDI1NGt1X05vd19EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IkthcmlfTnRcdTAyNWJuXHUwMjVibl9UYXJhdGFfQXJhYmFf'@; put 'QWxhbWlzYV9KdW1hX1NpYmlyaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJLYXJfTnRcdTAyNWJfVGFyX0FyYV9BbGFfSnVtX1NpYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiS2FfTnRfVGFfQXJfQWxfSnVfU2kiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIs'@; put 'TFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6Ik1NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWSIsTExMOiJNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2xcdTAyNWJyXHUwMjViXSBISDptbSIsTExMTDoiZGRkZCBNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2xcdTAyNWJyXHUwMjVi'@; put 'XSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQmkgbFx1MDI1YnJcdTAyNWJdIExUIixuZXh0RGF5OiJbU2luaSBsXHUwMjViclx1MDI1Yl0gTFQiLG5leHRXZWVrOiJkZGRkIFtkb24gbFx1MDI1YnJcdTAyNWJdIExUIixsYXN0RGF5OiJbS3VudSBsXHUwMjViclx1MDI1Yl0gTFQiLGxh'@; put 'c3RXZWVrOiJkZGRkIFt0XHUwMjVibVx1MDI1Ym5lbiBsXHUwMjViclx1MDI1Yl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGtcdTAyNTRuXHUwMjU0IixwYXN0OiJhIGJcdTAyNWIgJXMgYlx1MDI1NCIsczoic2FuZ2EgZGFtYSBkYW1hIixzczoic2Vrb25k'@; put 'aSAlZCIsbToibWluaXRpIGtlbGVuIixtbToibWluaXRpICVkIixoOiJsXHUwMjViclx1MDI1YiBrZWxlbiIsaGg6ImxcdTAyNWJyXHUwMjViICVkIixkOiJ0aWxlIGtlbGVuIixkZDoidGlsZSAlZCIsTToia2FsbyBrZWxlbiIsTU06ImthbG8gJWQiLHk6InNhbiBrZWxlbiIseXk6InNhbiAl'@; put 'ZCJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDQ5NjgzOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PXsxOiJcdTA5ZTciLDI6Ilx1MDllOCIsMzoiXHUwOWU5Iiw0OiJcdTA5ZWEiLDU6Ilx1MDllYiIsNjoiXHUwOWVjIiw3OiJc'@; put 'dTA5ZWQiLDg6Ilx1MDllZSIsOToiXHUwOWVmIiwwOiJcdTA5ZTYifSxtPXsiXHUwOWU3IjoiMSIsIlx1MDllOCI6IjIiLCJcdTA5ZTkiOiIzIiwiXHUwOWVhIjoiNCIsIlx1MDllYiI6IjUiLCJcdTA5ZWMiOiI2IiwiXHUwOWVkIjoiNyIsIlx1MDllZSI6IjgiLCJcdTA5ZWYiOiI5IiwiXHUw'@; put 'OWU2IjoiMCJ9O2FlLmRlZmluZUxvY2FsZSgiYm4tYmQiLHttb250aHM6Ilx1MDk5Y1x1MDliZVx1MDlhOFx1MDljMVx1MDlkZlx1MDliZVx1MDliMFx1MDliZl9cdTA5YWJcdTA5YzdcdTA5YWNcdTA5Y2RcdTA5YjBcdTA5YzFcdTA5ZGZcdTA5YmVcdTA5YjBcdTA5YmZfXHUwOWFlXHUwOWJl'@; put 'XHUwOWIwXHUwOWNkXHUwOTlhX1x1MDk4Zlx1MDlhYVx1MDljZFx1MDliMFx1MDliZlx1MDliMl9cdTA5YWVcdTA5YzdfXHUwOTljXHUwOWMxXHUwOWE4X1x1MDk5Y1x1MDljMVx1MDliMlx1MDliZVx1MDk4N19cdTA5ODZcdTA5OTdcdTA5YjhcdTA5Y2RcdTA5OWZfXHUwOWI4XHUwOWM3XHUw'@; put 'OWFhXHUwOWNkXHUwOTlmXHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDk4NVx1MDk5NVx1MDljZFx1MDk5Zlx1MDljYlx1MDlhY1x1MDliMF9cdTA5YThcdTA5YWRcdTA5YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjBfXHUwOWExXHUwOWJmXHUwOWI4XHUwOWM3XHUwOWFlXHUw'@; put 'OWNkXHUwOWFjXHUwOWIwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA5OWNcdTA5YmVcdTA5YThcdTA5YzFfXHUwOWFiXHUwOWM3XHUwOWFjXHUwOWNkXHUwOWIwXHUwOWMxX1x1MDlhZVx1MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZc'@; put 'dTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5YjJcdTA5YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUwOWI4XHUwOWNkXHUwOTlmX1x1MDliOFx1MDljN1x1MDlhYVx1MDljZFx1MDk5Zl9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2JfXHUw'@; put 'OWE4XHUwOWFkXHUwOWM3X1x1MDlhMVx1MDliZlx1MDliOFx1MDljNyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwOWIwXHUwOWFjXHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliOFx1MDljYlx1MDlhZVx1MDlhY1x1MDliZVx1MDliMF9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5'@; put 'YjJcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFjXHUwOWMxXHUwOWE3XHUwOWFjXHUwOWJlXHUwOWIwX1x1MDlhY1x1MDljM1x1MDliOVx1MDliOFx1MDljZFx1MDlhYVx1MDlhNFx1MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBcdTA5YWNcdTA5'@; put 'YmVcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDliMFx1MDlhY1x1MDliZl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5'@; put 'YWNcdTA5YzNcdTA5YjlcdTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOWIwXHUwOWFjXHUwOWJmX1x1MDliOFx1MDljYlx1MDlhZV9cdTA5YWVc'@; put 'dTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJfXHUwOWFjXHUwOWMxXHUwOWE3X1x1MDlhY1x1MDljM1x1MDliOV9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDliOFx1MDlhZVx1'@; put 'MDlkZiIsTFRTOiJBIGg6bW06c3MgXHUwOWI4XHUwOWFlXHUwOWRmIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUwOWFlXHUw'@; put 'OWRmIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5ODZcdTA5OWNdIExUIixuZXh0RGF5OiJbXHUwOTg2XHUwOTk3XHUwOWJlXHUwOWFlXHUwOWMwXHUwOTk1XHUwOWJlXHUwOWIyXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTk3XHUwOWE0XHUwOTk1XHUwOWJlXHUw'@; put 'OWIyXSBMVCIsbGFzdFdlZWs6IltcdTA5OTdcdTA5YTRdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA5YWFcdTA5YjBcdTA5YzciLHBhc3Q6IiVzIFx1MDk4Nlx1MDk5N1x1MDljNyIsczoiXHUwOTk1XHUwOWRmXHUwOWM3XHUwOTk1IFx1MDli'@; put 'OFx1MDljN1x1MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1MDlhMSIsc3M6IiVkIFx1MDliOFx1MDljN1x1MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1MDlhMSIsbToiXHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZlx1MDlhOFx1MDliZlx1MDk5ZiIsbW06IiVkIFx1MDlhZVx1MDliZlx1MDlhOFx1'@; put 'MDliZlx1MDk5ZiIsaDoiXHUwOThmXHUwOTk1IFx1MDk5OFx1MDlhOFx1MDljZFx1MDk5Zlx1MDliZSIsaGg6IiVkIFx1MDk5OFx1MDlhOFx1MDljZFx1MDk5Zlx1MDliZSIsZDoiXHUwOThmXHUwOTk1IFx1MDlhNlx1MDliZlx1MDlhOCIsZGQ6IiVkIFx1MDlhNlx1MDliZlx1MDlhOCIsTToi'@; put 'XHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZVx1MDliOCIsTU06IiVkIFx1MDlhZVx1MDliZVx1MDliOCIseToiXHUwOThmXHUwOTk1IFx1MDlhY1x1MDk5Ylx1MDliMCIseXk6IiVkIFx1MDlhY1x1MDk5Ylx1MDliMCJ9LHByZXBhcnNlOmZ1bmN0aW9uKE0pe3JldHVybiBNLnJlcGxhY2UoL1tc'@; put 'dTA5ZTdcdTA5ZThcdTA5ZTlcdTA5ZWFcdTA5ZWJcdTA5ZWNcdTA5ZWRcdTA5ZWVcdTA5ZWZcdTA5ZTZdL2csZnVuY3Rpb24oTyl7cmV0dXJuIG1bT119KX0scG9zdGZvcm1hdDpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKE8pe3JldHVybiB4W09dfSl9LG1l'@; put 'cmlkaWVtUGFyc2U6L1x1MDliMFx1MDliZVx1MDlhNHxcdTA5YWRcdTA5Y2JcdTA5YjB8XHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyfFx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMHxcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjJ8XHUwOWI4XHUwOWE4XHUwOWNkXHUwOWE3XHUw'@; put 'OWNkXHUwOWFmXHUwOWJlfFx1MDliMFx1MDliZVx1MDlhNC8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKE0sTyl7cmV0dXJuIDEyPT09TSYmKE09MCksIlx1MDliMFx1MDliZVx1MDlhNCI9PT1PP008ND9NOk0rMTI6Ilx1MDlhZFx1MDljYlx1MDliMCI9PT1PfHwiXHUwOWI4XHUwOTk1XHUwOWJl'@; put 'XHUwOWIyIj09PU8/TToiXHUwOWE2XHUwOWMxXHUwOWFhXHUwOWMxXHUwOWIwIj09PU8/TT49Mz9NOk0rMTI6Ilx1MDlhY1x1MDliZlx1MDk5NVx1MDliZVx1MDliMiI9PT1PfHwiXHUwOWI4XHUwOWE4XHUwOWNkXHUwOWE3XHUwOWNkXHUwOWFmXHUwOWJlIj09PU8/TSsxMjp2b2lkIDB9LG1l'@; put 'cmlkaWVtOmZ1bmN0aW9uKE0sTyxSKXtyZXR1cm4gTTw0PyJcdTA5YjBcdTA5YmVcdTA5YTQiOk08Nj8iXHUwOWFkXHUwOWNiXHUwOWIwIjpNPDEyPyJcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjIiOk08MTU/Ilx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI6TTwxOD8iXHUwOWFjXHUw'@; put 'OWJmXHUwOTk1XHUwOWJlXHUwOWIyIjpNPDIwPyJcdTA5YjhcdTA5YThcdTA5Y2RcdTA5YTdcdTA5Y2RcdTA5YWZcdTA5YmUiOiJcdTA5YjBcdTA5YmVcdTA5YTQifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oRigxNjY3NikpfSwzNDA2NTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUp'@; put 'eyJ1c2Ugc3RyaWN0Ijt2YXIgeD17MToiXHUwOWU3IiwyOiJcdTA5ZTgiLDM6Ilx1MDllOSIsNDoiXHUwOWVhIiw1OiJcdTA5ZWIiLDY6Ilx1MDllYyIsNzoiXHUwOWVkIiw4OiJcdTA5ZWUiLDk6Ilx1MDllZiIsMDoiXHUwOWU2In0sbT17Ilx1MDllNyI6IjEiLCJcdTA5ZTgiOiIyIiwiXHUw'@; put 'OWU5IjoiMyIsIlx1MDllYSI6IjQiLCJcdTA5ZWIiOiI1IiwiXHUwOWVjIjoiNiIsIlx1MDllZCI6IjciLCJcdTA5ZWUiOiI4IiwiXHUwOWVmIjoiOSIsIlx1MDllNiI6IjAifTthZS5kZWZpbmVMb2NhbGUoImJuIix7bW9udGhzOiJcdTA5OWNcdTA5YmVcdTA5YThcdTA5YzFcdTA5ZGZcdTA5'@; put 'YmVcdTA5YjBcdTA5YmZfXHUwOWFiXHUwOWM3XHUwOWFjXHUwOWNkXHUwOWIwXHUwOWMxXHUwOWRmXHUwOWJlXHUwOWIwXHUwOWJmX1x1MDlhZVx1MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZcdTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1'@; put 'MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5YjJcdTA5YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUwOWI4XHUwOWNkXHUwOTlmX1x1MDliOFx1MDljN1x1MDlhYVx1MDljZFx1MDk5Zlx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMF9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2Jc'@; put 'dTA5YWNcdTA5YjBfXHUwOWE4XHUwOWFkXHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDlhMVx1MDliZlx1MDliOFx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTljXHUwOWJlXHUwOWE4XHUwOWMxX1x1MDlhYlx1MDlj'@; put 'N1x1MDlhY1x1MDljZFx1MDliMFx1MDljMV9cdTA5YWVcdTA5YmVcdTA5YjBcdTA5Y2RcdTA5OWFfXHUwOThmXHUwOWFhXHUwOWNkXHUwOWIwXHUwOWJmXHUwOWIyX1x1MDlhZVx1MDljN19cdTA5OWNcdTA5YzFcdTA5YThfXHUwOTljXHUwOWMxXHUwOWIyXHUwOWJlXHUwOTg3X1x1MDk4Nlx1'@; put 'MDk5N1x1MDliOFx1MDljZFx1MDk5Zl9cdTA5YjhcdTA5YzdcdTA5YWFcdTA5Y2RcdTA5OWZfXHUwOTg1XHUwOTk1XHUwOWNkXHUwOTlmXHUwOWNiX1x1MDlhOFx1MDlhZFx1MDljN19cdTA5YTFcdTA5YmZcdTA5YjhcdTA5YzciLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDliMFx1MDlhY1x1'@; put 'MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjhcdTA5Y2JcdTA5YWVcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDlhY1x1MDljMVx1MDlhN1x1MDlhY1x1MDliZVx1MDliMF9cdTA5YWNcdTA5YzNcdTA5Yjlc'@; put 'dTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZlx1MDlhY1x1MDliZVx1MDliMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5'@; put 'YjBcdTA5YWNcdTA5YmZfXHUwOWI4XHUwOWNiXHUwOWFlX1x1MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1MDliMl9cdTA5YWNcdTA5YzFcdTA5YTdfXHUwOWFjXHUwOWMzXHUwOWI5XHUwOWI4XHUwOWNkXHUwOWFhXHUwOWE0XHUwOWJmX1x1MDliNlx1MDljMVx1MDk5NVx1MDljZFx1MDliMF9c'@; put 'dTA5YjZcdTA5YThcdTA5YmYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDliMFx1MDlhY1x1MDliZl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5YWNcdTA5YzNcdTA5YjlfXHUwOWI2XHUwOWMxXHUw'@; put 'OTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYiLExUUzoiQSBoOm1tOnNzIFx1MDliOFx1MDlhZVx1MDlkZiIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6'@; put 'IkQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTg2XHUwOTljXSBMVCIsbmV4dERheToiW1x1MDk4Nlx1MDk5N1x1MDliZVx1MDlh'@; put 'ZVx1MDljMFx1MDk5NVx1MDliZVx1MDliMl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MDk5N1x1MDlhNFx1MDk5NVx1MDliZVx1MDliMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTk3XHUwOWE0XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVy'@; put 'ZToiJXMgXHUwOWFhXHUwOWIwXHUwOWM3IixwYXN0OiIlcyBcdTA5ODZcdTA5OTdcdTA5YzciLHM6Ilx1MDk5NVx1MDlkZlx1MDljN1x1MDk5NSBcdTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThcdTA5Y2RcdTA5YTEiLHNzOiIlZCBcdTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThc'@; put 'dTA5Y2RcdTA5YTEiLG06Ilx1MDk4Zlx1MDk5NSBcdTA5YWVcdTA5YmZcdTA5YThcdTA5YmZcdTA5OWYiLG1tOiIlZCBcdTA5YWVcdTA5YmZcdTA5YThcdTA5YmZcdTA5OWYiLGg6Ilx1MDk4Zlx1MDk5NSBcdTA5OThcdTA5YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGhoOiIlZCBcdTA5OThcdTA5'@; put 'YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGQ6Ilx1MDk4Zlx1MDk5NSBcdTA5YTZcdTA5YmZcdTA5YTgiLGRkOiIlZCBcdTA5YTZcdTA5YmZcdTA5YTgiLE06Ilx1MDk4Zlx1MDk5NSBcdTA5YWVcdTA5YmVcdTA5YjgiLE1NOiIlZCBcdTA5YWVcdTA5YmVcdTA5YjgiLHk6Ilx1MDk4Zlx1MDk5NSBc'@; put 'dTA5YWNcdTA5OWJcdTA5YjAiLHl5OiIlZCBcdTA5YWNcdTA5OWJcdTA5YjAifSxwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9bXHUwOWU3XHUwOWU4XHUwOWU5XHUwOWVhXHUwOWViXHUwOWVjXHUwOWVkXHUwOWVlXHUwOWVmXHUwOWU2XS9nLGZ1bmN0aW9uKE8pe3Jl'@; put 'dHVybiBtW09dfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5YjBcdTA5YmVcdTA5YTR8XHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyfFx1MDlhNlx1MDljMVx1MDlhYVx1'@; put 'MDljMVx1MDliMHxcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjJ8XHUwOWIwXHUwOWJlXHUwOWE0LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTSxPKXtyZXR1cm4gMTI9PT1NJiYoTT0wKSwiXHUwOWIwXHUwOWJlXHUwOWE0Ij09PU8mJk0+PTR8fCJcdTA5YTZcdTA5YzFcdTA5YWFcdTA5'@; put 'YzFcdTA5YjAiPT09TyYmTTw1fHwiXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIj09PU8/TSsxMjpNfSxtZXJpZGllbTpmdW5jdGlvbihNLE8sUil7cmV0dXJuIE08ND8iXHUwOWIwXHUwOWJlXHUwOWE0IjpNPDEwPyJcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjIiOk08MTc/Ilx1MDlh'@; put 'Nlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI6TTwyMD8iXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIjoiXHUwOWIwXHUwOWJlXHUwOWE0In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEYoMTY2NzYpKX0sMTEwMzQ6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0'@; put 'cmljdCI7dmFyIHg9ezE6Ilx1MGYyMSIsMjoiXHUwZjIyIiwzOiJcdTBmMjMiLDQ6Ilx1MGYyNCIsNToiXHUwZjI1Iiw2OiJcdTBmMjYiLDc6Ilx1MGYyNyIsODoiXHUwZjI4Iiw5OiJcdTBmMjkiLDA6Ilx1MGYyMCJ9LG09eyJcdTBmMjEiOiIxIiwiXHUwZjIyIjoiMiIsIlx1MGYyMyI6IjMi'@; put 'LCJcdTBmMjQiOiI0IiwiXHUwZjI1IjoiNSIsIlx1MGYyNiI6IjYiLCJcdTBmMjciOiI3IiwiXHUwZjI4IjoiOCIsIlx1MGYyOSI6IjkiLCJcdTBmMjAiOiIwIn07YWUuZGVmaW5lTG9jYWxlKCJibyIse21vbnRoczoiXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjUxXHUwZjQ0'@; put 'XHUwZjBiXHUwZjU0XHUwZjdjX1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY0Mlx1MGY0OVx1MGY3Mlx1MGY2Nlx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNDJcdTBmNjZcdTBmNzRcdTBmNThcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIz'@; put 'XHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjVlXHUwZjcyXHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY2M1x1MGY5NFx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTFcdTBmYjJcdTBmNzRcdTBmNDJcdTBmMGJc'@; put 'dTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjUxXHUwZjc0XHUwZjUzXHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY2Mlx1MGY5Mlx1MGZiMVx1MGY1MVx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJc'@; put 'dTBmNTZcdTBmMGJcdTBmNTFcdTBmNDJcdTBmNzRcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjQ1XHUwZjc0XHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY0NVx1MGY3NFx1MGYwYlx1MGY0Mlx1'@; put 'MGY0NVx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTZcdTBmNDVcdTBmNzRcdTBmMGJcdTBmNDJcdTBmNDlcdTBmNzJcdTBmNjZcdTBmMGJcdTBmNTQiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGY1Zlx1MGZiM1x1MGYwYjFf'@; put 'XHUwZjVmXHUwZmIzXHUwZjBiMl9cdTBmNWZcdTBmYjNcdTBmMGIzX1x1MGY1Zlx1MGZiM1x1MGYwYjRfXHUwZjVmXHUwZmIzXHUwZjBiNV9cdTBmNWZcdTBmYjNcdTBmMGI2X1x1MGY1Zlx1MGZiM1x1MGYwYjdfXHUwZjVmXHUwZmIzXHUwZjBiOF9cdTBmNWZcdTBmYjNcdTBmMGI5X1x1MGY1'@; put 'Zlx1MGZiM1x1MGYwYjEwX1x1MGY1Zlx1MGZiM1x1MGYwYjExX1x1MGY1Zlx1MGZiM1x1MGYwYjEyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0UmVnZXg6L14oXHUwZjVmXHUwZmIzXHUwZjBiXGR7MSwyfSkvLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGY0Mlx1MGY1Zlx1MGY2'@; put 'MFx1MGYwYlx1MGY0OVx1MGY3Mlx1MGYwYlx1MGY1OFx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU4XHUwZjcyXHUwZjQyXHUwZjBiXHUwZjUxXHUwZjU4XHUwZjYyXHUwZjBi'@; put 'X1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY2M1x1MGZiN1x1MGY0Mlx1MGYwYlx1MGY1NFx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNTVcdTBmNzRcdTBmNjJcdTBmMGJcdTBmNTZcdTBmNzRfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU0XHUwZjBiXHUwZjY2'@; put 'XHUwZjQ0XHUwZjY2XHUwZjBiX1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY2Nlx1MGZhNFx1MGY3YVx1MGY1M1x1MGYwYlx1MGY1NFx1MGYwYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBmNDlcdTBmNzJcdTBmMGJcdTBmNThcdTBmMGJfXHUwZjVmXHUwZmIzXHUwZjBiXHUw'@; put 'ZjU2XHUwZjBiX1x1MGY1OFx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1MVx1MGY1OFx1MGY2Mlx1MGYwYl9cdTBmNjNcdTBmYjdcdTBmNDJcdTBmMGJcdTBmNTRcdTBmMGJfXHUwZjU1XHUwZjc0XHUwZjYyXHUwZjBiXHUwZjU2XHUwZjc0X1x1MGY1NFx1MGYwYlx1MGY2Nlx1MGY0NFx1MGY2Nlx1'@; put 'MGYwYl9cdTBmNjZcdTBmYTRcdTBmN2FcdTBmNTNcdTBmMGJcdTBmNTRcdTBmMGIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGY0OVx1MGY3Ml9cdTBmNWZcdTBmYjNfXHUwZjU4XHUwZjcyXHUwZjQyX1x1MGY2M1x1MGZiN1x1MGY0Ml9cdTBmNTVcdTBmNzRcdTBmNjJfXHUwZjY2XHUw'@; put 'ZjQ0XHUwZjY2X1x1MGY2Nlx1MGZhNFx1MGY3YVx1MGY1MyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIixMTExMOiJkZGRkLCBEIE1N'@; put 'TU0gWVlZWSwgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBmNTFcdTBmNzJcdTBmMGJcdTBmNjJcdTBmNzJcdTBmNDRdIExUIixuZXh0RGF5OiJbXHUwZjY2XHUwZjQ0XHUwZjBiXHUwZjQ5XHUwZjcyXHUwZjUzXSBMVCIsbmV4dFdlZWs6IltcdTBmNTZcdTBmNTFcdTBmNzRcdTBm'@; put 'NTNcdTBmMGJcdTBmNTVcdTBmYjJcdTBmNDJcdTBmMGJcdTBmNjJcdTBmOTdcdTBmN2FcdTBmNjZcdTBmMGJcdTBmNThdLCBMVCIsbGFzdERheToiW1x1MGY0MVx1MGYwYlx1MGY2Nlx1MGY0NF0gTFQiLGxhc3RXZWVrOiJbXHUwZjU2XHUwZjUxXHUwZjc0XHUwZjUzXHUwZjBiXHUwZjU1XHUw'@; put 'ZmIyXHUwZjQyXHUwZjBiXHUwZjU4XHUwZjUwXHUwZjYwXHUwZjBiXHUwZjU4XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwZjYzXHUwZjBiIixwYXN0OiIlcyBcdTBmNjZcdTBmOTRcdTBmNTNcdTBmMGJcdTBmNjMiLHM6Ilx1MGY2M1x1MGY1'@; put 'OFx1MGYwYlx1MGY2Nlx1MGY0NCIsc3M6IiVkIFx1MGY2Nlx1MGY5MFx1MGY2Mlx1MGYwYlx1MGY0Nlx1MGYwZCIsbToiXHUwZjY2XHUwZjkwXHUwZjYyXHUwZjBiXHUwZjU4XHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIixtbToiJWQgXHUwZjY2XHUwZjkwXHUwZjYyXHUwZjBiXHUw'@; put 'ZjU4IixoOiJcdTBmNDZcdTBmNzRcdTBmMGJcdTBmNWFcdTBmN2NcdTBmNTFcdTBmMGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDIiLGhoOiIlZCBcdTBmNDZcdTBmNzRcdTBmMGJcdTBmNWFcdTBmN2NcdTBmNTEiLGQ6Ilx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3'@; put 'Mlx1MGY0MiIsZGQ6IiVkIFx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYiIsTToiXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIixNTToiJWQgXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2Iix5OiJcdTBmNjNcdTBmN2NcdTBmMGJcdTBmNDJcdTBm'@; put 'NDVcdTBmNzJcdTBmNDIiLHl5OiIlZCBcdTBmNjNcdTBmN2MifSxwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9bXHUwZjIxXHUwZjIyXHUwZjIzXHUwZjI0XHUwZjI1XHUwZjI2XHUwZjI3XHUwZjI4XHUwZjI5XHUwZjIwXS9nLGZ1bmN0aW9uKE8pe3JldHVybiBtW09d'@; put 'fSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBmNThcdTBmNWFcdTBmNTNcdTBmMGJcdTBmNThcdTBmN2N8XHUwZjVlXHUwZjdjXHUwZjQyXHUwZjY2XHUwZjBiXHUwZjQw'@; put 'XHUwZjY2fFx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY3NFx1MGY0NHxcdTBmNTFcdTBmNDJcdTBmN2NcdTBmNDRcdTBmMGJcdTBmNTFcdTBmNDJ8XHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTSxPKXtyZXR1cm4g'@; put 'MTI9PT1NJiYoTT0wKSwiXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIj09PU8mJk0+PTR8fCJcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGJcdTBmNDJcdTBmNzRcdTBmNDQiPT09TyYmTTw1fHwiXHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUwZjUxXHUwZjQyIj09'@; put 'PU8/TSsxMjpNfSxtZXJpZGllbTpmdW5jdGlvbihNLE8sUil7cmV0dXJuIE08ND8iXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIjpNPDEwPyJcdTBmNWVcdTBmN2NcdTBmNDJcdTBmNjZcdTBmMGJcdTBmNDBcdTBmNjYiOk08MTc/Ilx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYw'@; put 'Ylx1MGY0Mlx1MGY3NFx1MGY0NCI6TTwyMD8iXHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUwZjUxXHUwZjQyIjoiXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEYoMTY2NzYpKX0sMjc2NzE6ZnVuY3Rpb24oYXQsSWUs'@; put 'Ril7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geChCLFksWCl7cmV0dXJuIEIrIiAiK2Z1bmN0aW9uIE0oQixZKXtyZXR1cm4gMj09PVk/ZnVuY3Rpb24gTyhCKXt2YXIgWT17bToidiIsYjoidiIsZDoieiJ9O3JldHVybiB2b2lkIDA9PT1ZW0IuY2hhckF0KDApXT9COllb'@; put 'Qi5jaGFyQXQoMCldK0Iuc3Vic3RyaW5nKDEpfShCKTpCfSh7bW06Im11bnV0ZW5uIixNTToibWl6IixkZDoiZGV2ZXpoIn1bWF0sQil9ZnVuY3Rpb24gbGUoQil7cmV0dXJuIEI+OT9sZShCJTEwKTpCfXZhciBSPVsvXmdlbi9pLC9eY1tcdTAyYmNcJ11od2UvaSwvXm1ldS9pLC9eZWJyL2ks'@; put 'L15tYWUvaSwvXihtZXp8ZXZlKS9pLC9eZ291L2ksL15lb3MvaSwvXmd3ZS9pLC9eaGVyL2ksL15kdS9pLC9ea2VyL2ldLHo9L14oZ2VudmVyfGNbXHUwMmJjXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0fGd3ZW5nb2xvfGhlcmV8ZHV8a2VyenV8Z2Vu'@; put 'fGNbXHUwMmJjXCddaHdlfG1ldXxlYnJ8bWFlfGV2ZXxnb3V8ZW9zfGd3ZXxoZXJ8ZHV8a2VyKS9pLGo9Wy9eU3UvaSwvXkx1L2ksL15NZShbXnJdfCQpL2ksL15NZXIvaSwvXllhL2ksL15Hdy9pLC9eU2EvaV07YWUuZGVmaW5lTG9jYWxlKCJiciIse21vbnRoczoiR2VudmVyX0NcdTAyYmNo'@; put 'd2V2cmVyX01ldXJ6aF9FYnJlbF9NYWVfTWV6aGV2ZW5fR291ZXJlX0Vvc3RfR3dlbmdvbG9fSGVyZV9EdV9LZXJ6dSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiR2VuX0NcdTAyYmNod2VfTWV1X0Vicl9NYWVfRXZlX0dvdV9Fb3NfR3dlX0hlcl9EdV9LZXIiLnNwbGl0KCJfIiksd2Vla2Rh'@; put 'eXM6IlN1bF9MdW5fTWV1cnpoX01lcmNcdTAyYmNoZXJfWWFvdV9Hd2VuZXJfU2Fkb3JuIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bF9MdW5fTWV1X01lcl9ZYW9fR3dlX1NhZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTHVfTWVfTWVyX1lhX0d3X1NhIi5zcGxpdCgiXyIp'@; put 'LHdlZWtkYXlzUGFyc2U6aixmdWxsV2Vla2RheXNQYXJzZTpbL15zdWwvaSwvXmx1bi9pLC9ebWV1cnpoL2ksL15tZXJjW1x1MDJiY1wnXWhlci9pLC9eeWFvdS9pLC9eZ3dlbmVyL2ksL15zYWRvcm4vaV0sc2hvcnRXZWVrZGF5c1BhcnNlOlsvXlN1bC9pLC9eTHVuL2ksL15NZXUvaSwvXk1l'@; put 'ci9pLC9eWWFvL2ksL15Hd2UvaSwvXlNhZC9pXSxtaW5XZWVrZGF5c1BhcnNlOmosbW9udGhzUmVnZXg6eixtb250aHNTaG9ydFJlZ2V4OnosbW9udGhzU3RyaWN0UmVnZXg6L14oZ2VudmVyfGNbXHUwMmJjXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0'@; put 'fGd3ZW5nb2xvfGhlcmV8ZHV8a2VyenUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihnZW58Y1tcdTAyYmNcJ11od2V8bWV1fGVicnxtYWV8ZXZlfGdvdXxlb3N8Z3dlfGhlcnxkdXxrZXIpL2ksbW9udGhzUGFyc2U6Uixsb25nTW9udGhzUGFyc2U6UixzaG9ydE1vbnRoc1BhcnNlOlIs'@; put 'bG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2Egdml6XSBNTU1NIFlZWVkiLExMTDoiRCBbYSB2aXpdIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBbYSB2aXpdIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntz'@; put 'YW1lRGF5OiJbSGl6aXYgZGFdIExUIixuZXh0RGF5OiJbV2FyY1x1MDJiY2hvYXpoIGRhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2RhXSBMVCIsbGFzdERheToiW0RlY1x1MDJiY2ggZGFdIExUIixsYXN0V2VlazoiZGRkZCBbcGFzZXQgZGFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGlt'@; put 'ZTp7ZnV0dXJlOiJhLWJlbm4gJXMiLHBhc3Q6IiVzIFx1MDJiY3pvIixzOiJ1biBuZWJldWQgc2Vnb25kZW5ub1x4ZjkiLHNzOiIlZCBlaWxlbm4iLG06InVyIHZ1bnV0ZW5uIixtbTp4LGg6InVuIGV1ciIsaGg6IiVkIGV1ciIsZDoidW4gZGV2ZXpoIixkZDp4LE06InVyIG1peiIsTU06eCx5'@; put 'OiJ1ciBibG9heiIseXk6ZnVuY3Rpb24gbShCKXtzd2l0Y2gobGUoQikpe2Nhc2UgMTpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpjYXNlIDk6cmV0dXJuIEIrIiBibG9heiI7ZGVmYXVsdDpyZXR1cm4gQisiIHZsb2F6In19fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGFceGYxfHZl'@; put 'dCkvLG9yZGluYWw6ZnVuY3Rpb24oQil7cmV0dXJuIEIrKDE9PT1CPyJhXHhmMSI6InZldCIpfSx3ZWVrOntkb3c6MSxkb3k6NH0sbWVyaWRpZW1QYXJzZTovYS5tLnxnLm0uLyxpc1BNOmZ1bmN0aW9uKEIpe3JldHVybiJnLm0uIj09PUJ9LG1lcmlkaWVtOmZ1bmN0aW9uKEIsWSxYKXtyZXR1'@; put 'cm4gQjwxMj8iYS5tLiI6ImcubS4ifX0pfShGKDE2Njc2KSl9LDM4MTUzOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHgobGUsTSxPKXt2YXIgUj1sZSsiICI7c3dpdGNoKE8pe2Nhc2Uic3MiOnJldHVybiBSKygxPT09bGU/InNla3VuZGEi'@; put 'OjI9PT1sZXx8Mz09PWxlfHw0PT09bGU/InNla3VuZGUiOiJzZWt1bmRpIik7Y2FzZSJtIjpyZXR1cm4gTT8iamVkbmEgbWludXRhIjoiamVkbmUgbWludXRlIjtjYXNlIm1tIjpyZXR1cm4gUisoMT09PWxlPyJtaW51dGEiOjI9PT1sZXx8Mz09PWxlfHw0PT09bGU/Im1pbnV0ZSI6Im1pbnV0'@; put 'YSIpO2Nhc2UiaCI6cmV0dXJuIE0/ImplZGFuIHNhdCI6ImplZG5vZyBzYXRhIjtjYXNlImhoIjpyZXR1cm4gUisoMT09PWxlPyJzYXQiOjI9PT1sZXx8Mz09PWxlfHw0PT09bGU/InNhdGEiOiJzYXRpIik7Y2FzZSJkZCI6cmV0dXJuIFIrKDE9PT1sZT8iZGFuIjoiZGFuYSIpO2Nhc2UiTU0i'@; put 'OnJldHVybiBSKygxPT09bGU/Im1qZXNlYyI6Mj09PWxlfHwzPT09bGV8fDQ9PT1sZT8ibWplc2VjYSI6Im1qZXNlY2kiKTtjYXNlInl5IjpyZXR1cm4gUisoMT09PWxlPyJnb2RpbmEiOjI9PT1sZXx8Mz09PWxlfHw0PT09bGU/ImdvZGluZSI6ImdvZGluYSIpfX1hZS5kZWZpbmVMb2NhbGUo'@; put 'ImJzIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJ0X2FwcmlsX21hal9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyLl9hcHIuX21hai5fanVuLl9qdWwuX2F1Zy5fc2Vw'@; put 'Ll9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJuZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV9cdTAxMGRldHZydGFrX3BldGFrX3N1Ym90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZWQuX3Bvbi5fdXRvLl9z'@; put 'cmkuX1x1MDEwZGV0Ll9wZXQuX3N1Yi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX3V0X3NyX1x1MDEwZGVfcGVfc3UiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixM'@; put 'TDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuYXMgdV0gTFQiLG5leHREYXk6IltzdXRyYSB1XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXko'@; put 'KSl7Y2FzZSAwOnJldHVybiJbdV0gW25lZGplbGp1XSBbdV0gTFQiO2Nhc2UgMzpyZXR1cm4iW3VdIFtzcmlqZWR1XSBbdV0gTFQiO2Nhc2UgNjpyZXR1cm4iW3VdIFtzdWJvdHVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbdV0gZGRkZCBbdV0gTFQifX0s'@; put 'bGFzdERheToiW2p1XHUwMTBkZXIgdV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpjYXNlIDM6cmV0dXJuIltwcm9cdTAxNjFsdV0gZGRkZCBbdV0gTFQiO2Nhc2UgNjpyZXR1cm4iW3Byb1x1MDE2MWxlXSBbc3Vib3RlXSBbdV0gTFQiO2Nhc2Ug'@; put 'MTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3Byb1x1MDE2MWxpXSBkZGRkIFt1XSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicHJpamUgJXMiLHM6InBhciBzZWt1bmRpIixzczp4LG06eCxtbTp4LGg6eCxoaDp4LGQ6ImRhbiIs'@; put 'ZGQ6eCxNOiJtamVzZWMiLE1NOngseToiZ29kaW51Iix5eTp4fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sNTQyODc6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0'@; put 'cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJjYSIse21vbnRoczp7c3RhbmRhbG9uZToiZ2VuZXJfZmVicmVyX21hclx4ZTdfYWJyaWxfbWFpZ19qdW55X2p1bGlvbF9hZ29zdF9zZXRlbWJyZV9vY3R1YnJlX25vdmVtYnJlX2Rlc2VtYnJlIi5zcGxpdCgiXyIpLGZvcm1hdDoiZGUgZ2VuZXJfZGUg'@; put 'ZmVicmVyX2RlIG1hclx4ZTdfZCdhYnJpbF9kZSBtYWlnX2RlIGp1bnlfZGUganVsaW9sX2QnYWdvc3RfZGUgc2V0ZW1icmVfZCdvY3R1YnJlX2RlIG5vdmVtYnJlX2RlIGRlc2VtYnJlIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9EW29EXT8oXHMpK01NTU0vfSxtb250aHNTaG9ydDoiZ2VuLl9m'@; put 'ZWJyLl9tYXJceGU3X2Fici5fbWFpZ19qdW55X2p1bC5fYWcuX3NldC5fb2N0Ll9ub3YuX2Rlcy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZGl1bWVuZ2VfZGlsbHVuc19kaW1hcnRzX2RpbWVjcmVzX2Rpam91c19kaXZlbmRyZXNfZGlzc2FidGUiLnNwbGl0'@; put 'KCJfIiksd2Vla2RheXNTaG9ydDoiZGcuX2RsLl9kdC5fZGMuX2RqLl9kdi5fZHMuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkZ19kbF9kdF9kY19kal9kdl9kcyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06'@; put 'c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gW2RlXSBZWVlZIixsbDoiRCBNTU0gWVlZWSIsTExMOiJEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbSIsbGxsOiJEIE1NTSBZWVlZLCBIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBbZGVdIFlZWVkgW2EgbGVzXSBIOm1tIixsbGxsOiJk'@; put 'ZGQgRCBNTU0gWVlZWSwgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlthdnVpIGEgIisoMSE9PXRoaXMuaG91cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2RlbVx4ZTAgYSAiKygxIT09dGhpcy5ob3VycygpPyJs'@; put 'ZXMiOiJsYSIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSAiKygxIT09dGhpcy5ob3VycygpPyJsZXMiOiJsYSIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbYWhpciBhICIrKDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikrIl0gTFQi'@; put 'fSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbZWxdIGRkZGQgW3Bhc3NhdCBhICIrKDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkJ2FxdVx4ZWQgJXMiLHBhc3Q6ImZhICVzIixzOiJ1bnMgc2Vnb25z'@; put 'IixzczoiJWQgc2Vnb25zIixtOiJ1biBtaW51dCIsbW06IiVkIG1pbnV0cyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JlcyIsZDoidW4gZGlhIixkZDoiJWQgZGllcyIsTToidW4gbWVzIixNTToiJWQgbWVzb3MiLHk6InVuIGFueSIseXk6IiVkIGFueXMifSxkYXlPZk1vbnRoT3JkaW5hbFBh'@; put 'cnNlOi9cZHsxLDJ9KHJ8bnx0fFx4ZTh8YSkvLG9yZGluYWw6ZnVuY3Rpb24obSxsZSl7dmFyIE09MT09PW0/InIiOjI9PT1tPyJuIjozPT09bT8iciI6ND09PW0/InQiOiJceGU4IjtyZXR1cm4oInciPT09bGV8fCJXIj09PWxlKSYmKE09ImEiKSxtK019LHdlZWs6e2RvdzoxLGRveTo0fX0p'@; put 'fShGKDE2Njc2KSl9LDcyNjE2OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PXtmb3JtYXQ6ImxlZGVuX1x4ZmFub3JfYlx1MDE1OWV6ZW5fZHViZW5fa3ZcdTAxMWJ0ZW5fXHUwMTBkZXJ2ZW5fXHUwMTBkZXJ2ZW5lY19zcnBlbl96XHhlMVx1MDE1'@; put 'OVx4ZWRfXHUwMTU5XHhlZGplbl9saXN0b3BhZF9wcm9zaW5lYyIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJsZWRuYV9ceGZhbm9yYV9iXHUwMTU5ZXpuYV9kdWJuYV9rdlx1MDExYnRuYV9cdTAxMGRlcnZuYV9cdTAxMGRlcnZlbmNlX3NycG5hX3pceGUxXHUwMTU5XHhlZF9cdTAxNTlceGVk'@; put 'am5hX2xpc3RvcGFkdV9wcm9zaW5jZSIuc3BsaXQoIl8iKX0sbT0ibGVkX1x4ZmFub19iXHUwMTU5ZV9kdWJfa3ZcdTAxMWJfXHUwMTBkdm5fXHUwMTBkdmNfc3JwX3pceGUxXHUwMTU5X1x1MDE1OVx4ZWRqX2xpc19wcm8iLnNwbGl0KCJfIiksbGU9Wy9ebGVkL2ksL15ceGZhbm8vaSwvXmJc'@; put 'dTAxNTllL2ksL15kdWIvaSwvXmt2XHUwMTFiL2ksL14oXHUwMTBkdm58XHUwMTBkZXJ2ZW4kfFx1MDEwZGVydm5hKS9pLC9eKFx1MDEwZHZjfFx1MDEwZGVydmVuZWN8XHUwMTBkZXJ2ZW5jZSkvaSwvXnNycC9pLC9eelx4ZTFcdTAxNTkvaSwvXlx1MDE1OVx4ZWRqL2ksL15saXMvaSwvXnBy'@; put 'by9pXSxNPS9eKGxlZGVufFx4ZmFub3J8Ylx1MDE1OWV6ZW58ZHViZW58a3ZcdTAxMWJ0ZW58XHUwMTBkZXJ2ZW5lY3xcdTAxMGRlcnZlbmNlfFx1MDEwZGVydmVufFx1MDEwZGVydm5hfHNycGVufHpceGUxXHUwMTU5XHhlZHxcdTAxNTlceGVkamVufGxpc3RvcGFkfHByb3NpbmVjfGxlZHxc'@; put 'eGZhbm98Ylx1MDE1OWV8ZHVifGt2XHUwMTFifFx1MDEwZHZufFx1MDEwZHZjfHNycHx6XHhlMVx1MDE1OXxcdTAxNTlceGVkanxsaXN8cHJvKS9pO2Z1bmN0aW9uIE8oSyl7cmV0dXJuIEs+MSYmSzw1JiYxIT1+fihLLzEwKX1mdW5jdGlvbiBSKEssSSxrLEUpe3ZhciBqPUsrIiAiO3N3aXRj'@; put 'aChrKXtjYXNlInMiOnJldHVybiBJfHxFPyJwXHhlMXIgc2VrdW5kIjoicFx4ZTFyIHNla3VuZGFtaSI7Y2FzZSJzcyI6cmV0dXJuIEl8fEU/aisoTyhLKT8ic2VrdW5keSI6InNla3VuZCIpOmorInNla3VuZGFtaSI7Y2FzZSJtIjpyZXR1cm4gST8ibWludXRhIjpFPyJtaW51dHUiOiJtaW51'@; put 'dG91IjtjYXNlIm1tIjpyZXR1cm4gSXx8RT9qKyhPKEspPyJtaW51dHkiOiJtaW51dCIpOmorIm1pbnV0YW1pIjtjYXNlImgiOnJldHVybiBJPyJob2RpbmEiOkU/ImhvZGludSI6ImhvZGlub3UiO2Nhc2UiaGgiOnJldHVybiBJfHxFP2orKE8oSyk/ImhvZGlueSI6ImhvZGluIik6aisiaG9k'@; put 'aW5hbWkiO2Nhc2UiZCI6cmV0dXJuIEl8fEU/ImRlbiI6ImRuZW0iO2Nhc2UiZGQiOnJldHVybiBJfHxFP2orKE8oSyk/ImRueSI6ImRuXHhlZCIpOmorImRueSI7Y2FzZSJNIjpyZXR1cm4gSXx8RT8ibVx1MDExYnNceGVkYyI6Im1cdTAxMWJzXHhlZGNlbSI7Y2FzZSJNTSI6cmV0dXJuIEl8'@; put 'fEU/aisoTyhLKT8ibVx1MDExYnNceGVkY2UiOiJtXHUwMTFic1x4ZWRjXHUwMTZmIik6aisibVx1MDExYnNceGVkY2kiO2Nhc2UieSI6cmV0dXJuIEl8fEU/InJvayI6InJva2VtIjtjYXNlInl5IjpyZXR1cm4gSXx8RT9qKyhPKEspPyJyb2t5IjoibGV0Iik6aisibGV0eSJ9fWFlLmRlZmlu'@; put 'ZUxvY2FsZSgiY3MiLHttb250aHM6eCxtb250aHNTaG9ydDptLG1vbnRoc1JlZ2V4Ok0sbW9udGhzU2hvcnRSZWdleDpNLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGxlZGVufGxlZG5hfFx4ZmFub3JhfFx4ZmFub3J8Ylx1MDE1OWV6ZW58Ylx1MDE1OWV6bmF8ZHViZW58ZHVibmF8a3ZcdTAxMWJ0'@; put 'ZW58a3ZcdTAxMWJ0bmF8XHUwMTBkZXJ2ZW5lY3xcdTAxMGRlcnZlbmNlfFx1MDEwZGVydmVufFx1MDEwZGVydm5hfHNycGVufHNycG5hfHpceGUxXHUwMTU5XHhlZHxcdTAxNTlceGVkamVufFx1MDE1OVx4ZWRqbmF8bGlzdG9wYWR1fGxpc3RvcGFkfHByb3NpbmVjfHByb3NpbmNlKS9pLG1v'@; put 'bnRoc1Nob3J0U3RyaWN0UmVnZXg6L14obGVkfFx4ZmFub3xiXHUwMTU5ZXxkdWJ8a3ZcdTAxMWJ8XHUwMTBkdm58XHUwMTBkdmN8c3JwfHpceGUxXHUwMTU5fFx1MDE1OVx4ZWRqfGxpc3xwcm8pL2ksbW9udGhzUGFyc2U6bGUsbG9uZ01vbnRoc1BhcnNlOmxlLHNob3J0TW9udGhzUGFyc2U6'@; put 'bGUsd2Vla2RheXM6Im5lZFx1MDExYmxlX3BvbmRcdTAxMWJsXHhlZF9ceGZhdGVyXHhmZF9zdFx1MDE1OWVkYV9cdTAxMGR0dnJ0ZWtfcFx4ZTF0ZWtfc29ib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lX3BvX1x4ZmF0X3N0X1x1MDEwZHRfcFx4ZTFfc28iLnNwbGl0KCJfIiks'@; put 'd2Vla2RheXNNaW46Im5lX3BvX1x4ZmF0X3N0X1x1MDEwZHRfcFx4ZTFfc28iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQg'@; put 'RC4gTU1NTSBZWVlZIEg6bW0iLGw6IkQuIE0uIFlZWVkifSxjYWxlbmRhcjp7c2FtZURheToiW2RuZXMgdl0gTFQiLG5leHREYXk6Ilt6XHhlZHRyYSB2XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdiBuZWRcdTAxMWJsaSB2XSBM'@; put 'VCI7Y2FzZSAxOmNhc2UgMjpyZXR1cm4iW3ZdIGRkZGQgW3ZdIExUIjtjYXNlIDM6cmV0dXJuIlt2ZSBzdFx1MDE1OWVkdSB2XSBMVCI7Y2FzZSA0OnJldHVybiJbdmUgXHUwMTBkdHZydGVrIHZdIExUIjtjYXNlIDU6cmV0dXJuIlt2IHBceGUxdGVrIHZdIExUIjtjYXNlIDY6cmV0dXJuIlt2'@; put 'IHNvYm90dSB2XSBMVCJ9fSxsYXN0RGF5OiJbdlx1MDEwZGVyYSB2XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbbWludWxvdSBuZWRcdTAxMWJsaSB2XSBMVCI7Y2FzZSAxOmNhc2UgMjpyZXR1cm4iW21pbnVsXHhlOV0gZGRkZCBb'@; put 'dl0gTFQiO2Nhc2UgMzpyZXR1cm4iW21pbnVsb3Ugc3RcdTAxNTllZHUgdl0gTFQiO2Nhc2UgNDpjYXNlIDU6cmV0dXJuIlttaW51bFx4ZmRdIGRkZGQgW3ZdIExUIjtjYXNlIDY6cmV0dXJuIlttaW51bG91IHNvYm90dSB2XSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0'@; put 'dXJlOiJ6YSAlcyIscGFzdDoicFx1MDE1OWVkICVzIixzOlIsc3M6UixtOlIsbW06UixoOlIsaGg6UixkOlIsZGQ6UixNOlIsTU06Uix5OlIseXk6Un0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2'@; put 'KSl9LDI3MDQ5OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiY3YiLHttb250aHM6Ilx1MDQzYVx1MDRkMVx1MDQ0MFx1MDQzYlx1MDQzMFx1MDQ0N19cdTA0M2RcdTA0MzBcdTA0NDBcdTA0ZDFcdTA0NDFfXHUwNDNmXHUwNDQz'@; put 'XHUwNDQ4X1x1MDQzMFx1MDQzYVx1MDQzMF9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNGFiXHUwNGQ3XHUwNDQwXHUwNDQyXHUwNDNjXHUwNDM1X1x1MDQ0M1x1MDQ0Mlx1MDRkMV9cdTA0YWJcdTA0NDNcdTA0NDBcdTA0M2JcdTA0MzBfXHUwNDMwXHUwNDMyXHUwNGQxXHUwNDNkX1x1MDQ0ZVx1'@; put 'MDQzZlx1MDQzMF9cdTA0NDdcdTA0ZjNcdTA0M2FfXHUwNDQwXHUwNDMwXHUwNDQ4XHUwNDQyXHUwNDMwXHUwNDMyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0M2FcdTA0ZDFcdTA0NDBfXHUwNDNkXHUwNDMwXHUwNDQwX1x1MDQzZlx1MDQ0M1x1MDQ0OF9cdTA0MzBcdTA0M2FcdTA0'@; put 'MzBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDRhYlx1MDRkN1x1MDQ0MF9cdTA0NDNcdTA0NDJcdTA0ZDFfXHUwNGFiXHUwNDQzXHUwNDQwX1x1MDQzMFx1MDQzMlx1MDQzZF9cdTA0NGVcdTA0M2ZcdTA0MzBfXHUwNDQ3XHUwNGYzXHUwNDNhX1x1MDQ0MFx1MDQzMFx1MDQ0OCIuc3BsaXQoIl8i'@; put 'KSx3ZWVrZGF5czoiXHUwNDMyXHUwNDRiXHUwNDQwXHUwNDQxXHUwNDMwXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQ0Mlx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NGJcdTA0NDJcdTA0M2JcdTA0MzBcdTA0NDBcdTA0Mzhc'@; put 'dTA0M2FcdTA0NDNcdTA0M2RfXHUwNDRlXHUwNDNkXHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQzYVx1MDRkN1x1MDRhYlx1MDQzZFx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQzOFx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NGRcdTA0NDBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDQ4'@; put 'XHUwNGQxXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDNhXHUwNDQzXHUwNDNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQzMlx1MDQ0Ylx1MDQ0MF9cdTA0NDJcdTA0NDNcdTA0M2RfXHUwNDRiXHUwNDQyXHUwNDNiX1x1MDQ0ZVx1MDQzZF9cdTA0M2FcdTA0ZDdcdTA0YWJfXHUwNDRk'@; put 'XHUwNDQwXHUwNDNkX1x1MDQ0OFx1MDRkMVx1MDQzYyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDMyXHUwNDQwX1x1MDQ0Mlx1MDQzZF9cdTA0NGJcdTA0NDJfXHUwNDRlXHUwNDNkX1x1MDQzYVx1MDRhYl9cdTA0NGRcdTA0NDBfXHUwNDQ4XHUwNDNjIi5zcGxpdCgiXyIpLGxvbmdE'@; put 'YXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELU1NLVlZWVkiLExMOiJZWVlZIFtcdTA0YWJcdTA0NDNcdTA0M2JcdTA0NDVcdTA0MzhdIE1NTU0gW1x1MDQ0M1x1MDQzOVx1MDRkMVx1MDQ0NVx1MDRkN1x1MDQzZF0gRFstXHUwNDNjXHUwNGQ3XHUwNDQ4XHUwNGQ3'@; put 'XSIsTExMOiJZWVlZIFtcdTA0YWJcdTA0NDNcdTA0M2JcdTA0NDVcdTA0MzhdIE1NTU0gW1x1MDQ0M1x1MDQzOVx1MDRkMVx1MDQ0NVx1MDRkN1x1MDQzZF0gRFstXHUwNDNjXHUwNGQ3XHUwNDQ4XHUwNGQ3XSwgSEg6bW0iLExMTEw6ImRkZGQsIFlZWVkgW1x1MDRhYlx1MDQ0M1x1MDQzYlx1'@; put 'MDQ0NVx1MDQzOF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3XHUwNDNkXSBEWy1cdTA0M2NcdTA0ZDdcdTA0NDhcdTA0ZDddLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDFmXHUwNDMwXHUwNDRmXHUwNDNkXSBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUw'@; put 'NDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsbmV4dERheToiW1x1MDQyYlx1MDQ0MFx1MDQzMFx1MDQzZF0gTFQgW1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzNV0iLGxhc3REYXk6IltcdTA0ZDZcdTA0M2RcdTA0MzVcdTA0NDBdIExUIFtcdTA0NDFcdTA0MzVcdTA0'@; put 'NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzVdIixuZXh0V2VlazoiW1x1MDRhYVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQ0MV0gZGRkZCBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsbGFzdFdlZWs6IltcdTA0MThcdTA0NDBcdTA0NDJcdTA0M2RcdTA0'@; put 'ZDddIGRkZGQgTFQgW1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzNV0iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24obSl7cmV0dXJuIG0rKC9cdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIkL2kuZXhlYyhtKT8iXHUwNDQw'@; put 'XHUwNDM1XHUwNDNkIjovXHUwNGFiXHUwNDQzXHUwNDNiJC9pLmV4ZWMobSk/Ilx1MDQ0Mlx1MDQzMFx1MDQzZCI6Ilx1MDQ0MFx1MDQzMFx1MDQzZCIpfSxwYXN0OiIlcyBcdTA0M2FcdTA0MzBcdTA0NGZcdTA0M2JcdTA0M2JcdTA0MzAiLHM6Ilx1MDQzZlx1MDRkN1x1MDQ0MC1cdTA0Mzhc'@; put 'dTA0M2EgXHUwNGFiXHUwNDM1XHUwNDNhXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDQyIixzczoiJWQgXHUwNGFiXHUwNDM1XHUwNDNhXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDQyIixtOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIixtbToiJWQgXHUw'@; put 'NDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIixoOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyIixoaDoiJWQgXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyIixkOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDNhXHUwNDQzXHUwNDNkIixk'@; put 'ZDoiJWQgXHUwNDNhXHUwNDQzXHUwNDNkIixNOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1IixNTToiJWQgXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1Iix5OiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNGFiXHUwNDQzXHUwNDNiIix5eToiJWQgXHUwNGFiXHUw'@; put 'NDQzXHUwNDNiIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS1cdTA0M2NcdTA0ZDdcdTA0NDgvLG9yZGluYWw6IiVkLVx1MDQzY1x1MDRkN1x1MDQ0OCIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sOTkxNzI6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFl'@; put 'KXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJjeSIse21vbnRoczoiSW9uYXdyX0Nod2Vmcm9yX01hd3J0aF9FYnJpbGxfTWFpX01laGVmaW5fR29yZmZlbm5hZl9Bd3N0X01lZGlfSHlkcmVmX1RhY2h3ZWRkX1JoYWdmeXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Iklvbl9DaHdl'@; put 'X01hd19FYnJfTWFpX01laF9Hb3JfQXdzX01lZF9IeWRfVGFjaF9SaGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJEeWRkIFN1bF9EeWRkIExsdW5fRHlkZCBNYXdydGhfRHlkZCBNZXJjaGVyX0R5ZGQgSWF1X0R5ZGQgR3dlbmVyX0R5ZGQgU2Fkd3JuIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hv'@; put 'cnQ6IlN1bF9MbHVuX01hd19NZXJfSWF1X0d3ZV9TYWQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X0xsX01hX01lX0lhX0d3X1NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9Z'@; put 'WVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIZWRkaXcgYW1dIExUIixuZXh0RGF5OiJbWWZvcnkgYW1dIExUIixuZXh0V2VlazoiZGRkZCBbYW1dIExUIixsYXN0'@; put 'RGF5OiJbRGRvZSBhbV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtkaXdldGhhZiBhbV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im1ld24gJXMiLHBhc3Q6IiVzIHluIFx4ZjRsIixzOiJ5Y2h5ZGlnIGVpbGlhZGF1IixzczoiJWQgZWlsaWFkIixtOiJtdW51ZCIsbW06'@; put 'IiVkIG11bnVkIixoOiJhd3IiLGhoOiIlZCBhd3IiLGQ6ImRpd3Jub2QiLGRkOiIlZCBkaXdybm9kIixNOiJtaXMiLE1NOiIlZCBtaXMiLHk6ImJsd3lkZHluIix5eToiJWQgZmx5bmVkZCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZmVkfGFpbnxhZnxpbHx5ZGR8ZWR8ZWcp'@; put 'LyxvcmRpbmFsOmZ1bmN0aW9uKG0pe3ZhciBNPSIiO3JldHVybiBtPjIwP009NDA9PT1tfHw1MD09PW18fDYwPT09bXx8ODA9PT1tfHwxMDA9PT1tPyJmZWQiOiJhaW4iOm0+MCYmKE09WyIiLCJhZiIsImlsIiwieWRkIiwieWRkIiwiZWQiLCJlZCIsImVkIiwiZmVkIiwiZmVkIiwiZmVkIiwi'@; put 'ZWciLCJmZWQiLCJlZyIsImVnIiwiZmVkIiwiZWciLCJlZyIsImZlZCIsImVnIiwiZmVkIl1bbV0pLG0rTX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sMjA2MDU6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJk'@; put 'YSIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydHNfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3Zf'@; put 'ZGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzXHhmOG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2xceGY4cmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzXHhmOG5fbWFuX3Rpcl9vbnNfdG9yX2ZyZV9sXHhmOHIiLnNwbGl0KCJfIiksd2Vla2RheXNN'@; put 'aW46InNceGY4X21hX3RpX29uX3RvX2ZyX2xceGY4Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIFtkLl0gRC4gTU1N'@; put 'TSBZWVlZIFtrbC5dIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltpIGRhZyBrbC5dIExUIixuZXh0RGF5OiJbaSBtb3JnZW4ga2wuXSBMVCIsbmV4dFdlZWs6InBceGU1IGRkZGQgW2tsLl0gTFQiLGxhc3REYXk6IltpIGdceGU1ciBrbC5dIExUIixsYXN0V2VlazoiW2ldIGRkZGRbcyBr'@; put 'bC5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvbSAlcyIscGFzdDoiJXMgc2lkZW4iLHM6ImZceGU1IHNla3VuZGVyIixzczoiJWQgc2VrdW5kZXIiLG06ImV0IG1pbnV0IixtbToiJWQgbWludXR0ZXIiLGg6ImVuIHRpbWUiLGhoOiIlZCB0aW1lciIsZDoiZW4g'@; put 'ZGFnIixkZDoiJWQgZGFnZSIsTToiZW4gbVx4ZTVuZWQiLE1NOiIlZCBtXHhlNW5lZGVyIix5OiJldCBceGU1ciIseXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDkz'@; put 'Mzk1OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHgobGUsTSxPLFIpe3ZhciB6PXttOlsiZWluZSBNaW51dGUiLCJlaW5lciBNaW51dGUiXSxoOlsiZWluZSBTdHVuZGUiLCJlaW5lciBTdHVuZGUiXSxkOlsiZWluIFRhZyIsImVpbmVtIFRh'@; put 'ZyJdLGRkOltsZSsiIFRhZ2UiLGxlKyIgVGFnZW4iXSx3OlsiZWluZSBXb2NoZSIsImVpbmVyIFdvY2hlIl0sTTpbImVpbiBNb25hdCIsImVpbmVtIE1vbmF0Il0sTU06W2xlKyIgTW9uYXRlIixsZSsiIE1vbmF0ZW4iXSx5OlsiZWluIEphaHIiLCJlaW5lbSBKYWhyIl0seXk6W2xlKyIgSmFo'@; put 'cmUiLGxlKyIgSmFocmVuIl19O3JldHVybiBNP3pbT11bMF06eltPXVsxXX1hZS5kZWZpbmVMb2NhbGUoImRlLWF0Iix7bW9udGhzOiJKXHhlNG5uZXJfRmVicnVhcl9NXHhlNHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVy'@; put 'Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKXHhlNG4uX0ZlYi5fTVx4ZTRyel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IlNvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2No'@; put 'X0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvLl9Nby5fRGkuX01pLl9Eby5fRnIuX1NhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxv'@; put 'bmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBMVCBb'@; put 'VWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4gdW1dIExUIFtVaHJdIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIFtVaHJdIixsYXN0RGF5OiJbZ2VzdGVybiB1bV0gTFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVUaW1l'@; put 'OntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVpbiBwYWFyIFNla3VuZGVuIixzczoiJWQgU2VrdW5kZW4iLG06eCxtbToiJWQgTWludXRlbiIsaDp4LGhoOiIlZCBTdHVuZGVuIixkOngsZGQ6eCx3Ongsd3c6IiVkIFdvY2hlbiIsTTp4LE1NOngseTp4LHl5Onh9LGRheU9mTW9u'@; put 'dGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSw5OTgzNTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KGxlLE0sTyxSKXt2YXIgej17bTpbImVpbmUgTWlu'@; put 'dXRlIiwiZWluZXIgTWludXRlIl0saDpbImVpbmUgU3R1bmRlIiwiZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbbGUrIiBUYWdlIixsZSsiIFRhZ2VuIl0sdzpbImVpbmUgV29jaGUiLCJlaW5lciBXb2NoZSJdLE06WyJlaW4gTW9uYXQiLCJlaW5lbSBNb25h'@; put 'dCJdLE1NOltsZSsiIE1vbmF0ZSIsbGUrIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltsZSsiIEphaHJlIixsZSsiIEphaHJlbiJdfTtyZXR1cm4gTT96W09dWzBdOnpbT11bMV19YWUuZGVmaW5lTG9jYWxlKCJkZS1jaCIse21vbnRoczoiSmFudWFyX0ZlYnJ1'@; put 'YXJfTVx4ZTRyel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuLl9GZWIuX01ceGU0cnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6LiIuc3Bs'@; put 'aXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTb19Nb19EaV9NaV9Eb19Gcl9TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5'@; put 'c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExM'@; put 'OiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBMVCBbVWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4gdW1dIExUIFtVaHJdIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIFtVaHJdIixsYXN0RGF5OiJbZ2VzdGVybiB1bV0g'@; put 'TFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVpbiBwYWFyIFNla3VuZGVuIixzczoiJWQgU2VrdW5kZW4iLG06eCxtbToiJWQgTWludXRlbiIsaDp4LGhoOiIlZCBT'@; put 'dHVuZGVuIixkOngsZGQ6eCx3Ongsd3c6IiVkIFdvY2hlbiIsTTp4LE1NOngseTp4LHl5Onh9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSw5NDAxMzpmdW5jdGlvbihhdCxJZSxGKXshZnVu'@; put 'Y3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KGxlLE0sTyxSKXt2YXIgej17bTpbImVpbmUgTWludXRlIiwiZWluZXIgTWludXRlIl0saDpbImVpbmUgU3R1bmRlIiwiZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbbGUrIiBUYWdlIixsZSsiIFRh'@; put 'Z2VuIl0sdzpbImVpbmUgV29jaGUiLCJlaW5lciBXb2NoZSJdLE06WyJlaW4gTW9uYXQiLCJlaW5lbSBNb25hdCJdLE1NOltsZSsiIE1vbmF0ZSIsbGUrIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltsZSsiIEphaHJlIixsZSsiIEphaHJlbiJdfTtyZXR1cm4g'@; put 'TT96W09dWzBdOnpbT11bMV19YWUuZGVmaW5lTG9jYWxlKCJkZSIse21vbnRoczoiSmFudWFyX0ZlYnJ1YXJfTVx4ZTRyel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuLl9G'@; put 'ZWIuX01ceGU0cnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZyIuc3BsaXQo'@; put 'Il8iKSx3ZWVrZGF5c1Nob3J0OiJTby5fTW8uX0RpLl9NaS5fRG8uX0ZyLl9TYS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNvX01vX0RpX01pX0RvX0ZyX1NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1t'@; put 'OnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltoZXV0ZSB1bV0gTFQgW1Vocl0iLHNhbWVFbHNlOiJMIixuZXh0RGF5OiJbbW9yZ2Vu'@; put 'IHVtXSBMVCBbVWhyXSIsbmV4dFdlZWs6ImRkZGQgW3VtXSBMVCBbVWhyXSIsbGFzdERheToiW2dlc3Rlcm4gdW1dIExUIFtVaHJdIixsYXN0V2VlazoiW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXSJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoidm9yICVzIixzOiJl'@; put 'aW4gcGFhciBTZWt1bmRlbiIsc3M6IiVkIFNla3VuZGVuIixtOngsbW06IiVkIE1pbnV0ZW4iLGg6eCxoaDoiJWQgU3R1bmRlbiIsZDp4LGRkOngsdzp4LHd3OiIlZCBXb2NoZW4iLE06eCxNTTp4LHk6eCx5eTp4fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6'@; put 'IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sMTQ1NzA6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9WyJcdTA3OTZcdTA3YWNcdTA3ODJcdTA3YWFcdTA3ODdcdTA3YTZcdTA3ODNcdTA3YTkiLCJcdTA3OGFcdTA3YWNcdTA3'@; put 'ODRcdTA3YjBcdTA3ODNcdTA3YWFcdTA3ODdcdTA3YTZcdTA3ODNcdTA3YTkiLCJcdTA3ODlcdTA3YTdcdTA3ODNcdTA3YThcdTA3OTdcdTA3YWEiLCJcdTA3ODdcdTA3YWRcdTA3OTVcdTA3YjBcdTA3ODNcdTA3YTlcdTA3OGRcdTA3YWEiLCJcdTA3ODlcdTA3YWQiLCJcdTA3OTZcdTA3YWJc'@; put 'dTA3ODJcdTA3YjAiLCJcdTA3OTZcdTA3YWFcdTA3OGRcdTA3YTZcdTA3ODdcdTA3YTgiLCJcdTA3ODdcdTA3YWZcdTA3OGVcdTA3YTZcdTA3OTBcdTA3YjBcdTA3OTNcdTA3YWEiLCJcdTA3OTBcdTA3YWNcdTA3OTVcdTA3YjBcdTA3OTNcdTA3YWNcdTA3ODlcdTA3YjBcdTA3ODRcdTA3YTZc'@; put 'dTA3ODNcdTA3YWEiLCJcdTA3ODdcdTA3YWVcdTA3ODZcdTA3YjBcdTA3OTNcdTA3YWZcdTA3ODRcdTA3YTZcdTA3ODNcdTA3YWEiLCJcdTA3ODJcdTA3YWVcdTA3ODhcdTA3YWNcdTA3ODlcdTA3YjBcdTA3ODRcdTA3YTZcdTA3ODNcdTA3YWEiLCJcdTA3OTFcdTA3YThcdTA3OTBcdTA3YWNc'@; put 'dTA3ODlcdTA3YjBcdTA3ODRcdTA3YTZcdTA3ODNcdTA3YWEiXSxtPVsiXHUwNzg3XHUwN2E3XHUwNzhiXHUwN2E4XHUwNzg3XHUwN2IwXHUwNzhjXHUwN2E2IiwiXHUwNzgwXHUwN2FmXHUwNzg5XHUwN2E2IiwiXHUwNzg3XHUwN2E2XHUwNzgyXHUwN2IwXHUwNzhlXHUwN2E3XHUwNzgzXHUw'@; put 'N2E2IiwiXHUwNzg0XHUwN2FhXHUwNzhiXHUwN2E2IiwiXHUwNzg0XHUwN2FhXHUwNzgzXHUwN2E3XHUwNzkwXHUwN2IwXHUwNzhhXHUwN2E2XHUwNzhjXHUwN2E4IiwiXHUwNzgwXHUwN2FhXHUwNzg2XHUwN2FhXHUwNzgzXHUwN2FhIiwiXHUwNzgwXHUwN2FlXHUwNzgyXHUwN2E4XHUwNzgw'@; put 'XHUwN2E4XHUwNzgzXHUwN2FhIl07YWUuZGVmaW5lTG9jYWxlKCJkdiIse21vbnRoczp4LG1vbnRoc1Nob3J0Ongsd2Vla2RheXM6bSx3ZWVrZGF5c1Nob3J0Om0sd2Vla2RheXNNaW46Ilx1MDc4N1x1MDdhN1x1MDc4Ylx1MDdhOF9cdTA3ODBcdTA3YWZcdTA3ODlcdTA3YTZfXHUwNzg3XHUw'@; put 'N2E2XHUwNzgyXHUwN2IwX1x1MDc4NFx1MDdhYVx1MDc4Ylx1MDdhNl9cdTA3ODRcdTA3YWFcdTA3ODNcdTA3YTdfXHUwNzgwXHUwN2FhXHUwNzg2XHUwN2FhX1x1MDc4MFx1MDdhZVx1MDc4Mlx1MDdhOCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1t'@; put 'OnNzIixMOiJEL00vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNzg5XHUwNzg2fFx1MDc4OVx1MDc4YS8saXNQTTpmdW5jdGlvbihNKXtyZXR1cm4iXHUwNzg5XHUw'@; put 'NzhhIj09PU19LG1lcmlkaWVtOmZ1bmN0aW9uKE0sTyxSKXtyZXR1cm4gTTwxMj8iXHUwNzg5XHUwNzg2IjoiXHUwNzg5XHUwNzhhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA3ODlcdTA3YThcdTA3ODdcdTA3YTZcdTA3OGJcdTA3YWFdIExUIixuZXh0RGF5OiJbXHUwNzg5XHUwN2E3XHUw'@; put 'NzhiXHUwN2E2XHUwNzg5XHUwN2E3XSBMVCIsbmV4dFdlZWs6ImRkZGQgTFQiLGxhc3REYXk6IltcdTA3ODdcdTA3YThcdTA3ODdcdTA3YjBcdTA3OTRcdTA3YWNdIExUIixsYXN0V2VlazoiW1x1MDc4YVx1MDdhN1x1MDc4N1x1MDdhOFx1MDc4Y1x1MDdhYVx1MDc4OFx1MDdhOF0gZGRkZCBM'@; put 'VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNzhjXHUwN2FjXHUwNzgzXHUwN2FkXHUwNzhlXHUwN2E2XHUwNzg3XHUwN2E4ICVzIixwYXN0OiJcdTA3ODZcdTA3YWFcdTA3ODNcdTA3YThcdTA3ODJcdTA3YjAgJXMiLHM6Ilx1MDc5MFx1MDdhOFx1MDc4Nlx1MDdh'@; put 'YVx1MDc4Mlx1MDdiMFx1MDc4Y1x1MDdhYVx1MDc4Nlx1MDdhZVx1MDc4NVx1MDdhY1x1MDc4N1x1MDdiMCIsc3M6ImQlIFx1MDc5MFx1MDdhOFx1MDc4Nlx1MDdhYVx1MDc4Mlx1MDdiMFx1MDc4Y1x1MDdhYSIsbToiXHUwNzg5XHUwN2E4XHUwNzgyXHUwN2E4XHUwNzkzXHUwN2FjXHUwNzg3'@; put 'XHUwN2IwIixtbToiXHUwNzg5XHUwN2E4XHUwNzgyXHUwN2E4XHUwNzkzXHUwN2FhICVkIixoOiJcdTA3OGVcdTA3YTZcdTA3OTFcdTA3YThcdTA3ODdcdTA3YThcdTA3ODNcdTA3YWNcdTA3ODdcdTA3YjAiLGhoOiJcdTA3OGVcdTA3YTZcdTA3OTFcdTA3YThcdTA3ODdcdTA3YThcdTA3ODNc'@; put 'dTA3YWEgJWQiLGQ6Ilx1MDc4Ylx1MDdhYVx1MDc4OFx1MDdhNlx1MDc4MFx1MDdhY1x1MDc4N1x1MDdiMCIsZGQ6Ilx1MDc4Ylx1MDdhYVx1MDc4OFx1MDdhNlx1MDc5MFx1MDdiMCAlZCIsTToiXHUwNzg5XHUwN2E2XHUwNzgwXHUwN2FjXHUwNzg3XHUwN2IwIixNTToiXHUwNzg5XHUwN2E2'@; put 'XHUwNzkwXHUwN2IwICVkIix5OiJcdTA3ODdcdTA3YTZcdTA3ODBcdTA3YTZcdTA3ODNcdTA3YWNcdTA3ODdcdTA3YjAiLHl5OiJcdTA3ODdcdTA3YTZcdTA3ODBcdTA3YTZcdTA3ODNcdTA3YWEgJWQifSxwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9cdTA2MGMvZywi'@; put 'LCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKE0pe3JldHVybiBNLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2Rvdzo3LGRveToxMn19KX0oRigxNjY3NikpfSwzMTg1OTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImVs'@; put 'Iix7bW9udGhzTm9taW5hdGl2ZUVsOiJcdTAzOTlcdTAzYjFcdTAzYmRcdTAzYmZcdTAzYzVcdTAzYWNcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzJfXHUwM2E2XHUwM2I1XHUwM2IyXHUwM2MxXHUwM2JmXHUwM2M1XHUwM2FjXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5Y1x1MDNhY1x1'@; put 'MDNjMVx1MDNjNFx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTFcdTAzYzBcdTAzYzFcdTAzYWZcdTAzYmJcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzljXHUwM2FjXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5OVx1MDNiZlx1MDNjZFx1MDNiZFx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTlcdTAzYmZc'@; put 'dTAzY2RcdTAzYmJcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzkxXHUwM2NkXHUwM2IzXHUwM2JmXHUwM2M1XHUwM2MzXHUwM2M0XHUwM2JmXHUwM2MyX1x1MDNhM1x1MDNiNVx1MDNjMFx1MDNjNFx1MDNhZFx1MDNiY1x1MDNiMlx1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOWZcdTAzYmFc'@; put 'dTAzYzRcdTAzY2VcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzlkXHUwM2JmXHUwM2FkXHUwM2JjXHUwM2IyXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5NFx1MDNiNVx1MDNiYVx1MDNhZFx1MDNiY1x1MDNiMlx1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMiIuc3BsaXQo'@; put 'Il8iKSxtb250aHNHZW5pdGl2ZUVsOiJcdTAzOTlcdTAzYjFcdTAzYmRcdTAzYmZcdTAzYzVcdTAzYjFcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzVfXHUwM2E2XHUwM2I1XHUwM2IyXHUwM2MxXHUwM2JmXHUwM2M1XHUwM2IxXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5Y1x1MDNiMVx1'@; put 'MDNjMVx1MDNjNFx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOTFcdTAzYzBcdTAzYzFcdTAzYjlcdTAzYmJcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzljXHUwM2IxXHUwMzkwXHUwM2JmXHUwM2M1X1x1MDM5OVx1MDNiZlx1MDNjNVx1MDNiZFx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOTlcdTAzYmZc'@; put 'dTAzYzVcdTAzYmJcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzkxXHUwM2M1XHUwM2IzXHUwM2JmXHUwM2NkXHUwM2MzXHUwM2M0XHUwM2JmXHUwM2M1X1x1MDNhM1x1MDNiNVx1MDNjMFx1MDNjNFx1MDNiNVx1MDNiY1x1MDNiMlx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOWZcdTAzYmFc'@; put 'dTAzYzRcdTAzYzlcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzlkXHUwM2JmXHUwM2I1XHUwM2JjXHUwM2IyXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5NFx1MDNiNVx1MDNiYVx1MDNiNVx1MDNiY1x1MDNiMlx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNSIuc3BsaXQo'@; put 'Il8iKSxtb250aHM6ZnVuY3Rpb24obGUsTSl7cmV0dXJuIGxlPyJzdHJpbmciPT10eXBlb2YgTSYmL0QvLnRlc3QoTS5zdWJzdHJpbmcoMCxNLmluZGV4T2YoIk1NTU0iKSkpP3RoaXMuX21vbnRoc0dlbml0aXZlRWxbbGUubW9udGgoKV06dGhpcy5fbW9udGhzTm9taW5hdGl2ZUVsW2xlLm1v'@; put 'bnRoKCldOnRoaXMuX21vbnRoc05vbWluYXRpdmVFbH0sbW9udGhzU2hvcnQ6Ilx1MDM5OVx1MDNiMVx1MDNiZF9cdTAzYTZcdTAzYjVcdTAzYjJfXHUwMzljXHUwM2IxXHUwM2MxX1x1MDM5MVx1MDNjMFx1MDNjMV9cdTAzOWNcdTAzYjFcdTAzY2FfXHUwMzk5XHUwM2JmXHUwM2M1XHUwM2Jk'@; put 'X1x1MDM5OVx1MDNiZlx1MDNjNVx1MDNiYl9cdTAzOTFcdTAzYzVcdTAzYjNfXHUwM2EzXHUwM2I1XHUwM2MwX1x1MDM5Zlx1MDNiYVx1MDNjNF9cdTAzOWRcdTAzYmZcdTAzYjVfXHUwMzk0XHUwM2I1XHUwM2JhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTAzOWFcdTAzYzVcdTAzYzFcdTAz'@; put 'YjlcdTAzYjFcdTAzYmFcdTAzYWVfXHUwMzk0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2FkXHUwM2MxXHUwM2IxX1x1MDNhNFx1MDNjMVx1MDNhZlx1MDNjNFx1MDNiN19cdTAzYTRcdTAzYjVcdTAzYzRcdTAzYWNcdTAzYzFcdTAzYzRcdTAzYjdfXHUwM2EwXHUwM2FkXHUwM2JjXHUwM2MwXHUw'@; put 'M2M0XHUwM2I3X1x1MDNhMFx1MDNiMVx1MDNjMVx1MDNiMVx1MDNjM1x1MDNiYVx1MDNiNVx1MDNjNVx1MDNhZV9cdTAzYTNcdTAzYWNcdTAzYjJcdTAzYjJcdTAzYjFcdTAzYzRcdTAzYmYiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwMzlhXHUwM2M1XHUwM2MxX1x1MDM5NFx1MDNi'@; put 'NVx1MDNjNV9cdTAzYTRcdTAzYzFcdTAzYjlfXHUwM2E0XHUwM2I1XHUwM2M0X1x1MDNhMFx1MDNiNVx1MDNiY19cdTAzYTBcdTAzYjFcdTAzYzFfXHUwM2EzXHUwM2IxXHUwM2IyIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTAzOWFcdTAzYzVfXHUwMzk0XHUwM2I1X1x1MDNhNFx1MDNj'@; put 'MV9cdTAzYTRcdTAzYjVfXHUwM2EwXHUwM2I1X1x1MDNhMFx1MDNiMV9cdTAzYTNcdTAzYjEiLnNwbGl0KCJfIiksbWVyaWRpZW06ZnVuY3Rpb24obGUsTSxPKXtyZXR1cm4gbGU+MTE/Tz8iXHUwM2JjXHUwM2JjIjoiXHUwMzljXHUwMzljIjpPPyJcdTAzYzBcdTAzYmMiOiJcdTAzYTBcdTAz'@; put 'OWMifSxpc1BNOmZ1bmN0aW9uKGxlKXtyZXR1cm4iXHUwM2JjIj09PShsZSsiIikudG9Mb3dlckNhc2UoKVswXX0sbWVyaWRpZW1QYXJzZTovW1x1MDNhMFx1MDM5Y11cLj9cdTAzOWM/XC4/L2ksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJERC9NTS9Z'@; put 'WVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhckVsOntzYW1lRGF5OiJbXHUwM2EzXHUwM2FlXHUwM2JjXHUwM2I1XHUwM2MxXHUwM2IxIHt9XSBMVCIsbmV4dERheToiW1x1MDM5MVx1'@; put 'MDNjZFx1MDNjMVx1MDNiOVx1MDNiZiB7fV0gTFQiLG5leHRXZWVrOiJkZGRkIFt7fV0gTFQiLGxhc3REYXk6IltcdTAzYTdcdTAzYjhcdTAzYjVcdTAzYzIge31dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiA2PT09dGhpcy5kYXkoKT8iW1x1MDNjNFx1MDNiZiBcdTAzYzBcdTAz'@; put 'YzFcdTAzYmZcdTAzYjdcdTAzYjNcdTAzYmZcdTAzY2RcdTAzYmNcdTAzYjVcdTAzYmRcdTAzYmZdIGRkZGQgW3t9XSBMVCI6IltcdTAzYzRcdTAzYjdcdTAzYmQgXHUwM2MwXHUwM2MxXHUwM2JmXHUwM2I3XHUwM2IzXHUwM2JmXHUwM2NkXHUwM2JjXHUwM2I1XHUwM2JkXHUwM2I3XSBkZGRk'@; put 'IFt7fV0gTFQifSxzYW1lRWxzZToiTCJ9LGNhbGVuZGFyOmZ1bmN0aW9uKGxlLE0pe3ZhciBPPXRoaXMuX2NhbGVuZGFyRWxbbGVdLFI9TSYmTS5ob3VycygpO3JldHVybiBmdW5jdGlvbiB4KGxlKXtyZXR1cm4gdHlwZW9mIEZ1bmN0aW9uPCJ1IiYmbGUgaW5zdGFuY2VvZiBGdW5jdGlvbnx8'@; put 'IltvYmplY3QgRnVuY3Rpb25dIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChsZSl9KE8pJiYoTz1PLmFwcGx5KE0pKSxPLnJlcGxhY2UoInt9IixSJTEyPT0xPyJcdTAzYzNcdTAzYzRcdTAzYjciOiJcdTAzYzNcdTAzYzRcdTAzYjlcdTAzYzIiKX0scmVsYXRpdmVUaW1lOntm'@; put 'dXR1cmU6Ilx1MDNjM1x1MDNiNSAlcyIscGFzdDoiJXMgXHUwM2MwXHUwM2MxXHUwM2I5XHUwM2JkIixzOiJcdTAzYmJcdTAzYWZcdTAzYjNcdTAzYjEgXHUwM2I0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixzczoi'@; put 'JWQgXHUwM2I0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixtOiJcdTAzYWRcdTAzYmRcdTAzYjEgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2NjIixtbToiJWQgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUw'@; put 'M2FjIixoOiJcdTAzYmNcdTAzYWZcdTAzYjEgXHUwM2NlXHUwM2MxXHUwM2IxIixoaDoiJWQgXHUwM2NlXHUwM2MxXHUwM2I1XHUwM2MyIixkOiJcdTAzYmNcdTAzYWZcdTAzYjEgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIixkZDoiJWQgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2I1XHUwM2My'@; put 'IixNOiJcdTAzYWRcdTAzYmRcdTAzYjFcdTAzYzIgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2IxXHUwM2MyIixNTToiJWQgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2I1XHUwM2MyIix5OiJcdTAzYWRcdTAzYmRcdTAzYjFcdTAzYzIgXHUwM2M3XHUwM2MxXHUwM2NjXHUwM2JkXHUwM2JmXHUwM2My'@; put 'Iix5eToiJWQgXHUwM2M3XHUwM2MxXHUwM2NjXHUwM2JkXHUwM2I5XHUwM2IxIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx1MDNiNy8sb3JkaW5hbDoiJWRcdTAzYjciLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDU1Nzg1OmZ1bmN0aW9uKGF0LEllLEYpeyFm'@; put 'dW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiZW4tYXUiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hv'@; put 'cnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9u'@; put 'X1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1N'@; put 'TSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0'@; put 'V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVk'@; put 'IGhvdXJzIixkOiJhIGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24obSl7dmFyIGxlPW0lMTA7cmV0'@; put 'dXJuIG0rKDE9PX5+KG0lMTAwLzEwKT8idGgiOjE9PT1sZT8ic3QiOjI9PT1sZT8ibmQiOjM9PT1sZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MCxkb3k6NH19KX0oRigxNjY3NikpfSw4Mzc5MjpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVM'@; put 'b2NhbGUoImVuLWNhIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVn'@; put 'X1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdl'@; put 'ZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IllZWVktTU0tREQiLExMOiJNTU1NIEQsIFlZWVkiLExMTDoiTU1NTSBELCBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgTU1NTSBE'@; put 'LCBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVF'@; put 'bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixN'@; put 'OiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKG0pe3ZhciBsZT1tJTEwO3JldHVybiBtKygxPT1+fihtJTEwMC8xMCk/InRoIjoxPT09'@; put 'bGU/InN0IjoyPT09bGU/Im5kIjozPT09bGU/InJkIjoidGgiKX19KX0oRigxNjY3NikpfSw1NzY1MTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImVuLWdiIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0Fwcmls'@; put 'X01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRh'@; put 'eV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0'@; put 'ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6'@; put 'IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBm'@; put 'ZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZN'@; put 'b250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24obSl7dmFyIGxlPW0lMTA7cmV0dXJuIG0rKDE9PX5+KG0lMTAwLzEwKT8idGgiOjE9PT1sZT8ic3QiOjI9PT1sZT8ibmQiOjM9PT1sZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19'@; put 'KX0oRigxNjY3NikpfSw4MTkyOTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImVuLWllIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVy'@; put 'X05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0'@; put 'dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJE'@; put 'RC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBM'@; put 'VCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUi'@; put 'LG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8s'@; put 'b3JkaW5hbDpmdW5jdGlvbihtKXt2YXIgbGU9bSUxMDtyZXR1cm4gbSsoMT09fn4obSUxMDAvMTApPyJ0aCI6MT09PWxlPyJzdCI6Mj09PWxlPyJuZCI6Mz09PWxlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDE5ODE4OmZ1bmN0aW9uKGF0LEllLEYpeyFm'@; put 'dW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiZW4taWwiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hv'@; put 'cnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9u'@; put 'X1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0g'@; put 'WVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVr'@; put 'OiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91'@; put 'cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihtKXt2YXIgbGU9bSUxMDtyZXR1cm4g'@; put 'bSsoMT09fn4obSUxMDAvMTApPyJ0aCI6MT09PWxlPyJzdCI6Mj09PWxlPyJuZCI6Mz09PWxlPyJyZCI6InRoIil9fSl9KEYoMTY2NzYpKX0sNjYxMjpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImVuLWluIix7bW9udGhzOiJK'@; put 'YW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQo'@; put 'Il8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9U'@; put 'aF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntz'@; put 'YW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1'@; put 'cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5'@; put 'OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKG0pe3ZhciBsZT1tJTEwO3JldHVybiBtKygxPT1+fihtJTEwMC8xMCk/InRoIjoxPT09bGU/InN0IjoyPT09bGU/Im5kIjozPT09bGU/'@; put 'InJkIjoidGgiKX0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEYoMTY2NzYpKX0sMjQ5MDA6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJlbi1ueiIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVu'@; put 'ZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2Rh'@; put 'eV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6'@; put 'e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1Rv'@; put 'bW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBz'@; put 'ZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRo'@; put 'T3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihtKXt2YXIgbGU9bSUxMDtyZXR1cm4gbSsoMT09fn4obSUxMDAvMTApPyJ0aCI6MT09PWxlPyJzdCI6Mj09PWxlPyJuZCI6Mz09PWxlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShG'@; put 'KDE2Njc2KSl9LDcyNzIxOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiZW4tc2ciLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92'@; put 'ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRh'@; put 'eSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01N'@; put 'L1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIs'@; put 'bGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1t'@; put 'OiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3Jk'@; put 'aW5hbDpmdW5jdGlvbihtKXt2YXIgbGU9bSUxMDtyZXR1cm4gbSsoMT09fn4obSUxMDAvMTApPyJ0aCI6MT09PWxlPyJzdCI6Mj09PWxlPyJuZCI6Mz09PWxlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDk1MTU5OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5j'@; put 'dGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiZW8iLHttb250aHM6ImphbnVhcm9fZmVicnVhcm9fbWFydG9fYXByaWxvX21ham9fanVuaW9fanVsaW9fYVx1MDE2ZGd1c3RvX3NlcHRlbWJyb19va3RvYnJvX25vdmVtYnJvX2RlY2VtYnJvIi5zcGxpdCgiXyIpLG1vbnRo'@; put 'c1Nob3J0OiJqYW5fZmViX21hcnRfYXByX21hal9qdW5fanVsX2FcdTAxNmRnX3NlcHRfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRpbWFuXHUwMTA5b19sdW5kb19tYXJkb19tZXJrcmVkb19cdTAxMzVhXHUwMTZkZG9fdmVuZHJlZG9fc2FiYXRvIi5zcGxpdCgiXyIpLHdl'@; put 'ZWtkYXlzU2hvcnQ6ImRpbV9sdW5fbWFyZF9tZXJrX1x1MDEzNWFcdTAxNmRfdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGlfbHVfbWFfbWVfXHUwMTM1YV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZ'@; put 'LU1NLUREIixMTDoiW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWSIsTExMOiJbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixMTExMOiJkZGRkW25dLCBbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIFtsYV0gRFstYW4gZGVdIE1NTSwgWVlZWSBISDpt'@; put 'bSJ9LG1lcmlkaWVtUGFyc2U6L1thcF1cLnRcLm0vaSxpc1BNOmZ1bmN0aW9uKG0pe3JldHVybiJwIj09PW0uY2hhckF0KDApLnRvTG93ZXJDYXNlKCl9LG1lcmlkaWVtOmZ1bmN0aW9uKG0sbGUsTSl7cmV0dXJuIG0+MTE/TT8icC50Lm0uIjoiUC5ULk0uIjpNPyJhLnQubS4iOiJBLlQuTS4i'@; put 'fSxjYWxlbmRhcjp7c2FtZURheToiW0hvZGlhXHUwMTZkIGplXSBMVCIsbmV4dERheToiW01vcmdhXHUwMTZkIGplXSBMVCIsbmV4dFdlZWs6ImRkZGRbbiBqZV0gTFQiLGxhc3REYXk6IltIaWVyYVx1MDE2ZCBqZV0gTFQiLGxhc3RXZWVrOiJbcGFzaW50YW5dIGRkZGRbbiBqZV0gTFQiLHNh'@; put 'bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InBvc3QgJXMiLHBhc3Q6ImFudGFcdTAxNmQgJXMiLHM6ImtlbGthaiBzZWt1bmRvaiIsc3M6IiVkIHNla3VuZG9qIixtOiJ1bnUgbWludXRvIixtbToiJWQgbWludXRvaiIsaDoidW51IGhvcm8iLGhoOiIlZCBob3JvaiIsZDoidW51'@; put 'IHRhZ28iLGRkOiIlZCB0YWdvaiIsTToidW51IG1vbmF0byIsTU06IiVkIG1vbmF0b2oiLHk6InVudSBqYXJvIix5eToiJWQgamFyb2oifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9YS8sb3JkaW5hbDoiJWRhIix3ZWVrOntkb3c6MSxkb3k6N319KX0oRigxNjY3NikpfSwxMTc4'@; put 'MDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksbT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBf'@; put 'b2N0X25vdl9kaWMiLnNwbGl0KCJfIiksbGU9Wy9eZW5lL2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxNPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5p'@; put 'b3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7YWUuZGVmaW5lTG9jYWxlKCJlcy1kbyIs'@; put 'e21vbnRoczoiZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihSLHope3JldHVybiBSPy8tTU1NLS8udGVzdCh6KT9tW1Iu'@; put 'bW9udGgoKV06eFtSLm1vbnRoKCldOnh9LG1vbnRoc1JlZ2V4Ok0sbW9udGhzU2hvcnRSZWdleDpNLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1i'@; put 'cmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaSxtb250aHNQYXJzZTpsZSxsb25nTW9udGhzUGFyc2U6bGUsc2hvcnRNb250aHNQ'@; put 'YXJzZTpsZSx3ZWVrZGF5czoiZG9taW5nb19sdW5lc19tYXJ0ZXNfbWlceGU5cmNvbGVzX2p1ZXZlc192aWVybmVzX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkb20uX2x1bi5fbWFyLl9taVx4ZTkuX2p1ZS5fdmllLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlz'@; put 'TWluOiJkb19sdV9tYV9taV9qdV92aV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1N'@; put 'IFtkZV0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG95IGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIlttYVx4ZjFhbmEgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltheWVyIGEgbGEi'@; put 'KygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW4gJXMiLHBh'@; put 'c3Q6ImhhY2UgJXMiLHM6InVub3Mgc2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIsbToidW4gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsdzoidW5hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMi'@; put 'LE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBhXHhmMW8iLHl5OiIlZCBhXHhmMW9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sMjM0Njg6ZnVuY3Rpb24oYXQsSWUs'@; put 'Ril7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9ImVuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuIi5zcGxpdCgiXyIpLG09ImVuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljIi5zcGxp'@; put 'dCgiXyIpLGxlPVsvXmVuZS9pLC9eZmViL2ksL15tYXIvaSwvXmFici9pLC9ebWF5L2ksL15qdW4vaSwvXmp1bC9pLC9eYWdvL2ksL15zZXAvaSwvXm9jdC9pLC9ebm92L2ksL15kaWMvaV0sTT0vXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNl'@; put 'cHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pO2FlLmRlZmluZUxvY2FsZSgiZXMtbXgiLHttb250aHM6ImVuZXJvX2Zl'@; put 'YnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oUix6KXtyZXR1cm4gUj8vLU1NTS0vLnRlc3Qoeik/bVtSLm1vbnRoKCldOnhbUi5tb250'@; put 'aCgpXTp4fSxtb250aHNSZWdleDpNLG1vbnRoc1Nob3J0UmVnZXg6TSxtb250aHNTdHJpY3RSZWdleDovXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLG1vbnRoc1Nob3J0'@; put 'U3RyaWN0UmVnZXg6L14oZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2ksbW9udGhzUGFyc2U6bGUsbG9uZ01vbnRoc1BhcnNlOmxlLHNob3J0TW9udGhzUGFyc2U6bGUsd2Vla2RheXM6'@; put 'ImRvbWluZ29fbHVuZXNfbWFydGVzX21pXHhlOXJjb2xlc19qdWV2ZXNfdmllcm5lc19zXHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tLl9sdW4uX21hci5fbWlceGU5Ll9qdWUuX3ZpZS5fc1x4ZTFiLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWlf'@; put 'anVfdmlfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIixMTExM'@; put 'OiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhmMWFuYSBhIGxhIisoMSE9'@; put 'PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F5ZXIgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIi'@; put 'KSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbiAlcyIscGFzdDoiaGFjZSAlcyIsczoidW5vcyBzZWd1'@; put 'bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5hIix3dzoiJWQgc2VtYW5hcyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMi'@; put 'LHk6InVuIGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MCxkb3k6NH0saW52YWxpZERhdGU6IkZlY2hhIGludlx4ZTFsaWRhIn0pfShGKDE2Njc2KSl9LDQ0OTM4OmZ1bmN0aW9u'@; put 'KGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PSJlbmUuX2ZlYi5fbWFyLl9hYnIuX21heS5fanVuLl9qdWwuX2Fnby5fc2VwLl9vY3QuX25vdi5fZGljLiIuc3BsaXQoIl8iKSxtPSJlbmVfZmViX21hcl9hYnJfbWF5X2p1bl9qdWxfYWdvX3NlcF9vY3Rfbm92X2Rp'@; put 'YyIuc3BsaXQoIl8iKSxsZT1bL15lbmUvaSwvXmZlYi9pLC9ebWFyL2ksL15hYnIvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmFnby9pLC9ec2VwL2ksL15vY3QvaSwvXm5vdi9pLC9eZGljL2ldLE09L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFn'@; put 'b3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaTthZS5kZWZpbmVMb2NhbGUoImVzLXVzIix7bW9udGhzOiJl'@; put 'bmVyb19mZWJyZXJvX21hcnpvX2FicmlsX21heW9fanVuaW9fanVsaW9fYWdvc3RvX3NlcHRpZW1icmVfb2N0dWJyZV9ub3ZpZW1icmVfZGljaWVtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OmZ1bmN0aW9uKFIseil7cmV0dXJuIFI/Ly1NTU0tLy50ZXN0KHopP21bUi5tb250aCgpXTp4'@; put 'W1IubW9udGgoKV06eH0sbW9udGhzUmVnZXg6TSxtb250aHNTaG9ydFJlZ2V4Ok0sbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxtb250'@; put 'aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOmxlLGxvbmdNb250aHNQYXJzZTpsZSxzaG9ydE1vbnRoc1BhcnNlOmxlLHdl'@; put 'ZWtkYXlzOiJkb21pbmdvX2x1bmVzX21hcnRlc19taVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1'@; put 'X21hX21pX2p1X3ZpX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6Ik1NL0REL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZ'@; put 'IGg6bW0gQSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhm'@; put 'MWFuYSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F5ZXIgYSBsYSIrKDEhPT10aGlz'@; put 'LmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbiAlcyIscGFzdDoiaGFjZSAl'@; put 'cyIsczoidW5vcyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5hIix3dzoiJWQgc2VtYW5hcyIsTToidW4gbWVz'@; put 'IixNTToiJWQgbWVzZXMiLHk6InVuIGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MCxkb3k6Nn19KX0oRigxNjY3NikpfSwyMTk1NDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rp'@; put 'b24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksbT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksbGU9'@; put 'Wy9eZW5lL2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxNPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxv'@; put 'Y3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7YWUuZGVmaW5lTG9jYWxlKCJlcyIse21vbnRoczoiZW5lcm9fZmVicmVyb19tYXJ6b19h'@; put 'YnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihSLHope3JldHVybiBSPy8tTU1NLS8udGVzdCh6KT9tW1IubW9udGgoKV06eFtSLm1vbnRoKCldOnh9LG1vbnRo'@; put 'c1JlZ2V4Ok0sbW9udGhzU2hvcnRSZWdleDpNLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDov'@; put 'XihlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaSxtb250aHNQYXJzZTpsZSxsb25nTW9udGhzUGFyc2U6bGUsc2hvcnRNb250aHNQYXJzZTpsZSx3ZWVrZGF5czoiZG9taW5nb19sdW5l'@; put 'c19tYXJ0ZXNfbWlceGU5cmNvbGVzX2p1ZXZlc192aWVybmVzX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkb20uX2x1bi5fbWFyLl9taVx4ZTkuX2p1ZS5fdmllLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9taV9qdV92aV9zXHhlMSIu'@; put 'c3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgW2Rl'@; put 'XSBNTU1NIFtkZV0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2hveSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbbWFceGYxYW5hIGEgbGEiKygxIT09dGhpcy5ob3Vycygp'@; put 'PyJzIjoiIikrIl0gTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFthIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbYXllciBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFz'@; put 'dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW2VsXSBkZGRkIFtwYXNhZG8gYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVuICVzIixwYXN0OiJoYWNlICVzIixzOiJ1bm9zIHNlZ3VuZG9zIixzczoiJWQg'@; put 'c2VndW5kb3MiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6InVuYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6InVuIGRceGVkYSIsZGQ6IiVkIGRceGVkYXMiLHc6InVuYSBzZW1hbmEiLHd3OiIlZCBzZW1hbmFzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYVx4ZjFv'@; put 'Iix5eToiJWQgYVx4ZjFvcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fSxpbnZhbGlkRGF0ZToiRmVjaGEgaW52XHhlMWxpZGEifSl9KEYoMTY2NzYpKX0sMTE0NTM6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1'@; put 'bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geChsZSxNLE8sUil7dmFyIHo9e3M6WyJtXHhmNW5lIHNla3VuZGkiLCJtXHhmNW5pIHNla3VuZCIsInBhYXIgc2VrdW5kaXQiXSxzczpbbGUrInNla3VuZGkiLGxlKyJzZWt1bmRpdCJdLG06WyJceGZjaGUgbWludXRpIiwiXHhmY2tz'@; put 'IG1pbnV0Il0sbW06W2xlKyIgbWludXRpIixsZSsiIG1pbnV0aXQiXSxoOlsiXHhmY2hlIHR1bm5pIiwidHVuZCBhZWdhIiwiXHhmY2tzIHR1bmQiXSxoaDpbbGUrIiB0dW5uaSIsbGUrIiB0dW5kaSJdLGQ6WyJceGZjaGUgcFx4ZTRldmEiLCJceGZja3MgcFx4ZTRldiJdLE06WyJrdXUgYWph'@; put 'Iiwia3V1IGFlZ2EiLCJceGZja3Mga3V1Il0sTU06W2xlKyIga3V1IixsZSsiIGt1dWQiXSx5OlsiXHhmY2hlIGFhc3RhIiwiYWFzdGEiLCJceGZja3MgYWFzdGEiXSx5eTpbbGUrIiBhYXN0YSIsbGUrIiBhYXN0YXQiXX07cmV0dXJuIE0/eltPXVsyXT96W09dWzJdOnpbT11bMV06Uj96W09d'@; put 'WzBdOnpbT11bMV19YWUuZGVmaW5lTG9jYWxlKCJldCIse21vbnRoczoiamFhbnVhcl92ZWVicnVhcl9tXHhlNHJ0c19hcHJpbGxfbWFpX2p1dW5pX2p1dWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b29iZXJfbm92ZW1iZXJfZGV0c2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYWFu'@; put 'X3ZlZWJyX21ceGU0cnRzX2Fwcl9tYWlfanV1bmlfanV1bGlfYXVnX3NlcHRfb2t0X25vdl9kZXRzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJwXHhmY2hhcFx4ZTRldl9lc21hc3BceGU0ZXZfdGVpc2lwXHhlNGV2X2tvbG1hcFx4ZTRldl9uZWxqYXBceGU0ZXZfcmVlZGVfbGF1cFx4ZTRldiIu'@; put 'c3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJQX0VfVF9LX05fUl9MIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJQX0VfVF9LX05fUl9MIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixM'@; put 'TEw6IkQuIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVFx4ZTRuYSxdIExUIixuZXh0RGF5OiJbSG9tbWUsXSBMVCIsbmV4dFdlZWs6IltKXHhlNHJnbWluZV0gZGRkZCBMVCIsbGFzdERheToiW0VpbGUsXSBMVCIs'@; put 'bGFzdFdlZWs6IltFZWxtaW5lXSBkZGRkIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBwXHhlNHJhc3QiLHBhc3Q6IiVzIHRhZ2FzaSIsczp4LHNzOngsbTp4LG1tOngsaDp4LGhoOngsZDp4LGRkOiIlZCBwXHhlNGV2YSIsTTp4LE1NOngseTp4LHl5Onh9LGRh'@; put 'eU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSw0NDY5NzpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImV1Iix7bW9udGhzOiJ1cnRh'@; put 'cnJpbGFfb3RzYWlsYV9tYXJ0eG9hX2FwaXJpbGFfbWFpYXR6YV9la2FpbmFfdXp0YWlsYV9hYnV6dHVhX2lyYWlsYV91cnJpYV9hemFyb2FfYWJlbmR1YSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoidXJ0Ll9vdHMuX21hci5fYXBpLl9tYWkuX2VrYS5fdXp0Ll9hYnUuX2lyYS5fdXJyLl9h'@; put 'emEuX2FiZS4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiaWdhbmRlYV9hc3RlbGVoZW5hX2FzdGVhcnRlYV9hc3RlYXprZW5hX29zdGVndW5hX29zdGlyYWxhX2xhcnVuYmF0YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJpZy5fYWwuX2FyLl9hei5fb2cu'@; put 'X29sLl9sci4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImlnX2FsX2FyX2F6X29nX29sX2xyIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiWVlZWVtrb10gTU1NTVty'@; put 'ZW5dIERbYV0iLExMTDoiWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0iLExMTEw6ImRkZGQsIFlZWVlba29dIE1NTU1bcmVuXSBEW2FdIEhIOm1tIixsOiJZWVlZLU0tRCIsbGw6IllZWVlba29dIE1NTSBEW2FdIixsbGw6IllZWVlba29dIE1NTSBEW2FdIEhIOm1tIixsbGxsOiJkZGQs'@; put 'IFlZWVlba29dIE1NTSBEW2FdIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltnYXVyXSBMVFtldGFuXSIsbmV4dERheToiW2JpaGFyXSBMVFtldGFuXSIsbmV4dFdlZWs6ImRkZGQgTFRbZXRhbl0iLGxhc3REYXk6IlthdHpvXSBMVFtldGFuXSIsbGFzdFdlZWs6IlthdXJyZWtvXSBkZGRk'@; put 'IExUW2V0YW5dIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBiYXJydSIscGFzdDoiZHVlbGEgJXMiLHM6InNlZ3VuZG8gYmF0enVrIixzczoiJWQgc2VndW5kbyIsbToibWludXR1IGJhdCIsbW06IiVkIG1pbnV0dSIsaDoib3JkdSBiYXQiLGhoOiIlZCBvcmR1Iixk'@; put 'OiJlZ3VuIGJhdCIsZGQ6IiVkIGVndW4iLE06ImhpbGFiZXRlIGJhdCIsTU06IiVkIGhpbGFiZXRlIix5OiJ1cnRlIGJhdCIseXk6IiVkIHVydGUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYp'@; put 'KX0sNTI5MDA6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9ezE6Ilx1MDZmMSIsMjoiXHUwNmYyIiwzOiJcdTA2ZjMiLDQ6Ilx1MDZmNCIsNToiXHUwNmY1Iiw2OiJcdTA2ZjYiLDc6Ilx1MDZmNyIsODoiXHUwNmY4Iiw5OiJcdTA2ZjkiLDA6Ilx1'@; put 'MDZmMCJ9LG09eyJcdTA2ZjEiOiIxIiwiXHUwNmYyIjoiMiIsIlx1MDZmMyI6IjMiLCJcdTA2ZjQiOiI0IiwiXHUwNmY1IjoiNSIsIlx1MDZmNiI6IjYiLCJcdTA2ZjciOiI3IiwiXHUwNmY4IjoiOCIsIlx1MDZmOSI6IjkiLCJcdTA2ZjAiOiIwIn07YWUuZGVmaW5lTG9jYWxlKCJmYSIse21v'@; put 'bnRoczoiXHUwNjk4XHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNmNjXHUwNjQ3X1x1MDY0MVx1MDY0OFx1MDYzMVx1MDZjY1x1MDY0N19cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIyXHUwNjQ4XHUwNjMxXHUwNmNjXHUwNjQ0X1x1MDY0NVx1MDY0N19cdTA2OThcdTA2NDhcdTA2MjZcdTA2'@; put 'NDZfXHUwNjk4XHUwNjQ4XHUwNjI2XHUwNmNjXHUwNjQ3X1x1MDYyN1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2N2VcdTA2MmFcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjI3XHUwNmE5XHUwNjJhXHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9c'@; put 'dTA2MmZcdTA2MzNcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDY5OFx1MDYyN1x1MDY0Nlx1MDY0OFx1MDZjY1x1MDY0N19cdTA2NDFcdTA2NDhcdTA2MzFcdTA2Y2NcdTA2NDdfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyMlx1MDY0'@; put 'OFx1MDYzMVx1MDZjY1x1MDY0NF9cdTA2NDVcdTA2NDdfXHUwNjk4XHUwNjQ4XHUwNjI2XHUwNjQ2X1x1MDY5OFx1MDY0OFx1MDYyNlx1MDZjY1x1MDY0N19cdTA2MjdcdTA2NDhcdTA2MmFfXHUwNjMzXHUwNjdlXHUwNjJhXHUwNjI3XHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyN1x1MDZhOVx1'@; put 'MDYyYVx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjMzXHUwNjI3XHUwNjQ1XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2Y2NcdTA2YTlcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjJmXHUw'@; put 'NjQ4XHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYzM1x1MDY0N1x1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2ODZcdTA2NDdcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjdlXHUwNjQ2XHUwNjJjXHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUw'@; put 'NjQ3X1x1MDYyY1x1MDY0NVx1MDYzOVx1MDY0N19cdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNmNjXHUwNmE5XHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYyZlx1MDY0OFx1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2'@; put 'MzNcdTA2NDdcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjg2XHUwNjQ3XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDY3ZVx1MDY0Nlx1MDYyY1x1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2NDdfXHUw'@; put 'NjM0XHUwNjQ2XHUwNjI4XHUwNjQ3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2Y2NfXHUwNjJmX1x1MDYzM19cdTA2ODZfXHUwNjdlX1x1MDYyY19cdTA2MzQiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6'@; put 'bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2NDJcdTA2MjhcdTA2NDQgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMXxcdTA2'@; put 'MjhcdTA2MzlcdTA2MmYgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMS8saXNQTTpmdW5jdGlvbihNKXtyZXR1cm4vXHUwNjI4XHUwNjM5XHUwNjJmIFx1MDYyN1x1MDYzMiBcdTA2MzhcdTA2NDdcdTA2MzEvLnRlc3QoTSl9LG1lcmlkaWVtOmZ1bmN0aW9uKE0sTyxSKXtyZXR1cm4g'@; put 'TTwxMj8iXHUwNjQyXHUwNjI4XHUwNjQ0IFx1MDYyN1x1MDYzMiBcdTA2MzhcdTA2NDdcdTA2MzEiOiJcdTA2MjhcdTA2MzlcdTA2MmYgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ1XHUwNjMxXHUwNjQ4XHUwNjMyIFx1'@; put 'MDYzM1x1MDYyN1x1MDYzOVx1MDYyYV0gTFQiLG5leHREYXk6IltcdTA2NDFcdTA2MzFcdTA2MmZcdTA2MjcgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYV0gTFQiLGxhc3REYXk6IltcdTA2MmZcdTA2Y2NcdTA2'@; put 'MzFcdTA2NDhcdTA2MzIgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDY3ZVx1MDZjY1x1MDYzNF0gW1x1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyZlx1MDYzMSAlcyIs'@; put 'cGFzdDoiJXMgXHUwNjdlXHUwNmNjXHUwNjM0IixzOiJcdTA2ODZcdTA2NDZcdTA2MmYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNmNjXHUwNjQ3IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNmNjXHUwNjQ3IixtOiJcdTA2Y2NcdTA2YTkgXHUwNjJmXHUwNjQyXHUwNmNjXHUwNjQyXHUw'@; put 'NjQ3IixtbToiJWQgXHUwNjJmXHUwNjQyXHUwNmNjXHUwNjQyXHUwNjQ3IixoOiJcdTA2Y2NcdTA2YTkgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhIixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhIixkOiJcdTA2Y2NcdTA2YTkgXHUwNjMxXHUwNjQ4XHUwNjMyIixkZDoiJWQgXHUw'@; put 'NjMxXHUwNjQ4XHUwNjMyIixNOiJcdTA2Y2NcdTA2YTkgXHUwNjQ1XHUwNjI3XHUwNjQ3IixNTToiJWQgXHUwNjQ1XHUwNjI3XHUwNjQ3Iix5OiJcdTA2Y2NcdTA2YTkgXHUwNjMzXHUwNjI3XHUwNjQ0Iix5eToiJWQgXHUwNjMzXHUwNjI3XHUwNjQ0In0scHJlcGFyc2U6ZnVuY3Rpb24oTSl7'@; put 'cmV0dXJuIE0ucmVwbGFjZSgvW1x1MDZmMC1cdTA2ZjldL2csZnVuY3Rpb24oTyl7cmV0dXJuIG1bT119KS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKE0pe3JldHVybiBNLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oTyl7cmV0dXJuIHhbT119KS5yZXBsYWNl'@; put 'KC8sL2csIlx1MDYwYyIpfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHUwNjQ1LyxvcmRpbmFsOiIlZFx1MDY0NSIsd2Vlazp7ZG93OjYsZG95OjEyfX0pfShGKDE2Njc2KSl9LDQ5Nzc1OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4'@; put 'PSJub2xsYSB5a3NpIGtha3NpIGtvbG1lIG5lbGpceGU0IHZpaXNpIGt1dXNpIHNlaXRzZW1ceGU0biBrYWhkZWtzYW4geWhkZWtzXHhlNG4iLnNwbGl0KCIgIiksbT1bIm5vbGxhIiwieWhkZW4iLCJrYWhkZW4iLCJrb2xtZW4iLCJuZWxqXHhlNG4iLCJ2aWlkZW4iLCJrdXVkZW4iLHhbN10s'@; put 'eFs4XSx4WzldXTtmdW5jdGlvbiBsZShSLHosSyxJKXt2YXIgaz0iIjtzd2l0Y2goSyl7Y2FzZSJzIjpyZXR1cm4gST8ibXV1dGFtYW4gc2VrdW5uaW4iOiJtdXV0YW1hIHNla3VudGkiO2Nhc2Uic3MiOms9ST8ic2VrdW5uaW4iOiJzZWt1bnRpYSI7YnJlYWs7Y2FzZSJtIjpyZXR1cm4gST8i'@; put 'bWludXV0aW4iOiJtaW51dXR0aSI7Y2FzZSJtbSI6az1JPyJtaW51dXRpbiI6Im1pbnV1dHRpYSI7YnJlYWs7Y2FzZSJoIjpyZXR1cm4gST8idHVubmluIjoidHVudGkiO2Nhc2UiaGgiOms9ST8idHVubmluIjoidHVudGlhIjticmVhaztjYXNlImQiOnJldHVybiBJPyJwXHhlNGl2XHhlNG4i'@; put 'OiJwXHhlNGl2XHhlNCI7Y2FzZSJkZCI6az1JPyJwXHhlNGl2XHhlNG4iOiJwXHhlNGl2XHhlNFx4ZTQiO2JyZWFrO2Nhc2UiTSI6cmV0dXJuIEk/Imt1dWthdWRlbiI6Imt1dWthdXNpIjtjYXNlIk1NIjprPUk/Imt1dWthdWRlbiI6Imt1dWthdXR0YSI7YnJlYWs7Y2FzZSJ5IjpyZXR1cm4g'@; put 'ST8idnVvZGVuIjoidnVvc2kiO2Nhc2UieXkiOms9ST8idnVvZGVuIjoidnVvdHRhIn1yZXR1cm4gZnVuY3Rpb24gTShSLHope3JldHVybiBSPDEwP3o/bVtSXTp4W1JdOlJ9KFIsSSkrIiAiK2t9YWUuZGVmaW5lTG9jYWxlKCJmaSIse21vbnRoczoidGFtbWlrdXVfaGVsbWlrdXVfbWFhbGlz'@; put 'a3V1X2h1aHRpa3V1X3RvdWtva3V1X2tlc1x4ZTRrdXVfaGVpblx4ZTRrdXVfZWxva3V1X3N5eXNrdXVfbG9rYWt1dV9tYXJyYXNrdXVfam91bHVrdXUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6InRhbW1pX2hlbG1pX21hYWxpc19odWh0aV90b3Vrb19rZXNceGU0X2hlaW5ceGU0X2Vsb19z'@; put 'eXlzX2xva2FfbWFycmFzX2pvdWx1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdW5udW50YWlfbWFhbmFudGFpX3RpaXN0YWlfa2Vza2l2aWlra29fdG9yc3RhaV9wZXJqYW50YWlfbGF1YW50YWkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic3VfbWFfdGlfa2VfdG9fcGVfbGEiLnNwbGl0'@; put 'KCJfIiksd2Vla2RheXNNaW46InN1X21hX3RpX2tlX3RvX3BlX2xhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkRELk1NLllZWVkiLExMOiJEbyBNTU1NW3RhXSBZWVlZIixMTEw6IkRvIE1NTU1bdGFdIFlZWVksIFtrbG9dIEhILm1t'@; put 'IixMTExMOiJkZGRkLCBEbyBNTU1NW3RhXSBZWVlZLCBba2xvXSBISC5tbSIsbDoiRC5NLllZWVkiLGxsOiJEbyBNTU0gWVlZWSIsbGxsOiJEbyBNTU0gWVlZWSwgW2tsb10gSEgubW0iLGxsbGw6ImRkZCwgRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilt0'@; put 'XHhlNG5ceGU0XHhlNG5dIFtrbG9dIExUIixuZXh0RGF5OiJbaHVvbWVubmFdIFtrbG9dIExUIixuZXh0V2VlazoiZGRkZCBba2xvXSBMVCIsbGFzdERheToiW2VpbGVuXSBba2xvXSBMVCIsbGFzdFdlZWs6Ilt2aWltZV0gZGRkZFtuYV0gW2tsb10gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRp'@; put 'dmVUaW1lOntmdXR1cmU6IiVzIHBceGU0XHhlNHN0XHhlNCIscGFzdDoiJXMgc2l0dGVuIixzOmxlLHNzOmxlLG06bGUsbW06bGUsaDpsZSxoaDpsZSxkOmxlLGRkOmxlLE06bGUsTU06bGUseTpsZSx5eTpsZX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIl'@; put 'ZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDY0MjgyOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiZmlsIix7bW9udGhzOiJFbmVyb19QZWJyZXJvX01hcnNvX0FicmlsX01heW9fSHVueW9fSHVseW9fQWdv'@; put 'c3RvX1NldHllbWJyZV9Pa3R1YnJlX05vYnllbWJyZV9EaXN5ZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IkVuZV9QZWJfTWFyX0Ficl9NYXlfSHVuX0h1bF9BZ29fU2V0X09rdF9Ob2JfRGlzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJMaW5nZ29fTHVuZXNfTWFydGVzX01peWVya3Vs'@; put 'ZXNfSHV3ZWJlc19CaXllcm5lc19TYWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiTGluX0x1bl9NYXJfTWl5X0h1d19CaXlfU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJMaV9MdV9NYV9NaV9IdV9CaV9TYWIiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDpt'@; put 'bSIsTFRTOiJISDptbTpzcyIsTDoiTU0vRC9ZWVlZIixMTDoiTU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBISDptbSIsTExMTDoiZGRkZCwgTU1NTSBERCwgWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJMVCBbbmdheW9uZyBhcmF3XSIsbmV4dERheToiW0J1a2FzIG5n'@; put 'XSBMVCIsbmV4dFdlZWs6IkxUIFtzYSBzdXN1bm9kIG5hXSBkZGRkIixsYXN0RGF5OiJMVCBba2FoYXBvbl0iLGxhc3RXZWVrOiJMVCBbbm9vbmcgbmFrYXJhYW5nXSBkZGRkIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJzYSBsb29iIG5nICVzIixwYXN0OiIlcyBhbmcg'@; put 'bmFrYWxpcGFzIixzOiJpbGFuZyBzZWd1bmRvIixzczoiJWQgc2VndW5kbyIsbToiaXNhbmcgbWludXRvIixtbToiJWQgbWludXRvIixoOiJpc2FuZyBvcmFzIixoaDoiJWQgb3JhcyIsZDoiaXNhbmcgYXJhdyIsZGQ6IiVkIGFyYXciLE06ImlzYW5nIGJ1d2FuIixNTToiJWQgYnV3YW4iLHk6'@; put 'ImlzYW5nIHRhb24iLHl5OiIlZCB0YW9uIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8sb3JkaW5hbDpmdW5jdGlvbihtKXtyZXR1cm4gbX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sODQyMzY6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNl'@; put 'IHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJmbyIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFyc19hcHJceGVkbF9tYWlfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2ZlYl9tYXJfYXBy'@; put 'X21haV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6InN1bm51ZGFndXJfbVx4ZTFuYWRhZ3VyX3RceGZkc2RhZ3VyX21pa3VkYWd1cl9oXHhmM3NkYWd1cl9mclx4ZWRnZ2phZGFndXJfbGV5Z2FyZGFndXIiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9y'@; put 'dDoic3VuX21ceGUxbl90XHhmZHNfbWlrX2hceGYzc19mclx4ZWRfbGV5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJzdV9tXHhlMV90XHhmZF9taV9oXHhmM19mcl9sZSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZ'@; put 'IixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSwgWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHhjZCBkYWcga2wuXSBMVCIsbmV4dERheToiW1x4Y2QgbW9yZ2luIGtsLl0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbC5d'@; put 'IExUIixsYXN0RGF5OiJbXHhjZCBnalx4ZTFyIGtsLl0gTFQiLGxhc3RXZWVrOiJbc1x4ZWRceGYwc3R1XSBkZGRkIFtrbF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InVtICVzIixwYXN0OiIlcyBzXHhlZFx4ZjBhbmkiLHM6ImZceGUxIHNla3VuZCIsc3M6IiVk'@; put 'IHNla3VuZGlyIixtOiJlaW4gbWludXR0dXIiLG1tOiIlZCBtaW51dHRpciIsaDoiZWluIHRceGVkbWkiLGhoOiIlZCB0XHhlZG1hciIsZDoiZWluIGRhZ3VyIixkZDoiJWQgZGFnYXIiLE06ImVpbiBtXHhlMW5hXHhmMHVyIixNTToiJWQgbVx4ZTFuYVx4ZjBpciIseToiZWl0dCBceGUxciIs'@; put 'eXk6IiVkIFx4ZTFyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDkyODMwOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgi'@; put 'ZnItY2EiLHttb250aHM6ImphbnZpZXJfZlx4ZTl2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW9ceGZidF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kXHhlOWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFudi5fZlx4ZTl2ci5fbWFyc19hdnIuX21haV9q'@; put 'dWluX2p1aWwuX2FvXHhmYnRfc2VwdC5fb2N0Ll9ub3YuX2RceGU5Yy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRp'@; put 'bS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRpX2x1X21hX21lX2plX3ZlX3NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1N'@; put 'LUREIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0F1am91cmRcdTIwMTlodWkgXHhlMF0gTFQiLG5leHREYXk6IltEZW1haW4gXHhlMF0gTFQiLG5leHRXZWVrOiJkZGRk'@; put 'IFtceGUwXSBMVCIsbGFzdERheToiW0hpZXIgXHhlMF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtkZXJuaWVyIFx4ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYW5zICVzIixwYXN0OiJpbCB5IGEgJXMiLHM6InF1ZWxxdWVzIHNlY29uZGVzIixzczoiJWQgc2Vj'@; put 'b25kZXMiLG06InVuZSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJ1bmUgaGV1cmUiLGhoOiIlZCBoZXVyZXMiLGQ6InVuIGpvdXIiLGRkOiIlZCBqb3VycyIsTToidW4gbW9pcyIsTU06IiVkIG1vaXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTov'@; put 'XGR7MSwyfShlcnxlKS8sb3JkaW5hbDpmdW5jdGlvbihtLGxlKXtzd2l0Y2gobGUpe2RlZmF1bHQ6Y2FzZSJNIjpjYXNlIlEiOmNhc2UiRCI6Y2FzZSJEREQiOmNhc2UiZCI6cmV0dXJuIG0rKDE9PT1tPyJlciI6ImUiKTtjYXNlInciOmNhc2UiVyI6cmV0dXJuIG0rKDE9PT1tPyJyZSI6ImUi'@; put 'KX19fSl9KEYoMTY2NzYpKX0sMjE0MTI6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJmci1jaCIse21vbnRoczoiamFudmllcl9mXHhlOXZyaWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb1x4ZmJ0X3NlcHRlbWJy'@; put 'ZV9vY3RvYnJlX25vdmVtYnJlX2RceGU5Y2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW52Ll9mXHhlOXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW9ceGZidF9zZXB0Ll9vY3QuX25vdi5fZFx4ZTljLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtk'@; put 'YXlzOiJkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2FtLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGlfbHVfbWFfbWVfamVfdmVfc2Ei'@; put 'LnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNh'@; put 'bGVuZGFyOntzYW1lRGF5OiJbQXVqb3VyZFx1MjAxOWh1aSBceGUwXSBMVCIsbmV4dERheToiW0RlbWFpbiBceGUwXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBdIExUIixsYXN0RGF5OiJbSGllciBceGUwXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Rlcm5pZXIgXHhlMF0gTFQiLHNhbWVFbHNl'@; put 'OiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhbnMgJXMiLHBhc3Q6ImlsIHkgYSAlcyIsczoicXVlbHF1ZXMgc2Vjb25kZXMiLHNzOiIlZCBzZWNvbmRlcyIsbToidW5lIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6InVuZSBoZXVyZSIsaGg6IiVkIGhldXJlcyIsZDoidW4gam91ciIs'@; put 'ZGQ6IiVkIGpvdXJzIixNOiJ1biBtb2lzIixNTToiJWQgbW9pcyIseToidW4gYW4iLHl5OiIlZCBhbnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGVyfGUpLyxvcmRpbmFsOmZ1bmN0aW9uKG0sbGUpe3N3aXRjaChsZSl7ZGVmYXVsdDpjYXNlIk0iOmNhc2UiUSI6Y2FzZSJE'@; put 'IjpjYXNlIkRERCI6Y2FzZSJkIjpyZXR1cm4gbSsoMT09PW0/ImVyIjoiZSIpO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gbSsoMT09PW0/InJlIjoiZSIpfX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sODkzNjE6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNl'@; put 'IHN0cmljdCI7dmFyIGxlPS8oamFudlwuP3xmXHhlOXZyXC4/fG1hcnN8YXZyXC4/fG1haXxqdWlufGp1aWxcLj98YW9ceGZidHxzZXB0XC4/fG9jdFwuP3xub3ZcLj98ZFx4ZTljXC4/fGphbnZpZXJ8Zlx4ZTl2cmllcnxtYXJzfGF2cmlsfG1haXxqdWlufGp1aWxsZXR8YW9ceGZidHxzZXB0'@; put 'ZW1icmV8b2N0b2JyZXxub3ZlbWJyZXxkXHhlOWNlbWJyZSkvaSxNPVsvXmphbnYvaSwvXmZceGU5dnIvaSwvXm1hcnMvaSwvXmF2ci9pLC9ebWFpL2ksL15qdWluL2ksL15qdWlsL2ksL15hb1x4ZmJ0L2ksL15zZXB0L2ksL15vY3QvaSwvXm5vdi9pLC9eZFx4ZTljL2ldO2FlLmRlZmluZUxv'@; put 'Y2FsZSgiZnIiLHttb250aHM6ImphbnZpZXJfZlx4ZTl2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW9ceGZidF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kXHhlOWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFudi5fZlx4ZTl2ci5fbWFyc19hdnIuX21h'@; put 'aV9qdWluX2p1aWwuX2FvXHhmYnRfc2VwdC5fb2N0Ll9ub3YuX2RceGU5Yy4iLnNwbGl0KCJfIiksbW9udGhzUmVnZXg6bGUsbW9udGhzU2hvcnRSZWdleDpsZSxtb250aHNTdHJpY3RSZWdleDovXihqYW52aWVyfGZceGU5dnJpZXJ8bWFyc3xhdnJpbHxtYWl8anVpbnxqdWlsbGV0fGFvXHhm'@; put 'YnR8c2VwdGVtYnJlfG9jdG9icmV8bm92ZW1icmV8ZFx4ZTljZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovKGphbnZcLj98Zlx4ZTl2clwuP3xtYXJzfGF2clwuP3xtYWl8anVpbnxqdWlsXC4/fGFvXHhmYnR8c2VwdFwuP3xvY3RcLj98bm92XC4/fGRceGU5Y1wuPykvaSxtb250'@; put 'aHNQYXJzZTpNLGxvbmdNb250aHNQYXJzZTpNLHNob3J0TW9udGhzUGFyc2U6TSx3ZWVrZGF5czoiZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4u'@; put 'X3NhbS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRpX2x1X21hX21lX2plX3ZlX3NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoi'@; put 'RCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0F1am91cmRcdTIwMTlodWkgXHhlMF0gTFQiLG5leHREYXk6IltEZW1haW4gXHhlMF0gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwXSBMVCIsbGFzdERheToiW0hpZXIg'@; put 'XHhlMF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtkZXJuaWVyIFx4ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYW5zICVzIixwYXN0OiJpbCB5IGEgJXMiLHM6InF1ZWxxdWVzIHNlY29uZGVzIixzczoiJWQgc2Vjb25kZXMiLG06InVuZSBtaW51dGUiLG1tOiIl'@; put 'ZCBtaW51dGVzIixoOiJ1bmUgaGV1cmUiLGhoOiIlZCBoZXVyZXMiLGQ6InVuIGpvdXIiLGRkOiIlZCBqb3VycyIsdzoidW5lIHNlbWFpbmUiLHd3OiIlZCBzZW1haW5lcyIsTToidW4gbW9pcyIsTU06IiVkIG1vaXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5T2ZNb250aE9yZGluYWxQ'@; put 'YXJzZTovXGR7MSwyfShlcnwpLyxvcmRpbmFsOmZ1bmN0aW9uKFIseil7c3dpdGNoKHope2Nhc2UiRCI6cmV0dXJuIFIrKDE9PT1SPyJlciI6IiIpO2RlZmF1bHQ6Y2FzZSJNIjpjYXNlIlEiOmNhc2UiREREIjpjYXNlImQiOnJldHVybiBSKygxPT09Uj8iZXIiOiJlIik7Y2FzZSJ3IjpjYXNl'@; put 'IlciOnJldHVybiBSKygxPT09Uj8icmUiOiJlIil9fSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSw2Njk4NDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD0iamFuLl9mZWIuX21ydC5fYXByLl9tYWlfanVuLl9qdWwuX2F1Zy5fc2Vw'@; put 'Ll9va3QuX25vdi5fZGVzLiIuc3BsaXQoIl8iKSxtPSJqYW5fZmViX21ydF9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlcyIuc3BsaXQoIl8iKTthZS5kZWZpbmVMb2NhbGUoImZ5Iix7bW9udGhzOiJqYW5uZXdhcmlzX2ZlYnJld2FyaXNfbWFhcnRfYXByaWxfbWFhaWVfanVu'@; put 'eV9qdWx5X2F1Z3VzdHVzX3NlcHRpbWJlcl9va3RvYmVyX25vdmltYmVyX2Rlc2ltYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OmZ1bmN0aW9uKE0sTyl7cmV0dXJuIE0/Ly1NTU0tLy50ZXN0KE8pP21bTS5tb250aCgpXTp4W00ubW9udGgoKV06eH0sbW9udGhzUGFyc2VFeGFjdDohMCx3'@; put 'ZWVrZGF5czoic25laW5fbW9hbmRlaV90aWlzZGVpX3dvYW5zZGVpX3RvbmdlcnNkZWlfZnJlZWRfc25lb24iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic2kuX21vLl90aS5fd28uX3RvLl9mci5fc28uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTaV9Nb19UaV9Xb19Ub19Gcl9TbyIu'@; put 'c3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQtTU0tWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2Fs'@; put 'ZW5kYXI6e3NhbWVEYXk6Iltoam9lZCBvbV0gTFQiLG5leHREYXk6Ilttb2FybiBvbV0gTFQiLG5leHRXZWVrOiJkZGRkIFtvbV0gTFQiLGxhc3REYXk6IltqdXN0ZXIgb21dIExUIixsYXN0V2VlazoiW1x4ZjRmclx4ZmJuZV0gZGRkZCBbb21dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZl'@; put 'VGltZTp7ZnV0dXJlOiJvZXIgJXMiLHBhc3Q6IiVzIGx5biIsczoiaW4gcGVhciBzZWtvbmRlbiIsc3M6IiVkIHNla29uZGVuIixtOiJpZW4gbWluXHhmYXQiLG1tOiIlZCBtaW51dGVuIixoOiJpZW4gb2VyZSIsaGg6IiVkIG9lcmVuIixkOiJpZW4gZGVpIixkZDoiJWQgZGFnZW4iLE06Imll'@; put 'biBtb2FubmUiLE1NOiIlZCBtb2FubmVuIix5OiJpZW4gamllciIseXk6IiVkIGppZXJyZW4ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0ZXxkZSkvLG9yZGluYWw6ZnVuY3Rpb24oTSl7cmV0dXJuIE0rKDE9PT1NfHw4PT09TXx8TT49MjA/InN0ZSI6ImRlIil9LHdlZWs6'@; put 'e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDkzOTYxOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiZ2EiLHttb250aHM6WyJFYW5ceGUxaXIiLCJGZWFiaHJhIiwiTVx4ZTFydGEiLCJBaWJyZVx4ZTFuIiwiQmVhbHRhaW5l'@; put 'IiwiTWVpdGhlYW1oIiwiSVx4ZmFpbCIsIkxceGZhbmFzYSIsIk1lXHhlMW4gRlx4ZjNtaGFpciIsIkRlaXJlYWRoIEZceGYzbWhhaXIiLCJTYW1oYWluIiwiTm9sbGFpZyJdLG1vbnRoc1Nob3J0OlsiRWFuIiwiRmVhYmgiLCJNXHhlMXJ0IiwiQWliIiwiQmVhbCIsIk1laXRoIiwiSVx4ZmFp'@; put 'bCIsIkxceGZhbiIsIk0uRi4iLCJELkYuIiwiU2FtaCIsIk5vbGwiXSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOlsiRFx4ZTkgRG9taG5haWdoIiwiRFx4ZTkgTHVhaW4iLCJEXHhlOSBNXHhlMWlydCIsIkRceGU5IENceGU5YWRhb2luIiwiRFx4ZTlhcmRhb2luIiwiRFx4ZTkgaEFv'@; put 'aW5lIiwiRFx4ZTkgU2F0aGFpcm4iXSx3ZWVrZGF5c1Nob3J0OlsiRG9taCIsIkx1YW4iLCJNXHhlMWlydCIsIkNceGU5YWQiLCJEXHhlOWFyIiwiQW9pbmUiLCJTYXRoIl0sd2Vla2RheXNNaW46WyJEbyIsIkx1IiwiTVx4ZTEiLCJDXHhlOSIsIkRceGU5IiwiQSIsIlNhIl0sbG9uZ0RhdGVG'@; put 'b3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSW5uaXUgYWddIExUIixuZXh0RGF5OiJb'@; put 'QW1ceGUxcmFjaCBhZ10gTFQiLG5leHRXZWVrOiJkZGRkIFthZ10gTFQiLGxhc3REYXk6IltJbm5ceGU5IGFnXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3NlbyBjYWl0ZV0gW2FnXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaSAlcyIscGFzdDoiJXMgXHhmMyBzaGlu'@; put 'IixzOiJjXHhmYXBsYSBzb2ljaW5kIixzczoiJWQgc29pY2luZCIsbToiblx4ZjNpbVx4ZTlhZCIsbW06IiVkIG5ceGYzaW1ceGU5YWQiLGg6InVhaXIgYW4gY2hsb2lnIixoaDoiJWQgdWFpciBhbiBjaGxvaWciLGQ6ImxceGUxIixkZDoiJWQgbFx4ZTEiLE06Im1ceGVkIixNTToiJWQgbVx4'@; put 'ZWRvbm5hIix5OiJibGlhaW4iLHl5OiIlZCBibGlhaW4ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGR8bmF8bWgpLyxvcmRpbmFsOmZ1bmN0aW9uKHope3JldHVybiB6KygxPT09ej8iZCI6eiUxMD09Mj8ibmEiOiJtaCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3'@; put 'NikpfSw3ODg0OTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImdkIix7bW9udGhzOlsiQW0gRmFvaWxsZWFjaCIsIkFuIEdlYXJyYW4iLCJBbSBNXHhlMHJ0IiwiQW4gR2libGVhbiIsIkFuIENceGU4aXRlYW4iLCJBbiB0LVx4'@; put 'ZDJnbWhpb3MiLCJBbiB0LUl1Y2hhciIsIkFuIExceGY5bmFzdGFsIiwiQW4gdC1TdWx0YWluIiwiQW4gRFx4ZTBtaGFpciIsIkFuIHQtU2FtaGFpbiIsIkFuIERceGY5YmhsYWNoZCJdLG1vbnRoc1Nob3J0OlsiRmFvaSIsIkdlYXIiLCJNXHhlMHJ0IiwiR2libCIsIkNceGU4aXQiLCJceGQy'@; put 'Z21oIiwiSXVjaCIsIkxceGY5biIsIlN1bHQiLCJEXHhlMG1oIiwiU2FtaCIsIkRceGY5YmgiXSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOlsiRGlkXHhmMm1obmFpY2giLCJEaWx1YWluIiwiRGltXHhlMGlydCIsIkRpY2lhZGFpbiIsIkRpYXJkYW9pbiIsIkRpaGFvaW5lIiwiRGlz'@; put 'YXRoYWlybmUiXSx3ZWVrZGF5c1Nob3J0OlsiRGlkIiwiRGlsIiwiRGltIiwiRGljIiwiRGlhIiwiRGloIiwiRGlzIl0sd2Vla2RheXNNaW46WyJEXHhmMiIsIkx1IiwiTVx4ZTAiLCJDaSIsIkFyIiwiSGEiLCJTYSJdLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3Mi'@; put 'LEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0FuLWRpdWdoIGFpZ10gTFQiLG5leHREYXk6IltBLW1ceGUwaXJlYWNoIGFpZ10gTFQiLG5leHRX'@; put 'ZWVrOiJkZGRkIFthaWddIExUIixsYXN0RGF5OiJbQW4tZFx4ZTggYWlnXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3NlbyBjaGFpZGhdIFthaWddIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJhbm4gYW4gJXMiLHBhc3Q6ImJobyBjaGlvbm4gJXMiLHM6ImJlYWdhbiBk'@; put 'aW9nYW4iLHNzOiIlZCBkaW9nYW4iLG06Im1pb25haWQiLG1tOiIlZCBtaW9uYWlkZWFuIixoOiJ1YWlyIixoaDoiJWQgdWFpcmVhbiIsZDoibGF0aGEiLGRkOiIlZCBsYXRoYSIsTToibVx4ZWNvcyIsTU06IiVkIG1ceGVjb3NhbiIseToiYmxpYWRobmEiLHl5OiIlZCBibGlhZGhuYSJ9LGRh'@; put 'eU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZHxuYXxtaCkvLG9yZGluYWw6ZnVuY3Rpb24oeil7cmV0dXJuIHorKDE9PT16PyJkIjp6JTEwPT0yPyJuYSI6Im1oIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDM0MjczOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlv'@; put 'bihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiZ2wiLHttb250aHM6InhhbmVpcm9fZmVicmVpcm9fbWFyem9fYWJyaWxfbWFpb194dVx4ZjFvX3h1bGxvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2RlY2VtYnJvIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ4'@; put 'YW4uX2ZlYi5fbWFyLl9hYnIuX21haS5feHVceGYxLl94dWwuX2Fnby5fc2V0Ll9vdXQuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJkb21pbmdvX2x1bnNfbWFydGVzX21ceGU5cmNvcmVzX3hvdmVzX3ZlbnJlc19zXHhlMWJhZG8iLnNwbGl0'@; put 'KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tLl9sdW4uX21hci5fbVx4ZTlyLl94b3YuX3Zlbi5fc1x4ZTFiLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbVx4ZTlfeG9fdmVfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntM'@; put 'VDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIltob3hlICIrKDEhPT10aGlzLmhvdXJzKCk/Ilx4ZTFzIjoiXHhlMSIpKyJdIExUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbbWFceGYxXHhlMSAiKygxIT09dGhpcy5ob3VycygpPyJceGUxcyI6Ilx4ZTEiKSsiXSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0'@; put 'dXJuImRkZGQgWyIrKDEhPT10aGlzLmhvdXJzKCk/Ilx4ZTFzIjoiYSIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbb250ZSAiKygxIT09dGhpcy5ob3VycygpPyJceGUxIjoiYSIpKyJdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW29dIGRkZGQgW3Bhc2Fk'@; put 'byAiKygxIT09dGhpcy5ob3VycygpPyJceGUxcyI6ImEiKSsiXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24obSl7cmV0dXJuIDA9PT1tLmluZGV4T2YoInVuIik/Im4iK206ImVuICIrbX0scGFzdDoiaGFpICVzIixzOiJ1bnMgc2VndW5kb3MiLHNz'@; put 'OiIlZCBzZWd1bmRvcyIsbToidW4gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW5oYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6InVuIGRceGVkYSIsZGQ6IiVkIGRceGVkYXMiLE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBhbm8iLHl5OiIlZCBhbm9zIn0sZGF5T2ZNb250aE9y'@; put 'ZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNDA2MjM6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geChsZSxNLE8sUil7dmFyIHo9e3M6WyJcdTA5MjVc'@; put 'dTA5NGJcdTA5MjFcdTA5MmZcdTA5M2UgXHUwOTM4XHUwOTQ1XHUwOTE1XHUwOTAyXHUwOTIxXHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIiwiXHUwOTI1XHUwOTRiXHUwOTIxXHUwOTQ3IFx1MDkzOFx1MDk0NVx1MDkxNVx1MDkwMlx1MDkyMSJdLHNzOltsZSsiIFx1MDkzOFx1MDk0NVx1MDkx'@; put 'NVx1MDkwMlx1MDkyMVx1MDkzZVx1MDkwMlx1MDkyOFx1MDk0MCIsbGUrIiBcdTA5MzhcdTA5NDVcdTA5MTVcdTA5MDJcdTA5MjEiXSxtOlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDkzZlx1MDkyM1x1MDkxZlx1MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5M2Zc'@; put 'dTA5MjhcdTA5NDJcdTA5MWYiXSxtbTpbbGUrIiBcdTA5MmVcdTA5M2ZcdTA5MjNcdTA5MWZcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLGxlKyIgXHUwOTJlXHUwOTNmXHUwOTIzXHUwOTFmXHUwOTNlXHUwOTAyIl0saDpbIlx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MzVcdTA5MzBcdTA5M2Vc'@; put 'dTA5MjgiLCJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwIl0saGg6W2xlKyIgXHUwOTM1XHUwOTMwXHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixsZSsiIFx1MDkzNVx1MDkzMFx1MDkzZVx1MDkwMiJdLGQ6WyJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTI2XHUwOTNmXHUwOTM4XHUwOTNlXHUw'@; put 'OTI4IiwiXHUwOTBmXHUwOTE1IFx1MDkyNlx1MDk0MFx1MDkzOCJdLGRkOltsZSsiIFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkzZVx1MDkwMlx1MDkyOFx1MDk0MCIsbGUrIiBcdTA5MjZcdTA5NDBcdTA5MzgiXSxNOlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDky'@; put 'Zlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5NGRcdTA5MzlcdTA5MmZcdTA5MjhcdTA5NGIiXSxNTTpbbGUrIiBcdTA5MmVcdTA5NGRcdTA5MzlcdTA5MmZcdTA5MjhcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MjhcdTA5NDAiLGxlKyIgXHUw'@; put 'OTJlXHUwOTRkXHUwOTM5XHUwOTJmXHUwOTI4XHUwOTQ3Il0seTpbIlx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzhcdTA5M2VcdTA5MjgiLCJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4Il0seXk6W2xlKyIgXHUwOTM1XHUwOTMwXHUwOTRk'@; put 'XHUwOTM4XHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixsZSsiIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzOFx1MDkzZVx1MDkwMiJdfTtyZXR1cm4gUj96W09dWzBdOnpbT11bMV19YWUuZGVmaW5lTG9jYWxlKCJnb20tZGV2YSIse21vbnRoczp7c3RhbmRhbG9uZToiXHUwOTFjXHUwOTNlXHUw'@; put 'OTI4XHUwOTQ3XHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MVx1MDkzNVx1MDkzZVx1MDkzMFx1MDk0MF9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQwXHUwOTMyX1x1'@; put 'MDkyZVx1MDk0N19cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTJmX1x1MDkxMVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkxZl9cdTA5MzhcdTA5MmFcdTA5NGRcdTA5MWZcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRi'@; put 'XHUwOTJjXHUwOTMwX1x1MDkyOFx1MDk0Ylx1MDkzNVx1MDk0ZFx1MDkzOVx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MjFcdTA5M2ZcdTA5MzhcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIiksZm9ybWF0OiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDdcdTA5MzVcdTA5'@; put 'M2VcdTA5MzBcdTA5NDBcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxXHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYVx1MDkzZVx1MDkx'@; put 'YVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MGZcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MzJcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTJlXHUwOTQ3XHUwOTJmXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkxY1x1MDk0Mlx1MDkyOFx1MDkzZVx1MDkx'@; put 'YVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5MmZcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTExXHUwOTE3XHUwOTM4XHUwOTRkXHUwOTFmXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0'@; put 'N1x1MDkwMlx1MDkyY1x1MDkzMFx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTI4XHUwOTRiXHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3XHUwOTAy'@; put 'XHUwOTJjXHUwOTMwXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMFx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZSIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovTU1NTShccykrRFtvRF0/L30sbW9udGhzU2hv'@; put 'cnQ6Ilx1MDkxY1x1MDkzZVx1MDkyOFx1MDk0Ny5fXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxLl9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQwLl9cdTA5MmVcdTA5NDdfXHUwOTFjXHUwOTQyXHUwOTI4X1x1'@; put 'MDkxY1x1MDk0MVx1MDkzMi5fXHUwOTExXHUwOTE3Ll9cdTA5MzhcdTA5MmFcdTA5NGRcdTA5MWZcdTA5NDdcdTA5MDIuX1x1MDkxMVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Yi5fXHUwOTI4XHUwOTRiXHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3XHUwOTAyLl9cdTA5MjFcdTA5M2ZcdTA5Mzhc'@; put 'dTA5NDdcdTA5MDIuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDkwNlx1MDkyZlx1MDkyNFx1MDkzZVx1MDkzMF9cdTA5MzhcdTA5NGJcdTA5MmVcdTA5M2VcdTA5MzBfXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMzXHUwOTNlXHUwOTMwX1x1MDkyY1x1MDk0'@; put 'MVx1MDkyN1x1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MmNcdTA5M2ZcdTA5MzBcdTA5NDdcdTA5MzhcdTA5NGRcdTA5MjRcdTA5M2VcdTA5MzBfXHUwOTM4XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwXHUwOTNlXHUwOTMwX1x1MDkzNlx1MDk0N1x1MDkyOFx1MDkzNVx1MDkzZVx1MDkzMCIuc3Bs'@; put 'aXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5MDZcdTA5MmZcdTA5MjQuX1x1MDkzOFx1MDk0Ylx1MDkyZS5fXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMzLl9cdTA5MmNcdTA5NDFcdTA5MjcuX1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0N1x1MDkzOFx1MDk0ZFx1MDkyNC5fXHUwOTM4XHUwOTQx'@; put 'XHUwOTE1XHUwOTRkXHUwOTMwLl9cdTA5MzZcdTA5NDdcdTA5MjguIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA5MDZfXHUwOTM4XHUwOTRiX1x1MDkyZVx1MDkwMl9cdTA5MmNcdTA5NDFfXHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQ3X1x1MDkzOFx1MDk0MV9cdTA5MzZcdTA5NDciLnNw'@; put 'bGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFtcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2VcdTA5MDJdIixMVFM6IkEgaDptbTpzcyBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSIsTDoiREQtTU0tWVlZ'@; put 'WSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSIsTExMTDoiZGRkZCwgTU1NTSBEbywgWVlZWSwgQSBoOm1tIFtcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2VcdTA5MDJdIixsbGxsOiJk'@; put 'ZGQsIEQgTU1NIFlZWVksIEEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTA2XHUwOTJmXHUwOTFjXSBMVCIsbmV4dERheToiW1x1MDkyYlx1MDkzZVx1MDkzMlx1MDk0ZFx1MDkyZlx1MDkzZVx1MDkwMl0gTFQi'@; put 'LG5leHRXZWVrOiJbXHUwOTJiXHUwOTQxXHUwOTIxXHUwOTMyXHUwOTRiXSBkZGRkWyxdIExUIixsYXN0RGF5OiJbXHUwOTE1XHUwOTNlXHUwOTMyXSBMVCIsbGFzdFdlZWs6IltcdTA5MmJcdTA5M2VcdTA5MWZcdTA5MzJcdTA5NGJdIGRkZGRbLF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRp'@; put 'dmVUaW1lOntmdXR1cmU6IiVzIixwYXN0OiIlcyBcdTA5MDZcdTA5MjZcdTA5NDBcdTA5MDIiLHM6eCxzczp4LG06eCxtbTp4LGg6eCxoaDp4LGQ6eCxkZDp4LE06eCxNTTp4LHk6eCx5eTp4fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1MDkzNVx1MDk0N1x1MDkzMCkvLG9y'@; put 'ZGluYWw6ZnVuY3Rpb24obGUsTSl7cmV0dXJuIkQiPT09TT9sZSsiXHUwOTM1XHUwOTQ3XHUwOTMwIjpsZX0sd2Vlazp7ZG93OjAsZG95OjN9LG1lcmlkaWVtUGFyc2U6L1x1MDkzMFx1MDkzZVx1MDkyNFx1MDk0MHxcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDBcdTA5MDJ8XHUwOTI2'@; put 'XHUwOTI4XHUwOTJhXHUwOTNlXHUwOTMwXHUwOTNlXHUwOTAyfFx1MDkzOFx1MDkzZVx1MDkwMlx1MDkxY1x1MDk0Ny8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKGxlLE0pe3JldHVybiAxMj09PWxlJiYobGU9MCksIlx1MDkzMFx1MDkzZVx1MDkyNFx1MDk0MCI9PT1NP2xlPDQ/bGU6bGUrMTI6'@; put 'Ilx1MDkzOFx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MFx1MDkwMiI9PT1NP2xlOiJcdTA5MjZcdTA5MjhcdTA5MmFcdTA5M2VcdTA5MzBcdTA5M2VcdTA5MDIiPT09TT9sZT4xMj9sZTpsZSsxMjoiXHUwOTM4XHUwOTNlXHUwOTAyXHUwOTFjXHUwOTQ3Ij09PU0/bGUrMTI6dm9pZCAwfSxtZXJp'@; put 'ZGllbTpmdW5jdGlvbihsZSxNLE8pe3JldHVybiBsZTw0PyJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5NDAiOmxlPDEyPyJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDBcdTA5MDIiOmxlPDE2PyJcdTA5MjZcdTA5MjhcdTA5MmFcdTA5M2VcdTA5MzBcdTA5M2VcdTA5MDIiOmxlPDIwPyJc'@; put 'dTA5MzhcdTA5M2VcdTA5MDJcdTA5MWNcdTA5NDciOiJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5NDAifX0pfShGKDE2Njc2KSl9LDYyNjk2OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHgobGUsTSxPLFIpe3ZhciB6PXtzOlsidGhvZGRlYSBz'@; put 'ZWtvbmRhbW5pIiwidGhvZGRlIHNla29uZCJdLHNzOltsZSsiIHNla29uZGFtbmkiLGxlKyIgc2Vrb25kIl0sbTpbImVrYSBtaW50YW4iLCJlayBtaW51dCJdLG1tOltsZSsiIG1pbnRhbW5pIixsZSsiIG1pbnRhbSJdLGg6WyJla2Egdm9yYW4iLCJlayB2b3IiXSxoaDpbbGUrIiB2b3JhbW5p'@; put 'IixsZSsiIHZvcmFtIl0sZDpbImVrYSBkaXNhbiIsImVrIGRpcyJdLGRkOltsZSsiIGRpc2FtbmkiLGxlKyIgZGlzIl0sTTpbImVrYSBtaG9pbmVhbiIsImVrIG1ob2lubyJdLE1NOltsZSsiIG1ob2luZWFtbmkiLGxlKyIgbWhvaW5lIl0seTpbImVrYSB2b3JzYW4iLCJlayB2b3JvcyJdLHl5'@; put 'OltsZSsiIHZvcnNhbW5pIixsZSsiIHZvcnNhbSJdfTtyZXR1cm4gUj96W09dWzBdOnpbT11bMV19YWUuZGVmaW5lTG9jYWxlKCJnb20tbGF0biIse21vbnRoczp7c3RhbmRhbG9uZToiSmFuZXJfRmVicmVyX01hcnNfQWJyaWxfTWFpX0p1bl9KdWxhaV9BZ29zdF9TZXRlbWJyX090dWJyX05v'@; put 'dmVtYnJfRGV6ZW1iciIuc3BsaXQoIl8iKSxmb3JtYXQ6IkphbmVyYWNoZWFfRmVicmVyYWNoZWFfTWFyc2FjaGVhX0FicmlsYWNoZWFfTWFpYWNoZWFfSnVuYWNoZWFfSnVsYWlhY2hlYV9BZ29zdGFjaGVhX1NldGVtYnJhY2hlYV9PdHVicmFjaGVhX05vdmVtYnJhY2hlYV9EZXplbWJyYWNo'@; put 'ZWEiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L01NTU0oXHMpK0Rbb0RdPy99LG1vbnRoc1Nob3J0OiJKYW4uX0ZlYi5fTWFyc19BYnIuX01haV9KdW5fSnVsLl9BZ28uX1NldC5fT3R1Ll9Ob3YuX0Rlei4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiQWl0YXJfU29t'@; put 'YXJfTW9uZ2xsYXJfQnVkaHZhcl9CaXJlc3Rhcl9TdWtyYXJfU29uJ3ZhciIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJBaXQuX1NvbS5fTW9uLl9CdWQuX0JyZS5fU3VrLl9Tb24uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJBaV9TbV9Nb19CdV9Ccl9TdV9TbiIuc3BsaXQoIl8iKSx3'@; put 'ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0gW3ZhenRhXSIsTFRTOiJBIGg6bW06c3MgW3ZhenRhXSIsTDoiREQtTU0tWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEEgaDptbSBbdmF6dGFdIixMTExMOiJkZGRkLCBNTU1NIERv'@; put 'LCBZWVlZLCBBIGg6bW0gW3ZhenRhXSIsbGxsbDoiZGRkLCBEIE1NTSBZWVlZLCBBIGg6bW0gW3ZhenRhXSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQWl6XSBMVCIsbmV4dERheToiW0ZhbGVhbV0gTFQiLG5leHRXZWVrOiJbRnVkZGxvXSBkZGRkWyxdIExUIixsYXN0RGF5OiJbS2FsXSBMVCIs'@; put 'bGFzdFdlZWs6IltGYXR0bG9dIGRkZGRbLF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIixwYXN0OiIlcyBhZGltIixzOngsc3M6eCxtOngsbW06eCxoOngsaGg6eCxkOngsZGQ6eCxNOngsTU06eCx5OngseXk6eH0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTov'@; put 'XGR7MSwyfShlcikvLG9yZGluYWw6ZnVuY3Rpb24obGUsTSl7cmV0dXJuIkQiPT09TT9sZSsiZXIiOmxlfSx3ZWVrOntkb3c6MCxkb3k6M30sbWVyaWRpZW1QYXJzZTovcmF0aXxzb2thbGxpbXxkb25wYXJhbXxzYW5qZS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKGxlLE0pe3JldHVybiAxMj09'@; put 'PWxlJiYobGU9MCksInJhdGkiPT09TT9sZTw0P2xlOmxlKzEyOiJzb2thbGxpbSI9PT1NP2xlOiJkb25wYXJhbSI9PT1NP2xlPjEyP2xlOmxlKzEyOiJzYW5qZSI9PT1NP2xlKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24obGUsTSxPKXtyZXR1cm4gbGU8ND8icmF0aSI6bGU8MTI/InNv'@; put 'a2FsbGltIjpsZTwxNj8iZG9ucGFyYW0iOmxlPDIwPyJzYW5qZSI6InJhdGkifX0pfShGKDE2Njc2KSl9LDY2OTI4OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PXsxOiJcdTBhZTciLDI6Ilx1MGFlOCIsMzoiXHUwYWU5Iiw0OiJcdTBhZWEiLDU6'@; put 'Ilx1MGFlYiIsNjoiXHUwYWVjIiw3OiJcdTBhZWQiLDg6Ilx1MGFlZSIsOToiXHUwYWVmIiwwOiJcdTBhZTYifSxtPXsiXHUwYWU3IjoiMSIsIlx1MGFlOCI6IjIiLCJcdTBhZTkiOiIzIiwiXHUwYWVhIjoiNCIsIlx1MGFlYiI6IjUiLCJcdTBhZWMiOiI2IiwiXHUwYWVkIjoiNyIsIlx1MGFl'@; put 'ZSI6IjgiLCJcdTBhZWYiOiI5IiwiXHUwYWU2IjoiMCJ9O2FlLmRlZmluZUxvY2FsZSgiZ3UiLHttb250aHM6Ilx1MGE5Y1x1MGFiZVx1MGFhOFx1MGFjZFx1MGFhZlx1MGFjMVx1MGE4Nlx1MGFiMFx1MGFjMF9cdTBhYWJcdTBhYzdcdTBhYWNcdTBhY2RcdTBhYjBcdTBhYzFcdTBhODZcdTBh'@; put 'YjBcdTBhYzBfXHUwYWFlXHUwYWJlXHUwYWIwXHUwYWNkXHUwYTlhX1x1MGE4Zlx1MGFhYVx1MGFjZFx1MGFiMFx1MGFiZlx1MGFiMl9cdTBhYWVcdTBhYzdfXHUwYTljXHUwYWMyXHUwYWE4X1x1MGE5Y1x1MGFjMVx1MGFiMlx1MGFiZVx1MGE4OF9cdTBhOTFcdTBhOTdcdTBhYjhcdTBhY2Rc'@; put 'dTBhOWZfXHUwYWI4XHUwYWFhXHUwYWNkXHUwYTlmXHUwYWM3XHUwYWFlXHUwYWNkXHUwYWFjXHUwYWIwX1x1MGE5MVx1MGE5NVx1MGFjZFx1MGE5Zlx1MGFjZFx1MGFhY1x1MGFiMF9cdTBhYThcdTBhYjVcdTBhYzdcdTBhYWVcdTBhY2RcdTBhYWNcdTBhYjBfXHUwYWExXHUwYWJmXHUwYWI4'@; put 'XHUwYWM3XHUwYWFlXHUwYWNkXHUwYWFjXHUwYWIwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBhOWNcdTBhYmVcdTBhYThcdTBhY2RcdTBhYWZcdTBhYzEuX1x1MGFhYlx1MGFjN1x1MGFhY1x1MGFjZFx1MGFiMFx1MGFjMS5fXHUwYWFlXHUwYWJlXHUwYWIwXHUwYWNkXHUwYTlhX1x1'@; put 'MGE4Zlx1MGFhYVx1MGFjZFx1MGFiMFx1MGFiZi5fXHUwYWFlXHUwYWM3X1x1MGE5Y1x1MGFjMlx1MGFhOF9cdTBhOWNcdTBhYzFcdTBhYjJcdTBhYmUuX1x1MGE5MVx1MGE5Ny5fXHUwYWI4XHUwYWFhXHUwYWNkXHUwYTlmXHUwYWM3Ll9cdTBhOTFcdTBhOTVcdTBhY2RcdTBhOWZcdTBhY2Qu'@; put 'X1x1MGFhOFx1MGFiNVx1MGFjNy5fXHUwYWExXHUwYWJmXHUwYWI4XHUwYWM3LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTBhYjBcdTBhYjVcdTBhYmZcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWI4XHUwYWNiXHUwYWFlXHUwYWI1XHUwYWJlXHUwYWIwX1x1'@; put 'MGFhZVx1MGE4Mlx1MGE5N1x1MGFiM1x1MGFiNVx1MGFiZVx1MGFiMF9cdTBhYWNcdTBhYzFcdTBhYTdcdTBhY2RcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYTk3XHUwYWMxXHUwYWIwXHUwYWMxXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGFiNlx1MGFjMVx1MGE5NVx1MGFjZFx1MGFiMFx1MGFiNVx1'@; put 'MGFiZVx1MGFiMF9cdTBhYjZcdTBhYThcdTBhYmZcdTBhYjVcdTBhYmVcdTBhYjAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwYWIwXHUwYWI1XHUwYWJmX1x1MGFiOFx1MGFjYlx1MGFhZV9cdTBhYWVcdTBhODJcdTBhOTdcdTBhYjNfXHUwYWFjXHUwYWMxXHUwYWE3XHUwYWNkX1x1'@; put 'MGE5N1x1MGFjMVx1MGFiMFx1MGFjMV9cdTBhYjZcdTBhYzFcdTBhOTVcdTBhY2RcdTBhYjBfXHUwYWI2XHUwYWE4XHUwYWJmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBhYjBfXHUwYWI4XHUwYWNiX1x1MGFhZVx1MGE4Ml9cdTBhYWNcdTBhYzFfXHUwYTk3XHUwYWMxX1x1MGFiNlx1'@; put 'MGFjMV9cdTBhYjYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0gXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFmXHUwYWM3IixMVFM6IkEgaDptbTpzcyBcdTBhYjVcdTBhYmVcdTBhOTdcdTBhY2RcdTBhYWZcdTBhYzciLEw6IkREL01NL1lZWVkiLExMOiJEIE1N'@; put 'TU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MGFiNVx1MGFiZVx1MGE5N1x1MGFjZFx1MGFhZlx1MGFjNyIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSBcdTBhYjVcdTBhYmVcdTBhOTdcdTBhY2RcdTBhYWZcdTBhYzcifSxjYWxlbmRhcjp7c2FtZURheToiW1x1'@; put 'MGE4Nlx1MGE5Y10gTFQiLG5leHREYXk6IltcdTBhOTVcdTBhYmVcdTBhYjJcdTBhYzddIExUIixuZXh0V2VlazoiZGRkZCwgTFQiLGxhc3REYXk6IltcdTBhOTdcdTBhODdcdTBhOTVcdTBhYmVcdTBhYjJcdTBhYzddIExUIixsYXN0V2VlazoiW1x1MGFhYVx1MGFiZVx1MGE5Ylx1MGFiMlx1'@; put 'MGFiZV0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGFhZVx1MGFiZSIscGFzdDoiJXMgXHUwYWFhXHUwYWI5XHUwYWM3XHUwYWIyXHUwYWJlIixzOiJcdTBhODVcdTBhYWVcdTBhYzFcdTBhOTUgXHUwYWFhXHUwYWIzXHUwYWNiIixzczoiJWQg'@; put 'XHUwYWI4XHUwYWM3XHUwYTk1XHUwYTgyXHUwYWExIixtOiJcdTBhOGZcdTBhOTUgXHUwYWFlXHUwYWJmXHUwYWE4XHUwYWJmXHUwYTlmIixtbToiJWQgXHUwYWFlXHUwYWJmXHUwYWE4XHUwYWJmXHUwYTlmIixoOiJcdTBhOGZcdTBhOTUgXHUwYTk1XHUwYWIyXHUwYWJlXHUwYTk1IixoaDoi'@; put 'JWQgXHUwYTk1XHUwYWIyXHUwYWJlXHUwYTk1IixkOiJcdTBhOGZcdTBhOTUgXHUwYWE2XHUwYWJmXHUwYWI1XHUwYWI4IixkZDoiJWQgXHUwYWE2XHUwYWJmXHUwYWI1XHUwYWI4IixNOiJcdTBhOGZcdTBhOTUgXHUwYWFlXHUwYWI5XHUwYWJmXHUwYWE4XHUwYWNiIixNTToiJWQgXHUwYWFl'@; put 'XHUwYWI5XHUwYWJmXHUwYWE4XHUwYWNiIix5OiJcdTBhOGZcdTBhOTUgXHUwYWI1XHUwYWIwXHUwYWNkXHUwYWI3Iix5eToiJWQgXHUwYWI1XHUwYWIwXHUwYWNkXHUwYWI3In0scHJlcGFyc2U6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvW1x1MGFlN1x1MGFlOFx1MGFlOVx1MGFl'@; put 'YVx1MGFlYlx1MGFlY1x1MGFlZFx1MGFlZVx1MGFlZlx1MGFlNl0vZyxmdW5jdGlvbihPKXtyZXR1cm4gbVtPXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKE0pe3JldHVybiBNLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oTyl7cmV0dXJuIHhbT119KX0sbWVyaWRpZW1QYXJzZTovXHUwYWIwXHUw'@; put 'YWJlXHUwYWE0fFx1MGFhY1x1MGFhYVx1MGFjYlx1MGFiMHxcdTBhYjhcdTBhYjVcdTBhYmVcdTBhYjB8XHUwYWI4XHUwYWJlXHUwYTgyXHUwYTljLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTSxPKXtyZXR1cm4gMTI9PT1NJiYoTT0wKSwiXHUwYWIwXHUwYWJlXHUwYWE0Ij09PU8/TTw0P006'@; put 'TSsxMjoiXHUwYWI4XHUwYWI1XHUwYWJlXHUwYWIwIj09PU8/TToiXHUwYWFjXHUwYWFhXHUwYWNiXHUwYWIwIj09PU8/TT49MTA/TTpNKzEyOiJcdTBhYjhcdTBhYmVcdTBhODJcdTBhOWMiPT09Tz9NKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oTSxPLFIpe3JldHVybiBNPDQ/Ilx1'@; put 'MGFiMFx1MGFiZVx1MGFhNCI6TTwxMD8iXHUwYWI4XHUwYWI1XHUwYWJlXHUwYWIwIjpNPDE3PyJcdTBhYWNcdTBhYWFcdTBhY2JcdTBhYjAiOk08MjA/Ilx1MGFiOFx1MGFiZVx1MGE4Mlx1MGE5YyI6Ilx1MGFiMFx1MGFiZVx1MGFhNCJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShGKDE2Njc2'@; put 'KSl9LDI0ODA0OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiaGUiLHttb250aHM6Ilx1MDVkOVx1MDVlMFx1MDVkNVx1MDVkMFx1MDVlOF9cdTA1ZTRcdTA1ZDFcdTA1ZThcdTA1ZDVcdTA1ZDBcdTA1ZThfXHUwNWRlXHUwNWU4'@; put 'XHUwNWU1X1x1MDVkMFx1MDVlNFx1MDVlOFx1MDVkOVx1MDVkY19cdTA1ZGVcdTA1ZDBcdTA1ZDlfXHUwNWQ5XHUwNWQ1XHUwNWUwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVkY1x1MDVkOV9cdTA1ZDBcdTA1ZDVcdTA1ZDJcdTA1ZDVcdTA1ZTFcdTA1ZDhfXHUwNWUxXHUwNWU0XHUwNWQ4XHUw'@; put 'NWRlXHUwNWQxXHUwNWU4X1x1MDVkMFx1MDVkNVx1MDVlN1x1MDVkOFx1MDVkNVx1MDVkMVx1MDVlOF9cdTA1ZTBcdTA1ZDVcdTA1ZDFcdTA1ZGVcdTA1ZDFcdTA1ZThfXHUwNWQzXHUwNWU2XHUwNWRlXHUwNWQxXHUwNWU4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA1ZDlcdTA1ZTBc'@; put 'dTA1ZDVcdTA1ZjNfXHUwNWU0XHUwNWQxXHUwNWU4XHUwNWYzX1x1MDVkZVx1MDVlOFx1MDVlNV9cdTA1ZDBcdTA1ZTRcdTA1ZThcdTA1ZjNfXHUwNWRlXHUwNWQwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVlMFx1MDVkOV9cdTA1ZDlcdTA1ZDVcdTA1ZGNcdTA1ZDlfXHUwNWQwXHUwNWQ1XHUw'@; put 'NWQyXHUwNWYzX1x1MDVlMVx1MDVlNFx1MDVkOFx1MDVmM19cdTA1ZDBcdTA1ZDVcdTA1ZTdcdTA1ZjNfXHUwNWUwXHUwNWQ1XHUwNWQxXHUwNWYzX1x1MDVkM1x1MDVlNlx1MDVkZVx1MDVmMyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNWU4XHUwNWQwXHUwNWU5XHUwNWQ1XHUwNWRmX1x1'@; put 'MDVlOVx1MDVlMFx1MDVkOV9cdTA1ZTlcdTA1ZGNcdTA1ZDlcdTA1ZTlcdTA1ZDlfXHUwNWU4XHUwNWQxXHUwNWQ5XHUwNWUyXHUwNWQ5X1x1MDVkN1x1MDVkZVx1MDVkOVx1MDVlOVx1MDVkOV9cdTA1ZTlcdTA1ZDlcdTA1ZTlcdTA1ZDlfXHUwNWU5XHUwNWQxXHUwNWVhIi5zcGxpdCgiXyIp'@; put 'LHdlZWtkYXlzU2hvcnQ6Ilx1MDVkMFx1MDVmM19cdTA1ZDFcdTA1ZjNfXHUwNWQyXHUwNWYzX1x1MDVkM1x1MDVmM19cdTA1ZDRcdTA1ZjNfXHUwNWQ1XHUwNWYzX1x1MDVlOVx1MDVmMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNWQwX1x1MDVkMV9cdTA1ZDJfXHUwNWQzX1x1MDVk'@; put 'NF9cdTA1ZDVfXHUwNWU5Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtcdTA1ZDFdTU1NTSBZWVlZIixMTEw6IkQgW1x1MDVkMV1NTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgW1x1MDVkMV1N'@; put 'TU1NIFlZWVkgSEg6bW0iLGw6IkQvTS9ZWVlZIixsbDoiRCBNTU0gWVlZWSIsbGxsOiJEIE1NTSBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIEQgTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDVkNFx1MDVkOVx1MDVkNVx1MDVkZCBcdTA1ZDFcdTA1YmVdTFQiLG5leHRE'@; put 'YXk6IltcdTA1ZGVcdTA1ZDdcdTA1ZTggXHUwNWQxXHUwNWJlXUxUIixuZXh0V2VlazoiZGRkZCBbXHUwNWQxXHUwNWU5XHUwNWUyXHUwNWQ0XSBMVCIsbGFzdERheToiW1x1MDVkMFx1MDVlYVx1MDVkZVx1MDVkNVx1MDVkYyBcdTA1ZDFcdTA1YmVdTFQiLGxhc3RXZWVrOiJbXHUwNWQxXHUw'@; put 'NWQ5XHUwNWQ1XHUwNWRkXSBkZGRkIFtcdTA1ZDRcdTA1ZDBcdTA1ZDdcdTA1ZThcdTA1ZDVcdTA1ZGYgXHUwNWQxXHUwNWU5XHUwNWUyXHUwNWQ0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNWQxXHUwNWUyXHUwNWQ1XHUwNWQzICVzIixwYXN0OiJcdTA1'@; put 'ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDkgJXMiLHM6Ilx1MDVkZVx1MDVlMVx1MDVlNFx1MDVlOCBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZDVcdTA1ZWEiLHNzOiIlZCBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZDVcdTA1ZWEiLG06Ilx1MDVkM1x1MDVlN1x1MDVkNCIsbW06IiVkIFx1MDVkM1x1MDVl'@; put 'N1x1MDVkNVx1MDVlYSIsaDoiXHUwNWU5XHUwNWUyXHUwNWQ0IixoaDpmdW5jdGlvbihtKXtyZXR1cm4gMj09PW0/Ilx1MDVlOVx1MDVlMlx1MDVlYVx1MDVkOVx1MDVkOVx1MDVkZCI6bSsiIFx1MDVlOVx1MDVlMlx1MDVkNVx1MDVlYSJ9LGQ6Ilx1MDVkOVx1MDVkNVx1MDVkZCIsZGQ6ZnVu'@; put 'Y3Rpb24obSl7cmV0dXJuIDI9PT1tPyJcdTA1ZDlcdTA1ZDVcdTA1ZGVcdTA1ZDlcdTA1ZDlcdTA1ZGQiOm0rIiBcdTA1ZDlcdTA1ZGVcdTA1ZDlcdTA1ZGQifSxNOiJcdTA1ZDdcdTA1ZDVcdTA1ZDNcdTA1ZTkiLE1NOmZ1bmN0aW9uKG0pe3JldHVybiAyPT09bT8iXHUwNWQ3XHUwNWQ1XHUw'@; put 'NWQzXHUwNWU5XHUwNWQ5XHUwNWQ5XHUwNWRkIjptKyIgXHUwNWQ3XHUwNWQ1XHUwNWQzXHUwNWU5XHUwNWQ5XHUwNWRkIn0seToiXHUwNWU5XHUwNWUwXHUwNWQ0Iix5eTpmdW5jdGlvbihtKXtyZXR1cm4gMj09PW0/Ilx1MDVlOVx1MDVlMFx1MDVlYVx1MDVkOVx1MDVkOVx1MDVkZCI6bSUx'@; put 'MD09MCYmMTAhPT1tP20rIiBcdTA1ZTlcdTA1ZTBcdTA1ZDQiOm0rIiBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZGQifX0sbWVyaWRpZW1QYXJzZTovXHUwNWQwXHUwNWQ3XHUwNWQ0Ilx1MDVlNnxcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDQiXHUwNWU2fFx1MDVkMFx1MDVkN1x1MDVlOFx1MDVk'@; put 'OSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGR8XHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ5IFx1MDVkNFx1MDVlNlx1MDVkNFx1MDVlOFx1MDVkOVx1MDVkOVx1MDVkZHxcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDVcdTA1ZWEgXHUwNWQxXHUwNWQ1XHUwNWU3XHUw'@; put 'NWU4fFx1MDVkMVx1MDVkMVx1MDVkNVx1MDVlN1x1MDVlOHxcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEvaSxpc1BNOmZ1bmN0aW9uKG0pe3JldHVybi9eKFx1MDVkMFx1MDVkN1x1MDVkNCJcdTA1ZTZ8XHUwNWQwXHUwNWQ3XHUwNWU4XHUwNWQ5IFx1MDVkNFx1MDVlNlx1MDVkNFx1MDVlOFx1'@; put 'MDVkOVx1MDVkOVx1MDVkZHxcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEpJC8udGVzdChtKX0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXtyZXR1cm4gbTw1PyJcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDVcdTA1ZWEgXHUwNWQxXHUwNWQ1XHUwNWU3XHUwNWU4IjptPDEwPyJcdTA1ZDFcdTA1'@; put 'ZDFcdTA1ZDVcdTA1ZTdcdTA1ZTgiOm08MTI/TT8nXHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ0Ilx1MDVlNic6Ilx1MDVkY1x1MDVlNFx1MDVlMFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOm08MTg/TT8nXHUwNWQwXHUwNWQ3XHUwNWQ0Ilx1MDVl'@; put 'Nic6Ilx1MDVkMFx1MDVkN1x1MDVlOFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOiJcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEifX0pfShGKDE2Njc2KSl9LDIzMDE1OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3Qi'@; put 'O3ZhciB4PXsxOiJcdTA5NjciLDI6Ilx1MDk2OCIsMzoiXHUwOTY5Iiw0OiJcdTA5NmEiLDU6Ilx1MDk2YiIsNjoiXHUwOTZjIiw3OiJcdTA5NmQiLDg6Ilx1MDk2ZSIsOToiXHUwOTZmIiwwOiJcdTA5NjYifSxtPXsiXHUwOTY3IjoiMSIsIlx1MDk2OCI6IjIiLCJcdTA5NjkiOiIzIiwiXHUw'@; put 'OTZhIjoiNCIsIlx1MDk2YiI6IjUiLCJcdTA5NmMiOiI2IiwiXHUwOTZkIjoiNyIsIlx1MDk2ZSI6IjgiLCJcdTA5NmYiOiI5IiwiXHUwOTY2IjoiMCJ9LGxlPVsvXlx1MDkxY1x1MDkyOC9pLC9eXHUwOTJiXHUwOTNjXHUwOTMwfFx1MDkyYlx1MDkzMC9pLC9eXHUwOTJlXHUwOTNlXHUwOTMw'@; put 'XHUwOTRkXHUwOTFhL2ksL15cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDgvaSwvXlx1MDkyZVx1MDkwOC9pLC9eXHUwOTFjXHUwOTQyXHUwOTI4L2ksL15cdTA5MWNcdTA5NDFcdTA5MzIvaSwvXlx1MDkwNVx1MDkxNy9pLC9eXHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyfFx1MDkzOFx1'@; put 'MDkzZlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzV8XHUwOTI4XHUwOTM1XHUwOTAyL2ksL15cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJ8XHUwOTI2XHUwOTNmXHUwOTM4L2ldO2FlLmRlZmluZUxvY2FsZSgiaGkiLHttb250aHM6e2Zv'@; put 'cm1hdDoiXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5'@; put 'NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4X1x1MDkwNVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkyNF9cdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzBfXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwX1x1MDkyOFx1'@; put 'MDkzNVx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMF9cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyYlx1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmVc'@; put 'dTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4X1x1MDkwNVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkyNF9cdTA5MzhcdTA5'@; put 'M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwX1x1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0OiJc'@; put 'dTA5MWNcdTA5MjguX1x1MDkyYlx1MDkzY1x1MDkzMC5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OC5fXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzIuX1x1MDkwNVx1MDkxNy5fXHUw'@; put 'OTM4XHUwOTNmXHUwOTI0Ll9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDIuX1x1MDkyOFx1MDkzNS5fXHUwOTI2XHUwOTNmXHUwOTM4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwOTMwXHUwOTM1XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkz'@; put 'NVx1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzJcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkxN1x1MDk0MVx1MDkzMFx1MDk0Mlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5'@; put 'MzBcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkzMFx1MDkzNVx1MDkzZl9cdTA5MzhcdTA5NGJcdTA5MmVfXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMyX1x1MDkyY1x1MDk0MVx1MDky'@; put 'N19cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTMwX1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkxN1x1MDk0MV9cdTA5'@; put 'MzZcdTA5NDFfXHUwOTM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTFRTOiJBIGg6bW06c3MgXHUwOTJjXHUwOTFjXHUwOTQ3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDpt'@; put 'bSBcdTA5MmNcdTA5MWNcdTA5NDciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3In0sbW9udGhzUGFyc2U6bGUsbG9uZ01vbnRoc1BhcnNlOmxlLHNob3J0TW9udGhzUGFyc2U6Wy9eXHUwOTFjXHUwOTI4L2ksL15cdTA5MmJcdTA5M2NcdTA5MzAv'@; put 'aSwvXlx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS9pLC9eXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4L2ksL15cdTA5MmVcdTA5MDgvaSwvXlx1MDkxY1x1MDk0Mlx1MDkyOC9pLC9eXHUwOTFjXHUwOTQxXHUwOTMyL2ksL15cdTA5MDVcdTA5MTcvaSwvXlx1MDkzOFx1MDkz'@; put 'Zlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzUvaSwvXlx1MDkyNlx1MDkzZlx1MDkzOC9pXSxtb250aHNSZWdleDovXihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkzY1x1MDkz'@; put 'MFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkz'@; put 'MFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDkyNFx1'@; put 'MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4'@; put 'XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjZc'@; put 'dTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU2hvcnRSZWdleDovXihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTNj'@; put 'XHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQxXHUwOTMy'@; put 'XHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDkyNFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzB8XHUw'@; put 'OTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMHxc'@; put 'dTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjZcdTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU3RyaWN0UmVnZXg6L14oXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMw'@; put 'XHUwOTQwP3xcdTA5MmJcdTA5M2NcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwP3xcdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWE/fFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFx1MDkzMj98XHUwOTJlXHUwOTA4P3xcdTA5'@; put 'MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOD98XHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0P3xcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyXHUwOTJjXHUwOTMwfFx1MDkz'@; put 'OFx1MDkzZlx1MDkyND9cLj98XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwfFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0MlwuP3xcdTA5MjhcdTA5MzVcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTI4XHUwOTM1XHUwOTAyXHUwOTJjXHUwOTMwP3xc'@; put 'dTA5MjZcdTA5M2ZcdTA5MzhcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTAyXHUwOTJjXHUwOTMwPykvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKFx1MDkxY1x1MDkyOFwuP3xcdTA5MmJcdTA5M2NcdTA5MzBcLj98XHUwOTJlXHUwOTNlXHUwOTMw'@; put 'XHUwOTRkXHUwOTFhP3xcdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcLj98XHUwOTJlXHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcLj98XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkx'@; put 'Zlx1MDk0MlwuP3xcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XC4/KS9pLGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTA2XHUwOTFjXSBMVCIsbmV4dERheToiW1x1MDkxNVx1MDkzMl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MDkxNVx1MDkzMl0gTFQi'@; put 'LGxhc3RXZWVrOiJbXHUwOTJhXHUwOTNmXHUwOTFiXHUwOTMyXHUwOTQ3XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwOTJlXHUwOTQ3XHUwOTAyIixwYXN0OiIlcyBcdTA5MmFcdTA5MzlcdTA5MzJcdTA5NDciLHM6Ilx1MDkxNVx1MDk0MVx1'@; put 'MDkxYiBcdTA5MzlcdTA5NDAgXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTIzIixzczoiJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTIxIixtOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTFmIixtbToiJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTFmIixoOiJcdTA5'@; put 'MGZcdTA5MTUgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTNlIixoaDoiJWQgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTQ3IixkOiJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTNmXHUwOTI4IixkZDoiJWQgXHUwOTI2XHUwOTNmXHUwOTI4IixNOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTM5XHUwOTQw'@; put 'XHUwOTI4XHUwOTQ3IixNTToiJWQgXHUwOTJlXHUwOTM5XHUwOTQwXHUwOTI4XHUwOTQ3Iix5OiJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3Iix5eToiJWQgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3In0scHJlcGFyc2U6ZnVuY3Rpb24oUil7cmV0dXJuIFIucmVwbGFj'@; put 'ZSgvW1x1MDk2N1x1MDk2OFx1MDk2OVx1MDk2YVx1MDk2Ylx1MDk2Y1x1MDk2ZFx1MDk2ZVx1MDk2Zlx1MDk2Nl0vZyxmdW5jdGlvbih6KXtyZXR1cm4gbVt6XX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFIpe3JldHVybiBSLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oeil7cmV0dXJuIHhbel19'@; put 'KX0sbWVyaWRpZW1QYXJzZTovXHUwOTMwXHUwOTNlXHUwOTI0fFx1MDkzOFx1MDk0MVx1MDkyY1x1MDkzOXxcdTA5MjZcdTA5NGJcdTA5MmFcdTA5MzlcdTA5MzB8XHUwOTM2XHUwOTNlXHUwOTJlLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oUix6KXtyZXR1cm4gMTI9PT1SJiYoUj0wKSwiXHUw'@; put 'OTMwXHUwOTNlXHUwOTI0Ij09PXo/Ujw0P1I6UisxMjoiXHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5Ij09PXo/UjoiXHUwOTI2XHUwOTRiXHUwOTJhXHUwOTM5XHUwOTMwIj09PXo/Uj49MTA/UjpSKzEyOiJcdTA5MzZcdTA5M2VcdTA5MmUiPT09ej9SKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVu'@; put 'Y3Rpb24oUix6LEspe3JldHVybiBSPDQ/Ilx1MDkzMFx1MDkzZVx1MDkyNCI6UjwxMD8iXHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5IjpSPDE3PyJcdTA5MjZcdTA5NGJcdTA5MmFcdTA5MzlcdTA5MzAiOlI8MjA/Ilx1MDkzNlx1MDkzZVx1MDkyZSI6Ilx1MDkzMFx1MDkzZVx1MDkyNCJ9LHdl'@; put 'ZWs6e2RvdzowLGRveTo2fX0pfShGKDE2Njc2KSl9LDE3MTM0OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHgobGUsTSxPKXt2YXIgUj1sZSsiICI7c3dpdGNoKE8pe2Nhc2Uic3MiOnJldHVybiBSKygxPT09bGU/InNla3VuZGEiOjI9PT1s'@; put 'ZXx8Mz09PWxlfHw0PT09bGU/InNla3VuZGUiOiJzZWt1bmRpIik7Y2FzZSJtIjpyZXR1cm4gTT8iamVkbmEgbWludXRhIjoiamVkbmUgbWludXRlIjtjYXNlIm1tIjpyZXR1cm4gUisoMT09PWxlPyJtaW51dGEiOjI9PT1sZXx8Mz09PWxlfHw0PT09bGU/Im1pbnV0ZSI6Im1pbnV0YSIpO2Nh'@; put 'c2UiaCI6cmV0dXJuIE0/ImplZGFuIHNhdCI6ImplZG5vZyBzYXRhIjtjYXNlImhoIjpyZXR1cm4gUisoMT09PWxlPyJzYXQiOjI9PT1sZXx8Mz09PWxlfHw0PT09bGU/InNhdGEiOiJzYXRpIik7Y2FzZSJkZCI6cmV0dXJuIFIrKDE9PT1sZT8iZGFuIjoiZGFuYSIpO2Nhc2UiTU0iOnJldHVy'@; put 'biBSKygxPT09bGU/Im1qZXNlYyI6Mj09PWxlfHwzPT09bGV8fDQ9PT1sZT8ibWplc2VjYSI6Im1qZXNlY2kiKTtjYXNlInl5IjpyZXR1cm4gUisoMT09PWxlPyJnb2RpbmEiOjI9PT1sZXx8Mz09PWxlfHw0PT09bGU/ImdvZGluZSI6ImdvZGluYSIpfX1hZS5kZWZpbmVMb2NhbGUoImhyIix7'@; put 'bW9udGhzOntmb3JtYXQ6InNpamVcdTAxMGRuamFfdmVsamFcdTAxMGRlX29cdTAxN2V1amthX3RyYXZuamFfc3ZpYm5qYV9saXBuamFfc3JwbmphX2tvbG92b3phX3J1am5hX2xpc3RvcGFkYV9zdHVkZW5vZ2FfcHJvc2luY2EiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToic2lqZVx1MDEwZGFu'@; put 'al92ZWxqYVx1MDEwZGFfb1x1MDE3ZXVqYWtfdHJhdmFual9zdmliYW5qX2xpcGFual9zcnBhbmpfa29sb3Zvel9ydWphbl9saXN0b3BhZF9zdHVkZW5pX3Byb3NpbmFjIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDoic2lqLl92ZWxqLl9vXHUwMTdldS5fdHJhLl9zdmkuX2xpcC5fc3JwLl9r'@; put 'b2wuX3J1ai5fbGlzLl9zdHUuX3Byby4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoibmVkamVsamFfcG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfXHUwMTBkZXR2cnRha19wZXRha19zdWJvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24u'@; put 'X3V0by5fc3JpLl9cdTAxMGRldC5fcGV0Ll9zdWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191dF9zcl9cdTAxMGRlX3BlX3N1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0u'@; put 'WVlZWSIsTEw6IkRvIE1NTU0gWVlZWSIsTExMOiJEbyBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRG8gTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2RhbmFzIHVdIExUIixuZXh0RGF5OiJbc3V0cmEgdV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRo'@; put 'aXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3VdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJuIlt1XSBbc3JpamVkdV0gW3VdIExUIjtjYXNlIDY6cmV0dXJuIlt1XSBbc3Vib3R1XSBbdV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3VdIGRkZGQgW3Vd'@; put 'IExUIn19LGxhc3REYXk6IltqdVx1MDEwZGVyIHVdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIltwcm9cdTAxNjFsdV0gW25lZGplbGp1XSBbdV0gTFQiO2Nhc2UgMzpyZXR1cm4iW3Byb1x1MDE2MWx1XSBbc3JpamVkdV0gW3VdIExU'@; put 'IjtjYXNlIDY6cmV0dXJuIltwcm9cdTAxNjFsZV0gW3N1Ym90ZV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltwcm9cdTAxNjFsaV0gZGRkZCBbdV0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByaWpl'@; put 'ICVzIixzOiJwYXIgc2VrdW5kaSIsc3M6eCxtOngsbW06eCxoOngsaGg6eCxkOiJkYW4iLGRkOngsTToibWplc2VjIixNTTp4LHk6ImdvZGludSIseXk6eH0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2'@; put 'Njc2KSl9LDUwNjcwOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PSJ2YXNceGUxcm5hcCBoXHhlOXRmXHUwMTUxbiBrZWRkZW4gc3plcmRceGUxbiBjc1x4ZmN0XHhmNnJ0XHhmNmtceGY2biBwXHhlOW50ZWtlbiBzem9tYmF0b24iLnNwbGl0KCIg'@; put 'Iik7ZnVuY3Rpb24gbShPLFIseixLKXt2YXIgST1PO3N3aXRjaCh6KXtjYXNlInMiOnJldHVybiBLfHxSPyJuXHhlOWhceGUxbnkgbVx4ZTFzb2RwZXJjIjoiblx4ZTloXHhlMW55IG1ceGUxc29kcGVyY2UiO2Nhc2Uic3MiOnJldHVybiBJKyhLfHxSKT8iIG1ceGUxc29kcGVyYyI6IiBtXHhl'@; put 'MXNvZHBlcmNlIjtjYXNlIm0iOnJldHVybiJlZ3kiKyhLfHxSPyIgcGVyYyI6IiBwZXJjZSIpO2Nhc2UibW0iOnJldHVybiBJKyhLfHxSPyIgcGVyYyI6IiBwZXJjZSIpO2Nhc2UiaCI6cmV0dXJuImVneSIrKEt8fFI/IiBceGYzcmEiOiIgXHhmM3JceGUxamEiKTtjYXNlImhoIjpyZXR1cm4g'@; put 'SSsoS3x8Uj8iIFx4ZjNyYSI6IiBceGYzclx4ZTFqYSIpO2Nhc2UiZCI6cmV0dXJuImVneSIrKEt8fFI/IiBuYXAiOiIgbmFwamEiKTtjYXNlImRkIjpyZXR1cm4gSSsoS3x8Uj8iIG5hcCI6IiBuYXBqYSIpO2Nhc2UiTSI6cmV0dXJuImVneSIrKEt8fFI/IiBoXHhmM25hcCI6IiBoXHhmM25h'@; put 'cGphIik7Y2FzZSJNTSI6cmV0dXJuIEkrKEt8fFI/IiBoXHhmM25hcCI6IiBoXHhmM25hcGphIik7Y2FzZSJ5IjpyZXR1cm4iZWd5IisoS3x8Uj8iIFx4ZTl2IjoiIFx4ZTl2ZSIpO2Nhc2UieXkiOnJldHVybiBJKyhLfHxSPyIgXHhlOXYiOiIgXHhlOXZlIil9cmV0dXJuIiJ9ZnVuY3Rpb24g'@; put 'bGUoTyl7cmV0dXJuKE8/IiI6IlttXHhmYWx0XSAiKSsiWyIreFt0aGlzLmRheSgpXSsiXSBMVFsta29yXSJ9YWUuZGVmaW5lTG9jYWxlKCJodSIse21vbnRoczoiamFudVx4ZTFyX2ZlYnJ1XHhlMXJfbVx4ZTFyY2l1c19ceGUxcHJpbGlzX21ceGUxanVzX2pceGZhbml1c19qXHhmYWxpdXNf'@; put 'YXVndXN6dHVzX3N6ZXB0ZW1iZXJfb2t0XHhmM2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21ceGUxcmMuX1x4ZTFwci5fbVx4ZTFqLl9qXHhmYW4uX2pceGZhbC5fYXVnLl9zemVwdC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiks'@; put 'bW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoidmFzXHhlMXJuYXBfaFx4ZTl0Zlx1MDE1MV9rZWRkX3N6ZXJkYV9jc1x4ZmN0XHhmNnJ0XHhmNmtfcFx4ZTludGVrX3N6b21iYXQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoidmFzX2hceGU5dF9rZWRkX3N6ZV9jc1x4ZmN0X3BceGU5'@; put 'bl9zem8iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InZfaF9rX3N6ZV9jc19wX3N6byIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiWVlZWS5NTS5ERC4iLExMOiJZWVlZLiBNTU1NIEQuIixMTEw6IllZWVkuIE1NTU0gRC4gSDptbSIsTExM'@; put 'TDoiWVlZWS4gTU1NTSBELiwgZGRkZCBIOm1tIn0sbWVyaWRpZW1QYXJzZTovZGV8ZHUvaSxpc1BNOmZ1bmN0aW9uKE8pe3JldHVybiJ1Ij09PU8uY2hhckF0KDEpLnRvTG93ZXJDYXNlKCl9LG1lcmlkaWVtOmZ1bmN0aW9uKE8sUix6KXtyZXR1cm4gTzwxMj8hMD09PXo/ImRlIjoiREUiOiEw'@; put 'PT09ej8iZHUiOiJEVSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbbWFdIExUWy1rb3JdIixuZXh0RGF5OiJbaG9sbmFwXSBMVFsta29yXSIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gbGUuY2FsbCh0aGlzLCEwKX0sbGFzdERheToiW3RlZ25hcF0gTFRbLWtvcl0iLGxhc3RXZWVrOmZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIGxlLmNhbGwodGhpcywhMSl9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIG1ceGZhbHZhIixwYXN0OiIlcyIsczptLHNzOm0sbSxtbTptLGg6bSxoaDptLGQ6bSxkZDptLE06bSxNTTptLHk6bSx5eTptfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNl'@; put 'Oi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNDUyMzpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoImh5LWFtIix7bW9udGhzOntmb3JtYXQ6Ilx1MDU3MFx1MDU3OFx1'@; put 'MDU4Mlx1MDU3Nlx1MDU3ZVx1MDU2MVx1MDU4MFx1MDU2Yl9cdTA1ODNcdTA1NjVcdTA1N2ZcdTA1ODBcdTA1N2VcdTA1NjFcdTA1ODBcdTA1NmJfXHUwNTc0XHUwNTYxXHUwNTgwXHUwNTdmXHUwNTZiX1x1MDU2MVx1MDU3YVx1MDU4MFx1MDU2Ylx1MDU2Y1x1MDU2Yl9cdTA1NzRcdTA1NjFc'@; put 'dTA1NzVcdTA1NmJcdTA1N2RcdTA1NmJfXHUwNTcwXHUwNTc4XHUwNTgyXHUwNTc2XHUwNTZiXHUwNTdkXHUwNTZiX1x1MDU3MFx1MDU3OFx1MDU4Mlx1MDU2Y1x1MDU2Ylx1MDU3ZFx1MDU2Yl9cdTA1ODVcdTA1NjNcdTA1NzhcdTA1N2RcdTA1N2ZcdTA1NzhcdTA1N2RcdTA1NmJfXHUwNTdk'@; put 'XHUwNTY1XHUwNTdhXHUwNTdmXHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwXHUwNTZiX1x1MDU3MFx1MDU3OFx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MFx1MDU2Yl9cdTA1NzZcdTA1NzhcdTA1NzVcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBc'@; put 'dTA1NmJfXHUwNTY0XHUwNTY1XHUwNTZmXHUwNTdmXHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwXHUwNTZiIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDU3MFx1MDU3OFx1MDU4Mlx1MDU3Nlx1MDU3ZVx1MDU2MVx1MDU4MF9cdTA1ODNcdTA1NjVcdTA1N2ZcdTA1ODBcdTA1N2Vc'@; put 'dTA1NjFcdTA1ODBfXHUwNTc0XHUwNTYxXHUwNTgwXHUwNTdmX1x1MDU2MVx1MDU3YVx1MDU4MFx1MDU2Ylx1MDU2Y19cdTA1NzRcdTA1NjFcdTA1NzVcdTA1NmJcdTA1N2RfXHUwNTcwXHUwNTc4XHUwNTgyXHUwNTc2XHUwNTZiXHUwNTdkX1x1MDU3MFx1MDU3OFx1MDU4Mlx1MDU2Y1x1MDU2'@; put 'Ylx1MDU3ZF9cdTA1ODVcdTA1NjNcdTA1NzhcdTA1N2RcdTA1N2ZcdTA1NzhcdTA1N2RfXHUwNTdkXHUwNTY1XHUwNTdhXHUwNTdmXHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwX1x1MDU3MFx1MDU3OFx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MF9cdTA1'@; put 'NzZcdTA1NzhcdTA1NzVcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBfXHUwNTY0XHUwNTY1XHUwNTZmXHUwNTdmXHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDoiXHUwNTcwXHUwNTc2XHUwNTdlX1x1MDU4M1x1MDU3Zlx1MDU4MF9c'@; put 'dTA1NzRcdTA1ODBcdTA1N2ZfXHUwNTYxXHUwNTdhXHUwNTgwX1x1MDU3NFx1MDU3NVx1MDU3ZF9cdTA1NzBcdTA1NzZcdTA1N2RfXHUwNTcwXHUwNTZjXHUwNTdkX1x1MDU4NVx1MDU2M1x1MDU3ZF9cdTA1N2RcdTA1N2FcdTA1N2ZfXHUwNTcwXHUwNTZmXHUwNTdmX1x1MDU3Nlx1MDU3NFx1'@; put 'MDU2Ml9cdTA1NjRcdTA1NmZcdTA1N2YiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDU2Zlx1MDU2Ylx1MDU4MFx1MDU2MVx1MDU2Zlx1MDU2Yl9cdTA1NjVcdTA1ODBcdTA1NmZcdTA1NzhcdTA1ODJcdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjlcdTA1NmJfXHUwNTY1XHUwNTgwXHUwNTY1XHUw'@; put 'NTg0XHUwNTc3XHUwNTYxXHUwNTYyXHUwNTY5XHUwNTZiX1x1MDU3OVx1MDU3OFx1MDU4MFx1MDU2NVx1MDU4NFx1MDU3N1x1MDU2MVx1MDU2Mlx1MDU2OVx1MDU2Yl9cdTA1NzBcdTA1NmJcdTA1NzZcdTA1NjNcdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjlcdTA1NmJfXHUwNTc4XHUwNTgyXHUw'@; put 'NTgwXHUwNTYyXHUwNTYxXHUwNTY5X1x1MDU3N1x1MDU2MVx1MDU2Mlx1MDU2MVx1MDU2OSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA1NmZcdTA1ODBcdTA1NmZfXHUwNTY1XHUwNTgwXHUwNTZmX1x1MDU2NVx1MDU4MFx1MDU4NF9cdTA1NzlcdTA1ODBcdTA1ODRfXHUwNTcwXHUw'@; put 'NTc2XHUwNTYzX1x1MDU3OFx1MDU4Mlx1MDU4MFx1MDU2Ml9cdTA1NzdcdTA1NjJcdTA1NjkiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDU2Zlx1MDU4MFx1MDU2Zl9cdTA1NjVcdTA1ODBcdTA1NmZfXHUwNTY1XHUwNTgwXHUwNTg0X1x1MDU3OVx1MDU4MFx1MDU4NF9cdTA1NzBcdTA1'@; put 'NzZcdTA1NjNfXHUwNTc4XHUwNTgyXHUwNTgwXHUwNTYyX1x1MDU3N1x1MDU2Mlx1MDU2OSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkgXHUwNTY5LiIsTExMOiJEIE1NTU0gWVlZWSBc'@; put 'dTA1NjkuLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgXHUwNTY5LiwgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDU2MVx1MDU3NVx1MDU3ZFx1MDU4NVx1MDU4MF0gTFQiLG5leHREYXk6IltcdTA1N2VcdTA1NjFcdTA1NzJcdTA1NjhdIExUIixsYXN0RGF5OiJbXHUw'@; put 'NTY1XHUwNTgwXHUwNTY1XHUwNTZmXSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbXHUwNTg1XHUwNTgwXHUwNTY4IFx1MDU2YVx1MDU2MVx1MDU3NFx1MDU2OF0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbXHUwNTYxXHUwNTc2XHUwNTgxXHUwNTYxXHUw'@; put 'NTZlXSBkZGRkIFtcdTA1ODVcdTA1ODBcdTA1NjggXHUwNTZhXHUwNTYxXHUwNTc0XHUwNTY4XSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDU3MFx1MDU2NVx1MDU3Zlx1MDU3OCIscGFzdDoiJXMgXHUwNTYxXHUwNTdjXHUwNTYxXHUwNTdiIixzOiJc'@; put 'dTA1NzRcdTA1NmIgXHUwNTg0XHUwNTYxXHUwNTc2XHUwNTZiIFx1MDU3ZVx1MDU2MVx1MDU3NVx1MDU4MFx1MDU2Zlx1MDU3NVx1MDU2MVx1MDU3NiIsc3M6IiVkIFx1MDU3ZVx1MDU2MVx1MDU3NVx1MDU4MFx1MDU2Zlx1MDU3NVx1MDU2MVx1MDU3NiIsbToiXHUwNTgwXHUwNTc4XHUwNTdh'@; put 'XHUwNTY1IixtbToiJWQgXHUwNTgwXHUwNTc4XHUwNTdhXHUwNTY1IixoOiJcdTA1NmFcdTA1NjFcdTA1NzQiLGhoOiIlZCBcdTA1NmFcdTA1NjFcdTA1NzQiLGQ6Ilx1MDU4NVx1MDU4MCIsZGQ6IiVkIFx1MDU4NVx1MDU4MCIsTToiXHUwNTYxXHUwNTc0XHUwNTZiXHUwNTdkIixNTToiJWQg'@; put 'XHUwNTYxXHUwNTc0XHUwNTZiXHUwNTdkIix5OiJcdTA1N2ZcdTA1NjFcdTA1ODBcdTA1NmIiLHl5OiIlZCBcdTA1N2ZcdTA1NjFcdTA1ODBcdTA1NmIifSxtZXJpZGllbVBhcnNlOi9cdTA1NjNcdTA1NmJcdTA1NzdcdTA1NjVcdTA1ODBcdTA1N2VcdTA1NjF8XHUwNTYxXHUwNTdjXHUwNTYx'@; put 'XHUwNTdlXHUwNTc4XHUwNTdmXHUwNTdlXHUwNTYxfFx1MDU4MVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3ZVx1MDU2MXxcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1NzhcdTA1NzVcdTA1NjFcdTA1NzYvLGlzUE06ZnVuY3Rpb24obSl7cmV0dXJuL14oXHUwNTgxXHUwNTY1XHUw'@; put 'NTgwXHUwNTY1XHUwNTZmXHUwNTdlXHUwNTYxfFx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3OFx1MDU3NVx1MDU2MVx1MDU3NikkLy50ZXN0KG0pfSxtZXJpZGllbTpmdW5jdGlvbihtKXtyZXR1cm4gbTw0PyJcdTA1NjNcdTA1NmJcdTA1NzdcdTA1NjVcdTA1ODBcdTA1N2VcdTA1NjEi'@; put 'Om08MTI/Ilx1MDU2MVx1MDU3Y1x1MDU2MVx1MDU3ZVx1MDU3OFx1MDU3Zlx1MDU3ZVx1MDU2MSI6bTwxNz8iXHUwNTgxXHUwNTY1XHUwNTgwXHUwNTY1XHUwNTZmXHUwNTdlXHUwNTYxIjoiXHUwNTY1XHUwNTgwXHUwNTY1XHUwNTZmXHUwNTc4XHUwNTc1XHUwNTYxXHUwNTc2In0sZGF5T2ZN'@; put 'b250aE9yZGluYWxQYXJzZTovXGR7MSwyfXxcZHsxLDJ9LShcdTA1NmJcdTA1NzZ8XHUwNTgwXHUwNTY0KS8sb3JkaW5hbDpmdW5jdGlvbihtLGxlKXtzd2l0Y2gobGUpe2Nhc2UiREREIjpjYXNlInciOmNhc2UiVyI6Y2FzZSJERERvIjpyZXR1cm4gMT09PW0/bSsiLVx1MDU2Ylx1MDU3NiI6'@; put 'bSsiLVx1MDU4MFx1MDU2NCI7ZGVmYXVsdDpyZXR1cm4gbX19LHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDk5MjMzOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiaWQiLHttb250aHM6IkphbnVhcmlfRmVicnVh'@; put 'cmlfTWFyZXRfQXByaWxfTWVpX0p1bmlfSnVsaV9BZ3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWd0X1NlcF9Pa3RfTm92X0RlcyIuc3BsaXQoIl8iKSx3ZWVrZGF5'@; put 'czoiTWluZ2d1X1NlbmluX1NlbGFzYV9SYWJ1X0thbWlzX0p1bWF0X1NhYnR1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ik1pbl9TZW5fU2VsX1JhYl9LYW1fSnVtX1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTWdfU25fU2xfUmJfS21fSm1fU2IiLnNwbGl0KCJfIiksbG9uZ0Rh'@; put 'dGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0ifSxtZXJpZGllbVBhcnNlOi9wYWdpfHNpYW5n'@; put 'fHNvcmV8bWFsYW0vLG1lcmlkaWVtSG91cjpmdW5jdGlvbihtLGxlKXtyZXR1cm4gMTI9PT1tJiYobT0wKSwicGFnaSI9PT1sZT9tOiJzaWFuZyI9PT1sZT9tPj0xMT9tOm0rMTI6InNvcmUiPT09bGV8fCJtYWxhbSI9PT1sZT9tKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxN'@; put 'KXtyZXR1cm4gbTwxMT8icGFnaSI6bTwxNT8ic2lhbmciOm08MTk/InNvcmUiOiJtYWxhbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSGFyaSBpbmkgcHVrdWxdIExUIixuZXh0RGF5OiJbQmVzb2sgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixsYXN0RGF5OiJbS2VtYXJp'@; put 'biBwdWt1bF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtsYWx1IHB1a3VsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFsYW0gJXMiLHBhc3Q6IiVzIHlhbmcgbGFsdSIsczoiYmViZXJhcGEgZGV0aWsiLHNzOiIlZCBkZXRpayIsbToic2VtZW5pdCIsbW06IiVkIG1l'@; put 'bml0IixoOiJzZWphbSIsaGg6IiVkIGphbSIsZDoic2VoYXJpIixkZDoiJWQgaGFyaSIsTToic2VidWxhbiIsTU06IiVkIGJ1bGFuIix5OiJzZXRhaHVuIix5eToiJWQgdGFodW4ifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oRigxNjY3NikpfSw5NDY5MzpmdW5jdGlvbihhdCxJZSxGKXshZnVu'@; put 'Y3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KE0pe3JldHVybiBNJTEwMD09MTF8fE0lMTAhPTF9ZnVuY3Rpb24gbShNLE8sUix6KXt2YXIgSz1NKyIgIjtzd2l0Y2goUil7Y2FzZSJzIjpyZXR1cm4gT3x8ej8ibm9ra3JhciBzZWtceGZhbmR1ciI6Im5va2tydW0gc2VrXHhmYW5k'@; put 'dW0iO2Nhc2Uic3MiOnJldHVybiB4KE0pP0srKE98fHo/InNla1x4ZmFuZHVyIjoic2VrXHhmYW5kdW0iKTpLKyJzZWtceGZhbmRhIjtjYXNlIm0iOnJldHVybiBPPyJtXHhlZG5ceGZhdGEiOiJtXHhlZG5ceGZhdHUiO2Nhc2UibW0iOnJldHVybiB4KE0pP0srKE98fHo/Im1ceGVkblx4ZmF0'@; put 'dXIiOiJtXHhlZG5ceGZhdHVtIik6Tz9LKyJtXHhlZG5ceGZhdGEiOksrIm1ceGVkblx4ZmF0dSI7Y2FzZSJoaCI6cmV0dXJuIHgoTSk/SysoT3x8ej8ia2x1a2t1c3R1bmRpciI6ImtsdWtrdXN0dW5kdW0iKTpLKyJrbHVra3VzdHVuZCI7Y2FzZSJkIjpyZXR1cm4gTz8iZGFndXIiOno/ImRh'@; put 'ZyI6ImRlZ2kiO2Nhc2UiZGQiOnJldHVybiB4KE0pP08/SysiZGFnYXIiOksrKHo/ImRhZ2EiOiJkXHhmNmd1bSIpOk8/SysiZGFndXIiOksrKHo/ImRhZyI6ImRlZ2kiKTtjYXNlIk0iOnJldHVybiBPPyJtXHhlMW51XHhmMHVyIjp6PyJtXHhlMW51XHhmMCI6Im1ceGUxbnVceGYwaSI7Y2Fz'@; put 'ZSJNTSI6cmV0dXJuIHgoTSk/Tz9LKyJtXHhlMW51XHhmMGlyIjpLKyh6PyJtXHhlMW51XHhmMGkiOiJtXHhlMW51XHhmMHVtIik6Tz9LKyJtXHhlMW51XHhmMHVyIjpLKyh6PyJtXHhlMW51XHhmMCI6Im1ceGUxbnVceGYwaSIpO2Nhc2UieSI6cmV0dXJuIE98fHo/Ilx4ZTFyIjoiXHhlMXJp'@; put 'IjtjYXNlInl5IjpyZXR1cm4geChNKT9LKyhPfHx6PyJceGUxciI6Ilx4ZTFydW0iKTpLKyhPfHx6PyJceGUxciI6Ilx4ZTFyaSIpfX1hZS5kZWZpbmVMb2NhbGUoImlzIix7bW9udGhzOiJqYW5ceGZhYXJfZmViclx4ZmFhcl9tYXJzX2Fwclx4ZWRsX21hXHhlZF9qXHhmYW5ceGVkX2pceGZh'@; put 'bFx4ZWRfXHhlMWdceGZhc3Rfc2VwdGVtYmVyX29rdFx4ZjNiZXJfblx4ZjN2ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYVx4ZWRfalx4ZmFuX2pceGZhbF9ceGUxZ1x4ZmFfc2VwX29rdF9uXHhmM3ZfZGVzIi5zcGxpdCgiXyIpLHdl'@; put 'ZWtkYXlzOiJzdW5udWRhZ3VyX21ceGUxbnVkYWd1cl9ceGZlcmlceGYwanVkYWd1cl9taVx4ZjB2aWt1ZGFndXJfZmltbXR1ZGFndXJfZlx4ZjZzdHVkYWd1cl9sYXVnYXJkYWd1ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzdW5fbVx4ZTFuX1x4ZmVyaV9taVx4ZjBfZmltX2ZceGY2'@; put 'c19sYXUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01ceGUxX1x4ZGVyX01pX0ZpX0ZceGY2X0xhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBb'@; put 'a2wuXSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgW2tsLl0gSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHhlZCBkYWcga2wuXSBMVCIsbmV4dERheToiW1x4ZTEgbW9yZ3VuIGtsLl0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbC5dIExUIixsYXN0RGF5OiJbXHhlZCBnXHhlNnIg'@; put 'a2wuXSBMVCIsbGFzdFdlZWs6IltzXHhlZFx4ZjBhc3RhXSBkZGRkIFtrbC5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlZnRpciAlcyIscGFzdDoiZnlyaXIgJXMgc1x4ZWRceGYwYW4iLHM6bSxzczptLG0sbW06bSxoOiJrbHVra3VzdHVuZCIsaGg6bSxkOm0s'@; put 'ZGQ6bSxNOm0sTU06bSx5Om0seXk6bX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDc4MTE4OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmlu'@; put 'ZUxvY2FsZSgiaXQtY2giLHttb250aHM6Imdlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiZ2VuX2ZlYl9tYXJfYXByX21hZ19n'@; put 'aXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRvbWVuaWNhX2x1bmVkXHhlY19tYXJ0ZWRceGVjX21lcmNvbGVkXHhlY19naW92ZWRceGVjX3ZlbmVyZFx4ZWNfc2FiYXRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbV9sdW5fbWFyX21lcl9n'@; put 'aW9fdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWVfZ2lfdmVfc2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1t'@; put 'IixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPZ2dpIGFsbGVdIExUIixuZXh0RGF5OiJbRG9tYW5pIGFsbGVdIExUIixuZXh0V2VlazoiZGRkZCBbYWxsZV0gTFQiLGxhc3REYXk6IltJZXJpIGFsbGVdIExUIixsYXN0V2VlazpmdW5jdGlvbigp'@; put 'e3JldHVybiAwPT09dGhpcy5kYXkoKT8iW2xhIHNjb3JzYV0gZGRkZCBbYWxsZV0gTFQiOiJbbG8gc2NvcnNvXSBkZGRkIFthbGxlXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24obSl7cmV0dXJuKC9eWzAtOV0uKyQvLnRlc3QobSk/InRyYSI6Imlu'@; put 'IikrIiAiK219LHBhc3Q6IiVzIGZhIixzOiJhbGN1bmkgc2Vjb25kaSIsc3M6IiVkIHNlY29uZGkiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0aSIsaDoidW4nb3JhIixoaDoiJWQgb3JlIixkOiJ1biBnaW9ybm8iLGRkOiIlZCBnaW9ybmkiLE06InVuIG1lc2UiLE1NOiIlZCBtZXNpIix5'@; put 'OiJ1biBhbm5vIix5eToiJWQgYW5uaSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDYzOTM2OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2Fl'@; put 'LmRlZmluZUxvY2FsZSgiaXQiLHttb250aHM6Imdlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiZ2VuX2ZlYl9tYXJfYXByX21h'@; put 'Z19naXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRvbWVuaWNhX2x1bmVkXHhlY19tYXJ0ZWRceGVjX21lcmNvbGVkXHhlY19naW92ZWRceGVjX3ZlbmVyZFx4ZWNfc2FiYXRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbV9sdW5fbWFyX21l'@; put 'cl9naW9fdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWVfZ2lfdmVfc2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhI'@; put 'Om1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW09nZ2kgYSIrKHRoaXMuaG91cnMoKT4xPyJsbGUgIjowPT09dGhpcy5ob3VycygpPyIgIjoibGwnIikrIl1MVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4i'@; put 'W0RvbWFuaSBhIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSIrKHRoaXMuaG91cnMoKT4xPyJsbGUgIjowPT09dGhpcy5ob3VycygpPyIgIjoibGwnIikrIl1MVCJ9LGxh'@; put 'c3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW0llcmkgYSIrKHRoaXMuaG91cnMoKT4xPyJsbGUgIjowPT09dGhpcy5ob3VycygpPyIgIjoibGwnIikrIl1MVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmRheSgpPyJbTGEgc2NvcnNhXSBkZGRkIFthIisodGhpcy5ob3Vy'@; put 'cygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIjoiW0xvIHNjb3Jzb10gZGRkZCBbYSIrKHRoaXMuaG91cnMoKT4xPyJsbGUgIjowPT09dGhpcy5ob3VycygpPyIgIjoibGwnIikrIl1MVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InRy'@; put 'YSAlcyIscGFzdDoiJXMgZmEiLHM6ImFsY3VuaSBzZWNvbmRpIixzczoiJWQgc2Vjb25kaSIsbToidW4gbWludXRvIixtbToiJWQgbWludXRpIixoOiJ1bidvcmEiLGhoOiIlZCBvcmUiLGQ6InVuIGdpb3JubyIsZGQ6IiVkIGdpb3JuaSIsdzoidW5hIHNldHRpbWFuYSIsd3c6IiVkIHNldHRp'@; put 'bWFuZSIsTToidW4gbWVzZSIsTU06IiVkIG1lc2kiLHk6InVuIGFubm8iLHl5OiIlZCBhbm5pIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sODY4NzE6ZnVuY3Rpb24oYXQsSWUs'@; put 'Ril7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJqYSIse2VyYXM6W3tzaW5jZToiMjAxOS0wNS0wMSIsb2Zmc2V0OjEsbmFtZToiXHU0ZWU0XHU1NDhjIixuYXJyb3c6Ilx1MzJmZiIsYWJicjoiUiJ9LHtzaW5jZToiMTk4OS0wMS0wOCIsdW50aWw6IjIwMTkt'@; put 'MDQtMzAiLG9mZnNldDoxLG5hbWU6Ilx1NWU3M1x1NjIxMCIsbmFycm93OiJcdTMzN2IiLGFiYnI6IkgifSx7c2luY2U6IjE5MjYtMTItMjUiLHVudGlsOiIxOTg5LTAxLTA3IixvZmZzZXQ6MSxuYW1lOiJcdTY2MmRcdTU0OGMiLG5hcnJvdzoiXHUzMzdjIixhYmJyOiJTIn0se3NpbmNlOiIx'@; put 'OTEyLTA3LTMwIix1bnRpbDoiMTkyNi0xMi0yNCIsb2Zmc2V0OjEsbmFtZToiXHU1OTI3XHU2YjYzIixuYXJyb3c6Ilx1MzM3ZCIsYWJicjoiVCJ9LHtzaW5jZToiMTg3My0wMS0wMSIsdW50aWw6IjE5MTItMDctMjkiLG9mZnNldDo2LG5hbWU6Ilx1NjYwZVx1NmNiYiIsbmFycm93OiJcdTMz'@; put 'N2UiLGFiYnI6Ik0ifSx7c2luY2U6IjAwMDEtMDEtMDEiLHVudGlsOiIxODczLTEyLTMxIixvZmZzZXQ6MSxuYW1lOiJcdTg5N2ZcdTY2YTYiLG5hcnJvdzoiQUQiLGFiYnI6IkFEIn0se3NpbmNlOiIwMDAwLTEyLTMxIix1bnRpbDotMS8wLG9mZnNldDoxLG5hbWU6Ilx1N2QwMFx1NTE0M1x1'@; put 'NTI0ZCIsbmFycm93OiJCQyIsYWJicjoiQkMifV0sZXJhWWVhck9yZGluYWxSZWdleDovKFx1NTE0M3xcZCspXHU1ZTc0LyxlcmFZZWFyT3JkaW5hbFBhcnNlOmZ1bmN0aW9uKG0sbGUpe3JldHVybiJcdTUxNDMiPT09bGVbMV0/MTpwYXJzZUludChsZVsxXXx8bSwxMCl9LG1vbnRoczoiMVx1'@; put 'NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2'@; put 'NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY1ZTVcdTY2ZGNcdTY1ZTVfXHU2NzA4XHU2NmRjXHU2NWU1X1x1NzA2Ylx1NjZkY1x1NjVlNV9cdTZjMzRcdTY2ZGNcdTY1ZTVfXHU2NzI4XHU2NmRj'@; put 'XHU2NWU1X1x1OTFkMVx1NjZkY1x1NjVlNV9cdTU3MWZcdTY2ZGNcdTY1ZTUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHU2NWU1X1x1NjcwOF9cdTcwNmJfXHU2YzM0X1x1NjcyOF9cdTkxZDFfXHU1NzFmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU2NzA4X1x1NzA2'@; put 'Yl9cdTZjMzRfXHU2NzI4X1x1OTFkMV9cdTU3MWYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0i'@; put 'LExMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBkZGRkIEhIOm1tIixsOiJZWVlZL01NL0REIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1KGRkZCkgSEg6'@; put 'bW0ifSxtZXJpZGllbVBhcnNlOi9cdTUzNDhcdTUyNGR8XHU1MzQ4XHU1ZjhjL2ksaXNQTTpmdW5jdGlvbihtKXtyZXR1cm4iXHU1MzQ4XHU1ZjhjIj09PW19LG1lcmlkaWVtOmZ1bmN0aW9uKG0sbGUsTSl7cmV0dXJuIG08MTI/Ilx1NTM0OFx1NTI0ZCI6Ilx1NTM0OFx1NWY4YyJ9LGNhbGVu'@; put 'ZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU2NWU1XSBMVCIsbmV4dERheToiW1x1NjYwZVx1NjVlNV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKG0pe3JldHVybiBtLndlZWsoKSE9PXRoaXMud2VlaygpPyJbXHU2NzY1XHU5MDMxXWRkZGQgTFQiOiJkZGRkIExUIn0sbGFzdERheToiW1x1NjYyOFx1'@; put 'NjVlNV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKG0pe3JldHVybiB0aGlzLndlZWsoKSE9PW0ud2VlaygpPyJbXHU1MTQ4XHU5MDMxXWRkZGQgTFQiOiJkZGRkIExUIn0sc2FtZUVsc2U6IkwifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHU2NWU1LyxvcmRpbmFsOmZ1bmN0aW9u'@; put 'KG0sbGUpe3N3aXRjaChsZSl7Y2FzZSJ5IjpyZXR1cm4gMT09PW0/Ilx1NTE0M1x1NWU3NCI6bSsiXHU1ZTc0IjtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBtKyJcdTY1ZTUiO2RlZmF1bHQ6cmV0dXJuIG19fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTVmOGMiLHBhc3Q6'@; put 'IiVzXHU1MjRkIixzOiJcdTY1NzBcdTc5ZDIiLHNzOiIlZFx1NzlkMiIsbToiMVx1NTIwNiIsbW06IiVkXHU1MjA2IixoOiIxXHU2NjQyXHU5NTkzIixoaDoiJWRcdTY2NDJcdTk1OTMiLGQ6IjFcdTY1ZTUiLGRkOiIlZFx1NjVlNSIsTToiMVx1MzBmNlx1NjcwOCIsTU06IiVkXHUzMGY2XHU2'@; put 'NzA4Iix5OiIxXHU1ZTc0Iix5eToiJWRcdTVlNzQifX0pfShGKDE2Njc2KSl9LDY4NzEwOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgianYiLHttb250aHM6IkphbnVhcmlfRmVicnVhcmlfTWFyZXRfQXByaWxfTWVpX0p1bmlf'@; put 'SnVsaV9BZ3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vcGVtYmVyX0Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWdzX1NlcF9Pa3RfTm9wX0RlcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTWluZ2d1X1NlbmVuX1NlbG9zb19S'@; put 'ZWJ1X0tlbWlzX0plbXV3YWhfU2VwdHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiTWluX1Nlbl9TZWxfUmViX0tlbV9KZW1fU2VwIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJNZ19Tbl9TbF9SYl9LbV9KbV9TcCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixM'@; put 'VFM6IkhILm1tLnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSJ9LG1lcmlkaWVtUGFyc2U6L2VuamluZ3xzaXlhbmd8c29udGVufG5kYWx1LyxtZXJp'@; put 'ZGllbUhvdXI6ZnVuY3Rpb24obSxsZSl7cmV0dXJuIDEyPT09bSYmKG09MCksImVuamluZyI9PT1sZT9tOiJzaXlhbmciPT09bGU/bT49MTE/bTptKzEyOiJzb250ZW4iPT09bGV8fCJuZGFsdSI9PT1sZT9tKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXtyZXR1cm4gbTwx'@; put 'MT8iZW5qaW5nIjptPDE1PyJzaXlhbmciOm08MTk/InNvbnRlbiI6Im5kYWx1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltEaW50ZW4gcHVuaWtvIHB1a3VsXSBMVCIsbmV4dERheToiW01iZW5qYW5nIHB1a3VsXSBMVCIsbmV4dFdlZWs6ImRkZGQgW3B1a3VsXSBMVCIsbGFzdERheToiW0thbGEg'@; put 'd2luZ2kgcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBba2VwZW5na2VyIHB1a3VsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToid29udGVuIGluZyAlcyIscGFzdDoiJXMgaW5na2FuZyBrZXBlbmdrZXIiLHM6InNhd2V0YXdpcyBkZXRpayIsc3M6IiVkIGRldGlr'@; put 'IixtOiJzZXR1bmdnYWwgbWVuaXQiLG1tOiIlZCBtZW5pdCIsaDoic2V0dW5nZ2FsIGphbSIsaGg6IiVkIGphbSIsZDoic2VkaW50ZW4iLGRkOiIlZCBkaW50ZW4iLE06InNld3VsYW4iLE1NOiIlZCB3dWxhbiIseToic2V0YXVuIix5eToiJWQgdGF1biJ9LHdlZWs6e2RvdzoxLGRveTo3fX0p'@; put 'fShGKDE2Njc2KSl9LDE3MTI1OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgia2EiLHttb250aHM6Ilx1MTBkOFx1MTBkMFx1MTBkY1x1MTBkNVx1MTBkMFx1MTBlMFx1MTBkOF9cdTEwZDdcdTEwZDRcdTEwZDFcdTEwZDRcdTEw'@; put 'ZTBcdTEwZDVcdTEwZDBcdTEwZGFcdTEwZDhfXHUxMGRiXHUxMGQwXHUxMGUwXHUxMGUyXHUxMGQ4X1x1MTBkMFx1MTBkZVx1MTBlMFx1MTBkOFx1MTBkYVx1MTBkOF9cdTEwZGJcdTEwZDBcdTEwZDhcdTEwZTFcdTEwZDhfXHUxMGQ4XHUxMGQ1XHUxMGRjXHUxMGQ4XHUxMGUxXHUxMGQ4X1x1'@; put 'MTBkOFx1MTBkNVx1MTBkYVx1MTBkOFx1MTBlMVx1MTBkOF9cdTEwZDBcdTEwZDJcdTEwZDVcdTEwZDhcdTEwZTFcdTEwZTJcdTEwZGRfXHUxMGUxXHUxMGQ0XHUxMGU1XHUxMGUyXHUxMGQ0XHUxMGRiXHUxMGQxXHUxMGQ0XHUxMGUwXHUxMGQ4X1x1MTBkZFx1MTBlNVx1MTBlMlx1MTBkZFx1'@; put 'MTBkYlx1MTBkMVx1MTBkNFx1MTBlMFx1MTBkOF9cdTEwZGNcdTEwZGRcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDhfXHUxMGQzXHUxMGQ0XHUxMGQ5XHUxMGQ0XHUxMGRiXHUxMGQxXHUxMGQ0XHUxMGUwXHUxMGQ4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTEwZDhc'@; put 'dTEwZDBcdTEwZGNfXHUxMGQ3XHUxMGQ0XHUxMGQxX1x1MTBkYlx1MTBkMFx1MTBlMF9cdTEwZDBcdTEwZGVcdTEwZTBfXHUxMGRiXHUxMGQwXHUxMGQ4X1x1MTBkOFx1MTBkNVx1MTBkY19cdTEwZDhcdTEwZDVcdTEwZGFfXHUxMGQwXHUxMGQyXHUxMGQ1X1x1MTBlMVx1MTBkNFx1MTBlNV9c'@; put 'dTEwZGRcdTEwZTVcdTEwZTJfXHUxMGRjXHUxMGRkXHUxMGQ0X1x1MTBkM1x1MTBkNFx1MTBkOSIuc3BsaXQoIl8iKSx3ZWVrZGF5czp7c3RhbmRhbG9uZToiXHUxMGQ5XHUxMGQ1XHUxMGQ4XHUxMGUwXHUxMGQwX1x1MTBkZFx1MTBlMFx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1'@; put 'MTBkOF9cdTEwZTFcdTEwZDBcdTEwZGJcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZDhfXHUxMGRkXHUxMGQ3XHUxMGVlXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1MTBlZVx1MTBlM1x1MTBkN1x1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1'@; put 'MTBkOF9cdTEwZGVcdTEwZDBcdTEwZTBcdTEwZDBcdTEwZTFcdTEwZDlcdTEwZDRcdTEwZDVcdTEwZDhfXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4Ii5zcGxpdCgiXyIpLGZvcm1hdDoiXHUxMGQ5XHUxMGQ1XHUxMGQ4XHUxMGUwXHUxMGQwXHUxMGUxX1x1MTBkZFx1MTBl'@; put 'MFx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBlMV9cdTEwZTFcdTEwZDBcdTEwZGJcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTFfXHUxMGRkXHUxMGQ3XHUxMGVlXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBlZVx1MTBlM1x1MTBk'@; put 'N1x1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBlMV9cdTEwZGVcdTEwZDBcdTEwZTBcdTEwZDBcdTEwZTFcdTEwZDlcdTEwZDRcdTEwZDVcdTEwZTFfXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi8oXHUxMGVjXHUxMGQ4'@; put 'XHUxMGRjXHUxMGQwfFx1MTBlOFx1MTBkNFx1MTBkYlx1MTBkM1x1MTBkNFx1MTBkMikvfSx3ZWVrZGF5c1Nob3J0OiJcdTEwZDlcdTEwZDVcdTEwZDhfXHUxMGRkXHUxMGUwXHUxMGU4X1x1MTBlMVx1MTBkMFx1MTBkYl9cdTEwZGRcdTEwZDdcdTEwZWVfXHUxMGVlXHUxMGUzXHUxMGQ3X1x1'@; put 'MTBkZVx1MTBkMFx1MTBlMF9cdTEwZThcdTEwZDBcdTEwZDEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MTBkOVx1MTBkNV9cdTEwZGRcdTEwZTBfXHUxMGUxXHUxMGQwX1x1MTBkZFx1MTBkN19cdTEwZWVcdTEwZTNfXHUxMGRlXHUxMGQwX1x1MTBlOFx1MTBkMCIuc3BsaXQoIl8iKSxs'@; put 'b25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTEwZDNcdTEwZTZcdTEw'@; put 'ZDRcdTEwZTFdIExUWy1cdTEwZDZcdTEwZDRdIixuZXh0RGF5OiJbXHUxMGVlXHUxMGQ1XHUxMGQwXHUxMGRhXSBMVFstXHUxMGQ2XHUxMGQ0XSIsbGFzdERheToiW1x1MTBkMlx1MTBlM1x1MTBlOFx1MTBkOFx1MTBkY10gTFRbLVx1MTBkNlx1MTBkNF0iLG5leHRXZWVrOiJbXHUxMGU4XHUx'@; put 'MGQ0XHUxMGRiXHUxMGQzXHUxMGQ0XHUxMGQyXSBkZGRkIExUWy1cdTEwZDZcdTEwZDRdIixsYXN0V2VlazoiW1x1MTBlY1x1MTBkOFx1MTBkY1x1MTBkMF0gZGRkZCBMVC1cdTEwZDZcdTEwZDQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24obSl7cmV0dXJu'@; put 'IG0ucmVwbGFjZSgvKFx1MTBlY1x1MTBkMFx1MTBkYnxcdTEwZWNcdTEwZTNcdTEwZDd8XHUxMGUxXHUxMGQwXHUxMGQwXHUxMGQ3fFx1MTBlY1x1MTBkNFx1MTBkYXxcdTEwZDNcdTEwZTZ8XHUxMGQ3XHUxMGQ1KShcdTEwZDh8XHUxMGQ0KS8sZnVuY3Rpb24obGUsTSxPKXtyZXR1cm4iXHUx'@; put 'MGQ4Ij09PU8/TSsiXHUxMGU4XHUxMGQ4IjpNK08rIlx1MTBlOFx1MTBkOCJ9KX0scGFzdDpmdW5jdGlvbihtKXtyZXR1cm4vKFx1MTBlY1x1MTBkMFx1MTBkYlx1MTBkOHxcdTEwZWNcdTEwZTNcdTEwZDdcdTEwZDh8XHUxMGUxXHUxMGQwXHUxMGQwXHUxMGQ3XHUxMGQ4fFx1MTBkM1x1MTBl'@; put 'Nlx1MTBkNHxcdTEwZDdcdTEwZDVcdTEwZDQpLy50ZXN0KG0pP20ucmVwbGFjZSgvKFx1MTBkOHxcdTEwZDQpJC8sIlx1MTBkOFx1MTBlMSBcdTEwZWNcdTEwZDhcdTEwZGMiKTovXHUxMGVjXHUxMGQ0XHUxMGRhXHUxMGQ4Ly50ZXN0KG0pP20ucmVwbGFjZSgvXHUxMGVjXHUxMGQ0XHUxMGRh'@; put 'XHUxMGQ4JC8sIlx1MTBlY1x1MTBkYVx1MTBkOFx1MTBlMSBcdTEwZWNcdTEwZDhcdTEwZGMiKTptfSxzOiJcdTEwZTBcdTEwZDBcdTEwZGJcdTEwZDNcdTEwZDRcdTEwZGNcdTEwZDhcdTEwZGJcdTEwZDQgXHUxMGVjXHUxMGQwXHUxMGRiXHUxMGQ4IixzczoiJWQgXHUxMGVjXHUxMGQwXHUx'@; put 'MGRiXHUxMGQ4IixtOiJcdTEwZWNcdTEwZTNcdTEwZDdcdTEwZDgiLG1tOiIlZCBcdTEwZWNcdTEwZTNcdTEwZDdcdTEwZDgiLGg6Ilx1MTBlMVx1MTBkMFx1MTBkMFx1MTBkN1x1MTBkOCIsaGg6IiVkIFx1MTBlMVx1MTBkMFx1MTBkMFx1MTBkN1x1MTBkOCIsZDoiXHUxMGQzXHUxMGU2XHUx'@; put 'MGQ0IixkZDoiJWQgXHUxMGQzXHUxMGU2XHUxMGQ0IixNOiJcdTEwZDdcdTEwZDVcdTEwZDQiLE1NOiIlZCBcdTEwZDdcdTEwZDVcdTEwZDQiLHk6Ilx1MTBlY1x1MTBkNFx1MTBkYVx1MTBkOCIseXk6IiVkIFx1MTBlY1x1MTBkNFx1MTBkYVx1MTBkOCJ9LGRheU9mTW9udGhPcmRpbmFsUGFy'@; put 'c2U6LzB8MS1cdTEwZGFcdTEwZDh8XHUxMGRiXHUxMGQ0LVxkezEsMn18XGR7MSwyfS1cdTEwZDQvLG9yZGluYWw6ZnVuY3Rpb24obSl7cmV0dXJuIDA9PT1tP206MT09PW0/bSsiLVx1MTBkYVx1MTBkOCI6bTwyMHx8bTw9MTAwJiZtJTIwPT0wfHxtJTEwMD09MD8iXHUxMGRiXHUxMGQ0LSIr'@; put 'bTptKyItXHUxMGQ0In0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sODI0NjE6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9ezA6Ii1cdTA0NDhcdTA0NTYiLDE6Ii1cdTA0NDhcdTA0NTYiLDI6Ii1cdTA0NDhcdTA0NTYiLDM6Ii1c'@; put 'dTA0NDhcdTA0NTYiLDQ6Ii1cdTA0NDhcdTA0NTYiLDU6Ii1cdTA0NDhcdTA0NTYiLDY6Ii1cdTA0NDhcdTA0NGIiLDc6Ii1cdTA0NDhcdTA0NTYiLDg6Ii1cdTA0NDhcdTA0NTYiLDk6Ii1cdTA0NDhcdTA0NGIiLDEwOiItXHUwNDQ4XHUwNDRiIiwyMDoiLVx1MDQ0OFx1MDQ0YiIsMzA6Ii1c'@; put 'dTA0NDhcdTA0NGIiLDQwOiItXHUwNDQ4XHUwNDRiIiw1MDoiLVx1MDQ0OFx1MDQ1NiIsNjA6Ii1cdTA0NDhcdTA0NGIiLDcwOiItXHUwNDQ4XHUwNDU2Iiw4MDoiLVx1MDQ0OFx1MDQ1NiIsOTA6Ii1cdTA0NDhcdTA0NGIiLDEwMDoiLVx1MDQ0OFx1MDQ1NiJ9O2FlLmRlZmluZUxvY2FsZSgi'@; put 'a2siLHttb250aHM6Ilx1MDQ5Ylx1MDQzMFx1MDRhM1x1MDQ0Mlx1MDQzMFx1MDQ0MF9cdTA0MzBcdTA0OWJcdTA0M2ZcdTA0MzBcdTA0M2RfXHUwNDNkXHUwNDMwXHUwNDQzXHUwNDQwXHUwNDRiXHUwNDM3X1x1MDQ0MVx1MDRkOVx1MDQ0M1x1MDQ1Nlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0'@; put 'M2NcdTA0NGJcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDQzXHUwNDQxXHUwNDRiXHUwNDNjX1x1MDQ0OFx1MDQ1Nlx1MDQzYlx1MDQzNFx1MDQzNV9cdTA0NDJcdTA0MzBcdTA0M2NcdTA0NGJcdTA0MzdfXHUwNDliXHUwNDRiXHUwNDQwXHUwNDNhXHUwNGFmXHUwNDM5XHUwNDM1XHUwNDNhX1x1'@; put 'MDQ5Ylx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZF9cdTA0OWJcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDhcdTA0MzBfXHUwNDM2XHUwNDM1XHUwNDNiXHUwNDQyXHUwNDNlXHUwNDliXHUwNDQxXHUwNDMwXHUwNDNkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0OWJcdTA0MzBcdTA0YTNf'@; put 'XHUwNDMwXHUwNDliXHUwNDNmX1x1MDQzZFx1MDQzMFx1MDQ0M19cdTA0NDFcdTA0ZDlcdTA0NDNfXHUwNDNjXHUwNDMwXHUwNDNjX1x1MDQzY1x1MDQzMFx1MDQ0M19cdTA0NDhcdTA0NTZcdTA0M2JfXHUwNDQyXHUwNDMwXHUwNDNjX1x1MDQ5Ylx1MDQ0Ylx1MDQ0MF9cdTA0OWJcdTA0MzBc'@; put 'dTA0MzdfXHUwNDliXHUwNDMwXHUwNDQwX1x1MDQzNlx1MDQzNVx1MDQzYiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDM2XHUwNDM1XHUwNDNhXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQzNFx1MDRhZlx1MDQzOVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9c'@; put 'dTA0NDFcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTZfXHUwNDQxXHUwNGQ5XHUwNDQwXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQzMVx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9cdTA0MzZcdTA0YjFcdTA0M2Nc'@; put 'dTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQzNlx1MDQzNVx1MDQzYV9cdTA0MzRcdTA0YWZcdTA0MzlfXHUwNDQxXHUwNDM1XHUwNDM5X1x1MDQ0MVx1MDRkOVx1MDQ0MF9cdTA0MzFcdTA0MzVcdTA0MzlfXHUwNDM2'@; put 'XHUwNGIxXHUwNDNjX1x1MDQ0MVx1MDQzNVx1MDQzZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDM2XHUwNDNhX1x1MDQzNFx1MDQzOV9cdTA0NDFcdTA0MzlfXHUwNDQxXHUwNDQwX1x1MDQzMVx1MDQzOV9cdTA0MzZcdTA0M2NfXHUwNDQxXHUwNDNkIi5zcGxpdCgiXyIpLGxvbmdE'@; put 'YXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQxMVx1MDRhZlx1MDQzM1x1'@; put 'MDQ1Nlx1MDQzZCBcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDJdIExUIixuZXh0RGF5OiJbXHUwNDE1XHUwNDQwXHUwNDQyXHUwNDM1XHUwNGEzIFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBc'@; put 'dTA0NDJdIExUIixsYXN0RGF5OiJbXHUwNDFhXHUwNDM1XHUwNDQ4XHUwNDM1IFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLGxhc3RXZWVrOiJbXHUwNGU4XHUwNDQyXHUwNDNhXHUwNDM1XHUwNDNkIFx1MDQzMFx1MDQzZlx1MDQ0Mlx1MDQzMFx1MDQzZFx1MDQ0Ylx1MDRh'@; put 'M10gZGRkZCBbXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNDU2XHUwNDQ4XHUwNDU2XHUwNDNkXHUwNDM0XHUwNDM1IixwYXN0OiIlcyBcdTA0MzFcdTA0YjFcdTA0NDBcdTA0NGJcdTA0M2QiLHM6'@; put 'Ilx1MDQzMVx1MDQ1Nlx1MDQ0MFx1MDQzZFx1MDQzNVx1MDQ0OFx1MDQzNSBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOiIlZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG06Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0M2NcdTA0MzhcdTA0'@; put 'M2RcdTA0NDNcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLGg6Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQzMVx1MDQ1Nlx1'@; put 'MDQ0MCBcdTA0M2FcdTA0YWZcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0YWZcdTA0M2QiLE06Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0MzBcdTA0MzkiLE1NOiIlZCBcdTA0MzBcdTA0MzkiLHk6Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0MzZcdTA0NGJcdTA0M2IiLHl5OiIlZCBcdTA0MzZc'@; put 'dTA0NGJcdTA0M2IifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NDhcdTA0NTZ8XHUwNDQ4XHUwNDRiKS8sb3JkaW5hbDpmdW5jdGlvbihsZSl7cmV0dXJuIGxlKyh4W2xlXXx8eFtsZSUxMF18fHhbbGU+PTEwMD8xMDA6bnVsbF0pfSx3ZWVrOntkb3c6MSxkb3k6N319'@; put 'KX0oRigxNjY3NikpfSw3NzM5OTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD17MToiXHUxN2UxIiwyOiJcdTE3ZTIiLDM6Ilx1MTdlMyIsNDoiXHUxN2U0Iiw1OiJcdTE3ZTUiLDY6Ilx1MTdlNiIsNzoiXHUxN2U3Iiw4OiJcdTE3ZTgiLDk6Ilx1'@; put 'MTdlOSIsMDoiXHUxN2UwIn0sbT17Ilx1MTdlMSI6IjEiLCJcdTE3ZTIiOiIyIiwiXHUxN2UzIjoiMyIsIlx1MTdlNCI6IjQiLCJcdTE3ZTUiOiI1IiwiXHUxN2U2IjoiNiIsIlx1MTdlNyI6IjciLCJcdTE3ZTgiOiI4IiwiXHUxN2U5IjoiOSIsIlx1MTdlMCI6IjAifTthZS5kZWZpbmVMb2Nh'@; put 'bGUoImttIix7bW9udGhzOiJcdTE3OThcdTE3ODBcdTE3OWFcdTE3YjZfXHUxNzgwXHUxN2JiXHUxNzk4XHUxN2QyXHUxNzk3XHUxN2M4X1x1MTc5OFx1MTdiOFx1MTc5M1x1MTdiNl9cdTE3OThcdTE3YzFcdTE3OWZcdTE3YjZfXHUxN2E3XHUxNzlmXHUxNzk3XHUxN2I2X1x1MTc5OFx1MTdi'@; put 'N1x1MTc5MFx1MTdiYlx1MTc5M1x1MTdiNl9cdTE3ODBcdTE3ODBcdTE3ZDJcdTE3ODBcdTE3OGFcdTE3YjZfXHUxNzlmXHUxN2I4XHUxN2EwXHUxN2I2X1x1MTc4MFx1MTc4OVx1MTdkMlx1MTc4OVx1MTdiNl9cdTE3OGZcdTE3YmJcdTE3OWJcdTE3YjZfXHUxNzljXHUxN2I3XHUxNzg1XHUx'@; put 'N2QyXHUxNzg2XHUxN2I3XHUxNzgwXHUxN2I2X1x1MTc5Mlx1MTdkMlx1MTc5M1x1MTdiYyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUxNzk4XHUxNzgwXHUxNzlhXHUxN2I2X1x1MTc4MFx1MTdiYlx1MTc5OFx1MTdkMlx1MTc5N1x1MTdjOF9cdTE3OThcdTE3YjhcdTE3OTNcdTE3YjZf'@; put 'XHUxNzk4XHUxN2MxXHUxNzlmXHUxN2I2X1x1MTdhN1x1MTc5Zlx1MTc5N1x1MTdiNl9cdTE3OThcdTE3YjdcdTE3OTBcdTE3YmJcdTE3OTNcdTE3YjZfXHUxNzgwXHUxNzgwXHUxN2QyXHUxNzgwXHUxNzhhXHUxN2I2X1x1MTc5Zlx1MTdiOFx1MTdhMFx1MTdiNl9cdTE3ODBcdTE3ODlcdTE3'@; put 'ZDJcdTE3ODlcdTE3YjZfXHUxNzhmXHUxN2JiXHUxNzliXHUxN2I2X1x1MTc5Y1x1MTdiN1x1MTc4NVx1MTdkMlx1MTc4Nlx1MTdiN1x1MTc4MFx1MTdiNl9cdTE3OTJcdTE3ZDJcdTE3OTNcdTE3YmMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MTdhMlx1MTdiNlx1MTc5MVx1MTdiN1x1MTc4'@; put 'Zlx1MTdkMlx1MTc5OV9cdTE3ODVcdTE3ZDBcdTE3OTNcdTE3ZDJcdTE3OTFfXHUxN2EyXHUxNzg0XHUxN2QyXHUxNzgyXHUxN2I2XHUxNzlhX1x1MTc5Nlx1MTdiYlx1MTc5Ml9cdTE3OTZcdTE3ZDJcdTE3OWFcdTE3YTBcdTE3OWZcdTE3ZDJcdTE3OTRcdTE3OGZcdTE3YjdcdTE3Y2RfXHUx'@; put 'NzlmXHUxN2JiXHUxNzgwXHUxN2QyXHUxNzlhX1x1MTc5Zlx1MTdjNVx1MTc5YVx1MTdjZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTE3YTJcdTE3YjZfXHUxNzg1X1x1MTdhMl9cdTE3OTZfXHUxNzk2XHUxN2QyXHUxNzlhX1x1MTc5Zlx1MTdiYl9cdTE3OWYiLnNwbGl0KCJfIiks'@; put 'd2Vla2RheXNNaW46Ilx1MTdhMlx1MTdiNl9cdTE3ODVfXHUxN2EyX1x1MTc5Nl9cdTE3OTZcdTE3ZDJcdTE3OWFfXHUxNzlmXHUxN2JiX1x1MTc5ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoi'@; put 'REQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MTc5Nlx1MTdkMlx1MTc5YVx1MTdiOVx1MTc4MHxcdTE3OWJcdTE3ZDJcdTE3ODRcdTE3YjZcdTE3ODUvLGlz'@; put 'UE06ZnVuY3Rpb24oTSl7cmV0dXJuIlx1MTc5Ylx1MTdkMlx1MTc4NFx1MTdiNlx1MTc4NSI9PT1NfSxtZXJpZGllbTpmdW5jdGlvbihNLE8sUil7cmV0dXJuIE08MTI/Ilx1MTc5Nlx1MTdkMlx1MTc5YVx1MTdiOVx1MTc4MCI6Ilx1MTc5Ylx1MTdkMlx1MTc4NFx1MTdiNlx1MTc4NSJ9LGNh'@; put 'bGVuZGFyOntzYW1lRGF5OiJbXHUxNzkwXHUxN2QyXHUxNzg0XHUxN2MzXHUxNzkzXHUxN2MxXHUxN2M3IFx1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NF0gTFQiLG5leHREYXk6IltcdTE3OWZcdTE3ZDJcdTE3YTJcdTE3YzJcdTE3ODAgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbmV4'@; put 'dFdlZWs6ImRkZGQgW1x1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NF0gTFQiLGxhc3REYXk6IltcdTE3OThcdTE3ZDJcdTE3OWZcdTE3YjdcdTE3OWJcdTE3OThcdTE3YjdcdTE3ODkgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MTc5Zlx1MTc5NFx1MTdk'@; put 'Mlx1MTc4Zlx1MTdiNlx1MTdhMFx1MTdjZFx1MTc5OFx1MTdiYlx1MTc5M10gW1x1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHUxNzkxXHUxN2MwXHUxNzhmIixwYXN0OiIlc1x1MTc5OFx1MTdiYlx1MTc5MyIsczoi'@; put 'XHUxNzk0XHUxN2M5XHUxN2JiXHUxNzkzXHUxN2QyXHUxNzk4XHUxN2I2XHUxNzkzXHUxNzljXHUxN2I3XHUxNzkzXHUxN2I2XHUxNzkxXHUxN2I4IixzczoiJWQgXHUxNzljXHUxN2I3XHUxNzkzXHUxN2I2XHUxNzkxXHUxN2I4IixtOiJcdTE3OThcdTE3YmRcdTE3OTlcdTE3OTNcdTE3YjZc'@; put 'dTE3OTFcdTE3YjgiLG1tOiIlZCBcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLGg6Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NCIsaGg6IiVkIFx1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NCIsZDoiXHUxNzk4XHUxN2JkXHUxNzk5XHUxNzkwXHUxN2QyXHUxNzg0'@; put 'XHUxN2MzIixkZDoiJWQgXHUxNzkwXHUxN2QyXHUxNzg0XHUxN2MzIixNOiJcdTE3OThcdTE3YmRcdTE3OTlcdTE3ODFcdTE3YzIiLE1NOiIlZCBcdTE3ODFcdTE3YzIiLHk6Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc4Nlx1MTdkMlx1MTc5M1x1MTdiNlx1MTdjNiIseXk6IiVkIFx1MTc4Nlx1'@; put 'MTdkMlx1MTc5M1x1MTdiNlx1MTdjNiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1x1MTc5MVx1MTdiOFxkezEsMn0vLG9yZGluYWw6Ilx1MTc5MVx1MTdiOCVkIixwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9bXHUxN2UxXHUxN2UyXHUxN2UzXHUxN2U0XHUxN2U1'@; put 'XHUxN2U2XHUxN2U3XHUxN2U4XHUxN2U5XHUxN2UwXS9nLGZ1bmN0aW9uKE8pe3JldHVybiBtW09dfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0pfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3Nikp'@; put 'fSwzODcyMDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD17MToiXHUwY2U3IiwyOiJcdTBjZTgiLDM6Ilx1MGNlOSIsNDoiXHUwY2VhIiw1OiJcdTBjZWIiLDY6Ilx1MGNlYyIsNzoiXHUwY2VkIiw4OiJcdTBjZWUiLDk6Ilx1MGNlZiIsMDoiXHUw'@; put 'Y2U2In0sbT17Ilx1MGNlNyI6IjEiLCJcdTBjZTgiOiIyIiwiXHUwY2U5IjoiMyIsIlx1MGNlYSI6IjQiLCJcdTBjZWIiOiI1IiwiXHUwY2VjIjoiNiIsIlx1MGNlZCI6IjciLCJcdTBjZWUiOiI4IiwiXHUwY2VmIjoiOSIsIlx1MGNlNiI6IjAifTthZS5kZWZpbmVMb2NhbGUoImtuIix7bW9u'@; put 'dGhzOiJcdTBjOWNcdTBjYThcdTBjYjVcdTBjYjBcdTBjYmZfXHUwY2FiXHUwY2M2XHUwY2FjXHUwY2NkXHUwY2IwXHUwY2I1XHUwY2IwXHUwY2JmX1x1MGNhZVx1MGNiZVx1MGNiMFx1MGNjZFx1MGM5YVx1MGNjZF9cdTBjOGZcdTBjYWFcdTBjY2RcdTBjYjBcdTBjYmZcdTBjYjJcdTBjY2Rf'@; put 'XHUwY2FlXHUwY2M2XHUwY2Q1X1x1MGM5Y1x1MGNjMlx1MGNhOFx1MGNjZF9cdTBjOWNcdTBjYzFcdTBjYjJcdTBjYzZcdTBjZDZfXHUwYzg2XHUwYzk3XHUwY2I4XHUwY2NkXHUwYzlmXHUwY2NkX1x1MGNiOFx1MGNjNlx1MGNhYVx1MGNjZFx1MGM5Zlx1MGNjNlx1MGM4Mlx1MGNhY1x1MGNi'@; put 'MFx1MGNjZF9cdTBjODVcdTBjOTVcdTBjY2RcdTBjOWZcdTBjYzZcdTBjYzJcdTBjZDVcdTBjYWNcdTBjYjBcdTBjY2RfXHUwY2E4XHUwY2I1XHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkX1x1MGNhMVx1MGNiZlx1MGNiOFx1MGNjNlx1MGM4Mlx1MGNhY1x1MGNiMFx1MGNjZCIuc3Bs'@; put 'aXQoIl8iKSxtb250aHNTaG9ydDoiXHUwYzljXHUwY2E4X1x1MGNhYlx1MGNjNlx1MGNhY1x1MGNjZFx1MGNiMF9cdTBjYWVcdTBjYmVcdTBjYjBcdTBjY2RcdTBjOWFcdTBjY2RfXHUwYzhmXHUwY2FhXHUwY2NkXHUwY2IwXHUwY2JmXHUwY2IyXHUwY2NkX1x1MGNhZVx1MGNjNlx1MGNkNV9c'@; put 'dTBjOWNcdTBjYzJcdTBjYThcdTBjY2RfXHUwYzljXHUwY2MxXHUwY2IyXHUwY2M2XHUwY2Q2X1x1MGM4Nlx1MGM5N1x1MGNiOFx1MGNjZFx1MGM5Zlx1MGNjZF9cdTBjYjhcdTBjYzZcdTBjYWFcdTBjY2RcdTBjOWZcdTBjYzZcdTBjODJfXHUwYzg1XHUwYzk1XHUwY2NkXHUwYzlmXHUwY2M2'@; put 'XHUwY2MyXHUwY2Q1X1x1MGNhOFx1MGNiNVx1MGNjNlx1MGM4Ml9cdTBjYTFcdTBjYmZcdTBjYjhcdTBjYzZcdTBjODIiLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwY2FkXHUwY2JlXHUwY2E4XHUwY2MxXHUwY2I1XHUwY2JlXHUwY2IwX1x1MGNiOFx1MGNj'@; put 'Nlx1MGNjMlx1MGNkNVx1MGNhZVx1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYWVcdTBjODJcdTBjOTdcdTBjYjNcdTBjYjVcdTBjYmVcdTBjYjBfXHUwY2FjXHUwY2MxXHUwY2E3XHUwY2I1XHUwY2JlXHUwY2IwX1x1MGM5N1x1MGNjMVx1MGNiMFx1MGNjMVx1MGNiNVx1MGNiZVx1MGNiMF9cdTBj'@; put 'YjZcdTBjYzFcdTBjOTVcdTBjY2RcdTBjYjBcdTBjYjVcdTBjYmVcdTBjYjBfXHUwY2I2XHUwY2E4XHUwY2JmXHUwY2I1XHUwY2JlXHUwY2IwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGNhZFx1MGNiZVx1MGNhOFx1MGNjMV9cdTBjYjhcdTBjYzZcdTBjYzJcdTBjZDVcdTBjYWVf'@; put 'XHUwY2FlXHUwYzgyXHUwYzk3XHUwY2IzX1x1MGNhY1x1MGNjMVx1MGNhN19cdTBjOTdcdTBjYzFcdTBjYjBcdTBjYzFfXHUwY2I2XHUwY2MxXHUwYzk1XHUwY2NkXHUwY2IwX1x1MGNiNlx1MGNhOFx1MGNiZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwY2FkXHUwY2JlX1x1MGNiOFx1'@; put 'MGNjNlx1MGNjMlx1MGNkNV9cdTBjYWVcdTBjODJfXHUwY2FjXHUwY2MxX1x1MGM5N1x1MGNjMV9cdTBjYjZcdTBjYzFfXHUwY2I2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIixMVFM6IkEgaDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixM'@; put 'TEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGM4N1x1MGM4Mlx1MGNhNlx1MGNjMV0gTFQiLG5leHREYXk6IltcdTBjYThcdTBjYmVcdTBjYjNcdTBjYzZdIExUIixuZXh0V2VlazoiZGRkZCwg'@; put 'TFQiLGxhc3REYXk6IltcdTBjYThcdTBjYmZcdTBjYThcdTBjY2RcdTBjYThcdTBjYzZdIExUIixsYXN0V2VlazoiW1x1MGM5NVx1MGNjNlx1MGNjMlx1MGNhOFx1MGNjNlx1MGNhZl0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGNhOFx1MGM4'@; put 'Mlx1MGNhNFx1MGNiMCIscGFzdDoiJXMgXHUwY2I5XHUwY2JmXHUwYzgyXHUwY2E2XHUwY2M2IixzOiJcdTBjOTVcdTBjYzZcdTBjYjJcdTBjYjVcdTBjYzEgXHUwYzk1XHUwY2NkXHUwY2I3XHUwY2EzXHUwYzk3XHUwY2IzXHUwY2MxIixzczoiJWQgXHUwY2I4XHUwY2M2XHUwYzk1XHUwY2M2'@; put 'XHUwYzgyXHUwY2ExXHUwY2MxXHUwYzk3XHUwY2IzXHUwY2MxIixtOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwY2E4XHUwY2JmXHUwY2FlXHUwY2JmXHUwY2I3IixtbToiJWQgXHUwY2E4XHUwY2JmXHUwY2FlXHUwY2JmXHUwY2I3IixoOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEg'@; put 'XHUwYzk3XHUwYzgyXHUwYzlmXHUwY2M2IixoaDoiJWQgXHUwYzk3XHUwYzgyXHUwYzlmXHUwY2M2IixkOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwY2E2XHUwY2JmXHUwY2E4IixkZDoiJWQgXHUwY2E2XHUwY2JmXHUwY2E4IixNOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUw'@; put 'Y2E0XHUwY2JmXHUwYzgyXHUwYzk3XHUwY2IzXHUwY2MxIixNTToiJWQgXHUwY2E0XHUwY2JmXHUwYzgyXHUwYzk3XHUwY2IzXHUwY2MxIix5OiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwY2I1XHUwY2IwXHUwY2NkXHUwY2I3Iix5eToiJWQgXHUwY2I1XHUwY2IwXHUwY2NkXHUwY2I3'@; put 'In0scHJlcGFyc2U6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvW1x1MGNlN1x1MGNlOFx1MGNlOVx1MGNlYVx1MGNlYlx1MGNlY1x1MGNlZFx1MGNlZVx1MGNlZlx1MGNlNl0vZyxmdW5jdGlvbihPKXtyZXR1cm4gbVtPXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKE0pe3JldHVybiBN'@; put 'LnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oTyl7cmV0dXJuIHhbT119KX0sbWVyaWRpZW1QYXJzZTovXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmfFx1MGNhY1x1MGNjNlx1MGNiM1x1MGNiZlx1MGM5N1x1MGNjZFx1MGM5N1x1MGNjNnxcdTBjYWVcdTBjYTdcdTBjY2RcdTBj'@; put 'YWZcdTBjYmVcdTBjYjlcdTBjY2RcdTBjYTh8XHUwY2I4XHUwYzgyXHUwYzljXHUwY2M2LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTSxPKXtyZXR1cm4gMTI9PT1NJiYoTT0wKSwiXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmIj09PU8/TTw0P006TSsxMjoiXHUwY2FjXHUw'@; put 'Y2M2XHUwY2IzXHUwY2JmXHUwYzk3XHUwY2NkXHUwYzk3XHUwY2M2Ij09PU8/TToiXHUwY2FlXHUwY2E3XHUwY2NkXHUwY2FmXHUwY2JlXHUwY2I5XHUwY2NkXHUwY2E4Ij09PU8/TT49MTA/TTpNKzEyOiJcdTBjYjhcdTBjODJcdTBjOWNcdTBjYzYiPT09Tz9NKzEyOnZvaWQgMH0sbWVyaWRp'@; put 'ZW06ZnVuY3Rpb24oTSxPLFIpe3JldHVybiBNPDQ/Ilx1MGNiMFx1MGNiZVx1MGNhNFx1MGNjZFx1MGNiMFx1MGNiZiI6TTwxMD8iXHUwY2FjXHUwY2M2XHUwY2IzXHUwY2JmXHUwYzk3XHUwY2NkXHUwYzk3XHUwY2M2IjpNPDE3PyJcdTBjYWVcdTBjYTdcdTBjY2RcdTBjYWZcdTBjYmVcdTBj'@; put 'YjlcdTBjY2RcdTBjYTgiOk08MjA/Ilx1MGNiOFx1MGM4Mlx1MGM5Y1x1MGNjNiI6Ilx1MGNiMFx1MGNiZVx1MGNhNFx1MGNjZFx1MGNiMFx1MGNiZiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHUwY2E4XHUwY2M2XHUwY2Q1KS8sb3JkaW5hbDpmdW5jdGlvbihNKXtyZXR1'@; put 'cm4gTSsiXHUwY2E4XHUwY2M2XHUwY2Q1In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEYoMTY2NzYpKX0sODUzMDY6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJrbyIse21vbnRoczoiMVx1YzZkNF8yXHVjNmQ0XzNcdWM2ZDRf'@; put 'NFx1YzZkNF81XHVjNmQ0XzZcdWM2ZDRfN1x1YzZkNF84XHVjNmQ0XzlcdWM2ZDRfMTBcdWM2ZDRfMTFcdWM2ZDRfMTJcdWM2ZDQiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdWM2ZDRfMlx1YzZkNF8zXHVjNmQ0XzRcdWM2ZDRfNVx1YzZkNF82XHVjNmQ0XzdcdWM2ZDRfOFx1YzZkNF85'@; put 'XHVjNmQ0XzEwXHVjNmQ0XzExXHVjNmQ0XzEyXHVjNmQ0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdWM3N2NcdWM2OTRcdWM3N2NfXHVjNmQ0XHVjNjk0XHVjNzdjX1x1ZDY1NFx1YzY5NFx1Yzc3Y19cdWMyMThcdWM2OTRcdWM3N2NfXHViYWE5XHVjNjk0XHVjNzdjX1x1YWUwOFx1YzY5NFx1'@; put 'Yzc3Y19cdWQxYTBcdWM2OTRcdWM3N2MiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHVjNzdjX1x1YzZkNF9cdWQ2NTRfXHVjMjE4X1x1YmFhOV9cdWFlMDhfXHVkMWEwIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdWM3N2NfXHVjNmQ0X1x1ZDY1NF9cdWMyMThfXHViYWE5X1x1YWUw'@; put 'OF9cdWQxYTAiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJZWVlZLk1NLkRELiIsTEw6IllZWVlcdWIxNDQgTU1NTSBEXHVjNzdjIixMTEw6IllZWVlcdWIxNDQgTU1NTSBEXHVjNzdjIEEgaDptbSIsTExMTDoiWVlZWVx1YjE0NCBN'@; put 'TU1NIERcdWM3N2MgZGRkZCBBIGg6bW0iLGw6IllZWVkuTU0uREQuIixsbDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MiLGxsbDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MgQSBoOm1tIixsbGxsOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyBkZGRkIEEgaDptbSJ9LGNhbGVuZGFyOntzYW1l'@; put 'RGF5OiJcdWM2MjRcdWIyOTggTFQiLG5leHREYXk6Ilx1YjBiNFx1Yzc3YyBMVCIsbmV4dFdlZWs6ImRkZGQgTFQiLGxhc3REYXk6Ilx1YzViNFx1YzgxYyBMVCIsbGFzdFdlZWs6Ilx1YzljMFx1YjA5Y1x1YzhmYyBkZGRkIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJl'@; put 'OiIlcyBcdWQ2YzQiLHBhc3Q6IiVzIFx1YzgwNCIsczoiXHViYTg3IFx1Y2QwOCIsc3M6IiVkXHVjZDA4IixtOiIxXHViZDg0IixtbToiJWRcdWJkODQiLGg6Ilx1ZDU1YyBcdWMyZGNcdWFjMDQiLGhoOiIlZFx1YzJkY1x1YWMwNCIsZDoiXHVkNTU4XHViOGU4IixkZDoiJWRcdWM3N2MiLE06'@; put 'Ilx1ZDU1YyBcdWIyZWMiLE1NOiIlZFx1YjJlYyIseToiXHVjNzdjIFx1YjE0NCIseXk6IiVkXHViMTQ0In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdWM3N2N8XHVjNmQ0fFx1YzhmYykvLG9yZGluYWw6ZnVuY3Rpb24obSxsZSl7c3dpdGNoKGxlKXtjYXNlImQiOmNhc2Ui'@; put 'RCI6Y2FzZSJEREQiOnJldHVybiBtKyJcdWM3N2MiO2Nhc2UiTSI6cmV0dXJuIG0rIlx1YzZkNCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBtKyJcdWM4ZmMiO2RlZmF1bHQ6cmV0dXJuIG19fSxtZXJpZGllbVBhcnNlOi9cdWM2MjRcdWM4MDR8XHVjNjI0XHVkNmM0Lyxpc1BNOmZ1bmN0aW9u'@; put 'KG0pe3JldHVybiJcdWM2MjRcdWQ2YzQiPT09bX0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXtyZXR1cm4gbTwxMj8iXHVjNjI0XHVjODA0IjoiXHVjNjI0XHVkNmM0In19KX0oRigxNjY3NikpfSw4Mjk5NTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2'@; put 'YXIgeD17MToiXHUwNjYxIiwyOiJcdTA2NjIiLDM6Ilx1MDY2MyIsNDoiXHUwNjY0Iiw1OiJcdTA2NjUiLDY6Ilx1MDY2NiIsNzoiXHUwNjY3Iiw4OiJcdTA2NjgiLDk6Ilx1MDY2OSIsMDoiXHUwNjYwIn0sbT17Ilx1MDY2MSI6IjEiLCJcdTA2NjIiOiIyIiwiXHUwNjYzIjoiMyIsIlx1MDY2'@; put 'NCI6IjQiLCJcdTA2NjUiOiI1IiwiXHUwNjY2IjoiNiIsIlx1MDY2NyI6IjciLCJcdTA2NjgiOiI4IiwiXHUwNjY5IjoiOSIsIlx1MDY2MCI6IjAifSxsZT1bIlx1MDZhOVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDY0Nlx1MDZjYyBcdTA2MmZcdTA2NDhcdTA2NDhcdTA2ZDVcdTA2NDUiLCJcdTA2'@; put 'MzRcdTA2NDhcdTA2MjhcdTA2MjdcdTA2MmEiLCJcdTA2MjZcdTA2MjdcdTA2MzJcdTA2MjdcdTA2MzEiLCJcdTA2NDZcdTA2Y2NcdTA2MzNcdTA2MjdcdTA2NDYiLCJcdTA2MjZcdTA2MjdcdTA2Y2NcdTA2MjdcdTA2MzEiLCJcdTA2MmRcdTA2NDhcdTA2MzJcdTA2ZDVcdTA2Y2NcdTA2MzFc'@; put 'dTA2MjdcdTA2NDYiLCJcdTA2MmFcdTA2ZDVcdTA2NDVcdTA2NDVcdTA2NDhcdTA2MzIiLCJcdTA2MjZcdTA2MjdcdTA2MjgiLCJcdTA2MjZcdTA2ZDVcdTA2Y2NcdTA2NDRcdTA2NDhcdTA2NDhcdTA2NDQiLCJcdTA2MmFcdTA2MzRcdTA2MzFcdTA2Y2NcdTA2NDZcdTA2Y2MgXHUwNmNjXHUw'@; put 'NmQ1XHUwNjQzXHUwNmQ1XHUwNjQ1IiwiXHUwNjJhXHUwNjM0XHUwNjMxXHUwNmNjXHUwNjQ2XHUwNmNjIFx1MDYyZlx1MDY0OFx1MDY0OFx1MDZkNVx1MDY0NSIsIlx1MDY0M1x1MDYyN1x1MDY0Nlx1MDY0OFx1MDY0Nlx1MDZjYyBcdTA2Y2NcdTA2ZDVcdTA2YTlcdTA2ZDVcdTA2NDUiXTth'@; put 'ZS5kZWZpbmVMb2NhbGUoImt1Iix7bW9udGhzOmxlLG1vbnRoc1Nob3J0OmxlLHdlZWtkYXlzOiJcdTA2Y2NcdTA2NDdcdTIwMGNcdTA2NDNcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjJmXHUwNjQ4XHUwNjQ4XHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1'@; put 'XHUwNjQ1XHUwNjQ3XHUyMDBjX1x1MDYzM1x1MDZjZVx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwY19cdTA2ODZcdTA2NDhcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjdlXHUwNmNlXHUwNjQ2XHUwNjJj'@; put 'XHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjX1x1MDY0N1x1MDY0N1x1MjAwY1x1MDZjY1x1MDY0Nlx1MDZjY19cdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGMiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNmNjXHUwNjQ3XHUy'@; put 'MDBjXHUwNjQzXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1MDYyZlx1MDY0OFx1MDY0OFx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2MzNcdTA2Y2VcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVfXHUwNjg2XHUwNjQ4XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1'@; put 'MDY3ZVx1MDZjZVx1MDY0Nlx1MDYyY1x1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2NDdcdTA2NDdcdTIwMGNcdTA2Y2NcdTA2NDZcdTA2Y2NfXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2Y2NfXHUwNjJm'@; put 'X1x1MDYzM19cdTA2ODZfXHUwNjdlX1x1MDY0N19cdTA2MzQiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDpt'@; put 'bSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MjZcdTA2Y2VcdTA2NDhcdTA2MjdcdTA2MzFcdTA2NDdcdTIwMGN8XHUwNjI4XHUwNjQ3XHUyMDBjXHUwNmNjXHUwNjI3XHUwNjQ2XHUwNmNjLyxpc1BNOmZ1bmN0aW9uKE8pe3JldHVybi9cdTA2'@; put 'MjZcdTA2Y2VcdTA2NDhcdTA2MjdcdTA2MzFcdTA2NDdcdTIwMGMvLnRlc3QoTyl9LG1lcmlkaWVtOmZ1bmN0aW9uKE8sUix6KXtyZXR1cm4gTzwxMj8iXHUwNjI4XHUwNjQ3XHUyMDBjXHUwNmNjXHUwNjI3XHUwNjQ2XHUwNmNjIjoiXHUwNjI2XHUwNmNlXHUwNjQ4XHUwNjI3XHUwNjMxXHUw'@; put 'NjQ3XHUyMDBjIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjZcdTA2NDdcdTIwMGNcdTA2NDVcdTA2MzFcdTA2YzYgXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbmV4dERheToiW1x1MDYyOFx1MDY0N1x1MjAwY1x1MDZjY1x1MDYyN1x1MDY0Nlx1'@; put 'MDZjYyBcdTA2NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbGFzdERheToiW1x1MDYyZlx1MDY0OFx1MDZjZVx1MDY0Nlx1MDZjZSBcdTA2NDNc'@; put 'dTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQ0XHUwNjQ3XHUyMDBjICVzIixw'@; put 'YXN0OiIlcyIsczoiXHUwNjg2XHUwNjQ3XHUyMDBjXHUwNjQ2XHUwNjJmIFx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1MjAwY1x1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyIsc3M6Ilx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1MjAwYyAlZCIsbToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQz'@; put 'IFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0N1x1MjAwY1x1MDY0MyIsbW06IiVkIFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0N1x1MjAwY1x1MDY0MyIsaDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsaGg6IiVkIFx1'@; put 'MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsZDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY5NVx1MDZjNlx1MDY5OCIsZGQ6IiVkIFx1MDY5NVx1MDZjNlx1MDY5OCIsTToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0NVx1MDYyN1x1MDY0Nlx1'@; put 'MDZhZiIsTU06IiVkIFx1MDY0NVx1MDYyN1x1MDY0Nlx1MDZhZiIseToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDYzM1x1MDYyN1x1MDZiNSIseXk6IiVkIFx1MDYzM1x1MDYyN1x1MDZiNSJ9LHByZXBhcnNlOmZ1bmN0aW9uKE8pe3JldHVybiBPLnJlcGxhY2UoL1tcdTA2NjFcdTA2'@; put 'NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdTA2NjBdL2csZnVuY3Rpb24oUil7cmV0dXJuIG1bUl19KS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKE8pe3JldHVybiBPLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUil7cmV0'@; put 'dXJuIHhbUl19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEYoMTY2NzYpKX0sODc3OTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD17MDoiLVx1MDQ0N1x1MDRhZiIsMToiLVx1MDQ0N1x1MDQzOCIsMjoi'@; put 'LVx1MDQ0N1x1MDQzOCIsMzoiLVx1MDQ0N1x1MDRhZiIsNDoiLVx1MDQ0N1x1MDRhZiIsNToiLVx1MDQ0N1x1MDQzOCIsNjoiLVx1MDQ0N1x1MDQ0YiIsNzoiLVx1MDQ0N1x1MDQzOCIsODoiLVx1MDQ0N1x1MDQzOCIsOToiLVx1MDQ0N1x1MDQ0MyIsMTA6Ii1cdTA0NDdcdTA0NDMiLDIwOiIt'@; put 'XHUwNDQ3XHUwNDRiIiwzMDoiLVx1MDQ0N1x1MDQ0MyIsNDA6Ii1cdTA0NDdcdTA0NGIiLDUwOiItXHUwNDQ3XHUwNGFmIiw2MDoiLVx1MDQ0N1x1MDQ0YiIsNzA6Ii1cdTA0NDdcdTA0MzgiLDgwOiItXHUwNDQ3XHUwNDM4Iiw5MDoiLVx1MDQ0N1x1MDQ0MyIsMTAwOiItXHUwNDQ3XHUwNGFm'@; put 'In07YWUuZGVmaW5lTG9jYWxlKCJreSIse21vbnRoczoiXHUwNDRmXHUwNDNkXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDRjX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYlx1MDQ0Y19cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUw'@; put 'NDNiXHUwNDRjX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RcdTA0NGNfXHUwNDM4XHUwNDRlXHUwNDNiXHUwNDRjX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNf'@; put 'XHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBcdTA0NGMiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ0Zlx1MDQzZFx1MDQz'@; put 'Ml9cdTA0NDRcdTA0MzVcdTA0MzJfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRjX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Y19cdTA0MzBcdTA0MzJcdTA0MzNfXHUwNDQxXHUwNDM1'@; put 'XHUwNDNkX1x1MDQzZVx1MDQzYVx1MDQ0Ml9cdTA0M2RcdTA0M2VcdTA0NGZfXHUwNDM0XHUwNDM1XHUwNDNhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0MTZcdTA0MzVcdTA0M2FcdTA0NDhcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzhfXHUwNDE0XHUwNGFmXHUwNDM5XHUwNDQ4XHUwNGU5'@; put 'XHUwNDNjXHUwNDMxXHUwNGFmX1x1MDQyOFx1MDQzNVx1MDQzOVx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzOF9cdTA0MjhcdTA0MzBcdTA0NDBcdTA0NDhcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzhfXHUwNDExXHUwNDM1XHUwNDM5XHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4'@; put 'X1x1MDQxNlx1MDQ0M1x1MDQzY1x1MDQzMF9cdTA0MThcdTA0NDhcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzgiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDE2XHUwNDM1XHUwNDNhX1x1MDQxNFx1MDRhZlx1MDQzOV9cdTA0MjhcdTA0MzVcdTA0MzlfXHUwNDI4XHUwNDMwXHUwNDQw'@; put 'X1x1MDQxMVx1MDQzNVx1MDQzOV9cdTA0MTZcdTA0NDNcdTA0M2NfXHUwNDE4XHUwNDQ4XHUwNDM1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MTZcdTA0M2FfXHUwNDE0XHUwNDM5X1x1MDQyOFx1MDQzOV9cdTA0MjhcdTA0NDBfXHUwNDExXHUwNDM5X1x1MDQxNlx1MDQzY19cdTA0'@; put 'MThcdTA0NDgiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1l'@; put 'RGF5OiJbXHUwNDExXHUwNGFmXHUwNDMzXHUwNGFmXHUwNDNkIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLG5leHREYXk6IltcdTA0MmRcdTA0NDBcdTA0NDJcdTA0MzVcdTA0YTMgXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQyXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDQ0MVx1MDQz'@; put 'MFx1MDQzMFx1MDQ0Ml0gTFQiLGxhc3REYXk6IltcdTA0MWFcdTA0MzVcdTA0NDdcdTA0NGRcdTA0NGQgXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQyXSBMVCIsbGFzdFdlZWs6IltcdTA0ZThcdTA0NDJcdTA0M2FcdTA0ZTlcdTA0M2QgXHUwNDMwXHUwNDNmXHUwNDQyXHUwNDMwXHUwNDNkXHUw'@; put 'NDRiXHUwNDNkXSBkZGRkIFtcdTA0M2FcdTA0YWZcdTA0M2RcdTA0YWZdIFtcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDJdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA0MzhcdTA0NDdcdTA0MzhcdTA0M2RcdTA0MzRcdTA0MzUiLHBhc3Q6IiVzIFx1MDQz'@; put 'Y1x1MDQ0M1x1MDQ0MFx1MDQ0M1x1MDQzZCIsczoiXHUwNDMxXHUwNDM4XHUwNDQwXHUwNDNkXHUwNDM1XHUwNDQ3XHUwNDM1IFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsc3M6IiVkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbToiXHUwNDMx'@; put 'XHUwNDM4XHUwNDQwIFx1MDQzY1x1MDRhZlx1MDQzZFx1MDRlOVx1MDQ0MiIsbW06IiVkIFx1MDQzY1x1MDRhZlx1MDQzZFx1MDRlOVx1MDQ0MiIsaDoiXHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0MiIsaGg6IiVkIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0MiIs'@; put 'ZDoiXHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQzYVx1MDRhZlx1MDQzZCIsZGQ6IiVkIFx1MDQzYVx1MDRhZlx1MDQzZCIsTToiXHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQzMFx1MDQzOSIsTU06IiVkIFx1MDQzMFx1MDQzOSIseToiXHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQzNlx1MDQ0Ylx1MDQz'@; put 'YiIseXk6IiVkIFx1MDQzNlx1MDQ0Ylx1MDQzYiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ0N1x1MDQzOHxcdTA0NDdcdTA0NGJ8XHUwNDQ3XHUwNGFmfFx1MDQ0N1x1MDQ0MykvLG9yZGluYWw6ZnVuY3Rpb24obGUpe3JldHVybiBsZSsoeFtsZV18fHhbbGUlMTBd'@; put 'fHx4W2xlPj0xMDA/MTAwOm51bGxdKX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sNjIwNTc6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geChSLHosSyxJKXt2YXIgaz17bTpbImVuZyBNaW51dHQiLCJlbmdlciBNaW51dHQi'@; put 'XSxoOlsiZW5nIFN0b25uIiwiZW5nZXIgU3Rvbm4iXSxkOlsiZWVuIERhZyIsImVuZ2VtIERhZyJdLE06WyJlZSBNb3VudCIsImVuZ2VtIE1vdW50Il0seTpbImVlIEpvZXIiLCJlbmdlbSBKb2VyIl19O3JldHVybiB6P2tbS11bMF06a1tLXVsxXX1mdW5jdGlvbiBNKFIpe2lmKFI9cGFyc2VJ'@; put 'bnQoUiwxMCksaXNOYU4oUikpcmV0dXJuITE7aWYoUjwwKXJldHVybiEwO2lmKFI8MTApcmV0dXJuIDQ8PVImJlI8PTc7aWYoUjwxMDApe3ZhciB6PVIlMTA7cmV0dXJuIE0oMD09PXo/Ui8xMDp6KX1pZihSPDFlNCl7Zm9yKDtSPj0xMDspUi89MTA7cmV0dXJuIE0oUil9cmV0dXJuIE0oUi89'@; put 'MWUzKX1hZS5kZWZpbmVMb2NhbGUoImxiIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNGVyel9BYnJceGVibGxfTWVlX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbi5fRmVici5fTXJ6'@; put 'Ll9BYnIuX01lZV9KdW4uX0p1bC5fQXVnLl9TZXB0Ll9Pa3QuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25uZGVnX01ceGU5aW5kZWdfRFx4ZWJuc2NoZGVnX01ceGVidHR3b2NoX0Rvbm5lc2NoZGVnX0ZyZWlkZWdfU2Ftc2NoZGVnIi5z'@; put 'cGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvLl9NXHhlOS5fRFx4ZWIuX01ceGViLl9Eby5fRnIuX1NhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTVx4ZTlfRFx4ZWJfTVx4ZWJfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0'@; put 'OntMVDoiSDptbSBbQXVlcl0iLExUUzoiSDptbTpzcyBbQXVlcl0iLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0gW0F1ZXJdIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSBbQXVlcl0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hh'@; put 'dXQgdW1dIExUIixzYW1lRWxzZToiTCIsbmV4dERheToiW011ZXIgdW1dIExUIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIixsYXN0RGF5OiJbR1x4ZWJzY2h0ZXIgdW1dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDI6Y2FzZSA0OnJldHVybiJbTGVz'@; put 'Y2h0ZW5dIGRkZGQgW3VtXSBMVCI7ZGVmYXVsdDpyZXR1cm4iW0xlc2NodGVdIGRkZGQgW3VtXSBMVCJ9fX0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24gbShSKXtyZXR1cm4gTShSLnN1YnN0cigwLFIuaW5kZXhPZigiICIpKSk/ImEgIitSOiJhbiAiK1J9LHBhc3Q6ZnVuY3Rpb24g'@; put 'bGUoUil7cmV0dXJuIE0oUi5zdWJzdHIoMCxSLmluZGV4T2YoIiAiKSkpPyJ2aXJ1ICIrUjoidmlydW4gIitSfSxzOiJlIHB1ZXIgU2Vrb25uZW4iLHNzOiIlZCBTZWtvbm5lbiIsbTp4LG1tOiIlZCBNaW51dHRlbiIsaDp4LGhoOiIlZCBTdG9ubmVuIixkOngsZGQ6IiVkIERlZWciLE06eCxN'@; put 'TToiJWQgTVx4ZTlpbnQiLHk6eCx5eToiJWQgSm9lciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSwxNzE5MjpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0'@; put 'IjthZS5kZWZpbmVMb2NhbGUoImxvIix7bW9udGhzOiJcdTBlYTFcdTBlYjFcdTBlODdcdTBlODFcdTBlYWRcdTBlOTlfXHUwZTgxXHUwZWI4XHUwZWExXHUwZTllXHUwZWIyX1x1MGVhMVx1MGViNVx1MGU5OVx1MGViMl9cdTBlYzBcdTBlYTFcdTBlYWFcdTBlYjJfXHUwZTllXHUwZWI2XHUw'@; put 'ZTk0XHUwZWFhXHUwZWIwXHUwZTllXHUwZWIyX1x1MGVhMVx1MGViNFx1MGU5Nlx1MGViOFx1MGU5OVx1MGViMl9cdTBlODFcdTBlY2RcdTBlYTVcdTBlYjBcdTBlODFcdTBlYmJcdTBlOTRfXHUwZWFhXHUwZWI0XHUwZTg3XHUwZWFiXHUwZWIyX1x1MGU4MVx1MGViMVx1MGU5OVx1MGU4ZFx1'@; put 'MGViMl9cdTBlOTVcdTBlYjhcdTBlYTVcdTBlYjJfXHUwZTllXHUwZWIwXHUwZTg4XHUwZWI0XHUwZTgxX1x1MGU5N1x1MGViMVx1MGU5OVx1MGVhN1x1MGViMiIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwZWExXHUwZWIxXHUwZTg3XHUwZTgxXHUwZWFkXHUwZTk5X1x1MGU4MVx1MGVi'@; put 'OFx1MGVhMVx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjVcdTBlOTlcdTBlYjJfXHUwZWMwXHUwZWExXHUwZWFhXHUwZWIyX1x1MGU5ZVx1MGViNlx1MGU5NFx1MGVhYVx1MGViMFx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjRcdTBlOTZcdTBlYjhcdTBlOTlcdTBlYjJfXHUwZTgxXHUwZWNkXHUw'@; put 'ZWE1XHUwZWIwXHUwZTgxXHUwZWJiXHUwZTk0X1x1MGVhYVx1MGViNFx1MGU4N1x1MGVhYlx1MGViMl9cdTBlODFcdTBlYjFcdTBlOTlcdTBlOGRcdTBlYjJfXHUwZTk1XHUwZWI4XHUwZWE1XHUwZWIyX1x1MGU5ZVx1MGViMFx1MGU4OFx1MGViNFx1MGU4MV9cdTBlOTdcdTBlYjFcdTBlOTlc'@; put 'dTBlYTdcdTBlYjIiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MGVhZFx1MGViMlx1MGU5N1x1MGViNFx1MGU5NF9cdTBlODhcdTBlYjFcdTBlOTlfXHUwZWFkXHUwZWIxXHUwZTg3XHUwZTg0XHUwZWIyXHUwZTk5X1x1MGU5ZVx1MGViOFx1MGU5NF9cdTBlOWVcdTBlYjBcdTBlYWJcdTBlYjFc'@; put 'dTBlOTRfXHUwZWFhXHUwZWI4XHUwZTgxX1x1MGVjMFx1MGVhYVx1MGViYlx1MGViMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBlOTdcdTBlYjRcdTBlOTRfXHUwZTg4XHUwZWIxXHUwZTk5X1x1MGVhZFx1MGViMVx1MGU4N1x1MGU4NFx1MGViMlx1MGU5OV9cdTBlOWVcdTBlYjhc'@; put 'dTBlOTRfXHUwZTllXHUwZWIwXHUwZWFiXHUwZWIxXHUwZTk0X1x1MGVhYVx1MGViOFx1MGU4MV9cdTBlYzBcdTBlYWFcdTBlYmJcdTBlYjIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGU5N19cdTBlODhfXHUwZWFkXHUwZTg0X1x1MGU5ZV9cdTBlOWVcdTBlYWJfXHUwZWFhXHUwZTgx'@; put 'X1x1MGVhYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJcdTBlYTdcdTBlYjFcdTBlOTlk'@; put 'ZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwZTk1XHUwZWFkXHUwZTk5XHUwZWMwXHUwZThhXHUwZWJiXHUwZWM5XHUwZWIyfFx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4Ny8saXNQTTpmdW5jdGlvbihtKXtyZXR1cm4iXHUwZTk1XHUwZWFkXHUw'@; put 'ZTk5XHUwZWMxXHUwZWE1XHUwZTg3Ij09PW19LG1lcmlkaWVtOmZ1bmN0aW9uKG0sbGUsTSl7cmV0dXJuIG08MTI/Ilx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMFx1MGU4YVx1MGViYlx1MGVjOVx1MGViMiI6Ilx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4NyJ9LGNhbGVuZGFy'@; put 'OntzYW1lRGF5OiJbXHUwZWExXHUwZWI3XHUwZWM5XHUwZTk5XHUwZWI1XHUwZWM5XHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsbmV4dERheToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhZFx1MGViN1x1MGVjOFx1MGU5OVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLG5leHRX'@; put 'ZWVrOiJbXHUwZWE3XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWRjXHUwZWM5XHUwZWIyXHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsbGFzdERheToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhN1x1MGViMlx1MGU5OVx1MGU5OVx1MGViNVx1MGVjOVx1MGVjMFx1MGVhN1x1MGVhNVx1MGVi'@; put 'Ml0gTFQiLGxhc3RXZWVrOiJbXHUwZWE3XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWMxXHUwZWE1XHUwZWM5XHUwZWE3XHUwZTk5XHUwZWI1XHUwZWM5XHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwZWFkXHUwZWI1XHUw'@; put 'ZTgxICVzIixwYXN0OiIlc1x1MGU5Y1x1MGVjOFx1MGViMlx1MGU5OVx1MGVhMVx1MGViMiIsczoiXHUwZTlhXHUwZWNkXHUwZWM4XHUwZWMwXHUwZTk3XHUwZWJiXHUwZWM4XHUwZWIyXHUwZWMzXHUwZTk0XHUwZWE3XHUwZWI0XHUwZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixzczoiJWQgXHUw'@; put 'ZWE3XHUwZWI0XHUwZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixtOiIxIFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsbW06IiVkIFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsaDoiMSBcdTBlOGFcdTBlYmJcdTBlYzhcdTBlYTdcdTBlYzJcdTBlYTFcdTBlODciLGhoOiIlZCBcdTBlOGFcdTBl'@; put 'YmJcdTBlYzhcdTBlYTdcdTBlYzJcdTBlYTFcdTBlODciLGQ6IjEgXHUwZWExXHUwZWI3XHUwZWM5IixkZDoiJWQgXHUwZWExXHUwZWI3XHUwZWM5IixNOiIxIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIsTU06IiVkIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIseToi'@; put 'MSBcdTBlOWJcdTBlYjUiLHl5OiIlZCBcdTBlOWJcdTBlYjUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi8oXHUwZTk3XHUwZWI1XHUwZWM4KVxkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24obSl7cmV0dXJuIlx1MGU5N1x1MGViNVx1MGVjOCIrbX19KX0oRigxNjY3NikpfSwxNTQzMDpmdW5j'@; put 'dGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD17c3M6InNla3VuZFx1MDExN19zZWt1bmRcdTAxN2VpXHUwMTczX3Nla3VuZGVzIixtOiJtaW51dFx1MDExN19taW51dFx1MDExN3NfbWludXRcdTAxMTkiLG1tOiJtaW51dFx1MDExN3NfbWludVx1MDEwZGlc'@; put 'dTAxNzNfbWludXRlcyIsaDoidmFsYW5kYV92YWxhbmRvc192YWxhbmRcdTAxMDUiLGhoOiJ2YWxhbmRvc192YWxhbmRcdTAxNzNfdmFsYW5kYXMiLGQ6ImRpZW5hX2RpZW5vc19kaWVuXHUwMTA1IixkZDoiZGllbm9zX2RpZW5cdTAxNzNfZGllbmFzIixNOiJtXHUwMTE3bnVvX21cdTAxMTdu'@; put 'ZXNpb19tXHUwMTE3bmVzXHUwMTJmIixNTToibVx1MDExN25lc2lhaV9tXHUwMTE3bmVzaVx1MDE3M19tXHUwMTE3bmVzaXVzIix5OiJtZXRhaV9tZXRcdTAxNzNfbWV0dXMiLHl5OiJtZXRhaV9tZXRcdTAxNzNfbWV0dXMifTtmdW5jdGlvbiBsZShLLEksayxFKXtyZXR1cm4gST9PKGspWzBd'@; put 'OkU/TyhrKVsxXTpPKGspWzJdfWZ1bmN0aW9uIE0oSyl7cmV0dXJuIEslMTA9PTB8fEs+MTAmJks8MjB9ZnVuY3Rpb24gTyhLKXtyZXR1cm4geFtLXS5zcGxpdCgiXyIpfWZ1bmN0aW9uIFIoSyxJLGssRSl7dmFyIGo9SysiICI7cmV0dXJuIDE9PT1LP2orbGUoMCxJLGtbMF0sRSk6ST9qKyhN'@; put 'KEspP08oaylbMV06TyhrKVswXSk6RT9qK08oaylbMV06aisoTShLKT9PKGspWzFdOk8oaylbMl0pfWFlLmRlZmluZUxvY2FsZSgibHQiLHttb250aHM6e2Zvcm1hdDoic2F1c2lvX3Zhc2FyaW9fa292b19iYWxhbmRcdTAxN2Vpb19nZWd1XHUwMTdlXHUwMTE3c19iaXJcdTAxN2VlbGlvX2xp'@; put 'ZXBvc19ydWdwalx1MDE2Ylx1MDEwZGlvX3J1Z3NcdTAxMTdqb19zcGFsaW9fbGFwa3JpXHUwMTBkaW9fZ3J1b2RcdTAxN2VpbyIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJzYXVzaXNfdmFzYXJpc19rb3Zhc19iYWxhbmRpc19nZWd1XHUwMTdlXHUwMTE3X2Jpclx1MDE3ZWVsaXNfbGllcGFf'@; put 'cnVncGpcdTAxNmJ0aXNfcnVnc1x1MDExN2ppc19zcGFsaXNfbGFwa3JpdGlzX2dydW9kaXMiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L0Rbb0RdPyhcW1teXFtcXV0qXF18XHMpK01NTU0/fE1NTU0/KFxbW15cW1xdXSpcXXxccykrRFtvRF0/L30sbW9udGhzU2hvcnQ6InNhdV92YXNfa292X2Jh'@; put 'bF9nZWdfYmlyX2xpZV9yZ3BfcmdzX3NwYV9sYXBfZ3JkIi5zcGxpdCgiXyIpLHdlZWtkYXlzOntmb3JtYXQ6InNla21hZGllblx1MDEyZl9waXJtYWRpZW5cdTAxMmZfYW50cmFkaWVuXHUwMTJmX3RyZVx1MDEwZGlhZGllblx1MDEyZl9rZXR2aXJ0YWRpZW5cdTAxMmZfcGVua3RhZGllblx1'@; put 'MDEyZl9cdTAxNjFlXHUwMTYxdGFkaWVuXHUwMTJmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6InNla21hZGllbmlzX3Bpcm1hZGllbmlzX2FudHJhZGllbmlzX3RyZVx1MDEwZGlhZGllbmlzX2tldHZpcnRhZGllbmlzX3Blbmt0YWRpZW5pc19cdTAxNjFlXHUwMTYxdGFkaWVuaXMiLnNwbGl0'@; put 'KCJfIiksaXNGb3JtYXQ6L2RkZGQgSEg6bW0vfSx3ZWVrZGF5c1Nob3J0OiJTZWtfUGlyX0FudF9UcmVfS2V0X1Blbl9cdTAxNjBlXHUwMTYxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTX1BfQV9UX0tfUG5fXHUwMTYwIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25n'@; put 'RGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dIixMTEw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSwgSEg6bW0gW3ZhbC5dIixMTExMOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZGQsIEhIOm1tIFt2'@; put 'YWwuXSIsbDoiWVlZWS1NTS1ERCIsbGw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSIsbGxsOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0sIEhIOm1tIFt2YWwuXSIsbGxsbDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBkZGQsIEhIOm1tIFt2YWwuXSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwMTYw'@; put 'aWFuZGllbl0gTFQiLG5leHREYXk6IltSeXRval0gTFQiLG5leHRXZWVrOiJkZGRkIExUIixsYXN0RGF5OiJbVmFrYXJdIExUIixsYXN0V2VlazoiW1ByYVx1MDExN2p1c1x1MDEyZl0gZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToicG8gJXMiLHBhc3Q6InBy'@; put 'aWVcdTAxNjEgJXMiLHM6ZnVuY3Rpb24gbShLLEksayxFKXtyZXR1cm4gST8ia2VsaW9zIHNla3VuZFx1MDExN3MiOkU/ImtlbGlcdTAxNzMgc2VrdW5kXHUwMTdlaVx1MDE3MyI6ImtlbGlhcyBzZWt1bmRlcyJ9LHNzOlIsbTpsZSxtbTpSLGg6bGUsaGg6UixkOmxlLGRkOlIsTTpsZSxNTTpS'@; put 'LHk6bGUseXk6Un0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS1vamkvLG9yZGluYWw6ZnVuY3Rpb24oSyl7cmV0dXJuIEsrIi1vamkifSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSw1MzM2MzpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3Ry'@; put 'aWN0Ijt2YXIgeD17c3M6InNla3VuZGVzX3Nla3VuZFx1MDExM21fc2VrdW5kZV9zZWt1bmRlcyIuc3BsaXQoIl8iKSxtOiJtaW5cdTAxNmJ0ZXNfbWluXHUwMTZidFx1MDExM21fbWluXHUwMTZidGVfbWluXHUwMTZidGVzIi5zcGxpdCgiXyIpLG1tOiJtaW5cdTAxNmJ0ZXNfbWluXHUwMTZi'@; put 'dFx1MDExM21fbWluXHUwMTZidGVfbWluXHUwMTZidGVzIi5zcGxpdCgiXyIpLGg6InN0dW5kYXNfc3R1bmRcdTAxMDFtX3N0dW5kYV9zdHVuZGFzIi5zcGxpdCgiXyIpLGhoOiJzdHVuZGFzX3N0dW5kXHUwMTAxbV9zdHVuZGFfc3R1bmRhcyIuc3BsaXQoIl8iKSxkOiJkaWVuYXNfZGllblx1'@; put 'MDEwMW1fZGllbmFfZGllbmFzIi5zcGxpdCgiXyIpLGRkOiJkaWVuYXNfZGllblx1MDEwMW1fZGllbmFfZGllbmFzIi5zcGxpdCgiXyIpLE06Im1cdTAxMTNuZVx1MDE2MWFfbVx1MDExM25lXHUwMTYxaWVtX21cdTAxMTNuZXNpc19tXHUwMTEzbmVcdTAxNjFpIi5zcGxpdCgiXyIpLE1NOiJt'@; put 'XHUwMTEzbmVcdTAxNjFhX21cdTAxMTNuZVx1MDE2MWllbV9tXHUwMTEzbmVzaXNfbVx1MDExM25lXHUwMTYxaSIuc3BsaXQoIl8iKSx5OiJnYWRhX2dhZGllbV9nYWRzX2dhZGkiLnNwbGl0KCJfIikseXk6ImdhZGFfZ2FkaWVtX2dhZHNfZ2FkaSIuc3BsaXQoIl8iKX07ZnVuY3Rpb24gbSh6'@; put 'LEssSSl7cmV0dXJuIEk/SyUxMD09MSYmSyUxMDAhPTExP3pbMl06elszXTpLJTEwPT0xJiZLJTEwMCE9MTE/elswXTp6WzFdfWZ1bmN0aW9uIGxlKHosSyxJKXtyZXR1cm4geisiICIrbSh4W0ldLHosSyl9ZnVuY3Rpb24gTSh6LEssSSl7cmV0dXJuIG0oeFtJXSx6LEspfWFlLmRlZmluZUxv'@; put 'Y2FsZSgibHYiLHttb250aHM6ImphbnZcdTAxMDFyaXNfZmVicnVcdTAxMDFyaXNfbWFydHNfYXByXHUwMTJibGlzX21haWpzX2pcdTAxNmJuaWpzX2pcdTAxNmJsaWpzX2F1Z3VzdHNfc2VwdGVtYnJpc19va3RvYnJpc19ub3ZlbWJyaXNfZGVjZW1icmlzIi5zcGxpdCgiXyIpLG1vbnRoc1No'@; put 'b3J0OiJqYW5fZmViX21hcl9hcHJfbWFpX2pcdTAxNmJuX2pcdTAxNmJsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6InN2XHUwMTEzdGRpZW5hX3Bpcm1kaWVuYV9vdHJkaWVuYV90cmVcdTAxNjFkaWVuYV9jZXR1cnRkaWVuYV9waWVrdGRpZW5hX3Nlc3RkaWVu'@; put 'YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdl9QX09fVF9DX1BrX1MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN2X1BfT19UX0NfUGtfUyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoi'@; put 'REQuTU0uWVlZWS4iLExMOiJZWVlZLiBbZ2FkYV0gRC4gTU1NTSIsTExMOiJZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgSEg6bW0iLExMTEw6IllZWVkuIFtnYWRhXSBELiBNTU1NLCBkZGRkLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwMTYwb2RpZW4gcHVsa3N0ZW5dIExUIixuZXh0'@; put 'RGF5OiJbUlx1MDEyYnQgcHVsa3N0ZW5dIExUIixuZXh0V2VlazoiZGRkZCBbcHVsa3N0ZW5dIExUIixsYXN0RGF5OiJbVmFrYXIgcHVsa3N0ZW5dIExUIixsYXN0V2VlazoiW1BhZ1x1MDEwMWp1XHUwMTYxXHUwMTAxXSBkZGRkIFtwdWxrc3Rlbl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRp'@; put 'dmVUaW1lOntmdXR1cmU6InBcdTAxMTNjICVzIixwYXN0OiJwaXJtcyAlcyIsczpmdW5jdGlvbiBPKHosSyl7cmV0dXJuIEs/ImRhXHUwMTdlYXMgc2VrdW5kZXMiOiJkYVx1MDE3ZVx1MDEwMW0gc2VrdW5kXHUwMTEzbSJ9LHNzOmxlLG06TSxtbTpsZSxoOk0saGg6bGUsZDpNLGRkOmxlLE0s'@; put 'TU06bGUseTpNLHl5OmxlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNzI5Mzk6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9e3dvcmRzOntz'@; put 'czpbInNla3VuZCIsInNla3VuZGEiLCJzZWt1bmRpIl0sbTpbImplZGFuIG1pbnV0IiwiamVkbm9nIG1pbnV0YSJdLG1tOlsibWludXQiLCJtaW51dGEiLCJtaW51dGEiXSxoOlsiamVkYW4gc2F0IiwiamVkbm9nIHNhdGEiXSxoaDpbInNhdCIsInNhdGEiLCJzYXRpIl0sZGQ6WyJkYW4iLCJk'@; put 'YW5hIiwiZGFuYSJdLE1NOlsibWplc2VjIiwibWplc2VjYSIsIm1qZXNlY2kiXSx5eTpbImdvZGluYSIsImdvZGluZSIsImdvZGluYSJdfSxjb3JyZWN0R3JhbW1hdGljYWxDYXNlOmZ1bmN0aW9uKGxlLE0pe3JldHVybiAxPT09bGU/TVswXTpsZT49MiYmbGU8PTQ/TVsxXTpNWzJdfSx0cmFu'@; put 'c2xhdGU6ZnVuY3Rpb24obGUsTSxPKXt2YXIgUj14LndvcmRzW09dO3JldHVybiAxPT09Ty5sZW5ndGg/TT9SWzBdOlJbMV06bGUrIiAiK3guY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShsZSxSKX19O2FlLmRlZmluZUxvY2FsZSgibWUiLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnRfYXBy'@; put 'aWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyLl9hcHIuX21hal9qdW5fanVsX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4'@; put 'YWN0OiEwLHdlZWtkYXlzOiJuZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV9cdTAxMGRldHZydGFrX3BldGFrX3N1Ym90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZWQuX3Bvbi5fdXRvLl9zcmkuX1x1MDEwZGV0Ll9wZXQuX3N1Yi4iLnNwbGl0KCJfIiksd2Vla2Rh'@; put 'eXNNaW46Im5lX3BvX3V0X3NyX1x1MDEwZGVfcGVfc3UiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBIOm1tIixM'@; put 'TExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuYXMgdV0gTFQiLG5leHREYXk6IltzanV0cmEgdV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3VdIFtuZWRqZWxqdV0gW3VdIExUIjtj'@; put 'YXNlIDM6cmV0dXJuIlt1XSBbc3JpamVkdV0gW3VdIExUIjtjYXNlIDY6cmV0dXJuIlt1XSBbc3Vib3R1XSBbdV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3VdIGRkZGQgW3VdIExUIn19LGxhc3REYXk6IltqdVx1MDEwZGUgdV0gTFQiLGxhc3RXZWVrOmZ1bmN0'@; put 'aW9uKCl7cmV0dXJuWyJbcHJvXHUwMTYxbGVdIFtuZWRqZWxqZV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BvbmVkamVsamthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbdXRvcmthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbGVdIFtzcmlqZWRlXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9n'@; put 'XSBbXHUwMTBkZXR2cnRrYV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BldGthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicHJpamUgJXMiLHM6'@; put 'Im5la29saWtvIHNla3VuZGkiLHNzOngudHJhbnNsYXRlLG06eC50cmFuc2xhdGUsbW06eC50cmFuc2xhdGUsaDp4LnRyYW5zbGF0ZSxoaDp4LnRyYW5zbGF0ZSxkOiJkYW4iLGRkOngudHJhbnNsYXRlLE06Im1qZXNlYyIsTU06eC50cmFuc2xhdGUseToiZ29kaW51Iix5eTp4LnRyYW5zbGF0'@; put 'ZX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDM4MjEyOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgibWkiLHttb250aHM6'@; put 'IktvaGktdFx1MDEwMXRlX0h1aS10YW5ndXJ1X1BvdXRcdTAxNmItdGUtcmFuZ2lfUGFlbmdhLXdoXHUwMTAxd2hcdTAxMDFfSGFyYXR1YV9QaXBpcmlfSFx1MDE0ZG5nb2luZ29pX0hlcmUtdHVyaS1rXHUwMTRka1x1MDEwMV9NYWh1cnVfV2hpcmluZ2EtXHUwMTAxLW51a3VfV2hpcmluZ2Et'@; put 'XHUwMTAxLXJhbmdpX0hha2loZWEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IktvaGlfSHVpX1BvdV9QYWVfSGFyYV9QaXBpX0hcdTAxNGRuZ29pX0hlcmVfTWFodV9XaGktbnVfV2hpLXJhX0hha2kiLnNwbGl0KCJfIiksbW9udGhzUmVnZXg6Lyg/OlsnYS16XHUwMTAxXHUwMTREXHUwMTZC'@; put 'XStcLT8pezEsM30vaSxtb250aHNTdHJpY3RSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wtPyl7MSwzfS9pLG1vbnRoc1Nob3J0UmVnZXg6Lyg/OlsnYS16XHUwMTAxXHUwMTREXHUwMTZCXStcLT8pezEsM30vaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi8oPzpbJ2Etelx1'@; put 'MDEwMVx1MDE0RFx1MDE2Ql0rXC0/KXsxLDJ9L2ksd2Vla2RheXM6IlJcdTAxMDF0YXB1X01hbmVfVFx1MDE2YnJlaV9XZW5lcmVpX1RcdTAxMDFpdGVfUGFyYWlyZV9IXHUwMTAxdGFyZWkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiVGFfTWFfVFx1MDE2Yl9XZV9UXHUwMTAxaV9QYV9I'@; put 'XHUwMTAxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJUYV9NYV9UXHUwMTZiX1dlX1RcdTAxMDFpX1BhX0hcdTAxMDEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1N'@; put 'TSBZWVlZIFtpXSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW2ldIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltpIHRlaWUgbWFoYW5hLCBpXSBMVCIsbmV4dERheToiW2Fwb3BvIGldIExUIixuZXh0V2VlazoiZGRkZCBbaV0gTFQiLGxhc3REYXk6IltpbmFuYWhpIGldIExU'@; put 'IixsYXN0V2VlazoiZGRkZCBbd2hha2FtdXR1bmdhIGldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpIHJvdG8gaSAlcyIscGFzdDoiJXMgaSBtdWEiLHM6InRlIGhcdTAxMTNrb25hIHJ1YXJ1YSIsc3M6IiVkIGhcdTAxMTNrb25hIixtOiJoZSBtZW5ldGkiLG1t'@; put 'OiIlZCBtZW5ldGkiLGg6InRlIGhhb3JhIixoaDoiJWQgaGFvcmEiLGQ6ImhlIHJhIixkZDoiJWQgcmEiLE06ImhlIG1hcmFtYSIsTU06IiVkIG1hcmFtYSIseToiaGUgdGF1Iix5eToiJWQgdGF1In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhi'@; put 'YSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNjk3MTg6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJtayIse21vbnRoczoiXHUwNDU4XHUwNDMwXHUwNDNkXHUwNDQzXHUwNDMwXHUwNDQwXHUwNDM4X1x1MDQ0'@; put 'NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQ0M1x1MDQzMFx1MDQ0MFx1MDQzOF9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RcdTA0MzhfXHUwNDU4XHUwNDQzXHUwNDNiXHUw'@; put 'NDM4X1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2ZcdTA0NDJcdTA0MzVcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzZFx1MDQzZVx1MDQzNVx1'@; put 'MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzVcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ1OFx1MDQzMFx1MDQzZF9cdTA0NDRcdTA0MzVcdTA0MzJfXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQz'@; put 'Zlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NThfXHUwNDU4XHUwNDQzXHUwNDNkX1x1MDQ1OFx1MDQ0M1x1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNfXHUwNDQxXHUwNDM1XHUwNDNmX1x1MDQzZVx1MDQzYVx1MDQ0Ml9cdTA0M2RcdTA0M2VcdTA0MzVfXHUwNDM0XHUwNDM1XHUwNDNhIi5zcGxp'@; put 'dCgiXyIpLHdlZWtkYXlzOiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBfXHUwNDNmXHUwNDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzZFx1MDQzOFx1MDQzYV9cdTA0NDFc'@; put 'dTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBfXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDQwXHUwNDQyXHUwNDNlXHUwNDNhX1x1MDQzZlx1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYV9cdTA0NDFcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9y'@; put 'dDoiXHUwNDNkXHUwNDM1XHUwNDM0X1x1MDQzZlx1MDQzZVx1MDQzZF9cdTA0MzJcdTA0NDJcdTA0M2VfXHUwNDQxXHUwNDQwXHUwNDM1X1x1MDQ0N1x1MDQzNVx1MDQ0Ml9cdTA0M2ZcdTA0MzVcdTA0NDJfXHUwNDQxXHUwNDMwXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0'@; put 'M2RlX1x1MDQzZm9fXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0MzVfXHUwNDNmXHUwNDM1X1x1MDQ0MWEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1N'@; put 'TSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQxNFx1MDQzNVx1MDQzZFx1MDQzNVx1MDQ0MSBcdTA0MzJcdTA0M2VdIExUIixuZXh0RGF5OiJbXHUwNDIzXHUwNDQyXHUwNDQwXHUwNDM1IFx1MDQzMlx1MDQzZV0gTFQi'@; put 'LG5leHRXZWVrOiJbXHUwNDEyXHUwNDNlXSBkZGRkIFtcdTA0MzJcdTA0M2VdIExUIixsYXN0RGF5OiJbXHUwNDEyXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwIFx1MDQzMlx1MDQzZV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpjYXNlIDM6Y2Fz'@; put 'ZSA2OnJldHVybiJbXHUwNDE4XHUwNDM3XHUwNDNjXHUwNDM4XHUwNDNkXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXSBkZGRkIFtcdTA0MzJcdTA0M2VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltcdTA0MThcdTA0MzdcdTA0M2NcdTA0MzhcdTA0M2Rc'@; put 'dTA0MzBcdTA0NDJcdTA0MzhcdTA0M2VcdTA0NDJdIGRkZGQgW1x1MDQzMlx1MDQzZV0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDM3XHUwNDMwICVzIixwYXN0OiJcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzQgJXMiLHM6Ilx1MDQzZFx1MDQzNVx1MDQz'@; put 'YVx1MDQzZVx1MDQzYlx1MDQzYVx1MDQ0MyBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzgiLHNzOiIlZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzgiLG06Ilx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzMCBcdTA0M2NcdTA0MzhcdTA0'@; put 'M2RcdTA0NDNcdTA0NDJcdTA0MzAiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzgiLGg6Ilx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzZCBcdTA0NDdcdTA0MzBcdTA0NDEiLGhoOiIlZCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzAiLGQ6Ilx1MDQzNVx1MDQzNFx1'@; put 'MDQzNVx1MDQzZCBcdTA0MzRcdTA0MzVcdTA0M2QiLGRkOiIlZCBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzAiLE06Ilx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzZCBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLE1NOiIlZCBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0'@; put 'MzgiLHk6Ilx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzMCBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiLHl5OiIlZCBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzgifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0MzVcdTA0MzJ8XHUw'@; put 'NDM1XHUwNDNkfFx1MDQ0Mlx1MDQzOHxcdTA0MzJcdTA0Mzh8XHUwNDQwXHUwNDM4fFx1MDQzY1x1MDQzOCkvLG9yZGluYWw6ZnVuY3Rpb24obSl7dmFyIGxlPW0lMTAsTT1tJTEwMDtyZXR1cm4gMD09PW0/bSsiLVx1MDQzNVx1MDQzMiI6MD09PU0/bSsiLVx1MDQzNVx1MDQzZCI6TT4xMCYm'@; put 'TTwyMD9tKyItXHUwNDQyXHUwNDM4IjoxPT09bGU/bSsiLVx1MDQzMlx1MDQzOCI6Mj09PWxlP20rIi1cdTA0NDBcdTA0MzgiOjc9PT1sZXx8OD09PWxlP20rIi1cdTA0M2NcdTA0MzgiOm0rIi1cdTA0NDJcdTA0MzgifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oRigxNjY3NikpfSw1MDU2MTpm'@; put 'dW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoIm1sIix7bW9udGhzOiJcdTBkMWNcdTBkMjhcdTBkNDFcdTBkMzVcdTBkMzBcdTBkM2ZfXHUwZDJiXHUwZDQ2XHUwZDJjXHUwZDRkXHUwZDMwXHUwZDQxXHUwZDM1XHUwZDMwXHUwZDNm'@; put 'X1x1MGQyZVx1MGQzZVx1MGQ3Y1x1MGQxYVx1MGQ0ZFx1MGQxYVx1MGQ0ZF9cdTBkMGZcdTBkMmFcdTBkNGRcdTBkMzBcdTBkM2ZcdTBkN2RfXHUwZDJlXHUwZDQ3XHUwZDJmXHUwZDRkX1x1MGQxY1x1MGQ0Mlx1MGQ3YV9cdTBkMWNcdTBkNDJcdTBkMzJcdTBkNDhfXHUwZDEzXHUwZDE3XHUw'@; put 'ZDM4XHUwZDRkXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkX1x1MGQzOFx1MGQ0Nlx1MGQyYVx1MGQ0ZFx1MGQzMVx1MGQ0ZFx1MGQzMVx1MGQwMlx1MGQyY1x1MGQ3Y19cdTBkMTJcdTBkMTVcdTBkNGRcdTBkMWZcdTBkNGJcdTBkMmNcdTBkN2NfXHUwZDI4XHUwZDM1XHUwZDAyXHUwZDJjXHUw'@; put 'ZDdjX1x1MGQyMVx1MGQzZlx1MGQzOFx1MGQwMlx1MGQyY1x1MGQ3YyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwZDFjXHUwZDI4XHUwZDQxLl9cdTBkMmJcdTBkNDZcdTBkMmNcdTBkNGRcdTBkMzBcdTBkNDEuX1x1MGQyZVx1MGQzZVx1MGQ3Yy5fXHUwZDBmXHUwZDJhXHUwZDRkXHUw'@; put 'ZDMwXHUwZDNmLl9cdTBkMmVcdTBkNDdcdTBkMmZcdTBkNGRfXHUwZDFjXHUwZDQyXHUwZDdhX1x1MGQxY1x1MGQ0Mlx1MGQzMlx1MGQ0OC5fXHUwZDEzXHUwZDE3Ll9cdTBkMzhcdTBkNDZcdTBkMmFcdTBkNGRcdTBkMzFcdTBkNGRcdTBkMzEuX1x1MGQxMlx1MGQxNVx1MGQ0ZFx1MGQxZlx1'@; put 'MGQ0Yi5fXHUwZDI4XHUwZDM1XHUwZDAyLl9cdTBkMjFcdTBkM2ZcdTBkMzhcdTBkMDIuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGQxZVx1MGQzZVx1MGQyZlx1MGQzMVx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMjRcdTBkM2ZcdTBkMTlcdTBk'@; put 'NGRcdTBkMTVcdTBkMzNcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDFhXHUwZDRhXHUwZDM1XHUwZDRkXHUwZDM1XHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQyY1x1MGQ0MVx1MGQyN1x1MGQyOFx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMzVcdTBkNGRcdTBkMmZcdTBk'@; put 'M2VcdTBkMzRcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDM1XHUwZDQ2XHUwZDMzXHUwZDRkXHUwZDMzXHUwZDNmXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQzNlx1MGQyOFx1MGQzZlx1MGQyZlx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYSIuc3BsaXQoIl8iKSx3ZWVr'@; put 'ZGF5c1Nob3J0OiJcdTBkMWVcdTBkM2VcdTBkMmZcdTBkN2NfXHUwZDI0XHUwZDNmXHUwZDE5XHUwZDRkXHUwZDE1XHUwZDdlX1x1MGQxYVx1MGQ0YVx1MGQzNVx1MGQ0ZFx1MGQzNV9cdTBkMmNcdTBkNDFcdTBkMjdcdTBkN2JfXHUwZDM1XHUwZDRkXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDAy'@; put 'X1x1MGQzNVx1MGQ0Nlx1MGQzM1x1MGQ0ZFx1MGQzM1x1MGQzZl9cdTBkMzZcdTBkMjhcdTBkM2YiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGQxZVx1MGQzZV9cdTBkMjRcdTBkM2ZfXHUwZDFhXHUwZDRhX1x1MGQyY1x1MGQ0MV9cdTBkMzVcdTBkNGRcdTBkMmZcdTBkM2VfXHUwZDM1'@; put 'XHUwZDQ2X1x1MGQzNiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSAtXHUwZDI4XHUwZDQxIixMVFM6IkEgaDptbTpzcyAtXHUwZDI4XHUwZDQxIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSAtXHUwZDI4XHUw'@; put 'ZDQxIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIC1cdTBkMjhcdTBkNDEifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGQwN1x1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0ZF0gTFQiLG5leHREYXk6IltcdTBkMjhcdTBkM2VcdTBkMzNcdTBkNDZdIExUIixuZXh0V2VlazoiZGRkZCwg'@; put 'TFQiLGxhc3REYXk6IltcdTBkMDdcdTBkMjhcdTBkNGRcdTBkMjhcdTBkMzJcdTBkNDZdIExUIixsYXN0V2VlazoiW1x1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZV0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGQxNVx1MGQz'@; put 'NFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZVx1MGQ0ZCIscGFzdDoiJXMgXHUwZDJlXHUwZDQxXHUwZDdiXHUwZDJhXHUwZDRkIixzOiJcdTBkMDVcdTBkN2RcdTBkMmEgXHUwZDI4XHUwZDNmXHUwZDJlXHUwZDNmXHUwZDM3XHUwZDE5XHUwZDRkXHUwZDE5XHUwZDdlIixzczoiJWQgXHUwZDM4'@; put 'XHUwZDQ2XHUwZDE1XHUwZDRkXHUwZDE1XHUwZDdiXHUwZDIxXHUwZDRkIixtOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDJlXHUwZDNmXHUwZDI4XHUwZDNmXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkIixtbToiJWQgXHUwZDJlXHUwZDNmXHUwZDI4XHUwZDNmXHUwZDMxXHUwZDRkXHUwZDMx'@; put 'XHUwZDRkIixoOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDJlXHUwZDIzXHUwZDNmXHUwZDE1XHUwZDRkXHUwZDE1XHUwZDQyXHUwZDdjIixoaDoiJWQgXHUwZDJlXHUwZDIzXHUwZDNmXHUwZDE1XHUwZDRkXHUwZDE1XHUwZDQyXHUwZDdjIixkOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDI2'@; put 'XHUwZDNmXHUwZDM1XHUwZDM4XHUwZDAyIixkZDoiJWQgXHUwZDI2XHUwZDNmXHUwZDM1XHUwZDM4XHUwZDAyIixNOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDJlXHUwZDNlXHUwZDM4XHUwZDAyIixNTToiJWQgXHUwZDJlXHUwZDNlXHUwZDM4XHUwZDAyIix5OiJcdTBkMTJcdTBkMzBcdTBk'@; put 'NDEgXHUwZDM1XHUwZDdjXHUwZDM3XHUwZDAyIix5eToiJWQgXHUwZDM1XHUwZDdjXHUwZDM3XHUwZDAyIn0sbWVyaWRpZW1QYXJzZTovXHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmfFx1MGQzMFx1MGQzZVx1MGQzNVx1MGQzZlx1MGQzMlx1MGQ0NnxcdTBkMDlcdTBkMWFc'@; put 'dTBkNGRcdTBkMWEgXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXHUwZDRkfFx1MGQzNVx1MGQ0OFx1MGQxNVx1MGQ0MVx1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0N1x1MGQzMFx1MGQwMnxcdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2YvaSxtZXJpZGllbUhv'@; put 'dXI6ZnVuY3Rpb24obSxsZSl7cmV0dXJuIDEyPT09bSYmKG09MCksIlx1MGQzMFx1MGQzZVx1MGQyNFx1MGQ0ZFx1MGQzMFx1MGQzZiI9PT1sZSYmbT49NHx8Ilx1MGQwOVx1MGQxYVx1MGQ0ZFx1MGQxYSBcdTBkMTVcdTBkMzRcdTBkM2ZcdTBkMWVcdTBkNGRcdTBkMWVcdTBkNGQiPT09bGV8'@; put 'fCJcdTBkMzVcdTBkNDhcdTBkMTVcdTBkNDFcdTBkMjhcdTBkNGRcdTBkMjhcdTBkNDdcdTBkMzBcdTBkMDIiPT09bGU/bSsxMjptfSxtZXJpZGllbTpmdW5jdGlvbihtLGxlLE0pe3JldHVybiBtPDQ/Ilx1MGQzMFx1MGQzZVx1MGQyNFx1MGQ0ZFx1MGQzMFx1MGQzZiI6bTwxMj8iXHUwZDMw'@; put 'XHUwZDNlXHUwZDM1XHUwZDNmXHUwZDMyXHUwZDQ2IjptPDE3PyJcdTBkMDlcdTBkMWFcdTBkNGRcdTBkMWEgXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXHUwZDRkIjptPDIwPyJcdTBkMzVcdTBkNDhcdTBkMTVcdTBkNDFcdTBkMjhcdTBkNGRcdTBkMjhcdTBkNDdcdTBk'@; put 'MzBcdTBkMDIiOiJcdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2YifX0pfShGKDE2Njc2KSl9LDY4OTI5OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHgobGUsTSxPLFIpe3N3aXRjaChPKXtjYXNlInMiOnJldHVybiBNPyJc'@; put 'dTA0NDVcdTA0NGRcdTA0MzRcdTA0NDVcdTA0NGRcdTA0M2QgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IjoiXHUwNDQ1XHUwNDRkXHUwNDM0XHUwNDQ1XHUwNDRkXHUwNDNkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Ylx1MDQzZCI7Y2Fz'@; put 'ZSJzcyI6cmV0dXJuIGxlKyhNPyIgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IjoiIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Ylx1MDQzZCIpO2Nhc2UibSI6Y2FzZSJtbSI6cmV0dXJuIGxlKyhNPyIgXHUwNDNjXHUwNDM4XHUwNDNkXHUw'@; put 'NDQzXHUwNDQyIjoiIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0Ylx1MDQzZCIpO2Nhc2UiaCI6Y2FzZSJoaCI6cmV0dXJuIGxlKyhNPyIgXHUwNDQ2XHUwNDMwXHUwNDMzIjoiIFx1MDQ0Nlx1MDQzMFx1MDQzM1x1MDQzOFx1MDQzOVx1MDQzZCIpO2Nhc2UiZCI6Y2FzZSJk'@; put 'ZCI6cmV0dXJuIGxlKyhNPyIgXHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwIjoiIFx1MDRlOVx1MDQzNFx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQzZCIpO2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIGxlKyhNPyIgXHUwNDQxXHUwNDMwXHUwNDQwIjoiIFx1MDQ0MVx1MDQzMFx1MDQ0MFx1MDQ0Ylx1'@; put 'MDQzZCIpO2Nhc2UieSI6Y2FzZSJ5eSI6cmV0dXJuIGxlKyhNPyIgXHUwNDM2XHUwNDM4XHUwNDNiIjoiIFx1MDQzNlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzOVx1MDQzZCIpO2RlZmF1bHQ6cmV0dXJuIGxlfX1hZS5kZWZpbmVMb2NhbGUoIm1uIix7bW9udGhzOiJcdTA0MWRcdTA0NGRcdTA0'@; put 'MzNcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQyNVx1MDQzZVx1MDQ1MVx1MDQ0MFx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDEzXHUwNDQzXHUwNDQwXHUwNDMwXHUw'@; put 'NDMyXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTRcdTA0ZTlcdTA0NDBcdTA0ZTlcdTA0MzJcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQyMlx1MDQzMFx1MDQzMlx1'@; put 'MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDE3XHUwNDQzXHUwNDQwXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTRcdTA0M2VcdTA0M2JcdTA0MzRc'@; put 'dTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxZFx1MDQzMFx1MDQzOVx1MDQzY1x1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDE1XHUwNDQxXHUwNDM0XHUwNGFmXHUwNDMzXHUwNDRk'@; put 'XHUwNDRkXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxMFx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzZCBcdTA0M2RcdTA0NGRcdTA0MzNcdTA0'@; put 'MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxMFx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzZCBcdTA0NDVcdTA0M2VcdTA0NTFcdTA0NDBcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwIi5z'@; put 'cGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxIFx1MDQ0MVx1MDQzMFx1MDQ0MF8yIFx1MDQ0MVx1MDQzMFx1MDQ0MF8zIFx1MDQ0MVx1MDQzMFx1MDQ0MF80IFx1MDQ0MVx1MDQzMFx1MDQ0MF81IFx1MDQ0MVx1MDQzMFx1MDQ0MF82IFx1MDQ0MVx1MDQzMFx1MDQ0MF83IFx1MDQ0MVx1MDQzMFx1'@; put 'MDQ0MF84IFx1MDQ0MVx1MDQzMFx1MDQ0MF85IFx1MDQ0MVx1MDQzMFx1MDQ0MF8xMCBcdTA0NDFcdTA0MzBcdTA0NDBfMTEgXHUwNDQxXHUwNDMwXHUwNDQwXzEyIFx1MDQ0MVx1MDQzMFx1MDQ0MCIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA0MWRcdTA0'@; put 'NGZcdTA0M2NfXHUwNDE0XHUwNDMwXHUwNDMyXHUwNDMwXHUwNDMwX1x1MDQxY1x1MDQ0Zlx1MDQzM1x1MDQzY1x1MDQzMFx1MDQ0MF9cdTA0MWJcdTA0NDVcdTA0MzBcdTA0MzNcdTA0MzJcdTA0MzBfXHUwNDFmXHUwNGFmXHUwNDQwXHUwNDRkXHUwNDMyX1x1MDQxMVx1MDQzMFx1MDQzMFx1'@; put 'MDQ0MVx1MDQzMFx1MDQzZF9cdTA0MTFcdTA0NGZcdTA0M2NcdTA0MzFcdTA0MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDFkXHUwNDRmXHUwNDNjX1x1MDQxNFx1MDQzMFx1MDQzMl9cdTA0MWNcdTA0NGZcdTA0MzNfXHUwNDFiXHUwNDQ1XHUwNDMwX1x1MDQxZlx1MDRhZlx1'@; put 'MDQ0MF9cdTA0MTFcdTA0MzBcdTA0MzBfXHUwNDExXHUwNDRmXHUwNDNjIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MWRcdTA0NGZfXHUwNDE0XHUwNDMwX1x1MDQxY1x1MDQ0Zl9cdTA0MWJcdTA0NDVfXHUwNDFmXHUwNGFmX1x1MDQxMVx1MDQzMF9cdTA0MTFcdTA0NGYiLnNwbGl0'@; put 'KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJZWVlZIFx1MDQzZVx1MDQzZFx1MDQ0YiBNTU1NXHUwNDRiXHUwNDNkIEQiLExMTDoiWVlZWSBcdTA0M2VcdTA0M2RcdTA0NGIgTU1N'@; put 'TVx1MDQ0Ylx1MDQzZCBEIEhIOm1tIixMTExMOiJkZGRkLCBZWVlZIFx1MDQzZVx1MDQzZFx1MDQ0YiBNTU1NXHUwNDRiXHUwNDNkIEQgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA0YWVcdTA0ZTh8XHUwNGFlXHUwNDI1L2ksaXNQTTpmdW5jdGlvbihsZSl7cmV0dXJuIlx1MDRhZVx1MDQy'@; put 'NSI9PT1sZX0sbWVyaWRpZW06ZnVuY3Rpb24obGUsTSxPKXtyZXR1cm4gbGU8MTI/Ilx1MDRhZVx1MDRlOCI6Ilx1MDRhZVx1MDQyNSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNGU4XHUwNDNkXHUwNGU5XHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwXSBMVCIsbmV4dERheToiW1x1MDQxY1x1'@; put 'MDQzMFx1MDQ0MFx1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0OF0gTFQiLG5leHRXZWVrOiJbXHUwNDE4XHUwNDQwXHUwNDRkXHUwNDQ1XSBkZGRkIExUIixsYXN0RGF5OiJbXHUwNGU4XHUwNDQ3XHUwNDM4XHUwNDMzXHUwNDM0XHUwNGU5XHUwNDQwXSBMVCIsbGFzdFdlZWs6IltcdTA0ZThcdTA0'@; put 'M2RcdTA0MzNcdTA0ZTlcdTA0NDBcdTA0NDFcdTA0ZTlcdTA0M2RdIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzMCIscGFzdDoiJXMgXHUwNGU5XHUwNDNjXHUwNDNkXHUwNGU5IixzOngsc3M6eCxt'@; put 'OngsbW06eCxoOngsaGg6eCxkOngsZGQ6eCxNOngsTU06eCx5OngseXk6eH0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfSBcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0NDAvLG9yZGluYWw6ZnVuY3Rpb24obGUsTSl7c3dpdGNoKE0pe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0'@; put 'dXJuIGxlKyIgXHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwIjtkZWZhdWx0OnJldHVybiBsZX19fSl9KEYoMTY2NzYpKX0sODQ4ODA6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9ezE6Ilx1MDk2NyIsMjoiXHUwOTY4IiwzOiJcdTA5NjkiLDQ6Ilx1'@; put 'MDk2YSIsNToiXHUwOTZiIiw2OiJcdTA5NmMiLDc6Ilx1MDk2ZCIsODoiXHUwOTZlIiw5OiJcdTA5NmYiLDA6Ilx1MDk2NiJ9LG09eyJcdTA5NjciOiIxIiwiXHUwOTY4IjoiMiIsIlx1MDk2OSI6IjMiLCJcdTA5NmEiOiI0IiwiXHUwOTZiIjoiNSIsIlx1MDk2YyI6IjYiLCJcdTA5NmQiOiI3'@; put 'IiwiXHUwOTZlIjoiOCIsIlx1MDk2ZiI6IjkiLCJcdTA5NjYiOiIwIn07ZnVuY3Rpb24gbGUoTyxSLHosSyl7dmFyIEk9IiI7aWYoUilzd2l0Y2goeil7Y2FzZSJzIjpJPSJcdTA5MTVcdTA5M2VcdTA5MzlcdTA5NDAgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTI2IjticmVhaztjYXNl'@; put 'InNzIjpJPSIlZCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5MDJcdTA5MjYiO2JyZWFrO2Nhc2UibSI6ST0iXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZiI7YnJlYWs7Y2FzZSJtbSI6ST0iJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTNmXHUwOTFmXHUwOTQ3Ijti'@; put 'cmVhaztjYXNlImgiOkk9Ilx1MDkwZlx1MDkxNSBcdTA5MjRcdTA5M2VcdTA5MzgiO2JyZWFrO2Nhc2UiaGgiOkk9IiVkIFx1MDkyNFx1MDkzZVx1MDkzOCI7YnJlYWs7Y2FzZSJkIjpJPSJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4IjticmVhaztjYXNlImRkIjpJPSIl'@; put 'ZCBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5MzgiO2JyZWFrO2Nhc2UiTSI6ST0iXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDkzZSI7YnJlYWs7Y2FzZSJNTSI6ST0iJWQgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTQ3IjticmVhaztjYXNlInkiOkk9Ilx1MDkw'@; put 'Zlx1MDkxNSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzciO2JyZWFrO2Nhc2UieXkiOkk9IiVkIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDk0NyJ9ZWxzZSBzd2l0Y2goeil7Y2FzZSJzIjpJPSJcdTA5MTVcdTA5M2VcdTA5MzlcdTA5NDAgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUw'@; put 'OTI2XHUwOTNlXHUwOTAyIjticmVhaztjYXNlInNzIjpJPSIlZCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5MDJcdTA5MjZcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UibSI6ST0iXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZlx1MDkzZSI7YnJlYWs7Y2Fz'@; put 'ZSJtbSI6ST0iJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTNmXHUwOTFmXHUwOTNlXHUwOTAyIjticmVhaztjYXNlImgiOkk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MjRcdTA5M2VcdTA5MzhcdTA5M2UiO2JyZWFrO2Nhc2UiaGgiOkk9IiVkIFx1MDkyNFx1MDkzZVx1MDkzOFx1MDkzZVx1'@; put 'MDkwMiI7YnJlYWs7Y2FzZSJkIjpJPSJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4XHUwOTNlIjticmVhaztjYXNlImRkIjpJPSIlZCBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5MzhcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UiTSI6ST0iXHUwOTBmXHUwOTE1XHUw'@; put 'OTNlIFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZSI7YnJlYWs7Y2FzZSJNTSI6ST0iJWQgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTAyIjticmVhaztjYXNlInkiOkk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MzVcdTA5'@; put 'MzBcdTA5NGRcdTA5MzdcdTA5M2UiO2JyZWFrO2Nhc2UieXkiOkk9IiVkIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDkzZVx1MDkwMiJ9cmV0dXJuIEkucmVwbGFjZSgvJWQvaSxPKX1hZS5kZWZpbmVMb2NhbGUoIm1yIix7bW9udGhzOiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDdcdTA5'@; put 'MzVcdTA5M2VcdTA5MzBcdTA5NDBfXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxXHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MGZcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2ZcdTA5MzJfXHUwOTJlXHUwOTQ3X1x1'@; put 'MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5NDhfXHUwOTExXHUwOTE3XHUwOTM4XHUwOTRkXHUwOTFmX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBf'@; put 'XHUwOTI4XHUwOTRiXHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTNlXHUwOTI4XHUwOTQ3Ll9cdTA5MmJcdTA5NDdcdTA5'@; put 'MmNcdTA5NGRcdTA5MzBcdTA5NDEuX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS5fXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTNmLl9cdTA5MmVcdTA5NDcuX1x1MDkxY1x1MDk0Mlx1MDkyOC5fXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTQ4Ll9cdTA5MTFcdTA5MTcuX1x1MDkz'@; put 'OFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMi5fXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiLl9cdTA5MjhcdTA5NGJcdTA5MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDIuX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMi4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VF'@; put 'eGFjdDohMCx3ZWVrZGF5czoiXHUwOTMwXHUwOTM1XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzNcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNl'@; put 'XHUwOTMwX1x1MDkxN1x1MDk0MVx1MDkzMFx1MDk0Mlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1'@; put 'MDkzMFx1MDkzNVx1MDkzZl9cdTA5MzhcdTA5NGJcdTA5MmVfXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMzX1x1MDkyY1x1MDk0MVx1MDkyN19cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZiIuc3BsaXQoIl8i'@; put 'KSx3ZWVrZGF5c01pbjoiXHUwOTMwX1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkxN1x1MDk0MV9cdTA5MzZcdTA5NDFfXHUwOTM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZSIs'@; put 'TFRTOiJBIGg6bW06c3MgXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2UiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6'@; put 'bW0gXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5MDZcdTA5MWNdIExUIixuZXh0RGF5OiJbXHUwOTA5XHUwOTI2XHUwOTRkXHUwOTJmXHUwOTNlXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTE1XHUwOTNlXHUw'@; put 'OTMyXSBMVCIsbGFzdFdlZWs6IltcdTA5MmVcdTA5M2VcdTA5MTdcdTA5NDBcdTA5MzJdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1MDkyZVx1MDkyN1x1MDk0ZFx1MDkyZlx1MDk0NyIscGFzdDoiJXNcdTA5MmFcdTA5NDJcdTA5MzBcdTA5NGRc'@; put 'dTA5MzVcdTA5NDAiLHM6bGUsc3M6bGUsbTpsZSxtbTpsZSxoOmxlLGhoOmxlLGQ6bGUsZGQ6bGUsTTpsZSxNTTpsZSx5OmxlLHl5OmxlfSxwcmVwYXJzZTpmdW5jdGlvbihPKXtyZXR1cm4gTy5yZXBsYWNlKC9bXHUwOTY3XHUwOTY4XHUwOTY5XHUwOTZhXHUwOTZiXHUwOTZjXHUwOTZkXHUw'@; put 'OTZlXHUwOTZmXHUwOTY2XS9nLGZ1bmN0aW9uKFIpe3JldHVybiBtW1JdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTyl7cmV0dXJuIE8ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihSKXtyZXR1cm4geFtSXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5MmFcdTA5MzlcdTA5M2VcdTA5MWZcdTA5NDd8'@; put 'XHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwfFx1MDkyNlx1MDk0MVx1MDkyYVx1MDkzZVx1MDkzMFx1MDk0MHxcdTA5MzhcdTA5M2VcdTA5MmZcdTA5MDJcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDB8XHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwLyxtZXJpZGllbUhv'@; put 'dXI6ZnVuY3Rpb24oTyxSKXtyZXR1cm4gMTI9PT1PJiYoTz0wKSwiXHUwOTJhXHUwOTM5XHUwOTNlXHUwOTFmXHUwOTQ3Ij09PVJ8fCJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDAiPT09Uj9POiJcdTA5MjZcdTA5NDFcdTA5MmFcdTA5M2VcdTA5MzBcdTA5NDAiPT09Unx8Ilx1MDkz'@; put 'OFx1MDkzZVx1MDkyZlx1MDkwMlx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MCI9PT1SfHwiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwIj09PVI/Tz49MTI/TzpPKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oTyxSLHope3JldHVybiBPPj0wJiZPPDY/Ilx1MDkyYVx1'@; put 'MDkzOVx1MDkzZVx1MDkxZlx1MDk0NyI6TzwxMj8iXHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwIjpPPDE3PyJcdTA5MjZcdTA5NDFcdTA5MmFcdTA5M2VcdTA5MzBcdTA5NDAiOk88MjA/Ilx1MDkzOFx1MDkzZVx1MDkyZlx1MDkwMlx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MCI6Ilx1'@; put 'MDkzMFx1MDkzZVx1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0MCJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShGKDE2Njc2KSl9LDQyMDc0OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgibXMtbXkiLHttb250aHM6IkphbnVhcmlfRmVi'@; put 'cnVhcmlfTWFjX0FwcmlsX01laV9KdW5fSnVsYWlfT2dvc19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EaXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX09nc19TZXBfT2t0X05vdl9EaXMiLnNwbGl0KCJfIiksd2Vla2RheXM6'@; put 'IkFoYWRfSXNuaW5fU2VsYXNhX1JhYnVfS2hhbWlzX0p1bWFhdF9TYWJ0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJBaGRfSXNuX1NlbF9SYWJfS2hhX0p1bV9TYWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFoX0lzX1NsX1JiX0ttX0ptX1NiIi5zcGxpdCgiXyIpLGxvbmdEYXRl'@; put 'Rm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovcGFnaXx0ZW5nYWhh'@; put 'cml8cGV0YW5nfG1hbGFtLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24obSxsZSl7cmV0dXJuIDEyPT09bSYmKG09MCksInBhZ2kiPT09bGU/bToidGVuZ2FoYXJpIj09PWxlP20+PTExP206bSsxMjoicGV0YW5nIj09PWxlfHwibWFsYW0iPT09bGU/bSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0'@; put 'aW9uKG0sbGUsTSl7cmV0dXJuIG08MTE/InBhZ2kiOm08MTU/InRlbmdhaGFyaSI6bTwxOT8icGV0YW5nIjoibWFsYW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhcmkgaW5pIHB1a3VsXSBMVCIsbmV4dERheToiW0Vzb2sgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixs'@; put 'YXN0RGF5OiJbS2VsbWFyaW4gcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBbbGVwYXMgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYWxhbSAlcyIscGFzdDoiJXMgeWFuZyBsZXBhcyIsczoiYmViZXJhcGEgc2FhdCIsc3M6IiVkIHNhYXQiLG06InNl'@; put 'bWluaXQiLG1tOiIlZCBtaW5pdCIsaDoic2VqYW0iLGhoOiIlZCBqYW0iLGQ6InNlaGFyaSIsZGQ6IiVkIGhhcmkiLE06InNlYnVsYW4iLE1NOiIlZCBidWxhbiIseToic2V0YWh1biIseXk6IiVkIHRhaHVuIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sNjMxOTM6ZnVuY3Rp'@; put 'b24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJtcyIse21vbnRoczoiSmFudWFyaV9GZWJydWFyaV9NYWNfQXByaWxfTWVpX0p1bl9KdWxhaV9PZ29zX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rpc2VtYmVyIi5zcGxpdCgiXyIpLG1v'@; put 'bnRoc1Nob3J0OiJKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfT2dzX1NlcF9Pa3RfTm92X0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkFoZF9Jc25fU2VsX1Jh'@; put 'Yl9LaGFfSnVtX1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQWhfSXNfU2xfUmJfS21fSm1fU2IiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtw'@; put 'dWt1bF0gSEgubW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0ifSxtZXJpZGllbVBhcnNlOi9wYWdpfHRlbmdhaGFyaXxwZXRhbmd8bWFsYW0vLG1lcmlkaWVtSG91cjpmdW5jdGlvbihtLGxlKXtyZXR1cm4gMTI9PT1tJiYobT0wKSwicGFnaSI9PT1sZT9tOiJ0ZW5n'@; put 'YWhhcmkiPT09bGU/bT49MTE/bTptKzEyOiJwZXRhbmciPT09bGV8fCJtYWxhbSI9PT1sZT9tKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXtyZXR1cm4gbTwxMT8icGFnaSI6bTwxNT8idGVuZ2FoYXJpIjptPDE5PyJwZXRhbmciOiJtYWxhbSJ9LGNhbGVuZGFyOntzYW1l'@; put 'RGF5OiJbSGFyaSBpbmkgcHVrdWxdIExUIixuZXh0RGF5OiJbRXNvayBwdWt1bF0gTFQiLG5leHRXZWVrOiJkZGRkIFtwdWt1bF0gTFQiLGxhc3REYXk6IltLZWxtYXJpbiBwdWt1bF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtsZXBhcyBwdWt1bF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVU'@; put 'aW1lOntmdXR1cmU6ImRhbGFtICVzIixwYXN0OiIlcyB5YW5nIGxlcGFzIixzOiJiZWJlcmFwYSBzYWF0IixzczoiJWQgc2FhdCIsbToic2VtaW5pdCIsbW06IiVkIG1pbml0IixoOiJzZWphbSIsaGg6IiVkIGphbSIsZDoic2VoYXJpIixkZDoiJWQgaGFyaSIsTToic2VidWxhbiIsTU06IiVk'@; put 'IGJ1bGFuIix5OiJzZXRhaHVuIix5eToiJWQgdGFodW4ifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oRigxNjY3NikpfSw1NDA4MjpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoIm10Iix7bW9udGhzOiJKYW5uYXJfRnJhcl9NYXJ6'@; put 'dV9BcHJpbF9NZWpqdV9cdTAxMjB1bmp1X0x1bGp1X0F3d2lzc3VfU2V0dGVtYnJ1X090dHVicnVfTm92ZW1icnVfRGlcdTAxMGJlbWJydSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZyYV9NYXJfQXByX01lal9cdTAxMjB1bl9MdWxfQXd3X1NldF9PdHRfTm92X0RpXHUwMTBiIi5z'@; put 'cGxpdCgiXyIpLHdlZWtkYXlzOiJJbC1cdTAxMjZhZGRfSXQtVG5lam5fSXQtVGxpZXRhX0wtRXJiZ1x1MDEyN2FfSWwtXHUwMTI2YW1pc19JbC1cdTAxMjBpbWdcdTAxMjdhX0lzLVNpYnQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwMTI2YWRfVG5lX1RsaV9FcmJfXHUwMTI2YW1f'@; put 'XHUwMTIwaW1fU2liIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTAxMjZhX1RuX1RsX0VyX1x1MDEyNmFfXHUwMTIwaV9TaSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoi'@; put 'RCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJbGx1bSBmaWwtXUxUIixuZXh0RGF5OiJbR1x1MDEyN2FkYSBmaWwtXUxUIixuZXh0V2VlazoiZGRkZCBbZmlsLV1MVCIsbGFzdERheToiW0lsLWJpZXJhXHUwMTI3'@; put 'IGZpbC1dTFQiLGxhc3RXZWVrOiJkZGRkIFtsaSBnXHUwMTI3YWRkYV0gW2ZpbC1dTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImZcdTIwMTkgJXMiLHBhc3Q6IiVzIGlsdSIsczoiZnRpdCBzZWtvbmRpIixzczoiJWQgc2Vrb25kaSIsbToibWludXRhIixtbToiJWQg'@; put 'bWludXRpIixoOiJzaWVnXHUwMTI3YSIsaGg6IiVkIHNpZWdcdTAxMjdhdCIsZDoiXHUwMTIxdXJuYXRhIixkZDoiJWQgXHUwMTIxcmFuZXQiLE06InhhaGFyIixNTToiJWQgeGh1ciIseToic2VuYSIseXk6IiVkIHNuaSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxv'@; put 'cmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDgyMjYxOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PXsxOiJcdTEwNDEiLDI6Ilx1MTA0MiIsMzoiXHUxMDQzIiw0OiJcdTEwNDQiLDU6Ilx1MTA0NSIsNjoi'@; put 'XHUxMDQ2Iiw3OiJcdTEwNDciLDg6Ilx1MTA0OCIsOToiXHUxMDQ5IiwwOiJcdTEwNDAifSxtPXsiXHUxMDQxIjoiMSIsIlx1MTA0MiI6IjIiLCJcdTEwNDMiOiIzIiwiXHUxMDQ0IjoiNCIsIlx1MTA0NSI6IjUiLCJcdTEwNDYiOiI2IiwiXHUxMDQ3IjoiNyIsIlx1MTA0OCI6IjgiLCJcdTEw'@; put 'NDkiOiI5IiwiXHUxMDQwIjoiMCJ9O2FlLmRlZmluZUxvY2FsZSgibXkiLHttb250aHM6Ilx1MTAwN1x1MTAxNFx1MTAzYVx1MTAxNFx1MTAxZFx1MTAyYlx1MTAxYlx1MTAyZV9cdTEwMTZcdTEwMzFcdTEwMTZcdTEwMzFcdTEwMmNcdTEwM2FcdTEwMWRcdTEwMmJcdTEwMWJcdTEwMmVfXHUx'@; put 'MDE5XHUxMDEwXHUxMDNhX1x1MTAyN1x1MTAxNVx1MTAzY1x1MTAyZV9cdTEwMTlcdTEwMzFfXHUxMDA3XHUxMDNkXHUxMDE0XHUxMDNhX1x1MTAwN1x1MTAzMFx1MTAxY1x1MTAyZFx1MTAyZlx1MTAwNFx1MTAzYV9cdTEwMWVcdTEwM2NcdTEwMDJcdTEwMmZcdTEwMTBcdTEwM2FfXHUxMDA1'@; put 'XHUxMDAwXHUxMDNhXHUxMDEwXHUxMDA0XHUxMDNhXHUxMDE4XHUxMDJjX1x1MTAyMVx1MTAzMVx1MTAyY1x1MTAwMFx1MTAzYVx1MTAxMFx1MTAyZFx1MTAyZlx1MTAxOFx1MTAyY19cdTEwMTRcdTEwMmRcdTEwMmZcdTEwMWRcdTEwMDRcdTEwM2FcdTEwMThcdTEwMmNfXHUxMDEyXHUxMDJl'@; put 'XHUxMDA3XHUxMDA0XHUxMDNhXHUxMDE4XHUxMDJjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTEwMDdcdTEwMTRcdTEwM2FfXHUxMDE2XHUxMDMxX1x1MTAxOVx1MTAxMFx1MTAzYV9cdTEwMTVcdTEwM2NcdTEwMmVfXHUxMDE5XHUxMDMxX1x1MTAwN1x1MTAzZFx1MTAxNFx1MTAzYV9c'@; put 'dTEwMWNcdTEwMmRcdTEwMmZcdTEwMDRcdTEwM2FfXHUxMDFlXHUxMDNjX1x1MTAwNVx1MTAwMFx1MTAzYV9cdTEwMjFcdTEwMzFcdTEwMmNcdTEwMDBcdTEwM2FfXHUxMDE0XHUxMDJkXHUxMDJmX1x1MTAxMlx1MTAyZSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUxMDEwXHUxMDE0XHUxMDA0'@; put 'XHUxMDNhXHUxMDM5XHUxMDAyXHUxMDE0XHUxMDNkXHUxMDMxX1x1MTAxMFx1MTAxNFx1MTAwNFx1MTAzYVx1MTAzOVx1MTAxY1x1MTAyY19cdTEwMjFcdTEwMDRcdTEwM2FcdTEwMzlcdTEwMDJcdTEwMmJfXHUxMDE3XHUxMDJmXHUxMDEyXHUxMDM5XHUxMDEzXHUxMDFmXHUxMDMwXHUxMDM4'@; put 'X1x1MTAwMFx1MTAzY1x1MTAyY1x1MTAxZVx1MTAxNVx1MTAxMFx1MTAzMVx1MTAzOF9cdTEwMWVcdTEwMzFcdTEwMmNcdTEwMDBcdTEwM2NcdTEwMmNfXHUxMDA1XHUxMDE0XHUxMDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MTAxNFx1MTAzZFx1MTAzMV9cdTEwMWNcdTEwMmNf'@; put 'XHUxMDAyXHUxMDJiX1x1MTAxZlx1MTAzMFx1MTAzOF9cdTEwMDBcdTEwM2NcdTEwMmNfXHUxMDFlXHUxMDMxXHUxMDJjX1x1MTAxNFx1MTAzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxMDE0XHUxMDNkXHUxMDMxX1x1MTAxY1x1MTAyY19cdTEwMDJcdTEwMmJfXHUxMDFmXHUxMDMw'@; put 'XHUxMDM4X1x1MTAwMFx1MTAzY1x1MTAyY19cdTEwMWVcdTEwMzFcdTEwMmNfXHUxMDE0XHUxMDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDpt'@; put 'bSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUxMDFhXHUxMDE0XHUxMDMxLl0gTFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLG5leHREYXk6IltcdTEwMTlcdTEwMTRcdTEwMDBcdTEwM2FcdTEwMTZcdTEwM2NcdTEwMTRcdTEwM2FdIExUIFtc'@; put 'dTEwMTlcdTEwM2VcdTEwMmNdIixuZXh0V2VlazoiZGRkZCBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsbGFzdERheToiW1x1MTAxOVx1MTAxNFx1MTAzMS5cdTEwMDBdIExUIFtcdTEwMTlcdTEwM2VcdTEwMmNdIixsYXN0V2VlazoiW1x1MTAxNVx1MTAzY1x1MTAyZVx1MTAzOFx1MTAwMVx1'@; put 'MTAzMlx1MTAzN1x1MTAxZVx1MTAzMVx1MTAyY10gZGRkZCBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUxMDFjXHUxMDJjXHUxMDE5XHUxMDBhXHUxMDNhXHUxMDM3ICVzIFx1MTAxOVx1MTAzZVx1MTAyYyIscGFzdDoiXHUx'@; put 'MDFjXHUxMDNkXHUxMDE0XHUxMDNhXHUxMDAxXHUxMDMyXHUxMDM3XHUxMDFlXHUxMDMxXHUxMDJjICVzIFx1MTAwMCIsczoiXHUxMDA1XHUxMDAwXHUxMDM5XHUxMDAwXHUxMDE0XHUxMDNhLlx1MTAyMVx1MTAxNFx1MTAwYVx1MTAzYVx1MTAzOFx1MTAwNFx1MTAxYVx1MTAzYSIsc3M6IiVk'@; put 'IFx1MTAwNVx1MTAwMFx1MTAzOVx1MTAwMFx1MTAxNFx1MTAzN1x1MTAzYSIsbToiXHUxMDEwXHUxMDA1XHUxMDNhXHUxMDE5XHUxMDJkXHUxMDE0XHUxMDA1XHUxMDNhIixtbToiJWQgXHUxMDE5XHUxMDJkXHUxMDE0XHUxMDA1XHUxMDNhIixoOiJcdTEwMTBcdTEwMDVcdTEwM2FcdTEwMTRc'@; put 'dTEwMmNcdTEwMWJcdTEwMmUiLGhoOiIlZCBcdTEwMTRcdTEwMmNcdTEwMWJcdTEwMmUiLGQ6Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxYlx1MTAwMFx1MTAzYSIsZGQ6IiVkIFx1MTAxYlx1MTAwMFx1MTAzYSIsTToiXHUxMDEwXHUxMDA1XHUxMDNhXHUxMDFjIixNTToiJWQgXHUxMDFjIix5'@; put 'OiJcdTEwMTBcdTEwMDVcdTEwM2FcdTEwMTRcdTEwM2VcdTEwMDVcdTEwM2EiLHl5OiIlZCBcdTEwMTRcdTEwM2VcdTEwMDVcdTEwM2EifSxwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9bXHUxMDQxXHUxMDQyXHUxMDQzXHUxMDQ0XHUxMDQ1XHUxMDQ2XHUxMDQ3XHUx'@; put 'MDQ4XHUxMDQ5XHUxMDQwXS9nLGZ1bmN0aW9uKE8pe3JldHVybiBtW09dfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0pfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSwxNTI3MzpmdW5jdGlv'@; put 'bihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoIm5iIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1v'@; put 'bnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyc19hcHIuX21haV9qdW5pX2p1bGlfYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6InNceGY4bmRhZ19tYW5kYWdfdGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4Zjhy'@; put 'ZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY4Ll9tYS5fdGkuX29uLl90by5fZnIuX2xceGY4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic1x4ZjhfbWFfdGlfb25fdG9fZnJfbFx4ZjgiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0'@; put 'OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbaSBkYWcga2wuXSBMVCIs'@; put 'bmV4dERheToiW2kgbW9yZ2VuIGtsLl0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbC5dIExUIixsYXN0RGF5OiJbaSBnXHhlNXIga2wuXSBMVCIsbGFzdFdlZWs6Iltmb3JyaWdlXSBkZGRkIFtrbC5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvbSAlcyIscGFzdDoi'@; put 'JXMgc2lkZW4iLHM6Im5vZW4gc2VrdW5kZXIiLHNzOiIlZCBzZWt1bmRlciIsbToiZXR0IG1pbnV0dCIsbW06IiVkIG1pbnV0dGVyIixoOiJlbiB0aW1lIixoaDoiJWQgdGltZXIiLGQ6ImVuIGRhZyIsZGQ6IiVkIGRhZ2VyIix3OiJlbiB1a2UiLHd3OiIlZCB1a2VyIixNOiJlbiBtXHhlNW5l'@; put 'ZCIsTU06IiVkIG1ceGU1bmVkZXIiLHk6ImV0dCBceGU1ciIseXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDE5ODc0OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlv'@; put 'bihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PXsxOiJcdTA5NjciLDI6Ilx1MDk2OCIsMzoiXHUwOTY5Iiw0OiJcdTA5NmEiLDU6Ilx1MDk2YiIsNjoiXHUwOTZjIiw3OiJcdTA5NmQiLDg6Ilx1MDk2ZSIsOToiXHUwOTZmIiwwOiJcdTA5NjYifSxtPXsiXHUwOTY3IjoiMSIsIlx1MDk2OCI6IjIi'@; put 'LCJcdTA5NjkiOiIzIiwiXHUwOTZhIjoiNCIsIlx1MDk2YiI6IjUiLCJcdTA5NmMiOiI2IiwiXHUwOTZkIjoiNyIsIlx1MDk2ZSI6IjgiLCJcdTA5NmYiOiI5IiwiXHUwOTY2IjoiMCJ9O2FlLmRlZmluZUxvY2FsZSgibmUiLHttb250aHM6Ilx1MDkxY1x1MDkyOFx1MDkzNVx1MDkzMFx1MDk0'@; put 'MF9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDFcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDkzZlx1MDkzMl9cdTA5MmVcdTA5MDhfXHUwOTFjXHUwOTQxXHUwOTI4X1x1MDkxY1x1'@; put 'MDk0MVx1MDkzMlx1MDkzZVx1MDkwOF9cdTA5MDVcdTA5MTdcdTA5MzdcdTA5NGRcdTA5MWZfXHUwOTM4XHUwOTQ3XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwX1x1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Ylx1MDkyY1x1MDkzMF9cdTA5Mjhc'@; put 'dTA5NGJcdTA5MmRcdTA5NDdcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzBfXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA5MWNcdTA5MjguX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0'@; put 'MS5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDkzZi5fXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0MVx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5M2VcdTA5MDguX1x1MDkwNVx1MDkxNy5fXHUwOTM4XHUwOTQ3XHUwOTJhXHUw'@; put 'OTRkXHUwOTFmLl9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGIuX1x1MDkyOFx1MDk0Ylx1MDkyZFx1MDk0Ny5fXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA5MDZcdTA5MDdcdTA5MjRcdTA5MmNcdTA5'@; put 'M2VcdTA5MzBfXHUwOTM4XHUwOTRiXHUwOTJlXHUwOTJjXHUwOTNlXHUwOTMwX1x1MDkyZVx1MDkxOVx1MDk0ZFx1MDkxN1x1MDkzMlx1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MmNcdTA5NDFcdTA5MjdcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNmXHUwOTJjXHUw'@; put 'OTNlXHUwOTMwX1x1MDkzNlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMFx1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MzZcdTA5MjhcdTA5M2ZcdTA5MmNcdTA5M2VcdTA5MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwOTA2XHUwOTA3XHUwOTI0Ll9cdTA5MzhcdTA5NGJcdTA5MmUuX1x1'@; put 'MDkyZVx1MDkxOVx1MDk0ZFx1MDkxN1x1MDkzMi5fXHUwOTJjXHUwOTQxXHUwOTI3Ll9cdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2YuX1x1MDkzNlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMC5fXHUwOTM2XHUwOTI4XHUwOTNmLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTA2Ll9cdTA5'@; put 'MzhcdTA5NGIuX1x1MDkyZVx1MDkwMi5fXHUwOTJjXHUwOTQxLl9cdTA5MmNcdTA5M2YuX1x1MDkzNlx1MDk0MS5fXHUwOTM2LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBXHUwOTE1XHUwOTRiIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3'@; put 'IixMVFM6IkFcdTA5MTVcdTA5NGIgaDptbTpzcyBcdTA5MmNcdTA5MWNcdTA5NDciLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQVx1MDkxNVx1MDk0YiBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEFc'@; put 'dTA5MTVcdTA5NGIgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDcifSxwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9bXHUwOTY3XHUwOTY4XHUwOTY5XHUwOTZhXHUwOTZiXHUwOTZjXHUwOTZkXHUwOTZlXHUwOTZmXHUwOTY2XS9nLGZ1bmN0aW9uKE8pe3JldHVybiBtW09d'@; put 'fSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5MzBcdTA5M2VcdTA5MjRcdTA5M2Z8XHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNlXHUwOTI4fFx1MDkyNlx1MDkzZlx1MDkw'@; put 'OVx1MDkwMVx1MDkzOFx1MDk0YnxcdTA5MzhcdTA5M2VcdTA5MDFcdTA5MWQvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihNLE8pe3JldHVybiAxMj09PU0mJihNPTApLCJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5M2YiPT09Tz9NPDQ/TTpNKzEyOiJcdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2VcdTA5'@; put 'MjgiPT09Tz9NOiJcdTA5MjZcdTA5M2ZcdTA5MDlcdTA5MDFcdTA5MzhcdTA5NGIiPT09Tz9NPj0xMD9NOk0rMTI6Ilx1MDkzOFx1MDkzZVx1MDkwMVx1MDkxZCI9PT1PP00rMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihNLE8sUil7cmV0dXJuIE08Mz8iXHUwOTMwXHUwOTNlXHUwOTI0'@; put 'XHUwOTNmIjpNPDEyPyJcdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2VcdTA5MjgiOk08MTY/Ilx1MDkyNlx1MDkzZlx1MDkwOVx1MDkwMVx1MDkzOFx1MDk0YiI6TTwyMD8iXHUwOTM4XHUwOTNlXHUwOTAxXHUwOTFkIjoiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTNmIn0sY2FsZW5kYXI6e3NhbWVE'@; put 'YXk6IltcdTA5MDZcdTA5MWNdIExUIixuZXh0RGF5OiJbXHUwOTJkXHUwOTRiXHUwOTMyXHUwOTNmXSBMVCIsbmV4dFdlZWs6IltcdTA5MDZcdTA5MDlcdTA5MDFcdTA5MjZcdTA5NGJdIGRkZGRbLF0gTFQiLGxhc3REYXk6IltcdTA5MzlcdTA5M2ZcdTA5MWNcdTA5NGJdIExUIixsYXN0V2Vl'@; put 'azoiW1x1MDkxN1x1MDkwZlx1MDkxNVx1MDk0Yl0gZGRkZFssXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTA5MmVcdTA5M2UiLHBhc3Q6IiVzIFx1MDkwNVx1MDkxN1x1MDkzZVx1MDkyMVx1MDkzZiIsczoiXHUwOTE1XHUwOTQ3XHUwOTM5XHUwOTQwIFx1'@; put 'MDkxNVx1MDk0ZFx1MDkzN1x1MDkyMyIsc3M6IiVkIFx1MDkzOFx1MDk0N1x1MDkxNVx1MDk0N1x1MDkyM1x1MDk0ZFx1MDkyMSIsbToiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzZlx1MDkyOFx1MDk0N1x1MDkxZiIsbW06IiVkIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDk0N1x1MDkxZiIsaDoi'@; put 'XHUwOTBmXHUwOTE1IFx1MDkxOFx1MDkyM1x1MDk0ZFx1MDkxZlx1MDkzZSIsaGg6IiVkIFx1MDkxOFx1MDkyM1x1MDk0ZFx1MDkxZlx1MDkzZSIsZDoiXHUwOTBmXHUwOTE1IFx1MDkyNlx1MDkzZlx1MDkyOCIsZGQ6IiVkIFx1MDkyNlx1MDkzZlx1MDkyOCIsTToiXHUwOTBmXHUwOTE1IFx1'@; put 'MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDkzZSIsTU06IiVkIFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDkzZSIseToiXHUwOTBmXHUwOTE1IFx1MDkyY1x1MDkzMFx1MDk0ZFx1MDkzNyIseXk6IiVkIFx1MDkyY1x1MDkzMFx1MDk0ZFx1MDkzNyJ9LHdlZWs6e2RvdzowLGRveTo2fX0p'@; put 'fShGKDE2Njc2KSl9LDgxNDg0OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PSJqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21laV9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG09Imphbl9mZWJfbXJ0X2Fwcl9tZWlf'@; put 'anVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpLGxlPVsvXmphbi9pLC9eZmViL2ksL15tYWFydHxtcnQuPyQvaSwvXmFwci9pLC9ebWVpJC9pLC9eanVuW2kuXT8kL2ksL15qdWxbaS5dPyQvaSwvXmF1Zy9pLC9ec2VwL2ksL15va3QvaSwvXm5vdi9pLC9eZGVjL2ldLE09'@; put 'L14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcnxqYW5cLj98ZmViXC4/fG1ydFwuP3xhcHJcLj98anVbbmxdXC4/fGF1Z1wuP3xzZXBcLj98b2t0XC4/fG5vdlwuP3xkZWNcLj8pL2k7'@; put 'YWUuZGVmaW5lTG9jYWxlKCJubC1iZSIse21vbnRoczoiamFudWFyaV9mZWJydWFyaV9tYWFydF9hcHJpbF9tZWlfanVuaV9qdWxpX2F1Z3VzdHVzX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OmZ1bmN0aW9uKFIseil7cmV0dXJu'@; put 'IFI/Ly1NTU0tLy50ZXN0KHopP21bUi5tb250aCgpXTp4W1IubW9udGgoKV06eH0sbW9udGhzUmVnZXg6TSxtb250aHNTaG9ydFJlZ2V4Ok0sbW9udGhzU3RyaWN0UmVnZXg6L14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0'@; put 'b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGphblwuP3xmZWJcLj98bXJ0XC4/fGFwclwuP3xtZWl8anVbbmxdXC4/fGF1Z1wuP3xzZXBcLj98b2t0XC4/fG5vdlwuP3xkZWNcLj8pL2ksbW9udGhzUGFyc2U6bGUsbG9uZ01vbnRoc1BhcnNlOmxl'@; put 'LHNob3J0TW9udGhzUGFyc2U6bGUsd2Vla2RheXM6InpvbmRhZ19tYWFuZGFnX2RpbnNkYWdfd29lbnNkYWdfZG9uZGVyZGFnX3ZyaWpkYWdfemF0ZXJkYWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiem8uX21hLl9kaS5fd28uX2RvLl92ci5femEuIi5zcGxpdCgiXyIpLHdlZWtkYXlz'@; put 'TWluOiJ6b19tYV9kaV93b19kb192cl96YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJk'@; put 'ZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilt2YW5kYWFnIG9tXSBMVCIsbmV4dERheToiW21vcmdlbiBvbV0gTFQiLG5leHRXZWVrOiJkZGRkIFtvbV0gTFQiLGxhc3REYXk6IltnaXN0ZXJlbiBvbV0gTFQiLGxhc3RXZWVrOiJbYWZnZWxvcGVuXSBkZGRkIFtv'@; put 'bV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im92ZXIgJXMiLHBhc3Q6IiVzIGdlbGVkZW4iLHM6ImVlbiBwYWFyIHNlY29uZGVuIixzczoiJWQgc2Vjb25kZW4iLG06Ilx4ZTlceGU5biBtaW51dXQiLG1tOiIlZCBtaW51dGVuIixoOiJceGU5XHhlOW4gdXVyIixo'@; put 'aDoiJWQgdXVyIixkOiJceGU5XHhlOW4gZGFnIixkZDoiJWQgZGFnZW4iLE06Ilx4ZTlceGU5biBtYWFuZCIsTU06IiVkIG1hYW5kZW4iLHk6Ilx4ZTlceGU5biBqYWFyIix5eToiJWQgamFhciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5j'@; put 'dGlvbihSKXtyZXR1cm4gUisoMT09PVJ8fDg9PT1SfHxSPj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNTE2Njc6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9Imphbi5fZmViLl9tcnQuX2Fwci5fbWVp'@; put 'X2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbT0iamFuX2ZlYl9tcnRfYXByX21laV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksbGU9Wy9eamFuL2ksL15mZWIvaSwvXm1hYXJ0fG1ydC4/JC9pLC9eYXByL2ksL15tZWkkL2ks'@; put 'L15qdW5baS5dPyQvaSwvXmp1bFtpLl0/JC9pLC9eYXVnL2ksL15zZXAvaSwvXm9rdC9pLC9ebm92L2ksL15kZWMvaV0sTT0vXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyfGphblwu'@; put 'P3xmZWJcLj98bXJ0XC4/fGFwclwuP3xqdVtubF1cLj98YXVnXC4/fHNlcFwuP3xva3RcLj98bm92XC4/fGRlY1wuPykvaTthZS5kZWZpbmVMb2NhbGUoIm5sIix7bW9udGhzOiJqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29r'@; put 'dG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oUix6KXtyZXR1cm4gUj8vLU1NTS0vLnRlc3Qoeik/bVtSLm1vbnRoKCldOnhbUi5tb250aCgpXTp4fSxtb250aHNSZWdleDpNLG1vbnRoc1Nob3J0UmVnZXg6TSxtb250aHNTdHJpY3RSZWdl'@; put 'eDovXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14oamFuXC4/fGZlYlwuP3xtcnRcLj98YXByXC4/fG1laXxqdVtubF1cLj98YXVn'@; put 'XC4/fHNlcFwuP3xva3RcLj98bm92XC4/fGRlY1wuPykvaSxtb250aHNQYXJzZTpsZSxsb25nTW9udGhzUGFyc2U6bGUsc2hvcnRNb250aHNQYXJzZTpsZSx3ZWVrZGF5czoiem9uZGFnX21hYW5kYWdfZGluc2RhZ193b2Vuc2RhZ19kb25kZXJkYWdfdnJpamRhZ196YXRlcmRhZyIuc3BsaXQo'@; put 'Il8iKSx3ZWVrZGF5c1Nob3J0OiJ6by5fbWEuX2RpLl93by5fZG8uX3ZyLl96YS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InpvX21hX2RpX3dvX2RvX3ZyX3phIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1t'@; put 'OnNzIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW3ZhbmRhYWcgb21dIExUIixuZXh0RGF5OiJbbW9yZ2VuIG9tXSBMVCIsbmV4dFdlZWs6ImRk'@; put 'ZGQgW29tXSBMVCIsbGFzdERheToiW2dpc3RlcmVuIG9tXSBMVCIsbGFzdFdlZWs6IlthZmdlbG9wZW5dIGRkZGQgW29tXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib3ZlciAlcyIscGFzdDoiJXMgZ2VsZWRlbiIsczoiZWVuIHBhYXIgc2Vjb25kZW4iLHNzOiIl'@; put 'ZCBzZWNvbmRlbiIsbToiXHhlOVx4ZTluIG1pbnV1dCIsbW06IiVkIG1pbnV0ZW4iLGg6Ilx4ZTlceGU5biB1dXIiLGhoOiIlZCB1dXIiLGQ6Ilx4ZTlceGU5biBkYWciLGRkOiIlZCBkYWdlbiIsdzoiXHhlOVx4ZTluIHdlZWsiLHd3OiIlZCB3ZWtlbiIsTToiXHhlOVx4ZTluIG1hYW5kIixN'@; put 'TToiJWQgbWFhbmRlbiIseToiXHhlOVx4ZTluIGphYXIiLHl5OiIlZCBqYWFyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdGV8ZGUpLyxvcmRpbmFsOmZ1bmN0aW9uKFIpe3JldHVybiBSKygxPT09Unx8OD09PVJ8fFI+PTIwPyJzdGUiOiJkZSIpfSx3ZWVrOntkb3c6MSxk'@; put 'b3k6NH19KX0oRigxNjY3NikpfSwxNzI2MjpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoIm5uIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVy'@; put 'X25vdmVtYmVyX2Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyc19hcHIuX21haV9qdW5pX2p1bGlfYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6InN1bmRhZ19tXHhlNW5kYWdfdHlz'@; put 'ZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sYXVyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InN1Ll9tXHhlNS5fdHkuX29uLl90by5fZnIuX2xhdS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InN1X21ceGU1X3R5X29uX3RvX2ZyX2xhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFy'@; put 'c2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBba2wuXSBIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbSJ9LGNhbGVuZGFyOntz'@; put 'YW1lRGF5OiJbSSBkYWcga2xva2thXSBMVCIsbmV4dERheToiW0kgbW9yZ29uIGtsb2trYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbG9ra2FdIExUIixsYXN0RGF5OiJbSSBnXHhlNXIga2xva2thXSBMVCIsbGFzdFdlZWs6IltGXHhmOHJlZ1x4ZTVhbmRlXSBkZGRkIFtrbG9ra2FdIExUIixz'@; put 'YW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvbSAlcyIscGFzdDoiJXMgc2lkYW4iLHM6Im5va3JlIHNla3VuZCIsc3M6IiVkIHNla3VuZCIsbToiZWl0IG1pbnV0dCIsbW06IiVkIG1pbnV0dCIsaDoiZWluIHRpbWUiLGhoOiIlZCB0aW1hciIsZDoiZWluIGRhZyIsZGQ6IiVk'@; put 'IGRhZ2FyIix3OiJlaSB2ZWtlIix3dzoiJWQgdmVrZXIiLE06ImVpbiBtXHhlNW5hZCIsTU06IiVkIG1ceGU1bmFkZXIiLHk6ImVpdCBceGU1ciIseXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0'@; put 'fX0pfShGKDE2Njc2KSl9LDE5Njc5OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgib2MtbG5jIix7bW9udGhzOntzdGFuZGFsb25lOiJnZW5pXHhlOHJfZmVicmlceGU4cl9tYXJceGU3X2FicmlsX21haV9qdW5oX2p1bGhldF9h'@; put 'Z29zdF9zZXRlbWJyZV9vY3RceGYyYnJlX25vdmVtYnJlX2RlY2VtYnJlIi5zcGxpdCgiXyIpLGZvcm1hdDoiZGUgZ2VuaVx4ZThyX2RlIGZlYnJpXHhlOHJfZGUgbWFyXHhlN19kJ2FicmlsX2RlIG1haV9kZSBqdW5oX2RlIGp1bGhldF9kJ2Fnb3N0X2RlIHNldGVtYnJlX2Qnb2N0XHhmMmJy'@; put 'ZV9kZSBub3ZlbWJyZV9kZSBkZWNlbWJyZSIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovRFtvRF0/KFxzKStNTU1NL30sbW9udGhzU2hvcnQ6Imdlbi5fZmVici5fbWFyXHhlN19hYnIuX21haV9qdW5oX2p1bGguX2Fnby5fc2V0Ll9vY3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJz'@; put 'ZUV4YWN0OiEwLHdlZWtkYXlzOiJkaW1lbmdlX2RpbHVuc19kaW1hcnNfZGltXHhlOGNyZXNfZGlqXHhmMnVzX2RpdmVuZHJlc19kaXNzYWJ0ZSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkZy5fZGwuX2RtLl9kYy5fZGouX2R2Ll9kcy4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRn'@; put 'X2RsX2RtX2RjX2RqX2R2X2RzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBbZGVdIFlZWVkiLGxsOiJEIE1NTSBZWVlZIixMTEw6IkQgTU1NTSBbZGVdIFlZ'@; put 'WVkgW2FdIEg6bW0iLGxsbDoiRCBNTU0gWVlZWSwgSDptbSIsTExMTDoiZGRkZCBEIE1NTU0gW2RlXSBZWVlZIFthXSBIOm1tIixsbGxsOiJkZGQgRCBNTU0gWVlZWSwgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbdVx4ZThpIGFdIExUIixuZXh0RGF5OiJbZGVtYW4gYV0gTFQiLG5leHRX'@; put 'ZWVrOiJkZGRkIFthXSBMVCIsbGFzdERheToiW2lceGU4ciBhXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3Bhc3NhdCBhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZCdhcXVceGVkICVzIixwYXN0OiJmYSAlcyIsczoidW5hcyBzZWdvbmRhcyIsc3M6IiVkIHNlZ29u'@; put 'ZGFzIixtOiJ1bmEgbWludXRhIixtbToiJWQgbWludXRhcyIsaDoidW5hIG9yYSIsaGg6IiVkIG9yYXMiLGQ6InVuIGpvcm4iLGRkOiIlZCBqb3JucyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwy'@; put 'fShyfG58dHxceGU4fGEpLyxvcmRpbmFsOmZ1bmN0aW9uKG0sbGUpe3ZhciBNPTE9PT1tPyJyIjoyPT09bT8ibiI6Mz09PW0/InIiOjQ9PT1tPyJ0IjoiXHhlOCI7cmV0dXJuKCJ3Ij09PWxlfHwiVyI9PT1sZSkmJihNPSJhIiksbStNfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3Nikp'@; put 'fSw5NjgzMDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD17MToiXHUwYTY3IiwyOiJcdTBhNjgiLDM6Ilx1MGE2OSIsNDoiXHUwYTZhIiw1OiJcdTBhNmIiLDY6Ilx1MGE2YyIsNzoiXHUwYTZkIiw4OiJcdTBhNmUiLDk6Ilx1MGE2ZiIsMDoiXHUw'@; put 'YTY2In0sbT17Ilx1MGE2NyI6IjEiLCJcdTBhNjgiOiIyIiwiXHUwYTY5IjoiMyIsIlx1MGE2YSI6IjQiLCJcdTBhNmIiOiI1IiwiXHUwYTZjIjoiNiIsIlx1MGE2ZCI6IjciLCJcdTBhNmUiOiI4IiwiXHUwYTZmIjoiOSIsIlx1MGE2NiI6IjAifTthZS5kZWZpbmVMb2NhbGUoInBhLWluIix7'@; put 'bW9udGhzOiJcdTBhMWNcdTBhMjhcdTBhMzVcdTBhMzBcdTBhNDBfXHUwYTJiXHUwYTNjXHUwYTMwXHUwYTM1XHUwYTMwXHUwYTQwX1x1MGEyZVx1MGEzZVx1MGEzMFx1MGExYV9cdTBhMDVcdTBhMmFcdTBhNGRcdTBhMzBcdTBhNDhcdTBhMzJfXHUwYTJlXHUwYTA4X1x1MGExY1x1MGE0Mlx1'@; put 'MGEyOF9cdTBhMWNcdTBhNDFcdTBhMzJcdTBhM2VcdTBhMDhfXHUwYTA1XHUwYTE3XHUwYTM4XHUwYTI0X1x1MGEzOFx1MGEyNFx1MGE3MFx1MGEyY1x1MGEzMF9cdTBhMDVcdTBhMTVcdTBhMjRcdTBhNDJcdTBhMmNcdTBhMzBfXHUwYTI4XHUwYTM1XHUwYTcwXHUwYTJjXHUwYTMwX1x1MGEy'@; put 'Nlx1MGEzOFx1MGE3MFx1MGEyY1x1MGEzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwYTFjXHUwYTI4XHUwYTM1XHUwYTMwXHUwYTQwX1x1MGEyYlx1MGEzY1x1MGEzMFx1MGEzNVx1MGEzMFx1MGE0MF9cdTBhMmVcdTBhM2VcdTBhMzBcdTBhMWFfXHUwYTA1XHUwYTJhXHUwYTRkXHUw'@; put 'YTMwXHUwYTQ4XHUwYTMyX1x1MGEyZVx1MGEwOF9cdTBhMWNcdTBhNDJcdTBhMjhfXHUwYTFjXHUwYTQxXHUwYTMyXHUwYTNlXHUwYTA4X1x1MGEwNVx1MGExN1x1MGEzOFx1MGEyNF9cdTBhMzhcdTBhMjRcdTBhNzBcdTBhMmNcdTBhMzBfXHUwYTA1XHUwYTE1XHUwYTI0XHUwYTQyXHUwYTJj'@; put 'XHUwYTMwX1x1MGEyOFx1MGEzNVx1MGE3MFx1MGEyY1x1MGEzMF9cdTBhMjZcdTBhMzhcdTBhNzBcdTBhMmNcdTBhMzAiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MGExMFx1MGEyNFx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMzhcdTBhNGJcdTBhMmVcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTJl'@; put 'XHUwYTcwXHUwYTE3XHUwYTMyXHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEyY1x1MGE0MVx1MGEyN1x1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMzVcdTBhNDBcdTBhMzBcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTQxXHUwYTcxXHUwYTE1XHUwYTMwXHUwYTM1XHUwYTNlXHUwYTMw'@; put 'X1x1MGEzOFx1MGEzY1x1MGEyOFx1MGE0MFx1MGExYVx1MGEzMFx1MGEzNVx1MGEzZVx1MGEzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBhMTBcdTBhMjRfXHUwYTM4XHUwYTRiXHUwYTJlX1x1MGEyZVx1MGE3MFx1MGExN1x1MGEzMl9cdTBhMmNcdTBhNDFcdTBhMjdfXHUwYTM1'@; put 'XHUwYTQwXHUwYTMwX1x1MGEzOFx1MGEzY1x1MGE0MVx1MGExNVx1MGEzMF9cdTBhMzhcdTBhM2NcdTBhMjhcdTBhNDAiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGExMFx1MGEyNF9cdTBhMzhcdTBhNGJcdTBhMmVfXHUwYTJlXHUwYTcwXHUwYTE3XHUwYTMyX1x1MGEyY1x1MGE0MVx1'@; put 'MGEyN19cdTBhMzVcdTBhNDBcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTQxXHUwYTE1XHUwYTMwX1x1MGEzOFx1MGEzY1x1MGEyOFx1MGE0MCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTBhMzVcdTBhMWNcdTBhNDciLExUUzoiQSBoOm1tOnNzIFx1MGEzNVx1MGEx'@; put 'Y1x1MGE0NyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwYTM1XHUwYTFjXHUwYTQ3IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MGEzNVx1MGExY1x1MGE0NyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwYTA1'@; put 'XHUwYTFjXSBMVCIsbmV4dERheToiW1x1MGExNVx1MGEzMl0gTFQiLG5leHRXZWVrOiJbXHUwYTA1XHUwYTE3XHUwYTMyXHUwYTNlXSBkZGRkLCBMVCIsbGFzdERheToiW1x1MGExNVx1MGEzMl0gTFQiLGxhc3RXZWVrOiJbXHUwYTJhXHUwYTNmXHUwYTFiXHUwYTMyXHUwYTQ3XSBkZGRkLCBM'@; put 'VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYTM1XHUwYTNmXHUwYTcxXHUwYTFhIixwYXN0OiIlcyBcdTBhMmFcdTBhM2ZcdTBhMWJcdTBhMzJcdTBhNDciLHM6Ilx1MGExNVx1MGE0MVx1MGExZCBcdTBhMzhcdTBhMTVcdTBhM2ZcdTBhNzBcdTBhMWYiLHNz'@; put 'OiIlZCBcdTBhMzhcdTBhMTVcdTBhM2ZcdTBhNzBcdTBhMWYiLG06Ilx1MGEwN1x1MGExNSBcdTBhMmVcdTBhM2ZcdTBhNzBcdTBhMWYiLG1tOiIlZCBcdTBhMmVcdTBhM2ZcdTBhNzBcdTBhMWYiLGg6Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBhMThcdTBhNzBcdTBhMWZcdTBhM2UiLGhoOiIl'@; put 'ZCBcdTBhMThcdTBhNzBcdTBhMWZcdTBhNDciLGQ6Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBhMjZcdTBhM2ZcdTBhMjgiLGRkOiIlZCBcdTBhMjZcdTBhM2ZcdTBhMjgiLE06Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBhMmVcdTBhMzlcdTBhNDBcdTBhMjhcdTBhM2UiLE1NOiIlZCBcdTBhMmVc'@; put 'dTBhMzlcdTBhNDBcdTBhMjhcdTBhNDciLHk6Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBhMzhcdTBhM2VcdTBhMzIiLHl5OiIlZCBcdTBhMzhcdTBhM2VcdTBhMzIifSxwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9bXHUwYTY3XHUwYTY4XHUwYTY5XHUwYTZhXHUwYTZi'@; put 'XHUwYTZjXHUwYTZkXHUwYTZlXHUwYTZmXHUwYTY2XS9nLGZ1bmN0aW9uKE8pe3JldHVybiBtW09dfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBhMzBcdTBhM2VcdTBh'@; put 'MjR8XHUwYTM4XHUwYTM1XHUwYTQ3XHUwYTMwfFx1MGEyNlx1MGE0MVx1MGEyYVx1MGEzOVx1MGEzZlx1MGEzMHxcdTBhMzhcdTBhM2NcdTBhM2VcdTBhMmUvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihNLE8pe3JldHVybiAxMj09PU0mJihNPTApLCJcdTBhMzBcdTBhM2VcdTBhMjQiPT09Tz9N'@; put 'PDQ/TTpNKzEyOiJcdTBhMzhcdTBhMzVcdTBhNDdcdTBhMzAiPT09Tz9NOiJcdTBhMjZcdTBhNDFcdTBhMmFcdTBhMzlcdTBhM2ZcdTBhMzAiPT09Tz9NPj0xMD9NOk0rMTI6Ilx1MGEzOFx1MGEzY1x1MGEzZVx1MGEyZSI9PT1PP00rMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihNLE8s'@; put 'Uil7cmV0dXJuIE08ND8iXHUwYTMwXHUwYTNlXHUwYTI0IjpNPDEwPyJcdTBhMzhcdTBhMzVcdTBhNDdcdTBhMzAiOk08MTc/Ilx1MGEyNlx1MGE0MVx1MGEyYVx1MGEzOVx1MGEzZlx1MGEzMCI6TTwyMD8iXHUwYTM4XHUwYTNjXHUwYTNlXHUwYTJlIjoiXHUwYTMwXHUwYTNlXHUwYTI0In0s'@; put 'd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEYoMTY2NzYpKX0sOTM2MTY6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9InN0eWN6ZVx1MDE0NF9sdXR5X21hcnplY19rd2llY2llXHUwMTQ0X21hal9jemVyd2llY19saXBpZWNfc2llcnBpZVx1MDE0NF93'@; put 'cnplc2llXHUwMTQ0X3BhXHUwMTdhZHppZXJuaWtfbGlzdG9wYWRfZ3J1ZHppZVx1MDE0NCIuc3BsaXQoIl8iKSxtPSJzdHljem5pYV9sdXRlZ29fbWFyY2Ffa3dpZXRuaWFfbWFqYV9jemVyd2NhX2xpcGNhX3NpZXJwbmlhX3dyemVcdTAxNWJuaWFfcGFcdTAxN2Fkemllcm5pa2FfbGlzdG9w'@; put 'YWRhX2dydWRuaWEiLnNwbGl0KCJfIiksbGU9Wy9ec3R5L2ksL15sdXQvaSwvXm1hci9pLC9ea3dpL2ksL15tYWovaSwvXmN6ZS9pLC9ebGlwL2ksL15zaWUvaSwvXndyei9pLC9ecGFcdTAxN2EvaSwvXmxpcy9pLC9eZ3J1L2ldO2Z1bmN0aW9uIE0oeil7cmV0dXJuIHolMTA8NSYmeiUxMD4x'@; put 'JiZ+fih6LzEwKSUxMCE9MX1mdW5jdGlvbiBPKHosSyxJKXt2YXIgaz16KyIgIjtzd2l0Y2goSSl7Y2FzZSJzcyI6cmV0dXJuIGsrKE0oeik/InNla3VuZHkiOiJzZWt1bmQiKTtjYXNlIm0iOnJldHVybiBLPyJtaW51dGEiOiJtaW51dFx1MDExOSI7Y2FzZSJtbSI6cmV0dXJuIGsrKE0oeik/'@; put 'Im1pbnV0eSI6Im1pbnV0Iik7Y2FzZSJoIjpyZXR1cm4gSz8iZ29kemluYSI6ImdvZHppblx1MDExOSI7Y2FzZSJoaCI6cmV0dXJuIGsrKE0oeik/ImdvZHppbnkiOiJnb2R6aW4iKTtjYXNlInd3IjpyZXR1cm4gaysoTSh6KT8idHlnb2RuaWUiOiJ0eWdvZG5pIik7Y2FzZSJNTSI6cmV0dXJu'@; put 'IGsrKE0oeik/Im1pZXNpXHUwMTA1Y2UiOiJtaWVzaVx1MDExOWN5Iik7Y2FzZSJ5eSI6cmV0dXJuIGsrKE0oeik/ImxhdGEiOiJsYXQiKX19YWUuZGVmaW5lTG9jYWxlKCJwbCIse21vbnRoczpmdW5jdGlvbih6LEspe3JldHVybiB6Py9EIE1NTU0vLnRlc3QoSyk/bVt6Lm1vbnRoKCldOnhb'@; put 'ei5tb250aCgpXTp4fSxtb250aHNTaG9ydDoic3R5X2x1dF9tYXJfa3dpX21hal9jemVfbGlwX3NpZV93cnpfcGFcdTAxN2FfbGlzX2dydSIuc3BsaXQoIl8iKSxtb250aHNQYXJzZTpsZSxsb25nTW9udGhzUGFyc2U6bGUsc2hvcnRNb250aHNQYXJzZTpsZSx3ZWVrZGF5czoibmllZHppZWxh'@; put 'X3BvbmllZHppYVx1MDE0MmVrX3d0b3Jla19cdTAxNWJyb2RhX2N6d2FydGVrX3BpXHUwMTA1dGVrX3NvYm90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZHpfcG9uX3d0X1x1MDE1YnJfY3p3X3B0X3NvYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTmRfUG5fV3RfXHUwMTVhcl9D'@; put 'el9QdF9TbyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVE'@; put 'YXk6IltEemlcdTAxNWIgb10gTFQiLG5leHREYXk6IltKdXRybyBvXSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbVyBuaWVkemllbFx1MDExOSBvXSBMVCI7Y2FzZSAyOnJldHVybiJbV2Ugd3RvcmVrIG9dIExUIjtjYXNlIDM6cmV0'@; put 'dXJuIltXIFx1MDE1YnJvZFx1MDExOSBvXSBMVCI7Y2FzZSA2OnJldHVybiJbVyBzb2JvdFx1MDExOSBvXSBMVCI7ZGVmYXVsdDpyZXR1cm4iW1ddIGRkZGQgW29dIExUIn19LGxhc3REYXk6IltXY3pvcmFqIG9dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtj'@; put 'YXNlIDA6cmV0dXJuIltXIHplc3pcdTAxNDJcdTAxMDUgbmllZHppZWxcdTAxMTkgb10gTFQiO2Nhc2UgMzpyZXR1cm4iW1cgemVzelx1MDE0Mlx1MDEwNSBcdTAxNWJyb2RcdTAxMTkgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW1cgemVzelx1MDE0Mlx1MDEwNSBzb2JvdFx1MDExOSBvXSBMVCI7'@; put 'ZGVmYXVsdDpyZXR1cm4iW1cgemVzelx1MDE0MnldIGRkZGQgW29dIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiIlcyB0ZW11IixzOiJraWxrYSBzZWt1bmQiLHNzOk8sbTpPLG1tOk8saDpPLGhoOk8sZDoiMSBkemllXHUwMTQ0IixkZDoi'@; put 'JWQgZG5pIix3OiJ0eWR6aWVcdTAxNDQiLHd3Ok8sTToibWllc2lcdTAxMDVjIixNTTpPLHk6InJvayIseXk6T30sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDMyNzUxOmZ1bmN0aW9uKGF0'@; put 'LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgicHQtYnIiLHttb250aHM6ImphbmVpcm9fZmV2ZXJlaXJvX21hclx4ZTdvX2FicmlsX21haW9fanVuaG9fanVsaG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGV6ZW1icm8iLnNwbGl0'@; put 'KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZXZfbWFyX2Ficl9tYWlfanVuX2p1bF9hZ29fc2V0X291dF9ub3ZfZGV6Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJkb21pbmdvX3NlZ3VuZGEtZmVpcmFfdGVyXHhlN2EtZmVpcmFfcXVhcnRhLWZlaXJhX3F1aW50YS1mZWlyYV9zZXh0YS1mZWlyYV9z'@; put 'XHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tX3NlZ190ZXJfcXVhX3F1aV9zZXhfc1x4ZTFiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb18yXHhhYV8zXHhhYV80XHhhYV81XHhhYV82XHhhYV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAs'@; put 'bG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgW1x4ZTBzXSBISDptbSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIFtceGUw'@; put 'c10gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hvamUgXHhlMHNdIExUIixuZXh0RGF5OiJbQW1hbmhceGUzIFx4ZTBzXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBzXSBMVCIsbGFzdERheToiW09udGVtIFx4ZTBzXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRo'@; put 'aXMuZGF5KCl8fDY9PT10aGlzLmRheSgpPyJbXHhkYWx0aW1vXSBkZGRkIFtceGUwc10gTFQiOiJbXHhkYWx0aW1hXSBkZGRkIFtceGUwc10gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbSAlcyIscGFzdDoiaFx4ZTEgJXMiLHM6InBvdWNvcyBzZWd1bmRvcyIs'@; put 'c3M6IiVkIHNlZ3VuZG9zIixtOiJ1bSBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bWEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1bSBkaWEiLGRkOiIlZCBkaWFzIixNOiJ1bSBtXHhlYXMiLE1NOiIlZCBtZXNlcyIseToidW0gYW5vIix5eToiJWQgYW5vcyJ9LGRheU9mTW9udGhPcmRp'@; put 'bmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLGludmFsaWREYXRlOiJEYXRhIGludlx4ZTFsaWRhIn0pfShGKDE2Njc2KSl9LDU1MTM4OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgicHQiLHttb250aHM6'@; put 'ImphbmVpcm9fZmV2ZXJlaXJvX21hclx4ZTdvX2FicmlsX21haW9fanVuaG9fanVsaG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGV6ZW1icm8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZXZfbWFyX2Ficl9tYWlfanVuX2p1bF9hZ29fc2V0X291dF9ub3ZfZGV6'@; put 'Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJEb21pbmdvX1NlZ3VuZGEtZmVpcmFfVGVyXHhlN2EtZmVpcmFfUXVhcnRhLWZlaXJhX1F1aW50YS1mZWlyYV9TZXh0YS1mZWlyYV9TXHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiRG9tX1NlZ19UZXJfUXVhX1F1aV9TZXhfU1x4ZTFi'@; put 'Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJEb18yXHhhYV8zXHhhYV80XHhhYV81XHhhYV82XHhhYV9TXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2Rl'@; put 'XSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSG9qZSBceGUwc10gTFQiLG5leHREYXk6IltBbWFuaFx4ZTMgXHhlMHNdIExUIixuZXh0'@; put 'V2VlazoiZGRkZCBbXHhlMHNdIExUIixsYXN0RGF5OiJbT250ZW0gXHhlMHNdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5kYXkoKXx8Nj09PXRoaXMuZGF5KCk/IltceGRhbHRpbW9dIGRkZGQgW1x4ZTBzXSBMVCI6IltceGRhbHRpbWFdIGRkZGQgW1x4ZTBzXSBM'@; put 'VCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVtICVzIixwYXN0OiJoXHhlMSAlcyIsczoic2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIsbToidW0gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW1hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW0gZGlhIixkZDoi'@; put 'JWQgZGlhcyIsdzoidW1hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVtIG1ceGVhcyIsTU06IiVkIG1lc2VzIix5OiJ1bSBhbm8iLHl5OiIlZCBhbm9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9'@; put 'fSl9KEYoMTY2NzYpKX0sMTc5Njg6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geChsZSxNLE8pe3ZhciB6PSIgIjtyZXR1cm4obGUlMTAwPj0yMHx8bGU+PTEwMCYmbGUlMTAwPT0wKSYmKHo9IiBkZSAiKSxsZSt6K3tzczoic2VjdW5kZSIs'@; put 'bW06Im1pbnV0ZSIsaGg6Im9yZSIsZGQ6InppbGUiLHd3OiJzXHUwMTAzcHRcdTAxMDNtXHhlMm5pIixNTToibHVuaSIseXk6ImFuaSJ9W09dfWFlLmRlZmluZUxvY2FsZSgicm8iLHttb250aHM6ImlhbnVhcmllX2ZlYnJ1YXJpZV9tYXJ0aWVfYXByaWxpZV9tYWlfaXVuaWVfaXVsaWVfYXVn'@; put 'dXN0X3NlcHRlbWJyaWVfb2N0b21icmllX25vaWVtYnJpZV9kZWNlbWJyaWUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imlhbi5fZmViLl9tYXJ0Ll9hcHIuX21haV9pdW4uX2l1bC5fYXVnLl9zZXB0Ll9vY3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdl'@; put 'ZWtkYXlzOiJkdW1pbmljXHUwMTAzX2x1bmlfbWFyXHUwMjFiaV9taWVyY3VyaV9qb2lfdmluZXJpX3NceGUybWJcdTAxMDN0XHUwMTAzIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkR1bV9MdW5fTWFyX01pZV9Kb2lfVmluX1NceGUybSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiRHVf'@; put 'THVfTWFfTWlfSm9fVmlfU1x4ZTIiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5k'@; put 'YXI6e3NhbWVEYXk6IlthemkgbGFdIExUIixuZXh0RGF5OiJbbVx4ZTJpbmUgbGFdIExUIixuZXh0V2VlazoiZGRkZCBbbGFdIExUIixsYXN0RGF5OiJbaWVyaSBsYV0gTFQiLGxhc3RXZWVrOiJbZm9zdGFdIGRkZGQgW2xhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVy'@; put 'ZToicGVzdGUgJXMiLHBhc3Q6IiVzIFx4ZWVuIHVybVx1MDEwMyIsczoiY1x4ZTJ0ZXZhIHNlY3VuZGUiLHNzOngsbToidW4gbWludXQiLG1tOngsaDoibyBvclx1MDEwMyIsaGg6eCxkOiJvIHppIixkZDp4LHc6Im8gc1x1MDEwM3B0XHUwMTAzbVx4ZTJuXHUwMTAzIix3dzp4LE06Im8gbHVu'@; put 'XHUwMTAzIixNTTp4LHk6InVuIGFuIix5eTp4fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oRigxNjY3NikpfSw4MTgyODpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKE8sUix6KXtyZXR1cm4ibSI9PT16P1I/Ilx1MDQzY1x1MDQzOFx1MDQz'@; put 'ZFx1MDQ0M1x1MDQ0Mlx1MDQzMCI6Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0MyI6TysiICIrZnVuY3Rpb24geChPLFIpe3ZhciB6PU8uc3BsaXQoIl8iKTtyZXR1cm4gUiUxMD09MSYmUiUxMDAhPTExP3pbMF06UiUxMD49MiYmUiUxMDw9NCYmKFIlMTAwPDEwfHxSJTEw'@; put 'MD49MjApP3pbMV06elsyXX0oe3NzOlI/Ilx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzMF9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NGJfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IjoiXHUwNDQxXHUwNDM1XHUw'@; put 'NDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDQzX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Yl9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG1tOlI/Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMF9cdTA0M2NcdTA0Mzhc'@; put 'dTA0M2RcdTA0NDNcdTA0NDJcdTA0NGJfXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIjoiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDQzX1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0Yl9cdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLGho'@; put 'OiJcdTA0NDdcdTA0MzBcdTA0NDFfXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDMwX1x1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMiIsZGQ6Ilx1MDQzNFx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzRcdTA0M2RcdTA0NGZfXHUwNDM0XHUwNDNkXHUwNDM1XHUwNDM5Iix3dzoiXHUwNDNkXHUw'@; put 'NDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDRmX1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzOF9cdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGMiLE1NOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZfXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUw'@; put 'NDQ2XHUwNDMwX1x1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQzNVx1MDQzMiIseXk6Ilx1MDQzM1x1MDQzZVx1MDQzNF9cdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzBfXHUwNDNiXHUwNDM1XHUwNDQyIn1bel0sK08pfXZhciBsZT1bL15cdTA0NGZcdTA0M2RcdTA0MzIvaSwvXlx1'@; put 'MDQ0NFx1MDQzNVx1MDQzMi9pLC9eXHUwNDNjXHUwNDMwXHUwNDQwL2ksL15cdTA0MzBcdTA0M2ZcdTA0NDAvaSwvXlx1MDQzY1x1MDQzMFtcdTA0MzlcdTA0NGZdL2ksL15cdTA0MzhcdTA0NGVcdTA0M2QvaSwvXlx1MDQzOFx1MDQ0ZVx1MDQzYi9pLC9eXHUwNDMwXHUwNDMyXHUwNDMzL2ks'@; put 'L15cdTA0NDFcdTA0MzVcdTA0M2QvaSwvXlx1MDQzZVx1MDQzYVx1MDQ0Mi9pLC9eXHUwNDNkXHUwNDNlXHUwNDRmL2ksL15cdTA0MzRcdTA0MzVcdTA0M2EvaV07YWUuZGVmaW5lTG9jYWxlKCJydSIse21vbnRoczp7Zm9ybWF0OiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0'@; put 'NGZfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDRmX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMF9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0NGZfXHUwNDNjXHUwNDMwXHUwNDRmX1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Zl9cdTA0Mzhc'@; put 'dTA0NGVcdTA0M2JcdTA0NGZfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Zl9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGZfXHUwNDNkXHUwNDNl'@; put 'XHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRmX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQ0ZiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGNfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNi'@; put 'XHUwNDRjX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUw'@; put 'NDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1'@; put 'MDQzMVx1MDQ0MFx1MDQ0YyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6e2Zvcm1hdDoiXHUwNDRmXHUwNDNkXHUwNDMyLl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ0MC5fXHUwNDMwXHUwNDNmXHUwNDQwLl9cdTA0M2NcdTA0MzBcdTA0NGZfXHUwNDM4XHUw'@; put 'NDRlXHUwNDNkXHUwNDRmX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Zl9cdTA0MzBcdTA0MzJcdTA0MzMuX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mi5fXHUwNDNlXHUwNDNhXHUwNDQyLl9cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzEuX1x1MDQzNFx1MDQzNVx1MDQzYS4iLnNwbGl0KCJfIiks'@; put 'c3RhbmRhbG9uZToiXHUwNDRmXHUwNDNkXHUwNDMyLl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RcdTA0NGNfXHUwNDM4XHUwNDRlXHUwNDNi'@; put 'XHUwNDRjX1x1MDQzMFx1MDQzMlx1MDQzMy5fXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyLl9cdTA0M2VcdTA0M2FcdTA0NDIuX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMS5fXHUwNDM0XHUwNDM1XHUwNDNhLiIuc3BsaXQoIl8iKX0sd2Vla2RheXM6e3N0YW5kYWxvbmU6Ilx1MDQzMlx1MDQz'@; put 'ZVx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzNV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNh'@; put 'X1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDMwX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3Bs'@; put 'aXQoIl8iKSxmb3JtYXQ6Ilx1MDQzMlx1MDQzZVx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzNV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUw'@; put 'NDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M19cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDQzX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1'@; put 'MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0MyIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovXFsgP1tcdTA0MTJcdTA0MzJdID8oPzpcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0NDNcdTA0NGV8XHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRl'@; put 'fFx1MDQ0ZFx1MDQ0Mlx1MDQ0Myk/ID9dID9kZGRkL30sd2Vla2RheXNTaG9ydDoiXHUwNDMyXHUwNDQxX1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJc'@; put 'dTA0MzJcdTA0NDFfXHUwNDNmXHUwNDNkX1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksbW9udGhzUGFyc2U6bGUsbG9uZ01vbnRoc1BhcnNlOmxlLHNob3J0TW9udGhzUGFyc2U6bGUsbW9udGhzUmVn'@; put 'ZXg6L14oXHUwNDRmXHUwNDNkXHUwNDMyXHUwNDMwXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDRmXHUwNDNkXHUwNDMyXC4/fFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MD9cLj98XHUwNDNjXHUwNDMw'@; put 'XHUwNDQwXHUwNDQyXHUwNDMwP3xcdTA0M2NcdTA0MzBcdTA0NDBcLj98XHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDMwXHUwNDNmXHUwNDQwXC4/fFx1MDQzY1x1MDQzMFtcdTA0MzlcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0NGNcdTA0'@; put 'NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzZFwuP3xcdTA0MzhcdTA0NGVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzhcdTA0NGVcdTA0M2JcLj98XHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwP3xcdTA0MzBcdTA0MzJcdTA0MzNcLj98XHUwNDQxXHUwNDM1XHUwNDNk'@; put 'XHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyP1wuP3xcdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0M2VcdTA0M2FcdTA0NDJcLj98XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMx'@; put 'XHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxP1wuP3xcdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0MzRcdTA0MzVcdTA0M2FcLj8pL2ksbW9udGhzU2hvcnRSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJc'@; put 'dTA0MzBcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NGZcdTA0M2RcdTA0MzJcLj98XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwP1wuP3xcdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzA/fFx1MDQz'@; put 'Y1x1MDQzMFx1MDQ0MFwuP3xcdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzBcdTA0M2ZcdTA0NDBcLj98XHUwNDNjXHUwNDMwW1x1MDQzOVx1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNkW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNkXC4/'@; put 'fFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzYlwuP3xcdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzMlx1MDQzM1wuP3xcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBb'@; put 'XHUwNDRjXHUwNDRmXXxcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDI/XC4/fFx1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzZVx1MDQzYVx1MDQ0MlwuP3xcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0'@; put 'M2RcdTA0M2VcdTA0NGZcdTA0MzE/XC4/fFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzNFx1MDQzNVx1MDQzYVwuPykvaSxtb250aHNTdHJpY3RSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBbXHUwNDRmXHUwNDRj'@; put 'XXxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JbXHUwNDRmXHUwNDRjXXxcdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzY1x1MDQzMFtcdTA0NGZcdTA0MzldfFx1MDQzOFx1'@; put 'MDQ0ZVx1MDQzZFtcdTA0NGZcdTA0NGNdfFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMD98XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDNl'@; put 'XHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y10pL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdl'@; put 'eDovXihcdTA0NGZcdTA0M2RcdTA0MzJcLnxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDA/XC58XHUwNDNjXHUwNDMwXHUwNDQwW1x1MDQ0Mi5dfFx1MDQzMFx1MDQzZlx1MDQ0MFwufFx1MDQzY1x1MDQzMFtcdTA0NGZcdTA0MzldfFx1MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0NGNcdTA0NGYuXXxc'@; put 'dTA0MzhcdTA0NGVcdTA0M2JbXHUwNDRjXHUwNDRmLl18XHUwNDMwXHUwNDMyXHUwNDMzXC58XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyP1wufFx1MDQzZVx1MDQzYVx1MDQ0MlwufFx1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMT9cLnxcdTA0MzRcdTA0MzVcdTA0M2FcLikvaSxsb25nRGF0ZUZv'@; put 'cm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIFx1MDQzMy4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNDMzLiwgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgXHUwNDMzLiwgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUw'@; put 'NDIxXHUwNDM1XHUwNDMzXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDRmLCBcdTA0MzJdIExUIixuZXh0RGF5OiJbXHUwNDE3XHUwNDMwXHUwNDMyXHUwNDQyXHUwNDQwXHUwNDMwLCBcdTA0MzJdIExUIixsYXN0RGF5OiJbXHUwNDEyXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwLCBcdTA0MzJdIExU'@; put 'IixuZXh0V2VlazpmdW5jdGlvbihPKXtpZihPLndlZWsoKT09PXRoaXMud2VlaygpKXJldHVybiAyPT09dGhpcy5kYXkoKT8iW1x1MDQxMlx1MDQzZV0gZGRkZCwgW1x1MDQzMl0gTFQiOiJbXHUwNDEyXSBkZGRkLCBbXHUwNDMyXSBMVCI7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1'@; put 'cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0MzVcdTA0MzVdIGRkZGQsIFtcdTA0MzJdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlc'@; put 'dTA0MzhcdTA0MzldIGRkZGQsIFtcdTA0MzJdIExUIjtjYXNlIDM6Y2FzZSA1OmNhc2UgNjpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGVdIGRkZGQsIFtcdTA0MzJdIExUIn19LGxhc3RXZWVrOmZ1bmN0aW9uKE8p'@; put 'e2lmKE8ud2VlaygpPT09dGhpcy53ZWVrKCkpcmV0dXJuIDI9PT10aGlzLmRheSgpPyJbXHUwNDEyXHUwNDNlXSBkZGRkLCBbXHUwNDMyXSBMVCI6IltcdTA0MTJdIGRkZGQsIFtcdTA0MzJdIExUIjtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbXHUwNDEyIFx1MDQzZlx1MDQ0'@; put 'MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzNV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiJbXHUwNDEyIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0Ylx1MDQzOV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMzpjYXNlIDU6'@; put 'Y2FzZSA2OnJldHVybiJbXHUwNDEyIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0M1x1MDQ0ZV0gZGRkZCwgW1x1MDQzMl0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3ICVzIixwYXN0OiIl'@; put 'cyBcdTA0M2RcdTA0MzBcdTA0MzdcdTA0MzBcdTA0MzQiLHM6Ilx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZSBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOm0sbSxtbTptLGg6Ilx1MDQ0N1x1MDQzMFx1MDQ0MSIs'@; put 'aGg6bSxkOiJcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGMiLGRkOm0sdzoiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDRmIix3dzptLE06Ilx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0NiIsTU06bSx5OiJcdTA0MzNcdTA0M2VcdTA0MzQiLHl5Om19LG1lcmlkaWVtUGFy'@; put 'c2U6L1x1MDQzZFx1MDQzZVx1MDQ0N1x1MDQzOHxcdTA0NDNcdTA0NDJcdTA0NDBcdTA0MzB8XHUwNDM0XHUwNDNkXHUwNDRmfFx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMC9pLGlzUE06ZnVuY3Rpb24oTyl7cmV0dXJuL14oXHUwNDM0XHUwNDNkXHUwNDRmfFx1MDQzMlx1'@; put 'MDQzNVx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMCkkLy50ZXN0KE8pfSxtZXJpZGllbTpmdW5jdGlvbihPLFIseil7cmV0dXJuIE88ND8iXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDM4IjpPPDEyPyJcdTA0NDNcdTA0NDJcdTA0NDBcdTA0MzAiOk88MTc/Ilx1MDQzNFx1MDQzZFx1MDQ0ZiI6Ilx1'@; put 'MDQzMlx1MDQzNVx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzOXxcdTA0MzNcdTA0M2V8XHUwNDRmKS8sb3JkaW5hbDpmdW5jdGlvbihPLFIpe3N3aXRjaChSKXtjYXNlIk0iOmNhc2UiZCI6Y2FzZSJEREQiOnJldHVybiBP'@; put 'KyItXHUwNDM5IjtjYXNlIkQiOnJldHVybiBPKyItXHUwNDMzXHUwNDNlIjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIE8rIi1cdTA0NGYiO2RlZmF1bHQ6cmV0dXJuIE99fSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSw2MjE4ODpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24o'@; put 'YWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD1bIlx1MDYyY1x1MDY0Nlx1MDY0OFx1MDYzMVx1MDY0YSIsIlx1MDY0MVx1MDY0YVx1MDYyOFx1MDYzMVx1MDY0OFx1MDYzMVx1MDY0YSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDY4NiIsIlx1MDYyN1x1MDY3ZVx1MDYzMVx1MDY0YVx1MDY0NCIsIlx1'@; put 'MDY0NVx1MDYyNlx1MDY0YSIsIlx1MDYyY1x1MDY0OFx1MDY0NiIsIlx1MDYyY1x1MDY0OFx1MDY0NFx1MDYyN1x1MDYyMVx1MDY1MCIsIlx1MDYyMlx1MDZhZlx1MDYzM1x1MDY3ZCIsIlx1MDYzM1x1MDY0YVx1MDY3ZVx1MDY3ZFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyMlx1MDZhYVx1'@; put 'MDY3ZFx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDY4YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdLG09WyJcdTA2MjJcdTA2ODZcdTA2MzEiLCJcdTA2MzNcdTA2NDhcdTA2NDVcdTA2MzEiLCJcdTA2MjdcdTA2YjFcdTA2MjdcdTA2'@; put 'MzFcdTA2NDgiLCJcdTA2MjdcdTA2MzFcdTA2MjhcdTA2MzkiLCJcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzMiLCJcdTA2MmNcdTA2NDVcdTA2MzkiLCJcdTA2ODdcdTA2NDZcdTA2ODdcdTA2MzEiXTthZS5kZWZpbmVMb2NhbGUoInNkIix7bW9udGhzOngsbW9udGhzU2hvcnQ6eCx3ZWVrZGF5'@; put 'czptLHdlZWtkYXlzU2hvcnQ6bSx3ZWVrZGF5c01pbjptLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZFx1MDYwYyBEIE1NTU0gWVlZWSBISDpt'@; put 'bSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNVx1MDYyOFx1MDYyZHxcdTA2MzRcdTA2MjdcdTA2NDUvLGlzUE06ZnVuY3Rpb24oTSl7cmV0dXJuIlx1MDYzNFx1MDYyN1x1MDY0NSI9PT1NfSxtZXJpZGllbTpmdW5jdGlvbihNLE8sUil7cmV0dXJuIE08MTI/Ilx1MDYzNVx1MDYyOFx1MDYyZCI6'@; put 'Ilx1MDYzNFx1MDYyN1x1MDY0NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjg0XSBMVCIsbmV4dERheToiW1x1MDYzM1x1MDY4MFx1MDYyN1x1MDZiYlx1MDY0YV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MjdcdTA2YjNcdTA2NGFcdTA2NDYgXHUwNjQ3XHUwNjQxXHUwNjJh'@; put 'XHUwNjRhIFx1MDYyYVx1MDY0YV0gTFQiLGxhc3REYXk6IltcdTA2YWFcdTA2MjdcdTA2NDRcdTA2NDdcdTA2NDddIExUIixsYXN0V2VlazoiW1x1MDZhZlx1MDYzMlx1MDYzMVx1MDY0YVx1MDY0NCBcdTA2NDdcdTA2NDFcdTA2MmFcdTA2NGFdIGRkZGQgW1x1MDYyYVx1MDY0YV0gTFQiLHNh'@; put 'bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDY3ZVx1MDY0OFx1MDYyMSIscGFzdDoiJXMgXHUwNjI3XHUwNmIzIixzOiJcdTA2ODZcdTA2NDZcdTA2MmYgXHUwNjMzXHUwNjRhXHUwNmFhXHUwNjQ2XHUwNjhhIixzczoiJWQgXHUwNjMzXHUwNjRhXHUwNmFhXHUwNjQ2'@; put 'XHUwNjhhIixtOiJcdTA2NDdcdTA2YWEgXHUwNjQ1XHUwNjQ2XHUwNjdkIixtbToiJWQgXHUwNjQ1XHUwNjQ2XHUwNjdkIixoOiJcdTA2NDdcdTA2YWEgXHUwNmFhXHUwNjQ0XHUwNjI3XHUwNmFhIixoaDoiJWQgXHUwNmFhXHUwNjQ0XHUwNjI3XHUwNmFhIixkOiJcdTA2NDdcdTA2YWEgXHUw'@; put 'NjhmXHUwNjRhXHUwNjQ2XHUwNjQ3XHUwNjQ2IixkZDoiJWQgXHUwNjhmXHUwNjRhXHUwNjQ2XHUwNjQ3XHUwNjQ2IixNOiJcdTA2NDdcdTA2YWEgXHUwNjQ1XHUwNjQ3XHUwNjRhXHUwNjQ2XHUwNjQ4IixNTToiJWQgXHUwNjQ1XHUwNjQ3XHUwNjRhXHUwNjQ2XHUwNjI3Iix5OiJcdTA2NDdc'@; put 'dTA2YWEgXHUwNjMzXHUwNjI3XHUwNjQ0Iix5eToiJWQgXHUwNjMzXHUwNjI3XHUwNjQ0In0scHJlcGFyc2U6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3'@; put 'ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSw2NTYyOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgic2UiLHttb250aHM6Im9cdTAxMTFcdTAxMTFhamFnZW1ceGUxbm51X2d1b3Z2YW1ceGUxbm51X25qdWtcdTAxMGRh'@; put 'bVx4ZTFubnVfY3VvXHUwMTRib21ceGUxbm51X21pZXNzZW1ceGUxbm51X2dlYXNzZW1ceGUxbm51X3N1b2lkbmVtXHhlMW5udV9ib3JnZW1ceGUxbm51X1x1MDEwZGFrXHUwMTBkYW1ceGUxbm51X2dvbGdnb3RtXHhlMW5udV9za1x4ZTFibWFtXHhlMW5udV9qdW92bGFtXHhlMW5udSIuc3Bs'@; put 'aXQoIl8iKSxtb250aHNTaG9ydDoib1x1MDExMVx1MDExMWpfZ3Vvdl9uanVrX2N1b19taWVzX2dlYXNfc3VvaV9ib3JnX1x1MDEwZGFrXHUwMTBkX2dvbGdfc2tceGUxYl9qdW92Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzb3RuYWJlYWl2aV92dW9zc1x4ZTFyZ2FfbWFcdTAxNGJcdTAxNGJl'@; put 'Ylx4ZTFyZ2FfZ2Fza2F2YWhra3VfZHVvcmFzdGF0X2JlYXJqYWRhdF9sXHhlMXZ2YXJkYXQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic290bl92dW9zX21hXHUwMTRiX2dhc2tfZHVvcl9iZWFyX2xceGUxdiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic192X21fZ19kX2JfTCIuc3Bs'@; put 'aXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiTU1NTSBELiBbYi5dIFlZWVkiLExMTDoiTU1NTSBELiBbYi5dIFlZWVkgW3RpLl0gSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhIOm1t'@; put 'In0sY2FsZW5kYXI6e3NhbWVEYXk6IltvdG5lIHRpXSBMVCIsbmV4dERheToiW2lodHRpbiB0aV0gTFQiLG5leHRXZWVrOiJkZGRkIFt0aV0gTFQiLGxhc3REYXk6Iltpa3RlIHRpXSBMVCIsbGFzdFdlZWs6IltvdmRkaXRdIGRkZGQgW3RpXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRp'@; put 'bWU6e2Z1dHVyZToiJXMgZ2VhXHUwMTdlZXMiLHBhc3Q6Im1hXHUwMTRiaXQgJXMiLHM6Im1vYWRkZSBzZWt1bmRkYXQiLHNzOiIlZCBzZWt1bmRkYXQiLG06Im9rdGEgbWludWh0YSIsbW06IiVkIG1pbnVodGF0IixoOiJva3RhIGRpaW1tdSIsaGg6IiVkIGRpaW1tdXQiLGQ6Im9rdGEgYmVh'@; put 'aXZpIixkZDoiJWQgYmVhaXZ2aXQiLE06Im9rdGEgbVx4ZTFubnUiLE1NOiIlZCBtXHhlMW51dCIseToib2t0YSBqYWhraSIseXk6IiVkIGphZ2l0In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2'@; put 'KSl9LDg3MTcyOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgic2kiLHttb250aHM6Ilx1MGRhMlx1MGRiMVx1MGRjMFx1MGRjZlx1MGRiYlx1MGRkMl9cdTBkYjRcdTBkZDlcdTBkYjZcdTBkYmJcdTBkYzBcdTBkY2ZcdTBkYmJc'@; put 'dTBkZDJfXHUwZGI4XHUwZGNmXHUwZGJiXHUwZGNhXHUwZGFkXHUwZGQ0X1x1MGQ4NVx1MGRiNFx1MGRjYVx1MjAwZFx1MGRiYlx1MGRkYVx1MGRiZFx1MGRjYV9cdTBkYjhcdTBkZDBcdTBkYmFcdTBkZDJfXHUwZGEyXHUwZGQ2XHUwZGIxXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiZFx1MGRk'@; put 'Ml9cdTBkODVcdTBkOWNcdTBkZGRcdTBkYzNcdTBkY2FcdTBkYWRcdTBkZDRfXHUwZGMzXHUwZGQwXHUwZGI0XHUwZGNhXHUwZGFkXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhX1x1MGQ5NFx1MGQ5YVx1MGRjYVx1MGRhZFx1MGRkZFx1MGRiNlx1MGRiYlx1MGRjYV9cdTBk'@; put 'YjFcdTBkZGNcdTBkYzBcdTBkZDBcdTBkYjhcdTBkY2FcdTBkYjZcdTBkYmJcdTBkY2FfXHUwZGFmXHUwZGQ5XHUwZGMzXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBkYTJcdTBkYjFfXHUwZGI0XHUwZGQ5XHUwZGI2X1x1'@; put 'MGRiOFx1MGRjZlx1MGRiYlx1MGRjYV9cdTBkODVcdTBkYjRcdTBkY2FfXHUwZGI4XHUwZGQwXHUwZGJhXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiMVx1MGRkMl9cdTBkYTJcdTBkZDZcdTBkYmRcdTBkZDJfXHUwZDg1XHUwZDljXHUwZGRkX1x1MGRjM1x1MGRkMFx1MGRiNFx1MGRjYV9cdTBk'@; put 'OTRcdTBkOWFcdTBkY2FfXHUwZGIxXHUwZGRjXHUwZGMwXHUwZGQwX1x1MGRhZlx1MGRkOVx1MGRjM1x1MGRkMCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwZDg5XHUwZGJiXHUwZGQyXHUwZGFmXHUwZGNmX1x1MGRjM1x1MGRiM1x1MGRkNFx1MGRhZlx1MGRjZl9cdTBkODVcdTBkOWZcdTBk'@; put 'YzRcdTBkYmJcdTBkZDRcdTBkYzBcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGI2XHUwZGFmXHUwZGNmXHUwZGFmXHUwZGNmX1x1MGRiNlx1MGRjYVx1MjAwZFx1MGRiYlx1MGRjNFx1MGRjM1x1MGRjYVx1MGRiNFx1MGRhZFx1MGRkMlx1MGRiMVx1MGRjYVx1MGRhZlx1MGRjZl9cdTBkYzNcdTBk'@; put 'ZDJcdTBkOWFcdTBkZDRcdTBkYmJcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGMzXHUwZGQ5XHUwZGIxXHUwZGMzXHUwZGQ0XHUwZGJiXHUwZGNmXHUwZGFmXHUwZGNmIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGQ4OVx1MGRiYlx1MGRkMl9cdTBkYzNcdTBkYjNcdTBkZDRfXHUwZDg1'@; put 'XHUwZDlmX1x1MGRiNlx1MGRhZlx1MGRjZl9cdTBkYjZcdTBkY2FcdTIwMGRcdTBkYmJcdTBkYzRfXHUwZGMzXHUwZGQyXHUwZDlhXHUwZGQ0X1x1MGRjM1x1MGRkOVx1MGRiMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwZDg5X1x1MGRjM19cdTBkODVfXHUwZGI2X1x1MGRiNlx1MGRj'@; put 'YVx1MjAwZFx1MGRiYl9cdTBkYzNcdTBkZDJfXHUwZGMzXHUwZGQ5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6ImEgaDptbSIsTFRTOiJhIGg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZWVlZIE1NTU0gRCIsTExMOiJZWVlZIE1NTU0g'@; put 'RCwgYSBoOm1tIixMTExMOiJZWVlZIE1NTU0gRCBbXHUwZGMwXHUwZGQwXHUwZGIxXHUwZGQyXSBkZGRkLCBhIGg6bW06c3MifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGQ4NVx1MGRhZl0gTFRbXHUwZGE3XSIsbmV4dERheToiW1x1MGRjNFx1MGRkOVx1MGRhN10gTFRbXHUwZGE3XSIsbmV4'@; put 'dFdlZWs6ImRkZGQgTFRbXHUwZGE3XSIsbGFzdERheToiW1x1MGQ4YVx1MGRiYVx1MGRkYV0gTFRbXHUwZGE3XSIsbGFzdFdlZWs6IltcdTBkYjRcdTBkYzNcdTBkZDRcdTBkOWNcdTBkZDJcdTBkYmFdIGRkZGQgTFRbXHUwZGE3XSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVy'@; put 'ZToiJXNcdTBkOWFcdTBkZDJcdTBkYjFcdTBkY2EiLHBhc3Q6IiVzXHUwZDlhXHUwZGE3IFx1MGRiNFx1MGRkOVx1MGRiYiIsczoiXHUwZGFkXHUwZGFkXHUwZGNhXHUwZGI0XHUwZGJiIFx1MGQ5YVx1MGRkMlx1MGRjNFx1MGRkMlx1MGRiNFx1MGRiYSIsc3M6Ilx1MGRhZFx1MGRhZFx1MGRj'@; put 'YVx1MGRiNFx1MGRiYiAlZCIsbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0XHUwZGMwIixtbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0ICVkIixoOiJcdTBkYjRcdTBkZDBcdTBkYmEiLGhoOiJcdTBk'@; put 'YjRcdTBkZDBcdTBkYmEgJWQiLGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMVx1MGRiYSIsZGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMSAlZCIsTToiXHUwZGI4XHUwZGNmXHUwZGMzXHUwZGJhIixNTToiXHUwZGI4XHUwZGNmXHUwZGMzICVkIix5OiJcdTBkYzBcdTBkYzNcdTBkYmIiLHl5OiJcdTBkYzBc'@; put 'dTBkYzNcdTBkYmIgJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9IFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMi8sb3JkaW5hbDpmdW5jdGlvbihtKXtyZXR1cm4gbSsiIFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMiJ9LG1lcmlkaWVtUGFyc2U6L1x1MGRiNFx1MGRkOVx1MGRi'@; put 'YiBcdTBkYzBcdTBkYmJcdTBkZDR8XHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNHxcdTBkYjRcdTBkZDkuXHUwZGMwfFx1MGRiNC5cdTBkYzAuLyxpc1BNOmZ1bmN0aW9uKG0pe3JldHVybiJcdTBkYjQuXHUwZGMwLiI9PT1tfHwiXHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRj'@; put 'MFx1MGRiYlx1MGRkNCI9PT1tfSxtZXJpZGllbTpmdW5jdGlvbihtLGxlLE0pe3JldHVybiBtPjExP00/Ilx1MGRiNC5cdTBkYzAuIjoiXHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNCI6TT8iXHUwZGI0XHUwZGQ5Llx1MGRjMC4iOiJcdTBkYjRcdTBkZDlcdTBkYmIgXHUw'@; put 'ZGMwXHUwZGJiXHUwZGQ0In19KX0oRigxNjY3NikpfSw5OTk2NjpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD0iamFudVx4ZTFyX2ZlYnJ1XHhlMXJfbWFyZWNfYXByXHhlZGxfbVx4ZTFqX2pceGZhbl9qXHhmYWxfYXVndXN0X3NlcHRlbWJlcl9v'@; put 'a3RceGYzYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLG09Imphbl9mZWJfbWFyX2Fwcl9tXHhlMWpfalx4ZmFuX2pceGZhbF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpO2Z1bmN0aW9uIGxlKFIpe3JldHVybiBSPjEmJlI8NX1mdW5jdGlvbiBNKFIseixLLEkpe3Zh'@; put 'ciBrPVIrIiAiO3N3aXRjaChLKXtjYXNlInMiOnJldHVybiB6fHxJPyJwXHhlMXIgc2VrXHhmYW5kIjoicFx4ZTFyIHNla3VuZGFtaSI7Y2FzZSJzcyI6cmV0dXJuIHp8fEk/aysobGUoUik/InNla3VuZHkiOiJzZWtceGZhbmQiKTprKyJzZWt1bmRhbWkiO2Nhc2UibSI6cmV0dXJuIHo/Im1p'@; put 'blx4ZmF0YSI6ST8ibWluXHhmYXR1IjoibWluXHhmYXRvdSI7Y2FzZSJtbSI6cmV0dXJuIHp8fEk/aysobGUoUik/Im1pblx4ZmF0eSI6Im1pblx4ZmF0Iik6aysibWluXHhmYXRhbWkiO2Nhc2UiaCI6cmV0dXJuIHo/ImhvZGluYSI6ST8iaG9kaW51IjoiaG9kaW5vdSI7Y2FzZSJoaCI6cmV0'@; put 'dXJuIHp8fEk/aysobGUoUik/ImhvZGlueSI6ImhvZFx4ZWRuIik6aysiaG9kaW5hbWkiO2Nhc2UiZCI6cmV0dXJuIHp8fEk/ImRlXHUwMTQ4IjoiZFx1MDE0OG9tIjtjYXNlImRkIjpyZXR1cm4genx8ST9rKyhsZShSKT8iZG5pIjoiZG5ceGVkIik6aysiZFx1MDE0OGFtaSI7Y2FzZSJNIjpy'@; put 'ZXR1cm4genx8ST8ibWVzaWFjIjoibWVzaWFjb20iO2Nhc2UiTU0iOnJldHVybiB6fHxJP2srKGxlKFIpPyJtZXNpYWNlIjoibWVzaWFjb3YiKTprKyJtZXNpYWNtaSI7Y2FzZSJ5IjpyZXR1cm4genx8ST8icm9rIjoicm9rb20iO2Nhc2UieXkiOnJldHVybiB6fHxJP2srKGxlKFIpPyJyb2t5'@; put 'Ijoicm9rb3YiKTprKyJyb2ttaSJ9fWFlLmRlZmluZUxvY2FsZSgic2siLHttb250aHM6eCxtb250aHNTaG9ydDptLHdlZWtkYXlzOiJuZWRlXHUwMTNlYV9wb25kZWxva191dG9yb2tfc3RyZWRhX1x1MDE2MXR2cnRva19waWF0b2tfc29ib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6'@; put 'Im5lX3BvX3V0X3N0X1x1MDE2MXRfcGlfc28iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX3V0X3N0X1x1MDE2MXRfcGlfc28iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExM'@; put 'TDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2RuZXMgb10gTFQiLG5leHREYXk6Ilt6YWp0cmEgb10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3Yg'@; put 'bmVkZVx1MDEzZXUgb10gTFQiO2Nhc2UgMTpjYXNlIDI6cmV0dXJuIlt2XSBkZGRkIFtvXSBMVCI7Y2FzZSAzOnJldHVybiJbdiBzdHJlZHUgb10gTFQiO2Nhc2UgNDpyZXR1cm4iW3ZvIFx1MDE2MXR2cnRvayBvXSBMVCI7Y2FzZSA1OnJldHVybiJbdiBwaWF0b2sgb10gTFQiO2Nhc2UgNjpy'@; put 'ZXR1cm4iW3Ygc29ib3R1IG9dIExUIn19LGxhc3REYXk6Ilt2XHUwMTBkZXJhIG9dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlttaW51bFx4ZmEgbmVkZVx1MDEzZXUgb10gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpy'@; put 'ZXR1cm4iW21pbnVsXHhmZF0gZGRkZCBbb10gTFQiO2Nhc2UgMzpyZXR1cm4iW21pbnVsXHhmYSBzdHJlZHUgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW21pbnVsXHhmYSBzb2JvdHUgb10gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByZWQg'@; put 'JXMiLHM6TSxzczpNLG06TSxtbTpNLGg6TSxoaDpNLGQ6TSxkZDpNLE0sTU06TSx5Ok0seXk6TX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDQyODc6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1'@; put 'bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geChsZSxNLE8sUil7dmFyIHo9bGUrIiAiO3N3aXRjaChPKXtjYXNlInMiOnJldHVybiBNfHxSPyJuZWthaiBzZWt1bmQiOiJuZWthaiBzZWt1bmRhbWkiO2Nhc2Uic3MiOnJldHVybiB6KygxPT09bGU/TT8ic2VrdW5kbyI6InNla3Vu'@; put 'ZGkiOjI9PT1sZT9NfHxSPyJzZWt1bmRpIjoic2VrdW5kYWgiOmxlPDU/TXx8Uj8ic2VrdW5kZSI6InNla3VuZGFoIjoic2VrdW5kIik7Y2FzZSJtIjpyZXR1cm4gTT8iZW5hIG1pbnV0YSI6ImVubyBtaW51dG8iO2Nhc2UibW0iOnJldHVybiB6KygxPT09bGU/TT8ibWludXRhIjoibWludXRv'@; put 'IjoyPT09bGU/TXx8Uj8ibWludXRpIjoibWludXRhbWEiOmxlPDU/TXx8Uj8ibWludXRlIjoibWludXRhbWkiOk18fFI/Im1pbnV0IjoibWludXRhbWkiKTtjYXNlImgiOnJldHVybiBNPyJlbmEgdXJhIjoiZW5vIHVybyI7Y2FzZSJoaCI6cmV0dXJuIHorKDE9PT1sZT9NPyJ1cmEiOiJ1cm8i'@; put 'OjI9PT1sZT9NfHxSPyJ1cmkiOiJ1cmFtYSI6bGU8NT9NfHxSPyJ1cmUiOiJ1cmFtaSI6TXx8Uj8idXIiOiJ1cmFtaSIpO2Nhc2UiZCI6cmV0dXJuIE18fFI/ImVuIGRhbiI6ImVuaW0gZG5lbSI7Y2FzZSJkZCI6cmV0dXJuIHorKDE9PT1sZT9NfHxSPyJkYW4iOiJkbmVtIjoyPT09bGU/TXx8'@; put 'Uj8iZG5pIjoiZG5ldm9tYSI6TXx8Uj8iZG5pIjoiZG5ldmkiKTtjYXNlIk0iOnJldHVybiBNfHxSPyJlbiBtZXNlYyI6ImVuaW0gbWVzZWNlbSI7Y2FzZSJNTSI6cmV0dXJuIHorKDE9PT1sZT9NfHxSPyJtZXNlYyI6Im1lc2VjZW0iOjI9PT1sZT9NfHxSPyJtZXNlY2EiOiJtZXNlY2VtYSI6'@; put 'bGU8NT9NfHxSPyJtZXNlY2UiOiJtZXNlY2kiOk18fFI/Im1lc2VjZXYiOiJtZXNlY2kiKTtjYXNlInkiOnJldHVybiBNfHxSPyJlbm8gbGV0byI6ImVuaW0gbGV0b20iO2Nhc2UieXkiOnJldHVybiB6KygxPT09bGU/TXx8Uj8ibGV0byI6ImxldG9tIjoyPT09bGU/TXx8Uj8ibGV0aSI6Imxl'@; put 'dG9tYSI6bGU8NT9NfHxSPyJsZXRhIjoibGV0aSI6TXx8Uj8ibGV0IjoibGV0aSIpfX1hZS5kZWZpbmVMb2NhbGUoInNsIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJlY19hcHJpbF9tYWpfanVuaWpfanVsaWpfYXZndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVy'@; put 'Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyLl9hcHIuX21hai5fanVuLl9qdWwuX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJuZWRlbGphX3BvbmVkZWxqZWtfdG9yZWtfc3JlZGFfXHUwMTBk'@; put 'ZXRydGVrX3BldGVrX3NvYm90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZWQuX3Bvbi5fdG9yLl9zcmUuX1x1MDEwZGV0Ll9wZXQuX3NvYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX3RvX3NyX1x1MDEwZGVfcGVfc28iLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4'@; put 'YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC4gTU0uIFlZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkYW5lcyBv'@; put 'Yl0gTFQiLG5leHREYXk6IltqdXRyaSBvYl0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3ZdIFtuZWRlbGpvXSBbb2JdIExUIjtjYXNlIDM6cmV0dXJuIlt2XSBbc3JlZG9dIFtvYl0gTFQiO2Nhc2UgNjpyZXR1cm4iW3ZdIFtzb2Jv'@; put 'dG9dIFtvYl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3ZdIGRkZGQgW29iXSBMVCJ9fSxsYXN0RGF5OiJbdlx1MDEwZGVyYWogb2JdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIltwcmVqXHUwMTYxbmpv'@; put 'XSBbbmVkZWxqb10gW29iXSBMVCI7Y2FzZSAzOnJldHVybiJbcHJlalx1MDE2MW5qb10gW3NyZWRvXSBbb2JdIExUIjtjYXNlIDY6cmV0dXJuIltwcmVqXHUwMTYxbmpvXSBbc29ib3RvXSBbb2JdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltwcmVqXHUwMTYxbmpp'@; put 'XSBkZGRkIFtvYl0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwMTBkZXogJXMiLHBhc3Q6InByZWQgJXMiLHM6eCxzczp4LG06eCxtbTp4LGg6eCxoaDp4LGQ6eCxkZDp4LE06eCxNTTp4LHk6eCx5eTp4fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsx'@; put 'LDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sMTUyOTE6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJzcSIse21vbnRoczoiSmFuYXJfU2hrdXJ0X01hcnNfUHJpbGxfTWFqX1Fl'@; put 'cnNob3JfS29ycmlrX0d1c2h0X1NodGF0b3JfVGV0b3JfTlx4ZWJudG9yX0RoamV0b3IiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9TaGtfTWFyX1ByaV9NYWpfUWVyX0tvcl9HdXNfU2h0X1RldF9OXHhlYm5fRGhqIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJFIERpZWxfRSBIXHhlYm5c'@; put 'eGViX0UgTWFydFx4ZWJfRSBNXHhlYnJrdXJceGViX0UgRW5qdGVfRSBQcmVtdGVfRSBTaHR1blx4ZWIiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiRGllX0hceGVibl9NYXJfTVx4ZWJyX0Vual9QcmVfU2h0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJEX0hfTWFfTVx4ZWJfRV9QX1No'@; put 'Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxtZXJpZGllbVBhcnNlOi9QRHxNRC8saXNQTTpmdW5jdGlvbihtKXtyZXR1cm4iTSI9PT1tLmNoYXJBdCgwKX0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXtyZXR1cm4gbTwxMj8iUEQiOiJNRCJ9LGxvbmdEYXRlRm9ybWF0OntM'@; put 'VDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1NvdCBuXHhlYl0gTFQiLG5leHREYXk6IltOZXNceGVi'@; put 'ciBuXHhlYl0gTFQiLG5leHRXZWVrOiJkZGRkIFtuXHhlYl0gTFQiLGxhc3REYXk6IltEamUgblx4ZWJdIExUIixsYXN0V2VlazoiZGRkZCBbZSBrYWx1YXIgblx4ZWJdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJuXHhlYiAlcyIscGFzdDoiJXMgbVx4ZWIgcGFy'@; put 'XHhlYiIsczoiZGlzYSBzZWtvbmRhIixzczoiJWQgc2Vrb25kYSIsbToibmpceGViIG1pbnV0XHhlYiIsbW06IiVkIG1pbnV0YSIsaDoibmpceGViIG9yXHhlYiIsaGg6IiVkIG9yXHhlYiIsZDoibmpceGViIGRpdFx4ZWIiLGRkOiIlZCBkaXRceGViIixNOiJualx4ZWIgbXVhaiIsTU06IiVk'@; put 'IG11YWoiLHk6Im5qXHhlYiB2aXQiLHl5OiIlZCB2aXRlIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDM3NjAzOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJp'@; put 'Y3QiO3ZhciB4PXt3b3Jkczp7c3M6WyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzAiLCJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzUiLCJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzgiXSxtOlsiXHUw'@; put 'NDU4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzMyBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiXSxtbTpbIlx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0'@; put 'M1x1MDQ0MiIsIlx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMCIsIlx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMCJdLGg6WyJcdTA0NThcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDQxXHUwNDMwXHUwNDQyIiwiXHUwNDU4XHUwNDM1XHUwNDM0XHUw'@; put 'NDNkXHUwNDNlXHUwNDMzIFx1MDQ0MVx1MDQzMFx1MDQ0Mlx1MDQzMCJdLGhoOlsiXHUwNDQxXHUwNDMwXHUwNDQyIiwiXHUwNDQxXHUwNDMwXHUwNDQyXHUwNDMwIiwiXHUwNDQxXHUwNDMwXHUwNDQyXHUwNDM4Il0sZDpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0MzRc'@; put 'dTA0MzBcdTA0M2QiLCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzMgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDMwIl0sZGQ6WyJcdTA0MzRcdTA0MzBcdTA0M2QiLCJcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzAiLCJcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzAiXSxNOlsiXHUw'@; put 'NDU4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0NiIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzMyBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0MzAiXSxNTTpbIlx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQz'@; put 'NVx1MDQ0NiIsIlx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzMCIsIlx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzOCJdLHk6WyJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0NDMgXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDQzIiwiXHUw'@; put 'NDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDM1IFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzNSJdLHl5OlsiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDQzIiwiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM1IiwiXHUwNDMzXHUwNDNlXHUw'@; put 'NDM0XHUwNDM4XHUwNDNkXHUwNDMwIl19LGNvcnJlY3RHcmFtbWF0aWNhbENhc2U6ZnVuY3Rpb24obGUsTSl7cmV0dXJuIGxlJTEwPj0xJiZsZSUxMDw9NCYmKGxlJTEwMDwxMHx8bGUlMTAwPj0yMCk/bGUlMTA9PTE/TVswXTpNWzFdOk1bMl19LHRyYW5zbGF0ZTpmdW5jdGlvbihsZSxNLE8s'@; put 'Uil7dmFyIEssej14LndvcmRzW09dO3JldHVybiAxPT09Ty5sZW5ndGg/InkiPT09TyYmTT8iXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCI6Unx8TT96WzBdOnpbMV06KEs9eC5jb3JyZWN0R3JhbW1hdGljYWxDYXNl'@; put 'KGxlLHopLCJ5eSI9PT1PJiZNJiYiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDQzIj09PUs/bGUrIiBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiOmxlKyIgIitLKX19O2FlLmRlZmluZUxvY2FsZSgic3ItY3lybCIse21vbnRoczoiXHUwNDU4XHUwNDMw'@; put 'XHUwNDNkXHUwNDQzXHUwNDMwXHUwNDQwX1x1MDQ0NFx1MDQzNVx1MDQzMVx1MDQ0MFx1MDQ0M1x1MDQzMFx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RfXHUw'@; put 'NDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2ZcdTA0NDJcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDNlXHUwNDMxXHUwNDMwXHUwNDQwX1x1MDQzZFx1MDQzZVx1'@; put 'MDQzMlx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzMFx1MDQ0MF9cdTA0MzRcdTA0MzVcdTA0NDZcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ1OFx1MDQzMFx1MDQzZC5fXHUwNDQ0XHUwNDM1XHUwNDMxLl9cdTA0M2NcdTA0MzBcdTA0'@; put 'NDAuX1x1MDQzMFx1MDQzZlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDU4X1x1MDQ1OFx1MDQ0M1x1MDQzZF9cdTA0NThcdTA0NDNcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzLl9cdTA0NDFcdTA0MzVcdTA0M2YuX1x1MDQzZVx1MDQzYVx1MDQ0Mi5fXHUwNDNkXHUwNDNlXHUwNDMyLl9cdTA0'@; put 'MzRcdTA0MzVcdTA0NDYuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQzMF9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0MzBcdTA0M2FfXHUwNDQzXHUwNDQyXHUw'@; put 'NDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M2FfXHUwNDNmXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1'@; put 'MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0MzQuX1x1MDQzZlx1MDQzZVx1MDQzZC5fXHUwNDQzXHUwNDQyXHUwNDNlLl9cdTA0NDFcdTA0NDBcdTA0MzUuX1x1MDQ0N1x1MDQzNVx1MDQ0Mi5fXHUwNDNmXHUwNDM1XHUwNDQyLl9cdTA0NDFcdTA0NDNc'@; put 'dTA0MzEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RcdTA0MzVfXHUwNDNmXHUwNDNlX1x1MDQ0M1x1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDM1X1x1MDQzZlx1MDQzNV9cdTA0NDFcdTA0NDMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRl'@; put 'Rm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJELiBNLiBZWVlZLiIsTEw6IkQuIE1NTU0gWVlZWS4iLExMTDoiRC4gTU1NTSBZWVlZLiBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkuIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQzNFx1MDQzMFx1MDQzZFx1'@; put 'MDQzMFx1MDQ0MSBcdTA0NDNdIExUIixuZXh0RGF5OiJbXHUwNDQxXHUwNDQzXHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQ0M10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW1x1MDQ0M10gW1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1'@; put 'MDQ1OVx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgMzpyZXR1cm4iW1x1MDQ0M10gW1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgNjpyZXR1cm4iW1x1MDQ0M10gW1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0M10gW1x1MDQ0M10g'@; put 'TFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQ0M10gZGRkZCBbXHUwNDQzXSBMVCJ9fSxsYXN0RGF5OiJbXHUwNDU4XHUwNDQzXHUwNDQ3XHUwNDM1IFx1MDQ0M10gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuWyJbXHUwNDNmXHUwNDQwXHUwNDNlXHUw'@; put 'NDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDU5XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0M2Fc'@; put 'dTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQ0M1x1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzYVx1MDQzMF0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDQx'@; put 'XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1'@; put 'MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQzZlx1MDQzNVx1MDQ0Mlx1MDQzYVx1MDQzMF0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDM1XSBbXHUwNDQzXSBM'@; put 'VCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNSAlcyIsczoiXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1'@; put 'MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6eC50cmFuc2xhdGUsbTp4LnRyYW5zbGF0ZSxtbTp4LnRyYW5zbGF0ZSxoOngudHJhbnNsYXRlLGhoOngudHJhbnNsYXRlLGQ6eC50cmFuc2xhdGUsZGQ6eC50cmFuc2xhdGUsTTp4LnRyYW5zbGF0ZSxNTTp4LnRyYW5zbGF0ZSx5Ongu'@; put 'dHJhbnNsYXRlLHl5OngudHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sODA0NTA6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9'@; put 'e3dvcmRzOntzczpbInNla3VuZGEiLCJzZWt1bmRlIiwic2VrdW5kaSJdLG06WyJqZWRhbiBtaW51dCIsImplZG5vZyBtaW51dGEiXSxtbTpbIm1pbnV0IiwibWludXRhIiwibWludXRhIl0saDpbImplZGFuIHNhdCIsImplZG5vZyBzYXRhIl0saGg6WyJzYXQiLCJzYXRhIiwic2F0aSJdLGQ6'@; put 'WyJqZWRhbiBkYW4iLCJqZWRub2cgZGFuYSJdLGRkOlsiZGFuIiwiZGFuYSIsImRhbmEiXSxNOlsiamVkYW4gbWVzZWMiLCJqZWRub2cgbWVzZWNhIl0sTU06WyJtZXNlYyIsIm1lc2VjYSIsIm1lc2VjaSJdLHk6WyJqZWRudSBnb2RpbnUiLCJqZWRuZSBnb2RpbmUiXSx5eTpbImdvZGludSIs'@; put 'ImdvZGluZSIsImdvZGluYSJdfSxjb3JyZWN0R3JhbW1hdGljYWxDYXNlOmZ1bmN0aW9uKGxlLE0pe3JldHVybiBsZSUxMD49MSYmbGUlMTA8PTQmJihsZSUxMDA8MTB8fGxlJTEwMD49MjApP2xlJTEwPT0xP01bMF06TVsxXTpNWzJdfSx0cmFuc2xhdGU6ZnVuY3Rpb24obGUsTSxPLFIpe3Zh'@; put 'ciBLLHo9eC53b3Jkc1tPXTtyZXR1cm4gMT09PU8ubGVuZ3RoPyJ5Ij09PU8mJk0/ImplZG5hIGdvZGluYSI6Unx8TT96WzBdOnpbMV06KEs9eC5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKGxlLHopLCJ5eSI9PT1PJiZNJiYiZ29kaW51Ij09PUs/bGUrIiBnb2RpbmEiOmxlKyIgIitLKX19O2Fl'@; put 'LmRlZmluZUxvY2FsZSgic3IiLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyLl9hcHIuX21hal9qdW5fanVs'@; put 'X2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJuZWRlbGphX3BvbmVkZWxqYWtfdXRvcmFrX3NyZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl91'@; put 'dG8uX3NyZS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkQuIE0uIFlZ'@; put 'WVkuIixMTDoiRC4gTU1NTSBZWVlZLiIsTExMOiJELiBNTU1NIFlZWVkuIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWS4gSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuYXMgdV0gTFQiLG5leHREYXk6IltzdXRyYSB1XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2go'@; put 'dGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdV0gW25lZGVsanVdIFt1XSBMVCI7Y2FzZSAzOnJldHVybiJbdV0gW3NyZWR1XSBbdV0gTFQiO2Nhc2UgNjpyZXR1cm4iW3VdIFtzdWJvdHVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbdV0gZGRkZCBbdV0g'@; put 'TFQifX0sbGFzdERheToiW2p1XHUwMTBkZSB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm5bIltwcm9cdTAxNjFsZV0gW25lZGVsamVdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFtwb25lZGVsamthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbdXRvcmthXSBbdV0gTFQiLCJb'@; put 'cHJvXHUwMTYxbGVdIFtzcmVkZV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW1x1MDEwZGV0dnJ0a2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFtwZXRrYV0gW3VdIExUIiwiW3Byb1x1MDE2MWxlXSBbc3Vib3RlXSBbdV0gTFQiXVt0aGlzLmRheSgpXX0sc2FtZUVsc2U6IkwifSxyZWxh'@; put 'dGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByZSAlcyIsczoibmVrb2xpa28gc2VrdW5kaSIsc3M6eC50cmFuc2xhdGUsbTp4LnRyYW5zbGF0ZSxtbTp4LnRyYW5zbGF0ZSxoOngudHJhbnNsYXRlLGhoOngudHJhbnNsYXRlLGQ6eC50cmFuc2xhdGUsZGQ6eC50cmFuc2xhdGUsTTp4'@; put 'LnRyYW5zbGF0ZSxNTTp4LnRyYW5zbGF0ZSx5OngudHJhbnNsYXRlLHl5OngudHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sMzAzODM6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1'@; put 'bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJzcyIse21vbnRoczoiQmhpbWJpZHZ3YW5lX0luZGxvdmFuYV9JbmRsb3YnbGVua2h1bHVfTWFiYXNhX0lua2h3ZWtod2V0aV9JbmhsYWJhX0tob2x3YW5lX0luZ2NpX0lueW9uaV9JbXBoYWxhX0x3ZXRpX0luZ29uZ29u'@; put 'aSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiQmhpX0luYV9JbnVfTWFiX0lua19JbmhfS2hvX0lnY19JbnlfSW1wX0x3ZV9JZ28iLnNwbGl0KCJfIiksd2Vla2RheXM6Ikxpc29udGZvX1Vtc29tYnVsdWtvX0xlc2liaWxpX0xlc2l0c2F0ZnVfTGVzaW5lX0xlc2lobGFudV9VbWdjaWJlbG8i'@; put 'LnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiTGlzX1VtYl9Mc2JfTGVzX0xzaV9Mc2hfVW1nIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJMaV9Vc19MYl9MdF9Mc19MaF9VZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExU'@; put 'UzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW05hbXVobGEgbmdhXSBMVCIsbmV4dERheToiW0t1c2FzYSBuZ2FdIExU'@; put 'IixuZXh0V2VlazoiZGRkZCBbbmdhXSBMVCIsbGFzdERheToiW0l0b2xvIG5nYV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtsZWxpcGhlbGlsZV0gW25nYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im5nYSAlcyIscGFzdDoid2VudGVrYSBuZ2EgJXMiLHM6ImVtaXp1'@; put 'endhbmEgbG9tY2FuZSIsc3M6IiVkIG16dXp3YW5hIixtOiJ1bXp1enUiLG1tOiIlZCBlbWl6dXp1IixoOiJsaWhvcmEiLGhoOiIlZCBlbWFob3JhIixkOiJsaWxhbmdhIixkZDoiJWQgZW1hbGFuZ2EiLE06ImlueWFuZ2EiLE1NOiIlZCB0aW55YW5nYSIseToidW1ueWFrYSIseXk6IiVkIGlt'@; put 'aW55YWthIn0sbWVyaWRpZW1QYXJzZTovZWt1c2VuaXxlbWluaXxlbnRzYW1iYW1hfGVidXN1a3UvLG1lcmlkaWVtOmZ1bmN0aW9uKG0sbGUsTSl7cmV0dXJuIG08MTE/ImVrdXNlbmkiOm08MTU/ImVtaW5pIjptPDE5PyJlbnRzYW1iYW1hIjoiZWJ1c3VrdSJ9LG1lcmlkaWVtSG91cjpmdW5j'@; put 'dGlvbihtLGxlKXtyZXR1cm4gMTI9PT1tJiYobT0wKSwiZWt1c2VuaSI9PT1sZT9tOiJlbWluaSI9PT1sZT9tPj0xMT9tOm0rMTI6ImVudHNhbWJhbWEiPT09bGV8fCJlYnVzdWt1Ij09PWxlPzA9PT1tPzA6bSsxMjp2b2lkIDB9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLG9y'@; put 'ZGluYWw6IiVkIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSwzNzIyMTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoInN2Iix7bW9udGhzOiJqYW51YXJpX2ZlYnJ1YXJpX21hcnNfYXByaWxfbWFqX2p1bmlfanVs'@; put 'aV9hdWd1c3RpX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcl9hcHJfbWFqX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic1x4ZjZuZGFnX21ceGU1bmRhZ190aXNk'@; put 'YWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2xceGY2cmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzXHhmNm5fbVx4ZTVuX3Rpc19vbnNfdG9yX2ZyZV9sXHhmNnIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InNceGY2X21ceGU1X3RpX29uX3RvX2ZyX2xceGY2Ii5zcGxpdCgiXyIp'@; put 'LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBba2wuXSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBba2wuXSBISDptbSIsbGxsOiJEIE1NTSBZWVlZIEhIOm1tIixs'@; put 'bGxsOiJkZGQgRCBNTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSWRhZ10gTFQiLG5leHREYXk6IltJbW9yZ29uXSBMVCIsbGFzdERheToiW0lnXHhlNXJdIExUIixuZXh0V2VlazoiW1BceGU1XSBkZGRkIExUIixsYXN0V2VlazoiW0ldIGRkZGRbc10gTFQiLHNhbWVFbHNl'@; put 'OiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9tICVzIixwYXN0OiJmXHhmNnIgJXMgc2VkYW4iLHM6Im5ceGU1Z3JhIHNla3VuZGVyIixzczoiJWQgc2VrdW5kZXIiLG06ImVuIG1pbnV0IixtbToiJWQgbWludXRlciIsaDoiZW4gdGltbWUiLGhoOiIlZCB0aW1tYXIiLGQ6ImVuIGRhZyIs'@; put 'ZGQ6IiVkIGRhZ2FyIixNOiJlbiBtXHhlNW5hZCIsTU06IiVkIG1ceGU1bmFkZXIiLHk6ImV0dCBceGU1ciIseXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcOmV8XDphKS8sb3JkaW5hbDpmdW5jdGlvbihtKXt2YXIgbGU9bSUxMDtyZXR1cm4gbSsoMT09'@; put 'fn4obSUxMDAvMTApPyI6ZSI6MT09PWxlfHwyPT09bGU/IjphIjoiOmUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNTE3NDM6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJzdyIse21vbnRoczoiSmFudWFy'@; put 'aV9GZWJydWFyaV9NYWNoaV9BcHJpbGlfTWVpX0p1bmlfSnVsYWlfQWdvc3RpX1NlcHRlbWJhX09rdG9iYV9Ob3ZlbWJhX0Rlc2VtYmEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9BZ29fU2VwX09rdF9Ob3ZfRGVzIi5zcGxpdCgiXyIpLHdl'@; put 'ZWtkYXlzOiJKdW1hcGlsaV9KdW1hdGF0dV9KdW1hbm5lX0p1bWF0YW5vX0FsaGFtaXNpX0lqdW1hYV9KdW1hbW9zaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJKcGxfSnRhdF9Kbm5lX0p0YW5fQWxoX0lqbV9KbW9zIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJKMl9KM19KNF9KNV9B'@; put 'bF9Jal9KMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoaDptbSBBIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZ'@; put 'IEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltsZW8gc2FhXSBMVCIsbmV4dERheToiW2tlc2hvIHNhYV0gTFQiLG5leHRXZWVrOiJbd2lraSBpamF5b10gZGRkZCBbc2FhdF0gTFQiLGxhc3REYXk6IltqYW5hXSBMVCIsbGFzdFdlZWs6Ilt3aWtpIGlsaXlvcGl0YV0gZGRkZCBbc2FhdF0g'@; put 'TFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGJhYWRheWUiLHBhc3Q6InRva2VhICVzIixzOiJoaXZpIHB1bmRlIixzczoic2VrdW5kZSAlZCIsbToiZGFraWthIG1vamEiLG1tOiJkYWtpa2EgJWQiLGg6InNhYSBsaW1vamEiLGhoOiJtYXNhYSAlZCIsZDoic2lr'@; put 'dSBtb2phIixkZDoic2lrdSAlZCIsTToibXdlemkgbW1vamEiLE1NOiJtaWV6aSAlZCIseToibXdha2EgbW1vamEiLHl5OiJtaWFrYSAlZCJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDYzNTE6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7'@; put 'dmFyIHg9ezE6Ilx1MGJlNyIsMjoiXHUwYmU4IiwzOiJcdTBiZTkiLDQ6Ilx1MGJlYSIsNToiXHUwYmViIiw2OiJcdTBiZWMiLDc6Ilx1MGJlZCIsODoiXHUwYmVlIiw5OiJcdTBiZWYiLDA6Ilx1MGJlNiJ9LG09eyJcdTBiZTciOiIxIiwiXHUwYmU4IjoiMiIsIlx1MGJlOSI6IjMiLCJcdTBi'@; put 'ZWEiOiI0IiwiXHUwYmViIjoiNSIsIlx1MGJlYyI6IjYiLCJcdTBiZWQiOiI3IiwiXHUwYmVlIjoiOCIsIlx1MGJlZiI6IjkiLCJcdTBiZTYiOiIwIn07YWUuZGVmaW5lTG9jYWxlKCJ0YSIse21vbnRoczoiXHUwYjljXHUwYmE5XHUwYmI1XHUwYmIwXHUwYmJmX1x1MGJhYVx1MGJiZlx1MGJh'@; put 'YVx1MGJjZFx1MGJiMFx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWVcdTBiYmVcdTBiYjBcdTBiY2RcdTBiOWFcdTBiY2RfXHUwYjhmXHUwYmFhXHUwYmNkXHUwYmIwXHUwYmIyXHUwYmNkX1x1MGJhZVx1MGJjN19cdTBiOWNcdTBiYzJcdTBiYTlcdTBiY2RfXHUwYjljXHUwYmMyXHUwYmIyXHUw'@; put 'YmM4X1x1MGI4Nlx1MGI5NVx1MGJiOFx1MGJjZFx1MGI5Zlx1MGJjZF9cdTBiOWFcdTBiYzZcdTBiYWFcdTBiY2RcdTBiOWZcdTBiYzZcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjg1XHUwYjk1XHUwYmNkXHUwYjlmXHUwYmM3XHUwYmJlXHUwYmFhXHUwYmIwXHUwYmNkX1x1'@; put 'MGJhOFx1MGJiNVx1MGJhZVx1MGJjZFx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiOWZcdTBiYmZcdTBiOWFcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2QiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGI5Y1x1MGJhOVx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWFcdTBiYmZcdTBiYWFc'@; put 'dTBiY2RcdTBiYjBcdTBiYjVcdTBiYjBcdTBiYmZfXHUwYmFlXHUwYmJlXHUwYmIwXHUwYmNkXHUwYjlhXHUwYmNkX1x1MGI4Zlx1MGJhYVx1MGJjZFx1MGJiMFx1MGJiMlx1MGJjZF9cdTBiYWVcdTBiYzdfXHUwYjljXHUwYmMyXHUwYmE5XHUwYmNkX1x1MGI5Y1x1MGJjMlx1MGJiMlx1MGJj'@; put 'OF9cdTBiODZcdTBiOTVcdTBiYjhcdTBiY2RcdTBiOWZcdTBiY2RfXHUwYjlhXHUwYmM2XHUwYmFhXHUwYmNkXHUwYjlmXHUwYmM2XHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGI4NVx1MGI5NVx1MGJjZFx1MGI5Zlx1MGJjN1x1MGJiZVx1MGJhYVx1MGJiMFx1MGJjZF9cdTBi'@; put 'YThcdTBiYjVcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjlmXHUwYmJmXHUwYjlhXHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTBiOWVcdTBiYmVcdTBiYWZcdTBiYmZcdTBiYjFcdTBiY2RcdTBiYjFcdTBiYzFcdTBiOTVc'@; put 'dTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmE0XHUwYmJmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYjlmXHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGI5YVx1MGJjNlx1MGJiNVx1MGJjZFx1MGJiNVx1MGJiZVx1MGJhZlx1MGJjZFx1MGI5NVx1'@; put 'MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiYWFcdTBiYzFcdTBiYTRcdTBiYTlcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmI1XHUwYmJmXHUwYmFmXHUwYmJlXHUwYmI0XHUwYjk1XHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGJiNVx1'@; put 'MGJjNlx1MGJiM1x1MGJjZFx1MGJiM1x1MGJiZlx1MGI5NVx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiOWFcdTBiYTlcdTBiYmZcdTBiOTVcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzgiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwYjll'@; put 'XHUwYmJlXHUwYmFmXHUwYmJmXHUwYmIxXHUwYmMxX1x1MGJhNFx1MGJiZlx1MGI5OVx1MGJjZFx1MGI5NVx1MGJiM1x1MGJjZF9cdTBiOWFcdTBiYzZcdTBiYjVcdTBiY2RcdTBiYjVcdTBiYmVcdTBiYWZcdTBiY2RfXHUwYmFhXHUwYmMxXHUwYmE0XHUwYmE5XHUwYmNkX1x1MGJiNVx1MGJi'@; put 'Zlx1MGJhZlx1MGJiZVx1MGJiNFx1MGJhOVx1MGJjZF9cdTBiYjVcdTBiYzZcdTBiYjNcdTBiY2RcdTBiYjNcdTBiYmZfXHUwYjlhXHUwYmE5XHUwYmJmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBiOWVcdTBiYmVfXHUwYmE0XHUwYmJmX1x1MGI5YVx1MGJjNl9cdTBiYWFcdTBiYzFf'@; put 'XHUwYmI1XHUwYmJmX1x1MGJiNVx1MGJjNl9cdTBiOWEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZ'@; put 'WVksIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBiODdcdTBiYTlcdTBiY2RcdTBiYjFcdTBiYzFdIExUIixuZXh0RGF5OiJbXHUwYmE4XHUwYmJlXHUwYmIzXHUwYmM4XSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYmE4XHUwYmM3XHUwYmIxXHUwYmNkXHUw'@; put 'YmIxXHUwYmMxXSBMVCIsbGFzdFdlZWs6IltcdTBiOTVcdTBiOWZcdTBiYThcdTBiY2RcdTBiYTQgXHUwYmI1XHUwYmJlXHUwYmIwXHUwYmFlXHUwYmNkXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYjg3XHUwYmIyXHUwYmNkIixwYXN0OiIl'@; put 'cyBcdTBiYWVcdTBiYzFcdTBiYTlcdTBiY2QiLHM6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiOWFcdTBiYmZcdTBiYjIgXHUwYmI1XHUwYmJmXHUwYmE4XHUwYmJlXHUwYjlmXHUwYmJmXHUwYjk1XHUwYmIzXHUwYmNkIixzczoiJWQgXHUwYmI1XHUwYmJmXHUwYmE4XHUwYmJlXHUwYjlmXHUw'@; put 'YmJmXHUwYjk1XHUwYmIzXHUwYmNkIixtOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJmXHUwYjlmXHUwYmFlXHUwYmNkIixtbToiJWQgXHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJmXHUwYjlmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYmIzXHUwYmNkIixoOiJcdTBi'@; put 'OTJcdTBiYjBcdTBiYzEgXHUwYmFlXHUwYmEzXHUwYmJmIFx1MGJhOFx1MGJjN1x1MGJiMFx1MGJhZVx1MGJjZCIsaGg6IiVkIFx1MGJhZVx1MGJhM1x1MGJiZiBcdTBiYThcdTBiYzdcdTBiYjBcdTBiYWVcdTBiY2QiLGQ6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYThcdTBiYmVcdTBiYjNc'@; put 'dTBiY2QiLGRkOiIlZCBcdTBiYThcdTBiYmVcdTBiOWZcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2QiLE06Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYWVcdTBiYmVcdTBiYTRcdTBiYWVcdTBiY2QiLE1NOiIlZCBcdTBiYWVcdTBiYmVcdTBiYTRcdTBiOTlcdTBiY2RcdTBiOTVcdTBiYjNcdTBi'@; put 'Y2QiLHk6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYjVcdTBiYjBcdTBiYzFcdTBiOWZcdTBiYWVcdTBiY2QiLHl5OiIlZCBcdTBiODZcdTBiYTNcdTBiY2RcdTBiOWZcdTBiYzFcdTBiOTVcdTBiYjNcdTBiY2QifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHUwYmI1XHUwYmE0'@; put 'XHUwYmMxLyxvcmRpbmFsOmZ1bmN0aW9uKE0pe3JldHVybiBNKyJcdTBiYjVcdTBiYTRcdTBiYzEifSxwcmVwYXJzZTpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC9bXHUwYmU3XHUwYmU4XHUwYmU5XHUwYmVhXHUwYmViXHUwYmVjXHUwYmVkXHUwYmVlXHUwYmVmXHUwYmU2XS9nLGZ1'@; put 'bmN0aW9uKE8pe3JldHVybiBtW09dfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE0ucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihPKXtyZXR1cm4geFtPXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2R8XHUwYmI1XHUwYmM4XHUwYjk1XHUw'@; put 'YmIxXHUwYmM4fFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJjOHxcdTBiYThcdTBiYTNcdTBiY2RcdTBiYWFcdTBiOTVcdTBiYjJcdTBiY2R8XHUwYjhlXHUwYmIxXHUwYmNkXHUwYmFhXHUwYmJlXHUwYjlmXHUwYmMxfFx1MGJhZVx1MGJiZVx1MGJiMlx1MGJjOC8sbWVyaWRpZW06ZnVuY3Rpb24o'@; put 'TSxPLFIpe3JldHVybiBNPDI/IiBcdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2QiOk08Nj8iIFx1MGJiNVx1MGJjOFx1MGI5NVx1MGJiMVx1MGJjOCI6TTwxMD8iIFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJjOCI6TTwxND8iIFx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJi'@; put 'Mlx1MGJjZCI6TTwxOD8iIFx1MGI4ZVx1MGJiMVx1MGJjZFx1MGJhYVx1MGJiZVx1MGI5Zlx1MGJjMSI6TTwyMj8iIFx1MGJhZVx1MGJiZVx1MGJiMlx1MGJjOCI6IiBcdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2QifSxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTSxPKXtyZXR1cm4gMTI9'@; put 'PT1NJiYoTT0wKSwiXHUwYmFmXHUwYmJlXHUwYmFlXHUwYmFlXHUwYmNkIj09PU8/TTwyP006TSsxMjoiXHUwYmI1XHUwYmM4XHUwYjk1XHUwYmIxXHUwYmM4Ij09PU98fCJcdTBiOTVcdTBiYmVcdTBiYjJcdTBiYzgiPT09T3x8Ilx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJi'@; put 'Mlx1MGJjZCI9PT1PJiZNPj0xMD9NOk0rMTJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShGKDE2Njc2KSl9LDk4MTE4OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgidGUiLHttb250aHM6Ilx1MGMxY1x1MGMyOFx1MGMzNVx1MGMz'@; put 'MFx1MGMzZl9cdTBjMmJcdTBjM2ZcdTBjMmNcdTBjNGRcdTBjMzBcdTBjMzVcdTBjMzBcdTBjM2ZfXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUwYzFhXHUwYzNmX1x1MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1MGMzZlx1MGMzMlx1MGM0ZF9cdTBjMmVcdTBjNDdfXHUwYzFjXHUwYzQyXHUw'@; put 'YzI4XHUwYzRkX1x1MGMxY1x1MGM0MVx1MGMzMlx1MGM0OF9cdTBjMDZcdTBjMTdcdTBjMzhcdTBjNGRcdTBjMWZcdTBjNDFfXHUwYzM4XHUwYzQ2XHUwYzJhXHUwYzRkXHUwYzFmXHUwYzQ2XHUwYzAyXHUwYzJjXHUwYzMwXHUwYzRkX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Ylx1'@; put 'MGMyY1x1MGMzMFx1MGM0ZF9cdTBjMjhcdTBjMzVcdTBjMDJcdTBjMmNcdTBjMzBcdTBjNGRfXHUwYzIxXHUwYzNmXHUwYzM4XHUwYzQ2XHUwYzAyXHUwYzJjXHUwYzMwXHUwYzRkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBjMWNcdTBjMjguX1x1MGMyYlx1MGMzZlx1MGMyY1x1MGM0'@; put 'ZFx1MGMzMC5fXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUwYzFhXHUwYzNmX1x1MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1MGMzZi5fXHUwYzJlXHUwYzQ3X1x1MGMxY1x1MGM0Mlx1MGMyOFx1MGM0ZF9cdTBjMWNcdTBjNDFcdTBjMzJcdTBjNDhfXHUwYzA2XHUwYzE3Ll9cdTBjMzhcdTBj'@; put 'NDZcdTBjMmFcdTBjNGQuX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Yi5fXHUwYzI4XHUwYzM1Ll9cdTBjMjFcdTBjM2ZcdTBjMzhcdTBjNDYuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGMwNlx1MGMyNlx1MGMzZlx1MGMzNVx1MGMzZVx1MGMz'@; put 'MFx1MGMwMl9cdTBjMzhcdTBjNGJcdTBjMmVcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzJlXHUwYzAyXHUwYzE3XHUwYzMzXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1MGMyY1x1MGM0MVx1MGMyN1x1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMTdcdTBjNDFcdTBjMzBcdTBj'@; put 'NDFcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzM2XHUwYzQxXHUwYzE1XHUwYzRkXHUwYzMwXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1MGMzNlx1MGMyOFx1MGMzZlx1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBjMDZcdTBjMjZc'@; put 'dTBjM2ZfXHUwYzM4XHUwYzRiXHUwYzJlX1x1MGMyZVx1MGMwMlx1MGMxN1x1MGMzM19cdTBjMmNcdTBjNDFcdTBjMjdfXHUwYzE3XHUwYzQxXHUwYzMwXHUwYzQxX1x1MGMzNlx1MGM0MVx1MGMxNVx1MGM0ZFx1MGMzMF9cdTBjMzZcdTBjMjhcdTBjM2YiLnNwbGl0KCJfIiksd2Vla2RheXNN'@; put 'aW46Ilx1MGMwNl9cdTBjMzhcdTBjNGJfXHUwYzJlXHUwYzAyX1x1MGMyY1x1MGM0MV9cdTBjMTdcdTBjNDFfXHUwYzM2XHUwYzQxX1x1MGMzNiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0g'@; put 'WVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBjMjhcdTBjNDdcdTBjMjFcdTBjNDFdIExUIixuZXh0RGF5OiJbXHUwYzMwXHUwYzQ3XHUwYzJhXHUwYzQxXSBMVCIsbmV4dFdlZWs6'@; put 'ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYzI4XHUwYzNmXHUwYzI4XHUwYzRkXHUwYzI4XSBMVCIsbGFzdFdlZWs6IltcdTBjMTdcdTBjMjRdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTBjMzJcdTBjNGIiLHBhc3Q6IiVzIFx1MGMxNVx1MGM0'@; put 'ZFx1MGMzMFx1MGMzZlx1MGMyNFx1MGMwMiIsczoiXHUwYzE1XHUwYzRhXHUwYzI4XHUwYzRkXHUwYzI4XHUwYzNmIFx1MGMxNVx1MGM0ZFx1MGMzN1x1MGMyM1x1MGMzZVx1MGMzMlx1MGM0MSIsc3M6IiVkIFx1MGMzOFx1MGM0Nlx1MGMxNVx1MGMyOFx1MGM0ZFx1MGMzMlx1MGM0MSIsbToi'@; put 'XHUwYzEyXHUwYzE1IFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1MGMzN1x1MGMwMiIsbW06IiVkIFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1MGMzN1x1MGMzZVx1MGMzMlx1MGM0MSIsaDoiXHUwYzEyXHUwYzE1IFx1MGMxN1x1MGMwMlx1MGMxZiIsaGg6IiVkIFx1MGMxN1x1MGMwMlx1'@; put 'MGMxZlx1MGMzMlx1MGM0MSIsZDoiXHUwYzEyXHUwYzE1IFx1MGMzMFx1MGM0Ylx1MGMxY1x1MGM0MSIsZGQ6IiVkIFx1MGMzMFx1MGM0Ylx1MGMxY1x1MGM0MVx1MGMzMlx1MGM0MSIsTToiXHUwYzEyXHUwYzE1IFx1MGMyOFx1MGM0Nlx1MGMzMiIsTU06IiVkIFx1MGMyOFx1MGM0Nlx1MGMz'@; put 'Mlx1MGMzMlx1MGM0MSIseToiXHUwYzEyXHUwYzE1IFx1MGMzOFx1MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1MGMzOFx1MGMzMFx1MGMwMiIseXk6IiVkIFx1MGMzOFx1MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1MGMzOFx1MGMzMFx1MGMzZVx1MGMzMlx1MGM0MSJ9LGRheU9mTW9udGhPcmRp'@; put 'bmFsUGFyc2U6L1xkezEsMn1cdTBjMzUvLG9yZGluYWw6IiVkXHUwYzM1IixtZXJpZGllbVBhcnNlOi9cdTBjMzBcdTBjM2VcdTBjMjRcdTBjNGRcdTBjMzBcdTBjM2Z8XHUwYzA5XHUwYzI2XHUwYzJmXHUwYzAyfFx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1MGM0ZFx1'@; put 'MGMyOFx1MGMwMnxcdTBjMzhcdTBjM2VcdTBjMmZcdTBjMDJcdTBjMjRcdTBjNGRcdTBjMzBcdTBjMDIvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihtLGxlKXtyZXR1cm4gMTI9PT1tJiYobT0wKSwiXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIj09PWxlP208ND9tOm0rMTI6'@; put 'Ilx1MGMwOVx1MGMyNlx1MGMyZlx1MGMwMiI9PT1sZT9tOiJcdTBjMmVcdTBjMjdcdTBjNGRcdTBjMmZcdTBjM2VcdTBjMzlcdTBjNGRcdTBjMjhcdTBjMDIiPT09bGU/bT49MTA/bTptKzEyOiJcdTBjMzhcdTBjM2VcdTBjMmZcdTBjMDJcdTBjMjRcdTBjNGRcdTBjMzBcdTBjMDIiPT09bGU/'@; put 'bSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKG0sbGUsTSl7cmV0dXJuIG08ND8iXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIjptPDEwPyJcdTBjMDlcdTBjMjZcdTBjMmZcdTBjMDIiOm08MTc/Ilx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1'@; put 'MGM0ZFx1MGMyOFx1MGMwMiI6bTwyMD8iXHUwYzM4XHUwYzNlXHUwYzJmXHUwYzAyXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzAyIjoiXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEYoMTY2NzYpKX0sMjYyNzg6ZnVuY3Rpb24oYXQs'@; put 'SWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJ0ZXQiLHttb250aHM6IkphbmVpcnVfRmV2ZXJlaXJ1X01hcnN1X0FicmlsX01haXVfSnVceGYxdV9KdWxsdV9BZ3VzdHVfU2V0ZW1icnVfT3V0dWJydV9Ob3ZlbWJydV9EZXplbWJydSIuc3BsaXQoIl8i'@; put 'KSxtb250aHNTaG9ydDoiSmFuX0Zldl9NYXJfQWJyX01haV9KdW5fSnVsX0Fnb19TZXRfT3V0X05vdl9EZXoiLnNwbGl0KCJfIiksd2Vla2RheXM6IkRvbWluZ3VfU2VndW5kYV9UZXJzYV9LdWFydGFfS2ludGFfU2VzdGFfU2FiYWR1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkRvbV9T'@; put 'ZWdfVGVyc19LdWFfS2ludF9TZXN0X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiRG9fU2VnX1RlX0t1X0tpX1Nlc19TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoi'@; put 'RCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPaGluIGloYV0gTFQiLG5leHREYXk6IltBYmFuIGloYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtpaGFdIExUIixsYXN0RGF5OiJbSG9yaXNlaWsgaWhhXSBMVCIsbGFz'@; put 'dFdlZWs6ImRkZGQgW3NlbWFuYSBrb3R1a10gW2loYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImloYSAlcyIscGFzdDoiJXMgbGl1YmEiLHM6InNlZ3VuZHUgYmFsdW4iLHNzOiJzZWd1bmR1ICVkIixtOiJtaW51dHUgaWRhIixtbToibWludXR1ICVkIixoOiJv'@; put 'cmFzIGlkYSIsaGg6Im9yYXMgJWQiLGQ6Imxvcm9uIGlkYSIsZGQ6Imxvcm9uICVkIixNOiJmdWxhbiBpZGEiLE1NOiJmdWxhbiAlZCIseToidGluYW4gaWRhIix5eToidGluYW4gJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5j'@; put 'dGlvbihtKXt2YXIgbGU9bSUxMDtyZXR1cm4gbSsoMT09fn4obSUxMDAvMTApPyJ0aCI6MT09PWxlPyJzdCI6Mj09PWxlPyJuZCI6Mz09PWxlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDM2OTg3OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7'@; put 'InVzZSBzdHJpY3QiO3ZhciB4PXswOiItXHUwNDQzXHUwNDNjIiwxOiItXHUwNDQzXHUwNDNjIiwyOiItXHUwNDRlXHUwNDNjIiwzOiItXHUwNDRlXHUwNDNjIiw0OiItXHUwNDQzXHUwNDNjIiw1OiItXHUwNDQzXHUwNDNjIiw2OiItXHUwNDQzXHUwNDNjIiw3OiItXHUwNDQzXHUwNDNjIiw4'@; put 'OiItXHUwNDQzXHUwNDNjIiw5OiItXHUwNDQzXHUwNDNjIiwxMDoiLVx1MDQ0M1x1MDQzYyIsMTI6Ii1cdTA0NDNcdTA0M2MiLDEzOiItXHUwNDQzXHUwNDNjIiwyMDoiLVx1MDQ0M1x1MDQzYyIsMzA6Ii1cdTA0NGVcdTA0M2MiLDQwOiItXHUwNDQzXHUwNDNjIiw1MDoiLVx1MDQ0M1x1MDQz'@; put 'YyIsNjA6Ii1cdTA0NDNcdTA0M2MiLDcwOiItXHUwNDQzXHUwNDNjIiw4MDoiLVx1MDQ0M1x1MDQzYyIsOTA6Ii1cdTA0NDNcdTA0M2MiLDEwMDoiLVx1MDQ0M1x1MDQzYyJ9O2FlLmRlZmluZUxvY2FsZSgidGciLHttb250aHM6e2Zvcm1hdDoiXHUwNDRmXHUwNDNkXHUwNDMyXHUwNDMwXHUw'@; put 'NDQwXHUwNDM4X1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYlx1MDQzOF9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiXHUwNDM4X1x1MDQzY1x1MDQzMFx1MDQzOVx1MDQzOF9cdTA0MzhcdTA0NGVcdTA0M2Rc'@; put 'dTA0MzhfXHUwNDM4XHUwNDRlXHUwNDNiXHUwNDM4X1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOF9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0MzhfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDM4'@; put 'X1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQzOF9cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBcdTA0MzgiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNDRmXHUwNDNkXHUwNDMyXHUwNDMwXHUwNDQwX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQz'@; put 'MFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RfXHUwNDM4XHUwNDRlXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFc'@; put 'dTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDAiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0'@; put 'OiJcdTA0NGZcdTA0M2RcdTA0MzJfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1MDQzMFx1MDQ0MF9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZF9cdTA0MzhcdTA0NGVcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQz'@; put 'NVx1MDQzZF9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDRmX1x1MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDRmXHUwNDNhXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDQzNFx1MDQ0M1x1MDQ0OFx1MDQzMFx1MDQzZFx1MDQz'@; put 'MVx1MDQzNV9cdTA0NDFcdTA0MzVcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzVfXHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDQzZlx1MDQzMFx1MDQzZFx1MDRiN1x1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzNV9cdTA0YjdcdTA0'@; put 'NDNcdTA0M2NcdTA0NGFcdTA0MzBfXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQ0Zlx1MDQ0OFx1MDQzMV9cdTA0MzRcdTA0NDhcdTA0MzFfXHUwNDQxXHUwNDQ4XHUwNDMxX1x1MDQ0N1x1MDQ0OFx1MDQzMV9cdTA0M2ZcdTA0'@; put 'NDhcdTA0MzFfXHUwNGI3XHUwNDQzXHUwNDNjX1x1MDQ0OFx1MDQzZFx1MDQzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDRmXHUwNDQ4X1x1MDQzNFx1MDQ0OF9cdTA0NDFcdTA0NDhfXHUwNDQ3XHUwNDQ4X1x1MDQzZlx1MDQ0OF9cdTA0YjdcdTA0M2NfXHUwNDQ4XHUwNDMxIi5z'@; put 'cGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQx'@; put 'OFx1MDQzY1x1MDQ0MFx1MDRlZlx1MDQzNyBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJcdTA0MzhdIExUIixuZXh0RGF5OiJbXHUwNDI0XHUwNDMwXHUwNDQwXHUwNDM0XHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLGxhc3REYXk6IltcdTA0MTRcdTA0MzhcdTA0'@; put 'NDBcdTA0ZWZcdTA0MzcgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXHUwNDM4XSBMVCIsbmV4dFdlZWs6ImRkZGRbXHUwNDM4XSBbXHUwNGIzXHUwNDMwXHUwNDQ0XHUwNDQyXHUwNDMwXHUwNDM4IFx1MDQzZVx1MDQ0Zlx1MDQzZFx1MDQzNFx1MDQzMCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0'@; put 'NDJcdTA0MzhdIExUIixsYXN0V2VlazoiZGRkZFtcdTA0MzhdIFtcdTA0YjNcdTA0MzBcdTA0NDRcdTA0NDJcdTA0MzBcdTA0MzggXHUwNDMzXHUwNDQzXHUwNDM3XHUwNDMwXHUwNDQ4XHUwNDQyXHUwNDMwIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLHNhbWVFbHNlOiJM'@; put 'In0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQzMVx1MDQzMFx1MDQ0YVx1MDQzNFx1MDQzOCAlcyIscGFzdDoiJXMgXHUwNDNmXHUwNDM1XHUwNDQ4IixzOiJcdTA0NGZcdTA0M2FcdTA0NDdcdTA0MzBcdTA0M2RcdTA0MzQgXHUwNDQxXHUwNDNlXHUwNDNkXHUwNDM4XHUwNDRmIixtOiJc'@; put 'dTA0NGZcdTA0M2EgXHUwNDM0XHUwNDMwXHUwNDliXHUwNDM4XHUwNDliXHUwNDMwIixtbToiJWQgXHUwNDM0XHUwNDMwXHUwNDliXHUwNDM4XHUwNDliXHUwNDMwIixoOiJcdTA0NGZcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyIixoaDoiJWQgXHUwNDQxXHUwNDNlXHUwNDMwXHUw'@; put 'NDQyIixkOiJcdTA0NGZcdTA0M2EgXHUwNDQwXHUwNGVmXHUwNDM3IixkZDoiJWQgXHUwNDQwXHUwNGVmXHUwNDM3IixNOiJcdTA0NGZcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNGIzIixNTToiJWQgXHUwNDNjXHUwNDNlXHUwNGIzIix5OiJcdTA0NGZcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDNi'@; put 'Iix5eToiJWQgXHUwNDQxXHUwNDNlXHUwNDNiIn0sbWVyaWRpZW1QYXJzZTovXHUwNDQ4XHUwNDMwXHUwNDMxfFx1MDQ0MVx1MDQ0M1x1MDQzMVx1MDRiM3xcdTA0NDBcdTA0ZWZcdTA0Mzd8XHUwNDMxXHUwNDM1XHUwNDMzXHUwNDNlXHUwNGIzLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24obGUs'@; put 'TSl7cmV0dXJuIDEyPT09bGUmJihsZT0wKSwiXHUwNDQ4XHUwNDMwXHUwNDMxIj09PU0/bGU8ND9sZTpsZSsxMjoiXHUwNDQxXHUwNDQzXHUwNDMxXHUwNGIzIj09PU0/bGU6Ilx1MDQ0MFx1MDRlZlx1MDQzNyI9PT1NP2xlPj0xMT9sZTpsZSsxMjoiXHUwNDMxXHUwNDM1XHUwNDMzXHUwNDNl'@; put 'XHUwNGIzIj09PU0/bGUrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihsZSxNLE8pe3JldHVybiBsZTw0PyJcdTA0NDhcdTA0MzBcdTA0MzEiOmxlPDExPyJcdTA0NDFcdTA0NDNcdTA0MzFcdTA0YjMiOmxlPDE2PyJcdTA0NDBcdTA0ZWZcdTA0MzciOmxlPDE5PyJcdTA0MzFcdTA0MzVc'@; put 'dTA0MzNcdTA0M2VcdTA0YjMiOiJcdTA0NDhcdTA0MzBcdTA0MzEifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NDNcdTA0M2N8XHUwNDRlXHUwNDNjKS8sb3JkaW5hbDpmdW5jdGlvbihsZSl7cmV0dXJuIGxlKyh4W2xlXXx8eFtsZSUxMF18fHhbbGU+PTEwMD8xMDA6'@; put 'bnVsbF0pfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oRigxNjY3NikpfSwzOTMyNTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoInRoIix7bW9udGhzOiJcdTBlMjFcdTBlMDFcdTBlMjNcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTAx'@; put 'XHUwZTM4XHUwZTIxXHUwZTIwXHUwZTMyXHUwZTFlXHUwZTMxXHUwZTE5XHUwZTE4XHUwZTRjX1x1MGUyMVx1MGUzNVx1MGUxOVx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlNDBcdTBlMjFcdTBlMjlcdTBlMzJcdTBlMjJcdTBlMTlfXHUwZTFlXHUwZTI0XHUwZTI5XHUwZTIwXHUwZTMyXHUwZTA0'@; put 'XHUwZTIxX1x1MGUyMVx1MGUzNFx1MGUxNlx1MGUzOFx1MGUxOVx1MGUzMlx1MGUyMlx1MGUxOV9cdTBlMDFcdTBlMjNcdTBlMDFcdTBlMGVcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTJhXHUwZTM0XHUwZTA3XHUwZTJiXHUwZTMyXHUwZTA0XHUwZTIxX1x1MGUwMVx1MGUzMVx1MGUxOVx1MGUy'@; put 'Mlx1MGUzMlx1MGUyMlx1MGUxOV9cdTBlMTVcdTBlMzhcdTBlMjVcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTFlXHUwZTI0XHUwZTI4XHUwZTA4XHUwZTM0XHUwZTAxXHUwZTMyXHUwZTIyXHUwZTE5X1x1MGUxOFx1MGUzMVx1MGUxOVx1MGUyN1x1MGUzMlx1MGUwNFx1MGUyMSIuc3BsaXQoIl8i'@; put 'KSxtb250aHNTaG9ydDoiXHUwZTIxLlx1MGUwNC5fXHUwZTAxLlx1MGUxZS5fXHUwZTIxXHUwZTM1Llx1MGUwNC5fXHUwZTQwXHUwZTIxLlx1MGUyMi5fXHUwZTFlLlx1MGUwNC5fXHUwZTIxXHUwZTM0Llx1MGUyMi5fXHUwZTAxLlx1MGUwNC5fXHUwZTJhLlx1MGUwNC5fXHUwZTAxLlx1MGUy'@; put 'Mi5fXHUwZTE1Llx1MGUwNC5fXHUwZTFlLlx1MGUyMi5fXHUwZTE4Llx1MGUwNC4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwZTJkXHUwZTMyXHUwZTE3XHUwZTM0XHUwZTE1XHUwZTIyXHUwZTRjX1x1MGUwOFx1MGUzMVx1MGUxOVx1MGUxN1x1MGUyM1x1'@; put 'MGU0Y19cdTBlMmRcdTBlMzFcdTBlMDdcdTBlMDRcdTBlMzJcdTBlMjNfXHUwZTFlXHUwZTM4XHUwZTE4X1x1MGUxZVx1MGUyNFx1MGUyYlx1MGUzMVx1MGUyYVx1MGUxYVx1MGUxNFx1MGUzNV9cdTBlMjhcdTBlMzhcdTBlMDFcdTBlMjNcdTBlNGNfXHUwZTQwXHUwZTJhXHUwZTMyXHUwZTIz'@; put 'XHUwZTRjIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGUyZFx1MGUzMlx1MGUxN1x1MGUzNFx1MGUxNVx1MGUyMlx1MGU0Y19cdTBlMDhcdTBlMzFcdTBlMTlcdTBlMTdcdTBlMjNcdTBlNGNfXHUwZTJkXHUwZTMxXHUwZTA3XHUwZTA0XHUwZTMyXHUwZTIzX1x1MGUxZVx1MGUzOFx1'@; put 'MGUxOF9cdTBlMWVcdTBlMjRcdTBlMmJcdTBlMzFcdTBlMmFfXHUwZTI4XHUwZTM4XHUwZTAxXHUwZTIzXHUwZTRjX1x1MGU0MFx1MGUyYVx1MGUzMlx1MGUyM1x1MGU0YyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwZTJkXHUwZTMyLl9cdTBlMDguX1x1MGUyZC5fXHUwZTFlLl9cdTBl'@; put 'MWVcdTBlMjQuX1x1MGUyOC5fXHUwZTJhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBcdTBlNDBcdTBlMjdcdTBl'@; put 'MjVcdTBlMzIgSDptbSIsTExMTDoiXHUwZTI3XHUwZTMxXHUwZTE5ZGRkZFx1MGUxN1x1MGUzNVx1MGU0OCBEIE1NTU0gWVlZWSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzIgSDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MGUwMVx1MGU0OFx1MGUyZFx1MGUxOVx1MGU0MFx1MGUxN1x1MGUzNVx1'@; put 'MGU0OFx1MGUyMlx1MGUwN3xcdTBlMmJcdTBlMjVcdTBlMzFcdTBlMDdcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBlMDcvLGlzUE06ZnVuY3Rpb24obSl7cmV0dXJuIlx1MGUyYlx1MGUyNVx1MGUzMVx1MGUwN1x1MGU0MFx1MGUxN1x1MGUzNVx1MGU0OFx1MGUyMlx1MGUwNyI9'@; put 'PT1tfSxtZXJpZGllbTpmdW5jdGlvbihtLGxlLE0pe3JldHVybiBtPDEyPyJcdTBlMDFcdTBlNDhcdTBlMmRcdTBlMTlcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBlMDciOiJcdTBlMmJcdTBlMjVcdTBlMzFcdTBlMDdcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBl'@; put 'MDcifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGUyN1x1MGUzMVx1MGUxOVx1MGUxOVx1MGUzNVx1MGU0OSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzJdIExUIixuZXh0RGF5OiJbXHUwZTFlXHUwZTIzXHUwZTM4XHUwZTQ4XHUwZTA3XHUwZTE5XHUwZTM1XHUwZTQ5IFx1MGU0MFx1MGUyN1x1'@; put 'MGUyNVx1MGUzMl0gTFQiLG5leHRXZWVrOiJkZGRkW1x1MGUyYlx1MGUxOVx1MGU0OVx1MGUzMiBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzJdIExUIixsYXN0RGF5OiJbXHUwZTQwXHUwZTIxXHUwZTM3XHUwZTQ4XHUwZTJkXHUwZTI3XHUwZTMyXHUwZTE5XHUwZTE5XHUwZTM1XHUwZTQ5IFx1'@; put 'MGU0MFx1MGUyN1x1MGUyNVx1MGUzMl0gTFQiLGxhc3RXZWVrOiJbXHUwZTI3XHUwZTMxXHUwZTE5XWRkZGRbXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTQxXHUwZTI1XHUwZTQ5XHUwZTI3IFx1MGU0MFx1MGUyN1x1MGUyNVx1MGUzMl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntm'@; put 'dXR1cmU6Ilx1MGUyZFx1MGUzNVx1MGUwMSAlcyIscGFzdDoiJXNcdTBlMTdcdTBlMzVcdTBlNDhcdTBlNDFcdTBlMjVcdTBlNDlcdTBlMjciLHM6Ilx1MGU0NFx1MGUyMVx1MGU0OFx1MGUwMVx1MGUzNVx1MGU0OFx1MGUyN1x1MGUzNFx1MGUxOVx1MGUzMlx1MGUxN1x1MGUzNSIsc3M6IiVk'@; put 'IFx1MGUyN1x1MGUzNFx1MGUxOVx1MGUzMlx1MGUxN1x1MGUzNSIsbToiMSBcdTBlMTlcdTBlMzJcdTBlMTdcdTBlMzUiLG1tOiIlZCBcdTBlMTlcdTBlMzJcdTBlMTdcdTBlMzUiLGg6IjEgXHUwZTBhXHUwZTMxXHUwZTQ4XHUwZTI3XHUwZTQyXHUwZTIxXHUwZTA3IixoaDoiJWQgXHUwZTBh'@; put 'XHUwZTMxXHUwZTQ4XHUwZTI3XHUwZTQyXHUwZTIxXHUwZTA3IixkOiIxIFx1MGUyN1x1MGUzMVx1MGUxOSIsZGQ6IiVkIFx1MGUyN1x1MGUzMVx1MGUxOSIsdzoiMSBcdTBlMmFcdTBlMzFcdTBlMWJcdTBlMTRcdTBlMzJcdTBlMmJcdTBlNGMiLHd3OiIlZCBcdTBlMmFcdTBlMzFcdTBlMWJc'@; put 'dTBlMTRcdTBlMzJcdTBlMmJcdTBlNGMiLE06IjEgXHUwZTQwXHUwZTE0XHUwZTM3XHUwZTJkXHUwZTE5IixNTToiJWQgXHUwZTQwXHUwZTE0XHUwZTM3XHUwZTJkXHUwZTE5Iix5OiIxIFx1MGUxYlx1MGUzNSIseXk6IiVkIFx1MGUxYlx1MGUzNSJ9fSl9KEYoMTY2NzYpKX0sNDM0ODU6ZnVu'@; put 'Y3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9ezE6IidpbmppIiw1OiInaW5qaSIsODoiJ2luamkiLDcwOiInaW5qaSIsODA6IidpbmppIiwyOiInbmppIiw3OiInbmppIiwyMDoiJ25qaSIsNTA6IiduamkiLDM6IidceGZjbmppIiw0OiInXHhmY25qaSIs'@; put 'MTAwOiInXHhmY25qaSIsNjoiJ25qeSIsOToiJ3VuankiLDEwOiIndW5qeSIsMzA6Iid1bmp5Iiw2MDoiJ3luankiLDkwOiIneW5qeSJ9O2FlLmRlZmluZUxvY2FsZSgidGsiLHttb250aHM6Ilx4ZGRhbndhcl9GZXdyYWxfTWFydF9BcHJlbF9NYVx4ZmRfSVx4ZmR1bl9JXHhmZHVsX0F3Z3Vz'@; put 'dF9TZW50XHhmZGFicl9Pa3RceGZkYWJyX05vXHhmZGFicl9EZWthYnIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx4ZGRhbl9GZXdfTWFyX0Fwcl9NYVx4ZmRfSVx4ZmRuX0lceGZkbF9Bd2dfU2VuX09rdF9Ob1x4ZmRfRGVrIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJceGRkZWtcdTAxNWZl'@; put 'bmJlX0R1XHUwMTVmZW5iZV9TaVx1MDE1ZmVuYmVfXHhjN2FyXHUwMTVmZW5iZV9QZW5cdTAxNWZlbmJlX0FubmFfXHUwMTVlZW5iZSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJceGRkZWtfRHVcdTAxNWZfU2lcdTAxNWZfXHhjN2FyX1Blbl9Bbm5fXHUwMTVlZW4iLnNwbGl0KCJfIiks'@; put 'd2Vla2RheXNNaW46Ilx4ZGRrX0RcdTAxNWZfU1x1MDE1Zl9ceGM3cl9Qbl9Bbl9cdTAxNWVuIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIs'@; put 'TExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2J1Z1x4ZmNuIHNhZ2F0XSBMVCIsbmV4dERheToiW2VydGlyIHNhZ2F0XSBMVCIsbmV4dFdlZWs6IltpbmRpa2ldIGRkZGQgW3NhZ2F0XSBMVCIsbGFzdERheToiW2RceGZjXHhmZG5dIExUIixsYXN0'@; put 'V2VlazoiW2dlXHhlN2VuXSBkZGRkIFtzYWdhdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHNvXHUwMTQ4IixwYXN0OiIlcyBceGY2XHUwMTQ4IixzOiJiaXJuXHhlNFx4ZTdlIHNla3VudCIsbToiYmlyIG1pbnV0IixtbToiJWQgbWludXQiLGg6ImJpciBz'@; put 'YWdhdCIsaGg6IiVkIHNhZ2F0IixkOiJiaXIgZ1x4ZmNuIixkZDoiJWQgZ1x4ZmNuIixNOiJiaXIgYVx4ZmQiLE1NOiIlZCBhXHhmZCIseToiYmlyIFx4ZmR5bCIseXk6IiVkIFx4ZmR5bCJ9LG9yZGluYWw6ZnVuY3Rpb24obGUsTSl7c3dpdGNoKE0pe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRv'@; put 'IjpjYXNlIkREIjpyZXR1cm4gbGU7ZGVmYXVsdDppZigwPT09bGUpcmV0dXJuIGxlKyIndW5qeSI7dmFyIE89bGUlMTA7cmV0dXJuIGxlKyh4W09dfHx4W2xlJTEwMC1PXXx8eFtsZT49MTAwPzEwMDpudWxsXSl9fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oRigxNjY3NikpfSw2ODE0ODpmdW5j'@; put 'dGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoInRsLXBoIix7bW9udGhzOiJFbmVyb19QZWJyZXJvX01hcnNvX0FicmlsX01heW9fSHVueW9fSHVseW9fQWdvc3RvX1NldHllbWJyZV9Pa3R1YnJlX05vYnllbWJyZV9EaXN5ZW1icmUiLnNw'@; put 'bGl0KCJfIiksbW9udGhzU2hvcnQ6IkVuZV9QZWJfTWFyX0Ficl9NYXlfSHVuX0h1bF9BZ29fU2V0X09rdF9Ob2JfRGlzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJMaW5nZ29fTHVuZXNfTWFydGVzX01peWVya3VsZXNfSHV3ZWJlc19CaXllcm5lc19TYWJhZG8iLnNwbGl0KCJfIiksd2Vla2Rh'@; put 'eXNTaG9ydDoiTGluX0x1bl9NYXJfTWl5X0h1d19CaXlfU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJMaV9MdV9NYV9NaV9IdV9CaV9TYWIiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiTU0vRC9ZWVlZIixMTDoiTU1NTSBELCBZ'@; put 'WVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBISDptbSIsTExMTDoiZGRkZCwgTU1NTSBERCwgWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJMVCBbbmdheW9uZyBhcmF3XSIsbmV4dERheToiW0J1a2FzIG5nXSBMVCIsbmV4dFdlZWs6IkxUIFtzYSBzdXN1bm9kIG5hXSBkZGRkIixsYXN0'@; put 'RGF5OiJMVCBba2FoYXBvbl0iLGxhc3RXZWVrOiJMVCBbbm9vbmcgbmFrYXJhYW5nXSBkZGRkIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJzYSBsb29iIG5nICVzIixwYXN0OiIlcyBhbmcgbmFrYWxpcGFzIixzOiJpbGFuZyBzZWd1bmRvIixzczoiJWQgc2VndW5kbyIs'@; put 'bToiaXNhbmcgbWludXRvIixtbToiJWQgbWludXRvIixoOiJpc2FuZyBvcmFzIixoaDoiJWQgb3JhcyIsZDoiaXNhbmcgYXJhdyIsZGQ6IiVkIGFyYXciLE06ImlzYW5nIGJ1d2FuIixNTToiJWQgYnV3YW4iLHk6ImlzYW5nIHRhb24iLHl5OiIlZCB0YW9uIn0sZGF5T2ZNb250aE9yZGluYWxQ'@; put 'YXJzZTovXGR7MSwyfS8sb3JkaW5hbDpmdW5jdGlvbihtKXtyZXR1cm4gbX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEYoMTY2NzYpKX0sNTk2MTY6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7dmFyIHg9InBhZ2hfd2FcdTIwMTlfY2hhXHUyMDE5X3dlal9s'@; put 'b1NfdmFnaF9qYXZfU29jaF9jaG9yZ2hfSHV0Ii5zcGxpdCgiXyIpO2Z1bmN0aW9uIE0oeixLLEksayl7dmFyIEU9ZnVuY3Rpb24gTyh6KXt2YXIgSz1NYXRoLmZsb29yKHolMWUzLzEwMCksST1NYXRoLmZsb29yKHolMTAwLzEwKSxrPXolMTAsRT0iIjtyZXR1cm4gSz4wJiYoRSs9eFtLXSsi'@; put 'dmF0bGgiKSxJPjAmJihFKz0oIiIhPT1FPyIgIjoiIikreFtJXSsibWFIIiksaz4wJiYoRSs9KCIiIT09RT8iICI6IiIpK3hba10pLCIiPT09RT8icGFnaCI6RX0oeik7c3dpdGNoKEkpe2Nhc2Uic3MiOnJldHVybiBFKyIgbHVwIjtjYXNlIm1tIjpyZXR1cm4gRSsiIHR1cCI7Y2FzZSJoaCI6'@; put 'cmV0dXJuIEUrIiByZXAiO2Nhc2UiZGQiOnJldHVybiBFKyIgamFqIjtjYXNlIk1NIjpyZXR1cm4gRSsiIGphciI7Y2FzZSJ5eSI6cmV0dXJuIEUrIiBESVMifX1hZS5kZWZpbmVMb2NhbGUoInRsaCIse21vbnRoczoidGVyYVx1MjAxOSBqYXIgd2FcdTIwMTlfdGVyYVx1MjAxOSBqYXIgY2hh'@; put 'XHUyMDE5X3RlcmFcdTIwMTkgamFyIHdlal90ZXJhXHUyMDE5IGphciBsb1NfdGVyYVx1MjAxOSBqYXIgdmFnaF90ZXJhXHUyMDE5IGphciBqYXZfdGVyYVx1MjAxOSBqYXIgU29jaF90ZXJhXHUyMDE5IGphciBjaG9yZ2hfdGVyYVx1MjAxOSBqYXIgSHV0X3RlcmFcdTIwMTkgamFyIHdhXHUy'@; put 'MDE5bWFIX3RlcmFcdTIwMTkgamFyIHdhXHUyMDE5bWFIIHdhXHUyMDE5X3RlcmFcdTIwMTkgamFyIHdhXHUyMDE5bWFIIGNoYVx1MjAxOSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFyIHdhXHUyMDE5X2phciBjaGFcdTIwMTlfamFyIHdlal9qYXIgbG9TX2phciB2YWdoX2phciBqYXZf'@; put 'amFyIFNvY2hfamFyIGNob3JnaF9qYXIgSHV0X2phciB3YVx1MjAxOW1hSF9qYXIgd2FcdTIwMTltYUggd2FcdTIwMTlfamFyIHdhXHUyMDE5bWFIIGNoYVx1MjAxOSIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0'@; put 'bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibG9qbUl0amFqX0RhU2phal9wb3ZqYWpfZ2hJ'@; put 'dGxoamFqX2xvZ2hqYWpfYnVxamFqX2doSW5qYWoiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBI'@; put 'SDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbRGFIamFqXSBMVCIsbmV4dERheToiW3dhXHUyMDE5bGVTXSBMVCIsbmV4dFdlZWs6IkxMTCIsbGFzdERheToiW3dhXHUyMDE5SHVcdTIwMTldIExUIixsYXN0V2VlazoiTExMIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOmZ1'@; put 'bmN0aW9uIG0oeil7dmFyIEs9ejtyZXR1cm4tMSE9PXouaW5kZXhPZigiamFqIik/Sy5zbGljZSgwLC0zKSsibGVTIjotMSE9PXouaW5kZXhPZigiamFyIik/Sy5zbGljZSgwLC0zKSsid2FRIjotMSE9PXouaW5kZXhPZigiRElTIik/Sy5zbGljZSgwLC0zKSsibmVtIjpLKyIgcElxIn0scGFz'@; put 'dDpmdW5jdGlvbiBsZSh6KXt2YXIgSz16O3JldHVybi0xIT09ei5pbmRleE9mKCJqYWoiKT9LLnNsaWNlKDAsLTMpKyJIdVx1MjAxOSI6LTEhPT16LmluZGV4T2YoImphciIpP0suc2xpY2UoMCwtMykrIndlbiI6LTEhPT16LmluZGV4T2YoIkRJUyIpP0suc2xpY2UoMCwtMykrImJlbiI6Sysi'@; put 'IHJldCJ9LHM6InB1UyBsdXAiLHNzOk0sbToid2FcdTIwMTkgdHVwIixtbTpNLGg6IndhXHUyMDE5IHJlcCIsaGg6TSxkOiJ3YVx1MjAxOSBqYWoiLGRkOk0sTToid2FcdTIwMTkgamFyIixNTTpNLHk6IndhXHUyMDE5IERJUyIseXk6TX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwy'@; put 'fVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDI0MDQwOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PXsxOiInaW5jaSIsNToiJ2luY2kiLDg6IidpbmNpIiw3MDoiJ2luY2kiLDgwOiInaW5jaSIsMjoi'@; put 'J25jaSIsNzoiJ25jaSIsMjA6IiduY2kiLDUwOiInbmNpIiwzOiInXHhmY25jXHhmYyIsNDoiJ1x4ZmNuY1x4ZmMiLDEwMDoiJ1x4ZmNuY1x4ZmMiLDY6IiduY1x1MDEzMSIsOToiJ3VuY3UiLDEwOiIndW5jdSIsMzA6Iid1bmN1Iiw2MDoiJ1x1MDEzMW5jXHUwMTMxIiw5MDoiJ1x1MDEzMW5j'@; put 'XHUwMTMxIn07YWUuZGVmaW5lTG9jYWxlKCJ0ciIse21vbnRoczoiT2Nha19cdTAxNWV1YmF0X01hcnRfTmlzYW5fTWF5XHUwMTMxc19IYXppcmFuX1RlbW11el9BXHUwMTFmdXN0b3NfRXlsXHhmY2xfRWtpbV9LYXNcdTAxMzFtX0FyYWxcdTAxMzFrIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0'@; put 'OiJPY2FfXHUwMTVldWJfTWFyX05pc19NYXlfSGF6X1RlbV9BXHUwMTFmdV9FeWxfRWtpX0thc19BcmEiLnNwbGl0KCJfIiksd2Vla2RheXM6IlBhemFyX1BhemFydGVzaV9TYWxcdTAxMzFfXHhjN2FyXHUwMTVmYW1iYV9QZXJcdTAxNWZlbWJlX0N1bWFfQ3VtYXJ0ZXNpIi5zcGxpdCgiXyIp'@; put 'LHdlZWtkYXlzU2hvcnQ6IlBhel9QenRfU2FsX1x4Yzdhcl9QZXJfQ3VtX0NtdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiUHpfUHRfU2FfXHhjN2FfUGVfQ3VfQ3QiLnNwbGl0KCJfIiksbWVyaWRpZW06ZnVuY3Rpb24obGUsTSxPKXtyZXR1cm4gbGU8MTI/Tz8iXHhmNlx4ZjYiOiJceGQ2'@; put 'XHhkNiI6Tz8iXHhmNnMiOiJceGQ2UyJ9LG1lcmlkaWVtUGFyc2U6L1x4ZjZceGY2fFx4ZDZceGQ2fFx4ZjZzfFx4ZDZTLyxpc1BNOmZ1bmN0aW9uKGxlKXtyZXR1cm4iXHhmNnMiPT09bGV8fCJceGQ2UyI9PT1sZX0sbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIs'@; put 'TDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYnVnXHhmY24gc2FhdF0gTFQiLG5leHREYXk6Ilt5YXJcdTAxMzFuIHNhYXRdIExUIixuZXh0V2Vl'@; put 'azoiW2dlbGVjZWtdIGRkZGQgW3NhYXRdIExUIixsYXN0RGF5OiJbZFx4ZmNuXSBMVCIsbGFzdFdlZWs6IltnZVx4ZTdlbl0gZGRkZCBbc2FhdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHNvbnJhIixwYXN0OiIlcyBceGY2bmNlIixzOiJiaXJrYVx4ZTcg'@; put 'c2FuaXllIixzczoiJWQgc2FuaXllIixtOiJiaXIgZGFraWthIixtbToiJWQgZGFraWthIixoOiJiaXIgc2FhdCIsaGg6IiVkIHNhYXQiLGQ6ImJpciBnXHhmY24iLGRkOiIlZCBnXHhmY24iLHc6ImJpciBoYWZ0YSIsd3c6IiVkIGhhZnRhIixNOiJiaXIgYXkiLE1NOiIlZCBheSIseToiYmly'@; put 'IHlcdTAxMzFsIix5eToiJWQgeVx1MDEzMWwifSxvcmRpbmFsOmZ1bmN0aW9uKGxlLE0pe3N3aXRjaChNKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEbyI6Y2FzZSJERCI6cmV0dXJuIGxlO2RlZmF1bHQ6aWYoMD09PWxlKXJldHVybiBsZSsiJ1x1MDEzMW5jXHUwMTMxIjt2YXIgTz1sZSUxMDty'@; put 'ZXR1cm4gbGUrKHhbT118fHhbbGUlMTAwLU9dfHx4W2xlPj0xMDA/MTAwOm51bGxdKX19LHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDU5NDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlLE0sTyxSKXt2YXIgej17czpb'@; put 'InZpZW5zYXMgc2VjdW5kcyIsIidpZW5zYXMgc2VjdW5kcyJdLHNzOltsZSsiIHNlY3VuZHMiLGxlKyIgc2VjdW5kcyJdLG06WyInbiBtXHhlZHV0IiwiJ2llbnMgbVx4ZWR1dCJdLG1tOltsZSsiIG1ceGVkdXRzIixsZSsiIG1ceGVkdXRzIl0saDpbIiduIFx4ZmVvcmEiLCInaWVuc2EgXHhm'@; put 'ZW9yYSJdLGhoOltsZSsiIFx4ZmVvcmFzIixsZSsiIFx4ZmVvcmFzIl0sZDpbIiduIHppdWEiLCInaWVuc2Egeml1YSJdLGRkOltsZSsiIHppdWFzIixsZSsiIHppdWFzIl0sTTpbIiduIG1lcyIsIidpZW5zIG1lcyJdLE1NOltsZSsiIG1lc2VuIixsZSsiIG1lc2VuIl0seTpbIiduIGFyIiwi'@; put 'J2llbnMgYXIiXSx5eTpbbGUrIiBhcnMiLGxlKyIgYXJzIl19O3JldHVybiBSfHxNP3pbT11bMF06eltPXVsxXX1hZS5kZWZpbmVMb2NhbGUoInR6bCIse21vbnRoczoiSmFudWFyX0ZldnJhZ2xoX01hclx4ZTdfQXZyXHhlZnVfTWFpX0dceGZjbl9KdWxpYV9HdXNjaHRfU2V0ZW12YXJfTGlz'@; put 'dG9wXHhlNHRzX05vZW12YXJfWmVjZW12YXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZXZfTWFyX0F2cl9NYWlfR1x4ZmNuX0p1bF9HdXNfU2V0X0xpc19Ob2VfWmVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTXHhmYWxhZGlfTFx4ZmFuZVx4ZTdpX01haXR6aV9NXHhlMXJjdXJp'@; put 'X1hoXHhmYWFkaV9WaVx4ZTluZXJceGU3aV9TXHhlMXR1cmkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU1x4ZmFsX0xceGZhbl9NYWlfTVx4ZTFyX1hoXHhmYV9WaVx4ZTlfU1x4ZTF0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTXHhmYV9MXHhmYV9NYV9NXHhlMV9YaF9WaV9TXHhl'@; put 'MSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBbZGFsbGFzXSBZWVlZIixMTEw6IkQuIE1NTU0gW2RhbGxhc10gWVlZWSBISC5tbSIsTExMTDoiZGRkZCwgW2xpXSBELiBNTU1NIFtkYWxsYXNd'@; put 'IFlZWVkgSEgubW0ifSxtZXJpZGllbVBhcnNlOi9kXCdvfGRcJ2EvaSxpc1BNOmZ1bmN0aW9uKGxlKXtyZXR1cm4iZCdvIj09PWxlLnRvTG93ZXJDYXNlKCl9LG1lcmlkaWVtOmZ1bmN0aW9uKGxlLE0sTyl7cmV0dXJuIGxlPjExP08/ImQnbyI6IkQnTyI6Tz8iZCdhIjoiRCdBIn0sY2FsZW5k'@; put 'YXI6e3NhbWVEYXk6IltveGhpIFx4ZTBdIExUIixuZXh0RGF5OiJbZGVtXHhlMCBceGUwXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBdIExUIixsYXN0RGF5OiJbaWVpcmkgXHhlMF0gTFQiLGxhc3RXZWVrOiJbc1x4ZmNyIGVsXSBkZGRkIFtsYXN0ZXUgXHhlMF0gTFQiLHNhbWVFbHNlOiJM'@; put 'In0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9zcHJlaSAlcyIscGFzdDoiamElcyIsczptLHNzOm0sbSxtbTptLGg6bSxoaDptLGQ6bSxkZDptLE06bSxNTTptLHk6bSx5eTptfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95'@; put 'OjR9fSl9KEYoMTY2NzYpKX0sMjMyMjY6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJ0em0tbGF0biIse21vbnRoczoiaW5uYXlyX2JyXHUwMmU0YXlyXHUwMmU0X21hclx1MDJlNHNcdTAyZTRfaWJyaXJfbWF5eXdfeXdueXdf'@; put 'eXdseXd6X1x1MDI2M3dcdTAxNjF0X1x1MDE2MXd0YW5iaXJfa3RcdTAyZTR3YnJcdTAyZTRfbnd3YW5iaXJfZHdqbmJpciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiaW5uYXlyX2JyXHUwMmU0YXlyXHUwMmU0X21hclx1MDJlNHNcdTAyZTRfaWJyaXJfbWF5eXdfeXdueXdfeXdseXd6X1x1'@; put 'MDI2M3dcdTAxNjF0X1x1MDE2MXd0YW5iaXJfa3RcdTAyZTR3YnJcdTAyZTRfbnd3YW5iaXJfZHdqbmJpciIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiYXNhbWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19hc2ltd2FzX2FzaVx1MWUwZHlhcyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJh'@; put 'c2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNpXHUxZTBkeWFzIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNpXHUxZTBkeWFzIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6'@; put 'bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYXNka2ggZ10gTFQiLG5leHREYXk6Ilthc2thIGddIExUIixuZXh0'@; put 'V2VlazoiZGRkZCBbZ10gTFQiLGxhc3REYXk6Ilthc3NhbnQgZ10gTFQiLGxhc3RXZWVrOiJkZGRkIFtnXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFka2ggcyB5YW4gJXMiLHBhc3Q6InlhbiAlcyIsczoiaW1payIsc3M6IiVkIGltaWsiLG06Im1pbnVcdTFl'@; put 'MGQiLG1tOiIlZCBtaW51XHUxZTBkIixoOiJzYVx1MDI1YmEiLGhoOiIlZCB0YXNzYVx1MDI1YmluIixkOiJhc3MiLGRkOiIlZCBvc3NhbiIsTToiYXlvd3IiLE1NOiIlZCBpeXlpcm4iLHk6ImFzZ2FzIix5eToiJWQgaXNnYXNuIn0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShGKDE2Njc2KSl9'@; put 'LDgwNjczOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgidHptIix7bW9udGhzOiJcdTJkNDlcdTJkNGZcdTJkNGZcdTJkMzBcdTJkNjJcdTJkNTRfXHUyZDMxXHUyZDU1XHUyZDMwXHUyZDYyXHUyZDU1X1x1MmQ0ZVx1MmQzMFx1'@; put 'MmQ1NVx1MmQ1YV9cdTJkNDlcdTJkMzFcdTJkNTRcdTJkNDlcdTJkNTRfXHUyZDRlXHUyZDMwXHUyZDYyXHUyZDYyXHUyZDUzX1x1MmQ2Mlx1MmQ1M1x1MmQ0Zlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGRcdTJkNjJcdTJkNTNcdTJkNjNfXHUyZDU2XHUyZDUzXHUyZDViXHUyZDVj'@; put 'X1x1MmQ1Ylx1MmQ1M1x1MmQ1Y1x1MmQzMFx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkM2RcdTJkNWZcdTJkNTNcdTJkMzFcdTJkNTVfXHUyZDRmXHUyZDUzXHUyZDYxXHUyZDMwXHUyZDRmXHUyZDMxXHUyZDQ5XHUyZDU0X1x1MmQzN1x1MmQ1M1x1MmQ0YVx1MmQ0Zlx1MmQzMVx1MmQ0'@; put 'OVx1MmQ1NCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUyZDQ5XHUyZDRmXHUyZDRmXHUyZDMwXHUyZDYyXHUyZDU0X1x1MmQzMVx1MmQ1NVx1MmQzMFx1MmQ2Mlx1MmQ1NV9cdTJkNGVcdTJkMzBcdTJkNTVcdTJkNWFfXHUyZDQ5XHUyZDMxXHUyZDU0XHUyZDQ5XHUyZDU0X1x1MmQ0ZVx1'@; put 'MmQzMFx1MmQ2Mlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGZcdTJkNjJcdTJkNTNfXHUyZDYyXHUyZDUzXHUyZDRkXHUyZDYyXHUyZDUzXHUyZDYzX1x1MmQ1Nlx1MmQ1M1x1MmQ1Ylx1MmQ1Y19cdTJkNWJcdTJkNTNcdTJkNWNcdTJkMzBcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTRf'@; put 'XHUyZDNkXHUyZDVmXHUyZDUzXHUyZDMxXHUyZDU1X1x1MmQ0Zlx1MmQ1M1x1MmQ2MVx1MmQzMFx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkMzdcdTJkNTNcdTJkNGFcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTQiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MmQzMFx1MmQ1OVx1MmQzMFx1'@; put 'MmQ0ZVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNjJcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ1NFx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5'@; put 'XHUyZDRlXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQzOVx1MmQ2Mlx1MmQzMFx1MmQ1OSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTJkMzBcdTJkNTlcdTJkMzBcdTJkNGVcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDYyXHUyZDRmXHUyZDMwXHUyZDU5X1x1'@; put 'MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNTRcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDNkXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0ZVx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkMzlc'@; put 'dTJkNjJcdTJkMzBcdTJkNTkiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MmQzMFx1MmQ1OVx1MmQzMFx1MmQ0ZVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNjJcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ1'@; put 'NFx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRlXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQzOVx1MmQ2Mlx1MmQzMFx1MmQ1OSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhI'@; put 'Om1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MmQzMFx1MmQ1OVx1MmQzN1x1MmQ0NSBcdTJkMzRdIExUIixu'@; put 'ZXh0RGF5OiJbXHUyZDMwXHUyZDU5XHUyZDNkXHUyZDMwIFx1MmQzNF0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTJkMzRdIExUIixsYXN0RGF5OiJbXHUyZDMwXHUyZDVhXHUyZDMwXHUyZDRmXHUyZDVjIFx1MmQzNF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTJkMzRdIExUIixzYW1lRWxzZToi'@; put 'TCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTJkMzdcdTJkMzBcdTJkMzdcdTJkNDUgXHUyZDU5IFx1MmQ2Mlx1MmQzMFx1MmQ0ZiAlcyIscGFzdDoiXHUyZDYyXHUyZDMwXHUyZDRmICVzIixzOiJcdTJkNDlcdTJkNGVcdTJkNDlcdTJkM2QiLHNzOiIlZCBcdTJkNDlcdTJkNGVcdTJkNDlc'@; put 'dTJkM2QiLG06Ilx1MmQ0ZVx1MmQ0OVx1MmQ0Zlx1MmQ1M1x1MmQzYSIsbW06IiVkIFx1MmQ0ZVx1MmQ0OVx1MmQ0Zlx1MmQ1M1x1MmQzYSIsaDoiXHUyZDU5XHUyZDMwXHUyZDQ0XHUyZDMwIixoaDoiJWQgXHUyZDVjXHUyZDMwXHUyZDU5XHUyZDU5XHUyZDMwXHUyZDQ0XHUyZDQ5XHUyZDRm'@; put 'IixkOiJcdTJkMzBcdTJkNTlcdTJkNTkiLGRkOiIlZCBvXHUyZDU5XHUyZDU5XHUyZDMwXHUyZDRmIixNOiJcdTJkMzBcdTJkNjJvXHUyZDUzXHUyZDU0IixNTToiJWQgXHUyZDQ5XHUyZDYyXHUyZDYyXHUyZDQ5XHUyZDU0XHUyZDRmIix5OiJcdTJkMzBcdTJkNTlcdTJkMzNcdTJkMzBcdTJk'@; put 'NTkiLHl5OiIlZCBcdTJkNDlcdTJkNTlcdTJkMzNcdTJkMzBcdTJkNTlcdTJkNGYifSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEYoMTY2NzYpKX0sNjk1ODA6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJ1Zy1jbiIse21vbnRo'@; put 'czoiXHUwNjRhXHUwNjI3XHUwNjQ2XHUwNmNiXHUwNjI3XHUwNjMxX1x1MDY0MVx1MDZkMFx1MDZjYlx1MDYzMVx1MDYyN1x1MDY0NF9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MmFfXHUwNjI2XHUwNjI3XHUwNjdlXHUwNjMxXHUwNmQwXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MjZc'@; put 'dTA2NDlcdTA2NGFcdTA2YzdcdTA2NDZfXHUwNjI2XHUwNjQ5XHUwNjRhXHUwNmM3XHUwNjQ0X1x1MDYyNlx1MDYyN1x1MDZjYlx1MDYzYVx1MDZjN1x1MDYzM1x1MDYyYV9cdTA2MzNcdTA2ZDBcdTA2NDZcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjI2XHUwNmM2XHUwNjQz'@; put 'XHUwNjJhXHUwNmQ1XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0YVx1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MmZcdTA2ZDBcdTA2NDNcdTA2MjdcdTA2MjhcdTA2NDlcdTA2MzEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDY0YVx1MDYyN1x1MDY0Nlx1MDZj'@; put 'Ylx1MDYyN1x1MDYzMV9cdTA2NDFcdTA2ZDBcdTA2Y2JcdTA2MzFcdTA2MjdcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjJhX1x1MDYyNlx1MDYyN1x1MDY3ZVx1MDYzMVx1MDZkMFx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjI2XHUwNjQ5XHUwNjRhXHUwNmM3XHUwNjQ2X1x1'@; put 'MDYyNlx1MDY0OVx1MDY0YVx1MDZjN1x1MDY0NF9cdTA2MjZcdTA2MjdcdTA2Y2JcdTA2M2FcdTA2YzdcdTA2MzNcdTA2MmFfXHUwNjMzXHUwNmQwXHUwNjQ2XHUwNjJhXHUwNmQ1XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDYyNlx1MDZjNlx1MDY0M1x1MDYyYVx1MDZkNVx1MDYyOFx1MDY0OVx1'@; put 'MDYzMV9cdTA2NDZcdTA2NDhcdTA2NGFcdTA2MjdcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjJmXHUwNmQwXHUwNjQzXHUwNjI3XHUwNjI4XHUwNjQ5XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2NGFcdTA2ZDVcdTA2NDNcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUw'@; put 'NjJmXHUwNmM4XHUwNjM0XHUwNmQ1XHUwNjQ2XHUwNjI4XHUwNmQ1X1x1MDYzM1x1MDZkNVx1MDY0YVx1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2ODZcdTA2MjdcdTA2MzFcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjdlXHUwNmQ1XHUwNjRhXHUwNjM0XHUw'@; put 'NmQ1XHUwNjQ2XHUwNjI4XHUwNmQ1X1x1MDYyY1x1MDZjOFx1MDY0NVx1MDZkNV9cdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjRhXHUwNmQ1X1x1MDYyZlx1MDZjOF9cdTA2MzNcdTA2ZDVfXHUwNjg2XHUwNjI3X1x1MDY3ZVx1'@; put 'MDZkNV9cdTA2MmNcdTA2YzhfXHUwNjM0XHUwNmQ1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2NGFcdTA2ZDVfXHUwNjJmXHUwNmM4X1x1MDYzM1x1MDZkNV9cdTA2ODZcdTA2MjdfXHUwNjdlXHUwNmQ1X1x1MDYyY1x1MDZjOF9cdTA2MzRcdTA2ZDUiLnNwbGl0KCJfIiksbG9uZ0Rh'@; put 'dGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IllZWVktXHUwNjRhXHUwNjQ5XHUwNjQ0XHUwNjQ5TS1cdTA2MjZcdTA2MjdcdTA2NGFcdTA2NDZcdTA2NDlcdTA2YWRELVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OSIsTExMOiJZWVlZLVx1MDY0'@; put 'YVx1MDY0OVx1MDY0NFx1MDY0OU0tXHUwNjI2XHUwNjI3XHUwNjRhXHUwNjQ2XHUwNjQ5XHUwNmFkRC1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDlcdTA2MGMgSEg6bW0iLExMTEw6ImRkZGRcdTA2MGMgWVlZWS1cdTA2NGFcdTA2NDlcdTA2NDRcdTA2NDlNLVx1MDYyNlx1MDYyN1x1MDY0YVx1'@; put 'MDY0Nlx1MDY0OVx1MDZhZEQtXHUwNjQzXHUwNmM4XHUwNjQ2XHUwNjQ5XHUwNjBjIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjRhXHUwNmQwXHUwNjMxXHUwNjQ5XHUwNjQ1IFx1MDY0M1x1MDZkMFx1MDY4Nlx1MDZkNXxcdTA2MzNcdTA2ZDVcdTA2YmVcdTA2ZDVcdTA2MzF8XHUwNjg2'@; put 'XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NnxcdTA2ODZcdTA2YzhcdTA2MzR8XHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDY0M1x1MDZkMFx1MDY0YVx1MDY0OVx1MDY0NnxcdTA2NDNcdTA2ZDVcdTA2'@; put 'ODYvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihtLGxlKXtyZXR1cm4gMTI9PT1tJiYobT0wKSwiXHUwNjRhXHUwNmQwXHUwNjMxXHUwNjQ5XHUwNjQ1IFx1MDY0M1x1MDZkMFx1MDY4Nlx1MDZkNSI9PT1sZXx8Ilx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMSI9PT1sZXx8Ilx1MDY4Nlx1'@; put 'MDZjOFx1MDYzNFx1MDYyYVx1MDY0OVx1MDY0NiBcdTA2MjhcdTA2YzdcdTA2MzFcdTA2YzdcdTA2NDYiPT09bGU/bToiXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDY0M1x1MDZkMFx1MDY0YVx1MDY0OVx1MDY0NiI9PT1sZXx8Ilx1MDY0M1x1MDZkNVx1MDY4NiI9'@; put 'PT1sZT9tKzEyOm0+PTExP206bSsxMn0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXt2YXIgTz0xMDAqbStsZTtyZXR1cm4gTzw2MDA/Ilx1MDY0YVx1MDZkMFx1MDYzMVx1MDY0OVx1MDY0NSBcdTA2NDNcdTA2ZDBcdTA2ODZcdTA2ZDUiOk88OTAwPyJcdTA2MzNcdTA2ZDVcdTA2YmVcdTA2'@; put 'ZDVcdTA2MzEiOk88MTEzMD8iXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NiI6TzwxMjMwPyJcdTA2ODZcdTA2YzhcdTA2MzQiOk88MTgwMD8iXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDY0'@; put 'M1x1MDZkMFx1MDY0YVx1MDY0OVx1MDY0NiI6Ilx1MDY0M1x1MDZkNVx1MDY4NiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI4XHUwNmM4XHUwNmFmXHUwNmM4XHUwNjQ2IFx1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYV0gTFQiLG5leHREYXk6IltcdTA2MjZcdTA2ZDVcdTA2MmFc'@; put 'dTA2ZDUgXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsbmV4dFdlZWs6IltcdTA2NDNcdTA2ZDBcdTA2NDRcdTA2ZDVcdTA2MzFcdTA2NDNcdTA2NDldIGRkZGQgW1x1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYV0gTFQiLGxhc3REYXk6IltcdTA2MmFcdTA2YzZcdTA2'@; put 'NDZcdTA2YzhcdTA2YWZcdTA2YzhcdTA2NDZdIExUIixsYXN0V2VlazoiW1x1MDYyNlx1MDYyN1x1MDY0NFx1MDYyZlx1MDY0OVx1MDY0Nlx1MDY0Mlx1MDY0OV0gZGRkZCBbXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1'@; put 'dHVyZToiJXMgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2IixwYXN0OiIlcyBcdTA2MjhcdTA2YzdcdTA2MzFcdTA2YzdcdTA2NDYiLHM6Ilx1MDY0Nlx1MDZkNVx1MDY4Nlx1MDY4Nlx1MDZkNSBcdTA2MzNcdTA2ZDBcdTA2NDNcdTA2NDhcdTA2NDZcdTA2MmEiLHNzOiIlZCBcdTA2'@; put 'MzNcdTA2ZDBcdTA2NDNcdTA2NDhcdTA2NDZcdTA2MmEiLG06Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NDVcdTA2NDlcdTA2NDZcdTA2YzdcdTA2MmEiLG1tOiIlZCBcdTA2NDVcdTA2NDlcdTA2NDZcdTA2YzdcdTA2MmEiLGg6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2MzNcdTA2MjdcdTA2'@; put 'MjZcdTA2ZDVcdTA2MmEiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmEiLGQ6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NDNcdTA2YzhcdTA2NDYiLGRkOiIlZCBcdTA2NDNcdTA2YzhcdTA2NDYiLE06Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2MjZcdTA2MjdcdTA2NGEi'@; put 'LE1NOiIlZCBcdTA2MjZcdTA2MjdcdTA2NGEiLHk6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NGFcdTA2NDlcdTA2NDQiLHl5OiIlZCBcdTA2NGFcdTA2NDlcdTA2NDQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KC1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDl8LVx1MDYyNlx1'@; put 'MDYyN1x1MDY0YXwtXHUwNmJlXHUwNmQ1XHUwNjdlXHUwNjJhXHUwNmQ1KS8sb3JkaW5hbDpmdW5jdGlvbihtLGxlKXtzd2l0Y2gobGUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIG0rIi1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDkiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4g'@; put 'bSsiLVx1MDZiZVx1MDZkNVx1MDY3ZVx1MDYyYVx1MDZkNSI7ZGVmYXVsdDpyZXR1cm4gbX19LHByZXBhcnNlOmZ1bmN0aW9uKG0pe3JldHVybiBtLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24obSl7cmV0dXJuIG0ucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0s'@; put 'd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEYoMTY2NzYpKX0sODcyNzA6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShSLHosSyl7cmV0dXJuIm0iPT09Sz96PyJcdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0MzAiOiJc'@; put 'dTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0NDMiOiJoIj09PUs/ej8iXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDMwIjoiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDQzIjpSKyIgIitmdW5jdGlvbiB4KFIseil7dmFyIEs9Ui5zcGxp'@; put 'dCgiXyIpO3JldHVybiB6JTEwPT0xJiZ6JTEwMCE9MTE/S1swXTp6JTEwPj0yJiZ6JTEwPD00JiYoeiUxMDA8MTB8fHolMTAwPj0yMCk/S1sxXTpLWzJdfSh7c3M6ej8iXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1'@; put 'MDQzZFx1MDQzNFx1MDQzOF9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NDNfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4X1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0'@; put 'M1x1MDQzZFx1MDQzNCIsbW06ej8iXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDMwX1x1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZFx1MDQzOF9cdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2QiOiJcdTA0NDVcdTA0MzJcdTA0Mzhc'@; put 'dTA0M2JcdTA0MzhcdTA0M2RcdTA0NDNfXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDM4X1x1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZCIsaGg6ej8iXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDMwX1x1MDQzM1x1MDQzZVx1MDQz'@; put 'NFx1MDQzOFx1MDQzZFx1MDQzOF9cdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2QiOiJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDNfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM4X1x1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZCIsZGQ6Ilx1'@; put 'MDQzNFx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzRcdTA0M2RcdTA0NTZfXHUwNDM0XHUwNDNkXHUwNDU2XHUwNDMyIixNTToiXHUwNDNjXHUwNDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDRjX1x1MDQzY1x1MDQ1Nlx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQ1Nl9cdTA0M2NcdTA0NTZcdTA0NDFc'@; put 'dTA0NGZcdTA0NDZcdTA0NTZcdTA0MzIiLHl5OiJcdTA0NDBcdTA0NTZcdTA0M2FfXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDM4X1x1MDQ0MFx1MDQzZVx1MDQzYVx1MDQ1Nlx1MDQzMiJ9W0tdLCtSKX1mdW5jdGlvbiBNKFIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBSKyJcdTA0M2UiKygx'@; put 'MT09PXRoaXMuaG91cnMoKT8iXHUwNDMxIjoiIikrIl0gTFQifX1hZS5kZWZpbmVMb2NhbGUoInVrIix7bW9udGhzOntmb3JtYXQ6Ilx1MDQ0MVx1MDQ1Nlx1MDQ0N1x1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0NGVcdTA0NDJcdTA0M2VcdTA0MzNcdTA0M2VfXHUwNDMxXHUwNDM1XHUwNDQwXHUw'@; put 'NDM1XHUwNDM3XHUwNDNkXHUwNDRmX1x1MDQzYVx1MDQzMlx1MDQ1Nlx1MDQ0Mlx1MDQzZFx1MDQ0Zl9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2RcdTA0NGZfXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMyXHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQzOFx1MDQzZlx1MDQzZFx1MDQ0Zl9c'@; put 'dTA0NDFcdTA0MzVcdTA0NDBcdTA0M2ZcdTA0M2RcdTA0NGZfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmX1x1MDQzNlx1MDQzZVx1MDQzMlx1MDQ0Mlx1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0MzBcdTA0MzRc'@; put 'dTA0MzBfXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM0XHUwNDNkXHUwNDRmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQ0MVx1MDQ1Nlx1MDQ0N1x1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2JcdTA0NGVcdTA0NDJcdTA0MzhcdTA0MzlfXHUwNDMxXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3'@; put 'XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYVx1MDQzMlx1MDQ1Nlx1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQzOFx1MDQz'@; put 'Zlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0NDFcdTA0MzVcdTA0NDBcdTA0M2ZcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNlx1MDQzZVx1MDQzMlx1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2JcdTA0'@; put 'MzhcdTA0NDFcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0MzBcdTA0MzRfXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDoiXHUwNDQxXHUwNDU2XHUwNDQ3X1x1MDQzYlx1MDQ0ZVx1MDQ0Ml9cdTA0MzFcdTA0MzVcdTA0NDBf'@; put 'XHUwNDNhXHUwNDMyXHUwNDU2XHUwNDQyX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMl9cdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzJfXHUwNDNiXHUwNDM4XHUwNDNmX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzZl9cdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDM2XHUwNDNlXHUwNDMyXHUwNDQyX1x1'@; put 'MDQzYlx1MDQzOFx1MDQ0MVx1MDQ0Ml9cdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzQiLnNwbGl0KCJfIiksd2Vla2RheXM6ZnVuY3Rpb24gbGUoUix6KXt2YXIgSz17bm9taW5hdGl2ZToiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDRmX1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQz'@; put 'NVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQzZVx1MDQzYV9cdTA0MzJcdTA0NTZcdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2VcdTA0M2FfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0M2ZcdTIw'@; put 'MTlcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0NGZfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwIi5zcGxpdCgiXyIpLGFjY3VzYXRpdmU6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQ0ZV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0'@; put 'MzRcdTA0NTZcdTA0M2JcdTA0M2VcdTA0M2FfXHUwNDMyXHUwNDU2XHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNlXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M19cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNmXHUyMDE5XHUw'@; put 'NDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDRlX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0MyIuc3BsaXQoIl8iKSxnZW5pdGl2ZToiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDU2X1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1'@; put 'Nlx1MDQzYlx1MDQzYVx1MDQzMF9cdTA0MzJcdTA0NTZcdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2FcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM4X1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzM1x1MDQzMF9cdTA0M2ZcdTIw'@; put 'MTlcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0NTZfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDM4Ii5zcGxpdCgiXyIpfTtyZXR1cm4hMD09PVI/Sy5ub21pbmF0aXZlLnNsaWNlKDEsNykuY29uY2F0KEsubm9taW5hdGl2ZS5zbGljZSgwLDEpKTpSP0tbLyhc'@; put 'W1tcdTA0MTJcdTA0MzJcdTA0MjNcdTA0NDNdXF0pID9kZGRkLy50ZXN0KHopPyJhY2N1c2F0aXZlIjovXFs/KD86XHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDNlXHUwNDU3fFx1MDQzZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzZlx1MDQzZFx1MDQzZVx1MDQ1Nyk/'@; put 'ID9cXSA/ZGRkZC8udGVzdCh6KT8iZ2VuaXRpdmUiOiJub21pbmF0aXZlIl1bUi5kYXkoKV06Sy5ub21pbmF0aXZlfSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzRfXHUwNDNmXHUwNDNkX1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0'@; put 'NDFcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzZFx1MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDJfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixM'@; put 'VFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkgXHUwNDQwLiIsTExMOiJEIE1NTU0gWVlZWSBcdTA0NDAuLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgXHUwNDQwLiwgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpNKCJbXHUwNDIxXHUwNDRjXHUw'@; put 'NDNlXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDU2ICIpLG5leHREYXk6TSgiW1x1MDQxN1x1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQ0MFx1MDQzMCAiKSxsYXN0RGF5Ok0oIltcdTA0MTJcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzAgIiksbmV4dFdlZWs6TSgiW1x1MDQyM10gZGRkZCBbIiks'@; put 'bGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDU6Y2FzZSA2OnJldHVybiBNKCJbXHUwNDFjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDNlXHUwNDU3XSBkZGRkIFsiKS5jYWxsKHRoaXMpO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJl'@; put 'dHVybiBNKCJbXHUwNDFjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDNlXHUwNDMzXHUwNDNlXSBkZGRkIFsiKS5jYWxsKHRoaXMpfX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDM3XHUwNDMwICVzIixwYXN0OiIlcyBcdTA0NDJcdTA0M2VcdTA0M2NcdTA0'@; put 'NDMiLHM6Ilx1MDQzNFx1MDQzNVx1MDQzYVx1MDQ1Nlx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzMCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOm0sbSxtbTptLGg6Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyIsaGg6bSxkOiJcdTA0MzRcdTA0'@; put 'MzVcdTA0M2RcdTA0NGMiLGRkOm0sTToiXHUwNDNjXHUwNDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDRjIixNTTptLHk6Ilx1MDQ0MFx1MDQ1Nlx1MDQzYSIseXk6bX0sbWVyaWRpZW1QYXJzZTovXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDU2fFx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzYVx1MDQ0'@; put 'M3xcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDMwLyxpc1BNOmZ1bmN0aW9uKFIpe3JldHVybi9eKFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzApJC8udGVzdChSKX0sbWVyaWRpZW06ZnVu'@; put 'Y3Rpb24oUix6LEspe3JldHVybiBSPDQ/Ilx1MDQzZFx1MDQzZVx1MDQ0N1x1MDQ1NiI6UjwxMj8iXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDNhXHUwNDQzIjpSPDE3PyJcdTA0MzRcdTA0M2RcdTA0NGYiOiJcdTA0MzJcdTA0MzVcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzAifSxkYXlPZk1vbnRo'@; put 'T3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0Mzl8XHUwNDMzXHUwNDNlKS8sb3JkaW5hbDpmdW5jdGlvbihSLHope3N3aXRjaCh6KXtjYXNlIk0iOmNhc2UiZCI6Y2FzZSJEREQiOmNhc2UidyI6Y2FzZSJXIjpyZXR1cm4gUisiLVx1MDQzOSI7Y2FzZSJEIjpyZXR1cm4gUisiLVx1MDQzM1x1'@; put 'MDQzZSI7ZGVmYXVsdDpyZXR1cm4gUn19LHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDExNjU2OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciB4PVsiXHUwNjJjXHUwNjQ2XHUwNjQ4XHUwNjMxXHUwNmNjIiwiXHUwNjQxXHUwNjMxXHUw'@; put 'NjQ4XHUwNjMxXHUwNmNjIiwiXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjg2IiwiXHUwNjI3XHUwNjdlXHUwNjMxXHUwNmNjXHUwNjQ0IiwiXHUwNjQ1XHUwNjI2XHUwNmNjIiwiXHUwNjJjXHUwNjQ4XHUwNjQ2IiwiXHUwNjJjXHUwNjQ4XHUwNjQ0XHUwNjI3XHUwNjI2XHUwNmNjIiwiXHUwNjI3'@; put 'XHUwNmFmXHUwNjMzXHUwNjJhIiwiXHUwNjMzXHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjI3XHUwNmE5XHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxIiwiXHUwNjQ2XHUwNjQ4XHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjJmXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIl0sbT1bIlx1'@; put 'MDYyN1x1MDYyYVx1MDY0OFx1MDYyN1x1MDYzMSIsIlx1MDY3ZVx1MDZjY1x1MDYzMSIsIlx1MDY0NVx1MDY0Nlx1MDZhZlx1MDY0NCIsIlx1MDYyOFx1MDYyZlx1MDZiZSIsIlx1MDYyY1x1MDY0NVx1MDYzOVx1MDYzMVx1MDYyN1x1MDYyYSIsIlx1MDYyY1x1MDY0NVx1MDYzOVx1MDZjMSIs'@; put 'Ilx1MDZjMVx1MDY0MVx1MDYyYVx1MDZjMSJdO2FlLmRlZmluZUxvY2FsZSgidXIiLHttb250aHM6eCxtb250aHNTaG9ydDp4LHdlZWtkYXlzOm0sd2Vla2RheXNTaG9ydDptLHdlZWtkYXlzTWluOm0sbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0v'@; put 'WVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkXHUwNjBjIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjM1XHUwNjI4XHUwNjJkfFx1MDYzNFx1MDYyN1x1MDY0NS8saXNQTTpmdW5jdGlvbihNKXtyZXR1cm4iXHUw'@; put 'NjM0XHUwNjI3XHUwNjQ1Ij09PU19LG1lcmlkaWVtOmZ1bmN0aW9uKE0sTyxSKXtyZXR1cm4gTTwxMj8iXHUwNjM1XHUwNjI4XHUwNjJkIjoiXHUwNjM0XHUwNjI3XHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjJcdTA2MmMgXHUwNjI4XHUwNjQ4XHUwNjQyXHUwNjJhXSBMVCIs'@; put 'bmV4dERheToiW1x1MDZhOVx1MDY0NCBcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjI4XHUwNjQ4XHUwNjQyXHUwNjJhXSBMVCIsbGFzdERheToiW1x1MDZhZlx1MDYzMFx1MDYzNFx1MDYyYVx1MDZjMSBcdTA2MzFcdTA2NDhcdTA2MzIgXHUwNjI4'@; put 'XHUwNjQ4XHUwNjQyXHUwNjJhXSBMVCIsbGFzdFdlZWs6IltcdTA2YWZcdTA2MzBcdTA2MzRcdTA2MmFcdTA2YzFdIGRkZGQgW1x1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDYyOFx1MDYzOVx1MDYyZiIscGFz'@; put 'dDoiJXMgXHUwNjQyXHUwNjI4XHUwNjQ0IixzOiJcdTA2ODZcdTA2NDZcdTA2MmYgXHUwNjMzXHUwNmNjXHUwNmE5XHUwNjQ2XHUwNjg4IixzczoiJWQgXHUwNjMzXHUwNmNjXHUwNmE5XHUwNjQ2XHUwNjg4IixtOiJcdTA2MjdcdTA2Y2NcdTA2YTkgXHUwNjQ1XHUwNjQ2XHUwNjc5IixtbToi'@; put 'JWQgXHUwNjQ1XHUwNjQ2XHUwNjc5IixoOiJcdTA2MjdcdTA2Y2NcdTA2YTkgXHUwNmFmXHUwNmJlXHUwNjQ2XHUwNjc5XHUwNmMxIixoaDoiJWQgXHUwNmFmXHUwNmJlXHUwNjQ2XHUwNjc5XHUwNmQyIixkOiJcdTA2MjdcdTA2Y2NcdTA2YTkgXHUwNjJmXHUwNjQ2IixkZDoiJWQgXHUwNjJm'@; put 'XHUwNjQ2IixNOiJcdTA2MjdcdTA2Y2NcdTA2YTkgXHUwNjQ1XHUwNjI3XHUwNmMxIixNTToiJWQgXHUwNjQ1XHUwNjI3XHUwNmMxIix5OiJcdTA2MjdcdTA2Y2NcdTA2YTkgXHUwNjMzXHUwNjI3XHUwNjQ0Iix5eToiJWQgXHUwNjMzXHUwNjI3XHUwNjQ0In0scHJlcGFyc2U6ZnVuY3Rpb24o'@; put 'TSl7cmV0dXJuIE0ucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihNKXtyZXR1cm4gTS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSwxODc0NDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1'@; put 'c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoInV6LWxhdG4iLHttb250aHM6IllhbnZhcl9GZXZyYWxfTWFydF9BcHJlbF9NYXlfSXl1bl9JeXVsX0F2Z3VzdF9TZW50YWJyX09rdGFicl9Ob3lhYnJfRGVrYWJyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJZYW5fRmV2X01hcl9BcHJfTWF5'@; put 'X0l5dW5fSXl1bF9BdmdfU2VuX09rdF9Ob3lfRGVrIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJZYWtzaGFuYmFfRHVzaGFuYmFfU2VzaGFuYmFfQ2hvcnNoYW5iYV9QYXlzaGFuYmFfSnVtYV9TaGFuYmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiWWFrX0R1c2hfU2VzaF9DaG9yX1BheV9K'@; put 'dW1fU2hhbiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiWWFfRHVfU2VfQ2hvX1BhX0p1X1NoYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0i'@; put 'LExMTEw6IkQgTU1NTSBZWVlZLCBkZGRkIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltCdWd1biBzb2F0XSBMVCBbZGFdIixuZXh0RGF5OiJbRXJ0YWdhXSBMVCBbZGFdIixuZXh0V2VlazoiZGRkZCBba3VuaSBzb2F0XSBMVCBbZGFdIixsYXN0RGF5OiJbS2VjaGEgc29hdF0gTFQgW2Rh'@; put 'XSIsbGFzdFdlZWs6IltPJ3RnYW5dIGRkZGQgW2t1bmkgc29hdF0gTFQgW2RhXSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiWWFxaW4gJXMgaWNoaWRhIixwYXN0OiJCaXIgbmVjaGEgJXMgb2xkaW4iLHM6InNvbml5YSIsc3M6IiVkIHNvbml5YSIsbToiYmlyIGRhcWlx'@; put 'YSIsbW06IiVkIGRhcWlxYSIsaDoiYmlyIHNvYXQiLGhoOiIlZCBzb2F0IixkOiJiaXIga3VuIixkZDoiJWQga3VuIixNOiJiaXIgb3kiLE1NOiIlZCBveSIseToiYmlyIHlpbCIseXk6IiVkIHlpbCJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDY4MzY0OmZ1bmN0aW9uKGF0'@; put 'LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgidXoiLHttb250aHM6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MF9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1'@; put 'MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkX1x1MDQzOFx1MDQ0ZVx1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQz'@; put 'ZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0MzJfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1'@; put 'MDQzY1x1MDQzMFx1MDQ0MF9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZF9cdTA0MzhcdTA0NGVcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQzNVx1MDQzZF9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUw'@; put 'NDRmX1x1MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDJmXHUwNDNhXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQxNFx1MDQ0M1x1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMF9cdTA0MjFcdTA0MzVcdTA0NDhcdTA0MzBcdTA0M2RcdTA0'@; put 'MzFcdTA0MzBfXHUwNDI3XHUwNDNlXHUwNDQwXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQxZlx1MDQzMFx1MDQzOVx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMF9cdTA0MTZcdTA0NDNcdTA0M2NcdTA0MzBfXHUwNDI4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwIi5z'@; put 'cGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQyZlx1MDQzYVx1MDQ0OF9cdTA0MTRcdTA0NDNcdTA0NDhfXHUwNDIxXHUwNDM1XHUwNDQ4X1x1MDQyN1x1MDQzZVx1MDQ0MF9cdTA0MWZcdTA0MzBcdTA0MzlfXHUwNDE2XHUwNDQzXHUwNDNjX1x1MDQyOFx1MDQzMFx1MDQzZCIuc3BsaXQo'@; put 'Il8iKSx3ZWVrZGF5c01pbjoiXHUwNDJmXHUwNDNhX1x1MDQxNFx1MDQ0M19cdTA0MjFcdTA0MzVfXHUwNDI3XHUwNDNlX1x1MDQxZlx1MDQzMF9cdTA0MTZcdTA0NDNfXHUwNDI4XHUwNDMwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6'@; put 'IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiRCBNTU1NIFlZWVksIGRkZGQgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQxMVx1MDQ0M1x1MDQzM1x1MDQ0M1x1MDQzZCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJdIExU'@; put 'IFtcdTA0MzRcdTA0MzBdIixuZXh0RGF5OiJbXHUwNDJkXHUwNDQwXHUwNDQyXHUwNDMwXHUwNDMzXHUwNDMwXSBMVCBbXHUwNDM0XHUwNDMwXSIsbmV4dFdlZWs6ImRkZGQgW1x1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJdIExUIFtcdTA0MzRcdTA0'@; put 'MzBdIixsYXN0RGF5OiJbXHUwNDFhXHUwNDM1XHUwNDQ3XHUwNDMwIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Ml0gTFQgW1x1MDQzNFx1MDQzMF0iLGxhc3RXZWVrOiJbXHUwNDIzXHUwNDQyXHUwNDMzXHUwNDMwXHUwNDNkXSBkZGRkIFtcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzggXHUwNDQx'@; put 'XHUwNDNlXHUwNDMwXHUwNDQyXSBMVCBbXHUwNDM0XHUwNDMwXSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDJmXHUwNDNhXHUwNDM4XHUwNDNkICVzIFx1MDQzOFx1MDQ0N1x1MDQzOFx1MDQzNFx1MDQzMCIscGFzdDoiXHUwNDExXHUwNDM4XHUwNDQwIFx1MDQz'@; put 'ZFx1MDQzNVx1MDQ0N1x1MDQzMCAlcyBcdTA0M2VcdTA0M2JcdTA0MzRcdTA0MzhcdTA0M2QiLHM6Ilx1MDQ0NFx1MDQ0M1x1MDQ0MFx1MDQ0MVx1MDQzMFx1MDQ0MiIsc3M6IiVkIFx1MDQ0NFx1MDQ0M1x1MDQ0MFx1MDQ0MVx1MDQzMFx1MDQ0MiIsbToiXHUwNDMxXHUwNDM4XHUwNDQwIFx1'@; put 'MDQzNFx1MDQzMFx1MDQzYVx1MDQzOFx1MDQzYVx1MDQzMCIsbW06IiVkIFx1MDQzNFx1MDQzMFx1MDQzYVx1MDQzOFx1MDQzYVx1MDQzMCIsaDoiXHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0MiIsaGg6IiVkIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0MiIsZDoi'@; put 'XHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQzYVx1MDQ0M1x1MDQzZCIsZGQ6IiVkIFx1MDQzYVx1MDQ0M1x1MDQzZCIsTToiXHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQzZVx1MDQzOSIsTU06IiVkIFx1MDQzZVx1MDQzOSIseToiXHUwNDMxXHUwNDM4XHUwNDQwIFx1MDQzOVx1MDQzOFx1MDQzYiIs'@; put 'eXk6IiVkIFx1MDQzOVx1MDQzOFx1MDQzYiJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShGKDE2Njc2KSl9LDc1MDQ5OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgidmkiLHttb250aHM6InRoXHhlMW5nIDFfdGhceGUxbmcgMl90'@; put 'aFx4ZTFuZyAzX3RoXHhlMW5nIDRfdGhceGUxbmcgNV90aFx4ZTFuZyA2X3RoXHhlMW5nIDdfdGhceGUxbmcgOF90aFx4ZTFuZyA5X3RoXHhlMW5nIDEwX3RoXHhlMW5nIDExX3RoXHhlMW5nIDEyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJUaGcgMDFfVGhnIDAyX1RoZyAwM19UaGcgMDRf'@; put 'VGhnIDA1X1RoZyAwNl9UaGcgMDdfVGhnIDA4X1RoZyAwOV9UaGcgMTBfVGhnIDExX1RoZyAxMiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJjaFx1MWVlNyBuaFx1MWVhZHRfdGhcdTFlZTkgaGFpX3RoXHUxZWU5IGJhX3RoXHUxZWU5IHRcdTAxYjBfdGhcdTFl'@; put 'ZTkgblx1MDEwM21fdGhcdTFlZTkgc1x4ZTF1X3RoXHUxZWU5IGJcdTFlYTN5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkNOX1QyX1QzX1Q0X1Q1X1Q2X1Q3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJDTl9UMl9UM19UNF9UNV9UNl9UNyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNl'@; put 'RXhhY3Q6ITAsbWVyaWRpZW1QYXJzZTovc2F8Y2gvaSxpc1BNOmZ1bmN0aW9uKG0pe3JldHVybi9eY2gkL2kudGVzdChtKX0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXtyZXR1cm4gbTwxMj9NPyJzYSI6IlNBIjpNPyJjaCI6IkNIIn0sbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRT'@; put 'OiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBbblx1MDEwM21dIFlZWVkiLExMTDoiRCBNTU1NIFtuXHUwMTAzbV0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFtuXHUwMTAzbV0gWVlZWSBISDptbSIsbDoiREQvTS9ZWVlZIixsbDoiRCBNTU0gWVlZWSIsbGxs'@; put 'OiJEIE1NTSBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIEQgTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hceGY0bSBuYXkgbFx4ZmFjXSBMVCIsbmV4dERheToiW05nXHhlMHkgbWFpIGxceGZhY10gTFQiLG5leHRXZWVrOiJkZGRkIFt0dVx1MWVhN24gdFx1MWVkYmkgbFx4'@; put 'ZmFjXSBMVCIsbGFzdERheToiW0hceGY0bSBxdWEgbFx4ZmFjXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3R1XHUxZWE3biB0clx1MDFiMFx1MWVkYmMgbFx4ZmFjXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgdFx1MWVkYmkiLHBhc3Q6IiVzIHRyXHUwMWIwXHUx'@; put 'ZWRiYyIsczoidlx4ZTBpIGdpXHhlMnkiLHNzOiIlZCBnaVx4ZTJ5IixtOiJtXHUxZWQ5dCBwaFx4ZmF0IixtbToiJWQgcGhceGZhdCIsaDoibVx1MWVkOXQgZ2lcdTFlZGQiLGhoOiIlZCBnaVx1MWVkZCIsZDoibVx1MWVkOXQgbmdceGUweSIsZGQ6IiVkIG5nXHhlMHkiLHc6Im1cdTFlZDl0'@; put 'IHR1XHUxZWE3biIsd3c6IiVkIHR1XHUxZWE3biIsTToibVx1MWVkOXQgdGhceGUxbmciLE1NOiIlZCB0aFx4ZTFuZyIseToibVx1MWVkOXQgblx1MDEwM20iLHl5OiIlZCBuXHUwMTAzbSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24obSl7cmV0'@; put 'dXJuIG19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDE1MTA2OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgieC1wc2V1ZG8iLHttb250aHM6Ikp+XHhlMVx4ZjFceGZhXHhlMX5yXHhmZF9Gflx4ZTliclx4ZmF+'@; put 'XHhlMXJceGZkX35NXHhlMXJjfmhfXHhjMXB+clx4ZWRsX35NXHhlMVx4ZmRffkpceGZhXHhmMVx4ZTl+X0pceGZhbH5ceGZkX1x4YzFceGZhfmdceGZhc3R+X1NceGU5cH50XHhlOW1iflx4ZTlyX1x4ZDN+Y3RceGYzYn5ceGU5cl9ceGQxflx4ZjN2XHhlOW1+Ylx4ZTlyX35EXHhlOWNceGU5'@; put 'fm1iXHhlOXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikp+XHhlMVx4ZjFffkZceGU5Yl9+TVx4ZTFyX35ceGMxcHJffk1ceGUxXHhmZF9+Slx4ZmFceGYxX35KXHhmYWxfflx4YzFceGZhZ19+U1x4ZTlwX35ceGQzY3Rfflx4ZDFceGYzdl9+RFx4ZTljIi5zcGxpdCgiXyIpLG1vbnRoc1Bh'@; put 'cnNlRXhhY3Q6ITAsd2Vla2RheXM6IlN+XHhmYVx4ZjFkXHhlMX5ceGZkX01ceGYzflx4ZjFkXHhlMVx4ZmR+X1RceGZhXHhlOX5zZFx4ZTFceGZkfl9XXHhlOWR+XHhmMVx4ZTlzZH5ceGUxXHhmZF9UfmhceGZhcnN+ZFx4ZTFceGZkX35Gclx4ZWRkflx4ZTFceGZkX1N+XHhlMXRceGZhcn5k'@; put 'XHhlMVx4ZmQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU35ceGZhXHhmMV9+TVx4ZjNceGYxX35UXHhmYVx4ZTlffldceGU5ZF9+VGhceGZhX35Gclx4ZWRfflNceGUxdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU35ceGZhX01ceGYzfl9UXHhmYV9+V1x4ZTlfVH5oX0Zyfl9TXHhl'@; put 'MSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1l'@; put 'RGF5OiJbVH5ceGYzZFx4ZTF+XHhmZCBceGUxdF0gTFQiLG5leHREYXk6IltUflx4ZjNtXHhmM35yclx4ZjN+dyBceGUxdF0gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUxdF0gTFQiLGxhc3REYXk6IltceGRkflx4ZTlzdH5ceGU5cmRceGUxflx4ZmQgXHhlMXRdIExUIixsYXN0V2VlazoiW0x+'@; put 'XHhlMXN0XSBkZGRkIFtceGUxdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx4ZWR+XHhmMSAlcyIscGFzdDoiJXMgXHhlMX5nXHhmMyIsczoiXHhlMSB+Zlx4ZTl3IH5zXHhlOWNceGYzflx4ZjFkcyIsc3M6IiVkIHN+XHhlOWNceGYzXHhmMX5kcyIsbToiXHhl'@; put 'MSB+bVx4ZWRceGYxflx4ZmF0XHhlOSIsbW06IiVkIG1+XHhlZFx4ZjFceGZhfnRceGU5cyIsaDoiXHhlMX5ceGYxIGhceGYzflx4ZmFyIixoaDoiJWQgaH5ceGYzXHhmYXJzIixkOiJceGUxIH5kXHhlMVx4ZmQiLGRkOiIlZCBkflx4ZTFceGZkcyIsTToiXHhlMSB+bVx4ZjNceGYxfnRoIixN'@; put 'TToiJWQgbX5ceGYzXHhmMXR+aHMiLHk6Ilx4ZTEgflx4ZmRceGU5XHhlMXIiLHl5OiIlZCBceGZkflx4ZTlceGUxcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHRofHN0fG5kfHJkKS8sb3JkaW5hbDpmdW5jdGlvbihtKXt2YXIgbGU9bSUxMDtyZXR1cm4gbSsoMT09fn4o'@; put 'bSUxMDAvMTApPyJ0aCI6MT09PWxlPyJzdCI6Mj09PWxlPyJuZCI6Mz09PWxlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShGKDE2Njc2KSl9LDYxOTk6ZnVuY3Rpb24oYXQsSWUsRil7IWZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7YWUuZGVmaW5lTG9jYWxlKCJ5byIse21v'@; put 'bnRoczoiU1x1MWViOVx1MDMwMXJcdTFlYjlcdTAzMDFfRVx1MDMwMHJlXHUwMzAwbGVcdTAzMDBfXHUxZWI4clx1MWViOVx1MDMwMG5hXHUwMzAwX0lcdTAzMDBnYmVcdTAzMDFfRVx1MDMwMGJpYmlfT1x1MDMwMGt1XHUwMzAwZHVfQWdcdTFlYjltb19PXHUwMzAwZ3VcdTAzMDFuX093ZXdl'@; put 'X1x1MWVjY1x1MDMwMHdhXHUwMzAwcmFcdTAzMDBfQmVcdTAzMDFsdVx1MDMwMV9cdTFlY2NcdTAzMDBwXHUxZWI5XHUwMzAwXHUwMzAwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJTXHUxZWI5XHUwMzAxcl9FXHUwMzAwcmxfXHUxZWI4cm5fSVx1MDMwMGdiX0VcdTAzMDBiaV9PXHUwMzAw'@; put 'a3VcdTAzMDBfQWdcdTFlYjlfT1x1MDMwMGd1XHUwMzAxX093ZV9cdTFlY2NcdTAzMDB3YVx1MDMwMF9CZVx1MDMwMWxfXHUxZWNjXHUwMzAwcFx1MWViOVx1MDMwMFx1MDMwMCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiQVx1MDMwMGlcdTAzMDBrdVx1MDMwMV9BamVcdTAzMDFfSVx1MDMwMHNc'@; put 'dTFlYjlcdTAzMDFndW5fXHUxZWNjalx1MWVjZFx1MDMwMXJ1XHUwMzAxX1x1MWVjY2pcdTFlY2RcdTAzMDFiXHUxZWNkX1x1MWViOHRpXHUwMzAwX0FcdTAzMDBiYVx1MDMwMW1cdTFlYjlcdTAzMDF0YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJBXHUwMzAwaVx1MDMwMGtfQWplXHUw'@; put 'MzAxX0lcdTAzMDBzXHUxZWI5XHUwMzAxX1x1MWVjY2pyX1x1MWVjY2piX1x1MWViOHRpXHUwMzAwX0FcdTAzMDBiYVx1MDMwMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQVx1MDMwMGlcdTAzMDBfQWpfSVx1MDMwMHNfXHUxZWNjcl9cdTFlY2NiX1x1MWViOHRfQVx1MDMwMGIiLnNwbGl0'@; put 'KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW09cdTAz'@; put 'MDBuaVx1MDMwMCBuaV0gTFQiLG5leHREYXk6IltcdTFlY2NcdTAzMDBsYSBuaV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTFlY2NzXHUxZWI5XHUwMzAwIHRvXHUwMzAxbidiXHUxZWNkXSBbbmldIExUIixsYXN0RGF5OiJbQVx1MDMwMG5hIG5pXSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MWVj'@; put 'Y3NcdTFlYjlcdTAzMDAgdG9cdTAzMDFsXHUxZWNkXHUwMzAxXSBbbmldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJuaVx1MDMwMSAlcyIscGFzdDoiJXMga1x1MWVjZGphXHUwMzAxIixzOiJpXHUwMzAwc1x1MWViOWp1XHUwMzAxIGFheWFcdTAzMDEgZGllIixz'@; put 'czoiYWF5YVx1MDMwMSAlZCIsbToiaVx1MDMwMHNcdTFlYjlqdVx1MDMwMSBrYW4iLG1tOiJpXHUwMzAwc1x1MWViOWp1XHUwMzAxICVkIixoOiJ3YVx1MDMwMWthdGkga2FuIixoaDoid2FcdTAzMDFrYXRpICVkIixkOiJcdTFlY2RqXHUxZWNkXHUwMzAxIGthbiIsZGQ6Ilx1MWVjZGpcdTFl'@; put 'Y2RcdTAzMDEgJWQiLE06Im9zdVx1MDMwMCBrYW4iLE1NOiJvc3VcdTAzMDAgJWQiLHk6Ilx1MWVjZGR1XHUwMzAxbiBrYW4iLHl5OiJcdTFlY2RkdVx1MDMwMW4gJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cdTFlY2RqXHUxZWNkXHUwMzAxXHNcZHsxLDJ9LyxvcmRpbmFsOiJcdTFl'@; put 'Y2RqXHUxZWNkXHUwMzAxICVkIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSwyNzI4MDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoInpoLWNuIix7bW9udGhzOiJcdTRlMDBcdTY3MDhfXHU0ZThjXHU2NzA4X1x1'@; put 'NGUwOVx1NjcwOF9cdTU2ZGJcdTY3MDhfXHU0ZTk0XHU2NzA4X1x1NTE2ZFx1NjcwOF9cdTRlMDNcdTY3MDhfXHU1MTZiXHU2NzA4X1x1NGU1ZFx1NjcwOF9cdTUzNDFcdTY3MDhfXHU1MzQxXHU0ZTAwXHU2NzA4X1x1NTM0MVx1NGU4Y1x1NjcwOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoi'@; put 'MVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1NjYxZlx1NjcxZlx1NjVlNV9cdTY2MWZcdTY3MWZcdTRlMDBfXHU2NjFm'@; put 'XHU2NzFmXHU0ZThjX1x1NjYxZlx1NjcxZlx1NGUwOV9cdTY2MWZcdTY3MWZcdTU2ZGJfXHU2NjFmXHU2NzFmXHU0ZTk0X1x1NjYxZlx1NjcxZlx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTU0NjhcdTY1ZTVfXHU1NDY4XHU0ZTAwX1x1NTQ2OFx1NGU4Y19cdTU0NjhcdTRl'@; put 'MDlfXHU1NDY4XHU1NmRiX1x1NTQ2OFx1NGU5NF9cdTU0NjhcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTRlMDBfXHU0ZThjX1x1NGUwOV9cdTU2ZGJfXHU0ZTk0X1x1NTE2ZCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1t'@; put 'OnNzIixMOiJZWVlZL01NL0REIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNUFoXHU3MGI5bW1cdTUyMDYiLExMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGRBaFx1NzBiOW1tXHU1MjA2IixsOiJZWVlZL00vRCIsbGw6'@; put 'IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLGxsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTUxY2NcdTY2Njh8XHU2NWU5XHU0ZTBhfFx1NGUwYVx1NTM0OHxcdTRl'@; put 'MmRcdTUzNDh8XHU0ZTBiXHU1MzQ4fFx1NjY1YVx1NGUwYS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKG0sbGUpe3JldHVybiAxMj09PW0mJihtPTApLCJcdTUxY2NcdTY2NjgiPT09bGV8fCJcdTY1ZTlcdTRlMGEiPT09bGV8fCJcdTRlMGFcdTUzNDgiPT09bGU/bToiXHU0ZTBiXHU1MzQ4Ij09'@; put 'PWxlfHwiXHU2NjVhXHU0ZTBhIj09PWxlP20rMTI6bT49MTE/bTptKzEyfSxtZXJpZGllbTpmdW5jdGlvbihtLGxlLE0pe3ZhciBPPTEwMCptK2xlO3JldHVybiBPPDYwMD8iXHU1MWNjXHU2NjY4IjpPPDkwMD8iXHU2NWU5XHU0ZTBhIjpPPDExMzA/Ilx1NGUwYVx1NTM0OCI6TzwxMjMwPyJc'@; put 'dTRlMmRcdTUzNDgiOk88MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTU5MjldTFQiLG5leHREYXk6IltcdTY2MGVcdTU5MjldTFQiLG5leHRXZWVrOmZ1bmN0aW9uKG0pe3JldHVybiBtLndlZWsoKSE9PXRoaXMud2Vlaygp'@; put 'PyJbXHU0ZTBiXWRkZExUIjoiW1x1NjcyY11kZGRMVCJ9LGxhc3REYXk6IltcdTY2MjhcdTU5MjldTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKG0pe3JldHVybiB0aGlzLndlZWsoKSE9PW0ud2VlaygpPyJbXHU0ZTBhXWRkZExUIjoiW1x1NjcyY11kZGRMVCJ9LHNhbWVFbHNlOiJMIn0sZGF5T2ZN'@; put 'b250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTY1ZTV8XHU2NzA4fFx1NTQ2OCkvLG9yZGluYWw6ZnVuY3Rpb24obSxsZSl7c3dpdGNoKGxlKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBtKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJuIG0rIlx1NjcwOCI7Y2FzZSJ3IjpjYXNl'@; put 'IlciOnJldHVybiBtKyJcdTU0NjgiO2RlZmF1bHQ6cmV0dXJuIG19fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTU0MGUiLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTUxZTBcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDlmIixtbToiJWQgXHU1MjA2XHU5NDlmIixoOiIx'@; put 'IFx1NWMwZlx1NjVmNiIsaGg6IiVkIFx1NWMwZlx1NjVmNiIsZDoiMSBcdTU5MjkiLGRkOiIlZCBcdTU5MjkiLHc6IjEgXHU1NDY4Iix3dzoiJWQgXHU1NDY4IixNOiIxIFx1NGUyYVx1NjcwOCIsTU06IiVkIFx1NGUyYVx1NjcwOCIseToiMSBcdTVlNzQiLHl5OiIlZCBcdTVlNzQifSx3ZWVr'@; put 'Ontkb3c6MSxkb3k6NH19KX0oRigxNjY3NikpfSwzNjg2MDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5kZWZpbmVMb2NhbGUoInpoLWhrIix7bW9udGhzOiJcdTRlMDBcdTY3MDhfXHU0ZThjXHU2NzA4X1x1NGUwOVx1NjcwOF9cdTU2ZGJcdTY3MDhf'@; put 'XHU0ZTk0XHU2NzA4X1x1NTE2ZFx1NjcwOF9cdTRlMDNcdTY3MDhfXHU1MTZiXHU2NzA4X1x1NGU1ZFx1NjcwOF9cdTUzNDFcdTY3MDhfXHU1MzQxXHU0ZTAwXHU2NzA4X1x1NTM0MVx1NGU4Y1x1NjcwOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhf'@; put 'NFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1NjYxZlx1NjcxZlx1NjVlNV9cdTY2MWZcdTY3MWZcdTRlMDBfXHU2NjFmXHU2NzFmXHU0ZThjX1x1NjYxZlx1Njcx'@; put 'Zlx1NGUwOV9cdTY2MWZcdTY3MWZcdTU2ZGJfXHU2NjFmXHU2NzFmXHU0ZTk0X1x1NjYxZlx1NjcxZlx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTkwMzFcdTY1ZTVfXHU5MDMxXHU0ZTAwX1x1OTAzMVx1NGU4Y19cdTkwMzFcdTRlMDlfXHU5MDMxXHU1NmRiX1x1OTAzMVx1'@; put 'NGU5NF9cdTkwMzFcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTRlMDBfXHU0ZThjX1x1NGUwOV9cdTU2ZGJfXHU0ZTk0X1x1NTE2ZCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZL01NL0REIixMTDoi'@; put 'WVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSIsbDoiWVlZWS9NL0QiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1c'@; put 'dTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHU1MWNjXHU2NjY4fFx1NjVlOVx1NGUwYXxcdTRlMGFcdTUzNDh8XHU0ZTJkXHU1MzQ4fFx1NGUwYlx1NTM0OHxcdTY2NWFcdTRlMGEvLG1lcmlkaWVt'@; put 'SG91cjpmdW5jdGlvbihtLGxlKXtyZXR1cm4gMTI9PT1tJiYobT0wKSwiXHU1MWNjXHU2NjY4Ij09PWxlfHwiXHU2NWU5XHU0ZTBhIj09PWxlfHwiXHU0ZTBhXHU1MzQ4Ij09PWxlP206Ilx1NGUyZFx1NTM0OCI9PT1sZT9tPj0xMT9tOm0rMTI6Ilx1NGUwYlx1NTM0OCI9PT1sZXx8Ilx1NjY1'@; put 'YVx1NGUwYSI9PT1sZT9tKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24obSxsZSxNKXt2YXIgTz0xMDAqbStsZTtyZXR1cm4gTzw2MDA/Ilx1NTFjY1x1NjY2OCI6Tzw5MDA/Ilx1NjVlOVx1NGUwYSI6TzwxMjAwPyJcdTRlMGFcdTUzNDgiOjEyMDA9PT1PPyJcdTRlMmRcdTUzNDgiOk88'@; put 'MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTU5MjldTFQiLG5leHREYXk6IltcdTY2MGVcdTU5MjldTFQiLG5leHRXZWVrOiJbXHU0ZTBiXWRkZGRMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV1MVCIsbGFzdFdlZWs6Iltc'@; put 'dTRlMGFdZGRkZExUIixzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHU2NWU1fFx1NjcwOHxcdTkwMzEpLyxvcmRpbmFsOmZ1bmN0aW9uKG0sbGUpe3N3aXRjaChsZSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gbSsiXHU2NWU1IjtjYXNl'@; put 'Ik0iOnJldHVybiBtKyJcdTY3MDgiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gbSsiXHU5MDMxIjtkZWZhdWx0OnJldHVybiBtfX0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHU1ZjhjIixwYXN0OiIlc1x1NTI0ZCIsczoiXHU1ZTdlXHU3OWQyIixzczoiJWQgXHU3OWQyIixtOiIxIFx1NTIw'@; put 'Nlx1OTQxOCIsbW06IiVkIFx1NTIwNlx1OTQxOCIsaDoiMSBcdTVjMGZcdTY2NDIiLGhoOiIlZCBcdTVjMGZcdTY2NDIiLGQ6IjEgXHU1OTI5IixkZDoiJWQgXHU1OTI5IixNOiIxIFx1NTAwYlx1NjcwOCIsTU06IiVkIFx1NTAwYlx1NjcwOCIseToiMSBcdTVlNzQiLHl5OiIlZCBcdTVlNzQi'@; put 'fX0pfShGKDE2Njc2KSl9LDc4MzY0OmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiemgtbW8iLHttb250aHM6Ilx1NGUwMFx1NjcwOF9cdTRlOGNcdTY3MDhfXHU0ZTA5XHU2NzA4X1x1NTZkYlx1NjcwOF9cdTRlOTRcdTY3MDhf'@; put 'XHU1MTZkXHU2NzA4X1x1NGUwM1x1NjcwOF9cdTUxNmJcdTY3MDhfXHU0ZTVkXHU2NzA4X1x1NTM0MVx1NjcwOF9cdTUzNDFcdTRlMDBcdTY3MDhfXHU1MzQxXHU0ZThjXHU2NzA4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3'@; put 'MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHU2NjFmXHU2NzFmXHU2NWU1X1x1NjYxZlx1NjcxZlx1NGUwMF9cdTY2MWZcdTY3MWZcdTRlOGNfXHU2NjFmXHU2NzFmXHU0ZTA5X1x1NjYx'@; put 'Zlx1NjcxZlx1NTZkYl9cdTY2MWZcdTY3MWZcdTRlOTRfXHU2NjFmXHU2NzFmXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1OTAzMVx1NjVlNV9cdTkwMzFcdTRlMDBfXHU5MDMxXHU0ZThjX1x1OTAzMVx1NGUwOV9cdTkwMzFcdTU2ZGJfXHU5MDMxXHU0ZTk0X1x1OTAzMVx1'@; put 'NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHU2NWU1X1x1NGUwMF9cdTRlOGNfXHU0ZTA5X1x1NTZkYl9cdTRlOTRfXHU1MTZkIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJZWVlZXHU1ZTc0TVx1'@; put 'NjcwOERcdTY1ZTUiLExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixMTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIixsOiJEL00vWVlZWSIsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUg'@; put 'SEg6bW0iLGxsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTUxY2NcdTY2Njh8XHU2NWU5XHU0ZTBhfFx1NGUwYVx1NTM0OHxcdTRlMmRcdTUzNDh8XHU0ZTBiXHU1MzQ4fFx1NjY1YVx1NGUwYS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9u'@; put 'KG0sbGUpe3JldHVybiAxMj09PW0mJihtPTApLCJcdTUxY2NcdTY2NjgiPT09bGV8fCJcdTY1ZTlcdTRlMGEiPT09bGV8fCJcdTRlMGFcdTUzNDgiPT09bGU/bToiXHU0ZTJkXHU1MzQ4Ij09PWxlP20+PTExP206bSsxMjoiXHU0ZTBiXHU1MzQ4Ij09PWxlfHwiXHU2NjVhXHU0ZTBhIj09PWxl'@; put 'P20rMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihtLGxlLE0pe3ZhciBPPTEwMCptK2xlO3JldHVybiBPPDYwMD8iXHU1MWNjXHU2NjY4IjpPPDkwMD8iXHU2NWU5XHU0ZTBhIjpPPDExMzA/Ilx1NGUwYVx1NTM0OCI6TzwxMjMwPyJcdTRlMmRcdTUzNDgiOk88MTgwMD8iXHU0ZTBiXHU1'@; put 'MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTU5MjldIExUIixuZXh0RGF5OiJbXHU2NjBlXHU1OTI5XSBMVCIsbmV4dFdlZWs6IltcdTRlMGJdZGRkZCBMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV0gTFQiLGxhc3RXZWVrOiJbXHU0ZTBhXWRkZGQg'@; put 'TFQiLHNhbWVFbHNlOiJMIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTY1ZTV8XHU2NzA4fFx1OTAzMSkvLG9yZGluYWw6ZnVuY3Rpb24obSxsZSl7c3dpdGNoKGxlKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBtKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJu'@; put 'IG0rIlx1NjcwOCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBtKyJcdTkwMzEiO2RlZmF1bHQ6cmV0dXJuIG19fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTUxNjciLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTVlN2VcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDE4Iixt'@; put 'bToiJWQgXHU1MjA2XHU5NDE4IixoOiIxIFx1NWMwZlx1NjY0MiIsaGg6IiVkIFx1NWMwZlx1NjY0MiIsZDoiMSBcdTU5MjkiLGRkOiIlZCBcdTU5MjkiLE06IjEgXHU1MDBiXHU2NzA4IixNTToiJWQgXHU1MDBiXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9fSl9KEYoMTY2'@; put 'NzYpKX0sNDgyOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO2FlLmRlZmluZUxvY2FsZSgiemgtdHciLHttb250aHM6Ilx1NGUwMFx1NjcwOF9cdTRlOGNcdTY3MDhfXHU0ZTA5XHU2NzA4X1x1NTZkYlx1NjcwOF9cdTRlOTRcdTY3MDhfXHU1MTZkXHU2NzA4'@; put 'X1x1NGUwM1x1NjcwOF9cdTUxNmJcdTY3MDhfXHU0ZTVkXHU2NzA4X1x1NTM0MVx1NjcwOF9cdTUzNDFcdTRlMDBcdTY3MDhfXHU1MzQxXHU0ZThjXHU2NzA4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83'@; put 'XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHU2NjFmXHU2NzFmXHU2NWU1X1x1NjYxZlx1NjcxZlx1NGUwMF9cdTY2MWZcdTY3MWZcdTRlOGNfXHU2NjFmXHU2NzFmXHU0ZTA5X1x1NjYxZlx1NjcxZlx1NTZk'@; put 'Yl9cdTY2MWZcdTY3MWZcdTRlOTRfXHU2NjFmXHU2NzFmXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1OTAzMVx1NjVlNV9cdTkwMzFcdTRlMDBfXHU5MDMxXHU0ZThjX1x1OTAzMVx1NGUwOV9cdTkwMzFcdTU2ZGJfXHU5MDMxXHU0ZTk0X1x1OTAzMVx1NTE2ZCIuc3BsaXQo'@; put 'Il8iKSx3ZWVrZGF5c01pbjoiXHU2NWU1X1x1NGUwMF9cdTRlOGNfXHU0ZTA5X1x1NTZkYl9cdTRlOTRfXHU1MTZkIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUi'@; put 'LExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixMTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIixsOiJZWVlZL00vRCIsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLGxsbGw6'@; put 'IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTUxY2NcdTY2Njh8XHU2NWU5XHU0ZTBhfFx1NGUwYVx1NTM0OHxcdTRlMmRcdTUzNDh8XHU0ZTBiXHU1MzQ4fFx1NjY1YVx1NGUwYS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKG0sbGUpe3JldHVy'@; put 'biAxMj09PW0mJihtPTApLCJcdTUxY2NcdTY2NjgiPT09bGV8fCJcdTY1ZTlcdTRlMGEiPT09bGV8fCJcdTRlMGFcdTUzNDgiPT09bGU/bToiXHU0ZTJkXHU1MzQ4Ij09PWxlP20+PTExP206bSsxMjoiXHU0ZTBiXHU1MzQ4Ij09PWxlfHwiXHU2NjVhXHU0ZTBhIj09PWxlP20rMTI6dm9pZCAw'@; put 'fSxtZXJpZGllbTpmdW5jdGlvbihtLGxlLE0pe3ZhciBPPTEwMCptK2xlO3JldHVybiBPPDYwMD8iXHU1MWNjXHU2NjY4IjpPPDkwMD8iXHU2NWU5XHU0ZTBhIjpPPDExMzA/Ilx1NGUwYVx1NTM0OCI6TzwxMjMwPyJcdTRlMmRcdTUzNDgiOk88MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVh'@; put 'XHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTU5MjldIExUIixuZXh0RGF5OiJbXHU2NjBlXHU1OTI5XSBMVCIsbmV4dFdlZWs6IltcdTRlMGJdZGRkZCBMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV0gTFQiLGxhc3RXZWVrOiJbXHU0ZTBhXWRkZGQgTFQiLHNhbWVFbHNl'@; put 'OiJMIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTY1ZTV8XHU2NzA4fFx1OTAzMSkvLG9yZGluYWw6ZnVuY3Rpb24obSxsZSl7c3dpdGNoKGxlKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBtKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJuIG0rIlx1NjcwOCI7'@; put 'Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBtKyJcdTkwMzEiO2RlZmF1bHQ6cmV0dXJuIG19fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTVmOGMiLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTVlN2VcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDE4IixtbToiJWQgXHU1MjA2'@; put 'XHU5NDE4IixoOiIxIFx1NWMwZlx1NjY0MiIsaGg6IiVkIFx1NWMwZlx1NjY0MiIsZDoiMSBcdTU5MjkiLGRkOiIlZCBcdTU5MjkiLE06IjEgXHU1MDBiXHU2NzA4IixNTToiJWQgXHU1MDBiXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9fSl9KEYoMTY2NzYpKX0sMTY2NzY6'@; put 'ZnVuY3Rpb24oYXQsSWUsRil7KGF0PUYubm1kKGF0KSkuZXhwb3J0cz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWUsWTtmdW5jdGlvbiB4KCl7cmV0dXJuIGFlLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBsZShrZSl7cmV0dXJuIGtlIGluc3RhbmNlb2YgQXJyYXl8fCJb'@; put 'b2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoa2UpfWZ1bmN0aW9uIE0oa2Upe3JldHVybiBudWxsIT1rZSYmIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoa2UpfWZ1bmN0aW9uIE8oa2UsJGUpe3JldHVybiBP'@; put 'YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoa2UsJGUpfWZ1bmN0aW9uIFIoa2Upe2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKXJldHVybiAwPT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoa2UpLmxlbmd0aDt2YXIgJGU7Zm9yKCRlIGluIGtlKWlmKE8oa2Us'@; put 'JGUpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHooa2Upe3JldHVybiB2b2lkIDA9PT1rZX1mdW5jdGlvbiBLKGtlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGtlfHwiW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChrZSl9ZnVuY3Rpb24gSShr'@; put 'ZSl7cmV0dXJuIGtlIGluc3RhbmNlb2YgRGF0ZXx8IltvYmplY3QgRGF0ZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGtlKX1mdW5jdGlvbiBrKGtlLCRlKXt2YXIgTHQsbXQ9W10sR3Q9a2UubGVuZ3RoO2ZvcihMdD0wO0x0PEd0OysrTHQpbXQucHVzaCgkZShrZVtMdF0s'@; put 'THQpKTtyZXR1cm4gbXR9ZnVuY3Rpb24gRShrZSwkZSl7Zm9yKHZhciBtdCBpbiAkZSlPKCRlLG10KSYmKGtlW210XT0kZVttdF0pO3JldHVybiBPKCRlLCJ0b1N0cmluZyIpJiYoa2UudG9TdHJpbmc9JGUudG9TdHJpbmcpLE8oJGUsInZhbHVlT2YiKSYmKGtlLnZhbHVlT2Y9JGUudmFsdWVP'@; put 'Ziksa2V9ZnVuY3Rpb24gaihrZSwkZSxtdCxMdCl7cmV0dXJuIGtkKGtlLCRlLG10LEx0LCEwKS51dGMoKX1mdW5jdGlvbiBCKGtlKXtyZXR1cm4gbnVsbD09a2UuX3BmJiYoa2UuX3BmPXtlbXB0eTohMSx1bnVzZWRUb2tlbnM6W10sdW51c2VkSW5wdXQ6W10sb3ZlcmZsb3c6LTIsY2hhcnNM'@; put 'ZWZ0T3ZlcjowLG51bGxJbnB1dDohMSxpbnZhbGlkRXJhOm51bGwsaW52YWxpZE1vbnRoOm51bGwsaW52YWxpZEZvcm1hdDohMSx1c2VySW52YWxpZGF0ZWQ6ITEsaXNvOiExLHBhcnNlZERhdGVQYXJ0czpbXSxlcmE6bnVsbCxtZXJpZGllbTpudWxsLHJmYzI4MjI6ITEsd2Vla2RheU1pc21h'@; put 'dGNoOiExfSksa2UuX3BmfWZ1bmN0aW9uIFgoa2Upe2lmKG51bGw9PWtlLl9pc1ZhbGlkKXt2YXIgJGU9QihrZSksbXQ9WS5jYWxsKCRlLnBhcnNlZERhdGVQYXJ0cyxmdW5jdGlvbihHdCl7cmV0dXJuIG51bGwhPUd0fSksTHQ9IWlzTmFOKGtlLl9kLmdldFRpbWUoKSkmJiRlLm92ZXJmbG93'@; put 'PDAmJiEkZS5lbXB0eSYmISRlLmludmFsaWRFcmEmJiEkZS5pbnZhbGlkTW9udGgmJiEkZS5pbnZhbGlkV2Vla2RheSYmISRlLndlZWtkYXlNaXNtYXRjaCYmISRlLm51bGxJbnB1dCYmISRlLmludmFsaWRGb3JtYXQmJiEkZS51c2VySW52YWxpZGF0ZWQmJighJGUubWVyaWRpZW18fCRlLm1l'@; put 'cmlkaWVtJiZtdCk7aWYoa2UuX3N0cmljdCYmKEx0PUx0JiYwPT09JGUuY2hhcnNMZWZ0T3ZlciYmMD09PSRlLnVudXNlZFRva2Vucy5sZW5ndGgmJnZvaWQgMD09PSRlLmJpZ0hvdXIpLG51bGwhPU9iamVjdC5pc0Zyb3plbiYmT2JqZWN0LmlzRnJvemVuKGtlKSlyZXR1cm4gTHQ7a2UuX2lz'@; put 'VmFsaWQ9THR9cmV0dXJuIGtlLl9pc1ZhbGlkfWZ1bmN0aW9uIFUoa2Upe3ZhciAkZT1qKE5hTik7cmV0dXJuIG51bGwhPWtlP0UoQigkZSksa2UpOkIoJGUpLnVzZXJJbnZhbGlkYXRlZD0hMCwkZX1ZPUFycmF5LnByb3RvdHlwZS5zb21lP0FycmF5LnByb3RvdHlwZS5zb21lOmZ1bmN0aW9u'@; put 'KGtlKXt2YXIgTHQsJGU9T2JqZWN0KHRoaXMpLG10PSRlLmxlbmd0aD4+PjA7Zm9yKEx0PTA7THQ8bXQ7THQrKylpZihMdCBpbiAkZSYma2UuY2FsbCh0aGlzLCRlW0x0XSxMdCwkZSkpcmV0dXJuITA7cmV0dXJuITF9O3ZhciBxPXgubW9tZW50UHJvcGVydGllcz1bXSxlZT0hMTtmdW5jdGlv'@; put 'biB0ZShrZSwkZSl7dmFyIG10LEx0LEd0LFVuPXEubGVuZ3RoO2lmKHooJGUuX2lzQU1vbWVudE9iamVjdCl8fChrZS5faXNBTW9tZW50T2JqZWN0PSRlLl9pc0FNb21lbnRPYmplY3QpLHooJGUuX2kpfHwoa2UuX2k9JGUuX2kpLHooJGUuX2YpfHwoa2UuX2Y9JGUuX2YpLHooJGUuX2wpfHwo'@; put 'a2UuX2w9JGUuX2wpLHooJGUuX3N0cmljdCl8fChrZS5fc3RyaWN0PSRlLl9zdHJpY3QpLHooJGUuX3R6bSl8fChrZS5fdHptPSRlLl90em0pLHooJGUuX2lzVVRDKXx8KGtlLl9pc1VUQz0kZS5faXNVVEMpLHooJGUuX29mZnNldCl8fChrZS5fb2Zmc2V0PSRlLl9vZmZzZXQpLHooJGUuX3Bm'@; put 'KXx8KGtlLl9wZj1CKCRlKSkseigkZS5fbG9jYWxlKXx8KGtlLl9sb2NhbGU9JGUuX2xvY2FsZSksVW4+MClmb3IobXQ9MDttdDxVbjttdCsrKXooR3Q9JGVbTHQ9cVttdF1dKXx8KGtlW0x0XT1HdCk7cmV0dXJuIGtlfWZ1bmN0aW9uIG9lKGtlKXt0ZSh0aGlzLGtlKSx0aGlzLl9kPW5ldyBE'@; put 'YXRlKG51bGwhPWtlLl9kP2tlLl9kLmdldFRpbWUoKTpOYU4pLHRoaXMuaXNWYWxpZCgpfHwodGhpcy5fZD1uZXcgRGF0ZShOYU4pKSwhMT09PWVlJiYoZWU9ITAseC51cGRhdGVPZmZzZXQodGhpcyksZWU9ITEpfWZ1bmN0aW9uIHNlKGtlKXtyZXR1cm4ga2UgaW5zdGFuY2VvZiBvZXx8bnVs'@; put 'bCE9a2UmJm51bGwhPWtlLl9pc0FNb21lbnRPYmplY3R9ZnVuY3Rpb24gaGUoa2UpeyExPT09eC5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MmJnR5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS53YXJuJiZjb25zb2xlLndhcm4oIkRlcHJlY2F0aW9uIHdhcm5pbmc6ICIra2UpfWZ1bmN0'@; put 'aW9uIHVlKGtlLCRlKXt2YXIgbXQ9ITA7cmV0dXJuIEUoZnVuY3Rpb24oKXtpZihudWxsIT14LmRlcHJlY2F0aW9uSGFuZGxlciYmeC5kZXByZWNhdGlvbkhhbmRsZXIobnVsbCxrZSksbXQpe3ZhciBHdCxVbixEcixMdD1bXSx5bz1hcmd1bWVudHMubGVuZ3RoO2ZvcihVbj0wO1VuPHlvO1Vu'@; put 'Kyspe2lmKEd0PSIiLCJvYmplY3QiPT10eXBlb2YgYXJndW1lbnRzW1VuXSl7Zm9yKERyIGluIEd0Kz0iXG5bIitVbisiXSAiLGFyZ3VtZW50c1swXSlPKGFyZ3VtZW50c1swXSxEcikmJihHdCs9RHIrIjogIithcmd1bWVudHNbMF1bRHJdKyIsICIpO0d0PUd0LnNsaWNlKDAsLTIpfWVsc2Ug'@; put 'R3Q9YXJndW1lbnRzW1VuXTtMdC5wdXNoKEd0KX1oZShrZSsiXG5Bcmd1bWVudHM6ICIrQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoTHQpLmpvaW4oIiIpKyJcbiIrKG5ldyBFcnJvcikuc3RhY2spLG10PSExfXJldHVybiAkZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCRlKX12YXIgZyxj'@; put 'ZT17fTtmdW5jdGlvbiBHKGtlLCRlKXtudWxsIT14LmRlcHJlY2F0aW9uSGFuZGxlciYmeC5kZXByZWNhdGlvbkhhbmRsZXIoa2UsJGUpLGNlW2tlXXx8KGhlKCRlKSxjZVtrZV09ITApfWZ1bmN0aW9uIGIoa2Upe3JldHVybiB0eXBlb2YgRnVuY3Rpb248InUiJiZrZSBpbnN0YW5jZW9mIEZ1'@; put 'bmN0aW9ufHwiW29iamVjdCBGdW5jdGlvbl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGtlKX1mdW5jdGlvbiBIKGtlLCRlKXt2YXIgTHQsbXQ9RSh7fSxrZSk7Zm9yKEx0IGluICRlKU8oJGUsTHQpJiYoTShrZVtMdF0pJiZNKCRlW0x0XSk/KG10W0x0XT17fSxFKG10W0x0'@; put 'XSxrZVtMdF0pLEUobXRbTHRdLCRlW0x0XSkpOm51bGwhPSRlW0x0XT9tdFtMdF09JGVbTHRdOmRlbGV0ZSBtdFtMdF0pO2ZvcihMdCBpbiBrZSlPKGtlLEx0KSYmIU8oJGUsTHQpJiZNKGtlW0x0XSkmJihtdFtMdF09RSh7fSxtdFtMdF0pKTtyZXR1cm4gbXR9ZnVuY3Rpb24gTihrZSl7bnVs'@; put 'bCE9a2UmJnRoaXMuc2V0KGtlKX14LnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncz0hMSx4LmRlcHJlY2F0aW9uSGFuZGxlcj1udWxsLGc9T2JqZWN0LmtleXM/T2JqZWN0LmtleXM6ZnVuY3Rpb24oa2Upe3ZhciAkZSxtdD1bXTtmb3IoJGUgaW4ga2UpTyhrZSwkZSkmJm10LnB1c2goJGUp'@; put 'O3JldHVybiBtdH07ZnVuY3Rpb24gdihrZSwkZSxtdCl7dmFyIEx0PSIiK01hdGguYWJzKGtlKTtyZXR1cm4oa2U+PTA/bXQ/IisiOiIiOiItIikrTWF0aC5wb3coMTAsTWF0aC5tYXgoMCwkZS1MdC5sZW5ndGgpKS50b1N0cmluZygpLnN1YnN0cigxKStMdH12YXIgcD0vKFxbW15cW10qXF0p'@; put 'fChcXCk/KFtIaF1tbShzcyk/fE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFFvP3xOezEsNX18WVlZWVlZfFlZWVlZfFlZWVl8WVl8eXsyLDR9fHlvP3xnZyhnZ2c/KT98R0coR0dHPyk/fGV8RXxhfEF8aGg/fEhIP3xraz98bW0/fHNzP3xT'@; put 'ezEsOX18eHxYfHp6P3xaWj98LikvZyx3PS8oXFtbXlxbXSpcXSl8KFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLEo9e30sbmU9e307ZnVuY3Rpb24gZGUoa2UsJGUsbXQsTHQpe3ZhciBHdD1MdDsic3RyaW5nIj09dHlwZW9mIEx0JiYoR3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tM'@; put 'dF0oKX0pLGtlJiYobmVba2VdPUd0KSwkZSYmKG5lWyRlWzBdXT1mdW5jdGlvbigpe3JldHVybiB2KEd0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkZVsxXSwkZVsyXSl9KSxtdCYmKG5lW210XT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS5vcmRpbmFsKEd0LmFwcGx5KHRo'@; put 'aXMsYXJndW1lbnRzKSxrZSl9KX1mdW5jdGlvbiBmZShrZSl7cmV0dXJuIGtlLm1hdGNoKC9cW1tcc1xTXS8pP2tlLnJlcGxhY2UoL15cW3xcXSQvZywiIik6a2UucmVwbGFjZSgvXFwvZywiIil9ZnVuY3Rpb24gTGUoa2UsJGUpe3JldHVybiBrZS5pc1ZhbGlkKCk/KCRlPUZlKCRlLGtlLmxv'@; put 'Y2FsZURhdGEoKSksSlskZV09SlskZV18fGZ1bmN0aW9uIHhlKGtlKXt2YXIgbXQsTHQsJGU9a2UubWF0Y2gocCk7Zm9yKG10PTAsTHQ9JGUubGVuZ3RoO210PEx0O210KyspJGVbbXRdPW5lWyRlW210XV0/bmVbJGVbbXRdXTpmZSgkZVttdF0pO3JldHVybiBmdW5jdGlvbihHdCl7dmFyIERy'@; put 'LFVuPSIiO2ZvcihEcj0wO0RyPEx0O0RyKyspVW4rPWIoJGVbRHJdKT8kZVtEcl0uY2FsbChHdCxrZSk6JGVbRHJdO3JldHVybiBVbn19KCRlKSxKWyRlXShrZSkpOmtlLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpfWZ1bmN0aW9uIEZlKGtlLCRlKXt2YXIgbXQ9NTtmdW5jdGlvbiBMdChH'@; put 'dCl7cmV0dXJuICRlLmxvbmdEYXRlRm9ybWF0KEd0KXx8R3R9Zm9yKHcubGFzdEluZGV4PTA7bXQ+PTAmJncudGVzdChrZSk7KWtlPWtlLnJlcGxhY2UodyxMdCksdy5sYXN0SW5kZXg9MCxtdC09MTtyZXR1cm4ga2V9dmFyIFRlPXt9O2Z1bmN0aW9uIHFlKGtlLCRlKXt2YXIgbXQ9a2UudG9M'@; put 'b3dlckNhc2UoKTtUZVttdF09VGVbbXQrInMiXT1UZVskZV09a2V9ZnVuY3Rpb24gWGUoa2Upe3JldHVybiJzdHJpbmciPT10eXBlb2Yga2U/VGVba2VdfHxUZVtrZS50b0xvd2VyQ2FzZSgpXTp2b2lkIDB9ZnVuY3Rpb24gVWUoa2Upe3ZhciBtdCxMdCwkZT17fTtmb3IoTHQgaW4ga2UpTyhr'@; put 'ZSxMdCkmJihtdD1YZShMdCkpJiYoJGVbbXRdPWtlW0x0XSk7cmV0dXJuICRlfXZhciBodD17fTtmdW5jdGlvbiBNZShrZSwkZSl7aHRba2VdPSRlfWZ1bmN0aW9uIHplKGtlKXtyZXR1cm4ga2UlND09MCYma2UlMTAwIT0wfHxrZSU0MDA9PTB9ZnVuY3Rpb24gb3Qoa2Upe3JldHVybiBrZTww'@; put 'P01hdGguY2VpbChrZSl8fDA6TWF0aC5mbG9vcihrZSl9ZnVuY3Rpb24gdXQoa2Upe3ZhciAkZT0ra2UsbXQ9MDtyZXR1cm4gMCE9PSRlJiZpc0Zpbml0ZSgkZSkmJihtdD1vdCgkZSkpLG10fWZ1bmN0aW9uIE10KGtlLCRlKXtyZXR1cm4gZnVuY3Rpb24obXQpe3JldHVybiBudWxsIT1tdD8o'@; put 'UHQodGhpcyxrZSxtdCkseC51cGRhdGVPZmZzZXQodGhpcywkZSksdGhpcyk6SHQodGhpcyxrZSl9fWZ1bmN0aW9uIEh0KGtlLCRlKXtyZXR1cm4ga2UuaXNWYWxpZCgpP2tlLl9kWyJnZXQiKyhrZS5faXNVVEM/IlVUQyI6IiIpKyRlXSgpOk5hTn1mdW5jdGlvbiBQdChrZSwkZSxtdCl7a2Uu'@; put 'aXNWYWxpZCgpJiYhaXNOYU4obXQpJiYoIkZ1bGxZZWFyIj09PSRlJiZ6ZShrZS55ZWFyKCkpJiYxPT09a2UubW9udGgoKSYmMjk9PT1rZS5kYXRlKCk/KG10PXV0KG10KSxrZS5fZFsic2V0Iisoa2UuX2lzVVRDPyJVVEMiOiIiKSskZV0obXQsa2UubW9udGgoKSxubyhtdCxrZS5tb250aCgp'@; put 'KSkpOmtlLl9kWyJzZXQiKyhrZS5faXNVVEM/IlVUQyI6IiIpKyRlXShtdCkpfXZhciBEdCxVdD0vXGQvLGJuPS9cZFxkLyxXbj0vXGR7M30vLGVuPS9cZHs0fS8sJG49L1srLV0/XGR7Nn0vLEhuPS9cZFxkPy8sZnQ9L1xkXGRcZFxkPy8sZm49L1xkXGRcZFxkXGRcZD8vLGhuPS9cZHsxLDN9'@; put 'Lyx3dD0vXGR7MSw0fS8sWHQ9L1srLV0/XGR7MSw2fS8sX3Q9L1xkKy8sTnQ9L1srLV0/XGQrLyxtbj0vWnxbKy1dXGRcZDo/XGRcZC9naSxydD0vWnxbKy1dXGRcZCg/Ojo/XGRcZCk/L2dpLFF0PS9bMC05XXswLDI1Nn1bJ2Etelx1MDBBMC1cdTA1RkZcdTA3MDAtXHVEN0ZGXHVGOTAwLVx1'@; put 'RkRDRlx1RkRGMC1cdUZGMDdcdUZGMTAtXHVGRkVGXXsxLDI1Nn18W1x1MDYwMC1cdTA2RkZcL117MSwyNTZ9KFxzKj9bXHUwNjAwLVx1MDZGRl17MSwyNTZ9KXsxLDJ9L2k7ZnVuY3Rpb24gcHQoa2UsJGUsbXQpe0R0W2tlXT1iKCRlKT8kZTpmdW5jdGlvbihMdCxHdCl7cmV0dXJuIEx0JiZt'@; put 'dD9tdDokZX19ZnVuY3Rpb24gWXQoa2UsJGUpe3JldHVybiBPKER0LGtlKT9EdFtrZV0oJGUuX3N0cmljdCwkZS5fbG9jYWxlKTpuZXcgUmVnRXhwKGZ1bmN0aW9uIEluKGtlKXtyZXR1cm4genQoa2UucmVwbGFjZSgiXFwiLCIiKS5yZXBsYWNlKC9cXChcWyl8XFwoXF0pfFxbKFteXF1cW10q'@; put 'KVxdfFxcKC4pL2csZnVuY3Rpb24oJGUsbXQsTHQsR3QsVW4pe3JldHVybiBtdHx8THR8fEd0fHxVbn0pKX0oa2UpKX1mdW5jdGlvbiB6dChrZSl7cmV0dXJuIGtlLnJlcGxhY2UoL1stXC9cXF4kKis/LigpfFtcXXt9XS9nLCJcXCQmIil9RHQ9e307dmFyIHluPXt9O2Z1bmN0aW9uIHhuKGtl'@; put 'LCRlKXt2YXIgbXQsR3QsTHQ9JGU7Zm9yKCJzdHJpbmciPT10eXBlb2Yga2UmJihrZT1ba2VdKSxLKCRlKSYmKEx0PWZ1bmN0aW9uKFVuLERyKXtEclskZV09dXQoVW4pfSksR3Q9a2UubGVuZ3RoLG10PTA7bXQ8R3Q7bXQrKyl5bltrZVttdF1dPUx0fWZ1bmN0aW9uIHNuKGtlLCRlKXt4bihr'@; put 'ZSxmdW5jdGlvbihtdCxMdCxHdCxVbil7R3QuX3c9R3QuX3d8fHt9LCRlKG10LEd0Ll93LEd0LFVuKX0pfWZ1bmN0aW9uIEJuKGtlLCRlLG10KXtudWxsIT0kZSYmTyh5bixrZSkmJnluW2tlXSgkZSxtdC5fYSxtdCxrZSl9dmFyIEtyLFJuPTAsJHQ9MSxGbj0yLG5pPTMsbG49NCxqbj01LHFy'@; put 'PTYsZ2k9Nyx4cj04O2Z1bmN0aW9uIG5vKGtlLCRlKXtpZihpc05hTihrZSl8fGlzTmFOKCRlKSlyZXR1cm4gTmFOO3ZhciBtdD1mdW5jdGlvbiBVaShrZSwkZSl7cmV0dXJuKGtlJSRlKyRlKSUkZX0oJGUsMTIpO3JldHVybiBrZSs9KCRlLW10KS8xMiwxPT09bXQ/emUoa2UpPzI5OjI4OjMx'@; put 'LW10JTclMn1Lcj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9BcnJheS5wcm90b3R5cGUuaW5kZXhPZjpmdW5jdGlvbihrZSl7dmFyICRlO2ZvcigkZT0wOyRlPHRoaXMubGVuZ3RoOysrJGUpaWYodGhpc1skZV09PT1rZSlyZXR1cm4gJGU7cmV0dXJuLTF9LGRlKCJNIixbIk1NIiwyXSwiTW8i'@; put 'LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9udGgoKSsxfSksZGUoIk1NTSIsMCwwLGZ1bmN0aW9uKGtlKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzU2hvcnQodGhpcyxrZSl9KSxkZSgiTU1NTSIsMCwwLGZ1bmN0aW9uKGtlKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9u'@; put 'dGhzKHRoaXMsa2UpfSkscWUoIm1vbnRoIiwiTSIpLE1lKCJtb250aCIsOCkscHQoIk0iLEhuKSxwdCgiTU0iLEhuLGJuKSxwdCgiTU1NIixmdW5jdGlvbihrZSwkZSl7cmV0dXJuICRlLm1vbnRoc1Nob3J0UmVnZXgoa2UpfSkscHQoIk1NTU0iLGZ1bmN0aW9uKGtlLCRlKXtyZXR1cm4gJGUu'@; put 'bW9udGhzUmVnZXgoa2UpfSkseG4oWyJNIiwiTU0iXSxmdW5jdGlvbihrZSwkZSl7JGVbJHRdPXV0KGtlKS0xfSkseG4oWyJNTU0iLCJNTU1NIl0sZnVuY3Rpb24oa2UsJGUsbXQsTHQpe3ZhciBHdD1tdC5fbG9jYWxlLm1vbnRoc1BhcnNlKGtlLEx0LG10Ll9zdHJpY3QpO251bGwhPUd0PyRl'@; put 'WyR0XT1HdDpCKG10KS5pbnZhbGlkTW9udGg9a2V9KTt2YXIgSHI9IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIikscWk9Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVu'@; put 'X0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLEppPS9EW29EXT8oXFtbXlxbXF1dKlxdfFxzKStNTU1NPy8sYW89UXQscm89UXQ7ZnVuY3Rpb24gaG8oa2UsJGUsbXQpe3ZhciBMdCxHdCxVbixEcj1rZS50b0xvY2FsZUxvd2VyQ2FzZSgpO2lmKCF0aGlzLl9tb250aHNQYXJz'@; put 'ZSlmb3IodGhpcy5fbW9udGhzUGFyc2U9W10sdGhpcy5fbG9uZ01vbnRoc1BhcnNlPVtdLHRoaXMuX3Nob3J0TW9udGhzUGFyc2U9W10sTHQ9MDtMdDwxMjsrK0x0KVVuPWooWzJlMyxMdF0pLHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbTHRdPXRoaXMubW9udGhzU2hvcnQoVW4sIiIpLnRvTG9j'@; put 'YWxlTG93ZXJDYXNlKCksdGhpcy5fbG9uZ01vbnRoc1BhcnNlW0x0XT10aGlzLm1vbnRocyhVbiwiIikudG9Mb2NhbGVMb3dlckNhc2UoKTtyZXR1cm4gbXQ/Ik1NTSI9PT0kZT8tMSE9PShHdD1Lci5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsRHIpKT9HdDpudWxsOi0xIT09KEd0PUty'@; put 'LmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLERyKSk/R3Q6bnVsbDoiTU1NIj09PSRlPy0xIT09KEd0PUtyLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSxEcikpfHwtMSE9PShHdD1Lci5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSxEcikpP0d0Om51bGw6LTEhPT0oR3Q9S3IuY2Fs'@; put 'bCh0aGlzLl9sb25nTW9udGhzUGFyc2UsRHIpKXx8LTEhPT0oR3Q9S3IuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLERyKSk/R3Q6bnVsbH1mdW5jdGlvbiBQaShrZSwkZSl7dmFyIG10O2lmKCFrZS5pc1ZhbGlkKCkpcmV0dXJuIGtlO2lmKCJzdHJpbmciPT10eXBlb2YgJGUpaWYoL15c'@; put 'ZCskLy50ZXN0KCRlKSkkZT11dCgkZSk7ZWxzZSBpZighSygkZT1rZS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UoJGUpKSlyZXR1cm4ga2U7cmV0dXJuIG10PU1hdGgubWluKGtlLmRhdGUoKSxubyhrZS55ZWFyKCksJGUpKSxrZS5fZFsic2V0Iisoa2UuX2lzVVRDPyJVVEMiOiIiKSsiTW9u'@; put 'dGgiXSgkZSxtdCksa2V9ZnVuY3Rpb24gTG8oa2Upe3JldHVybiBudWxsIT1rZT8oUGkodGhpcyxrZSkseC51cGRhdGVPZmZzZXQodGhpcywhMCksdGhpcyk6SHQodGhpcywiTW9udGgiKX1mdW5jdGlvbiB1bCgpe2Z1bmN0aW9uIGtlKERyLHlvKXtyZXR1cm4geW8ubGVuZ3RoLURyLmxlbmd0'@; put 'aH12YXIgR3QsVW4sJGU9W10sbXQ9W10sTHQ9W107Zm9yKEd0PTA7R3Q8MTI7R3QrKylVbj1qKFsyZTMsR3RdKSwkZS5wdXNoKHRoaXMubW9udGhzU2hvcnQoVW4sIiIpKSxtdC5wdXNoKHRoaXMubW9udGhzKFVuLCIiKSksTHQucHVzaCh0aGlzLm1vbnRocyhVbiwiIikpLEx0LnB1c2godGhp'@; put 'cy5tb250aHNTaG9ydChVbiwiIikpO2ZvcigkZS5zb3J0KGtlKSxtdC5zb3J0KGtlKSxMdC5zb3J0KGtlKSxHdD0wO0d0PDEyO0d0KyspJGVbR3RdPXp0KCRlW0d0XSksbXRbR3RdPXp0KG10W0d0XSk7Zm9yKEd0PTA7R3Q8MjQ7R3QrKylMdFtHdF09enQoTHRbR3RdKTt0aGlzLl9tb250aHNS'@; put 'ZWdleD1uZXcgUmVnRXhwKCJeKCIrTHQuam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX21vbnRoc1Nob3J0UmVnZXg9dGhpcy5fbW9udGhzUmVnZXgsdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK210LmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9tb250aHNTaG9ydFN0'@; put 'cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIiskZS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gT2Moa2Upe3JldHVybiB6ZShrZSk/MzY2OjM2NX1kZSgiWSIsMCwwLGZ1bmN0aW9uKCl7dmFyIGtlPXRoaXMueWVhcigpO3JldHVybiBrZTw9OTk5OT92KGtlLDQpOiIrIitrZX0pLGRlKDAs'@; put 'WyJZWSIsMl0sMCxmdW5jdGlvbigpe3JldHVybiB0aGlzLnllYXIoKSUxMDB9KSxkZSgwLFsiWVlZWSIsNF0sMCwieWVhciIpLGRlKDAsWyJZWVlZWSIsNV0sMCwieWVhciIpLGRlKDAsWyJZWVlZWVkiLDYsITBdLDAsInllYXIiKSxxZSgieWVhciIsInkiKSxNZSgieWVhciIsMSkscHQoIlki'@; put 'LE50KSxwdCgiWVkiLEhuLGJuKSxwdCgiWVlZWSIsd3QsZW4pLHB0KCJZWVlZWSIsWHQsJG4pLHB0KCJZWVlZWVkiLFh0LCRuKSx4bihbIllZWVlZIiwiWVlZWVlZIl0sUm4pLHhuKCJZWVlZIixmdW5jdGlvbihrZSwkZSl7JGVbUm5dPTI9PT1rZS5sZW5ndGg/eC5wYXJzZVR3b0RpZ2l0WWVh'@; put 'cihrZSk6dXQoa2UpfSkseG4oIllZIixmdW5jdGlvbihrZSwkZSl7JGVbUm5dPXgucGFyc2VUd29EaWdpdFllYXIoa2UpfSkseG4oIlkiLGZ1bmN0aW9uKGtlLCRlKXskZVtSbl09cGFyc2VJbnQoa2UsMTApfSkseC5wYXJzZVR3b0RpZ2l0WWVhcj1mdW5jdGlvbihrZSl7cmV0dXJuIHV0KGtl'@; put 'KSsodXQoa2UpPjY4PzE5MDA6MmUzKX07dmFyIE4wPU10KCJGdWxsWWVhciIsITApO2Z1bmN0aW9uIGsyKGtlLCRlLG10LEx0LEd0LFVuLERyKXt2YXIgeW87cmV0dXJuIGtlPDEwMCYma2U+PTA/KHlvPW5ldyBEYXRlKGtlKzQwMCwkZSxtdCxMdCxHdCxVbixEciksaXNGaW5pdGUoeW8uZ2V0'@; put 'RnVsbFllYXIoKSkmJnlvLnNldEZ1bGxZZWFyKGtlKSk6eW89bmV3IERhdGUoa2UsJGUsbXQsTHQsR3QsVW4sRHIpLHlvfWZ1bmN0aW9uIGUwKGtlKXt2YXIgJGUsbXQ7cmV0dXJuIGtlPDEwMCYma2U+PTA/KChtdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKVswXT1r'@; put 'ZSs0MDAsJGU9bmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCxtdCkpLGlzRmluaXRlKCRlLmdldFVUQ0Z1bGxZZWFyKCkpJiYkZS5zZXRVVENGdWxsWWVhcihrZSkpOiRlPW5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsYXJndW1lbnRzKSksJGV9ZnVuY3Rpb24geHUoa2UsJGUsbXQp'@; put 'e3ZhciBMdD03KyRlLW10O3JldHVybi0oNytlMChrZSwwLEx0KS5nZXRVVENEYXkoKS0kZSklNytMdC0xfWZ1bmN0aW9uIGZzKGtlLCRlLG10LEx0LEd0KXt2YXIgZXMsenMseW89MSs3KigkZS0xKSsoNyttdC1MdCklNyt4dShrZSxMdCxHdCk7cmV0dXJuIHlvPD0wP3pzPU9jKGVzPWtlLTEp'@; put 'K3lvOnlvPk9jKGtlKT8oZXM9a2UrMSx6cz15by1PYyhrZSkpOihlcz1rZSx6cz15bykse3llYXI6ZXMsZGF5T2ZZZWFyOnpzfX1mdW5jdGlvbiBQYShrZSwkZSxtdCl7dmFyIFVuLERyLEx0PXh1KGtlLnllYXIoKSwkZSxtdCksR3Q9TWF0aC5mbG9vcigoa2UuZGF5T2ZZZWFyKCktTHQtMSkv'@; put 'NykrMTtyZXR1cm4gR3Q8MT9Vbj1HdCtTcihEcj1rZS55ZWFyKCktMSwkZSxtdCk6R3Q+U3Ioa2UueWVhcigpLCRlLG10KT8oVW49R3QtU3Ioa2UueWVhcigpLCRlLG10KSxEcj1rZS55ZWFyKCkrMSk6KERyPWtlLnllYXIoKSxVbj1HdCkse3dlZWs6VW4seWVhcjpEcn19ZnVuY3Rpb24gU3Io'@; put 'a2UsJGUsbXQpe3ZhciBMdD14dShrZSwkZSxtdCksR3Q9eHUoa2UrMSwkZSxtdCk7cmV0dXJuKE9jKGtlKS1MdCtHdCkvN31kZSgidyIsWyJ3dyIsMl0sIndvIiwid2VlayIpLGRlKCJXIixbIldXIiwyXSwiV28iLCJpc29XZWVrIikscWUoIndlZWsiLCJ3IikscWUoImlzb1dlZWsiLCJXIiks'@; put 'TWUoIndlZWsiLDUpLE1lKCJpc29XZWVrIiw1KSxwdCgidyIsSG4pLHB0KCJ3dyIsSG4sYm4pLHB0KCJXIixIbikscHQoIldXIixIbixibiksc24oWyJ3Iiwid3ciLCJXIiwiV1ciXSxmdW5jdGlvbihrZSwkZSxtdCxMdCl7JGVbTHQuc3Vic3RyKDAsMSldPXV0KGtlKX0pO2Z1bmN0aW9uIFNh'@; put 'KGtlLCRlKXtyZXR1cm4ga2Uuc2xpY2UoJGUsNykuY29uY2F0KGtlLnNsaWNlKDAsJGUpKX1kZSgiZCIsMCwiZG8iLCJkYXkiKSxkZSgiZGQiLDAsMCxmdW5jdGlvbihrZSl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsa2UpfSksZGUoImRkZCIsMCwwLGZ1bmN0'@; put 'aW9uKGtlKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLGtlKX0pLGRlKCJkZGRkIiwwLDAsZnVuY3Rpb24oa2Upe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5cyh0aGlzLGtlKX0pLGRlKCJlIiwwLDAsIndlZWtkYXkiKSxkZSgiRSIsMCwwLCJp'@; put 'c29XZWVrZGF5IikscWUoImRheSIsImQiKSxxZSgid2Vla2RheSIsImUiKSxxZSgiaXNvV2Vla2RheSIsIkUiKSxNZSgiZGF5IiwxMSksTWUoIndlZWtkYXkiLDExKSxNZSgiaXNvV2Vla2RheSIsMTEpLHB0KCJkIixIbikscHQoImUiLEhuKSxwdCgiRSIsSG4pLHB0KCJkZCIsZnVuY3Rpb24o'@; put 'a2UsJGUpe3JldHVybiAkZS53ZWVrZGF5c01pblJlZ2V4KGtlKX0pLHB0KCJkZGQiLGZ1bmN0aW9uKGtlLCRlKXtyZXR1cm4gJGUud2Vla2RheXNTaG9ydFJlZ2V4KGtlKX0pLHB0KCJkZGRkIixmdW5jdGlvbihrZSwkZSl7cmV0dXJuICRlLndlZWtkYXlzUmVnZXgoa2UpfSksc24oWyJkZCIs'@; put 'ImRkZCIsImRkZGQiXSxmdW5jdGlvbihrZSwkZSxtdCxMdCl7dmFyIEd0PW10Ll9sb2NhbGUud2Vla2RheXNQYXJzZShrZSxMdCxtdC5fc3RyaWN0KTtudWxsIT1HdD8kZS5kPUd0OkIobXQpLmludmFsaWRXZWVrZGF5PWtlfSksc24oWyJkIiwiZSIsIkUiXSxmdW5jdGlvbihrZSwkZSxtdCxM'@; put 'dCl7JGVbTHRdPXV0KGtlKX0pO3ZhciBGaD0iU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksRXU9IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSxBcz0iU3VfTW9fVHVfV2VfVGhfRnJfU2Ei'@; put 'LnNwbGl0KCJfIiksbjA9UXQscWE9UXQsX2M9UXQ7ZnVuY3Rpb24gcjAoa2UsJGUsbXQpe3ZhciBMdCxHdCxVbixEcj1rZS50b0xvY2FsZUxvd2VyQ2FzZSgpO2lmKCF0aGlzLl93ZWVrZGF5c1BhcnNlKWZvcih0aGlzLl93ZWVrZGF5c1BhcnNlPVtdLHRoaXMuX3Nob3J0V2Vla2RheXNQYXJz'@; put 'ZT1bXSx0aGlzLl9taW5XZWVrZGF5c1BhcnNlPVtdLEx0PTA7THQ8NzsrK0x0KVVuPWooWzJlMywxXSkuZGF5KEx0KSx0aGlzLl9taW5XZWVrZGF5c1BhcnNlW0x0XT10aGlzLndlZWtkYXlzTWluKFVuLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtM'@; put 'dF09dGhpcy53ZWVrZGF5c1Nob3J0KFVuLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX3dlZWtkYXlzUGFyc2VbTHRdPXRoaXMud2Vla2RheXMoVW4sIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuIG10PyJkZGRkIj09PSRlPy0xIT09KEd0PUtyLmNhbGwodGhpcy5fd2Vla2Rh'@; put 'eXNQYXJzZSxEcikpP0d0Om51bGw6ImRkZCI9PT0kZT8tMSE9PShHdD1Lci5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSxEcikpP0d0Om51bGw6LTEhPT0oR3Q9S3IuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLERyKSk/R3Q6bnVsbDoiZGRkZCI9PT0kZT8tMSE9PShHdD1Lci5j'@; put 'YWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsRHIpKXx8LTEhPT0oR3Q9S3IuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsRHIpKXx8LTEhPT0oR3Q9S3IuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLERyKSk/R3Q6bnVsbDoiZGRkIj09PSRlPy0xIT09KEd0PUtyLmNhbGwodGhpcy5f'@; put 'c2hvcnRXZWVrZGF5c1BhcnNlLERyKSl8fC0xIT09KEd0PUtyLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSxEcikpfHwtMSE9PShHdD1Lci5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsRHIpKT9HdDpudWxsOi0xIT09KEd0PUtyLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSxEcikp'@; put 'fHwtMSE9PShHdD1Lci5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsRHIpKXx8LTEhPT0oR3Q9S3IuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsRHIpKT9HdDpudWxsfWZ1bmN0aW9uIG8wKCl7ZnVuY3Rpb24ga2Uoc2MsZjApe3JldHVybiBmMC5sZW5ndGgtc2MubGVuZ3RofXZhciBV'@; put 'bixEcix5byxlcyx6cywkZT1bXSxtdD1bXSxMdD1bXSxHdD1bXTtmb3IoVW49MDtVbjw3O1VuKyspRHI9aihbMmUzLDFdKS5kYXkoVW4pLHlvPXp0KHRoaXMud2Vla2RheXNNaW4oRHIsIiIpKSxlcz16dCh0aGlzLndlZWtkYXlzU2hvcnQoRHIsIiIpKSx6cz16dCh0aGlzLndlZWtkYXlzKERy'@; put 'LCIiKSksJGUucHVzaCh5byksbXQucHVzaChlcyksTHQucHVzaCh6cyksR3QucHVzaCh5byksR3QucHVzaChlcyksR3QucHVzaCh6cyk7JGUuc29ydChrZSksbXQuc29ydChrZSksTHQuc29ydChrZSksR3Quc29ydChrZSksdGhpcy5fd2Vla2RheXNSZWdleD1uZXcgUmVnRXhwKCJeKCIrR3Qu'@; put 'am9pbigifCIpKyIpIiwiaSIpLHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleD10aGlzLl93ZWVrZGF5c1JlZ2V4LHRoaXMuX3dlZWtkYXlzTWluUmVnZXg9dGhpcy5fd2Vla2RheXNSZWdleCx0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIitMdC5qb2luKCJ8IikrIiki'@; put 'LCJpIiksdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIittdC5qb2luKCJ8IikrIikiLCJpIiksdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleD1uZXcgUmVnRXhwKCJeKCIrJGUuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIEkyKCl7cmV0dXJuIHRo'@; put 'aXMuaG91cnMoKSUxMnx8MTJ9ZnVuY3Rpb24gUWkoa2UsJGUpe2RlKGtlLDAsMCxmdW5jdGlvbigpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tZXJpZGllbSh0aGlzLmhvdXJzKCksdGhpcy5taW51dGVzKCksJGUpfSl9ZnVuY3Rpb24gWW4oa2UsJGUpe3JldHVybiAkZS5fbWVyaWRpZW1Q'@; put 'YXJzZX1kZSgiSCIsWyJISCIsMl0sMCwiaG91ciIpLGRlKCJoIixbImhoIiwyXSwwLEkyKSxkZSgiayIsWyJrayIsMl0sMCxmdW5jdGlvbiBOaCgpe3JldHVybiB0aGlzLmhvdXJzKCl8fDI0fSksZGUoImhtbSIsMCwwLGZ1bmN0aW9uKCl7cmV0dXJuIiIrSTIuYXBwbHkodGhpcykrdih0aGlz'@; put 'Lm1pbnV0ZXMoKSwyKX0pLGRlKCJobW1zcyIsMCwwLGZ1bmN0aW9uKCl7cmV0dXJuIiIrSTIuYXBwbHkodGhpcykrdih0aGlzLm1pbnV0ZXMoKSwyKSt2KHRoaXMuc2Vjb25kcygpLDIpfSksZGUoIkhtbSIsMCwwLGZ1bmN0aW9uKCl7cmV0dXJuIiIrdGhpcy5ob3VycygpK3YodGhpcy5taW51'@; put 'dGVzKCksMil9KSxkZSgiSG1tc3MiLDAsMCxmdW5jdGlvbigpe3JldHVybiIiK3RoaXMuaG91cnMoKSt2KHRoaXMubWludXRlcygpLDIpK3YodGhpcy5zZWNvbmRzKCksMil9KSxRaSgiYSIsITApLFFpKCJBIiwhMSkscWUoImhvdXIiLCJoIiksTWUoImhvdXIiLDEzKSxwdCgiYSIsWW4pLHB0'@; put 'KCJBIixZbikscHQoIkgiLEhuKSxwdCgiaCIsSG4pLHB0KCJrIixIbikscHQoIkhIIixIbixibikscHQoImhoIixIbixibikscHQoImtrIixIbixibikscHQoImhtbSIsZnQpLHB0KCJobW1zcyIsZm4pLHB0KCJIbW0iLGZ0KSxwdCgiSG1tc3MiLGZuKSx4bihbIkgiLCJISCJdLG5pKSx4bihb'@; put 'ImsiLCJrayJdLGZ1bmN0aW9uKGtlLCRlLG10KXt2YXIgTHQ9dXQoa2UpOyRlW25pXT0yND09PUx0PzA6THR9KSx4bihbImEiLCJBIl0sZnVuY3Rpb24oa2UsJGUsbXQpe210Ll9pc1BtPW10Ll9sb2NhbGUuaXNQTShrZSksbXQuX21lcmlkaWVtPWtlfSkseG4oWyJoIiwiaGgiXSxmdW5jdGlv'@; put 'bihrZSwkZSxtdCl7JGVbbmldPXV0KGtlKSxCKG10KS5iaWdIb3VyPSEwfSkseG4oImhtbSIsZnVuY3Rpb24oa2UsJGUsbXQpe3ZhciBMdD1rZS5sZW5ndGgtMjskZVtuaV09dXQoa2Uuc3Vic3RyKDAsTHQpKSwkZVtsbl09dXQoa2Uuc3Vic3RyKEx0KSksQihtdCkuYmlnSG91cj0hMH0pLHhu'@; put 'KCJobW1zcyIsZnVuY3Rpb24oa2UsJGUsbXQpe3ZhciBMdD1rZS5sZW5ndGgtNCxHdD1rZS5sZW5ndGgtMjskZVtuaV09dXQoa2Uuc3Vic3RyKDAsTHQpKSwkZVtsbl09dXQoa2Uuc3Vic3RyKEx0LDIpKSwkZVtqbl09dXQoa2Uuc3Vic3RyKEd0KSksQihtdCkuYmlnSG91cj0hMH0pLHhuKCJI'@; put 'bW0iLGZ1bmN0aW9uKGtlLCRlLG10KXt2YXIgTHQ9a2UubGVuZ3RoLTI7JGVbbmldPXV0KGtlLnN1YnN0cigwLEx0KSksJGVbbG5dPXV0KGtlLnN1YnN0cihMdCkpfSkseG4oIkhtbXNzIixmdW5jdGlvbihrZSwkZSxtdCl7dmFyIEx0PWtlLmxlbmd0aC00LEd0PWtlLmxlbmd0aC0yOyRlW25p'@; put 'XT11dChrZS5zdWJzdHIoMCxMdCkpLCRlW2xuXT11dChrZS5zdWJzdHIoTHQsMikpLCRlW2puXT11dChrZS5zdWJzdHIoR3QpKX0pO3ZhciBvcz1NdCgiSG91cnMiLCEwKTt2YXIgRGEsSGE9e2NhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRd'@; put 'IExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0sbG9uZ0RhdGVGb3JtYXQ6e0xUUzoiaDptbTpzcyBBIixMVDoiaDptbSBBIixMOiJNTS9ERC9ZWVlZIixMTDoi'@; put 'TU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEifSxpbnZhbGlkRGF0ZToiSW52YWxpZCBkYXRlIixvcmRpbmFsOiIlZCIsZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8scmVsYXRpdmVUaW1lOntmdXR1'@; put 'cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIix3OiJhIHdlZWsiLHd3OiIlZCB3ZWVrcyIsTToi'@; put 'YSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxtb250aHM6SHIsbW9udGhzU2hvcnQ6cWksd2Vlazp7ZG93OjAsZG95OjZ9LHdlZWtkYXlzOkZoLHdlZWtkYXlzTWluOkFzLHdlZWtkYXlzU2hvcnQ6RXUsbWVyaWRpZW1QYXJzZTovW2FwXVwuP20/XC4/'@; put 'L2l9LCRvPXt9LFYwPXt9O2Z1bmN0aW9uIFZoKGtlLCRlKXt2YXIgbXQsTHQ9TWF0aC5taW4oa2UubGVuZ3RoLCRlLmxlbmd0aCk7Zm9yKG10PTA7bXQ8THQ7bXQrPTEpaWYoa2VbbXRdIT09JGVbbXRdKXJldHVybiBtdDtyZXR1cm4gTHR9ZnVuY3Rpb24gQmgoa2Upe3JldHVybiBrZSYma2Uu'@; put 'dG9Mb3dlckNhc2UoKS5yZXBsYWNlKCJfIiwiLSIpfWZ1bmN0aW9uIHByKGtlKXt2YXIgJGU9bnVsbDtpZih2b2lkIDA9PT0kb1trZV0mJmF0JiZhdC5leHBvcnRzJiZmdW5jdGlvbiB5YyhrZSl7cmV0dXJuIG51bGwhPWtlLm1hdGNoKCJeW14vXFxcXF0qJCIpfShrZSkpdHJ5eyRlPURhLl9h'@; put 'YmJyLEYoNDY3MDApKCIuLyIra2UpLEhvKCRlKX1jYXRjaHskb1trZV09bnVsbH1yZXR1cm4gJG9ba2VdfWZ1bmN0aW9uIEhvKGtlLCRlKXt2YXIgbXQ7cmV0dXJuIGtlJiYoKG10PXooJGUpP2x1KGtlKTp3YyhrZSwkZSkpP0RhPW10OnR5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS53YXJu'@; put 'JiZjb25zb2xlLndhcm4oIkxvY2FsZSAiK2tlKyIgbm90IGZvdW5kLiBEaWQgeW91IGZvcmdldCB0byBsb2FkIGl0PyIpKSxEYS5fYWJicn1mdW5jdGlvbiB3YyhrZSwkZSl7aWYobnVsbCE9PSRlKXt2YXIgbXQsTHQ9SGE7aWYoJGUuYWJicj1rZSxudWxsIT0kb1trZV0pRygiZGVmaW5lTG9j'@; put 'YWxlT3ZlcnJpZGUiLCJ1c2UgbW9tZW50LnVwZGF0ZUxvY2FsZShsb2NhbGVOYW1lLCBjb25maWcpIHRvIGNoYW5nZSBhbiBleGlzdGluZyBsb2NhbGUuIG1vbWVudC5kZWZpbmVMb2NhbGUobG9jYWxlTmFtZSwgY29uZmlnKSBzaG91bGQgb25seSBiZSB1c2VkIGZvciBjcmVhdGluZyBhIG5l'@; put 'dyBsb2NhbGUgU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZGVmaW5lLWxvY2FsZS8gZm9yIG1vcmUgaW5mby4iKSxMdD0kb1trZV0uX2NvbmZpZztlbHNlIGlmKG51bGwhPSRlLnBhcmVudExvY2FsZSlpZihudWxsIT0kb1skZS5wYXJlbnRMb2NhbGVdKUx0PSRv'@; put 'WyRlLnBhcmVudExvY2FsZV0uX2NvbmZpZztlbHNle2lmKG51bGw9PShtdD1wcigkZS5wYXJlbnRMb2NhbGUpKSlyZXR1cm4gVjBbJGUucGFyZW50TG9jYWxlXXx8KFYwWyRlLnBhcmVudExvY2FsZV09W10pLFYwWyRlLnBhcmVudExvY2FsZV0ucHVzaCh7bmFtZTprZSxjb25maWc6JGV9KSxu'@; put 'dWxsO0x0PW10Ll9jb25maWd9cmV0dXJuICRvW2tlXT1uZXcgTihIKEx0LCRlKSksVjBba2VdJiZWMFtrZV0uZm9yRWFjaChmdW5jdGlvbihHdCl7d2MoR3QubmFtZSxHdC5jb25maWcpfSksSG8oa2UpLCRvW2tlXX1yZXR1cm4gZGVsZXRlICRvW2tlXSxudWxsfWZ1bmN0aW9uIGx1KGtlKXt2'@; put 'YXIgJGU7aWYoa2UmJmtlLl9sb2NhbGUmJmtlLl9sb2NhbGUuX2FiYnImJihrZT1rZS5fbG9jYWxlLl9hYmJyKSwha2UpcmV0dXJuIERhO2lmKCFsZShrZSkpe2lmKCRlPXByKGtlKSlyZXR1cm4gJGU7a2U9W2tlXX1yZXR1cm4gZnVuY3Rpb24gb2woa2Upe2Zvcih2YXIgbXQsTHQsR3QsVW4s'@; put 'JGU9MDskZTxrZS5sZW5ndGg7KXtmb3IobXQ9KFVuPUJoKGtlWyRlXSkuc3BsaXQoIi0iKSkubGVuZ3RoLEx0PShMdD1CaChrZVskZSsxXSkpP0x0LnNwbGl0KCItIik6bnVsbDttdD4wOyl7aWYoR3Q9cHIoVW4uc2xpY2UoMCxtdCkuam9pbigiLSIpKSlyZXR1cm4gR3Q7aWYoTHQmJkx0Lmxl'@; put 'bmd0aD49bXQmJlZoKFVuLEx0KT49bXQtMSlicmVhazttdC0tfSRlKyt9cmV0dXJuIERhfShrZSl9ZnVuY3Rpb24gTDIoa2Upe3ZhciAkZSxtdD1rZS5fYTtyZXR1cm4gbXQmJi0yPT09QihrZSkub3ZlcmZsb3cmJigkZT1tdFskdF08MHx8bXRbJHRdPjExPyR0Om10W0ZuXTwxfHxtdFtGbl0+'@; put 'bm8obXRbUm5dLG10WyR0XSk/Rm46bXRbbmldPDB8fG10W25pXT4yNHx8MjQ9PT1tdFtuaV0mJigwIT09bXRbbG5dfHwwIT09bXRbam5dfHwwIT09bXRbcXJdKT9uaTptdFtsbl08MHx8bXRbbG5dPjU5P2xuOm10W2puXTwwfHxtdFtqbl0+NTk/am46bXRbcXJdPDB8fG10W3FyXT45OTk/cXI6'@; put 'LTEsQihrZSkuX292ZXJmbG93RGF5T2ZZZWFyJiYoJGU8Um58fCRlPkZuKSYmKCRlPUZuKSxCKGtlKS5fb3ZlcmZsb3dXZWVrcyYmLTE9PT0kZSYmKCRlPWdpKSxCKGtlKS5fb3ZlcmZsb3dXZWVrZGF5JiYtMT09PSRlJiYoJGU9eHIpLEIoa2UpLm92ZXJmbG93PSRlKSxrZX12YXIgbWk9L15c'@; put 'cyooKD86WystXVxkezZ9fFxkezR9KS0oPzpcZFxkLVxkXGR8V1xkXGQtXGR8V1xkXGR8XGRcZFxkfFxkXGQpKSg/OihUfCApKFxkXGQoPzo6XGRcZCg/OjpcZFxkKD86Wy4sXVxkKyk/KT8pPykoWystXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLHhkPS9eXHMqKCg/OlsrLV1cZHs2fXxc'@; put 'ZHs0fSkoPzpcZFxkXGRcZHxXXGRcZFxkfFdcZFxkfFxkXGRcZHxcZFxkfCkpKD86KFR8ICkoXGRcZCg/OlxkXGQoPzpcZFxkKD86Wy4sXVxkKyk/KT8pPykoWystXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLHE3PS9afFsrLV1cZFxkKD86Oj9cZFxkKT8vLEIwPVtbIllZWVlZWS1NTS1E'@; put 'RCIsL1srLV1cZHs2fS1cZFxkLVxkXGQvXSxbIllZWVktTU0tREQiLC9cZHs0fS1cZFxkLVxkXGQvXSxbIkdHR0ctW1ddV1ctRSIsL1xkezR9LVdcZFxkLVxkL10sWyJHR0dHLVtXXVdXIiwvXGR7NH0tV1xkXGQvLCExXSxbIllZWVktREREIiwvXGR7NH0tXGR7M30vXSxbIllZWVktTU0iLC9c'@; put 'ZHs0fS1cZFxkLywhMV0sWyJZWVlZWVlNTUREIiwvWystXVxkezEwfS9dLFsiWVlZWU1NREQiLC9cZHs4fS9dLFsiR0dHR1tXXVdXRSIsL1xkezR9V1xkezN9L10sWyJHR0dHW1ddV1ciLC9cZHs0fVdcZHsyfS8sITFdLFsiWVlZWURERCIsL1xkezd9L10sWyJZWVlZTU0iLC9cZHs2fS8sITFd'@; put 'LFsiWVlZWSIsL1xkezR9LywhMV1dLEhzPVtbIkhIOm1tOnNzLlNTU1MiLC9cZFxkOlxkXGQ6XGRcZFwuXGQrL10sWyJISDptbTpzcyxTU1NTIiwvXGRcZDpcZFxkOlxkXGQsXGQrL10sWyJISDptbTpzcyIsL1xkXGQ6XGRcZDpcZFxkL10sWyJISDptbSIsL1xkXGQ6XGRcZC9dLFsiSEhtbXNz'@; put 'LlNTU1MiLC9cZFxkXGRcZFxkXGRcLlxkKy9dLFsiSEhtbXNzLFNTU1MiLC9cZFxkXGRcZFxkXGQsXGQrL10sWyJISG1tc3MiLC9cZFxkXGRcZFxkXGQvXSxbIkhIbW0iLC9cZFxkXGRcZC9dLFsiSEgiLC9cZFxkL11dLG5tPS9eXC8/RGF0ZVwoKC0/XGQrKS9pLGMzPS9eKD86KE1vbnxUdWV8'@; put 'V2VkfFRodXxGcml8U2F0fFN1biksP1xzKT8oXGR7MSwyfSlccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylccyhcZHsyLDR9KVxzKFxkXGQpOihcZFxkKSg/OjooXGRcZCkpP1xzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfChbKy1dXGR7'@; put 'NH0pKSQvLGpoPXtVVDowLEdNVDowLEVEVDotMjQwLEVTVDotMzAwLENEVDotMzAwLENTVDotMzYwLE1EVDotMzYwLE1TVDotNDIwLFBEVDotNDIwLFBTVDotNDgwfTtmdW5jdGlvbiBOcyhrZSl7dmFyICRlLG10LFVuLERyLHlvLGVzLEx0PWtlLl9pLEd0PW1pLmV4ZWMoTHQpfHx4ZC5leGVj'@; put 'KEx0KSx6cz1CMC5sZW5ndGgsc2M9SHMubGVuZ3RoO2lmKEd0KXtmb3IoQihrZSkuaXNvPSEwLCRlPTAsbXQ9enM7JGU8bXQ7JGUrKylpZihCMFskZV1bMV0uZXhlYyhHdFsxXSkpe0RyPUIwWyRlXVswXSxVbj0hMSE9PUIwWyRlXVsyXTticmVha31pZihudWxsPT1EcilyZXR1cm4gdm9pZChr'@; put 'ZS5faXNWYWxpZD0hMSk7aWYoR3RbM10pe2ZvcigkZT0wLG10PXNjOyRlPG10OyRlKyspaWYoSHNbJGVdWzFdLmV4ZWMoR3RbM10pKXt5bz0oR3RbMl18fCIgIikrSHNbJGVdWzBdO2JyZWFrfWlmKG51bGw9PXlvKXJldHVybiB2b2lkKGtlLl9pc1ZhbGlkPSExKX1pZighVW4mJm51bGwhPXlv'@; put 'KXJldHVybiB2b2lkKGtlLl9pc1ZhbGlkPSExKTtpZihHdFs0XSl7aWYoIXE3LmV4ZWMoR3RbNF0pKXJldHVybiB2b2lkKGtlLl9pc1ZhbGlkPSExKTtlcz0iWiJ9a2UuX2Y9RHIrKHlvfHwiIikrKGVzfHwiIiksczAoa2UpfWVsc2Uga2UuX2lzVmFsaWQ9ITF9ZnVuY3Rpb24gbnMoa2Upe3Zh'@; put 'ciAkZT1wYXJzZUludChrZSwxMCk7cmV0dXJuICRlPD00OT8yZTMrJGU6JGU8PTk5OT8xOTAwKyRlOiRlfWZ1bmN0aW9uIFdzKGtlKXt2YXIgbXQsJGU9YzMuZXhlYyhmdW5jdGlvbiBoNChrZSl7cmV0dXJuIGtlLnJlcGxhY2UoL1woW14oKV0qXCl8W1xuXHRdL2csIiAiKS5yZXBsYWNlKC8o'@; put 'XHNccyspL2csIiAiKS5yZXBsYWNlKC9eXHNccyovLCIiKS5yZXBsYWNlKC9cc1xzKiQvLCIiKX0oa2UuX2kpKTtpZigkZSl7aWYobXQ9ZnVuY3Rpb24gSzcoa2UsJGUsbXQsTHQsR3QsVW4pe3ZhciBEcj1bbnMoa2UpLHFpLmluZGV4T2YoJGUpLHBhcnNlSW50KG10LDEwKSxwYXJzZUludChM'@; put 'dCwxMCkscGFyc2VJbnQoR3QsMTApXTtyZXR1cm4gVW4mJkRyLnB1c2gocGFyc2VJbnQoVW4sMTApKSxEcn0oJGVbNF0sJGVbM10sJGVbMl0sJGVbNV0sJGVbNl0sJGVbN10pLCFmdW5jdGlvbiBzcyhrZSwkZSxtdCl7cmV0dXJuIWtlfHxFdS5pbmRleE9mKGtlKT09PW5ldyBEYXRlKCRlWzBd'@; put 'LCRlWzFdLCRlWzJdKS5nZXREYXkoKXx8KEIobXQpLndlZWtkYXlNaXNtYXRjaD0hMCxtdC5faXNWYWxpZD0hMSwhMSl9KCRlWzFdLG10LGtlKSlyZXR1cm47a2UuX2E9bXQsa2UuX3R6bT1mdW5jdGlvbiBkaShrZSwkZSxtdCl7aWYoa2UpcmV0dXJuIGpoW2tlXTtpZigkZSlyZXR1cm4gMDt2'@; put 'YXIgTHQ9cGFyc2VJbnQobXQsMTApLEd0PUx0JTEwMDtyZXR1cm4oTHQtR3QpLzEwMCo2MCtHdH0oJGVbOF0sJGVbOV0sJGVbMTBdKSxrZS5fZD1lMC5hcHBseShudWxsLGtlLl9hKSxrZS5fZC5zZXRVVENNaW51dGVzKGtlLl9kLmdldFVUQ01pbnV0ZXMoKS1rZS5fdHptKSxCKGtlKS5yZmMy'@; put 'ODIyPSEwfWVsc2Uga2UuX2lzVmFsaWQ9ITF9ZnVuY3Rpb24gT2koa2UsJGUsbXQpe3JldHVybiBrZT8/JGU/P210fWZ1bmN0aW9uIGN1KGtlKXt2YXIgJGUsbXQsR3QsVW4sRHIsTHQ9W107aWYoIWtlLl9kKXtmb3IoR3Q9ZnVuY3Rpb24gcm0oa2Upe3ZhciAkZT1uZXcgRGF0ZSh4Lm5vdygp'@; put 'KTtyZXR1cm4ga2UuX3VzZVVUQz9bJGUuZ2V0VVRDRnVsbFllYXIoKSwkZS5nZXRVVENNb250aCgpLCRlLmdldFVUQ0RhdGUoKV06WyRlLmdldEZ1bGxZZWFyKCksJGUuZ2V0TW9udGgoKSwkZS5nZXREYXRlKCldfShrZSksa2UuX3cmJm51bGw9PWtlLl9hW0ZuXSYmbnVsbD09a2UuX2FbJHRd'@; put 'JiZmdW5jdGlvbiBFZChrZSl7dmFyICRlLG10LEx0LEd0LFVuLERyLHlvLGVzLHpzO251bGwhPSgkZT1rZS5fdykuR0d8fG51bGwhPSRlLld8fG51bGwhPSRlLkU/KFVuPTEsRHI9NCxtdD1PaSgkZS5HRyxrZS5fYVtSbl0sUGEoY2EoKSwxLDQpLnllYXIpLEx0PU9pKCRlLlcsMSksKChHdD1P'@; put 'aSgkZS5FLDEpKTwxfHxHdD43KSYmKGVzPSEwKSk6KFVuPWtlLl9sb2NhbGUuX3dlZWsuZG93LERyPWtlLl9sb2NhbGUuX3dlZWsuZG95LHpzPVBhKGNhKCksVW4sRHIpLG10PU9pKCRlLmdnLGtlLl9hW1JuXSx6cy55ZWFyKSxMdD1PaSgkZS53LHpzLndlZWspLG51bGwhPSRlLmQ/KChHdD0k'@; put 'ZS5kKTwwfHxHdD42KSYmKGVzPSEwKTpudWxsIT0kZS5lPyhHdD0kZS5lK1VuLCgkZS5lPDB8fCRlLmU+NikmJihlcz0hMCkpOkd0PVVuKSxMdDwxfHxMdD5TcihtdCxVbixEcik/QihrZSkuX292ZXJmbG93V2Vla3M9ITA6bnVsbCE9ZXM/QihrZSkuX292ZXJmbG93V2Vla2RheT0hMDooeW89'@; put 'ZnMobXQsTHQsR3QsVW4sRHIpLGtlLl9hW1JuXT15by55ZWFyLGtlLl9kYXlPZlllYXI9eW8uZGF5T2ZZZWFyKX0oa2UpLG51bGwhPWtlLl9kYXlPZlllYXImJihEcj1PaShrZS5fYVtSbl0sR3RbUm5dKSwoa2UuX2RheU9mWWVhcj5PYyhEcil8fDA9PT1rZS5fZGF5T2ZZZWFyKSYmKEIoa2Up'@; put 'Ll9vdmVyZmxvd0RheU9mWWVhcj0hMCksbXQ9ZTAoRHIsMCxrZS5fZGF5T2ZZZWFyKSxrZS5fYVskdF09bXQuZ2V0VVRDTW9udGgoKSxrZS5fYVtGbl09bXQuZ2V0VVRDRGF0ZSgpKSwkZT0wOyRlPDMmJm51bGw9PWtlLl9hWyRlXTsrKyRlKWtlLl9hWyRlXT1MdFskZV09R3RbJGVdO2Zvcig7'@; put 'JGU8NzskZSsrKWtlLl9hWyRlXT1MdFskZV09bnVsbD09a2UuX2FbJGVdPzI9PT0kZT8xOjA6a2UuX2FbJGVdOzI0PT09a2UuX2FbbmldJiYwPT09a2UuX2FbbG5dJiYwPT09a2UuX2Fbam5dJiYwPT09a2UuX2FbcXJdJiYoa2UuX25leHREYXk9ITAsa2UuX2FbbmldPTApLGtlLl9kPShrZS5f'@; put 'dXNlVVRDP2UwOmsyKS5hcHBseShudWxsLEx0KSxVbj1rZS5fdXNlVVRDP2tlLl9kLmdldFVUQ0RheSgpOmtlLl9kLmdldERheSgpLG51bGwhPWtlLl90em0mJmtlLl9kLnNldFVUQ01pbnV0ZXMoa2UuX2QuZ2V0VVRDTWludXRlcygpLWtlLl90em0pLGtlLl9uZXh0RGF5JiYoa2UuX2Fbbmld'@; put 'PTI0KSxrZS5fdyYmdHlwZW9mIGtlLl93LmQ8InUiJiZrZS5fdy5kIT09VW4mJihCKGtlKS53ZWVrZGF5TWlzbWF0Y2g9ITApfX1mdW5jdGlvbiBzMChrZSl7aWYoa2UuX2YhPT14LklTT184NjAxKWlmKGtlLl9mIT09eC5SRkNfMjgyMil7a2UuX2E9W10sQihrZSkuZW1wdHk9ITA7dmFyIG10'@; put 'LEx0LEd0LFVuLERyLHpzLHNjLCRlPSIiK2tlLl9pLHlvPSRlLmxlbmd0aCxlcz0wO2ZvcihzYz0oR3Q9RmUoa2UuX2Ysa2UuX2xvY2FsZSkubWF0Y2gocCl8fFtdKS5sZW5ndGgsbXQ9MDttdDxzYzttdCsrKShMdD0oJGUubWF0Y2goWXQoVW49R3RbbXRdLGtlKSl8fFtdKVswXSkmJigoRHI9'@; put 'JGUuc3Vic3RyKDAsJGUuaW5kZXhPZihMdCkpKS5sZW5ndGg+MCYmQihrZSkudW51c2VkSW5wdXQucHVzaChEciksJGU9JGUuc2xpY2UoJGUuaW5kZXhPZihMdCkrTHQubGVuZ3RoKSxlcys9THQubGVuZ3RoKSxuZVtVbl0/KEx0P0Ioa2UpLmVtcHR5PSExOkIoa2UpLnVudXNlZFRva2Vucy5w'@; put 'dXNoKFVuKSxCbihVbixMdCxrZSkpOmtlLl9zdHJpY3QmJiFMdCYmQihrZSkudW51c2VkVG9rZW5zLnB1c2goVW4pO0Ioa2UpLmNoYXJzTGVmdE92ZXI9eW8tZXMsJGUubGVuZ3RoPjAmJkIoa2UpLnVudXNlZElucHV0LnB1c2goJGUpLGtlLl9hW25pXTw9MTImJiEwPT09QihrZSkuYmlnSG91'@; put 'ciYma2UuX2FbbmldPjAmJihCKGtlKS5iaWdIb3VyPXZvaWQgMCksQihrZSkucGFyc2VkRGF0ZVBhcnRzPWtlLl9hLnNsaWNlKDApLEIoa2UpLm1lcmlkaWVtPWtlLl9tZXJpZGllbSxrZS5fYVtuaV09ZnVuY3Rpb24gazEoa2UsJGUsbXQpe3ZhciBMdDtyZXR1cm4gbnVsbD09bXQ/JGU6bnVs'@; put 'bCE9a2UubWVyaWRpZW1Ib3VyP2tlLm1lcmlkaWVtSG91cigkZSxtdCk6KG51bGwhPWtlLmlzUE0mJigoTHQ9a2UuaXNQTShtdCkpJiYkZTwxMiYmKCRlKz0xMiksIUx0JiYxMj09PSRlJiYoJGU9MCkpLCRlKX0oa2UuX2xvY2FsZSxrZS5fYVtuaV0sa2UuX21lcmlkaWVtKSxudWxsIT09KHpz'@; put 'PUIoa2UpLmVyYSkmJihrZS5fYVtSbl09a2UuX2xvY2FsZS5lcmFzQ29udmVydFllYXIoenMsa2UuX2FbUm5dKSksY3Uoa2UpLEwyKGtlKX1lbHNlIFdzKGtlKTtlbHNlIE5zKGtlKX1mdW5jdGlvbiBpbShrZSl7dmFyICRlPWtlLl9pLG10PWtlLl9mO3JldHVybiBrZS5fbG9jYWxlPWtlLl9s'@; put 'b2NhbGV8fGx1KGtlLl9sKSxudWxsPT09JGV8fHZvaWQgMD09PW10JiYiIj09PSRlP1Uoe251bGxJbnB1dDohMH0pOigic3RyaW5nIj09dHlwZW9mICRlJiYoa2UuX2k9JGU9a2UuX2xvY2FsZS5wcmVwYXJzZSgkZSkpLHNlKCRlKT9uZXcgb2UoTDIoJGUpKTooSSgkZSk/a2UuX2Q9JGU6bGUo'@; put 'bXQpP2Z1bmN0aW9uIGt1KGtlKXt2YXIgJGUsbXQsTHQsR3QsVW4sRHIseW89ITEsZXM9a2UuX2YubGVuZ3RoO2lmKDA9PT1lcylyZXR1cm4gQihrZSkuaW52YWxpZEZvcm1hdD0hMCx2b2lkKGtlLl9kPW5ldyBEYXRlKE5hTikpO2ZvcihHdD0wO0d0PGVzO0d0KyspVW49MCxEcj0hMSwkZT10'@; put 'ZSh7fSxrZSksbnVsbCE9a2UuX3VzZVVUQyYmKCRlLl91c2VVVEM9a2UuX3VzZVVUQyksJGUuX2Y9a2UuX2ZbR3RdLHMwKCRlKSxYKCRlKSYmKERyPSEwKSxVbis9QigkZSkuY2hhcnNMZWZ0T3ZlcixVbis9MTAqQigkZSkudW51c2VkVG9rZW5zLmxlbmd0aCxCKCRlKS5zY29yZT1Vbix5bz9V'@; put 'bjxMdCYmKEx0PVVuLG10PSRlKToobnVsbD09THR8fFVuPEx0fHxEcikmJihMdD1VbixtdD0kZSxEciYmKHlvPSEwKSk7RShrZSxtdHx8JGUpfShrZSk6bXQ/czAoa2UpOmZ1bmN0aW9uIG9tKGtlKXt2YXIgJGU9a2UuX2k7eigkZSk/a2UuX2Q9bmV3IERhdGUoeC5ub3coKSk6SSgkZSk/a2Uu'@; put 'X2Q9bmV3IERhdGUoJGUudmFsdWVPZigpKToic3RyaW5nIj09dHlwZW9mICRlP2Z1bmN0aW9uIE9vKGtlKXt2YXIgJGU9bm0uZXhlYyhrZS5faSk7bnVsbD09PSRlPyhOcyhrZSksITE9PT1rZS5faXNWYWxpZCYmKGRlbGV0ZSBrZS5faXNWYWxpZCxXcyhrZSksITE9PT1rZS5faXNWYWxpZCYm'@; put 'KGRlbGV0ZSBrZS5faXNWYWxpZCxrZS5fc3RyaWN0P2tlLl9pc1ZhbGlkPSExOnguY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soa2UpKSkpOmtlLl9kPW5ldyBEYXRlKCskZVsxXSl9KGtlKTpsZSgkZSk/KGtlLl9hPWsoJGUuc2xpY2UoMCksZnVuY3Rpb24obXQpe3JldHVybiBwYXJzZUludCht'@; put 'dCwxMCl9KSxjdShrZSkpOk0oJGUpP2Z1bmN0aW9uIENjKGtlKXtpZigha2UuX2Qpe3ZhciAkZT1VZShrZS5faSk7a2UuX2E9ayhbJGUueWVhciwkZS5tb250aCx2b2lkIDA9PT0kZS5kYXk/JGUuZGF0ZTokZS5kYXksJGUuaG91ciwkZS5taW51dGUsJGUuc2Vjb25kLCRlLm1pbGxpc2Vjb25k'@; put 'XSxmdW5jdGlvbihMdCl7cmV0dXJuIEx0JiZwYXJzZUludChMdCwxMCl9KSxjdShrZSl9fShrZSk6SygkZSk/a2UuX2Q9bmV3IERhdGUoJGUpOnguY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soa2UpfShrZSksWChrZSl8fChrZS5fZD1udWxsKSxrZSkpfWZ1bmN0aW9uIGtkKGtlLCRlLG10LEx0'@; put 'LEd0KXt2YXIgVW49e307cmV0dXJuKCEwPT09JGV8fCExPT09JGUpJiYoTHQ9JGUsJGU9dm9pZCAwKSwoITA9PT1tdHx8ITE9PT1tdCkmJihMdD1tdCxtdD12b2lkIDApLChNKGtlKSYmUihrZSl8fGxlKGtlKSYmMD09PWtlLmxlbmd0aCkmJihrZT12b2lkIDApLFVuLl9pc0FNb21lbnRPYmpl'@; put 'Y3Q9ITAsVW4uX3VzZVVUQz1Vbi5faXNVVEM9R3QsVW4uX2w9bXQsVW4uX2k9a2UsVW4uX2Y9JGUsVW4uX3N0cmljdD1MdCxmdW5jdGlvbiByYyhrZSl7dmFyICRlPW5ldyBvZShMMihpbShrZSkpKTtyZXR1cm4gJGUuX25leHREYXkmJigkZS5hZGQoMSwiZCIpLCRlLl9uZXh0RGF5PXZvaWQg'@; put 'MCksJGV9KFVuKX1mdW5jdGlvbiBjYShrZSwkZSxtdCxMdCl7cmV0dXJuIGtkKGtlLCRlLG10LEx0LCExKX14LmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrPXVlKCJ2YWx1ZSBwcm92aWRlZCBpcyBub3QgaW4gYSByZWNvZ25pemVkIFJGQzI4MjIgb3IgSVNPIGZvcm1hdC4gbW9tZW50IGNvbnN0'@; put 'cnVjdGlvbiBmYWxscyBiYWNrIHRvIGpzIERhdGUoKSwgd2hpY2ggaXMgbm90IHJlbGlhYmxlIGFjcm9zcyBhbGwgYnJvd3NlcnMgYW5kIHZlcnNpb25zLiBOb24gUkZDMjgyMi9JU08gZGF0ZSBmb3JtYXRzIGFyZSBkaXNjb3VyYWdlZC4gUGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly9tb21lbnRq'@; put 'cy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvanMtZGF0ZS8gZm9yIG1vcmUgaW5mby4iLGZ1bmN0aW9uKGtlKXtrZS5fZD1uZXcgRGF0ZShrZS5faSsoa2UuX3VzZVVUQz8iIFVUQyI6IiIpKX0pLHguSVNPXzg2MDE9ZnVuY3Rpb24oKXt9LHguUkZDXzI4MjI9ZnVuY3Rpb24oKXt9O3ZhciBBMT11'@; put 'ZSgibW9tZW50KCkubWluIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWF4IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8iLGZ1bmN0aW9uKCl7dmFyIGtlPWNhLmFwcGx5KG51bGwsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5pc1ZhbGlk'@; put 'KCkmJmtlLmlzVmFsaWQoKT9rZTx0aGlzP3RoaXM6a2U6VSgpfSksWDc9dWUoIm1vbWVudCgpLm1heCBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1pbiBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvIixmdW5jdGlvbigpe3ZhciBrZT1j'@; put 'YS5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuaXNWYWxpZCgpJiZrZS5pc1ZhbGlkKCk/a2U+dGhpcz90aGlzOmtlOlUoKX0pO2Z1bmN0aW9uIGFyKGtlLCRlKXt2YXIgbXQsTHQ7aWYoMT09PSRlLmxlbmd0aCYmbGUoJGVbMF0pJiYoJGU9JGVbMF0pLCEkZS5sZW5ndGgpcmV0'@; put 'dXJuIGNhKCk7Zm9yKG10PSRlWzBdLEx0PTE7THQ8JGUubGVuZ3RoOysrTHQpKCEkZVtMdF0uaXNWYWxpZCgpfHwkZVtMdF1ba2VdKG10KSkmJihtdD0kZVtMdF0pO3JldHVybiBtdH12YXIgS2M9WyJ5ZWFyIiwicXVhcnRlciIsIm1vbnRoIiwid2VlayIsImRheSIsImhvdXIiLCJtaW51dGUi'@; put 'LCJzZWNvbmQiLCJtaWxsaXNlY29uZCJdO2Z1bmN0aW9uIEFkKGtlKXt2YXIgJGU9VWUoa2UpLG10PSRlLnllYXJ8fDAsTHQ9JGUucXVhcnRlcnx8MCxHdD0kZS5tb250aHx8MCxVbj0kZS53ZWVrfHwkZS5pc29XZWVrfHwwLERyPSRlLmRheXx8MCx5bz0kZS5ob3VyfHwwLGVzPSRlLm1pbnV0'@; put 'ZXx8MCx6cz0kZS5zZWNvbmR8fDAsc2M9JGUubWlsbGlzZWNvbmR8fDA7dGhpcy5faXNWYWxpZD1mdW5jdGlvbiB6aChrZSl7dmFyICRlLEx0LG10PSExLEd0PUtjLmxlbmd0aDtmb3IoJGUgaW4ga2UpaWYoTyhrZSwkZSkmJigtMT09PUtyLmNhbGwoS2MsJGUpfHxudWxsIT1rZVskZV0mJmlz'@; put 'TmFOKGtlWyRlXSkpKXJldHVybiExO2ZvcihMdD0wO0x0PEd0OysrTHQpaWYoa2VbS2NbTHRdXSl7aWYobXQpcmV0dXJuITE7cGFyc2VGbG9hdChrZVtLY1tMdF1dKSE9PXV0KGtlW0tjW0x0XV0pJiYobXQ9ITApfXJldHVybiEwfSgkZSksdGhpcy5fbWlsbGlzZWNvbmRzPStzYysxZTMqenMr'@; put 'NmU0KmVzKzFlMyp5byo2MCo2MCx0aGlzLl9kYXlzPStEcis3KlVuLHRoaXMuX21vbnRocz0rR3QrMypMdCsxMiptdCx0aGlzLl9kYXRhPXt9LHRoaXMuX2xvY2FsZT1sdSgpLHRoaXMuX2J1YmJsZSgpfWZ1bmN0aW9uIGR1KGtlKXtyZXR1cm4ga2UgaW5zdGFuY2VvZiBBZH1mdW5jdGlvbiBU'@; put 'MShrZSl7cmV0dXJuIGtlPDA/LTEqTWF0aC5yb3VuZCgtMSprZSk6TWF0aC5yb3VuZChrZSl9ZnVuY3Rpb24gWGMoa2UsJGUpe2RlKGtlLDAsMCxmdW5jdGlvbigpe3ZhciBtdD10aGlzLnV0Y09mZnNldCgpLEx0PSIrIjtyZXR1cm4gbXQ8MCYmKG10PS1tdCxMdD0iLSIpLEx0K3Yofn4obXQv'@; put 'NjApLDIpKyRlK3Yofn5tdCU2MCwyKX0pfVhjKCJaIiwiOiIpLFhjKCJaWiIsIiIpLHB0KCJaIixydCkscHQoIlpaIixydCkseG4oWyJaIiwiWloiXSxmdW5jdGlvbihrZSwkZSxtdCl7bXQuX3VzZVVUQz0hMCxtdC5fdHptPVRkKHJ0LGtlKX0pO3ZhciBTcz0vKFtcK1wtXXxcZFxkKS9naTtm'@; put 'dW5jdGlvbiBUZChrZSwkZSl7dmFyIEd0LFVuLG10PSgkZXx8IiIpLm1hdGNoKGtlKTtyZXR1cm4gbnVsbD09PW10P251bGw6MD09PShVbj02MCooR3Q9KChtdFttdC5sZW5ndGgtMV18fFtdKSsiIikubWF0Y2goU3MpfHxbIi0iLDAsMF0pWzFdK3V0KEd0WzJdKSk/MDoiKyI9PT1HdFswXT9V'@; put 'bjotVW59ZnVuY3Rpb24gVWgoa2UsJGUpe3ZhciBtdCxMdDtyZXR1cm4gJGUuX2lzVVRDPyhtdD0kZS5jbG9uZSgpLEx0PShzZShrZSl8fEkoa2UpP2tlLnZhbHVlT2YoKTpjYShrZSkudmFsdWVPZigpKS1tdC52YWx1ZU9mKCksbXQuX2Quc2V0VGltZShtdC5fZC52YWx1ZU9mKCkrTHQpLHgu'@; put 'dXBkYXRlT2Zmc2V0KG10LCExKSxtdCk6Y2Eoa2UpLmxvY2FsKCl9ZnVuY3Rpb24gSmMoa2Upe3JldHVybi1NYXRoLnJvdW5kKGtlLl9kLmdldFRpbWV6b25lT2Zmc2V0KCkpfWZ1bmN0aW9uIGc0KCl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmdGhpcy5faXNVVEMmJjA9PT10aGlzLl9vZmZz'@; put 'ZXR9eC51cGRhdGVPZmZzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBKNz0vXigtfFwrKT8oPzooXGQqKVsuIF0pPyhcZCspOihcZCspKD86OihcZCspKFwuXGQqKT8pPyQvLHUzPS9eKC18XCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5d'@; put 'KilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwuXSopSCk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopUyk/KT8kLztmdW5jdGlvbiBNYShrZSwkZSl7dmFyIEd0LFVuLERyLG10PWtlLEx0PW51bGw7cmV0dXJuIGR1KGtlKT9tdD17bXM6'@; put 'a2UuX21pbGxpc2Vjb25kcyxkOmtlLl9kYXlzLE06a2UuX21vbnRoc306SyhrZSl8fCFpc05hTigra2UpPyhtdD17fSwkZT9tdFskZV09K2tlOm10Lm1pbGxpc2Vjb25kcz0ra2UpOihMdD1KNy5leGVjKGtlKSk/KEd0PSItIj09PUx0WzFdPy0xOjEsbXQ9e3k6MCxkOnV0KEx0W0ZuXSkqR3Qs'@; put 'aDp1dChMdFtuaV0pKkd0LG06dXQoTHRbbG5dKSpHdCxzOnV0KEx0W2puXSkqR3QsbXM6dXQoVDEoMWUzKkx0W3FyXSkpKkd0fSk6KEx0PXUzLmV4ZWMoa2UpKT9tdD17eTpjMChMdFsyXSxHdD0iLSI9PT1MdFsxXT8tMToxKSxNOmMwKEx0WzNdLEd0KSx3OmMwKEx0WzRdLEd0KSxkOmMwKEx0'@; put 'WzVdLEd0KSxoOmMwKEx0WzZdLEd0KSxtOmMwKEx0WzddLEd0KSxzOmMwKEx0WzhdLEd0KX06bnVsbD09bXQ/bXQ9e306Im9iamVjdCI9PXR5cGVvZiBtdCYmKCJmcm9tImluIG10fHwidG8iaW4gbXQpJiYoRHI9ZnVuY3Rpb24gZDMoa2UsJGUpe3ZhciBtdDtyZXR1cm4ga2UuaXNWYWxpZCgp'@; put 'JiYkZS5pc1ZhbGlkKCk/KCRlPVVoKCRlLGtlKSxrZS5pc0JlZm9yZSgkZSk/bXQ9SGMoa2UsJGUpOigobXQ9SGMoJGUsa2UpKS5taWxsaXNlY29uZHM9LW10Lm1pbGxpc2Vjb25kcyxtdC5tb250aHM9LW10Lm1vbnRocyksbXQpOnttaWxsaXNlY29uZHM6MCxtb250aHM6MH19KGNhKG10LmZy'@; put 'b20pLGNhKG10LnRvKSksKG10PXt9KS5tcz1Eci5taWxsaXNlY29uZHMsbXQuTT1Eci5tb250aHMpLFVuPW5ldyBBZChtdCksZHUoa2UpJiZPKGtlLCJfbG9jYWxlIikmJihVbi5fbG9jYWxlPWtlLl9sb2NhbGUpLGR1KGtlKSYmTyhrZSwiX2lzVmFsaWQiKSYmKFVuLl9pc1ZhbGlkPWtlLl9p'@; put 'c1ZhbGlkKSxVbn1mdW5jdGlvbiBjMChrZSwkZSl7dmFyIG10PWtlJiZwYXJzZUZsb2F0KGtlLnJlcGxhY2UoIiwiLCIuIikpO3JldHVybihpc05hTihtdCk/MDptdCkqJGV9ZnVuY3Rpb24gSGMoa2UsJGUpe3ZhciBtdD17fTtyZXR1cm4gbXQubW9udGhzPSRlLm1vbnRoKCkta2UubW9udGgo'@; put 'KSsxMiooJGUueWVhcigpLWtlLnllYXIoKSksa2UuY2xvbmUoKS5hZGQobXQubW9udGhzLCJNIikuaXNBZnRlcigkZSkmJi0tbXQubW9udGhzLG10Lm1pbGxpc2Vjb25kcz0rJGUtK2tlLmNsb25lKCkuYWRkKG10Lm1vbnRocywiTSIpLG10fWZ1bmN0aW9uIG00KGtlLCRlKXtyZXR1cm4gZnVu'@; put 'Y3Rpb24obXQsTHQpe3ZhciBVbjtyZXR1cm4gbnVsbCE9PUx0JiYhaXNOYU4oK0x0KSYmKEcoJGUsIm1vbWVudCgpLiIrJGUrIihwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4iKyRlKyIobnVtYmVyLCBwZXJpb2QpLiBTZWUgaHR0cDovL21vbWVu'@; put 'dGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9hZGQtaW52ZXJ0ZWQtcGFyYW0vIGZvciBtb3JlIGluZm8uIiksVW49bXQsbXQ9THQsTHQ9VW4pLFdoKHRoaXMsTWEobXQsTHQpLGtlKSx0aGlzfX1mdW5jdGlvbiBXaChrZSwkZSxtdCxMdCl7dmFyIEd0PSRlLl9taWxsaXNlY29uZHMsVW49VDEo'@; put 'JGUuX2RheXMpLERyPVQxKCRlLl9tb250aHMpO2tlLmlzVmFsaWQoKSYmKEx0PUx0Pz8hMCxEciYmUGkoa2UsSHQoa2UsIk1vbnRoIikrRHIqbXQpLFVuJiZQdChrZSwiRGF0ZSIsSHQoa2UsIkRhdGUiKStVbiptdCksR3QmJmtlLl9kLnNldFRpbWUoa2UuX2QudmFsdWVPZigpK0d0Km10KSxM'@; put 'dCYmeC51cGRhdGVPZmZzZXQoa2UsVW58fERyKSl9TWEuZm49QWQucHJvdG90eXBlLE1hLmludmFsaWQ9ZnVuY3Rpb24gQXUoKXtyZXR1cm4gTWEoTmFOKX07dmFyIFE3PW00KDEsImFkZCIpLGU5PW00KC0xLCJzdWJ0cmFjdCIpO2Z1bmN0aW9uIHY0KGtlKXtyZXR1cm4ic3RyaW5nIj09dHlw'@; put 'ZW9mIGtlfHxrZSBpbnN0YW5jZW9mIFN0cmluZ31mdW5jdGlvbiBkbChrZSl7cmV0dXJuIHNlKGtlKXx8SShrZSl8fHY0KGtlKXx8SyhrZSl8fGZ1bmN0aW9uIHQ5KGtlKXt2YXIgJGU9bGUoa2UpLG10PSExO3JldHVybiAkZSYmKG10PTA9PT1rZS5maWx0ZXIoZnVuY3Rpb24oTHQpe3JldHVy'@; put 'biFLKEx0KSYmdjQoa2UpfSkubGVuZ3RoKSwkZSYmbXR9KGtlKXx8ZnVuY3Rpb24gYW0oa2Upe3ZhciBHdCwkZT1NKGtlKSYmIVIoa2UpLG10PSExLEx0PVsieWVhcnMiLCJ5ZWFyIiwieSIsIm1vbnRocyIsIm1vbnRoIiwiTSIsImRheXMiLCJkYXkiLCJkIiwiZGF0ZXMiLCJkYXRlIiwiRCIs'@; put 'ImhvdXJzIiwiaG91ciIsImgiLCJtaW51dGVzIiwibWludXRlIiwibSIsInNlY29uZHMiLCJzZWNvbmQiLCJzIiwibWlsbGlzZWNvbmRzIiwibWlsbGlzZWNvbmQiLCJtcyJdLERyPUx0Lmxlbmd0aDtmb3IoR3Q9MDtHdDxEcjtHdCs9MSltdD1tdHx8TyhrZSxMdFtHdF0pO3JldHVybiAkZSYm'@; put 'bXR9KGtlKXx8bnVsbD09a2V9ZnVuY3Rpb24gS2Eoa2UsJGUpe2lmKGtlLmRhdGUoKTwkZS5kYXRlKCkpcmV0dXJuLUthKCRlLGtlKTt2YXIgbXQ9MTIqKCRlLnllYXIoKS1rZS55ZWFyKCkpKygkZS5tb250aCgpLWtlLm1vbnRoKCkpLEx0PWtlLmNsb25lKCkuYWRkKG10LCJtb250aHMiKTty'@; put 'ZXR1cm4tKG10KygkZS1MdDwwPygkZS1MdCkvKEx0LWtlLmNsb25lKCkuYWRkKG10LTEsIm1vbnRocyIpKTooJGUtTHQpLyhrZS5jbG9uZSgpLmFkZChtdCsxLCJtb250aHMiKS1MdCkpKXx8MH1mdW5jdGlvbiBIaShrZSl7dmFyICRlO3JldHVybiB2b2lkIDA9PT1rZT90aGlzLl9sb2NhbGUu'@; put 'X2FiYnI6KG51bGwhPSgkZT1sdShrZSkpJiYodGhpcy5fbG9jYWxlPSRlKSx0aGlzKX14LmRlZmF1bHRGb3JtYXQ9IllZWVktTU0tRERUSEg6bW06c3NaIix4LmRlZmF1bHRGb3JtYXRVdGM9IllZWVktTU0tRERUSEg6bW06c3NbWl0iO3ZhciBCaT11ZSgibW9tZW50KCkubGFuZygpIGlzIGRl'@; put 'cHJlY2F0ZWQuIEluc3RlYWQsIHVzZSBtb21lbnQoKS5sb2NhbGVEYXRhKCkgdG8gZ2V0IHRoZSBsYW5ndWFnZSBjb25maWd1cmF0aW9uLiBVc2UgbW9tZW50KCkubG9jYWxlKCkgdG8gY2hhbmdlIGxhbmd1YWdlcy4iLGZ1bmN0aW9uKGtlKXtyZXR1cm4gdm9pZCAwPT09a2U/dGhpcy5sb2Nh'@; put 'bGVEYXRhKCk6dGhpcy5sb2NhbGUoa2UpfSk7ZnVuY3Rpb24gRG8oKXtyZXR1cm4gdGhpcy5fbG9jYWxlfXZhciBYYT02ZTQsSTE9NjAqWGEsem89MzUwNjMyOCpJMTtmdW5jdGlvbiBUdShrZSwkZSl7cmV0dXJuKGtlJSRlKyRlKSUkZX1mdW5jdGlvbiBWYShrZSwkZSxtdCl7cmV0dXJuIGtl'@; put 'PDEwMCYma2U+PTA/bmV3IERhdGUoa2UrNDAwLCRlLG10KS16bzpuZXcgRGF0ZShrZSwkZSxtdCkudmFsdWVPZigpfWZ1bmN0aW9uIExkKGtlLCRlLG10KXtyZXR1cm4ga2U8MTAwJiZrZT49MD9EYXRlLlVUQyhrZSs0MDAsJGUsbXQpLXpvOkRhdGUuVVRDKGtlLCRlLG10KX1mdW5jdGlvbiBS'@; put 'ZChrZSwkZSl7cmV0dXJuICRlLmVyYXNBYmJyUmVnZXgoa2UpfWZ1bmN0aW9uIG9jKCl7dmFyIEd0LFVuLGtlPVtdLCRlPVtdLG10PVtdLEx0PVtdLERyPXRoaXMuZXJhcygpO2ZvcihHdD0wLFVuPURyLmxlbmd0aDtHdDxVbjsrK0d0KSRlLnB1c2goenQoRHJbR3RdLm5hbWUpKSxrZS5wdXNo'@; put 'KHp0KERyW0d0XS5hYmJyKSksbXQucHVzaCh6dChEcltHdF0ubmFycm93KSksTHQucHVzaCh6dChEcltHdF0ubmFtZSkpLEx0LnB1c2goenQoRHJbR3RdLmFiYnIpKSxMdC5wdXNoKHp0KERyW0d0XS5uYXJyb3cpKTt0aGlzLl9lcmFzUmVnZXg9bmV3IFJlZ0V4cCgiXigiK0x0LmpvaW4oInwi'@; put 'KSsiKSIsImkiKSx0aGlzLl9lcmFzTmFtZVJlZ2V4PW5ldyBSZWdFeHAoIl4oIiskZS5qb2luKCJ8IikrIikiLCJpIiksdGhpcy5fZXJhc0FiYnJSZWdleD1uZXcgUmVnRXhwKCJeKCIra2Uuam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX2VyYXNOYXJyb3dSZWdleD1uZXcgUmVnRXhwKCJeKCIr'@; put 'bXQuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIE9kKGtlLCRlKXtkZSgwLFtrZSxrZS5sZW5ndGhdLDAsJGUpfWZ1bmN0aW9uIHM5KGtlLCRlLG10LEx0LEd0KXt2YXIgVW47cmV0dXJuIG51bGw9PWtlP1BhKHRoaXMsTHQsR3QpLnllYXI6KCRlPihVbj1TcihrZSxMdCxHdCkpJiYoJGU9'@; put 'VW4pLGE5LmNhbGwodGhpcyxrZSwkZSxtdCxMdCxHdCkpfWZ1bmN0aW9uIGE5KGtlLCRlLG10LEx0LEd0KXt2YXIgVW49ZnMoa2UsJGUsbXQsTHQsR3QpLERyPWUwKFVuLnllYXIsMCxVbi5kYXlPZlllYXIpO3JldHVybiB0aGlzLnllYXIoRHIuZ2V0VVRDRnVsbFllYXIoKSksdGhpcy5tb250'@; put 'aChEci5nZXRVVENNb250aCgpKSx0aGlzLmRhdGUoRHIuZ2V0VVRDRGF0ZSgpKSx0aGlzfWRlKCJOIiwwLDAsImVyYUFiYnIiKSxkZSgiTk4iLDAsMCwiZXJhQWJiciIpLGRlKCJOTk4iLDAsMCwiZXJhQWJiciIpLGRlKCJOTk5OIiwwLDAsImVyYU5hbWUiKSxkZSgiTk5OTk4iLDAsMCwiZXJh'@; put 'TmFycm93IiksZGUoInkiLFsieSIsMV0sInlvIiwiZXJhWWVhciIpLGRlKCJ5IixbInl5IiwyXSwwLCJlcmFZZWFyIiksZGUoInkiLFsieXl5IiwzXSwwLCJlcmFZZWFyIiksZGUoInkiLFsieXl5eSIsNF0sMCwiZXJhWWVhciIpLHB0KCJOIixSZCkscHQoIk5OIixSZCkscHQoIk5OTiIsUmQp'@; put 'LHB0KCJOTk5OIixmdW5jdGlvbiBpYyhrZSwkZSl7cmV0dXJuICRlLmVyYXNOYW1lUmVnZXgoa2UpfSkscHQoIk5OTk5OIixmdW5jdGlvbiBUdyhrZSwkZSl7cmV0dXJuICRlLmVyYXNOYXJyb3dSZWdleChrZSl9KSx4bihbIk4iLCJOTiIsIk5OTiIsIk5OTk4iLCJOTk5OTiJdLGZ1bmN0aW9u'@; put 'KGtlLCRlLG10LEx0KXt2YXIgR3Q9bXQuX2xvY2FsZS5lcmFzUGFyc2Uoa2UsTHQsbXQuX3N0cmljdCk7R3Q/QihtdCkuZXJhPUd0OkIobXQpLmludmFsaWRFcmE9a2V9KSxwdCgieSIsX3QpLHB0KCJ5eSIsX3QpLHB0KCJ5eXkiLF90KSxwdCgieXl5eSIsX3QpLHB0KCJ5byIsZnVuY3Rpb24g'@; put 'U2Moa2UsJGUpe3JldHVybiAkZS5fZXJhWWVhck9yZGluYWxSZWdleHx8X3R9KSx4bihbInkiLCJ5eSIsInl5eSIsInl5eXkiXSxSbikseG4oWyJ5byJdLGZ1bmN0aW9uKGtlLCRlLG10LEx0KXt2YXIgR3Q7bXQuX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCYmKEd0PWtlLm1hdGNoKG10'@; put 'Ll9sb2NhbGUuX2VyYVllYXJPcmRpbmFsUmVnZXgpKSwkZVtSbl09bXQuX2xvY2FsZS5lcmFZZWFyT3JkaW5hbFBhcnNlP210Ll9sb2NhbGUuZXJhWWVhck9yZGluYWxQYXJzZShrZSxHdCk6cGFyc2VJbnQoa2UsMTApfSksZGUoMCxbImdnIiwyXSwwLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'd2Vla1llYXIoKSUxMDB9KSxkZSgwLFsiR0ciLDJdLDAsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc29XZWVrWWVhcigpJTEwMH0pLE9kKCJnZ2dnIiwid2Vla1llYXIiKSxPZCgiZ2dnZ2ciLCJ3ZWVrWWVhciIpLE9kKCJHR0dHIiwiaXNvV2Vla1llYXIiKSxPZCgiR0dHR0ciLCJpc29XZWVr'@; put 'WWVhciIpLHFlKCJ3ZWVrWWVhciIsImdnIikscWUoImlzb1dlZWtZZWFyIiwiR0ciKSxNZSgid2Vla1llYXIiLDEpLE1lKCJpc29XZWVrWWVhciIsMSkscHQoIkciLE50KSxwdCgiZyIsTnQpLHB0KCJHRyIsSG4sYm4pLHB0KCJnZyIsSG4sYm4pLHB0KCJHR0dHIix3dCxlbikscHQoImdnZ2ci'@; put 'LHd0LGVuKSxwdCgiR0dHR0ciLFh0LCRuKSxwdCgiZ2dnZ2ciLFh0LCRuKSxzbihbImdnZ2ciLCJnZ2dnZyIsIkdHR0ciLCJHR0dHRyJdLGZ1bmN0aW9uKGtlLCRlLG10LEx0KXskZVtMdC5zdWJzdHIoMCwyKV09dXQoa2UpfSksc24oWyJnZyIsIkdHIl0sZnVuY3Rpb24oa2UsJGUsbXQsTHQp'@; put 'eyRlW0x0XT14LnBhcnNlVHdvRGlnaXRZZWFyKGtlKX0pLGRlKCJRIiwwLCJRbyIsInF1YXJ0ZXIiKSxxZSgicXVhcnRlciIsIlEiKSxNZSgicXVhcnRlciIsNykscHQoIlEiLFV0KSx4bigiUSIsZnVuY3Rpb24oa2UsJGUpeyRlWyR0XT0zKih1dChrZSktMSl9KSxkZSgiRCIsWyJERCIsMl0s'@; put 'IkRvIiwiZGF0ZSIpLHFlKCJkYXRlIiwiRCIpLE1lKCJkYXRlIiw5KSxwdCgiRCIsSG4pLHB0KCJERCIsSG4sYm4pLHB0KCJEbyIsZnVuY3Rpb24oa2UsJGUpe3JldHVybiBrZT8kZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZXx8JGUuX29yZGluYWxQYXJzZTokZS5fZGF5T2ZNb250aE9yZGlu'@; put 'YWxQYXJzZUxlbmllbnR9KSx4bihbIkQiLCJERCJdLEZuKSx4bigiRG8iLGZ1bmN0aW9uKGtlLCRlKXskZVtGbl09dXQoa2UubWF0Y2goSG4pWzBdKX0pO3ZhciBobT1NdCgiRGF0ZSIsITApO2RlKCJEREQiLFsiRERERCIsM10sIkRERG8iLCJkYXlPZlllYXIiKSxxZSgiZGF5T2ZZZWFyIiwi'@; put 'REREIiksTWUoImRheU9mWWVhciIsNCkscHQoIkRERCIsaG4pLHB0KCJEREREIixXbikseG4oWyJEREQiLCJEREREIl0sZnVuY3Rpb24oa2UsJGUsbXQpe210Ll9kYXlPZlllYXI9dXQoa2UpfSksZGUoIm0iLFsibW0iLDJdLDAsIm1pbnV0ZSIpLHFlKCJtaW51dGUiLCJtIiksTWUoIm1pbnV0'@; put 'ZSIsMTQpLHB0KCJtIixIbikscHQoIm1tIixIbixibikseG4oWyJtIiwibW0iXSxsbik7dmFyIEU0PU10KCJNaW51dGVzIiwhMSk7ZGUoInMiLFsic3MiLDJdLDAsInNlY29uZCIpLHFlKCJzZWNvbmQiLCJzIiksTWUoInNlY29uZCIsMTUpLHB0KCJzIixIbikscHQoInNzIixIbixibikseG4o'@; put 'WyJzIiwic3MiXSxqbik7dmFyIEYxLGZtLGw5PU10KCJTZWNvbmRzIiwhMSk7Zm9yKGRlKCJTIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm5+fih0aGlzLm1pbGxpc2Vjb25kKCkvMTAwKX0pLGRlKDAsWyJTUyIsMl0sMCxmdW5jdGlvbigpe3JldHVybn5+KHRoaXMubWlsbGlzZWNvbmQoKS8xMCl9'@; put 'KSxkZSgwLFsiU1NTIiwzXSwwLCJtaWxsaXNlY29uZCIpLGRlKDAsWyJTU1NTIiw0XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDEwKnRoaXMubWlsbGlzZWNvbmQoKX0pLGRlKDAsWyJTU1NTUyIsNV0sMCxmdW5jdGlvbigpe3JldHVybiAxMDAqdGhpcy5taWxsaXNlY29uZCgpfSksZGUoMCxbIlNT'@; put 'U1NTUyIsNl0sMCxmdW5jdGlvbigpe3JldHVybiAxZTMqdGhpcy5taWxsaXNlY29uZCgpfSksZGUoMCxbIlNTU1NTU1MiLDddLDAsZnVuY3Rpb24oKXtyZXR1cm4gMWU0KnRoaXMubWlsbGlzZWNvbmQoKX0pLGRlKDAsWyJTU1NTU1NTUyIsOF0sMCxmdW5jdGlvbigpe3JldHVybiAxZTUqdGhp'@; put 'cy5taWxsaXNlY29uZCgpfSksZGUoMCxbIlNTU1NTU1NTUyIsOV0sMCxmdW5jdGlvbigpe3JldHVybiAxZTYqdGhpcy5taWxsaXNlY29uZCgpfSkscWUoIm1pbGxpc2Vjb25kIiwibXMiKSxNZSgibWlsbGlzZWNvbmQiLDE2KSxwdCgiUyIsaG4sVXQpLHB0KCJTUyIsaG4sYm4pLHB0KCJTU1Mi'@; put 'LGhuLFduKSxGMT0iU1NTUyI7RjEubGVuZ3RoPD05O0YxKz0iUyIpcHQoRjEsX3QpO2Z1bmN0aW9uIEl3KGtlLCRlKXskZVtxcl09dXQoMWUzKigiMC4iK2tlKSl9Zm9yKEYxPSJTIjtGMS5sZW5ndGg8PTk7RjErPSJTIil4bihGMSxJdyk7Zm09TXQoIk1pbGxpc2Vjb25kcyIsITEpLGRlKCJ6'@; put 'IiwwLDAsInpvbmVBYmJyIiksZGUoInp6IiwwLDAsInpvbmVOYW1lIik7dmFyIHlpPW9lLnByb3RvdHlwZTtmdW5jdGlvbiBrNChrZSl7cmV0dXJuIGtlfXlpLmFkZD1RNyx5aS5jYWxlbmRhcj1mdW5jdGlvbiBiNChrZSwkZSl7MT09PWFyZ3VtZW50cy5sZW5ndGgmJihhcmd1bWVudHNbMF0/'@; put 'ZGwoYXJndW1lbnRzWzBdKT8oa2U9YXJndW1lbnRzWzBdLCRlPXZvaWQgMCk6ZnVuY3Rpb24gXzQoa2Upe3ZhciBHdCwkZT1NKGtlKSYmIVIoa2UpLG10PSExLEx0PVsic2FtZURheSIsIm5leHREYXkiLCJsYXN0RGF5IiwibmV4dFdlZWsiLCJsYXN0V2VlayIsInNhbWVFbHNlIl07Zm9yKEd0'@; put 'PTA7R3Q8THQubGVuZ3RoO0d0Kz0xKW10PW10fHxPKGtlLEx0W0d0XSk7cmV0dXJuICRlJiZtdH0oYXJndW1lbnRzWzBdKSYmKCRlPWFyZ3VtZW50c1swXSxrZT12b2lkIDApOihrZT12b2lkIDAsJGU9dm9pZCAwKSk7dmFyIG10PWtlfHxjYSgpLEx0PVVoKG10LHRoaXMpLnN0YXJ0T2YoImRh'@; put 'eSIpLEd0PXguY2FsZW5kYXJGb3JtYXQodGhpcyxMdCl8fCJzYW1lRWxzZSIsVW49JGUmJihiKCRlW0d0XSk/JGVbR3RdLmNhbGwodGhpcyxtdCk6JGVbR3RdKTtyZXR1cm4gdGhpcy5mb3JtYXQoVW58fHRoaXMubG9jYWxlRGF0YSgpLmNhbGVuZGFyKEd0LHRoaXMsY2EobXQpKSl9LHlpLmNs'@; put 'b25lPWZ1bmN0aW9uIHk0KCl7cmV0dXJuIG5ldyBvZSh0aGlzKX0seWkuZGlmZj1mdW5jdGlvbiBRbyhrZSwkZSxtdCl7dmFyIEx0LEd0LFVuO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gTmFOO2lmKCEoTHQ9VWgoa2UsdGhpcykpLmlzVmFsaWQoKSlyZXR1cm4gTmFOO3N3aXRjaChHdD02'@; put 'ZTQqKEx0LnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpLCRlPVhlKCRlKSl7Y2FzZSJ5ZWFyIjpVbj1LYSh0aGlzLEx0KS8xMjticmVhaztjYXNlIm1vbnRoIjpVbj1LYSh0aGlzLEx0KTticmVhaztjYXNlInF1YXJ0ZXIiOlVuPUthKHRoaXMsTHQpLzM7YnJlYWs7Y2FzZSJzZWNvbmQi'@; put 'OlVuPSh0aGlzLUx0KS8xZTM7YnJlYWs7Y2FzZSJtaW51dGUiOlVuPSh0aGlzLUx0KS82ZTQ7YnJlYWs7Y2FzZSJob3VyIjpVbj0odGhpcy1MdCkvMzZlNTticmVhaztjYXNlImRheSI6VW49KHRoaXMtTHQtR3QpLzg2NGU1O2JyZWFrO2Nhc2Uid2VlayI6VW49KHRoaXMtTHQtR3QpLzYwNDhl'@; put 'NTticmVhaztkZWZhdWx0OlVuPXRoaXMtTHR9cmV0dXJuIG10P1VuOm90KFVuKX0seWkuZW5kT2Y9ZnVuY3Rpb24gVm8oa2Upe3ZhciAkZSxtdDtpZih2b2lkIDA9PT0oa2U9WGUoa2UpKXx8Im1pbGxpc2Vjb25kIj09PWtlfHwhdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIHRoaXM7c3dpdGNoKG10'@; put 'PXRoaXMuX2lzVVRDP0xkOlZhLGtlKXtjYXNlInllYXIiOiRlPW10KHRoaXMueWVhcigpKzEsMCwxKS0xO2JyZWFrO2Nhc2UicXVhcnRlciI6JGU9bXQodGhpcy55ZWFyKCksdGhpcy5tb250aCgpLXRoaXMubW9udGgoKSUzKzMsMSktMTticmVhaztjYXNlIm1vbnRoIjokZT1tdCh0aGlzLnll'@; put 'YXIoKSx0aGlzLm1vbnRoKCkrMSwxKS0xO2JyZWFrO2Nhc2Uid2VlayI6JGU9bXQodGhpcy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpLXRoaXMud2Vla2RheSgpKzcpLTE7YnJlYWs7Y2FzZSJpc29XZWVrIjokZT1tdCh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRl'@; put 'KCktKHRoaXMuaXNvV2Vla2RheSgpLTEpKzcpLTE7YnJlYWs7Y2FzZSJkYXkiOmNhc2UiZGF0ZSI6JGU9bXQodGhpcy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpKzEpLTE7YnJlYWs7Y2FzZSJob3VyIjokZT10aGlzLl9kLnZhbHVlT2YoKSwkZSs9STEtVHUoJGUrKHRoaXMuX2lz'@; put 'VVRDPzA6dGhpcy51dGNPZmZzZXQoKSpYYSksSTEpLTE7YnJlYWs7Y2FzZSJtaW51dGUiOiRlPXRoaXMuX2QudmFsdWVPZigpLCRlKz1YYS1UdSgkZSxYYSktMTticmVhaztjYXNlInNlY29uZCI6JGU9dGhpcy5fZC52YWx1ZU9mKCksJGUrPTFlMy1UdSgkZSwxZTMpLTF9cmV0dXJuIHRoaXMu'@; put 'X2Quc2V0VGltZSgkZSkseC51cGRhdGVPZmZzZXQodGhpcywhMCksdGhpc30seWkuZm9ybWF0PWZ1bmN0aW9uIEM0KGtlKXtrZXx8KGtlPXRoaXMuaXNVdGMoKT94LmRlZmF1bHRGb3JtYXRVdGM6eC5kZWZhdWx0Rm9ybWF0KTt2YXIgJGU9TGUodGhpcyxrZSk7cmV0dXJuIHRoaXMubG9jYWxl'@; put 'RGF0YSgpLnBvc3Rmb3JtYXQoJGUpfSx5aS5mcm9tPWZ1bmN0aW9uIGNtKGtlLCRlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCkmJihzZShrZSkmJmtlLmlzVmFsaWQoKXx8Y2Eoa2UpLmlzVmFsaWQoKSk/TWEoe3RvOnRoaXMsZnJvbTprZX0pLmxvY2FsZSh0aGlzLmxvY2FsZSgpKS5odW1hbml6'@; put 'ZSghJGUpOnRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCl9LHlpLmZyb21Ob3c9ZnVuY3Rpb24gZjMoa2Upe3JldHVybiB0aGlzLmZyb20oY2EoKSxrZSl9LHlpLnRvPWZ1bmN0aW9uIG45KGtlLCRlKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCkmJihzZShrZSkmJmtlLmlzVmFsaWQoKXx8'@; put 'Y2Eoa2UpLmlzVmFsaWQoKSk/TWEoe2Zyb206dGhpcyx0bzprZX0pLmxvY2FsZSh0aGlzLmxvY2FsZSgpKS5odW1hbml6ZSghJGUpOnRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCl9LHlpLnRvTm93PWZ1bmN0aW9uIHI5KGtlKXtyZXR1cm4gdGhpcy50byhjYSgpLGtlKX0seWkuZ2V0'@; put 'PWZ1bmN0aW9uIG9uKGtlKXtyZXR1cm4gYih0aGlzW2tlPVhlKGtlKV0pP3RoaXNba2VdKCk6dGhpc30seWkuaW52YWxpZEF0PWZ1bmN0aW9uIFIxKCl7cmV0dXJuIEIodGhpcykub3ZlcmZsb3d9LHlpLmlzQWZ0ZXI9ZnVuY3Rpb24gbG0oa2UsJGUpe3ZhciBtdD1zZShrZSk/a2U6Y2Eoa2Up'@; put 'O3JldHVybiEoIXRoaXMuaXNWYWxpZCgpfHwhbXQuaXNWYWxpZCgpKSYmKCJtaWxsaXNlY29uZCI9PT0oJGU9WGUoJGUpfHwibWlsbGlzZWNvbmQiKT90aGlzLnZhbHVlT2YoKT5tdC52YWx1ZU9mKCk6bXQudmFsdWVPZigpPHRoaXMuY2xvbmUoKS5zdGFydE9mKCRlKS52YWx1ZU9mKCkpfSx5'@; put 'aS5pc0JlZm9yZT1mdW5jdGlvbiB2aShrZSwkZSl7dmFyIG10PXNlKGtlKT9rZTpjYShrZSk7cmV0dXJuISghdGhpcy5pc1ZhbGlkKCl8fCFtdC5pc1ZhbGlkKCkpJiYoIm1pbGxpc2Vjb25kIj09PSgkZT1YZSgkZSl8fCJtaWxsaXNlY29uZCIpP3RoaXMudmFsdWVPZigpPG10LnZhbHVlT2Yo'@; put 'KTp0aGlzLmNsb25lKCkuZW5kT2YoJGUpLnZhbHVlT2YoKTxtdC52YWx1ZU9mKCkpfSx5aS5pc0JldHdlZW49ZnVuY3Rpb24gdzQoa2UsJGUsbXQsTHQpe3ZhciBHdD1zZShrZSk/a2U6Y2Eoa2UpLFVuPXNlKCRlKT8kZTpjYSgkZSk7cmV0dXJuISEodGhpcy5pc1ZhbGlkKCkmJkd0LmlzVmFs'@; put 'aWQoKSYmVW4uaXNWYWxpZCgpKSYmKCIoIj09PShMdD1MdHx8IigpIilbMF0/dGhpcy5pc0FmdGVyKEd0LG10KTohdGhpcy5pc0JlZm9yZShHdCxtdCkpJiYoIikiPT09THRbMV0/dGhpcy5pc0JlZm9yZShVbixtdCk6IXRoaXMuaXNBZnRlcihVbixtdCkpfSx5aS5pc1NhbWU9ZnVuY3Rpb24g'@; put 'aDMoa2UsJGUpe3ZhciBMdCxtdD1zZShrZSk/a2U6Y2Eoa2UpO3JldHVybiEoIXRoaXMuaXNWYWxpZCgpfHwhbXQuaXNWYWxpZCgpKSYmKCJtaWxsaXNlY29uZCI9PT0oJGU9WGUoJGUpfHwibWlsbGlzZWNvbmQiKT90aGlzLnZhbHVlT2YoKT09PW10LnZhbHVlT2YoKTooTHQ9bXQudmFsdWVP'@; put 'ZigpLHRoaXMuY2xvbmUoKS5zdGFydE9mKCRlKS52YWx1ZU9mKCk8PUx0JiZMdDw9dGhpcy5jbG9uZSgpLmVuZE9mKCRlKS52YWx1ZU9mKCkpKX0seWkuaXNTYW1lT3JBZnRlcj1mdW5jdGlvbiBDcihrZSwkZSl7cmV0dXJuIHRoaXMuaXNTYW1lKGtlLCRlKXx8dGhpcy5pc0FmdGVyKGtlLCRl'@; put 'KX0seWkuaXNTYW1lT3JCZWZvcmU9ZnVuY3Rpb24gTmEoa2UsJGUpe3JldHVybiB0aGlzLmlzU2FtZShrZSwkZSl8fHRoaXMuaXNCZWZvcmUoa2UsJGUpfSx5aS5pc1ZhbGlkPWZ1bmN0aW9uIGh1KCl7cmV0dXJuIFgodGhpcyl9LHlpLmxhbmc9QmkseWkubG9jYWxlPUhpLHlpLmxvY2FsZURh'@; put 'dGE9RG8seWkubWF4PVg3LHlpLm1pbj1BMSx5aS5wYXJzaW5nRmxhZ3M9ZnVuY3Rpb24gJGgoKXtyZXR1cm4gRSh7fSxCKHRoaXMpKX0seWkuc2V0PWZ1bmN0aW9uIENuKGtlLCRlKXtpZigib2JqZWN0Ij09dHlwZW9mIGtlKXt2YXIgTHQsbXQ9ZnVuY3Rpb24gRGUoa2Upe3ZhciBtdCwkZT1b'@; put 'XTtmb3IobXQgaW4ga2UpTyhrZSxtdCkmJiRlLnB1c2goe3VuaXQ6bXQscHJpb3JpdHk6aHRbbXRdfSk7cmV0dXJuICRlLnNvcnQoZnVuY3Rpb24oTHQsR3Qpe3JldHVybiBMdC5wcmlvcml0eS1HdC5wcmlvcml0eX0pLCRlfShrZT1VZShrZSkpLEd0PW10Lmxlbmd0aDtmb3IoTHQ9MDtMdDxH'@; put 'dDtMdCsrKXRoaXNbbXRbTHRdLnVuaXRdKGtlW210W0x0XS51bml0XSl9ZWxzZSBpZihiKHRoaXNba2U9WGUoa2UpXSkpcmV0dXJuIHRoaXNba2VdKCRlKTtyZXR1cm4gdGhpc30seWkuc3RhcnRPZj1mdW5jdGlvbiBMMShrZSl7dmFyICRlLG10O2lmKHZvaWQgMD09PShrZT1YZShrZSkpfHwi'@; put 'bWlsbGlzZWNvbmQiPT09a2V8fCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gdGhpcztzd2l0Y2gobXQ9dGhpcy5faXNVVEM/TGQ6VmEsa2Upe2Nhc2UieWVhciI6JGU9bXQodGhpcy55ZWFyKCksMCwxKTticmVhaztjYXNlInF1YXJ0ZXIiOiRlPW10KHRoaXMueWVhcigpLHRoaXMubW9udGgoKS10'@; put 'aGlzLm1vbnRoKCklMywxKTticmVhaztjYXNlIm1vbnRoIjokZT1tdCh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksMSk7YnJlYWs7Y2FzZSJ3ZWVrIjokZT1tdCh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCktdGhpcy53ZWVrZGF5KCkpO2JyZWFrO2Nhc2UiaXNvV2VlayI6'@; put 'JGU9bXQodGhpcy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpLSh0aGlzLmlzb1dlZWtkYXkoKS0xKSk7YnJlYWs7Y2FzZSJkYXkiOmNhc2UiZGF0ZSI6JGU9bXQodGhpcy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpKTticmVhaztjYXNlImhvdXIiOiRlPXRoaXMuX2Qu'@; put 'dmFsdWVPZigpLCRlLT1UdSgkZSsodGhpcy5faXNVVEM/MDp0aGlzLnV0Y09mZnNldCgpKlhhKSxJMSk7YnJlYWs7Y2FzZSJtaW51dGUiOiRlPXRoaXMuX2QudmFsdWVPZigpLCRlLT1UdSgkZSxYYSk7YnJlYWs7Y2FzZSJzZWNvbmQiOiRlPXRoaXMuX2QudmFsdWVPZigpLCRlLT1UdSgkZSwx'@; put 'ZTMpfXJldHVybiB0aGlzLl9kLnNldFRpbWUoJGUpLHgudXBkYXRlT2Zmc2V0KHRoaXMsITApLHRoaXN9LHlpLnN1YnRyYWN0PWU5LHlpLnRvQXJyYXk9ZnVuY3Rpb24gSmEoKXt2YXIga2U9dGhpcztyZXR1cm5ba2UueWVhcigpLGtlLm1vbnRoKCksa2UuZGF0ZSgpLGtlLmhvdXIoKSxrZS5t'@; put 'aW51dGUoKSxrZS5zZWNvbmQoKSxrZS5taWxsaXNlY29uZCgpXX0seWkudG9PYmplY3Q9ZnVuY3Rpb24gTzIoKXt2YXIga2U9dGhpcztyZXR1cm57eWVhcnM6a2UueWVhcigpLG1vbnRoczprZS5tb250aCgpLGRhdGU6a2UuZGF0ZSgpLGhvdXJzOmtlLmhvdXJzKCksbWludXRlczprZS5taW51'@; put 'dGVzKCksc2Vjb25kczprZS5zZWNvbmRzKCksbWlsbGlzZWNvbmRzOmtlLm1pbGxpc2Vjb25kcygpfX0seWkudG9EYXRlPWZ1bmN0aW9uIFBsKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKX0seWkudG9JU09TdHJpbmc9ZnVuY3Rpb24gSWQoa2Upe2lmKCF0aGlzLmlzVmFsaWQo'@; put 'KSlyZXR1cm4gbnVsbDt2YXIgJGU9ITAhPT1rZSxtdD0kZT90aGlzLmNsb25lKCkudXRjKCk6dGhpcztyZXR1cm4gbXQueWVhcigpPDB8fG10LnllYXIoKT45OTk5P0xlKG10LCRlPyJZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0iOiJZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1Na'@; put 'Iik6YihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyk/JGU/dGhpcy50b0RhdGUoKS50b0lTT1N0cmluZygpOm5ldyBEYXRlKHRoaXMudmFsdWVPZigpKzYwKnRoaXMudXRjT2Zmc2V0KCkqMWUzKS50b0lTT1N0cmluZygpLnJlcGxhY2UoIloiLExlKG10LCJaIikpOkxlKG10LCRlPyJZWVlZ'@; put 'LU1NLUREW1RdSEg6bW06c3MuU1NTW1pdIjoiWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1oiKX0seWkuaW5zcGVjdD1mdW5jdGlvbiBOYygpe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4ibW9tZW50LmludmFsaWQoLyogIit0aGlzLl9pKyIgKi8pIjt2YXIgbXQsTHQsa2U9Im1vbWVudCIs'@; put 'JGU9IiI7cmV0dXJuIHRoaXMuaXNMb2NhbCgpfHwoa2U9MD09PXRoaXMudXRjT2Zmc2V0KCk/Im1vbWVudC51dGMiOiJtb21lbnQucGFyc2Vab25lIiwkZT0iWiIpLG10PSJbIitrZSsnKCJdJyxMdD0wPD10aGlzLnllYXIoKSYmdGhpcy55ZWFyKCk8PTk5OTk/IllZWVkiOiJZWVlZWVkiLHRo'@; put 'aXMuZm9ybWF0KG10K0x0KyItTU0tRERbVF1ISDptbTpzcy5TU1MiKyRlKydbIildJyl9LHR5cGVvZiBTeW1ib2w8InUiJiZudWxsIT1TeW1ib2wuZm9yJiYoeWlbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKV09ZnVuY3Rpb24oKXtyZXR1cm4iTW9tZW50PCIrdGhp'@; put 'cy5mb3JtYXQoKSsiPiJ9KSx5aS50b0pTT049ZnVuY3Rpb24gUDIoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCk/dGhpcy50b0lTT1N0cmluZygpOm51bGx9LHlpLnRvU3RyaW5nPWZ1bmN0aW9uIE9sKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5sb2NhbGUoImVuIikuZm9ybWF0KCJkZGQgTU1NIERE'@; put 'IFlZWVkgSEg6bW06c3MgW0dNVF1aWiIpfSx5aS51bml4PWZ1bmN0aW9uIFM0KCl7cmV0dXJuIE1hdGguZmxvb3IodGhpcy52YWx1ZU9mKCkvMWUzKX0seWkudmFsdWVPZj1mdW5jdGlvbiBHaCgpe3JldHVybiB0aGlzLl9kLnZhbHVlT2YoKS02ZTQqKHRoaXMuX29mZnNldHx8MCl9LHlpLmNy'@; put 'ZWF0aW9uRGF0YT1mdW5jdGlvbiBPMSgpe3JldHVybntpbnB1dDp0aGlzLl9pLGZvcm1hdDp0aGlzLl9mLGxvY2FsZTp0aGlzLl9sb2NhbGUsaXNVVEM6dGhpcy5faXNVVEMsc3RyaWN0OnRoaXMuX3N0cmljdH19LHlpLmVyYU5hbWU9ZnVuY3Rpb24gcHMoKXt2YXIga2UsJGUsbXQsTHQ9dGhp'@; put 'cy5sb2NhbGVEYXRhKCkuZXJhcygpO2ZvcihrZT0wLCRlPUx0Lmxlbmd0aDtrZTwkZTsrK2tlKWlmKG10PXRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksTHRba2VdLnNpbmNlPD1tdCYmbXQ8PUx0W2tlXS51bnRpbHx8THRba2VdLnVudGlsPD1tdCYmbXQ8PUx0W2tlXS5z'@; put 'aW5jZSlyZXR1cm4gTHRba2VdLm5hbWU7cmV0dXJuIiJ9LHlpLmVyYU5hcnJvdz1mdW5jdGlvbiBBdygpe3ZhciBrZSwkZSxtdCxMdD10aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7Zm9yKGtlPTAsJGU9THQubGVuZ3RoO2tlPCRlOysra2UpaWYobXQ9dGhpcy5jbG9uZSgpLnN0YXJ0T2YoImRh'@; put 'eSIpLnZhbHVlT2YoKSxMdFtrZV0uc2luY2U8PW10JiZtdDw9THRba2VdLnVudGlsfHxMdFtrZV0udW50aWw8PW10JiZtdDw9THRba2VdLnNpbmNlKXJldHVybiBMdFtrZV0ubmFycm93O3JldHVybiIifSx5aS5lcmFBYmJyPWZ1bmN0aW9uIE00KCl7dmFyIGtlLCRlLG10LEx0PXRoaXMubG9j'@; put 'YWxlRGF0YSgpLmVyYXMoKTtmb3Ioa2U9MCwkZT1MdC5sZW5ndGg7a2U8JGU7KytrZSlpZihtdD10aGlzLmNsb25lKCkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpLEx0W2tlXS5zaW5jZTw9bXQmJm10PD1MdFtrZV0udW50aWx8fEx0W2tlXS51bnRpbDw9bXQmJm10PD1MdFtrZV0uc2luY2Up'@; put 'cmV0dXJuIEx0W2tlXS5hYmJyO3JldHVybiIifSx5aS5lcmFZZWFyPWZ1bmN0aW9uIHVtKCl7dmFyIGtlLCRlLG10LEx0LEd0PXRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtmb3Ioa2U9MCwkZT1HdC5sZW5ndGg7a2U8JGU7KytrZSlpZihtdD1HdFtrZV0uc2luY2U8PUd0W2tlXS51bnRpbD8x'@; put 'Oi0xLEx0PXRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksR3Rba2VdLnNpbmNlPD1MdCYmTHQ8PUd0W2tlXS51bnRpbHx8R3Rba2VdLnVudGlsPD1MdCYmTHQ8PUd0W2tlXS5zaW5jZSlyZXR1cm4odGhpcy55ZWFyKCkteChHdFtrZV0uc2luY2UpLnllYXIoKSkqbXQrR3Rb'@; put 'a2VdLm9mZnNldDtyZXR1cm4gdGhpcy55ZWFyKCl9LHlpLnllYXI9TjAseWkuaXNMZWFwWWVhcj1mdW5jdGlvbiBzMygpe3JldHVybiB6ZSh0aGlzLnllYXIoKSl9LHlpLndlZWtZZWFyPWZ1bmN0aW9uIFAxKGtlKXtyZXR1cm4gczkuY2FsbCh0aGlzLGtlLHRoaXMud2VlaygpLHRoaXMud2Vl'@; put 'a2RheSgpLHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdyx0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3kpfSx5aS5pc29XZWVrWWVhcj1mdW5jdGlvbiBxaChrZSl7cmV0dXJuIHM5LmNhbGwodGhpcyxrZSx0aGlzLmlzb1dlZWsoKSx0aGlzLmlzb1dlZWtkYXkoKSwxLDQpfSx5aS5xdWFy'@; put 'dGVyPXlpLnF1YXJ0ZXJzPWZ1bmN0aW9uIGRtKGtlKXtyZXR1cm4gbnVsbD09a2U/TWF0aC5jZWlsKCh0aGlzLm1vbnRoKCkrMSkvMyk6dGhpcy5tb250aCgzKihrZS0xKSt0aGlzLm1vbnRoKCklMyl9LHlpLm1vbnRoPUxvLHlpLmRheXNJbk1vbnRoPWZ1bmN0aW9uIGhzKCl7cmV0dXJuIG5v'@; put 'KHRoaXMueWVhcigpLHRoaXMubW9udGgoKSl9LHlpLndlZWs9eWkud2Vla3M9ZnVuY3Rpb24gaXMoa2Upe3ZhciAkZT10aGlzLmxvY2FsZURhdGEoKS53ZWVrKHRoaXMpO3JldHVybiBudWxsPT1rZT8kZTp0aGlzLmFkZCg3KihrZS0kZSksImQiKX0seWkuaXNvV2Vlaz15aS5pc29XZWVrcz1m'@; put 'dW5jdGlvbiBXaShrZSl7dmFyICRlPVBhKHRoaXMsMSw0KS53ZWVrO3JldHVybiBudWxsPT1rZT8kZTp0aGlzLmFkZCg3KihrZS0kZSksImQiKX0seWkud2Vla3NJblllYXI9ZnVuY3Rpb24gaTkoKXt2YXIga2U9dGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7cmV0dXJuIFNyKHRoaXMueWVhcigp'@; put 'LGtlLmRvdyxrZS5kb3kpfSx5aS53ZWVrc0luV2Vla1llYXI9ZnVuY3Rpb24gbzkoKXt2YXIga2U9dGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7cmV0dXJuIFNyKHRoaXMud2Vla1llYXIoKSxrZS5kb3csa2UuZG95KX0seWkuaXNvV2Vla3NJblllYXI9ZnVuY3Rpb24gUWMoKXtyZXR1cm4gU3Io'@; put 'dGhpcy55ZWFyKCksMSw0KX0seWkuaXNvV2Vla3NJbklTT1dlZWtZZWFyPWZ1bmN0aW9uIHg0KCl7cmV0dXJuIFNyKHRoaXMuaXNvV2Vla1llYXIoKSwxLDQpfSx5aS5kYXRlPWhtLHlpLmRheT15aS5kYXlzPWZ1bmN0aW9uIEQyKGtlKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGwh'@; put 'PWtlP3RoaXM6TmFOO3ZhciAkZT10aGlzLl9pc1VUQz90aGlzLl9kLmdldFVUQ0RheSgpOnRoaXMuX2QuZ2V0RGF5KCk7cmV0dXJuIG51bGwhPWtlPyhrZT1mdW5jdGlvbiAkYShrZSwkZSl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBrZT9rZTppc05hTihrZSk/Im51bWJlciI9PXR5cGVvZihr'@; put 'ZT0kZS53ZWVrZGF5c1BhcnNlKGtlKSk/a2U6bnVsbDpwYXJzZUludChrZSwxMCl9KGtlLHRoaXMubG9jYWxlRGF0YSgpKSx0aGlzLmFkZChrZS0kZSwiZCIpKTokZX0seWkud2Vla2RheT1mdW5jdGlvbiBsMyhrZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxsIT1rZT90aGlzOk5h'@; put 'Tjt2YXIgJGU9KHRoaXMuZGF5KCkrNy10aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3cpJTc7cmV0dXJuIG51bGw9PWtlPyRlOnRoaXMuYWRkKGtlLSRlLCJkIil9LHlpLmlzb1dlZWtkYXk9ZnVuY3Rpb24gQXIoa2Upe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbnVsbCE9a2U/dGhpczpO'@; put 'YU47aWYobnVsbCE9a2Upe3ZhciAkZT1mdW5jdGlvbiB0MChrZSwkZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBrZT8kZS53ZWVrZGF5c1BhcnNlKGtlKSU3fHw3OmlzTmFOKGtlKT9udWxsOmtlfShrZSx0aGlzLmxvY2FsZURhdGEoKSk7cmV0dXJuIHRoaXMuZGF5KHRoaXMuZGF5KCklNz8k'@; put 'ZTokZS03KX1yZXR1cm4gdGhpcy5kYXkoKXx8N30seWkuZGF5T2ZZZWFyPWZ1bmN0aW9uIER3KGtlKXt2YXIgJGU9TWF0aC5yb3VuZCgodGhpcy5jbG9uZSgpLnN0YXJ0T2YoImRheSIpLXRoaXMuY2xvbmUoKS5zdGFydE9mKCJ5ZWFyIikpLzg2NGU1KSsxO3JldHVybiBudWxsPT1rZT8kZTp0'@; put 'aGlzLmFkZChrZS0kZSwiZCIpfSx5aS5ob3VyPXlpLmhvdXJzPW9zLHlpLm1pbnV0ZT15aS5taW51dGVzPUU0LHlpLnNlY29uZD15aS5zZWNvbmRzPWw5LHlpLm1pbGxpc2Vjb25kPXlpLm1pbGxpc2Vjb25kcz1mbSx5aS51dGNPZmZzZXQ9ZnVuY3Rpb24gRDEoa2UsJGUsbXQpe3ZhciBHdCxM'@; put 'dD10aGlzLl9vZmZzZXR8fDA7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxsIT1rZT90aGlzOk5hTjtpZihudWxsIT1rZSl7aWYoInN0cmluZyI9PXR5cGVvZiBrZSl7aWYobnVsbD09PShrZT1UZChydCxrZSkpKXJldHVybiB0aGlzfWVsc2UgTWF0aC5hYnMoa2UpPDE2JiYhbXQmJihr'@; put 'ZSo9NjApO3JldHVybiF0aGlzLl9pc1VUQyYmJGUmJihHdD1KYyh0aGlzKSksdGhpcy5fb2Zmc2V0PWtlLHRoaXMuX2lzVVRDPSEwLG51bGwhPUd0JiZ0aGlzLmFkZChHdCwibSIpLEx0IT09a2UmJighJGV8fHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3M/V2godGhpcyxNYShrZS1MdCwibSIpLDEs'@; put 'ITEpOnRoaXMuX2NoYW5nZUluUHJvZ3Jlc3N8fCh0aGlzLl9jaGFuZ2VJblByb2dyZXNzPSEwLHgudXBkYXRlT2Zmc2V0KHRoaXMsITApLHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3M9bnVsbCkpLHRoaXN9cmV0dXJuIHRoaXMuX2lzVVRDP0x0OkpjKHRoaXMpfSx5aS51dGM9ZnVuY3Rpb24gWmgo'@; put 'a2Upe3JldHVybiB0aGlzLnV0Y09mZnNldCgwLGtlKX0seWkubG9jYWw9ZnVuY3Rpb24gbWEoa2Upe3JldHVybiB0aGlzLl9pc1VUQyYmKHRoaXMudXRjT2Zmc2V0KDAsa2UpLHRoaXMuX2lzVVRDPSExLGtlJiZ0aGlzLnN1YnRyYWN0KEpjKHRoaXMpLCJtIikpLHRoaXN9LHlpLnBhcnNlWm9u'@; put 'ZT1mdW5jdGlvbiBGYygpe2lmKG51bGwhPXRoaXMuX3R6bSl0aGlzLnV0Y09mZnNldCh0aGlzLl90em0sITEsITApO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB0aGlzLl9pKXt2YXIga2U9VGQobW4sdGhpcy5faSk7bnVsbCE9a2U/dGhpcy51dGNPZmZzZXQoa2UpOnRoaXMudXRjT2Zmc2V0'@; put 'KDAsITApfXJldHVybiB0aGlzfSx5aS5oYXNBbGlnbmVkSG91ck9mZnNldD1mdW5jdGlvbiBEZChrZSl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmKGtlPWtlP2NhKGtlKS51dGNPZmZzZXQoKTowLCh0aGlzLnV0Y09mZnNldCgpLWtlKSU2MD09MCl9LHlpLmlzRFNUPWZ1bmN0aW9uIFIyKCl7'@; put 'cmV0dXJuIHRoaXMudXRjT2Zmc2V0KCk+dGhpcy5jbG9uZSgpLm1vbnRoKDApLnV0Y09mZnNldCgpfHx0aGlzLnV0Y09mZnNldCgpPnRoaXMuY2xvbmUoKS5tb250aCg1KS51dGNPZmZzZXQoKX0seWkuaXNMb2NhbD1mdW5jdGlvbiBZaCgpe3JldHVybiEhdGhpcy5pc1ZhbGlkKCkmJiF0aGlz'@; put 'Ll9pc1VUQ30seWkuaXNVdGNPZmZzZXQ9ZnVuY3Rpb24gcDQoKXtyZXR1cm4hIXRoaXMuaXNWYWxpZCgpJiZ0aGlzLl9pc1VUQ30seWkuaXNVdGM9ZzQseWkuaXNVVEM9ZzQseWkuem9uZUFiYnI9ZnVuY3Rpb24gYzkoKXtyZXR1cm4gdGhpcy5faXNVVEM/IlVUQyI6IiJ9LHlpLnpvbmVOYW1l'@; put 'PWZ1bmN0aW9uIHU5KCl7cmV0dXJuIHRoaXMuX2lzVVRDPyJDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZSI6IiJ9LHlpLmRhdGVzPXVlKCJkYXRlcyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgZGF0ZSBpbnN0ZWFkLiIsaG0pLHlpLm1vbnRocz11ZSgibW9udGhzIGFjY2Vzc29yIGlz'@; put 'IGRlcHJlY2F0ZWQuIFVzZSBtb250aCBpbnN0ZWFkIixMbykseWkueWVhcnM9dWUoInllYXJzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSB5ZWFyIGluc3RlYWQiLE4wKSx5aS56b25lPXVlKCJtb21lbnQoKS56b25lIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQoKS51dGNPZmZzZXQg'@; put 'aW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy96b25lLyIsZnVuY3Rpb24gbDAoa2UsJGUpe3JldHVybiBudWxsIT1rZT8oInN0cmluZyIhPXR5cGVvZiBrZSYmKGtlPS1rZSksdGhpcy51dGNPZmZzZXQoa2UsJGUpLHRoaXMpOi10aGlzLnV0Y09mZnNldCgp'@; put 'fSkseWkuaXNEU1RTaGlmdGVkPXVlKCJpc0RTVFNoaWZ0ZWQgaXMgZGVwcmVjYXRlZC4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZHN0LXNoaWZ0ZWQvIGZvciBtb3JlIGluZm9ybWF0aW9uIixmdW5jdGlvbiBmNCgpe2lmKCF6KHRoaXMuX2lzRFNUU2hpZnRl'@; put 'ZCkpcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDt2YXIgJGUsa2U9e307cmV0dXJuIHRlKGtlLHRoaXMpLChrZT1pbShrZSkpLl9hPygkZT1rZS5faXNVVEM/aihrZS5fYSk6Y2Eoa2UuX2EpLHRoaXMuX2lzRFNUU2hpZnRlZD10aGlzLmlzVmFsaWQoKSYmZnVuY3Rpb24gUGMoa2UsJGUsbXQp'@; put 'e3ZhciBEcixMdD1NYXRoLm1pbihrZS5sZW5ndGgsJGUubGVuZ3RoKSxHdD1NYXRoLmFicyhrZS5sZW5ndGgtJGUubGVuZ3RoKSxVbj0wO2ZvcihEcj0wO0RyPEx0O0RyKyspKG10JiZrZVtEcl0hPT0kZVtEcl18fCFtdCYmdXQoa2VbRHJdKSE9PXV0KCRlW0RyXSkpJiZVbisrO3JldHVybiBV'@; put 'bitHdH0oa2UuX2EsJGUudG9BcnJheSgpKT4wKTp0aGlzLl9pc0RTVFNoaWZ0ZWQ9ITEsdGhpcy5faXNEU1RTaGlmdGVkfSk7dmFyIFNvPU4ucHJvdG90eXBlO2Z1bmN0aW9uIEZsKGtlLCRlLG10LEx0KXt2YXIgR3Q9bHUoKSxVbj1qKCkuc2V0KEx0LCRlKTtyZXR1cm4gR3RbbXRdKFVuLGtl'@; put 'KX1mdW5jdGlvbiBobChrZSwkZSxtdCl7aWYoSyhrZSkmJigkZT1rZSxrZT12b2lkIDApLGtlPWtlfHwiIixudWxsIT0kZSlyZXR1cm4gRmwoa2UsJGUsbXQsIm1vbnRoIik7dmFyIEx0LEd0PVtdO2ZvcihMdD0wO0x0PDEyO0x0KyspR3RbTHRdPUZsKGtlLEx0LG10LCJtb250aCIpO3JldHVy'@; put 'biBHdH1mdW5jdGlvbiBmdShrZSwkZSxtdCxMdCl7ImJvb2xlYW4iPT10eXBlb2Yga2U/KEsoJGUpJiYobXQ9JGUsJGU9dm9pZCAwKSwkZT0kZXx8IiIpOihtdD0kZT1rZSxrZT0hMSxLKCRlKSYmKG10PSRlLCRlPXZvaWQgMCksJGU9JGV8fCIiKTt2YXIgRHIsR3Q9bHUoKSxVbj1rZT9HdC5f'@; put 'd2Vlay5kb3c6MCx5bz1bXTtpZihudWxsIT1tdClyZXR1cm4gRmwoJGUsKG10K1VuKSU3LEx0LCJkYXkiKTtmb3IoRHI9MDtEcjw3O0RyKyspeW9bRHJdPUZsKCRlLChEcitVbiklNyxMdCwiZGF5Iik7cmV0dXJuIHlvfVNvLmNhbGVuZGFyPWZ1bmN0aW9uIFMoa2UsJGUsbXQpe3ZhciBMdD10'@; put 'aGlzLl9jYWxlbmRhcltrZV18fHRoaXMuX2NhbGVuZGFyLnNhbWVFbHNlO3JldHVybiBiKEx0KT9MdC5jYWxsKCRlLG10KTpMdH0sU28ubG9uZ0RhdGVGb3JtYXQ9ZnVuY3Rpb24gamUoa2Upe3ZhciAkZT10aGlzLl9sb25nRGF0ZUZvcm1hdFtrZV0sbXQ9dGhpcy5fbG9uZ0RhdGVGb3JtYXRb'@; put 'a2UudG9VcHBlckNhc2UoKV07cmV0dXJuICRlfHwhbXQ/JGU6KHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tlXT1tdC5tYXRjaChwKS5tYXAoZnVuY3Rpb24oTHQpe3JldHVybiJNTU1NIj09PUx0fHwiTU0iPT09THR8fCJERCI9PT1MdHx8ImRkZGQiPT09THQ/THQuc2xpY2UoMSk6THR9KS5qb2lu'@; put 'KCIiKSx0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZV0pfSxTby5pbnZhbGlkRGF0ZT1mdW5jdGlvbiBLZSgpe3JldHVybiB0aGlzLl9pbnZhbGlkRGF0ZX0sU28ub3JkaW5hbD1mdW5jdGlvbiBsdChrZSl7cmV0dXJuIHRoaXMuX29yZGluYWwucmVwbGFjZSgiJWQiLGtlKX0sU28ucHJlcGFyc2U9'@; put 'azQsU28ucG9zdGZvcm1hdD1rNCxTby5yZWxhdGl2ZVRpbWU9ZnVuY3Rpb24gYmUoa2UsJGUsbXQsTHQpe3ZhciBHdD10aGlzLl9yZWxhdGl2ZVRpbWVbbXRdO3JldHVybiBiKEd0KT9HdChrZSwkZSxtdCxMdCk6R3QucmVwbGFjZSgvJWQvaSxrZSl9LFNvLnBhc3RGdXR1cmU9ZnVuY3Rpb24g'@; put 'QWUoa2UsJGUpe3ZhciBtdD10aGlzLl9yZWxhdGl2ZVRpbWVba2U+MD8iZnV0dXJlIjoicGFzdCJdO3JldHVybiBiKG10KT9tdCgkZSk6bXQucmVwbGFjZSgvJXMvaSwkZSl9LFNvLnNldD1mdW5jdGlvbiBEKGtlKXt2YXIgJGUsbXQ7Zm9yKG10IGluIGtlKU8oa2UsbXQpJiYoYigkZT1rZVtt'@; put 'dF0pP3RoaXNbbXRdPSRlOnRoaXNbIl8iK210XT0kZSk7dGhpcy5fY29uZmlnPWtlLHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50PW5ldyBSZWdFeHAoKHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2Uuc291cmNlfHx0aGlzLl9vcmRpbmFsUGFyc2Uuc291cmNlKSsifCIr'@; put 'L1xkezEsMn0vLnNvdXJjZSl9LFNvLmVyYXM9ZnVuY3Rpb24gdTAoa2UsJGUpe3ZhciBtdCxMdCxHdCxVbj10aGlzLl9lcmFzfHxsdSgiZW4iKS5fZXJhcztmb3IobXQ9MCxMdD1Vbi5sZW5ndGg7bXQ8THQ7KyttdClzd2l0Y2goInN0cmluZyI9PXR5cGVvZiBVblttdF0uc2luY2UmJihHdD14'@; put 'KFVuW210XS5zaW5jZSkuc3RhcnRPZigiZGF5IiksVW5bbXRdLnNpbmNlPUd0LnZhbHVlT2YoKSksdHlwZW9mIFVuW210XS51bnRpbCl7Y2FzZSJ1bmRlZmluZWQiOlVuW210XS51bnRpbD0xLzA7YnJlYWs7Y2FzZSJzdHJpbmciOkd0PXgoVW5bbXRdLnVudGlsKS5zdGFydE9mKCJkYXkiKS52'@; put 'YWx1ZU9mKCksVW5bbXRdLnVudGlsPUd0LnZhbHVlT2YoKX1yZXR1cm4gVW59LFNvLmVyYXNQYXJzZT1mdW5jdGlvbiBwMyhrZSwkZSxtdCl7dmFyIEx0LEd0LERyLHlvLGVzLFVuPXRoaXMuZXJhcygpO2ZvcihrZT1rZS50b1VwcGVyQ2FzZSgpLEx0PTAsR3Q9VW4ubGVuZ3RoO0x0PEd0Oysr'@; put 'THQpaWYoRHI9VW5bTHRdLm5hbWUudG9VcHBlckNhc2UoKSx5bz1VbltMdF0uYWJici50b1VwcGVyQ2FzZSgpLGVzPVVuW0x0XS5uYXJyb3cudG9VcHBlckNhc2UoKSxtdClzd2l0Y2goJGUpe2Nhc2UiTiI6Y2FzZSJOTiI6Y2FzZSJOTk4iOmlmKHlvPT09a2UpcmV0dXJuIFVuW0x0XTticmVh'@; put 'aztjYXNlIk5OTk4iOmlmKERyPT09a2UpcmV0dXJuIFVuW0x0XTticmVhaztjYXNlIk5OTk5OIjppZihlcz09PWtlKXJldHVybiBVbltMdF19ZWxzZSBpZihbRHIseW8sZXNdLmluZGV4T2Yoa2UpPj0wKXJldHVybiBVbltMdF19LFNvLmVyYXNDb252ZXJ0WWVhcj1mdW5jdGlvbiBnMyhrZSwk'@; put 'ZSl7dmFyIG10PWtlLnNpbmNlPD1rZS51bnRpbD8xOi0xO3JldHVybiB2b2lkIDA9PT0kZT94KGtlLnNpbmNlKS55ZWFyKCk6eChrZS5zaW5jZSkueWVhcigpKygkZS1rZS5vZmZzZXQpKm10fSxTby5lcmFzQWJiclJlZ2V4PWZ1bmN0aW9uIEYyKGtlKXtyZXR1cm4gTyh0aGlzLCJfZXJhc0Fi'@; put 'YnJSZWdleCIpfHxvYy5jYWxsKHRoaXMpLGtlP3RoaXMuX2VyYXNBYmJyUmVnZXg6dGhpcy5fZXJhc1JlZ2V4fSxTby5lcmFzTmFtZVJlZ2V4PWZ1bmN0aW9uIGQwKGtlKXtyZXR1cm4gTyh0aGlzLCJfZXJhc05hbWVSZWdleCIpfHxvYy5jYWxsKHRoaXMpLGtlP3RoaXMuX2VyYXNOYW1lUmVn'@; put 'ZXg6dGhpcy5fZXJhc1JlZ2V4fSxTby5lcmFzTmFycm93UmVnZXg9ZnVuY3Rpb24gSDIoa2Upe3JldHVybiBPKHRoaXMsIl9lcmFzTmFycm93UmVnZXgiKXx8b2MuY2FsbCh0aGlzKSxrZT90aGlzLl9lcmFzTmFycm93UmVnZXg6dGhpcy5fZXJhc1JlZ2V4fSxTby5tb250aHM9ZnVuY3Rpb24g'@; put 'aW8oa2UsJGUpe3JldHVybiBrZT9sZSh0aGlzLl9tb250aHMpP3RoaXMuX21vbnRoc1trZS5tb250aCgpXTp0aGlzLl9tb250aHNbKHRoaXMuX21vbnRocy5pc0Zvcm1hdHx8SmkpLnRlc3QoJGUpPyJmb3JtYXQiOiJzdGFuZGFsb25lIl1ba2UubW9udGgoKV06bGUodGhpcy5fbW9udGhzKT90'@; put 'aGlzLl9tb250aHM6dGhpcy5fbW9udGhzLnN0YW5kYWxvbmV9LFNvLm1vbnRoc1Nob3J0PWZ1bmN0aW9uIEdpKGtlLCRlKXtyZXR1cm4ga2U/bGUodGhpcy5fbW9udGhzU2hvcnQpP3RoaXMuX21vbnRoc1Nob3J0W2tlLm1vbnRoKCldOnRoaXMuX21vbnRoc1Nob3J0W0ppLnRlc3QoJGUpPyJm'@; put 'b3JtYXQiOiJzdGFuZGFsb25lIl1ba2UubW9udGgoKV06bGUodGhpcy5fbW9udGhzU2hvcnQpP3RoaXMuX21vbnRoc1Nob3J0OnRoaXMuX21vbnRoc1Nob3J0LnN0YW5kYWxvbmV9LFNvLm1vbnRoc1BhcnNlPWZ1bmN0aW9uIHlyKGtlLCRlLG10KXt2YXIgTHQsR3QsVW47aWYodGhpcy5fbW9u'@; put 'dGhzUGFyc2VFeGFjdClyZXR1cm4gaG8uY2FsbCh0aGlzLGtlLCRlLG10KTtmb3IodGhpcy5fbW9udGhzUGFyc2V8fCh0aGlzLl9tb250aHNQYXJzZT1bXSx0aGlzLl9sb25nTW9udGhzUGFyc2U9W10sdGhpcy5fc2hvcnRNb250aHNQYXJzZT1bXSksTHQ9MDtMdDwxMjtMdCsrKXtpZihHdD1q'@; put 'KFsyZTMsTHRdKSxtdCYmIXRoaXMuX2xvbmdNb250aHNQYXJzZVtMdF0mJih0aGlzLl9sb25nTW9udGhzUGFyc2VbTHRdPW5ldyBSZWdFeHAoIl4iK3RoaXMubW9udGhzKEd0LCIiKS5yZXBsYWNlKCIuIiwiIikrIiQiLCJpIiksdGhpcy5fc2hvcnRNb250aHNQYXJzZVtMdF09bmV3IFJlZ0V4'@; put 'cCgiXiIrdGhpcy5tb250aHNTaG9ydChHdCwiIikucmVwbGFjZSgiLiIsIiIpKyIkIiwiaSIpKSwhbXQmJiF0aGlzLl9tb250aHNQYXJzZVtMdF0mJihVbj0iXiIrdGhpcy5tb250aHMoR3QsIiIpKyJ8XiIrdGhpcy5tb250aHNTaG9ydChHdCwiIiksdGhpcy5fbW9udGhzUGFyc2VbTHRdPW5l'@; put 'dyBSZWdFeHAoVW4ucmVwbGFjZSgiLiIsIiIpLCJpIikpLG10JiYiTU1NTSI9PT0kZSYmdGhpcy5fbG9uZ01vbnRoc1BhcnNlW0x0XS50ZXN0KGtlKSlyZXR1cm4gTHQ7aWYobXQmJiJNTU0iPT09JGUmJnRoaXMuX3Nob3J0TW9udGhzUGFyc2VbTHRdLnRlc3Qoa2UpKXJldHVybiBMdDtpZigh'@; put 'bXQmJnRoaXMuX21vbnRoc1BhcnNlW0x0XS50ZXN0KGtlKSlyZXR1cm4gTHR9fSxTby5tb250aHNSZWdleD1mdW5jdGlvbiBSYyhrZSl7cmV0dXJuIHRoaXMuX21vbnRoc1BhcnNlRXhhY3Q/KE8odGhpcywiX21vbnRoc1JlZ2V4Iil8fHVsLmNhbGwodGhpcyksa2U/dGhpcy5fbW9udGhzU3Ry'@; put 'aWN0UmVnZXg6dGhpcy5fbW9udGhzUmVnZXgpOihPKHRoaXMsIl9tb250aHNSZWdleCIpfHwodGhpcy5fbW9udGhzUmVnZXg9cm8pLHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4JiZrZT90aGlzLl9tb250aHNTdHJpY3RSZWdleDp0aGlzLl9tb250aHNSZWdleCl9LFNvLm1vbnRoc1Nob3J0UmVn'@; put 'ZXg9ZnVuY3Rpb24gcnMoa2Upe3JldHVybiB0aGlzLl9tb250aHNQYXJzZUV4YWN0PyhPKHRoaXMsIl9tb250aHNSZWdleCIpfHx1bC5jYWxsKHRoaXMpLGtlP3RoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzU2hvcnRSZWdleCk6KE8odGhpcywiX21vbnRoc1Nob3J0'@; put 'UmVnZXgiKXx8KHRoaXMuX21vbnRoc1Nob3J0UmVnZXg9YW8pLHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXgmJmtlP3RoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzU2hvcnRSZWdleCl9LFNvLndlZWs9ZnVuY3Rpb24gQTIoa2Upe3JldHVybiBQYShrZSx0aGlz'@; put 'Ll93ZWVrLmRvdyx0aGlzLl93ZWVrLmRveSkud2Vla30sU28uZmlyc3REYXlPZlllYXI9ZnVuY3Rpb24gZWEoKXtyZXR1cm4gdGhpcy5fd2Vlay5kb3l9LFNvLmZpcnN0RGF5T2ZXZWVrPWZ1bmN0aW9uIFBoKCl7cmV0dXJuIHRoaXMuX3dlZWsuZG93fSxTby53ZWVrZGF5cz1mdW5jdGlvbiBI'@; put 'aChrZSwkZSl7dmFyIG10PWxlKHRoaXMuX3dlZWtkYXlzKT90aGlzLl93ZWVrZGF5czp0aGlzLl93ZWVrZGF5c1trZSYmITAhPT1rZSYmdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdCgkZSk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXTtyZXR1cm4hMD09PWtlP1NhKG10LHRoaXMuX3dlZWsu'@; put 'ZG93KTprZT9tdFtrZS5kYXkoKV06bXR9LFNvLndlZWtkYXlzTWluPWZ1bmN0aW9uIGJvKGtlKXtyZXR1cm4hMD09PWtlP1NhKHRoaXMuX3dlZWtkYXlzTWluLHRoaXMuX3dlZWsuZG93KTprZT90aGlzLl93ZWVrZGF5c01pbltrZS5kYXkoKV06dGhpcy5fd2Vla2RheXNNaW59LFNvLndlZWtk'@; put 'YXlzU2hvcnQ9ZnVuY3Rpb24gSXMoa2Upe3JldHVybiEwPT09a2U/U2EodGhpcy5fd2Vla2RheXNTaG9ydCx0aGlzLl93ZWVrLmRvdyk6a2U/dGhpcy5fd2Vla2RheXNTaG9ydFtrZS5kYXkoKV06dGhpcy5fd2Vla2RheXNTaG9ydH0sU28ud2Vla2RheXNQYXJzZT1mdW5jdGlvbiBUMihrZSwk'@; put 'ZSxtdCl7dmFyIEx0LEd0LFVuO2lmKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdClyZXR1cm4gcjAuY2FsbCh0aGlzLGtlLCRlLG10KTtmb3IodGhpcy5fd2Vla2RheXNQYXJzZXx8KHRoaXMuX3dlZWtkYXlzUGFyc2U9W10sdGhpcy5fbWluV2Vla2RheXNQYXJzZT1bXSx0aGlzLl9zaG9ydFdl'@; put 'ZWtkYXlzUGFyc2U9W10sdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2U9W10pLEx0PTA7THQ8NztMdCsrKXtpZihHdD1qKFsyZTMsMV0pLmRheShMdCksbXQmJiF0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtMdF0mJih0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtMdF09bmV3IFJlZ0V4cCgiXiIrdGhp'@; put 'cy53ZWVrZGF5cyhHdCwiIikucmVwbGFjZSgiLiIsIlxcLj8iKSsiJCIsImkiKSx0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbTHRdPW5ldyBSZWdFeHAoIl4iK3RoaXMud2Vla2RheXNTaG9ydChHdCwiIikucmVwbGFjZSgiLiIsIlxcLj8iKSsiJCIsImkiKSx0aGlzLl9taW5XZWVrZGF5c1Bh'@; put 'cnNlW0x0XT1uZXcgUmVnRXhwKCJeIit0aGlzLndlZWtkYXlzTWluKEd0LCIiKS5yZXBsYWNlKCIuIiwiXFwuPyIpKyIkIiwiaSIpKSx0aGlzLl93ZWVrZGF5c1BhcnNlW0x0XXx8KFVuPSJeIit0aGlzLndlZWtkYXlzKEd0LCIiKSsifF4iK3RoaXMud2Vla2RheXNTaG9ydChHdCwiIikrInxe'@; put 'Iit0aGlzLndlZWtkYXlzTWluKEd0LCIiKSx0aGlzLl93ZWVrZGF5c1BhcnNlW0x0XT1uZXcgUmVnRXhwKFVuLnJlcGxhY2UoIi4iLCIiKSwiaSIpKSxtdCYmImRkZGQiPT09JGUmJnRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW0x0XS50ZXN0KGtlKSlyZXR1cm4gTHQ7aWYobXQmJiJkZGQiPT09'@; put 'JGUmJnRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtMdF0udGVzdChrZSkpcmV0dXJuIEx0O2lmKG10JiYiZGQiPT09JGUmJnRoaXMuX21pbldlZWtkYXlzUGFyc2VbTHRdLnRlc3Qoa2UpKXJldHVybiBMdDtpZighbXQmJnRoaXMuX3dlZWtkYXlzUGFyc2VbTHRdLnRlc3Qoa2UpKXJldHVybiBM'@; put 'dH19LFNvLndlZWtkYXlzUmVnZXg9ZnVuY3Rpb24gYmMoa2Upe3JldHVybiB0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3Q/KE8odGhpcywiX3dlZWtkYXlzUmVnZXgiKXx8bzAuY2FsbCh0aGlzKSxrZT90aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzUmVnZXgpOihPKHRo'@; put 'aXMsIl93ZWVrZGF5c1JlZ2V4Iil8fCh0aGlzLl93ZWVrZGF5c1JlZ2V4PW4wKSx0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4JiZrZT90aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzUmVnZXgpfSxTby53ZWVrZGF5c1Nob3J0UmVnZXg9ZnVuY3Rpb24ga28oa2Upe3Jl'@; put 'dHVybiB0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3Q/KE8odGhpcywiX3dlZWtkYXlzUmVnZXgiKXx8bzAuY2FsbCh0aGlzKSxrZT90aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4KTooTyh0aGlzLCJfd2Vla2RheXNTaG9ydFJlZ2V4Iil8fCh0'@; put 'aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg9cWEpLHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCYma2U/dGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCl9LFNvLndlZWtkYXlzTWluUmVnZXg9ZnVuY3Rpb24gQ3Moa2Upe3JldHVybiB0'@; put 'aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3Q/KE8odGhpcywiX3dlZWtkYXlzUmVnZXgiKXx8bzAuY2FsbCh0aGlzKSxrZT90aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzTWluUmVnZXgpOihPKHRoaXMsIl93ZWVrZGF5c01pblJlZ2V4Iil8fCh0aGlzLl93ZWVrZGF5'@; put 'c01pblJlZ2V4PV9jKSx0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4JiZrZT90aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzTWluUmVnZXgpfSxTby5pc1BNPWZ1bmN0aW9uIF9pKGtlKXtyZXR1cm4icCI9PT0oa2UrIiIpLnRvTG93ZXJDYXNlKCkuY2hhckF0'@; put 'KDApfSxTby5tZXJpZGllbT1mdW5jdGlvbiBGYShrZSwkZSxtdCl7cmV0dXJuIGtlPjExP210PyJwbSI6IlBNIjptdD8iYW0iOiJBTSJ9LEhvKCJlbiIse2VyYXM6W3tzaW5jZToiMDAwMS0wMS0wMSIsdW50aWw6MS8wLG9mZnNldDoxLG5hbWU6IkFubm8gRG9taW5pIixuYXJyb3c6IkFEIixh'@; put 'YmJyOiJBRCJ9LHtzaW5jZToiMDAwMC0xMi0zMSIsdW50aWw6LTEvMCxvZmZzZXQ6MSxuYW1lOiJCZWZvcmUgQ2hyaXN0IixuYXJyb3c6IkJDIixhYmJyOiJCQyJ9XSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHRofHN0fG5kfHJkKS8sb3JkaW5hbDpmdW5jdGlvbihrZSl7dmFy'@; put 'ICRlPWtlJTEwO3JldHVybiBrZSsoMT09PXV0KGtlJTEwMC8xMCk/InRoIjoxPT09JGU/InN0IjoyPT09JGU/Im5kIjozPT09JGU/InJkIjoidGgiKX19KSx4Lmxhbmc9dWUoIm1vbWVudC5sYW5nIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlIGluc3RlYWQuIixIbykseC5sYW5n'@; put 'RGF0YT11ZSgibW9tZW50LmxhbmdEYXRhIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlRGF0YSBpbnN0ZWFkLiIsbHUpO3ZhciBqMD1NYXRoLmFicztmdW5jdGlvbiBOMihrZSwkZSxtdCxMdCl7dmFyIEd0PU1hKCRlLG10KTtyZXR1cm4ga2UuX21pbGxpc2Vjb25kcys9THQqR3Qu'@; put 'X21pbGxpc2Vjb25kcyxrZS5fZGF5cys9THQqR3QuX2RheXMsa2UuX21vbnRocys9THQqR3QuX21vbnRocyxrZS5fYnViYmxlKCl9ZnVuY3Rpb24gRHUoa2Upe3JldHVybiBrZTwwP01hdGguZmxvb3Ioa2UpOk1hdGguY2VpbChrZSl9ZnVuY3Rpb24gZmwoa2Upe3JldHVybiA0ODAwKmtlLzE0'@; put 'NjA5N31mdW5jdGlvbiB2MyhrZSl7cmV0dXJuIDE0NjA5NyprZS80ODAwfWZ1bmN0aW9uIEl1KGtlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcyhrZSl9fXZhciBiMz1JdSgibXMiKSx2bT1JdSgicyIpLGg5PUl1KCJtIiksTHU9SXUoImgiKSx6MD1JdSgiZCIpLGY5PUl1KCJ3'@; put 'IikseTM9SXUoIk0iKSxwOT1JdSgiUSIpLGc5PUl1KCJ5Iik7ZnVuY3Rpb24gVTAoa2Upe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLl9kYXRhW2tlXTpOYU59fXZhciBfbT1VMCgibWlsbGlzZWNvbmRzIiksbTk9VTAoInNlY29uZHMiKSx2YT1VMCgibWlu'@; put 'dXRlcyIpLFQ0PVUwKCJob3VycyIpLHY5PVUwKCJkYXlzIiksXzk9VTAoIm1vbnRocyIpLEhsPVUwKCJ5ZWFycyIpO3ZhciBaMD1NYXRoLnJvdW5kLFJ1PXtzczo0NCxzOjQ1LG06NDUsaDoyMixkOjI2LHc6bnVsbCxNOjExfTtmdW5jdGlvbiBENChrZSwkZSxtdCxMdCxHdCl7cmV0dXJuIEd0'@; put 'LnJlbGF0aXZlVGltZSgkZXx8MSwhIW10LGtlLEx0KX12YXIgSTQ9TWF0aC5hYnM7ZnVuY3Rpb24gWTAoa2Upe3JldHVybihrZT4wKS0oa2U8MCl8fCtrZX1mdW5jdGlvbiBObCgpe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTt2YXIg'@; put 'THQsR3QsVW4sRHIsZXMsenMsc2MsZjAsa2U9STQodGhpcy5fbWlsbGlzZWNvbmRzKS8xZTMsJGU9STQodGhpcy5fZGF5cyksbXQ9STQodGhpcy5fbW9udGhzKSx5bz10aGlzLmFzU2Vjb25kcygpO3JldHVybiB5bz8oTHQ9b3Qoa2UvNjApLEd0PW90KEx0LzYwKSxrZSU9NjAsTHQlPTYwLFVu'@; put 'PW90KG10LzEyKSxtdCU9MTIsRHI9a2U/a2UudG9GaXhlZCgzKS5yZXBsYWNlKC9cLj8wKyQvLCIiKToiIixlcz15bzwwPyItIjoiIix6cz1ZMCh0aGlzLl9tb250aHMpIT09WTAoeW8pPyItIjoiIixzYz1ZMCh0aGlzLl9kYXlzKSE9PVkwKHlvKT8iLSI6IiIsZjA9WTAodGhpcy5fbWlsbGlz'@; put 'ZWNvbmRzKSE9PVkwKHlvKT8iLSI6IiIsZXMrIlAiKyhVbj96cytVbisiWSI6IiIpKyhtdD96cyttdCsiTSI6IiIpKygkZT9zYyskZSsiRCI6IiIpKyhHdHx8THR8fGtlPyJUIjoiIikrKEd0P2YwK0d0KyJIIjoiIikrKEx0P2YwK0x0KyJNIjoiIikrKGtlP2YwK0RyKyJTIjoiIikpOiJQMEQi'@; put 'fXZhciBicz1BZC5wcm90b3R5cGU7cmV0dXJuIGJzLmlzVmFsaWQ9ZnVuY3Rpb24gc20oKXtyZXR1cm4gdGhpcy5faXNWYWxpZH0sYnMuYWJzPWZ1bmN0aW9uIEhkKCl7dmFyIGtlPXRoaXMuX2RhdGE7cmV0dXJuIHRoaXMuX21pbGxpc2Vjb25kcz1qMCh0aGlzLl9taWxsaXNlY29uZHMpLHRo'@; put 'aXMuX2RheXM9ajAodGhpcy5fZGF5cyksdGhpcy5fbW9udGhzPWowKHRoaXMuX21vbnRocyksa2UubWlsbGlzZWNvbmRzPWowKGtlLm1pbGxpc2Vjb25kcyksa2Uuc2Vjb25kcz1qMChrZS5zZWNvbmRzKSxrZS5taW51dGVzPWowKGtlLm1pbnV0ZXMpLGtlLmhvdXJzPWowKGtlLmhvdXJzKSxr'@; put 'ZS5tb250aHM9ajAoa2UubW9udGhzKSxrZS55ZWFycz1qMChrZS55ZWFycyksdGhpc30sYnMuYWRkPWZ1bmN0aW9uIFYyKGtlLCRlKXtyZXR1cm4gTjIodGhpcyxrZSwkZSwxKX0sYnMuc3VidHJhY3Q9ZnVuY3Rpb24gbW0oa2UsJGUpe3JldHVybiBOMih0aGlzLGtlLCRlLC0xKX0sYnMuYXM9'@; put 'ZnVuY3Rpb24gQTQoa2Upe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gTmFOO3ZhciAkZSxtdCxMdD10aGlzLl9taWxsaXNlY29uZHM7aWYoIm1vbnRoIj09PShrZT1YZShrZSkpfHwicXVhcnRlciI9PT1rZXx8InllYXIiPT09a2Upc3dpdGNoKCRlPXRoaXMuX2RheXMrTHQvODY0ZTUsbXQ9'@; put 'dGhpcy5fbW9udGhzK2ZsKCRlKSxrZSl7Y2FzZSJtb250aCI6cmV0dXJuIG10O2Nhc2UicXVhcnRlciI6cmV0dXJuIG10LzM7Y2FzZSJ5ZWFyIjpyZXR1cm4gbXQvMTJ9ZWxzZSBzd2l0Y2goJGU9dGhpcy5fZGF5cytNYXRoLnJvdW5kKHYzKHRoaXMuX21vbnRocykpLGtlKXtjYXNlIndlZWsi'@; put 'OnJldHVybiAkZS83K0x0LzYwNDhlNTtjYXNlImRheSI6cmV0dXJuICRlK0x0Lzg2NGU1O2Nhc2UiaG91ciI6cmV0dXJuIDI0KiRlK0x0LzM2ZTU7Y2FzZSJtaW51dGUiOnJldHVybiAxNDQwKiRlK0x0LzZlNDtjYXNlInNlY29uZCI6cmV0dXJuIDg2NDAwKiRlK0x0LzFlMztjYXNlIm1pbGxp'@; put 'c2Vjb25kIjpyZXR1cm4gTWF0aC5mbG9vcig4NjRlNSokZSkrTHQ7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdW5pdCAiK2tlKX19LGJzLmFzTWlsbGlzZWNvbmRzPWIzLGJzLmFzU2Vjb25kcz12bSxicy5hc01pbnV0ZXM9aDksYnMuYXNIb3Vycz1MdSxicy5hc0RheXM9ejAs'@; put 'YnMuYXNXZWVrcz1mOSxicy5hc01vbnRocz15Myxicy5hc1F1YXJ0ZXJzPXA5LGJzLmFzWWVhcnM9ZzksYnMudmFsdWVPZj1mdW5jdGlvbiBfMygpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLl9taWxsaXNlY29uZHMrODY0ZTUqdGhpcy5fZGF5cyt0aGlzLl9tb250aHMlMTIqMjU5MmU2'@; put 'KzMxNTM2ZTYqdXQodGhpcy5fbW9udGhzLzEyKTpOYU59LGJzLl9idWJibGU9ZnVuY3Rpb24gbTMoKXt2YXIgR3QsVW4sRHIseW8sZXMsa2U9dGhpcy5fbWlsbGlzZWNvbmRzLCRlPXRoaXMuX2RheXMsbXQ9dGhpcy5fbW9udGhzLEx0PXRoaXMuX2RhdGE7cmV0dXJuIGtlPj0wJiYkZT49MCYm'@; put 'bXQ+PTB8fGtlPD0wJiYkZTw9MCYmbXQ8PTB8fChrZSs9ODY0ZTUqRHUodjMobXQpKyRlKSwkZT0wLG10PTApLEx0Lm1pbGxpc2Vjb25kcz1rZSUxZTMsR3Q9b3Qoa2UvMWUzKSxMdC5zZWNvbmRzPUd0JTYwLFVuPW90KEd0LzYwKSxMdC5taW51dGVzPVVuJTYwLERyPW90KFVuLzYwKSxMdC5o'@; put 'b3Vycz1EciUyNCwkZSs9b3QoRHIvMjQpLG10Kz1lcz1vdChmbCgkZSkpLCRlLT1EdSh2MyhlcykpLHlvPW90KG10LzEyKSxtdCU9MTIsTHQuZGF5cz0kZSxMdC5tb250aHM9bXQsTHQueWVhcnM9eW8sdGhpc30sYnMuY2xvbmU9ZnVuY3Rpb24gUncoKXtyZXR1cm4gTWEodGhpcyl9LGJzLmdl'@; put 'dD1mdW5jdGlvbiBLaChrZSl7cmV0dXJuIGtlPVhlKGtlKSx0aGlzLmlzVmFsaWQoKT90aGlzW2tlKyJzIl0oKTpOYU59LGJzLm1pbGxpc2Vjb25kcz1fbSxicy5zZWNvbmRzPW05LGJzLm1pbnV0ZXM9dmEsYnMuaG91cnM9VDQsYnMuZGF5cz12OSxicy53ZWVrcz1mdW5jdGlvbiBibSgpe3Jl'@; put 'dHVybiBvdCh0aGlzLmRheXMoKS83KX0sYnMubW9udGhzPV85LGJzLnllYXJzPUhsLGJzLmh1bWFuaXplPWZ1bmN0aW9uIF9hKGtlLCRlKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7dmFyIEd0LFVuLG10PSExLEx0PVJ1O3JldHVy'@; put 'biJvYmplY3QiPT10eXBlb2Yga2UmJigkZT1rZSxrZT0hMSksImJvb2xlYW4iPT10eXBlb2Yga2UmJihtdD1rZSksIm9iamVjdCI9PXR5cGVvZiAkZSYmKEx0PU9iamVjdC5hc3NpZ24oe30sUnUsJGUpLG51bGwhPSRlLnMmJm51bGw9PSRlLnNzJiYoTHQuc3M9JGUucy0xKSksVW49ZnVuY3Rp'@; put 'b24gaDAoa2UsJGUsbXQsTHQpe3ZhciBHdD1NYShrZSkuYWJzKCksVW49WjAoR3QuYXMoInMiKSksRHI9WjAoR3QuYXMoIm0iKSkseW89WjAoR3QuYXMoImgiKSksZXM9WjAoR3QuYXMoImQiKSksenM9WjAoR3QuYXMoIk0iKSksc2M9WjAoR3QuYXMoInciKSksZjA9WjAoR3QuYXMoInkiKSks'@; put 'VzA9VW48PW10LnNzJiZbInMiLFVuXXx8VW48bXQucyYmWyJzcyIsVW5dfHxEcjw9MSYmWyJtIl18fERyPG10Lm0mJlsibW0iLERyXXx8eW88PTEmJlsiaCJdfHx5bzxtdC5oJiZbImhoIix5b118fGVzPD0xJiZbImQiXXx8ZXM8bXQuZCYmWyJkZCIsZXNdO3JldHVybiBudWxsIT1tdC53JiYo'@; put 'VzA9VzB8fHNjPD0xJiZbInciXXx8c2M8bXQudyYmWyJ3dyIsc2NdKSwoVzA9VzB8fHpzPD0xJiZbIk0iXXx8enM8bXQuTSYmWyJNTSIsenNdfHxmMDw9MSYmWyJ5Il18fFsieXkiLGYwXSlbMl09JGUsVzBbM109K2tlPjAsVzBbNF09THQsRDQuYXBwbHkobnVsbCxXMCl9KHRoaXMsIW10LEx0'@; put 'LEd0PXRoaXMubG9jYWxlRGF0YSgpKSxtdCYmKFVuPUd0LnBhc3RGdXR1cmUoK3RoaXMsVW4pKSxHdC5wb3N0Zm9ybWF0KFVuKX0sYnMudG9JU09TdHJpbmc9TmwsYnMudG9TdHJpbmc9TmwsYnMudG9KU09OPU5sLGJzLmxvY2FsZT1IaSxicy5sb2NhbGVEYXRhPURvLGJzLnRvSXNvU3RyaW5n'@; put 'PXVlKCJ0b0lzb1N0cmluZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdG9JU09TdHJpbmcoKSBpbnN0ZWFkIChub3RpY2UgdGhlIGNhcGl0YWxzKSIsTmwpLGJzLmxhbmc9QmksZGUoIlgiLDAsMCwidW5peCIpLGRlKCJ4IiwwLDAsInZhbHVlT2YiKSxwdCgieCIsTnQpLHB0KCJYIiwv'@; put 'WystXT9cZCsoXC5cZHsxLDN9KT8vKSx4bigiWCIsZnVuY3Rpb24oa2UsJGUsbXQpe210Ll9kPW5ldyBEYXRlKDFlMypwYXJzZUZsb2F0KGtlKSl9KSx4bigieCIsZnVuY3Rpb24oa2UsJGUsbXQpe210Ll9kPW5ldyBEYXRlKHV0KGtlKSl9KSx4LnZlcnNpb249IjIuMjkuNCIsZnVuY3Rpb24g'@; put 'bShrZSl7YWU9a2V9KGNhKSx4LmZuPXlpLHgubWluPWZ1bmN0aW9uIHV1KCl7cmV0dXJuIGFyKCJpc0JlZm9yZSIsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx4Lm1heD1mdW5jdGlvbiBGaSgpe3JldHVybiBhcigiaXNBZnRlciIsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx4'@; put 'Lm5vdz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdz9EYXRlLm5vdygpOituZXcgRGF0ZX0seC51dGM9aix4LnVuaXg9ZnVuY3Rpb24gUGQoa2Upe3JldHVybiBjYSgxZTMqa2UpfSx4Lm1vbnRocz1mdW5jdGlvbiBIMShrZSwkZSl7cmV0dXJuIGhsKGtlLCRlLCJtb250aHMiKX0seC5pc0Rh'@; put 'dGU9SSx4LmxvY2FsZT1Ibyx4LmludmFsaWQ9VSx4LmR1cmF0aW9uPU1hLHguaXNNb21lbnQ9c2UseC53ZWVrZGF5cz1mdW5jdGlvbiBkOShrZSwkZSxtdCl7cmV0dXJuIGZ1KGtlLCRlLG10LCJ3ZWVrZGF5cyIpfSx4LnBhcnNlWm9uZT1mdW5jdGlvbiBMdygpe3JldHVybiBjYS5hcHBseShu'@; put 'dWxsLGFyZ3VtZW50cykucGFyc2Vab25lKCl9LHgubG9jYWxlRGF0YT1sdSx4LmlzRHVyYXRpb249ZHUseC5tb250aHNTaG9ydD1mdW5jdGlvbiBwbShrZSwkZSl7cmV0dXJuIGhsKGtlLCRlLCJtb250aHNTaG9ydCIpfSx4LndlZWtkYXlzTWluPWZ1bmN0aW9uIGdtKGtlLCRlLG10KXtyZXR1'@; put 'cm4gZnUoa2UsJGUsbXQsIndlZWtkYXlzTWluIil9LHguZGVmaW5lTG9jYWxlPXdjLHgudXBkYXRlTG9jYWxlPWZ1bmN0aW9uIHVpKGtlLCRlKXtpZihudWxsIT0kZSl7dmFyIG10LEx0LEd0PUhhO251bGwhPSRvW2tlXSYmbnVsbCE9JG9ba2VdLnBhcmVudExvY2FsZT8kb1trZV0uc2V0KEgo'@; put 'JG9ba2VdLl9jb25maWcsJGUpKToobnVsbCE9KEx0PXByKGtlKSkmJihHdD1MdC5fY29uZmlnKSwkZT1IKEd0LCRlKSxudWxsPT1MdCYmKCRlLmFiYnI9a2UpLChtdD1uZXcgTigkZSkpLnBhcmVudExvY2FsZT0kb1trZV0sJG9ba2VdPW10KSxIbyhrZSl9ZWxzZSBudWxsIT0kb1trZV0mJihu'@; put 'dWxsIT0kb1trZV0ucGFyZW50TG9jYWxlPygkb1trZV09JG9ba2VdLnBhcmVudExvY2FsZSxrZT09PUhvKCkmJkhvKGtlKSk6bnVsbCE9JG9ba2VdJiZkZWxldGUgJG9ba2VdKTtyZXR1cm4gJG9ba2VdfSx4LmxvY2FsZXM9ZnVuY3Rpb24gaHIoKXtyZXR1cm4gZygkbyl9LHgud2Vla2RheXNT'@; put 'aG9ydD1mdW5jdGlvbiBGZChrZSwkZSxtdCl7cmV0dXJuIGZ1KGtlLCRlLG10LCJ3ZWVrZGF5c1Nob3J0Iil9LHgubm9ybWFsaXplVW5pdHM9WGUseC5yZWxhdGl2ZVRpbWVSb3VuZGluZz1mdW5jdGlvbiB5bShrZSl7cmV0dXJuIHZvaWQgMD09PWtlP1owOiJmdW5jdGlvbiI9PXR5cGVvZiBr'@; put 'ZSYmKFowPWtlLCEwKX0seC5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQ9ZnVuY3Rpb24gd20oa2UsJGUpe3JldHVybiB2b2lkIDAhPT1SdVtrZV0mJih2b2lkIDA9PT0kZT9SdVtrZV06KFJ1W2tlXT0kZSwicyI9PT1rZSYmKFJ1LnNzPSRlLTEpLCEwKSl9LHguY2FsZW5kYXJGb3JtYXQ9ZnVuY3Rp'@; put 'b24gd3Ioa2UsJGUpe3ZhciBtdD1rZS5kaWZmKCRlLCJkYXlzIiwhMCk7cmV0dXJuIG10PC02PyJzYW1lRWxzZSI6bXQ8LTE/Imxhc3RXZWVrIjptdDwwPyJsYXN0RGF5IjptdDwxPyJzYW1lRGF5IjptdDwyPyJuZXh0RGF5IjptdDw3PyJuZXh0V2VlayI6InNhbWVFbHNlIn0seC5wcm90b3R5'@; put 'cGU9eWkseC5IVE1MNV9GTVQ9e0RBVEVUSU1FX0xPQ0FMOiJZWVlZLU1NLUREVEhIOm1tIixEQVRFVElNRV9MT0NBTF9TRUNPTkRTOiJZWVlZLU1NLUREVEhIOm1tOnNzIixEQVRFVElNRV9MT0NBTF9NUzoiWVlZWS1NTS1ERFRISDptbTpzcy5TU1MiLERBVEU6IllZWVktTU0tREQiLFRJTUU6'@; put 'IkhIOm1tIixUSU1FX1NFQ09ORFM6IkhIOm1tOnNzIixUSU1FX01TOiJISDptbTpzcy5TU1MiLFdFRUs6IkdHR0ctW1ddV1ciLE1PTlRIOiJZWVlZLU1NIn0seH0oKX0sNDQzMTY6YXQ9PnthdC5leHBvcnRzPWZ1bmN0aW9uIEllKEYsYWUseCl7ZnVuY3Rpb24gbShPLFIpe2lmKCFhZVtPXSl7'@; put 'aWYoIUZbT10pe2lmKGxlKXJldHVybiBsZShPLCEwKTt2YXIgSz1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitPKyInIik7dGhyb3cgSy5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixLfXZhciBJPWFlW09dPXtleHBvcnRzOnt9fTtGW09dWzBdLmNhbGwoSS5leHBvcnRzLGZ1bmN0'@; put 'aW9uKGspe3JldHVybiBtKEZbT11bMV1ba118fGspfSxJLEkuZXhwb3J0cyxJZSxGLGFlLHgpfXJldHVybiBhZVtPXS5leHBvcnRzfWZvcih2YXIgbGU9dm9pZCAwLE09MDtNPHgubGVuZ3RoO00rKyltKHhbTV0pO3JldHVybiBtfSh7MTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgp'@; put 'eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBl'@; put 'b2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1s'@; put 'ZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuYmc9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1tr'@; put 'XSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5E'@; put 'IixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkll'@; put 'LEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJiZyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1MDQxOCIsbWlsbGlv'@; put 'bjoiXHUwNDEwIixiaWxsaW9uOiJNIix0cmlsbGlvbjoiVCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MDQzYlx1MDQzMi4iLGNvZGU6IkJHTiJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xv'@; put 'YmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwyOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wi'@; put 'PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBN'@; put 'fSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcyku'@; put 'bnVtYnJvfHwoTS5udW1icm89e30pKS5jc0NaPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lm'@; put 'KEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6'@; put 'KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXts'@; put 'YW5ndWFnZVRhZzoiY3MtQ1oiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiXHhhMCIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJ0aXMuIixtaWxsaW9uOiJtaWwuIixiaWxsaW9uOiJtbGQuIix0cmlsbGlvbjoiYmlsLiJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4i'@; put 'LiJ9LHNwYWNlU2VwYXJhdGVkOiEwLGN1cnJlbmN5OntzeW1ib2w6IktcdTAxMGQiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJDWksifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3Jt'@; put 'YXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVj'@; put 'aW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2Fs'@; put 'bCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMzpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rp'@; put 'b24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9s'@; put 'LnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94'@; put 'OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZGFESz1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJ'@; put 'ZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIu'@; put 'ZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltm'@; put 'dW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImRhLURLIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidCIsbWlsbGlvbjoibWlvIixiaWxsaW9uOiJtaWEiLHRyaWxsaW9uOiJiIn0sb3JkaW5hbDpm'@; put 'dW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoia3IiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJES0sifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntm'@; put 'b3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNO'@; put 'b0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlz'@; put 'LHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sNDpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10'@; put 'eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3Rv'@; put 'dHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVv'@; put 'ZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZGVBVD1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZigh'@; put 'RSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0'@; put 'cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlv'@; put 'bihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImRlLUFUIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLGNvZGU6IkVVUiJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw1Oltm'@; put 'dW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24o'@; put 'TSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjpt'@; put 'KGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5kZUNIPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxl'@; put 'KE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIp'@; put 'O3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3Io'@; put 'dmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoiZGUtQ0giLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiJyIsZGVjaW1hbDoiLiJ9LGFiYnJl'@; put 'dmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6IkNIRiIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkNIRiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91'@; put 'c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIs'@; put 'bWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0'@; put 'ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw2OltmdW5jdGlvbihJ'@; put 'ZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJu'@; put 'IE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZv'@; put 'aWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5kZURFPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtm'@; put 'dW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYu'@; put 'Y29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1'@; put 'bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoiZGUtREUiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6'@; put 'e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LHNwYWNlU2VwYXJhdGVkOiEwLGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5'@; put 'Rm9ybWF0Ont0b3RhbExlbmd0aDo0LHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VT'@; put 'ZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2Vw'@; put 'YXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sNzpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9u'@; put 'KHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10'@; put 'eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0'@; put 'cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZGVMST1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lm'@; put 'KCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1Rf'@; put 'Rk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJ'@; put 'ZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImRlLUxJIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiciLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWls'@; put 'bGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJDSEYiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJDSEYifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5n'@; put 'dGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6'@; put 'ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEw'@; put 'LG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sODpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ug'@; put 'c3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3lt'@; put 'Ym9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigo'@; put 'TT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZWw9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYo'@; put 'IU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZh'@; put 'ciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJ'@; put 'PFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlbCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1MDNjNyIsbWlsbGlvbjoiXHUw'@; put 'M2I1IixiaWxsaW9uOiJcdTAzYjQiLHRyaWxsaW9uOiJcdTAzYzQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLGNvZGU6IkVVUiJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFs'@; put 'OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw5OltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10'@; put 'eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSko'@; put 'bGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVt'@; put 'YnJvfHwoTS5udW1icm89e30pKS5lbkFVPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEsp'@; put 'cmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1b'@; put 'a11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5n'@; put 'dWFnZVRhZzoiZW4tQVUiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7dmFyIHo9UiUxMDtyZXR1cm4gMT09fn4o'@; put 'UiUxMDAvMTApPyJ0aCI6MT09PXo/InN0IjoyPT09ej8ibmQiOjM9PT16PyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiJCIscG9zaXRpb246InByZWZpeCIsY29kZToiQVVEIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBh'@; put 'cmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOnt0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYToyfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJy'@; put 'ZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5Iix0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9i'@; put 'YWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDEwOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wi'@; put 'PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBN'@; put 'fSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcyku'@; put 'bnVtYnJvfHwoTS5udW1icm89e30pKS5lbkdCPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lm'@; put 'KEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6'@; put 'KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXts'@; put 'YW5ndWFnZVRhZzoiZW4tR0IiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7dmFyIHo9UiUxMDtyZXR1cm4gMT09'@; put 'fn4oUiUxMDAvMTApPyJ0aCI6MT09PXo/InN0IjoyPT09ej8ibmQiOjM9PT16PyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiXHhhMyIscG9zaXRpb246InByZWZpeCIsY29kZToiR0JQIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3Bh'@; put 'Y2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5Iix0aG91c2FuZFNlcGFyYXRlZDohMCxzcGFjZVNlcGFyYXRl'@; put 'ZDohMCxtYW50aXNzYToyfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5Iix0aG91c2FuZFNlcGFyYXRlZDohMCxzcGFjZVNlcGFyYXRlZDohMCxtYW50aXNz'@; put 'YTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDExOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3Qi'@; put 'O2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0u'@; put 'Y29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVv'@; put 'ZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5lbklFPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2td'@; put 'KXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1P'@; put 'W2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxl'@; put 'bmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoiZW4tSUUiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9u'@; put 'OiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7dmFyIHo9UiUxMDtyZXR1cm4gMT09fn4oUiUxMDAvMTApPyJ0aCI6MT09PXo/InN0IjoyPT09ej8ibmQiOjM9PT16PyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixjb2RlOiJFVVIifX19LHt9XX0se30s'@; put 'WzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMTI6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7'@; put 'cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5'@; put 'bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2lu'@; put 'ZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmVuTlo9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlv'@; put 'biI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319'@; put 'O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0p'@; put 'O3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlbi1OWiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0'@; put 'In0sb3JkaW5hbDpmdW5jdGlvbihSKXt2YXIgej1SJTEwO3JldHVybiAxPT1+fihSJTEwMC8xMCk/InRoIjoxPT09ej8ic3QiOjI9PT16PyJuZCI6Mz09PXo/InJkIjoidGgifSxjdXJyZW5jeTp7c3ltYm9sOiIkIixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJOWkQifSxjdXJyZW5jeUZvcm1h'@; put 'dDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3Rob3VzYW5kU2Vw'@; put 'YXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0s'@; put 'e30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMTM6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShs'@; put 'ZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09'@; put 'PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/'@; put 'd2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmVuWkE9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6'@; put 'e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJb'@; put 'SV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlbi1aQSIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im0iLGJpbGxpb246ImIiLHRyaWxsaW9u'@; put 'OiJ0In0sb3JkaW5hbDpmdW5jdGlvbihSKXt2YXIgej1SJTEwO3JldHVybiAxPT1+fihSJTEwMC8xMCk/InRoIjoxPT09ej8ic3QiOjI9PT16PyJuZCI6Mz09PXo/InJkIjoidGgifSxjdXJyZW5jeTp7c3ltYm9sOiJSIixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJaQVIifSxjdXJyZW5jeUZv'@; put 'cm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3Rob3VzYW5k'@; put 'U2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9'@; put 'XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMTQ6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24g'@; put 'bShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rv'@; put 'cj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwi'@; put 'dSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmVzQVI9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9y'@; put 'dHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6'@; put 'KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlcy1BUiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1tIixiaWxsaW9uOiJiIix0cmls'@; put 'bGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7dmFyIHo9UiUxMDtyZXR1cm4gMT09PXp8fDM9PT16PyJlciI6Mj09PXo/ImRvIjo3PT09enx8MD09PXo/Im1vIjo4PT09ej8idm8iOjk9PT16PyJubyI6InRvIn0sY3VycmVuY3k6e3N5bWJvbDoiJCIscG9zaXRpb246InBvc3RmaXgiLGNv'@; put 'ZGU6IkFSUyJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhU'@; put 'd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7'@; put 'b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUi'@; put 'P3dpbmRvdzp7fSl9LHt9XSwxNTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1'@; put 'cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9p'@; put 'ZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZXNDTD1sZSgpfShmdW5jdGlv'@; put 'bigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90'@; put 'IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJl'@; put 'dHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImVzLUNMIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6'@; put 'Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibW0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbihSKXt2YXIgej1SJTEwO3JldHVybiAxPT09enx8Mz09PXo/ImVyIjoyPT09ej8iZG8iOjc9PT16fHwwPT09ej8i'@; put 'bW8iOjg9PT16PyJ2byI6OT09PXo/Im5vIjoidG8ifSxjdXJyZW5jeTp7c3ltYm9sOiIkIixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJDTFAifSxjdXJyZW5jeUZvcm1hdDp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFs'@; put 'TGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRp'@; put 'c3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwi'@; put 'dSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwxNjpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYi'@; put 'c3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0'@; put 'eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxm'@; put 'OnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZXNDTz1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihr'@; put 'LCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXty'@; put 'ZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhw'@; put 'b3J0cz17bGFuZ3VhZ2VUYWc6ImVzLUNPIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibW0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbihSKXt2YXIgej1SJTEwO3Jl'@; put 'dHVybiAxPT09enx8Mz09PXo/ImVyIjoyPT09ej8iZG8iOjc9PT16fHwwPT09ej8ibW8iOjg9PT16PyJ2byI6OT09PXo/Im5vIjoidG8ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJFVVIifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBh'@; put 'cmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3Nh'@; put 'OjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRo'@; put 'b3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMTc6W2Z1bmN0aW9uKEllLEYsYWUp'@; put 'eyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1'@; put 'bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09'@; put 'Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmVzQ1I9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9u'@; put 'IHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJN'@; put 'T0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24i'@; put 'PT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlcy1DUiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNh'@; put 'bmQ6ImsiLG1pbGxpb246Im1tIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7dmFyIHo9UiUxMDtyZXR1cm4gMT09PXp8fDM9PT16PyJlciI6Mj09PXo/ImRvIjo3PT09enx8MD09PXo/Im1vIjo4PT09ej8idm8iOjk9PT16PyJubyI6InRvIn0sY3VycmVu'@; put 'Y3k6e3N5bWJvbDoiXHUyMGExIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiQ1JDIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6'@; put 'NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0'@; put 'aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9i'@; put 'YWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDE4OltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wi'@; put 'PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBN'@; put 'fSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcyku'@; put 'bnVtYnJvfHwoTS5udW1icm89e30pKS5lc0VTPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lm'@; put 'KEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6'@; put 'KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXts'@; put 'YW5ndWFnZVRhZzoiZXMtRVMiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtbSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKFIpe3ZhciB6PVIlMTA7cmV0dXJuIDE9'@; put 'PT16fHwzPT09ej8iZXIiOjI9PT16PyJkbyI6Nz09PXp8fDA9PT16PyJtbyI6OD09PXo/InZvIjo5PT09ej8ibm8iOiJ0byJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDoh'@; put 'MCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFj'@; put 'ZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRT'@; put 'ZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwxOTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0'@; put 'aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24i'@; put 'PT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhw'@; put 'b3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZXNNWD1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUp'@; put 'e2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9O'@; put 'T1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImVzLU1YIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIs'@; put 'bWlsbGlvbjoibW0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbihSKXt2YXIgej1SJTEwO3JldHVybiAxPT09enx8Mz09PXo/ImVyIjoyPT09ej8iZG8iOjc9PT16fHwwPT09ej8ibW8iOjg9PT16PyJ2byI6OT09PXo/Im5vIjoidG8ifSxjdXJyZW5jeTp7c3lt'@; put 'Ym9sOiIkIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiTVhOIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFy'@; put 'YXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFy'@; put 'YXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNl'@; put 'bGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDIwOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3lt'@; put 'Ym9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5j'@; put 'dGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5u'@; put 'dW1icm89e30pKS5lc05JPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEso'@; put 'aywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18'@; put 'fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoi'@; put 'ZXMtTkkiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtbSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKFIpe3ZhciB6PVIlMTA7cmV0dXJuIDE9PT16fHwzPT09ej8i'@; put 'ZXIiOjI9PT16PyJkbyI6Nz09PXp8fDA9PT16PyJtbyI6OD09PXo/InZvIjo5PT09ej8ibm8iOiJ0byJ9LGN1cnJlbmN5OntzeW1ib2w6IkMkIixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJOSU8ifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxz'@; put 'cGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhv'@; put 'dXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRp'@; put 'c3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMjE6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmlj'@; put 'dCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm'@; put 'TS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlw'@; put 'ZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmVzUEU9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1b'@; put 'a10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBC'@; put 'PU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIu'@; put 'bGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlcy1QRSIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1tIixiaWxs'@; put 'aW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7dmFyIHo9UiUxMDtyZXR1cm4gMT09PXp8fDM9PT16PyJlciI6Mj09PXo/ImRvIjo3PT09enx8MD09PXo/Im1vIjo4PT09ej8idm8iOjk9PT16PyJubyI6InRvIn0sY3VycmVuY3k6e3N5bWJvbDoiUy8uIixwb3NpdGlv'@; put 'bjoicHJlZml4Iixjb2RlOiJQRU4ifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6'@; put 'ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0'@; put 'aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBl'@; put 'b2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMjI6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVu'@; put 'Y3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsi'@; put 'b2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmVzUFI9'@; put 'bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcg'@; put 'RXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRz'@; put 'LGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlcy1QUiIsZGVsaW1pdGVy'@; put 'czp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1tIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7dmFyIHo9UiUxMDtyZXR1cm4gMT09PXp8fDM9PT16PyJlciI6Mj09PXo/ImRvIjo3'@; put 'PT09enx8MD09PXo/Im1vIjo4PT09ej8idm8iOjk9PT16PyJubyI6InRvIn0sY3VycmVuY3k6e3N5bWJvbDoiJCIscG9zaXRpb246InByZWZpeCIsY29kZToiVVNEIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAs'@; put 'YXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEw'@; put 'fSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9'@; put 'LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDIzOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUp'@; put 'e3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1T'@; put 'eW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dp'@; put 'bmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5lc1NWPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rp'@; put 'b24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9'@; put 'fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ld'@; put 'KTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoiZXMtU1YiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtbSIsYmlsbGlvbjoiYiIsdHJpbGxpb246'@; put 'InQifSxvcmRpbmFsOmZ1bmN0aW9uKFIpe3ZhciB6PVIlMTA7cmV0dXJuIDE9PT16fHwzPT09ej8iZXIiOjI9PT16PyJkbyI6Nz09PXp8fDA9PT16PyJtbyI6OD09PXo/InZvIjo5PT09ej8ibm8iOiJ0byJ9LGN1cnJlbmN5OntzeW1ib2w6IiQiLHBvc2l0aW9uOiJwcmVmaXgiLGNvZGU6IlNW'@; put 'QyJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNp'@; put 'bWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0'@; put 'OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRv'@; put 'dzp7fSl9LHt9XSwyNDpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlw'@; put 'ZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09'@; put 'YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZXRFRT1sZSgpfShmdW5jdGlvbigpe3Jl'@; put 'dHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQg'@; put 'bW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBP'@; put 'W2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImV0LUVFIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRl'@; put 'Y2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidHVoIixtaWxsaW9uOiJtbG4iLGJpbGxpb246Im1sZCIsdHJpbGxpb246InRybCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6'@; put 'IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29E'@; put 'ZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0'@; put 'cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dp'@; put 'bmRvdzp7fSl9LHt9XSwyNTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4g'@; put 'dHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAw'@; put 'PT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZmFJUj1sZSgpfShmdW5jdGlvbigp'@; put 'e3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZp'@; put 'bmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVy'@; put 'biBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImZhLUlSIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ilx1'@; put 'MDYwYyIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTA2NDdcdTA2MzJcdTA2MjdcdTA2MzEiLG1pbGxpb246Ilx1MDY0NVx1MDZjY1x1MDY0NFx1MDZjY1x1MDY0OFx1MDY0NiIsYmlsbGlvbjoiXHUwNjQ1XHUwNmNjXHUwNjQ0XHUwNmNjXHUwNjI3XHUwNjMxXHUw'@; put 'NjJmIix0cmlsbGlvbjoiXHUwNjJhXHUwNjMxXHUwNmNjXHUwNjQ0XHUwNmNjXHUwNjQ4XHUwNjQ2In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiJcdTA2MjdcdTA2NDUifSxjdXJyZW5jeTp7c3ltYm9sOiJcdWZkZmMiLGNvZGU6IklSUiJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxs'@; put 'KHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwyNjpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rp'@; put 'b24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9s'@; put 'LnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94'@; put 'OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuZmlGST1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJ'@; put 'ZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIu'@; put 'ZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltm'@; put 'dW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6ImZpLUZJIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoiTSIsYmlsbGlvbjoiRyIsdHJpbGxpb246IlQifSxvcmRpbmFsOmZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJFVVIifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntm'@; put 'b3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNO'@; put 'b0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlz'@; put 'LHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMjc6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09'@; put 'dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90'@; put 'b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBl'@; put 'b2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmZpbFBIPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lm'@; put 'KCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBv'@; put 'cnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0'@; put 'aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoiZmlsLVBIIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9u'@; put 'KFIpe3ZhciB6PVIlMTA7cmV0dXJuIDE9PX5+KFIlMTAwLzEwKT8idGgiOjE9PT16PyJzdCI6Mj09PXo/Im5kIjozPT09ej8icmQiOiJ0aCJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBiMSIsY29kZToiUEhQIn19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFs'@; put 'PCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDI4OltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wm'@; put 'JiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wi'@; put 'OnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3Nl'@; put 'bGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5mckNBPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBq'@; put 'KGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkp'@; put 'e3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5l'@; put 'eHBvcnRzPXtsYW5ndWFnZVRhZzoiZnItQ0EiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJNIixiaWxsaW9uOiJHIix0cmlsbGlvbjoiVCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7cmV0dXJuIDE9PT1S'@; put 'PyJlciI6Ilx4ZThtZSJ9LHNwYWNlU2VwYXJhdGVkOiEwLGN1cnJlbmN5OntzeW1ib2w6IiQiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJVU0QifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEw'@; put 'fSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRo'@; put 'b3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/'@; put 'c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMjk6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRl'@; put 'cmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxl'@; put 'KXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17'@; put 'fSkpLmZyQ0g9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2'@; put 'YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIs'@; put 'Qi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJmci1DSCIs'@; put 'ZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbihSKXtyZXR1cm4gMT09PVI/ImVyIjoiXHhlOG1lIn0sY3VycmVuY3k6e3N5'@; put 'bWJvbDoiQ0hGIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiQ0hGIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNl'@; put 'cGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNl'@; put 'cGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9m'@; put 'IHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDMwOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2Yg'@; put 'U3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFm'@; put 'dW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwo'@; put 'TS5udW1icm89e30pKS5mckZSPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJu'@; put 'IEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1b'@; put 'WV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRh'@; put 'ZzoiZnItRlIiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oUil7cmV0dXJuIDE9PT1SPyJlciI6Ilx4ZThtZSJ9LGN1'@; put 'cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVu'@; put 'Z3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3Nh'@; put 'OjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/'@; put 'Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwzMTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3lt'@; put 'Ym9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBl'@; put 'b2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRo'@; put 'aXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuaGVJTD1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEw'@; put 'KTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1'@; put 'cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0'@; put 'cz17bGFuZ3VhZ2VUYWc6ImhlLUlMIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHUwNWQwXHUwNWRjXHUwNWUzIixtaWxsaW9uOiJcdTA1ZGVcdTA1ZGNcdTA1ZDlcdTA1ZDVcdTA1ZGYiLGJpbGxpb246Ilx1MDVkMVx1'@; put 'MDVkY1x1MDVkOVx1MDVkNVx1MDVkZiIsdHJpbGxpb246Ilx1MDVkOFx1MDVlOFx1MDVkOVx1MDVkY1x1MDVkOVx1MDVkNVx1MDVkZiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYSIscG9zaXRpb246InByZWZpeCIsY29kZToiSUxTIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIifSxj'@; put 'dXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6'@; put 'e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3Vy'@; put 'cmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30p'@; put 'fSx7fV0sMzI6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBN'@; put 'fTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1'@; put 'bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmh1SFU9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'ZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVs'@; put 'ZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5l'@; put 'eHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJodS1IVSIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFs'@; put 'OiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6IkUiLG1pbGxpb246Ik0iLGJpbGxpb246Ik1yZCIsdHJpbGxpb246IlQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJGdCIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkhVRiJ9LGN1cnJlbmN5'@; put 'Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0'@; put 'OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIs'@; put 'c3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwz'@; put 'MzpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0'@; put 'aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5l'@; put 'ZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuaWQ9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24g'@; put 'bGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyIn'@; put 'Iik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZv'@; put 'cih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJpZCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2'@; put 'aWF0aW9uczp7dGhvdXNhbmQ6InIiLG1pbGxpb246ImoiLGJpbGxpb246Im0iLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiUnAiLGNvZGU6IklEUiJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGds'@; put 'b2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSwzNDpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3lt'@; put 'Ym9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3lt'@; put 'Ym9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1'@; put 'Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuaXRDSD1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1'@; put 'cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlv'@; put 'bihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8p'@; put 'e00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6Iml0LUNIIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiciLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoibWlsYSIsbWlsbGlvbjoibWlsIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4iXHhiMCJ9LGN1cnJlbmN5OntzeW1ib2w6IkNIRiIsY29kZToiQ0hGIn19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDM1OltmdW5j'@; put 'dGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7'@; put 'cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFl'@; put 'KSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5pdElUPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0s'@; put 'TyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Ro'@; put 'cm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFy'@; put 'IEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoiaXQtSVQiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlh'@; put 'dGlvbnM6e3Rob3VzYW5kOiJtaWxhIixtaWxsaW9uOiJtaWwiLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiJceGJhIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3Jt'@; put 'YXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1'@; put 'cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFj'@; put 'ZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDM2Oltm'@; put 'dW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24o'@; put 'TSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjpt'@; put 'KGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5qYUpQPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxl'@; put 'KE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIp'@; put 'O3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3Io'@; put 'dmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoiamEtSlAiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJl'@; put 'dmlhdGlvbnM6e3Rob3VzYW5kOiJcdTUzNDMiLG1pbGxpb246Ilx1NzY3ZVx1NGUwNyIsYmlsbGlvbjoiXHU1MzQxXHU1MTA0Iix0cmlsbGlvbjoiXHU1MTQ2In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiXHhhNSIscG9zaXRpb246InByZWZpeCIs'@; put 'Y29kZToiSlBZIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0'@; put 'aFR3b0RlY2ltYWxzOnt0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYToyfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5Iix0aG91c2FuZFNlcGFyYXRl'@; put 'ZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDM3OltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7'@; put 'InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxl'@; put 'KCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5rb0tSPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9b'@; put 'a10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VO'@; put 'RCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJ'@; put 'ZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoia28tS1IiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdWNjOWMiLG1p'@; put 'bGxpb246Ilx1YmMzMVx1YjljYyIsYmlsbGlvbjoiXHVjMmVkXHVjNWI1Iix0cmlsbGlvbjoiXHVjNzdjXHVjODcwIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGE5Iixjb2RlOiJLUFcifX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0'@; put 'aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMzg6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5w'@; put 'cm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0'@; put 'eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLmx2TFY9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7'@; put 'aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4'@; put 'cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVu'@; put 'Y3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJsdi1MViIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6InRcdTAxNmJrc3QuIixtaWxsaW9uOiJtaWxqLiIsYmlsbGlvbjoibWxqcmQuIix0cmlsbGlvbjoi'@; put 'dHJpbGouIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAs'@; put 'YXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEw'@; put 'fSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9'@; put 'LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDM5OltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUp'@; put 'e3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1T'@; put 'eW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dp'@; put 'bmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5uYk5PPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rp'@; put 'b24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9'@; put 'fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ld'@; put 'KTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoibmItTk8iLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJ0IixtaWxsaW9uOiJNIixiaWxsaW9uOiJtZCIsdHJpbGxpb246'@; put 'ImIifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIiJ9LGN1cnJlbmN5OntzeW1ib2w6ImtyIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiTk9LIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZToh'@; put 'MH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0'@; put 'aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9'@; put 'KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDQwOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybiht'@; put 'PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0h'@; put 'PT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lk'@; put 'IDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5uYj1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5j'@; put 'YWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9'@; put 'KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6Im5iIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidCIsbWlsbGlvbjoibWlsIixiaWxsaW9uOiJtaWEiLHRyaWxsaW9uOiJiIn0sb3JkaW5h'@; put 'bDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoia3IiLGNvZGU6Ik5PSyJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9'@; put 'LHt9XSw0MTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19'@; put 'OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVu'@; put 'ZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkubmxCRT1sZSgpfShmdW5jdGlvbigpe3JldHVybiBm'@; put 'dW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxl'@; put 'ICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4'@; put 'cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6Im5sLUJFIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6'@; put 'IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibWxuIixiaWxsaW9uOiJtbGQiLHRyaWxsaW9uOiJibG4ifSxvcmRpbmFsOmZ1bmN0aW9uKFIpe3ZhciB6PVIlMTAwO3JldHVybiAwIT09UiYmejw9MXx8OD09PXp8fDIwPD16PyJzdGUiOiJkZSJ9LGN1cnJlbmN5Ontz'@; put 'eW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3Bh'@; put 'Y2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNh'@; put 'bmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5'@; put 'cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw0MjpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlw'@; put 'ZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxl'@; put 'KX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJy'@; put 'b3x8KE0ubnVtYnJvPXt9KSkubmxOTD1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJl'@; put 'dHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2td'@; put 'WzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3Vh'@; put 'Z2VUYWc6Im5sLU5MIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibWxuIixiaWxsaW9uOiJtcmQiLHRyaWxsaW9uOiJibG4ifSxvcmRpbmFsOmZ1bmN0aW9uKFIpe3ZhciB6PVIlMTAwO3JldHVybiAw'@; put 'IT09UiYmejw9MXx8OD09PXp8fDIwPD16PyJzdGUiOiJkZSJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InByZWZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZl'@; put 'cmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxm'@; put 'dWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsx'@; put 'XSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDQzOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3Jl'@; put 'dHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1i'@; put 'b2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRv'@; put 'dzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5ubj1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09'@; put 'dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtr'@; put 'XVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0'@; put 'dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6Im5uIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidCIsbWlsbGlvbjoibWlsIixiaWxsaW9uOiJtaWEiLHRyaWxsaW9uOiJiIn0s'@; put 'b3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoia3IiLGNvZGU6Ik5PSyJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRv'@; put 'dzp7fSl9LHt9XSw0NDpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlw'@; put 'ZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09'@; put 'YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkucGxQTD1sZSgpfShmdW5jdGlvbigpe3Jl'@; put 'dHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQg'@; put 'bW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBP'@; put 'W2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6InBsLVBMIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRl'@; put 'Y2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidHlzLiIsbWlsbGlvbjoibWxuIixiaWxsaW9uOiJtbGQiLHRyaWxsaW9uOiJibG4ifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiIgelx1MDE0MiIscG9zaXRpb246InBvc3RmaXgiLGNv'@; put 'ZGU6IlBMTiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhU'@; put 'd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7'@; put 'b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUi'@; put 'P3dpbmRvdzp7fSl9LHt9XSw0NTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1'@; put 'cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9p'@; put 'ZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkucHRCUj1sZSgpfShmdW5jdGlv'@; put 'bigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90'@; put 'IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJl'@; put 'dHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6InB0LUJSIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6'@; put 'Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoibWlsIixtaWxsaW9uOiJtaWxoXHhmNWVzIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iXHhiYSJ9LGN1cnJlbmN5OntzeW1ib2w6IlIkIixwb3NpdGlvbjoicHJlZml4'@; put 'Iixjb2RlOiJCUkwifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxX'@; put 'aXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1h'@; put 'bHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93'@; put 'PCJ1Ij93aW5kb3c6e30pfSx7fV0sNDY6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7'@; put 'cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09'@; put 'KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLnB0UFQ9bGUoKX0oZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNh'@; put 'bm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxS'@; put 'KX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJwdC1QVCIsZGVsaW1pdGVyczp7dGhvdXNh'@; put 'bmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiJceGJhIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoicG9zdGZpeCIs'@; put 'Y29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0'@; put 'aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxz'@; put 'OntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV19LHt9LFsxXSkoMSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwi'@; put 'dSI/d2luZG93Ont9KX0se31dLDQ3OltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3Jl'@; put 'dHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2'@; put 'b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5yb1JPPWxlKCl9KGZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5u'@; put 'b3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9'@; put 'cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoicm8tUk8iLGRlbGltaXRlcnM6e3Rob3VzYW5k'@; put 'czoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJtaWkiLG1pbGxpb246Im1pbCIsYmlsbGlvbjoibWxkIix0cmlsbGlvbjoiYmxuIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiIGxlaSIscG9zaXRpb246InBvc3RmaXgi'@; put 'LGNvZGU6IlJPTiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdp'@; put 'dGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFs'@; put 'czp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8'@; put 'InUiP3dpbmRvdzp7fSl9LHt9XSw0ODpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXty'@; put 'ZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0o'@; put 'dm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkucm89bGUoKX0oZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5v'@; put 'dCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1y'@; put 'ZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJyby1STyIsZGVsaW1pdGVyczp7dGhvdXNhbmRz'@; put 'OiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Im1paSIsbWlsbGlvbjoibWlsIixiaWxsaW9uOiJtbGQiLHRyaWxsaW9uOiJibG4ifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiIgbGVpIixwb3NpdGlvbjoicG9zdGZpeCIs'@; put 'Y29kZToiUk9OIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0'@; put 'aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxz'@; put 'OntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19fSx7fV0sMjpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9bGUoIi4vcm8tUk8iKX0seyIuL3JvLVJPIjoxfV19LHt9LFsyXSkoMil9KX0pLmNhbGwodGhpcyx0'@; put 'eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDQ5OltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVybihtPSJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wmJk0hPT1TeW1ib2wucHJvdG90'@; put 'eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2b2lkIDAhPT14P3g6dHlwZW9m'@; put 'IHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5ydVJVPWxlKCl9KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFF'@; put 'JiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRz'@; put 'LGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJuIE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9u'@; put 'KGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoicnUtUlUiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTA0NDJcdTA0NGJcdTA0NDEuIixtaWxsaW9uOiJcdTA0M2NcdTA0M2JcdTA0M2QiLGJpbGxpb246ImIi'@; put 'LHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUwNDQwXHUwNDQzXHUwNDMxLiIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IlJVQiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0'@; put 'LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0'@; put 'aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFu'@; put 'dGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw1MDpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3Ry'@; put 'aWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9s'@; put 'JiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10'@; put 'eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkucnVVQT1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZigh'@; put 'TVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFy'@; put 'IEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8'@; put 'Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6InJ1LVVBIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHUwNDQyXHUwNDRiXHUwNDQx'@; put 'LiIsbWlsbGlvbjoiXHUwNDNjXHUwNDNiXHUwNDNkIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBiNCIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IlVBSCJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91'@; put 'c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIs'@; put 'bWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0'@; put 'ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw1MTpbZnVuY3Rpb24o'@; put 'SWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVy'@; put 'biBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2'@; put 'b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuc2tTSz1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7'@; put 'ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBW'@; put 'LmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6InNrLVNLIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ilx4YTAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRp'@; put 'b25zOnt0aG91c2FuZDoidGlzLiIsbWlsbGlvbjoibWlsLiIsYmlsbGlvbjoibWxkLiIsdHJpbGxpb246ImJpbC4ifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxzcGFjZVNlcGFyYXRlZDohMCxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2Rl'@; put 'OiJFVVIifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdv'@; put 'RGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291'@; put 'dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93'@; put 'aW5kb3c6e30pfSx7fV0sNTI6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJu'@; put 'IHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQg'@; put 'MD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLnNsPWxlKCl9KGZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIGZ1bmN0aW9uIGxlKE0sTyxSKXtmdW5jdGlvbiB6KGssRSl7aWYoIU9ba10pe2lmKCFNW2tdKXt2YXIgaj0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllO2lmKCFFJiZqKXJldHVybiBqKGssITApO2lmKEspcmV0dXJuIEsoaywhMCk7dmFyIFY9bmV3IEVycm9yKCJDYW5ub3QgZmlu'@; put 'ZCBtb2R1bGUgJyIraysiJyIpO3Rocm93IFYuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVn12YXIgQj1PW2tdPXtleHBvcnRzOnt9fTtNW2tdWzBdLmNhbGwoQi5leHBvcnRzLGZ1bmN0aW9uKFkpe3JldHVybiB6KE1ba11bMV1bWV18fFkpfSxCLEIuZXhwb3J0cyxsZSxNLE8sUil9cmV0dXJu'@; put 'IE9ba10uZXhwb3J0c31mb3IodmFyIEs9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZSxJPTA7STxSLmxlbmd0aDtJKyspeihSW0ldKTtyZXR1cm4gen0oezE6W2Z1bmN0aW9uKGxlLE0sTyl7TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoic2wiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVj'@; put 'aW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJ0aXMuIixtaWxsaW9uOiJtaWwuIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIsY29kZToiRVVSIn19fSx7fV19LHt9LFsxXSko'@; put 'MSl9KX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dLDUzOltmdW5jdGlvbihJZSxGLGFlKXsoZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0obGUpe3JldHVy'@; put 'bihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE0pe3JldHVybiB0eXBlb2YgTX06ZnVuY3Rpb24oTSl7cmV0dXJuIE0mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk0uY29uc3RydWN0b3I9PT1TeW1ib2wm'@; put 'Jk0hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBNfSkobGUpfSFmdW5jdGlvbihsZSl7dmFyIE07Im9iamVjdCI9PSh2b2lkIDA9PT1hZT8idW5kZWZpbmVkIjptKGFlKSkmJnZvaWQgMCE9PUY/Ri5leHBvcnRzPWxlKCk6KChNPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp2'@; put 'b2lkIDAhPT14P3g6dHlwZW9mIHNlbGY8InUiP3NlbGY6dGhpcykubnVtYnJvfHwoTS5udW1icm89e30pKS5zckN5cmxSUz1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07'@; put 'TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7'@; put 'cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6InNyLUN5cmwtUlMiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTA0NDJcdTA0NGJcdTA0NDEuIixtaWxsaW9uOiJcdTA0'@; put 'M2NcdTA0M2JcdTA0M2QiLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiUlNEIixjb2RlOiJSU0QifX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0'@; put 'eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sNTQ6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5'@; put 'cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShs'@; put 'ZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1i'@; put 'cm98fChNLm51bWJybz17fSkpLnN2U0U9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSyly'@; put 'ZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtr'@; put 'XVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1'@; put 'YWdlVGFnOiJzdi1TRSIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6InQiLG1pbGxpb246Ik0iLGJpbGxpb246Im1kIix0cmlsbGlvbjoidG1kIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIifSxjdXJyZW5jeTp7c3lt'@; put 'Ym9sOiJrciIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IlNFSyJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBh'@; put 'cmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBh'@; put 'cmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBz'@; put 'ZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw1NTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5'@; put 'bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVu'@; put 'Y3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0u'@; put 'bnVtYnJvPXt9KSkudGhUSD1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBL'@; put 'KGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ld'@; put 'fHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6'@; put 'InRoLVRIIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHUwZTFlXHUwZTMxXHUwZTE5IixtaWxsaW9uOiJcdTBlMjVcdTBlNDlcdTBlMzJcdTBlMTkiLGJpbGxpb246Ilx1MGUxZVx1MGUzMVx1MGUxOVx1MGUyNVx1MGU0'@; put 'OVx1MGUzMlx1MGUxOSIsdHJpbGxpb246Ilx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOSJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MGUzZiIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IlRIQiJ9LGN1'@; put 'cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7'@; put 'b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJy'@; put 'ZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9'@; put 'LHt9XSw1NjpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19'@; put 'OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVu'@; put 'ZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkudHJUUj1sZSgpfShmdW5jdGlvbigpe3JldHVybiBm'@; put 'dW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxl'@; put 'ICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4'@; put 'cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe3ZhciBSPXsxOiInaW5jaSIsNToiJ2luY2kiLDg6IidpbmNpIiw3MDoiJ2luY2kiLDgwOiInaW5jaSIsMjoiJ25j'@; put 'aSIsNzoiJ25jaSIsMjA6IiduY2kiLDUwOiInbmNpIiwzOiInXHhmY25jXHhmYyIsNDoiJ1x4ZmNuY1x4ZmMiLDEwMDoiJ1x4ZmNuY1x4ZmMiLDY6IiduY1x1MDEzMSIsOToiJ3VuY3UiLDEwOiIndW5jdSIsMzA6Iid1bmN1Iiw2MDoiJ1x1MDEzMW5jXHUwMTMxIiw5MDoiJ1x1MDEzMW5jXHUw'@; put 'MTMxIn07TS5leHBvcnRzPXtsYW5ndWFnZVRhZzoidHItVFIiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJiaW4iLG1pbGxpb246Im1pbHlvbiIsYmlsbGlvbjoibWlseWFyIix0cmlsbGlvbjoidHJpbHlvbiJ9LG9yZGlu'@; put 'YWw6ZnVuY3Rpb24oeil7aWYoMD09PXopcmV0dXJuIidcdTAxMzFuY1x1MDEzMSI7dmFyIEs9eiUxMDtyZXR1cm4gUltLXXx8Ult6JTEwMC1LXXx8UlsxMDA8PXo/MTAwOm51bGxdfSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYmEiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJUUlkifSxjdXJy'@; put 'ZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291'@; put 'dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVu'@; put 'Y3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7'@; put 'fV0sNTc6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpm'@; put 'dW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRl'@; put 'ZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLnVrVUE9bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVu'@; put 'Y3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAn'@; put 'IitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBv'@; put 'cnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJ1ay1VQSIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIs'@; put 'In0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1MDQ0Mlx1MDQzOFx1MDQ0MS4iLG1pbGxpb246Ilx1MDQzY1x1MDQzYlx1MDQzZCIsYmlsbGlvbjoiXHUwNDNjXHUwNDNiXHUwNDQwXHUwNDM0Iix0cmlsbGlvbjoiXHUwNDMxXHUwNDNiXHUwNDNkIn0sb3JkaW5hbDpmdW5jdGlvbigpe3Jl'@; put 'dHVybiIifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYjQiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJVQUgifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRz'@; put 'Ont0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5'@; put 'OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBn'@; put 'bG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sNTg6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5'@; put 'bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5'@; put 'bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9uKGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwi'@; put 'dSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJybz17fSkpLnpoQ049bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0'@; put 'dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEwKTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rp'@; put 'b24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxP'@; put 'KXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJ6aC1DTiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1NTM0MyIsbWlsbGlvbjoiXHU3NjdlXHU0ZTA3IixiaWxsaW9uOiJcdTUzNDFcdTRlYmYiLHRyaWxsaW9uOiJcdTUx'@; put 'NDYifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJceGE1Iixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJDTlkifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdl'@; put 'OiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToy'@; put 'LHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwi'@; put 'dSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sNTk6W2Z1bmN0aW9uKEllLEYsYWUpeyhmdW5jdGlvbih4KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShsZSl7cmV0dXJuKG09ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wu'@; put 'aXRlcmF0b3I/ZnVuY3Rpb24oTSl7cmV0dXJuIHR5cGVvZiBNfTpmdW5jdGlvbihNKXtyZXR1cm4gTSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE19KShsZSl9IWZ1bmN0aW9u'@; put 'KGxlKXt2YXIgTTsib2JqZWN0Ij09KHZvaWQgMD09PWFlPyJ1bmRlZmluZWQiOm0oYWUpKSYmdm9pZCAwIT09Rj9GLmV4cG9ydHM9bGUoKTooKE09dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnZvaWQgMCE9PXg/eDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0aGlzKS5udW1icm98fChNLm51bWJy'@; put 'bz17fSkpLnpoTU89bGUoKX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbGUoTSxPLFIpe2Z1bmN0aW9uIHooayxFKXtpZighT1trXSl7aWYoIU1ba10pe3ZhciBqPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWU7aWYoIUUmJmopcmV0dXJuIGooaywhMCk7aWYoSylyZXR1cm4gSyhrLCEw'@; put 'KTt2YXIgVj1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitrKyInIik7dGhyb3cgVi5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixWfXZhciBCPU9ba109e2V4cG9ydHM6e319O01ba11bMF0uY2FsbChCLmV4cG9ydHMsZnVuY3Rpb24oWSl7cmV0dXJuIHooTVtrXVsxXVtZXXx8WSl9'@; put 'LEIsQi5leHBvcnRzLGxlLE0sTyxSKX1yZXR1cm4gT1trXS5leHBvcnRzfWZvcih2YXIgSz0iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLEk9MDtJPFIubGVuZ3RoO0krKyl6KFJbSV0pO3JldHVybiB6fSh7MTpbZnVuY3Rpb24obGUsTSxPKXtNLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJ6aC1N'@; put 'TyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1NTM0MyIsbWlsbGlvbjoiXHU3NjdlXHU4NDJjIixiaWxsaW9uOiJcdTUzNDFcdTUxMDQiLHRyaWxsaW9uOiJcdTUxNDYifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJu'@; put 'Ii4ifSxjdXJyZW5jeTp7c3ltYm9sOiJNT1AiLGNvZGU6Ik1PUCJ9fX0se31dfSx7fSxbMV0pKDEpfSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw2MDpbZnVuY3Rpb24o'@; put 'SWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4obT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVy'@; put 'biBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZNIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2'@; put 'b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9pZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuemhTRz1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7'@; put 'ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlwZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBW'@; put 'LmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVswXS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJuIHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6InpoLVNHIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25z'@; put 'Ont0aG91c2FuZDoiXHU1MzQzIixtaWxsaW9uOiJcdTc2N2VcdTRlMDciLGJpbGxpb246Ilx1NTM0MVx1NGViZiIsdHJpbGxpb246Ilx1NTE0NiJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6IiQiLGNvZGU6IlNHRCJ9fX0se31dfSx7fSxbMV0pKDEp'@; put 'fSl9KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp7fSl9LHt9XSw2MTpbZnVuY3Rpb24oSWUsRixhZSl7KGZ1bmN0aW9uKHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGxlKXtyZXR1cm4o'@; put 'bT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihNKXtyZXR1cm4gdHlwZW9mIE19OmZ1bmN0aW9uKE0pe3JldHVybiBNJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZN'@; put 'IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgTX0pKGxlKX0hZnVuY3Rpb24obGUpe3ZhciBNOyJvYmplY3QiPT0odm9pZCAwPT09YWU/InVuZGVmaW5lZCI6bShhZSkpJiZ2b2lkIDAhPT1GP0YuZXhwb3J0cz1sZSgpOigoTT10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dm9p'@; put 'ZCAwIT09eD94OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLm51bWJyb3x8KE0ubnVtYnJvPXt9KSkuemhUVz1sZSgpfShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBsZShNLE8sUil7ZnVuY3Rpb24geihrLEUpe2lmKCFPW2tdKXtpZighTVtrXSl7dmFyIGo9ImZ1bmN0aW9uIj09dHlw'@; put 'ZW9mIEllJiZJZTtpZighRSYmailyZXR1cm4gaihrLCEwKTtpZihLKXJldHVybiBLKGssITApO3ZhciBWPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK2srIiciKTt0aHJvdyBWLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLFZ9dmFyIEI9T1trXT17ZXhwb3J0czp7fX07TVtrXVsw'@; put 'XS5jYWxsKEIuZXhwb3J0cyxmdW5jdGlvbihZKXtyZXR1cm4geihNW2tdWzFdW1ldfHxZKX0sQixCLmV4cG9ydHMsbGUsTSxPLFIpfXJldHVybiBPW2tdLmV4cG9ydHN9Zm9yKHZhciBLPSJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUsST0wO0k8Ui5sZW5ndGg7SSsrKXooUltJXSk7cmV0dXJu'@; put 'IHp9KHsxOltmdW5jdGlvbihsZSxNLE8pe00uZXhwb3J0cz17bGFuZ3VhZ2VUYWc6InpoLVRXIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHU1MzQzIixtaWxsaW9uOiJcdTc2N2VcdTg0MmMiLGJpbGxpb246Ilx1NTM0'@; put 'MVx1NTEwNCIsdHJpbGxpb246Ilx1NTE0NiJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iXHU3YjJjIn0sY3VycmVuY3k6e3N5bWJvbDoiTlQkIixjb2RlOiJUV0QifX19LHt9XX0se30sWzFdKSgxKX0pfSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2Vs'@; put 'ZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sNjI6W2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjthZS5iZz1JZSgiLi9kaXN0L2xhbmd1YWdlcy9iZy5taW4uanMiKSxhZVsiY3MtQ1oiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9jcy1DWi5taW4uanMi'@; put 'KSxhZVsiZGEtREsiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9kYS1ESy5taW4uanMiKSxhZVsiZGUtQVQiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9kZS1BVC5taW4uanMiKSxhZVsiZGUtQ0giXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9kZS1DSC5taW4uanMiKSxhZVsiZGUtREUiXT1JZSgiLi9k'@; put 'aXN0L2xhbmd1YWdlcy9kZS1ERS5taW4uanMiKSxhZVsiZGUtTEkiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9kZS1MSS5taW4uanMiKSxhZS5lbD1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lbC5taW4uanMiKSxhZVsiZW4tQVUiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lbi1BVS5taW4uanMiKSxh'@; put 'ZVsiZW4tR0IiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lbi1HQi5taW4uanMiKSxhZVsiZW4tSUUiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lbi1JRS5taW4uanMiKSxhZVsiZW4tTloiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lbi1OWi5taW4uanMiKSxhZVsiZW4tWkEiXT1JZSgiLi9kaXN0'@; put 'L2xhbmd1YWdlcy9lbi1aQS5taW4uanMiKSxhZVsiZXMtQVIiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1BUi5taW4uanMiKSxhZVsiZXMtQ0wiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1DTC5taW4uanMiKSxhZVsiZXMtQ08iXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1DTy5taW4u'@; put 'anMiKSxhZVsiZXMtQ1IiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1DUi5taW4uanMiKSxhZVsiZXMtRVMiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1FUy5taW4uanMiKSxhZVsiZXMtTVgiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1NWC5taW4uanMiKSxhZVsiZXMtTkkiXT1JZSgi'@; put 'Li9kaXN0L2xhbmd1YWdlcy9lcy1OSS5taW4uanMiKSxhZVsiZXMtUEUiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1QRS5taW4uanMiKSxhZVsiZXMtUFIiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1QUi5taW4uanMiKSxhZVsiZXMtU1YiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9lcy1T'@; put 'Vi5taW4uanMiKSxhZVsiZXQtRUUiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9ldC1FRS5taW4uanMiKSxhZVsiZmEtSVIiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9mYS1JUi5taW4uanMiKSxhZVsiZmktRkkiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9maS1GSS5taW4uanMiKSxhZVsiZmlsLVBI'@; put 'Il09SWUoIi4vZGlzdC9sYW5ndWFnZXMvZmlsLVBILm1pbi5qcyIpLGFlWyJmci1DQSJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2ZyLUNBLm1pbi5qcyIpLGFlWyJmci1DSCJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2ZyLUNILm1pbi5qcyIpLGFlWyJmci1GUiJdPUllKCIuL2Rpc3QvbGFuZ3Vh'@; put 'Z2VzL2ZyLUZSLm1pbi5qcyIpLGFlWyJoZS1JTCJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2hlLUlMLm1pbi5qcyIpLGFlWyJodS1IVSJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2h1LUhVLm1pbi5qcyIpLGFlLmlkPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2lkLm1pbi5qcyIpLGFlWyJpdC1DSCJd'@; put 'PUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2l0LUNILm1pbi5qcyIpLGFlWyJpdC1JVCJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2l0LUlULm1pbi5qcyIpLGFlWyJqYS1KUCJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2phLUpQLm1pbi5qcyIpLGFlWyJrby1LUiJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2Vz'@; put 'L2tvLUtSLm1pbi5qcyIpLGFlWyJsdi1MViJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL2x2LUxWLm1pbi5qcyIpLGFlWyJuYi1OTyJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL25iLU5PLm1pbi5qcyIpLGFlLm5iPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL25iLm1pbi5qcyIpLGFlWyJubC1CRSJdPUll'@; put 'KCIuL2Rpc3QvbGFuZ3VhZ2VzL25sLUJFLm1pbi5qcyIpLGFlWyJubC1OTCJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL25sLU5MLm1pbi5qcyIpLGFlLm5uPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL25uLm1pbi5qcyIpLGFlWyJwbC1QTCJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3BsLVBMLm1pbi5q'@; put 'cyIpLGFlWyJwdC1CUiJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3B0LUJSLm1pbi5qcyIpLGFlWyJwdC1QVCJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3B0LVBULm1pbi5qcyIpLGFlWyJyby1STyJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3JvLVJPLm1pbi5qcyIpLGFlLnJvPUllKCIuL2Rpc3Qv'@; put 'bGFuZ3VhZ2VzL3JvLm1pbi5qcyIpLGFlWyJydS1SVSJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3J1LVJVLm1pbi5qcyIpLGFlWyJydS1VQSJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3J1LVVBLm1pbi5qcyIpLGFlWyJzay1TSyJdPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3NrLVNLLm1pbi5qcyIp'@; put 'LGFlLnNsPUllKCIuL2Rpc3QvbGFuZ3VhZ2VzL3NsLm1pbi5qcyIpLGFlWyJzci1DeXJsLVJTIl09SWUoIi4vZGlzdC9sYW5ndWFnZXMvc3ItQ3lybC1SUy5taW4uanMiKSxhZVsic3YtU0UiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy9zdi1TRS5taW4uanMiKSxhZVsidGgtVEgiXT1JZSgiLi9k'@; put 'aXN0L2xhbmd1YWdlcy90aC1USC5taW4uanMiKSxhZVsidHItVFIiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy90ci1UUi5taW4uanMiKSxhZVsidWstVUEiXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy91ay1VQS5taW4uanMiKSxhZVsiemgtQ04iXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy96aC1DTi5t'@; put 'aW4uanMiKSxhZVsiemgtTU8iXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy96aC1NTy5taW4uanMiKSxhZVsiemgtU0ciXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy96aC1TRy5taW4uanMiKSxhZVsiemgtVFciXT1JZSgiLi9kaXN0L2xhbmd1YWdlcy96aC1UVy5taW4uanMiKX0seyIuL2Rpc3QvbGFu'@; put 'Z3VhZ2VzL2JnLm1pbi5qcyI6MSwiLi9kaXN0L2xhbmd1YWdlcy9jcy1DWi5taW4uanMiOjIsIi4vZGlzdC9sYW5ndWFnZXMvZGEtREsubWluLmpzIjozLCIuL2Rpc3QvbGFuZ3VhZ2VzL2RlLUFULm1pbi5qcyI6NCwiLi9kaXN0L2xhbmd1YWdlcy9kZS1DSC5taW4uanMiOjUsIi4vZGlzdC9s'@; put 'YW5ndWFnZXMvZGUtREUubWluLmpzIjo2LCIuL2Rpc3QvbGFuZ3VhZ2VzL2RlLUxJLm1pbi5qcyI6NywiLi9kaXN0L2xhbmd1YWdlcy9lbC5taW4uanMiOjgsIi4vZGlzdC9sYW5ndWFnZXMvZW4tQVUubWluLmpzIjo5LCIuL2Rpc3QvbGFuZ3VhZ2VzL2VuLUdCLm1pbi5qcyI6MTAsIi4vZGlz'@; put 'dC9sYW5ndWFnZXMvZW4tSUUubWluLmpzIjoxMSwiLi9kaXN0L2xhbmd1YWdlcy9lbi1OWi5taW4uanMiOjEyLCIuL2Rpc3QvbGFuZ3VhZ2VzL2VuLVpBLm1pbi5qcyI6MTMsIi4vZGlzdC9sYW5ndWFnZXMvZXMtQVIubWluLmpzIjoxNCwiLi9kaXN0L2xhbmd1YWdlcy9lcy1DTC5taW4uanMi'@; put 'OjE1LCIuL2Rpc3QvbGFuZ3VhZ2VzL2VzLUNPLm1pbi5qcyI6MTYsIi4vZGlzdC9sYW5ndWFnZXMvZXMtQ1IubWluLmpzIjoxNywiLi9kaXN0L2xhbmd1YWdlcy9lcy1FUy5taW4uanMiOjE4LCIuL2Rpc3QvbGFuZ3VhZ2VzL2VzLU1YLm1pbi5qcyI6MTksIi4vZGlzdC9sYW5ndWFnZXMvZXMt'@; put 'TkkubWluLmpzIjoyMCwiLi9kaXN0L2xhbmd1YWdlcy9lcy1QRS5taW4uanMiOjIxLCIuL2Rpc3QvbGFuZ3VhZ2VzL2VzLVBSLm1pbi5qcyI6MjIsIi4vZGlzdC9sYW5ndWFnZXMvZXMtU1YubWluLmpzIjoyMywiLi9kaXN0L2xhbmd1YWdlcy9ldC1FRS5taW4uanMiOjI0LCIuL2Rpc3QvbGFu'@; put 'Z3VhZ2VzL2ZhLUlSLm1pbi5qcyI6MjUsIi4vZGlzdC9sYW5ndWFnZXMvZmktRkkubWluLmpzIjoyNiwiLi9kaXN0L2xhbmd1YWdlcy9maWwtUEgubWluLmpzIjoyNywiLi9kaXN0L2xhbmd1YWdlcy9mci1DQS5taW4uanMiOjI4LCIuL2Rpc3QvbGFuZ3VhZ2VzL2ZyLUNILm1pbi5qcyI6Mjks'@; put 'Ii4vZGlzdC9sYW5ndWFnZXMvZnItRlIubWluLmpzIjozMCwiLi9kaXN0L2xhbmd1YWdlcy9oZS1JTC5taW4uanMiOjMxLCIuL2Rpc3QvbGFuZ3VhZ2VzL2h1LUhVLm1pbi5qcyI6MzIsIi4vZGlzdC9sYW5ndWFnZXMvaWQubWluLmpzIjozMywiLi9kaXN0L2xhbmd1YWdlcy9pdC1DSC5taW4u'@; put 'anMiOjM0LCIuL2Rpc3QvbGFuZ3VhZ2VzL2l0LUlULm1pbi5qcyI6MzUsIi4vZGlzdC9sYW5ndWFnZXMvamEtSlAubWluLmpzIjozNiwiLi9kaXN0L2xhbmd1YWdlcy9rby1LUi5taW4uanMiOjM3LCIuL2Rpc3QvbGFuZ3VhZ2VzL2x2LUxWLm1pbi5qcyI6MzgsIi4vZGlzdC9sYW5ndWFnZXMv'@; put 'bmItTk8ubWluLmpzIjozOSwiLi9kaXN0L2xhbmd1YWdlcy9uYi5taW4uanMiOjQwLCIuL2Rpc3QvbGFuZ3VhZ2VzL25sLUJFLm1pbi5qcyI6NDEsIi4vZGlzdC9sYW5ndWFnZXMvbmwtTkwubWluLmpzIjo0MiwiLi9kaXN0L2xhbmd1YWdlcy9ubi5taW4uanMiOjQzLCIuL2Rpc3QvbGFuZ3Vh'@; put 'Z2VzL3BsLVBMLm1pbi5qcyI6NDQsIi4vZGlzdC9sYW5ndWFnZXMvcHQtQlIubWluLmpzIjo0NSwiLi9kaXN0L2xhbmd1YWdlcy9wdC1QVC5taW4uanMiOjQ2LCIuL2Rpc3QvbGFuZ3VhZ2VzL3JvLVJPLm1pbi5qcyI6NDcsIi4vZGlzdC9sYW5ndWFnZXMvcm8ubWluLmpzIjo0OCwiLi9kaXN0'@; put 'L2xhbmd1YWdlcy9ydS1SVS5taW4uanMiOjQ5LCIuL2Rpc3QvbGFuZ3VhZ2VzL3J1LVVBLm1pbi5qcyI6NTAsIi4vZGlzdC9sYW5ndWFnZXMvc2stU0subWluLmpzIjo1MSwiLi9kaXN0L2xhbmd1YWdlcy9zbC5taW4uanMiOjUyLCIuL2Rpc3QvbGFuZ3VhZ2VzL3NyLUN5cmwtUlMubWluLmpz'@; put 'Ijo1MywiLi9kaXN0L2xhbmd1YWdlcy9zdi1TRS5taW4uanMiOjU0LCIuL2Rpc3QvbGFuZ3VhZ2VzL3RoLVRILm1pbi5qcyI6NTUsIi4vZGlzdC9sYW5ndWFnZXMvdHItVFIubWluLmpzIjo1NiwiLi9kaXN0L2xhbmd1YWdlcy91ay1VQS5taW4uanMiOjU3LCIuL2Rpc3QvbGFuZ3VhZ2VzL3po'@; put 'LUNOLm1pbi5qcyI6NTgsIi4vZGlzdC9sYW5ndWFnZXMvemgtTU8ubWluLmpzIjo1OSwiLi9kaXN0L2xhbmd1YWdlcy96aC1TRy5taW4uanMiOjYwLCIuL2Rpc3QvbGFuZ3VhZ2VzL3poLVRXLm1pbi5qcyI6NjF9XX0se30sWzYyXSkoNjIpfSwxMTE3MDphdD0+e2F0LmV4cG9ydHM9ZnVuY3Rp'@; put 'b24gSWUoRixhZSx4KXtmdW5jdGlvbiBtKE8sUil7aWYoIWFlW09dKXtpZighRltPXSl7aWYobGUpcmV0dXJuIGxlKE8sITApO3ZhciBLPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK08rIiciKTt0aHJvdyBLLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLEt9dmFyIEk9YWVbT109'@; put 'e2V4cG9ydHM6e319O0ZbT11bMF0uY2FsbChJLmV4cG9ydHMsZnVuY3Rpb24oayl7cmV0dXJuIG0oRltPXVsxXVtrXXx8ayl9LEksSS5leHBvcnRzLEllLEYsYWUseCl9cmV0dXJuIGFlW09dLmV4cG9ydHN9Zm9yKHZhciBsZT12b2lkIDAsTT0wO008eC5sZW5ndGg7TSsrKW0oeFtNXSk7cmV0'@; put 'dXJuIG19KHsxOltmdW5jdGlvbihJZSxGLGFlKXshZnVuY3Rpb24oeCl7InVzZSBzdHJpY3QiO3ZhciBtLGxlPS9eLT8oPzpcZCsoPzpcLlxkKik/fFwuXGQrKSg/OmVbKy1dP1xkKyk/JC9pLE09TWF0aC5jZWlsLE89TWF0aC5mbG9vcixSPSJbQmlnTnVtYmVyIEVycm9yXSAiLHo9UisiTnVt'@; put 'YmVyIHByaW1pdGl2ZSBoYXMgbW9yZSB0aGFuIDE1IHNpZ25pZmljYW50IGRpZ2l0czogIixLPTFlMTQsST0xNCxrPTkwMDcxOTkyNTQ3NDA5OTEsRT1bMSwxMCwxMDAsMWUzLDFlNCwxZTUsMWU2LDFlNywxZTgsMWU5LDFlMTAsMWUxMSwxZTEyLDFlMTNdLGo9MWU3LFY9MWU5O2Z1bmN0aW9u'@; put 'IEIob2Upe3ZhciBzZT0wfG9lO3JldHVybiAwPG9lfHxvZT09PXNlP3NlOnNlLTF9ZnVuY3Rpb24gWShvZSl7Zm9yKHZhciBzZSxoZSx1ZT0xLGNlPW9lLmxlbmd0aCxHPW9lWzBdKyIiO3VlPGNlOyl7Zm9yKHNlPW9lW3VlKytdKyIiLGhlPUktc2UubGVuZ3RoO2hlLS07c2U9IjAiK3NlKTtH'@; put 'Kz1zZX1mb3IoY2U9Ry5sZW5ndGg7NDg9PT1HLmNoYXJDb2RlQXQoLS1jZSk7KTtyZXR1cm4gRy5zbGljZSgwLGNlKzF8fDEpfWZ1bmN0aW9uIFgob2Usc2Upe3ZhciBoZSx1ZSxjZT1vZS5jLEc9c2UuYyxiPW9lLnMsRD1zZS5zLEg9b2UuZSxOPXNlLmU7aWYoIWJ8fCFEKXJldHVybiBudWxs'@; put 'O2lmKHVlPUcmJiFHWzBdLChoZT1jZSYmIWNlWzBdKXx8dWUpcmV0dXJuIGhlP3VlPzA6LUQ6YjtpZihiIT1EKXJldHVybiBiO2lmKGhlPWI8MCx1ZT1IPT1OLCFjZXx8IUcpcmV0dXJuIHVlPzA6IWNlXmhlPzE6LTE7aWYoIXVlKXJldHVybiBOPEheaGU/MTotMTtmb3IoRD0oSD1jZS5sZW5n'@; put 'dGgpPChOPUcubGVuZ3RoKT9IOk4sYj0wO2I8RDtiKyspaWYoY2VbYl0hPUdbYl0pcmV0dXJuIGNlW2JdPkdbYl1eaGU/MTotMTtyZXR1cm4gSD09Tj8wOk48SF5oZT8xOi0xfWZ1bmN0aW9uIFUob2Usc2UsaGUsdWUpe2lmKG9lPHNlfHxoZTxvZXx8b2UhPT0ob2U8MD9NKG9lKTpPKG9lKSkp'@; put 'dGhyb3cgRXJyb3IoUisodWV8fCJBcmd1bWVudCIpKygibnVtYmVyIj09dHlwZW9mIG9lP29lPHNlfHxoZTxvZT8iIG91dCBvZiByYW5nZTogIjoiIG5vdCBhbiBpbnRlZ2VyOiAiOiIgbm90IGEgcHJpbWl0aXZlIG51bWJlcjogIikrU3RyaW5nKG9lKSl9ZnVuY3Rpb24gcShvZSl7dmFyIHNl'@; put 'PW9lLmMubGVuZ3RoLTE7cmV0dXJuIEIob2UuZS9JKT09c2UmJm9lLmNbc2VdJTIhPTB9ZnVuY3Rpb24gZWUob2Usc2Upe3JldHVybigxPG9lLmxlbmd0aD9vZS5jaGFyQXQoMCkrIi4iK29lLnNsaWNlKDEpOm9lKSsoc2U8MD8iZSI6ImUrIikrc2V9ZnVuY3Rpb24gdGUob2Usc2UsaGUpe3Zh'@; put 'ciB1ZSxjZTtpZihzZTwwKXtmb3IoY2U9aGUrIi4iOysrc2U7Y2UrPWhlKTtvZT1jZStvZX1lbHNlIGlmKCsrc2U+KHVlPW9lLmxlbmd0aCkpe2ZvcihjZT1oZSxzZS09dWU7LS1zZTtjZSs9aGUpO29lKz1jZX1lbHNlIHNlPHVlJiYob2U9b2Uuc2xpY2UoMCxzZSkrIi4iK29lLnNsaWNlKHNl'@; put 'KSk7cmV0dXJuIG9lfShtPWZ1bmN0aW9uIG9lKHNlKXt2YXIgaGUsdWUsY2UsRyxiLEQsSCxOLGcsQyxTPVdlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6V2UsdG9TdHJpbmc6bnVsbCx2YWx1ZU9mOm51bGx9LHY9bmV3IFdlKDEpLHA9MjAsdz00LEo9LTcsbmU9MjEsZGU9LTFlNyxmZT0xZTcs'@; put 'eGU9ITEsTGU9MSxGZT0wLE9lPXtwcmVmaXg6IiIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZ3JvdXBTZXBhcmF0b3I6IiwiLGRlY2ltYWxTZXBhcmF0b3I6Ii4iLGZyYWN0aW9uR3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjoiXHhhMCIsc3VmZml4OiIifSxq'@; put 'ZT0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjtmdW5jdGlvbiBXZShiZSxBZSl7dmFyIFRlLHFlLFhlLFVlLGh0LE1lLERlLHplLG90PXRoaXM7aWYoIShvdCBpbnN0YW5jZW9mIFdlKSlyZXR1cm4gbmV3IFdlKGJlLEFlKTtpZihudWxsPT1BZSl7aWYoYmUgaW5zdGFu'@; put 'Y2VvZiBXZSlyZXR1cm4gb3Qucz1iZS5zLG90LmU9YmUuZSx2b2lkKG90LmM9KGJlPWJlLmMpP2JlLnNsaWNlKCk6YmUpO2lmKChNZT0ibnVtYmVyIj09dHlwZW9mIGJlKSYmMCpiZT09MCl7aWYob3Qucz0xL2JlPDA/KGJlPS1iZSwtMSk6MSxiZT09PX5+YmUpe2ZvcihVZT0wLGh0PWJlOzEw'@; put 'PD1odDtodC89MTAsVWUrKyk7cmV0dXJuIG90LmU9VWUsdm9pZChvdC5jPVtiZV0pfXplPVN0cmluZyhiZSl9ZWxzZXtpZih6ZT1TdHJpbmcoYmUpLCFsZS50ZXN0KHplKSlyZXR1cm4gY2Uob3QsemUsTWUpO290LnM9NDU9PXplLmNoYXJDb2RlQXQoMCk/KHplPXplLnNsaWNlKDEpLC0xKTox'@; put 'fS0xPChVZT16ZS5pbmRleE9mKCIuIikpJiYoemU9emUucmVwbGFjZSgiLiIsIiIpKSwwPChodD16ZS5zZWFyY2goL2UvaSkpPyhVZTwwJiYoVWU9aHQpLFVlKz0remUuc2xpY2UoaHQrMSksemU9emUuc3Vic3RyaW5nKDAsaHQpKTpVZTwwJiYoVWU9emUubGVuZ3RoKX1lbHNle2lmKFUoQWUs'@; put 'MixqZS5sZW5ndGgsIkJhc2UiKSx6ZT1TdHJpbmcoYmUpLDEwPT1BZSlyZXR1cm4gbHQob3Q9bmV3IFdlKGJlIGluc3RhbmNlb2YgV2U/YmU6emUpLHArb3QuZSsxLHcpO2lmKE1lPSJudW1iZXIiPT10eXBlb2YgYmUpe2lmKDAqYmUhPTApcmV0dXJuIGNlKG90LHplLE1lLEFlKTtpZihvdC5z'@; put 'PTEvYmU8MD8oemU9emUuc2xpY2UoMSksLTEpOjEsV2UuREVCVUcmJjE1PHplLnJlcGxhY2UoL14wXC4wKnxcLi8sIiIpLmxlbmd0aCl0aHJvdyBFcnJvcih6K2JlKTtNZT0hMX1lbHNlIG90LnM9NDU9PT16ZS5jaGFyQ29kZUF0KDApPyh6ZT16ZS5zbGljZSgxKSwtMSk6MTtmb3IoVGU9amUu'@; put 'c2xpY2UoMCxBZSksVWU9aHQ9MCxEZT16ZS5sZW5ndGg7aHQ8RGU7aHQrKylpZihUZS5pbmRleE9mKHFlPXplLmNoYXJBdChodCkpPDApe2lmKCIuIj09cWUpe2lmKFVlPGh0KXtVZT1EZTtjb250aW51ZX19ZWxzZSBpZighWGUmJih6ZT09emUudG9VcHBlckNhc2UoKSYmKHplPXplLnRvTG93'@; put 'ZXJDYXNlKCkpfHx6ZT09emUudG9Mb3dlckNhc2UoKSYmKHplPXplLnRvVXBwZXJDYXNlKCkpKSl7WGU9ITAsaHQ9LTEsVWU9MDtjb250aW51ZX1yZXR1cm4gY2Uob3QsU3RyaW5nKGJlKSxNZSxBZSl9LTE8KFVlPSh6ZT11ZSh6ZSxBZSwxMCxvdC5zKSkuaW5kZXhPZigiLiIpKT96ZT16ZS5y'@; put 'ZXBsYWNlKCIuIiwiIik6VWU9emUubGVuZ3RofWZvcihodD0wOzQ4PT09emUuY2hhckNvZGVBdChodCk7aHQrKyk7Zm9yKERlPXplLmxlbmd0aDs0OD09PXplLmNoYXJDb2RlQXQoLS1EZSk7KTtpZih6ZT16ZS5zbGljZShodCwrK0RlKSl7aWYoRGUtPWh0LE1lJiZXZS5ERUJVRyYmMTU8RGUm'@; put 'JihrPGJlfHxiZSE9PU8oYmUpKSl0aHJvdyBFcnJvcih6K290LnMqYmUpO2lmKGZlPChVZT1VZS1odC0xKSlvdC5jPW90LmU9bnVsbDtlbHNlIGlmKFVlPGRlKW90LmM9W290LmU9MF07ZWxzZXtpZihvdC5lPVVlLG90LmM9W10saHQ9KFVlKzEpJUksVWU8MCYmKGh0Kz1JKSxodDxEZSl7Zm9y'@; put 'KGh0JiZvdC5jLnB1c2goK3plLnNsaWNlKDAsaHQpKSxEZS09STtodDxEZTspb3QuYy5wdXNoKCt6ZS5zbGljZShodCxodCs9SSkpO3plPXplLnNsaWNlKGh0KSxodD1JLXplLmxlbmd0aH1lbHNlIGh0LT1EZTtmb3IoO2h0LS07emUrPSIwIik7b3QuYy5wdXNoKCt6ZSl9fWVsc2Ugb3QuYz1b'@; put 'b3QuZT0wXX1mdW5jdGlvbiBLZShiZSxBZSxUZSxxZSl7dmFyIFhlLFVlLGh0LE1lLERlO2lmKG51bGw9PVRlP1RlPXc6VShUZSwwLDgpLCFiZS5jKXJldHVybiBiZS50b1N0cmluZygpO2lmKFhlPWJlLmNbMF0saHQ9YmUuZSxudWxsPT1BZSlEZT1ZKGJlLmMpLERlPTE9PXFlfHwyPT1xZSYm'@; put 'KGh0PD1KfHxuZTw9aHQpP2VlKERlLGh0KTp0ZShEZSxodCwiMCIpO2Vsc2UgaWYoVWU9KGJlPWx0KG5ldyBXZShiZSksQWUsVGUpKS5lLE1lPShEZT1ZKGJlLmMpKS5sZW5ndGgsMT09cWV8fDI9PXFlJiYoQWU8PVVlfHxVZTw9Sikpe2Zvcig7TWU8QWU7RGUrPSIwIixNZSsrKTtEZT1lZShE'@; put 'ZSxVZSl9ZWxzZSBpZihBZS09aHQsRGU9dGUoRGUsVWUsIjAiKSxNZTxVZSsxKXtpZigwPC0tQWUpZm9yKERlKz0iLiI7QWUtLTtEZSs9IjAiKTt9ZWxzZSBpZigwPChBZSs9VWUtTWUpKWZvcihVZSsxPT1NZSYmKERlKz0iLiIpO0FlLS07RGUrPSIwIik7cmV0dXJuIGJlLnM8MCYmWGU/Ii0i'@; put 'K0RlOkRlfWZ1bmN0aW9uIFllKGJlLEFlKXtmb3IodmFyIFRlLHFlPTEsWGU9bmV3IFdlKGJlWzBdKTtxZTxiZS5sZW5ndGg7cWUrKyl7aWYoIShUZT1uZXcgV2UoYmVbcWVdKSkucyl7WGU9VGU7YnJlYWt9QWUuY2FsbChYZSxUZSkmJihYZT1UZSl9cmV0dXJuIFhlfWZ1bmN0aW9uIFFlKGJl'@; put 'LEFlLFRlKXtmb3IodmFyIHFlPTEsWGU9QWUubGVuZ3RoOyFBZVstLVhlXTtBZS5wb3AoKSk7Zm9yKFhlPUFlWzBdOzEwPD1YZTtYZS89MTAscWUrKyk7cmV0dXJuIGJlLmM9KFRlPXFlK1RlKkktMSk+ZmU/YmUuZT1udWxsOlRlPGRlP1tiZS5lPTBdOihiZS5lPVRlLEFlKSxiZX1mdW5jdGlv'@; put 'biBsdChiZSxBZSxUZSxxZSl7dmFyIFhlLFVlLGh0LE1lLERlLHplLG90LHV0PWJlLmMsTXQ9RTtpZih1dCl7ZTp7Zm9yKFhlPTEsTWU9dXRbMF07MTA8PU1lO01lLz0xMCxYZSsrKTtpZigoVWU9QWUtWGUpPDApVWUrPUksb3Q9KERlPXV0W3plPTBdKS9NdFtYZS0oaHQ9QWUpLTFdJTEwfDA7'@; put 'ZWxzZSBpZigoemU9TSgoVWUrMSkvSSkpPj11dC5sZW5ndGgpe2lmKCFxZSlicmVhayBlO2Zvcig7dXQubGVuZ3RoPD16ZTt1dC5wdXNoKDApKTtEZT1vdD0wLGh0PShVZSU9SSktSSsoWGU9MSl9ZWxzZXtmb3IoRGU9TWU9dXRbemVdLFhlPTE7MTA8PU1lO01lLz0xMCxYZSsrKTtvdD0oaHQ9'@; put 'KFVlJT1JKS1JK1hlKTwwPzA6RGUvTXRbWGUtaHQtMV0lMTB8MH1pZihxZT1xZXx8QWU8MHx8bnVsbCE9dXRbemUrMV18fChodDwwP0RlOkRlJU10W1hlLWh0LTFdKSxxZT1UZTw0PyhvdHx8cWUpJiYoMD09VGV8fFRlPT0oYmUuczwwPzM6MikpOjU8b3R8fDU9PW90JiYoND09VGV8fHFlfHw2'@; put 'PT1UZSYmKDA8VWU/MDxodD9EZS9NdFtYZS1odF06MDp1dFt6ZS0xXSklMTAmMXx8VGU9PShiZS5zPDA/ODo3KSksQWU8MXx8IXV0WzBdKXJldHVybiB1dC5sZW5ndGg9MCxxZT8odXRbMF09TXRbKEktKEFlLT1iZS5lKzEpJUkpJUldLGJlLmU9LUFlfHwwKTp1dFswXT1iZS5lPTAsYmU7aWYo'@; put 'MD09VWU/KHV0Lmxlbmd0aD16ZSxNZT0xLHplLS0pOih1dC5sZW5ndGg9emUrMSxNZT1NdFtJLVVlXSx1dFt6ZV09MDxodD9PKERlL010W1hlLWh0XSVNdFtodF0pKk1lOjApLHFlKWZvcig7Oyl7aWYoMD09emUpe2ZvcihVZT0xLGh0PXV0WzBdOzEwPD1odDtodC89MTAsVWUrKyk7Zm9yKGh0'@; put 'PXV0WzBdKz1NZSxNZT0xOzEwPD1odDtodC89MTAsTWUrKyk7VWUhPU1lJiYoYmUuZSsrLHV0WzBdPT1LJiYodXRbMF09MSkpO2JyZWFrfWlmKHV0W3plXSs9TWUsdXRbemVdIT1LKWJyZWFrO3V0W3plLS1dPTAsTWU9MX1mb3IoVWU9dXQubGVuZ3RoOzA9PT11dFstLVVlXTt1dC5wb3AoKSk7'@; put 'fWJlLmU+ZmU/YmUuYz1iZS5lPW51bGw6YmUuZTxkZSYmKGJlLmM9W2JlLmU9MF0pfXJldHVybiBiZX1mdW5jdGlvbiBQZShiZSl7dmFyIEFlLFRlPWJlLmU7cmV0dXJuIG51bGw9PT1UZT9iZS50b1N0cmluZygpOihBZT1ZKGJlLmMpLEFlPVRlPD1KfHxuZTw9VGU/ZWUoQWUsVGUpOnRlKEFl'@; put 'LFRlLCIwIiksYmUuczwwPyItIitBZTpBZSl9cmV0dXJuIFdlLmNsb25lPW9lLFdlLlJPVU5EX1VQPTAsV2UuUk9VTkRfRE9XTj0xLFdlLlJPVU5EX0NFSUw9MixXZS5ST1VORF9GTE9PUj0zLFdlLlJPVU5EX0hBTEZfVVA9NCxXZS5ST1VORF9IQUxGX0RPV049NSxXZS5ST1VORF9IQUxGX0VW'@; put 'RU49NixXZS5ST1VORF9IQUxGX0NFSUw9NyxXZS5ST1VORF9IQUxGX0ZMT09SPTgsV2UuRVVDTElEPTksV2UuY29uZmlnPVdlLnNldD1mdW5jdGlvbihiZSl7dmFyIEFlLFRlO2lmKG51bGwhPWJlKXtpZigib2JqZWN0IiE9dHlwZW9mIGJlKXRocm93IEVycm9yKFIrIk9iamVjdCBleHBlY3Rl'@; put 'ZDogIitiZSk7aWYoYmUuaGFzT3duUHJvcGVydHkoQWU9IkRFQ0lNQUxfUExBQ0VTIikmJihVKFRlPWJlW0FlXSwwLFYsQWUpLHA9VGUpLGJlLmhhc093blByb3BlcnR5KEFlPSJST1VORElOR19NT0RFIikmJihVKFRlPWJlW0FlXSwwLDgsQWUpLHc9VGUpLGJlLmhhc093blByb3BlcnR5KEFl'@; put 'PSJFWFBPTkVOVElBTF9BVCIpJiYoKFRlPWJlW0FlXSkmJlRlLnBvcD8oVShUZVswXSwtViwwLEFlKSxVKFRlWzFdLDAsVixBZSksSj1UZVswXSxuZT1UZVsxXSk6KFUoVGUsLVYsVixBZSksSj0tKG5lPVRlPDA/LVRlOlRlKSkpLGJlLmhhc093blByb3BlcnR5KEFlPSJSQU5HRSIpKWlmKChU'@; put 'ZT1iZVtBZV0pJiZUZS5wb3ApVShUZVswXSwtViwtMSxBZSksVShUZVsxXSwxLFYsQWUpLGRlPVRlWzBdLGZlPVRlWzFdO2Vsc2V7aWYoVShUZSwtVixWLEFlKSwhVGUpdGhyb3cgRXJyb3IoUitBZSsiIGNhbm5vdCBiZSB6ZXJvOiAiK1RlKTtkZT0tKGZlPVRlPDA/LVRlOlRlKX1pZihiZS5o'@; put 'YXNPd25Qcm9wZXJ0eShBZT0iQ1JZUFRPIikpe2lmKChUZT1iZVtBZV0pIT09ISFUZSl0aHJvdyBFcnJvcihSK0FlKyIgbm90IHRydWUgb3IgZmFsc2U6ICIrVGUpO2lmKFRlKXtpZih0eXBlb2YgY3J5cHRvPiJ1Inx8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8u'@; put 'cmFuZG9tQnl0ZXMpdGhyb3cgeGU9IVRlLEVycm9yKFIrImNyeXB0byB1bmF2YWlsYWJsZSIpO3hlPVRlfWVsc2UgeGU9VGV9aWYoYmUuaGFzT3duUHJvcGVydHkoQWU9Ik1PRFVMT19NT0RFIikmJihVKFRlPWJlW0FlXSwwLDksQWUpLExlPVRlKSxiZS5oYXNPd25Qcm9wZXJ0eShBZT0iUE9X'@; put 'X1BSRUNJU0lPTiIpJiYoVShUZT1iZVtBZV0sMCxWLEFlKSxGZT1UZSksYmUuaGFzT3duUHJvcGVydHkoQWU9IkZPUk1BVCIpKXtpZigib2JqZWN0IiE9dHlwZW9mKFRlPWJlW0FlXSkpdGhyb3cgRXJyb3IoUitBZSsiIG5vdCBhbiBvYmplY3Q6ICIrVGUpO09lPVRlfWlmKGJlLmhhc093blBy'@; put 'b3BlcnR5KEFlPSJBTFBIQUJFVCIpKXtpZigic3RyaW5nIiE9dHlwZW9mKFRlPWJlW0FlXSl8fC9eLiR8WystLlxzXXwoLikuKlwxLy50ZXN0KFRlKSl0aHJvdyBFcnJvcihSK0FlKyIgaW52YWxpZDogIitUZSk7amU9VGV9fXJldHVybntERUNJTUFMX1BMQUNFUzpwLFJPVU5ESU5HX01PREU6'@; put 'dyxFWFBPTkVOVElBTF9BVDpbSixuZV0sUkFOR0U6W2RlLGZlXSxDUllQVE86eGUsTU9EVUxPX01PREU6TGUsUE9XX1BSRUNJU0lPTjpGZSxGT1JNQVQ6T2UsQUxQSEFCRVQ6amV9fSxXZS5pc0JpZ051bWJlcj1mdW5jdGlvbihiZSl7cmV0dXJuIGJlIGluc3RhbmNlb2YgV2V8fGJlJiYhMD09'@; put 'PWJlLl9pc0JpZ051bWJlcnx8ITF9LFdlLm1heGltdW09V2UubWF4PWZ1bmN0aW9uKCl7cmV0dXJuIFllKGFyZ3VtZW50cyxTLmx0KX0sV2UubWluaW11bT1XZS5taW49ZnVuY3Rpb24oKXtyZXR1cm4gWWUoYXJndW1lbnRzLFMuZ3QpfSxXZS5yYW5kb209KEc9OTAwNzE5OTI1NDc0MDk5Mixi'@; put 'PU1hdGgucmFuZG9tKCkqRyYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJuIE8oTWF0aC5yYW5kb20oKSpHKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKGJlKXt2YXIgQWUs'@; put 'VGUscWUsWGUsVWUsaHQ9MCxNZT1bXSxEZT1uZXcgV2Uodik7aWYobnVsbD09YmU/YmU9cDpVKGJlLDAsViksWGU9TShiZS9JKSx4ZSlpZihjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtmb3IoQWU9Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoWGUqPTIpKTtodDxYZTsp'@; put 'OWUxNTw9KFVlPTEzMTA3MipBZVtodF0rKEFlW2h0KzFdPj4+MTEpKT8oVGU9Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMikpLEFlW2h0XT1UZVswXSxBZVtodCsxXT1UZVsxXSk6KE1lLnB1c2goVWUlMWUxNCksaHQrPTIpO2h0PVhlLzJ9ZWxzZXtpZighY3J5cHRv'@; put 'LnJhbmRvbUJ5dGVzKXRocm93IHhlPSExLEVycm9yKFIrImNyeXB0byB1bmF2YWlsYWJsZSIpO2ZvcihBZT1jcnlwdG8ucmFuZG9tQnl0ZXMoWGUqPTcpO2h0PFhlOyk5ZTE1PD0oVWU9MjgxNDc0OTc2NzEwNjU2KigzMSZBZVtodF0pKzEwOTk1MTE2Mjc3NzYqQWVbaHQrMV0rNDI5NDk2NzI5'@; put 'NipBZVtodCsyXSsxNjc3NzIxNipBZVtodCszXSsoQWVbaHQrNF08PDE2KSsoQWVbaHQrNV08PDgpK0FlW2h0KzZdKT9jcnlwdG8ucmFuZG9tQnl0ZXMoNykuY29weShBZSxodCk6KE1lLnB1c2goVWUlMWUxNCksaHQrPTcpO2h0PVhlLzd9aWYoIXhlKWZvcig7aHQ8WGU7KShVZT1iKCkpPDll'@; put 'MTUmJihNZVtodCsrXT1VZSUxZTE0KTtmb3IoWGU9TWVbLS1odF0sYmUlPUksWGUmJmJlJiYoTWVbaHRdPU8oWGUvKFVlPUVbSS1iZV0pKSpVZSk7MD09PU1lW2h0XTtNZS5wb3AoKSxodC0tKTtpZihodDwwKU1lPVtxZT0wXTtlbHNle2ZvcihxZT0tMTswPT09TWVbMF07TWUuc3BsaWNlKDAs'@; put 'MSkscWUtPUkpO2ZvcihodD0xLFVlPU1lWzBdOzEwPD1VZTtVZS89MTAsaHQrKyk7aHQ8SSYmKHFlLT1JLWh0KX1yZXR1cm4gRGUuZT1xZSxEZS5jPU1lLERlfSksV2Uuc3VtPWZ1bmN0aW9uKCl7Zm9yKHZhciBiZT0xLEFlPWFyZ3VtZW50cyxUZT1uZXcgV2UoQWVbMF0pO2JlPEFlLmxlbmd0'@; put 'aDspVGU9VGUucGx1cyhBZVtiZSsrXSk7cmV0dXJuIFRlfSx1ZT1mdW5jdGlvbigpe3ZhciBiZT0iMDEyMzQ1Njc4OSI7ZnVuY3Rpb24gQWUoVGUscWUsWGUsVWUpe2Zvcih2YXIgaHQsTWUsRGU9WzBdLHplPTAsb3Q9VGUubGVuZ3RoO3plPG90Oyl7Zm9yKE1lPURlLmxlbmd0aDtNZS0tO0Rl'@; put 'W01lXSo9cWUpO2ZvcihEZVswXSs9VWUuaW5kZXhPZihUZS5jaGFyQXQoemUrKykpLGh0PTA7aHQ8RGUubGVuZ3RoO2h0KyspRGVbaHRdPlhlLTEmJihudWxsPT1EZVtodCsxXSYmKERlW2h0KzFdPTApLERlW2h0KzFdKz1EZVtodF0vWGV8MCxEZVtodF0lPVhlKX1yZXR1cm4gRGUucmV2ZXJz'@; put 'ZSgpfXJldHVybiBmdW5jdGlvbihUZSxxZSxYZSxVZSxodCl7dmFyIE1lLERlLHplLG90LHV0LE10LEh0LFB0LG9uPVRlLmluZGV4T2YoIi4iKSxDbj1wLFV0PXc7Zm9yKDA8PW9uJiYob3Q9RmUsRmU9MCxUZT1UZS5yZXBsYWNlKCIuIiwiIiksTXQ9KFB0PW5ldyBXZShxZSkpLnBvdyhUZS5s'@; put 'ZW5ndGgtb24pLEZlPW90LFB0LmM9QWUodGUoWShNdC5jKSxNdC5lLCIwIiksMTAsWGUsYmUpLFB0LmU9UHQuYy5sZW5ndGgpLHplPW90PShIdD1BZShUZSxxZSxYZSxodD8oTWU9amUsYmUpOihNZT1iZSxqZSkpKS5sZW5ndGg7MD09SHRbLS1vdF07SHQucG9wKCkpO2lmKCFIdFswXSlyZXR1'@; put 'cm4gTWUuY2hhckF0KDApO2lmKG9uPDA/LS16ZTooTXQuYz1IdCxNdC5lPXplLE10LnM9VWUsSHQ9KE10PWhlKE10LFB0LENuLFV0LFhlKSkuYyx1dD1NdC5yLHplPU10LmUpLG9uPUh0W0RlPXplK0NuKzFdLG90PVhlLzIsdXQ9dXR8fERlPDB8fG51bGwhPUh0W0RlKzFdLHV0PVV0PDQ/KG51'@; put 'bGwhPW9ufHx1dCkmJigwPT1VdHx8VXQ9PShNdC5zPDA/MzoyKSk6b3Q8b258fG9uPT1vdCYmKDQ9PVV0fHx1dHx8Nj09VXQmJjEmSHRbRGUtMV18fFV0PT0oTXQuczwwPzg6NykpLERlPDF8fCFIdFswXSlUZT11dD90ZShNZS5jaGFyQXQoMSksLUNuLE1lLmNoYXJBdCgwKSk6TWUuY2hhckF0'@; put 'KDApO2Vsc2V7aWYoSHQubGVuZ3RoPURlLHV0KWZvcigtLVhlOysrSHRbLS1EZV0+WGU7KUh0W0RlXT0wLERlfHwoKyt6ZSxIdD1bMV0uY29uY2F0KEh0KSk7Zm9yKG90PUh0Lmxlbmd0aDshSHRbLS1vdF07KTtmb3Iob249MCxUZT0iIjtvbjw9b3Q7VGUrPU1lLmNoYXJBdChIdFtvbisrXSkp'@; put 'O1RlPXRlKFRlLHplLE1lLmNoYXJBdCgwKSl9cmV0dXJuIFRlfX0oKSxoZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGJlKHFlLFhlLFVlKXt2YXIgaHQsTWUsRGUsemUsb3Q9MCx1dD1xZS5sZW5ndGgsTXQ9WGUlaixIdD1YZS9qfDA7Zm9yKHFlPXFlLnNsaWNlKCk7dXQtLTspb3Q9KChNZT1NdCoo'@; put 'RGU9cWVbdXRdJWopKyhodD1IdCpEZSsoemU9cWVbdXRdL2p8MCkqTXQpJWoqaitvdCkvVWV8MCkrKGh0L2p8MCkrSHQqemUscWVbdXRdPU1lJVVlO3JldHVybiBvdCYmKHFlPVtvdF0uY29uY2F0KHFlKSkscWV9ZnVuY3Rpb24gQWUocWUsWGUsVWUsaHQpe3ZhciBNZSxEZTtpZihVZSE9aHQp'@; put 'RGU9aHQ8VWU/MTotMTtlbHNlIGZvcihNZT1EZT0wO01lPFVlO01lKyspaWYocWVbTWVdIT1YZVtNZV0pe0RlPXFlW01lXT5YZVtNZV0/MTotMTticmVha31yZXR1cm4gRGV9ZnVuY3Rpb24gVGUocWUsWGUsVWUsaHQpe2Zvcih2YXIgTWU9MDtVZS0tOylxZVtVZV0tPU1lLHFlW1VlXT0oTWU9'@; put 'cWVbVWVdPFhlW1VlXT8xOjApKmh0K3FlW1VlXS1YZVtVZV07Zm9yKDshcWVbMF0mJjE8cWUubGVuZ3RoO3FlLnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKHFlLFhlLFVlLGh0LE1lKXt2YXIgRGUsemUsb3QsdXQsTXQsSHQsUHQsb24sQ24sVXQsYm4sV24sZW4sJG4sSG4sZnQsZm4s'@; put 'aG49cWUucz09WGUucz8xOi0xLHd0PXFlLmMsWHQ9WGUuYztpZighKHd0JiZ3dFswXSYmWHQmJlh0WzBdKSlyZXR1cm4gbmV3IFdlKHFlLnMmJlhlLnMmJih3dD8hWHR8fHd0WzBdIT1YdFswXTpYdCk/d3QmJjA9PXd0WzBdfHwhWHQ/MCpobjpobi8wOk5hTik7Zm9yKENuPShvbj1uZXcgV2Uo'@; put 'aG4pKS5jPVtdLGhuPVVlKyh6ZT1xZS5lLVhlLmUpKzEsTWV8fChNZT1LLHplPUIocWUuZS9JKS1CKFhlLmUvSSksaG49aG4vSXwwKSxvdD0wO1h0W290XT09KHd0W290XXx8MCk7b3QrKyk7aWYoWHRbb3RdPih3dFtvdF18fDApJiZ6ZS0tLGhuPDApQ24ucHVzaCgxKSx1dD0hMDtlbHNle2Zv'@; put 'cigkbj13dC5sZW5ndGgsZnQ9WHQubGVuZ3RoLGhuKz0yLDE8KE10PU8oTWUvKFh0W290PTBdKzEpKSkmJihYdD1iZShYdCxNdCxNZSksd3Q9YmUod3QsTXQsTWUpLGZ0PVh0Lmxlbmd0aCwkbj13dC5sZW5ndGgpLGVuPWZ0LGJuPShVdD13dC5zbGljZSgwLGZ0KSkubGVuZ3RoO2JuPGZ0O1V0'@; put 'W2JuKytdPTApO2ZuPVh0LnNsaWNlKCksZm49WzBdLmNvbmNhdChmbiksSG49WHRbMF0sWHRbMV0+PU1lLzImJkhuKys7ZG97aWYoTXQ9MCwoRGU9QWUoWHQsVXQsZnQsYm4pKTwwKXtpZihXbj1VdFswXSxmdCE9Ym4mJihXbj1XbipNZSsoVXRbMV18fDApKSwxPChNdD1PKFduL0huKSkpZm9y'@; put 'KE1lPD1NdCYmKE10PU1lLTEpLFB0PShIdD1iZShYdCxNdCxNZSkpLmxlbmd0aCxibj1VdC5sZW5ndGg7MT09QWUoSHQsVXQsUHQsYm4pOylNdC0tLFRlKEh0LGZ0PFB0P2ZuOlh0LFB0LE1lKSxQdD1IdC5sZW5ndGgsRGU9MTtlbHNlIDA9PU10JiYoRGU9TXQ9MSksUHQ9KEh0PVh0LnNsaWNl'@; put 'KCkpLmxlbmd0aDtpZihQdDxibiYmKEh0PVswXS5jb25jYXQoSHQpKSxUZShVdCxIdCxibixNZSksYm49VXQubGVuZ3RoLC0xPT1EZSlmb3IoO0FlKFh0LFV0LGZ0LGJuKTwxOylNdCsrLFRlKFV0LGZ0PGJuP2ZuOlh0LGJuLE1lKSxibj1VdC5sZW5ndGh9ZWxzZSAwPT09RGUmJihNdCsrLFV0'@; put 'PVswXSk7Q25bb3QrK109TXQsVXRbMF0/VXRbYm4rK109d3RbZW5dfHwwOihVdD1bd3RbZW5dXSxibj0xKX13aGlsZSgoZW4rKzwkbnx8bnVsbCE9VXRbMF0pJiZobi0tKTt1dD1udWxsIT1VdFswXSxDblswXXx8Q24uc3BsaWNlKDAsMSl9aWYoTWU9PUspe2ZvcihvdD0xLGhuPUNuWzBdOzEw'@; put 'PD1objtobi89MTAsb3QrKyk7bHQob24sVWUrKG9uLmU9b3QremUqSS0xKSsxLGh0LHV0KX1lbHNlIG9uLmU9emUsb24ucj0rdXQ7cmV0dXJuIG9ufX0oKSxEPS9eKC0/KTAoW3hib10pKD89XHdbXHcuXSokKS9pLEg9L14oW14uXSspXC4kLyxOPS9eXC4oW14uXSspJC8sZz0vXi0/KEluZmlu'@; put 'aXR5fE5hTikkLyxDPS9eXHMqXCsoPz1bXHcuXSl8XlxzK3xccyskL2csY2U9ZnVuY3Rpb24oYmUsQWUsVGUscWUpe3ZhciBYZSxVZT1UZT9BZTpBZS5yZXBsYWNlKEMsIiIpO2lmKGcudGVzdChVZSkpYmUucz1pc05hTihVZSk/bnVsbDpVZTwwPy0xOjEsYmUuYz1iZS5lPW51bGw7ZWxzZXtp'@; put 'ZighVGUmJihVZT1VZS5yZXBsYWNlKEQsZnVuY3Rpb24oaHQsTWUsRGUpe3JldHVybiBYZT0ieCI9PShEZT1EZS50b0xvd2VyQ2FzZSgpKT8xNjoiYiI9PURlPzI6OCxxZSYmcWUhPVhlP2h0Ok1lfSkscWUmJihYZT1xZSxVZT1VZS5yZXBsYWNlKEgsIiQxIikucmVwbGFjZShOLCIwLiQxIikp'@; put 'LEFlIT1VZSkpcmV0dXJuIG5ldyBXZShVZSxYZSk7aWYoV2UuREVCVUcpdGhyb3cgRXJyb3IoUisiTm90IGEiKyhxZT8iIGJhc2UgIitxZToiIikrIiBudW1iZXI6ICIrQWUpO2JlLmM9YmUuZT1iZS5zPW51bGx9fSxTLmFic29sdXRlVmFsdWU9Uy5hYnM9ZnVuY3Rpb24oKXt2YXIgYmU9bmV3'@; put 'IFdlKHRoaXMpO3JldHVybiBiZS5zPDAmJihiZS5zPTEpLGJlfSxTLmNvbXBhcmVkVG89ZnVuY3Rpb24oYmUsQWUpe3JldHVybiBYKHRoaXMsbmV3IFdlKGJlLEFlKSl9LFMuZGVjaW1hbFBsYWNlcz1TLmRwPWZ1bmN0aW9uKGJlLEFlKXt2YXIgVGUscWUsWGU7aWYobnVsbCE9YmUpcmV0dXJu'@; put 'IFUoYmUsMCxWKSxudWxsPT1BZT9BZT13OlUoQWUsMCw4KSxsdChuZXcgV2UodGhpcyksYmUrdGhpcy5lKzEsQWUpO2lmKCEoVGU9dGhpcy5jKSlyZXR1cm4gbnVsbDtpZihxZT0oKFhlPVRlLmxlbmd0aC0xKS1CKHRoaXMuZS9JKSkqSSxYZT1UZVtYZV0pZm9yKDtYZSUxMD09MDtYZS89MTAs'@; put 'cWUtLSk7cmV0dXJuIHFlPDAmJihxZT0wKSxxZX0sUy5kaXZpZGVkQnk9Uy5kaXY9ZnVuY3Rpb24oYmUsQWUpe3JldHVybiBoZSh0aGlzLG5ldyBXZShiZSxBZSkscCx3KX0sUy5kaXZpZGVkVG9JbnRlZ2VyQnk9Uy5pZGl2PWZ1bmN0aW9uKGJlLEFlKXtyZXR1cm4gaGUodGhpcyxuZXcgV2Uo'@; put 'YmUsQWUpLDAsMSl9LFMuZXhwb25lbnRpYXRlZEJ5PVMucG93PWZ1bmN0aW9uKGJlLEFlKXt2YXIgVGUscWUsWGUsVWUsaHQsTWUsRGUsemUsb3Q9dGhpcztpZigoYmU9bmV3IFdlKGJlKSkuYyYmIWJlLmlzSW50ZWdlcigpKXRocm93IEVycm9yKFIrIkV4cG9uZW50IG5vdCBhbiBpbnRlZ2Vy'@; put 'OiAiK1BlKGJlKSk7aWYobnVsbCE9QWUmJihBZT1uZXcgV2UoQWUpKSxodD0xNDxiZS5lLCFvdC5jfHwhb3QuY1swXXx8MT09b3QuY1swXSYmIW90LmUmJjE9PW90LmMubGVuZ3RofHwhYmUuY3x8IWJlLmNbMF0pcmV0dXJuIHplPW5ldyBXZShNYXRoLnBvdygrUGUob3QpLGh0PzItcShiZSk6'@; put 'K1BlKGJlKSkpLEFlP3plLm1vZChBZSk6emU7aWYoTWU9YmUuczwwLEFlKXtpZihBZS5jPyFBZS5jWzBdOiFBZS5zKXJldHVybiBuZXcgV2UoTmFOKTsocWU9IU1lJiZvdC5pc0ludGVnZXIoKSYmQWUuaXNJbnRlZ2VyKCkpJiYob3Q9b3QubW9kKEFlKSl9ZWxzZXtpZig5PGJlLmUmJigwPG90'@; put 'LmV8fG90LmU8LTF8fCgwPT1vdC5lPzE8b3QuY1swXXx8aHQmJjI0ZTc8PW90LmNbMV06b3QuY1swXTw4ZTEzfHxodCYmb3QuY1swXTw9OTk5OTk3NWU3KSkpcmV0dXJuIFVlPW90LnM8MCYmcShiZSk/LTA6MCwtMTxvdC5lJiYoVWU9MS9VZSksbmV3IFdlKE1lPzEvVWU6VWUpO0ZlJiYoVWU9'@; put 'TShGZS9JKzIpKX1mb3IoRGU9aHQ/KFRlPW5ldyBXZSguNSksTWUmJihiZS5zPTEpLHEoYmUpKTooWGU9TWF0aC5hYnMoK1BlKGJlKSkpJTIsemU9bmV3IFdlKHYpOzspe2lmKERlKXtpZighKHplPXplLnRpbWVzKG90KSkuYylicmVhaztVZT96ZS5jLmxlbmd0aD5VZSYmKHplLmMubGVuZ3Ro'@; put 'PVVlKTpxZSYmKHplPXplLm1vZChBZSkpfWlmKFhlKXtpZigwPT09KFhlPU8oWGUvMikpKWJyZWFrO0RlPVhlJTJ9ZWxzZSBpZihsdChiZT1iZS50aW1lcyhUZSksYmUuZSsxLDEpLDE0PGJlLmUpRGU9cShiZSk7ZWxzZXtpZigwPT0oWGU9K1BlKGJlKSkpYnJlYWs7RGU9WGUlMn1vdD1vdC50'@; put 'aW1lcyhvdCksVWU/b3QuYyYmb3QuYy5sZW5ndGg+VWUmJihvdC5jLmxlbmd0aD1VZSk6cWUmJihvdD1vdC5tb2QoQWUpKX1yZXR1cm4gcWU/emU6KE1lJiYoemU9di5kaXYoemUpKSxBZT96ZS5tb2QoQWUpOlVlP2x0KHplLEZlLHcsdm9pZCAwKTp6ZSl9LFMuaW50ZWdlclZhbHVlPWZ1bmN0'@; put 'aW9uKGJlKXt2YXIgQWU9bmV3IFdlKHRoaXMpO3JldHVybiBudWxsPT1iZT9iZT13OlUoYmUsMCw4KSxsdChBZSxBZS5lKzEsYmUpfSxTLmlzRXF1YWxUbz1TLmVxPWZ1bmN0aW9uKGJlLEFlKXtyZXR1cm4gMD09PVgodGhpcyxuZXcgV2UoYmUsQWUpKX0sUy5pc0Zpbml0ZT1mdW5jdGlvbigp'@; put 'e3JldHVybiEhdGhpcy5jfSxTLmlzR3JlYXRlclRoYW49Uy5ndD1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIDA8WCh0aGlzLG5ldyBXZShiZSxBZSkpfSxTLmlzR3JlYXRlclRoYW5PckVxdWFsVG89Uy5ndGU9ZnVuY3Rpb24oYmUsQWUpe3JldHVybiAxPT09KEFlPVgodGhpcyxuZXcgV2UoYmUs'@; put 'QWUpKSl8fDA9PT1BZX0sUy5pc0ludGVnZXI9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmQih0aGlzLmUvSSk+dGhpcy5jLmxlbmd0aC0yfSxTLmlzTGVzc1RoYW49Uy5sdD1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIFgodGhpcyxuZXcgV2UoYmUsQWUpKTwwfSxTLmlzTGVzc1RoYW5PckVx'@; put 'dWFsVG89Uy5sdGU9ZnVuY3Rpb24oYmUsQWUpe3JldHVybi0xPT09KEFlPVgodGhpcyxuZXcgV2UoYmUsQWUpKSl8fDA9PT1BZX0sUy5pc05hTj1mdW5jdGlvbigpe3JldHVybiF0aGlzLnN9LFMuaXNOZWdhdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM8MH0sUy5pc1Bvc2l0aXZlPWZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIDA8dGhpcy5zfSxTLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jJiYwPT10aGlzLmNbMF19LFMubWludXM9ZnVuY3Rpb24oYmUsQWUpe3ZhciBUZSxxZSxYZSxVZSxodD10aGlzLE1lPWh0LnM7aWYoQWU9KGJlPW5ldyBXZShiZSxBZSkpLnMsIU1lfHwh'@; put 'QWUpcmV0dXJuIG5ldyBXZShOYU4pO2lmKE1lIT1BZSlyZXR1cm4gYmUucz0tQWUsaHQucGx1cyhiZSk7dmFyIERlPWh0LmUvSSx6ZT1iZS5lL0ksb3Q9aHQuYyx1dD1iZS5jO2lmKCFEZXx8IXplKXtpZighb3R8fCF1dClyZXR1cm4gb3Q/KGJlLnM9LUFlLGJlKTpuZXcgV2UodXQ/aHQ6TmFO'@; put 'KTtpZighb3RbMF18fCF1dFswXSlyZXR1cm4gdXRbMF0/KGJlLnM9LUFlLGJlKTpuZXcgV2Uob3RbMF0/aHQ6Mz09dz8tMDowKX1pZihEZT1CKERlKSx6ZT1CKHplKSxvdD1vdC5zbGljZSgpLE1lPURlLXplKXtmb3IoKFhlPShVZT1NZTwwKT8oTWU9LU1lLG90KTooemU9RGUsdXQpKS5yZXZl'@; put 'cnNlKCksQWU9TWU7QWUtLTtYZS5wdXNoKDApKTtYZS5yZXZlcnNlKCl9ZWxzZSBmb3IocWU9KFVlPShNZT1vdC5sZW5ndGgpPChBZT11dC5sZW5ndGgpKT9NZTpBZSxNZT1BZT0wO0FlPHFlO0FlKyspaWYob3RbQWVdIT11dFtBZV0pe1VlPW90W0FlXTx1dFtBZV07YnJlYWt9aWYoVWUmJihY'@; put 'ZT1vdCxvdD11dCx1dD1YZSxiZS5zPS1iZS5zKSwwPChBZT0ocWU9dXQubGVuZ3RoKS0oVGU9b3QubGVuZ3RoKSkpZm9yKDtBZS0tO290W1RlKytdPTApO2ZvcihBZT1LLTE7TWU8cWU7KXtpZihvdFstLXFlXTx1dFtxZV0pe2ZvcihUZT1xZTtUZSYmIW90Wy0tVGVdO290W1RlXT1BZSk7LS1v'@; put 'dFtUZV0sb3RbcWVdKz1LfW90W3FlXS09dXRbcWVdfWZvcig7MD09b3RbMF07b3Quc3BsaWNlKDAsMSksLS16ZSk7cmV0dXJuIG90WzBdP1FlKGJlLG90LHplKTooYmUucz0zPT13Py0xOjEsYmUuYz1bYmUuZT0wXSxiZSl9LFMubW9kdWxvPVMubW9kPWZ1bmN0aW9uKGJlLEFlKXt2YXIgVGUs'@; put 'cWUsWGU9dGhpcztyZXR1cm4gYmU9bmV3IFdlKGJlLEFlKSwhWGUuY3x8IWJlLnN8fGJlLmMmJiFiZS5jWzBdP25ldyBXZShOYU4pOiFiZS5jfHxYZS5jJiYhWGUuY1swXT9uZXcgV2UoWGUpOig5PT1MZT8ocWU9YmUucyxiZS5zPTEsVGU9aGUoWGUsYmUsMCwzKSxiZS5zPXFlLFRlLnMqPXFl'@; put 'KTpUZT1oZShYZSxiZSwwLExlKSwoYmU9WGUubWludXMoVGUudGltZXMoYmUpKSkuY1swXXx8MSE9TGV8fChiZS5zPVhlLnMpLGJlKX0sUy5tdWx0aXBsaWVkQnk9Uy50aW1lcz1mdW5jdGlvbihiZSxBZSl7dmFyIFRlLHFlLFhlLFVlLGh0LE1lLERlLHplLG90LHV0LE10LEh0LFB0LG9uLENu'@; put 'LFV0PXRoaXMsYm49VXQuYyxXbj0oYmU9bmV3IFdlKGJlLEFlKSkuYztpZighKGJuJiZXbiYmYm5bMF0mJlduWzBdKSlyZXR1cm4hVXQuc3x8IWJlLnN8fGJuJiYhYm5bMF0mJiFXbnx8V24mJiFXblswXSYmIWJuP2JlLmM9YmUuZT1iZS5zPW51bGw6KGJlLnMqPVV0LnMsYm4mJlduPyhiZS5j'@; put 'PVswXSxiZS5lPTApOmJlLmM9YmUuZT1udWxsKSxiZTtmb3IocWU9QihVdC5lL0kpK0IoYmUuZS9JKSxiZS5zKj1VdC5zLChEZT1ibi5sZW5ndGgpPCh1dD1Xbi5sZW5ndGgpJiYoUHQ9Ym4sYm49V24sV249UHQsWGU9RGUsRGU9dXQsdXQ9WGUpLFhlPURlK3V0LFB0PVtdO1hlLS07UHQucHVz'@; put 'aCgwKSk7Zm9yKG9uPUssQ249aixYZT11dDswPD0tLVhlOyl7Zm9yKFRlPTAsTXQ9V25bWGVdJUNuLEh0PVduW1hlXS9DbnwwLFVlPVhlKyhodD1EZSk7WGU8VWU7KVRlPSgoemU9TXQqKHplPWJuWy0taHRdJUNuKSsoTWU9SHQqemUrKG90PWJuW2h0XS9DbnwwKSpNdCklQ24qQ24rUHRbVWVd'@; put 'K1RlKS9vbnwwKSsoTWUvQ258MCkrSHQqb3QsUHRbVWUtLV09emUlb247UHRbVWVdPVRlfXJldHVybiBUZT8rK3FlOlB0LnNwbGljZSgwLDEpLFFlKGJlLFB0LHFlKX0sUy5uZWdhdGVkPWZ1bmN0aW9uKCl7dmFyIGJlPW5ldyBXZSh0aGlzKTtyZXR1cm4gYmUucz0tYmUuc3x8bnVsbCxiZX0s'@; put 'Uy5wbHVzPWZ1bmN0aW9uKGJlLEFlKXt2YXIgVGUscWU9dGhpcyxYZT1xZS5zO2lmKEFlPShiZT1uZXcgV2UoYmUsQWUpKS5zLCFYZXx8IUFlKXJldHVybiBuZXcgV2UoTmFOKTtpZihYZSE9QWUpcmV0dXJuIGJlLnM9LUFlLHFlLm1pbnVzKGJlKTt2YXIgVWU9cWUuZS9JLGh0PWJlLmUvSSxN'@; put 'ZT1xZS5jLERlPWJlLmM7aWYoIVVlfHwhaHQpe2lmKCFNZXx8IURlKXJldHVybiBuZXcgV2UoWGUvMCk7aWYoIU1lWzBdfHwhRGVbMF0pcmV0dXJuIERlWzBdP2JlOm5ldyBXZShNZVswXT9xZTowKlhlKX1pZihVZT1CKFVlKSxodD1CKGh0KSxNZT1NZS5zbGljZSgpLFhlPVVlLWh0KXtmb3Io'@; put 'KFRlPTA8WGU/KGh0PVVlLERlKTooWGU9LVhlLE1lKSkucmV2ZXJzZSgpO1hlLS07VGUucHVzaCgwKSk7VGUucmV2ZXJzZSgpfWZvcigoWGU9TWUubGVuZ3RoKS0oQWU9RGUubGVuZ3RoKTwwJiYoVGU9RGUsRGU9TWUsTWU9VGUsQWU9WGUpLFhlPTA7QWU7KVhlPShNZVstLUFlXT1NZVtBZV0r'@; put 'RGVbQWVdK1hlKS9LfDAsTWVbQWVdPUs9PT1NZVtBZV0/MDpNZVtBZV0lSztyZXR1cm4gWGUmJihNZT1bWGVdLmNvbmNhdChNZSksKytodCksUWUoYmUsTWUsaHQpfSxTLnByZWNpc2lvbj1TLnNkPWZ1bmN0aW9uKGJlLEFlKXt2YXIgVGUscWUsWGU7aWYobnVsbCE9YmUmJmJlIT09ISFiZSly'@; put 'ZXR1cm4gVShiZSwxLFYpLG51bGw9PUFlP0FlPXc6VShBZSwwLDgpLGx0KG5ldyBXZSh0aGlzKSxiZSxBZSk7aWYoIShUZT10aGlzLmMpKXJldHVybiBudWxsO2lmKHFlPShYZT1UZS5sZW5ndGgtMSkqSSsxLFhlPVRlW1hlXSl7Zm9yKDtYZSUxMD09MDtYZS89MTAscWUtLSk7Zm9yKFhlPVRl'@; put 'WzBdOzEwPD1YZTtYZS89MTAscWUrKyk7fXJldHVybiBiZSYmdGhpcy5lKzE+cWUmJihxZT10aGlzLmUrMSkscWV9LFMuc2hpZnRlZEJ5PWZ1bmN0aW9uKGJlKXtyZXR1cm4gVShiZSwtayxrKSx0aGlzLnRpbWVzKCIxZSIrYmUpfSxTLnNxdWFyZVJvb3Q9Uy5zcXJ0PWZ1bmN0aW9uKCl7dmFy'@; put 'IGJlLEFlLFRlLHFlLFhlLFVlPXRoaXMsaHQ9VWUuYyxNZT1VZS5zLERlPVVlLmUsemU9cCs0LG90PW5ldyBXZSgiMC41Iik7aWYoMSE9PU1lfHwhaHR8fCFodFswXSlyZXR1cm4gbmV3IFdlKCFNZXx8TWU8MCYmKCFodHx8aHRbMF0pP05hTjpodD9VZToxLzApO2lmKChUZT0wPT0oTWU9TWF0'@; put 'aC5zcXJ0KCtQZShVZSkpKXx8TWU9PTEvMD8oKChBZT1ZKGh0KSkubGVuZ3RoK0RlKSUyPT0wJiYoQWUrPSIwIiksTWU9TWF0aC5zcXJ0KCtBZSksRGU9QigoRGUrMSkvMiktKERlPDB8fERlJTIpLG5ldyBXZShBZT1NZT09MS8wPyIxZSIrRGU6KEFlPU1lLnRvRXhwb25lbnRpYWwoKSkuc2xp'@; put 'Y2UoMCxBZS5pbmRleE9mKCJlIikrMSkrRGUpKTpuZXcgV2UoTWUrIiIpKS5jWzBdKWZvcigoTWU9KERlPVRlLmUpK3plKTwzJiYoTWU9MCk7OylpZihUZT1vdC50aW1lcygoWGU9VGUpLnBsdXMoaGUoVWUsWGUsemUsMSkpKSxZKFhlLmMpLnNsaWNlKDAsTWUpPT09KEFlPVkoVGUuYykpLnNs'@; put 'aWNlKDAsTWUpKXtpZihUZS5lPERlJiYtLU1lLCI5OTk5IiE9KEFlPUFlLnNsaWNlKE1lLTMsTWUrMSkpJiYocWV8fCI0OTk5IiE9QWUpKXsrQWUmJigrQWUuc2xpY2UoMSl8fCI1IiE9QWUuY2hhckF0KDApKXx8KGx0KFRlLFRlLmUrcCsyLDEpLGJlPSFUZS50aW1lcyhUZSkuZXEoVWUpKTti'@; put 'cmVha31pZighcWUmJihsdChYZSxYZS5lK3ArMiwwKSxYZS50aW1lcyhYZSkuZXEoVWUpKSl7VGU9WGU7YnJlYWt9emUrPTQsTWUrPTQscWU9MX1yZXR1cm4gbHQoVGUsVGUuZStwKzEsdyxiZSl9LFMudG9FeHBvbmVudGlhbD1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIG51bGwhPWJlJiYoVShi'@; put 'ZSwwLFYpLGJlKyspLEtlKHRoaXMsYmUsQWUsMSl9LFMudG9GaXhlZD1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIG51bGwhPWJlJiYoVShiZSwwLFYpLGJlPWJlK3RoaXMuZSsxKSxLZSh0aGlzLGJlLEFlKX0sUy50b0Zvcm1hdD1mdW5jdGlvbihiZSxBZSxUZSl7dmFyIHFlO2lmKG51bGw9PVRl'@; put 'KW51bGwhPWJlJiZBZSYmIm9iamVjdCI9PXR5cGVvZiBBZT8oVGU9QWUsQWU9bnVsbCk6YmUmJiJvYmplY3QiPT10eXBlb2YgYmU/KFRlPWJlLGJlPUFlPW51bGwpOlRlPU9lO2Vsc2UgaWYoIm9iamVjdCIhPXR5cGVvZiBUZSl0aHJvdyBFcnJvcihSKyJBcmd1bWVudCBub3QgYW4gb2JqZWN0'@; put 'OiAiK1RlKTtpZihxZT10aGlzLnRvRml4ZWQoYmUsQWUpLHRoaXMuYyl7dmFyIFhlLFVlPXFlLnNwbGl0KCIuIiksaHQ9K1RlLmdyb3VwU2l6ZSxNZT0rVGUuc2Vjb25kYXJ5R3JvdXBTaXplLERlPVRlLmdyb3VwU2VwYXJhdG9yfHwiIix6ZT1VZVswXSxvdD1VZVsxXSx1dD10aGlzLnM8MCxN'@; put 'dD11dD96ZS5zbGljZSgxKTp6ZSxIdD1NdC5sZW5ndGg7aWYoTWUmJihYZT1odCxodD1NZSxIdC09TWU9WGUpLDA8aHQmJjA8SHQpe2Zvcih6ZT1NdC5zdWJzdHIoMCxYZT1IdCVodHx8aHQpO1hlPEh0O1hlKz1odCl6ZSs9RGUrTXQuc3Vic3RyKFhlLGh0KTswPE1lJiYoemUrPURlK010LnNs'@; put 'aWNlKFhlKSksdXQmJih6ZT0iLSIremUpfXFlPW90P3plKyhUZS5kZWNpbWFsU2VwYXJhdG9yfHwiIikrKChNZT0rVGUuZnJhY3Rpb25Hcm91cFNpemUpP290LnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxkeyIrTWUrIn1cXEIiLCJnIiksIiQmIisoVGUuZnJhY3Rpb25Hcm91cFNlcGFyYXRvcnx8'@; put 'IiIpKTpvdCk6emV9cmV0dXJuKFRlLnByZWZpeHx8IiIpK3FlKyhUZS5zdWZmaXh8fCIiKX0sUy50b0ZyYWN0aW9uPWZ1bmN0aW9uKGJlKXt2YXIgQWUsVGUscWUsWGUsVWUsaHQsTWUsRGUsemUsb3QsdXQsTXQsSHQ9dGhpcyxQdD1IdC5jO2lmKG51bGwhPWJlJiYoIShNZT1uZXcgV2UoYmUp'@; put 'KS5pc0ludGVnZXIoKSYmKE1lLmN8fDEhPT1NZS5zKXx8TWUubHQodikpKXRocm93IEVycm9yKFIrIkFyZ3VtZW50ICIrKE1lLmlzSW50ZWdlcigpPyJvdXQgb2YgcmFuZ2U6ICI6Im5vdCBhbiBpbnRlZ2VyOiAiKStQZShNZSkpO2lmKCFQdClyZXR1cm4gbmV3IFdlKEh0KTtmb3IoQWU9bmV3'@; put 'IFdlKHYpLHplPVRlPW5ldyBXZSh2KSxxZT1EZT1uZXcgV2UodiksTXQ9WShQdCksVWU9QWUuZT1NdC5sZW5ndGgtSHQuZS0xLEFlLmNbMF09RVsoaHQ9VWUlSSk8MD9JK2h0Omh0XSxiZT0hYmV8fDA8TWUuY29tcGFyZWRUbyhBZSk/MDxVZT9BZTp6ZTpNZSxodD1mZSxmZT0xLzAsTWU9bmV3'@; put 'IFdlKE10KSxEZS5jWzBdPTA7b3Q9aGUoTWUsQWUsMCwxKSwxIT0oWGU9VGUucGx1cyhvdC50aW1lcyhxZSkpKS5jb21wYXJlZFRvKGJlKTspVGU9cWUscWU9WGUsemU9RGUucGx1cyhvdC50aW1lcyhYZT16ZSkpLERlPVhlLEFlPU1lLm1pbnVzKG90LnRpbWVzKFhlPUFlKSksTWU9WGU7cmV0'@; put 'dXJuIFhlPWhlKGJlLm1pbnVzKFRlKSxxZSwwLDEpLERlPURlLnBsdXMoWGUudGltZXMoemUpKSxUZT1UZS5wbHVzKFhlLnRpbWVzKHFlKSksRGUucz16ZS5zPUh0LnMsdXQ9aGUoemUscWUsVWUqPTIsdykubWludXMoSHQpLmFicygpLmNvbXBhcmVkVG8oaGUoRGUsVGUsVWUsdykubWludXMo'@; put 'SHQpLmFicygpKTwxP1t6ZSxxZV06W0RlLFRlXSxmZT1odCx1dH0sUy50b051bWJlcj1mdW5jdGlvbigpe3JldHVybitQZSh0aGlzKX0sUy50b1ByZWNpc2lvbj1mdW5jdGlvbihiZSxBZSl7cmV0dXJuIG51bGwhPWJlJiZVKGJlLDEsViksS2UodGhpcyxiZSxBZSwyKX0sUy50b1N0cmluZz1m'@; put 'dW5jdGlvbihiZSl7dmFyIEFlLFRlPXRoaXMscWU9VGUucyxYZT1UZS5lO3JldHVybiBudWxsPT09WGU/cWU/KEFlPSJJbmZpbml0eSIscWU8MCYmKEFlPSItIitBZSkpOkFlPSJOYU4iOihBZT1udWxsPT1iZT9YZTw9Snx8bmU8PVhlP2VlKFkoVGUuYyksWGUpOnRlKFkoVGUuYyksWGUsIjAi'@; put 'KToxMD09PWJlP3RlKFkoKFRlPWx0KG5ldyBXZShUZSkscCtYZSsxLHcpKS5jKSxUZS5lLCIwIik6KFUoYmUsMixqZS5sZW5ndGgsIkJhc2UiKSx1ZSh0ZShZKFRlLmMpLFhlLCIwIiksMTAsYmUscWUsITApKSxxZTwwJiZUZS5jWzBdJiYoQWU9Ii0iK0FlKSksQWV9LFMudmFsdWVPZj1TLnRv'@; put 'SlNPTj1mdW5jdGlvbigpe3JldHVybiBQZSh0aGlzKX0sUy5faXNCaWdOdW1iZXI9ITAsImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3ImJihTW1N5bWJvbC50b1N0cmluZ1RhZ109IkJpZ051bWJlciIsU1tTeW1ib2wuZm9yKCJub2Rl'@; put 'anMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1TLnZhbHVlT2YpLG51bGwhPXNlJiZXZS5zZXQoc2UpLFdlfSgpKS5kZWZhdWx0PW0uQmlnTnVtYmVyPW0sdm9pZCAwIT09RiYmRi5leHBvcnRzP0YuZXhwb3J0cz1tOih4fHwoeD10eXBlb2Ygc2VsZjwidSImJnNlbGY/c2VsZjp3aW5kb3cpLHgu'@; put 'QmlnTnVtYmVyPW0pfSh0aGlzKX0se31dLDI6W2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjtGLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlbi1VUyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246'@; put 'Im0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sc3BhY2VTZXBhcmF0ZWQ6ITEsb3JkaW5hbDpmdW5jdGlvbih4KXt2YXIgbT14JTEwO3JldHVybiAxPT1+fih4JTEwMC8xMCk/InRoIjoxPT09bT8ic3QiOjI9PT1tPyJuZCI6Mz09PW0/InJkIjoidGgifSxjdXJyZW5jeTp7c3ltYm9sOiIk'@; put 'Iixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJVU0QifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMH0sZnVsbFdpdGhU'@; put 'd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6Mn0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIs'@; put 'dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dLDM6W2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KEIsWSl7cmV0dXJuIGZ1bmN0aW9uKFgpe2lmKEFycmF5LmlzQXJyYXkoWCkpcmV0dXJuIFh9KEIpfHxmdW5jdGlvbihYLFUpe3ZhciBxPVtd'@; put 'LGVlPSEwLHRlPSExLG9lPXZvaWQgMDt0cnl7Zm9yKHZhciBzZSxoZT1YW1N5bWJvbC5pdGVyYXRvcl0oKTshKGVlPShzZT1oZS5uZXh0KCkpLmRvbmUpJiYocS5wdXNoKHNlLnZhbHVlKSwhVXx8cS5sZW5ndGghPT1VKTtlZT0hMCk7fWNhdGNoKHVlKXt0ZT0hMCxvZT11ZX1maW5hbGx5e3Ry'@; put 'eXtlZXx8bnVsbD09aGUucmV0dXJufHxoZS5yZXR1cm4oKX1maW5hbGx5e2lmKHRlKXRocm93IG9lfX1yZXR1cm4gcX0oQixZKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9KCl9'@; put 'dmFyIG09SWUoIi4vZ2xvYmFsU3RhdGUiKSxsZT1JZSgiLi92YWxpZGF0aW5nIiksTT1JZSgiLi9wYXJzaW5nIiksTz1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiIsIlBCIiwiRUIiLCJaQiIsIllCIl0sUj17Z2VuZXJhbDp7c2NhbGU6MTAyNCxzdWZmaXhlczpPLG1hcmtlcjoiYmQifSxiaW5h'@; put 'cnk6e3NjYWxlOjEwMjQsc3VmZml4ZXM6WyJCIiwiS2lCIiwiTWlCIiwiR2lCIiwiVGlCIiwiUGlCIiwiRWlCIiwiWmlCIiwiWWlCIl0sbWFya2VyOiJiIn0sZGVjaW1hbDp7c2NhbGU6MWUzLHN1ZmZpeGVzOk8sbWFya2VyOiJkIn19LHo9e3RvdGFsTGVuZ3RoOjAsY2hhcmFjdGVyaXN0aWM6'@; put 'MCxmb3JjZUF2ZXJhZ2U6ITEsYXZlcmFnZTohMSxtYW50aXNzYTotMSxvcHRpb25hbE1hbnRpc3NhOiEwLHRob3VzYW5kU2VwYXJhdGVkOiExLHNwYWNlU2VwYXJhdGVkOiExLG5lZ2F0aXZlOiJzaWduIixmb3JjZVNpZ246ITF9O2Z1bmN0aW9uIEsoQil7dmFyIFk9MTxhcmd1bWVudHMubGVu'@; put 'Z3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LFg9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTp2b2lkIDA7aWYoInN0cmluZyI9PXR5cGVvZiBZJiYoWT1NLnBhcnNlRm9ybWF0KFkpKSwhbGUudmFsaWRhdGVGb3JtYXQoWSkpcmV0dXJuIkVSUk9SOiBp'@; put 'bnZhbGlkIGZvcm1hdCI7dmFyIFU9WS5wcmVmaXh8fCIiLHE9WS5wb3N0Zml4fHwiIixlZT1mdW5jdGlvbih0ZSxvZSxzZSl7c3dpdGNoKG9lLm91dHB1dCl7Y2FzZSJjdXJyZW5jeSI6cmV0dXJuIGZ1bmN0aW9uKGplLFdlLEtlKXt2YXIgWWU9S2UuY3VycmVudEN1cnJlbmN5KCksUWU9T2Jq'@; put 'ZWN0LmFzc2lnbih7fSx6LFdlKSxsdD12b2lkIDAsUGU9IiIsYmU9ISFRZS50b3RhbExlbmd0aHx8ISFRZS5mb3JjZUF2ZXJhZ2V8fFFlLmF2ZXJhZ2UsQWU9V2UuY3VycmVuY3lQb3NpdGlvbnx8WWUucG9zaXRpb24sVGU9V2UuY3VycmVuY3lTeW1ib2x8fFllLnN5bWJvbDtRZS5zcGFjZVNl'@; put 'cGFyYXRlZCYmKFBlPSIgIiksImluZml4Ij09PUFlJiYobHQ9UGUrVGUrUGUpO3ZhciBxZT1qKHtpbnN0YW5jZTpqZSxwcm92aWRlZEZvcm1hdDpXZSxzdGF0ZTpLZSxkZWNpbWFsU2VwYXJhdG9yOmx0fSk7cmV0dXJuInByZWZpeCI9PT1BZSYmKHFlPWplLl92YWx1ZTwwJiYic2lnbiI9PT1R'@; put 'ZS5uZWdhdGl2ZT8iLSIuY29uY2F0KFBlKS5jb25jYXQoVGUpLmNvbmNhdChxZS5zbGljZSgxKSk6VGUrUGUrcWUpLEFlJiYicG9zdGZpeCIhPT1BZXx8KHFlPXFlKyhQZT1iZT8iIjpQZSkrVGUpLHFlfSh0ZSxvZT1WKG9lLG0uY3VycmVudEN1cnJlbmN5RGVmYXVsdEZvcm1hdCgpKSxtKTtj'@; put 'YXNlInBlcmNlbnQiOnJldHVybiBvZT1WKG9lLG0uY3VycmVudFBlcmNlbnRhZ2VEZWZhdWx0Rm9ybWF0KCkpLEtlPW0sUWU9KFdlPW9lKS5wcmVmaXhTeW1ib2wsbHQ9aih7aW5zdGFuY2U6c2UoMTAwKnRlLl92YWx1ZSkscHJvdmlkZWRGb3JtYXQ6V2Usc3RhdGU6S2V9KSxQZT1PYmplY3Qu'@; put 'YXNzaWduKHt9LHosV2UpLFFlPyIlIi5jb25jYXQoUGUuc3BhY2VTZXBhcmF0ZWQ/IiAiOiIiKS5jb25jYXQobHQpOiIiLmNvbmNhdChsdCkuY29uY2F0KFBlLnNwYWNlU2VwYXJhdGVkPyIgIjoiIiwiJSIpO2Nhc2UiYnl0ZSI6cmV0dXJuIG9lPVYob2UsbS5jdXJyZW50Qnl0ZURlZmF1bHRG'@; put 'b3JtYXQoKSksdz1tLEo9c2UsbmU9KHA9b2UpLmJhc2V8fCJiaW5hcnkiLExlPShmZT1JKHRlLl92YWx1ZSwoZGU9UltuZV0pLnN1ZmZpeGVzLGRlLnNjYWxlKSkuc3VmZml4LEZlPWooe2luc3RhbmNlOkooZmUudmFsdWUpLHByb3ZpZGVkRm9ybWF0OnAsc3RhdGU6dyxkZWZhdWx0czp3LmN1'@; put 'cnJlbnRCeXRlRGVmYXVsdEZvcm1hdCgpfSksT2U9dy5jdXJyZW50QWJicmV2aWF0aW9ucygpLCIiLmNvbmNhdChGZSkuY29uY2F0KE9lLnNwYWNlZD8iICI6IiIpLmNvbmNhdChMZSk7Y2FzZSJ0aW1lIjpyZXR1cm4gb2U9VihvZSxtLmN1cnJlbnRUaW1lRGVmYXVsdEZvcm1hdCgpKSxOPXRl'@; put 'LGc9TWF0aC5mbG9vcihOLl92YWx1ZS82MC82MCksQz1NYXRoLmZsb29yKChOLl92YWx1ZS02MCpnKjYwKS82MCksUz1NYXRoLnJvdW5kKE4uX3ZhbHVlLTYwKmcqNjAtNjAqQyksIiIuY29uY2F0KGcsIjoiKS5jb25jYXQoQzwxMD8iMCI6IiIpLmNvbmNhdChDLCI6IikuY29uY2F0KFM8MTA/'@; put 'IjAiOiIiKS5jb25jYXQoUyk7Y2FzZSJvcmRpbmFsIjpyZXR1cm4gaGU9dGUsdWU9b2U9VihvZSxtLmN1cnJlbnRPcmRpbmFsRGVmYXVsdEZvcm1hdCgpKSxHPShjZT1tKS5jdXJyZW50T3JkaW5hbCgpLGI9T2JqZWN0LmFzc2lnbih7fSx6LHVlKSxEPWooe2luc3RhbmNlOmhlLHByb3ZpZGVk'@; put 'Rm9ybWF0OnVlLHN0YXRlOmNlfSksSD1HKGhlLl92YWx1ZSksIiIuY29uY2F0KEQpLmNvbmNhdChiLnNwYWNlU2VwYXJhdGVkPyIgIjoiIikuY29uY2F0KEgpO2RlZmF1bHQ6cmV0dXJuIGooe2luc3RhbmNlOnRlLHByb3ZpZGVkRm9ybWF0Om9lLG51bWJybzpzZX0pfXZhciBXZSxLZSxRZSxs'@; put 'dCxQZSxoZSx1ZSxjZSxHLGIsRCxILE4sZyxDLFMscCx3LEosbmUsZGUsZmUsTGUsRmUsT2V9KEIsWSxYKTtyZXR1cm4oZWU9VStlZSkrcX1mdW5jdGlvbiBJKEIsWSxYKXt2YXIgVT1ZWzBdLHE9TWF0aC5hYnMoQik7aWYoWDw9cSl7Zm9yKHZhciBlZT0xO2VlPFkubGVuZ3RoOysrZWUpe3Zh'@; put 'ciB0ZT1NYXRoLnBvdyhYLGVlKSxvZT1NYXRoLnBvdyhYLGVlKzEpO2lmKHRlPD1xJiZxPG9lKXtVPVlbZWVdLEIvPXRlO2JyZWFrfX1VPT09WVswXSYmKEIvPU1hdGgucG93KFgsWS5sZW5ndGgtMSksVT1ZW1kubGVuZ3RoLTFdKX1yZXR1cm57dmFsdWU6QixzdWZmaXg6VX19ZnVuY3Rpb24g'@; put 'ayhCKXtmb3IodmFyIFk9IiIsWD0wO1g8QjtYKyspWSs9IjAiO3JldHVybiBZfWZ1bmN0aW9uIGooQil7dmFyIFk9Qi5pbnN0YW5jZSxYPUIucHJvdmlkZWRGb3JtYXQsVT1CLnN0YXRlLHE9dm9pZCAwPT09VT9tOlUsZWU9Qi5kZWNpbWFsU2VwYXJhdG9yLHRlPUIuZGVmYXVsdHMsb2U9dm9p'@; put 'ZCAwPT09dGU/cS5jdXJyZW50RGVmYXVsdHMoKTp0ZSxzZT1ZLl92YWx1ZTtpZigwPT09c2UmJnEuaGFzWmVyb0Zvcm1hdCgpKXJldHVybiBxLmdldFplcm9Gb3JtYXQoKTtpZighaXNGaW5pdGUoc2UpKXJldHVybiBzZS50b1N0cmluZygpO3ZhciBoZSx1ZSxjZSxHLGIsSCxOLGc9T2JqZWN0'@; put 'LmFzc2lnbih7fSx6LG9lLFgpLEM9Zy50b3RhbExlbmd0aCxTPUM/MDpnLmNoYXJhY3RlcmlzdGljLHY9Zy5vcHRpb25hbENoYXJhY3RlcmlzdGljLHA9Zy5mb3JjZUF2ZXJhZ2Usdz0hIUN8fCEhcHx8Zy5hdmVyYWdlLEo9Qz8tMTp3JiZ2b2lkIDA9PT1YLm1hbnRpc3NhPzA6Zy5tYW50aXNz'@; put 'YSxuZT0hQyYmKHZvaWQgMD09PVgub3B0aW9uYWxNYW50aXNzYT8tMT09PUo6Zy5vcHRpb25hbE1hbnRpc3NhKSxkZT1nLnRyaW1NYW50aXNzYSxmZT1nLnRob3VzYW5kU2VwYXJhdGVkLHhlPWcuc3BhY2VTZXBhcmF0ZWQsTGU9Zy5uZWdhdGl2ZSxGZT1nLmZvcmNlU2lnbixPZT1nLmV4cG9u'@; put 'ZW50aWFsLGplPSIiO2lmKHcpe3ZhciBXZT1mdW5jdGlvbihiZSl7dmFyIEFlPWJlLnZhbHVlLFRlPWJlLmZvcmNlQXZlcmFnZSxxZT1iZS5hYmJyZXZpYXRpb25zLFhlPWJlLnNwYWNlU2VwYXJhdGVkLFVlPXZvaWQgMCE9PVhlJiZYZSxodD1iZS50b3RhbExlbmd0aCxNZT12b2lkIDA9PT1o'@; put 'dD8wOmh0LERlPSIiLHplPU1hdGguYWJzKEFlKSxvdD0tMTtpZih6ZT49TWF0aC5wb3coMTAsMTIpJiYhVGV8fCJ0cmlsbGlvbiI9PT1UZT8oRGU9cWUudHJpbGxpb24sQWUvPU1hdGgucG93KDEwLDEyKSk6emU8TWF0aC5wb3coMTAsMTIpJiZ6ZT49TWF0aC5wb3coMTAsOSkmJiFUZXx8ImJp'@; put 'bGxpb24iPT09VGU/KERlPXFlLmJpbGxpb24sQWUvPU1hdGgucG93KDEwLDkpKTp6ZTxNYXRoLnBvdygxMCw5KSYmemU+PU1hdGgucG93KDEwLDYpJiYhVGV8fCJtaWxsaW9uIj09PVRlPyhEZT1xZS5taWxsaW9uLEFlLz1NYXRoLnBvdygxMCw2KSk6KHplPE1hdGgucG93KDEwLDYpJiZ6ZT49'@; put 'TWF0aC5wb3coMTAsMykmJiFUZXx8InRob3VzYW5kIj09PVRlKSYmKERlPXFlLnRob3VzYW5kLEFlLz1NYXRoLnBvdygxMCwzKSksRGUmJihEZT0oVWU/IiAiOiIiKStEZSksTWUpe3ZhciB1dD1BZS50b1N0cmluZygpLnNwbGl0KCIuIilbMF07b3Q9TWF0aC5tYXgoTWUtdXQubGVuZ3RoLDAp'@; put 'fXJldHVybnt2YWx1ZTpBZSxhYmJyZXZpYXRpb246RGUsbWFudGlzc2FQcmVjaXNpb246b3R9fSh7dmFsdWU6c2UsZm9yY2VBdmVyYWdlOnAsYWJicmV2aWF0aW9uczpxLmN1cnJlbnRBYmJyZXZpYXRpb25zKCksc3BhY2VTZXBhcmF0ZWQ6eGUsdG90YWxMZW5ndGg6Q30pO3NlPVdlLnZhbHVl'@; put 'LGplKz1XZS5hYmJyZXZpYXRpb24sQyYmKEo9V2UubWFudGlzc2FQcmVjaXNpb24pfWlmKE9lKXt2YXIgS2U9KHVlPShoZT17dmFsdWU6c2UsY2hhcmFjdGVyaXN0aWNQcmVjaXNpb246U30pLnZhbHVlLEc9dm9pZCAwPT09KGNlPWhlLmNoYXJhY3RlcmlzdGljUHJlY2lzaW9uKT8wOmNlLEg9'@; put 'KGI9eCh1ZS50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUiKSwyKSlbMV0sTj0rYlswXSxHJiYxPEcmJihOKj1NYXRoLnBvdygxMCxHLTEpLEg9MDw9KEg9K0gtKEctMSkpPyIrIi5jb25jYXQoSCk6SCkse3ZhbHVlOk4sYWJicmV2aWF0aW9uOiJlIi5jb25jYXQoSCl9KTtzZT1LZS52YWx1ZSxq'@; put 'ZT1LZS5hYmJyZXZpYXRpb24ramV9dmFyIFllLFFlLGx0LFBlPWZ1bmN0aW9uKGJlLEFlLFRlLHFlLFhlKXtpZigtMT09PXFlKXJldHVybiBiZTt2YXIgVWU9ZnVuY3Rpb24gRShCLFkpe3JldHVybi0xIT09Qi50b1N0cmluZygpLmluZGV4T2YoImUiKT9mdW5jdGlvbihYLFUpe3ZhciBxPVgu'@; put 'dG9TdHJpbmcoKSxlZT14KHEuc3BsaXQoImUiKSwyKSxvZT1lZVsxXSxzZT14KGVlWzBdLnNwbGl0KCIuIiksMiksaGU9c2VbMF0sdWU9c2VbMV0sY2U9dm9pZCAwPT09dWU/IiI6dWU7aWYoMDwrb2UpcT1oZStjZStrKG9lLWNlLmxlbmd0aCk7ZWxzZXt2YXIgRz0iLiI7Rz0raGU8MD8iLTAi'@; put 'LmNvbmNhdChHKToiMCIuY29uY2F0KEcpO3ZhciBiPShrKC1vZS0xKStNYXRoLmFicyhoZSkrY2UpLnN1YnN0cigwLFUpO2IubGVuZ3RoPFUmJihiKz1rKFUtYi5sZW5ndGgpKSxxPUcrYn1yZXR1cm4gMDwrb2UmJjA8VSYmKHErPSIuIi5jb25jYXQoayhVKSkpLHF9KEIsWSk6KE1hdGgucm91'@; put 'bmQoKyIiLmNvbmNhdChCLCJlKyIpLmNvbmNhdChZKSkvTWF0aC5wb3coMTAsWSkpLnRvRml4ZWQoWSl9KEFlLHFlKSxodD14KFVlLnRvU3RyaW5nKCkuc3BsaXQoIi4iKSwyKSxNZT1odFswXSxEZT1odFsxXSx6ZT12b2lkIDA9PT1EZT8iIjpEZTtpZih6ZS5tYXRjaCgvXjArJC8pJiYoVGV8'@; put 'fFhlKSlyZXR1cm4gTWU7dmFyIG90PXplLm1hdGNoKC8wKyQvKTtyZXR1cm4gWGUmJm90PyIiLmNvbmNhdChNZSwiLiIpLmNvbmNhdCh6ZS50b1N0cmluZygpLnNsaWNlKDAsb3QuaW5kZXgpKTpVZS50b1N0cmluZygpfShzZS50b1N0cmluZygpLHNlLG5lLEosZGUpO3JldHVybiBQZT1mdW5j'@; put 'dGlvbihiZSxBZSxUZSxxZSxYZSl7dmFyIFVlPXFlLmN1cnJlbnREZWxpbWl0ZXJzKCksaHQ9VWUudGhvdXNhbmRzO1hlPVhlfHxVZS5kZWNpbWFsO3ZhciBNZT1VZS50aG91c2FuZHNTaXplfHwzLERlPWJlLnRvU3RyaW5nKCksemU9RGUuc3BsaXQoIi4iKVswXSxvdD1EZS5zcGxpdCgiLiIp'@; put 'WzFdO3JldHVybiBUZSYmKEFlPDAmJih6ZT16ZS5zbGljZSgxKSksZnVuY3Rpb24odXQsTXQpe2Zvcih2YXIgSHQ9W10sUHQ9MCxvbj11dDswPG9uO29uLS0pUHQ9PT1NdCYmKEh0LnVuc2hpZnQob24pLFB0PTApLFB0Kys7cmV0dXJuIEh0fSh6ZS5sZW5ndGgsTWUpLmZvckVhY2goZnVuY3Rp'@; put 'b24odXQsTXQpe3plPXplLnNsaWNlKDAsdXQrTXQpK2h0K3plLnNsaWNlKHV0K010KX0pLEFlPDAmJih6ZT0iLSIuY29uY2F0KHplKSkpLG90P3plK1hlK290OnplfShQZT1mdW5jdGlvbihiZSxBZSxUZSxxZSl7dmFyIFhlPWJlLFVlPXgoWGUudG9TdHJpbmcoKS5zcGxpdCgiLiIpLDIpLGh0'@; put 'PVVlWzBdLE1lPVVlWzFdO2lmKGh0Lm1hdGNoKC9eLT8wJC8pJiZUZSlyZXR1cm4gTWU/IiIuY29uY2F0KGh0LnJlcGxhY2UoIjAiLCIiKSwiLiIpLmNvbmNhdChNZSk6aHQucmVwbGFjZSgiMCIsIiIpO2lmKGh0Lmxlbmd0aDxxZSlmb3IodmFyIERlPXFlLWh0Lmxlbmd0aCx6ZT0wO3plPERl'@; put 'O3plKyspWGU9IjAiLmNvbmNhdChYZSk7cmV0dXJuIFhlLnRvU3RyaW5nKCl9KFBlLDAsdixTKSxzZSxmZSxxLGVlKSwod3x8T2UpJiYoUGUrPWplKSwoRmV8fHNlPDApJiYoWWU9UGUsbHQ9TGUsUGU9MD09PShRZT1zZSk/WWU6MD09K1llP1llLnJlcGxhY2UoIi0iLCIiKTowPFFlPyIrIi5j'@; put 'b25jYXQoWWUpOiJzaWduIj09PWx0P1llOiIoIi5jb25jYXQoWWUucmVwbGFjZSgiLSIsIiIpLCIpIikpLFBlfWZ1bmN0aW9uIFYoQixZKXtpZighQilyZXR1cm4gWTt2YXIgWD1PYmplY3Qua2V5cyhCKTtyZXR1cm4gMT09PVgubGVuZ3RoJiYib3V0cHV0Ij09PVhbMF0/WTpCfUYuZXhwb3J0'@; put 'cz1mdW5jdGlvbihCKXtyZXR1cm57Zm9ybWF0OmZ1bmN0aW9uKCl7Zm9yKHZhciBZPWFyZ3VtZW50cy5sZW5ndGgsWD1uZXcgQXJyYXkoWSksVT0wO1U8WTtVKyspWFtVXT1hcmd1bWVudHNbVV07cmV0dXJuIEsuYXBwbHkodm9pZCAwLFguY29uY2F0KFtCXSkpfSxnZXRCeXRlVW5pdDpmdW5j'@; put 'dGlvbigpe2Zvcih2YXIgWT1hcmd1bWVudHMubGVuZ3RoLFg9bmV3IEFycmF5KFkpLFU9MDtVPFk7VSsrKVhbVV09YXJndW1lbnRzW1VdO3JldHVybiBmdW5jdGlvbihxKXt2YXIgZWU9Ui5nZW5lcmFsO3JldHVybiBJKHEuX3ZhbHVlLGVlLnN1ZmZpeGVzLGVlLnNjYWxlKS5zdWZmaXh9LmFw'@; put 'cGx5KHZvaWQgMCxYLmNvbmNhdChbQl0pKX0sZ2V0QmluYXJ5Qnl0ZVVuaXQ6ZnVuY3Rpb24oKXtmb3IodmFyIFk9YXJndW1lbnRzLmxlbmd0aCxYPW5ldyBBcnJheShZKSxVPTA7VTxZO1UrKylYW1VdPWFyZ3VtZW50c1tVXTtyZXR1cm4gZnVuY3Rpb24ocSl7dmFyIGVlPVIuYmluYXJ5O3Jl'@; put 'dHVybiBJKHEuX3ZhbHVlLGVlLnN1ZmZpeGVzLGVlLnNjYWxlKS5zdWZmaXh9LmFwcGx5KHZvaWQgMCxYLmNvbmNhdChbQl0pKX0sZ2V0RGVjaW1hbEJ5dGVVbml0OmZ1bmN0aW9uKCl7Zm9yKHZhciBZPWFyZ3VtZW50cy5sZW5ndGgsWD1uZXcgQXJyYXkoWSksVT0wO1U8WTtVKyspWFtVXT1h'@; put 'cmd1bWVudHNbVV07cmV0dXJuIGZ1bmN0aW9uKHEpe3ZhciBlZT1SLmRlY2ltYWw7cmV0dXJuIEkocS5fdmFsdWUsZWUuc3VmZml4ZXMsZWUuc2NhbGUpLnN1ZmZpeH0uYXBwbHkodm9pZCAwLFguY29uY2F0KFtCXSkpfSxmb3JtYXRPckRlZmF1bHQ6Vn19fSx7Ii4vZ2xvYmFsU3RhdGUiOjQs'@; put 'Ii4vcGFyc2luZyI6OCwiLi92YWxpZGF0aW5nIjoxMH1dLDQ6W2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgeD1JZSgiLi9lbi1VUyIpLG09SWUoIi4vdmFsaWRhdGluZyIpLGxlPUllKCIuL3BhcnNpbmciKSxNPXt9LE89dm9pZCAwLFI9e30sej1udWxsLEs9e307ZnVuY3Rp'@; put 'b24gSShFKXtPPUV9ZnVuY3Rpb24gaygpe3JldHVybiBSW09dfU0ubGFuZ3VhZ2VzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sUil9LE0uY3VycmVudExhbmd1YWdlPWZ1bmN0aW9uKCl7cmV0dXJuIE99LE0uY3VycmVudEN1cnJlbmN5PWZ1bmN0aW9uKCl7cmV0dXJuIGso'@; put 'KS5jdXJyZW5jeX0sTS5jdXJyZW50QWJicmV2aWF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBrKCkuYWJicmV2aWF0aW9uc30sTS5jdXJyZW50RGVsaW1pdGVycz1mdW5jdGlvbigpe3JldHVybiBrKCkuZGVsaW1pdGVyc30sTS5jdXJyZW50T3JkaW5hbD1mdW5jdGlvbigpe3JldHVybiBrKCku'@; put 'b3JkaW5hbH0sTS5jdXJyZW50RGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxrKCkuZGVmYXVsdHMsSyl9LE0uY3VycmVudE9yZGluYWxEZWZhdWx0Rm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTS5jdXJyZW50RGVmYXVsdHMoKSxr'@; put 'KCkub3JkaW5hbEZvcm1hdCl9LE0uY3VycmVudEJ5dGVEZWZhdWx0Rm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTS5jdXJyZW50RGVmYXVsdHMoKSxrKCkuYnl0ZUZvcm1hdCl9LE0uY3VycmVudFBlcmNlbnRhZ2VEZWZhdWx0Rm9ybWF0PWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIE9iamVjdC5hc3NpZ24oe30sTS5jdXJyZW50RGVmYXVsdHMoKSxrKCkucGVyY2VudGFnZUZvcm1hdCl9LE0uY3VycmVudEN1cnJlbmN5RGVmYXVsdEZvcm1hdD1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LE0uY3VycmVudERlZmF1bHRzKCksaygpLmN1cnJlbmN5Rm9y'@; put 'bWF0KX0sTS5jdXJyZW50VGltZURlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxNLmN1cnJlbnREZWZhdWx0cygpLGsoKS50aW1lRm9ybWF0KX0sTS5zZXREZWZhdWx0cz1mdW5jdGlvbihFKXtFPWxlLnBhcnNlRm9ybWF0KEUpLG0udmFsaWRhdGVGb3Jt'@; put 'YXQoRSkmJihLPUUpfSxNLmdldFplcm9Gb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gen0sTS5zZXRaZXJvRm9ybWF0PWZ1bmN0aW9uKEUpe3JldHVybiB6PSJzdHJpbmciPT10eXBlb2YgRT9FOm51bGx9LE0uaGFzWmVyb0Zvcm1hdD1mdW5jdGlvbigpe3JldHVybiBudWxsIT09en0sTS5sYW5n'@; put 'dWFnZURhdGE9ZnVuY3Rpb24oRSl7aWYoRSl7aWYoUltFXSlyZXR1cm4gUltFXTt0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdGFnICInLmNvbmNhdChFLCciJykpfXJldHVybiBrKCl9LE0ucmVnaXN0ZXJMYW5ndWFnZT1mdW5jdGlvbihFKXt2YXIgaj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZv'@; put 'aWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKCFtLnZhbGlkYXRlTGFuZ3VhZ2UoRSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGxhbmd1YWdlIGRhdGEiKTtSW0UubGFuZ3VhZ2VUYWddPUUsaiYmSShFLmxhbmd1YWdlVGFnKX0sTS5zZXRMYW5ndWFnZT1mdW5jdGlvbihF'@; put 'KXt2YXIgaj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06eC5sYW5ndWFnZVRhZztpZighUltFXSl7dmFyIFY9RS5zcGxpdCgiLSIpWzBdLEI9T2JqZWN0LmtleXMoUikuZmluZChmdW5jdGlvbihZKXtyZXR1cm4gWS5zcGxpdCgiLSIpWzBd'@; put 'PT09Vn0pO3JldHVybiBSW0JdP3ZvaWQgSShCKTp2b2lkIEkoail9SShFKX0sTS5yZWdpc3Rlckxhbmd1YWdlKHgpLE89eC5sYW5ndWFnZVRhZyxGLmV4cG9ydHM9TX0seyIuL2VuLVVTIjoyLCIuL3BhcnNpbmciOjgsIi4vdmFsaWRhdGluZyI6MTB9XSw1OltmdW5jdGlvbihJZSxGLGFlKXsi'@; put 'dXNlIHN0cmljdCI7Ri5leHBvcnRzPWZ1bmN0aW9uKHgpe3JldHVybntsb2FkTGFuZ3VhZ2VzSW5Ob2RlOmZ1bmN0aW9uKG0pe3JldHVybiBsZT14LHZvaWQgbS5mb3JFYWNoKGZ1bmN0aW9uKE0pe3ZhciBPPXZvaWQgMDt0cnl7Tz1JZSgiLi4vbGFuZ3VhZ2VzLyIuY29uY2F0KE0pKX1jYXRj'@; put 'aHtjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gbG9hZCAiJy5jb25jYXQoTSwnIi4gTm8gbWF0Y2hpbmcgbGFuZ3VhZ2UgZmlsZSBmb3VuZC4nKSl9TyYmbGUucmVnaXN0ZXJMYW5ndWFnZShPKX0pO3ZhciBsZX19fX0se31dLDY6W2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0Ijt2YXIg'@; put 'eD1JZSgiYmlnbnVtYmVyLmpzIik7ZnVuY3Rpb24gbShsZSxNLE8pe3ZhciBSPW5ldyB4KGxlLl92YWx1ZSksej1NO3JldHVybiBPLmlzTnVtYnJvKE0pJiYoej1NLl92YWx1ZSksej1uZXcgeCh6KSxsZS5fdmFsdWU9Ui5taW51cyh6KS50b051bWJlcigpLGxlfUYuZXhwb3J0cz1mdW5jdGlv'@; put 'bihsZSl7cmV0dXJue2FkZDpmdW5jdGlvbihNLE8pe3JldHVybiB6PU8sSz1sZSxJPW5ldyB4KChSPU0pLl92YWx1ZSksaz16LEsuaXNOdW1icm8oeikmJihrPXouX3ZhbHVlKSxrPW5ldyB4KGspLFIuX3ZhbHVlPUkucGx1cyhrKS50b051bWJlcigpLFI7dmFyIFIseixLLEksa30sc3VidHJh'@; put 'Y3Q6ZnVuY3Rpb24oTSxPKXtyZXR1cm4gbShNLE8sbGUpfSxtdWx0aXBseTpmdW5jdGlvbihNLE8pe3JldHVybiB6PU8sSz1sZSxJPW5ldyB4KChSPU0pLl92YWx1ZSksaz16LEsuaXNOdW1icm8oeikmJihrPXouX3ZhbHVlKSxrPW5ldyB4KGspLFIuX3ZhbHVlPUkudGltZXMoaykudG9OdW1i'@; put 'ZXIoKSxSO3ZhciBSLHosSyxJLGt9LGRpdmlkZTpmdW5jdGlvbihNLE8pe3JldHVybiB6PU8sSz1sZSxJPW5ldyB4KChSPU0pLl92YWx1ZSksaz16LEsuaXNOdW1icm8oeikmJihrPXouX3ZhbHVlKSxrPW5ldyB4KGspLFIuX3ZhbHVlPUkuZGl2aWRlZEJ5KGspLnRvTnVtYmVyKCksUjt2YXIg'@; put 'Uix6LEssSSxrfSxzZXQ6ZnVuY3Rpb24oTSxPKXtyZXR1cm4gUj1NLEs9ej1PLGxlLmlzTnVtYnJvKHopJiYoSz16Ll92YWx1ZSksUi5fdmFsdWU9SyxSO3ZhciBSLHosS30sZGlmZmVyZW5jZTpmdW5jdGlvbihNLE8pe3JldHVybiBSPU8sbShLPSh6PWxlKShNLl92YWx1ZSksUix6KSxNYXRo'@; put 'LmFicyhLLl92YWx1ZSk7dmFyIFIseixLfX19fSx7ImJpZ251bWJlci5qcyI6MX1dLDc6W2Z1bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KGosVil7Zm9yKHZhciBCPTA7QjxWLmxlbmd0aDtCKyspe3ZhciBZPVZbQl07WS5lbnVtZXJhYmxlPVkuZW51bWVyYWJsZXx8'@; put 'ITEsWS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIFkmJihZLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaixZLmtleSxZKX19dmFyIG09SWUoIi4vZ2xvYmFsU3RhdGUiKSxsZT1JZSgiLi92YWxpZGF0aW5nIiksTT1JZSgiLi9sb2FkaW5nIikoRSksTz1JZSgiLi91bmZv'@; put 'cm1hdHRpbmciKSxSPUllKCIuL2Zvcm1hdHRpbmciKShFKSx6PUllKCIuL21hbmlwdWxhdGluZyIpKEUpLEs9SWUoIi4vcGFyc2luZyIpLEk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBqKFgpeyhmdW5jdGlvbihVLHEpe2lmKCEoVSBpbnN0YW5jZW9mIHEpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNh'@; put 'bm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxqKSx0aGlzLl92YWx1ZT1YfXZhciBWLEI7cmV0dXJuIFY9aiwoQj1be2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5fdmFsdWUpfX0se2tleToiZm9ybWF0Iix2YWx1ZTpmdW5jdGlvbigp'@; put 'e3JldHVybiBSLmZvcm1hdCh0aGlzLDA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSl9fSx7a2V5OiJmb3JtYXRDdXJyZW5jeSIsdmFsdWU6ZnVuY3Rpb24oWCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBYJiYoWD1LLnBhcnNlRm9ybWF0'@; put 'KFgpKSwoWD1SLmZvcm1hdE9yRGVmYXVsdChYLG0uY3VycmVudEN1cnJlbmN5RGVmYXVsdEZvcm1hdCgpKSkub3V0cHV0PSJjdXJyZW5jeSIsUi5mb3JtYXQodGhpcyxYKX19LHtrZXk6ImZvcm1hdFRpbWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIFg9MDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lk'@; put 'IDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O3JldHVybiBYLm91dHB1dD0idGltZSIsUi5mb3JtYXQodGhpcyxYKX19LHtrZXk6ImJpbmFyeUJ5dGVVbml0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gUi5nZXRCaW5hcnlCeXRlVW5pdCh0aGlzKX19LHtrZXk6ImRlY2ltYWxC'@; put 'eXRlVW5pdHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFIuZ2V0RGVjaW1hbEJ5dGVVbml0KHRoaXMpfX0se2tleToiYnl0ZVVuaXRzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBSLmdldEJ5dGVVbml0KHRoaXMpfX0se2tleToiZGlmZmVyZW5jZSIsdmFsdWU6ZnVuY3Rpb24oWCl7cmV0'@; put 'dXJuIHouZGlmZmVyZW5jZSh0aGlzLFgpfX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihYKXtyZXR1cm4gei5hZGQodGhpcyxYKX19LHtrZXk6InN1YnRyYWN0Iix2YWx1ZTpmdW5jdGlvbihYKXtyZXR1cm4gei5zdWJ0cmFjdCh0aGlzLFgpfX0se2tleToibXVsdGlwbHkiLHZhbHVlOmZ1'@; put 'bmN0aW9uKFgpe3JldHVybiB6Lm11bHRpcGx5KHRoaXMsWCl9fSx7a2V5OiJkaXZpZGUiLHZhbHVlOmZ1bmN0aW9uKFgpe3JldHVybiB6LmRpdmlkZSh0aGlzLFgpfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihYKXtyZXR1cm4gei5zZXQodGhpcyxrKFgpKX19LHtrZXk6InZhbHVlIix2'@; put 'YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6InZhbHVlT2YiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX1dKSYmeChWLnByb3RvdHlwZSxCKSxqfSgpO2Z1bmN0aW9uIGsoail7dmFyIFY9ajtyZXR1cm4gRS5pc051bWJybyhqKT9WPWouX3Zh'@; put 'bHVlOiJzdHJpbmciPT10eXBlb2Ygaj9WPUUudW5mb3JtYXQoaik6aXNOYU4oaikmJihWPU5hTiksVn1mdW5jdGlvbiBFKGope3JldHVybiBuZXcgSShrKGopKX1FLnZlcnNpb249IjIuMS4yIixFLmlzTnVtYnJvPWZ1bmN0aW9uKGope3JldHVybiBqIGluc3RhbmNlb2YgSX0sRS5sYW5ndWFn'@; put 'ZT1tLmN1cnJlbnRMYW5ndWFnZSxFLnJlZ2lzdGVyTGFuZ3VhZ2U9bS5yZWdpc3Rlckxhbmd1YWdlLEUuc2V0TGFuZ3VhZ2U9bS5zZXRMYW5ndWFnZSxFLmxhbmd1YWdlcz1tLmxhbmd1YWdlcyxFLmxhbmd1YWdlRGF0YT1tLmxhbmd1YWdlRGF0YSxFLnplcm9Gb3JtYXQ9bS5zZXRaZXJvRm9y'@; put 'bWF0LEUuZGVmYXVsdEZvcm1hdD1tLmN1cnJlbnREZWZhdWx0cyxFLnNldERlZmF1bHRzPW0uc2V0RGVmYXVsdHMsRS5kZWZhdWx0Q3VycmVuY3lGb3JtYXQ9bS5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0LEUudmFsaWRhdGU9bGUudmFsaWRhdGUsRS5sb2FkTGFuZ3VhZ2VzSW5Ob2Rl'@; put 'PU0ubG9hZExhbmd1YWdlc0luTm9kZSxFLnVuZm9ybWF0PU8udW5mb3JtYXQsRi5leHBvcnRzPUV9LHsiLi9mb3JtYXR0aW5nIjozLCIuL2dsb2JhbFN0YXRlIjo0LCIuL2xvYWRpbmciOjUsIi4vbWFuaXB1bGF0aW5nIjo2LCIuL3BhcnNpbmciOjgsIi4vdW5mb3JtYXR0aW5nIjo5LCIuL3Zh'@; put 'bGlkYXRpbmciOjEwfV0sODpbZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO0YuZXhwb3J0cz17cGFyc2VGb3JtYXQ6ZnVuY3Rpb24oeCl7dmFyIG0sbGUsTSxPLFIseixLLEksayxFLGosVixCLFksWCxVLHEsZWUsdGUsb2Usc2U9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1h'@; put 'cmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiJzdHJpbmciIT10eXBlb2YgeD94OihsZT1zZSxSPXNlLGZ1bmN0aW9uKGhlLHVlKXtpZigtMT09PWhlLmluZGV4T2YoIiQiKSl7aWYoLTE9PT1oZS5pbmRleE9mKCIlIikpcmV0dXJuLTEhPT1oZS5pbmRleE9mKCJiZCIpPyh1ZS5v'@; put 'dXRwdXQ9ImJ5dGUiLHVlLmJhc2U9ImdlbmVyYWwiKTotMSE9PWhlLmluZGV4T2YoImIiKT8odWUub3V0cHV0PSJieXRlIix1ZS5iYXNlPSJiaW5hcnkiKTotMSE9PWhlLmluZGV4T2YoImQiKT8odWUub3V0cHV0PSJieXRlIix1ZS5iYXNlPSJkZWNpbWFsIik6LTE9PT1oZS5pbmRleE9mKCI6'@; put 'Iik/LTEhPT1oZS5pbmRleE9mKCJvIikmJih1ZS5vdXRwdXQ9Im9yZGluYWwiKTp1ZS5vdXRwdXQ9InRpbWUiO3VlLm91dHB1dD0icGVyY2VudCJ9ZWxzZSB1ZS5vdXRwdXQ9ImN1cnJlbmN5In0oeD0oej0oTz14PShNPShtPXgpLm1hdGNoKC9eeyhbXn1dKil9LykpPyhsZS5wcmVmaXg9TVsx'@; put 'XSxtLnNsaWNlKE1bMF0ubGVuZ3RoKSk6bSkubWF0Y2goL3soW159XSopfSQvKSk/KFIucG9zdGZpeD16WzFdLE8uc2xpY2UoMCwtelswXS5sZW5ndGgpKTpPLHNlKSxLPXNlLChJPXgubWF0Y2goL1sxLTldK1swLTldKi8pKSYmKEsudG90YWxMZW5ndGg9K0lbMF0pLGs9c2UsKEU9eC5zcGxp'@; put 'dCgiLiIpWzBdLm1hdGNoKC8wKy8pKSYmKGsuY2hhcmFjdGVyaXN0aWM9RVswXS5sZW5ndGgpLGZ1bmN0aW9uKGhlLHVlKXtpZigtMSE9PWhlLmluZGV4T2YoIi4iKSl7dmFyIGNlPWhlLnNwbGl0KCIuIilbMF07dWUub3B0aW9uYWxDaGFyYWN0ZXJpc3RpYz0tMT09PWNlLmluZGV4T2YoIjAi'@; put 'KX19KHgsc2UpLGo9c2UsLTEhPT14LmluZGV4T2YoImEiKSYmKGouYXZlcmFnZT0hMCksQj1zZSwtMSE9PShWPXgpLmluZGV4T2YoIksiKT9CLmZvcmNlQXZlcmFnZT0idGhvdXNhbmQiOi0xIT09Vi5pbmRleE9mKCJNIik/Qi5mb3JjZUF2ZXJhZ2U9Im1pbGxpb24iOi0xIT09Vi5pbmRleE9m'@; put 'KCJCIik/Qi5mb3JjZUF2ZXJhZ2U9ImJpbGxpb24iOi0xIT09Vi5pbmRleE9mKCJUIikmJihCLmZvcmNlQXZlcmFnZT0idHJpbGxpb24iKSxmdW5jdGlvbihoZSx1ZSl7dmFyIGNlPWhlLnNwbGl0KCIuIilbMV07aWYoY2Upe3ZhciBHPWNlLm1hdGNoKC8wKy8pO0cmJih1ZS5tYW50aXNzYT1H'@; put 'WzBdLmxlbmd0aCl9fSh4LHNlKSxYPXNlLChZPXgpLm1hdGNoKC9cW1wuXS8pP1gub3B0aW9uYWxNYW50aXNzYT0hMDpZLm1hdGNoKC9cLi8pJiYoWC5vcHRpb25hbE1hbnRpc3NhPSExKSxVPXNlLC0xIT09eC5pbmRleE9mKCIsIikmJihVLnRob3VzYW5kU2VwYXJhdGVkPSEwKSxxPXNlLC0x'@; put 'IT09eC5pbmRleE9mKCIgIikmJihxLnNwYWNlU2VwYXJhdGVkPSEwKSx0ZT1zZSwoZWU9eCkubWF0Y2goL15cKz9cKFteKV0qXCkkLykmJih0ZS5uZWdhdGl2ZT0icGFyZW50aGVzaXMiKSxlZS5tYXRjaCgvXlwrPy0vKSYmKHRlLm5lZ2F0aXZlPSJzaWduIiksb2U9c2UseC5tYXRjaCgvXlwr'@; put 'LykmJihvZS5mb3JjZVNpZ249ITApLHNlKX19fSx7fV0sOTpbZnVuY3Rpb24oSWUsRixhZSl7InVzZSBzdHJpY3QiO3ZhciB4PVt7a2V5OiJaaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDcpfSx7a2V5OiJaQiIsZmFjdG9yOk1hdGgucG93KDFlMyw3KX0se2tleToiWWlCIixmYWN0b3I6TWF0'@; put 'aC5wb3coMTAyNCw4KX0se2tleToiWUIiLGZhY3RvcjpNYXRoLnBvdygxZTMsOCl9LHtrZXk6IlRpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsNCl9LHtrZXk6IlRCIixmYWN0b3I6TWF0aC5wb3coMWUzLDQpfSx7a2V5OiJQaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDUpfSx7a2V5OiJQQiIs'@; put 'ZmFjdG9yOk1hdGgucG93KDFlMyw1KX0se2tleToiTWlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCwyKX0se2tleToiTUIiLGZhY3RvcjpNYXRoLnBvdygxZTMsMil9LHtrZXk6IktpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsMSl9LHtrZXk6IktCIixmYWN0b3I6TWF0aC5wb3coMWUzLDEpfSx7'@; put 'a2V5OiJHaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDMpfSx7a2V5OiJHQiIsZmFjdG9yOk1hdGgucG93KDFlMywzKX0se2tleToiRWlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCw2KX0se2tleToiRUIiLGZhY3RvcjpNYXRoLnBvdygxZTMsNil9LHtrZXk6IkIiLGZhY3RvcjoxfV07ZnVuY3Rp'@; put 'b24gbShNKXtyZXR1cm4gTS5yZXBsYWNlKC9bLS9cXF4kKis/LigpfFtcXXt9XS9nLCJcXCQmIil9Ri5leHBvcnRzPXt1bmZvcm1hdDpmdW5jdGlvbihNLE8pe3ZhciBSLEk9SWUoIi4vZ2xvYmFsU3RhdGUiKSxrPUkuY3VycmVudERlbGltaXRlcnMoKSxFPUkuY3VycmVudEN1cnJlbmN5KCku'@; put 'c3ltYm9sLGo9SS5jdXJyZW50T3JkaW5hbCgpLFY9SS5nZXRaZXJvRm9ybWF0KCksQj1JLmN1cnJlbnRBYmJyZXZpYXRpb25zKCksWT12b2lkIDA7aWYoInN0cmluZyI9PXR5cGVvZiBNKVk9ZnVuY3Rpb24oWCxVKXtpZighWC5pbmRleE9mKCI6Iil8fCI6Ij09PVUudGhvdXNhbmRzKXJldHVy'@; put 'biExO3ZhciBxPVguc3BsaXQoIjoiKTtpZigzIT09cS5sZW5ndGgpcmV0dXJuITE7dmFyIHRlPStxWzFdLG9lPStxWzJdO3JldHVybiFpc05hTigrcVswXSkmJiFpc05hTih0ZSkmJiFpc05hTihvZSl9KE0sayk/KyhSPU0uc3BsaXQoIjoiKSlbMl0rNjAqK1JbMV0rMzYwMCorUlswXTpmdW5j'@; put 'dGlvbiBsZShNLE8pe3ZhciBSPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiIix6PTM8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbM106dm9pZCAwLEs9NDxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1s0XTp2b2lkIDAsST01PGFy'@; put 'Z3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzVdOnZvaWQgMCxrPTY8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbNl06dm9pZCAwO2lmKCIiIT09TSlyZXR1cm4gTT09PUs/MDpmdW5jdGlvbiBFKGosVil7dmFyIEI9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/'@; put 'YXJndW1lbnRzWzJdOiIiLFk9Mzxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1szXTp2b2lkIDAsWD00PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzRdOnZvaWQgMCxVPTU8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbNV06dm9pZCAwLHE9Njxhcmd1bWVudHMubGVuZ3RoP2FyZ3Vt'@; put 'ZW50c1s2XTp2b2lkIDA7aWYoIWlzTmFOKCtqKSlyZXR1cm4rajt2YXIgZWU9IiIsdGU9ai5yZXBsYWNlKC8oXlteKF0qKVwoKC4qKVwpKFteKV0qJCkvLCIkMSQyJDMiKTtpZih0ZSE9PWopcmV0dXJuLTEqRSh0ZSxWLEIsWSxYLFUscSk7Zm9yKHZhciBvZT0wO29lPHgubGVuZ3RoO29lKysp'@; put 'e3ZhciBzZT14W29lXTtpZigoZWU9ai5yZXBsYWNlKHNlLmtleSwiIikpIT09ailyZXR1cm4gRShlZSxWLEIsWSxYLFUscSkqc2UuZmFjdG9yfWlmKChlZT1qLnJlcGxhY2UoIiUiLCIiKSkhPT1qKXJldHVybiBFKGVlLFYsQixZLFgsVSxxKS8xMDA7dmFyIGhlPXBhcnNlRmxvYXQoaik7aWYo'@; put 'IWlzTmFOKGhlKSl7dmFyIHVlPVkoaGUpO2lmKHVlJiYiLiIhPT11ZSYmKGVlPWoucmVwbGFjZShuZXcgUmVnRXhwKCIiLmNvbmNhdChtKHVlKSwiJCIpKSwiIikpIT09ailyZXR1cm4gRShlZSxWLEIsWSxYLFUscSk7dmFyIGNlPXt9O09iamVjdC5rZXlzKFUpLmZvckVhY2goZnVuY3Rpb24o'@; put 'Qyl7Y2VbVVtDXV09Q30pO2Zvcih2YXIgRz1PYmplY3Qua2V5cyhjZSkuc29ydCgpLnJldmVyc2UoKSxiPUcubGVuZ3RoLEQ9MDtEPGI7RCsrKXt2YXIgSD1HW0RdLE49Y2VbSF07aWYoKGVlPWoucmVwbGFjZShILCIiKSkhPT1qKXt2YXIgZz12b2lkIDA7c3dpdGNoKE4pe2Nhc2UidGhvdXNh'@; put 'bmQiOmc9TWF0aC5wb3coMTAsMyk7YnJlYWs7Y2FzZSJtaWxsaW9uIjpnPU1hdGgucG93KDEwLDYpO2JyZWFrO2Nhc2UiYmlsbGlvbiI6Zz1NYXRoLnBvdygxMCw5KTticmVhaztjYXNlInRyaWxsaW9uIjpnPU1hdGgucG93KDEwLDEyKX1yZXR1cm4gRShlZSxWLEIsWSxYLFUscSkqZ319fX0o'@; put 'ZnVuY3Rpb24oRSxqKXt2YXIgQj1FLnJlcGxhY2UoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiLCIiKTtyZXR1cm4oQj1CLnJlcGxhY2UobmV3IFJlZ0V4cCgiKFswLTldKSIuY29uY2F0KG0oai50aG91c2FuZHMpLCIoWzAtOV0pIiks'@; put 'ImciKSwiJDEkMiIpKS5yZXBsYWNlKGouZGVjaW1hbCwiLiIpfShNLE8sUiksTyxSLHosSyxJLGspfShNLGssRSxqLFYsQixPKTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgTSlyZXR1cm47WT1NfWlmKHZvaWQgMCE9PVkpcmV0dXJuIFl9fX0seyIuL2dsb2JhbFN0YXRlIjo0fV0sMTA6W2Z1'@; put 'bmN0aW9uKEllLEYsYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtKGspe3JldHVybihtPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKEUpe3JldHVybiB0eXBlb2YgRX06ZnVuY3Rpb24oRSl7cmV0dXJuIEUmJiJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJkUuY29uc3RydWN0b3I9PT1TeW1ib2wmJkUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBFfSkoayl9dmFyIGxlPUllKCIuL3VuZm9ybWF0dGluZyIpLE09L15bYS16XXsyLDN9KC1bYS16QS1aXXs0fSk/KC0oW0EtWl17Mn18WzAt'@; put 'OV17M30pKT8kLyxPPXtvdXRwdXQ6e3R5cGU6InN0cmluZyIsdmFsaWRWYWx1ZXM6WyJjdXJyZW5jeSIsInBlcmNlbnQiLCJieXRlIiwidGltZSIsIm9yZGluYWwiLCJudW1iZXIiXX0sYmFzZTp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbImRlY2ltYWwiLCJiaW5hcnkiLCJnZW5lcmFs'@; put 'Il0scmVzdHJpY3Rpb246ZnVuY3Rpb24oayxFKXtyZXR1cm4iYnl0ZSI9PT1FLm91dHB1dH0sbWVzc2FnZToiYGJhc2VgIG11c3QgYmUgcHJvdmlkZWQgb25seSB3aGVuIHRoZSBvdXRwdXQgaXMgYGJ5dGVgIixtYW5kYXRvcnk6ZnVuY3Rpb24oayl7cmV0dXJuImJ5dGUiPT09ay5vdXRwdXR9'@; put 'fSxjaGFyYWN0ZXJpc3RpYzp7dHlwZToibnVtYmVyIixyZXN0cmljdGlvbjpmdW5jdGlvbihrKXtyZXR1cm4gMDw9a30sbWVzc2FnZToidmFsdWUgbXVzdCBiZSBwb3NpdGl2ZSJ9LHByZWZpeDoic3RyaW5nIixwb3N0Zml4OiJzdHJpbmciLGZvcmNlQXZlcmFnZTp7dHlwZToic3RyaW5nIix2'@; put 'YWxpZFZhbHVlczpbInRyaWxsaW9uIiwiYmlsbGlvbiIsIm1pbGxpb24iLCJ0aG91c2FuZCJdfSxhdmVyYWdlOiJib29sZWFuIixjdXJyZW5jeVBvc2l0aW9uOnt0eXBlOiJzdHJpbmciLHZhbGlkVmFsdWVzOlsicHJlZml4IiwiaW5maXgiLCJwb3N0Zml4Il19LGN1cnJlbmN5U3ltYm9sOiJz'@; put 'dHJpbmciLHRvdGFsTGVuZ3RoOnt0eXBlOiJudW1iZXIiLHJlc3RyaWN0aW9uczpbe3Jlc3RyaWN0aW9uOmZ1bmN0aW9uKGspe3JldHVybiAwPD1rfSxtZXNzYWdlOiJ2YWx1ZSBtdXN0IGJlIHBvc2l0aXZlIn0se3Jlc3RyaWN0aW9uOmZ1bmN0aW9uKGssRSl7cmV0dXJuIUUuZXhwb25lbnRp'@; put 'YWx9LG1lc3NhZ2U6ImB0b3RhbExlbmd0aGAgaXMgaW5jb21wYXRpYmxlIHdpdGggYGV4cG9uZW50aWFsYCJ9XX0sbWFudGlzc2E6e3R5cGU6Im51bWJlciIscmVzdHJpY3Rpb246ZnVuY3Rpb24oayl7cmV0dXJuIDA8PWt9LG1lc3NhZ2U6InZhbHVlIG11c3QgYmUgcG9zaXRpdmUifSxvcHRp'@; put 'b25hbE1hbnRpc3NhOiJib29sZWFuIix0cmltTWFudGlzc2E6ImJvb2xlYW4iLG9wdGlvbmFsQ2hhcmFjdGVyaXN0aWM6ImJvb2xlYW4iLHRob3VzYW5kU2VwYXJhdGVkOiJib29sZWFuIixzcGFjZVNlcGFyYXRlZDoiYm9vbGVhbiIsYWJicmV2aWF0aW9uczp7dHlwZToib2JqZWN0IixjaGls'@; put 'ZHJlbjp7dGhvdXNhbmQ6InN0cmluZyIsbWlsbGlvbjoic3RyaW5nIixiaWxsaW9uOiJzdHJpbmciLHRyaWxsaW9uOiJzdHJpbmcifX0sbmVnYXRpdmU6e3R5cGU6InN0cmluZyIsdmFsaWRWYWx1ZXM6WyJzaWduIiwicGFyZW50aGVzaXMiXX0sZm9yY2VTaWduOiJib29sZWFuIixleHBvbmVu'@; put 'dGlhbDp7dHlwZToiYm9vbGVhbiJ9LHByZWZpeFN5bWJvbDp7dHlwZToiYm9vbGVhbiIscmVzdHJpY3Rpb246ZnVuY3Rpb24oayxFKXtyZXR1cm4icGVyY2VudCI9PT1FLm91dHB1dH0sbWVzc2FnZToiYHByZWZpeFN5bWJvbGAgY2FuIGJlIHByb3ZpZGVkIG9ubHkgd2hlbiB0aGUgb3V0cHV0'@; put 'IGlzIGBwZXJjZW50YCJ9fSxSPXtsYW5ndWFnZVRhZzp7dHlwZToic3RyaW5nIixtYW5kYXRvcnk6ITAscmVzdHJpY3Rpb246ZnVuY3Rpb24oayl7cmV0dXJuIGsubWF0Y2goTSl9LG1lc3NhZ2U6InRoZSBsYW5ndWFnZSB0YWcgbXVzdCBmb2xsb3cgdGhlIEJDUCA0NyBzcGVjaWZpY2F0aW9u'@; put 'IChzZWUgaHR0cHM6Ly90b29scy5pZWZ0Lm9yZy9odG1sL2JjcDQ3KSJ9LGRlbGltaXRlcnM6e3R5cGU6Im9iamVjdCIsY2hpbGRyZW46e3Rob3VzYW5kczoic3RyaW5nIixkZWNpbWFsOiJzdHJpbmciLHRob3VzYW5kc1NpemU6Im51bWJlciJ9LG1hbmRhdG9yeTohMH0sYWJicmV2aWF0aW9u'@; put 'czp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7dGhvdXNhbmQ6e3R5cGU6InN0cmluZyIsbWFuZGF0b3J5OiEwfSxtaWxsaW9uOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMH0sYmlsbGlvbjp7dHlwZToic3RyaW5nIixtYW5kYXRvcnk6ITB9LHRyaWxsaW9uOnt0eXBlOiJzdHJpbmciLG1h'@; put 'bmRhdG9yeTohMH19LG1hbmRhdG9yeTohMH0sc3BhY2VTZXBhcmF0ZWQ6ImJvb2xlYW4iLG9yZGluYWw6e3R5cGU6ImZ1bmN0aW9uIixtYW5kYXRvcnk6ITB9LGN1cnJlbmN5Ont0eXBlOiJvYmplY3QiLGNoaWxkcmVuOntzeW1ib2w6InN0cmluZyIscG9zaXRpb246InN0cmluZyIsY29kZToi'@; put 'c3RyaW5nIn0sbWFuZGF0b3J5OiEwfSxkZWZhdWx0czoiZm9ybWF0IixvcmRpbmFsRm9ybWF0OiJmb3JtYXQiLGJ5dGVGb3JtYXQ6ImZvcm1hdCIscGVyY2VudGFnZUZvcm1hdDoiZm9ybWF0IixjdXJyZW5jeUZvcm1hdDoiZm9ybWF0Iix0aW1lRGVmYXVsdHM6ImZvcm1hdCIsZm9ybWF0czp7'@; put 'dHlwZToib2JqZWN0IixjaGlsZHJlbjp7Zm91ckRpZ2l0czp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3R5cGU6ImZvcm1hdCIsbWFuZGF0b3J5OiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7dHlwZToiZm9ybWF0IixtYW5kYXRv'@; put 'cnk6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9fX19O2Z1bmN0aW9uIHooayl7cmV0dXJuISFsZS51bmZvcm1hdChrKX1mdW5jdGlvbiBLKGssRSxqKXt2YXIgVj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJn'@; put 'dW1lbnRzWzNdLEI9T2JqZWN0LmtleXMoaykubWFwKGZ1bmN0aW9uKFkpe2lmKCFFW1ldKXJldHVybiBjb25zb2xlLmVycm9yKCIiLmNvbmNhdChqLCIgSW52YWxpZCBrZXk6ICIpLmNvbmNhdChZKSksITE7dmFyIFg9a1tZXSxVPUVbWV07aWYoInN0cmluZyI9PXR5cGVvZiBVJiYoVT17dHlw'@; put 'ZTpVfSksImZvcm1hdCI9PT1VLnR5cGUpe2lmKCFLKFgsTywiW1ZhbGlkYXRlICIuY29uY2F0KFksIl0iKSwhMCkpcmV0dXJuITF9ZWxzZSBpZihtKFgpIT09VS50eXBlKXJldHVybiBjb25zb2xlLmVycm9yKCIiLmNvbmNhdChqLCIgIikuY29uY2F0KFksJyB0eXBlIG1pc21hdGNoZWQ6ICIn'@; put 'KS5jb25jYXQoVS50eXBlLCciIGV4cGVjdGVkLCAiJykuY29uY2F0KG0oWCksJyIgcHJvdmlkZWQnKSksITE7aWYoVS5yZXN0cmljdGlvbnMmJlUucmVzdHJpY3Rpb25zLmxlbmd0aClmb3IodmFyIHE9VS5yZXN0cmljdGlvbnMubGVuZ3RoLGVlPTA7ZWU8cTtlZSsrKXt2YXIgdGU9VS5yZXN0'@; put 'cmljdGlvbnNbZWVdLHNlPXRlLm1lc3NhZ2U7aWYoISgwLHRlLnJlc3RyaWN0aW9uKShYLGspKXJldHVybiBjb25zb2xlLmVycm9yKCIiLmNvbmNhdChqLCIgIikuY29uY2F0KFksIiBpbnZhbGlkIHZhbHVlOiAiKS5jb25jYXQoc2UpKSwhMX1yZXR1cm4gVS5yZXN0cmljdGlvbiYmIVUucmVz'@; put 'dHJpY3Rpb24oWCxrKT8oY29uc29sZS5lcnJvcigiIi5jb25jYXQoaiwiICIpLmNvbmNhdChZLCIgaW52YWxpZCB2YWx1ZTogIikuY29uY2F0KFUubWVzc2FnZSkpLCExKTpVLnZhbGlkVmFsdWVzJiYtMT09PVUudmFsaWRWYWx1ZXMuaW5kZXhPZihYKT8oY29uc29sZS5lcnJvcigiIi5jb25j'@; put 'YXQoaiwiICIpLmNvbmNhdChZLCIgaW52YWxpZCB2YWx1ZTogbXVzdCBiZSBhbW9uZyAiKS5jb25jYXQoSlNPTi5zdHJpbmdpZnkoVS52YWxpZFZhbHVlcyksJywgIicpLmNvbmNhdChYLCciIHByb3ZpZGVkJykpLCExKTohKFUuY2hpbGRyZW4mJiFLKFgsVS5jaGlsZHJlbiwiW1ZhbGlkYXRl'@; put 'ICIuY29uY2F0KFksIl0iKSkpfSk7cmV0dXJuIFZ8fEIucHVzaC5hcHBseShCLGZ1bmN0aW9uIHgoayl7cmV0dXJuIGZ1bmN0aW9uKEUpe2lmKEFycmF5LmlzQXJyYXkoRSkpe2Zvcih2YXIgaj0wLFY9bmV3IEFycmF5KEUubGVuZ3RoKTtqPEUubGVuZ3RoO2orKylWW2pdPUVbal07cmV0dXJu'@; put 'IFZ9fShrKXx8ZnVuY3Rpb24oRSl7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChFKXx8IltvYmplY3QgQXJndW1lbnRzXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoRSkpcmV0dXJuIEFycmF5LmZyb20oRSl9KGspfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJy'@; put 'b3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9KCl9KE9iamVjdC5rZXlzKEUpLm1hcChmdW5jdGlvbihZKXt2YXIgWD1FW1ldO2lmKCJzdHJpbmciPT10eXBlb2YgWCYmKFg9e3R5cGU6WH0pLFgubWFuZGF0b3J5KXt2YXIgVT1YLm1hbmRhdG9y'@; put 'eTtpZigiZnVuY3Rpb24iPT10eXBlb2YgVSYmKFU9VShrKSksVSYmdm9pZCAwPT09a1tZXSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQoaiwnIE1pc3NpbmcgbWFuZGF0b3J5IGtleSAiJykuY29uY2F0KFksJyInKSksITF9cmV0dXJuITB9KSkpLEIucmVkdWNlKGZ1bmN0aW9uKFks'@; put 'WCl7cmV0dXJuIFkmJlh9LCEwKX1mdW5jdGlvbiBJKGspe3JldHVybiBLKGssTywiW1ZhbGlkYXRlIGZvcm1hdF0iKX1GLmV4cG9ydHM9e3ZhbGlkYXRlOmZ1bmN0aW9uKGssRSl7dmFyIGo9eihrKSxWPUkoRSk7cmV0dXJuIGomJlZ9LHZhbGlkYXRlRm9ybWF0OkksdmFsaWRhdGVJbnB1dDp6'@; put 'LHZhbGlkYXRlTGFuZ3VhZ2U6ZnVuY3Rpb24oayl7cmV0dXJuIEsoayxSLCJbVmFsaWRhdGUgbGFuZ3VhZ2VdIil9fX0seyIuL3VuZm9ybWF0dGluZyI6OX1dfSx7fSxbN10pKDcpfSw4MTMyMjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMjc0MTQpO0llLmNlcnRpZmljYXRl'@; put 'PUYoOTcyOTApO3ZhciB4PWFlLmRlZmluZSgiUlNBUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhpcy5rZXkoInB1YmxpY0V4cG9uZW50IikuaW50KCksdGhpcy5rZXkoInBy'@; put 'aXZhdGVFeHBvbmVudCIpLmludCgpLHRoaXMua2V5KCJwcmltZTEiKS5pbnQoKSx0aGlzLmtleSgicHJpbWUyIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MSIpLmludCgpLHRoaXMua2V5KCJleHBvbmVudDIiKS5pbnQoKSx0aGlzLmtleSgiY29lZmZpY2llbnQiKS5pbnQoKSl9KTtJZS5S'@; put 'U0FQcml2YXRlS2V5PXg7dmFyIG09YWUuZGVmaW5lKCJSU0FQdWJsaWNLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSl9KTtJZS5SU0FQdWJsaWNLZXk9bTt2YXIgbGU9YWUuZGVm'@; put 'aW5lKCJTdWJqZWN0UHVibGljS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKE0pLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSk7SWUuUHVibGljS2V5PWxlO3ZhciBNPWFlLmRlZmluZSgiQWxnb3JpdGht'@; put 'SWRlbnRpZmllciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgibm9uZSIpLm51bGxfKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInBhcmFtcyIpLnNlcSgp'@; put 'Lm9iaih0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSkub3B0aW9uYWwoKSl9KSxPPWFlLmRlZmluZSgiUHJpdmF0ZUtleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlz'@; put 'LmtleSgiYWxnb3JpdGhtIikudXNlKE0pLHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO0llLlByaXZhdGVLZXk9Tzt2YXIgUj1hZS5kZWZpbmUoIkVuY3J5cHRlZFByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdv'@; put 'cml0aG0iKS5zZXEoKS5vYmoodGhpcy5rZXkoImlkIikub2JqaWQoKSx0aGlzLmtleSgiZGVjcnlwdCIpLnNlcSgpLm9iaih0aGlzLmtleSgia2RlIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImtkZXBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgic2Fs'@; put 'dCIpLm9jdHN0cigpLHRoaXMua2V5KCJpdGVycyIpLmludCgpKSksdGhpcy5rZXkoImNpcGhlciIpLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnbyIpLm9iamlkKCksdGhpcy5rZXkoIml2Iikub2N0c3RyKCkpKSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7SWUu'@; put 'RW5jcnlwdGVkUHJpdmF0ZUtleT1SO3ZhciB6PWFlLmRlZmluZSgiRFNBUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJwIikuaW50KCksdGhpcy5rZXkoInEiKS5pbnQoKSx0aGlzLmtleSgiZyIpLmludCgp'@; put 'LHRoaXMua2V5KCJwdWJfa2V5IikuaW50KCksdGhpcy5rZXkoInByaXZfa2V5IikuaW50KCkpfSk7SWUuRFNBUHJpdmF0ZUtleT16LEllLkRTQXBhcmFtPWFlLmRlZmluZSgiRFNBcGFyYW0iLGZ1bmN0aW9uKCl7dGhpcy5pbnQoKX0pO3ZhciBLPWFlLmRlZmluZSgiRUNQcml2YXRlS2V5Iixm'@; put 'dW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInByaXZhdGVLZXkiKS5vY3RzdHIoKSx0aGlzLmtleSgicGFyYW1ldGVycyIpLm9wdGlvbmFsKCkuZXhwbGljaXQoMCkudXNlKEkpLHRoaXMua2V5KCJwdWJsaWNLZXkiKS5vcHRpb25h'@; put 'bCgpLmV4cGxpY2l0KDEpLmJpdHN0cigpKX0pO0llLkVDUHJpdmF0ZUtleT1LO3ZhciBJPWFlLmRlZmluZSgiRUNQYXJhbWV0ZXJzIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHtuYW1lZEN1cnZlOnRoaXMub2JqaWQoKX0pfSk7SWUuc2lnbmF0dXJlPWFlLmRlZmluZSgic2lnbmF0dXJlIixm'@; put 'dW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJyIikuaW50KCksdGhpcy5rZXkoInMiKS5pbnQoKSl9KX0sOTcyOTA6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI3NDE0KSx4PWFlLmRlZmluZSgiVGltZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7dXRjVGlt'@; put 'ZTp0aGlzLnV0Y3RpbWUoKSxnZW5lcmFsVGltZTp0aGlzLmdlbnRpbWUoKX0pfSksbT1hZS5kZWZpbmUoIkF0dHJpYnV0ZVR5cGVWYWx1ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidHlwZSIpLm9iamlkKCksdGhpcy5rZXkoInZhbHVlIikuYW55KCkpfSksbGU9YWUu'@; put 'ZGVmaW5lKCJBbGdvcml0aG1JZGVudGlmaWVyIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5vYmppZCgpLHRoaXMua2V5KCJwYXJhbWV0ZXJzIikub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCkpfSksTT1hZS5k'@; put 'ZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UobGUpLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSksTz1hZS5kZWZpbmUoIlJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWUi'@; put 'LGZ1bmN0aW9uKCl7dGhpcy5zZXRvZihtKX0pLFI9YWUuZGVmaW5lKCJSRE5TZXF1ZW5jZSIsZnVuY3Rpb24oKXt0aGlzLnNlcW9mKE8pfSksej1hZS5kZWZpbmUoIk5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3JkblNlcXVlbmNlOnRoaXMudXNlKFIpfSl9KSxLPWFlLmRlZmluZSgi'@; put 'VmFsaWRpdHkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoIm5vdEJlZm9yZSIpLnVzZSh4KSx0aGlzLmtleSgibm90QWZ0ZXIiKS51c2UoeCkpfSksST1hZS5kZWZpbmUoIkV4dGVuc2lvbiIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiZXh0bklEIiku'@; put 'b2JqaWQoKSx0aGlzLmtleSgiY3JpdGljYWwiKS5ib29sKCkuZGVmKCExKSx0aGlzLmtleSgiZXh0blZhbHVlIikub2N0c3RyKCkpfSksaz1hZS5kZWZpbmUoIlRCU0NlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuZXhwbGljaXQoMCku'@; put 'aW50KCkub3B0aW9uYWwoKSx0aGlzLmtleSgic2VyaWFsTnVtYmVyIikuaW50KCksdGhpcy5rZXkoInNpZ25hdHVyZSIpLnVzZShsZSksdGhpcy5rZXkoImlzc3VlciIpLnVzZSh6KSx0aGlzLmtleSgidmFsaWRpdHkiKS51c2UoSyksdGhpcy5rZXkoInN1YmplY3QiKS51c2UoeiksdGhpcy5r'@; put 'ZXkoInN1YmplY3RQdWJsaWNLZXlJbmZvIikudXNlKE0pLHRoaXMua2V5KCJpc3N1ZXJVbmlxdWVJRCIpLmltcGxpY2l0KDEpLmJpdHN0cigpLm9wdGlvbmFsKCksdGhpcy5rZXkoInN1YmplY3RVbmlxdWVJRCIpLmltcGxpY2l0KDIpLmJpdHN0cigpLm9wdGlvbmFsKCksdGhpcy5rZXkoImV4'@; put 'dGVuc2lvbnMiKS5leHBsaWNpdCgzKS5zZXFvZihJKS5vcHRpb25hbCgpKX0pLEU9YWUuZGVmaW5lKCJYNTA5Q2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInRic0NlcnRpZmljYXRlIikudXNlKGspLHRoaXMua2V5KCJzaWduYXR1cmVBbGdvcml0aG0i'@; put 'KS51c2UobGUpLHRoaXMua2V5KCJzaWduYXR1cmVWYWx1ZSIpLmJpdHN0cigpKX0pO2F0LmV4cG9ydHM9RX0sMTc1MjA6KGF0LEllLEYpPT57dmFyIGFlPS9Qcm9jLVR5cGU6IDQsRU5DUllQVEVEW1xuXHJdK0RFSy1JbmZvOiBBRVMtKCg/OjEyOCl8KD86MTkyKXwoPzoyNTYpKS1DQkMsKFsw'@; put 'LTlBLUhdKylbXG5ccl0rKFswLTlBLXpcblxyKy89XSspW1xuXHJdKy9tLHg9L14tLS0tLUJFR0lOICgoPzouKj8gS0VZKXxDRVJUSUZJQ0FURSktLS0tLS9tLG09L14tLS0tLUJFR0lOICgoPzouKj8gS0VZKXxDRVJUSUZJQ0FURSktLS0tLShbMC05QS16XG5ccisvPV0rKS0tLS0tRU5EIFwx'@; put 'LS0tLS0kL20sbGU9RigzNjUwNSksTT1GKDgyNDg5KSxPPUYoODQzKS5CdWZmZXI7YXQuZXhwb3J0cz1mdW5jdGlvbihSLHope3ZhciBrLEs9Ui50b1N0cmluZygpLEk9Sy5tYXRjaChhZSk7aWYoSSl7dmFyIGo9ImFlcyIrSVsxXSxWPU8uZnJvbShJWzJdLCJoZXgiKSxCPU8uZnJvbShJWzNd'@; put 'LnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0IiksWT1sZSh6LFYuc2xpY2UoMCw4KSxwYXJzZUludChJWzFdLDEwKSkua2V5LFg9W10sVT1NLmNyZWF0ZURlY2lwaGVyaXYoaixZLFYpO1gucHVzaChVLnVwZGF0ZShCKSksWC5wdXNoKFUuZmluYWwoKSksaz1PLmNvbmNhdChYKX1lbHNl'@; put 'e3ZhciBFPUsubWF0Y2gobSk7az1PLmZyb20oRVsyXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpfXJldHVybnt0YWc6Sy5tYXRjaCh4KVsxXSxkYXRhOmt9fX0sODc5ODM6KGF0LEllLEYpPT57dmFyIGFlPUYoODEzMjIpLHg9RigyMjU2MiksbT1GKDE3NTIwKSxsZT1GKDgyNDg5'@; put 'KSxNPUYoNTcxMDApLE89Rig4NDMpLkJ1ZmZlcjtmdW5jdGlvbiBSKEspe3ZhciBJOyJvYmplY3QiPT10eXBlb2YgSyYmIU8uaXNCdWZmZXIoSykmJihJPUsucGFzc3BocmFzZSxLPUsua2V5KSwic3RyaW5nIj09dHlwZW9mIEsmJihLPU8uZnJvbShLKSk7dmFyIFYsQixrPW0oSyxJKSxFPWsu'@; put 'dGFnLGo9ay5kYXRhO3N3aXRjaChFKXtjYXNlIkNFUlRJRklDQVRFIjpCPWFlLmNlcnRpZmljYXRlLmRlY29kZShqLCJkZXIiKS50YnNDZXJ0aWZpY2F0ZS5zdWJqZWN0UHVibGljS2V5SW5mbztjYXNlIlBVQkxJQyBLRVkiOnN3aXRjaChCfHwoQj1hZS5QdWJsaWNLZXkuZGVjb2RlKGosImRl'@; put 'ciIpKSxWPUIuYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCIuIikpe2Nhc2UiMS4yLjg0MC4xMTM1NDkuMS4xLjEiOnJldHVybiBhZS5SU0FQdWJsaWNLZXkuZGVjb2RlKEIuc3ViamVjdFB1YmxpY0tleS5kYXRhLCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm4gQi5zdWJq'@; put 'ZWN0UHJpdmF0ZUtleT1CLnN1YmplY3RQdWJsaWNLZXkse3R5cGU6ImVjIixkYXRhOkJ9O2Nhc2UiMS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBCLmFsZ29yaXRobS5wYXJhbXMucHViX2tleT1hZS5EU0FwYXJhbS5kZWNvZGUoQi5zdWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpLHt0eXBl'@; put 'OiJkc2EiLGRhdGE6Qi5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgaWQgIitWKX1jYXNlIkVOQ1JZUFRFRCBQUklWQVRFIEtFWSI6aj1mdW5jdGlvbiB6KEssSSl7dmFyIGs9Sy5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNh'@; put 'bHQsRT1wYXJzZUludChLLmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuaXRlcnMudG9TdHJpbmcoKSwxMCksaj14W0suYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxWPUsuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLml2LEI9Sy5zdWJqZWN0UHJpdmF0'@; put 'ZUtleSxZPXBhcnNlSW50KGouc3BsaXQoIi0iKVsxXSwxMCkvOCxYPU0ucGJrZGYyU3luYyhJLGssRSxZLCJzaGExIiksVT1sZS5jcmVhdGVEZWNpcGhlcml2KGosWCxWKSxxPVtdO3JldHVybiBxLnB1c2goVS51cGRhdGUoQikpLHEucHVzaChVLmZpbmFsKCkpLE8uY29uY2F0KHEpfShqPWFl'@; put 'LkVuY3J5cHRlZFByaXZhdGVLZXkuZGVjb2RlKGosImRlciIpLEkpO2Nhc2UiUFJJVkFURSBLRVkiOnN3aXRjaChWPShCPWFlLlByaXZhdGVLZXkuZGVjb2RlKGosImRlciIpKS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJu'@; put 'IGFlLlJTQVByaXZhdGVLZXkuZGVjb2RlKEIuc3ViamVjdFByaXZhdGVLZXksImRlciIpO2Nhc2UiMS4yLjg0MC4xMDA0NS4yLjEiOnJldHVybntjdXJ2ZTpCLmFsZ29yaXRobS5jdXJ2ZSxwcml2YXRlS2V5OmFlLkVDUHJpdmF0ZUtleS5kZWNvZGUoQi5zdWJqZWN0UHJpdmF0ZUtleSwiZGVy'@; put 'IikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIEIuYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT1hZS5EU0FwYXJhbS5kZWNvZGUoQi5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikse3R5cGU6ImRzYSIscGFyYW1zOkIuYWxnb3JpdGhtLnBhcmFtc307ZGVmYXVs'@; put 'dDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IGlkICIrVil9Y2FzZSJSU0EgUFVCTElDIEtFWSI6cmV0dXJuIGFlLlJTQVB1YmxpY0tleS5kZWNvZGUoaiwiZGVyIik7Y2FzZSJSU0EgUFJJVkFURSBLRVkiOnJldHVybiBhZS5SU0FQcml2YXRlS2V5LmRlY29kZShqLCJkZXIiKTtjYXNl'@; put 'IkRTQSBQUklWQVRFIEtFWSI6cmV0dXJue3R5cGU6ImRzYSIscGFyYW1zOmFlLkRTQVByaXZhdGVLZXkuZGVjb2RlKGosImRlciIpfTtjYXNlIkVDIFBSSVZBVEUgS0VZIjpyZXR1cm57Y3VydmU6KGo9YWUuRUNQcml2YXRlS2V5LmRlY29kZShqLCJkZXIiKSkucGFyYW1ldGVycy52YWx1ZSxw'@; put 'cml2YXRlS2V5OmoucHJpdmF0ZUtleX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IHR5cGUgIitFKX19YXQuZXhwb3J0cz1SLFIuc2lnbmF0dXJlPWFlLnNpZ25hdHVyZX0sNTcxMDA6KGF0LEllLEYpPT57SWUucGJrZGYyPUYoMjg3ODEpLEllLnBia2RmMlN5bmM9Rig2'@; put 'ODA0Nyl9LDI4NzgxOihhdCxJZSxGKT0+e3ZhciBPLGssYWU9Rig4NDMpLkJ1ZmZlcix4PUYoNDg4MSksbT1GKDc1OTgwKSxsZT1GKDY4MDQ3KSxNPUYoNjczMDYpLFI9Z2xvYmFsLmNyeXB0byYmZ2xvYmFsLmNyeXB0by5zdWJ0bGUsej17c2hhOiJTSEEtMSIsInNoYS0xIjoiU0hBLTEiLHNo'@; put 'YTE6IlNIQS0xIixzaGEyNTY6IlNIQS0yNTYiLCJzaGEtMjU2IjoiU0hBLTI1NiIsc2hhMzg0OiJTSEEtMzg0Iiwic2hhLTM4NCI6IlNIQS0zODQiLCJzaGEtNTEyIjoiU0hBLTUxMiIsc2hhNTEyOiJTSEEtNTEyIn0sSz1bXTtmdW5jdGlvbiBFKCl7cmV0dXJuIGt8fChrPWdsb2JhbC5wcm9j'@; put 'ZXNzJiZnbG9iYWwucHJvY2Vzcy5uZXh0VGljaz9nbG9iYWwucHJvY2Vzcy5uZXh0VGljazpnbG9iYWwucXVldWVNaWNyb3Rhc2s/Z2xvYmFsLnF1ZXVlTWljcm90YXNrOmdsb2JhbC5zZXRJbW1lZGlhdGU/Z2xvYmFsLnNldEltbWVkaWF0ZTpnbG9iYWwuc2V0VGltZW91dCl9ZnVuY3Rpb24g'@; put 'aihCLFksWCxVLHEpe3JldHVybiBSLmltcG9ydEtleSgicmF3IixCLHtuYW1lOiJQQktERjIifSwhMSxbImRlcml2ZUJpdHMiXSkudGhlbihmdW5jdGlvbihlZSl7cmV0dXJuIFIuZGVyaXZlQml0cyh7bmFtZToiUEJLREYyIixzYWx0OlksaXRlcmF0aW9uczpYLGhhc2g6e25hbWU6cX19LGVl'@; put 'LFU8PDMpfSkudGhlbihmdW5jdGlvbihlZSl7cmV0dXJuIGFlLmZyb20oZWUpfSl9YXQuZXhwb3J0cz1mdW5jdGlvbihCLFksWCxVLHEsZWUpeyJmdW5jdGlvbiI9PXR5cGVvZiBxJiYoZWU9cSxxPXZvaWQgMCk7dmFyIHRlPXpbKHE9cXx8InNoYTEiKS50b0xvd2VyQ2FzZSgpXTtpZih0ZSYm'@; put 'ImZ1bmN0aW9uIj09dHlwZW9mIGdsb2JhbC5Qcm9taXNlKXtpZih4KFgsVSksQj1NKEIsbSwiUGFzc3dvcmQiKSxZPU0oWSxtLCJTYWx0IiksImZ1bmN0aW9uIiE9dHlwZW9mIGVlKXRocm93IG5ldyBFcnJvcigiTm8gY2FsbGJhY2sgcHJvdmlkZWQgdG8gcGJrZGYyIik7IWZ1bmN0aW9uIFYo'@; put 'QixZKXtCLnRoZW4oZnVuY3Rpb24oWCl7RSgpKGZ1bmN0aW9uKCl7WShudWxsLFgpfSl9LGZ1bmN0aW9uKFgpe0UoKShmdW5jdGlvbigpe1koWCl9KX0pfShmdW5jdGlvbiBJKEIpe2lmKGdsb2JhbC5wcm9jZXNzJiYhZ2xvYmFsLnByb2Nlc3MuYnJvd3Nlcnx8IVJ8fCFSLmltcG9ydEtleXx8'@; put 'IVIuZGVyaXZlQml0cylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCExKTtpZih2b2lkIDAhPT1LW0JdKXJldHVybiBLW0JdO3ZhciBZPWooTz1PfHxhZS5hbGxvYyg4KSxPLDEwLDEyOCxCKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk7cmV0'@; put 'dXJuIEtbQl09WSxZfSh0ZSkudGhlbihmdW5jdGlvbihvZSl7cmV0dXJuIG9lP2ooQixZLFgsVSx0ZSk6bGUoQixZLFgsVSxxKX0pLGVlKX1lbHNlIEUoKShmdW5jdGlvbigpe3ZhciBvZTt0cnl7b2U9bGUoQixZLFgsVSxxKX1jYXRjaChzZSl7cmV0dXJuIGVlKHNlKX1lZShudWxsLG9lKX0p'@; put 'fX0sNzU5ODA6YXQ9Pnt2YXIgSWU7SWU9Z2xvYmFsLnByb2Nlc3MmJmdsb2JhbC5wcm9jZXNzLmJyb3dzZXI/InV0Zi04IjpnbG9iYWwucHJvY2VzcyYmZ2xvYmFsLnByb2Nlc3MudmVyc2lvbj9wYXJzZUludChwcm9jZXNzLnZlcnNpb24uc3BsaXQoIi4iKVswXS5zbGljZSgxKSwxMCk+PTY/'@; put 'InV0Zi04IjoiYmluYXJ5IjoidXRmLTgiLGF0LmV4cG9ydHM9SWV9LDQ4ODE6YXQ9Pnt2YXIgSWU9TWF0aC5wb3coMiwzMCktMTthdC5leHBvcnRzPWZ1bmN0aW9uKEYsYWUpe2lmKCJudW1iZXIiIT10eXBlb2YgRil0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRpb25zIG5vdCBhIG51bWJl'@; put 'ciIpO2lmKEY8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQgaXRlcmF0aW9ucyIpO2lmKCJudW1iZXIiIT10eXBlb2YgYWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5IGxlbmd0aCBub3QgYSBudW1iZXIiKTtpZihhZTwwfHxhZT5JZXx8YWUhPWFlKXRocm93IG5ldyBUeXBlRXJyb3IoIkJh'@; put 'ZCBrZXkgbGVuZ3RoIil9fSw2ODA0NzooYXQsSWUsRik9Pnt2YXIgYWU9Rig4NzU4OCkseD1GKDM5NzA2KSxtPUYoOTc5NjUpLGxlPUYoODQzKS5CdWZmZXIsTT1GKDQ4ODEpLE89Rig3NTk4MCksUj1GKDY3MzA2KSx6PWxlLmFsbG9jKDEyOCksSz17bWQ1OjE2LHNoYTE6MjAsc2hhMjI0OjI4'@; put 'LHNoYTI1NjozMixzaGEzODQ6NDgsc2hhNTEyOjY0LHJtZDE2MDoyMCxyaXBlbWQxNjA6MjB9O2Z1bmN0aW9uIEkoaixWLEIpe3ZhciBZPWZ1bmN0aW9uIGsoail7cmV0dXJuInJtZDE2MCI9PT1qfHwicmlwZW1kMTYwIj09PWo/ZnVuY3Rpb24gQihZKXtyZXR1cm4obmV3IHgpLnVwZGF0ZShZ'@; put 'KS5kaWdlc3QoKX06Im1kNSI9PT1qP2FlOmZ1bmN0aW9uIFYoWSl7cmV0dXJuIG0oaikudXBkYXRlKFkpLmRpZ2VzdCgpfX0oaiksWD0ic2hhNTEyIj09PWp8fCJzaGEzODQiPT09aj8xMjg6NjQ7Vi5sZW5ndGg+WD9WPVkoVik6Vi5sZW5ndGg8WCYmKFY9bGUuY29uY2F0KFtWLHpdLFgpKTtm'@; put 'b3IodmFyIFU9bGUuYWxsb2NVbnNhZmUoWCtLW2pdKSxxPWxlLmFsbG9jVW5zYWZlKFgrS1tqXSksZWU9MDtlZTxYO2VlKyspVVtlZV09NTReVltlZV0scVtlZV09OTJeVltlZV07dmFyIHRlPWxlLmFsbG9jVW5zYWZlKFgrQis0KTtVLmNvcHkodGUsMCwwLFgpLHRoaXMuaXBhZDE9dGUsdGhp'@; put 'cy5pcGFkMj1VLHRoaXMub3BhZD1xLHRoaXMuYWxnPWosdGhpcy5ibG9ja3NpemU9WCx0aGlzLmhhc2g9WSx0aGlzLnNpemU9S1tqXX1JLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oaixWKXtyZXR1cm4gai5jb3B5KFYsdGhpcy5ibG9ja3NpemUpLHRoaXMuaGFzaChWKS5jb3B5KHRoaXMub3Bh'@; put 'ZCx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKHRoaXMub3BhZCl9LGF0LmV4cG9ydHM9ZnVuY3Rpb24gRShqLFYsQixZLFgpe00oQixZKTt2YXIgVT1uZXcgSShYPVh8fCJzaGExIixqPVIoaixPLCJQYXNzd29yZCIpLChWPVIoVixPLCJTYWx0IikpLmxlbmd0aCkscT1sZS5hbGxvY1Vuc2Fm'@; put 'ZShZKSxlZT1sZS5hbGxvY1Vuc2FmZShWLmxlbmd0aCs0KTtWLmNvcHkoZWUsMCwwLFYubGVuZ3RoKTtmb3IodmFyIHRlPTAsb2U9S1tYXSxzZT1NYXRoLmNlaWwoWS9vZSksaGU9MTtoZTw9c2U7aGUrKyl7ZWUud3JpdGVVSW50MzJCRShoZSxWLmxlbmd0aCk7Zm9yKHZhciB1ZT1VLnJ1bihl'@; put 'ZSxVLmlwYWQxKSxjZT11ZSxHPTE7RzxCO0crKyl7Y2U9VS5ydW4oY2UsVS5pcGFkMik7Zm9yKHZhciBiPTA7YjxvZTtiKyspdWVbYl1ePWNlW2JdfXVlLmNvcHkocSx0ZSksdGUrPW9lfXJldHVybiBxfX0sNjczMDY6KGF0LEllLEYpPT57dmFyIGFlPUYoODQzKS5CdWZmZXI7YXQuZXhwb3J0'@; put 'cz1mdW5jdGlvbih4LG0sbGUpe2lmKGFlLmlzQnVmZmVyKHgpKXJldHVybiB4O2lmKCJzdHJpbmciPT10eXBlb2YgeClyZXR1cm4gYWUuZnJvbSh4LG0pO2lmKEFycmF5QnVmZmVyLmlzVmlldyh4KSlyZXR1cm4gYWUuZnJvbSh4LmJ1ZmZlcik7dGhyb3cgbmV3IFR5cGVFcnJvcihsZSsiIG11'@; put 'c3QgYmUgYSBzdHJpbmcsIGEgQnVmZmVyLCBhIHR5cGVkIGFycmF5IG9yIGEgRGF0YVZpZXciKX19LDE3NDgwOmZ1bmN0aW9uKGF0LEllLEYpeyFmdW5jdGlvbihhZSx4KXsidXNlIHN0cmljdCI7dmFyIG07dHJ5e209RigxNjY3Nil9Y2F0Y2h7fWF0LmV4cG9ydHM9ZnVuY3Rpb24oYWUpe3Zh'@; put 'ciB4PSJmdW5jdGlvbiI9PXR5cGVvZiBhZSxtPSEhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIsbGU9d2luZG93LmRvY3VtZW50LE09d2luZG93LnNldFRpbWVvdXQsTz1mdW5jdGlvbihDLFMsdixwKXttP0MuYWRkRXZlbnRMaXN0ZW5lcihTLHYsISFwKTpDLmF0dGFjaEV2ZW50KCJvbiIrUyx2'@; put 'KX0sUj1mdW5jdGlvbihDLFMsdixwKXttP0MucmVtb3ZlRXZlbnRMaXN0ZW5lcihTLHYsISFwKTpDLmRldGFjaEV2ZW50KCJvbiIrUyx2KX0sSz1mdW5jdGlvbihDLFMpe3JldHVybi0xIT09KCIgIitDLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiAiK1MrIiAiKX0sST1mdW5jdGlvbihDLFMp'@; put 'e0soQyxTKXx8KEMuY2xhc3NOYW1lPSIiPT09Qy5jbGFzc05hbWU/UzpDLmNsYXNzTmFtZSsiICIrUyl9LGs9ZnVuY3Rpb24oQyxTKXtDLmNsYXNzTmFtZT1mdW5jdGlvbihDKXtyZXR1cm4gQy50cmltP0MudHJpbSgpOkMucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSgoIiAiK0MuY2xhc3NO'@; put 'YW1lKyIgIikucmVwbGFjZSgiICIrUysiICIsIiAiKSl9LEU9ZnVuY3Rpb24oQyl7cmV0dXJuL0FycmF5Ly50ZXN0KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChDKSl9LGo9ZnVuY3Rpb24oQyl7cmV0dXJuL0RhdGUvLnRlc3QoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs'@; put 'KEMpKSYmIWlzTmFOKEMuZ2V0VGltZSgpKX0sVj1mdW5jdGlvbihDKXt2YXIgUz1DLmdldERheSgpO3JldHVybiAwPT09U3x8Nj09PVN9LEI9ZnVuY3Rpb24oQyl7cmV0dXJuIEMlND09MCYmQyUxMDAhPTB8fEMlNDAwPT0wfSxZPWZ1bmN0aW9uKEMsUyl7cmV0dXJuWzMxLEIoQyk/Mjk6Mjgs'@; put 'MzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdW1NdfSxYPWZ1bmN0aW9uKEMpe2ooQykmJkMuc2V0SG91cnMoMCwwLDAsMCl9LFU9ZnVuY3Rpb24oQyxTKXtyZXR1cm4gQy5nZXRUaW1lKCk9PT1TLmdldFRpbWUoKX0scT1mdW5jdGlvbihDLFMsdil7dmFyIHAsdztmb3IocCBpbiBTKSh3'@; put 'PXZvaWQgMCE9PUNbcF0pJiYib2JqZWN0Ij09dHlwZW9mIFNbcF0mJm51bGwhPT1TW3BdJiZ2b2lkIDA9PT1TW3BdLm5vZGVOYW1lP2ooU1twXSk/diYmKENbcF09bmV3IERhdGUoU1twXS5nZXRUaW1lKCkpKTpFKFNbcF0pP3YmJihDW3BdPVNbcF0uc2xpY2UoMCkpOkNbcF09cSh7fSxTW3Bd'@; put 'LHYpOih2fHwhdykmJihDW3BdPVNbcF0pO3JldHVybiBDfSxlZT1mdW5jdGlvbihDLFMsdil7dmFyIHA7bGUuY3JlYXRlRXZlbnQ/KChwPWxlLmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIikpLmluaXRFdmVudChTLCEwLCExKSxwPXEocCx2KSxDLmRpc3BhdGNoRXZlbnQocCkpOmxlLmNyZWF0'@; put 'ZUV2ZW50T2JqZWN0JiYocD1sZS5jcmVhdGVFdmVudE9iamVjdCgpLHA9cShwLHYpLEMuZmlyZUV2ZW50KCJvbiIrUyxwKSl9LHRlPWZ1bmN0aW9uKEMpe3JldHVybiBDLm1vbnRoPDAmJihDLnllYXItPU1hdGguY2VpbChNYXRoLmFicyhDLm1vbnRoKS8xMiksQy5tb250aCs9MTIpLEMubW9u'@; put 'dGg+MTEmJihDLnllYXIrPU1hdGguZmxvb3IoTWF0aC5hYnMoQy5tb250aCkvMTIpLEMubW9udGgtPTEyKSxDfSxvZT17ZmllbGQ6bnVsbCxib3VuZDp2b2lkIDAsYXJpYUxhYmVsOiJVc2UgdGhlIGFycm93IGtleXMgdG8gcGljayBhIGRhdGUiLHBvc2l0aW9uOiJib3R0b20gbGVmdCIscmVw'@; put 'b3NpdGlvbjohMCxmb3JtYXQ6IllZWVktTU0tREQiLHRvU3RyaW5nOm51bGwscGFyc2U6bnVsbCxkZWZhdWx0RGF0ZTpudWxsLHNldERlZmF1bHREYXRlOiExLGZpcnN0RGF5OjAsZmlyc3RXZWVrT2ZZZWFyTWluRGF5czo0LGZvcm1hdFN0cmljdDohMSxtaW5EYXRlOm51bGwsbWF4RGF0ZTpu'@; put 'dWxsLHllYXJSYW5nZToxMCxzaG93V2Vla051bWJlcjohMSxwaWNrV2hvbGVXZWVrOiExLG1pblllYXI6MCxtYXhZZWFyOjk5OTksbWluTW9udGg6dm9pZCAwLG1heE1vbnRoOnZvaWQgMCxzdGFydFJhbmdlOm51bGwsZW5kUmFuZ2U6bnVsbCxpc1JUTDohMSx5ZWFyU3VmZml4OiIiLHNob3dN'@; put 'b250aEFmdGVyWWVhcjohMSxzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiExLGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczohMSxudW1iZXJPZk1vbnRoczoxLG1haW5DYWxlbmRhcjoibGVmdCIsY29udGFpbmVyOnZvaWQgMCxibHVyRmllbGRPblNl'@; put 'bGVjdDohMCxpMThuOntwcmV2aW91c01vbnRoOiJQcmV2aW91cyBNb250aCIsbmV4dE1vbnRoOiJOZXh0IE1vbnRoIixtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwi'@; put 'Tm92ZW1iZXIiLCJEZWNlbWJlciJdLHdlZWtkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSx3ZWVrZGF5c1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il19LHRo'@; put 'ZW1lOm51bGwsZXZlbnRzOltdLG9uU2VsZWN0Om51bGwsb25PcGVuOm51bGwsb25DbG9zZTpudWxsLG9uRHJhdzpudWxsLGtleWJvYXJkSW5wdXQ6ITB9LHNlPWZ1bmN0aW9uKEMsUyx2KXtmb3IoUys9Qy5maXJzdERheTtTPj03OylTLT03O3JldHVybiB2P0MuaTE4bi53ZWVrZGF5c1Nob3J0'@; put 'W1NdOkMuaTE4bi53ZWVrZGF5c1tTXX0saGU9ZnVuY3Rpb24oQyl7dmFyIFM9W10sdj0iZmFsc2UiO2lmKEMuaXNFbXB0eSl7aWYoIUMuc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRocylyZXR1cm4nPHRkIGNsYXNzPSJpcy1lbXB0eSI+PC90ZD4nO1MucHVzaCgiaXMtb3V0c2lkZS1j'@; put 'dXJyZW50LW1vbnRoIiksQy5lbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHN8fFMucHVzaCgiaXMtc2VsZWN0aW9uLWRpc2FibGVkIil9cmV0dXJuIEMuaXNEaXNhYmxlZCYmUy5wdXNoKCJpcy1kaXNhYmxlZCIpLEMuaXNUb2RheSYmUy5wdXNoKCJpcy10b2RheSIp'@; put 'LEMuaXNTZWxlY3RlZCYmKFMucHVzaCgiaXMtc2VsZWN0ZWQiKSx2PSJ0cnVlIiksQy5oYXNFdmVudCYmUy5wdXNoKCJoYXMtZXZlbnQiKSxDLmlzSW5SYW5nZSYmUy5wdXNoKCJpcy1pbnJhbmdlIiksQy5pc1N0YXJ0UmFuZ2UmJlMucHVzaCgiaXMtc3RhcnRyYW5nZSIpLEMuaXNFbmRSYW5n'@; put 'ZSYmUy5wdXNoKCJpcy1lbmRyYW5nZSIpLCc8dGQgZGF0YS1kYXk9IicrQy5kYXkrJyIgY2xhc3M9IicrUy5qb2luKCIgIikrJyIgYXJpYS1zZWxlY3RlZD0iJyt2KyciPjxidXR0b24gY2xhc3M9InBpa2EtYnV0dG9uIHBpa2EtZGF5IiB0eXBlPSJidXR0b24iIGRhdGEtcGlrYS15ZWFyPSIn'@; put 'K0MueWVhcisnIiBkYXRhLXBpa2EtbW9udGg9IicrQy5tb250aCsnIiBkYXRhLXBpa2EtZGF5PSInK0MuZGF5KyciPicrQy5kYXkrIjwvYnV0dG9uPjwvdGQ+In0sY2U9ZnVuY3Rpb24oQyxTLHYscCl7dmFyIHc9bmV3IERhdGUodixTLEMpO3JldHVybic8dGQgY2xhc3M9InBpa2Etd2VlayI+'@; put 'JysoeD9hZSh3KS5pc29XZWVrKCk6ZnVuY3Rpb24oQyxTKXtDLnNldEhvdXJzKDAsMCwwLDApO3ZhciB2PUMuZ2V0RGF0ZSgpLHA9Qy5nZXREYXkoKSx3PVMsSj13LTEsZGU9ZnVuY3Rpb24oT2Upe3JldHVybihPZSs3LTEpJTd9O0Muc2V0RGF0ZSh2K0otZGUocCkpO3ZhciBmZT1uZXcgRGF0'@; put 'ZShDLmdldEZ1bGxZZWFyKCksMCx3KSxMZT0oQy5nZXRUaW1lKCktZmUuZ2V0VGltZSgpKS84NjRlNTtyZXR1cm4gMStNYXRoLnJvdW5kKChMZS1KK2RlKGZlLmdldERheSgpKSkvNyl9KHcscCkpKyI8L3RkPiJ9LEc9ZnVuY3Rpb24oQyxTLHYscCl7cmV0dXJuJzx0ciBjbGFzcz0icGlrYS1y'@; put 'b3cnKyh2PyIgcGljay13aG9sZS13ZWVrIjoiIikrKHA/IiBpcy1zZWxlY3RlZCI6IiIpKyciPicrKFM/Qy5yZXZlcnNlKCk6Qykuam9pbigiIikrIjwvdHI+In0sSD1mdW5jdGlvbihDLFMsdixwLHcsSil7dmFyIG5lLGRlLGZlLGplLFdlLHhlPUMuX28sTGU9dj09PXhlLm1pblllYXIsRmU9'@; put 'dj09PXhlLm1heFllYXIsT2U9JzxkaXYgaWQ9IicrSisnIiBjbGFzcz0icGlrYS10aXRsZSIgcm9sZT0iaGVhZGluZyIgYXJpYS1saXZlPSJhc3NlcnRpdmUiPicsS2U9ITAsWWU9ITA7Zm9yKGZlPVtdLG5lPTA7bmU8MTI7bmUrKylmZS5wdXNoKCc8b3B0aW9uIHZhbHVlPSInKyh2PT09dz9u'@; put 'ZS1TOjEyK25lLVMpKyciJysobmU9PT1wPycgc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiIpKyhMZSYmbmU8eGUubWluTW9udGh8fEZlJiZuZT54ZS5tYXhNb250aD8nIGRpc2FibGVkPSJkaXNhYmxlZCInOiIiKSsiPiIreGUuaTE4bi5tb250aHNbbmVdKyI8L29wdGlvbj4iKTtmb3IoamU9Jzxk'@; put 'aXYgY2xhc3M9InBpa2EtbGFiZWwiPicreGUuaTE4bi5tb250aHNbcF0rJzxzZWxlY3QgY2xhc3M9InBpa2Etc2VsZWN0IHBpa2Etc2VsZWN0LW1vbnRoIiB0YWJpbmRleD0iLTEiPicrZmUuam9pbigiIikrIjwvc2VsZWN0PjwvZGl2PiIsRSh4ZS55ZWFyUmFuZ2UpPyhuZT14ZS55ZWFyUmFu'@; put 'Z2VbMF0sZGU9eGUueWVhclJhbmdlWzFdKzEpOihuZT12LXhlLnllYXJSYW5nZSxkZT0xK3YreGUueWVhclJhbmdlKSxmZT1bXTtuZTxkZSYmbmU8PXhlLm1heFllYXI7bmUrKyluZT49eGUubWluWWVhciYmZmUucHVzaCgnPG9wdGlvbiB2YWx1ZT0iJytuZSsnIicrKG5lPT09dj8nIHNlbGVj'@; put 'dGVkPSJzZWxlY3RlZCInOiIiKSsiPiIrbmUrIjwvb3B0aW9uPiIpO3JldHVybiBXZT0nPGRpdiBjbGFzcz0icGlrYS1sYWJlbCI+Jyt2K3hlLnllYXJTdWZmaXgrJzxzZWxlY3QgY2xhc3M9InBpa2Etc2VsZWN0IHBpa2Etc2VsZWN0LXllYXIiIHRhYmluZGV4PSItMSI+JytmZS5qb2luKCIi'@; put 'KSsiPC9zZWxlY3Q+PC9kaXY+IixPZSs9eGUuc2hvd01vbnRoQWZ0ZXJZZWFyP1dlK2plOmplK1dlLExlJiYoMD09PXB8fHhlLm1pbk1vbnRoPj1wKSYmKEtlPSExKSxGZSYmKDExPT09cHx8eGUubWF4TW9udGg8PXApJiYoWWU9ITEpLDA9PT1TJiYoT2UrPSc8YnV0dG9uIGNsYXNzPSJwaWth'@; put 'LXByZXYnKyhLZT8iIjoiIGlzLWRpc2FibGVkIikrJyIgdHlwZT0iYnV0dG9uIj4nK3hlLmkxOG4ucHJldmlvdXNNb250aCsiPC9idXR0b24+IiksUz09PUMuX28ubnVtYmVyT2ZNb250aHMtMSYmKE9lKz0nPGJ1dHRvbiBjbGFzcz0icGlrYS1uZXh0JysoWWU/IiI6IiBpcy1kaXNhYmxlZCIp'@; put 'KyciIHR5cGU9ImJ1dHRvbiI+Jyt4ZS5pMThuLm5leHRNb250aCsiPC9idXR0b24+IiksT2UrIjwvZGl2PiJ9LE49ZnVuY3Rpb24oQyxTLHYpe3JldHVybic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGlrYS10YWJsZSIgcm9sZT0iZ3JpZCIgYXJpYS1s'@; put 'YWJlbGxlZGJ5PSInK3YrJyI+JytmdW5jdGlvbihDKXt2YXIgUyx2PVtdO2ZvcihDLnNob3dXZWVrTnVtYmVyJiZ2LnB1c2goIjx0aD48L3RoPiIpLFM9MDtTPDc7UysrKXYucHVzaCgnPHRoIHNjb3BlPSJjb2wiPjxhYmJyIHRpdGxlPSInK3NlKEMsUykrJyI+JytzZShDLFMsITApKyI8L2Fi'@; put 'YnI+PC90aD4iKTtyZXR1cm4iPHRoZWFkPjx0cj4iKyhDLmlzUlRMP3YucmV2ZXJzZSgpOnYpLmpvaW4oIiIpKyI8L3RyPjwvdGhlYWQ+In0oQykrZnVuY3Rpb24oQyl7cmV0dXJuIjx0Ym9keT4iK0Muam9pbigiIikrIjwvdGJvZHk+In0oUykrIjwvdGFibGU+In0sZz1mdW5jdGlvbihDKXt2'@; put 'YXIgUz10aGlzLHY9Uy5jb25maWcoQyk7Uy5fb25Nb3VzZURvd249ZnVuY3Rpb24odyl7aWYoUy5fdil7dmFyIEo9KHc9d3x8d2luZG93LmV2ZW50KS50YXJnZXR8fHcuc3JjRWxlbWVudDtpZihKKWlmKEsoSiwiaXMtZGlzYWJsZWQiKXx8KCFLKEosInBpa2EtYnV0dG9uIil8fEsoSiwiaXMt'@; put 'ZW1wdHkiKXx8SyhKLnBhcmVudE5vZGUsImlzLWRpc2FibGVkIik/SyhKLCJwaWthLXByZXYiKT9TLnByZXZNb250aCgpOksoSiwicGlrYS1uZXh0IikmJlMubmV4dE1vbnRoKCk6KFMuc2V0RGF0ZShuZXcgRGF0ZShKLmdldEF0dHJpYnV0ZSgiZGF0YS1waWthLXllYXIiKSxKLmdldEF0dHJp'@; put 'YnV0ZSgiZGF0YS1waWthLW1vbnRoIiksSi5nZXRBdHRyaWJ1dGUoImRhdGEtcGlrYS1kYXkiKSkpLHYuYm91bmQmJk0oZnVuY3Rpb24oKXtTLmhpZGUoKSx2LmJsdXJGaWVsZE9uU2VsZWN0JiZ2LmZpZWxkJiZ2LmZpZWxkLmJsdXIoKX0sMTAwKSkpLEsoSiwicGlrYS1zZWxlY3QiKSlTLl9j'@; put 'PSEwO2Vsc2V7aWYoIXcucHJldmVudERlZmF1bHQpcmV0dXJuIHcucmV0dXJuVmFsdWU9ITEsITE7dy5wcmV2ZW50RGVmYXVsdCgpfX19LFMuX29uQ2hhbmdlPWZ1bmN0aW9uKHcpe3ZhciBKPSh3PXd8fHdpbmRvdy5ldmVudCkudGFyZ2V0fHx3LnNyY0VsZW1lbnQ7SiYmKEsoSiwicGlrYS1z'@; put 'ZWxlY3QtbW9udGgiKT9TLmdvdG9Nb250aChKLnZhbHVlKTpLKEosInBpa2Etc2VsZWN0LXllYXIiKSYmUy5nb3RvWWVhcihKLnZhbHVlKSl9LFMuX29uS2V5Q2hhbmdlPWZ1bmN0aW9uKHcpe2lmKHc9d3x8d2luZG93LmV2ZW50LFMuaXNWaXNpYmxlKCkpc3dpdGNoKHcua2V5Q29kZSl7Y2Fz'@; put 'ZSAxMzpjYXNlIDI3OnYuZmllbGQmJnYuZmllbGQuYmx1cigpO2JyZWFrO2Nhc2UgMzc6Uy5hZGp1c3REYXRlKCJzdWJ0cmFjdCIsMSk7YnJlYWs7Y2FzZSAzODpTLmFkanVzdERhdGUoInN1YnRyYWN0Iiw3KTticmVhaztjYXNlIDM5OlMuYWRqdXN0RGF0ZSgiYWRkIiwxKTticmVhaztjYXNl'@; put 'IDQwOlMuYWRqdXN0RGF0ZSgiYWRkIiw3KTticmVhaztjYXNlIDg6Y2FzZSA0NjpTLnNldERhdGUobnVsbCl9fSxTLl9wYXJzZUZpZWxkVmFsdWU9ZnVuY3Rpb24oKXtpZih2LnBhcnNlKXJldHVybiB2LnBhcnNlKHYuZmllbGQudmFsdWUsdi5mb3JtYXQpO2lmKHgpe3ZhciB3PWFlKHYuZmll'@; put 'bGQudmFsdWUsdi5mb3JtYXQsdi5mb3JtYXRTdHJpY3QpO3JldHVybiB3JiZ3LmlzVmFsaWQoKT93LnRvRGF0ZSgpOm51bGx9cmV0dXJuIG5ldyBEYXRlKERhdGUucGFyc2Uodi5maWVsZC52YWx1ZSkpfSxTLl9vbklucHV0Q2hhbmdlPWZ1bmN0aW9uKHcpe3ZhciBKO3cuZmlyZWRCeSE9PVMm'@; put 'JihKPVMuX3BhcnNlRmllbGRWYWx1ZSgpLGooSikmJlMuc2V0RGF0ZShKKSxTLl92fHxTLnNob3coKSl9LFMuX29uSW5wdXRGb2N1cz1mdW5jdGlvbigpe1Muc2hvdygpfSxTLl9vbklucHV0Q2xpY2s9ZnVuY3Rpb24oKXtTLnNob3coKX0sUy5fb25JbnB1dEJsdXI9ZnVuY3Rpb24oKXt2YXIg'@; put 'dz1sZS5hY3RpdmVFbGVtZW50O2Rve2lmKEsodywicGlrYS1zaW5nbGUiKSlyZXR1cm59d2hpbGUodz13LnBhcmVudE5vZGUpO1MuX2N8fChTLl9iPU0oZnVuY3Rpb24oKXtTLmhpZGUoKX0sNTApKSxTLl9jPSExfSxTLl9vbkNsaWNrPWZ1bmN0aW9uKHcpe3ZhciBKPSh3PXd8fHdpbmRvdy5l'@; put 'dmVudCkudGFyZ2V0fHx3LnNyY0VsZW1lbnQsbmU9SjtpZihKKXshbSYmSyhKLCJwaWthLXNlbGVjdCIpJiYoSi5vbmNoYW5nZXx8KEouc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsInJldHVybjsiKSxPKEosImNoYW5nZSIsUy5fb25DaGFuZ2UpKSk7ZG97aWYoSyhuZSwicGlrYS1zaW5nbGUi'@; put 'KXx8bmU9PT12LnRyaWdnZXIpcmV0dXJufXdoaWxlKG5lPW5lLnBhcmVudE5vZGUpO1MuX3YmJkohPT12LnRyaWdnZXImJm5lIT09di50cmlnZ2VyJiZTLmhpZGUoKX19LFMuZWw9bGUuY3JlYXRlRWxlbWVudCgiZGl2IiksUy5lbC5jbGFzc05hbWU9InBpa2Etc2luZ2xlIisodi5pc1JUTD8i'@; put 'IGlzLXJ0bCI6IiIpKyh2LnRoZW1lPyIgIit2LnRoZW1lOiIiKSxPKFMuZWwsIm1vdXNlZG93biIsUy5fb25Nb3VzZURvd24sITApLE8oUy5lbCwidG91Y2hlbmQiLFMuX29uTW91c2VEb3duLCEwKSxPKFMuZWwsImNoYW5nZSIsUy5fb25DaGFuZ2UpLHYua2V5Ym9hcmRJbnB1dCYmTyhsZSwi'@; put 'a2V5ZG93biIsUy5fb25LZXlDaGFuZ2UpLHYuZmllbGQmJih2LmNvbnRhaW5lcj92LmNvbnRhaW5lci5hcHBlbmRDaGlsZChTLmVsKTp2LmJvdW5kP2xlLmJvZHkuYXBwZW5kQ2hpbGQoUy5lbCk6di5maWVsZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShTLmVsLHYuZmllbGQubmV4dFNpYmxp'@; put 'bmcpLE8odi5maWVsZCwiY2hhbmdlIixTLl9vbklucHV0Q2hhbmdlKSx2LmRlZmF1bHREYXRlfHwodi5kZWZhdWx0RGF0ZT1TLl9wYXJzZUZpZWxkVmFsdWUoKSx2LnNldERlZmF1bHREYXRlPSEwKSk7dmFyIHA9di5kZWZhdWx0RGF0ZTtqKHApP3Yuc2V0RGVmYXVsdERhdGU/Uy5zZXREYXRl'@; put 'KHAsITApOlMuZ290b0RhdGUocCk6Uy5nb3RvRGF0ZShuZXcgRGF0ZSksdi5ib3VuZD8odGhpcy5oaWRlKCksUy5lbC5jbGFzc05hbWUrPSIgaXMtYm91bmQiLE8odi50cmlnZ2VyLCJjbGljayIsUy5fb25JbnB1dENsaWNrKSxPKHYudHJpZ2dlciwiZm9jdXMiLFMuX29uSW5wdXRGb2N1cyks'@; put 'Tyh2LnRyaWdnZXIsImJsdXIiLFMuX29uSW5wdXRCbHVyKSk6dGhpcy5zaG93KCl9O3JldHVybiBnLnByb3RvdHlwZT17Y29uZmlnOmZ1bmN0aW9uKEMpe3RoaXMuX298fCh0aGlzLl9vPXEoe30sb2UsITApKTt2YXIgUz1xKHRoaXMuX28sQywhMCk7Uy5pc1JUTD0hIVMuaXNSVEwsUy5maWVs'@; put 'ZD1TLmZpZWxkJiZTLmZpZWxkLm5vZGVOYW1lP1MuZmllbGQ6bnVsbCxTLnRoZW1lPSJzdHJpbmciPT10eXBlb2YgUy50aGVtZSYmUy50aGVtZT9TLnRoZW1lOm51bGwsUy5ib3VuZD0hISh2b2lkIDAhPT1TLmJvdW5kP1MuZmllbGQmJlMuYm91bmQ6Uy5maWVsZCksUy50cmlnZ2VyPVMudHJp'@; put 'Z2dlciYmUy50cmlnZ2VyLm5vZGVOYW1lP1MudHJpZ2dlcjpTLmZpZWxkLFMuZGlzYWJsZVdlZWtlbmRzPSEhUy5kaXNhYmxlV2Vla2VuZHMsUy5kaXNhYmxlRGF5Rm49ImZ1bmN0aW9uIj09dHlwZW9mIFMuZGlzYWJsZURheUZuP1MuZGlzYWJsZURheUZuOm51bGw7dmFyIHY9cGFyc2VJbnQo'@; put 'Uy5udW1iZXJPZk1vbnRocywxMCl8fDE7aWYoUy5udW1iZXJPZk1vbnRocz12PjQ/NDp2LGooUy5taW5EYXRlKXx8KFMubWluRGF0ZT0hMSksaihTLm1heERhdGUpfHwoUy5tYXhEYXRlPSExKSxTLm1pbkRhdGUmJlMubWF4RGF0ZSYmUy5tYXhEYXRlPFMubWluRGF0ZSYmKFMubWF4RGF0ZT1T'@; put 'Lm1pbkRhdGU9ITEpLFMubWluRGF0ZSYmdGhpcy5zZXRNaW5EYXRlKFMubWluRGF0ZSksUy5tYXhEYXRlJiZ0aGlzLnNldE1heERhdGUoUy5tYXhEYXRlKSxFKFMueWVhclJhbmdlKSl7dmFyIHA9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLTEwO1MueWVhclJhbmdlWzBdPXBhcnNlSW50KFMu'@; put 'eWVhclJhbmdlWzBdLDEwKXx8cCxTLnllYXJSYW5nZVsxXT1wYXJzZUludChTLnllYXJSYW5nZVsxXSwxMCl8fHB9ZWxzZSBTLnllYXJSYW5nZT1NYXRoLmFicyhwYXJzZUludChTLnllYXJSYW5nZSwxMCkpfHxvZS55ZWFyUmFuZ2UsUy55ZWFyUmFuZ2U+MTAwJiYoUy55ZWFyUmFuZ2U9MTAw'@; put 'KTtyZXR1cm4gU30sdG9TdHJpbmc6ZnVuY3Rpb24oQyl7cmV0dXJuIEM9Q3x8dGhpcy5fby5mb3JtYXQsaih0aGlzLl9kKT90aGlzLl9vLnRvU3RyaW5nP3RoaXMuX28udG9TdHJpbmcodGhpcy5fZCxDKTp4P2FlKHRoaXMuX2QpLmZvcm1hdChDKTp0aGlzLl9kLnRvRGF0ZVN0cmluZygpOiIi'@; put 'fSxnZXRNb21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4geD9hZSh0aGlzLl9kKTpudWxsfSxzZXRNb21lbnQ6ZnVuY3Rpb24oQyxTKXt4JiZhZS5pc01vbWVudChDKSYmdGhpcy5zZXREYXRlKEMudG9EYXRlKCksUyl9LGdldERhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaih0aGlzLl9kKT9uZXcgRGF0'@; put 'ZSh0aGlzLl9kLmdldFRpbWUoKSk6bnVsbH0sc2V0RGF0ZTpmdW5jdGlvbihDLFMpe2lmKCFDKXJldHVybiB0aGlzLl9kPW51bGwsdGhpcy5fby5maWVsZCYmKHRoaXMuX28uZmllbGQudmFsdWU9IiIsZWUodGhpcy5fby5maWVsZCwiY2hhbmdlIix7ZmlyZWRCeTp0aGlzfSkpLHRoaXMuZHJh'@; put 'dygpO2lmKCJzdHJpbmciPT10eXBlb2YgQyYmKEM9bmV3IERhdGUoRGF0ZS5wYXJzZShDKSkpLGooQykpe3ZhciB2PXRoaXMuX28ubWluRGF0ZSxwPXRoaXMuX28ubWF4RGF0ZTtqKHYpJiZDPHY/Qz12OmoocCkmJkM+cCYmKEM9cCksdGhpcy5fZD1uZXcgRGF0ZShDLmdldFRpbWUoKSksWCh0'@; put 'aGlzLl9kKSx0aGlzLmdvdG9EYXRlKHRoaXMuX2QpLHRoaXMuX28uZmllbGQmJih0aGlzLl9vLmZpZWxkLnZhbHVlPXRoaXMudG9TdHJpbmcoKSxlZSh0aGlzLl9vLmZpZWxkLCJjaGFuZ2UiLHtmaXJlZEJ5OnRoaXN9KSksIVMmJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uU2VsZWN0'@; put 'JiZ0aGlzLl9vLm9uU2VsZWN0LmNhbGwodGhpcyx0aGlzLmdldERhdGUoKSl9fSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuc2V0RGF0ZShudWxsKX0sZ290b0RhdGU6ZnVuY3Rpb24oQyl7dmFyIFM9ITA7aWYoaihDKSl7aWYodGhpcy5jYWxlbmRhcnMpe3ZhciB2PW5ldyBEYXRlKHRoaXMuY2Fs'@; put 'ZW5kYXJzWzBdLnllYXIsdGhpcy5jYWxlbmRhcnNbMF0ubW9udGgsMSkscD1uZXcgRGF0ZSh0aGlzLmNhbGVuZGFyc1t0aGlzLmNhbGVuZGFycy5sZW5ndGgtMV0ueWVhcix0aGlzLmNhbGVuZGFyc1t0aGlzLmNhbGVuZGFycy5sZW5ndGgtMV0ubW9udGgsMSksdz1DLmdldFRpbWUoKTtwLnNl'@; put 'dE1vbnRoKHAuZ2V0TW9udGgoKSsxKSxwLnNldERhdGUocC5nZXREYXRlKCktMSksUz13PHYuZ2V0VGltZSgpfHxwLmdldFRpbWUoKTx3fVMmJih0aGlzLmNhbGVuZGFycz1be21vbnRoOkMuZ2V0TW9udGgoKSx5ZWFyOkMuZ2V0RnVsbFllYXIoKX1dLCJyaWdodCI9PT10aGlzLl9vLm1haW5D'@; put 'YWxlbmRhciYmKHRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoKz0xLXRoaXMuX28ubnVtYmVyT2ZNb250aHMpKSx0aGlzLmFkanVzdENhbGVuZGFycygpfX0sYWRqdXN0RGF0ZTpmdW5jdGlvbihDLFMpe3ZhciB3LHY9dGhpcy5nZXREYXRlKCl8fG5ldyBEYXRlLHA9MjQqcGFyc2VJbnQoUykqNjAq'@; put 'NjAqMWUzOyJhZGQiPT09Qz93PW5ldyBEYXRlKHYudmFsdWVPZigpK3ApOiJzdWJ0cmFjdCI9PT1DJiYodz1uZXcgRGF0ZSh2LnZhbHVlT2YoKS1wKSksdGhpcy5zZXREYXRlKHcpfSxhZGp1c3RDYWxlbmRhcnM6ZnVuY3Rpb24oKXt0aGlzLmNhbGVuZGFyc1swXT10ZSh0aGlzLmNhbGVuZGFy'@; put 'c1swXSk7Zm9yKHZhciBDPTE7Qzx0aGlzLl9vLm51bWJlck9mTW9udGhzO0MrKyl0aGlzLmNhbGVuZGFyc1tDXT10ZSh7bW9udGg6dGhpcy5jYWxlbmRhcnNbMF0ubW9udGgrQyx5ZWFyOnRoaXMuY2FsZW5kYXJzWzBdLnllYXJ9KTt0aGlzLmRyYXcoKX0sZ290b1RvZGF5OmZ1bmN0aW9uKCl7'@; put 'dGhpcy5nb3RvRGF0ZShuZXcgRGF0ZSl9LGdvdG9Nb250aDpmdW5jdGlvbihDKXtpc05hTihDKXx8KHRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoPXBhcnNlSW50KEMsMTApLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCkpfSxuZXh0TW9udGg6ZnVuY3Rpb24oKXt0aGlzLmNhbGVuZGFyc1swXS5tb250'@; put 'aCsrLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCl9LHByZXZNb250aDpmdW5jdGlvbigpe3RoaXMuY2FsZW5kYXJzWzBdLm1vbnRoLS0sdGhpcy5hZGp1c3RDYWxlbmRhcnMoKX0sZ290b1llYXI6ZnVuY3Rpb24oQyl7aXNOYU4oQyl8fCh0aGlzLmNhbGVuZGFyc1swXS55ZWFyPXBhcnNlSW50KEMs'@; put 'MTApLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCkpfSxzZXRNaW5EYXRlOmZ1bmN0aW9uKEMpe0MgaW5zdGFuY2VvZiBEYXRlPyhYKEMpLHRoaXMuX28ubWluRGF0ZT1DLHRoaXMuX28ubWluWWVhcj1DLmdldEZ1bGxZZWFyKCksdGhpcy5fby5taW5Nb250aD1DLmdldE1vbnRoKCkpOih0aGlzLl9v'@; put 'Lm1pbkRhdGU9b2UubWluRGF0ZSx0aGlzLl9vLm1pblllYXI9b2UubWluWWVhcix0aGlzLl9vLm1pbk1vbnRoPW9lLm1pbk1vbnRoLHRoaXMuX28uc3RhcnRSYW5nZT1vZS5zdGFydFJhbmdlKSx0aGlzLmRyYXcoKX0sc2V0TWF4RGF0ZTpmdW5jdGlvbihDKXtDIGluc3RhbmNlb2YgRGF0ZT8o'@; put 'WChDKSx0aGlzLl9vLm1heERhdGU9Qyx0aGlzLl9vLm1heFllYXI9Qy5nZXRGdWxsWWVhcigpLHRoaXMuX28ubWF4TW9udGg9Qy5nZXRNb250aCgpKToodGhpcy5fby5tYXhEYXRlPW9lLm1heERhdGUsdGhpcy5fby5tYXhZZWFyPW9lLm1heFllYXIsdGhpcy5fby5tYXhNb250aD1vZS5tYXhN'@; put 'b250aCx0aGlzLl9vLmVuZFJhbmdlPW9lLmVuZFJhbmdlKSx0aGlzLmRyYXcoKX0sc2V0U3RhcnRSYW5nZTpmdW5jdGlvbihDKXt0aGlzLl9vLnN0YXJ0UmFuZ2U9Q30sc2V0RW5kUmFuZ2U6ZnVuY3Rpb24oQyl7dGhpcy5fby5lbmRSYW5nZT1DfSxkcmF3OmZ1bmN0aW9uKEMpe2lmKHRoaXMu'@; put 'X3Z8fEMpe3ZhciBkZSxTPXRoaXMuX28sdj1TLm1pblllYXIscD1TLm1heFllYXIsdz1TLm1pbk1vbnRoLEo9Uy5tYXhNb250aCxuZT0iIjt0aGlzLl95PD12JiYodGhpcy5feT12LCFpc05hTih3KSYmdGhpcy5fbTx3JiYodGhpcy5fbT13KSksdGhpcy5feT49cCYmKHRoaXMuX3k9cCwhaXNO'@; put 'YU4oSikmJnRoaXMuX20+SiYmKHRoaXMuX209SikpO2Zvcih2YXIgZmU9MDtmZTxTLm51bWJlck9mTW9udGhzO2ZlKyspZGU9InBpa2EtdGl0bGUtIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5yZXBsYWNlKC9bXmEtel0rL2csIiIpLnN1YnN0cigwLDIpLG5lKz0nPGRpdiBjbGFzcz0i'@; put 'cGlrYS1sZW5kYXIiPicrSCh0aGlzLGZlLHRoaXMuY2FsZW5kYXJzW2ZlXS55ZWFyLHRoaXMuY2FsZW5kYXJzW2ZlXS5tb250aCx0aGlzLmNhbGVuZGFyc1swXS55ZWFyLGRlKSt0aGlzLnJlbmRlcih0aGlzLmNhbGVuZGFyc1tmZV0ueWVhcix0aGlzLmNhbGVuZGFyc1tmZV0ubW9udGgsZGUp'@; put 'KyI8L2Rpdj4iO3RoaXMuZWwuaW5uZXJIVE1MPW5lLFMuYm91bmQmJiJoaWRkZW4iIT09Uy5maWVsZC50eXBlJiZNKGZ1bmN0aW9uKCl7Uy50cmlnZ2VyLmZvY3VzKCl9LDEpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uRHJhdyYmdGhpcy5fby5vbkRyYXcodGhpcyksUy5ib3VuZCYm'@; put 'Uy5maWVsZC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLFMuYXJpYUxhYmVsKX19LGFkanVzdFBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEMsUyx2LHAsdyxKLG5lLGRlLGZlLHhlLExlLEZlO2lmKCF0aGlzLl9vLmNvbnRhaW5lcil7aWYodGhpcy5lbC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1'@; put 'dGUiLFM9Qz10aGlzLl9vLnRyaWdnZXIsdj10aGlzLmVsLm9mZnNldFdpZHRoLHA9dGhpcy5lbC5vZmZzZXRIZWlnaHQsdz13aW5kb3cuaW5uZXJXaWR0aHx8bGUuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLEo9d2luZG93LmlubmVySGVpZ2h0fHxsZS5kb2N1bWVudEVsZW1lbnQuY2xp'@; put 'ZW50SGVpZ2h0LG5lPXdpbmRvdy5wYWdlWU9mZnNldHx8bGUuYm9keS5zY3JvbGxUb3B8fGxlLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AsTGU9ITAsRmU9ITAsImZ1bmN0aW9uIj09dHlwZW9mIEMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KWRlPSh4ZT1DLmdldEJvdW5kaW5nQ2xpZW50UmVj'@; put 'dCgpKS5sZWZ0K3dpbmRvdy5wYWdlWE9mZnNldCxmZT14ZS5ib3R0b20rd2luZG93LnBhZ2VZT2Zmc2V0O2Vsc2UgZm9yKGRlPVMub2Zmc2V0TGVmdCxmZT1TLm9mZnNldFRvcCtTLm9mZnNldEhlaWdodDtTPVMub2Zmc2V0UGFyZW50OylkZSs9Uy5vZmZzZXRMZWZ0LGZlKz1TLm9mZnNldFRv'@; put 'cDsodGhpcy5fby5yZXBvc2l0aW9uJiZkZSt2Pnd8fHRoaXMuX28ucG9zaXRpb24uaW5kZXhPZigicmlnaHQiKT4tMSYmZGUtditDLm9mZnNldFdpZHRoPjApJiYoZGU9ZGUtditDLm9mZnNldFdpZHRoLExlPSExKSwodGhpcy5fby5yZXBvc2l0aW9uJiZmZStwPkorbmV8fHRoaXMuX28ucG9z'@; put 'aXRpb24uaW5kZXhPZigidG9wIik+LTEmJmZlLXAtQy5vZmZzZXRIZWlnaHQ+MCkmJihmZT1mZS1wLUMub2Zmc2V0SGVpZ2h0LEZlPSExKSx0aGlzLmVsLnN0eWxlLmxlZnQ9ZGUrInB4Iix0aGlzLmVsLnN0eWxlLnRvcD1mZSsicHgiLEkodGhpcy5lbCxMZT8ibGVmdC1hbGlnbmVkIjoicmln'@; put 'aHQtYWxpZ25lZCIpLEkodGhpcy5lbCxGZT8iYm90dG9tLWFsaWduZWQiOiJ0b3AtYWxpZ25lZCIpLGsodGhpcy5lbCxMZT8icmlnaHQtYWxpZ25lZCI6ImxlZnQtYWxpZ25lZCIpLGsodGhpcy5lbCxGZT8idG9wLWFsaWduZWQiOiJib3R0b20tYWxpZ25lZCIpfX0scmVuZGVyOmZ1bmN0aW9u'@; put 'KEMsUyx2KXt2YXIgcD10aGlzLl9vLHc9bmV3IERhdGUsSj1ZKEMsUyksbmU9bmV3IERhdGUoQyxTLDEpLmdldERheSgpLGRlPVtdLGZlPVtdO1godykscC5maXJzdERheT4wJiYobmUtPXAuZmlyc3REYXkpPDAmJihuZSs9Nyk7Zm9yKHZhciB4ZT0wPT09Uz8xMTpTLTEsTGU9MTE9PT1TPzA6'@; put 'UysxLEZlPTA9PT1TP0MtMTpDLE9lPTExPT09Uz9DKzE6QyxqZT1ZKEZlLHhlKSxXZT1KK25lLEtlPVdlO0tlPjc7KUtlLT03O1dlKz03LUtlO2Zvcih2YXIgWWU9ITEsUWU9MCxsdD0wO1FlPFdlO1FlKyspe3ZhciBQZT1uZXcgRGF0ZShDLFMsUWUtbmUrMSksYmU9ISFqKHRoaXMuX2QpJiZV'@; put 'KFBlLHRoaXMuX2QpLEFlPVUoUGUsdyksVGU9LTEhPT1wLmV2ZW50cy5pbmRleE9mKFBlLnRvRGF0ZVN0cmluZygpKSxxZT1RZTxuZXx8UWU+PUorbmUsWGU9UWUtbmUrMSxVZT1TLGh0PUMsTWU9cC5zdGFydFJhbmdlJiZVKHAuc3RhcnRSYW5nZSxQZSksRGU9cC5lbmRSYW5nZSYmVShwLmVu'@; put 'ZFJhbmdlLFBlKSx6ZT1wLnN0YXJ0UmFuZ2UmJnAuZW5kUmFuZ2UmJnAuc3RhcnRSYW5nZTxQZSYmUGU8cC5lbmRSYW5nZSxvdD1wLm1pbkRhdGUmJlBlPHAubWluRGF0ZXx8cC5tYXhEYXRlJiZQZT5wLm1heERhdGV8fHAuZGlzYWJsZVdlZWtlbmRzJiZWKFBlKXx8cC5kaXNhYmxlRGF5Rm4m'@; put 'JnAuZGlzYWJsZURheUZuKFBlKTtxZSYmKFFlPG5lPyhYZT1qZStYZSxVZT14ZSxodD1GZSk6KFhlLT1KLFVlPUxlLGh0PU9lKSkscC5waWNrV2hvbGVXZWVrJiZiZSYmKFllPSEwKSxmZS5wdXNoKGhlKHtkYXk6WGUsbW9udGg6VWUseWVhcjpodCxoYXNFdmVudDpUZSxpc1NlbGVjdGVkOmJl'@; put 'LGlzVG9kYXk6QWUsaXNEaXNhYmxlZDpvdCxpc0VtcHR5OnFlLGlzU3RhcnRSYW5nZTpNZSxpc0VuZFJhbmdlOkRlLGlzSW5SYW5nZTp6ZSxzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOnAuc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRocyxlbmFibGVTZWxlY3Rpb25EYXlz'@; put 'SW5OZXh0QW5kUHJldmlvdXNNb250aHM6cC5lbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHN9KSksNz09KytsdCYmKHAuc2hvd1dlZWtOdW1iZXImJmZlLnVuc2hpZnQoY2UoUWUtbmUsUyxDLHAuZmlyc3RXZWVrT2ZZZWFyTWluRGF5cykpLGRlLnB1c2goRyhmZSxw'@; put 'LmlzUlRMLHAucGlja1dob2xlV2VlayxZZSkpLGZlPVtdLGx0PTAsWWU9ITEpfXJldHVybiBOKHAsZGUsdil9LGlzVmlzaWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5pc1Zpc2libGUoKXx8KHRoaXMuX3Y9ITAsdGhpcy5kcmF3KCksayh0aGlz'@; put 'LmVsLCJpcy1oaWRkZW4iKSx0aGlzLl9vLmJvdW5kJiYoTyhsZSwiY2xpY2siLHRoaXMuX29uQ2xpY2spLHRoaXMuYWRqdXN0UG9zaXRpb24oKSksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX28ub25PcGVuJiZ0aGlzLl9vLm9uT3Blbi5jYWxsKHRoaXMpKX0saGlkZTpmdW5jdGlvbigpe3Zh'@; put 'ciBDPXRoaXMuX3Y7ITEhPT1DJiYodGhpcy5fby5ib3VuZCYmUihsZSwiY2xpY2siLHRoaXMuX29uQ2xpY2spLHRoaXMuX28uY29udGFpbmVyfHwodGhpcy5lbC5zdHlsZS5wb3NpdGlvbj0ic3RhdGljIix0aGlzLmVsLnN0eWxlLmxlZnQ9ImF1dG8iLHRoaXMuZWwuc3R5bGUudG9wPSJhdXRv'@; put 'IiksSSh0aGlzLmVsLCJpcy1oaWRkZW4iKSx0aGlzLl92PSExLHZvaWQgMCE9PUMmJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uQ2xvc2UmJnRoaXMuX28ub25DbG9zZS5jYWxsKHRoaXMpKX0sZGVzdHJveTpmdW5jdGlvbigpe3ZhciBDPXRoaXMuX287dGhpcy5oaWRlKCksUih0aGlz'@; put 'LmVsLCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2VEb3duLCEwKSxSKHRoaXMuZWwsInRvdWNoZW5kIix0aGlzLl9vbk1vdXNlRG93biwhMCksUih0aGlzLmVsLCJjaGFuZ2UiLHRoaXMuX29uQ2hhbmdlKSxDLmtleWJvYXJkSW5wdXQmJlIobGUsImtleWRvd24iLHRoaXMuX29uS2V5Q2hhbmdl'@; put 'KSxDLmZpZWxkJiYoUihDLmZpZWxkLCJjaGFuZ2UiLHRoaXMuX29uSW5wdXRDaGFuZ2UpLEMuYm91bmQmJihSKEMudHJpZ2dlciwiY2xpY2siLHRoaXMuX29uSW5wdXRDbGljayksUihDLnRyaWdnZXIsImZvY3VzIix0aGlzLl9vbklucHV0Rm9jdXMpLFIoQy50cmlnZ2VyLCJibHVyIix0aGlz'@; put 'Ll9vbklucHV0Qmx1cikpKSx0aGlzLmVsLnBhcmVudE5vZGUmJnRoaXMuZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsKX19LGd9KG0pfSgpfSwyNzA1MDooYXQsSWUsRik9PntJZS5wdWJsaWNFbmNyeXB0PUYoNDU3MzcpLEllLnByaXZhdGVEZWNyeXB0PUYoODUyNTIpLEllLnBy'@; put 'aXZhdGVFbmNyeXB0PWZ1bmN0aW9uKHgsbSl7cmV0dXJuIEllLnB1YmxpY0VuY3J5cHQoeCxtLCEwKX0sSWUucHVibGljRGVjcnlwdD1mdW5jdGlvbih4LG0pe3JldHVybiBJZS5wcml2YXRlRGVjcnlwdCh4LG0sITApfX0sMTY1MTc6KGF0LEllLEYpPT57dmFyIGFlPUYoOTYzNjIpLHg9Rig4'@; put 'NDMpLkJ1ZmZlcjtmdW5jdGlvbiBtKGxlKXt2YXIgTT14LmFsbG9jVW5zYWZlKDQpO3JldHVybiBNLndyaXRlVUludDMyQkUobGUsMCksTX1hdC5leHBvcnRzPWZ1bmN0aW9uKGxlLE0pe2Zvcih2YXIgeixPPXguYWxsb2MoMCksUj0wO08ubGVuZ3RoPE07KXo9bShSKyspLE89eC5jb25jYXQo'@; put 'W08sYWUoInNoYTEiKS51cGRhdGUobGUpLnVwZGF0ZSh6KS5kaWdlc3QoKV0pO3JldHVybiBPLnNsaWNlKDAsTSl9fSw0ODIxMTpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUseCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0oRyxiKXtpZighRyl0aHJvdyBuZXcgRXJyb3IoYnx8IkFz'@; put 'c2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBsZShHLGIpe0cuc3VwZXJfPWI7dmFyIEQ9ZnVuY3Rpb24oKXt9O0QucHJvdG90eXBlPWIucHJvdG90eXBlLEcucHJvdG90eXBlPW5ldyBELEcucHJvdG90eXBlLmNvbnN0cnVjdG9yPUd9ZnVuY3Rpb24gTShHLGIsRCl7aWYoTS5pc0JOKEcpKXJl'@; put 'dHVybiBHO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1HJiYoKCJsZSI9PT1ifHwiYmUiPT09YikmJihEPWIsYj0xMCksdGhpcy5faW5pdChHfHwwLGJ8fDEwLER8fCJiZSIpKX12YXIgTzsib2JqZWN0Ij09dHlwZW9m'@; put 'IGFlP2FlLmV4cG9ydHM9TTp4LkJOPU0sTS5CTj1NLE0ud29yZFNpemU9MjY7dHJ5e089dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuQnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOkYoNzcxMDgpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gUihHLGIpe3ZhciBEPUcuY2hhckNvZGVB'@; put 'dChiKTtyZXR1cm4gRD49NjUmJkQ8PTcwP0QtNTU6RD49OTcmJkQ8PTEwMj9ELTg3OkQtNDgmMTV9ZnVuY3Rpb24geihHLGIsRCl7dmFyIEg9UihHLEQpO3JldHVybiBELTE+PWImJihIfD1SKEcsRC0xKTw8NCksSH1mdW5jdGlvbiBLKEcsYixELEgpe2Zvcih2YXIgTj0wLGc9TWF0aC5taW4o'@; put 'Ry5sZW5ndGgsRCksQz1iO0M8ZztDKyspe3ZhciBTPUcuY2hhckNvZGVBdChDKS00ODtOKj1ILE4rPVM+PTQ5P1MtNDkrMTA6Uz49MTc/Uy0xNysxMDpTfXJldHVybiBOfU0uaXNCTj1mdW5jdGlvbihiKXtyZXR1cm4gYiBpbnN0YW5jZW9mIE18fG51bGwhPT1iJiYib2JqZWN0Ij09dHlwZW9m'@; put 'IGImJmIuY29uc3RydWN0b3Iud29yZFNpemU9PT1NLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGIud29yZHMpfSxNLm1heD1mdW5jdGlvbihiLEQpe3JldHVybiBiLmNtcChEKT4wP2I6RH0sTS5taW49ZnVuY3Rpb24oYixEKXtyZXR1cm4gYi5jbXAoRCk8MD9iOkR9LE0ucHJvdG90eXBlLl9p'@; put 'bml0PWZ1bmN0aW9uKGIsRCxIKXtpZigibnVtYmVyIj09dHlwZW9mIGIpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoYixELEgpO2lmKCJvYmplY3QiPT10eXBlb2YgYilyZXR1cm4gdGhpcy5faW5pdEFycmF5KGIsRCxIKTsiaGV4Ij09PUQmJihEPTE2KSxtKEQ9PT0oMHxEKSYmRD49MiYmRDw9'@; put 'MzYpO3ZhciBOPTA7Ii0iPT09KGI9Yi50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihOKyssdGhpcy5uZWdhdGl2ZT0xKSxOPGIubGVuZ3RoJiYoMTY9PT1EP3RoaXMuX3BhcnNlSGV4KGIsTixIKToodGhpcy5fcGFyc2VCYXNlKGIsRCxOKSwibGUiPT09SCYmdGhpcy5faW5p'@; put 'dEFycmF5KHRoaXMudG9BcnJheSgpLEQsSCkpKX0sTS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oYixELEgpe2I8MCYmKHRoaXMubmVnYXRpdmU9MSxiPS1iKSxiPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZiXSx0aGlzLmxlbmd0aD0xKTpiPDQ1MDM1OTk2MjczNzA0'@; put 'OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmIsYi82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KG0oYjw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZiLGIvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PUgmJnRoaXMuX2lu'@; put 'aXRBcnJheSh0aGlzLnRvQXJyYXkoKSxELEgpfSxNLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGIsRCxIKXtpZihtKCJudW1iZXIiPT10eXBlb2YgYi5sZW5ndGgpLGIubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9'@; put 'TWF0aC5jZWlsKGIubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIE49MDtOPHRoaXMubGVuZ3RoO04rKyl0aGlzLndvcmRzW05dPTA7dmFyIGcsQyxTPTA7aWYoImJlIj09PUgpZm9yKE49Yi5sZW5ndGgtMSxnPTA7Tj49MDtOLT0zKXRoaXMud29y'@; put 'ZHNbZ118PShDPWJbTl18YltOLTFdPDw4fGJbTi0yXTw8MTYpPDxTJjY3MTA4ODYzLHRoaXMud29yZHNbZysxXT1DPj4+MjYtUyY2NzEwODg2MywoUys9MjQpPj0yNiYmKFMtPTI2LGcrKyk7ZWxzZSBpZigibGUiPT09SClmb3IoTj0wLGc9MDtOPGIubGVuZ3RoO04rPTMpdGhpcy53b3Jkc1tn'@; put 'XXw9KEM9YltOXXxiW04rMV08PDh8YltOKzJdPDwxNik8PFMmNjcxMDg4NjMsdGhpcy53b3Jkc1tnKzFdPUM+Pj4yNi1TJjY3MTA4ODYzLChTKz0yNCk+PTI2JiYoUy09MjYsZysrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oYixELEgpe3Ro'@; put 'aXMubGVuZ3RoPU1hdGguY2VpbCgoYi5sZW5ndGgtRCkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgTj0wO048dGhpcy5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09MDt2YXIgUyxnPTAsQz0wO2lmKCJiZSI9PT1IKWZvcihOPWIubGVuZ3RoLTE7Tj49RDtO'@; put 'LT0yKVM9eihiLEQsTik8PGcsdGhpcy53b3Jkc1tDXXw9NjcxMDg4NjMmUyxnPj0xOD8oZy09MTgsdGhpcy53b3Jkc1tDKz0xXXw9Uz4+PjI2KTpnKz04O2Vsc2UgZm9yKE49KGIubGVuZ3RoLUQpJTI9PTA/RCsxOkQ7TjxiLmxlbmd0aDtOKz0yKVM9eihiLEQsTik8PGcsdGhpcy53b3Jkc1tD'@; put 'XXw9NjcxMDg4NjMmUyxnPj0xOD8oZy09MTgsdGhpcy53b3Jkc1tDKz0xXXw9Uz4+PjI2KTpnKz04O3RoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihiLEQsSCl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIE49MCxnPTE7Zzw9NjcxMDg4'@; put 'NjM7Zyo9RClOKys7Ti0tLGc9Zy9EfDA7Zm9yKHZhciBDPWIubGVuZ3RoLUgsUz1DJU4sdj1NYXRoLm1pbihDLEMtUykrSCxwPTAsdz1IO3c8djt3Kz1OKXA9SyhiLHcsdytOLEQpLHRoaXMuaW11bG4oZyksdGhpcy53b3Jkc1swXStwPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPXA6dGhpcy5f'@; put 'aWFkZG4ocCk7aWYoMCE9PVMpe3ZhciBKPTE7Zm9yKHA9SyhiLHcsYi5sZW5ndGgsRCksdz0wO3c8Uzt3KyspSio9RDt0aGlzLmltdWxuKEopLHRoaXMud29yZHNbMF0rcDw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1wOnRoaXMuX2lhZGRuKHApfXRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUu'@; put 'Y29weT1mdW5jdGlvbihiKXtiLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBEPTA7RDx0aGlzLmxlbmd0aDtEKyspYi53b3Jkc1tEXT10aGlzLndvcmRzW0RdO2IubGVuZ3RoPXRoaXMubGVuZ3RoLGIubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxiLnJlZD10aGlzLnJlZH0s'@; put 'TS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgTShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KGIpLGJ9LE0ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oYil7Zm9yKDt0aGlzLmxlbmd0aDxiOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE0u'@; put 'cHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sTS5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlz'@; put 'Lmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE0ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIEk9WyIiLCIwIiwiMDAiLCIwMDAi'@; put 'LCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAw'@; put 'MDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAi'@; put 'LCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0saz1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxFPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEs'@; put 'MTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0'@; put 'Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIFYoRyxiLEQpe0QubmVnYXRpdmU9Yi5uZWdhdGl2ZV5HLm5lZ2F0aXZl'@; put 'O3ZhciBIPUcubGVuZ3RoK2IubGVuZ3RofDA7RC5sZW5ndGg9SCxIPUgtMXwwO3ZhciBOPTB8Ry53b3Jkc1swXSxnPTB8Yi53b3Jkc1swXSxDPU4qZyx2PUMvNjcxMDg4NjR8MDtELndvcmRzWzBdPTY3MTA4ODYzJkM7Zm9yKHZhciBwPTE7cDxIO3ArKyl7Zm9yKHZhciB3PXY+Pj4yNixKPTY3'@; put 'MTA4ODYzJnYsbmU9TWF0aC5taW4ocCxiLmxlbmd0aC0xKSxkZT1NYXRoLm1heCgwLHAtRy5sZW5ndGgrMSk7ZGU8PW5lO2RlKyspdys9KEM9KE49MHxHLndvcmRzW3AtZGV8MF0pKihnPTB8Yi53b3Jkc1tkZV0pK0opLzY3MTA4ODY0fDAsSj02NzEwODg2MyZDO0Qud29yZHNbcF09MHxKLHY9'@; put 'MHx3fXJldHVybiAwIT09dj9ELndvcmRzW3BdPTB8djpELmxlbmd0aC0tLEQuc3RyaXAoKX1NLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihiLEQpe3ZhciBIO2lmKEQ9MHxEfHwxLDE2PT09KGI9Ynx8MTApfHwiaGV4Ij09PWIpe0g9IiI7Zm9yKHZhciBOPTAsZz0wLEM9MDtDPHRoaXMu'@; put 'bGVuZ3RoO0MrKyl7dmFyIFM9dGhpcy53b3Jkc1tDXSx2PSgxNjc3NzIxNSYoUzw8TnxnKSkudG9TdHJpbmcoMTYpO0g9MCE9KGc9Uz4+PjI0LU4mMTY3NzcyMTUpfHxDIT09dGhpcy5sZW5ndGgtMT9JWzYtdi5sZW5ndGhdK3YrSDp2K0gsKE4rPTIpPj0yNiYmKE4tPTI2LEMtLSl9Zm9yKDAh'@; put 'PT1nJiYoSD1nLnRvU3RyaW5nKDE2KStIKTtILmxlbmd0aCVEIT0wOylIPSIwIitIO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKEg9Ii0iK0gpLEh9aWYoYj09PSgwfGIpJiZiPj0yJiZiPD0zNil7dmFyIHA9a1tiXSx3PUVbYl07SD0iIjt2YXIgSj10aGlzLmNsb25lKCk7Zm9yKEoubmVn'@; put 'YXRpdmU9MDshSi5pc1plcm8oKTspe3ZhciBuZT1KLm1vZG4odykudG9TdHJpbmcoYik7SD0oSj1KLmlkaXZuKHcpKS5pc1plcm8oKT9uZStIOklbcC1uZS5sZW5ndGhdK25lK0h9Zm9yKHRoaXMuaXNaZXJvKCkmJihIPSIwIitIKTtILmxlbmd0aCVEIT0wOylIPSIwIitIO3JldHVybiAwIT09'@; put 'dGhpcy5uZWdhdGl2ZSYmKEg9Ii0iK0gpLEh9bSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxNLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBiPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9iKz02NzEwODg2NCp0aGlzLndvcmRz'@; put 'WzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Yis9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJm0oITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZl'@; put 'Py1iOmJ9LE0ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oYixEKXtyZXR1cm4gbSh0eXBlb2YgTzwidSIpLHRoaXMudG9BcnJheUxpa2UoTyxiLEQpfSxNLnByb3RvdHlwZS50b0FycmF5'@; put 'PWZ1bmN0aW9uKGIsRCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksYixEKX0sTS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oYixELEgpe3ZhciBOPXRoaXMuYnl0ZUxlbmd0aCgpLGc9SHx8TWF0aC5tYXgoMSxOKTttKE48PWcsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4g'@; put 'ZGVzaXJlZCBsZW5ndGgiKSxtKGc+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciB2LHAsQz0ibGUiPT09RCxTPW5ldyBiKGcpLHc9dGhpcy5jbG9uZSgpO2lmKEMpe2ZvcihwPTA7IXcuaXNaZXJvKCk7cCsrKXY9dy5hbmRsbigyNTUpLHcuaXVzaHJu'@; put 'KDgpLFNbcF09djtmb3IoO3A8ZztwKyspU1twXT0wfWVsc2V7Zm9yKHA9MDtwPGctTjtwKyspU1twXT0wO2ZvcihwPTA7IXcuaXNaZXJvKCk7cCsrKXY9dy5hbmRsbigyNTUpLHcuaXVzaHJuKDgpLFNbZy1wLTFdPXZ9cmV0dXJuIFN9LE0ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHoz'@; put 'Mj9mdW5jdGlvbihiKXtyZXR1cm4gMzItTWF0aC5jbHozMihiKX06ZnVuY3Rpb24oYil7dmFyIEQ9YixIPTA7cmV0dXJuIEQ+PTQwOTYmJihIKz0xMyxEPj4+PTEzKSxEPj02NCYmKEgrPTcsRD4+Pj03KSxEPj04JiYoSCs9NCxEPj4+PTQpLEQ+PTImJihIKz0yLEQ+Pj49MiksSCtEfSxNLnBy'@; put 'b3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oYil7aWYoMD09PWIpcmV0dXJuIDI2O3ZhciBEPWIsSD0wO3JldHVybiA4MTkxJkR8fChIKz0xMyxEPj4+PTEzKSwxMjcmRHx8KEgrPTcsRD4+Pj03KSwxNSZEfHwoSCs9NCxEPj4+PTQpLDMmRHx8KEgrPTIsRD4+Pj0yKSwxJkR8fEgrKyxIfSxN'@; put 'LnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgRD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStEfSxNLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJu'@; put 'IDA7Zm9yKHZhciBiPTAsRD0wO0Q8dGhpcy5sZW5ndGg7RCsrKXt2YXIgSD10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW0RdKTtpZihiKz1ILDI2IT09SClicmVha31yZXR1cm4gYn0sTS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRM'@; put 'ZW5ndGgoKS84KX0sTS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGIpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGIpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMudGVzdG4oYi0x'@; put 'KT90aGlzLm5vdG4oYikuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE0ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxNLnByb3RvdHlw'@; put 'ZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxNLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGIpe2Zvcig7dGhpcy5sZW5ndGg8Yi5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIEQ9MDtEPGIu'@; put 'bGVuZ3RoO0QrKyl0aGlzLndvcmRzW0RdPXRoaXMud29yZHNbRF18Yi53b3Jkc1tEXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oYil7cmV0dXJuIG0oMD09KHRoaXMubmVnYXRpdmV8Yi5uZWdhdGl2ZSkpLHRoaXMuaXVvcihiKX0sTS5wcm90b3R5cGUu'@; put 'b3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoYik6Yi5jbG9uZSgpLmlvcih0aGlzKX0sTS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihiKTpiLmNs'@; put 'b25lKCkuaXVvcih0aGlzKX0sTS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oYil7dmFyIEQ7RD10aGlzLmxlbmd0aD5iLmxlbmd0aD9iOnRoaXM7Zm9yKHZhciBIPTA7SDxELmxlbmd0aDtIKyspdGhpcy53b3Jkc1tIXT10aGlzLndvcmRzW0hdJmIud29yZHNbSF07cmV0dXJuIHRoaXMubGVu'@; put 'Z3RoPUQubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihiKXtyZXR1cm4gbSgwPT0odGhpcy5uZWdhdGl2ZXxiLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChiKX0sTS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmxlbmd0aD5iLmxlbmd0'@; put 'aD90aGlzLmNsb25lKCkuaWFuZChiKTpiLmNsb25lKCkuaWFuZCh0aGlzKX0sTS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGIpOmIuY2xvbmUoKS5pdWFuZCh0aGlzKX0sTS5wcm90b3R5cGUuaXV4b3I9'@; put 'ZnVuY3Rpb24oYil7dmFyIEQsSDt0aGlzLmxlbmd0aD5iLmxlbmd0aD8oRD10aGlzLEg9Yik6KEQ9YixIPXRoaXMpO2Zvcih2YXIgTj0wO048SC5sZW5ndGg7TisrKXRoaXMud29yZHNbTl09RC53b3Jkc1tOXV5ILndvcmRzW05dO2lmKHRoaXMhPT1EKWZvcig7TjxELmxlbmd0aDtOKyspdGhp'@; put 'cy53b3Jkc1tOXT1ELndvcmRzW05dO3JldHVybiB0aGlzLmxlbmd0aD1ELmxlbmd0aCx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oYil7cmV0dXJuIG0oMD09KHRoaXMubmVnYXRpdmV8Yi5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoYil9LE0ucHJvdG90eXBlLnhvcj1m'@; put 'dW5jdGlvbihiKXtyZXR1cm4gdGhpcy5sZW5ndGg+Yi5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoYik6Yi5jbG9uZSgpLml4b3IodGhpcyl9LE0ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMubGVuZ3RoPmIubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihiKTpiLmNs'@; put 'b25lKCkuaXV4b3IodGhpcyl9LE0ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiJiZiPj0wKTt2YXIgRD0wfE1hdGguY2VpbChiLzI2KSxIPWIlMjY7dGhpcy5fZXhwYW5kKEQpLEg+MCYmRC0tO2Zvcih2YXIgTj0wO048RDtOKyspdGhpcy53b3Jkc1tO'@; put 'XT02NzEwODg2MyZ+dGhpcy53b3Jkc1tOXTtyZXR1cm4gSD4wJiYodGhpcy53b3Jkc1tOXT1+dGhpcy53b3Jkc1tOXSY2NzEwODg2Mz4+MjYtSCksdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oYil9LE0ucHJvdG90'@; put 'eXBlLnNldG49ZnVuY3Rpb24oYixEKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIEg9Yi8yNnwwLE49YiUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKEgrMSksdGhpcy53b3Jkc1tIXT1EP3RoaXMud29yZHNbSF18MTw8Tjp0aGlzLndvcmRzW0hdJn4oMTw8TiksdGhpcy5zdHJpcCgp'@; put 'fSxNLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGIpe3ZhciBELEgsTjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWIubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxEPXRoaXMuaXN1YihiKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVn'@; put 'YXRpdmUmJjAhPT1iLm5lZ2F0aXZlKXJldHVybiBiLm5lZ2F0aXZlPTAsRD10aGlzLmlzdWIoYiksYi5uZWdhdGl2ZT0xLEQuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Yi5sZW5ndGg/KEg9dGhpcyxOPWIpOihIPWIsTj10aGlzKTtmb3IodmFyIGc9MCxDPTA7QzxOLmxlbmd0aDtDKyspdGhp'@; put 'cy53b3Jkc1tDXT02NzEwODg2MyYoRD0oMHxILndvcmRzW0NdKSsoMHxOLndvcmRzW0NdKStnKSxnPUQ+Pj4yNjtmb3IoOzAhPT1nJiZDPEgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTY3MTA4ODYzJihEPSgwfEgud29yZHNbQ10pK2cpLGc9RD4+PjI2O2lmKHRoaXMubGVuZ3RoPUgubGVu'@; put 'Z3RoLDAhPT1nKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPWcsdGhpcy5sZW5ndGgrKztlbHNlIGlmKEghPT10aGlzKWZvcig7QzxILmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT1ILndvcmRzW0NdO3JldHVybiB0aGlzfSxNLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYil7dmFyIEQ7cmV0dXJu'@; put 'IDAhPT1iLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oYi5uZWdhdGl2ZT0wLEQ9dGhpcy5zdWIoYiksYi5uZWdhdGl2ZV49MSxEKTowPT09Yi5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxEPWIuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxEKTp0'@; put 'aGlzLmxlbmd0aD5iLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChiKTpiLmNsb25lKCkuaWFkZCh0aGlzKX0sTS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihiKXtpZigwIT09Yi5uZWdhdGl2ZSl7Yi5uZWdhdGl2ZT0wO3ZhciBEPXRoaXMuaWFkZChiKTtyZXR1cm4gYi5uZWdhdGl2ZT0xLEQu'@; put 'X25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoYiksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIE4sZyxIPXRoaXMuY21wKGIpO2lmKDA9PT1IKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5n'@; put 'dGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztIPjA/KE49dGhpcyxnPWIpOihOPWIsZz10aGlzKTtmb3IodmFyIEM9MCxTPTA7UzxnLmxlbmd0aDtTKyspQz0oRD0oMHxOLndvcmRzW1NdKS0oMHxnLndvcmRzW1NdKStDKT4+MjYsdGhpcy53b3Jkc1tTXT02NzEwODg2MyZEO2Zvcig7MCE9PUMm'@; put 'JlM8Ti5sZW5ndGg7UysrKUM9KEQ9KDB8Ti53b3Jkc1tTXSkrQyk+PjI2LHRoaXMud29yZHNbU109NjcxMDg4NjMmRDtpZigwPT09QyYmUzxOLmxlbmd0aCYmTiE9PXRoaXMpZm9yKDtTPE4ubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPU4ud29yZHNbU107cmV0dXJuIHRoaXMubGVuZ3RoPU1h'@; put 'dGgubWF4KHRoaXMubGVuZ3RoLFMpLE4hPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoYil9O3ZhciBCPWZ1bmN0aW9uKGIsRCxIKXt2YXIgdixwLHcsTj1iLndvcmRzLGc9'@; put 'RC53b3JkcyxDPUgud29yZHMsUz0wLEo9MHxOWzBdLG5lPTgxOTEmSixkZT1KPj4+MTMsZmU9MHxOWzFdLHhlPTgxOTEmZmUsTGU9ZmU+Pj4xMyxGZT0wfE5bMl0sT2U9ODE5MSZGZSxqZT1GZT4+PjEzLFdlPTB8TlszXSxLZT04MTkxJldlLFllPVdlPj4+MTMsUWU9MHxOWzRdLGx0PTgxOTEm'@; put 'UWUsUGU9UWU+Pj4xMyxiZT0wfE5bNV0sQWU9ODE5MSZiZSxUZT1iZT4+PjEzLHFlPTB8Tls2XSxYZT04MTkxJnFlLFVlPXFlPj4+MTMsaHQ9MHxOWzddLE1lPTgxOTEmaHQsRGU9aHQ+Pj4xMyx6ZT0wfE5bOF0sb3Q9ODE5MSZ6ZSx1dD16ZT4+PjEzLE10PTB8Tls5XSxIdD04MTkxJk10LFB0'@; put 'PU10Pj4+MTMsb249MHxnWzBdLENuPTgxOTEmb24sVXQ9b24+Pj4xMyxibj0wfGdbMV0sV249ODE5MSZibixlbj1ibj4+PjEzLCRuPTB8Z1syXSxIbj04MTkxJiRuLGZ0PSRuPj4+MTMsZm49MHxnWzNdLGhuPTgxOTEmZm4sd3Q9Zm4+Pj4xMyxYdD0wfGdbNF0sX3Q9ODE5MSZYdCxOdD1YdD4+'@; put 'PjEzLG1uPTB8Z1s1XSxydD04MTkxJm1uLEl0PW1uPj4+MTMsUXQ9MHxnWzZdLER0PTgxOTEmUXQscHQ9UXQ+Pj4xMyxZdD0wfGdbN10sSW49ODE5MSZZdCx6dD1ZdD4+PjEzLHluPTB8Z1s4XSx4bj04MTkxJnluLHNuPXluPj4+MTMsQm49MHxnWzldLFJuPTgxOTEmQm4sJHQ9Qm4+Pj4xMztI'@; put 'Lm5lZ2F0aXZlPWIubmVnYXRpdmVeRC5uZWdhdGl2ZSxILmxlbmd0aD0xOTt2YXIgRm49KFMrKHY9TWF0aC5pbXVsKG5lLENuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChuZSxVdCkpK01hdGguaW11bChkZSxDbil8MCkpPDwxMyl8MDtTPSgodz1NYXRoLmltdWwoZGUsVXQpKSsocD4+'@; put 'PjEzKXwwKSsoRm4+Pj4yNil8MCxGbiY9NjcxMDg4NjMsdj1NYXRoLmltdWwoeGUsQ24pLHA9KHA9TWF0aC5pbXVsKHhlLFV0KSkrTWF0aC5pbXVsKExlLENuKXwwLHc9TWF0aC5pbXVsKExlLFV0KTt2YXIgbmk9KFMrKHY9ditNYXRoLmltdWwobmUsV24pfDApfDApKygoODE5MSYocD0ocD1w'@; put 'K01hdGguaW11bChuZSxlbil8MCkrTWF0aC5pbXVsKGRlLFduKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLGVuKXwwKSsocD4+PjEzKXwwKSsobmk+Pj4yNil8MCxuaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoT2UsQ24pLHA9KHA9TWF0aC5pbXVsKE9lLFV0KSkrTWF0aC5pbXVs'@; put 'KGplLENuKXwwLHc9TWF0aC5pbXVsKGplLFV0KSx2PXYrTWF0aC5pbXVsKHhlLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsZW4pfDApK01hdGguaW11bChMZSxXbil8MCx3PXcrTWF0aC5pbXVsKExlLGVuKXwwO3ZhciBsbj0oUysodj12K01hdGguaW11bChuZSxIbil8MCl8MCkrKCg4MTkx'@; put 'JihwPShwPXArTWF0aC5pbXVsKG5lLGZ0KXwwKStNYXRoLmltdWwoZGUsSG4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsZnQpfDApKyhwPj4+MTMpfDApKyhsbj4+PjI2KXwwLGxuJj02NzEwODg2Myx2PU1hdGguaW11bChLZSxDbikscD0ocD1NYXRoLmltdWwoS2UsVXQpKStN'@; put 'YXRoLmltdWwoWWUsQ24pfDAsdz1NYXRoLmltdWwoWWUsVXQpLHY9ditNYXRoLmltdWwoT2UsV24pfDAscD0ocD1wK01hdGguaW11bChPZSxlbil8MCkrTWF0aC5pbXVsKGplLFduKXwwLHc9dytNYXRoLmltdWwoamUsZW4pfDAsdj12K01hdGguaW11bCh4ZSxIbil8MCxwPShwPXArTWF0aC5p'@; put 'bXVsKHhlLGZ0KXwwKStNYXRoLmltdWwoTGUsSG4pfDAsdz13K01hdGguaW11bChMZSxmdCl8MDt2YXIgam49KFMrKHY9ditNYXRoLmltdWwobmUsaG4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSx3dCl8MCkrTWF0aC5pbXVsKGRlLGhuKXwwKSk8PDEzKXwwO1M9KCh3PXcr'@; put 'TWF0aC5pbXVsKGRlLHd0KXwwKSsocD4+PjEzKXwwKSsoam4+Pj4yNil8MCxqbiY9NjcxMDg4NjMsdj1NYXRoLmltdWwobHQsQ24pLHA9KHA9TWF0aC5pbXVsKGx0LFV0KSkrTWF0aC5pbXVsKFBlLENuKXwwLHc9TWF0aC5pbXVsKFBlLFV0KSx2PXYrTWF0aC5pbXVsKEtlLFduKXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwoS2UsZW4pfDApK01hdGguaW11bChZZSxXbil8MCx3PXcrTWF0aC5pbXVsKFllLGVuKXwwLHY9ditNYXRoLmltdWwoT2UsSG4pfDAscD0ocD1wK01hdGguaW11bChPZSxmdCl8MCkrTWF0aC5pbXVsKGplLEhuKXwwLHc9dytNYXRoLmltdWwoamUsZnQpfDAsdj12K01hdGgu'@; put 'aW11bCh4ZSxobil8MCxwPShwPXArTWF0aC5pbXVsKHhlLHd0KXwwKStNYXRoLmltdWwoTGUsaG4pfDAsdz13K01hdGguaW11bChMZSx3dCl8MDt2YXIgcXI9KFMrKHY9ditNYXRoLmltdWwobmUsX3QpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxOdCl8MCkrTWF0aC5pbXVs'@; put 'KGRlLF90KXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLE50KXwwKSsocD4+PjEzKXwwKSsocXI+Pj4yNil8MCxxciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoQWUsQ24pLHA9KHA9TWF0aC5pbXVsKEFlLFV0KSkrTWF0aC5pbXVsKFRlLENuKXwwLHc9TWF0aC5pbXVsKFRlLFV0KSx2'@; put 'PXYrTWF0aC5pbXVsKGx0LFduKXwwLHA9KHA9cCtNYXRoLmltdWwobHQsZW4pfDApK01hdGguaW11bChQZSxXbil8MCx3PXcrTWF0aC5pbXVsKFBlLGVuKXwwLHY9ditNYXRoLmltdWwoS2UsSG4pfDAscD0ocD1wK01hdGguaW11bChLZSxmdCl8MCkrTWF0aC5pbXVsKFllLEhuKXwwLHc9dytN'@; put 'YXRoLmltdWwoWWUsZnQpfDAsdj12K01hdGguaW11bChPZSxobil8MCxwPShwPXArTWF0aC5pbXVsKE9lLHd0KXwwKStNYXRoLmltdWwoamUsaG4pfDAsdz13K01hdGguaW11bChqZSx3dCl8MCx2PXYrTWF0aC5pbXVsKHhlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsTnQpfDApK01hdGgu'@; put 'aW11bChMZSxfdCl8MCx3PXcrTWF0aC5pbXVsKExlLE50KXwwO3ZhciBnaT0oUysodj12K01hdGguaW11bChuZSxydCl8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG5lLEl0KXwwKStNYXRoLmltdWwoZGUscnQpfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsSXQpfDAp'@; put 'KyhwPj4+MTMpfDApKyhnaT4+PjI2KXwwLGdpJj02NzEwODg2Myx2PU1hdGguaW11bChYZSxDbikscD0ocD1NYXRoLmltdWwoWGUsVXQpKStNYXRoLmltdWwoVWUsQ24pfDAsdz1NYXRoLmltdWwoVWUsVXQpLHY9ditNYXRoLmltdWwoQWUsV24pfDAscD0ocD1wK01hdGguaW11bChBZSxlbil8'@; put 'MCkrTWF0aC5pbXVsKFRlLFduKXwwLHc9dytNYXRoLmltdWwoVGUsZW4pfDAsdj12K01hdGguaW11bChsdCxIbil8MCxwPShwPXArTWF0aC5pbXVsKGx0LGZ0KXwwKStNYXRoLmltdWwoUGUsSG4pfDAsdz13K01hdGguaW11bChQZSxmdCl8MCx2PXYrTWF0aC5pbXVsKEtlLGhuKXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwoS2Usd3QpfDApK01hdGguaW11bChZZSxobil8MCx3PXcrTWF0aC5pbXVsKFllLHd0KXwwLHY9ditNYXRoLmltdWwoT2UsX3QpfDAscD0ocD1wK01hdGguaW11bChPZSxOdCl8MCkrTWF0aC5pbXVsKGplLF90KXwwLHc9dytNYXRoLmltdWwoamUsTnQpfDAsdj12K01hdGgu'@; put 'aW11bCh4ZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKHhlLEl0KXwwKStNYXRoLmltdWwoTGUscnQpfDAsdz13K01hdGguaW11bChMZSxJdCl8MDt2YXIgeHI9KFMrKHY9ditNYXRoLmltdWwobmUsRHQpfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSxwdCl8MCkrTWF0aC5pbXVs'@; put 'KGRlLER0KXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLHB0KXwwKSsocD4+PjEzKXwwKSsoeHI+Pj4yNil8MCx4ciY9NjcxMDg4NjMsdj1NYXRoLmltdWwoTWUsQ24pLHA9KHA9TWF0aC5pbXVsKE1lLFV0KSkrTWF0aC5pbXVsKERlLENuKXwwLHc9TWF0aC5pbXVsKERlLFV0KSx2'@; put 'PXYrTWF0aC5pbXVsKFhlLFduKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsZW4pfDApK01hdGguaW11bChVZSxXbil8MCx3PXcrTWF0aC5pbXVsKFVlLGVuKXwwLHY9ditNYXRoLmltdWwoQWUsSG4pfDAscD0ocD1wK01hdGguaW11bChBZSxmdCl8MCkrTWF0aC5pbXVsKFRlLEhuKXwwLHc9dytN'@; put 'YXRoLmltdWwoVGUsZnQpfDAsdj12K01hdGguaW11bChsdCxobil8MCxwPShwPXArTWF0aC5pbXVsKGx0LHd0KXwwKStNYXRoLmltdWwoUGUsaG4pfDAsdz13K01hdGguaW11bChQZSx3dCl8MCx2PXYrTWF0aC5pbXVsKEtlLF90KXwwLHA9KHA9cCtNYXRoLmltdWwoS2UsTnQpfDApK01hdGgu'@; put 'aW11bChZZSxfdCl8MCx3PXcrTWF0aC5pbXVsKFllLE50KXwwLHY9ditNYXRoLmltdWwoT2UscnQpfDAscD0ocD1wK01hdGguaW11bChPZSxJdCl8MCkrTWF0aC5pbXVsKGplLHJ0KXwwLHc9dytNYXRoLmltdWwoamUsSXQpfDAsdj12K01hdGguaW11bCh4ZSxEdCl8MCxwPShwPXArTWF0aC5p'@; put 'bXVsKHhlLHB0KXwwKStNYXRoLmltdWwoTGUsRHQpfDAsdz13K01hdGguaW11bChMZSxwdCl8MDt2YXIgVWk9KFMrKHY9ditNYXRoLmltdWwobmUsSW4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChuZSx6dCl8MCkrTWF0aC5pbXVsKGRlLEluKXwwKSk8PDEzKXwwO1M9KCh3PXcr'@; put 'TWF0aC5pbXVsKGRlLHp0KXwwKSsocD4+PjEzKXwwKSsoVWk+Pj4yNil8MCxVaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwob3QsQ24pLHA9KHA9TWF0aC5pbXVsKG90LFV0KSkrTWF0aC5pbXVsKHV0LENuKXwwLHc9TWF0aC5pbXVsKHV0LFV0KSx2PXYrTWF0aC5pbXVsKE1lLFduKXwwLHA9KHA9'@; put 'cCtNYXRoLmltdWwoTWUsZW4pfDApK01hdGguaW11bChEZSxXbil8MCx3PXcrTWF0aC5pbXVsKERlLGVuKXwwLHY9ditNYXRoLmltdWwoWGUsSG4pfDAscD0ocD1wK01hdGguaW11bChYZSxmdCl8MCkrTWF0aC5pbXVsKFVlLEhuKXwwLHc9dytNYXRoLmltdWwoVWUsZnQpfDAsdj12K01hdGgu'@; put 'aW11bChBZSxobil8MCxwPShwPXArTWF0aC5pbXVsKEFlLHd0KXwwKStNYXRoLmltdWwoVGUsaG4pfDAsdz13K01hdGguaW11bChUZSx3dCl8MCx2PXYrTWF0aC5pbXVsKGx0LF90KXwwLHA9KHA9cCtNYXRoLmltdWwobHQsTnQpfDApK01hdGguaW11bChQZSxfdCl8MCx3PXcrTWF0aC5pbXVs'@; put 'KFBlLE50KXwwLHY9ditNYXRoLmltdWwoS2UscnQpfDAscD0ocD1wK01hdGguaW11bChLZSxJdCl8MCkrTWF0aC5pbXVsKFllLHJ0KXwwLHc9dytNYXRoLmltdWwoWWUsSXQpfDAsdj12K01hdGguaW11bChPZSxEdCl8MCxwPShwPXArTWF0aC5pbXVsKE9lLHB0KXwwKStNYXRoLmltdWwoamUs'@; put 'RHQpfDAsdz13K01hdGguaW11bChqZSxwdCl8MCx2PXYrTWF0aC5pbXVsKHhlLEluKXwwLHA9KHA9cCtNYXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bChMZSxJbil8MCx3PXcrTWF0aC5pbXVsKExlLHp0KXwwO3ZhciBLcj0oUysodj12K01hdGguaW11bChuZSx4bil8MCl8MCkrKCg4MTkx'@; put 'JihwPShwPXArTWF0aC5pbXVsKG5lLHNuKXwwKStNYXRoLmltdWwoZGUseG4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoZGUsc24pfDApKyhwPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxDbikscD0ocD1NYXRoLmltdWwoSHQsVXQpKStN'@; put 'YXRoLmltdWwoUHQsQ24pfDAsdz1NYXRoLmltdWwoUHQsVXQpLHY9ditNYXRoLmltdWwob3QsV24pfDAscD0ocD1wK01hdGguaW11bChvdCxlbil8MCkrTWF0aC5pbXVsKHV0LFduKXwwLHc9dytNYXRoLmltdWwodXQsZW4pfDAsdj12K01hdGguaW11bChNZSxIbil8MCxwPShwPXArTWF0aC5p'@; put 'bXVsKE1lLGZ0KXwwKStNYXRoLmltdWwoRGUsSG4pfDAsdz13K01hdGguaW11bChEZSxmdCl8MCx2PXYrTWF0aC5pbXVsKFhlLGhuKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsd3QpfDApK01hdGguaW11bChVZSxobil8MCx3PXcrTWF0aC5pbXVsKFVlLHd0KXwwLHY9ditNYXRoLmltdWwoQWUs'@; put 'X3QpfDAscD0ocD1wK01hdGguaW11bChBZSxOdCl8MCkrTWF0aC5pbXVsKFRlLF90KXwwLHc9dytNYXRoLmltdWwoVGUsTnQpfDAsdj12K01hdGguaW11bChsdCxydCl8MCxwPShwPXArTWF0aC5pbXVsKGx0LEl0KXwwKStNYXRoLmltdWwoUGUscnQpfDAsdz13K01hdGguaW11bChQZSxJdCl8'@; put 'MCx2PXYrTWF0aC5pbXVsKEtlLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoS2UscHQpfDApK01hdGguaW11bChZZSxEdCl8MCx3PXcrTWF0aC5pbXVsKFllLHB0KXwwLHY9ditNYXRoLmltdWwoT2UsSW4pfDAscD0ocD1wK01hdGguaW11bChPZSx6dCl8MCkrTWF0aC5pbXVsKGplLEluKXwwLHc9'@; put 'dytNYXRoLmltdWwoamUsenQpfDAsdj12K01hdGguaW11bCh4ZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKHhlLHNuKXwwKStNYXRoLmltdWwoTGUseG4pfDAsdz13K01hdGguaW11bChMZSxzbil8MDt2YXIgbm89KFMrKHY9ditNYXRoLmltdWwobmUsUm4pfDApfDApKygoODE5MSYocD0ocD1w'@; put 'K01hdGguaW11bChuZSwkdCl8MCkrTWF0aC5pbXVsKGRlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKGRlLCR0KXwwKSsocD4+PjEzKXwwKSsobm8+Pj4yNil8MCxubyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsV24pLHA9KHA9TWF0aC5pbXVsKEh0LGVuKSkrTWF0aC5pbXVs'@; put 'KFB0LFduKXwwLHc9TWF0aC5pbXVsKFB0LGVuKSx2PXYrTWF0aC5pbXVsKG90LEhuKXwwLHA9KHA9cCtNYXRoLmltdWwob3QsZnQpfDApK01hdGguaW11bCh1dCxIbil8MCx3PXcrTWF0aC5pbXVsKHV0LGZ0KXwwLHY9ditNYXRoLmltdWwoTWUsaG4pfDAscD0ocD1wK01hdGguaW11bChNZSx3'@; put 'dCl8MCkrTWF0aC5pbXVsKERlLGhuKXwwLHc9dytNYXRoLmltdWwoRGUsd3QpfDAsdj12K01hdGguaW11bChYZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKFhlLE50KXwwKStNYXRoLmltdWwoVWUsX3QpfDAsdz13K01hdGguaW11bChVZSxOdCl8MCx2PXYrTWF0aC5pbXVsKEFlLHJ0KXwwLHA9'@; put 'KHA9cCtNYXRoLmltdWwoQWUsSXQpfDApK01hdGguaW11bChUZSxydCl8MCx3PXcrTWF0aC5pbXVsKFRlLEl0KXwwLHY9ditNYXRoLmltdWwobHQsRHQpfDAscD0ocD1wK01hdGguaW11bChsdCxwdCl8MCkrTWF0aC5pbXVsKFBlLER0KXwwLHc9dytNYXRoLmltdWwoUGUscHQpfDAsdj12K01h'@; put 'dGguaW11bChLZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKEtlLHp0KXwwKStNYXRoLmltdWwoWWUsSW4pfDAsdz13K01hdGguaW11bChZZSx6dCl8MCx2PXYrTWF0aC5pbXVsKE9lLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoT2Usc24pfDApK01hdGguaW11bChqZSx4bil8MCx3PXcrTWF0aC5p'@; put 'bXVsKGplLHNuKXwwO3ZhciBIcj0oUysodj12K01hdGguaW11bCh4ZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKHhlLCR0KXwwKStNYXRoLmltdWwoTGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoTGUsJHQpfDApKyhwPj4+MTMpfDApKyhIcj4+PjI2KXww'@; put 'LEhyJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxIbikscD0ocD1NYXRoLmltdWwoSHQsZnQpKStNYXRoLmltdWwoUHQsSG4pfDAsdz1NYXRoLmltdWwoUHQsZnQpLHY9ditNYXRoLmltdWwob3QsaG4pfDAscD0ocD1wK01hdGguaW11bChvdCx3dCl8MCkrTWF0aC5pbXVsKHV0LGhuKXwwLHc9'@; put 'dytNYXRoLmltdWwodXQsd3QpfDAsdj12K01hdGguaW11bChNZSxfdCl8MCxwPShwPXArTWF0aC5pbXVsKE1lLE50KXwwKStNYXRoLmltdWwoRGUsX3QpfDAsdz13K01hdGguaW11bChEZSxOdCl8MCx2PXYrTWF0aC5pbXVsKFhlLHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsSXQpfDApK01h'@; put 'dGguaW11bChVZSxydCl8MCx3PXcrTWF0aC5pbXVsKFVlLEl0KXwwLHY9ditNYXRoLmltdWwoQWUsRHQpfDAscD0ocD1wK01hdGguaW11bChBZSxwdCl8MCkrTWF0aC5pbXVsKFRlLER0KXwwLHc9dytNYXRoLmltdWwoVGUscHQpfDAsdj12K01hdGguaW11bChsdCxJbil8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKGx0LHp0KXwwKStNYXRoLmltdWwoUGUsSW4pfDAsdz13K01hdGguaW11bChQZSx6dCl8MCx2PXYrTWF0aC5pbXVsKEtlLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoS2Usc24pfDApK01hdGguaW11bChZZSx4bil8MCx3PXcrTWF0aC5pbXVsKFllLHNuKXwwO3ZhciBxaT0oUysodj12'@; put 'K01hdGguaW11bChPZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKE9lLCR0KXwwKStNYXRoLmltdWwoamUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoamUsJHQpfDApKyhwPj4+MTMpfDApKyhxaT4+PjI2KXwwLHFpJj02NzEwODg2Myx2PU1hdGguaW11bChI'@; put 'dCxobikscD0ocD1NYXRoLmltdWwoSHQsd3QpKStNYXRoLmltdWwoUHQsaG4pfDAsdz1NYXRoLmltdWwoUHQsd3QpLHY9ditNYXRoLmltdWwob3QsX3QpfDAscD0ocD1wK01hdGguaW11bChvdCxOdCl8MCkrTWF0aC5pbXVsKHV0LF90KXwwLHc9dytNYXRoLmltdWwodXQsTnQpfDAsdj12K01h'@; put 'dGguaW11bChNZSxydCl8MCxwPShwPXArTWF0aC5pbXVsKE1lLEl0KXwwKStNYXRoLmltdWwoRGUscnQpfDAsdz13K01hdGguaW11bChEZSxJdCl8MCx2PXYrTWF0aC5pbXVsKFhlLER0KXwwLHA9KHA9cCtNYXRoLmltdWwoWGUscHQpfDApK01hdGguaW11bChVZSxEdCl8MCx3PXcrTWF0aC5p'@; put 'bXVsKFVlLHB0KXwwLHY9ditNYXRoLmltdWwoQWUsSW4pfDAscD0ocD1wK01hdGguaW11bChBZSx6dCl8MCkrTWF0aC5pbXVsKFRlLEluKXwwLHc9dytNYXRoLmltdWwoVGUsenQpfDAsdj12K01hdGguaW11bChsdCx4bil8MCxwPShwPXArTWF0aC5pbXVsKGx0LHNuKXwwKStNYXRoLmltdWwo'@; put 'UGUseG4pfDAsdz13K01hdGguaW11bChQZSxzbil8MDt2YXIgSmk9KFMrKHY9ditNYXRoLmltdWwoS2UsUm4pfDApfDApKygoODE5MSYocD0ocD1wK01hdGguaW11bChLZSwkdCl8MCkrTWF0aC5pbXVsKFllLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKFllLCR0KXwwKSsocD4+'@; put 'PjEzKXwwKSsoSmk+Pj4yNil8MCxKaSY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsX3QpLHA9KHA9TWF0aC5pbXVsKEh0LE50KSkrTWF0aC5pbXVsKFB0LF90KXwwLHc9TWF0aC5pbXVsKFB0LE50KSx2PXYrTWF0aC5pbXVsKG90LHJ0KXwwLHA9KHA9cCtNYXRoLmltdWwob3QsSXQpfDApK01h'@; put 'dGguaW11bCh1dCxydCl8MCx3PXcrTWF0aC5pbXVsKHV0LEl0KXwwLHY9ditNYXRoLmltdWwoTWUsRHQpfDAscD0ocD1wK01hdGguaW11bChNZSxwdCl8MCkrTWF0aC5pbXVsKERlLER0KXwwLHc9dytNYXRoLmltdWwoRGUscHQpfDAsdj12K01hdGguaW11bChYZSxJbil8MCxwPShwPXArTWF0'@; put 'aC5pbXVsKFhlLHp0KXwwKStNYXRoLmltdWwoVWUsSW4pfDAsdz13K01hdGguaW11bChVZSx6dCl8MCx2PXYrTWF0aC5pbXVsKEFlLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoQWUsc24pfDApK01hdGguaW11bChUZSx4bil8MCx3PXcrTWF0aC5pbXVsKFRlLHNuKXwwO3ZhciBhbz0oUysodj12'@; put 'K01hdGguaW11bChsdCxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKGx0LCR0KXwwKStNYXRoLmltdWwoUGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoUGUsJHQpfDApKyhwPj4+MTMpfDApKyhhbz4+PjI2KXwwLGFvJj02NzEwODg2Myx2PU1hdGguaW11bChI'@; put 'dCxydCkscD0ocD1NYXRoLmltdWwoSHQsSXQpKStNYXRoLmltdWwoUHQscnQpfDAsdz1NYXRoLmltdWwoUHQsSXQpLHY9ditNYXRoLmltdWwob3QsRHQpfDAscD0ocD1wK01hdGguaW11bChvdCxwdCl8MCkrTWF0aC5pbXVsKHV0LER0KXwwLHc9dytNYXRoLmltdWwodXQscHQpfDAsdj12K01h'@; put 'dGguaW11bChNZSxJbil8MCxwPShwPXArTWF0aC5pbXVsKE1lLHp0KXwwKStNYXRoLmltdWwoRGUsSW4pfDAsdz13K01hdGguaW11bChEZSx6dCl8MCx2PXYrTWF0aC5pbXVsKFhlLHhuKXwwLHA9KHA9cCtNYXRoLmltdWwoWGUsc24pfDApK01hdGguaW11bChVZSx4bil8MCx3PXcrTWF0aC5p'@; put 'bXVsKFVlLHNuKXwwO3ZhciBybz0oUysodj12K01hdGguaW11bChBZSxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKEFlLCR0KXwwKStNYXRoLmltdWwoVGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoVGUsJHQpfDApKyhwPj4+MTMpfDApKyhybz4+PjI2KXww'@; put 'LHJvJj02NzEwODg2Myx2PU1hdGguaW11bChIdCxEdCkscD0ocD1NYXRoLmltdWwoSHQscHQpKStNYXRoLmltdWwoUHQsRHQpfDAsdz1NYXRoLmltdWwoUHQscHQpLHY9ditNYXRoLmltdWwob3QsSW4pfDAscD0ocD1wK01hdGguaW11bChvdCx6dCl8MCkrTWF0aC5pbXVsKHV0LEluKXwwLHc9'@; put 'dytNYXRoLmltdWwodXQsenQpfDAsdj12K01hdGguaW11bChNZSx4bil8MCxwPShwPXArTWF0aC5pbXVsKE1lLHNuKXwwKStNYXRoLmltdWwoRGUseG4pfDAsdz13K01hdGguaW11bChEZSxzbil8MDt2YXIgaW89KFMrKHY9ditNYXRoLmltdWwoWGUsUm4pfDApfDApKygoODE5MSYocD0ocD1w'@; put 'K01hdGguaW11bChYZSwkdCl8MCkrTWF0aC5pbXVsKFVlLFJuKXwwKSk8PDEzKXwwO1M9KCh3PXcrTWF0aC5pbXVsKFVlLCR0KXwwKSsocD4+PjEzKXwwKSsoaW8+Pj4yNil8MCxpbyY9NjcxMDg4NjMsdj1NYXRoLmltdWwoSHQsSW4pLHA9KHA9TWF0aC5pbXVsKEh0LHp0KSkrTWF0aC5pbXVs'@; put 'KFB0LEluKXwwLHc9TWF0aC5pbXVsKFB0LHp0KSx2PXYrTWF0aC5pbXVsKG90LHhuKXwwLHA9KHA9cCtNYXRoLmltdWwob3Qsc24pfDApK01hdGguaW11bCh1dCx4bil8MCx3PXcrTWF0aC5pbXVsKHV0LHNuKXwwO3ZhciBHaT0oUysodj12K01hdGguaW11bChNZSxSbil8MCl8MCkrKCg4MTkx'@; put 'JihwPShwPXArTWF0aC5pbXVsKE1lLCR0KXwwKStNYXRoLmltdWwoRGUsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwoRGUsJHQpfDApKyhwPj4+MTMpfDApKyhHaT4+PjI2KXwwLEdpJj02NzEwODg2Myx2PU1hdGguaW11bChIdCx4bikscD0ocD1NYXRoLmltdWwoSHQsc24pKStN'@; put 'YXRoLmltdWwoUHQseG4pfDAsdz1NYXRoLmltdWwoUHQsc24pO3ZhciBobz0oUysodj12K01hdGguaW11bChvdCxSbil8MCl8MCkrKCg4MTkxJihwPShwPXArTWF0aC5pbXVsKG90LCR0KXwwKStNYXRoLmltdWwodXQsUm4pfDApKTw8MTMpfDA7Uz0oKHc9dytNYXRoLmltdWwodXQsJHQpfDAp'@; put 'KyhwPj4+MTMpfDApKyhobz4+PjI2KXwwLGhvJj02NzEwODg2Mzt2YXIgeXI9KFMrKHY9TWF0aC5pbXVsKEh0LFJuKSl8MCkrKCg4MTkxJihwPShwPU1hdGguaW11bChIdCwkdCkpK01hdGguaW11bChQdCxSbil8MCkpPDwxMyl8MDtyZXR1cm4gUz0oKHc9TWF0aC5pbXVsKFB0LCR0KSkrKHA+'@; put 'Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLENbMF09Rm4sQ1sxXT1uaSxDWzJdPWxuLENbM109am4sQ1s0XT1xcixDWzVdPWdpLENbNl09eHIsQ1s3XT1VaSxDWzhdPUtyLENbOV09bm8sQ1sxMF09SHIsQ1sxMV09cWksQ1sxMl09SmksQ1sxM109YW8sQ1sxNF09cm8sQ1sxNV09'@; put 'aW8sQ1sxNl09R2ksQ1sxN109aG8sQ1sxOF09eXIsMCE9PVMmJihDWzE5XT1TLEgubGVuZ3RoKyspLEh9O2Z1bmN0aW9uIFgoRyxiLEQpe3JldHVybihuZXcgVSkubXVscChHLGIsRCl9ZnVuY3Rpb24gVShHLGIpe3RoaXMueD1HLHRoaXMueT1ifU1hdGguaW11bHx8KEI9ViksTS5wcm90b3R5'@; put 'cGUubXVsVG89ZnVuY3Rpb24oYixEKXt2YXIgSCxOPXRoaXMubGVuZ3RoK2IubGVuZ3RoO3JldHVybiBIPTEwPT09dGhpcy5sZW5ndGgmJjEwPT09Yi5sZW5ndGg/Qih0aGlzLGIsRCk6Tjw2Mz9WKHRoaXMsYixEKTpOPDEwMjQ/ZnVuY3Rpb24gWShHLGIsRCl7RC5uZWdhdGl2ZT1iLm5lZ2F0'@; put 'aXZlXkcubmVnYXRpdmUsRC5sZW5ndGg9Ry5sZW5ndGgrYi5sZW5ndGg7Zm9yKHZhciBIPTAsTj0wLGc9MDtnPEQubGVuZ3RoLTE7ZysrKXt2YXIgQz1OO049MDtmb3IodmFyIFM9NjcxMDg4NjMmSCx2PU1hdGgubWluKGcsYi5sZW5ndGgtMSkscD1NYXRoLm1heCgwLGctRy5sZW5ndGgrMSk7'@; put 'cDw9djtwKyspe3ZhciBkZT0oMHxHLndvcmRzW2ctcF0pKigwfGIud29yZHNbcF0pLGZlPTY3MTA4ODYzJmRlO1M9NjcxMDg4NjMmKGZlPWZlK1N8MCksTis9KEM9KEM9QysoZGUvNjcxMDg4NjR8MCl8MCkrKGZlPj4+MjYpfDApPj4+MjYsQyY9NjcxMDg4NjN9RC53b3Jkc1tnXT1TLEg9QyxD'@; put 'PU59cmV0dXJuIDAhPT1IP0Qud29yZHNbZ109SDpELmxlbmd0aC0tLEQuc3RyaXAoKX0odGhpcyxiLEQpOlgodGhpcyxiLEQpLEh9LFUucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oYil7Zm9yKHZhciBEPW5ldyBBcnJheShiKSxIPU0ucHJvdG90eXBlLl9jb3VudEJpdHMoYiktMSxOPTA7'@; put 'TjxiO04rKylEW05dPXRoaXMucmV2QmluKE4sSCxiKTtyZXR1cm4gRH0sVS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKGIsRCxIKXtpZigwPT09Ynx8Yj09PUgtMSlyZXR1cm4gYjtmb3IodmFyIE49MCxnPTA7ZzxEO2crKylOfD0oMSZiKTw8RC1nLTEsYj4+PTE7cmV0dXJuIE59LFUucHJv'@; put 'dG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oYixELEgsTixnLEMpe2Zvcih2YXIgUz0wO1M8QztTKyspTltTXT1EW2JbU11dLGdbU109SFtiW1NdXX0sVS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGIsRCxILE4sZyxDKXt0aGlzLnBlcm11dGUoQyxiLEQsSCxOLGcpO2Zvcih2YXIgUz0x'@; put 'O1M8ZztTPDw9MSlmb3IodmFyIHY9Uzw8MSxwPU1hdGguY29zKDIqTWF0aC5QSS92KSx3PU1hdGguc2luKDIqTWF0aC5QSS92KSxKPTA7SjxnO0orPXYpZm9yKHZhciBuZT1wLGRlPXcsZmU9MDtmZTxTO2ZlKyspe3ZhciB4ZT1IW0orZmVdLExlPU5bSitmZV0sRmU9SFtKK2ZlK1NdLE9lPU5b'@; put 'SitmZStTXSxqZT1uZSpGZS1kZSpPZTtPZT1uZSpPZStkZSpGZSxIW0orZmVdPXhlKyhGZT1qZSksTltKK2ZlXT1MZStPZSxIW0orZmUrU109eGUtRmUsTltKK2ZlK1NdPUxlLU9lLGZlIT09diYmKGplPXAqbmUtdypkZSxkZT1wKmRlK3cqbmUsbmU9amUpfX0sVS5wcm90b3R5cGUuZ3Vlc3NM'@; put 'ZW4xM2I9ZnVuY3Rpb24oYixEKXt2YXIgSD0xfE1hdGgubWF4KEQsYiksTj0xJkgsZz0wO2ZvcihIPUgvMnwwO0g7SD4+Pj0xKWcrKztyZXR1cm4gMTw8ZysxK059LFUucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihiLEQsSCl7aWYoIShIPD0xKSlmb3IodmFyIE49MDtOPEgvMjtOKysp'@; put 'e3ZhciBnPWJbTl07YltOXT1iW0gtTi0xXSxiW0gtTi0xXT1nLGc9RFtOXSxEW05dPS1EW0gtTi0xXSxEW0gtTi0xXT0tZ319LFUucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihiLEQpe2Zvcih2YXIgSD0wLE49MDtOPEQvMjtOKyspe3ZhciBnPTgxOTIqTWF0aC5yb3VuZChiWzIq'@; put 'TisxXS9EKStNYXRoLnJvdW5kKGJbMipOXS9EKStIO2JbTl09NjcxMDg4NjMmZyxIPWc8NjcxMDg4NjQ/MDpnLzY3MTA4ODY0fDB9cmV0dXJuIGJ9LFUucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oYixELEgsTil7Zm9yKHZhciBnPTAsQz0wO0M8RDtDKyspSFsyKkNdPTgxOTEmKGcr'@; put 'PTB8YltDXSksSFsyKkMrMV09ODE5MSYoZz4+Pj0xMyksZz4+Pj0xMztmb3IoQz0yKkQ7QzxOOysrQylIW0NdPTA7bSgwPT09ZyksbSgwPT0oLTgxOTImZykpfSxVLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKGIpe2Zvcih2YXIgRD1uZXcgQXJyYXkoYiksSD0wO0g8YjtIKyspRFtIXT0wO3Jl'@; put 'dHVybiBEfSxVLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGIsRCxIKXt2YXIgTj0yKnRoaXMuZ3Vlc3NMZW4xM2IoYi5sZW5ndGgsRC5sZW5ndGgpLGc9dGhpcy5tYWtlUkJUKE4pLEM9dGhpcy5zdHViKE4pLFM9bmV3IEFycmF5KE4pLHY9bmV3IEFycmF5KE4pLHA9bmV3IEFycmF5KE4pLHc9'@; put 'bmV3IEFycmF5KE4pLEo9bmV3IEFycmF5KE4pLG5lPW5ldyBBcnJheShOKSxkZT1ILndvcmRzO2RlLmxlbmd0aD1OLHRoaXMuY29udmVydDEzYihiLndvcmRzLGIubGVuZ3RoLFMsTiksdGhpcy5jb252ZXJ0MTNiKEQud29yZHMsRC5sZW5ndGgsdyxOKSx0aGlzLnRyYW5zZm9ybShTLEMsdixw'@; put 'LE4sZyksdGhpcy50cmFuc2Zvcm0odyxDLEosbmUsTixnKTtmb3IodmFyIGZlPTA7ZmU8TjtmZSsrKXt2YXIgeGU9dltmZV0qSltmZV0tcFtmZV0qbmVbZmVdO3BbZmVdPXZbZmVdKm5lW2ZlXStwW2ZlXSpKW2ZlXSx2W2ZlXT14ZX1yZXR1cm4gdGhpcy5jb25qdWdhdGUodixwLE4pLHRoaXMu'@; put 'dHJhbnNmb3JtKHYscCxkZSxDLE4sZyksdGhpcy5jb25qdWdhdGUoZGUsQyxOKSx0aGlzLm5vcm1hbGl6ZTEzYihkZSxOKSxILm5lZ2F0aXZlPWIubmVnYXRpdmVeRC5uZWdhdGl2ZSxILmxlbmd0aD1iLmxlbmd0aCtELmxlbmd0aCxILnN0cmlwKCl9LE0ucHJvdG90eXBlLm11bD1mdW5jdGlv'@; put 'bihiKXt2YXIgRD1uZXcgTShudWxsKTtyZXR1cm4gRC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrYi5sZW5ndGgpLHRoaXMubXVsVG8oYixEKX0sTS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihiKXt2YXIgRD1uZXcgTShudWxsKTtyZXR1cm4gRC53b3Jkcz1uZXcgQXJyYXkodGhpcy5s'@; put 'ZW5ndGgrYi5sZW5ndGgpLFgodGhpcyxiLEQpfSxNLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oYix0aGlzKX0sTS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGIpLG0oYjw2NzEwODg2NCk7Zm9yKHZh'@; put 'ciBEPTAsSD0wO0g8dGhpcy5sZW5ndGg7SCsrKXt2YXIgTj0oMHx0aGlzLndvcmRzW0hdKSpiLGc9KDY3MTA4ODYzJk4pKyg2NzEwODg2MyZEKTtEPj49MjYsRCs9Ti82NzEwODg2NHwwLEQrPWc+Pj4yNix0aGlzLndvcmRzW0hdPTY3MTA4ODYzJmd9cmV0dXJuIDAhPT1EJiYodGhpcy53b3Jk'@; put 'c1tIXT1ELHRoaXMubGVuZ3RoKyspLHRoaXN9LE0ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihiKX0sTS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxNLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxNLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oYil7dmFyIEQ9ZnVuY3Rpb24gaihHKXtmb3IodmFyIGI9bmV3IEFycmF5KEcuYml0TGVuZ3RoKCkpLEQ9MDtEPGIubGVuZ3RoO0QrKyl7dmFyIE49RCUyNjtiW0RdPShHLndvcmRzW0QvMjZ8'@; put 'MF0mMTw8Tik+Pj5OfXJldHVybiBifShiKTtpZigwPT09RC5sZW5ndGgpcmV0dXJuIG5ldyBNKDEpO2Zvcih2YXIgSD10aGlzLE49MDtOPEQubGVuZ3RoJiYwPT09RFtOXTtOKyssSD1ILnNxcigpKTtpZigrK048RC5sZW5ndGgpZm9yKHZhciBnPUguc3FyKCk7TjxELmxlbmd0aDtOKyssZz1n'@; put 'LnNxcigpKTAhPT1EW05dJiYoSD1ILm11bChnKSk7cmV0dXJuIEh9LE0ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihiKXttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCk7dmFyIGcsRD1iJTI2LEg9KGItRCkvMjYsTj02NzEwODg2Mz4+PjI2LUQ8PDI2LUQ7aWYoMCE9PUQpe3ZhciBDPTA7'@; put 'Zm9yKGc9MDtnPHRoaXMubGVuZ3RoO2crKyl7dmFyIFM9dGhpcy53b3Jkc1tnXSZOO3RoaXMud29yZHNbZ109KDB8dGhpcy53b3Jkc1tnXSktUzw8RHxDLEM9Uz4+PjI2LUR9QyYmKHRoaXMud29yZHNbZ109Qyx0aGlzLmxlbmd0aCsrKX1pZigwIT09SCl7Zm9yKGc9dGhpcy5sZW5ndGgtMTtn'@; put 'Pj0wO2ctLSl0aGlzLndvcmRzW2crSF09dGhpcy53b3Jkc1tnXTtmb3IoZz0wO2c8SDtnKyspdGhpcy53b3Jkc1tnXT0wO3RoaXMubGVuZ3RoKz1IfXJldHVybiB0aGlzLnN0cmlwKCl9LE0ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKGIpe3JldHVybiBtKDA9PT10aGlzLm5lZ2F0aXZlKSx0'@; put 'aGlzLml1c2hsbihiKX0sTS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKGIsRCxIKXt2YXIgTjttKCJudW1iZXIiPT10eXBlb2YgYiYmYj49MCksTj1EPyhELUQlMjYpLzI2OjA7dmFyIGc9YiUyNixDPU1hdGgubWluKChiLWcpLzI2LHRoaXMubGVuZ3RoKSxTPTY3MTA4ODYzXjY3MTA4ODYz'@; put 'Pj4+Zzw8Zyx2PUg7aWYoTi09QyxOPU1hdGgubWF4KDAsTiksdil7Zm9yKHZhciBwPTA7cDxDO3ArKyl2LndvcmRzW3BdPXRoaXMud29yZHNbcF07di5sZW5ndGg9Q31pZigwIT09QylpZih0aGlzLmxlbmd0aD5DKWZvcih0aGlzLmxlbmd0aC09QyxwPTA7cDx0aGlzLmxlbmd0aDtwKyspdGhp'@; put 'cy53b3Jkc1twXT10aGlzLndvcmRzW3ArQ107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgdz0wO2ZvcihwPXRoaXMubGVuZ3RoLTE7cD49MCYmKDAhPT13fHxwPj1OKTtwLS0pe3ZhciBKPTB8dGhpcy53b3Jkc1twXTt0aGlzLndvcmRzW3BdPXc8PDI2LWd8Sj4+Pmcs'@; put 'dz1KJlN9cmV0dXJuIHYmJjAhPT13JiYodi53b3Jkc1t2Lmxlbmd0aCsrXT13KSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihiLEQsSCl7cmV0dXJuIG0oMD09PXRoaXMubmVn'@; put 'YXRpdmUpLHRoaXMuaXVzaHJuKGIsRCxIKX0sTS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGIpfSxNLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihiKX0sTS5wcm90b3R5cGUuc2hybj1m'@; put 'dW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGIpfSxNLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihiKX0sTS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApO3ZhciBE'@; put 'PWIlMjYsSD0oYi1EKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1IfHwhKHRoaXMud29yZHNbSF0mMTw8RCkpfSxNLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oYil7bSgibnVtYmVyIj09dHlwZW9mIGImJmI+PTApO3ZhciBEPWIlMjYsSD0oYi1EKS8yNjtyZXR1cm4gbSgwPT09dGhpcy5u'@; put 'ZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PUg/dGhpczooMCE9PUQmJkgrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihILHRoaXMubGVuZ3RoKSwwIT09RCYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3'@; put 'MTA4ODYzPj4+RDw8RCksdGhpcy5zdHJpcCgpKX0sTS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oYil9LE0ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGIpe3JldHVybiBtKCJudW1iZXIiPT10eXBlb2YgYiksbShiPDY3MTA4ODY0KSxi'@; put 'PDA/dGhpcy5pc3VibigtYik6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxiPyh0aGlzLndvcmRzWzBdPWItKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihiKSx0aGlz'@; put 'Lm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oYil9LE0ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihiKXt0aGlzLndvcmRzWzBdKz1iO2Zvcih2YXIgRD0wO0Q8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbRF0+PTY3MTA4ODY0O0QrKyl0aGlzLndvcmRzW0RdLT02NzEwODg2NCxEPT09'@; put 'dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW0QrMV09MTp0aGlzLndvcmRzW0QrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsRCsxKSx0aGlzfSxNLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihiKXtpZihtKCJudW1iZXIiPT10eXBlb2YgYiksbShiPDY3MTA4'@; put 'ODY0KSxiPDApcmV0dXJuIHRoaXMuaWFkZG4oLWIpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihiKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1iLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRo'@; put 'aXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciBEPTA7RDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tEXTwwO0QrKyl0aGlzLndvcmRzW0RdKz02NzEwODg2NCx0aGlzLndvcmRzW0QrMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTS5wcm90'@; put 'b3R5cGUuYWRkbj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGIpfSxNLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oYil9LE0ucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRo'@; put 'aXN9LE0ucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxNLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oYixELEgpe3ZhciBnO3RoaXMuX2V4cGFuZChiLmxlbmd0aCtIKTt2YXIgQyxTPTA7Zm9yKGc9MDtnPGIubGVuZ3RoO2crKyl7'@; put 'Qz0oMHx0aGlzLndvcmRzW2crSF0pK1M7dmFyIHY9KDB8Yi53b3Jkc1tnXSkqRDtTPSgoQy09NjcxMDg4NjMmdik+PjI2KS0odi82NzEwODg2NHwwKSx0aGlzLndvcmRzW2crSF09NjcxMDg4NjMmQ31mb3IoO2c8dGhpcy5sZW5ndGgtSDtnKyspUz0oQz0oMHx0aGlzLndvcmRzW2crSF0pK1Mp'@; put 'Pj4yNix0aGlzLndvcmRzW2crSF09NjcxMDg4NjMmQztpZigwPT09UylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihtKC0xPT09UyksUz0wLGc9MDtnPHRoaXMubGVuZ3RoO2crKylTPShDPS0oMHx0aGlzLndvcmRzW2ddKStTKT4+MjYsdGhpcy53b3Jkc1tnXT02NzEwODg2MyZDO3JldHVybiB0'@; put 'aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihiLEQpe3ZhciBILE49dGhpcy5jbG9uZSgpLGc9YixDPTB8Zy53b3Jkc1tnLmxlbmd0aC0xXTswIT0oSD0yNi10aGlzLl9jb3VudEJpdHMoQykpJiYoZz1nLnVzaGxuKEgpLE4uaXVzaGxu'@; put 'KEgpLEM9MHxnLndvcmRzW2cubGVuZ3RoLTFdKTt2YXIgcCx2PU4ubGVuZ3RoLWcubGVuZ3RoO2lmKCJtb2QiIT09RCl7KHA9bmV3IE0obnVsbCkpLmxlbmd0aD12KzEscC53b3Jkcz1uZXcgQXJyYXkocC5sZW5ndGgpO2Zvcih2YXIgdz0wO3c8cC5sZW5ndGg7dysrKXAud29yZHNbd109MH12'@; put 'YXIgSj1OLmNsb25lKCkuX2lzaGxuc3VibXVsKGcsMSx2KTswPT09Si5uZWdhdGl2ZSYmKE49SixwJiYocC53b3Jkc1t2XT0xKSk7Zm9yKHZhciBuZT12LTE7bmU+PTA7bmUtLSl7dmFyIGRlPTY3MTA4ODY0KigwfE4ud29yZHNbZy5sZW5ndGgrbmVdKSsoMHxOLndvcmRzW2cubGVuZ3RoK25l'@; put 'LTFdKTtmb3IoZGU9TWF0aC5taW4oZGUvQ3wwLDY3MTA4ODYzKSxOLl9pc2hsbnN1Ym11bChnLGRlLG5lKTswIT09Ti5uZWdhdGl2ZTspZGUtLSxOLm5lZ2F0aXZlPTAsTi5faXNobG5zdWJtdWwoZywxLG5lKSxOLmlzWmVybygpfHwoTi5uZWdhdGl2ZV49MSk7cCYmKHAud29yZHNbbmVdPWRl'@; put 'KX1yZXR1cm4gcCYmcC5zdHJpcCgpLE4uc3RyaXAoKSwiZGl2IiE9PUQmJjAhPT1IJiZOLml1c2hybihIKSx7ZGl2OnB8fG51bGwsbW9kOk59fSxNLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oYixELEgpe3JldHVybiBtKCFiLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE0o'@; put 'MCksbW9kOm5ldyBNKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWIubmVnYXRpdmU/KEM9dGhpcy5uZWcoKS5kaXZtb2QoYixEKSwibW9kIiE9PUQmJihOPUMuZGl2Lm5lZygpKSwiZGl2IiE9PUQmJihnPUMubW9kLm5lZygpLEgmJjAhPT1nLm5lZ2F0aXZlJiZnLmlhZGQoYikpLHtkaXY6'@; put 'Tixtb2Q6Z30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Yi5uZWdhdGl2ZT8oQz10aGlzLmRpdm1vZChiLm5lZygpLEQpLCJtb2QiIT09RCYmKE49Qy5kaXYubmVnKCkpLHtkaXY6Tixtb2Q6Qy5tb2R9KTp0aGlzLm5lZ2F0aXZlJmIubmVnYXRpdmU/KEM9dGhpcy5uZWcoKS5kaXZtb2QoYi5u'@; put 'ZWcoKSxEKSwiZGl2IiE9PUQmJihnPUMubW9kLm5lZygpLEgmJjAhPT1nLm5lZ2F0aXZlJiZnLmlzdWIoYikpLHtkaXY6Qy5kaXYsbW9kOmd9KTpiLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoYik8MD97ZGl2Om5ldyBNKDApLG1vZDp0aGlzfToxPT09Yi5sZW5ndGg/ImRpdiI9PT1E'@; put 'P3tkaXY6dGhpcy5kaXZuKGIud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PUQ/e2RpdjpudWxsLG1vZDpuZXcgTSh0aGlzLm1vZG4oYi53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihiLndvcmRzWzBdKSxtb2Q6bmV3IE0odGhpcy5tb2RuKGIud29yZHNbMF0pKX06dGhpcy5fd29yZERp'@; put 'dihiLEQpO3ZhciBOLGcsQ30sTS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmRpdm1vZChiLCJkaXYiLCExKS5kaXZ9LE0ucHJvdG90eXBlLm1vZD1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5kaXZtb2QoYiwibW9kIiwhMSkubW9kfSxNLnByb3RvdHlwZS51bW9kPWZ1'@; put 'bmN0aW9uKGIpe3JldHVybiB0aGlzLmRpdm1vZChiLCJtb2QiLCEwKS5tb2R9LE0ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGIpe3ZhciBEPXRoaXMuZGl2bW9kKGIpO2lmKEQubW9kLmlzWmVybygpKXJldHVybiBELmRpdjt2YXIgSD0wIT09RC5kaXYubmVnYXRpdmU/RC5tb2QuaXN1'@; put 'YihiKTpELm1vZCxOPWIudXNocm4oMSksZz1iLmFuZGxuKDEpLEM9SC5jbXAoTik7cmV0dXJuIEM8MHx8MT09PWcmJjA9PT1DP0QuZGl2OjAhPT1ELmRpdi5uZWdhdGl2ZT9ELmRpdi5pc3VibigxKTpELmRpdi5pYWRkbigxKX0sTS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihiKXttKGI8PTY3'@; put 'MTA4ODYzKTtmb3IodmFyIEQ9KDE8PDI2KSViLEg9MCxOPXRoaXMubGVuZ3RoLTE7Tj49MDtOLS0pSD0oRCpIKygwfHRoaXMud29yZHNbTl0pKSViO3JldHVybiBIfSxNLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihiKXttKGI8PTY3MTA4ODYzKTtmb3IodmFyIEQ9MCxIPXRoaXMubGVuZ3Ro'@; put 'LTE7SD49MDtILS0pe3ZhciBOPSgwfHRoaXMud29yZHNbSF0pKzY3MTA4ODY0KkQ7dGhpcy53b3Jkc1tIXT1OL2J8MCxEPU4lYn1yZXR1cm4gdGhpcy5zdHJpcCgpfSxNLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oYil9LE0ucHJvdG90eXBl'@; put 'LmVnY2Q9ZnVuY3Rpb24oYil7bSgwPT09Yi5uZWdhdGl2ZSksbSghYi5pc1plcm8oKSk7dmFyIEQ9dGhpcyxIPWIuY2xvbmUoKTtEPTAhPT1ELm5lZ2F0aXZlP0QudW1vZChiKTpELmNsb25lKCk7Zm9yKHZhciBOPW5ldyBNKDEpLGc9bmV3IE0oMCksQz1uZXcgTSgwKSxTPW5ldyBNKDEpLHY9'@; put 'MDtELmlzRXZlbigpJiZILmlzRXZlbigpOylELml1c2hybigxKSxILml1c2hybigxKSwrK3Y7Zm9yKHZhciBwPUguY2xvbmUoKSx3PUQuY2xvbmUoKTshRC5pc1plcm8oKTspe2Zvcih2YXIgSj0wLG5lPTE7IShELndvcmRzWzBdJm5lKSYmSjwyNjsrK0osbmU8PD0xKTtpZihKPjApZm9yKEQu'@; put 'aXVzaHJuKEopO0otLSA+MDspKE4uaXNPZGQoKXx8Zy5pc09kZCgpKSYmKE4uaWFkZChwKSxnLmlzdWIodykpLE4uaXVzaHJuKDEpLGcuaXVzaHJuKDEpO2Zvcih2YXIgZGU9MCxmZT0xOyEoSC53b3Jkc1swXSZmZSkmJmRlPDI2OysrZGUsZmU8PD0xKTtpZihkZT4wKWZvcihILml1c2hybihk'@; put 'ZSk7ZGUtLSA+MDspKEMuaXNPZGQoKXx8Uy5pc09kZCgpKSYmKEMuaWFkZChwKSxTLmlzdWIodykpLEMuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO0QuY21wKEgpPj0wPyhELmlzdWIoSCksTi5pc3ViKEMpLGcuaXN1YihTKSk6KEguaXN1YihEKSxDLmlzdWIoTiksUy5pc3ViKGcpKX1yZXR1cm57'@; put 'YTpDLGI6UyxnY2Q6SC5pdXNobG4odil9fSxNLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oYil7bSgwPT09Yi5uZWdhdGl2ZSksbSghYi5pc1plcm8oKSk7dmFyIEosRD10aGlzLEg9Yi5jbG9uZSgpO0Q9MCE9PUQubmVnYXRpdmU/RC51bW9kKGIpOkQuY2xvbmUoKTtmb3IodmFyIE49bmV3'@; put 'IE0oMSksZz1uZXcgTSgwKSxDPUguY2xvbmUoKTtELmNtcG4oMSk+MCYmSC5jbXBuKDEpPjA7KXtmb3IodmFyIFM9MCx2PTE7IShELndvcmRzWzBdJnYpJiZTPDI2OysrUyx2PDw9MSk7aWYoUz4wKWZvcihELml1c2hybihTKTtTLS0gPjA7KU4uaXNPZGQoKSYmTi5pYWRkKEMpLE4uaXVzaHJu'@; put 'KDEpO2Zvcih2YXIgcD0wLHc9MTshKEgud29yZHNbMF0mdykmJnA8MjY7KytwLHc8PD0xKTtpZihwPjApZm9yKEguaXVzaHJuKHApO3AtLSA+MDspZy5pc09kZCgpJiZnLmlhZGQoQyksZy5pdXNocm4oMSk7RC5jbXAoSCk+PTA/KEQuaXN1YihIKSxOLmlzdWIoZykpOihILmlzdWIoRCksZy5p'@; put 'c3ViKE4pKX1yZXR1cm4oSj0wPT09RC5jbXBuKDEpP046ZykuY21wbigwKTwwJiZKLmlhZGQoYiksSn0sTS5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGIpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGIuYWJzKCk7aWYoYi5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgRD10aGlzLmNs'@; put 'b25lKCksSD1iLmNsb25lKCk7RC5uZWdhdGl2ZT0wLEgubmVnYXRpdmU9MDtmb3IodmFyIE49MDtELmlzRXZlbigpJiZILmlzRXZlbigpO04rKylELml1c2hybigxKSxILml1c2hybigxKTtmb3IoOzspe2Zvcig7RC5pc0V2ZW4oKTspRC5pdXNocm4oMSk7Zm9yKDtILmlzRXZlbigpOylILml1'@; put 'c2hybigxKTt2YXIgZz1ELmNtcChIKTtpZihnPDApe3ZhciBDPUQ7RD1ILEg9Q31lbHNlIGlmKDA9PT1nfHwwPT09SC5jbXBuKDEpKWJyZWFrO0QuaXN1YihIKX1yZXR1cm4gSC5pdXNobG4oTil9LE0ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZWdjZChiKS5hLnVt'@; put 'b2QoYil9LE0ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTS5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LE0ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlz'@; put 'LndvcmRzWzBdJmJ9LE0ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGIpe20oIm51bWJlciI9PXR5cGVvZiBiKTt2YXIgRD1iJTI2LEg9KGItRCkvMjYsTj0xPDxEO2lmKHRoaXMubGVuZ3RoPD1IKXJldHVybiB0aGlzLl9leHBhbmQoSCsxKSx0aGlzLndvcmRzW0hdfD1OLHRoaXM7Zm9yKHZh'@; put 'ciBnPU4sQz1IOzAhPT1nJiZDPHRoaXMubGVuZ3RoO0MrKyl7dmFyIFM9MHx0aGlzLndvcmRzW0NdO2c9KFMrPWcpPj4+MjYsdGhpcy53b3Jkc1tDXT1TJj02NzEwODg2M31yZXR1cm4gMCE9PWcmJih0aGlzLndvcmRzW0NdPWcsdGhpcy5sZW5ndGgrKyksdGhpc30sTS5wcm90b3R5cGUuaXNa'@; put 'ZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE0ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oYil7dmFyIEgsRD1iPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFEKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZEKXJldHVybiAx'@; put 'O2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKUg9MTtlbHNle0QmJihiPS1iKSxtKGI8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBOPTB8dGhpcy53b3Jkc1swXTtIPU49PT1iPzA6TjxiPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LUg6SH0sTS5wcm90'@; put 'b3R5cGUuY21wPWZ1bmN0aW9uKGIpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Yi5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWIubmVnYXRpdmUpcmV0dXJuIDE7dmFyIEQ9dGhpcy51Y21wKGIpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1EOkR9'@; put 'LE0ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oYil7aWYodGhpcy5sZW5ndGg+Yi5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Yi5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBEPTAsSD10aGlzLmxlbmd0aC0xO0g+PTA7SC0tKXt2YXIgTj0wfHRoaXMud29yZHNbSF0sZz0wfGIud29y'@; put 'ZHNbSF07aWYoTiE9PWcpe048Zz9EPS0xOk4+ZyYmKEQ9MSk7YnJlYWt9fXJldHVybiBEfSxNLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oYil7cmV0dXJuIDE9PT10aGlzLmNtcG4oYil9LE0ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGIpe3JldHVybiAxPT09dGhpcy5jbXAoYil9LE0ucHJvdG90'@; put 'eXBlLmd0ZW49ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuY21wbihiKT49MH0sTS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcChiKT49MH0sTS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGIpe3JldHVybi0xPT09dGhpcy5jbXBuKGIpfSxNLnByb3RvdHlwZS5sdD1m'@; put 'dW5jdGlvbihiKXtyZXR1cm4tMT09PXRoaXMuY21wKGIpfSxNLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmNtcG4oYik8PTB9LE0ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5jbXAoYik8PTB9LE0ucHJvdG90eXBlLmVxbj1mdW5jdGlvbihi'@; put 'KXtyZXR1cm4gMD09PXRoaXMuY21wbihiKX0sTS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oYil7cmV0dXJuIDA9PT10aGlzLmNtcChiKX0sTS5yZWQ9ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyB1ZShiKX0sTS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0oIXRoaXMucmVkLCJB'@; put 'bHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksbSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxiLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoYil9LE0ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0'@; put 'aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxNLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMucmVkPWIsdGhpc30sTS5wcm90b3R5cGUuZm9y'@; put 'Y2VSZWQ9ZnVuY3Rpb24oYil7cmV0dXJuIG0oIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoYil9LE0ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkg'@; put 'd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxiKX0sTS5wcm90b3R5cGUu'@; put 'cmVkU3ViPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsYil9LE0ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25s'@; put 'eSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oYil7cmV0dXJuIG0odGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxiKX0sTS5wcm90b3R5cGUu'@; put 'cmVkTXVsPWZ1bmN0aW9uKGIpe3JldHVybiBtKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxiKSx0aGlzLnJlZC5tdWwodGhpcyxiKX0sTS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihiKXtyZXR1cm4gbSh0'@; put 'aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsYiksdGhpcy5yZWQuaW11bCh0aGlzLGIpfSxNLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0'@; put 'aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBtKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkx'@; put 'KHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE0ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxNLnBy'@; put 'b3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IG0odGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE0ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihiKXtyZXR1cm4gbSh0aGlzLnJlZCYmIWIucmVkLCJyZWRQb3cobm9ybWFs'@; put 'TnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLGIpfTt2YXIgcT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIGVlKEcsYil7dGhpcy5uYW1lPUcsdGhpcy5wPW5ldyBNKGIsMTYpLHRoaXMubj10aGlzLnAu'@; put 'Yml0TGVuZ3RoKCksdGhpcy5rPW5ldyBNKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiB0ZSgpe2VlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24gb2UoKXtlZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIHNlKCl7ZWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBoZSgpe2VlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gdWUo'@; put 'Ryl7aWYoInN0cmluZyI9PXR5cGVvZiBHKXt2YXIgYj1NLl9wcmltZShHKTt0aGlzLm09Yi5wLHRoaXMucHJpbWU9Yn1lbHNlIG0oRy5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1HLHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBjZShHKXt1ZS5jYWxs'@; put 'KHRoaXMsRyksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgTSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9'@; put 'dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1lZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlv'@; put 'bigpe3ZhciBiPW5ldyBNKG51bGwpO3JldHVybiBiLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksYn0sZWUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oYil7dmFyIEgsRD1iO2Rve3RoaXMuc3BsaXQoRCx0aGlzLnRtcCksSD0oRD0oRD10aGlzLmltdWxLKEQpKS5p'@; put 'YWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoSD50aGlzLm4pO3ZhciBOPUg8dGhpcy5uPy0xOkQudWNtcCh0aGlzLnApO3JldHVybiAwPT09Tj8oRC53b3Jkc1swXT0wLEQubGVuZ3RoPTEpOk4+MD9ELmlzdWIodGhpcy5wKTp2b2lkIDAhPT1ELnN0cmlwP0Quc3RyaXAoKTpELl9z'@; put 'dHJpcCgpLER9LGVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihiLEQpe2IuaXVzaHJuKHRoaXMubiwwLEQpfSxlZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oYil7cmV0dXJuIGIuaW11bCh0aGlzLmspfSxsZSh0ZSxlZSksdGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGIsRCl7Zm9y'@; put 'KHZhciBIPTQxOTQzMDMsTj1NYXRoLm1pbihiLmxlbmd0aCw5KSxnPTA7ZzxOO2crKylELndvcmRzW2ddPWIud29yZHNbZ107aWYoRC5sZW5ndGg9TixiLmxlbmd0aDw9OSlyZXR1cm4gYi53b3Jkc1swXT0wLHZvaWQoYi5sZW5ndGg9MSk7dmFyIEM9Yi53b3Jkc1s5XTtmb3IoRC53b3Jkc1tE'@; put 'Lmxlbmd0aCsrXT1DJkgsZz0xMDtnPGIubGVuZ3RoO2crKyl7dmFyIFM9MHxiLndvcmRzW2ddO2Iud29yZHNbZy0xMF09KFMmSCk8PDR8Qz4+PjIyLEM9U31iLndvcmRzW2ctMTBdPUM+Pj49MjIsYi5sZW5ndGgtPTA9PT1DJiZiLmxlbmd0aD4xMD8xMDo5fSx0ZS5wcm90b3R5cGUuaW11bEs9'@; put 'ZnVuY3Rpb24oYil7Yi53b3Jkc1tiLmxlbmd0aF09MCxiLndvcmRzW2IubGVuZ3RoKzFdPTAsYi5sZW5ndGgrPTI7Zm9yKHZhciBEPTAsSD0wO0g8Yi5sZW5ndGg7SCsrKXt2YXIgTj0wfGIud29yZHNbSF07Yi53b3Jkc1tIXT02NzEwODg2MyYoRCs9OTc3Kk4pLEQ9NjQqTisoRC82NzEwODg2'@; put 'NHwwKX1yZXR1cm4gMD09PWIud29yZHNbYi5sZW5ndGgtMV0mJihiLmxlbmd0aC0tLDA9PT1iLndvcmRzW2IubGVuZ3RoLTFdJiZiLmxlbmd0aC0tKSxifSxsZShvZSxlZSksbGUoc2UsZWUpLGxlKGhlLGVlKSxoZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oYil7Zm9yKHZhciBEPTAsSD0w'@; put 'O0g8Yi5sZW5ndGg7SCsrKXt2YXIgTj0xOSooMHxiLndvcmRzW0hdKStELGc9NjcxMDg4NjMmTjtOPj4+PTI2LGIud29yZHNbSF09ZyxEPU59cmV0dXJuIDAhPT1EJiYoYi53b3Jkc1tiLmxlbmd0aCsrXT1EKSxifSxNLl9wcmltZT1mdW5jdGlvbihiKXtpZihxW2JdKXJldHVybiBxW2JdO3Zh'@; put 'ciBEO2lmKCJrMjU2Ij09PWIpRD1uZXcgdGU7ZWxzZSBpZigicDIyNCI9PT1iKUQ9bmV3IG9lO2Vsc2UgaWYoInAxOTIiPT09YilEPW5ldyBzZTtlbHNle2lmKCJwMjU1MTkiIT09Yil0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitiKTtEPW5ldyBoZX1yZXR1cm4gcVtiXT1ELER9'@; put 'LHVlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihiKXttKDA9PT1iLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLG0oYi5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sdWUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKGIsRCl7'@; put 'bSgwPT0oYi5uZWdhdGl2ZXxELm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxtKGIucmVkJiZiLnJlZD09PUQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LHVlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnBy'@; put 'aW1lP3RoaXMucHJpbWUuaXJlZHVjZShiKS5fZm9yY2VSZWQodGhpcyk6Yi51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSx1ZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKGIpe3JldHVybiBiLmlzWmVybygpP2IuY2xvbmUoKTp0aGlzLm0uc3ViKGIpLl9mb3JjZVJlZCh0aGlzKX0sdWUu'@; put 'cHJvdG90eXBlLmFkZD1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIgSD1iLmFkZChEKTtyZXR1cm4gSC5jbXAodGhpcy5tKT49MCYmSC5pc3ViKHRoaXMubSksSC5fZm9yY2VSZWQodGhpcyl9LHVlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGIsRCl7dGhpcy5fdmVyaWZ5'@; put 'MihiLEQpO3ZhciBIPWIuaWFkZChEKTtyZXR1cm4gSC5jbXAodGhpcy5tKT49MCYmSC5pc3ViKHRoaXMubSksSH0sdWUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIgSD1iLnN1YihEKTtyZXR1cm4gSC5jbXBuKDApPDAmJkguaWFkZCh0aGlzLm0p'@; put 'LEguX2ZvcmNlUmVkKHRoaXMpfSx1ZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihiLEQpe3RoaXMuX3ZlcmlmeTIoYixEKTt2YXIgSD1iLmlzdWIoRCk7cmV0dXJuIEguY21wbigwKTwwJiZILmlhZGQodGhpcy5tKSxIfSx1ZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGIsRCl7cmV0dXJuIHRo'@; put 'aXMuX3ZlcmlmeTEoYiksdGhpcy5pbW9kKGIudXNobG4oRCkpfSx1ZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihiLEQpe3JldHVybiB0aGlzLl92ZXJpZnkyKGIsRCksdGhpcy5pbW9kKGIuaW11bChEKSl9LHVlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oYixEKXtyZXR1cm4gdGhpcy5fdmVy'@; put 'aWZ5MihiLEQpLHRoaXMuaW1vZChiLm11bChEKSl9LHVlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmltdWwoYixiLmNsb25lKCkpfSx1ZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLm11bChiLGIpfSx1ZS5wcm90b3R5cGUuc3FydD1mdW5j'@; put 'dGlvbihiKXtpZihiLmlzWmVybygpKXJldHVybiBiLmNsb25lKCk7dmFyIEQ9dGhpcy5tLmFuZGxuKDMpO2lmKG0oRCUyPT0xKSwzPT09RCl7dmFyIEg9dGhpcy5tLmFkZChuZXcgTSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhiLEgpfWZvcih2YXIgTj10aGlzLm0uc3VibigxKSxn'@; put 'PTA7IU4uaXNaZXJvKCkmJjA9PT1OLmFuZGxuKDEpOylnKyssTi5pdXNocm4oMSk7bSghTi5pc1plcm8oKSk7dmFyIEM9bmV3IE0oMSkudG9SZWQodGhpcyksUz1DLnJlZE5lZygpLHY9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLHA9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihwPW5ldyBNKDIq'@; put 'cCpwKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cocCx2KS5jbXAoUyk7KXAucmVkSUFkZChTKTtmb3IodmFyIHc9dGhpcy5wb3cocCxOKSxKPXRoaXMucG93KGIsTi5hZGRuKDEpLml1c2hybigxKSksbmU9dGhpcy5wb3coYixOKSxkZT1nOzAhPT1uZS5jbXAoQyk7KXtmb3IodmFyIGZlPW5l'@; put 'LHhlPTA7MCE9PWZlLmNtcChDKTt4ZSsrKWZlPWZlLnJlZFNxcigpO20oeGU8ZGUpO3ZhciBMZT10aGlzLnBvdyh3LG5ldyBNKDEpLml1c2hsbihkZS14ZS0xKSk7Sj1KLnJlZE11bChMZSksdz1MZS5yZWRTcXIoKSxuZT1uZS5yZWRNdWwodyksZGU9eGV9cmV0dXJuIEp9LHVlLnByb3RvdHlw'@; put 'ZS5pbnZtPWZ1bmN0aW9uKGIpe3ZhciBEPWIuX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT1ELm5lZ2F0aXZlPyhELm5lZ2F0aXZlPTAsdGhpcy5pbW9kKEQpLnJlZE5lZygpKTp0aGlzLmltb2QoRCl9LHVlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oYixEKXtpZihELmlzWmVybygpKXJldHVy'@; put 'biBuZXcgTSgxKS50b1JlZCh0aGlzKTtpZigwPT09RC5jbXBuKDEpKXJldHVybiBiLmNsb25lKCk7dmFyIE49bmV3IEFycmF5KDE2KTtOWzBdPW5ldyBNKDEpLnRvUmVkKHRoaXMpLE5bMV09Yjtmb3IodmFyIGc9MjtnPE4ubGVuZ3RoO2crKylOW2ddPXRoaXMubXVsKE5bZy0xXSxiKTt2YXIg'@; put 'Qz1OWzBdLFM9MCx2PTAscD1ELmJpdExlbmd0aCgpJTI2O2ZvcigwPT09cCYmKHA9MjYpLGc9RC5sZW5ndGgtMTtnPj0wO2ctLSl7Zm9yKHZhciB3PUQud29yZHNbZ10sSj1wLTE7Sj49MDtKLS0pe3ZhciBuZT13Pj5KJjE7QyE9PU5bMF0mJihDPXRoaXMuc3FyKEMpKSwwIT09bmV8fDAhPT1T'@; put 'PyhTPDw9MSxTfD1uZSwoND09Kyt2fHwwPT09ZyYmMD09PUopJiYoQz10aGlzLm11bChDLE5bU10pLHY9MCxTPTApKTp2PTB9cD0yNn1yZXR1cm4gQ30sdWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihiKXt2YXIgRD1iLnVtb2QodGhpcy5tKTtyZXR1cm4gRD09PWI/RC5jbG9uZSgp'@; put 'OkR9LHVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihiKXt2YXIgRD1iLmNsb25lKCk7cmV0dXJuIEQucmVkPW51bGwsRH0sTS5tb250PWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgY2UoYil9LGxlKGNlLHVlKSxjZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGIpe3JldHVy'@; put 'biB0aGlzLmltb2QoYi51c2hsbih0aGlzLnNoaWZ0KSl9LGNlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihiKXt2YXIgRD10aGlzLmltb2QoYi5tdWwodGhpcy5yaW52KSk7cmV0dXJuIEQucmVkPW51bGwsRH0sY2UucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oYixEKXtpZihiLmlz'@; put 'WmVybygpfHxELmlzWmVybygpKXJldHVybiBiLndvcmRzWzBdPTAsYi5sZW5ndGg9MSxiO3ZhciBIPWIuaW11bChEKSxOPUgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGc9SC5pc3ViKE4pLml1c2hybih0aGlzLnNoaWZ0'@; put 'KSxDPWc7cmV0dXJuIGcuY21wKHRoaXMubSk+PTA/Qz1nLmlzdWIodGhpcy5tKTpnLmNtcG4oMCk8MCYmKEM9Zy5pYWRkKHRoaXMubSkpLEMuX2ZvcmNlUmVkKHRoaXMpfSxjZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGIsRCl7aWYoYi5pc1plcm8oKXx8RC5pc1plcm8oKSlyZXR1cm4gbmV3'@; put 'IE0oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBIPWIubXVsKEQpLE49SC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksZz1ILmlzdWIoTikuaXVzaHJuKHRoaXMuc2hpZnQpLEM9ZztyZXR1cm4gZy5jbXAodGhpcy5tKT49MD9D'@; put 'PWcuaXN1Yih0aGlzLm0pOmcuY21wbigwKTwwJiYoQz1nLmlhZGQodGhpcy5tKSksQy5fZm9yY2VSZWQodGhpcyl9LGNlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmltb2QoYi5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KGF0'@; put 'PUYubm1kKGF0KSx0aGlzKX0sODUyNTI6KGF0LEllLEYpPT57dmFyIGFlPUYoODc5ODMpLHg9RigxNjUxNyksbT1GKDIxODE3KSxsZT1GKDQ4MjExKSxNPUYoNzE5NDYpLE89Rig5NjM2MiksUj1GKDcwNzM1KSx6PUYoODQzKS5CdWZmZXI7YXQuZXhwb3J0cz1mdW5jdGlvbihqLFYsQil7dmFy'@; put 'IFk7WT1qLnBhZGRpbmc/ai5wYWRkaW5nOkI/MTo0O3ZhciBxLFg9YWUoaiksVT1YLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKFYubGVuZ3RoPlV8fG5ldyBsZShWKS5jbXAoWC5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtxPUI/UihuZXcgbGUoViks'@; put 'WCk6TShWLFgpO3ZhciBlZT16LmFsbG9jKFUtcS5sZW5ndGgpO2lmKHE9ei5jb25jYXQoW2VlLHFdLFUpLDQ9PT1ZKXJldHVybiBmdW5jdGlvbiBLKEUsail7dmFyIFY9RS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxCPU8oInNoYTEiKS51cGRhdGUoei5hbGxvYygwKSkuZGlnZXN0KCksWT1CLmxl'@; put 'bmd0aDtpZigwIT09alswXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTt2YXIgWD1qLnNsaWNlKDEsWSsxKSxVPWouc2xpY2UoWSsxKSxxPW0oWCx4KFUsWSkpLGVlPW0oVSx4KHEsVi1ZLTEpKTtpZihmdW5jdGlvbiBrKEUsail7RT16LmZyb20oRSksaj16LmZyb20oaik7'@; put 'dmFyIFY9MCxCPUUubGVuZ3RoO0UubGVuZ3RoIT09ai5sZW5ndGgmJihWKyssQj1NYXRoLm1pbihFLmxlbmd0aCxqLmxlbmd0aCkpO2Zvcih2YXIgWT0tMTsrK1k8QjspVis9RVtZXV5qW1ldO3JldHVybiBWfShCLGVlLnNsaWNlKDAsWSkpKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBl'@; put 'cnJvciIpO2Zvcih2YXIgdGU9WTswPT09ZWVbdGVdOyl0ZSsrO2lmKDEhPT1lZVt0ZSsrXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gZWUuc2xpY2UodGUpfShYLHEpO2lmKDE9PT1ZKXJldHVybiBmdW5jdGlvbiBJKEUsaixWKXtmb3IodmFyIEI9ai5zbGlj'@; put 'ZSgwLDIpLFk9MixYPTA7MCE9PWpbWSsrXTspaWYoWT49ai5sZW5ndGgpe1grKzticmVha312YXIgVT1qLnNsaWNlKDIsWS0xKTtpZigoIjAwMDIiIT09Qi50b1N0cmluZygiaGV4IikmJiFWfHwiMDAwMSIhPT1CLnRvU3RyaW5nKCJoZXgiKSYmVikmJlgrKyxVLmxlbmd0aDw4JiZYKyssWCl0'@; put 'aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gai5zbGljZShZKX0oMCxxLEIpO2lmKDM9PT1ZKXJldHVybiBxO3Rocm93IG5ldyBFcnJvcigidW5rbm93biBwYWRkaW5nIil9fSw0NTczNzooYXQsSWUsRik9Pnt2YXIgYWU9Rig4Nzk4MykseD1GKDQ0MDE5KSxtPUYo'@; put 'OTYzNjIpLGxlPUYoMTY1MTcpLE09RigyMTgxNyksTz1GKDQ4MjExKSxSPUYoNzA3MzUpLHo9Rig3MTk0NiksSz1GKDg0MykuQnVmZmVyO2F0LmV4cG9ydHM9ZnVuY3Rpb24oVixCLFkpe3ZhciBYO1g9Vi5wYWRkaW5nP1YucGFkZGluZzpZPzE6NDt2YXIgcSxVPWFlKFYpO2lmKDQ9PT1YKXE9'@; put 'ZnVuY3Rpb24gSShqLFYpe3ZhciBCPWoubW9kdWx1cy5ieXRlTGVuZ3RoKCksWT1WLmxlbmd0aCxYPW0oInNoYTEiKS51cGRhdGUoSy5hbGxvYygwKSkuZGlnZXN0KCksVT1YLmxlbmd0aCxxPTIqVTtpZihZPkItcS0yKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO3ZhciBl'@; put 'ZT1LLmFsbG9jKEItWS1xLTIpLHRlPUItVS0xLG9lPXgoVSksc2U9TShLLmNvbmNhdChbWCxlZSxLLmFsbG9jKDEsMSksVl0sdGUpLGxlKG9lLHRlKSksaGU9TShvZSxsZShzZSxVKSk7cmV0dXJuIG5ldyBPKEsuY29uY2F0KFtLLmFsbG9jKDEpLGhlLHNlXSxCKSl9KFUsQik7ZWxzZSBpZigx'@; put 'PT09WClxPWZ1bmN0aW9uIGsoaixWLEIpe3ZhciBVLFk9Vi5sZW5ndGgsWD1qLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKFk+WC0xMSl0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTtyZXR1cm4gVT1CP0suYWxsb2MoWC1ZLTMsMjU1KTpmdW5jdGlvbiBFKGope2Zvcih2YXIg'@; put 'VSxWPUsuYWxsb2NVbnNhZmUoaiksQj0wLFk9eCgyKmopLFg9MDtCPGo7KVg9PT1ZLmxlbmd0aCYmKFk9eCgyKmopLFg9MCksKFU9WVtYKytdKSYmKFZbQisrXT1VKTtyZXR1cm4gVn0oWC1ZLTMpLG5ldyBPKEsuY29uY2F0KFtLLmZyb20oWzAsQj8xOjJdKSxVLEsuYWxsb2MoMSksVl0sWCkp'@; put 'fShVLEIsWSk7ZWxzZXtpZigzIT09WCl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpO2lmKChxPW5ldyBPKEIpKS5jbXAoVS5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRhdGEgdG9vIGxvbmcgZm9yIG1vZHVsdXMiKX1yZXR1cm4gWT96KHEsVSk6UihxLFUpfX0sNzA3'@; put 'MzU6KGF0LEllLEYpPT57dmFyIGFlPUYoNDgyMTEpLHg9Rig4NDMpLkJ1ZmZlcjthdC5leHBvcnRzPWZ1bmN0aW9uIG0obGUsTSl7cmV0dXJuIHguZnJvbShsZS50b1JlZChhZS5tb250KE0ubW9kdWx1cykpLnJlZFBvdyhuZXcgYWUoTS5wdWJsaWNFeHBvbmVudCkpLmZyb21SZWQoKS50b0Fy'@; put 'cmF5KCkpfX0sMjE4MTc6YXQ9PnthdC5leHBvcnRzPWZ1bmN0aW9uKEYsYWUpe2Zvcih2YXIgeD1GLmxlbmd0aCxtPS0xOysrbTx4OylGW21dXj1hZVttXTtyZXR1cm4gRn19LDQ0MDE5OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9Rig4NDMpLkJ1ZmZlcixNPWdsb2JhbC5jcnlw'@; put 'dG98fGdsb2JhbC5tc0NyeXB0bzthdC5leHBvcnRzPU0mJk0uZ2V0UmFuZG9tVmFsdWVzP2Z1bmN0aW9uIE8oUix6KXtpZihSPjQyOTQ5NjcyOTUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJlcXVlc3RlZCB0b28gbWFueSByYW5kb20gYnl0ZXMiKTt2YXIgSz1sZS5hbGxvY1Vuc2FmZShSKTtp'@; put 'ZihSPjApaWYoUj42NTUzNilmb3IodmFyIEk9MDtJPFI7SSs9NjU1MzYpTS5nZXRSYW5kb21WYWx1ZXMoSy5zbGljZShJLEkrNjU1MzYpKTtlbHNlIE0uZ2V0UmFuZG9tVmFsdWVzKEspO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB6P3Byb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKXt6KG51'@; put 'bGwsSyl9KTpLfTpmdW5jdGlvbiBtKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfX0sNjEyMzc6KGF0'@; put 'LEllLEYpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGFlKCl7dGhyb3cgbmV3IEVycm9yKCJzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyXG51c2UgY2hyb21lLCBGaXJlRm94IG9yIEludGVybmV0IEV4cGxvcmVyIDExIil9dmFy'@; put 'IHg9Rig4NDMpLG09Rig0NDAxOSksbGU9eC5CdWZmZXIsTT14LmtNYXhMZW5ndGgsTz1nbG9iYWwuY3J5cHRvfHxnbG9iYWwubXNDcnlwdG8sUj1NYXRoLnBvdygyLDMyKS0xO2Z1bmN0aW9uIHooaixWKXtpZigibnVtYmVyIiE9dHlwZW9mIGp8fGohPWopdGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'b2Zmc2V0IG11c3QgYmUgYSBudW1iZXIiKTtpZihqPlJ8fGo8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKGo+TXx8aj5WKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSyhqLFYsQil7aWYoIm51'@; put 'bWJlciIhPXR5cGVvZiBqfHxqIT1qKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIG51bWJlciIpO2lmKGo+Unx8ajwwKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKGorVj5CfHxqPk0pdGhyb3cgbmV3IFJhbmdlRXJyb3IoImJ1ZmZl'@; put 'ciB0b28gc21hbGwiKX1mdW5jdGlvbiBrKGosVixCLFkpe2lmKHByb2Nlc3MuYnJvd3Nlcil7dmFyIFU9bmV3IFVpbnQ4QXJyYXkoai5idWZmZXIsVixCKTtyZXR1cm4gTy5nZXRSYW5kb21WYWx1ZXMoVSksWT92b2lkIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKXtZKG51bGwsail9KTpq'@; put 'fWlmKCFZKXJldHVybiBtKEIpLmNvcHkoaixWKSxqO20oQixmdW5jdGlvbihlZSx0ZSl7aWYoZWUpcmV0dXJuIFkoZWUpO3RlLmNvcHkoaixWKSxZKG51bGwsail9KX1PJiZPLmdldFJhbmRvbVZhbHVlc3x8IXByb2Nlc3MuYnJvd3Nlcj8oSWUucmFuZG9tRmlsbD1mdW5jdGlvbiBJKGosVixC'@; put 'LFkpe2lmKCEobGUuaXNCdWZmZXIoail8fGogaW5zdGFuY2VvZiBnbG9iYWwuVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZiIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFYpWT1WLFY9MCxCPWoubGVu'@; put 'Z3RoO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIEIpWT1CLEI9ai5sZW5ndGgtVjtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBZKXRocm93IG5ldyBUeXBlRXJyb3IoJyJjYiIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7cmV0dXJuIHooVixqLmxlbmd0aCksSyhCLFYsai5s'@; put 'ZW5ndGgpLGsoaixWLEIsWSl9LEllLnJhbmRvbUZpbGxTeW5jPWZ1bmN0aW9uIEUoaixWLEIpe2lmKHR5cGVvZiBWPiJ1IiYmKFY9MCksIShsZS5pc0J1ZmZlcihqKXx8aiBpbnN0YW5jZW9mIGdsb2JhbC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBt'@; put 'dXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtyZXR1cm4geihWLGoubGVuZ3RoKSx2b2lkIDA9PT1CJiYoQj1qLmxlbmd0aC1WKSxLKEIsVixqLmxlbmd0aCksayhqLFYsQil9KTooSWUucmFuZG9tRmlsbD1hZSxJZS5yYW5kb21GaWxsU3luYz1hZSl9LDk3MjE4OmF0PT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBGPXt9O2Z1bmN0aW9uIGFlKE8sUix6KXt6fHwoej1FcnJvcik7dmFyIEk9ZnVuY3Rpb24oayl7ZnVuY3Rpb24gRShqLFYsQil7cmV0dXJuIGsuY2FsbCh0aGlzLGZ1bmN0aW9uIEsoayxFLGope3JldHVybiJzdHJpbmciPT10eXBlb2YgUj9SOlIoayxFLGopfShqLFYsQikp'@; put 'fHx0aGlzfXJldHVybiBmdW5jdGlvbiBJZShPLFIpe08ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUi5wcm90b3R5cGUpLE8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPU8sTy5fX3Byb3RvX189Un0oRSxrKSxFfSh6KTtJLnByb3RvdHlwZS5uYW1lPXoubmFtZSxJLnByb3RvdHlwZS5jb2RlPU8s'@; put 'RltPXT1JfWZ1bmN0aW9uIHgoTyxSKXtpZihBcnJheS5pc0FycmF5KE8pKXt2YXIgej1PLmxlbmd0aDtyZXR1cm4gTz1PLm1hcChmdW5jdGlvbihLKXtyZXR1cm4gU3RyaW5nKEspfSksej4yPyJvbmUgb2YgIi5jb25jYXQoUiwiICIpLmNvbmNhdChPLnNsaWNlKDAsei0xKS5qb2luKCIsICIp'@; put 'LCIsIG9yICIpK09bei0xXToyPT09ej8ib25lIG9mICIuY29uY2F0KFIsIiAiKS5jb25jYXQoT1swXSwiIG9yICIpLmNvbmNhdChPWzFdKToib2YgIi5jb25jYXQoUiwiICIpLmNvbmNhdChPWzBdKX1yZXR1cm4ib2YgIi5jb25jYXQoUiwiICIpLmNvbmNhdChTdHJpbmcoTykpfWFlKCJFUlJf'@; put 'SU5WQUxJRF9PUFRfVkFMVUUiLGZ1bmN0aW9uKE8sUil7cmV0dXJuJ1RoZSB2YWx1ZSAiJytSKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAiJytPKyciJ30sVHlwZUVycm9yKSxhZSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKE8sUix6KXt2YXIgSyxJO2lmKCJzdHJpbmciPT10'@; put 'eXBlb2YgUiYmZnVuY3Rpb24gbShPLFIseil7cmV0dXJuIE8uc3Vic3RyKCF6fHx6PDA/MDoreixSLmxlbmd0aCk9PT1SfShSLCJub3QgIik/KEs9Im11c3Qgbm90IGJlIixSPVIucmVwbGFjZSgvXm5vdCAvLCIiKSk6Sz0ibXVzdCBiZSIsZnVuY3Rpb24gbGUoTyxSLHope3JldHVybih2b2lk'@; put 'IDA9PT16fHx6Pk8ubGVuZ3RoKSYmKHo9Ty5sZW5ndGgpLE8uc3Vic3RyaW5nKHotUi5sZW5ndGgseik9PT1SfShPLCIgYXJndW1lbnQiKSlJPSJUaGUgIi5jb25jYXQoTywiICIpLmNvbmNhdChLLCIgIikuY29uY2F0KHgoUiwidHlwZSIpKTtlbHNle3ZhciBrPWZ1bmN0aW9uIE0oTyxSLHop'@; put 'e3JldHVybiJudW1iZXIiIT10eXBlb2YgeiYmKHo9MCksISh6K1IubGVuZ3RoPk8ubGVuZ3RoKSYmLTEhPT1PLmluZGV4T2YoUix6KX0oTywiLiIpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtJPSdUaGUgIicuY29uY2F0KE8sJyIgJykuY29uY2F0KGssIiAiKS5jb25jYXQoSywiICIpLmNvbmNh'@; put 'dCh4KFIsInR5cGUiKSl9cmV0dXJuIEkrIi4gUmVjZWl2ZWQgdHlwZSAiLmNvbmNhdCh0eXBlb2Ygeil9LFR5cGVFcnJvciksYWUoIkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YiLCJzdHJlYW0ucHVzaCgpIGFmdGVyIEVPRiIpLGFlKCJFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCIsZnVu'@; put 'Y3Rpb24oTyl7cmV0dXJuIlRoZSAiK08rIiBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIn0pLGFlKCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIsIlByZW1hdHVyZSBjbG9zZSIpLGFlKCJFUlJfU1RSRUFNX0RFU1RST1lFRCIsZnVuY3Rpb24oTyl7cmV0dXJuIkNhbm5vdCBjYWxsICIr'@; put 'TysiIGFmdGVyIGEgc3RyZWFtIHdhcyBkZXN0cm95ZWQifSksYWUoIkVSUl9NVUxUSVBMRV9DQUxMQkFDSyIsIkNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyIpLGFlKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpLGFlKCJFUlJfU1RS'@; put 'RUFNX1dSSVRFX0FGVEVSX0VORCIsIndyaXRlIGFmdGVyIGVuZCIpLGFlKCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0iLFR5cGVFcnJvciksYWUoIkVSUl9VTktOT1dOX0VOQ09ESU5HIixmdW5jdGlvbihPKXtyZXR1cm4iVW5r'@; put 'bm93biBlbmNvZGluZzogIitPfSxUeXBlRXJyb3IpLGFlKCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwic3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQiKSxhdC5leHBvcnRzLnE9Rn0sNzAyNDc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1PYmpl'@; put 'Y3Qua2V5c3x8ZnVuY3Rpb24oSSl7dmFyIGs9W107Zm9yKHZhciBFIGluIEkpay5wdXNoKEUpO3JldHVybiBrfTthdC5leHBvcnRzPVI7dmFyIHg9Rig4MDMwOSksbT1GKDU2NTYzKTtGKDY2Njk4KShSLHgpO2Zvcih2YXIgbGU9YWUobS5wcm90b3R5cGUpLE09MDtNPGxlLmxlbmd0aDtNKysp'@; put 'e3ZhciBPPWxlW01dO1IucHJvdG90eXBlW09dfHwoUi5wcm90b3R5cGVbT109bS5wcm90b3R5cGVbT10pfWZ1bmN0aW9uIFIoSSl7aWYoISh0aGlzIGluc3RhbmNlb2YgUikpcmV0dXJuIG5ldyBSKEkpO3guY2FsbCh0aGlzLEkpLG0uY2FsbCh0aGlzLEkpLHRoaXMuYWxsb3dIYWxmT3Blbj0h'@; put 'MCxJJiYoITE9PT1JLnJlYWRhYmxlJiYodGhpcy5yZWFkYWJsZT0hMSksITE9PT1JLndyaXRhYmxlJiYodGhpcy53cml0YWJsZT0hMSksITE9PT1JLmFsbG93SGFsZk9wZW4mJih0aGlzLmFsbG93SGFsZk9wZW49ITEsdGhpcy5vbmNlKCJlbmQiLHopKSl9ZnVuY3Rpb24geigpe3RoaXMuX3dy'@; put 'aXRhYmxlU3RhdGUuZW5kZWR8fHByb2Nlc3MubmV4dFRpY2soSyx0aGlzKX1mdW5jdGlvbiBLKEkpe0kuZW5kKCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KFIucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlz'@; put 'Ll93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFIucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0'@; put 'QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFIucHJvdG90eXBlLCJ3cml0YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSLnByb3RvdHlwZSwi'@; put 'ZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJv'@; put 'eWVkfSxzZXQ6ZnVuY3Rpb24oayl7dm9pZCAwPT09dGhpcy5fcmVhZGFibGVTdGF0ZXx8dm9pZCAwPT09dGhpcy5fd3JpdGFibGVTdGF0ZXx8KHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPWssdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ayl9fSl9LDk1MDk2OihhdCxJZSxG'@; put 'KT0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPXg7dmFyIGFlPUYoMTYzMDcpO2Z1bmN0aW9uIHgobSl7aWYoISh0aGlzIGluc3RhbmNlb2YgeCkpcmV0dXJuIG5ldyB4KG0pO2FlLmNhbGwodGhpcyxtKX1GKDY2Njk4KSh4LGFlKSx4LnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKG0s'@; put 'bGUsTSl7TShudWxsLG0pfX0sODAzMDk6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZTthdC5leHBvcnRzPUcsRy5SZWFkYWJsZVN0YXRlPWNlLEYoODIwMTYpO3ZhciBJLG09ZnVuY3Rpb24oUWUsbHQpe3JldHVybiBRZS5saXN0ZW5lcnMobHQpLmxlbmd0aH0sbGU9Rig3ODI0MCks'@; put 'TT1GKDM5MDA3KS5CdWZmZXIsTz0odHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp0eXBlb2Ygc2VsZjwidSI/c2VsZjp7fSkuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LEs9Rig5NDYxNik7ST1LJiZLLmRlYnVnbG9nP0suZGVidWdsb2coInN0cmVh'@; put 'bSIpOmZ1bmN0aW9uKCl7fTt2YXIgZWUsdGUsb2Usaz1GKDI5NjApLEU9Rig2NTYwMSksVj1GKDc4NzgyKS5nZXRIaWdoV2F0ZXJNYXJrLEI9Rig5NzIxOCkucSxZPUIuRVJSX0lOVkFMSURfQVJHX1RZUEUsWD1CLkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YsVT1CLkVSUl9NRVRIT0RfTk9U'@; put 'X0lNUExFTUVOVEVELHE9Qi5FUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UO0YoNjY2OTgpKEcsbGUpO3ZhciBzZT1FLmVycm9yT3JEZXN0cm95LGhlPVsiZXJyb3IiLCJjbG9zZSIsImRlc3Ryb3kiLCJwYXVzZSIsInJlc3VtZSJdO2Z1bmN0aW9uIGNlKFllLFFlLGx0KXthZT1h'@; put 'ZXx8Rig3MDI0NyksImJvb2xlYW4iIT10eXBlb2YgbHQmJihsdD1RZSBpbnN0YW5jZW9mIGFlKSx0aGlzLm9iamVjdE1vZGU9ISEoWWU9WWV8fHt9KS5vYmplY3RNb2RlLGx0JiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFZZS5yZWFkYWJsZU9iamVjdE1vZGUpLHRoaXMu'@; put 'aGlnaFdhdGVyTWFyaz1WKHRoaXMsWWUsInJlYWRhYmxlSGlnaFdhdGVyTWFyayIsbHQpLHRoaXMuYnVmZmVyPW5ldyBrLHRoaXMubGVuZ3RoPTAsdGhpcy5waXBlcz1udWxsLHRoaXMucGlwZXNDb3VudD0wLHRoaXMuZmxvd2luZz1udWxsLHRoaXMuZW5kZWQ9ITEsdGhpcy5lbmRFbWl0dGVk'@; put 'PSExLHRoaXMucmVhZGluZz0hMSx0aGlzLnN5bmM9ITAsdGhpcy5uZWVkUmVhZGFibGU9ITEsdGhpcy5lbWl0dGVkUmVhZGFibGU9ITEsdGhpcy5yZWFkYWJsZUxpc3RlbmluZz0hMSx0aGlzLnJlc3VtZVNjaGVkdWxlZD0hMSx0aGlzLnBhdXNlZD0hMCx0aGlzLmVtaXRDbG9zZT0hMSE9PVll'@; put 'LmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhWWUuYXV0b0Rlc3Ryb3ksdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9WWUuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5hd2FpdERyYWluPTAsdGhpcy5yZWFkaW5nTW9yZT0hMSx0aGlzLmRlY29kZXI9bnVs'@; put 'bCx0aGlzLmVuY29kaW5nPW51bGwsWWUuZW5jb2RpbmcmJihlZXx8KGVlPUYoNzIwMjQpLnMpLHRoaXMuZGVjb2Rlcj1uZXcgZWUoWWUuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9WWUuZW5jb2RpbmcpfWZ1bmN0aW9uIEcoWWUpe2lmKGFlPWFlfHxGKDcwMjQ3KSwhKHRoaXMgaW5zdGFuY2Vv'@; put 'ZiBHKSlyZXR1cm4gbmV3IEcoWWUpO3RoaXMuX3JlYWRhYmxlU3RhdGU9bmV3IGNlKFllLHRoaXMsdGhpcyBpbnN0YW5jZW9mIGFlKSx0aGlzLnJlYWRhYmxlPSEwLFllJiYoImZ1bmN0aW9uIj09dHlwZW9mIFllLnJlYWQmJih0aGlzLl9yZWFkPVllLnJlYWQpLCJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBZZS5kZXN0cm95JiYodGhpcy5fZGVzdHJveT1ZZS5kZXN0cm95KSksbGUuY2FsbCh0aGlzKX1mdW5jdGlvbiBiKFllLFFlLGx0LFBlLGJlKXtJKCJyZWFkYWJsZUFkZENodW5rIixRZSk7dmFyIFRlLEFlPVllLl9yZWFkYWJsZVN0YXRlO2lmKG51bGw9PT1RZSlBZS5yZWFkaW5nPSExLGZ1'@; put 'bmN0aW9uIFMoWWUsUWUpe2lmKEkoIm9uRW9mQ2h1bmsiKSwhUWUuZW5kZWQpe2lmKFFlLmRlY29kZXIpe3ZhciBsdD1RZS5kZWNvZGVyLmVuZCgpO2x0JiZsdC5sZW5ndGgmJihRZS5idWZmZXIucHVzaChsdCksUWUubGVuZ3RoKz1RZS5vYmplY3RNb2RlPzE6bHQubGVuZ3RoKX1RZS5lbmRl'@; put 'ZD0hMCxRZS5zeW5jP3YoWWUpOihRZS5uZWVkUmVhZGFibGU9ITEsUWUuZW1pdHRlZFJlYWRhYmxlfHwoUWUuZW1pdHRlZFJlYWRhYmxlPSEwLHAoWWUpKSl9fShZZSxBZSk7ZWxzZSBpZihiZXx8KFRlPWZ1bmN0aW9uIEgoWWUsUWUpe3ZhciBsdDtyZXR1cm4hZnVuY3Rpb24geihZZSl7cmV0'@; put 'dXJuIE0uaXNCdWZmZXIoWWUpfHxZZSBpbnN0YW5jZW9mIE99KFFlKSYmInN0cmluZyIhPXR5cGVvZiBRZSYmdm9pZCAwIT09UWUmJiFZZS5vYmplY3RNb2RlJiYobHQ9bmV3IFkoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciIsIlVpbnQ4QXJyYXkiXSxRZSkpLGx0fShBZSxRZSkpLFRlKXNl'@; put 'KFllLFRlKTtlbHNlIGlmKEFlLm9iamVjdE1vZGV8fFFlJiZRZS5sZW5ndGg+MClpZigic3RyaW5nIiE9dHlwZW9mIFFlJiYhQWUub2JqZWN0TW9kZSYmT2JqZWN0LmdldFByb3RvdHlwZU9mKFFlKSE9PU0ucHJvdG90eXBlJiYoUWU9ZnVuY3Rpb24gUihZZSl7cmV0dXJuIE0uZnJvbShZZSl9'@; put 'KFFlKSksUGUpQWUuZW5kRW1pdHRlZD9zZShZZSxuZXcgcSk6RChZZSxBZSxRZSwhMCk7ZWxzZSBpZihBZS5lbmRlZClzZShZZSxuZXcgWCk7ZWxzZXtpZihBZS5kZXN0cm95ZWQpcmV0dXJuITE7QWUucmVhZGluZz0hMSxBZS5kZWNvZGVyJiYhbHQ/KFFlPUFlLmRlY29kZXIud3JpdGUoUWUp'@; put 'LEFlLm9iamVjdE1vZGV8fDAhPT1RZS5sZW5ndGg/RChZZSxBZSxRZSwhMSk6dyhZZSxBZSkpOkQoWWUsQWUsUWUsITEpfWVsc2UgUGV8fChBZS5yZWFkaW5nPSExLHcoWWUsQWUpKTtyZXR1cm4hQWUuZW5kZWQmJihBZS5sZW5ndGg8QWUuaGlnaFdhdGVyTWFya3x8MD09PUFlLmxlbmd0aCl9'@; put 'ZnVuY3Rpb24gRChZZSxRZSxsdCxQZSl7UWUuZmxvd2luZyYmMD09PVFlLmxlbmd0aCYmIVFlLnN5bmM/KFFlLmF3YWl0RHJhaW49MCxZZS5lbWl0KCJkYXRhIixsdCkpOihRZS5sZW5ndGgrPVFlLm9iamVjdE1vZGU/MTpsdC5sZW5ndGgsUGU/UWUuYnVmZmVyLnVuc2hpZnQobHQpOlFlLmJ1'@; put 'ZmZlci5wdXNoKGx0KSxRZS5uZWVkUmVhZGFibGUmJnYoWWUpKSx3KFllLFFlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoRy5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMu'@; put 'X3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24oUWUpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1RZSl9fSksRy5wcm90b3R5cGUuZGVzdHJveT1FLmRlc3Ryb3ksRy5wcm90b3R5cGUuX3VuZGVzdHJveT1FLnVuZGVzdHJv'@; put 'eSxHLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihZZSxRZSl7UWUoWWUpfSxHLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKFllLFFlKXt2YXIgUGUsbHQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gbHQub2JqZWN0TW9kZT9QZT0hMDoic3RyaW5nIj09dHlwZW9mIFllJiYoKFFlPVFl'@; put 'fHxsdC5kZWZhdWx0RW5jb2RpbmcpIT09bHQuZW5jb2RpbmcmJihZZT1NLmZyb20oWWUsUWUpLFFlPSIiKSxQZT0hMCksYih0aGlzLFllLFFlLCExLFBlKX0sRy5wcm90b3R5cGUudW5zaGlmdD1mdW5jdGlvbihZZSl7cmV0dXJuIGIodGhpcyxZZSxudWxsLCEwLCExKX0sRy5wcm90b3R5cGUu'@; put 'aXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sRy5wcm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVuY3Rpb24oWWUpe2VlfHwoZWU9Rig3MjAyNCkucyk7dmFyIFFlPW5ldyBlZShZZSk7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPVFl'@; put 'LHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgbHQ9dGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuaGVhZCxQZT0iIjtudWxsIT09bHQ7KVBlKz1RZS53cml0ZShsdC5kYXRhKSxsdD1sdC5uZXh0O3JldHVy'@; put 'biB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09UGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goUGUpLHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RoPVBlLmxlbmd0aCx0aGlzfTt2YXIgTj0xMDczNzQxODI0O2Z1bmN0aW9uIEMoWWUsUWUpe3JldHVy'@; put 'biBZZTw9MHx8MD09PVFlLmxlbmd0aCYmUWUuZW5kZWQ/MDpRZS5vYmplY3RNb2RlPzE6WWUhPVllP1FlLmZsb3dpbmcmJlFlLmxlbmd0aD9RZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDpRZS5sZW5ndGg6KFllPlFlLmhpZ2hXYXRlck1hcmsmJihRZS5oaWdoV2F0ZXJNYXJrPWZ1bmN0aW9u'@; put 'IGcoWWUpe3JldHVybiBZZT49Tj9ZZT1OOihZZS0tLFllfD1ZZT4+PjEsWWV8PVllPj4+MixZZXw9WWU+Pj40LFllfD1ZZT4+PjgsWWV8PVllPj4+MTYsWWUrKyksWWV9KFllKSksWWU8PVFlLmxlbmd0aD9ZZTpRZS5lbmRlZD9RZS5sZW5ndGg6KFFlLm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVu'@; put 'Y3Rpb24gdihZZSl7dmFyIFFlPVllLl9yZWFkYWJsZVN0YXRlO0koImVtaXRSZWFkYWJsZSIsUWUubmVlZFJlYWRhYmxlLFFlLmVtaXR0ZWRSZWFkYWJsZSksUWUubmVlZFJlYWRhYmxlPSExLFFlLmVtaXR0ZWRSZWFkYWJsZXx8KEkoImVtaXRSZWFkYWJsZSIsUWUuZmxvd2luZyksUWUuZW1p'@; put 'dHRlZFJlYWRhYmxlPSEwLHByb2Nlc3MubmV4dFRpY2socCxZZSkpfWZ1bmN0aW9uIHAoWWUpe3ZhciBRZT1ZZS5fcmVhZGFibGVTdGF0ZTtJKCJlbWl0UmVhZGFibGVfIixRZS5kZXN0cm95ZWQsUWUubGVuZ3RoLFFlLmVuZGVkKSwhUWUuZGVzdHJveWVkJiYoUWUubGVuZ3RofHxRZS5lbmRl'@; put 'ZCkmJihZZS5lbWl0KCJyZWFkYWJsZSIpLFFlLmVtaXR0ZWRSZWFkYWJsZT0hMSksUWUubmVlZFJlYWRhYmxlPSFRZS5mbG93aW5nJiYhUWUuZW5kZWQmJlFlLmxlbmd0aDw9UWUuaGlnaFdhdGVyTWFyayxGZShZZSl9ZnVuY3Rpb24gdyhZZSxRZSl7UWUucmVhZGluZ01vcmV8fChRZS5yZWFk'@; put 'aW5nTW9yZT0hMCxwcm9jZXNzLm5leHRUaWNrKEosWWUsUWUpKX1mdW5jdGlvbiBKKFllLFFlKXtmb3IoOyFRZS5yZWFkaW5nJiYhUWUuZW5kZWQmJihRZS5sZW5ndGg8UWUuaGlnaFdhdGVyTWFya3x8UWUuZmxvd2luZyYmMD09PVFlLmxlbmd0aCk7KXt2YXIgbHQ9UWUubGVuZ3RoO2lmKEko'@; put 'Im1heWJlUmVhZE1vcmUgcmVhZCAwIiksWWUucmVhZCgwKSxsdD09PVFlLmxlbmd0aClicmVha31RZS5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiBkZShZZSl7dmFyIFFlPVllLl9yZWFkYWJsZVN0YXRlO1FlLnJlYWRhYmxlTGlzdGVuaW5nPVllLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+'@; put 'MCxRZS5yZXN1bWVTY2hlZHVsZWQmJiFRZS5wYXVzZWQ/UWUuZmxvd2luZz0hMDpZZS5saXN0ZW5lckNvdW50KCJkYXRhIik+MCYmWWUucmVzdW1lKCl9ZnVuY3Rpb24gZmUoWWUpe0koInJlYWRhYmxlIG5leHR0aWNrIHJlYWQgMCIpLFllLnJlYWQoMCl9ZnVuY3Rpb24gTGUoWWUsUWUpe0ko'@; put 'InJlc3VtZSIsUWUucmVhZGluZyksUWUucmVhZGluZ3x8WWUucmVhZCgwKSxRZS5yZXN1bWVTY2hlZHVsZWQ9ITEsWWUuZW1pdCgicmVzdW1lIiksRmUoWWUpLFFlLmZsb3dpbmcmJiFRZS5yZWFkaW5nJiZZZS5yZWFkKDApfWZ1bmN0aW9uIEZlKFllKXt2YXIgUWU9WWUuX3JlYWRhYmxlU3Rh'@; put 'dGU7Zm9yKEkoImZsb3ciLFFlLmZsb3dpbmcpO1FlLmZsb3dpbmcmJm51bGwhPT1ZZS5yZWFkKCk7KTt9ZnVuY3Rpb24gT2UoWWUsUWUpe3JldHVybiAwPT09UWUubGVuZ3RoP251bGw6KFFlLm9iamVjdE1vZGU/bHQ9UWUuYnVmZmVyLnNoaWZ0KCk6IVllfHxZZT49UWUubGVuZ3RoPyhsdD1R'@; put 'ZS5kZWNvZGVyP1FlLmJ1ZmZlci5qb2luKCIiKToxPT09UWUuYnVmZmVyLmxlbmd0aD9RZS5idWZmZXIuZmlyc3QoKTpRZS5idWZmZXIuY29uY2F0KFFlLmxlbmd0aCksUWUuYnVmZmVyLmNsZWFyKCkpOmx0PVFlLmJ1ZmZlci5jb25zdW1lKFllLFFlLmRlY29kZXIpLGx0KTt2YXIgbHR9ZnVu'@; put 'Y3Rpb24gamUoWWUpe3ZhciBRZT1ZZS5fcmVhZGFibGVTdGF0ZTtJKCJlbmRSZWFkYWJsZSIsUWUuZW5kRW1pdHRlZCksUWUuZW5kRW1pdHRlZHx8KFFlLmVuZGVkPSEwLHByb2Nlc3MubmV4dFRpY2soV2UsUWUsWWUpKX1mdW5jdGlvbiBXZShZZSxRZSl7aWYoSSgiZW5kUmVhZGFibGVOVCIs'@; put 'WWUuZW5kRW1pdHRlZCxZZS5sZW5ndGgpLCFZZS5lbmRFbWl0dGVkJiYwPT09WWUubGVuZ3RoJiYoWWUuZW5kRW1pdHRlZD0hMCxRZS5yZWFkYWJsZT0hMSxRZS5lbWl0KCJlbmQiKSxZZS5hdXRvRGVzdHJveSkpe3ZhciBsdD1RZS5fd3JpdGFibGVTdGF0ZTsoIWx0fHxsdC5hdXRvRGVzdHJv'@; put 'eSYmbHQuZmluaXNoZWQpJiZRZS5kZXN0cm95KCl9fWZ1bmN0aW9uIEtlKFllLFFlKXtmb3IodmFyIGx0PTAsUGU9WWUubGVuZ3RoO2x0PFBlO2x0KyspaWYoWWVbbHRdPT09UWUpcmV0dXJuIGx0O3JldHVybi0xfUcucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oWWUpe0koInJlYWQiLFllKSxZ'@; put 'ZT1wYXJzZUludChZZSwxMCk7dmFyIFFlPXRoaXMuX3JlYWRhYmxlU3RhdGUsbHQ9WWU7aWYoMCE9PVllJiYoUWUuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09WWUmJlFlLm5lZWRSZWFkYWJsZSYmKCgwIT09UWUuaGlnaFdhdGVyTWFyaz9RZS5sZW5ndGg+PVFlLmhpZ2hXYXRlck1hcms6UWUu'@; put 'bGVuZ3RoPjApfHxRZS5lbmRlZCkpcmV0dXJuIEkoInJlYWQ6IGVtaXRSZWFkYWJsZSIsUWUubGVuZ3RoLFFlLmVuZGVkKSwwPT09UWUubGVuZ3RoJiZRZS5lbmRlZD9qZSh0aGlzKTp2KHRoaXMpLG51bGw7aWYoMD09PShZZT1DKFllLFFlKSkmJlFlLmVuZGVkKXJldHVybiAwPT09UWUubGVu'@; put 'Z3RoJiZqZSh0aGlzKSxudWxsO3ZhciBiZSxQZT1RZS5uZWVkUmVhZGFibGU7cmV0dXJuIEkoIm5lZWQgcmVhZGFibGUiLFBlKSwoMD09PVFlLmxlbmd0aHx8UWUubGVuZ3RoLVllPFFlLmhpZ2hXYXRlck1hcmspJiZJKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsUGU9ITApLFFlLmVu'@; put 'ZGVkfHxRZS5yZWFkaW5nP0koInJlYWRpbmcgb3IgZW5kZWQiLFBlPSExKTpQZSYmKEkoImRvIHJlYWQiKSxRZS5yZWFkaW5nPSEwLFFlLnN5bmM9ITAsMD09PVFlLmxlbmd0aCYmKFFlLm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChRZS5oaWdoV2F0ZXJNYXJrKSxRZS5zeW5jPSExLFFl'@; put 'LnJlYWRpbmd8fChZZT1DKGx0LFFlKSkpLG51bGw9PT0oYmU9WWU+MD9PZShZZSxRZSk6bnVsbCk/KFFlLm5lZWRSZWFkYWJsZT1RZS5sZW5ndGg8PVFlLmhpZ2hXYXRlck1hcmssWWU9MCk6KFFlLmxlbmd0aC09WWUsUWUuYXdhaXREcmFpbj0wKSwwPT09UWUubGVuZ3RoJiYoUWUuZW5kZWR8'@; put 'fChRZS5uZWVkUmVhZGFibGU9ITApLGx0IT09WWUmJlFlLmVuZGVkJiZqZSh0aGlzKSksbnVsbCE9PWJlJiZ0aGlzLmVtaXQoImRhdGEiLGJlKSxiZX0sRy5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oWWUpe3NlKHRoaXMsbmV3IFUoIl9yZWFkKCkiKSl9LEcucHJvdG90eXBlLnBpcGU9ZnVu'@; put 'Y3Rpb24oWWUsUWUpe3ZhciBsdD10aGlzLFBlPXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKFBlLnBpcGVzQ291bnQpe2Nhc2UgMDpQZS5waXBlcz1ZZTticmVhaztjYXNlIDE6UGUucGlwZXM9W1BlLnBpcGVzLFllXTticmVhaztkZWZhdWx0OlBlLnBpcGVzLnB1c2goWWUpfVBlLnBpcGVz'@; put 'Q291bnQrPTEsSSgicGlwZSBjb3VudD0lZCBvcHRzPSVqIixQZS5waXBlc0NvdW50LFFlKTt2YXIgQWU9UWUmJiExPT09UWUuZW5kfHxZZT09PXByb2Nlc3Muc3Rkb3V0fHxZZT09PXByb2Nlc3Muc3RkZXJyP3V0OnFlO2Z1bmN0aW9uIHFlKCl7SSgib25lbmQiKSxZZS5lbmQoKX1QZS5lbmRF'@; put 'bWl0dGVkP3Byb2Nlc3MubmV4dFRpY2soQWUpOmx0Lm9uY2UoImVuZCIsQWUpLFllLm9uKCJ1bnBpcGUiLGZ1bmN0aW9uIFRlKE10LEh0KXtJKCJvbnVucGlwZSIpLE10PT09bHQmJkh0JiYhMT09PUh0Lmhhc1VucGlwZWQmJihIdC5oYXNVbnBpcGVkPSEwLGZ1bmN0aW9uIGh0KCl7SSgiY2xl'@; put 'YW51cCIpLFllLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsemUpLFllLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLG90KSxZZS5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLFhlKSxZZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLERlKSxZZS5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixUZSksbHQucmVt'@; put 'b3ZlTGlzdGVuZXIoImVuZCIscWUpLGx0LnJlbW92ZUxpc3RlbmVyKCJlbmQiLHV0KSxsdC5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsTWUpLFVlPSEwLFBlLmF3YWl0RHJhaW4mJighWWUuX3dyaXRhYmxlU3RhdGV8fFllLl93cml0YWJsZVN0YXRlLm5lZWREcmFpbikmJlhlKCl9KCkpfSk7dmFy'@; put 'IFhlPWZ1bmN0aW9uIG5lKFllKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbHQ9WWUuX3JlYWRhYmxlU3RhdGU7SSgicGlwZU9uRHJhaW4iLGx0LmF3YWl0RHJhaW4pLGx0LmF3YWl0RHJhaW4mJmx0LmF3YWl0RHJhaW4tLSwwPT09bHQuYXdhaXREcmFpbiYmbShZZSwiZGF0YSIpJiYobHQuZmxv'@; put 'd2luZz0hMCxGZShZZSkpfX0obHQpO1llLm9uKCJkcmFpbiIsWGUpO3ZhciBVZT0hMTtmdW5jdGlvbiBNZShNdCl7SSgib25kYXRhIik7dmFyIEh0PVllLndyaXRlKE10KTtJKCJkZXN0LndyaXRlIixIdCksITE9PT1IdCYmKCgxPT09UGUucGlwZXNDb3VudCYmUGUucGlwZXM9PT1ZZXx8UGUu'@; put 'cGlwZXNDb3VudD4xJiYtMSE9PUtlKFBlLnBpcGVzLFllKSkmJiFVZSYmKEkoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsUGUuYXdhaXREcmFpbiksUGUuYXdhaXREcmFpbisrKSxsdC5wYXVzZSgpKX1mdW5jdGlvbiBEZShNdCl7SSgib25lcnJvciIsTXQpLHV0KCksWWUucmVtb3Zl'@; put 'TGlzdGVuZXIoImVycm9yIixEZSksMD09PW0oWWUsImVycm9yIikmJnNlKFllLE10KX1mdW5jdGlvbiB6ZSgpe1llLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLG90KSx1dCgpfWZ1bmN0aW9uIG90KCl7SSgib25maW5pc2giKSxZZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHplKSx1dCgpfWZ1'@; put 'bmN0aW9uIHV0KCl7SSgidW5waXBlIiksbHQudW5waXBlKFllKX1yZXR1cm4gbHQub24oImRhdGEiLE1lKSxmdW5jdGlvbiB1ZShZZSxRZSxsdCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFllLnByZXBlbmRMaXN0ZW5lcilyZXR1cm4gWWUucHJlcGVuZExpc3RlbmVyKFFlLGx0KTtZZS5fZXZl'@; put 'bnRzJiZZZS5fZXZlbnRzW1FlXT9BcnJheS5pc0FycmF5KFllLl9ldmVudHNbUWVdKT9ZZS5fZXZlbnRzW1FlXS51bnNoaWZ0KGx0KTpZZS5fZXZlbnRzW1FlXT1bbHQsWWUuX2V2ZW50c1tRZV1dOlllLm9uKFFlLGx0KX0oWWUsImVycm9yIixEZSksWWUub25jZSgiY2xvc2UiLHplKSxZZS5v'@; put 'bmNlKCJmaW5pc2giLG90KSxZZS5lbWl0KCJwaXBlIixsdCksUGUuZmxvd2luZ3x8KEkoInBpcGUgcmVzdW1lIiksbHQucmVzdW1lKCkpLFllfSxHLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24oWWUpe3ZhciBRZT10aGlzLl9yZWFkYWJsZVN0YXRlLGx0PXtoYXNVbnBpcGVkOiExfTtpZigw'@; put 'PT09UWUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09UWUucGlwZXNDb3VudClyZXR1cm4gWWUmJlllIT09UWUucGlwZXN8fChZZXx8KFllPVFlLnBpcGVzKSxRZS5waXBlcz1udWxsLFFlLnBpcGVzQ291bnQ9MCxRZS5mbG93aW5nPSExLFllJiZZZS5lbWl0KCJ1bnBpcGUiLHRoaXMs'@; put 'bHQpKSx0aGlzO2lmKCFZZSl7dmFyIFBlPVFlLnBpcGVzLGJlPVFlLnBpcGVzQ291bnQ7UWUucGlwZXM9bnVsbCxRZS5waXBlc0NvdW50PTAsUWUuZmxvd2luZz0hMTtmb3IodmFyIEFlPTA7QWU8YmU7QWUrKylQZVtBZV0uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiExfSk7cmV0'@; put 'dXJuIHRoaXN9dmFyIFRlPUtlKFFlLnBpcGVzLFllKTtyZXR1cm4tMT09PVRlfHwoUWUucGlwZXMuc3BsaWNlKFRlLDEpLFFlLnBpcGVzQ291bnQtPTEsMT09PVFlLnBpcGVzQ291bnQmJihRZS5waXBlcz1RZS5waXBlc1swXSksWWUuZW1pdCgidW5waXBlIix0aGlzLGx0KSksdGhpc30sRy5w'@; put 'cm90b3R5cGUuYWRkTGlzdGVuZXI9Ry5wcm90b3R5cGUub249ZnVuY3Rpb24oWWUsUWUpe3ZhciBsdD1sZS5wcm90b3R5cGUub24uY2FsbCh0aGlzLFllLFFlKSxQZT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PVllPyhQZS5yZWFkYWJsZUxpc3RlbmluZz10aGlzLmxpc3Rl'@; put 'bmVyQ291bnQoInJlYWRhYmxlIik+MCwhMSE9PVBlLmZsb3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT1ZZSYmIVBlLmVuZEVtaXR0ZWQmJiFQZS5yZWFkYWJsZUxpc3RlbmluZyYmKFBlLnJlYWRhYmxlTGlzdGVuaW5nPVBlLm5lZWRSZWFkYWJsZT0hMCxQZS5mbG93aW5nPSEx'@; put 'LFBlLmVtaXR0ZWRSZWFkYWJsZT0hMSxJKCJvbiByZWFkYWJsZSIsUGUubGVuZ3RoLFBlLnJlYWRpbmcpLFBlLmxlbmd0aD92KHRoaXMpOlBlLnJlYWRpbmd8fHByb2Nlc3MubmV4dFRpY2soZmUsdGhpcykpLGx0fSxHLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihZZSxRZSl7'@; put 'dmFyIGx0PWxlLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lci5jYWxsKHRoaXMsWWUsUWUpO3JldHVybiJyZWFkYWJsZSI9PT1ZZSYmcHJvY2Vzcy5uZXh0VGljayhkZSx0aGlzKSxsdH0sRy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKFllKXt2YXIgUWU9bGUucHJvdG90'@; put 'eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuKCJyZWFkYWJsZSI9PT1ZZXx8dm9pZCAwPT09WWUpJiZwcm9jZXNzLm5leHRUaWNrKGRlLHRoaXMpLFFlfSxHLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgWWU9dGhpcy5fcmVhZGFibGVT'@; put 'dGF0ZTtyZXR1cm4gWWUuZmxvd2luZ3x8KEkoInJlc3VtZSIpLFllLmZsb3dpbmc9IVllLnJlYWRhYmxlTGlzdGVuaW5nLGZ1bmN0aW9uIHhlKFllLFFlKXtRZS5yZXN1bWVTY2hlZHVsZWR8fChRZS5yZXN1bWVTY2hlZHVsZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhMZSxZZSxRZSkpfSh0aGlz'@; put 'LFllKSksWWUucGF1c2VkPSExLHRoaXN9LEcucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIEkoImNhbGwgcGF1c2UgZmxvd2luZz0laiIsdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKSwhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmKEkoInBhdXNlIiksdGhp'@; put 'cy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPSExLHRoaXMuZW1pdCgicGF1c2UiKSksdGhpcy5fcmVhZGFibGVTdGF0ZS5wYXVzZWQ9ITAsdGhpc30sRy5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihZZSl7dmFyIFFlPXRoaXMsbHQ9dGhpcy5fcmVhZGFibGVTdGF0ZSxQZT0hMTtmb3IodmFyIGJl'@; put 'IGluIFllLm9uKCJlbmQiLGZ1bmN0aW9uKCl7aWYoSSgid3JhcHBlZCBlbmQiKSxsdC5kZWNvZGVyJiYhbHQuZW5kZWQpe3ZhciBUZT1sdC5kZWNvZGVyLmVuZCgpO1RlJiZUZS5sZW5ndGgmJlFlLnB1c2goVGUpfVFlLnB1c2gobnVsbCl9KSxZZS5vbigiZGF0YSIsZnVuY3Rpb24oVGUpe0ko'@; put 'IndyYXBwZWQgZGF0YSIpLGx0LmRlY29kZXImJihUZT1sdC5kZWNvZGVyLndyaXRlKFRlKSksbHQub2JqZWN0TW9kZSYmbnVsbD09VGV8fCEobHQub2JqZWN0TW9kZXx8VGUmJlRlLmxlbmd0aCl8fFFlLnB1c2goVGUpfHwoUGU9ITAsWWUucGF1c2UoKSl9KSxZZSl2b2lkIDA9PT10aGlzW2Jl'@; put 'XSYmImZ1bmN0aW9uIj09dHlwZW9mIFllW2JlXSYmKHRoaXNbYmVdPWZ1bmN0aW9uKHFlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWWVbcWVdLmFwcGx5KFllLGFyZ3VtZW50cyl9fShiZSkpO2Zvcih2YXIgQWU9MDtBZTxoZS5sZW5ndGg7QWUrKylZZS5vbihoZVtBZV0sdGhpcy5lbWl0'@; put 'LmJpbmQodGhpcyxoZVtBZV0pKTtyZXR1cm4gdGhpcy5fcmVhZD1mdW5jdGlvbihUZSl7SSgid3JhcHBlZCBfcmVhZCIsVGUpLFBlJiYoUGU9ITEsWWUucmVzdW1lKCkpfSx0aGlzfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoRy5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3Jd'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRlJiYodGU9RigxMDQ1NykpLHRlKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEcucHJvdG90eXBlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJs'@; put 'ZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEcucHJvdG90eXBlLCJyZWFkYWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0pLE9i'@; put 'amVjdC5kZWZpbmVQcm9wZXJ0eShHLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24oUWUpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFk'@; put 'YWJsZVN0YXRlLmZsb3dpbmc9UWUpfX0pLEcuX2Zyb21MaXN0PU9lLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShHLnByb3RvdHlwZSwicmVhZGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rp'@; put 'b24iPT10eXBlb2YgU3ltYm9sJiYoRy5mcm9tPWZ1bmN0aW9uKFllLFFlKXtyZXR1cm4gdm9pZCAwPT09b2UmJihvZT1GKDMzMzM1KSksb2UoRyxZZSxRZSl9KX0sMTYzMDc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9ejt2YXIgYWU9Rig5NzIxOCkucSx4PWFlLkVSUl9N'@; put 'RVRIT0RfTk9UX0lNUExFTUVOVEVELG09YWUuRVJSX01VTFRJUExFX0NBTExCQUNLLGxlPWFlLkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1JTkcsTT1hZS5FUlJfVFJBTlNGT1JNX1dJVEhfTEVOR1RIXzAsTz1GKDcwMjQ3KTtmdW5jdGlvbiBSKGssRSl7dmFyIGo9dGhpcy5fdHJh'@; put 'bnNmb3JtU3RhdGU7ai50cmFuc2Zvcm1pbmc9ITE7dmFyIFY9ai53cml0ZWNiO2lmKG51bGw9PT1WKXJldHVybiB0aGlzLmVtaXQoImVycm9yIixuZXcgbSk7ai53cml0ZWNodW5rPW51bGwsai53cml0ZWNiPW51bGwsbnVsbCE9RSYmdGhpcy5wdXNoKEUpLFYoayk7dmFyIEI9dGhpcy5fcmVh'@; put 'ZGFibGVTdGF0ZTtCLnJlYWRpbmc9ITEsKEIubmVlZFJlYWRhYmxlfHxCLmxlbmd0aDxCLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEIuaGlnaFdhdGVyTWFyayl9ZnVuY3Rpb24geihrKXtpZighKHRoaXMgaW5zdGFuY2VvZiB6KSlyZXR1cm4gbmV3IHooayk7Ty5jYWxsKHRoaXMsayks'@; put 'dGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOlIuYmluZCh0aGlzKSxuZWVkVHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxsLHdyaXRlZW5jb2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9'@; put 'ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLGsmJigiZnVuY3Rpb24iPT10eXBlb2Ygay50cmFuc2Zvcm0mJih0aGlzLl90cmFuc2Zvcm09ay50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5cGVvZiBrLmZsdXNoJiYodGhpcy5fZmx1c2g9ay5mbHVzaCkpLHRoaXMub24oInByZWZpbmlz'@; put 'aCIsSyl9ZnVuY3Rpb24gSygpe3ZhciBrPXRoaXM7ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuX2ZsdXNofHx0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD9JKHRoaXMsbnVsbCxudWxsKTp0aGlzLl9mbHVzaChmdW5jdGlvbihFLGope0koayxFLGopfSl9ZnVuY3Rpb24gSShrLEUsail7'@; put 'aWYoRSlyZXR1cm4gay5lbWl0KCJlcnJvciIsRSk7aWYobnVsbCE9aiYmay5wdXNoKGopLGsuX3dyaXRhYmxlU3RhdGUubGVuZ3RoKXRocm93IG5ldyBNO2lmKGsuX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWluZyl0aHJvdyBuZXcgbGU7cmV0dXJuIGsucHVzaChudWxsKX1GKDY2Njk4KSh6'@; put 'LE8pLHoucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oayxFKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT0hMSxPLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxrLEUpfSx6LnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKGssRSxqKXtqKG5ldyB4KCJfdHJh'@; put 'bnNmb3JtKCkiKSl9LHoucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihrLEUsail7dmFyIFY9dGhpcy5fdHJhbnNmb3JtU3RhdGU7aWYoVi53cml0ZWNiPWosVi53cml0ZWNodW5rPWssVi53cml0ZWVuY29kaW5nPUUsIVYudHJhbnNmb3JtaW5nKXt2YXIgQj10aGlzLl9yZWFkYWJsZVN0YXRl'@; put 'OyhWLm5lZWRUcmFuc2Zvcm18fEIubmVlZFJlYWRhYmxlfHxCLmxlbmd0aDxCLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEIuaGlnaFdhdGVyTWFyayl9fSx6LnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihrKXt2YXIgRT10aGlzLl90cmFuc2Zvcm1TdGF0ZTtudWxsPT09RS53cml0ZWNo'@; put 'dW5rfHxFLnRyYW5zZm9ybWluZz9FLm5lZWRUcmFuc2Zvcm09ITA6KEUudHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybShFLndyaXRlY2h1bmssRS53cml0ZWVuY29kaW5nLEUuYWZ0ZXJUcmFuc2Zvcm0pKX0sei5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oayxFKXtPLnByb3Rv'@; put 'dHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsayxmdW5jdGlvbihqKXtFKGopfSl9fSw1NjU2MzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24geChGZSl7dmFyIE9lPXRoaXM7dGhpcy5uZXh0PW51bGwsdGhpcy5lbnRyeT1udWxsLHRoaXMuZmluaXNoPWZ1bmN0aW9uKCl7IWZ1bmN0'@; put 'aW9uIExlKEZlLE9lLGplKXt2YXIgV2U9RmUuZW50cnk7Zm9yKEZlLmVudHJ5PW51bGw7V2U7KXt2YXIgS2U9V2UuY2FsbGJhY2s7T2UucGVuZGluZ2NiLS0sS2UoamUpLFdlPVdlLm5leHR9T2UuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9RmV9KE9lLEZlKX19dmFyIG07YXQuZXhwb3J0cz1j'@; put 'ZSxjZS5Xcml0YWJsZVN0YXRlPWhlO3ZhciB1ZSxsZT17ZGVwcmVjYXRlOkYoOTA0OTYpfSxNPUYoNzgyNDApLE89RigzOTAwNykuQnVmZmVyLFI9KHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIHNlbGY8InUiP3NlbGY6e30pLlVpbnQ4'@; put 'QXJyYXl8fGZ1bmN0aW9uKCl7fSxJPUYoNjU2MDEpLEU9Rig3ODc4MikuZ2V0SGlnaFdhdGVyTWFyayxqPUYoOTcyMTgpLnEsVj1qLkVSUl9JTlZBTElEX0FSR19UWVBFLEI9ai5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxZPWouRVJSX01VTFRJUExFX0NBTExCQUNLLFg9ai5FUlJfU1RS'@; put 'RUFNX0NBTk5PVF9QSVBFLFU9ai5FUlJfU1RSRUFNX0RFU1RST1lFRCxxPWouRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyxlZT1qLkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5ELHRlPWouRVJSX1VOS05PV05fRU5DT0RJTkcsb2U9SS5lcnJvck9yRGVzdHJveTtmdW5jdGlvbiBzZSgpe31mdW5j'@; put 'dGlvbiBoZShGZSxPZSxqZSl7bT1tfHxGKDcwMjQ3KSwiYm9vbGVhbiIhPXR5cGVvZiBqZSYmKGplPU9lIGluc3RhbmNlb2YgbSksdGhpcy5vYmplY3RNb2RlPSEhKEZlPUZlfHx7fSkub2JqZWN0TW9kZSxqZSYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhRmUud3JpdGFi'@; put 'bGVPYmplY3RNb2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9RSh0aGlzLEZlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLGplKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ry'@; put 'b3llZD0hMSx0aGlzLmRlY29kZVN0cmluZ3M9ISghMT09PUZlLmRlY29kZVN0cmluZ3MpLHRoaXMuZGVmYXVsdEVuY29kaW5nPUZlLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMuY29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVm'@; put 'ZmVyUHJvY2Vzc2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24oS2UpeyFmdW5jdGlvbiBTKEZlLE9lKXt2YXIgamU9RmUuX3dyaXRhYmxlU3RhdGUsV2U9amUuc3luYyxLZT1qZS53cml0ZWNiO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBLZSl0aHJvdyBuZXcgWTtpZihmdW5jdGlvbiBDKEZl'@; put 'KXtGZS53cml0aW5nPSExLEZlLndyaXRlY2I9bnVsbCxGZS5sZW5ndGgtPUZlLndyaXRlbGVuLEZlLndyaXRlbGVuPTB9KGplKSxPZSkhZnVuY3Rpb24gZyhGZSxPZSxqZSxXZSxLZSl7LS1PZS5wZW5kaW5nY2IsamU/KHByb2Nlc3MubmV4dFRpY2soS2UsV2UpLHByb2Nlc3MubmV4dFRpY2so'@; put 'ZmUsRmUsT2UpLEZlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxvZShGZSxXZSkpOihLZShXZSksRmUuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLG9lKEZlLFdlKSxmZShGZSxPZSkpfShGZSxqZSxXZSxPZSxLZSk7ZWxzZXt2YXIgWWU9SihqZSl8fEZlLmRlc3Ryb3ll'@; put 'ZDshWWUmJiFqZS5jb3JrZWQmJiFqZS5idWZmZXJQcm9jZXNzaW5nJiZqZS5idWZmZXJlZFJlcXVlc3QmJncoRmUsamUpLFdlP3Byb2Nlc3MubmV4dFRpY2sodixGZSxqZSxZZSxLZSk6dihGZSxqZSxZZSxLZSl9fShPZSxLZSl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0'@; put 'aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmVtaXRDbG9zZT0hMSE9PUZlLmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEh'@; put 'RmUuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyB4KHRoaXMpfWZ1bmN0aW9uIGNlKEZlKXt2YXIgT2U9dGhpcyBpbnN0YW5jZW9mKG09bXx8Rig3MDI0NykpO2lmKCFPZSYmIXVlLmNhbGwoY2UsdGhpcykpcmV0dXJu'@; put 'IG5ldyBjZShGZSk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgaGUoRmUsdGhpcyxPZSksdGhpcy53cml0YWJsZT0hMCxGZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBGZS53cml0ZSYmKHRoaXMuX3dyaXRlPUZlLndyaXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgRmUud3JpdGV2JiYodGhpcy5fd3Jp'@; put 'dGV2PUZlLndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIEZlLmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PUZlLmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiBGZS5maW5hbCYmKHRoaXMuX2ZpbmFsPUZlLmZpbmFsKSksTS5jYWxsKHRoaXMpfWZ1bmN0aW9uIE4oRmUsT2UsamUsV2UsS2Us'@; put 'WWUsUWUpe09lLndyaXRlbGVuPVdlLE9lLndyaXRlY2I9UWUsT2Uud3JpdGluZz0hMCxPZS5zeW5jPSEwLE9lLmRlc3Ryb3llZD9PZS5vbndyaXRlKG5ldyBVKCJ3cml0ZSIpKTpqZT9GZS5fd3JpdGV2KEtlLE9lLm9ud3JpdGUpOkZlLl93cml0ZShLZSxZZSxPZS5vbndyaXRlKSxPZS5zeW5j'@; put 'PSExfWZ1bmN0aW9uIHYoRmUsT2UsamUsV2Upe2plfHxmdW5jdGlvbiBwKEZlLE9lKXswPT09T2UubGVuZ3RoJiZPZS5uZWVkRHJhaW4mJihPZS5uZWVkRHJhaW49ITEsRmUuZW1pdCgiZHJhaW4iKSl9KEZlLE9lKSxPZS5wZW5kaW5nY2ItLSxXZSgpLGZlKEZlLE9lKX1mdW5jdGlvbiB3KEZl'@; put 'LE9lKXtPZS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciBqZT1PZS5idWZmZXJlZFJlcXVlc3Q7aWYoRmUuX3dyaXRldiYmamUmJmplLm5leHQpe3ZhciBLZT1uZXcgQXJyYXkoT2UuYnVmZmVyZWRSZXF1ZXN0Q291bnQpLFllPU9lLmNvcmtlZFJlcXVlc3RzRnJlZTtZZS5lbnRyeT1qZTtmb3Io'@; put 'dmFyIFFlPTAsbHQ9ITA7amU7KUtlW1FlXT1qZSxqZS5pc0J1Znx8KGx0PSExKSxqZT1qZS5uZXh0LFFlKz0xO0tlLmFsbEJ1ZmZlcnM9bHQsTihGZSxPZSwhMCxPZS5sZW5ndGgsS2UsIiIsWWUuZmluaXNoKSxPZS5wZW5kaW5nY2IrKyxPZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsWWUu'@; put 'bmV4dD8oT2UuY29ya2VkUmVxdWVzdHNGcmVlPVllLm5leHQsWWUubmV4dD1udWxsKTpPZS5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IHgoT2UpLE9lLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTB9ZWxzZXtmb3IoO2plOyl7dmFyIFBlPWplLmNodW5rO2lmKE4oRmUsT2UsITEsT2Uub2JqZWN0TW9k'@; put 'ZT8xOlBlLmxlbmd0aCxQZSxqZS5lbmNvZGluZyxqZS5jYWxsYmFjayksamU9amUubmV4dCxPZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLE9lLndyaXRpbmcpYnJlYWt9bnVsbD09PWplJiYoT2UubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX1PZS5idWZmZXJlZFJlcXVlc3Q9amUsT2UuYnVm'@; put 'ZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBKKEZlKXtyZXR1cm4gRmUuZW5kaW5nJiYwPT09RmUubGVuZ3RoJiZudWxsPT09RmUuYnVmZmVyZWRSZXF1ZXN0JiYhRmUuZmluaXNoZWQmJiFGZS53cml0aW5nfWZ1bmN0aW9uIG5lKEZlLE9lKXtGZS5fZmluYWwoZnVuY3Rpb24oamUpe09lLnBl'@; put 'bmRpbmdjYi0tLGplJiZvZShGZSxqZSksT2UucHJlZmluaXNoZWQ9ITAsRmUuZW1pdCgicHJlZmluaXNoIiksZmUoRmUsT2UpfSl9ZnVuY3Rpb24gZmUoRmUsT2Upe3ZhciBqZT1KKE9lKTtpZihqZSYmKGZ1bmN0aW9uIGRlKEZlLE9lKXshT2UucHJlZmluaXNoZWQmJiFPZS5maW5hbENhbGxl'@; put 'ZCYmKCJmdW5jdGlvbiIhPXR5cGVvZiBGZS5fZmluYWx8fE9lLmRlc3Ryb3llZD8oT2UucHJlZmluaXNoZWQ9ITAsRmUuZW1pdCgicHJlZmluaXNoIikpOihPZS5wZW5kaW5nY2IrKyxPZS5maW5hbENhbGxlZD0hMCxwcm9jZXNzLm5leHRUaWNrKG5lLEZlLE9lKSkpfShGZSxPZSksMD09PU9l'@; put 'LnBlbmRpbmdjYiYmKE9lLmZpbmlzaGVkPSEwLEZlLmVtaXQoImZpbmlzaCIpLE9lLmF1dG9EZXN0cm95KSkpe3ZhciBXZT1GZS5fcmVhZGFibGVTdGF0ZTsoIVdlfHxXZS5hdXRvRGVzdHJveSYmV2UuZW5kRW1pdHRlZCkmJkZlLmRlc3Ryb3koKX1yZXR1cm4gamV9Rig2NjY5OCkoY2UsTSks'@; put 'aGUucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgT2U9dGhpcy5idWZmZXJlZFJlcXVlc3QsamU9W107T2U7KWplLnB1c2goT2UpLE9lPU9lLm5leHQ7cmV0dXJuIGplfSxmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoaGUucHJvdG90eXBlLCJidWZm'@; put 'ZXIiLHtnZXQ6bGUuZGVwcmVjYXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCl9LCJfd3JpdGFibGVTdGF0ZS5idWZmZXIgaXMgZGVwcmVjYXRlZC4gVXNlIF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciBpbnN0ZWFkLiIsIkRFUDAwMDMiKX0pfWNhdGNoe319KCksImZ1bmN0'@; put 'aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmhhc0luc3RhbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0/KHVlPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShj'@; put 'ZSxTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uKE9lKXtyZXR1cm4hIXVlLmNhbGwodGhpcyxPZSl8fHRoaXM9PT1jZSYmT2UmJk9lLl93cml0YWJsZVN0YXRlIGluc3RhbmNlb2YgaGV9fSkpOnVlPWZ1bmN0aW9uKE9lKXtyZXR1cm4gT2UgaW5zdGFuY2VvZiB0aGlzfSxjZS5w'@; put 'cm90b3R5cGUucGlwZT1mdW5jdGlvbigpe29lKHRoaXMsbmV3IFgpfSxjZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oRmUsT2UsamUpe3ZhciBXZT10aGlzLl93cml0YWJsZVN0YXRlLEtlPSExLFllPSFXZS5vYmplY3RNb2RlJiZmdW5jdGlvbiBLKEZlKXtyZXR1cm4gTy5pc0J1ZmZlcihG'@; put 'ZSl8fEZlIGluc3RhbmNlb2YgUn0oRmUpO3JldHVybiBZZSYmIU8uaXNCdWZmZXIoRmUpJiYoRmU9ZnVuY3Rpb24geihGZSl7cmV0dXJuIE8uZnJvbShGZSl9KEZlKSksImZ1bmN0aW9uIj09dHlwZW9mIE9lJiYoamU9T2UsT2U9bnVsbCksWWU/T2U9ImJ1ZmZlciI6T2V8fChPZT1XZS5kZWZh'@; put 'dWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiBqZSYmKGplPXNlKSxXZS5lbmRpbmc/ZnVuY3Rpb24gRyhGZSxPZSl7dmFyIGplPW5ldyBlZTtvZShGZSxqZSkscHJvY2Vzcy5uZXh0VGljayhPZSxqZSl9KHRoaXMsamUpOihZZXx8ZnVuY3Rpb24gYihGZSxPZSxqZSxXZSl7dmFyIEtl'@; put 'O3JldHVybiBudWxsPT09amU/S2U9bmV3IHE6InN0cmluZyIhPXR5cGVvZiBqZSYmIU9lLm9iamVjdE1vZGUmJihLZT1uZXcgVigiY2h1bmsiLFsic3RyaW5nIiwiQnVmZmVyIl0samUpKSwhS2V8fChvZShGZSxLZSkscHJvY2Vzcy5uZXh0VGljayhXZSxLZSksITEpfSh0aGlzLFdlLEZlLGpl'@; put 'KSkmJihXZS5wZW5kaW5nY2IrKyxLZT1mdW5jdGlvbiBIKEZlLE9lLGplLFdlLEtlLFllKXtpZighamUpe3ZhciBRZT1mdW5jdGlvbiBEKEZlLE9lLGplKXtyZXR1cm4hRmUub2JqZWN0TW9kZSYmITEhPT1GZS5kZWNvZGVTdHJpbmdzJiYic3RyaW5nIj09dHlwZW9mIE9lJiYoT2U9Ty5mcm9t'@; put 'KE9lLGplKSksT2V9KE9lLFdlLEtlKTtXZSE9PVFlJiYoamU9ITAsS2U9ImJ1ZmZlciIsV2U9UWUpfXZhciBsdD1PZS5vYmplY3RNb2RlPzE6V2UubGVuZ3RoO09lLmxlbmd0aCs9bHQ7dmFyIFBlPU9lLmxlbmd0aDxPZS5oaWdoV2F0ZXJNYXJrO2lmKFBlfHwoT2UubmVlZERyYWluPSEwKSxP'@; put 'ZS53cml0aW5nfHxPZS5jb3JrZWQpe3ZhciBiZT1PZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O09lLmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOldlLGVuY29kaW5nOktlLGlzQnVmOmplLGNhbGxiYWNrOlllLG5leHQ6bnVsbH0sYmU/YmUubmV4dD1PZS5sYXN0QnVmZmVyZWRSZXF1ZXN0Ok9l'@; put 'LmJ1ZmZlcmVkUmVxdWVzdD1PZS5sYXN0QnVmZmVyZWRSZXF1ZXN0LE9lLmJ1ZmZlcmVkUmVxdWVzdENvdW50Kz0xfWVsc2UgTihGZSxPZSwhMSxsdCxXZSxLZSxZZSk7cmV0dXJuIFBlfSh0aGlzLFdlLFllLEZlLE9lLGplKSksS2V9LGNlLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhp'@; put 'cy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sY2UucHJvdG90eXBlLnVuY29yaz1mdW5jdGlvbigpe3ZhciBGZT10aGlzLl93cml0YWJsZVN0YXRlO0ZlLmNvcmtlZCYmKEZlLmNvcmtlZC0tLCFGZS53cml0aW5nJiYhRmUuY29ya2VkJiYhRmUuYnVmZmVyUHJvY2Vzc2luZyYmRmUuYnVmZmVy'@; put 'ZWRSZXF1ZXN0JiZ3KHRoaXMsRmUpKX0sY2UucHJvdG90eXBlLnNldERlZmF1bHRFbmNvZGluZz1mdW5jdGlvbihPZSl7aWYoInN0cmluZyI9PXR5cGVvZiBPZSYmKE9lPU9lLnRvTG93ZXJDYXNlKCkpLCEoWyJoZXgiLCJ1dGY4IiwidXRmLTgiLCJhc2NpaSIsImJpbmFyeSIsImJhc2U2NCIs'@; put 'InVjczIiLCJ1Y3MtMiIsInV0ZjE2bGUiLCJ1dGYtMTZsZSIsInJhdyJdLmluZGV4T2YoKE9lKyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IHRlKE9lKTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9T2UsdGhpc30sT2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KGNlLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjZS5wcm90b3R5cGUsIndy'@; put 'aXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxjZS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKEZlLE9lLGplKXtqZShuZXcgQigiX3dyaXRlKCkiKSl9LGNlLnByb3Rv'@; put 'dHlwZS5fd3JpdGV2PW51bGwsY2UucHJvdG90eXBlLmVuZD1mdW5jdGlvbihGZSxPZSxqZSl7dmFyIFdlPXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEZlPyhqZT1GZSxGZT1udWxsLE9lPW51bGwpOiJmdW5jdGlvbiI9PXR5cGVvZiBPZSYmKGplPU9lLE9l'@; put 'PW51bGwpLG51bGwhPUZlJiZ0aGlzLndyaXRlKEZlLE9lKSxXZS5jb3JrZWQmJihXZS5jb3JrZWQ9MSx0aGlzLnVuY29yaygpKSxXZS5lbmRpbmd8fGZ1bmN0aW9uIHhlKEZlLE9lLGplKXtPZS5lbmRpbmc9ITAsZmUoRmUsT2UpLGplJiYoT2UuZmluaXNoZWQ/cHJvY2Vzcy5uZXh0VGljayhq'@; put 'ZSk6RmUub25jZSgiZmluaXNoIixqZSkpLE9lLmVuZGVkPSEwLEZlLndyaXRhYmxlPSExfSh0aGlzLFdlLGplKSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoY2UucHJvdG90eXBlLCJ3cml0YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'X3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjZS5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJv'@; put 'eWVkfSxzZXQ6ZnVuY3Rpb24oT2Upe3RoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD1PZSl9fSksY2UucHJvdG90eXBlLmRlc3Ryb3k9SS5kZXN0cm95LGNlLnByb3RvdHlwZS5fdW5kZXN0cm95PUkudW5kZXN0cm95LGNlLnByb3RvdHlwZS5fZGVz'@; put 'dHJveT1mdW5jdGlvbihGZSxPZSl7T2UoRmUpfX0sMTA0NTc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZTtmdW5jdGlvbiB4KGVlLHRlLG9lKXtyZXR1cm4gdGU9ZnVuY3Rpb24gbShlZSl7dmFyIHRlPWZ1bmN0aW9uIGxlKGVlLHRlKXtpZigib2JqZWN0IiE9dHlwZW9mIGVlfHxu'@; put 'dWxsPT09ZWUpcmV0dXJuIGVlO3ZhciBvZT1lZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW9lKXt2YXIgc2U9b2UuY2FsbChlZSx0ZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIHNlKXJldHVybiBzZTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZl'@; put 'IG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXRlP1N0cmluZzpOdW1iZXIpKGVlKX0oZWUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdGU/dGU6U3RyaW5nKHRlKX0odGUpLHRlIGluIGVlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShl'@; put 'ZSx0ZSx7dmFsdWU6b2UsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplZVt0ZV09b2UsZWV9dmFyIE09Rig1NDYxOCksTz1TeW1ib2woImxhc3RSZXNvbHZlIiksUj1TeW1ib2woImxhc3RSZWplY3QiKSx6PVN5bWJvbCgiZXJyb3IiKSxLPVN5bWJvbCgiZW5k'@; put 'ZWQiKSxJPVN5bWJvbCgibGFzdFByb21pc2UiKSxrPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLEU9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBqKGVlLHRlKXtyZXR1cm57dmFsdWU6ZWUsZG9uZTp0ZX19ZnVuY3Rpb24gVihlZSl7dmFyIHRlPWVlW09dO2lmKG51bGwhPT10ZSl7dmFyIG9l'@; put 'PWVlW0VdLnJlYWQoKTtudWxsIT09b2UmJihlZVtJXT1udWxsLGVlW09dPW51bGwsZWVbUl09bnVsbCx0ZShqKG9lLCExKSkpfX1mdW5jdGlvbiBCKGVlKXtwcm9jZXNzLm5leHRUaWNrKFYsZWUpfXZhciBYPU9iamVjdC5nZXRQcm90b3R5cGVPZihmdW5jdGlvbigpe30pLFU9T2JqZWN0LnNl'@; put 'dFByb3RvdHlwZU9mKCh4KGFlPXtnZXQgc3RyZWFtKCl7cmV0dXJuIHRoaXNbRV19LG5leHQ6ZnVuY3Rpb24oKXt2YXIgdGU9dGhpcyxvZT10aGlzW3pdO2lmKG51bGwhPT1vZSlyZXR1cm4gUHJvbWlzZS5yZWplY3Qob2UpO2lmKHRoaXNbS10pcmV0dXJuIFByb21pc2UucmVzb2x2ZShqKHZv'@; put 'aWQgMCwhMCkpO2lmKHRoaXNbRV0uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihjZSxHKXtwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uKCl7dGVbel0/Ryh0ZVt6XSk6Y2Uoaih2b2lkIDAsITApKX0pfSk7dmFyIGhlLHNlPXRoaXNbSV07aWYoc2UpaGU9bmV3IFByb21p'@; put 'c2UoZnVuY3Rpb24gWShlZSx0ZSl7cmV0dXJuIGZ1bmN0aW9uKG9lLHNlKXtlZS50aGVuKGZ1bmN0aW9uKCl7dGVbS10/b2Uoaih2b2lkIDAsITApKTp0ZVtrXShvZSxzZSl9LHNlKX19KHNlLHRoaXMpKTtlbHNle3ZhciB1ZT10aGlzW0VdLnJlYWQoKTtpZihudWxsIT09dWUpcmV0dXJuIFBy'@; put 'b21pc2UucmVzb2x2ZShqKHVlLCExKSk7aGU9bmV3IFByb21pc2UodGhpc1trXSl9cmV0dXJuIHRoaXNbSV09aGUsaGV9fSxTeW1ib2wuYXN5bmNJdGVyYXRvcixmdW5jdGlvbigpe3JldHVybiB0aGlzfSkseChhZSwicmV0dXJuIixmdW5jdGlvbigpe3ZhciB0ZT10aGlzO3JldHVybiBuZXcg'@; put 'UHJvbWlzZShmdW5jdGlvbihvZSxzZSl7dGVbRV0uZGVzdHJveShudWxsLGZ1bmN0aW9uKGhlKXtoZT9zZShoZSk6b2Uoaih2b2lkIDAsITApKX0pfSl9KSxhZSksWCk7YXQuZXhwb3J0cz1mdW5jdGlvbih0ZSl7dmFyIG9lLHNlPU9iamVjdC5jcmVhdGUoVSwoeChvZT17fSxFLHt2YWx1ZTp0'@; put 'ZSx3cml0YWJsZTohMH0pLHgob2UsTyx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLHgob2UsUix7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLHgob2Useix7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLHgob2UsSyx7dmFsdWU6dGUuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJs'@; put 'ZTohMH0pLHgob2Usayx7dmFsdWU6ZnVuY3Rpb24odWUsY2Upe3ZhciBHPXNlW0VdLnJlYWQoKTtHPyhzZVtJXT1udWxsLHNlW09dPW51bGwsc2VbUl09bnVsbCx1ZShqKEcsITEpKSk6KHNlW09dPXVlLHNlW1JdPWNlKX0sd3JpdGFibGU6ITB9KSxvZSkpO3JldHVybiBzZVtJXT1udWxsLE0o'@; put 'dGUsZnVuY3Rpb24oaGUpe2lmKGhlJiYiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiIT09aGUuY29kZSl7dmFyIHVlPXNlW1JdO3JldHVybiBudWxsIT09dWUmJihzZVtJXT1udWxsLHNlW09dPW51bGwsc2VbUl09bnVsbCx1ZShoZSkpLHZvaWQoc2Vbel09aGUpfXZhciBjZT1zZVtPXTtu'@; put 'dWxsIT09Y2UmJihzZVtJXT1udWxsLHNlW09dPW51bGwsc2VbUl09bnVsbCxjZShqKHZvaWQgMCwhMCkpKSxzZVtLXT0hMH0pLHRlLm9uKCJyZWFkYWJsZSIsQi5iaW5kKG51bGwsc2UpKSxzZX19LDI5NjA6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGFlKEIsWSl7dmFyIFg9'@; put 'T2JqZWN0LmtleXMoQik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIFU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhCKTtZJiYoVT1VLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihCLHEpLmVudW1lcmFi'@; put 'bGV9KSksWC5wdXNoLmFwcGx5KFgsVSl9cmV0dXJuIFh9ZnVuY3Rpb24geChCKXtmb3IodmFyIFk9MTtZPGFyZ3VtZW50cy5sZW5ndGg7WSsrKXt2YXIgWD1udWxsIT1hcmd1bWVudHNbWV0/YXJndW1lbnRzW1ldOnt9O1klMj9hZShPYmplY3QoWCksITApLmZvckVhY2goZnVuY3Rpb24oVSl7'@; put 'bShCLFUsWFtVXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhCLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKFgpKTphZShPYmplY3QoWCkpLmZvckVhY2goZnVuY3Rpb24oVSl7T2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KEIsVSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFgsVSkpfSl9cmV0dXJuIEJ9ZnVuY3Rpb24gbShCLFksWCl7cmV0dXJuKFk9UihZKSlpbiBCP09iamVjdC5kZWZpbmVQcm9wZXJ0eShCLFkse3ZhbHVlOlgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6'@; put 'ITB9KTpCW1ldPVgsQn1mdW5jdGlvbiBNKEIsWSl7Zm9yKHZhciBYPTA7WDxZLmxlbmd0aDtYKyspe3ZhciBVPVlbWF07VS5lbnVtZXJhYmxlPVUuZW51bWVyYWJsZXx8ITEsVS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIFUmJihVLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkoQixSKFUua2V5KSxVKX19ZnVuY3Rpb24gUihCKXt2YXIgWT1mdW5jdGlvbiB6KEIsWSl7aWYoIm9iamVjdCIhPXR5cGVvZiBCfHxudWxsPT09QilyZXR1cm4gQjt2YXIgWD1CW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09WCl7dmFyIFU9WC5jYWxsKEIsWXx8ImRlZmF1bHQi'@; put 'KTtpZigib2JqZWN0IiE9dHlwZW9mIFUpcmV0dXJuIFU7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1ZP1N0cmluZzpOdW1iZXIpKEIpfShCLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9s'@; put 'Ij09dHlwZW9mIFk/WTpTdHJpbmcoWSl9dmFyIEk9RigzOTAwNykuQnVmZmVyLEU9Rig1MjM2MSkuaW5zcGVjdCxqPUUmJkUuY3VzdG9tfHwiaW5zcGVjdCI7ZnVuY3Rpb24gVihCLFksWCl7SS5wcm90b3R5cGUuY29weS5jYWxsKEIsWSxYKX1hdC5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rp'@; put 'b24gQigpeyhmdW5jdGlvbiBsZShCLFkpe2lmKCEoQiBpbnN0YW5jZW9mIFkpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxCKSx0aGlzLmhlYWQ9bnVsbCx0aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfXJldHVybiBm'@; put 'dW5jdGlvbiBPKEIsWSxYKXtZJiZNKEIucHJvdG90eXBlLFkpLFgmJk0oQixYKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oQixbe2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24oWCl7dmFyIFU9e2RhdGE6WCxuZXh0Om51bGx9O3RoaXMubGVu'@; put 'Z3RoPjA/dGhpcy50YWlsLm5leHQ9VTp0aGlzLmhlYWQ9VSx0aGlzLnRhaWw9VSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oWCl7dmFyIFU9e2RhdGE6WCxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPVUpLHRoaXMuaGVh'@; put 'ZD1VLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBYPXRoaXMuaGVhZC5kYXRhO3JldHVybiB0aGlzLmhlYWQ9MT09PXRoaXMubGVuZ3RoP3RoaXMudGFpbD1udWxsOnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5n'@; put 'dGgsWH19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH19LHtrZXk6ImpvaW4iLHZhbHVlOmZ1bmN0aW9uKFgpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIFU9dGhpcy5oZWFkLHE9IiIrVS5k'@; put 'YXRhO1U9VS5uZXh0OylxKz1YK1UuZGF0YTtyZXR1cm4gcX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oWCl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBJLmFsbG9jKDApO2Zvcih2YXIgVT1JLmFsbG9jVW5zYWZlKFg+Pj4wKSxxPXRoaXMuaGVhZCxlZT0wO3E7KVYocS5kYXRh'@; put 'LFUsZWUpLGVlKz1xLmRhdGEubGVuZ3RoLHE9cS5uZXh0O3JldHVybiBVfX0se2tleToiY29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24oWCxVKXt2YXIgcTtyZXR1cm4gWDx0aGlzLmhlYWQuZGF0YS5sZW5ndGg/KHE9dGhpcy5oZWFkLmRhdGEuc2xpY2UoMCxYKSx0aGlzLmhlYWQuZGF0YT10aGlz'@; put 'LmhlYWQuZGF0YS5zbGljZShYKSk6cT1YPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTpVP3RoaXMuX2dldFN0cmluZyhYKTp0aGlzLl9nZXRCdWZmZXIoWCkscX19LHtrZXk6ImZpcnN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlYWQuZGF0YX19LHtrZXk6'@; put 'Il9nZXRTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKFgpe3ZhciBVPXRoaXMuaGVhZCxxPTEsZWU9VS5kYXRhO2ZvcihYLT1lZS5sZW5ndGg7VT1VLm5leHQ7KXt2YXIgdGU9VS5kYXRhLG9lPVg+dGUubGVuZ3RoP3RlLmxlbmd0aDpYO2lmKGVlKz1vZT09PXRlLmxlbmd0aD90ZTp0ZS5zbGljZSgw'@; put 'LFgpLDA9PShYLT1vZSkpe29lPT09dGUubGVuZ3RoPygrK3EsdGhpcy5oZWFkPVUubmV4dD9VLm5leHQ6dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9VSxVLmRhdGE9dGUuc2xpY2Uob2UpKTticmVha30rK3F9cmV0dXJuIHRoaXMubGVuZ3RoLT1xLGVlfX0se2tleToiX2dldEJ1ZmZlciIs'@; put 'dmFsdWU6ZnVuY3Rpb24oWCl7dmFyIFU9SS5hbGxvY1Vuc2FmZShYKSxxPXRoaXMuaGVhZCxlZT0xO2ZvcihxLmRhdGEuY29weShVKSxYLT1xLmRhdGEubGVuZ3RoO3E9cS5uZXh0Oyl7dmFyIHRlPXEuZGF0YSxvZT1YPnRlLmxlbmd0aD90ZS5sZW5ndGg6WDtpZih0ZS5jb3B5KFUsVS5sZW5n'@; put 'dGgtWCwwLG9lKSwwPT0oWC09b2UpKXtvZT09PXRlLmxlbmd0aD8oKytlZSx0aGlzLmhlYWQ9cS5uZXh0P3EubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1xLHEuZGF0YT10ZS5zbGljZShvZSkpO2JyZWFrfSsrZWV9cmV0dXJuIHRoaXMubGVuZ3RoLT1lZSxVfX0se2tleTpqLHZh'@; put 'bHVlOmZ1bmN0aW9uKFgsVSl7cmV0dXJuIEUodGhpcyx4KHgoe30sVSkse30se2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSksQn0oKX0sNjU2MDE6YXQ9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRihNLE8pe20oTSxPKSxhZShNKX1mdW5jdGlvbiBhZShNKXtNLl93cml0YWJsZVN0'@; put 'YXRlJiYhTS5fd3JpdGFibGVTdGF0ZS5lbWl0Q2xvc2V8fE0uX3JlYWRhYmxlU3RhdGUmJiFNLl9yZWFkYWJsZVN0YXRlLmVtaXRDbG9zZXx8TS5lbWl0KCJjbG9zZSIpfWZ1bmN0aW9uIG0oTSxPKXtNLmVtaXQoImVycm9yIixPKX1hdC5leHBvcnRzPXtkZXN0cm95OmZ1bmN0aW9uIEllKE0s'@; put 'Tyl7dmFyIFI9dGhpcztyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR8fHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPyhPP08oTSk6TSYmKHRoaXMuX3dyaXRhYmxlU3RhdGU/dGhpcy5fd3Jp'@; put 'dGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fCh0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxwcm9jZXNzLm5leHRUaWNrKG0sdGhpcyxNKSk6cHJvY2Vzcy5uZXh0VGljayhtLHRoaXMsTSkpLHRoaXMpOih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0'@; put 'ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveShNfHxudWxsLGZ1bmN0aW9uKEkpeyFPJiZJP1IuX3dyaXRhYmxlU3RhdGU/Ui5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ/cHJvY2Vz'@; put 'cy5uZXh0VGljayhhZSxSKTooUi5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhGLFIsSSkpOnByb2Nlc3MubmV4dFRpY2soRixSLEkpOk8/KHByb2Nlc3MubmV4dFRpY2soYWUsUiksTyhJKSk6cHJvY2Vzcy5uZXh0VGljayhhZSxSKX0pLHRoaXMpfSx1'@; put 'bmRlc3Ryb3k6ZnVuY3Rpb24geCgpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0'@; put 'ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhpcy5fd3Jp'@; put 'dGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24gbGUoTSxPKXt2YXIgUj1NLl9yZWFkYWJsZVN0YXRlLHo9TS5fd3JpdGFibGVT'@; put 'dGF0ZTtSJiZSLmF1dG9EZXN0cm95fHx6JiZ6LmF1dG9EZXN0cm95P00uZGVzdHJveShPKTpNLmVtaXQoImVycm9yIixPKX19fSw1NDYxODooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoOTcyMTgpLnEuRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0U7ZnVuY3Rpb24gbSgpe31h'@; put 'dC5leHBvcnRzPWZ1bmN0aW9uIE0oTyxSLHope2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBSKXJldHVybiBNKE8sbnVsbCxSKTtSfHwoUj17fSksej1mdW5jdGlvbiB4KE8pe3ZhciBSPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFSKXtSPSEwO2Zvcih2YXIgej1hcmd1bWVudHMubGVuZ3RoLEs9'@; put 'bmV3IEFycmF5KHopLEk9MDtJPHo7SSsrKUtbSV09YXJndW1lbnRzW0ldO08uYXBwbHkodGhpcyxLKX19fSh6fHxtKTt2YXIgSz1SLnJlYWRhYmxlfHwhMSE9PVIucmVhZGFibGUmJk8ucmVhZGFibGUsST1SLndyaXRhYmxlfHwhMSE9PVIud3JpdGFibGUmJk8ud3JpdGFibGUsaz1mdW5jdGlv'@; put 'bigpe08ud3JpdGFibGV8fGooKX0sRT1PLl93cml0YWJsZVN0YXRlJiZPLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLGo9ZnVuY3Rpb24oKXtJPSExLEU9ITAsS3x8ei5jYWxsKE8pfSxWPU8uX3JlYWRhYmxlU3RhdGUmJk8uX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxCPWZ1bmN0aW9uKCl7'@; put 'Sz0hMSxWPSEwLEl8fHouY2FsbChPKX0sWT1mdW5jdGlvbihlZSl7ei5jYWxsKE8sZWUpfSxYPWZ1bmN0aW9uKCl7dmFyIGVlO3JldHVybiBLJiYhVj8oKCFPLl9yZWFkYWJsZVN0YXRlfHwhTy5fcmVhZGFibGVTdGF0ZS5lbmRlZCkmJihlZT1uZXcgYWUpLHouY2FsbChPLGVlKSk6SSYmIUU/'@; put 'KCghTy5fd3JpdGFibGVTdGF0ZXx8IU8uX3dyaXRhYmxlU3RhdGUuZW5kZWQpJiYoZWU9bmV3IGFlKSx6LmNhbGwoTyxlZSkpOnZvaWQgMH0sVT1mdW5jdGlvbigpe08ucmVxLm9uKCJmaW5pc2giLGopfTtyZXR1cm4gZnVuY3Rpb24gbGUoTyl7cmV0dXJuIE8uc2V0SGVhZGVyJiYiZnVuY3Rp'@; put 'b24iPT10eXBlb2YgTy5hYm9ydH0oTyk/KE8ub24oImNvbXBsZXRlIixqKSxPLm9uKCJhYm9ydCIsWCksTy5yZXE/VSgpOk8ub24oInJlcXVlc3QiLFUpKTpJJiYhTy5fd3JpdGFibGVTdGF0ZSYmKE8ub24oImVuZCIsayksTy5vbigiY2xvc2UiLGspKSxPLm9uKCJlbmQiLEIpLE8ub24oImZp'@; put 'bmlzaCIsaiksITEhPT1SLmVycm9yJiZPLm9uKCJlcnJvciIsWSksTy5vbigiY2xvc2UiLFgpLGZ1bmN0aW9uKCl7Ty5yZW1vdmVMaXN0ZW5lcigiY29tcGxldGUiLGopLE8ucmVtb3ZlTGlzdGVuZXIoImFib3J0IixYKSxPLnJlbW92ZUxpc3RlbmVyKCJyZXF1ZXN0IixVKSxPLnJlcSYmTy5y'@; put 'ZXEucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsaiksTy5yZW1vdmVMaXN0ZW5lcigiZW5kIixrKSxPLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsayksTy5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixqKSxPLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEIpLE8ucmVtb3ZlTGlzdGVuZXIoImVycm9yIixZ'@; put 'KSxPLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsWCl9fX0sMzMzMzU6YXQ9PnthdC5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJSZWFkYWJsZS5mcm9tIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJyb3dzZXIiKX19LDg0NTE0OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2'@; put 'YXIgYWUsbT1GKDk3MjE4KS5xLGxlPW0uRVJSX01JU1NJTkdfQVJHUyxNPW0uRVJSX1NUUkVBTV9ERVNUUk9ZRUQ7ZnVuY3Rpb24gTyhqKXtpZihqKXRocm93IGp9ZnVuY3Rpb24gSyhqKXtqKCl9ZnVuY3Rpb24gSShqLFYpe3JldHVybiBqLnBpcGUoVil9YXQuZXhwb3J0cz1mdW5jdGlvbiBF'@; put 'KCl7Zm9yKHZhciBqPWFyZ3VtZW50cy5sZW5ndGgsVj1uZXcgQXJyYXkoaiksQj0wO0I8ajtCKyspVltCXT1hcmd1bWVudHNbQl07dmFyIFk9ZnVuY3Rpb24gayhqKXtyZXR1cm4gai5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBqW2oubGVuZ3RoLTFdP2oucG9wKCk6T30oVik7aWYoQXJy'@; put 'YXkuaXNBcnJheShWWzBdKSYmKFY9VlswXSksVi5sZW5ndGg8Mil0aHJvdyBuZXcgbGUoInN0cmVhbXMiKTt2YXIgWCxVPVYubWFwKGZ1bmN0aW9uKHEsZWUpe3ZhciB0ZT1lZTxWLmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbiB6KGosVixCLFkpe1k9ZnVuY3Rpb24geChqKXt2YXIgVj0hMTty'@; put 'ZXR1cm4gZnVuY3Rpb24oKXtWfHwoVj0hMCxqLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpKX19KFkpO3ZhciBYPSExO2oub24oImNsb3NlIixmdW5jdGlvbigpe1g9ITB9KSx2b2lkIDA9PT1hZSYmKGFlPUYoNTQ2MTgpKSxhZShqLHtyZWFkYWJsZTpWLHdyaXRhYmxlOkJ9LGZ1bmN0aW9uKHEp'@; put 'e2lmKHEpcmV0dXJuIFkocSk7WD0hMCxZKCl9KTt2YXIgVT0hMTtyZXR1cm4gZnVuY3Rpb24ocSl7aWYoIVgmJiFVKXtpZihVPSEwLGZ1bmN0aW9uIFIoail7cmV0dXJuIGouc2V0SGVhZGVyJiYiZnVuY3Rpb24iPT10eXBlb2Ygai5hYm9ydH0oaikpcmV0dXJuIGouYWJvcnQoKTtpZigiZnVu'@; put 'Y3Rpb24iPT10eXBlb2Ygai5kZXN0cm95KXJldHVybiBqLmRlc3Ryb3koKTtZKHF8fG5ldyBNKCJwaXBlIikpfX19KHEsdGUsZWU+MCxmdW5jdGlvbihzZSl7WHx8KFg9c2UpLHNlJiZVLmZvckVhY2goSyksIXRlJiYoVS5mb3JFYWNoKEspLFkoWCkpfSl9KTtyZXR1cm4gVi5yZWR1Y2UoSSl9'@; put 'fSw3ODc4MjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoOTcyMTgpLnEuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO2F0LmV4cG9ydHM9e2dldEhpZ2hXYXRlck1hcms6ZnVuY3Rpb24gbShsZSxNLE8sUil7dmFyIHo9ZnVuY3Rpb24geChsZSxNLE8pe3JldHVybiBudWxsIT1sZS5o'@; put 'aWdoV2F0ZXJNYXJrP2xlLmhpZ2hXYXRlck1hcms6TT9sZVtPXTpudWxsfShNLFIsTyk7aWYobnVsbCE9eil7aWYoIWlzRmluaXRlKHopfHxNYXRoLmZsb29yKHopIT09enx8ejwwKXRocm93IG5ldyBhZShSP086ImhpZ2hXYXRlck1hcmsiLHopO3JldHVybiBNYXRoLmZsb29yKHopfXJldHVy'@; put 'biBsZS5vYmplY3RNb2RlPzE2OjE2Mzg0fX19LDc4MjQwOihhdCxJZSxGKT0+e2F0LmV4cG9ydHM9Rig4MjAxNikuRXZlbnRFbWl0dGVyfSw5Njc0NTooYXQsSWUsRik9PnsoSWU9YXQuZXhwb3J0cz1GKDgwMzA5KSkuU3RyZWFtPUllLEllLlJlYWRhYmxlPUllLEllLldyaXRhYmxlPUYoNTY1'@; put 'NjMpLEllLkR1cGxleD1GKDcwMjQ3KSxJZS5UcmFuc2Zvcm09RigxNjMwNyksSWUuUGFzc1Rocm91Z2g9Rig5NTA5NiksSWUuZmluaXNoZWQ9Rig1NDYxOCksSWUucGlwZWxpbmU9Rig4NDUxNCl9LDM5NzA2OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigzOTAwNykuQnVmZmVy'@; put 'LHg9Rig2NjY5OCksbT1GKDYwMzgwKSxsZT1uZXcgQXJyYXkoMTYpLE09WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwx'@; put 'MCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sTz1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5'@; put 'LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxSPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIs'@; put 'MTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSx6PVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4'@; put 'LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1'@; put 'LDEzLDExLDExXSxLPVswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdLEk9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gaygpe20uY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5f'@; put 'Yj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjB9ZnVuY3Rpb24gRShVLHEpe3JldHVybiBVPDxxfFU+Pj4zMi1xfWZ1bmN0aW9uIGooVSxxLGVlLHRlLG9lLHNlLGhlLHVlKXtyZXR1cm4gRShVKyhxXmVlXnRlKStzZSto'@; put 'ZXwwLHVlKStvZXwwfWZ1bmN0aW9uIFYoVSxxLGVlLHRlLG9lLHNlLGhlLHVlKXtyZXR1cm4gRShVKyhxJmVlfH5xJnRlKStzZStoZXwwLHVlKStvZXwwfWZ1bmN0aW9uIEIoVSxxLGVlLHRlLG9lLHNlLGhlLHVlKXtyZXR1cm4gRShVKygocXx+ZWUpXnRlKStzZStoZXwwLHVlKStvZXwwfWZ1'@; put 'bmN0aW9uIFkoVSxxLGVlLHRlLG9lLHNlLGhlLHVlKXtyZXR1cm4gRShVKyhxJnRlfGVlJn50ZSkrc2UraGV8MCx1ZSkrb2V8MH1mdW5jdGlvbiBYKFUscSxlZSx0ZSxvZSxzZSxoZSx1ZSl7cmV0dXJuIEUoVSsocV4oZWV8fnRlKSkrc2UraGV8MCx1ZSkrb2V8MH14KGssbSksay5wcm90b3R5'@; put 'cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgVT1sZSxxPTA7cTwxNjsrK3EpVVtxXT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KnEpO2Zvcih2YXIgZWU9MHx0aGlzLl9hLHRlPTB8dGhpcy5fYixvZT0wfHRoaXMuX2Msc2U9MHx0aGlzLl9kLGhlPTB8dGhpcy5fZSx1ZT0wfHRoaXMu'@; put 'X2EsY2U9MHx0aGlzLl9iLEc9MHx0aGlzLl9jLGI9MHx0aGlzLl9kLEQ9MHx0aGlzLl9lLEg9MDtIPDgwO0grPTEpe3ZhciBOLGc7SDwxNj8oTj1qKGVlLHRlLG9lLHNlLGhlLFVbTVtIXV0sS1swXSxSW0hdKSxnPVgodWUsY2UsRyxiLEQsVVtPW0hdXSxJWzBdLHpbSF0pKTpIPDMyPyhOPVYo'@; put 'ZWUsdGUsb2Usc2UsaGUsVVtNW0hdXSxLWzFdLFJbSF0pLGc9WSh1ZSxjZSxHLGIsRCxVW09bSF1dLElbMV0seltIXSkpOkg8NDg/KE49QihlZSx0ZSxvZSxzZSxoZSxVW01bSF1dLEtbMl0sUltIXSksZz1CKHVlLGNlLEcsYixELFVbT1tIXV0sSVsyXSx6W0hdKSk6SDw2ND8oTj1ZKGVlLHRl'@; put 'LG9lLHNlLGhlLFVbTVtIXV0sS1szXSxSW0hdKSxnPVYodWUsY2UsRyxiLEQsVVtPW0hdXSxJWzNdLHpbSF0pKTooTj1YKGVlLHRlLG9lLHNlLGhlLFVbTVtIXV0sS1s0XSxSW0hdKSxnPWoodWUsY2UsRyxiLEQsVVtPW0hdXSxJWzRdLHpbSF0pKSxlZT1oZSxoZT1zZSxzZT1FKG9lLDEwKSxv'@; put 'ZT10ZSx0ZT1OLHVlPUQsRD1iLGI9RShHLDEwKSxHPWNlLGNlPWd9dmFyIEM9dGhpcy5fYitvZStifDA7dGhpcy5fYj10aGlzLl9jK3NlK0R8MCx0aGlzLl9jPXRoaXMuX2QraGUrdWV8MCx0aGlzLl9kPXRoaXMuX2UrZWUrY2V8MCx0aGlzLl9lPXRoaXMuX2ErdGUrR3wwLHRoaXMuX2E9Q30s'@; put 'ay5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9'@; put 'MCksdGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciBVPWFlLmFsbG9j'@; put 'P2FlLmFsbG9jKDIwKTpuZXcgYWUoMjApO3JldHVybiBVLndyaXRlSW50MzJMRSh0aGlzLl9hLDApLFUud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksVS53cml0ZUludDMyTEUodGhpcy5fYyw4KSxVLndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSxVLndyaXRlSW50MzJMRSh0aGlzLl9lLDE2KSxV'@; put 'fSxhdC5leHBvcnRzPWt9LDg0MzooYXQsSWUsRik9Pnt2YXIgYWU9RigzOTAwNykseD1hZS5CdWZmZXI7ZnVuY3Rpb24gbShNLE8pe2Zvcih2YXIgUiBpbiBNKU9bUl09TVtSXX1mdW5jdGlvbiBsZShNLE8sUil7cmV0dXJuIHgoTSxPLFIpfXguZnJvbSYmeC5hbGxvYyYmeC5hbGxvY1Vuc2Fm'@; put 'ZSYmeC5hbGxvY1Vuc2FmZVNsb3c/YXQuZXhwb3J0cz1hZToobShhZSxJZSksSWUuQnVmZmVyPWxlKSxsZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4LnByb3RvdHlwZSksbSh4LGxlKSxsZS5mcm9tPWZ1bmN0aW9uKE0sTyxSKXtpZigibnVtYmVyIj09dHlwZW9mIE0pdGhyb3cgbmV3IFR5'@; put 'cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4geChNLE8sUil9LGxlLmFsbG9jPWZ1bmN0aW9uKE0sTyxSKXtpZigibnVtYmVyIiE9dHlwZW9mIE0pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciB6PXgoTSk7'@; put 'cmV0dXJuIHZvaWQgMCE9PU8/InN0cmluZyI9PXR5cGVvZiBSP3ouZmlsbChPLFIpOnouZmlsbChPKTp6LmZpbGwoMCksen0sbGUuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oTSl7aWYoIm51bWJlciIhPXR5cGVvZiBNKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1i'@; put 'ZXIiKTtyZXR1cm4geChNKX0sbGUuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKE0pe2lmKCJudW1iZXIiIT10eXBlb2YgTSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGFlLlNsb3dCdWZmZXIoTSl9fSwyNDE3OTooYXQsSWUsRik9Pnsi'@; put 'dXNlIHN0cmljdCI7dmFyIGxlLGFlPUYoMzkwMDcpLHg9YWUuQnVmZmVyLG09e307Zm9yKGxlIGluIGFlKWFlLmhhc093blByb3BlcnR5KGxlKSYmKCJTbG93QnVmZmVyIj09PWxlfHwiQnVmZmVyIj09PWxlfHwobVtsZV09YWVbbGVdKSk7dmFyIE09bS5CdWZmZXI9e307Zm9yKGxlIGluIHgp'@; put 'eC5oYXNPd25Qcm9wZXJ0eShsZSkmJigiYWxsb2NVbnNhZmUiPT09bGV8fCJhbGxvY1Vuc2FmZVNsb3ciPT09bGV8fChNW2xlXT14W2xlXSkpO2lmKG0uQnVmZmVyLnByb3RvdHlwZT14LnByb3RvdHlwZSwoIU0uZnJvbXx8TS5mcm9tPT09VWludDhBcnJheS5mcm9tKSYmKE0uZnJvbT1mdW5j'@; put 'dGlvbihPLFIseil7aWYoIm51bWJlciI9PXR5cGVvZiBPKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIE8pO2lmKE8mJnR5cGVvZiBPLmxlbmd0aD4idSIpdGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgTyk7cmV0dXJuIHgoTyxSLHopfSksTS5hbGxvY3x8KE0u'@; put 'YWxsb2M9ZnVuY3Rpb24oTyxSLHope2lmKCJudW1iZXIiIT10eXBlb2YgTyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgTyk7aWYoTzwwfHxPPj0yKigxPDwzMCkpdGhyb3cgbmV3'@; put 'IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytPKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgSz14KE8pO3JldHVybiBSJiYwIT09Ui5sZW5ndGg/InN0cmluZyI9PXR5cGVvZiB6P0suZmlsbChSLHopOksuZmlsbChSKTpLLmZpbGwoMCksS30pLCFtLmtTdHJpbmdNYXhM'@; put 'ZW5ndGgpdHJ5e20ua1N0cmluZ01heExlbmd0aD1wcm9jZXNzLmJpbmRpbmcoImJ1ZmZlciIpLmtTdHJpbmdNYXhMZW5ndGh9Y2F0Y2h7fW0uY29uc3RhbnRzfHwobS5jb25zdGFudHM9e01BWF9MRU5HVEg6bS5rTWF4TGVuZ3RofSxtLmtTdHJpbmdNYXhMZW5ndGgmJihtLmNvbnN0YW50cy5N'@; put 'QVhfU1RSSU5HX0xFTkdUSD1tLmtTdHJpbmdNYXhMZW5ndGgpKSxhdC5leHBvcnRzPW19LDg4NzAwOihhdCxJZSk9PnsidXNlIHN0cmljdCI7dmFyIGFlOyFmdW5jdGlvbigpe3ZhciB4PUllfHx7fTt2b2lkIDAhPT0oYWU9ZnVuY3Rpb24oKXtyZXR1cm4geH0uYXBwbHkoSWUsW10pKSYmKGF0'@; put 'LmV4cG9ydHM9YWUpLHguZGVmYXVsdD14O3ZhciBtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIsTT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLFI9L3VybFwoWyInXT8oLis/KVsiJ10/XCkvLHo9e3dvZmYyOiJmb250L3dvZmYyIix3b2ZmOiJmb250L3dvZmYiLG90Zjoi'@; put 'YXBwbGljYXRpb24veC1mb250LW9wZW50eXBlIix0dGY6ImFwcGxpY2F0aW9uL3gtZm9udC10dGYiLGVvdDoiYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QiLHNmbnQ6ImFwcGxpY2F0aW9uL2ZvbnQtc2ZudCIsc3ZnOiJpbWFnZS9zdmcreG1sIn0sSz1mdW5jdGlvbihEKXtyZXR1cm4g'@; put 'RCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHxEIGluc3RhbmNlb2YgU1ZHRWxlbWVudH0sST1mdW5jdGlvbihEKXtpZighSyhEKSl0aHJvdyBuZXcgRXJyb3IoImFuIEhUTUxFbGVtZW50IG9yIFNWR0VsZW1lbnQgaXMgcmVxdWlyZWQ7IGdvdCAiK0QpfSxrPWZ1bmN0aW9uKEQpe3JldHVybiBu'@; put 'ZXcgUHJvbWlzZShmdW5jdGlvbihILE4pe0soRCk/SChEKTpOKG5ldyBFcnJvcigiYW4gSFRNTEVsZW1lbnQgb3IgU1ZHRWxlbWVudCBpcyByZXF1aXJlZDsgZ290ICIrRCkpfSl9LGo9ZnVuY3Rpb24oRCl7dmFyIEg9T2JqZWN0LmtleXMoeikuZmlsdGVyKGZ1bmN0aW9uKE4pe3JldHVybiBE'@; put 'LmluZGV4T2YoIi4iK04pPjB9KS5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIHpbTl19KTtyZXR1cm4gSD9IWzBdOihjb25zb2xlLmVycm9yKCJVbmtub3duIGZvbnQgZm9ybWF0IGZvciAiK0QrIi4gRm9udHMgbWF5IG5vdCBiZSB3b3JraW5nIGNvcnJlY3RseS4iKSwiYXBwbGljYXRpb24vb2N0'@; put 'ZXQtc3RyZWFtIil9LEI9ZnVuY3Rpb24oRCxILE4pe3ZhciBnPUQudmlld0JveCYmRC52aWV3Qm94LmJhc2VWYWwmJkQudmlld0JveC5iYXNlVmFsW05dfHxudWxsIT09SC5nZXRBdHRyaWJ1dGUoTikmJiFILmdldEF0dHJpYnV0ZShOKS5tYXRjaCgvJSQvKSYmcGFyc2VJbnQoSC5nZXRBdHRy'@; put 'aWJ1dGUoTikpfHxELmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW05dfHxwYXJzZUludChILnN0eWxlW05dKXx8cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoRCkuZ2V0UHJvcGVydHlWYWx1ZShOKSk7cmV0dXJuIHR5cGVvZiBnPiJ1Inx8bnVsbD09PWd8fGlzTmFOKHBhcnNlRmxv'@; put 'YXQoZykpPzA6Z30sVT1mdW5jdGlvbihEKXtmb3IodmFyIEg9d2luZG93LmF0b2IoRC5zcGxpdCgiLCIpWzFdKSxOPUQuc3BsaXQoIiwiKVswXS5zcGxpdCgiOiIpWzFdLnNwbGl0KCI7IilbMF0sZz1uZXcgQXJyYXlCdWZmZXIoSC5sZW5ndGgpLEM9bmV3IFVpbnQ4QXJyYXkoZyksUz0wO1M8'@; put 'SC5sZW5ndGg7UysrKUNbU109SC5jaGFyQ29kZUF0KFMpO3JldHVybiBuZXcgQmxvYihbZ10se3R5cGU6Tn0pfSxvZT17fSxoZT1udWxsLGNlPWZ1bmN0aW9uKEQsSCl7dmFyIE49SHx8e30sZz1OLnNlbGVjdG9yUmVtYXAsQz1OLm1vZGlmeVN0eWxlLHY9Ti5mb250cyxwPU4uZXhjbHVkZVVu'@; put 'dXNlZENzcyx3PU4ubW9kaWZ5Q3NzfHxmdW5jdGlvbihmZSx4ZSl7cmV0dXJuKGc/ZyhmZSk6ZmUpKyJ7IisoQz9DKHhlKTp4ZSkrIn1cbiJ9LEo9W10sbmU9dHlwZW9mIHY+InUiLGRlPXZ8fFtdO3JldHVybihoZXx8KGhlPUFycmF5LmZyb20oZG9jdW1lbnQuc3R5bGVTaGVldHMpLm1hcChm'@; put 'dW5jdGlvbihEKXt0cnl7cmV0dXJue3J1bGVzOkQuY3NzUnVsZXMsaHJlZjpELmhyZWZ9fWNhdGNoKEgpe3JldHVybiBjb25zb2xlLndhcm4oIlN0eWxlc2hlZXQgY291bGQgbm90IGJlIGxvYWRlZDogIitELmhyZWYsSCkse319fSkpKS5mb3JFYWNoKGZ1bmN0aW9uKGZlKXt2YXIgeGU9ZmUu'@; put 'cnVsZXMsTGU9ZmUuaHJlZjt4ZSYmQXJyYXkuZnJvbSh4ZSkuZm9yRWFjaChmdW5jdGlvbihGZSl7aWYodHlwZW9mIEZlLnN0eWxlPCJ1IilpZihmdW5jdGlvbihELEgpe2lmKEgpdHJ5e3JldHVybiBELnF1ZXJ5U2VsZWN0b3IoSCl8fEQucGFyZW50Tm9kZSYmRC5wYXJlbnROb2RlLnF1ZXJ5'@; put 'U2VsZWN0b3IoSCl9Y2F0Y2goTil7Y29uc29sZS53YXJuKCdJbnZhbGlkIENTUyBzZWxlY3RvciAiJytIKyciJyxOKX19KEQsRmUuc2VsZWN0b3JUZXh0KSlKLnB1c2godyhGZS5zZWxlY3RvclRleHQsRmUuc3R5bGUuY3NzVGV4dCkpO2Vsc2UgaWYobmUmJkZlLmNzc1RleHQubWF0Y2goL15A'@; put 'Zm9udC1mYWNlLykpe3ZhciBPZT1mdW5jdGlvbihELEgpe3ZhciBOPUQuY3NzVGV4dC5tYXRjaChSKSxnPU4mJk5bMV18fCIiO2lmKGcmJiFnLm1hdGNoKC9eZGF0YTovKSYmImFib3V0OmJsYW5rIiE9PWcpe3ZhciBDPWcuc3RhcnRzV2l0aCgiLi4vIik/SCsiLy4uLyIrZzpnLnN0YXJ0c1dp'@; put 'dGgoIi4vIik/SCsiLy4iK2c6ZztyZXR1cm57dGV4dDpELmNzc1RleHQsZm9ybWF0OmooQyksdXJsOkN9fX0oRmUsTGUpO09lJiZkZS5wdXNoKE9lKX1lbHNlIHB8fEoucHVzaChGZS5jc3NUZXh0KX0pfSksZnVuY3Rpb24oRCl7cmV0dXJuIFByb21pc2UuYWxsKEQubWFwKGZ1bmN0aW9uKEgp'@; put 'e3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihOLGcpe2lmKG9lW0gudXJsXSlyZXR1cm4gTihvZVtILnVybF0pO3ZhciBDPW5ldyBYTUxIdHRwUmVxdWVzdDtDLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIFM9ZnVuY3Rpb24oRCl7Zm9yKHZhciBIPSIiLE49bmV3'@; put 'IFVpbnQ4QXJyYXkoRCksZz0wO2c8Ti5ieXRlTGVuZ3RoO2crKylIKz1TdHJpbmcuZnJvbUNoYXJDb2RlKE5bZ10pO3JldHVybiB3aW5kb3cuYnRvYShIKX0oQy5yZXNwb25zZSksdj1ILnRleHQucmVwbGFjZShSLCd1cmwoImRhdGE6JytILmZvcm1hdCsiO2Jhc2U2NCwiK1MrJyIpJykrIlxu'@; put 'IjtvZVtILnVybF09dixOKHYpfSksQy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oUyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gbG9hZCBmb250IGZyb206ICIrSC51cmwsUyksb2VbSC51cmxdPW51bGwsTihudWxsKX0pLEMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGZ1'@; put 'bmN0aW9uKFMpe2NvbnNvbGUud2FybigiQWJvcnRlZCBsb2FkaW5nIGZvbnQgZnJvbTogIitILnVybCxTKSxOKG51bGwpfSksQy5vcGVuKCJHRVQiLEgudXJsKSxDLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLEMuc2VuZCgpfSl9KSkudGhlbihmdW5jdGlvbihIKXtyZXR1cm4gSC5maWx0'@; put 'ZXIoZnVuY3Rpb24oTil7cmV0dXJuIE59KS5qb2luKCIiKX0pfShkZSkudGhlbihmdW5jdGlvbihmZSl7cmV0dXJuIEouam9pbigiXG4iKStmZX0pfSxHPWZ1bmN0aW9uKCl7aWYoIW5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iJiYhKCJkb3dubG9hZCJpbiBkb2N1bWVudC5jcmVhdGVFbGVt'@; put 'ZW50KCJhIikpKXJldHVybntwb3B1cDp3aW5kb3cub3BlbigpfX07eC5wcmVwYXJlU3ZnPWZ1bmN0aW9uKGIsRCxIKXtJKGIpO3ZhciBOPUR8fHt9LGc9Ti5sZWZ0LEM9dm9pZCAwPT09Zz8wOmcsUz1OLnRvcCx2PXZvaWQgMD09PVM/MDpTLHA9Ti53aWR0aCx3PU4uaGVpZ2h0LEo9Ti5zY2Fs'@; put 'ZSxuZT12b2lkIDA9PT1KPzE6SixkZT1OLnJlc3BvbnNpdmUsZmU9dm9pZCAwIT09ZGUmJmRlLHhlPU4uZXhjbHVkZUNzcyxMZT12b2lkIDAhPT14ZSYmeGU7cmV0dXJuIGZ1bmN0aW9uKEQpe3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKEQucXVlcnlTZWxlY3RvckFsbCgiaW1hZ2Ui'@; put 'KSkubWFwKGZ1bmN0aW9uKEgpe3ZhciBOPUguZ2V0QXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJocmVmIil8fEguZ2V0QXR0cmlidXRlKCJocmVmIik7cmV0dXJuIE4/KGZ1bmN0aW9uKEQpe3JldHVybiBEJiYwPT09RC5sYXN0SW5kZXhPZigiaHR0cCIsMCkm'@; put 'Ji0xPT09RC5sYXN0SW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdCl9KE4pJiYoTis9KC0xPT09Ti5pbmRleE9mKCI/Iik/Ij8iOiImIikrInQ9IisobmV3IERhdGUpLnZhbHVlT2YoKSksbmV3IFByb21pc2UoZnVuY3Rpb24oZyxDKXt2YXIgUz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJj'@; put 'YW52YXMiKSx2PW5ldyBJbWFnZTt2LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHYuc3JjPU4sdi5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIEMobmV3IEVycm9yKCJDb3VsZCBub3QgbG9hZCAiK04pKX0sdi5vbmxvYWQ9ZnVuY3Rpb24oKXtTLndpZHRoPXYud2lkdGgsUy5oZWlnaHQ9di5o'@; put 'ZWlnaHQsUy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZSh2LDAsMCksSC5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsImhyZWYiLFMudG9EYXRhVVJMKCJpbWFnZS9wbmciKSksZyghMCl9fSkpOlByb21pc2UucmVzb2x2ZShudWxsKX0pKX0oYikudGhl'@; put 'bihmdW5jdGlvbigpe3ZhciBGZT1iLmNsb25lTm9kZSghMCk7RmUuc3R5bGUuYmFja2dyb3VuZENvbG9yPShEfHx7fSkuYmFja2dyb3VuZENvbG9yfHxiLnN0eWxlLmJhY2tncm91bmRDb2xvcjt2YXIgT2U9ZnVuY3Rpb24oRCxILE4sZyl7aWYoInN2ZyI9PT1ELnRhZ05hbWUpcmV0dXJue3dp'@; put 'ZHRoOk58fEIoRCxILCJ3aWR0aCIpLGhlaWdodDpnfHxCKEQsSCwiaGVpZ2h0Iil9O2lmKEQuZ2V0QkJveCl7dmFyIEM9RC5nZXRCQm94KCk7cmV0dXJue3dpZHRoOkMueCtDLndpZHRoLGhlaWdodDpDLnkrQy5oZWlnaHR9fX0oYixGZSxwLHcpLGplPU9lLndpZHRoLFdlPU9lLmhlaWdodDtp'@; put 'Zigic3ZnIiE9PWIudGFnTmFtZSl7aWYoIWIuZ2V0QkJveClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJBdHRlbXB0ZWQgdG8gcmVuZGVyIG5vbi1TVkcgZWxlbWVudCIsYik7bnVsbCE9RmUuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKSYmRmUuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0i'@; put 'LEZlLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIikucmVwbGFjZSgvdHJhbnNsYXRlXCguKj9cKS8sIiIpKTt2YXIgS2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO0tlLmFwcGVuZENoaWxkKEZlKSxGZT1LZX1pZihGZS5zZXRB'@; put 'dHRyaWJ1dGUoInZlcnNpb24iLCIxLjEiKSxGZS5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLFtDLHYsamUsV2VdLmpvaW4oIiAiKSksRmUuZ2V0QXR0cmlidXRlKCJ4bWxucyIpfHxGZS5zZXRBdHRyaWJ1dGVOUyhtLCJ4bWxucyIsTSksRmUuZ2V0QXR0cmlidXRlKCJ4bWxuczp4bGluayIpfHxG'@; put 'ZS5zZXRBdHRyaWJ1dGVOUyhtLCJ4bWxuczp4bGluayIsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiKSxmZT8oRmUucmVtb3ZlQXR0cmlidXRlKCJ3aWR0aCIpLEZlLnJlbW92ZUF0dHJpYnV0ZSgiaGVpZ2h0IiksRmUuc2V0QXR0cmlidXRlKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwi'@; put 'eE1pbllNaW4gbWVldCIpKTooRmUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsamUqbmUpLEZlLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixXZSpuZSkpLEFycmF5LmZyb20oRmUucXVlcnlTZWxlY3RvckFsbCgiZm9yZWlnbk9iamVjdCA+ICoiKSkuZm9yRWFjaChmdW5jdGlvbihsdCl7bHQuc2V0QXR0'@; put 'cmlidXRlTlMobSwieG1sbnMiLCJzdmciPT09bHQudGFnTmFtZT9NOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIil9KSwhTGUpcmV0dXJuIGNlKGIsRCkudGhlbihmdW5jdGlvbihsdCl7dmFyIFBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7UGUuc2V0QXR0cmlidXRl'@; put 'KCJ0eXBlIiwidGV4dC9jc3MiKSxQZS5pbm5lckhUTUw9IjwhW0NEQVRBW1xuIitsdCsiXG5dXT4iO3ZhciBiZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWZzIik7YmUuYXBwZW5kQ2hpbGQoUGUpLEZlLmluc2VydEJlZm9yZShiZSxGZS5maXJzdENoaWxkKTt2YXIgQWU9ZG9jdW1lbnQu'@; put 'Y3JlYXRlRWxlbWVudCgiZGl2Iik7QWUuYXBwZW5kQ2hpbGQoRmUpO3ZhciBUZT1BZS5pbm5lckhUTUwucmVwbGFjZSgvTlNcZCs6aHJlZi9naSwneG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhsaW5rOmhyZWYnKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgSCly'@; put 'ZXR1cm57c3JjOlRlLHdpZHRoOmplLGhlaWdodDpXZX07SChUZSxqZSxXZSl9KTt2YXIgWWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7WWUuYXBwZW5kQ2hpbGQoRmUpO3ZhciBRZT1ZZS5pbm5lckhUTUw7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEgpcmV0dXJue3NyYzpRZSx3aWR0'@; put 'aDpqZSxoZWlnaHQ6V2V9O0goUWUsamUsV2UpfSl9LHguc3ZnQXNEYXRhVXJpPWZ1bmN0aW9uKGIsRCxIKXtyZXR1cm4gSShiKSx4LnByZXBhcmVTdmcoYixEKS50aGVuKGZ1bmN0aW9uKE4pe3ZhciBDPU4ud2lkdGgsUz1OLmhlaWdodCx2PSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCIr'@; put 'd2luZG93LmJ0b2EoZnVuY3Rpb24oRCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoRCkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxmdW5jdGlvbihILE4pe3ZhciBnPVN0cmluZy5mcm9tQ2hhckNvZGUoIjB4IitOKTtyZXR1cm4iJSI9PT1nPyIlMjUi'@; put 'Omd9KSl9KCc8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiBbPCFFTlRJVFkgbmJzcCAiJiMxNjA7'@; put 'Ij5dPicrTi5zcmMpKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSCYmSCh2LEMsUyksdn0pfSx4LnN2Z0FzUG5nVXJpPWZ1bmN0aW9uKGIsRCxIKXtJKGIpO3ZhciBOPUR8fHt9LGc9Ti5lbmNvZGVyVHlwZSxDPXZvaWQgMD09PWc/ImltYWdlL3BuZyI6ZyxTPU4uZW5jb2Rlck9wdGlvbnMs'@; put 'dj12b2lkIDA9PT1TPy44OlMscD1OLmNhbnZnLHc9ZnVuY3Rpb24obmUpe3ZhciBkZT1uZS5zcmMsZmU9bmUud2lkdGgseGU9bmUuaGVpZ2h0LExlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLEZlPUxlLmdldENvbnRleHQoIjJkIiksT2U9d2luZG93LmRldmljZVBpeGVsUmF0'@; put 'aW98fDE7TGUud2lkdGg9ZmUqT2UsTGUuaGVpZ2h0PXhlKk9lLExlLnN0eWxlLndpZHRoPUxlLndpZHRoKyJweCIsTGUuc3R5bGUuaGVpZ2h0PUxlLmhlaWdodCsicHgiLEZlLnNldFRyYW5zZm9ybShPZSwwLDAsT2UsMCwwKSxwP3AoTGUsZGUpOkZlLmRyYXdJbWFnZShkZSwwLDApO3ZhciBq'@; put 'ZT12b2lkIDA7dHJ5e2plPUxlLnRvRGF0YVVSTChDLHYpfWNhdGNoKFdlKXtpZih0eXBlb2YgU2VjdXJpdHlFcnJvcjwidSImJldlIGluc3RhbmNlb2YgU2VjdXJpdHlFcnJvcnx8IlNlY3VyaXR5RXJyb3IiPT09V2UubmFtZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJSZW5kZXJlZCBT'@; put 'VkcgaW1hZ2VzIGNhbm5vdCBiZSBkb3dubG9hZGVkIGluIHRoaXMgYnJvd3Nlci4iKTt0aHJvdyBXZX1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSCYmSChqZSxMZS53aWR0aCxMZS5oZWlnaHQpLFByb21pc2UucmVzb2x2ZShqZSl9O3JldHVybiBwP3gucHJlcGFyZVN2ZyhiLEQpLnRoZW4o'@; put 'dyk6eC5zdmdBc0RhdGFVcmkoYixEKS50aGVuKGZ1bmN0aW9uKEope3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuZSxkZSl7dmFyIGZlPW5ldyBJbWFnZTtmZS5vbmxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmUodyh7c3JjOmZlLHdpZHRoOmZlLndpZHRoLGhlaWdodDpmZS5oZWlnaHR9'@; put 'KSl9LGZlLm9uZXJyb3I9ZnVuY3Rpb24oKXtkZSgiVGhlcmUgd2FzIGFuIGVycm9yIGxvYWRpbmcgdGhlIGRhdGEgVVJJIGFzIGFuIGltYWdlIG9uIHRoZSBmb2xsb3dpbmcgU1ZHXG4iK3dpbmRvdy5hdG9iKEouc2xpY2UoMjYpKSsiT3BlbiB0aGUgZm9sbG93aW5nIGxpbmsgdG8gc2VlIGJy'@; put 'b3dzZXIncyBkaWFnbm9zaXNcbiIrSil9LGZlLnNyYz1KfSl9KX0seC5kb3dubG9hZD1mdW5jdGlvbihiLEQsSCl7aWYobmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpbmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoVShEKSxiKTtlbHNle3ZhciBOPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo'@; put 'ImEiKTtpZigiZG93bmxvYWQiaW4gTil7Ti5kb3dubG9hZD1iLE4uc3R5bGUuZGlzcGxheT0ibm9uZSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChOKTt0cnl7dmFyIGc9VShEKSxDPVVSTC5jcmVhdGVPYmplY3RVUkwoZyk7Ti5ocmVmPUMsTi5vbmNsaWNrPWZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiBVUkwucmV2b2tlT2JqZWN0VVJMKEMpfSl9fWNhdGNoKFMpe2NvbnNvbGUuZXJyb3IoUyksY29uc29sZS53YXJuKCJFcnJvciB3aGlsZSBnZXR0aW5nIG9iamVjdCBVUkwuIEZhbGxpbmcgYmFjayB0byBzdHJpbmcgVVJM'@; put 'LiIpLE4uaHJlZj1EfU4uY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKE4pfWVsc2UgSCYmSC5wb3B1cCYmKEgucG9wdXAuZG9jdW1lbnQudGl0bGU9YixILnBvcHVwLmxvY2F0aW9uLnJlcGxhY2UoRCkpfX0seC5zYXZlU3ZnPWZ1bmN0aW9uKGIsRCxIKXt2YXIgTj1HKCk7cmV0'@; put 'dXJuIGsoYikudGhlbihmdW5jdGlvbihnKXtyZXR1cm4geC5zdmdBc0RhdGFVcmkoZyxIfHx7fSl9KS50aGVuKGZ1bmN0aW9uKGcpe3JldHVybiB4LmRvd25sb2FkKEQsZyxOKX0pfSx4LnNhdmVTdmdBc1BuZz1mdW5jdGlvbihiLEQsSCl7dmFyIE49RygpO3JldHVybiBrKGIpLnRoZW4oZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHguc3ZnQXNQbmdVcmkoZyxIfHx7fSl9KS50aGVuKGZ1bmN0aW9uKGcpe3JldHVybiB4LmRvd25sb2FkKEQsZyxOKX0pfX0oKX0sODM1ODE6KGF0LEllLEYpPT57dmFyIGFlPUYoODQzKS5CdWZmZXI7ZnVuY3Rpb24geChtLGxlKXt0aGlzLl9ibG9jaz1hZS5hbGxv'@; put 'YyhtKSx0aGlzLl9maW5hbFNpemU9bGUsdGhpcy5fYmxvY2tTaXplPW0sdGhpcy5fbGVuPTB9eC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKG0sbGUpeyJzdHJpbmciPT10eXBlb2YgbSYmKG09YWUuZnJvbShtLGxlPWxlfHwidXRmOCIpKTtmb3IodmFyIE09dGhpcy5fYmxvY2ssTz10aGlz'@; put 'Ll9ibG9ja1NpemUsUj1tLmxlbmd0aCx6PXRoaXMuX2xlbixLPTA7SzxSOyl7Zm9yKHZhciBJPXolTyxrPU1hdGgubWluKFItSyxPLUkpLEU9MDtFPGs7RSsrKU1bSStFXT1tW0srRV07Sys9aywoeis9ayklTz09MCYmdGhpcy5fdXBkYXRlKE0pfXJldHVybiB0aGlzLl9sZW4rPVIsdGhpc30s'@; put 'eC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKG0pe3ZhciBsZT10aGlzLl9sZW4ldGhpcy5fYmxvY2tTaXplO3RoaXMuX2Jsb2NrW2xlXT0xMjgsdGhpcy5fYmxvY2suZmlsbCgwLGxlKzEpLGxlPj10aGlzLl9maW5hbFNpemUmJih0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spLHRoaXMuX2Js'@; put 'b2NrLmZpbGwoMCkpO3ZhciBNPTgqdGhpcy5fbGVuO2lmKE08PTQyOTQ5NjcyOTUpdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShNLHRoaXMuX2Jsb2NrU2l6ZS00KTtlbHNle3ZhciBPPSg0Mjk0OTY3Mjk1Jk0pPj4+MDt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKChNLU8pLzQyOTQ5Njcy'@; put 'OTYsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoTyx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgej10aGlzLl9oYXNoKCk7cmV0dXJuIG0/ei50b1N0cmluZyhtKTp6fSx4LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0'@; put 'aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0sYXQuZXhwb3J0cz14fSw5Nzk2NTooYXQsSWUsRik9Pnt2YXIgYWU9YXQuZXhwb3J0cz1mdW5jdGlvbihtKXttPW0udG9Mb3dlckNhc2UoKTt2YXIgbGU9YWVbbV07aWYoIWxl'@; put 'KXRocm93IG5ldyBFcnJvcihtKyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBsZX07YWUuc2hhPUYoNzc5MTUpLGFlLnNoYTE9RigxMjI5KSxhZS5zaGEyMjQ9Rig3Mjk1OSksYWUuc2hhMjU2PUYoNTA0NTApLGFlLnNoYTM4ND1GKDYx'@; put 'NzIzKSxhZS5zaGE1MTI9Rig0NzkxNCl9LDc3OTE1OihhdCxJZSxGKT0+e3ZhciBhZT1GKDY2Njk4KSx4PUYoODM1ODEpLG09Rig4NDMpLkJ1ZmZlcixsZT1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLE09bmV3IEFycmF5KDgwKTtmdW5jdGlvbiBPKCl7'@; put 'dGhpcy5pbml0KCksdGhpcy5fdz1NLHguY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBSKEkpe3JldHVybiBJPDw1fEk+Pj4yN31mdW5jdGlvbiB6KEkpe3JldHVybiBJPDwzMHxJPj4+Mn1mdW5jdGlvbiBLKEksayxFLGope3JldHVybiAwPT09ST9rJkV8fmsmajoyPT09ST9rJkV8ayZqfEUm'@; put 'ajprXkVean1hZShPLHgpLE8ucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LE8ucHJvdG90eXBlLl91'@; put 'cGRhdGU9ZnVuY3Rpb24oSSl7Zm9yKHZhciBrPXRoaXMuX3csRT0wfHRoaXMuX2Esaj0wfHRoaXMuX2IsVj0wfHRoaXMuX2MsQj0wfHRoaXMuX2QsWT0wfHRoaXMuX2UsWD0wO1g8MTY7KytYKWtbWF09SS5yZWFkSW50MzJCRSg0KlgpO2Zvcig7WDw4MDsrK1gpa1tYXT1rW1gtM11ea1tYLThd'@; put 'XmtbWC0xNF1ea1tYLTE2XTtmb3IodmFyIFU9MDtVPDgwOysrVSl7dmFyIHE9fn4oVS8yMCksZWU9UihFKStLKHEsaixWLEIpK1kra1tVXStsZVtxXXwwO1k9QixCPVYsVj16KGopLGo9RSxFPWVlfXRoaXMuX2E9RSt0aGlzLl9hfDAsdGhpcy5fYj1qK3RoaXMuX2J8MCx0aGlzLl9jPVYrdGhp'@; put 'cy5fY3wwLHRoaXMuX2Q9Qit0aGlzLl9kfDAsdGhpcy5fZT1ZK3RoaXMuX2V8MH0sTy5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgST1tLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gSS53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLEkud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSxJ'@; put 'LndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksSS53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxJLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLEl9LGF0LmV4cG9ydHM9T30sMTIyOTooYXQsSWUsRik9Pnt2YXIgYWU9Rig2NjY5OCkseD1GKDgzNTgxKSxtPUYoODQzKS5CdWZmZXIsbGU9'@; put 'WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxNPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gTygpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TSx4LmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gUihrKXtyZXR1cm4gazw8MXxrPj4+MzF9ZnVuY3Rpb24geihrKXty'@; put 'ZXR1cm4gazw8NXxrPj4+Mjd9ZnVuY3Rpb24gSyhrKXtyZXR1cm4gazw8MzB8az4+PjJ9ZnVuY3Rpb24gSShrLEUsaixWKXtyZXR1cm4gMD09PWs/RSZqfH5FJlY6Mj09PWs/RSZqfEUmVnxqJlY6RV5qXlZ9YWUoTyx4KSxPLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'X2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSxPLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGspe2Zvcih2YXIgRT10aGlzLl93LGo9MHx0aGlzLl9hLFY9MHx0aGlz'@; put 'Ll9iLEI9MHx0aGlzLl9jLFk9MHx0aGlzLl9kLFg9MHx0aGlzLl9lLFU9MDtVPDE2OysrVSlFW1VdPWsucmVhZEludDMyQkUoNCpVKTtmb3IoO1U8ODA7KytVKUVbVV09UihFW1UtM11eRVtVLThdXkVbVS0xNF1eRVtVLTE2XSk7Zm9yKHZhciBxPTA7cTw4MDsrK3Epe3ZhciBlZT1+fihxLzIw'@; put 'KSx0ZT16KGopK0koZWUsVixCLFkpK1grRVtxXStsZVtlZV18MDtYPVksWT1CLEI9SyhWKSxWPWosaj10ZX10aGlzLl9hPWordGhpcy5fYXwwLHRoaXMuX2I9Vit0aGlzLl9ifDAsdGhpcy5fYz1CK3RoaXMuX2N8MCx0aGlzLl9kPVkrdGhpcy5fZHwwLHRoaXMuX2U9WCt0aGlzLl9lfDB9LE8u'@; put 'cHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGs9bS5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIGsud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxrLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCksay53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLGsud3JpdGVJbnQzMkJFKDB8dGhpcy5f'@; put 'ZCwxMiksay53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxrfSxhdC5leHBvcnRzPU99LDcyOTU5OihhdCxJZSxGKT0+e3ZhciBhZT1GKDY2Njk4KSx4PUYoNTA0NTApLG09Rig4MzU4MSksbGU9Rig4NDMpLkJ1ZmZlcixNPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gTygpe3RoaXMuaW5pdCgp'@; put 'LHRoaXMuX3c9TSxtLmNhbGwodGhpcyw2NCw1Nil9YWUoTyx4KSxPLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3'@; put 'LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRoaXN9LE8ucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIFI9bGUuYWxsb2NVbnNhZmUoMjgpO3JldHVybiBSLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLFIud3JpdGVJbnQzMkJF'@; put 'KHRoaXMuX2IsNCksUi53cml0ZUludDMyQkUodGhpcy5fYyw4KSxSLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSxSLndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KSxSLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxSLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxSfSxhdC5leHBvcnRzPU99LDUw'@; put 'NDUwOihhdCxJZSxGKT0+e3ZhciBhZT1GKDY2Njk4KSx4PUYoODM1ODEpLG09Rig4NDMpLkJ1ZmZlcixsZT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1'@; put 'OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4'@; put 'MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3'@; put 'MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3'@; put 'NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxNPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gTygpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TSx4LmNhbGwodGhpcyw2NCw1Nil9ZnVu'@; put 'Y3Rpb24gUihqLFYsQil7cmV0dXJuIEJeaiYoVl5CKX1mdW5jdGlvbiB6KGosVixCKXtyZXR1cm4gaiZWfEImKGp8Vil9ZnVuY3Rpb24gSyhqKXtyZXR1cm4oaj4+PjJ8ajw8MzApXihqPj4+MTN8ajw8MTkpXihqPj4+MjJ8ajw8MTApfWZ1bmN0aW9uIEkoail7cmV0dXJuKGo+Pj42fGo8PDI2'@; put 'KV4oaj4+PjExfGo8PDIxKV4oaj4+PjI1fGo8PDcpfWZ1bmN0aW9uIGsoail7cmV0dXJuKGo+Pj43fGo8PDI1KV4oaj4+PjE4fGo8PDE0KV5qPj4+M31mdW5jdGlvbiBFKGope3JldHVybihqPj4+MTd8ajw8MTUpXihqPj4+MTl8ajw8MTMpXmo+Pj4xMH1hZShPLHgpLE8ucHJvdG90eXBlLmlu'@; put 'aXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQx'@; put 'NDU5MjI1LHRoaXN9LE8ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oail7Zm9yKHZhciBWPXRoaXMuX3csQj0wfHRoaXMuX2EsWT0wfHRoaXMuX2IsWD0wfHRoaXMuX2MsVT0wfHRoaXMuX2QscT0wfHRoaXMuX2UsZWU9MHx0aGlzLl9mLHRlPTB8dGhpcy5fZyxvZT0wfHRoaXMuX2gsc2U9'@; put 'MDtzZTwxNjsrK3NlKVZbc2VdPWoucmVhZEludDMyQkUoNCpzZSk7Zm9yKDtzZTw2NDsrK3NlKVZbc2VdPUUoVltzZS0yXSkrVltzZS03XStrKFZbc2UtMTVdKStWW3NlLTE2XXwwO2Zvcih2YXIgaGU9MDtoZTw2NDsrK2hlKXt2YXIgdWU9b2UrSShxKStSKHEsZWUsdGUpK2xlW2hlXStWW2hl'@; put 'XXwwLGNlPUsoQikreihCLFksWCl8MDtvZT10ZSx0ZT1lZSxlZT1xLHE9VSt1ZXwwLFU9WCxYPVksWT1CLEI9dWUrY2V8MH10aGlzLl9hPUIrdGhpcy5fYXwwLHRoaXMuX2I9WSt0aGlzLl9ifDAsdGhpcy5fYz1YK3RoaXMuX2N8MCx0aGlzLl9kPVUrdGhpcy5fZHwwLHRoaXMuX2U9cSt0aGlz'@; put 'Ll9lfDAsdGhpcy5fZj1lZSt0aGlzLl9mfDAsdGhpcy5fZz10ZSt0aGlzLl9nfDAsdGhpcy5faD1vZSt0aGlzLl9ofDB9LE8ucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGo9bS5hbGxvY1Vuc2FmZSgzMik7cmV0dXJuIGoud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksai53cml0ZUlu'@; put 'dDMyQkUodGhpcy5fYiw0KSxqLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLGoud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLGoud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGoud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLGoud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLGoud3JpdGVJbnQzMkJF'@; put 'KHRoaXMuX2gsMjgpLGp9LGF0LmV4cG9ydHM9T30sNjE3MjM6KGF0LEllLEYpPT57dmFyIGFlPUYoNjY2OTgpLHg9Rig0NzkxNCksbT1GKDgzNTgxKSxsZT1GKDg0MykuQnVmZmVyLE09bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gTygpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TSxtLmNhbGwodGhp'@; put 'cywxMjgsMTEyKX1hZShPLHgpLE8ucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0aGlzLl9iaD0xNjU0MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhpcy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9MjM5'@; put 'NDE4MDIzMSx0aGlzLl9naD0zNjc1MDA4NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9ibD05MTQxNTA2NjMsdGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQxNDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAzMDI1'@; put 'LHRoaXMuX2dsPTE2OTQwNzY4MzksdGhpcy5faGw9MzIwNDA3NTQyOCx0aGlzfSxPLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBSPWxlLmFsbG9jVW5zYWZlKDQ4KTtmdW5jdGlvbiB6KEssSSxrKXtSLndyaXRlSW50MzJCRShLLGspLFIud3JpdGVJbnQzMkJFKEksays0KX1yZXR1'@; put 'cm4geih0aGlzLl9haCx0aGlzLl9hbCwwKSx6KHRoaXMuX2JoLHRoaXMuX2JsLDgpLHoodGhpcy5fY2gsdGhpcy5fY2wsMTYpLHoodGhpcy5fZGgsdGhpcy5fZGwsMjQpLHoodGhpcy5fZWgsdGhpcy5fZWwsMzIpLHoodGhpcy5fZmgsdGhpcy5fZmwsNDApLFJ9LGF0LmV4cG9ydHM9T30sNDc5'@; put 'MTQ6KGF0LEllLEYpPT57dmFyIGFlPUYoNjY2OTgpLHg9Rig4MzU4MSksbT1GKDg0MykuQnVmZmVyLGxlPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYy'@; put 'ODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgz'@; put 'ODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3'@; put 'MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAz'@; put 'MzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5'@; put 'MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3'@; put 'LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2'@; put 'ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMw'@; put 'NDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzEx'@; put 'LDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2Nzky'@; put 'ODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV0sTT1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBPKCl7'@; put 'dGhpcy5pbml0KCksdGhpcy5fdz1NLHguY2FsbCh0aGlzLDEyOCwxMTIpfWZ1bmN0aW9uIFIoWSxYLFUpe3JldHVybiBVXlkmKFheVSl9ZnVuY3Rpb24geihZLFgsVSl7cmV0dXJuIFkmWHxVJihZfFgpfWZ1bmN0aW9uIEsoWSxYKXtyZXR1cm4oWT4+PjI4fFg8PDQpXihYPj4+MnxZPDwzMCle'@; put 'KFg+Pj43fFk8PDI1KX1mdW5jdGlvbiBJKFksWCl7cmV0dXJuKFk+Pj4xNHxYPDwxOCleKFk+Pj4xOHxYPDwxNCleKFg+Pj45fFk8PDIzKX1mdW5jdGlvbiBrKFksWCl7cmV0dXJuKFk+Pj4xfFg8PDMxKV4oWT4+Pjh8WDw8MjQpXlk+Pj43fWZ1bmN0aW9uIEUoWSxYKXtyZXR1cm4oWT4+PjF8'@; put 'WDw8MzEpXihZPj4+OHxYPDwyNCleKFk+Pj43fFg8PDI1KX1mdW5jdGlvbiBqKFksWCl7cmV0dXJuKFk+Pj4xOXxYPDwxMyleKFg+Pj4yOXxZPDwzKV5ZPj4+Nn1mdW5jdGlvbiBWKFksWCl7cmV0dXJuKFk+Pj4xOXxYPDwxMyleKFg+Pj4yOXxZPDwzKV4oWT4+PjZ8WDw8MjYpfWZ1bmN0aW9u'@; put 'IEIoWSxYKXtyZXR1cm4gWT4+PjA8WD4+PjA/MTowfWFlKE8seCksTy5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEz'@; put 'NTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUx'@; put 'MzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LE8ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oWSl7Zm9yKHZhciBYPXRoaXMuX3csVT0wfHRoaXMuX2FoLHE9MHx0aGlzLl9iaCxlZT0wfHRoaXMuX2NoLHRlPTB8dGhp'@; put 'cy5fZGgsb2U9MHx0aGlzLl9laCxzZT0wfHRoaXMuX2ZoLGhlPTB8dGhpcy5fZ2gsdWU9MHx0aGlzLl9oaCxjZT0wfHRoaXMuX2FsLEc9MHx0aGlzLl9ibCxiPTB8dGhpcy5fY2wsRD0wfHRoaXMuX2RsLEg9MHx0aGlzLl9lbCxOPTB8dGhpcy5fZmwsZz0wfHRoaXMuX2dsLEM9MHx0aGlzLl9o'@; put 'bCxTPTA7UzwzMjtTKz0yKVhbU109WS5yZWFkSW50MzJCRSg0KlMpLFhbUysxXT1ZLnJlYWRJbnQzMkJFKDQqUys0KTtmb3IoO1M8MTYwO1MrPTIpe3ZhciB2PVhbUy0zMF0scD1YW1MtMzArMV0sdz1rKHYscCksSj1FKHAsdiksbmU9aih2PVhbUy00XSxwPVhbUy00KzFdKSxkZT1WKHAsdiks'@; put 'TGU9WFtTLTMyXSxGZT1YW1MtMzIrMV0sT2U9SitYW1MtMTQrMV18MCxqZT13K1hbUy0xNF0rQihPZSxKKXwwO2plPShqZT1qZStuZStCKE9lPU9lK2RlfDAsZGUpfDApK0xlK0IoT2U9T2UrRmV8MCxGZSl8MCxYW1NdPWplLFhbUysxXT1PZX1mb3IodmFyIFdlPTA7V2U8MTYwO1dlKz0yKXtq'@; put 'ZT1YW1dlXSxPZT1YW1dlKzFdO3ZhciBLZT16KFUscSxlZSksWWU9eihjZSxHLGIpLFFlPUsoVSxjZSksbHQ9SyhjZSxVKSxQZT1JKG9lLEgpLGJlPUkoSCxvZSksQWU9bGVbV2VdLFRlPWxlW1dlKzFdLHFlPVIob2Usc2UsaGUpLFhlPVIoSCxOLGcpLFVlPUMrYmV8MCxodD11ZStQZStCKFVl'@; put 'LEMpfDA7aHQ9KGh0PShodD1odCtxZStCKFVlPVVlK1hlfDAsWGUpfDApK0FlK0IoVWU9VWUrVGV8MCxUZSl8MCkramUrQihVZT1VZStPZXwwLE9lKXwwO3ZhciBNZT1sdCtZZXwwLERlPVFlK0tlK0IoTWUsbHQpfDA7dWU9aGUsQz1nLGhlPXNlLGc9TixzZT1vZSxOPUgsb2U9dGUraHQrQihI'@; put 'PUQrVWV8MCxEKXwwLHRlPWVlLEQ9YixlZT1xLGI9RyxxPVUsRz1jZSxVPWh0K0RlK0IoY2U9VWUrTWV8MCxVZSl8MH10aGlzLl9hbD10aGlzLl9hbCtjZXwwLHRoaXMuX2JsPXRoaXMuX2JsK0d8MCx0aGlzLl9jbD10aGlzLl9jbCtifDAsdGhpcy5fZGw9dGhpcy5fZGwrRHwwLHRoaXMuX2Vs'@; put 'PXRoaXMuX2VsK0h8MCx0aGlzLl9mbD10aGlzLl9mbCtOfDAsdGhpcy5fZ2w9dGhpcy5fZ2wrZ3wwLHRoaXMuX2hsPXRoaXMuX2hsK0N8MCx0aGlzLl9haD10aGlzLl9haCtVK0IodGhpcy5fYWwsY2UpfDAsdGhpcy5fYmg9dGhpcy5fYmgrcStCKHRoaXMuX2JsLEcpfDAsdGhpcy5fY2g9dGhp'@; put 'cy5fY2grZWUrQih0aGlzLl9jbCxiKXwwLHRoaXMuX2RoPXRoaXMuX2RoK3RlK0IodGhpcy5fZGwsRCl8MCx0aGlzLl9laD10aGlzLl9laCtvZStCKHRoaXMuX2VsLEgpfDAsdGhpcy5fZmg9dGhpcy5fZmgrc2UrQih0aGlzLl9mbCxOKXwwLHRoaXMuX2doPXRoaXMuX2doK2hlK0IodGhpcy5f'@; put 'Z2wsZyl8MCx0aGlzLl9oaD10aGlzLl9oaCt1ZStCKHRoaXMuX2hsLEMpfDB9LE8ucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIFk9bS5hbGxvY1Vuc2FmZSg2NCk7ZnVuY3Rpb24gWChVLHEsZWUpe1kud3JpdGVJbnQzMkJFKFUsZWUpLFkud3JpdGVJbnQzMkJFKHEsZWUrNCl9cmV0'@; put 'dXJuIFgodGhpcy5fYWgsdGhpcy5fYWwsMCksWCh0aGlzLl9iaCx0aGlzLl9ibCw4KSxYKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxYKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxYKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxYKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxYKHRoaXMuX2doLHRoaXMuX2ds'@; put 'LDQ4KSxYKHRoaXMuX2hoLHRoaXMuX2hsLDU2KSxZfSxhdC5leHBvcnRzPU99LDUxNzkzOihhdCxJZSxGKT0+e2F0LmV4cG9ydHM9bTt2YXIgYWU9Rig4MjAxNikuRXZlbnRFbWl0dGVyO2Z1bmN0aW9uIG0oKXthZS5jYWxsKHRoaXMpfUYoNjY2OTgpKG0sYWUpLG0uUmVhZGFibGU9Rig4MDMw'@; put 'OSksbS5Xcml0YWJsZT1GKDU2NTYzKSxtLkR1cGxleD1GKDcwMjQ3KSxtLlRyYW5zZm9ybT1GKDE2MzA3KSxtLlBhc3NUaHJvdWdoPUYoOTUwOTYpLG0uZmluaXNoZWQ9Rig1NDYxOCksbS5waXBlbGluZT1GKDg0NTE0KSxtLlN0cmVhbT1tLG0ucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24obGUs'@; put 'TSl7dmFyIE89dGhpcztmdW5jdGlvbiBSKFYpe2xlLndyaXRhYmxlJiYhMT09PWxlLndyaXRlKFYpJiZPLnBhdXNlJiZPLnBhdXNlKCl9ZnVuY3Rpb24geigpe08ucmVhZGFibGUmJk8ucmVzdW1lJiZPLnJlc3VtZSgpfU8ub24oImRhdGEiLFIpLGxlLm9uKCJkcmFpbiIseiksIWxlLl9pc1N0'@; put 'ZGlvJiYoIU18fCExIT09TS5lbmQpJiYoTy5vbigiZW5kIixJKSxPLm9uKCJjbG9zZSIsaykpO3ZhciBLPSExO2Z1bmN0aW9uIEkoKXtLfHwoSz0hMCxsZS5lbmQoKSl9ZnVuY3Rpb24gaygpe0t8fChLPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBsZS5kZXN0cm95JiZsZS5kZXN0cm95KCkpfWZ1'@; put 'bmN0aW9uIEUoVil7aWYoaigpLDA9PT1hZS5saXN0ZW5lckNvdW50KHRoaXMsImVycm9yIikpdGhyb3cgVn1mdW5jdGlvbiBqKCl7Ty5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsUiksbGUucmVtb3ZlTGlzdGVuZXIoImRyYWluIix6KSxPLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEkpLE8ucmVtb3Zl'@; put 'TGlzdGVuZXIoImNsb3NlIixrKSxPLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsRSksbGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixFKSxPLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGopLE8ucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixqKSxsZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGopfXJldHVy'@; put 'biBPLm9uKCJlcnJvciIsRSksbGUub24oImVycm9yIixFKSxPLm9uKCJlbmQiLGopLE8ub24oImNsb3NlIixqKSxsZS5vbigiY2xvc2UiLGopLGxlLmVtaXQoInBpcGUiLE8pLGxlfX0sNzIwMjQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg0MykuQnVmZmVyLHg9YWUuaXNF'@; put 'bmNvZGluZ3x8ZnVuY3Rpb24oVSl7c3dpdGNoKChVPSIiK1UpJiZVLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNh'@; put 'c2UidXRmLTE2bGUiOmNhc2UicmF3IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX07ZnVuY3Rpb24gTShVKXt2YXIgcTtzd2l0Y2godGhpcy5lbmNvZGluZz1mdW5jdGlvbiBsZShVKXt2YXIgcT1mdW5jdGlvbiBtKFUpe2lmKCFVKXJldHVybiJ1dGY4Ijtmb3IodmFyIHE7Oylzd2l0Y2go'@; put 'VSl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNl'@; put 'ImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIFU7ZGVmYXVsdDppZihxKXJldHVybjtVPSgiIitVKS50b0xvd2VyQ2FzZSgpLHE9ITB9fShVKTtpZigic3RyaW5nIiE9dHlwZW9mIHEmJihhZS5pc0VuY29kaW5nPT09eHx8IXgoVSkpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBlbmNvZGluZzog'@; put 'IitVKTtyZXR1cm4gcXx8VX0oVSksdGhpcy5lbmNvZGluZyl7Y2FzZSJ1dGYxNmxlIjp0aGlzLnRleHQ9RSx0aGlzLmVuZD1qLHE9NDticmVhaztjYXNlInV0ZjgiOnRoaXMuZmlsbExhc3Q9SyxxPTQ7YnJlYWs7Y2FzZSJiYXNlNjQiOnRoaXMudGV4dD1WLHRoaXMuZW5kPUIscT0zO2JyZWFr'@; put 'O2RlZmF1bHQ6cmV0dXJuIHRoaXMud3JpdGU9WSx2b2lkKHRoaXMuZW5kPVgpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9YWUuYWxsb2NVbnNhZmUocSl9ZnVuY3Rpb24gTyhVKXtyZXR1cm4gVTw9MTI3PzA6VT4+NT09Nj8yOlU+PjQ9PTE0PzM6VT4+'@; put 'Mz09MzA/NDpVPj42PT0yPy0xOi0yfWZ1bmN0aW9uIEsoVSl7dmFyIHE9dGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCxlZT1mdW5jdGlvbiB6KFUscSxlZSl7aWYoMTI4IT0oMTkyJnFbMF0pKXJldHVybiBVLmxhc3ROZWVkPTAsIlx1ZmZmZCI7aWYoVS5sYXN0TmVlZD4xJiZxLmxlbmd0'@; put 'aD4xKXtpZigxMjghPSgxOTImcVsxXSkpcmV0dXJuIFUubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZihVLmxhc3ROZWVkPjImJnEubGVuZ3RoPjImJjEyOCE9KDE5MiZxWzJdKSlyZXR1cm4gVS5sYXN0TmVlZD0yLCJcdWZmZmQifX0odGhpcyxVKTtyZXR1cm4gdm9pZCAwIT09ZWU/ZWU6dGhpcy5s'@; put 'YXN0TmVlZDw9VS5sZW5ndGg/KFUuY29weSh0aGlzLmxhc3RDaGFyLHEsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCkpOihVLmNvcHkodGhpcy5sYXN0Q2hhcixxLDAsVS5sZW5ndGgpLHZvaWQodGhpcy5sYXN0'@; put 'TmVlZC09VS5sZW5ndGgpKX1mdW5jdGlvbiBFKFUscSl7aWYoKFUubGVuZ3RoLXEpJTI9PTApe3ZhciBlZT1VLnRvU3RyaW5nKCJ1dGYxNmxlIixxKTtpZihlZSl7dmFyIHRlPWVlLmNoYXJDb2RlQXQoZWUubGVuZ3RoLTEpO2lmKHRlPj01NTI5NiYmdGU8PTU2MzE5KXJldHVybiB0aGlzLmxh'@; put 'c3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPVVbVS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1VW1UubGVuZ3RoLTFdLGVlLnNsaWNlKDAsLTEpfXJldHVybiBlZX1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hh'@; put 'clswXT1VW1UubGVuZ3RoLTFdLFUudG9TdHJpbmcoInV0ZjE2bGUiLHEsVS5sZW5ndGgtMSl9ZnVuY3Rpb24gaihVKXt2YXIgcT1VJiZVLmxlbmd0aD90aGlzLndyaXRlKFUpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3ErdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCx0aGlz'@; put 'Lmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkKTpxfWZ1bmN0aW9uIFYoVSxxKXt2YXIgZWU9KFUubGVuZ3RoLXEpJTM7cmV0dXJuIDA9PT1lZT9VLnRvU3RyaW5nKCJiYXNlNjQiLHEpOih0aGlzLmxhc3ROZWVkPTMtZWUsdGhpcy5sYXN0VG90YWw9MywxPT09ZWU/dGhpcy5sYXN0Q2hhclswXT1V'@; put 'W1UubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPVVbVS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1VW1UubGVuZ3RoLTFdKSxVLnRvU3RyaW5nKCJiYXNlNjQiLHEsVS5sZW5ndGgtZWUpKX1mdW5jdGlvbiBCKFUpe3ZhciBxPVUmJlUubGVuZ3RoP3RoaXMud3JpdGUoVSk6IiI7cmV0'@; put 'dXJuIHRoaXMubGFzdE5lZWQ/cSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTpxfWZ1bmN0aW9uIFkoVSl7cmV0dXJuIFUudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gWChVKXtyZXR1cm4gVSYmVS5sZW5ndGg/dGhpcy53cml0ZShV'@; put 'KToiIn1JZS5zPU0sTS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oVSl7aWYoMD09PVUubGVuZ3RoKXJldHVybiIiO3ZhciBxLGVlO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PShxPXRoaXMuZmlsbExhc3QoVSkpKXJldHVybiIiO2VlPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVl'@; put 'ZD0wfWVsc2UgZWU9MDtyZXR1cm4gZWU8VS5sZW5ndGg/cT9xK3RoaXMudGV4dChVLGVlKTp0aGlzLnRleHQoVSxlZSk6cXx8IiJ9LE0ucHJvdG90eXBlLmVuZD1mdW5jdGlvbiBrKFUpe3ZhciBxPVUmJlUubGVuZ3RoP3RoaXMud3JpdGUoVSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/cSsi'@; put 'XHVmZmZkIjpxfSxNLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uIEkoVSxxKXt2YXIgZWU9ZnVuY3Rpb24gUihVLHEsZWUpe3ZhciB0ZT1xLmxlbmd0aC0xO2lmKHRlPGVlKXJldHVybiAwO3ZhciBvZT1PKHFbdGVdKTtyZXR1cm4gb2U+PTA/KG9lPjAmJihVLmxhc3ROZWVkPW9lLTEpLG9lKTot'@; put 'LXRlPGVlfHwtMj09PW9lPzA6KG9lPU8ocVt0ZV0pKT49MD8ob2U+MCYmKFUubGFzdE5lZWQ9b2UtMiksb2UpOi0tdGU8ZWV8fC0yPT09b2U/MDoob2U9TyhxW3RlXSkpPj0wPyhvZT4wJiYoMj09PW9lP29lPTA6VS5sYXN0TmVlZD1vZS0zKSxvZSk6MH0odGhpcyxVLHEpO2lmKCF0aGlzLmxh'@; put 'c3ROZWVkKXJldHVybiBVLnRvU3RyaW5nKCJ1dGY4IixxKTt0aGlzLmxhc3RUb3RhbD1lZTt2YXIgdGU9VS5sZW5ndGgtKGVlLXRoaXMubGFzdE5lZWQpO3JldHVybiBVLmNvcHkodGhpcy5sYXN0Q2hhciwwLHRlKSxVLnRvU3RyaW5nKCJ1dGY4IixxLHRlKX0sTS5wcm90b3R5cGUuZmlsbExh'@; put 'c3Q9ZnVuY3Rpb24oVSl7aWYodGhpcy5sYXN0TmVlZDw9VS5sZW5ndGgpcmV0dXJuIFUuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RU'@; put 'b3RhbCk7VS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLFUubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT1VLmxlbmd0aH19LDY2MzA0OihhdCxJZSxGKT0+e3ZhciBhZT1GKDQwMjkwKTthdC5leHBvcnRzPXtUZXh0RW5jb2RlcjphZS5UZXh0RW5jb2Rl'@; put 'cixUZXh0RGVjb2RlcjphZS5UZXh0RGVjb2Rlcn19LDE2NDEzOmZ1bmN0aW9uKGF0KXshZnVuY3Rpb24oSWUpeyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzJiYoYXQuZXhwb3J0cz1JZSksSWVbImVuY29kaW5nLWluZGV4ZXMiXT17YmlnNTpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTczOTIsMTk1MDYsMTc5MjMsMTc4MzAsMTc3ODQsMTYwMzU5LDE5ODMxLDE3ODQzLDE2Mjk5MywxOTY4MiwxNjMwMTMsMTUyNTMsMTgyMzAsMTgyNDQsMTk1MjcsMTk1MjAsMTQ4MTU5'@; put 'LDE0NDkxOSwxNjA1OTQsMTU5MzcxLDE1OTk1NCwxOTU0MywxNzI4ODEsMTgyNTUsMTc4ODIsMTk1ODksMTYyOTI0LDE5NzE5LDE5MTA4LDE4MDgxLDE1ODQ5OSwyOTIyMSwxNTQxOTYsMTM3ODI3LDE0Njk1MCwxNDcyOTcsMjYxODksMjIyNjcsbnVsbCwzMjE0OSwyMjgxMywxNjY4NDEsMTU4'@; put 'NjAsMzg3MDgsMTYyNzk5LDIzNTE1LDEzODU5MCwyMzIwNCwxMzg2MSwxNzE2OTYsMjMyNDksMjM0NzksMjM4MDQsMjY0NzgsMzQxOTUsMTcwMzA5LDI5NzkzLDI5ODUzLDE0NDUzLDEzODU3OSwxNDUwNTQsMTU1NjgxLDE2MTA4LDE1MzgyMiwxNTA5MywzMTQ4NCw0MDg1NSwxNDc4MDksMTY2'@; put 'MTU3LDE0Mzg1MCwxMzM3NzAsMTQzOTY2LDE3MTYyLDMzOTI0LDQwODU0LDM3OTM1LDE4NzM2LDM0MzIzLDIyNjc4LDM4NzMwLDM3NDAwLDMxMTg0LDMxMjgyLDI2MjA4LDI3MTc3LDM0OTczLDI5NzcyLDMxNjg1LDI2NDk4LDMxMjc2LDIxMDcxLDM2OTM0LDEzNTQyLDI5NjM2LDE1NTA2NSwy'@; put 'OTg5NCw0MDkwMywyMjQ1MSwxODczNSwyMTU4MCwxNjY4OSwxNDUwMzgsMjI1NTIsMzEzNDYsMTYyNjYxLDM1NzI3LDE4MDk0LDE1OTM2OCwxNjc2OSwxNTUwMzMsMzE2NjIsMTQwNDc2LDQwOTA0LDE0MDQ4MSwxNDA0ODksMTQwNDkyLDQwOTA1LDM0MDUyLDE0NDgyNywxNjU2NCw0MDkwNiwx'@; put 'NzYzMywxNzU2MTUsMjUyODEsMjg3ODIsNDA5MDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCwxMjczNiwxMjczNywxMjczOCwxMjczOSwxMjc0MCwxMzEzNDAsMTI3NDEsMTMxMjgxLDEzMTI3NywxMjc0MiwxMjc0MywxMzEyNzUsMTM5MjQwLDEyNzQ0LDEzMTI3NCwxMjc0NSwxMjc0NiwxMjc0NywxMjc0OCwxMzEzNDIsMTI3NDksMTI3NTAsMjU2LDE5'@; put 'Myw0NjEsMTkyLDI3NCwyMDEsMjgyLDIwMCwzMzIsMjExLDQ2NSwyMTAsbnVsbCw3ODcwLG51bGwsNzg3MiwyMDIsMjU3LDIyNSw0NjIsMjI0LDU5MywyNzUsMjMzLDI4MywyMzIsMjk5LDIzNyw0NjQsMjM2LDMzMywyNDMsNDY2LDI0MiwzNjMsMjUwLDQ2OCwyNDksNDcwLDQ3Miw0NzQsNDc2'@; put 'LDI1MixudWxsLDc4NzEsbnVsbCw3ODczLDIzNCw2MDksOTE3OCw5MTc5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE3Mjk2OSwxMzU0OTMsbnVsbCwyNTg2NixudWxsLG51'@; put 'bGwsMjAwMjksMjgzODEsNDAyNzAsMzczNDMsbnVsbCxudWxsLDE2MTU4OSwyNTc0NSwyMDI1MCwyMDI2NCwyMDM5MiwyMDgyMiwyMDg1MiwyMDg5MiwyMDk2NCwyMTE1MywyMTE2MCwyMTMwNywyMTMyNiwyMTQ1NywyMTQ2NCwyMjI0MiwyMjc2OCwyMjc4OCwyMjc5MSwyMjgzNCwyMjgzNiwy'@; put 'MzM5OCwyMzQ1NCwyMzQ1NSwyMzcwNiwyNDE5OCwyNDYzNSwyNTk5MywyNjYyMiwyNjYyOCwyNjcyNSwyNzk4MiwyODg2MCwzMDAwNSwzMjQyMCwzMjQyOCwzMjQ0MiwzMjQ1NSwzMjQ2MywzMjQ3OSwzMjUxOCwzMjU2NywzMzQwMiwzMzQ4NywzMzY0NywzNTI3MCwzNTc3NCwzNTgxMCwzNjcx'@; put 'MCwzNjcxMSwzNjcxOCwyOTcxMywzMTk5NiwzMjIwNSwyNjk1MCwzMTQzMywyMTAzMSxudWxsLG51bGwsbnVsbCxudWxsLDM3MjYwLDMwOTA0LDM3MjE0LDMyOTU2LG51bGwsMzYxMDcsMzMwMTQsMTMzNjA3LG51bGwsbnVsbCwzMjkyNyw0MDY0NywxOTY2MSw0MDM5Myw0MDQ2MCwxOTUxOCwx'@; put 'NzE1MTAsMTU5NzU4LDQwNDU4LDE3MjMzOSwxMzc2MSxudWxsLDI4MzE0LDMzMzQyLDI5OTc3LG51bGwsMTg3MDUsMzk1MzIsMzk1NjcsNDA4NTcsMzExMTEsMTY0OTcyLDEzODY5OCwxMzI1NjAsMTQyMDU0LDIwMDA0LDIwMDk3LDIwMDk2LDIwMTAzLDIwMTU5LDIwMjAzLDIwMjc5LDEzMzg4'@; put 'LDIwNDEzLDE1OTQ0LDIwNDgzLDIwNjE2LDEzNDM3LDEzNDU5LDEzNDc3LDIwODcwLDIyNzg5LDIwOTU1LDIwOTg4LDIwOTk3LDIwMTA1LDIxMTEzLDIxMTM2LDIxMjg3LDEzNzY3LDIxNDE3LDEzNjQ5LDIxNDI0LDEzNjUxLDIxNDQyLDIxNTM5LDEzNjc3LDEzNjgyLDEzOTUzLDIxNjUxLDIx'@; put 'NjY3LDIxNjg0LDIxNjg5LDIxNzEyLDIxNzQzLDIxNzg0LDIxNzk1LDIxODAwLDEzNzIwLDIxODIzLDEzNzMzLDEzNzU5LDIxOTc1LDEzNzY1LDE2MzIwNCwyMTc5NyxudWxsLDEzNDIxMCwxMzQ0MjEsMTUxODUxLDIxOTA0LDE0MjUzNCwxNDgyOCwxMzE5MDUsMzY0MjIsMTUwOTY4LDE2OTE4'@; put 'OSwxNjQ2NywxNjQwMzAsMzA1ODYsMTQyMzkyLDE0OTAwLDE4Mzg5LDE2NDE4OSwxNTgxOTQsMTUxMDE4LDI1ODIxLDEzNDUyNCwxMzUwOTIsMTM0MzU3LDEzNTQxMiwyNTc0MSwzNjQ3OCwxMzQ4MDYsMTM0MTU1LDEzNTAxMiwxNDI1MDUsMTY0NDM4LDE0ODY5MSxudWxsLDEzNDQ3MCwxNzA1'@; put 'NzMsMTY0MDczLDE4NDIwLDE1MTIwNywxNDI1MzAsMzk2MDIsMTQ5NTEsMTY5NDYwLDE2MzY1LDEzNTc0LDE1MjI2MywxNjk5NDAsMTYxOTkyLDE0MjY2MCw0MDMwMiwzODkzMyxudWxsLDE3MzY5LDE1NTgxMywyNTc4MCwyMTczMSwxNDI2NjgsMTQyMjgyLDEzNTI4NywxNDg0MywxMzUyNzks'@; put 'MTU3NDAyLDE1NzQ2MiwxNjIyMDgsMjU4MzQsMTUxNjM0LDEzNDIxMSwzNjQ1NiwxMzk2ODEsMTY2NzMyLDEzMjkxMyxudWxsLDE4NDQzLDEzMTQ5NywxNjM3OCwyMjY0MywxNDI3MzMsbnVsbCwxNDg5MzYsMTMyMzQ4LDE1NTc5OSwxMzQ5ODgsMTM0NTUwLDIxODgxLDE2NTcxLDE3MzM4LG51'@; put 'bGwsMTkxMjQsMTQxOTI2LDEzNTMyNSwzMzE5NCwzOTE1NywxMzQ1NTYsMjU0NjUsMTQ4NDYsMTQxMTczLDM2Mjg4LDIyMTc3LDI1NzI0LDE1OTM5LG51bGwsMTczNTY5LDEzNDY2NSwxNDIwMzEsMTQyNTM3LG51bGwsMTM1MzY4LDE0NTg1OCwxNDczOCwxNDg1NCwxNjQ1MDcsMTM2ODgsMTU1'@; put 'MjA5LDEzOTQ2MywyMjA5OCwxMzQ5NjEsMTQyNTE0LDE2OTc2MCwxMzUwMCwyNzcwOSwxNTEwOTksbnVsbCxudWxsLDE2MTE0MCwxNDI5ODcsMTM5Nzg0LDE3MzY1OSwxNjcxMTcsMTM0Nzc4LDEzNDE5NiwxNTc3MjQsMzI2NTksMTM1Mzc1LDE0MTMxNSwxNDE2MjUsMTM4MTksMTUyMDM1LDEz'@; put 'NDc5NiwxMzUwNTMsMTM0ODI2LDE2Mjc1LDEzNDk2MCwxMzQ0NzEsMTM1NTAzLDEzNDczMixudWxsLDEzNDgyNywxMzQwNTcsMTM0NDcyLDEzNTM2MCwxMzU0ODUsMTYzNzcsMTQwOTUwLDI1NjUwLDEzNTA4NSwxNDQzNzIsMTYxMzM3LDE0MjI4NiwxMzQ1MjYsMTM0NTI3LDE0MjQxNywxNDI0'@; put 'MjEsMTQ4NzIsMTM0ODA4LDEzNTM2NywxMzQ5NTgsMTczNjE4LDE1ODU0NCwxNjcxMjIsMTY3MzIxLDE2NzExNCwzODMxNCwyMTcwOCwzMzQ3NiwyMTk0NSxudWxsLDE3MTcxNSwzOTk3NCwzOTYwNiwxNjE2MzAsMTQyODMwLDI4OTkyLDMzMTMzLDMzMDA0LDIzNTgwLDE1NzA0MiwzMzA3Niwx'@; put 'NDIzMSwyMTM0MywxNjQwMjksMzczMDIsMTM0OTA2LDEzNDY3MSwxMzQ3NzUsMTM0OTA3LDEzNzg5LDE1MTAxOSwxMzgzMywxMzQzNTgsMjIxOTEsMTQxMjM3LDEzNTM2OSwxMzQ2NzIsMTM0Nzc2LDEzNTI4OCwxMzU0OTYsMTY0MzU5LDEzNjI3NywxMzQ3NzcsMTUxMTIwLDE0Mjc1NiwyMzEy'@; put 'NCwxMzUxOTcsMTM1MTk4LDEzNTQxMywxMzU0MTQsMjI0MjgsMTM0NjczLDE2MTQyOCwxNjQ1NTcsMTM1MDkzLDEzNDc3OSwxNTE5MzQsMTQwODMsMTM1MDk0LDEzNTU1MiwxNTIyODAsMTcyNzMzLDE0OTk3OCwxMzcyNzQsMTQ3ODMxLDE2NDQ3NiwyMjY4MSwyMTA5NiwxMzg1MCwxNTM0MDUs'@; put 'MzE2NjYsMjM0MDAsMTg0MzIsMTkyNDQsNDA3NDMsMTg5MTksMzk5NjcsMzk4MjEsMTU0NDg0LDE0MzY3NywyMjAxMSwxMzgxMCwyMjE1MywyMDAwOCwyMjc4NiwxMzgxNzcsMTk0NjgwLDM4NzM3LDEzMTIwNiwyMDA1OSwyMDE1NSwxMzYzMCwyMzU4NywyNDQwMSwyNDUxNiwxNDU4NiwyNTE2'@; put 'NCwyNTkwOSwyNzUxNCwyNzcwMSwyNzcwNiwyODc4MCwyOTIyNywyMDAxMiwyOTM1NywxNDk3MzcsMzI1OTQsMzEwMzUsMzE5OTMsMzI1OTUsMTU2MjY2LDEzNTA1LG51bGwsMTU2NDkxLDMyNzcwLDMyODk2LDE1NzIwMiwxNTgwMzMsMjEzNDEsMzQ5MTYsMzUyNjUsMTYxOTcwLDM1NzQ0LDM2'@; put 'MTI1LDM4MDIxLDM4MjY0LDM4MjcxLDM4Mzc2LDE2NzQzOSwzODg4NiwzOTAyOSwzOTExOCwzOTEzNCwzOTI2NywxN2U0LDQwMDYwLDQwNDc5LDQwNjQ0LDI3NTAzLDYzNzUxLDIwMDIzLDEzMTIwNywzODQyOSwyNTE0MywzODA1MCxudWxsLDIwNTM5LDI4MTU4LDE3MTEyMyw0MDg3MCwxNTgx'@; put 'NywzNDk1OSwxNDc3OTAsMjg3OTEsMjM3OTcsMTkyMzIsMTUyMDEzLDEzNjU3LDE1NDkyOCwyNDg2NiwxNjY0NTAsMzY3NzUsMzczNjYsMjkwNzMsMjYzOTMsMjk2MjYsMTQ0MDAxLDE3MjI5NSwxNTQ5OSwxMzc2MDAsMTkyMTYsMzA5NDgsMjk2OTgsMjA5MTAsMTY1NjQ3LDE2MzkzLDI3MjM1'@; put 'LDE3MjczMCwxNjkzMSwzNDMxOSwxMzM3NDMsMzEyNzQsMTcwMzExLDE2NjYzNCwzODc0MSwyODc0OSwyMTI4NCwxMzkzOTAsMzc4NzYsMzA0MjUsMTY2MzcxLDQwODcxLDMwNjg1LDIwMTMxLDIwNDY0LDIwNjY4LDIwMDE1LDIwMjQ3LDQwODcyLDIxNTU2LDMyMTM5LDIyNjc0LDIyNzM2LDEz'@; put 'ODY3OCwyNDIxMCwyNDIxNywyNDUxNCwxNDEwNzQsMjU5OTUsMTQ0Mzc3LDI2OTA1LDI3MjAzLDE0NjUzMSwyNzkwMyxudWxsLDI5MTg0LDE0ODc0MSwyOTU4MCwxNjA5MSwxNTAwMzUsMjMzMTcsMjk4ODEsMzU3MTUsMTU0Nzg4LDE1MzIzNywzMTM3OSwzMTcyNCwzMTkzOSwzMjM2NCwzMzUy'@; put 'OCwzNDE5OSw0MDg3MywzNDk2MCw0MDg3NCwzNjUzNyw0MDg3NSwzNjgxNSwzNDE0MywzOTM5MiwzNzQwOSw0MDg3NiwxNjczNTMsMTM2MjU1LDE2NDk3LDE3MDU4LDIzMDY2LG51bGwsbnVsbCxudWxsLDM5MDE2LDI2NDc1LDE3MDE0LDIyMzMzLG51bGwsMzQyNjIsMTQ5ODgzLDMzNDcxLDE2'@; put 'MDAxMywxOTU4NSwxNTkwOTIsMjM5MzEsMTU4NDg1LDE1OTY3OCw0MDg3Nyw0MDg3OCwyMzQ0Niw0MDg3OSwyNjM0MywzMjM0NywyODI0NywzMTE3OCwxNTc1MiwxNzYwMywxNDM5NTgsMTQxMjA2LDE3MzA2LDE3NzE4LG51bGwsMjM3NjUsMTQ2MjAyLDM1NTc3LDIzNjcyLDE1NjM0LDE0NDcy'@; put 'MSwyMzkyOCw0MDg4MiwyOTAxNSwxNzc1MiwxNDc2OTIsMTM4Nzg3LDE5NTc1LDE0NzEyLDEzMzg2LDEzMTQ5MiwxNTg3ODUsMzU1MzIsMjA0MDQsMTMxNjQxLDIyOTc1LDMzMTMyLDM4OTk4LDE3MDIzNCwyNDM3OSwxMzQwNDcsbnVsbCwxMzk3MTMsMTY2MjUzLDE2NjQyLDE4MTA3LDE2ODA1'@; put 'NywxNjEzNSw0MDg4MywxNzI0NjksMTY2MzIsMTQyOTQsMTgxNjcsMTU4NzkwLDE2NzY0LDE2NTU1NCwxNjA3NjcsMTc3NzMsMTQ1NDgsMTUyNzMwLDE3NzYxLDE3NjkxLDE5ODQ5LDE5NTc5LDE5ODMwLDE3ODk4LDE2MzI4LDE1MDI4NywxMzkyMSwxNzYzMCwxNzU5NywxNjg3NywyMzg3MCwy'@; put 'Mzg4MCwyMzg5NCwxNTg2OCwxNDM1MSwyMzk3MiwyMzk5MywxNDM2OCwxNDM5MiwyNDEzMCwyNDI1MywyNDM1NywyNDQ1MSwxNDYwMCwxNDYxMiwxNDY1NSwxNDY2OSwyNDc5MSwyNDg5MywyMzc4MSwxNDcyOSwyNTAxNSwyNTAxNywyNTAzOSwxNDc3NiwyNTEzMiwyNTIzMiwyNTMxNywyNTM2'@; put 'OCwxNDg0MCwyMjE5MywxNDg1MSwyNTU3MCwyNTU5NSwyNTYwNywyNTY5MCwxNDkyMywyNTc5MiwyMzgyOSwyMjA0OSw0MDg2MywxNDk5OSwyNTk5MCwxNTAzNywyNjExMSwyNjE5NSwxNTA5MCwyNjI1OCwxNTEzOCwyNjM5MCwxNTE3MCwyNjUzMiwyNjYyNCwxNTE5MiwyNjY5OCwyNjc1Niwx'@; put 'NTIxOCwxNTIxNywxNTIyNywyNjg4OSwyNjk0NywyOTI3NiwyNjk4MCwyNzAzOSwyNzAxMywxNTI5MiwyNzA5NCwxNTMyNSwyNzIzNywyNzI1MiwyNzI0OSwyNzI2NiwxNTM0MCwyNzI4OSwxNTM0NiwyNzMwNywyNzMxNywyNzM0OCwyNzM4MiwyNzUyMSwyNzU4NSwyNzYyNiwyNzc2NSwyNzgx'@; put 'OCwxNTU2MywyNzkwNiwyNzkxMCwyNzk0MiwyODAzMywxNTU5OSwyODA2OCwyODA4MSwyODE4MSwyODE4NCwyODIwMSwyODI5NCwxNjYzMzYsMjgzNDcsMjgzODYsMjgzNzgsNDA4MzEsMjgzOTIsMjgzOTMsMjg0NTIsMjg0NjgsMTU2ODYsMTQ3MjY1LDI4NTQ1LDI4NjA2LDE1NzIyLDE1NzMz'@; put 'LDI5MTExLDIzNzA1LDE1NzU0LDI4NzE2LDE1NzYxLDI4NzUyLDI4NzU2LDI4NzgzLDI4Nzk5LDI4ODA5LDEzMTg3NywxNzM0NSwxMzgwOSwxMzQ4NzIsMTQ3MTU5LDIyNDYyLDE1OTQ0MywyODk5MCwxNTM1NjgsMTM5MDIsMjcwNDIsMTY2ODg5LDIzNDEyLDMxMzA1LDE1MzgyNSwxNjkxNzcs'@; put 'MzEzMzMsMzEzNTcsMTU0MDI4LDMxNDE5LDMxNDA4LDMxNDI2LDMxNDI3LDI5MTM3LDE1NjgxMywxNjg0MiwzMTQ1MCwzMTQ1MywzMTQ2NiwxNjg3OSwyMTY4MiwxNTQ2MjUsMzE0OTksMzE1NzMsMzE1MjksMTUyMzM0LDE1NDg3OCwzMTY1MCwzMTU5OSwzMzY5MiwxNTQ1NDgsMTU4ODQ3LDMx'@; put 'Njk2LDMzODI1LDMxNjM0LDMxNjcyLDE1NDkxMiwxNTc4OSwxNTQ3MjUsMzM5MzgsMzE3MzgsMzE3NTAsMzE3OTcsMTU0ODE3LDMxODEyLDMxODc1LDE0OTYzNCwzMTkxMCwyNjIzNywxNDg4NTYsMzE5NDUsMzE5NDMsMzE5NzQsMzE4NjAsMzE5ODcsMzE5ODksMzE5NTAsMzIzNTksMTc2OTMs'@; put 'MTU5MzAwLDMyMDkzLDE1OTQ0NiwyOTgzNywzMjEzNywzMjE3MSwyODk4MSwzMjE3OSwzMjIxMCwxNDc1NDMsMTU1Njg5LDMyMjI4LDE1NjM1LDMyMjQ1LDEzNzIwOSwzMjIyOSwxNjQ3MTcsMzIyODUsMTU1OTM3LDE1NTk5NCwzMjM2NiwzMjQwMiwxNzE5NSwzNzk5NiwzMjI5NSwzMjU3Niwz'@; put 'MjU3NywzMjU4MywzMTAzMCwxNTYzNjgsMzkzOTMsMzI2NjMsMTU2NDk3LDMyNjc1LDEzNjgwMSwxMzExNzYsMTc3NTYsMTQ1MjU0LDE3NjY3LDE2NDY2NiwzMjc2MiwxNTY4MDksMzI3NzMsMzI3NzYsMzI3OTcsMzI4MDgsMzI4MTUsMTcyMTY3LDE1ODkxNSwzMjgyNywzMjgyOCwzMjg2NSwx'@; put 'NDEwNzYsMTg4MjUsMTU3MjIyLDE0NjkxNSwxNTc0MTYsMjY0MDUsMzI5MzUsMTY2NDcyLDMzMDMxLDMzMDUwLDIyNzA0LDE0MTA0NiwyNzc3NSwxNTY4MjQsMTUxNDgwLDI1ODMxLDEzNjMzMCwzMzMwNCwxMzczMTAsMjcyMTksMTUwMTE3LDE1MDE2NSwxNzUzMCwzMzMyMSwxMzM5MDEsMTU4'@; put 'MjkwLDE0NjgxNCwyMDQ3MywxMzY0NDUsMzQwMTgsMzM2MzQsMTU4NDc0LDE0OTkyNywxNDQ2ODgsMTM3MDc1LDE0NjkzNiwzMzQ1MCwyNjkwNywxOTQ5NjQsMTY4NTksMzQxMjMsMzM0ODgsMzM1NjIsMTM0Njc4LDEzNzE0MCwxNDAxNywxNDM3NDEsMTQ0NzMwLDMzNDAzLDMzNTA2LDMzNTYw'@; put 'LDE0NzA4MywxNTkxMzksMTU4NDY5LDE1ODYxNSwxNDQ4NDYsMTU4MDcsMzM1NjUsMjE5OTYsMzM2NjksMTc2NzUsMTU5MTQxLDMzNzA4LDMzNzI5LDMzNzQ3LDEzNDM4LDE1OTQ0NCwyNzIyMywzNDEzOCwxMzQ2MiwxNTkyOTgsMTQzMDg3LDMzODgwLDE1NDU5NiwzMzkwNSwxNTgyNywxNzYz'@; put 'NiwyNzMwMywzMzg2NiwxNDY2MTMsMzEwNjQsMzM5NjAsMTU4NjE0LDE1OTM1MSwxNTkyOTksMzQwMTQsMzM4MDcsMzM2ODEsMTc1NjgsMzM5MzksMzQwMjAsMTU0NzY5LDE2OTYwLDE1NDgxNiwxNzczMSwzNDEwMCwyMzI4MiwxNTkzODUsMTc3MDMsMzQxNjMsMTc2ODYsMjY1NTksMzQzMjYs'@; put 'MTY1NDEzLDE2NTQzNSwzNDI0MSwxNTk4ODAsMzQzMDYsMTM2NTc4LDE1OTk0OSwxOTQ5OTQsMTc3NzAsMzQzNDQsMTM4OTYsMTM3Mzc4LDIxNDk1LDE2MDY2NiwzNDQzMCwzNDY3MywxNzIyODAsMzQ3OTgsMTQyMzc1LDM0NzM3LDM0Nzc4LDM0ODMxLDIyMTEzLDM0NDEyLDI2NzEwLDE3OTM1'@; put 'LDM0ODg1LDM0ODg2LDE2MTI0OCwxNDY4NzMsMTYxMjUyLDM0OTEwLDM0OTcyLDE4MDExLDM0OTk2LDM0OTk3LDI1NTM3LDM1MDEzLDMwNTgzLDE2MTU1MSwzNTIwNywzNTIxMCwzNTIzOCwzNTI0MSwzNTIzOSwzNTI2MCwxNjY0MzcsMzUzMDMsMTYyMDg0LDE2MjQ5MywzNTQ4NCwzMDYxMSwz'@; put 'NzM3NCwzNTQ3MiwxNjIzOTMsMzE0NjUsMTYyNjE4LDE0NzM0MywxODE5NSwxNjI2MTYsMjkwNTIsMzU1OTYsMzU2MTUsMTUyNjI0LDE1MjkzMywzNTY0NywzNTY2MCwzNTY2MSwzNTQ5NywxNTAxMzgsMzU3MjgsMzU3MzksMzU1MDMsMTM2OTI3LDE3OTQxLDM0ODk1LDM1OTk1LDE2MzE1Niwx'@; put 'NjMyMTUsMTk1MDI4LDE0MTE3LDE2MzE1NSwzNjA1NCwxNjMyMjQsMTYzMjYxLDM2MTE0LDM2MDk5LDEzNzQ4OCwzNjA1OSwyODc2NCwzNjExMywxNTA3MjksMTYwODAsMzYyMTUsMzYyNjUsMTYzODQyLDEzNTE4OCwxNDk4OTgsMTUyMjgsMTY0Mjg0LDE2MDAxMiwzMTQ2MywzNjUyNSwzNjUz'@; put 'NCwzNjU0NywzNzU4OCwzNjYzMywzNjY1MywxNjQ3MDksMTY0ODgyLDM2NzczLDM3NjM1LDE3MjcwMywxMzM3MTIsMzY3ODcsMTg3MzAsMTY2MzY2LDE2NTE4MSwxNDY4NzUsMjQzMTIsMTQzOTcwLDM2ODU3LDE3MjA1MiwxNjU1NjQsMTY1MTIxLDE0MDA2OSwxNDcyMCwxNTk0NDcsMzY5MTks'@; put 'MTY1MTgwLDE2MjQ5NCwzNjk2MSwxNjUyMjgsMTY1Mzg3LDM3MDMyLDE2NTY1MSwzNzA2MCwxNjU2MDYsMzcwMzgsMzcxMTcsMzcyMjMsMTUwODgsMzcyODksMzczMTYsMzE5MTYsMTY2MTk1LDEzODg4OSwzNzM5MCwyNzgwNywzNzQ0MSwzNzQ3NCwxNTMwMTcsMzc1NjEsMTY2NTk4LDE0NjU4'@; put 'NywxNjY2NjgsMTUzMDUxLDEzNDQ0OSwzNzY3NiwzNzczOSwxNjY2MjUsMTY2ODkxLDI4ODE1LDIzMjM1LDE2NjYyNiwxNjY2MjksMTg3ODksMzc0NDQsMTY2ODkyLDE2Njk2OSwxNjY5MTEsMzc3NDcsMzc5NzksMzY1NDAsMzgyNzcsMzgzMTAsMzc5MjYsMzgzMDQsMjg2NjIsMTcwODEsMTQw'@; put 'OTIyLDE2NTU5MiwxMzU4MDQsMTQ2OTkwLDE4OTExLDI3Njc2LDM4NTIzLDM4NTUwLDE2NzQ4LDM4NTYzLDE1OTQ0NSwyNTA1MCwzODU4MiwzMDk2NSwxNjY2MjQsMzg1ODksMjE0NTIsMTg4NDksMTU4OTA0LDEzMTcwMCwxNTY2ODgsMTY4MTExLDE2ODE2NSwxNTAyMjUsMTM3NDkzLDE0NDEz'@; put 'OCwzODcwNSwzNDM3MCwzODcxMCwxODk1OSwxNzcyNSwxNzc5NywxNTAyNDksMjg3ODksMjMzNjEsMzg2ODMsMzg3NDgsMTY4NDA1LDM4NzQzLDIzMzcwLDE2ODQyNywzODc1MSwzNzkyNSwyMDY4OCwxNDM1NDMsMTQzNTQ4LDM4NzkzLDM4ODE1LDM4ODMzLDM4ODQ2LDM4ODQ4LDM4ODY2LDM4'@; put 'ODgwLDE1MjY4NCwzODg5NCwyOTcyNCwxNjkwMTEsMzg5MTEsMzg5MDEsMTY4OTg5LDE2MjE3MCwxOTE1MywzODk2NCwzODk2MywzODk4NywzOTAxNCwxNTExOCwxNjAxMTcsMTU2OTcsMTMyNjU2LDE0NzgwNCwxNTMzNTAsMzkxMTQsMzkwOTUsMzkxMTIsMzkxMTEsMTkxOTksMTU5MDE1LDEz'@; put 'NjkxNSwyMTkzNiwzOTEzNywzOTE0MiwzOTE0OCwzNzc1MiwzOTIyNSwxNTAwNTcsMTkzMTQsMTcwMDcxLDE3MDI0NSwzOTQxMywzOTQzNiwzOTQ4MywzOTQ0MCwzOTUxMiwxNTMzODEsMTQwMjAsMTY4MTEzLDE3MDk2NSwzOTY0OCwzOTY1MCwxNzA3NTcsMzk2NjgsMTk0NzAsMzk3MDAsMzk3'@; put 'MjUsMTY1Mzc2LDIwNTMyLDM5NzMyLDE1ODEyMCwxNDUzMSwxNDM0ODUsMzk3NjAsMzk3NDQsMTcxMzI2LDIzMTA5LDEzNzMxNSwzOTgyMiwxNDgwNDMsMzk5MzgsMzk5MzUsMzk5NDgsMTcxNjI0LDQwNDA0LDE3MTk1OSwxNzI0MzQsMTcyNDU5LDE3MjI1NywxNzIzMjMsMTcyNTExLDQwMzE4'@; put 'LDQwMzIzLDE3MjM0MCw0MDQ2MiwyNjc2MCw0MDM4OCwxMzk2MTEsMTcyNDM1LDE3MjU3NiwxMzc1MzEsMTcyNTk1LDQwMjQ5LDE3MjIxNywxNzI3MjQsNDA1OTIsNDA1OTcsNDA2MDYsNDA2MTAsMTk3NjQsNDA2MTgsNDA2MjMsMTQ4MzI0LDQwNjQxLDE1MjAwLDE0ODIxLDE1NjQ1LDIwMjc0'@; put 'LDE0MjcwLDE2Njk1NSw0MDcwNiw0MDcxMiwxOTM1MCwzNzkyNCwxNTkxMzgsNDA3MjcsNDA3MjYsNDA3NjEsMjIxNzUsMjIxNTQsNDA3NzMsMzkzNTIsMTY4MDc1LDM4ODk4LDMzOTE5LDQwODAyLDQwODA5LDMxNDUyLDQwODQ2LDI5MjA2LDE5MzkwLDE0OTg3NywxNDk5NDcsMjkwNDcsMTUw'@; put 'MDA4LDE0ODI5NiwxNTAwOTcsMjk1OTgsMTY2ODc0LDEzNzQ2NiwzMTEzNSwxNjYyNzAsMTY3NDc4LDM3NzM3LDM3ODc1LDE2NjQ2OCwzNzYxMiwzNzc2MSwzNzgzNSwxNjYyNTIsMTQ4NjY1LDI5MjA3LDE2MTA3LDMwNTc4LDMxMjk5LDI4ODgwLDE0ODU5NSwxNDg0NzIsMjkwNTQsMTM3MTk5'@; put 'LDI4ODM1LDEzNzQwNiwxNDQ3OTMsMTYwNzEsMTM3MzQ5LDE1MjYyMywxMzcyMDgsMTQxMTQsMTM2OTU1LDEzNzI3MywxNDA0OSwxMzcwNzYsMTM3NDI1LDE1NTQ2NywxNDExNSwxMzY4OTYsMjIzNjMsMTUwMDUzLDEzNjE5MCwxMzU4NDgsMTM2MTM0LDEzNjM3NCwzNDA1MSwxNDUwNjIsMzQw'@; put 'NTEsMzM4NzcsMTQ5OTA4LDE2MDEwMSwxNDY5OTMsMTUyOTI0LDE0NzE5NSwxNTk4MjYsMTc2NTIsMTQ1MTM0LDE3MDM5NywxNTk1MjYsMjY2MTcsMTQxMzEsMTUzODEsMTU4NDcsMjI2MzYsMTM3NTA2LDI2NjQwLDE2NDcxLDE0NTIxNSwxNDc2ODEsMTQ3NTk1LDE0NzcyNywxNTg3NTMsMjE3'@; put 'MDcsMjIxNzQsMTU3MzYxLDIyMTYyLDEzNTEzNSwxMzQwNTYsMTM0NjY5LDM3ODMwLDE2NjY3NSwzNzc4OCwyMDIxNiwyMDc3OSwxNDM2MSwxNDg1MzQsMjAxNTYsMTMyMTk3LDEzMTk2NywyMDI5OSwyMDM2MiwxNTMxNjksMjMxNDQsMTMxNDk5LDEzMjA0MywxNDc0NSwxMzE4NTAsMTMyMTE2'@; put 'LDEzMzY1LDIwMjY1LDEzMTc3NiwxNjc2MDMsMTMxNzAxLDM1NTQ2LDEzMTU5NiwyMDEyMCwyMDY4NSwyMDc0OSwyMDM4NiwyMDIyNywxNTAwMzAsMTQ3MDgyLDIwMjkwLDIwNTI2LDIwNTg4LDIwNjA5LDIwNDI4LDIwNDUzLDIwNTY4LDIwNzMyLDIwODI1LDIwODI3LDIwODI5LDIwODMwLDI4'@; put 'Mjc4LDE0NDc4OSwxNDcwMDEsMTQ3MTM1LDI4MDE4LDEzNzM0OCwxNDcwODEsMjA5MDQsMjA5MzEsMTMyNTc2LDE3NjI5LDEzMjI1OSwxMzIyNDIsMTMyMjQxLDM2MjE4LDE2NjU1NiwxMzI4NzgsMjEwODEsMjExNTYsMTMzMjM1LDIxMjE3LDM3NzQyLDE4MDQyLDI5MDY4LDE0ODM2NCwxMzQx'@; put 'NzYsMTQ5OTMyLDEzNTM5NiwyNzA4OSwxMzQ2ODUsMjk4MTcsMTYwOTQsMjk4NDksMjk3MTYsMjk3ODIsMjk1OTIsMTkzNDIsMTUwMjA0LDE0NzU5NywyMTQ1NiwxMzcwMCwyOTE5OSwxNDc2NTcsMjE5NDAsMTMxOTA5LDIxNzA5LDEzNDA4NiwyMjMwMSwzNzQ2OSwzODY0NCwzNzczNCwyMjQ5'@; put 'MywyMjQxMywyMjM5OSwxMzg4NiwyMjczMSwyMzE5MywxNjY0NzAsMTM2OTU0LDEzNzA3MSwxMzY5NzYsMjMwODQsMjI5NjgsMzc1MTksMjMxNjYsMjMyNDcsMjMwNTgsMTUzOTI2LDEzNzcxNSwxMzczMTMsMTQ4MTE3LDE0MDY5LDI3OTA5LDI5NzYzLDIzMDczLDE1NTI2NywyMzE2OSwxNjY4'@; put 'NzEsMTMyMTE1LDM3ODU2LDI5ODM2LDEzNTkzOSwyODkzMywxODgwMiwzNzg5NiwxNjYzOTUsMzc4MjEsMTQyNDAsMjM1ODIsMjM3MTAsMjQxNTgsMjQxMzYsMTM3NjIyLDEzNzU5NiwxNDYxNTgsMjQyNjksMjMzNzUsMTM3NDc1LDEzNzQ3NiwxNDA4MSwxMzczNzYsMTQwNDUsMTM2OTU4LDE0'@; put 'MDM1LDMzMDY2LDE2NjQ3MSwxMzg2ODIsMTQ0NDk4LDE2NjMxMiwyNDMzMiwyNDMzNCwxMzc1MTEsMTM3MTMxLDIzMTQ3LDEzNzAxOSwyMzM2NCwzNDMyNCwxNjEyNzcsMzQ5MTIsMjQ3MDIsMTQxNDA4LDE0MDg0MywyNDUzOSwxNjA1NiwxNDA3MTksMTQwNzM0LDE2ODA3MiwxNTk2MDMsMjUw'@; put 'MjQsMTMxMTM0LDEzMTE0MiwxNDA4MjcsMjQ5ODUsMjQ5ODQsMjQ2OTMsMTQyNDkxLDE0MjU5OSwxNDkyMDQsMTY4MjY5LDI1NzEzLDE0OTA5MywxNDIxODYsMTQ4ODksMTQyMTE0LDE0NDQ2NCwxNzAyMTgsMTQyOTY4LDI1Mzk5LDE3MzE0NywyNTc4MiwyNTM5MywyNTU1MywxNDk5ODcsMTQy'@; put 'Njk1LDI1MjUyLDE0MjQ5NywyNTY1OSwyNTk2MywyNjk5NCwxNTM0OCwxNDM1MDIsMTQ0MDQ1LDE0OTg5NywxNDQwNDMsMjE3NzMsMTQ0MDk2LDEzNzQzMywxNjkwMjMsMjYzMTgsMTQ0MDA5LDE0Mzc5NSwxNTA3MiwxNjc4NCwxNTI5NjQsMTY2NjkwLDE1Mjk3NSwxMzY5NTYsMTUyOTIzLDE1'@; put 'MjYxMywzMDk1OCwxNDM2MTksMTM3MjU4LDE0MzkyNCwxMzQxMiwxNDM4ODcsMTQzNzQ2LDE0ODE2OSwyNjI1NCwxNTkwMTIsMjYyMTksMTkzNDcsMjYxNjAsMTYxOTA0LDEzODczMSwyNjIxMSwxNDQwODIsMTQ0MDk3LDI2MTQyLDE1MzcxNCwxNDU0NSwxNDU0NjYsMTQ1MzQwLDE1MjU3LDE0'@; put 'NTMxNCwxNDQzODIsMjk5MDQsMTUyNTQsMjY1MTEsMTQ5MDM0LDI2ODA2LDI2NjU0LDE1MzAwLDI3MzI2LDE0NDM1LDE0NTM2NSwxNDg2MTUsMjcxODcsMjcyMTgsMjczMzcsMjczOTcsMTM3NDkwLDI1ODczLDI2Nzc2LDI3MjEyLDE1MzE5LDI3MjU4LDI3NDc5LDE0NzM5MiwxNDY1ODYsMzc3'@; put 'OTIsMzc2MTgsMTY2ODkwLDE2NjYwMywzNzUxMywxNjM4NzAsMTY2MzY0LDM3OTkxLDI4MDY5LDI4NDI3LDE0OTk5NiwyODAwNywxNDczMjcsMTU3NTksMjgxNjQsMTQ3NTE2LDIzMTAxLDI4MTcwLDIyNTk5LDI3OTQwLDMwNzg2LDI4OTg3LDE0ODI1MCwxNDgwODYsMjg5MTMsMjkyNjQsMjkz'@; put 'MTksMjkzMzIsMTQ5MzkxLDE0OTI4NSwyMDg1NywxNTAxODAsMTMyNTg3LDI5ODE4LDE0NzE5MiwxNDQ5OTEsMTUwMDkwLDE0OTc4MywxNTU2MTcsMTYxMzQsMTYwNDksMTUwMjM5LDE2Njk0NywxNDcyNTMsMjQ3NDMsMTYxMTUsMjk5MDAsMjk3NTYsMzc3NjcsMjk3NTEsMTc1NjcsMTU5MjEw'@; put 'LDE3NzQ1LDMwMDgzLDE2MjI3LDE1MDc0NSwxNTA3OTAsMTYyMTYsMzAwMzcsMzAzMjMsMTczNTEwLDE1MTI5LDI5ODAwLDE2NjYwNCwxNDk5MzEsMTQ5OTAyLDE1MDk5LDE1ODIxLDE1MDA5NCwxNjEyNywxNDk5NTcsMTQ5NzQ3LDM3MzcwLDIyMzIyLDM3Njk4LDE2NjYyNywxMzczMTYsMjA3'@; put 'MDMsMTUyMDk3LDE1MjAzOSwzMDU4NCwxNDM5MjIsMzA0NzgsMzA0NzksMzA1ODcsMTQ5MTQzLDE0NTI4MSwxNDk0MiwxNDk3NDQsMjk3NTIsMjk4NTEsMTYwNjMsMTUwMjAyLDE1MDIxNSwxNjU4NCwxNTAxNjYsMTU2MDc4LDM3NjM5LDE1Mjk2MSwzMDc1MCwzMDg2MSwzMDg1NiwzMDkzMCwy'@; put 'OTY0OCwzMTA2NSwxNjE2MDEsMTUzMzE1LDE2NjU0LDMxMTMxLDMzOTQyLDMxMTQxLDI3MTgxLDE0NzE5NCwzMTI5MCwzMTIyMCwxNjc1MCwxMzY5MzQsMTY2OTAsMzc0MjksMzEyMTcsMTM0NDc2LDE0OTkwMCwxMzE3MzcsMTQ2ODc0LDEzNzA3MCwxMzcxOSwyMTg2NywxMzY4MCwxMzk5NCwx'@; put 'MzE1NDAsMTM0MTU3LDMxNDU4LDIzMTI5LDE0MTA0NSwxNTQyODcsMTU0MjY4LDIzMDUzLDEzMTY3NSwzMDk2MCwyMzA4MiwxNTQ1NjYsMzE0ODYsMTY4ODksMzE4MzcsMzE4NTMsMTY5MTMsMTU0NTQ3LDE1NTMyNCwxNTUzMDIsMzE5NDksMTUwMDA5LDEzNzEzNiwzMTg4NiwzMTg2OCwzMTkx'@; put 'OCwyNzMxNCwzMjIyMCwzMjI2MywzMjIxMSwzMjU5MCwxNTYyNTcsMTU1OTk2LDE2MjYzMiwzMjE1MSwxNTUyNjYsMTcwMDIsMTU4NTgxLDEzMzM5OCwyNjU4MiwxMzExNTAsMTQ0ODQ3LDIyNDY4LDE1NjY5MCwxNTY2NjQsMTQ5ODU4LDMyNzMzLDMxNTI3LDEzMzE2NCwxNTQzNDUsMTU0OTQ3'@; put 'LDMxNTAwLDE1NTE1MCwzOTM5OCwzNDM3MywzOTUyMywyNzE2NCwxNDQ0NDcsMTQ4MTgsMTUwMDA3LDE1NzEwMSwzOTQ1NSwxNTcwODgsMzM5MjAsMTYwMDM5LDE1ODkyOSwxNzY0MiwzMzA3OSwxNzQxMCwzMjk2NiwzMzAzMywzMzA5MCwxNTc2MjAsMzkxMDcsMTU4Mjc0LDMzMzc4LDMzMzgx'@; put 'LDE1ODI4OSwzMzg3NSwxNTkxNDMsMzQzMjAsMTYwMjgzLDIzMTc0LDE2NzY3LDEzNzI4MCwyMzMzOSwxMzczNzcsMjMyNjgsMTM3NDMyLDM0NDY0LDE5NTAwNCwxNDY4MzEsMzQ4NjEsMTYwODAyLDIzMDQyLDM0OTI2LDIwMjkzLDM0OTUxLDM1MDA3LDM1MDQ2LDM1MTczLDM1MTQ5LDE1MzIx'@; put 'OSwzNTE1NiwxNjE2NjksMTYxNjY4LDE2NjkwMSwxNjY4NzMsMTY2ODEyLDE2NjM5MywxNjA0NSwzMzk1NSwxODE2NSwxODEyNywxNDMyMiwzNTM4OSwzNTM1NiwxNjkwMzIsMjQzOTcsMzc0MTksMTQ4MTAwLDI2MDY4LDI4OTY5LDI4ODY4LDEzNzI4NSw0MDMwMSwzNTk5OSwzNjA3MywxNjMy'@; put 'OTIsMjI5MzgsMzA2NTksMjMwMjQsMTcyNjIsMTQwMzYsMzYzOTQsMzY1MTksMTUwNTM3LDM2NjU2LDM2NjgyLDE3MTQwLDI3NzM2LDI4NjAzLDE0MDA2NSwxODU4NywyODUzNywyODI5OSwxMzcxNzgsMzk5MTMsMTQwMDUsMTQ5ODA3LDM3MDUxLDM3MDE1LDIxODczLDE4Njk0LDM3MzA3LDM3'@; put 'ODkyLDE2NjQ3NSwxNjQ4MiwxNjY2NTIsMzc5MjcsMTY2OTQxLDE2Njk3MSwzNDAyMSwzNTM3MSwzODI5NywzODMxMSwzODI5NSwzODI5NCwxNjcyMjAsMjk3NjUsMTYwNjYsMTQ5NzU5LDE1MDA4MiwxNDg0NTgsMTYxMDMsMTQzOTA5LDM4NTQzLDE2NzY1NSwxNjc1MjYsMTY3NTI1LDE2MDc2'@; put 'LDE0OTk5NywxNTAxMzYsMTQ3NDM4LDI5NzE0LDI5ODAzLDE2MTI0LDM4NzIxLDE2ODExMiwyNjY5NSwxODk3MywxNjgwODMsMTUzNTY3LDM4NzQ5LDM3NzM2LDE2NjI4MSwxNjY5NTAsMTY2NzAzLDE1NjYwNiwzNzU2MiwyMzMxMywzNTY4OSwxODc0OCwyOTY4OSwxNDc5OTUsMzg4MTEsMzg3'@; put 'NjksMzkyMjQsMTM0OTUwLDI0MDAxLDE2Njg1MywxNTAxOTQsMzg5NDMsMTY5MTc4LDM3NjIyLDE2OTQzMSwzNzM0OSwxNzYwMCwxNjY3MzYsMTUwMTE5LDE2Njc1NiwzOTEzMiwxNjY0NjksMTYxMjgsMzc0MTgsMTg3MjUsMzM4MTIsMzkyMjcsMzkyNDUsMTYyNTY2LDE1ODY5LDM5MzIzLDE5'@; put 'MzExLDM5MzM4LDM5NTE2LDE2Njc1NywxNTM4MDAsMjcyNzksMzk0NTcsMjMyOTQsMzk0NzEsMTcwMjI1LDE5MzQ0LDE3MDMxMiwzOTM1NiwxOTM4OSwxOTM1MSwzNzc1NywyMjY0MiwxMzU5MzgsMjI1NjIsMTQ5OTQ0LDEzNjQyNCwzMDc4OCwxNDEwODcsMTQ2ODcyLDI2ODIxLDE1NzQxLDM3'@; put 'OTc2LDE0NjMxLDI0OTEyLDE0MTE4NSwxNDE2NzUsMjQ4MzksNDAwMTUsNDAwMTksNDAwNTksMzk5ODksMzk5NTIsMzk4MDcsMzk4ODcsMTcxNTY1LDM5ODM5LDE3MjUzMywxNzIyODYsNDAyMjUsMTk2MzAsMTQ3NzE2LDQwNDcyLDE5NjMyLDQwMjA0LDE3MjQ2OCwxNzIyNjksMTcyMjc1LDE3'@; put 'MDI4Nyw0MDM1NywzMzk4MSwxNTkyNTAsMTU5NzExLDE1ODU5NCwzNDMwMCwxNzcxNSwxNTkxNDAsMTU5MzY0LDE1OTIxNiwzMzgyNCwzNDI4NiwxNTkyMzIsMTQ1MzY3LDE1NTc0OCwzMTIwMiwxNDQ3OTYsMTQ0OTYwLDE4NzMzLDE0OTk4MiwxNTcxNCwzNzg1MSwzNzU2NiwzNzcwNCwxMzE3'@; put 'NzUsMzA5MDUsMzc0OTUsMzc5NjUsMjA0NTIsMTMzNzYsMzY5NjQsMTUyOTI1LDMwNzgxLDMwODA0LDMwOTAyLDMwNzk1LDEzNzA0NywxNDM4MTcsMTQ5ODI1LDEzOTc4LDIwMzM4LDI4NjM0LDI4NjMzLDI4NzAyLDI4NzAyLDIxNTI0LDE0Nzg5MywyMjQ1OSwyMjc3MSwyMjQxMCw0MDIxNCwy'@; put 'MjQ4NywyODk4MCwxMzQ4NywxNDc4ODQsMjkxNjMsMTU4Nzg0LDE1MTQ0NywyMzMzNiwxMzcxNDEsMTY2NDczLDI0ODQ0LDIzMjQ2LDIzMDUxLDE3MDg0LDE0ODYxNiwxNDEyNCwxOTMyMywxNjYzOTYsMzc4MTksMzc4MTYsMTM3NDMwLDEzNDk0MSwzMzkwNiwxNTg5MTIsMTM2MjExLDE0ODIx'@; put 'OCwxNDIzNzQsMTQ4NDE3LDIyOTMyLDE0Njg3MSwxNTc1MDUsMzIxNjgsMTU1OTk1LDE1NTgxMiwxNDk5NDUsMTQ5ODk5LDE2NjM5NCwzNzYwNSwyOTY2NiwxNjEwNSwyOTg3NiwxNjY3NTUsMTM3Mzc1LDE2MDk3LDE1MDE5NSwyNzM1MiwyOTY4MywyOTY5MSwxNjA4NiwxNTAwNzgsMTUwMTY0'@; put 'LDEzNzE3NywxNTAxMTgsMTMyMDA3LDEzNjIyOCwxNDk5ODksMjk3NjgsMTQ5NzgyLDI4ODM3LDE0OTg3OCwzNzUwOCwyOTY3MCwzNzcyNywxMzIzNTAsMzc2ODEsMTY2NjA2LDE2NjQyMiwzNzc2NiwxNjY4ODcsMTUzMDQ1LDE4NzQxLDE2NjUzMCwyOTAzNSwxNDk4MjcsMTM0Mzk5LDIyMTgw'@; put 'LDEzMjYzNCwxMzQxMjMsMTM0MzI4LDIxNzYyLDMxMTcyLDEzNzIxMCwzMjI1NCwxMzY4OTgsMTUwMDk2LDEzNzI5OCwxNzcxMCwzNzg4OSwxNDA5MCwxNjY1OTIsMTQ5OTMzLDIyOTYwLDEzNzQwNywxMzczNDcsMTYwOTAwLDIzMjAxLDE0MDUwLDE0Njc3OSwxNGUzLDM3NDcxLDIzMTYxLDE2'@; put 'NjUyOSwxMzczMTQsMzc3NDgsMTU1NjUsMTMzODEyLDE5MDk0LDE0NzMwLDIwNzI0LDE1NzIxLDE1NjkyLDEzNjA5MiwyOTA0NSwxNzE0NywxNjQzNzYsMjgxNzUsMTY4MTY0LDE3NjQzLDI3OTkxLDE2MzQwNywyODc3NSwyNzgyMywxNTU3NCwxNDc0MzcsMTQ2OTg5LDI4MTYyLDI4NDI4LDE1'@; put 'NzI3LDEzMjA4NSwzMDAzMywxNDAxMiwxMzUxMiwxODA0OCwxNjA5MCwxODU0NSwyMjk4MCwzNzQ4NiwxODc1MCwzNjY3MywxNjY5NDAsMTU4NjU2LDIyNTQ2LDIyNDcyLDE0MDM4LDEzNjI3NCwyODkyNiwxNDgzMjIsMTUwMTI5LDE0MzMzMSwxMzU4NTYsMTQwMjIxLDI2ODA5LDI2OTgzLDEz'@; put 'NjA4OCwxNDQ2MTMsMTYyODA0LDE0NTExOSwxNjY1MzEsMTQ1MzY2LDE0NDM3OCwxNTA2ODcsMjcxNjIsMTQ1MDY5LDE1ODkwMywzMzg1NCwxNzYzMSwxNzYxNCwxNTkwMTQsMTU5MDU3LDE1ODg1MCwxNTk3MTAsMjg0MzksMTYwMDA5LDMzNTk3LDEzNzAxOCwzMzc3MywxNTg4NDgsMTU5ODI3'@; put 'LDEzNzE3OSwyMjkyMSwyMzE3MCwxMzcxMzksMjMxMzcsMjMxNTMsMTM3NDc3LDE0Nzk2NCwxNDEyNSwyMzAyMywxMzcwMjAsMTQwMjMsMjkwNzAsMzc3NzYsMjYyNjYsMTQ4MTMzLDIzMTUwLDIzMDgzLDE0ODExNSwyNzE3OSwxNDcxOTMsMTYxNTkwLDE0ODU3MSwxNDgxNzAsMjg5NTcsMTQ4'@; put 'MDU3LDE2NjM2OSwyMDQwMCwxNTkwMTYsMjM3NDYsMTQ4Njg2LDE2MzQwNSwxNDg0MTMsMjcxNDgsMTQ4MDU0LDEzNTk0MCwyODgzOCwyODk3OSwxNDg0NTcsMTU3ODEsMjc4NzEsMTk0NTk3LDE1MDA5NSwzMjM1NywyMzAxOSwyMzg1NSwxNTg1OSwyNDQxMiwxNTAxMDksMTM3MTgzLDMyMTY0'@; put 'LDMzODMwLDIxNjM3LDE0NjE3MCwxNDQxMjgsMTMxNjA0LDIyMzk4LDEzMzMzMywxMzI2MzMsMTYzNTcsMTM5MTY2LDE3MjcyNiwyODY3NSwxNjgyODMsMjM5MjAsMjk1ODMsMzE5NTUsMTY2NDg5LDE2ODk5MiwyMDQyNCwzMjc0MywyOTM4OSwyOTQ1NiwxNjI1NDgsMjk0OTYsMjk0OTcsMTUz'@; put 'MzM0LDI5NTA1LDI5NTEyLDE2MDQxLDE2MjU4NCwzNjk3MiwyOTE3MywxNDk3NDYsMjk2NjUsMzMyNzAsMTYwNzQsMzA0NzYsMTYwODEsMjc4MTAsMjIyNjksMjk3MjEsMjk3MjYsMjk3MjcsMTYwOTgsMTYxMTIsMTYxMTYsMTYxMjIsMjk5MDcsMTYxNDIsMTYyMTEsMzAwMTgsMzAwNjEsMzAw'@; put 'NjYsMzAwOTMsMTYyNTIsMzAxNTIsMzAxNzIsMTYzMjAsMzAyODUsMTYzNDMsMzAzMjQsMTYzNDgsMzAzMzAsMTUxMzg4LDI5MDY0LDIyMDUxLDM1MjAwLDIyNjMzLDE2NDEzLDMwNTMxLDE2NDQxLDI2NDY1LDE2NDUzLDEzNzg3LDMwNjE2LDE2NDkwLDE2NDk1LDIzNjQ2LDMwNjU0LDMwNjY3'@; put 'LDIyNzcwLDMwNzQ0LDI4ODU3LDMwNzQ4LDE2NTUyLDMwNzc3LDMwNzkxLDMwODAxLDMwODIyLDMzODY0LDE1Mjg4NSwzMTAyNywyNjYyNywzMTAyNiwxNjY0MywxNjY0OSwzMTEyMSwzMTEyOSwzNjc5NSwzMTIzOCwzNjc5NiwxNjc0MywzMTM3NywxNjgxOCwzMTQyMCwzMzQwMSwxNjgzNiwz'@; put 'MTQzOSwzMTQ1MSwxNjg0NywyMDAwMSwzMTU4NiwzMTU5NiwzMTYxMSwzMTc2MiwzMTc3MSwxNjk5MiwxNzAxOCwzMTg2NywzMTkwMCwxNzAzNiwzMTkyOCwxNzA0NCwzMTk4MSwzNjc1NSwyODg2NCwxMzQzNTEsMzIyMDcsMzIyMTIsMzIyMDgsMzIyNTMsMzI2ODYsMzI2OTIsMjkzNDMsMTcz'@; put 'MDMsMzI4MDAsMzI4MDUsMzE1NDUsMzI4MTQsMzI4MTcsMzI4NTIsMTU4MjAsMjI0NTIsMjg4MzIsMzI5NTEsMzMwMDEsMTczODksMzMwMzYsMjk0ODIsMzMwMzgsMzMwNDIsMzAwNDgsMzMwNDQsMTc0MDksMTUxNjEsMzMxMTAsMzMxMTMsMzMxMTQsMTc0MjcsMjI1ODYsMzMxNDgsMzMxNTYs'@; put 'MTc0NDUsMzMxNzEsMTc0NTMsMzMxODksMjI1MTEsMzMyMTcsMzMyNTIsMzMzNjQsMTc1NTEsMzM0NDYsMzMzOTgsMzM0ODIsMzM0OTYsMzM1MzUsMTc1ODQsMzM2MjMsMzg1MDUsMjcwMTgsMzM3OTcsMjg5MTcsMzM4OTIsMjQ4MDMsMzM5MjgsMTc2NjgsMzM5ODIsMzQwMTcsMzQwNDAsMzQw'@; put 'NjQsMzQxMDQsMzQxMzAsMTc3MjMsMzQxNTksMzQxNjAsMzQyNzIsMTc3ODMsMzQ0MTgsMzQ0NTAsMzQ0ODIsMzQ1NDMsMzg0NjksMzQ2OTksMTc5MjYsMTc5NDMsMzQ5OTAsMzUwNzEsMzUxMDgsMzUxNDMsMzUyMTcsMTYyMTUxLDM1MzY5LDM1Mzg0LDM1NDc2LDM1NTA4LDM1OTIxLDM2MDUy'@; put 'LDM2MDgyLDM2MTI0LDE4MzI4LDIyNjIzLDM2MjkxLDE4NDEzLDIwMjA2LDM2NDEwLDIxOTc2LDIyMzU2LDM2NDY1LDIyMDA1LDM2NTI4LDE4NDg3LDM2NTU4LDM2NTc4LDM2NTgwLDM2NTg5LDM2NTk0LDM2NzkxLDM2ODAxLDM2ODEwLDM2ODEyLDM2OTE1LDM5MzY0LDE4NjA1LDM5MTM2LDM3'@; put 'Mzk1LDE4NzE4LDM3NDE2LDM3NDY0LDM3NDgzLDM3NTUzLDM3NTUwLDM3NTY3LDM3NjAzLDM3NjExLDM3NjE5LDM3NjIwLDM3NjI5LDM3Njk5LDM3NzY0LDM3ODA1LDE4NzU3LDE4NzY5LDQwNjM5LDM3OTExLDIxMjQ5LDM3OTE3LDM3OTMzLDM3OTUwLDE4Nzk0LDM3OTcyLDM4MDA5LDM4MTg5'@; put 'LDM4MzA2LDE4ODU1LDM4Mzg4LDM4NDUxLDE4OTE3LDI2NTI4LDE4OTgwLDM4NzIwLDE4OTk3LDM4ODM0LDM4ODUwLDIyMTAwLDE5MTcyLDI0ODA4LDM5MDk3LDE5MjI1LDM5MTUzLDIyNTk2LDM5MTgyLDM5MTkzLDIwOTE2LDM5MTk2LDM5MjIzLDM5MjM0LDM5MjYxLDM5MjY2LDE5MzEyLDM5'@; put 'MzY1LDE5MzU3LDM5NDg0LDM5Njk1LDMxMzYzLDM5Nzg1LDM5ODA5LDM5OTAxLDM5OTIxLDM5OTI0LDE5NTY1LDM5OTY4LDE0MTkxLDEzODE3OCw0MDI2NSwzOTk5NCw0MDcwMiwyMjA5Niw0MDMzOSw0MDM4MSw0MDM4NCw0MDQ0NCwzODEzNCwzNjc5MCw0MDU3MSw0MDYyMCw0MDYyNSw0MDYz'@; put 'Nyw0MDY0NiwzODEwOCw0MDY3NCw0MDY4OSw0MDY5NiwzMTQzMiw0MDc3MiwxMzEyMjAsMTMxNzY3LDEzMmUzLDI2OTA2LDM4MDgzLDIyOTU2LDEzMjMxMSwyMjU5MiwzODA4MSwxNDI2NSwxMzI1NjUsMTMyNjI5LDEzMjcyNiwxMzY4OTAsMjIzNTksMjkwNDMsMTMzODI2LDEzMzgzNywxMzQw'@; put 'NzksMjE2MTAsMTk0NjE5LDEzNDA5MSwyMTY2MiwxMzQxMzksMTM0MjAzLDEzNDIyNywxMzQyNDUsMTM0MjY4LDI0ODA3LDEzNDI4NSwyMjEzOCwxMzQzMjUsMTM0MzY1LDEzNDM4MSwxMzQ1MTEsMTM0NTc4LDEzNDYwMCwyNjk2NSwzOTk4MywzNDcyNSwxMzQ2NjAsMTM0NjcwLDEzNDg3MSwx'@; put 'MzUwNTYsMTM0OTU3LDEzNDc3MSwyMzU4NCwxMzUxMDAsMjQwNzUsMTM1MjYwLDEzNTI0NywxMzUyODYsMjYzOTgsMTM1MjkxLDEzNTMwNCwxMzUzMTgsMTM4OTUsMTM1MzU5LDEzNTM3OSwxMzU0NzEsMTM1NDgzLDIxMzQ4LDMzOTY1LDEzNTkwNywxMzYwNTMsMTM1OTkwLDM1NzEzLDEzNjU2'@; put 'NywxMzY3MjksMTM3MTU1LDEzNzE1OSwyMDA4OCwyODg1OSwxMzcyNjEsMTM3NTc4LDEzNzc3MywxMzc3OTcsMTM4MjgyLDEzODM1MiwxMzg0MTIsMTM4OTUyLDI1MjgzLDEzODk2NSwxMzkwMjksMjkwODAsMjY3MDksMTM5MzMzLDI3MTEzLDE0MDI0LDEzOTkwMCwxNDAyNDcsMTQwMjgyLDE0'@; put 'MTA5OCwxNDE0MjUsMTQxNjQ3LDMzNTMzLDE0MTY3MSwxNDE3MTUsMTQyMDM3LDM1MjM3LDE0MjA1NiwzNjc2OCwxNDIwOTQsMzg4NDAsMTQyMTQzLDM4OTgzLDM5NjEzLDE0MjQxMixudWxsLDE0MjQ3MiwxNDI1MTksMTU0NjAwLDE0MjYwMCwxNDI2MTAsMTQyNzc1LDE0Mjc0MSwxNDI5MTQs'@; put 'MTQzMjIwLDE0MzMwOCwxNDM0MTEsMTQzNDYyLDE0NDE1OSwxNDQzNTAsMjQ0OTcsMjYxODQsMjYzMDMsMTYyNDI1LDE0NDc0MywxNDQ4ODMsMjkxODUsMTQ5OTQ2LDMwNjc5LDE0NDkyMiwxNDUxNzQsMzIzOTEsMTMxOTEwLDIyNzA5LDI2MzgyLDI2OTA0LDE0NjA4NywxNjEzNjcsMTU1NjE4'@; put 'LDE0Njk2MSwxNDcxMjksMTYxMjc4LDEzOTQxOCwxODY0MCwxOTEyOCwxNDc3MzcsMTY2NTU0LDE0ODIwNiwxNDgyMzcsMTQ3NTE1LDE0ODI3NiwxNDgzNzQsMTUwMDg1LDEzMjU1NCwyMDk0NiwxMzI2MjUsMjI5NDMsMTM4OTIwLDE1Mjk0LDE0NjY4NywxNDg0ODQsMTQ4Njk0LDIyNDA4LDE0'@; put 'OTEwOCwxNDc0NywxNDkyOTUsMTY1MzUyLDE3MDQ0MSwxNDE3OCwxMzk3MTUsMzU2NzgsMTY2NzM0LDM5MzgyLDE0OTUyMiwxNDk3NTUsMTUwMDM3LDI5MTkzLDE1MDIwOCwxMzQyNjQsMjI4ODUsMTUxMjA1LDE1MTQzMCwxMzI5ODUsMzY1NzAsMTUxNTk2LDIxMTM1LDIyMzM1LDI5MDQxLDE1'@; put 'MjIxNywxNTI2MDEsMTQ3Mjc0LDE1MDE4MywyMTk0OCwxNTI2NDYsMTUyNjg2LDE1ODU0NiwzNzMzMiwxMzQyNywxNTI4OTUsMTYxMzMwLDE1MjkyNiwxODIwMCwxNTI5MzAsMTUyOTM0LDE1MzU0MywxNDk4MjMsMTUzNjkzLDIwNTgyLDEzNTYzLDE0NDMzMiwyNDc5OCwxNTM4NTksMTgzMDAs'@; put 'MTY2MjE2LDE1NDI4NiwxNTQ1MDUsMTU0NjMwLDEzODY0MCwyMjQzMywyOTAwOSwyODU5OCwxNTU5MDYsMTYyODM0LDM2OTUwLDE1NjA4MiwxNTE0NTAsMzU2ODIsMTU2Njc0LDE1Njc0NiwyMzg5OSwxNTg3MTEsMzY2NjIsMTU2ODA0LDEzNzUwMCwzNTU2MiwxNTAwMDYsMTU2ODA4LDE0NzQz'@; put 'OSwxNTY5NDYsMTkzOTIsMTU3MTE5LDE1NzM2NSwxNDEwODMsMzc5ODksMTUzNTY5LDI0OTgxLDIzMDc5LDE5NDc2NSwyMDQxMSwyMjIwMSwxNDg3NjksMTU3NDM2LDIwMDc0LDE0OTgxMiwzODQ4NiwyODA0NywxNTg5MDksMTM4NDgsMzUxOTEsMTU3NTkzLDE1NzgwNiwxNTY2ODksMTU3Nzkw'@; put 'LDI5MTUxLDE1Nzg5NSwzMTU1NCwxNjgxMjgsMTMzNjQ5LDE1Nzk5MCwzNzEyNCwxNTgwMDksMzEzMDEsNDA0MzIsMTU4MjAyLDM5NDYyLDE1ODI1MywxMzkxOSwxNTY3NzcsMTMxMTA1LDMxMTA3LDE1ODI2MCwxNTg1NTUsMjM4NTIsMTQ0NjY1LDMzNzQzLDE1ODYyMSwxODEyOCwxNTg4ODQs'@; put 'MzAwMTEsMzQ5MTcsMTU5MTUwLDIyNzEwLDE0MTA4LDE0MDY4NSwxNTk4MTksMTYwMjA1LDE1NDQ0LDE2MDM4NCwxNjAzODksMzc1MDUsMTM5NjQyLDE2MDM5NSwzNzY4MCwxNjA0ODYsMTQ5OTY4LDI3NzA1LDM4MDQ3LDE2MDg0OCwxMzQ5MDQsMzQ4NTUsMzUwNjEsMTQxNjA2LDE2NDk3OSwx'@; put 'MzcxMzcsMjgzNDQsMTUwMDU4LDEzNzI0OCwxNDc1NiwxNDAwOSwyMzU2OCwzMTIwMywxNzcyNywyNjI5NCwxNzExODEsMTcwMTQ4LDM1MTM5LDE2MTc0MCwxNjE4ODAsMjIyMzAsMTY2MDcsMTM2NzE0LDE0NzUzLDE0NTE5OSwxNjQwNzIsMTM2MTMzLDI5MTAxLDMzNjM4LDE2MjI2OSwxNjgz'@; put 'NjAsMjMxNDMsMTk2MzksMTU5OTE5LDE2NjMxNSwxNjIzMDEsMTYyMzE0LDE2MjU3MSwxNjMxNzQsMTQ3ODM0LDMxNTU1LDMxMTAyLDE2Mzg0OSwyODU5NywxNzI3NjcsMjcxMzksMTY0NjMyLDIxNDEwLDE1OTIzOSwzNzgyMywyNjY3OCwzODc0OSwxNjQyMDcsMTYzODc1LDE1ODEzMywxMzYx'@; put 'NzMsMTQzOTE5LDE2MzkxMiwyMzk0MSwxNjY5NjAsMTYzOTcxLDIyMjkzLDM4OTQ3LDE2NjIxNywyMzk3OSwxNDk4OTYsMjYwNDYsMjcwOTMsMjE0NTgsMTUwMTgxLDE0NzMyOSwxNTM3NywyNjQyMiwxNjM5ODQsMTY0MDg0LDE2NDE0MiwxMzkxNjksMTY0MTc1LDE2NDIzMywxNjQyNzEsMTY0'@; put 'Mzc4LDE2NDYxNCwxNjQ2NTUsMTY0NzQ2LDEzNzcwLDE2NDk2OCwxNjU1NDYsMTg2ODIsMjU1NzQsMTY2MjMwLDMwNzI4LDM3NDYxLDE2NjMyOCwxNzM5NCwxNjYzNzUsMTczNzUsMTY2Mzc2LDE2NjcyNiwxNjY4NjgsMjMwMzIsMTY2OTIxLDM2NjE5LDE2Nzg3NywxNjgxNzIsMzE1NjksMTY4'@; put 'MjA4LDE2ODI1MiwxNTg2MywxNjgyODYsMTUwMjE4LDM2ODE2LDI5MzI3LDIyMTU1LDE2OTE5MSwxNjk0NDksMTY5MzkyLDE2OTQwMCwxNjk3NzgsMTcwMTkzLDE3MDMxMywxNzAzNDYsMTcwNDM1LDE3MDUzNiwxNzA3NjYsMTcxMzU0LDE3MTQxOSwzMjQxNSwxNzE3NjgsMTcxODExLDE5NjIw'@; put 'LDM4MjE1LDE3MjY5MSwyOTA5MCwxNzI3OTksMTk4NTcsMzY4ODIsMTczNTE1LDE5ODY4LDEzNDMwMCwzNjc5OCwyMTk1MywzNjc5NCwxNDA0NjQsMzY3OTMsMTUwMTYzLDE3NjczLDMyMzgzLDI4NTAyLDI3MzEzLDIwMjAyLDEzNTQwLDE2NjcwMCwxNjE5NDksMTQxMzgsMzY0ODAsMTM3MjA1'@; put 'LDE2Mzg3NiwxNjY3NjQsMTY2ODA5LDE2MjM2NiwxNTczNTksMTU4NTEsMTYxMzY1LDE0NjYxNSwxNTMxNDEsMTUzOTQyLDIwMTIyLDE1NTI2NSwxNTYyNDgsMjIyMDcsMTM0NzY1LDM2MzY2LDIzNDA1LDE0NzA4MCwxNTA2ODYsMjU1NjYsMjUyOTYsMTM3MjA2LDEzNzMzOSwyNTkwNCwyMjA2'@; put 'MSwxNTQ2OTgsMjE1MzAsMTUyMzM3LDE1ODE0LDE3MTQxNiwxOTU4MSwyMjA1MCwyMjA0NiwzMjU4NSwxNTUzNTIsMjI5MDEsMTQ2NzUyLDM0NjcyLDE5OTk2LDEzNTE0NiwxMzQ0NzMsMTQ1MDgyLDMzMDQ3LDQwMjg2LDM2MTIwLDMwMjY3LDQwMDA1LDMwMjg2LDMwNjQ5LDM3NzAxLDIxNTU0'@; put 'LDMzMDk2LDMzNTI3LDIyMDUzLDMzMDc0LDMzODE2LDMyOTU3LDIxOTk0LDMxMDc0LDIyMDgzLDIxNTI2LDEzNDgxMywxMzc3NCwyMjAyMSwyMjAwMSwyNjM1MywxNjQ1NzgsMTM4NjksMzAwMDQsMjJlMywyMTk0NiwyMTY1NSwyMTg3NCwxMzQyMDksMTM0Mjk0LDI0MjcyLDE1MTg4MCwxMzQ3'@; put 'NzQsMTQyNDM0LDEzNDgxOCw0MDYxOSwzMjA5MCwyMTk4MiwxMzUyODUsMjUyNDUsMzg3NjUsMjE2NTIsMzYwNDUsMjkxNzQsMzcyMzgsMjU1OTYsMjU1MjksMjU1OTgsMjE4NjUsMTQyMTQ3LDQwMDUwLDE0MzAyNywyMDg5MCwxMzUzNSwxMzQ1NjcsMjA5MDMsMjE1ODEsMjE3OTAsMjE3Nzks'@; put 'MzAzMTAsMzYzOTcsMTU3ODM0LDMwMTI5LDMyOTUwLDM0ODIwLDM0Njk0LDM1MDE1LDMzMjA2LDMzODIwLDEzNTM2MSwxNzY0NCwyOTQ0NCwxNDkyNTQsMjM0NDAsMzM1NDcsMTU3ODQzLDIyMTM5LDE0MTA0NCwxNjMxMTksMTQ3ODc1LDE2MzE4NywxNTk0NDAsMTYwNDM4LDM3MjMyLDEzNTY0'@; put 'MSwzNzM4NCwxNDY2ODQsMTczNzM3LDEzNDgyOCwxMzQ5MDUsMjkyODYsMTM4NDAyLDE4MjU0LDE1MTQ5MCwxNjM4MzMsMTM1MTQ3LDE2NjM0LDQwMDI5LDI1ODg3LDE0Mjc1MiwxODY3NSwxNDk0NzIsMTcxMzg4LDEzNTE0OCwxMzQ2NjYsMjQ2NzQsMTYxMTg3LDEzNTE0OSxudWxsLDE1NTcy'@; put 'MCwxMzU1NTksMjkwOTEsMzIzOTgsNDAyNzIsMTk5OTQsMTk5NzIsMTM2ODcsMjMzMDksMjc4MjYsMjEzNTEsMTM5OTYsMTQ4MTIsMjEzNzMsMTM5ODksMTQ5MDE2LDIyNjgyLDE1MDM4MiwzMzMyNSwyMTU3OSwyMjQ0MiwxNTQyNjEsMTMzNDk3LG51bGwsMTQ5MzAsMTQwMzg5LDI5NTU2LDE3'@; put 'MTY5MiwxOTcyMSwzOTkxNywxNDY2ODYsMTcxODI0LDE5NTQ3LDE1MTQ2NSwxNjkzNzQsMTcxOTk4LDMzODg0LDE0Njg3MCwxNjA0MzQsMTU3NjE5LDE0NTE4NCwyNTM5MCwzMjAzNywxNDcxOTEsMTQ2OTg4LDE0ODkwLDM2ODcyLDIxMTk2LDE1OTg4LDEzOTQ2LDE3ODk3LDEzMjIzOCwzMDI3'@; put 'MiwyMzI4MCwxMzQ4MzgsMzA4NDIsMTYzNjMwLDIyNjk1LDE2NTc1LDIyMTQwLDM5ODE5LDIzOTI0LDMwMjkyLDE3MzEwOCw0MDU4MSwxOTY4MSwzMDIwMSwxNDMzMSwyNDg1NywxNDM1NzgsMTQ4NDY2LG51bGwsMjIxMDksMTM1ODQ5LDIyNDM5LDE0OTg1OSwxNzE1MjYsMjEwNDQsMTU5OTE4'@; put 'LDEzNzQxLDI3NzIyLDQwMzE2LDMxODMwLDM5NzM3LDIyNDk0LDEzNzA2OCwyMzYzNSwyNTgxMSwxNjkxNjgsMTU2NDY5LDE2MDEwMCwzNDQ3NywxMzQ0NDAsMTU5MDEwLDE1MDI0MiwxMzQ1MTMsbnVsbCwyMDk5MCwxMzkwMjMsMjM5NTAsMzg2NTksMTM4NzA1LDQwNTc3LDM2OTQwLDMxNTE5'@; put 'LDM5NjgyLDIzNzYxLDMxNjUxLDI1MTkyLDI1Mzk3LDM5Njc5LDMxNjk1LDM5NzIyLDMxODcwLDM5NzI2LDMxODEwLDMxODc4LDM5OTU3LDMxNzQwLDM5Njg5LDQwNzI3LDM5OTYzLDE0OTgyMiw0MDc5NCwyMTg3NSwyMzQ5MSwyMDQ3Nyw0MDYwMCwyMDQ2NiwyMTA4OCwxNTg3OCwyMTIwMSwy'@; put 'MjM3NSwyMDU2NiwyMjk2NywyNDA4MiwzODg1Niw0MDM2MywzNjcwMCwyMTYwOSwzODgzNiwzOTIzMiwzODg0MiwyMTI5MiwyNDg4MCwyNjkyNCwyMTQ2NiwzOTk0Niw0MDE5NCwxOTUxNSwzODQ2NSwyNzAwOCwyMDY0NiwzMDAyMiwxMzcwNjksMzkzODYsMjExMDcsbnVsbCwzNzIwOSwzODUy'@; put 'OSwzNzIxMixudWxsLDM3MjAxLDE2NzU3NSwyNTQ3MSwxNTkwMTEsMjczMzgsMjIwMzMsMzcyNjIsMzAwNzQsMjUyMjEsMTMyMDkyLDI5NTE5LDMxODU2LDE1NDY1NywxNDY2ODUsbnVsbCwxNDk3ODUsMzA0MjIsMzk4MzcsMjAwMTAsMTM0MzU2LDMzNzI2LDM0ODgyLG51bGwsMjM2MjYsMjcw'@; put 'NzIsMjA3MTcsMjIzOTQsMjEwMjMsMjQwNTMsMjAxNzQsMjc2OTcsMTMxNTcwLDIwMjgxLDIxNjYwLDIxNzIyLDIxMTQ2LDM2MjI2LDEzODIyLDI0MzMyLDEzODExLG51bGwsMjc0NzQsMzcyNDQsNDA4NjksMzk4MzEsMzg5NTgsMzkwOTIsMzk2MTAsNDA2MTYsNDA1ODAsMjkwNTAsMzE1MDgs'@; put 'bnVsbCwyNzY0MiwzNDg0MCwzMjYzMixudWxsLDIyMDQ4LDE3MzY0MiwzNjQ3MSw0MDc4NyxudWxsLDM2MzA4LDM2NDMxLDQwNDc2LDM2MzUzLDI1MjE4LDE2NDczMywzNjM5MiwzNjQ2OSwzMTQ0MywxNTAxMzUsMzEyOTQsMzA5MzYsMjc4ODIsMzU0MzEsMzAyMTUsMTY2NDkwLDQwNzQyLDI3'@; put 'ODU0LDM0Nzc0LDMwMTQ3LDE3MjcyMiwzMDgwMywxOTQ2MjQsMzYxMDgsMjk0MTAsMjk1NTMsMzU2MjksMjk0NDIsMjk5MzcsMzYwNzUsMTUwMjAzLDM0MzUxLDI0NTA2LDM0OTc2LDE3NTkxLG51bGwsMTM3Mjc1LDE1OTIzNyxudWxsLDM1NDU0LDE0MDU3MSxudWxsLDI0ODI5LDMwMzExLDM5'@; put 'NjM5LDQwMjYwLDM3NzQyLDM5ODIzLDM0ODA1LG51bGwsMzQ4MzEsMzYwODcsMjk0ODQsMzg2ODksMzk4NTYsMTM3ODIsMjkzNjIsMTk0NjMsMzE4MjUsMzkyNDIsMTU1OTkzLDI0OTIxLDE5NDYwLDQwNTk4LDI0OTU3LG51bGwsMjIzNjcsMjQ5NDMsMjUyNTQsMjUxNDUsMjUyOTQsMTQ5NDAs'@; put 'MjUwNTgsMjE0MTgsMTQ0MzczLDI1NDQ0LDI2NjI2LDEzNzc4LDIzODk1LDE2Njg1MCwzNjgyNiwxNjc0ODEsbnVsbCwyMDY5NywxMzg1NjYsMzA5ODIsMjEyOTgsMzg0NTYsMTM0OTcxLDE2NDg1LG51bGwsMzA3MTgsbnVsbCwzMTkzOCwxNTU0MTgsMzE5NjIsMzEyNzcsMzI4NzAsMzI4Njcs'@; put 'MzIwNzcsMjk5NTcsMjk5MzgsMzUyMjAsMzMzMDYsMjYzODAsMzI4NjYsMTYwOTAyLDMyODU5LDI5OTM2LDMzMDI3LDMwNTAwLDM1MjA5LDE1NzY0NCwzMDAzNSwxNTk0NDEsMzQ3MjksMzQ3NjYsMzMyMjQsMzQ3MDAsMzU0MDEsMzYwMTMsMzU2NTEsMzA1MDcsMjk5NDQsMzQwMTAsMTM4Nzcs'@; put 'MjcwNTgsMzYyNjIsbnVsbCwzNTI0MSwyOTgwMCwyODA4OSwzNDc1MywxNDc0NzMsMjk5MjcsMTU4MzUsMjkwNDYsMjQ3NDAsMjQ5ODgsMTU1NjksMjkwMjYsMjQ2OTUsbnVsbCwzMjYyNSwxNjY3MDEsMjkyNjQsMjQ4MDksMTkzMjYsMjEwMjQsMTUzODQsMTQ2NjMxLDE1NTM1MSwxNjEzNjYs'@; put 'MTUyODgxLDEzNzU0MCwxMzU5MzQsMTcwMjQzLDE1OTE5NiwxNTk5MTcsMjM3NDUsMTU2MDc3LDE2NjQxNSwxNDUwMTUsMTMxMzEwLDE1Nzc2NiwxNTEzMTAsMTc3NjIsMjMzMjcsMTU2NDkyLDQwNzg0LDQwNjE0LDE1NjI2NywxMjI4OCw2NTI5MiwxMjI4OSwxMjI5MCw2NTI5NCw4MjMxLDY1'@; put 'MzA3LDY1MzA2LDY1MzExLDY1MjgxLDY1MDcyLDgyMzAsODIyOSw2NTEwNCw2NTEwNSw2NTEwNiwxODMsNjUxMDgsNjUxMDksNjUxMTAsNjUxMTEsNjUzNzIsODIxMSw2NTA3Myw4MjEyLDY1MDc1LDk1ODgsNjUwNzYsNjUxMDMsNjUyODgsNjUyODksNjUwNzcsNjUwNzgsNjUzNzEsNjUzNzMs'@; put 'NjUwNzksNjUwODAsMTIzMDgsMTIzMDksNjUwODEsNjUwODIsMTIzMDQsMTIzMDUsNjUwODMsNjUwODQsMTIyOTgsMTIyOTksNjUwODUsNjUwODYsMTIyOTYsMTIyOTcsNjUwODcsNjUwODgsMTIzMDAsMTIzMDEsNjUwODksNjUwOTAsMTIzMDIsMTIzMDMsNjUwOTEsNjUwOTIsNjUxMTMsNjUx'@; put 'MTQsNjUxMTUsNjUxMTYsNjUxMTcsNjUxMTgsODIxNiw4MjE3LDgyMjAsODIyMSwxMjMxNywxMjMxOCw4MjQ1LDgyNDIsNjUyODMsNjUyODYsNjUyOTAsODI1MSwxNjcsMTIyOTEsOTY3NSw5Njc5LDk2NTEsOTY1MCw5Njc4LDk3MzQsOTczMyw5NjcxLDk2NzAsOTYzMyw5NjMyLDk2NjEsOTY2'@; put 'MCwxMjk2Myw4NDUzLDE3NSw2NTUwNyw2NTM0Myw3MTcsNjUwOTcsNjUwOTgsNjUxMDEsNjUxMDIsNjUwOTksNjUxMDAsNjUxMTksNjUxMjAsNjUxMjEsNjUyOTEsNjUyOTMsMjE1LDI0NywxNzcsODczMCw2NTMwOCw2NTMxMCw2NTMwOSw4ODA2LDg4MDcsODgwMCw4NzM0LDg3ODYsODgwMSw2'@; put 'NTEyMiw2NTEyMyw2NTEyNCw2NTEyNSw2NTEyNiw2NTM3NCw4NzQ1LDg3NDYsODg2OSw4NzM2LDg3MzUsODg5NSwxMzI2NiwxMzI2NSw4NzQ3LDg3NTAsODc1Nyw4NzU2LDk3OTIsOTc5NCw4ODUzLDg4NTcsODU5Myw4NTk1LDg1OTIsODU5NCw4NTk4LDg1OTksODYwMSw4NjAwLDg3NDEsODcz'@; put 'OSw2NTI5NSw2NTM0MCw4NzI1LDY1MTI4LDY1Mjg0LDY1NTA5LDEyMzA2LDY1NTA0LDY1NTA1LDY1Mjg1LDY1MzEyLDg0NTEsODQ1Nyw2NTEyOSw2NTEzMCw2NTEzMSwxMzI2OSwxMzIxMiwxMzIxMywxMzIxNCwxMzI2MiwxMzIxNywxMzE5OCwxMzE5OSwxMzI1MiwxNzYsMjA4MjUsMjA4Mjcs'@; put 'MjA4MzAsMjA4MjksMjA4MzMsMjA4MzUsMjE5OTEsMjk5MjksMzE5NTAsOTYwMSw5NjAyLDk2MDMsOTYwNCw5NjA1LDk2MDYsOTYwNyw5NjA4LDk2MTUsOTYxNCw5NjEzLDk2MTIsOTYxMSw5NjEwLDk2MDksOTUzMiw5NTI0LDk1MTYsOTUwOCw5NTAwLDk2MjAsOTQ3Miw5NDc0LDk2MjEsOTQ4'@; put 'NCw5NDg4LDk0OTIsOTQ5Niw5NTgxLDk1ODIsOTU4NCw5NTgzLDk1NTIsOTU2Niw5NTc4LDk1NjksOTY5OCw5Njk5LDk3MDEsOTcwMCw5NTg1LDk1ODYsOTU4Nyw2NTI5Niw2NTI5Nyw2NTI5OCw2NTI5OSw2NTMwMCw2NTMwMSw2NTMwMiw2NTMwMyw2NTMwNCw2NTMwNSw4NTQ0LDg1NDUsODU0'@; put 'Niw4NTQ3LDg1NDgsODU0OSw4NTUwLDg1NTEsODU1Miw4NTUzLDEyMzIxLDEyMzIyLDEyMzIzLDEyMzI0LDEyMzI1LDEyMzI2LDEyMzI3LDEyMzI4LDEyMzI5LDIxMzEzLDIxMzE2LDIxMzE3LDY1MzEzLDY1MzE0LDY1MzE1LDY1MzE2LDY1MzE3LDY1MzE4LDY1MzE5LDY1MzIwLDY1MzIxLDY1'@; put 'MzIyLDY1MzIzLDY1MzI0LDY1MzI1LDY1MzI2LDY1MzI3LDY1MzI4LDY1MzI5LDY1MzMwLDY1MzMxLDY1MzMyLDY1MzMzLDY1MzM0LDY1MzM1LDY1MzM2LDY1MzM3LDY1MzM4LDY1MzQ1LDY1MzQ2LDY1MzQ3LDY1MzQ4LDY1MzQ5LDY1MzUwLDY1MzUxLDY1MzUyLDY1MzUzLDY1MzU0LDY1MzU1'@; put 'LDY1MzU2LDY1MzU3LDY1MzU4LDY1MzU5LDY1MzYwLDY1MzYxLDY1MzYyLDY1MzYzLDY1MzY0LDY1MzY1LDY1MzY2LDY1MzY3LDY1MzY4LDY1MzY5LDY1MzcwLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkz'@; put 'Miw5MzMsOTM0LDkzNSw5MzYsOTM3LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDEyNTQ5LDEyNTUwLDEyNTUxLDEyNTUyLDEyNTUzLDEyNTU0LDEyNTU1LDEyNTU2'@; put 'LDEyNTU3LDEyNTU4LDEyNTU5LDEyNTYwLDEyNTYxLDEyNTYyLDEyNTYzLDEyNTY0LDEyNTY1LDEyNTY2LDEyNTY3LDEyNTY4LDEyNTY5LDEyNTcwLDEyNTcxLDEyNTcyLDEyNTczLDEyNTc0LDEyNTc1LDEyNTc2LDEyNTc3LDEyNTc4LDEyNTc5LDEyNTgwLDEyNTgxLDEyNTgyLDEyNTgzLDEy'@; put 'NTg0LDEyNTg1LDcyOSw3MTMsNzE0LDcxMSw3MTUsOTIxNiw5MjE3LDkyMTgsOTIxOSw5MjIwLDkyMjEsOTIyMiw5MjIzLDkyMjQsOTIyNSw5MjI2LDkyMjcsOTIyOCw5MjI5LDkyMzAsOTIzMSw5MjMyLDkyMzMsOTIzNCw5MjM1LDkyMzYsOTIzNyw5MjM4LDkyMzksOTI0MCw5MjQxLDkyNDIs'@; put 'OTI0Myw5MjQ0LDkyNDUsOTI0Niw5MjQ3LDkyNDksODM2NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsMTk5NjgsMjAwNTcsMTk5NjksMTk5NzEsMjAwMzUsMjAwNjEsMjAxMDIsMjAxMDgsMjAxNTQsMjA3OTksMjA4MzcsMjA4NDMsMjA5NjAsMjA5OTIsMjA5OTMsMjExNDcsMjEyNjksMjEzMTMsMjEzNDAsMjE0NDgsMTk5NzcsMTk5NzksMTk5NzYsMTk5NzgsMjAwMTEs'@; put 'MjAwMjQsMjA5NjEsMjAwMzcsMjAwNDAsMjAwNjMsMjAwNjIsMjAxMTAsMjAxMjksMjA4MDAsMjA5OTUsMjEyNDIsMjEzMTUsMjE0NDksMjE0NzUsMjIzMDMsMjI3NjMsMjI4MDUsMjI4MjMsMjI4OTksMjMzNzYsMjMzNzcsMjMzNzksMjM1NDQsMjM1NjcsMjM1ODYsMjM2MDgsMjM2NjUsMjQw'@; put 'MjksMjQwMzcsMjQwNDksMjQwNTAsMjQwNTEsMjQwNjIsMjQxNzgsMjQzMTgsMjQzMzEsMjQzMzksMjUxNjUsMTk5ODUsMTk5ODQsMTk5ODEsMjAwMTMsMjAwMTYsMjAwMjUsMjAwNDMsMjM2MDksMjAxMDQsMjAxMTMsMjAxMTcsMjAxMTQsMjAxMTYsMjAxMzAsMjAxNjEsMjAxNjAsMjAxNjMs'@; put 'MjAxNjYsMjAxNjcsMjAxNzMsMjAxNzAsMjAxNzEsMjAxNjQsMjA4MDMsMjA4MDEsMjA4MzksMjA4NDUsMjA4NDYsMjA4NDQsMjA4ODcsMjA5ODIsMjA5OTgsMjA5OTksMjFlMywyMTI0MywyMTI0NiwyMTI0NywyMTI3MCwyMTMwNSwyMTMyMCwyMTMxOSwyMTMxNywyMTM0MiwyMTM4MCwyMTQ1'@; put 'MSwyMTQ1MCwyMTQ1MywyMjc2NCwyMjgyNSwyMjgyNywyMjgyNiwyMjgyOSwyMzM4MCwyMzU2OSwyMzU4OCwyMzYxMCwyMzY2MywyNDA1MiwyNDE4NywyNDMxOSwyNDM0MCwyNDM0MSwyNDUxNSwyNTA5NiwyNTE0MiwyNTE2MywyNTE2NiwyNTkwMywyNTk5MSwyNjAwNywyNjAyMCwyNjA0MSwy'@; put 'NjA4NSwyNjM1MiwyNjM3NiwyNjQwOCwyNzQyNCwyNzQ5MCwyNzUxMywyNzU5NSwyNzYwNCwyNzYxMSwyNzY2MywyNzcwMCwyODc3OSwyOTIyNiwyOTIzOCwyOTI0MywyOTI1NSwyOTI3MywyOTI3NSwyOTM1NiwyOTU3OSwxOTk5MywxOTk5MCwxOTk4OSwxOTk4OCwxOTk5MiwyMDAyNywyMDA0'@; put 'NSwyMDA0NywyMDA0NiwyMDE5NywyMDE4NCwyMDE4MCwyMDE4MSwyMDE4MiwyMDE4MywyMDE5NSwyMDE5NiwyMDE4NSwyMDE5MCwyMDgwNSwyMDgwNCwyMDg3MywyMDg3NCwyMDkwOCwyMDk4NSwyMDk4NiwyMDk4NCwyMTAwMiwyMTE1MiwyMTE1MSwyMTI1MywyMTI1NCwyMTI3MSwyMTI3Nywy'@; put 'MDE5MSwyMTMyMiwyMTMyMSwyMTM0NSwyMTM0NCwyMTM1OSwyMTM1OCwyMTQzNSwyMTQ4NywyMTQ3NiwyMTQ5MSwyMTQ4NCwyMTQ4NiwyMTQ4MSwyMTQ4MCwyMTUwMCwyMTQ5NiwyMTQ5MywyMTQ4MywyMTQ3OCwyMTQ4MiwyMTQ5MCwyMTQ4OSwyMTQ4OCwyMTQ3NywyMTQ4NSwyMTQ5OSwyMjIz'@; put 'NSwyMjIzNCwyMjgwNiwyMjgzMCwyMjgzMywyMjkwMCwyMjkwMiwyMzM4MSwyMzQyNywyMzYxMiwyNDA0MCwyNDAzOSwyNDAzOCwyNDA2NiwyNDA2NywyNDE3OSwyNDE4OCwyNDMyMSwyNDM0NCwyNDM0MywyNDUxNywyNTA5OCwyNTE3MSwyNTE3MiwyNTE3MCwyNTE2OSwyNjAyMSwyNjA4Niwy'@; put 'NjQxNCwyNjQxMiwyNjQxMCwyNjQxMSwyNjQxMywyNzQ5MSwyNzU5NywyNzY2NSwyNzY2NCwyNzcwNCwyNzcxMywyNzcxMiwyNzcxMCwyOTM1OSwyOTU3MiwyOTU3NywyOTkxNiwyOTkyNiwyOTk3NiwyOTk4MywyOTk5MiwyOTk5MywzZTQsMzAwMDEsMzAwMDIsMzAwMDMsMzAwOTEsMzAzMzMs'@; put 'MzAzODIsMzAzOTksMzA0NDYsMzA2ODMsMzA2OTAsMzA3MDcsMzEwMzQsMzExNjYsMzEzNDgsMzE0MzUsMTk5OTgsMTk5OTksMjAwNTAsMjAwNTEsMjAwNzMsMjAxMjEsMjAxMzIsMjAxMzQsMjAxMzMsMjAyMjMsMjAyMzMsMjAyNDksMjAyMzQsMjAyNDUsMjAyMzcsMjAyNDAsMjAyNDEsMjAy'@; put 'MzksMjAyMTAsMjAyMTQsMjAyMTksMjAyMDgsMjAyMTEsMjAyMjEsMjAyMjUsMjAyMzUsMjA4MDksMjA4MDcsMjA4MDYsMjA4MDgsMjA4NDAsMjA4NDksMjA4NzcsMjA5MTIsMjEwMTUsMjEwMDksMjEwMTAsMjEwMDYsMjEwMTQsMjExNTUsMjEyNTYsMjEyODEsMjEyODAsMjEzNjAsMjEzNjEs'@; put 'MjE1MTMsMjE1MTksMjE1MTYsMjE1MTQsMjE1MjAsMjE1MDUsMjE1MTUsMjE1MDgsMjE1MjEsMjE1MTcsMjE1MTIsMjE1MDcsMjE1MTgsMjE1MTAsMjE1MjIsMjIyNDAsMjIyMzgsMjIyMzcsMjIzMjMsMjIzMjAsMjIzMTIsMjIzMTcsMjIzMTYsMjIzMTksMjIzMTMsMjI4MDksMjI4MTAsMjI4'@; put 'MzksMjI4NDAsMjI5MTYsMjI5MDQsMjI5MTUsMjI5MDksMjI5MDUsMjI5MTQsMjI5MTMsMjMzODMsMjMzODQsMjM0MzEsMjM0MzIsMjM0MjksMjM0MzMsMjM1NDYsMjM1NzQsMjM2NzMsMjQwMzAsMjQwNzAsMjQxODIsMjQxODAsMjQzMzUsMjQzNDcsMjQ1MzcsMjQ1MzQsMjUxMDIsMjUxMDAs'@; put 'MjUxMDEsMjUxMDQsMjUxODcsMjUxNzksMjUxNzYsMjU5MTAsMjYwODksMjYwODgsMjYwOTIsMjYwOTMsMjYzNTQsMjYzNTUsMjYzNzcsMjY0MjksMjY0MjAsMjY0MTcsMjY0MjEsMjc0MjUsMjc0OTIsMjc1MTUsMjc2NzAsMjc3NDEsMjc3MzUsMjc3MzcsMjc3NDMsMjc3NDQsMjc3MjgsMjc3'@; put 'MzMsMjc3NDUsMjc3MzksMjc3MjUsMjc3MjYsMjg3ODQsMjkyNzksMjkyNzcsMzAzMzQsMzE0ODEsMzE4NTksMzE5OTIsMzI1NjYsMzI2NTAsMzI3MDEsMzI3NjksMzI3NzEsMzI3ODAsMzI3ODYsMzI4MTksMzI4OTUsMzI5MDUsMzI5MDcsMzI5MDgsMzMyNTEsMzMyNTgsMzMyNjcsMzMyNzYs'@; put 'MzMyOTIsMzMzMDcsMzMzMTEsMzMzOTAsMzMzOTQsMzM0MDYsMzQ0MTEsMzQ4ODAsMzQ4OTIsMzQ5MTUsMzUxOTksMzg0MzMsMjAwMTgsMjAxMzYsMjAzMDEsMjAzMDMsMjAyOTUsMjAzMTEsMjAzMTgsMjAyNzYsMjAzMTUsMjAzMDksMjAyNzIsMjAzMDQsMjAzMDUsMjAyODUsMjAyODIsMjAy'@; put 'ODAsMjAyOTEsMjAzMDgsMjAyODQsMjAyOTQsMjAzMjMsMjAzMTYsMjAzMjAsMjAyNzEsMjAzMDIsMjAyNzgsMjAzMTMsMjAzMTcsMjAyOTYsMjAzMTQsMjA4MTIsMjA4MTEsMjA4MTMsMjA4NTMsMjA5MTgsMjA5MTksMjEwMjksMjEwMjgsMjEwMzMsMjEwMzQsMjEwMzIsMjExNjMsMjExNjEs'@; put 'MjExNjIsMjExNjQsMjEyODMsMjEzNjMsMjEzNjUsMjE1MzMsMjE1NDksMjE1MzQsMjE1NjYsMjE1NDIsMjE1ODIsMjE1NDMsMjE1NzQsMjE1NzEsMjE1NTUsMjE1NzYsMjE1NzAsMjE1MzEsMjE1NDUsMjE1NzgsMjE1NjEsMjE1NjMsMjE1NjAsMjE1NTAsMjE1NTcsMjE1NTgsMjE1MzYsMjE1'@; put 'NjQsMjE1NjgsMjE1NTMsMjE1NDcsMjE1MzUsMjE1NDgsMjIyNTAsMjIyNTYsMjIyNDQsMjIyNTEsMjIzNDYsMjIzNTMsMjIzMzYsMjIzNDksMjIzNDMsMjIzNTAsMjIzMzQsMjIzNTIsMjIzNTEsMjIzMzEsMjI3NjcsMjI4NDYsMjI5NDEsMjI5MzAsMjI5NTIsMjI5NDIsMjI5NDcsMjI5Mzcs'@; put 'MjI5MzQsMjI5MjUsMjI5NDgsMjI5MzEsMjI5MjIsMjI5NDksMjMzODksMjMzODgsMjMzODYsMjMzODcsMjM0MzYsMjM0MzUsMjM0MzksMjM1OTYsMjM2MTYsMjM2MTcsMjM2MTUsMjM2MTQsMjM2OTYsMjM2OTcsMjM3MDAsMjM2OTIsMjQwNDMsMjQwNzYsMjQyMDcsMjQxOTksMjQyMDIsMjQz'@; put 'MTEsMjQzMjQsMjQzNTEsMjQ0MjAsMjQ0MTgsMjQ0MzksMjQ0NDEsMjQ1MzYsMjQ1MjQsMjQ1MzUsMjQ1MjUsMjQ1NjEsMjQ1NTUsMjQ1NjgsMjQ1NTQsMjUxMDYsMjUxMDUsMjUyMjAsMjUyMzksMjUyMzgsMjUyMTYsMjUyMDYsMjUyMjUsMjUxOTcsMjUyMjYsMjUyMTIsMjUyMTQsMjUyMDks'@; put 'MjUyMDMsMjUyMzQsMjUxOTksMjUyNDAsMjUxOTgsMjUyMzcsMjUyMzUsMjUyMzMsMjUyMjIsMjU5MTMsMjU5MTUsMjU5MTIsMjYwOTcsMjYzNTYsMjY0NjMsMjY0NDYsMjY0NDcsMjY0NDgsMjY0NDksMjY0NjAsMjY0NTQsMjY0NjIsMjY0NDEsMjY0MzgsMjY0NjQsMjY0NTEsMjY0NTUsMjc0'@; put 'OTMsMjc1OTksMjc3MTQsMjc3NDIsMjc4MDEsMjc3NzcsMjc3ODQsMjc3ODUsMjc3ODEsMjc4MDMsMjc3NTQsMjc3NzAsMjc3OTIsMjc3NjAsMjc3ODgsMjc3NTIsMjc3OTgsMjc3OTQsMjc3NzMsMjc3NzksMjc3NjIsMjc3NzQsMjc3NjQsMjc3ODIsMjc3NjYsMjc3ODksMjc3OTYsMjc4MDAs'@; put 'Mjc3NzgsMjg3OTAsMjg3OTYsMjg3OTcsMjg3OTIsMjkyODIsMjkyODEsMjkyODAsMjkzODAsMjkzNzgsMjk1OTAsMjk5OTYsMjk5OTUsMzAwMDcsMzAwMDgsMzAzMzgsMzA0NDcsMzA2OTEsMzExNjksMzExNjgsMzExNjcsMzEzNTAsMzE5OTUsMzI1OTcsMzI5MTgsMzI5MTUsMzI5MjUsMzI5'@; put 'MjAsMzI5MjMsMzI5MjIsMzI5NDYsMzMzOTEsMzM0MjYsMzM0MTksMzM0MjEsMzUyMTEsMzUyODIsMzUzMjgsMzU4OTUsMzU5MTAsMzU5MjUsMzU5OTcsMzYxOTYsMzYyMDgsMzYyNzUsMzY1MjMsMzY1NTQsMzY3NjMsMzY3ODQsMzY4MDIsMzY4MDYsMzY4MDUsMzY4MDQsMjQwMzMsMzcwMDks'@; put 'MzcwMjYsMzcwMzQsMzcwMzAsMzcwMjcsMzcxOTMsMzczMTgsMzczMjQsMzg0NTAsMzg0NDYsMzg0NDksMzg0NDIsMzg0NDQsMjAwMDYsMjAwNTQsMjAwODMsMjAxMDcsMjAxMjMsMjAxMjYsMjAxMzksMjAxNDAsMjAzMzUsMjAzODEsMjAzNjUsMjAzMzksMjAzNTEsMjAzMzIsMjAzNzksMjAz'@; put 'NjMsMjAzNTgsMjAzNTUsMjAzMzYsMjAzNDEsMjAzNjAsMjAzMjksMjAzNDcsMjAzNzQsMjAzNTAsMjAzNjcsMjAzNjksMjAzNDYsMjA4MjAsMjA4MTgsMjA4MjEsMjA4NDEsMjA4NTUsMjA4NTQsMjA4NTYsMjA5MjUsMjA5ODksMjEwNTEsMjEwNDgsMjEwNDcsMjEwNTAsMjEwNDAsMjEwMzgs'@; put 'MjEwNDYsMjEwNTcsMjExODIsMjExNzksMjEzMzAsMjEzMzIsMjEzMzEsMjEzMjksMjEzNTAsMjEzNjcsMjEzNjgsMjEzNjksMjE0NjIsMjE0NjAsMjE0NjMsMjE2MTksMjE2MjEsMjE2NTQsMjE2MjQsMjE2NTMsMjE2MzIsMjE2MjcsMjE2MjMsMjE2MzYsMjE2NTAsMjE2MzgsMjE2MjgsMjE2'@; put 'NDgsMjE2MTcsMjE2MjIsMjE2NDQsMjE2NTgsMjE2MDIsMjE2MDgsMjE2NDMsMjE2MjksMjE2NDYsMjIyNjYsMjI0MDMsMjIzOTEsMjIzNzgsMjIzNzcsMjIzNjksMjIzNzQsMjIzNzIsMjIzOTYsMjI4MTIsMjI4NTcsMjI4NTUsMjI4NTYsMjI4NTIsMjI4NjgsMjI5NzQsMjI5NzEsMjI5OTYs'@; put 'MjI5NjksMjI5NTgsMjI5OTMsMjI5ODIsMjI5OTIsMjI5ODksMjI5ODcsMjI5OTUsMjI5ODYsMjI5NTksMjI5NjMsMjI5OTQsMjI5ODEsMjMzOTEsMjMzOTYsMjMzOTUsMjM0NDcsMjM0NTAsMjM0NDgsMjM0NTIsMjM0NDksMjM0NTEsMjM1NzgsMjM2MjQsMjM2MjEsMjM2MjIsMjM3MzUsMjM3'@; put 'MTMsMjM3MzYsMjM3MjEsMjM3MjMsMjM3MjksMjM3MzEsMjQwODgsMjQwOTAsMjQwODYsMjQwODUsMjQwOTEsMjQwODEsMjQxODQsMjQyMTgsMjQyMTUsMjQyMjAsMjQyMTMsMjQyMTQsMjQzMTAsMjQzNTgsMjQzNTksMjQzNjEsMjQ0NDgsMjQ0NDksMjQ0NDcsMjQ0NDQsMjQ1NDEsMjQ1NDQs'@; put 'MjQ1NzMsMjQ1NjUsMjQ1NzUsMjQ1OTEsMjQ1OTYsMjQ2MjMsMjQ2MjksMjQ1OTgsMjQ2MTgsMjQ1OTcsMjQ2MDksMjQ2MTUsMjQ2MTcsMjQ2MTksMjQ2MDMsMjUxMTAsMjUxMDksMjUxNTEsMjUxNTAsMjUxNTIsMjUyMTUsMjUyODksMjUyOTIsMjUyODQsMjUyNzksMjUyODIsMjUyNzMsMjUy'@; put 'OTgsMjUzMDcsMjUyNTksMjUyOTksMjUzMDAsMjUyOTEsMjUyODgsMjUyNTYsMjUyNzcsMjUyNzYsMjUyOTYsMjUzMDUsMjUyODcsMjUyOTMsMjUyNjksMjUzMDYsMjUyNjUsMjUzMDQsMjUzMDIsMjUzMDMsMjUyODYsMjUyNjAsMjUyOTQsMjU5MTgsMjYwMjMsMjYwNDQsMjYxMDYsMjYxMzIs'@; put 'MjYxMzEsMjYxMjQsMjYxMTgsMjYxMTQsMjYxMjYsMjYxMTIsMjYxMjcsMjYxMzMsMjYxMjIsMjYxMTksMjYzODEsMjYzNzksMjY0NzcsMjY1MDcsMjY1MTcsMjY0ODEsMjY1MjQsMjY0ODMsMjY0ODcsMjY1MDMsMjY1MjUsMjY1MTksMjY0NzksMjY0ODAsMjY0OTUsMjY1MDUsMjY0OTQsMjY1'@; put 'MTIsMjY0ODUsMjY1MjIsMjY1MTUsMjY0OTIsMjY0NzQsMjY0ODIsMjc0MjcsMjc0OTQsMjc0OTUsMjc1MTksMjc2NjcsMjc2NzUsMjc4NzUsMjc4ODAsMjc4OTEsMjc4MjUsMjc4NTIsMjc4NzcsMjc4MjcsMjc4MzcsMjc4MzgsMjc4MzYsMjc4NzQsMjc4MTksMjc4NjEsMjc4NTksMjc4MzIs'@; put 'Mjc4NDQsMjc4MzMsMjc4NDEsMjc4MjIsMjc4NjMsMjc4NDUsMjc4ODksMjc4MzksMjc4MzUsMjc4NzMsMjc4NjcsMjc4NTAsMjc4MjAsMjc4ODcsMjc4NjgsMjc4NjIsMjc4NzIsMjg4MjEsMjg4MTQsMjg4MTgsMjg4MTAsMjg4MjUsMjkyMjgsMjkyMjksMjkyNDAsMjkyNTYsMjkyODcsMjky'@; put 'ODksMjkzNzYsMjkzOTAsMjk0MDEsMjkzOTksMjkzOTIsMjk2MDksMjk2MDgsMjk1OTksMjk2MTEsMjk2MDUsMzAwMTMsMzAxMDksMzAxMDUsMzAxMDYsMzAzNDAsMzA0MDIsMzA0NTAsMzA0NTIsMzA2OTMsMzA3MTcsMzEwMzgsMzEwNDAsMzEwNDEsMzExNzcsMzExNzYsMzEzNTQsMzEzNTMs'@; put 'MzE0ODIsMzE5OTgsMzI1OTYsMzI2NTIsMzI2NTEsMzI3NzMsMzI5NTQsMzI5MzMsMzI5MzAsMzI5NDUsMzI5MjksMzI5MzksMzI5MzcsMzI5NDgsMzI5MzgsMzI5NDMsMzMyNTMsMzMyNzgsMzMyOTMsMzM0NTksMzM0MzcsMzM0MzMsMzM0NTMsMzM0NjksMzM0MzksMzM0NjUsMzM0NTcsMzM0'@; put 'NTIsMzM0NDUsMzM0NTUsMzM0NjQsMzM0NDMsMzM0NTYsMzM0NzAsMzM0NjMsMzQzODIsMzQ0MTcsMjEwMjEsMzQ5MjAsMzY1NTUsMzY4MTQsMzY4MjAsMzY4MTcsMzcwNDUsMzcwNDgsMzcwNDEsMzcwNDYsMzczMTksMzczMjksMzgyNjMsMzgyNzIsMzg0MjgsMzg0NjQsMzg0NjMsMzg0NTks'@; put 'Mzg0NjgsMzg0NjYsMzg1ODUsMzg2MzIsMzg3MzgsMzg3NTAsMjAxMjcsMjAxNDEsMjAxNDIsMjA0NDksMjA0MDUsMjAzOTksMjA0MTUsMjA0NDgsMjA0MzMsMjA0MzEsMjA0NDUsMjA0MTksMjA0MDYsMjA0NDAsMjA0NDcsMjA0MjYsMjA0MzksMjAzOTgsMjA0MzIsMjA0MjAsMjA0MTgsMjA0'@; put 'NDIsMjA0MzAsMjA0NDYsMjA0MDcsMjA4MjMsMjA4ODIsMjA4ODEsMjA4OTYsMjEwNzAsMjEwNTksMjEwNjYsMjEwNjksMjEwNjgsMjEwNjcsMjEwNjMsMjExOTEsMjExOTMsMjExODcsMjExODUsMjEyNjEsMjEzMzUsMjEzNzEsMjE0MDIsMjE0NjcsMjE2NzYsMjE2OTYsMjE2NzIsMjE3MTAs'@; put 'MjE3MDUsMjE2ODgsMjE2NzAsMjE2ODMsMjE3MDMsMjE2OTgsMjE2OTMsMjE2NzQsMjE2OTcsMjE3MDAsMjE3MDQsMjE2NzksMjE2NzUsMjE2ODEsMjE2OTEsMjE2NzMsMjE2NzEsMjE2OTUsMjIyNzEsMjI0MDIsMjI0MTEsMjI0MzIsMjI0MzUsMjI0MzQsMjI0NzgsMjI0NDYsMjI0MTksMjI4'@; put 'NjksMjI4NjUsMjI4NjMsMjI4NjIsMjI4NjQsMjMwMDQsMjNlMywyMzAzOSwyMzAxMSwyMzAxNiwyMzA0MywyMzAxMywyMzAxOCwyMzAwMiwyMzAxNCwyMzA0MSwyMzAzNSwyMzQwMSwyMzQ1OSwyMzQ2MiwyMzQ2MCwyMzQ1OCwyMzQ2MSwyMzU1MywyMzYzMCwyMzYzMSwyMzYyOSwyMzYyNywy'@; put 'Mzc2OSwyMzc2MiwyNDA1NSwyNDA5MywyNDEwMSwyNDA5NSwyNDE4OSwyNDIyNCwyNDIzMCwyNDMxNCwyNDMyOCwyNDM2NSwyNDQyMSwyNDQ1NiwyNDQ1MywyNDQ1OCwyNDQ1OSwyNDQ1NSwyNDQ2MCwyNDQ1NywyNDU5NCwyNDYwNSwyNDYwOCwyNDYxMywyNDU5MCwyNDYxNiwyNDY1MywyNDY4'@; put 'OCwyNDY4MCwyNDY3NCwyNDY0NiwyNDY0MywyNDY4NCwyNDY4MywyNDY4MiwyNDY3NiwyNTE1MywyNTMwOCwyNTM2NiwyNTM1MywyNTM0MCwyNTMyNSwyNTM0NSwyNTMyNiwyNTM0MSwyNTM1MSwyNTMyOSwyNTMzNSwyNTMyNywyNTMyNCwyNTM0MiwyNTMzMiwyNTM2MSwyNTM0NiwyNTkxOSwy'@; put 'NTkyNSwyNjAyNywyNjA0NSwyNjA4MiwyNjE0OSwyNjE1NywyNjE0NCwyNjE1MSwyNjE1OSwyNjE0MywyNjE1MiwyNjE2MSwyNjE0OCwyNjM1OSwyNjYyMywyNjU3OSwyNjYwOSwyNjU4MCwyNjU3NiwyNjYwNCwyNjU1MCwyNjU0MywyNjYxMywyNjYwMSwyNjYwNywyNjU2NCwyNjU3NywyNjU0'@; put 'OCwyNjU4NiwyNjU5NywyNjU1MiwyNjU3NSwyNjU5MCwyNjYxMSwyNjU0NCwyNjU4NSwyNjU5NCwyNjU4OSwyNjU3OCwyNzQ5OCwyNzUyMywyNzUyNiwyNzU3MywyNzYwMiwyNzYwNywyNzY3OSwyNzg0OSwyNzkxNSwyNzk1NCwyNzk0NiwyNzk2OSwyNzk0MSwyNzkxNiwyNzk1MywyNzkzNCwy'@; put 'NzkyNywyNzk2MywyNzk2NSwyNzk2NiwyNzk1OCwyNzkzMSwyNzg5MywyNzk2MSwyNzk0MywyNzk2MCwyNzk0NSwyNzk1MCwyNzk1NywyNzkxOCwyNzk0NywyODg0MywyODg1OCwyODg1MSwyODg0NCwyODg0NywyODg0NSwyODg1NiwyODg0NiwyODgzNiwyOTIzMiwyOTI5OCwyOTI5NSwyOTMw'@; put 'MCwyOTQxNywyOTQwOCwyOTQwOSwyOTYyMywyOTY0MiwyOTYyNywyOTYxOCwyOTY0NSwyOTYzMiwyOTYxOSwyOTk3OCwyOTk5NywzMDAzMSwzMDAyOCwzMDAzMCwzMDAyNywzMDEyMywzMDExNiwzMDExNywzMDExNCwzMDExNSwzMDMyOCwzMDM0MiwzMDM0MywzMDM0NCwzMDQwOCwzMDQwNiwz'@; put 'MDQwMywzMDQwNSwzMDQ2NSwzMDQ1NywzMDQ1NiwzMDQ3MywzMDQ3NSwzMDQ2MiwzMDQ2MCwzMDQ3MSwzMDY4NCwzMDcyMiwzMDc0MCwzMDczMiwzMDczMywzMTA0NiwzMTA0OSwzMTA0OCwzMTA0NywzMTE2MSwzMTE2MiwzMTE4NSwzMTE4NiwzMTE3OSwzMTM1OSwzMTM2MSwzMTQ4NywzMTQ4'@; put 'NSwzMTg2OSwzMjAwMiwzMjAwNSwzMmUzLDMyMDA5LDMyMDA3LDMyMDA0LDMyMDA2LDMyNTY4LDMyNjU0LDMyNzAzLDMyNzcyLDMyNzg0LDMyNzgxLDMyNzg1LDMyODIyLDMyOTgyLDMyOTk3LDMyOTg2LDMyOTYzLDMyOTY0LDMyOTcyLDMyOTkzLDMyOTg3LDMyOTc0LDMyOTkwLDMyOTk2LDMy'@; put 'OTg5LDMzMjY4LDMzMzE0LDMzNTExLDMzNTM5LDMzNTQxLDMzNTA3LDMzNDk5LDMzNTEwLDMzNTQwLDMzNTA5LDMzNTM4LDMzNTQ1LDMzNDkwLDMzNDk1LDMzNTIxLDMzNTM3LDMzNTAwLDMzNDkyLDMzNDg5LDMzNTAyLDMzNDkxLDMzNTAzLDMzNTE5LDMzNTQyLDM0Mzg0LDM0NDI1LDM0NDI3'@; put 'LDM0NDI2LDM0ODkzLDM0OTIzLDM1MjAxLDM1Mjg0LDM1MzM2LDM1MzMwLDM1MzMxLDM1OTk4LDM2ZTMsMzYyMTIsMzYyMTEsMzYyNzYsMzY1NTcsMzY1NTYsMzY4NDgsMzY4MzgsMzY4MzQsMzY4NDIsMzY4MzcsMzY4NDUsMzY4NDMsMzY4MzYsMzY4NDAsMzcwNjYsMzcwNzAsMzcwNTcsMzcw'@; put 'NTksMzcxOTUsMzcxOTQsMzczMjUsMzgyNzQsMzg0ODAsMzg0NzUsMzg0NzYsMzg0NzcsMzg3NTQsMzg3NjEsMzg4NTksMzg4OTMsMzg4OTksMzg5MTMsMzkwODAsMzkxMzEsMzkxMzUsMzkzMTgsMzkzMjEsMjAwNTYsMjAxNDcsMjA0OTIsMjA0OTMsMjA1MTUsMjA0NjMsMjA1MTgsMjA1MTcs'@; put 'MjA0NzIsMjA1MjEsMjA1MDIsMjA0ODYsMjA1NDAsMjA1MTEsMjA1MDYsMjA0OTgsMjA0OTcsMjA0NzQsMjA0ODAsMjA1MDAsMjA1MjAsMjA0NjUsMjA1MTMsMjA0OTEsMjA1MDUsMjA1MDQsMjA0NjcsMjA0NjIsMjA1MjUsMjA1MjIsMjA0NzgsMjA1MjMsMjA0ODksMjA4NjAsMjA5MDAsMjA5'@; put 'MDEsMjA4OTgsMjA5NDEsMjA5NDAsMjA5MzQsMjA5MzksMjEwNzgsMjEwODQsMjEwNzYsMjEwODMsMjEwODUsMjEyOTAsMjEzNzUsMjE0MDcsMjE0MDUsMjE0NzEsMjE3MzYsMjE3NzYsMjE3NjEsMjE4MTUsMjE3NTYsMjE3MzMsMjE3NDYsMjE3NjYsMjE3NTQsMjE3ODAsMjE3MzcsMjE3NDEs'@; put 'MjE3MjksMjE3NjksMjE3NDIsMjE3MzgsMjE3MzQsMjE3OTksMjE3NjcsMjE3NTcsMjE3NzUsMjIyNzUsMjIyNzYsMjI0NjYsMjI0ODQsMjI0NzUsMjI0NjcsMjI1MzcsMjI3OTksMjI4NzEsMjI4NzIsMjI4NzQsMjMwNTcsMjMwNjQsMjMwNjgsMjMwNzEsMjMwNjcsMjMwNTksMjMwMjAsMjMw'@; put 'NzIsMjMwNzUsMjMwODEsMjMwNzcsMjMwNTIsMjMwNDksMjM0MDMsMjM2NDAsMjM0NzIsMjM0NzUsMjM0NzgsMjM0NzYsMjM0NzAsMjM0NzcsMjM0ODEsMjM0ODAsMjM1NTYsMjM2MzMsMjM2MzcsMjM2MzIsMjM3ODksMjM4MDUsMjM4MDMsMjM3ODYsMjM3ODQsMjM3OTIsMjM3OTgsMjM4MDks'@; put 'MjM3OTYsMjQwNDYsMjQxMDksMjQxMDcsMjQyMzUsMjQyMzcsMjQyMzEsMjQzNjksMjQ0NjYsMjQ0NjUsMjQ0NjQsMjQ2NjUsMjQ2NzUsMjQ2NzcsMjQ2NTYsMjQ2NjEsMjQ2ODUsMjQ2ODEsMjQ2ODcsMjQ3MDgsMjQ3MzUsMjQ3MzAsMjQ3MTcsMjQ3MjQsMjQ3MTYsMjQ3MDksMjQ3MjYsMjUx'@; put 'NTksMjUzMzEsMjUzNTIsMjUzNDMsMjU0MjIsMjU0MDYsMjUzOTEsMjU0MjksMjU0MTAsMjU0MTQsMjU0MjMsMjU0MTcsMjU0MDIsMjU0MjQsMjU0MDUsMjUzODYsMjUzODcsMjUzODQsMjU0MjEsMjU0MjAsMjU5MjgsMjU5MjksMjYwMDksMjYwNDksMjYwNTMsMjYxNzgsMjYxODUsMjYxOTEs'@; put 'MjYxNzksMjYxOTQsMjYxODgsMjYxODEsMjYxNzcsMjYzNjAsMjYzODgsMjYzODksMjYzOTEsMjY2NTcsMjY2ODAsMjY2OTYsMjY2OTQsMjY3MDcsMjY2ODEsMjY2OTAsMjY3MDgsMjY2NjUsMjY4MDMsMjY2NDcsMjY3MDAsMjY3MDUsMjY2ODUsMjY2MTIsMjY3MDQsMjY2ODgsMjY2ODQsMjY2'@; put 'OTEsMjY2NjYsMjY2OTMsMjY2NDMsMjY2NDgsMjY2ODksMjc1MzAsMjc1MjksMjc1NzUsMjc2ODMsMjc2ODcsMjc2ODgsMjc2ODYsMjc2ODQsMjc4ODgsMjgwMTAsMjgwNTMsMjgwNDAsMjgwMzksMjgwMDYsMjgwMjQsMjgwMjMsMjc5OTMsMjgwNTEsMjgwMTIsMjgwNDEsMjgwMTQsMjc5OTQs'@; put 'MjgwMjAsMjgwMDksMjgwNDQsMjgwNDIsMjgwMjUsMjgwMzcsMjgwMDUsMjgwNTIsMjg4NzQsMjg4ODgsMjg5MDAsMjg4ODksMjg4NzIsMjg4NzksMjkyNDEsMjkzMDUsMjk0MzYsMjk0MzMsMjk0MzcsMjk0MzIsMjk0MzEsMjk1NzQsMjk2NzcsMjk3MDUsMjk2NzgsMjk2NjQsMjk2NzQsMjk2'@; put 'NjIsMzAwMzYsMzAwNDUsMzAwNDQsMzAwNDIsMzAwNDEsMzAxNDIsMzAxNDksMzAxNTEsMzAxMzAsMzAxMzEsMzAxNDEsMzAxNDAsMzAxMzcsMzAxNDYsMzAxMzYsMzAzNDcsMzAzODQsMzA0MTAsMzA0MTMsMzA0MTQsMzA1MDUsMzA0OTUsMzA0OTYsMzA1MDQsMzA2OTcsMzA3NjgsMzA3NTks'@; put 'MzA3NzYsMzA3NDksMzA3NzIsMzA3NzUsMzA3NTcsMzA3NjUsMzA3NTIsMzA3NTEsMzA3NzAsMzEwNjEsMzEwNTYsMzEwNzIsMzEwNzEsMzEwNjIsMzEwNzAsMzEwNjksMzEwNjMsMzEwNjYsMzEyMDQsMzEyMDMsMzEyMDcsMzExOTksMzEyMDYsMzEyMDksMzExOTIsMzEzNjQsMzEzNjgsMzE0'@; put 'NDksMzE0OTQsMzE1MDUsMzE4ODEsMzIwMzMsMzIwMjMsMzIwMTEsMzIwMTAsMzIwMzIsMzIwMzQsMzIwMjAsMzIwMTYsMzIwMjEsMzIwMjYsMzIwMjgsMzIwMTMsMzIwMjUsMzIwMjcsMzI1NzAsMzI2MDcsMzI2NjAsMzI3MDksMzI3MDUsMzI3NzQsMzI3OTIsMzI3ODksMzI3OTMsMzI3OTEs'@; put 'MzI4MjksMzI4MzEsMzMwMDksMzMwMjYsMzMwMDgsMzMwMjksMzMwMDUsMzMwMTIsMzMwMzAsMzMwMTYsMzMwMTEsMzMwMzIsMzMwMjEsMzMwMzQsMzMwMjAsMzMwMDcsMzMyNjEsMzMyNjAsMzMyODAsMzMyOTYsMzMzMjIsMzMzMjMsMzMzMjAsMzMzMjQsMzM0NjcsMzM1NzksMzM2MTgsMzM2'@; put 'MjAsMzM2MTAsMzM1OTIsMzM2MTYsMzM2MDksMzM1ODksMzM1ODgsMzM2MTUsMzM1ODYsMzM1OTMsMzM1OTAsMzM1NTksMzM2MDAsMzM1ODUsMzM1NzYsMzM2MDMsMzQzODgsMzQ0NDIsMzQ0NzQsMzQ0NTEsMzQ0NjgsMzQ0NzMsMzQ0NDQsMzQ0NjcsMzQ0NjAsMzQ5MjgsMzQ5MzUsMzQ5NDUs'@; put 'MzQ5NDYsMzQ5NDEsMzQ5MzcsMzUzNTIsMzUzNDQsMzUzNDIsMzUzNDAsMzUzNDksMzUzMzgsMzUzNTEsMzUzNDcsMzUzNTAsMzUzNDMsMzUzNDUsMzU5MTIsMzU5NjIsMzU5NjEsMzYwMDEsMzYwMDIsMzYyMTUsMzY1MjQsMzY1NjIsMzY1NjQsMzY1NTksMzY3ODUsMzY4NjUsMzY4NzAsMzY4'@; put 'NTUsMzY4NjQsMzY4NTgsMzY4NTIsMzY4NjcsMzY4NjEsMzY4NjksMzY4NTYsMzcwMTMsMzcwODksMzcwODUsMzcwOTAsMzcyMDIsMzcxOTcsMzcxOTYsMzczMzYsMzczNDEsMzczMzUsMzczNDAsMzczMzcsMzgyNzUsMzg0OTgsMzg0OTksMzg0OTcsMzg0OTEsMzg0OTMsMzg1MDAsMzg0ODgs'@; put 'Mzg0OTQsMzg1ODcsMzkxMzgsMzkzNDAsMzk1OTIsMzk2NDAsMzk3MTcsMzk3MzAsMzk3NDAsMjAwOTQsMjA2MDIsMjA2MDUsMjA1NzIsMjA1NTEsMjA1NDcsMjA1NTYsMjA1NzAsMjA1NTMsMjA1ODEsMjA1OTgsMjA1NTgsMjA1NjUsMjA1OTcsMjA1OTYsMjA1OTksMjA1NTksMjA0OTUsMjA1'@; put 'OTEsMjA1ODksMjA4MjgsMjA4ODUsMjA5NzYsMjEwOTgsMjExMDMsMjEyMDIsMjEyMDksMjEyMDgsMjEyMDUsMjEyNjQsMjEyNjMsMjEyNzMsMjEzMTEsMjEzMTIsMjEzMTAsMjE0NDMsMjYzNjQsMjE4MzAsMjE4NjYsMjE4NjIsMjE4MjgsMjE4NTQsMjE4NTcsMjE4MjcsMjE4MzQsMjE4MDks'@; put 'MjE4NDYsMjE4MzksMjE4NDUsMjE4MDcsMjE4NjAsMjE4MTYsMjE4MDYsMjE4NTIsMjE4MDQsMjE4NTksMjE4MTEsMjE4MjUsMjE4NDcsMjIyODAsMjIyODMsMjIyODEsMjI0OTUsMjI1MzMsMjI1MzgsMjI1MzQsMjI0OTYsMjI1MDAsMjI1MjIsMjI1MzAsMjI1ODEsMjI1MTksMjI1MjEsMjI4'@; put 'MTYsMjI4ODIsMjMwOTQsMjMxMDUsMjMxMTMsMjMxNDIsMjMxNDYsMjMxMDQsMjMxMDAsMjMxMzgsMjMxMzAsMjMxMTAsMjMxMTQsMjM0MDgsMjM0OTUsMjM0OTMsMjM0OTIsMjM0OTAsMjM0ODcsMjM0OTQsMjM1NjEsMjM1NjAsMjM1NTksMjM2NDgsMjM2NDQsMjM2NDUsMjM4MTUsMjM4MTQs'@; put 'MjM4MjIsMjM4MzUsMjM4MzAsMjM4NDIsMjM4MjUsMjM4NDksMjM4MjgsMjM4MzMsMjM4NDQsMjM4NDcsMjM4MzEsMjQwMzQsMjQxMjAsMjQxMTgsMjQxMTUsMjQxMTksMjQyNDcsMjQyNDgsMjQyNDYsMjQyNDUsMjQyNTQsMjQzNzMsMjQzNzUsMjQ0MDcsMjQ0MjgsMjQ0MjUsMjQ0MjcsMjQ0'@; put 'NzEsMjQ0NzMsMjQ0NzgsMjQ0NzIsMjQ0ODEsMjQ0ODAsMjQ0NzYsMjQ3MDMsMjQ3MzksMjQ3MTMsMjQ3MzYsMjQ3NDQsMjQ3NzksMjQ3NTYsMjQ4MDYsMjQ3NjUsMjQ3NzMsMjQ3NjMsMjQ3NTcsMjQ3OTYsMjQ3NjQsMjQ3OTIsMjQ3ODksMjQ3NzQsMjQ3OTksMjQ3NjAsMjQ3OTQsMjQ3NzUs'@; put 'MjUxMTQsMjUxMTUsMjUxNjAsMjU1MDQsMjU1MTEsMjU0NTgsMjU0OTQsMjU1MDYsMjU1MDksMjU0NjMsMjU0NDcsMjU0OTYsMjU1MTQsMjU0NTcsMjU1MTMsMjU0ODEsMjU0NzUsMjU0OTksMjU0NTEsMjU1MTIsMjU0NzYsMjU0ODAsMjU0OTcsMjU1MDUsMjU1MTYsMjU0OTAsMjU0ODcsMjU0'@; put 'NzIsMjU0NjcsMjU0NDksMjU0NDgsMjU0NjYsMjU5NDksMjU5NDIsMjU5MzcsMjU5NDUsMjU5NDMsMjE4NTUsMjU5MzUsMjU5NDQsMjU5NDEsMjU5NDAsMjYwMTIsMjYwMTEsMjYwMjgsMjYwNjMsMjYwNTksMjYwNjAsMjYwNjIsMjYyMDUsMjYyMDIsMjYyMTIsMjYyMTYsMjYyMTQsMjYyMDYs'@; put 'MjYzNjEsMjEyMDcsMjYzOTUsMjY3NTMsMjY3OTksMjY3ODYsMjY3NzEsMjY4MDUsMjY3NTEsMjY3NDIsMjY4MDEsMjY3OTEsMjY3NzUsMjY4MDAsMjY3NTUsMjY4MjAsMjY3OTcsMjY3NTgsMjY3NTcsMjY3NzIsMjY3ODEsMjY3OTIsMjY3ODMsMjY3ODUsMjY3NTQsMjc0NDIsMjc1NzgsMjc2'@; put 'MjcsMjc2MjgsMjc2OTEsMjgwNDYsMjgwOTIsMjgxNDcsMjgxMjEsMjgwODIsMjgxMjksMjgxMDgsMjgxMzIsMjgxNTUsMjgxNTQsMjgxNjUsMjgxMDMsMjgxMDcsMjgwNzksMjgxMTMsMjgwNzgsMjgxMjYsMjgxNTMsMjgwODgsMjgxNTEsMjgxNDksMjgxMDEsMjgxMTQsMjgxODYsMjgwODUs'@; put 'MjgxMjIsMjgxMzksMjgxMjAsMjgxMzgsMjgxNDUsMjgxNDIsMjgxMzYsMjgxMDIsMjgxMDAsMjgwNzQsMjgxNDAsMjgwOTUsMjgxMzQsMjg5MjEsMjg5MzcsMjg5MzgsMjg5MjUsMjg5MTEsMjkyNDUsMjkzMDksMjkzMTMsMjk0NjgsMjk0NjcsMjk0NjIsMjk0NTksMjk0NjUsMjk1NzUsMjk3'@; put 'MDEsMjk3MDYsMjk2OTksMjk3MDIsMjk2OTQsMjk3MDksMjk5MjAsMjk5NDIsMjk5NDMsMjk5ODAsMjk5ODYsMzAwNTMsMzAwNTQsMzAwNTAsMzAwNjQsMzAwOTUsMzAxNjQsMzAxNjUsMzAxMzMsMzAxNTQsMzAxNTcsMzAzNTAsMzA0MjAsMzA0MTgsMzA0MjcsMzA1MTksMzA1MjYsMzA1MjQs'@; put 'MzA1MTgsMzA1MjAsMzA1MjIsMzA4MjcsMzA3ODcsMzA3OTgsMzEwNzcsMzEwODAsMzEwODUsMzEyMjcsMzEzNzgsMzEzODEsMzE1MjAsMzE1MjgsMzE1MTUsMzE1MzIsMzE1MjYsMzE1MTMsMzE1MTgsMzE1MzQsMzE4OTAsMzE4OTUsMzE4OTMsMzIwNzAsMzIwNjcsMzIxMTMsMzIwNDYsMzIw'@; put 'NTcsMzIwNjAsMzIwNjQsMzIwNDgsMzIwNTEsMzIwNjgsMzIwNDcsMzIwNjYsMzIwNTAsMzIwNDksMzI1NzMsMzI2NzAsMzI2NjYsMzI3MTYsMzI3MTgsMzI3MjIsMzI3OTYsMzI4NDIsMzI4MzgsMzMwNzEsMzMwNDYsMzMwNTksMzMwNjcsMzMwNjUsMzMwNzIsMzMwNjAsMzMyODIsMzMzMzMs'@; put 'MzMzMzUsMzMzMzQsMzMzMzcsMzM2NzgsMzM2OTQsMzM2ODgsMzM2NTYsMzM2OTgsMzM2ODYsMzM3MjUsMzM3MDcsMzM2ODIsMzM2NzQsMzM2ODMsMzM2NzMsMzM2OTYsMzM2NTUsMzM2NTksMzM2NjAsMzM2NzAsMzM3MDMsMzQzODksMjQ0MjYsMzQ1MDMsMzQ0OTYsMzQ0ODYsMzQ1MDAsMzQ0'@; put 'ODUsMzQ1MDIsMzQ1MDcsMzQ0ODEsMzQ0NzksMzQ1MDUsMzQ4OTksMzQ5NzQsMzQ5NTIsMzQ5ODcsMzQ5NjIsMzQ5NjYsMzQ5NTcsMzQ5NTUsMzUyMTksMzUyMTUsMzUzNzAsMzUzNTcsMzUzNjMsMzUzNjUsMzUzNzcsMzUzNzMsMzUzNTksMzUzNTUsMzUzNjIsMzU5MTMsMzU5MzAsMzYwMDks'@; put 'MzYwMTIsMzYwMTEsMzYwMDgsMzYwMTAsMzYwMDcsMzYxOTksMzYxOTgsMzYyODYsMzYyODIsMzY1NzEsMzY1NzUsMzY4ODksMzY4NzcsMzY4OTAsMzY4ODcsMzY4OTksMzY4OTUsMzY4OTMsMzY4ODAsMzY4ODUsMzY4OTQsMzY4OTYsMzY4NzksMzY4OTgsMzY4ODYsMzY4OTEsMzY4ODQsMzcw'@; put 'OTYsMzcxMDEsMzcxMTcsMzcyMDcsMzczMjYsMzczNjUsMzczNTAsMzczNDcsMzczNTEsMzczNTcsMzczNTMsMzgyODEsMzg1MDYsMzg1MTcsMzg1MTUsMzg1MjAsMzg1MTIsMzg1MTYsMzg1MTgsMzg1MTksMzg1MDgsMzg1OTIsMzg2MzQsMzg2MzMsMzE0NTYsMzE0NTUsMzg5MTQsMzg5MTUs'@; put 'Mzk3NzAsNDAxNjUsNDA1NjUsNDA1NzUsNDA2MTMsNDA2MzUsMjA2NDIsMjA2MjEsMjA2MTMsMjA2MzMsMjA2MjUsMjA2MDgsMjA2MzAsMjA2MzIsMjA2MzQsMjYzNjgsMjA5NzcsMjExMDYsMjExMDgsMjExMDksMjEwOTcsMjEyMTQsMjEyMTMsMjEyMTEsMjEzMzgsMjE0MTMsMjE4ODMsMjE4'@; put 'ODgsMjE5MjcsMjE4ODQsMjE4OTgsMjE5MTcsMjE5MTIsMjE4OTAsMjE5MTYsMjE5MzAsMjE5MDgsMjE4OTUsMjE4OTksMjE4OTEsMjE5MzksMjE5MzQsMjE5MTksMjE4MjIsMjE5MzgsMjE5MTQsMjE5NDcsMjE5MzIsMjE5MzcsMjE4ODYsMjE4OTcsMjE5MzEsMjE5MTMsMjIyODUsMjI1NzUs'@; put 'MjI1NzAsMjI1ODAsMjI1NjQsMjI1NzYsMjI1NzcsMjI1NjEsMjI1NTcsMjI1NjAsMjI3NzcsMjI3NzgsMjI4ODAsMjMxNTksMjMxOTQsMjMxNjcsMjMxODYsMjMxOTUsMjMyMDcsMjM0MTEsMjM0MDksMjM1MDYsMjM1MDAsMjM1MDcsMjM1MDQsMjM1NjIsMjM1NjMsMjM2MDEsMjM4ODQsMjM4'@; put 'ODgsMjM4NjAsMjM4NzksMjQwNjEsMjQxMzMsMjQxMjUsMjQxMjgsMjQxMzEsMjQxOTAsMjQyNjYsMjQyNTcsMjQyNTgsMjQyNjAsMjQzODAsMjQ0MjksMjQ0ODksMjQ0OTAsMjQ0ODgsMjQ3ODUsMjQ4MDEsMjQ3NTQsMjQ3NTgsMjQ4MDAsMjQ4NjAsMjQ4NjcsMjQ4MjYsMjQ4NTMsMjQ4MTYs'@; put 'MjQ4MjcsMjQ4MjAsMjQ5MzYsMjQ4MTcsMjQ4NDYsMjQ4MjIsMjQ4NDEsMjQ4MzIsMjQ4NTAsMjUxMTksMjUxNjEsMjU1MDcsMjU0ODQsMjU1NTEsMjU1MzYsMjU1NzcsMjU1NDUsMjU1NDIsMjU1NDksMjU1NTQsMjU1NzEsMjU1NTIsMjU1NjksMjU1NTgsMjU1ODEsMjU1ODIsMjU0NjIsMjU1'@; put 'ODgsMjU1NzgsMjU1NjMsMjU2ODIsMjU1NjIsMjU1OTMsMjU5NTAsMjU5NTgsMjU5NTQsMjU5NTUsMjYwMDEsMjZlMywyNjAzMSwyNjIyMiwyNjIyNCwyNjIyOCwyNjIzMCwyNjIyMywyNjI1NywyNjIzNCwyNjIzOCwyNjIzMSwyNjM2NiwyNjM2NywyNjM5OSwyNjM5NywyNjg3NCwyNjgzNywy'@; put 'Njg0OCwyNjg0MCwyNjgzOSwyNjg4NSwyNjg0NywyNjg2OSwyNjg2MiwyNjg1NSwyNjg3MywyNjgzNCwyNjg2NiwyNjg1MSwyNjgyNywyNjgyOSwyNjg5MywyNjg5OCwyNjg5NCwyNjgyNSwyNjg0MiwyNjk5MCwyNjg3NSwyNzQ1NCwyNzQ1MCwyNzQ1MywyNzU0NCwyNzU0MiwyNzU4MCwyNzYz'@; put 'MSwyNzY5NCwyNzY5NSwyNzY5MiwyODIwNywyODIxNiwyODI0NCwyODE5MywyODIxMCwyODI2MywyODIzNCwyODE5MiwyODE5NywyODE5NSwyODE4NywyODI1MSwyODI0OCwyODE5NiwyODI0NiwyODI3MCwyODIwNSwyODE5OCwyODI3MSwyODIxMiwyODIzNywyODIxOCwyODIwNCwyODIyNywy'@; put 'ODE4OSwyODIyMiwyODM2MywyODI5NywyODE4NSwyODIzOCwyODI1OSwyODIyOCwyODI3NCwyODI2NSwyODI1NSwyODk1MywyODk1NCwyODk2NiwyODk3NiwyODk2MSwyODk4MiwyOTAzOCwyODk1NiwyOTI2MCwyOTMxNiwyOTMxMiwyOTQ5NCwyOTQ3NywyOTQ5MiwyOTQ4MSwyOTc1NCwyOTcz'@; put 'OCwyOTc0NywyOTczMCwyOTczMywyOTc0OSwyOTc1MCwyOTc0OCwyOTc0MywyOTcyMywyOTczNCwyOTczNiwyOTk4OSwyOTk5MCwzMDA1OSwzMDA1OCwzMDE3OCwzMDE3MSwzMDE3OSwzMDE2OSwzMDE2OCwzMDE3NCwzMDE3NiwzMDMzMSwzMDMzMiwzMDM1OCwzMDM1NSwzMDM4OCwzMDQyOCwz'@; put 'MDU0MywzMDcwMSwzMDgxMywzMDgyOCwzMDgzMSwzMTI0NSwzMTI0MCwzMTI0MywzMTIzNywzMTIzMiwzMTM4NCwzMTM4MywzMTM4MiwzMTQ2MSwzMTQ1OSwzMTU2MSwzMTU3NCwzMTU1OCwzMTU2OCwzMTU3MCwzMTU3MiwzMTU2NSwzMTU2MywzMTU2NywzMTU2OSwzMTkwMywzMTkwOSwzMjA5'@; put 'NCwzMjA4MCwzMjEwNCwzMjA4NSwzMjA0MywzMjExMCwzMjExNCwzMjA5NywzMjEwMiwzMjA5OCwzMjExMiwzMjExNSwyMTg5MiwzMjcyNCwzMjcyNSwzMjc3OSwzMjg1MCwzMjkwMSwzMzEwOSwzMzEwOCwzMzA5OSwzMzEwNSwzMzEwMiwzMzA4MSwzMzA5NCwzMzA4NiwzMzEwMCwzMzEwNywz'@; put 'MzE0MCwzMzI5OCwzMzMwOCwzMzc2OSwzMzc5NSwzMzc4NCwzMzgwNSwzMzc2MCwzMzczMywzMzgwMywzMzcyOSwzMzc3NSwzMzc3NywzMzc4MCwzMzg3OSwzMzgwMiwzMzc3NiwzMzgwNCwzMzc0MCwzMzc4OSwzMzc3OCwzMzczOCwzMzg0OCwzMzgwNiwzMzc5NiwzMzc1NiwzMzc5OSwzMzc0'@; put 'OCwzMzc1OSwzNDM5NSwzNDUyNywzNDUyMSwzNDU0MSwzNDUxNiwzNDUyMywzNDUzMiwzNDUxMiwzNDUyNiwzNDkwMywzNTAwOSwzNTAxMCwzNDk5MywzNTIwMywzNTIyMiwzNTM4NywzNTQyNCwzNTQxMywzNTQyMiwzNTM4OCwzNTM5MywzNTQxMiwzNTQxOSwzNTQwOCwzNTM5OCwzNTM4MCwz'@; put 'NTM4NiwzNTM4MiwzNTQxNCwzNTkzNywzNTk3MCwzNjAxNSwzNjAyOCwzNjAxOSwzNjAyOSwzNjAzMywzNjAyNywzNjAzMiwzNjAyMCwzNjAyMywzNjAyMiwzNjAzMSwzNjAyNCwzNjIzNCwzNjIyOSwzNjIyNSwzNjMwMiwzNjMxNywzNjI5OSwzNjMxNCwzNjMwNSwzNjMwMCwzNjMxNSwzNjI5'@; put 'NCwzNjYwMywzNjYwMCwzNjYwNCwzNjc2NCwzNjkxMCwzNjkxNywzNjkxMywzNjkyMCwzNjkxNCwzNjkxOCwzNzEyMiwzNzEwOSwzNzEyOSwzNzExOCwzNzIxOSwzNzIyMSwzNzMyNywzNzM5NiwzNzM5NywzNzQxMSwzNzM4NSwzNzQwNiwzNzM4OSwzNzM5MiwzNzM4MywzNzM5MywzODI5Miwz'@; put 'ODI4NywzODI4MywzODI4OSwzODI5MSwzODI5MCwzODI4NiwzODUzOCwzODU0MiwzODUzOSwzODUyNSwzODUzMywzODUzNCwzODU0MSwzODUxNCwzODUzMiwzODU5MywzODU5NywzODU5NiwzODU5OCwzODU5OSwzODYzOSwzODY0MiwzODg2MCwzODkxNywzODkxOCwzODkyMCwzOTE0MywzOTE0'@; put 'NiwzOTE1MSwzOTE0NSwzOTE1NCwzOTE0OSwzOTM0MiwzOTM0MSw0MDY0Myw0MDY1Myw0MDY1NywyMDA5OCwyMDY1MywyMDY2MSwyMDY1OCwyMDY1OSwyMDY3NywyMDY3MCwyMDY1MiwyMDY2MywyMDY2NywyMDY1NSwyMDY3OSwyMTExOSwyMTExMSwyMTExNywyMTIxNSwyMTIyMiwyMTIyMCwy'@; put 'MTIxOCwyMTIxOSwyMTI5NSwyMTk4MywyMTk5MiwyMTk3MSwyMTk5MCwyMTk2NiwyMTk4MCwyMTk1OSwyMTk2OSwyMTk4NywyMTk4OCwyMTk5OSwyMTk3OCwyMTk4NSwyMTk1NywyMTk1OCwyMTk4OSwyMTk2MSwyMjI5MCwyMjI5MSwyMjYyMiwyMjYwOSwyMjYxNiwyMjYxNSwyMjYxOCwyMjYx'@; put 'MiwyMjYzNSwyMjYwNCwyMjYzNywyMjYwMiwyMjYyNiwyMjYxMCwyMjYwMywyMjg4NywyMzIzMywyMzI0MSwyMzI0NCwyMzIzMCwyMzIyOSwyMzIyOCwyMzIxOSwyMzIzNCwyMzIxOCwyMzkxMywyMzkxOSwyNDE0MCwyNDE4NSwyNDI2NSwyNDI2NCwyNDMzOCwyNDQwOSwyNDQ5MiwyNDQ5NCwy'@; put 'NDg1OCwyNDg0NywyNDkwNCwyNDg2MywyNDgxOSwyNDg1OSwyNDgyNSwyNDgzMywyNDg0MCwyNDkxMCwyNDkwOCwyNDkwMCwyNDkwOSwyNDg5NCwyNDg4NCwyNDg3MSwyNDg0NSwyNDgzOCwyNDg4NywyNTEyMSwyNTEyMiwyNTYxOSwyNTY2MiwyNTYzMCwyNTY0MiwyNTY0NSwyNTY2MSwyNTY0'@; put 'NCwyNTYxNSwyNTYyOCwyNTYyMCwyNTYxMywyNTY1NCwyNTYyMiwyNTYyMywyNTYwNiwyNTk2NCwyNjAxNSwyNjAzMiwyNjI2MywyNjI0OSwyNjI0NywyNjI0OCwyNjI2MiwyNjI0NCwyNjI2NCwyNjI1MywyNjM3MSwyNzAyOCwyNjk4OSwyNjk3MCwyNjk5OSwyNjk3NiwyNjk2NCwyNjk5Nywy'@; put 'NjkyOCwyNzAxMCwyNjk1NCwyNjk4NCwyNjk4NywyNjk3NCwyNjk2MywyNzAwMSwyNzAxNCwyNjk3MywyNjk3OSwyNjk3MSwyNzQ2MywyNzUwNiwyNzU4NCwyNzU4MywyNzYwMywyNzY0NSwyODMyMiwyODMzNSwyODM3MSwyODM0MiwyODM1NCwyODMwNCwyODMxNywyODM1OSwyODM1NywyODMy'@; put 'NSwyODMxMiwyODM0OCwyODM0NiwyODMzMSwyODM2OSwyODMxMCwyODMxNiwyODM1NiwyODM3MiwyODMzMCwyODMyNywyODM0MCwyOTAwNiwyOTAxNywyOTAzMywyOTAyOCwyOTAwMSwyOTAzMSwyOTAyMCwyOTAzNiwyOTAzMCwyOTAwNCwyOTAyOSwyOTAyMiwyODk5OCwyOTAzMiwyOTAxNCwy'@; put 'OTI0MiwyOTI2NiwyOTQ5NSwyOTUwOSwyOTUwMywyOTUwMiwyOTgwNywyOTc4NiwyOTc4MSwyOTc5MSwyOTc5MCwyOTc2MSwyOTc1OSwyOTc4NSwyOTc4NywyOTc4OCwzMDA3MCwzMDA3MiwzMDIwOCwzMDE5MiwzMDIwOSwzMDE5NCwzMDE5MywzMDIwMiwzMDIwNywzMDE5NiwzMDE5NSwzMDQz'@; put 'MCwzMDQzMSwzMDU1NSwzMDU3MSwzMDU2NiwzMDU1OCwzMDU2MywzMDU4NSwzMDU3MCwzMDU3MiwzMDU1NiwzMDU2NSwzMDU2OCwzMDU2MiwzMDcwMiwzMDg2MiwzMDg5NiwzMDg3MSwzMDg3MiwzMDg2MCwzMDg1NywzMDg0NCwzMDg2NSwzMDg2NywzMDg0NywzMTA5OCwzMTEwMywzMTEwNSwz'@; put 'MzgzNiwzMTE2NSwzMTI2MCwzMTI1OCwzMTI2NCwzMTI1MiwzMTI2MywzMTI2MiwzMTM5MSwzMTM5MiwzMTYwNywzMTY4MCwzMTU4NCwzMTU5OCwzMTU5MSwzMTkyMSwzMTkyMywzMTkyNSwzMjE0NywzMjEyMSwzMjE0NSwzMjEyOSwzMjE0MywzMjA5MSwzMjYyMiwzMjYxNywzMjYxOCwzMjYy'@; put 'NiwzMjY4MSwzMjY4MCwzMjY3NiwzMjg1NCwzMjg1NiwzMjkwMiwzMjkwMCwzMzEzNywzMzEzNiwzMzE0NCwzMzEyNSwzMzEzNCwzMzEzOSwzMzEzMSwzMzE0NSwzMzE0NiwzMzEyNiwzMzI4NSwzMzM1MSwzMzkyMiwzMzkxMSwzMzg1MywzMzg0MSwzMzkwOSwzMzg5NCwzMzg5OSwzMzg2NSwz'@; put 'MzkwMCwzMzg4MywzMzg1MiwzMzg0NSwzMzg4OSwzMzg5MSwzMzg5NywzMzkwMSwzMzg2MiwzNDM5OCwzNDM5NiwzNDM5OSwzNDU1MywzNDU3OSwzNDU2OCwzNDU2NywzNDU2MCwzNDU1OCwzNDU1NSwzNDU2MiwzNDU2MywzNDU2NiwzNDU3MCwzNDkwNSwzNTAzOSwzNTAyOCwzNTAzMywzNTAz'@; put 'NiwzNTAzMiwzNTAzNywzNTA0MSwzNTAxOCwzNTAyOSwzNTAyNiwzNTIyOCwzNTI5OSwzNTQzNSwzNTQ0MiwzNTQ0MywzNTQzMCwzNTQzMywzNTQ0MCwzNTQ2MywzNTQ1MiwzNTQyNywzNTQ4OCwzNTQ0MSwzNTQ2MSwzNTQzNywzNTQyNiwzNTQzOCwzNTQzNiwzNTQ0OSwzNTQ1MSwzNTM5MCwz'@; put 'NTQzMiwzNTkzOCwzNTk3OCwzNTk3NywzNjA0MiwzNjAzOSwzNjA0MCwzNjAzNiwzNjAxOCwzNjAzNSwzNjAzNCwzNjAzNywzNjMyMSwzNjMxOSwzNjMyOCwzNjMzNSwzNjMzOSwzNjM0NiwzNjMzMCwzNjMyNCwzNjMyNiwzNjUzMCwzNjYxMSwzNjYxNywzNjYwNiwzNjYxOCwzNjc2NywzNjc4'@; put 'NiwzNjkzOSwzNjkzOCwzNjk0NywzNjkzMCwzNjk0OCwzNjkyNCwzNjk0OSwzNjk0NCwzNjkzNSwzNjk0MywzNjk0MiwzNjk0MSwzNjk0NSwzNjkyNiwzNjkyOSwzNzEzOCwzNzE0MywzNzIyOCwzNzIyNiwzNzIyNSwzNzMyMSwzNzQzMSwzNzQ2MywzNzQzMiwzNzQzNywzNzQ0MCwzNzQzOCwz'@; put 'NzQ2NywzNzQ1MSwzNzQ3NiwzNzQ1NywzNzQyOCwzNzQ0OSwzNzQ1MywzNzQ0NSwzNzQzMywzNzQzOSwzNzQ2NiwzODI5NiwzODU1MiwzODU0OCwzODU0OSwzODYwNSwzODYwMywzODYwMSwzODYwMiwzODY0NywzODY1MSwzODY0OSwzODY0NiwzODc0MiwzODc3MiwzODc3NCwzODkyOCwzODky'@; put 'OSwzODkzMSwzODkyMiwzODkzMCwzODkyNCwzOTE2NCwzOTE1NiwzOTE2NSwzOTE2NiwzOTM0NywzOTM0NSwzOTM0OCwzOTY0OSw0MDE2OSw0MDU3OCw0MDcxOCw0MDcyMyw0MDczNiwyMDcxMSwyMDcxOCwyMDcwOSwyMDY5NCwyMDcxNywyMDY5OCwyMDY5MywyMDY4NywyMDY4OSwyMDcyMSwy'@; put 'MDY4NiwyMDcxMywyMDgzNCwyMDk3OSwyMTEyMywyMTEyMiwyMTI5NywyMTQyMSwyMjAxNCwyMjAxNiwyMjA0MywyMjAzOSwyMjAxMywyMjAzNiwyMjAyMiwyMjAyNSwyMjAyOSwyMjAzMCwyMjAwNywyMjAzOCwyMjA0NywyMjAyNCwyMjAzMiwyMjAwNiwyMjI5NiwyMjI5NCwyMjY0NSwyMjY1'@; put 'NCwyMjY1OSwyMjY3NSwyMjY2NiwyMjY0OSwyMjY2MSwyMjY1MywyMjc4MSwyMjgyMSwyMjgxOCwyMjgyMCwyMjg5MCwyMjg4OSwyMzI2NSwyMzI3MCwyMzI3MywyMzI1NSwyMzI1NCwyMzI1NiwyMzI2NywyMzQxMywyMzUxOCwyMzUyNywyMzUyMSwyMzUyNSwyMzUyNiwyMzUyOCwyMzUyMiwy'@; put 'MzUyNCwyMzUxOSwyMzU2NSwyMzY1MCwyMzk0MCwyMzk0MywyNDE1NSwyNDE2MywyNDE0OSwyNDE1MSwyNDE0OCwyNDI3NSwyNDI3OCwyNDMzMCwyNDM5MCwyNDQzMiwyNDUwNSwyNDkwMywyNDg5NSwyNDkwNywyNDk1MSwyNDkzMCwyNDkzMSwyNDkyNywyNDkyMiwyNDkyMCwyNDk0OSwyNTEz'@; put 'MCwyNTczNSwyNTY4OCwyNTY4NCwyNTc2NCwyNTcyMCwyNTY5NSwyNTcyMiwyNTY4MSwyNTcwMywyNTY1MiwyNTcwOSwyNTcyMywyNTk3MCwyNjAxNywyNjA3MSwyNjA3MCwyNjI3NCwyNjI4MCwyNjI2OSwyNzAzNiwyNzA0OCwyNzAyOSwyNzA3MywyNzA1NCwyNzA5MSwyNzA4MywyNzAzNSwy'@; put 'NzA2MywyNzA2NywyNzA1MSwyNzA2MCwyNzA4OCwyNzA4NSwyNzA1MywyNzA4NCwyNzA0NiwyNzA3NSwyNzA0MywyNzQ2NSwyNzQ2OCwyNzY5OSwyODQ2NywyODQzNiwyODQxNCwyODQzNSwyODQwNCwyODQ1NywyODQ3OCwyODQ0OCwyODQ2MCwyODQzMSwyODQxOCwyODQ1MCwyODQxNSwyODM5'@; put 'OSwyODQyMiwyODQ2NSwyODQ3MiwyODQ2NiwyODQ1MSwyODQzNywyODQ1OSwyODQ2MywyODU1MiwyODQ1OCwyODM5NiwyODQxNywyODQwMiwyODM2NCwyODQwNywyOTA3NiwyOTA4MSwyOTA1MywyOTA2NiwyOTA2MCwyOTA3NCwyOTI0NiwyOTMzMCwyOTMzNCwyOTUwOCwyOTUyMCwyOTc5Niwy'@; put 'OTc5NSwyOTgwMiwyOTgwOCwyOTgwNSwyOTk1NiwzMDA5NywzMDI0NywzMDIyMSwzMDIxOSwzMDIxNywzMDIyNywzMDQzMywzMDQzNSwzMDU5NiwzMDU4OSwzMDU5MSwzMDU2MSwzMDkxMywzMDg3OSwzMDg4NywzMDg5OSwzMDg4OSwzMDg4MywzMTExOCwzMTExOSwzMTExNywzMTI3OCwzMTI4'@; put 'MSwzMTQwMiwzMTQwMSwzMTQ2OSwzMTQ3MSwzMTY0OSwzMTYzNywzMTYyNywzMTYwNSwzMTYzOSwzMTY0NSwzMTYzNiwzMTYzMSwzMTY3MiwzMTYyMywzMTYyMCwzMTkyOSwzMTkzMywzMTkzNCwzMjE4NywzMjE3NiwzMjE1NiwzMjE4OSwzMjE5MCwzMjE2MCwzMjIwMiwzMjE4MCwzMjE3OCwz'@; put 'MjE3NywzMjE4NiwzMjE2MiwzMjE5MSwzMjE4MSwzMjE4NCwzMjE3MywzMjIxMCwzMjE5OSwzMjE3MiwzMjYyNCwzMjczNiwzMjczNywzMjczNSwzMjg2MiwzMjg1OCwzMjkwMywzMzEwNCwzMzE1MiwzMzE2NywzMzE2MCwzMzE2MiwzMzE1MSwzMzE1NCwzMzI1NSwzMzI3NCwzMzI4NywzMzMw'@; put 'MCwzMzMxMCwzMzM1NSwzMzk5MywzMzk4MywzMzk5MCwzMzk4OCwzMzk0NSwzMzk1MCwzMzk3MCwzMzk0OCwzMzk5NSwzMzk3NiwzMzk4NCwzNDAwMywzMzkzNiwzMzk4MCwzNDAwMSwzMzk5NCwzNDYyMywzNDU4OCwzNDYxOSwzNDU5NCwzNDU5NywzNDYxMiwzNDU4NCwzNDY0NSwzNDYxNSwz'@; put 'NDYwMSwzNTA1OSwzNTA3NCwzNTA2MCwzNTA2NSwzNTA2NCwzNTA2OSwzNTA0OCwzNTA5OCwzNTA1NSwzNTQ5NCwzNTQ2OCwzNTQ4NiwzNTQ5MSwzNTQ2OSwzNTQ4OSwzNTQ3NSwzNTQ5MiwzNTQ5OCwzNTQ5MywzNTQ5NiwzNTQ4MCwzNTQ3MywzNTQ4MiwzNTQ5NSwzNTk0NiwzNTk4MSwzNTk4'@; put 'MCwzNjA1MSwzNjA0OSwzNjA1MCwzNjIwMywzNjI0OSwzNjI0NSwzNjM0OCwzNjYyOCwzNjYyNiwzNjYyOSwzNjYyNywzNjc3MSwzNjk2MCwzNjk1MiwzNjk1NiwzNjk2MywzNjk1MywzNjk1OCwzNjk2MiwzNjk1NywzNjk1NSwzNzE0NSwzNzE0NCwzNzE1MCwzNzIzNywzNzI0MCwzNzIzOSwz'@; put 'NzIzNiwzNzQ5NiwzNzUwNCwzNzUwOSwzNzUyOCwzNzUyNiwzNzQ5OSwzNzUyMywzNzUzMiwzNzU0NCwzNzUwMCwzNzUyMSwzODMwNSwzODMxMiwzODMxMywzODMwNywzODMwOSwzODMwOCwzODU1MywzODU1NiwzODU1NSwzODYwNCwzODYxMCwzODY1NiwzODc4MCwzODc4OSwzODkwMiwzODkz'@; put 'NSwzODkzNiwzOTA4NywzOTA4OSwzOTE3MSwzOTE3MywzOTE4MCwzOTE3NywzOTM2MSwzOTU5OSwzOTYwMCwzOTY1NCwzOTc0NSwzOTc0Niw0MDE4MCw0MDE4Miw0MDE3OSw0MDYzNiw0MDc2Myw0MDc3OCwyMDc0MCwyMDczNiwyMDczMSwyMDcyNSwyMDcyOSwyMDczOCwyMDc0NCwyMDc0NSwy'@; put 'MDc0MSwyMDk1NiwyMTEyNywyMTEyOCwyMTEyOSwyMTEzMywyMTEzMCwyMTIzMiwyMTQyNiwyMjA2MiwyMjA3NSwyMjA3MywyMjA2NiwyMjA3OSwyMjA2OCwyMjA1NywyMjA5OSwyMjA5NCwyMjEwMywyMjEzMiwyMjA3MCwyMjA2MywyMjA2NCwyMjY1NiwyMjY4NywyMjY4NiwyMjcwNywyMjY4'@; put 'NCwyMjcwMiwyMjY5NywyMjY5NCwyMjg5MywyMzMwNSwyMzI5MSwyMzMwNywyMzI4NSwyMzMwOCwyMzMwNCwyMzUzNCwyMzUzMiwyMzUyOSwyMzUzMSwyMzY1MiwyMzY1MywyMzk2NSwyMzk1NiwyNDE2MiwyNDE1OSwyNDE2MSwyNDI5MCwyNDI4MiwyNDI4NywyNDI4NSwyNDI5MSwyNDI4OCwy'@; put 'NDM5MiwyNDQzMywyNDUwMywyNDUwMSwyNDk1MCwyNDkzNSwyNDk0MiwyNDkyNSwyNDkxNywyNDk2MiwyNDk1NiwyNDk0NCwyNDkzOSwyNDk1OCwyNDk5OSwyNDk3NiwyNTAwMywyNDk3NCwyNTAwNCwyNDk4NiwyNDk5NiwyNDk4MCwyNTAwNiwyNTEzNCwyNTcwNSwyNTcxMSwyNTcyMSwyNTc1'@; put 'OCwyNTc3OCwyNTczNiwyNTc0NCwyNTc3NiwyNTc2NSwyNTc0NywyNTc0OSwyNTc2OSwyNTc0NiwyNTc3NCwyNTc3MywyNTc3MSwyNTc1NCwyNTc3MiwyNTc1MywyNTc2MiwyNTc3OSwyNTk3MywyNTk3NSwyNTk3NiwyNjI4NiwyNjI4MywyNjI5MiwyNjI4OSwyNzE3MSwyNzE2NywyNzExMiwy'@; put 'NzEzNywyNzE2NiwyNzE2MSwyNzEzMywyNzE2OSwyNzE1NSwyNzE0NiwyNzEyMywyNzEzOCwyNzE0MSwyNzExNywyNzE1MywyNzQ3MiwyNzQ3MCwyNzU1NiwyNzU4OSwyNzU5MCwyODQ3OSwyODU0MCwyODU0OCwyODQ5NywyODUxOCwyODUwMCwyODU1MCwyODUyNSwyODUwNywyODUzNiwyODUy'@; put 'NiwyODU1OCwyODUzOCwyODUyOCwyODUxNiwyODU2NywyODUwNCwyODM3MywyODUyNywyODUxMiwyODUxMSwyOTA4NywyOTEwMCwyOTEwNSwyOTA5NiwyOTI3MCwyOTMzOSwyOTUxOCwyOTUyNywyOTgwMSwyOTgzNSwyOTgyNywyOTgyMiwyOTgyNCwzMDA3OSwzMDI0MCwzMDI0OSwzMDIzOSwz'@; put 'MDI0NCwzMDI0NiwzMDI0MSwzMDI0MiwzMDM2MiwzMDM5NCwzMDQzNiwzMDYwNiwzMDU5OSwzMDYwNCwzMDYwOSwzMDYwMywzMDkyMywzMDkxNywzMDkwNiwzMDkyMiwzMDkxMCwzMDkzMywzMDkwOCwzMDkyOCwzMTI5NSwzMTI5MiwzMTI5NiwzMTI5MywzMTI4NywzMTI5MSwzMTQwNywzMTQw'@; put 'NiwzMTY2MSwzMTY2NSwzMTY4NCwzMTY2OCwzMTY4NiwzMTY4NywzMTY4MSwzMTY0OCwzMTY5MiwzMTk0NiwzMjIyNCwzMjI0NCwzMjIzOSwzMjI1MSwzMjIxNiwzMjIzNiwzMjIyMSwzMjIzMiwzMjIyNywzMjIxOCwzMjIyMiwzMjIzMywzMjE1OCwzMjIxNywzMjI0MiwzMjI0OSwzMjYyOSwz'@; put 'MjYzMSwzMjY4NywzMjc0NSwzMjgwNiwzMzE3OSwzMzE4MCwzMzE4MSwzMzE4NCwzMzE3OCwzMzE3NiwzNDA3MSwzNDEwOSwzNDA3NCwzNDAzMCwzNDA5MiwzNDA5MywzNDA2NywzNDA2NSwzNDA4MywzNDA4MSwzNDA2OCwzNDAyOCwzNDA4NSwzNDA0NywzNDA1NCwzNDY5MCwzNDY3NiwzNDY3'@; put 'OCwzNDY1NiwzNDY2MiwzNDY4MCwzNDY2NCwzNDY0OSwzNDY0NywzNDYzNiwzNDY0MywzNDkwNywzNDkwOSwzNTA4OCwzNTA3OSwzNTA5MCwzNTA5MSwzNTA5MywzNTA4MiwzNTUxNiwzNTUzOCwzNTUyNywzNTUyNCwzNTQ3NywzNTUzMSwzNTU3NiwzNTUwNiwzNTUyOSwzNTUyMiwzNTUxOSwz'@; put 'NTUwNCwzNTU0MiwzNTUzMywzNTUxMCwzNTUxMywzNTU0NywzNTkxNiwzNTkxOCwzNTk0OCwzNjA2NCwzNjA2MiwzNjA3MCwzNjA2OCwzNjA3NiwzNjA3NywzNjA2NiwzNjA2NywzNjA2MCwzNjA3NCwzNjA2NSwzNjIwNSwzNjI1NSwzNjI1OSwzNjM5NSwzNjM2OCwzNjM4MSwzNjM4NiwzNjM2'@; put 'NywzNjM5MywzNjM4MywzNjM4NSwzNjM4MiwzNjUzOCwzNjYzNywzNjYzNSwzNjYzOSwzNjY0OSwzNjY0NiwzNjY1MCwzNjYzNiwzNjYzOCwzNjY0NSwzNjk2OSwzNjk3NCwzNjk2OCwzNjk3MywzNjk4MywzNzE2OCwzNzE2NSwzNzE1OSwzNzE2OSwzNzI1NSwzNzI1NywzNzI1OSwzNzI1MSwz'@; put 'NzU3MywzNzU2MywzNzU1OSwzNzYxMCwzNzU0OCwzNzYwNCwzNzU2OSwzNzU1NSwzNzU2NCwzNzU4NiwzNzU3NSwzNzYxNiwzNzU1NCwzODMxNywzODMyMSwzODY2MCwzODY2MiwzODY2MywzODY2NSwzODc1MiwzODc5NywzODc5NSwzODc5OSwzODk0NSwzODk1NSwzODk0MCwzOTA5MSwzOTE3'@; put 'OCwzOTE4NywzOTE4NiwzOTE5MiwzOTM4OSwzOTM3NiwzOTM5MSwzOTM4NywzOTM3NywzOTM4MSwzOTM3OCwzOTM4NSwzOTYwNywzOTY2MiwzOTY2MywzOTcxOSwzOTc0OSwzOTc0OCwzOTc5OSwzOTc5MSw0MDE5OCw0MDIwMSw0MDE5NSw0MDYxNyw0MDYzOCw0MDY1NCwyMjY5Niw0MDc4Niwy'@; put 'MDc1NCwyMDc2MCwyMDc1NiwyMDc1MiwyMDc1NywyMDg2NCwyMDkwNiwyMDk1NywyMTEzNywyMTEzOSwyMTIzNSwyMjEwNSwyMjEyMywyMjEzNywyMjEyMSwyMjExNiwyMjEzNiwyMjEyMiwyMjEyMCwyMjExNywyMjEyOSwyMjEyNywyMjEyNCwyMjExNCwyMjEzNCwyMjcyMSwyMjcxOCwyMjcy'@; put 'NywyMjcyNSwyMjg5NCwyMzMyNSwyMzM0OCwyMzQxNiwyMzUzNiwyMzU2NiwyNDM5NCwyNTAxMCwyNDk3NywyNTAwMSwyNDk3MCwyNTAzNywyNTAxNCwyNTAyMiwyNTAzNCwyNTAzMiwyNTEzNiwyNTc5NywyNTc5MywyNTgwMywyNTc4NywyNTc4OCwyNTgxOCwyNTc5NiwyNTc5OSwyNTc5NCwy'@; put 'NTgwNSwyNTc5MSwyNTgxMCwyNTgxMiwyNTc5MCwyNTk3MiwyNjMxMCwyNjMxMywyNjI5NywyNjMwOCwyNjMxMSwyNjI5NiwyNzE5NywyNzE5MiwyNzE5NCwyNzIyNSwyNzI0MywyNzIyNCwyNzE5MywyNzIwNCwyNzIzNCwyNzIzMywyNzIxMSwyNzIwNywyNzE4OSwyNzIzMSwyNzIwOCwyNzQ4'@; put 'MSwyNzUxMSwyNzY1MywyODYxMCwyODU5MywyODU3NywyODYxMSwyODU4MCwyODYwOSwyODU4MywyODU5NSwyODYwOCwyODYwMSwyODU5OCwyODU4MiwyODU3NiwyODU5NiwyOTExOCwyOTEyOSwyOTEzNiwyOTEzOCwyOTEyOCwyOTE0MSwyOTExMywyOTEzNCwyOTE0NSwyOTE0OCwyOTEyMywy'@; put 'OTEyNCwyOTU0NCwyOTg1MiwyOTg1OSwyOTg0OCwyOTg1NSwyOTg1NCwyOTkyMiwyOTk2NCwyOTk2NSwzMDI2MCwzMDI2NCwzMDI2NiwzMDQzOSwzMDQzNywzMDYyNCwzMDYyMiwzMDYyMywzMDYyOSwzMDk1MiwzMDkzOCwzMDk1NiwzMDk1MSwzMTE0MiwzMTMwOSwzMTMxMCwzMTMwMiwzMTMw'@; put 'OCwzMTMwNywzMTQxOCwzMTcwNSwzMTc2MSwzMTY4OSwzMTcxNiwzMTcwNywzMTcxMywzMTcyMSwzMTcxOCwzMTk1NywzMTk1OCwzMjI2NiwzMjI3MywzMjI2NCwzMjI4MywzMjI5MSwzMjI4NiwzMjI4NSwzMjI2NSwzMjI3MiwzMjYzMywzMjY5MCwzMjc1MiwzMjc1MywzMjc1MCwzMjgwOCwz'@; put 'MzIwMywzMzE5MywzMzE5MiwzMzI3NSwzMzI4OCwzMzM2OCwzMzM2OSwzNDEyMiwzNDEzNywzNDEyMCwzNDE1MiwzNDE1MywzNDExNSwzNDEyMSwzNDE1NywzNDE1NCwzNDE0MiwzNDY5MSwzNDcxOSwzNDcxOCwzNDcyMiwzNDcwMSwzNDkxMywzNTExNCwzNTEyMiwzNTEwOSwzNTExNSwzNTEw'@; put 'NSwzNTI0MiwzNTIzOCwzNTU1OCwzNTU3OCwzNTU2MywzNTU2OSwzNTU4NCwzNTU0OCwzNTU1OSwzNTU2NiwzNTU4MiwzNTU4NSwzNTU4NiwzNTU3NSwzNTU2NSwzNTU3MSwzNTU3NCwzNTU4MCwzNTk0NywzNTk0OSwzNTk4NywzNjA4NCwzNjQyMCwzNjQwMSwzNjQwNCwzNjQxOCwzNjQwOSwz'@; put 'NjQwNSwzNjY2NywzNjY1NSwzNjY2NCwzNjY1OSwzNjc3NiwzNjc3NCwzNjk4MSwzNjk4MCwzNjk4NCwzNjk3OCwzNjk4OCwzNjk4NiwzNzE3MiwzNzI2NiwzNzY2NCwzNzY4NiwzNzYyNCwzNzY4MywzNzY3OSwzNzY2NiwzNzYyOCwzNzY3NSwzNzYzNiwzNzY1OCwzNzY0OCwzNzY3MCwzNzY2'@; put 'NSwzNzY1MywzNzY3OCwzNzY1NywzODMzMSwzODU2NywzODU2OCwzODU3MCwzODYxMywzODY3MCwzODY3MywzODY3OCwzODY2OSwzODY3NSwzODY3MSwzODc0NywzODc0OCwzODc1OCwzODgwOCwzODk2MCwzODk2OCwzODk3MSwzODk2NywzODk1NywzODk2OSwzODk0OCwzOTE4NCwzOTIwOCwz'@; put 'OTE5OCwzOTE5NSwzOTIwMSwzOTE5NCwzOTQwNSwzOTM5NCwzOTQwOSwzOTYwOCwzOTYxMiwzOTY3NSwzOTY2MSwzOTcyMCwzOTgyNSw0MDIxMyw0MDIyNyw0MDIzMCw0MDIzMiw0MDIxMCw0MDIxOSw0MDY2NCw0MDY2MCw0MDg0NSw0MDg2MCwyMDc3OCwyMDc2NywyMDc2OSwyMDc4NiwyMTIz'@; put 'NywyMjE1OCwyMjE0NCwyMjE2MCwyMjE0OSwyMjE1MSwyMjE1OSwyMjc0MSwyMjczOSwyMjczNywyMjczNCwyMzM0NCwyMzMzOCwyMzMzMiwyMzQxOCwyMzYwNywyMzY1NiwyMzk5NiwyMzk5NCwyMzk5NywyMzk5MiwyNDE3MSwyNDM5NiwyNDUwOSwyNTAzMywyNTAyNiwyNTAzMSwyNTA2Miwy'@; put 'NTAzNSwyNTEzOCwyNTE0MCwyNTgwNiwyNTgwMiwyNTgxNiwyNTgyNCwyNTg0MCwyNTgzMCwyNTgzNiwyNTg0MSwyNTgyNiwyNTgzNywyNTk4NiwyNTk4NywyNjMyOSwyNjMyNiwyNzI2NCwyNzI4NCwyNzI2OCwyNzI5OCwyNzI5MiwyNzM1NSwyNzI5OSwyNzI2MiwyNzI4NywyNzI4MCwyNzI5'@; put 'NiwyNzQ4NCwyNzU2NiwyNzYxMCwyNzY1NiwyODYzMiwyODY1NywyODYzOSwyODY0MCwyODYzNSwyODY0NCwyODY1MSwyODY1NSwyODU0NCwyODY1MiwyODY0MSwyODY0OSwyODYyOSwyODY1NCwyODY1NiwyOTE1OSwyOTE1MSwyOTE2NiwyOTE1OCwyOTE1NywyOTE2NSwyOTE2NCwyOTE3Miwy'@; put 'OTE1MiwyOTIzNywyOTI1NCwyOTU1MiwyOTU1NCwyOTg2NSwyOTg3MiwyOTg2MiwyOTg2NCwzMDI3OCwzMDI3NCwzMDI4NCwzMDQ0MiwzMDY0MywzMDYzNCwzMDY0MCwzMDYzNiwzMDYzMSwzMDYzNywzMDcwMywzMDk2NywzMDk3MCwzMDk2NCwzMDk1OSwzMDk3NywzMTE0MywzMTE0NiwzMTMx'@; put 'OSwzMTQyMywzMTc1MSwzMTc1NywzMTc0MiwzMTczNSwzMTc1NiwzMTcxMiwzMTk2OCwzMTk2NCwzMTk2NiwzMTk3MCwzMTk2NywzMTk2MSwzMTk2NSwzMjMwMiwzMjMxOCwzMjMyNiwzMjMxMSwzMjMwNiwzMjMyMywzMjI5OSwzMjMxNywzMjMwNSwzMjMyNSwzMjMyMSwzMjMwOCwzMjMxMywz'@; put 'MjMyOCwzMjMwOSwzMjMxOSwzMjMwMywzMjU4MCwzMjc1NSwzMjc2NCwzMjg4MSwzMjg4MiwzMjg4MCwzMjg3OSwzMjg4MywzMzIyMiwzMzIxOSwzMzIxMCwzMzIxOCwzMzIxNiwzMzIxNSwzMzIxMywzMzIyNSwzMzIxNCwzMzI1NiwzMzI4OSwzMzM5MywzNDIxOCwzNDE4MCwzNDE3NCwzNDIw'@; put 'NCwzNDE5MywzNDE5NiwzNDIyMywzNDIwMywzNDE4MywzNDIxNiwzNDE4NiwzNDQwNywzNDc1MiwzNDc2OSwzNDczOSwzNDc3MCwzNDc1OCwzNDczMSwzNDc0NywzNDc0NiwzNDc2MCwzNDc2MywzNTEzMSwzNTEyNiwzNTE0MCwzNTEyOCwzNTEzMywzNTI0NCwzNTU5OCwzNTYwNywzNTYwOSwz'@; put 'NTYxMSwzNTU5NCwzNTYxNiwzNTYxMywzNTU4OCwzNTYwMCwzNTkwNSwzNTkwMywzNTk1NSwzNjA5MCwzNjA5MywzNjA5MiwzNjA4OCwzNjA5MSwzNjI2NCwzNjQyNSwzNjQyNywzNjQyNCwzNjQyNiwzNjY3NiwzNjY3MCwzNjY3NCwzNjY3NywzNjY3MSwzNjk5MSwzNjk4OSwzNjk5NiwzNjk5'@; put 'MywzNjk5NCwzNjk5MiwzNzE3NywzNzI4MywzNzI3OCwzNzI3NiwzNzcwOSwzNzc2MiwzNzY3MiwzNzc0OSwzNzcwNiwzNzczMywzNzcwNywzNzY1NiwzNzc1OCwzNzc0MCwzNzcyMywzNzc0NCwzNzcyMiwzNzcxNiwzODM0NiwzODM0NywzODM0OCwzODM0NCwzODM0MiwzODU3NywzODU4NCwz'@; put 'ODYxNCwzODY4NCwzODY4NiwzODgxNiwzODg2NywzODk4MiwzOTA5NCwzOTIyMSwzOTQyNSwzOTQyMywzOTg1NCwzOTg1MSwzOTg1MCwzOTg1Myw0MDI1MSw0MDI1NSw0MDU4Nyw0MDY1NSw0MDY3MCw0MDY2OCw0MDY2OSw0MDY2Nyw0MDc2Niw0MDc3OSwyMTQ3NCwyMjE2NSwyMjE5MCwyMjc0'@; put 'NSwyMjc0NCwyMzM1MiwyNDQxMywyNTA1OSwyNTEzOSwyNTg0NCwyNTg0MiwyNTg1NCwyNTg2MiwyNTg1MCwyNTg1MSwyNTg0NywyNjAzOSwyNjMzMiwyNjQwNiwyNzMxNSwyNzMwOCwyNzMzMSwyNzMyMywyNzMyMCwyNzMzMCwyNzMxMCwyNzMxMSwyNzQ4NywyNzUxMiwyNzU2NywyODY4MSwy'@; put 'ODY4MywyODY3MCwyODY3OCwyODY2NiwyODY4OSwyODY4NywyOTE3OSwyOTE4MCwyOTE4MiwyOTE3NiwyOTU1OSwyOTU1NywyOTg2MywyOTg4NywyOTk3MywzMDI5NCwzMDI5NiwzMDI5MCwzMDY1MywzMDY1NSwzMDY1MSwzMDY1MiwzMDk5MCwzMTE1MCwzMTMyOSwzMTMzMCwzMTMyOCwzMTQy'@; put 'OCwzMTQyOSwzMTc4NywzMTc4MywzMTc4NiwzMTc3NCwzMTc3OSwzMTc3NywzMTk3NSwzMjM0MCwzMjM0MSwzMjM1MCwzMjM0NiwzMjM1MywzMjMzOCwzMjM0NSwzMjU4NCwzMjc2MSwzMjc2MywzMjg4NywzMjg4NiwzMzIyOSwzMzIzMSwzMzI5MCwzNDI1NSwzNDIxNywzNDI1MywzNDI1Niwz'@; put 'NDI0OSwzNDIyNCwzNDIzNCwzNDIzMywzNDIxNCwzNDc5OSwzNDc5NiwzNDgwMiwzNDc4NCwzNTIwNiwzNTI1MCwzNTMxNiwzNTYyNCwzNTY0MSwzNTYyOCwzNTYyNywzNTkyMCwzNjEwMSwzNjQ0MSwzNjQ1MSwzNjQ1NCwzNjQ1MiwzNjQ0NywzNjQzNywzNjU0NCwzNjY4MSwzNjY4NSwzNjk5'@; put 'OSwzNjk5NSwzN2UzLDM3MjkxLDM3MjkyLDM3MzI4LDM3NzgwLDM3NzcwLDM3NzgyLDM3Nzk0LDM3ODExLDM3ODA2LDM3ODA0LDM3ODA4LDM3Nzg0LDM3Nzg2LDM3NzgzLDM4MzU2LDM4MzU4LDM4MzUyLDM4MzU3LDM4NjI2LDM4NjIwLDM4NjE3LDM4NjE5LDM4NjIyLDM4NjkyLDM4ODE5LDM4'@; put 'ODIyLDM4ODI5LDM4OTA1LDM4OTg5LDM4OTkxLDM4OTg4LDM4OTkwLDM4OTk1LDM5MDk4LDM5MjMwLDM5MjMxLDM5MjI5LDM5MjE0LDM5MzMzLDM5NDM4LDM5NjE3LDM5NjgzLDM5Njg2LDM5NzU5LDM5NzU4LDM5NzU3LDM5ODgyLDM5ODgxLDM5OTMzLDM5ODgwLDM5ODcyLDQwMjczLDQwMjg1'@; put 'LDQwMjg4LDQwNjcyLDQwNzI1LDQwNzQ4LDIwNzg3LDIyMTgxLDIyNzUwLDIyNzUxLDIyNzU0LDIzNTQxLDQwODQ4LDI0MzAwLDI1MDc0LDI1MDc5LDI1MDc4LDI1MDc3LDI1ODU2LDI1ODcxLDI2MzM2LDI2MzMzLDI3MzY1LDI3MzU3LDI3MzU0LDI3MzQ3LDI4Njk5LDI4NzAzLDI4NzEyLDI4'@; put 'Njk4LDI4NzAxLDI4NjkzLDI4Njk2LDI5MTkwLDI5MTk3LDI5MjcyLDI5MzQ2LDI5NTYwLDI5NTYyLDI5ODg1LDI5ODk4LDI5OTIzLDMwMDg3LDMwMDg2LDMwMzAzLDMwMzA1LDMwNjYzLDMxMDAxLDMxMTUzLDMxMzM5LDMxMzM3LDMxODA2LDMxODA3LDMxODAwLDMxODA1LDMxNzk5LDMxODA4'@; put 'LDMyMzYzLDMyMzY1LDMyMzc3LDMyMzYxLDMyMzYyLDMyNjQ1LDMyMzcxLDMyNjk0LDMyNjk3LDMyNjk2LDMzMjQwLDM0MjgxLDM0MjY5LDM0MjgyLDM0MjYxLDM0Mjc2LDM0Mjc3LDM0Mjk1LDM0ODExLDM0ODIxLDM0ODI5LDM0ODA5LDM0ODE0LDM1MTY4LDM1MTY3LDM1MTU4LDM1MTY2LDM1'@; put 'NjQ5LDM1Njc2LDM1NjcyLDM1NjU3LDM1Njc0LDM1NjYyLDM1NjYzLDM1NjU0LDM1NjczLDM2MTA0LDM2MTA2LDM2NDc2LDM2NDY2LDM2NDg3LDM2NDcwLDM2NDYwLDM2NDc0LDM2NDY4LDM2NjkyLDM2Njg2LDM2NzgxLDM3MDAyLDM3MDAzLDM3Mjk3LDM3Mjk0LDM3ODU3LDM3ODQxLDM3ODU1'@; put 'LDM3ODI3LDM3ODMyLDM3ODUyLDM3ODUzLDM3ODQ2LDM3ODU4LDM3ODM3LDM3ODQ4LDM3ODYwLDM3ODQ3LDM3ODY0LDM4MzY0LDM4NTgwLDM4NjI3LDM4Njk4LDM4Njk1LDM4NzUzLDM4ODc2LDM4OTA3LDM5MDA2LDM5ZTMsMzkwMDMsMzkxMDAsMzkyMzcsMzkyNDEsMzk0NDYsMzk0NDksMzk2'@; put 'OTMsMzk5MTIsMzk5MTEsMzk4OTQsMzk4OTksNDAzMjksNDAyODksNDAzMDYsNDAyOTgsNDAzMDAsNDA1OTQsNDA1OTksNDA1OTUsNDA2MjgsMjEyNDAsMjIxODQsMjIxOTksMjIxOTgsMjIxOTYsMjIyMDQsMjI3NTYsMjMzNjAsMjMzNjMsMjM0MjEsMjM1NDIsMjQwMDksMjUwODAsMjUwODIs'@; put 'MjU4ODAsMjU4NzYsMjU4ODEsMjYzNDIsMjY0MDcsMjczNzIsMjg3MzQsMjg3MjAsMjg3MjIsMjkyMDAsMjk1NjMsMjk5MDMsMzAzMDYsMzAzMDksMzEwMTQsMzEwMTgsMzEwMjAsMzEwMTksMzE0MzEsMzE0NzgsMzE4MjAsMzE4MTEsMzE4MjEsMzE5ODMsMzE5ODQsMzY3ODIsMzIzODEsMzIz'@; put 'ODAsMzIzODYsMzI1ODgsMzI3NjgsMzMyNDIsMzMzODIsMzQyOTksMzQyOTcsMzQzMjEsMzQyOTgsMzQzMTAsMzQzMTUsMzQzMTEsMzQzMTQsMzQ4MzYsMzQ4MzcsMzUxNzIsMzUyNTgsMzUzMjAsMzU2OTYsMzU2OTIsMzU2ODYsMzU2OTUsMzU2NzksMzU2OTEsMzYxMTEsMzYxMDksMzY0ODks'@; put 'MzY0ODEsMzY0ODUsMzY0ODIsMzczMDAsMzczMjMsMzc5MTIsMzc4OTEsMzc4ODUsMzgzNjksMzg3MDQsMzkxMDgsMzkyNTAsMzkyNDksMzkzMzYsMzk0NjcsMzk0NzIsMzk0NzksMzk0NzcsMzk5NTUsMzk5NDksNDA1NjksNDA2MjksNDA2ODAsNDA3NTEsNDA3OTksNDA4MDMsNDA4MDEsMjA3'@; put 'OTEsMjA3OTIsMjIyMDksMjIyMDgsMjIyMTAsMjI4MDQsMjM2NjAsMjQwMTMsMjUwODQsMjUwODYsMjU4ODUsMjU4ODQsMjYwMDUsMjYzNDUsMjczODcsMjczOTYsMjczODYsMjc1NzAsMjg3NDgsMjkyMTEsMjkzNTEsMjk5MTAsMjk5MDgsMzAzMTMsMzA2NzUsMzE4MjQsMzIzOTksMzIzOTYs'@; put 'MzI3MDAsMzQzMjcsMzQzNDksMzQzMzAsMzQ4NTEsMzQ4NTAsMzQ4NDksMzQ4NDcsMzUxNzgsMzUxODAsMzUyNjEsMzU3MDAsMzU3MDMsMzU3MDksMzYxMTUsMzY0OTAsMzY0OTMsMzY0OTEsMzY3MDMsMzY3ODMsMzczMDYsMzc5MzQsMzc5MzksMzc5NDEsMzc5NDYsMzc5NDQsMzc5MzgsMzc5'@; put 'MzEsMzgzNzAsMzg3MTIsMzg3MTMsMzg3MDYsMzg5MTEsMzkwMTUsMzkwMTMsMzkyNTUsMzk0OTMsMzk0OTEsMzk0ODgsMzk0ODYsMzk2MzEsMzk3NjQsMzk3NjEsMzk5ODEsMzk5NzMsNDAzNjcsNDAzNzIsNDAzODYsNDAzNzYsNDA2MDUsNDA2ODcsNDA3MjksNDA3OTYsNDA4MDYsNDA4MDcs'@; put 'MjA3OTYsMjA3OTUsMjIyMTYsMjIyMTgsMjIyMTcsMjM0MjMsMjQwMjAsMjQwMTgsMjQzOTgsMjUwODcsMjU4OTIsMjc0MDIsMjc0ODksMjg3NTMsMjg3NjAsMjk1NjgsMjk5MjQsMzAwOTAsMzAzMTgsMzAzMTYsMzExNTUsMzE4NDAsMzE4MzksMzI4OTQsMzI4OTMsMzMyNDcsMzUxODYsMzUx'@; put 'ODMsMzUzMjQsMzU3MTIsMzYxMTgsMzYxMTksMzY0OTcsMzY0OTksMzY3MDUsMzcxOTIsMzc5NTYsMzc5NjksMzc5NzAsMzg3MTcsMzg3MTgsMzg4NTEsMzg4NDksMzkwMTksMzkyNTMsMzk1MDksMzk1MDEsMzk2MzQsMzk3MDYsNDAwMDksMzk5ODUsMzk5OTgsMzk5OTUsNDA0MDMsNDA0MDcs'@; put 'NDA3NTYsNDA4MTIsNDA4MTAsNDA4NTIsMjIyMjAsMjQwMjIsMjUwODgsMjU4OTEsMjU4OTksMjU4OTgsMjYzNDgsMjc0MDgsMjk5MTQsMzE0MzQsMzE4NDQsMzE4NDMsMzE4NDUsMzI0MDMsMzI0MDYsMzI0MDQsMzMyNTAsMzQzNjAsMzQzNjcsMzQ4NjUsMzU3MjIsMzcwMDgsMzcwMDcsMzc5'@; put 'ODcsMzc5ODQsMzc5ODgsMzg3NjAsMzkwMjMsMzkyNjAsMzk1MTQsMzk1MTUsMzk1MTEsMzk2MzUsMzk2MzYsMzk2MzMsNDAwMjAsNDAwMjMsNDAwMjIsNDA0MjEsNDA2MDcsNDA2OTIsMjIyMjUsMjI3NjEsMjU5MDAsMjg3NjYsMzAzMjEsMzAzMjIsMzA2NzksMzI1OTIsMzI2NDgsMzQ4NzAs'@; put 'MzQ4NzMsMzQ5MTQsMzU3MzEsMzU3MzAsMzU3MzQsMzMzOTksMzYxMjMsMzczMTIsMzc5OTQsMzg3MjIsMzg3MjgsMzg3MjQsMzg4NTQsMzkwMjQsMzk1MTksMzk3MTQsMzk3NjgsNDAwMzEsNDA0NDEsNDA0NDIsNDA1NzIsNDA1NzMsNDA3MTEsNDA4MjMsNDA4MTgsMjQzMDcsMjc0MTQsMjg3'@; put 'NzEsMzE4NTIsMzE4NTQsMzQ4NzUsMzUyNjQsMzY1MTMsMzczMTMsMzgwMDIsMzhlMywzOTAyNSwzOTI2MiwzOTYzOCwzOTcxNSw0MDY1MiwyODc3MiwzMDY4MiwzNTczOCwzODAwNywzODg1NywzOTUyMiwzOTUyNSwzMjQxMiwzNTc0MCwzNjUyMiwzNzMxNywzODAxMywzODAxNCwzODAxMiw0'@; put 'MDA1NSw0MDA1Niw0MDY5NSwzNTkyNCwzODAxNSw0MDQ3NCwyOTIyNCwzOTUzMCwzOTcyOSw0MDQ3NSw0MDQ3OCwzMTg1OCw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDkzMzIsOTMzMyw5MzM0LDkzMzUsOTMzNiw5MzM3LDkzMzgsOTMzOSw5MzQw'@; put 'LDkzNDEsODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1NjUsODU2Niw4NTY3LDg1NjgsODU2OSwyMDAyMiwyMDAzMSwyMDEwMSwyMDEyOCwyMDg2NiwyMDg4NiwyMDkwNywyMTI0MSwyMTMwNCwyMTM1MywyMTQzMCwyMjc5NCwyMzQyNCwyNDAyNywxMjA4MywyNDE5MSwyNDMwOCwyNDQwMCwy'@; put 'NDQxNywyNTkwOCwyNjA4MCwzMDA5OCwzMDMyNiwzNjc4OSwzODU4MiwxNjgsNzEwLDEyNTQxLDEyNTQyLDEyNDQ1LDEyNDQ2LDEyMjkxLDIwMTg5LDEyMjkzLDEyMjk0LDEyMjk1LDEyNTQwLDY1MzM5LDY1MzQxLDEwMDQ1LDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEy'@; put 'MzU5LDEyMzYwLDEyMzYxLDEyMzYyLDEyMzYzLDEyMzY0LDEyMzY1LDEyMzY2LDEyMzY3LDEyMzY4LDEyMzY5LDEyMzcwLDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1LDEyMzg2'@; put 'LDEyMzg3LDEyMzg4LDEyMzg5LDEyMzkwLDEyMzkxLDEyMzkyLDEyMzkzLDEyMzk0LDEyMzk1LDEyMzk2LDEyMzk3LDEyMzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEyNDEzLDEy'@; put 'NDE0LDEyNDE1LDEyNDE2LDEyNDE3LDEyNDE4LDEyNDE5LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDI1LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUyLDEyNDUzLDEyNDU0'@; put 'LDEyNDU1LDEyNDU2LDEyNDU3LDEyNDU4LDEyNDU5LDEyNDYwLDEyNDYxLDEyNDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEyNDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4LDEyNDc5LDEyNDgwLDEyNDgxLDEy'@; put 'NDgyLDEyNDgzLDEyNDg0LDEyNDg1LDEyNDg2LDEyNDg3LDEyNDg4LDEyNDg5LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAxLDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEyNTA2LDEyNTA3LDEyNTA4LDEyNTA5'@; put 'LDEyNTEwLDEyNTExLDEyNTEyLDEyNTEzLDEyNTE0LDEyNTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEyNTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMzLDEyNTM0LDEwNDAsMTA0MSwxMDQy'@; put 'LDEwNDMsMTA0NCwxMDQ1LDEwMjUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0'@; put 'LDEwNzUsMTA3NiwxMDc3LDExMDUsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDg2NzksODYzMiw4NjMz'@; put 'LDEyNzUxLDEzMTI3NiwyMDA1OCwxMzEyMTAsMjA5OTQsMTc1NTMsNDA4ODAsMjA4NzIsNDA4ODEsMTYxMjg3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsMTI4NDksODQ3MCw4NDgxLDEyNDQzLDEyNDQ0LDExOTA0LDExOTA4LDEx'@; put 'OTEwLDExOTExLDExOTEyLDExOTE0LDExOTE2LDExOTE3LDExOTI1LDExOTMyLDExOTMzLDExOTQxLDExOTQzLDExOTQ2LDExOTQ4LDExOTUwLDExOTU4LDExOTY0LDExOTY2LDExOTc0LDExOTc4LDExOTgwLDExOTgxLDExOTgzLDExOTkwLDExOTkxLDExOTk4LDEyMDAzLG51bGwsbnVsbCxu'@; put 'dWxsLDY0Myw1OTIsNjAzLDU5Niw2MjksMzM5LDI0OCwzMzEsNjUwLDYxOCwyMDAzNCwyMDA2MCwyMDk4MSwyMTI3NCwyMTM3OCwxOTk3NSwxOTk4MCwyMDAzOSwyMDEwOSwyMjIzMSw2NDAxMiwyMzY2MiwyNDQzNSwxOTk4MywyMDg3MSwxOTk4MiwyMDAxNCwyMDExNSwyMDE2MiwyMDE2OSwy'@; put 'MDE2OCwyMDg4OCwyMTI0NCwyMTM1NiwyMTQzMywyMjMwNCwyMjc4NywyMjgyOCwyMzU2OCwyNDA2MywyNjA4MSwyNzU3MSwyNzU5NiwyNzY2OCwyOTI0NywyMDAxNywyMDAyOCwyMDIwMCwyMDE4OCwyMDIwMSwyMDE5MywyMDE4OSwyMDE4NiwyMTAwNCwyMTI3NiwyMTMyNCwyMjMwNiwyMjMw'@; put 'NywyMjgwNywyMjgzMSwyMzQyNSwyMzQyOCwyMzU3MCwyMzYxMSwyMzY2OCwyMzY2NywyNDA2OCwyNDE5MiwyNDE5NCwyNDUyMSwyNTA5NywyNTE2OCwyNzY2OSwyNzcwMiwyNzcxNSwyNzcxMSwyNzcwNywyOTM1OCwyOTM2MCwyOTU3OCwzMTE2MCwzMjkwNiwzODQzMCwyMDIzOCwyMDI0OCwy'@; put 'MDI2OCwyMDIxMywyMDI0NCwyMDIwOSwyMDIyNCwyMDIxNSwyMDIzMiwyMDI1MywyMDIyNiwyMDIyOSwyMDI1OCwyMDI0MywyMDIyOCwyMDIxMiwyMDI0MiwyMDkxMywyMTAxMSwyMTAwMSwyMTAwOCwyMTE1OCwyMTI4MiwyMTI3OSwyMTMyNSwyMTM4NiwyMTUxMSwyMjI0MSwyMjIzOSwyMjMx'@; put 'OCwyMjMxNCwyMjMyNCwyMjg0NCwyMjkxMiwyMjkwOCwyMjkxNywyMjkwNywyMjkxMCwyMjkwMywyMjkxMSwyMzM4MiwyMzU3MywyMzU4OSwyMzY3NiwyMzY3NCwyMzY3NSwyMzY3OCwyNDAzMSwyNDE4MSwyNDE5NiwyNDMyMiwyNDM0NiwyNDQzNiwyNDUzMywyNDUzMiwyNDUyNywyNTE4MCwy'@; put 'NTE4MiwyNTE4OCwyNTE4NSwyNTE5MCwyNTE4NiwyNTE3NywyNTE4NCwyNTE3OCwyNTE4OSwyNjA5NSwyNjA5NCwyNjQzMCwyNjQyNSwyNjQyNCwyNjQyNywyNjQyNiwyNjQzMSwyNjQyOCwyNjQxOSwyNzY3MiwyNzcxOCwyNzczMCwyNzc0MCwyNzcyNywyNzcyMiwyNzczMiwyNzcyMywyNzcy'@; put 'NCwyODc4NSwyOTI3OCwyOTM2NCwyOTM2NSwyOTU4MiwyOTk5NCwzMDMzNSwzMTM0OSwzMjU5MywzMzQwMCwzMzQwNCwzMzQwOCwzMzQwNSwzMzQwNywzNDM4MSwzNTE5OCwzNzAxNywzNzAxNSwzNzAxNiwzNzAxOSwzNzAxMiwzODQzNCwzODQzNiwzODQzMiwzODQzNSwyMDMxMCwyMDI4Mywy'@; put 'MDMyMiwyMDI5NywyMDMwNywyMDMyNCwyMDI4NiwyMDMyNywyMDMwNiwyMDMxOSwyMDI4OSwyMDMxMiwyMDI2OSwyMDI3NSwyMDI4NywyMDMyMSwyMDg3OSwyMDkyMSwyMTAyMCwyMTAyMiwyMTAyNSwyMTE2NSwyMTE2NiwyMTI1NywyMTM0NywyMTM2MiwyMTM5MCwyMTM5MSwyMTU1MiwyMTU1'@; put 'OSwyMTU0NiwyMTU4OCwyMTU3MywyMTUyOSwyMTUzMiwyMTU0MSwyMTUyOCwyMTU2NSwyMTU4MywyMTU2OSwyMTU0NCwyMTU0MCwyMTU3NSwyMjI1NCwyMjI0NywyMjI0NSwyMjMzNywyMjM0MSwyMjM0OCwyMjM0NSwyMjM0NywyMjM1NCwyMjc5MCwyMjg0OCwyMjk1MCwyMjkzNiwyMjk0NCwy'@; put 'MjkzNSwyMjkyNiwyMjk0NiwyMjkyOCwyMjkyNywyMjk1MSwyMjk0NSwyMzQzOCwyMzQ0MiwyMzU5MiwyMzU5NCwyMzY5MywyMzY5NSwyMzY4OCwyMzY5MSwyMzY4OSwyMzY5OCwyMzY5MCwyMzY4NiwyMzY5OSwyMzcwMSwyNDAzMiwyNDA3NCwyNDA3OCwyNDIwMywyNDIwMSwyNDIwNCwyNDIw'@; put 'MCwyNDIwNSwyNDMyNSwyNDM0OSwyNDQ0MCwyNDQzOCwyNDUzMCwyNDUyOSwyNDUyOCwyNDU1NywyNDU1MiwyNDU1OCwyNDU2MywyNDU0NSwyNDU0OCwyNDU0NywyNDU3MCwyNDU1OSwyNDU2NywyNDU3MSwyNDU3NiwyNDU2NCwyNTE0NiwyNTIxOSwyNTIyOCwyNTIzMCwyNTIzMSwyNTIzNiwy'@; put 'NTIyMywyNTIwMSwyNTIxMSwyNTIxMCwyNTIwMCwyNTIxNywyNTIyNCwyNTIwNywyNTIxMywyNTIwMiwyNTIwNCwyNTkxMSwyNjA5NiwyNjEwMCwyNjA5OSwyNjA5OCwyNjEwMSwyNjQzNywyNjQzOSwyNjQ1NywyNjQ1MywyNjQ0NCwyNjQ0MCwyNjQ2MSwyNjQ0NSwyNjQ1OCwyNjQ0MywyNzYw'@; put 'MCwyNzY3MywyNzY3NCwyNzc2OCwyNzc1MSwyNzc1NSwyNzc4MCwyNzc4NywyNzc5MSwyNzc2MSwyNzc1OSwyNzc1MywyNzgwMiwyNzc1NywyNzc4MywyNzc5NywyNzgwNCwyNzc1MCwyNzc2MywyNzc0OSwyNzc3MSwyNzc5MCwyODc4OCwyODc5NCwyOTI4MywyOTM3NSwyOTM3MywyOTM3OSwy'@; put 'OTM4MiwyOTM3NywyOTM3MCwyOTM4MSwyOTU4OSwyOTU5MSwyOTU4NywyOTU4OCwyOTU4NiwzMDAxMCwzMDAwOSwzMDEwMCwzMDEwMSwzMDMzNywzMTAzNywzMjgyMCwzMjkxNywzMjkyMSwzMjkxMiwzMjkxNCwzMjkyNCwzMzQyNCwzMzQyMywzMzQxMywzMzQyMiwzMzQyNSwzMzQyNywzMzQx'@; put 'OCwzMzQxMSwzMzQxMiwzNTk2MCwzNjgwOSwzNjc5OSwzNzAyMywzNzAyNSwzNzAyOSwzNzAyMiwzNzAzMSwzNzAyNCwzODQ0OCwzODQ0MCwzODQ0NywzODQ0NSwyMDAxOSwyMDM3NiwyMDM0OCwyMDM1NywyMDM0OSwyMDM1MiwyMDM1OSwyMDM0MiwyMDM0MCwyMDM2MSwyMDM1NiwyMDM0Mywy'@; put 'MDMwMCwyMDM3NSwyMDMzMCwyMDM3OCwyMDM0NSwyMDM1MywyMDM0NCwyMDM2OCwyMDM4MCwyMDM3MiwyMDM4MiwyMDM3MCwyMDM1NCwyMDM3MywyMDMzMSwyMDMzNCwyMDg5NCwyMDkyNCwyMDkyNiwyMTA0NSwyMTA0MiwyMTA0MywyMTA2MiwyMTA0MSwyMTE4MCwyMTI1OCwyMTI1OSwyMTMw'@; put 'OCwyMTM5NCwyMTM5NiwyMTYzOSwyMTYzMSwyMTYzMywyMTY0OSwyMTYzNCwyMTY0MCwyMTYxMSwyMTYyNiwyMTYzMCwyMTYwNSwyMTYxMiwyMTYyMCwyMTYwNiwyMTY0NSwyMTYxNSwyMTYwMSwyMTYwMCwyMTY1NiwyMTYwMywyMTYwNywyMTYwNCwyMjI2MywyMjI2NSwyMjM4MywyMjM4Niwy'@; put 'MjM4MSwyMjM3OSwyMjM4NSwyMjM4NCwyMjM5MCwyMjQwMCwyMjM4OSwyMjM5NSwyMjM4NywyMjM4OCwyMjM3MCwyMjM3NiwyMjM5NywyMjc5NiwyMjg1MywyMjk2NSwyMjk3MCwyMjk5MSwyMjk5MCwyMjk2MiwyMjk4OCwyMjk3NywyMjk2NiwyMjk3MiwyMjk3OSwyMjk5OCwyMjk2MSwyMjk3'@; put 'MywyMjk3NiwyMjk4NCwyMjk2NCwyMjk4MywyMzM5NCwyMzM5NywyMzQ0MywyMzQ0NSwyMzYyMCwyMzYyMywyMzcyNiwyMzcxNiwyMzcxMiwyMzczMywyMzcyNywyMzcyMCwyMzcyNCwyMzcxMSwyMzcxNSwyMzcyNSwyMzcxNCwyMzcyMiwyMzcxOSwyMzcwOSwyMzcxNywyMzczNCwyMzcyOCwy'@; put 'MzcxOCwyNDA4NywyNDA4NCwyNDA4OSwyNDM2MCwyNDM1NCwyNDM1NSwyNDM1NiwyNDQwNCwyNDQ1MCwyNDQ0NiwyNDQ0NSwyNDU0MiwyNDU0OSwyNDYyMSwyNDYxNCwyNDYwMSwyNDYyNiwyNDU4NywyNDYyOCwyNDU4NiwyNDU5OSwyNDYyNywyNDYwMiwyNDYwNiwyNDYyMCwyNDYxMCwyNDU4'@; put 'OSwyNDU5MiwyNDYyMiwyNDU5NSwyNDU5MywyNDU4OCwyNDU4NSwyNDYwNCwyNTEwOCwyNTE0OSwyNTI2MSwyNTI2OCwyNTI5NywyNTI3OCwyNTI1OCwyNTI3MCwyNTI5MCwyNTI2MiwyNTI2NywyNTI2MywyNTI3NSwyNTI1NywyNTI2NCwyNTI3MiwyNTkxNywyNjAyNCwyNjA0MywyNjEyMSwy'@; put 'NjEwOCwyNjExNiwyNjEzMCwyNjEyMCwyNjEwNywyNjExNSwyNjEyMywyNjEyNSwyNjExNywyNjEwOSwyNjEyOSwyNjEyOCwyNjM1OCwyNjM3OCwyNjUwMSwyNjQ3NiwyNjUxMCwyNjUxNCwyNjQ4NiwyNjQ5MSwyNjUyMCwyNjUwMiwyNjUwMCwyNjQ4NCwyNjUwOSwyNjUwOCwyNjQ5MCwyNjUy'@; put 'NywyNjUxMywyNjUyMSwyNjQ5OSwyNjQ5MywyNjQ5NywyNjQ4OCwyNjQ4OSwyNjUxNiwyNzQyOSwyNzUyMCwyNzUxOCwyNzYxNCwyNzY3NywyNzc5NSwyNzg4NCwyNzg4MywyNzg4NiwyNzg2NSwyNzgzMCwyNzg2MCwyNzgyMSwyNzg3OSwyNzgzMSwyNzg1NiwyNzg0MiwyNzgzNCwyNzg0Mywy'@; put 'Nzg0NiwyNzg4NSwyNzg5MCwyNzg1OCwyNzg2OSwyNzgyOCwyNzc4NiwyNzgwNSwyNzc3NiwyNzg3MCwyNzg0MCwyNzk1MiwyNzg1MywyNzg0NywyNzgyNCwyNzg5NywyNzg1NSwyNzg4MSwyNzg1NywyODgyMCwyODgyNCwyODgwNSwyODgxOSwyODgwNiwyODgwNCwyODgxNywyODgyMiwyODgw'@; put 'MiwyODgyNiwyODgwMywyOTI5MCwyOTM5OCwyOTM4NywyOTQwMCwyOTM4NSwyOTQwNCwyOTM5NCwyOTM5NiwyOTQwMiwyOTM4OCwyOTM5MywyOTYwNCwyOTYwMSwyOTYxMywyOTYwNiwyOTYwMiwyOTYwMCwyOTYxMiwyOTU5NywyOTkxNywyOTkyOCwzMDAxNSwzMDAxNiwzMDAxNCwzMDA5Miwz'@; put 'MDEwNCwzMDM4MywzMDQ1MSwzMDQ0OSwzMDQ0OCwzMDQ1MywzMDcxMiwzMDcxNiwzMDcxMywzMDcxNSwzMDcxNCwzMDcxMSwzMTA0MiwzMTAzOSwzMTE3MywzMTM1MiwzMTM1NSwzMTQ4MywzMTg2MSwzMTk5NywzMjgyMSwzMjkxMSwzMjk0MiwzMjkzMSwzMjk1MiwzMjk0OSwzMjk0MSwzMzMx'@; put 'MiwzMzQ0MCwzMzQ3MiwzMzQ1MSwzMzQzNCwzMzQzMiwzMzQzNSwzMzQ2MSwzMzQ0NywzMzQ1NCwzMzQ2OCwzMzQzOCwzMzQ2NiwzMzQ2MCwzMzQ0OCwzMzQ0MSwzMzQ0OSwzMzQ3NCwzMzQ0NCwzMzQ3NSwzMzQ2MiwzMzQ0MiwzNDQxNiwzNDQxNSwzNDQxMywzNDQxNCwzNTkyNiwzNjgxOCwz'@; put 'NjgxMSwzNjgxOSwzNjgxMywzNjgyMiwzNjgyMSwzNjgyMywzNzA0MiwzNzA0NCwzNzAzOSwzNzA0MywzNzA0MCwzODQ1NywzODQ2MSwzODQ2MCwzODQ1OCwzODQ2NywyMDQyOSwyMDQyMSwyMDQzNSwyMDQwMiwyMDQyNSwyMDQyNywyMDQxNywyMDQzNiwyMDQ0NCwyMDQ0MSwyMDQxMSwyMDQw'@; put 'MywyMDQ0MywyMDQyMywyMDQzOCwyMDQxMCwyMDQxNiwyMDQwOSwyMDQ2MCwyMTA2MCwyMTA2NSwyMTE4NCwyMTE4NiwyMTMwOSwyMTM3MiwyMTM5OSwyMTM5OCwyMTQwMSwyMTQwMCwyMTY5MCwyMTY2NSwyMTY3NywyMTY2OSwyMTcxMSwyMTY5OSwzMzU0OSwyMTY4NywyMTY3OCwyMTcxOCwy'@; put 'MTY4NiwyMTcwMSwyMTcwMiwyMTY2NCwyMTYxNiwyMTY5MiwyMTY2NiwyMTY5NCwyMTYxOCwyMTcyNiwyMTY4MCwyMjQ1MywyMjQzMCwyMjQzMSwyMjQzNiwyMjQxMiwyMjQyMywyMjQyOSwyMjQyNywyMjQyMCwyMjQyNCwyMjQxNSwyMjQyNSwyMjQzNywyMjQyNiwyMjQyMSwyMjc3MiwyMjc5'@; put 'NywyMjg2NywyMzAwOSwyMzAwNiwyMzAyMiwyMzA0MCwyMzAyNSwyMzAwNSwyMzAzNCwyMzAzNywyMzAzNiwyMzAzMCwyMzAxMiwyMzAyNiwyMzAzMSwyMzAwMywyMzAxNywyMzAyNywyMzAyOSwyMzAwOCwyMzAzOCwyMzAyOCwyMzAyMSwyMzQ2NCwyMzYyOCwyMzc2MCwyMzc2OCwyMzc1Niwy'@; put 'Mzc2NywyMzc1NSwyMzc3MSwyMzc3NCwyMzc3MCwyMzc1MywyMzc1MSwyMzc1NCwyMzc2NiwyMzc2MywyMzc2NCwyMzc1OSwyMzc1MiwyMzc1MCwyMzc1OCwyMzc3NSwyMzgwMCwyNDA1NywyNDA5NywyNDA5OCwyNDA5OSwyNDA5NiwyNDEwMCwyNDI0MCwyNDIyOCwyNDIyNiwyNDIxOSwyNDIy'@; put 'NywyNDIyOSwyNDMyNywyNDM2NiwyNDQwNiwyNDQ1NCwyNDYzMSwyNDYzMywyNDY2MCwyNDY5MCwyNDY3MCwyNDY0NSwyNDY1OSwyNDY0NywyNDY0OSwyNDY2NywyNDY1MiwyNDY0MCwyNDY0MiwyNDY3MSwyNDYxMiwyNDY0NCwyNDY2NCwyNDY3OCwyNDY4NiwyNTE1NCwyNTE1NSwyNTI5NSwy'@; put 'NTM1NywyNTM1NSwyNTMzMywyNTM1OCwyNTM0NywyNTMyMywyNTMzNywyNTM1OSwyNTM1NiwyNTMzNiwyNTMzNCwyNTM0NCwyNTM2MywyNTM2NCwyNTMzOCwyNTM2NSwyNTMzOSwyNTMyOCwyNTkyMSwyNTkyMywyNjAyNiwyNjA0NywyNjE2NiwyNjE0NSwyNjE2MiwyNjE2NSwyNjE0MCwyNjE1'@; put 'MCwyNjE0NiwyNjE2MywyNjE1NSwyNjE3MCwyNjE0MSwyNjE2NCwyNjE2OSwyNjE1OCwyNjM4MywyNjM4NCwyNjU2MSwyNjYxMCwyNjU2OCwyNjU1NCwyNjU4OCwyNjU1NSwyNjYxNiwyNjU4NCwyNjU2MCwyNjU1MSwyNjU2NSwyNjYwMywyNjU5NiwyNjU5MSwyNjU0OSwyNjU3MywyNjU0Nywy'@; put 'NjYxNSwyNjYxNCwyNjYwNiwyNjU5NSwyNjU2MiwyNjU1MywyNjU3NCwyNjU5OSwyNjYwOCwyNjU0NiwyNjYyMCwyNjU2NiwyNjYwNSwyNjU3MiwyNjU0MiwyNjU5OCwyNjU4NywyNjYxOCwyNjU2OSwyNjU3MCwyNjU2MywyNjYwMiwyNjU3MSwyNzQzMiwyNzUyMiwyNzUyNCwyNzU3NCwyNzYw'@; put 'NiwyNzYwOCwyNzYxNiwyNzY4MCwyNzY4MSwyNzk0NCwyNzk1NiwyNzk0OSwyNzkzNSwyNzk2NCwyNzk2NywyNzkyMiwyNzkxNCwyNzg2NiwyNzk1NSwyNzkwOCwyNzkyOSwyNzk2MiwyNzkzMCwyNzkyMSwyNzkwNCwyNzkzMywyNzk3MCwyNzkwNSwyNzkyOCwyNzk1OSwyNzkwNywyNzkxOSwy'@; put 'Nzk2OCwyNzkxMSwyNzkzNiwyNzk0OCwyNzkxMiwyNzkzOCwyNzkxMywyNzkyMCwyODg1NSwyODgzMSwyODg2MiwyODg0OSwyODg0OCwyODgzMywyODg1MiwyODg1MywyODg0MSwyOTI0OSwyOTI1NywyOTI1OCwyOTI5MiwyOTI5NiwyOTI5OSwyOTI5NCwyOTM4NiwyOTQxMiwyOTQxNiwyOTQx'@; put 'OSwyOTQwNywyOTQxOCwyOTQxNCwyOTQxMSwyOTU3MywyOTY0NCwyOTYzNCwyOTY0MCwyOTYzNywyOTYyNSwyOTYyMiwyOTYyMSwyOTYyMCwyOTY3NSwyOTYzMSwyOTYzOSwyOTYzMCwyOTYzNSwyOTYzOCwyOTYyNCwyOTY0MywyOTkzMiwyOTkzNCwyOTk5OCwzMDAyMywzMDAyNCwzMDExOSwz'@; put 'MDEyMiwzMDMyOSwzMDQwNCwzMDQ3MiwzMDQ2NywzMDQ2OCwzMDQ2OSwzMDQ3NCwzMDQ1NSwzMDQ1OSwzMDQ1OCwzMDY5NSwzMDY5NiwzMDcyNiwzMDczNywzMDczOCwzMDcyNSwzMDczNiwzMDczNSwzMDczNCwzMDcyOSwzMDcyMywzMDczOSwzMTA1MCwzMTA1MiwzMTA1MSwzMTA0NSwzMTA0'@; put 'NCwzMTE4OSwzMTE4MSwzMTE4MywzMTE5MCwzMTE4MiwzMTM2MCwzMTM1OCwzMTQ0MSwzMTQ4OCwzMTQ4OSwzMTg2NiwzMTg2NCwzMTg2NSwzMTg3MSwzMTg3MiwzMTg3MywzMjAwMywzMjAwOCwzMjAwMSwzMjYwMCwzMjY1NywzMjY1MywzMjcwMiwzMjc3NSwzMjc4MiwzMjc4MywzMjc4OCwz'@; put 'MjgyMywzMjk4NCwzMjk2NywzMjk5MiwzMjk3NywzMjk2OCwzMjk2MiwzMjk3NiwzMjk2NSwzMjk5NSwzMjk4NSwzMjk4OCwzMjk3MCwzMjk4MSwzMjk2OSwzMjk3NSwzMjk4MywzMjk5OCwzMjk3MywzMzI3OSwzMzMxMywzMzQyOCwzMzQ5NywzMzUzNCwzMzUyOSwzMzU0MywzMzUxMiwzMzUz'@; put 'NiwzMzQ5MywzMzU5NCwzMzUxNSwzMzQ5NCwzMzUyNCwzMzUxNiwzMzUwNSwzMzUyMiwzMzUyNSwzMzU0OCwzMzUzMSwzMzUyNiwzMzUyMCwzMzUxNCwzMzUwOCwzMzUwNCwzMzUzMCwzMzUyMywzMzUxNywzNDQyMywzNDQyMCwzNDQyOCwzNDQxOSwzNDg4MSwzNDg5NCwzNDkxOSwzNDkyMiwz'@; put 'NDkyMSwzNTI4MywzNTMzMiwzNTMzNSwzNjIxMCwzNjgzNSwzNjgzMywzNjg0NiwzNjgzMiwzNzEwNSwzNzA1MywzNzA1NSwzNzA3NywzNzA2MSwzNzA1NCwzNzA2MywzNzA2NywzNzA2NCwzNzMzMiwzNzMzMSwzODQ4NCwzODQ3OSwzODQ4MSwzODQ4MywzODQ3NCwzODQ3OCwyMDUxMCwyMDQ4'@; put 'NSwyMDQ4NywyMDQ5OSwyMDUxNCwyMDUyOCwyMDUwNywyMDQ2OSwyMDQ2OCwyMDUzMSwyMDUzNSwyMDUyNCwyMDQ3MCwyMDQ3MSwyMDUwMywyMDUwOCwyMDUxMiwyMDUxOSwyMDUzMywyMDUyNywyMDUyOSwyMDQ5NCwyMDgyNiwyMDg4NCwyMDg4MywyMDkzOCwyMDkzMiwyMDkzMywyMDkzNiwy'@; put 'MDk0MiwyMTA4OSwyMTA4MiwyMTA3NCwyMTA4NiwyMTA4NywyMTA3NywyMTA5MCwyMTE5NywyMTI2MiwyMTQwNiwyMTc5OCwyMTczMCwyMTc4MywyMTc3OCwyMTczNSwyMTc0NywyMTczMiwyMTc4NiwyMTc1OSwyMTc2NCwyMTc2OCwyMTczOSwyMTc3NywyMTc2NSwyMTc0NSwyMTc3MCwyMTc1'@; put 'NSwyMTc1MSwyMTc1MiwyMTcyOCwyMTc3NCwyMTc2MywyMTc3MSwyMjI3MywyMjI3NCwyMjQ3NiwyMjU3OCwyMjQ4NSwyMjQ4MiwyMjQ1OCwyMjQ3MCwyMjQ2MSwyMjQ2MCwyMjQ1NiwyMjQ1NCwyMjQ2MywyMjQ3MSwyMjQ4MCwyMjQ1NywyMjQ2NSwyMjc5OCwyMjg1OCwyMzA2NSwyMzA2Miwy'@; put 'MzA4NSwyMzA4NiwyMzA2MSwyMzA1NSwyMzA2MywyMzA1MCwyMzA3MCwyMzA5MSwyMzQwNCwyMzQ2MywyMzQ2OSwyMzQ2OCwyMzU1NSwyMzYzOCwyMzYzNiwyMzc4OCwyMzgwNywyMzc5MCwyMzc5MywyMzc5OSwyMzgwOCwyMzgwMSwyNDEwNSwyNDEwNCwyNDIzMiwyNDIzOCwyNDIzNCwyNDIz'@; put 'NiwyNDM3MSwyNDM2OCwyNDQyMywyNDY2OSwyNDY2NiwyNDY3OSwyNDY0MSwyNDczOCwyNDcxMiwyNDcwNCwyNDcyMiwyNDcwNSwyNDczMywyNDcwNywyNDcyNSwyNDczMSwyNDcyNywyNDcxMSwyNDczMiwyNDcxOCwyNTExMywyNTE1OCwyNTMzMCwyNTM2MCwyNTQzMCwyNTM4OCwyNTQxMiwy'@; put 'NTQxMywyNTM5OCwyNTQxMSwyNTU3MiwyNTQwMSwyNTQxOSwyNTQxOCwyNTQwNCwyNTM4NSwyNTQwOSwyNTM5NiwyNTQzMiwyNTQyOCwyNTQzMywyNTM4OSwyNTQxNSwyNTM5NSwyNTQzNCwyNTQyNSwyNTQwMCwyNTQzMSwyNTQwOCwyNTQxNiwyNTkzMCwyNTkyNiwyNjA1NCwyNjA1MSwyNjA1'@; put 'MiwyNjA1MCwyNjE4NiwyNjIwNywyNjE4MywyNjE5MywyNjM4NiwyNjM4NywyNjY1NSwyNjY1MCwyNjY5NywyNjY3NCwyNjY3NSwyNjY4MywyNjY5OSwyNjcwMywyNjY0NiwyNjY3MywyNjY1MiwyNjY3NywyNjY2NywyNjY2OSwyNjY3MSwyNjcwMiwyNjY5MiwyNjY3NiwyNjY1MywyNjY0Miwy'@; put 'NjY0NCwyNjY2MiwyNjY2NCwyNjY3MCwyNjcwMSwyNjY4MiwyNjY2MSwyNjY1NiwyNzQzNiwyNzQzOSwyNzQzNywyNzQ0MSwyNzQ0NCwyNzUwMSwzMjg5OCwyNzUyOCwyNzYyMiwyNzYyMCwyNzYyNCwyNzYxOSwyNzYxOCwyNzYyMywyNzY4NSwyODAyNiwyODAwMywyODAwNCwyODAyMiwyNzkx'@; put 'NywyODAwMSwyODA1MCwyNzk5MiwyODAwMiwyODAxMywyODAxNSwyODA0OSwyODA0NSwyODE0MywyODAzMSwyODAzOCwyNzk5OCwyODAwNywyOGUzLDI4MDU1LDI4MDE2LDI4MDI4LDI3OTk5LDI4MDM0LDI4MDU2LDI3OTUxLDI4MDA4LDI4MDQzLDI4MDMwLDI4MDMyLDI4MDM2LDI3OTI2LDI4'@; put 'MDM1LDI4MDI3LDI4MDI5LDI4MDIxLDI4MDQ4LDI4ODkyLDI4ODgzLDI4ODgxLDI4ODkzLDI4ODc1LDMyNTY5LDI4ODk4LDI4ODg3LDI4ODgyLDI4ODk0LDI4ODk2LDI4ODg0LDI4ODc3LDI4ODY5LDI4ODcwLDI4ODcxLDI4ODkwLDI4ODc4LDI4ODk3LDI5MjUwLDI5MzA0LDI5MzAzLDI5MzAy'@; put 'LDI5NDQwLDI5NDM0LDI5NDI4LDI5NDM4LDI5NDMwLDI5NDI3LDI5NDM1LDI5NDQxLDI5NjUxLDI5NjU3LDI5NjY5LDI5NjU0LDI5NjI4LDI5NjcxLDI5NjY3LDI5NjczLDI5NjYwLDI5NjUwLDI5NjU5LDI5NjUyLDI5NjYxLDI5NjU4LDI5NjU1LDI5NjU2LDI5NjcyLDI5OTE4LDI5OTE5LDI5'@; put 'OTQwLDI5OTQxLDI5OTg1LDMwMDQzLDMwMDQ3LDMwMTI4LDMwMTQ1LDMwMTM5LDMwMTQ4LDMwMTQ0LDMwMTQzLDMwMTM0LDMwMTM4LDMwMzQ2LDMwNDA5LDMwNDkzLDMwNDkxLDMwNDgwLDMwNDgzLDMwNDgyLDMwNDk5LDMwNDgxLDMwNDg1LDMwNDg5LDMwNDkwLDMwNDk4LDMwNTAzLDMwNzU1'@; put 'LDMwNzY0LDMwNzU0LDMwNzczLDMwNzY3LDMwNzYwLDMwNzY2LDMwNzYzLDMwNzUzLDMwNzYxLDMwNzcxLDMwNzYyLDMwNzY5LDMxMDYwLDMxMDY3LDMxMDU1LDMxMDY4LDMxMDU5LDMxMDU4LDMxMDU3LDMxMjExLDMxMjEyLDMxMjAwLDMxMjE0LDMxMjEzLDMxMjEwLDMxMTk2LDMxMTk4LDMx'@; put 'MTk3LDMxMzY2LDMxMzY5LDMxMzY1LDMxMzcxLDMxMzcyLDMxMzcwLDMxMzY3LDMxNDQ4LDMxNTA0LDMxNDkyLDMxNTA3LDMxNDkzLDMxNTAzLDMxNDk2LDMxNDk4LDMxNTAyLDMxNDk3LDMxNTA2LDMxODc2LDMxODg5LDMxODgyLDMxODg0LDMxODgwLDMxODg1LDMxODc3LDMyMDMwLDMyMDI5'@; put 'LDMyMDE3LDMyMDE0LDMyMDI0LDMyMDIyLDMyMDE5LDMyMDMxLDMyMDE4LDMyMDE1LDMyMDEyLDMyNjA0LDMyNjA5LDMyNjA2LDMyNjA4LDMyNjA1LDMyNjAzLDMyNjYyLDMyNjU4LDMyNzA3LDMyNzA2LDMyNzA0LDMyNzkwLDMyODMwLDMyODI1LDMzMDE4LDMzMDEwLDMzMDE3LDMzMDEzLDMz'@; put 'MDI1LDMzMDE5LDMzMDI0LDMzMjgxLDMzMzI3LDMzMzE3LDMzNTg3LDMzNTgxLDMzNjA0LDMzNTYxLDMzNjE3LDMzNTczLDMzNjIyLDMzNTk5LDMzNjAxLDMzNTc0LDMzNTY0LDMzNTcwLDMzNjAyLDMzNjE0LDMzNTYzLDMzNTc4LDMzNTQ0LDMzNTk2LDMzNjEzLDMzNTU4LDMzNTcyLDMzNTY4'@; put 'LDMzNTkxLDMzNTgzLDMzNTc3LDMzNjA3LDMzNjA1LDMzNjEyLDMzNjE5LDMzNTY2LDMzNTgwLDMzNjExLDMzNTc1LDMzNjA4LDM0Mzg3LDM0Mzg2LDM0NDY2LDM0NDcyLDM0NDU0LDM0NDQ1LDM0NDQ5LDM0NDYyLDM0NDM5LDM0NDU1LDM0NDM4LDM0NDQzLDM0NDU4LDM0NDM3LDM0NDY5LDM0'@; put 'NDU3LDM0NDY1LDM0NDcxLDM0NDUzLDM0NDU2LDM0NDQ2LDM0NDYxLDM0NDQ4LDM0NDUyLDM0ODgzLDM0ODg0LDM0OTI1LDM0OTMzLDM0OTM0LDM0OTMwLDM0OTQ0LDM0OTI5LDM0OTQzLDM0OTI3LDM0OTQ3LDM0OTQyLDM0OTMyLDM0OTQwLDM1MzQ2LDM1OTExLDM1OTI3LDM1OTYzLDM2MDA0'@; put 'LDM2MDAzLDM2MjE0LDM2MjE2LDM2Mjc3LDM2Mjc5LDM2Mjc4LDM2NTYxLDM2NTYzLDM2ODYyLDM2ODUzLDM2ODY2LDM2ODYzLDM2ODU5LDM2ODY4LDM2ODYwLDM2ODU0LDM3MDc4LDM3MDg4LDM3MDgxLDM3MDgyLDM3MDkxLDM3MDg3LDM3MDkzLDM3MDgwLDM3MDgzLDM3MDc5LDM3MDg0LDM3'@; put 'MDkyLDM3MjAwLDM3MTk4LDM3MTk5LDM3MzMzLDM3MzQ2LDM3MzM4LDM4NDkyLDM4NDk1LDM4NTg4LDM5MTM5LDM5NjQ3LDM5NzI3LDIwMDk1LDIwNTkyLDIwNTg2LDIwNTc3LDIwNTc0LDIwNTc2LDIwNTYzLDIwNTU1LDIwNTczLDIwNTk0LDIwNTUyLDIwNTU3LDIwNTQ1LDIwNTcxLDIwNTU0'@; put 'LDIwNTc4LDIwNTAxLDIwNTQ5LDIwNTc1LDIwNTg1LDIwNTg3LDIwNTc5LDIwNTgwLDIwNTUwLDIwNTQ0LDIwNTkwLDIwNTk1LDIwNTY3LDIwNTYxLDIwOTQ0LDIxMDk5LDIxMTAxLDIxMTAwLDIxMTAyLDIxMjA2LDIxMjAzLDIxMjkzLDIxNDA0LDIxODc3LDIxODc4LDIxODIwLDIxODM3LDIx'@; put 'ODQwLDIxODEyLDIxODAyLDIxODQxLDIxODU4LDIxODE0LDIxODEzLDIxODA4LDIxODQyLDIxODI5LDIxNzcyLDIxODEwLDIxODYxLDIxODM4LDIxODE3LDIxODMyLDIxODA1LDIxODE5LDIxODI0LDIxODM1LDIyMjgyLDIyMjc5LDIyNTIzLDIyNTQ4LDIyNDk4LDIyNTE4LDIyNDkyLDIyNTE2'@; put 'LDIyNTI4LDIyNTA5LDIyNTI1LDIyNTM2LDIyNTIwLDIyNTM5LDIyNTE1LDIyNDc5LDIyNTM1LDIyNTEwLDIyNDk5LDIyNTE0LDIyNTAxLDIyNTA4LDIyNDk3LDIyNTQyLDIyNTI0LDIyNTQ0LDIyNTAzLDIyNTI5LDIyNTQwLDIyNTEzLDIyNTA1LDIyNTEyLDIyNTQxLDIyNTMyLDIyODc2LDIz'@; put 'MTM2LDIzMTI4LDIzMTI1LDIzMTQzLDIzMTM0LDIzMDk2LDIzMDkzLDIzMTQ5LDIzMTIwLDIzMTM1LDIzMTQxLDIzMTQ4LDIzMTIzLDIzMTQwLDIzMTI3LDIzMTA3LDIzMTMzLDIzMTIyLDIzMTA4LDIzMTMxLDIzMTEyLDIzMTgyLDIzMTAyLDIzMTE3LDIzMDk3LDIzMTE2LDIzMTUyLDIzMTQ1'@; put 'LDIzMTExLDIzMTIxLDIzMTI2LDIzMTA2LDIzMTMyLDIzNDEwLDIzNDA2LDIzNDg5LDIzNDg4LDIzNjQxLDIzODM4LDIzODE5LDIzODM3LDIzODM0LDIzODQwLDIzODIwLDIzODQ4LDIzODIxLDIzODQ2LDIzODQ1LDIzODIzLDIzODU2LDIzODI2LDIzODQzLDIzODM5LDIzODU0LDI0MTI2LDI0'@; put 'MTE2LDI0MjQxLDI0MjQ0LDI0MjQ5LDI0MjQyLDI0MjQzLDI0Mzc0LDI0Mzc2LDI0NDc1LDI0NDcwLDI0NDc5LDI0NzE0LDI0NzIwLDI0NzEwLDI0NzY2LDI0NzUyLDI0NzYyLDI0Nzg3LDI0Nzg4LDI0NzgzLDI0ODA0LDI0NzkzLDI0Nzk3LDI0Nzc2LDI0NzUzLDI0Nzk1LDI0NzU5LDI0Nzc4'@; put 'LDI0NzY3LDI0NzcxLDI0NzgxLDI0NzY4LDI1Mzk0LDI1NDQ1LDI1NDgyLDI1NDc0LDI1NDY5LDI1NTMzLDI1NTAyLDI1NTE3LDI1NTAxLDI1NDk1LDI1NTE1LDI1NDg2LDI1NDU1LDI1NDc5LDI1NDg4LDI1NDU0LDI1NTE5LDI1NDYxLDI1NTAwLDI1NDUzLDI1NTE4LDI1NDY4LDI1NTA4LDI1'@; put 'NDAzLDI1NTAzLDI1NDY0LDI1NDc3LDI1NDczLDI1NDg5LDI1NDg1LDI1NDU2LDI1OTM5LDI2MDYxLDI2MjEzLDI2MjA5LDI2MjAzLDI2MjAxLDI2MjA0LDI2MjEwLDI2MzkyLDI2NzQ1LDI2NzU5LDI2NzY4LDI2NzgwLDI2NzMzLDI2NzM0LDI2Nzk4LDI2Nzk1LDI2OTY2LDI2NzM1LDI2Nzg3'@; put 'LDI2Nzk2LDI2NzkzLDI2NzQxLDI2NzQwLDI2ODAyLDI2NzY3LDI2NzQzLDI2NzcwLDI2NzQ4LDI2NzMxLDI2NzM4LDI2Nzk0LDI2NzUyLDI2NzM3LDI2NzUwLDI2Nzc5LDI2Nzc0LDI2NzYzLDI2Nzg0LDI2NzYxLDI2Nzg4LDI2NzQ0LDI2NzQ3LDI2NzY5LDI2NzY0LDI2NzYyLDI2NzQ5LDI3'@; put 'NDQ2LDI3NDQzLDI3NDQ3LDI3NDQ4LDI3NTM3LDI3NTM1LDI3NTMzLDI3NTM0LDI3NTMyLDI3NjkwLDI4MDk2LDI4MDc1LDI4MDg0LDI4MDgzLDI4Mjc2LDI4MDc2LDI4MTM3LDI4MTMwLDI4MDg3LDI4MTUwLDI4MTE2LDI4MTYwLDI4MTA0LDI4MTI4LDI4MTI3LDI4MTE4LDI4MDk0LDI4MTMz'@; put 'LDI4MTI0LDI4MTI1LDI4MTIzLDI4MTQ4LDI4MTA2LDI4MDkzLDI4MTQxLDI4MTQ0LDI4MDkwLDI4MTE3LDI4MDk4LDI4MTExLDI4MTA1LDI4MTEyLDI4MTQ2LDI4MTE1LDI4MTU3LDI4MTE5LDI4MTA5LDI4MTMxLDI4MDkxLDI4OTIyLDI4OTQxLDI4OTE5LDI4OTUxLDI4OTE2LDI4OTQwLDI4'@; put 'OTEyLDI4OTMyLDI4OTE1LDI4OTQ0LDI4OTI0LDI4OTI3LDI4OTM0LDI4OTQ3LDI4OTI4LDI4OTIwLDI4OTE4LDI4OTM5LDI4OTMwLDI4OTQyLDI5MzEwLDI5MzA3LDI5MzA4LDI5MzExLDI5NDY5LDI5NDYzLDI5NDQ3LDI5NDU3LDI5NDY0LDI5NDUwLDI5NDQ4LDI5NDM5LDI5NDU1LDI5NDcw'@; put 'LDI5NTc2LDI5Njg2LDI5Njg4LDI5Njg1LDI5NzAwLDI5Njk3LDI5NjkzLDI5NzAzLDI5Njk2LDI5NjkwLDI5NjkyLDI5Njk1LDI5NzA4LDI5NzA3LDI5Njg0LDI5NzA0LDMwMDUyLDMwMDUxLDMwMTU4LDMwMTYyLDMwMTU5LDMwMTU1LDMwMTU2LDMwMTYxLDMwMTYwLDMwMzUxLDMwMzQ1LDMw'@; put 'NDE5LDMwNTIxLDMwNTExLDMwNTA5LDMwNTEzLDMwNTE0LDMwNTE2LDMwNTE1LDMwNTI1LDMwNTAxLDMwNTIzLDMwNTE3LDMwNzkyLDMwODAyLDMwNzkzLDMwNzk3LDMwNzk0LDMwNzk2LDMwNzU4LDMwNzg5LDMwODAwLDMxMDc2LDMxMDc5LDMxMDgxLDMxMDgyLDMxMDc1LDMxMDgzLDMxMDcz'@; put 'LDMxMTYzLDMxMjI2LDMxMjI0LDMxMjIyLDMxMjIzLDMxMzc1LDMxMzgwLDMxMzc2LDMxNTQxLDMxNTU5LDMxNTQwLDMxNTI1LDMxNTM2LDMxNTIyLDMxNTI0LDMxNTM5LDMxNTEyLDMxNTMwLDMxNTE3LDMxNTM3LDMxNTMxLDMxNTMzLDMxNTM1LDMxNTM4LDMxNTQ0LDMxNTE0LDMxNTIzLDMx'@; put 'ODkyLDMxODk2LDMxODk0LDMxOTA3LDMyMDUzLDMyMDYxLDMyMDU2LDMyMDU0LDMyMDU4LDMyMDY5LDMyMDQ0LDMyMDQxLDMyMDY1LDMyMDcxLDMyMDYyLDMyMDYzLDMyMDc0LDMyMDU5LDMyMDQwLDMyNjExLDMyNjYxLDMyNjY4LDMyNjY5LDMyNjY3LDMyNzE0LDMyNzE1LDMyNzE3LDMyNzIw'@; put 'LDMyNzIxLDMyNzExLDMyNzE5LDMyNzEzLDMyNzk5LDMyNzk4LDMyNzk1LDMyODM5LDMyODM1LDMyODQwLDMzMDQ4LDMzMDYxLDMzMDQ5LDMzMDUxLDMzMDY5LDMzMDU1LDMzMDY4LDMzMDU0LDMzMDU3LDMzMDQ1LDMzMDYzLDMzMDUzLDMzMDU4LDMzMjk3LDMzMzM2LDMzMzMxLDMzMzM4LDMz'@; put 'MzMyLDMzMzMwLDMzMzk2LDMzNjgwLDMzNjk5LDMzNzA0LDMzNjc3LDMzNjU4LDMzNjUxLDMzNzAwLDMzNjUyLDMzNjc5LDMzNjY1LDMzNjg1LDMzNjg5LDMzNjUzLDMzNjg0LDMzNzA1LDMzNjYxLDMzNjY3LDMzNjc2LDMzNjkzLDMzNjkxLDMzNzA2LDMzNjc1LDMzNjYyLDMzNzAxLDMzNzEx'@; put 'LDMzNjcyLDMzNjg3LDMzNzEyLDMzNjYzLDMzNzAyLDMzNjcxLDMzNzEwLDMzNjU0LDMzNjkwLDM0MzkzLDM0MzkwLDM0NDk1LDM0NDg3LDM0NDk4LDM0NDk3LDM0NTAxLDM0NDkwLDM0NDgwLDM0NTA0LDM0NDg5LDM0NDgzLDM0NDg4LDM0NTA4LDM0NDg0LDM0NDkxLDM0NDkyLDM0NDk5LDM0'@; put 'NDkzLDM0NDk0LDM0ODk4LDM0OTUzLDM0OTY1LDM0OTg0LDM0OTc4LDM0OTg2LDM0OTcwLDM0OTYxLDM0OTc3LDM0OTc1LDM0OTY4LDM0OTgzLDM0OTY5LDM0OTcxLDM0OTY3LDM0OTgwLDM0OTg4LDM0OTU2LDM0OTYzLDM0OTU4LDM1MjAyLDM1Mjg2LDM1Mjg5LDM1Mjg1LDM1Mzc2LDM1MzY3'@; put 'LDM1MzcyLDM1MzU4LDM1ODk3LDM1ODk5LDM1OTMyLDM1OTMzLDM1OTY1LDM2MDA1LDM2MjIxLDM2MjE5LDM2MjE3LDM2Mjg0LDM2MjkwLDM2MjgxLDM2Mjg3LDM2Mjg5LDM2NTY4LDM2NTc0LDM2NTczLDM2NTcyLDM2NTY3LDM2NTc2LDM2NTc3LDM2OTAwLDM2ODc1LDM2ODgxLDM2ODkyLDM2'@; put 'ODc2LDM2ODk3LDM3MTAzLDM3MDk4LDM3MTA0LDM3MTA4LDM3MTA2LDM3MTA3LDM3MDc2LDM3MDk5LDM3MTAwLDM3MDk3LDM3MjA2LDM3MjA4LDM3MjEwLDM3MjAzLDM3MjA1LDM3MzU2LDM3MzY0LDM3MzYxLDM3MzYzLDM3MzY4LDM3MzQ4LDM3MzY5LDM3MzU0LDM3MzU1LDM3MzY3LDM3MzUy'@; put 'LDM3MzU4LDM4MjY2LDM4Mjc4LDM4MjgwLDM4NTI0LDM4NTA5LDM4NTA3LDM4NTEzLDM4NTExLDM4NTkxLDM4NzYyLDM4OTE2LDM5MTQxLDM5MzE5LDIwNjM1LDIwNjI5LDIwNjI4LDIwNjM4LDIwNjE5LDIwNjQzLDIwNjExLDIwNjIwLDIwNjIyLDIwNjM3LDIwNTg0LDIwNjM2LDIwNjI2LDIw'@; put 'NjEwLDIwNjE1LDIwODMxLDIwOTQ4LDIxMjY2LDIxMjY1LDIxNDEyLDIxNDE1LDIxOTA1LDIxOTI4LDIxOTI1LDIxOTMzLDIxODc5LDIyMDg1LDIxOTIyLDIxOTA3LDIxODk2LDIxOTAzLDIxOTQxLDIxODg5LDIxOTIzLDIxOTA2LDIxOTI0LDIxODg1LDIxOTAwLDIxOTI2LDIxODg3LDIxOTA5'@; put 'LDIxOTIxLDIxOTAyLDIyMjg0LDIyNTY5LDIyNTgzLDIyNTUzLDIyNTU4LDIyNTY3LDIyNTYzLDIyNTY4LDIyNTE3LDIyNjAwLDIyNTY1LDIyNTU2LDIyNTU1LDIyNTc5LDIyNTkxLDIyNTgyLDIyNTc0LDIyNTg1LDIyNTg0LDIyNTczLDIyNTcyLDIyNTg3LDIyODgxLDIzMjE1LDIzMTg4LDIz'@; put 'MTk5LDIzMTYyLDIzMjAyLDIzMTk4LDIzMTYwLDIzMjA2LDIzMTY0LDIzMjA1LDIzMjEyLDIzMTg5LDIzMjE0LDIzMDk1LDIzMTcyLDIzMTc4LDIzMTkxLDIzMTcxLDIzMTc5LDIzMjA5LDIzMTYzLDIzMTY1LDIzMTgwLDIzMTk2LDIzMTgzLDIzMTg3LDIzMTk3LDIzNTMwLDIzNTAxLDIzNDk5'@; put 'LDIzNTA4LDIzNTA1LDIzNDk4LDIzNTAyLDIzNTY0LDIzNjAwLDIzODYzLDIzODc1LDIzOTE1LDIzODczLDIzODgzLDIzODcxLDIzODYxLDIzODg5LDIzODg2LDIzODkzLDIzODU5LDIzODY2LDIzODkwLDIzODY5LDIzODU3LDIzODk3LDIzODc0LDIzODY1LDIzODgxLDIzODY0LDIzODY4LDIz'@; put 'ODU4LDIzODYyLDIzODcyLDIzODc3LDI0MTMyLDI0MTI5LDI0NDA4LDI0NDg2LDI0NDg1LDI0NDkxLDI0Nzc3LDI0NzYxLDI0NzgwLDI0ODAyLDI0NzgyLDI0NzcyLDI0ODUyLDI0ODE4LDI0ODQyLDI0ODU0LDI0ODM3LDI0ODIxLDI0ODUxLDI0ODI0LDI0ODI4LDI0ODMwLDI0NzY5LDI0ODM1'@; put 'LDI0ODU2LDI0ODYxLDI0ODQ4LDI0ODMxLDI0ODM2LDI0ODQzLDI1MTYyLDI1NDkyLDI1NTIxLDI1NTIwLDI1NTUwLDI1NTczLDI1NTc2LDI1NTgzLDI1NTM5LDI1NzU3LDI1NTg3LDI1NTQ2LDI1NTY4LDI1NTkwLDI1NTU3LDI1NTg2LDI1NTg5LDI1Njk3LDI1NTY3LDI1NTM0LDI1NTY1LDI1'@; put 'NTY0LDI1NTQwLDI1NTYwLDI1NTU1LDI1NTM4LDI1NTQzLDI1NTQ4LDI1NTQ3LDI1NTQ0LDI1NTg0LDI1NTU5LDI1NTYxLDI1OTA2LDI1OTU5LDI1OTYyLDI1OTU2LDI1OTQ4LDI1OTYwLDI1OTU3LDI1OTk2LDI2MDEzLDI2MDE0LDI2MDMwLDI2MDY0LDI2MDY2LDI2MjM2LDI2MjIwLDI2MjM1'@; put 'LDI2MjQwLDI2MjI1LDI2MjMzLDI2MjE4LDI2MjI2LDI2MzY5LDI2ODkyLDI2ODM1LDI2ODg0LDI2ODQ0LDI2OTIyLDI2ODYwLDI2ODU4LDI2ODY1LDI2ODk1LDI2ODM4LDI2ODcxLDI2ODU5LDI2ODUyLDI2ODcwLDI2ODk5LDI2ODk2LDI2ODY3LDI2ODQ5LDI2ODg3LDI2ODI4LDI2ODg4LDI2'@; put 'OTkyLDI2ODA0LDI2ODk3LDI2ODYzLDI2ODIyLDI2OTAwLDI2ODcyLDI2ODMyLDI2ODc3LDI2ODc2LDI2ODU2LDI2ODkxLDI2ODkwLDI2OTAzLDI2ODMwLDI2ODI0LDI2ODQ1LDI2ODQ2LDI2ODU0LDI2ODY4LDI2ODMzLDI2ODg2LDI2ODM2LDI2ODU3LDI2OTAxLDI2OTE3LDI2ODIzLDI3NDQ5'@; put 'LDI3NDUxLDI3NDU1LDI3NDUyLDI3NTQwLDI3NTQzLDI3NTQ1LDI3NTQxLDI3NTgxLDI3NjMyLDI3NjM0LDI3NjM1LDI3Njk2LDI4MTU2LDI4MjMwLDI4MjMxLDI4MTkxLDI4MjMzLDI4Mjk2LDI4MjIwLDI4MjIxLDI4MjI5LDI4MjU4LDI4MjAzLDI4MjIzLDI4MjI1LDI4MjUzLDI4Mjc1LDI4'@; put 'MTg4LDI4MjExLDI4MjM1LDI4MjI0LDI4MjQxLDI4MjE5LDI4MTYzLDI4MjA2LDI4MjU0LDI4MjY0LDI4MjUyLDI4MjU3LDI4MjA5LDI4MjAwLDI4MjU2LDI4MjczLDI4MjY3LDI4MjE3LDI4MTk0LDI4MjA4LDI4MjQzLDI4MjYxLDI4MTk5LDI4MjgwLDI4MjYwLDI4Mjc5LDI4MjQ1LDI4Mjgx'@; put 'LDI4MjQyLDI4MjYyLDI4MjEzLDI4MjE0LDI4MjUwLDI4OTYwLDI4OTU4LDI4OTc1LDI4OTIzLDI4OTc0LDI4OTc3LDI4OTYzLDI4OTY1LDI4OTYyLDI4OTc4LDI4OTU5LDI4OTY4LDI4OTg2LDI4OTU1LDI5MjU5LDI5Mjc0LDI5MzIwLDI5MzIxLDI5MzE4LDI5MzE3LDI5MzIzLDI5NDU4LDI5'@; put 'NDUxLDI5NDg4LDI5NDc0LDI5NDg5LDI5NDkxLDI5NDc5LDI5NDkwLDI5NDg1LDI5NDc4LDI5NDc1LDI5NDkzLDI5NDUyLDI5NzQyLDI5NzQwLDI5NzQ0LDI5NzM5LDI5NzE4LDI5NzIyLDI5NzI5LDI5NzQxLDI5NzQ1LDI5NzMyLDI5NzMxLDI5NzI1LDI5NzM3LDI5NzI4LDI5NzQ2LDI5OTQ3'@; put 'LDI5OTk5LDMwMDYzLDMwMDYwLDMwMTgzLDMwMTcwLDMwMTc3LDMwMTgyLDMwMTczLDMwMTc1LDMwMTgwLDMwMTY3LDMwMzU3LDMwMzU0LDMwNDI2LDMwNTM0LDMwNTM1LDMwNTMyLDMwNTQxLDMwNTMzLDMwNTM4LDMwNTQyLDMwNTM5LDMwNTQwLDMwNjg2LDMwNzAwLDMwODE2LDMwODIwLDMw'@; put 'ODIxLDMwODEyLDMwODI5LDMwODMzLDMwODI2LDMwODMwLDMwODMyLDMwODI1LDMwODI0LDMwODE0LDMwODE4LDMxMDkyLDMxMDkxLDMxMDkwLDMxMDg4LDMxMjM0LDMxMjQyLDMxMjM1LDMxMjQ0LDMxMjM2LDMxMzg1LDMxNDYyLDMxNDYwLDMxNTYyLDMxNTQ3LDMxNTU2LDMxNTYwLDMxNTY0'@; put 'LDMxNTY2LDMxNTUyLDMxNTc2LDMxNTU3LDMxOTA2LDMxOTAyLDMxOTEyLDMxOTA1LDMyMDg4LDMyMTExLDMyMDk5LDMyMDgzLDMyMDg2LDMyMTAzLDMyMTA2LDMyMDc5LDMyMTA5LDMyMDkyLDMyMTA3LDMyMDgyLDMyMDg0LDMyMTA1LDMyMDgxLDMyMDk1LDMyMDc4LDMyNTc0LDMyNTc1LDMy'@; put 'NjEzLDMyNjE0LDMyNjc0LDMyNjcyLDMyNjczLDMyNzI3LDMyODQ5LDMyODQ3LDMyODQ4LDMzMDIyLDMyOTgwLDMzMDkxLDMzMDk4LDMzMTA2LDMzMTAzLDMzMDk1LDMzMDg1LDMzMTAxLDMzMDgyLDMzMjU0LDMzMjYyLDMzMjcxLDMzMjcyLDMzMjczLDMzMjg0LDMzMzQwLDMzMzQxLDMzMzQz'@; put 'LDMzMzk3LDMzNTk1LDMzNzQzLDMzNzg1LDMzODI3LDMzNzI4LDMzNzY4LDMzODEwLDMzNzY3LDMzNzY0LDMzNzg4LDMzNzgyLDMzODA4LDMzNzM0LDMzNzM2LDMzNzcxLDMzNzYzLDMzNzI3LDMzNzkzLDMzNzU3LDMzNzY1LDMzNzUyLDMzNzkxLDMzNzYxLDMzNzM5LDMzNzQyLDMzNzUwLDMz'@; put 'NzgxLDMzNzM3LDMzODAxLDMzODA3LDMzNzU4LDMzODA5LDMzNzk4LDMzNzMwLDMzNzc5LDMzNzQ5LDMzNzg2LDMzNzM1LDMzNzQ1LDMzNzcwLDMzODExLDMzNzMxLDMzNzcyLDMzNzc0LDMzNzMyLDMzNzg3LDMzNzUxLDMzNzYyLDMzODE5LDMzNzU1LDMzNzkwLDM0NTIwLDM0NTMwLDM0NTM0'@; put 'LDM0NTE1LDM0NTMxLDM0NTIyLDM0NTM4LDM0NTI1LDM0NTM5LDM0NTI0LDM0NTQwLDM0NTM3LDM0NTE5LDM0NTM2LDM0NTEzLDM0ODg4LDM0OTAyLDM0OTAxLDM1MDAyLDM1MDMxLDM1MDAxLDM1ZTMsMzUwMDgsMzUwMDYsMzQ5OTgsMzUwMDQsMzQ5OTksMzUwMDUsMzQ5OTQsMzUwNzMsMzUw'@; put 'MTcsMzUyMjEsMzUyMjQsMzUyMjMsMzUyOTMsMzUyOTAsMzUyOTEsMzU0MDYsMzU0MDUsMzUzODUsMzU0MTcsMzUzOTIsMzU0MTUsMzU0MTYsMzUzOTYsMzUzOTcsMzU0MTAsMzU0MDAsMzU0MDksMzU0MDIsMzU0MDQsMzU0MDcsMzU5MzUsMzU5NjksMzU5NjgsMzYwMjYsMzYwMzAsMzYwMTYs'@; put 'MzYwMjUsMzYwMjEsMzYyMjgsMzYyMjQsMzYyMzMsMzYzMTIsMzYzMDcsMzYzMDEsMzYyOTUsMzYzMTAsMzYzMTYsMzYzMDMsMzYzMDksMzYzMTMsMzYyOTYsMzYzMTEsMzYyOTMsMzY1OTEsMzY1OTksMzY2MDIsMzY2MDEsMzY1ODIsMzY1OTAsMzY1ODEsMzY1OTcsMzY1ODMsMzY1ODQsMzY1'@; put 'OTgsMzY1ODcsMzY1OTMsMzY1ODgsMzY1OTYsMzY1ODUsMzY5MDksMzY5MTYsMzY5MTEsMzcxMjYsMzcxNjQsMzcxMjQsMzcxMTksMzcxMTYsMzcxMjgsMzcxMTMsMzcxMTUsMzcxMjEsMzcxMjAsMzcxMjcsMzcxMjUsMzcxMjMsMzcyMTcsMzcyMjAsMzcyMTUsMzcyMTgsMzcyMTYsMzczNzcs'@; put 'MzczODYsMzc0MTMsMzczNzksMzc0MDIsMzc0MTQsMzczOTEsMzczODgsMzczNzYsMzczOTQsMzczNzUsMzczNzMsMzczODIsMzczODAsMzc0MTUsMzczNzgsMzc0MDQsMzc0MTIsMzc0MDEsMzczOTksMzczODEsMzczOTgsMzgyNjcsMzgyODUsMzgyODQsMzgyODgsMzg1MzUsMzg1MjYsMzg1'@; put 'MzYsMzg1MzcsMzg1MzEsMzg1MjgsMzg1OTQsMzg2MDAsMzg1OTUsMzg2NDEsMzg2NDAsMzg3NjQsMzg3NjgsMzg3NjYsMzg5MTksMzkwODEsMzkxNDcsNDAxNjYsNDA2OTcsMjAwOTksMjAxMDAsMjAxNTAsMjA2NjksMjA2NzEsMjA2NzgsMjA2NTQsMjA2NzYsMjA2ODIsMjA2NjAsMjA2ODAs'@; put 'MjA2NzQsMjA2NTYsMjA2NzMsMjA2NjYsMjA2NTcsMjA2ODMsMjA2ODEsMjA2NjIsMjA2NjQsMjA5NTEsMjExMTQsMjExMTIsMjExMTUsMjExMTYsMjE5NTUsMjE5NzksMjE5NjQsMjE5NjgsMjE5NjMsMjE5NjIsMjE5ODEsMjE5NTIsMjE5NzIsMjE5NTYsMjE5OTMsMjE5NTEsMjE5NzAsMjE5'@; put 'MDEsMjE5NjcsMjE5NzMsMjE5ODYsMjE5NzQsMjE5NjAsMjIwMDIsMjE5NjUsMjE5NzcsMjE5NTQsMjIyOTIsMjI2MTEsMjI2MzIsMjI2MjgsMjI2MDcsMjI2MDUsMjI2MDEsMjI2MzksMjI2MTMsMjI2MDYsMjI2MjEsMjI2MTcsMjI2MjksMjI2MTksMjI1ODksMjI2MjcsMjI2NDEsMjI3ODAs'@; put 'MjMyMzksMjMyMzYsMjMyNDMsMjMyMjYsMjMyMjQsMjMyMTcsMjMyMjEsMjMyMTYsMjMyMzEsMjMyNDAsMjMyMjcsMjMyMzgsMjMyMjMsMjMyMzIsMjMyNDIsMjMyMjAsMjMyMjIsMjMyNDUsMjMyMjUsMjMxODQsMjM1MTAsMjM1MTIsMjM1MTMsMjM1ODMsMjM2MDMsMjM5MjEsMjM5MDcsMjM4'@; put 'ODIsMjM5MDksMjM5MjIsMjM5MTYsMjM5MDIsMjM5MTIsMjM5MTEsMjM5MDYsMjQwNDgsMjQxNDMsMjQxNDIsMjQxMzgsMjQxNDEsMjQxMzksMjQyNjEsMjQyNjgsMjQyNjIsMjQyNjcsMjQyNjMsMjQzODQsMjQ0OTUsMjQ0OTMsMjQ4MjMsMjQ5MDUsMjQ5MDYsMjQ4NzUsMjQ5MDEsMjQ4ODYs'@; put 'MjQ4ODIsMjQ4NzgsMjQ5MDIsMjQ4NzksMjQ5MTEsMjQ4NzMsMjQ4OTYsMjUxMjAsMzcyMjQsMjUxMjMsMjUxMjUsMjUxMjQsMjU1NDEsMjU1ODUsMjU1NzksMjU2MTYsMjU2MTgsMjU2MDksMjU2MzIsMjU2MzYsMjU2NTEsMjU2NjcsMjU2MzEsMjU2MjEsMjU2MjQsMjU2NTcsMjU2NTUsMjU2'@; put 'MzQsMjU2MzUsMjU2MTIsMjU2MzgsMjU2NDgsMjU2NDAsMjU2NjUsMjU2NTMsMjU2NDcsMjU2MTAsMjU2MjYsMjU2NjQsMjU2MzcsMjU2MzksMjU2MTEsMjU1NzUsMjU2MjcsMjU2NDYsMjU2MzMsMjU2MTQsMjU5NjcsMjYwMDIsMjYwNjcsMjYyNDYsMjYyNTIsMjYyNjEsMjYyNTYsMjYyNTEs'@; put 'MjYyNTAsMjYyNjUsMjYyNjAsMjYyMzIsMjY0MDAsMjY5ODIsMjY5NzUsMjY5MzYsMjY5NTgsMjY5NzgsMjY5OTMsMjY5NDMsMjY5NDksMjY5ODYsMjY5MzcsMjY5NDYsMjY5NjcsMjY5NjksMjcwMDIsMjY5NTIsMjY5NTMsMjY5MzMsMjY5ODgsMjY5MzEsMjY5NDEsMjY5ODEsMjY4NjQsMjdl'@; put 'MywyNjkzMiwyNjk4NSwyNjk0NCwyNjk5MSwyNjk0OCwyNjk5OCwyNjk2OCwyNjk0NSwyNjk5NiwyNjk1NiwyNjkzOSwyNjk1NSwyNjkzNSwyNjk3MiwyNjk1OSwyNjk2MSwyNjkzMCwyNjk2MiwyNjkyNywyNzAwMywyNjk0MCwyNzQ2MiwyNzQ2MSwyNzQ1OSwyNzQ1OCwyNzQ2NCwyNzQ1Nywy'@; put 'NzU0Nyw2NDAxMywyNzY0MywyNzY0NCwyNzY0MSwyNzYzOSwyNzY0MCwyODMxNSwyODM3NCwyODM2MCwyODMwMywyODM1MiwyODMxOSwyODMwNywyODMwOCwyODMyMCwyODMzNywyODM0NSwyODM1OCwyODM3MCwyODM0OSwyODM1MywyODMxOCwyODM2MSwyODM0MywyODMzNiwyODM2NSwyODMy'@; put 'NiwyODM2NywyODMzOCwyODM1MCwyODM1NSwyODM4MCwyODM3NiwyODMxMywyODMwNiwyODMwMiwyODMwMSwyODMyNCwyODMyMSwyODM1MSwyODMzOSwyODM2OCwyODM2MiwyODMxMSwyODMzNCwyODMyMywyODk5OSwyOTAxMiwyOTAxMCwyOTAyNywyOTAyNCwyODk5MywyOTAyMSwyOTAyNiwy'@; put 'OTA0MiwyOTA0OCwyOTAzNCwyOTAyNSwyODk5NCwyOTAxNiwyODk5NSwyOTAwMywyOTA0MCwyOTAyMywyOTAwOCwyOTAxMSwyODk5NiwyOTAwNSwyOTAxOCwyOTI2MywyOTMyNSwyOTMyNCwyOTMyOSwyOTMyOCwyOTMyNiwyOTUwMCwyOTUwNiwyOTQ5OSwyOTQ5OCwyOTUwNCwyOTUxNCwyOTUx'@; put 'MywyOTc2NCwyOTc3MCwyOTc3MSwyOTc3OCwyOTc3NywyOTc4MywyOTc2MCwyOTc3NSwyOTc3NiwyOTc3NCwyOTc2MiwyOTc2NiwyOTc3MywyOTc4MCwyOTkyMSwyOTk1MSwyOTk1MCwyOTk0OSwyOTk4MSwzMDA3MywzMDA3MSwyNzAxMSwzMDE5MSwzMDIyMywzMDIxMSwzMDE5OSwzMDIwNiwz'@; put 'MDIwNCwzMDIwMSwzMDIwMCwzMDIyNCwzMDIwMywzMDE5OCwzMDE4OSwzMDE5NywzMDIwNSwzMDM2MSwzMDM4OSwzMDQyOSwzMDU0OSwzMDU1OSwzMDU2MCwzMDU0NiwzMDU1MCwzMDU1NCwzMDU2OSwzMDU2NywzMDU0OCwzMDU1MywzMDU3MywzMDY4OCwzMDg1NSwzMDg3NCwzMDg2OCwzMDg2'@; put 'MywzMDg1MiwzMDg2OSwzMDg1MywzMDg1NCwzMDg4MSwzMDg1MSwzMDg0MSwzMDg3MywzMDg0OCwzMDg3MCwzMDg0MywzMTEwMCwzMTEwNiwzMTEwMSwzMTA5NywzMTI0OSwzMTI1NiwzMTI1NywzMTI1MCwzMTI1NSwzMTI1MywzMTI2NiwzMTI1MSwzMTI1OSwzMTI0OCwzMTM5NSwzMTM5NCwz'@; put 'MTM5MCwzMTQ2NywzMTU5MCwzMTU4OCwzMTU5NywzMTYwNCwzMTU5MywzMTYwMiwzMTU4OSwzMTYwMywzMTYwMSwzMTYwMCwzMTU4NSwzMTYwOCwzMTYwNiwzMTU4NywzMTkyMiwzMTkyNCwzMTkxOSwzMjEzNiwzMjEzNCwzMjEyOCwzMjE0MSwzMjEyNywzMjEzMywzMjEyMiwzMjE0MiwzMjEy'@; put 'MywzMjEzMSwzMjEyNCwzMjE0MCwzMjE0OCwzMjEzMiwzMjEyNSwzMjE0NiwzMjYyMSwzMjYxOSwzMjYxNSwzMjYxNiwzMjYyMCwzMjY3OCwzMjY3NywzMjY3OSwzMjczMSwzMjczMiwzMjgwMSwzMzEyNCwzMzEyMCwzMzE0MywzMzExNiwzMzEyOSwzMzExNSwzMzEyMiwzMzEzOCwyNjQwMSwz'@; put 'MzExOCwzMzE0MiwzMzEyNywzMzEzNSwzMzA5MiwzMzEyMSwzMzMwOSwzMzM1MywzMzM0OCwzMzM0NCwzMzM0NiwzMzM0OSwzNDAzMywzMzg1NSwzMzg3OCwzMzkxMCwzMzkxMywzMzkzNSwzMzkzMywzMzg5MywzMzg3MywzMzg1NiwzMzkyNiwzMzg5NSwzMzg0MCwzMzg2OSwzMzkxNywzMzg4'@; put 'MiwzMzg4MSwzMzkwOCwzMzkwNywzMzg4NSwzNDA1NSwzMzg4NiwzMzg0NywzMzg1MCwzMzg0NCwzMzkxNCwzMzg1OSwzMzkxMiwzMzg0MiwzMzg2MSwzMzgzMywzMzc1MywzMzg2NywzMzgzOSwzMzg1OCwzMzgzNywzMzg4NywzMzkwNCwzMzg0OSwzMzg3MCwzMzg2OCwzMzg3NCwzMzkwMywz'@; put 'Mzk4OSwzMzkzNCwzMzg1MSwzMzg2MywzMzg0NiwzMzg0MywzMzg5NiwzMzkxOCwzMzg2MCwzMzgzNSwzMzg4OCwzMzg3NiwzMzkwMiwzMzg3MiwzNDU3MSwzNDU2NCwzNDU1MSwzNDU3MiwzNDU1NCwzNDUxOCwzNDU0OSwzNDYzNywzNDU1MiwzNDU3NCwzNDU2OSwzNDU2MSwzNDU1MCwzNDU3'@; put 'MywzNDU2NSwzNTAzMCwzNTAxOSwzNTAyMSwzNTAyMiwzNTAzOCwzNTAzNSwzNTAzNCwzNTAyMCwzNTAyNCwzNTIwNSwzNTIyNywzNTI5NSwzNTMwMSwzNTMwMCwzNTI5NywzNTI5NiwzNTI5OCwzNTI5MiwzNTMwMiwzNTQ0NiwzNTQ2MiwzNTQ1NSwzNTQyNSwzNTM5MSwzNTQ0NywzNTQ1OCwz'@; put 'NTQ2MCwzNTQ0NSwzNTQ1OSwzNTQ1NywzNTQ0NCwzNTQ1MCwzNTkwMCwzNTkxNSwzNTkxNCwzNTk0MSwzNTk0MCwzNTk0MiwzNTk3NCwzNTk3MiwzNTk3MywzNjA0NCwzNjIwMCwzNjIwMSwzNjI0MSwzNjIzNiwzNjIzOCwzNjIzOSwzNjIzNywzNjI0MywzNjI0NCwzNjI0MCwzNjI0MiwzNjMz'@; put 'NiwzNjMyMCwzNjMzMiwzNjMzNywzNjMzNCwzNjMwNCwzNjMyOSwzNjMyMywzNjMyMiwzNjMyNywzNjMzOCwzNjMzMSwzNjM0MCwzNjYxNCwzNjYwNywzNjYwOSwzNjYwOCwzNjYxMywzNjYxNSwzNjYxNiwzNjYxMCwzNjYxOSwzNjk0NiwzNjkyNywzNjkzMiwzNjkzNywzNjkyNSwzNzEzNiwz'@; put 'NzEzMywzNzEzNSwzNzEzNywzNzE0MiwzNzE0MCwzNzEzMSwzNzEzNCwzNzIzMCwzNzIzMSwzNzQ0OCwzNzQ1OCwzNzQyNCwzNzQzNCwzNzQ3OCwzNzQyNywzNzQ3NywzNzQ3MCwzNzUwNywzNzQyMiwzNzQ1MCwzNzQ0NiwzNzQ4NSwzNzQ4NCwzNzQ1NSwzNzQ3MiwzNzQ3OSwzNzQ4NywzNzQz'@; put 'MCwzNzQ3MywzNzQ4OCwzNzQyNSwzNzQ2MCwzNzQ3NSwzNzQ1NiwzNzQ5MCwzNzQ1NCwzNzQ1OSwzNzQ1MiwzNzQ2MiwzNzQyNiwzODMwMywzODMwMCwzODMwMiwzODI5OSwzODU0NiwzODU0NywzODU0NSwzODU1MSwzODYwNiwzODY1MCwzODY1MywzODY0OCwzODY0NSwzODc3MSwzODc3NSwz'@; put 'ODc3NiwzODc3MCwzODkyNywzODkyNSwzODkyNiwzOTA4NCwzOTE1OCwzOTE2MSwzOTM0MywzOTM0NiwzOTM0NCwzOTM0OSwzOTU5NywzOTU5NSwzOTc3MSw0MDE3MCw0MDE3Myw0MDE2Nyw0MDU3Niw0MDcwMSwyMDcxMCwyMDY5MiwyMDY5NSwyMDcxMiwyMDcyMywyMDY5OSwyMDcxNCwyMDcw'@; put 'MSwyMDcwOCwyMDY5MSwyMDcxNiwyMDcyMCwyMDcxOSwyMDcwNywyMDcwNCwyMDk1MiwyMTEyMCwyMTEyMSwyMTIyNSwyMTIyNywyMTI5NiwyMTQyMCwyMjA1NSwyMjAzNywyMjAyOCwyMjAzNCwyMjAxMiwyMjAzMSwyMjA0NCwyMjAxNywyMjAzNSwyMjAxOCwyMjAxMCwyMjA0NSwyMjAyMCwy'@; put 'MjAxNSwyMjAwOSwyMjY2NSwyMjY1MiwyMjY3MiwyMjY4MCwyMjY2MiwyMjY1NywyMjY1NSwyMjY0NCwyMjY2NywyMjY1MCwyMjY2MywyMjY3MywyMjY3MCwyMjY0NiwyMjY1OCwyMjY2NCwyMjY1MSwyMjY3NiwyMjY3MSwyMjc4MiwyMjg5MSwyMzI2MCwyMzI3OCwyMzI2OSwyMzI1MywyMzI3'@; put 'NCwyMzI1OCwyMzI3NywyMzI3NSwyMzI4MywyMzI2NiwyMzI2NCwyMzI1OSwyMzI3NiwyMzI2MiwyMzI2MSwyMzI1NywyMzI3MiwyMzI2MywyMzQxNSwyMzUyMCwyMzUyMywyMzY1MSwyMzkzOCwyMzkzNiwyMzkzMywyMzk0MiwyMzkzMCwyMzkzNywyMzkyNywyMzk0NiwyMzk0NSwyMzk0NCwy'@; put 'MzkzNCwyMzkzMiwyMzk0OSwyMzkyOSwyMzkzNSwyNDE1MiwyNDE1MywyNDE0NywyNDI4MCwyNDI3MywyNDI3OSwyNDI3MCwyNDI4NCwyNDI3NywyNDI4MSwyNDI3NCwyNDI3NiwyNDM4OCwyNDM4NywyNDQzMSwyNDUwMiwyNDg3NiwyNDg3MiwyNDg5NywyNDkyNiwyNDk0NSwyNDk0NywyNDkx'@; put 'NCwyNDkxNSwyNDk0NiwyNDk0MCwyNDk2MCwyNDk0OCwyNDkxNiwyNDk1NCwyNDkyMywyNDkzMywyNDg5MSwyNDkzOCwyNDkyOSwyNDkxOCwyNTEyOSwyNTEyNywyNTEzMSwyNTY0MywyNTY3NywyNTY5MSwyNTY5MywyNTcxNiwyNTcxOCwyNTcxNCwyNTcxNSwyNTcyNSwyNTcxNywyNTcwMiwy'@; put 'NTc2NiwyNTY3OCwyNTczMCwyNTY5NCwyNTY5MiwyNTY3NSwyNTY4MywyNTY5NiwyNTY4MCwyNTcyNywyNTY2MywyNTcwOCwyNTcwNywyNTY4OSwyNTcwMSwyNTcxOSwyNTk3MSwyNjAxNiwyNjI3MywyNjI3MiwyNjI3MSwyNjM3MywyNjM3MiwyNjQwMiwyNzA1NywyNzA2MiwyNzA4MSwyNzA0'@; put 'MCwyNzA4NiwyNzAzMCwyNzA1NiwyNzA1MiwyNzA2OCwyNzAyNSwyNzAzMywyNzAyMiwyNzA0NywyNzAyMSwyNzA0OSwyNzA3MCwyNzA1NSwyNzA3MSwyNzA3NiwyNzA2OSwyNzA0NCwyNzA5MiwyNzA2NSwyNzA4MiwyNzAzNCwyNzA4NywyNzA1OSwyNzAyNywyNzA1MCwyNzA0MSwyNzAzOCwy'@; put 'NzA5NywyNzAzMSwyNzAyNCwyNzA3NCwyNzA2MSwyNzA0NSwyNzA3OCwyNzQ2NiwyNzQ2OSwyNzQ2NywyNzU1MCwyNzU1MSwyNzU1MiwyNzU4NywyNzU4OCwyNzY0NiwyODM2NiwyODQwNSwyODQwMSwyODQxOSwyODQ1MywyODQwOCwyODQ3MSwyODQxMSwyODQ2MiwyODQyNSwyODQ5NCwyODQ0'@; put 'MSwyODQ0MiwyODQ1NSwyODQ0MCwyODQ3NSwyODQzNCwyODM5NywyODQyNiwyODQ3MCwyODUzMSwyODQwOSwyODM5OCwyODQ2MSwyODQ4MCwyODQ2NCwyODQ3NiwyODQ2OSwyODM5NSwyODQyMywyODQzMCwyODQ4MywyODQyMSwyODQxMywyODQwNiwyODQ3MywyODQ0NCwyODQxMiwyODQ3NCwy'@; put 'ODQ0NywyODQyOSwyODQ0NiwyODQyNCwyODQ0OSwyOTA2MywyOTA3MiwyOTA2NSwyOTA1NiwyOTA2MSwyOTA1OCwyOTA3MSwyOTA1MSwyOTA2MiwyOTA1NywyOTA3OSwyOTI1MiwyOTI2NywyOTMzNSwyOTMzMywyOTMzMSwyOTUwNywyOTUxNywyOTUyMSwyOTUxNiwyOTc5NCwyOTgxMSwyOTgw'@; put 'OSwyOTgxMywyOTgxMCwyOTc5OSwyOTgwNiwyOTk1MiwyOTk1NCwyOTk1NSwzMDA3NywzMDA5NiwzMDIzMCwzMDIxNiwzMDIyMCwzMDIyOSwzMDIyNSwzMDIxOCwzMDIyOCwzMDM5MiwzMDU5MywzMDU4OCwzMDU5NywzMDU5NCwzMDU3NCwzMDU5MiwzMDU3NSwzMDU5MCwzMDU5NSwzMDg5OCwz'@; put 'MDg5MCwzMDkwMCwzMDg5MywzMDg4OCwzMDg0NiwzMDg5MSwzMDg3OCwzMDg4NSwzMDg4MCwzMDg5MiwzMDg4MiwzMDg4NCwzMTEyOCwzMTExNCwzMTExNSwzMTEyNiwzMTEyNSwzMTEyNCwzMTEyMywzMTEyNywzMTExMiwzMTEyMiwzMTEyMCwzMTI3NSwzMTMwNiwzMTI4MCwzMTI3OSwzMTI3'@; put 'MiwzMTI3MCwzMTQwMCwzMTQwMywzMTQwNCwzMTQ3MCwzMTYyNCwzMTY0NCwzMTYyNiwzMTYzMywzMTYzMiwzMTYzOCwzMTYyOSwzMTYyOCwzMTY0MywzMTYzMCwzMTYyMSwzMTY0MCwyMTEyNCwzMTY0MSwzMTY1MiwzMTYxOCwzMTkzMSwzMTkzNSwzMTkzMiwzMTkzMCwzMjE2NywzMjE4Mywz'@; put 'MjE5NCwzMjE2MywzMjE3MCwzMjE5MywzMjE5MiwzMjE5NywzMjE1NywzMjIwNiwzMjE5NiwzMjE5OCwzMjIwMywzMjIwNCwzMjE3NSwzMjE4NSwzMjE1MCwzMjE4OCwzMjE1OSwzMjE2NiwzMjE3NCwzMjE2OSwzMjE2MSwzMjIwMSwzMjYyNywzMjczOCwzMjczOSwzMjc0MSwzMjczNCwzMjgw'@; put 'NCwzMjg2MSwzMjg2MCwzMzE2MSwzMzE1OCwzMzE1NSwzMzE1OSwzMzE2NSwzMzE2NCwzMzE2MywzMzMwMSwzMzk0MywzMzk1NiwzMzk1MywzMzk1MSwzMzk3OCwzMzk5OCwzMzk4NiwzMzk2NCwzMzk2NiwzMzk2MywzMzk3NywzMzk3MiwzMzk4NSwzMzk5NywzMzk2MiwzMzk0NiwzMzk2OSwz'@; put 'NGUzLDMzOTQ5LDMzOTU5LDMzOTc5LDMzOTU0LDMzOTQwLDMzOTkxLDMzOTk2LDMzOTQ3LDMzOTYxLDMzOTY3LDMzOTYwLDM0MDA2LDMzOTQ0LDMzOTc0LDMzOTk5LDMzOTUyLDM0MDA3LDM0MDA0LDM0MDAyLDM0MDExLDMzOTY4LDMzOTM3LDM0NDAxLDM0NjExLDM0NTk1LDM0NjAwLDM0NjY3'@; put 'LDM0NjI0LDM0NjA2LDM0NTkwLDM0NTkzLDM0NTg1LDM0NTg3LDM0NjI3LDM0NjA0LDM0NjI1LDM0NjIyLDM0NjMwLDM0NTkyLDM0NjEwLDM0NjAyLDM0NjA1LDM0NjIwLDM0NTc4LDM0NjE4LDM0NjA5LDM0NjEzLDM0NjI2LDM0NTk4LDM0NTk5LDM0NjE2LDM0NTk2LDM0NTg2LDM0NjA4LDM0'@; put 'NTc3LDM1MDYzLDM1MDQ3LDM1MDU3LDM1MDU4LDM1MDY2LDM1MDcwLDM1MDU0LDM1MDY4LDM1MDYyLDM1MDY3LDM1MDU2LDM1MDUyLDM1MDUxLDM1MjI5LDM1MjMzLDM1MjMxLDM1MjMwLDM1MzA1LDM1MzA3LDM1MzA0LDM1NDk5LDM1NDgxLDM1NDY3LDM1NDc0LDM1NDcxLDM1NDc4LDM1OTAx'@; put 'LDM1OTQ0LDM1OTQ1LDM2MDUzLDM2MDQ3LDM2MDU1LDM2MjQ2LDM2MzYxLDM2MzU0LDM2MzUxLDM2MzY1LDM2MzQ5LDM2MzYyLDM2MzU1LDM2MzU5LDM2MzU4LDM2MzU3LDM2MzUwLDM2MzUyLDM2MzU2LDM2NjI0LDM2NjI1LDM2NjIyLDM2NjIxLDM3MTU1LDM3MTQ4LDM3MTUyLDM3MTU0LDM3'@; put 'MTUxLDM3MTQ5LDM3MTQ2LDM3MTU2LDM3MTUzLDM3MTQ3LDM3MjQyLDM3MjM0LDM3MjQxLDM3MjM1LDM3NTQxLDM3NTQwLDM3NDk0LDM3NTMxLDM3NDk4LDM3NTM2LDM3NTI0LDM3NTQ2LDM3NTE3LDM3NTQyLDM3NTMwLDM3NTQ3LDM3NDk3LDM3NTI3LDM3NTAzLDM3NTM5LDM3NjE0LDM3NTE4'@; put 'LDM3NTA2LDM3NTI1LDM3NTM4LDM3NTAxLDM3NTEyLDM3NTM3LDM3NTE0LDM3NTEwLDM3NTE2LDM3NTI5LDM3NTQzLDM3NTAyLDM3NTExLDM3NTQ1LDM3NTMzLDM3NTE1LDM3NDIxLDM4NTU4LDM4NTYxLDM4NjU1LDM4NzQ0LDM4NzgxLDM4Nzc4LDM4NzgyLDM4Nzg3LDM4Nzg0LDM4Nzg2LDM4'@; put 'Nzc5LDM4Nzg4LDM4Nzg1LDM4NzgzLDM4ODYyLDM4ODYxLDM4OTM0LDM5MDg1LDM5MDg2LDM5MTcwLDM5MTY4LDM5MTc1LDM5MzI1LDM5MzI0LDM5MzYzLDM5MzUzLDM5MzU1LDM5MzU0LDM5MzYyLDM5MzU3LDM5MzY3LDM5NjAxLDM5NjUxLDM5NjU1LDM5NzQyLDM5NzQzLDM5Nzc2LDM5Nzc3'@; put 'LDM5Nzc1LDQwMTc3LDQwMTc4LDQwMTgxLDQwNjE1LDIwNzM1LDIwNzM5LDIwNzg0LDIwNzI4LDIwNzQyLDIwNzQzLDIwNzI2LDIwNzM0LDIwNzQ3LDIwNzQ4LDIwNzMzLDIwNzQ2LDIxMTMxLDIxMTMyLDIxMjMzLDIxMjMxLDIyMDg4LDIyMDgyLDIyMDkyLDIyMDY5LDIyMDgxLDIyMDkwLDIy'@; put 'MDg5LDIyMDg2LDIyMTA0LDIyMTA2LDIyMDgwLDIyMDY3LDIyMDc3LDIyMDYwLDIyMDc4LDIyMDcyLDIyMDU4LDIyMDc0LDIyMjk4LDIyNjk5LDIyNjg1LDIyNzA1LDIyNjg4LDIyNjkxLDIyNzAzLDIyNzAwLDIyNjkzLDIyNjg5LDIyNzgzLDIzMjk1LDIzMjg0LDIzMjkzLDIzMjg3LDIzMjg2'@; put 'LDIzMjk5LDIzMjg4LDIzMjk4LDIzMjg5LDIzMjk3LDIzMzAzLDIzMzAxLDIzMzExLDIzNjU1LDIzOTYxLDIzOTU5LDIzOTY3LDIzOTU0LDIzOTcwLDIzOTU1LDIzOTU3LDIzOTY4LDIzOTY0LDIzOTY5LDIzOTYyLDIzOTY2LDI0MTY5LDI0MTU3LDI0MTYwLDI0MTU2LDMyMjQzLDI0MjgzLDI0'@; put 'Mjg2LDI0Mjg5LDI0MzkzLDI0NDk4LDI0OTcxLDI0OTYzLDI0OTUzLDI1MDA5LDI1MDA4LDI0OTk0LDI0OTY5LDI0OTg3LDI0OTc5LDI1MDA3LDI1MDA1LDI0OTkxLDI0OTc4LDI1MDAyLDI0OTkzLDI0OTczLDI0OTM0LDI1MDExLDI1MTMzLDI1NzEwLDI1NzEyLDI1NzUwLDI1NzYwLDI1NzMz'@; put 'LDI1NzUxLDI1NzU2LDI1NzQzLDI1NzM5LDI1NzM4LDI1NzQwLDI1NzYzLDI1NzU5LDI1NzA0LDI1Nzc3LDI1NzUyLDI1OTc0LDI1OTc4LDI1OTc3LDI1OTc5LDI2MDM0LDI2MDM1LDI2MjkzLDI2Mjg4LDI2MjgxLDI2MjkwLDI2Mjk1LDI2MjgyLDI2Mjg3LDI3MTM2LDI3MTQyLDI3MTU5LDI3'@; put 'MTA5LDI3MTI4LDI3MTU3LDI3MTIxLDI3MTA4LDI3MTY4LDI3MTM1LDI3MTE2LDI3MTA2LDI3MTYzLDI3MTY1LDI3MTM0LDI3MTc1LDI3MTIyLDI3MTE4LDI3MTU2LDI3MTI3LDI3MTExLDI3MjAwLDI3MTQ0LDI3MTEwLDI3MTMxLDI3MTQ5LDI3MTMyLDI3MTE1LDI3MTQ1LDI3MTQwLDI3MTYw'@; put 'LDI3MTczLDI3MTUxLDI3MTI2LDI3MTc0LDI3MTQzLDI3MTI0LDI3MTU4LDI3NDczLDI3NTU3LDI3NTU1LDI3NTU0LDI3NTU4LDI3NjQ5LDI3NjQ4LDI3NjQ3LDI3NjUwLDI4NDgxLDI4NDU0LDI4NTQyLDI4NTUxLDI4NjE0LDI4NTYyLDI4NTU3LDI4NTUzLDI4NTU2LDI4NTE0LDI4NDk1LDI4'@; put 'NTQ5LDI4NTA2LDI4NTY2LDI4NTM0LDI4NTI0LDI4NTQ2LDI4NTAxLDI4NTMwLDI4NDk4LDI4NDk2LDI4NTAzLDI4NTY0LDI4NTYzLDI4NTA5LDI4NDE2LDI4NTEzLDI4NTIzLDI4NTQxLDI4NTE5LDI4NTYwLDI4NDk5LDI4NTU1LDI4NTIxLDI4NTQzLDI4NTY1LDI4NTE1LDI4NTM1LDI4NTIy'@; put 'LDI4NTM5LDI5MTA2LDI5MTAzLDI5MDgzLDI5MTA0LDI5MDg4LDI5MDgyLDI5MDk3LDI5MTA5LDI5MDg1LDI5MDkzLDI5MDg2LDI5MDkyLDI5MDg5LDI5MDk4LDI5MDg0LDI5MDk1LDI5MTA3LDI5MzM2LDI5MzM4LDI5NTI4LDI5NTIyLDI5NTM0LDI5NTM1LDI5NTM2LDI5NTMzLDI5NTMxLDI5'@; put 'NTM3LDI5NTMwLDI5NTI5LDI5NTM4LDI5ODMxLDI5ODMzLDI5ODM0LDI5ODMwLDI5ODI1LDI5ODIxLDI5ODI5LDI5ODMyLDI5ODIwLDI5ODE3LDI5OTYwLDI5OTU5LDMwMDc4LDMwMjQ1LDMwMjM4LDMwMjMzLDMwMjM3LDMwMjM2LDMwMjQzLDMwMjM0LDMwMjQ4LDMwMjM1LDMwMzY0LDMwMzY1'@; put 'LDMwMzY2LDMwMzYzLDMwNjA1LDMwNjA3LDMwNjAxLDMwNjAwLDMwOTI1LDMwOTA3LDMwOTI3LDMwOTI0LDMwOTI5LDMwOTI2LDMwOTMyLDMwOTIwLDMwOTE1LDMwOTE2LDMwOTIxLDMxMTMwLDMxMTM3LDMxMTM2LDMxMTMyLDMxMTM4LDMxMTMxLDI3NTEwLDMxMjg5LDMxNDEwLDMxNDEyLDMx'@; put 'NDExLDMxNjcxLDMxNjkxLDMxNjc4LDMxNjYwLDMxNjk0LDMxNjYzLDMxNjczLDMxNjkwLDMxNjY5LDMxOTQxLDMxOTQ0LDMxOTQ4LDMxOTQ3LDMyMjQ3LDMyMjE5LDMyMjM0LDMyMjMxLDMyMjE1LDMyMjI1LDMyMjU5LDMyMjUwLDMyMjMwLDMyMjQ2LDMyMjQxLDMyMjQwLDMyMjM4LDMyMjIz'@; put 'LDMyNjMwLDMyNjg0LDMyNjg4LDMyNjg1LDMyNzQ5LDMyNzQ3LDMyNzQ2LDMyNzQ4LDMyNzQyLDMyNzQ0LDMyODY4LDMyODcxLDMzMTg3LDMzMTgzLDMzMTgyLDMzMTczLDMzMTg2LDMzMTc3LDMzMTc1LDMzMzAyLDMzMzU5LDMzMzYzLDMzMzYyLDMzMzYwLDMzMzU4LDMzMzYxLDM0MDg0LDM0'@; put 'MTA3LDM0MDYzLDM0MDQ4LDM0MDg5LDM0MDYyLDM0MDU3LDM0MDYxLDM0MDc5LDM0MDU4LDM0MDg3LDM0MDc2LDM0MDQzLDM0MDkxLDM0MDQyLDM0MDU2LDM0MDYwLDM0MDM2LDM0MDkwLDM0MDM0LDM0MDY5LDM0MDM5LDM0MDI3LDM0MDM1LDM0MDQ0LDM0MDY2LDM0MDI2LDM0MDI1LDM0MDcw'@; put 'LDM0MDQ2LDM0MDg4LDM0MDc3LDM0MDk0LDM0MDUwLDM0MDQ1LDM0MDc4LDM0MDM4LDM0MDk3LDM0MDg2LDM0MDIzLDM0MDI0LDM0MDMyLDM0MDMxLDM0MDQxLDM0MDcyLDM0MDgwLDM0MDk2LDM0MDU5LDM0MDczLDM0MDk1LDM0NDAyLDM0NjQ2LDM0NjU5LDM0NjYwLDM0Njc5LDM0Nzg1LDM0'@; put 'Njc1LDM0NjQ4LDM0NjQ0LDM0NjUxLDM0NjQyLDM0NjU3LDM0NjUwLDM0NjQxLDM0NjU0LDM0NjY5LDM0NjY2LDM0NjQwLDM0NjM4LDM0NjU1LDM0NjUzLDM0NjcxLDM0NjY4LDM0NjgyLDM0NjcwLDM0NjUyLDM0NjYxLDM0NjM5LDM0NjgzLDM0Njc3LDM0NjU4LDM0NjYzLDM0NjY1LDM0OTA2'@; put 'LDM1MDc3LDM1MDg0LDM1MDkyLDM1MDgzLDM1MDk1LDM1MDk2LDM1MDk3LDM1MDc4LDM1MDk0LDM1MDg5LDM1MDg2LDM1MDgxLDM1MjM0LDM1MjM2LDM1MjM1LDM1MzA5LDM1MzEyLDM1MzA4LDM1NTM1LDM1NTI2LDM1NTEyLDM1NTM5LDM1NTM3LDM1NTQwLDM1NTQxLDM1NTE1LDM1NTQzLDM1'@; put 'NTE4LDM1NTIwLDM1NTI1LDM1NTQ0LDM1NTIzLDM1NTE0LDM1NTE3LDM1NTQ1LDM1OTAyLDM1OTE3LDM1OTgzLDM2MDY5LDM2MDYzLDM2MDU3LDM2MDcyLDM2MDU4LDM2MDYxLDM2MDcxLDM2MjU2LDM2MjUyLDM2MjU3LDM2MjUxLDM2Mzg0LDM2Mzg3LDM2Mzg5LDM2Mzg4LDM2Mzk4LDM2Mzcz'@; put 'LDM2Mzc5LDM2Mzc0LDM2MzY5LDM2Mzc3LDM2MzkwLDM2MzkxLDM2MzcyLDM2MzcwLDM2Mzc2LDM2MzcxLDM2MzgwLDM2Mzc1LDM2Mzc4LDM2NjUyLDM2NjQ0LDM2NjMyLDM2NjM0LDM2NjQwLDM2NjQzLDM2NjMwLDM2NjMxLDM2OTc5LDM2OTc2LDM2OTc1LDM2OTY3LDM2OTcxLDM3MTY3LDM3'@; put 'MTYzLDM3MTYxLDM3MTYyLDM3MTcwLDM3MTU4LDM3MTY2LDM3MjUzLDM3MjU0LDM3MjU4LDM3MjQ5LDM3MjUwLDM3MjUyLDM3MjQ4LDM3NTg0LDM3NTcxLDM3NTcyLDM3NTY4LDM3NTkzLDM3NTU4LDM3NTgzLDM3NjE3LDM3NTk5LDM3NTkyLDM3NjA5LDM3NTkxLDM3NTk3LDM3NTgwLDM3NjE1'@; put 'LDM3NTcwLDM3NjA4LDM3NTc4LDM3NTc2LDM3NTgyLDM3NjA2LDM3NTgxLDM3NTg5LDM3NTc3LDM3NjAwLDM3NTk4LDM3NjA3LDM3NTg1LDM3NTg3LDM3NTU3LDM3NjAxLDM3NTc0LDM3NTU2LDM4MjY4LDM4MzE2LDM4MzE1LDM4MzE4LDM4MzIwLDM4NTY0LDM4NTYyLDM4NjExLDM4NjYxLDM4'@; put 'NjY0LDM4NjU4LDM4NzQ2LDM4Nzk0LDM4Nzk4LDM4NzkyLDM4ODY0LDM4ODYzLDM4OTQyLDM4OTQxLDM4OTUwLDM4OTUzLDM4OTUyLDM4OTQ0LDM4OTM5LDM4OTUxLDM5MDkwLDM5MTc2LDM5MTYyLDM5MTg1LDM5MTg4LDM5MTkwLDM5MTkxLDM5MTg5LDM5Mzg4LDM5MzczLDM5Mzc1LDM5Mzc5'@; put 'LDM5MzgwLDM5Mzc0LDM5MzY5LDM5MzgyLDM5Mzg0LDM5MzcxLDM5MzgzLDM5MzcyLDM5NjAzLDM5NjYwLDM5NjU5LDM5NjY3LDM5NjY2LDM5NjY1LDM5NzUwLDM5NzQ3LDM5NzgzLDM5Nzk2LDM5NzkzLDM5NzgyLDM5Nzk4LDM5Nzk3LDM5NzkyLDM5Nzg0LDM5NzgwLDM5Nzg4LDQwMTg4LDQw'@; put 'MTg2LDQwMTg5LDQwMTkxLDQwMTgzLDQwMTk5LDQwMTkyLDQwMTg1LDQwMTg3LDQwMjAwLDQwMTk3LDQwMTk2LDQwNTc5LDQwNjU5LDQwNzE5LDQwNzIwLDIwNzY0LDIwNzU1LDIwNzU5LDIwNzYyLDIwNzUzLDIwOTU4LDIxMzAwLDIxNDczLDIyMTI4LDIyMTEyLDIyMTI2LDIyMTMxLDIyMTE4'@; put 'LDIyMTE1LDIyMTI1LDIyMTMwLDIyMTEwLDIyMTM1LDIyMzAwLDIyMjk5LDIyNzI4LDIyNzE3LDIyNzI5LDIyNzE5LDIyNzE0LDIyNzIyLDIyNzE2LDIyNzI2LDIzMzE5LDIzMzIxLDIzMzIzLDIzMzI5LDIzMzE2LDIzMzE1LDIzMzEyLDIzMzE4LDIzMzM2LDIzMzIyLDIzMzI4LDIzMzI2LDIz'@; put 'NTM1LDIzOTgwLDIzOTg1LDIzOTc3LDIzOTc1LDIzOTg5LDIzOTg0LDIzOTgyLDIzOTc4LDIzOTc2LDIzOTg2LDIzOTgxLDIzOTgzLDIzOTg4LDI0MTY3LDI0MTY4LDI0MTY2LDI0MTc1LDI0Mjk3LDI0Mjk1LDI0Mjk0LDI0Mjk2LDI0MjkzLDI0Mzk1LDI0NTA4LDI0OTg5LDI1ZTMsMjQ5ODIs'@; put 'MjUwMjksMjUwMTIsMjUwMzAsMjUwMjUsMjUwMzYsMjUwMTgsMjUwMjMsMjUwMTYsMjQ5NzIsMjU4MTUsMjU4MTQsMjU4MDgsMjU4MDcsMjU4MDEsMjU3ODksMjU3MzcsMjU3OTUsMjU4MTksMjU4NDMsMjU4MTcsMjU5MDcsMjU5ODMsMjU5ODAsMjYwMTgsMjYzMTIsMjYzMDIsMjYzMDQsMjYz'@; put 'MTQsMjYzMTUsMjYzMTksMjYzMDEsMjYyOTksMjYyOTgsMjYzMTYsMjY0MDMsMjcxODgsMjcyMzgsMjcyMDksMjcyMzksMjcxODYsMjcyNDAsMjcxOTgsMjcyMjksMjcyNDUsMjcyNTQsMjcyMjcsMjcyMTcsMjcxNzYsMjcyMjYsMjcxOTUsMjcxOTksMjcyMDEsMjcyNDIsMjcyMzYsMjcyMTYs'@; put 'MjcyMTUsMjcyMjAsMjcyNDcsMjcyNDEsMjcyMzIsMjcxOTYsMjcyMzAsMjcyMjIsMjcyMjEsMjcyMTMsMjcyMTQsMjcyMDYsMjc0NzcsMjc0NzYsMjc0NzgsMjc1NTksMjc1NjIsMjc1NjMsMjc1OTIsMjc1OTEsMjc2NTIsMjc2NTEsMjc2NTQsMjg1ODksMjg2MTksMjg1NzksMjg2MTUsMjg2'@; put 'MDQsMjg2MjIsMjg2MTYsMjg1MTAsMjg2MTIsMjg2MDUsMjg1NzQsMjg2MTgsMjg1ODQsMjg2NzYsMjg1ODEsMjg1OTAsMjg2MDIsMjg1ODgsMjg1ODYsMjg2MjMsMjg2MDcsMjg2MDAsMjg1NzgsMjg2MTcsMjg1ODcsMjg2MjEsMjg1OTEsMjg1OTQsMjg1OTIsMjkxMjUsMjkxMjIsMjkxMTks'@; put 'MjkxMTIsMjkxNDIsMjkxMjAsMjkxMjEsMjkxMzEsMjkxNDAsMjkxMzAsMjkxMjcsMjkxMzUsMjkxMTcsMjkxNDQsMjkxMTYsMjkxMjYsMjkxNDYsMjkxNDcsMjkzNDEsMjkzNDIsMjk1NDUsMjk1NDIsMjk1NDMsMjk1NDgsMjk1NDEsMjk1NDcsMjk1NDYsMjk4MjMsMjk4NTAsMjk4NTYsMjk4'@; put 'NDQsMjk4NDIsMjk4NDUsMjk4NTcsMjk5NjMsMzAwODAsMzAyNTUsMzAyNTMsMzAyNTcsMzAyNjksMzAyNTksMzAyNjgsMzAyNjEsMzAyNTgsMzAyNTYsMzAzOTUsMzA0MzgsMzA2MTgsMzA2MjEsMzA2MjUsMzA2MjAsMzA2MTksMzA2MjYsMzA2MjcsMzA2MTMsMzA2MTcsMzA2MTUsMzA5NDEs'@; put 'MzA5NTMsMzA5NDksMzA5NTQsMzA5NDIsMzA5NDcsMzA5MzksMzA5NDUsMzA5NDYsMzA5NTcsMzA5NDMsMzA5NDQsMzExNDAsMzEzMDAsMzEzMDQsMzEzMDMsMzE0MTQsMzE0MTYsMzE0MTMsMzE0MDksMzE0MTUsMzE3MTAsMzE3MTUsMzE3MTksMzE3MDksMzE3MDEsMzE3MTcsMzE3MDYsMzE3'@; put 'MjAsMzE3MzcsMzE3MDAsMzE3MjIsMzE3MTQsMzE3MDgsMzE3MjMsMzE3MDQsMzE3MTEsMzE5NTQsMzE5NTYsMzE5NTksMzE5NTIsMzE5NTMsMzIyNzQsMzIyODksMzIyNzksMzIyNjgsMzIyODcsMzIyODgsMzIyNzUsMzIyNzAsMzIyODQsMzIyNzcsMzIyODIsMzIyOTAsMzIyNjcsMzIyNzEs'@; put 'MzIyNzgsMzIyNjksMzIyNzYsMzIyOTMsMzIyOTIsMzI1NzksMzI2MzUsMzI2MzYsMzI2MzQsMzI2ODksMzI3NTEsMzI4MTAsMzI4MDksMzI4NzYsMzMyMDEsMzMxOTAsMzMxOTgsMzMyMDksMzMyMDUsMzMxOTUsMzMyMDAsMzMxOTYsMzMyMDQsMzMyMDIsMzMyMDcsMzMxOTEsMzMyNjYsMzMz'@; put 'NjUsMzMzNjYsMzMzNjcsMzQxMzQsMzQxMTcsMzQxNTUsMzQxMjUsMzQxMzEsMzQxNDUsMzQxMzYsMzQxMTIsMzQxMTgsMzQxNDgsMzQxMTMsMzQxNDYsMzQxMTYsMzQxMjksMzQxMTksMzQxNDcsMzQxMTAsMzQxMzksMzQxNjEsMzQxMjYsMzQxNTgsMzQxNjUsMzQxMzMsMzQxNTEsMzQxNDQs'@; put 'MzQxODgsMzQxNTAsMzQxNDEsMzQxMzIsMzQxNDksMzQxNTYsMzQ0MDMsMzQ0MDUsMzQ0MDQsMzQ3MTUsMzQ3MDMsMzQ3MTEsMzQ3MDcsMzQ3MDYsMzQ2OTYsMzQ2ODksMzQ3MTAsMzQ3MTIsMzQ2ODEsMzQ2OTUsMzQ3MjMsMzQ2OTMsMzQ3MDQsMzQ3MDUsMzQ3MTcsMzQ2OTIsMzQ3MDgsMzQ3'@; put 'MTYsMzQ3MTQsMzQ2OTcsMzUxMDIsMzUxMTAsMzUxMjAsMzUxMTcsMzUxMTgsMzUxMTEsMzUxMjEsMzUxMDYsMzUxMTMsMzUxMDcsMzUxMTksMzUxMTYsMzUxMDMsMzUzMTMsMzU1NTIsMzU1NTQsMzU1NzAsMzU1NzIsMzU1NzMsMzU1NDksMzU2MDQsMzU1NTYsMzU1NTEsMzU1NjgsMzU1Mjgs'@; put 'MzU1NTAsMzU1NTMsMzU1NjAsMzU1ODMsMzU1NjcsMzU1NzksMzU5ODUsMzU5ODYsMzU5ODQsMzYwODUsMzYwNzgsMzYwODEsMzYwODAsMzYwODMsMzYyMDQsMzYyMDYsMzYyNjEsMzYyNjMsMzY0MDMsMzY0MTQsMzY0MDgsMzY0MTYsMzY0MjEsMzY0MDYsMzY0MTIsMzY0MTMsMzY0MTcsMzY0'@; put 'MDAsMzY0MTUsMzY1NDEsMzY2NjIsMzY2NTQsMzY2NjEsMzY2NTgsMzY2NjUsMzY2NjMsMzY2NjAsMzY5ODIsMzY5ODUsMzY5ODcsMzY5OTgsMzcxMTQsMzcxNzEsMzcxNzMsMzcxNzQsMzcyNjcsMzcyNjQsMzcyNjUsMzcyNjEsMzcyNjMsMzc2NzEsMzc2NjIsMzc2NDAsMzc2NjMsMzc2Mzgs'@; put 'Mzc2NDcsMzc3NTQsMzc2ODgsMzc2OTIsMzc2NTksMzc2NjcsMzc2NTAsMzc2MzMsMzc3MDIsMzc2NzcsMzc2NDYsMzc2NDUsMzc1NzksMzc2NjEsMzc2MjYsMzc2NjksMzc2NTEsMzc2MjUsMzc2MjMsMzc2ODQsMzc2MzQsMzc2NjgsMzc2MzEsMzc2NzMsMzc2ODksMzc2ODUsMzc2NzQsMzc2'@; put 'NTIsMzc2NDQsMzc2NDMsMzc2MzAsMzc2NDEsMzc2MzIsMzc2MjcsMzc2NTQsMzgzMzIsMzgzNDksMzgzMzQsMzgzMjksMzgzMzAsMzgzMjYsMzgzMzUsMzgzMjUsMzgzMzMsMzg1NjksMzg2MTIsMzg2NjcsMzg2NzQsMzg2NzIsMzg4MDksMzg4MDcsMzg4MDQsMzg4OTYsMzg5MDQsMzg5NjUs'@; put 'Mzg5NTksMzg5NjIsMzkyMDQsMzkxOTksMzkyMDcsMzkyMDksMzkzMjYsMzk0MDYsMzk0MDQsMzkzOTcsMzkzOTYsMzk0MDgsMzkzOTUsMzk0MDIsMzk0MDEsMzkzOTksMzk2MDksMzk2MTUsMzk2MDQsMzk2MTEsMzk2NzAsMzk2NzQsMzk2NzMsMzk2NzEsMzk3MzEsMzk4MDgsMzk4MTMsMzk4'@; put 'MTUsMzk4MDQsMzk4MDYsMzk4MDMsMzk4MTAsMzk4MjcsMzk4MjYsMzk4MjQsMzk4MDIsMzk4MjksMzk4MDUsMzk4MTYsNDAyMjksNDAyMTUsNDAyMjQsNDAyMjIsNDAyMTIsNDAyMzMsNDAyMjEsNDAyMTYsNDAyMjYsNDAyMDgsNDAyMTcsNDAyMjMsNDA1ODQsNDA1ODIsNDA1ODMsNDA2MjIs'@; put 'NDA2MjEsNDA2NjEsNDA2NjIsNDA2OTgsNDA3MjIsNDA3NjUsMjA3NzQsMjA3NzMsMjA3NzAsMjA3NzIsMjA3NjgsMjA3NzcsMjEyMzYsMjIxNjMsMjIxNTYsMjIxNTcsMjIxNTAsMjIxNDgsMjIxNDcsMjIxNDIsMjIxNDYsMjIxNDMsMjIxNDUsMjI3NDIsMjI3NDAsMjI3MzUsMjI3MzgsMjMz'@; put 'NDEsMjMzMzMsMjMzNDYsMjMzMzEsMjMzNDAsMjMzMzUsMjMzMzQsMjMzNDMsMjMzNDIsMjM0MTksMjM1MzcsMjM1MzgsMjM5OTEsMjQxNzIsMjQxNzAsMjQ1MTAsMjQ1MDcsMjUwMjcsMjUwMTMsMjUwMjAsMjUwNjMsMjUwNTYsMjUwNjEsMjUwNjAsMjUwNjQsMjUwNTQsMjU4MzksMjU4MzMs'@; put 'MjU4MjcsMjU4MzUsMjU4MjgsMjU4MzIsMjU5ODUsMjU5ODQsMjYwMzgsMjYwNzQsMjYzMjIsMjcyNzcsMjcyODYsMjcyNjUsMjczMDEsMjcyNzMsMjcyOTUsMjcyOTEsMjcyOTcsMjcyOTQsMjcyNzEsMjcyODMsMjcyNzgsMjcyODUsMjcyNjcsMjczMDQsMjczMDAsMjcyODEsMjcyNjMsMjcz'@; put 'MDIsMjcyOTAsMjcyNjksMjcyNzYsMjcyODIsMjc0ODMsMjc1NjUsMjc2NTcsMjg2MjAsMjg1ODUsMjg2NjAsMjg2MjgsMjg2NDMsMjg2MzYsMjg2NTMsMjg2NDcsMjg2NDYsMjg2MzgsMjg2NTgsMjg2MzcsMjg2NDIsMjg2NDgsMjkxNTMsMjkxNjksMjkxNjAsMjkxNzAsMjkxNTYsMjkxNjgs'@; put 'MjkxNTQsMjk1NTUsMjk1NTAsMjk1NTEsMjk4NDcsMjk4NzQsMjk4NjcsMjk4NDAsMjk4NjYsMjk4NjksMjk4NzMsMjk4NjEsMjk4NzEsMjk5NjgsMjk5NjksMjk5NzAsMjk5NjcsMzAwODQsMzAyNzUsMzAyODAsMzAyODEsMzAyNzksMzAzNzIsMzA0NDEsMzA2NDUsMzA2MzUsMzA2NDIsMzA2'@; put 'NDcsMzA2NDYsMzA2NDQsMzA2NDEsMzA2MzIsMzA3MDQsMzA5NjMsMzA5NzMsMzA5NzgsMzA5NzEsMzA5NzIsMzA5NjIsMzA5ODEsMzA5NjksMzA5NzQsMzA5ODAsMzExNDcsMzExNDQsMzEzMjQsMzEzMjMsMzEzMTgsMzEzMjAsMzEzMTYsMzEzMjIsMzE0MjIsMzE0MjQsMzE0MjUsMzE3NDks'@; put 'MzE3NTksMzE3MzAsMzE3NDQsMzE3NDMsMzE3MzksMzE3NTgsMzE3MzIsMzE3NTUsMzE3MzEsMzE3NDYsMzE3NTMsMzE3NDcsMzE3NDUsMzE3MzYsMzE3NDEsMzE3NTAsMzE3MjgsMzE3MjksMzE3NjAsMzE3NTQsMzE5NzYsMzIzMDEsMzIzMTYsMzIzMjIsMzIzMDcsMzg5ODQsMzIzMTIsMzIy'@; put 'OTgsMzIzMjksMzIzMjAsMzIzMjcsMzIyOTcsMzIzMzIsMzIzMDQsMzIzMTUsMzIzMTAsMzIzMjQsMzIzMTQsMzI1ODEsMzI2MzksMzI2MzgsMzI2MzcsMzI3NTYsMzI3NTQsMzI4MTIsMzMyMTEsMzMyMjAsMzMyMjgsMzMyMjYsMzMyMjEsMzMyMjMsMzMyMTIsMzMyNTcsMzMzNzEsMzMzNzAs'@; put 'MzMzNzIsMzQxNzksMzQxNzYsMzQxOTEsMzQyMTUsMzQxOTcsMzQyMDgsMzQxODcsMzQyMTEsMzQxNzEsMzQyMTIsMzQyMDIsMzQyMDYsMzQxNjcsMzQxNzIsMzQxODUsMzQyMDksMzQxNzAsMzQxNjgsMzQxMzUsMzQxOTAsMzQxOTgsMzQxODIsMzQxODksMzQyMDEsMzQyMDUsMzQxNzcsMzQy'@; put 'MTAsMzQxNzgsMzQxODQsMzQxODEsMzQxNjksMzQxNjYsMzQyMDAsMzQxOTIsMzQyMDcsMzQ0MDgsMzQ3NTAsMzQ3MzAsMzQ3MzMsMzQ3NTcsMzQ3MzYsMzQ3MzIsMzQ3NDUsMzQ3NDEsMzQ3NDgsMzQ3MzQsMzQ3NjEsMzQ3NTUsMzQ3NTQsMzQ3NjQsMzQ3NDMsMzQ3MzUsMzQ3NTYsMzQ3NjIs'@; put 'MzQ3NDAsMzQ3NDIsMzQ3NTEsMzQ3NDQsMzQ3NDksMzQ3ODIsMzQ3MzgsMzUxMjUsMzUxMjMsMzUxMzIsMzUxMzQsMzUxMzcsMzUxNTQsMzUxMjcsMzUxMzgsMzUyNDUsMzUyNDcsMzUyNDYsMzUzMTQsMzUzMTUsMzU2MTQsMzU2MDgsMzU2MDYsMzU2MDEsMzU1ODksMzU1OTUsMzU2MTgsMzU1'@; put 'OTksMzU2MDIsMzU2MDUsMzU1OTEsMzU1OTcsMzU1OTIsMzU1OTAsMzU2MTIsMzU2MDMsMzU2MTAsMzU5MTksMzU5NTIsMzU5NTQsMzU5NTMsMzU5NTEsMzU5ODksMzU5ODgsMzYwODksMzYyMDcsMzY0MzAsMzY0MjksMzY0MzUsMzY0MzIsMzY0MjgsMzY0MjMsMzY2NzUsMzY2NzIsMzY5OTcs'@; put 'MzY5OTAsMzcxNzYsMzcyNzQsMzcyODIsMzcyNzUsMzcyNzMsMzcyNzksMzcyODEsMzcyNzcsMzcyODAsMzc3OTMsMzc3NjMsMzc4MDcsMzc3MzIsMzc3MTgsMzc3MDMsMzc3NTYsMzc3MjAsMzc3MjQsMzc3NTAsMzc3MDUsMzc3MTIsMzc3MTMsMzc3MjgsMzc3NDEsMzc3NzUsMzc3MDgsMzc3'@; put 'MzgsMzc3NTMsMzc3MTksMzc3MTcsMzc3MTQsMzc3MTEsMzc3NDUsMzc3NTEsMzc3NTUsMzc3MjksMzc3MjYsMzc3MzEsMzc3MzUsMzc3NjAsMzc3MTAsMzc3MjEsMzgzNDMsMzgzMzYsMzgzNDUsMzgzMzksMzgzNDEsMzgzMjcsMzg1NzQsMzg1NzYsMzg1NzIsMzg2ODgsMzg2ODcsMzg2ODAs'@; put 'Mzg2ODUsMzg2ODEsMzg4MTAsMzg4MTcsMzg4MTIsMzg4MTQsMzg4MTMsMzg4NjksMzg4NjgsMzg4OTcsMzg5NzcsMzg5ODAsMzg5ODYsMzg5ODUsMzg5ODEsMzg5NzksMzkyMDUsMzkyMTEsMzkyMTIsMzkyMTAsMzkyMTksMzkyMTgsMzkyMTUsMzkyMTMsMzkyMTcsMzkyMTYsMzkzMjAsMzkz'@; put 'MzEsMzkzMjksMzk0MjYsMzk0MTgsMzk0MTIsMzk0MTUsMzk0MTcsMzk0MTYsMzk0MTQsMzk0MTksMzk0MjEsMzk0MjIsMzk0MjAsMzk0MjcsMzk2MTQsMzk2NzgsMzk2NzcsMzk2ODEsMzk2NzYsMzk3NTIsMzk4MzQsMzk4NDgsMzk4MzgsMzk4MzUsMzk4NDYsMzk4NDEsMzk4NDUsMzk4NDQs'@; put 'Mzk4MTQsMzk4NDIsMzk4NDAsMzk4NTUsNDAyNDMsNDAyNTcsNDAyOTUsNDAyNDYsNDAyMzgsNDAyMzksNDAyNDEsNDAyNDgsNDAyNDAsNDAyNjEsNDAyNTgsNDAyNTksNDAyNTQsNDAyNDcsNDAyNTYsNDAyNTMsMzI3NTcsNDAyMzcsNDA1ODYsNDA1ODUsNDA1ODksNDA2MjQsNDA2NDgsNDA2'@; put 'NjYsNDA2OTksNDA3MDMsNDA3NDAsNDA3MzksNDA3MzgsNDA3ODgsNDA4NjQsMjA3ODUsMjA3ODEsMjA3ODIsMjIxNjgsMjIxNzIsMjIxNjcsMjIxNzAsMjIxNzMsMjIxNjksMjI4OTYsMjMzNTYsMjM2NTcsMjM2NTgsMjRlMywyNDE3MywyNDE3NCwyNTA0OCwyNTA1NSwyNTA2OSwyNTA3MCwy'@; put 'NTA3MywyNTA2NiwyNTA3MiwyNTA2NywyNTA0NiwyNTA2NSwyNTg1NSwyNTg2MCwyNTg1MywyNTg0OCwyNTg1NywyNTg1OSwyNTg1MiwyNjAwNCwyNjA3NSwyNjMzMCwyNjMzMSwyNjMyOCwyNzMzMywyNzMyMSwyNzMyNSwyNzM2MSwyNzMzNCwyNzMyMiwyNzMxOCwyNzMxOSwyNzMzNSwyNzMx'@; put 'NiwyNzMwOSwyNzQ4NiwyNzU5MywyNzY1OSwyODY3OSwyODY4NCwyODY4NSwyODY3MywyODY3NywyODY5MiwyODY4NiwyODY3MSwyODY3MiwyODY2NywyODcxMCwyODY2OCwyODY2MywyODY4MiwyOTE4NSwyOTE4MywyOTE3NywyOTE4NywyOTE4MSwyOTU1OCwyOTg4MCwyOTg4OCwyOTg3Nywy'@; put 'OTg4OSwyOTg4NiwyOTg3OCwyOTg4MywyOTg5MCwyOTk3MiwyOTk3MSwzMDMwMCwzMDMwOCwzMDI5NywzMDI4OCwzMDI5MSwzMDI5NSwzMDI5OCwzMDM3NCwzMDM5NywzMDQ0NCwzMDY1OCwzMDY1MCwzMDk3NSwzMDk4OCwzMDk5NSwzMDk5NiwzMDk4NSwzMDk5MiwzMDk5NCwzMDk5MywzMTE0'@; put 'OSwzMTE0OCwzMTMyNywzMTc3MiwzMTc4NSwzMTc2OSwzMTc3NiwzMTc3NSwzMTc4OSwzMTc3MywzMTc4MiwzMTc4NCwzMTc3OCwzMTc4MSwzMTc5MiwzMjM0OCwzMjMzNiwzMjM0MiwzMjM1NSwzMjM0NCwzMjM1NCwzMjM1MSwzMjMzNywzMjM1MiwzMjM0MywzMjMzOSwzMjY5MywzMjY5MSwz'@; put 'Mjc1OSwzMjc2MCwzMjg4NSwzMzIzMywzMzIzNCwzMzIzMiwzMzM3NSwzMzM3NCwzNDIyOCwzNDI0NiwzNDI0MCwzNDI0MywzNDI0MiwzNDIyNywzNDIyOSwzNDIzNywzNDI0NywzNDI0NCwzNDIzOSwzNDI1MSwzNDI1NCwzNDI0OCwzNDI0NSwzNDIyNSwzNDIzMCwzNDI1OCwzNDM0MCwzNDIz'@; put 'MiwzNDIzMSwzNDIzOCwzNDQwOSwzNDc5MSwzNDc5MCwzNDc4NiwzNDc3OSwzNDc5NSwzNDc5NCwzNDc4OSwzNDc4MywzNDgwMywzNDc4OCwzNDc3MiwzNDc4MCwzNDc3MSwzNDc5NywzNDc3NiwzNDc4NywzNDcyNCwzNDc3NSwzNDc3NywzNDgxNywzNDgwNCwzNDc5MiwzNDc4MSwzNTE1NSwz'@; put 'NTE0NywzNTE1MSwzNTE0OCwzNTE0MiwzNTE1MiwzNTE1MywzNTE0NSwzNTYyNiwzNTYyMywzNTYxOSwzNTYzNSwzNTYzMiwzNTYzNywzNTY1NSwzNTYzMSwzNTY0NCwzNTY0NiwzNTYzMywzNTYyMSwzNTYzOSwzNTYyMiwzNTYzOCwzNTYzMCwzNTYyMCwzNTY0MywzNTY0NSwzNTY0MiwzNTkw'@; put 'NiwzNTk1NywzNTk5MywzNTk5MiwzNTk5MSwzNjA5NCwzNjEwMCwzNjA5OCwzNjA5NiwzNjQ0NCwzNjQ1MCwzNjQ0OCwzNjQzOSwzNjQzOCwzNjQ0NiwzNjQ1MywzNjQ1NSwzNjQ0MywzNjQ0MiwzNjQ0OSwzNjQ0NSwzNjQ1NywzNjQzNiwzNjY3OCwzNjY3OSwzNjY4MCwzNjY4MywzNzE2MCwz'@; put 'NzE3OCwzNzE3OSwzNzE4MiwzNzI4OCwzNzI4NSwzNzI4NywzNzI5NSwzNzI5MCwzNzgxMywzNzc3MiwzNzc3OCwzNzgxNSwzNzc4NywzNzc4OSwzNzc2OSwzNzc5OSwzNzc3NCwzNzgwMiwzNzc5MCwzNzc5OCwzNzc4MSwzNzc2OCwzNzc4NSwzNzc5MSwzNzc3MywzNzgwOSwzNzc3NywzNzgx'@; put 'MCwzNzc5NiwzNzgwMCwzNzgxMiwzNzc5NSwzNzc5NywzODM1NCwzODM1NSwzODM1MywzODU3OSwzODYxNSwzODYxOCwyNDAwMiwzODYyMywzODYxNiwzODYyMSwzODY5MSwzODY5MCwzODY5MywzODgyOCwzODgzMCwzODgyNCwzODgyNywzODgyMCwzODgyNiwzODgxOCwzODgyMSwzODg3MSwz'@; put 'ODg3MywzODg3MCwzODg3MiwzODkwNiwzODk5MiwzODk5MywzODk5NCwzOTA5NiwzOTIzMywzOTIyOCwzOTIyNiwzOTQzOSwzOTQzNSwzOTQzMywzOTQzNywzOTQyOCwzOTQ0MSwzOTQzNCwzOTQyOSwzOTQzMSwzOTQzMCwzOTYxNiwzOTY0NCwzOTY4OCwzOTY4NCwzOTY4NSwzOTcyMSwzOTcz'@; put 'MywzOTc1NCwzOTc1NiwzOTc1NSwzOTg3OSwzOTg3OCwzOTg3NSwzOTg3MSwzOTg3MywzOTg2MSwzOTg2NCwzOTg5MSwzOTg2MiwzOTg3NiwzOTg2NSwzOTg2OSw0MDI4NCw0MDI3NSw0MDI3MSw0MDI2Niw0MDI4Myw0MDI2Nyw0MDI4MSw0MDI3OCw0MDI2OCw0MDI3OSw0MDI3NCw0MDI3Niw0'@; put 'MDI4Nyw0MDI4MCw0MDI4Miw0MDU5MCw0MDU4OCw0MDY3MSw0MDcwNSw0MDcwNCw0MDcyNiw0MDc0MSw0MDc0Nyw0MDc0Niw0MDc0NSw0MDc0NCw0MDc4MCw0MDc4OSwyMDc4OCwyMDc4OSwyMTE0MiwyMTIzOSwyMTQyOCwyMjE4NywyMjE4OSwyMjE4MiwyMjE4MywyMjE4NiwyMjE4OCwyMjc0'@; put 'NiwyMjc0OSwyMjc0NywyMjgwMiwyMzM1NywyMzM1OCwyMzM1OSwyNDAwMywyNDE3NiwyNDUxMSwyNTA4MywyNTg2MywyNTg3MiwyNTg2OSwyNTg2NSwyNTg2OCwyNTg3MCwyNTk4OCwyNjA3OCwyNjA3NywyNjMzNCwyNzM2NywyNzM2MCwyNzM0MCwyNzM0NSwyNzM1MywyNzMzOSwyNzM1OSwy'@; put 'NzM1NiwyNzM0NCwyNzM3MSwyNzM0MywyNzM0MSwyNzM1OCwyNzQ4OCwyNzU2OCwyNzY2MCwyODY5NywyODcxMSwyODcwNCwyODY5NCwyODcxNSwyODcwNSwyODcwNiwyODcwNywyODcxMywyODY5NSwyODcwOCwyODcwMCwyODcxNCwyOTE5NiwyOTE5NCwyOTE5MSwyOTE4NiwyOTE4OSwyOTM0'@; put 'OSwyOTM1MCwyOTM0OCwyOTM0NywyOTM0NSwyOTg5OSwyOTg5MywyOTg3OSwyOTg5MSwyOTk3NCwzMDMwNCwzMDY2NSwzMDY2NiwzMDY2MCwzMDcwNSwzMTAwNSwzMTAwMywzMTAwOSwzMTAwNCwzMDk5OSwzMTAwNiwzMTE1MiwzMTMzNSwzMTMzNiwzMTc5NSwzMTgwNCwzMTgwMSwzMTc4OCwz'@; put 'MTgwMywzMTk4MCwzMTk3OCwzMjM3NCwzMjM3MywzMjM3NiwzMjM2OCwzMjM3NSwzMjM2NywzMjM3OCwzMjM3MCwzMjM3MiwzMjM2MCwzMjU4NywzMjU4NiwzMjY0MywzMjY0NiwzMjY5NSwzMjc2NSwzMjc2NiwzMjg4OCwzMzIzOSwzMzIzNywzMzM4MCwzMzM3NywzMzM3OSwzNDI4MywzNDI4'@; put 'OSwzNDI4NSwzNDI2NSwzNDI3MywzNDI4MCwzNDI2NiwzNDI2MywzNDI4NCwzNDI5MCwzNDI5NiwzNDI2NCwzNDI3MSwzNDI3NSwzNDI2OCwzNDI1NywzNDI4OCwzNDI3OCwzNDI4NywzNDI3MCwzNDI3NCwzNDgxNiwzNDgxMCwzNDgxOSwzNDgwNiwzNDgwNywzNDgyNSwzNDgyOCwzNDgyNywz'@; put 'NDgyMiwzNDgxMiwzNDgyNCwzNDgxNSwzNDgyNiwzNDgxOCwzNTE3MCwzNTE2MiwzNTE2MywzNTE1OSwzNTE2OSwzNTE2NCwzNTE2MCwzNTE2NSwzNTE2MSwzNTIwOCwzNTI1NSwzNTI1NCwzNTMxOCwzNTY2NCwzNTY1NiwzNTY1OCwzNTY0OCwzNTY2NywzNTY3MCwzNTY2OCwzNTY1OSwzNTY2'@; put 'OSwzNTY2NSwzNTY1MCwzNTY2NiwzNTY3MSwzNTkwNywzNTk1OSwzNTk1OCwzNTk5NCwzNjEwMiwzNjEwMywzNjEwNSwzNjI2OCwzNjI2NiwzNjI2OSwzNjI2NywzNjQ2MSwzNjQ3MiwzNjQ2NywzNjQ1OCwzNjQ2MywzNjQ3NSwzNjU0NiwzNjY5MCwzNjY4OSwzNjY4NywzNjY4OCwzNjY5MSwz'@; put 'Njc4OCwzNzE4NCwzNzE4MywzNzI5NiwzNzI5MywzNzg1NCwzNzgzMSwzNzgzOSwzNzgyNiwzNzg1MCwzNzg0MCwzNzg4MSwzNzg2OCwzNzgzNiwzNzg0OSwzNzgwMSwzNzg2MiwzNzgzNCwzNzg0NCwzNzg3MCwzNzg1OSwzNzg0NSwzNzgyOCwzNzgzOCwzNzgyNCwzNzg0MiwzNzg2MywzODI2'@; put 'OSwzODM2MiwzODM2MywzODYyNSwzODY5NywzODY5OSwzODcwMCwzODY5NiwzODY5NCwzODgzNSwzODgzOSwzODgzOCwzODg3NywzODg3OCwzODg3OSwzOTAwNCwzOTAwMSwzOTAwNSwzODk5OSwzOTEwMywzOTEwMSwzOTA5OSwzOTEwMiwzOTI0MCwzOTIzOSwzOTIzNSwzOTMzNCwzOTMzNSwz'@; put 'OTQ1MCwzOTQ0NSwzOTQ2MSwzOTQ1MywzOTQ2MCwzOTQ1MSwzOTQ1OCwzOTQ1NiwzOTQ2MywzOTQ1OSwzOTQ1NCwzOTQ1MiwzOTQ0NCwzOTYxOCwzOTY5MSwzOTY5MCwzOTY5NCwzOTY5MiwzOTczNSwzOTkxNCwzOTkxNSwzOTkwNCwzOTkwMiwzOTkwOCwzOTkxMCwzOTkwNiwzOTkyMCwzOTg5'@; put 'MiwzOTg5NSwzOTkxNiwzOTkwMCwzOTg5NywzOTkwOSwzOTg5MywzOTkwNSwzOTg5OCw0MDMxMSw0MDMyMSw0MDMzMCw0MDMyNCw0MDMyOCw0MDMwNSw0MDMyMCw0MDMxMiw0MDMyNiw0MDMzMSw0MDMzMiw0MDMxNyw0MDI5OSw0MDMwOCw0MDMwOSw0MDMwNCw0MDI5Nyw0MDMyNSw0MDMwNyw0'@; put 'MDMxNSw0MDMyMiw0MDMwMyw0MDMxMyw0MDMxOSw0MDMyNyw0MDI5Niw0MDU5Niw0MDU5Myw0MDY0MCw0MDcwMCw0MDc0OSw0MDc2OCw0MDc2OSw0MDc4MSw0MDc5MCw0MDc5MSw0MDc5MiwyMTMwMywyMjE5NCwyMjE5NywyMjE5NSwyMjc1NSwyMzM2NSwyNDAwNiwyNDAwNywyNDMwMiwyNDMw'@; put 'MywyNDUxMiwyNDUxMywyNTA4MSwyNTg3OSwyNTg3OCwyNTg3NywyNTg3NSwyNjA3OSwyNjM0NCwyNjMzOSwyNjM0MCwyNzM3OSwyNzM3NiwyNzM3MCwyNzM2OCwyNzM4NSwyNzM3NywyNzM3NCwyNzM3NSwyODczMiwyODcyNSwyODcxOSwyODcyNywyODcyNCwyODcyMSwyODczOCwyODcyOCwy'@; put 'ODczNSwyODczMCwyODcyOSwyODczNiwyODczMSwyODcyMywyODczNywyOTIwMywyOTIwNCwyOTM1MiwyOTU2NSwyOTU2NCwyOTg4MiwzMDM3OSwzMDM3OCwzMDM5OCwzMDQ0NSwzMDY2OCwzMDY3MCwzMDY3MSwzMDY2OSwzMDcwNiwzMTAxMywzMTAxMSwzMTAxNSwzMTAxNiwzMTAxMiwzMTAx'@; put 'NywzMTE1NCwzMTM0MiwzMTM0MCwzMTM0MSwzMTQ3OSwzMTgxNywzMTgxNiwzMTgxOCwzMTgxNSwzMTgxMywzMTk4MiwzMjM3OSwzMjM4MiwzMjM4NSwzMjM4NCwzMjY5OCwzMjc2NywzMjg4OSwzMzI0MywzMzI0MSwzMzI5MSwzMzM4NCwzMzM4NSwzNDMzOCwzNDMwMywzNDMwNSwzNDMwMiwz'@; put 'NDMzMSwzNDMwNCwzNDI5NCwzNDMwOCwzNDMxMywzNDMwOSwzNDMxNiwzNDMwMSwzNDg0MSwzNDgzMiwzNDgzMywzNDgzOSwzNDgzNSwzNDgzOCwzNTE3MSwzNTE3NCwzNTI1NywzNTMxOSwzNTY4MCwzNTY5MCwzNTY3NywzNTY4OCwzNTY4MywzNTY4NSwzNTY4NywzNTY5MywzNjI3MCwzNjQ4'@; put 'NiwzNjQ4OCwzNjQ4NCwzNjY5NywzNjY5NCwzNjY5NSwzNjY5MywzNjY5NiwzNjY5OCwzNzAwNSwzNzE4NywzNzE4NSwzNzMwMywzNzMwMSwzNzI5OCwzNzI5OSwzNzg5OSwzNzkwNywzNzg4MywzNzkyMCwzNzkwMywzNzkwOCwzNzg4NiwzNzkwOSwzNzkwNCwzNzkyOCwzNzkxMywzNzkwMSwz'@; put 'Nzg3NywzNzg4OCwzNzg3OSwzNzg5NSwzNzkwMiwzNzkxMCwzNzkwNiwzNzg4MiwzNzg5NywzNzg4MCwzNzg5OCwzNzg4NywzNzg4NCwzNzkwMCwzNzg3OCwzNzkwNSwzNzg5NCwzODM2NiwzODM2OCwzODM2NywzODcwMiwzODcwMywzODg0MSwzODg0MywzODkwOSwzODkxMCwzOTAwOCwzOTAx'@; put 'MCwzOTAxMSwzOTAwNywzOTEwNSwzOTEwNiwzOTI0OCwzOTI0NiwzOTI1NywzOTI0NCwzOTI0MywzOTI1MSwzOTQ3NCwzOTQ3NiwzOTQ3MywzOTQ2OCwzOTQ2NiwzOTQ3OCwzOTQ2NSwzOTQ3MCwzOTQ4MCwzOTQ2OSwzOTYyMywzOTYyNiwzOTYyMiwzOTY5NiwzOTY5OCwzOTY5NywzOTk0Nywz'@; put 'OTk0NCwzOTkyNywzOTk0MSwzOTk1NCwzOTkyOCw0ZTQsMzk5NDMsMzk5NTAsMzk5NDIsMzk5NTksMzk5NTYsMzk5NDUsNDAzNTEsNDAzNDUsNDAzNTYsNDAzNDksNDAzMzgsNDAzNDQsNDAzMzYsNDAzNDcsNDAzNTIsNDAzNDAsNDAzNDgsNDAzNjIsNDAzNDMsNDAzNTMsNDAzNDYsNDAzNTQs'@; put 'NDAzNjAsNDAzNTAsNDAzNTUsNDAzODMsNDAzNjEsNDAzNDIsNDAzNTgsNDAzNTksNDA2MDEsNDA2MDMsNDA2MDIsNDA2NzcsNDA2NzYsNDA2NzksNDA2NzgsNDA3NTIsNDA3NTAsNDA3OTUsNDA4MDAsNDA3OTgsNDA3OTcsNDA3OTMsNDA4NDksMjA3OTQsMjA3OTMsMjExNDQsMjExNDMsMjIy'@; put 'MTEsMjIyMDUsMjIyMDYsMjMzNjgsMjMzNjcsMjQwMTEsMjQwMTUsMjQzMDUsMjUwODUsMjU4ODMsMjczOTQsMjczODgsMjczOTUsMjczODQsMjczOTIsMjg3MzksMjg3NDAsMjg3NDYsMjg3NDQsMjg3NDUsMjg3NDEsMjg3NDIsMjkyMTMsMjkyMTAsMjkyMDksMjk1NjYsMjk5NzUsMzAzMTQs'@; put 'MzA2NzIsMzEwMjEsMzEwMjUsMzEwMjMsMzE4MjgsMzE4MjcsMzE5ODYsMzIzOTQsMzIzOTEsMzIzOTIsMzIzOTUsMzIzOTAsMzIzOTcsMzI1ODksMzI2OTksMzI4MTYsMzMyNDUsMzQzMjgsMzQzNDYsMzQzNDIsMzQzMzUsMzQzMzksMzQzMzIsMzQzMjksMzQzNDMsMzQzNTAsMzQzMzcsMzQz'@; put 'MzYsMzQzNDUsMzQzMzQsMzQzNDEsMzQ4NTcsMzQ4NDUsMzQ4NDMsMzQ4NDgsMzQ4NTIsMzQ4NDQsMzQ4NTksMzQ4OTAsMzUxODEsMzUxNzcsMzUxODIsMzUxNzksMzUzMjIsMzU3MDUsMzU3MDQsMzU2NTMsMzU3MDYsMzU3MDcsMzYxMTIsMzYxMTYsMzYyNzEsMzY0OTQsMzY0OTIsMzY3MDIs'@; put 'MzY2OTksMzY3MDEsMzcxOTAsMzcxODgsMzcxODksMzczMDUsMzc5NTEsMzc5NDcsMzc5NDIsMzc5MjksMzc5NDksMzc5NDgsMzc5MzYsMzc5NDUsMzc5MzAsMzc5NDMsMzc5MzIsMzc5NTIsMzc5MzcsMzgzNzMsMzgzNzIsMzgzNzEsMzg3MDksMzg3MTQsMzg4NDcsMzg4ODEsMzkwMTIsMzkx'@; put 'MTMsMzkxMTAsMzkxMDQsMzkyNTYsMzkyNTQsMzk0ODEsMzk0ODUsMzk0OTQsMzk0OTIsMzk0OTAsMzk0ODksMzk0ODIsMzk0ODcsMzk2MjksMzk3MDEsMzk3MDMsMzk3MDQsMzk3MDIsMzk3MzgsMzk3NjIsMzk5NzksMzk5NjUsMzk5NjQsMzk5ODAsMzk5NzEsMzk5NzYsMzk5NzcsMzk5NzIs'@; put 'Mzk5NjksNDAzNzUsNDAzNzQsNDAzODAsNDAzODUsNDAzOTEsNDAzOTQsNDAzOTksNDAzODIsNDAzODksNDAzODcsNDAzNzksNDAzNzMsNDAzOTgsNDAzNzcsNDAzNzgsNDAzNjQsNDAzOTIsNDAzNjksNDAzNjUsNDAzOTYsNDAzNzEsNDAzOTcsNDAzNzAsNDA1NzAsNDA2MDQsNDA2ODMsNDA2'@; put 'ODYsNDA2ODUsNDA3MzEsNDA3MjgsNDA3MzAsNDA3NTMsNDA3ODIsNDA4MDUsNDA4MDQsNDA4NTAsMjAxNTMsMjIyMTQsMjIyMTMsMjIyMTksMjI4OTcsMjMzNzEsMjMzNzIsMjQwMjEsMjQwMTcsMjQzMDYsMjU4ODksMjU4ODgsMjU4OTQsMjU4OTAsMjc0MDMsMjc0MDAsMjc0MDEsMjc2NjEs'@; put 'Mjg3NTcsMjg3NTgsMjg3NTksMjg3NTQsMjkyMTQsMjkyMTUsMjkzNTMsMjk1NjcsMjk5MTIsMjk5MDksMjk5MTMsMjk5MTEsMzAzMTcsMzAzODEsMzEwMjksMzExNTYsMzEzNDQsMzEzNDUsMzE4MzEsMzE4MzYsMzE4MzMsMzE4MzUsMzE4MzQsMzE5ODgsMzE5ODUsMzI0MDEsMzI1OTEsMzI2'@; put 'NDcsMzMyNDYsMzMzODcsMzQzNTYsMzQzNTcsMzQzNTUsMzQzNDgsMzQzNTQsMzQzNTgsMzQ4NjAsMzQ4NTYsMzQ4NTQsMzQ4NTgsMzQ4NTMsMzUxODUsMzUyNjMsMzUyNjIsMzUzMjMsMzU3MTAsMzU3MTYsMzU3MTQsMzU3MTgsMzU3MTcsMzU3MTEsMzYxMTcsMzY1MDEsMzY1MDAsMzY1MDYs'@; put 'MzY0OTgsMzY0OTYsMzY1MDIsMzY1MDMsMzY3MDQsMzY3MDYsMzcxOTEsMzc5NjQsMzc5NjgsMzc5NjIsMzc5NjMsMzc5NjcsMzc5NTksMzc5NTcsMzc5NjAsMzc5NjEsMzc5NTgsMzg3MTksMzg4ODMsMzkwMTgsMzkwMTcsMzkxMTUsMzkyNTIsMzkyNTksMzk1MDIsMzk1MDcsMzk1MDgsMzk1'@; put 'MDAsMzk1MDMsMzk0OTYsMzk0OTgsMzk0OTcsMzk1MDYsMzk1MDQsMzk2MzIsMzk3MDUsMzk3MjMsMzk3MzksMzk3NjYsMzk3NjUsNDAwMDYsNDAwMDgsMzk5OTksNDAwMDQsMzk5OTMsMzk5ODcsNDAwMDEsMzk5OTYsMzk5OTEsMzk5ODgsMzk5ODYsMzk5OTcsMzk5OTAsNDA0MTEsNDA0MDIs'@; put 'NDA0MTQsNDA0MTAsNDAzOTUsNDA0MDAsNDA0MTIsNDA0MDEsNDA0MTUsNDA0MjUsNDA0MDksNDA0MDgsNDA0MDYsNDA0MzcsNDA0MDUsNDA0MTMsNDA2MzAsNDA2ODgsNDA3NTcsNDA3NTUsNDA3NTQsNDA3NzAsNDA4MTEsNDA4NTMsNDA4NjYsMjA3OTcsMjExNDUsMjI3NjAsMjI3NTksMjI4'@; put 'OTgsMjMzNzMsMjQwMjQsMzQ4NjMsMjQzOTksMjUwODksMjUwOTEsMjUwOTIsMjU4OTcsMjU4OTMsMjYwMDYsMjYzNDcsMjc0MDksMjc0MTAsMjc0MDcsMjc1OTQsMjg3NjMsMjg3NjIsMjkyMTgsMjk1NzAsMjk1NjksMjk1NzEsMzAzMjAsMzA2NzYsMzE4NDcsMzE4NDYsMzI0MDUsMzMzODgs'@; put 'MzQzNjIsMzQzNjgsMzQzNjEsMzQzNjQsMzQzNTMsMzQzNjMsMzQzNjYsMzQ4NjQsMzQ4NjYsMzQ4NjIsMzQ4NjcsMzUxOTAsMzUxODgsMzUxODcsMzUzMjYsMzU3MjQsMzU3MjYsMzU3MjMsMzU3MjAsMzU5MDksMzYxMjEsMzY1MDQsMzY3MDgsMzY3MDcsMzczMDgsMzc5ODYsMzc5NzMsMzc5'@; put 'ODEsMzc5NzUsMzc5ODIsMzg4NTIsMzg4NTMsMzg5MTIsMzk1MTAsMzk1MTMsMzk3MTAsMzk3MTEsMzk3MTIsNDAwMTgsNDAwMjQsNDAwMTYsNDAwMTAsNDAwMTMsNDAwMTEsNDAwMjEsNDAwMjUsNDAwMTIsNDAwMTQsNDA0NDMsNDA0MzksNDA0MzEsNDA0MTksNDA0MjcsNDA0NDAsNDA0MjAs'@; put 'NDA0MzgsNDA0MTcsNDA0MzAsNDA0MjIsNDA0MzQsNDA0MzIsNDA0MTgsNDA0MjgsNDA0MzYsNDA0MzUsNDA0MjQsNDA0MjksNDA2NDIsNDA2NTYsNDA2OTAsNDA2OTEsNDA3MTAsNDA3MzIsNDA3NjAsNDA3NTksNDA3NTgsNDA3NzEsNDA3ODMsNDA4MTcsNDA4MTYsNDA4MTQsNDA4MTUsMjIy'@; put 'MjcsMjIyMjEsMjMzNzQsMjM2NjEsMjU5MDEsMjYzNDksMjYzNTAsMjc0MTEsMjg3NjcsMjg3NjksMjg3NjUsMjg3NjgsMjkyMTksMjk5MTUsMjk5MjUsMzA2NzcsMzEwMzIsMzExNTksMzExNTgsMzE4NTAsMzI0MDcsMzI2NDksMzMzODksMzQzNzEsMzQ4NzIsMzQ4NzEsMzQ4NjksMzQ4OTEs'@; put 'MzU3MzIsMzU3MzMsMzY1MTAsMzY1MTEsMzY1MTIsMzY1MDksMzczMTAsMzczMDksMzczMTQsMzc5OTUsMzc5OTIsMzc5OTMsMzg2MjksMzg3MjYsMzg3MjMsMzg3MjcsMzg4NTUsMzg4ODUsMzk1MTgsMzk2MzcsMzk3NjksNDAwMzUsNDAwMzksNDAwMzgsNDAwMzQsNDAwMzAsNDAwMzIsNDA0'@; put 'NTAsNDA0NDYsNDA0NTUsNDA0NTEsNDA0NTQsNDA0NTMsNDA0NDgsNDA0NDksNDA0NTcsNDA0NDcsNDA0NDUsNDA0NTIsNDA2MDgsNDA3MzQsNDA3NzQsNDA4MjAsNDA4MjEsNDA4MjIsMjIyMjgsMjU5MDIsMjYwNDAsMjc0MTYsMjc0MTcsMjc0MTUsMjc0MTgsMjg3NzAsMjkyMjIsMjkzNTQs'@; put 'MzA2ODAsMzA2ODEsMzEwMzMsMzE4NDksMzE4NTEsMzE5OTAsMzI0MTAsMzI0MDgsMzI0MTEsMzI0MDksMzMyNDgsMzMyNDksMzQzNzQsMzQzNzUsMzQzNzYsMzUxOTMsMzUxOTQsMzUxOTYsMzUxOTUsMzUzMjcsMzU3MzYsMzU3MzcsMzY1MTcsMzY1MTYsMzY1MTUsMzc5OTgsMzc5OTcsMzc5'@; put 'OTksMzgwMDEsMzgwMDMsMzg3MjksMzkwMjYsMzkyNjMsNDAwNDAsNDAwNDYsNDAwNDUsNDA0NTksNDA0NjEsNDA0NjQsNDA0NjMsNDA0NjYsNDA0NjUsNDA2MDksNDA2OTMsNDA3MTMsNDA3NzUsNDA4MjQsNDA4MjcsNDA4MjYsNDA4MjUsMjIzMDIsMjg3NzQsMzE4NTUsMzQ4NzYsMzYyNzQs'@; put 'MzY1MTgsMzczMTUsMzgwMDQsMzgwMDgsMzgwMDYsMzgwMDUsMzk1MjAsNDAwNTIsNDAwNTEsNDAwNDksNDAwNTMsNDA0NjgsNDA0NjcsNDA2OTQsNDA3MTQsNDA4NjgsMjg3NzYsMjg3NzMsMzE5OTEsMzQ0MTAsMzQ4NzgsMzQ4NzcsMzQ4NzksMzU3NDIsMzU5OTYsMzY1MjEsMzY1NTMsMzg3'@; put 'MzEsMzkwMjcsMzkwMjgsMzkxMTYsMzkyNjUsMzkzMzksMzk1MjQsMzk1MjYsMzk1MjcsMzk3MTYsNDA0NjksNDA0NzEsNDA3NzYsMjUwOTUsMjc0MjIsMjkyMjMsMzQzODAsMzY1MjAsMzgwMTgsMzgwMTYsMzgwMTcsMzk1MjksMzk1MjgsMzk3MjYsNDA0NzMsMjkyMjUsMzQzNzksMzU3NDMs'@; put 'MzgwMTksNDAwNTcsNDA2MzEsMzAzMjUsMzk1MzEsNDAwNTgsNDA0NzcsMjg3NzcsMjg3NzgsNDA2MTIsNDA4MzAsNDA3NzcsNDA4NTYsMzA4NDksMzc1NjEsMzUwMjMsMjI3MTUsMjQ2NTgsMzE5MTEsMjMyOTAsOTU1Niw5NTc0LDk1NTksOTU2OCw5NTgwLDk1NzEsOTU2Miw5NTc3LDk1NjUs'@; put 'OTU1NCw5NTcyLDk1NTcsOTU2Niw5NTc4LDk1NjksOTU2MCw5NTc1LDk1NjMsOTU1NSw5NTczLDk1NTgsOTU2Nyw5NTc5LDk1NzAsOTU2MSw5NTc2LDk1NjQsOTU1Myw5NTUyLDk1ODEsOTU4Miw5NTg0LDk1ODMsNjU1MTcsMTMyNDIzLDM3NTk1LDEzMjU3NSwxNDczOTcsMzQxMjQsMTcwNzcs'@; put 'Mjk2NzksMjA5MTcsMTM4OTcsMTQ5ODI2LDE2NjM3MiwzNzcwMCwxMzc2OTEsMzM1MTgsMTQ2NjMyLDMwNzgwLDI2NDM2LDI1MzExLDE0OTgxMSwxNjYzMTQsMTMxNzQ0LDE1ODY0MywxMzU5NDEsMjAzOTUsMTQwNTI1LDIwNDg4LDE1OTAxNywxNjI0MzYsMTQ0ODk2LDE1MDE5MywxNDA1NjMs'@; put 'MjA1MjEsMTMxOTY2LDI0NDg0LDEzMTk2OCwxMzE5MTEsMjgzNzksMTMyMTI3LDIwNjA1LDIwNzM3LDEzNDM0LDIwNzUwLDM5MDIwLDE0MTQ3LDMzODE0LDE0OTkyNCwxMzIyMzEsMjA4MzIsMTQ0MzA4LDIwODQyLDEzNDE0MywxMzk1MTYsMTMxODEzLDE0MDU5MiwxMzI0OTQsMTQzOTIzLDEz'@; put 'NzYwMywyMzQyNiwzNDY4NSwxMzI1MzEsMTQ2NTg1LDIwOTE0LDIwOTIwLDQwMjQ0LDIwOTM3LDIwOTQzLDIwOTQ1LDE1NTgwLDIwOTQ3LDE1MDE4MiwyMDkxNSwyMDk2MiwyMTMxNCwyMDk3MywzMzc0MSwyNjk0MiwxNDUxOTcsMjQ0NDMsMjEwMDMsMjEwMzAsMjEwNTIsMjExNzMsMjEwNzks'@; put 'MjExNDAsMjExNzcsMjExODksMzE3NjUsMzQxMTQsMjEyMTYsMzQzMTcsMTU4NDgzLDIxMjUzLDE2NjYyMiwyMTgzMywyODM3NywxNDczMjgsMTMzNDYwLDE0NzQzNiwyMTI5OSwyMTMxNiwxMzQxMTQsMjc4NTEsMTM2OTk4LDI2NjUxLDI5NjUzLDI0NjUwLDE2MDQyLDE0NTQwLDEzNjkzNiwy'@; put 'OTE0OSwxNzU3MCwyMTM1NywyMTM2NCwxNjU1NDcsMjEzNzQsMjEzNzUsMTM2NTk4LDEzNjcyMywzMDY5NCwyMTM5NSwxNjY1NTUsMjE0MDgsMjE0MTksMjE0MjIsMjk2MDcsMTUzNDU4LDE2MjE3LDI5NTk2LDIxNDQxLDIxNDQ1LDI3NzIxLDIwMDQxLDIyNTI2LDIxNDY1LDE1MDE5LDEzNDAz'@; put 'MSwyMTQ3MiwxNDc0MzUsMTQyNzU1LDIxNDk0LDEzNDI2MywyMTUyMywyODc5MywyMTgwMywyNjE5OSwyNzk5NSwyMTYxMywxNTg1NDcsMTM0NTE2LDIxODUzLDIxNjQ3LDIxNjY4LDE4MzQyLDEzNjk3MywxMzQ4NzcsMTU3OTYsMTM0NDc3LDE2NjMzMiwxNDA5NTIsMjE4MzEsMTk2OTMsMjE1'@; put 'NTEsMjk3MTksMjE4OTQsMjE5MjksMjIwMjEsMTM3NDMxLDE0NzUxNCwxNzc0NiwxNDg1MzMsMjYyOTEsMTM1MzQ4LDIyMDcxLDI2MzE3LDE0NDAxMCwyNjI3NiwyNjI4NSwyMjA5MywyMjA5NSwzMDk2MSwyMjI1NywzODc5MSwyMTUwMiwyMjI3MiwyMjI1NSwyMjI1MywxNjY3NTgsMTM4NTks'@; put 'MTM1NzU5LDIyMzQyLDE0Nzg3NywyNzc1OCwyODgxMSwyMjMzOCwxNDAwMSwxNTg4NDYsMjI1MDIsMTM2MjE0LDIyNTMxLDEzNjI3NiwxNDgzMjMsMjI1NjYsMTUwNTE3LDIyNjIwLDIyNjk4LDEzNjY1LDIyNzUyLDIyNzQ4LDEzNTc0MCwyMjc3OSwyMzU1MSwyMjMzOSwxNzIzNjgsMTQ4MDg4'@; put 'LDM3ODQzLDEzNzI5LDIyODE1LDI2NzkwLDE0MDE5LDI4MjQ5LDEzNjc2NiwyMzA3NiwyMTg0MywxMzY4NTAsMzQwNTMsMjI5ODUsMTM0NDc4LDE1ODg0OSwxNTkwMTgsMTM3MTgwLDIzMDAxLDEzNzIxMSwxMzcxMzgsMTU5MTQyLDI4MDE3LDEzNzI1NiwxMzY5MTcsMjMwMzMsMTU5MzAxLDIz'@; put 'MjExLDIzMTM5LDE0MDU0LDE0OTkyOSwyMzE1OSwxNDA4OCwyMzE5MCwyOTc5NywyMzI1MSwxNTk2NDksMTQwNjI4LDE1NzQ5LDEzNzQ4OSwxNDEzMCwxMzY4ODgsMjQxOTUsMjEyMDAsMjM0MTQsMjU5OTIsMjM0MjAsMTYyMzE4LDE2Mzg4LDE4NTI1LDEzMTU4OCwyMzUwOSwyNDkyOCwxMzc3'@; put 'ODAsMTU0MDYwLDEzMjUxNywyMzUzOSwyMzQ1MywxOTcyOCwyMzU1NywxMzgwNTIsMjM1NzEsMjk2NDYsMjM1NzIsMTM4NDA1LDE1ODUwNCwyMzYyNSwxODY1MywyMzY4NSwyMzc4NSwyMzc5MSwyMzk0NywxMzg3NDUsMTM4ODA3LDIzODI0LDIzODMyLDIzODc4LDEzODkxNiwyMzczOCwyNDAy'@; put 'MywzMzUzMiwxNDM4MSwxNDk3NjEsMTM5MzM3LDEzOTYzNSwzMzQxNSwxNDM5MCwxNTI5OCwyNDExMCwyNzI3NCwyNDE4MSwyNDE4NiwxNDg2NjgsMTM0MzU1LDIxNDE0LDIwMTUxLDI0MjcyLDIxNDE2LDEzNzA3MywyNDA3MywyNDMwOCwxNjQ5OTQsMjQzMTMsMjQzMTUsMTQ0OTYsMjQzMTYs'@; put 'MjY2ODYsMzc5MTUsMjQzMzMsMTMxNTIxLDE5NDcwOCwxNTA3MCwxODYwNiwxMzU5OTQsMjQzNzgsMTU3ODMyLDE0MDI0MCwyNDQwOCwxNDA0MDEsMjQ0MTksMzg4NDUsMTU5MzQyLDI0NDM0LDM3Njk2LDE2NjQ1NCwyNDQ4NywyMzk5MCwxNTcxMSwxNTIxNDQsMTM5MTE0LDE1OTk5MiwxNDA5'@; put 'MDQsMzczMzQsMTMxNzQyLDE2NjQ0MSwyNDYyNSwyNjI0NSwxMzczMzUsMTQ2OTEsMTU4MTUsMTM4ODEsMjI0MTYsMTQxMjM2LDMxMDg5LDE1OTM2LDI0NzM0LDI0NzQwLDI0NzU1LDE0OTg5MCwxNDk5MDMsMTYyMzg3LDI5ODYwLDIwNzA1LDIzMjAwLDI0OTMyLDMzODI4LDI0ODk4LDE5NDcy'@; put 'NiwxNTk0NDIsMjQ5NjEsMjA5ODAsMTMyNjk0LDI0OTY3LDIzNDY2LDE0NzM4MywxNDE0MDcsMjUwNDMsMTY2ODEzLDE3MDMzMywyNTA0MCwxNDY0MiwxNDE2OTYsMTQxNTA1LDI0NjExLDI0OTI0LDI1ODg2LDI1NDgzLDEzMTM1MiwyNTI4NSwxMzcwNzIsMjUzMDEsMTQyODYxLDI1NDUyLDE0'@; put 'OTk4MywxNDg3MSwyNTY1NiwyNTU5MiwxMzYwNzgsMTM3MjEyLDI1NzQ0LDI4NTU0LDE0MjkwMiwzODkzMiwxNDc1OTYsMTUzMzczLDI1ODI1LDI1ODI5LDM4MDExLDE0OTUwLDI1NjU4LDE0OTM1LDI1OTMzLDI4NDM4LDE1MDA1NiwxNTAwNTEsMjU5ODksMjU5NjUsMjU5NTEsMTQzNDg2LDI2'@; put 'MDM3LDE0OTgyNCwxOTI1NSwyNjA2NSwxNjYwMCwxMzcyNTcsMjYwODAsMjYwODMsMjQ1NDMsMTQ0Mzg0LDI2MTM2LDE0Mzg2MywxNDM4NjQsMjYxODAsMTQzNzgwLDE0Mzc4MSwyNjE4NywxMzQ3NzMsMjYyMTUsMTUyMDM4LDI2MjI3LDI2MjI4LDEzODgxMywxNDM5MjEsMTY1MzY0LDE0Mzgx'@; put 'NiwxNTIzMzksMzA2NjEsMTQxNTU5LDM5MzMyLDI2MzcwLDE0ODM4MCwxNTAwNDksMTUxNDcsMjcxMzAsMTQ1MzQ2LDI2NDYyLDI2NDcxLDI2NDY2LDE0NzkxNywxNjgxNzMsMjY1ODMsMTc2NDEsMjY2NTgsMjgyNDAsMzc0MzYsMjY2MjUsMTQ0MzU4LDE1OTEzNiwyNjcxNywxNDQ0OTUsMjcx'@; put 'MDUsMjcxNDcsMTY2NjIzLDI2OTk1LDI2ODE5LDE0NDg0NSwyNjg4MSwyNjg4MCwxNTY2NiwxNDg0OSwxNDQ5NTYsMTUyMzIsMjY1NDAsMjY5NzcsMTY2NDc0LDE3MTQ4LDI2OTM0LDI3MDMyLDE1MjY1LDEzMjA0MSwzMzYzNSwyMDYyNCwyNzEyOSwxNDQ5ODUsMTM5NTYyLDI3MjA1LDE0NTE1'@; put 'NSwyNzI5MywxNTM0NywyNjU0NSwyNzMzNiwxNjgzNDgsMTUzNzMsMjc0MjEsMTMzNDExLDI0Nzk4LDI3NDQ1LDI3NTA4LDE0MTI2MSwyODM0MSwxNDYxMzksMTMyMDIxLDEzNzU2MCwxNDE0NCwyMTUzNywxNDYyNjYsMjc2MTcsMTQ3MTk2LDI3NjEyLDI3NzAzLDE0MDQyNywxNDk3NDUsMTU4'@; put 'NTQ1LDI3NzM4LDMzMzE4LDI3NzY5LDE0Njg3NiwxNzYwNSwxNDY4NzcsMTQ3ODc2LDE0OTc3MiwxNDk3NjAsMTQ2NjMzLDE0MDUzLDE1NTk1LDEzNDQ1MCwzOTgxMSwxNDM4NjUsMTQwNDMzLDMyNjU1LDI2Njc5LDE1OTAxMywxNTkxMzcsMTU5MjExLDI4MDU0LDI3OTk2LDI4Mjg0LDI4NDIw'@; put 'LDE0OTg4NywxNDc1ODksMTU5MzQ2LDM0MDk5LDE1OTYwNCwyMDkzNSwyNzgwNCwyODE4OSwzMzgzOCwxNjY2ODksMjgyMDcsMTQ2OTkxLDI5Nzc5LDE0NzMzMCwzMTE4MCwyODIzOSwyMzE4NSwxNDM0MzUsMjg2NjQsMTQwOTMsMjg1NzMsMTQ2OTkyLDI4NDEwLDEzNjM0MywxNDc1MTcsMTc3'@; put 'NDksMzc4NzIsMjg0ODQsMjg1MDgsMTU2OTQsMjg1MzIsMTY4MzA0LDE1Njc1LDI4NTc1LDE0Nzc4MCwyODYyNywxNDc2MDEsMTQ3Nzk3LDE0NzUxMywxNDc0NDAsMTQ3MzgwLDE0Nzc3NSwyMDk1OSwxNDc3OTgsMTQ3Nzk5LDE0Nzc3NiwxNTYxMjUsMjg3NDcsMjg3OTgsMjg4MzksMjg4MDEs'@; put 'Mjg4NzYsMjg4ODUsMjg4ODYsMjg4OTUsMTY2NDQsMTU4NDgsMjkxMDgsMjkwNzgsMTQ4MDg3LDI4OTcxLDI4OTk3LDIzMTc2LDI5MDAyLDI5MDM4LDIzNzA4LDE0ODMyNSwyOTAwNywzNzczMCwxNDgxNjEsMjg5NzIsMTQ4NTcwLDE1MDA1NSwxNTAwNTAsMjkxMTQsMTY2ODg4LDI4ODYxLDI5'@; put 'MTk4LDM3OTU0LDI5MjA1LDIyODAxLDM3OTU1LDI5MjIwLDM3Njk3LDE1MzA5MywyOTIzMCwyOTI0OCwxNDk4NzYsMjY4MTMsMjkyNjksMjkyNzEsMTU5NTcsMTQzNDI4LDI2NjM3LDI4NDc3LDI5MzE0LDI5NDgyLDI5NDgzLDE0OTUzOSwxNjU5MzEsMTg2NjksMTY1ODkyLDI5NDgwLDI5NDg2'@; put 'LDI5NjQ3LDI5NjEwLDEzNDIwMiwxNTgyNTQsMjk2NDEsMjk3NjksMTQ3OTM4LDEzNjkzNSwxNTAwNTIsMjYxNDcsMTQwMjEsMTQ5OTQzLDE0OTkwMSwxNTAwMTEsMjk2ODcsMjk3MTcsMjY4ODMsMTUwMDU0LDI5NzUzLDEzMjU0NywxNjA4NywyOTc4OCwxNDE0ODUsMjk3OTIsMTY3NjAyLDI5'@; put 'NzY3LDI5NjY4LDI5ODE0LDMzNzIxLDI5ODA0LDE0MTI4LDI5ODEyLDM3ODczLDI3MTgwLDI5ODI2LDE4NzcxLDE1MDE1NiwxNDc4MDcsMTUwMTM3LDE2Njc5OSwyMzM2NiwxNjY5MTUsMTM3Mzc0LDI5ODk2LDEzNzYwOCwyOTk2NiwyOTkyOSwyOTk4MiwxNjc2NDEsMTM3ODAzLDIzNTExLDE2'@; put 'NzU5NiwzNzc2NSwzMDAyOSwzMDAyNiwzMDA1NSwzMDA2MiwxNTE0MjYsMTYxMzIsMTUwODAzLDMwMDk0LDI5Nzg5LDMwMTEwLDMwMTMyLDMwMjEwLDMwMjUyLDMwMjg5LDMwMjg3LDMwMzE5LDMwMzI2LDE1NjY2MSwzMDM1MiwzMzI2MywxNDMyOCwxNTc5NjksMTU3OTY2LDMwMzY5LDMwMzcz'@; put 'LDMwMzkxLDMwNDEyLDE1OTY0NywzMzg5MCwxNTE3MDksMTUxOTMzLDEzODc4MCwzMDQ5NCwzMDUwMiwzMDUyOCwyNTc3NSwxNTIwOTYsMzA1NTIsMTQ0MDQ0LDMwNjM5LDE2NjI0NCwxNjYyNDgsMTM2ODk3LDMwNzA4LDMwNzI5LDEzNjA1NCwxNTAwMzQsMjY4MjYsMzA4OTUsMzA5MTksMzA5'@; put 'MzEsMzg1NjUsMzEwMjIsMTUzMDU2LDMwOTM1LDMxMDI4LDMwODk3LDE2MTI5MiwzNjc5MiwzNDk0OCwxNjY2OTksMTU1Nzc5LDE0MDgyOCwzMTExMCwzNTA3MiwyNjg4MiwzMTEwNCwxNTM2ODcsMzExMzMsMTYyNjE3LDMxMDM2LDMxMTQ1LDI4MjAyLDE2MDAzOCwxNjA0MCwzMTE3NCwxNjgy'@; put 'MDUsMzExODhdLCJldWMta3IiOls0NDAzNCw0NDAzNSw0NDAzNyw0NDAzOCw0NDA0Myw0NDA0NCw0NDA0NSw0NDA0Niw0NDA0Nyw0NDA1Niw0NDA2Miw0NDA2Myw0NDA2NSw0NDA2Niw0NDA2Nyw0NDA2OSw0NDA3MCw0NDA3MSw0NDA3Miw0NDA3Myw0NDA3NCw0NDA3NSw0NDA3OCw0NDA4Miw0'@; put 'NDA4Myw0NDA4NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDA4NSw0NDA4Niw0NDA4Nyw0NDA5MCw0NDA5MSw0NDA5Myw0NDA5NCw0NDA5NSw0NDA5Nyw0NDA5OCw0NDA5OSw0NDEwMCw0NDEwMSw0NDEwMiw0NDEwMyw0NDEwNCw0NDEwNSw0NDEwNiw0NDEwOCw0NDExMCw0NDEx'@; put 'MSw0NDExMiw0NDExMyw0NDExNCw0NDExNSw0NDExNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDExOCw0NDExOSw0NDEyMSw0NDEyMiw0NDEyMyw0NDEyNSw0NDEyNiw0NDEyNyw0NDEyOCw0NDEyOSw0NDEzMCw0NDEzMSw0NDEzMiw0NDEzMyw0NDEzNCw0NDEzNSw0NDEzNiw0'@; put 'NDEzNyw0NDEzOCw0NDEzOSw0NDE0MCw0NDE0MSw0NDE0Miw0NDE0Myw0NDE0Niw0NDE0Nyw0NDE0OSw0NDE1MCw0NDE1Myw0NDE1NSw0NDE1Niw0NDE1Nyw0NDE1OCw0NDE1OSw0NDE2Miw0NDE2Nyw0NDE2OCw0NDE3Myw0NDE3NCw0NDE3NSw0NDE3Nyw0NDE3OCw0NDE3OSw0NDE4MSw0NDE4'@; put 'Miw0NDE4Myw0NDE4NCw0NDE4NSw0NDE4Niw0NDE4Nyw0NDE5MCw0NDE5NCw0NDE5NSw0NDE5Niw0NDE5Nyw0NDE5OCw0NDE5OSw0NDIwMyw0NDIwNSw0NDIwNiw0NDIwOSw0NDIxMCw0NDIxMSw0NDIxMiw0NDIxMyw0NDIxNCw0NDIxNSw0NDIxOCw0NDIyMiw0NDIyMyw0NDIyNCw0NDIyNiw0'@; put 'NDIyNyw0NDIyOSw0NDIzMCw0NDIzMSw0NDIzMyw0NDIzNCw0NDIzNSw0NDIzNyw0NDIzOCw0NDIzOSw0NDI0MCw0NDI0MSw0NDI0Miw0NDI0Myw0NDI0NCw0NDI0Niw0NDI0OCw0NDI0OSw0NDI1MCw0NDI1MSw0NDI1Miw0NDI1Myw0NDI1NCw0NDI1NSw0NDI1OCw0NDI1OSw0NDI2MSw0NDI2'@; put 'Miw0NDI2NSw0NDI2Nyw0NDI2OSw0NDI3MCw0NDI3NCw0NDI3Niw0NDI3OSw0NDI4MCw0NDI4MSw0NDI4Miw0NDI4Myw0NDI4Niw0NDI4Nyw0NDI4OSw0NDI5MCw0NDI5MSw0NDI5Myw0NDI5NSw0NDI5Niw0NDI5Nyw0NDI5OCw0NDI5OSw0NDMwMiw0NDMwNCw0NDMwNiw0NDMwNyw0NDMwOCw0'@; put 'NDMwOSw0NDMxMCw0NDMxMSw0NDMxMyw0NDMxNCw0NDMxNSw0NDMxNyw0NDMxOCw0NDMxOSw0NDMyMSw0NDMyMiw0NDMyMyw0NDMyNCw0NDMyNSw0NDMyNiw0NDMyNyw0NDMyOCw0NDMzMCw0NDMzMSw0NDMzNCw0NDMzNSw0NDMzNiw0NDMzNyw0NDMzOCw0NDMzOSxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCw0NDM0Miw0NDM0Myw0NDM0NSw0NDM0Niw0NDM0Nyw0NDM0OSw0NDM1MCw0NDM1MSw0NDM1Miw0NDM1Myw0NDM1NCw0NDM1NSw0NDM1OCw0NDM2MCw0NDM2Miw0NDM2Myw0NDM2NCw0NDM2NSw0NDM2Niw0NDM2Nyw0NDM2OSw0NDM3MCw0NDM3MSw0NDM3Myw0NDM3NCw0'@; put 'NDM3NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDM3Nyw0NDM3OCw0NDM3OSw0NDM4MCw0NDM4MSw0NDM4Miw0NDM4Myw0NDM4NCw0NDM4Niw0NDM4OCw0NDM4OSw0NDM5MCw0NDM5MSw0NDM5Miw0NDM5Myw0NDM5NCw0NDM5NSw0NDM5OCw0NDM5OSw0NDQwMSw0NDQwMiw0NDQw'@; put 'Nyw0NDQwOCw0NDQwOSw0NDQxMCw0NDQxNCw0NDQxNiw0NDQxOSw0NDQyMCw0NDQyMSw0NDQyMiw0NDQyMyw0NDQyNiw0NDQyNyw0NDQyOSw0NDQzMCw0NDQzMSw0NDQzMyw0NDQzNCw0NDQzNSw0NDQzNiw0NDQzNyw0NDQzOCw0NDQzOSw0NDQ0MCw0NDQ0MSw0NDQ0Miw0NDQ0Myw0NDQ0Niw0'@; put 'NDQ0Nyw0NDQ0OCw0NDQ0OSw0NDQ1MCw0NDQ1MSw0NDQ1Myw0NDQ1NCw0NDQ1NSw0NDQ1Niw0NDQ1Nyw0NDQ1OCw0NDQ1OSw0NDQ2MCw0NDQ2MSw0NDQ2Miw0NDQ2Myw0NDQ2NCw0NDQ2NSw0NDQ2Niw0NDQ2Nyw0NDQ2OCw0NDQ2OSw0NDQ3MCw0NDQ3Miw0NDQ3Myw0NDQ3NCw0NDQ3NSw0NDQ3'@; put 'Niw0NDQ3Nyw0NDQ3OCw0NDQ3OSw0NDQ4Miw0NDQ4Myw0NDQ4NSw0NDQ4Niw0NDQ4Nyw0NDQ4OSw0NDQ5MCw0NDQ5MSw0NDQ5Miw0NDQ5Myw0NDQ5NCw0NDQ5NSw0NDQ5OCw0NDUwMCw0NDUwMSw0NDUwMiw0NDUwMyw0NDUwNCw0NDUwNSw0NDUwNiw0NDUwNyw0NDUwOSw0NDUxMCw0NDUxMSw0'@; put 'NDUxMyw0NDUxNCw0NDUxNSw0NDUxNyw0NDUxOCw0NDUxOSw0NDUyMCw0NDUyMSw0NDUyMiw0NDUyMyw0NDUyNCw0NDUyNSw0NDUyNiw0NDUyNyw0NDUyOCw0NDUyOSw0NDUzMCw0NDUzMSw0NDUzMiw0NDUzMyw0NDUzNCw0NDUzNSw0NDUzOCw0NDUzOSw0NDU0MSw0NDU0Miw0NDU0Niw0NDU0'@; put 'Nyw0NDU0OCw0NDU0OSw0NDU1MCw0NDU1MSw0NDU1NCw0NDU1Niw0NDU1OCw0NDU1OSw0NDU2MCw0NDU2MSw0NDU2Miw0NDU2Myw0NDU2NSw0NDU2Niw0NDU2Nyw0NDU2OCw0NDU2OSw0NDU3MCw0NDU3MSw0NDU3MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDU3Myw0NDU3NCw0'@; put 'NDU3NSw0NDU3Niw0NDU3Nyw0NDU3OCw0NDU3OSw0NDU4MCw0NDU4MSw0NDU4Miw0NDU4Myw0NDU4NCw0NDU4NSw0NDU4Niw0NDU4Nyw0NDU4OCw0NDU4OSw0NDU5MCw0NDU5MSw0NDU5NCw0NDU5NSw0NDU5Nyw0NDU5OCw0NDYwMSw0NDYwMyw0NDYwNCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCw0NDYwNSw0NDYwNiw0NDYwNyw0NDYxMCw0NDYxMiw0NDYxNSw0NDYxNiw0NDYxNyw0NDYxOSw0NDYyMyw0NDYyNSw0NDYyNiw0NDYyNyw0NDYyOSw0NDYzMSw0NDYzMiw0NDYzMyw0NDYzNCw0NDYzNSw0NDYzOCw0NDY0Miw0NDY0Myw0NDY0NCw0NDY0Niw0NDY0Nyw0NDY1MCw0'@; put 'NDY1MSw0NDY1Myw0NDY1NCw0NDY1NSw0NDY1Nyw0NDY1OCw0NDY1OSw0NDY2MCw0NDY2MSw0NDY2Miw0NDY2Myw0NDY2Niw0NDY3MCw0NDY3MSw0NDY3Miw0NDY3Myw0NDY3NCw0NDY3NSw0NDY3OCw0NDY3OSw0NDY4MCw0NDY4MSw0NDY4Miw0NDY4Myw0NDY4NSw0NDY4Niw0NDY4Nyw0NDY4'@; put 'OCw0NDY4OSw0NDY5MCw0NDY5MSw0NDY5Miw0NDY5Myw0NDY5NCw0NDY5NSw0NDY5Niw0NDY5Nyw0NDY5OCw0NDY5OSw0NDcwMCw0NDcwMSw0NDcwMiw0NDcwMyw0NDcwNCw0NDcwNSw0NDcwNiw0NDcwNyw0NDcwOCw0NDcwOSw0NDcxMCw0NDcxMSw0NDcxMiw0NDcxMyw0NDcxNCw0NDcxNSw0'@; put 'NDcxNiw0NDcxNyw0NDcxOCw0NDcxOSw0NDcyMCw0NDcyMSw0NDcyMiw0NDcyMyw0NDcyNCw0NDcyNSw0NDcyNiw0NDcyNyw0NDcyOCw0NDcyOSw0NDczMCw0NDczMSw0NDczNSw0NDczNyw0NDczOCw0NDczOSw0NDc0MSw0NDc0Miw0NDc0Myw0NDc0NCw0NDc0NSw0NDc0Niw0NDc0Nyw0NDc1'@; put 'MCw0NDc1NCw0NDc1NSw0NDc1Niw0NDc1Nyw0NDc1OCw0NDc1OSw0NDc2Miw0NDc2Myw0NDc2NSw0NDc2Niw0NDc2Nyw0NDc2OCw0NDc2OSw0NDc3MCw0NDc3MSw0NDc3Miw0NDc3Myw0NDc3NCw0NDc3NSw0NDc3Nyw0NDc3OCw0NDc4MCw0NDc4Miw0NDc4Myw0NDc4NCw0NDc4NSw0NDc4Niw0'@; put 'NDc4Nyw0NDc4OSw0NDc5MCw0NDc5MSw0NDc5Myw0NDc5NCw0NDc5NSw0NDc5Nyw0NDc5OCw0NDc5OSw0NDgwMCw0NDgwMSw0NDgwMiw0NDgwMyw0NDgwNCw0NDgwNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDgwNiw0NDgwOSw0NDgxMCw0NDgxMSw0NDgxMiw0NDgxNCw0NDgx'@; put 'NSw0NDgxNyw0NDgxOCw0NDgxOSw0NDgyMCw0NDgyMSw0NDgyMiw0NDgyMyw0NDgyNCw0NDgyNSw0NDgyNiw0NDgyNyw0NDgyOCw0NDgyOSw0NDgzMCw0NDgzMSw0NDgzMiw0NDgzMyw0NDgzNCw0NDgzNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDgzNiw0NDgzNyw0NDgzOCw0'@; put 'NDgzOSw0NDg0MCw0NDg0MSw0NDg0Miw0NDg0Myw0NDg0Niw0NDg0Nyw0NDg0OSw0NDg1MSw0NDg1Myw0NDg1NCw0NDg1NSw0NDg1Niw0NDg1Nyw0NDg1OCw0NDg1OSw0NDg2Miw0NDg2NCw0NDg2OCw0NDg2OSw0NDg3MCw0NDg3MSw0NDg3NCw0NDg3NSw0NDg3Niw0NDg3Nyw0NDg3OCw0NDg3'@; put 'OSw0NDg4MSw0NDg4Miw0NDg4Myw0NDg4NCw0NDg4NSw0NDg4Niw0NDg4Nyw0NDg4OCw0NDg4OSw0NDg5MCw0NDg5MSw0NDg5NCw0NDg5NSw0NDg5Niw0NDg5Nyw0NDg5OCw0NDg5OSw0NDkwMiw0NDkwMyw0NDkwNCw0NDkwNSw0NDkwNiw0NDkwNyw0NDkwOCw0NDkwOSw0NDkxMCw0NDkxMSw0'@; put 'NDkxMiw0NDkxMyw0NDkxNCw0NDkxNSw0NDkxNiw0NDkxNyw0NDkxOCw0NDkxOSw0NDkyMCw0NDkyMiw0NDkyMyw0NDkyNCw0NDkyNSw0NDkyNiw0NDkyNyw0NDkyOSw0NDkzMCw0NDkzMSw0NDkzMyw0NDkzNCw0NDkzNSw0NDkzNyw0NDkzOCw0NDkzOSw0NDk0MCw0NDk0MSw0NDk0Miw0NDk0'@; put 'Myw0NDk0Niw0NDk0Nyw0NDk0OCw0NDk1MCw0NDk1MSw0NDk1Miw0NDk1Myw0NDk1NCw0NDk1NSw0NDk1Nyw0NDk1OCw0NDk1OSw0NDk2MCw0NDk2MSw0NDk2Miw0NDk2Myw0NDk2NCw0NDk2NSw0NDk2Niw0NDk2Nyw0NDk2OCw0NDk2OSw0NDk3MCw0NDk3MSw0NDk3Miw0NDk3Myw0NDk3NCw0'@; put 'NDk3NSw0NDk3Niw0NDk3Nyw0NDk3OCw0NDk3OSw0NDk4MCw0NDk4MSw0NDk4Miw0NDk4Myw0NDk4Niw0NDk4Nyw0NDk4OSw0NDk5MCw0NDk5MSw0NDk5Myw0NDk5NCw0NDk5NSw0NDk5Niw0NDk5Nyw0NDk5OCw0NTAwMiw0NTAwNCw0NTAwNyw0NTAwOCw0NTAwOSw0NTAxMCw0NTAxMSw0NTAx'@; put 'Myw0NTAxNCw0NTAxNSw0NTAxNiw0NTAxNyw0NTAxOCw0NTAxOSw0NTAyMSw0NTAyMiw0NTAyMyw0NTAyNCw0NTAyNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTAyNiw0NTAyNyw0NTAyOCw0NTAyOSw0NTAzMCw0NTAzMSw0NTAzNCw0NTAzNSw0NTAzNiw0NTAzNyw0NTAzOCw0'@; put 'NTAzOSw0NTA0Miw0NTA0Myw0NTA0NSw0NTA0Niw0NTA0Nyw0NTA0OSw0NTA1MCw0NTA1MSw0NTA1Miw0NTA1Myw0NTA1NCw0NTA1NSw0NTA1OCw0NTA1OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTA2MSw0NTA2Miw0NTA2Myw0NTA2NCw0NTA2NSw0NTA2Niw0NTA2Nyw0NTA2'@; put 'OSw0NTA3MCw0NTA3MSw0NTA3Myw0NTA3NCw0NTA3NSw0NTA3Nyw0NTA3OCw0NTA3OSw0NTA4MCw0NTA4MSw0NTA4Miw0NTA4Myw0NTA4Niw0NTA4Nyw0NTA4OCw0NTA4OSw0NTA5MCw0NTA5MSw0NTA5Miw0NTA5Myw0NTA5NCw0NTA5NSw0NTA5Nyw0NTA5OCw0NTA5OSw0NTEwMCw0NTEwMSw0'@; put 'NTEwMiw0NTEwMyw0NTEwNCw0NTEwNSw0NTEwNiw0NTEwNyw0NTEwOCw0NTEwOSw0NTExMCw0NTExMSw0NTExMiw0NTExMyw0NTExNCw0NTExNSw0NTExNiw0NTExNyw0NTExOCw0NTExOSw0NTEyMCw0NTEyMSw0NTEyMiw0NTEyMyw0NTEyNiw0NTEyNyw0NTEyOSw0NTEzMSw0NTEzMyw0NTEz'@; put 'NSw0NTEzNiw0NTEzNyw0NTEzOCw0NTE0Miw0NTE0NCw0NTE0Niw0NTE0Nyw0NTE0OCw0NTE1MCw0NTE1MSw0NTE1Miw0NTE1Myw0NTE1NCw0NTE1NSw0NTE1Niw0NTE1Nyw0NTE1OCw0NTE1OSw0NTE2MCw0NTE2MSw0NTE2Miw0NTE2Myw0NTE2NCw0NTE2NSw0NTE2Niw0NTE2Nyw0NTE2OCw0'@; put 'NTE2OSw0NTE3MCw0NTE3MSw0NTE3Miw0NTE3Myw0NTE3NCw0NTE3NSw0NTE3Niw0NTE3Nyw0NTE3OCw0NTE3OSw0NTE4Miw0NTE4Myw0NTE4NSw0NTE4Niw0NTE4Nyw0NTE4OSw0NTE5MCw0NTE5MSw0NTE5Miw0NTE5Myw0NTE5NCw0NTE5NSw0NTE5OCw0NTIwMCw0NTIwMiw0NTIwMyw0NTIw'@; put 'NCw0NTIwNSw0NTIwNiw0NTIwNyw0NTIxMSw0NTIxMyw0NTIxNCw0NTIxOSw0NTIyMCw0NTIyMSw0NTIyMiw0NTIyMyw0NTIyNiw0NTIzMiw0NTIzNCw0NTIzOCw0NTIzOSw0NTI0MSw0NTI0Miw0NTI0Myw0NTI0NSw0NTI0Niw0NTI0Nyw0NTI0OCw0NTI0OSw0NTI1MCw0NTI1MSw0NTI1NCw0'@; put 'NTI1OCw0NTI1OSw0NTI2MCw0NTI2MSw0NTI2Miw0NTI2Myw0NTI2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTI2Nyw0NTI2OSw0NTI3MCw0NTI3MSw0NTI3Myw0NTI3NCw0NTI3NSw0NTI3Niw0NTI3Nyw0NTI3OCw0NTI3OSw0NTI4MSw0NTI4Miw0NTI4Myw0NTI4NCw0NTI4'@; put 'Niw0NTI4Nyw0NTI4OCw0NTI4OSw0NTI5MCw0NTI5MSw0NTI5Miw0NTI5Myw0NTI5NCw0NTI5NSw0NTI5NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTI5Nyw0NTI5OCw0NTI5OSw0NTMwMCw0NTMwMSw0NTMwMiw0NTMwMyw0NTMwNCw0NTMwNSw0NTMwNiw0NTMwNyw0NTMwOCw0'@; put 'NTMwOSw0NTMxMCw0NTMxMSw0NTMxMiw0NTMxMyw0NTMxNCw0NTMxNSw0NTMxNiw0NTMxNyw0NTMxOCw0NTMxOSw0NTMyMiw0NTMyNSw0NTMyNiw0NTMyNyw0NTMyOSw0NTMzMiw0NTMzMyw0NTMzNCw0NTMzNSw0NTMzOCw0NTM0Miw0NTM0Myw0NTM0NCw0NTM0NSw0NTM0Niw0NTM1MCw0NTM1'@; put 'MSw0NTM1Myw0NTM1NCw0NTM1NSw0NTM1Nyw0NTM1OCw0NTM1OSw0NTM2MCw0NTM2MSw0NTM2Miw0NTM2Myw0NTM2Niw0NTM3MCw0NTM3MSw0NTM3Miw0NTM3Myw0NTM3NCw0NTM3NSw0NTM3OCw0NTM3OSw0NTM4MSw0NTM4Miw0NTM4Myw0NTM4NSw0NTM4Niw0NTM4Nyw0NTM4OCw0NTM4OSw0'@; put 'NTM5MCw0NTM5MSw0NTM5NCw0NTM5NSw0NTM5OCw0NTM5OSw0NTQwMSw0NTQwMiw0NTQwMyw0NTQwNSw0NTQwNiw0NTQwNyw0NTQwOSw0NTQxMCw0NTQxMSw0NTQxMiw0NTQxMyw0NTQxNCw0NTQxNSw0NTQxNiw0NTQxNyw0NTQxOCw0NTQxOSw0NTQyMCw0NTQyMSw0NTQyMiw0NTQyMyw0NTQy'@; put 'NCw0NTQyNSw0NTQyNiw0NTQyNyw0NTQyOCw0NTQyOSw0NTQzMCw0NTQzMSw0NTQzNCw0NTQzNSw0NTQzNyw0NTQzOCw0NTQzOSw0NTQ0MSw0NTQ0Myw0NTQ0NCw0NTQ0NSw0NTQ0Niw0NTQ0Nyw0NTQ1MCw0NTQ1Miw0NTQ1NCw0NTQ1NSw0NTQ1Niw0NTQ1Nyw0NTQ2MSw0NTQ2Miw0NTQ2Myw0'@; put 'NTQ2NSw0NTQ2Niw0NTQ2Nyw0NTQ2OSw0NTQ3MCw0NTQ3MSw0NTQ3Miw0NTQ3Myw0NTQ3NCw0NTQ3NSw0NTQ3Niw0NTQ3Nyw0NTQ3OCw0NTQ3OSw0NTQ4MSw0NTQ4Miw0NTQ4Myw0NTQ4NCw0NTQ4NSw0NTQ4Niw0NTQ4Nyw0NTQ4OCw0NTQ4OSw0NTQ5MCw0NTQ5MSw0NTQ5Miw0NTQ5Myw0NTQ5'@; put 'NCw0NTQ5NSw0NTQ5NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTQ5Nyw0NTQ5OCw0NTQ5OSw0NTUwMCw0NTUwMSw0NTUwMiw0NTUwMyw0NTUwNCw0NTUwNSw0NTUwNiw0NTUwNyw0NTUwOCw0NTUwOSw0NTUxMCw0NTUxMSw0NTUxMiw0NTUxMyw0NTUxNCw0NTUxNSw0NTUxNyw0'@; put 'NTUxOCw0NTUxOSw0NTUyMSw0NTUyMiw0NTUyMyw0NTUyNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTUyNiw0NTUyNyw0NTUyOCw0NTUyOSw0NTUzMCw0NTUzMSw0NTUzNCw0NTUzNiw0NTUzNyw0NTUzOCw0NTUzOSw0NTU0MCw0NTU0MSw0NTU0Miw0NTU0Myw0NTU0Niw0NTU0'@; put 'Nyw0NTU0OSw0NTU1MCw0NTU1MSw0NTU1Myw0NTU1NCw0NTU1NSw0NTU1Niw0NTU1Nyw0NTU1OCw0NTU1OSw0NTU2MCw0NTU2Miw0NTU2NCw0NTU2Niw0NTU2Nyw0NTU2OCw0NTU2OSw0NTU3MCw0NTU3MSw0NTU3NCw0NTU3NSw0NTU3Nyw0NTU3OCw0NTU4MSw0NTU4Miw0NTU4Myw0NTU4NCw0'@; put 'NTU4NSw0NTU4Niw0NTU4Nyw0NTU5MCw0NTU5Miw0NTU5NCw0NTU5NSw0NTU5Niw0NTU5Nyw0NTU5OCw0NTU5OSw0NTYwMSw0NTYwMiw0NTYwMyw0NTYwNCw0NTYwNSw0NTYwNiw0NTYwNyw0NTYwOCw0NTYwOSw0NTYxMCw0NTYxMSw0NTYxMiw0NTYxMyw0NTYxNCw0NTYxNSw0NTYxNiw0NTYx'@; put 'Nyw0NTYxOCw0NTYxOSw0NTYyMSw0NTYyMiw0NTYyMyw0NTYyNCw0NTYyNSw0NTYyNiw0NTYyNyw0NTYyOSw0NTYzMCw0NTYzMSw0NTYzMiw0NTYzMyw0NTYzNCw0NTYzNSw0NTYzNiw0NTYzNyw0NTYzOCw0NTYzOSw0NTY0MCw0NTY0MSw0NTY0Miw0NTY0Myw0NTY0NCw0NTY0NSw0NTY0Niw0'@; put 'NTY0Nyw0NTY0OCw0NTY0OSw0NTY1MCw0NTY1MSw0NTY1Miw0NTY1Myw0NTY1NCw0NTY1NSw0NTY1Nyw0NTY1OCw0NTY1OSw0NTY2MSw0NTY2Miw0NTY2Myw0NTY2NSw0NTY2Niw0NTY2Nyw0NTY2OCw0NTY2OSw0NTY3MCw0NTY3MSw0NTY3NCw0NTY3NSw0NTY3Niw0NTY3Nyw0NTY3OCw0NTY3'@; put 'OSw0NTY4MCw0NTY4MSw0NTY4Miw0NTY4Myw0NTY4Niw0NTY4Nyw0NTY4OCw0NTY4OSw0NTY5MCw0NTY5MSw0NTY5Myw0NTY5NCw0NTY5NSw0NTY5Niw0NTY5Nyw0NTY5OCw0NTY5OSw0NTcwMiw0NTcwMyw0NTcwNCw0NTcwNiw0NTcwNyw0NTcwOCw0NTcwOSw0NTcxMCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCw0NTcxMSw0NTcxNCw0NTcxNSw0NTcxNyw0NTcxOCw0NTcxOSw0NTcyMyw0NTcyNCw0NTcyNSw0NTcyNiw0NTcyNyw0NTczMCw0NTczMiw0NTczNSw0NTczNiw0NTczNyw0NTczOSw0NTc0MSw0NTc0Miw0NTc0Myw0NTc0NSw0NTc0Niw0NTc0Nyw0NTc0OSw0NTc1'@; put 'MCw0NTc1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTc1Miw0NTc1Myw0NTc1NCw0NTc1NSw0NTc1Niw0NTc1Nyw0NTc1OCw0NTc1OSw0NTc2MCw0NTc2MSw0NTc2Miw0NTc2Myw0NTc2NCw0NTc2NSw0NTc2Niw0NTc2Nyw0NTc3MCw0NTc3MSw0NTc3Myw0NTc3NCw0NTc3NSw0'@; put 'NTc3Nyw0NTc3OSw0NTc4MCw0NTc4MSw0NTc4Miw0NTc4Myw0NTc4Niw0NTc4OCw0NTc5MCw0NTc5MSw0NTc5Miw0NTc5Myw0NTc5NSw0NTc5OSw0NTgwMSw0NTgwMiw0NTgwOCw0NTgwOSw0NTgxMCw0NTgxNCw0NTgyMCw0NTgyMSw0NTgyMiw0NTgyNiw0NTgyNyw0NTgyOSw0NTgzMCw0NTgz'@; put 'MSw0NTgzMyw0NTgzNCw0NTgzNSw0NTgzNiw0NTgzNyw0NTgzOCw0NTgzOSw0NTg0Miw0NTg0Niw0NTg0Nyw0NTg0OCw0NTg0OSw0NTg1MCw0NTg1MSw0NTg1Myw0NTg1NCw0NTg1NSw0NTg1Niw0NTg1Nyw0NTg1OCw0NTg1OSw0NTg2MCw0NTg2MSw0NTg2Miw0NTg2Myw0NTg2NCw0NTg2NSw0'@; put 'NTg2Niw0NTg2Nyw0NTg2OCw0NTg2OSw0NTg3MCw0NTg3MSw0NTg3Miw0NTg3Myw0NTg3NCw0NTg3NSw0NTg3Niw0NTg3Nyw0NTg3OCw0NTg3OSw0NTg4MCw0NTg4MSw0NTg4Miw0NTg4Myw0NTg4NCw0NTg4NSw0NTg4Niw0NTg4Nyw0NTg4OCw0NTg4OSw0NTg5MCw0NTg5MSw0NTg5Miw0NTg5'@; put 'Myw0NTg5NCw0NTg5NSw0NTg5Niw0NTg5Nyw0NTg5OCw0NTg5OSw0NTkwMCw0NTkwMSw0NTkwMiw0NTkwMyw0NTkwNCw0NTkwNSw0NTkwNiw0NTkwNyw0NTkxMSw0NTkxMyw0NTkxNCw0NTkxNyw0NTkyMCw0NTkyMSw0NTkyMiw0NTkyMyw0NTkyNiw0NTkyOCw0NTkzMCw0NTkzMiw0NTkzMyw0'@; put 'NTkzNSw0NTkzOCw0NTkzOSw0NTk0MSw0NTk0Miw0NTk0Myw0NTk0NSw0NTk0Niw0NTk0Nyw0NTk0OCw0NTk0OSw0NTk1MCw0NTk1MSw0NTk1NCw0NTk1OCw0NTk1OSw0NTk2MCw0NTk2MSw0NTk2Miw0NTk2Myw0NTk2NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTk2Niw0NTk2'@; put 'Nyw0NTk2OSw0NTk3MCw0NTk3MSw0NTk3Myw0NTk3NCw0NTk3NSw0NTk3Niw0NTk3Nyw0NTk3OCw0NTk3OSw0NTk4MCw0NTk4MSw0NTk4Miw0NTk4Myw0NTk4Niw0NTk4Nyw0NTk4OCw0NTk4OSw0NTk5MCw0NTk5MSw0NTk5Myw0NTk5NCw0NTk5NSw0NTk5NyxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCw0NTk5OCw0NTk5OSw0NmUzLDQ2MDAxLDQ2MDAyLDQ2MDAzLDQ2MDA0LDQ2MDA1LDQ2MDA2LDQ2MDA3LDQ2MDA4LDQ2MDA5LDQ2MDEwLDQ2MDExLDQ2MDEyLDQ2MDEzLDQ2MDE0LDQ2MDE1LDQ2MDE2LDQ2MDE3LDQ2MDE4LDQ2MDE5LDQ2MDIyLDQ2MDIzLDQ2MDI1LDQ2MDI2'@; put 'LDQ2MDI5LDQ2MDMxLDQ2MDMzLDQ2MDM0LDQ2MDM1LDQ2MDM4LDQ2MDQwLDQ2MDQyLDQ2MDQ0LDQ2MDQ2LDQ2MDQ3LDQ2MDQ5LDQ2MDUwLDQ2MDUxLDQ2MDUzLDQ2MDU0LDQ2MDU1LDQ2MDU3LDQ2MDU4LDQ2MDU5LDQ2MDYwLDQ2MDYxLDQ2MDYyLDQ2MDYzLDQ2MDY0LDQ2MDY1LDQ2MDY2LDQ2'@; put 'MDY3LDQ2MDY4LDQ2MDY5LDQ2MDcwLDQ2MDcxLDQ2MDcyLDQ2MDczLDQ2MDc0LDQ2MDc1LDQ2MDc3LDQ2MDc4LDQ2MDc5LDQ2MDgwLDQ2MDgxLDQ2MDgyLDQ2MDgzLDQ2MDg0LDQ2MDg1LDQ2MDg2LDQ2MDg3LDQ2MDg4LDQ2MDg5LDQ2MDkwLDQ2MDkxLDQ2MDkyLDQ2MDkzLDQ2MDk0LDQ2MDk1'@; put 'LDQ2MDk3LDQ2MDk4LDQ2MDk5LDQ2MTAwLDQ2MTAxLDQ2MTAyLDQ2MTAzLDQ2MTA1LDQ2MTA2LDQ2MTA3LDQ2MTA5LDQ2MTEwLDQ2MTExLDQ2MTEzLDQ2MTE0LDQ2MTE1LDQ2MTE2LDQ2MTE3LDQ2MTE4LDQ2MTE5LDQ2MTIyLDQ2MTI0LDQ2MTI1LDQ2MTI2LDQ2MTI3LDQ2MTI4LDQ2MTI5LDQ2'@; put 'MTMwLDQ2MTMxLDQ2MTMzLDQ2MTM0LDQ2MTM1LDQ2MTM2LDQ2MTM3LDQ2MTM4LDQ2MTM5LDQ2MTQwLDQ2MTQxLDQ2MTQyLDQ2MTQzLDQ2MTQ0LDQ2MTQ1LDQ2MTQ2LDQ2MTQ3LDQ2MTQ4LDQ2MTQ5LDQ2MTUwLDQ2MTUxLDQ2MTUyLDQ2MTUzLDQ2MTU0LDQ2MTU1LDQ2MTU2LDQ2MTU3LDQ2MTU4'@; put 'LDQ2MTU5LDQ2MTYyLDQ2MTYzLDQ2MTY1LDQ2MTY2LDQ2MTY3LDQ2MTY5LDQ2MTcwLDQ2MTcxLDQ2MTcyLDQ2MTczLDQ2MTc0LDQ2MTc1LDQ2MTc4LDQ2MTgwLDQ2MTgyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2MTgzLDQ2MTg0LDQ2MTg1LDQ2MTg2LDQ2MTg3LDQ2MTg5LDQ2'@; put 'MTkwLDQ2MTkxLDQ2MTkyLDQ2MTkzLDQ2MTk0LDQ2MTk1LDQ2MTk2LDQ2MTk3LDQ2MTk4LDQ2MTk5LDQ2MjAwLDQ2MjAxLDQ2MjAyLDQ2MjAzLDQ2MjA0LDQ2MjA1LDQ2MjA2LDQ2MjA3LDQ2MjA5LDQ2MjEwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2MjExLDQ2MjEyLDQ2MjEz'@; put 'LDQ2MjE0LDQ2MjE1LDQ2MjE3LDQ2MjE4LDQ2MjE5LDQ2MjIwLDQ2MjIxLDQ2MjIyLDQ2MjIzLDQ2MjI0LDQ2MjI1LDQ2MjI2LDQ2MjI3LDQ2MjI4LDQ2MjI5LDQ2MjMwLDQ2MjMxLDQ2MjMyLDQ2MjMzLDQ2MjM0LDQ2MjM1LDQ2MjM2LDQ2MjM4LDQ2MjM5LDQ2MjQwLDQ2MjQxLDQ2MjQyLDQ2'@; put 'MjQzLDQ2MjQ1LDQ2MjQ2LDQ2MjQ3LDQ2MjQ5LDQ2MjUwLDQ2MjUxLDQ2MjUzLDQ2MjU0LDQ2MjU1LDQ2MjU2LDQ2MjU3LDQ2MjU4LDQ2MjU5LDQ2MjYwLDQ2MjYyLDQ2MjY0LDQ2MjY2LDQ2MjY3LDQ2MjY4LDQ2MjY5LDQ2MjcwLDQ2MjcxLDQ2MjczLDQ2Mjc0LDQ2Mjc1LDQ2Mjc3LDQ2Mjc4'@; put 'LDQ2Mjc5LDQ2MjgxLDQ2MjgyLDQ2MjgzLDQ2Mjg0LDQ2Mjg1LDQ2Mjg2LDQ2Mjg3LDQ2Mjg5LDQ2MjkwLDQ2MjkxLDQ2MjkyLDQ2Mjk0LDQ2Mjk1LDQ2Mjk2LDQ2Mjk3LDQ2Mjk4LDQ2Mjk5LDQ2MzAyLDQ2MzAzLDQ2MzA1LDQ2MzA2LDQ2MzA5LDQ2MzExLDQ2MzEyLDQ2MzEzLDQ2MzE0LDQ2'@; put 'MzE1LDQ2MzE4LDQ2MzIwLDQ2MzIyLDQ2MzIzLDQ2MzI0LDQ2MzI1LDQ2MzI2LDQ2MzI3LDQ2MzI5LDQ2MzMwLDQ2MzMxLDQ2MzMyLDQ2MzMzLDQ2MzM0LDQ2MzM1LDQ2MzM2LDQ2MzM3LDQ2MzM4LDQ2MzM5LDQ2MzQwLDQ2MzQxLDQ2MzQyLDQ2MzQzLDQ2MzQ0LDQ2MzQ1LDQ2MzQ2LDQ2MzQ3'@; put 'LDQ2MzQ4LDQ2MzQ5LDQ2MzUwLDQ2MzUxLDQ2MzUyLDQ2MzUzLDQ2MzU0LDQ2MzU1LDQ2MzU4LDQ2MzU5LDQ2MzYxLDQ2MzYyLDQ2MzY1LDQ2MzY2LDQ2MzY3LDQ2MzY4LDQ2MzY5LDQ2MzcwLDQ2MzcxLDQ2Mzc0LDQ2Mzc5LDQ2MzgwLDQ2MzgxLDQ2MzgyLDQ2MzgzLDQ2Mzg2LDQ2Mzg3LDQ2'@; put 'Mzg5LDQ2MzkwLDQ2MzkxLDQ2MzkzLDQ2Mzk0LDQ2Mzk1LDQ2Mzk2LDQ2Mzk3LDQ2Mzk4LDQ2Mzk5LDQ2NDAyLDQ2NDA2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NDA3LDQ2NDA4LDQ2NDA5LDQ2NDEwLDQ2NDE0LDQ2NDE1LDQ2NDE3LDQ2NDE4LDQ2NDE5LDQ2NDIxLDQ2NDIy'@; put 'LDQ2NDIzLDQ2NDI0LDQ2NDI1LDQ2NDI2LDQ2NDI3LDQ2NDMwLDQ2NDM0LDQ2NDM1LDQ2NDM2LDQ2NDM3LDQ2NDM4LDQ2NDM5LDQ2NDQwLDQ2NDQxLDQ2NDQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NDQzLDQ2NDQ0LDQ2NDQ1LDQ2NDQ2LDQ2NDQ3LDQ2NDQ4LDQ2NDQ5LDQ2'@; put 'NDUwLDQ2NDUxLDQ2NDUyLDQ2NDUzLDQ2NDU0LDQ2NDU1LDQ2NDU2LDQ2NDU3LDQ2NDU4LDQ2NDU5LDQ2NDYwLDQ2NDYxLDQ2NDYyLDQ2NDYzLDQ2NDY0LDQ2NDY1LDQ2NDY2LDQ2NDY3LDQ2NDY4LDQ2NDY5LDQ2NDcwLDQ2NDcxLDQ2NDcyLDQ2NDczLDQ2NDc0LDQ2NDc1LDQ2NDc2LDQ2NDc3'@; put 'LDQ2NDc4LDQ2NDc5LDQ2NDgwLDQ2NDgxLDQ2NDgyLDQ2NDgzLDQ2NDg0LDQ2NDg1LDQ2NDg2LDQ2NDg3LDQ2NDg4LDQ2NDg5LDQ2NDkwLDQ2NDkxLDQ2NDkyLDQ2NDkzLDQ2NDk0LDQ2NDk1LDQ2NDk4LDQ2NDk5LDQ2NTAxLDQ2NTAyLDQ2NTAzLDQ2NTA1LDQ2NTA4LDQ2NTA5LDQ2NTEwLDQ2'@; put 'NTExLDQ2NTE0LDQ2NTE4LDQ2NTE5LDQ2NTIwLDQ2NTIxLDQ2NTIyLDQ2NTI2LDQ2NTI3LDQ2NTI5LDQ2NTMwLDQ2NTMxLDQ2NTMzLDQ2NTM0LDQ2NTM1LDQ2NTM2LDQ2NTM3LDQ2NTM4LDQ2NTM5LDQ2NTQyLDQ2NTQ2LDQ2NTQ3LDQ2NTQ4LDQ2NTQ5LDQ2NTUwLDQ2NTUxLDQ2NTUzLDQ2NTU0'@; put 'LDQ2NTU1LDQ2NTU2LDQ2NTU3LDQ2NTU4LDQ2NTU5LDQ2NTYwLDQ2NTYxLDQ2NTYyLDQ2NTYzLDQ2NTY0LDQ2NTY1LDQ2NTY2LDQ2NTY3LDQ2NTY4LDQ2NTY5LDQ2NTcwLDQ2NTcxLDQ2NTczLDQ2NTc0LDQ2NTc1LDQ2NTc2LDQ2NTc3LDQ2NTc4LDQ2NTc5LDQ2NTgwLDQ2NTgxLDQ2NTgyLDQ2'@; put 'NTgzLDQ2NTg0LDQ2NTg1LDQ2NTg2LDQ2NTg3LDQ2NTg4LDQ2NTg5LDQ2NTkwLDQ2NTkxLDQ2NTkyLDQ2NTkzLDQ2NTk0LDQ2NTk1LDQ2NTk2LDQ2NTk3LDQ2NTk4LDQ2NTk5LDQ2NjAwLDQ2NjAxLDQ2NjAyLDQ2NjAzLDQ2NjA0LDQ2NjA1LDQ2NjA2LDQ2NjA3LDQ2NjEwLDQ2NjExLDQ2NjEz'@; put 'LDQ2NjE0LDQ2NjE1LDQ2NjE3LDQ2NjE4LDQ2NjE5LDQ2NjIwLDQ2NjIxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NjIyLDQ2NjIzLDQ2NjI0LDQ2NjI1LDQ2NjI2LDQ2NjI3LDQ2NjI4LDQ2NjMwLDQ2NjMxLDQ2NjMyLDQ2NjMzLDQ2NjM0LDQ2NjM1LDQ2NjM3LDQ2NjM4LDQ2'@; put 'NjM5LDQ2NjQwLDQ2NjQxLDQ2NjQyLDQ2NjQzLDQ2NjQ1LDQ2NjQ2LDQ2NjQ3LDQ2NjQ4LDQ2NjQ5LDQ2NjUwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NjUxLDQ2NjUyLDQ2NjUzLDQ2NjU0LDQ2NjU1LDQ2NjU2LDQ2NjU3LDQ2NjU4LDQ2NjU5LDQ2NjYwLDQ2NjYxLDQ2NjYy'@; put 'LDQ2NjYzLDQ2NjY1LDQ2NjY2LDQ2NjY3LDQ2NjY4LDQ2NjY5LDQ2NjcwLDQ2NjcxLDQ2NjcyLDQ2NjczLDQ2Njc0LDQ2Njc1LDQ2Njc2LDQ2Njc3LDQ2Njc4LDQ2Njc5LDQ2NjgwLDQ2NjgxLDQ2NjgyLDQ2NjgzLDQ2Njg0LDQ2Njg1LDQ2Njg2LDQ2Njg3LDQ2Njg4LDQ2Njg5LDQ2NjkwLDQ2'@; put 'NjkxLDQ2NjkzLDQ2Njk0LDQ2Njk1LDQ2Njk3LDQ2Njk4LDQ2Njk5LDQ2NzAwLDQ2NzAxLDQ2NzAyLDQ2NzAzLDQ2NzA0LDQ2NzA1LDQ2NzA2LDQ2NzA3LDQ2NzA4LDQ2NzA5LDQ2NzEwLDQ2NzExLDQ2NzEyLDQ2NzEzLDQ2NzE0LDQ2NzE1LDQ2NzE2LDQ2NzE3LDQ2NzE4LDQ2NzE5LDQ2NzIw'@; put 'LDQ2NzIxLDQ2NzIyLDQ2NzIzLDQ2NzI0LDQ2NzI1LDQ2NzI2LDQ2NzI3LDQ2NzI4LDQ2NzI5LDQ2NzMwLDQ2NzMxLDQ2NzMyLDQ2NzMzLDQ2NzM0LDQ2NzM1LDQ2NzM2LDQ2NzM3LDQ2NzM4LDQ2NzM5LDQ2NzQwLDQ2NzQxLDQ2NzQyLDQ2NzQzLDQ2NzQ0LDQ2NzQ1LDQ2NzQ2LDQ2NzQ3LDQ2'@; put 'NzUwLDQ2NzUxLDQ2NzUzLDQ2NzU0LDQ2NzU1LDQ2NzU3LDQ2NzU4LDQ2NzU5LDQ2NzYwLDQ2NzYxLDQ2NzYyLDQ2NzY1LDQ2NzY2LDQ2NzY3LDQ2NzY4LDQ2NzcwLDQ2NzcxLDQ2NzcyLDQ2NzczLDQ2Nzc0LDQ2Nzc1LDQ2Nzc2LDQ2Nzc3LDQ2Nzc4LDQ2Nzc5LDQ2NzgwLDQ2NzgxLDQ2Nzgy'@; put 'LDQ2NzgzLDQ2Nzg0LDQ2Nzg1LDQ2Nzg2LDQ2Nzg3LDQ2Nzg4LDQ2Nzg5LDQ2NzkwLDQ2NzkxLDQ2NzkyLDQ2NzkzLDQ2Nzk0LDQ2Nzk1LDQ2Nzk2LDQ2Nzk3LDQ2Nzk4LDQ2Nzk5LDQ2ODAwLDQ2ODAxLDQ2ODAyLDQ2ODAzLDQ2ODA1LDQ2ODA2LDQ2ODA3LDQ2ODA4LDQ2ODA5LDQ2ODEwLDQ2'@; put 'ODExLDQ2ODEyLDQ2ODEzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2ODE0LDQ2ODE1LDQ2ODE2LDQ2ODE3LDQ2ODE4LDQ2ODE5LDQ2ODIwLDQ2ODIxLDQ2ODIyLDQ2ODIzLDQ2ODI0LDQ2ODI1LDQ2ODI2LDQ2ODI3LDQ2ODI4LDQ2ODI5LDQ2ODMwLDQ2ODMxLDQ2ODMzLDQ2ODM0'@; put 'LDQ2ODM1LDQ2ODM3LDQ2ODM4LDQ2ODM5LDQ2ODQxLDQ2ODQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2ODQzLDQ2ODQ0LDQ2ODQ1LDQ2ODQ2LDQ2ODQ3LDQ2ODUwLDQ2ODUxLDQ2ODUyLDQ2ODU0LDQ2ODU1LDQ2ODU2LDQ2ODU3LDQ2ODU4LDQ2ODU5LDQ2ODYwLDQ2ODYxLDQ2'@; put 'ODYyLDQ2ODYzLDQ2ODY0LDQ2ODY1LDQ2ODY2LDQ2ODY3LDQ2ODY4LDQ2ODY5LDQ2ODcwLDQ2ODcxLDQ2ODcyLDQ2ODczLDQ2ODc0LDQ2ODc1LDQ2ODc2LDQ2ODc3LDQ2ODc4LDQ2ODc5LDQ2ODgwLDQ2ODgxLDQ2ODgyLDQ2ODgzLDQ2ODg0LDQ2ODg1LDQ2ODg2LDQ2ODg3LDQ2ODkwLDQ2ODkx'@; put 'LDQ2ODkzLDQ2ODk0LDQ2ODk3LDQ2ODk4LDQ2ODk5LDQ2OTAwLDQ2OTAxLDQ2OTAyLDQ2OTAzLDQ2OTA2LDQ2OTA4LDQ2OTA5LDQ2OTEwLDQ2OTExLDQ2OTEyLDQ2OTEzLDQ2OTE0LDQ2OTE1LDQ2OTE3LDQ2OTE4LDQ2OTE5LDQ2OTIxLDQ2OTIyLDQ2OTIzLDQ2OTI1LDQ2OTI2LDQ2OTI3LDQ2'@; put 'OTI4LDQ2OTI5LDQ2OTMwLDQ2OTMxLDQ2OTM0LDQ2OTM1LDQ2OTM2LDQ2OTM3LDQ2OTM4LDQ2OTM5LDQ2OTQwLDQ2OTQxLDQ2OTQyLDQ2OTQzLDQ2OTQ1LDQ2OTQ2LDQ2OTQ3LDQ2OTQ5LDQ2OTUwLDQ2OTUxLDQ2OTUzLDQ2OTU0LDQ2OTU1LDQ2OTU2LDQ2OTU3LDQ2OTU4LDQ2OTU5LDQ2OTYy'@; put 'LDQ2OTY0LDQ2OTY2LDQ2OTY3LDQ2OTY4LDQ2OTY5LDQ2OTcwLDQ2OTcxLDQ2OTc0LDQ2OTc1LDQ2OTc3LDQ2OTc4LDQ2OTc5LDQ2OTgxLDQ2OTgyLDQ2OTgzLDQ2OTg0LDQ2OTg1LDQ2OTg2LDQ2OTg3LDQ2OTkwLDQ2OTk1LDQ2OTk2LDQ2OTk3LDQ3MDAyLDQ3MDAzLDQ3MDA1LDQ3MDA2LDQ3'@; put 'MDA3LDQ3MDA5LDQ3MDEwLDQ3MDExLDQ3MDEyLDQ3MDEzLDQ3MDE0LDQ3MDE1LDQ3MDE4LDQ3MDIyLDQ3MDIzLDQ3MDI0LDQ3MDI1LDQ3MDI2LDQ3MDI3LDQ3MDMwLDQ3MDMxLDQ3MDMzLDQ3MDM0LDQ3MDM1LDQ3MDM2LDQ3MDM3LDQ3MDM4LDQ3MDM5LDQ3MDQwLDQ3MDQxLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLDQ3MDQyLDQ3MDQzLDQ3MDQ0LDQ3MDQ1LDQ3MDQ2LDQ3MDQ4LDQ3MDUwLDQ3MDUxLDQ3MDUyLDQ3MDUzLDQ3MDU0LDQ3MDU1LDQ3MDU2LDQ3MDU3LDQ3MDU4LDQ3MDU5LDQ3MDYwLDQ3MDYxLDQ3MDYyLDQ3MDYzLDQ3MDY0LDQ3MDY1LDQ3MDY2LDQ3MDY3LDQ3'@; put 'MDY4LDQ3MDY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3MDcwLDQ3MDcxLDQ3MDcyLDQ3MDczLDQ3MDc0LDQ3MDc1LDQ3MDc2LDQ3MDc3LDQ3MDc4LDQ3MDc5LDQ3MDgwLDQ3MDgxLDQ3MDgyLDQ3MDgzLDQ3MDg2LDQ3MDg3LDQ3MDg5LDQ3MDkwLDQ3MDkxLDQ3MDkzLDQ3MDk0'@; put 'LDQ3MDk1LDQ3MDk2LDQ3MDk3LDQ3MDk4LDQ3MDk5LDQ3MTAyLDQ3MTA2LDQ3MTA3LDQ3MTA4LDQ3MTA5LDQ3MTEwLDQ3MTE0LDQ3MTE1LDQ3MTE3LDQ3MTE4LDQ3MTE5LDQ3MTIxLDQ3MTIyLDQ3MTIzLDQ3MTI0LDQ3MTI1LDQ3MTI2LDQ3MTI3LDQ3MTMwLDQ3MTMyLDQ3MTM0LDQ3MTM1LDQ3'@; put 'MTM2LDQ3MTM3LDQ3MTM4LDQ3MTM5LDQ3MTQyLDQ3MTQzLDQ3MTQ1LDQ3MTQ2LDQ3MTQ3LDQ3MTQ5LDQ3MTUwLDQ3MTUxLDQ3MTUyLDQ3MTUzLDQ3MTU0LDQ3MTU1LDQ3MTU4LDQ3MTYyLDQ3MTYzLDQ3MTY0LDQ3MTY1LDQ3MTY2LDQ3MTY3LDQ3MTY5LDQ3MTcwLDQ3MTcxLDQ3MTczLDQ3MTc0'@; put 'LDQ3MTc1LDQ3MTc2LDQ3MTc3LDQ3MTc4LDQ3MTc5LDQ3MTgwLDQ3MTgxLDQ3MTgyLDQ3MTgzLDQ3MTg0LDQ3MTg2LDQ3MTg4LDQ3MTg5LDQ3MTkwLDQ3MTkxLDQ3MTkyLDQ3MTkzLDQ3MTk0LDQ3MTk1LDQ3MTk4LDQ3MTk5LDQ3MjAxLDQ3MjAyLDQ3MjAzLDQ3MjA1LDQ3MjA2LDQ3MjA3LDQ3'@; put 'MjA4LDQ3MjA5LDQ3MjEwLDQ3MjExLDQ3MjE0LDQ3MjE2LDQ3MjE4LDQ3MjE5LDQ3MjIwLDQ3MjIxLDQ3MjIyLDQ3MjIzLDQ3MjI1LDQ3MjI2LDQ3MjI3LDQ3MjI5LDQ3MjMwLDQ3MjMxLDQ3MjMyLDQ3MjMzLDQ3MjM0LDQ3MjM1LDQ3MjM2LDQ3MjM3LDQ3MjM4LDQ3MjM5LDQ3MjQwLDQ3MjQx'@; put 'LDQ3MjQyLDQ3MjQzLDQ3MjQ0LDQ3MjQ2LDQ3MjQ3LDQ3MjQ4LDQ3MjQ5LDQ3MjUwLDQ3MjUxLDQ3MjUyLDQ3MjUzLDQ3MjU0LDQ3MjU1LDQ3MjU2LDQ3MjU3LDQ3MjU4LDQ3MjU5LDQ3MjYwLDQ3MjYxLDQ3MjYyLDQ3MjYzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3MjY0LDQ3'@; put 'MjY1LDQ3MjY2LDQ3MjY3LDQ3MjY4LDQ3MjY5LDQ3MjcwLDQ3MjcxLDQ3MjczLDQ3Mjc0LDQ3Mjc1LDQ3Mjc2LDQ3Mjc3LDQ3Mjc4LDQ3Mjc5LDQ3MjgxLDQ3MjgyLDQ3MjgzLDQ3Mjg1LDQ3Mjg2LDQ3Mjg3LDQ3Mjg5LDQ3MjkwLDQ3MjkxLDQ3MjkyLDQ3MjkzLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLDQ3Mjk0LDQ3Mjk1LDQ3Mjk4LDQ3MzAwLDQ3MzAyLDQ3MzAzLDQ3MzA0LDQ3MzA1LDQ3MzA2LDQ3MzA3LDQ3MzA5LDQ3MzEwLDQ3MzExLDQ3MzEzLDQ3MzE0LDQ3MzE1LDQ3MzE3LDQ3MzE4LDQ3MzE5LDQ3MzIwLDQ3MzIxLDQ3MzIyLDQ3MzIzLDQ3MzI0LDQ3MzI2LDQ3'@; put 'MzI4LDQ3MzMwLDQ3MzMxLDQ3MzMyLDQ3MzMzLDQ3MzM0LDQ3MzM1LDQ3MzM4LDQ3MzM5LDQ3MzQxLDQ3MzQyLDQ3MzQzLDQ3MzQ1LDQ3MzQ2LDQ3MzQ3LDQ3MzQ4LDQ3MzQ5LDQ3MzUwLDQ3MzUxLDQ3MzU0LDQ3MzU2LDQ3MzU4LDQ3MzU5LDQ3MzYwLDQ3MzYxLDQ3MzYyLDQ3MzYzLDQ3MzY1'@; put 'LDQ3MzY2LDQ3MzY3LDQ3MzY4LDQ3MzY5LDQ3MzcwLDQ3MzcxLDQ3MzcyLDQ3MzczLDQ3Mzc0LDQ3Mzc1LDQ3Mzc2LDQ3Mzc3LDQ3Mzc4LDQ3Mzc5LDQ3MzgwLDQ3MzgxLDQ3MzgyLDQ3MzgzLDQ3Mzg1LDQ3Mzg2LDQ3Mzg3LDQ3Mzg4LDQ3Mzg5LDQ3MzkwLDQ3MzkxLDQ3MzkzLDQ3Mzk0LDQ3'@; put 'Mzk1LDQ3Mzk2LDQ3Mzk3LDQ3Mzk4LDQ3Mzk5LDQ3NDAwLDQ3NDAxLDQ3NDAyLDQ3NDAzLDQ3NDA0LDQ3NDA1LDQ3NDA2LDQ3NDA3LDQ3NDA4LDQ3NDA5LDQ3NDEwLDQ3NDExLDQ3NDEyLDQ3NDEzLDQ3NDE0LDQ3NDE1LDQ3NDE2LDQ3NDE3LDQ3NDE4LDQ3NDE5LDQ3NDIyLDQ3NDIzLDQ3NDI1'@; put 'LDQ3NDI2LDQ3NDI3LDQ3NDI5LDQ3NDMwLDQ3NDMxLDQ3NDMyLDQ3NDMzLDQ3NDM0LDQ3NDM1LDQ3NDM3LDQ3NDM4LDQ3NDQwLDQ3NDQyLDQ3NDQzLDQ3NDQ0LDQ3NDQ1LDQ3NDQ2LDQ3NDQ3LDQ3NDUwLDQ3NDUxLDQ3NDUzLDQ3NDU0LDQ3NDU1LDQ3NDU3LDQ3NDU4LDQ3NDU5LDQ3NDYwLDQ3'@; put 'NDYxLDQ3NDYyLDQ3NDYzLDQ3NDY2LDQ3NDY4LDQ3NDcwLDQ3NDcxLDQ3NDcyLDQ3NDczLDQ3NDc0LDQ3NDc1LDQ3NDc4LDQ3NDc5LDQ3NDgxLDQ3NDgyLDQ3NDgzLDQ3NDg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NDg2LDQ3NDg3LDQ3NDg4LDQ3NDg5LDQ3NDkwLDQ3NDkx'@; put 'LDQ3NDk0LDQ3NDk2LDQ3NDk5LDQ3NTAwLDQ3NTAzLDQ3NTA0LDQ3NTA1LDQ3NTA2LDQ3NTA3LDQ3NTA4LDQ3NTA5LDQ3NTEwLDQ3NTExLDQ3NTEyLDQ3NTEzLDQ3NTE0LDQ3NTE1LDQ3NTE2LDQ3NTE3LDQ3NTE4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NTE5LDQ3NTIwLDQ3'@; put 'NTIxLDQ3NTIyLDQ3NTIzLDQ3NTI0LDQ3NTI1LDQ3NTI2LDQ3NTI3LDQ3NTI4LDQ3NTI5LDQ3NTMwLDQ3NTMxLDQ3NTM0LDQ3NTM1LDQ3NTM3LDQ3NTM4LDQ3NTM5LDQ3NTQxLDQ3NTQyLDQ3NTQzLDQ3NTQ0LDQ3NTQ1LDQ3NTQ2LDQ3NTQ3LDQ3NTUwLDQ3NTUyLDQ3NTU0LDQ3NTU1LDQ3NTU2'@; put 'LDQ3NTU3LDQ3NTU4LDQ3NTU5LDQ3NTYyLDQ3NTYzLDQ3NTY1LDQ3NTcxLDQ3NTcyLDQ3NTczLDQ3NTc0LDQ3NTc1LDQ3NTc4LDQ3NTgwLDQ3NTgzLDQ3NTg0LDQ3NTg2LDQ3NTkwLDQ3NTkxLDQ3NTkzLDQ3NTk0LDQ3NTk1LDQ3NTk3LDQ3NTk4LDQ3NTk5LDQ3NjAwLDQ3NjAxLDQ3NjAyLDQ3'@; put 'NjAzLDQ3NjA2LDQ3NjExLDQ3NjEyLDQ3NjEzLDQ3NjE0LDQ3NjE1LDQ3NjE4LDQ3NjE5LDQ3NjIwLDQ3NjIxLDQ3NjIyLDQ3NjIzLDQ3NjI1LDQ3NjI2LDQ3NjI3LDQ3NjI4LDQ3NjI5LDQ3NjMwLDQ3NjMxLDQ3NjMyLDQ3NjMzLDQ3NjM0LDQ3NjM1LDQ3NjM2LDQ3NjM4LDQ3NjM5LDQ3NjQw'@; put 'LDQ3NjQxLDQ3NjQyLDQ3NjQzLDQ3NjQ0LDQ3NjQ1LDQ3NjQ2LDQ3NjQ3LDQ3NjQ4LDQ3NjQ5LDQ3NjUwLDQ3NjUxLDQ3NjUyLDQ3NjUzLDQ3NjU0LDQ3NjU1LDQ3NjU2LDQ3NjU3LDQ3NjU4LDQ3NjU5LDQ3NjYwLDQ3NjYxLDQ3NjYyLDQ3NjYzLDQ3NjY0LDQ3NjY1LDQ3NjY2LDQ3NjY3LDQ3'@; put 'NjY4LDQ3NjY5LDQ3NjcwLDQ3NjcxLDQ3Njc0LDQ3Njc1LDQ3Njc3LDQ3Njc4LDQ3Njc5LDQ3NjgxLDQ3NjgzLDQ3Njg0LDQ3Njg1LDQ3Njg2LDQ3Njg3LDQ3NjkwLDQ3NjkyLDQ3Njk1LDQ3Njk2LDQ3Njk3LDQ3Njk4LDQ3NzAyLDQ3NzAzLDQ3NzA1LDQ3NzA2LDQ3NzA3LDQ3NzA5LDQ3NzEw'@; put 'LDQ3NzExLDQ3NzEyLDQ3NzEzLDQ3NzE0LDQ3NzE1LDQ3NzE4LDQ3NzIyLDQ3NzIzLDQ3NzI0LDQ3NzI1LDQ3NzI2LDQ3NzI3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NzMwLDQ3NzMxLDQ3NzMzLDQ3NzM0LDQ3NzM1LDQ3NzM3LDQ3NzM4LDQ3NzM5LDQ3NzQwLDQ3NzQxLDQ3'@; put 'NzQyLDQ3NzQzLDQ3NzQ0LDQ3NzQ1LDQ3NzQ2LDQ3NzUwLDQ3NzUyLDQ3NzUzLDQ3NzU0LDQ3NzU1LDQ3NzU3LDQ3NzU4LDQ3NzU5LDQ3NzYwLDQ3NzYxLDQ3NzYyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NzYzLDQ3NzY0LDQ3NzY1LDQ3NzY2LDQ3NzY3LDQ3NzY4LDQ3NzY5'@; put 'LDQ3NzcwLDQ3NzcxLDQ3NzcyLDQ3NzczLDQ3Nzc0LDQ3Nzc1LDQ3Nzc2LDQ3Nzc3LDQ3Nzc4LDQ3Nzc5LDQ3NzgwLDQ3NzgxLDQ3NzgyLDQ3NzgzLDQ3Nzg2LDQ3Nzg5LDQ3NzkwLDQ3NzkxLDQ3NzkzLDQ3Nzk1LDQ3Nzk2LDQ3Nzk3LDQ3Nzk4LDQ3Nzk5LDQ3ODAyLDQ3ODA0LDQ3ODA2LDQ3'@; put 'ODA3LDQ3ODA4LDQ3ODA5LDQ3ODEwLDQ3ODExLDQ3ODEzLDQ3ODE0LDQ3ODE1LDQ3ODE3LDQ3ODE4LDQ3ODE5LDQ3ODIwLDQ3ODIxLDQ3ODIyLDQ3ODIzLDQ3ODI0LDQ3ODI1LDQ3ODI2LDQ3ODI3LDQ3ODI4LDQ3ODI5LDQ3ODMwLDQ3ODMxLDQ3ODM0LDQ3ODM1LDQ3ODM2LDQ3ODM3LDQ3ODM4'@; put 'LDQ3ODM5LDQ3ODQwLDQ3ODQxLDQ3ODQyLDQ3ODQzLDQ3ODQ0LDQ3ODQ1LDQ3ODQ2LDQ3ODQ3LDQ3ODQ4LDQ3ODQ5LDQ3ODUwLDQ3ODUxLDQ3ODUyLDQ3ODUzLDQ3ODU0LDQ3ODU1LDQ3ODU2LDQ3ODU3LDQ3ODU4LDQ3ODU5LDQ3ODYwLDQ3ODYxLDQ3ODYyLDQ3ODYzLDQ3ODY0LDQ3ODY1LDQ3'@; put 'ODY2LDQ3ODY3LDQ3ODY5LDQ3ODcwLDQ3ODcxLDQ3ODczLDQ3ODc0LDQ3ODc1LDQ3ODc3LDQ3ODc4LDQ3ODc5LDQ3ODgwLDQ3ODgxLDQ3ODgyLDQ3ODgzLDQ3ODg0LDQ3ODg2LDQ3ODg4LDQ3ODkwLDQ3ODkxLDQ3ODkyLDQ3ODkzLDQ3ODk0LDQ3ODk1LDQ3ODk3LDQ3ODk4LDQ3ODk5LDQ3OTAx'@; put 'LDQ3OTAyLDQ3OTAzLDQ3OTA1LDQ3OTA2LDQ3OTA3LDQ3OTA4LDQ3OTA5LDQ3OTEwLDQ3OTExLDQ3OTEyLDQ3OTE0LDQ3OTE2LDQ3OTE3LDQ3OTE4LDQ3OTE5LDQ3OTIwLDQ3OTIxLDQ3OTIyLDQ3OTIzLDQ3OTI3LDQ3OTI5LDQ3OTMwLDQ3OTM1LDQ3OTM2LDQ3OTM3LDQ3OTM4LDQ3OTM5LDQ3'@; put 'OTQyLDQ3OTQ0LDQ3OTQ2LDQ3OTQ3LDQ3OTQ4LDQ3OTUwLDQ3OTUzLDQ3OTU0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3OTU1LDQ3OTU3LDQ3OTU4LDQ3OTU5LDQ3OTYxLDQ3OTYyLDQ3OTYzLDQ3OTY0LDQ3OTY1LDQ3OTY2LDQ3OTY3LDQ3OTY4LDQ3OTcwLDQ3OTcyLDQ3OTcz'@; put 'LDQ3OTc0LDQ3OTc1LDQ3OTc2LDQ3OTc3LDQ3OTc4LDQ3OTc5LDQ3OTgxLDQ3OTgyLDQ3OTgzLDQ3OTg0LDQ3OTg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3OTg2LDQ3OTg3LDQ3OTg4LDQ3OTg5LDQ3OTkwLDQ3OTkxLDQ3OTkyLDQ3OTkzLDQ3OTk0LDQ3OTk1LDQ3OTk2LDQ3'@; put 'OTk3LDQ3OTk4LDQ3OTk5LDQ4ZTMsNDgwMDEsNDgwMDIsNDgwMDMsNDgwMDQsNDgwMDUsNDgwMDYsNDgwMDcsNDgwMDksNDgwMTAsNDgwMTEsNDgwMTMsNDgwMTQsNDgwMTUsNDgwMTcsNDgwMTgsNDgwMTksNDgwMjAsNDgwMjEsNDgwMjIsNDgwMjMsNDgwMjQsNDgwMjUsNDgwMjYsNDgwMjcs'@; put 'NDgwMjgsNDgwMjksNDgwMzAsNDgwMzEsNDgwMzIsNDgwMzMsNDgwMzQsNDgwMzUsNDgwMzcsNDgwMzgsNDgwMzksNDgwNDEsNDgwNDIsNDgwNDMsNDgwNDUsNDgwNDYsNDgwNDcsNDgwNDgsNDgwNDksNDgwNTAsNDgwNTEsNDgwNTMsNDgwNTQsNDgwNTYsNDgwNTcsNDgwNTgsNDgwNTksNDgw'@; put 'NjAsNDgwNjEsNDgwNjIsNDgwNjMsNDgwNjUsNDgwNjYsNDgwNjcsNDgwNjksNDgwNzAsNDgwNzEsNDgwNzMsNDgwNzQsNDgwNzUsNDgwNzYsNDgwNzcsNDgwNzgsNDgwNzksNDgwODEsNDgwODIsNDgwODQsNDgwODUsNDgwODYsNDgwODcsNDgwODgsNDgwODksNDgwOTAsNDgwOTEsNDgwOTIs'@; put 'NDgwOTMsNDgwOTQsNDgwOTUsNDgwOTYsNDgwOTcsNDgwOTgsNDgwOTksNDgxMDAsNDgxMDEsNDgxMDIsNDgxMDMsNDgxMDQsNDgxMDUsNDgxMDYsNDgxMDcsNDgxMDgsNDgxMDksNDgxMTAsNDgxMTEsNDgxMTIsNDgxMTMsNDgxMTQsNDgxMTUsNDgxMTYsNDgxMTcsNDgxMTgsNDgxMTksNDgx'@; put 'MjIsNDgxMjMsNDgxMjUsNDgxMjYsNDgxMjksNDgxMzEsNDgxMzIsNDgxMzMsNDgxMzQsNDgxMzUsNDgxMzgsNDgxNDIsNDgxNDQsNDgxNDYsNDgxNDcsNDgxNTMsNDgxNTQsNDgxNjAsNDgxNjEsNDgxNjIsNDgxNjMsNDgxNjYsNDgxNjgsNDgxNzAsNDgxNzEsNDgxNzIsNDgxNzQsNDgxNzUs'@; put 'NDgxNzgsNDgxNzksNDgxODEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDgxODIsNDgxODMsNDgxODUsNDgxODYsNDgxODcsNDgxODgsNDgxODksNDgxOTAsNDgxOTEsNDgxOTQsNDgxOTgsNDgxOTksNDgyMDAsNDgyMDIsNDgyMDMsNDgyMDYsNDgyMDcsNDgyMDksNDgyMTAsNDgy'@; put 'MTEsNDgyMTIsNDgyMTMsNDgyMTQsNDgyMTUsNDgyMTYsNDgyMTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDgyMTgsNDgyMTksNDgyMjAsNDgyMjIsNDgyMjMsNDgyMjQsNDgyMjUsNDgyMjYsNDgyMjcsNDgyMjgsNDgyMjksNDgyMzAsNDgyMzEsNDgyMzIsNDgyMzMsNDgyMzQs'@; put 'NDgyMzUsNDgyMzYsNDgyMzcsNDgyMzgsNDgyMzksNDgyNDAsNDgyNDEsNDgyNDIsNDgyNDMsNDgyNDQsNDgyNDUsNDgyNDYsNDgyNDcsNDgyNDgsNDgyNDksNDgyNTAsNDgyNTEsNDgyNTIsNDgyNTMsNDgyNTQsNDgyNTUsNDgyNTYsNDgyNTcsNDgyNTgsNDgyNTksNDgyNjIsNDgyNjMsNDgy'@; put 'NjUsNDgyNjYsNDgyNjksNDgyNzEsNDgyNzIsNDgyNzMsNDgyNzQsNDgyNzUsNDgyNzgsNDgyODAsNDgyODMsNDgyODQsNDgyODUsNDgyODYsNDgyODcsNDgyOTAsNDgyOTEsNDgyOTMsNDgyOTQsNDgyOTcsNDgyOTgsNDgyOTksNDgzMDAsNDgzMDEsNDgzMDIsNDgzMDMsNDgzMDYsNDgzMTAs'@; put 'NDgzMTEsNDgzMTIsNDgzMTMsNDgzMTQsNDgzMTUsNDgzMTgsNDgzMTksNDgzMjEsNDgzMjIsNDgzMjMsNDgzMjUsNDgzMjYsNDgzMjcsNDgzMjgsNDgzMjksNDgzMzAsNDgzMzEsNDgzMzIsNDgzMzQsNDgzMzgsNDgzMzksNDgzNDAsNDgzNDIsNDgzNDMsNDgzNDUsNDgzNDYsNDgzNDcsNDgz'@; put 'NDksNDgzNTAsNDgzNTEsNDgzNTIsNDgzNTMsNDgzNTQsNDgzNTUsNDgzNTYsNDgzNTcsNDgzNTgsNDgzNTksNDgzNjAsNDgzNjEsNDgzNjIsNDgzNjMsNDgzNjQsNDgzNjUsNDgzNjYsNDgzNjcsNDgzNjgsNDgzNjksNDgzNzAsNDgzNzEsNDgzNzUsNDgzNzcsNDgzNzgsNDgzNzksNDgzODEs'@; put 'NDgzODIsNDgzODMsNDgzODQsNDgzODUsNDgzODYsNDgzODcsNDgzOTAsNDgzOTIsNDgzOTQsNDgzOTUsNDgzOTYsNDgzOTcsNDgzOTgsNDgzOTksNDg0MDEsNDg0MDIsNDg0MDMsNDg0MDUsNDg0MDYsNDg0MDcsNDg0MDgsNDg0MDksNDg0MTAsNDg0MTEsNDg0MTIsNDg0MTMsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsNDg0MTQsNDg0MTUsNDg0MTYsNDg0MTcsNDg0MTgsNDg0MTksNDg0MjEsNDg0MjIsNDg0MjMsNDg0MjQsNDg0MjUsNDg0MjYsNDg0MjcsNDg0MjksNDg0MzAsNDg0MzEsNDg0MzIsNDg0MzMsNDg0MzQsNDg0MzUsNDg0MzYsNDg0MzcsNDg0MzgsNDg0Mzks'@; put 'NDg0NDAsNDg0NDEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg0NDIsNDg0NDMsNDg0NDQsNDg0NDUsNDg0NDYsNDg0NDcsNDg0NDksNDg0NTAsNDg0NTEsNDg0NTIsNDg0NTMsNDg0NTQsNDg0NTUsNDg0NTgsNDg0NTksNDg0NjEsNDg0NjIsNDg0NjMsNDg0NjUsNDg0NjYsNDg0'@; put 'NjcsNDg0NjgsNDg0NjksNDg0NzAsNDg0NzEsNDg0NzQsNDg0NzUsNDg0NzYsNDg0NzcsNDg0NzgsNDg0NzksNDg0ODAsNDg0ODEsNDg0ODIsNDg0ODMsNDg0ODUsNDg0ODYsNDg0ODcsNDg0ODksNDg0OTAsNDg0OTEsNDg0OTIsNDg0OTMsNDg0OTQsNDg0OTUsNDg0OTYsNDg0OTcsNDg0OTgs'@; put 'NDg0OTksNDg1MDAsNDg1MDEsNDg1MDIsNDg1MDMsNDg1MDQsNDg1MDUsNDg1MDYsNDg1MDcsNDg1MDgsNDg1MDksNDg1MTAsNDg1MTEsNDg1MTQsNDg1MTUsNDg1MTcsNDg1MTgsNDg1MjMsNDg1MjQsNDg1MjUsNDg1MjYsNDg1MjcsNDg1MzAsNDg1MzIsNDg1MzQsNDg1MzUsNDg1MzYsNDg1'@; put 'MzksNDg1NDEsNDg1NDIsNDg1NDMsNDg1NDQsNDg1NDUsNDg1NDYsNDg1NDcsNDg1NDksNDg1NTAsNDg1NTEsNDg1NTIsNDg1NTMsNDg1NTQsNDg1NTUsNDg1NTYsNDg1NTcsNDg1NTgsNDg1NTksNDg1NjEsNDg1NjIsNDg1NjMsNDg1NjQsNDg1NjUsNDg1NjYsNDg1NjcsNDg1NjksNDg1NzAs'@; put 'NDg1NzEsNDg1NzIsNDg1NzMsNDg1NzQsNDg1NzUsNDg1NzYsNDg1NzcsNDg1NzgsNDg1NzksNDg1ODAsNDg1ODEsNDg1ODIsNDg1ODMsNDg1ODQsNDg1ODUsNDg1ODYsNDg1ODcsNDg1ODgsNDg1ODksNDg1OTAsNDg1OTEsNDg1OTIsNDg1OTMsNDg1OTQsNDg1OTUsNDg1OTgsNDg1OTksNDg2'@; put 'MDEsNDg2MDIsNDg2MDMsNDg2MDUsNDg2MDYsNDg2MDcsNDg2MDgsNDg2MDksNDg2MTAsNDg2MTEsNDg2MTIsNDg2MTMsNDg2MTQsNDg2MTUsNDg2MTYsNDg2MTgsNDg2MTksNDg2MjAsNDg2MjEsNDg2MjIsNDg2MjMsNDg2MjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg2MjYs'@; put 'NDg2MjcsNDg2MjksNDg2MzAsNDg2MzEsNDg2MzMsNDg2MzQsNDg2MzUsNDg2MzYsNDg2MzcsNDg2MzgsNDg2MzksNDg2NDEsNDg2NDIsNDg2NDQsNDg2NDYsNDg2NDcsNDg2NDgsNDg2NDksNDg2NTAsNDg2NTEsNDg2NTQsNDg2NTUsNDg2NTcsNDg2NTgsNDg2NTksbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsNDg2NjEsNDg2NjIsNDg2NjMsNDg2NjQsNDg2NjUsNDg2NjYsNDg2NjcsNDg2NzAsNDg2NzIsNDg2NzMsNDg2NzQsNDg2NzUsNDg2NzYsNDg2NzcsNDg2NzgsNDg2NzksNDg2ODAsNDg2ODEsNDg2ODIsNDg2ODMsNDg2ODQsNDg2ODUsNDg2ODYsNDg2ODcsNDg2ODgs'@; put 'NDg2ODksNDg2OTAsNDg2OTEsNDg2OTIsNDg2OTMsNDg2OTQsNDg2OTUsNDg2OTYsNDg2OTcsNDg2OTgsNDg2OTksNDg3MDAsNDg3MDEsNDg3MDIsNDg3MDMsNDg3MDQsNDg3MDUsNDg3MDYsNDg3MDcsNDg3MTAsNDg3MTEsNDg3MTMsNDg3MTQsNDg3MTUsNDg3MTcsNDg3MTksNDg3MjAsNDg3'@; put 'MjEsNDg3MjIsNDg3MjMsNDg3MjYsNDg3MjgsNDg3MzIsNDg3MzMsNDg3MzQsNDg3MzUsNDg3MzgsNDg3MzksNDg3NDEsNDg3NDIsNDg3NDMsNDg3NDUsNDg3NDcsNDg3NDgsNDg3NDksNDg3NTAsNDg3NTEsNDg3NTQsNDg3NTgsNDg3NTksNDg3NjAsNDg3NjEsNDg3NjIsNDg3NjYsNDg3Njcs'@; put 'NDg3NjksNDg3NzAsNDg3NzEsNDg3NzMsNDg3NzQsNDg3NzUsNDg3NzYsNDg3NzcsNDg3NzgsNDg3NzksNDg3ODIsNDg3ODYsNDg3ODcsNDg3ODgsNDg3ODksNDg3OTAsNDg3OTEsNDg3OTQsNDg3OTUsNDg3OTYsNDg3OTcsNDg3OTgsNDg3OTksNDg4MDAsNDg4MDEsNDg4MDIsNDg4MDMsNDg4'@; put 'MDQsNDg4MDUsNDg4MDYsNDg4MDcsNDg4MDksNDg4MTAsNDg4MTEsNDg4MTIsNDg4MTMsNDg4MTQsNDg4MTUsNDg4MTYsNDg4MTcsNDg4MTgsNDg4MTksNDg4MjAsNDg4MjEsNDg4MjIsNDg4MjMsNDg4MjQsNDg4MjUsNDg4MjYsNDg4MjcsNDg4MjgsNDg4MjksNDg4MzAsNDg4MzEsNDg4MzIs'@; put 'NDg4MzMsNDg4MzQsNDg4MzUsNDg4MzYsNDg4MzcsNDg4MzgsNDg4MzksNDg4NDAsNDg4NDEsNDg4NDIsNDg4NDMsNDg4NDQsNDg4NDUsNDg4NDYsNDg4NDcsNDg4NTAsNDg4NTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg4NTMsNDg4NTQsNDg4NTcsNDg4NTgsNDg4NTksNDg4'@; put 'NjAsNDg4NjEsNDg4NjIsNDg4NjMsNDg4NjUsNDg4NjYsNDg4NzAsNDg4NzEsNDg4NzIsNDg4NzMsNDg4NzQsNDg4NzUsNDg4NzcsNDg4NzgsNDg4NzksNDg4ODAsNDg4ODEsNDg4ODIsNDg4ODMsNDg4ODQsNDg4ODUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg4ODYsNDg4ODcs'@; put 'NDg4ODgsNDg4ODksNDg4OTAsNDg4OTEsNDg4OTIsNDg4OTMsNDg4OTQsNDg4OTUsNDg4OTYsNDg4OTgsNDg4OTksNDg5MDAsNDg5MDEsNDg5MDIsNDg5MDMsNDg5MDYsNDg5MDcsNDg5MDgsNDg5MDksNDg5MTAsNDg5MTEsNDg5MTIsNDg5MTMsNDg5MTQsNDg5MTUsNDg5MTYsNDg5MTcsNDg5'@; put 'MTgsNDg5MTksNDg5MjIsNDg5MjYsNDg5MjcsNDg5MjgsNDg5MjksNDg5MzAsNDg5MzEsNDg5MzIsNDg5MzMsNDg5MzQsNDg5MzUsNDg5MzYsNDg5MzcsNDg5MzgsNDg5MzksNDg5NDAsNDg5NDEsNDg5NDIsNDg5NDMsNDg5NDQsNDg5NDUsNDg5NDYsNDg5NDcsNDg5NDgsNDg5NDksNDg5NTAs'@; put 'NDg5NTEsNDg5NTIsNDg5NTMsNDg5NTQsNDg5NTUsNDg5NTYsNDg5NTcsNDg5NTgsNDg5NTksNDg5NjIsNDg5NjMsNDg5NjUsNDg5NjYsNDg5NjcsNDg5NjksNDg5NzAsNDg5NzEsNDg5NzIsNDg5NzMsNDg5NzQsNDg5NzUsNDg5NzgsNDg5NzksNDg5ODAsNDg5ODIsNDg5ODMsNDg5ODQsNDg5'@; put 'ODUsNDg5ODYsNDg5ODcsNDg5ODgsNDg5ODksNDg5OTAsNDg5OTEsNDg5OTIsNDg5OTMsNDg5OTQsNDg5OTUsNDg5OTYsNDg5OTcsNDg5OTgsNDg5OTksNDllMyw0OTAwMSw0OTAwMiw0OTAwMyw0OTAwNCw0OTAwNSw0OTAwNiw0OTAwNyw0OTAwOCw0OTAwOSw0OTAxMCw0OTAxMSw0OTAxMiw0'@; put 'OTAxMyw0OTAxNCw0OTAxNSw0OTAxNiw0OTAxNyw0OTAxOCw0OTAxOSw0OTAyMCw0OTAyMSw0OTAyMiw0OTAyMyw0OTAyNCw0OTAyNSw0OTAyNiw0OTAyNyw0OTAyOCw0OTAyOSw0OTAzMCw0OTAzMSw0OTAzMiw0OTAzMyw0OTAzNCw0OTAzNSw0OTAzNiw0OTAzNyw0OTAzOCw0OTAzOSw0OTA0'@; put 'MCw0OTA0MSw0OTA0Miw0OTA0Myw0OTA0NSw0OTA0Niw0OTA0Nyw0OTA0OCw0OTA0OSw0OTA1MCw0OTA1MSw0OTA1Miw0OTA1MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTA1NCw0OTA1NSw0OTA1Niw0OTA1Nyw0OTA1OCw0OTA1OSw0OTA2MCw0OTA2MSw0OTA2Miw0OTA2Myw0'@; put 'OTA2NCw0OTA2NSw0OTA2Niw0OTA2Nyw0OTA2OCw0OTA2OSw0OTA3MCw0OTA3MSw0OTA3Myw0OTA3NCw0OTA3NSw0OTA3Niw0OTA3Nyw0OTA3OCw0OTA3OSw0OTA4MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTA4MSw0OTA4Miw0OTA4Myw0OTA4NCw0OTA4NSw0OTA4Niw0OTA4'@; put 'Nyw0OTA4OCw0OTA4OSw0OTA5MCw0OTA5MSw0OTA5Miw0OTA5NCw0OTA5NSw0OTA5Niw0OTA5Nyw0OTA5OCw0OTA5OSw0OTEwMiw0OTEwMyw0OTEwNSw0OTEwNiw0OTEwNyw0OTEwOSw0OTExMCw0OTExMSw0OTExMiw0OTExMyw0OTExNCw0OTExNSw0OTExNyw0OTExOCw0OTEyMCw0OTEyMiw0'@; put 'OTEyMyw0OTEyNCw0OTEyNSw0OTEyNiw0OTEyNyw0OTEyOCw0OTEyOSw0OTEzMCw0OTEzMSw0OTEzMiw0OTEzMyw0OTEzNCw0OTEzNSw0OTEzNiw0OTEzNyw0OTEzOCw0OTEzOSw0OTE0MCw0OTE0MSw0OTE0Miw0OTE0Myw0OTE0NCw0OTE0NSw0OTE0Niw0OTE0Nyw0OTE0OCw0OTE0OSw0OTE1'@; put 'MCw0OTE1MSw0OTE1Miw0OTE1Myw0OTE1NCw0OTE1NSw0OTE1Niw0OTE1Nyw0OTE1OCw0OTE1OSw0OTE2MCw0OTE2MSw0OTE2Miw0OTE2Myw0OTE2NCw0OTE2NSw0OTE2Niw0OTE2Nyw0OTE2OCw0OTE2OSw0OTE3MCw0OTE3MSw0OTE3Miw0OTE3Myw0OTE3NCw0OTE3NSw0OTE3Niw0OTE3Nyw0'@; put 'OTE3OCw0OTE3OSw0OTE4MCw0OTE4MSw0OTE4Miw0OTE4Myw0OTE4NCw0OTE4NSw0OTE4Niw0OTE4Nyw0OTE4OCw0OTE4OSw0OTE5MCw0OTE5MSw0OTE5Miw0OTE5Myw0OTE5NCw0OTE5NSw0OTE5Niw0OTE5Nyw0OTE5OCw0OTE5OSw0OTIwMCw0OTIwMSw0OTIwMiw0OTIwMyw0OTIwNCw0OTIw'@; put 'NSw0OTIwNiw0OTIwNyw0OTIwOCw0OTIwOSw0OTIxMCw0OTIxMSw0OTIxMyw0OTIxNCw0OTIxNSw0OTIxNiw0OTIxNyw0OTIxOCw0OTIxOSw0OTIyMCw0OTIyMSw0OTIyMiw0OTIyMyw0OTIyNCw0OTIyNSw0OTIyNiw0OTIyNyw0OTIyOCw0OTIyOSw0OTIzMCw0OTIzMSw0OTIzMiw0OTIzNCw0'@; put 'OTIzNSw0OTIzNiw0OTIzNyw0OTIzOCw0OTIzOSw0OTI0MSw0OTI0Miw0OTI0MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTI0NSw0OTI0Niw0OTI0Nyw0OTI0OSw0OTI1MCw0OTI1MSw0OTI1Miw0OTI1Myw0OTI1NCw0OTI1NSw0OTI1OCw0OTI1OSw0OTI2MCw0OTI2MSw0OTI2'@; put 'Miw0OTI2Myw0OTI2NCw0OTI2NSw0OTI2Niw0OTI2Nyw0OTI2OCw0OTI2OSw0OTI3MCw0OTI3MSw0OTI3Miw0OTI3MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTI3NCw0OTI3NSw0OTI3Niw0OTI3Nyw0OTI3OCw0OTI3OSw0OTI4MCw0OTI4MSw0OTI4Miw0OTI4Myw0OTI4NCw0'@; put 'OTI4NSw0OTI4Niw0OTI4Nyw0OTI4OCw0OTI4OSw0OTI5MCw0OTI5MSw0OTI5Miw0OTI5Myw0OTI5NCw0OTI5NSw0OTI5OCw0OTI5OSw0OTMwMSw0OTMwMiw0OTMwMyw0OTMwNSw0OTMwNiw0OTMwNyw0OTMwOCw0OTMwOSw0OTMxMCw0OTMxMSw0OTMxNCw0OTMxNiw0OTMxOCw0OTMxOSw0OTMy'@; put 'MCw0OTMyMSw0OTMyMiw0OTMyMyw0OTMyNiw0OTMyOSw0OTMzMCw0OTMzNSw0OTMzNiw0OTMzNyw0OTMzOCw0OTMzOSw0OTM0Miw0OTM0Niw0OTM0Nyw0OTM0OCw0OTM1MCw0OTM1MSw0OTM1NCw0OTM1NSw0OTM1Nyw0OTM1OCw0OTM1OSw0OTM2MSw0OTM2Miw0OTM2Myw0OTM2NCw0OTM2NSw0'@; put 'OTM2Niw0OTM2Nyw0OTM3MCw0OTM3NCw0OTM3NSw0OTM3Niw0OTM3Nyw0OTM3OCw0OTM3OSw0OTM4Miw0OTM4Myw0OTM4NSw0OTM4Niw0OTM4Nyw0OTM4OSw0OTM5MCw0OTM5MSw0OTM5Miw0OTM5Myw0OTM5NCw0OTM5NSw0OTM5OCw0OTQwMCw0OTQwMiw0OTQwMyw0OTQwNCw0OTQwNSw0OTQw'@; put 'Niw0OTQwNyw0OTQwOSw0OTQxMCw0OTQxMSw0OTQxMyw0OTQxNCw0OTQxNSw0OTQxNyw0OTQxOCw0OTQxOSw0OTQyMCw0OTQyMSw0OTQyMiw0OTQyMyw0OTQyNSw0OTQyNiw0OTQyNyw0OTQyOCw0OTQzMCw0OTQzMSw0OTQzMiw0OTQzMyw0OTQzNCw0OTQzNSw0OTQ0MSw0OTQ0Miw0OTQ0NSw0'@; put 'OTQ0OCw0OTQ0OSw0OTQ1MCw0OTQ1MSw0OTQ1NCw0OTQ1OCw0OTQ1OSw0OTQ2MCw0OTQ2MSw0OTQ2Myw0OTQ2Niw0OTQ2Nyw0OTQ2OSw0OTQ3MCw0OTQ3MSw0OTQ3Myw0OTQ3NCw0OTQ3NSw0OTQ3Niw0OTQ3Nyw0OTQ3OCw0OTQ3OSw0OTQ4Miw0OTQ4Niw0OTQ4Nyw0OTQ4OCw0OTQ4OSw0OTQ5'@; put 'MCw0OTQ5MSw0OTQ5NCw0OTQ5NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTQ5Nyw0OTQ5OCw0OTQ5OSw0OTUwMSw0OTUwMiw0OTUwMyw0OTUwNCw0OTUwNSw0OTUwNiw0OTUwNyw0OTUxMCw0OTUxNCw0OTUxNSw0OTUxNiw0OTUxNyw0OTUxOCw0OTUxOSw0OTUyMSw0OTUyMiw0'@; put 'OTUyMyw0OTUyNSw0OTUyNiw0OTUyNyw0OTUyOSw0OTUzMCw0OTUzMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTUzMiw0OTUzMyw0OTUzNCw0OTUzNSw0OTUzNiw0OTUzNyw0OTUzOCw0OTUzOSw0OTU0MCw0OTU0Miw0OTU0Myw0OTU0NCw0OTU0NSw0OTU0Niw0OTU0Nyw0OTU1'@; put 'MSw0OTU1Myw0OTU1NCw0OTU1NSw0OTU1Nyw0OTU1OSw0OTU2MCw0OTU2MSw0OTU2Miw0OTU2Myw0OTU2Niw0OTU2OCw0OTU3MCw0OTU3MSw0OTU3Miw0OTU3NCw0OTU3NSw0OTU3OCw0OTU3OSw0OTU4MSw0OTU4Miw0OTU4Myw0OTU4NSw0OTU4Niw0OTU4Nyw0OTU4OCw0OTU4OSw0OTU5MCw0'@; put 'OTU5MSw0OTU5Miw0OTU5Myw0OTU5NCw0OTU5NSw0OTU5Niw0OTU5OCw0OTU5OSw0OTYwMCw0OTYwMSw0OTYwMiw0OTYwMyw0OTYwNSw0OTYwNiw0OTYwNyw0OTYwOSw0OTYxMCw0OTYxMSw0OTYxMyw0OTYxNCw0OTYxNSw0OTYxNiw0OTYxNyw0OTYxOCw0OTYxOSw0OTYyMSw0OTYyMiw0OTYy'@; put 'NSw0OTYyNiw0OTYyNyw0OTYyOCw0OTYyOSw0OTYzMCw0OTYzMSw0OTYzMyw0OTYzNCw0OTYzNSw0OTYzNyw0OTYzOCw0OTYzOSw0OTY0MSw0OTY0Miw0OTY0Myw0OTY0NCw0OTY0NSw0OTY0Niw0OTY0Nyw0OTY1MCw0OTY1Miw0OTY1Myw0OTY1NCw0OTY1NSw0OTY1Niw0OTY1Nyw0OTY1OCw0'@; put 'OTY1OSw0OTY2Miw0OTY2Myw0OTY2NSw0OTY2Niw0OTY2Nyw0OTY2OSw0OTY3MCw0OTY3MSw0OTY3Miw0OTY3Myw0OTY3NCw0OTY3NSw0OTY3OCw0OTY4MCw0OTY4Miw0OTY4Myw0OTY4NCw0OTY4NSw0OTY4Niw0OTY4Nyw0OTY5MCw0OTY5MSw0OTY5Myw0OTY5NCw0OTY5Nyw0OTY5OCw0OTY5'@; put 'OSw0OTcwMCw0OTcwMSw0OTcwMiw0OTcwMyw0OTcwNiw0OTcwOCw0OTcxMCw0OTcxMiw0OTcxNSw0OTcxNyw0OTcxOCw0OTcxOSw0OTcyMCw0OTcyMSw0OTcyMiw0OTcyMyw0OTcyNCw0OTcyNSw0OTcyNiw0OTcyNyw0OTcyOCw0OTcyOSw0OTczMCw0OTczMSw0OTczMiw0OTczMyxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTczNCw0OTczNSw0OTczNyw0OTczOCw0OTczOSw0OTc0MCw0OTc0MSw0OTc0Miw0OTc0Myw0OTc0Niw0OTc0Nyw0OTc0OSw0OTc1MCw0OTc1MSw0OTc1Myw0OTc1NCw0OTc1NSw0OTc1Niw0OTc1Nyw0OTc1OCw0OTc1OSw0OTc2MSw0OTc2Miw0OTc2'@; put 'Myw0OTc2NCw0OTc2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTc2Nyw0OTc2OCw0OTc2OSw0OTc3MCw0OTc3MSw0OTc3NCw0OTc3NSw0OTc3Nyw0OTc3OCw0OTc3OSw0OTc4MSw0OTc4Miw0OTc4Myw0OTc4NCw0OTc4NSw0OTc4Niw0OTc4Nyw0OTc5MCw0OTc5Miw0OTc5NCw0'@; put 'OTc5NSw0OTc5Niw0OTc5Nyw0OTc5OCw0OTc5OSw0OTgwMiw0OTgwMyw0OTgwNCw0OTgwNSw0OTgwNiw0OTgwNyw0OTgwOSw0OTgxMCw0OTgxMSw0OTgxMiw0OTgxMyw0OTgxNCw0OTgxNSw0OTgxNyw0OTgxOCw0OTgyMCw0OTgyMiw0OTgyMyw0OTgyNCw0OTgyNSw0OTgyNiw0OTgyNyw0OTgz'@; put 'MCw0OTgzMSw0OTgzMyw0OTgzNCw0OTgzNSw0OTgzOCw0OTgzOSw0OTg0MCw0OTg0MSw0OTg0Miw0OTg0Myw0OTg0Niw0OTg0OCw0OTg1MCw0OTg1MSw0OTg1Miw0OTg1Myw0OTg1NCw0OTg1NSw0OTg1Niw0OTg1Nyw0OTg1OCw0OTg1OSw0OTg2MCw0OTg2MSw0OTg2Miw0OTg2Myw0OTg2NCw0'@; put 'OTg2NSw0OTg2Niw0OTg2Nyw0OTg2OCw0OTg2OSw0OTg3MCw0OTg3MSw0OTg3Miw0OTg3Myw0OTg3NCw0OTg3NSw0OTg3Niw0OTg3Nyw0OTg3OCw0OTg3OSw0OTg4MCw0OTg4MSw0OTg4Miw0OTg4Myw0OTg4Niw0OTg4Nyw0OTg4OSw0OTg5MCw0OTg5Myw0OTg5NCw0OTg5NSw0OTg5Niw0OTg5'@; put 'Nyw0OTg5OCw0OTkwMiw0OTkwNCw0OTkwNiw0OTkwNyw0OTkwOCw0OTkwOSw0OTkxMSw0OTkxNCw0OTkxNyw0OTkxOCw0OTkxOSw0OTkyMSw0OTkyMiw0OTkyMyw0OTkyNCw0OTkyNSw0OTkyNiw0OTkyNyw0OTkzMCw0OTkzMSw0OTkzNCw0OTkzNSw0OTkzNiw0OTkzNyw0OTkzOCw0OTk0Miw0'@; put 'OTk0Myw0OTk0NSw0OTk0Niw0OTk0Nyw0OTk0OSw0OTk1MCw0OTk1MSw0OTk1Miw0OTk1Myw0OTk1NCw0OTk1NSw0OTk1OCw0OTk1OSw0OTk2Miw0OTk2Myw0OTk2NCw0OTk2NSw0OTk2Niw0OTk2Nyw0OTk2OCw0OTk2OSw0OTk3MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTk3'@; put 'MSw0OTk3Miw0OTk3Myw0OTk3NCw0OTk3NSw0OTk3Niw0OTk3Nyw0OTk3OCw0OTk3OSw0OTk4MCw0OTk4MSw0OTk4Miw0OTk4Myw0OTk4NCw0OTk4NSw0OTk4Niw0OTk4Nyw0OTk4OCw0OTk5MCw0OTk5MSw0OTk5Miw0OTk5Myw0OTk5NCw0OTk5NSw0OTk5Niw0OTk5NyxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCw0OTk5OCw0OTk5OSw1ZTQsNTAwMDEsNTAwMDIsNTAwMDMsNTAwMDQsNTAwMDUsNTAwMDYsNTAwMDcsNTAwMDgsNTAwMDksNTAwMTAsNTAwMTEsNTAwMTIsNTAwMTMsNTAwMTQsNTAwMTUsNTAwMTYsNTAwMTcsNTAwMTgsNTAwMTksNTAwMjAsNTAwMjEsNTAwMjIs'@; put 'NTAwMjMsNTAwMjYsNTAwMjcsNTAwMjksNTAwMzAsNTAwMzEsNTAwMzMsNTAwMzUsNTAwMzYsNTAwMzcsNTAwMzgsNTAwMzksNTAwNDIsNTAwNDMsNTAwNDYsNTAwNDcsNTAwNDgsNTAwNDksNTAwNTAsNTAwNTEsNTAwNTMsNTAwNTQsNTAwNTUsNTAwNTcsNTAwNTgsNTAwNTksNTAwNjEsNTAw'@; put 'NjIsNTAwNjMsNTAwNjQsNTAwNjUsNTAwNjYsNTAwNjcsNTAwNjgsNTAwNjksNTAwNzAsNTAwNzEsNTAwNzIsNTAwNzMsNTAwNzQsNTAwNzUsNTAwNzYsNTAwNzcsNTAwNzgsNTAwNzksNTAwODAsNTAwODEsNTAwODIsNTAwODMsNTAwODQsNTAwODUsNTAwODYsNTAwODcsNTAwODgsNTAwODks'@; put 'NTAwOTAsNTAwOTEsNTAwOTIsNTAwOTMsNTAwOTQsNTAwOTUsNTAwOTYsNTAwOTcsNTAwOTgsNTAwOTksNTAxMDAsNTAxMDEsNTAxMDIsNTAxMDMsNTAxMDQsNTAxMDUsNTAxMDYsNTAxMDcsNTAxMDgsNTAxMDksNTAxMTAsNTAxMTEsNTAxMTMsNTAxMTQsNTAxMTUsNTAxMTYsNTAxMTcsNTAx'@; put 'MTgsNTAxMTksNTAxMjAsNTAxMjEsNTAxMjIsNTAxMjMsNTAxMjQsNTAxMjUsNTAxMjYsNTAxMjcsNTAxMjgsNTAxMjksNTAxMzAsNTAxMzEsNTAxMzIsNTAxMzMsNTAxMzQsNTAxMzUsNTAxMzgsNTAxMzksNTAxNDEsNTAxNDIsNTAxNDUsNTAxNDcsNTAxNDgsNTAxNDksNTAxNTAsNTAxNTEs'@; put 'NTAxNTQsNTAxNTUsNTAxNTYsNTAxNTgsNTAxNTksNTAxNjAsNTAxNjEsNTAxNjIsNTAxNjMsNTAxNjYsNTAxNjcsNTAxNjksNTAxNzAsNTAxNzEsNTAxNzIsNTAxNzMsNTAxNzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAxNzUsNTAxNzYsNTAxNzcsNTAxNzgsNTAxNzksNTAx'@; put 'ODAsNTAxODEsNTAxODIsNTAxODMsNTAxODUsNTAxODYsNTAxODcsNTAxODgsNTAxODksNTAxOTAsNTAxOTEsNTAxOTMsNTAxOTQsNTAxOTUsNTAxOTYsNTAxOTcsNTAxOTgsNTAxOTksNTAyMDAsNTAyMDEsNTAyMDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAyMDMsNTAyMDQs'@; put 'NTAyMDUsNTAyMDYsNTAyMDcsNTAyMDgsNTAyMDksNTAyMTAsNTAyMTEsNTAyMTMsNTAyMTQsNTAyMTUsNTAyMTYsNTAyMTcsNTAyMTgsNTAyMTksNTAyMjEsNTAyMjIsNTAyMjMsNTAyMjUsNTAyMjYsNTAyMjcsNTAyMjksNTAyMzAsNTAyMzEsNTAyMzIsNTAyMzMsNTAyMzQsNTAyMzUsNTAy'@; put 'MzgsNTAyMzksNTAyNDAsNTAyNDEsNTAyNDIsNTAyNDMsNTAyNDQsNTAyNDUsNTAyNDYsNTAyNDcsNTAyNDksNTAyNTAsNTAyNTEsNTAyNTIsNTAyNTMsNTAyNTQsNTAyNTUsNTAyNTYsNTAyNTcsNTAyNTgsNTAyNTksNTAyNjAsNTAyNjEsNTAyNjIsNTAyNjMsNTAyNjQsNTAyNjUsNTAyNjYs'@; put 'NTAyNjcsNTAyNjgsNTAyNjksNTAyNzAsNTAyNzEsNTAyNzIsNTAyNzMsNTAyNzQsNTAyNzUsNTAyNzgsNTAyNzksNTAyODEsNTAyODIsNTAyODMsNTAyODUsNTAyODYsNTAyODcsNTAyODgsNTAyODksNTAyOTAsNTAyOTEsNTAyOTQsNTAyOTUsNTAyOTYsNTAyOTgsNTAyOTksNTAzMDAsNTAz'@; put 'MDEsNTAzMDIsNTAzMDMsNTAzMDUsNTAzMDYsNTAzMDcsNTAzMDgsNTAzMDksNTAzMTAsNTAzMTEsNTAzMTIsNTAzMTMsNTAzMTQsNTAzMTUsNTAzMTYsNTAzMTcsNTAzMTgsNTAzMTksNTAzMjAsNTAzMjEsNTAzMjIsNTAzMjMsNTAzMjUsNTAzMjYsNTAzMjcsNTAzMjgsNTAzMjksNTAzMzAs'@; put 'NTAzMzEsNTAzMzMsNTAzMzQsNTAzMzUsNTAzMzYsNTAzMzcsNTAzMzgsNTAzMzksNTAzNDAsNTAzNDEsNTAzNDIsNTAzNDMsNTAzNDQsNTAzNDUsNTAzNDYsNTAzNDcsNTAzNDgsNTAzNDksNTAzNTAsNTAzNTEsNTAzNTIsNTAzNTMsNTAzNTQsNTAzNTUsNTAzNTYsNTAzNTcsNTAzNTgsNTAz'@; put 'NTksNTAzNjEsNTAzNjIsNTAzNjMsNTAzNjUsNTAzNjYsNTAzNjcsNTAzNjgsNTAzNjksNTAzNzAsNTAzNzEsNTAzNzIsNTAzNzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAzNzQsNTAzNzUsNTAzNzYsNTAzNzcsNTAzNzgsNTAzNzksNTAzODAsNTAzODEsNTAzODIsNTAzODMs'@; put 'NTAzODQsNTAzODUsNTAzODYsNTAzODcsNTAzODgsNTAzODksNTAzOTAsNTAzOTEsNTAzOTIsNTAzOTMsNTAzOTQsNTAzOTUsNTAzOTYsNTAzOTcsNTAzOTgsNTAzOTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA0MDAsNTA0MDEsNTA0MDIsNTA0MDMsNTA0MDQsNTA0MDUsNTA0'@; put 'MDYsNTA0MDcsNTA0MDgsNTA0MTAsNTA0MTEsNTA0MTIsNTA0MTMsNTA0MTQsNTA0MTUsNTA0MTgsNTA0MTksNTA0MjEsNTA0MjIsNTA0MjMsNTA0MjUsNTA0MjcsNTA0MjgsNTA0MjksNTA0MzAsNTA0MzQsNTA0MzUsNTA0MzYsNTA0MzcsNTA0MzgsNTA0MzksNTA0NDAsNTA0NDEsNTA0NDIs'@; put 'NTA0NDMsNTA0NDUsNTA0NDYsNTA0NDcsNTA0NDksNTA0NTAsNTA0NTEsNTA0NTMsNTA0NTQsNTA0NTUsNTA0NTYsNTA0NTcsNTA0NTgsNTA0NTksNTA0NjEsNTA0NjIsNTA0NjMsNTA0NjQsNTA0NjUsNTA0NjYsNTA0NjcsNTA0NjgsNTA0NjksNTA0NzAsNTA0NzEsNTA0NzQsNTA0NzUsNTA0'@; put 'NzcsNTA0NzgsNTA0NzksNTA0ODEsNTA0ODIsNTA0ODMsNTA0ODQsNTA0ODUsNTA0ODYsNTA0ODcsNTA0OTAsNTA0OTIsNTA0OTQsNTA0OTUsNTA0OTYsNTA0OTcsNTA0OTgsNTA0OTksNTA1MDIsNTA1MDMsNTA1MDcsNTA1MTEsNTA1MTIsNTA1MTMsNTA1MTQsNTA1MTgsNTA1MjIsNTA1MjMs'@; put 'NTA1MjQsNTA1MjcsNTA1MzAsNTA1MzEsNTA1MzMsNTA1MzQsNTA1MzUsNTA1MzcsNTA1MzgsNTA1MzksNTA1NDAsNTA1NDEsNTA1NDIsNTA1NDMsNTA1NDYsNTA1NTAsNTA1NTEsNTA1NTIsNTA1NTMsNTA1NTQsNTA1NTUsNTA1NTgsNTA1NTksNTA1NjEsNTA1NjIsNTA1NjMsNTA1NjUsNTA1'@; put 'NjYsNTA1NjgsNTA1NjksNTA1NzAsNTA1NzEsNTA1NzQsNTA1NzYsNTA1NzgsNTA1NzksNTA1ODAsNTA1ODIsNTA1ODUsNTA1ODYsNTA1ODcsNTA1ODksNTA1OTAsNTA1OTEsNTA1OTMsNTA1OTQsNTA1OTUsNTA1OTYsNTA1OTcsNTA1OTgsNTA1OTksNTA2MDAsNTA2MDIsNTA2MDMsNTA2MDQs'@; put 'NTA2MDUsNTA2MDYsNTA2MDcsNTA2MDgsNTA2MDksNTA2MTAsNTA2MTEsNTA2MTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA2MTUsNTA2MTgsNTA2MjMsNTA2MjQsNTA2MjUsNTA2MjYsNTA2MjcsNTA2MzUsNTA2MzcsNTA2MzksNTA2NDIsNTA2NDMsNTA2NDUsNTA2NDYsNTA2'@; put 'NDcsNTA2NDksNTA2NTAsNTA2NTEsNTA2NTIsNTA2NTMsNTA2NTQsNTA2NTUsNTA2NTgsNTA2NjAsNTA2NjIsNTA2NjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA2NjQsNTA2NjUsNTA2NjYsNTA2NjcsNTA2NzEsNTA2NzMsNTA2NzQsNTA2NzUsNTA2NzcsNTA2ODAsNTA2ODEs'@; put 'NTA2ODIsNTA2ODMsNTA2OTAsNTA2OTEsNTA2OTIsNTA2OTcsNTA2OTgsNTA2OTksNTA3MDEsNTA3MDIsNTA3MDMsNTA3MDUsNTA3MDYsNTA3MDcsNTA3MDgsNTA3MDksNTA3MTAsNTA3MTEsNTA3MTQsNTA3MTcsNTA3MTgsNTA3MTksNTA3MjAsNTA3MjEsNTA3MjIsNTA3MjMsNTA3MjYsNTA3'@; put 'MjcsNTA3MjksNTA3MzAsNTA3MzEsNTA3MzUsNTA3MzcsNTA3MzgsNTA3NDIsNTA3NDQsNTA3NDYsNTA3NDgsNTA3NDksNTA3NTAsNTA3NTEsNTA3NTQsNTA3NTUsNTA3NTcsNTA3NTgsNTA3NTksNTA3NjEsNTA3NjIsNTA3NjMsNTA3NjQsNTA3NjUsNTA3NjYsNTA3NjcsNTA3NzAsNTA3NzQs'@; put 'NTA3NzUsNTA3NzYsNTA3NzcsNTA3NzgsNTA3NzksNTA3ODIsNTA3ODMsNTA3ODUsNTA3ODYsNTA3ODcsNTA3ODgsNTA3ODksNTA3OTAsNTA3OTEsNTA3OTIsNTA3OTMsNTA3OTQsNTA3OTUsNTA3OTcsNTA3OTgsNTA4MDAsNTA4MDIsNTA4MDMsNTA4MDQsNTA4MDUsNTA4MDYsNTA4MDcsNTA4'@; put 'MTAsNTA4MTEsNTA4MTMsNTA4MTQsNTA4MTUsNTA4MTcsNTA4MTgsNTA4MTksNTA4MjAsNTA4MjEsNTA4MjIsNTA4MjMsNTA4MjYsNTA4MjgsNTA4MzAsNTA4MzEsNTA4MzIsNTA4MzMsNTA4MzQsNTA4MzUsNTA4MzgsNTA4MzksNTA4NDEsNTA4NDIsNTA4NDMsNTA4NDUsNTA4NDYsNTA4NDcs'@; put 'NTA4NDgsNTA4NDksNTA4NTAsNTA4NTEsNTA4NTQsNTA4NTYsNTA4NTgsNTA4NTksNTA4NjAsNTA4NjEsNTA4NjIsNTA4NjMsNTA4NjYsNTA4NjcsNTA4NjksNTA4NzAsNTA4NzEsNTA4NzUsNTA4NzYsNTA4NzcsNTA4NzgsNTA4NzksNTA4ODIsNTA4ODQsNTA4ODYsNTA4ODcsNTA4ODgsNTA4'@; put 'ODksNTA4OTAsNTA4OTEsNTA4OTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA4OTUsNTA4OTcsNTA4OTgsNTA4OTksNTA5MDEsNTA5MDIsNTA5MDMsNTA5MDQsNTA5MDUsNTA5MDYsNTA5MDcsNTA5MTAsNTA5MTEsNTA5MTQsNTA5MTUsNTA5MTYsNTA5MTcsNTA5MTgsNTA5MTks'@; put 'NTA5MjIsNTA5MjMsNTA5MjUsNTA5MjYsNTA5MjcsNTA5MjksNTA5MzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA5MzEsNTA5MzIsNTA5MzMsNTA5MzQsNTA5MzUsNTA5MzgsNTA5MzksNTA5NDAsNTA5NDIsNTA5NDMsNTA5NDQsNTA5NDUsNTA5NDYsNTA5NDcsNTA5NTAsNTA5'@; put 'NTEsNTA5NTMsNTA5NTQsNTA5NTUsNTA5NTcsNTA5NTgsNTA5NTksNTA5NjAsNTA5NjEsNTA5NjIsNTA5NjMsNTA5NjYsNTA5NjgsNTA5NzAsNTA5NzEsNTA5NzIsNTA5NzMsNTA5NzQsNTA5NzUsNTA5NzgsNTA5NzksNTA5ODEsNTA5ODIsNTA5ODMsNTA5ODUsNTA5ODYsNTA5ODcsNTA5ODgs'@; put 'NTA5ODksNTA5OTAsNTA5OTEsNTA5OTQsNTA5OTYsNTA5OTgsNTFlMyw1MTAwMSw1MTAwMiw1MTAwMyw1MTAwNiw1MTAwNyw1MTAwOSw1MTAxMCw1MTAxMSw1MTAxMyw1MTAxNCw1MTAxNSw1MTAxNiw1MTAxNyw1MTAxOSw1MTAyMiw1MTAyNCw1MTAzMyw1MTAzNCw1MTAzNSw1MTAzNyw1MTAz'@; put 'OCw1MTAzOSw1MTA0MSw1MTA0Miw1MTA0Myw1MTA0NCw1MTA0NSw1MTA0Niw1MTA0Nyw1MTA0OSw1MTA1MCw1MTA1Miw1MTA1Myw1MTA1NCw1MTA1NSw1MTA1Niw1MTA1Nyw1MTA1OCw1MTA1OSw1MTA2Miw1MTA2Myw1MTA2NSw1MTA2Niw1MTA2Nyw1MTA3MSw1MTA3Miw1MTA3Myw1MTA3NCw1'@; put 'MTA3OCw1MTA4Myw1MTA4NCw1MTA4NSw1MTA4Nyw1MTA5MCw1MTA5MSw1MTA5Myw1MTA5Nyw1MTA5OSw1MTEwMCw1MTEwMSw1MTEwMiw1MTEwMyw1MTEwNiw1MTExMSw1MTExMiw1MTExMyw1MTExNCw1MTExNSw1MTExOCw1MTExOSw1MTEyMSw1MTEyMiw1MTEyMyw1MTEyNSw1MTEyNiw1MTEy'@; put 'Nyw1MTEyOCw1MTEyOSw1MTEzMCw1MTEzMSw1MTEzNCw1MTEzOCw1MTEzOSw1MTE0MCw1MTE0MSw1MTE0Miw1MTE0Myw1MTE0Niw1MTE0Nyw1MTE0OSw1MTE1MSw1MTE1Myw1MTE1NCw1MTE1NSw1MTE1Niw1MTE1Nyw1MTE1OCw1MTE1OSw1MTE2MSw1MTE2Miw1MTE2Myw1MTE2NCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTE2Niw1MTE2Nyw1MTE2OCw1MTE2OSw1MTE3MCw1MTE3MSw1MTE3Myw1MTE3NCw1MTE3NSw1MTE3Nyw1MTE3OCw1MTE3OSw1MTE4MSw1MTE4Miw1MTE4Myw1MTE4NCw1MTE4NSw1MTE4Niw1MTE4Nyw1MTE4OCw1MTE4OSw1MTE5MCw1MTE5MSw1MTE5'@; put 'Miw1MTE5Myw1MTE5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTE5NSw1MTE5Niw1MTE5Nyw1MTE5OCw1MTE5OSw1MTIwMiw1MTIwMyw1MTIwNSw1MTIwNiw1MTIwNyw1MTIwOSw1MTIxMSw1MTIxMiw1MTIxMyw1MTIxNCw1MTIxNSw1MTIxOCw1MTIyMCw1MTIyMyw1MTIyNCw1'@; put 'MTIyNSw1MTIyNiw1MTIyNyw1MTIzMCw1MTIzMSw1MTIzMyw1MTIzNCw1MTIzNSw1MTIzNyw1MTIzOCw1MTIzOSw1MTI0MCw1MTI0MSw1MTI0Miw1MTI0Myw1MTI0Niw1MTI0OCw1MTI1MCw1MTI1MSw1MTI1Miw1MTI1Myw1MTI1NCw1MTI1NSw1MTI1Nyw1MTI1OCw1MTI1OSw1MTI2MSw1MTI2'@; put 'Miw1MTI2Myw1MTI2NSw1MTI2Niw1MTI2Nyw1MTI2OCw1MTI2OSw1MTI3MCw1MTI3MSw1MTI3NCw1MTI3NSw1MTI3OCw1MTI3OSw1MTI4MCw1MTI4MSw1MTI4Miw1MTI4Myw1MTI4NSw1MTI4Niw1MTI4Nyw1MTI4OCw1MTI4OSw1MTI5MCw1MTI5MSw1MTI5Miw1MTI5Myw1MTI5NCw1MTI5NSw1'@; put 'MTI5Niw1MTI5Nyw1MTI5OCw1MTI5OSw1MTMwMCw1MTMwMSw1MTMwMiw1MTMwMyw1MTMwNCw1MTMwNSw1MTMwNiw1MTMwNyw1MTMwOCw1MTMwOSw1MTMxMCw1MTMxMSw1MTMxNCw1MTMxNSw1MTMxNyw1MTMxOCw1MTMxOSw1MTMyMSw1MTMyMyw1MTMyNCw1MTMyNSw1MTMyNiw1MTMyNyw1MTMz'@; put 'MCw1MTMzMiw1MTMzNiw1MTMzNyw1MTMzOCw1MTM0Miw1MTM0Myw1MTM0NCw1MTM0NSw1MTM0Niw1MTM0Nyw1MTM0OSw1MTM1MCw1MTM1MSw1MTM1Miw1MTM1Myw1MTM1NCw1MTM1NSw1MTM1Niw1MTM1OCw1MTM2MCw1MTM2Miw1MTM2Myw1MTM2NCw1MTM2NSw1MTM2Niw1MTM2Nyw1MTM2OSw1'@; put 'MTM3MCw1MTM3MSw1MTM3Miw1MTM3Myw1MTM3NCw1MTM3NSw1MTM3Niw1MTM3Nyw1MTM3OCw1MTM3OSw1MTM4MCw1MTM4MSw1MTM4Miw1MTM4Myw1MTM4NCw1MTM4NSw1MTM4Niw1MTM4Nyw1MTM5MCw1MTM5MSw1MTM5Miw1MTM5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTM5'@; put 'NCw1MTM5NSw1MTM5Nyw1MTM5OCw1MTM5OSw1MTQwMSw1MTQwMiw1MTQwMyw1MTQwNSw1MTQwNiw1MTQwNyw1MTQwOCw1MTQwOSw1MTQxMCw1MTQxMSw1MTQxNCw1MTQxNiw1MTQxOCw1MTQxOSw1MTQyMCw1MTQyMSw1MTQyMiw1MTQyMyw1MTQyNiw1MTQyNyw1MTQyOSxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCw1MTQzMCw1MTQzMSw1MTQzMiw1MTQzMyw1MTQzNCw1MTQzNSw1MTQzNiw1MTQzNyw1MTQzOCw1MTQzOSw1MTQ0MCw1MTQ0MSw1MTQ0Miw1MTQ0Myw1MTQ0NCw1MTQ0Niw1MTQ0Nyw1MTQ0OCw1MTQ0OSw1MTQ1MCw1MTQ1MSw1MTQ1NCw1MTQ1NSw1MTQ1Nyw1MTQ1'@; put 'OCw1MTQ1OSw1MTQ2Myw1MTQ2NCw1MTQ2NSw1MTQ2Niw1MTQ2Nyw1MTQ3MCwxMjI4OCwxMjI4OSwxMjI5MCwxODMsODIyOSw4MjMwLDE2OCwxMjI5MSwxNzMsODIxMyw4NzQxLDY1MzQwLDg3NjQsODIxNiw4MjE3LDgyMjAsODIyMSwxMjMwOCwxMjMwOSwxMjI5NiwxMjI5NywxMjI5OCwxMjI5'@; put 'OSwxMjMwMCwxMjMwMSwxMjMwMiwxMjMwMywxMjMwNCwxMjMwNSwxNzcsMjE1LDI0Nyw4ODAwLDg4MDQsODgwNSw4NzM0LDg3NTYsMTc2LDgyNDIsODI0Myw4NDUxLDg0OTEsNjU1MDQsNjU1MDUsNjU1MDksOTc5NCw5NzkyLDg3MzYsODg2OSw4OTc4LDg3MDYsODcxMSw4ODAxLDg3ODYsMTY3'@; put 'LDgyNTEsOTczNCw5NzMzLDk2NzUsOTY3OSw5Njc4LDk2NzEsOTY3MCw5NjMzLDk2MzIsOTY1MSw5NjUwLDk2NjEsOTY2MCw4NTk0LDg1OTIsODU5Myw4NTk1LDg1OTYsMTIzMDcsODgxMCw4ODExLDg3MzAsODc2NSw4NzMzLDg3NTcsODc0Nyw4NzQ4LDg3MTIsODcxNSw4ODM4LDg4MzksODgz'@; put 'NCw4ODM1LDg3NDYsODc0NSw4NzQzLDg3NDQsNjU1MDYsNTE0NzIsNTE0NzQsNTE0NzUsNTE0NzYsNTE0NzcsNTE0NzgsNTE0NzksNTE0ODEsNTE0ODIsNTE0ODMsNTE0ODQsNTE0ODUsNTE0ODYsNTE0ODcsNTE0ODgsNTE0ODksNTE0OTAsNTE0OTEsNTE0OTIsNTE0OTMsNTE0OTQsNTE0OTUs'@; put 'NTE0OTYsNTE0OTcsNTE0OTgsNTE0OTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1MDEsNTE1MDIsNTE1MDMsNTE1MDQsNTE1MDUsNTE1MDYsNTE1MDcsNTE1MDksNTE1MTAsNTE1MTEsNTE1MTIsNTE1MTMsNTE1MTQsNTE1MTUsNTE1MTYsNTE1MTcsNTE1MTgsNTE1MTksNTE1'@; put 'MjAsNTE1MjEsNTE1MjIsNTE1MjMsNTE1MjQsNTE1MjUsNTE1MjYsNTE1MjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1MjgsNTE1MjksNTE1MzAsNTE1MzEsNTE1MzIsNTE1MzMsNTE1MzQsNTE1MzUsNTE1MzgsNTE1MzksNTE1NDEsNTE1NDIsNTE1NDMsNTE1NDUsNTE1NDYs'@; put 'NTE1NDcsNTE1NDgsNTE1NDksNTE1NTAsNTE1NTEsNTE1NTQsNTE1NTYsNTE1NTcsNTE1NTgsNTE1NTksNTE1NjAsNTE1NjEsNTE1NjIsNTE1NjMsNTE1NjUsNTE1NjYsNTE1NjcsODY1OCw4NjYwLDg3MDQsODcwNywxODAsNjUzNzQsNzExLDcyOCw3MzMsNzMwLDcyOSwxODQsNzMxLDE2MSwx'@; put 'OTEsNzIwLDg3NTAsODcyMSw4NzE5LDE2NCw4NDU3LDgyNDAsOTY2NSw5NjY0LDk2NTUsOTY1NCw5ODI4LDk4MjQsOTgyNSw5ODI5LDk4MzEsOTgyNyw4ODU3LDk2NzIsOTYzNSw5NjgwLDk2ODEsOTYxOCw5NjM2LDk2MzcsOTY0MCw5NjM5LDk2MzgsOTY0MSw5ODMyLDk3NDMsOTc0Miw5NzU2'@; put 'LDk3NTgsMTgyLDgyMjQsODIyNSw4NTk3LDg1OTksODYwMSw4NTk4LDg2MDAsOTgzNyw5ODMzLDk4MzQsOTgzNiwxMjkyNywxMjgyOCw4NDcwLDEzMjU1LDg0ODIsMTMyNTAsMTMyNzIsODQ4MSw4MzY0LDE3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1NjksNTE1NzAsNTE1NzEsNTE1NzMsNTE1NzQsNTE1NzUsNTE1NzYsNTE1NzcsNTE1NzgsNTE1NzksNTE1ODEsNTE1ODIsNTE1ODMsNTE1ODQsNTE1ODUsNTE1ODYs'@; put 'NTE1ODcsNTE1ODgsNTE1ODksNTE1OTAsNTE1OTEsNTE1OTQsNTE1OTUsNTE1OTcsNTE1OTgsNTE1OTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE2MDEsNTE2MDIsNTE2MDMsNTE2MDQsNTE2MDUsNTE2MDYsNTE2MDcsNTE2MTAsNTE2MTIsNTE2MTQsNTE2MTUsNTE2MTYsNTE2'@; put 'MTcsNTE2MTgsNTE2MTksNTE2MjAsNTE2MjEsNTE2MjIsNTE2MjMsNTE2MjQsNTE2MjUsNTE2MjYsNTE2MjcsNTE2MjgsNTE2MjksNTE2MzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE2MzEsNTE2MzIsNTE2MzMsNTE2MzQsNTE2MzUsNTE2MzYsNTE2MzcsNTE2MzgsNTE2Mzks'@; put 'NTE2NDAsNTE2NDEsNTE2NDIsNTE2NDMsNTE2NDQsNTE2NDUsNTE2NDYsNTE2NDcsNTE2NTAsNTE2NTEsNTE2NTMsNTE2NTQsNTE2NTcsNTE2NTksNTE2NjAsNTE2NjEsNTE2NjIsNTE2NjMsNTE2NjYsNTE2NjgsNTE2NzEsNTE2NzIsNTE2NzUsNjUyODEsNjUyODIsNjUyODMsNjUyODQsNjUy'@; put 'ODUsNjUyODYsNjUyODcsNjUyODgsNjUyODksNjUyOTAsNjUyOTEsNjUyOTIsNjUyOTMsNjUyOTQsNjUyOTUsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsNjUzMDYsNjUzMDcsNjUzMDgsNjUzMDksNjUzMTAsNjUzMTEsNjUzMTIs'@; put 'NjUzMTMsNjUzMTQsNjUzMTUsNjUzMTYsNjUzMTcsNjUzMTgsNjUzMTksNjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUzMzYsNjUzMzcsNjUzMzgsNjUzMzksNjU1'@; put 'MTAsNjUzNDEsNjUzNDIsNjUzNDMsNjUzNDQsNjUzNDUsNjUzNDYsNjUzNDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQsNjUzNjUsNjUzNjYsNjUzNjcs'@; put 'NjUzNjgsNjUzNjksNjUzNzAsNjUzNzEsNjUzNzIsNjUzNzMsNjU1MDcsNTE2NzgsNTE2NzksNTE2ODEsNTE2ODMsNTE2ODUsNTE2ODYsNTE2ODgsNTE2ODksNTE2OTAsNTE2OTEsNTE2OTQsNTE2OTgsNTE2OTksNTE3MDAsNTE3MDEsNTE3MDIsNTE3MDMsNTE3MDYsNTE3MDcsNTE3MDksNTE3'@; put 'MTAsNTE3MTEsNTE3MTMsNTE3MTQsNTE3MTUsNTE3MTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE3MTcsNTE3MTgsNTE3MTksNTE3MjIsNTE3MjYsNTE3MjcsNTE3MjgsNTE3MjksNTE3MzAsNTE3MzEsNTE3MzMsNTE3MzQsNTE3MzUsNTE3MzcsNTE3MzgsNTE3MzksNTE3NDAs'@; put 'NTE3NDEsNTE3NDIsNTE3NDMsNTE3NDQsNTE3NDUsNTE3NDYsNTE3NDcsNTE3NDgsNTE3NDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE3NTAsNTE3NTEsNTE3NTIsNTE3NTQsNTE3NTUsNTE3NTYsNTE3NTcsNTE3NTgsNTE3NTksNTE3NjAsNTE3NjEsNTE3NjIsNTE3NjMsNTE3'@; put 'NjQsNTE3NjUsNTE3NjYsNTE3NjcsNTE3NjgsNTE3NjksNTE3NzAsNTE3NzEsNTE3NzIsNTE3NzMsNTE3NzQsNTE3NzUsNTE3NzYsNTE3NzcsNTE3NzgsNTE3NzksNTE3ODAsNTE3ODEsNTE3ODIsMTI1OTMsMTI1OTQsMTI1OTUsMTI1OTYsMTI1OTcsMTI1OTgsMTI1OTksMTI2MDAsMTI2MDEs'@; put 'MTI2MDIsMTI2MDMsMTI2MDQsMTI2MDUsMTI2MDYsMTI2MDcsMTI2MDgsMTI2MDksMTI2MTAsMTI2MTEsMTI2MTIsMTI2MTMsMTI2MTQsMTI2MTUsMTI2MTYsMTI2MTcsMTI2MTgsMTI2MTksMTI2MjAsMTI2MjEsMTI2MjIsMTI2MjMsMTI2MjQsMTI2MjUsMTI2MjYsMTI2MjcsMTI2MjgsMTI2'@; put 'MjksMTI2MzAsMTI2MzEsMTI2MzIsMTI2MzMsMTI2MzQsMTI2MzUsMTI2MzYsMTI2MzcsMTI2MzgsMTI2MzksMTI2NDAsMTI2NDEsMTI2NDIsMTI2NDMsMTI2NDQsMTI2NDUsMTI2NDYsMTI2NDcsMTI2NDgsMTI2NDksMTI2NTAsMTI2NTEsMTI2NTIsMTI2NTMsMTI2NTQsMTI2NTUsMTI2NTYs'@; put 'MTI2NTcsMTI2NTgsMTI2NTksMTI2NjAsMTI2NjEsMTI2NjIsMTI2NjMsMTI2NjQsMTI2NjUsMTI2NjYsMTI2NjcsMTI2NjgsMTI2NjksMTI2NzAsMTI2NzEsMTI2NzIsMTI2NzMsMTI2NzQsMTI2NzUsMTI2NzYsMTI2NzcsMTI2NzgsMTI2NzksMTI2ODAsMTI2ODEsMTI2ODIsMTI2ODMsMTI2'@; put 'ODQsMTI2ODUsMTI2ODYsNTE3ODMsNTE3ODQsNTE3ODUsNTE3ODYsNTE3ODcsNTE3OTAsNTE3OTEsNTE3OTMsNTE3OTQsNTE3OTUsNTE3OTcsNTE3OTgsNTE3OTksNTE4MDAsNTE4MDEsNTE4MDIsNTE4MDMsNTE4MDYsNTE4MTAsNTE4MTEsNTE4MTIsNTE4MTMsNTE4MTQsNTE4MTUsNTE4MTcs'@; put 'NTE4MTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE4MTksNTE4MjAsNTE4MjEsNTE4MjIsNTE4MjMsNTE4MjQsNTE4MjUsNTE4MjYsNTE4MjcsNTE4MjgsNTE4MjksNTE4MzAsNTE4MzEsNTE4MzIsNTE4MzMsNTE4MzQsNTE4MzUsNTE4MzYsNTE4MzgsNTE4MzksNTE4NDAsNTE4'@; put 'NDEsNTE4NDIsNTE4NDMsNTE4NDUsNTE4NDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE4NDcsNTE4NDgsNTE4NDksNTE4NTAsNTE4NTEsNTE4NTIsNTE4NTMsNTE4NTQsNTE4NTUsNTE4NTYsNTE4NTcsNTE4NTgsNTE4NTksNTE4NjAsNTE4NjEsNTE4NjIsNTE4NjMsNTE4NjUs'@; put 'NTE4NjYsNTE4NjcsNTE4NjgsNTE4NjksNTE4NzAsNTE4NzEsNTE4NzIsNTE4NzMsNTE4NzQsNTE4NzUsNTE4NzYsNTE4NzcsNTE4NzgsNTE4NzksODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1NjUsODU2Niw4NTY3LDg1NjgsODU2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODU0NCw4'@; put 'NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkz'@; put 'NSw5MzYsOTM3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCw1MTg4MCw1MTg4MSw1MTg4Miw1MTg4Myw1MTg4NCw1MTg4NSw1MTg4Niw1MTg4Nyw1MTg4OCw1MTg4OSw1MTg5MCw1MTg5MSw1MTg5Miw1MTg5Myw1MTg5NCw1MTg5NSw1MTg5Niw1MTg5Nyw1MTg5OCw1MTg5OSw1MTkwMiw1MTkwMyw1MTkwNSw1MTkwNiw1MTkwNyw1MTkw'@; put 'OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTkxMCw1MTkxMSw1MTkxMiw1MTkxMyw1MTkxNCw1MTkxNSw1MTkxOCw1MTkyMCw1MTkyMiw1MTkyNCw1MTkyNSw1MTkyNiw1MTkyNyw1MTkzMCw1MTkzMSw1MTkzMiw1MTkzMyw1MTkzNCw1MTkzNSw1MTkzNyw1MTkzOCw1MTkzOSw1'@; put 'MTk0MCw1MTk0MSw1MTk0Miw1MTk0MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTk0NCw1MTk0NSw1MTk0Niw1MTk0Nyw1MTk0OSw1MTk1MCw1MTk1MSw1MTk1Miw1MTk1Myw1MTk1NCw1MTk1NSw1MTk1Nyw1MTk1OCw1MTk1OSw1MTk2MCw1MTk2MSw1MTk2Miw1MTk2Myw1MTk2'@; put 'NCw1MTk2NSw1MTk2Niw1MTk2Nyw1MTk2OCw1MTk2OSw1MTk3MCw1MTk3MSw1MTk3Miw1MTk3Myw1MTk3NCw1MTk3NSw1MTk3Nyw1MTk3OCw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTYsOTQ5Miw5NTAwLDk1MTYsOTUwOCw5NTI0LDk1MzIsOTQ3Myw5NDc1LDk0ODcsOTQ5MSw5NDk5LDk0OTUs'@; put 'OTUwNyw5NTIzLDk1MTUsOTUzMSw5NTQ3LDk1MDQsOTUxOSw5NTEyLDk1MjcsOTUzNSw5NTAxLDk1MjAsOTUwOSw5NTI4LDk1MzgsOTQ5MCw5NDg5LDk0OTgsOTQ5Nyw5NDk0LDk0OTMsOTQ4Niw5NDg1LDk1MDIsOTUwMyw5NTA1LDk1MDYsOTUxMCw5NTExLDk1MTMsOTUxNCw5NTE3LDk1MTgs'@; put 'OTUyMSw5NTIyLDk1MjUsOTUyNiw5NTI5LDk1MzAsOTUzMyw5NTM0LDk1MzYsOTUzNyw5NTM5LDk1NDAsOTU0MSw5NTQyLDk1NDMsOTU0NCw5NTQ1LDk1NDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxOTc5LDUxOTgwLDUxOTgxLDUxOTgyLDUxOTgzLDUxOTg1LDUxOTg2LDUxOTg3LDUxOTg5LDUxOTkwLDUxOTkxLDUxOTkzLDUxOTk0LDUxOTk1LDUxOTk2LDUxOTk3LDUxOTk4LDUxOTk5LDUy'@; put 'MDAyLDUyMDAzLDUyMDA0LDUyMDA1LDUyMDA2LDUyMDA3LDUyMDA4LDUyMDA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMDEwLDUyMDExLDUyMDEyLDUyMDEzLDUyMDE0LDUyMDE1LDUyMDE2LDUyMDE3LDUyMDE4LDUyMDE5LDUyMDIwLDUyMDIxLDUyMDIyLDUyMDIzLDUyMDI0'@; put 'LDUyMDI1LDUyMDI2LDUyMDI3LDUyMDI4LDUyMDI5LDUyMDMwLDUyMDMxLDUyMDMyLDUyMDM0LDUyMDM1LDUyMDM2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMDM3LDUyMDM4LDUyMDM5LDUyMDQyLDUyMDQzLDUyMDQ1LDUyMDQ2LDUyMDQ3LDUyMDQ5LDUyMDUwLDUyMDUxLDUy'@; put 'MDUyLDUyMDUzLDUyMDU0LDUyMDU1LDUyMDU4LDUyMDU5LDUyMDYwLDUyMDYyLDUyMDYzLDUyMDY0LDUyMDY1LDUyMDY2LDUyMDY3LDUyMDY5LDUyMDcwLDUyMDcxLDUyMDcyLDUyMDczLDUyMDc0LDUyMDc1LDUyMDc2LDEzMjA1LDEzMjA2LDEzMjA3LDg0NjcsMTMyMDgsMTMyNTIsMTMyMTks'@; put 'MTMyMjAsMTMyMjEsMTMyMjIsMTMyMDksMTMyMTAsMTMyMTEsMTMyMTIsMTMyMTMsMTMyMTQsMTMyMTUsMTMyMTYsMTMyMTcsMTMyMTgsMTMyNTgsMTMxOTcsMTMxOTgsMTMxOTksMTMyNjMsMTMxOTIsMTMxOTMsMTMyNTYsMTMyMjMsMTMyMjQsMTMyMzIsMTMyMzMsMTMyMzQsMTMyMzUsMTMy'@; put 'MzYsMTMyMzcsMTMyMzgsMTMyMzksMTMyNDAsMTMyNDEsMTMxODQsMTMxODUsMTMxODYsMTMxODcsMTMxODgsMTMyNDIsMTMyNDMsMTMyNDQsMTMyNDUsMTMyNDYsMTMyNDcsMTMyMDAsMTMyMDEsMTMyMDIsMTMyMDMsMTMyMDQsODQ4NiwxMzI0OCwxMzI0OSwxMzE5NCwxMzE5NSwxMzE5Niwx'@; put 'MzI3MCwxMzI1MywxMzIyOSwxMzIzMCwxMzIzMSwxMzI3NSwxMzIyNSwxMzIyNiwxMzIyNywxMzIyOCwxMzI3NywxMzI2NCwxMzI2NywxMzI1MSwxMzI1NywxMzI3NiwxMzI1NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCw1MjA3Nyw1MjA3OCw1MjA3OSw1MjA4MCw1MjA4MSw1MjA4Miw1MjA4Myw1MjA4NCw1MjA4NSw1MjA4Niw1MjA4Nyw1MjA5MCw1MjA5MSw1MjA5Miw1MjA5Myw1MjA5NCw1MjA5NSw1MjA5Niw1MjA5Nyw1MjA5OCw1MjA5OSw1MjEwMCw1MjEwMSw1MjEwMiw1MjEwMyw1MjEw'@; put 'NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjEwNSw1MjEwNiw1MjEwNyw1MjEwOCw1MjEwOSw1MjExMCw1MjExMSw1MjExMiw1MjExMyw1MjExNCw1MjExNSw1MjExNiw1MjExNyw1MjExOCw1MjExOSw1MjEyMCw1MjEyMSw1MjEyMiw1MjEyMyw1MjEyNSw1MjEyNiw1MjEyNyw1'@; put 'MjEyOCw1MjEyOSw1MjEzMCw1MjEzMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjEzMiw1MjEzMyw1MjEzNCw1MjEzNSw1MjEzNiw1MjEzNyw1MjEzOCw1MjEzOSw1MjE0MCw1MjE0MSw1MjE0Miw1MjE0Myw1MjE0NCw1MjE0NSw1MjE0Niw1MjE0Nyw1MjE0OCw1MjE0OSw1MjE1'@; put 'MCw1MjE1MSw1MjE1Myw1MjE1NCw1MjE1NSw1MjE1Niw1MjE1Nyw1MjE1OCw1MjE1OSw1MjE2MCw1MjE2MSw1MjE2Miw1MjE2Myw1MjE2NCwxOTgsMjA4LDE3MCwyOTQsbnVsbCwzMDYsbnVsbCwzMTksMzIxLDIxNiwzMzgsMTg2LDIyMiwzNTgsMzMwLG51bGwsMTI4OTYsMTI4OTcsMTI4OTgs'@; put 'MTI4OTksMTI5MDAsMTI5MDEsMTI5MDIsMTI5MDMsMTI5MDQsMTI5MDUsMTI5MDYsMTI5MDcsMTI5MDgsMTI5MDksMTI5MTAsMTI5MTEsMTI5MTIsMTI5MTMsMTI5MTQsMTI5MTUsMTI5MTYsMTI5MTcsMTI5MTgsMTI5MTksMTI5MjAsMTI5MjEsMTI5MjIsMTI5MjMsOTQyNCw5NDI1LDk0MjYs'@; put 'OTQyNyw5NDI4LDk0MjksOTQzMCw5NDMxLDk0MzIsOTQzMyw5NDM0LDk0MzUsOTQzNiw5NDM3LDk0MzgsOTQzOSw5NDQwLDk0NDEsOTQ0Miw5NDQzLDk0NDQsOTQ0NSw5NDQ2LDk0NDcsOTQ0OCw5NDQ5LDkzMTIsOTMxMyw5MzE0LDkzMTUsOTMxNiw5MzE3LDkzMTgsOTMxOSw5MzIwLDkzMjEs'@; put 'OTMyMiw5MzIzLDkzMjQsOTMyNSw5MzI2LDE4OSw4NTMxLDg1MzIsMTg4LDE5MCw4NTM5LDg1NDAsODU0MSw4NTQyLDUyMTY1LDUyMTY2LDUyMTY3LDUyMTY4LDUyMTY5LDUyMTcwLDUyMTcxLDUyMTcyLDUyMTczLDUyMTc0LDUyMTc1LDUyMTc2LDUyMTc3LDUyMTc4LDUyMTc5LDUyMTgxLDUy'@; put 'MTgyLDUyMTgzLDUyMTg0LDUyMTg1LDUyMTg2LDUyMTg3LDUyMTg4LDUyMTg5LDUyMTkwLDUyMTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMTkyLDUyMTkzLDUyMTk0LDUyMTk1LDUyMTk3LDUyMTk4LDUyMjAwLDUyMjAyLDUyMjAzLDUyMjA0LDUyMjA1LDUyMjA2LDUyMjA3'@; put 'LDUyMjA4LDUyMjA5LDUyMjEwLDUyMjExLDUyMjEyLDUyMjEzLDUyMjE0LDUyMjE1LDUyMjE2LDUyMjE3LDUyMjE4LDUyMjE5LDUyMjIwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMjIxLDUyMjIyLDUyMjIzLDUyMjI0LDUyMjI1LDUyMjI2LDUyMjI3LDUyMjI4LDUyMjI5LDUy'@; put 'MjMwLDUyMjMxLDUyMjMyLDUyMjMzLDUyMjM0LDUyMjM1LDUyMjM4LDUyMjM5LDUyMjQxLDUyMjQyLDUyMjQzLDUyMjQ1LDUyMjQ2LDUyMjQ3LDUyMjQ4LDUyMjQ5LDUyMjUwLDUyMjUxLDUyMjU0LDUyMjU1LDUyMjU2LDUyMjU5LDUyMjYwLDIzMCwyNzMsMjQwLDI5NSwzMDUsMzA3LDMxMiwz'@; put 'MjAsMzIyLDI0OCwzMzksMjIzLDI1NCwzNTksMzMxLDMyOSwxMjgwMCwxMjgwMSwxMjgwMiwxMjgwMywxMjgwNCwxMjgwNSwxMjgwNiwxMjgwNywxMjgwOCwxMjgwOSwxMjgxMCwxMjgxMSwxMjgxMiwxMjgxMywxMjgxNCwxMjgxNSwxMjgxNiwxMjgxNywxMjgxOCwxMjgxOSwxMjgyMCwxMjgy'@; put 'MSwxMjgyMiwxMjgyMywxMjgyNCwxMjgyNSwxMjgyNiwxMjgyNyw5MzcyLDkzNzMsOTM3NCw5Mzc1LDkzNzYsOTM3Nyw5Mzc4LDkzNzksOTM4MCw5MzgxLDkzODIsOTM4Myw5Mzg0LDkzODUsOTM4Niw5Mzg3LDkzODgsOTM4OSw5MzkwLDkzOTEsOTM5Miw5MzkzLDkzOTQsOTM5NSw5Mzk2LDkz'@; put 'OTcsOTMzMiw5MzMzLDkzMzQsOTMzNSw5MzM2LDkzMzcsOTMzOCw5MzM5LDkzNDAsOTM0MSw5MzQyLDkzNDMsOTM0NCw5MzQ1LDkzNDYsMTg1LDE3OCwxNzksODMwOCw4MzE5LDgzMjEsODMyMiw4MzIzLDgzMjQsNTIyNjEsNTIyNjIsNTIyNjYsNTIyNjcsNTIyNjksNTIyNzEsNTIyNzMsNTIy'@; put 'NzQsNTIyNzUsNTIyNzYsNTIyNzcsNTIyNzgsNTIyNzksNTIyODIsNTIyODcsNTIyODgsNTIyODksNTIyOTAsNTIyOTEsNTIyOTQsNTIyOTUsNTIyOTcsNTIyOTgsNTIyOTksNTIzMDEsNTIzMDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIzMDMsNTIzMDQsNTIzMDUsNTIzMDYs'@; put 'NTIzMDcsNTIzMTAsNTIzMTQsNTIzMTUsNTIzMTYsNTIzMTcsNTIzMTgsNTIzMTksNTIzMjEsNTIzMjIsNTIzMjMsNTIzMjUsNTIzMjcsNTIzMjksNTIzMzAsNTIzMzEsNTIzMzIsNTIzMzMsNTIzMzQsNTIzMzUsNTIzMzcsNTIzMzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIz'@; put 'MzksNTIzNDAsNTIzNDIsNTIzNDMsNTIzNDQsNTIzNDUsNTIzNDYsNTIzNDcsNTIzNDgsNTIzNDksNTIzNTAsNTIzNTEsNTIzNTIsNTIzNTMsNTIzNTQsNTIzNTUsNTIzNTYsNTIzNTcsNTIzNTgsNTIzNTksNTIzNjAsNTIzNjEsNTIzNjIsNTIzNjMsNTIzNjQsNTIzNjUsNTIzNjYsNTIzNjcs'@; put 'NTIzNjgsNTIzNjksNTIzNzAsNTIzNzEsMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIsMTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYsMTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIzNzMsMTIzNzQsMTIzNzUsMTIz'@; put 'NzYsMTIzNzcsMTIzNzgsMTIzNzksMTIzODAsMTIzODEsMTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgsMTIzODksMTIzOTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIzOTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAsMTI0MDEsMTI0MDIsMTI0MDMs'@; put 'MTI0MDQsMTI0MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0MTYsMTI0MTcsMTI0MTgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0MjgsMTI0MjksMTI0MzAsMTI0'@; put 'MzEsMTI0MzIsMTI0MzMsMTI0MzQsMTI0MzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMzcyLDUyMzczLDUyMzc0LDUyMzc1LDUyMzc4LDUyMzc5LDUyMzgxLDUyMzgyLDUyMzgzLDUyMzg1LDUyMzg2LDUyMzg3LDUyMzg4LDUyMzg5'@; put 'LDUyMzkwLDUyMzkxLDUyMzk0LDUyMzk4LDUyMzk5LDUyNDAwLDUyNDAxLDUyNDAyLDUyNDAzLDUyNDA2LDUyNDA3LDUyNDA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNDEwLDUyNDExLDUyNDEzLDUyNDE0LDUyNDE1LDUyNDE2LDUyNDE3LDUyNDE4LDUyNDE5LDUyNDIyLDUy'@; put 'NDI0LDUyNDI2LDUyNDI3LDUyNDI4LDUyNDI5LDUyNDMwLDUyNDMxLDUyNDMzLDUyNDM0LDUyNDM1LDUyNDM3LDUyNDM4LDUyNDM5LDUyNDQwLDUyNDQxLDUyNDQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNDQzLDUyNDQ0LDUyNDQ1LDUyNDQ2LDUyNDQ3LDUyNDQ4LDUyNDQ5'@; put 'LDUyNDUwLDUyNDUxLDUyNDUzLDUyNDU0LDUyNDU1LDUyNDU2LDUyNDU3LDUyNDU4LDUyNDU5LDUyNDYxLDUyNDYyLDUyNDYzLDUyNDY1LDUyNDY2LDUyNDY3LDUyNDY4LDUyNDY5LDUyNDcwLDUyNDcxLDUyNDcyLDUyNDczLDUyNDc0LDUyNDc1LDUyNDc2LDUyNDc3LDEyNDQ5LDEyNDUwLDEy'@; put 'NDUxLDEyNDUyLDEyNDUzLDEyNDU0LDEyNDU1LDEyNDU2LDEyNDU3LDEyNDU4LDEyNDU5LDEyNDYwLDEyNDYxLDEyNDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEyNDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4'@; put 'LDEyNDc5LDEyNDgwLDEyNDgxLDEyNDgyLDEyNDgzLDEyNDg0LDEyNDg1LDEyNDg2LDEyNDg3LDEyNDg4LDEyNDg5LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAxLDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEy'@; put 'NTA2LDEyNTA3LDEyNTA4LDEyNTA5LDEyNTEwLDEyNTExLDEyNTEyLDEyNTEzLDEyNTE0LDEyNTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEyNTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMz'@; put 'LDEyNTM0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjQ3OCw1MjQ3OSw1MjQ4MCw1MjQ4Miw1MjQ4Myw1MjQ4NCw1MjQ4NSw1MjQ4Niw1MjQ4Nyw1MjQ5MCw1MjQ5MSw1MjQ5Myw1MjQ5NCw1MjQ5NSw1MjQ5Nyw1MjQ5OCw1MjQ5OSw1MjUwMCw1MjUwMSw1MjUw'@; put 'Miw1MjUwMyw1MjUwNiw1MjUwOCw1MjUxMCw1MjUxMSw1MjUxMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjUxMyw1MjUxNCw1MjUxNSw1MjUxNyw1MjUxOCw1MjUxOSw1MjUyMSw1MjUyMiw1MjUyMyw1MjUyNSw1MjUyNiw1MjUyNyw1MjUyOCw1MjUyOSw1MjUzMCw1MjUzMSw1'@; put 'MjUzMiw1MjUzMyw1MjUzNCw1MjUzNSw1MjUzNiw1MjUzOCw1MjUzOSw1MjU0MCw1MjU0MSw1MjU0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjU0Myw1MjU0NCw1MjU0NSw1MjU0Niw1MjU0Nyw1MjU0OCw1MjU0OSw1MjU1MCw1MjU1MSw1MjU1Miw1MjU1Myw1MjU1NCw1MjU1'@; put 'NSw1MjU1Niw1MjU1Nyw1MjU1OCw1MjU1OSw1MjU2MCw1MjU2MSw1MjU2Miw1MjU2Myw1MjU2NCw1MjU2NSw1MjU2Niw1MjU2Nyw1MjU2OCw1MjU2OSw1MjU3MCw1MjU3MSw1MjU3Myw1MjU3NCw1MjU3NSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYsMTA0NywxMDQ4'@; put 'LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4'@; put 'LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNTc3LDUyNTc4LDUyNTc5LDUyNTgxLDUyNTgyLDUyNTgzLDUyNTg0LDUyNTg1LDUyNTg2LDUyNTg3LDUyNTkwLDUyNTkyLDUy'@; put 'NTk0LDUyNTk1LDUyNTk2LDUyNTk3LDUyNTk4LDUyNTk5LDUyNjAxLDUyNjAyLDUyNjAzLDUyNjA0LDUyNjA1LDUyNjA2LDUyNjA3LDUyNjA4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNjA5LDUyNjEwLDUyNjExLDUyNjEyLDUyNjEzLDUyNjE0LDUyNjE1LDUyNjE3LDUyNjE4'@; put 'LDUyNjE5LDUyNjIwLDUyNjIxLDUyNjIyLDUyNjIzLDUyNjI0LDUyNjI1LDUyNjI2LDUyNjI3LDUyNjMwLDUyNjMxLDUyNjMzLDUyNjM0LDUyNjM1LDUyNjM3LDUyNjM4LDUyNjM5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNjQwLDUyNjQxLDUyNjQyLDUyNjQzLDUyNjQ2LDUy'@; put 'NjQ4LDUyNjUwLDUyNjUxLDUyNjUyLDUyNjUzLDUyNjU0LDUyNjU1LDUyNjU3LDUyNjU4LDUyNjU5LDUyNjYwLDUyNjYxLDUyNjYyLDUyNjYzLDUyNjY0LDUyNjY1LDUyNjY2LDUyNjY3LDUyNjY4LDUyNjY5LDUyNjcwLDUyNjcxLDUyNjcyLDUyNjczLDUyNjc0LDUyNjc1LDUyNjc3LG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI2NzgsNTI2NzksNTI2ODAsNTI2ODEsNTI2ODIs'@; put 'NTI2ODMsNTI2ODUsNTI2ODYsNTI2ODcsNTI2ODksNTI2OTAsNTI2OTEsNTI2OTIsNTI2OTMsNTI2OTQsNTI2OTUsNTI2OTYsNTI2OTcsNTI2OTgsNTI2OTksNTI3MDAsNTI3MDEsNTI3MDIsNTI3MDMsNTI3MDQsNTI3MDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI3MDYsNTI3'@; put 'MDcsNTI3MDgsNTI3MDksNTI3MTAsNTI3MTEsNTI3MTMsNTI3MTQsNTI3MTUsNTI3MTcsNTI3MTgsNTI3MTksNTI3MjEsNTI3MjIsNTI3MjMsNTI3MjQsNTI3MjUsNTI3MjYsNTI3MjcsNTI3MzAsNTI3MzIsNTI3MzQsNTI3MzUsNTI3MzYsNTI3MzcsNTI3MzgsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsNTI3MzksNTI3NDEsNTI3NDIsNTI3NDMsNTI3NDUsNTI3NDYsNTI3NDcsNTI3NDksNTI3NTAsNTI3NTEsNTI3NTIsNTI3NTMsNTI3NTQsNTI3NTUsNTI3NTcsNTI3NTgsNTI3NTksNTI3NjAsNTI3NjIsNTI3NjMsNTI3NjQsNTI3NjUsNTI3NjYsNTI3NjcsNTI3NzAsNTI3'@; put 'NzEsNTI3NzMsNTI3NzQsNTI3NzUsNTI3NzcsNTI3NzgsNTI3NzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCw1Mjc4MCw1Mjc4MSw1Mjc4Miw1Mjc4Myw1Mjc4Niw1Mjc4OCw1Mjc5MCw1Mjc5MSw1Mjc5Miw1Mjc5Myw1Mjc5NCw1Mjc5NSw1Mjc5Niw1Mjc5Nyw1Mjc5OCw1Mjc5OSw1MjgwMCw1MjgwMSw1MjgwMiw1MjgwMyw1MjgwNCw1MjgwNSw1MjgwNiw1MjgwNyw1MjgwOCw1'@; put 'MjgwOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjgxMCw1MjgxMSw1MjgxMiw1MjgxMyw1MjgxNCw1MjgxNSw1MjgxNiw1MjgxNyw1MjgxOCw1MjgxOSw1MjgyMCw1MjgyMSw1MjgyMiw1MjgyMyw1MjgyNiw1MjgyNyw1MjgyOSw1MjgzMCw1MjgzNCw1MjgzNSw1MjgzNiw1Mjgz'@; put 'Nyw1MjgzOCw1MjgzOSw1Mjg0Miw1Mjg0NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mjg0Niw1Mjg0Nyw1Mjg0OCw1Mjg0OSw1Mjg1MCw1Mjg1MSw1Mjg1NCw1Mjg1NSw1Mjg1Nyw1Mjg1OCw1Mjg1OSw1Mjg2MSw1Mjg2Miw1Mjg2Myw1Mjg2NCw1Mjg2NSw1Mjg2Niw1Mjg2Nyw1'@; put 'Mjg3MCw1Mjg3Miw1Mjg3NCw1Mjg3NSw1Mjg3Niw1Mjg3Nyw1Mjg3OCw1Mjg3OSw1Mjg4Miw1Mjg4Myw1Mjg4NSw1Mjg4Niw1Mjg4Nyw1Mjg4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyODkwLDUyODkxLDUyODkyLDUyODkzLDUyODk0LDUyODk1LDUyODk4LDUyOTAyLDUyOTAzLDUyOTA0LDUyOTA1LDUyOTA2LDUyOTA3LDUyOTEwLDUyOTExLDUyOTEyLDUyOTEzLDUyOTE0'@; put 'LDUyOTE1LDUyOTE2LDUyOTE3LDUyOTE4LDUyOTE5LDUyOTIwLDUyOTIxLDUyOTIyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyOTIzLDUyOTI0LDUyOTI1LDUyOTI2LDUyOTI3LDUyOTI4LDUyOTMwLDUyOTMxLDUyOTMyLDUyOTMzLDUyOTM0LDUyOTM1LDUyOTM2LDUyOTM3LDUy'@; put 'OTM4LDUyOTM5LDUyOTQwLDUyOTQxLDUyOTQyLDUyOTQzLDUyOTQ0LDUyOTQ1LDUyOTQ2LDUyOTQ3LDUyOTQ4LDUyOTQ5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyOTUwLDUyOTUxLDUyOTUyLDUyOTUzLDUyOTU0LDUyOTU1LDUyOTU2LDUyOTU3LDUyOTU4LDUyOTU5LDUyOTYw'@; put 'LDUyOTYxLDUyOTYyLDUyOTYzLDUyOTY2LDUyOTY3LDUyOTY5LDUyOTcwLDUyOTczLDUyOTc0LDUyOTc1LDUyOTc2LDUyOTc3LDUyOTc4LDUyOTc5LDUyOTgyLDUyOTg2LDUyOTg3LDUyOTg4LDUyOTg5LDUyOTkwLDUyOTkxLDQ0MDMyLDQ0MDMzLDQ0MDM2LDQ0MDM5LDQ0MDQwLDQ0MDQxLDQ0'@; put 'MDQyLDQ0MDQ4LDQ0MDQ5LDQ0MDUwLDQ0MDUxLDQ0MDUyLDQ0MDUzLDQ0MDU0LDQ0MDU1LDQ0MDU3LDQ0MDU4LDQ0MDU5LDQ0MDYwLDQ0MDYxLDQ0MDY0LDQ0MDY4LDQ0MDc2LDQ0MDc3LDQ0MDc5LDQ0MDgwLDQ0MDgxLDQ0MDg4LDQ0MDg5LDQ0MDkyLDQ0MDk2LDQ0MTA3LDQ0MTA5LDQ0MTE2'@; put 'LDQ0MTIwLDQ0MTI0LDQ0MTQ0LDQ0MTQ1LDQ0MTQ4LDQ0MTUxLDQ0MTUyLDQ0MTU0LDQ0MTYwLDQ0MTYxLDQ0MTYzLDQ0MTY0LDQ0MTY1LDQ0MTY2LDQ0MTY5LDQ0MTcwLDQ0MTcxLDQ0MTcyLDQ0MTc2LDQ0MTgwLDQ0MTg4LDQ0MTg5LDQ0MTkxLDQ0MTkyLDQ0MTkzLDQ0MjAwLDQ0MjAxLDQ0'@; put 'MjAyLDQ0MjA0LDQ0MjA3LDQ0MjA4LDQ0MjE2LDQ0MjE3LDQ0MjE5LDQ0MjIwLDQ0MjIxLDQ0MjI1LDQ0MjI4LDQ0MjMyLDQ0MjM2LDQ0MjQ1LDQ0MjQ3LDQ0MjU2LDQ0MjU3LDQ0MjYwLDQ0MjYzLDQ0MjY0LDQ0MjY2LDQ0MjY4LDQ0MjcxLDQ0MjcyLDQ0MjczLDQ0Mjc1LDQ0Mjc3LDQ0Mjc4'@; put 'LDQ0Mjg0LDQ0Mjg1LDQ0Mjg4LDQ0MjkyLDQ0Mjk0LDUyOTk0LDUyOTk1LDUyOTk3LDUyOTk4LDUyOTk5LDUzMDAxLDUzMDAyLDUzMDAzLDUzMDA0LDUzMDA1LDUzMDA2LDUzMDA3LDUzMDEwLDUzMDEyLDUzMDE0LDUzMDE1LDUzMDE2LDUzMDE3LDUzMDE4LDUzMDE5LDUzMDIxLDUzMDIyLDUz'@; put 'MDIzLDUzMDI1LDUzMDI2LDUzMDI3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMDI5LDUzMDMwLDUzMDMxLDUzMDMyLDUzMDMzLDUzMDM0LDUzMDM1LDUzMDM4LDUzMDQyLDUzMDQzLDUzMDQ0LDUzMDQ1LDUzMDQ2LDUzMDQ3LDUzMDQ5LDUzMDUwLDUzMDUxLDUzMDUyLDUzMDUz'@; put 'LDUzMDU0LDUzMDU1LDUzMDU2LDUzMDU3LDUzMDU4LDUzMDU5LDUzMDYwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMDYxLDUzMDYyLDUzMDYzLDUzMDY0LDUzMDY1LDUzMDY2LDUzMDY3LDUzMDY4LDUzMDY5LDUzMDcwLDUzMDcxLDUzMDcyLDUzMDczLDUzMDc0LDUzMDc1LDUz'@; put 'MDc4LDUzMDc5LDUzMDgxLDUzMDgyLDUzMDgzLDUzMDg1LDUzMDg2LDUzMDg3LDUzMDg4LDUzMDg5LDUzMDkwLDUzMDkxLDUzMDk0LDUzMDk2LDUzMDk4LDUzMDk5LDUzMTAwLDQ0MzAwLDQ0MzAxLDQ0MzAzLDQ0MzA1LDQ0MzEyLDQ0MzE2LDQ0MzIwLDQ0MzI5LDQ0MzMyLDQ0MzMzLDQ0MzQw'@; put 'LDQ0MzQxLDQ0MzQ0LDQ0MzQ4LDQ0MzU2LDQ0MzU3LDQ0MzU5LDQ0MzYxLDQ0MzY4LDQ0MzcyLDQ0Mzc2LDQ0Mzg1LDQ0Mzg3LDQ0Mzk2LDQ0Mzk3LDQ0NDAwLDQ0NDAzLDQ0NDA0LDQ0NDA1LDQ0NDA2LDQ0NDExLDQ0NDEyLDQ0NDEzLDQ0NDE1LDQ0NDE3LDQ0NDE4LDQ0NDI0LDQ0NDI1LDQ0'@; put 'NDI4LDQ0NDMyLDQ0NDQ0LDQ0NDQ1LDQ0NDUyLDQ0NDcxLDQ0NDgwLDQ0NDgxLDQ0NDg0LDQ0NDg4LDQ0NDk2LDQ0NDk3LDQ0NDk5LDQ0NTA4LDQ0NTEyLDQ0NTE2LDQ0NTM2LDQ0NTM3LDQ0NTQwLDQ0NTQzLDQ0NTQ0LDQ0NTQ1LDQ0NTUyLDQ0NTUzLDQ0NTU1LDQ0NTU3LDQ0NTY0LDQ0NTky'@; put 'LDQ0NTkzLDQ0NTk2LDQ0NTk5LDQ0NjAwLDQ0NjAyLDQ0NjA4LDQ0NjA5LDQ0NjExLDQ0NjEzLDQ0NjE0LDQ0NjE4LDQ0NjIwLDQ0NjIxLDQ0NjIyLDQ0NjI0LDQ0NjI4LDQ0NjMwLDQ0NjM2LDQ0NjM3LDQ0NjM5LDQ0NjQwLDQ0NjQxLDQ0NjQ1LDQ0NjQ4LDQ0NjQ5LDQ0NjUyLDQ0NjU2LDQ0'@; put 'NjY0LDUzMTAxLDUzMTAyLDUzMTAzLDUzMTA2LDUzMTA3LDUzMTA5LDUzMTEwLDUzMTExLDUzMTEzLDUzMTE0LDUzMTE1LDUzMTE2LDUzMTE3LDUzMTE4LDUzMTE5LDUzMTIxLDUzMTIyLDUzMTIzLDUzMTI0LDUzMTI2LDUzMTI3LDUzMTI4LDUzMTI5LDUzMTMwLDUzMTMxLDUzMTMzLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMTM0LDUzMTM1LDUzMTM2LDUzMTM3LDUzMTM4LDUzMTM5LDUzMTQwLDUzMTQxLDUzMTQyLDUzMTQzLDUzMTQ0LDUzMTQ1LDUzMTQ2LDUzMTQ3LDUzMTQ4LDUzMTQ5LDUzMTUwLDUzMTUxLDUzMTUyLDUzMTU0LDUzMTU1LDUzMTU2LDUzMTU3LDUz'@; put 'MTU4LDUzMTU5LDUzMTYxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMTYyLDUzMTYzLDUzMTY0LDUzMTY1LDUzMTY2LDUzMTY3LDUzMTY5LDUzMTcwLDUzMTcxLDUzMTcyLDUzMTczLDUzMTc0LDUzMTc1LDUzMTc2LDUzMTc3LDUzMTc4LDUzMTc5LDUzMTgwLDUzMTgxLDUzMTgy'@; put 'LDUzMTgzLDUzMTg0LDUzMTg1LDUzMTg2LDUzMTg3LDUzMTg5LDUzMTkwLDUzMTkxLDUzMTkyLDUzMTkzLDUzMTk0LDUzMTk1LDQ0NjY1LDQ0NjY3LDQ0NjY4LDQ0NjY5LDQ0Njc2LDQ0Njc3LDQ0Njg0LDQ0NzMyLDQ0NzMzLDQ0NzM0LDQ0NzM2LDQ0NzQwLDQ0NzQ4LDQ0NzQ5LDQ0NzUxLDQ0'@; put 'NzUyLDQ0NzUzLDQ0NzYwLDQ0NzYxLDQ0NzY0LDQ0Nzc2LDQ0Nzc5LDQ0NzgxLDQ0Nzg4LDQ0NzkyLDQ0Nzk2LDQ0ODA3LDQ0ODA4LDQ0ODEzLDQ0ODE2LDQ0ODQ0LDQ0ODQ1LDQ0ODQ4LDQ0ODUwLDQ0ODUyLDQ0ODYwLDQ0ODYxLDQ0ODYzLDQ0ODY1LDQ0ODY2LDQ0ODY3LDQ0ODcyLDQ0ODcz'@; put 'LDQ0ODgwLDQ0ODkyLDQ0ODkzLDQ0OTAwLDQ0OTAxLDQ0OTIxLDQ0OTI4LDQ0OTMyLDQ0OTM2LDQ0OTQ0LDQ0OTQ1LDQ0OTQ5LDQ0OTU2LDQ0OTg0LDQ0OTg1LDQ0OTg4LDQ0OTkyLDQ0OTk5LDQ1ZTMsNDUwMDEsNDUwMDMsNDUwMDUsNDUwMDYsNDUwMTIsNDUwMjAsNDUwMzIsNDUwMzMsNDUw'@; put 'NDAsNDUwNDEsNDUwNDQsNDUwNDgsNDUwNTYsNDUwNTcsNDUwNjAsNDUwNjgsNDUwNzIsNDUwNzYsNDUwODQsNDUwODUsNDUwOTYsNDUxMjQsNDUxMjUsNDUxMjgsNDUxMzAsNDUxMzIsNDUxMzQsNDUxMzksNDUxNDAsNDUxNDEsNDUxNDMsNDUxNDUsNTMxOTYsNTMxOTcsNTMxOTgsNTMxOTks'@; put 'NTMyMDAsNTMyMDEsNTMyMDIsNTMyMDMsNTMyMDQsNTMyMDUsNTMyMDYsNTMyMDcsNTMyMDgsNTMyMDksNTMyMTAsNTMyMTEsNTMyMTIsNTMyMTMsNTMyMTQsNTMyMTUsNTMyMTgsNTMyMTksNTMyMjEsNTMyMjIsNTMyMjMsNTMyMjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMy'@; put 'MjYsNTMyMjcsNTMyMjgsNTMyMjksNTMyMzAsNTMyMzEsNTMyMzQsNTMyMzYsNTMyMzgsNTMyMzksNTMyNDAsNTMyNDEsNTMyNDIsNTMyNDMsNTMyNDUsNTMyNDYsNTMyNDcsNTMyNDksNTMyNTAsNTMyNTEsNTMyNTMsNTMyNTQsNTMyNTUsNTMyNTYsNTMyNTcsNTMyNTgsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsNTMyNTksNTMyNjAsNTMyNjEsNTMyNjIsNTMyNjMsNTMyNjQsNTMyNjYsNTMyNjcsNTMyNjgsNTMyNjksNTMyNzAsNTMyNzEsNTMyNzMsNTMyNzQsNTMyNzUsNTMyNzYsNTMyNzcsNTMyNzgsNTMyNzksNTMyODAsNTMyODEsNTMyODIsNTMyODMsNTMyODQsNTMy'@; put 'ODUsNTMyODYsNTMyODcsNTMyODgsNTMyODksNTMyOTAsNTMyOTEsNTMyOTIsNDUxNDksNDUxODAsNDUxODEsNDUxODQsNDUxODgsNDUxOTYsNDUxOTcsNDUxOTksNDUyMDEsNDUyMDgsNDUyMDksNDUyMTAsNDUyMTIsNDUyMTUsNDUyMTYsNDUyMTcsNDUyMTgsNDUyMjQsNDUyMjUsNDUyMjcs'@; put 'NDUyMjgsNDUyMjksNDUyMzAsNDUyMzEsNDUyMzMsNDUyMzUsNDUyMzYsNDUyMzcsNDUyNDAsNDUyNDQsNDUyNTIsNDUyNTMsNDUyNTUsNDUyNTYsNDUyNTcsNDUyNjQsNDUyNjUsNDUyNjgsNDUyNzIsNDUyODAsNDUyODUsNDUzMjAsNDUzMjEsNDUzMjMsNDUzMjQsNDUzMjgsNDUzMzAsNDUz'@; put 'MzEsNDUzMzYsNDUzMzcsNDUzMzksNDUzNDAsNDUzNDEsNDUzNDcsNDUzNDgsNDUzNDksNDUzNTIsNDUzNTYsNDUzNjQsNDUzNjUsNDUzNjcsNDUzNjgsNDUzNjksNDUzNzYsNDUzNzcsNDUzODAsNDUzODQsNDUzOTIsNDUzOTMsNDUzOTYsNDUzOTcsNDU0MDAsNDU0MDQsNDU0MDgsNDU0MzIs'@; put 'NDU0MzMsNDU0MzYsNDU0NDAsNDU0NDIsNDU0NDgsNDU0NDksNDU0NTEsNDU0NTMsNDU0NTgsNDU0NTksNDU0NjAsNDU0NjQsNDU0NjgsNDU0ODAsNDU1MTYsNDU1MjAsNDU1MjQsNDU1MzIsNDU1MzMsNTMyOTQsNTMyOTUsNTMyOTYsNTMyOTcsNTMyOTgsNTMyOTksNTMzMDIsNTMzMDMsNTMz'@; put 'MDUsNTMzMDYsNTMzMDcsNTMzMDksNTMzMTAsNTMzMTEsNTMzMTIsNTMzMTMsNTMzMTQsNTMzMTUsNTMzMTgsNTMzMjAsNTMzMjIsNTMzMjMsNTMzMjQsNTMzMjUsNTMzMjYsNTMzMjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMzMjksNTMzMzAsNTMzMzEsNTMzMzMsNTMzMzQs'@; put 'NTMzMzUsNTMzMzcsNTMzMzgsNTMzMzksNTMzNDAsNTMzNDEsNTMzNDIsNTMzNDMsNTMzNDUsNTMzNDYsNTMzNDcsNTMzNDgsNTMzNDksNTMzNTAsNTMzNTEsNTMzNTIsNTMzNTMsNTMzNTQsNTMzNTUsNTMzNTgsNTMzNTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMzNjEsNTMz'@; put 'NjIsNTMzNjMsNTMzNjUsNTMzNjYsNTMzNjcsNTMzNjgsNTMzNjksNTMzNzAsNTMzNzEsNTMzNzQsNTMzNzUsNTMzNzYsNTMzNzgsNTMzNzksNTMzODAsNTMzODEsNTMzODIsNTMzODMsNTMzODQsNTMzODUsNTMzODYsNTMzODcsNTMzODgsNTMzODksNTMzOTAsNTMzOTEsNTMzOTIsNTMzOTMs'@; put 'NTMzOTQsNTMzOTUsNTMzOTYsNDU1MzUsNDU1NDQsNDU1NDUsNDU1NDgsNDU1NTIsNDU1NjEsNDU1NjMsNDU1NjUsNDU1NzIsNDU1NzMsNDU1NzYsNDU1NzksNDU1ODAsNDU1ODgsNDU1ODksNDU1OTEsNDU1OTMsNDU2MDAsNDU2MjAsNDU2MjgsNDU2NTYsNDU2NjAsNDU2NjQsNDU2NzIsNDU2'@; put 'NzMsNDU2ODQsNDU2ODUsNDU2OTIsNDU3MDAsNDU3MDEsNDU3MDUsNDU3MTIsNDU3MTMsNDU3MTYsNDU3MjAsNDU3MjEsNDU3MjIsNDU3MjgsNDU3MjksNDU3MzEsNDU3MzMsNDU3MzQsNDU3MzgsNDU3NDAsNDU3NDQsNDU3NDgsNDU3NjgsNDU3NjksNDU3NzIsNDU3NzYsNDU3NzgsNDU3ODQs'@; put 'NDU3ODUsNDU3ODcsNDU3ODksNDU3OTQsNDU3OTYsNDU3OTcsNDU3OTgsNDU4MDAsNDU4MDMsNDU4MDQsNDU4MDUsNDU4MDYsNDU4MDcsNDU4MTEsNDU4MTIsNDU4MTMsNDU4MTUsNDU4MTYsNDU4MTcsNDU4MTgsNDU4MTksNDU4MjMsNDU4MjQsNDU4MjUsNDU4MjgsNDU4MzIsNDU4NDAsNDU4'@; put 'NDEsNDU4NDMsNDU4NDQsNDU4NDUsNDU4NTIsNDU5MDgsNDU5MDksNDU5MTAsNDU5MTIsNDU5MTUsNDU5MTYsNDU5MTgsNDU5MTksNDU5MjQsNDU5MjUsNTMzOTcsNTMzOTgsNTMzOTksNTM0MDAsNTM0MDEsNTM0MDIsNTM0MDMsNTM0MDQsNTM0MDUsNTM0MDYsNTM0MDcsNTM0MDgsNTM0MDks'@; put 'NTM0MTAsNTM0MTEsNTM0MTQsNTM0MTUsNTM0MTcsNTM0MTgsNTM0MTksNTM0MjEsNTM0MjIsNTM0MjMsNTM0MjQsNTM0MjUsNTM0MjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM0MjcsNTM0MzAsNTM0MzIsNTM0MzQsNTM0MzUsNTM0MzYsNTM0MzcsNTM0MzgsNTM0MzksNTM0'@; put 'NDIsNTM0NDMsNTM0NDUsNTM0NDYsNTM0NDcsNTM0NTAsNTM0NTEsNTM0NTIsNTM0NTMsNTM0NTQsNTM0NTUsNTM0NTgsNTM0NjIsNTM0NjMsNTM0NjQsNTM0NjUsNTM0NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM0NjcsNTM0NzAsNTM0NzEsNTM0NzMsNTM0NzQsNTM0NzUs'@; put 'NTM0NzcsNTM0NzgsNTM0NzksNTM0ODAsNTM0ODEsNTM0ODIsNTM0ODMsNTM0ODYsNTM0OTAsNTM0OTEsNTM0OTIsNTM0OTMsNTM0OTQsNTM0OTUsNTM0OTcsNTM0OTgsNTM0OTksNTM1MDAsNTM1MDEsNTM1MDIsNTM1MDMsNTM1MDQsNTM1MDUsNTM1MDYsNTM1MDcsNTM1MDgsNDU5MjcsNDU5'@; put 'MjksNDU5MzEsNDU5MzQsNDU5MzYsNDU5MzcsNDU5NDAsNDU5NDQsNDU5NTIsNDU5NTMsNDU5NTUsNDU5NTYsNDU5NTcsNDU5NjQsNDU5NjgsNDU5NzIsNDU5ODQsNDU5ODUsNDU5OTIsNDU5OTYsNDYwMjAsNDYwMjEsNDYwMjQsNDYwMjcsNDYwMjgsNDYwMzAsNDYwMzIsNDYwMzYsNDYwMzcs'@; put 'NDYwMzksNDYwNDEsNDYwNDMsNDYwNDUsNDYwNDgsNDYwNTIsNDYwNTYsNDYwNzYsNDYwOTYsNDYxMDQsNDYxMDgsNDYxMTIsNDYxMjAsNDYxMjEsNDYxMjMsNDYxMzIsNDYxNjAsNDYxNjEsNDYxNjQsNDYxNjgsNDYxNzYsNDYxNzcsNDYxNzksNDYxODEsNDYxODgsNDYyMDgsNDYyMTYsNDYy'@; put 'MzcsNDYyNDQsNDYyNDgsNDYyNTIsNDYyNjEsNDYyNjMsNDYyNjUsNDYyNzIsNDYyNzYsNDYyODAsNDYyODgsNDYyOTMsNDYzMDAsNDYzMDEsNDYzMDQsNDYzMDcsNDYzMDgsNDYzMTAsNDYzMTYsNDYzMTcsNDYzMTksNDYzMjEsNDYzMjgsNDYzNTYsNDYzNTcsNDYzNjAsNDYzNjMsNDYzNjQs'@; put 'NDYzNzIsNDYzNzMsNDYzNzUsNDYzNzYsNDYzNzcsNDYzNzgsNDYzODQsNDYzODUsNDYzODgsNDYzOTIsNTM1MDksNTM1MTAsNTM1MTEsNTM1MTIsNTM1MTMsNTM1MTQsNTM1MTUsNTM1MTYsNTM1MTgsNTM1MTksNTM1MjAsNTM1MjEsNTM1MjIsNTM1MjMsNTM1MjQsNTM1MjUsNTM1MjYsNTM1'@; put 'MjcsNTM1MjgsNTM1MjksNTM1MzAsNTM1MzEsNTM1MzIsNTM1MzMsNTM1MzQsNTM1MzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM1MzYsNTM1MzcsNTM1MzgsNTM1MzksNTM1NDAsNTM1NDEsNTM1NDIsNTM1NDMsNTM1NDQsNTM1NDUsNTM1NDYsNTM1NDcsNTM1NDgsNTM1NDks'@; put 'NTM1NTAsNTM1NTEsNTM1NTQsNTM1NTUsNTM1NTcsNTM1NTgsNTM1NTksNTM1NjEsNTM1NjMsNTM1NjQsNTM1NjUsNTM1NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM1NjcsNTM1NzAsNTM1NzQsNTM1NzUsNTM1NzYsNTM1NzcsNTM1NzgsNTM1NzksNTM1ODIsNTM1ODMsNTM1'@; put 'ODUsNTM1ODYsNTM1ODcsNTM1ODksNTM1OTAsNTM1OTEsNTM1OTIsNTM1OTMsNTM1OTQsNTM1OTUsNTM1OTgsNTM2MDAsNTM2MDIsNTM2MDMsNTM2MDQsNTM2MDUsNTM2MDYsNTM2MDcsNTM2MDksNTM2MTAsNTM2MTEsNTM2MTMsNDY0MDAsNDY0MDEsNDY0MDMsNDY0MDQsNDY0MDUsNDY0MTEs'@; put 'NDY0MTIsNDY0MTMsNDY0MTYsNDY0MjAsNDY0MjgsNDY0MjksNDY0MzEsNDY0MzIsNDY0MzMsNDY0OTYsNDY0OTcsNDY1MDAsNDY1MDQsNDY1MDYsNDY1MDcsNDY1MTIsNDY1MTMsNDY1MTUsNDY1MTYsNDY1MTcsNDY1MjMsNDY1MjQsNDY1MjUsNDY1MjgsNDY1MzIsNDY1NDAsNDY1NDEsNDY1'@; put 'NDMsNDY1NDQsNDY1NDUsNDY1NTIsNDY1NzIsNDY2MDgsNDY2MDksNDY2MTIsNDY2MTYsNDY2MjksNDY2MzYsNDY2NDQsNDY2NjQsNDY2OTIsNDY2OTYsNDY3NDgsNDY3NDksNDY3NTIsNDY3NTYsNDY3NjMsNDY3NjQsNDY3NjksNDY4MDQsNDY4MzIsNDY4MzYsNDY4NDAsNDY4NDgsNDY4NDks'@; put 'NDY4NTMsNDY4ODgsNDY4ODksNDY4OTIsNDY4OTUsNDY4OTYsNDY5MDQsNDY5MDUsNDY5MDcsNDY5MTYsNDY5MjAsNDY5MjQsNDY5MzIsNDY5MzMsNDY5NDQsNDY5NDgsNDY5NTIsNDY5NjAsNDY5NjEsNDY5NjMsNDY5NjUsNDY5NzIsNDY5NzMsNDY5NzYsNDY5ODAsNDY5ODgsNDY5ODksNDY5'@; put 'OTEsNDY5OTIsNDY5OTMsNDY5OTQsNDY5OTgsNDY5OTksNTM2MTQsNTM2MTUsNTM2MTYsNTM2MTcsNTM2MTgsNTM2MTksNTM2MjAsNTM2MjEsNTM2MjIsNTM2MjMsNTM2MjQsNTM2MjUsNTM2MjYsNTM2MjcsNTM2MjksNTM2MzAsNTM2MzEsNTM2MzIsNTM2MzMsNTM2MzQsNTM2MzUsNTM2Mzcs'@; put 'NTM2MzgsNTM2MzksNTM2NDEsNTM2NDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM2NDMsNTM2NDQsNTM2NDUsNTM2NDYsNTM2NDcsNTM2NDgsNTM2NDksNTM2NTAsNTM2NTEsNTM2NTIsNTM2NTMsNTM2NTQsNTM2NTUsNTM2NTYsNTM2NTcsNTM2NTgsNTM2NTksNTM2NjAsNTM2'@; put 'NjEsNTM2NjIsNTM2NjMsNTM2NjYsNTM2NjcsNTM2NjksNTM2NzAsNTM2NzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM2NzMsNTM2NzQsNTM2NzUsNTM2NzYsNTM2NzcsNTM2NzgsNTM2NzksNTM2ODIsNTM2ODQsNTM2ODYsNTM2ODcsNTM2ODgsNTM2ODksNTM2OTEsNTM2OTMs'@; put 'NTM2OTQsNTM2OTUsNTM2OTcsNTM2OTgsNTM2OTksNTM3MDAsNTM3MDEsNTM3MDIsNTM3MDMsNTM3MDQsNTM3MDUsNTM3MDYsNTM3MDcsNTM3MDgsNTM3MDksNTM3MTAsNTM3MTEsNDdlMyw0NzAwMSw0NzAwNCw0NzAwOCw0NzAxNiw0NzAxNyw0NzAxOSw0NzAyMCw0NzAyMSw0NzAyOCw0NzAy'@; put 'OSw0NzAzMiw0NzA0Nyw0NzA0OSw0NzA4NCw0NzA4NSw0NzA4OCw0NzA5Miw0NzEwMCw0NzEwMSw0NzEwMyw0NzEwNCw0NzEwNSw0NzExMSw0NzExMiw0NzExMyw0NzExNiw0NzEyMCw0NzEyOCw0NzEyOSw0NzEzMSw0NzEzMyw0NzE0MCw0NzE0MSw0NzE0NCw0NzE0OCw0NzE1Niw0NzE1Nyw0'@; put 'NzE1OSw0NzE2MCw0NzE2MSw0NzE2OCw0NzE3Miw0NzE4NSw0NzE4Nyw0NzE5Niw0NzE5Nyw0NzIwMCw0NzIwNCw0NzIxMiw0NzIxMyw0NzIxNSw0NzIxNyw0NzIyNCw0NzIyOCw0NzI0NSw0NzI3Miw0NzI4MCw0NzI4NCw0NzI4OCw0NzI5Niw0NzI5Nyw0NzI5OSw0NzMwMSw0NzMwOCw0NzMx'@; put 'Miw0NzMxNiw0NzMyNSw0NzMyNyw0NzMyOSw0NzMzNiw0NzMzNyw0NzM0MCw0NzM0NCw0NzM1Miw0NzM1Myw0NzM1NSw0NzM1Nyw0NzM2NCw0NzM4NCw0NzM5Miw0NzQyMCw0NzQyMSw0NzQyNCw0NzQyOCw0NzQzNiw0NzQzOSw0NzQ0MSw0NzQ0OCw0NzQ0OSw0NzQ1Miw0NzQ1Niw0NzQ2NCw0'@; put 'NzQ2NSw1MzcxMiw1MzcxMyw1MzcxNCw1MzcxNSw1MzcxNiw1MzcxNyw1MzcxOCw1MzcxOSw1MzcyMSw1MzcyMiw1MzcyMyw1MzcyNCw1MzcyNSw1MzcyNiw1MzcyNyw1MzcyOCw1MzcyOSw1MzczMCw1MzczMSw1MzczMiw1MzczMyw1MzczNCw1MzczNSw1MzczNiw1MzczNyw1MzczOCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzczOSw1Mzc0MCw1Mzc0MSw1Mzc0Miw1Mzc0Myw1Mzc0NCw1Mzc0NSw1Mzc0Niw1Mzc0Nyw1Mzc0OSw1Mzc1MCw1Mzc1MSw1Mzc1Myw1Mzc1NCw1Mzc1NSw1Mzc1Niw1Mzc1Nyw1Mzc1OCw1Mzc1OSw1Mzc2MCw1Mzc2MSw1Mzc2Miw1Mzc2Myw1'@; put 'Mzc2NCw1Mzc2NSw1Mzc2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzc2OCw1Mzc3MCw1Mzc3MSw1Mzc3Miw1Mzc3Myw1Mzc3NCw1Mzc3NSw1Mzc3Nyw1Mzc3OCw1Mzc3OSw1Mzc4MCw1Mzc4MSw1Mzc4Miw1Mzc4Myw1Mzc4NCw1Mzc4NSw1Mzc4Niw1Mzc4Nyw1Mzc4OCw1Mzc4'@; put 'OSw1Mzc5MCw1Mzc5MSw1Mzc5Miw1Mzc5Myw1Mzc5NCw1Mzc5NSw1Mzc5Niw1Mzc5Nyw1Mzc5OCw1Mzc5OSw1MzgwMCw1MzgwMSw0NzQ2Nyw0NzQ2OSw0NzQ3Niw0NzQ3Nyw0NzQ4MCw0NzQ4NCw0NzQ5Miw0NzQ5Myw0NzQ5NSw0NzQ5Nyw0NzQ5OCw0NzUwMSw0NzUwMiw0NzUzMiw0NzUzMyw0'@; put 'NzUzNiw0NzU0MCw0NzU0OCw0NzU0OSw0NzU1MSw0NzU1Myw0NzU2MCw0NzU2MSw0NzU2NCw0NzU2Niw0NzU2Nyw0NzU2OCw0NzU2OSw0NzU3MCw0NzU3Niw0NzU3Nyw0NzU3OSw0NzU4MSw0NzU4Miw0NzU4NSw0NzU4Nyw0NzU4OCw0NzU4OSw0NzU5Miw0NzU5Niw0NzYwNCw0NzYwNSw0NzYw'@; put 'Nyw0NzYwOCw0NzYwOSw0NzYxMCw0NzYxNiw0NzYxNyw0NzYyNCw0NzYzNyw0NzY3Miw0NzY3Myw0NzY3Niw0NzY4MCw0NzY4Miw0NzY4OCw0NzY4OSw0NzY5MSw0NzY5Myw0NzY5NCw0NzY5OSw0NzcwMCw0NzcwMSw0NzcwNCw0NzcwOCw0NzcxNiw0NzcxNyw0NzcxOSw0NzcyMCw0NzcyMSw0'@; put 'NzcyOCw0NzcyOSw0NzczMiw0NzczNiw0Nzc0Nyw0Nzc0OCw0Nzc0OSw0Nzc1MSw0Nzc1Niw0Nzc4NCw0Nzc4NSw0Nzc4Nyw0Nzc4OCw0Nzc5Miw0Nzc5NCw0NzgwMCw0NzgwMSw0NzgwMyw0NzgwNSw0NzgxMiw0NzgxNiw0NzgzMiw0NzgzMyw0Nzg2OCw1MzgwMiw1MzgwMyw1MzgwNiw1Mzgw'@; put 'Nyw1MzgwOSw1MzgxMCw1MzgxMSw1MzgxMyw1MzgxNCw1MzgxNSw1MzgxNiw1MzgxNyw1MzgxOCw1MzgxOSw1MzgyMiw1MzgyNCw1MzgyNiw1MzgyNyw1MzgyOCw1MzgyOSw1MzgzMCw1MzgzMSw1MzgzMyw1MzgzNCw1MzgzNSw1MzgzNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1'@; put 'MzgzNyw1MzgzOCw1MzgzOSw1Mzg0MCw1Mzg0MSw1Mzg0Miw1Mzg0Myw1Mzg0NCw1Mzg0NSw1Mzg0Niw1Mzg0Nyw1Mzg0OCw1Mzg0OSw1Mzg1MCw1Mzg1MSw1Mzg1Myw1Mzg1NCw1Mzg1NSw1Mzg1Niw1Mzg1Nyw1Mzg1OCw1Mzg1OSw1Mzg2MSw1Mzg2Miw1Mzg2Myw1Mzg2NCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCw1Mzg2NSw1Mzg2Niw1Mzg2Nyw1Mzg2OCw1Mzg2OSw1Mzg3MCw1Mzg3MSw1Mzg3Miw1Mzg3Myw1Mzg3NCw1Mzg3NSw1Mzg3Niw1Mzg3Nyw1Mzg3OCw1Mzg3OSw1Mzg4MCw1Mzg4MSw1Mzg4Miw1Mzg4Myw1Mzg4NCw1Mzg4NSw1Mzg4Niw1Mzg4Nyw1Mzg5MCw1'@; put 'Mzg5MSw1Mzg5Myw1Mzg5NCw1Mzg5NSw1Mzg5Nyw1Mzg5OCw1Mzg5OSw1MzkwMCw0Nzg3Miw0Nzg3Niw0Nzg4NSw0Nzg4Nyw0Nzg4OSw0Nzg5Niw0NzkwMCw0NzkwNCw0NzkxMyw0NzkxNSw0NzkyNCw0NzkyNSw0NzkyNiw0NzkyOCw0NzkzMSw0NzkzMiw0NzkzMyw0NzkzNCw0Nzk0MCw0Nzk0'@; put 'MSw0Nzk0Myw0Nzk0NSw0Nzk0OSw0Nzk1MSw0Nzk1Miw0Nzk1Niw0Nzk2MCw0Nzk2OSw0Nzk3MSw0Nzk4MCw0ODAwOCw0ODAxMiw0ODAxNiw0ODAzNiw0ODA0MCw0ODA0NCw0ODA1Miw0ODA1NSw0ODA2NCw0ODA2OCw0ODA3Miw0ODA4MCw0ODA4Myw0ODEyMCw0ODEyMSw0ODEyNCw0ODEyNyw0'@; put 'ODEyOCw0ODEzMCw0ODEzNiw0ODEzNyw0ODEzOSw0ODE0MCw0ODE0MSw0ODE0Myw0ODE0NSw0ODE0OCw0ODE0OSw0ODE1MCw0ODE1MSw0ODE1Miw0ODE1NSw0ODE1Niw0ODE1Nyw0ODE1OCw0ODE1OSw0ODE2NCw0ODE2NSw0ODE2Nyw0ODE2OSw0ODE3Myw0ODE3Niw0ODE3Nyw0ODE4MCw0ODE4'@; put 'NCw0ODE5Miw0ODE5Myw0ODE5NSw0ODE5Niw0ODE5Nyw0ODIwMSw0ODIwNCw0ODIwNSw0ODIwOCw0ODIyMSw0ODI2MCw0ODI2MSw0ODI2NCw0ODI2Nyw0ODI2OCw0ODI3MCw0ODI3Niw0ODI3Nyw0ODI3OSw1MzkwMSw1MzkwMiw1MzkwMyw1MzkwNiw1MzkwNyw1MzkwOCw1MzkxMCw1MzkxMSw1'@; put 'MzkxMiw1MzkxMyw1MzkxNCw1MzkxNSw1MzkxNyw1MzkxOCw1MzkxOSw1MzkyMSw1MzkyMiw1MzkyMyw1MzkyNSw1MzkyNiw1MzkyNyw1MzkyOCw1MzkyOSw1MzkzMCw1MzkzMSw1MzkzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzkzNCw1MzkzNSw1MzkzNiw1MzkzOCw1Mzkz'@; put 'OSw1Mzk0MCw1Mzk0MSw1Mzk0Miw1Mzk0Myw1Mzk0Niw1Mzk0Nyw1Mzk0OSw1Mzk1MCw1Mzk1Myw1Mzk1NSw1Mzk1Niw1Mzk1Nyw1Mzk1OCw1Mzk1OSw1Mzk2Miw1Mzk2NCw1Mzk2NSw1Mzk2Niw1Mzk2Nyw1Mzk2OCw1Mzk2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzk3MCw1'@; put 'Mzk3MSw1Mzk3Myw1Mzk3NCw1Mzk3NSw1Mzk3Nyw1Mzk3OCw1Mzk3OSw1Mzk4MSw1Mzk4Miw1Mzk4Myw1Mzk4NCw1Mzk4NSw1Mzk4Niw1Mzk4Nyw1Mzk5MCw1Mzk5MSw1Mzk5Miw1Mzk5Myw1Mzk5NCw1Mzk5NSw1Mzk5Niw1Mzk5Nyw1Mzk5OCw1Mzk5OSw1NDAwMiw1NDAwMyw1NDAwNSw1NDAw'@; put 'Niw1NDAwNyw1NDAwOSw1NDAxMCw0ODI4MSw0ODI4Miw0ODI4OCw0ODI4OSw0ODI5Miw0ODI5NSw0ODI5Niw0ODMwNCw0ODMwNSw0ODMwNyw0ODMwOCw0ODMwOSw0ODMxNiw0ODMxNyw0ODMyMCw0ODMyNCw0ODMzMyw0ODMzNSw0ODMzNiw0ODMzNyw0ODM0MSw0ODM0NCw0ODM0OCw0ODM3Miw0'@; put 'ODM3Myw0ODM3NCw0ODM3Niw0ODM4MCw0ODM4OCw0ODM4OSw0ODM5MSw0ODM5Myw0ODQwMCw0ODQwNCw0ODQyMCw0ODQyOCw0ODQ0OCw0ODQ1Niw0ODQ1Nyw0ODQ2MCw0ODQ2NCw0ODQ3Miw0ODQ3Myw0ODQ4NCw0ODQ4OCw0ODUxMiw0ODUxMyw0ODUxNiw0ODUxOSw0ODUyMCw0ODUyMSw0ODUy'@; put 'Miw0ODUyOCw0ODUyOSw0ODUzMSw0ODUzMyw0ODUzNyw0ODUzOCw0ODU0MCw0ODU0OCw0ODU2MCw0ODU2OCw0ODU5Niw0ODU5Nyw0ODYwMCw0ODYwNCw0ODYxNyw0ODYyNCw0ODYyOCw0ODYzMiw0ODY0MCw0ODY0Myw0ODY0NSw0ODY1Miw0ODY1Myw0ODY1Niw0ODY2MCw0ODY2OCw0ODY2OSw0'@; put 'ODY3MSw0ODcwOCw0ODcwOSw0ODcxMiw0ODcxNiw0ODcxOCw0ODcyNCw0ODcyNSw0ODcyNyw0ODcyOSw0ODczMCw0ODczMSw0ODczNiw0ODczNyw0ODc0MCw1NDAxMSw1NDAxMiw1NDAxMyw1NDAxNCw1NDAxNSw1NDAxOCw1NDAyMCw1NDAyMiw1NDAyMyw1NDAyNCw1NDAyNSw1NDAyNiw1NDAy'@; put 'Nyw1NDAzMSw1NDAzMyw1NDAzNCw1NDAzNSw1NDAzNyw1NDAzOSw1NDA0MCw1NDA0MSw1NDA0Miw1NDA0Myw1NDA0Niw1NDA1MCw1NDA1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDA1Miw1NDA1NCw1NDA1NSw1NDA1OCw1NDA1OSw1NDA2MSw1NDA2Miw1NDA2Myw1NDA2NSw1'@; put 'NDA2Niw1NDA2Nyw1NDA2OCw1NDA2OSw1NDA3MCw1NDA3MSw1NDA3NCw1NDA3OCw1NDA3OSw1NDA4MCw1NDA4MSw1NDA4Miw1NDA4Myw1NDA4Niw1NDA4Nyw1NDA4OCw1NDA4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDA5MCw1NDA5MSw1NDA5Miw1NDA5Myw1NDA5NCw1NDA5'@; put 'NSw1NDA5Niw1NDA5Nyw1NDA5OCw1NDA5OSw1NDEwMCw1NDEwMSw1NDEwMiw1NDEwMyw1NDEwNCw1NDEwNSw1NDEwNiw1NDEwNyw1NDEwOCw1NDEwOSw1NDExMCw1NDExMSw1NDExMiw1NDExMyw1NDExNCw1NDExNSw1NDExNiw1NDExNyw1NDExOCw1NDExOSw1NDEyMCw1NDEyMSw0ODc0NCw0'@; put 'ODc0Niw0ODc1Miw0ODc1Myw0ODc1NSw0ODc1Niw0ODc1Nyw0ODc2Myw0ODc2NCw0ODc2NSw0ODc2OCw0ODc3Miw0ODc4MCw0ODc4MSw0ODc4Myw0ODc4NCw0ODc4NSw0ODc5Miw0ODc5Myw0ODgwOCw0ODg0OCw0ODg0OSw0ODg1Miw0ODg1NSw0ODg1Niw0ODg2NCw0ODg2Nyw0ODg2OCw0ODg2'@; put 'OSw0ODg3Niw0ODg5Nyw0ODkwNCw0ODkwNSw0ODkyMCw0ODkyMSw0ODkyMyw0ODkyNCw0ODkyNSw0ODk2MCw0ODk2MSw0ODk2NCw0ODk2OCw0ODk3Niw0ODk3Nyw0ODk4MSw0OTA0NCw0OTA3Miw0OTA5Myw0OTEwMCw0OTEwMSw0OTEwNCw0OTEwOCw0OTExNiw0OTExOSw0OTEyMSw0OTIxMiw0'@; put 'OTIzMyw0OTI0MCw0OTI0NCw0OTI0OCw0OTI1Niw0OTI1Nyw0OTI5Niw0OTI5Nyw0OTMwMCw0OTMwNCw0OTMxMiw0OTMxMyw0OTMxNSw0OTMxNyw0OTMyNCw0OTMyNSw0OTMyNyw0OTMyOCw0OTMzMSw0OTMzMiw0OTMzMyw0OTMzNCw0OTM0MCw0OTM0MSw0OTM0Myw0OTM0NCw0OTM0NSw0OTM0'@; put 'OSw0OTM1Miw0OTM1Myw0OTM1Niw0OTM2MCw0OTM2OCw0OTM2OSw0OTM3MSw0OTM3Miw0OTM3Myw0OTM4MCw1NDEyMiw1NDEyMyw1NDEyNCw1NDEyNSw1NDEyNiw1NDEyNyw1NDEyOCw1NDEyOSw1NDEzMCw1NDEzMSw1NDEzMiw1NDEzMyw1NDEzNCw1NDEzNSw1NDEzNiw1NDEzNyw1NDEzOCw1'@; put 'NDEzOSw1NDE0Miw1NDE0Myw1NDE0NSw1NDE0Niw1NDE0Nyw1NDE0OSw1NDE1MCw1NDE1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDE1Miw1NDE1Myw1NDE1NCw1NDE1NSw1NDE1OCw1NDE2Miw1NDE2Myw1NDE2NCw1NDE2NSw1NDE2Niw1NDE2Nyw1NDE3MCw1NDE3MSw1NDE3'@; put 'Myw1NDE3NCw1NDE3NSw1NDE3Nyw1NDE3OCw1NDE3OSw1NDE4MCw1NDE4MSw1NDE4Miw1NDE4Myw1NDE4Niw1NDE4OCw1NDE5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDE5MSw1NDE5Miw1NDE5Myw1NDE5NCw1NDE5NSw1NDE5Nyw1NDE5OCw1NDE5OSw1NDIwMSw1NDIwMiw1'@; put 'NDIwMyw1NDIwNSw1NDIwNiw1NDIwNyw1NDIwOCw1NDIwOSw1NDIxMCw1NDIxMSw1NDIxNCw1NDIxNSw1NDIxOCw1NDIxOSw1NDIyMCw1NDIyMSw1NDIyMiw1NDIyMyw1NDIyNSw1NDIyNiw1NDIyNyw1NDIyOCw1NDIyOSw1NDIzMCw0OTM4MSw0OTM4NCw0OTM4OCw0OTM5Niw0OTM5Nyw0OTM5'@; put 'OSw0OTQwMSw0OTQwOCw0OTQxMiw0OTQxNiw0OTQyNCw0OTQyOSw0OTQzNiw0OTQzNyw0OTQzOCw0OTQzOSw0OTQ0MCw0OTQ0Myw0OTQ0NCw0OTQ0Niw0OTQ0Nyw0OTQ1Miw0OTQ1Myw0OTQ1NSw0OTQ1Niw0OTQ1Nyw0OTQ2Miw0OTQ2NCw0OTQ2NSw0OTQ2OCw0OTQ3Miw0OTQ4MCw0OTQ4MSw0'@; put 'OTQ4Myw0OTQ4NCw0OTQ4NSw0OTQ5Miw0OTQ5Myw0OTQ5Niw0OTUwMCw0OTUwOCw0OTUwOSw0OTUxMSw0OTUxMiw0OTUxMyw0OTUyMCw0OTUyNCw0OTUyOCw0OTU0MSw0OTU0OCw0OTU0OSw0OTU1MCw0OTU1Miw0OTU1Niw0OTU1OCw0OTU2NCw0OTU2NSw0OTU2Nyw0OTU2OSw0OTU3Myw0OTU3'@; put 'Niw0OTU3Nyw0OTU4MCw0OTU4NCw0OTU5Nyw0OTYwNCw0OTYwOCw0OTYxMiw0OTYyMCw0OTYyMyw0OTYyNCw0OTYzMiw0OTYzNiw0OTY0MCw0OTY0OCw0OTY0OSw0OTY1MSw0OTY2MCw0OTY2MSw0OTY2NCw0OTY2OCw0OTY3Niw0OTY3Nyw0OTY3OSw0OTY4MSw0OTY4OCw0OTY4OSw0OTY5Miw0'@; put 'OTY5NSw0OTY5Niw0OTcwNCw0OTcwNSw0OTcwNyw0OTcwOSw1NDIzMSw1NDIzMyw1NDIzNCw1NDIzNSw1NDIzNiw1NDIzNyw1NDIzOCw1NDIzOSw1NDI0MCw1NDI0Miw1NDI0NCw1NDI0NSw1NDI0Niw1NDI0Nyw1NDI0OCw1NDI0OSw1NDI1MCw1NDI1MSw1NDI1NCw1NDI1NSw1NDI1Nyw1NDI1'@; put 'OCw1NDI1OSw1NDI2MSw1NDI2Miw1NDI2MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDI2NCw1NDI2NSw1NDI2Niw1NDI2Nyw1NDI3MCw1NDI3Miw1NDI3NCw1NDI3NSw1NDI3Niw1NDI3Nyw1NDI3OCw1NDI3OSw1NDI4MSw1NDI4Miw1NDI4Myw1NDI4NCw1NDI4NSw1NDI4Niw1'@; put 'NDI4Nyw1NDI4OCw1NDI4OSw1NDI5MCw1NDI5MSw1NDI5Miw1NDI5Myw1NDI5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDI5NSw1NDI5Niw1NDI5Nyw1NDI5OCw1NDI5OSw1NDMwMCw1NDMwMiw1NDMwMyw1NDMwNCw1NDMwNSw1NDMwNiw1NDMwNyw1NDMwOCw1NDMwOSw1NDMx'@; put 'MCw1NDMxMSw1NDMxMiw1NDMxMyw1NDMxNCw1NDMxNSw1NDMxNiw1NDMxNyw1NDMxOCw1NDMxOSw1NDMyMCw1NDMyMSw1NDMyMiw1NDMyMyw1NDMyNCw1NDMyNSw1NDMyNiw1NDMyNyw0OTcxMSw0OTcxMyw0OTcxNCw0OTcxNiw0OTczNiw0OTc0NCw0OTc0NSw0OTc0OCw0OTc1Miw0OTc2MCw0'@; put 'OTc2NSw0OTc3Miw0OTc3Myw0OTc3Niw0OTc4MCw0OTc4OCw0OTc4OSw0OTc5MSw0OTc5Myw0OTgwMCw0OTgwMSw0OTgwOCw0OTgxNiw0OTgxOSw0OTgyMSw0OTgyOCw0OTgyOSw0OTgzMiw0OTgzNiw0OTgzNyw0OTg0NCw0OTg0NSw0OTg0Nyw0OTg0OSw0OTg4NCw0OTg4NSw0OTg4OCw0OTg5'@; put 'MSw0OTg5Miw0OTg5OSw0OTkwMCw0OTkwMSw0OTkwMyw0OTkwNSw0OTkxMCw0OTkxMiw0OTkxMyw0OTkxNSw0OTkxNiw0OTkyMCw0OTkyOCw0OTkyOSw0OTkzMiw0OTkzMyw0OTkzOSw0OTk0MCw0OTk0MSw0OTk0NCw0OTk0OCw0OTk1Niw0OTk1Nyw0OTk2MCw0OTk2MSw0OTk4OSw1MDAyNCw1'@; put 'MDAyNSw1MDAyOCw1MDAzMiw1MDAzNCw1MDA0MCw1MDA0MSw1MDA0NCw1MDA0NSw1MDA1Miw1MDA1Niw1MDA2MCw1MDExMiw1MDEzNiw1MDEzNyw1MDE0MCw1MDE0Myw1MDE0NCw1MDE0Niw1MDE1Miw1MDE1Myw1MDE1Nyw1MDE2NCw1MDE2NSw1MDE2OCw1MDE4NCw1MDE5Miw1MDIxMiw1MDIy'@; put 'MCw1MDIyNCw1NDMyOCw1NDMyOSw1NDMzMCw1NDMzMSw1NDMzMiw1NDMzMyw1NDMzNCw1NDMzNSw1NDMzNyw1NDMzOCw1NDMzOSw1NDM0MSw1NDM0Miw1NDM0Myw1NDM0NCw1NDM0NSw1NDM0Niw1NDM0Nyw1NDM0OCw1NDM0OSw1NDM1MCw1NDM1MSw1NDM1Miw1NDM1Myw1NDM1NCw1NDM1NSxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDM1Niw1NDM1Nyw1NDM1OCw1NDM1OSw1NDM2MCw1NDM2MSw1NDM2Miw1NDM2Myw1NDM2NSw1NDM2Niw1NDM2Nyw1NDM2OSw1NDM3MCw1NDM3MSw1NDM3Myw1NDM3NCw1NDM3NSw1NDM3Niw1NDM3Nyw1NDM3OCw1NDM3OSw1NDM4MCw1NDM4'@; put 'Miw1NDM4NCw1NDM4NSw1NDM4NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDM4Nyw1NDM4OCw1NDM4OSw1NDM5MCw1NDM5MSw1NDM5NCw1NDM5NSw1NDM5Nyw1NDM5OCw1NDQwMSw1NDQwMyw1NDQwNCw1NDQwNSw1NDQwNiw1NDQwNyw1NDQxMCw1NDQxMiw1NDQxNCw1NDQxNSw1'@; put 'NDQxNiw1NDQxNyw1NDQxOCw1NDQxOSw1NDQyMSw1NDQyMiw1NDQyMyw1NDQyNCw1NDQyNSw1NDQyNiw1NDQyNyw1NDQyOCw1NDQyOSw1MDIyOCw1MDIzNiw1MDIzNyw1MDI0OCw1MDI3Niw1MDI3Nyw1MDI4MCw1MDI4NCw1MDI5Miw1MDI5Myw1MDI5Nyw1MDMwNCw1MDMyNCw1MDMzMiw1MDM2'@; put 'MCw1MDM2NCw1MDQwOSw1MDQxNiw1MDQxNyw1MDQyMCw1MDQyNCw1MDQyNiw1MDQzMSw1MDQzMiw1MDQzMyw1MDQ0NCw1MDQ0OCw1MDQ1Miw1MDQ2MCw1MDQ3Miw1MDQ3Myw1MDQ3Niw1MDQ4MCw1MDQ4OCw1MDQ4OSw1MDQ5MSw1MDQ5Myw1MDUwMCw1MDUwMSw1MDUwNCw1MDUwNSw1MDUwNiw1'@; put 'MDUwOCw1MDUwOSw1MDUxMCw1MDUxNSw1MDUxNiw1MDUxNyw1MDUxOSw1MDUyMCw1MDUyMSw1MDUyNSw1MDUyNiw1MDUyOCw1MDUyOSw1MDUzMiw1MDUzNiw1MDU0NCw1MDU0NSw1MDU0Nyw1MDU0OCw1MDU0OSw1MDU1Niw1MDU1Nyw1MDU2MCw1MDU2NCw1MDU2Nyw1MDU3Miw1MDU3Myw1MDU3'@; put 'NSw1MDU3Nyw1MDU4MSw1MDU4Myw1MDU4NCw1MDU4OCw1MDU5Miw1MDYwMSw1MDYxMiw1MDYxMyw1MDYxNiw1MDYxNyw1MDYxOSw1MDYyMCw1MDYyMSw1MDYyMiw1MDYyOCw1MDYyOSw1MDYzMCw1MDYzMSw1MDYzMiw1MDYzMyw1MDYzNCw1MDYzNiw1MDYzOCw1NDQzMCw1NDQzMSw1NDQzMiw1'@; put 'NDQzMyw1NDQzNCw1NDQzNSw1NDQzNiw1NDQzNyw1NDQzOCw1NDQzOSw1NDQ0MCw1NDQ0Miw1NDQ0Myw1NDQ0NCw1NDQ0NSw1NDQ0Niw1NDQ0Nyw1NDQ0OCw1NDQ0OSw1NDQ1MCw1NDQ1MSw1NDQ1Miw1NDQ1Myw1NDQ1NCw1NDQ1NSw1NDQ1NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCw1NDQ1Nyw1NDQ1OCw1NDQ1OSw1NDQ2MCw1NDQ2MSw1NDQ2Miw1NDQ2Myw1NDQ2NCw1NDQ2NSw1NDQ2Niw1NDQ2Nyw1NDQ2OCw1NDQ2OSw1NDQ3MCw1NDQ3MSw1NDQ3Miw1NDQ3Myw1NDQ3NCw1NDQ3NSw1NDQ3Nyw1NDQ3OCw1NDQ3OSw1NDQ4MSw1NDQ4Miw1NDQ4Myw1NDQ4NSxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDQ4Niw1NDQ4Nyw1NDQ4OCw1NDQ4OSw1NDQ5MCw1NDQ5MSw1NDQ5Myw1NDQ5NCw1NDQ5Niw1NDQ5Nyw1NDQ5OCw1NDQ5OSw1NDUwMCw1NDUwMSw1NDUwMiw1NDUwMyw1NDUwNSw1NDUwNiw1NDUwNyw1NDUwOSw1NDUxMCw1NDUxMSw1NDUxMyw1NDUx'@; put 'NCw1NDUxNSw1NDUxNiw1NDUxNyw1NDUxOCw1NDUxOSw1NDUyMSw1NDUyMiw1NDUyNCw1MDY0MCw1MDY0MSw1MDY0NCw1MDY0OCw1MDY1Niw1MDY1Nyw1MDY1OSw1MDY2MSw1MDY2OCw1MDY2OSw1MDY3MCw1MDY3Miw1MDY3Niw1MDY3OCw1MDY3OSw1MDY4NCw1MDY4NSw1MDY4Niw1MDY4Nyw1'@; put 'MDY4OCw1MDY4OSw1MDY5Myw1MDY5NCw1MDY5NSw1MDY5Niw1MDcwMCw1MDcwNCw1MDcxMiw1MDcxMyw1MDcxNSw1MDcxNiw1MDcyNCw1MDcyNSw1MDcyOCw1MDczMiw1MDczMyw1MDczNCw1MDczNiw1MDczOSw1MDc0MCw1MDc0MSw1MDc0Myw1MDc0NSw1MDc0Nyw1MDc1Miw1MDc1Myw1MDc1'@; put 'Niw1MDc2MCw1MDc2OCw1MDc2OSw1MDc3MSw1MDc3Miw1MDc3Myw1MDc4MCw1MDc4MSw1MDc4NCw1MDc5Niw1MDc5OSw1MDgwMSw1MDgwOCw1MDgwOSw1MDgxMiw1MDgxNiw1MDgyNCw1MDgyNSw1MDgyNyw1MDgyOSw1MDgzNiw1MDgzNyw1MDg0MCw1MDg0NCw1MDg1Miw1MDg1Myw1MDg1NSw1'@; put 'MDg1Nyw1MDg2NCw1MDg2NSw1MDg2OCw1MDg3Miw1MDg3Myw1MDg3NCw1MDg4MCw1MDg4MSw1MDg4Myw1MDg4NSw1MDg5Miw1MDg5Myw1MDg5Niw1MDkwMCw1MDkwOCw1MDkwOSw1MDkxMiw1MDkxMyw1MDkyMCw1NDUyNiw1NDUyNyw1NDUyOCw1NDUyOSw1NDUzMCw1NDUzMSw1NDUzMyw1NDUz'@; put 'NCw1NDUzNSw1NDUzNyw1NDUzOCw1NDUzOSw1NDU0MSw1NDU0Miw1NDU0Myw1NDU0NCw1NDU0NSw1NDU0Niw1NDU0Nyw1NDU1MCw1NDU1Miw1NDU1Myw1NDU1NCw1NDU1NSw1NDU1Niw1NDU1NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDU1OCw1NDU1OSw1NDU2MCw1NDU2MSw1'@; put 'NDU2Miw1NDU2Myw1NDU2NCw1NDU2NSw1NDU2Niw1NDU2Nyw1NDU2OCw1NDU2OSw1NDU3MCw1NDU3MSw1NDU3Miw1NDU3Myw1NDU3NCw1NDU3NSw1NDU3Niw1NDU3Nyw1NDU3OCw1NDU3OSw1NDU4MCw1NDU4MSw1NDU4Miw1NDU4MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDU4'@; put 'NCw1NDU4NSw1NDU4Niw1NDU4Nyw1NDU5MCw1NDU5MSw1NDU5Myw1NDU5NCw1NDU5NSw1NDU5Nyw1NDU5OCw1NDU5OSw1NDYwMCw1NDYwMSw1NDYwMiw1NDYwMyw1NDYwNiw1NDYwOCw1NDYxMCw1NDYxMSw1NDYxMiw1NDYxMyw1NDYxNCw1NDYxNSw1NDYxOCw1NDYxOSw1NDYyMSw1NDYyMiw1'@; put 'NDYyMyw1NDYyNSw1NDYyNiw1NDYyNyw1MDkyMSw1MDkyNCw1MDkyOCw1MDkzNiw1MDkzNyw1MDk0MSw1MDk0OCw1MDk0OSw1MDk1Miw1MDk1Niw1MDk2NCw1MDk2NSw1MDk2Nyw1MDk2OSw1MDk3Niw1MDk3Nyw1MDk4MCw1MDk4NCw1MDk5Miw1MDk5Myw1MDk5NSw1MDk5Nyw1MDk5OSw1MTAw'@; put 'NCw1MTAwNSw1MTAwOCw1MTAxMiw1MTAxOCw1MTAyMCw1MTAyMSw1MTAyMyw1MTAyNSw1MTAyNiw1MTAyNyw1MTAyOCw1MTAyOSw1MTAzMCw1MTAzMSw1MTAzMiw1MTAzNiw1MTA0MCw1MTA0OCw1MTA1MSw1MTA2MCw1MTA2MSw1MTA2NCw1MTA2OCw1MTA2OSw1MTA3MCw1MTA3NSw1MTA3Niw1'@; put 'MTA3Nyw1MTA3OSw1MTA4MCw1MTA4MSw1MTA4Miw1MTA4Niw1MTA4OCw1MTA4OSw1MTA5Miw1MTA5NCw1MTA5NSw1MTA5Niw1MTA5OCw1MTEwNCw1MTEwNSw1MTEwNyw1MTEwOCw1MTEwOSw1MTExMCw1MTExNiw1MTExNyw1MTEyMCw1MTEyNCw1MTEzMiw1MTEzMyw1MTEzNSw1MTEzNiw1MTEz'@; put 'Nyw1MTE0NCw1MTE0NSw1MTE0OCw1MTE1MCw1MTE1Miw1MTE2MCw1MTE2NSw1MTE3Miw1MTE3Niw1MTE4MCw1MTIwMCw1MTIwMSw1MTIwNCw1MTIwOCw1MTIxMCw1NDYyOCw1NDYzMCw1NDYzMSw1NDYzNCw1NDYzNiw1NDYzOCw1NDYzOSw1NDY0MCw1NDY0MSw1NDY0Miw1NDY0Myw1NDY0Niw1'@; put 'NDY0Nyw1NDY0OSw1NDY1MCw1NDY1MSw1NDY1Myw1NDY1NCw1NDY1NSw1NDY1Niw1NDY1Nyw1NDY1OCw1NDY1OSw1NDY2Miw1NDY2Niw1NDY2NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDY2OCw1NDY2OSw1NDY3MCw1NDY3MSw1NDY3Myw1NDY3NCw1NDY3NSw1NDY3Niw1NDY3'@; put 'Nyw1NDY3OCw1NDY3OSw1NDY4MCw1NDY4MSw1NDY4Miw1NDY4Myw1NDY4NCw1NDY4NSw1NDY4Niw1NDY4Nyw1NDY4OCw1NDY4OSw1NDY5MCw1NDY5MSw1NDY5Miw1NDY5NCw1NDY5NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDY5Niw1NDY5Nyw1NDY5OCw1NDY5OSw1NDcwMCw1'@; put 'NDcwMSw1NDcwMiw1NDcwMyw1NDcwNCw1NDcwNSw1NDcwNiw1NDcwNyw1NDcwOCw1NDcwOSw1NDcxMCw1NDcxMSw1NDcxMiw1NDcxMyw1NDcxNCw1NDcxNSw1NDcxNiw1NDcxNyw1NDcxOCw1NDcxOSw1NDcyMCw1NDcyMSw1NDcyMiw1NDcyMyw1NDcyNCw1NDcyNSw1NDcyNiw1NDcyNyw1MTIx'@; put 'Niw1MTIxNyw1MTIxOSw1MTIyMSw1MTIyMiw1MTIyOCw1MTIyOSw1MTIzMiw1MTIzNiw1MTI0NCw1MTI0NSw1MTI0Nyw1MTI0OSw1MTI1Niw1MTI2MCw1MTI2NCw1MTI3Miw1MTI3Myw1MTI3Niw1MTI3Nyw1MTI4NCw1MTMxMiw1MTMxMyw1MTMxNiw1MTMyMCw1MTMyMiw1MTMyOCw1MTMyOSw1'@; put 'MTMzMSw1MTMzMyw1MTMzNCw1MTMzNSw1MTMzOSw1MTM0MCw1MTM0MSw1MTM0OCw1MTM1Nyw1MTM1OSw1MTM2MSw1MTM2OCw1MTM4OCw1MTM4OSw1MTM5Niw1MTQwMCw1MTQwNCw1MTQxMiw1MTQxMyw1MTQxNSw1MTQxNyw1MTQyNCw1MTQyNSw1MTQyOCw1MTQ0NSw1MTQ1Miw1MTQ1Myw1MTQ1'@; put 'Niw1MTQ2MCw1MTQ2MSw1MTQ2Miw1MTQ2OCw1MTQ2OSw1MTQ3MSw1MTQ3Myw1MTQ4MCw1MTUwMCw1MTUwOCw1MTUzNiw1MTUzNyw1MTU0MCw1MTU0NCw1MTU1Miw1MTU1Myw1MTU1NSw1MTU2NCw1MTU2OCw1MTU3Miw1MTU4MCw1MTU5Miw1MTU5Myw1MTU5Niw1MTYwMCw1MTYwOCw1MTYwOSw1'@; put 'MTYxMSw1MTYxMyw1MTY0OCw1MTY0OSw1MTY1Miw1MTY1NSw1MTY1Niw1MTY1OCw1MTY2NCw1MTY2NSw1MTY2Nyw1NDczMCw1NDczMSw1NDczMyw1NDczNCw1NDczNSw1NDczNyw1NDczOSw1NDc0MCw1NDc0MSw1NDc0Miw1NDc0Myw1NDc0Niw1NDc0OCw1NDc1MCw1NDc1MSw1NDc1Miw1NDc1'@; put 'Myw1NDc1NCw1NDc1NSw1NDc1OCw1NDc1OSw1NDc2MSw1NDc2Miw1NDc2Myw1NDc2NSw1NDc2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDc2Nyw1NDc2OCw1NDc2OSw1NDc3MCw1NDc3MSw1NDc3NCw1NDc3Niw1NDc3OCw1NDc3OSw1NDc4MCw1NDc4MSw1NDc4Miw1NDc4Myw1'@; put 'NDc4Niw1NDc4Nyw1NDc4OSw1NDc5MCw1NDc5MSw1NDc5Myw1NDc5NCw1NDc5NSw1NDc5Niw1NDc5Nyw1NDc5OCw1NDc5OSw1NDgwMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDgwNiw1NDgwNyw1NDgwOCw1NDgwOSw1NDgxMCw1NDgxMSw1NDgxMyw1NDgxNCw1NDgxNSw1NDgx'@; put 'Nyw1NDgxOCw1NDgxOSw1NDgyMSw1NDgyMiw1NDgyMyw1NDgyNCw1NDgyNSw1NDgyNiw1NDgyNyw1NDgyOCw1NDgzMCw1NDgzMSw1NDgzMiw1NDgzMyw1NDgzNCw1NDgzNSw1NDgzNiw1NDgzNyw1NDgzOCw1NDgzOSw1NDg0Miw1NDg0Myw1MTY2OSw1MTY3MCw1MTY3Myw1MTY3NCw1MTY3Niw1'@; put 'MTY3Nyw1MTY4MCw1MTY4Miw1MTY4NCw1MTY4Nyw1MTY5Miw1MTY5Myw1MTY5NSw1MTY5Niw1MTY5Nyw1MTcwNCw1MTcwNSw1MTcwOCw1MTcxMiw1MTcyMCw1MTcyMSw1MTcyMyw1MTcyNCw1MTcyNSw1MTczMiw1MTczNiw1MTc1Myw1MTc4OCw1MTc4OSw1MTc5Miw1MTc5Niw1MTgwNCw1MTgw'@; put 'NSw1MTgwNyw1MTgwOCw1MTgwOSw1MTgxNiw1MTgzNyw1MTg0NCw1MTg2NCw1MTkwMCw1MTkwMSw1MTkwNCw1MTkwOCw1MTkxNiw1MTkxNyw1MTkxOSw1MTkyMSw1MTkyMyw1MTkyOCw1MTkyOSw1MTkzNiw1MTk0OCw1MTk1Niw1MTk3Niw1MTk4NCw1MTk4OCw1MTk5Miw1MmUzLDUyMDAxLDUy'@; put 'MDMzLDUyMDQwLDUyMDQxLDUyMDQ0LDUyMDQ4LDUyMDU2LDUyMDU3LDUyMDYxLDUyMDY4LDUyMDg4LDUyMDg5LDUyMTI0LDUyMTUyLDUyMTgwLDUyMTk2LDUyMTk5LDUyMjAxLDUyMjM2LDUyMjM3LDUyMjQwLDUyMjQ0LDUyMjUyLDUyMjUzLDUyMjU3LDUyMjU4LDUyMjYzLDUyMjY0LDUyMjY1'@; put 'LDUyMjY4LDUyMjcwLDUyMjcyLDUyMjgwLDUyMjgxLDUyMjgzLDU0ODQ1LDU0ODQ2LDU0ODQ3LDU0ODQ5LDU0ODUwLDU0ODUxLDU0ODUyLDU0ODU0LDU0ODU1LDU0ODU4LDU0ODYwLDU0ODYyLDU0ODYzLDU0ODY0LDU0ODY2LDU0ODY3LDU0ODcwLDU0ODcxLDU0ODczLDU0ODc0LDU0ODc1LDU0'@; put 'ODc3LDU0ODc4LDU0ODc5LDU0ODgwLDU0ODgxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0ODgyLDU0ODgzLDU0ODg0LDU0ODg1LDU0ODg2LDU0ODg4LDU0ODkwLDU0ODkxLDU0ODkyLDU0ODkzLDU0ODk0LDU0ODk1LDU0ODk4LDU0ODk5LDU0OTAxLDU0OTAyLDU0OTAzLDU0OTA0'@; put 'LDU0OTA1LDU0OTA2LDU0OTA3LDU0OTA4LDU0OTA5LDU0OTEwLDU0OTExLDU0OTEyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0OTEzLDU0OTE0LDU0OTE2LDU0OTE4LDU0OTE5LDU0OTIwLDU0OTIxLDU0OTIyLDU0OTIzLDU0OTI2LDU0OTI3LDU0OTI5LDU0OTMwLDU0OTMxLDU0'@; put 'OTMzLDU0OTM0LDU0OTM1LDU0OTM2LDU0OTM3LDU0OTM4LDU0OTM5LDU0OTQwLDU0OTQyLDU0OTQ0LDU0OTQ2LDU0OTQ3LDU0OTQ4LDU0OTQ5LDU0OTUwLDU0OTUxLDU0OTUzLDU0OTU0LDUyMjg0LDUyMjg1LDUyMjg2LDUyMjkyLDUyMjkzLDUyMjk2LDUyMzAwLDUyMzA4LDUyMzA5LDUyMzEx'@; put 'LDUyMzEyLDUyMzEzLDUyMzIwLDUyMzI0LDUyMzI2LDUyMzI4LDUyMzM2LDUyMzQxLDUyMzc2LDUyMzc3LDUyMzgwLDUyMzg0LDUyMzkyLDUyMzkzLDUyMzk1LDUyMzk2LDUyMzk3LDUyNDA0LDUyNDA1LDUyNDA4LDUyNDEyLDUyNDIwLDUyNDIxLDUyNDIzLDUyNDI1LDUyNDMyLDUyNDM2LDUy'@; put 'NDUyLDUyNDYwLDUyNDY0LDUyNDgxLDUyNDg4LDUyNDg5LDUyNDkyLDUyNDk2LDUyNTA0LDUyNTA1LDUyNTA3LDUyNTA5LDUyNTE2LDUyNTIwLDUyNTI0LDUyNTM3LDUyNTcyLDUyNTc2LDUyNTgwLDUyNTg4LDUyNTg5LDUyNTkxLDUyNTkzLDUyNjAwLDUyNjE2LDUyNjI4LDUyNjI5LDUyNjMy'@; put 'LDUyNjM2LDUyNjQ0LDUyNjQ1LDUyNjQ3LDUyNjQ5LDUyNjU2LDUyNjc2LDUyNjg0LDUyNjg4LDUyNzEyLDUyNzE2LDUyNzIwLDUyNzI4LDUyNzI5LDUyNzMxLDUyNzMzLDUyNzQwLDUyNzQ0LDUyNzQ4LDUyNzU2LDUyNzYxLDUyNzY4LDUyNzY5LDUyNzcyLDUyNzc2LDUyNzg0LDUyNzg1LDUy'@; put 'Nzg3LDUyNzg5LDU0OTU1LDU0OTU3LDU0OTU4LDU0OTU5LDU0OTYxLDU0OTYyLDU0OTYzLDU0OTY0LDU0OTY1LDU0OTY2LDU0OTY3LDU0OTY4LDU0OTcwLDU0OTcyLDU0OTczLDU0OTc0LDU0OTc1LDU0OTc2LDU0OTc3LDU0OTc4LDU0OTc5LDU0OTgyLDU0OTgzLDU0OTg1LDU0OTg2LDU0OTg3'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0OTg5LDU0OTkwLDU0OTkxLDU0OTkyLDU0OTk0LDU0OTk1LDU0OTk3LDU0OTk4LDU1ZTMsNTUwMDIsNTUwMDMsNTUwMDQsNTUwMDUsNTUwMDYsNTUwMDcsNTUwMDksNTUwMTAsNTUwMTEsNTUwMTMsNTUwMTQsNTUwMTUsNTUwMTcsNTUw'@; put 'MTgsNTUwMTksNTUwMjAsNTUwMjEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTUwMjIsNTUwMjMsNTUwMjUsNTUwMjYsNTUwMjcsNTUwMjgsNTUwMzAsNTUwMzEsNTUwMzIsNTUwMzMsNTUwMzQsNTUwMzUsNTUwMzgsNTUwMzksNTUwNDEsNTUwNDIsNTUwNDMsNTUwNDUsNTUwNDYs'@; put 'NTUwNDcsNTUwNDgsNTUwNDksNTUwNTAsNTUwNTEsNTUwNTIsNTUwNTMsNTUwNTQsNTUwNTUsNTUwNTYsNTUwNTgsNTUwNTksNTUwNjAsNTI4MjQsNTI4MjUsNTI4MjgsNTI4MzEsNTI4MzIsNTI4MzMsNTI4NDAsNTI4NDEsNTI4NDMsNTI4NDUsNTI4NTIsNTI4NTMsNTI4NTYsNTI4NjAsNTI4'@; put 'NjgsNTI4NjksNTI4NzEsNTI4NzMsNTI4ODAsNTI4ODEsNTI4ODQsNTI4ODgsNTI4OTYsNTI4OTcsNTI4OTksNTI5MDAsNTI5MDEsNTI5MDgsNTI5MDksNTI5MjksNTI5NjQsNTI5NjUsNTI5NjgsNTI5NzEsNTI5NzIsNTI5ODAsNTI5ODEsNTI5ODMsNTI5ODQsNTI5ODUsNTI5OTIsNTI5OTMs'@; put 'NTI5OTYsNTNlMyw1MzAwOCw1MzAwOSw1MzAxMSw1MzAxMyw1MzAyMCw1MzAyNCw1MzAyOCw1MzAzNiw1MzAzNyw1MzAzOSw1MzA0MCw1MzA0MSw1MzA0OCw1MzA3Niw1MzA3Nyw1MzA4MCw1MzA4NCw1MzA5Miw1MzA5Myw1MzA5NSw1MzA5Nyw1MzEwNCw1MzEwNSw1MzEwOCw1MzExMiw1MzEy'@; put 'MCw1MzEyNSw1MzEzMiw1MzE1Myw1MzE2MCw1MzE2OCw1MzE4OCw1MzIxNiw1MzIxNyw1MzIyMCw1MzIyNCw1MzIzMiw1MzIzMyw1MzIzNSw1MzIzNyw1MzI0NCw1MzI0OCw1MzI1Miw1MzI2NSw1MzI3Miw1MzI5Myw1MzMwMCw1MzMwMSw1MzMwNCw1MzMwOCw1NTA2MSw1NTA2Miw1NTA2Myw1'@; put 'NTA2Niw1NTA2Nyw1NTA2OSw1NTA3MCw1NTA3MSw1NTA3Myw1NTA3NCw1NTA3NSw1NTA3Niw1NTA3Nyw1NTA3OCw1NTA3OSw1NTA4Miw1NTA4NCw1NTA4Niw1NTA4Nyw1NTA4OCw1NTA4OSw1NTA5MCw1NTA5MSw1NTA5NCw1NTA5NSw1NTA5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCw1NTA5OCw1NTA5OSw1NTEwMSw1NTEwMiw1NTEwMyw1NTEwNCw1NTEwNSw1NTEwNiw1NTEwNyw1NTEwOSw1NTExMCw1NTExMiw1NTExNCw1NTExNSw1NTExNiw1NTExNyw1NTExOCw1NTExOSw1NTEyMiw1NTEyMyw1NTEyNSw1NTEzMCw1NTEzMSw1NTEzMiw1NTEzMyw1NTEzNCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NTEzNSw1NTEzOCw1NTE0MCw1NTE0Miw1NTE0Myw1NTE0NCw1NTE0Niw1NTE0Nyw1NTE0OSw1NTE1MCw1NTE1MSw1NTE1Myw1NTE1NCw1NTE1NSw1NTE1Nyw1NTE1OCw1NTE1OSw1NTE2MCw1NTE2MSw1NTE2Miw1NTE2Myw1NTE2Niw1NTE2Nyw1NTE2'@; put 'OCw1NTE3MCw1NTE3MSw1NTE3Miw1NTE3Myw1NTE3NCw1NTE3NSw1NTE3OCw1NTE3OSw1MzMxNiw1MzMxNyw1MzMxOSw1MzMyMSw1MzMyOCw1MzMzMiw1MzMzNiw1MzM0NCw1MzM1Niw1MzM1Nyw1MzM2MCw1MzM2NCw1MzM3Miw1MzM3Myw1MzM3Nyw1MzQxMiw1MzQxMyw1MzQxNiw1MzQyMCw1'@; put 'MzQyOCw1MzQyOSw1MzQzMSw1MzQzMyw1MzQ0MCw1MzQ0MSw1MzQ0NCw1MzQ0OCw1MzQ0OSw1MzQ1Niw1MzQ1Nyw1MzQ1OSw1MzQ2MCw1MzQ2MSw1MzQ2OCw1MzQ2OSw1MzQ3Miw1MzQ3Niw1MzQ4NCw1MzQ4NSw1MzQ4Nyw1MzQ4OCw1MzQ4OSw1MzQ5Niw1MzUxNyw1MzU1Miw1MzU1Myw1MzU1'@; put 'Niw1MzU2MCw1MzU2Miw1MzU2OCw1MzU2OSw1MzU3MSw1MzU3Miw1MzU3Myw1MzU4MCw1MzU4MSw1MzU4NCw1MzU4OCw1MzU5Niw1MzU5Nyw1MzU5OSw1MzYwMSw1MzYwOCw1MzYxMiw1MzYyOCw1MzYzNiw1MzY0MCw1MzY2NCw1MzY2NSw1MzY2OCw1MzY3Miw1MzY4MCw1MzY4MSw1MzY4Myw1'@; put 'MzY4NSw1MzY5MCw1MzY5Miw1MzY5Niw1MzcyMCw1Mzc0OCw1Mzc1Miw1Mzc2Nyw1Mzc2OSw1Mzc3Niw1MzgwNCw1MzgwNSw1MzgwOCw1MzgxMiw1MzgyMCw1MzgyMSw1MzgyMyw1MzgyNSw1MzgzMiw1Mzg1Miw1NTE4MSw1NTE4Miw1NTE4Myw1NTE4NSw1NTE4Niw1NTE4Nyw1NTE4OCw1NTE4'@; put 'OSw1NTE5MCw1NTE5MSw1NTE5NCw1NTE5Niw1NTE5OCw1NTE5OSw1NTIwMCw1NTIwMSw1NTIwMiw1NTIwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzg2MCw1Mzg4OCw1Mzg4OSw1Mzg5Miw1Mzg5Niw1MzkwNCw1MzkwNSw1'@; put 'MzkwOSw1MzkxNiw1MzkyMCw1MzkyNCw1MzkzMiw1MzkzNyw1Mzk0NCw1Mzk0NSw1Mzk0OCw1Mzk1MSw1Mzk1Miw1Mzk1NCw1Mzk2MCw1Mzk2MSw1Mzk2Myw1Mzk3Miw1Mzk3Niw1Mzk4MCw1Mzk4OCw1Mzk4OSw1NGUzLDU0MDAxLDU0MDA0LDU0MDA4LDU0MDE2LDU0MDE3LDU0MDE5LDU0MDIx'@; put 'LDU0MDI4LDU0MDI5LDU0MDMwLDU0MDMyLDU0MDM2LDU0MDM4LDU0MDQ0LDU0MDQ1LDU0MDQ3LDU0MDQ4LDU0MDQ5LDU0MDUzLDU0MDU2LDU0MDU3LDU0MDYwLDU0MDY0LDU0MDcyLDU0MDczLDU0MDc1LDU0MDc2LDU0MDc3LDU0MDg0LDU0MDg1LDU0MTQwLDU0MTQxLDU0MTQ0LDU0MTQ4LDU0'@; put 'MTU2LDU0MTU3LDU0MTU5LDU0MTYwLDU0MTYxLDU0MTY4LDU0MTY5LDU0MTcyLDU0MTc2LDU0MTg0LDU0MTg1LDU0MTg3LDU0MTg5LDU0MTk2LDU0MjAwLDU0MjA0LDU0MjEyLDU0MjEzLDU0MjE2LDU0MjE3LDU0MjI0LDU0MjMyLDU0MjQxLDU0MjQzLDU0MjUyLDU0MjUzLDU0MjU2LDU0MjYw'@; put 'LDU0MjY4LDU0MjY5LDU0MjcxLDU0MjczLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLDU0MjgwLDU0MzAxLDU0MzM2LDU0MzQwLDU0MzY0LDU0MzY4LDU0MzcyLDU0MzgxLDU0MzgzLDU0MzkyLDU0MzkzLDU0Mzk2LDU0Mzk5LDU0NDAwLDU0NDAyLDU0NDA4LDU0NDA5LDU0NDExLDU0NDEzLDU0NDIwLDU0NDQxLDU0NDc2LDU0NDgwLDU0NDg0LDU0NDkyLDU0NDk1'@; put 'LDU0NTA0LDU0NTA4LDU0NTEyLDU0NTIwLDU0NTIzLDU0NTI1LDU0NTMyLDU0NTM2LDU0NTQwLDU0NTQ4LDU0NTQ5LDU0NTUxLDU0NTg4LDU0NTg5LDU0NTkyLDU0NTk2LDU0NjA0LDU0NjA1LDU0NjA3LDU0NjA5LDU0NjE2LDU0NjE3LDU0NjIwLDU0NjI0LDU0NjI5LDU0NjMyLDU0NjMzLDU0'@; put 'NjM1LDU0NjM3LDU0NjQ0LDU0NjQ1LDU0NjQ4LDU0NjUyLDU0NjYwLDU0NjYxLDU0NjYzLDU0NjY0LDU0NjY1LDU0NjcyLDU0NjkzLDU0NzI4LDU0NzI5LDU0NzMyLDU0NzM2LDU0NzM4LDU0NzQ0LDU0NzQ1LDU0NzQ3LDU0NzQ5LDU0NzU2LDU0NzU3LDU0NzYwLDU0NzY0LDU0NzcyLDU0Nzcz'@; put 'LDU0Nzc1LDU0Nzc3LDU0Nzg0LDU0Nzg1LDU0Nzg4LDU0NzkyLDU0ODAwLDU0ODAxLDU0ODAzLDU0ODA0LDU0ODA1LDU0ODEyLDU0ODE2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0ODIwLDU0ODI5LDU0ODQwLDU0ODQxLDU0ODQ0LDU0ODQ4LDU0ODUzLDU0ODU2LDU0ODU3LDU0ODU5LDU0ODYxLDU0ODY1LDU0ODY4LDU0ODY5LDU0ODcyLDU0ODc2LDU0ODg3'@; put 'LDU0ODg5LDU0ODk2LDU0ODk3LDU0OTAwLDU0OTE1LDU0OTE3LDU0OTI0LDU0OTI1LDU0OTI4LDU0OTMyLDU0OTQxLDU0OTQzLDU0OTQ1LDU0OTUyLDU0OTU2LDU0OTYwLDU0OTY5LDU0OTcxLDU0OTgwLDU0OTgxLDU0OTg0LDU0OTg4LDU0OTkzLDU0OTk2LDU0OTk5LDU1MDAxLDU1MDA4LDU1'@; put 'MDEyLDU1MDE2LDU1MDI0LDU1MDI5LDU1MDM2LDU1MDM3LDU1MDQwLDU1MDQ0LDU1MDU3LDU1MDY0LDU1MDY1LDU1MDY4LDU1MDcyLDU1MDgwLDU1MDgxLDU1MDgzLDU1MDg1LDU1MDkyLDU1MDkzLDU1MDk2LDU1MTAwLDU1MTA4LDU1MTExLDU1MTEzLDU1MTIwLDU1MTIxLDU1MTI0LDU1MTI2'@; put 'LDU1MTI3LDU1MTI4LDU1MTI5LDU1MTM2LDU1MTM3LDU1MTM5LDU1MTQxLDU1MTQ1LDU1MTQ4LDU1MTUyLDU1MTU2LDU1MTY0LDU1MTY1LDU1MTY5LDU1MTc2LDU1MTc3LDU1MTgwLDU1MTg0LDU1MTkyLDU1MTkzLDU1MTk1LDU1MTk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjAyODUsMjAzMzksMjA1NTEsMjA3MjksMjExNTIsMjE0ODcsMjE2MjEsMjE3MzMsMjIwMjUsMjMyMzMsMjM0NzgsMjYyNDcsMjY1NTAsMjY1NTEsMjY2'@; put 'MDcsMjc0NjgsMjk2MzQsMzAxNDYsMzEyOTIsMzM0OTksMzM1NDAsMzQ5MDMsMzQ5NTIsMzUzODIsMzYwNDAsMzYzMDMsMzY2MDMsMzY4MzgsMzkzODEsMjEwNTEsMjEzNjQsMjE1MDgsMjQ2ODIsMjQ5MzIsMjc1ODAsMjk2NDcsMzMwNTAsMzUyNTgsMzUyODIsMzgzMDcsMjAzNTUsMjEwMDIs'@; put 'MjI3MTgsMjI5MDQsMjMwMTQsMjQxNzgsMjQxODUsMjUwMzEsMjU1MzYsMjY0MzgsMjY2MDQsMjY3NTEsMjg1NjcsMzAyODYsMzA0NzUsMzA5NjUsMzEyNDAsMzE0ODcsMzE3NzcsMzI5MjUsMzMzOTAsMzMzOTMsMzU1NjMsMzgyOTEsMjAwNzUsMjE5MTcsMjYzNTksMjgyMTIsMzA4ODMsMzE0'@; put 'NjksMzM4ODMsMzUwODgsMzQ2MzgsMzg4MjQsMjEyMDgsMjIzNTAsMjI1NzAsMjM4ODQsMjQ4NjMsMjUwMjIsMjUxMjEsMjU5NTQsMjY1NzcsMjcyMDQsMjgxODcsMjk5NzYsMzAxMzEsMzA0MzUsMzA2NDAsMzIwNTgsMzcwMzksMzc5NjksMzc5NzAsNDA4NTMsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjEyODMsMjM3MjQsMzAwMDIsMzI5ODcsMzc0NDAsMzgy'@; put 'OTYsMjEwODMsMjI1MzYsMjMwMDQsMjM3MTMsMjM4MzEsMjQyNDcsMjQzNzgsMjQzOTQsMjQ5NTEsMjc3NDMsMzAwNzQsMzAwODYsMzE5NjgsMzIxMTUsMzIxNzcsMzI2NTIsMzMxMDgsMzMzMTMsMzQxOTMsMzUxMzcsMzU2MTEsMzc2MjgsMzg0NzcsNDAwMDcsMjAxNzEsMjAyMTUsMjA0OTEs'@; put 'MjA5NzcsMjI2MDcsMjQ4ODcsMjQ4OTQsMjQ5MzYsMjU5MTMsMjcxMTQsMjg0MzMsMzAxMTcsMzAzNDIsMzA0MjIsMzE2MjMsMzM0NDUsMzM5OTUsNjM3NDQsMzc3OTksMzgyODMsMjE4ODgsMjM0NTgsMjIzNTMsNjM3NDUsMzE5MjMsMzI2OTcsMzczMDEsMjA1MjAsMjE0MzUsMjM2MjEsMjQw'@; put 'NDAsMjUyOTgsMjU0NTQsMjU4MTgsMjU4MzEsMjgxOTIsMjg4NDQsMzEwNjcsMzYzMTcsMzYzODIsNjM3NDYsMzY5ODksMzc0NDUsMzc2MjQsMjAwOTQsMjAyMTQsMjA1ODEsMjQwNjIsMjQzMTQsMjQ4MzgsMjY5NjcsMzMxMzcsMzQzODgsMzY0MjMsMzc3NDksMzk0NjcsMjAwNjIsMjA2MjUs'@; put 'MjY0ODAsMjY2ODgsMjA3NDUsMjExMzMsMjExMzgsMjcyOTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsMzA2NTIsMzczOTIsNDA2NjAsMjExNjMsMjQ2MjMsMzY4NTAsMjA1NTIsMjUwMDEsMjU1ODEsMjU4MDIsMjY2ODQsMjcyNjgsMjg2MDgsMzMxNjAsMzUyMzMsMzg1NDgsMjI1MzMsMjkzMDksMjkzNTYsMjk5NTYsMzIxMjEsMzIzNjUsMzI5MzcsMzUyMTEs'@; put 'MzU3MDAsMzY5NjMsNDAyNzMsMjUyMjUsMjc3NzAsMjg1MDAsMzIwODAsMzI1NzAsMzUzNjMsMjA4NjAsMjQ5MDYsMzE2NDUsMzU2MDksMzc0NjMsMzc3NzIsMjAxNDAsMjA0MzUsMjA1MTAsMjA2NzAsMjA3NDIsMjExODUsMjExOTcsMjEzNzUsMjIzODQsMjI2NTksMjQyMTgsMjQ0NjUsMjQ5'@; put 'NTAsMjUwMDQsMjU4MDYsMjU5NjQsMjYyMjMsMjYyOTksMjYzNTYsMjY3NzUsMjgwMzksMjg4MDUsMjg5MTMsMjk4NTUsMjk4NjEsMjk4OTgsMzAxNjksMzA4MjgsMzA5NTYsMzE0NTUsMzE0NzgsMzIwNjksMzIxNDcsMzI3ODksMzI4MzEsMzMwNTEsMzM2ODYsMzU2ODYsMzY2MjksMzY4ODUs'@; put 'Mzc4NTcsMzg5MTUsMzg5NjgsMzk1MTQsMzk5MTIsMjA0MTgsMjE4NDMsMjI1ODYsMjI4NjUsMjMzOTUsMjM2MjIsMjQ3NjAsMjUxMDYsMjY2OTAsMjY4MDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjY4NTYsMjgzMzAsMzAwMjgsMzAzMjgsMzA5MjYsMzEyOTMsMzE5OTUsMzIzNjMsMzIzODAsMzUzMzYsMzU0ODksMzU5MDMsMzg1NDIsNDAzODgsMjE0NzYs'@; put 'MjE0ODEsMjE1NzgsMjE2MTcsMjIyNjYsMjI5OTMsMjMzOTYsMjM2MTEsMjQyMzUsMjUzMzUsMjU5MTEsMjU5MjUsMjU5NzAsMjYyNzIsMjY1NDMsMjcwNzMsMjc4MzcsMzAyMDQsMzAzNTIsMzA1OTAsMzEyOTUsMzI2NjAsMzI3NzEsMzI5MjksMzMxNjcsMzM1MTAsMzM1MzMsMzM3NzYsMzQy'@; put 'NDEsMzQ4NjUsMzQ5OTYsMzU0OTMsNjM3NDcsMzY3NjQsMzc2NzgsMzg1OTksMzkwMTUsMzk2NDAsNDA3MjMsMjE3NDEsMjYwMTEsMjYzNTQsMjY3NjcsMzEyOTYsMzU4OTUsNDAyODgsMjIyNTYsMjIzNzIsMjM4MjUsMjYxMTgsMjY4MDEsMjY4MjksMjg0MTQsMjk3MzYsMzQ5NzQsMzk5MDgs'@; put 'Mjc3NTIsNjM3NDgsMzk1OTIsMjAzNzksMjA4NDQsMjA4NDksMjExNTEsMjMzODAsMjQwMzcsMjQ2NTYsMjQ2ODUsMjUzMjksMjU1MTEsMjU5MTUsMjk2NTcsMzEzNTQsMzQ0NjcsMzYwMDIsMzg3OTksMjAwMTgsMjM1MjEsMjUwOTYsMjY1MjQsMjk5MTYsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzExODUsMzM3NDcsMzU0NjMsMzU1MDYsMzYzMjgsMzY5NDIs'@; put 'Mzc3MDcsMzg5ODIsMjQyNzUsMjcxMTIsMzQzMDMsMzcxMDEsNjM3NDksMjA4OTYsMjM0NDgsMjM1MzIsMjQ5MzEsMjY4NzQsMjc0NTQsMjg3NDgsMjk3NDMsMjk5MTIsMzE2NDksMzI1OTIsMzM3MzMsMzUyNjQsMzYwMTEsMzgzNjQsMzkyMDgsMjEwMzgsMjQ2NjksMjUzMjQsMzY4NjYsMjAz'@; put 'NjIsMjA4MDksMjEyODEsMjI3NDUsMjQyOTEsMjYzMzYsMjc5NjAsMjg4MjYsMjkzNzgsMjk2NTQsMzE1NjgsMzMwMDksMzc5NzksMjEzNTAsMjU0OTksMzI2MTksMjAwNTQsMjA2MDgsMjI2MDIsMjI3NTAsMjQ2MTgsMjQ4NzEsMjUyOTYsMjcwODgsMzk3NDUsMjM0MzksMzIwMjQsMzI5NDUs'@; put 'MzY3MDMsMjAxMzIsMjA2ODksMjE2NzYsMjE5MzIsMjMzMDgsMjM5NjgsMjQwMzksMjU4OTgsMjU5MzQsMjY2NTcsMjcyMTEsMjk0MDksMzAzNTAsMzA3MDMsMzIwOTQsMzI3NjEsMzMxODQsMzQxMjYsMzQ1MjcsMzY2MTEsMzY2ODYsMzcwNjYsMzkxNzEsMzk1MDksMzk4NTEsMTk5OTIsMjAw'@; put 'MzcsMjAwNjEsMjAxNjcsMjA0NjUsMjA4NTUsMjEyNDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsMjEzMTIsMjE0NzUsMjE0NzcsMjE2NDYsMjIwMzYsMjIzODksMjI0MzQsMjM0OTUsMjM5NDMsMjQyNzIsMjUwODQsMjUzMDQsMjU5MzcsMjY1NTIsMjY2MDEsMjcwODMsMjc0NzIsMjc1OTAsMjc2MjgsMjc3MTQsMjgzMTcsMjg3OTIsMjkzOTksMjk1OTAsMjk2'@; put 'OTksMzA2NTUsMzA2OTcsMzEzNTAsMzIxMjcsMzI3NzcsMzMyNzYsMzMyODUsMzMyOTAsMzM1MDMsMzQ5MTQsMzU2MzUsMzYwOTIsMzY1NDQsMzY4ODEsMzcwNDEsMzc0NzYsMzc1NTgsMzkzNzgsMzk0OTMsNDAxNjksNDA0MDcsNDA4NjAsMjIyODMsMjM2MTYsMzM3MzgsMzg4MTYsMzg4Mjcs'@; put 'NDA2MjgsMjE1MzEsMzEzODQsMzI2NzYsMzUwMzMsMzY1NTcsMzcwODksMjI1MjgsMjM2MjQsMjU0OTYsMzEzOTEsMjM0NzAsMjQzMzksMzEzNTMsMzE0MDYsMzM0MjIsMzY1MjQsMjA1MTgsMjEwNDgsMjEyNDAsMjEzNjcsMjIyODAsMjUzMzEsMjU0NTgsMjc0MDIsMjgwOTksMzA1MTksMjE0'@; put 'MTMsMjk1MjcsMzQxNTIsMzY0NzAsMzgzNTcsMjY0MjYsMjczMzEsMjg1MjgsMzU0MzcsMzY1NTYsMzkyNDMsNjM3NTAsMjYyMzEsMjc1MTIsMzYwMjAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzk3NDAsNjM3NTEsMjE0ODMsMjIzMTcsMjI4NjIsMjU1NDIsMjcxMzEsMjk2NzQsMzA3ODksMzE0MTgsMzE0MjksMzE5OTgsMzM5MDksMzUyMTUsMzYyMTEsMzY5'@; put 'MTcsMzgzMTIsMjEyNDMsMjIzNDMsMzAwMjMsMzE1ODQsMzM3NDAsMzc0MDYsNjM3NTIsMjcyMjQsMjA4MTEsMjEwNjcsMjExMjcsMjUxMTksMjY4NDAsMjY5OTcsMzg1NTMsMjA2NzcsMjExNTYsMjEyMjAsMjUwMjcsMjYwMjAsMjY2ODEsMjcxMzUsMjk4MjIsMzE1NjMsMzM0NjUsMzM3NzEs'@; put 'MzUyNTAsMzU2NDEsMzY4MTcsMzkyNDEsNjM3NTMsMjAxNzAsMjI5MzUsMjU4MTAsMjYxMjksMjcyNzgsMjk3NDgsMzExMDUsMzExNjUsMzM0NDksMzQ5NDIsMzQ5NDMsMzUxNjcsNjM3NTQsMzc2NzAsMjAyMzUsMjE0NTAsMjQ2MTMsMjUyMDEsMjc3NjIsMzIwMjYsMzIxMDIsMjAxMjAsMjA4'@; put 'MzQsMzA2ODQsMzI5NDMsMjAyMjUsMjAyMzgsMjA4NTQsMjA4NjQsMjE5ODAsMjIxMjAsMjIzMzEsMjI1MjIsMjI1MjQsMjI4MDQsMjI4NTUsMjI5MzEsMjM0OTIsMjM2OTYsMjM4MjIsMjQwNDksMjQxOTAsMjQ1MjQsMjUyMTYsMjYwNzEsMjYwODMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjYzOTgsMjYzOTksMjY0NjIsMjY4MjcsMjY4MjAsMjcyMzEsMjc0'@; put 'NTAsMjc2ODMsMjc3NzMsMjc3NzgsMjgxMDMsMjk1OTIsMjk3MzQsMjk3MzgsMjk4MjYsMjk4NTksMzAwNzIsMzAwNzksMzA4NDksMzA5NTksMzEwNDEsMzEwNDcsMzEwNDgsMzEwOTgsMzE2MzcsMzJlMywzMjE4NiwzMjY0OCwzMjc3NCwzMjgxMywzMjkwOCwzNTM1MiwzNTY2MywzNTkxMiwz'@; put 'NjIxNSwzNzY2NSwzNzY2OCwzOTEzOCwzOTI0OSwzOTQzOCwzOTQzOSwzOTUyNSw0MDU5NCwzMjIwMiwyMDM0MiwyMTUxMywyNTMyNiwyNjcwOCwzNzMyOSwyMTkzMSwyMDc5NCw2Mzc1NSw2Mzc1NiwyMzA2OCwyNTA2Miw2Mzc1NywyNTI5NSwyNTM0Myw2Mzc1OCw2Mzc1OSw2Mzc2MCw2Mzc2'@; put 'MSw2Mzc2Miw2Mzc2MywzNzAyNyw2Mzc2NCw2Mzc2NSw2Mzc2Niw2Mzc2Nyw2Mzc2OCwzNTU4Miw2Mzc2OSw2Mzc3MCw2Mzc3MSw2Mzc3MiwyNjI2Miw2Mzc3MywyOTAxNCw2Mzc3NCw2Mzc3NSwzODYyNyw2Mzc3NiwyNTQyMywyNTQ2NiwyMTMzNSw2Mzc3NywyNjUxMSwyNjk3NiwyODI3NSw2'@; put 'Mzc3OCwzMDAwNyw2Mzc3OSw2Mzc4MCw2Mzc4MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCwzMjAxMyw2Mzc4Miw2Mzc4MywzNDkzMCwyMjIxOCwyMzA2NCw2Mzc4NCw2Mzc4NSw2Mzc4Niw2Mzc4Nyw2Mzc4OCwyMDAzNSw2Mzc4OSwyMDgzOSwyMjg1NiwyNjYwOCwzMjc4NCw2Mzc5MCwyMjg5OSwyNDE4MCwyNTc1NCwzMTE3OCwyNDU2NSwyNDY4NCwyNTI4OCwy'@; put 'NTQ2NywyMzUyNywyMzUxMSwyMTE2Miw2Mzc5MSwyMjkwMCwyNDM2MSwyNDU5NCw2Mzc5Miw2Mzc5Myw2Mzc5NCwyOTc4NSw2Mzc5NSw2Mzc5Niw2Mzc5Nyw2Mzc5OCw2Mzc5OSw2MzgwMCwzOTM3Nyw2MzgwMSw2MzgwMiw2MzgwMyw2MzgwNCw2MzgwNSw2MzgwNiw2MzgwNyw2MzgwOCw2Mzgw'@; put 'OSw2MzgxMCw2MzgxMSwyODYxMSw2MzgxMiw2MzgxMywzMzIxNSwzNjc4NiwyNDgxNyw2MzgxNCw2MzgxNSwzMzEyNiw2MzgxNiw2MzgxNywyMzYxNSw2MzgxOCw2MzgxOSw2MzgyMCw2MzgyMSw2MzgyMiw2MzgyMyw2MzgyNCw2MzgyNSwyMzI3MywzNTM2NSwyNjQ5MSwzMjAxNiw2MzgyNiw2'@; put 'MzgyNyw2MzgyOCw2MzgyOSw2MzgzMCw2MzgzMSwzMzAyMSw2MzgzMiw2MzgzMywyMzYxMiwyNzg3NywyMTMxMSwyODM0NiwyMjgxMCwzMzU5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMDAyNSwyMDE1MCwyMDI5NCwyMTkzNCwyMjI5NiwyMjcyNywyNDQwNiwyNjAzOSwyNjA4NiwyNzI2NCwyNzU3MywyODIzNywzMDcwMSwzMTQ3MSwzMTc3NCwzMjIyMiwz'@; put 'NDUwNywzNDk2MiwzNzE3MCwzNzcyMywyNTc4NywyODYwNiwyOTU2MiwzMDEzNiwzNjk0OCwyMTg0NiwyMjM0OSwyNTAxOCwyNTgxMiwyNjMxMSwyODEyOSwyODI1MSwyODUyNSwyODYwMSwzMDE5MiwzMjgzNSwzMzIxMywzNDExMywzNTIwMywzNTUyNywzNTY3NCwzNzY2MywyNzc5NSwzMDAz'@; put 'NSwzMTU3MiwzNjM2NywzNjk1NywyMTc3NiwyMjUzMCwyMjYxNiwyNDE2MiwyNTA5NSwyNTc1OCwyNjg0OCwzMDA3MCwzMTk1OCwzNDczOSw0MDY4MCwyMDE5NSwyMjQwOCwyMjM4MiwyMjgyMywyMzU2NSwyMzcyOSwyNDExOCwyNDQ1MywyNTE0MCwyNTgyNSwyOTYxOSwzMzI3NCwzNDk1NSwz'@; put 'NjAyNCwzODUzOCw0MDY2NywyMzQyOSwyNDUwMywyNDc1NSwyMDQ5OCwyMDk5MiwyMTA0MCwyMjI5NCwyMjU4MSwyMjYxNSwyMzU2NiwyMzY0OCwyMzc5OCwyMzk0NywyNDIzMCwyNDQ2NiwyNDc2NCwyNTM2MSwyNTQ4MSwyNTYyMywyNjY5MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNjg3MywyNzMzMCwyODEyMCwyODE5MywyODM3MiwyODY0NCwyOTE4Miwz'@; put 'MDQyOCwzMDU4NSwzMTE1MywzMTI5MSwzMzc5NiwzNTI0MSwzNjA3NywzNjMzOSwzNjQyNCwzNjg2NywzNjg4NCwzNjk0NywzNzExNywzNzcwOSwzODUxOCwzODg3NiwyNzYwMiwyODY3OCwyOTI3MiwyOTM0NiwyOTU0NCwzMDU2MywzMTE2NywzMTcxNiwzMjQxMSwzNTcxMiwyMjY5NywyNDc3'@; put 'NSwyNTk1OCwyNjEwOSwyNjMwMiwyNzc4OCwyODk1OCwyOTEyOSwzNTkzMCwzODkzMSwyMDA3NywzMTM2MSwyMDE4OSwyMDkwOCwyMDk0MSwyMTIwNSwyMTUxNiwyNDk5OSwyNjQ4MSwyNjcwNCwyNjg0NywyNzkzNCwyODU0MCwzMDE0MCwzMDY0MywzMTQ2MSwzMzAxMiwzMzg5MSwzNzUwOSwy'@; put 'MDgyOCwyNjAwNywyNjQ2MCwyNjUxNSwzMDE2OCwzMTQzMSwzMzY1MSw2MzgzNCwzNTkxMCwzNjg4NywzODk1NywyMzY2MywzMzIxNiwzMzQzNCwzNjkyOSwzNjk3NSwzNzM4OSwyNDQ3MSwyMzk2NSwyNzIyNSwyOTEyOCwzMDMzMSwzMTU2MSwzNDI3NiwzNTU4OCwzNzE1OSwzOTQ3MiwyMTg5'@; put 'NSwyNTA3OCw2MzgzNSwzMDMxMywzMjY0NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCwzNDM2NywzNDc0NiwzNTA2NCwzNzAwNyw2MzgzNiwyNzkzMSwyODg4OSwyOTY2MiwzMjA5NywzMzg1Myw2MzgzNywzNzIyNiwzOTQwOSw2MzgzOCwyMDA5OCwyMTM2NSwyNzM5NiwyNzQxMCwyODczNCwyOTIxMSwzNDM0OSw0MDQ3OCwyMTA2OCwzNjc3MSwyMzg4OCwyNTgy'@; put 'OSwyNTkwMCwyNzQxNCwyODY1MSwzMTgxMSwzMjQxMiwzNDI1MywzNTE3MiwzNTI2MSwyNTI4OSwzMzI0MCwzNDg0NywyNDI2NiwyNjM5MSwyODAxMCwyOTQzNiwyOTcwMSwyOTgwNywzNDY5MCwzNzA4NiwyMDM1OCwyMzgyMSwyNDQ4MCwzMzgwMiwyMDkxOSwyNTUwNCwzMDA1MywyMDE0Miwy'@; put 'MDQ4NiwyMDg0MSwyMDkzNywyNjc1MywyNzE1MywzMTkxOCwzMTkyMSwzMTk3NSwzMzM5MSwzNTUzOCwzNjYzNSwzNzMyNywyMDQwNiwyMDc5MSwyMTIzNywyMTU3MCwyNDMwMCwyNDk0MiwyNTE1MCwyNjA1MywyNzM1NCwyODY3MCwzMTAxOCwzNDI2OCwzNDg1MSwzODMxNywzOTUyMiwzOTUz'@; put 'MCw0MDU5OSw0MDY1NCwyMTE0NywyNjMxMCwyNzUxMSwyODcwMSwzMTAxOSwzNjcwNiwzODcyMiwyNDk3NiwyNTA4OCwyNTg5MSwyODQ1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyOTAwMSwyOTgzMywzMjI0NCwzMjg3OSwzNDAzMCwzNjY0NiwzNjg5OSwzNzcwNiwyMDkyNSwyMTAxNSwyMTE1NSwyNzkxNiwyODg3MiwzNTAxMCwyNDI2NSwyNTk4NiwyNzU2'@; put 'NiwyODYxMCwzMTgwNiwyOTU1NywyMDE5NiwyMDI3OCwyMjI2NSw2MzgzOSwyMzczOCwyMzk5NCwyNDYwNCwyOTYxOCwzMTUzMywzMjY2NiwzMjcxOCwzMjgzOCwzNjg5NCwzNzQyOCwzODY0NiwzODcyOCwzODkzNiw0MDgwMSwyMDM2MywyODU4MywzMTE1MCwzNzMwMCwzODU4MywyMTIxNCw2'@; put 'Mzg0MCwyNTczNiwyNTc5NiwyNzM0NywyODUxMCwyODY5NiwyOTIwMCwzMDQzOSwzMjc2OSwzNDMxMCwzNDM5NiwzNjMzNSwzNjYxMywzODcwNiwzOTc5MSw0MDQ0Miw0MDU2NSwzMDg2MCwzMTEwMywzMjE2MCwzMzczNywzNzYzNiw0MDU3NSw0MDU5NSwzNTU0MiwyMjc1MSwyNDMyNCwyNjQw'@; put 'NywyODcxMSwyOTkwMywzMTg0MCwzMjg5NCwyMDc2OSwyODcxMiwyOTI4MiwzMDkyMiwzNjAzNCwzNjA1OCwzNjA4NCwzODY0NywyMDEwMiwyMDY5OCwyMzUzNCwyNDI3OCwyNjAwOSwyOTEzNCwzMDI3NCwzMDYzNywzMjg0MiwzNDA0NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjk4OCwzOTcxOSw0MDg0NSwyMjc0NCwyMzEwNSwyMzY1MCwyNzE1NSwyODEy'@; put 'MiwyODQzMSwzMDI2NywzMjA0NywzMjMxMSwzNDA3OCwzNTEyOCwzNzg2MCwzODQ3NSwyMTEyOSwyNjA2NiwyNjYxMSwyNzA2MCwyNzk2OSwyODMxNiwyODY4NywyOTcwNSwyOTc5MiwzMDA0MSwzMDI0NCwzMDgyNywzNTYyOCwzOTAwNiwyMDg0NSwyNTEzNCwzODUyMCwyMDM3NCwyMDUyMywy'@; put 'MzgzMywyODEzOCwzMjE4NCwzNjY1MCwyNDQ1OSwyNDkwMCwyNjY0Nyw2Mzg0MSwzODUzNCwyMTIwMiwzMjkwNywyMDk1NiwyMDk0MCwyNjk3NCwzMTI2MCwzMjE5MCwzMzc3NywzODUxNywyMDQ0MiwyMTAzMywyMTQwMCwyMTUxOSwyMTc3NCwyMzY1MywyNDc0MywyNjQ0NiwyNjc5MiwyODAx'@; put 'MiwyOTMxMywyOTQzMiwyOTcwMiwyOTgyNyw2Mzg0MiwzMDE3OCwzMTg1MiwzMjYzMywzMjY5NiwzMzY3MywzNTAyMywzNTA0MSwzNzMyNCwzNzMyOCwzODYyNiwzOTg4MSwyMTUzMywyODU0MiwyOTEzNiwyOTg0OCwzNDI5OCwzNjUyMiwzODU2Myw0MDAyMyw0MDYwNywyNjUxOSwyODEwNywy'@; put 'OTc0NywzMzI1NiwzODY3OCwzMDc2NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCwzMTQzNSwzMTUyMCwzMTg5MCwyNTcwNSwyOTgwMiwzMDE5NCwzMDkwOCwzMDk1MiwzOTM0MCwzOTc2NCw0MDYzNSwyMzUxOCwyNDE0OSwyODQ0OCwzMzE4MCwzMzcwNywzN2UzLDE5OTc1LDIxMzI1LDIzMDgxLDI0MDE4LDI0Mzk4LDI0OTMwLDI1NDA1LDI2MjE3LDI2MzY0LDI4'@; put 'NDE1LDI4NDU5LDI4NzcxLDMwNjIyLDMzODM2LDM0MDY3LDM0ODc1LDM2NjI3LDM5MjM3LDM5OTk1LDIxNzg4LDI1MjczLDI2NDExLDI3ODE5LDMzNTQ1LDM1MTc4LDM4Nzc4LDIwMTI5LDIyOTE2LDI0NTM2LDI0NTM3LDI2Mzk1LDMyMTc4LDMyNTk2LDMzNDI2LDMzNTc5LDMzNzI1LDM2NjM4'@; put 'LDM3MDE3LDIyNDc1LDIyOTY5LDIzMTg2LDIzNTA0LDI2MTUxLDI2NTIyLDI2NzU3LDI3NTk5LDI5MDI4LDMyNjI5LDM2MDIzLDM2MDY3LDM2OTkzLDM5NzQ5LDMzMDMyLDM1OTc4LDM4NDc2LDM5NDg4LDQwNjEzLDIzMzkxLDI3NjY3LDI5NDY3LDMwNDUwLDMwNDMxLDMzODA0LDIwOTA2LDM1'@; put 'MjE5LDIwODEzLDIwODg1LDIxMTkzLDI2ODI1LDI3Nzk2LDMwNDY4LDMwNDk2LDMyMTkxLDMyMjM2LDM4NzU0LDQwNjI5LDI4MzU3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM0MDY1LDIwOTAxLDIxNTE3LDIxNjI5LDI2MTI2LDI2MjY5LDI2OTE5LDI4MzE5LDMwMzk5LDMwNjA5LDMzNTU5LDMzOTg2LDM0NzE5LDM3MjI1LDM3NTI4LDQwMTgwLDM0OTQ2LDIw'@; put 'Mzk4LDIwODgyLDIxMjE1LDIyOTgyLDI0MTI1LDI0OTE3LDI1NzIwLDI1NzIxLDI2Mjg2LDI2NTc2LDI3MTY5LDI3NTk3LDI3NjExLDI5Mjc5LDI5MjgxLDI5NzYxLDMwNTIwLDMwNjgzLDMyNzkxLDMzNDY4LDMzNTQxLDM1NTg0LDM1NjI0LDM1OTgwLDI2NDA4LDI3NzkyLDI5Mjg3LDMwNDQ2'@; put 'LDMwNTY2LDMxMzAyLDQwMzYxLDI3NTE5LDI3Nzk0LDIyODE4LDI2NDA2LDMzOTQ1LDIxMzU5LDIyNjc1LDIyOTM3LDI0Mjg3LDI1NTUxLDI2MTY0LDI2NDgzLDI4MjE4LDI5NDgzLDMxNDQ3LDMzNDk1LDM3NjcyLDIxMjA5LDI0MDQzLDI1MDA2LDI1MDM1LDI1MDk4LDI1Mjg3LDI1NzcxLDI2'@; put 'MDgwLDI2OTY5LDI3NDk0LDI3NTk1LDI4OTYxLDI5Njg3LDMwMDQ1LDMyMzI2LDMzMzEwLDMzNTM4LDM0MTU0LDM1NDkxLDM2MDMxLDM4Njk1LDQwMjg5LDIyNjk2LDQwNjY0LDIwNDk3LDIxMDA2LDIxNTYzLDIxODM5LDI1OTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI3NzY2LDMyMDEwLDMyMDExLDMyODYyLDM0NDQyLDM4MjcyLDM4NjM5LDIxMjQ3LDI3'@; put 'Nzk3LDI5Mjg5LDIxNjE5LDIzMTk0LDIzNjE0LDIzODgzLDI0Mzk2LDI0NDk0LDI2NDEwLDI2ODA2LDI2OTc5LDI4MjIwLDI4MjI4LDMwNDczLDMxODU5LDMyNjU0LDM0MTgzLDM1NTk4LDM2ODU1LDM4NzUzLDQwNjkyLDIzNzM1LDI0NzU4LDI0ODQ1LDI1MDAzLDI1OTM1LDI2MTA3LDI2MTA4'@; put 'LDI3NjY1LDI3ODg3LDI5NTk5LDI5NjQxLDMyMjI1LDM4MjkyLDIzNDk0LDM0NTg4LDM1NjAwLDIxMDg1LDIxMzM4LDI1MjkzLDI1NjE1LDI1Nzc4LDI2NDIwLDI3MTkyLDI3ODUwLDI5NjMyLDI5ODU0LDMxNjM2LDMxODkzLDMyMjgzLDMzMTYyLDMzMzM0LDM0MTgwLDM2ODQzLDM4NjQ5LDM5'@; put 'MzYxLDIwMjc2LDIxMzIyLDIxNDUzLDIxNDY3LDI1MjkyLDI1NjQ0LDI1ODU2LDI2MDAxLDI3MDc1LDI3ODg2LDI4NTA0LDI5Njc3LDMwMDM2LDMwMjQyLDMwNDM2LDMwNDYwLDMwOTI4LDMwOTcxLDMxMDIwLDMyMDcwLDMzMzI0LDM0Nzg0LDM2ODIwLDM4OTMwLDM5MTUxLDIxMTg3LDI1MzAw'@; put 'LDI1NzY1LDI4MTk2LDI4NDk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLDMwMzMyLDM2Mjk5LDM3Mjk3LDM3NDc0LDM5NjYyLDM5NzQ3LDIwNTE1LDIwNjIxLDIyMzQ2LDIyOTUyLDIzNTkyLDI0MTM1LDI0NDM5LDI1MTUxLDI1OTE4LDI2MDQxLDI2MDQ5LDI2MTIxLDI2NTA3LDI3MDM2LDI4MzU0LDMwOTE3LDMyMDMzLDMyOTM4LDMzMTUyLDMzMzIzLDMzNDU5'@; put 'LDMzOTUzLDM0NDQ0LDM1MzcwLDM1NjA3LDM3MDMwLDM4NDUwLDQwODQ4LDIwNDkzLDIwNDY3LDYzODQzLDIyNTIxLDI0NDcyLDI1MzA4LDI1NDkwLDI2NDc5LDI4MjI3LDI4OTUzLDMwNDAzLDMyOTcyLDMyOTg2LDM1MDYwLDM1MDYxLDM1MDk3LDM2MDY0LDM2NjQ5LDM3MTk3LDM4NTA2LDIw'@; put 'MjcxLDIwMzM2LDI0MDkxLDI2NTc1LDI2NjU4LDMwMzMzLDMwMzM0LDM5NzQ4LDI0MTYxLDI3MTQ2LDI5MDMzLDI5MTQwLDMwMDU4LDYzODQ0LDMyMzIxLDM0MTE1LDM0MjgxLDM5MTMyLDIwMjQwLDMxNTY3LDMyNjI0LDM4MzA5LDIwOTYxLDI0MDcwLDI2ODA1LDI3NzEwLDI3NzI2LDI3ODY3'@; put 'LDI5MzU5LDMxNjg0LDMzNTM5LDI3ODYxLDI5NzU0LDIwNzMxLDIxMTI4LDIyNzIxLDI1ODE2LDI3Mjg3LDI5ODYzLDMwMjk0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMwODg3LDM0MzI3LDM4MzcwLDM4NzEzLDYzODQ1LDIxMzQyLDI0MzIxLDM1NzIyLDM2Nzc2LDM2NzgzLDM3MDAyLDIxMDI5LDMwNjI5LDQwMDA5LDQwNzEyLDE5OTkzLDIwNDgyLDIwODUz'@; put 'LDIzNjQzLDI0MTgzLDI2MTQyLDI2MTcwLDI2NTY0LDI2ODIxLDI4ODUxLDI5OTUzLDMwMTQ5LDMxMTc3LDMxNDUzLDM2NjQ3LDM5MjAwLDM5NDMyLDIwNDQ1LDIyNTYxLDIyNTc3LDIzNTQyLDI2MjIyLDI3NDkzLDI3OTIxLDI4MjgyLDI4NTQxLDI5NjY4LDI5OTk1LDMzNzY5LDM1MDM2LDM1'@; put 'MDkxLDM1Njc2LDM2NjI4LDIwMjM5LDIwNjkzLDIxMjY0LDIxMzQwLDIzNDQzLDI0NDg5LDI2MzgxLDMxMTE5LDMzMTQ1LDMzNTgzLDM0MDY4LDM1MDc5LDM1MjA2LDM2NjY1LDM2NjY3LDM5MzMzLDM5OTU0LDI2NDEyLDIwMDg2LDIwNDcyLDIyODU3LDIzNTUzLDIzNzkxLDIzNzkyLDI1NDQ3'@; put 'LDI2ODM0LDI4OTI1LDI5MDkwLDI5NzM5LDMyMjk5LDM0MDI4LDM0NTYyLDM2ODk4LDM3NTg2LDQwMTc5LDE5OTgxLDIwMTg0LDIwNDYzLDIwNjEzLDIxMDc4LDIxMTAzLDIxNTQyLDIxNjQ4LDIyNDk2LDIyODI3LDIzMTQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIzMzg2LDIzNDEzLDIzNTAwLDI0MjIwLDYzODQ2LDI1MjA2LDI1OTc1LDI2MDIzLDI4MDE0'@; put 'LDI4MzI1LDI5MjM4LDMxNTI2LDMxODA3LDMyNTY2LDMzMTA0LDMzMTA1LDMzMTc4LDMzMzQ0LDMzNDMzLDMzNzA1LDM1MzMxLDM2ZTMsMzYwNzAsMzYwOTEsMzYyMTIsMzYyODIsMzcwOTYsMzczNDAsMzg0MjgsMzg0NjgsMzkzODUsNDAxNjcsMjEyNzEsMjA5OTgsMjE1NDUsMjIxMzIsMjI3'@; put 'MDcsMjI4NjgsMjI4OTQsMjQ1NzUsMjQ5OTYsMjUxOTgsMjYxMjgsMjc3NzQsMjg5NTQsMzA0MDYsMzE4ODEsMzE5NjYsMzIwMjcsMzM0NTIsMzYwMzMsMzg2NDAsNjM4NDcsMjAzMTUsMjQzNDMsMjQ0NDcsMjUyODIsMjM4NDksMjYzNzksMjY4NDIsMzA4NDQsMzIzMjMsNDAzMDAsMTk5ODks'@; put 'MjA2MzMsMjEyNjksMjEyOTAsMjEzMjksMjI5MTUsMjMxMzgsMjQxOTksMjQ3NTQsMjQ5NzAsMjUxNjEsMjUyMDksMjZlMywyNjUwMywyNzA0NywyNzYwNCwyNzYwNiwyNzYwNywyNzYwOCwyNzgzMiw2Mzg0OCwyOTc0OSwzMDIwMiwzMDczOCwzMDg2NSwzMTE4OSwzMTE5MiwzMTg3NSwzMjIw'@; put 'MywzMjczNywzMjkzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwz'@; put 'MzA4NiwzMzIxOCwzMzc3OCwzNDU4NiwzNTA0OCwzNTUxMywzNTY5MiwzNjAyNywzNzE0NSwzODc1MCwzOTEzMSw0MDc2MywyMjE4OCwyMzMzOCwyNDQyOCwyNTk5NiwyNzMxNSwyNzU2NywyNzk5NiwyODY1NywyODY5MywyOTI3NywyOTYxMywzNjAwNywzNjA1MSwzODk3MSwyNDk3NywyNzcw'@; put 'MywzMjg1NiwzOTQyNSwyMDA0NSwyMDEwNywyMDEyMywyMDE4MSwyMDI4MiwyMDI4NCwyMDM1MSwyMDQ0NywyMDczNSwyMTQ5MCwyMTQ5NiwyMTc2NiwyMTk4NywyMjIzNSwyMjc2MywyMjg4MiwyMzA1NywyMzUzMSwyMzU0NiwyMzU1NiwyNDA1MSwyNDEwNywyNDQ3MywyNDYwNSwyNTQ0OCwy'@; put 'NjAxMiwyNjAzMSwyNjYxNCwyNjYxOSwyNjc5NywyNzUxNSwyNzgwMSwyNzg2MywyODE5NSwyODY4MSwyOTUwOSwzMDcyMiwzMTAzOCwzMTA0MCwzMTA3MiwzMTE2OSwzMTcyMSwzMjAyMywzMjExNCwzMjkwMiwzMzI5MywzMzY3OCwzNDAwMSwzNDUwMywzNTAzOSwzNTQwOCwzNTQyMiwzNTYx'@; put 'MywzNjA2MCwzNjE5OCwzNjc4MSwzNzAzNCwzOTE2NCwzOTM5MSw0MDYwNSwyMTA2Niw2Mzg0OSwyNjM4OCw2Mzg1MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMDYzMiwyMTAzNCwyMzY2NSwyNTk1NSwyNzczMywyOTY0MiwyOTk4NywzMDEwOSwzMTYzOSwzMzk0OCwzNzI0MCwzODcwNCwyMDA4NywyNTc0NiwyNzU3OCwyOTAyMiwzNDIxNywxOTk3Nyw2Mzg1'@; put 'MSwyNjQ0MSwyNjg2MiwyODE4MywzMzQzOSwzNDA3MiwzNDkyMywyNTU5MSwyODU0NSwzNzM5NCwzOTA4NywxOTk3OCwyMDY2MywyMDY4NywyMDc2NywyMTgzMCwyMTkzMCwyMjAzOSwyMzM2MCwyMzU3NywyMzc3NiwyNDEyMCwyNDIwMiwyNDIyNCwyNDI1OCwyNDgxOSwyNjcwNSwyNzIzMywy'@; put 'ODI0OCwyOTI0NSwyOTI0OCwyOTM3NiwzMDQ1NiwzMTA3NywzMTY2NSwzMjcyNCwzNTA1OSwzNTMxNiwzNTQ0MywzNTkzNywzNjA2MiwzODY4NCwyMjYyMiwyOTg4NSwzNjA5MywyMTk1OSw2Mzg1MiwzMTMyOSwzMjAzNCwzMzM5NCwyOTI5OCwyOTk4MywyOTk4OSw2Mzg1MywzMTUxMywyMjY2'@; put 'MSwyMjc3OSwyMzk5NiwyNDIwNywyNDI0NiwyNDQ2NCwyNDY2MSwyNTIzNCwyNTQ3MSwyNTkzMywyNjI1NywyNjMyOSwyNjM2MCwyNjY0NiwyNjg2NiwyOTMxMiwyOTc5MCwzMTU5OCwzMjExMCwzMjIxNCwzMjYyNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjk5NywzMzI5OCwzNDIyMywzNTE5OSwzNTQ3NSwzNjg5MywzNzYwNCw0MDY1Myw0MDczNiwyMjgw'@; put 'NSwyMjg5MywyNDEwOSwyNDc5NiwyNjEzMiwyNjIyNywyNjUxMiwyNzcyOCwyODEwMSwyODUxMSwzMDcwNywzMDg4OSwzMzk5MCwzNzMyMywzNzY3NSwyMDE4NSwyMDY4MiwyMDgwOCwyMTg5MiwyMzMwNywyMzQ1OSwyNTE1OSwyNTk4MiwyNjA1OSwyODIxMCwyOTA1MywyOTY5NywyOTc2NCwy'@; put 'OTgzMSwyOTg4NywzMDMxNiwzMTE0NiwzMjIxOCwzMjM0MSwzMjY4MCwzMzE0NiwzMzIwMywzMzMzNywzNDMzMCwzNDc5NiwzNTQ0NSwzNjMyMywzNjk4NCwzNzUyMSwzNzkyNSwzOTI0NSwzOTg1NCwyMTM1MiwyMzYzMywyNjk2NCwyNzg0NCwyNzk0NSwyODIwMywzMzI5MiwzNDIwMywzNTEz'@; put 'MSwzNTM3MywzNTQ5OCwzODYzNCw0MDgwNywyMTA4OSwyNjI5NywyNzU3MCwzMjQwNiwzNDgxNCwzNjEwOSwzODI3NSwzODQ5MywyNTg4NSwyODA0MSwyOTE2Niw2Mzg1NCwyMjQ3OCwyMjk5NSwyMzQ2OCwyNDYxNSwyNDgyNiwyNTEwNCwyNjE0MywyNjIwNywyOTQ4MSwyOTY4OSwzMDQyNywz'@; put 'MDQ2NSwzMTU5NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjg1'@; put 'NCwzMjg4MiwzMzEyNSwzNTQ4OCwzNzI2NiwxOTk5MCwyMTIxOCwyNzUwNiwyNzkyNywzMTIzNywzMTU0NSwzMjA0OCw2Mzg1NSwzNjAxNiwyMTQ4NCwyMjA2MywyMjYwOSwyMzQ3NywyMzU2NywyMzU2OSwyNDAzNCwyNTE1MiwyNTQ3NSwyNTYyMCwyNjE1NywyNjgwMywyNzgzNiwyODA0MCwy'@; put 'ODMzNSwyODcwMywyODgzNiwyOTEzOCwyOTk5MCwzMDA5NSwzMDA5NCwzMDIzMywzMTUwNSwzMTcxMiwzMTc4NywzMjAzMiwzMjA1NywzNDA5MiwzNDE1NywzNDMxMSwzNTM4MCwzNjg3NywzNjk2MSwzNzA0NSwzNzU1OSwzODkwMiwzOTQ3OSwyMDQzOSwyMzY2MCwyNjQ2MywyODA0OSwzMTkw'@; put 'MywzMjM5NiwzNTYwNiwzNjExOCwzNjg5NSwyMzQwMywyNDA2MSwyNTYxMywzMzk4NCwzNjk1NiwzOTEzNywyOTU3NSwyMzQzNSwyNDczMCwyNjQ5NCwyODEyNiwzNTM1OSwzNTQ5NCwzNjg2NSwzODkyNCwyMTA0Nyw2Mzg1NiwyODc1MywzMDg2MiwzNzc4MiwzNDkyOCwzNzMzNSwyMDQ2Miwy'@; put 'MTQ2MywyMjAxMywyMjIzNCwyMjQwMiwyMjc4MSwyMzIzNCwyMzQzMiwyMzcyMywyMzc0NCwyNDEwMSwyNDgzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNTEwMSwyNTE2MywyNTQ4MCwyNTYyOCwyNTkxMCwyNTk3NiwyNzE5MywyNzUzMCwyNzcwMCwyNzkyOSwyODQ2NSwyOTE1OSwyOTQxNywyOTU2MCwyOTcwMywyOTg3NCwzMDI0NiwzMDU2MSwzMTE2OCwz'@; put 'MTMxOSwzMTQ2NiwzMTkyOSwzMjE0MywzMjE3MiwzMjM1MywzMjY3MCwzMzA2NSwzMzU4NSwzMzkzNiwzNDAxMCwzNDI4MiwzNDk2NiwzNTUwNCwzNTcyOCwzNjY2NCwzNjkzMCwzNjk5NSwzNzIyOCwzNzUyNiwzNzU2MSwzODUzOSwzODU2NywzODU2OCwzODYxNCwzODY1NiwzODkyMCwzOTMx'@; put 'OCwzOTYzNSwzOTcwNiwyMTQ2MCwyMjY1NCwyMjgwOSwyMzQwOCwyMzQ4NywyODExMywyODUwNiwyOTA4NywyOTcyOSwyOTg4MSwzMjkwMSwzMzc4OSwyNDAzMywyNDQ1NSwyNDQ5MCwyNDY0MiwyNjA5MiwyNjY0MiwyNjk5MSwyNzIxOSwyNzUyOSwyNzk1NywyODE0NywyOTY2NywzMDQ2Miwz'@; put 'MDYzNiwzMTU2NSwzMjAyMCwzMzA1OSwzMzMwOCwzMzYwMCwzNDAzNiwzNDE0NywzNTQyNiwzNTUyNCwzNzI1NSwzNzY2MiwzODkxOCwzOTM0OCwyNTEwMCwzNDg5OSwzNjg0OCwzNzQ3NywyMzgxNSwyMzg0NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMzkxMywyOTc5MSwzMzE4MSwzNDY2NCwyODYyOSwyNTM0MiwzMjcyMiwzNTEyNiwzNTE4NiwxOTk5OCwy'@; put 'MDA1NiwyMDcxMSwyMTIxMywyMTMxOSwyNTIxNSwyNjExOSwzMjM2MSwzNDgyMSwzODQ5NCwyMDM2NSwyMTI3MywyMjA3MCwyMjk4NywyMzIwNCwyMzYwOCwyMzYzMCwyMzYyOSwyNDA2NiwyNDMzNywyNDY0MywyNjA0NSwyNjE1OSwyNjE3OCwyNjU1OCwyNjYxMiwyOTQ2OCwzMDY5MCwzMTAz'@; put 'NCwzMjcwOSwzMzk0MCwzMzk5NywzNTIyMiwzNTQzMCwzNTQzMywzNTU1MywzNTkyNSwzNTk2MiwyMjUxNiwyMzUwOCwyNDMzNSwyNDY4NywyNTMyNSwyNjg5MywyNzU0MiwyODI1MiwyOTA2MCwzMTY5OCwzNDY0NSwzNTY3MiwzNjYwNiwzOTEzNSwzOTE2NiwyMDI4MCwyMDM1MywyMDQ0OSwy'@; put 'MTYyNywyMzA3MiwyMzQ4MCwyNDg5MiwyNjAzMiwyNjIxNiwyOTE4MCwzMDAwMywzMTA3MCwzMjA1MSwzMzEwMiwzMzI1MSwzMzY4OCwzNDIxOCwzNDI1NCwzNDU2MywzNTMzOCwzNjUyMywzNjc2Myw2Mzg1NywzNjgwNSwyMjgzMywyMzQ2MCwyMzUyNiwyNDcxMywyMzUyOSwyMzU2MywyNDUx'@; put 'NSwyNzc3NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2Mzg1OCwy'@; put 'ODE0NSwyODY4MywyOTk3OCwzMzQ1NSwzNTU3NCwyMDE2MCwyMTMxMyw2Mzg1OSwzODYxNywyNzY2MywyMDEyNiwyMDQyMCwyMDgxOCwyMTg1NCwyMzA3NywyMzc4NCwyNTEwNSwyOTI3MywzMzQ2OSwzMzcwNiwzNDU1OCwzNDkwNSwzNTM1NywzODQ2MywzODU5NywzOTE4Nyw0MDIwMSw0MDI4'@; put 'NSwyMjUzOCwyMzczMSwyMzk5NywyNDEzMiwyNDgwMSwyNDg1MywyNTU2OSwyNzEzOCwyODE5NywzNzEyMiwzNzcxNiwzODk5MCwzOTk1Miw0MDgyMywyMzQzMywyMzczNiwyNTM1MywyNjE5MSwyNjY5NiwzMDUyNCwzODU5MywzODc5NywzODk5NiwzOTgzOSwyNjAxNywzNTU4NSwzNjU1NSwz'@; put 'ODMzMiwyMTgxMywyMzcyMSwyNDAyMiwyNDI0NSwyNjI2MywzMDI4NCwzMzc4MCwzODM0MywyMjczOSwyNTI3NiwyOTM5MCw0MDIzMiwyMDIwOCwyMjgzMCwyNDU5MSwyNjE3MSwyNzUyMywzMTIwNyw0MDIzMCwyMTM5NSwyMTY5NiwyMjQ2NywyMzgzMCwyNDg1OSwyNjMyNiwyODA3OSwzMDg2'@; put 'MSwzMzQwNiwzODU1MiwzODcyNCwyMTM4MCwyNTIxMiwyNTQ5NCwyODA4MiwzMjI2NiwzMzA5OSwzODk4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNzM4NywzMjU4OCw0MDM2Nyw0MDQ3NCwyMDA2MywyMDUzOSwyMDkxOCwyMjgxMiwyNDgyNSwyNTU5MCwyNjkyOCwyOTI0MiwzMjgyMiw2Mzg2MCwzNzMyNiwyNDM2OSw2Mzg2MSw2Mzg2MiwzMjAwNCwzMzUw'@; put 'OSwzMzkwMywzMzk3OSwzNDI3NywzNjQ5Myw2Mzg2MywyMDMzNSw2Mzg2NCw2Mzg2NSwyMjc1NiwyMzM2MywyNDY2NSwyNTU2MiwyNTg4MCwyNTk2NSwyNjI2NCw2Mzg2NiwyNjk1NCwyNzE3MSwyNzkxNSwyODY3MywyOTAzNiwzMDE2MiwzMDIyMSwzMTE1NSwzMTM0NCw2Mzg2NywzMjY1MCw2'@; put 'Mzg2OCwzNTE0MCw2Mzg2OSwzNTczMSwzNzMxMiwzODUyNSw2Mzg3MCwzOTE3OCwyMjI3NiwyNDQ4MSwyNjA0NCwyODQxNywzMDIwOCwzMTE0MiwzNTQ4NiwzOTM0MSwzOTc3MCw0MDgxMiwyMDc0MCwyNTAxNCwyNTIzMywyNzI3NywzMzIyMiwyMDU0NywyMjU3NiwyNDQyMiwyODkzNywzNTMy'@; put 'OCwzNTU3OCwyMzQyMCwzNDMyNiwyMDQ3NCwyMDc5NiwyMjE5NiwyMjg1MiwyNTUxMywyODE1MywyMzk3OCwyNjk4OSwyMDg3MCwyMDEwNCwyMDMxMyw2Mzg3MSw2Mzg3Miw2Mzg3MywyMjkxNCw2Mzg3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2Mzg3NSwyNzQ4NywyNzc0MSw2Mzg3NiwyOTg3NywzMDk5OCw2Mzg3NywzMzI4NywzMzM0OSwzMzU5MywzNjY3'@; put 'MSwzNjcwMSw2Mzg3OCwzOTE5Miw2Mzg3OSw2Mzg4MCw2Mzg4MSwyMDEzNCw2Mzg4MiwyMjQ5NSwyNDQ0MSwyNjEzMSw2Mzg4Myw2Mzg4NCwzMDEyMywzMjM3NywzNTY5NSw2Mzg4NSwzNjg3MCwzOTUxNSwyMjE4MSwyMjU2NywyMzAzMiwyMzA3MSwyMzQ3Niw2Mzg4NiwyNDMxMCw2Mzg4Nyw2'@; put 'Mzg4OCwyNTQyNCwyNTQwMyw2Mzg4OSwyNjk0MSwyNzc4MywyNzgzOSwyODA0NiwyODA1MSwyODE0OSwyODQzNiw2Mzg5MCwyODg5NSwyODk4MiwyOTAxNyw2Mzg5MSwyOTEyMywyOTE0MSw2Mzg5MiwzMDc5OSwzMDgzMSw2Mzg5MywzMTYwNSwzMjIyNyw2Mzg5NCwzMjMwMyw2Mzg5NSwzNDg5'@; put 'MywzNjU3NSw2Mzg5Niw2Mzg5Nyw2Mzg5OCwzNzQ2Nyw2Mzg5OSw0MDE4Miw2MzkwMCw2MzkwMSw2MzkwMiwyNDcwOSwyODAzNyw2MzkwMywyOTEwNSw2MzkwNCw2MzkwNSwzODMyMSwyMTQyMSw2MzkwNiw2MzkwNyw2MzkwOCwyNjU3OSw2MzkwOSwyODgxNCwyODk3NiwyOTc0NCwzMzM5OCwz'@; put 'MzQ5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2MzkxMCwzODMz'@; put 'MSwzOTY1Myw0MDU3MywyNjMwOCw2MzkxMSwyOTEyMSwzMzg2NSw2MzkxMiw2MzkxMywyMjYwMyw2MzkxNCw2MzkxNSwyMzk5MiwyNDQzMyw2MzkxNiwyNjE0NCwyNjI1NCwyNzAwMSwyNzA1NCwyNzcwNCwyNzg5MSwyODIxNCwyODQ4MSwyODYzNCwyODY5OSwyODcxOSwyOTAwOCwyOTE1MSwy'@; put 'OTU1Miw2MzkxNywyOTc4Nyw2MzkxOCwyOTkwOCwzMDQwOCwzMTMxMCwzMjQwMyw2MzkxOSw2MzkyMCwzMzUyMSwzNTQyNCwzNjgxNCw2MzkyMSwzNzcwNCw2MzkyMiwzODY4MSw2MzkyMyw2MzkyNCwyMDAzNCwyMDUyMiw2MzkyNSwyMWUzLDIxNDczLDI2MzU1LDI3NzU3LDI4NjE4LDI5NDUw'@; put 'LDMwNTkxLDMxMzMwLDMzNDU0LDM0MjY5LDM0MzA2LDYzOTI2LDM1MDI4LDM1NDI3LDM1NzA5LDM1OTQ3LDYzOTI3LDM3NTU1LDYzOTI4LDM4Njc1LDM4OTI4LDIwMTE2LDIwMjM3LDIwNDI1LDIwNjU4LDIxMzIwLDIxNTY2LDIxNTU1LDIxOTc4LDIyNjI2LDIyNzE0LDIyODg3LDIzMDY3LDIz'@; put 'NTI0LDI0NzM1LDYzOTI5LDI1MDM0LDI1OTQyLDI2MTExLDI2MjEyLDI2NzkxLDI3NzM4LDI4NTk1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI4ODc5LDI5MTAwLDI5NTIyLDMxNjEzLDM0NTY4LDM1NDkyLDM5OTg2LDQwNzExLDIzNjI3LDI3Nzc5LDI5NTA4LDI5NTc3LDM3NDM0LDI4MzMxLDI5Nzk3LDMwMjM5LDMxMzM3LDMyMjc3LDM0MzE0LDIwODAwLDIy'@; put 'NzI1LDI1NzkzLDI5OTM0LDI5OTczLDMwMzIwLDMyNzA1LDM3MDEzLDM4NjA1LDM5MjUyLDI4MTk4LDI5OTI2LDMxNDAxLDMxNDAyLDMzMjUzLDM0NTIxLDM0NjgwLDM1MzU1LDIzMTEzLDIzNDM2LDIzNDUxLDI2Nzg1LDI2ODgwLDI4MDAzLDI5NjA5LDI5NzE1LDI5NzQwLDMwODcxLDMyMjMz'@; put 'LDMyNzQ3LDMzMDQ4LDMzMTA5LDMzNjk0LDM1OTE2LDM4NDQ2LDM4OTI5LDI2MzUyLDI0NDQ4LDI2MTA2LDI2NTA1LDI3NzU0LDI5NTc5LDIwNTI1LDIzMDQzLDI3NDk4LDMwNzAyLDIyODA2LDIzOTE2LDI0MDEzLDI5NDc3LDMwMDMxLDYzOTMwLDYzOTMxLDIwNzA5LDIwOTg1LDIyNTc1LDIy'@; put 'ODI5LDIyOTM0LDIzMDAyLDIzNTI1LDYzOTMyLDYzOTMzLDIzOTcwLDI1MzAzLDI1NjIyLDI1NzQ3LDI1ODU0LDYzOTM0LDI2MzMyLDYzOTM1LDI3MjA4LDYzOTM2LDI5MTgzLDI5Nzk2LDYzOTM3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMxMzY4LDMxNDA3LDMyMzI3LDMyMzUwLDMyNzY4LDMzMTM2LDYzOTM4LDM0Nzk5LDM1MjAxLDM1NjE2LDM2OTUzLDYz'@; put 'OTM5LDM2OTkyLDM5MjUwLDI0OTU4LDI3NDQyLDI4MDIwLDMyMjg3LDM1MTA5LDM2Nzg1LDIwNDMzLDIwNjUzLDIwODg3LDIxMTkxLDIyNDcxLDIyNjY1LDIzNDgxLDI0MjQ4LDI0ODk4LDI3MDI5LDI4MDQ0LDI4MjYzLDI4MzQyLDI5MDc2LDI5Nzk0LDI5OTkyLDI5OTk2LDMyODgzLDMzNTky'@; put 'LDMzOTkzLDM2MzYyLDM3NzgwLDM3ODU0LDYzOTQwLDIwMTEwLDIwMzA1LDIwNTk4LDIwNzc4LDIxNDQ4LDIxNDUxLDIxNDkxLDIzNDMxLDIzNTA3LDIzNTg4LDI0ODU4LDI0OTYyLDI2MTAwLDI5Mjc1LDI5NTkxLDI5NzYwLDMwNDAyLDMxMDU2LDMxMTIxLDMxMTYxLDMyMDA2LDMyNzAxLDMz'@; put 'NDE5LDM0MjYxLDM0Mzk4LDM2ODAyLDM2OTM1LDM3MTA5LDM3MzU0LDM4NTMzLDM4NjMyLDM4NjMzLDIxMjA2LDI0NDIzLDI2MDkzLDI2MTYxLDI2NjcxLDI5MDIwLDMxMjg2LDM3MDU3LDM4OTIyLDIwMTEzLDYzOTQxLDI3MjE4LDI3NTUwLDI4NTYwLDI5MDY1LDMyNzkyLDMzNDY0LDM0MTMx'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2OTM5LDM4NTQ5LDM4'@; put 'NjQyLDM4OTA3LDM0MDc0LDM5NzI5LDIwMTEyLDI5MDY2LDM4NTk2LDIwODAzLDIxNDA3LDIxNzI5LDIyMjkxLDIyMjkwLDIyNDM1LDIzMTk1LDIzMjM2LDIzNDkxLDI0NjE2LDI0ODk1LDI1NTg4LDI3NzgxLDI3OTYxLDI4Mjc0LDI4MzA0LDI5MjMyLDI5NTAzLDI5NzgzLDMzNDg5LDM0OTQ1'@; put 'LDM2Njc3LDM2OTYwLDYzOTQyLDM4NDk4LDM5ZTMsNDAyMTksMjYzNzYsMzYyMzQsMzc0NzAsMjAzMDEsMjA1NTMsMjA3MDIsMjEzNjEsMjIyODUsMjI5OTYsMjMwNDEsMjM1NjEsMjQ5NDQsMjYyNTYsMjgyMDUsMjkyMzQsMjk3NzEsMzIyMzksMzI5NjMsMzM4MDYsMzM4OTQsMzQxMTEsMzQ2'@; put 'NTUsMzQ5MDcsMzUwOTYsMzU1ODYsMzY5NDksMzg4NTksMzk3NTksMjAwODMsMjAzNjksMjA3NTQsMjA4NDIsNjM5NDMsMjE4MDcsMjE5MjksMjM0MTgsMjM0NjEsMjQxODgsMjQxODksMjQyNTQsMjQ3MzYsMjQ3OTksMjQ4NDAsMjQ4NDEsMjU1NDAsMjU5MTIsMjYzNzcsNjM5NDQsMjY1ODAs'@; put 'MjY1ODYsNjM5NDUsMjY5NzcsMjY5NzgsMjc4MzMsMjc5NDMsNjM5NDYsMjgyMTYsNjM5NDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjg2NDEsMjk0OTQsMjk0OTUsNjM5NDgsMjk3ODgsMzAwMDEsNjM5NDksMzAyOTAsNjM5NTAsNjM5NTEsMzIxNzMsMzMyNzgsMzM4NDgsMzUwMjksMzU0ODAsMzU1NDcsMzU1NjUsMzY0MDAsMzY0MTgsMzY5MzgsMzY5MjYs'@; put 'MzY5ODYsMzcxOTMsMzczMjEsMzc3NDIsNjM5NTIsNjM5NTMsMjI1MzcsNjM5NTQsMjc2MDMsMzI5MDUsMzI5NDYsNjM5NTUsNjM5NTYsMjA4MDEsMjI4OTEsMjM2MDksNjM5NTcsNjM5NTgsMjg1MTYsMjk2MDcsMzI5OTYsMzYxMDMsNjM5NTksMzczOTksMzgyODcsNjM5NjAsNjM5NjEsNjM5'@; put 'NjIsNjM5NjMsMzI4OTUsMjUxMDIsMjg3MDAsMzIxMDQsMzQ3MDEsNjM5NjQsMjI0MzIsMjQ2ODEsMjQ5MDMsMjc1NzUsMzU1MTgsMzc1MDQsMzg1NzcsMjAwNTcsMjE1MzUsMjgxMzksMzQwOTMsMzg1MTIsMzg4OTksMzkxNTAsMjU1NTgsMjc4NzUsMzcwMDksMjA5NTcsMjUwMzMsMzMyMTAs'@; put 'NDA0NDEsMjAzODEsMjA1MDYsMjA3MzYsMjM0NTIsMjQ4NDcsMjUwODcsMjU4MzYsMjY4ODUsMjc1ODksMzAwOTcsMzA2OTEsMzI2ODEsMzMzODAsMzQxOTEsMzQ4MTEsMzQ5MTUsMzU1MTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzU2OTYsMzcyOTEsMjAxMDgsMjAxOTcsMjAyMzQsNjM5NjUsNjM5NjYsMjI4MzksMjMwMTYsNjM5NjcsMjQwNTAsMjQzNDcs'@; put 'MjQ0MTEsMjQ2MDksNjM5NjgsNjM5NjksNjM5NzAsNjM5NzEsMjkyNDYsMjk2NjksNjM5NzIsMzAwNjQsMzAxNTcsNjM5NzMsMzEyMjcsNjM5NzQsMzI3ODAsMzI4MTksMzI5MDAsMzM1MDUsMzM2MTcsNjM5NzUsNjM5NzYsMzYwMjksMzYwMTksMzY5OTksNjM5NzcsNjM5NzgsMzkxNTYsMzkx'@; put 'ODAsNjM5NzksNjM5ODAsMjg3MjcsMzA0MTAsMzI3MTQsMzI3MTYsMzI3NjQsMzU2MTAsMjAxNTQsMjAxNjEsMjA5OTUsMjEzNjAsNjM5ODEsMjE2OTMsMjIyNDAsMjMwMzUsMjM0OTMsMjQzNDEsMjQ1MjUsMjgyNzAsNjM5ODIsNjM5ODMsMzIxMDYsMzM1ODksNjM5ODQsMzQ0NTEsMzU0Njks'@; put 'NjM5ODUsMzg3NjUsMzg3NzUsNjM5ODYsNjM5ODcsMTk5NjgsMjAzMTQsMjAzNTAsMjI3NzcsMjYwODUsMjgzMjIsMzY5MjAsMzc4MDgsMzkzNTMsMjAyMTksMjI3NjQsMjI5MjIsMjMwMDEsMjQ2NDEsNjM5ODgsNjM5ODksMzEyNTIsNjM5OTAsMzM2MTUsMzYwMzUsMjA4MzcsMjEzMTYsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjM5OTEsNjM5OTIsNjM5OTMs'@; put 'MjAxNzMsMjEwOTcsMjMzODEsMzM0NzEsMjAxODAsMjEwNTAsMjE2NzIsMjI5ODUsMjMwMzksMjMzNzYsMjMzODMsMjMzODgsMjQ2NzUsMjQ5MDQsMjgzNjMsMjg4MjUsMjkwMzgsMjk1NzQsMjk5NDMsMzAxMzMsMzA5MTMsMzIwNDMsMzI3NzMsMzMyNTgsMzM1NzYsMzQwNzEsMzQyNDksMzU1'@; put 'NjYsMzYwMzksMzg2MDQsMjAzMTYsMjEyNDIsMjIyMDQsMjYwMjcsMjYxNTIsMjg3OTYsMjg4NTYsMjkyMzcsMzIxODksMzM0MjEsMzcxOTYsMzg1OTIsNDAzMDYsMjM0MDksMjY4NTUsMjc1NDQsMjg1MzgsMzA0MzAsMjM2OTcsMjYyODMsMjg1MDcsMzE2NjgsMzE3ODYsMzQ4NzAsMzg2MjAs'@; put 'MTk5NzYsMjAxODMsMjEyODAsMjI1ODAsMjI3MTUsMjI3NjcsMjI4OTIsMjM1NTksMjQxMTUsMjQxOTYsMjQzNzMsMjU0ODQsMjYyOTAsMjY0NTQsMjcxNjcsMjcyOTksMjc0MDQsMjg0NzksMjkyNTQsNjM5OTQsMjk1MjAsMjk4MzUsMzE0NTYsMzE5MTEsMzMxNDQsMzMyNDcsMzMyNTUsMzM2'@; put 'NzQsMzM5MDAsMzQwODMsMzQxOTYsMzQyNTUsMzUwMzcsMzYxMTUsMzcyOTIsMzgyNjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzg1NTYsMjA4NzcsMjE3MDUsMjIzMTIsMjM0NzIsMjUxNjUsMjY0NDgsMjY2ODUsMjY3NzEsMjgyMjEsMjgzNzEsMjg3OTcsMzIyODksMzUwMDksMzYwMDEsMzY2MTcsNDA3NzksNDA3ODIsMjkyMjksMzE2MzEsMzU1MzMsMzc2'@; put 'NTgsMjAyOTUsMjAzMDIsMjA3ODYsMjE2MzIsMjI5OTIsMjQyMTMsMjUyNjksMjY0ODUsMjY5OTAsMjcxNTksMjc4MjIsMjgxODYsMjk0MDEsMjk0ODIsMzAxNDEsMzE2NzIsMzIwNTMsMzM1MTEsMzM3ODUsMzM4NzksMzQyOTUsMzU0MTksMzYwMTUsMzY0ODcsMzY4ODksMzcwNDgsMzg2MDYs'@; put 'NDA3OTksMjEyMTksMjE1MTQsMjMyNjUsMjM0OTAsMjU2ODgsMjU5NzMsMjg0MDQsMjkzODAsNjM5OTUsMzAzNDAsMzEzMDksMzE1MTUsMzE4MjEsMzIzMTgsMzI3MzUsMzM2NTksMzU2MjcsMzYwNDIsMzYxOTYsMzYzMjEsMzY0NDcsMzY4NDIsMzY4NTcsMzY5NjksMzc4NDEsMjAyOTEsMjAz'@; put 'NDYsMjA2NTksMjA4NDAsMjA4NTYsMjEwNjksMjEwOTgsMjI2MjUsMjI2NTIsMjI4ODAsMjM1NjAsMjM2MzcsMjQyODMsMjQ3MzEsMjUxMzYsMjY2NDMsMjc1ODMsMjc2NTYsMjg1OTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjkwMDYsMjk3MjgsM2U0LDMwMDA4LDMwMDMzLDMwMzIyLDMxNTY0LDMxNjI3LDMxNjYxLDMxNjg2LDMyMzk5LDM1NDM4LDM2Njcw'@; put 'LDM2NjgxLDM3NDM5LDM3NTIzLDM3NjY2LDM3OTMxLDM4NjUxLDM5MDAyLDM5MDE5LDM5MTk4LDIwOTk5LDI1MTMwLDI1MjQwLDI3OTkzLDMwMzA4LDMxNDM0LDMxNjgwLDMyMTE4LDIxMzQ0LDIzNzQyLDI0MjE1LDI4NDcyLDI4ODU3LDMxODk2LDM4NjczLDM5ODIyLDQwNjcwLDI1NTA5LDI1'@; put 'NzIyLDM0Njc4LDE5OTY5LDIwMTE3LDIwMTQxLDIwNTcyLDIwNTk3LDIxNTc2LDIyOTc5LDIzNDUwLDI0MTI4LDI0MjM3LDI0MzExLDI0NDQ5LDI0NzczLDI1NDAyLDI1OTE5LDI1OTcyLDI2MDYwLDI2MjMwLDI2MjMyLDI2NjIyLDI2OTg0LDI3MjczLDI3NDkxLDI3NzEyLDI4MDk2LDI4MTM2'@; put 'LDI4MTkxLDI4MjU0LDI4NzAyLDI4ODMzLDI5NTgyLDI5NjkzLDMwMDEwLDMwNTU1LDMwODU1LDMxMTE4LDMxMjQzLDMxMzU3LDMxOTM0LDMyMTQyLDMzMzUxLDM1MzMwLDM1NTYyLDM1OTk4LDM3MTY1LDM3MTk0LDM3MzM2LDM3NDc4LDM3NTgwLDM3NjY0LDM4NjYyLDM4NzQyLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM4NzQ4LDM4OTE0LDQwNzE4LDIxMDQ2'@; put 'LDIxMTM3LDIxODg0LDIyNTY0LDI0MDkzLDI0MzUxLDI0NzE2LDI1NTUyLDI2Nzk5LDI4NjM5LDMxMDg1LDMxNTMyLDMzMjI5LDM0MjM0LDM1MDY5LDM1NTc2LDM2NDIwLDM3MjYxLDM4NTAwLDM4NTU1LDM4NzE3LDM4OTg4LDQwNzc4LDIwNDMwLDIwODA2LDIwOTM5LDIxMTYxLDIyMDY2LDI0'@; put 'MzQwLDI0NDI3LDI1NTE0LDI1ODA1LDI2MDg5LDI2MTc3LDI2MzYyLDI2MzYxLDI2Mzk3LDI2NzgxLDI2ODM5LDI3MTMzLDI4NDM3LDI4NTI2LDI5MDMxLDI5MTU3LDI5MjI2LDI5ODY2LDMwNTIyLDMxMDYyLDMxMDY2LDMxMTk5LDMxMjY0LDMxMzgxLDMxODk1LDMxOTY3LDMyMDY4LDMyMzY4'@; put 'LDMyOTAzLDM0Mjk5LDM0NDY4LDM1NDEyLDM1NTE5LDM2MjQ5LDM2NDgxLDM2ODk2LDM2OTczLDM3MzQ3LDM4NDU5LDM4NjEzLDQwMTY1LDI2MDYzLDMxNzUxLDM2Mjc1LDM3ODI3LDIzMzg0LDIzNTYyLDIxMzMwLDI1MzA1LDI5NDY5LDIwNTE5LDIzNDQ3LDI0NDc4LDI0NzUyLDI0OTM5LDI2'@; put 'ODM3LDI4MTIxLDI5NzQyLDMxMjc4LDMyMDY2LDMyMTU2LDMyMzA1LDMzMTMxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2Mzk0LDM2NDA1LDM3NzU4LDM3OTEyLDIwMzA0LDIyMzUyLDI0MDM4LDI0MjMxLDI1Mzg3LDMyNjE4LDIwMDI3LDIwMzAzLDIwMzY3LDIwNTcwLDIzMDA1LDMyOTY0LDIxNjEwLDIxNjA4LDIyMDE0LDIyODYzLDIzNDQ5LDI0MDMwLDI0'@; put 'MjgyLDI2MjA1LDI2NDE3LDI2NjA5LDI2NjY2LDI3ODgwLDI3OTU0LDI4MjM0LDI4NTU3LDI4ODU1LDI5NjY0LDMwMDg3LDMxODIwLDMyMDAyLDMyMDQ0LDMyMTYyLDMzMzExLDM0NTIzLDM1Mzg3LDM1NDYxLDM2MjA4LDM2NDkwLDM2NjU5LDM2OTEzLDM3MTk4LDM3MjAyLDM3OTU2LDM5Mzc2'@; put 'LDMxNDgxLDMxOTA5LDIwNDI2LDIwNzM3LDIwOTM0LDIyNDcyLDIzNTM1LDIzODAzLDI2MjAxLDI3MTk3LDI3OTk0LDI4MzEwLDI4NjUyLDI4OTQwLDMwMDYzLDMxNDU5LDM0ODUwLDM2ODk3LDM2OTgxLDM4NjAzLDM5NDIzLDMzNTM3LDIwMDEzLDIwMjEwLDM0ODg2LDM3MzI1LDIxMzczLDI3'@; put 'MzU1LDI2OTg3LDI3NzEzLDMzOTE0LDIyNjg2LDI0OTc0LDI2MzY2LDI1MzI3LDI4ODkzLDI5OTY5LDMwMTUxLDMyMzM4LDMzOTc2LDM1NjU3LDM2MTA0LDIwMDQzLDIxNDgyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIxNjc1LDIyMzIwLDIyMzM2LDI0NTM1LDI1MzQ1LDI1MzUxLDI1NzExLDI1OTAzLDI2MDg4LDI2MjM0LDI2NTI1LDI2NTQ3LDI3NDkwLDI3'@; put 'NzQ0LDI3ODAyLDI4NDYwLDMwNjkzLDMwNzU3LDMxMDQ5LDMxMDYzLDMyMDI1LDMyOTMwLDMzMDI2LDMzMjY3LDMzNDM3LDMzNDYzLDM0NTg0LDM1NDY4LDYzOTk2LDM2MTAwLDM2Mjg2LDM2OTc4LDMwNDUyLDMxMjU3LDMxMjg3LDMyMzQwLDMyODg3LDIxNzY3LDIxOTcyLDIyNjQ1LDI1Mzkx'@; put 'LDI1NjM0LDI2MTg1LDI2MTg3LDI2NzMzLDI3MDM1LDI3NTI0LDI3OTQxLDI4MzM3LDI5NjQ1LDI5ODAwLDI5ODU3LDMwMDQzLDMwMTM3LDMwNDMzLDMwNDk0LDMwNjAzLDMxMjA2LDMyMjY1LDMyMjg1LDMzMjc1LDM0MDk1LDM0OTY3LDM1Mzg2LDM2MDQ5LDM2NTg3LDM2Nzg0LDM2OTE0LDM3'@; put 'ODA1LDM4NDk5LDM4NTE1LDM4NjYzLDIwMzU2LDIxNDg5LDIzMDE4LDIzMjQxLDI0MDg5LDI2NzAyLDI5ODk0LDMwMTQyLDMxMjA5LDMxMzc4LDMzMTg3LDM0NTQxLDM2MDc0LDM2MzAwLDM2ODQ1LDI2MDE1LDI2Mzg5LDYzOTk3LDIyNTE5LDI4NTAzLDMyMjIxLDM2NjU1LG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM3ODc4LDM4NTk4LDI0NTAxLDI1MDc0LDI4'@; put 'NTQ4LDE5OTg4LDIwMzc2LDIwNTExLDIxNDQ5LDIxOTgzLDIzOTE5LDI0MDQ2LDI3NDI1LDI3NDkyLDMwOTIzLDMxNjQyLDYzOTk4LDM2NDI1LDM2NTU0LDM2OTc0LDI1NDE3LDI1NjYyLDMwNTI4LDMxMzY0LDM3Njc5LDM4MDE1LDQwODEwLDI1Nzc2LDI4NTkxLDI5MTU4LDI5ODY0LDI5OTE0'@; put 'LDMxNDI4LDMxNzYyLDMyMzg2LDMxOTIyLDMyNDA4LDM1NzM4LDM2MTA2LDM4MDEzLDM5MTg0LDM5MjQ0LDIxMDQ5LDIzNTE5LDI1ODMwLDI2NDEzLDMyMDQ2LDIwNzE3LDIxNDQzLDIyNjQ5LDI0OTIwLDI0OTIxLDI1MDgyLDI2MDI4LDMxNDQ5LDM1NzMwLDM1NzM0LDIwNDg5LDIwNTEzLDIx'@; put 'MTA5LDIxODA5LDIzMTAwLDI0Mjg4LDI0NDMyLDI0ODg0LDI1OTUwLDI2MTI0LDI2MTY2LDI2Mjc0LDI3MDg1LDI4MzU2LDI4NDY2LDI5NDYyLDMwMjQxLDMxMzc5LDMzMDgxLDMzMzY5LDMzNzUwLDMzOTgwLDIwNjYxLDIyNTEyLDIzNDg4LDIzNTI4LDI0NDI1LDI1NTA1LDMwNzU4LDMyMTgx'@; put 'LDMzNzU2LDM0MDgxLDM3MzE5LDM3MzY1LDIwODc0LDI2NjEzLDMxNTc0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2MDEyLDIwOTMyLDIyOTcxLDI0NzY1LDM0Mzg5LDIwNTA4LDYzOTk5LDIxMDc2LDIzNjEwLDI0OTU3LDI1MTE0LDI1Mjk5LDI1ODQyLDI2MDIxLDI4MzY0LDMwMjQwLDMzMDM0LDM2NDQ4LDM4NDk1LDM4NTg3LDIwMTkxLDIxMzE1LDIxOTEy'@; put 'LDIyODI1LDI0MDI5LDI1Nzk3LDI3ODQ5LDI4MTU0LDI5NTg4LDMxMzU5LDMzMzA3LDM0MjE0LDM2MDY4LDM2MzY4LDM2OTgzLDM3MzUxLDM4MzY5LDM4NDMzLDM4ODU0LDIwOTg0LDIxNzQ2LDIxODk0LDI0NTA1LDI1NzY0LDI4NTUyLDMyMTgwLDM2NjM5LDM2Njg1LDM3OTQxLDIwNjgxLDIz'@; put 'NTc0LDI3ODM4LDI4MTU1LDI5OTc5LDMwNjUxLDMxODA1LDMxODQ0LDM1NDQ5LDM1NTIyLDIyNTU4LDIyOTc0LDI0MDg2LDI1NDYzLDI5MjY2LDMwMDkwLDMwNTcxLDM1NTQ4LDM2MDI4LDM2NjI2LDI0MzA3LDI2MjI4LDI4MTUyLDMyODkzLDMzNzI5LDM1NTMxLDM4NzM3LDM5ODk0LDY0ZTMs'@; put 'MjEwNTksMjYzNjcsMjgwNTMsMjgzOTksMzIyMjQsMzU1NTgsMzY5MTAsMzY5NTgsMzk2MzYsMjEwMjEsMjExMTksMjE3MzYsMjQ5ODAsMjUyMjAsMjUzMDcsMjY3ODYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjY4OTgsMjY5NzAsMjcxODksMjg4MTgsMjg5NjYsMzA4MTMsMzA5NzcsMzA5OTAsMzExODYsMzEyNDUsMzI5MTgsMzM0MDAsMzM0OTMsMzM2MDks'@; put 'MzQxMjEsMzU5NzAsMzYyMjksMzcyMTgsMzcyNTksMzcyOTQsMjA0MTksMjIyMjUsMjkxNjUsMzA2NzksMzQ1NjAsMzUzMjAsMjM1NDQsMjQ1MzQsMjY0NDksMzcwMzIsMjE0NzQsMjI2MTgsMjM1NDEsMjQ3NDAsMjQ5NjEsMjU2OTYsMzIzMTcsMzI4ODAsMzQwODUsMzc1MDcsMjU3NzQsMjA2'@; put 'NTIsMjM4MjgsMjYzNjgsMjI2ODQsMjUyNzcsMjU1MTIsMjY4OTQsMjdlMywyNzE2NiwyODI2NywzMDM5NCwzMTE3OSwzMzQ2NywzMzgzMywzNTUzNSwzNjI2NCwzNjg2MSwzNzEzOCwzNzE5NSwzNzI3NiwzNzY0OCwzNzY1NiwzNzc4NiwzODYxOSwzOTQ3OCwzOTk0OSwxOTk4NSwzMDA0NCwz'@; put 'MTA2OSwzMTQ4MiwzMTU2OSwzMTY4OSwzMjMwMiwzMzk4OCwzNjQ0MSwzNjQ2OCwzNjYwMCwzNjg4MCwyNjE0OSwyNjk0MywyOTc2MywyMDk4NiwyNjQxNCw0MDY2OCwyMDgwNSwyNDU0NCwyNzc5OCwzNDgwMiwzNDkwOSwzNDkzNSwyNDc1NiwzMzIwNSwzMzc5NSxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjEwMSwyMTQ2MiwyMTU2MSwyMjA2OCwyMzA5NCwy'@; put 'MzYwMSwyODgxMCwzMjczNiwzMjg1OCwzMzAzMCwzMzI2MSwzNjI1OSwzNzI1NywzOTUxOSw0MDQzNCwyMDU5NiwyMDE2NCwyMTQwOCwyNDgyNywyODIwNCwyMzY1MiwyMDM2MCwyMDUxNiwyMTk4OCwyMzc2OSwyNDE1OSwyNDY3NywyNjc3MiwyNzgzNSwyODEwMCwyOTExOCwzMDE2NCwzMDE5'@; put 'NiwzMDMwNSwzMTI1OCwzMTMwNSwzMjE5OSwzMjI1MSwzMjYyMiwzMzI2OCwzNDQ3MywzNjYzNiwzODYwMSwzOTM0Nyw0MDc4NiwyMTA2MywyMTE4OSwzOTE0OSwzNTI0MiwxOTk3MSwyNjU3OCwyODQyMiwyMDQwNSwyMzUyMiwyNjUxNywyNzc4NCwyODAyNCwyOTcyMywzMDc1OSwzNzM0MSwz'@; put 'Nzc1NiwzNDc1NiwzMTIwNCwzMTI4MSwyNDU1NSwyMDE4MiwyMTY2OCwyMTgyMiwyMjcwMiwyMjk0OSwyNDgxNiwyNTE3MSwyNTMwMiwyNjQyMiwyNjk2NSwzMzMzMywzODQ2NCwzOTM0NSwzOTM4OSwyMDUyNCwyMTMzMSwyMTgyOCwyMjM5Niw2NDAwMSwyNTE3Niw2NDAwMiwyNTgyNiwyNjIx'@; put 'OSwyNjU4OSwyODYwOSwyODY1NSwyOTczMCwyOTc1MiwzNTM1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNzk0NCwyMTU4NSwyMjAyMiwyMjM3NCwyNDM5MiwyNDk4NiwyNzQ3MCwyODc2MCwyODg0NSwzMjE4NywzNTQ3NywyMjg5MCwzMzA2NywyNTUwNiwzMDQ3MiwzMjgyOSwzNjAxMCwyMjYxMiwyNTY0NSwyNzA2NywyMzQ0NSwyNDA4MSwyODI3MSw2NDAw'@; put 'MywzNDE1MywyMDgxMiwyMTQ4OCwyMjgyNiwyNDYwOCwyNDkwNywyNzUyNiwyNzc2MCwyNzg4OCwzMTUxOCwzMjk3NCwzMzQ5MiwzNjI5NCwzNzA0MCwzOTA4OSw2NDAwNCwyNTc5OSwyODU4MCwyNTc0NSwyNTg2MCwyMDgxNCwyMTUyMCwyMjMwMywzNTM0MiwyNDkyNywyNjc0Miw2NDAwNSwz'@; put 'MDE3MSwzMTU3MCwzMjExMywzNjg5MCwyMjUzNCwyNzA4NCwzMzE1MSwzNTExNCwzNjg2NCwzODk2OSwyMDYwMCwyMjg3MSwyMjk1NiwyNTIzNywzNjg3OSwzOTcyMiwyNDkyNSwyOTMwNSwzODM1OCwyMjM2OSwyMzExMCwyNDA1MiwyNTIyNiwyNTc3MywyNTg1MCwyNjQ4NywyNzg3NCwyNzk2'@; put 'NiwyOTIyOCwyOTc1MCwzMDc3MiwzMjYzMSwzMzQ1MywzNjMxNSwzODkzNSwyMTAyOCwyMjMzOCwyNjQ5NSwyOTI1NiwyOTkyMywzNjAwOSwzNjc3NCwzNzM5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzODQ0MiwyMDg0MywyMTQ4NSwyNTQyMCwyMDMyOSwyMTc2NCwyNDcyNiwyNTk0MywyNzgwMywyODAzMSwyOTI2MCwyOTQzNywzMTI1NSwzNTIwNywzNTk5'@; put 'NywyNDQyOSwyODU1OCwyODkyMSwzMzE5MiwyNDg0NiwyMDQxNSwyMDU1OSwyNTE1MywyOTI1NSwzMTY4NywzMjIzMiwzMjc0NSwzNjk0MSwzODgyOSwzOTQ0OSwzNjAyMiwyMjM3OCwyNDE3OSwyNjU0NCwzMzgwNSwzNTQxMywyMTUzNiwyMzMxOCwyNDE2MywyNDI5MCwyNDMzMCwyNTk4Nywz'@; put 'Mjk1NCwzNDEwOSwzODI4MSwzODQ5MSwyMDI5NiwyMTI1MywyMTI2MSwyMTI2MywyMTYzOCwyMTc1NCwyMjI3NSwyNDA2NywyNDU5OCwyNTI0MywyNTI2NSwyNTQyOSw2NDAwNiwyNzg3MywyODAwNiwzMDEyOSwzMDc3MCwzMjk5MCwzMzA3MSwzMzUwMiwzMzg4OSwzMzk3MCwzNDk1NywzNTA5'@; put 'MCwzNjg3NSwzNzYxMCwzOTE2NSwzOTgyNSwyNDEzMywyNjI5MiwyNjMzMywyODY4OSwyOTE5MCw2NDAwNywyMDQ2OSwyMTExNywyNDQyNiwyNDkxNSwyNjQ1MSwyNzE2MSwyODQxOCwyOTkyMiwzMTA4MCwzNDkyMCwzNTk2MSwzOTExMSwzOTEwOCwzOTQ5MSxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMTY5NywzMTI2MywyNjk2MywzNTU3NSwzNTkxNCwzOTA4'@; put 'MCwzOTM0MiwyNDQ0NCwyNTI1OSwzMDEzMCwzMDM4MiwzNDk4NywzNjk5MSwzODQ2NiwyMTMwNSwyNDM4MCwyNDUxNywyNzg1MiwyOTY0NCwzMDA1MCwzMDA5MSwzMTU1OCwzMzUzNCwzOTMyNSwyMDA0NywzNjkyNCwxOTk3OSwyMDMwOSwyMTQxNCwyMjc5OSwyNDI2NCwyNjE2MCwyNzgyNywy'@; put 'OTc4MSwzMzY1NSwzNDY2MiwzNjAzMiwzNjk0NCwzODY4NiwzOTk1NywyMjczNywyMzQxNiwzNDM4NCwzNTYwNCw0MDM3MiwyMzUwNiwyNDY4MCwyNDcxNywyNjA5NywyNzczNSwyODQ1MCwyODU3OSwyODY5OCwzMjU5NywzMjc1MiwzODI4OSwzODI5MCwzODQ4MCwzODg2NywyMTEwNiwzNjY3'@; put 'NiwyMDk4OSwyMTU0NywyMTY4OCwyMTg1OSwyMTg5OCwyNzMyMywyODA4NSwzMjIxNiwzMzM4MiwzNzUzMiwzODUxOSw0MDU2OSwyMTUxMiwyMTcwNCwzMDQxOCwzNDUzMiwzODMwOCwzODM1NiwzODQ5MiwyMDEzMCwyMDIzMywyMzAyMiwyMzI3MCwyNDA1NSwyNDY1OCwyNTIzOSwyNjQ3Nywy'@; put 'NjY4OSwyNzc4MiwyODIwNywzMjU2OCwzMjkyMywzMzMyMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCw2NDAwOCw2NDAwOSwzODkxNywyMDEzMywyMDU2NSwyMTY4MywyMjQxOSwyMjg3NCwyMzQwMSwyMzQ3NSwyNTAzMiwyNjk5OSwyODAyMywyODcwNywzNDgwOSwzNTI5OSwzNTQ0MiwzNTU1OSwzNjk5NCwzOTQwNSwzOTYwOCwyMTE4MiwyNjY4MCwyMDUwMiwy'@; put 'NDE4NCwyNjQ0NywzMzYwNywzNDg5MiwyMDEzOSwyMTUyMSwyMjE5MCwyOTY3MCwzNzE0MSwzODkxMSwzOTE3NywzOTI1NSwzOTMyMSwyMjA5OSwyMjY4NywzNDM5NSwzNTM3NywyNTAxMCwyNzM4MiwyOTU2MywzNjU2MiwyNzQ2MywzODU3MCwzOTUxMSwyMjg2OSwyOTE4NCwzNjIwMywzODc2'@; put 'MSwyMDQzNiwyMzc5NiwyNDM1OCwyNTA4MCwyNjIwMywyNzg4MywyODg0MywyOTU3MiwyOTYyNSwyOTY5NCwzMDUwNSwzMDU0MSwzMjA2NywzMjA5OCwzMjI5MSwzMzMzNSwzNDg5OCw2NDAxMCwzNjA2NiwzNzQ0OSwzOTAyMywyMzM3NywzMTM0OCwzNDg4MCwzODkxMywyMzI0NCwyMDQ0OCwy'@; put 'MTMzMiwyMjg0NiwyMzgwNSwyNTQwNiwyODAyNSwyOTQzMywzMzAyOSwzMzAzMSwzMzY5OCwzNzU4MywzODk2MCwyMDEzNiwyMDgwNCwyMTAwOSwyMjQxMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNDQxOCwyNzg0MiwyODM2NiwyODY3NywyODc1MiwyODg0NywyOTA3NCwyOTY3MywyOTgwMSwzMzYxMCwzNDcyMiwzNDkxMywzNjg3MiwzNzAyNiwzNzc5NSwz'@; put 'OTMzNiwyMDg0NiwyNDQwNywyNDgwMCwyNDkzNSwyNjI5MSwzNDEzNywzNjQyNiwzNzI5NSwzODc5NSwyMDA0NiwyMDExNCwyMTYyOCwyMjc0MSwyMjc3OCwyMjkwOSwyMzczMywyNDM1OSwyNTE0MiwyNTE2MCwyNjEyMiwyNjIxNSwyNzYyNywyODAwOSwyODExMSwyODI0NiwyODQwOCwyODU2'@; put 'NCwyODY0MCwyODY0OSwyODc2NSwyOTM5MiwyOTczMywyOTc4NiwyOTkyMCwzMDM1NSwzMTA2OCwzMTk0NiwzMjI4NiwzMjk5MywzMzQ0NiwzMzg5OSwzMzk4MywzNDM4MiwzNDM5OSwzNDY3NiwzNTcwMywzNTk0NiwzNzgwNCwzODkxMiwzOTAxMywyNDc4NSwyNTExMCwzNzIzOSwyMzEzMCwy'@; put 'NjEyNywyODE1MSwyODIyMiwyOTc1OSwzOTc0NiwyNDU3MywyNDc5NCwzMTUwMywyMTcwMCwyNDM0NCwyNzc0MiwyNzg1OSwyNzk0NiwyODg4OCwzMjAwNSwzNDQyNSwzNTM0MCw0MDI1MSwyMTI3MCwyMTY0NCwyMzMwMSwyNzE5NCwyODc3OSwzMDA2OSxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMTExNywzMTE2NiwzMzQ1NywzMzc3NSwzNTQ0MSwzNTY0OSwz'@; put 'NjAwOCwzODc3Miw2NDAxMSwyNTg0NCwyNTg5OSwzMDkwNiwzMDkwNywzMTMzOSwyMDAyNCwyMTkxNCwyMjg2NCwyMzQ2MiwyNDE4NywyNDczOSwyNTU2MywyNzQ4OSwyNjIxMywyNjcwNywyODE4NSwyOTAyOSwyOTg3MiwzMjAwOCwzNjk5NiwzOTUyOSwzOTk3MywyNzk2MywyODM2OSwyOTUw'@; put 'MiwzNTkwNSwzODM0NiwyMDk3NiwyNDE0MCwyNDQ4OCwyNDY1MywyNDgyMiwyNDg4MCwyNDkwOCwyNjE3OSwyNjE4MCwyNzA0NSwyNzg0MSwyODI1NSwyODM2MSwyODUxNCwyOTAwNCwyOTg1MiwzMDM0MywzMTY4MSwzMTc4MywzMzYxOCwzNDY0NywzNjk0NSwzODU0MSw0MDY0MywyMTI5NSwy'@; put 'MjIzOCwyNDMxNSwyNDQ1OCwyNDY3NCwyNDcyNCwyNTA3OSwyNjIxNCwyNjM3MSwyNzI5MiwyODE0MiwyODU5MCwyODc4NCwyOTU0NiwzMjM2MiwzMzIxNCwzMzU4OCwzNDUxNiwzNTQ5NiwzNjAzNiwyMTEyMywyOTU1NCwyMzQ0NiwyNzI0MywzNzg5MiwyMTc0MiwyMjE1MCwyMzM4OSwyNTky'@; put 'OCwyNTk4OSwyNjMxMywyNjc4MywyODA0NSwyODEwMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCwyOTI0MywzMjk0OCwzNzIzNywzOTUwMSwyMDM5OSwyMDUwNSwyMTQwMiwyMTUxOCwyMTU2NCwyMTg5NywyMTk1NywyNDEyNywyNDQ2MCwyNjQyOSwyOTAzMCwyOTY2MSwzNjg2OSwyMTIxMSwyMTIzNSwyMjYyOCwyMjczNCwyODkzMiwyOTA3MSwyOTE3OSwzNDIy'@; put 'NCwzNTM0NywyNjI0OCwzNDIxNiwyMTkyNywyNjI0NCwyOTAwMiwzMzg0MSwyMTMyMSwyMTkxMywyNzU4NSwyNDQwOSwyNDUwOSwyNTU4MiwyNjI0OSwyODk5OSwzNTU2OSwzNjYzNyw0MDYzOCwyMDI0MSwyNTY1OCwyODg3NSwzMDA1NCwzNDQwNywyNDY3NiwzNTY2Miw0MDQ0MCwyMDgwNywy'@; put 'MDk4MiwyMTI1NiwyNzk1OCwzMzAxNiw0MDY1NywyNjEzMywyNzQyNywyODgyNCwzMDE2NSwyMTUwNywyMzY3MywzMjAwNywzNTM1MCwyNzQyNCwyNzQ1MywyNzQ2MiwyMTU2MCwyNDY4OCwyNzk2NSwzMjcyNSwzMzI4OCwyMDY5NCwyMDk1OCwyMTkxNiwyMjEyMywyMjIyMSwyMzAyMCwyMzMw'@; put 'NSwyNDA3NiwyNDk4NSwyNDk4NCwyNTEzNywyNjIwNiwyNjM0MiwyOTA4MSwyOTExMywyOTExNCwyOTM1MSwzMTE0MywzMTIzMiwzMjY5MCwzNTQ0MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSxnYjE4MDMwOlsxOTk3MCwxOTk3MiwxOTk3MywxOTk3NCwxOTk4MywxOTk4NiwxOTk5MSwxOTk5OSwyZTQsMjAwMDEsMjAwMDMsMjAwMDYsMjAwMDksMjAwMTQsMjAwMTUsMjAwMTcsMjAwMTksMjAwMjEsMjAw'@; put 'MjMsMjAwMjgsMjAwMzIsMjAwMzMsMjAwMzQsMjAwMzYsMjAwMzgsMjAwNDIsMjAwNDksMjAwNTMsMjAwNTUsMjAwNTgsMjAwNTksMjAwNjYsMjAwNjcsMjAwNjgsMjAwNjksMjAwNzEsMjAwNzIsMjAwNzQsMjAwNzUsMjAwNzYsMjAwNzcsMjAwNzgsMjAwNzksMjAwODIsMjAwODQsMjAwODUs'@; put 'MjAwODYsMjAwODcsMjAwODgsMjAwODksMjAwOTAsMjAwOTEsMjAwOTIsMjAwOTMsMjAwOTUsMjAwOTYsMjAwOTcsMjAwOTgsMjAwOTksMjAxMDAsMjAxMDEsMjAxMDMsMjAxMDYsMjAxMTIsMjAxMTgsMjAxMTksMjAxMjEsMjAxMjQsMjAxMjUsMjAxMjYsMjAxMzEsMjAxMzgsMjAxNDMsMjAx'@; put 'NDQsMjAxNDUsMjAxNDgsMjAxNTAsMjAxNTEsMjAxNTIsMjAxNTMsMjAxNTYsMjAxNTcsMjAxNTgsMjAxNjgsMjAxNzIsMjAxNzUsMjAxNzYsMjAxNzgsMjAxODYsMjAxODcsMjAxODgsMjAxOTIsMjAxOTQsMjAxOTgsMjAxOTksMjAyMDEsMjAyMDUsMjAyMDYsMjAyMDcsMjAyMDksMjAyMTIs'@; put 'MjAyMTYsMjAyMTcsMjAyMTgsMjAyMjAsMjAyMjIsMjAyMjQsMjAyMjYsMjAyMjcsMjAyMjgsMjAyMjksMjAyMzAsMjAyMzEsMjAyMzIsMjAyMzUsMjAyMzYsMjAyNDIsMjAyNDMsMjAyNDQsMjAyNDUsMjAyNDYsMjAyNTIsMjAyNTMsMjAyNTcsMjAyNTksMjAyNjQsMjAyNjUsMjAyNjgsMjAy'@; put 'NjksMjAyNzAsMjAyNzMsMjAyNzUsMjAyNzcsMjAyNzksMjAyODEsMjAyODMsMjAyODYsMjAyODcsMjAyODgsMjAyODksMjAyOTAsMjAyOTIsMjAyOTMsMjAyOTUsMjAyOTYsMjAyOTcsMjAyOTgsMjAyOTksMjAzMDAsMjAzMDYsMjAzMDgsMjAzMTAsMjAzMjEsMjAzMjIsMjAzMjYsMjAzMjgs'@; put 'MjAzMzAsMjAzMzEsMjAzMzMsMjAzMzQsMjAzMzcsMjAzMzgsMjAzNDEsMjAzNDMsMjAzNDQsMjAzNDUsMjAzNDYsMjAzNDksMjAzNTIsMjAzNTMsMjAzNTQsMjAzNTcsMjAzNTgsMjAzNTksMjAzNjIsMjAzNjQsMjAzNjYsMjAzNjgsMjAzNzAsMjAzNzEsMjAzNzMsMjAzNzQsMjAzNzYsMjAz'@; put 'NzcsMjAzNzgsMjAzODAsMjAzODIsMjAzODMsMjAzODUsMjAzODYsMjAzODgsMjAzOTUsMjAzOTcsMjA0MDAsMjA0MDEsMjA0MDIsMjA0MDMsMjA0MDQsMjA0MDYsMjA0MDcsMjA0MDgsMjA0MDksMjA0MTAsMjA0MTEsMjA0MTIsMjA0MTMsMjA0MTQsMjA0MTYsMjA0MTcsMjA0MTgsMjA0MjIs'@; put 'MjA0MjMsMjA0MjQsMjA0MjUsMjA0MjcsMjA0MjgsMjA0MjksMjA0MzQsMjA0MzUsMjA0MzYsMjA0MzcsMjA0MzgsMjA0NDEsMjA0NDMsMjA0NDgsMjA0NTAsMjA0NTIsMjA0NTMsMjA0NTUsMjA0NTksMjA0NjAsMjA0NjQsMjA0NjYsMjA0NjgsMjA0NjksMjA0NzAsMjA0NzEsMjA0NzMsMjA0'@; put 'NzUsMjA0NzYsMjA0NzcsMjA0NzksMjA0ODAsMjA0ODEsMjA0ODIsMjA0ODMsMjA0ODQsMjA0ODUsMjA0ODYsMjA0ODcsMjA0ODgsMjA0ODksMjA0OTAsMjA0OTEsMjA0OTQsMjA0OTYsMjA0OTcsMjA0OTksMjA1MDEsMjA1MDIsMjA1MDMsMjA1MDcsMjA1MDksMjA1MTAsMjA1MTIsMjA1MTQs'@; put 'MjA1MTUsMjA1MTYsMjA1MTksMjA1MjMsMjA1MjcsMjA1MjgsMjA1MjksMjA1MzAsMjA1MzEsMjA1MzIsMjA1MzMsMjA1MzQsMjA1MzUsMjA1MzYsMjA1MzcsMjA1MzksMjA1NDEsMjA1NDMsMjA1NDQsMjA1NDUsMjA1NDYsMjA1NDgsMjA1NDksMjA1NTAsMjA1NTMsMjA1NTQsMjA1NTUsMjA1'@; put 'NTcsMjA1NjAsMjA1NjEsMjA1NjIsMjA1NjMsMjA1NjQsMjA1NjYsMjA1NjcsMjA1NjgsMjA1NjksMjA1NzEsMjA1NzMsMjA1NzQsMjA1NzUsMjA1NzYsMjA1NzcsMjA1NzgsMjA1NzksMjA1ODAsMjA1ODIsMjA1ODMsMjA1ODQsMjA1ODUsMjA1ODYsMjA1ODcsMjA1ODksMjA1OTAsMjA1OTEs'@; put 'MjA1OTIsMjA1OTMsMjA1OTQsMjA1OTUsMjA1OTYsMjA1OTcsMjA2MDAsMjA2MDEsMjA2MDIsMjA2MDQsMjA2MDUsMjA2MDksMjA2MTAsMjA2MTEsMjA2MTIsMjA2MTQsMjA2MTUsMjA2MTcsMjA2MTgsMjA2MTksMjA2MjAsMjA2MjIsMjA2MjMsMjA2MjQsMjA2MjUsMjA2MjYsMjA2MjcsMjA2'@; put 'MjgsMjA2MjksMjA2MzAsMjA2MzEsMjA2MzIsMjA2MzMsMjA2MzQsMjA2MzUsMjA2MzYsMjA2MzcsMjA2MzgsMjA2MzksMjA2NDAsMjA2NDEsMjA2NDIsMjA2NDQsMjA2NDYsMjA2NTAsMjA2NTEsMjA2NTMsMjA2NTQsMjA2NTUsMjA2NTYsMjA2NTcsMjA2NTksMjA2NjAsMjA2NjEsMjA2NjIs'@; put 'MjA2NjMsMjA2NjQsMjA2NjUsMjA2NjgsMjA2NjksMjA2NzAsMjA2NzEsMjA2NzIsMjA2NzMsMjA2NzQsMjA2NzUsMjA2NzYsMjA2NzcsMjA2NzgsMjA2NzksMjA2ODAsMjA2ODEsMjA2ODIsMjA2ODMsMjA2ODQsMjA2ODUsMjA2ODYsMjA2ODgsMjA2ODksMjA2OTAsMjA2OTEsMjA2OTIsMjA2'@; put 'OTMsMjA2OTUsMjA2OTYsMjA2OTcsMjA2OTksMjA3MDAsMjA3MDEsMjA3MDIsMjA3MDMsMjA3MDQsMjA3MDUsMjA3MDYsMjA3MDcsMjA3MDgsMjA3MDksMjA3MTIsMjA3MTMsMjA3MTQsMjA3MTUsMjA3MTksMjA3MjAsMjA3MjEsMjA3MjIsMjA3MjQsMjA3MjYsMjA3MjcsMjA3MjgsMjA3Mjks'@; put 'MjA3MzAsMjA3MzIsMjA3MzMsMjA3MzQsMjA3MzUsMjA3MzYsMjA3MzcsMjA3MzgsMjA3MzksMjA3NDAsMjA3NDEsMjA3NDQsMjA3NDUsMjA3NDYsMjA3NDgsMjA3NDksMjA3NTAsMjA3NTEsMjA3NTIsMjA3NTMsMjA3NTUsMjA3NTYsMjA3NTcsMjA3NTgsMjA3NTksMjA3NjAsMjA3NjEsMjA3'@; put 'NjIsMjA3NjMsMjA3NjQsMjA3NjUsMjA3NjYsMjA3NjcsMjA3NjgsMjA3NzAsMjA3NzEsMjA3NzIsMjA3NzMsMjA3NzQsMjA3NzUsMjA3NzYsMjA3NzcsMjA3NzgsMjA3NzksMjA3ODAsMjA3ODEsMjA3ODIsMjA3ODMsMjA3ODQsMjA3ODUsMjA3ODYsMjA3ODcsMjA3ODgsMjA3ODksMjA3OTAs'@; put 'MjA3OTEsMjA3OTIsMjA3OTMsMjA3OTQsMjA3OTUsMjA3OTYsMjA3OTcsMjA3OTgsMjA4MDIsMjA4MDcsMjA4MTAsMjA4MTIsMjA4MTQsMjA4MTUsMjA4MTYsMjA4MTgsMjA4MTksMjA4MjMsMjA4MjQsMjA4MjUsMjA4MjcsMjA4MjksMjA4MzAsMjA4MzEsMjA4MzIsMjA4MzMsMjA4MzUsMjA4'@; put 'MzYsMjA4MzgsMjA4MzksMjA4NDEsMjA4NDIsMjA4NDcsMjA4NTAsMjA4NTgsMjA4NjIsMjA4NjMsMjA4NjcsMjA4NjgsMjA4NzAsMjA4NzEsMjA4NzQsMjA4NzUsMjA4NzgsMjA4NzksMjA4ODAsMjA4ODEsMjA4ODMsMjA4ODQsMjA4ODgsMjA4OTAsMjA4OTMsMjA4OTQsMjA4OTUsMjA4OTcs'@; put 'MjA4OTksMjA5MDIsMjA5MDMsMjA5MDQsMjA5MDUsMjA5MDYsMjA5MDksMjA5MTAsMjA5MTYsMjA5MjAsMjA5MjEsMjA5MjIsMjA5MjYsMjA5MjcsMjA5MjksMjA5MzAsMjA5MzEsMjA5MzMsMjA5MzYsMjA5MzgsMjA5NDEsMjA5NDIsMjA5NDQsMjA5NDYsMjA5NDcsMjA5NDgsMjA5NDksMjA5'@; put 'NTAsMjA5NTEsMjA5NTIsMjA5NTMsMjA5NTQsMjA5NTYsMjA5NTgsMjA5NTksMjA5NjIsMjA5NjMsMjA5NjUsMjA5NjYsMjA5NjcsMjA5NjgsMjA5NjksMjA5NzAsMjA5NzIsMjA5NzQsMjA5NzcsMjA5NzgsMjA5ODAsMjA5ODMsMjA5OTAsMjA5OTYsMjA5OTcsMjEwMDEsMjEwMDMsMjEwMDQs'@; put 'MjEwMDcsMjEwMDgsMjEwMTEsMjEwMTIsMjEwMTMsMjEwMjAsMjEwMjIsMjEwMjMsMjEwMjUsMjEwMjYsMjEwMjcsMjEwMjksMjEwMzAsMjEwMzEsMjEwMzQsMjEwMzYsMjEwMzksMjEwNDEsMjEwNDIsMjEwNDQsMjEwNDUsMjEwNTIsMjEwNTQsMjEwNjAsMjEwNjEsMjEwNjIsMjEwNjMsMjEw'@; put 'NjQsMjEwNjUsMjEwNjcsMjEwNzAsMjEwNzEsMjEwNzQsMjEwNzUsMjEwNzcsMjEwNzksMjEwODAsMjEwODEsMjEwODIsMjEwODMsMjEwODUsMjEwODcsMjEwODgsMjEwOTAsMjEwOTEsMjEwOTIsMjEwOTQsMjEwOTYsMjEwOTksMjExMDAsMjExMDEsMjExMDIsMjExMDQsMjExMDUsMjExMDcs'@; put 'MjExMDgsMjExMDksMjExMTAsMjExMTEsMjExMTIsMjExMTMsMjExMTQsMjExMTUsMjExMTYsMjExMTgsMjExMjAsMjExMjMsMjExMjQsMjExMjUsMjExMjYsMjExMjcsMjExMjksMjExMzAsMjExMzEsMjExMzIsMjExMzMsMjExMzQsMjExMzUsMjExMzcsMjExMzgsMjExNDAsMjExNDEsMjEx'@; put 'NDIsMjExNDMsMjExNDQsMjExNDUsMjExNDYsMjExNDgsMjExNTYsMjExNTcsMjExNTgsMjExNTksMjExNjYsMjExNjcsMjExNjgsMjExNzIsMjExNzMsMjExNzQsMjExNzUsMjExNzYsMjExNzcsMjExNzgsMjExNzksMjExODAsMjExODEsMjExODQsMjExODUsMjExODYsMjExODgsMjExODks'@; put 'MjExOTAsMjExOTIsMjExOTQsMjExOTYsMjExOTcsMjExOTgsMjExOTksMjEyMDEsMjEyMDMsMjEyMDQsMjEyMDUsMjEyMDcsMjEyMDksMjEyMTAsMjEyMTEsMjEyMTIsMjEyMTMsMjEyMTQsMjEyMTYsMjEyMTcsMjEyMTgsMjEyMTksMjEyMjEsMjEyMjIsMjEyMjMsMjEyMjQsMjEyMjUsMjEy'@; put 'MjYsMjEyMjcsMjEyMjgsMjEyMjksMjEyMzAsMjEyMzEsMjEyMzMsMjEyMzQsMjEyMzUsMjEyMzYsMjEyMzcsMjEyMzgsMjEyMzksMjEyNDAsMjEyNDMsMjEyNDQsMjEyNDUsMjEyNDksMjEyNTAsMjEyNTEsMjEyNTIsMjEyNTUsMjEyNTcsMjEyNTgsMjEyNTksMjEyNjAsMjEyNjIsMjEyNjUs'@; put 'MjEyNjYsMjEyNjcsMjEyNjgsMjEyNzIsMjEyNzUsMjEyNzYsMjEyNzgsMjEyNzksMjEyODIsMjEyODQsMjEyODUsMjEyODcsMjEyODgsMjEyODksMjEyOTEsMjEyOTIsMjEyOTMsMjEyOTUsMjEyOTYsMjEyOTcsMjEyOTgsMjEyOTksMjEzMDAsMjEzMDEsMjEzMDIsMjEzMDMsMjEzMDQsMjEz'@; put 'MDgsMjEzMDksMjEzMTIsMjEzMTQsMjEzMTYsMjEzMTgsMjEzMjMsMjEzMjQsMjEzMjUsMjEzMjgsMjEzMzIsMjEzMzYsMjEzMzcsMjEzMzksMjEzNDEsMjEzNDksMjEzNTIsMjEzNTQsMjEzNTYsMjEzNTcsMjEzNjIsMjEzNjYsMjEzNjksMjEzNzEsMjEzNzIsMjEzNzMsMjEzNzQsMjEzNzYs'@; put 'MjEzNzcsMjEzNzksMjEzODMsMjEzODQsMjEzODYsMjEzOTAsMjEzOTEsMjEzOTIsMjEzOTMsMjEzOTQsMjEzOTUsMjEzOTYsMjEzOTgsMjEzOTksMjE0MDEsMjE0MDMsMjE0MDQsMjE0MDYsMjE0MDgsMjE0MDksMjE0MTIsMjE0MTUsMjE0MTgsMjE0MTksMjE0MjAsMjE0MjEsMjE0MjMsMjE0'@; put 'MjQsMjE0MjUsMjE0MjYsMjE0MjcsMjE0MjgsMjE0MjksMjE0MzEsMjE0MzIsMjE0MzMsMjE0MzQsMjE0MzYsMjE0MzcsMjE0MzgsMjE0NDAsMjE0NDMsMjE0NDQsMjE0NDUsMjE0NDYsMjE0NDcsMjE0NTQsMjE0NTUsMjE0NTYsMjE0NTgsMjE0NTksMjE0NjEsMjE0NjYsMjE0NjgsMjE0Njks'@; put 'MjE0NzAsMjE0NzMsMjE0NzQsMjE0NzksMjE0OTIsMjE0OTgsMjE1MDIsMjE1MDMsMjE1MDQsMjE1MDYsMjE1MDksMjE1MTEsMjE1MTUsMjE1MjQsMjE1MjgsMjE1MjksMjE1MzAsMjE1MzIsMjE1MzgsMjE1NDAsMjE1NDEsMjE1NDYsMjE1NTIsMjE1NTUsMjE1NTgsMjE1NTksMjE1NjIsMjE1'@; put 'NjUsMjE1NjcsMjE1NjksMjE1NzAsMjE1NzIsMjE1NzMsMjE1NzUsMjE1NzcsMjE1ODAsMjE1ODEsMjE1ODIsMjE1ODMsMjE1ODUsMjE1OTQsMjE1OTcsMjE1OTgsMjE1OTksMjE2MDAsMjE2MDEsMjE2MDMsMjE2MDUsMjE2MDcsMjE2MDksMjE2MTAsMjE2MTEsMjE2MTIsMjE2MTMsMjE2MTQs'@; put 'MjE2MTUsMjE2MTYsMjE2MjAsMjE2MjUsMjE2MjYsMjE2MzAsMjE2MzEsMjE2MzMsMjE2MzUsMjE2MzcsMjE2MzksMjE2NDAsMjE2NDEsMjE2NDIsMjE2NDUsMjE2NDksMjE2NTEsMjE2NTUsMjE2NTYsMjE2NjAsMjE2NjIsMjE2NjMsMjE2NjQsMjE2NjUsMjE2NjYsMjE2NjksMjE2NzgsMjE2'@; put 'ODAsMjE2ODIsMjE2ODUsMjE2ODYsMjE2ODcsMjE2ODksMjE2OTAsMjE2OTIsMjE2OTQsMjE2OTksMjE3MDEsMjE3MDYsMjE3MDcsMjE3MTgsMjE3MjAsMjE3MjMsMjE3MjgsMjE3MjksMjE3MzAsMjE3MzEsMjE3MzIsMjE3MzksMjE3NDAsMjE3NDMsMjE3NDQsMjE3NDUsMjE3NDgsMjE3NDks'@; put 'MjE3NTAsMjE3NTEsMjE3NTIsMjE3NTMsMjE3NTUsMjE3NTgsMjE3NjAsMjE3NjIsMjE3NjMsMjE3NjQsMjE3NjUsMjE3NjgsMjE3NzAsMjE3NzEsMjE3NzIsMjE3NzMsMjE3NzQsMjE3NzgsMjE3NzksMjE3ODEsMjE3ODIsMjE3ODMsMjE3ODQsMjE3ODUsMjE3ODYsMjE3ODgsMjE3ODksMjE3'@; put 'OTAsMjE3OTEsMjE3OTMsMjE3OTcsMjE3OTgsMjE4MDAsMjE4MDEsMjE4MDMsMjE4MDUsMjE4MTAsMjE4MTIsMjE4MTMsMjE4MTQsMjE4MTYsMjE4MTcsMjE4MTgsMjE4MTksMjE4MjEsMjE4MjQsMjE4MjYsMjE4MjksMjE4MzEsMjE4MzIsMjE4MzUsMjE4MzYsMjE4MzcsMjE4MzgsMjE4Mzks'@; put 'MjE4NDEsMjE4NDIsMjE4NDMsMjE4NDQsMjE4NDcsMjE4NDgsMjE4NDksMjE4NTAsMjE4NTEsMjE4NTMsMjE4NTQsMjE4NTUsMjE4NTYsMjE4NTgsMjE4NTksMjE4NjQsMjE4NjUsMjE4NjcsMjE4NzEsMjE4NzIsMjE4NzMsMjE4NzQsMjE4NzUsMjE4NzYsMjE4ODEsMjE4ODIsMjE4ODUsMjE4'@; put 'ODcsMjE4OTMsMjE4OTQsMjE5MDAsMjE5MDEsMjE5MDIsMjE5MDQsMjE5MDYsMjE5MDcsMjE5MDksMjE5MTAsMjE5MTEsMjE5MTQsMjE5MTUsMjE5MTgsMjE5MjAsMjE5MjEsMjE5MjIsMjE5MjMsMjE5MjQsMjE5MjUsMjE5MjYsMjE5MjgsMjE5MjksMjE5MzAsMjE5MzEsMjE5MzIsMjE5MzMs'@; put 'MjE5MzQsMjE5MzUsMjE5MzYsMjE5MzgsMjE5NDAsMjE5NDIsMjE5NDQsMjE5NDYsMjE5NDgsMjE5NTEsMjE5NTIsMjE5NTMsMjE5NTQsMjE5NTUsMjE5NTgsMjE5NTksMjE5NjAsMjE5NjIsMjE5NjMsMjE5NjYsMjE5NjcsMjE5NjgsMjE5NzMsMjE5NzUsMjE5NzYsMjE5NzcsMjE5NzgsMjE5'@; put 'NzksMjE5ODIsMjE5ODQsMjE5ODYsMjE5OTEsMjE5OTMsMjE5OTcsMjE5OTgsMjJlMywyMjAwMSwyMjAwNCwyMjAwNiwyMjAwOCwyMjAwOSwyMjAxMCwyMjAxMSwyMjAxMiwyMjAxNSwyMjAxOCwyMjAxOSwyMjAyMCwyMjAyMSwyMjAyMiwyMjAyMywyMjAyNiwyMjAyNywyMjAyOSwyMjAzMiwy'@; put 'MjAzMywyMjAzNCwyMjAzNSwyMjAzNiwyMjAzNywyMjAzOCwyMjAzOSwyMjA0MSwyMjA0MiwyMjA0NCwyMjA0NSwyMjA0OCwyMjA0OSwyMjA1MCwyMjA1MywyMjA1NCwyMjA1NiwyMjA1NywyMjA1OCwyMjA1OSwyMjA2MiwyMjA2MywyMjA2NCwyMjA2NywyMjA2OSwyMjA3MSwyMjA3MiwyMjA3'@; put 'NCwyMjA3NiwyMjA3NywyMjA3OCwyMjA4MCwyMjA4MSwyMjA4MiwyMjA4MywyMjA4NCwyMjA4NSwyMjA4NiwyMjA4NywyMjA4OCwyMjA4OSwyMjA5MCwyMjA5MSwyMjA5NSwyMjA5NiwyMjA5NywyMjA5OCwyMjA5OSwyMjEwMSwyMjEwMiwyMjEwNiwyMjEwNywyMjEwOSwyMjExMCwyMjExMSwy'@; put 'MjExMiwyMjExMywyMjExNSwyMjExNywyMjExOCwyMjExOSwyMjEyNSwyMjEyNiwyMjEyNywyMjEyOCwyMjEzMCwyMjEzMSwyMjEzMiwyMjEzMywyMjEzNSwyMjEzNiwyMjEzNywyMjEzOCwyMjE0MSwyMjE0MiwyMjE0MywyMjE0NCwyMjE0NSwyMjE0NiwyMjE0NywyMjE0OCwyMjE1MSwyMjE1'@; put 'MiwyMjE1MywyMjE1NCwyMjE1NSwyMjE1NiwyMjE1NywyMjE2MCwyMjE2MSwyMjE2MiwyMjE2NCwyMjE2NSwyMjE2NiwyMjE2NywyMjE2OCwyMjE2OSwyMjE3MCwyMjE3MSwyMjE3MiwyMjE3MywyMjE3NCwyMjE3NSwyMjE3NiwyMjE3NywyMjE3OCwyMjE4MCwyMjE4MSwyMjE4MiwyMjE4Mywy'@; put 'MjE4NCwyMjE4NSwyMjE4NiwyMjE4NywyMjE4OCwyMjE4OSwyMjE5MCwyMjE5MiwyMjE5MywyMjE5NCwyMjE5NSwyMjE5NiwyMjE5NywyMjE5OCwyMjIwMCwyMjIwMSwyMjIwMiwyMjIwMywyMjIwNSwyMjIwNiwyMjIwNywyMjIwOCwyMjIwOSwyMjIxMCwyMjIxMSwyMjIxMiwyMjIxMywyMjIx'@; put 'NCwyMjIxNSwyMjIxNiwyMjIxNywyMjIxOSwyMjIyMCwyMjIyMSwyMjIyMiwyMjIyMywyMjIyNCwyMjIyNSwyMjIyNiwyMjIyNywyMjIyOSwyMjIzMCwyMjIzMiwyMjIzMywyMjIzNiwyMjI0MywyMjI0NSwyMjI0NiwyMjI0NywyMjI0OCwyMjI0OSwyMjI1MCwyMjI1MiwyMjI1NCwyMjI1NSwy'@; put 'MjI1OCwyMjI1OSwyMjI2MiwyMjI2MywyMjI2NCwyMjI2NywyMjI2OCwyMjI3MiwyMjI3MywyMjI3NCwyMjI3NywyMjI3OSwyMjI4MywyMjI4NCwyMjI4NSwyMjI4NiwyMjI4NywyMjI4OCwyMjI4OSwyMjI5MCwyMjI5MSwyMjI5MiwyMjI5MywyMjI5NCwyMjI5NSwyMjI5NiwyMjI5NywyMjI5'@; put 'OCwyMjI5OSwyMjMwMSwyMjMwMiwyMjMwNCwyMjMwNSwyMjMwNiwyMjMwOCwyMjMwOSwyMjMxMCwyMjMxMSwyMjMxNSwyMjMyMSwyMjMyMiwyMjMyNCwyMjMyNSwyMjMyNiwyMjMyNywyMjMyOCwyMjMzMiwyMjMzMywyMjMzNSwyMjMzNywyMjMzOSwyMjM0MCwyMjM0MSwyMjM0MiwyMjM0NCwy'@; put 'MjM0NSwyMjM0NywyMjM1NCwyMjM1NSwyMjM1NiwyMjM1NywyMjM1OCwyMjM2MCwyMjM2MSwyMjM3MCwyMjM3MSwyMjM3MywyMjM3NSwyMjM4MCwyMjM4MiwyMjM4NCwyMjM4NSwyMjM4NiwyMjM4OCwyMjM4OSwyMjM5MiwyMjM5MywyMjM5NCwyMjM5NywyMjM5OCwyMjM5OSwyMjQwMCwyMjQw'@; put 'MSwyMjQwNywyMjQwOCwyMjQwOSwyMjQxMCwyMjQxMywyMjQxNCwyMjQxNSwyMjQxNiwyMjQxNywyMjQyMCwyMjQyMSwyMjQyMiwyMjQyMywyMjQyNCwyMjQyNSwyMjQyNiwyMjQyOCwyMjQyOSwyMjQzMCwyMjQzMSwyMjQzNywyMjQ0MCwyMjQ0MiwyMjQ0NCwyMjQ0NywyMjQ0OCwyMjQ0OSwy'@; put 'MjQ1MSwyMjQ1MywyMjQ1NCwyMjQ1NSwyMjQ1NywyMjQ1OCwyMjQ1OSwyMjQ2MCwyMjQ2MSwyMjQ2MiwyMjQ2MywyMjQ2NCwyMjQ2NSwyMjQ2OCwyMjQ2OSwyMjQ3MCwyMjQ3MSwyMjQ3MiwyMjQ3MywyMjQ3NCwyMjQ3NiwyMjQ3NywyMjQ4MCwyMjQ4MSwyMjQ4MywyMjQ4NiwyMjQ4NywyMjQ5'@; put 'MSwyMjQ5MiwyMjQ5NCwyMjQ5NywyMjQ5OCwyMjQ5OSwyMjUwMSwyMjUwMiwyMjUwMywyMjUwNCwyMjUwNSwyMjUwNiwyMjUwNywyMjUwOCwyMjUxMCwyMjUxMiwyMjUxMywyMjUxNCwyMjUxNSwyMjUxNywyMjUxOCwyMjUxOSwyMjUyMywyMjUyNCwyMjUyNiwyMjUyNywyMjUyOSwyMjUzMSwy'@; put 'MjUzMiwyMjUzMywyMjUzNiwyMjUzNywyMjUzOCwyMjU0MCwyMjU0MiwyMjU0MywyMjU0NCwyMjU0NiwyMjU0NywyMjU0OCwyMjU1MCwyMjU1MSwyMjU1MiwyMjU1NCwyMjU1NSwyMjU1NiwyMjU1NywyMjU1OSwyMjU2MiwyMjU2MywyMjU2NSwyMjU2NiwyMjU2NywyMjU2OCwyMjU2OSwyMjU3'@; put 'MSwyMjU3MiwyMjU3MywyMjU3NCwyMjU3NSwyMjU3NywyMjU3OCwyMjU3OSwyMjU4MCwyMjU4MiwyMjU4MywyMjU4NCwyMjU4NSwyMjU4NiwyMjU4NywyMjU4OCwyMjU4OSwyMjU5MCwyMjU5MSwyMjU5MiwyMjU5MywyMjU5NCwyMjU5NSwyMjU5NywyMjU5OCwyMjU5OSwyMjYwMCwyMjYwMSwy'@; put 'MjYwMiwyMjYwMywyMjYwNiwyMjYwNywyMjYwOCwyMjYxMCwyMjYxMSwyMjYxMywyMjYxNCwyMjYxNSwyMjYxNywyMjYxOCwyMjYxOSwyMjYyMCwyMjYyMSwyMjYyMywyMjYyNCwyMjYyNSwyMjYyNiwyMjYyNywyMjYyOCwyMjYzMCwyMjYzMSwyMjYzMiwyMjYzMywyMjYzNCwyMjYzNywyMjYz'@; put 'OCwyMjYzOSwyMjY0MCwyMjY0MSwyMjY0MiwyMjY0MywyMjY0NCwyMjY0NSwyMjY0NiwyMjY0NywyMjY0OCwyMjY0OSwyMjY1MCwyMjY1MSwyMjY1MiwyMjY1MywyMjY1NSwyMjY1OCwyMjY2MCwyMjY2MiwyMjY2MywyMjY2NCwyMjY2NiwyMjY2NywyMjY2OCwyMjY2OSwyMjY3MCwyMjY3MSwy'@; put 'MjY3MiwyMjY3MywyMjY3NiwyMjY3NywyMjY3OCwyMjY3OSwyMjY4MCwyMjY4MywyMjY4NCwyMjY4NSwyMjY4OCwyMjY4OSwyMjY5MCwyMjY5MSwyMjY5MiwyMjY5MywyMjY5NCwyMjY5NSwyMjY5OCwyMjY5OSwyMjcwMCwyMjcwMSwyMjcwMiwyMjcwMywyMjcwNCwyMjcwNSwyMjcwNiwyMjcw'@; put 'NywyMjcwOCwyMjcwOSwyMjcxMCwyMjcxMSwyMjcxMiwyMjcxMywyMjcxNCwyMjcxNSwyMjcxNywyMjcxOCwyMjcxOSwyMjcyMCwyMjcyMiwyMjcyMywyMjcyNCwyMjcyNiwyMjcyNywyMjcyOCwyMjcyOSwyMjczMCwyMjczMSwyMjczMiwyMjczMywyMjczNCwyMjczNSwyMjczNiwyMjczOCwy'@; put 'MjczOSwyMjc0MCwyMjc0MiwyMjc0MywyMjc0NCwyMjc0NSwyMjc0NiwyMjc0NywyMjc0OCwyMjc0OSwyMjc1MCwyMjc1MSwyMjc1MiwyMjc1MywyMjc1NCwyMjc1NSwyMjc1NywyMjc1OCwyMjc1OSwyMjc2MCwyMjc2MSwyMjc2MiwyMjc2NSwyMjc2NywyMjc2OSwyMjc3MCwyMjc3MiwyMjc3'@; put 'MywyMjc3NSwyMjc3NiwyMjc3OCwyMjc3OSwyMjc4MCwyMjc4MSwyMjc4MiwyMjc4MywyMjc4NCwyMjc4NSwyMjc4NywyMjc4OSwyMjc5MCwyMjc5MiwyMjc5MywyMjc5NCwyMjc5NSwyMjc5NiwyMjc5OCwyMjgwMCwyMjgwMSwyMjgwMiwyMjgwMywyMjgwNywyMjgwOCwyMjgxMSwyMjgxMywy'@; put 'MjgxNCwyMjgxNiwyMjgxNywyMjgxOCwyMjgxOSwyMjgyMiwyMjgyNCwyMjgyOCwyMjgzMiwyMjgzNCwyMjgzNSwyMjgzNywyMjgzOCwyMjg0MywyMjg0NSwyMjg0NiwyMjg0NywyMjg0OCwyMjg1MSwyMjg1MywyMjg1NCwyMjg1OCwyMjg2MCwyMjg2MSwyMjg2NCwyMjg2NiwyMjg2NywyMjg3'@; put 'MywyMjg3NSwyMjg3NiwyMjg3NywyMjg3OCwyMjg3OSwyMjg4MSwyMjg4MywyMjg4NCwyMjg4NiwyMjg4NywyMjg4OCwyMjg4OSwyMjg5MCwyMjg5MSwyMjg5MiwyMjg5MywyMjg5NCwyMjg5NSwyMjg5NiwyMjg5NywyMjg5OCwyMjkwMSwyMjkwMywyMjkwNiwyMjkwNywyMjkwOCwyMjkxMCwy'@; put 'MjkxMSwyMjkxMiwyMjkxNywyMjkyMSwyMjkyMywyMjkyNCwyMjkyNiwyMjkyNywyMjkyOCwyMjkyOSwyMjkzMiwyMjkzMywyMjkzNiwyMjkzOCwyMjkzOSwyMjk0MCwyMjk0MSwyMjk0MywyMjk0NCwyMjk0NSwyMjk0NiwyMjk1MCwyMjk1MSwyMjk1NiwyMjk1NywyMjk2MCwyMjk2MSwyMjk2'@; put 'MywyMjk2NCwyMjk2NSwyMjk2NiwyMjk2NywyMjk2OCwyMjk3MCwyMjk3MiwyMjk3MywyMjk3NSwyMjk3NiwyMjk3NywyMjk3OCwyMjk3OSwyMjk4MCwyMjk4MSwyMjk4MywyMjk4NCwyMjk4NSwyMjk4OCwyMjk4OSwyMjk5MCwyMjk5MSwyMjk5NywyMjk5OCwyMzAwMSwyMzAwMywyMzAwNiwy'@; put 'MzAwNywyMzAwOCwyMzAwOSwyMzAxMCwyMzAxMiwyMzAxNCwyMzAxNSwyMzAxNywyMzAxOCwyMzAxOSwyMzAyMSwyMzAyMiwyMzAyMywyMzAyNCwyMzAyNSwyMzAyNiwyMzAyNywyMzAyOCwyMzAyOSwyMzAzMCwyMzAzMSwyMzAzMiwyMzAzNCwyMzAzNiwyMzAzNywyMzAzOCwyMzA0MCwyMzA0'@; put 'MiwyMzA1MCwyMzA1MSwyMzA1MywyMzA1NCwyMzA1NSwyMzA1NiwyMzA1OCwyMzA2MCwyMzA2MSwyMzA2MiwyMzA2MywyMzA2NSwyMzA2NiwyMzA2NywyMzA2OSwyMzA3MCwyMzA3MywyMzA3NCwyMzA3NiwyMzA3OCwyMzA3OSwyMzA4MCwyMzA4MiwyMzA4MywyMzA4NCwyMzA4NSwyMzA4Niwy'@; put 'MzA4NywyMzA4OCwyMzA5MSwyMzA5MywyMzA5NSwyMzA5NiwyMzA5NywyMzA5OCwyMzA5OSwyMzEwMSwyMzEwMiwyMzEwMywyMzEwNSwyMzEwNiwyMzEwNywyMzEwOCwyMzEwOSwyMzExMSwyMzExMiwyMzExNSwyMzExNiwyMzExNywyMzExOCwyMzExOSwyMzEyMCwyMzEyMSwyMzEyMiwyMzEy'@; put 'MywyMzEyNCwyMzEyNiwyMzEyNywyMzEyOCwyMzEyOSwyMzEzMSwyMzEzMiwyMzEzMywyMzEzNCwyMzEzNSwyMzEzNiwyMzEzNywyMzEzOSwyMzE0MCwyMzE0MSwyMzE0MiwyMzE0NCwyMzE0NSwyMzE0NywyMzE0OCwyMzE0OSwyMzE1MCwyMzE1MSwyMzE1MiwyMzE1MywyMzE1NCwyMzE1NSwy'@; put 'MzE2MCwyMzE2MSwyMzE2MywyMzE2NCwyMzE2NSwyMzE2NiwyMzE2OCwyMzE2OSwyMzE3MCwyMzE3MSwyMzE3MiwyMzE3MywyMzE3NCwyMzE3NSwyMzE3NiwyMzE3NywyMzE3OCwyMzE3OSwyMzE4MCwyMzE4MSwyMzE4MiwyMzE4MywyMzE4NCwyMzE4NSwyMzE4NywyMzE4OCwyMzE4OSwyMzE5'@; put 'MCwyMzE5MSwyMzE5MiwyMzE5MywyMzE5NiwyMzE5NywyMzE5OCwyMzE5OSwyMzIwMCwyMzIwMSwyMzIwMiwyMzIwMywyMzIwNCwyMzIwNSwyMzIwNiwyMzIwNywyMzIwOCwyMzIwOSwyMzIxMSwyMzIxMiwyMzIxMywyMzIxNCwyMzIxNSwyMzIxNiwyMzIxNywyMzIyMCwyMzIyMiwyMzIyMywy'@; put 'MzIyNSwyMzIyNiwyMzIyNywyMzIyOCwyMzIyOSwyMzIzMSwyMzIzMiwyMzIzNSwyMzIzNiwyMzIzNywyMzIzOCwyMzIzOSwyMzI0MCwyMzI0MiwyMzI0MywyMzI0NSwyMzI0NiwyMzI0NywyMzI0OCwyMzI0OSwyMzI1MSwyMzI1MywyMzI1NSwyMzI1NywyMzI1OCwyMzI1OSwyMzI2MSwyMzI2'@; put 'MiwyMzI2MywyMzI2NiwyMzI2OCwyMzI2OSwyMzI3MSwyMzI3MiwyMzI3NCwyMzI3NiwyMzI3NywyMzI3OCwyMzI3OSwyMzI4MCwyMzI4MiwyMzI4MywyMzI4NCwyMzI4NSwyMzI4NiwyMzI4NywyMzI4OCwyMzI4OSwyMzI5MCwyMzI5MSwyMzI5MiwyMzI5MywyMzI5NCwyMzI5NSwyMzI5Niwy'@; put 'MzI5NywyMzI5OCwyMzI5OSwyMzMwMCwyMzMwMSwyMzMwMiwyMzMwMywyMzMwNCwyMzMwNiwyMzMwNywyMzMwOCwyMzMwOSwyMzMxMCwyMzMxMSwyMzMxMiwyMzMxMywyMzMxNCwyMzMxNSwyMzMxNiwyMzMxNywyMzMyMCwyMzMyMSwyMzMyMiwyMzMyMywyMzMyNCwyMzMyNSwyMzMyNiwyMzMy'@; put 'NywyMzMyOCwyMzMyOSwyMzMzMCwyMzMzMSwyMzMzMiwyMzMzMywyMzMzNCwyMzMzNSwyMzMzNiwyMzMzNywyMzMzOCwyMzMzOSwyMzM0MCwyMzM0MSwyMzM0MiwyMzM0MywyMzM0NCwyMzM0NSwyMzM0NywyMzM0OSwyMzM1MCwyMzM1MiwyMzM1MywyMzM1NCwyMzM1NSwyMzM1NiwyMzM1Nywy'@; put 'MzM1OCwyMzM1OSwyMzM2MSwyMzM2MiwyMzM2MywyMzM2NCwyMzM2NSwyMzM2NiwyMzM2NywyMzM2OCwyMzM2OSwyMzM3MCwyMzM3MSwyMzM3MiwyMzM3MywyMzM3NCwyMzM3NSwyMzM3OCwyMzM4MiwyMzM5MCwyMzM5MiwyMzM5MywyMzM5OSwyMzQwMCwyMzQwMywyMzQwNSwyMzQwNiwyMzQw'@; put 'NywyMzQxMCwyMzQxMiwyMzQxNCwyMzQxNSwyMzQxNiwyMzQxNywyMzQxOSwyMzQyMCwyMzQyMiwyMzQyMywyMzQyNiwyMzQzMCwyMzQzNCwyMzQzNywyMzQzOCwyMzQ0MCwyMzQ0MSwyMzQ0MiwyMzQ0NCwyMzQ0NiwyMzQ1NSwyMzQ2MywyMzQ2NCwyMzQ2NSwyMzQ2OCwyMzQ2OSwyMzQ3MCwy'@; put 'MzQ3MSwyMzQ3MywyMzQ3NCwyMzQ3OSwyMzQ4MiwyMzQ4MywyMzQ4NCwyMzQ4OCwyMzQ4OSwyMzQ5MSwyMzQ5NiwyMzQ5NywyMzQ5OCwyMzQ5OSwyMzUwMSwyMzUwMiwyMzUwMywyMzUwNSwyMzUwOCwyMzUwOSwyMzUxMCwyMzUxMSwyMzUxMiwyMzUxMywyMzUxNCwyMzUxNSwyMzUxNiwyMzUy'@; put 'MCwyMzUyMiwyMzUyMywyMzUyNiwyMzUyNywyMzUyOSwyMzUzMCwyMzUzMSwyMzUzMiwyMzUzMywyMzUzNSwyMzUzNywyMzUzOCwyMzUzOSwyMzU0MCwyMzU0MSwyMzU0MiwyMzU0MywyMzU0OSwyMzU1MCwyMzU1MiwyMzU1NCwyMzU1NSwyMzU1NywyMzU1OSwyMzU2MCwyMzU2MywyMzU2NCwy'@; put 'MzU2NSwyMzU2NiwyMzU2OCwyMzU3MCwyMzU3MSwyMzU3NSwyMzU3NywyMzU3OSwyMzU4MiwyMzU4MywyMzU4NCwyMzU4NSwyMzU4NywyMzU5MCwyMzU5MiwyMzU5MywyMzU5NCwyMzU5NSwyMzU5NywyMzU5OCwyMzU5OSwyMzYwMCwyMzYwMiwyMzYwMywyMzYwNSwyMzYwNiwyMzYwNywyMzYx'@; put 'OSwyMzYyMCwyMzYyMiwyMzYyMywyMzYyOCwyMzYyOSwyMzYzNCwyMzYzNSwyMzYzNiwyMzYzOCwyMzYzOSwyMzY0MCwyMzY0MiwyMzY0MywyMzY0NCwyMzY0NSwyMzY0NywyMzY1MCwyMzY1MiwyMzY1NSwyMzY1NiwyMzY1NywyMzY1OCwyMzY1OSwyMzY2MCwyMzY2MSwyMzY2NCwyMzY2Niwy'@; put 'MzY2NywyMzY2OCwyMzY2OSwyMzY3MCwyMzY3MSwyMzY3MiwyMzY3NSwyMzY3NiwyMzY3NywyMzY3OCwyMzY4MCwyMzY4MywyMzY4NCwyMzY4NSwyMzY4NiwyMzY4NywyMzY4OSwyMzY5MCwyMzY5MSwyMzY5NCwyMzY5NSwyMzY5OCwyMzY5OSwyMzcwMSwyMzcwOSwyMzcxMCwyMzcxMSwyMzcx'@; put 'MiwyMzcxMywyMzcxNiwyMzcxNywyMzcxOCwyMzcxOSwyMzcyMCwyMzcyMiwyMzcyNiwyMzcyNywyMzcyOCwyMzczMCwyMzczMiwyMzczNCwyMzczNywyMzczOCwyMzczOSwyMzc0MCwyMzc0MiwyMzc0NCwyMzc0NiwyMzc0NywyMzc0OSwyMzc1MCwyMzc1MSwyMzc1MiwyMzc1MywyMzc1NCwy'@; put 'Mzc1NiwyMzc1NywyMzc1OCwyMzc1OSwyMzc2MCwyMzc2MSwyMzc2MywyMzc2NCwyMzc2NSwyMzc2NiwyMzc2NywyMzc2OCwyMzc3MCwyMzc3MSwyMzc3MiwyMzc3MywyMzc3NCwyMzc3NSwyMzc3NiwyMzc3OCwyMzc3OSwyMzc4MywyMzc4NSwyMzc4NywyMzc4OCwyMzc5MCwyMzc5MSwyMzc5'@; put 'MywyMzc5NCwyMzc5NSwyMzc5NiwyMzc5NywyMzc5OCwyMzc5OSwyMzgwMCwyMzgwMSwyMzgwMiwyMzgwNCwyMzgwNSwyMzgwNiwyMzgwNywyMzgwOCwyMzgwOSwyMzgxMiwyMzgxMywyMzgxNiwyMzgxNywyMzgxOCwyMzgxOSwyMzgyMCwyMzgyMSwyMzgyMywyMzgyNCwyMzgyNSwyMzgyNiwy'@; put 'MzgyNywyMzgyOSwyMzgzMSwyMzgzMiwyMzgzMywyMzgzNCwyMzgzNiwyMzgzNywyMzgzOSwyMzg0MCwyMzg0MSwyMzg0MiwyMzg0MywyMzg0NSwyMzg0OCwyMzg1MCwyMzg1MSwyMzg1MiwyMzg1NSwyMzg1NiwyMzg1NywyMzg1OCwyMzg1OSwyMzg2MSwyMzg2MiwyMzg2MywyMzg2NCwyMzg2'@; put 'NSwyMzg2NiwyMzg2NywyMzg2OCwyMzg3MSwyMzg3MiwyMzg3MywyMzg3NCwyMzg3NSwyMzg3NiwyMzg3NywyMzg3OCwyMzg4MCwyMzg4MSwyMzg4NSwyMzg4NiwyMzg4NywyMzg4OCwyMzg4OSwyMzg5MCwyMzg5MSwyMzg5MiwyMzg5MywyMzg5NCwyMzg5NSwyMzg5NywyMzg5OCwyMzkwMCwy'@; put 'MzkwMiwyMzkwMywyMzkwNCwyMzkwNSwyMzkwNiwyMzkwNywyMzkwOCwyMzkwOSwyMzkxMCwyMzkxMSwyMzkxMiwyMzkxNCwyMzkxNywyMzkxOCwyMzkyMCwyMzkyMSwyMzkyMiwyMzkyMywyMzkyNSwyMzkyNiwyMzkyNywyMzkyOCwyMzkyOSwyMzkzMCwyMzkzMSwyMzkzMiwyMzkzMywyMzkz'@; put 'NCwyMzkzNSwyMzkzNiwyMzkzNywyMzkzOSwyMzk0MCwyMzk0MSwyMzk0MiwyMzk0MywyMzk0NCwyMzk0NSwyMzk0NiwyMzk0NywyMzk0OCwyMzk0OSwyMzk1MCwyMzk1MSwyMzk1MiwyMzk1MywyMzk1NCwyMzk1NSwyMzk1NiwyMzk1NywyMzk1OCwyMzk1OSwyMzk2MCwyMzk2MiwyMzk2Mywy'@; put 'Mzk2NCwyMzk2NiwyMzk2NywyMzk2OCwyMzk2OSwyMzk3MCwyMzk3MSwyMzk3MiwyMzk3MywyMzk3NCwyMzk3NSwyMzk3NiwyMzk3NywyMzk3OCwyMzk3OSwyMzk4MCwyMzk4MSwyMzk4MiwyMzk4MywyMzk4NCwyMzk4NSwyMzk4NiwyMzk4NywyMzk4OCwyMzk4OSwyMzk5MCwyMzk5MiwyMzk5'@; put 'MywyMzk5NCwyMzk5NSwyMzk5NiwyMzk5NywyMzk5OCwyMzk5OSwyNGUzLDI0MDAxLDI0MDAyLDI0MDAzLDI0MDA0LDI0MDA2LDI0MDA3LDI0MDA4LDI0MDA5LDI0MDEwLDI0MDExLDI0MDEyLDI0MDE0LDI0MDE1LDI0MDE2LDI0MDE3LDI0MDE4LDI0MDE5LDI0MDIwLDI0MDIxLDI0MDIyLDI0'@; put 'MDIzLDI0MDI0LDI0MDI1LDI0MDI2LDI0MDI4LDI0MDMxLDI0MDMyLDI0MDM1LDI0MDM2LDI0MDQyLDI0MDQ0LDI0MDQ1LDI0MDQ4LDI0MDUzLDI0MDU0LDI0MDU2LDI0MDU3LDI0MDU4LDI0MDU5LDI0MDYwLDI0MDYzLDI0MDY0LDI0MDY4LDI0MDcxLDI0MDczLDI0MDc0LDI0MDc1LDI0MDc3'@; put 'LDI0MDc4LDI0MDgyLDI0MDgzLDI0MDg3LDI0MDk0LDI0MDk1LDI0MDk2LDI0MDk3LDI0MDk4LDI0MDk5LDI0MTAwLDI0MTAxLDI0MTA0LDI0MTA1LDI0MTA2LDI0MTA3LDI0MTA4LDI0MTExLDI0MTEyLDI0MTE0LDI0MTE1LDI0MTE2LDI0MTE3LDI0MTE4LDI0MTIxLDI0MTIyLDI0MTI2LDI0'@; put 'MTI3LDI0MTI4LDI0MTI5LDI0MTMxLDI0MTM0LDI0MTM1LDI0MTM2LDI0MTM3LDI0MTM4LDI0MTM5LDI0MTQxLDI0MTQyLDI0MTQzLDI0MTQ0LDI0MTQ1LDI0MTQ2LDI0MTQ3LDI0MTUwLDI0MTUxLDI0MTUyLDI0MTUzLDI0MTU0LDI0MTU2LDI0MTU3LDI0MTU5LDI0MTYwLDI0MTYzLDI0MTY0'@; put 'LDI0MTY1LDI0MTY2LDI0MTY3LDI0MTY4LDI0MTY5LDI0MTcwLDI0MTcxLDI0MTcyLDI0MTczLDI0MTc0LDI0MTc1LDI0MTc2LDI0MTc3LDI0MTgxLDI0MTgzLDI0MTg1LDI0MTkwLDI0MTkzLDI0MTk0LDI0MTk1LDI0MTk3LDI0MjAwLDI0MjAxLDI0MjA0LDI0MjA1LDI0MjA2LDI0MjEwLDI0'@; put 'MjE2LDI0MjE5LDI0MjIxLDI0MjI1LDI0MjI2LDI0MjI3LDI0MjI4LDI0MjMyLDI0MjMzLDI0MjM0LDI0MjM1LDI0MjM2LDI0MjM4LDI0MjM5LDI0MjQwLDI0MjQxLDI0MjQyLDI0MjQ0LDI0MjUwLDI0MjUxLDI0MjUyLDI0MjUzLDI0MjU1LDI0MjU2LDI0MjU3LDI0MjU4LDI0MjU5LDI0MjYw'@; put 'LDI0MjYxLDI0MjYyLDI0MjYzLDI0MjY0LDI0MjY3LDI0MjY4LDI0MjY5LDI0MjcwLDI0MjcxLDI0MjcyLDI0Mjc2LDI0Mjc3LDI0Mjc5LDI0MjgwLDI0MjgxLDI0MjgyLDI0Mjg0LDI0Mjg1LDI0Mjg2LDI0Mjg3LDI0Mjg4LDI0Mjg5LDI0MjkwLDI0MjkxLDI0MjkyLDI0MjkzLDI0Mjk0LDI0'@; put 'Mjk1LDI0Mjk3LDI0Mjk5LDI0MzAwLDI0MzAxLDI0MzAyLDI0MzAzLDI0MzA0LDI0MzA1LDI0MzA2LDI0MzA3LDI0MzA5LDI0MzEyLDI0MzEzLDI0MzE1LDI0MzE2LDI0MzE3LDI0MzI1LDI0MzI2LDI0MzI3LDI0MzI5LDI0MzMyLDI0MzMzLDI0MzM0LDI0MzM2LDI0MzM4LDI0MzQwLDI0MzQy'@; put 'LDI0MzQ1LDI0MzQ2LDI0MzQ4LDI0MzQ5LDI0MzUwLDI0MzUzLDI0MzU0LDI0MzU1LDI0MzU2LDI0MzYwLDI0MzYzLDI0MzY0LDI0MzY2LDI0MzY4LDI0MzcwLDI0MzcxLDI0MzcyLDI0MzczLDI0Mzc0LDI0Mzc1LDI0Mzc2LDI0Mzc5LDI0MzgxLDI0MzgyLDI0MzgzLDI0Mzg1LDI0Mzg2LDI0'@; put 'Mzg3LDI0Mzg4LDI0Mzg5LDI0MzkwLDI0MzkxLDI0MzkyLDI0MzkzLDI0Mzk0LDI0Mzk1LDI0Mzk2LDI0Mzk3LDI0Mzk4LDI0Mzk5LDI0NDAxLDI0NDA0LDI0NDA5LDI0NDEwLDI0NDExLDI0NDEyLDI0NDE0LDI0NDE1LDI0NDE2LDI0NDE5LDI0NDIxLDI0NDIzLDI0NDI0LDI0NDI3LDI0NDMw'@; put 'LDI0NDMxLDI0NDM0LDI0NDM2LDI0NDM3LDI0NDM4LDI0NDQwLDI0NDQyLDI0NDQ1LDI0NDQ2LDI0NDQ3LDI0NDUxLDI0NDU0LDI0NDYxLDI0NDYyLDI0NDYzLDI0NDY1LDI0NDY3LDI0NDY4LDI0NDcwLDI0NDc0LDI0NDc1LDI0NDc3LDI0NDc4LDI0NDc5LDI0NDgwLDI0NDgyLDI0NDgzLDI0'@; put 'NDg0LDI0NDg1LDI0NDg2LDI0NDg3LDI0NDg5LDI0NDkxLDI0NDkyLDI0NDk1LDI0NDk2LDI0NDk3LDI0NDk4LDI0NDk5LDI0NTAwLDI0NTAyLDI0NTA0LDI0NTA1LDI0NTA2LDI0NTA3LDI0NTEwLDI0NTExLDI0NTEyLDI0NTEzLDI0NTE0LDI0NTE5LDI0NTIwLDI0NTIyLDI0NTIzLDI0NTI2'@; put 'LDI0NTMxLDI0NTMyLDI0NTMzLDI0NTM4LDI0NTM5LDI0NTQwLDI0NTQyLDI0NTQzLDI0NTQ2LDI0NTQ3LDI0NTQ5LDI0NTUwLDI0NTUyLDI0NTUzLDI0NTU2LDI0NTU5LDI0NTYwLDI0NTYyLDI0NTYzLDI0NTY0LDI0NTY2LDI0NTY3LDI0NTY5LDI0NTcwLDI0NTcyLDI0NTgzLDI0NTg0LDI0'@; put 'NTg1LDI0NTg3LDI0NTg4LDI0NTkyLDI0NTkzLDI0NTk1LDI0NTk5LDI0NjAwLDI0NjAyLDI0NjA2LDI0NjA3LDI0NjEwLDI0NjExLDI0NjEyLDI0NjIwLDI0NjIxLDI0NjIyLDI0NjI0LDI0NjI1LDI0NjI2LDI0NjI3LDI0NjI4LDI0NjMwLDI0NjMxLDI0NjMyLDI0NjMzLDI0NjM0LDI0NjM3'@; put 'LDI0NjM4LDI0NjQwLDI0NjQ0LDI0NjQ1LDI0NjQ2LDI0NjQ3LDI0NjQ4LDI0NjQ5LDI0NjUwLDI0NjUyLDI0NjU0LDI0NjU1LDI0NjU3LDI0NjU5LDI0NjYwLDI0NjYyLDI0NjYzLDI0NjY0LDI0NjY3LDI0NjY4LDI0NjcwLDI0NjcxLDI0NjcyLDI0NjczLDI0Njc3LDI0Njc4LDI0Njg2LDI0'@; put 'Njg5LDI0NjkwLDI0NjkyLDI0NjkzLDI0Njk1LDI0NzAyLDI0NzA0LDI0NzA1LDI0NzA2LDI0NzA5LDI0NzEwLDI0NzExLDI0NzEyLDI0NzE0LDI0NzE1LDI0NzE4LDI0NzE5LDI0NzIwLDI0NzIxLDI0NzIzLDI0NzI1LDI0NzI3LDI0NzI4LDI0NzI5LDI0NzMyLDI0NzM0LDI0NzM3LDI0NzM4'@; put 'LDI0NzQwLDI0NzQxLDI0NzQzLDI0NzQ1LDI0NzQ2LDI0NzUwLDI0NzUyLDI0NzU1LDI0NzU3LDI0NzU4LDI0NzU5LDI0NzYxLDI0NzYyLDI0NzY1LDI0NzY2LDI0NzY3LDI0NzY4LDI0NzY5LDI0NzcwLDI0NzcxLDI0NzcyLDI0Nzc1LDI0Nzc2LDI0Nzc3LDI0NzgwLDI0NzgxLDI0NzgyLDI0'@; put 'NzgzLDI0Nzg0LDI0Nzg2LDI0Nzg3LDI0Nzg4LDI0NzkwLDI0NzkxLDI0NzkzLDI0Nzk1LDI0Nzk4LDI0ODAxLDI0ODAyLDI0ODAzLDI0ODA0LDI0ODA1LDI0ODEwLDI0ODE3LDI0ODE4LDI0ODIxLDI0ODIzLDI0ODI0LDI0ODI3LDI0ODI4LDI0ODI5LDI0ODMwLDI0ODMxLDI0ODM0LDI0ODM1'@; put 'LDI0ODM2LDI0ODM3LDI0ODM5LDI0ODQyLDI0ODQzLDI0ODQ0LDI0ODQ4LDI0ODQ5LDI0ODUwLDI0ODUxLDI0ODUyLDI0ODU0LDI0ODU1LDI0ODU2LDI0ODU3LDI0ODU5LDI0ODYwLDI0ODYxLDI0ODYyLDI0ODY1LDI0ODY2LDI0ODY5LDI0ODcyLDI0ODczLDI0ODc0LDI0ODc2LDI0ODc3LDI0'@; put 'ODc4LDI0ODc5LDI0ODgwLDI0ODgxLDI0ODgyLDI0ODgzLDI0ODg0LDI0ODg1LDI0ODg2LDI0ODg3LDI0ODg4LDI0ODg5LDI0ODkwLDI0ODkxLDI0ODkyLDI0ODkzLDI0ODk0LDI0ODk2LDI0ODk3LDI0ODk4LDI0ODk5LDI0OTAwLDI0OTAxLDI0OTAyLDI0OTAzLDI0OTA1LDI0OTA3LDI0OTA5'@; put 'LDI0OTExLDI0OTEyLDI0OTE0LDI0OTE1LDI0OTE2LDI0OTE4LDI0OTE5LDI0OTIwLDI0OTIxLDI0OTIyLDI0OTIzLDI0OTI0LDI0OTI2LDI0OTI3LDI0OTI4LDI0OTI5LDI0OTMxLDI0OTMyLDI0OTMzLDI0OTM0LDI0OTM3LDI0OTM4LDI0OTM5LDI0OTQwLDI0OTQxLDI0OTQyLDI0OTQzLDI0'@; put 'OTQ1LDI0OTQ2LDI0OTQ3LDI0OTQ4LDI0OTUwLDI0OTUyLDI0OTUzLDI0OTU0LDI0OTU1LDI0OTU2LDI0OTU3LDI0OTU4LDI0OTU5LDI0OTYwLDI0OTYxLDI0OTYyLDI0OTYzLDI0OTY0LDI0OTY1LDI0OTY2LDI0OTY3LDI0OTY4LDI0OTY5LDI0OTcwLDI0OTcyLDI0OTczLDI0OTc1LDI0OTc2'@; put 'LDI0OTc3LDI0OTc4LDI0OTc5LDI0OTgxLDI0OTgyLDI0OTgzLDI0OTg0LDI0OTg1LDI0OTg2LDI0OTg3LDI0OTg4LDI0OTkwLDI0OTkxLDI0OTkyLDI0OTkzLDI0OTk0LDI0OTk1LDI0OTk2LDI0OTk3LDI0OTk4LDI1MDAyLDI1MDAzLDI1MDA1LDI1MDA2LDI1MDA3LDI1MDA4LDI1MDA5LDI1'@; put 'MDEwLDI1MDExLDI1MDEyLDI1MDEzLDI1MDE0LDI1MDE2LDI1MDE3LDI1MDE4LDI1MDE5LDI1MDIwLDI1MDIxLDI1MDIzLDI1MDI0LDI1MDI1LDI1MDI3LDI1MDI4LDI1MDI5LDI1MDMwLDI1MDMxLDI1MDMzLDI1MDM2LDI1MDM3LDI1MDM4LDI1MDM5LDI1MDQwLDI1MDQzLDI1MDQ1LDI1MDQ2'@; put 'LDI1MDQ3LDI1MDQ4LDI1MDQ5LDI1MDUwLDI1MDUxLDI1MDUyLDI1MDUzLDI1MDU0LDI1MDU1LDI1MDU2LDI1MDU3LDI1MDU4LDI1MDU5LDI1MDYwLDI1MDYxLDI1MDYzLDI1MDY0LDI1MDY1LDI1MDY2LDI1MDY3LDI1MDY4LDI1MDY5LDI1MDcwLDI1MDcxLDI1MDcyLDI1MDczLDI1MDc0LDI1'@; put 'MDc1LDI1MDc2LDI1MDc4LDI1MDc5LDI1MDgwLDI1MDgxLDI1MDgyLDI1MDgzLDI1MDg0LDI1MDg1LDI1MDg2LDI1MDg4LDI1MDg5LDI1MDkwLDI1MDkxLDI1MDkyLDI1MDkzLDI1MDk1LDI1MDk3LDI1MTA3LDI1MTA4LDI1MTEzLDI1MTE2LDI1MTE3LDI1MTE4LDI1MTIwLDI1MTIzLDI1MTI2'@; put 'LDI1MTI3LDI1MTI4LDI1MTI5LDI1MTMxLDI1MTMzLDI1MTM1LDI1MTM2LDI1MTM3LDI1MTM4LDI1MTQxLDI1MTQyLDI1MTQ0LDI1MTQ1LDI1MTQ2LDI1MTQ3LDI1MTQ4LDI1MTU0LDI1MTU2LDI1MTU3LDI1MTU4LDI1MTYyLDI1MTY3LDI1MTY4LDI1MTczLDI1MTc0LDI1MTc1LDI1MTc3LDI1'@; put 'MTc4LDI1MTgwLDI1MTgxLDI1MTgyLDI1MTgzLDI1MTg0LDI1MTg1LDI1MTg2LDI1MTg4LDI1MTg5LDI1MTkyLDI1MjAxLDI1MjAyLDI1MjA0LDI1MjA1LDI1MjA3LDI1MjA4LDI1MjEwLDI1MjExLDI1MjEzLDI1MjE3LDI1MjE4LDI1MjE5LDI1MjIxLDI1MjIyLDI1MjIzLDI1MjI0LDI1MjI3'@; put 'LDI1MjI4LDI1MjI5LDI1MjMwLDI1MjMxLDI1MjMyLDI1MjM2LDI1MjQxLDI1MjQ0LDI1MjQ1LDI1MjQ2LDI1MjUxLDI1MjU0LDI1MjU1LDI1MjU3LDI1MjU4LDI1MjYxLDI1MjYyLDI1MjYzLDI1MjY0LDI1MjY2LDI1MjY3LDI1MjY4LDI1MjcwLDI1MjcxLDI1MjcyLDI1Mjc0LDI1Mjc4LDI1'@; put 'MjgwLDI1MjgxLDI1MjgzLDI1MjkxLDI1Mjk1LDI1Mjk3LDI1MzAxLDI1MzA5LDI1MzEwLDI1MzEyLDI1MzEzLDI1MzE2LDI1MzIyLDI1MzIzLDI1MzI4LDI1MzMwLDI1MzMzLDI1MzM2LDI1MzM3LDI1MzM4LDI1MzM5LDI1MzQ0LDI1MzQ3LDI1MzQ4LDI1MzQ5LDI1MzUwLDI1MzU0LDI1MzU1'@; put 'LDI1MzU2LDI1MzU3LDI1MzU5LDI1MzYwLDI1MzYyLDI1MzYzLDI1MzY0LDI1MzY1LDI1MzY3LDI1MzY4LDI1MzY5LDI1MzcyLDI1MzgyLDI1MzgzLDI1Mzg1LDI1Mzg4LDI1Mzg5LDI1MzkwLDI1MzkyLDI1MzkzLDI1Mzk1LDI1Mzk2LDI1Mzk3LDI1Mzk4LDI1Mzk5LDI1NDAwLDI1NDAzLDI1'@; put 'NDA0LDI1NDA2LDI1NDA3LDI1NDA4LDI1NDA5LDI1NDEyLDI1NDE1LDI1NDE2LDI1NDE4LDI1NDI1LDI1NDI2LDI1NDI3LDI1NDI4LDI1NDMwLDI1NDMxLDI1NDMyLDI1NDMzLDI1NDM0LDI1NDM1LDI1NDM2LDI1NDM3LDI1NDQwLDI1NDQ0LDI1NDQ1LDI1NDQ2LDI1NDQ4LDI1NDUwLDI1NDUx'@; put 'LDI1NDUyLDI1NDU1LDI1NDU2LDI1NDU4LDI1NDU5LDI1NDYwLDI1NDYxLDI1NDY0LDI1NDY1LDI1NDY4LDI1NDY5LDI1NDcwLDI1NDcxLDI1NDczLDI1NDc1LDI1NDc2LDI1NDc3LDI1NDc4LDI1NDgzLDI1NDg1LDI1NDg5LDI1NDkxLDI1NDkyLDI1NDkzLDI1NDk1LDI1NDk3LDI1NDk4LDI1'@; put 'NDk5LDI1NTAwLDI1NTAxLDI1NTAyLDI1NTAzLDI1NTA1LDI1NTA4LDI1NTEwLDI1NTE1LDI1NTE5LDI1NTIxLDI1NTIyLDI1NTI1LDI1NTI2LDI1NTI5LDI1NTMxLDI1NTMzLDI1NTM1LDI1NTM2LDI1NTM3LDI1NTM4LDI1NTM5LDI1NTQxLDI1NTQzLDI1NTQ0LDI1NTQ2LDI1NTQ3LDI1NTQ4'@; put 'LDI1NTUzLDI1NTU1LDI1NTU2LDI1NTU3LDI1NTU5LDI1NTYwLDI1NTYxLDI1NTYyLDI1NTYzLDI1NTY0LDI1NTY1LDI1NTY3LDI1NTcwLDI1NTcyLDI1NTczLDI1NTc0LDI1NTc1LDI1NTc2LDI1NTc5LDI1NTgwLDI1NTgyLDI1NTgzLDI1NTg0LDI1NTg1LDI1NTg3LDI1NTg5LDI1NTkxLDI1'@; put 'NTkzLDI1NTk0LDI1NTk1LDI1NTk2LDI1NTk4LDI1NjAzLDI1NjA0LDI1NjA2LDI1NjA3LDI1NjA4LDI1NjA5LDI1NjEwLDI1NjEzLDI1NjE0LDI1NjE3LDI1NjE4LDI1NjIxLDI1NjIyLDI1NjIzLDI1NjI0LDI1NjI1LDI1NjI2LDI1NjI5LDI1NjMxLDI1NjM0LDI1NjM1LDI1NjM2LDI1NjM3'@; put 'LDI1NjM5LDI1NjQwLDI1NjQxLDI1NjQzLDI1NjQ2LDI1NjQ3LDI1NjQ4LDI1NjQ5LDI1NjUwLDI1NjUxLDI1NjUzLDI1NjU0LDI1NjU1LDI1NjU2LDI1NjU3LDI1NjU5LDI1NjYwLDI1NjYyLDI1NjY0LDI1NjY2LDI1NjY3LDI1NjczLDI1Njc1LDI1Njc2LDI1Njc3LDI1Njc4LDI1Njc5LDI1'@; put 'NjgwLDI1NjgxLDI1NjgzLDI1Njg1LDI1Njg2LDI1Njg3LDI1Njg5LDI1NjkwLDI1NjkxLDI1NjkyLDI1NjkzLDI1Njk1LDI1Njk2LDI1Njk3LDI1Njk4LDI1Njk5LDI1NzAwLDI1NzAxLDI1NzAyLDI1NzA0LDI1NzA2LDI1NzA3LDI1NzA4LDI1NzEwLDI1NzExLDI1NzEyLDI1NzEzLDI1NzE0'@; put 'LDI1NzE1LDI1NzE2LDI1NzE3LDI1NzE4LDI1NzE5LDI1NzIzLDI1NzI0LDI1NzI1LDI1NzI2LDI1NzI3LDI1NzI4LDI1NzI5LDI1NzMxLDI1NzM0LDI1NzM2LDI1NzM3LDI1NzM4LDI1NzM5LDI1NzQwLDI1NzQxLDI1NzQyLDI1NzQzLDI1NzQ0LDI1NzQ3LDI1NzQ4LDI1NzUxLDI1NzUyLDI1'@; put 'NzU0LDI1NzU1LDI1NzU2LDI1NzU3LDI1NzU5LDI1NzYwLDI1NzYxLDI1NzYyLDI1NzYzLDI1NzY1LDI1NzY2LDI1NzY3LDI1NzY4LDI1NzcwLDI1NzcxLDI1Nzc1LDI1Nzc3LDI1Nzc4LDI1Nzc5LDI1NzgwLDI1NzgyLDI1Nzg1LDI1Nzg3LDI1Nzg5LDI1NzkwLDI1NzkxLDI1NzkzLDI1Nzk1'@; put 'LDI1Nzk2LDI1Nzk4LDI1Nzk5LDI1ODAwLDI1ODAxLDI1ODAyLDI1ODAzLDI1ODA0LDI1ODA3LDI1ODA5LDI1ODExLDI1ODEyLDI1ODEzLDI1ODE0LDI1ODE3LDI1ODE4LDI1ODE5LDI1ODIwLDI1ODIxLDI1ODIzLDI1ODI0LDI1ODI1LDI1ODI3LDI1ODI5LDI1ODMxLDI1ODMyLDI1ODMzLDI1'@; put 'ODM0LDI1ODM1LDI1ODM2LDI1ODM3LDI1ODM4LDI1ODM5LDI1ODQwLDI1ODQxLDI1ODQyLDI1ODQzLDI1ODQ0LDI1ODQ1LDI1ODQ2LDI1ODQ3LDI1ODQ4LDI1ODQ5LDI1ODUwLDI1ODUxLDI1ODUyLDI1ODUzLDI1ODU0LDI1ODU1LDI1ODU3LDI1ODU4LDI1ODU5LDI1ODYwLDI1ODYxLDI1ODYy'@; put 'LDI1ODYzLDI1ODY0LDI1ODY2LDI1ODY3LDI1ODY4LDI1ODY5LDI1ODcwLDI1ODcxLDI1ODcyLDI1ODczLDI1ODc1LDI1ODc2LDI1ODc3LDI1ODc4LDI1ODc5LDI1ODgxLDI1ODgyLDI1ODgzLDI1ODg0LDI1ODg1LDI1ODg2LDI1ODg3LDI1ODg4LDI1ODg5LDI1ODkwLDI1ODkxLDI1ODkyLDI1'@; put 'ODk0LDI1ODk1LDI1ODk2LDI1ODk3LDI1ODk4LDI1OTAwLDI1OTAxLDI1OTA0LDI1OTA1LDI1OTA2LDI1OTA3LDI1OTExLDI1OTE0LDI1OTE2LDI1OTE3LDI1OTIwLDI1OTIxLDI1OTIyLDI1OTIzLDI1OTI0LDI1OTI2LDI1OTI3LDI1OTMwLDI1OTMxLDI1OTMzLDI1OTM0LDI1OTM2LDI1OTM4'@; put 'LDI1OTM5LDI1OTQwLDI1OTQzLDI1OTQ0LDI1OTQ2LDI1OTQ4LDI1OTUxLDI1OTUyLDI1OTUzLDI1OTU2LDI1OTU3LDI1OTU5LDI1OTYwLDI1OTYxLDI1OTYyLDI1OTY1LDI1OTY2LDI1OTY3LDI1OTY5LDI1OTcxLDI1OTczLDI1OTc0LDI1OTc2LDI1OTc3LDI1OTc4LDI1OTc5LDI1OTgwLDI1'@; put 'OTgxLDI1OTgyLDI1OTgzLDI1OTg0LDI1OTg1LDI1OTg2LDI1OTg3LDI1OTg4LDI1OTg5LDI1OTkwLDI1OTkyLDI1OTkzLDI1OTk0LDI1OTk3LDI1OTk4LDI1OTk5LDI2MDAyLDI2MDA0LDI2MDA1LDI2MDA2LDI2MDA4LDI2MDEwLDI2MDEzLDI2MDE0LDI2MDE2LDI2MDE4LDI2MDE5LDI2MDIy'@; put 'LDI2MDI0LDI2MDI2LDI2MDI4LDI2MDMwLDI2MDMzLDI2MDM0LDI2MDM1LDI2MDM2LDI2MDM3LDI2MDM4LDI2MDM5LDI2MDQwLDI2MDQyLDI2MDQzLDI2MDQ2LDI2MDQ3LDI2MDQ4LDI2MDUwLDI2MDU1LDI2MDU2LDI2MDU3LDI2MDU4LDI2MDYxLDI2MDY0LDI2MDY1LDI2MDY3LDI2MDY4LDI2'@; put 'MDY5LDI2MDcyLDI2MDczLDI2MDc0LDI2MDc1LDI2MDc2LDI2MDc3LDI2MDc4LDI2MDc5LDI2MDgxLDI2MDgzLDI2MDg0LDI2MDkwLDI2MDkxLDI2MDk4LDI2MDk5LDI2MTAwLDI2MTAxLDI2MTA0LDI2MTA1LDI2MTA3LDI2MTA4LDI2MTA5LDI2MTEwLDI2MTExLDI2MTEzLDI2MTE2LDI2MTE3'@; put 'LDI2MTE5LDI2MTIwLDI2MTIxLDI2MTIzLDI2MTI1LDI2MTI4LDI2MTI5LDI2MTMwLDI2MTM0LDI2MTM1LDI2MTM2LDI2MTM4LDI2MTM5LDI2MTQwLDI2MTQyLDI2MTQ1LDI2MTQ2LDI2MTQ3LDI2MTQ4LDI2MTUwLDI2MTUzLDI2MTU0LDI2MTU1LDI2MTU2LDI2MTU4LDI2MTYwLDI2MTYyLDI2'@; put 'MTYzLDI2MTY3LDI2MTY4LDI2MTY5LDI2MTcwLDI2MTcxLDI2MTczLDI2MTc1LDI2MTc2LDI2MTc4LDI2MTgwLDI2MTgxLDI2MTgyLDI2MTgzLDI2MTg0LDI2MTg1LDI2MTg2LDI2MTg5LDI2MTkwLDI2MTkyLDI2MTkzLDI2MjAwLDI2MjAxLDI2MjAzLDI2MjA0LDI2MjA1LDI2MjA2LDI2MjA4'@; put 'LDI2MjEwLDI2MjExLDI2MjEzLDI2MjE1LDI2MjE3LDI2MjE4LDI2MjE5LDI2MjIwLDI2MjIxLDI2MjI1LDI2MjI2LDI2MjI3LDI2MjI5LDI2MjMyLDI2MjMzLDI2MjM1LDI2MjM2LDI2MjM3LDI2MjM5LDI2MjQwLDI2MjQxLDI2MjQzLDI2MjQ1LDI2MjQ2LDI2MjQ4LDI2MjQ5LDI2MjUwLDI2'@; put 'MjUxLDI2MjUzLDI2MjU0LDI2MjU1LDI2MjU2LDI2MjU4LDI2MjU5LDI2MjYwLDI2MjYxLDI2MjY0LDI2MjY1LDI2MjY2LDI2MjY3LDI2MjY4LDI2MjcwLDI2MjcxLDI2MjcyLDI2MjczLDI2Mjc0LDI2Mjc1LDI2Mjc2LDI2Mjc3LDI2Mjc4LDI2MjgxLDI2MjgyLDI2MjgzLDI2Mjg0LDI2Mjg1'@; put 'LDI2Mjg3LDI2Mjg4LDI2Mjg5LDI2MjkwLDI2MjkxLDI2MjkzLDI2Mjk0LDI2Mjk1LDI2Mjk2LDI2Mjk4LDI2Mjk5LDI2MzAwLDI2MzAxLDI2MzAzLDI2MzA0LDI2MzA1LDI2MzA2LDI2MzA3LDI2MzA4LDI2MzA5LDI2MzEwLDI2MzExLDI2MzEyLDI2MzEzLDI2MzE0LDI2MzE1LDI2MzE2LDI2'@; put 'MzE3LDI2MzE4LDI2MzE5LDI2MzIwLDI2MzIxLDI2MzIyLDI2MzIzLDI2MzI0LDI2MzI1LDI2MzI2LDI2MzI3LDI2MzI4LDI2MzMwLDI2MzM0LDI2MzM1LDI2MzM2LDI2MzM3LDI2MzM4LDI2MzM5LDI2MzQwLDI2MzQxLDI2MzQzLDI2MzQ0LDI2MzQ2LDI2MzQ3LDI2MzQ4LDI2MzQ5LDI2MzUw'@; put 'LDI2MzUxLDI2MzUzLDI2MzU3LDI2MzU4LDI2MzYwLDI2MzYyLDI2MzYzLDI2MzY1LDI2MzY5LDI2MzcwLDI2MzcxLDI2MzcyLDI2MzczLDI2Mzc0LDI2Mzc1LDI2MzgwLDI2MzgyLDI2MzgzLDI2Mzg1LDI2Mzg2LDI2Mzg3LDI2MzkwLDI2MzkyLDI2MzkzLDI2Mzk0LDI2Mzk2LDI2Mzk4LDI2'@; put 'NDAwLDI2NDAxLDI2NDAyLDI2NDAzLDI2NDA0LDI2NDA1LDI2NDA3LDI2NDA5LDI2NDE0LDI2NDE2LDI2NDE4LDI2NDE5LDI2NDIyLDI2NDIzLDI2NDI0LDI2NDI1LDI2NDI3LDI2NDI4LDI2NDMwLDI2NDMxLDI2NDMzLDI2NDM2LDI2NDM3LDI2NDM5LDI2NDQyLDI2NDQzLDI2NDQ1LDI2NDUw'@; put 'LDI2NDUyLDI2NDUzLDI2NDU1LDI2NDU2LDI2NDU3LDI2NDU4LDI2NDU5LDI2NDYxLDI2NDY2LDI2NDY3LDI2NDY4LDI2NDcwLDI2NDcxLDI2NDc1LDI2NDc2LDI2NDc4LDI2NDgxLDI2NDg0LDI2NDg2LDI2NDg4LDI2NDg5LDI2NDkwLDI2NDkxLDI2NDkzLDI2NDk2LDI2NDk4LDI2NDk5LDI2'@; put 'NTAxLDI2NTAyLDI2NTA0LDI2NTA2LDI2NTA4LDI2NTA5LDI2NTEwLDI2NTExLDI2NTEzLDI2NTE0LDI2NTE1LDI2NTE2LDI2NTE4LDI2NTIxLDI2NTIzLDI2NTI3LDI2NTI4LDI2NTI5LDI2NTMyLDI2NTM0LDI2NTM3LDI2NTQwLDI2NTQyLDI2NTQ1LDI2NTQ2LDI2NTQ4LDI2NTUzLDI2NTU0'@; put 'LDI2NTU1LDI2NTU2LDI2NTU3LDI2NTU4LDI2NTU5LDI2NTYwLDI2NTYyLDI2NTY1LDI2NTY2LDI2NTY3LDI2NTY4LDI2NTY5LDI2NTcwLDI2NTcxLDI2NTcyLDI2NTczLDI2NTc0LDI2NTgxLDI2NTgyLDI2NTgzLDI2NTg3LDI2NTkxLDI2NTkzLDI2NTk1LDI2NTk2LDI2NTk4LDI2NTk5LDI2'@; put 'NjAwLDI2NjAyLDI2NjAzLDI2NjA1LDI2NjA2LDI2NjEwLDI2NjEzLDI2NjE0LDI2NjE1LDI2NjE2LDI2NjE3LDI2NjE4LDI2NjE5LDI2NjIwLDI2NjIyLDI2NjI1LDI2NjI2LDI2NjI3LDI2NjI4LDI2NjMwLDI2NjM3LDI2NjQwLDI2NjQyLDI2NjQ0LDI2NjQ1LDI2NjQ4LDI2NjQ5LDI2NjUw'@; put 'LDI2NjUxLDI2NjUyLDI2NjU0LDI2NjU1LDI2NjU2LDI2NjU4LDI2NjU5LDI2NjYwLDI2NjYxLDI2NjYyLDI2NjYzLDI2NjY0LDI2NjY3LDI2NjY4LDI2NjY5LDI2NjcwLDI2NjcxLDI2NjcyLDI2NjczLDI2Njc2LDI2Njc3LDI2Njc4LDI2NjgyLDI2NjgzLDI2Njg3LDI2Njk1LDI2Njk5LDI2'@; put 'NzAxLDI2NzAzLDI2NzA2LDI2NzEwLDI2NzExLDI2NzEyLDI2NzEzLDI2NzE0LDI2NzE1LDI2NzE2LDI2NzE3LDI2NzE4LDI2NzE5LDI2NzMwLDI2NzMyLDI2NzMzLDI2NzM0LDI2NzM1LDI2NzM2LDI2NzM3LDI2NzM4LDI2NzM5LDI2NzQxLDI2NzQ0LDI2NzQ1LDI2NzQ2LDI2NzQ3LDI2NzQ4'@; put 'LDI2NzQ5LDI2NzUwLDI2NzUxLDI2NzUyLDI2NzU0LDI2NzU2LDI2NzU5LDI2NzYwLDI2NzYxLDI2NzYyLDI2NzYzLDI2NzY0LDI2NzY1LDI2NzY2LDI2NzY4LDI2NzY5LDI2NzcwLDI2NzcyLDI2NzczLDI2Nzc0LDI2Nzc2LDI2Nzc3LDI2Nzc4LDI2Nzc5LDI2NzgwLDI2NzgxLDI2NzgyLDI2'@; put 'NzgzLDI2Nzg0LDI2Nzg1LDI2Nzg3LDI2Nzg4LDI2Nzg5LDI2NzkzLDI2Nzk0LDI2Nzk1LDI2Nzk2LDI2Nzk4LDI2ODAxLDI2ODAyLDI2ODA0LDI2ODA2LDI2ODA3LDI2ODA4LDI2ODA5LDI2ODEwLDI2ODExLDI2ODEyLDI2ODEzLDI2ODE0LDI2ODE1LDI2ODE3LDI2ODE5LDI2ODIwLDI2ODIx'@; put 'LDI2ODIyLDI2ODIzLDI2ODI0LDI2ODI2LDI2ODI4LDI2ODMwLDI2ODMxLDI2ODMyLDI2ODMzLDI2ODM1LDI2ODM2LDI2ODM4LDI2ODM5LDI2ODQxLDI2ODQzLDI2ODQ0LDI2ODQ1LDI2ODQ2LDI2ODQ3LDI2ODQ5LDI2ODUwLDI2ODUyLDI2ODUzLDI2ODU0LDI2ODU1LDI2ODU2LDI2ODU3LDI2'@; put 'ODU4LDI2ODU5LDI2ODYwLDI2ODYxLDI2ODYzLDI2ODY2LDI2ODY3LDI2ODY4LDI2ODcwLDI2ODcxLDI2ODcyLDI2ODc1LDI2ODc3LDI2ODc4LDI2ODc5LDI2ODgwLDI2ODgyLDI2ODgzLDI2ODg0LDI2ODg2LDI2ODg3LDI2ODg4LDI2ODg5LDI2ODkwLDI2ODkyLDI2ODk1LDI2ODk3LDI2ODk5'@; put 'LDI2OTAwLDI2OTAxLDI2OTAyLDI2OTAzLDI2OTA0LDI2OTA1LDI2OTA2LDI2OTA3LDI2OTA4LDI2OTA5LDI2OTEwLDI2OTEzLDI2OTE0LDI2OTE1LDI2OTE3LDI2OTE4LDI2OTE5LDI2OTIwLDI2OTIxLDI2OTIyLDI2OTIzLDI2OTI0LDI2OTI2LDI2OTI3LDI2OTI5LDI2OTMwLDI2OTMxLDI2'@; put 'OTMzLDI2OTM0LDI2OTM1LDI2OTM2LDI2OTM4LDI2OTM5LDI2OTQwLDI2OTQyLDI2OTQ0LDI2OTQ1LDI2OTQ3LDI2OTQ4LDI2OTQ5LDI2OTUwLDI2OTUxLDI2OTUyLDI2OTUzLDI2OTU0LDI2OTU1LDI2OTU2LDI2OTU3LDI2OTU4LDI2OTU5LDI2OTYwLDI2OTYxLDI2OTYyLDI2OTYzLDI2OTY1'@; put 'LDI2OTY2LDI2OTY4LDI2OTY5LDI2OTcxLDI2OTcyLDI2OTc1LDI2OTc3LDI2OTc4LDI2OTgwLDI2OTgxLDI2OTgzLDI2OTg0LDI2OTg1LDI2OTg2LDI2OTg4LDI2OTg5LDI2OTkxLDI2OTkyLDI2OTk0LDI2OTk1LDI2OTk2LDI2OTk3LDI2OTk4LDI3MDAyLDI3MDAzLDI3MDA1LDI3MDA2LDI3'@; put 'MDA3LDI3MDA5LDI3MDExLDI3MDEzLDI3MDE4LDI3MDE5LDI3MDIwLDI3MDIyLDI3MDIzLDI3MDI0LDI3MDI1LDI3MDI2LDI3MDI3LDI3MDMwLDI3MDMxLDI3MDMzLDI3MDM0LDI3MDM3LDI3MDM4LDI3MDM5LDI3MDQwLDI3MDQxLDI3MDQyLDI3MDQzLDI3MDQ0LDI3MDQ1LDI3MDQ2LDI3MDQ5'@; put 'LDI3MDUwLDI3MDUyLDI3MDU0LDI3MDU1LDI3MDU2LDI3MDU4LDI3MDU5LDI3MDYxLDI3MDYyLDI3MDY0LDI3MDY1LDI3MDY2LDI3MDY4LDI3MDY5LDI3MDcwLDI3MDcxLDI3MDcyLDI3MDc0LDI3MDc1LDI3MDc2LDI3MDc3LDI3MDc4LDI3MDc5LDI3MDgwLDI3MDgxLDI3MDgzLDI3MDg1LDI3'@; put 'MDg3LDI3MDg5LDI3MDkwLDI3MDkxLDI3MDkzLDI3MDk0LDI3MDk1LDI3MDk2LDI3MDk3LDI3MDk4LDI3MTAwLDI3MTAxLDI3MTAyLDI3MTA1LDI3MTA2LDI3MTA3LDI3MTA4LDI3MTA5LDI3MTEwLDI3MTExLDI3MTEyLDI3MTEzLDI3MTE0LDI3MTE1LDI3MTE2LDI3MTE4LDI3MTE5LDI3MTIw'@; put 'LDI3MTIxLDI3MTIzLDI3MTI0LDI3MTI1LDI3MTI2LDI3MTI3LDI3MTI4LDI3MTI5LDI3MTMwLDI3MTMxLDI3MTMyLDI3MTM0LDI3MTM2LDI3MTM3LDI3MTM4LDI3MTM5LDI3MTQwLDI3MTQxLDI3MTQyLDI3MTQzLDI3MTQ0LDI3MTQ1LDI3MTQ3LDI3MTQ4LDI3MTQ5LDI3MTUwLDI3MTUxLDI3'@; put 'MTUyLDI3MTUzLDI3MTU0LDI3MTU1LDI3MTU2LDI3MTU3LDI3MTU4LDI3MTYxLDI3MTYyLDI3MTYzLDI3MTY0LDI3MTY1LDI3MTY2LDI3MTY4LDI3MTcwLDI3MTcxLDI3MTcyLDI3MTczLDI3MTc0LDI3MTc1LDI3MTc3LDI3MTc5LDI3MTgwLDI3MTgxLDI3MTgyLDI3MTg0LDI3MTg2LDI3MTg3'@; put 'LDI3MTg4LDI3MTkwLDI3MTkxLDI3MTkyLDI3MTkzLDI3MTk0LDI3MTk1LDI3MTk2LDI3MTk5LDI3MjAwLDI3MjAxLDI3MjAyLDI3MjAzLDI3MjA1LDI3MjA2LDI3MjA4LDI3MjA5LDI3MjEwLDI3MjExLDI3MjEyLDI3MjEzLDI3MjE0LDI3MjE1LDI3MjE3LDI3MjE4LDI3MjE5LDI3MjIwLDI3'@; put 'MjIxLDI3MjIyLDI3MjIzLDI3MjI2LDI3MjI4LDI3MjI5LDI3MjMwLDI3MjMxLDI3MjMyLDI3MjM0LDI3MjM1LDI3MjM2LDI3MjM4LDI3MjM5LDI3MjQwLDI3MjQxLDI3MjQyLDI3MjQzLDI3MjQ0LDI3MjQ1LDI3MjQ2LDI3MjQ3LDI3MjQ4LDI3MjUwLDI3MjUxLDI3MjUyLDI3MjUzLDI3MjU0'@; put 'LDI3MjU1LDI3MjU2LDI3MjU4LDI3MjU5LDI3MjYxLDI3MjYyLDI3MjYzLDI3MjY1LDI3MjY2LDI3MjY3LDI3MjY5LDI3MjcwLDI3MjcxLDI3MjcyLDI3MjczLDI3Mjc0LDI3Mjc1LDI3Mjc2LDI3Mjc3LDI3Mjc5LDI3MjgyLDI3MjgzLDI3Mjg0LDI3Mjg1LDI3Mjg2LDI3Mjg4LDI3Mjg5LDI3'@; put 'MjkwLDI3MjkxLDI3MjkyLDI3MjkzLDI3Mjk0LDI3Mjk1LDI3Mjk3LDI3Mjk4LDI3Mjk5LDI3MzAwLDI3MzAxLDI3MzAyLDI3MzAzLDI3MzA0LDI3MzA2LDI3MzA5LDI3MzEwLDI3MzExLDI3MzEyLDI3MzEzLDI3MzE0LDI3MzE1LDI3MzE2LDI3MzE3LDI3MzE4LDI3MzE5LDI3MzIwLDI3MzIx'@; put 'LDI3MzIyLDI3MzIzLDI3MzI0LDI3MzI1LDI3MzI2LDI3MzI3LDI3MzI4LDI3MzI5LDI3MzMwLDI3MzMxLDI3MzMyLDI3MzMzLDI3MzM0LDI3MzM1LDI3MzM2LDI3MzM3LDI3MzM4LDI3MzM5LDI3MzQwLDI3MzQxLDI3MzQyLDI3MzQzLDI3MzQ0LDI3MzQ1LDI3MzQ2LDI3MzQ3LDI3MzQ4LDI3'@; put 'MzQ5LDI3MzUwLDI3MzUxLDI3MzUyLDI3MzUzLDI3MzU0LDI3MzU1LDI3MzU2LDI3MzU3LDI3MzU4LDI3MzU5LDI3MzYwLDI3MzYxLDI3MzYyLDI3MzYzLDI3MzY0LDI3MzY1LDI3MzY2LDI3MzY3LDI3MzY4LDI3MzY5LDI3MzcwLDI3MzcxLDI3MzcyLDI3MzczLDI3Mzc0LDI3Mzc1LDI3Mzc2'@; put 'LDI3Mzc3LDI3Mzc4LDI3Mzc5LDI3MzgwLDI3MzgxLDI3MzgyLDI3MzgzLDI3Mzg0LDI3Mzg1LDI3Mzg2LDI3Mzg3LDI3Mzg4LDI3Mzg5LDI3MzkwLDI3MzkxLDI3MzkyLDI3MzkzLDI3Mzk0LDI3Mzk1LDI3Mzk2LDI3Mzk3LDI3Mzk4LDI3Mzk5LDI3NDAwLDI3NDAxLDI3NDAyLDI3NDAzLDI3'@; put 'NDA0LDI3NDA1LDI3NDA2LDI3NDA3LDI3NDA4LDI3NDA5LDI3NDEwLDI3NDExLDI3NDEyLDI3NDEzLDI3NDE0LDI3NDE1LDI3NDE2LDI3NDE3LDI3NDE4LDI3NDE5LDI3NDIwLDI3NDIxLDI3NDIyLDI3NDIzLDI3NDI5LDI3NDMwLDI3NDMyLDI3NDMzLDI3NDM0LDI3NDM1LDI3NDM2LDI3NDM3'@; put 'LDI3NDM4LDI3NDM5LDI3NDQwLDI3NDQxLDI3NDQzLDI3NDQ0LDI3NDQ1LDI3NDQ2LDI3NDQ4LDI3NDUxLDI3NDUyLDI3NDUzLDI3NDU1LDI3NDU2LDI3NDU3LDI3NDU4LDI3NDYwLDI3NDYxLDI3NDY0LDI3NDY2LDI3NDY3LDI3NDY5LDI3NDcwLDI3NDcxLDI3NDcyLDI3NDczLDI3NDc0LDI3'@; put 'NDc1LDI3NDc2LDI3NDc3LDI3NDc4LDI3NDc5LDI3NDgwLDI3NDgyLDI3NDgzLDI3NDg0LDI3NDg1LDI3NDg2LDI3NDg3LDI3NDg4LDI3NDg5LDI3NDk2LDI3NDk3LDI3NDk5LDI3NTAwLDI3NTAxLDI3NTAyLDI3NTAzLDI3NTA0LDI3NTA1LDI3NTA2LDI3NTA3LDI3NTA4LDI3NTA5LDI3NTEw'@; put 'LDI3NTExLDI3NTEyLDI3NTE0LDI3NTE3LDI3NTE4LDI3NTE5LDI3NTIwLDI3NTI1LDI3NTI4LDI3NTMyLDI3NTM0LDI3NTM1LDI3NTM2LDI3NTM3LDI3NTQwLDI3NTQxLDI3NTQzLDI3NTQ0LDI3NTQ1LDI3NTQ4LDI3NTQ5LDI3NTUwLDI3NTUxLDI3NTUyLDI3NTU0LDI3NTU1LDI3NTU2LDI3'@; put 'NTU3LDI3NTU4LDI3NTU5LDI3NTYwLDI3NTYxLDI3NTYzLDI3NTY0LDI3NTY1LDI3NTY2LDI3NTY3LDI3NTY4LDI3NTY5LDI3NTcwLDI3NTc0LDI3NTc2LDI3NTc3LDI3NTc4LDI3NTc5LDI3NTgwLDI3NTgxLDI3NTgyLDI3NTg0LDI3NTg3LDI3NTg4LDI3NTkwLDI3NTkxLDI3NTkyLDI3NTkz'@; put 'LDI3NTk0LDI3NTk2LDI3NTk4LDI3NjAwLDI3NjAxLDI3NjA4LDI3NjEwLDI3NjEyLDI3NjEzLDI3NjE0LDI3NjE1LDI3NjE2LDI3NjE4LDI3NjE5LDI3NjIwLDI3NjIxLDI3NjIyLDI3NjIzLDI3NjI0LDI3NjI1LDI3NjI4LDI3NjI5LDI3NjMwLDI3NjMyLDI3NjMzLDI3NjM0LDI3NjM2LDI3'@; put 'NjM4LDI3NjM5LDI3NjQwLDI3NjQyLDI3NjQzLDI3NjQ0LDI3NjQ2LDI3NjQ3LDI3NjQ4LDI3NjQ5LDI3NjUwLDI3NjUxLDI3NjUyLDI3NjU2LDI3NjU3LDI3NjU4LDI3NjU5LDI3NjYwLDI3NjYyLDI3NjY2LDI3NjcxLDI3Njc2LDI3Njc3LDI3Njc4LDI3NjgwLDI3NjgzLDI3Njg1LDI3Njkx'@; put 'LDI3NjkyLDI3NjkzLDI3Njk3LDI3Njk5LDI3NzAyLDI3NzAzLDI3NzA1LDI3NzA2LDI3NzA3LDI3NzA4LDI3NzEwLDI3NzExLDI3NzE1LDI3NzE2LDI3NzE3LDI3NzIwLDI3NzIzLDI3NzI0LDI3NzI1LDI3NzI2LDI3NzI3LDI3NzI5LDI3NzMwLDI3NzMxLDI3NzM0LDI3NzM2LDI3NzM3LDI3'@; put 'NzM4LDI3NzQ2LDI3NzQ3LDI3NzQ5LDI3NzUwLDI3NzUxLDI3NzU1LDI3NzU2LDI3NzU3LDI3NzU4LDI3NzU5LDI3NzYxLDI3NzYzLDI3NzY1LDI3NzY3LDI3NzY4LDI3NzcwLDI3NzcxLDI3NzcyLDI3Nzc1LDI3Nzc2LDI3NzgwLDI3NzgzLDI3Nzg2LDI3Nzg3LDI3Nzg5LDI3NzkwLDI3Nzkz'@; put 'LDI3Nzk0LDI3Nzk3LDI3Nzk4LDI3Nzk5LDI3ODAwLDI3ODAyLDI3ODA0LDI3ODA1LDI3ODA2LDI3ODA4LDI3ODEwLDI3ODE2LDI3ODIwLDI3ODIzLDI3ODI0LDI3ODI4LDI3ODI5LDI3ODMwLDI3ODMxLDI3ODM0LDI3ODQwLDI3ODQxLDI3ODQyLDI3ODQzLDI3ODQ2LDI3ODQ3LDI3ODQ4LDI3'@; put 'ODUxLDI3ODUzLDI3ODU0LDI3ODU1LDI3ODU3LDI3ODU4LDI3ODY0LDI3ODY1LDI3ODY2LDI3ODY4LDI3ODY5LDI3ODcxLDI3ODc2LDI3ODc4LDI3ODc5LDI3ODgxLDI3ODg0LDI3ODg1LDI3ODkwLDI3ODkyLDI3ODk3LDI3OTAzLDI3OTA0LDI3OTA2LDI3OTA3LDI3OTA5LDI3OTEwLDI3OTEy'@; put 'LDI3OTEzLDI3OTE0LDI3OTE3LDI3OTE5LDI3OTIwLDI3OTIxLDI3OTIzLDI3OTI0LDI3OTI1LDI3OTI2LDI3OTI4LDI3OTMyLDI3OTMzLDI3OTM1LDI3OTM2LDI3OTM3LDI3OTM4LDI3OTM5LDI3OTQwLDI3OTQyLDI3OTQ0LDI3OTQ1LDI3OTQ4LDI3OTQ5LDI3OTUxLDI3OTUyLDI3OTU2LDI3'@; put 'OTU4LDI3OTU5LDI3OTYwLDI3OTYyLDI3OTY3LDI3OTY4LDI3OTcwLDI3OTcyLDI3OTc3LDI3OTgwLDI3OTg0LDI3OTg5LDI3OTkwLDI3OTkxLDI3OTkyLDI3OTk1LDI3OTk3LDI3OTk5LDI4MDAxLDI4MDAyLDI4MDA0LDI4MDA1LDI4MDA3LDI4MDA4LDI4MDExLDI4MDEyLDI4MDEzLDI4MDE2'@; put 'LDI4MDE3LDI4MDE4LDI4MDE5LDI4MDIxLDI4MDIyLDI4MDI1LDI4MDI2LDI4MDI3LDI4MDI5LDI4MDMwLDI4MDMxLDI4MDMyLDI4MDMzLDI4MDM1LDI4MDM2LDI4MDM4LDI4MDM5LDI4MDQyLDI4MDQzLDI4MDQ1LDI4MDQ3LDI4MDQ4LDI4MDUwLDI4MDU0LDI4MDU1LDI4MDU2LDI4MDU3LDI4'@; put 'MDU4LDI4MDYwLDI4MDY2LDI4MDY5LDI4MDc2LDI4MDc3LDI4MDgwLDI4MDgxLDI4MDgzLDI4MDg0LDI4MDg2LDI4MDg3LDI4MDg5LDI4MDkwLDI4MDkxLDI4MDkyLDI4MDkzLDI4MDk0LDI4MDk3LDI4MDk4LDI4MDk5LDI4MTA0LDI4MTA1LDI4MTA2LDI4MTA5LDI4MTEwLDI4MTExLDI4MTEy'@; put 'LDI4MTE0LDI4MTE1LDI4MTE2LDI4MTE3LDI4MTE5LDI4MTIyLDI4MTIzLDI4MTI0LDI4MTI3LDI4MTMwLDI4MTMxLDI4MTMzLDI4MTM1LDI4MTM2LDI4MTM3LDI4MTM4LDI4MTQxLDI4MTQzLDI4MTQ0LDI4MTQ2LDI4MTQ4LDI4MTQ5LDI4MTUwLDI4MTUyLDI4MTU0LDI4MTU3LDI4MTU4LDI4'@; put 'MTU5LDI4MTYwLDI4MTYxLDI4MTYyLDI4MTYzLDI4MTY0LDI4MTY2LDI4MTY3LDI4MTY4LDI4MTY5LDI4MTcxLDI4MTc1LDI4MTc4LDI4MTc5LDI4MTgxLDI4MTg0LDI4MTg1LDI4MTg3LDI4MTg4LDI4MTkwLDI4MTkxLDI4MTk0LDI4MTk4LDI4MTk5LDI4MjAwLDI4MjAyLDI4MjA0LDI4MjA2'@; put 'LDI4MjA4LDI4MjA5LDI4MjExLDI4MjEzLDI4MjE0LDI4MjE1LDI4MjE3LDI4MjE5LDI4MjIwLDI4MjIxLDI4MjIyLDI4MjIzLDI4MjI0LDI4MjI1LDI4MjI2LDI4MjI5LDI4MjMwLDI4MjMxLDI4MjMyLDI4MjMzLDI4MjM0LDI4MjM1LDI4MjM2LDI4MjM5LDI4MjQwLDI4MjQxLDI4MjQyLDI4'@; put 'MjQ1LDI4MjQ3LDI4MjQ5LDI4MjUwLDI4MjUyLDI4MjUzLDI4MjU0LDI4MjU2LDI4MjU3LDI4MjU4LDI4MjU5LDI4MjYwLDI4MjYxLDI4MjYyLDI4MjYzLDI4MjY0LDI4MjY1LDI4MjY2LDI4MjY4LDI4MjY5LDI4MjcxLDI4MjcyLDI4MjczLDI4Mjc0LDI4Mjc1LDI4Mjc2LDI4Mjc3LDI4Mjc4'@; put 'LDI4Mjc5LDI4MjgwLDI4MjgxLDI4MjgyLDI4MjgzLDI4Mjg0LDI4Mjg1LDI4Mjg4LDI4Mjg5LDI4MjkwLDI4MjkyLDI4Mjk1LDI4Mjk2LDI4Mjk4LDI4Mjk5LDI4MzAwLDI4MzAxLDI4MzAyLDI4MzA1LDI4MzA2LDI4MzA3LDI4MzA4LDI4MzA5LDI4MzEwLDI4MzExLDI4MzEzLDI4MzE0LDI4'@; put 'MzE1LDI4MzE3LDI4MzE4LDI4MzIwLDI4MzIxLDI4MzIzLDI4MzI0LDI4MzI2LDI4MzI4LDI4MzI5LDI4MzMxLDI4MzMyLDI4MzMzLDI4MzM0LDI4MzM2LDI4MzM5LDI4MzQxLDI4MzQ0LDI4MzQ1LDI4MzQ4LDI4MzUwLDI4MzUxLDI4MzUyLDI4MzU1LDI4MzU2LDI4MzU3LDI4MzU4LDI4MzYw'@; put 'LDI4MzYxLDI4MzYyLDI4MzY0LDI4MzY1LDI4MzY2LDI4MzY4LDI4MzcwLDI4Mzc0LDI4Mzc2LDI4Mzc3LDI4Mzc5LDI4MzgwLDI4MzgxLDI4Mzg3LDI4MzkxLDI4Mzk0LDI4Mzk1LDI4Mzk2LDI4Mzk3LDI4Mzk4LDI4Mzk5LDI4NDAwLDI4NDAxLDI4NDAyLDI4NDAzLDI4NDA1LDI4NDA2LDI4'@; put 'NDA3LDI4NDA4LDI4NDEwLDI4NDExLDI4NDEyLDI4NDEzLDI4NDE0LDI4NDE1LDI4NDE2LDI4NDE3LDI4NDE5LDI4NDIwLDI4NDIxLDI4NDIzLDI4NDI0LDI4NDI2LDI4NDI3LDI4NDI4LDI4NDI5LDI4NDMwLDI4NDMyLDI4NDMzLDI4NDM0LDI4NDM4LDI4NDM5LDI4NDQwLDI4NDQxLDI4NDQy'@; put 'LDI4NDQzLDI4NDQ0LDI4NDQ1LDI4NDQ2LDI4NDQ3LDI4NDQ5LDI4NDUwLDI4NDUxLDI4NDUzLDI4NDU0LDI4NDU1LDI4NDU2LDI4NDYwLDI4NDYyLDI4NDY0LDI4NDY2LDI4NDY4LDI4NDY5LDI4NDcxLDI4NDcyLDI4NDczLDI4NDc0LDI4NDc1LDI4NDc2LDI4NDc3LDI4NDc5LDI4NDgwLDI4'@; put 'NDgxLDI4NDgyLDI4NDgzLDI4NDg0LDI4NDg1LDI4NDg4LDI4NDg5LDI4NDkwLDI4NDkyLDI4NDk0LDI4NDk1LDI4NDk2LDI4NDk3LDI4NDk4LDI4NDk5LDI4NTAwLDI4NTAxLDI4NTAyLDI4NTAzLDI4NTA1LDI4NTA2LDI4NTA3LDI4NTA5LDI4NTExLDI4NTEyLDI4NTEzLDI4NTE1LDI4NTE2'@; put 'LDI4NTE3LDI4NTE5LDI4NTIwLDI4NTIxLDI4NTIyLDI4NTIzLDI4NTI0LDI4NTI3LDI4NTI4LDI4NTI5LDI4NTMxLDI4NTMzLDI4NTM0LDI4NTM1LDI4NTM3LDI4NTM5LDI4NTQxLDI4NTQyLDI4NTQzLDI4NTQ0LDI4NTQ1LDI4NTQ2LDI4NTQ3LDI4NTQ5LDI4NTUwLDI4NTUxLDI4NTU0LDI4'@; put 'NTU1LDI4NTU5LDI4NTYwLDI4NTYxLDI4NTYyLDI4NTYzLDI4NTY0LDI4NTY1LDI4NTY2LDI4NTY3LDI4NTY4LDI4NTY5LDI4NTcwLDI4NTcxLDI4NTczLDI4NTc0LDI4NTc1LDI4NTc2LDI4NTc4LDI4NTc5LDI4NTgwLDI4NTgxLDI4NTgyLDI4NTg0LDI4NTg1LDI4NTg2LDI4NTg3LDI4NTg4'@; put 'LDI4NTg5LDI4NTkwLDI4NTkxLDI4NTkyLDI4NTkzLDI4NTk0LDI4NTk2LDI4NTk3LDI4NTk5LDI4NjAwLDI4NjAyLDI4NjAzLDI4NjA0LDI4NjA1LDI4NjA2LDI4NjA3LDI4NjA5LDI4NjExLDI4NjEyLDI4NjEzLDI4NjE0LDI4NjE1LDI4NjE2LDI4NjE4LDI4NjE5LDI4NjIwLDI4NjIxLDI4'@; put 'NjIyLDI4NjIzLDI4NjI0LDI4NjI3LDI4NjI4LDI4NjI5LDI4NjMwLDI4NjMxLDI4NjMyLDI4NjMzLDI4NjM0LDI4NjM1LDI4NjM2LDI4NjM3LDI4NjM5LDI4NjQyLDI4NjQzLDI4NjQ0LDI4NjQ1LDI4NjQ2LDI4NjQ3LDI4NjQ4LDI4NjQ5LDI4NjUwLDI4NjUxLDI4NjUyLDI4NjUzLDI4NjU2'@; put 'LDI4NjU3LDI4NjU4LDI4NjU5LDI4NjYwLDI4NjYxLDI4NjYyLDI4NjYzLDI4NjY0LDI4NjY1LDI4NjY2LDI4NjY3LDI4NjY4LDI4NjY5LDI4NjcwLDI4NjcxLDI4NjcyLDI4NjczLDI4Njc0LDI4Njc1LDI4Njc2LDI4Njc3LDI4Njc4LDI4Njc5LDI4NjgwLDI4NjgxLDI4NjgyLDI4NjgzLDI4'@; put 'Njg0LDI4Njg1LDI4Njg2LDI4Njg3LDI4Njg4LDI4NjkwLDI4NjkxLDI4NjkyLDI4NjkzLDI4Njk0LDI4Njk1LDI4Njk2LDI4Njk3LDI4NzAwLDI4NzAxLDI4NzAyLDI4NzAzLDI4NzA0LDI4NzA1LDI4NzA2LDI4NzA4LDI4NzA5LDI4NzEwLDI4NzExLDI4NzEyLDI4NzEzLDI4NzE0LDI4NzE1'@; put 'LDI4NzE2LDI4NzE3LDI4NzE4LDI4NzE5LDI4NzIwLDI4NzIxLDI4NzIyLDI4NzIzLDI4NzI0LDI4NzI2LDI4NzI3LDI4NzI4LDI4NzMwLDI4NzMxLDI4NzMyLDI4NzMzLDI4NzM0LDI4NzM1LDI4NzM2LDI4NzM3LDI4NzM4LDI4NzM5LDI4NzQwLDI4NzQxLDI4NzQyLDI4NzQzLDI4NzQ0LDI4'@; put 'NzQ1LDI4NzQ2LDI4NzQ3LDI4NzQ5LDI4NzUwLDI4NzUyLDI4NzUzLDI4NzU0LDI4NzU1LDI4NzU2LDI4NzU3LDI4NzU4LDI4NzU5LDI4NzYwLDI4NzYxLDI4NzYyLDI4NzYzLDI4NzY0LDI4NzY1LDI4NzY3LDI4NzY4LDI4NzY5LDI4NzcwLDI4NzcxLDI4NzcyLDI4NzczLDI4Nzc0LDI4Nzc1'@; put 'LDI4Nzc2LDI4Nzc3LDI4Nzc4LDI4NzgyLDI4Nzg1LDI4Nzg2LDI4Nzg3LDI4Nzg4LDI4NzkxLDI4NzkzLDI4Nzk0LDI4Nzk1LDI4Nzk3LDI4ODAxLDI4ODAyLDI4ODAzLDI4ODA0LDI4ODA2LDI4ODA3LDI4ODA4LDI4ODExLDI4ODEyLDI4ODEzLDI4ODE1LDI4ODE2LDI4ODE3LDI4ODE5LDI4'@; put 'ODIzLDI4ODI0LDI4ODI2LDI4ODI3LDI4ODMwLDI4ODMxLDI4ODMyLDI4ODMzLDI4ODM0LDI4ODM1LDI4ODM2LDI4ODM3LDI4ODM4LDI4ODM5LDI4ODQwLDI4ODQxLDI4ODQyLDI4ODQ4LDI4ODUwLDI4ODUyLDI4ODUzLDI4ODU0LDI4ODU4LDI4ODYyLDI4ODYzLDI4ODY4LDI4ODY5LDI4ODcw'@; put 'LDI4ODcxLDI4ODczLDI4ODc1LDI4ODc2LDI4ODc3LDI4ODc4LDI4ODc5LDI4ODgwLDI4ODgxLDI4ODgyLDI4ODgzLDI4ODg0LDI4ODg1LDI4ODg2LDI4ODg3LDI4ODkwLDI4ODkyLDI4ODkzLDI4ODk0LDI4ODk2LDI4ODk3LDI4ODk4LDI4ODk5LDI4OTAxLDI4OTA2LDI4OTEwLDI4OTEyLDI4'@; put 'OTEzLDI4OTE0LDI4OTE1LDI4OTE2LDI4OTE3LDI4OTE4LDI4OTIwLDI4OTIyLDI4OTIzLDI4OTI0LDI4OTI2LDI4OTI3LDI4OTI4LDI4OTI5LDI4OTMwLDI4OTMxLDI4OTMyLDI4OTMzLDI4OTM0LDI4OTM1LDI4OTM2LDI4OTM5LDI4OTQwLDI4OTQxLDI4OTQyLDI4OTQzLDI4OTQ1LDI4OTQ2'@; put 'LDI4OTQ4LDI4OTUxLDI4OTU1LDI4OTU2LDI4OTU3LDI4OTU4LDI4OTU5LDI4OTYwLDI4OTYxLDI4OTYyLDI4OTYzLDI4OTY0LDI4OTY1LDI4OTY3LDI4OTY4LDI4OTY5LDI4OTcwLDI4OTcxLDI4OTcyLDI4OTczLDI4OTc0LDI4OTc4LDI4OTc5LDI4OTgwLDI4OTgxLDI4OTgzLDI4OTg0LDI4'@; put 'OTg1LDI4OTg2LDI4OTg3LDI4OTg4LDI4OTg5LDI4OTkwLDI4OTkxLDI4OTkyLDI4OTkzLDI4OTk0LDI4OTk1LDI4OTk2LDI4OTk4LDI4OTk5LDI5ZTMsMjkwMDEsMjkwMDMsMjkwMDUsMjkwMDcsMjkwMDgsMjkwMDksMjkwMTAsMjkwMTEsMjkwMTIsMjkwMTMsMjkwMTQsMjkwMTUsMjkwMTYs'@; put 'MjkwMTcsMjkwMTgsMjkwMTksMjkwMjEsMjkwMjMsMjkwMjQsMjkwMjUsMjkwMjYsMjkwMjcsMjkwMjksMjkwMzMsMjkwMzQsMjkwMzUsMjkwMzYsMjkwMzcsMjkwMzksMjkwNDAsMjkwNDEsMjkwNDQsMjkwNDUsMjkwNDYsMjkwNDcsMjkwNDksMjkwNTEsMjkwNTIsMjkwNTQsMjkwNTUsMjkw'@; put 'NTYsMjkwNTcsMjkwNTgsMjkwNTksMjkwNjEsMjkwNjIsMjkwNjMsMjkwNjQsMjkwNjUsMjkwNjcsMjkwNjgsMjkwNjksMjkwNzAsMjkwNzIsMjkwNzMsMjkwNzQsMjkwNzUsMjkwNzcsMjkwNzgsMjkwNzksMjkwODIsMjkwODMsMjkwODQsMjkwODUsMjkwODYsMjkwODksMjkwOTAsMjkwOTEs'@; put 'MjkwOTIsMjkwOTMsMjkwOTQsMjkwOTUsMjkwOTcsMjkwOTgsMjkwOTksMjkxMDEsMjkxMDIsMjkxMDMsMjkxMDQsMjkxMDUsMjkxMDYsMjkxMDgsMjkxMTAsMjkxMTEsMjkxMTIsMjkxMTQsMjkxMTUsMjkxMTYsMjkxMTcsMjkxMTgsMjkxMTksMjkxMjAsMjkxMjEsMjkxMjIsMjkxMjQsMjkx'@; put 'MjUsMjkxMjYsMjkxMjcsMjkxMjgsMjkxMjksMjkxMzAsMjkxMzEsMjkxMzIsMjkxMzMsMjkxMzUsMjkxMzYsMjkxMzcsMjkxMzgsMjkxMzksMjkxNDIsMjkxNDMsMjkxNDQsMjkxNDUsMjkxNDYsMjkxNDcsMjkxNDgsMjkxNDksMjkxNTAsMjkxNTEsMjkxNTMsMjkxNTQsMjkxNTUsMjkxNTYs'@; put 'MjkxNTgsMjkxNjAsMjkxNjEsMjkxNjIsMjkxNjMsMjkxNjQsMjkxNjUsMjkxNjcsMjkxNjgsMjkxNjksMjkxNzAsMjkxNzEsMjkxNzIsMjkxNzMsMjkxNzQsMjkxNzUsMjkxNzYsMjkxNzgsMjkxNzksMjkxODAsMjkxODEsMjkxODIsMjkxODMsMjkxODQsMjkxODUsMjkxODYsMjkxODcsMjkx'@; put 'ODgsMjkxODksMjkxOTEsMjkxOTIsMjkxOTMsMjkxOTQsMjkxOTUsMjkxOTYsMjkxOTcsMjkxOTgsMjkxOTksMjkyMDAsMjkyMDEsMjkyMDIsMjkyMDMsMjkyMDQsMjkyMDUsMjkyMDYsMjkyMDcsMjkyMDgsMjkyMDksMjkyMTAsMjkyMTEsMjkyMTIsMjkyMTQsMjkyMTUsMjkyMTYsMjkyMTcs'@; put 'MjkyMTgsMjkyMTksMjkyMjAsMjkyMjEsMjkyMjIsMjkyMjMsMjkyMjUsMjkyMjcsMjkyMjksMjkyMzAsMjkyMzEsMjkyMzQsMjkyMzUsMjkyMzYsMjkyNDIsMjkyNDQsMjkyNDYsMjkyNDgsMjkyNDksMjkyNTAsMjkyNTEsMjkyNTIsMjkyNTMsMjkyNTQsMjkyNTcsMjkyNTgsMjkyNTksMjky'@; put 'NjIsMjkyNjMsMjkyNjQsMjkyNjUsMjkyNjcsMjkyNjgsMjkyNjksMjkyNzEsMjkyNzIsMjkyNzQsMjkyNzYsMjkyNzgsMjkyODAsMjkyODMsMjkyODQsMjkyODUsMjkyODgsMjkyOTAsMjkyOTEsMjkyOTIsMjkyOTMsMjkyOTYsMjkyOTcsMjkyOTksMjkzMDAsMjkzMDIsMjkzMDMsMjkzMDQs'@; put 'MjkzMDcsMjkzMDgsMjkzMDksMjkzMTQsMjkzMTUsMjkzMTcsMjkzMTgsMjkzMTksMjkzMjAsMjkzMjEsMjkzMjQsMjkzMjYsMjkzMjgsMjkzMjksMjkzMzEsMjkzMzIsMjkzMzMsMjkzMzQsMjkzMzUsMjkzMzYsMjkzMzcsMjkzMzgsMjkzMzksMjkzNDAsMjkzNDEsMjkzNDIsMjkzNDQsMjkz'@; put 'NDUsMjkzNDYsMjkzNDcsMjkzNDgsMjkzNDksMjkzNTAsMjkzNTEsMjkzNTIsMjkzNTMsMjkzNTQsMjkzNTUsMjkzNTgsMjkzNjEsMjkzNjIsMjkzNjMsMjkzNjUsMjkzNzAsMjkzNzEsMjkzNzIsMjkzNzMsMjkzNzQsMjkzNzUsMjkzNzYsMjkzODEsMjkzODIsMjkzODMsMjkzODUsMjkzODYs'@; put 'MjkzODcsMjkzODgsMjkzOTEsMjkzOTMsMjkzOTUsMjkzOTYsMjkzOTcsMjkzOTgsMjk0MDAsMjk0MDIsMjk0MDMsNTg1NjYsNTg1NjcsNTg1NjgsNTg1NjksNTg1NzAsNTg1NzEsNTg1NzIsNTg1NzMsNTg1NzQsNTg1NzUsNTg1NzYsNTg1NzcsNTg1NzgsNTg1NzksNTg1ODAsNTg1ODEsNTg1'@; put 'ODIsNTg1ODMsNTg1ODQsNTg1ODUsNTg1ODYsNTg1ODcsNTg1ODgsNTg1ODksNTg1OTAsNTg1OTEsNTg1OTIsNTg1OTMsNTg1OTQsNTg1OTUsNTg1OTYsNTg1OTcsNTg1OTgsNTg1OTksNTg2MDAsNTg2MDEsNTg2MDIsNTg2MDMsNTg2MDQsNTg2MDUsNTg2MDYsNTg2MDcsNTg2MDgsNTg2MDks'@; put 'NTg2MTAsNTg2MTEsNTg2MTIsNTg2MTMsNTg2MTQsNTg2MTUsNTg2MTYsNTg2MTcsNTg2MTgsNTg2MTksNTg2MjAsNTg2MjEsNTg2MjIsNTg2MjMsNTg2MjQsNTg2MjUsNTg2MjYsNTg2MjcsNTg2MjgsNTg2MjksNTg2MzAsNTg2MzEsNTg2MzIsNTg2MzMsNTg2MzQsNTg2MzUsNTg2MzYsNTg2'@; put 'MzcsNTg2MzgsNTg2MzksNTg2NDAsNTg2NDEsNTg2NDIsNTg2NDMsNTg2NDQsNTg2NDUsNTg2NDYsNTg2NDcsNTg2NDgsNTg2NDksNTg2NTAsNTg2NTEsNTg2NTIsNTg2NTMsNTg2NTQsNTg2NTUsNTg2NTYsNTg2NTcsNTg2NTgsNTg2NTksNTg2NjAsNTg2NjEsMTIyODgsMTIyODksMTIyOTAs'@; put 'MTgzLDcxMyw3MTEsMTY4LDEyMjkxLDEyMjkzLDgyMTIsNjUzNzQsODIxNCw4MjMwLDgyMTYsODIxNyw4MjIwLDgyMjEsMTIzMDgsMTIzMDksMTIyOTYsMTIyOTcsMTIyOTgsMTIyOTksMTIzMDAsMTIzMDEsMTIzMDIsMTIzMDMsMTIzMTAsMTIzMTEsMTIzMDQsMTIzMDUsMTc3LDIxNSwyNDcs'@; put 'ODc1OCw4NzQzLDg3NDQsODcyMSw4NzE5LDg3NDYsODc0NSw4NzEyLDg3NTksODczMCw4ODY5LDg3NDEsODczNiw4OTc4LDg4NTcsODc0Nyw4NzUwLDg4MDEsODc4MCw4Nzc2LDg3NjUsODczMyw4ODAwLDg4MTQsODgxNSw4ODA0LDg4MDUsODczNCw4NzU3LDg3NTYsOTc5NCw5NzkyLDE3Niw4'@; put 'MjQyLDgyNDMsODQ1MSw2NTI4NCwxNjQsNjU1MDQsNjU1MDUsODI0MCwxNjcsODQ3MCw5NzM0LDk3MzMsOTY3NSw5Njc5LDk2NzgsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjUxLDk2NTAsODI1MSw4NTk0LDg1OTIsODU5Myw4NTk1LDEyMzA3LDU4NjYyLDU4NjYzLDU4NjY0LDU4NjY1LDU4NjY2'@; put 'LDU4NjY3LDU4NjY4LDU4NjY5LDU4NjcwLDU4NjcxLDU4NjcyLDU4NjczLDU4Njc0LDU4Njc1LDU4Njc2LDU4Njc3LDU4Njc4LDU4Njc5LDU4NjgwLDU4NjgxLDU4NjgyLDU4NjgzLDU4Njg0LDU4Njg1LDU4Njg2LDU4Njg3LDU4Njg4LDU4Njg5LDU4NjkwLDU4NjkxLDU4NjkyLDU4NjkzLDU4'@; put 'Njk0LDU4Njk1LDU4Njk2LDU4Njk3LDU4Njk4LDU4Njk5LDU4NzAwLDU4NzAxLDU4NzAyLDU4NzAzLDU4NzA0LDU4NzA1LDU4NzA2LDU4NzA3LDU4NzA4LDU4NzA5LDU4NzEwLDU4NzExLDU4NzEyLDU4NzEzLDU4NzE0LDU4NzE1LDU4NzE2LDU4NzE3LDU4NzE4LDU4NzE5LDU4NzIwLDU4NzIx'@; put 'LDU4NzIyLDU4NzIzLDU4NzI0LDU4NzI1LDU4NzI2LDU4NzI3LDU4NzI4LDU4NzI5LDU4NzMwLDU4NzMxLDU4NzMyLDU4NzMzLDU4NzM0LDU4NzM1LDU4NzM2LDU4NzM3LDU4NzM4LDU4NzM5LDU4NzQwLDU4NzQxLDU4NzQyLDU4NzQzLDU4NzQ0LDU4NzQ1LDU4NzQ2LDU4NzQ3LDU4NzQ4LDU4'@; put 'NzQ5LDU4NzUwLDU4NzUxLDU4NzUyLDU4NzUzLDU4NzU0LDU4NzU1LDU4NzU2LDU4NzU3LDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksNTkyMzgsNTkyMzksNTkyNDAsNTkyNDEsNTkyNDIsNTkyNDMsOTM1Miw5MzUzLDkzNTQsOTM1NSw5MzU2LDkz'@; put 'NTcsOTM1OCw5MzU5LDkzNjAsOTM2MSw5MzYyLDkzNjMsOTM2NCw5MzY1LDkzNjYsOTM2Nyw5MzY4LDkzNjksOTM3MCw5MzcxLDkzMzIsOTMzMyw5MzM0LDkzMzUsOTMzNiw5MzM3LDkzMzgsOTMzOSw5MzQwLDkzNDEsOTM0Miw5MzQzLDkzNDQsOTM0NSw5MzQ2LDkzNDcsOTM0OCw5MzQ5LDkz'@; put 'NTAsOTM1MSw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDgzNjQsNTkyNDUsMTI4MzIsMTI4MzMsMTI4MzQsMTI4MzUsMTI4MzYsMTI4MzcsMTI4MzgsMTI4MzksMTI4NDAsMTI4NDEsNTkyNDYsNTkyNDcsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4'@; put 'LDg1NDksODU1MCw4NTUxLDg1NTIsODU1Myw4NTU0LDg1NTUsNTkyNDgsNTkyNDksNTg3NTgsNTg3NTksNTg3NjAsNTg3NjEsNTg3NjIsNTg3NjMsNTg3NjQsNTg3NjUsNTg3NjYsNTg3NjcsNTg3NjgsNTg3NjksNTg3NzAsNTg3NzEsNTg3NzIsNTg3NzMsNTg3NzQsNTg3NzUsNTg3NzYsNTg3'@; put 'NzcsNTg3NzgsNTg3NzksNTg3ODAsNTg3ODEsNTg3ODIsNTg3ODMsNTg3ODQsNTg3ODUsNTg3ODYsNTg3ODcsNTg3ODgsNTg3ODksNTg3OTAsNTg3OTEsNTg3OTIsNTg3OTMsNTg3OTQsNTg3OTUsNTg3OTYsNTg3OTcsNTg3OTgsNTg3OTksNTg4MDAsNTg4MDEsNTg4MDIsNTg4MDMsNTg4MDQs'@; put 'NTg4MDUsNTg4MDYsNTg4MDcsNTg4MDgsNTg4MDksNTg4MTAsNTg4MTEsNTg4MTIsNTg4MTMsNTg4MTQsNTg4MTUsNTg4MTYsNTg4MTcsNTg4MTgsNTg4MTksNTg4MjAsNTg4MjEsNTg4MjIsNTg4MjMsNTg4MjQsNTg4MjUsNTg4MjYsNTg4MjcsNTg4MjgsNTg4MjksNTg4MzAsNTg4MzEsNTg4'@; put 'MzIsNTg4MzMsNTg4MzQsNTg4MzUsNTg4MzYsNTg4MzcsNTg4MzgsNTg4MzksNTg4NDAsNTg4NDEsNTg4NDIsNTg4NDMsNTg4NDQsNTg4NDUsNTg4NDYsNTg4NDcsNTg4NDgsNTg4NDksNTg4NTAsNTg4NTEsNTg4NTIsMTIyODgsNjUyODEsNjUyODIsNjUyODMsNjU1MDksNjUyODUsNjUyODYs'@; put 'NjUyODcsNjUyODgsNjUyODksNjUyOTAsNjUyOTEsNjUyOTIsNjUyOTMsNjUyOTQsNjUyOTUsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsNjUzMDYsNjUzMDcsNjUzMDgsNjUzMDksNjUzMTAsNjUzMTEsNjUzMTIsNjUzMTMsNjUz'@; put 'MTQsNjUzMTUsNjUzMTYsNjUzMTcsNjUzMTgsNjUzMTksNjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUzMzYsNjUzMzcsNjUzMzgsNjUzMzksNjUzNDAsNjUzNDEs'@; put 'NjUzNDIsNjUzNDMsNjUzNDQsNjUzNDUsNjUzNDYsNjUzNDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQsNjUzNjUsNjUzNjYsNjUzNjcsNjUzNjgsNjUz'@; put 'NjksNjUzNzAsNjUzNzEsNjUzNzIsNjUzNzMsNjU1MDcsNTg4NTQsNTg4NTUsNTg4NTYsNTg4NTcsNTg4NTgsNTg4NTksNTg4NjAsNTg4NjEsNTg4NjIsNTg4NjMsNTg4NjQsNTg4NjUsNTg4NjYsNTg4NjcsNTg4NjgsNTg4NjksNTg4NzAsNTg4NzEsNTg4NzIsNTg4NzMsNTg4NzQsNTg4NzUs'@; put 'NTg4NzYsNTg4NzcsNTg4NzgsNTg4NzksNTg4ODAsNTg4ODEsNTg4ODIsNTg4ODMsNTg4ODQsNTg4ODUsNTg4ODYsNTg4ODcsNTg4ODgsNTg4ODksNTg4OTAsNTg4OTEsNTg4OTIsNTg4OTMsNTg4OTQsNTg4OTUsNTg4OTYsNTg4OTcsNTg4OTgsNTg4OTksNTg5MDAsNTg5MDEsNTg5MDIsNTg5'@; put 'MDMsNTg5MDQsNTg5MDUsNTg5MDYsNTg5MDcsNTg5MDgsNTg5MDksNTg5MTAsNTg5MTEsNTg5MTIsNTg5MTMsNTg5MTQsNTg5MTUsNTg5MTYsNTg5MTcsNTg5MTgsNTg5MTksNTg5MjAsNTg5MjEsNTg5MjIsNTg5MjMsNTg5MjQsNTg5MjUsNTg5MjYsNTg5MjcsNTg5MjgsNTg5MjksNTg5MzAs'@; put 'NTg5MzEsNTg5MzIsNTg5MzMsNTg5MzQsNTg5MzUsNTg5MzYsNTg5MzcsNTg5MzgsNTg5MzksNTg5NDAsNTg5NDEsNTg5NDIsNTg5NDMsNTg5NDQsNTg5NDUsNTg5NDYsNTg5NDcsNTg5NDgsNTg5NDksMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIz'@; put 'NjEsMTIzNjIsMTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYsMTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIzNzMsMTIzNzQsMTIzNzUsMTIzNzYsMTIzNzcsMTIzNzgsMTIzNzksMTIzODAsMTIzODEsMTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgs'@; put 'MTIzODksMTIzOTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIzOTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAsMTI0MDEsMTI0MDIsMTI0MDMsMTI0MDQsMTI0MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0'@; put 'MTYsMTI0MTcsMTI0MTgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0MjgsMTI0MjksMTI0MzAsMTI0MzEsMTI0MzIsMTI0MzMsMTI0MzQsMTI0MzUsNTkyNTAsNTkyNTEsNTkyNTIsNTkyNTMsNTkyNTQsNTkyNTUsNTkyNTYsNTkyNTcs'@; put 'NTkyNTgsNTkyNTksNTkyNjAsNTg5NTAsNTg5NTEsNTg5NTIsNTg5NTMsNTg5NTQsNTg5NTUsNTg5NTYsNTg5NTcsNTg5NTgsNTg5NTksNTg5NjAsNTg5NjEsNTg5NjIsNTg5NjMsNTg5NjQsNTg5NjUsNTg5NjYsNTg5NjcsNTg5NjgsNTg5NjksNTg5NzAsNTg5NzEsNTg5NzIsNTg5NzMsNTg5'@; put 'NzQsNTg5NzUsNTg5NzYsNTg5NzcsNTg5NzgsNTg5NzksNTg5ODAsNTg5ODEsNTg5ODIsNTg5ODMsNTg5ODQsNTg5ODUsNTg5ODYsNTg5ODcsNTg5ODgsNTg5ODksNTg5OTAsNTg5OTEsNTg5OTIsNTg5OTMsNTg5OTQsNTg5OTUsNTg5OTYsNTg5OTcsNTg5OTgsNTg5OTksNTllMyw1OTAwMSw1'@; put 'OTAwMiw1OTAwMyw1OTAwNCw1OTAwNSw1OTAwNiw1OTAwNyw1OTAwOCw1OTAwOSw1OTAxMCw1OTAxMSw1OTAxMiw1OTAxMyw1OTAxNCw1OTAxNSw1OTAxNiw1OTAxNyw1OTAxOCw1OTAxOSw1OTAyMCw1OTAyMSw1OTAyMiw1OTAyMyw1OTAyNCw1OTAyNSw1OTAyNiw1OTAyNyw1OTAyOCw1OTAy'@; put 'OSw1OTAzMCw1OTAzMSw1OTAzMiw1OTAzMyw1OTAzNCw1OTAzNSw1OTAzNiw1OTAzNyw1OTAzOCw1OTAzOSw1OTA0MCw1OTA0MSw1OTA0Miw1OTA0Myw1OTA0NCw1OTA0NSwxMjQ0OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwx'@; put 'MjQ2MCwxMjQ2MSwxMjQ2MiwxMjQ2MywxMjQ2NCwxMjQ2NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3NSwxMjQ3NiwxMjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwxMjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4'@; put 'NywxMjQ4OCwxMjQ4OSwxMjQ5MCwxMjQ5MSwxMjQ5MiwxMjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwxMjUwMywxMjUwNCwxMjUwNSwxMjUwNiwxMjUwNywxMjUwOCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwx'@; put 'MjUxNSwxMjUxNiwxMjUxNywxMjUxOCwxMjUxOSwxMjUyMCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUzMCwxMjUzMSwxMjUzMiwxMjUzMywxMjUzNCw1OTI2MSw1OTI2Miw1OTI2Myw1OTI2NCw1OTI2NSw1OTI2Niw1OTI2Nyw1OTI2'@; put 'OCw1OTA0Niw1OTA0Nyw1OTA0OCw1OTA0OSw1OTA1MCw1OTA1MSw1OTA1Miw1OTA1Myw1OTA1NCw1OTA1NSw1OTA1Niw1OTA1Nyw1OTA1OCw1OTA1OSw1OTA2MCw1OTA2MSw1OTA2Miw1OTA2Myw1OTA2NCw1OTA2NSw1OTA2Niw1OTA2Nyw1OTA2OCw1OTA2OSw1OTA3MCw1OTA3MSw1OTA3Miw1'@; put 'OTA3Myw1OTA3NCw1OTA3NSw1OTA3Niw1OTA3Nyw1OTA3OCw1OTA3OSw1OTA4MCw1OTA4MSw1OTA4Miw1OTA4Myw1OTA4NCw1OTA4NSw1OTA4Niw1OTA4Nyw1OTA4OCw1OTA4OSw1OTA5MCw1OTA5MSw1OTA5Miw1OTA5Myw1OTA5NCw1OTA5NSw1OTA5Niw1OTA5Nyw1OTA5OCw1OTA5OSw1OTEw'@; put 'MCw1OTEwMSw1OTEwMiw1OTEwMyw1OTEwNCw1OTEwNSw1OTEwNiw1OTEwNyw1OTEwOCw1OTEwOSw1OTExMCw1OTExMSw1OTExMiw1OTExMyw1OTExNCw1OTExNSw1OTExNiw1OTExNyw1OTExOCw1OTExOSw1OTEyMCw1OTEyMSw1OTEyMiw1OTEyMyw1OTEyNCw1OTEyNSw1OTEyNiw1OTEyNyw1'@; put 'OTEyOCw1OTEyOSw1OTEzMCw1OTEzMSw1OTEzMiw1OTEzMyw1OTEzNCw1OTEzNSw1OTEzNiw1OTEzNyw1OTEzOCw1OTEzOSw1OTE0MCw1OTE0MSw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkz'@; put 'NCw5MzUsOTM2LDkzNyw1OTI2OSw1OTI3MCw1OTI3MSw1OTI3Miw1OTI3Myw1OTI3NCw1OTI3NSw1OTI3Niw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw1OTI3Nyw1'@; put 'OTI3OCw1OTI3OSw1OTI4MCw1OTI4MSw1OTI4Miw1OTI4Myw2NTA3Nyw2NTA3OCw2NTA4MSw2NTA4Miw2NTA4Nyw2NTA4OCw2NTA4NSw2NTA4Niw2NTA4OSw2NTA5MCw2NTA5MSw2NTA5Miw1OTI4NCw1OTI4NSw2NTA4Myw2NTA4NCw2NTA3OSw2NTA4MCw2NTA3Myw1OTI4Niw2NTA3NSw2NTA3'@; put 'Niw1OTI4Nyw1OTI4OCw1OTI4OSw1OTI5MCw1OTI5MSw1OTI5Miw1OTI5Myw1OTI5NCw1OTI5NSw1OTE0Miw1OTE0Myw1OTE0NCw1OTE0NSw1OTE0Niw1OTE0Nyw1OTE0OCw1OTE0OSw1OTE1MCw1OTE1MSw1OTE1Miw1OTE1Myw1OTE1NCw1OTE1NSw1OTE1Niw1OTE1Nyw1OTE1OCw1OTE1OSw1'@; put 'OTE2MCw1OTE2MSw1OTE2Miw1OTE2Myw1OTE2NCw1OTE2NSw1OTE2Niw1OTE2Nyw1OTE2OCw1OTE2OSw1OTE3MCw1OTE3MSw1OTE3Miw1OTE3Myw1OTE3NCw1OTE3NSw1OTE3Niw1OTE3Nyw1OTE3OCw1OTE3OSw1OTE4MCw1OTE4MSw1OTE4Miw1OTE4Myw1OTE4NCw1OTE4NSw1OTE4Niw1OTE4'@; put 'Nyw1OTE4OCw1OTE4OSw1OTE5MCw1OTE5MSw1OTE5Miw1OTE5Myw1OTE5NCw1OTE5NSw1OTE5Niw1OTE5Nyw1OTE5OCw1OTE5OSw1OTIwMCw1OTIwMSw1OTIwMiw1OTIwMyw1OTIwNCw1OTIwNSw1OTIwNiw1OTIwNyw1OTIwOCw1OTIwOSw1OTIxMCw1OTIxMSw1OTIxMiw1OTIxMyw1OTIxNCw1'@; put 'OTIxNSw1OTIxNiw1OTIxNyw1OTIxOCw1OTIxOSw1OTIyMCw1OTIyMSw1OTIyMiw1OTIyMyw1OTIyNCw1OTIyNSw1OTIyNiw1OTIyNyw1OTIyOCw1OTIyOSw1OTIzMCw1OTIzMSw1OTIzMiw1OTIzMyw1OTIzNCw1OTIzNSw1OTIzNiw1OTIzNywxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0'@; put 'NSwxMDI1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSw1OTI5Niw1OTI5Nyw1OTI5OCw1OTI5OSw1OTMw'@; put 'MCw1OTMwMSw1OTMwMiw1OTMwMyw1OTMwNCw1OTMwNSw1OTMwNiw1OTMwNyw1OTMwOCw1OTMwOSw1OTMxMCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5'@; put 'MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyw1OTMxMSw1OTMxMiw1OTMxMyw1OTMxNCw1OTMxNSw1OTMxNiw1OTMxNyw1OTMxOCw1OTMxOSw1OTMyMCw1OTMyMSw1OTMyMiw1OTMyMyw3MTQsNzE1LDcyOSw4MjExLDgyMTMsODIy'@; put 'OSw4MjQ1LDg0NTMsODQ1Nyw4NTk4LDg1OTksODYwMCw4NjAxLDg3MjUsODczNSw4NzM5LDg3ODYsODgwNiw4ODA3LDg4OTUsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3'@; put 'MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDk1ODEsOTU4Miw5NTgzLDk1ODQsOTU4NSw5NTg2LDk1ODcsOTYwMSw5NjAyLDk2MDMsOTYwNCw5NjA1LDk2MDYsOTYwNyw5NjA4LDk2MDksOTYxMCw5NjExLDk2MTIsOTYxMyw5NjE0LDk2MTUsOTYx'@; put 'OSw5NjIwLDk2MjEsOTY2MCw5NjYxLDk2OTgsOTY5OSw5NzAwLDk3MDEsOTczNyw4ODUzLDEyMzA2LDEyMzE3LDEyMzE4LDU5MzI0LDU5MzI1LDU5MzI2LDU5MzI3LDU5MzI4LDU5MzI5LDU5MzMwLDU5MzMxLDU5MzMyLDU5MzMzLDU5MzM0LDI1NywyMjUsNDYyLDIyNCwyNzUsMjMzLDI4Mywy'@; put 'MzIsMjk5LDIzNyw0NjQsMjM2LDMzMywyNDMsNDY2LDI0MiwzNjMsMjUwLDQ2OCwyNDksNDcwLDQ3Miw0NzQsNDc2LDI1MiwyMzQsNTkzLDc3NDMsMzI0LDMyOCw1MDUsNjA5LDU5MzM3LDU5MzM4LDU5MzM5LDU5MzQwLDEyNTQ5LDEyNTUwLDEyNTUxLDEyNTUyLDEyNTUzLDEyNTU0LDEyNTU1'@; put 'LDEyNTU2LDEyNTU3LDEyNTU4LDEyNTU5LDEyNTYwLDEyNTYxLDEyNTYyLDEyNTYzLDEyNTY0LDEyNTY1LDEyNTY2LDEyNTY3LDEyNTY4LDEyNTY5LDEyNTcwLDEyNTcxLDEyNTcyLDEyNTczLDEyNTc0LDEyNTc1LDEyNTc2LDEyNTc3LDEyNTc4LDEyNTc5LDEyNTgwLDEyNTgxLDEyNTgyLDEy'@; put 'NTgzLDEyNTg0LDEyNTg1LDU5MzQxLDU5MzQyLDU5MzQzLDU5MzQ0LDU5MzQ1LDU5MzQ2LDU5MzQ3LDU5MzQ4LDU5MzQ5LDU5MzUwLDU5MzUxLDU5MzUyLDU5MzUzLDU5MzU0LDU5MzU1LDU5MzU2LDU5MzU3LDU5MzU4LDU5MzU5LDU5MzYwLDU5MzYxLDEyMzIxLDEyMzIyLDEyMzIzLDEyMzI0'@; put 'LDEyMzI1LDEyMzI2LDEyMzI3LDEyMzI4LDEyMzI5LDEyOTYzLDEzMTk4LDEzMTk5LDEzMjEyLDEzMjEzLDEzMjE0LDEzMjE3LDEzMjUyLDEzMjYyLDEzMjY1LDEzMjY2LDEzMjY5LDY1MDcyLDY1NTA2LDY1NTA4LDU5MzYyLDg0ODEsMTI4NDksNTkzNjMsODIwOCw1OTM2NCw1OTM2NSw1OTM2'@; put 'NiwxMjU0MCwxMjQ0MywxMjQ0NCwxMjU0MSwxMjU0MiwxMjI5NCwxMjQ0NSwxMjQ0Niw2NTA5Nyw2NTA5OCw2NTA5OSw2NTEwMCw2NTEwMSw2NTEwMiw2NTEwMyw2NTEwNCw2NTEwNSw2NTEwNiw2NTEwOCw2NTEwOSw2NTExMCw2NTExMSw2NTExMyw2NTExNCw2NTExNSw2NTExNiw2NTExNyw2'@; put 'NTExOCw2NTExOSw2NTEyMCw2NTEyMSw2NTEyMiw2NTEyMyw2NTEyNCw2NTEyNSw2NTEyNiw2NTEyOCw2NTEyOSw2NTEzMCw2NTEzMSwxMjM1MCwxMjI3MiwxMjI3MywxMjI3NCwxMjI3NSwxMjI3NiwxMjI3NywxMjI3OCwxMjI3OSwxMjI4MCwxMjI4MSwxMjI4MiwxMjI4MywxMjI5NSw1OTM4'@; put 'MCw1OTM4MSw1OTM4Miw1OTM4Myw1OTM4NCw1OTM4NSw1OTM4Niw1OTM4Nyw1OTM4OCw1OTM4OSw1OTM5MCw1OTM5MSw1OTM5Miw5NDcyLDk0NzMsOTQ3NCw5NDc1LDk0NzYsOTQ3Nyw5NDc4LDk0NzksOTQ4MCw5NDgxLDk0ODIsOTQ4Myw5NDg0LDk0ODUsOTQ4Niw5NDg3LDk0ODgsOTQ4OSw5'@; put 'NDkwLDk0OTEsOTQ5Miw5NDkzLDk0OTQsOTQ5NSw5NDk2LDk0OTcsOTQ5OCw5NDk5LDk1MDAsOTUwMSw5NTAyLDk1MDMsOTUwNCw5NTA1LDk1MDYsOTUwNyw5NTA4LDk1MDksOTUxMCw5NTExLDk1MTIsOTUxMyw5NTE0LDk1MTUsOTUxNiw5NTE3LDk1MTgsOTUxOSw5NTIwLDk1MjEsOTUyMiw5'@; put 'NTIzLDk1MjQsOTUyNSw5NTI2LDk1MjcsOTUyOCw5NTI5LDk1MzAsOTUzMSw5NTMyLDk1MzMsOTUzNCw5NTM1LDk1MzYsOTUzNyw5NTM4LDk1MzksOTU0MCw5NTQxLDk1NDIsOTU0Myw5NTQ0LDk1NDUsOTU0Niw5NTQ3LDU5MzkzLDU5Mzk0LDU5Mzk1LDU5Mzk2LDU5Mzk3LDU5Mzk4LDU5Mzk5'@; put 'LDU5NDAwLDU5NDAxLDU5NDAyLDU5NDAzLDU5NDA0LDU5NDA1LDU5NDA2LDU5NDA3LDI5NDA0LDI5NDA1LDI5NDA3LDI5NDEwLDI5NDExLDI5NDEyLDI5NDEzLDI5NDE0LDI5NDE1LDI5NDE4LDI5NDE5LDI5NDI5LDI5NDMwLDI5NDMzLDI5NDM3LDI5NDM4LDI5NDM5LDI5NDQwLDI5NDQyLDI5'@; put 'NDQ0LDI5NDQ1LDI5NDQ2LDI5NDQ3LDI5NDQ4LDI5NDQ5LDI5NDUxLDI5NDUyLDI5NDUzLDI5NDU1LDI5NDU2LDI5NDU3LDI5NDU4LDI5NDYwLDI5NDY0LDI5NDY1LDI5NDY2LDI5NDcxLDI5NDcyLDI5NDc1LDI5NDc2LDI5NDc4LDI5NDc5LDI5NDgwLDI5NDg1LDI5NDg3LDI5NDg4LDI5NDkw'@; put 'LDI5NDkxLDI5NDkzLDI5NDk0LDI5NDk4LDI5NDk5LDI5NTAwLDI5NTAxLDI5NTA0LDI5NTA1LDI5NTA2LDI5NTA3LDI5NTA4LDI5NTA5LDI5NTEwLDI5NTExLDI5NTEyLDI5NTEzLDI5NTE0LDI5NTE1LDI5NTE2LDI5NTE4LDI5NTE5LDI5NTIxLDI5NTIzLDI5NTI0LDI5NTI1LDI5NTI2LDI5'@; put 'NTI4LDI5NTI5LDI5NTMwLDI5NTMxLDI5NTMyLDI5NTMzLDI5NTM0LDI5NTM1LDI5NTM3LDI5NTM4LDI5NTM5LDI5NTQwLDI5NTQxLDI5NTQyLDI5NTQzLDI5NTQ0LDI5NTQ1LDI5NTQ2LDI5NTQ3LDI5NTUwLDI5NTUyLDI5NTUzLDU3MzQ0LDU3MzQ1LDU3MzQ2LDU3MzQ3LDU3MzQ4LDU3MzQ5'@; put 'LDU3MzUwLDU3MzUxLDU3MzUyLDU3MzUzLDU3MzU0LDU3MzU1LDU3MzU2LDU3MzU3LDU3MzU4LDU3MzU5LDU3MzYwLDU3MzYxLDU3MzYyLDU3MzYzLDU3MzY0LDU3MzY1LDU3MzY2LDU3MzY3LDU3MzY4LDU3MzY5LDU3MzcwLDU3MzcxLDU3MzcyLDU3MzczLDU3Mzc0LDU3Mzc1LDU3Mzc2LDU3'@; put 'Mzc3LDU3Mzc4LDU3Mzc5LDU3MzgwLDU3MzgxLDU3MzgyLDU3MzgzLDU3Mzg0LDU3Mzg1LDU3Mzg2LDU3Mzg3LDU3Mzg4LDU3Mzg5LDU3MzkwLDU3MzkxLDU3MzkyLDU3MzkzLDU3Mzk0LDU3Mzk1LDU3Mzk2LDU3Mzk3LDU3Mzk4LDU3Mzk5LDU3NDAwLDU3NDAxLDU3NDAyLDU3NDAzLDU3NDA0'@; put 'LDU3NDA1LDU3NDA2LDU3NDA3LDU3NDA4LDU3NDA5LDU3NDEwLDU3NDExLDU3NDEyLDU3NDEzLDU3NDE0LDU3NDE1LDU3NDE2LDU3NDE3LDU3NDE4LDU3NDE5LDU3NDIwLDU3NDIxLDU3NDIyLDU3NDIzLDU3NDI0LDU3NDI1LDU3NDI2LDU3NDI3LDU3NDI4LDU3NDI5LDU3NDMwLDU3NDMxLDU3'@; put 'NDMyLDU3NDMzLDU3NDM0LDU3NDM1LDU3NDM2LDU3NDM3LDI5NTU0LDI5NTU1LDI5NTU2LDI5NTU3LDI5NTU4LDI5NTU5LDI5NTYwLDI5NTYxLDI5NTYyLDI5NTYzLDI5NTY0LDI5NTY1LDI5NTY3LDI5NTY4LDI5NTY5LDI5NTcwLDI5NTcxLDI5NTczLDI5NTc0LDI5NTc2LDI5NTc4LDI5NTgw'@; put 'LDI5NTgxLDI5NTgzLDI5NTg0LDI5NTg2LDI5NTg3LDI5NTg4LDI5NTg5LDI5NTkxLDI5NTkyLDI5NTkzLDI5NTk0LDI5NTk2LDI5NTk3LDI5NTk4LDI5NjAwLDI5NjAxLDI5NjAzLDI5NjA0LDI5NjA1LDI5NjA2LDI5NjA3LDI5NjA4LDI5NjEwLDI5NjEyLDI5NjEzLDI5NjE3LDI5NjIwLDI5'@; put 'NjIxLDI5NjIyLDI5NjI0LDI5NjI1LDI5NjI4LDI5NjI5LDI5NjMwLDI5NjMxLDI5NjMzLDI5NjM1LDI5NjM2LDI5NjM3LDI5NjM4LDI5NjM5LDI5NjQzLDI5NjQ0LDI5NjQ2LDI5NjUwLDI5NjUxLDI5NjUyLDI5NjUzLDI5NjU0LDI5NjU1LDI5NjU2LDI5NjU4LDI5NjU5LDI5NjYwLDI5NjYx'@; put 'LDI5NjYzLDI5NjY1LDI5NjY2LDI5NjY3LDI5NjY4LDI5NjcwLDI5NjcyLDI5Njc0LDI5Njc1LDI5Njc2LDI5Njc4LDI5Njc5LDI5NjgwLDI5NjgxLDI5NjgzLDI5Njg0LDI5Njg1LDI5Njg2LDI5Njg3LDU3NDM4LDU3NDM5LDU3NDQwLDU3NDQxLDU3NDQyLDU3NDQzLDU3NDQ0LDU3NDQ1LDU3'@; put 'NDQ2LDU3NDQ3LDU3NDQ4LDU3NDQ5LDU3NDUwLDU3NDUxLDU3NDUyLDU3NDUzLDU3NDU0LDU3NDU1LDU3NDU2LDU3NDU3LDU3NDU4LDU3NDU5LDU3NDYwLDU3NDYxLDU3NDYyLDU3NDYzLDU3NDY0LDU3NDY1LDU3NDY2LDU3NDY3LDU3NDY4LDU3NDY5LDU3NDcwLDU3NDcxLDU3NDcyLDU3NDcz'@; put 'LDU3NDc0LDU3NDc1LDU3NDc2LDU3NDc3LDU3NDc4LDU3NDc5LDU3NDgwLDU3NDgxLDU3NDgyLDU3NDgzLDU3NDg0LDU3NDg1LDU3NDg2LDU3NDg3LDU3NDg4LDU3NDg5LDU3NDkwLDU3NDkxLDU3NDkyLDU3NDkzLDU3NDk0LDU3NDk1LDU3NDk2LDU3NDk3LDU3NDk4LDU3NDk5LDU3NTAwLDU3'@; put 'NTAxLDU3NTAyLDU3NTAzLDU3NTA0LDU3NTA1LDU3NTA2LDU3NTA3LDU3NTA4LDU3NTA5LDU3NTEwLDU3NTExLDU3NTEyLDU3NTEzLDU3NTE0LDU3NTE1LDU3NTE2LDU3NTE3LDU3NTE4LDU3NTE5LDU3NTIwLDU3NTIxLDU3NTIyLDU3NTIzLDU3NTI0LDU3NTI1LDU3NTI2LDU3NTI3LDU3NTI4'@; put 'LDU3NTI5LDU3NTMwLDU3NTMxLDI5Njg4LDI5Njg5LDI5NjkwLDI5NjkxLDI5NjkyLDI5NjkzLDI5Njk0LDI5Njk1LDI5Njk2LDI5Njk3LDI5Njk4LDI5NzAwLDI5NzAzLDI5NzA0LDI5NzA3LDI5NzA4LDI5NzA5LDI5NzEwLDI5NzEzLDI5NzE0LDI5NzE1LDI5NzE2LDI5NzE3LDI5NzE4LDI5'@; put 'NzE5LDI5NzIwLDI5NzIxLDI5NzI0LDI5NzI1LDI5NzI2LDI5NzI3LDI5NzI4LDI5NzI5LDI5NzMxLDI5NzMyLDI5NzM1LDI5NzM3LDI5NzM5LDI5NzQxLDI5NzQzLDI5NzQ1LDI5NzQ2LDI5NzUxLDI5NzUyLDI5NzUzLDI5NzU0LDI5NzU1LDI5NzU3LDI5NzU4LDI5NzU5LDI5NzYwLDI5NzYy'@; put 'LDI5NzYzLDI5NzY0LDI5NzY1LDI5NzY2LDI5NzY3LDI5NzY4LDI5NzY5LDI5NzcwLDI5NzcxLDI5NzcyLDI5NzczLDI5Nzc0LDI5Nzc1LDI5Nzc2LDI5Nzc3LDI5Nzc4LDI5Nzc5LDI5NzgwLDI5NzgyLDI5Nzg0LDI5Nzg5LDI5NzkyLDI5NzkzLDI5Nzk0LDI5Nzk1LDI5Nzk2LDI5Nzk3LDI5'@; put 'Nzk4LDI5Nzk5LDI5ODAwLDI5ODAxLDI5ODAyLDI5ODAzLDI5ODA0LDI5ODA2LDI5ODA3LDI5ODA5LDI5ODEwLDI5ODExLDI5ODEyLDI5ODEzLDI5ODE2LDI5ODE3LDI5ODE4LDU3NTMyLDU3NTMzLDU3NTM0LDU3NTM1LDU3NTM2LDU3NTM3LDU3NTM4LDU3NTM5LDU3NTQwLDU3NTQxLDU3NTQy'@; put 'LDU3NTQzLDU3NTQ0LDU3NTQ1LDU3NTQ2LDU3NTQ3LDU3NTQ4LDU3NTQ5LDU3NTUwLDU3NTUxLDU3NTUyLDU3NTUzLDU3NTU0LDU3NTU1LDU3NTU2LDU3NTU3LDU3NTU4LDU3NTU5LDU3NTYwLDU3NTYxLDU3NTYyLDU3NTYzLDU3NTY0LDU3NTY1LDU3NTY2LDU3NTY3LDU3NTY4LDU3NTY5LDU3'@; put 'NTcwLDU3NTcxLDU3NTcyLDU3NTczLDU3NTc0LDU3NTc1LDU3NTc2LDU3NTc3LDU3NTc4LDU3NTc5LDU3NTgwLDU3NTgxLDU3NTgyLDU3NTgzLDU3NTg0LDU3NTg1LDU3NTg2LDU3NTg3LDU3NTg4LDU3NTg5LDU3NTkwLDU3NTkxLDU3NTkyLDU3NTkzLDU3NTk0LDU3NTk1LDU3NTk2LDU3NTk3'@; put 'LDU3NTk4LDU3NTk5LDU3NjAwLDU3NjAxLDU3NjAyLDU3NjAzLDU3NjA0LDU3NjA1LDU3NjA2LDU3NjA3LDU3NjA4LDU3NjA5LDU3NjEwLDU3NjExLDU3NjEyLDU3NjEzLDU3NjE0LDU3NjE1LDU3NjE2LDU3NjE3LDU3NjE4LDU3NjE5LDU3NjIwLDU3NjIxLDU3NjIyLDU3NjIzLDU3NjI0LDU3'@; put 'NjI1LDI5ODE5LDI5ODIwLDI5ODIxLDI5ODIzLDI5ODI2LDI5ODI4LDI5ODI5LDI5ODMwLDI5ODMyLDI5ODMzLDI5ODM0LDI5ODM2LDI5ODM3LDI5ODM5LDI5ODQxLDI5ODQyLDI5ODQzLDI5ODQ0LDI5ODQ1LDI5ODQ2LDI5ODQ3LDI5ODQ4LDI5ODQ5LDI5ODUwLDI5ODUxLDI5ODUzLDI5ODU1'@; put 'LDI5ODU2LDI5ODU3LDI5ODU4LDI5ODU5LDI5ODYwLDI5ODYxLDI5ODYyLDI5ODY2LDI5ODY3LDI5ODY4LDI5ODY5LDI5ODcwLDI5ODcxLDI5ODcyLDI5ODczLDI5ODc0LDI5ODc1LDI5ODc2LDI5ODc3LDI5ODc4LDI5ODc5LDI5ODgwLDI5ODgxLDI5ODgzLDI5ODg0LDI5ODg1LDI5ODg2LDI5'@; put 'ODg3LDI5ODg4LDI5ODg5LDI5ODkwLDI5ODkxLDI5ODkyLDI5ODkzLDI5ODk0LDI5ODk1LDI5ODk2LDI5ODk3LDI5ODk4LDI5ODk5LDI5OTAwLDI5OTAxLDI5OTAyLDI5OTAzLDI5OTA0LDI5OTA1LDI5OTA3LDI5OTA4LDI5OTA5LDI5OTEwLDI5OTExLDI5OTEyLDI5OTEzLDI5OTE0LDI5OTE1'@; put 'LDI5OTE3LDI5OTE5LDI5OTIxLDI5OTI1LDI5OTI3LDI5OTI4LDI5OTI5LDI5OTMwLDI5OTMxLDI5OTMyLDI5OTMzLDI5OTM2LDI5OTM3LDI5OTM4LDU3NjI2LDU3NjI3LDU3NjI4LDU3NjI5LDU3NjMwLDU3NjMxLDU3NjMyLDU3NjMzLDU3NjM0LDU3NjM1LDU3NjM2LDU3NjM3LDU3NjM4LDU3'@; put 'NjM5LDU3NjQwLDU3NjQxLDU3NjQyLDU3NjQzLDU3NjQ0LDU3NjQ1LDU3NjQ2LDU3NjQ3LDU3NjQ4LDU3NjQ5LDU3NjUwLDU3NjUxLDU3NjUyLDU3NjUzLDU3NjU0LDU3NjU1LDU3NjU2LDU3NjU3LDU3NjU4LDU3NjU5LDU3NjYwLDU3NjYxLDU3NjYyLDU3NjYzLDU3NjY0LDU3NjY1LDU3NjY2'@; put 'LDU3NjY3LDU3NjY4LDU3NjY5LDU3NjcwLDU3NjcxLDU3NjcyLDU3NjczLDU3Njc0LDU3Njc1LDU3Njc2LDU3Njc3LDU3Njc4LDU3Njc5LDU3NjgwLDU3NjgxLDU3NjgyLDU3NjgzLDU3Njg0LDU3Njg1LDU3Njg2LDU3Njg3LDU3Njg4LDU3Njg5LDU3NjkwLDU3NjkxLDU3NjkyLDU3NjkzLDU3'@; put 'Njk0LDU3Njk1LDU3Njk2LDU3Njk3LDU3Njk4LDU3Njk5LDU3NzAwLDU3NzAxLDU3NzAyLDU3NzAzLDU3NzA0LDU3NzA1LDU3NzA2LDU3NzA3LDU3NzA4LDU3NzA5LDU3NzEwLDU3NzExLDU3NzEyLDU3NzEzLDU3NzE0LDU3NzE1LDU3NzE2LDU3NzE3LDU3NzE4LDU3NzE5LDI5OTM5LDI5OTQx'@; put 'LDI5OTQ0LDI5OTQ1LDI5OTQ2LDI5OTQ3LDI5OTQ4LDI5OTQ5LDI5OTUwLDI5OTUyLDI5OTUzLDI5OTU0LDI5OTU1LDI5OTU3LDI5OTU4LDI5OTU5LDI5OTYwLDI5OTYxLDI5OTYyLDI5OTYzLDI5OTY0LDI5OTY2LDI5OTY4LDI5OTcwLDI5OTcyLDI5OTczLDI5OTc0LDI5OTc1LDI5OTc5LDI5'@; put 'OTgxLDI5OTgyLDI5OTg0LDI5OTg1LDI5OTg2LDI5OTg3LDI5OTg4LDI5OTkwLDI5OTkxLDI5OTk0LDI5OTk4LDMwMDA0LDMwMDA2LDMwMDA5LDMwMDEyLDMwMDEzLDMwMDE1LDMwMDE3LDMwMDE4LDMwMDE5LDMwMDIwLDMwMDIyLDMwMDIzLDMwMDI1LDMwMDI2LDMwMDI5LDMwMDMyLDMwMDMz'@; put 'LDMwMDM0LDMwMDM1LDMwMDM3LDMwMDM4LDMwMDM5LDMwMDQwLDMwMDQ1LDMwMDQ2LDMwMDQ3LDMwMDQ4LDMwMDQ5LDMwMDUwLDMwMDUxLDMwMDUyLDMwMDU1LDMwMDU2LDMwMDU3LDMwMDU5LDMwMDYwLDMwMDYxLDMwMDYyLDMwMDYzLDMwMDY0LDMwMDY1LDMwMDY3LDMwMDY5LDMwMDcwLDMw'@; put 'MDcxLDMwMDc0LDMwMDc1LDMwMDc2LDMwMDc3LDMwMDc4LDMwMDgwLDMwMDgxLDMwMDgyLDMwMDg0LDMwMDg1LDMwMDg3LDU3NzIwLDU3NzIxLDU3NzIyLDU3NzIzLDU3NzI0LDU3NzI1LDU3NzI2LDU3NzI3LDU3NzI4LDU3NzI5LDU3NzMwLDU3NzMxLDU3NzMyLDU3NzMzLDU3NzM0LDU3NzM1'@; put 'LDU3NzM2LDU3NzM3LDU3NzM4LDU3NzM5LDU3NzQwLDU3NzQxLDU3NzQyLDU3NzQzLDU3NzQ0LDU3NzQ1LDU3NzQ2LDU3NzQ3LDU3NzQ4LDU3NzQ5LDU3NzUwLDU3NzUxLDU3NzUyLDU3NzUzLDU3NzU0LDU3NzU1LDU3NzU2LDU3NzU3LDU3NzU4LDU3NzU5LDU3NzYwLDU3NzYxLDU3NzYyLDU3'@; put 'NzYzLDU3NzY0LDU3NzY1LDU3NzY2LDU3NzY3LDU3NzY4LDU3NzY5LDU3NzcwLDU3NzcxLDU3NzcyLDU3NzczLDU3Nzc0LDU3Nzc1LDU3Nzc2LDU3Nzc3LDU3Nzc4LDU3Nzc5LDU3NzgwLDU3NzgxLDU3NzgyLDU3NzgzLDU3Nzg0LDU3Nzg1LDU3Nzg2LDU3Nzg3LDU3Nzg4LDU3Nzg5LDU3Nzkw'@; put 'LDU3NzkxLDU3NzkyLDU3NzkzLDU3Nzk0LDU3Nzk1LDU3Nzk2LDU3Nzk3LDU3Nzk4LDU3Nzk5LDU3ODAwLDU3ODAxLDU3ODAyLDU3ODAzLDU3ODA0LDU3ODA1LDU3ODA2LDU3ODA3LDU3ODA4LDU3ODA5LDU3ODEwLDU3ODExLDU3ODEyLDU3ODEzLDMwMDg4LDMwMDg5LDMwMDkwLDMwMDkyLDMw'@; put 'MDkzLDMwMDk0LDMwMDk2LDMwMDk5LDMwMTAxLDMwMTA0LDMwMTA3LDMwMTA4LDMwMTEwLDMwMTE0LDMwMTE4LDMwMTE5LDMwMTIwLDMwMTIxLDMwMTIyLDMwMTI1LDMwMTM0LDMwMTM1LDMwMTM4LDMwMTM5LDMwMTQzLDMwMTQ0LDMwMTQ1LDMwMTUwLDMwMTU1LDMwMTU2LDMwMTU4LDMwMTU5'@; put 'LDMwMTYwLDMwMTYxLDMwMTYzLDMwMTY3LDMwMTY5LDMwMTcwLDMwMTcyLDMwMTczLDMwMTc1LDMwMTc2LDMwMTc3LDMwMTgxLDMwMTg1LDMwMTg4LDMwMTg5LDMwMTkwLDMwMTkxLDMwMTk0LDMwMTk1LDMwMTk3LDMwMTk4LDMwMTk5LDMwMjAwLDMwMjAyLDMwMjAzLDMwMjA1LDMwMjA2LDMw'@; put 'MjEwLDMwMjEyLDMwMjE0LDMwMjE1LDMwMjE2LDMwMjE3LDMwMjE5LDMwMjIxLDMwMjIyLDMwMjIzLDMwMjI1LDMwMjI2LDMwMjI3LDMwMjI4LDMwMjMwLDMwMjM0LDMwMjM2LDMwMjM3LDMwMjM4LDMwMjQxLDMwMjQzLDMwMjQ3LDMwMjQ4LDMwMjUyLDMwMjU0LDMwMjU1LDMwMjU3LDMwMjU4'@; put 'LDMwMjYyLDMwMjYzLDMwMjY1LDMwMjY2LDMwMjY3LDMwMjY5LDMwMjczLDMwMjc0LDMwMjc2LDU3ODE0LDU3ODE1LDU3ODE2LDU3ODE3LDU3ODE4LDU3ODE5LDU3ODIwLDU3ODIxLDU3ODIyLDU3ODIzLDU3ODI0LDU3ODI1LDU3ODI2LDU3ODI3LDU3ODI4LDU3ODI5LDU3ODMwLDU3ODMxLDU3'@; put 'ODMyLDU3ODMzLDU3ODM0LDU3ODM1LDU3ODM2LDU3ODM3LDU3ODM4LDU3ODM5LDU3ODQwLDU3ODQxLDU3ODQyLDU3ODQzLDU3ODQ0LDU3ODQ1LDU3ODQ2LDU3ODQ3LDU3ODQ4LDU3ODQ5LDU3ODUwLDU3ODUxLDU3ODUyLDU3ODUzLDU3ODU0LDU3ODU1LDU3ODU2LDU3ODU3LDU3ODU4LDU3ODU5'@; put 'LDU3ODYwLDU3ODYxLDU3ODYyLDU3ODYzLDU3ODY0LDU3ODY1LDU3ODY2LDU3ODY3LDU3ODY4LDU3ODY5LDU3ODcwLDU3ODcxLDU3ODcyLDU3ODczLDU3ODc0LDU3ODc1LDU3ODc2LDU3ODc3LDU3ODc4LDU3ODc5LDU3ODgwLDU3ODgxLDU3ODgyLDU3ODgzLDU3ODg0LDU3ODg1LDU3ODg2LDU3'@; put 'ODg3LDU3ODg4LDU3ODg5LDU3ODkwLDU3ODkxLDU3ODkyLDU3ODkzLDU3ODk0LDU3ODk1LDU3ODk2LDU3ODk3LDU3ODk4LDU3ODk5LDU3OTAwLDU3OTAxLDU3OTAyLDU3OTAzLDU3OTA0LDU3OTA1LDU3OTA2LDU3OTA3LDMwMjc3LDMwMjc4LDMwMjc5LDMwMjgwLDMwMjgxLDMwMjgyLDMwMjgz'@; put 'LDMwMjg2LDMwMjg3LDMwMjg4LDMwMjg5LDMwMjkwLDMwMjkxLDMwMjkzLDMwMjk1LDMwMjk2LDMwMjk3LDMwMjk4LDMwMjk5LDMwMzAxLDMwMzAzLDMwMzA0LDMwMzA1LDMwMzA2LDMwMzA4LDMwMzA5LDMwMzEwLDMwMzExLDMwMzEyLDMwMzEzLDMwMzE0LDMwMzE2LDMwMzE3LDMwMzE4LDMw'@; put 'MzIwLDMwMzIxLDMwMzIyLDMwMzIzLDMwMzI0LDMwMzI1LDMwMzI2LDMwMzI3LDMwMzI5LDMwMzMwLDMwMzMyLDMwMzM1LDMwMzM2LDMwMzM3LDMwMzM5LDMwMzQxLDMwMzQ1LDMwMzQ2LDMwMzQ4LDMwMzQ5LDMwMzUxLDMwMzUyLDMwMzU0LDMwMzU2LDMwMzU3LDMwMzU5LDMwMzYwLDMwMzYy'@; put 'LDMwMzYzLDMwMzY0LDMwMzY1LDMwMzY2LDMwMzY3LDMwMzY4LDMwMzY5LDMwMzcwLDMwMzcxLDMwMzczLDMwMzc0LDMwMzc1LDMwMzc2LDMwMzc3LDMwMzc4LDMwMzc5LDMwMzgwLDMwMzgxLDMwMzgzLDMwMzg0LDMwMzg3LDMwMzg5LDMwMzkwLDMwMzkxLDMwMzkyLDMwMzkzLDMwMzk0LDMw'@; put 'Mzk1LDMwMzk2LDMwMzk3LDMwMzk4LDMwNDAwLDMwNDAxLDMwNDAzLDIxODM0LDM4NDYzLDIyNDY3LDI1Mzg0LDIxNzEwLDIxNzY5LDIxNjk2LDMwMzUzLDMwMjg0LDM0MTA4LDMwNzAyLDMzNDA2LDMwODYxLDI5MjMzLDM4NTUyLDM4Nzk3LDI3Njg4LDIzNDMzLDIwNDc0LDI1MzUzLDI2MjYz'@; put 'LDIzNzM2LDMzMDE4LDI2Njk2LDMyOTQyLDI2MTE0LDMwNDE0LDIwOTg1LDI1OTQyLDI5MTAwLDMyNzUzLDM0OTQ4LDIwNjU4LDIyODg1LDI1MDM0LDI4NTk1LDMzNDUzLDI1NDIwLDI1MTcwLDIxNDg1LDIxNTQzLDMxNDk0LDIwODQzLDMwMTE2LDI0MDUyLDI1MzAwLDM2Mjk5LDM4Nzc0LDI1'@; put 'MjI2LDMyNzkzLDIyMzY1LDM4NzEyLDMyNjEwLDI5MjQwLDMwMzMzLDI2NTc1LDMwMzM0LDI1NjcwLDIwMzM2LDM2MTMzLDI1MzA4LDMxMjU1LDI2MDAxLDI5Njc3LDI1NjQ0LDI1MjAzLDMzMzI0LDM5MDQxLDI2NDk1LDI5MjU2LDI1MTk4LDI1MjkyLDIwMjc2LDI5OTIzLDIxMzIyLDIxMTUw'@; put 'LDMyNDU4LDM3MDMwLDI0MTEwLDI2NzU4LDI3MDM2LDMzMTUyLDMyNDY1LDI2ODM0LDMwOTE3LDM0NDQ0LDM4MjI1LDIwNjIxLDM1ODc2LDMzNTAyLDMyOTkwLDIxMjUzLDM1MDkwLDIxMDkzLDMwNDA0LDMwNDA3LDMwNDA5LDMwNDExLDMwNDEyLDMwNDE5LDMwNDIxLDMwNDI1LDMwNDI2LDMw'@; put 'NDI4LDMwNDI5LDMwNDMwLDMwNDMyLDMwNDMzLDMwNDM0LDMwNDM1LDMwNDM2LDMwNDM4LDMwNDM5LDMwNDQwLDMwNDQxLDMwNDQyLDMwNDQzLDMwNDQ0LDMwNDQ1LDMwNDQ4LDMwNDUxLDMwNDUzLDMwNDU0LDMwNDU1LDMwNDU4LDMwNDU5LDMwNDYxLDMwNDYzLDMwNDY0LDMwNDY2LDMwNDY3'@; put 'LDMwNDY5LDMwNDcwLDMwNDc0LDMwNDc2LDMwNDc4LDMwNDc5LDMwNDgwLDMwNDgxLDMwNDgyLDMwNDgzLDMwNDg0LDMwNDg1LDMwNDg2LDMwNDg3LDMwNDg4LDMwNDkxLDMwNDkyLDMwNDkzLDMwNDk0LDMwNDk3LDMwNDk5LDMwNTAwLDMwNTAxLDMwNTAzLDMwNTA2LDMwNTA3LDMwNTA4LDMw'@; put 'NTEwLDMwNTEyLDMwNTEzLDMwNTE0LDMwNTE1LDMwNTE2LDMwNTIxLDMwNTIzLDMwNTI1LDMwNTI2LDMwNTI3LDMwNTMwLDMwNTMyLDMwNTMzLDMwNTM0LDMwNTM2LDMwNTM3LDMwNTM4LDMwNTM5LDMwNTQwLDMwNTQxLDMwNTQyLDMwNTQzLDMwNTQ2LDMwNTQ3LDMwNTQ4LDMwNTQ5LDMwNTUw'@; put 'LDMwNTUxLDMwNTUyLDMwNTUzLDMwNTU2LDM0MTgwLDM4NjQ5LDIwNDQ1LDIyNTYxLDM5MjgxLDIzNDUzLDI1MjY1LDI1MjUzLDI2MjkyLDM1OTYxLDQwMDc3LDI5MTkwLDI2NDc5LDMwODY1LDI0NzU0LDIxMzI5LDIxMjcxLDM2NzQ0LDMyOTcyLDM2MTI1LDM4MDQ5LDIwNDkzLDI5Mzg0LDIy'@; put 'NzkxLDI0ODExLDI4OTUzLDM0OTg3LDIyODY4LDMzNTE5LDI2NDEyLDMxNTI4LDIzODQ5LDMyNTAzLDI5OTk3LDI3ODkzLDM2NDU0LDM2ODU2LDM2OTI0LDQwNzYzLDI3NjA0LDM3MTQ1LDMxNTA4LDI0NDQ0LDMwODg3LDM0MDA2LDM0MTA5LDI3NjA1LDI3NjA5LDI3NjA2LDI0MDY1LDI0MTk5'@; put 'LDMwMjAxLDM4MzgxLDI1OTQ5LDI0MzMwLDI0NTE3LDM2NzY3LDIyNzIxLDMzMjE4LDM2OTkxLDM4NDkxLDM4ODI5LDM2NzkzLDMyNTM0LDM2MTQwLDI1MTUzLDIwNDE1LDIxNDY0LDIxMzQyLDM2Nzc2LDM2Nzc3LDM2Nzc5LDM2OTQxLDI2NjMxLDI0NDI2LDMzMTc2LDM0OTIwLDQwMTUwLDI0'@; put 'OTcxLDIxMDM1LDMwMjUwLDI0NDI4LDI1OTk2LDI4NjI2LDI4MzkyLDIzNDg2LDI1NjcyLDIwODUzLDIwOTEyLDI2NTY0LDE5OTkzLDMxMTc3LDM5MjkyLDI4ODUxLDMwNTU3LDMwNTU4LDMwNTU5LDMwNTYwLDMwNTY0LDMwNTY3LDMwNTY5LDMwNTcwLDMwNTczLDMwNTc0LDMwNTc1LDMwNTc2'@; put 'LDMwNTc3LDMwNTc4LDMwNTc5LDMwNTgwLDMwNTgxLDMwNTgyLDMwNTgzLDMwNTg0LDMwNTg2LDMwNTg3LDMwNTg4LDMwNTkzLDMwNTk0LDMwNTk1LDMwNTk4LDMwNTk5LDMwNjAwLDMwNjAxLDMwNjAyLDMwNjAzLDMwNjA3LDMwNjA4LDMwNjExLDMwNjEyLDMwNjEzLDMwNjE0LDMwNjE1LDMw'@; put 'NjE2LDMwNjE3LDMwNjE4LDMwNjE5LDMwNjIwLDMwNjIxLDMwNjIyLDMwNjI1LDMwNjI3LDMwNjI4LDMwNjMwLDMwNjMyLDMwNjM1LDMwNjM3LDMwNjM4LDMwNjM5LDMwNjQxLDMwNjQyLDMwNjQ0LDMwNjQ2LDMwNjQ3LDMwNjQ4LDMwNjQ5LDMwNjUwLDMwNjUyLDMwNjU0LDMwNjU2LDMwNjU3'@; put 'LDMwNjU4LDMwNjU5LDMwNjYwLDMwNjYxLDMwNjYyLDMwNjYzLDMwNjY0LDMwNjY1LDMwNjY2LDMwNjY3LDMwNjY4LDMwNjcwLDMwNjcxLDMwNjcyLDMwNjczLDMwNjc0LDMwNjc1LDMwNjc2LDMwNjc3LDMwNjc4LDMwNjgwLDMwNjgxLDMwNjgyLDMwNjg1LDMwNjg2LDMwNjg3LDMwNjg4LDMw'@; put 'Njg5LDMwNjkyLDMwMTQ5LDI0MTgyLDI5NjI3LDMzNzYwLDI1NzczLDI1MzIwLDM4MDY5LDI3ODc0LDIxMzM4LDIxMTg3LDI1NjE1LDM4MDgyLDMxNjM2LDIwMjcxLDI0MDkxLDMzMzM0LDMzMDQ2LDMzMTYyLDI4MTk2LDI3ODUwLDM5NTM5LDI1NDI5LDIxMzQwLDIxNzU0LDM0OTE3LDIyNDk2'@; put 'LDE5OTgxLDI0MDY3LDI3NDkzLDMxODA3LDM3MDk2LDI0NTk4LDI1ODMwLDI5NDY4LDM1MDA5LDI2NDQ4LDI1MTY1LDM2MTMwLDMwNTcyLDM2MzkzLDM3MzE5LDI0NDI1LDMzNzU2LDM0MDgxLDM5MTg0LDIxNDQyLDM0NDUzLDI3NTMxLDI0ODEzLDI0ODA4LDI4Nzk5LDMzNDg1LDMzMzI5LDIw'@; put 'MTc5LDI3ODE1LDM0MjU1LDI1ODA1LDMxOTYxLDI3MTMzLDI2MzYxLDMzNjA5LDIxMzk3LDMxNTc0LDIwMzkxLDIwODc2LDI3OTc5LDIzNjE4LDM2NDYxLDI1NTU0LDIxNDQ5LDMzNTgwLDMzNTkwLDI2NTk3LDMwOTAwLDI1NjYxLDIzNTE5LDIzNzAwLDI0MDQ2LDM1ODE1LDI1Mjg2LDI2NjEy'@; put 'LDM1OTYyLDI1NjAwLDI1NTMwLDM0NjMzLDM5MzA3LDM1ODYzLDMyNTQ0LDM4MTMwLDIwMTM1LDM4NDE2LDM5MDc2LDI2MTI0LDI5NDYyLDMwNjk0LDMwNjk2LDMwNjk4LDMwNzAzLDMwNzA0LDMwNzA1LDMwNzA2LDMwNzA4LDMwNzA5LDMwNzExLDMwNzEzLDMwNzE0LDMwNzE1LDMwNzE2LDMw'@; put 'NzIzLDMwNzI0LDMwNzI1LDMwNzI2LDMwNzI3LDMwNzI4LDMwNzMwLDMwNzMxLDMwNzM0LDMwNzM1LDMwNzM2LDMwNzM5LDMwNzQxLDMwNzQ1LDMwNzQ3LDMwNzUwLDMwNzUyLDMwNzUzLDMwNzU0LDMwNzU2LDMwNzYwLDMwNzYyLDMwNzYzLDMwNzY2LDMwNzY3LDMwNzY5LDMwNzcwLDMwNzcx'@; put 'LDMwNzczLDMwNzc0LDMwNzgxLDMwNzgzLDMwNzg1LDMwNzg2LDMwNzg3LDMwNzg4LDMwNzkwLDMwNzkyLDMwNzkzLDMwNzk0LDMwNzk1LDMwNzk3LDMwNzk5LDMwODAxLDMwODAzLDMwODA0LDMwODA4LDMwODA5LDMwODEwLDMwODExLDMwODEyLDMwODE0LDMwODE1LDMwODE2LDMwODE3LDMw'@; put 'ODE4LDMwODE5LDMwODIwLDMwODIxLDMwODIyLDMwODIzLDMwODI0LDMwODI1LDMwODMxLDMwODMyLDMwODMzLDMwODM0LDMwODM1LDMwODM2LDMwODM3LDMwODM4LDMwODQwLDMwODQxLDMwODQyLDMwODQzLDMwODQ1LDMwODQ2LDMwODQ3LDMwODQ4LDMwODQ5LDMwODUwLDMwODUxLDIyMzMw'@; put 'LDIzNTgxLDI0MTIwLDM4MjcxLDIwNjA3LDMyOTI4LDIxMzc4LDI1OTUwLDMwMDIxLDIxODA5LDIwNTEzLDM2MjI5LDI1MjIwLDM4MDQ2LDI2Mzk3LDIyMDY2LDI4NTI2LDI0MDM0LDIxNTU3LDI4ODE4LDM2NzEwLDI1MTk5LDI1NzY0LDI1NTA3LDI0NDQzLDI4NTUyLDM3MTA4LDMzMjUxLDM2'@; put 'Nzg0LDIzNTc2LDI2MjE2LDI0NTYxLDI3Nzg1LDM4NDcyLDM2MjI1LDM0OTI0LDI1NzQ1LDMxMjE2LDIyNDc4LDI3MjI1LDI1MTA0LDIxNTc2LDIwMDU2LDMxMjQzLDI0ODA5LDI4NTQ4LDM1ODAyLDI1MjE1LDM2ODk0LDM5NTYzLDMxMjA0LDIxNTA3LDMwMTk2LDI1MzQ1LDIxMjczLDI3NzQ0'@; put 'LDM2ODMxLDI0MzQ3LDM5NTM2LDMyODI3LDQwODMxLDIwMzYwLDIzNjEwLDM2MTk2LDMyNzA5LDI2MDIxLDI4ODYxLDIwODA1LDIwOTE0LDM0NDExLDIzODE1LDIzNDU2LDI1Mjc3LDM3MjI4LDMwMDY4LDM2MzY0LDMxMjY0LDI0ODMzLDMxNjA5LDIwMTY3LDMyNTA0LDMwNTk3LDE5OTg1LDMz'@; put 'MjYxLDIxMDIxLDIwOTg2LDI3MjQ5LDIxNDE2LDM2NDg3LDM4MTQ4LDM4NjA3LDI4MzUzLDM4NTAwLDI2OTcwLDMwODUyLDMwODUzLDMwODU0LDMwODU2LDMwODU4LDMwODU5LDMwODYzLDMwODY0LDMwODY2LDMwODY4LDMwODY5LDMwODcwLDMwODczLDMwODc3LDMwODc4LDMwODgwLDMwODgy'@; put 'LDMwODg0LDMwODg2LDMwODg4LDMwODg5LDMwODkwLDMwODkxLDMwODkyLDMwODkzLDMwODk0LDMwODk1LDMwOTAxLDMwOTAyLDMwOTAzLDMwOTA0LDMwOTA2LDMwOTA3LDMwOTA4LDMwOTA5LDMwOTExLDMwOTEyLDMwOTE0LDMwOTE1LDMwOTE2LDMwOTE4LDMwOTE5LDMwOTIwLDMwOTI0LDMw'@; put 'OTI1LDMwOTI2LDMwOTI3LDMwOTI5LDMwOTMwLDMwOTMxLDMwOTM0LDMwOTM1LDMwOTM2LDMwOTM4LDMwOTM5LDMwOTQwLDMwOTQxLDMwOTQyLDMwOTQzLDMwOTQ0LDMwOTQ1LDMwOTQ2LDMwOTQ3LDMwOTQ4LDMwOTQ5LDMwOTUwLDMwOTUxLDMwOTUzLDMwOTU0LDMwOTU1LDMwOTU3LDMwOTU4'@; put 'LDMwOTU5LDMwOTYwLDMwOTYxLDMwOTYzLDMwOTY1LDMwOTY2LDMwOTY4LDMwOTY5LDMwOTcxLDMwOTcyLDMwOTczLDMwOTc0LDMwOTc1LDMwOTc2LDMwOTc4LDMwOTc5LDMwOTgwLDMwOTgyLDMwOTgzLDMwOTg0LDMwOTg1LDMwOTg2LDMwOTg3LDMwOTg4LDMwNzg0LDIwNjQ4LDMwNjc5LDI1'@; put 'NjE2LDM1MzAyLDIyNzg4LDI1NTcxLDI0MDI5LDMxMzU5LDI2OTQxLDIwMjU2LDMzMzM3LDIxOTEyLDIwMDE4LDMwMTI2LDMxMzgzLDI0MTYyLDI0MjAyLDM4MzgzLDIxMDE5LDIxNTYxLDI4ODEwLDI1NDYyLDM4MTgwLDIyNDAyLDI2MTQ5LDI2OTQzLDM3MjU1LDIxNzY3LDI4MTQ3LDMyNDMx'@; put 'LDM0ODUwLDI1MTM5LDMyNDk2LDMwMTMzLDMzNTc2LDMwOTEzLDM4NjA0LDM2NzY2LDI0OTA0LDI5OTQzLDM1Nzg5LDI3NDkyLDIxMDUwLDM2MTc2LDI3NDI1LDMyODc0LDMzOTA1LDIyMjU3LDIxMjU0LDIwMTc0LDE5OTk1LDIwOTQ1LDMxODk1LDM3MjU5LDMxNzUxLDIwNDE5LDM2NDc5LDMx'@; put 'NzEzLDMxMzg4LDI1NzAzLDIzODI4LDIwNjUyLDMzMDMwLDMwMjA5LDMxOTI5LDI4MTQwLDMyNzM2LDI2NDQ5LDIzMzg0LDIzNTQ0LDMwOTIzLDI1Nzc0LDI1NjE5LDI1NTE0LDI1Mzg3LDM4MTY5LDI1NjQ1LDM2Nzk4LDMxNTcyLDMwMjQ5LDI1MTcxLDIyODIzLDIxNTc0LDI3NTEzLDIwNjQz'@; put 'LDI1MTQwLDI0MTAyLDI3NTI2LDIwMTk1LDM2MTUxLDM0OTU1LDI0NDUzLDM2OTEwLDMwOTg5LDMwOTkwLDMwOTkxLDMwOTkyLDMwOTkzLDMwOTk0LDMwOTk2LDMwOTk3LDMwOTk4LDMwOTk5LDMxZTMsMzEwMDEsMzEwMDIsMzEwMDMsMzEwMDQsMzEwMDUsMzEwMDcsMzEwMDgsMzEwMDksMzEw'@; put 'MTAsMzEwMTEsMzEwMTMsMzEwMTQsMzEwMTUsMzEwMTYsMzEwMTcsMzEwMTgsMzEwMTksMzEwMjAsMzEwMjEsMzEwMjIsMzEwMjMsMzEwMjQsMzEwMjUsMzEwMjYsMzEwMjcsMzEwMjksMzEwMzAsMzEwMzEsMzEwMzIsMzEwMzMsMzEwMzcsMzEwMzksMzEwNDIsMzEwNDMsMzEwNDQsMzEwNDUs'@; put 'MzEwNDcsMzEwNTAsMzEwNTEsMzEwNTIsMzEwNTMsMzEwNTQsMzEwNTUsMzEwNTYsMzEwNTcsMzEwNTgsMzEwNjAsMzEwNjEsMzEwNjQsMzEwNjUsMzEwNzMsMzEwNzUsMzEwNzYsMzEwNzgsMzEwODEsMzEwODIsMzEwODMsMzEwODQsMzEwODYsMzEwODgsMzEwODksMzEwOTAsMzEwOTEsMzEw'@; put 'OTIsMzEwOTMsMzEwOTQsMzEwOTcsMzEwOTksMzExMDAsMzExMDEsMzExMDIsMzExMDMsMzExMDYsMzExMDcsMzExMTAsMzExMTEsMzExMTIsMzExMTMsMzExMTUsMzExMTYsMzExMTcsMzExMTgsMzExMjAsMzExMjEsMzExMjIsMjQ2MDgsMzI4MjksMjUyODUsMjAwMjUsMjEzMzMsMzcxMTIs'@; put 'MjU1MjgsMzI5NjYsMjYwODYsMjc2OTQsMjAyOTQsMjQ4MTQsMjgxMjksMzU4MDYsMjQzNzcsMzQ1MDcsMjQ0MDMsMjUzNzcsMjA4MjYsMzM2MzMsMjY3MjMsMjA5OTIsMjU0NDMsMzY0MjQsMjA0OTgsMjM3MDcsMzEwOTUsMjM1NDgsMjEwNDAsMzEyOTEsMjQ3NjQsMzY5NDcsMzA0MjMsMjQ1'@; put 'MDMsMjQ0NzEsMzAzNDAsMzY0NjAsMjg3ODMsMzAzMzEsMzE1NjEsMzA2MzQsMjA5NzksMzcwMTEsMjI1NjQsMjAzMDIsMjg0MDQsMzY4NDIsMjU5MzIsMzE1MTUsMjkzODAsMjgwNjgsMzI3MzUsMjMyNjUsMjUyNjksMjQyMTMsMjIzMjAsMzM5MjIsMzE1MzIsMjQwOTMsMjQzNTEsMzY4ODIs'@; put 'MzI1MzIsMzkwNzIsMjU0NzQsMjgzNTksMzA4NzIsMjg4NTcsMjA4NTYsMzg3NDcsMjI0NDMsMzAwMDUsMjAyOTEsMzAwMDgsMjQyMTUsMjQ4MDYsMjI4ODAsMjgwOTYsMjc1ODMsMzA4NTcsMjE1MDAsMzg2MTMsMjA5MzksMjA5OTMsMjU0ODEsMjE1MTQsMzgwMzUsMzU4NDMsMzYzMDAsMjky'@; put 'NDEsMzA4NzksMzQ2NzgsMzY4NDUsMzU4NTMsMjE0NzIsMzExMjMsMzExMjQsMzExMjUsMzExMjYsMzExMjcsMzExMjgsMzExMjksMzExMzEsMzExMzIsMzExMzMsMzExMzQsMzExMzUsMzExMzYsMzExMzcsMzExMzgsMzExMzksMzExNDAsMzExNDEsMzExNDIsMzExNDQsMzExNDUsMzExNDYs'@; put 'MzExNDcsMzExNDgsMzExNDksMzExNTAsMzExNTEsMzExNTIsMzExNTMsMzExNTQsMzExNTYsMzExNTcsMzExNTgsMzExNTksMzExNjAsMzExNjQsMzExNjcsMzExNzAsMzExNzIsMzExNzMsMzExNzUsMzExNzYsMzExNzgsMzExODAsMzExODIsMzExODMsMzExODQsMzExODcsMzExODgsMzEx'@; put 'OTAsMzExOTEsMzExOTMsMzExOTQsMzExOTUsMzExOTYsMzExOTcsMzExOTgsMzEyMDAsMzEyMDEsMzEyMDIsMzEyMDUsMzEyMDgsMzEyMTAsMzEyMTIsMzEyMTQsMzEyMTcsMzEyMTgsMzEyMTksMzEyMjAsMzEyMjEsMzEyMjIsMzEyMjMsMzEyMjUsMzEyMjYsMzEyMjgsMzEyMzAsMzEyMzEs'@; put 'MzEyMzMsMzEyMzYsMzEyMzcsMzEyMzksMzEyNDAsMzEyNDEsMzEyNDIsMzEyNDQsMzEyNDcsMzEyNDgsMzEyNDksMzEyNTAsMzEyNTEsMzEyNTMsMzEyNTQsMzEyNTYsMzEyNTcsMzEyNTksMzEyNjAsMTk5NjksMzA0NDcsMjE0ODYsMzgwMjUsMzkwMzAsNDA3MTgsMzgxODksMjM0NTAsMzU3'@; put 'NDYsMjAwMDIsMTk5OTYsMjA5MDgsMzM4OTEsMjUwMjYsMjExNjAsMjY2MzUsMjAzNzUsMjQ2ODMsMjA5MjMsMjc5MzQsMjA4MjgsMjUyMzgsMjYwMDcsMzg0OTcsMzU5MTAsMzY4ODcsMzAxNjgsMzcxMTcsMzA1NjMsMjc2MDIsMjkzMjIsMjk0MjAsMzU4MzUsMjI1ODEsMzA1ODUsMzYxNzIs'@; put 'MjY0NjAsMzgyMDgsMzI5MjIsMjQyMzAsMjgxOTMsMjI5MzAsMzE0NzEsMzA3MDEsMzgyMDMsMjc1NzMsMjYwMjksMzI1MjYsMjI1MzQsMjA4MTcsMzg0MzEsMjM1NDUsMjI2OTcsMjE1NDQsMzY0NjYsMjU5NTgsMzkwMzksMjIyNDQsMzgwNDUsMzA0NjIsMzY5MjksMjU0NzksMjE3MDIsMjI4'@; put 'MTAsMjI4NDIsMjI0MjcsMzY1MzAsMjY0MjEsMzYzNDYsMzMzMzMsMjEwNTcsMjQ4MTYsMjI1NDksMzQ1NTgsMjM3ODQsNDA1MTcsMjA0MjAsMzkwNjksMzU3NjksMjMwNzcsMjQ2OTQsMjEzODAsMjUyMTIsMzY5NDMsMzcxMjIsMzkyOTUsMjQ2ODEsMzI3ODAsMjA3OTksMzI4MTksMjM1NzIs'@; put 'MzkyODUsMjc5NTMsMjAxMDgsMzEyNjEsMzEyNjMsMzEyNjUsMzEyNjYsMzEyNjgsMzEyNjksMzEyNzAsMzEyNzEsMzEyNzIsMzEyNzMsMzEyNzQsMzEyNzUsMzEyNzYsMzEyNzcsMzEyNzgsMzEyNzksMzEyODAsMzEyODEsMzEyODIsMzEyODQsMzEyODUsMzEyODYsMzEyODgsMzEyOTAsMzEy'@; put 'OTQsMzEyOTYsMzEyOTcsMzEyOTgsMzEyOTksMzEzMDAsMzEzMDEsMzEzMDMsMzEzMDQsMzEzMDUsMzEzMDYsMzEzMDcsMzEzMDgsMzEzMDksMzEzMTAsMzEzMTEsMzEzMTIsMzEzMTQsMzEzMTUsMzEzMTYsMzEzMTcsMzEzMTgsMzEzMjAsMzEzMjEsMzEzMjIsMzEzMjMsMzEzMjQsMzEzMjUs'@; put 'MzEzMjYsMzEzMjcsMzEzMjgsMzEzMjksMzEzMzAsMzEzMzEsMzEzMzIsMzEzMzMsMzEzMzQsMzEzMzUsMzEzMzYsMzEzMzcsMzEzMzgsMzEzMzksMzEzNDAsMzEzNDEsMzEzNDIsMzEzNDMsMzEzNDUsMzEzNDYsMzEzNDcsMzEzNDksMzEzNTUsMzEzNTYsMzEzNTcsMzEzNTgsMzEzNjIsMzEz'@; put 'NjUsMzEzNjcsMzEzNjksMzEzNzAsMzEzNzEsMzEzNzIsMzEzNzQsMzEzNzUsMzEzNzYsMzEzNzksMzEzODAsMzEzODUsMzEzODYsMzEzODcsMzEzOTAsMzEzOTMsMzEzOTQsMzYxNDQsMjE0NTcsMzI2MDIsMzE1NjcsMjAyNDAsMjAwNDcsMzg0MDAsMjc4NjEsMjk2NDgsMzQyODEsMjQwNzAs'@; put 'MzAwNTgsMzI3NjMsMjcxNDYsMzA3MTgsMzgwMzQsMzIzMjEsMjA5NjEsMjg5MDIsMjE0NTMsMzY4MjAsMzM1MzksMzYxMzcsMjkzNTksMzkyNzcsMjc4NjcsMjIzNDYsMzM0NTksMjYwNDEsMzI5MzgsMjUxNTEsMzg0NTAsMjI5NTIsMjAyMjMsMzU3NzUsMzI0NDIsMjU5MTgsMzM3NzgsMzg3'@; put 'NTAsMjE4NTcsMzkxMzQsMzI5MzMsMjEyOTAsMzU4MzcsMjE1MzYsMzI5NTQsMjQyMjMsMjc4MzIsMzYxNTMsMzM0NTIsMzcyMTAsMjE1NDUsMjc2NzUsMjA5OTgsMzI0MzksMjIzNjcsMjg5NTQsMjc3NzQsMzE4ODEsMjI4NTksMjAyMjEsMjQ1NzUsMjQ4NjgsMzE5MTQsMjAwMTYsMjM1NTMs'@; put 'MjY1MzksMzQ1NjIsMjM3OTIsMzgxNTUsMzkxMTgsMzAxMjcsMjg5MjUsMzY4OTgsMjA5MTEsMzI1NDEsMzU3NzMsMjI4NTcsMjA5NjQsMjAzMTUsMjE1NDIsMjI4MjcsMjU5NzUsMzI5MzIsMjM0MTMsMjUyMDYsMjUyODIsMzY3NTIsMjQxMzMsMjc2NzksMzE1MjYsMjAyMzksMjA0NDAsMjYz'@; put 'ODEsMzEzOTUsMzEzOTYsMzEzOTksMzE0MDEsMzE0MDIsMzE0MDMsMzE0MDYsMzE0MDcsMzE0MDgsMzE0MDksMzE0MTAsMzE0MTIsMzE0MTMsMzE0MTQsMzE0MTUsMzE0MTYsMzE0MTcsMzE0MTgsMzE0MTksMzE0MjAsMzE0MjEsMzE0MjIsMzE0MjQsMzE0MjUsMzE0MjYsMzE0MjcsMzE0Mjgs'@; put 'MzE0MjksMzE0MzAsMzE0MzEsMzE0MzIsMzE0MzMsMzE0MzQsMzE0MzYsMzE0MzcsMzE0MzgsMzE0MzksMzE0NDAsMzE0NDEsMzE0NDIsMzE0NDMsMzE0NDQsMzE0NDUsMzE0NDcsMzE0NDgsMzE0NTAsMzE0NTEsMzE0NTIsMzE0NTMsMzE0NTcsMzE0NTgsMzE0NjAsMzE0NjMsMzE0NjQsMzE0'@; put 'NjUsMzE0NjYsMzE0NjcsMzE0NjgsMzE0NzAsMzE0NzIsMzE0NzMsMzE0NzQsMzE0NzUsMzE0NzYsMzE0NzcsMzE0NzgsMzE0NzksMzE0ODAsMzE0ODMsMzE0ODQsMzE0ODYsMzE0ODgsMzE0ODksMzE0OTAsMzE0OTMsMzE0OTUsMzE0OTcsMzE1MDAsMzE1MDEsMzE1MDIsMzE1MDQsMzE1MDYs'@; put 'MzE1MDcsMzE1MTAsMzE1MTEsMzE1MTIsMzE1MTQsMzE1MTYsMzE1MTcsMzE1MTksMzE1MjEsMzE1MjIsMzE1MjMsMzE1MjcsMzE1MjksMzE1MzMsMjgwMTQsMjgwNzQsMzExMTksMzQ5OTMsMjQzNDMsMjk5OTUsMjUyNDIsMzY3NDEsMjA0NjMsMzczNDAsMjYwMjMsMzMwNzEsMzMxMDUsMjQy'@; put 'MjAsMzMxMDQsMzYyMTIsMjExMDMsMzUyMDYsMzYxNzEsMjI3OTcsMjA2MTMsMjAxODQsMzg0MjgsMjkyMzgsMzMxNDUsMzYxMjcsMjM1MDAsMzU3NDcsMzg0NjgsMjI5MTksMzI1MzgsMjE2NDgsMjIxMzQsMjIwMzAsMzU4MTMsMjU5MTMsMjcwMTAsMzgwNDEsMzA0MjIsMjgyOTcsMjQxNzgs'@; put 'Mjk5NzYsMjY0MzgsMjY1NzcsMzE0ODcsMzI5MjUsMzYyMTQsMjQ4NjMsMzExNzQsMjU5NTQsMzYxOTUsMjA4NzIsMjEwMTgsMzgwNTAsMzI1NjgsMzI5MjMsMzI0MzQsMjM3MDMsMjgyMDcsMjY0NjQsMzE3MDUsMzAzNDcsMzk2NDAsMzMxNjcsMzI2NjAsMzE5NTcsMjU2MzAsMzgyMjQsMzEy'@; put 'OTUsMjE1NzgsMjE3MzMsMjc0NjgsMjU2MDEsMjUwOTYsNDA1MDksMzMwMTEsMzAxMDUsMjExMDYsMzg3NjEsMzM4ODMsMjY2ODQsMzQ1MzIsMzg0MDEsMzg1NDgsMzgxMjQsMjAwMTAsMjE1MDgsMzI0NzMsMjY2ODEsMzYzMTksMzI3ODksMjYzNTYsMjQyMTgsMzI2OTcsMzE1MzUsMzE1MzYs'@; put 'MzE1MzgsMzE1NDAsMzE1NDEsMzE1NDIsMzE1NDMsMzE1NDUsMzE1NDcsMzE1NDksMzE1NTEsMzE1NTIsMzE1NTMsMzE1NTQsMzE1NTUsMzE1NTYsMzE1NTgsMzE1NjAsMzE1NjIsMzE1NjUsMzE1NjYsMzE1NzEsMzE1NzMsMzE1NzUsMzE1NzcsMzE1ODAsMzE1ODIsMzE1ODMsMzE1ODUsMzE1'@; put 'ODcsMzE1ODgsMzE1ODksMzE1OTAsMzE1OTEsMzE1OTIsMzE1OTMsMzE1OTQsMzE1OTUsMzE1OTYsMzE1OTcsMzE1OTksMzE2MDAsMzE2MDMsMzE2MDQsMzE2MDYsMzE2MDgsMzE2MTAsMzE2MTIsMzE2MTMsMzE2MTUsMzE2MTcsMzE2MTgsMzE2MTksMzE2MjAsMzE2MjIsMzE2MjMsMzE2MjQs'@; put 'MzE2MjUsMzE2MjYsMzE2MjcsMzE2MjgsMzE2MzAsMzE2MzEsMzE2MzMsMzE2MzQsMzE2MzUsMzE2MzgsMzE2NDAsMzE2NDEsMzE2NDIsMzE2NDMsMzE2NDYsMzE2NDcsMzE2NDgsMzE2NTEsMzE2NTIsMzE2NTMsMzE2NjIsMzE2NjMsMzE2NjQsMzE2NjYsMzE2NjcsMzE2NjksMzE2NzAsMzE2'@; put 'NzEsMzE2NzMsMzE2NzQsMzE2NzUsMzE2NzYsMzE2NzcsMzE2NzgsMzE2NzksMzE2ODAsMzE2ODIsMzE2ODMsMzE2ODQsMjI0NjYsMzI4MzEsMjY3NzUsMjQwMzcsMjU5MTUsMjExNTEsMjQ2ODUsNDA4NTgsMjAzNzksMzY1MjQsMjA4NDQsMjM0NjcsMjQzMzksMjQwNDEsMjc3NDIsMjUzMjks'@; put 'MzYxMjksMjA4NDksMzgwNTcsMjEyNDYsMjc4MDcsMzM1MDMsMjkzOTksMjI0MzQsMjY1MDAsMzYxNDEsMjI4MTUsMzY3NjQsMzM3MzUsMjE2NTMsMzE2MjksMjAyNzIsMjc4MzcsMjMzOTYsMjI5OTMsNDA3MjMsMjE0NzYsMzQ1MDYsMzk1OTIsMzU4OTUsMzI5MjksMjU5MjUsMzkwMzgsMjIy'@; put 'NjYsMzg1OTksMjEwMzgsMjk5MTYsMjEwNzIsMjM1MjEsMjUzNDYsMzUwNzQsMjAwNTQsMjUyOTYsMjQ2MTgsMjY4NzQsMjA4NTEsMjM0NDgsMjA4OTYsMzUyNjYsMzE2NDksMzkzMDIsMzI1OTIsMjQ4MTUsMjg3NDgsMzYxNDMsMjA4MDksMjQxOTEsMzY4OTEsMjk4MDgsMzUyNjgsMjIzMTcs'@; put 'MzA3ODksMjQ0MDIsNDA4NjMsMzgzOTQsMzY3MTIsMzk3NDAsMzU4MDksMzAzMjgsMjY2OTAsMjY1ODgsMzYzMzAsMzYxNDksMjEwNTMsMzY3NDYsMjgzNzgsMjY4MjksMzgxNDksMzcxMDEsMjIyNjksMjY1MjQsMzUwNjUsMzY4MDcsMjE3MDQsMzE2ODUsMzE2ODgsMzE2ODksMzE2OTAsMzE2'@; put 'OTEsMzE2OTMsMzE2OTQsMzE2OTUsMzE2OTYsMzE2OTgsMzE3MDAsMzE3MDEsMzE3MDIsMzE3MDMsMzE3MDQsMzE3MDcsMzE3MDgsMzE3MTAsMzE3MTEsMzE3MTIsMzE3MTQsMzE3MTUsMzE3MTYsMzE3MTksMzE3MjAsMzE3MjEsMzE3MjMsMzE3MjQsMzE3MjUsMzE3MjcsMzE3MjgsMzE3MzAs'@; put 'MzE3MzEsMzE3MzIsMzE3MzMsMzE3MzQsMzE3MzYsMzE3MzcsMzE3MzgsMzE3MzksMzE3NDEsMzE3NDMsMzE3NDQsMzE3NDUsMzE3NDYsMzE3NDcsMzE3NDgsMzE3NDksMzE3NTAsMzE3NTIsMzE3NTMsMzE3NTQsMzE3NTcsMzE3NTgsMzE3NjAsMzE3NjEsMzE3NjIsMzE3NjMsMzE3NjQsMzE3'@; put 'NjUsMzE3NjcsMzE3NjgsMzE3NjksMzE3NzAsMzE3NzEsMzE3NzIsMzE3NzMsMzE3NzQsMzE3NzYsMzE3NzcsMzE3NzgsMzE3NzksMzE3ODAsMzE3ODEsMzE3ODQsMzE3ODUsMzE3ODcsMzE3ODgsMzE3ODksMzE3OTAsMzE3OTEsMzE3OTIsMzE3OTMsMzE3OTQsMzE3OTUsMzE3OTYsMzE3OTcs'@; put 'MzE3OTgsMzE3OTksMzE4MDEsMzE4MDIsMzE4MDMsMzE4MDQsMzE4MDUsMzE4MDYsMzE4MTAsMzk2MDgsMjM0MDEsMjgwMjMsMjc2ODYsMjAxMzMsMjM0NzUsMzk1NTksMzcyMTksMjVlMywzNzAzOSwzODg4OSwyMTU0NywyODA4NSwyMzUwNiwyMDk4OSwyMTg5OCwzMjU5NywzMjc1MiwyNTc4'@; put 'OCwyNTQyMSwyNjA5NywyNTAyMiwyNDcxNywyODkzOCwyNzczNSwyNzcyMSwyMjgzMSwyNjQ3NywzMzMyMiwyMjc0MSwyMjE1OCwzNTk0NiwyNzYyNywzNzA4NSwyMjkwOSwzMjc5MSwyMTQ5NSwyODAwOSwyMTYyMSwyMTkxNywzMzY1NSwzMzc0MywyNjY4MCwzMTE2NiwyMTY0NCwyMDMwOSwy'@; put 'MTUxMiwzMDQxOCwzNTk3NywzODQwMiwyNzgyNywyODA4OCwzNjIwMywzNTA4OCw0MDU0OCwzNjE1NCwyMjA3OSw0MDY1NywzMDE2NSwyNDQ1NiwyOTQwOCwyNDY4MCwyMTc1NiwyMDEzNiwyNzE3OCwzNDkxMywyNDY1OCwzNjcyMCwyMTcwMCwyODg4OCwzNDQyNSw0MDUxMSwyNzk0NiwyMzQz'@; put 'OSwyNDM0NCwzMjQxOCwyMTg5NywyMDM5OSwyOTQ5MiwyMTU2NCwyMTQwMiwyMDUwNSwyMTUxOCwyMTYyOCwyMDA0NiwyNDU3MywyOTc4NiwyMjc3NCwzMzg5OSwzMjk5MywzNDY3NiwyOTM5MiwzMTk0NiwyODI0NiwzMTgxMSwzMTgxMiwzMTgxMywzMTgxNCwzMTgxNSwzMTgxNiwzMTgxNywz'@; put 'MTgxOCwzMTgxOSwzMTgyMCwzMTgyMiwzMTgyMywzMTgyNCwzMTgyNSwzMTgyNiwzMTgyNywzMTgyOCwzMTgyOSwzMTgzMCwzMTgzMSwzMTgzMiwzMTgzMywzMTgzNCwzMTgzNSwzMTgzNiwzMTgzNywzMTgzOCwzMTgzOSwzMTg0MCwzMTg0MSwzMTg0MiwzMTg0MywzMTg0NCwzMTg0NSwzMTg0'@; put 'NiwzMTg0NywzMTg0OCwzMTg0OSwzMTg1MCwzMTg1MSwzMTg1MiwzMTg1MywzMTg1NCwzMTg1NSwzMTg1NiwzMTg1NywzMTg1OCwzMTg2MSwzMTg2MiwzMTg2MywzMTg2NCwzMTg2NSwzMTg2NiwzMTg3MCwzMTg3MSwzMTg3MiwzMTg3MywzMTg3NCwzMTg3NSwzMTg3NiwzMTg3NywzMTg3OCwz'@; put 'MTg3OSwzMTg4MCwzMTg4MiwzMTg4MywzMTg4NCwzMTg4NSwzMTg4NiwzMTg4NywzMTg4OCwzMTg5MSwzMTg5MiwzMTg5NCwzMTg5NywzMTg5OCwzMTg5OSwzMTkwNCwzMTkwNSwzMTkwNywzMTkxMCwzMTkxMSwzMTkxMiwzMTkxMywzMTkxNSwzMTkxNiwzMTkxNywzMTkxOSwzMTkyMCwzMTky'@; put 'NCwzMTkyNSwzMTkyNiwzMTkyNywzMTkyOCwzMTkzMCwzMTkzMSwyNDM1OSwzNDM4MiwyMTgwNCwyNTI1MiwyMDExNCwyNzgxOCwyNTE0MywzMzQ1NywyMTcxOSwyMTMyNiwyOTUwMiwyODM2OSwzMDAxMSwyMTAxMCwyMTI3MCwzNTgwNSwyNzA4OCwyNDQ1OCwyNDU3NiwyODE0MiwyMjM1MSwy'@; put 'NzQyNiwyOTYxNSwyNjcwNywzNjgyNCwzMjUzMSwyNTQ0MiwyNDczOSwyMTc5NiwzMDE4NiwzNTkzOCwyODk0OSwyODA2NywyMzQ2MiwyNDE4NywzMzYxOCwyNDkwOCw0MDY0NCwzMDk3MCwzNDY0NywzMTc4MywzMDM0MywyMDk3NiwyNDgyMiwyOTAwNCwyNjE3OSwyNDE0MCwyNDY1MywzNTg1'@; put 'NCwyODc4NCwyNTM4MSwzNjc0NSwyNDUwOSwyNDY3NCwzNDUxNiwyMjIzOCwyNzU4NSwyNDcyNCwyNDkzNSwyMTMyMSwyNDgwMCwyNjIxNCwzNjE1OSwzMTIyOSwyMDI1MCwyODkwNSwyNzcxOSwzNTc2MywzNTgyNiwzMjQ3MiwzMzYzNiwyNjEyNywyMzEzMCwzOTc0NiwyNzk4NSwyODE1MSwz'@; put 'NTkwNSwyNzk2MywyMDI0OSwyODc3OSwzMzcxOSwyNTExMCwyNDc4NSwzODY2OSwzNjEzNSwzMTA5NiwyMDk4NywyMjMzNCwyMjUyMiwyNjQyNiwzMDA3MiwzMTI5MywzMTIxNSwzMTYzNywzMTkzNSwzMTkzNiwzMTkzOCwzMTkzOSwzMTk0MCwzMTk0MiwzMTk0NSwzMTk0NywzMTk1MCwzMTk1'@; put 'MSwzMTk1MiwzMTk1MywzMTk1NCwzMTk1NSwzMTk1NiwzMTk2MCwzMTk2MiwzMTk2MywzMTk2NSwzMTk2NiwzMTk2OSwzMTk3MCwzMTk3MSwzMTk3MiwzMTk3MywzMTk3NCwzMTk3NSwzMTk3NywzMTk3OCwzMTk3OSwzMTk4MCwzMTk4MSwzMTk4MiwzMTk4NCwzMTk4NSwzMTk4NiwzMTk4Nywz'@; put 'MTk4OCwzMTk4OSwzMTk5MCwzMTk5MSwzMTk5MywzMTk5NCwzMTk5NiwzMTk5NywzMTk5OCwzMTk5OSwzMmUzLDMyMDAxLDMyMDAyLDMyMDAzLDMyMDA0LDMyMDA1LDMyMDA2LDMyMDA3LDMyMDA4LDMyMDA5LDMyMDExLDMyMDEyLDMyMDEzLDMyMDE0LDMyMDE1LDMyMDE2LDMyMDE3LDMyMDE4'@; put 'LDMyMDE5LDMyMDIwLDMyMDIxLDMyMDIyLDMyMDIzLDMyMDI0LDMyMDI1LDMyMDI2LDMyMDI3LDMyMDI4LDMyMDI5LDMyMDMwLDMyMDMxLDMyMDMzLDMyMDM1LDMyMDM2LDMyMDM3LDMyMDM4LDMyMDQwLDMyMDQxLDMyMDQyLDMyMDQ0LDMyMDQ1LDMyMDQ2LDMyMDQ4LDMyMDQ5LDMyMDUwLDMy'@; put 'MDUxLDMyMDUyLDMyMDUzLDMyMDU0LDMyOTA4LDM5MjY5LDM2ODU3LDI4NjA4LDM1NzQ5LDQwNDgxLDIzMDIwLDMyNDg5LDMyNTIxLDIxNTEzLDI2NDk3LDI2ODQwLDM2NzUzLDMxODIxLDM4NTk4LDIxNDUwLDI0NjEzLDMwMTQyLDI3NzYyLDIxMzYzLDIzMjQxLDMyNDIzLDI1MzgwLDIwOTYw'@; put 'LDMzMDM0LDI0MDQ5LDM0MDE1LDI1MjE2LDIwODY0LDIzMzk1LDIwMjM4LDMxMDg1LDIxMDU4LDI0NzYwLDI3OTgyLDIzNDkyLDIzNDkwLDM1NzQ1LDM1NzYwLDI2MDgyLDI0NTI0LDM4NDY5LDIyOTMxLDMyNDg3LDMyNDI2LDIyMDI1LDI2NTUxLDIyODQxLDIwMzM5LDIzNDc4LDIxMTUyLDMz'@; put 'NjI2LDM5MDUwLDM2MTU4LDMwMDAyLDM4MDc4LDIwNTUxLDMxMjkyLDIwMjE1LDI2NTUwLDM5NTUwLDIzMjMzLDI3NTE2LDMwNDE3LDIyMzYyLDIzNTc0LDMxNTQ2LDM4Mzg4LDI5MDA2LDIwODYwLDMyOTM3LDMzMzkyLDIyOTA0LDMyNTE2LDMzNTc1LDI2ODE2LDI2NjA0LDMwODk3LDMwODM5'@; put 'LDI1MzE1LDI1NDQxLDMxNjE2LDIwNDYxLDIxMDk4LDIwOTQzLDMzNjE2LDI3MDk5LDM3NDkyLDM2MzQxLDM2MTQ1LDM1MjY1LDM4MTkwLDMxNjYxLDIwMjE0LDMyMDU1LDMyMDU2LDMyMDU3LDMyMDU4LDMyMDU5LDMyMDYwLDMyMDYxLDMyMDYyLDMyMDYzLDMyMDY0LDMyMDY1LDMyMDY2LDMy'@; put 'MDY3LDMyMDY4LDMyMDY5LDMyMDcwLDMyMDcxLDMyMDcyLDMyMDczLDMyMDc0LDMyMDc1LDMyMDc2LDMyMDc3LDMyMDc4LDMyMDc5LDMyMDgwLDMyMDgxLDMyMDgyLDMyMDgzLDMyMDg0LDMyMDg1LDMyMDg2LDMyMDg3LDMyMDg4LDMyMDg5LDMyMDkwLDMyMDkxLDMyMDkyLDMyMDkzLDMyMDk0'@; put 'LDMyMDk1LDMyMDk2LDMyMDk3LDMyMDk4LDMyMDk5LDMyMTAwLDMyMTAxLDMyMTAyLDMyMTAzLDMyMTA0LDMyMTA1LDMyMTA2LDMyMTA3LDMyMTA4LDMyMTA5LDMyMTExLDMyMTEyLDMyMTEzLDMyMTE0LDMyMTE1LDMyMTE2LDMyMTE3LDMyMTE4LDMyMTIwLDMyMTIxLDMyMTIyLDMyMTIzLDMy'@; put 'MTI0LDMyMTI1LDMyMTI2LDMyMTI3LDMyMTI4LDMyMTI5LDMyMTMwLDMyMTMxLDMyMTMyLDMyMTMzLDMyMTM0LDMyMTM1LDMyMTM2LDMyMTM3LDMyMTM4LDMyMTM5LDMyMTQwLDMyMTQxLDMyMTQyLDMyMTQzLDMyMTQ0LDMyMTQ1LDMyMTQ2LDMyMTQ3LDMyMTQ4LDMyMTQ5LDMyMTUwLDMyMTUx'@; put 'LDMyMTUyLDIwNTgxLDMzMzI4LDIxMDczLDM5Mjc5LDI4MTc2LDI4MjkzLDI4MDcxLDI0MzE0LDIwNzI1LDIzMDA0LDIzNTU4LDI3OTc0LDI3NzQzLDMwMDg2LDMzOTMxLDI2NzI4LDIyODcwLDM1NzYyLDIxMjgwLDM3MjMzLDM4NDc3LDM0MTIxLDI2ODk4LDMwOTc3LDI4OTY2LDMzMDE0LDIw'@; put 'MTMyLDM3MDY2LDI3OTc1LDM5NTU2LDIzMDQ3LDIyMjA0LDI1NjA1LDM4MTI4LDMwNjk5LDIwMzg5LDMzMDUwLDI5NDA5LDM1MjgyLDM5MjkwLDMyNTY0LDMyNDc4LDIxMTE5LDI1OTQ1LDM3MjM3LDM2NzM1LDM2NzM5LDIxNDgzLDMxMzgyLDI1NTgxLDI1NTA5LDMwMzQyLDMxMjI0LDM0OTAz'@; put 'LDM4NDU0LDI1MTMwLDIxMTYzLDMzNDEwLDI2NzA4LDI2NDgwLDI1NDYzLDMwNTcxLDMxNDY5LDI3OTA1LDMyNDY3LDM1Mjk5LDIyOTkyLDI1MTA2LDM0MjQ5LDMzNDQ1LDMwMDI4LDIwNTExLDIwMTcxLDMwMTE3LDM1ODE5LDIzNjI2LDI0MDYyLDMxNTYzLDI2MDIwLDM3MzI5LDIwMTcwLDI3'@; put 'OTQxLDM1MTY3LDMyMDM5LDM4MTgyLDIwMTY1LDM1ODgwLDM2ODI3LDM4NzcxLDI2MTg3LDMxMTA1LDM2ODE3LDI4OTA4LDI4MDI0LDMyMTUzLDMyMTU0LDMyMTU1LDMyMTU2LDMyMTU3LDMyMTU4LDMyMTU5LDMyMTYwLDMyMTYxLDMyMTYyLDMyMTYzLDMyMTY0LDMyMTY1LDMyMTY3LDMyMTY4'@; put 'LDMyMTY5LDMyMTcwLDMyMTcxLDMyMTcyLDMyMTczLDMyMTc1LDMyMTc2LDMyMTc3LDMyMTc4LDMyMTc5LDMyMTgwLDMyMTgxLDMyMTgyLDMyMTgzLDMyMTg0LDMyMTg1LDMyMTg2LDMyMTg3LDMyMTg4LDMyMTg5LDMyMTkwLDMyMTkxLDMyMTkyLDMyMTkzLDMyMTk0LDMyMTk1LDMyMTk2LDMy'@; put 'MTk3LDMyMTk4LDMyMTk5LDMyMjAwLDMyMjAxLDMyMjAyLDMyMjAzLDMyMjA0LDMyMjA1LDMyMjA2LDMyMjA3LDMyMjA4LDMyMjA5LDMyMjEwLDMyMjExLDMyMjEyLDMyMjEzLDMyMjE0LDMyMjE1LDMyMjE2LDMyMjE3LDMyMjE4LDMyMjE5LDMyMjIwLDMyMjIxLDMyMjIyLDMyMjIzLDMyMjI0'@; put 'LDMyMjI1LDMyMjI2LDMyMjI3LDMyMjI4LDMyMjI5LDMyMjMwLDMyMjMxLDMyMjMyLDMyMjMzLDMyMjM0LDMyMjM1LDMyMjM2LDMyMjM3LDMyMjM4LDMyMjM5LDMyMjQwLDMyMjQxLDMyMjQyLDMyMjQzLDMyMjQ0LDMyMjQ1LDMyMjQ2LDMyMjQ3LDMyMjQ4LDMyMjQ5LDMyMjUwLDIzNjEzLDIx'@; put 'MTcwLDMzNjA2LDIwODM0LDMzNTUwLDMwNTU1LDI2MjMwLDQwMTIwLDIwMTQwLDI0Nzc4LDMxOTM0LDMxOTIzLDMyNDYzLDIwMTE3LDM1Njg2LDI2MjIzLDM5MDQ4LDM4NzQ1LDIyNjU5LDI1OTY0LDM4MjM2LDI0NDUyLDMwMTUzLDM4NzQyLDMxNDU1LDMxNDU0LDIwOTI4LDI4ODQ3LDMxMzg0'@; put 'LDI1NTc4LDMxMzUwLDMyNDE2LDI5NTkwLDM4ODkzLDIwMDM3LDI4NzkyLDIwMDYxLDM3MjAyLDIxNDE3LDI1OTM3LDI2MDg3LDMzMjc2LDMzMjg1LDIxNjQ2LDIzNjAxLDMwMTA2LDM4ODE2LDI1MzA0LDI5NDAxLDMwMTQxLDIzNjIxLDM5NTQ1LDMzNzM4LDIzNjE2LDIxNjMyLDMwNjk3LDIw'@; put 'MDMwLDI3ODIyLDMyODU4LDI1Mjk4LDI1NDU0LDI0MDQwLDIwODU1LDM2MzE3LDM2MzgyLDM4MTkxLDIwNDY1LDIxNDc3LDI0ODA3LDI4ODQ0LDIxMDk1LDI1NDI0LDQwNTE1LDIzMDcxLDIwNTE4LDMwNTE5LDIxMzY3LDMyNDgyLDI1NzMzLDI1ODk5LDI1MjI1LDI1NDk2LDIwNTAwLDI5MjM3'@; put 'LDM1MjczLDIwOTE1LDM1Nzc2LDMyNDc3LDIyMzQzLDMzNzQwLDM4MDU1LDIwODkxLDIxNTMxLDIzODAzLDMyMjUxLDMyMjUyLDMyMjUzLDMyMjU0LDMyMjU1LDMyMjU2LDMyMjU3LDMyMjU4LDMyMjU5LDMyMjYwLDMyMjYxLDMyMjYyLDMyMjYzLDMyMjY0LDMyMjY1LDMyMjY2LDMyMjY3LDMy'@; put 'MjY4LDMyMjY5LDMyMjcwLDMyMjcxLDMyMjcyLDMyMjczLDMyMjc0LDMyMjc1LDMyMjc2LDMyMjc3LDMyMjc4LDMyMjc5LDMyMjgwLDMyMjgxLDMyMjgyLDMyMjgzLDMyMjg0LDMyMjg1LDMyMjg2LDMyMjg3LDMyMjg4LDMyMjg5LDMyMjkwLDMyMjkxLDMyMjkyLDMyMjkzLDMyMjk0LDMyMjk1'@; put 'LDMyMjk2LDMyMjk3LDMyMjk4LDMyMjk5LDMyMzAwLDMyMzAxLDMyMzAyLDMyMzAzLDMyMzA0LDMyMzA1LDMyMzA2LDMyMzA3LDMyMzA4LDMyMzA5LDMyMzEwLDMyMzExLDMyMzEyLDMyMzEzLDMyMzE0LDMyMzE2LDMyMzE3LDMyMzE4LDMyMzE5LDMyMzIwLDMyMzIyLDMyMzIzLDMyMzI0LDMy'@; put 'MzI1LDMyMzI2LDMyMzI4LDMyMzI5LDMyMzMwLDMyMzMxLDMyMzMyLDMyMzMzLDMyMzM0LDMyMzM1LDMyMzM2LDMyMzM3LDMyMzM4LDMyMzM5LDMyMzQwLDMyMzQxLDMyMzQyLDMyMzQzLDMyMzQ0LDMyMzQ1LDMyMzQ2LDMyMzQ3LDMyMzQ4LDMyMzQ5LDIwNDI2LDMxNDU5LDI3OTk0LDM3MDg5'@; put 'LDM5NTY3LDIxODg4LDIxNjU0LDIxMzQ1LDIxNjc5LDI0MzIwLDI1NTc3LDI2OTk5LDIwOTc1LDI0OTM2LDIxMDAyLDIyNTcwLDIxMjA4LDIyMzUwLDMwNzMzLDMwNDc1LDI0MjQ3LDI0OTUxLDMxOTY4LDI1MTc5LDI1MjM5LDIwMTMwLDI4ODIxLDMyNzcxLDI1MzM1LDI4OTAwLDM4NzUyLDIy'@; put 'MzkxLDMzNDk5LDI2NjA3LDI2ODY5LDMwOTMzLDM5MDYzLDMxMTg1LDIyNzcxLDIxNjgzLDIxNDg3LDI4MjEyLDIwODExLDIxMDUxLDIzNDU4LDM1ODM4LDMyOTQzLDIxODI3LDIyNDM4LDI0NjkxLDIyMzUzLDIxNTQ5LDMxMzU0LDI0NjU2LDIzMzgwLDI1NTExLDI1MjQ4LDIxNDc1LDI1MTg3'@; put 'LDIzNDk1LDI2NTQzLDIxNzQxLDMxMzkxLDMzNTEwLDM3MjM5LDI0MjExLDM1MDQ0LDIyODQwLDIyNDQ2LDI1MzU4LDM2MzI4LDMzMDA3LDIyMzU5LDMxNjA3LDIwMzkzLDI0NTU1LDIzNDg1LDI3NDU0LDIxMjgxLDMxNTY4LDI5Mzc4LDI2Njk0LDMwNzE5LDMwNTE4LDI2MTAzLDIwOTE3LDIw'@; put 'MTExLDMwNDIwLDIzNzQzLDMxMzk3LDMzOTA5LDIyODYyLDM5NzQ1LDIwNjA4LDMyMzUwLDMyMzUxLDMyMzUyLDMyMzUzLDMyMzU0LDMyMzU1LDMyMzU2LDMyMzU3LDMyMzU4LDMyMzU5LDMyMzYwLDMyMzYxLDMyMzYyLDMyMzYzLDMyMzY0LDMyMzY1LDMyMzY2LDMyMzY3LDMyMzY4LDMyMzY5'@; put 'LDMyMzcwLDMyMzcxLDMyMzcyLDMyMzczLDMyMzc0LDMyMzc1LDMyMzc2LDMyMzc3LDMyMzc4LDMyMzc5LDMyMzgwLDMyMzgxLDMyMzgyLDMyMzgzLDMyMzg0LDMyMzg1LDMyMzg3LDMyMzg4LDMyMzg5LDMyMzkwLDMyMzkxLDMyMzkyLDMyMzkzLDMyMzk0LDMyMzk1LDMyMzk2LDMyMzk3LDMy'@; put 'Mzk4LDMyMzk5LDMyNDAwLDMyNDAxLDMyNDAyLDMyNDAzLDMyNDA0LDMyNDA1LDMyNDA2LDMyNDA3LDMyNDA4LDMyNDA5LDMyNDEwLDMyNDEyLDMyNDEzLDMyNDE0LDMyNDMwLDMyNDM2LDMyNDQzLDMyNDQ0LDMyNDcwLDMyNDg0LDMyNDkyLDMyNTA1LDMyNTIyLDMyNTI4LDMyNTQyLDMyNTY3'@; put 'LDMyNTY5LDMyNTcxLDMyNTcyLDMyNTczLDMyNTc0LDMyNTc1LDMyNTc2LDMyNTc3LDMyNTc5LDMyNTgyLDMyNTgzLDMyNTg0LDMyNTg1LDMyNTg2LDMyNTg3LDMyNTg4LDMyNTg5LDMyNTkwLDMyNTkxLDMyNTk0LDMyNTk1LDM5MzA0LDI0ODcxLDI4MjkxLDIyMzcyLDI2MTE4LDI1NDE0LDIy'@; put 'MjU2LDI1MzI0LDI1MTkzLDI0Mjc1LDM4NDIwLDIyNDAzLDI1Mjg5LDIxODk1LDM0NTkzLDMzMDk4LDM2NzcxLDIxODYyLDMzNzEzLDI2NDY5LDM2MTgyLDM0MDEzLDIzMTQ2LDI2NjM5LDI1MzE4LDMxNzI2LDM4NDE3LDIwODQ4LDI4NTcyLDM1ODg4LDI1NTk3LDM1MjcyLDI1MDQyLDMyNTE4'@; put 'LDI4ODY2LDI4Mzg5LDI5NzAxLDI3MDI4LDI5NDM2LDI0MjY2LDM3MDcwLDI2MzkxLDI4MDEwLDI1NDM4LDIxMTcxLDI5MjgyLDMyNzY5LDIwMzMyLDIzMDEzLDM3MjI2LDI4ODg5LDI4MDYxLDIxMjAyLDIwMDQ4LDM4NjQ3LDM4MjUzLDM0MTc0LDMwOTIyLDMyMDQ3LDIwNzY5LDIyNDE4LDI1'@; put 'Nzk0LDMyOTA3LDMxODY3LDI3ODgyLDI2ODY1LDI2OTc0LDIwOTE5LDIxNDAwLDI2NzkyLDI5MzEzLDQwNjU0LDMxNzI5LDI5NDMyLDMxMTYzLDI4NDM1LDI5NzAyLDI2NDQ2LDM3MzI0LDQwMTAwLDMxMDM2LDMzNjczLDMzNjIwLDIxNTE5LDI2NjQ3LDIwMDI5LDIxMzg1LDIxMTY5LDMwNzgy'@; put 'LDIxMzgyLDIxMDMzLDIwNjE2LDIwMzYzLDIwNDMyLDMyNTk4LDMyNjAxLDMyNjAzLDMyNjA0LDMyNjA1LDMyNjA2LDMyNjA4LDMyNjExLDMyNjEyLDMyNjEzLDMyNjE0LDMyNjE1LDMyNjE5LDMyNjIwLDMyNjIxLDMyNjIzLDMyNjI0LDMyNjI3LDMyNjI5LDMyNjMwLDMyNjMxLDMyNjMyLDMy'@; put 'NjM0LDMyNjM1LDMyNjM2LDMyNjM3LDMyNjM5LDMyNjQwLDMyNjQyLDMyNjQzLDMyNjQ0LDMyNjQ1LDMyNjQ2LDMyNjQ3LDMyNjQ4LDMyNjQ5LDMyNjUxLDMyNjUzLDMyNjU1LDMyNjU2LDMyNjU3LDMyNjU4LDMyNjU5LDMyNjYxLDMyNjYyLDMyNjYzLDMyNjY0LDMyNjY1LDMyNjY3LDMyNjY4'@; put 'LDMyNjcyLDMyNjc0LDMyNjc1LDMyNjc3LDMyNjc4LDMyNjgwLDMyNjgxLDMyNjgyLDMyNjgzLDMyNjg0LDMyNjg1LDMyNjg2LDMyNjg5LDMyNjkxLDMyNjkyLDMyNjkzLDMyNjk0LDMyNjk1LDMyNjk4LDMyNjk5LDMyNzAyLDMyNzA0LDMyNzA2LDMyNzA3LDMyNzA4LDMyNzEwLDMyNzExLDMy'@; put 'NzEyLDMyNzEzLDMyNzE1LDMyNzE3LDMyNzE5LDMyNzIwLDMyNzIxLDMyNzIyLDMyNzIzLDMyNzI2LDMyNzI3LDMyNzI5LDMyNzMwLDMyNzMxLDMyNzMyLDMyNzMzLDMyNzM0LDMyNzM4LDMyNzM5LDMwMTc4LDMxNDM1LDMxODkwLDI3ODEzLDM4NTgyLDIxMTQ3LDI5ODI3LDIxNzM3LDIwNDU3'@; put 'LDMyODUyLDMzNzE0LDM2ODMwLDM4MjU2LDI0MjY1LDI0NjA0LDI4MDYzLDI0MDg4LDI1OTQ3LDMzMDgwLDM4MTQyLDI0NjUxLDI4ODYwLDMyNDUxLDMxOTE4LDIwOTM3LDI2NzUzLDMxOTIxLDMzMzkxLDIwMDA0LDM2NzQyLDM3MzI3LDI2MjM4LDIwMTQyLDM1ODQ1LDI1NzY5LDMyODQyLDIw'@; put 'Njk4LDMwMTAzLDI5MTM0LDIzNTI1LDM2Nzk3LDI4NTE4LDIwMTAyLDI1NzMwLDM4MjQzLDI0Mjc4LDI2MDA5LDIxMDE1LDM1MDEwLDI4ODcyLDIxMTU1LDI5NDU0LDI5NzQ3LDI2NTE5LDMwOTY3LDM4Njc4LDIwMDIwLDM3MDUxLDQwMTU4LDI4MTA3LDIwOTU1LDM2MTYxLDIxNTMzLDI1Mjk0'@; put 'LDI5NjE4LDMzNzc3LDM4NjQ2LDQwODM2LDM4MDgzLDIwMjc4LDMyNjY2LDIwOTQwLDI4Nzg5LDM4NTE3LDIzNzI1LDM5MDQ2LDIxNDc4LDIwMTk2LDI4MzE2LDI5NzA1LDI3MDYwLDMwODI3LDM5MzExLDMwMDQxLDIxMDE2LDMwMjQ0LDI3OTY5LDI2NjExLDIwODQ1LDQwODU3LDMyODQzLDIx'@; put 'NjU3LDMxNTQ4LDMxNDIzLDMyNzQwLDMyNzQzLDMyNzQ0LDMyNzQ2LDMyNzQ3LDMyNzQ4LDMyNzQ5LDMyNzUxLDMyNzU0LDMyNzU2LDMyNzU3LDMyNzU4LDMyNzU5LDMyNzYwLDMyNzYxLDMyNzYyLDMyNzY1LDMyNzY2LDMyNzY3LDMyNzcwLDMyNzc1LDMyNzc2LDMyNzc3LDMyNzc4LDMyNzgy'@; put 'LDMyNzgzLDMyNzg1LDMyNzg3LDMyNzk0LDMyNzk1LDMyNzk3LDMyNzk4LDMyNzk5LDMyODAxLDMyODAzLDMyODA0LDMyODExLDMyODEyLDMyODEzLDMyODE0LDMyODE1LDMyODE2LDMyODE4LDMyODIwLDMyODI1LDMyODI2LDMyODI4LDMyODMwLDMyODMyLDMyODMzLDMyODM2LDMyODM3LDMy'@; put 'ODM5LDMyODQwLDMyODQxLDMyODQ2LDMyODQ3LDMyODQ4LDMyODQ5LDMyODUxLDMyODUzLDMyODU0LDMyODU1LDMyODU3LDMyODU5LDMyODYwLDMyODYxLDMyODYyLDMyODYzLDMyODY0LDMyODY1LDMyODY2LDMyODY3LDMyODY4LDMyODY5LDMyODcwLDMyODcxLDMyODcyLDMyODc1LDMyODc2'@; put 'LDMyODc3LDMyODc4LDMyODc5LDMyODgwLDMyODgyLDMyODgzLDMyODg0LDMyODg1LDMyODg2LDMyODg3LDMyODg4LDMyODg5LDMyODkwLDMyODkxLDMyODkyLDMyODkzLDM4NTM0LDIyNDA0LDI1MzE0LDM4NDcxLDI3MDA0LDIzMDQ0LDI1NjAyLDMxNjk5LDI4NDMxLDM4NDc1LDMzNDQ2LDIx'@; put 'MzQ2LDM5MDQ1LDI0MjA4LDI4ODA5LDI1NTIzLDIxMzQ4LDM0MzgzLDQwMDY1LDQwNTk1LDMwODYwLDM4NzA2LDM2MzM1LDM2MTYyLDQwNTc1LDI4NTEwLDMxMTA4LDI0NDA1LDM4NDcwLDI1MTM0LDM5NTQwLDIxNTI1LDM4MTA5LDIwMzg3LDI2MDUzLDIzNjUzLDIzNjQ5LDMyNTMzLDM0Mzg1'@; put 'LDI3Njk1LDI0NDU5LDI5NTc1LDI4Mzg4LDMyNTExLDIzNzgyLDI1MzcxLDIzNDAyLDI4MzkwLDIxMzY1LDIwMDgxLDI1NTA0LDMwMDUzLDI1MjQ5LDM2NzE4LDIwMjYyLDIwMTc3LDI3ODE0LDMyNDM4LDM1NzcwLDMzODIxLDM0NzQ2LDMyNTk5LDM2OTIzLDM4MTc5LDMxNjU3LDM5NTg1LDM1'@; put 'MDY0LDMzODUzLDI3OTMxLDM5NTU4LDMyNDc2LDIyOTIwLDQwNjM1LDI5NTk1LDMwNzIxLDM0NDM0LDM5NTMyLDM5NTU0LDIyMDQzLDIxNTI3LDIyNDc1LDIwMDgwLDQwNjE0LDIxMzM0LDM2ODA4LDMzMDMzLDMwNjEwLDM5MzE0LDM0NTQyLDI4Mzg1LDM0MDY3LDI2MzY0LDI0OTMwLDI4NDU5'@; put 'LDMyODk0LDMyODk3LDMyODk4LDMyOTAxLDMyOTA0LDMyOTA2LDMyOTA5LDMyOTEwLDMyOTExLDMyOTEyLDMyOTEzLDMyOTE0LDMyOTE2LDMyOTE3LDMyOTE5LDMyOTIxLDMyOTI2LDMyOTMxLDMyOTM0LDMyOTM1LDMyOTM2LDMyOTQwLDMyOTQ0LDMyOTQ3LDMyOTQ5LDMyOTUwLDMyOTUyLDMy'@; put 'OTUzLDMyOTU1LDMyOTY1LDMyOTY3LDMyOTY4LDMyOTY5LDMyOTcwLDMyOTcxLDMyOTc1LDMyOTc2LDMyOTc3LDMyOTc4LDMyOTc5LDMyOTgwLDMyOTgxLDMyOTg0LDMyOTkxLDMyOTkyLDMyOTk0LDMyOTk1LDMyOTk4LDMzMDA2LDMzMDEzLDMzMDE1LDMzMDE3LDMzMDE5LDMzMDIyLDMzMDIz'@; put 'LDMzMDI0LDMzMDI1LDMzMDI3LDMzMDI4LDMzMDI5LDMzMDMxLDMzMDMyLDMzMDM1LDMzMDM2LDMzMDQ1LDMzMDQ3LDMzMDQ5LDMzMDUxLDMzMDUyLDMzMDUzLDMzMDU1LDMzMDU2LDMzMDU3LDMzMDU4LDMzMDU5LDMzMDYwLDMzMDYxLDMzMDYyLDMzMDYzLDMzMDY0LDMzMDY1LDMzMDY2LDMz'@; put 'MDY3LDMzMDY5LDMzMDcwLDMzMDcyLDMzMDc1LDMzMDc2LDMzMDc3LDMzMDc5LDMzMDgxLDMzMDgyLDMzMDgzLDMzMDg0LDMzMDg1LDMzMDg3LDM1ODgxLDMzNDI2LDMzNTc5LDMwNDUwLDI3NjY3LDI0NTM3LDMzNzI1LDI5NDgzLDMzNTQxLDM4MTcwLDI3NjExLDMwNjgzLDM4MDg2LDIxMzU5'@; put 'LDMzNTM4LDIwODgyLDI0MTI1LDM1OTgwLDM2MTUyLDIwMDQwLDI5NjExLDI2NTIyLDI2NzU3LDM3MjM4LDM4NjY1LDI5MDI4LDI3ODA5LDMwNDczLDIzMTg2LDM4MjA5LDI3NTk5LDMyNjU0LDI2MTUxLDIzNTA0LDIyOTY5LDIzMTk0LDM4Mzc2LDM4MzkxLDIwMjA0LDMzODA0LDMzOTQ1LDI3'@; put 'MzA4LDMwNDMxLDM4MTkyLDI5NDY3LDI2NzkwLDIzMzkxLDMwNTExLDM3Mjc0LDM4NzUzLDMxOTY0LDM2ODU1LDM1ODY4LDI0MzU3LDMxODU5LDMxMTkyLDM1MjY5LDI3ODUyLDM0NTg4LDIzNDk0LDI0MTMwLDI2ODI1LDMwNDk2LDMyNTAxLDIwODg1LDIwODEzLDIxMTkzLDIzMDgxLDMyNTE3'@; put 'LDM4NzU0LDMzNDk1LDI1NTUxLDMwNTk2LDM0MjU2LDMxMTg2LDI4MjE4LDI0MjE3LDIyOTM3LDM0MDY1LDI4NzgxLDI3NjY1LDI1Mjc5LDMwMzk5LDI1OTM1LDI0NzUxLDM4Mzk3LDI2MTI2LDM0NzE5LDQwNDgzLDM4MTI1LDIxNTE3LDIxNjI5LDM1ODg0LDI1NzIwLDMzMDg4LDMzMDg5LDMz'@; put 'MDkwLDMzMDkxLDMzMDkyLDMzMDkzLDMzMDk1LDMzMDk3LDMzMTAxLDMzMTAyLDMzMTAzLDMzMTA2LDMzMTEwLDMzMTExLDMzMTEyLDMzMTE1LDMzMTE2LDMzMTE3LDMzMTE4LDMzMTE5LDMzMTIxLDMzMTIyLDMzMTIzLDMzMTI0LDMzMTI2LDMzMTI4LDMzMTMwLDMzMTMxLDMzMTMyLDMzMTM1'@; put 'LDMzMTM4LDMzMTM5LDMzMTQxLDMzMTQyLDMzMTQzLDMzMTQ0LDMzMTUzLDMzMTU1LDMzMTU2LDMzMTU3LDMzMTU4LDMzMTU5LDMzMTYxLDMzMTYzLDMzMTY0LDMzMTY1LDMzMTY2LDMzMTY4LDMzMTcwLDMzMTcxLDMzMTcyLDMzMTczLDMzMTc0LDMzMTc1LDMzMTc3LDMzMTc4LDMzMTgyLDMz'@; put 'MTgzLDMzMTg0LDMzMTg1LDMzMTg2LDMzMTg4LDMzMTg5LDMzMTkxLDMzMTkzLDMzMTk1LDMzMTk2LDMzMTk3LDMzMTk4LDMzMTk5LDMzMjAwLDMzMjAxLDMzMjAyLDMzMjA0LDMzMjA1LDMzMjA2LDMzMjA3LDMzMjA4LDMzMjA5LDMzMjEyLDMzMjEzLDMzMjE0LDMzMjE1LDMzMjIwLDMzMjIx'@; put 'LDMzMjIzLDMzMjI0LDMzMjI1LDMzMjI3LDMzMjI5LDMzMjMwLDMzMjMxLDMzMjMyLDMzMjMzLDMzMjM0LDMzMjM1LDI1NzIxLDM0MzIxLDI3MTY5LDMzMTgwLDMwOTUyLDI1NzA1LDM5NzY0LDI1MjczLDI2NDExLDMzNzA3LDIyNjk2LDQwNjY0LDI3ODE5LDI4NDQ4LDIzNTE4LDM4NDc2LDM1'@; put 'ODUxLDI5Mjc5LDI2NTc2LDI1Mjg3LDI5MjgxLDIwMTM3LDIyOTgyLDI3NTk3LDIyNjc1LDI2Mjg2LDI0MTQ5LDIxMjE1LDI0OTE3LDI2NDA4LDMwNDQ2LDMwNTY2LDI5Mjg3LDMxMzAyLDI1MzQzLDIxNzM4LDIxNTg0LDM4MDQ4LDM3MDI3LDIzMDY4LDMyNDM1LDI3NjcwLDIwMDM1LDIyOTAy'@; put 'LDMyNzg0LDIyODU2LDIxMzM1LDMwMDA3LDM4NTkwLDIyMjE4LDI1Mzc2LDMzMDQxLDI0NzAwLDM4MzkzLDI4MTE4LDIxNjAyLDM5Mjk3LDIwODY5LDIzMjczLDMzMDIxLDIyOTU4LDM4Njc1LDIwNTIyLDI3ODc3LDIzNjEyLDI1MzExLDIwMzIwLDIxMzExLDMzMTQ3LDM2ODcwLDI4MzQ2LDM0'@; put 'MDkxLDI1Mjg4LDI0MTgwLDMwOTEwLDI1NzgxLDI1NDY3LDI0NTY1LDIzMDY0LDM3MjQ3LDQwNDc5LDIzNjE1LDI1NDIzLDMyODM0LDIzNDIxLDIxODcwLDM4MjE4LDM4MjIxLDI4MDM3LDI0NzQ0LDI2NTkyLDI5NDA2LDIwOTU3LDIzNDI1LDMzMjM2LDMzMjM3LDMzMjM4LDMzMjM5LDMzMjQw'@; put 'LDMzMjQxLDMzMjQyLDMzMjQzLDMzMjQ0LDMzMjQ1LDMzMjQ2LDMzMjQ3LDMzMjQ4LDMzMjQ5LDMzMjUwLDMzMjUyLDMzMjUzLDMzMjU0LDMzMjU2LDMzMjU3LDMzMjU5LDMzMjYyLDMzMjYzLDMzMjY0LDMzMjY1LDMzMjY2LDMzMjY5LDMzMjcwLDMzMjcxLDMzMjcyLDMzMjczLDMzMjc0LDMz'@; put 'Mjc3LDMzMjc5LDMzMjgzLDMzMjg3LDMzMjg4LDMzMjg5LDMzMjkwLDMzMjkxLDMzMjk0LDMzMjk1LDMzMjk3LDMzMjk5LDMzMzAxLDMzMzAyLDMzMzAzLDMzMzA0LDMzMzA1LDMzMzA2LDMzMzA5LDMzMzEyLDMzMzE2LDMzMzE3LDMzMzE4LDMzMzE5LDMzMzIxLDMzMzI2LDMzMzMwLDMzMzM4'@; put 'LDMzMzQwLDMzMzQxLDMzMzQzLDMzMzQ0LDMzMzQ1LDMzMzQ2LDMzMzQ3LDMzMzQ5LDMzMzUwLDMzMzUyLDMzMzU0LDMzMzU2LDMzMzU3LDMzMzU4LDMzMzYwLDMzMzYxLDMzMzYyLDMzMzYzLDMzMzY0LDMzMzY1LDMzMzY2LDMzMzY3LDMzMzY5LDMzMzcxLDMzMzcyLDMzMzczLDMzMzc0LDMz'@; put 'Mzc2LDMzMzc3LDMzMzc4LDMzMzc5LDMzMzgwLDMzMzgxLDMzMzgyLDMzMzgzLDMzMzg1LDI1MzE5LDI3ODcwLDI5Mjc1LDI1MTk3LDM4MDYyLDMyNDQ1LDMzMDQzLDI3OTg3LDIwODkyLDI0MzI0LDIyOTAwLDIxMTYyLDI0NTk0LDIyODk5LDI2MjYyLDM0Mzg0LDMwMTExLDI1Mzg2LDI1MDYy'@; put 'LDMxOTgzLDM1ODM0LDIxNzM0LDI3NDMxLDQwNDg1LDI3NTcyLDM0MjYxLDIxNTg5LDIwNTk4LDI3ODEyLDIxODY2LDM2Mjc2LDI5MjI4LDI0MDg1LDI0NTk3LDI5NzUwLDI1MjkzLDI1NDkwLDI5MjYwLDI0NDcyLDI4MjI3LDI3OTY2LDI1ODU2LDI4NTA0LDMwNDI0LDMwOTI4LDMwNDYwLDMw'@; put 'MDM2LDIxMDI4LDIxNDY3LDIwMDUxLDI0MjIyLDI2MDQ5LDMyODEwLDMyOTgyLDI1MjQzLDIxNjM4LDIxMDMyLDI4ODQ2LDM0OTU3LDM2MzA1LDI3ODczLDIxNjI0LDMyOTg2LDIyNTIxLDM1MDYwLDM2MTgwLDM4NTA2LDM3MTk3LDIwMzI5LDI3ODAzLDIxOTQzLDMwNDA2LDMwNzY4LDI1MjU2'@; put 'LDI4OTIxLDI4NTU4LDI0NDI5LDM0MDI4LDI2ODQyLDMwODQ0LDMxNzM1LDMzMTkyLDI2Mzc5LDQwNTI3LDI1NDQ3LDMwODk2LDIyMzgzLDMwNzM4LDM4NzEzLDI1MjA5LDI1MjU5LDIxMTI4LDI5NzQ5LDI3NjA3LDMzMzg2LDMzMzg3LDMzMzg4LDMzMzg5LDMzMzkzLDMzMzk3LDMzMzk4LDMz'@; put 'Mzk5LDMzNDAwLDMzNDAzLDMzNDA0LDMzNDA4LDMzNDA5LDMzNDExLDMzNDEzLDMzNDE0LDMzNDE1LDMzNDE3LDMzNDIwLDMzNDI0LDMzNDI3LDMzNDI4LDMzNDI5LDMzNDMwLDMzNDM0LDMzNDM1LDMzNDM4LDMzNDQwLDMzNDQyLDMzNDQzLDMzNDQ3LDMzNDU4LDMzNDYxLDMzNDYyLDMzNDY2'@; put 'LDMzNDY3LDMzNDY4LDMzNDcxLDMzNDcyLDMzNDc0LDMzNDc1LDMzNDc3LDMzNDc4LDMzNDgxLDMzNDg4LDMzNDk0LDMzNDk3LDMzNDk4LDMzNTAxLDMzNTA2LDMzNTExLDMzNTEyLDMzNTEzLDMzNTE0LDMzNTE2LDMzNTE3LDMzNTE4LDMzNTIwLDMzNTIyLDMzNTIzLDMzNTI1LDMzNTI2LDMz'@; put 'NTI4LDMzNTMwLDMzNTMyLDMzNTMzLDMzNTM0LDMzNTM1LDMzNTM2LDMzNTQ2LDMzNTQ3LDMzNTQ5LDMzNTUyLDMzNTU0LDMzNTU1LDMzNTU4LDMzNTYwLDMzNTYxLDMzNTY1LDMzNTY2LDMzNTY3LDMzNTY4LDMzNTY5LDMzNTcwLDMzNTcxLDMzNTcyLDMzNTczLDMzNTc0LDMzNTc3LDMzNTc4'@; put 'LDMzNTgyLDMzNTg0LDMzNTg2LDMzNTkxLDMzNTk1LDMzNTk3LDIxODYwLDMzMDg2LDMwMTMwLDMwMzgyLDIxMzA1LDMwMTc0LDIwNzMxLDIzNjE3LDM1NjkyLDMxNjg3LDIwNTU5LDI5MjU1LDM5NTc1LDM5MTI4LDI4NDE4LDI5OTIyLDMxMDgwLDI1NzM1LDMwNjI5LDI1MzQwLDM5MDU3LDM2'@; put 'MTM5LDIxNjk3LDMyODU2LDIwMDUwLDIyMzc4LDMzNTI5LDMzODA1LDI0MTc5LDIwOTczLDI5OTQyLDM1NzgwLDIzNjMxLDIyMzY5LDI3OTAwLDM5MDQ3LDIzMTEwLDMwNzcyLDM5NzQ4LDM2ODQzLDMxODkzLDIxMDc4LDI1MTY5LDM4MTM4LDIwMTY2LDMzNjcwLDMzODg5LDMzNzY5LDMzOTcw'@; put 'LDIyNDg0LDI2NDIwLDIyMjc1LDI2MjIyLDI4MDA2LDM1ODg5LDI2MzMzLDI4Njg5LDI2Mzk5LDI3NDUwLDI2NjQ2LDI1MTE0LDIyOTcxLDE5OTcxLDIwOTMyLDI4NDIyLDI2NTc4LDI3NzkxLDIwODU0LDI2ODI3LDIyODU1LDI3NDk1LDMwMDU0LDIzODIyLDMzMDQwLDQwNzg0LDI2MDcxLDMx'@; put 'MDQ4LDMxMDQxLDM5NTY5LDM2MjE1LDIzNjgyLDIwMDYyLDIwMjI1LDIxNTUxLDIyODY1LDMwNzMyLDIyMTIwLDI3NjY4LDM2ODA0LDI0MzIzLDI3NzczLDI3ODc1LDM1NzU1LDI1NDg4LDMzNTk4LDMzNTk5LDMzNjAxLDMzNjAyLDMzNjA0LDMzNjA1LDMzNjA4LDMzNjEwLDMzNjExLDMzNjEy'@; put 'LDMzNjEzLDMzNjE0LDMzNjE5LDMzNjIxLDMzNjIyLDMzNjIzLDMzNjI0LDMzNjI1LDMzNjI5LDMzNjM0LDMzNjQ4LDMzNjQ5LDMzNjUwLDMzNjUxLDMzNjUyLDMzNjUzLDMzNjU0LDMzNjU3LDMzNjU4LDMzNjYyLDMzNjYzLDMzNjY0LDMzNjY1LDMzNjY2LDMzNjY3LDMzNjY4LDMzNjcxLDMz'@; put 'NjcyLDMzNjc0LDMzNjc1LDMzNjc2LDMzNjc3LDMzNjc5LDMzNjgwLDMzNjgxLDMzNjg0LDMzNjg1LDMzNjg2LDMzNjg3LDMzNjg5LDMzNjkwLDMzNjkzLDMzNjk1LDMzNjk3LDMzNjk4LDMzNjk5LDMzNzAwLDMzNzAxLDMzNzAyLDMzNzAzLDMzNzA4LDMzNzA5LDMzNzEwLDMzNzExLDMzNzE3'@; put 'LDMzNzIzLDMzNzI2LDMzNzI3LDMzNzMwLDMzNzMxLDMzNzMyLDMzNzM0LDMzNzM2LDMzNzM3LDMzNzM5LDMzNzQxLDMzNzQyLDMzNzQ0LDMzNzQ1LDMzNzQ2LDMzNzQ3LDMzNzQ5LDMzNzUxLDMzNzUzLDMzNzU0LDMzNzU1LDMzNzU4LDMzNzYyLDMzNzYzLDMzNzY0LDMzNzY2LDMzNzY3LDMz'@; put 'NzY4LDMzNzcxLDMzNzcyLDMzNzczLDI0Njg4LDI3OTY1LDI5MzAxLDI1MTkwLDM4MDMwLDM4MDg1LDIxMzE1LDM2ODAxLDMxNjE0LDIwMTkxLDM1ODc4LDIwMDk0LDQwNjYwLDM4MDY1LDM4MDY3LDIxMDY5LDI4NTA4LDM2OTYzLDI3OTczLDM1ODkyLDIyNTQ1LDIzODg0LDI3NDI0LDI3NDY1'@; put 'LDI2NTM4LDIxNTk1LDMzMTA4LDMyNjUyLDIyNjgxLDM0MTAzLDI0Mzc4LDI1MjUwLDI3MjA3LDM4MjAxLDI1OTcwLDI0NzA4LDI2NzI1LDMwNjMxLDIwMDUyLDIwMzkyLDI0MDM5LDM4ODA4LDI1NzcyLDMyNzI4LDIzNzg5LDIwNDMxLDMxMzczLDIwOTk5LDMzNTQwLDE5OTg4LDI0NjIzLDMx'@; put 'MzYzLDM4MDU0LDIwNDA1LDIwMTQ2LDMxMjA2LDI5NzQ4LDIxMjIwLDMzNDY1LDI1ODEwLDMxMTY1LDIzNTE3LDI3Nzc3LDM4NzM4LDM2NzMxLDI3NjgyLDIwNTQyLDIxMzc1LDI4MTY1LDI1ODA2LDI2MjI4LDI3Njk2LDI0NzczLDM5MDMxLDM1ODMxLDI0MTk4LDI5NzU2LDMxMzUxLDMxMTc5'@; put 'LDE5OTkyLDM3MDQxLDI5Njk5LDI3NzE0LDIyMjM0LDM3MTk1LDI3ODQ1LDM2MjM1LDIxMzA2LDM0NTAyLDI2MzU0LDM2NTI3LDIzNjI0LDM5NTM3LDI4MTkyLDMzNzc0LDMzNzc1LDMzNzc5LDMzNzgwLDMzNzgxLDMzNzgyLDMzNzgzLDMzNzg2LDMzNzg3LDMzNzg4LDMzNzkwLDMzNzkxLDMz'@; put 'NzkyLDMzNzk0LDMzNzk3LDMzNzk5LDMzODAwLDMzODAxLDMzODAyLDMzODA4LDMzODEwLDMzODExLDMzODEyLDMzODEzLDMzODE0LDMzODE1LDMzODE3LDMzODE4LDMzODE5LDMzODIyLDMzODIzLDMzODI0LDMzODI1LDMzODI2LDMzODI3LDMzODMzLDMzODM0LDMzODM1LDMzODM2LDMzODM3'@; put 'LDMzODM4LDMzODM5LDMzODQwLDMzODQyLDMzODQzLDMzODQ0LDMzODQ1LDMzODQ2LDMzODQ3LDMzODQ5LDMzODUwLDMzODUxLDMzODU0LDMzODU1LDMzODU2LDMzODU3LDMzODU4LDMzODU5LDMzODYwLDMzODYxLDMzODYzLDMzODY0LDMzODY1LDMzODY2LDMzODY3LDMzODY4LDMzODY5LDMz'@; put 'ODcwLDMzODcxLDMzODcyLDMzODc0LDMzODc1LDMzODc2LDMzODc3LDMzODc4LDMzODgwLDMzODg1LDMzODg2LDMzODg3LDMzODg4LDMzODkwLDMzODkyLDMzODkzLDMzODk0LDMzODk1LDMzODk2LDMzODk4LDMzOTAyLDMzOTAzLDMzOTA0LDMzOTA2LDMzOTA4LDMzOTExLDMzOTEzLDMzOTE1'@; put 'LDMzOTE2LDIxNDYyLDIzMDk0LDQwODQzLDM2MjU5LDIxNDM1LDIyMjgwLDM5MDc5LDI2NDM1LDM3Mjc1LDI3ODQ5LDIwODQwLDMwMTU0LDI1MzMxLDI5MzU2LDIxMDQ4LDIxMTQ5LDMyNTcwLDI4ODIwLDMwMjY0LDIxMzY0LDQwNTIyLDI3MDYzLDMwODMwLDM4NTkyLDM1MDMzLDMyNjc2LDI4'@; put 'OTgyLDI5MTIzLDIwODczLDI2NTc5LDI5OTI0LDIyNzU2LDI1ODgwLDIyMTk5LDM1NzUzLDM5Mjg2LDI1MjAwLDMyNDY5LDI0ODI1LDI4OTA5LDIyNzY0LDIwMTYxLDIwMTU0LDI0NTI1LDM4ODg3LDIwMjE5LDM1NzQ4LDIwOTk1LDIyOTIyLDMyNDI3LDI1MTcyLDIwMTczLDI2MDg1LDI1MTAy'@; put 'LDMzNTkyLDMzOTkzLDMzNjM1LDM0NzAxLDI5MDc2LDI4MzQyLDIzNDgxLDMyNDY2LDIwODg3LDI1NTQ1LDI2NTgwLDMyOTA1LDMzNTkzLDM0ODM3LDIwNzU0LDIzNDE4LDIyOTE0LDM2Nzg1LDIwMDgzLDI3NzQxLDIwODM3LDM1MTA5LDM2NzE5LDM4NDQ2LDM0MTIyLDI5NzkwLDM4MTYwLDM4'@; put 'Mzg0LDI4MDcwLDMzNTA5LDI0MzY5LDI1NzQ2LDI3OTIyLDMzODMyLDMzMTM0LDQwMTMxLDIyNjIyLDM2MTg3LDE5OTc3LDIxNDQxLDMzOTE3LDMzOTE4LDMzOTE5LDMzOTIwLDMzOTIxLDMzOTIzLDMzOTI0LDMzOTI1LDMzOTI2LDMzOTMwLDMzOTMzLDMzOTM1LDMzOTM2LDMzOTM3LDMzOTM4'@; put 'LDMzOTM5LDMzOTQwLDMzOTQxLDMzOTQyLDMzOTQ0LDMzOTQ2LDMzOTQ3LDMzOTQ5LDMzOTUwLDMzOTUxLDMzOTUyLDMzOTU0LDMzOTU1LDMzOTU2LDMzOTU3LDMzOTU4LDMzOTU5LDMzOTYwLDMzOTYxLDMzOTYyLDMzOTYzLDMzOTY0LDMzOTY1LDMzOTY2LDMzOTY4LDMzOTY5LDMzOTcxLDMz'@; put 'OTczLDMzOTc0LDMzOTc1LDMzOTc5LDMzOTgwLDMzOTgyLDMzOTg0LDMzOTg2LDMzOTg3LDMzOTg5LDMzOTkwLDMzOTkxLDMzOTkyLDMzOTk1LDMzOTk2LDMzOTk4LDMzOTk5LDM0MDAyLDM0MDA0LDM0MDA1LDM0MDA3LDM0MDA4LDM0MDA5LDM0MDEwLDM0MDExLDM0MDEyLDM0MDE0LDM0MDE3'@; put 'LDM0MDE4LDM0MDIwLDM0MDIzLDM0MDI0LDM0MDI1LDM0MDI2LDM0MDI3LDM0MDI5LDM0MDMwLDM0MDMxLDM0MDMzLDM0MDM0LDM0MDM1LDM0MDM2LDM0MDM3LDM0MDM4LDM0MDM5LDM0MDQwLDM0MDQxLDM0MDQyLDM0MDQzLDM0MDQ1LDM0MDQ2LDM0MDQ4LDM0MDQ5LDM0MDUwLDIwMjU0LDI1'@; put 'OTU1LDI2NzA1LDIxOTcxLDIwMDA3LDI1NjIwLDM5NTc4LDI1MTk1LDIzMjM0LDI5NzkxLDMzMzk0LDI4MDczLDI2ODYyLDIwNzExLDMzNjc4LDMwNzIyLDI2NDMyLDIxMDQ5LDI3ODAxLDMyNDMzLDIwNjY3LDIxODYxLDI5MDIyLDMxNTc5LDI2MTk0LDI5NjQyLDMzNTE1LDI2NDQxLDIzNjY1'@; put 'LDIxMDI0LDI5MDUzLDM0OTIzLDM4Mzc4LDM4NDg1LDI1Nzk3LDM2MTkzLDMzMjAzLDIxODkyLDI3NzMzLDI1MTU5LDMyNTU4LDIyNjc0LDIwMjYwLDIxODMwLDM2MTc1LDI2MTg4LDE5OTc4LDIzNTc4LDM1MDU5LDI2Nzg2LDI1NDIyLDMxMjQ1LDI4OTAzLDMzNDIxLDIxMjQyLDM4OTAyLDIz'@; put 'NTY5LDIxNzM2LDM3MDQ1LDMyNDYxLDIyODgyLDM2MTcwLDM0NTAzLDMzMjkyLDMzMjkzLDM2MTk4LDI1NjY4LDIzNTU2LDI0OTEzLDI4MDQxLDMxMDM4LDM1Nzc0LDMwNzc1LDMwMDAzLDIxNjI3LDIwMjgwLDM2NTIzLDI4MTQ1LDIzMDcyLDMyNDUzLDMxMDcwLDI3Nzg0LDIzNDU3LDIzMTU4'@; put 'LDI5OTc4LDMyOTU4LDI0OTEwLDI4MTgzLDIyNzY4LDI5OTgzLDI5OTg5LDI5Mjk4LDIxMzE5LDMyNDk5LDM0MDUxLDM0MDUyLDM0MDUzLDM0MDU0LDM0MDU1LDM0MDU2LDM0MDU3LDM0MDU4LDM0MDU5LDM0MDYxLDM0MDYyLDM0MDYzLDM0MDY0LDM0MDY2LDM0MDY4LDM0MDY5LDM0MDcwLDM0'@; put 'MDcyLDM0MDczLDM0MDc1LDM0MDc2LDM0MDc3LDM0MDc4LDM0MDgwLDM0MDgyLDM0MDgzLDM0MDg0LDM0MDg1LDM0MDg2LDM0MDg3LDM0MDg4LDM0MDg5LDM0MDkwLDM0MDkzLDM0MDk0LDM0MDk1LDM0MDk2LDM0MDk3LDM0MDk4LDM0MDk5LDM0MTAwLDM0MTAxLDM0MTAyLDM0MTEwLDM0MTEx'@; put 'LDM0MTEyLDM0MTEzLDM0MTE0LDM0MTE2LDM0MTE3LDM0MTE4LDM0MTE5LDM0MTIzLDM0MTI0LDM0MTI1LDM0MTI2LDM0MTI3LDM0MTI4LDM0MTI5LDM0MTMwLDM0MTMxLDM0MTMyLDM0MTMzLDM0MTM1LDM0MTM2LDM0MTM4LDM0MTM5LDM0MTQwLDM0MTQxLDM0MTQzLDM0MTQ0LDM0MTQ1LDM0'@; put 'MTQ2LDM0MTQ3LDM0MTQ5LDM0MTUwLDM0MTUxLDM0MTUzLDM0MTU0LDM0MTU1LDM0MTU2LDM0MTU3LDM0MTU4LDM0MTU5LDM0MTYwLDM0MTYxLDM0MTYzLDM0MTY1LDM0MTY2LDM0MTY3LDM0MTY4LDM0MTcyLDM0MTczLDM0MTc1LDM0MTc2LDM0MTc3LDMwNDY1LDMwNDI3LDIxMDk3LDMyOTg4'@; put 'LDIyMzA3LDI0MDcyLDIyODMzLDI5NDIyLDI2MDQ1LDI4Mjg3LDM1Nzk5LDIzNjA4LDM0NDE3LDIxMzEzLDMwNzA3LDI1MzQyLDI2MTAyLDIwMTYwLDM5MTM1LDM0NDMyLDIzNDU0LDM1NzgyLDIxNDkwLDMwNjkwLDIwMzUxLDIzNjMwLDM5NTQyLDIyOTg3LDI0MzM1LDMxMDM0LDIyNzYzLDE5'@; put 'OTkwLDI2NjIzLDIwMTA3LDI1MzI1LDM1NDc1LDM2ODkzLDIxMTgzLDI2MTU5LDIxOTgwLDIyMTI0LDM2ODY2LDIwMTgxLDIwMzY1LDM3MzIyLDM5MjgwLDI3NjYzLDI0MDY2LDI0NjQzLDIzNDYwLDM1MjcwLDM1Nzk3LDI1OTEwLDI1MTYzLDM5MzE4LDIzNDMyLDIzNTUxLDI1NDgwLDIxODA2'@; put 'LDIxNDYzLDMwMjQ2LDIwODYxLDM0MDkyLDI2NTMwLDI2ODAzLDI3NTMwLDI1MjM0LDM2NzU1LDIxNDYwLDMzMjk4LDI4MTEzLDMwMDk1LDIwMDcwLDM2MTc0LDIzNDA4LDI5MDg3LDM0MjIzLDI2MjU3LDI2MzI5LDMyNjI2LDM0NTYwLDQwNjUzLDQwNzM2LDIzNjQ2LDI2NDE1LDM2ODQ4LDI2'@; put 'NjQxLDI2NDYzLDI1MTAxLDMxNDQ2LDIyNjYxLDI0MjQ2LDI1OTY4LDI4NDY1LDM0MTc4LDM0MTc5LDM0MTgyLDM0MTg0LDM0MTg1LDM0MTg2LDM0MTg3LDM0MTg4LDM0MTg5LDM0MTkwLDM0MTkyLDM0MTkzLDM0MTk0LDM0MTk1LDM0MTk2LDM0MTk3LDM0MTk4LDM0MTk5LDM0MjAwLDM0MjAx'@; put 'LDM0MjAyLDM0MjA1LDM0MjA2LDM0MjA3LDM0MjA4LDM0MjA5LDM0MjEwLDM0MjExLDM0MjEzLDM0MjE0LDM0MjE1LDM0MjE3LDM0MjE5LDM0MjIwLDM0MjIxLDM0MjI1LDM0MjI2LDM0MjI3LDM0MjI4LDM0MjI5LDM0MjMwLDM0MjMyLDM0MjM0LDM0MjM1LDM0MjM2LDM0MjM3LDM0MjM4LDM0'@; put 'MjM5LDM0MjQwLDM0MjQyLDM0MjQzLDM0MjQ0LDM0MjQ1LDM0MjQ2LDM0MjQ3LDM0MjQ4LDM0MjUwLDM0MjUxLDM0MjUyLDM0MjUzLDM0MjU0LDM0MjU3LDM0MjU4LDM0MjYwLDM0MjYyLDM0MjYzLDM0MjY0LDM0MjY1LDM0MjY2LDM0MjY3LDM0MjY5LDM0MjcwLDM0MjcxLDM0MjcyLDM0Mjcz'@; put 'LDM0Mjc0LDM0Mjc1LDM0Mjc3LDM0Mjc4LDM0Mjc5LDM0MjgwLDM0MjgyLDM0MjgzLDM0Mjg0LDM0Mjg1LDM0Mjg2LDM0Mjg3LDM0Mjg4LDM0Mjg5LDM0MjkwLDM0MjkxLDM0MjkyLDM0MjkzLDM0Mjk0LDM0Mjk1LDM0Mjk2LDI0NjYxLDIxMDQ3LDMyNzgxLDI1Njg0LDM0OTI4LDI5OTkzLDI0'@; put 'MDY5LDI2NjQzLDI1MzMyLDM4Njg0LDIxNDUyLDI5MjQ1LDM1ODQxLDI3NzAwLDMwNTYxLDMxMjQ2LDIxNTUwLDMwNjM2LDM5MDM0LDMzMzA4LDM1ODI4LDMwODA1LDI2Mzg4LDI4ODY1LDI2MDMxLDI1NzQ5LDIyMDcwLDI0NjA1LDMxMTY5LDIxNDk2LDE5OTk3LDI3NTE1LDMyOTAyLDIzNTQ2'@; put 'LDIxOTg3LDIyMjM1LDIwMjgyLDIwMjg0LDM5MjgyLDI0MDUxLDI2NDk0LDMyODI0LDI0NTc4LDM5MDQyLDM2ODY1LDIzNDM1LDM1NzcyLDM1ODI5LDI1NjI4LDMzMzY4LDI1ODIyLDIyMDEzLDMzNDg3LDM3MjIxLDIwNDM5LDMyMDMyLDM2ODk1LDMxOTAzLDIwNzIzLDIyNjA5LDI4MzM1LDIz'@; put 'NDg3LDM1Nzg1LDMyODk5LDM3MjQwLDMzOTQ4LDMxNjM5LDM0NDI5LDM4NTM5LDM4NTQzLDMyNDg1LDM5NjM1LDMwODYyLDIzNjgxLDMxMzE5LDM2OTMwLDM4NTY3LDMxMDcxLDIzMzg1LDI1NDM5LDMxNDk5LDM0MDAxLDI2Nzk3LDIxNzY2LDMyNTUzLDI5NzEyLDMyMDM0LDM4MTQ1LDI1MTUy'@; put 'LDIyNjA0LDIwMTgyLDIzNDI3LDIyOTA1LDIyNjEyLDM0Mjk3LDM0Mjk4LDM0MzAwLDM0MzAxLDM0MzAyLDM0MzA0LDM0MzA1LDM0MzA2LDM0MzA3LDM0MzA4LDM0MzEwLDM0MzExLDM0MzEyLDM0MzEzLDM0MzE0LDM0MzE1LDM0MzE2LDM0MzE3LDM0MzE4LDM0MzE5LDM0MzIwLDM0MzIyLDM0'@; put 'MzIzLDM0MzI0LDM0MzI1LDM0MzI3LDM0MzI4LDM0MzI5LDM0MzMwLDM0MzMxLDM0MzMyLDM0MzMzLDM0MzM0LDM0MzM1LDM0MzM2LDM0MzM3LDM0MzM4LDM0MzM5LDM0MzQwLDM0MzQxLDM0MzQyLDM0MzQ0LDM0MzQ2LDM0MzQ3LDM0MzQ4LDM0MzQ5LDM0MzUwLDM0MzUxLDM0MzUyLDM0MzUz'@; put 'LDM0MzU0LDM0MzU1LDM0MzU2LDM0MzU3LDM0MzU4LDM0MzU5LDM0MzYxLDM0MzYyLDM0MzYzLDM0MzY1LDM0MzY2LDM0MzY3LDM0MzY4LDM0MzY5LDM0MzcwLDM0MzcxLDM0MzcyLDM0MzczLDM0Mzc0LDM0Mzc1LDM0Mzc2LDM0Mzc3LDM0Mzc4LDM0Mzc5LDM0MzgwLDM0Mzg2LDM0Mzg3LDM0'@; put 'Mzg5LDM0MzkwLDM0MzkxLDM0MzkyLDM0MzkzLDM0Mzk1LDM0Mzk2LDM0Mzk3LDM0Mzk5LDM0NDAwLDM0NDAxLDM0NDAzLDM0NDA0LDM0NDA1LDM0NDA2LDM0NDA3LDM0NDA4LDM0NDA5LDM0NDEwLDI5NTQ5LDI1Mzc0LDM2NDI3LDM2MzY3LDMyOTc0LDMzNDkyLDI1MjYwLDIxNDg4LDI3ODg4'@; put 'LDM3MjE0LDIyODI2LDI0NTc3LDI3NzYwLDIyMzQ5LDI1Njc0LDM2MTM4LDMwMjUxLDI4MzkzLDIyMzYzLDI3MjY0LDMwMTkyLDI4NTI1LDM1ODg1LDM1ODQ4LDIyMzc0LDI3NjMxLDM0OTYyLDMwODk5LDI1NTA2LDIxNDk3LDI4ODQ1LDI3NzQ4LDIyNjE2LDI1NjQyLDIyNTMwLDI2ODQ4LDMz'@; put 'MTc5LDIxNzc2LDMxOTU4LDIwNTA0LDM2NTM4LDI4MTA4LDM2MjU1LDI4OTA3LDI1NDg3LDI4MDU5LDI4MzcyLDMyNDg2LDMzNzk2LDI2NjkxLDM2ODY3LDI4MTIwLDM4NTE4LDM1NzUyLDIyODcxLDI5MzA1LDM0Mjc2LDMzMTUwLDMwMTQwLDM1NDY2LDI2Nzk5LDIxMDc2LDM2Mzg2LDM4MTYx'@; put 'LDI1NTUyLDM5MDY0LDM2NDIwLDIxODg0LDIwMzA3LDI2MzY3LDIyMTU5LDI0Nzg5LDI4MDUzLDIxMDU5LDIzNjI1LDIyODI1LDI4MTU1LDIyNjM1LDNlNCwyOTk4MCwyNDY4NCwzMzMwMCwzMzA5NCwyNTM2MSwyNjQ2NSwzNjgzNCwzMDUyMiwzNjMzOSwzNjE0OCwzODA4MSwyNDA4NiwyMTM4'@; put 'MSwyMTU0OCwyODg2NywzNDQxMywzNDQxNSwzNDQxNiwzNDQxOCwzNDQxOSwzNDQyMCwzNDQyMSwzNDQyMiwzNDQyMywzNDQyNCwzNDQzNSwzNDQzNiwzNDQzNywzNDQzOCwzNDQzOSwzNDQ0MCwzNDQ0MSwzNDQ0NiwzNDQ0NywzNDQ0OCwzNDQ0OSwzNDQ1MCwzNDQ1MiwzNDQ1NCwzNDQ1NSwz'@; put 'NDQ1NiwzNDQ1NywzNDQ1OCwzNDQ1OSwzNDQ2MiwzNDQ2MywzNDQ2NCwzNDQ2NSwzNDQ2NiwzNDQ2OSwzNDQ3MCwzNDQ3NSwzNDQ3NywzNDQ3OCwzNDQ4MiwzNDQ4MywzNDQ4NywzNDQ4OCwzNDQ4OSwzNDQ5MSwzNDQ5MiwzNDQ5MywzNDQ5NCwzNDQ5NSwzNDQ5NywzNDQ5OCwzNDQ5OSwzNDUw'@; put 'MSwzNDUwNCwzNDUwOCwzNDUwOSwzNDUxNCwzNDUxNSwzNDUxNywzNDUxOCwzNDUxOSwzNDUyMiwzNDUyNCwzNDUyNSwzNDUyOCwzNDUyOSwzNDUzMCwzNDUzMSwzNDUzMywzNDUzNCwzNDUzNSwzNDUzNiwzNDUzOCwzNDUzOSwzNDU0MCwzNDU0MywzNDU0OSwzNDU1MCwzNDU1MSwzNDU1NCwz'@; put 'NDU1NSwzNDU1NiwzNDU1NywzNDU1OSwzNDU2MSwzNDU2NCwzNDU2NSwzNDU2NiwzNDU3MSwzNDU3MiwzNDU3NCwzNDU3NSwzNDU3NiwzNDU3NywzNDU4MCwzNDU4MiwyNzcxMiwyNDMxMSwyMDU3MiwyMDE0MSwyNDIzNywyNTQwMiwzMzM1MSwzNjg5MCwyNjcwNCwzNzIzMCwzMDY0MywyMTUx'@; put 'NiwzODEwOCwyNDQyMCwzMTQ2MSwyNjc0MiwyNTQxMywzMTU3MCwzMjQ3OSwzMDE3MSwyMDU5OSwyNTIzNywyMjgzNiwzNjg3OSwyMDk4NCwzMTE3MSwzMTM2MSwyMjI3MCwyNDQ2NiwzNjg4NCwyODAzNCwyMzY0OCwyMjMwMywyMTUyMCwyMDgyMCwyODIzNywyMjI0MiwyNTUxMiwzOTA1OSwz'@; put 'MzE1MSwzNDU4MSwzNTExNCwzNjg2NCwyMTUzNCwyMzY2MywzMzIxNiwyNTMwMiwyNTE3NiwzMzA3Myw0MDUwMSwzODQ2NCwzOTUzNCwzOTU0OCwyNjkyNSwyMjk0OSwyNTI5OSwyMTgyMiwyNTM2NiwyMTcwMywzNDUyMSwyNzk2NCwyMzA0MywyOTkyNiwzNDk3MiwyNzQ5OCwyMjgwNiwzNTkx'@; put 'NiwyNDM2NywyODI4NiwyOTYwOSwzOTAzNywyMDAyNCwyODkxOSwyMzQzNiwzMDg3MSwyNTQwNSwyNjIwMiwzMDM1OCwyNDc3OSwyMzQ1MSwyMzExMywxOTk3NSwzMzEwOSwyNzc1NCwyOTU3OSwyMDEyOSwyNjUwNSwzMjU5MywyNDQ0OCwyNjEwNiwyNjM5NSwyNDUzNiwyMjkxNiwyMzA0MSwz'@; put 'NDU4NSwzNDU4NywzNDU4OSwzNDU5MSwzNDU5MiwzNDU5NiwzNDU5OCwzNDU5OSwzNDYwMCwzNDYwMiwzNDYwMywzNDYwNCwzNDYwNSwzNDYwNywzNDYwOCwzNDYxMCwzNDYxMSwzNDYxMywzNDYxNCwzNDYxNiwzNDYxNywzNDYxOCwzNDYyMCwzNDYyMSwzNDYyNCwzNDYyNSwzNDYyNiwzNDYy'@; put 'NywzNDYyOCwzNDYyOSwzNDYzMCwzNDYzNCwzNDYzNSwzNDYzNywzNDYzOSwzNDY0MCwzNDY0MSwzNDY0MiwzNDY0NCwzNDY0NSwzNDY0NiwzNDY0OCwzNDY1MCwzNDY1MSwzNDY1MiwzNDY1MywzNDY1NCwzNDY1NSwzNDY1NywzNDY1OCwzNDY2MiwzNDY2MywzNDY2NCwzNDY2NSwzNDY2Niwz'@; put 'NDY2NywzNDY2OCwzNDY2OSwzNDY3MSwzNDY3MywzNDY3NCwzNDY3NSwzNDY3NywzNDY3OSwzNDY4MCwzNDY4MSwzNDY4MiwzNDY4NywzNDY4OCwzNDY4OSwzNDY5MiwzNDY5NCwzNDY5NSwzNDY5NywzNDY5OCwzNDcwMCwzNDcwMiwzNDcwMywzNDcwNCwzNDcwNSwzNDcwNiwzNDcwOCwzNDcw'@; put 'OSwzNDcxMCwzNDcxMiwzNDcxMywzNDcxNCwzNDcxNSwzNDcxNiwzNDcxNywzNDcxOCwzNDcyMCwzNDcyMSwzNDcyMiwzNDcyMywzNDcyNCwyNDAxMywyNDQ5NCwyMTM2MSwzODg4NiwzNjgyOSwyNjY5MywyMjI2MCwyMTgwNywyNDc5OSwyMDAyNiwyODQ5MywzMjUwMCwzMzQ3OSwzMzgwNiwy'@; put 'Mjk5NiwyMDI1NSwyMDI2NiwyMzYxNCwzMjQyOCwyNjQxMCwzNDA3NCwyMTYxOSwzMDAzMSwzMjk2MywyMTg5MCwzOTc1OSwyMDMwMSwyODIwNSwzNTg1OSwyMzU2MSwyNDk0NCwyMTM1NSwzMDIzOSwyODIwMSwzNDQ0MiwyNTk5MSwzODM5NSwzMjQ0MSwyMTU2MywzMTI4MywzMjAxMCwzODM4'@; put 'MiwyMTk4NSwzMjcwNSwyOTkzNCwyNTM3MywzNDU4MywyODA2NSwzMTM4OSwyNTEwNSwyNjAxNywyMTM1MSwyNTU2OSwyNzc3OSwyNDA0MywyMTU5NiwzODA1NiwyMDA0NCwyNzc0NSwzNTgyMCwyMzYyNywyNjA4MCwzMzQzNiwyNjc5MSwyMTU2NiwyMTU1NiwyNzU5NSwyNzQ5NCwyMDExNiwy'@; put 'NTQxMCwyMTMyMCwzMzMxMCwyMDIzNywyMDM5OCwyMjM2NiwyNTA5OCwzODY1NCwyNjIxMiwyOTI4OSwyMTI0NywyMTE1MywyNDczNSwzNTgyMywyNjEzMiwyOTA4MSwyNjUxMiwzNTE5OSwzMDgwMiwzMDcxNywyNjIyNCwyMjA3NSwyMTU2MCwzODE3NywyOTMwNiwzNDcyNSwzNDcyNiwzNDcy'@; put 'NywzNDcyOSwzNDczMCwzNDczNCwzNDczNiwzNDczNywzNDczOCwzNDc0MCwzNDc0MiwzNDc0MywzNDc0NCwzNDc0NSwzNDc0NywzNDc0OCwzNDc1MCwzNDc1MSwzNDc1MywzNDc1NCwzNDc1NSwzNDc1NiwzNDc1NywzNDc1OSwzNDc2MCwzNDc2MSwzNDc2NCwzNDc2NSwzNDc2NiwzNDc2Nywz'@; put 'NDc2OCwzNDc3MiwzNDc3MywzNDc3NCwzNDc3NSwzNDc3NiwzNDc3NywzNDc3OCwzNDc4MCwzNDc4MSwzNDc4MiwzNDc4MywzNDc4NSwzNDc4NiwzNDc4NywzNDc4OCwzNDc5MCwzNDc5MSwzNDc5MiwzNDc5MywzNDc5NSwzNDc5NiwzNDc5NywzNDc5OSwzNDgwMCwzNDgwMSwzNDgwMiwzNDgw'@; put 'MywzNDgwNCwzNDgwNSwzNDgwNiwzNDgwNywzNDgwOCwzNDgxMCwzNDgxMSwzNDgxMiwzNDgxMywzNDgxNSwzNDgxNiwzNDgxNywzNDgxOCwzNDgyMCwzNDgyMSwzNDgyMiwzNDgyMywzNDgyNCwzNDgyNSwzNDgyNywzNDgyOCwzNDgyOSwzNDgzMCwzNDgzMSwzNDgzMiwzNDgzMywzNDgzNCwz'@; put 'NDgzNiwzNDgzOSwzNDg0MCwzNDg0MSwzNDg0MiwzNDg0NCwzNDg0NSwzNDg0NiwzNDg0NywzNDg0OCwzNDg1MSwzMTIzMiwyNDY4NywyNDA3NiwyNDcxMywzMzE4MSwyMjgwNSwyNDc5NiwyOTA2MCwyODkxMSwyODMzMCwyNzcyOCwyOTMxMiwyNzI2OCwzNDk4OSwyNDEwOSwyMDA2NCwyMzIx'@; put 'OSwyMTkxNiwzODExNSwyNzkyNywzMTk5NSwzODU1MywyNTEwMywzMjQ1NCwzMDYwNiwzNDQzMCwyMTI4MywzODY4NiwzNjc1OCwyNjI0NywyMzc3NywyMDM4NCwyOTQyMSwxOTk3OSwyMTQxNCwyMjc5OSwyMTUyMywyNTQ3MiwzODE4NCwyMDgwOCwyMDE4NSw0MDA5MiwzMjQyMCwyMTY4OCwz'@; put 'NjEzMiwzNDkwMCwzMzMzNSwzODM4NiwyODA0NiwyNDM1OCwyMzI0NCwyNjE3NCwzODUwNSwyOTYxNiwyOTQ4NiwyMTQzOSwzMzE0NiwzOTMwMSwzMjY3MywyMzQ2NiwzODUxOSwzODQ4MCwzMjQ0NywzMDQ1NiwyMTQxMCwzODI2MiwzOTMyMSwzMTY2NSwzNTE0MCwyODI0OCwyMDA2NSwzMjcy'@; put 'NCwzMTA3NywzNTgxNCwyNDgxOSwyMTcwOSwyMDEzOSwzOTAzMywyNDA1NSwyNzIzMywyMDY4NywyMTUyMSwzNTkzNywzMzgzMSwzMDgxMywzODY2MCwyMTA2NiwyMTc0MiwyMjE3OSwzODE0NCwyODA0MCwyMzQ3NywyODEwMiwyNjE5NSwzNDg1MiwzNDg1MywzNDg1NCwzNDg1NSwzNDg1Niwz'@; put 'NDg1NywzNDg1OCwzNDg1OSwzNDg2MCwzNDg2MSwzNDg2MiwzNDg2MywzNDg2NCwzNDg2NSwzNDg2NywzNDg2OCwzNDg2OSwzNDg3MCwzNDg3MSwzNDg3MiwzNDg3NCwzNDg3NSwzNDg3NywzNDg3OCwzNDg3OSwzNDg4MSwzNDg4MiwzNDg4MywzNDg4NiwzNDg4NywzNDg4OCwzNDg4OSwzNDg5'@; put 'MCwzNDg5MSwzNDg5NCwzNDg5NSwzNDg5NiwzNDg5NywzNDg5OCwzNDg5OSwzNDkwMSwzNDkwMiwzNDkwNCwzNDkwNiwzNDkwNywzNDkwOCwzNDkwOSwzNDkxMCwzNDkxMSwzNDkxMiwzNDkxOCwzNDkxOSwzNDkyMiwzNDkyNSwzNDkyNywzNDkyOSwzNDkzMSwzNDkzMiwzNDkzMywzNDkzNCwz'@; put 'NDkzNiwzNDkzNywzNDkzOCwzNDkzOSwzNDk0MCwzNDk0NCwzNDk0NywzNDk1MCwzNDk1MSwzNDk1MywzNDk1NCwzNDk1NiwzNDk1OCwzNDk1OSwzNDk2MCwzNDk2MSwzNDk2MywzNDk2NCwzNDk2NSwzNDk2NywzNDk2OCwzNDk2OSwzNDk3MCwzNDk3MSwzNDk3MywzNDk3NCwzNDk3NSwzNDk3'@; put 'NiwzNDk3NywzNDk3OSwzNDk4MSwzNDk4MiwzNDk4MywzNDk4NCwzNDk4NSwzNDk4NiwyMzU2NywyMzM4OSwyNjY1NywzMjkxOCwyMTg4MCwzMTUwNSwyNTkyOCwyNjk2NCwyMDEyMywyNzQ2MywzNDYzOCwzODc5NSwyMTMyNywyNTM3NSwyNTY1OCwzNzAzNCwyNjAxMiwzMjk2MSwzNTg1Niwy'@; put 'MDg4OSwyNjgwMCwyMTM2OCwzNDgwOSwyNTAzMiwyNzg0NCwyNzg5OSwzNTg3NCwyMzYzMywzNDIxOCwzMzQ1NSwzODE1NiwyNzQyNywzNjc2MywyNjAzMiwyNDU3MSwyNDUxNSwyMDQ0OSwzNDg4NSwyNjE0MywzMzEyNSwyOTQ4MSwyNDgyNiwyMDg1MiwyMTAwOSwyMjQxMSwyNDQxOCwzNzAy'@; put 'NiwzNDg5MiwzNzI2NiwyNDE4NCwyNjQ0NywyNDYxNSwyMjk5NSwyMDgwNCwyMDk4MiwzMzAxNiwyMTI1NiwyNzc2OSwzODU5NiwyOTA2NiwyMDI0MSwyMDQ2MiwzMjY3MCwyNjQyOSwyMTk1NywzODE1MiwzMTE2OCwzNDk2NiwzMjQ4MywyMjY4NywyNTEwMCwzODY1NiwzNDM5NCwyMjA0MCwz'@; put 'OTAzNSwyNDQ2NCwzNTc2OCwzMzk4OCwzNzIwNywyMTQ2NSwyNjA5MywyNDIwNywzMDA0NCwyNDY3NiwzMjExMCwyMzE2NywzMjQ5MCwzMjQ5MywzNjcxMywyMTkyNywyMzQ1OSwyNDc0OCwyNjA1OSwyOTU3MiwzNDk4OCwzNDk5MCwzNDk5MSwzNDk5MiwzNDk5NCwzNDk5NSwzNDk5NiwzNDk5'@; put 'NywzNDk5OCwzNWUzLDM1MDAxLDM1MDAyLDM1MDAzLDM1MDA1LDM1MDA2LDM1MDA3LDM1MDA4LDM1MDExLDM1MDEyLDM1MDE1LDM1MDE2LDM1MDE4LDM1MDE5LDM1MDIwLDM1MDIxLDM1MDIzLDM1MDI0LDM1MDI1LDM1MDI3LDM1MDMwLDM1MDMxLDM1MDM0LDM1MDM1LDM1MDM2LDM1MDM3LDM1'@; put 'MDM4LDM1MDQwLDM1MDQxLDM1MDQ2LDM1MDQ3LDM1MDQ5LDM1MDUwLDM1MDUxLDM1MDUyLDM1MDUzLDM1MDU0LDM1MDU1LDM1MDU4LDM1MDYxLDM1MDYyLDM1MDYzLDM1MDY2LDM1MDY3LDM1MDY5LDM1MDcxLDM1MDcyLDM1MDczLDM1MDc1LDM1MDc2LDM1MDc3LDM1MDc4LDM1MDc5LDM1MDgw'@; put 'LDM1MDgxLDM1MDgzLDM1MDg0LDM1MDg1LDM1MDg2LDM1MDg3LDM1MDg5LDM1MDkyLDM1MDkzLDM1MDk0LDM1MDk1LDM1MDk2LDM1MTAwLDM1MTAxLDM1MTAyLDM1MTAzLDM1MTA0LDM1MTA2LDM1MTA3LDM1MTA4LDM1MTEwLDM1MTExLDM1MTEyLDM1MTEzLDM1MTE2LDM1MTE3LDM1MTE4LDM1'@; put 'MTE5LDM1MTIxLDM1MTIyLDM1MTIzLDM1MTI1LDM1MTI3LDM2ODczLDMwMzA3LDMwNTA1LDMyNDc0LDM4NzcyLDM0MjAzLDIzMzk4LDMxMzQ4LDM4NjM0LDM0ODgwLDIxMTk1LDI5MDcxLDI0NDkwLDI2MDkyLDM1ODEwLDIzNTQ3LDM5NTM1LDI0MDMzLDI3NTI5LDI3NzM5LDM1NzU3LDM1NzU5'@; put 'LDM2ODc0LDM2ODA1LDIxMzg3LDI1Mjc2LDQwNDg2LDQwNDkzLDIxNTY4LDIwMDExLDMzNDY5LDI5MjczLDM0NDYwLDIzODMwLDM0OTA1LDI4MDc5LDM4NTk3LDIxNzEzLDIwMTIyLDM1NzY2LDI4OTM3LDIxNjkzLDM4NDA5LDI4ODk1LDI4MTUzLDMwNDE2LDIwMDA1LDMwNzQwLDM0NTc4LDIz'@; put 'NzIxLDI0MzEwLDM1MzI4LDM5MDY4LDM4NDE0LDI4ODE0LDI3ODM5LDIyODUyLDI1NTEzLDMwNTI0LDM0ODkzLDI4NDM2LDMzMzk1LDIyNTc2LDI5MTQxLDIxMzg4LDMwNzQ2LDM4NTkzLDIxNzYxLDI0NDIyLDI4OTc2LDIzNDc2LDM1ODY2LDM5NTY0LDI3NTIzLDIyODMwLDQwNDk1LDMxMjA3'@; put 'LDI2NDcyLDI1MTk2LDIwMzM1LDMwMTEzLDMyNjUwLDI3OTE1LDM4NDUxLDI3Njg3LDIwMjA4LDMwMTYyLDIwODU5LDI2Njc5LDI4NDc4LDM2OTkyLDMzMTM2LDIyOTM0LDI5ODE0LDM1MTI4LDM1MTI5LDM1MTMwLDM1MTMxLDM1MTMyLDM1MTMzLDM1MTM0LDM1MTM1LDM1MTM2LDM1MTM4LDM1'@; put 'MTM5LDM1MTQxLDM1MTQyLDM1MTQzLDM1MTQ0LDM1MTQ1LDM1MTQ2LDM1MTQ3LDM1MTQ4LDM1MTQ5LDM1MTUwLDM1MTUxLDM1MTUyLDM1MTUzLDM1MTU0LDM1MTU1LDM1MTU2LDM1MTU3LDM1MTU4LDM1MTU5LDM1MTYwLDM1MTYxLDM1MTYyLDM1MTYzLDM1MTY0LDM1MTY1LDM1MTY4LDM1MTY5'@; put 'LDM1MTcwLDM1MTcxLDM1MTcyLDM1MTczLDM1MTc1LDM1MTc2LDM1MTc3LDM1MTc4LDM1MTc5LDM1MTgwLDM1MTgxLDM1MTgyLDM1MTgzLDM1MTg0LDM1MTg1LDM1MTg2LDM1MTg3LDM1MTg4LDM1MTg5LDM1MTkwLDM1MTkxLDM1MTkyLDM1MTkzLDM1MTk0LDM1MTk2LDM1MTk3LDM1MTk4LDM1'@; put 'MjAwLDM1MjAyLDM1MjA0LDM1MjA1LDM1MjA3LDM1MjA4LDM1MjA5LDM1MjEwLDM1MjExLDM1MjEyLDM1MjEzLDM1MjE0LDM1MjE1LDM1MjE2LDM1MjE3LDM1MjE4LDM1MjE5LDM1MjIwLDM1MjIxLDM1MjIyLDM1MjIzLDM1MjI0LDM1MjI1LDM1MjI2LDM1MjI3LDM1MjI4LDM1MjI5LDM1MjMw'@; put 'LDM1MjMxLDM1MjMyLDM1MjMzLDI1NjcxLDIzNTkxLDM2OTY1LDMxMzc3LDM1ODc1LDIzMDAyLDIxNjc2LDMzMjgwLDMzNjQ3LDM1MjAxLDMyNzY4LDI2OTI4LDIyMDk0LDMyODIyLDI5MjM5LDM3MzI2LDIwOTE4LDIwMDYzLDM5MDI5LDI1NDk0LDE5OTk0LDIxNDk0LDI2MzU1LDMzMDk5LDIy'@; put 'ODEyLDI4MDgyLDE5OTY4LDIyNzc3LDIxMzA3LDI1NTU4LDM4MTI5LDIwMzgxLDIwMjM0LDM0OTE1LDM5MDU2LDIyODM5LDM2OTUxLDMxMjI3LDIwMjAyLDMzMDA4LDMwMDk3LDI3Nzc4LDIzNDUyLDIzMDE2LDI0NDEzLDI2ODg1LDM0NDMzLDIwNTA2LDI0MDUwLDIwMDU3LDMwNjkxLDIwMTk3'@; put 'LDMzNDAyLDI1MjMzLDI2MTMxLDM3MDA5LDIzNjczLDIwMTU5LDI0NDQxLDMzMjIyLDM2OTIwLDMyOTAwLDMwMTIzLDIwMTM0LDM1MDI4LDI0ODQ3LDI3NTg5LDI0NTE4LDIwMDQxLDMwNDEwLDI4MzIyLDM1ODExLDM1NzU4LDM1ODUwLDM1NzkzLDI0MzIyLDMyNzY0LDMyNzE2LDMyNDYyLDMz'@; put 'NTg5LDMzNjQzLDIyMjQwLDI3NTc1LDM4ODk5LDM4NDUyLDIzMDM1LDIxNTM1LDM4MTM0LDI4MTM5LDIzNDkzLDM5Mjc4LDIzNjA5LDI0MzQxLDM4NTQ0LDM1MjM0LDM1MjM1LDM1MjM2LDM1MjM3LDM1MjM4LDM1MjM5LDM1MjQwLDM1MjQxLDM1MjQyLDM1MjQzLDM1MjQ0LDM1MjQ1LDM1MjQ2'@; put 'LDM1MjQ3LDM1MjQ4LDM1MjQ5LDM1MjUwLDM1MjUxLDM1MjUyLDM1MjUzLDM1MjU0LDM1MjU1LDM1MjU2LDM1MjU3LDM1MjU4LDM1MjU5LDM1MjYwLDM1MjYxLDM1MjYyLDM1MjYzLDM1MjY0LDM1MjY3LDM1Mjc3LDM1MjgzLDM1Mjg0LDM1Mjg1LDM1Mjg3LDM1Mjg4LDM1Mjg5LDM1MjkxLDM1'@; put 'MjkzLDM1Mjk1LDM1Mjk2LDM1Mjk3LDM1Mjk4LDM1MzAwLDM1MzAzLDM1MzA0LDM1MzA1LDM1MzA2LDM1MzA4LDM1MzA5LDM1MzEwLDM1MzEyLDM1MzEzLDM1MzE0LDM1MzE2LDM1MzE3LDM1MzE4LDM1MzE5LDM1MzIwLDM1MzIxLDM1MzIyLDM1MzIzLDM1MzI0LDM1MzI1LDM1MzI2LDM1MzI3'@; put 'LDM1MzI5LDM1MzMwLDM1MzMxLDM1MzMyLDM1MzMzLDM1MzM0LDM1MzM2LDM1MzM3LDM1MzM4LDM1MzM5LDM1MzQwLDM1MzQxLDM1MzQyLDM1MzQzLDM1MzQ0LDM1MzQ1LDM1MzQ2LDM1MzQ3LDM1MzQ4LDM1MzQ5LDM1MzUwLDM1MzUxLDM1MzUyLDM1MzUzLDM1MzU0LDM1MzU1LDM1MzU2LDM1'@; put 'MzU3LDIxMzYwLDMzNTIxLDI3MTg1LDIzMTU2LDQwNTYwLDI0MjEyLDMyNTUyLDMzNzIxLDMzODI4LDMzODI5LDMzNjM5LDM0NjMxLDM2ODE0LDM2MTk0LDMwNDA4LDI0NDMzLDM5MDYyLDMwODI4LDI2MTQ0LDIxNzI3LDI1MzE3LDIwMzIzLDMzMjE5LDMwMTUyLDI0MjQ4LDM4NjA1LDM2MzYy'@; put 'LDM0NTUzLDIxNjQ3LDI3ODkxLDI4MDQ0LDI3NzA0LDI0NzAzLDIxMTkxLDI5OTkyLDI0MTg5LDIwMjQ4LDI0NzM2LDI0NTUxLDIzNTg4LDMwMDAxLDM3MDM4LDM4MDgwLDI5MzY5LDI3ODMzLDI4MjE2LDM3MTkzLDI2Mzc3LDIxNDUxLDIxNDkxLDIwMzA1LDM3MzIxLDM1ODI1LDIxNDQ4LDI0'@; put 'MTg4LDM2ODAyLDI4MTMyLDIwMTEwLDMwNDAyLDI3MDE0LDM0Mzk4LDI0ODU4LDMzMjg2LDIwMzEzLDIwNDQ2LDM2OTI2LDQwMDYwLDI0ODQxLDI4MTg5LDI4MTgwLDM4NTMzLDIwMTA0LDIzMDg5LDM4NjMyLDE5OTgyLDIzNjc5LDMxMTYxLDIzNDMxLDM1ODIxLDMyNzAxLDI5NTc3LDIyNDk1'@; put 'LDMzNDE5LDM3MDU3LDIxNTA1LDM2OTM1LDIxOTQ3LDIzNzg2LDI0NDgxLDI0ODQwLDI3NDQyLDI5NDI1LDMyOTQ2LDM1NDY1LDM1MzU4LDM1MzU5LDM1MzYwLDM1MzYxLDM1MzYyLDM1MzYzLDM1MzY0LDM1MzY1LDM1MzY2LDM1MzY3LDM1MzY4LDM1MzY5LDM1MzcwLDM1MzcxLDM1MzcyLDM1'@; put 'MzczLDM1Mzc0LDM1Mzc1LDM1Mzc2LDM1Mzc3LDM1Mzc4LDM1Mzc5LDM1MzgwLDM1MzgxLDM1MzgyLDM1MzgzLDM1Mzg0LDM1Mzg1LDM1Mzg2LDM1Mzg3LDM1Mzg4LDM1Mzg5LDM1MzkxLDM1MzkyLDM1MzkzLDM1Mzk0LDM1Mzk1LDM1Mzk2LDM1Mzk3LDM1Mzk4LDM1Mzk5LDM1NDAxLDM1NDAy'@; put 'LDM1NDAzLDM1NDA0LDM1NDA1LDM1NDA2LDM1NDA3LDM1NDA4LDM1NDA5LDM1NDEwLDM1NDExLDM1NDEyLDM1NDEzLDM1NDE0LDM1NDE1LDM1NDE2LDM1NDE3LDM1NDE4LDM1NDE5LDM1NDIwLDM1NDIxLDM1NDIyLDM1NDIzLDM1NDI0LDM1NDI1LDM1NDI2LDM1NDI3LDM1NDI4LDM1NDI5LDM1'@; put 'NDMwLDM1NDMxLDM1NDMyLDM1NDMzLDM1NDM0LDM1NDM1LDM1NDM2LDM1NDM3LDM1NDM4LDM1NDM5LDM1NDQwLDM1NDQxLDM1NDQyLDM1NDQzLDM1NDQ0LDM1NDQ1LDM1NDQ2LDM1NDQ3LDM1NDQ4LDM1NDUwLDM1NDUxLDM1NDUyLDM1NDUzLDM1NDU0LDM1NDU1LDM1NDU2LDI4MDIwLDIzNTA3'@; put 'LDM1MDI5LDM5MDQ0LDM1OTQ3LDM5NTMzLDQwNDk5LDI4MTcwLDIwOTAwLDIwODAzLDIyNDM1LDM0OTQ1LDIxNDA3LDI1NTg4LDM2NzU3LDIyMjUzLDIxNTkyLDIyMjc4LDI5NTAzLDI4MzA0LDMyNTM2LDM2ODI4LDMzNDg5LDI0ODk1LDI0NjE2LDM4NDk4LDI2MzUyLDMyNDIyLDM2MjM0LDM2'@; put 'MjkxLDM4MDUzLDIzNzMxLDMxOTA4LDI2Mzc2LDI0NzQyLDM4NDA1LDMyNzkyLDIwMTEzLDM3MDk1LDIxMjQ4LDM4NTA0LDIwODAxLDM2ODE2LDM0MTY0LDM3MjEzLDI2MTk3LDM4OTAxLDIzMzgxLDIxMjc3LDMwNzc2LDI2NDM0LDI2Njg1LDIxNzA1LDI4Nzk4LDIzNDcyLDM2NzMzLDIwODc3'@; put 'LDIyMzEyLDIxNjgxLDI1ODc0LDI2MjQyLDM2MTkwLDM2MTYzLDMzMDM5LDMzOTAwLDM2OTczLDMxOTY3LDIwOTkxLDM0Mjk5LDI2NTMxLDI2MDg5LDI4NTc3LDM0NDY4LDM2NDgxLDIyMTIyLDM2ODk2LDMwMzM4LDI4NzkwLDI5MTU3LDM2MTMxLDI1MzIxLDIxMDE3LDI3OTAxLDM2MTU2LDI0'@; put 'NTkwLDIyNjg2LDI0OTc0LDI2MzY2LDM2MTkyLDI1MTY2LDIxOTM5LDI4MTk1LDI2NDEzLDM2NzExLDM1NDU3LDM1NDU4LDM1NDU5LDM1NDYwLDM1NDYxLDM1NDYyLDM1NDYzLDM1NDY0LDM1NDY3LDM1NDY4LDM1NDY5LDM1NDcwLDM1NDcxLDM1NDcyLDM1NDczLDM1NDc0LDM1NDc2LDM1NDc3'@; put 'LDM1NDc4LDM1NDc5LDM1NDgwLDM1NDgxLDM1NDgyLDM1NDgzLDM1NDg0LDM1NDg1LDM1NDg2LDM1NDg3LDM1NDg4LDM1NDg5LDM1NDkwLDM1NDkxLDM1NDkyLDM1NDkzLDM1NDk0LDM1NDk1LDM1NDk2LDM1NDk3LDM1NDk4LDM1NDk5LDM1NTAwLDM1NTAxLDM1NTAyLDM1NTAzLDM1NTA0LDM1'@; put 'NTA1LDM1NTA2LDM1NTA3LDM1NTA4LDM1NTA5LDM1NTEwLDM1NTExLDM1NTEyLDM1NTEzLDM1NTE0LDM1NTE1LDM1NTE2LDM1NTE3LDM1NTE4LDM1NTE5LDM1NTIwLDM1NTIxLDM1NTIyLDM1NTIzLDM1NTI0LDM1NTI1LDM1NTI2LDM1NTI3LDM1NTI4LDM1NTI5LDM1NTMwLDM1NTMxLDM1NTMy'@; put 'LDM1NTMzLDM1NTM0LDM1NTM1LDM1NTM2LDM1NTM3LDM1NTM4LDM1NTM5LDM1NTQwLDM1NTQxLDM1NTQyLDM1NTQzLDM1NTQ0LDM1NTQ1LDM1NTQ2LDM1NTQ3LDM1NTQ4LDM1NTQ5LDM1NTUwLDM1NTUxLDM1NTUyLDM1NTUzLDM1NTU0LDM1NTU1LDM4MTEzLDM4MzkyLDMwNTA0LDI2NjI5LDI3'@; put 'MDQ4LDIxNjQzLDIwMDQ1LDI4ODU2LDM1Nzg0LDI1Njg4LDI1OTk1LDIzNDI5LDMxMzY0LDIwNTM4LDIzNTI4LDMwNjUxLDI3NjE3LDM1NDQ5LDMxODk2LDI3ODM4LDMwNDE1LDI2MDI1LDM2NzU5LDIzODUzLDIzNjM3LDM0MzYwLDI2NjMyLDIxMzQ0LDI1MTEyLDMxNDQ5LDI4MjUxLDMyNTA5'@; put 'LDI3MTY3LDMxNDU2LDI0NDMyLDI4NDY3LDI0MzUyLDI1NDg0LDI4MDcyLDI2NDU0LDE5OTc2LDI0MDgwLDM2MTM0LDIwMTgzLDMyOTYwLDMwMjYwLDM4NTU2LDI1MzA3LDI2MTU3LDI1MjE0LDI3ODM2LDM2MjEzLDI5MDMxLDMyNjE3LDIwODA2LDMyOTAzLDIxNDg0LDM2OTc0LDI1MjQwLDIx'@; put 'NzQ2LDM0NTQ0LDM2NzYxLDMyNzczLDM4MTY3LDM0MDcxLDM2ODI1LDI3OTkzLDI5NjQ1LDI2MDE1LDMwNDk1LDI5OTU2LDMwNzU5LDMzMjc1LDM2MTI2LDM4MDI0LDIwMzkwLDI2NTE3LDMwMTM3LDM1Nzg2LDM4NjYzLDI1MzkxLDM4MjE1LDM4NDUzLDMzOTc2LDI1Mzc5LDMwNTI5LDI0NDQ5'@; put 'LDI5NDI0LDIwMTA1LDI0NTk2LDI1OTcyLDI1MzI3LDI3NDkxLDI1OTE5LDM1NTU2LDM1NTU3LDM1NTU4LDM1NTU5LDM1NTYwLDM1NTYxLDM1NTYyLDM1NTYzLDM1NTY0LDM1NTY1LDM1NTY2LDM1NTY3LDM1NTY4LDM1NTY5LDM1NTcwLDM1NTcxLDM1NTcyLDM1NTczLDM1NTc0LDM1NTc1LDM1'@; put 'NTc2LDM1NTc3LDM1NTc4LDM1NTc5LDM1NTgwLDM1NTgxLDM1NTgyLDM1NTgzLDM1NTg0LDM1NTg1LDM1NTg2LDM1NTg3LDM1NTg4LDM1NTg5LDM1NTkwLDM1NTkyLDM1NTkzLDM1NTk0LDM1NTk1LDM1NTk2LDM1NTk3LDM1NTk4LDM1NTk5LDM1NjAwLDM1NjAxLDM1NjAyLDM1NjAzLDM1NjA0'@; put 'LDM1NjA1LDM1NjA2LDM1NjA3LDM1NjA4LDM1NjA5LDM1NjEwLDM1NjExLDM1NjEyLDM1NjEzLDM1NjE0LDM1NjE1LDM1NjE2LDM1NjE3LDM1NjE4LDM1NjE5LDM1NjIwLDM1NjIxLDM1NjIzLDM1NjI0LDM1NjI1LDM1NjI2LDM1NjI3LDM1NjI4LDM1NjI5LDM1NjMwLDM1NjMxLDM1NjMyLDM1'@; put 'NjMzLDM1NjM0LDM1NjM1LDM1NjM2LDM1NjM3LDM1NjM4LDM1NjM5LDM1NjQwLDM1NjQxLDM1NjQyLDM1NjQzLDM1NjQ0LDM1NjQ1LDM1NjQ2LDM1NjQ3LDM1NjQ4LDM1NjQ5LDM1NjUwLDM1NjUxLDM1NjUyLDM1NjUzLDI0MTAzLDMwMTUxLDM3MDczLDM1Nzc3LDMzNDM3LDI2NTI1LDI1OTAz'@; put 'LDIxNTUzLDM0NTg0LDMwNjkzLDMyOTMwLDMzMDI2LDI3NzEzLDIwMDQzLDMyNDU1LDMyODQ0LDMwNDUyLDI2ODkzLDI3NTQyLDI1MTkxLDIwNTQwLDIwMzU2LDIyMzM2LDI1MzUxLDI3NDkwLDM2Mjg2LDIxNDgyLDI2MDg4LDMyNDQwLDI0NTM1LDI1MzcwLDI1NTI3LDMzMjY3LDMzMjY4LDMy'@; put 'NjIyLDI0MDkyLDIzNzY5LDIxMDQ2LDI2MjM0LDMxMjA5LDMxMjU4LDM2MTM2LDI4ODI1LDMwMTY0LDI4MzgyLDI3ODM1LDMxMzc4LDIwMDEzLDMwNDA1LDI0NTQ0LDM4MDQ3LDM0OTM1LDMyNDU2LDMxMTgxLDMyOTU5LDM3MzI1LDIwMjEwLDIwMjQ3LDMzMzExLDIxNjA4LDI0MDMwLDI3OTU0'@; put 'LDM1Nzg4LDMxOTA5LDM2NzI0LDMyOTIwLDI0MDkwLDIxNjUwLDMwMzg1LDIzNDQ5LDI2MTcyLDM5NTg4LDI5NjY0LDI2NjY2LDM0NTIzLDI2NDE3LDI5NDgyLDM1ODMyLDM1ODAzLDM2ODgwLDMxNDgxLDI4ODkxLDI5MDM4LDI1Mjg0LDMwNjMzLDIyMDY1LDIwMDI3LDMzODc5LDI2NjA5LDIx'@; put 'MTYxLDM0NDk2LDM2MTQyLDM4MTM2LDMxNTY5LDM1NjU0LDM1NjU1LDM1NjU2LDM1NjU3LDM1NjU4LDM1NjU5LDM1NjYwLDM1NjYxLDM1NjYyLDM1NjYzLDM1NjY0LDM1NjY1LDM1NjY2LDM1NjY3LDM1NjY4LDM1NjY5LDM1NjcwLDM1NjcxLDM1NjcyLDM1NjczLDM1Njc0LDM1Njc1LDM1Njc2'@; put 'LDM1Njc3LDM1Njc4LDM1Njc5LDM1NjgwLDM1NjgxLDM1NjgyLDM1NjgzLDM1Njg0LDM1Njg1LDM1Njg3LDM1Njg4LDM1Njg5LDM1NjkwLDM1NjkxLDM1NjkzLDM1Njk0LDM1Njk1LDM1Njk2LDM1Njk3LDM1Njk4LDM1Njk5LDM1NzAwLDM1NzAxLDM1NzAyLDM1NzAzLDM1NzA0LDM1NzA1LDM1'@; put 'NzA2LDM1NzA3LDM1NzA4LDM1NzA5LDM1NzEwLDM1NzExLDM1NzEyLDM1NzEzLDM1NzE0LDM1NzE1LDM1NzE2LDM1NzE3LDM1NzE4LDM1NzE5LDM1NzIwLDM1NzIxLDM1NzIyLDM1NzIzLDM1NzI0LDM1NzI1LDM1NzI2LDM1NzI3LDM1NzI4LDM1NzI5LDM1NzMwLDM1NzMxLDM1NzMyLDM1NzMz'@; put 'LDM1NzM0LDM1NzM1LDM1NzM2LDM1NzM3LDM1NzM4LDM1NzM5LDM1NzQwLDM1NzQxLDM1NzQyLDM1NzQzLDM1NzU2LDM1NzYxLDM1NzcxLDM1NzgzLDM1NzkyLDM1ODE4LDM1ODQ5LDM1ODcwLDIwMzAzLDI3ODgwLDMxMDY5LDM5NTQ3LDI1MjM1LDI5MjI2LDI1MzQxLDE5OTg3LDMwNzQyLDM2'@; put 'NzE2LDI1Nzc2LDM2MTg2LDMxNjg2LDI2NzI5LDI0MTk2LDM1MDEzLDIyOTE4LDI1NzU4LDIyNzY2LDI5MzY2LDI2ODk0LDM4MTgxLDM2ODYxLDM2MTg0LDIyMzY4LDMyNTEyLDM1ODQ2LDIwOTM0LDI1NDE3LDI1MzA1LDIxMzMxLDI2NzAwLDI5NzMwLDMzNTM3LDM3MTk2LDIxODI4LDMwNTI4'@; put 'LDI4Nzk2LDI3OTc4LDIwODU3LDIxNjcyLDM2MTY0LDIzMDM5LDI4MzYzLDI4MTAwLDIzMzg4LDMyMDQzLDIwMTgwLDMxODY5LDI4MzcxLDIzMzc2LDMzMjU4LDI4MTczLDIzMzgzLDM5NjgzLDI2ODM3LDM2Mzk0LDIzNDQ3LDMyNTA4LDI0NjM1LDMyNDM3LDM3MDQ5LDM2MjA4LDIyODYzLDI1'@; put 'NTQ5LDMxMTk5LDM2Mjc1LDIxMzMwLDI2MDYzLDMxMDYyLDM1NzgxLDM4NDU5LDMyNDUyLDM4MDc1LDMyMzg2LDIyMDY4LDM3MjU3LDI2MzY4LDMyNjE4LDIzNTYyLDM2OTgxLDI2MTUyLDI0MDM4LDIwMzA0LDI2NTkwLDIwNTcwLDIwMzE2LDIyMzUyLDI0MjMxLDU5NDA4LDU5NDA5LDU5NDEw'@; put 'LDU5NDExLDU5NDEyLDM1ODk2LDM1ODk3LDM1ODk4LDM1ODk5LDM1OTAwLDM1OTAxLDM1OTAyLDM1OTAzLDM1OTA0LDM1OTA2LDM1OTA3LDM1OTA4LDM1OTA5LDM1OTEyLDM1OTE0LDM1OTE1LDM1OTE3LDM1OTE4LDM1OTE5LDM1OTIwLDM1OTIxLDM1OTIyLDM1OTIzLDM1OTI0LDM1OTI2LDM1'@; put 'OTI3LDM1OTI4LDM1OTI5LDM1OTMxLDM1OTMyLDM1OTMzLDM1OTM0LDM1OTM1LDM1OTM2LDM1OTM5LDM1OTQwLDM1OTQxLDM1OTQyLDM1OTQzLDM1OTQ0LDM1OTQ1LDM1OTQ4LDM1OTQ5LDM1OTUwLDM1OTUxLDM1OTUyLDM1OTUzLDM1OTU0LDM1OTU2LDM1OTU3LDM1OTU4LDM1OTU5LDM1OTYz'@; put 'LDM1OTY0LDM1OTY1LDM1OTY2LDM1OTY3LDM1OTY4LDM1OTY5LDM1OTcxLDM1OTcyLDM1OTc0LDM1OTc1LDM1OTc2LDM1OTc5LDM1OTgxLDM1OTgyLDM1OTgzLDM1OTg0LDM1OTg1LDM1OTg2LDM1OTg3LDM1OTg5LDM1OTkwLDM1OTkxLDM1OTkzLDM1OTk0LDM1OTk1LDM1OTk2LDM1OTk3LDM1'@; put 'OTk4LDM1OTk5LDM2ZTMsMzYwMDEsMzYwMDIsMzYwMDMsMzYwMDQsMzYwMDUsMzYwMDYsMzYwMDcsMzYwMDgsMzYwMDksMzYwMTAsMzYwMTEsMzYwMTIsMzYwMTMsMjAxMDksMTk5ODAsMjA4MDAsMTk5ODQsMjQzMTksMjEzMTcsMTk5ODksMjAxMjAsMTk5OTgsMzk3MzAsMjM0MDQsMjIxMjEs'@; put 'MjAwMDgsMzExNjIsMjAwMzEsMjEyNjksMjAwMzksMjI4MjksMjkyNDMsMjEzNTgsMjc2NjQsMjIyMzksMzI5OTYsMzkzMTksMjc2MDMsMzA1OTAsNDA3MjcsMjAwMjIsMjAxMjcsNDA3MjAsMjAwNjAsMjAwNzMsMjAxMTUsMzM0MTYsMjMzODcsMjE4NjgsMjIwMzEsMjAxNjQsMjEzODksMjE0'@; put 'MDUsMjE0MTEsMjE0MTMsMjE0MjIsMzg3NTcsMzYxODksMjEyNzQsMjE0OTMsMjEyODYsMjEyOTQsMjEzMTAsMzYxODgsMjEzNTAsMjEzNDcsMjA5OTQsMjFlMywyMTAwNiwyMTAzNywyMTA0MywyMTA1NSwyMTA1NiwyMTA2OCwyMTA4NiwyMTA4OSwyMTA4NCwzMzk2NywyMTExNywyMTEyMiwy'@; put 'MTEyMSwyMTEzNiwyMTEzOSwyMDg2NiwzMjU5NiwyMDE1NSwyMDE2MywyMDE2OSwyMDE2MiwyMDIwMCwyMDE5MywyMDIwMywyMDE5MCwyMDI1MSwyMDIxMSwyMDI1OCwyMDMyNCwyMDIxMywyMDI2MSwyMDI2MywyMDIzMywyMDI2NywyMDMxOCwyMDMyNywyNTkxMiwyMDMxNCwyMDMxNywzNjAx'@; put 'NCwzNjAxNSwzNjAxNiwzNjAxNywzNjAxOCwzNjAxOSwzNjAyMCwzNjAyMSwzNjAyMiwzNjAyMywzNjAyNCwzNjAyNSwzNjAyNiwzNjAyNywzNjAyOCwzNjAyOSwzNjAzMCwzNjAzMSwzNjAzMiwzNjAzMywzNjAzNCwzNjAzNSwzNjAzNiwzNjAzNywzNjAzOCwzNjAzOSwzNjA0MCwzNjA0MSwz'@; put 'NjA0MiwzNjA0MywzNjA0NCwzNjA0NSwzNjA0NiwzNjA0NywzNjA0OCwzNjA0OSwzNjA1MCwzNjA1MSwzNjA1MiwzNjA1MywzNjA1NCwzNjA1NSwzNjA1NiwzNjA1NywzNjA1OCwzNjA1OSwzNjA2MCwzNjA2MSwzNjA2MiwzNjA2MywzNjA2NCwzNjA2NSwzNjA2NiwzNjA2NywzNjA2OCwzNjA2'@; put 'OSwzNjA3MCwzNjA3MSwzNjA3MiwzNjA3MywzNjA3NCwzNjA3NSwzNjA3NiwzNjA3NywzNjA3OCwzNjA3OSwzNjA4MCwzNjA4MSwzNjA4MiwzNjA4MywzNjA4NCwzNjA4NSwzNjA4NiwzNjA4NywzNjA4OCwzNjA4OSwzNjA5MCwzNjA5MSwzNjA5MiwzNjA5MywzNjA5NCwzNjA5NSwzNjA5Niwz'@; put 'NjA5NywzNjA5OCwzNjA5OSwzNjEwMCwzNjEwMSwzNjEwMiwzNjEwMywzNjEwNCwzNjEwNSwzNjEwNiwzNjEwNywzNjEwOCwzNjEwOSwyMDMxOSwyMDMxMSwyMDI3NCwyMDI4NSwyMDM0MiwyMDM0MCwyMDM2OSwyMDM2MSwyMDM1NSwyMDM2NywyMDM1MCwyMDM0NywyMDM5NCwyMDM0OCwyMDM5'@; put 'NiwyMDM3MiwyMDQ1NCwyMDQ1NiwyMDQ1OCwyMDQyMSwyMDQ0MiwyMDQ1MSwyMDQ0NCwyMDQzMywyMDQ0NywyMDQ3MiwyMDUyMSwyMDU1NiwyMDQ2NywyMDUyNCwyMDQ5NSwyMDUyNiwyMDUyNSwyMDQ3OCwyMDUwOCwyMDQ5MiwyMDUxNywyMDUyMCwyMDYwNiwyMDU0NywyMDU2NSwyMDU1Miwy'@; put 'MDU1OCwyMDU4OCwyMDYwMywyMDY0NSwyMDY0NywyMDY0OSwyMDY2NiwyMDY5NCwyMDc0MiwyMDcxNywyMDcxNiwyMDcxMCwyMDcxOCwyMDc0MywyMDc0NywyMDE4OSwyNzcwOSwyMDMxMiwyMDMyNSwyMDQzMCw0MDg2NCwyNzcxOCwzMTg2MCwyMDg0NiwyNDA2MSw0MDY0OSwzOTMyMCwyMDg2'@; put 'NSwyMjgwNCwyMTI0MSwyMTI2MSwzNTMzNSwyMTI2NCwyMDk3MSwyMjgwOSwyMDgyMSwyMDEyOCwyMDgyMiwyMDE0NywzNDkyNiwzNDk4MCwyMDE0OSwzMzA0NCwzNTAyNiwzMTEwNCwyMzM0OCwzNDgxOSwzMjY5NiwyMDkwNywyMDkxMywyMDkyNSwyMDkyNCwzNjExMCwzNjExMSwzNjExMiwz'@; put 'NjExMywzNjExNCwzNjExNSwzNjExNiwzNjExNywzNjExOCwzNjExOSwzNjEyMCwzNjEyMSwzNjEyMiwzNjEyMywzNjEyNCwzNjEyOCwzNjE3NywzNjE3OCwzNjE4MywzNjE5MSwzNjE5NywzNjIwMCwzNjIwMSwzNjIwMiwzNjIwNCwzNjIwNiwzNjIwNywzNjIwOSwzNjIxMCwzNjIxNiwzNjIx'@; put 'NywzNjIxOCwzNjIxOSwzNjIyMCwzNjIyMSwzNjIyMiwzNjIyMywzNjIyNCwzNjIyNiwzNjIyNywzNjIzMCwzNjIzMSwzNjIzMiwzNjIzMywzNjIzNiwzNjIzNywzNjIzOCwzNjIzOSwzNjI0MCwzNjI0MiwzNjI0MywzNjI0NSwzNjI0NiwzNjI0NywzNjI0OCwzNjI0OSwzNjI1MCwzNjI1MSwz'@; put 'NjI1MiwzNjI1MywzNjI1NCwzNjI1NiwzNjI1NywzNjI1OCwzNjI2MCwzNjI2MSwzNjI2MiwzNjI2MywzNjI2NCwzNjI2NSwzNjI2NiwzNjI2NywzNjI2OCwzNjI2OSwzNjI3MCwzNjI3MSwzNjI3MiwzNjI3NCwzNjI3OCwzNjI3OSwzNjI4MSwzNjI4MywzNjI4NSwzNjI4OCwzNjI4OSwzNjI5'@; put 'MCwzNjI5MywzNjI5NSwzNjI5NiwzNjI5NywzNjI5OCwzNjMwMSwzNjMwNCwzNjMwNiwzNjMwNywzNjMwOCwyMDkzNSwyMDg4NiwyMDg5OCwyMDkwMSwzNTc0NCwzNTc1MCwzNTc1MSwzNTc1NCwzNTc2NCwzNTc2NSwzNTc2NywzNTc3OCwzNTc3OSwzNTc4NywzNTc5MSwzNTc5MCwzNTc5NCwz'@; put 'NTc5NSwzNTc5NiwzNTc5OCwzNTgwMCwzNTgwMSwzNTgwNCwzNTgwNywzNTgwOCwzNTgxMiwzNTgxNiwzNTgxNywzNTgyMiwzNTgyNCwzNTgyNywzNTgzMCwzNTgzMywzNTgzNiwzNTgzOSwzNTg0MCwzNTg0MiwzNTg0NCwzNTg0NywzNTg1MiwzNTg1NSwzNTg1NywzNTg1OCwzNTg2MCwzNTg2'@; put 'MSwzNTg2MiwzNTg2NSwzNTg2NywzNTg2NCwzNTg2OSwzNTg3MSwzNTg3MiwzNTg3MywzNTg3NywzNTg3OSwzNTg4MiwzNTg4MywzNTg4NiwzNTg4NywzNTg5MCwzNTg5MSwzNTg5MywzNTg5NCwyMTM1MywyMTM3MCwzODQyOSwzODQzNCwzODQzMywzODQ0OSwzODQ0MiwzODQ2MSwzODQ2MCwz'@; put 'ODQ2NiwzODQ3MywzODQ4NCwzODQ5NSwzODUwMywzODUwOCwzODUxNCwzODUxNiwzODUzNiwzODU0MSwzODU1MSwzODU3NiwzNzAxNSwzNzAxOSwzNzAyMSwzNzAxNywzNzAzNiwzNzAyNSwzNzA0NCwzNzA0MywzNzA0NiwzNzA1MCwzNjMwOSwzNjMxMiwzNjMxMywzNjMxNiwzNjMyMCwzNjMy'@; put 'MSwzNjMyMiwzNjMyNSwzNjMyNiwzNjMyNywzNjMyOSwzNjMzMywzNjMzNCwzNjMzNiwzNjMzNywzNjMzOCwzNjM0MCwzNjM0MiwzNjM0OCwzNjM1MCwzNjM1MSwzNjM1MiwzNjM1MywzNjM1NCwzNjM1NSwzNjM1NiwzNjM1OCwzNjM1OSwzNjM2MCwzNjM2MywzNjM2NSwzNjM2NiwzNjM2OCwz'@; put 'NjM2OSwzNjM3MCwzNjM3MSwzNjM3MywzNjM3NCwzNjM3NSwzNjM3NiwzNjM3NywzNjM3OCwzNjM3OSwzNjM4MCwzNjM4NCwzNjM4NSwzNjM4OCwzNjM4OSwzNjM5MCwzNjM5MSwzNjM5MiwzNjM5NSwzNjM5NywzNjQwMCwzNjQwMiwzNjQwMywzNjQwNCwzNjQwNiwzNjQwNywzNjQwOCwzNjQx'@; put 'MSwzNjQxMiwzNjQxNCwzNjQxNSwzNjQxOSwzNjQyMSwzNjQyMiwzNjQyOCwzNjQyOSwzNjQzMCwzNjQzMSwzNjQzMiwzNjQzNSwzNjQzNiwzNjQzNywzNjQzOCwzNjQzOSwzNjQ0MCwzNjQ0MiwzNjQ0MywzNjQ0NCwzNjQ0NSwzNjQ0NiwzNjQ0NywzNjQ0OCwzNjQ0OSwzNjQ1MCwzNjQ1MSwz'@; put 'NjQ1MiwzNjQ1MywzNjQ1NSwzNjQ1NiwzNjQ1OCwzNjQ1OSwzNjQ2MiwzNjQ2NSwzNzA0OCwzNzA0MCwzNzA3MSwzNzA2MSwzNzA1NCwzNzA3MiwzNzA2MCwzNzA2MywzNzA3NSwzNzA5NCwzNzA5MCwzNzA4NCwzNzA3OSwzNzA4MywzNzA5OSwzNzEwMywzNzExOCwzNzEyNCwzNzE1NCwzNzE1'@; put 'MCwzNzE1NSwzNzE2OSwzNzE2NywzNzE3NywzNzE4NywzNzE5MCwyMTAwNSwyMjg1MCwyMTE1NCwyMTE2NCwyMTE2NSwyMTE4MiwyMTc1OSwyMTIwMCwyMTIwNiwyMTIzMiwyMTQ3MSwyOTE2NiwzMDY2OSwyNDMwOCwyMDk4MSwyMDk4OCwzOTcyNywyMTQzMCwyNDMyMSwzMDA0MiwyNDA0Nywy'@; put 'MjM0OCwyMjQ0MSwyMjQzMywyMjY1NCwyMjcxNiwyMjcyNSwyMjczNywyMjMxMywyMjMxNiwyMjMxNCwyMjMyMywyMjMyOSwyMjMxOCwyMjMxOSwyMjM2NCwyMjMzMSwyMjMzOCwyMjM3NywyMjQwNSwyMjM3OSwyMjQwNiwyMjM5NiwyMjM5NSwyMjM3NiwyMjM4MSwyMjM5MCwyMjM4NywyMjQ0'@; put 'NSwyMjQzNiwyMjQxMiwyMjQ1MCwyMjQ3OSwyMjQzOSwyMjQ1MiwyMjQxOSwyMjQzMiwyMjQ4NSwyMjQ4OCwyMjQ5MCwyMjQ4OSwyMjQ4MiwyMjQ1NiwyMjUxNiwyMjUxMSwyMjUyMCwyMjUwMCwyMjQ5MywzNjQ2NywzNjQ2OSwzNjQ3MSwzNjQ3MiwzNjQ3MywzNjQ3NCwzNjQ3NSwzNjQ3Nywz'@; put 'NjQ3OCwzNjQ4MCwzNjQ4MiwzNjQ4MywzNjQ4NCwzNjQ4NiwzNjQ4OCwzNjQ4OSwzNjQ5MCwzNjQ5MSwzNjQ5MiwzNjQ5MywzNjQ5NCwzNjQ5NywzNjQ5OCwzNjQ5OSwzNjUwMSwzNjUwMiwzNjUwMywzNjUwNCwzNjUwNSwzNjUwNiwzNjUwNywzNjUwOSwzNjUxMSwzNjUxMiwzNjUxMywzNjUx'@; put 'NCwzNjUxNSwzNjUxNiwzNjUxNywzNjUxOCwzNjUxOSwzNjUyMCwzNjUyMSwzNjUyMiwzNjUyNSwzNjUyNiwzNjUyOCwzNjUyOSwzNjUzMSwzNjUzMiwzNjUzMywzNjUzNCwzNjUzNSwzNjUzNiwzNjUzNywzNjUzOSwzNjU0MCwzNjU0MSwzNjU0MiwzNjU0MywzNjU0NCwzNjU0NSwzNjU0Niwz'@; put 'NjU0NywzNjU0OCwzNjU0OSwzNjU1MCwzNjU1MSwzNjU1MiwzNjU1MywzNjU1NCwzNjU1NSwzNjU1NiwzNjU1NywzNjU1OSwzNjU2MCwzNjU2MSwzNjU2MiwzNjU2MywzNjU2NCwzNjU2NSwzNjU2NiwzNjU2NywzNjU2OCwzNjU2OSwzNjU3MCwzNjU3MSwzNjU3MiwzNjU3MywzNjU3NCwzNjU3'@; put 'NSwzNjU3NiwzNjU3NywzNjU3OCwzNjU3OSwzNjU4MCwyMjUzOSwyMjU0MSwyMjUyNSwyMjUwOSwyMjUyOCwyMjU1OCwyMjU1MywyMjU5NiwyMjU2MCwyMjYyOSwyMjYzNiwyMjY1NywyMjY2NSwyMjY4MiwyMjY1NiwzOTMzNiw0MDcyOSwyNTA4NywzMzQwMSwzMzQwNSwzMzQwNywzMzQyMywz'@; put 'MzQxOCwzMzQ0OCwzMzQxMiwzMzQyMiwzMzQyNSwzMzQzMSwzMzQzMywzMzQ1MSwzMzQ2NCwzMzQ3MCwzMzQ1NiwzMzQ4MCwzMzQ4MiwzMzUwNywzMzQzMiwzMzQ2MywzMzQ1NCwzMzQ4MywzMzQ4NCwzMzQ3MywzMzQ0OSwzMzQ2MCwzMzQ0MSwzMzQ1MCwzMzQzOSwzMzQ3NiwzMzQ4NiwzMzQ0'@; put 'NCwzMzUwNSwzMzU0NSwzMzUyNywzMzUwOCwzMzU1MSwzMzU0MywzMzUwMCwzMzUyNCwzMzQ5MCwzMzQ5NiwzMzU0OCwzMzUzMSwzMzQ5MSwzMzU1MywzMzU2MiwzMzU0MiwzMzU1NiwzMzU1NywzMzUwNCwzMzQ5MywzMzU2NCwzMzYxNywzMzYyNywzMzYyOCwzMzU0NCwzMzY4MiwzMzU5Niwz'@; put 'MzU4OCwzMzU4NSwzMzY5MSwzMzYzMCwzMzU4MywzMzYxNSwzMzYwNywzMzYwMywzMzYzMSwzMzYwMCwzMzU1OSwzMzYzMiwzMzU4MSwzMzU5NCwzMzU4NywzMzYzOCwzMzYzNywzNjU4MSwzNjU4MiwzNjU4MywzNjU4NCwzNjU4NSwzNjU4NiwzNjU4NywzNjU4OCwzNjU4OSwzNjU5MCwzNjU5'@; put 'MSwzNjU5MiwzNjU5MywzNjU5NCwzNjU5NSwzNjU5NiwzNjU5NywzNjU5OCwzNjU5OSwzNjYwMCwzNjYwMSwzNjYwMiwzNjYwMywzNjYwNCwzNjYwNSwzNjYwNiwzNjYwNywzNjYwOCwzNjYwOSwzNjYxMCwzNjYxMSwzNjYxMiwzNjYxMywzNjYxNCwzNjYxNSwzNjYxNiwzNjYxNywzNjYxOCwz'@; put 'NjYxOSwzNjYyMCwzNjYyMSwzNjYyMiwzNjYyMywzNjYyNCwzNjYyNSwzNjYyNiwzNjYyNywzNjYyOCwzNjYyOSwzNjYzMCwzNjYzMSwzNjYzMiwzNjYzMywzNjYzNCwzNjYzNSwzNjYzNiwzNjYzNywzNjYzOCwzNjYzOSwzNjY0MCwzNjY0MSwzNjY0MiwzNjY0MywzNjY0NCwzNjY0NSwzNjY0'@; put 'NiwzNjY0NywzNjY0OCwzNjY0OSwzNjY1MCwzNjY1MSwzNjY1MiwzNjY1MywzNjY1NCwzNjY1NSwzNjY1NiwzNjY1NywzNjY1OCwzNjY1OSwzNjY2MCwzNjY2MSwzNjY2MiwzNjY2MywzNjY2NCwzNjY2NSwzNjY2NiwzNjY2NywzNjY2OCwzNjY2OSwzNjY3MCwzNjY3MSwzNjY3MiwzNjY3Mywz'@; put 'NjY3NCwzNjY3NSwzNjY3NiwzMzY0MCwzMzU2MywzMzY0MSwzMzY0NCwzMzY0MiwzMzY0NSwzMzY0NiwzMzcxMiwzMzY1NiwzMzcxNSwzMzcxNiwzMzY5NiwzMzcwNiwzMzY4MywzMzY5MiwzMzY2OSwzMzY2MCwzMzcxOCwzMzcwNSwzMzY2MSwzMzcyMCwzMzY1OSwzMzY4OCwzMzY5NCwzMzcw'@; put 'NCwzMzcyMiwzMzcyNCwzMzcyOSwzMzc5MywzMzc2NSwzMzc1MiwyMjUzNSwzMzgxNiwzMzgwMywzMzc1NywzMzc4OSwzMzc1MCwzMzgyMCwzMzg0OCwzMzgwOSwzMzc5OCwzMzc0OCwzMzc1OSwzMzgwNywzMzc5NSwzMzc4NCwzMzc4NSwzMzc3MCwzMzczMywzMzcyOCwzMzgzMCwzMzc3Niwz'@; put 'Mzc2MSwzMzg4NCwzMzg3MywzMzg4MiwzMzg4MSwzMzkwNywzMzkyNywzMzkyOCwzMzkxNCwzMzkyOSwzMzkxMiwzMzg1MiwzMzg2MiwzMzg5NywzMzkxMCwzMzkzMiwzMzkzNCwzMzg0MSwzMzkwMSwzMzk4NSwzMzk5NywzNGUzLDM0MDIyLDMzOTgxLDM0MDAzLDMzOTk0LDMzOTgzLDMzOTc4'@; put 'LDM0MDE2LDMzOTUzLDMzOTc3LDMzOTcyLDMzOTQzLDM0MDIxLDM0MDE5LDM0MDYwLDI5OTY1LDM0MTA0LDM0MDMyLDM0MTA1LDM0MDc5LDM0MTA2LDM2Njc3LDM2Njc4LDM2Njc5LDM2NjgwLDM2NjgxLDM2NjgyLDM2NjgzLDM2Njg0LDM2Njg1LDM2Njg2LDM2Njg3LDM2Njg4LDM2Njg5LDM2'@; put 'NjkwLDM2NjkxLDM2NjkyLDM2NjkzLDM2Njk0LDM2Njk1LDM2Njk2LDM2Njk3LDM2Njk4LDM2Njk5LDM2NzAwLDM2NzAxLDM2NzAyLDM2NzAzLDM2NzA0LDM2NzA1LDM2NzA2LDM2NzA3LDM2NzA4LDM2NzA5LDM2NzE0LDM2NzM2LDM2NzQ4LDM2NzU0LDM2NzY1LDM2NzY4LDM2NzY5LDM2Nzcw'@; put 'LDM2NzcyLDM2NzczLDM2Nzc0LDM2Nzc1LDM2Nzc4LDM2NzgwLDM2NzgxLDM2NzgyLDM2NzgzLDM2Nzg2LDM2Nzg3LDM2Nzg4LDM2Nzg5LDM2NzkxLDM2NzkyLDM2Nzk0LDM2Nzk1LDM2Nzk2LDM2Nzk5LDM2ODAwLDM2ODAzLDM2ODA2LDM2ODA5LDM2ODEwLDM2ODExLDM2ODEyLDM2ODEzLDM2'@; put 'ODE1LDM2ODE4LDM2ODIyLDM2ODIzLDM2ODI2LDM2ODMyLDM2ODMzLDM2ODM1LDM2ODM5LDM2ODQ0LDM2ODQ3LDM2ODQ5LDM2ODUwLDM2ODUyLDM2ODUzLDM2ODU0LDM2ODU4LDM2ODU5LDM2ODYwLDM2ODYyLDM2ODYzLDM2ODcxLDM2ODcyLDM2ODc2LDM2ODc4LDM2ODgzLDM2ODg1LDM2ODg4'@; put 'LDM0MTM0LDM0MTA3LDM0MDQ3LDM0MDQ0LDM0MTM3LDM0MTIwLDM0MTUyLDM0MTQ4LDM0MTQyLDM0MTcwLDMwNjI2LDM0MTE1LDM0MTYyLDM0MTcxLDM0MjEyLDM0MjE2LDM0MTgzLDM0MTkxLDM0MTY5LDM0MjIyLDM0MjA0LDM0MTgxLDM0MjMzLDM0MjMxLDM0MjI0LDM0MjU5LDM0MjQxLDM0'@; put 'MjY4LDM0MzAzLDM0MzQzLDM0MzA5LDM0MzQ1LDM0MzI2LDM0MzY0LDI0MzE4LDI0MzI4LDIyODQ0LDIyODQ5LDMyODIzLDIyODY5LDIyODc0LDIyODcyLDIxMjYzLDIzNTg2LDIzNTg5LDIzNTk2LDIzNjA0LDI1MTY0LDI1MTk0LDI1MjQ3LDI1Mjc1LDI1MjkwLDI1MzA2LDI1MzAzLDI1MzI2'@; put 'LDI1Mzc4LDI1MzM0LDI1NDAxLDI1NDE5LDI1NDExLDI1NTE3LDI1NTkwLDI1NDU3LDI1NDY2LDI1NDg2LDI1NTI0LDI1NDUzLDI1NTE2LDI1NDgyLDI1NDQ5LDI1NTE4LDI1NTMyLDI1NTg2LDI1NTkyLDI1NTY4LDI1NTk5LDI1NTQwLDI1NTY2LDI1NTUwLDI1NjgyLDI1NTQyLDI1NTM0LDI1'@; put 'NjY5LDI1NjY1LDI1NjExLDI1NjI3LDI1NjMyLDI1NjEyLDI1NjM4LDI1NjMzLDI1Njk0LDI1NzMyLDI1NzA5LDI1NzUwLDM2ODg5LDM2ODkyLDM2ODk5LDM2OTAwLDM2OTAxLDM2OTAzLDM2OTA0LDM2OTA1LDM2OTA2LDM2OTA3LDM2OTA4LDM2OTEyLDM2OTEzLDM2OTE0LDM2OTE1LDM2OTE2'@; put 'LDM2OTE5LDM2OTIxLDM2OTIyLDM2OTI1LDM2OTI3LDM2OTI4LDM2OTMxLDM2OTMzLDM2OTM0LDM2OTM2LDM2OTM3LDM2OTM4LDM2OTM5LDM2OTQwLDM2OTQyLDM2OTQ4LDM2OTQ5LDM2OTUwLDM2OTUzLDM2OTU0LDM2OTU2LDM2OTU3LDM2OTU4LDM2OTU5LDM2OTYwLDM2OTYxLDM2OTY0LDM2'@; put 'OTY2LDM2OTY3LDM2OTY5LDM2OTcwLDM2OTcxLDM2OTcyLDM2OTc1LDM2OTc2LDM2OTc3LDM2OTc4LDM2OTc5LDM2OTgyLDM2OTgzLDM2OTg0LDM2OTg1LDM2OTg2LDM2OTg3LDM2OTg4LDM2OTkwLDM2OTkzLDM2OTk2LDM2OTk3LDM2OTk4LDM2OTk5LDM3MDAxLDM3MDAyLDM3MDA0LDM3MDA1'@; put 'LDM3MDA2LDM3MDA3LDM3MDA4LDM3MDEwLDM3MDEyLDM3MDE0LDM3MDE2LDM3MDE4LDM3MDIwLDM3MDIyLDM3MDIzLDM3MDI0LDM3MDI4LDM3MDI5LDM3MDMxLDM3MDMyLDM3MDMzLDM3MDM1LDM3MDM3LDM3MDQyLDM3MDQ3LDM3MDUyLDM3MDUzLDM3MDU1LDM3MDU2LDI1NzIyLDI1NzgzLDI1'@; put 'Nzg0LDI1NzUzLDI1Nzg2LDI1NzkyLDI1ODA4LDI1ODE1LDI1ODI4LDI1ODI2LDI1ODY1LDI1ODkzLDI1OTAyLDI0MzMxLDI0NTMwLDI5OTc3LDI0MzM3LDIxMzQzLDIxNDg5LDIxNTAxLDIxNDgxLDIxNDgwLDIxNDk5LDIxNTIyLDIxNTI2LDIxNTEwLDIxNTc5LDIxNTg2LDIxNTg3LDIxNTg4'@; put 'LDIxNTkwLDIxNTcxLDIxNTM3LDIxNTkxLDIxNTkzLDIxNTM5LDIxNTU0LDIxNjM0LDIxNjUyLDIxNjIzLDIxNjE3LDIxNjA0LDIxNjU4LDIxNjU5LDIxNjM2LDIxNjIyLDIxNjA2LDIxNjYxLDIxNzEyLDIxNjc3LDIxNjk4LDIxNjg0LDIxNzE0LDIxNjcxLDIxNjcwLDIxNzE1LDIxNzE2LDIx'@; put 'NjE4LDIxNjY3LDIxNzE3LDIxNjkxLDIxNjk1LDIxNzA4LDIxNzIxLDIxNzIyLDIxNzI0LDIxNjczLDIxNjc0LDIxNjY4LDIxNzI1LDIxNzExLDIxNzI2LDIxNzg3LDIxNzM1LDIxNzkyLDIxNzU3LDIxNzgwLDIxNzQ3LDIxNzk0LDIxNzk1LDIxNzc1LDIxNzc3LDIxNzk5LDIxODAyLDIxODYz'@; put 'LDIxOTAzLDIxOTQxLDIxODMzLDIxODY5LDIxODI1LDIxODQ1LDIxODIzLDIxODQwLDIxODIwLDM3MDU4LDM3MDU5LDM3MDYyLDM3MDY0LDM3MDY1LDM3MDY3LDM3MDY4LDM3MDY5LDM3MDc0LDM3MDc2LDM3MDc3LDM3MDc4LDM3MDgwLDM3MDgxLDM3MDgyLDM3MDg2LDM3MDg3LDM3MDg4LDM3'@; put 'MDkxLDM3MDkyLDM3MDkzLDM3MDk3LDM3MDk4LDM3MTAwLDM3MTAyLDM3MTA0LDM3MTA1LDM3MTA2LDM3MTA3LDM3MTA5LDM3MTEwLDM3MTExLDM3MTEzLDM3MTE0LDM3MTE1LDM3MTE2LDM3MTE5LDM3MTIwLDM3MTIxLDM3MTIzLDM3MTI1LDM3MTI2LDM3MTI3LDM3MTI4LDM3MTI5LDM3MTMw'@; put 'LDM3MTMxLDM3MTMyLDM3MTMzLDM3MTM0LDM3MTM1LDM3MTM2LDM3MTM3LDM3MTM4LDM3MTM5LDM3MTQwLDM3MTQxLDM3MTQyLDM3MTQzLDM3MTQ0LDM3MTQ2LDM3MTQ3LDM3MTQ4LDM3MTQ5LDM3MTUxLDM3MTUyLDM3MTUzLDM3MTU2LDM3MTU3LDM3MTU4LDM3MTU5LDM3MTYwLDM3MTYxLDM3'@; put 'MTYyLDM3MTYzLDM3MTY0LDM3MTY1LDM3MTY2LDM3MTY4LDM3MTcwLDM3MTcxLDM3MTcyLDM3MTczLDM3MTc0LDM3MTc1LDM3MTc2LDM3MTc4LDM3MTc5LDM3MTgwLDM3MTgxLDM3MTgyLDM3MTgzLDM3MTg0LDM3MTg1LDM3MTg2LDM3MTg4LDIxODE1LDIxODQ2LDIxODc3LDIxODc4LDIxODc5'@; put 'LDIxODExLDIxODA4LDIxODUyLDIxODk5LDIxOTcwLDIxODkxLDIxOTM3LDIxOTQ1LDIxODk2LDIxODg5LDIxOTE5LDIxODg2LDIxOTc0LDIxOTA1LDIxODgzLDIxOTgzLDIxOTQ5LDIxOTUwLDIxOTA4LDIxOTEzLDIxOTk0LDIyMDA3LDIxOTYxLDIyMDQ3LDIxOTY5LDIxOTk1LDIxOTk2LDIx'@; put 'OTcyLDIxOTkwLDIxOTgxLDIxOTU2LDIxOTk5LDIxOTg5LDIyMDAyLDIyMDAzLDIxOTY0LDIxOTY1LDIxOTkyLDIyMDA1LDIxOTg4LDM2NzU2LDIyMDQ2LDIyMDI0LDIyMDI4LDIyMDE3LDIyMDUyLDIyMDUxLDIyMDE0LDIyMDE2LDIyMDU1LDIyMDYxLDIyMTA0LDIyMDczLDIyMTAzLDIyMDYw'@; put 'LDIyMDkzLDIyMTE0LDIyMTA1LDIyMTA4LDIyMDkyLDIyMTAwLDIyMTUwLDIyMTE2LDIyMTI5LDIyMTIzLDIyMTM5LDIyMTQwLDIyMTQ5LDIyMTYzLDIyMTkxLDIyMjI4LDIyMjMxLDIyMjM3LDIyMjQxLDIyMjYxLDIyMjUxLDIyMjY1LDIyMjcxLDIyMjc2LDIyMjgyLDIyMjgxLDIyMzAwLDI0'@; put 'MDc5LDI0MDg5LDI0MDg0LDI0MDgxLDI0MTEzLDI0MTIzLDI0MTI0LDM3MTg5LDM3MTkxLDM3MTkyLDM3MjAxLDM3MjAzLDM3MjA0LDM3MjA1LDM3MjA2LDM3MjA4LDM3MjA5LDM3MjExLDM3MjEyLDM3MjE1LDM3MjE2LDM3MjIyLDM3MjIzLDM3MjI0LDM3MjI3LDM3MjI5LDM3MjM1LDM3MjQy'@; put 'LDM3MjQzLDM3MjQ0LDM3MjQ4LDM3MjQ5LDM3MjUwLDM3MjUxLDM3MjUyLDM3MjU0LDM3MjU2LDM3MjU4LDM3MjYyLDM3MjYzLDM3MjY3LDM3MjY4LDM3MjY5LDM3MjcwLDM3MjcxLDM3MjcyLDM3MjczLDM3Mjc2LDM3Mjc3LDM3Mjc4LDM3Mjc5LDM3MjgwLDM3MjgxLDM3Mjg0LDM3Mjg1LDM3'@; put 'Mjg2LDM3Mjg3LDM3Mjg4LDM3Mjg5LDM3MjkxLDM3MjkyLDM3Mjk2LDM3Mjk3LDM3Mjk4LDM3Mjk5LDM3MzAyLDM3MzAzLDM3MzA0LDM3MzA1LDM3MzA3LDM3MzA4LDM3MzA5LDM3MzEwLDM3MzExLDM3MzEyLDM3MzEzLDM3MzE0LDM3MzE1LDM3MzE2LDM3MzE3LDM3MzE4LDM3MzIwLDM3MzIz'@; put 'LDM3MzI4LDM3MzMwLDM3MzMxLDM3MzMyLDM3MzMzLDM3MzM0LDM3MzM1LDM3MzM2LDM3MzM3LDM3MzM4LDM3MzM5LDM3MzQxLDM3MzQyLDM3MzQzLDM3MzQ0LDM3MzQ1LDM3MzQ2LDM3MzQ3LDM3MzQ4LDM3MzQ5LDI0MTE5LDI0MTMyLDI0MTQ4LDI0MTU1LDI0MTU4LDI0MTYxLDIzNjkyLDIz'@; put 'Njc0LDIzNjkzLDIzNjk2LDIzNzAyLDIzNjg4LDIzNzA0LDIzNzA1LDIzNjk3LDIzNzA2LDIzNzA4LDIzNzMzLDIzNzE0LDIzNzQxLDIzNzI0LDIzNzIzLDIzNzI5LDIzNzE1LDIzNzQ1LDIzNzM1LDIzNzQ4LDIzNzYyLDIzNzgwLDIzNzU1LDIzNzgxLDIzODEwLDIzODExLDIzODQ3LDIzODQ2'@; put 'LDIzODU0LDIzODQ0LDIzODM4LDIzODE0LDIzODM1LDIzODk2LDIzODcwLDIzODYwLDIzODY5LDIzOTE2LDIzODk5LDIzOTE5LDIzOTAxLDIzOTE1LDIzODgzLDIzODgyLDIzOTEzLDIzOTI0LDIzOTM4LDIzOTYxLDIzOTY1LDM1OTU1LDIzOTkxLDI0MDA1LDI0NDM1LDI0NDM5LDI0NDUwLDI0'@; put 'NDU1LDI0NDU3LDI0NDYwLDI0NDY5LDI0NDczLDI0NDc2LDI0NDg4LDI0NDkzLDI0NTAxLDI0NTA4LDM0OTE0LDI0NDE3LDI5MzU3LDI5MzYwLDI5MzY0LDI5MzY3LDI5MzY4LDI5Mzc5LDI5Mzc3LDI5MzkwLDI5Mzg5LDI5Mzk0LDI5NDE2LDI5NDIzLDI5NDE3LDI5NDI2LDI5NDI4LDI5NDMx'@; put 'LDI5NDQxLDI5NDI3LDI5NDQzLDI5NDM0LDM3MzUwLDM3MzUxLDM3MzUyLDM3MzUzLDM3MzU0LDM3MzU1LDM3MzU2LDM3MzU3LDM3MzU4LDM3MzU5LDM3MzYwLDM3MzYxLDM3MzYyLDM3MzYzLDM3MzY0LDM3MzY1LDM3MzY2LDM3MzY3LDM3MzY4LDM3MzY5LDM3MzcwLDM3MzcxLDM3MzcyLDM3'@; put 'MzczLDM3Mzc0LDM3Mzc1LDM3Mzc2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzg3LDM3Mzg4LDM3Mzg5LDM3MzkwLDM3MzkxLDM3MzkyLDM3MzkzLDM3Mzk0LDM3Mzk1LDM3Mzk2LDM3Mzk3LDM3Mzk4LDM3Mzk5LDM3NDAw'@; put 'LDM3NDAxLDM3NDAyLDM3NDAzLDM3NDA0LDM3NDA1LDM3NDA2LDM3NDA3LDM3NDA4LDM3NDA5LDM3NDEwLDM3NDExLDM3NDEyLDM3NDEzLDM3NDE0LDM3NDE1LDM3NDE2LDM3NDE3LDM3NDE4LDM3NDE5LDM3NDIwLDM3NDIxLDM3NDIyLDM3NDIzLDM3NDI0LDM3NDI1LDM3NDI2LDM3NDI3LDM3'@; put 'NDI4LDM3NDI5LDM3NDMwLDM3NDMxLDM3NDMyLDM3NDMzLDM3NDM0LDM3NDM1LDM3NDM2LDM3NDM3LDM3NDM4LDM3NDM5LDM3NDQwLDM3NDQxLDM3NDQyLDM3NDQzLDM3NDQ0LDM3NDQ1LDI5NDM1LDI5NDYzLDI5NDU5LDI5NDczLDI5NDUwLDI5NDcwLDI5NDY5LDI5NDYxLDI5NDc0LDI5NDk3'@; put 'LDI5NDc3LDI5NDg0LDI5NDk2LDI5NDg5LDI5NTIwLDI5NTE3LDI5NTI3LDI5NTM2LDI5NTQ4LDI5NTUxLDI5NTY2LDMzMzA3LDIyODIxLDM5MTQzLDIyODIwLDIyNzg2LDM5MjY3LDM5MjcxLDM5MjcyLDM5MjczLDM5Mjc0LDM5Mjc1LDM5Mjc2LDM5Mjg0LDM5Mjg3LDM5MjkzLDM5Mjk2LDM5'@; put 'MzAwLDM5MzAzLDM5MzA2LDM5MzA5LDM5MzEyLDM5MzEzLDM5MzE1LDM5MzE2LDM5MzE3LDI0MTkyLDI0MjA5LDI0MjAzLDI0MjE0LDI0MjI5LDI0MjI0LDI0MjQ5LDI0MjQ1LDI0MjU0LDI0MjQzLDM2MTc5LDI0Mjc0LDI0MjczLDI0MjgzLDI0Mjk2LDI0Mjk4LDMzMjEwLDI0NTE2LDI0NTIx'@; put 'LDI0NTM0LDI0NTI3LDI0NTc5LDI0NTU4LDI0NTgwLDI0NTQ1LDI0NTQ4LDI0NTc0LDI0NTgxLDI0NTgyLDI0NTU0LDI0NTU3LDI0NTY4LDI0NjAxLDI0NjI5LDI0NjE0LDI0NjAzLDI0NTkxLDI0NTg5LDI0NjE3LDI0NjE5LDI0NTg2LDI0NjM5LDI0NjA5LDI0Njk2LDI0Njk3LDI0Njk5LDI0'@; put 'Njk4LDI0NjQyLDM3NDQ2LDM3NDQ3LDM3NDQ4LDM3NDQ5LDM3NDUwLDM3NDUxLDM3NDUyLDM3NDUzLDM3NDU0LDM3NDU1LDM3NDU2LDM3NDU3LDM3NDU4LDM3NDU5LDM3NDYwLDM3NDYxLDM3NDYyLDM3NDYzLDM3NDY0LDM3NDY1LDM3NDY2LDM3NDY3LDM3NDY4LDM3NDY5LDM3NDcwLDM3NDcx'@; put 'LDM3NDcyLDM3NDczLDM3NDc0LDM3NDc1LDM3NDc2LDM3NDc3LDM3NDc4LDM3NDc5LDM3NDgwLDM3NDgxLDM3NDgyLDM3NDgzLDM3NDg0LDM3NDg1LDM3NDg2LDM3NDg3LDM3NDg4LDM3NDg5LDM3NDkwLDM3NDkxLDM3NDkzLDM3NDk0LDM3NDk1LDM3NDk2LDM3NDk3LDM3NDk4LDM3NDk5LDM3'@; put 'NTAwLDM3NTAxLDM3NTAyLDM3NTAzLDM3NTA0LDM3NTA1LDM3NTA2LDM3NTA3LDM3NTA4LDM3NTA5LDM3NTEwLDM3NTExLDM3NTEyLDM3NTEzLDM3NTE0LDM3NTE1LDM3NTE2LDM3NTE3LDM3NTE5LDM3NTIwLDM3NTIxLDM3NTIyLDM3NTIzLDM3NTI0LDM3NTI1LDM3NTI2LDM3NTI3LDM3NTI4'@; put 'LDM3NTI5LDM3NTMwLDM3NTMxLDM3NTMyLDM3NTMzLDM3NTM0LDM3NTM1LDM3NTM2LDM3NTM3LDM3NTM4LDM3NTM5LDM3NTQwLDM3NTQxLDM3NTQyLDM3NTQzLDI0NjgyLDI0NzAxLDI0NzI2LDI0NzMwLDI0NzQ5LDI0NzMzLDI0NzA3LDI0NzIyLDI0NzE2LDI0NzMxLDI0ODEyLDI0NzYzLDI0'@; put 'NzUzLDI0Nzk3LDI0NzkyLDI0Nzc0LDI0Nzk0LDI0NzU2LDI0ODY0LDI0ODcwLDI0ODUzLDI0ODY3LDI0ODIwLDI0ODMyLDI0ODQ2LDI0ODc1LDI0OTA2LDI0OTQ5LDI1MDA0LDI0OTgwLDI0OTk5LDI1MDE1LDI1MDQ0LDI1MDc3LDI0NTQxLDM4NTc5LDM4Mzc3LDM4Mzc5LDM4Mzg1LDM4Mzg3'@; put 'LDM4Mzg5LDM4MzkwLDM4Mzk2LDM4Mzk4LDM4NDAzLDM4NDA0LDM4NDA2LDM4NDA4LDM4NDEwLDM4NDExLDM4NDEyLDM4NDEzLDM4NDE1LDM4NDE4LDM4NDIxLDM4NDIyLDM4NDIzLDM4NDI1LDM4NDI2LDIwMDEyLDI5MjQ3LDI1MTA5LDI3NzAxLDI3NzMyLDI3NzQwLDI3NzIyLDI3ODExLDI3'@; put 'NzgxLDI3NzkyLDI3Nzk2LDI3Nzg4LDI3NzUyLDI3NzUzLDI3NzY0LDI3NzY2LDI3NzgyLDI3ODE3LDI3ODU2LDI3ODYwLDI3ODIxLDI3ODk1LDI3ODk2LDI3ODg5LDI3ODYzLDI3ODI2LDI3ODcyLDI3ODYyLDI3ODk4LDI3ODgzLDI3ODg2LDI3ODI1LDI3ODU5LDI3ODg3LDI3OTAyLDM3NTQ0'@; put 'LDM3NTQ1LDM3NTQ2LDM3NTQ3LDM3NTQ4LDM3NTQ5LDM3NTUxLDM3NTUyLDM3NTUzLDM3NTU0LDM3NTU1LDM3NTU2LDM3NTU3LDM3NTU4LDM3NTU5LDM3NTYwLDM3NTYxLDM3NTYyLDM3NTYzLDM3NTY0LDM3NTY1LDM3NTY2LDM3NTY3LDM3NTY4LDM3NTY5LDM3NTcwLDM3NTcxLDM3NTcyLDM3'@; put 'NTczLDM3NTc0LDM3NTc1LDM3NTc3LDM3NTc4LDM3NTc5LDM3NTgwLDM3NTgxLDM3NTgyLDM3NTgzLDM3NTg0LDM3NTg1LDM3NTg2LDM3NTg3LDM3NTg4LDM3NTg5LDM3NTkwLDM3NTkxLDM3NTkyLDM3NTkzLDM3NTk0LDM3NTk1LDM3NTk2LDM3NTk3LDM3NTk4LDM3NTk5LDM3NjAwLDM3NjAx'@; put 'LDM3NjAyLDM3NjAzLDM3NjA0LDM3NjA1LDM3NjA2LDM3NjA3LDM3NjA4LDM3NjA5LDM3NjEwLDM3NjExLDM3NjEyLDM3NjEzLDM3NjE0LDM3NjE1LDM3NjE2LDM3NjE3LDM3NjE4LDM3NjE5LDM3NjIwLDM3NjIxLDM3NjIyLDM3NjIzLDM3NjI0LDM3NjI1LDM3NjI2LDM3NjI3LDM3NjI4LDM3'@; put 'NjI5LDM3NjMwLDM3NjMxLDM3NjMyLDM3NjMzLDM3NjM0LDM3NjM1LDM3NjM2LDM3NjM3LDM3NjM4LDM3NjM5LDM3NjQwLDM3NjQxLDI3OTYxLDI3OTQzLDI3OTE2LDI3OTcxLDI3OTc2LDI3OTExLDI3OTA4LDI3OTI5LDI3OTE4LDI3OTQ3LDI3OTgxLDI3OTUwLDI3OTU3LDI3OTMwLDI3OTgz'@; put 'LDI3OTg2LDI3OTg4LDI3OTU1LDI4MDQ5LDI4MDE1LDI4MDYyLDI4MDY0LDI3OTk4LDI4MDUxLDI4MDUyLDI3OTk2LDI4ZTMsMjgwMjgsMjgwMDMsMjgxODYsMjgxMDMsMjgxMDEsMjgxMjYsMjgxNzQsMjgwOTUsMjgxMjgsMjgxNzcsMjgxMzQsMjgxMjUsMjgxMjEsMjgxODIsMjgwNzUsMjgx'@; put 'NzIsMjgwNzgsMjgyMDMsMjgyNzAsMjgyMzgsMjgyNjcsMjgzMzgsMjgyNTUsMjgyOTQsMjgyNDMsMjgyNDQsMjgyMTAsMjgxOTcsMjgyMjgsMjgzODMsMjgzMzcsMjgzMTIsMjgzODQsMjg0NjEsMjgzODYsMjgzMjUsMjgzMjcsMjgzNDksMjgzNDcsMjgzNDMsMjgzNzUsMjgzNDAsMjgzNjcs'@; put 'MjgzMDMsMjgzNTQsMjgzMTksMjg1MTQsMjg0ODYsMjg0ODcsMjg0NTIsMjg0MzcsMjg0MDksMjg0NjMsMjg0NzAsMjg0OTEsMjg1MzIsMjg0NTgsMjg0MjUsMjg0NTcsMjg1NTMsMjg1NTcsMjg1NTYsMjg1MzYsMjg1MzAsMjg1NDAsMjg1MzgsMjg2MjUsMzc2NDIsMzc2NDMsMzc2NDQsMzc2'@; put 'NDUsMzc2NDYsMzc2NDcsMzc2NDgsMzc2NDksMzc2NTAsMzc2NTEsMzc2NTIsMzc2NTMsMzc2NTQsMzc2NTUsMzc2NTYsMzc2NTcsMzc2NTgsMzc2NTksMzc2NjAsMzc2NjEsMzc2NjIsMzc2NjMsMzc2NjQsMzc2NjUsMzc2NjYsMzc2NjcsMzc2NjgsMzc2NjksMzc2NzAsMzc2NzEsMzc2NzIs'@; put 'Mzc2NzMsMzc2NzQsMzc2NzUsMzc2NzYsMzc2NzcsMzc2NzgsMzc2NzksMzc2ODAsMzc2ODEsMzc2ODIsMzc2ODMsMzc2ODQsMzc2ODUsMzc2ODYsMzc2ODcsMzc2ODgsMzc2ODksMzc2OTAsMzc2OTEsMzc2OTIsMzc2OTMsMzc2OTUsMzc2OTYsMzc2OTcsMzc2OTgsMzc2OTksMzc3MDAsMzc3'@; put 'MDEsMzc3MDIsMzc3MDMsMzc3MDQsMzc3MDUsMzc3MDYsMzc3MDcsMzc3MDgsMzc3MDksMzc3MTAsMzc3MTEsMzc3MTIsMzc3MTMsMzc3MTQsMzc3MTUsMzc3MTYsMzc3MTcsMzc3MTgsMzc3MTksMzc3MjAsMzc3MjEsMzc3MjIsMzc3MjMsMzc3MjQsMzc3MjUsMzc3MjYsMzc3MjcsMzc3Mjgs'@; put 'Mzc3MjksMzc3MzAsMzc3MzEsMzc3MzIsMzc3MzMsMzc3MzQsMzc3MzUsMzc3MzYsMzc3MzcsMzc3MzksMjg2MTcsMjg1ODMsMjg2MDEsMjg1OTgsMjg2MTAsMjg2NDEsMjg2NTQsMjg2MzgsMjg2NDAsMjg2NTUsMjg2OTgsMjg3MDcsMjg2OTksMjg3MjksMjg3MjUsMjg3NTEsMjg3NjYsMjM0'@; put 'MjQsMjM0MjgsMjM0NDUsMjM0NDMsMjM0NjEsMjM0ODAsMjk5OTksMzk1ODIsMjU2NTIsMjM1MjQsMjM1MzQsMzUxMjAsMjM1MzYsMzY0MjMsMzU1OTEsMzY3OTAsMzY4MTksMzY4MjEsMzY4MzcsMzY4NDYsMzY4MzYsMzY4NDEsMzY4MzgsMzY4NTEsMzY4NDAsMzY4NjksMzY4NjgsMzY4NzUs'@; put 'MzY5MDIsMzY4ODEsMzY4NzcsMzY4ODYsMzY4OTcsMzY5MTcsMzY5MTgsMzY5MDksMzY5MTEsMzY5MzIsMzY5NDUsMzY5NDYsMzY5NDQsMzY5NjgsMzY5NTIsMzY5NjIsMzY5NTUsMjYyOTcsMzY5ODAsMzY5ODksMzY5OTQsMzdlMywzNjk5NSwzNzAwMywyNDQwMCwyNDQwNywyNDQwNiwyNDQw'@; put 'OCwyMzYxMSwyMTY3NSwyMzYzMiwyMzY0MSwyMzQwOSwyMzY1MSwyMzY1NCwzMjcwMCwyNDM2MiwyNDM2MSwyNDM2NSwzMzM5NiwyNDM4MCwzOTczOSwyMzY2MiwyMjkxMywyMjkxNSwyMjkyNSwyMjk1MywyMjk1NCwyMjk0NywzNzc0MCwzNzc0MSwzNzc0MiwzNzc0MywzNzc0NCwzNzc0NSwz'@; put 'Nzc0NiwzNzc0NywzNzc0OCwzNzc0OSwzNzc1MCwzNzc1MSwzNzc1MiwzNzc1MywzNzc1NCwzNzc1NSwzNzc1NiwzNzc1NywzNzc1OCwzNzc1OSwzNzc2MCwzNzc2MSwzNzc2MiwzNzc2MywzNzc2NCwzNzc2NSwzNzc2NiwzNzc2NywzNzc2OCwzNzc2OSwzNzc3MCwzNzc3MSwzNzc3MiwzNzc3'@; put 'MywzNzc3NCwzNzc3NiwzNzc3NywzNzc3OCwzNzc3OSwzNzc4MCwzNzc4MSwzNzc4MiwzNzc4MywzNzc4NCwzNzc4NSwzNzc4NiwzNzc4NywzNzc4OCwzNzc4OSwzNzc5MCwzNzc5MSwzNzc5MiwzNzc5MywzNzc5NCwzNzc5NSwzNzc5NiwzNzc5NywzNzc5OCwzNzc5OSwzNzgwMCwzNzgwMSwz'@; put 'NzgwMiwzNzgwMywzNzgwNCwzNzgwNSwzNzgwNiwzNzgwNywzNzgwOCwzNzgwOSwzNzgxMCwzNzgxMSwzNzgxMiwzNzgxMywzNzgxNCwzNzgxNSwzNzgxNiwzNzgxNywzNzgxOCwzNzgxOSwzNzgyMCwzNzgyMSwzNzgyMiwzNzgyMywzNzgyNCwzNzgyNSwzNzgyNiwzNzgyNywzNzgyOCwzNzgy'@; put 'OSwzNzgzMCwzNzgzMSwzNzgzMiwzNzgzMywzNzgzNSwzNzgzNiwzNzgzNywyMjkzNSwyMjk4NiwyMjk1NSwyMjk0MiwyMjk0OCwyMjk5NCwyMjk2MiwyMjk1OSwyMjk5OSwyMjk3NCwyMzA0NSwyMzA0NiwyMzAwNSwyMzA0OCwyMzAxMSwyM2UzLDIzMDMzLDIzMDUyLDIzMDQ5LDIzMDkwLDIz'@; put 'MDkyLDIzMDU3LDIzMDc1LDIzMDU5LDIzMTA0LDIzMTQzLDIzMTE0LDIzMTI1LDIzMTAwLDIzMTM4LDIzMTU3LDMzMDA0LDIzMjEwLDIzMTk1LDIzMTU5LDIzMTYyLDIzMjMwLDIzMjc1LDIzMjE4LDIzMjUwLDIzMjUyLDIzMjI0LDIzMjY0LDIzMjY3LDIzMjgxLDIzMjU0LDIzMjcwLDIzMjU2'@; put 'LDIzMjYwLDIzMzA1LDIzMzE5LDIzMzE4LDIzMzQ2LDIzMzUxLDIzMzYwLDIzNTczLDIzNTgwLDIzMzg2LDIzMzk3LDIzNDExLDIzMzc3LDIzMzc5LDIzMzk0LDM5NTQxLDM5NTQzLDM5NTQ0LDM5NTQ2LDM5NTUxLDM5NTQ5LDM5NTUyLDM5NTUzLDM5NTU3LDM5NTYwLDM5NTYyLDM5NTY4LDM5'@; put 'NTcwLDM5NTcxLDM5NTc0LDM5NTc2LDM5NTc5LDM5NTgwLDM5NTgxLDM5NTgzLDM5NTg0LDM5NTg2LDM5NTg3LDM5NTg5LDM5NTkxLDMyNDE1LDMyNDE3LDMyNDE5LDMyNDIxLDMyNDI0LDMyNDI1LDM3ODM4LDM3ODM5LDM3ODQwLDM3ODQxLDM3ODQyLDM3ODQzLDM3ODQ0LDM3ODQ1LDM3ODQ3'@; put 'LDM3ODQ4LDM3ODQ5LDM3ODUwLDM3ODUxLDM3ODUyLDM3ODUzLDM3ODU0LDM3ODU1LDM3ODU2LDM3ODU3LDM3ODU4LDM3ODU5LDM3ODYwLDM3ODYxLDM3ODYyLDM3ODYzLDM3ODY0LDM3ODY1LDM3ODY2LDM3ODY3LDM3ODY4LDM3ODY5LDM3ODcwLDM3ODcxLDM3ODcyLDM3ODczLDM3ODc0LDM3'@; put 'ODc1LDM3ODc2LDM3ODc3LDM3ODc4LDM3ODc5LDM3ODgwLDM3ODgxLDM3ODgyLDM3ODgzLDM3ODg0LDM3ODg1LDM3ODg2LDM3ODg3LDM3ODg4LDM3ODg5LDM3ODkwLDM3ODkxLDM3ODkyLDM3ODkzLDM3ODk0LDM3ODk1LDM3ODk2LDM3ODk3LDM3ODk4LDM3ODk5LDM3OTAwLDM3OTAxLDM3OTAy'@; put 'LDM3OTAzLDM3OTA0LDM3OTA1LDM3OTA2LDM3OTA3LDM3OTA4LDM3OTA5LDM3OTEwLDM3OTExLDM3OTEyLDM3OTEzLDM3OTE0LDM3OTE1LDM3OTE2LDM3OTE3LDM3OTE4LDM3OTE5LDM3OTIwLDM3OTIxLDM3OTIyLDM3OTIzLDM3OTI0LDM3OTI1LDM3OTI2LDM3OTI3LDM3OTI4LDM3OTI5LDM3'@; put 'OTMwLDM3OTMxLDM3OTMyLDM3OTMzLDM3OTM0LDMyNDI5LDMyNDMyLDMyNDQ2LDMyNDQ4LDMyNDQ5LDMyNDUwLDMyNDU3LDMyNDU5LDMyNDYwLDMyNDY0LDMyNDY4LDMyNDcxLDMyNDc1LDMyNDgwLDMyNDgxLDMyNDg4LDMyNDkxLDMyNDk0LDMyNDk1LDMyNDk3LDMyNDk4LDMyNTI1LDMyNTAy'@; put 'LDMyNTA2LDMyNTA3LDMyNTEwLDMyNTEzLDMyNTE0LDMyNTE1LDMyNTE5LDMyNTIwLDMyNTIzLDMyNTI0LDMyNTI3LDMyNTI5LDMyNTMwLDMyNTM1LDMyNTM3LDMyNTQwLDMyNTM5LDMyNTQzLDMyNTQ1LDMyNTQ2LDMyNTQ3LDMyNTQ4LDMyNTQ5LDMyNTUwLDMyNTUxLDMyNTU0LDMyNTU1LDMy'@; put 'NTU2LDMyNTU3LDMyNTU5LDMyNTYwLDMyNTYxLDMyNTYyLDMyNTYzLDMyNTY1LDI0MTg2LDMwMDc5LDI0MDI3LDMwMDE0LDM3MDEzLDI5NTgyLDI5NTg1LDI5NjE0LDI5NjAyLDI5NTk5LDI5NjQ3LDI5NjM0LDI5NjQ5LDI5NjIzLDI5NjE5LDI5NjMyLDI5NjQxLDI5NjQwLDI5NjY5LDI5NjU3'@; put 'LDM5MDM2LDI5NzA2LDI5NjczLDI5NjcxLDI5NjYyLDI5NjI2LDI5NjgyLDI5NzExLDI5NzM4LDI5Nzg3LDI5NzM0LDI5NzMzLDI5NzM2LDI5NzQ0LDI5NzQyLDI5NzQwLDM3OTM1LDM3OTM2LDM3OTM3LDM3OTM4LDM3OTM5LDM3OTQwLDM3OTQxLDM3OTQyLDM3OTQzLDM3OTQ0LDM3OTQ1LDM3'@; put 'OTQ2LDM3OTQ3LDM3OTQ4LDM3OTQ5LDM3OTUxLDM3OTUyLDM3OTUzLDM3OTU0LDM3OTU1LDM3OTU2LDM3OTU3LDM3OTU4LDM3OTU5LDM3OTYwLDM3OTYxLDM3OTYyLDM3OTYzLDM3OTY0LDM3OTY1LDM3OTY2LDM3OTY3LDM3OTY4LDM3OTY5LDM3OTcwLDM3OTcxLDM3OTcyLDM3OTczLDM3OTc0'@; put 'LDM3OTc1LDM3OTc2LDM3OTc3LDM3OTc4LDM3OTc5LDM3OTgwLDM3OTgxLDM3OTgyLDM3OTgzLDM3OTg0LDM3OTg1LDM3OTg2LDM3OTg3LDM3OTg4LDM3OTg5LDM3OTkwLDM3OTkxLDM3OTkyLDM3OTkzLDM3OTk0LDM3OTk2LDM3OTk3LDM3OTk4LDM3OTk5LDM4ZTMsMzgwMDEsMzgwMDIsMzgw'@; put 'MDMsMzgwMDQsMzgwMDUsMzgwMDYsMzgwMDcsMzgwMDgsMzgwMDksMzgwMTAsMzgwMTEsMzgwMTIsMzgwMTMsMzgwMTQsMzgwMTUsMzgwMTYsMzgwMTcsMzgwMTgsMzgwMTksMzgwMjAsMzgwMzMsMzgwMzgsMzgwNDAsMzgwODcsMzgwOTUsMzgwOTksMzgxMDAsMzgxMDYsMzgxMTgsMzgxMzks'@; put 'MzgxNzIsMzgxNzYsMjk3MjMsMjk3MjIsMjk3NjEsMjk3ODgsMjk3ODMsMjk3ODEsMjk3ODUsMjk4MTUsMjk4MDUsMjk4MjIsMjk4NTIsMjk4MzgsMjk4MjQsMjk4MjUsMjk4MzEsMjk4MzUsMjk4NTQsMjk4NjQsMjk4NjUsMjk4NDAsMjk4NjMsMjk5MDYsMjk4ODIsMzg4OTAsMzg4OTEsMzg4'@; put 'OTIsMjY0NDQsMjY0NTEsMjY0NjIsMjY0NDAsMjY0NzMsMjY1MzMsMjY1MDMsMjY0NzQsMjY0ODMsMjY1MjAsMjY1MzUsMjY0ODUsMjY1MzYsMjY1MjYsMjY1NDEsMjY1MDcsMjY0ODcsMjY0OTIsMjY2MDgsMjY2MzMsMjY1ODQsMjY2MzQsMjY2MDEsMjY1NDQsMjY2MzYsMjY1ODUsMjY1NDks'@; put 'MjY1ODYsMjY1NDcsMjY1ODksMjY2MjQsMjY1NjMsMjY1NTIsMjY1OTQsMjY2MzgsMjY1NjEsMjY2MjEsMjY2NzQsMjY2NzUsMjY3MjAsMjY3MjEsMjY3MDIsMjY3MjIsMjY2OTIsMjY3MjQsMjY3NTUsMjY2NTMsMjY3MDksMjY3MjYsMjY2ODksMjY3MjcsMjY2ODgsMjY2ODYsMjY2OTgsMjY2'@; put 'OTcsMjY2NjUsMjY4MDUsMjY3NjcsMjY3NDAsMjY3NDMsMjY3NzEsMjY3MzEsMjY4MTgsMjY5OTAsMjY4NzYsMjY5MTEsMjY5MTIsMjY4NzMsMzgxODMsMzgxOTUsMzgyMDUsMzgyMTEsMzgyMTYsMzgyMTksMzgyMjksMzgyMzQsMzgyNDAsMzgyNTQsMzgyNjAsMzgyNjEsMzgyNjMsMzgyNjQs'@; put 'MzgyNjUsMzgyNjYsMzgyNjcsMzgyNjgsMzgyNjksMzgyNzAsMzgyNzIsMzgyNzMsMzgyNzQsMzgyNzUsMzgyNzYsMzgyNzcsMzgyNzgsMzgyNzksMzgyODAsMzgyODEsMzgyODIsMzgyODMsMzgyODQsMzgyODUsMzgyODYsMzgyODcsMzgyODgsMzgyODksMzgyOTAsMzgyOTEsMzgyOTIsMzgy'@; put 'OTMsMzgyOTQsMzgyOTUsMzgyOTYsMzgyOTcsMzgyOTgsMzgyOTksMzgzMDAsMzgzMDEsMzgzMDIsMzgzMDMsMzgzMDQsMzgzMDUsMzgzMDYsMzgzMDcsMzgzMDgsMzgzMDksMzgzMTAsMzgzMTEsMzgzMTIsMzgzMTMsMzgzMTQsMzgzMTUsMzgzMTYsMzgzMTcsMzgzMTgsMzgzMTksMzgzMjAs'@; put 'MzgzMjEsMzgzMjIsMzgzMjMsMzgzMjQsMzgzMjUsMzgzMjYsMzgzMjcsMzgzMjgsMzgzMjksMzgzMzAsMzgzMzEsMzgzMzIsMzgzMzMsMzgzMzQsMzgzMzUsMzgzMzYsMzgzMzcsMzgzMzgsMzgzMzksMzgzNDAsMzgzNDEsMzgzNDIsMzgzNDMsMzgzNDQsMzgzNDUsMzgzNDYsMzgzNDcsMjY5'@; put 'MTYsMjY4NjQsMjY4OTEsMjY4ODEsMjY5NjcsMjY4NTEsMjY4OTYsMjY5OTMsMjY5MzcsMjY5NzYsMjY5NDYsMjY5NzMsMjcwMTIsMjY5ODcsMjcwMDgsMjcwMzIsMjdlMywyNjkzMiwyNzA4NCwyNzAxNSwyNzAxNiwyNzA4NiwyNzAxNywyNjk4MiwyNjk3OSwyNzAwMSwyNzAzNSwyNzA0Nywy'@; put 'NzA2NywyNzA1MSwyNzA1MywyNzA5MiwyNzA1NywyNzA3MywyNzA4MiwyNzEwMywyNzAyOSwyNzEwNCwyNzAyMSwyNzEzNSwyNzE4MywyNzExNywyNzE1OSwyNzE2MCwyNzIzNywyNzEyMiwyNzIwNCwyNzE5OCwyNzI5NiwyNzIxNiwyNzIyNywyNzE4OSwyNzI3OCwyNzI1NywyNzE5NywyNzE3'@; put 'NiwyNzIyNCwyNzI2MCwyNzI4MSwyNzI4MCwyNzMwNSwyNzI4NywyNzMwNywyOTQ5NSwyOTUyMiwyNzUyMSwyNzUyMiwyNzUyNywyNzUyNCwyNzUzOCwyNzUzOSwyNzUzMywyNzU0NiwyNzU0NywyNzU1MywyNzU2MiwzNjcxNSwzNjcxNywzNjcyMSwzNjcyMiwzNjcyMywzNjcyNSwzNjcyNiwz'@; put 'NjcyOCwzNjcyNywzNjcyOSwzNjczMCwzNjczMiwzNjczNCwzNjczNywzNjczOCwzNjc0MCwzNjc0MywzNjc0NywzODM0OCwzODM0OSwzODM1MCwzODM1MSwzODM1MiwzODM1MywzODM1NCwzODM1NSwzODM1NiwzODM1NywzODM1OCwzODM1OSwzODM2MCwzODM2MSwzODM2MiwzODM2MywzODM2'@; put 'NCwzODM2NSwzODM2NiwzODM2NywzODM2OCwzODM2OSwzODM3MCwzODM3MSwzODM3MiwzODM3MywzODM3NCwzODM3NSwzODM4MCwzODM5OSwzODQwNywzODQxOSwzODQyNCwzODQyNywzODQzMCwzODQzMiwzODQzNSwzODQzNiwzODQzNywzODQzOCwzODQzOSwzODQ0MCwzODQ0MSwzODQ0Mywz'@; put 'ODQ0NCwzODQ0NSwzODQ0NywzODQ0OCwzODQ1NSwzODQ1NiwzODQ1NywzODQ1OCwzODQ2MiwzODQ2NSwzODQ2NywzODQ3NCwzODQ3OCwzODQ3OSwzODQ4MSwzODQ4MiwzODQ4MywzODQ4NiwzODQ4NywzODQ4OCwzODQ4OSwzODQ5MCwzODQ5MiwzODQ5MywzODQ5NCwzODQ5NiwzODQ5OSwzODUw'@; put 'MSwzODUwMiwzODUwNywzODUwOSwzODUxMCwzODUxMSwzODUxMiwzODUxMywzODUxNSwzODUyMCwzODUyMSwzODUyMiwzODUyMywzODUyNCwzODUyNSwzODUyNiwzODUyNywzODUyOCwzODUyOSwzODUzMCwzODUzMSwzODUzMiwzODUzNSwzODUzNywzODUzOCwzNjc0OSwzNjc1MCwzNjc1MSwz'@; put 'Njc2MCwzNjc2MiwzNjU1OCwyNTA5OSwyNTExMSwyNTExNSwyNTExOSwyNTEyMiwyNTEyMSwyNTEyNSwyNTEyNCwyNTEzMiwzMzI1NSwyOTkzNSwyOTk0MCwyOTk1MSwyOTk2NywyOTk2OSwyOTk3MSwyNTkwOCwyNjA5NCwyNjA5NSwyNjA5NiwyNjEyMiwyNjEzNywyNjQ4MiwyNjExNSwyNjEz'@; put 'MywyNjExMiwyODgwNSwyNjM1OSwyNjE0MSwyNjE2NCwyNjE2MSwyNjE2NiwyNjE2NSwzMjc3NCwyNjIwNywyNjE5NiwyNjE3NywyNjE5MSwyNjE5OCwyNjIwOSwyNjE5OSwyNjIzMSwyNjI0NCwyNjI1MiwyNjI3OSwyNjI2OSwyNjMwMiwyNjMzMSwyNjMzMiwyNjM0MiwyNjM0NSwzNjE0Niwz'@; put 'NjE0NywzNjE1MCwzNjE1NSwzNjE1NywzNjE2MCwzNjE2NSwzNjE2NiwzNjE2OCwzNjE2OSwzNjE2NywzNjE3MywzNjE4MSwzNjE4NSwzNTI3MSwzNTI3NCwzNTI3NSwzNTI3NiwzNTI3OCwzNTI3OSwzNTI4MCwzNTI4MSwyOTI5NCwyOTM0MywyOTI3NywyOTI4NiwyOTI5NSwyOTMxMCwyOTMx'@; put 'MSwyOTMxNiwyOTMyMywyOTMyNSwyOTMyNywyOTMzMCwyNTM1MiwyNTM5NCwyNTUyMCwzODU0MCwzODU0MiwzODU0NSwzODU0NiwzODU0NywzODU0OSwzODU1MCwzODU1NCwzODU1NSwzODU1NywzODU1OCwzODU1OSwzODU2MCwzODU2MSwzODU2MiwzODU2MywzODU2NCwzODU2NSwzODU2Niwz'@; put 'ODU2OCwzODU2OSwzODU3MCwzODU3MSwzODU3MiwzODU3MywzODU3NCwzODU3NSwzODU3NywzODU3OCwzODU4MCwzODU4MSwzODU4MywzODU4NCwzODU4NiwzODU4NywzODU5MSwzODU5NCwzODU5NSwzODYwMCwzODYwMiwzODYwMywzODYwOCwzODYwOSwzODYxMSwzODYxMiwzODYxNCwzODYx'@; put 'NSwzODYxNiwzODYxNywzODYxOCwzODYxOSwzODYyMCwzODYyMSwzODYyMiwzODYyMywzODYyNSwzODYyNiwzODYyNywzODYyOCwzODYyOSwzODYzMCwzODYzMSwzODYzNSwzODYzNiwzODYzNywzODYzOCwzODY0MCwzODY0MSwzODY0MiwzODY0NCwzODY0NSwzODY0OCwzODY1MCwzODY1MSwz'@; put 'ODY1MiwzODY1MywzODY1NSwzODY1OCwzODY1OSwzODY2MSwzODY2NiwzODY2NywzODY2OCwzODY3MiwzODY3MywzODY3NCwzODY3NiwzODY3NywzODY3OSwzODY4MCwzODY4MSwzODY4MiwzODY4MywzODY4NSwzODY4NywzODY4OCwyNTY2MywyNTgxNiwzMjc3MiwyNzYyNiwyNzYzNSwyNzY0'@; put 'NSwyNzYzNywyNzY0MSwyNzY1MywyNzY1NSwyNzY1NCwyNzY2MSwyNzY2OSwyNzY3MiwyNzY3MywyNzY3NCwyNzY4MSwyNzY4OSwyNzY4NCwyNzY5MCwyNzY5OCwyNTkwOSwyNTk0MSwyNTk2MywyOTI2MSwyOTI2NiwyOTI3MCwyOTIzMiwzNDQwMiwyMTAxNCwzMjkyNywzMjkyNCwzMjkxNSwz'@; put 'Mjk1NiwyNjM3OCwzMjk1NywzMjk0NSwzMjkzOSwzMjk0MSwzMjk0OCwzMjk1MSwzMjk5OSwzM2UzLDMzMDAxLDMzMDAyLDMyOTg3LDMyOTYyLDMyOTY0LDMyOTg1LDMyOTczLDMyOTgzLDI2Mzg0LDMyOTg5LDMzMDAzLDMzMDA5LDMzMDEyLDMzMDA1LDMzMDM3LDMzMDM4LDMzMDEwLDMzMDIw'@; put 'LDI2Mzg5LDMzMDQyLDM1OTMwLDMzMDc4LDMzMDU0LDMzMDY4LDMzMDQ4LDMzMDc0LDMzMDk2LDMzMTAwLDMzMTA3LDMzMTQwLDMzMTEzLDMzMTE0LDMzMTM3LDMzMTIwLDMzMTI5LDMzMTQ4LDMzMTQ5LDMzMTMzLDMzMTI3LDIyNjA1LDIzMjIxLDMzMTYwLDMzMTU0LDMzMTY5LDI4MzczLDMz'@; put 'MTg3LDMzMTk0LDMzMjI4LDI2NDA2LDMzMjI2LDMzMjExLDM4Njg5LDM4NjkwLDM4NjkxLDM4NjkyLDM4NjkzLDM4Njk0LDM4Njk1LDM4Njk2LDM4Njk3LDM4Njk5LDM4NzAwLDM4NzAyLDM4NzAzLDM4NzA1LDM4NzA3LDM4NzA4LDM4NzA5LDM4NzEwLDM4NzExLDM4NzE0LDM4NzE1LDM4NzE2'@; put 'LDM4NzE3LDM4NzE5LDM4NzIwLDM4NzIxLDM4NzIyLDM4NzIzLDM4NzI0LDM4NzI1LDM4NzI2LDM4NzI3LDM4NzI4LDM4NzI5LDM4NzMwLDM4NzMxLDM4NzMyLDM4NzMzLDM4NzM0LDM4NzM1LDM4NzM2LDM4NzM3LDM4NzQwLDM4NzQxLDM4NzQzLDM4NzQ0LDM4NzQ2LDM4NzQ4LDM4NzQ5LDM4'@; put 'NzUxLDM4NzU1LDM4NzU2LDM4NzU4LDM4NzU5LDM4NzYwLDM4NzYyLDM4NzYzLDM4NzY0LDM4NzY1LDM4NzY2LDM4NzY3LDM4NzY4LDM4NzY5LDM4NzcwLDM4NzczLDM4Nzc1LDM4Nzc2LDM4Nzc3LDM4Nzc4LDM4Nzc5LDM4NzgxLDM4NzgyLDM4NzgzLDM4Nzg0LDM4Nzg1LDM4Nzg2LDM4Nzg3'@; put 'LDM4Nzg4LDM4NzkwLDM4NzkxLDM4NzkyLDM4NzkzLDM4Nzk0LDM4Nzk2LDM4Nzk4LDM4Nzk5LDM4ODAwLDM4ODAzLDM4ODA1LDM4ODA2LDM4ODA3LDM4ODA5LDM4ODEwLDM4ODExLDM4ODEyLDM4ODEzLDMzMjE3LDMzMTkwLDI3NDI4LDI3NDQ3LDI3NDQ5LDI3NDU5LDI3NDYyLDI3NDgxLDM5'@; put 'MTIxLDM5MTIyLDM5MTIzLDM5MTI1LDM5MTI5LDM5MTMwLDI3NTcxLDI0Mzg0LDI3NTg2LDM1MzE1LDI2ZTMsNDA3ODUsMjYwMDMsMjYwNDQsMjYwNTQsMjYwNTIsMjYwNTEsMjYwNjAsMjYwNjIsMjYwNjYsMjYwNzAsMjg4MDAsMjg4MjgsMjg4MjIsMjg4MjksMjg4NTksMjg4NjQsMjg4NTUs'@; put 'Mjg4NDMsMjg4NDksMjg5MDQsMjg4NzQsMjg5NDQsMjg5NDcsMjg5NTAsMjg5NzUsMjg5NzcsMjkwNDMsMjkwMjAsMjkwMzIsMjg5OTcsMjkwNDIsMjkwMDIsMjkwNDgsMjkwNTAsMjkwODAsMjkxMDcsMjkxMDksMjkwOTYsMjkwODgsMjkxNTIsMjkxNDAsMjkxNTksMjkxNzcsMjkyMTMsMjky'@; put 'MjQsMjg3ODAsMjg5NTIsMjkwMzAsMjkxMTMsMjUxNTAsMjUxNDksMjUxNTUsMjUxNjAsMjUxNjEsMzEwMzUsMzEwNDAsMzEwNDYsMzEwNDksMzEwNjcsMzEwNjgsMzEwNTksMzEwNjYsMzEwNzQsMzEwNjMsMzEwNzIsMzEwODcsMzEwNzksMzEwOTgsMzExMDksMzExMTQsMzExMzAsMzExNDMs'@; put 'MzExNTUsMjQ1MjksMjQ1MjgsMzg4MTQsMzg4MTUsMzg4MTcsMzg4MTgsMzg4MjAsMzg4MjEsMzg4MjIsMzg4MjMsMzg4MjQsMzg4MjUsMzg4MjYsMzg4MjgsMzg4MzAsMzg4MzIsMzg4MzMsMzg4MzUsMzg4MzcsMzg4MzgsMzg4MzksMzg4NDAsMzg4NDEsMzg4NDIsMzg4NDMsMzg4NDQsMzg4'@; put 'NDUsMzg4NDYsMzg4NDcsMzg4NDgsMzg4NDksMzg4NTAsMzg4NTEsMzg4NTIsMzg4NTMsMzg4NTQsMzg4NTUsMzg4NTYsMzg4NTcsMzg4NTgsMzg4NTksMzg4NjAsMzg4NjEsMzg4NjIsMzg4NjMsMzg4NjQsMzg4NjUsMzg4NjYsMzg4NjcsMzg4NjgsMzg4NjksMzg4NzAsMzg4NzEsMzg4NzIs'@; put 'Mzg4NzMsMzg4NzQsMzg4NzUsMzg4NzYsMzg4NzcsMzg4NzgsMzg4NzksMzg4ODAsMzg4ODEsMzg4ODIsMzg4ODMsMzg4ODQsMzg4ODUsMzg4ODgsMzg4OTQsMzg4OTUsMzg4OTYsMzg4OTcsMzg4OTgsMzg5MDAsMzg5MDMsMzg5MDQsMzg5MDUsMzg5MDYsMzg5MDcsMzg5MDgsMzg5MDksMzg5'@; put 'MTAsMzg5MTEsMzg5MTIsMzg5MTMsMzg5MTQsMzg5MTUsMzg5MTYsMzg5MTcsMzg5MTgsMzg5MTksMzg5MjAsMzg5MjEsMzg5MjIsMzg5MjMsMzg5MjQsMzg5MjUsMzg5MjYsMjQ2MzYsMjQ2NjksMjQ2NjYsMjQ2NzksMjQ2NDEsMjQ2NjUsMjQ2NzUsMjQ3NDcsMjQ4MzgsMjQ4NDUsMjQ5MjUs'@; put 'MjUwMDEsMjQ5ODksMjUwMzUsMjUwNDEsMjUwOTQsMzI4OTYsMzI4OTUsMjc3OTUsMjc4OTQsMjgxNTYsMzA3MTAsMzA3MTIsMzA3MjAsMzA3MjksMzA3NDMsMzA3NDQsMzA3MzcsMjYwMjcsMzA3NjUsMzA3NDgsMzA3NDksMzA3NzcsMzA3NzgsMzA3NzksMzA3NTEsMzA3ODAsMzA3NTcsMzA3'@; put 'NjQsMzA3NTUsMzA3NjEsMzA3OTgsMzA4MjksMzA4MDYsMzA4MDcsMzA3NTgsMzA4MDAsMzA3OTEsMzA3OTYsMzA4MjYsMzA4NzUsMzA4NjcsMzA4NzQsMzA4NTUsMzA4NzYsMzA4ODEsMzA4ODMsMzA4OTgsMzA5MDUsMzA4ODUsMzA5MzIsMzA5MzcsMzA5MjEsMzA5NTYsMzA5NjIsMzA5ODEs'@; put 'MzA5NjQsMzA5OTUsMzEwMTIsMzEwMDYsMzEwMjgsNDA4NTksNDA2OTcsNDA2OTksNDA3MDAsMzA0NDksMzA0NjgsMzA0NzcsMzA0NTcsMzA0NzEsMzA0NzIsMzA0OTAsMzA0OTgsMzA0ODksMzA1MDksMzA1MDIsMzA1MTcsMzA1MjAsMzA1NDQsMzA1NDUsMzA1MzUsMzA1MzEsMzA1NTQsMzA1'@; put 'NjgsMzg5MjcsMzg5MjgsMzg5MjksMzg5MzAsMzg5MzEsMzg5MzIsMzg5MzMsMzg5MzQsMzg5MzUsMzg5MzYsMzg5MzcsMzg5MzgsMzg5MzksMzg5NDAsMzg5NDEsMzg5NDIsMzg5NDMsMzg5NDQsMzg5NDUsMzg5NDYsMzg5NDcsMzg5NDgsMzg5NDksMzg5NTAsMzg5NTEsMzg5NTIsMzg5NTMs'@; put 'Mzg5NTQsMzg5NTUsMzg5NTYsMzg5NTcsMzg5NTgsMzg5NTksMzg5NjAsMzg5NjEsMzg5NjIsMzg5NjMsMzg5NjQsMzg5NjUsMzg5NjYsMzg5NjcsMzg5NjgsMzg5NjksMzg5NzAsMzg5NzEsMzg5NzIsMzg5NzMsMzg5NzQsMzg5NzUsMzg5NzYsMzg5NzcsMzg5NzgsMzg5NzksMzg5ODAsMzg5'@; put 'ODEsMzg5ODIsMzg5ODMsMzg5ODQsMzg5ODUsMzg5ODYsMzg5ODcsMzg5ODgsMzg5ODksMzg5OTAsMzg5OTEsMzg5OTIsMzg5OTMsMzg5OTQsMzg5OTUsMzg5OTYsMzg5OTcsMzg5OTgsMzg5OTksMzllMywzOTAwMSwzOTAwMiwzOTAwMywzOTAwNCwzOTAwNSwzOTAwNiwzOTAwNywzOTAwOCwz'@; put 'OTAwOSwzOTAxMCwzOTAxMSwzOTAxMiwzOTAxMywzOTAxNCwzOTAxNSwzOTAxNiwzOTAxNywzOTAxOCwzOTAxOSwzOTAyMCwzOTAyMSwzOTAyMiwzMDU2MiwzMDU2NSwzMDU5MSwzMDYwNSwzMDU4OSwzMDU5MiwzMDYwNCwzMDYwOSwzMDYyMywzMDYyNCwzMDY0MCwzMDY0NSwzMDY1MywzMDAx'@; put 'MCwzMDAxNiwzMDAzMCwzMDAyNywzMDAyNCwzMDA0MywzMDA2NiwzMDA3MywzMDA4MywzMjYwMCwzMjYwOSwzMjYwNywzNTQwMCwzMjYxNiwzMjYyOCwzMjYyNSwzMjYzMywzMjY0MSwzMjYzOCwzMDQxMywzMDQzNywzNDg2NiwzODAyMSwzODAyMiwzODAyMywzODAyNywzODAyNiwzODAyOCwz'@; put 'ODAyOSwzODAzMSwzODAzMiwzODAzNiwzODAzOSwzODAzNywzODA0MiwzODA0MywzODA0NCwzODA1MSwzODA1MiwzODA1OSwzODA1OCwzODA2MSwzODA2MCwzODA2MywzODA2NCwzODA2NiwzODA2OCwzODA3MCwzODA3MSwzODA3MiwzODA3MywzODA3NCwzODA3NiwzODA3NywzODA3OSwzODA4'@; put 'NCwzODA4OCwzODA4OSwzODA5MCwzODA5MSwzODA5MiwzODA5MywzODA5NCwzODA5NiwzODA5NywzODA5OCwzODEwMSwzODEwMiwzODEwMywzODEwNSwzODEwNCwzODEwNywzODExMCwzODExMSwzODExMiwzODExNCwzODExNiwzODExNywzODExOSwzODEyMCwzODEyMiwzOTAyMywzOTAyNCwz'@; put 'OTAyNSwzOTAyNiwzOTAyNywzOTAyOCwzOTA1MSwzOTA1NCwzOTA1OCwzOTA2MSwzOTA2NSwzOTA3NSwzOTA4MCwzOTA4MSwzOTA4MiwzOTA4MywzOTA4NCwzOTA4NSwzOTA4NiwzOTA4NywzOTA4OCwzOTA4OSwzOTA5MCwzOTA5MSwzOTA5MiwzOTA5MywzOTA5NCwzOTA5NSwzOTA5NiwzOTA5'@; put 'NywzOTA5OCwzOTA5OSwzOTEwMCwzOTEwMSwzOTEwMiwzOTEwMywzOTEwNCwzOTEwNSwzOTEwNiwzOTEwNywzOTEwOCwzOTEwOSwzOTExMCwzOTExMSwzOTExMiwzOTExMywzOTExNCwzOTExNSwzOTExNiwzOTExNywzOTExOSwzOTEyMCwzOTEyNCwzOTEyNiwzOTEyNywzOTEzMSwzOTEzMiwz'@; put 'OTEzMywzOTEzNiwzOTEzNywzOTEzOCwzOTEzOSwzOTE0MCwzOTE0MSwzOTE0MiwzOTE0NSwzOTE0NiwzOTE0NywzOTE0OCwzOTE0OSwzOTE1MCwzOTE1MSwzOTE1MiwzOTE1MywzOTE1NCwzOTE1NSwzOTE1NiwzOTE1NywzOTE1OCwzOTE1OSwzOTE2MCwzOTE2MSwzOTE2MiwzOTE2MywzOTE2'@; put 'NCwzOTE2NSwzOTE2NiwzOTE2NywzOTE2OCwzOTE2OSwzOTE3MCwzOTE3MSwzOTE3MiwzOTE3MywzOTE3NCwzOTE3NSwzODEyMSwzODEyMywzODEyNiwzODEyNywzODEzMSwzODEzMiwzODEzMywzODEzNSwzODEzNywzODE0MCwzODE0MSwzODE0MywzODE0NywzODE0NiwzODE1MCwzODE1MSwz'@; put 'ODE1MywzODE1NCwzODE1NywzODE1OCwzODE1OSwzODE2MiwzODE2MywzODE2NCwzODE2NSwzODE2NiwzODE2OCwzODE3MSwzODE3MywzODE3NCwzODE3NSwzODE3OCwzODE4NiwzODE4NywzODE4NSwzODE4OCwzODE5MywzODE5NCwzODE5NiwzODE5OCwzODE5OSwzODIwMCwzODIwNCwzODIw'@; put 'NiwzODIwNywzODIxMCwzODE5NywzODIxMiwzODIxMywzODIxNCwzODIxNywzODIyMCwzODIyMiwzODIyMywzODIyNiwzODIyNywzODIyOCwzODIzMCwzODIzMSwzODIzMiwzODIzMywzODIzNSwzODIzOCwzODIzOSwzODIzNywzODI0MSwzODI0MiwzODI0NCwzODI0NSwzODI0NiwzODI0Nywz'@; put 'ODI0OCwzODI0OSwzODI1MCwzODI1MSwzODI1MiwzODI1NSwzODI1NywzODI1OCwzODI1OSwzODIwMiwzMDY5NSwzMDcwMCwzODYwMSwzMTE4OSwzMTIxMywzMTIwMywzMTIxMSwzMTIzOCwyMzg3OSwzMTIzNSwzMTIzNCwzMTI2MiwzMTI1MiwzOTE3NiwzOTE3NywzOTE3OCwzOTE3OSwzOTE4'@; put 'MCwzOTE4MiwzOTE4MywzOTE4NSwzOTE4NiwzOTE4NywzOTE4OCwzOTE4OSwzOTE5MCwzOTE5MSwzOTE5MiwzOTE5MywzOTE5NCwzOTE5NSwzOTE5NiwzOTE5NywzOTE5OCwzOTE5OSwzOTIwMCwzOTIwMSwzOTIwMiwzOTIwMywzOTIwNCwzOTIwNSwzOTIwNiwzOTIwNywzOTIwOCwzOTIwOSwz'@; put 'OTIxMCwzOTIxMSwzOTIxMiwzOTIxMywzOTIxNSwzOTIxNiwzOTIxNywzOTIxOCwzOTIxOSwzOTIyMCwzOTIyMSwzOTIyMiwzOTIyMywzOTIyNCwzOTIyNSwzOTIyNiwzOTIyNywzOTIyOCwzOTIyOSwzOTIzMCwzOTIzMSwzOTIzMiwzOTIzMywzOTIzNCwzOTIzNSwzOTIzNiwzOTIzNywzOTIz'@; put 'OCwzOTIzOSwzOTI0MCwzOTI0MSwzOTI0MiwzOTI0MywzOTI0NCwzOTI0NSwzOTI0NiwzOTI0NywzOTI0OCwzOTI0OSwzOTI1MCwzOTI1MSwzOTI1NCwzOTI1NSwzOTI1NiwzOTI1NywzOTI1OCwzOTI1OSwzOTI2MCwzOTI2MSwzOTI2MiwzOTI2MywzOTI2NCwzOTI2NSwzOTI2NiwzOTI2OCwz'@; put 'OTI3MCwzOTI4MywzOTI4OCwzOTI4OSwzOTI5MSwzOTI5NCwzOTI5OCwzOTI5OSwzOTMwNSwzMTI4OSwzMTI4NywzMTMxMyw0MDY1NSwzOTMzMywzMTM0NCwzMDM0NCwzMDM1MCwzMDM1NSwzMDM2MSwzMDM3MiwyOTkxOCwyOTkyMCwyOTk5Niw0MDQ4MCw0MDQ4Miw0MDQ4OCw0MDQ4OSw0MDQ5'@; put 'MCw0MDQ5MSw0MDQ5Miw0MDQ5OCw0MDQ5Nyw0MDUwMiw0MDUwNCw0MDUwMyw0MDUwNSw0MDUwNiw0MDUxMCw0MDUxMyw0MDUxNCw0MDUxNiw0MDUxOCw0MDUxOSw0MDUyMCw0MDUyMSw0MDUyMyw0MDUyNCw0MDUyNiw0MDUyOSw0MDUzMyw0MDUzNSw0MDUzOCw0MDUzOSw0MDU0MCw0MDU0Miw0'@; put 'MDU0Nyw0MDU1MCw0MDU1MSw0MDU1Miw0MDU1Myw0MDU1NCw0MDU1NSw0MDU1Niw0MDU2MSw0MDU1Nyw0MDU2MywzMDA5OCwzMDEwMCwzMDEwMiwzMDExMiwzMDEwOSwzMDEyNCwzMDExNSwzMDEzMSwzMDEzMiwzMDEzNiwzMDE0OCwzMDEyOSwzMDEyOCwzMDE0NywzMDE0NiwzMDE2NiwzMDE1'@; put 'NywzMDE3OSwzMDE4NCwzMDE4MiwzMDE4MCwzMDE4NywzMDE4MywzMDIxMSwzMDE5MywzMDIwNCwzMDIwNywzMDIyNCwzMDIwOCwzMDIxMywzMDIyMCwzMDIzMSwzMDIxOCwzMDI0NSwzMDIzMiwzMDIyOSwzMDIzMywzOTMwOCwzOTMxMCwzOTMyMiwzOTMyMywzOTMyNCwzOTMyNSwzOTMyNiwz'@; put 'OTMyNywzOTMyOCwzOTMyOSwzOTMzMCwzOTMzMSwzOTMzMiwzOTMzNCwzOTMzNSwzOTMzNywzOTMzOCwzOTMzOSwzOTM0MCwzOTM0MSwzOTM0MiwzOTM0MywzOTM0NCwzOTM0NSwzOTM0NiwzOTM0NywzOTM0OCwzOTM0OSwzOTM1MCwzOTM1MSwzOTM1MiwzOTM1MywzOTM1NCwzOTM1NSwzOTM1'@; put 'NiwzOTM1NywzOTM1OCwzOTM1OSwzOTM2MCwzOTM2MSwzOTM2MiwzOTM2MywzOTM2NCwzOTM2NSwzOTM2NiwzOTM2NywzOTM2OCwzOTM2OSwzOTM3MCwzOTM3MSwzOTM3MiwzOTM3MywzOTM3NCwzOTM3NSwzOTM3NiwzOTM3NywzOTM3OCwzOTM3OSwzOTM4MCwzOTM4MSwzOTM4MiwzOTM4Mywz'@; put 'OTM4NCwzOTM4NSwzOTM4NiwzOTM4NywzOTM4OCwzOTM4OSwzOTM5MCwzOTM5MSwzOTM5MiwzOTM5MywzOTM5NCwzOTM5NSwzOTM5NiwzOTM5NywzOTM5OCwzOTM5OSwzOTQwMCwzOTQwMSwzOTQwMiwzOTQwMywzOTQwNCwzOTQwNSwzOTQwNiwzOTQwNywzOTQwOCwzOTQwOSwzOTQxMCwzOTQx'@; put 'MSwzOTQxMiwzOTQxMywzOTQxNCwzOTQxNSwzOTQxNiwzOTQxNywzMDIzNSwzMDI2OCwzMDI0MiwzMDI0MCwzMDI3MiwzMDI1MywzMDI1NiwzMDI3MSwzMDI2MSwzMDI3NSwzMDI3MCwzMDI1OSwzMDI4NSwzMDMwMiwzMDI5MiwzMDMwMCwzMDI5NCwzMDMxNSwzMDMxOSwzMjcxNCwzMTQ2Miwz'@; put 'MTM1MiwzMTM1MywzMTM2MCwzMTM2NiwzMTM2OCwzMTM4MSwzMTM5OCwzMTM5MiwzMTQwNCwzMTQwMCwzMTQwNSwzMTQxMSwzNDkxNiwzNDkyMSwzNDkzMCwzNDk0MSwzNDk0MywzNDk0NiwzNDk3OCwzNTAxNCwzNDk5OSwzNTAwNCwzNTAxNywzNTA0MiwzNTAyMiwzNTA0MywzNTA0NSwzNTA1'@; put 'NywzNTA5OCwzNTA2OCwzNTA0OCwzNTA3MCwzNTA1NiwzNTEwNSwzNTA5NywzNTA5MSwzNTA5OSwzNTA4MiwzNTEyNCwzNTExNSwzNTEyNiwzNTEzNywzNTE3NCwzNTE5NSwzMDA5MSwzMjk5NywzMDM4NiwzMDM4OCwzMDY4NCwzMjc4NiwzMjc4OCwzMjc5MCwzMjc5NiwzMjgwMCwzMjgwMiwz'@; put 'MjgwNSwzMjgwNiwzMjgwNywzMjgwOSwzMjgwOCwzMjgxNywzMjc3OSwzMjgyMSwzMjgzNSwzMjgzOCwzMjg0NSwzMjg1MCwzMjg3MywzMjg4MSwzNTIwMywzOTAzMiwzOTA0MCwzOTA0MywzOTQxOCwzOTQxOSwzOTQyMCwzOTQyMSwzOTQyMiwzOTQyMywzOTQyNCwzOTQyNSwzOTQyNiwzOTQy'@; put 'NywzOTQyOCwzOTQyOSwzOTQzMCwzOTQzMSwzOTQzMiwzOTQzMywzOTQzNCwzOTQzNSwzOTQzNiwzOTQzNywzOTQzOCwzOTQzOSwzOTQ0MCwzOTQ0MSwzOTQ0MiwzOTQ0MywzOTQ0NCwzOTQ0NSwzOTQ0NiwzOTQ0NywzOTQ0OCwzOTQ0OSwzOTQ1MCwzOTQ1MSwzOTQ1MiwzOTQ1MywzOTQ1NCwz'@; put 'OTQ1NSwzOTQ1NiwzOTQ1NywzOTQ1OCwzOTQ1OSwzOTQ2MCwzOTQ2MSwzOTQ2MiwzOTQ2MywzOTQ2NCwzOTQ2NSwzOTQ2NiwzOTQ2NywzOTQ2OCwzOTQ2OSwzOTQ3MCwzOTQ3MSwzOTQ3MiwzOTQ3MywzOTQ3NCwzOTQ3NSwzOTQ3NiwzOTQ3NywzOTQ3OCwzOTQ3OSwzOTQ4MCwzOTQ4MSwzOTQ4'@; put 'MiwzOTQ4MywzOTQ4NCwzOTQ4NSwzOTQ4NiwzOTQ4NywzOTQ4OCwzOTQ4OSwzOTQ5MCwzOTQ5MSwzOTQ5MiwzOTQ5MywzOTQ5NCwzOTQ5NSwzOTQ5NiwzOTQ5NywzOTQ5OCwzOTQ5OSwzOTUwMCwzOTUwMSwzOTUwMiwzOTUwMywzOTUwNCwzOTUwNSwzOTUwNiwzOTUwNywzOTUwOCwzOTUwOSwz'@; put 'OTUxMCwzOTUxMSwzOTUxMiwzOTUxMywzOTA0OSwzOTA1MiwzOTA1MywzOTA1NSwzOTA2MCwzOTA2NiwzOTA2NywzOTA3MCwzOTA3MSwzOTA3MywzOTA3NCwzOTA3NywzOTA3OCwzNDM4MSwzNDM4OCwzNDQxMiwzNDQxNCwzNDQzMSwzNDQyNiwzNDQyOCwzNDQyNywzNDQ3MiwzNDQ0NSwzNDQ0'@; put 'MywzNDQ3NiwzNDQ2MSwzNDQ3MSwzNDQ2NywzNDQ3NCwzNDQ1MSwzNDQ3MywzNDQ4NiwzNDUwMCwzNDQ4NSwzNDUxMCwzNDQ4MCwzNDQ5MCwzNDQ4MSwzNDQ3OSwzNDUwNSwzNDUxMSwzNDQ4NCwzNDUzNywzNDU0NSwzNDU0NiwzNDU0MSwzNDU0NywzNDUxMiwzNDU3OSwzNDUyNiwzNDU0OCwz'@; put 'NDUyNywzNDUyMCwzNDUxMywzNDU2MywzNDU2NywzNDU1MiwzNDU2OCwzNDU3MCwzNDU3MywzNDU2OSwzNDU5NSwzNDYxOSwzNDU5MCwzNDU5NywzNDYwNiwzNDU4NiwzNDYyMiwzNDYzMiwzNDYxMiwzNDYwOSwzNDYwMSwzNDYxNSwzNDYyMywzNDY5MCwzNDU5NCwzNDY4NSwzNDY4NiwzNDY4'@; put 'MywzNDY1NiwzNDY3MiwzNDYzNiwzNDY3MCwzNDY5OSwzNDY0MywzNDY1OSwzNDY4NCwzNDY2MCwzNDY0OSwzNDY2MSwzNDcwNywzNDczNSwzNDcyOCwzNDc3MCwzOTUxNCwzOTUxNSwzOTUxNiwzOTUxNywzOTUxOCwzOTUxOSwzOTUyMCwzOTUyMSwzOTUyMiwzOTUyMywzOTUyNCwzOTUyNSwz'@; put 'OTUyNiwzOTUyNywzOTUyOCwzOTUyOSwzOTUzMCwzOTUzMSwzOTUzOCwzOTU1NSwzOTU2MSwzOTU2NSwzOTU2NiwzOTU3MiwzOTU3MywzOTU3NywzOTU5MCwzOTU5MywzOTU5NCwzOTU5NSwzOTU5NiwzOTU5NywzOTU5OCwzOTU5OSwzOTYwMiwzOTYwMywzOTYwNCwzOTYwNSwzOTYwOSwzOTYx'@; put 'MSwzOTYxMywzOTYxNCwzOTYxNSwzOTYxOSwzOTYyMCwzOTYyMiwzOTYyMywzOTYyNCwzOTYyNSwzOTYyNiwzOTYyOSwzOTYzMCwzOTYzMSwzOTYzMiwzOTYzNCwzOTYzNiwzOTYzNywzOTYzOCwzOTYzOSwzOTY0MSwzOTY0MiwzOTY0MywzOTY0NCwzOTY0NSwzOTY0NiwzOTY0OCwzOTY1MCwz'@; put 'OTY1MSwzOTY1MiwzOTY1MywzOTY1NSwzOTY1NiwzOTY1NywzOTY1OCwzOTY2MCwzOTY2MiwzOTY2NCwzOTY2NSwzOTY2NiwzOTY2NywzOTY2OCwzOTY2OSwzOTY3MCwzOTY3MSwzOTY3MiwzOTY3NCwzOTY3NiwzOTY3NywzOTY3OCwzOTY3OSwzOTY4MCwzOTY4MSwzOTY4MiwzOTY4NCwzOTY4'@; put 'NSwzOTY4NiwzNDc1OCwzNDY5NiwzNDY5MywzNDczMywzNDcxMSwzNDY5MSwzNDczMSwzNDc4OSwzNDczMiwzNDc0MSwzNDczOSwzNDc2MywzNDc3MSwzNDc0OSwzNDc2OSwzNDc1MiwzNDc2MiwzNDc3OSwzNDc5NCwzNDc4NCwzNDc5OCwzNDgzOCwzNDgzNSwzNDgxNCwzNDgyNiwzNDg0Mywz'@; put 'NDg0OSwzNDg3MywzNDg3NiwzMjU2NiwzMjU3OCwzMjU4MCwzMjU4MSwzMzI5NiwzMTQ4MiwzMTQ4NSwzMTQ5NiwzMTQ5MSwzMTQ5MiwzMTUwOSwzMTQ5OCwzMTUzMSwzMTUwMywzMTU1OSwzMTU0NCwzMTUzMCwzMTUxMywzMTUzNCwzMTUzNywzMTUyMCwzMTUyNSwzMTUyNCwzMTUzOSwzMTU1'@; put 'MCwzMTUxOCwzMTU3NiwzMTU3OCwzMTU1NywzMTYwNSwzMTU2NCwzMTU4MSwzMTU4NCwzMTU5OCwzMTYxMSwzMTU4NiwzMTYwMiwzMTYwMSwzMTYzMiwzMTY1NCwzMTY1NSwzMTY3MiwzMTY2MCwzMTY0NSwzMTY1NiwzMTYyMSwzMTY1OCwzMTY0NCwzMTY1MCwzMTY1OSwzMTY2OCwzMTY5Nywz'@; put 'MTY4MSwzMTY5MiwzMTcwOSwzMTcwNiwzMTcxNywzMTcxOCwzMTcyMiwzMTc1NiwzMTc0MiwzMTc0MCwzMTc1OSwzMTc2NiwzMTc1NSwzOTY4NywzOTY4OSwzOTY5MCwzOTY5MSwzOTY5MiwzOTY5MywzOTY5NCwzOTY5NiwzOTY5NywzOTY5OCwzOTcwMCwzOTcwMSwzOTcwMiwzOTcwMywzOTcw'@; put 'NCwzOTcwNSwzOTcwNiwzOTcwNywzOTcwOCwzOTcwOSwzOTcxMCwzOTcxMiwzOTcxMywzOTcxNCwzOTcxNiwzOTcxNywzOTcxOCwzOTcxOSwzOTcyMCwzOTcyMSwzOTcyMiwzOTcyMywzOTcyNCwzOTcyNSwzOTcyNiwzOTcyOCwzOTcyOSwzOTczMSwzOTczMiwzOTczMywzOTczNCwzOTczNSwz'@; put 'OTczNiwzOTczNywzOTczOCwzOTc0MSwzOTc0MiwzOTc0MywzOTc0NCwzOTc1MCwzOTc1NCwzOTc1NSwzOTc1NiwzOTc1OCwzOTc2MCwzOTc2MiwzOTc2MywzOTc2NSwzOTc2NiwzOTc2NywzOTc2OCwzOTc2OSwzOTc3MCwzOTc3MSwzOTc3MiwzOTc3MywzOTc3NCwzOTc3NSwzOTc3NiwzOTc3'@; put 'NywzOTc3OCwzOTc3OSwzOTc4MCwzOTc4MSwzOTc4MiwzOTc4MywzOTc4NCwzOTc4NSwzOTc4NiwzOTc4NywzOTc4OCwzOTc4OSwzOTc5MCwzOTc5MSwzOTc5MiwzOTc5MywzOTc5NCwzOTc5NSwzOTc5NiwzOTc5NywzOTc5OCwzOTc5OSwzOTgwMCwzOTgwMSwzOTgwMiwzOTgwMywzMTc3NSwz'@; put 'MTc4NiwzMTc4MiwzMTgwMCwzMTgwOSwzMTgwOCwzMzI3OCwzMzI4MSwzMzI4MiwzMzI4NCwzMzI2MCwzNDg4NCwzMzMxMywzMzMxNCwzMzMxNSwzMzMyNSwzMzMyNywzMzMyMCwzMzMyMywzMzMzNiwzMzMzOSwzMzMzMSwzMzMzMiwzMzM0MiwzMzM0OCwzMzM1MywzMzM1NSwzMzM1OSwzMzM3'@; put 'MCwzMzM3NSwzMzM4NCwzNDk0MiwzNDk0OSwzNDk1MiwzNTAzMiwzNTAzOSwzNTE2NiwzMjY2OSwzMjY3MSwzMjY3OSwzMjY4NywzMjY4OCwzMjY5MCwzMTg2OCwyNTkyOSwzMTg4OSwzMTkwMSwzMTkwMCwzMTkwMiwzMTkwNiwzMTkyMiwzMTkzMiwzMTkzMywzMTkzNywzMTk0MywzMTk0OCwz'@; put 'MTk0OSwzMTk0NCwzMTk0MSwzMTk1OSwzMTk3NiwzMzM5MCwyNjI4MCwzMjcwMywzMjcxOCwzMjcyNSwzMjc0MSwzMjczNywzMjc0MiwzMjc0NSwzMjc1MCwzMjc1NSwzMTk5MiwzMjExOSwzMjE2NiwzMjE3NCwzMjMyNywzMjQxMSw0MDYzMiw0MDYyOCwzNjIxMSwzNjIyOCwzNjI0NCwzNjI0'@; put 'MSwzNjI3MywzNjE5OSwzNjIwNSwzNTkxMSwzNTkxMywzNzE5NCwzNzIwMCwzNzE5OCwzNzE5OSwzNzIyMCwzOTgwNCwzOTgwNSwzOTgwNiwzOTgwNywzOTgwOCwzOTgwOSwzOTgxMCwzOTgxMSwzOTgxMiwzOTgxMywzOTgxNCwzOTgxNSwzOTgxNiwzOTgxNywzOTgxOCwzOTgxOSwzOTgyMCwz'@; put 'OTgyMSwzOTgyMiwzOTgyMywzOTgyNCwzOTgyNSwzOTgyNiwzOTgyNywzOTgyOCwzOTgyOSwzOTgzMCwzOTgzMSwzOTgzMiwzOTgzMywzOTgzNCwzOTgzNSwzOTgzNiwzOTgzNywzOTgzOCwzOTgzOSwzOTg0MCwzOTg0MSwzOTg0MiwzOTg0MywzOTg0NCwzOTg0NSwzOTg0NiwzOTg0NywzOTg0'@; put 'OCwzOTg0OSwzOTg1MCwzOTg1MSwzOTg1MiwzOTg1MywzOTg1NCwzOTg1NSwzOTg1NiwzOTg1NywzOTg1OCwzOTg1OSwzOTg2MCwzOTg2MSwzOTg2MiwzOTg2MywzOTg2NCwzOTg2NSwzOTg2NiwzOTg2NywzOTg2OCwzOTg2OSwzOTg3MCwzOTg3MSwzOTg3MiwzOTg3MywzOTg3NCwzOTg3NSwz'@; put 'OTg3NiwzOTg3NywzOTg3OCwzOTg3OSwzOTg4MCwzOTg4MSwzOTg4MiwzOTg4MywzOTg4NCwzOTg4NSwzOTg4NiwzOTg4NywzOTg4OCwzOTg4OSwzOTg5MCwzOTg5MSwzOTg5MiwzOTg5MywzOTg5NCwzOTg5NSwzOTg5NiwzOTg5NywzOTg5OCwzOTg5OSwzNzIxOCwzNzIxNywzNzIzMiwzNzIy'@; put 'NSwzNzIzMSwzNzI0NSwzNzI0NiwzNzIzNCwzNzIzNiwzNzI0MSwzNzI2MCwzNzI1MywzNzI2NCwzNzI2MSwzNzI2NSwzNzI4MiwzNzI4MywzNzI5MCwzNzI5MywzNzI5NCwzNzI5NSwzNzMwMSwzNzMwMCwzNzMwNiwzNTkyNSw0MDU3NCwzNjI4MCwzNjMzMSwzNjM1NywzNjQ0MSwzNjQ1Nywz'@; put 'NjI3NywzNjI4NywzNjI4NCwzNjI4MiwzNjI5MiwzNjMxMCwzNjMxMSwzNjMxNCwzNjMxOCwzNjMwMiwzNjMwMywzNjMxNSwzNjI5NCwzNjMzMiwzNjM0MywzNjM0NCwzNjMyMywzNjM0NSwzNjM0NywzNjMyNCwzNjM2MSwzNjM0OSwzNjM3MiwzNjM4MSwzNjM4MywzNjM5NiwzNjM5OCwzNjM4'@; put 'NywzNjM5OSwzNjQxMCwzNjQxNiwzNjQwOSwzNjQwNSwzNjQxMywzNjQwMSwzNjQyNSwzNjQxNywzNjQxOCwzNjQzMywzNjQzNCwzNjQyNiwzNjQ2NCwzNjQ3MCwzNjQ3NiwzNjQ2MywzNjQ2OCwzNjQ4NSwzNjQ5NSwzNjUwMCwzNjQ5NiwzNjUwOCwzNjUxMCwzNTk2MCwzNTk3MCwzNTk3OCwz'@; put 'NTk3MywzNTk5MiwzNTk4OCwyNjAxMSwzNTI4NiwzNTI5NCwzNTI5MCwzNTI5MiwzOTkwMCwzOTkwMSwzOTkwMiwzOTkwMywzOTkwNCwzOTkwNSwzOTkwNiwzOTkwNywzOTkwOCwzOTkwOSwzOTkxMCwzOTkxMSwzOTkxMiwzOTkxMywzOTkxNCwzOTkxNSwzOTkxNiwzOTkxNywzOTkxOCwzOTkx'@; put 'OSwzOTkyMCwzOTkyMSwzOTkyMiwzOTkyMywzOTkyNCwzOTkyNSwzOTkyNiwzOTkyNywzOTkyOCwzOTkyOSwzOTkzMCwzOTkzMSwzOTkzMiwzOTkzMywzOTkzNCwzOTkzNSwzOTkzNiwzOTkzNywzOTkzOCwzOTkzOSwzOTk0MCwzOTk0MSwzOTk0MiwzOTk0MywzOTk0NCwzOTk0NSwzOTk0Niwz'@; put 'OTk0NywzOTk0OCwzOTk0OSwzOTk1MCwzOTk1MSwzOTk1MiwzOTk1MywzOTk1NCwzOTk1NSwzOTk1NiwzOTk1NywzOTk1OCwzOTk1OSwzOTk2MCwzOTk2MSwzOTk2MiwzOTk2MywzOTk2NCwzOTk2NSwzOTk2NiwzOTk2NywzOTk2OCwzOTk2OSwzOTk3MCwzOTk3MSwzOTk3MiwzOTk3MywzOTk3'@; put 'NCwzOTk3NSwzOTk3NiwzOTk3NywzOTk3OCwzOTk3OSwzOTk4MCwzOTk4MSwzOTk4MiwzOTk4MywzOTk4NCwzOTk4NSwzOTk4NiwzOTk4NywzOTk4OCwzOTk4OSwzOTk5MCwzOTk5MSwzOTk5MiwzOTk5MywzOTk5NCwzOTk5NSwzNTMwMSwzNTMwNywzNTMxMSwzNTM5MCwzNTYyMiwzODczOSwz'@; put 'ODYzMywzODY0MywzODYzOSwzODY2MiwzODY1NywzODY2NCwzODY3MSwzODY3MCwzODY5OCwzODcwMSwzODcwNCwzODcxOCw0MDgzMiw0MDgzNSw0MDgzNyw0MDgzOCw0MDgzOSw0MDg0MCw0MDg0MSw0MDg0Miw0MDg0NCw0MDcwMiw0MDcxNSw0MDcxNywzODU4NSwzODU4OCwzODU4OSwzODYw'@; put 'NiwzODYxMCwzMDY1NSwzODYyNCwzNzUxOCwzNzU1MCwzNzU3NiwzNzY5NCwzNzczOCwzNzgzNCwzNzc3NSwzNzk1MCwzNzk5NSw0MDA2Myw0MDA2Niw0MDA2OSw0MDA3MCw0MDA3MSw0MDA3MiwzMTI2Nyw0MDA3NSw0MDA3OCw0MDA4MCw0MDA4MSw0MDA4Miw0MDA4NCw0MDA4NSw0MDA5MCw0'@; put 'MDA5MSw0MDA5NCw0MDA5NSw0MDA5Niw0MDA5Nyw0MDA5OCw0MDA5OSw0MDEwMSw0MDEwMiw0MDEwMyw0MDEwNCw0MDEwNSw0MDEwNyw0MDEwOSw0MDExMCw0MDExMiw0MDExMyw0MDExNCw0MDExNSw0MDExNiw0MDExNyw0MDExOCw0MDExOSw0MDEyMiw0MDEyMyw0MDEyNCw0MDEyNSw0MDEz'@; put 'Miw0MDEzMyw0MDEzNCw0MDEzNSw0MDEzOCw0MDEzOSwzOTk5NiwzOTk5NywzOTk5OCwzOTk5OSw0ZTQsNDAwMDEsNDAwMDIsNDAwMDMsNDAwMDQsNDAwMDUsNDAwMDYsNDAwMDcsNDAwMDgsNDAwMDksNDAwMTAsNDAwMTEsNDAwMTIsNDAwMTMsNDAwMTQsNDAwMTUsNDAwMTYsNDAwMTcsNDAw'@; put 'MTgsNDAwMTksNDAwMjAsNDAwMjEsNDAwMjIsNDAwMjMsNDAwMjQsNDAwMjUsNDAwMjYsNDAwMjcsNDAwMjgsNDAwMjksNDAwMzAsNDAwMzEsNDAwMzIsNDAwMzMsNDAwMzQsNDAwMzUsNDAwMzYsNDAwMzcsNDAwMzgsNDAwMzksNDAwNDAsNDAwNDEsNDAwNDIsNDAwNDMsNDAwNDQsNDAwNDUs'@; put 'NDAwNDYsNDAwNDcsNDAwNDgsNDAwNDksNDAwNTAsNDAwNTEsNDAwNTIsNDAwNTMsNDAwNTQsNDAwNTUsNDAwNTYsNDAwNTcsNDAwNTgsNDAwNTksNDAwNjEsNDAwNjIsNDAwNjQsNDAwNjcsNDAwNjgsNDAwNzMsNDAwNzQsNDAwNzYsNDAwNzksNDAwODMsNDAwODYsNDAwODcsNDAwODgsNDAw'@; put 'ODksNDAwOTMsNDAxMDYsNDAxMDgsNDAxMTEsNDAxMjEsNDAxMjYsNDAxMjcsNDAxMjgsNDAxMjksNDAxMzAsNDAxMzYsNDAxMzcsNDAxNDUsNDAxNDYsNDAxNTQsNDAxNTUsNDAxNjAsNDAxNjEsNDAxNDAsNDAxNDEsNDAxNDIsNDAxNDMsNDAxNDQsNDAxNDcsNDAxNDgsNDAxNDksNDAxNTEs'@; put 'NDAxNTIsNDAxNTMsNDAxNTYsNDAxNTcsNDAxNTksNDAxNjIsMzg3ODAsMzg3ODksMzg4MDEsMzg4MDIsMzg4MDQsMzg4MzEsMzg4MjcsMzg4MTksMzg4MzQsMzg4MzYsMzk2MDEsMzk2MDAsMzk2MDcsNDA1MzYsMzk2MDYsMzk2MTAsMzk2MTIsMzk2MTcsMzk2MTYsMzk2MjEsMzk2MTgsMzk2'@; put 'MjcsMzk2MjgsMzk2MzMsMzk3NDksMzk3NDcsMzk3NTEsMzk3NTMsMzk3NTIsMzk3NTcsMzk3NjEsMzkxNDQsMzkxODEsMzkyMTQsMzkyNTMsMzkyNTIsMzk2NDcsMzk2NDksMzk2NTQsMzk2NjMsMzk2NTksMzk2NzUsMzk2NjEsMzk2NzMsMzk2ODgsMzk2OTUsMzk2OTksMzk3MTEsMzk3MTUs'@; put 'NDA2MzcsNDA2MzgsMzIzMTUsNDA1NzgsNDA1ODMsNDA1ODQsNDA1ODcsNDA1OTQsMzc4NDYsNDA2MDUsNDA2MDcsNDA2NjcsNDA2NjgsNDA2NjksNDA2NzIsNDA2NzEsNDA2NzQsNDA2ODEsNDA2NzksNDA2NzcsNDA2ODIsNDA2ODcsNDA3MzgsNDA3NDgsNDA3NTEsNDA3NjEsNDA3NTksNDA3'@; put 'NjUsNDA3NjYsNDA3NzIsNDAxNjMsNDAxNjQsNDAxNjUsNDAxNjYsNDAxNjcsNDAxNjgsNDAxNjksNDAxNzAsNDAxNzEsNDAxNzIsNDAxNzMsNDAxNzQsNDAxNzUsNDAxNzYsNDAxNzcsNDAxNzgsNDAxNzksNDAxODAsNDAxODEsNDAxODIsNDAxODMsNDAxODQsNDAxODUsNDAxODYsNDAxODcs'@; put 'NDAxODgsNDAxODksNDAxOTAsNDAxOTEsNDAxOTIsNDAxOTMsNDAxOTQsNDAxOTUsNDAxOTYsNDAxOTcsNDAxOTgsNDAxOTksNDAyMDAsNDAyMDEsNDAyMDIsNDAyMDMsNDAyMDQsNDAyMDUsNDAyMDYsNDAyMDcsNDAyMDgsNDAyMDksNDAyMTAsNDAyMTEsNDAyMTIsNDAyMTMsNDAyMTQsNDAy'@; put 'MTUsNDAyMTYsNDAyMTcsNDAyMTgsNDAyMTksNDAyMjAsNDAyMjEsNDAyMjIsNDAyMjMsNDAyMjQsNDAyMjUsNDAyMjYsNDAyMjcsNDAyMjgsNDAyMjksNDAyMzAsNDAyMzEsNDAyMzIsNDAyMzMsNDAyMzQsNDAyMzUsNDAyMzYsNDAyMzcsNDAyMzgsNDAyMzksNDAyNDAsNDAyNDEsNDAyNDIs'@; put 'NDAyNDMsNDAyNDQsNDAyNDUsNDAyNDYsNDAyNDcsNDAyNDgsNDAyNDksNDAyNTAsNDAyNTEsNDAyNTIsNDAyNTMsNDAyNTQsNDAyNTUsNDAyNTYsNDAyNTcsNDAyNTgsNTc5MDgsNTc5MDksNTc5MTAsNTc5MTEsNTc5MTIsNTc5MTMsNTc5MTQsNTc5MTUsNTc5MTYsNTc5MTcsNTc5MTgsNTc5'@; put 'MTksNTc5MjAsNTc5MjEsNTc5MjIsNTc5MjMsNTc5MjQsNTc5MjUsNTc5MjYsNTc5MjcsNTc5MjgsNTc5MjksNTc5MzAsNTc5MzEsNTc5MzIsNTc5MzMsNTc5MzQsNTc5MzUsNTc5MzYsNTc5MzcsNTc5MzgsNTc5MzksNTc5NDAsNTc5NDEsNTc5NDIsNTc5NDMsNTc5NDQsNTc5NDUsNTc5NDYs'@; put 'NTc5NDcsNTc5NDgsNTc5NDksNTc5NTAsNTc5NTEsNTc5NTIsNTc5NTMsNTc5NTQsNTc5NTUsNTc5NTYsNTc5NTcsNTc5NTgsNTc5NTksNTc5NjAsNTc5NjEsNTc5NjIsNTc5NjMsNTc5NjQsNTc5NjUsNTc5NjYsNTc5NjcsNTc5NjgsNTc5NjksNTc5NzAsNTc5NzEsNTc5NzIsNTc5NzMsNTc5'@; put 'NzQsNTc5NzUsNTc5NzYsNTc5NzcsNTc5NzgsNTc5NzksNTc5ODAsNTc5ODEsNTc5ODIsNTc5ODMsNTc5ODQsNTc5ODUsNTc5ODYsNTc5ODcsNTc5ODgsNTc5ODksNTc5OTAsNTc5OTEsNTc5OTIsNTc5OTMsNTc5OTQsNTc5OTUsNTc5OTYsNTc5OTcsNTc5OTgsNTc5OTksNThlMyw1ODAwMSw0'@; put 'MDI1OSw0MDI2MCw0MDI2MSw0MDI2Miw0MDI2Myw0MDI2NCw0MDI2NSw0MDI2Niw0MDI2Nyw0MDI2OCw0MDI2OSw0MDI3MCw0MDI3MSw0MDI3Miw0MDI3Myw0MDI3NCw0MDI3NSw0MDI3Niw0MDI3Nyw0MDI3OCw0MDI3OSw0MDI4MCw0MDI4MSw0MDI4Miw0MDI4Myw0MDI4NCw0MDI4NSw0MDI4'@; put 'Niw0MDI4Nyw0MDI4OCw0MDI4OSw0MDI5MCw0MDI5MSw0MDI5Miw0MDI5Myw0MDI5NCw0MDI5NSw0MDI5Niw0MDI5Nyw0MDI5OCw0MDI5OSw0MDMwMCw0MDMwMSw0MDMwMiw0MDMwMyw0MDMwNCw0MDMwNSw0MDMwNiw0MDMwNyw0MDMwOCw0MDMwOSw0MDMxMCw0MDMxMSw0MDMxMiw0MDMxMyw0'@; put 'MDMxNCw0MDMxNSw0MDMxNiw0MDMxNyw0MDMxOCw0MDMxOSw0MDMyMCw0MDMyMSw0MDMyMiw0MDMyMyw0MDMyNCw0MDMyNSw0MDMyNiw0MDMyNyw0MDMyOCw0MDMyOSw0MDMzMCw0MDMzMSw0MDMzMiw0MDMzMyw0MDMzNCw0MDMzNSw0MDMzNiw0MDMzNyw0MDMzOCw0MDMzOSw0MDM0MCw0MDM0'@; put 'MSw0MDM0Miw0MDM0Myw0MDM0NCw0MDM0NSw0MDM0Niw0MDM0Nyw0MDM0OCw0MDM0OSw0MDM1MCw0MDM1MSw0MDM1Miw0MDM1Myw0MDM1NCw1ODAwMiw1ODAwMyw1ODAwNCw1ODAwNSw1ODAwNiw1ODAwNyw1ODAwOCw1ODAwOSw1ODAxMCw1ODAxMSw1ODAxMiw1ODAxMyw1ODAxNCw1ODAxNSw1'@; put 'ODAxNiw1ODAxNyw1ODAxOCw1ODAxOSw1ODAyMCw1ODAyMSw1ODAyMiw1ODAyMyw1ODAyNCw1ODAyNSw1ODAyNiw1ODAyNyw1ODAyOCw1ODAyOSw1ODAzMCw1ODAzMSw1ODAzMiw1ODAzMyw1ODAzNCw1ODAzNSw1ODAzNiw1ODAzNyw1ODAzOCw1ODAzOSw1ODA0MCw1ODA0MSw1ODA0Miw1ODA0'@; put 'Myw1ODA0NCw1ODA0NSw1ODA0Niw1ODA0Nyw1ODA0OCw1ODA0OSw1ODA1MCw1ODA1MSw1ODA1Miw1ODA1Myw1ODA1NCw1ODA1NSw1ODA1Niw1ODA1Nyw1ODA1OCw1ODA1OSw1ODA2MCw1ODA2MSw1ODA2Miw1ODA2Myw1ODA2NCw1ODA2NSw1ODA2Niw1ODA2Nyw1ODA2OCw1ODA2OSw1ODA3MCw1'@; put 'ODA3MSw1ODA3Miw1ODA3Myw1ODA3NCw1ODA3NSw1ODA3Niw1ODA3Nyw1ODA3OCw1ODA3OSw1ODA4MCw1ODA4MSw1ODA4Miw1ODA4Myw1ODA4NCw1ODA4NSw1ODA4Niw1ODA4Nyw1ODA4OCw1ODA4OSw1ODA5MCw1ODA5MSw1ODA5Miw1ODA5Myw1ODA5NCw1ODA5NSw0MDM1NSw0MDM1Niw0MDM1'@; put 'Nyw0MDM1OCw0MDM1OSw0MDM2MCw0MDM2MSw0MDM2Miw0MDM2Myw0MDM2NCw0MDM2NSw0MDM2Niw0MDM2Nyw0MDM2OCw0MDM2OSw0MDM3MCw0MDM3MSw0MDM3Miw0MDM3Myw0MDM3NCw0MDM3NSw0MDM3Niw0MDM3Nyw0MDM3OCw0MDM3OSw0MDM4MCw0MDM4MSw0MDM4Miw0MDM4Myw0MDM4NCw0'@; put 'MDM4NSw0MDM4Niw0MDM4Nyw0MDM4OCw0MDM4OSw0MDM5MCw0MDM5MSw0MDM5Miw0MDM5Myw0MDM5NCw0MDM5NSw0MDM5Niw0MDM5Nyw0MDM5OCw0MDM5OSw0MDQwMCw0MDQwMSw0MDQwMiw0MDQwMyw0MDQwNCw0MDQwNSw0MDQwNiw0MDQwNyw0MDQwOCw0MDQwOSw0MDQxMCw0MDQxMSw0MDQx'@; put 'Miw0MDQxMyw0MDQxNCw0MDQxNSw0MDQxNiw0MDQxNyw0MDQxOCw0MDQxOSw0MDQyMCw0MDQyMSw0MDQyMiw0MDQyMyw0MDQyNCw0MDQyNSw0MDQyNiw0MDQyNyw0MDQyOCw0MDQyOSw0MDQzMCw0MDQzMSw0MDQzMiw0MDQzMyw0MDQzNCw0MDQzNSw0MDQzNiw0MDQzNyw0MDQzOCw0MDQzOSw0'@; put 'MDQ0MCw0MDQ0MSw0MDQ0Miw0MDQ0Myw0MDQ0NCw0MDQ0NSw0MDQ0Niw0MDQ0Nyw0MDQ0OCw0MDQ0OSw0MDQ1MCw1ODA5Niw1ODA5Nyw1ODA5OCw1ODA5OSw1ODEwMCw1ODEwMSw1ODEwMiw1ODEwMyw1ODEwNCw1ODEwNSw1ODEwNiw1ODEwNyw1ODEwOCw1ODEwOSw1ODExMCw1ODExMSw1ODEx'@; put 'Miw1ODExMyw1ODExNCw1ODExNSw1ODExNiw1ODExNyw1ODExOCw1ODExOSw1ODEyMCw1ODEyMSw1ODEyMiw1ODEyMyw1ODEyNCw1ODEyNSw1ODEyNiw1ODEyNyw1ODEyOCw1ODEyOSw1ODEzMCw1ODEzMSw1ODEzMiw1ODEzMyw1ODEzNCw1ODEzNSw1ODEzNiw1ODEzNyw1ODEzOCw1ODEzOSw1'@; put 'ODE0MCw1ODE0MSw1ODE0Miw1ODE0Myw1ODE0NCw1ODE0NSw1ODE0Niw1ODE0Nyw1ODE0OCw1ODE0OSw1ODE1MCw1ODE1MSw1ODE1Miw1ODE1Myw1ODE1NCw1ODE1NSw1ODE1Niw1ODE1Nyw1ODE1OCw1ODE1OSw1ODE2MCw1ODE2MSw1ODE2Miw1ODE2Myw1ODE2NCw1ODE2NSw1ODE2Niw1ODE2'@; put 'Nyw1ODE2OCw1ODE2OSw1ODE3MCw1ODE3MSw1ODE3Miw1ODE3Myw1ODE3NCw1ODE3NSw1ODE3Niw1ODE3Nyw1ODE3OCw1ODE3OSw1ODE4MCw1ODE4MSw1ODE4Miw1ODE4Myw1ODE4NCw1ODE4NSw1ODE4Niw1ODE4Nyw1ODE4OCw1ODE4OSw0MDQ1MSw0MDQ1Miw0MDQ1Myw0MDQ1NCw0MDQ1NSw0'@; put 'MDQ1Niw0MDQ1Nyw0MDQ1OCw0MDQ1OSw0MDQ2MCw0MDQ2MSw0MDQ2Miw0MDQ2Myw0MDQ2NCw0MDQ2NSw0MDQ2Niw0MDQ2Nyw0MDQ2OCw0MDQ2OSw0MDQ3MCw0MDQ3MSw0MDQ3Miw0MDQ3Myw0MDQ3NCw0MDQ3NSw0MDQ3Niw0MDQ3Nyw0MDQ3OCw0MDQ4NCw0MDQ4Nyw0MDQ5NCw0MDQ5Niw0MDUw'@; put 'MCw0MDUwNyw0MDUwOCw0MDUxMiw0MDUyNSw0MDUyOCw0MDUzMCw0MDUzMSw0MDUzMiw0MDUzNCw0MDUzNyw0MDU0MSw0MDU0Myw0MDU0NCw0MDU0NSw0MDU0Niw0MDU0OSw0MDU1OCw0MDU1OSw0MDU2Miw0MDU2NCw0MDU2NSw0MDU2Niw0MDU2Nyw0MDU2OCw0MDU2OSw0MDU3MCw0MDU3MSw0'@; put 'MDU3Miw0MDU3Myw0MDU3Niw0MDU3Nyw0MDU3OSw0MDU4MCw0MDU4MSw0MDU4Miw0MDU4NSw0MDU4Niw0MDU4OCw0MDU4OSw0MDU5MCw0MDU5MSw0MDU5Miw0MDU5Myw0MDU5Niw0MDU5Nyw0MDU5OCw0MDU5OSw0MDYwMCw0MDYwMSw0MDYwMiw0MDYwMyw0MDYwNCw0MDYwNiw0MDYwOCw0MDYw'@; put 'OSw0MDYxMCw0MDYxMSw0MDYxMiw0MDYxMyw0MDYxNSw0MDYxNiw0MDYxNyw0MDYxOCw1ODE5MCw1ODE5MSw1ODE5Miw1ODE5Myw1ODE5NCw1ODE5NSw1ODE5Niw1ODE5Nyw1ODE5OCw1ODE5OSw1ODIwMCw1ODIwMSw1ODIwMiw1ODIwMyw1ODIwNCw1ODIwNSw1ODIwNiw1ODIwNyw1ODIwOCw1'@; put 'ODIwOSw1ODIxMCw1ODIxMSw1ODIxMiw1ODIxMyw1ODIxNCw1ODIxNSw1ODIxNiw1ODIxNyw1ODIxOCw1ODIxOSw1ODIyMCw1ODIyMSw1ODIyMiw1ODIyMyw1ODIyNCw1ODIyNSw1ODIyNiw1ODIyNyw1ODIyOCw1ODIyOSw1ODIzMCw1ODIzMSw1ODIzMiw1ODIzMyw1ODIzNCw1ODIzNSw1ODIz'@; put 'Niw1ODIzNyw1ODIzOCw1ODIzOSw1ODI0MCw1ODI0MSw1ODI0Miw1ODI0Myw1ODI0NCw1ODI0NSw1ODI0Niw1ODI0Nyw1ODI0OCw1ODI0OSw1ODI1MCw1ODI1MSw1ODI1Miw1ODI1Myw1ODI1NCw1ODI1NSw1ODI1Niw1ODI1Nyw1ODI1OCw1ODI1OSw1ODI2MCw1ODI2MSw1ODI2Miw1ODI2Myw1'@; put 'ODI2NCw1ODI2NSw1ODI2Niw1ODI2Nyw1ODI2OCw1ODI2OSw1ODI3MCw1ODI3MSw1ODI3Miw1ODI3Myw1ODI3NCw1ODI3NSw1ODI3Niw1ODI3Nyw1ODI3OCw1ODI3OSw1ODI4MCw1ODI4MSw1ODI4Miw1ODI4Myw0MDYxOSw0MDYyMCw0MDYyMSw0MDYyMiw0MDYyMyw0MDYyNCw0MDYyNSw0MDYy'@; put 'Niw0MDYyNyw0MDYyOSw0MDYzMCw0MDYzMSw0MDYzMyw0MDYzNCw0MDYzNiw0MDYzOSw0MDY0MCw0MDY0MSw0MDY0Miw0MDY0Myw0MDY0NSw0MDY0Niw0MDY0Nyw0MDY0OCw0MDY1MCw0MDY1MSw0MDY1Miw0MDY1Niw0MDY1OCw0MDY1OSw0MDY2MSw0MDY2Miw0MDY2Myw0MDY2NSw0MDY2Niw0'@; put 'MDY3MCw0MDY3Myw0MDY3NSw0MDY3Niw0MDY3OCw0MDY4MCw0MDY4Myw0MDY4NCw0MDY4NSw0MDY4Niw0MDY4OCw0MDY4OSw0MDY5MCw0MDY5MSw0MDY5Miw0MDY5Myw0MDY5NCw0MDY5NSw0MDY5Niw0MDY5OCw0MDcwMSw0MDcwMyw0MDcwNCw0MDcwNSw0MDcwNiw0MDcwNyw0MDcwOCw0MDcw'@; put 'OSw0MDcxMCw0MDcxMSw0MDcxMiw0MDcxMyw0MDcxNCw0MDcxNiw0MDcxOSw0MDcyMSw0MDcyMiw0MDcyNCw0MDcyNSw0MDcyNiw0MDcyOCw0MDczMCw0MDczMSw0MDczMiw0MDczMyw0MDczNCw0MDczNSw0MDczNyw0MDczOSw0MDc0MCw0MDc0MSw0MDc0Miw0MDc0Myw0MDc0NCw0MDc0NSw0'@; put 'MDc0Niw0MDc0Nyw0MDc0OSw0MDc1MCw0MDc1Miw0MDc1Myw1ODI4NCw1ODI4NSw1ODI4Niw1ODI4Nyw1ODI4OCw1ODI4OSw1ODI5MCw1ODI5MSw1ODI5Miw1ODI5Myw1ODI5NCw1ODI5NSw1ODI5Niw1ODI5Nyw1ODI5OCw1ODI5OSw1ODMwMCw1ODMwMSw1ODMwMiw1ODMwMyw1ODMwNCw1ODMw'@; put 'NSw1ODMwNiw1ODMwNyw1ODMwOCw1ODMwOSw1ODMxMCw1ODMxMSw1ODMxMiw1ODMxMyw1ODMxNCw1ODMxNSw1ODMxNiw1ODMxNyw1ODMxOCw1ODMxOSw1ODMyMCw1ODMyMSw1ODMyMiw1ODMyMyw1ODMyNCw1ODMyNSw1ODMyNiw1ODMyNyw1ODMyOCw1ODMyOSw1ODMzMCw1ODMzMSw1ODMzMiw1'@; put 'ODMzMyw1ODMzNCw1ODMzNSw1ODMzNiw1ODMzNyw1ODMzOCw1ODMzOSw1ODM0MCw1ODM0MSw1ODM0Miw1ODM0Myw1ODM0NCw1ODM0NSw1ODM0Niw1ODM0Nyw1ODM0OCw1ODM0OSw1ODM1MCw1ODM1MSw1ODM1Miw1ODM1Myw1ODM1NCw1ODM1NSw1ODM1Niw1ODM1Nyw1ODM1OCw1ODM1OSw1ODM2'@; put 'MCw1ODM2MSw1ODM2Miw1ODM2Myw1ODM2NCw1ODM2NSw1ODM2Niw1ODM2Nyw1ODM2OCw1ODM2OSw1ODM3MCw1ODM3MSw1ODM3Miw1ODM3Myw1ODM3NCw1ODM3NSw1ODM3Niw1ODM3Nyw0MDc1NCw0MDc1NSw0MDc1Niw0MDc1Nyw0MDc1OCw0MDc2MCw0MDc2Miw0MDc2NCw0MDc2Nyw0MDc2OCw0'@; put 'MDc2OSw0MDc3MCw0MDc3MSw0MDc3Myw0MDc3NCw0MDc3NSw0MDc3Niw0MDc3Nyw0MDc3OCw0MDc3OSw0MDc4MCw0MDc4MSw0MDc4Miw0MDc4Myw0MDc4Niw0MDc4Nyw0MDc4OCw0MDc4OSw0MDc5MCw0MDc5MSw0MDc5Miw0MDc5Myw0MDc5NCw0MDc5NSw0MDc5Niw0MDc5Nyw0MDc5OCw0MDc5'@; put 'OSw0MDgwMCw0MDgwMSw0MDgwMiw0MDgwMyw0MDgwNCw0MDgwNSw0MDgwNiw0MDgwNyw0MDgwOCw0MDgwOSw0MDgxMCw0MDgxMSw0MDgxMiw0MDgxMyw0MDgxNCw0MDgxNSw0MDgxNiw0MDgxNyw0MDgxOCw0MDgxOSw0MDgyMCw0MDgyMSw0MDgyMiw0MDgyMyw0MDgyNCw0MDgyNSw0MDgyNiw0'@; put 'MDgyNyw0MDgyOCw0MDgyOSw0MDgzMCw0MDgzMyw0MDgzNCw0MDg0NSw0MDg0Niw0MDg0Nyw0MDg0OCw0MDg0OSw0MDg1MCw0MDg1MSw0MDg1Miw0MDg1Myw0MDg1NCw0MDg1NSw0MDg1Niw0MDg2MCw0MDg2MSw0MDg2Miw0MDg2NSw0MDg2Niw0MDg2Nyw0MDg2OCw0MDg2OSw2Mzc4OCw2Mzg2'@; put 'NSw2Mzg5Myw2Mzk3NSw2Mzk4NSw1ODM3OCw1ODM3OSw1ODM4MCw1ODM4MSw1ODM4Miw1ODM4Myw1ODM4NCw1ODM4NSw1ODM4Niw1ODM4Nyw1ODM4OCw1ODM4OSw1ODM5MCw1ODM5MSw1ODM5Miw1ODM5Myw1ODM5NCw1ODM5NSw1ODM5Niw1ODM5Nyw1ODM5OCw1ODM5OSw1ODQwMCw1ODQwMSw1'@; put 'ODQwMiw1ODQwMyw1ODQwNCw1ODQwNSw1ODQwNiw1ODQwNyw1ODQwOCw1ODQwOSw1ODQxMCw1ODQxMSw1ODQxMiw1ODQxMyw1ODQxNCw1ODQxNSw1ODQxNiw1ODQxNyw1ODQxOCw1ODQxOSw1ODQyMCw1ODQyMSw1ODQyMiw1ODQyMyw1ODQyNCw1ODQyNSw1ODQyNiw1ODQyNyw1ODQyOCw1ODQy'@; put 'OSw1ODQzMCw1ODQzMSw1ODQzMiw1ODQzMyw1ODQzNCw1ODQzNSw1ODQzNiw1ODQzNyw1ODQzOCw1ODQzOSw1ODQ0MCw1ODQ0MSw1ODQ0Miw1ODQ0Myw1ODQ0NCw1ODQ0NSw1ODQ0Niw1ODQ0Nyw1ODQ0OCw1ODQ0OSw1ODQ1MCw1ODQ1MSw1ODQ1Miw1ODQ1Myw1ODQ1NCw1ODQ1NSw1ODQ1Niw1'@; put 'ODQ1Nyw1ODQ1OCw1ODQ1OSw1ODQ2MCw1ODQ2MSw1ODQ2Miw1ODQ2Myw1ODQ2NCw1ODQ2NSw1ODQ2Niw1ODQ2Nyw1ODQ2OCw1ODQ2OSw1ODQ3MCw1ODQ3MSw2NDAxMiw2NDAxMyw2NDAxNCw2NDAxNSw2NDAxNyw2NDAxOSw2NDAyMCw2NDAyNCw2NDAzMSw2NDAzMiw2NDAzMyw2NDAzNSw2NDAz'@; put 'Niw2NDAzOSw2NDA0MCw2NDA0MSwxMTkwNSw1OTQxNCw1OTQxNSw1OTQxNiwxMTkwOCwxMzQyNywxMzM4MywxMTkxMiwxMTkxNSw1OTQyMiwxMzcyNiwxMzg1MCwxMzgzOCwxMTkxNiwxMTkyNywxNDcwMiwxNDYxNiw1OTQzMCwxNDc5OSwxNDgxNSwxNDk2MywxNDgwMCw1OTQzNSw1OTQzNiwx'@; put 'NTE4MiwxNTQ3MCwxNTU4NCwxMTk0Myw1OTQ0MSw1OTQ0MiwxMTk0NiwxNjQ3MCwxNjczNSwxMTk1MCwxNzIwNywxMTk1NSwxMTk1OCwxMTk1OSw1OTQ1MSwxNzMyOSwxNzMyNCwxMTk2MywxNzM3MywxNzYyMiwxODAxNywxNzk5Niw1OTQ1OSwxODIxMSwxODIxNywxODMwMCwxODMxNywxMTk3'@; put 'OCwxODc1OSwxODgxMCwxODgxMywxODgxOCwxODgxOSwxODgyMSwxODgyMiwxODg0NywxODg0MywxODg3MSwxODg3MCw1OTQ3Niw1OTQ3NywxOTYxOSwxOTYxNSwxOTYxNiwxOTYxNywxOTU3NSwxOTYxOCwxOTczMSwxOTczMiwxOTczMywxOTczNCwxOTczNSwxOTczNiwxOTczNywxOTg4Niw1'@; put 'OTQ5Miw1ODQ3Miw1ODQ3Myw1ODQ3NCw1ODQ3NSw1ODQ3Niw1ODQ3Nyw1ODQ3OCw1ODQ3OSw1ODQ4MCw1ODQ4MSw1ODQ4Miw1ODQ4Myw1ODQ4NCw1ODQ4NSw1ODQ4Niw1ODQ4Nyw1ODQ4OCw1ODQ4OSw1ODQ5MCw1ODQ5MSw1ODQ5Miw1ODQ5Myw1ODQ5NCw1ODQ5NSw1ODQ5Niw1ODQ5Nyw1ODQ5'@; put 'OCw1ODQ5OSw1ODUwMCw1ODUwMSw1ODUwMiw1ODUwMyw1ODUwNCw1ODUwNSw1ODUwNiw1ODUwNyw1ODUwOCw1ODUwOSw1ODUxMCw1ODUxMSw1ODUxMiw1ODUxMyw1ODUxNCw1ODUxNSw1ODUxNiw1ODUxNyw1ODUxOCw1ODUxOSw1ODUyMCw1ODUyMSw1ODUyMiw1ODUyMyw1ODUyNCw1ODUyNSw1'@; put 'ODUyNiw1ODUyNyw1ODUyOCw1ODUyOSw1ODUzMCw1ODUzMSw1ODUzMiw1ODUzMyw1ODUzNCw1ODUzNSw1ODUzNiw1ODUzNyw1ODUzOCw1ODUzOSw1ODU0MCw1ODU0MSw1ODU0Miw1ODU0Myw1ODU0NCw1ODU0NSw1ODU0Niw1ODU0Nyw1ODU0OCw1ODU0OSw1ODU1MCw1ODU1MSw1ODU1Miw1ODU1'@; put 'Myw1ODU1NCw1ODU1NSw1ODU1Niw1ODU1Nyw1ODU1OCw1ODU1OSw1ODU2MCw1ODU2MSw1ODU2Miw1ODU2Myw1ODU2NCw1ODU2NV0sImdiMTgwMzAtcmFuZ2VzIjpbWzAsMTI4XSxbMzYsMTY1XSxbMzgsMTY5XSxbNDUsMTc4XSxbNTAsMTg0XSxbODEsMjE2XSxbODksMjI2XSxbOTUsMjM1XSxb'@; put 'OTYsMjM4XSxbMTAwLDI0NF0sWzEwMywyNDhdLFsxMDQsMjUxXSxbMTA1LDI1M10sWzEwOSwyNThdLFsxMjYsMjc2XSxbMTMzLDI4NF0sWzE0OCwzMDBdLFsxNzIsMzI1XSxbMTc1LDMyOV0sWzE3OSwzMzRdLFsyMDgsMzY0XSxbMzA2LDQ2M10sWzMwNyw0NjVdLFszMDgsNDY3XSxbMzA5LDQ2'@; put 'OV0sWzMxMCw0NzFdLFszMTEsNDczXSxbMzEyLDQ3NV0sWzMxMyw0NzddLFszNDEsNTA2XSxbNDI4LDU5NF0sWzQ0Myw2MTBdLFs1NDQsNzEyXSxbNTQ1LDcxNl0sWzU1OCw3MzBdLFs3NDEsOTMwXSxbNzQyLDkzOF0sWzc0OSw5NjJdLFs3NTAsOTcwXSxbODA1LDEwMjZdLFs4MTksMTEwNF0s'@; put 'WzgyMCwxMTA2XSxbNzkyMiw4MjA5XSxbNzkyNCw4MjE1XSxbNzkyNSw4MjE4XSxbNzkyNyw4MjIyXSxbNzkzNCw4MjMxXSxbNzk0Myw4MjQxXSxbNzk0NCw4MjQ0XSxbNzk0NSw4MjQ2XSxbNzk1MCw4MjUyXSxbODA2Miw4MzY1XSxbODE0OCw4NDUyXSxbODE0OSw4NDU0XSxbODE1Miw4NDU4'@; put 'XSxbODE2NCw4NDcxXSxbODE3NCw4NDgyXSxbODIzNiw4NTU2XSxbODI0MCw4NTcwXSxbODI2Miw4NTk2XSxbODI2NCw4NjAyXSxbODM3NCw4NzEzXSxbODM4MCw4NzIwXSxbODM4MSw4NzIyXSxbODM4NCw4NzI2XSxbODM4OCw4NzMxXSxbODM5MCw4NzM3XSxbODM5Miw4NzQwXSxbODM5Myw4'@; put 'NzQyXSxbODM5NCw4NzQ4XSxbODM5Niw4NzUxXSxbODQwMSw4NzYwXSxbODQwNiw4NzY2XSxbODQxNiw4Nzc3XSxbODQxOSw4NzgxXSxbODQyNCw4Nzg3XSxbODQzNyw4ODAyXSxbODQzOSw4ODA4XSxbODQ0NSw4ODE2XSxbODQ4Miw4ODU0XSxbODQ4NSw4ODU4XSxbODQ5Niw4ODcwXSxbODUy'@; put 'MSw4ODk2XSxbODYwMyw4OTc5XSxbODkzNiw5MzIyXSxbODk0Niw5MzcyXSxbOTA0Niw5NTQ4XSxbOTA1MCw5NTg4XSxbOTA2Myw5NjE2XSxbOTA2Niw5NjIyXSxbOTA3Niw5NjM0XSxbOTA5Miw5NjUyXSxbOTEwMCw5NjYyXSxbOTEwOCw5NjcyXSxbOTExMSw5Njc2XSxbOTExMyw5NjgwXSxb'@; put 'OTEzMSw5NzAyXSxbOTE2Miw5NzM1XSxbOTE2NCw5NzM4XSxbOTIxOCw5NzkzXSxbOTIxOSw5Nzk1XSxbMTEzMjksMTE5MDZdLFsxMTMzMSwxMTkwOV0sWzExMzM0LDExOTEzXSxbMTEzMzYsMTE5MTddLFsxMTM0NiwxMTkyOF0sWzExMzYxLDExOTQ0XSxbMTEzNjMsMTE5NDddLFsxMTM2Niwx'@; put 'MTk1MV0sWzExMzcwLDExOTU2XSxbMTEzNzIsMTE5NjBdLFsxMTM3NSwxMTk2NF0sWzExMzg5LDExOTc5XSxbMTE2ODIsMTIyODRdLFsxMTY4NiwxMjI5Ml0sWzExNjg3LDEyMzEyXSxbMTE2OTIsMTIzMTldLFsxMTY5NCwxMjMzMF0sWzExNzE0LDEyMzUxXSxbMTE3MTYsMTI0MzZdLFsxMTcy'@; put 'MywxMjQ0N10sWzExNzI1LDEyNTM1XSxbMTE3MzAsMTI1NDNdLFsxMTczNiwxMjU4Nl0sWzExOTgyLDEyODQyXSxbMTE5ODksMTI4NTBdLFsxMjEwMiwxMjk2NF0sWzEyMzM2LDEzMjAwXSxbMTIzNDgsMTMyMTVdLFsxMjM1MCwxMzIxOF0sWzEyMzg0LDEzMjUzXSxbMTIzOTMsMTMyNjNdLFsx'@; put 'MjM5NSwxMzI2N10sWzEyMzk3LDEzMjcwXSxbMTI1MTAsMTMzODRdLFsxMjU1MywxMzQyOF0sWzEyODUxLDEzNzI3XSxbMTI5NjIsMTM4MzldLFsxMjk3MywxMzg1MV0sWzEzNzM4LDE0NjE3XSxbMTM4MjMsMTQ3MDNdLFsxMzkxOSwxNDgwMV0sWzEzOTMzLDE0ODE2XSxbMTQwODAsMTQ5NjRd'@; put 'LFsxNDI5OCwxNTE4M10sWzE0NTg1LDE1NDcxXSxbMTQ2OTgsMTU1ODVdLFsxNTU4MywxNjQ3MV0sWzE1ODQ3LDE2NzM2XSxbMTYzMTgsMTcyMDhdLFsxNjQzNCwxNzMyNV0sWzE2NDM4LDE3MzMwXSxbMTY0ODEsMTczNzRdLFsxNjcyOSwxNzYyM10sWzE3MTAyLDE3OTk3XSxbMTcxMjIsMTgw'@; put 'MThdLFsxNzMxNSwxODIxMl0sWzE3MzIwLDE4MjE4XSxbMTc0MDIsMTgzMDFdLFsxNzQxOCwxODMxOF0sWzE3ODU5LDE4NzYwXSxbMTc5MDksMTg4MTFdLFsxNzkxMSwxODgxNF0sWzE3OTE1LDE4ODIwXSxbMTc5MTYsMTg4MjNdLFsxNzkzNiwxODg0NF0sWzE3OTM5LDE4ODQ4XSxbMTc5NjEs'@; put 'MTg4NzJdLFsxODY2NCwxOTU3Nl0sWzE4NzAzLDE5NjIwXSxbMTg4MTQsMTk3MzhdLFsxODk2MiwxOTg4N10sWzE5MDQzLDQwODcwXSxbMzM0NjksNTkyNDRdLFszMzQ3MCw1OTMzNl0sWzMzNDcxLDU5MzY3XSxbMzM0ODQsNTk0MTNdLFszMzQ4NSw1OTQxN10sWzMzNDkwLDU5NDIzXSxbMzM0'@; put 'OTcsNTk0MzFdLFszMzUwMSw1OTQzN10sWzMzNTA1LDU5NDQzXSxbMzM1MTMsNTk0NTJdLFszMzUyMCw1OTQ2MF0sWzMzNTM2LDU5NDc4XSxbMzM1NTAsNTk0OTNdLFszNzg0NSw2Mzc4OV0sWzM3OTIxLDYzODY2XSxbMzc5NDgsNjM4OTRdLFszODAyOSw2Mzk3Nl0sWzM4MDM4LDYzOTg2XSxb'@; put 'MzgwNjQsNjQwMTZdLFszODA2NSw2NDAxOF0sWzM4MDY2LDY0MDIxXSxbMzgwNjksNjQwMjVdLFszODA3NSw2NDAzNF0sWzM4MDc2LDY0MDM3XSxbMzgwNzgsNjQwNDJdLFszOTEwOCw2NTA3NF0sWzM5MTA5LDY1MDkzXSxbMzkxMTMsNjUxMDddLFszOTExNCw2NTExMl0sWzM5MTE1LDY1MTI3'@; put 'XSxbMzkxMTYsNjUxMzJdLFszOTI2NSw2NTM3NV0sWzM5Mzk0LDY1NTEwXSxbMTg5ZTMsNjU1MzZdXSxqaXMwMjA4OlsxMjI4OCwxMjI4OSwxMjI5MCw2NTI5Miw2NTI5NCwxMjUzOSw2NTMwNiw2NTMwNyw2NTMxMSw2NTI4MSwxMjQ0MywxMjQ0NCwxODAsNjUzNDQsMTY4LDY1MzQyLDY1NTA3'@; put 'LDY1MzQzLDEyNTQxLDEyNTQyLDEyNDQ1LDEyNDQ2LDEyMjkxLDIwMTg5LDEyMjkzLDEyMjk0LDEyMjk1LDEyNTQwLDgyMTMsODIwOCw2NTI5NSw2NTM0MCw2NTM3NCw4NzQxLDY1MzcyLDgyMzAsODIyOSw4MjE2LDgyMTcsODIyMCw4MjIxLDY1Mjg4LDY1Mjg5LDEyMzA4LDEyMzA5LDY1MzM5'@; put 'LDY1MzQxLDY1MzcxLDY1MzczLDEyMjk2LDEyMjk3LDEyMjk4LDEyMjk5LDEyMzAwLDEyMzAxLDEyMzAyLDEyMzAzLDEyMzA0LDEyMzA1LDY1MjkxLDY1MjkzLDE3NywyMTUsMjQ3LDY1MzA5LDg4MDAsNjUzMDgsNjUzMTAsODgwNiw4ODA3LDg3MzQsODc1Niw5Nzk0LDk3OTIsMTc2LDgyNDIs'@; put 'ODI0Myw4NDUxLDY1NTA5LDY1Mjg0LDY1NTA0LDY1NTA1LDY1Mjg1LDY1MjgzLDY1Mjg2LDY1MjkwLDY1MzEyLDE2Nyw5NzM0LDk3MzMsOTY3NSw5Njc5LDk2NzgsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjUxLDk2NTAsOTY2MSw5NjYwLDgyNTEsMTIzMDYsODU5NCw4NTkyLDg1OTMsODU5NSwx'@; put 'MjMwNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODcxMiw4NzE1LDg4MzgsODgzOSw4ODM0LDg4MzUsODc0Niw4NzQ1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NzQzLDg3NDQsNjU1MDYsODY1OCw4NjYw'@; put 'LDg3MDQsODcwNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODczNiw4ODY5LDg5NzgsODcwNiw4NzExLDg4MDEsODc4Niw4ODEwLDg4MTEsODczMCw4NzY1LDg3MzMsODc1Nyw4NzQ3LDg3NDgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCw4NDkxLDgyNDAsOTgzOSw5ODM3LDk4MzQsODIyNCw4MjI1LDE4MixudWxsLG51bGwsbnVsbCxudWxsLDk3MTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjUyOTYsNjUyOTcsNjUy'@; put 'OTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NTMxMyw2NTMxNCw2NTMxNSw2NTMxNiw2NTMxNyw2NTMxOCw2NTMxOSw2NTMyMCw2NTMyMSw2NTMyMiw2NTMyMyw2NTMyNCw2NTMyNSw2NTMyNiw2'@; put 'NTMyNyw2NTMyOCw2NTMyOSw2NTMzMCw2NTMzMSw2NTMzMiw2NTMzMyw2NTMzNCw2NTMzNSw2NTMzNiw2NTMzNyw2NTMzOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NTM0NSw2NTM0Niw2NTM0Nyw2NTM0OCw2NTM0OSw2NTM1MCw2NTM1MSw2NTM1Miw2NTM1Myw2NTM1NCw2NTM1'@; put 'NSw2NTM1Niw2NTM1Nyw2NTM1OCw2NTM1OSw2NTM2MCw2NTM2MSw2NTM2Miw2NTM2Myw2NTM2NCw2NTM2NSw2NTM2Niw2NTM2Nyw2NTM2OCw2NTM2OSw2NTM3MCxudWxsLG51bGwsbnVsbCxudWxsLDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEyMzU5LDEyMzYwLDEyMzYx'@; put 'LDEyMzYyLDEyMzYzLDEyMzY0LDEyMzY1LDEyMzY2LDEyMzY3LDEyMzY4LDEyMzY5LDEyMzcwLDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1LDEyMzg2LDEyMzg3LDEyMzg4LDEy'@; put 'Mzg5LDEyMzkwLDEyMzkxLDEyMzkyLDEyMzkzLDEyMzk0LDEyMzk1LDEyMzk2LDEyMzk3LDEyMzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEyNDEzLDEyNDE0LDEyNDE1LDEyNDE2'@; put 'LDEyNDE3LDEyNDE4LDEyNDE5LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDI1LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCwxMjQ0OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwxMjQ2MCwxMjQ2MSwxMjQ2MiwxMjQ2MywxMjQ2NCwxMjQ2NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3'@; put 'NSwxMjQ3NiwxMjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwxMjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4NywxMjQ4OCwxMjQ4OSwxMjQ5MCwxMjQ5MSwxMjQ5MiwxMjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwx'@; put 'MjUwMywxMjUwNCwxMjUwNSwxMjUwNiwxMjUwNywxMjUwOCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwxMjUxNSwxMjUxNiwxMjUxNywxMjUxOCwxMjUxOSwxMjUyMCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUz'@; put 'MCwxMjUzMSwxMjUzMiwxMjUzMywxMjUzNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDQwLDEw'@; put 'NDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEw'@; put 'OTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Niw5NDkyLDk1'@; put 'MDAsOTUxNiw5NTA4LDk1MjQsOTUzMiw5NDczLDk0NzUsOTQ4Nyw5NDkxLDk0OTksOTQ5NSw5NTA3LDk1MjMsOTUxNSw5NTMxLDk1NDcsOTUwNCw5NTE5LDk1MTIsOTUyNyw5NTM1LDk1MDEsOTUyMCw5NTA5LDk1MjgsOTUzOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDkzMjIsOTMyMyw5MzI0LDkzMjUsOTMyNiw5MzI3LDkzMjgsOTMyOSw5MzMwLDkzMzEsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1MyxudWxsLDEz'@; put 'MTI5LDEzMDc2LDEzMDkwLDEzMTMzLDEzMDgwLDEzMDk1LDEzMDU5LDEzMTEwLDEzMTM3LDEzMTQzLDEzMDY5LDEzMDk0LDEzMDkxLDEzMDk5LDEzMTMwLDEzMTE1LDEzMjEyLDEzMjEzLDEzMjE0LDEzMTk4LDEzMTk5LDEzMjUyLDEzMjE3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCwxMzE3OSwxMjMxNywxMjMxOSw4NDcwLDEzMjYxLDg0ODEsMTI5NjQsMTI5NjUsMTI5NjYsMTI5NjcsMTI5NjgsMTI4NDksMTI4NTAsMTI4NTcsMTMxODIsMTMxODEsMTMxODAsODc4Niw4ODAxLDg3NDcsODc1MCw4NzIxLDg3MzAsODg2OSw4NzM2LDg3MzUsODg5NSw4NzU3'@; put 'LDg3NDUsODc0NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIwMTI0LDIxNzgyLDIzMDQzLDM4NDYzLDIxNjk2'@; put 'LDI0ODU5LDI1Mzg0LDIzMDMwLDM2ODk4LDMzOTA5LDMzNTY0LDMxMzEyLDI0NzQ2LDI1NTY5LDI4MTk3LDI2MDkzLDMzODk0LDMzNDQ2LDM5OTI1LDI2NzcxLDIyMzExLDI2MDE3LDI1MjAxLDIzNDUxLDIyOTkyLDM0NDI3LDM5MTU2LDMyMDk4LDMyMTkwLDM5ODIyLDI1MTEwLDMxOTAzLDM0'@; put 'OTk5LDIzNDMzLDI0MjQ1LDI1MzUzLDI2MjYzLDI2Njk2LDM4MzQzLDM4Nzk3LDI2NDQ3LDIwMTk3LDIwMjM0LDIwMzAxLDIwMzgxLDIwNTUzLDIyMjU4LDIyODM5LDIyOTk2LDIzMDQxLDIzNTYxLDI0Nzk5LDI0ODQ3LDI0OTQ0LDI2MTMxLDI2ODg1LDI4ODU4LDMwMDMxLDMwMDY0LDMxMjI3'@; put 'LDMyMTczLDMyMjM5LDMyOTYzLDMzODA2LDM0OTE1LDM1NTg2LDM2OTQ5LDM2OTg2LDIxMzA3LDIwMTE3LDIwMTMzLDIyNDk1LDMyOTQ2LDM3MDU3LDMwOTU5LDE5OTY4LDIyNzY5LDI4MzIyLDM2OTIwLDMxMjgyLDMzNTc2LDMzNDE5LDM5OTgzLDIwODAxLDIxMzYwLDIxNjkzLDIxNzI5LDIy'@; put 'MjQwLDIzMDM1LDI0MzQxLDM5MTU0LDI4MTM5LDMyOTk2LDM0MDkzLDM4NDk4LDM4NTEyLDM4NTYwLDM4OTA3LDIxNTE1LDIxNDkxLDIzNDMxLDI4ODc5LDMyNzAxLDM2ODAyLDM4NjMyLDIxMzU5LDQwMjg0LDMxNDE4LDE5OTg1LDMwODY3LDMzMjc2LDI4MTk4LDIyMDQwLDIxNzY0LDI3NDIx'@; put 'LDM0MDc0LDM5OTk1LDIzMDEzLDIxNDE3LDI4MDA2LDI5OTE2LDM4Mjg3LDIyMDgyLDIwMTEzLDM2OTM5LDM4NjQyLDMzNjE1LDM5MTgwLDIxNDczLDIxOTQyLDIzMzQ0LDI0NDMzLDI2MTQ0LDI2MzU1LDI2NjI4LDI3NzA0LDI3ODkxLDI3OTQ1LDI5Nzg3LDMwNDA4LDMxMzEwLDM4OTY0LDMz'@; put 'NTIxLDM0OTA3LDM1NDI0LDM3NjEzLDI4MDgyLDMwMTIzLDMwNDEwLDM5MzY1LDI0NzQyLDM1NTg1LDM2MjM0LDM4MzIyLDI3MDIyLDIxNDIxLDIwODcwLDIyMjkwLDIyNTc2LDIyODUyLDIzNDc2LDI0MzEwLDI0NjE2LDI1NTEzLDI1NTg4LDI3ODM5LDI4NDM2LDI4ODE0LDI4OTQ4LDI5MDE3'@; put 'LDI5MTQxLDI5NTAzLDMyMjU3LDMzMzk4LDMzNDg5LDM0MTk5LDM2OTYwLDM3NDY3LDQwMjE5LDIyNjMzLDI2MDQ0LDI3NzM4LDI5OTg5LDIwOTg1LDIyODMwLDIyODg1LDI0NDQ4LDI0NTQwLDI1Mjc2LDI2MTA2LDI3MTc4LDI3NDMxLDI3NTcyLDI5NTc5LDMyNzA1LDM1MTU4LDQwMjM2LDQw'@; put 'MjA2LDQwNjQ0LDIzNzEzLDI3Nzk4LDMzNjU5LDIwNzQwLDIzNjI3LDI1MDE0LDMzMjIyLDI2NzQyLDI5MjgxLDIwMDU3LDIwNDc0LDIxMzY4LDI0NjgxLDI4MjAxLDMxMzExLDM4ODk5LDE5OTc5LDIxMjcwLDIwMjA2LDIwMzA5LDIwMjg1LDIwMzg1LDIwMzM5LDIxMTUyLDIxNDg3LDIyMDI1'@; put 'LDIyNzk5LDIzMjMzLDIzNDc4LDIzNTIxLDMxMTg1LDI2MjQ3LDI2NTI0LDI2NTUwLDI3NDY4LDI3ODI3LDI4Nzc5LDI5NjM0LDMxMTE3LDMxMTY2LDMxMjkyLDMxNjIzLDMzNDU3LDMzNDk5LDMzNTQwLDMzNjU1LDMzNzc1LDMzNzQ3LDM0NjYyLDM1NTA2LDIyMDU3LDM2MDA4LDM2ODM4LDM2'@; put 'OTQyLDM4Njg2LDM0NDQyLDIwNDIwLDIzNzg0LDI1MTA1LDI5MjczLDMwMDExLDMzMjUzLDMzNDY5LDM0NTU4LDM2MDMyLDM4NTk3LDM5MTg3LDM5MzgxLDIwMTcxLDIwMjUwLDM1Mjk5LDIyMjM4LDIyNjAyLDIyNzMwLDI0MzE1LDI0NTU1LDI0NjE4LDI0NzI0LDI0Njc0LDI1MDQwLDI1MTA2'@; put 'LDI1Mjk2LDI1OTEzLDM5NzQ1LDI2MjE0LDI2ODAwLDI4MDIzLDI4Nzg0LDMwMDI4LDMwMzQyLDMyMTE3LDMzNDQ1LDM0ODA5LDM4MjgzLDM4NTQyLDM1OTk3LDIwOTc3LDIxMTgyLDIyODA2LDIxNjgzLDIzNDc1LDIzODMwLDI0OTM2LDI3MDEwLDI4MDc5LDMwODYxLDMzOTk1LDM0OTAzLDM1'@; put 'NDQyLDM3Nzk5LDM5NjA4LDI4MDEyLDM5MzM2LDM0NTIxLDIyNDM1LDI2NjIzLDM0NTEwLDM3MzkwLDIxMTIzLDIyMTUxLDIxNTA4LDI0Mjc1LDI1MzEzLDI1Nzg1LDI2Njg0LDI2NjgwLDI3NTc5LDI5NTU0LDMwOTA2LDMxMzM5LDM1MjI2LDM1MjgyLDM2MjAzLDM2NjExLDM3MTAxLDM4MzA3'@; put 'LDM4NTQ4LDM4NzYxLDIzMzk4LDIzNzMxLDI3MDA1LDM4OTg5LDM4OTkwLDI1NDk5LDMxNTIwLDI3MTc5LDI3MjYzLDI2ODA2LDM5OTQ5LDI4NTExLDIxMTA2LDIxOTE3LDI0Njg4LDI1MzI0LDI3OTYzLDI4MTY3LDI4MzY5LDMzODgzLDM1MDg4LDM2Njc2LDE5OTg4LDM5OTkzLDIxNDk0LDI2'@; put 'OTA3LDI3MTk0LDM4Nzg4LDI2NjY2LDIwODI4LDMxNDI3LDMzOTcwLDM3MzQwLDM3NzcyLDIyMTA3LDQwMjMyLDI2NjU4LDMzNTQxLDMzODQxLDMxOTA5LDIxZTMsMzM0NzcsMjk5MjYsMjAwOTQsMjAzNTUsMjA4OTYsMjM1MDYsMjEwMDIsMjEyMDgsMjEyMjMsMjQwNTksMjE5MTQsMjI1NzAs'@; put 'MjMwMTQsMjM0MzYsMjM0NDgsMjM1MTUsMjQxNzgsMjQxODUsMjQ3MzksMjQ4NjMsMjQ5MzEsMjUwMjIsMjU1NjMsMjU5NTQsMjY1NzcsMjY3MDcsMjY4NzQsMjc0NTQsMjc0NzUsMjc3MzUsMjg0NTAsMjg1NjcsMjg0ODUsMjk4NzIsMjk5NzYsMzA0MzUsMzA0NzUsMzE0ODcsMzE2NDksMzE3'@; put 'NzcsMzIyMzMsMzI1NjYsMzI3NTIsMzI5MjUsMzMzODIsMzM2OTQsMzUyNTEsMzU1MzIsMzYwMTEsMzY5OTYsMzc5NjksMzgyOTEsMzgyODksMzgzMDYsMzg1MDEsMzg4NjcsMzkyMDgsMzMzMDQsMjAwMjQsMjE1NDcsMjM3MzYsMjQwMTIsMjk2MDksMzAyODQsMzA1MjQsMjM3MjEsMzI3NDcs'@; put 'MzYxMDcsMzg1OTMsMzg5MjksMzg5OTYsMzllMywyMDIyNSwyMDIzOCwyMTM2MSwyMTkxNiwyMjEyMCwyMjUyMiwyMjg1NSwyMzMwNSwyMzQ5MiwyMzY5NiwyNDA3NiwyNDE5MCwyNDUyNCwyNTU4MiwyNjQyNiwyNjA3MSwyNjA4MiwyNjM5OSwyNjgyNywyNjgyMCwyNzIzMSwyNDExMiwyNzU4'@; put 'OSwyNzY3MSwyNzc3MywzMDA3OSwzMTA0OCwyMzM5NSwzMTIzMiwzMmUzLDI0NTA5LDM1MjE1LDM1MzUyLDM2MDIwLDM2MjE1LDM2NTU2LDM2NjM3LDM5MTM4LDM5NDM4LDM5NzQwLDIwMDk2LDIwNjA1LDIwNzM2LDIyOTMxLDIzNDUyLDI1MTM1LDI1MjE2LDI1ODM2LDI3NDUwLDI5MzQ0LDMw'@; put 'MDk3LDMxMDQ3LDMyNjgxLDM0ODExLDM1NTE2LDM1Njk2LDI1NTE2LDMzNzM4LDM4ODE2LDIxNTEzLDIxNTA3LDIxOTMxLDI2NzA4LDI3MjI0LDM1NDQwLDMwNzU5LDI2NDg1LDQwNjUzLDIxMzY0LDIzNDU4LDMzMDUwLDM0Mzg0LDM2ODcwLDE5OTkyLDIwMDM3LDIwMTY3LDIwMjQxLDIxNDUw'@; put 'LDIxNTYwLDIzNDcwLDI0MzM5LDI0NjEzLDI1OTM3LDI2NDI5LDI3NzE0LDI3NzYyLDI3ODc1LDI4NzkyLDI5Njk5LDMxMzUwLDMxNDA2LDMxNDk2LDMyMDI2LDMxOTk4LDMyMTAyLDI2MDg3LDI5Mjc1LDIxNDM1LDIzNjIxLDI0MDQwLDI1Mjk4LDI1MzEyLDI1MzY5LDI4MTkyLDM0Mzk0LDM1'@; put 'Mzc3LDM2MzE3LDM3NjI0LDI4NDE3LDMxMTQyLDM5NzcwLDIwMTM2LDIwMTM5LDIwMTQwLDIwMzc5LDIwMzg0LDIwNjg5LDIwODA3LDMxNDc4LDIwODQ5LDIwOTgyLDIxMzMyLDIxMjgxLDIxMzc1LDIxNDgzLDIxOTMyLDIyNjU5LDIzNzc3LDI0Mzc1LDI0Mzk0LDI0NjIzLDI0NjU2LDI0Njg1'@; put 'LDI1Mzc1LDI1OTQ1LDI3MjExLDI3ODQxLDI5Mzc4LDI5NDIxLDMwNzAzLDMzMDE2LDMzMDI5LDMzMjg4LDM0MTI2LDM3MTExLDM3ODU3LDM4OTExLDM5MjU1LDM5NTE0LDIwMjA4LDIwOTU3LDIzNTk3LDI2MjQxLDI2OTg5LDIzNjE2LDI2MzU0LDI2OTk3LDI5NTc3LDI2NzA0LDMxODczLDIw'@; put 'Njc3LDIxMjIwLDIyMzQzLDI0MDYyLDM3NjcwLDI2MDIwLDI3NDI3LDI3NDUzLDI5NzQ4LDMxMTA1LDMxMTY1LDMxNTYzLDMyMjAyLDMzNDY1LDMzNzQwLDM0OTQzLDM1MTY3LDM1NjQxLDM2ODE3LDM3MzI5LDIxNTM1LDM3NTA0LDIwMDYxLDIwNTM0LDIxNDc3LDIxMzA2LDI5Mzk5LDI5NTkw'@; put 'LDMwNjk3LDMzNTEwLDM2NTI3LDM5MzY2LDM5MzY4LDM5Mzc4LDIwODU1LDI0ODU4LDM0Mzk4LDIxOTM2LDMxMzU0LDIwNTk4LDIzNTA3LDM2OTM1LDM4NTMzLDIwMDE4LDI3MzU1LDM3MzUxLDIzNjMzLDIzNjI0LDI1NDk2LDMxMzkxLDI3Nzk1LDM4NzcyLDM2NzA1LDMxNDAyLDI5MDY2LDM4'@; put 'NTM2LDMxODc0LDI2NjQ3LDMyMzY4LDI2NzA1LDM3NzQwLDIxMjM0LDIxNTMxLDM0MjE5LDM1MzQ3LDMyNjc2LDM2NTU3LDM3MDg5LDIxMzUwLDM0OTUyLDMxMDQxLDIwNDE4LDIwNjcwLDIxMDA5LDIwODA0LDIxODQzLDIyMzE3LDI5Njc0LDIyNDExLDIyODY1LDI0NDE4LDI0NDUyLDI0Njkz'@; put 'LDI0OTUwLDI0OTM1LDI1MDAxLDI1NTIyLDI1NjU4LDI1OTY0LDI2MjIzLDI2NjkwLDI4MTc5LDMwMDU0LDMxMjkzLDMxOTk1LDMyMDc2LDMyMTUzLDMyMzMxLDMyNjE5LDMzNTUwLDMzNjEwLDM0NTA5LDM1MzM2LDM1NDI3LDM1Njg2LDM2NjA1LDM4OTM4LDQwMzM1LDMzNDY0LDM2ODE0LDM5'@; put 'OTEyLDIxMTI3LDI1MTE5LDI1NzMxLDI4NjA4LDM4NTUzLDI2Njg5LDIwNjI1LDI3NDI0LDI3NzcwLDI4NTAwLDMxMzQ4LDMyMDgwLDM0ODgwLDM1MzYzLDI2Mzc2LDIwMjE0LDIwNTM3LDIwNTE4LDIwNTgxLDIwODYwLDIxMDQ4LDIxMDkxLDIxOTI3LDIyMjg3LDIyNTMzLDIzMjQ0LDI0MzE0'@; put 'LDI1MDEwLDI1MDgwLDI1MzMxLDI1NDU4LDI2OTA4LDI3MTc3LDI5MzA5LDI5MzU2LDI5NDg2LDMwNzQwLDMwODMxLDMyMTIxLDMwNDc2LDMyOTM3LDM1MjExLDM1NjA5LDM2MDY2LDM2NTYyLDM2OTYzLDM3NzQ5LDM4NTIyLDM4OTk3LDM5NDQzLDQwNTY4LDIwODAzLDIxNDA3LDIxNDI3LDI0'@; put 'MTg3LDI0MzU4LDI4MTg3LDI4MzA0LDI5NTcyLDI5Njk0LDMyMDY3LDMzMzM1LDM1MzI4LDM1NTc4LDM4NDgwLDIwMDQ2LDIwNDkxLDIxNDc2LDIxNjI4LDIyMjY2LDIyOTkzLDIzMzk2LDI0MDQ5LDI0MjM1LDI0MzU5LDI1MTQ0LDI1OTI1LDI2NTQzLDI4MjQ2LDI5MzkyLDMxOTQ2LDM0OTk2'@; put 'LDMyOTI5LDMyOTkzLDMzNzc2LDM0MzgyLDM1NDYzLDM2MzI4LDM3NDMxLDM4NTk5LDM5MDE1LDQwNzIzLDIwMTE2LDIwMTE0LDIwMjM3LDIxMzIwLDIxNTc3LDIxNTY2LDIzMDg3LDI0NDYwLDI0NDgxLDI0NzM1LDI2NzkxLDI3Mjc4LDI5Nzg2LDMwODQ5LDM1NDg2LDM1NDkyLDM1NzAzLDM3'@; put 'MjY0LDIwMDYyLDM5ODgxLDIwMTMyLDIwMzQ4LDIwMzk5LDIwNTA1LDIwNTAyLDIwODA5LDIwODQ0LDIxMTUxLDIxMTc3LDIxMjQ2LDIxNDAyLDIxNDc1LDIxNTIxLDIxNTE4LDIxODk3LDIyMzUzLDIyNDM0LDIyOTA5LDIzMzgwLDIzMzg5LDIzNDM5LDI0MDM3LDI0MDM5LDI0MDU1LDI0MTg0'@; put 'LDI0MTk1LDI0MjE4LDI0MjQ3LDI0MzQ0LDI0NjU4LDI0OTA4LDI1MjM5LDI1MzA0LDI1NTExLDI1OTE1LDI2MTE0LDI2MTc5LDI2MzU2LDI2NDc3LDI2NjU3LDI2Nzc1LDI3MDgzLDI3NzQzLDI3OTQ2LDI4MDA5LDI4MjA3LDI4MzE3LDMwMDAyLDMwMzQzLDMwODI4LDMxMjk1LDMxOTY4LDMy'@; put 'MDA1LDMyMDI0LDMyMDk0LDMyMTc3LDMyNzg5LDMyNzcxLDMyOTQzLDMyOTQ1LDMzMTA4LDMzMTY3LDMzMzIyLDMzNjE4LDM0ODkyLDM0OTEzLDM1NjExLDM2MDAyLDM2MDkyLDM3MDY2LDM3MjM3LDM3NDg5LDMwNzgzLDM3NjI4LDM4MzA4LDM4NDc3LDM4OTE3LDM5MzIxLDM5NjQwLDQwMjUx'@; put 'LDIxMDgzLDIxMTYzLDIxNDk1LDIxNTEyLDIyNzQxLDI1MzM1LDI4NjQwLDM1OTQ2LDM2NzAzLDQwNjMzLDIwODExLDIxMDUxLDIxNTc4LDIyMjY5LDMxMjk2LDM3MjM5LDQwMjg4LDQwNjU4LDI5NTA4LDI4NDI1LDMzMTM2LDI5OTY5LDI0NTczLDI0Nzk0LDM5NTkyLDI5NDAzLDM2Nzk2LDI3'@; put 'NDkyLDM4OTE1LDIwMTcwLDIyMjU2LDIyMzcyLDIyNzE4LDIzMTMwLDI0NjgwLDI1MDMxLDI2MTI3LDI2MTE4LDI2NjgxLDI2ODAxLDI4MTUxLDMwMTY1LDMyMDU4LDMzMzkwLDM5NzQ2LDIwMTIzLDIwMzA0LDIxNDQ5LDIxNzY2LDIzOTE5LDI0MDM4LDI0MDQ2LDI2NjE5LDI3ODAxLDI5ODEx'@; put 'LDMwNzIyLDM1NDA4LDM3NzgyLDM1MDM5LDIyMzUyLDI0MjMxLDI1Mzg3LDIwNjYxLDIwNjUyLDIwODc3LDI2MzY4LDIxNzA1LDIyNjIyLDIyOTcxLDIzNDcyLDI0NDI1LDI1MTY1LDI1NTA1LDI2Njg1LDI3NTA3LDI4MTY4LDI4Nzk3LDM3MzE5LDI5MzEyLDMwNzQxLDMwNzU4LDMxMDg1LDI1'@; put 'OTk4LDMyMDQ4LDMzNzU2LDM1MDA5LDM2NjE3LDM4NTU1LDIxMDkyLDIyMzEyLDI2NDQ4LDMyNjE4LDM2MDAxLDIwOTE2LDIyMzM4LDM4NDQyLDIyNTg2LDI3MDE4LDMyOTQ4LDIxNjgyLDIzODIyLDIyNTI0LDMwODY5LDQwNDQyLDIwMzE2LDIxMDY2LDIxNjQzLDI1NjYyLDI2MTUyLDI2Mzg4'@; put 'LDI2NjEzLDMxMzY0LDMxNTc0LDMyMDM0LDM3Njc5LDI2NzE2LDM5ODUzLDMxNTQ1LDIxMjczLDIwODc0LDIxMDQ3LDIzNTE5LDI1MzM0LDI1Nzc0LDI1ODMwLDI2NDEzLDI3NTc4LDM0MjE3LDM4NjA5LDMwMzUyLDM5ODk0LDI1NDIwLDM3NjM4LDM5ODUxLDMwMzk5LDI2MTk0LDE5OTc3LDIw'@; put 'NjMyLDIxNDQyLDIzNjY1LDI0ODA4LDI1NzQ2LDI1OTU1LDI2NzE5LDI5MTU4LDI5NjQyLDI5OTg3LDMxNjM5LDMyMzg2LDM0NDUzLDM1NzE1LDM2MDU5LDM3MjQwLDM5MTg0LDI2MDI4LDI2MjgzLDI3NTMxLDIwMTgxLDIwMTgwLDIwMjgyLDIwMzUxLDIxMDUwLDIxNDk2LDIxNDkwLDIxOTg3'@; put 'LDIyMjM1LDIyNzYzLDIyOTg3LDIyOTg1LDIzMDM5LDIzMzc2LDIzNjI5LDI0MDY2LDI0MTA3LDI0NTM1LDI0NjA1LDI1MzUxLDI1OTAzLDIzMzg4LDI2MDMxLDI2MDQ1LDI2MDg4LDI2NTI1LDI3NDkwLDI3NTE1LDI3NjYzLDI5NTA5LDMxMDQ5LDMxMTY5LDMxOTkyLDMyMDI1LDMyMDQzLDMy'@; put 'OTMwLDMzMDI2LDMzMjY3LDM1MjIyLDM1NDIyLDM1NDMzLDM1NDMwLDM1NDY4LDM1NTY2LDM2MDM5LDM2MDYwLDM4NjA0LDM5MTY0LDI3NTAzLDIwMTA3LDIwMjg0LDIwMzY1LDIwODE2LDIzMzgzLDIzNTQ2LDI0OTA0LDI1MzQ1LDI2MTc4LDI3NDI1LDI4MzYzLDI3ODM1LDI5MjQ2LDI5ODg1'@; put 'LDMwMTY0LDMwOTEzLDMxMDM0LDMyNzgwLDMyODE5LDMzMjU4LDMzOTQwLDM2NzY2LDI3NzI4LDQwNTc1LDI0MzM1LDM1NjcyLDQwMjM1LDMxNDgyLDM2NjAwLDIzNDM3LDM4NjM1LDE5OTcxLDIxNDg5LDIyNTE5LDIyODMzLDIzMjQxLDIzNDYwLDI0NzEzLDI4Mjg3LDI4NDIyLDMwMTQyLDM2'@; put 'MDc0LDIzNDU1LDM0MDQ4LDMxNzEyLDIwNTk0LDI2NjEyLDMzNDM3LDIzNjQ5LDM0MTIyLDMyMjg2LDMzMjk0LDIwODg5LDIzNTU2LDI1NDQ4LDM2MTk4LDI2MDEyLDI5MDM4LDMxMDM4LDMyMDIzLDMyNzczLDM1NjEzLDM2NTU0LDM2OTc0LDM0NTAzLDM3MDM0LDIwNTExLDIxMjQyLDIzNjEw'@; put 'LDI2NDUxLDI4Nzk2LDI5MjM3LDM3MTk2LDM3MzIwLDM3Njc1LDMzNTA5LDIzNDkwLDI0MzY5LDI0ODI1LDIwMDI3LDIxNDYyLDIzNDMyLDI1MTYzLDI2NDE3LDI3NTMwLDI5NDE3LDI5NjY0LDMxMjc4LDMzMTMxLDM2MjU5LDM3MjAyLDM5MzE4LDIwNzU0LDIxNDYzLDIxNjEwLDIzNTUxLDI1'@; put 'NDgwLDI3MTkzLDMyMTcyLDM4NjU2LDIyMjM0LDIxNDU0LDIxNjA4LDIzNDQ3LDIzNjAxLDI0MDMwLDIwNDYyLDI0ODMzLDI1MzQyLDI3OTU0LDMxMTY4LDMxMTc5LDMyMDY2LDMyMzMzLDMyNzIyLDMzMjYxLDMzMzExLDMzOTM2LDM0ODg2LDM1MTg2LDM1NzI4LDM2NDY4LDM2NjU1LDM2OTEz'@; put 'LDM3MTk1LDM3MjI4LDM4NTk4LDM3Mjc2LDIwMTYwLDIwMzAzLDIwODA1LDIxMzEzLDI0NDY3LDI1MTAyLDI2NTgwLDI3NzEzLDI4MTcxLDI5NTM5LDMyMjk0LDM3MzI1LDM3NTA3LDIxNDYwLDIyODA5LDIzNDg3LDI4MTEzLDMxMDY5LDMyMzAyLDMxODk5LDIyNjU0LDI5MDg3LDIwOTg2LDM0'@; put 'ODk5LDM2ODQ4LDIwNDI2LDIzODAzLDI2MTQ5LDMwNjM2LDMxNDU5LDMzMzA4LDM5NDIzLDIwOTM0LDI0NDkwLDI2MDkyLDI2OTkxLDI3NTI5LDI4MTQ3LDI4MzEwLDI4NTE2LDMwNDYyLDMyMDIwLDI0MDMzLDM2OTgxLDM3MjU1LDM4OTE4LDIwOTY2LDIxMDIxLDI1MTUyLDI2MjU3LDI2MzI5'@; put 'LDI4MTg2LDI0MjQ2LDMyMjEwLDMyNjI2LDI2MzYwLDM0MjIzLDM0Mjk1LDM1NTc2LDIxMTYxLDIxNDY1LDIyODk5LDI0MjA3LDI0NDY0LDI0NjYxLDM3NjA0LDM4NTAwLDIwNjYzLDIwNzY3LDIxMjEzLDIxMjgwLDIxMzE5LDIxNDg0LDIxNzM2LDIxODMwLDIxODA5LDIyMDM5LDIyODg4LDIy'@; put 'OTc0LDIzMTAwLDIzNDc3LDIzNTU4LDIzNTY3LDIzNTY5LDIzNTc4LDI0MTk2LDI0MjAyLDI0Mjg4LDI0NDMyLDI1MjE1LDI1MjIwLDI1MzA3LDI1NDg0LDI1NDYzLDI2MTE5LDI2MTI0LDI2MTU3LDI2MjMwLDI2NDk0LDI2Nzg2LDI3MTY3LDI3MTg5LDI3ODM2LDI4MDQwLDI4MTY5LDI4MjQ4'@; put 'LDI4OTg4LDI4OTY2LDI5MDMxLDMwMTUxLDMwNDY1LDMwODEzLDMwOTc3LDMxMDc3LDMxMjE2LDMxNDU2LDMxNTA1LDMxOTExLDMyMDU3LDMyOTE4LDMzNzUwLDMzOTMxLDM0MTIxLDM0OTA5LDM1MDU5LDM1MzU5LDM1Mzg4LDM1NDEyLDM1NDQzLDM1OTM3LDM2MDYyLDM3Mjg0LDM3NDc4LDM3'@; put 'NzU4LDM3OTEyLDM4NTU2LDM4ODA4LDE5OTc4LDE5OTc2LDE5OTk4LDIwMDU1LDIwODg3LDIxMTA0LDIyNDc4LDIyNTgwLDIyNzMyLDIzMzMwLDI0MTIwLDI0NzczLDI1ODU0LDI2NDY1LDI2NDU0LDI3OTcyLDI5MzY2LDMwMDY3LDMxMzMxLDMzOTc2LDM1Njk4LDM3MzA0LDM3NjY0LDIyMDY1'@; put 'LDIyNTE2LDM5MTY2LDI1MzI1LDI2ODkzLDI3NTQyLDI5MTY1LDMyMzQwLDMyODg3LDMzMzk0LDM1MzAyLDM5MTM1LDM0NjQ1LDM2Nzg1LDIzNjExLDIwMjgwLDIwNDQ5LDIwNDA1LDIxNzY3LDIzMDcyLDIzNTE3LDIzNTI5LDI0NTE1LDI0OTEwLDI1MzkxLDI2MDMyLDI2MTg3LDI2ODYyLDI3'@; put 'MDM1LDI4MDI0LDI4MTQ1LDMwMDAzLDMwMTM3LDMwNDk1LDMxMDcwLDMxMjA2LDMyMDUxLDMzMjUxLDMzNDU1LDM0MjE4LDM1MjQyLDM1Mzg2LDM2NTIzLDM2NzYzLDM2OTE0LDM3MzQxLDM4NjYzLDIwMTU0LDIwMTYxLDIwOTk1LDIyNjQ1LDIyNzY0LDIzNTYzLDI5OTc4LDIzNjEzLDMzMTAy'@; put 'LDM1MzM4LDM2ODA1LDM4NDk5LDM4NzY1LDMxNTI1LDM1NTM1LDM4OTIwLDM3MjE4LDIyMjU5LDIxNDE2LDM2ODg3LDIxNTYxLDIyNDAyLDI0MTAxLDI1NTEyLDI3NzAwLDI4ODEwLDMwNTYxLDMxODgzLDMyNzM2LDM0OTI4LDM2OTMwLDM3MjA0LDM3NjQ4LDM3NjU2LDM4NTQzLDI5NzkwLDM5'@; put 'NjIwLDIzODE1LDIzOTEzLDI1OTY4LDI2NTMwLDM2MjY0LDM4NjE5LDI1NDU0LDI2NDQxLDI2OTA1LDMzNzMzLDM4OTM1LDM4NTkyLDM1MDcwLDI4NTQ4LDI1NzIyLDIzNTQ0LDE5OTkwLDI4NzE2LDMwMDQ1LDI2MTU5LDIwOTMyLDIxMDQ2LDIxMjE4LDIyOTk1LDI0NDQ5LDI0NjE1LDI1MTA0'@; put 'LDI1OTE5LDI1OTcyLDI2MTQzLDI2MjI4LDI2ODY2LDI2NjQ2LDI3NDkxLDI4MTY1LDI5Mjk4LDI5OTgzLDMwNDI3LDMxOTM0LDMyODU0LDIyNzY4LDM1MDY5LDM1MTk5LDM1NDg4LDM1NDc1LDM1NTMxLDM2ODkzLDM3MjY2LDM4NzM4LDM4NzQ1LDI1OTkzLDMxMjQ2LDMzMDMwLDM4NTg3LDI0'@; put 'MTA5LDI0Nzk2LDI1MTE0LDI2MDIxLDI2MTMyLDI2NTEyLDMwNzA3LDMxMzA5LDMxODIxLDMyMzE4LDMzMDM0LDM2MDEyLDM2MTk2LDM2MzIxLDM2NDQ3LDMwODg5LDIwOTk5LDI1MzA1LDI1NTA5LDI1NjY2LDI1MjQwLDM1MzczLDMxMzYzLDMxNjgwLDM1NTAwLDM4NjM0LDMyMTE4LDMzMjky'@; put 'LDM0NjMzLDIwMTg1LDIwODA4LDIxMzE1LDIxMzQ0LDIzNDU5LDIzNTU0LDIzNTc0LDI0MDI5LDI1MTI2LDI1MTU5LDI1Nzc2LDI2NjQzLDI2Njc2LDI3ODQ5LDI3OTczLDI3OTI3LDI2NTc5LDI4NTA4LDI5MDA2LDI5MDUzLDI2MDU5LDMxMzU5LDMxNjYxLDMyMjE4LDMyMzMwLDMyNjgwLDMz'@; put 'MTQ2LDMzMzA3LDMzMzM3LDM0MjE0LDM1NDM4LDM2MDQ2LDM2MzQxLDM2OTg0LDM2OTgzLDM3NTQ5LDM3NTIxLDM4Mjc1LDM5ODU0LDIxMDY5LDIxODkyLDI4NDcyLDI4OTgyLDIwODQwLDMxMTA5LDMyMzQxLDMzMjAzLDMxOTUwLDIyMDkyLDIyNjA5LDIzNzIwLDI1NTE0LDI2MzY2LDI2MzY1'@; put 'LDI2OTcwLDI5NDAxLDMwMDk1LDMwMDk0LDMwOTkwLDMxMDYyLDMxMTk5LDMxODk1LDMyMDMyLDMyMDY4LDM0MzExLDM1MzgwLDM4NDU5LDM2OTYxLDQwNzM2LDIwNzExLDIxMTA5LDIxNDUyLDIxNDc0LDIwNDg5LDIxOTMwLDIyNzY2LDIyODYzLDI5MjQ1LDIzNDM1LDIzNjUyLDIxMjc3LDI0'@; put 'ODAzLDI0ODE5LDI1NDM2LDI1NDc1LDI1NDA3LDI1NTMxLDI1ODA1LDI2MDg5LDI2MzYxLDI0MDM1LDI3MDg1LDI3MTMzLDI4NDM3LDI5MTU3LDIwMTA1LDMwMTg1LDMwNDU2LDMxMzc5LDMxOTY3LDMyMjA3LDMyMTU2LDMyODY1LDMzNjA5LDMzNjI0LDMzOTAwLDMzOTgwLDM0Mjk5LDM1MDEz'@; put 'LDM2MjA4LDM2ODY1LDM2OTczLDM3NzgzLDM4Njg0LDM5NDQyLDIwNjg3LDIyNjc5LDI0OTc0LDMzMjM1LDM0MTAxLDM2MTA0LDM2ODk2LDIwNDE5LDIwNTk2LDIxMDYzLDIxMzYzLDI0Njg3LDI1NDE3LDI2NDYzLDI4MjA0LDM2Mjc1LDM2ODk1LDIwNDM5LDIzNjQ2LDM2MDQyLDI2MDYzLDMy'@; put 'MTU0LDIxMzMwLDM0OTY2LDIwODU0LDI1NTM5LDIzMzg0LDIzNDAzLDIzNTYyLDI1NjEzLDI2NDQ5LDM2OTU2LDIwMTgyLDIyODEwLDIyODI2LDI3NzYwLDM1NDA5LDIxODIyLDIyNTQ5LDIyOTQ5LDI0ODE2LDI1MTcxLDI2NTYxLDMzMzMzLDI2OTY1LDM4NDY0LDM5MzY0LDM5NDY0LDIwMzA3'@; put 'LDIyNTM0LDIzNTUwLDMyNzg0LDIzNzI5LDI0MTExLDI0NDUzLDI0NjA4LDI0OTA3LDI1MTQwLDI2MzY3LDI3ODg4LDI4MzgyLDMyOTc0LDMzMTUxLDMzNDkyLDM0OTU1LDM2MDI0LDM2ODY0LDM2OTEwLDM4NTM4LDQwNjY3LDM5ODk5LDIwMTk1LDIxNDg4LDIyODIzLDMxNTMyLDM3MjYxLDM4'@; put 'OTg4LDQwNDQxLDI4MzgxLDI4NzExLDIxMzMxLDIxODI4LDIzNDI5LDI1MTc2LDI1MjQ2LDI1Mjk5LDI3ODEwLDI4NjU1LDI5NzMwLDM1MzUxLDM3OTQ0LDI4NjA5LDM1NTgyLDMzNTkyLDIwOTY3LDM0NTUyLDIxNDgyLDIxNDgxLDIwMjk0LDM2OTQ4LDM2Nzg0LDIyODkwLDMzMDczLDI0MDYx'@; put 'LDMxNDY2LDM2Nzk5LDI2ODQyLDM1ODk1LDI5NDMyLDQwMDA4LDI3MTk3LDM1NTA0LDIwMDI1LDIxMzM2LDIyMDIyLDIyMzc0LDI1Mjg1LDI1NTA2LDI2MDg2LDI3NDcwLDI4MTI5LDI4MjUxLDI4ODQ1LDMwNzAxLDMxNDcxLDMxNjU4LDMyMTg3LDMyODI5LDMyOTY2LDM0NTA3LDM1NDc3LDM3'@; put 'NzIzLDIyMjQzLDIyNzI3LDI0MzgyLDI2MDI5LDI2MjYyLDI3MjY0LDI3NTczLDMwMDA3LDM1NTI3LDIwNTE2LDMwNjkzLDIyMzIwLDI0MzQ3LDI0Njc3LDI2MjM0LDI3NzQ0LDMwMTk2LDMxMjU4LDMyNjIyLDMzMjY4LDM0NTg0LDM2OTMzLDM5MzQ3LDMxNjg5LDMwMDQ0LDMxNDgxLDMxNTY5'@; put 'LDMzOTg4LDM2ODgwLDMxMjA5LDMxMzc4LDMzNTkwLDIzMjY1LDMwNTI4LDIwMDEzLDIwMjEwLDIzNDQ5LDI0NTQ0LDI1Mjc3LDI2MTcyLDI2NjA5LDI3ODgwLDM0NDExLDM0OTM1LDM1Mzg3LDM3MTk4LDM3NjE5LDM5Mzc2LDI3MTU5LDI4NzEwLDI5NDgyLDMzNTExLDMzODc5LDM2MDE1LDE5'@; put 'OTY5LDIwODA2LDIwOTM5LDIxODk5LDIzNTQxLDI0MDg2LDI0MTE1LDI0MTkzLDI0MzQwLDI0MzczLDI0NDI3LDI0NTAwLDI1MDc0LDI1MzYxLDI2Mjc0LDI2Mzk3LDI4NTI2LDI5MjY2LDMwMDEwLDMwNTIyLDMyODg0LDMzMDgxLDMzMTQ0LDM0Njc4LDM1NTE5LDM1NTQ4LDM2MjI5LDM2MzM5'@; put 'LDM3NTMwLDM4MjYzLDM4OTE0LDQwMTY1LDIxMTg5LDI1NDMxLDMwNDUyLDI2Mzg5LDI3Nzg0LDI5NjQ1LDM2MDM1LDM3ODA2LDM4NTE1LDI3OTQxLDIyNjg0LDI2ODk0LDI3MDg0LDM2ODYxLDM3Nzg2LDMwMTcxLDM2ODkwLDIyNjE4LDI2NjI2LDI1NTI0LDI3MTMxLDIwMjkxLDI4NDYwLDI2'@; put 'NTg0LDM2Nzk1LDM0MDg2LDMyMTgwLDM3NzE2LDI2OTQzLDI4NTI4LDIyMzc4LDIyNzc1LDIzMzQwLDMyMDQ0LDI5MjI2LDIxNTE0LDM3MzQ3LDQwMzcyLDIwMTQxLDIwMzAyLDIwNTcyLDIwNTk3LDIxMDU5LDM1OTk4LDIxNTc2LDIyNTY0LDIzNDUwLDI0MDkzLDI0MjEzLDI0MjM3LDI0MzEx'@; put 'LDI0MzUxLDI0NzE2LDI1MjY5LDI1NDAyLDI1NTUyLDI2Nzk5LDI3NzEyLDMwODU1LDMxMTE4LDMxMjQzLDMyMjI0LDMzMzUxLDM1MzMwLDM1NTU4LDM2NDIwLDM2ODgzLDM3MDQ4LDM3MTY1LDM3MzM2LDQwNzE4LDI3ODc3LDI1Njg4LDI1ODI2LDI1OTczLDI4NDA0LDMwMzQwLDMxNTE1LDM2'@; put 'OTY5LDM3ODQxLDI4MzQ2LDIxNzQ2LDI0NTA1LDI1NzY0LDM2Njg1LDM2ODQ1LDM3NDQ0LDIwODU2LDIyNjM1LDIyODI1LDIzNjM3LDI0MjE1LDI4MTU1LDMyMzk5LDI5OTgwLDM2MDI4LDM2NTc4LDM5MDAzLDI4ODU3LDIwMjUzLDI3NTgzLDI4NTkzLDNlNCwzODY1MSwyMDgxNCwyMTUyMCwy'@; put 'MjU4MSwyMjYxNSwyMjk1NiwyMzY0OCwyNDQ2NiwyNjAwNywyNjQ2MCwyODE5MywzMDMzMSwzMzc1OSwzNjA3NywzNjg4NCwzNzExNywzNzcwOSwzMDc1NywzMDc3OCwyMTE2MiwyNDIzMCwyMjMwMywyMjkwMCwyNDU5NCwyMDQ5OCwyMDgyNiwyMDkwOCwyMDk0MSwyMDk5MiwyMTc3NiwyMjYx'@; put 'MiwyMjYxNiwyMjg3MSwyMzQ0NSwyMzc5OCwyMzk0NywyNDc2NCwyNTIzNywyNTY0NSwyNjQ4MSwyNjY5MSwyNjgxMiwyNjg0NywzMDQyMywyODEyMCwyODI3MSwyODA1OSwyODc4MywyOTEyOCwyNDQwMywzMDE2OCwzMTA5NSwzMTU2MSwzMTU3MiwzMTU3MCwzMTk1OCwzMjExMywyMTA0MCwz'@; put 'Mzg5MSwzNDE1MywzNDI3NiwzNTM0MiwzNTU4OCwzNTkxMCwzNjM2NywzNjg2NywzNjg3OSwzNzkxMywzODUxOCwzODk1NywzOTQ3MiwzODM2MCwyMDY4NSwyMTIwNSwyMTUxNiwyMjUzMCwyMzU2NiwyNDk5OSwyNTc1OCwyNzkzNCwzMDY0MywzMTQ2MSwzMzAxMiwzMzc5NiwzNjk0NywzNzUw'@; put 'OSwyMzc3Niw0MDE5OSwyMTMxMSwyNDQ3MSwyNDQ5OSwyODA2MCwyOTMwNSwzMDU2MywzMTE2NywzMTcxNiwyNzYwMiwyOTQyMCwzNTUwMSwyNjYyNywyNzIzMywyMDk4NCwzMTM2MSwyNjkzMiwyMzYyNiw0MDE4MiwzMzUxNSwyMzQ5MywzNzE5MywyODcwMiwyMjEzNiwyMzY2MywyNDc3NSwy'@; put 'NTk1OCwyNzc4OCwzNTkzMCwzNjkyOSwzODkzMSwyMTU4NSwyNjMxMSwzNzM4OSwyMjg1NiwzNzAyNywyMDg2OSwyMDA0NSwyMDk3MCwzNDIwMSwzNTU5OCwyODc2MCwyNTQ2NiwzNzcwNywyNjk3OCwzOTM0OCwzMjI2MCwzMDA3MSwyMTMzNSwyNjk3NiwzNjU3NSwzODYyNywyNzc0MSwyMDEw'@; put 'OCwyMzYxMiwyNDMzNiwzNjg0MSwyMTI1MCwzNjA0OSwzMjkwNSwzNDQyNSwyNDMxOSwyNjA4NSwyMDA4MywyMDgzNywyMjkxNCwyMzYxNSwzODg5NCwyMDIxOSwyMjkyMiwyNDUyNSwzNTQ2OSwyODY0MSwzMTE1MiwzMTA3NCwyMzUyNywzMzkwNSwyOTQ4MywyOTEwNSwyNDE4MCwyNDU2NSwy'@; put 'NTQ2NywyNTc1NCwyOTEyMywzMTg5NiwyMDAzNSwyNDMxNiwyMDA0MywyMjQ5MiwyMjE3OCwyNDc0NSwyODYxMSwzMjAxMywzMzAyMSwzMzA3NSwzMzIxNSwzNjc4NiwzNTIyMywzNDQ2OCwyNDA1MiwyNTIyNiwyNTc3MywzNTIwNywyNjQ4NywyNzg3NCwyNzk2NiwyOTc1MCwzMDc3MiwyMzEx'@; put 'MCwzMjYyOSwzMzQ1MywzOTM0MCwyMDQ2NywyNDI1OSwyNTMwOSwyNTQ5MCwyNTk0MywyNjQ3OSwzMDQwMywyOTI2MCwzMjk3MiwzMjk1NCwzNjY0OSwzNzE5NywyMDQ5MywyMjUyMSwyMzE4NiwyNjc1NywyNjk5NSwyOTAyOCwyOTQzNywzNjAyMywyMjc3MCwzNjA2NCwzODUwNiwzNjg4OSwz'@; put 'NDY4NywzMTIwNCwzMDY5NSwzMzgzMywyMDI3MSwyMTA5MywyMTMzOCwyNTI5MywyNjU3NSwyNzg1MCwzMDMzMywzMTYzNiwzMTg5MywzMzMzNCwzNDE4MCwzNjg0MywyNjMzMywyODQ0OCwyOTE5MCwzMjI4MywzMzcwNywzOTM2MSw0MDYxNCwyMDk4OSwzMTY2NSwzMDgzNCwzMTY3MiwzMjkw'@; put 'MywzMTU2MCwyNzM2OCwyNDE2MSwzMjkwOCwzMDAzMywzMDA0OCwyMDg0MywzNzQ3NCwyODMwMCwzMDMzMCwzNzI3MSwzOTY1OCwyMDI0MCwzMjYyNCwyNTI0NCwzMTU2NywzODMwOSw0MDE2OSwyMjEzOCwyMjYxNywzNDUzMiwzODU4OCwyMDI3NiwyMTAyOCwyMTMyMiwyMTQ1MywyMTQ2Nywy'@; put 'NDA3MCwyNTY0NCwyNjAwMSwyNjQ5NSwyNzcxMCwyNzcyNiwyOTI1NiwyOTM1OSwyOTY3NywzMDAzNiwzMjMyMSwzMzMyNCwzNDI4MSwzNjAwOSwzMTY4NCwzNzMxOCwyOTAzMywzODkzMCwzOTE1MSwyNTQwNSwyNjIxNywzMDA1OCwzMDQzNiwzMDkyOCwzNDExNSwzNDU0MiwyMTI5MCwyMTMy'@; put 'OSwyMTU0MiwyMjkxNSwyNDE5OSwyNDQ0NCwyNDc1NCwyNTE2MSwyNTIwOSwyNTI1OSwyNmUzLDI3NjA0LDI3ODUyLDMwMTMwLDMwMzgyLDMwODY1LDMxMTkyLDMyMjAzLDMyNjMxLDMyOTMzLDM0OTg3LDM1NTEzLDM2MDI3LDM2OTkxLDM4NzUwLDM5MTMxLDI3MTQ3LDMxODAwLDIwNjMzLDIz'@; put 'NjE0LDI0NDk0LDI2NTAzLDI3NjA4LDI5NzQ5LDMwNDczLDMyNjU0LDQwNzYzLDI2NTcwLDMxMjU1LDIxMzA1LDMwMDkxLDM5NjYxLDI0NDIyLDMzMTgxLDMzNzc3LDMyOTIwLDI0MzgwLDI0NTE3LDMwMDUwLDMxNTU4LDM2OTI0LDI2NzI3LDIzMDE5LDIzMTk1LDMyMDE2LDMwMzM0LDM1NjI4'@; put 'LDIwNDY5LDI0NDI2LDI3MTYxLDI3NzAzLDI4NDE4LDI5OTIyLDMxMDgwLDM0OTIwLDM1NDEzLDM1OTYxLDI0Mjg3LDI1NTUxLDMwMTQ5LDMxMTg2LDMzNDk1LDM3NjcyLDM3NjE4LDMzOTQ4LDM0NTQxLDM5OTgxLDIxNjk3LDI0NDI4LDI1OTk2LDI3OTk2LDI4NjkzLDM2MDA3LDM2MDUxLDM4'@; put 'OTcxLDI1OTM1LDI5OTQyLDE5OTgxLDIwMTg0LDIyNDk2LDIyODI3LDIzMTQyLDIzNTAwLDIwOTA0LDI0MDY3LDI0MjIwLDI0NTk4LDI1MjA2LDI1OTc1LDI2MDIzLDI2MjIyLDI4MDE0LDI5MjM4LDMxNTI2LDMzMTA0LDMzMTc4LDMzNDMzLDM1Njc2LDM2ZTMsMzYwNzAsMzYyMTIsMzg0Mjgs'@; put 'Mzg0NjgsMjAzOTgsMjU3NzEsMjc0OTQsMzMzMTAsMzM4ODksMzQxNTQsMzcwOTYsMjM1NTMsMjY5NjMsMzkwODAsMzM5MTQsMzQxMzUsMjAyMzksMjExMDMsMjQ0ODksMjQxMzMsMjYzODEsMzExMTksMzMxNDUsMzUwNzksMzUyMDYsMjgxNDksMjQzNDMsMjUxNzMsMjc4MzIsMjAxNzUsMjky'@; put 'ODksMzk4MjYsMjA5OTgsMjE1NjMsMjIxMzIsMjI3MDcsMjQ5OTYsMjUxOTgsMjg5NTQsMjI4OTQsMzE4ODEsMzE5NjYsMzIwMjcsMzg2NDAsMjU5OTEsMzI4NjIsMTk5OTMsMjAzNDEsMjA4NTMsMjI1OTIsMjQxNjMsMjQxNzksMjQzMzAsMjY1NjQsMjAwMDYsMzQxMDksMzgyODEsMzg0OTEs'@; put 'MzE4NTksMzg5MTMsMjA3MzEsMjI3MjEsMzAyOTQsMzA4ODcsMjEwMjksMzA2MjksMzQwNjUsMzE2MjIsMjA1NTksMjI3OTMsMjkyNTUsMzE2ODcsMzIyMzIsMzY3OTQsMzY4MjAsMzY5NDEsMjA0MTUsMjExOTMsMjMwODEsMjQzMjEsMzg4MjksMjA0NDUsMzMzMDMsMzc2MTAsMjIyNzUsMjU0'@; put 'MjksMjc0OTcsMjk5OTUsMzUwMzYsMzY2MjgsMzEyOTgsMjEyMTUsMjI2NzUsMjQ5MTcsMjUwOTgsMjYyODYsMjc1OTcsMzE4MDcsMzM3NjksMjA1MTUsMjA0NzIsMjEyNTMsMjE1NzQsMjI1NzcsMjI4NTcsMjM0NTMsMjM3OTIsMjM3OTEsMjM4NDksMjQyMTQsMjUyNjUsMjU0NDcsMjU5MTgs'@; put 'MjYwNDEsMjYzNzksMjc4NjEsMjc4NzMsMjg5MjEsMzA3NzAsMzIyOTksMzI5OTAsMzM0NTksMzM4MDQsMzQwMjgsMzQ1NjIsMzUwOTAsMzUzNzAsMzU5MTQsMzcwMzAsMzc1ODYsMzkxNjUsNDAxNzksNDAzMDAsMjAwNDcsMjAxMjksMjA2MjEsMjEwNzgsMjIzNDYsMjI5NTIsMjQxMjUsMjQ1'@; put 'MzYsMjQ1MzcsMjUxNTEsMjYyOTIsMjYzOTUsMjY1NzYsMjY4MzQsMjA4ODIsMzIwMzMsMzI5MzgsMzMxOTIsMzU1ODQsMzU5ODAsMzYwMzEsMzc1MDIsMzg0NTAsMjE1MzYsMzg5NTYsMjEyNzEsMjA2OTMsMjEzNDAsMjI2OTYsMjU3NzgsMjY0MjAsMjkyODcsMzA1NjYsMzEzMDIsMzczNTAs'@; put 'MjExODcsMjc4MDksMjc1MjYsMjI1MjgsMjQxNDAsMjI4NjgsMjY0MTIsMzI3NjMsMjA5NjEsMzA0MDYsMjU3MDUsMzA5NTIsMzk3NjQsNDA2MzUsMjI0NzUsMjI5NjksMjYxNTEsMjY1MjIsMjc1OTgsMjE3MzcsMjcwOTcsMjQxNDksMzMxODAsMjY1MTcsMzk4NTAsMjY2MjIsNDAwMTgsMjY3'@; put 'MTcsMjAxMzQsMjA0NTEsMjE0NDgsMjUyNzMsMjY0MTEsMjc4MTksMzY4MDQsMjAzOTcsMzIzNjUsNDA2MzksMTk5NzUsMjQ5MzAsMjgyODgsMjg0NTksMzQwNjcsMjE2MTksMjY0MTAsMzk3NDksMjQwNTEsMzE2MzcsMjM3MjQsMjM0OTQsMzQ1ODgsMjgyMzQsMzQwMDEsMzEyNTIsMzMwMzIs'@; put 'MjI5MzcsMzE4ODUsMjc2NjUsMzA0OTYsMjEyMDksMjI4MTgsMjg5NjEsMjkyNzksMzA2ODMsMzg2OTUsNDAyODksMjY4OTEsMjMxNjcsMjMwNjQsMjA5MDEsMjE1MTcsMjE2MjksMjYxMjYsMzA0MzEsMzY4NTUsMzc1MjgsNDAxODAsMjMwMTgsMjkyNzcsMjgzNTcsMjA4MTMsMjY4MjUsMzIx'@; put 'OTEsMzIyMzYsMzg3NTQsNDA2MzQsMjU3MjAsMjcxNjksMzM1MzgsMjI5MTYsMjMzOTEsMjc2MTEsMjk0NjcsMzA0NTAsMzIxNzgsMzI3OTEsMzM5NDUsMjA3ODYsMjY0MDgsNDA2NjUsMzA0NDYsMjY0NjYsMjEyNDcsMzkxNzMsMjM1ODgsMjUxNDcsMzE4NzAsMzYwMTYsMjE4MzksMjQ3NTgs'@; put 'MzIwMTEsMzgyNzIsMjEyNDksMjAwNjMsMjA5MTgsMjI4MTIsMjkyNDIsMzI4MjIsMzczMjYsMjQzNTcsMzA2OTAsMjEzODAsMjQ0NDEsMzIwMDQsMzQyMjAsMzUzNzksMzY0OTMsMzg3NDIsMjY2MTEsMzQyMjIsMzc5NzEsMjQ4NDEsMjQ4NDAsMjc4MzMsMzAyOTAsMzU1NjUsMzY2NjQsMjE4'@; put 'MDcsMjAzMDUsMjA3NzgsMjExOTEsMjE0NTEsMjM0NjEsMjQxODksMjQ3MzYsMjQ5NjIsMjU1NTgsMjYzNzcsMjY1ODYsMjgyNjMsMjgwNDQsMjk0OTQsMjk0OTUsMzAwMDEsMzEwNTYsMzUwMjksMzU0ODAsMzY5MzgsMzcwMDksMzcxMDksMzg1OTYsMzQ3MDEsMjI4MDUsMjAxMDQsMjAzMTMs'@; put 'MTk5ODIsMzU0NjUsMzY2NzEsMzg5MjgsMjA2NTMsMjQxODgsMjI5MzQsMjM0ODEsMjQyNDgsMjU1NjIsMjU1OTQsMjU3OTMsMjYzMzIsMjY5NTQsMjcwOTYsMjc5MTUsMjgzNDIsMjkwNzYsMjk5OTIsMzE0MDcsMzI2NTAsMzI3NjgsMzM4NjUsMzM5OTMsMzUyMDEsMzU2MTcsMzYzNjIsMzY5'@; put 'NjUsMzg1MjUsMzkxNzgsMjQ5NTgsMjUyMzMsMjc0NDIsMjc3NzksMjgwMjAsMzI3MTYsMzI3NjQsMjgwOTYsMzI2NDUsMzQ3NDYsMzUwNjQsMjY0NjksMzM3MTMsMzg5NzIsMzg2NDcsMjc5MzEsMzIwOTcsMzM4NTMsMzcyMjYsMjAwODEsMjEzNjUsMjM4ODgsMjczOTYsMjg2NTEsMzQyNTMs'@; put 'MzQzNDksMzUyMzksMjEwMzMsMjE1MTksMjM2NTMsMjY0NDYsMjY3OTIsMjk3MDIsMjk4MjcsMzAxNzgsMzUwMjMsMzUwNDEsMzczMjQsMzg2MjYsMzg1MjAsMjQ0NTksMjk1NzUsMzE0MzUsMzM4NzAsMjU1MDQsMzAwNTMsMjExMjksMjc5NjksMjgzMTYsMjk3MDUsMzAwNDEsMzA4MjcsMzE4'@; put 'OTAsMzg1MzQsMzE0NTIsNDA4NDUsMjA0MDYsMjQ5NDIsMjYwNTMsMzQzOTYsMjAxMDIsMjAxNDIsMjA2OTgsMjAwMDEsMjA5NDAsMjM1MzQsMjYwMDksMjY3NTMsMjgwOTIsMjk0NzEsMzAyNzQsMzA2MzcsMzEyNjAsMzE5NzUsMzMzOTEsMzU1MzgsMzY5ODgsMzczMjcsMzg1MTcsMzg5MzYs'@; put 'MjExNDcsMzIyMDksMjA1MjMsMjE0MDAsMjY1MTksMjgxMDcsMjkxMzYsMjk3NDcsMzMyNTYsMzY2NTAsMzg1NjMsNDAwMjMsNDA2MDcsMjk3OTIsMjI1OTMsMjgwNTcsMzIwNDcsMzkwMDYsMjAxOTYsMjAyNzgsMjAzNjMsMjA5MTksMjExNjksMjM5OTQsMjQ2MDQsMjk2MTgsMzEwMzYsMzM0'@; put 'OTEsMzc0MjgsMzg1ODMsMzg2NDYsMzg2NjYsNDA1OTksNDA4MDIsMjYyNzgsMjc1MDgsMjEwMTUsMjExNTUsMjg4NzIsMzUwMTAsMjQyNjUsMjQ2NTEsMjQ5NzYsMjg0NTEsMjkwMDEsMzE4MDYsMzIyNDQsMzI4NzksMzQwMzAsMzY4OTksMzc2NzYsMjE1NzAsMzk3OTEsMjczNDcsMjg4MDks'@; put 'MzYwMzQsMzYzMzUsMzg3MDYsMjExNzIsMjMxMDUsMjQyNjYsMjQzMjQsMjYzOTEsMjcwMDQsMjcwMjgsMjgwMTAsMjg0MzEsMjkyODIsMjk0MzYsMzE3MjUsMzI3NjksMzI4OTQsMzQ2MzUsMzcwNzAsMjA4NDUsNDA1OTUsMzExMDgsMzI5MDcsMzc2ODIsMzU1NDIsMjA1MjUsMjE2NDQsMzU0'@; put 'NDEsMjc0OTgsMzYwMzYsMzMwMzEsMjQ3ODUsMjY1MjgsNDA0MzQsMjAxMjEsMjAxMjAsMzk5NTIsMzU0MzUsMzQyNDEsMzQxNTIsMjY4ODAsMjgyODYsMzA4NzEsMzMxMDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNDMzMiwxOTk4NCwxOTk4'@; put 'OSwyMDAxMCwyMDAxNywyMDAyMiwyMDAyOCwyMDAzMSwyMDAzNCwyMDA1NCwyMDA1NiwyMDA5OCwyMDEwMSwzNTk0NywyMDEwNiwzMzI5OCwyNDMzMywyMDExMCwyMDEyNiwyMDEyNywyMDEyOCwyMDEzMCwyMDE0NCwyMDE0NywyMDE1MCwyMDE3NCwyMDE3MywyMDE2NCwyMDE2NiwyMDE2Miwy'@; put 'MDE4MywyMDE5MCwyMDIwNSwyMDE5MSwyMDIxNSwyMDIzMywyMDMxNCwyMDI3MiwyMDMxNSwyMDMxNywyMDMxMSwyMDI5NSwyMDM0MiwyMDM2MCwyMDM2NywyMDM3NiwyMDM0NywyMDMyOSwyMDMzNiwyMDM2OSwyMDMzNSwyMDM1OCwyMDM3NCwyMDc2MCwyMDQzNiwyMDQ0NywyMDQzMCwyMDQ0'@; put 'MCwyMDQ0MywyMDQzMywyMDQ0MiwyMDQzMiwyMDQ1MiwyMDQ1MywyMDUwNiwyMDUyMCwyMDUwMCwyMDUyMiwyMDUxNywyMDQ4NSwyMDI1MiwyMDQ3MCwyMDUxMywyMDUyMSwyMDUyNCwyMDQ3OCwyMDQ2MywyMDQ5NywyMDQ4NiwyMDU0NywyMDU1MSwyNjM3MSwyMDU2NSwyMDU2MCwyMDU1Miwy'@; put 'MDU3MCwyMDU2NiwyMDU4OCwyMDYwMCwyMDYwOCwyMDYzNCwyMDYxMywyMDY2MCwyMDY1OCwyMDY4MSwyMDY4MiwyMDY1OSwyMDY3NCwyMDY5NCwyMDcwMiwyMDcwOSwyMDcxNywyMDcwNywyMDcxOCwyMDcyOSwyMDcyNSwyMDc0NSwyMDczNywyMDczOCwyMDc1OCwyMDc1NywyMDc1NiwyMDc2'@; put 'MiwyMDc2OSwyMDc5NCwyMDc5MSwyMDc5NiwyMDc5NSwyMDc5OSwyMDgwMCwyMDgxOCwyMDgxMiwyMDgyMCwyMDgzNCwzMTQ4MCwyMDg0MSwyMDg0MiwyMDg0NiwyMDg2NCwyMDg2NiwyMjIzMiwyMDg3NiwyMDg3MywyMDg3OSwyMDg4MSwyMDg4MywyMDg4NSwyMDg4NiwyMDkwMCwyMDkwMiwy'@; put 'MDg5OCwyMDkwNSwyMDkwNiwyMDkwNywyMDkxNSwyMDkxMywyMDkxNCwyMDkxMiwyMDkxNywyMDkyNSwyMDkzMywyMDkzNywyMDk1NSwyMDk2MCwzNDM4OSwyMDk2OSwyMDk3MywyMDk3NiwyMDk4MSwyMDk5MCwyMDk5NiwyMTAwMywyMTAxMiwyMTAwNiwyMTAzMSwyMTAzNCwyMTAzOCwyMTA0'@; put 'MywyMTA0OSwyMTA3MSwyMTA2MCwyMTA2NywyMTA2OCwyMTA4NiwyMTA3NiwyMTA5OCwyMTEwOCwyMTA5NywyMTEwNywyMTExOSwyMTExNywyMTEzMywyMTE0MCwyMTEzOCwyMTEwNSwyMTEyOCwyMTEzNywzNjc3NiwzNjc3NSwyMTE2NCwyMTE2NSwyMTE4MCwyMTE3MywyMTE4NSwyMTE5Nywy'@; put 'MTIwNywyMTIxNCwyMTIxOSwyMTIyMiwzOTE0OSwyMTIxNiwyMTIzNSwyMTIzNywyMTI0MCwyMTI0MSwyMTI1NCwyMTI1NiwzMDAwOCwyMTI2MSwyMTI2NCwyMTI2MywyMTI2OSwyMTI3NCwyMTI4MywyMTI5NSwyMTI5NywyMTI5OSwyMTMwNCwyMTMxMiwyMTMxOCwyMTMxNywxOTk5MSwyMTMy'@; put 'MSwyMTMyNSwyMDk1MCwyMTM0MiwyMTM1MywyMTM1OCwyMjgwOCwyMTM3MSwyMTM2NywyMTM3OCwyMTM5OCwyMTQwOCwyMTQxNCwyMTQxMywyMTQyMiwyMTQyNCwyMTQzMCwyMTQ0MywzMTc2MiwzODYxNywyMTQ3MSwyNjM2NCwyOTE2NiwyMTQ4NiwyMTQ4MCwyMTQ4NSwyMTQ5OCwyMTUwNSwy'@; put 'MTU2NSwyMTU2OCwyMTU0OCwyMTU0OSwyMTU2NCwyMTU1MCwyMTU1OCwyMTU0NSwyMTUzMywyMTU4MiwyMTY0NywyMTYyMSwyMTY0NiwyMTU5OSwyMTYxNywyMTYyMywyMTYxNiwyMTY1MCwyMTYyNywyMTYzMiwyMTYyMiwyMTYzNiwyMTY0OCwyMTYzOCwyMTcwMywyMTY2NiwyMTY4OCwyMTY2'@; put 'OSwyMTY3NiwyMTcwMCwyMTcwNCwyMTY3MiwyMTY3NSwyMTY5OCwyMTY2OCwyMTY5NCwyMTY5MiwyMTcyMCwyMTczMywyMTczNCwyMTc3NSwyMTc4MCwyMTc1NywyMTc0MiwyMTc0MSwyMTc1NCwyMTczMCwyMTgxNywyMTgyNCwyMTg1OSwyMTgzNiwyMTgwNiwyMTg1MiwyMTgyOSwyMTg0Niwy'@; put 'MTg0NywyMTgxNiwyMTgxMSwyMTg1MywyMTkxMywyMTg4OCwyMTY3OSwyMTg5OCwyMTkxOSwyMTg4MywyMTg4NiwyMTkxMiwyMTkxOCwyMTkzNCwyMTg4NCwyMTg5MSwyMTkyOSwyMTg5NSwyMTkyOCwyMTk3OCwyMTk1NywyMTk4MywyMTk1NiwyMTk4MCwyMTk4OCwyMTk3MiwyMjAzNiwyMjAw'@; put 'NywyMjAzOCwyMjAxNCwyMjAxMywyMjA0MywyMjAwOSwyMjA5NCwyMjA5NiwyOTE1MSwyMjA2OCwyMjA3MCwyMjA2NiwyMjA3MiwyMjEyMywyMjExNiwyMjA2MywyMjEyNCwyMjEyMiwyMjE1MCwyMjE0NCwyMjE1NCwyMjE3NiwyMjE2NCwyMjE1OSwyMjE4MSwyMjE5MCwyMjE5OCwyMjE5Niwy'@; put 'MjIxMCwyMjIwNCwyMjIwOSwyMjIxMSwyMjIwOCwyMjIxNiwyMjIyMiwyMjIyNSwyMjIyNywyMjIzMSwyMjI1NCwyMjI2NSwyMjI3MiwyMjI3MSwyMjI3NiwyMjI4MSwyMjI4MCwyMjI4MywyMjI4NSwyMjI5MSwyMjI5NiwyMjI5NCwyMTk1OSwyMjMwMCwyMjMxMCwyMjMyNywyMjMyOCwyMjM1'@; put 'MCwyMjMzMSwyMjMzNiwyMjM1MSwyMjM3NywyMjQ2NCwyMjQwOCwyMjM2OSwyMjM5OSwyMjQwOSwyMjQxOSwyMjQzMiwyMjQ1MSwyMjQzNiwyMjQ0MiwyMjQ0OCwyMjQ2NywyMjQ3MCwyMjQ4NCwyMjQ4MiwyMjQ4MywyMjUzOCwyMjQ4NiwyMjQ5OSwyMjUzOSwyMjU1MywyMjU1NywyMjY0Miwy'@; put 'MjU2MSwyMjYyNiwyMjYwMywyMjY0MCwyNzU4NCwyMjYxMCwyMjU4OSwyMjY0OSwyMjY2MSwyMjcxMywyMjY4NywyMjY5OSwyMjcxNCwyMjc1MCwyMjcxNSwyMjcxMiwyMjcwMiwyMjcyNSwyMjczOSwyMjczNywyMjc0MywyMjc0NSwyMjc0NCwyMjc1NywyMjc0OCwyMjc1NiwyMjc1MSwyMjc2'@; put 'NywyMjc3OCwyMjc3NywyMjc3OSwyMjc4MCwyMjc4MSwyMjc4NiwyMjc5NCwyMjgwMCwyMjgxMSwyNjc5MCwyMjgyMSwyMjgyOCwyMjgyOSwyMjgzNCwyMjg0MCwyMjg0NiwzMTQ0MiwyMjg2OSwyMjg2NCwyMjg2MiwyMjg3NCwyMjg3MiwyMjg4MiwyMjg4MCwyMjg4NywyMjg5MiwyMjg4OSwy'@; put 'MjkwNCwyMjkxMywyMjk0MSwyMDMxOCwyMDM5NSwyMjk0NywyMjk2MiwyMjk4MiwyMzAxNiwyMzAwNCwyMjkyNSwyMzAwMSwyMzAwMiwyMzA3NywyMzA3MSwyMzA1NywyMzA2OCwyMzA0OSwyMzA2NiwyMzEwNCwyMzE0OCwyMzExMywyMzA5MywyMzA5NCwyMzEzOCwyMzE0NiwyMzE5NCwyMzIy'@; put 'OCwyMzIzMCwyMzI0MywyMzIzNCwyMzIyOSwyMzI2NywyMzI1NSwyMzI3MCwyMzI3MywyMzI1NCwyMzI5MCwyMzI5MSwyMzMwOCwyMzMwNywyMzMxOCwyMzM0NiwyMzI0OCwyMzMzOCwyMzM1MCwyMzM1OCwyMzM2MywyMzM2NSwyMzM2MCwyMzM3NywyMzM4MSwyMzM4NiwyMzM4NywyMzM5Nywy'@; put 'MzQwMSwyMzQwOCwyMzQxMSwyMzQxMywyMzQxNiwyNTk5MiwyMzQxOCwyMzQyNCwyMzQyNywyMzQ2MiwyMzQ4MCwyMzQ5MSwyMzQ5NSwyMzQ5NywyMzUwOCwyMzUwNCwyMzUyNCwyMzUyNiwyMzUyMiwyMzUxOCwyMzUyNSwyMzUzMSwyMzUzNiwyMzU0MiwyMzUzOSwyMzU1NywyMzU1OSwyMzU2'@; put 'MCwyMzU2NSwyMzU3MSwyMzU4NCwyMzU4NiwyMzU5MiwyMzYwOCwyMzYwOSwyMzYxNywyMzYyMiwyMzYzMCwyMzYzNSwyMzYzMiwyMzYzMSwyMzQwOSwyMzY2MCwyMzY2MiwyMDA2NiwyMzY3MCwyMzY3MywyMzY5MiwyMzY5NywyMzcwMCwyMjkzOSwyMzcyMywyMzczOSwyMzczNCwyMzc0MCwy'@; put 'MzczNSwyMzc0OSwyMzc0MiwyMzc1MSwyMzc2OSwyMzc4NSwyMzgwNSwyMzgwMiwyMzc4OSwyMzk0OCwyMzc4NiwyMzgxOSwyMzgyOSwyMzgzMSwyMzkwMCwyMzgzOSwyMzgzNSwyMzgyNSwyMzgyOCwyMzg0MiwyMzgzNCwyMzgzMywyMzgzMiwyMzg4NCwyMzg5MCwyMzg4NiwyMzg4MywyMzkx'@; put 'NiwyMzkyMywyMzkyNiwyMzk0MywyMzk0MCwyMzkzOCwyMzk3MCwyMzk2NSwyMzk4MCwyMzk4MiwyMzk5NywyMzk1MiwyMzk5MSwyMzk5NiwyNDAwOSwyNDAxMywyNDAxOSwyNDAxOCwyNDAyMiwyNDAyNywyNDA0MywyNDA1MCwyNDA1MywyNDA3NSwyNDA5MCwyNDA4OSwyNDA4MSwyNDA5MSwy'@; put 'NDExOCwyNDExOSwyNDEzMiwyNDEzMSwyNDEyOCwyNDE0MiwyNDE1MSwyNDE0OCwyNDE1OSwyNDE2MiwyNDE2NCwyNDEzNSwyNDE4MSwyNDE4MiwyNDE4Niw0MDYzNiwyNDE5MSwyNDIyNCwyNDI1NywyNDI1OCwyNDI2NCwyNDI3MiwyNDI3MSwyNDI3OCwyNDI5MSwyNDI4NSwyNDI4MiwyNDI4'@; put 'MywyNDI5MCwyNDI4OSwyNDI5NiwyNDI5NywyNDMwMCwyNDMwNSwyNDMwNywyNDMwNCwyNDMwOCwyNDMxMiwyNDMxOCwyNDMyMywyNDMyOSwyNDQxMywyNDQxMiwyNDMzMSwyNDMzNywyNDM0MiwyNDM2MSwyNDM2NSwyNDM3NiwyNDM4NSwyNDM5MiwyNDM5NiwyNDM5OCwyNDM2NywyNDQwMSwy'@; put 'NDQwNiwyNDQwNywyNDQwOSwyNDQxNywyNDQyOSwyNDQzNSwyNDQzOSwyNDQ1MSwyNDQ1MCwyNDQ0NywyNDQ1OCwyNDQ1NiwyNDQ2NSwyNDQ1NSwyNDQ3OCwyNDQ3MywyNDQ3MiwyNDQ4MCwyNDQ4OCwyNDQ5MywyNDUwOCwyNDUzNCwyNDU3MSwyNDU0OCwyNDU2OCwyNDU2MSwyNDU0MSwyNDc1'@; put 'NSwyNDU3NSwyNDYwOSwyNDY3MiwyNDYwMSwyNDU5MiwyNDYxNywyNDU5MCwyNDYyNSwyNDYwMywyNDU5NywyNDYxOSwyNDYxNCwyNDU5MSwyNDYzNCwyNDY2NiwyNDY0MSwyNDY4MiwyNDY5NSwyNDY3MSwyNDY1MCwyNDY0NiwyNDY1MywyNDY3NSwyNDY0MywyNDY3NiwyNDY0MiwyNDY4NCwy'@; put 'NDY4MywyNDY2NSwyNDcwNSwyNDcxNywyNDgwNywyNDcwNywyNDczMCwyNDcwOCwyNDczMSwyNDcyNiwyNDcyNywyNDcyMiwyNDc0MywyNDcxNSwyNDgwMSwyNDc2MCwyNDgwMCwyNDc4NywyNDc1NiwyNDU2MCwyNDc2NSwyNDc3NCwyNDc1NywyNDc5MiwyNDkwOSwyNDg1MywyNDgzOCwyNDgy'@; put 'MiwyNDgyMywyNDgzMiwyNDgyMCwyNDgyNiwyNDgzNSwyNDg2NSwyNDgyNywyNDgxNywyNDg0NSwyNDg0NiwyNDkwMywyNDg5NCwyNDg3MiwyNDg3MSwyNDkwNiwyNDg5NSwyNDg5MiwyNDg3NiwyNDg4NCwyNDg5MywyNDg5OCwyNDkwMCwyNDk0NywyNDk1MSwyNDkyMCwyNDkyMSwyNDkyMiwy'@; put 'NDkzOSwyNDk0OCwyNDk0MywyNDkzMywyNDk0NSwyNDkyNywyNDkyNSwyNDkxNSwyNDk0OSwyNDk4NSwyNDk4MiwyNDk2NywyNTAwNCwyNDk4MCwyNDk4NiwyNDk3MCwyNDk3NywyNTAwMywyNTAwNiwyNTAzNiwyNTAzNCwyNTAzMywyNTA3OSwyNTAzMiwyNTAyNywyNTAzMCwyNTAxOCwyNTAz'@; put 'NSwzMjYzMywyNTAzNywyNTA2MiwyNTA1OSwyNTA3OCwyNTA4MiwyNTA3NiwyNTA4NywyNTA4NSwyNTA4NCwyNTA4NiwyNTA4OCwyNTA5NiwyNTA5NywyNTEwMSwyNTEwMCwyNTEwOCwyNTExNSwyNTExOCwyNTEyMSwyNTEzMCwyNTEzNCwyNTEzNiwyNTEzOCwyNTEzOSwyNTE1MywyNTE2Niwy'@; put 'NTE4MiwyNTE4NywyNTE3OSwyNTE4NCwyNTE5MiwyNTIxMiwyNTIxOCwyNTIyNSwyNTIxNCwyNTIzNCwyNTIzNSwyNTIzOCwyNTMwMCwyNTIxOSwyNTIzNiwyNTMwMywyNTI5NywyNTI3NSwyNTI5NSwyNTM0MywyNTI4NiwyNTgxMiwyNTI4OCwyNTMwOCwyNTI5MiwyNTI5MCwyNTI4MiwyNTI4'@; put 'NywyNTI0MywyNTI4OSwyNTM1NiwyNTMyNiwyNTMyOSwyNTM4MywyNTM0NiwyNTM1MiwyNTMyNywyNTMzMywyNTQyNCwyNTQwNiwyNTQyMSwyNTYyOCwyNTQyMywyNTQ5NCwyNTQ4NiwyNTQ3MiwyNTUxNSwyNTQ2MiwyNTUwNywyNTQ4NywyNTQ4MSwyNTUwMywyNTUyNSwyNTQ1MSwyNTQ0OSwy'@; put 'NTUzNCwyNTU3NywyNTUzNiwyNTU0MiwyNTU3MSwyNTU0NSwyNTU1NCwyNTU5MCwyNTU0MCwyNTYyMiwyNTY1MiwyNTYwNiwyNTYxOSwyNTYzOCwyNTY1NCwyNTg4NSwyNTYyMywyNTY0MCwyNTYxNSwyNTcwMywyNTcxMSwyNTcxOCwyNTY3OCwyNTg5OCwyNTc0OSwyNTc0NywyNTc2NSwyNTc2'@; put 'OSwyNTczNiwyNTc4OCwyNTgxOCwyNTgxMCwyNTc5NywyNTc5OSwyNTc4NywyNTgxNiwyNTc5NCwyNTg0MSwyNTgzMSwzMzI4OSwyNTgyNCwyNTgyNSwyNTI2MCwyNTgyNywyNTgzOSwyNTkwMCwyNTg0NiwyNTg0NCwyNTg0MiwyNTg1MCwyNTg1NiwyNTg1MywyNTg4MCwyNTg4NCwyNTg2MSwy'@; put 'NTg5MiwyNTg5MSwyNTg5OSwyNTkwOCwyNTkwOSwyNTkxMSwyNTkxMCwyNTkxMiwzMDAyNywyNTkyOCwyNTk0MiwyNTk0MSwyNTkzMywyNTk0NCwyNTk1MCwyNTk0OSwyNTk3MCwyNTk3NiwyNTk4NiwyNTk4NywzNTcyMiwyNjAxMSwyNjAxNSwyNjAyNywyNjAzOSwyNjA1MSwyNjA1NCwyNjA0'@; put 'OSwyNjA1MiwyNjA2MCwyNjA2NiwyNjA3NSwyNjA3MywyNjA4MCwyNjA4MSwyNjA5NywyNjQ4MiwyNjEyMiwyNjExNSwyNjEwNywyNjQ4MywyNjE2NSwyNjE2NiwyNjE2NCwyNjE0MCwyNjE5MSwyNjE4MCwyNjE4NSwyNjE3NywyNjIwNiwyNjIwNSwyNjIxMiwyNjIxNSwyNjIxNiwyNjIwNywy'@; put 'NjIxMCwyNjIyNCwyNjI0MywyNjI0OCwyNjI1NCwyNjI0OSwyNjI0NCwyNjI2NCwyNjI2OSwyNjMwNSwyNjI5NywyNjMxMywyNjMwMiwyNjMwMCwyNjMwOCwyNjI5NiwyNjMyNiwyNjMzMCwyNjMzNiwyNjE3NSwyNjM0MiwyNjM0NSwyNjM1MiwyNjM1NywyNjM1OSwyNjM4MywyNjM5MCwyNjM5'@; put 'OCwyNjQwNiwyNjQwNywzODcxMiwyNjQxNCwyNjQzMSwyNjQyMiwyNjQzMywyNjQyNCwyNjQyMywyNjQzOCwyNjQ2MiwyNjQ2NCwyNjQ1NywyNjQ2NywyNjQ2OCwyNjUwNSwyNjQ4MCwyNjUzNywyNjQ5MiwyNjQ3NCwyNjUwOCwyNjUwNywyNjUzNCwyNjUyOSwyNjUwMSwyNjU1MSwyNjYwNywy'@; put 'NjU0OCwyNjYwNCwyNjU0NywyNjYwMSwyNjU1MiwyNjU5NiwyNjU5MCwyNjU4OSwyNjU5NCwyNjYwNiwyNjU1MywyNjU3NCwyNjU2NiwyNjU5OSwyNzI5MiwyNjY1NCwyNjY5NCwyNjY2NSwyNjY4OCwyNjcwMSwyNjY3NCwyNjcwMiwyNjgwMywyNjY2NywyNjcxMywyNjcyMywyNjc0MywyNjc1'@; put 'MSwyNjc4MywyNjc2NywyNjc5NywyNjc3MiwyNjc4MSwyNjc3OSwyNjc1NSwyNzMxMCwyNjgwOSwyNjc0MCwyNjgwNSwyNjc4NCwyNjgxMCwyNjg5NSwyNjc2NSwyNjc1MCwyNjg4MSwyNjgyNiwyNjg4OCwyNjg0MCwyNjkxNCwyNjkxOCwyNjg0OSwyNjg5MiwyNjgyOSwyNjgzNiwyNjg1NSwy'@; put 'NjgzNywyNjkzNCwyNjg5OCwyNjg4NCwyNjgzOSwyNjg1MSwyNjkxNywyNjg3MywyNjg0OCwyNjg2MywyNjkyMCwyNjkyMiwyNjkwNiwyNjkxNSwyNjkxMywyNjgyMiwyNzAwMSwyNjk5OSwyNjk3MiwyN2UzLDI2OTg3LDI2OTY0LDI3MDA2LDI2OTkwLDI2OTM3LDI2OTk2LDI2OTQxLDI2OTY5'@; put 'LDI2OTI4LDI2OTc3LDI2OTc0LDI2OTczLDI3MDA5LDI2OTg2LDI3MDU4LDI3MDU0LDI3MDg4LDI3MDcxLDI3MDczLDI3MDkxLDI3MDcwLDI3MDg2LDIzNTI4LDI3MDgyLDI3MTAxLDI3MDY3LDI3MDc1LDI3MDQ3LDI3MTgyLDI3MDI1LDI3MDQwLDI3MDM2LDI3MDI5LDI3MDYwLDI3MTAyLDI3'@; put 'MTEyLDI3MTM4LDI3MTYzLDI3MTM1LDI3NDAyLDI3MTI5LDI3MTIyLDI3MTExLDI3MTQxLDI3MDU3LDI3MTY2LDI3MTE3LDI3MTU2LDI3MTE1LDI3MTQ2LDI3MTU0LDI3MzI5LDI3MTcxLDI3MTU1LDI3MjA0LDI3MTQ4LDI3MjUwLDI3MTkwLDI3MjU2LDI3MjA3LDI3MjM0LDI3MjI1LDI3MjM4'@; put 'LDI3MjA4LDI3MTkyLDI3MTcwLDI3MjgwLDI3Mjc3LDI3Mjk2LDI3MjY4LDI3Mjk4LDI3Mjk5LDI3Mjg3LDM0MzI3LDI3MzIzLDI3MzMxLDI3MzMwLDI3MzIwLDI3MzE1LDI3MzA4LDI3MzU4LDI3MzQ1LDI3MzU5LDI3MzA2LDI3MzU0LDI3MzcwLDI3Mzg3LDI3Mzk3LDM0MzI2LDI3Mzg2LDI3'@; put 'NDEwLDI3NDE0LDM5NzI5LDI3NDIzLDI3NDQ4LDI3NDQ3LDMwNDI4LDI3NDQ5LDM5MTUwLDI3NDYzLDI3NDU5LDI3NDY1LDI3NDcyLDI3NDgxLDI3NDc2LDI3NDgzLDI3NDg3LDI3NDg5LDI3NTEyLDI3NTEzLDI3NTE5LDI3NTIwLDI3NTI0LDI3NTIzLDI3NTMzLDI3NTQ0LDI3NTQxLDI3NTUw'@; put 'LDI3NTU2LDI3NTYyLDI3NTYzLDI3NTY3LDI3NTcwLDI3NTY5LDI3NTcxLDI3NTc1LDI3NTgwLDI3NTkwLDI3NTk1LDI3NjAzLDI3NjE1LDI3NjI4LDI3NjI3LDI3NjM1LDI3NjMxLDQwNjM4LDI3NjU2LDI3NjY3LDI3NjY4LDI3Njc1LDI3Njg0LDI3NjgzLDI3NzQyLDI3NzMzLDI3NzQ2LDI3'@; put 'NzU0LDI3Nzc4LDI3Nzg5LDI3ODAyLDI3Nzc3LDI3ODAzLDI3Nzc0LDI3NzUyLDI3NzYzLDI3Nzk0LDI3NzkyLDI3ODQ0LDI3ODg5LDI3ODU5LDI3ODM3LDI3ODYzLDI3ODQ1LDI3ODY5LDI3ODIyLDI3ODI1LDI3ODM4LDI3ODM0LDI3ODY3LDI3ODg3LDI3ODY1LDI3ODgyLDI3OTM1LDM0ODkz'@; put 'LDI3OTU4LDI3OTQ3LDI3OTY1LDI3OTYwLDI3OTI5LDI3OTU3LDI3OTU1LDI3OTIyLDI3OTE2LDI4MDAzLDI4MDUxLDI4MDA0LDI3OTk0LDI4MDI1LDI3OTkzLDI4MDQ2LDI4MDUzLDI4NjQ0LDI4MDM3LDI4MTUzLDI4MTgxLDI4MTcwLDI4MDg1LDI4MTAzLDI4MTM0LDI4MDg4LDI4MTAyLDI4'@; put 'MTQwLDI4MTI2LDI4MTA4LDI4MTM2LDI4MTE0LDI4MTAxLDI4MTU0LDI4MTIxLDI4MTMyLDI4MTE3LDI4MTM4LDI4MTQyLDI4MjA1LDI4MjcwLDI4MjA2LDI4MTg1LDI4Mjc0LDI4MjU1LDI4MjIyLDI4MTk1LDI4MjY3LDI4MjAzLDI4Mjc4LDI4MjM3LDI4MTkxLDI4MjI3LDI4MjE4LDI4MjM4'@; put 'LDI4MTk2LDI4NDE1LDI4MTg5LDI4MjE2LDI4MjkwLDI4MzMwLDI4MzEyLDI4MzYxLDI4MzQzLDI4MzcxLDI4MzQ5LDI4MzM1LDI4MzU2LDI4MzM4LDI4MzcyLDI4MzczLDI4MzAzLDI4MzI1LDI4MzU0LDI4MzE5LDI4NDgxLDI4NDMzLDI4NzQ4LDI4Mzk2LDI4NDA4LDI4NDE0LDI4NDc5LDI4'@; put 'NDAyLDI4NDY1LDI4Mzk5LDI4NDY2LDI4MzY0LDI4NDc4LDI4NDM1LDI4NDA3LDI4NTUwLDI4NTM4LDI4NTM2LDI4NTQ1LDI4NTQ0LDI4NTI3LDI4NTA3LDI4NjU5LDI4NTI1LDI4NTQ2LDI4NTQwLDI4NTA0LDI4NTU4LDI4NTYxLDI4NjEwLDI4NTE4LDI4NTk1LDI4NTc5LDI4NTc3LDI4NTgw'@; put 'LDI4NjAxLDI4NjE0LDI4NTg2LDI4NjM5LDI4NjI5LDI4NjUyLDI4NjI4LDI4NjMyLDI4NjU3LDI4NjU0LDI4NjM1LDI4NjgxLDI4NjgzLDI4NjY2LDI4Njg5LDI4NjczLDI4Njg3LDI4NjcwLDI4Njk5LDI4Njk4LDI4NTMyLDI4NzAxLDI4Njk2LDI4NzAzLDI4NzIwLDI4NzM0LDI4NzIyLDI4'@; put 'NzUzLDI4NzcxLDI4ODI1LDI4ODE4LDI4ODQ3LDI4OTEzLDI4ODQ0LDI4ODU2LDI4ODUxLDI4ODQ2LDI4ODk1LDI4ODc1LDI4ODkzLDI4ODg5LDI4OTM3LDI4OTI1LDI4OTU2LDI4OTUzLDI5MDI5LDI5MDEzLDI5MDY0LDI5MDMwLDI5MDI2LDI5MDA0LDI5MDE0LDI5MDM2LDI5MDcxLDI5MTc5'@; put 'LDI5MDYwLDI5MDc3LDI5MDk2LDI5MTAwLDI5MTQzLDI5MTEzLDI5MTE4LDI5MTM4LDI5MTI5LDI5MTQwLDI5MTM0LDI5MTUyLDI5MTY0LDI5MTU5LDI5MTczLDI5MTgwLDI5MTc3LDI5MTgzLDI5MTk3LDI5MjAwLDI5MjExLDI5MjI0LDI5MjI5LDI5MjI4LDI5MjMyLDI5MjM0LDI5MjQzLDI5'@; put 'MjQ0LDI5MjQ3LDI5MjQ4LDI5MjU0LDI5MjU5LDI5MjcyLDI5MzAwLDI5MzEwLDI5MzE0LDI5MzEzLDI5MzE5LDI5MzMwLDI5MzM0LDI5MzQ2LDI5MzUxLDI5MzY5LDI5MzYyLDI5Mzc5LDI5MzgyLDI5MzgwLDI5MzkwLDI5Mzk0LDI5NDEwLDI5NDA4LDI5NDA5LDI5NDMzLDI5NDMxLDIwNDk1'@; put 'LDI5NDYzLDI5NDUwLDI5NDY4LDI5NDYyLDI5NDY5LDI5NDkyLDI5NDg3LDI5NDgxLDI5NDc3LDI5NTAyLDI5NTE4LDI5NTE5LDQwNjY0LDI5NTI3LDI5NTQ2LDI5NTQ0LDI5NTUyLDI5NTYwLDI5NTU3LDI5NTYzLDI5NTYyLDI5NjQwLDI5NjE5LDI5NjQ2LDI5NjI3LDI5NjMyLDI5NjY5LDI5'@; put 'Njc4LDI5NjYyLDI5ODU4LDI5NzAxLDI5ODA3LDI5NzMzLDI5Njg4LDI5NzQ2LDI5NzU0LDI5NzgxLDI5NzU5LDI5NzkxLDI5Nzg1LDI5NzYxLDI5Nzg4LDI5ODAxLDI5ODA4LDI5Nzk1LDI5ODAyLDI5ODE0LDI5ODIyLDI5ODM1LDI5ODU0LDI5ODYzLDI5ODk4LDI5OTAzLDI5OTA4LDI5Njgx'@; put 'LDI5OTIwLDI5OTIzLDI5OTI3LDI5OTI5LDI5OTM0LDI5OTM4LDI5OTM2LDI5OTM3LDI5OTQ0LDI5OTQzLDI5OTU2LDI5OTU1LDI5OTU3LDI5OTY0LDI5OTY2LDI5OTY1LDI5OTczLDI5OTcxLDI5OTgyLDI5OTkwLDI5OTk2LDMwMDEyLDMwMDIwLDMwMDI5LDMwMDI2LDMwMDI1LDMwMDQzLDMw'@; put 'MDIyLDMwMDQyLDMwMDU3LDMwMDUyLDMwMDU1LDMwMDU5LDMwMDYxLDMwMDcyLDMwMDcwLDMwMDg2LDMwMDg3LDMwMDY4LDMwMDkwLDMwMDg5LDMwMDgyLDMwMTAwLDMwMTA2LDMwMTA5LDMwMTE3LDMwMTE1LDMwMTQ2LDMwMTMxLDMwMTQ3LDMwMTMzLDMwMTQxLDMwMTM2LDMwMTQwLDMwMTI5'@; put 'LDMwMTU3LDMwMTU0LDMwMTYyLDMwMTY5LDMwMTc5LDMwMTc0LDMwMjA2LDMwMjA3LDMwMjA0LDMwMjA5LDMwMTkyLDMwMjAyLDMwMTk0LDMwMTk1LDMwMjE5LDMwMjIxLDMwMjE3LDMwMjM5LDMwMjQ3LDMwMjQwLDMwMjQxLDMwMjQyLDMwMjQ0LDMwMjYwLDMwMjU2LDMwMjY3LDMwMjc5LDMw'@; put 'MjgwLDMwMjc4LDMwMzAwLDMwMjk2LDMwMzA1LDMwMzA2LDMwMzEyLDMwMzEzLDMwMzE0LDMwMzExLDMwMzE2LDMwMzIwLDMwMzIyLDMwMzI2LDMwMzI4LDMwMzMyLDMwMzM2LDMwMzM5LDMwMzQ0LDMwMzQ3LDMwMzUwLDMwMzU4LDMwMzU1LDMwMzYxLDMwMzYyLDMwMzg0LDMwMzg4LDMwMzky'@; put 'LDMwMzkzLDMwMzk0LDMwNDAyLDMwNDEzLDMwNDIyLDMwNDE4LDMwNDMwLDMwNDMzLDMwNDM3LDMwNDM5LDMwNDQyLDM0MzUxLDMwNDU5LDMwNDcyLDMwNDcxLDMwNDY4LDMwNTA1LDMwNTAwLDMwNDk0LDMwNTAxLDMwNTAyLDMwNDkxLDMwNTE5LDMwNTIwLDMwNTM1LDMwNTU0LDMwNTY4LDMw'@; put 'NTcxLDMwNTU1LDMwNTY1LDMwNTkxLDMwNTkwLDMwNTg1LDMwNjA2LDMwNjAzLDMwNjA5LDMwNjI0LDMwNjIyLDMwNjQwLDMwNjQ2LDMwNjQ5LDMwNjU1LDMwNjUyLDMwNjUzLDMwNjUxLDMwNjYzLDMwNjY5LDMwNjc5LDMwNjgyLDMwNjg0LDMwNjkxLDMwNzAyLDMwNzE2LDMwNzMyLDMwNzM4'@; put 'LDMxMDE0LDMwNzUyLDMxMDE4LDMwNzg5LDMwODYyLDMwODM2LDMwODU0LDMwODQ0LDMwODc0LDMwODYwLDMwODgzLDMwOTAxLDMwODkwLDMwODk1LDMwOTI5LDMwOTE4LDMwOTIzLDMwOTMyLDMwOTEwLDMwOTA4LDMwOTE3LDMwOTIyLDMwOTU2LDMwOTUxLDMwOTM4LDMwOTczLDMwOTY0LDMw'@; put 'OTgzLDMwOTk0LDMwOTkzLDMxMDAxLDMxMDIwLDMxMDE5LDMxMDQwLDMxMDcyLDMxMDYzLDMxMDcxLDMxMDY2LDMxMDYxLDMxMDU5LDMxMDk4LDMxMTAzLDMxMTE0LDMxMTMzLDMxMTQzLDQwNzc5LDMxMTQ2LDMxMTUwLDMxMTU1LDMxMTYxLDMxMTYyLDMxMTc3LDMxMTg5LDMxMjA3LDMxMjEy'@; put 'LDMxMjAxLDMxMjAzLDMxMjQwLDMxMjQ1LDMxMjU2LDMxMjU3LDMxMjY0LDMxMjYzLDMxMTA0LDMxMjgxLDMxMjkxLDMxMjk0LDMxMjg3LDMxMjk5LDMxMzE5LDMxMzA1LDMxMzI5LDMxMzMwLDMxMzM3LDQwODYxLDMxMzQ0LDMxMzUzLDMxMzU3LDMxMzY4LDMxMzgzLDMxMzgxLDMxMzg0LDMx'@; put 'MzgyLDMxNDAxLDMxNDMyLDMxNDA4LDMxNDE0LDMxNDI5LDMxNDI4LDMxNDIzLDM2OTk1LDMxNDMxLDMxNDM0LDMxNDM3LDMxNDM5LDMxNDQ1LDMxNDQzLDMxNDQ5LDMxNDUwLDMxNDUzLDMxNDU3LDMxNDU4LDMxNDYyLDMxNDY5LDMxNDcyLDMxNDkwLDMxNTAzLDMxNDk4LDMxNDk0LDMxNTM5'@; put 'LDMxNTEyLDMxNTEzLDMxNTE4LDMxNTQxLDMxNTI4LDMxNTQyLDMxNTY4LDMxNjEwLDMxNDkyLDMxNTY1LDMxNDk5LDMxNTY0LDMxNTU3LDMxNjA1LDMxNTg5LDMxNjA0LDMxNTkxLDMxNjAwLDMxNjAxLDMxNTk2LDMxNTk4LDMxNjQ1LDMxNjQwLDMxNjQ3LDMxNjI5LDMxNjQ0LDMxNjQyLDMx'@; put 'NjI3LDMxNjM0LDMxNjMxLDMxNTgxLDMxNjQxLDMxNjkxLDMxNjgxLDMxNjkyLDMxNjk1LDMxNjY4LDMxNjg2LDMxNzA5LDMxNzIxLDMxNzYxLDMxNzY0LDMxNzE4LDMxNzE3LDMxODQwLDMxNzQ0LDMxNzUxLDMxNzYzLDMxNzMxLDMxNzM1LDMxNzY3LDMxNzU3LDMxNzM0LDMxNzc5LDMxNzgz'@; put 'LDMxNzg2LDMxNzc1LDMxNzk5LDMxNzg3LDMxODA1LDMxODIwLDMxODExLDMxODI4LDMxODIzLDMxODA4LDMxODI0LDMxODMyLDMxODM5LDMxODQ0LDMxODMwLDMxODQ1LDMxODUyLDMxODYxLDMxODc1LDMxODg4LDMxOTA4LDMxOTE3LDMxOTA2LDMxOTE1LDMxOTA1LDMxOTEyLDMxOTIzLDMx'@; put 'OTIyLDMxOTIxLDMxOTE4LDMxOTI5LDMxOTMzLDMxOTM2LDMxOTQxLDMxOTM4LDMxOTYwLDMxOTU0LDMxOTY0LDMxOTcwLDM5NzM5LDMxOTgzLDMxOTg2LDMxOTg4LDMxOTkwLDMxOTk0LDMyMDA2LDMyMDAyLDMyMDI4LDMyMDIxLDMyMDEwLDMyMDY5LDMyMDc1LDMyMDQ2LDMyMDUwLDMyMDYz'@; put 'LDMyMDUzLDMyMDcwLDMyMTE1LDMyMDg2LDMyMDc4LDMyMTE0LDMyMTA0LDMyMTEwLDMyMDc5LDMyMDk5LDMyMTQ3LDMyMTM3LDMyMDkxLDMyMTQzLDMyMTI1LDMyMTU1LDMyMTg2LDMyMTc0LDMyMTYzLDMyMTgxLDMyMTk5LDMyMTg5LDMyMTcxLDMyMzE3LDMyMTYyLDMyMTc1LDMyMjIwLDMy'@; put 'MTg0LDMyMTU5LDMyMTc2LDMyMjE2LDMyMjIxLDMyMjI4LDMyMjIyLDMyMjUxLDMyMjQyLDMyMjI1LDMyMjYxLDMyMjY2LDMyMjkxLDMyMjg5LDMyMjc0LDMyMzA1LDMyMjg3LDMyMjY1LDMyMjY3LDMyMjkwLDMyMzI2LDMyMzU4LDMyMzE1LDMyMzA5LDMyMzEzLDMyMzIzLDMyMzExLDMyMzA2'@; put 'LDMyMzE0LDMyMzU5LDMyMzQ5LDMyMzQyLDMyMzUwLDMyMzQ1LDMyMzQ2LDMyMzc3LDMyMzYyLDMyMzYxLDMyMzgwLDMyMzc5LDMyMzg3LDMyMjEzLDMyMzgxLDM2NzgyLDMyMzgzLDMyMzkyLDMyMzkzLDMyMzk2LDMyNDAyLDMyNDAwLDMyNDAzLDMyNDA0LDMyNDA2LDMyMzk4LDMyNDExLDMy'@; put 'NDEyLDMyNTY4LDMyNTcwLDMyNTgxLDMyNTg4LDMyNTg5LDMyNTkwLDMyNTkyLDMyNTkzLDMyNTk3LDMyNTk2LDMyNjAwLDMyNjA3LDMyNjA4LDMyNjE2LDMyNjE3LDMyNjE1LDMyNjMyLDMyNjQyLDMyNjQ2LDMyNjQzLDMyNjQ4LDMyNjQ3LDMyNjUyLDMyNjYwLDMyNjcwLDMyNjY5LDMyNjY2'@; put 'LDMyNjc1LDMyNjg3LDMyNjkwLDMyNjk3LDMyNjg2LDMyNjk0LDMyNjk2LDM1Njk3LDMyNzA5LDMyNzEwLDMyNzE0LDMyNzI1LDMyNzI0LDMyNzM3LDMyNzQyLDMyNzQ1LDMyNzU1LDMyNzYxLDM5MTMyLDMyNzc0LDMyNzcyLDMyNzc5LDMyNzg2LDMyNzkyLDMyNzkzLDMyNzk2LDMyODAxLDMy'@; put 'ODA4LDMyODMxLDMyODI3LDMyODQyLDMyODM4LDMyODUwLDMyODU2LDMyODU4LDMyODYzLDMyODY2LDMyODcyLDMyODgzLDMyODgyLDMyODgwLDMyODg2LDMyODg5LDMyODkzLDMyODk1LDMyOTAwLDMyOTAyLDMyOTAxLDMyOTIzLDMyOTE1LDMyOTIyLDMyOTQxLDIwODgwLDMyOTQwLDMyOTg3'@; put 'LDMyOTk3LDMyOTg1LDMyOTg5LDMyOTY0LDMyOTg2LDMyOTgyLDMzMDMzLDMzMDA3LDMzMDA5LDMzMDUxLDMzMDY1LDMzMDU5LDMzMDcxLDMzMDk5LDM4NTM5LDMzMDk0LDMzMDg2LDMzMTA3LDMzMTA1LDMzMDIwLDMzMTM3LDMzMTM0LDMzMTI1LDMzMTI2LDMzMTQwLDMzMTU1LDMzMTYwLDMz'@; put 'MTYyLDMzMTUyLDMzMTU0LDMzMTg0LDMzMTczLDMzMTg4LDMzMTg3LDMzMTE5LDMzMTcxLDMzMTkzLDMzMjAwLDMzMjA1LDMzMjE0LDMzMjA4LDMzMjEzLDMzMjE2LDMzMjE4LDMzMjEwLDMzMjI1LDMzMjI5LDMzMjMzLDMzMjQxLDMzMjQwLDMzMjI0LDMzMjQyLDMzMjQ3LDMzMjQ4LDMzMjU1'@; put 'LDMzMjc0LDMzMjc1LDMzMjc4LDMzMjgxLDMzMjgyLDMzMjg1LDMzMjg3LDMzMjkwLDMzMjkzLDMzMjk2LDMzMzAyLDMzMzIxLDMzMzIzLDMzMzM2LDMzMzMxLDMzMzQ0LDMzMzY5LDMzMzY4LDMzMzczLDMzMzcwLDMzMzc1LDMzMzgwLDMzMzc4LDMzMzg0LDMzMzg2LDMzMzg3LDMzMzI2LDMz'@; put 'MzkzLDMzMzk5LDMzNDAwLDMzNDA2LDMzNDIxLDMzNDI2LDMzNDUxLDMzNDM5LDMzNDY3LDMzNDUyLDMzNTA1LDMzNTA3LDMzNTAzLDMzNDkwLDMzNTI0LDMzNTIzLDMzNTMwLDMzNjgzLDMzNTM5LDMzNTMxLDMzNTI5LDMzNTAyLDMzNTQyLDMzNTAwLDMzNTQ1LDMzNDk3LDMzNTg5LDMzNTg4'@; put 'LDMzNTU4LDMzNTg2LDMzNTg1LDMzNjAwLDMzNTkzLDMzNjE2LDMzNjA1LDMzNTgzLDMzNTc5LDMzNTU5LDMzNTYwLDMzNjY5LDMzNjkwLDMzNzA2LDMzNjk1LDMzNjk4LDMzNjg2LDMzNTcxLDMzNjc4LDMzNjcxLDMzNjc0LDMzNjYwLDMzNzE3LDMzNjUxLDMzNjUzLDMzNjk2LDMzNjczLDMz'@; put 'NzA0LDMzNzgwLDMzODExLDMzNzcxLDMzNzQyLDMzNzg5LDMzNzk1LDMzNzUyLDMzODAzLDMzNzI5LDMzNzgzLDMzNzk5LDMzNzYwLDMzNzc4LDMzODA1LDMzODI2LDMzODI0LDMzNzI1LDMzODQ4LDM0MDU0LDMzNzg3LDMzOTAxLDMzODM0LDMzODUyLDM0MTM4LDMzOTI0LDMzOTExLDMzODk5'@; put 'LDMzOTY1LDMzOTAyLDMzOTIyLDMzODk3LDMzODYyLDMzODM2LDMzOTAzLDMzOTEzLDMzODQ1LDMzOTk0LDMzODkwLDMzOTc3LDMzOTgzLDMzOTUxLDM0MDA5LDMzOTk3LDMzOTc5LDM0MDEwLDM0ZTMsMzM5ODUsMzM5OTAsMzQwMDYsMzM5NTMsMzQwODEsMzQwNDcsMzQwMzYsMzQwNzEsMzQw'@; put 'NzIsMzQwOTIsMzQwNzksMzQwNjksMzQwNjgsMzQwNDQsMzQxMTIsMzQxNDcsMzQxMzYsMzQxMjAsMzQxMTMsMzQzMDYsMzQxMjMsMzQxMzMsMzQxNzYsMzQyMTIsMzQxODQsMzQxOTMsMzQxODYsMzQyMTYsMzQxNTcsMzQxOTYsMzQyMDMsMzQyODIsMzQxODMsMzQyMDQsMzQxNjcsMzQxNzQs'@; put 'MzQxOTIsMzQyNDksMzQyMzQsMzQyNTUsMzQyMzMsMzQyNTYsMzQyNjEsMzQyNjksMzQyNzcsMzQyNjgsMzQyOTcsMzQzMTQsMzQzMjMsMzQzMTUsMzQzMDIsMzQyOTgsMzQzMTAsMzQzMzgsMzQzMzAsMzQzNTIsMzQzNjcsMzQzODEsMjAwNTMsMzQzODgsMzQzOTksMzQ0MDcsMzQ0MTcsMzQ0'@; put 'NTEsMzQ0NjcsMzQ0NzMsMzQ0NzQsMzQ0NDMsMzQ0NDQsMzQ0ODYsMzQ0NzksMzQ1MDAsMzQ1MDIsMzQ0ODAsMzQ1MDUsMzQ4NTEsMzQ0NzUsMzQ1MTYsMzQ1MjYsMzQ1MzcsMzQ1NDAsMzQ1MjcsMzQ1MjMsMzQ1NDMsMzQ1NzgsMzQ1NjYsMzQ1NjgsMzQ1NjAsMzQ1NjMsMzQ1NTUsMzQ1Nzcs'@; put 'MzQ1NjksMzQ1NzMsMzQ1NTMsMzQ1NzAsMzQ2MTIsMzQ2MjMsMzQ2MTUsMzQ2MTksMzQ1OTcsMzQ2MDEsMzQ1ODYsMzQ2NTYsMzQ2NTUsMzQ2ODAsMzQ2MzYsMzQ2MzgsMzQ2NzYsMzQ2NDcsMzQ2NjQsMzQ2NzAsMzQ2NDksMzQ2NDMsMzQ2NTksMzQ2NjYsMzQ4MjEsMzQ3MjIsMzQ3MTksMzQ2'@; put 'OTAsMzQ3MzUsMzQ3NjMsMzQ3NDksMzQ3NTIsMzQ3NjgsMzg2MTQsMzQ3MzEsMzQ3NTYsMzQ3MzksMzQ3NTksMzQ3NTgsMzQ3NDcsMzQ3OTksMzQ4MDIsMzQ3ODQsMzQ4MzEsMzQ4MjksMzQ4MTQsMzQ4MDYsMzQ4MDcsMzQ4MzAsMzQ3NzAsMzQ4MzMsMzQ4MzgsMzQ4MzcsMzQ4NTAsMzQ4NDks'@; put 'MzQ4NjUsMzQ4NzAsMzQ4NzMsMzQ4NTUsMzQ4NzUsMzQ4ODQsMzQ4ODIsMzQ4OTgsMzQ5MDUsMzQ5MTAsMzQ5MTQsMzQ5MjMsMzQ5NDUsMzQ5NDIsMzQ5NzQsMzQ5MzMsMzQ5NDEsMzQ5OTcsMzQ5MzAsMzQ5NDYsMzQ5NjcsMzQ5NjIsMzQ5OTAsMzQ5NjksMzQ5NzgsMzQ5NTcsMzQ5ODAsMzQ5'@; put 'OTIsMzUwMDcsMzQ5OTMsMzUwMTEsMzUwMTIsMzUwMjgsMzUwMzIsMzUwMzMsMzUwMzcsMzUwNjUsMzUwNzQsMzUwNjgsMzUwNjAsMzUwNDgsMzUwNTgsMzUwNzYsMzUwODQsMzUwODIsMzUwOTEsMzUxMzksMzUxMDIsMzUxMDksMzUxMTQsMzUxMTUsMzUxMzcsMzUxNDAsMzUxMzEsMzUxMjYs'@; put 'MzUxMjgsMzUxNDgsMzUxMDEsMzUxNjgsMzUxNjYsMzUxNzQsMzUxNzIsMzUxODEsMzUxNzgsMzUxODMsMzUxODgsMzUxOTEsMzUxOTgsMzUyMDMsMzUyMDgsMzUyMTAsMzUyMTksMzUyMjQsMzUyMzMsMzUyNDEsMzUyMzgsMzUyNDQsMzUyNDcsMzUyNTAsMzUyNTgsMzUyNjEsMzUyNjMsMzUy'@; put 'NjQsMzUyOTAsMzUyOTIsMzUyOTMsMzUzMDMsMzUzMTYsMzUzMjAsMzUzMzEsMzUzNTAsMzUzNDQsMzUzNDAsMzUzNTUsMzUzNTcsMzUzNjUsMzUzODIsMzUzOTMsMzU0MTksMzU0MTAsMzUzOTgsMzU0MDAsMzU0NTIsMzU0MzcsMzU0MzYsMzU0MjYsMzU0NjEsMzU0NTgsMzU0NjAsMzU0OTYs'@; put 'MzU0ODksMzU0NzMsMzU0OTMsMzU0OTQsMzU0ODIsMzU0OTEsMzU1MjQsMzU1MzMsMzU1MjIsMzU1NDYsMzU1NjMsMzU1NzEsMzU1NTksMzU1NTYsMzU1NjksMzU2MDQsMzU1NTIsMzU1NTQsMzU1NzUsMzU1NTAsMzU1NDcsMzU1OTYsMzU1OTEsMzU2MTAsMzU1NTMsMzU2MDYsMzU2MDAsMzU2'@; put 'MDcsMzU2MTYsMzU2MzUsMzg4MjcsMzU2MjIsMzU2MjcsMzU2NDYsMzU2MjQsMzU2NDksMzU2NjAsMzU2NjMsMzU2NjIsMzU2NTcsMzU2NzAsMzU2NzUsMzU2NzQsMzU2OTEsMzU2NzksMzU2OTIsMzU2OTUsMzU3MDAsMzU3MDksMzU3MTIsMzU3MjQsMzU3MjYsMzU3MzAsMzU3MzEsMzU3MzQs'@; put 'MzU3MzcsMzU3MzgsMzU4OTgsMzU5MDUsMzU5MDMsMzU5MTIsMzU5MTYsMzU5MTgsMzU5MjAsMzU5MjUsMzU5MzgsMzU5NDgsMzU5NjAsMzU5NjIsMzU5NzAsMzU5NzcsMzU5NzMsMzU5NzgsMzU5ODEsMzU5ODIsMzU5ODgsMzU5NjQsMzU5OTIsMjUxMTcsMzYwMTMsMzYwMTAsMzYwMjksMzYw'@; put 'MTgsMzYwMTksMzYwMTQsMzYwMjIsMzYwNDAsMzYwMzMsMzYwNjgsMzYwNjcsMzYwNTgsMzYwOTMsMzYwOTAsMzYwOTEsMzYxMDAsMzYxMDEsMzYxMDYsMzYxMDMsMzYxMTEsMzYxMDksMzYxMTIsNDA3ODIsMzYxMTUsMzYwNDUsMzYxMTYsMzYxMTgsMzYxOTksMzYyMDUsMzYyMDksMzYyMTEs'@; put 'MzYyMjUsMzYyNDksMzYyOTAsMzYyODYsMzYyODIsMzYzMDMsMzYzMTQsMzYzMTAsMzYzMDAsMzYzMTUsMzYyOTksMzYzMzAsMzYzMzEsMzYzMTksMzYzMjMsMzYzNDgsMzYzNjAsMzYzNjEsMzYzNTEsMzYzODEsMzYzODIsMzYzNjgsMzYzODMsMzY0MTgsMzY0MDUsMzY0MDAsMzY0MDQsMzY0'@; put 'MjYsMzY0MjMsMzY0MjUsMzY0MjgsMzY0MzIsMzY0MjQsMzY0NDEsMzY0NTIsMzY0NDgsMzYzOTQsMzY0NTEsMzY0MzcsMzY0NzAsMzY0NjYsMzY0NzYsMzY0ODEsMzY0ODcsMzY0ODUsMzY0ODQsMzY0OTEsMzY0OTAsMzY0OTksMzY0OTcsMzY1MDAsMzY1MDUsMzY1MjIsMzY1MTMsMzY1MjQs'@; put 'MzY1MjgsMzY1NTAsMzY1MjksMzY1NDIsMzY1NDksMzY1NTIsMzY1NTUsMzY1NzEsMzY1NzksMzY2MDQsMzY2MDMsMzY1ODcsMzY2MDYsMzY2MTgsMzY2MTMsMzY2MjksMzY2MjYsMzY2MzMsMzY2MjcsMzY2MzYsMzY2MzksMzY2MzUsMzY2MjAsMzY2NDYsMzY2NTksMzY2NjcsMzY2NjUsMzY2'@; put 'NzcsMzY2NzQsMzY2NzAsMzY2ODQsMzY2ODEsMzY2NzgsMzY2ODYsMzY2OTUsMzY3MDAsMzY3MDYsMzY3MDcsMzY3MDgsMzY3NjQsMzY3NjcsMzY3NzEsMzY3ODEsMzY3ODMsMzY3OTEsMzY4MjYsMzY4MzcsMzY4MzQsMzY4NDIsMzY4NDcsMzY5OTksMzY4NTIsMzY4NjksMzY4NTcsMzY4NTgs'@; put 'MzY4ODEsMzY4ODUsMzY4OTcsMzY4NzcsMzY4OTQsMzY4ODYsMzY4NzUsMzY5MDMsMzY5MTgsMzY5MTcsMzY5MjEsMzY4NTYsMzY5NDMsMzY5NDQsMzY5NDUsMzY5NDYsMzY4NzgsMzY5MzcsMzY5MjYsMzY5NTAsMzY5NTIsMzY5NTgsMzY5NjgsMzY5NzUsMzY5ODIsMzg1NjgsMzY5NzgsMzY5'@; put 'OTQsMzY5ODksMzY5OTMsMzY5OTIsMzcwMDIsMzcwMDEsMzcwMDcsMzcwMzIsMzcwMzksMzcwNDEsMzcwNDUsMzcwOTAsMzcwOTIsMjUxNjAsMzcwODMsMzcxMjIsMzcxMzgsMzcxNDUsMzcxNzAsMzcxNjgsMzcxOTQsMzcyMDYsMzcyMDgsMzcyMTksMzcyMjEsMzcyMjUsMzcyMzUsMzcyMzQs'@; put 'MzcyNTksMzcyNTcsMzcyNTAsMzcyODIsMzcyOTEsMzcyOTUsMzcyOTAsMzczMDEsMzczMDAsMzczMDYsMzczMTIsMzczMTMsMzczMjEsMzczMjMsMzczMjgsMzczMzQsMzczNDMsMzczNDUsMzczMzksMzczNzIsMzczNjUsMzczNjYsMzc0MDYsMzczNzUsMzczOTYsMzc0MjAsMzczOTcsMzcz'@; put 'OTMsMzc0NzAsMzc0NjMsMzc0NDUsMzc0NDksMzc0NzYsMzc0NDgsMzc1MjUsMzc0MzksMzc0NTEsMzc0NTYsMzc1MzIsMzc1MjYsMzc1MjMsMzc1MzEsMzc0NjYsMzc1ODMsMzc1NjEsMzc1NTksMzc2MDksMzc2NDcsMzc2MjYsMzc3MDAsMzc2NzgsMzc2NTcsMzc2NjYsMzc2NTgsMzc2Njcs'@; put 'Mzc2OTAsMzc2ODUsMzc2OTEsMzc3MjQsMzc3MjgsMzc3NTYsMzc3NDIsMzc3MTgsMzc4MDgsMzc4MDQsMzc4MDUsMzc3ODAsMzc4MTcsMzc4NDYsMzc4NDcsMzc4NjQsMzc4NjEsMzc4NDgsMzc4MjcsMzc4NTMsMzc4NDAsMzc4MzIsMzc4NjAsMzc5MTQsMzc5MDgsMzc5MDcsMzc4OTEsMzc4'@; put 'OTUsMzc5MDQsMzc5NDIsMzc5MzEsMzc5NDEsMzc5MjEsMzc5NDYsMzc5NTMsMzc5NzAsMzc5NTYsMzc5NzksMzc5ODQsMzc5ODYsMzc5ODIsMzc5OTQsMzc0MTcsMzhlMywzODAwNSwzODAwNywzODAxMywzNzk3OCwzODAxMiwzODAxNCwzODAxNywzODAxNSwzODI3NCwzODI3OSwzODI4Miwz'@; put 'ODI5MiwzODI5NCwzODI5NiwzODI5NywzODMwNCwzODMxMiwzODMxMSwzODMxNywzODMzMiwzODMzMSwzODMyOSwzODMzNCwzODM0NiwyODY2MiwzODMzOSwzODM0OSwzODM0OCwzODM1NywzODM1NiwzODM1OCwzODM2NCwzODM2OSwzODM3MywzODM3MCwzODQzMywzODQ0MCwzODQ0NiwzODQ0'@; put 'NywzODQ2NiwzODQ3NiwzODQ3OSwzODQ3NSwzODUxOSwzODQ5MiwzODQ5NCwzODQ5MywzODQ5NSwzODUwMiwzODUxNCwzODUwOCwzODU0MSwzODU1MiwzODU0OSwzODU1MSwzODU3MCwzODU2NywzODU3NywzODU3OCwzODU3NiwzODU4MCwzODU4MiwzODU4NCwzODU4NSwzODYwNiwzODYwMywz'@; put 'ODYwMSwzODYwNSwzNTE0OSwzODYyMCwzODY2OSwzODYxMywzODY0OSwzODY2MCwzODY2MiwzODY2NCwzODY3NSwzODY3MCwzODY3MywzODY3MSwzODY3OCwzODY4MSwzODY5MiwzODY5OCwzODcwNCwzODcxMywzODcxNywzODcxOCwzODcyNCwzODcyNiwzODcyOCwzODcyMiwzODcyOSwzODc0'@; put 'OCwzODc1MiwzODc1NiwzODc1OCwzODc2MCwyMTIwMiwzODc2MywzODc2OSwzODc3NywzODc4OSwzODc4MCwzODc4NSwzODc3OCwzODc5MCwzODc5NSwzODc5OSwzODgwMCwzODgxMiwzODgyNCwzODgyMiwzODgxOSwzODgzNSwzODgzNiwzODg1MSwzODg1NCwzODg1NiwzODg1OSwzODg3Niwz'@; put 'ODg5Myw0MDc4MywzODg5OCwzMTQ1NSwzODkwMiwzODkwMSwzODkyNywzODkyNCwzODk2OCwzODk0OCwzODk0NSwzODk2NywzODk3MywzODk4MiwzODk5MSwzODk4NywzOTAxOSwzOTAyMywzOTAyNCwzOTAyNSwzOTAyOCwzOTAyNywzOTA4MiwzOTA4NywzOTA4OSwzOTA5NCwzOTEwOCwzOTEw'@; put 'NywzOTExMCwzOTE0NSwzOTE0NywzOTE3MSwzOTE3NywzOTE4NiwzOTE4OCwzOTE5MiwzOTIwMSwzOTE5NywzOTE5OCwzOTIwNCwzOTIwMCwzOTIxMiwzOTIxNCwzOTIyOSwzOTIzMCwzOTIzNCwzOTI0MSwzOTIzNywzOTI0OCwzOTI0MywzOTI0OSwzOTI1MCwzOTI0NCwzOTI1MywzOTMxOSwz'@; put 'OTMyMCwzOTMzMywzOTM0MSwzOTM0MiwzOTM1NiwzOTM5MSwzOTM4NywzOTM4OSwzOTM4NCwzOTM3NywzOTQwNSwzOTQwNiwzOTQwOSwzOTQxMCwzOTQxOSwzOTQxNiwzOTQyNSwzOTQzOSwzOTQyOSwzOTM5NCwzOTQ0OSwzOTQ2NywzOTQ3OSwzOTQ5MywzOTQ5MCwzOTQ4OCwzOTQ5MSwzOTQ4'@; put 'NiwzOTUwOSwzOTUwMSwzOTUxNSwzOTUxMSwzOTUxOSwzOTUyMiwzOTUyNSwzOTUyNCwzOTUyOSwzOTUzMSwzOTUzMCwzOTU5NywzOTYwMCwzOTYxMiwzOTYxNiwzOTYzMSwzOTYzMywzOTYzNSwzOTYzNiwzOTY0NiwzOTY0NywzOTY1MCwzOTY1MSwzOTY1NCwzOTY2MywzOTY1OSwzOTY2Miwz'@; put 'OTY2OCwzOTY2NSwzOTY3MSwzOTY3NSwzOTY4NiwzOTcwNCwzOTcwNiwzOTcxMSwzOTcxNCwzOTcxNSwzOTcxNywzOTcxOSwzOTcyMCwzOTcyMSwzOTcyMiwzOTcyNiwzOTcyNywzOTczMCwzOTc0OCwzOTc0NywzOTc1OSwzOTc1NywzOTc1OCwzOTc2MSwzOTc2OCwzOTc5NiwzOTgyNywzOTgx'@; put 'MSwzOTgyNSwzOTgzMCwzOTgzMSwzOTgzOSwzOTg0MCwzOTg0OCwzOTg2MCwzOTg3MiwzOTg4MiwzOTg2NSwzOTg3OCwzOTg4NywzOTg4OSwzOTg5MCwzOTkwNywzOTkwNiwzOTkwOCwzOTg5MiwzOTkwNSwzOTk5NCwzOTkyMiwzOTkyMSwzOTkyMCwzOTk1NywzOTk1NiwzOTk0NSwzOTk1NSwz'@; put 'OTk0OCwzOTk0MiwzOTk0NCwzOTk1NCwzOTk0NiwzOTk0MCwzOTk4MiwzOTk2MywzOTk3MywzOTk3MiwzOTk2OSwzOTk4NCw0MDAwNywzOTk4Niw0MDAwNiwzOTk5OCw0MDAyNiw0MDAzMiw0MDAzOSw0MDA1NCw0MDA1Niw0MDE2Nyw0MDE3Miw0MDE3Niw0MDIwMSw0MDIwMCw0MDE3MSw0MDE5'@; put 'NSw0MDE5OCw0MDIzNCw0MDIzMCw0MDM2Nyw0MDIyNyw0MDIyMyw0MDI2MCw0MDIxMyw0MDIxMCw0MDI1Nyw0MDI1NSw0MDI1NCw0MDI2Miw0MDI2NCw0MDI4NSw0MDI4Niw0MDI5Miw0MDI3Myw0MDI3Miw0MDI4MSw0MDMwNiw0MDMyOSw0MDMyNyw0MDM2Myw0MDMwMyw0MDMxNCw0MDM0Niw0'@; put 'MDM1Niw0MDM2MSw0MDM3MCw0MDM4OCw0MDM4NSw0MDM3OSw0MDM3Niw0MDM3OCw0MDM5MCw0MDM5OSw0MDM4Niw0MDQwOSw0MDQwMyw0MDQ0MCw0MDQyMiw0MDQyOSw0MDQzMSw0MDQ0NSw0MDQ3NCw0MDQ3NSw0MDQ3OCw0MDU2NSw0MDU2OSw0MDU3Myw0MDU3Nyw0MDU4NCw0MDU4Nyw0MDU4'@; put 'OCw0MDU5NCw0MDU5Nyw0MDU5Myw0MDYwNSw0MDYxMyw0MDYxNyw0MDYzMiw0MDYxOCw0MDYyMSwzODc1Myw0MDY1Miw0MDY1NCw0MDY1NSw0MDY1Niw0MDY2MCw0MDY2OCw0MDY3MCw0MDY2OSw0MDY3Miw0MDY3Nyw0MDY4MCw0MDY4Nyw0MDY5Miw0MDY5NCw0MDY5NSw0MDY5Nyw0MDY5OSw0'@; put 'MDcwMCw0MDcwMSw0MDcxMSw0MDcxMiwzMDM5MSw0MDcyNSw0MDczNyw0MDc0OCw0MDc2Niw0MDc3OCw0MDc4Niw0MDc4OCw0MDgwMyw0MDc5OSw0MDgwMCw0MDgwMSw0MDgwNiw0MDgwNyw0MDgxMiw0MDgxMCw0MDgyMyw0MDgxOCw0MDgyMiw0MDg1Myw0MDg2MCw0MDg2NCwyMjU3NSwyNzA3'@; put 'OSwzNjk1MywyOTc5NiwyMDk1NiwyOTA4MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzIzOTQsMzUxMDAsMzc3MDQsMzc1MTIsMzQwMTIsMjA0MjUsMjg4NTksMjYxNjEsMjY4MjQsMzc2MjUsMjYzNjMsMjQzODksMjAwMDgsMjAxOTMsMjAyMjAsMjAyMjQsMjAyMjcsMjAyODEsMjAzMTAsMjAzNzAsMjAzNjIsMjAz'@; put 'NzgsMjAzNzIsMjA0MjksMjA1NDQsMjA1MTQsMjA0NzksMjA1MTAsMjA1NTAsMjA1OTIsMjA1NDYsMjA2MjgsMjA3MjQsMjA2OTYsMjA4MTAsMjA4MzYsMjA4OTMsMjA5MjYsMjA5NzIsMjEwMTMsMjExNDgsMjExNTgsMjExODQsMjEyMTEsMjEyNDgsMjEyNTUsMjEyODQsMjEzNjIsMjEzOTUs'@; put 'MjE0MjYsMjE0NjksNjQwMTQsMjE2NjAsMjE2NDIsMjE2NzMsMjE3NTksMjE4OTQsMjIzNjEsMjIzNzMsMjI0NDQsMjI0NzIsMjI0NzEsNjQwMTUsNjQwMTYsMjI2ODYsMjI3MDYsMjI3OTUsMjI4NjcsMjI4NzUsMjI4NzcsMjI4ODMsMjI5NDgsMjI5NzAsMjMzODIsMjM0ODgsMjk5OTksMjM1'@; put 'MTIsMjM1MzIsMjM1ODIsMjM3MTgsMjM3MzgsMjM3OTcsMjM4NDcsMjM4OTEsNjQwMTcsMjM4NzQsMjM5MTcsMjM5OTIsMjM5OTMsMjQwMTYsMjQzNTMsMjQzNzIsMjQ0MjMsMjQ1MDMsMjQ1NDIsMjQ2NjksMjQ3MDksMjQ3MTQsMjQ3OTgsMjQ3ODksMjQ4NjQsMjQ4MTgsMjQ4NDksMjQ4ODcs'@; put 'MjQ4ODAsMjQ5ODQsMjUxMDcsMjUyNTQsMjU1ODksMjU2OTYsMjU3NTcsMjU4MDYsMjU5MzQsMjYxMTIsMjYxMzMsMjYxNzEsMjYxMjEsMjYxNTgsMjYxNDIsMjYxNDgsMjYyMTMsMjYxOTksMjYyMDEsNjQwMTgsMjYyMjcsMjYyNjUsMjYyNzIsMjYyOTAsMjYzMDMsMjYzNjIsMjYzODIsNjM3'@; put 'ODUsMjY0NzAsMjY1NTUsMjY3MDYsMjY1NjAsMjY2MjUsMjY2OTIsMjY4MzEsNjQwMTksMjY5ODQsNjQwMjAsMjcwMzIsMjcxMDYsMjcxODQsMjcyNDMsMjcyMDYsMjcyNTEsMjcyNjIsMjczNjIsMjczNjQsMjc2MDYsMjc3MTEsMjc3NDAsMjc3ODIsMjc3NTksMjc4NjYsMjc5MDgsMjgwMzks'@; put 'MjgwMTUsMjgwNTQsMjgwNzYsMjgxMTEsMjgxNTIsMjgxNDYsMjgxNTYsMjgyMTcsMjgyNTIsMjgxOTksMjgyMjAsMjgzNTEsMjg1NTIsMjg1OTcsMjg2NjEsMjg2NzcsMjg2NzksMjg3MTIsMjg4MDUsMjg4NDMsMjg5NDMsMjg5MzIsMjkwMjAsMjg5OTgsMjg5OTksNjQwMjEsMjkxMjEsMjkx'@; put 'ODIsMjkzNjEsMjkzNzQsMjk0NzYsNjQwMjIsMjk1NTksMjk2MjksMjk2NDEsMjk2NTQsMjk2NjcsMjk2NTAsMjk3MDMsMjk2ODUsMjk3MzQsMjk3MzgsMjk3MzcsMjk3NDIsMjk3OTQsMjk4MzMsMjk4NTUsMjk5NTMsMzAwNjMsMzAzMzgsMzAzNjQsMzAzNjYsMzAzNjMsMzAzNzQsNjQwMjMs'@; put 'MzA1MzQsMjExNjcsMzA3NTMsMzA3OTgsMzA4MjAsMzA4NDIsMzEwMjQsNjQwMjQsNjQwMjUsNjQwMjYsMzExMjQsNjQwMjcsMzExMzEsMzE0NDEsMzE0NjMsNjQwMjgsMzE0NjcsMzE2NDYsNjQwMjksMzIwNzIsMzIwOTIsMzIxODMsMzIxNjAsMzIyMTQsMzIzMzgsMzI1ODMsMzI2NzMsNjQw'@; put 'MzAsMzM1MzcsMzM2MzQsMzM2NjMsMzM3MzUsMzM3ODIsMzM4NjQsMzM5NzIsMzQxMzEsMzQxMzcsMzQxNTUsNjQwMzEsMzQyMjQsNjQwMzIsNjQwMzMsMzQ4MjMsMzUwNjEsMzUzNDYsMzUzODMsMzU0NDksMzU0OTUsMzU1MTgsMzU1NTEsNjQwMzQsMzU1NzQsMzU2NjcsMzU3MTEsMzYwODAs'@; put 'MzYwODQsMzYxMTQsMzYyMTQsNjQwMzUsMzY1NTksNjQwMzYsNjQwMzcsMzY5NjcsMzcwODYsNjQwMzgsMzcxNDEsMzcxNTksMzczMzgsMzczMzUsMzczNDIsMzczNTcsMzczNTgsMzczNDgsMzczNDksMzczODIsMzczOTIsMzczODYsMzc0MzQsMzc0NDAsMzc0MzYsMzc0NTQsMzc0NjUsMzc0'@; put 'NTcsMzc0MzMsMzc0NzksMzc1NDMsMzc0OTUsMzc0OTYsMzc2MDcsMzc1OTEsMzc1OTMsMzc1ODQsNjQwMzksMzc1ODksMzc2MDAsMzc1ODcsMzc2NjksMzc2NjUsMzc2MjcsNjQwNDAsMzc2NjIsMzc2MzEsMzc2NjEsMzc2MzQsMzc3NDQsMzc3MTksMzc3OTYsMzc4MzAsMzc4NTQsMzc4ODAs'@; put 'Mzc5MzcsMzc5NTcsMzc5NjAsMzgyOTAsNjM5NjQsNjQwNDEsMzg1NTcsMzg1NzUsMzg3MDcsMzg3MTUsMzg3MjMsMzg3MzMsMzg3MzUsMzg3MzcsMzg3NDEsMzg5OTksMzkwMTMsNjQwNDIsNjQwNDMsMzkyMDcsNjQwNDQsMzkzMjYsMzk1MDIsMzk2NDEsMzk2NDQsMzk3OTcsMzk3OTQsMzk4'@; put 'MjMsMzk4NTcsMzk4NjcsMzk5MzYsNDAzMDQsNDAyOTksNjQwNDUsNDA0NzMsNDA2NTcsbnVsbCxudWxsLDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NTYwLDg1NjEsODU2Miw4NTYzLDg1NjQsODU2NSw4NTY2LDg1NjcsODU2OCw4NTY5LDg1NDQsODU0NSw4NTQ2LDg1NDcsODU0OCw4NTQ5LDg1NTAs'@; put 'ODU1MSw4NTUyLDg1NTMsNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsMTI4NDksODQ3MCw4NDgxLDg3NTcsMzIzOTQsMzUxMDAsMzc3MDQsMzc1MTIsMzQwMTIsMjA0MjUsMjg4NTksMjYxNjEsMjY4MjQsMzc2MjUsMjYzNjMsMjQzODksMjAwMDgsMjAxOTMsMjAyMjAsMjAyMjQsMjAyMjcsMjAy'@; put 'ODEsMjAzMTAsMjAzNzAsMjAzNjIsMjAzNzgsMjAzNzIsMjA0MjksMjA1NDQsMjA1MTQsMjA0NzksMjA1MTAsMjA1NTAsMjA1OTIsMjA1NDYsMjA2MjgsMjA3MjQsMjA2OTYsMjA4MTAsMjA4MzYsMjA4OTMsMjA5MjYsMjA5NzIsMjEwMTMsMjExNDgsMjExNTgsMjExODQsMjEyMTEsMjEyNDgs'@; put 'MjEyNTUsMjEyODQsMjEzNjIsMjEzOTUsMjE0MjYsMjE0NjksNjQwMTQsMjE2NjAsMjE2NDIsMjE2NzMsMjE3NTksMjE4OTQsMjIzNjEsMjIzNzMsMjI0NDQsMjI0NzIsMjI0NzEsNjQwMTUsNjQwMTYsMjI2ODYsMjI3MDYsMjI3OTUsMjI4NjcsMjI4NzUsMjI4NzcsMjI4ODMsMjI5NDgsMjI5'@; put 'NzAsMjMzODIsMjM0ODgsMjk5OTksMjM1MTIsMjM1MzIsMjM1ODIsMjM3MTgsMjM3MzgsMjM3OTcsMjM4NDcsMjM4OTEsNjQwMTcsMjM4NzQsMjM5MTcsMjM5OTIsMjM5OTMsMjQwMTYsMjQzNTMsMjQzNzIsMjQ0MjMsMjQ1MDMsMjQ1NDIsMjQ2NjksMjQ3MDksMjQ3MTQsMjQ3OTgsMjQ3ODks'@; put 'MjQ4NjQsMjQ4MTgsMjQ4NDksMjQ4ODcsMjQ4ODAsMjQ5ODQsMjUxMDcsMjUyNTQsMjU1ODksMjU2OTYsMjU3NTcsMjU4MDYsMjU5MzQsMjYxMTIsMjYxMzMsMjYxNzEsMjYxMjEsMjYxNTgsMjYxNDIsMjYxNDgsMjYyMTMsMjYxOTksMjYyMDEsNjQwMTgsMjYyMjcsMjYyNjUsMjYyNzIsMjYy'@; put 'OTAsMjYzMDMsMjYzNjIsMjYzODIsNjM3ODUsMjY0NzAsMjY1NTUsMjY3MDYsMjY1NjAsMjY2MjUsMjY2OTIsMjY4MzEsNjQwMTksMjY5ODQsNjQwMjAsMjcwMzIsMjcxMDYsMjcxODQsMjcyNDMsMjcyMDYsMjcyNTEsMjcyNjIsMjczNjIsMjczNjQsMjc2MDYsMjc3MTEsMjc3NDAsMjc3ODIs'@; put 'Mjc3NTksMjc4NjYsMjc5MDgsMjgwMzksMjgwMTUsMjgwNTQsMjgwNzYsMjgxMTEsMjgxNTIsMjgxNDYsMjgxNTYsMjgyMTcsMjgyNTIsMjgxOTksMjgyMjAsMjgzNTEsMjg1NTIsMjg1OTcsMjg2NjEsMjg2NzcsMjg2NzksMjg3MTIsMjg4MDUsMjg4NDMsMjg5NDMsMjg5MzIsMjkwMjAsMjg5'@; put 'OTgsMjg5OTksNjQwMjEsMjkxMjEsMjkxODIsMjkzNjEsMjkzNzQsMjk0NzYsNjQwMjIsMjk1NTksMjk2MjksMjk2NDEsMjk2NTQsMjk2NjcsMjk2NTAsMjk3MDMsMjk2ODUsMjk3MzQsMjk3MzgsMjk3MzcsMjk3NDIsMjk3OTQsMjk4MzMsMjk4NTUsMjk5NTMsMzAwNjMsMzAzMzgsMzAzNjQs'@; put 'MzAzNjYsMzAzNjMsMzAzNzQsNjQwMjMsMzA1MzQsMjExNjcsMzA3NTMsMzA3OTgsMzA4MjAsMzA4NDIsMzEwMjQsNjQwMjQsNjQwMjUsNjQwMjYsMzExMjQsNjQwMjcsMzExMzEsMzE0NDEsMzE0NjMsNjQwMjgsMzE0NjcsMzE2NDYsNjQwMjksMzIwNzIsMzIwOTIsMzIxODMsMzIxNjAsMzIy'@; put 'MTQsMzIzMzgsMzI1ODMsMzI2NzMsNjQwMzAsMzM1MzcsMzM2MzQsMzM2NjMsMzM3MzUsMzM3ODIsMzM4NjQsMzM5NzIsMzQxMzEsMzQxMzcsMzQxNTUsNjQwMzEsMzQyMjQsNjQwMzIsNjQwMzMsMzQ4MjMsMzUwNjEsMzUzNDYsMzUzODMsMzU0NDksMzU0OTUsMzU1MTgsMzU1NTEsNjQwMzQs'@; put 'MzU1NzQsMzU2NjcsMzU3MTEsMzYwODAsMzYwODQsMzYxMTQsMzYyMTQsNjQwMzUsMzY1NTksNjQwMzYsNjQwMzcsMzY5NjcsMzcwODYsNjQwMzgsMzcxNDEsMzcxNTksMzczMzgsMzczMzUsMzczNDIsMzczNTcsMzczNTgsMzczNDgsMzczNDksMzczODIsMzczOTIsMzczODYsMzc0MzQsMzc0'@; put 'NDAsMzc0MzYsMzc0NTQsMzc0NjUsMzc0NTcsMzc0MzMsMzc0NzksMzc1NDMsMzc0OTUsMzc0OTYsMzc2MDcsMzc1OTEsMzc1OTMsMzc1ODQsNjQwMzksMzc1ODksMzc2MDAsMzc1ODcsMzc2NjksMzc2NjUsMzc2MjcsNjQwNDAsMzc2NjIsMzc2MzEsMzc2NjEsMzc2MzQsMzc3NDQsMzc3MTks'@; put 'Mzc3OTYsMzc4MzAsMzc4NTQsMzc4ODAsMzc5MzcsMzc5NTcsMzc5NjAsMzgyOTAsNjM5NjQsNjQwNDEsMzg1NTcsMzg1NzUsMzg3MDcsMzg3MTUsMzg3MjMsMzg3MzMsMzg3MzUsMzg3MzcsMzg3NDEsMzg5OTksMzkwMTMsNjQwNDIsNjQwNDMsMzkyMDcsNjQwNDQsMzkzMjYsMzk1MDIsMzk2'@; put 'NDEsMzk2NDQsMzk3OTcsMzk3OTQsMzk4MjMsMzk4NTcsMzk4NjcsMzk5MzYsNDAzMDQsNDAyOTksNjQwNDUsNDA0NzMsNDA2NTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSxqaXMwMjEyOltudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCw3MjgsNzExLDE4NCw3MjksNzMzLDE3NSw3MzEsNzMwLDY1Mzc0LDkwMCw5MDEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE2MSwxNjYsMTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxODYsMTcwLDE2OSwxNzQsODQ4Miwx'@; put 'NjQsODQ3MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTAyLDkwNCw5MDUs'@; put 'OTA2LDkzOCxudWxsLDkwOCxudWxsLDkxMCw5MzksbnVsbCw5MTEsbnVsbCxudWxsLG51bGwsbnVsbCw5NDAsOTQxLDk0Miw5NDMsOTcwLDkxMiw5NzIsOTYyLDk3Myw5NzEsOTQ0LDk3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAz'@; put 'NSwxMDM2LDEwMzgsMTAzOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTgsMTExOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE5OCwyNzIsbnVsbCwyOTQsbnVsbCwzMDYsbnVsbCwzMjEsMzE5LG51bGwsMzMwLDIxNiwzMzgsbnVsbCwzNTgsMjIyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjMwLDI3MywyNDAsMjk1LDMwNSwzMDcsMzEyLDMyMiwzMjAsMzI5LDMzMSwyNDgsMzM5LDIyMywzNTksMjU0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsMTkzLDE5MiwxOTYsMTk0LDI1OCw0NjEsMjU2LDI2MCwxOTcsMTk1LDI2MiwyNjQsMjY4LDE5OSwyNjYsMjcwLDIwMSwyMDAsMjAzLDIwMiwyODIsMjc4LDI3NCwyODAsbnVsbCwyODQsMjg2LDI5MCwyODgsMjkyLDIwNSwyMDQsMjA3LDIwNiw0NjMsMzA0LDI5OCwz'@; put 'MDIsMjk2LDMwOCwzMTAsMzEzLDMxNywzMTUsMzIzLDMyNywzMjUsMjA5LDIxMSwyMTAsMjE0LDIxMiw0NjUsMzM2LDMzMiwyMTMsMzQwLDM0NCwzNDIsMzQ2LDM0OCwzNTIsMzUwLDM1NiwzNTQsMjE4LDIxNywyMjAsMjE5LDM2NCw0NjcsMzY4LDM2MiwzNzAsMzY2LDM2MCw0NzEsNDc1LDQ3'@; put 'Myw0NjksMzcyLDIyMSwzNzYsMzc0LDM3NywzODEsMzc5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjI1LDIyNCwyMjgsMjI2LDI1OSw0NjIsMjU3LDI2MSwyMjksMjI3LDI2MywyNjUsMjY5LDIzMSwyNjcsMjcxLDIzMywyMzIsMjM1LDIzNCwyODMsMjc5LDI3NSwyODEs'@; put 'NTAxLDI4NSwyODcsbnVsbCwyODksMjkzLDIzNywyMzYsMjM5LDIzOCw0NjQsbnVsbCwyOTksMzAzLDI5NywzMDksMzExLDMxNCwzMTgsMzE2LDMyNCwzMjgsMzI2LDI0MSwyNDMsMjQyLDI0NiwyNDQsNDY2LDMzNywzMzMsMjQ1LDM0MSwzNDUsMzQzLDM0NywzNDksMzUzLDM1MSwzNTcsMzU1'@; put 'LDI1MCwyNDksMjUyLDI1MSwzNjUsNDY4LDM2OSwzNjMsMzcxLDM2NywzNjEsNDcyLDQ3Niw0NzQsNDcwLDM3MywyNTMsMjU1LDM3NSwzNzgsMzgyLDM4MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTk5NzAsMTk5NzIsMTk5NzMsMTk5ODAsMTk5ODYsMTk5OTksMjAwMDMsMjAwMDQsMjAwMDgsMjAwMTEsMjAwMTQsMjAwMTUsMjAwMTYsMjAwMjEsMjAwMzIsMjAwMzMsMjAwMzYsMjAwMzksMjAwNDksMjAwNTgsMjAwNjAsMjAwNjcsMjAwNzIsMjAw'@; put 'NzMsMjAwODQsMjAwODUsMjAwODksMjAwOTUsMjAxMDksMjAxMTgsMjAxMTksMjAxMjUsMjAxNDMsMjAxNTMsMjAxNjMsMjAxNzYsMjAxODYsMjAxODcsMjAxOTIsMjAxOTMsMjAxOTQsMjAyMDAsMjAyMDcsMjAyMDksMjAyMTEsMjAyMTMsMjAyMjEsMjAyMjIsMjAyMjMsMjAyMjQsMjAyMjYs'@; put 'MjAyMjcsMjAyMzIsMjAyMzUsMjAyMzYsMjAyNDIsMjAyNDUsMjAyNDYsMjAyNDcsMjAyNDksMjAyNzAsMjAyNzMsMjAzMjAsMjAyNzUsMjAyNzcsMjAyNzksMjAyODEsMjAyODMsMjAyODYsMjAyODgsMjAyOTAsMjAyOTYsMjAyOTcsMjAyOTksMjAzMDAsMjAzMDYsMjAzMDgsMjAzMTAsMjAz'@; put 'MTIsMjAzMTksMjAzMjMsMjAzMzAsMjAzMzIsMjAzMzQsMjAzMzcsMjAzNDMsMjAzNDQsMjAzNDUsMjAzNDYsMjAzNDksMjAzNTAsMjAzNTMsMjAzNTQsMjAzNTYsMjAzNTcsMjAzNjEsMjAzNjIsMjAzNjQsMjAzNjYsMjAzNjgsMjAzNzAsMjAzNzEsMjAzNzIsMjAzNzUsMjAzNzcsMjAzNzgs'@; put 'MjAzODIsMjAzODMsMjA0MDIsMjA0MDcsMjA0MDksMjA0MTEsMjA0MTIsMjA0MTMsMjA0MTQsMjA0MTYsMjA0MTcsMjA0MjEsMjA0MjIsMjA0MjQsMjA0MjUsMjA0MjcsMjA0MjgsMjA0MjksMjA0MzEsMjA0MzQsMjA0NDQsMjA0NDgsMjA0NTAsMjA0NjQsMjA0NjYsMjA0NzYsMjA0NzcsMjA0'@; put 'NzksMjA0ODAsMjA0ODEsMjA0ODQsMjA0ODcsMjA0OTAsMjA0OTIsMjA0OTQsMjA0OTYsMjA0OTksMjA1MDMsMjA1MDQsMjA1MDcsMjA1MDgsMjA1MDksMjA1MTAsMjA1MTQsMjA1MTksMjA1MjYsMjA1MjgsMjA1MzAsMjA1MzEsMjA1MzMsMjA1NDQsMjA1NDUsMjA1NDYsMjA1NDksMjA1NTAs'@; put 'MjA1NTQsMjA1NTYsMjA1NTgsMjA1NjEsMjA1NjIsMjA1NjMsMjA1NjcsMjA1NjksMjA1NzUsMjA1NzYsMjA1NzgsMjA1NzksMjA1ODIsMjA1ODMsMjA1ODYsMjA1ODksMjA1OTIsMjA1OTMsMjA1MzksMjA2MDksMjA2MTEsMjA2MTIsMjA2MTQsMjA2MTgsMjA2MjIsMjA2MjMsMjA2MjQsMjA2'@; put 'MjYsMjA2MjcsMjA2MjgsMjA2MzAsMjA2MzUsMjA2MzYsMjA2MzgsMjA2MzksMjA2NDAsMjA2NDEsMjA2NDIsMjA2NTAsMjA2NTUsMjA2NTYsMjA2NjUsMjA2NjYsMjA2NjksMjA2NzIsMjA2NzUsMjA2NzYsMjA2NzksMjA2ODQsMjA2ODYsMjA2ODgsMjA2OTEsMjA2OTIsMjA2OTYsMjA3MDAs'@; put 'MjA3MDEsMjA3MDMsMjA3MDYsMjA3MDgsMjA3MTAsMjA3MTIsMjA3MTMsMjA3MTksMjA3MjEsMjA3MjYsMjA3MzAsMjA3MzQsMjA3MzksMjA3NDIsMjA3NDMsMjA3NDQsMjA3NDcsMjA3NDgsMjA3NDksMjA3NTAsMjA3MjIsMjA3NTIsMjA3NTksMjA3NjEsMjA3NjMsMjA3NjQsMjA3NjUsMjA3'@; put 'NjYsMjA3NzEsMjA3NzUsMjA3NzYsMjA3ODAsMjA3ODEsMjA3ODMsMjA3ODUsMjA3ODcsMjA3ODgsMjA3ODksMjA3OTIsMjA3OTMsMjA4MDIsMjA4MTAsMjA4MTUsMjA4MTksMjA4MjEsMjA4MjMsMjA4MjQsMjA4MzEsMjA4MzYsMjA4MzgsMjA4NjIsMjA4NjcsMjA4NjgsMjA4NzUsMjA4Nzgs'@; put 'MjA4ODgsMjA4OTMsMjA4OTcsMjA4OTksMjA5MDksMjA5MjAsMjA5MjIsMjA5MjQsMjA5MjYsMjA5MjcsMjA5MzAsMjA5MzYsMjA5NDMsMjA5NDUsMjA5NDYsMjA5NDcsMjA5NDksMjA5NTIsMjA5NTgsMjA5NjIsMjA5NjUsMjA5NzQsMjA5NzgsMjA5NzksMjA5ODAsMjA5ODMsMjA5OTMsMjA5'@; put 'OTQsMjA5OTcsMjEwMTAsMjEwMTEsMjEwMTMsMjEwMTQsMjEwMTYsMjEwMjYsMjEwMzIsMjEwNDEsMjEwNDIsMjEwNDUsMjEwNTIsMjEwNjEsMjEwNjUsMjEwNzcsMjEwNzksMjEwODAsMjEwODIsMjEwODQsMjEwODcsMjEwODgsMjEwODksMjEwOTQsMjExMDIsMjExMTEsMjExMTIsMjExMTMs'@; put 'MjExMjAsMjExMjIsMjExMjUsMjExMzAsMjExMzIsMjExMzksMjExNDEsMjExNDIsMjExNDMsMjExNDQsMjExNDYsMjExNDgsMjExNTYsMjExNTcsMjExNTgsMjExNTksMjExNjcsMjExNjgsMjExNzQsMjExNzUsMjExNzYsMjExNzgsMjExNzksMjExODEsMjExODQsMjExODgsMjExOTAsMjEx'@; put 'OTIsMjExOTYsMjExOTksMjEyMDEsMjEyMDQsMjEyMDYsMjEyMTEsMjEyMTIsMjEyMTcsMjEyMjEsMjEyMjQsMjEyMjUsMjEyMjYsMjEyMjgsMjEyMzIsMjEyMzMsMjEyMzYsMjEyMzgsMjEyMzksMjEyNDgsMjEyNTEsMjEyNTgsMjEyNTksMjEyNjAsMjEyNjUsMjEyNjcsMjEyNzIsMjEyNzUs'@; put 'MjEyNzYsMjEyNzgsMjEyNzksMjEyODUsMjEyODcsMjEyODgsMjEyODksMjEyOTEsMjEyOTIsMjEyOTMsMjEyOTYsMjEyOTgsMjEzMDEsMjEzMDgsMjEzMDksMjEzMTAsMjEzMTQsMjEzMjQsMjEzMjMsMjEzMzcsMjEzMzksMjEzNDUsMjEzNDcsMjEzNDksMjEzNTYsMjEzNTcsMjEzNjIsMjEz'@; put 'NjksMjEzNzQsMjEzNzksMjEzODMsMjEzODQsMjEzOTAsMjEzOTUsMjEzOTYsMjE0MDEsMjE0MDUsMjE0MDksMjE0MTIsMjE0MTgsMjE0MTksMjE0MjMsMjE0MjYsMjE0MjgsMjE0MjksMjE0MzEsMjE0MzIsMjE0MzQsMjE0MzcsMjE0NDAsMjE0NDUsMjE0NTUsMjE0NTgsMjE0NTksMjE0NjEs'@; put 'MjE0NjYsMjE0NjksMjE0NzAsMjE0NzIsMjE0NzgsMjE0NzksMjE0OTMsMjE1MDYsMjE1MjMsMjE1MzAsMjE1MzcsMjE1NDMsMjE1NDQsMjE1NDYsMjE1NTEsMjE1NTMsMjE1NTYsMjE1NTcsMjE1NzEsMjE1NzIsMjE1NzUsMjE1ODEsMjE1ODMsMjE1OTgsMjE2MDIsMjE2MDQsMjE2MDYsMjE2'@; put 'MDcsMjE2MDksMjE2MTEsMjE2MTMsMjE2MTQsMjE2MjAsMjE2MzEsMjE2MzMsMjE2MzUsMjE2MzcsMjE2NDAsMjE2NDEsMjE2NDUsMjE2NDksMjE2NTMsMjE2NTQsMjE2NjAsMjE2NjMsMjE2NjUsMjE2NzAsMjE2NzEsMjE2NzMsMjE2NzQsMjE2NzcsMjE2NzgsMjE2ODEsMjE2ODcsMjE2ODks'@; put 'MjE2OTAsMjE2OTEsMjE2OTUsMjE3MDIsMjE3MDYsMjE3MDksMjE3MTAsMjE3MjgsMjE3MzgsMjE3NDAsMjE3NDMsMjE3NTAsMjE3NTYsMjE3NTgsMjE3NTksMjE3NjAsMjE3NjEsMjE3NjUsMjE3NjgsMjE3NjksMjE3NzIsMjE3NzMsMjE3NzQsMjE3ODEsMjE4MDIsMjE4MDMsMjE4MTAsMjE4'@; put 'MTMsMjE4MTQsMjE4MTksMjE4MjAsMjE4MjEsMjE4MjUsMjE4MzEsMjE4MzMsMjE4MzQsMjE4MzcsMjE4NDAsMjE4NDEsMjE4NDgsMjE4NTAsMjE4NTEsMjE4NTQsMjE4NTYsMjE4NTcsMjE4NjAsMjE4NjIsMjE4ODcsMjE4ODksMjE4OTAsMjE4OTQsMjE4OTYsMjE5MDIsMjE5MDMsMjE5MDUs'@; put 'MjE5MDYsMjE5MDcsMjE5MDgsMjE5MTEsMjE5MjMsMjE5MjQsMjE5MzMsMjE5MzgsMjE5NTEsMjE5NTMsMjE5NTUsMjE5NTgsMjE5NjEsMjE5NjMsMjE5NjQsMjE5NjYsMjE5NjksMjE5NzAsMjE5NzEsMjE5NzUsMjE5NzYsMjE5NzksMjE5ODIsMjE5ODYsMjE5OTMsMjIwMDYsMjIwMTUsMjIw'@; put 'MjEsMjIwMjQsMjIwMjYsMjIwMjksMjIwMzAsMjIwMzEsMjIwMzIsMjIwMzMsMjIwMzQsMjIwNDEsMjIwNjAsMjIwNjQsMjIwNjcsMjIwNjksMjIwNzEsMjIwNzMsMjIwNzUsMjIwNzYsMjIwNzcsMjIwNzksMjIwODAsMjIwODEsMjIwODMsMjIwODQsMjIwODYsMjIwODksMjIwOTEsMjIwOTMs'@; put 'MjIwOTUsMjIxMDAsMjIxMTAsMjIxMTIsMjIxMTMsMjIxMTQsMjIxMTUsMjIxMTgsMjIxMjEsMjIxMjUsMjIxMjcsMjIxMjksMjIxMzAsMjIxMzMsMjIxNDgsMjIxNDksMjIxNTIsMjIxNTUsMjIxNTYsMjIxNjUsMjIxNjksMjIxNzAsMjIxNzMsMjIxNzQsMjIxNzUsMjIxODIsMjIxODMsMjIx'@; put 'ODQsMjIxODUsMjIxODcsMjIxODgsMjIxODksMjIxOTMsMjIxOTUsMjIxOTksMjIyMDYsMjIyMTMsMjIyMTcsMjIyMTgsMjIyMTksMjIyMjMsMjIyMjQsMjIyMjAsMjIyMjEsMjIyMzMsMjIyMzYsMjIyMzcsMjIyMzksMjIyNDEsMjIyNDQsMjIyNDUsMjIyNDYsMjIyNDcsMjIyNDgsMjIyNTcs'@; put 'MjIyNTEsMjIyNTMsMjIyNjIsMjIyNjMsMjIyNzMsMjIyNzQsMjIyNzksMjIyODIsMjIyODQsMjIyODksMjIyOTMsMjIyOTgsMjIyOTksMjIzMDEsMjIzMDQsMjIzMDYsMjIzMDcsMjIzMDgsMjIzMDksMjIzMTMsMjIzMTQsMjIzMTYsMjIzMTgsMjIzMTksMjIzMjMsMjIzMjQsMjIzMzMsMjIz'@; put 'MzQsMjIzMzUsMjIzNDEsMjIzNDIsMjIzNDgsMjIzNDksMjIzNTQsMjIzNzAsMjIzNzMsMjIzNzUsMjIzNzYsMjIzNzksMjIzODEsMjIzODIsMjIzODMsMjIzODQsMjIzODUsMjIzODcsMjIzODgsMjIzODksMjIzOTEsMjIzOTMsMjIzOTQsMjIzOTUsMjIzOTYsMjIzOTgsMjI0MDEsMjI0MDMs'@; put 'MjI0MTIsMjI0MjAsMjI0MjMsMjI0MjUsMjI0MjYsMjI0MjgsMjI0MjksMjI0MzAsMjI0MzEsMjI0MzMsMjI0MjEsMjI0MzksMjI0NDAsMjI0NDEsMjI0NDQsMjI0NTYsMjI0NjEsMjI0NzEsMjI0NzIsMjI0NzYsMjI0NzksMjI0ODUsMjI0OTMsMjI0OTQsMjI1MDAsMjI1MDIsMjI1MDMsMjI1'@; put 'MDUsMjI1MDksMjI1MTIsMjI1MTcsMjI1MTgsMjI1MjAsMjI1MjUsMjI1MjYsMjI1MjcsMjI1MzEsMjI1MzIsMjI1MzYsMjI1MzcsMjI0OTcsMjI1NDAsMjI1NDEsMjI1NTUsMjI1NTgsMjI1NTksMjI1NjAsMjI1NjYsMjI1NjcsMjI1NzMsMjI1NzgsMjI1ODUsMjI1OTEsMjI2MDEsMjI2MDQs'@; put 'MjI2MDUsMjI2MDcsMjI2MDgsMjI2MTMsMjI2MjMsMjI2MjUsMjI2MjgsMjI2MzEsMjI2MzIsMjI2NDgsMjI2NTIsMjI2NTUsMjI2NTYsMjI2NTcsMjI2NjMsMjI2NjQsMjI2NjUsMjI2NjYsMjI2NjgsMjI2NjksMjI2NzEsMjI2NzIsMjI2NzYsMjI2NzgsMjI2ODUsMjI2ODgsMjI2ODksMjI2'@; put 'OTAsMjI2OTQsMjI2OTcsMjI3MDUsMjI3MDYsMjI3MjQsMjI3MTYsMjI3MjIsMjI3MjgsMjI3MzMsMjI3MzQsMjI3MzYsMjI3MzgsMjI3NDAsMjI3NDIsMjI3NDYsMjI3NDksMjI3NTMsMjI3NTQsMjI3NjEsMjI3NzEsMjI3ODksMjI3OTAsMjI3OTUsMjI3OTYsMjI4MDIsMjI4MDMsMjI4MDQs'@; put 'MzQzNjksMjI4MTMsMjI4MTcsMjI4MTksMjI4MjAsMjI4MjQsMjI4MzEsMjI4MzIsMjI4MzUsMjI4MzcsMjI4MzgsMjI4NDcsMjI4NTEsMjI4NTQsMjI4NjYsMjI4NjcsMjI4NzMsMjI4NzUsMjI4NzcsMjI4NzgsMjI4NzksMjI4ODEsMjI4ODMsMjI4OTEsMjI4OTMsMjI4OTUsMjI4OTgsMjI5'@; put 'MDEsMjI5MDIsMjI5MDUsMjI5MDcsMjI5MDgsMjI5MjMsMjI5MjQsMjI5MjYsMjI5MzAsMjI5MzMsMjI5MzUsMjI5NDMsMjI5NDgsMjI5NTEsMjI5NTcsMjI5NTgsMjI5NTksMjI5NjAsMjI5NjMsMjI5NjcsMjI5NzAsMjI5NzIsMjI5NzcsMjI5NzksMjI5ODAsMjI5ODQsMjI5ODYsMjI5ODks'@; put 'MjI5OTQsMjMwMDUsMjMwMDYsMjMwMDcsMjMwMTEsMjMwMTIsMjMwMTUsMjMwMjIsMjMwMjMsMjMwMjUsMjMwMjYsMjMwMjgsMjMwMzEsMjMwNDAsMjMwNDQsMjMwNTIsMjMwNTMsMjMwNTQsMjMwNTgsMjMwNTksMjMwNzAsMjMwNzUsMjMwNzYsMjMwNzksMjMwODAsMjMwODIsMjMwODUsMjMw'@; put 'ODgsMjMxMDgsMjMxMDksMjMxMTEsMjMxMTIsMjMxMTYsMjMxMjAsMjMxMjUsMjMxMzQsMjMxMzksMjMxNDEsMjMxNDMsMjMxNDksMjMxNTksMjMxNjIsMjMxNjMsMjMxNjYsMjMxNzksMjMxODQsMjMxODcsMjMxOTAsMjMxOTMsMjMxOTYsMjMxOTgsMjMxOTksMjMyMDAsMjMyMDIsMjMyMDcs'@; put 'MjMyMTIsMjMyMTcsMjMyMTgsMjMyMTksMjMyMjEsMjMyMjQsMjMyMjYsMjMyMjcsMjMyMzEsMjMyMzYsMjMyMzgsMjMyNDAsMjMyNDcsMjMyNTgsMjMyNjAsMjMyNjQsMjMyNjksMjMyNzQsMjMyNzgsMjMyODUsMjMyODYsMjMyOTMsMjMyOTYsMjMyOTcsMjMzMDQsMjMzMTksMjMzNDgsMjMz'@; put 'MjEsMjMzMjMsMjMzMjUsMjMzMjksMjMzMzMsMjMzNDEsMjMzNTIsMjMzNjEsMjMzNzEsMjMzNzIsMjMzNzgsMjMzODIsMjMzOTAsMjM0MDAsMjM0MDYsMjM0MDcsMjM0MjAsMjM0MjEsMjM0MjIsMjM0MjMsMjM0MjUsMjM0MjgsMjM0MzAsMjM0MzQsMjM0MzgsMjM0NDAsMjM0NDEsMjM0NDMs'@; put 'MjM0NDQsMjM0NDYsMjM0NjQsMjM0NjUsMjM0NjgsMjM0NjksMjM0NzEsMjM0NzMsMjM0NzQsMjM0NzksMjM0ODIsMjM0ODQsMjM0ODgsMjM0ODksMjM1MDEsMjM1MDMsMjM1MTAsMjM1MTEsMjM1MTIsMjM1MTMsMjM1MTQsMjM1MjAsMjM1MzUsMjM1MzcsMjM1NDAsMjM1NDksMjM1NjQsMjM1'@; put 'NzUsMjM1ODIsMjM1ODMsMjM1ODcsMjM1OTAsMjM1OTMsMjM1OTUsMjM1OTYsMjM1OTgsMjM2MDAsMjM2MDIsMjM2MDUsMjM2MDYsMjM2NDEsMjM2NDIsMjM2NDQsMjM2NTAsMjM2NTEsMjM2NTUsMjM2NTYsMjM2NTcsMjM2NjEsMjM2NjQsMjM2NjgsMjM2NjksMjM2NzQsMjM2NzUsMjM2NzYs'@; put 'MjM2NzcsMjM2ODcsMjM2ODgsMjM2OTAsMjM2OTUsMjM2OTgsMjM3MDksMjM3MTEsMjM3MTIsMjM3MTQsMjM3MTUsMjM3MTgsMjM3MjIsMjM3MzAsMjM3MzIsMjM3MzMsMjM3MzgsMjM3NTMsMjM3NTUsMjM3NjIsMjM3NzMsMjM3NjcsMjM3OTAsMjM3OTMsMjM3OTQsMjM3OTYsMjM4MDksMjM4'@; put 'MTQsMjM4MjEsMjM4MjYsMjM4NTEsMjM4NDMsMjM4NDQsMjM4NDYsMjM4NDcsMjM4NTcsMjM4NjAsMjM4NjUsMjM4NjksMjM4NzEsMjM4NzQsMjM4NzUsMjM4NzgsMjM4ODAsMjM4OTMsMjM4ODksMjM4OTcsMjM4ODIsMjM5MDMsMjM5MDQsMjM5MDUsMjM5MDYsMjM5MDgsMjM5MTQsMjM5MTcs'@; put 'MjM5MjAsMjM5MjksMjM5MzAsMjM5MzQsMjM5MzUsMjM5MzcsMjM5MzksMjM5NDQsMjM5NDYsMjM5NTQsMjM5NTUsMjM5NTYsMjM5NTcsMjM5NjEsMjM5NjMsMjM5NjcsMjM5NjgsMjM5NzUsMjM5NzksMjM5ODQsMjM5ODgsMjM5OTIsMjM5OTMsMjQwMDMsMjQwMDcsMjQwMTEsMjQwMTYsMjQw'@; put 'MTQsMjQwMjQsMjQwMjUsMjQwMzIsMjQwMzYsMjQwNDEsMjQwNTYsMjQwNTcsMjQwNjQsMjQwNzEsMjQwNzcsMjQwODIsMjQwODQsMjQwODUsMjQwODgsMjQwOTUsMjQwOTYsMjQxMTAsMjQxMDQsMjQxMTQsMjQxMTcsMjQxMjYsMjQxMzksMjQxNDQsMjQxMzcsMjQxNDUsMjQxNTAsMjQxNTIs'@; put 'MjQxNTUsMjQxNTYsMjQxNTgsMjQxNjgsMjQxNzAsMjQxNzEsMjQxNzIsMjQxNzMsMjQxNzQsMjQxNzYsMjQxOTIsMjQyMDMsMjQyMDYsMjQyMjYsMjQyMjgsMjQyMjksMjQyMzIsMjQyMzQsMjQyMzYsMjQyNDEsMjQyNDMsMjQyNTMsMjQyNTQsMjQyNTUsMjQyNjIsMjQyNjgsMjQyNjcsMjQy'@; put 'NzAsMjQyNzMsMjQyNzQsMjQyNzYsMjQyNzcsMjQyODQsMjQyODYsMjQyOTMsMjQyOTksMjQzMjIsMjQzMjYsMjQzMjcsMjQzMjgsMjQzMzQsMjQzNDUsMjQzNDgsMjQzNDksMjQzNTMsMjQzNTQsMjQzNTUsMjQzNTYsMjQzNjAsMjQzNjMsMjQzNjQsMjQzNjYsMjQzNjgsMjQzNzIsMjQzNzQs'@; put 'MjQzNzksMjQzODEsMjQzODMsMjQzODQsMjQzODgsMjQzODksMjQzOTEsMjQzOTcsMjQ0MDAsMjQ0MDQsMjQ0MDgsMjQ0MTEsMjQ0MTYsMjQ0MTksMjQ0MjAsMjQ0MjMsMjQ0MzEsMjQ0MzQsMjQ0MzYsMjQ0MzcsMjQ0NDAsMjQ0NDIsMjQ0NDUsMjQ0NDYsMjQ0NTcsMjQ0NjEsMjQ0NjMsMjQ0'@; put 'NzAsMjQ0NzYsMjQ0NzcsMjQ0ODIsMjQ0ODcsMjQ0OTEsMjQ0ODQsMjQ0OTIsMjQ0OTUsMjQ0OTYsMjQ0OTcsMjQ1MDQsMjQ1MTYsMjQ1MTksMjQ1MjAsMjQ1MjEsMjQ1MjMsMjQ1MjgsMjQ1MjksMjQ1MzAsMjQ1MzEsMjQ1MzIsMjQ1NDIsMjQ1NDUsMjQ1NDYsMjQ1NTIsMjQ1NTMsMjQ1NTQs'@; put 'MjQ1NTYsMjQ1NTcsMjQ1NTgsMjQ1NTksMjQ1NjIsMjQ1NjMsMjQ1NjYsMjQ1NzAsMjQ1NzIsMjQ1ODMsMjQ1ODYsMjQ1ODksMjQ1OTUsMjQ1OTYsMjQ1OTksMjQ2MDAsMjQ2MDIsMjQ2MDcsMjQ2MTIsMjQ2MjEsMjQ2MjcsMjQ2MjksMjQ2NDAsMjQ2NDcsMjQ2NDgsMjQ2NDksMjQ2NTIsMjQ2'@; put 'NTcsMjQ2NjAsMjQ2NjIsMjQ2NjMsMjQ2NjksMjQ2NzMsMjQ2NzksMjQ2ODksMjQ3MDIsMjQ3MDMsMjQ3MDYsMjQ3MTAsMjQ3MTIsMjQ3MTQsMjQ3MTgsMjQ3MjEsMjQ3MjMsMjQ3MjUsMjQ3MjgsMjQ3MzMsMjQ3MzQsMjQ3MzgsMjQ3NDAsMjQ3NDEsMjQ3NDQsMjQ3NTIsMjQ3NTMsMjQ3NTks'@; put 'MjQ3NjMsMjQ3NjYsMjQ3NzAsMjQ3NzIsMjQ3NzYsMjQ3NzcsMjQ3NzgsMjQ3NzksMjQ3ODIsMjQ3ODMsMjQ3ODgsMjQ3ODksMjQ3OTMsMjQ3OTUsMjQ3OTcsMjQ3OTgsMjQ4MDIsMjQ4MDUsMjQ4MTgsMjQ4MjEsMjQ4MjQsMjQ4MjgsMjQ4MjksMjQ4MzQsMjQ4MzksMjQ4NDIsMjQ4NDQsMjQ4'@; put 'NDgsMjQ4NDksMjQ4NTAsMjQ4NTEsMjQ4NTIsMjQ4NTQsMjQ4NTUsMjQ4NTcsMjQ4NjAsMjQ4NjIsMjQ4NjYsMjQ4NzQsMjQ4NzUsMjQ4ODAsMjQ4ODEsMjQ4ODUsMjQ4ODYsMjQ4ODcsMjQ4ODksMjQ4OTcsMjQ5MDEsMjQ5MDIsMjQ5MDUsMjQ5MjYsMjQ5MjgsMjQ5NDAsMjQ5NDYsMjQ5NTIs'@; put 'MjQ5NTUsMjQ5NTYsMjQ5NTksMjQ5NjAsMjQ5NjEsMjQ5NjMsMjQ5NjQsMjQ5NzEsMjQ5NzMsMjQ5NzgsMjQ5NzksMjQ5ODMsMjQ5ODQsMjQ5ODgsMjQ5ODksMjQ5OTEsMjQ5OTIsMjQ5OTcsMjVlMywyNTAwMiwyNTAwNSwyNTAxNiwyNTAxNywyNTAyMCwyNTAyNCwyNTAyNSwyNTAyNiwyNTAz'@; put 'OCwyNTAzOSwyNTA0NSwyNTA1MiwyNTA1MywyNTA1NCwyNTA1NSwyNTA1NywyNTA1OCwyNTA2MywyNTA2NSwyNTA2MSwyNTA2OCwyNTA2OSwyNTA3MSwyNTA4OSwyNTA5MSwyNTA5MiwyNTA5NSwyNTEwNywyNTEwOSwyNTExNiwyNTEyMCwyNTEyMiwyNTEyMywyNTEyNywyNTEyOSwyNTEzMSwy'@; put 'NTE0NSwyNTE0OSwyNTE1NCwyNTE1NSwyNTE1NiwyNTE1OCwyNTE2NCwyNTE2OCwyNTE2OSwyNTE3MCwyNTE3MiwyNTE3NCwyNTE3OCwyNTE4MCwyNTE4OCwyNTE5NywyNTE5OSwyNTIwMywyNTIxMCwyNTIxMywyNTIyOSwyNTIzMCwyNTIzMSwyNTIzMiwyNTI1NCwyNTI1NiwyNTI2NywyNTI3'@; put 'MCwyNTI3MSwyNTI3NCwyNTI3OCwyNTI3OSwyNTI4NCwyNTI5NCwyNTMwMSwyNTMwMiwyNTMwNiwyNTMyMiwyNTMzMCwyNTMzMiwyNTM0MCwyNTM0MSwyNTM0NywyNTM0OCwyNTM1NCwyNTM1NSwyNTM1NywyNTM2MCwyNTM2MywyNTM2NiwyNTM2OCwyNTM4NSwyNTM4NiwyNTM4OSwyNTM5Nywy'@; put 'NTM5OCwyNTQwMSwyNTQwNCwyNTQwOSwyNTQxMCwyNTQxMSwyNTQxMiwyNTQxNCwyNTQxOCwyNTQxOSwyNTQyMiwyNTQyNiwyNTQyNywyNTQyOCwyNTQzMiwyNTQzNSwyNTQ0NSwyNTQ0NiwyNTQ1MiwyNTQ1MywyNTQ1NywyNTQ2MCwyNTQ2MSwyNTQ2NCwyNTQ2OCwyNTQ2OSwyNTQ3MSwyNTQ3'@; put 'NCwyNTQ3NiwyNTQ3OSwyNTQ4MiwyNTQ4OCwyNTQ5MiwyNTQ5MywyNTQ5NywyNTQ5OCwyNTUwMiwyNTUwOCwyNTUxMCwyNTUxNywyNTUxOCwyNTUxOSwyNTUzMywyNTUzNywyNTU0MSwyNTU0NCwyNTU1MCwyNTU1MywyNTU1NSwyNTU1NiwyNTU1NywyNTU2NCwyNTU2OCwyNTU3MywyNTU3OCwy'@; put 'NTU4MCwyNTU4NiwyNTU4NywyNTU4OSwyNTU5MiwyNTU5MywyNTYwOSwyNTYxMCwyNTYxNiwyNTYxOCwyNTYyMCwyNTYyNCwyNTYzMCwyNTYzMiwyNTYzNCwyNTYzNiwyNTYzNywyNTY0MSwyNTY0MiwyNTY0NywyNTY0OCwyNTY1MywyNTY2MSwyNTY2MywyNTY3NSwyNTY3OSwyNTY4MSwyNTY4'@; put 'MiwyNTY4MywyNTY4NCwyNTY5MCwyNTY5MSwyNTY5MiwyNTY5MywyNTY5NSwyNTY5NiwyNTY5NywyNTY5OSwyNTcwOSwyNTcxNSwyNTcxNiwyNTcyMywyNTcyNSwyNTczMywyNTczNSwyNTc0MywyNTc0NCwyNTc0NSwyNTc1MiwyNTc1MywyNTc1NSwyNTc1NywyNTc1OSwyNTc2MSwyNTc2Mywy'@; put 'NTc2NiwyNTc2OCwyNTc3MiwyNTc3OSwyNTc4OSwyNTc5MCwyNTc5MSwyNTc5NiwyNTgwMSwyNTgwMiwyNTgwMywyNTgwNCwyNTgwNiwyNTgwOCwyNTgwOSwyNTgxMywyNTgxNSwyNTgyOCwyNTgyOSwyNTgzMywyNTgzNCwyNTgzNywyNTg0MCwyNTg0NSwyNTg0NywyNTg1MSwyNTg1NSwyNTg1'@; put 'NywyNTg2MCwyNTg2NCwyNTg2NSwyNTg2NiwyNTg3MSwyNTg3NSwyNTg3NiwyNTg3OCwyNTg4MSwyNTg4MywyNTg4NiwyNTg4NywyNTg5MCwyNTg5NCwyNTg5NywyNTkwMiwyNTkwNSwyNTkxNCwyNTkxNiwyNTkxNywyNTkyMywyNTkyNywyNTkyOSwyNTkzNiwyNTkzOCwyNTk0MCwyNTk1MSwy'@; put 'NTk1MiwyNTk1OSwyNTk2MywyNTk3OCwyNTk4MSwyNTk4NSwyNTk4OSwyNTk5NCwyNjAwMiwyNjAwNSwyNjAwOCwyNjAxMywyNjAxNiwyNjAxOSwyNjAyMiwyNjAzMCwyNjAzNCwyNjAzNSwyNjAzNiwyNjA0NywyNjA1MCwyNjA1NiwyNjA1NywyNjA2MiwyNjA2NCwyNjA2OCwyNjA3MCwyNjA3'@; put 'MiwyNjA3OSwyNjA5NiwyNjA5OCwyNjEwMCwyNjEwMSwyNjEwNSwyNjExMCwyNjExMSwyNjExMiwyNjExNiwyNjEyMCwyNjEyMSwyNjEyNSwyNjEyOSwyNjEzMCwyNjEzMywyNjEzNCwyNjE0MSwyNjE0MiwyNjE0NSwyNjE0NiwyNjE0NywyNjE0OCwyNjE1MCwyNjE1MywyNjE1NCwyNjE1NSwy'@; put 'NjE1NiwyNjE1OCwyNjE2MCwyNjE2MSwyNjE2MywyNjE2OSwyNjE2NywyNjE3NiwyNjE4MSwyNjE4MiwyNjE4NiwyNjE4OCwyNjE5MywyNjE5MCwyNjE5OSwyNjIwMCwyNjIwMSwyNjIwMywyNjIwNCwyNjIwOCwyNjIwOSwyNjM2MywyNjIxOCwyNjIxOSwyNjIyMCwyNjIzOCwyNjIyNywyNjIy'@; put 'OSwyNjIzOSwyNjIzMSwyNjIzMiwyNjIzMywyNjIzNSwyNjI0MCwyNjIzNiwyNjI1MSwyNjI1MiwyNjI1MywyNjI1NiwyNjI1OCwyNjI2NSwyNjI2NiwyNjI2NywyNjI2OCwyNjI3MSwyNjI3MiwyNjI3NiwyNjI4NSwyNjI4OSwyNjI5MCwyNjI5MywyNjI5OSwyNjMwMywyNjMwNCwyNjMwNiwy'@; put 'NjMwNywyNjMxMiwyNjMxNiwyNjMxOCwyNjMxOSwyNjMyNCwyNjMzMSwyNjMzNSwyNjM0NCwyNjM0NywyNjM0OCwyNjM1MCwyNjM2MiwyNjM3MywyNjM3NSwyNjM4MiwyNjM4NywyNjM5MywyNjM5NiwyNjQwMCwyNjQwMiwyNjQxOSwyNjQzMCwyNjQzNywyNjQzOSwyNjQ0MCwyNjQ0NCwyNjQ1'@; put 'MiwyNjQ1MywyNjQ2MSwyNjQ3MCwyNjQ3NiwyNjQ3OCwyNjQ4NCwyNjQ4NiwyNjQ5MSwyNjQ5NywyNjUwMCwyNjUxMCwyNjUxMSwyNjUxMywyNjUxNSwyNjUxOCwyNjUyMCwyNjUyMSwyNjUyMywyNjU0NCwyNjU0NSwyNjU0NiwyNjU0OSwyNjU1NSwyNjU1NiwyNjU1NywyNjYxNywyNjU2MCwy'@; put 'NjU2MiwyNjU2MywyNjU2NSwyNjU2OCwyNjU2OSwyNjU3OCwyNjU4MywyNjU4NSwyNjU4OCwyNjU5MywyNjU5OCwyNjYwOCwyNjYxMCwyNjYxNCwyNjYxNSwyNjcwNiwyNjY0NCwyNjY0OSwyNjY1MywyNjY1NSwyNjY2NCwyNjY2MywyNjY2OCwyNjY2OSwyNjY3MSwyNjY3MiwyNjY3MywyNjY3'@; put 'NSwyNjY4MywyNjY4NywyNjY5MiwyNjY5MywyNjY5OCwyNjcwMCwyNjcwOSwyNjcxMSwyNjcxMiwyNjcxNSwyNjczMSwyNjczNCwyNjczNSwyNjczNiwyNjczNywyNjczOCwyNjc0MSwyNjc0NSwyNjc0NiwyNjc0NywyNjc0OCwyNjc1NCwyNjc1NiwyNjc1OCwyNjc2MCwyNjc3NCwyNjc3Niwy'@; put 'Njc3OCwyNjc4MCwyNjc4NSwyNjc4NywyNjc4OSwyNjc5MywyNjc5NCwyNjc5OCwyNjgwMiwyNjgxMSwyNjgyMSwyNjgyNCwyNjgyOCwyNjgzMSwyNjgzMiwyNjgzMywyNjgzNSwyNjgzOCwyNjg0MSwyNjg0NCwyNjg0NSwyNjg1MywyNjg1NiwyNjg1OCwyNjg1OSwyNjg2MCwyNjg2MSwyNjg2'@; put 'NCwyNjg2NSwyNjg2OSwyNjg3MCwyNjg3NSwyNjg3NiwyNjg3NywyNjg4NiwyNjg4OSwyNjg5MCwyNjg5NiwyNjg5NywyNjg5OSwyNjkwMiwyNjkwMywyNjkyOSwyNjkzMSwyNjkzMywyNjkzNiwyNjkzOSwyNjk0NiwyNjk0OSwyNjk1MywyNjk1OCwyNjk2NywyNjk3MSwyNjk3OSwyNjk4MCwy'@; put 'Njk4MSwyNjk4MiwyNjk4NCwyNjk4NSwyNjk4OCwyNjk5MiwyNjk5MywyNjk5NCwyNzAwMiwyNzAwMywyNzAwNywyNzAwOCwyNzAyMSwyNzAyNiwyNzAzMCwyNzAzMiwyNzA0MSwyNzA0NSwyNzA0NiwyNzA0OCwyNzA1MSwyNzA1MywyNzA1NSwyNzA2MywyNzA2NCwyNzA2NiwyNzA2OCwyNzA3'@; put 'NywyNzA4MCwyNzA4OSwyNzA5NCwyNzA5NSwyNzEwNiwyNzEwOSwyNzExOCwyNzExOSwyNzEyMSwyNzEyMywyNzEyNSwyNzEzNCwyNzEzNiwyNzEzNywyNzEzOSwyNzE1MSwyNzE1MywyNzE1NywyNzE2MiwyNzE2NSwyNzE2OCwyNzE3MiwyNzE3NiwyNzE4NCwyNzE4NiwyNzE4OCwyNzE5MSwy'@; put 'NzE5NSwyNzE5OCwyNzE5OSwyNzIwNSwyNzIwNiwyNzIwOSwyNzIxMCwyNzIxNCwyNzIxNiwyNzIxNywyNzIxOCwyNzIyMSwyNzIyMiwyNzIyNywyNzIzNiwyNzIzOSwyNzI0MiwyNzI0OSwyNzI1MSwyNzI2MiwyNzI2NSwyNzI2NywyNzI3MCwyNzI3MSwyNzI3MywyNzI3NSwyNzI4MSwyNzI5'@; put 'MSwyNzI5MywyNzI5NCwyNzI5NSwyNzMwMSwyNzMwNywyNzMxMSwyNzMxMiwyNzMxMywyNzMxNiwyNzMyNSwyNzMyNiwyNzMyNywyNzMzNCwyNzMzNywyNzMzNiwyNzM0MCwyNzM0NCwyNzM0OCwyNzM0OSwyNzM1MCwyNzM1NiwyNzM1NywyNzM2NCwyNzM2NywyNzM3MiwyNzM3NiwyNzM3Nywy'@; put 'NzM3OCwyNzM4OCwyNzM4OSwyNzM5NCwyNzM5NSwyNzM5OCwyNzM5OSwyNzQwMSwyNzQwNywyNzQwOCwyNzQwOSwyNzQxNSwyNzQxOSwyNzQyMiwyNzQyOCwyNzQzMiwyNzQzNSwyNzQzNiwyNzQzOSwyNzQ0NSwyNzQ0NiwyNzQ1MSwyNzQ1NSwyNzQ2MiwyNzQ2NiwyNzQ2OSwyNzQ3NCwyNzQ3'@; put 'OCwyNzQ4MCwyNzQ4NSwyNzQ4OCwyNzQ5NSwyNzQ5OSwyNzUwMiwyNzUwNCwyNzUwOSwyNzUxNywyNzUxOCwyNzUyMiwyNzUyNSwyNzU0MywyNzU0NywyNzU1MSwyNzU1MiwyNzU1NCwyNzU1NSwyNzU2MCwyNzU2MSwyNzU2NCwyNzU2NSwyNzU2NiwyNzU2OCwyNzU3NiwyNzU3NywyNzU4MSwy'@; put 'NzU4MiwyNzU4NywyNzU4OCwyNzU5MywyNzU5NiwyNzYwNiwyNzYxMCwyNzYxNywyNzYxOSwyNzYyMiwyNzYyMywyNzYzMCwyNzYzMywyNzYzOSwyNzY0MSwyNzY0NywyNzY1MCwyNzY1MiwyNzY1MywyNzY1NywyNzY2MSwyNzY2MiwyNzY2NCwyNzY2NiwyNzY3MywyNzY3OSwyNzY4NiwyNzY4'@; put 'NywyNzY4OCwyNzY5MiwyNzY5NCwyNzY5OSwyNzcwMSwyNzcwMiwyNzcwNiwyNzcwNywyNzcxMSwyNzcyMiwyNzcyMywyNzcyNSwyNzcyNywyNzczMCwyNzczMiwyNzczNywyNzczOSwyNzc0MCwyNzc1NSwyNzc1NywyNzc1OSwyNzc2NCwyNzc2NiwyNzc2OCwyNzc2OSwyNzc3MSwyNzc4MSwy'@; put 'Nzc4MiwyNzc4MywyNzc4NSwyNzc5NiwyNzc5NywyNzc5OSwyNzgwMCwyNzgwNCwyNzgwNywyNzgyNCwyNzgyNiwyNzgyOCwyNzg0MiwyNzg0NiwyNzg1MywyNzg1NSwyNzg1NiwyNzg1NywyNzg1OCwyNzg2MCwyNzg2MiwyNzg2NiwyNzg2OCwyNzg3MiwyNzg3OSwyNzg4MSwyNzg4MywyNzg4'@; put 'NCwyNzg4NiwyNzg5MCwyNzg5MiwyNzkwOCwyNzkxMSwyNzkxNCwyNzkxOCwyNzkxOSwyNzkyMSwyNzkyMywyNzkzMCwyNzk0MiwyNzk0MywyNzk0NCwyNzc1MSwyNzk1MCwyNzk1MSwyNzk1MywyNzk2MSwyNzk2NCwyNzk2NywyNzk5MSwyNzk5OCwyNzk5OSwyODAwMSwyODAwNSwyODAwNywy'@; put 'ODAxNSwyODAxNiwyODAyOCwyODAzNCwyODAzOSwyODA0OSwyODA1MCwyODA1MiwyODA1NCwyODA1NSwyODA1NiwyODA3NCwyODA3NiwyODA4NCwyODA4NywyODA4OSwyODA5MywyODA5NSwyODEwMCwyODEwNCwyODEwNiwyODExMCwyODExMSwyODExOCwyODEyMywyODEyNSwyODEyNywyODEy'@; put 'OCwyODEzMCwyODEzMywyODEzNywyODE0MywyODE0NCwyODE0OCwyODE1MCwyODE1NiwyODE2MCwyODE2NCwyODE5MCwyODE5NCwyODE5OSwyODIxMCwyODIxNCwyODIxNywyODIxOSwyODIyMCwyODIyOCwyODIyOSwyODIzMiwyODIzMywyODIzNSwyODIzOSwyODI0MSwyODI0MiwyODI0Mywy'@; put 'ODI0NCwyODI0NywyODI1MiwyODI1MywyODI1NCwyODI1OCwyODI1OSwyODI2NCwyODI3NSwyODI4MywyODI4NSwyODMwMSwyODMwNywyODMxMywyODMyMCwyODMyNywyODMzMywyODMzNCwyODMzNywyODMzOSwyODM0NywyODM1MSwyODM1MiwyODM1MywyODM1NSwyODM1OSwyODM2MCwyODM2'@; put 'MiwyODM2NSwyODM2NiwyODM2NywyODM5NSwyODM5NywyODM5OCwyODQwOSwyODQxMSwyODQxMywyODQyMCwyODQyNCwyODQyNiwyODQyOCwyODQyOSwyODQzOCwyODQ0MCwyODQ0MiwyODQ0MywyODQ1NCwyODQ1NywyODQ1OCwyODQ2MywyODQ2NCwyODQ2NywyODQ3MCwyODQ3NSwyODQ3Niwy'@; put 'ODQ2MSwyODQ5NSwyODQ5NywyODQ5OCwyODQ5OSwyODUwMywyODUwNSwyODUwNiwyODUwOSwyODUxMCwyODUxMywyODUxNCwyODUyMCwyODUyNCwyODU0MSwyODU0MiwyODU0NywyODU1MSwyODU1MiwyODU1NSwyODU1NiwyODU1NywyODU2MCwyODU2MiwyODU2MywyODU2NCwyODU2NiwyODU3'@; put 'MCwyODU3NSwyODU3NiwyODU4MSwyODU4MiwyODU4MywyODU4NCwyODU5MCwyODU5MSwyODU5MiwyODU5NywyODU5OCwyODYwNCwyODYxMywyODYxNSwyODYxNiwyODYxOCwyODYzNCwyODYzOCwyODY0OCwyODY0OSwyODY1NiwyODY2MSwyODY2NSwyODY2OCwyODY2OSwyODY3MiwyODY3Nywy'@; put 'ODY3OCwyODY3OSwyODY4NSwyODY5NSwyODcwNCwyODcwNywyODcxOSwyODcyNCwyODcyNywyODcyOSwyODczMiwyODczOSwyODc0MCwyODc0NCwyODc0NSwyODc0NiwyODc0NywyODc1NiwyODc1NywyODc2NSwyODc2NiwyODc1MCwyODc3MiwyODc3MywyODc4MCwyODc4MiwyODc4OSwyODc5'@; put 'MCwyODc5OCwyODgwMSwyODgwNSwyODgwNiwyODgyMCwyODgyMSwyODgyMiwyODgyMywyODgyNCwyODgyNywyODgzNiwyODg0MywyODg0OCwyODg0OSwyODg1MiwyODg1NSwyODg3NCwyODg4MSwyODg4MywyODg4NCwyODg4NSwyODg4NiwyODg4OCwyODg5MiwyODkwMCwyODkyMiwyODkzMSwy'@; put 'ODkzMiwyODkzMywyODkzNCwyODkzNSwyODkzOSwyODk0MCwyODk0MywyODk1OCwyODk2MCwyODk3MSwyODk3MywyODk3NSwyODk3NiwyODk3NywyODk4NCwyODk5MywyODk5NywyODk5OCwyODk5OSwyOTAwMiwyOTAwMywyOTAwOCwyOTAxMCwyOTAxNSwyOTAxOCwyOTAyMCwyOTAyMiwyOTAy'@; put 'NCwyOTAzMiwyOTA0OSwyOTA1NiwyOTA2MSwyOTA2MywyOTA2OCwyOTA3NCwyOTA4MiwyOTA4MywyOTA4OCwyOTA5MCwyOTEwMywyOTEwNCwyOTEwNiwyOTEwNywyOTExNCwyOTExOSwyOTEyMCwyOTEyMSwyOTEyNCwyOTEzMSwyOTEzMiwyOTEzOSwyOTE0MiwyOTE0NSwyOTE0NiwyOTE0OCwy'@; put 'OTE3NiwyOTE4MiwyOTE4NCwyOTE5MSwyOTE5MiwyOTE5MywyOTIwMywyOTIwNywyOTIxMCwyOTIxMywyOTIxNSwyOTIyMCwyOTIyNywyOTIzMSwyOTIzNiwyOTI0MCwyOTI0MSwyOTI0OSwyOTI1MCwyOTI1MSwyOTI1MywyOTI2MiwyOTI2MywyOTI2NCwyOTI2NywyOTI2OSwyOTI3MCwyOTI3'@; put 'NCwyOTI3NiwyOTI3OCwyOTI4MCwyOTI4MywyOTI4OCwyOTI5MSwyOTI5NCwyOTI5NSwyOTI5NywyOTMwMywyOTMwNCwyOTMwNywyOTMwOCwyOTMxMSwyOTMxNiwyOTMyMSwyOTMyNSwyOTMyNiwyOTMzMSwyOTMzOSwyOTM1MiwyOTM1NywyOTM1OCwyOTM2MSwyOTM2NCwyOTM3NCwyOTM3Nywy'@; put 'OTM4MywyOTM4NSwyOTM4OCwyOTM5NywyOTM5OCwyOTQwMCwyOTQwNywyOTQxMywyOTQyNywyOTQyOCwyOTQzNCwyOTQzNSwyOTQzOCwyOTQ0MiwyOTQ0NCwyOTQ0NSwyOTQ0NywyOTQ1MSwyOTQ1MywyOTQ1OCwyOTQ1OSwyOTQ2NCwyOTQ2NSwyOTQ3MCwyOTQ3NCwyOTQ3NiwyOTQ3OSwyOTQ4'@; put 'MCwyOTQ4NCwyOTQ4OSwyOTQ5MCwyOTQ5MywyOTQ5OCwyOTQ5OSwyOTUwMSwyOTUwNywyOTUxNywyOTUyMCwyOTUyMiwyOTUyNiwyOTUyOCwyOTUzMywyOTUzNCwyOTUzNSwyOTUzNiwyOTU0MiwyOTU0MywyOTU0NSwyOTU0NywyOTU0OCwyOTU1MCwyOTU1MSwyOTU1MywyOTU1OSwyOTU2MSwy'@; put 'OTU2NCwyOTU2OCwyOTU2OSwyOTU3MSwyOTU3MywyOTU3NCwyOTU4MiwyOTU4NCwyOTU4NywyOTU4OSwyOTU5MSwyOTU5MiwyOTU5NiwyOTU5OCwyOTU5OSwyOTYwMCwyOTYwMiwyOTYwNSwyOTYwNiwyOTYxMCwyOTYxMSwyOTYxMywyOTYyMSwyOTYyMywyOTYyNSwyOTYyOCwyOTYyOSwyOTYz'@; put 'MSwyOTYzNywyOTYzOCwyOTY0MSwyOTY0MywyOTY0NCwyOTY0NywyOTY1MCwyOTY1MSwyOTY1NCwyOTY1NywyOTY2MSwyOTY2NSwyOTY2NywyOTY3MCwyOTY3MSwyOTY3MywyOTY4NCwyOTY4NSwyOTY4NywyOTY4OSwyOTY5MCwyOTY5MSwyOTY5MywyOTY5NSwyOTY5NiwyOTY5NywyOTcwMCwy'@; put 'OTcwMywyOTcwNiwyOTcxMywyOTcyMiwyOTcyMywyOTczMiwyOTczNCwyOTczNiwyOTczNywyOTczOCwyOTczOSwyOTc0MCwyOTc0MSwyOTc0MiwyOTc0MywyOTc0NCwyOTc0NSwyOTc1MywyOTc2MCwyOTc2MywyOTc2NCwyOTc2NiwyOTc2NywyOTc3MSwyOTc3MywyOTc3NywyOTc3OCwyOTc4'@; put 'MywyOTc4OSwyOTc5NCwyOTc5OCwyOTc5OSwyOTgwMCwyOTgwMywyOTgwNSwyOTgwNiwyOTgwOSwyOTgxMCwyOTgyNCwyOTgyNSwyOTgyOSwyOTgzMCwyOTgzMSwyOTgzMywyOTgzOSwyOTg0MCwyOTg0MSwyOTg0MiwyOTg0OCwyOTg0OSwyOTg1MCwyOTg1MiwyOTg1NSwyOTg1NiwyOTg1Nywy'@; put 'OTg1OSwyOTg2MiwyOTg2NCwyOTg2NSwyOTg2NiwyOTg2NywyOTg3MCwyOTg3MSwyOTg3MywyOTg3NCwyOTg3NywyOTg4MSwyOTg4MywyOTg4NywyOTg5NiwyOTg5NywyOTkwMCwyOTkwNCwyOTkwNywyOTkxMiwyOTkxNCwyOTkxNSwyOTkxOCwyOTkxOSwyOTkyNCwyOTkyOCwyOTkzMCwyOTkz'@; put 'MSwyOTkzNSwyOTk0MCwyOTk0NiwyOTk0NywyOTk0OCwyOTk1MSwyOTk1OCwyOTk3MCwyOTk3NCwyOTk3NSwyOTk4NCwyOTk4NSwyOTk4OCwyOTk5MSwyOTk5MywyOTk5NCwyOTk5OSwzMDAwNiwzMDAwOSwzMDAxMywzMDAxNCwzMDAxNSwzMDAxNiwzMDAxOSwzMDAyMywzMDAyNCwzMDAzMCwz'@; put 'MDAzMiwzMDAzNCwzMDAzOSwzMDA0NiwzMDA0NywzMDA0OSwzMDA2MywzMDA2NSwzMDA3MywzMDA3NCwzMDA3NSwzMDA3NiwzMDA3NywzMDA3OCwzMDA4MSwzMDA4NSwzMDA5NiwzMDA5OCwzMDA5OSwzMDEwMSwzMDEwNSwzMDEwOCwzMDExNCwzMDExNiwzMDEzMiwzMDEzOCwzMDE0MywzMDE0'@; put 'NCwzMDE0NSwzMDE0OCwzMDE1MCwzMDE1NiwzMDE1OCwzMDE1OSwzMDE2NywzMDE3MiwzMDE3NSwzMDE3NiwzMDE3NywzMDE4MCwzMDE4MywzMDE4OCwzMDE5MCwzMDE5MSwzMDE5MywzMDIwMSwzMDIwOCwzMDIxMCwzMDIxMSwzMDIxMiwzMDIxNSwzMDIxNiwzMDIxOCwzMDIyMCwzMDIyMywz'@; put 'MDIyNiwzMDIyNywzMDIyOSwzMDIzMCwzMDIzMywzMDIzNSwzMDIzNiwzMDIzNywzMDIzOCwzMDI0MywzMDI0NSwzMDI0NiwzMDI0OSwzMDI1MywzMDI1OCwzMDI1OSwzMDI2MSwzMDI2NCwzMDI2NSwzMDI2NiwzMDI2OCwzMDI4MiwzMDI3MiwzMDI3MywzMDI3NSwzMDI3NiwzMDI3NywzMDI4'@; put 'MSwzMDI4MywzMDI5MywzMDI5NywzMDMwMywzMDMwOCwzMDMwOSwzMDMxNywzMDMxOCwzMDMxOSwzMDMyMSwzMDMyNCwzMDMzNywzMDM0MSwzMDM0OCwzMDM0OSwzMDM1NywzMDM2MywzMDM2NCwzMDM2NSwzMDM2NywzMDM2OCwzMDM3MCwzMDM3MSwzMDM3MiwzMDM3MywzMDM3NCwzMDM3NSwz'@; put 'MDM3NiwzMDM3OCwzMDM4MSwzMDM5NywzMDQwMSwzMDQwNSwzMDQwOSwzMDQxMSwzMDQxMiwzMDQxNCwzMDQyMCwzMDQyNSwzMDQzMiwzMDQzOCwzMDQ0MCwzMDQ0NCwzMDQ0OCwzMDQ0OSwzMDQ1NCwzMDQ1NywzMDQ2MCwzMDQ2NCwzMDQ3MCwzMDQ3NCwzMDQ3OCwzMDQ4MiwzMDQ4NCwzMDQ4'@; put 'NSwzMDQ4NywzMDQ4OSwzMDQ5MCwzMDQ5MiwzMDQ5OCwzMDUwNCwzMDUwOSwzMDUxMCwzMDUxMSwzMDUxNiwzMDUxNywzMDUxOCwzMDUyMSwzMDUyNSwzMDUyNiwzMDUzMCwzMDUzMywzMDUzNCwzMDUzOCwzMDU0MSwzMDU0MiwzMDU0MywzMDU0NiwzMDU1MCwzMDU1MSwzMDU1NiwzMDU1OCwz'@; put 'MDU1OSwzMDU2MCwzMDU2MiwzMDU2NCwzMDU2NywzMDU3MCwzMDU3MiwzMDU3NiwzMDU3OCwzMDU3OSwzMDU4MCwzMDU4NiwzMDU4OSwzMDU5MiwzMDU5NiwzMDYwNCwzMDYwNSwzMDYxMiwzMDYxMywzMDYxNCwzMDYxOCwzMDYyMywzMDYyNiwzMDYzMSwzMDYzNCwzMDYzOCwzMDYzOSwzMDY0'@; put 'MSwzMDY0NSwzMDY1NCwzMDY1OSwzMDY2NSwzMDY3MywzMDY3NCwzMDY3NywzMDY4MSwzMDY4NiwzMDY4NywzMDY4OCwzMDY5MiwzMDY5NCwzMDY5OCwzMDcwMCwzMDcwNCwzMDcwNSwzMDcwOCwzMDcxMiwzMDcxNSwzMDcyNSwzMDcyNiwzMDcyOSwzMDczMywzMDczNCwzMDczNywzMDc0OSwz'@; put 'MDc1MywzMDc1NCwzMDc1NSwzMDc2NSwzMDc2NiwzMDc2OCwzMDc3MywzMDc3NSwzMDc4NywzMDc4OCwzMDc5MSwzMDc5MiwzMDc5NiwzMDc5OCwzMDgwMiwzMDgxMiwzMDgxNCwzMDgxNiwzMDgxNywzMDgxOSwzMDgyMCwzMDgyNCwzMDgyNiwzMDgzMCwzMDg0MiwzMDg0NiwzMDg1OCwzMDg2'@; put 'MywzMDg2OCwzMDg3MiwzMDg4MSwzMDg3NywzMDg3OCwzMDg3OSwzMDg4NCwzMDg4OCwzMDg5MiwzMDg5MywzMDg5NiwzMDg5NywzMDg5OCwzMDg5OSwzMDkwNywzMDkwOSwzMDkxMSwzMDkxOSwzMDkyMCwzMDkyMSwzMDkyNCwzMDkyNiwzMDkzMCwzMDkzMSwzMDkzMywzMDkzNCwzMDk0OCwz'@; put 'MDkzOSwzMDk0MywzMDk0NCwzMDk0NSwzMDk1MCwzMDk1NCwzMDk2MiwzMDk2MywzMDk3NiwzMDk2NiwzMDk2NywzMDk3MCwzMDk3MSwzMDk3NSwzMDk4MiwzMDk4OCwzMDk5MiwzMTAwMiwzMTAwNCwzMTAwNiwzMTAwNywzMTAwOCwzMTAxMywzMTAxNSwzMTAxNywzMTAyMSwzMTAyNSwzMTAy'@; put 'OCwzMTAyOSwzMTAzNSwzMTAzNywzMTAzOSwzMTA0NCwzMTA0NSwzMTA0NiwzMTA1MCwzMTA1MSwzMTA1NSwzMTA1NywzMTA2MCwzMTA2NCwzMTA2NywzMTA2OCwzMTA3OSwzMTA4MSwzMTA4MywzMTA5MCwzMTA5NywzMTA5OSwzMTEwMCwzMTEwMiwzMTExNSwzMTExNiwzMTEyMSwzMTEyMywz'@; put 'MTEyNCwzMTEyNSwzMTEyNiwzMTEyOCwzMTEzMSwzMTEzMiwzMTEzNywzMTE0NCwzMTE0NSwzMTE0NywzMTE1MSwzMTE1MywzMTE1NiwzMTE2MCwzMTE2MywzMTE3MCwzMTE3MiwzMTE3NSwzMTE3NiwzMTE3OCwzMTE4MywzMTE4OCwzMTE5MCwzMTE5NCwzMTE5NywzMTE5OCwzMTIwMCwzMTIw'@; put 'MiwzMTIwNSwzMTIxMCwzMTIxMSwzMTIxMywzMTIxNywzMTIyNCwzMTIyOCwzMTIzNCwzMTIzNSwzMTIzOSwzMTI0MSwzMTI0MiwzMTI0NCwzMTI0OSwzMTI1MywzMTI1OSwzMTI2MiwzMTI2NSwzMTI3MSwzMTI3NSwzMTI3NywzMTI3OSwzMTI4MCwzMTI4NCwzMTI4NSwzMTI4OCwzMTI4OSwz'@; put 'MTI5MCwzMTMwMCwzMTMwMSwzMTMwMywzMTMwNCwzMTMwOCwzMTMxNywzMTMxOCwzMTMyMSwzMTMyNCwzMTMyNSwzMTMyNywzMTMyOCwzMTMzMywzMTMzNSwzMTMzOCwzMTM0MSwzMTM0OSwzMTM1MiwzMTM1OCwzMTM2MCwzMTM2MiwzMTM2NSwzMTM2NiwzMTM3MCwzMTM3MSwzMTM3NiwzMTM3'@; put 'NywzMTM4MCwzMTM5MCwzMTM5MiwzMTM5NSwzMTQwNCwzMTQxMSwzMTQxMywzMTQxNywzMTQxOSwzMTQyMCwzMTQzMCwzMTQzMywzMTQzNiwzMTQzOCwzMTQ0MSwzMTQ1MSwzMTQ2NCwzMTQ2NSwzMTQ2NywzMTQ2OCwzMTQ3MywzMTQ3NiwzMTQ4MywzMTQ4NSwzMTQ4NiwzMTQ5NSwzMTUwOCwz'@; put 'MTUxOSwzMTUyMywzMTUyNywzMTUyOSwzMTUzMCwzMTUzMSwzMTUzMywzMTUzNCwzMTUzNSwzMTUzNiwzMTUzNywzMTU0MCwzMTU0OSwzMTU1MSwzMTU1MiwzMTU1MywzMTU1OSwzMTU2NiwzMTU3MywzMTU4NCwzMTU4OCwzMTU5MCwzMTU5MywzMTU5NCwzMTU5NywzMTU5OSwzMTYwMiwzMTYw'@; put 'MywzMTYwNywzMTYyMCwzMTYyNSwzMTYzMCwzMTYzMiwzMTYzMywzMTYzOCwzMTY0MywzMTY0NiwzMTY0OCwzMTY1MywzMTY2MCwzMTY2MywzMTY2NCwzMTY2NiwzMTY2OSwzMTY3MCwzMTY3NCwzMTY3NSwzMTY3NiwzMTY3NywzMTY4MiwzMTY4NSwzMTY4OCwzMTY5MCwzMTcwMCwzMTcwMiwz'@; put 'MTcwMywzMTcwNSwzMTcwNiwzMTcwNywzMTcyMCwzMTcyMiwzMTczMCwzMTczMiwzMTczMywzMTczNiwzMTczNywzMTczOCwzMTc0MCwzMTc0MiwzMTc0NSwzMTc0NiwzMTc0NywzMTc0OCwzMTc1MCwzMTc1MywzMTc1NSwzMTc1NiwzMTc1OCwzMTc1OSwzMTc2OSwzMTc3MSwzMTc3NiwzMTc4'@; put 'MSwzMTc4MiwzMTc4NCwzMTc4OCwzMTc5MywzMTc5NSwzMTc5NiwzMTc5OCwzMTgwMSwzMTgwMiwzMTgxNCwzMTgxOCwzMTgyOSwzMTgyNSwzMTgyNiwzMTgyNywzMTgzMywzMTgzNCwzMTgzNSwzMTgzNiwzMTgzNywzMTgzOCwzMTg0MSwzMTg0MywzMTg0NywzMTg0OSwzMTg1MywzMTg1NCwz'@; put 'MTg1NiwzMTg1OCwzMTg2NSwzMTg2OCwzMTg2OSwzMTg3OCwzMTg3OSwzMTg4NywzMTg5MiwzMTkwMiwzMTkwNCwzMTkxMCwzMTkyMCwzMTkyNiwzMTkyNywzMTkzMCwzMTkzMSwzMTkzMiwzMTkzNSwzMTk0MCwzMTk0MywzMTk0NCwzMTk0NSwzMTk0OSwzMTk1MSwzMTk1NSwzMTk1NiwzMTk1'@; put 'NywzMTk1OSwzMTk2MSwzMTk2MiwzMTk2NSwzMTk3NCwzMTk3NywzMTk3OSwzMTk4OSwzMjAwMywzMjAwNywzMjAwOCwzMjAwOSwzMjAxNSwzMjAxNywzMjAxOCwzMjAxOSwzMjAyMiwzMjAyOSwzMjAzMCwzMjAzNSwzMjAzOCwzMjA0MiwzMjA0NSwzMjA0OSwzMjA2MCwzMjA2MSwzMjA2Miwz'@; put 'MjA2NCwzMjA2NSwzMjA3MSwzMjA3MiwzMjA3NywzMjA4MSwzMjA4MywzMjA4NywzMjA4OSwzMjA5MCwzMjA5MiwzMjA5MywzMjEwMSwzMjEwMywzMjEwNiwzMjExMiwzMjEyMCwzMjEyMiwzMjEyMywzMjEyNywzMjEyOSwzMjEzMCwzMjEzMSwzMjEzMywzMjEzNCwzMjEzNiwzMjEzOSwzMjE0'@; put 'MCwzMjE0MSwzMjE0NSwzMjE1MCwzMjE1MSwzMjE1NywzMjE1OCwzMjE2NiwzMjE2NywzMjE3MCwzMjE3OSwzMjE4MiwzMjE4MywzMjE4NSwzMjE5NCwzMjE5NSwzMjE5NiwzMjE5NywzMjE5OCwzMjIwNCwzMjIwNSwzMjIwNiwzMjIxNSwzMjIxNywzMjI1NiwzMjIyNiwzMjIyOSwzMjIzMCwz'@; put 'MjIzNCwzMjIzNSwzMjIzNywzMjI0MSwzMjI0NSwzMjI0NiwzMjI0OSwzMjI1MCwzMjI2NCwzMjI3MiwzMjI3MywzMjI3NywzMjI3OSwzMjI4NCwzMjI4NSwzMjI4OCwzMjI5NSwzMjI5NiwzMjMwMCwzMjMwMSwzMjMwMywzMjMwNywzMjMxMCwzMjMxOSwzMjMyNCwzMjMyNSwzMjMyNywzMjMz'@; put 'NCwzMjMzNiwzMjMzOCwzMjM0NCwzMjM1MSwzMjM1MywzMjM1NCwzMjM1NywzMjM2MywzMjM2NiwzMjM2NywzMjM3MSwzMjM3NiwzMjM4MiwzMjM4NSwzMjM5MCwzMjM5MSwzMjM5NCwzMjM5NywzMjQwMSwzMjQwNSwzMjQwOCwzMjQxMCwzMjQxMywzMjQxNCwzMjU3MiwzMjU3MSwzMjU3Mywz'@; put 'MjU3NCwzMjU3NSwzMjU3OSwzMjU4MCwzMjU4MywzMjU5MSwzMjU5NCwzMjU5NSwzMjYwMywzMjYwNCwzMjYwNSwzMjYwOSwzMjYxMSwzMjYxMiwzMjYxMywzMjYxNCwzMjYyMSwzMjYyNSwzMjYzNywzMjYzOCwzMjYzOSwzMjY0MCwzMjY1MSwzMjY1MywzMjY1NSwzMjY1NiwzMjY1NywzMjY2'@; put 'MiwzMjY2MywzMjY2OCwzMjY3MywzMjY3NCwzMjY3OCwzMjY4MiwzMjY4NSwzMjY5MiwzMjcwMCwzMjcwMywzMjcwNCwzMjcwNywzMjcxMiwzMjcxOCwzMjcxOSwzMjczMSwzMjczNSwzMjczOSwzMjc0MSwzMjc0NCwzMjc0OCwzMjc1MCwzMjc1MSwzMjc1NCwzMjc2MiwzMjc2NSwzMjc2Niwz'@; put 'Mjc2NywzMjc3NSwzMjc3NiwzMjc3OCwzMjc4MSwzMjc4MiwzMjc4MywzMjc4NSwzMjc4NywzMjc4OCwzMjc5MCwzMjc5NywzMjc5OCwzMjc5OSwzMjgwMCwzMjgwNCwzMjgwNiwzMjgxMiwzMjgxNCwzMjgxNiwzMjgyMCwzMjgyMSwzMjgyMywzMjgyNSwzMjgyNiwzMjgyOCwzMjgzMCwzMjgz'@; put 'MiwzMjgzNiwzMjg2NCwzMjg2OCwzMjg3MCwzMjg3NywzMjg4MSwzMjg4NSwzMjg5NywzMjkwNCwzMjkxMCwzMjkyNCwzMjkyNiwzMjkzNCwzMjkzNSwzMjkzOSwzMjk1MiwzMjk1MywzMjk2OCwzMjk3MywzMjk3NSwzMjk3OCwzMjk4MCwzMjk4MSwzMjk4MywzMjk4NCwzMjk5MiwzMzAwNSwz'@; put 'MzAwNiwzMzAwOCwzMzAxMCwzMzAxMSwzMzAxNCwzMzAxNywzMzAxOCwzMzAyMiwzMzAyNywzMzAzNSwzMzA0NiwzMzA0NywzMzA0OCwzMzA1MiwzMzA1NCwzMzA1NiwzMzA2MCwzMzA2MywzMzA2OCwzMzA3MiwzMzA3NywzMzA4MiwzMzA4NCwzMzA5MywzMzA5NSwzMzA5OCwzMzEwMCwzMzEw'@; put 'NiwzMzExMSwzMzEyMCwzMzEyMSwzMzEyNywzMzEyOCwzMzEyOSwzMzEzMywzMzEzNSwzMzE0MywzMzE1MywzMzE2OCwzMzE1NiwzMzE1NywzMzE1OCwzMzE2MywzMzE2NiwzMzE3NCwzMzE3NiwzMzE3OSwzMzE4MiwzMzE4NiwzMzE5OCwzMzIwMiwzMzIwNCwzMzIxMSwzMzIyNywzMzIxOSwz'@; put 'MzIyMSwzMzIyNiwzMzIzMCwzMzIzMSwzMzIzNywzMzIzOSwzMzI0MywzMzI0NSwzMzI0NiwzMzI0OSwzMzI1MiwzMzI1OSwzMzI2MCwzMzI2NCwzMzI2NSwzMzI2NiwzMzI2OSwzMzI3MCwzMzI3MiwzMzI3MywzMzI3NywzMzI3OSwzMzI4MCwzMzI4MywzMzI5NSwzMzI5OSwzMzMwMCwzMzMw'@; put 'NSwzMzMwNiwzMzMwOSwzMzMxMywzMzMxNCwzMzMyMCwzMzMzMCwzMzMzMiwzMzMzOCwzMzM0NywzMzM0OCwzMzM0OSwzMzM1MCwzMzM1NSwzMzM1OCwzMzM1OSwzMzM2MSwzMzM2NiwzMzM3MiwzMzM3NiwzMzM3OSwzMzM4MywzMzM4OSwzMzM5NiwzMzQwMywzMzQwNSwzMzQwNywzMzQwOCwz'@; put 'MzQwOSwzMzQxMSwzMzQxMiwzMzQxNSwzMzQxNywzMzQxOCwzMzQyMiwzMzQyNSwzMzQyOCwzMzQzMCwzMzQzMiwzMzQzNCwzMzQzNSwzMzQ0MCwzMzQ0MSwzMzQ0MywzMzQ0NCwzMzQ0NywzMzQ0OCwzMzQ0OSwzMzQ1MCwzMzQ1NCwzMzQ1NiwzMzQ1OCwzMzQ2MCwzMzQ2MywzMzQ2NiwzMzQ2'@; put 'OCwzMzQ3MCwzMzQ3MSwzMzQ3OCwzMzQ4OCwzMzQ5MywzMzQ5OCwzMzUwNCwzMzUwNiwzMzUwOCwzMzUxMiwzMzUxNCwzMzUxNywzMzUxOSwzMzUyNiwzMzUyNywzMzUzMywzMzUzNCwzMzUzNiwzMzUzNywzMzU0MywzMzU0NCwzMzU0NiwzMzU0NywzMzYyMCwzMzU2MywzMzU2NSwzMzU2Niwz'@; put 'MzU2NywzMzU2OSwzMzU3MCwzMzU4MCwzMzU4MSwzMzU4MiwzMzU4NCwzMzU4NywzMzU5MSwzMzU5NCwzMzU5NiwzMzU5NywzMzYwMiwzMzYwMywzMzYwNCwzMzYwNywzMzYxMywzMzYxNCwzMzYxNywzMzYyMSwzMzYyMiwzMzYyMywzMzY0OCwzMzY1NiwzMzY2MSwzMzY2MywzMzY2NCwzMzY2'@; put 'NiwzMzY2OCwzMzY3MCwzMzY3NywzMzY4MiwzMzY4NCwzMzY4NSwzMzY4OCwzMzY4OSwzMzY5MSwzMzY5MiwzMzY5MywzMzcwMiwzMzcwMywzMzcwNSwzMzcwOCwzMzcyNiwzMzcyNywzMzcyOCwzMzczNSwzMzczNywzMzc0MywzMzc0NCwzMzc0NSwzMzc0OCwzMzc1NywzMzYxOSwzMzc2OCwz'@; put 'Mzc3MCwzMzc4MiwzMzc4NCwzMzc4NSwzMzc4OCwzMzc5MywzMzc5OCwzMzgwMiwzMzgwNywzMzgwOSwzMzgxMywzMzgxNywzMzcwOSwzMzgzOSwzMzg0OSwzMzg2MSwzMzg2MywzMzg2NCwzMzg2NiwzMzg2OSwzMzg3MSwzMzg3MywzMzg3NCwzMzg3OCwzMzg4MCwzMzg4MSwzMzg4MiwzMzg4'@; put 'NCwzMzg4OCwzMzg5MiwzMzg5MywzMzg5NSwzMzg5OCwzMzkwNCwzMzkwNywzMzkwOCwzMzkxMCwzMzkxMiwzMzkxNiwzMzkxNywzMzkyMSwzMzkyNSwzMzkzOCwzMzkzOSwzMzk0MSwzMzk1MCwzMzk1OCwzMzk2MCwzMzk2MSwzMzk2MiwzMzk2NywzMzk2OSwzMzk3MiwzMzk3OCwzMzk4MSwz'@; put 'Mzk4MiwzMzk4NCwzMzk4NiwzMzk5MSwzMzk5MiwzMzk5NiwzMzk5OSwzNDAwMywzNDAxMiwzNDAyMywzNDAyNiwzNDAzMSwzNDAzMiwzNDAzMywzNDAzNCwzNDAzOSwzNDA5OCwzNDA0MiwzNDA0MywzNDA0NSwzNDA1MCwzNDA1MSwzNDA1NSwzNDA2MCwzNDA2MiwzNDA2NCwzNDA3NiwzNDA3'@; put 'OCwzNDA4MiwzNDA4MywzNDA4NCwzNDA4NSwzNDA4NywzNDA5MCwzNDA5MSwzNDA5NSwzNDA5OSwzNDEwMCwzNDEwMiwzNDExMSwzNDExOCwzNDEyNywzNDEyOCwzNDEyOSwzNDEzMCwzNDEzMSwzNDEzNCwzNDEzNywzNDE0MCwzNDE0MSwzNDE0MiwzNDE0MywzNDE0NCwzNDE0NSwzNDE0Niwz'@; put 'NDE0OCwzNDE1NSwzNDE1OSwzNDE2OSwzNDE3MCwzNDE3MSwzNDE3MywzNDE3NSwzNDE3NywzNDE4MSwzNDE4MiwzNDE4NSwzNDE4NywzNDE4OCwzNDE5MSwzNDE5NSwzNDIwMCwzNDIwNSwzNDIwNywzNDIwOCwzNDIxMCwzNDIxMywzNDIxNSwzNDIyOCwzNDIzMCwzNDIzMSwzNDIzMiwzNDIz'@; put 'NiwzNDIzNywzNDIzOCwzNDIzOSwzNDI0MiwzNDI0NywzNDI1MCwzNDI1MSwzNDI1NCwzNDIyMSwzNDI2NCwzNDI2NiwzNDI3MSwzNDI3MiwzNDI3OCwzNDI4MCwzNDI4NSwzNDI5MSwzNDI5NCwzNDMwMCwzNDMwMywzNDMwNCwzNDMwOCwzNDMwOSwzNDMxNywzNDMxOCwzNDMyMCwzNDMyMSwz'@; put 'NDMyMiwzNDMyOCwzNDMyOSwzNDMzMSwzNDMzNCwzNDMzNywzNDM0MywzNDM0NSwzNDM1OCwzNDM2MCwzNDM2MiwzNDM2NCwzNDM2NSwzNDM2OCwzNDM3MCwzNDM3NCwzNDM4NiwzNDM4NywzNDM5MCwzNDM5MSwzNDM5MiwzNDM5MywzNDM5NywzNDQwMCwzNDQwMSwzNDQwMiwzNDQwMywzNDQw'@; put 'NCwzNDQwOSwzNDQxMiwzNDQxNSwzNDQyMSwzNDQyMiwzNDQyMywzNDQyNiwzNDQ0NSwzNDQ0OSwzNDQ1NCwzNDQ1NiwzNDQ1OCwzNDQ2MCwzNDQ2NSwzNDQ3MCwzNDQ3MSwzNDQ3MiwzNDQ3NywzNDQ4MSwzNDQ4MywzNDQ4NCwzNDQ4NSwzNDQ4NywzNDQ4OCwzNDQ4OSwzNDQ5NSwzNDQ5Niwz'@; put 'NDQ5NywzNDQ5OSwzNDUwMSwzNDUxMywzNDUxNCwzNDUxNywzNDUxOSwzNDUyMiwzNDUyNCwzNDUyOCwzNDUzMSwzNDUzMywzNDUzNSwzNDQ0MCwzNDU1NCwzNDU1NiwzNDU1NywzNDU2NCwzNDU2NSwzNDU2NywzNDU3MSwzNDU3NCwzNDU3NSwzNDU3NiwzNDU3OSwzNDU4MCwzNDU4NSwzNDU5'@; put 'MCwzNDU5MSwzNDU5MywzNDU5NSwzNDYwMCwzNDYwNiwzNDYwNywzNDYwOSwzNDYxMCwzNDYxNywzNDYxOCwzNDYyMCwzNDYyMSwzNDYyMiwzNDYyNCwzNDYyNywzNDYyOSwzNDYzNywzNDY0OCwzNDY1MywzNDY1NywzNDY2MCwzNDY2MSwzNDY3MSwzNDY3MywzNDY3NCwzNDY4MywzNDY5MSwz'@; put 'NDY5MiwzNDY5MywzNDY5NCwzNDY5NSwzNDY5NiwzNDY5NywzNDY5OSwzNDcwMCwzNDcwNCwzNDcwNywzNDcwOSwzNDcxMSwzNDcxMiwzNDcxMywzNDcxOCwzNDcyMCwzNDcyMywzNDcyNywzNDczMiwzNDczMywzNDczNCwzNDczNywzNDc0MSwzNDc1MCwzNDc1MSwzNDc1MywzNDc2MCwzNDc2'@; put 'MSwzNDc2MiwzNDc2NiwzNDc3MywzNDc3NCwzNDc3NywzNDc3OCwzNDc4MCwzNDc4MywzNDc4NiwzNDc4NywzNDc4OCwzNDc5NCwzNDc5NSwzNDc5NywzNDgwMSwzNDgwMywzNDgwOCwzNDgxMCwzNDgxNSwzNDgxNywzNDgxOSwzNDgyMiwzNDgyNSwzNDgyNiwzNDgyNywzNDgzMiwzNDg0MSwz'@; put 'NDgzNCwzNDgzNSwzNDgzNiwzNDg0MCwzNDg0MiwzNDg0MywzNDg0NCwzNDg0NiwzNDg0NywzNDg1NiwzNDg2MSwzNDg2MiwzNDg2NCwzNDg2NiwzNDg2OSwzNDg3NCwzNDg3NiwzNDg4MSwzNDg4MywzNDg4NSwzNDg4OCwzNDg4OSwzNDg5MCwzNDg5MSwzNDg5NCwzNDg5NywzNDkwMSwzNDkw'@; put 'MiwzNDkwNCwzNDkwNiwzNDkwOCwzNDkxMSwzNDkxMiwzNDkxNiwzNDkyMSwzNDkyOSwzNDkzNywzNDkzOSwzNDk0NCwzNDk2OCwzNDk3MCwzNDk3MSwzNDk3MiwzNDk3NSwzNDk3NiwzNDk4NCwzNDk4NiwzNTAwMiwzNTAwNSwzNTAwNiwzNTAwOCwzNTAxOCwzNTAxOSwzNTAyMCwzNTAyMSwz'@; put 'NTAyMiwzNTAyNSwzNTAyNiwzNTAyNywzNTAzNSwzNTAzOCwzNTA0NywzNTA1NSwzNTA1NiwzNTA1NywzNTA2MSwzNTA2MywzNTA3MywzNTA3OCwzNTA4NSwzNTA4NiwzNTA4NywzNTA5MywzNTA5NCwzNTA5NiwzNTA5NywzNTA5OCwzNTEwMCwzNTEwNCwzNTExMCwzNTExMSwzNTExMiwzNTEy'@; put 'MCwzNTEyMSwzNTEyMiwzNTEyNSwzNTEyOSwzNTEzMCwzNTEzNCwzNTEzNiwzNTEzOCwzNTE0MSwzNTE0MiwzNTE0NSwzNTE1MSwzNTE1NCwzNTE1OSwzNTE2MiwzNTE2MywzNTE2NCwzNTE2OSwzNTE3MCwzNTE3MSwzNTE3OSwzNTE4MiwzNTE4NCwzNTE4NywzNTE4OSwzNTE5NCwzNTE5NSwz'@; put 'NTE5NiwzNTE5NywzNTIwOSwzNTIxMywzNTIxNiwzNTIyMCwzNTIyMSwzNTIyNywzNTIyOCwzNTIzMSwzNTIzMiwzNTIzNywzNTI0OCwzNTI1MiwzNTI1MywzNTI1NCwzNTI1NSwzNTI2MCwzNTI4NCwzNTI4NSwzNTI4NiwzNTI4NywzNTI4OCwzNTMwMSwzNTMwNSwzNTMwNywzNTMwOSwzNTMx'@; put 'MywzNTMxNSwzNTMxOCwzNTMyMSwzNTMyNSwzNTMyNywzNTMzMiwzNTMzMywzNTMzNSwzNTM0MywzNTM0NSwzNTM0NiwzNTM0OCwzNTM0OSwzNTM1OCwzNTM2MCwzNTM2MiwzNTM2NCwzNTM2NiwzNTM3MSwzNTM3MiwzNTM3NSwzNTM4MSwzNTM4MywzNTM4OSwzNTM5MCwzNTM5MiwzNTM5NSwz'@; put 'NTM5NywzNTM5OSwzNTQwMSwzNTQwNSwzNTQwNiwzNTQxMSwzNTQxNCwzNTQxNSwzNTQxNiwzNTQyMCwzNTQyMSwzNTQyNSwzNTQyOSwzNTQzMSwzNTQ0NSwzNTQ0NiwzNTQ0NywzNTQ0OSwzNTQ1MCwzNTQ1MSwzNTQ1NCwzNTQ1NSwzNTQ1NiwzNTQ1OSwzNTQ2MiwzNTQ2NywzNTQ3MSwzNTQ3'@; put 'MiwzNTQ3NCwzNTQ3OCwzNTQ3OSwzNTQ4MSwzNTQ4NywzNTQ5NSwzNTQ5NywzNTUwMiwzNTUwMywzNTUwNywzNTUxMCwzNTUxMSwzNTUxNSwzNTUxOCwzNTUyMywzNTUyNiwzNTUyOCwzNTUyOSwzNTUzMCwzNTUzNywzNTUzOSwzNTU0MCwzNTU0MSwzNTU0MywzNTU0OSwzNTU1MSwzNTU2NCwz'@; put 'NTU2OCwzNTU3MiwzNTU3MywzNTU3NCwzNTU4MCwzNTU4MywzNTU4OSwzNTU5MCwzNTU5NSwzNTYwMSwzNTYxMiwzNTYxNCwzNTYxNSwzNTU5NCwzNTYyOSwzNTYzMiwzNTYzOSwzNTY0NCwzNTY1MCwzNTY1MSwzNTY1MiwzNTY1MywzNTY1NCwzNTY1NiwzNTY2NiwzNTY2NywzNTY2OCwzNTY3'@; put 'MywzNTY2MSwzNTY3OCwzNTY4MywzNTY5MywzNTcwMiwzNTcwNCwzNTcwNSwzNTcwOCwzNTcxMCwzNTcxMywzNTcxNiwzNTcxNywzNTcyMywzNTcyNSwzNTcyNywzNTczMiwzNTczMywzNTc0MCwzNTc0MiwzNTc0MywzNTg5NiwzNTg5NywzNTkwMSwzNTkwMiwzNTkwOSwzNTkxMSwzNTkxMywz'@; put 'NTkxNSwzNTkxOSwzNTkyMSwzNTkyMywzNTkyNCwzNTkyNywzNTkyOCwzNTkzMSwzNTkzMywzNTkyOSwzNTkzOSwzNTk0MCwzNTk0MiwzNTk0NCwzNTk0NSwzNTk0OSwzNTk1NSwzNTk1NywzNTk1OCwzNTk2MywzNTk2NiwzNTk3NCwzNTk3NSwzNTk3OSwzNTk4NCwzNTk4NiwzNTk4NywzNTk5'@; put 'MywzNTk5NSwzNTk5NiwzNjAwNCwzNjAyNSwzNjAyNiwzNjAzNywzNjAzOCwzNjA0MSwzNjA0MywzNjA0NywzNjA1NCwzNjA1MywzNjA1NywzNjA2MSwzNjA2NSwzNjA3MiwzNjA3NiwzNjA3OSwzNjA4MCwzNjA4MiwzNjA4NSwzNjA4NywzNjA4OCwzNjA5NCwzNjA5NSwzNjA5NywzNjA5OSwz'@; put 'NjEwNSwzNjExNCwzNjExOSwzNjEyMywzNjE5NywzNjIwMSwzNjIwNCwzNjIwNiwzNjIyMywzNjIyNiwzNjIyOCwzNjIzMiwzNjIzNywzNjI0MCwzNjI0MSwzNjI0NSwzNjI1NCwzNjI1NSwzNjI1NiwzNjI2MiwzNjI2NywzNjI2OCwzNjI3MSwzNjI3NCwzNjI3NywzNjI3OSwzNjI4MSwzNjI4'@; put 'MywzNjI4OCwzNjI5MywzNjI5NCwzNjI5NSwzNjI5NiwzNjI5OCwzNjMwMiwzNjMwNSwzNjMwOCwzNjMwOSwzNjMxMSwzNjMxMywzNjMyNCwzNjMyNSwzNjMyNywzNjMzMiwzNjMzNiwzNjI4NCwzNjMzNywzNjMzOCwzNjM0MCwzNjM0OSwzNjM1MywzNjM1NiwzNjM1NywzNjM1OCwzNjM2Mywz'@; put 'NjM2OSwzNjM3MiwzNjM3NCwzNjM4NCwzNjM4NSwzNjM4NiwzNjM4NywzNjM5MCwzNjM5MSwzNjQwMSwzNjQwMywzNjQwNiwzNjQwNywzNjQwOCwzNjQwOSwzNjQxMywzNjQxNiwzNjQxNywzNjQyNywzNjQyOSwzNjQzMCwzNjQzMSwzNjQzNiwzNjQ0MywzNjQ0NCwzNjQ0NSwzNjQ0NiwzNjQ0'@; put 'OSwzNjQ1MCwzNjQ1NywzNjQ2MCwzNjQ2MSwzNjQ2MywzNjQ2NCwzNjQ2NSwzNjQ3MywzNjQ3NCwzNjQ3NSwzNjQ4MiwzNjQ4MywzNjQ4OSwzNjQ5NiwzNjQ5OCwzNjUwMSwzNjUwNiwzNjUwNywzNjUwOSwzNjUxMCwzNjUxNCwzNjUxOSwzNjUyMSwzNjUyNSwzNjUyNiwzNjUzMSwzNjUzMywz'@; put 'NjUzOCwzNjUzOSwzNjU0NCwzNjU0NSwzNjU0NywzNjU0OCwzNjU1MSwzNjU1OSwzNjU2MSwzNjU2NCwzNjU3MiwzNjU4NCwzNjU5MCwzNjU5MiwzNjU5MywzNjU5OSwzNjYwMSwzNjYwMiwzNjU4OSwzNjYwOCwzNjYxMCwzNjYxNSwzNjYxNiwzNjYyMywzNjYyNCwzNjYzMCwzNjYzMSwzNjYz'@; put 'MiwzNjYzOCwzNjY0MCwzNjY0MSwzNjY0MywzNjY0NSwzNjY0NywzNjY0OCwzNjY1MiwzNjY1MywzNjY1NCwzNjY2MCwzNjY2MSwzNjY2MiwzNjY2MywzNjY2NiwzNjY3MiwzNjY3MywzNjY3NSwzNjY3OSwzNjY4NywzNjY4OSwzNjY5MCwzNjY5MSwzNjY5MiwzNjY5MywzNjY5NiwzNjcwMSwz'@; put 'NjcwMiwzNjcwOSwzNjc2NSwzNjc2OCwzNjc2OSwzNjc3MiwzNjc3MywzNjc3NCwzNjc4OSwzNjc5MCwzNjc5MiwzNjc5OCwzNjgwMCwzNjgwMSwzNjgwNiwzNjgxMCwzNjgxMSwzNjgxMywzNjgxNiwzNjgxOCwzNjgxOSwzNjgyMSwzNjgzMiwzNjgzNSwzNjgzNiwzNjg0MCwzNjg0NiwzNjg0'@; put 'OSwzNjg1MywzNjg1NCwzNjg1OSwzNjg2MiwzNjg2NiwzNjg2OCwzNjg3MiwzNjg3NiwzNjg4OCwzNjg5MSwzNjkwNCwzNjkwNSwzNjkxMSwzNjkwNiwzNjkwOCwzNjkwOSwzNjkxNSwzNjkxNiwzNjkxOSwzNjkyNywzNjkzMSwzNjkzMiwzNjk0MCwzNjk1NSwzNjk1NywzNjk2MiwzNjk2Niwz'@; put 'Njk2NywzNjk3MiwzNjk3NiwzNjk4MCwzNjk4NSwzNjk5NywzN2UzLDM3MDAzLDM3MDA0LDM3MDA2LDM3MDA4LDM3MDEzLDM3MDE1LDM3MDE2LDM3MDE3LDM3MDE5LDM3MDI0LDM3MDI1LDM3MDI2LDM3MDI5LDM3MDQwLDM3MDQyLDM3MDQzLDM3MDQ0LDM3MDQ2LDM3MDUzLDM3MDY4LDM3MDU0'@; put 'LDM3MDU5LDM3MDYwLDM3MDYxLDM3MDYzLDM3MDY0LDM3MDc3LDM3MDc5LDM3MDgwLDM3MDgxLDM3MDg0LDM3MDg1LDM3MDg3LDM3MDkzLDM3MDc0LDM3MTEwLDM3MDk5LDM3MTAzLDM3MTA0LDM3MTA4LDM3MTE4LDM3MTE5LDM3MTIwLDM3MTI0LDM3MTI1LDM3MTI2LDM3MTI4LDM3MTMzLDM3'@; put 'MTM2LDM3MTQwLDM3MTQyLDM3MTQzLDM3MTQ0LDM3MTQ2LDM3MTQ4LDM3MTUwLDM3MTUyLDM3MTU3LDM3MTU0LDM3MTU1LDM3MTU5LDM3MTYxLDM3MTY2LDM3MTY3LDM3MTY5LDM3MTcyLDM3MTc0LDM3MTc1LDM3MTc3LDM3MTc4LDM3MTgwLDM3MTgxLDM3MTg3LDM3MTkxLDM3MTkyLDM3MTk5'@; put 'LDM3MjAzLDM3MjA3LDM3MjA5LDM3MjEwLDM3MjExLDM3MjE3LDM3MjIwLDM3MjIzLDM3MjI5LDM3MjM2LDM3MjQxLDM3MjQyLDM3MjQzLDM3MjQ5LDM3MjUxLDM3MjUzLDM3MjU0LDM3MjU4LDM3MjYyLDM3MjY1LDM3MjY3LDM3MjY4LDM3MjY5LDM3MjcyLDM3Mjc4LDM3MjgxLDM3Mjg2LDM3'@; put 'Mjg4LDM3MjkyLDM3MjkzLDM3Mjk0LDM3Mjk2LDM3Mjk3LDM3Mjk4LDM3Mjk5LDM3MzAyLDM3MzA3LDM3MzA4LDM3MzA5LDM3MzExLDM3MzE0LDM3MzE1LDM3MzE3LDM3MzMxLDM3MzMyLDM3MzM1LDM3MzM3LDM3MzM4LDM3MzQyLDM3MzQ4LDM3MzQ5LDM3MzUzLDM3MzU0LDM3MzU2LDM3MzU3'@; put 'LDM3MzU4LDM3MzU5LDM3MzYwLDM3MzYxLDM3MzY3LDM3MzY5LDM3MzcxLDM3MzczLDM3Mzc2LDM3Mzc3LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg1LDM3Mzg2LDM3Mzg4LDM3MzkyLDM3Mzk0LDM3Mzk1LDM3Mzk4LDM3NDAwLDM3NDA0LDM3NDA1LDM3NDExLDM3NDEyLDM3NDEzLDM3'@; put 'NDE0LDM3NDE2LDM3NDIyLDM3NDIzLDM3NDI0LDM3NDI3LDM3NDI5LDM3NDMwLDM3NDMyLDM3NDMzLDM3NDM0LDM3NDM2LDM3NDM4LDM3NDQwLDM3NDQyLDM3NDQzLDM3NDQ2LDM3NDQ3LDM3NDUwLDM3NDUzLDM3NDU0LDM3NDU1LDM3NDU3LDM3NDY0LDM3NDY1LDM3NDY4LDM3NDY5LDM3NDcy'@; put 'LDM3NDczLDM3NDc3LDM3NDc5LDM3NDgwLDM3NDgxLDM3NDg2LDM3NDg3LDM3NDg4LDM3NDkzLDM3NDk0LDM3NDk1LDM3NDk2LDM3NDk3LDM3NDk5LDM3NTAwLDM3NTAxLDM3NTAzLDM3NTEyLDM3NTEzLDM3NTE0LDM3NTE3LDM3NTE4LDM3NTIyLDM3NTI3LDM3NTI5LDM3NTM1LDM3NTM2LDM3'@; put 'NTQwLDM3NTQxLDM3NTQzLDM3NTQ0LDM3NTQ3LDM3NTUxLDM3NTU0LDM3NTU4LDM3NTYwLDM3NTYyLDM3NTYzLDM3NTY0LDM3NTY1LDM3NTY3LDM3NTY4LDM3NTY5LDM3NTcwLDM3NTcxLDM3NTczLDM3NTc0LDM3NTc1LDM3NTc2LDM3NTc5LDM3NTgwLDM3NTgxLDM3NTgyLDM3NTg0LDM3NTg3'@; put 'LDM3NTg5LDM3NTkxLDM3NTkyLDM3NTkzLDM3NTk2LDM3NTk3LDM3NTk5LDM3NjAwLDM3NjAxLDM3NjAzLDM3NjA1LDM3NjA3LDM3NjA4LDM3NjEyLDM3NjE0LDM3NjE2LDM3NjI1LDM3NjI3LDM3NjMxLDM3NjMyLDM3NjM0LDM3NjQwLDM3NjQ1LDM3NjQ5LDM3NjUyLDM3NjUzLDM3NjYwLDM3'@; put 'NjYxLDM3NjYyLDM3NjYzLDM3NjY1LDM3NjY4LDM3NjY5LDM3NjcxLDM3NjczLDM3Njc0LDM3NjgzLDM3Njg0LDM3Njg2LDM3Njg3LDM3NzAzLDM3NzA0LDM3NzA1LDM3NzEyLDM3NzEzLDM3NzE0LDM3NzE3LDM3NzE5LDM3NzIwLDM3NzIyLDM3NzI2LDM3NzMyLDM3NzMzLDM3NzM1LDM3NzM3'@; put 'LDM3NzM4LDM3NzQxLDM3NzQzLDM3NzQ0LDM3NzQ1LDM3NzQ3LDM3NzQ4LDM3NzUwLDM3NzU0LDM3NzU3LDM3NzU5LDM3NzYwLDM3NzYxLDM3NzYyLDM3NzY4LDM3NzcwLDM3NzcxLDM3NzczLDM3Nzc1LDM3Nzc4LDM3NzgxLDM3Nzg0LDM3Nzg3LDM3NzkwLDM3NzkzLDM3Nzk1LDM3Nzk2LDM3'@; put 'Nzk4LDM3ODAwLDM3ODAzLDM3ODEyLDM3ODEzLDM3ODE0LDM3ODE4LDM3ODAxLDM3ODI1LDM3ODI4LDM3ODI5LDM3ODMwLDM3ODMxLDM3ODMzLDM3ODM0LDM3ODM1LDM3ODM2LDM3ODM3LDM3ODQzLDM3ODQ5LDM3ODUyLDM3ODU0LDM3ODU1LDM3ODU4LDM3ODYyLDM3ODYzLDM3ODgxLDM3ODc5'@; put 'LDM3ODgwLDM3ODgyLDM3ODgzLDM3ODg1LDM3ODg5LDM3ODkwLDM3ODkyLDM3ODk2LDM3ODk3LDM3OTAxLDM3OTAyLDM3OTAzLDM3OTA5LDM3OTEwLDM3OTExLDM3OTE5LDM3OTM0LDM3OTM1LDM3OTM3LDM3OTM4LDM3OTM5LDM3OTQwLDM3OTQ3LDM3OTUxLDM3OTQ5LDM3OTU1LDM3OTU3LDM3'@; put 'OTYwLDM3OTYyLDM3OTY0LDM3OTczLDM3OTc3LDM3OTgwLDM3OTgzLDM3OTg1LDM3OTg3LDM3OTkyLDM3OTk1LDM3OTk3LDM3OTk4LDM3OTk5LDM4MDAxLDM4MDAyLDM4MDIwLDM4MDE5LDM4MjY0LDM4MjY1LDM4MjcwLDM4Mjc2LDM4MjgwLDM4Mjg0LDM4Mjg1LDM4Mjg2LDM4MzAxLDM4MzAy'@; put 'LDM4MzAzLDM4MzA1LDM4MzEwLDM4MzEzLDM4MzE1LDM4MzE2LDM4MzI0LDM4MzI2LDM4MzMwLDM4MzMzLDM4MzM1LDM4MzQyLDM4MzQ0LDM4MzQ1LDM4MzQ3LDM4MzUyLDM4MzUzLDM4MzU0LDM4MzU1LDM4MzYxLDM4MzYyLDM4MzY1LDM4MzY2LDM4MzY3LDM4MzY4LDM4MzcyLDM4Mzc0LDM4'@; put 'NDI5LDM4NDMwLDM4NDM0LDM4NDM2LDM4NDM3LDM4NDM4LDM4NDQ0LDM4NDQ5LDM4NDUxLDM4NDU1LDM4NDU2LDM4NDU3LDM4NDU4LDM4NDYwLDM4NDYxLDM4NDY1LDM4NDgyLDM4NDg0LDM4NDg2LDM4NDg3LDM4NDg4LDM4NDk3LDM4NTEwLDM4NTE2LDM4NTIzLDM4NTI0LDM4NTI2LDM4NTI3'@; put 'LDM4NTI5LDM4NTMwLDM4NTMxLDM4NTMyLDM4NTM3LDM4NTQ1LDM4NTUwLDM4NTU0LDM4NTU3LDM4NTU5LDM4NTY0LDM4NTY1LDM4NTY2LDM4NTY5LDM4NTc0LDM4NTc1LDM4NTc5LDM4NTg2LDM4NjAyLDM4NjEwLDIzOTg2LDM4NjE2LDM4NjE4LDM4NjIxLDM4NjIyLDM4NjIzLDM4NjMzLDM4'@; put 'NjM5LDM4NjQxLDM4NjUwLDM4NjU4LDM4NjU5LDM4NjYxLDM4NjY1LDM4NjgyLDM4NjgzLDM4Njg1LDM4Njg5LDM4NjkwLDM4NjkxLDM4Njk2LDM4NzA1LDM4NzA3LDM4NzIxLDM4NzIzLDM4NzMwLDM4NzM0LDM4NzM1LDM4NzQxLDM4NzQzLDM4NzQ0LDM4NzQ2LDM4NzQ3LDM4NzU1LDM4NzU5'@; put 'LDM4NzYyLDM4NzY2LDM4NzcxLDM4Nzc0LDM4Nzc1LDM4Nzc2LDM4Nzc5LDM4NzgxLDM4NzgzLDM4Nzg0LDM4NzkzLDM4ODA1LDM4ODA2LDM4ODA3LDM4ODA5LDM4ODEwLDM4ODE0LDM4ODE1LDM4ODE4LDM4ODI4LDM4ODMwLDM4ODMzLDM4ODM0LDM4ODM3LDM4ODM4LDM4ODQwLDM4ODQxLDM4'@; put 'ODQyLDM4ODQ0LDM4ODQ2LDM4ODQ3LDM4ODQ5LDM4ODUyLDM4ODUzLDM4ODU1LDM4ODU3LDM4ODU4LDM4ODYwLDM4ODYxLDM4ODYyLDM4ODY0LDM4ODY1LDM4ODY4LDM4ODcxLDM4ODcyLDM4ODczLDM4ODc3LDM4ODc4LDM4ODgwLDM4ODc1LDM4ODgxLDM4ODg0LDM4ODk1LDM4ODk3LDM4OTAw'@; put 'LDM4OTAzLDM4OTA0LDM4OTA2LDM4OTE5LDM4OTIyLDM4OTM3LDM4OTI1LDM4OTI2LDM4OTMyLDM4OTM0LDM4OTQwLDM4OTQyLDM4OTQ0LDM4OTQ3LDM4OTUwLDM4OTU1LDM4OTU4LDM4OTU5LDM4OTYwLDM4OTYyLDM4OTYzLDM4OTY1LDM4OTQ5LDM4OTc0LDM4OTgwLDM4OTgzLDM4OTg2LDM4'@; put 'OTkzLDM4OTk0LDM4OTk1LDM4OTk4LDM4OTk5LDM5MDAxLDM5MDAyLDM5MDEwLDM5MDExLDM5MDEzLDM5MDE0LDM5MDE4LDM5MDIwLDM5MDgzLDM5MDg1LDM5MDg2LDM5MDg4LDM5MDkyLDM5MDk1LDM5MDk2LDM5MDk4LDM5MDk5LDM5MTAzLDM5MTA2LDM5MTA5LDM5MTEyLDM5MTE2LDM5MTM3'@; put 'LDM5MTM5LDM5MTQxLDM5MTQyLDM5MTQzLDM5MTQ2LDM5MTU1LDM5MTU4LDM5MTcwLDM5MTc1LDM5MTc2LDM5MTg1LDM5MTg5LDM5MTkwLDM5MTkxLDM5MTk0LDM5MTk1LDM5MTk2LDM5MTk5LDM5MjAyLDM5MjA2LDM5MjA3LDM5MjExLDM5MjE3LDM5MjE4LDM5MjE5LDM5MjIwLDM5MjIxLDM5'@; put 'MjI1LDM5MjI2LDM5MjI3LDM5MjI4LDM5MjMyLDM5MjMzLDM5MjM4LDM5MjM5LDM5MjQwLDM5MjQ1LDM5MjQ2LDM5MjUyLDM5MjU2LDM5MjU3LDM5MjU5LDM5MjYwLDM5MjYyLDM5MjYzLDM5MjY0LDM5MzIzLDM5MzI1LDM5MzI3LDM5MzM0LDM5MzQ0LDM5MzQ1LDM5MzQ2LDM5MzQ5LDM5MzUz'@; put 'LDM5MzU0LDM5MzU3LDM5MzU5LDM5MzYzLDM5MzY5LDM5Mzc5LDM5MzgwLDM5Mzg1LDM5Mzg2LDM5Mzg4LDM5MzkwLDM5Mzk5LDM5NDAyLDM5NDAzLDM5NDA0LDM5NDA4LDM5NDEyLDM5NDEzLDM5NDE3LDM5NDIxLDM5NDIyLDM5NDI2LDM5NDI3LDM5NDI4LDM5NDM1LDM5NDM2LDM5NDQwLDM5'@; put 'NDQxLDM5NDQ2LDM5NDU0LDM5NDU2LDM5NDU4LDM5NDU5LDM5NDYwLDM5NDYzLDM5NDY5LDM5NDcwLDM5NDc1LDM5NDc3LDM5NDc4LDM5NDgwLDM5NDk1LDM5NDg5LDM5NDkyLDM5NDk4LDM5NDk5LDM5NTAwLDM5NTAyLDM5NTA1LDM5NTA4LDM5NTEwLDM5NTE3LDM5NTk0LDM5NTk2LDM5NTk4'@; put 'LDM5NTk5LDM5NjAyLDM5NjA0LDM5NjA1LDM5NjA2LDM5NjA5LDM5NjExLDM5NjE0LDM5NjE1LDM5NjE3LDM5NjE5LDM5NjIyLDM5NjI0LDM5NjMwLDM5NjMyLDM5NjM0LDM5NjM3LDM5NjM4LDM5NjM5LDM5NjQzLDM5NjQ0LDM5NjQ4LDM5NjUyLDM5NjUzLDM5NjU1LDM5NjU3LDM5NjYwLDM5'@; put 'NjY2LDM5NjY3LDM5NjY5LDM5NjczLDM5Njc0LDM5Njc3LDM5Njc5LDM5NjgwLDM5NjgxLDM5NjgyLDM5NjgzLDM5Njg0LDM5Njg1LDM5Njg4LDM5Njg5LDM5NjkxLDM5NjkyLDM5NjkzLDM5Njk0LDM5Njk2LDM5Njk4LDM5NzAyLDM5NzA1LDM5NzA3LDM5NzA4LDM5NzEyLDM5NzE4LDM5NzIz'@; put 'LDM5NzI1LDM5NzMxLDM5NzMyLDM5NzMzLDM5NzM1LDM5NzM3LDM5NzM4LDM5NzQxLDM5NzUyLDM5NzU1LDM5NzU2LDM5NzY1LDM5NzY2LDM5NzY3LDM5NzcxLDM5Nzc0LDM5Nzc3LDM5Nzc5LDM5NzgxLDM5NzgyLDM5Nzg0LDM5Nzg2LDM5Nzg3LDM5Nzg4LDM5Nzg5LDM5NzkwLDM5Nzk1LDM5'@; put 'Nzk3LDM5Nzk5LDM5ODAwLDM5ODAxLDM5ODA3LDM5ODA4LDM5ODEyLDM5ODEzLDM5ODE0LDM5ODE1LDM5ODE3LDM5ODE4LDM5ODE5LDM5ODIxLDM5ODIzLDM5ODI0LDM5ODI4LDM5ODM0LDM5ODM3LDM5ODM4LDM5ODQ2LDM5ODQ3LDM5ODQ5LDM5ODUyLDM5ODU2LDM5ODU3LDM5ODU4LDM5ODYz'@; put 'LDM5ODY0LDM5ODY3LDM5ODY4LDM5ODcwLDM5ODcxLDM5ODczLDM5ODc5LDM5ODgwLDM5ODg2LDM5ODg4LDM5ODk1LDM5ODk2LDM5OTAxLDM5OTAzLDM5OTA5LDM5OTExLDM5OTE0LDM5OTE1LDM5OTE5LDM5OTIzLDM5OTI3LDM5OTI4LDM5OTI5LDM5OTMwLDM5OTMzLDM5OTM1LDM5OTM2LDM5'@; put 'OTM4LDM5OTQ3LDM5OTUxLDM5OTUzLDM5OTU4LDM5OTYwLDM5OTYxLDM5OTYyLDM5OTY0LDM5OTY2LDM5OTcwLDM5OTcxLDM5OTc0LDM5OTc1LDM5OTc2LDM5OTc3LDM5OTc4LDM5OTg1LDM5OTg5LDM5OTkwLDM5OTkxLDM5OTk3LDQwMDAxLDQwMDAzLDQwMDA0LDQwMDA1LDQwMDA5LDQwMDEw'@; put 'LDQwMDE0LDQwMDE1LDQwMDE2LDQwMDE5LDQwMDIwLDQwMDIyLDQwMDI0LDQwMDI3LDQwMDI5LDQwMDMwLDQwMDMxLDQwMDM1LDQwMDQxLDQwMDQyLDQwMDI4LDQwMDQzLDQwMDQwLDQwMDQ2LDQwMDQ4LDQwMDUwLDQwMDUzLDQwMDU1LDQwMDU5LDQwMTY2LDQwMTc4LDQwMTgzLDQwMTg1LDQw'@; put 'MjAzLDQwMTk0LDQwMjA5LDQwMjE1LDQwMjE2LDQwMjIwLDQwMjIxLDQwMjIyLDQwMjM5LDQwMjQwLDQwMjQyLDQwMjQzLDQwMjQ0LDQwMjUwLDQwMjUyLDQwMjYxLDQwMjUzLDQwMjU4LDQwMjU5LDQwMjYzLDQwMjY2LDQwMjc1LDQwMjc2LDQwMjg3LDQwMjkxLDQwMjkwLDQwMjkzLDQwMjk3'@; put 'LDQwMjk4LDQwMjk5LDQwMzA0LDQwMzEwLDQwMzExLDQwMzE1LDQwMzE2LDQwMzE4LDQwMzIzLDQwMzI0LDQwMzI2LDQwMzMwLDQwMzMzLDQwMzM0LDQwMzM4LDQwMzM5LDQwMzQxLDQwMzQyLDQwMzQzLDQwMzQ0LDQwMzUzLDQwMzYyLDQwMzY0LDQwMzY2LDQwMzY5LDQwMzczLDQwMzc3LDQw'@; put 'MzgwLDQwMzgzLDQwMzg3LDQwMzkxLDQwMzkzLDQwMzk0LDQwNDA0LDQwNDA1LDQwNDA2LDQwNDA3LDQwNDEwLDQwNDE0LDQwNDE1LDQwNDE2LDQwNDIxLDQwNDIzLDQwNDI1LDQwNDI3LDQwNDMwLDQwNDMyLDQwNDM1LDQwNDM2LDQwNDQ2LDQwNDU4LDQwNDUwLDQwNDU1LDQwNDYyLDQwNDY0'@; put 'LDQwNDY1LDQwNDY2LDQwNDY5LDQwNDcwLDQwNDczLDQwNDc2LDQwNDc3LDQwNTcwLDQwNTcxLDQwNTcyLDQwNTc2LDQwNTc4LDQwNTc5LDQwNTgwLDQwNTgxLDQwNTgzLDQwNTkwLDQwNTkxLDQwNTk4LDQwNjAwLDQwNjAzLDQwNjA2LDQwNjEyLDQwNjE2LDQwNjIwLDQwNjIyLDQwNjIzLDQw'@; put 'NjI0LDQwNjI3LDQwNjI4LDQwNjI5LDQwNjQ2LDQwNjQ4LDQwNjUxLDQwNjYxLDQwNjcxLDQwNjc2LDQwNjc5LDQwNjg0LDQwNjg1LDQwNjg2LDQwNjg4LDQwNjg5LDQwNjkwLDQwNjkzLDQwNjk2LDQwNzAzLDQwNzA2LDQwNzA3LDQwNzEzLDQwNzE5LDQwNzIwLDQwNzIxLDQwNzIyLDQwNzI0'@; put 'LDQwNzI2LDQwNzI3LDQwNzI5LDQwNzMwLDQwNzMxLDQwNzM1LDQwNzM4LDQwNzQyLDQwNzQ2LDQwNzQ3LDQwNzUxLDQwNzUzLDQwNzU0LDQwNzU2LDQwNzU5LDQwNzYxLDQwNzYyLDQwNzY0LDQwNzY1LDQwNzY3LDQwNzY5LDQwNzcxLDQwNzcyLDQwNzczLDQwNzc0LDQwNzc1LDQwNzg3LDQw'@; put 'Nzg5LDQwNzkwLDQwNzkxLDQwNzkyLDQwNzk0LDQwNzk3LDQwNzk4LDQwODA4LDQwODA5LDQwODEzLDQwODE0LDQwODE1LDQwODE2LDQwODE3LDQwODE5LDQwODIxLDQwODI2LDQwODI5LDQwODQ3LDQwODQ4LDQwODQ5LDQwODUwLDQwODUyLDQwODU0LDQwODU1LDQwODYyLDQwODY1LDQwODY2'@; put 'LDQwODY3LDQwODY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0saWJtODY2OlsxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2'@; put 'MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4Nyw5NjE3LDk2MTgsOTYxOSw5NDc0LDk1MDgsOTU2'@; put 'OSw5NTcwLDk1NTgsOTU1Nyw5NTcxLDk1NTMsOTU1OSw5NTY1LDk1NjQsOTU2Myw5NDg4LDk0OTIsOTUyNCw5NTE2LDk1MDAsOTQ3Miw5NTMyLDk1NjYsOTU2Nyw5NTYyLDk1NTYsOTU3Nyw5NTc0LDk1NjgsOTU1Miw5NTgwLDk1NzUsOTU3Niw5NTcyLDk1NzMsOTU2MSw5NTYwLDk1NTQsOTU1'@; put 'NSw5NTc5LDk1NzgsOTQ5Niw5NDg0LDk2MDgsOTYwNCw5NjEyLDk2MTYsOTYwMCwxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDEwMjUsMTEwNSwxMDI4LDExMDgsMTAzMSwxMTExLDEwMzgsMTEx'@; put 'OCwxNzYsODcyOSwxODMsODczMCw4NDcwLDE2NCw5NjMyLDE2MF0sImlzby04ODU5LTIiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUs'@; put 'MTU2LDE1NywxNTgsMTU5LDE2MCwyNjAsNzI4LDMyMSwxNjQsMzE3LDM0NiwxNjcsMTY4LDM1MiwzNTAsMzU2LDM3NywxNzMsMzgxLDM3OSwxNzYsMjYxLDczMSwzMjIsMTgwLDMxOCwzNDcsNzExLDE4NCwzNTMsMzUxLDM1NywzNzgsNzMzLDM4MiwzODAsMzQwLDE5MywxOTQsMjU4LDE5Niwz'@; put 'MTMsMjYyLDE5OSwyNjgsMjAxLDI4MCwyMDMsMjgyLDIwNSwyMDYsMjcwLDI3MiwzMjMsMzI3LDIxMSwyMTIsMzM2LDIxNCwyMTUsMzQ0LDM2NiwyMTgsMzY4LDIyMCwyMjEsMzU0LDIyMywzNDEsMjI1LDIyNiwyNTksMjI4LDMxNCwyNjMsMjMxLDI2OSwyMzMsMjgxLDIzNSwyODMsMjM3LDIz'@; put 'OCwyNzEsMjczLDMyNCwzMjgsMjQzLDI0NCwzMzcsMjQ2LDI0NywzNDUsMzY3LDI1MCwzNjksMjUyLDI1MywzNTUsNzI5XSwiaXNvLTg4NTktMyI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcs'@; put 'MTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI5NCw3MjgsMTYzLDE2NCxudWxsLDI5MiwxNjcsMTY4LDMwNCwzNTAsMjg2LDMwOCwxNzMsbnVsbCwzNzksMTc2LDI5NSwxNzgsMTc5LDE4MCwxODEsMjkzLDE4MywxODQsMzA1LDM1MSwyODcsMzA5'@; put 'LDE4OSxudWxsLDM4MCwxOTIsMTkzLDE5NCxudWxsLDE5NiwyNjYsMjY0LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LG51bGwsMjA5LDIxMCwyMTEsMjEyLDI4OCwyMTQsMjE1LDI4NCwyMTcsMjE4LDIxOSwyMjAsMzY0LDM0OCwyMjMsMjI0LDIyNSwyMjYsbnVsbCwyMjgs'@; put 'MjY3LDI2NSwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSxudWxsLDI0MSwyNDIsMjQzLDI0NCwyODksMjQ2LDI0NywyODUsMjQ5LDI1MCwyNTEsMjUyLDM2NSwzNDksNzI5XSwiaXNvLTg4NTktNCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywx'@; put 'MzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI2MCwzMTIsMzQyLDE2NCwyOTYsMzE1LDE2NywxNjgsMzUyLDI3NCwyOTAsMzU4LDE3MywzODEsMTc1LDE3NiwyNjEsNzMxLDM0'@; put 'MywxODAsMjk3LDMxNiw3MTEsMTg0LDM1MywyNzUsMjkxLDM1OSwzMzAsMzgyLDMzMSwyNTYsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMzAyLDI2OCwyMDEsMjgwLDIwMywyNzgsMjA1LDIwNiwyOTgsMjcyLDMyNSwzMzIsMzEwLDIxMiwyMTMsMjE0LDIxNSwyMTYsMzcwLDIxOCwyMTksMjIw'@; put 'LDM2MCwzNjIsMjIzLDI1NywyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwzMDMsMjY5LDIzMywyODEsMjM1LDI3OSwyMzcsMjM4LDI5OSwyNzMsMzI2LDMzMywzMTEsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwzNzEsMjUwLDI1MSwyNTIsMzYxLDM2Myw3MjldLCJpc28tODg1OS01IjpbMTI4LDEyOSwx'@; put 'MzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEw'@; put 'MzMsMTAzNCwxMDM1LDEwMzYsMTczLDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2'@; put 'NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5'@; put 'OSwxMTAwLDExMDEsMTEwMiwxMTAzLDg0NzAsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTY3LDExMTgsMTExOV0sImlzby04ODU5LTYiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwx'@; put 'NDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCxudWxsLG51bGwsbnVsbCwxNjQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNTQ4LDE3MyxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE1NjMsbnVsbCxudWxsLG51bGwsMTU2NyxudWxsLDE1NjksMTU3MCwxNTcxLDE1NzIsMTU3MywxNTc0LDE1NzUsMTU3NiwxNTc3LDE1NzgsMTU3OSwxNTgwLDE1ODEsMTU4MiwxNTgzLDE1ODQsMTU4NSwxNTg2'@; put 'LDE1ODcsMTU4OCwxNTg5LDE1OTAsMTU5MSwxNTkyLDE1OTMsMTU5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTYwMCwxNjAxLDE2MDIsMTYwMywxNjA0LDE2MDUsMTYwNiwxNjA3LDE2MDgsMTYwOSwxNjEwLDE2MTEsMTYxMiwxNjEzLDE2MTQsMTYxNSwxNjE2LDE2MTcsMTYxOCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSwiaXNvLTg4NTktNyI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwx'@; put 'NTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDgyMTYsODIxNywxNjMsODM2NCw4MzY3LDE2NiwxNjcsMTY4LDE2OSw4OTAsMTcxLDE3MiwxNzMsbnVsbCw4MjEzLDE3NiwxNzcsMTc4LDE3OSw5MDAsOTAxLDkwMiwxODMsOTA0LDkwNSw5MDYsMTg3LDkwOCwxODks'@; put 'OTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSxudWxsLDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAs'@; put 'OTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsbnVsbF0sImlzby04ODU5LTgiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwx'@; put 'NDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCxudWxsLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMjE1LDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwx'@; put 'ODEsMTgyLDE4MywxODQsMTg1LDI0NywxODcsMTg4LDE4OSwxOTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDgyMTUsMTQ4OCwxNDg5LDE0OTAsMTQ5MSwxNDkyLDE0OTMsMTQ5NCwxNDk1LDE0OTYsMTQ5NywxNDk4LDE0OTksMTUwMCwxNTAxLDE1MDIsMTUwMywxNTA0LDE1MDUsMTUwNiwxNTA3LDE1MDgsMTUwOSwxNTEwLDE1MTEsMTUxMiwx'@; put 'NTEzLDE1MTQsbnVsbCxudWxsLDgyMDYsODIwNyxudWxsXSwiaXNvLTg4NTktMTAiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2'@; put 'LDE1NywxNTgsMTU5LDE2MCwyNjAsMjc0LDI5MCwyOTgsMjk2LDMxMCwxNjcsMzE1LDI3MiwzNTIsMzU4LDM4MSwxNzMsMzYyLDMzMCwxNzYsMjYxLDI3NSwyOTEsMjk5LDI5NywzMTEsMTgzLDMxNiwyNzMsMzUzLDM1OSwzODIsODIxMywzNjMsMzMxLDI1NiwxOTMsMTk0LDE5NSwxOTYsMTk3'@; put 'LDE5OCwzMDIsMjY4LDIwMSwyODAsMjAzLDI3OCwyMDUsMjA2LDIwNywyMDgsMzI1LDMzMiwyMTEsMjEyLDIxMywyMTQsMzYwLDIxNiwzNzAsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjU3LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDMwMywyNjksMjMzLDI4MSwyMzUsMjc5LDIzNywyMzgs'@; put 'MjM5LDI0MCwzMjYsMzMzLDI0MywyNDQsMjQ1LDI0NiwzNjEsMjQ4LDM3MSwyNTAsMjUxLDI1MiwyNTMsMjU0LDMxMl0sImlzby04ODU5LTEzIjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0Nywx'@; put 'NDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsODIyMSwxNjIsMTYzLDE2NCw4MjIyLDE2NiwxNjcsMjE2LDE2OSwzNDIsMTcxLDE3MiwxNzMsMTc0LDE5OCwxNzYsMTc3LDE3OCwxNzksODIyMCwxODEsMTgyLDE4MywyNDgsMTg1LDM0MywxODcsMTg4'@; put 'LDE4OSwxOTAsMjMwLDI2MCwzMDIsMjU2LDI2MiwxOTYsMTk3LDI4MCwyNzQsMjY4LDIwMSwzNzcsMjc4LDI5MCwzMTAsMjk4LDMxNSwzNTIsMzIzLDMyNSwyMTEsMzMyLDIxMywyMTQsMjE1LDM3MCwzMjEsMzQ2LDM2MiwyMjAsMzc5LDM4MSwyMjMsMjYxLDMwMywyNTcsMjYzLDIyOCwyMjks'@; put 'MjgxLDI3NSwyNjksMjMzLDM3OCwyNzksMjkxLDMxMSwyOTksMzE2LDM1MywzMjQsMzI2LDI0MywzMzMsMjQ1LDI0NiwyNDcsMzcxLDMyMiwzNDcsMzYzLDI1MiwzODAsMzgyLDgyMTddLCJpc28tODg1OS0xNCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgs'@; put 'MTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDc2ODIsNzY4MywxNjMsMjY2LDI2Nyw3NjkwLDE2Nyw3ODA4LDE2OSw3ODEwLDc2OTEsNzkyMiwxNzMsMTc0LDM3Niw3NzEwLDc3MTEs'@; put 'Mjg4LDI4OSw3NzQ0LDc3NDUsMTgyLDc3NjYsNzgwOSw3NzY3LDc4MTEsNzc3Niw3OTIzLDc4MTIsNzgxMyw3Nzc3LDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywzNzIsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsNzc4Niwy'@; put 'MTYsMjE3LDIxOCwyMTksMjIwLDIyMSwzNzQsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwzNzMsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsNzc4NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywzNzUsMjU1XSwiaXNv'@; put 'LTg4NTktMTUiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2Myw4MzY0LDE2NSwz'@; put 'NTIsMTY3LDM1MywxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDM4MSwxODEsMTgyLDE4MywzODIsMTg1LDE4NiwxODcsMzM4LDMzOSwzNzYsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIw'@; put 'NywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4'@; put 'LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NV0sImlzby04ODU5LTE2IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcs'@; put 'MTU4LDE1OSwxNjAsMjYwLDI2MSwzMjEsODM2NCw4MjIyLDM1MiwxNjcsMzUzLDE2OSw1MzYsMTcxLDM3NywxNzMsMzc4LDM3OSwxNzYsMTc3LDI2OCwzMjIsMzgxLDgyMjEsMTgyLDE4MywzODIsMjY5LDUzNywxODcsMzM4LDMzOSwzNzYsMzgwLDE5MiwxOTMsMTk0LDI1OCwxOTYsMjYyLDE5'@; put 'OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyNzIsMzIzLDIxMCwyMTEsMjEyLDMzNiwyMTQsMzQ2LDM2OCwyMTcsMjE4LDIxOSwyMjAsMjgwLDUzOCwyMjMsMjI0LDIyNSwyMjYsMjU5LDIyOCwyNjMsMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5'@; put 'LDI3MywzMjQsMjQyLDI0MywyNDQsMzM3LDI0NiwzNDcsMzY5LDI0OSwyNTAsMjUxLDI1MiwyODEsNTM5LDI1NV0sImtvaTgtciI6Wzk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4'@; put 'LDk2MTksODk5Miw5NjMyLDg3MjksODczMCw4Nzc2LDg4MDQsODgwNSwxNjAsODk5MywxNzYsMTc4LDE4MywyNDcsOTU1Miw5NTUzLDk1NTQsMTEwNSw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSwxMDI1'@; put 'LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCwxNjksMTEwMiwxMDcyLDEwNzMsMTA5NCwxMDc2LDEwNzcsMTA5MiwxMDc1LDEwOTMsMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDExMDMsMTA4OCwxMDg5LDEwOTAs'@; put 'MTA5MSwxMDc4LDEwNzQsMTEwMCwxMDk5LDEwNzksMTA5NiwxMTAxLDEwOTcsMTA5NSwxMDk4LDEwNzAsMTA0MCwxMDQxLDEwNjIsMTA0NCwxMDQ1LDEwNjAsMTA0MywxMDYxLDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDcxLDEwNTYsMTA1NywxMDU4LDEwNTks'@; put 'MTA0NiwxMDQyLDEwNjgsMTA2NywxMDQ3LDEwNjQsMTA2OSwxMDY1LDEwNjMsMTA2Nl0sImtvaTgtdSI6Wzk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksODk5Miw5NjMy'@; put 'LDg3MjksODczMCw4Nzc2LDg4MDQsODgwNSwxNjAsODk5MywxNzYsMTc4LDE4MywyNDcsOTU1Miw5NTUzLDk1NTQsMTEwNSwxMTA4LDk1NTYsMTExMCwxMTExLDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2MywxMTY5LDExMTgsOTU2Niw5NTY3LDk1NjgsOTU2OSwxMDI1LDEwMjgsOTU3MSwxMDMw'@; put 'LDEwMzEsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDExNjgsMTAzOCwxNjksMTEwMiwxMDcyLDEwNzMsMTA5NCwxMDc2LDEwNzcsMTA5MiwxMDc1LDEwOTMsMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDExMDMsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDc4LDEwNzQs'@; put 'MTEwMCwxMDk5LDEwNzksMTA5NiwxMTAxLDEwOTcsMTA5NSwxMDk4LDEwNzAsMTA0MCwxMDQxLDEwNjIsMTA0NCwxMDQ1LDEwNjAsMTA0MywxMDYxLDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDcxLDEwNTYsMTA1NywxMDU4LDEwNTksMTA0NiwxMDQyLDEwNjgs'@; put 'MTA2NywxMDQ3LDEwNjQsMTA2OSwxMDY1LDEwNjMsMTA2Nl0sbWFjaW50b3NoOlsxOTYsMTk3LDE5OSwyMDEsMjA5LDIxNCwyMjAsMjI1LDIyNCwyMjYsMjI4LDIyNywyMjksMjMxLDIzMywyMzIsMjM0LDIzNSwyMzcsMjM2LDIzOCwyMzksMjQxLDI0MywyNDIsMjQ0LDI0NiwyNDUsMjUwLDI0'@; put 'OSwyNTEsMjUyLDgyMjQsMTc2LDE2MiwxNjMsMTY3LDgyMjYsMTgyLDIyMywxNzQsMTY5LDg0ODIsMTgwLDE2OCw4ODAwLDE5OCwyMTYsODczNCwxNzcsODgwNCw4ODA1LDE2NSwxODEsODcwNiw4NzIxLDg3MTksOTYwLDg3NDcsMTcwLDE4Niw5MzcsMjMwLDI0OCwxOTEsMTYxLDE3Miw4NzMw'@; put 'LDQwMiw4Nzc2LDg3MTAsMTcxLDE4Nyw4MjMwLDE2MCwxOTIsMTk1LDIxMywzMzgsMzM5LDgyMTEsODIxMiw4MjIwLDgyMjEsODIxNiw4MjE3LDI0Nyw5Njc0LDI1NSwzNzYsODI2MCw4MzY0LDgyNDksODI1MCw2NDI1Nyw2NDI1OCw4MjI1LDE4Myw4MjE4LDgyMjIsODI0MCwxOTQsMjAyLDE5'@; put 'MywyMDMsMjAwLDIwNSwyMDYsMjA3LDIwNCwyMTEsMjEyLDYzNzQzLDIxMCwyMTgsMjE5LDIxNywzMDUsNzEwLDczMiwxNzUsNzI4LDcyOSw3MzAsMTg0LDczMyw3MzEsNzExXSwid2luZG93cy04NzQiOls4MzY0LDEyOSwxMzAsMTMxLDEzMiw4MjMwLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5'@; put 'LDE0MCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwzNTg1LDM1ODYsMzU4NywzNTg4LDM1ODksMzU5MCwzNTkxLDM1OTIsMzU5MywzNTk0LDM1OTUsMzU5NiwzNTk3LDM1OTgsMzU5'@; put 'OSwzNjAwLDM2MDEsMzYwMiwzNjAzLDM2MDQsMzYwNSwzNjA2LDM2MDcsMzYwOCwzNjA5LDM2MTAsMzYxMSwzNjEyLDM2MTMsMzYxNCwzNjE1LDM2MTYsMzYxNywzNjE4LDM2MTksMzYyMCwzNjIxLDM2MjIsMzYyMywzNjI0LDM2MjUsMzYyNiwzNjI3LDM2MjgsMzYyOSwzNjMwLDM2MzEsMzYz'@; put 'MiwzNjMzLDM2MzQsMzYzNSwzNjM2LDM2MzcsMzYzOCwzNjM5LDM2NDAsMzY0MSwzNjQyLG51bGwsbnVsbCxudWxsLG51bGwsMzY0NywzNjQ4LDM2NDksMzY1MCwzNjUxLDM2NTIsMzY1MywzNjU0LDM2NTUsMzY1NiwzNjU3LDM2NTgsMzY1OSwzNjYwLDM2NjEsMzY2MiwzNjYzLDM2NjQsMzY2'@; put 'NSwzNjY2LDM2NjcsMzY2OCwzNjY5LDM2NzAsMzY3MSwzNjcyLDM2NzMsMzY3NCwzNjc1LG51bGwsbnVsbCxudWxsLG51bGxdLCJ3aW5kb3dzLTEyNTAiOls4MzY0LDEyOSw4MjE4LDEzMSw4MjIyLDgyMzAsODIyNCw4MjI1LDEzNiw4MjQwLDM1Miw4MjQ5LDM0NiwzNTYsMzgxLDM3NywxNDQs'@; put 'ODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwzNTMsODI1MCwzNDcsMzU3LDM4MiwzNzgsMTYwLDcxMSw3MjgsMzIxLDE2NCwyNjAsMTY2LDE2NywxNjgsMTY5LDM1MCwxNzEsMTcyLDE3MywxNzQsMzc5LDE3NiwxNzcsNzMxLDMyMiwxODAsMTgxLDE4MiwxODMs'@; put 'MTg0LDI2MSwzNTEsMTg3LDMxNyw3MzMsMzE4LDM4MCwzNDAsMTkzLDE5NCwyNTgsMTk2LDMxMywyNjIsMTk5LDI2OCwyMDEsMjgwLDIwMywyODIsMjA1LDIwNiwyNzAsMjcyLDMyMywzMjcsMjExLDIxMiwzMzYsMjE0LDIxNSwzNDQsMzY2LDIxOCwzNjgsMjIwLDIyMSwzNTQsMjIzLDM0MSwy'@; put 'MjUsMjI2LDI1OSwyMjgsMzE0LDI2MywyMzEsMjY5LDIzMywyODEsMjM1LDI4MywyMzcsMjM4LDI3MSwyNzMsMzI0LDMyOCwyNDMsMjQ0LDMzNywyNDYsMjQ3LDM0NSwzNjcsMjUwLDM2OSwyNTIsMjUzLDM1NSw3MjldLCJ3aW5kb3dzLTEyNTEiOlsxMDI2LDEwMjcsODIxOCwxMTA3LDgyMjIs'@; put 'ODIzMCw4MjI0LDgyMjUsODM2NCw4MjQwLDEwMzMsODI0OSwxMDM0LDEwMzYsMTAzNSwxMDM5LDExMDYsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwxMTEzLDgyNTAsMTExNCwxMTE2LDExMTUsMTExOSwxNjAsMTAzOCwxMTE4LDEwMzIsMTY0LDExNjgsMTY2'@; put 'LDE2NywxMDI1LDE2OSwxMDI4LDE3MSwxNzIsMTczLDE3NCwxMDMxLDE3NiwxNzcsMTAzMCwxMTEwLDExNjksMTgxLDE4MiwxODMsMTEwNSw4NDcwLDExMDgsMTg3LDExMTIsMTAyOSwxMTA5LDExMTEsMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwx'@; put 'MDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4Miwx'@; put 'MDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwM10sIndpbmRvd3MtMTI1MiI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsNzEwLDgy'@; put 'NDAsMzUyLDgyNDksMzM4LDE0MSwzODEsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDczMiw4NDgyLDM1Myw4MjUwLDMzOSwxNTcsMzgyLDM3NiwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUs'@; put 'MTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwy'@; put 'MTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NV0sIndpbmRvd3Mt'@; put 'MTI1MyI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsMTM2LDgyNDAsMTM4LDgyNDksMTQwLDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDE1Miw4NDgyLDE1NCw4MjUwLDE1NiwxNTcsMTU4LDE1OSwxNjAsOTAxLDkwMiwx'@; put 'NjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksbnVsbCwxNzEsMTcyLDE3MywxNzQsODIxMywxNzYsMTc3LDE3OCwxNzksOTAwLDE4MSwxODIsMTgzLDkwNCw5MDUsOTA2LDE4Nyw5MDgsMTg5LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMs'@; put 'OTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksbnVsbCw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQs'@; put 'OTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LG51bGxdLCJ3aW5kb3dzLTEyNTQiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDM1Miw4MjQ5LDMzOCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgy'@; put 'MTEsODIxMiw3MzIsODQ4MiwzNTMsODI1MCwzMzksMTU3LDE1OCwzNzYsMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkw'@; put 'LDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjg2LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDMwNCwzNTAsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEs'@; put 'MjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyODcsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMzA1LDM1MSwyNTVdLCJ3aW5kb3dzLTEyNTUiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDEzOCw4'@; put 'MjQ5LDE0MCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiw3MzIsODQ4MiwxNTQsODI1MCwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDgzNjIsMTY1LDE2NiwxNjcsMTY4LDE2OSwyMTUsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3'@; put 'LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMjQ3LDE4NywxODgsMTg5LDE5MCwxOTEsMTQ1NiwxNDU3LDE0NTgsMTQ1OSwxNDYwLDE0NjEsMTQ2MiwxNDYzLDE0NjQsMTQ2NSwxNDY2LDE0NjcsMTQ2OCwxNDY5LDE0NzAsMTQ3MSwxNDcyLDE0NzMsMTQ3NCwxNDc1LDE1MjAsMTUy'@; put 'MSwxNTIyLDE1MjMsMTUyNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE0ODgsMTQ4OSwxNDkwLDE0OTEsMTQ5MiwxNDkzLDE0OTQsMTQ5NSwxNDk2LDE0OTcsMTQ5OCwxNDk5LDE1MDAsMTUwMSwxNTAyLDE1MDMsMTUwNCwxNTA1LDE1MDYsMTUwNywxNTA4LDE1MDksMTUx'@; put 'MCwxNTExLDE1MTIsMTUxMywxNTE0LG51bGwsbnVsbCw4MjA2LDgyMDcsbnVsbF0sIndpbmRvd3MtMTI1NiI6WzgzNjQsMTY2Miw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDE2NTcsODI0OSwzMzgsMTY3MCwxNjg4LDE2NzIsMTcxMSw4MjE2LDgyMTcsODIyMCw4MjIx'@; put 'LDgyMjYsODIxMSw4MjEyLDE3MDUsODQ4MiwxNjgxLDgyNTAsMzM5LDgyMDQsODIwNSwxNzIyLDE2MCwxNTQ4LDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcyNiwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxNTYz'@; put 'LDE4NywxODgsMTg5LDE5MCwxNTY3LDE3MjksMTU2OSwxNTcwLDE1NzEsMTU3MiwxNTczLDE1NzQsMTU3NSwxNTc2LDE1NzcsMTU3OCwxNTc5LDE1ODAsMTU4MSwxNTgyLDE1ODMsMTU4NCwxNTg1LDE1ODYsMTU4NywxNTg4LDE1ODksMTU5MCwyMTUsMTU5MSwxNTkyLDE1OTMsMTU5NCwxNjAw'@; put 'LDE2MDEsMTYwMiwxNjAzLDIyNCwxNjA0LDIyNiwxNjA1LDE2MDYsMTYwNywxNjA4LDIzMSwyMzIsMjMzLDIzNCwyMzUsMTYwOSwxNjEwLDIzOCwyMzksMTYxMSwxNjEyLDE2MTMsMTYxNCwyNDQsMTYxNSwxNjE2LDI0NywxNjE3LDI0OSwxNjE4LDI1MSwyNTIsODIwNiw4MjA3LDE3NDZdLCJ3'@; put 'aW5kb3dzLTEyNTciOls4MzY0LDEyOSw4MjE4LDEzMSw4MjIyLDgyMzAsODIyNCw4MjI1LDEzNiw4MjQwLDEzOCw4MjQ5LDE0MCwxNjgsNzExLDE4NCwxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwxNTQsODI1MCwxNTYsMTc1LDczMSwxNTksMTYwLG51'@; put 'bGwsMTYyLDE2MywxNjQsbnVsbCwxNjYsMTY3LDIxNiwxNjksMzQyLDE3MSwxNzIsMTczLDE3NCwxOTgsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywyNDgsMTg1LDM0MywxODcsMTg4LDE4OSwxOTAsMjMwLDI2MCwzMDIsMjU2LDI2MiwxOTYsMTk3LDI4MCwyNzQsMjY4LDIwMSwz'@; put 'NzcsMjc4LDI5MCwzMTAsMjk4LDMxNSwzNTIsMzIzLDMyNSwyMTEsMzMyLDIxMywyMTQsMjE1LDM3MCwzMjEsMzQ2LDM2MiwyMjAsMzc5LDM4MSwyMjMsMjYxLDMwMywyNTcsMjYzLDIyOCwyMjksMjgxLDI3NSwyNjksMjMzLDM3OCwyNzksMjkxLDMxMSwyOTksMzE2LDM1MywzMjQsMzI2LDI0'@; put 'MywzMzMsMjQ1LDI0NiwyNDcsMzcxLDMyMiwzNDcsMzYzLDI1MiwzODAsMzgyLDcyOV0sIndpbmRvd3MtMTI1OCI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMTM4LDgyNDksMzM4LDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgy'@; put 'MjYsODIxMSw4MjEyLDczMiw4NDgyLDE1NCw4MjUwLDMzOSwxNTcsMTU4LDM3NiwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4'@; put 'OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDI1OCwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDc2OCwyMDUsMjA2LDIwNywyNzIsMjA5LDc3NywyMTEsMjEyLDQxNiwyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsNDMxLDc3MSwyMjMsMjI0LDIyNSwyMjYsMjU5LDIyOCwyMjksMjMw'@; put 'LDIzMSwyMzIsMjMzLDIzNCwyMzUsNzY5LDIzNywyMzgsMjM5LDI3MywyNDEsODAzLDI0MywyNDQsNDE3LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1Miw0MzIsODM2MywyNTVdLCJ4LW1hYy1jeXJpbGxpYyI6WzEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4'@; put 'LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSw4MjI0LDE3NiwxMTY4LDE2MywxNjcsODIyNiwxODIsMTAzMCwxNzQsMTY5LDg0ODIs'@; put 'MTAyNiwxMTA2LDg4MDAsMTAyNywxMTA3LDg3MzQsMTc3LDg4MDQsODgwNSwxMTEwLDE4MSwxMTY5LDEwMzIsMTAyOCwxMTA4LDEwMzEsMTExMSwxMDMzLDExMTMsMTAzNCwxMTE0LDExMTIsMTAyOSwxNzIsODczMCw0MDIsODc3Niw4NzEwLDE3MSwxODcsODIzMCwxNjAsMTAzNSwxMTE1LDEw'@; put 'MzYsMTExNiwxMTA5LDgyMTEsODIxMiw4MjIwLDgyMjEsODIxNiw4MjE3LDI0Nyw4MjIyLDEwMzgsMTExOCwxMDM5LDExMTksODQ3MCwxMDI1LDExMDUsMTEwMywxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4'@; put 'NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDgzNjRdfX0odGhpc3x8e30pfSw0MDI5MDpmdW5jdGlvbihhdCxJZSxGKXshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KFRl'@; put 'LHFlLFhlKXtyZXR1cm4gcWU8PVRlJiZUZTw9WGV9YXQuZXhwb3J0cyYmIWFlWyJlbmNvZGluZy1pbmRleGVzIl0mJihhZVsiZW5jb2RpbmctaW5kZXhlcyJdPUYoMTY0MTMpWyJlbmNvZGluZy1pbmRleGVzIl0pO3ZhciBsZT1NYXRoLmZsb29yO2Z1bmN0aW9uIE0oVGUpe2lmKHZvaWQgMD09'@; put 'PVRlKXJldHVybnt9O2lmKFRlPT09T2JqZWN0KFRlKSlyZXR1cm4gVGU7dGhyb3cgVHlwZUVycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCB0byBkaWN0aW9uYXJ5Iil9ZnVuY3Rpb24geihUZSl7cmV0dXJuIDA8PVRlJiZUZTw9MTI3fXZhciBLPXosST0tMTtmdW5jdGlvbiBrKFRl'@; put 'KXt0aGlzLnRva2Vucz1bXS5zbGljZS5jYWxsKFRlKSx0aGlzLnRva2Vucy5yZXZlcnNlKCl9ay5wcm90b3R5cGU9e2VuZE9mU3RyZWFtOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudG9rZW5zLmxlbmd0aH0scmVhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRva2Vucy5sZW5ndGg/dGhpcy50'@; put 'b2tlbnMucG9wKCk6SX0scHJlcGVuZDpmdW5jdGlvbihUZSl7aWYoQXJyYXkuaXNBcnJheShUZSkpZm9yKHZhciBxZT1UZTtxZS5sZW5ndGg7KXRoaXMudG9rZW5zLnB1c2gocWUucG9wKCkpO2Vsc2UgdGhpcy50b2tlbnMucHVzaChUZSl9LHB1c2g6ZnVuY3Rpb24oVGUpe2lmKEFycmF5Lmlz'@; put 'QXJyYXkoVGUpKWZvcih2YXIgcWU9VGU7cWUubGVuZ3RoOyl0aGlzLnRva2Vucy51bnNoaWZ0KHFlLnNoaWZ0KCkpO2Vsc2UgdGhpcy50b2tlbnMudW5zaGlmdChUZSl9fTt2YXIgRT0tMTtmdW5jdGlvbiBqKFRlLHFlKXtpZihUZSl0aHJvdyBUeXBlRXJyb3IoIkRlY29kZXIgZXJyb3IiKTty'@; put 'ZXR1cm4gcWV8fDY1NTMzfWZ1bmN0aW9uIFYoVGUpe3Rocm93IFR5cGVFcnJvcigiVGhlIGNvZGUgcG9pbnQgIitUZSsiIGNvdWxkIG5vdCBiZSBlbmNvZGVkLiIpfWZ1bmN0aW9uIFgoVGUpe3JldHVybiBUZT1TdHJpbmcoVGUpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLE9iamVjdC5wcm90b3R5'@; put 'cGUuaGFzT3duUHJvcGVydHkuY2FsbChxLFRlKT9xW1RlXTpudWxsfXZhciBVPVt7ZW5jb2RpbmdzOlt7bGFiZWxzOlsidW5pY29kZS0xLTEtdXRmLTgiLCJ1dGYtOCIsInV0ZjgiXSxuYW1lOiJVVEYtOCJ9XSxoZWFkaW5nOiJUaGUgRW5jb2RpbmcifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsi'@; put 'ODY2IiwiY3A4NjYiLCJjc2libTg2NiIsImlibTg2NiJdLG5hbWU6IklCTTg2NiJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluMiIsImlzby04ODU5LTIiLCJpc28taXItMTAxIiwiaXNvODg1OS0yIiwiaXNvODg1OTIiLCJpc29fODg1OS0yIiwiaXNvXzg4NTktMjoxOTg3IiwibDIiLCJsYXRpbjIi'@; put 'XSxuYW1lOiJJU08tODg1OS0yIn0se2xhYmVsczpbImNzaXNvbGF0aW4zIiwiaXNvLTg4NTktMyIsImlzby1pci0xMDkiLCJpc284ODU5LTMiLCJpc284ODU5MyIsImlzb184ODU5LTMiLCJpc29fODg1OS0zOjE5ODgiLCJsMyIsImxhdGluMyJdLG5hbWU6IklTTy04ODU5LTMifSx7bGFiZWxz'@; put 'OlsiY3Npc29sYXRpbjQiLCJpc28tODg1OS00IiwiaXNvLWlyLTExMCIsImlzbzg4NTktNCIsImlzbzg4NTk0IiwiaXNvXzg4NTktNCIsImlzb184ODU5LTQ6MTk4OCIsImw0IiwibGF0aW40Il0sbmFtZToiSVNPLTg4NTktNCJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluY3lyaWxsaWMiLCJjeXJp'@; put 'bGxpYyIsImlzby04ODU5LTUiLCJpc28taXItMTQ0IiwiaXNvODg1OS01IiwiaXNvODg1OTUiLCJpc29fODg1OS01IiwiaXNvXzg4NTktNToxOTg4Il0sbmFtZToiSVNPLTg4NTktNSJ9LHtsYWJlbHM6WyJhcmFiaWMiLCJhc21vLTcwOCIsImNzaXNvODg1OTZlIiwiY3Npc284ODU5NmkiLCJj'@; put 'c2lzb2xhdGluYXJhYmljIiwiZWNtYS0xMTQiLCJpc28tODg1OS02IiwiaXNvLTg4NTktNi1lIiwiaXNvLTg4NTktNi1pIiwiaXNvLWlyLTEyNyIsImlzbzg4NTktNiIsImlzbzg4NTk2IiwiaXNvXzg4NTktNiIsImlzb184ODU5LTY6MTk4NyJdLG5hbWU6IklTTy04ODU5LTYifSx7bGFiZWxz'@; put 'OlsiY3Npc29sYXRpbmdyZWVrIiwiZWNtYS0xMTgiLCJlbG90XzkyOCIsImdyZWVrIiwiZ3JlZWs4IiwiaXNvLTg4NTktNyIsImlzby1pci0xMjYiLCJpc284ODU5LTciLCJpc284ODU5NyIsImlzb184ODU5LTciLCJpc29fODg1OS03OjE5ODciLCJzdW5fZXVfZ3JlZWsiXSxuYW1lOiJJU08t'@; put 'ODg1OS03In0se2xhYmVsczpbImNzaXNvODg1OThlIiwiY3Npc29sYXRpbmhlYnJldyIsImhlYnJldyIsImlzby04ODU5LTgiLCJpc28tODg1OS04LWUiLCJpc28taXItMTM4IiwiaXNvODg1OS04IiwiaXNvODg1OTgiLCJpc29fODg1OS04IiwiaXNvXzg4NTktODoxOTg4IiwidmlzdWFsIl0s'@; put 'bmFtZToiSVNPLTg4NTktOCJ9LHtsYWJlbHM6WyJjc2lzbzg4NTk4aSIsImlzby04ODU5LTgtaSIsImxvZ2ljYWwiXSxuYW1lOiJJU08tODg1OS04LUkifSx7bGFiZWxzOlsiY3Npc29sYXRpbjYiLCJpc28tODg1OS0xMCIsImlzby1pci0xNTciLCJpc284ODU5LTEwIiwiaXNvODg1OTEwIiwi'@; put 'bDYiLCJsYXRpbjYiXSxuYW1lOiJJU08tODg1OS0xMCJ9LHtsYWJlbHM6WyJpc28tODg1OS0xMyIsImlzbzg4NTktMTMiLCJpc284ODU5MTMiXSxuYW1lOiJJU08tODg1OS0xMyJ9LHtsYWJlbHM6WyJpc28tODg1OS0xNCIsImlzbzg4NTktMTQiLCJpc284ODU5MTQiXSxuYW1lOiJJU08tODg1'@; put 'OS0xNCJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluOSIsImlzby04ODU5LTE1IiwiaXNvODg1OS0xNSIsImlzbzg4NTkxNSIsImlzb184ODU5LTE1IiwibDkiXSxuYW1lOiJJU08tODg1OS0xNSJ9LHtsYWJlbHM6WyJpc28tODg1OS0xNiJdLG5hbWU6IklTTy04ODU5LTE2In0se2xhYmVsczpbImNz'@; put 'a29pOHIiLCJrb2kiLCJrb2k4Iiwia29pOC1yIiwia29pOF9yIl0sbmFtZToiS09JOC1SIn0se2xhYmVsczpbImtvaTgtcnUiLCJrb2k4LXUiXSxuYW1lOiJLT0k4LVUifSx7bGFiZWxzOlsiY3NtYWNpbnRvc2giLCJtYWMiLCJtYWNpbnRvc2giLCJ4LW1hYy1yb21hbiJdLG5hbWU6Im1hY2lu'@; put 'dG9zaCJ9LHtsYWJlbHM6WyJkb3MtODc0IiwiaXNvLTg4NTktMTEiLCJpc284ODU5LTExIiwiaXNvODg1OTExIiwidGlzLTYyMCIsIndpbmRvd3MtODc0Il0sbmFtZToid2luZG93cy04NzQifSx7bGFiZWxzOlsiY3AxMjUwIiwid2luZG93cy0xMjUwIiwieC1jcDEyNTAiXSxuYW1lOiJ3aW5k'@; put 'b3dzLTEyNTAifSx7bGFiZWxzOlsiY3AxMjUxIiwid2luZG93cy0xMjUxIiwieC1jcDEyNTEiXSxuYW1lOiJ3aW5kb3dzLTEyNTEifSx7bGFiZWxzOlsiYW5zaV94My40LTE5NjgiLCJhc2NpaSIsImNwMTI1MiIsImNwODE5IiwiY3Npc29sYXRpbjEiLCJpYm04MTkiLCJpc28tODg1OS0xIiwi'@; put 'aXNvLWlyLTEwMCIsImlzbzg4NTktMSIsImlzbzg4NTkxIiwiaXNvXzg4NTktMSIsImlzb184ODU5LTE6MTk4NyIsImwxIiwibGF0aW4xIiwidXMtYXNjaWkiLCJ3aW5kb3dzLTEyNTIiLCJ4LWNwMTI1MiJdLG5hbWU6IndpbmRvd3MtMTI1MiJ9LHtsYWJlbHM6WyJjcDEyNTMiLCJ3aW5kb3dz'@; put 'LTEyNTMiLCJ4LWNwMTI1MyJdLG5hbWU6IndpbmRvd3MtMTI1MyJ9LHtsYWJlbHM6WyJjcDEyNTQiLCJjc2lzb2xhdGluNSIsImlzby04ODU5LTkiLCJpc28taXItMTQ4IiwiaXNvODg1OS05IiwiaXNvODg1OTkiLCJpc29fODg1OS05IiwiaXNvXzg4NTktOToxOTg5IiwibDUiLCJsYXRpbjUi'@; put 'LCJ3aW5kb3dzLTEyNTQiLCJ4LWNwMTI1NCJdLG5hbWU6IndpbmRvd3MtMTI1NCJ9LHtsYWJlbHM6WyJjcDEyNTUiLCJ3aW5kb3dzLTEyNTUiLCJ4LWNwMTI1NSJdLG5hbWU6IndpbmRvd3MtMTI1NSJ9LHtsYWJlbHM6WyJjcDEyNTYiLCJ3aW5kb3dzLTEyNTYiLCJ4LWNwMTI1NiJdLG5hbWU6'@; put 'IndpbmRvd3MtMTI1NiJ9LHtsYWJlbHM6WyJjcDEyNTciLCJ3aW5kb3dzLTEyNTciLCJ4LWNwMTI1NyJdLG5hbWU6IndpbmRvd3MtMTI1NyJ9LHtsYWJlbHM6WyJjcDEyNTgiLCJ3aW5kb3dzLTEyNTgiLCJ4LWNwMTI1OCJdLG5hbWU6IndpbmRvd3MtMTI1OCJ9LHtsYWJlbHM6WyJ4LW1hYy1j'@; put 'eXJpbGxpYyIsIngtbWFjLXVrcmFpbmlhbiJdLG5hbWU6IngtbWFjLWN5cmlsbGljIn1dLGhlYWRpbmc6IkxlZ2FjeSBzaW5nbGUtYnl0ZSBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiY2hpbmVzZSIsImNzZ2IyMzEyIiwiY3Npc281OGdiMjMxMjgwIiwiZ2IyMzEyIiwiZ2Jf'@; put 'MjMxMiIsImdiXzIzMTItODAiLCJnYmsiLCJpc28taXItNTgiLCJ4LWdiayJdLG5hbWU6IkdCSyJ9LHtsYWJlbHM6WyJnYjE4MDMwIl0sbmFtZToiZ2IxODAzMCJ9XSxoZWFkaW5nOiJMZWdhY3kgbXVsdGktYnl0ZSBDaGluZXNlIChzaW1wbGlmaWVkKSBlbmNvZGluZ3MifSx7ZW5jb2Rpbmdz'@; put 'Olt7bGFiZWxzOlsiYmlnNSIsImJpZzUtaGtzY3MiLCJjbi1iaWc1IiwiY3NiaWc1IiwieC14LWJpZzUiXSxuYW1lOiJCaWc1In1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIENoaW5lc2UgKHRyYWRpdGlvbmFsKSBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiY3NldWNw'@; put 'a2RmbXRqYXBhbmVzZSIsImV1Yy1qcCIsIngtZXVjLWpwIl0sbmFtZToiRVVDLUpQIn0se2xhYmVsczpbImNzaXNvMjAyMmpwIiwiaXNvLTIwMjItanAiXSxuYW1lOiJJU08tMjAyMi1KUCJ9LHtsYWJlbHM6WyJjc3NoaWZ0amlzIiwibXM5MzIiLCJtc19rYW5qaSIsInNoaWZ0LWppcyIsInNo'@; put 'aWZ0X2ppcyIsInNqaXMiLCJ3aW5kb3dzLTMxaiIsIngtc2ppcyJdLG5hbWU6IlNoaWZ0X0pJUyJ9XSxoZWFkaW5nOiJMZWdhY3kgbXVsdGktYnl0ZSBKYXBhbmVzZSBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiY3NldWNrciIsImNza3NjNTYwMTE5ODciLCJldWMta3IiLCJp'@; put 'c28taXItMTQ5Iiwia29yZWFuIiwia3NfY181NjAxLTE5ODciLCJrc19jXzU2MDEtMTk4OSIsImtzYzU2MDEiLCJrc2NfNTYwMSIsIndpbmRvd3MtOTQ5Il0sbmFtZToiRVVDLUtSIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIEtvcmVhbiBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7'@; put 'bGFiZWxzOlsiY3Npc28yMDIya3IiLCJoei1nYi0yMzEyIiwiaXNvLTIwMjItY24iLCJpc28tMjAyMi1jbi1leHQiLCJpc28tMjAyMi1rciJdLG5hbWU6InJlcGxhY2VtZW50In0se2xhYmVsczpbInV0Zi0xNmJlIl0sbmFtZToiVVRGLTE2QkUifSx7bGFiZWxzOlsidXRmLTE2IiwidXRmLTE2'@; put 'bGUiXSxuYW1lOiJVVEYtMTZMRSJ9LHtsYWJlbHM6WyJ4LXVzZXItZGVmaW5lZCJdLG5hbWU6IngtdXNlci1kZWZpbmVkIn1dLGhlYWRpbmc6IkxlZ2FjeSBtaXNjZWxsYW5lb3VzIGVuY29kaW5ncyJ9XSxxPXt9O1UuZm9yRWFjaChmdW5jdGlvbihUZSl7VGUuZW5jb2RpbmdzLmZvckVhY2go'@; put 'ZnVuY3Rpb24ocWUpe3FlLmxhYmVscy5mb3JFYWNoKGZ1bmN0aW9uKFhlKXtxW1hlXT1xZX0pfSl9KTt2YXIgYixlZT17fSx0ZT17fTtmdW5jdGlvbiBvZShUZSxxZSl7cmV0dXJuIHFlJiZxZVtUZV18fG51bGx9ZnVuY3Rpb24gc2UoVGUscWUpe3ZhciBYZT1xZS5pbmRleE9mKFRlKTtyZXR1'@; put 'cm4tMT09PVhlP251bGw6WGV9ZnVuY3Rpb24gaGUoVGUpe2lmKCEoImVuY29kaW5nLWluZGV4ZXMiaW4gYWUpKXRocm93IEVycm9yKCJJbmRleGVzIG1pc3NpbmcuIERpZCB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgZW5jb2RpbmctaW5kZXhlcy5qcyBmaXJzdD8iKTtyZXR1cm4gYWVbImVuY29k'@; put 'aW5nLWluZGV4ZXMiXVtUZV19dmFyIEgsTj0idXRmLTgiO2Z1bmN0aW9uIGcoVGUscWUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGcpKXRocm93IFR5cGVFcnJvcigiQ2FsbGVkIGFzIGEgZnVuY3Rpb24uIERpZCB5b3UgZm9yZ2V0ICduZXcnPyIpO1RlPXZvaWQgMCE9PVRlP1N0cmluZyhUZSk6'@; put 'TixxZT1NKHFlKSx0aGlzLl9lbmNvZGluZz1udWxsLHRoaXMuX2RlY29kZXI9bnVsbCx0aGlzLl9pZ25vcmVCT009ITEsdGhpcy5fQk9Nc2Vlbj0hMSx0aGlzLl9lcnJvcl9tb2RlPSJyZXBsYWNlbWVudCIsdGhpcy5fZG9fbm90X2ZsdXNoPSExO3ZhciBYZT1YKFRlKTtpZihudWxsPT09WGV8'@; put 'fCJyZXBsYWNlbWVudCI9PT1YZS5uYW1lKXRocm93IFJhbmdlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrVGUpO2lmKCF0ZVtYZS5uYW1lXSl0aHJvdyBFcnJvcigiRGVjb2RlciBub3QgcHJlc2VudC4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSBlbmNvZGluZy1pbmRleGVzLmpzIGZp'@; put 'cnN0PyIpO3ZhciBVZT10aGlzO3JldHVybiBVZS5fZW5jb2Rpbmc9WGUscWUuZmF0YWwmJihVZS5fZXJyb3JfbW9kZT0iZmF0YWwiKSxxZS5pZ25vcmVCT00mJihVZS5faWdub3JlQk9NPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHl8fCh0aGlzLmVuY29kaW5nPVVlLl9lbmNvZGluZy5uYW1l'@; put 'LnRvTG93ZXJDYXNlKCksdGhpcy5mYXRhbD0iZmF0YWwiPT09VWUuX2Vycm9yX21vZGUsdGhpcy5pZ25vcmVCT009VWUuX2lnbm9yZUJPTSksVWV9ZnVuY3Rpb24gQyhUZSxxZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgQykpdGhyb3cgVHlwZUVycm9yKCJDYWxsZWQgYXMgYSBmdW5jdGlvbi4g'@; put 'RGlkIHlvdSBmb3JnZXQgJ25ldyc/Iik7aWYocWU9TShxZSksdGhpcy5fZW5jb2Rpbmc9bnVsbCx0aGlzLl9lbmNvZGVyPW51bGwsdGhpcy5fZG9fbm90X2ZsdXNoPSExLHRoaXMuX2ZhdGFsPXFlLmZhdGFsPyJmYXRhbCI6InJlcGxhY2VtZW50IixxZS5OT05TVEFOREFSRF9hbGxvd0xlZ2Fj'@; put 'eUVuY29kaW5nKXt2YXIgVWU9WChUZT12b2lkIDAhPT1UZT9TdHJpbmcoVGUpOk4pO2lmKG51bGw9PT1VZXx8InJlcGxhY2VtZW50Ij09PVVlLm5hbWUpdGhyb3cgUmFuZ2VFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitUZSk7aWYoIWVlW1VlLm5hbWVdKXRocm93IEVycm9yKCJFbmNvZGVy'@; put 'IG5vdCBwcmVzZW50LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGVuY29kaW5nLWluZGV4ZXMuanMgZmlyc3Q/Iik7dGhpcy5fZW5jb2Rpbmc9VWV9ZWxzZSB0aGlzLl9lbmNvZGluZz1YKCJ1dGYtOCIpLHZvaWQgMCE9PVRlJiYiY29uc29sZSJpbiBhZSYmY29uc29sZS53YXJuKCJUZXh0'@; put 'RW5jb2RlciBjb25zdHJ1Y3RvciBjYWxsZWQgd2l0aCBlbmNvZGluZyBsYWJlbCwgd2hpY2ggaXMgaWdub3JlZC4iKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5fHwodGhpcy5lbmNvZGluZz10aGlzLl9lbmNvZGluZy5uYW1lLnRvTG93ZXJDYXNlKCkpLHRoaXN9ZnVuY3Rpb24gUyhU'@; put 'ZSl7dmFyIHFlPVRlLmZhdGFsLFhlPTAsVWU9MCxodD0wLE1lPTEyOCxEZT0xOTE7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKHplLG90KXtpZihvdD09PUkmJjAhPT1odClyZXR1cm4gaHQ9MCxqKHFlKTtpZihvdD09PUkpcmV0dXJuIEU7aWYoMD09PWh0KXtpZih4KG90LDAsMTI3KSlyZXR1cm4g'@; put 'b3Q7aWYoeChvdCwxOTQsMjIzKSlodD0xLFhlPTMxJm90O2Vsc2UgaWYoeChvdCwyMjQsMjM5KSkyMjQ9PT1vdCYmKE1lPTE2MCksMjM3PT09b3QmJihEZT0xNTkpLGh0PTIsWGU9MTUmb3Q7ZWxzZXtpZigheChvdCwyNDAsMjQ0KSlyZXR1cm4gaihxZSk7MjQwPT09b3QmJihNZT0xNDQpLDI0'@; put 'ND09PW90JiYoRGU9MTQzKSxodD0zLFhlPTcmb3R9cmV0dXJuIG51bGx9aWYoIXgob3QsTWUsRGUpKXJldHVybiBYZT1odD1VZT0wLE1lPTEyOCxEZT0xOTEsemUucHJlcGVuZChvdCksaihxZSk7aWYoTWU9MTI4LERlPTE5MSxYZT1YZTw8Nnw2MyZvdCwoVWUrPTEpIT09aHQpcmV0dXJuIG51'@; put 'bGw7dmFyIHV0PVhlO3JldHVybiBYZT1odD1VZT0wLHV0fX1mdW5jdGlvbiB2KFRlKXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oWGUsVWUpe2lmKFVlPT09SSlyZXR1cm4gRTtpZihLKFVlKSlyZXR1cm4gVWU7dmFyIGh0LE1lO3goVWUsMTI4LDIwNDcpPyhodD0xLE1lPTE5Mik6eChVZSwyMDQ4'@; put 'LDY1NTM1KT8oaHQ9MixNZT0yMjQpOngoVWUsNjU1MzYsMTExNDExMSkmJihodD0zLE1lPTI0MCk7Zm9yKHZhciBEZT1bKFVlPj42Kmh0KStNZV07aHQ+MDspRGUucHVzaCgxMjh8NjMmVWU+PjYqKGh0LTEpKSxodC09MTtyZXR1cm4gRGV9fWZ1bmN0aW9uIHAoVGUscWUpe3ZhciBYZT1xZS5m'@; put 'YXRhbDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oVWUsaHQpe2lmKGh0PT09SSlyZXR1cm4gRTtpZih6KGh0KSlyZXR1cm4gaHQ7dmFyIE1lPVRlW2h0LTEyOF07cmV0dXJuIG51bGw9PT1NZT9qKFhlKTpNZX19ZnVuY3Rpb24gdyhUZSxxZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKFVlLGh0KXtp'@; put 'ZihodD09PUkpcmV0dXJuIEU7aWYoSyhodCkpcmV0dXJuIGh0O3ZhciBNZT1zZShodCxUZSk7cmV0dXJuIG51bGw9PT1NZSYmVihodCksTWUrMTI4fX1mdW5jdGlvbiBKKFRlKXt2YXIgcWU9VGUuZmF0YWwsWGU9MCxVZT0wLGh0PTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKE1lLERlKXtpZihE'@; put 'ZT09PUkmJjA9PT1YZSYmMD09PVVlJiYwPT09aHQpcmV0dXJuIEU7dmFyIHplO2lmKERlPT09SSYmKDAhPT1YZXx8MCE9PVVlfHwwIT09aHQpJiYoWGU9MCxVZT0wLGh0PTAsaihxZSkpLDAhPT1odCl7emU9bnVsbCx4KERlLDQ4LDU3KSYmKHplPWZ1bmN0aW9uIHVlKFRlKXtpZihUZT4zOTQx'@; put 'OSYmVGU8MTg5ZTN8fFRlPjEyMzc1NzUpcmV0dXJuIG51bGw7aWYoNzQ1Nz09PVRlKXJldHVybiA1OTMzNTt2YXIgaHQscWU9MCxYZT0wLFVlPWhlKCJnYjE4MDMwLXJhbmdlcyIpO2ZvcihodD0wO2h0PFVlLmxlbmd0aDsrK2h0KXt2YXIgTWU9VWVbaHRdO2lmKCEoTWVbMF08PVRlKSlicmVh'@; put 'aztxZT1NZVswXSxYZT1NZVsxXX1yZXR1cm4gWGUrVGUtcWV9KDEwKigxMjYqKDEwKihYZS0xMjkpK1VlLTQ4KStodC0xMjkpK0RlLTQ4KSk7dmFyIG90PVtVZSxodCxEZV07cmV0dXJuIFhlPTAsVWU9MCxodD0wLG51bGw9PT16ZT8oTWUucHJlcGVuZChvdCksaihxZSkpOnplfWlmKDAhPT1V'@; put 'ZSlyZXR1cm4geChEZSwxMjksMjU0KT8oaHQ9RGUsbnVsbCk6KE1lLnByZXBlbmQoW1VlLERlXSksWGU9MCxVZT0wLGoocWUpKTtpZigwIT09WGUpe2lmKHgoRGUsNDgsNTcpKXJldHVybiBVZT1EZSxudWxsO3ZhciB1dD1YZSxNdD1udWxsO1hlPTA7dmFyIEh0PURlPDEyNz82NDo2NTtyZXR1'@; put 'cm4oeChEZSw2NCwxMjYpfHx4KERlLDEyOCwyNTQpKSYmKE10PTE5MCoodXQtMTI5KSsoRGUtSHQpKSxudWxsPT09KHplPW51bGw9PT1NdD9udWxsOm9lKE10LGhlKCJnYjE4MDMwIikpKSYmeihEZSkmJk1lLnByZXBlbmQoRGUpLG51bGw9PT16ZT9qKHFlKTp6ZX1yZXR1cm4geihEZSk/RGU6'@; put 'MTI4PT09RGU/ODM2NDp4KERlLDEyOSwyNTQpPyhYZT1EZSxudWxsKTpqKHFlKX19ZnVuY3Rpb24gbmUoVGUscWUpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihVZSxodCl7aWYoaHQ9PT1JKXJldHVybiBFO2lmKEsoaHQpKXJldHVybiBodDtpZig1ODg1Mz09PWh0KXJldHVybiBWKGh0KTtpZihx'@; put 'ZSYmODM2ND09PWh0KXJldHVybiAxMjg7dmFyIE1lPXNlKGh0LGhlKCJnYjE4MDMwIikpO2lmKG51bGwhPT1NZSl7dmFyIHplPU1lJTE5MDtyZXR1cm5bbGUoTWUvMTkwKSsxMjksemUrKHplPDYzPzY0OjY1KV19aWYocWUpcmV0dXJuIFYoaHQpO01lPWZ1bmN0aW9uIGNlKFRlKXtpZig1OTMz'@; put 'NT09PVRlKXJldHVybiA3NDU3O3ZhciBodCxxZT0wLFhlPTAsVWU9aGUoImdiMTgwMzAtcmFuZ2VzIik7Zm9yKGh0PTA7aHQ8VWUubGVuZ3RoOysraHQpe3ZhciBNZT1VZVtodF07aWYoIShNZVsxXTw9VGUpKWJyZWFrO3FlPU1lWzFdLFhlPU1lWzBdfXJldHVybiBYZStUZS1xZX0oaHQpO3Zh'@; put 'ciB1dD1sZShNZS8xMC8xMjYvMTApLE10PWxlKChNZS09MTAqdXQqMTI2KjEwKS8xMC8xMjYpLEh0PWxlKChNZS09MTAqTXQqMTI2KS8xMCk7cmV0dXJuW3V0KzEyOSxNdCs0OCxIdCsxMjksTWUtMTAqSHQrNDhdfX1mdW5jdGlvbiBkZShUZSl7dmFyIHFlPVRlLmZhdGFsLFhlPTA7dGhpcy5o'@; put 'YW5kbGVyPWZ1bmN0aW9uKFVlLGh0KXtpZihodD09PUkmJjAhPT1YZSlyZXR1cm4gWGU9MCxqKHFlKTtpZihodD09PUkmJjA9PT1YZSlyZXR1cm4gRTtpZigwIT09WGUpe3ZhciBNZT1YZSxEZT1udWxsO1hlPTA7dmFyIHplPWh0PDEyNz82NDo5ODtzd2l0Y2goKHgoaHQsNjQsMTI2KXx8eCho'@; put 'dCwxNjEsMjU0KSkmJihEZT0xNTcqKE1lLTEyOSkrKGh0LXplKSksRGUpe2Nhc2UgMTEzMzpyZXR1cm5bMjAyLDc3Ml07Y2FzZSAxMTM1OnJldHVyblsyMDIsNzgwXTtjYXNlIDExNjQ6cmV0dXJuWzIzNCw3NzJdO2Nhc2UgMTE2NjpyZXR1cm5bMjM0LDc4MF19dmFyIG90PW51bGw9PT1EZT9u'@; put 'dWxsOm9lKERlLGhlKCJiaWc1IikpO3JldHVybiBudWxsPT09b3QmJnooaHQpJiZVZS5wcmVwZW5kKGh0KSxudWxsPT09b3Q/aihxZSk6b3R9cmV0dXJuIHooaHQpP2h0OngoaHQsMTI5LDI1NCk/KFhlPWh0LG51bGwpOmoocWUpfX1mdW5jdGlvbiBmZShUZSl7dGhpcy5oYW5kbGVyPWZ1bmN0'@; put 'aW9uKFhlLFVlKXtpZihVZT09PUkpcmV0dXJuIEU7aWYoSyhVZSkpcmV0dXJuIFVlO3ZhciBodD1mdW5jdGlvbiBEKFRlKXt2YXIgcWU9SD1IfHxoZSgiYmlnNSIpLm1hcChmdW5jdGlvbihYZSxVZSl7cmV0dXJuIFVlPDUwMjQ/bnVsbDpYZX0pO3JldHVybiA5NTUyPT09VGV8fDk1NjY9PT1U'@; put 'ZXx8OTU2OT09PVRlfHw5NTc4PT09VGV8fDIxMzEzPT09VGV8fDIxMzE3PT09VGU/cWUubGFzdEluZGV4T2YoVGUpOnNlKFRlLHFlKX0oVWUpO2lmKG51bGw9PT1odClyZXR1cm4gVihVZSk7dmFyIE1lPWxlKGh0LzE1NykrMTI5O2lmKE1lPDE2MSlyZXR1cm4gVihVZSk7dmFyIERlPWh0JTE1'@; put 'NztyZXR1cm5bTWUsRGUrKERlPDYzPzY0Ojk4KV19fWZ1bmN0aW9uIHhlKFRlKXt2YXIgcWU9VGUuZmF0YWwsWGU9ITEsVWU9MDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oaHQsTWUpe2lmKE1lPT09SSYmMCE9PVVlKXJldHVybiBVZT0wLGoocWUpO2lmKE1lPT09SSYmMD09PVVlKXJldHVybiBF'@; put 'O2lmKDE0Mj09PVVlJiZ4KE1lLDE2MSwyMjMpKXJldHVybiBVZT0wLDY1MjE2K01lO2lmKDE0Mz09PVVlJiZ4KE1lLDE2MSwyNTQpKXJldHVybiBYZT0hMCxVZT1NZSxudWxsO2lmKDAhPT1VZSl7dmFyIERlPVVlO1VlPTA7dmFyIHplPW51bGw7cmV0dXJuIHgoRGUsMTYxLDI1NCkmJngoTWUs'@; put 'MTYxLDI1NCkmJih6ZT1vZSg5NCooRGUtMTYxKSsoTWUtMTYxKSxoZShYZT8iamlzMDIxMiI6ImppczAyMDgiKSkpLFhlPSExLHgoTWUsMTYxLDI1NCl8fGh0LnByZXBlbmQoTWUpLG51bGw9PT16ZT9qKHFlKTp6ZX1yZXR1cm4geihNZSk/TWU6MTQyPT09TWV8fDE0Mz09PU1lfHx4KE1lLDE2'@; put 'MSwyNTQpPyhVZT1NZSxudWxsKTpqKHFlKX19ZnVuY3Rpb24gTGUoVGUpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihYZSxVZSl7aWYoVWU9PT1JKXJldHVybiBFO2lmKEsoVWUpKXJldHVybiBVZTtpZigxNjU9PT1VZSlyZXR1cm4gOTI7aWYoODI1ND09PVVlKXJldHVybiAxMjY7aWYoeChVZSw2'@; put 'NTM3Nyw2NTQzOSkpcmV0dXJuWzE0MixVZS02NTM3NysxNjFdOzg3MjI9PT1VZSYmKFVlPTY1MjkzKTt2YXIgaHQ9c2UoVWUsaGUoImppczAyMDgiKSk7cmV0dXJuIG51bGw9PT1odD9WKFVlKTpbbGUoaHQvOTQpKzE2MSxodCU5NCsxNjFdfX1mdW5jdGlvbiBGZShUZSl7dmFyIHFlPVRlLmZh'@; put 'dGFsLFVlPTAsTWU9MCxEZT0hMTt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oemUsb3Qpe3N3aXRjaChVZSl7ZGVmYXVsdDpjYXNlIDA6cmV0dXJuIDI3PT09b3Q/KFVlPTUsbnVsbCk6eChvdCwwLDEyNykmJjE0IT09b3QmJjE1IT09b3QmJjI3IT09b3Q/KERlPSExLG90KTpvdD09PUk/RTooRGU9'@; put 'ITEsaihxZSkpO2Nhc2UgMTpyZXR1cm4gMjc9PT1vdD8oVWU9NSxudWxsKTo5Mj09PW90PyhEZT0hMSwxNjUpOjEyNj09PW90PyhEZT0hMSw4MjU0KTp4KG90LDAsMTI3KSYmMTQhPT1vdCYmMTUhPT1vdCYmMjchPT1vdCYmOTIhPT1vdCYmMTI2IT09b3Q/KERlPSExLG90KTpvdD09PUk/RToo'@; put 'RGU9ITEsaihxZSkpO2Nhc2UgMjpyZXR1cm4gMjc9PT1vdD8oVWU9NSxudWxsKTp4KG90LDMzLDk1KT8oRGU9ITEsNjUzNDQrb3QpOm90PT09ST9FOihEZT0hMSxqKHFlKSk7Y2FzZSAzOnJldHVybiAyNz09PW90PyhVZT01LG51bGwpOngob3QsMzMsMTI2KT8oRGU9ITEsTWU9b3QsVWU9NCxu'@; put 'dWxsKTpvdD09PUk/RTooRGU9ITEsaihxZSkpO2Nhc2UgNDppZigyNz09PW90KXJldHVybiBVZT01LGoocWUpO2lmKHgob3QsMzMsMTI2KSl7VWU9Mzt2YXIgTXQ9b2UoOTQqKE1lLTMzKStvdC0zMyxoZSgiamlzMDIwOCIpKTtyZXR1cm4gbnVsbD09PU10P2oocWUpOk10fXJldHVybiBvdD09'@; put 'PUk/KFVlPTMsemUucHJlcGVuZChvdCksaihxZSkpOihVZT0zLGoocWUpKTtjYXNlIDU6cmV0dXJuIDM2PT09b3R8fDQwPT09b3Q/KE1lPW90LFVlPTYsbnVsbCk6KHplLnByZXBlbmQob3QpLERlPSExLFVlPTAsaihxZSkpO2Nhc2UgNjp2YXIgSHQ9TWU7TWU9MDt2YXIgUHQ9bnVsbDtpZig0'@; put 'MD09PUh0JiY2Nj09PW90JiYoUHQ9MCksNDA9PT1IdCYmNzQ9PT1vdCYmKFB0PTEpLDQwPT09SHQmJjczPT09b3QmJihQdD0yKSwzNj09PUh0JiYoNjQ9PT1vdHx8NjY9PT1vdCkmJihQdD0zKSxudWxsIT09UHQpe1VlPVVlPVB0O3ZhciBvbj1EZTtyZXR1cm4gRGU9ITAsb24/aihxZSk6bnVs'@; put 'bH1yZXR1cm4gemUucHJlcGVuZChbSHQsb3RdKSxEZT0hMSxVZT0wLGoocWUpfX19ZnVuY3Rpb24gT2UoVGUpe3ZhciBVZT0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihodCxNZSl7aWYoTWU9PT1JJiYwIT09VWUpcmV0dXJuIGh0LnByZXBlbmQoTWUpLFVlPTAsWzI3LDQwLDY2XTtpZihNZT09'@; put 'PUkmJjA9PT1VZSlyZXR1cm4gRTtpZighKDAhPT1VZSYmMSE9PVVlfHwxNCE9PU1lJiYxNSE9PU1lJiYyNyE9PU1lKSlyZXR1cm4gVig2NTUzMyk7aWYoMD09PVVlJiZLKE1lKSlyZXR1cm4gTWU7aWYoMT09PVVlJiYoSyhNZSkmJjkyIT09TWUmJjEyNiE9PU1lfHwxNjU9PU1lfHw4MjU0PT1N'@; put 'ZSkpe2lmKEsoTWUpKXJldHVybiBNZTtpZigxNjU9PT1NZSlyZXR1cm4gOTI7aWYoODI1ND09PU1lKXJldHVybiAxMjZ9aWYoSyhNZSkmJjAhPT1VZSlyZXR1cm4gaHQucHJlcGVuZChNZSksVWU9MCxbMjcsNDAsNjZdO2lmKCgxNjU9PT1NZXx8ODI1ND09PU1lKSYmMSE9PVVlKXJldHVybiBo'@; put 'dC5wcmVwZW5kKE1lKSxVZT0xLFsyNyw0MCw3NF07ODcyMj09PU1lJiYoTWU9NjUyOTMpO3ZhciBEZT1zZShNZSxoZSgiamlzMDIwOCIpKTtyZXR1cm4gbnVsbD09PURlP1YoTWUpOjIhPT1VZT8oaHQucHJlcGVuZChNZSksVWU9MixbMjcsMzYsNjZdKTpbbGUoRGUvOTQpKzMzLERlJTk0KzMz'@; put 'XX19ZnVuY3Rpb24gamUoVGUpe3ZhciBxZT1UZS5mYXRhbCxYZT0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihVZSxodCl7aWYoaHQ9PT1JJiYwIT09WGUpcmV0dXJuIFhlPTAsaihxZSk7aWYoaHQ9PT1JJiYwPT09WGUpcmV0dXJuIEU7aWYoMCE9PVhlKXt2YXIgTWU9WGUsRGU9bnVsbDtYZT0w'@; put 'O3ZhciB6ZT1odDwxMjc/NjQ6NjUsb3Q9TWU8MTYwPzEyOToxOTM7aWYoKHgoaHQsNjQsMTI2KXx8eChodCwxMjgsMjUyKSkmJihEZT0xODgqKE1lLW90KStodC16ZSkseChEZSw4ODM2LDEwNzE1KSlyZXR1cm4gNDg1MDgrRGU7dmFyIHV0PW51bGw9PT1EZT9udWxsOm9lKERlLGhlKCJqaXMw'@; put 'MjA4IikpO3JldHVybiBudWxsPT09dXQmJnooaHQpJiZVZS5wcmVwZW5kKGh0KSxudWxsPT09dXQ/aihxZSk6dXR9cmV0dXJuIHooaHQpfHwxMjg9PT1odD9odDp4KGh0LDE2MSwyMjMpPzY1MjE2K2h0OngoaHQsMTI5LDE1OSl8fHgoaHQsMjI0LDI1Mik/KFhlPWh0LG51bGwpOmoocWUpfX1m'@; put 'dW5jdGlvbiBXZShUZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKFhlLFVlKXtpZihVZT09PUkpcmV0dXJuIEU7aWYoSyhVZSl8fDEyOD09PVVlKXJldHVybiBVZTtpZigxNjU9PT1VZSlyZXR1cm4gOTI7aWYoODI1ND09PVVlKXJldHVybiAxMjY7aWYoeChVZSw2NTM3Nyw2NTQzOSkpcmV0dXJu'@; put 'IFVlLTY1Mzc3KzE2MTs4NzIyPT09VWUmJihVZT02NTI5Myk7dmFyIGh0PWZ1bmN0aW9uIEcoVGUpe3JldHVybihiPWJ8fGhlKCJqaXMwMjA4IikubWFwKGZ1bmN0aW9uKFhlLFVlKXtyZXR1cm4geChVZSw4MjcyLDg4MzUpP251bGw6WGV9KSkuaW5kZXhPZihUZSl9KFVlKTtpZihudWxsPT09'@; put 'aHQpcmV0dXJuIFYoVWUpO3ZhciBNZT1sZShodC8xODgpLHplPWh0JTE4ODtyZXR1cm5bTWUrKE1lPDMxPzEyOToxOTMpLHplKyh6ZTw2Mz82NDo2NSldfX1mdW5jdGlvbiBLZShUZSl7dmFyIHFlPVRlLmZhdGFsLFhlPTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKFVlLGh0KXtpZihodD09PUkm'@; put 'JjAhPT1YZSlyZXR1cm4gWGU9MCxqKHFlKTtpZihodD09PUkmJjA9PT1YZSlyZXR1cm4gRTtpZigwIT09WGUpe3ZhciBNZT1YZSxEZT1udWxsO1hlPTAseChodCw2NSwyNTQpJiYoRGU9MTkwKihNZS0xMjkpKyhodC02NSkpO3ZhciB6ZT1udWxsPT09RGU/bnVsbDpvZShEZSxoZSgiZXVjLWty'@; put 'IikpO3JldHVybiBudWxsPT09RGUmJnooaHQpJiZVZS5wcmVwZW5kKGh0KSxudWxsPT09emU/aihxZSk6emV9cmV0dXJuIHooaHQpP2h0OngoaHQsMTI5LDI1NCk/KFhlPWh0LG51bGwpOmoocWUpfX1mdW5jdGlvbiBZZShUZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKFhlLFVlKXtpZihVZT09'@; put 'PUkpcmV0dXJuIEU7aWYoSyhVZSkpcmV0dXJuIFVlO3ZhciBodD1zZShVZSxoZSgiZXVjLWtyIikpO3JldHVybiBudWxsPT09aHQ/VihVZSk6W2xlKGh0LzE5MCkrMTI5LGh0JTE5MCs2NV19fWZ1bmN0aW9uIFFlKFRlLHFlKXt2YXIgWGU9VGU+PjgsVWU9MjU1JlRlO3JldHVybiBxZT9bWGUs'@; put 'VWVdOltVZSxYZV19ZnVuY3Rpb24gbHQoVGUscWUpe3ZhciBYZT1xZS5mYXRhbCxVZT1udWxsLGh0PW51bGw7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKE1lLERlKXtpZihEZT09PUkmJihudWxsIT09VWV8fG51bGwhPT1odCkpcmV0dXJuIGooWGUpO2lmKERlPT09SSYmbnVsbD09PVVlJiZudWxs'@; put 'PT09aHQpcmV0dXJuIEU7aWYobnVsbD09PVVlKXJldHVybiBVZT1EZSxudWxsO3ZhciB6ZTtpZih6ZT1UZT8oVWU8PDgpK0RlOihEZTw8OCkrVWUsVWU9bnVsbCxudWxsIT09aHQpe3ZhciBvdD1odDtyZXR1cm4gaHQ9bnVsbCx4KHplLDU2MzIwLDU3MzQzKT82NTUzNisxMDI0KihvdC01NTI5'@; put 'NikrKHplLTU2MzIwKTooTWUucHJlcGVuZChRZSh6ZSxUZSkpLGooWGUpKX1yZXR1cm4geCh6ZSw1NTI5Niw1NjMxOSk/KGh0PXplLG51bGwpOngoemUsNTYzMjAsNTczNDMpP2ooWGUpOnplfX1mdW5jdGlvbiBQZShUZSxxZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKFVlLGh0KXtpZihodD09'@; put 'PUkpcmV0dXJuIEU7aWYoeChodCwwLDY1NTM1KSlyZXR1cm4gUWUoaHQsVGUpO3ZhciBNZT1RZSg1NTI5NisoaHQtNjU1MzY+PjEwKSxUZSksRGU9UWUoNTYzMjArKGh0LTY1NTM2JjEwMjMpLFRlKTtyZXR1cm4gTWUuY29uY2F0KERlKX19ZnVuY3Rpb24gYmUoVGUpe3RoaXMuaGFuZGxlcj1m'@; put 'dW5jdGlvbihYZSxVZSl7cmV0dXJuIFVlPT09ST9FOnooVWUpP1VlOjYzMzYwK1VlLTEyOH19ZnVuY3Rpb24gQWUoVGUpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihYZSxVZSl7cmV0dXJuIFVlPT09ST9FOksoVWUpP1VlOngoVWUsNjMzNjAsNjM0ODcpP1VlLTYzMzYwKzEyODpWKFVlKX19T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5JiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGcucHJvdG90eXBlLCJlbmNvZGluZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmNvZGluZy5uYW1lLnRvTG93ZXJDYXNlKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGcucHJvdG90eXBlLCJmYXRh'@; put 'bCIse2dldDpmdW5jdGlvbigpe3JldHVybiJmYXRhbCI9PT10aGlzLl9lcnJvcl9tb2RlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLnByb3RvdHlwZSwiaWdub3JlQk9NIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lnbm9yZUJPTX19KSksZy5wcm90b3R5cGUuZGVjb2RlPWZ1'@; put 'bmN0aW9uKHFlLFhlKXt2YXIgVWU7VWU9Im9iamVjdCI9PXR5cGVvZiBxZSYmcWUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9uZXcgVWludDhBcnJheShxZSk6Im9iamVjdCI9PXR5cGVvZiBxZSYmImJ1ZmZlciJpbiBxZSYmcWUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVp'@; put 'bnQ4QXJyYXkocWUuYnVmZmVyLHFlLmJ5dGVPZmZzZXQscWUuYnl0ZUxlbmd0aCk6bmV3IFVpbnQ4QXJyYXkoMCksWGU9TShYZSksdGhpcy5fZG9fbm90X2ZsdXNofHwodGhpcy5fZGVjb2Rlcj10ZVt0aGlzLl9lbmNvZGluZy5uYW1lXSh7ZmF0YWw6ImZhdGFsIj09PXRoaXMuX2Vycm9yX21v'@; put 'ZGV9KSx0aGlzLl9CT01zZWVuPSExKSx0aGlzLl9kb19ub3RfZmx1c2g9ISFYZS5zdHJlYW07Zm9yKHZhciBEZSxodD1uZXcgayhVZSksTWU9W107Oyl7dmFyIHplPWh0LnJlYWQoKTtpZih6ZT09PUl8fChEZT10aGlzLl9kZWNvZGVyLmhhbmRsZXIoaHQsemUpKT09PUUpYnJlYWs7bnVsbCE9'@; put 'PURlJiYoQXJyYXkuaXNBcnJheShEZSk/TWUucHVzaC5hcHBseShNZSxEZSk6TWUucHVzaChEZSkpfWlmKCF0aGlzLl9kb19ub3RfZmx1c2gpe2Rve2lmKChEZT10aGlzLl9kZWNvZGVyLmhhbmRsZXIoaHQsaHQucmVhZCgpKSk9PT1FKWJyZWFrO251bGwhPT1EZSYmKEFycmF5LmlzQXJyYXko'@; put 'RGUpP01lLnB1c2guYXBwbHkoTWUsRGUpOk1lLnB1c2goRGUpKX13aGlsZSghaHQuZW5kT2ZTdHJlYW0oKSk7dGhpcy5fZGVjb2Rlcj1udWxsfXJldHVybiBmdW5jdGlvbiBvdCh1dCl7cmV0dXJuIGZ1bmN0aW9uIG0oVGUscWUpe3JldHVybi0xIT09VGUuaW5kZXhPZihxZSl9KFsiVVRGLTgi'@; put 'LCJVVEYtMTZMRSIsIlVURi0xNkJFIl0sdGhpcy5fZW5jb2RpbmcubmFtZSkmJiF0aGlzLl9pZ25vcmVCT00mJiF0aGlzLl9CT01zZWVuJiYodXQubGVuZ3RoPjAmJjY1Mjc5PT09dXRbMF0/KHRoaXMuX0JPTXNlZW49ITAsdXQuc2hpZnQoKSk6dXQubGVuZ3RoPjAmJih0aGlzLl9CT01zZWVu'@; put 'PSEwKSksZnVuY3Rpb24gUihUZSl7Zm9yKHZhciBxZT0iIixYZT0wO1hlPFRlLmxlbmd0aDsrK1hlKXt2YXIgVWU9VGVbWGVdO1VlPD02NTUzNT9xZSs9U3RyaW5nLmZyb21DaGFyQ29kZShVZSk6KFVlLT02NTUzNixxZSs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoVWU+PjEwKSw1NjMy'@; put 'MCsoMTAyMyZVZSkpKX1yZXR1cm4gcWV9KHV0KX0uY2FsbCh0aGlzLE1lKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoQy5wcm90b3R5cGUsImVuY29kaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuY29kaW5nLm5hbWUudG9Mb3dlckNh'@; put 'c2UoKX19KSxDLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24ocWUsWGUpe3FlPXZvaWQgMD09PXFlPyIiOlN0cmluZyhxZSksWGU9TShYZSksdGhpcy5fZG9fbm90X2ZsdXNofHwodGhpcy5fZW5jb2Rlcj1lZVt0aGlzLl9lbmNvZGluZy5uYW1lXSh7ZmF0YWw6ImZhdGFsIj09PXRoaXMuX2Zh'@; put 'dGFsfSkpLHRoaXMuX2RvX25vdF9mbHVzaD0hIVhlLnN0cmVhbTtmb3IodmFyIE1lLFVlPW5ldyBrKGZ1bmN0aW9uIE8oVGUpe2Zvcih2YXIgcWU9U3RyaW5nKFRlKSxYZT1xZS5sZW5ndGgsVWU9MCxodD1bXTtVZTxYZTspe3ZhciBNZT1xZS5jaGFyQ29kZUF0KFVlKTtpZihNZTw1NTI5Nnx8'@; put 'TWU+NTczNDMpaHQucHVzaChNZSk7ZWxzZSBpZig1NjMyMDw9TWUmJk1lPD01NzM0MylodC5wdXNoKDY1NTMzKTtlbHNlIGlmKDU1Mjk2PD1NZSYmTWU8PTU2MzE5KWlmKFVlPT09WGUtMSlodC5wdXNoKDY1NTMzKTtlbHNle3ZhciBEZT1xZS5jaGFyQ29kZUF0KFVlKzEpOzU2MzIwPD1EZSYm'@; put 'RGU8PTU3MzQzPyhodC5wdXNoKDY1NTM2KygoMTAyMyZNZSk8PDEwKSsoMTAyMyZEZSkpLFVlKz0xKTpodC5wdXNoKDY1NTMzKX1VZSs9MX1yZXR1cm4gaHR9KHFlKSksaHQ9W107Oyl7dmFyIERlPVVlLnJlYWQoKTtpZihEZT09PUl8fChNZT10aGlzLl9lbmNvZGVyLmhhbmRsZXIoVWUsRGUp'@; put 'KT09PUUpYnJlYWs7QXJyYXkuaXNBcnJheShNZSk/aHQucHVzaC5hcHBseShodCxNZSk6aHQucHVzaChNZSl9aWYoIXRoaXMuX2RvX25vdF9mbHVzaCl7Zm9yKDsoTWU9dGhpcy5fZW5jb2Rlci5oYW5kbGVyKFVlLFVlLnJlYWQoKSkpIT09RTspQXJyYXkuaXNBcnJheShNZSk/aHQucHVzaC5h'@; put 'cHBseShodCxNZSk6aHQucHVzaChNZSk7dGhpcy5fZW5jb2Rlcj1udWxsfXJldHVybiBuZXcgVWludDhBcnJheShodCl9LGVlWyJVVEYtOCJdPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3IHYoVGUpfSx0ZVsiVVRGLTgiXT1mdW5jdGlvbihUZSl7cmV0dXJuIG5ldyBTKFRlKX0sImVuY29kaW5n'@; put 'LWluZGV4ZXMiaW4gYWUmJlUuZm9yRWFjaChmdW5jdGlvbihUZSl7IkxlZ2FjeSBzaW5nbGUtYnl0ZSBlbmNvZGluZ3MiPT09VGUuaGVhZGluZyYmVGUuZW5jb2RpbmdzLmZvckVhY2goZnVuY3Rpb24ocWUpe3ZhciBYZT1xZS5uYW1lLFVlPWhlKFhlLnRvTG93ZXJDYXNlKCkpO3RlW1hlXT1m'@; put 'dW5jdGlvbihodCl7cmV0dXJuIG5ldyBwKFVlLGh0KX0sZWVbWGVdPWZ1bmN0aW9uKGh0KXtyZXR1cm4gbmV3IHcoVWUsaHQpfX0pfSksdGUuR0JLPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3IEooVGUpfSxlZS5HQks9ZnVuY3Rpb24oVGUpe3JldHVybiBuZXcgbmUoVGUsITApfSxlZS5nYjE4'@; put 'MDMwPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3IG5lKFRlKX0sdGUuZ2IxODAzMD1mdW5jdGlvbihUZSl7cmV0dXJuIG5ldyBKKFRlKX0sZWUuQmlnNT1mdW5jdGlvbihUZSl7cmV0dXJuIG5ldyBmZShUZSl9LHRlLkJpZzU9ZnVuY3Rpb24oVGUpe3JldHVybiBuZXcgZGUoVGUpfSxlZVsiRVVD'@; put 'LUpQIl09ZnVuY3Rpb24oVGUpe3JldHVybiBuZXcgTGUoVGUpfSx0ZVsiRVVDLUpQIl09ZnVuY3Rpb24oVGUpe3JldHVybiBuZXcgeGUoVGUpfSxlZVsiSVNPLTIwMjItSlAiXT1mdW5jdGlvbihUZSl7cmV0dXJuIG5ldyBPZShUZSl9LHRlWyJJU08tMjAyMi1KUCJdPWZ1bmN0aW9uKFRlKXty'@; put 'ZXR1cm4gbmV3IEZlKFRlKX0sZWUuU2hpZnRfSklTPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3IFdlKFRlKX0sdGUuU2hpZnRfSklTPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3IGplKFRlKX0sZWVbIkVVQy1LUiJdPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3IFllKFRlKX0sdGVbIkVVQy1LUiJd'@; put 'PWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3IEtlKFRlKX0sZWVbIlVURi0xNkJFIl09ZnVuY3Rpb24oVGUpe3JldHVybiBuZXcgUGUoITAsVGUpfSx0ZVsiVVRGLTE2QkUiXT1mdW5jdGlvbihUZSl7cmV0dXJuIG5ldyBsdCghMCxUZSl9LGVlWyJVVEYtMTZMRSJdPWZ1bmN0aW9uKFRlKXtyZXR1'@; put 'cm4gbmV3IFBlKCExLFRlKX0sdGVbIlVURi0xNkxFIl09ZnVuY3Rpb24oVGUpe3JldHVybiBuZXcgbHQoITEsVGUpfSxlZVsieC11c2VyLWRlZmluZWQiXT1mdW5jdGlvbihUZSl7cmV0dXJuIG5ldyBBZShUZSl9LHRlWyJ4LXVzZXItZGVmaW5lZCJdPWZ1bmN0aW9uKFRlKXtyZXR1cm4gbmV3'@; put 'IGJlKFRlKX0sYWUuVGV4dEVuY29kZXJ8fChhZS5UZXh0RW5jb2Rlcj1DKSxhZS5UZXh0RGVjb2Rlcnx8KGFlLlRleHREZWNvZGVyPWcpLGF0LmV4cG9ydHMmJihhdC5leHBvcnRzPXtUZXh0RW5jb2RlcjphZS5UZXh0RW5jb2RlcixUZXh0RGVjb2RlcjphZS5UZXh0RGVjb2RlcixFbmNvZGlu'@; put 'Z0luZGV4ZXM6YWVbImVuY29kaW5nLWluZGV4ZXMiXX0pfSh0aGlzfHx7fSl9LDkwNDk2OmF0PT57ZnVuY3Rpb24gRihhZSl7dHJ5e2lmKCFnbG9iYWwubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoe3JldHVybiExfXZhciB4PWdsb2JhbC5sb2NhbFN0b3JhZ2VbYWVdO3JldHVybiBudWxs'@; put 'IT14JiYidHJ1ZSI9PT1TdHJpbmcoeCkudG9Mb3dlckNhc2UoKX1hdC5leHBvcnRzPWZ1bmN0aW9uIEllKGFlLHgpe2lmKEYoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gYWU7dmFyIG09ITE7cmV0dXJuIGZ1bmN0aW9uIGxlKCl7aWYoIW0pe2lmKEYoInRocm93RGVwcmVjYXRpb24iKSl0aHJv'@; put 'dyBuZXcgRXJyb3IoeCk7RigidHJhY2VEZXByZWNhdGlvbiIpP2NvbnNvbGUudHJhY2UoeCk6Y29uc29sZS53YXJuKHgpLG09ITB9cmV0dXJuIGFlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSw3ODUzMjooYXQsSWUsRik9PnshZnVuY3Rpb24oYWUpeyJ1c2Ugc3RyaWN0IjthZS5leHBvcnRz'@; put 'LmlzX3VyaT1tLGFlLmV4cG9ydHMuaXNfaHR0cF91cmk9bGUsYWUuZXhwb3J0cy5pc19odHRwc191cmk9TSxhZS5leHBvcnRzLmlzX3dlYl91cmk9TyxhZS5leHBvcnRzLmlzVXJpPW0sYWUuZXhwb3J0cy5pc0h0dHBVcmk9bGUsYWUuZXhwb3J0cy5pc0h0dHBzVXJpPU0sYWUuZXhwb3J0cy5p'@; put 'c1dlYlVyaT1PO3ZhciB4PWZ1bmN0aW9uKFIpe3JldHVybiBSLm1hdGNoKC8oPzooW146XC8/I10rKTopPyg/OlwvXC8oW15cLz8jXSopKT8oW14/I10qKSg/Olw/KFteI10qKSk/KD86IyguKikpPy8pfTtmdW5jdGlvbiBtKFIpe2lmKFImJiEvW15hLXowLTlcOlwvXD9cI1xbXF1cQFwhXCRc'@; put 'JlwnXChcKVwqXCtcLFw7XD1cLlwtXF9cflwlXS9pLnRlc3QoUikmJiEvJVteMC05YS1mXS9pLnRlc3QoUikmJiEvJVswLTlhLWZdKDo/W14wLTlhLWZdfCQpL2kudGVzdChSKSl7dmFyIHosSSxrLEUsaixLPSIiLFY9IiI7aWYoST0oej14KFIpKVsyXSxrPXpbM10sRT16WzRdLGo9els1XSwo'@; put 'Sz16WzFdKSYmSy5sZW5ndGgmJmsubGVuZ3RoPj0wKXtpZihJJiZJLmxlbmd0aCl7aWYoMCE9PWsubGVuZ3RoJiYhL15cLy8udGVzdChrKSlyZXR1cm59ZWxzZSBpZigvXlwvXC8vLnRlc3QoaykpcmV0dXJuO2lmKC9eW2Etel1bYS16MC05XCtcLVwuXSokLy50ZXN0KEsudG9Mb3dlckNhc2Uo'@; put 'KSkpcmV0dXJuIFYrPUsrIjoiLEkmJkkubGVuZ3RoJiYoVis9Ii8vIitJKSxWKz1rLEUmJkUubGVuZ3RoJiYoVis9Ij8iK0UpLGomJmoubGVuZ3RoJiYoVis9IiMiK2opLFZ9fX1mdW5jdGlvbiBsZShSLHope2lmKG0oUikpe3ZhciBLLEUsVixCLEk9IiIsaz0iIixqPSIiLFk9IiI7aWYoaz0o'@; put 'Sz14KFIpKVsyXSxFPUtbM10sVj1LWzRdLEI9S1s1XSxJPUtbMV0pe2lmKHope2lmKCJodHRwcyIhPUkudG9Mb3dlckNhc2UoKSlyZXR1cm59ZWxzZSBpZigiaHR0cCIhPUkudG9Mb3dlckNhc2UoKSlyZXR1cm47aWYoaylyZXR1cm4vOihcZCspJC8udGVzdChrKSYmKGo9ay5tYXRjaCgvOihc'@; put 'ZCspJC8pWzBdLGs9ay5yZXBsYWNlKC86XGQrJC8sIiIpKSxZKz1JKyI6IixZKz0iLy8iK2ssaiYmKFkrPWopLFkrPUUsViYmVi5sZW5ndGgmJihZKz0iPyIrViksQiYmQi5sZW5ndGgmJihZKz0iIyIrQiksWX19fWZ1bmN0aW9uIE0oUil7cmV0dXJuIGxlKFIsITApfWZ1bmN0aW9uIE8oUil7'@; put 'cmV0dXJuIGxlKFIpfHxNKFIpfX0oYXQ9Ri5ubWQoYXQpKX0sODE0NTA6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDEyMDE0KSx4PUYoOTQ2NzYpLG09VHlwZUVycm9yO2F0LmV4cG9ydHM9ZnVuY3Rpb24obGUpe2lmKGFlKGxlKSlyZXR1cm4gbGU7dGhyb3cgbSh4KGxlKSsi'@; put 'IGlzIG5vdCBhIGZ1bmN0aW9uIil9fSw3MDA4OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigxMjAxNCkseD1TdHJpbmcsbT1UeXBlRXJyb3I7YXQuZXhwb3J0cz1mdW5jdGlvbihsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBsZXx8YWUobGUpKXJldHVybiBsZTt0aHJvdyBtKCJD'@; put 'YW4ndCBzZXQgIit4KGxlKSsiIGFzIGEgcHJvdG90eXBlIil9fSw3NDk2NTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMjU0NikseD1GKDc0NDEwKSxtPUYoNTExODMpLmYsbGU9YWUoInVuc2NvcGFibGVzIiksTT1BcnJheS5wcm90b3R5cGU7bnVsbD09TVtsZV0mJm0oTSxs'@; put 'ZSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOngobnVsbCl9KSxhdC5leHBvcnRzPWZ1bmN0aW9uKE8pe01bbGVdW09dPSEwfX0sNTg2NDc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDEzODQ5KSx4PVN0cmluZyxtPVR5cGVFcnJvcjthdC5leHBvcnRzPWZ1bmN0aW9uKGxlKXtp'@; put 'ZihhZShsZSkpcmV0dXJuIGxlO3Rocm93IG0oeChsZSkrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSwzNjMwNTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNTAzMjcpLHg9Rig3NjE2MyksbT1GKDU0NDUwKSxsZT1mdW5jdGlvbihNKXtyZXR1cm4gZnVuY3Rpb24oTyxSLHope3Zh'@; put 'ciBFLEs9YWUoTyksST1tKEspLGs9eCh6LEkpO2lmKE0mJlIhPVIpe2Zvcig7ST5rOylpZigoRT1LW2srK10pIT1FKXJldHVybiEwfWVsc2UgZm9yKDtJPms7aysrKWlmKChNfHxrIGluIEspJiZLW2tdPT09UilyZXR1cm4gTXx8a3x8MDtyZXR1cm4hTSYmLTF9fTthdC5leHBvcnRzPXtpbmNs'@; put 'dWRlczpsZSghMCksaW5kZXhPZjpsZSghMSl9fSw4Njc1OTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoODU2MjQpLHg9RigyOTEwNiksbT1UeXBlRXJyb3IsbGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixNPWFlJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10'@; put 'aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2goTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO2F0LmV4cG9ydHM9TT9mdW5jdGlvbihPLFIpe2lmKHgoTykmJiFsZShPLCJsZW5n'@; put 'dGgiKS53cml0YWJsZSl0aHJvdyBtKCJDYW5ub3Qgc2V0IHJlYWQgb25seSAubGVuZ3RoIik7cmV0dXJuIE8ubGVuZ3RoPVJ9OmZ1bmN0aW9uKE8sUil7cmV0dXJuIE8ubGVuZ3RoPVJ9fSw0MDkzMDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjYxMyk7YXQuZXhwb3J0cz1h'@; put 'ZShbXS5zbGljZSl9LDk0NzIzOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig2NjEzKSx4PWFlKHt9LnRvU3RyaW5nKSxtPWFlKCIiLnNsaWNlKTthdC5leHBvcnRzPWZ1bmN0aW9uKGxlKXtyZXR1cm4gbSh4KGxlKSw4LC0xKX19LDc5NTIwOihhdCxJZSxGKT0+eyJ1c2Ugc3Ry'@; put 'aWN0Ijt2YXIgYWU9RigyNzQ5MCkseD1GKDEyMDE0KSxtPUYoOTQ3MjMpLE09RigyNTQ2KSgidG9TdHJpbmdUYWciKSxPPU9iamVjdCxSPSJBcmd1bWVudHMiPT1tKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7YXQuZXhwb3J0cz1hZT9tOmZ1bmN0aW9uKEspe3ZhciBJLGssRTty'@; put 'ZXR1cm4gdm9pZCAwPT09Sz8iVW5kZWZpbmVkIjpudWxsPT09Sz8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihrPWZ1bmN0aW9uKEssSSl7dHJ5e3JldHVybiBLW0ldfWNhdGNoe319KEk9TyhLKSxNKSk/azpSP20oSSk6Ik9iamVjdCI9PShFPW0oSSkpJiZ4KEkuY2FsbGVlKT8iQXJndW1lbnRz'@; put 'IjpFfX0sNzc1NDg6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDQ4ODExKSx4PUYoMjExOTkpLG09Rig0Nzk4NyksbGU9Rig1MTE4Myk7YXQuZXhwb3J0cz1mdW5jdGlvbihNLE8sUil7Zm9yKHZhciB6PXgoTyksSz1sZS5mLEk9bS5mLGs9MDtrPHoubGVuZ3RoO2srKyl7dmFy'@; put 'IEU9eltrXTshYWUoTSxFKSYmKCFSfHwhYWUoUixFKSkmJksoTSxFLEkoTyxFKSl9fX0sMTYwMTc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg1NjI0KSx4PUYoNTExODMpLG09Rig3MzkyMCk7YXQuZXhwb3J0cz1hZT9mdW5jdGlvbihsZSxNLE8pe3JldHVybiB4LmYobGUs'@; put 'TSxtKDEsTykpfTpmdW5jdGlvbihsZSxNLE8pe3JldHVybiBsZVtNXT1PLGxlfX0sNzM5MjA6YXQ9PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz1mdW5jdGlvbihJZSxGKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmSWUpLGNvbmZpZ3VyYWJsZTohKDImSWUpLHdyaXRhYmxlOiEoNCZJZSksdmFs'@; put 'dWU6Rn19fSwyNTY2NjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMTIwMTQpLHg9Rig1MTE4MyksbT1GKDM0NDY4KSxsZT1GKDczNDcwKTthdC5leHBvcnRzPWZ1bmN0aW9uKE0sTyxSLHope3p8fCh6PXt9KTt2YXIgSz16LmVudW1lcmFibGUsST12b2lkIDAhPT16Lm5hbWU/'@; put 'ei5uYW1lOk87aWYoYWUoUikmJm0oUixJLHopLHouZ2xvYmFsKUs/TVtPXT1SOmxlKE8sUik7ZWxzZXt0cnl7ei51bnNhZmU/TVtPXSYmKEs9ITApOmRlbGV0ZSBNW09dfWNhdGNoe31LP01bT109Ujp4LmYoTSxPLHt2YWx1ZTpSLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiF6Lm5vbkNv'@; put 'bmZpZ3VyYWJsZSx3cml0YWJsZTohei5ub25Xcml0YWJsZX0pfXJldHVybiBNfX0sNzM0NzA6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDcwNzA1KSx4PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTthdC5leHBvcnRzPWZ1bmN0aW9uKG0sbGUpe3RyeXt4KGFlLG0se3ZhbHVlOmxl'@; put 'LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoe2FlW21dPWxlfXJldHVybiBsZX19LDQ2Mjg6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDk0Njc2KSx4PVR5cGVFcnJvcjthdC5leHBvcnRzPWZ1bmN0aW9uKG0sbGUpe2lmKCFkZWxldGUgbVtsZV0pdGhyb3cg'@; put 'eCgiQ2Fubm90IGRlbGV0ZSBwcm9wZXJ0eSAiK2FlKGxlKSsiIG9mICIrYWUobSkpfX0sODU2MjQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDIzNTIzKTthdC5leHBvcnRzPSFhZShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0'@; put 'OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KX0sMzEyNzA6YXQ9PnsidXNlIHN0cmljdCI7dmFyIEllPSJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmFsbDthdC5leHBvcnRzPXthbGw6SWUsSVNfSFRNTEREQTp0eXBlb2YgSWU+InUiJiZ2b2lkIDAhPT1JZX19LDQ2MzEz'@; put 'OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig3MDcwNSkseD1GKDEzODQ5KSxtPWFlLmRvY3VtZW50LGxlPXgobSkmJngobS5jcmVhdGVFbGVtZW50KTthdC5leHBvcnRzPWZ1bmN0aW9uKE0pe3JldHVybiBsZT9tLmNyZWF0ZUVsZW1lbnQoTSk6e319fSwyMzEyNDphdD0+eyJ1'@; put 'c2Ugc3RyaWN0Ijt2YXIgSWU9VHlwZUVycm9yO2F0LmV4cG9ydHM9ZnVuY3Rpb24oYWUpe2lmKGFlPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgSWUoIk1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIpO3JldHVybiBhZX19LDgzNDYwOmF0PT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9'@; put 'ImZ1bmN0aW9uIj09dHlwZW9mIEJ1biYmQnVuJiYic3RyaW5nIj09dHlwZW9mIEJ1bi52ZXJzaW9ufSw3ODUyMDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNzc4MzkpO2F0LmV4cG9ydHM9Lyg/OmlwYWR8aXBob25lfGlwb2QpLiphcHBsZXdlYmtpdC9pLnRlc3QoYWUpfSw4'@; put 'NzI0NDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoOTQ3MjMpO2F0LmV4cG9ydHM9dHlwZW9mIHByb2Nlc3M8InUiJiYicHJvY2VzcyI9PWFlKHByb2Nlc3MpfSw3NzgzOTphdD0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPXR5cGVvZiBuYXZpZ2F0b3I8InUiJiZTdHJpbmco'@; put 'bmF2aWdhdG9yLnVzZXJBZ2VudCl8fCIifSwyOTM4NTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIFIseixhZT1GKDcwNzA1KSx4PUYoNzc4MzkpLG09YWUucHJvY2VzcyxsZT1hZS5EZW5vLE09bSYmbS52ZXJzaW9uc3x8bGUmJmxlLnZlcnNpb24sTz1NJiZNLnY4O08mJih6PShSPU8u'@; put 'c3BsaXQoIi4iKSlbMF0+MCYmUlswXTw0PzE6KyhSWzBdK1JbMV0pKSwheiYmeCYmKCEoUj14Lm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8UlsxXT49NzQpJiYoUj14Lm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYoej0rUlsxXSksYXQuZXhwb3J0cz16fSw0NzgzMzphdD0+eyJ1c2Ugc3RyaWN0'@; put 'IjthdC5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDIzNzA1OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig2'@; put 'NjEzKSx4PUVycm9yLG09YWUoIiIucmVwbGFjZSksbGU9U3RyaW5nKHgoInp4Y2FzZCIpLnN0YWNrKSxNPS9cblxzKmF0IFteOl0qOlteXG5dKi8sTz1NLnRlc3QobGUpO2F0LmV4cG9ydHM9ZnVuY3Rpb24oUix6KXtpZihPJiYic3RyaW5nIj09dHlwZW9mIFImJiF4LnByZXBhcmVTdGFja1Ry'@; put 'YWNlKWZvcig7ei0tOylSPW0oUixNLCIiKTtyZXR1cm4gUn19LDg3ODc3OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigxNjAxNykseD1GKDIzNzA1KSxtPUYoNDE0MTMpLGxlPUVycm9yLmNhcHR1cmVTdGFja1RyYWNlO2F0LmV4cG9ydHM9ZnVuY3Rpb24oTSxPLFIseil7bSYm'@; put 'KGxlP2xlKE0sTyk6YWUoTSwic3RhY2siLHgoUix6KSkpfX0sNDE0MTM6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDIzNTIzKSx4PUYoNzM5MjApO2F0LmV4cG9ydHM9IWFlKGZ1bmN0aW9uKCl7dmFyIG09RXJyb3IoImEiKTtyZXR1cm4hKCJzdGFjayJpbiBtKXx8KE9iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShtLCJzdGFjayIseCgxLDcpKSw3IT09bS5zdGFjayl9KX0sODU2NDg6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDcwNzA1KSx4PUYoNDc5ODcpLmYsbT1GKDE2MDE3KSxsZT1GKDI1NjY2KSxNPUYoNzM0NzApLE89Rig3NzU0OCksUj1GKDY3NTA3'@; put 'KTthdC5leHBvcnRzPWZ1bmN0aW9uKHosSyl7dmFyIFYsQixZLFgsVSxJPXoudGFyZ2V0LGs9ei5nbG9iYWwsRT16LnN0YXQ7aWYoVj1rP2FlOkU/YWVbSV18fE0oSSx7fSk6KGFlW0ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIEspe2lmKFg9S1tCXSxZPXouZG9udENhbGxHZXRTZXQ/KFU9'@; put 'eChWLEIpKSYmVS52YWx1ZTpWW0JdLCFSKGs/QjpJKyhFPyIuIjoiIyIpK0Isei5mb3JjZWQpJiZ2b2lkIDAhPT1ZKXtpZih0eXBlb2YgWD09dHlwZW9mIFkpY29udGludWU7TyhYLFkpfSh6LnNoYW18fFkmJlkuc2hhbSkmJm0oWCwic2hhbSIsITApLGxlKFYsQixYLHopfX19LDIzNTIzOmF0'@; put 'PT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9ZnVuY3Rpb24oSWUpe3RyeXtyZXR1cm4hIUllKCl9Y2F0Y2h7cmV0dXJuITB9fX0sMTEzMDY6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDM2NTYxKSx4PUZ1bmN0aW9uLnByb3RvdHlwZSxtPXguYXBwbHksbGU9eC5jYWxsO2F0'@; put 'LmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwoYWU/bGUuYmluZChtKTpmdW5jdGlvbigpe3JldHVybiBsZS5hcHBseShtLGFyZ3VtZW50cyl9KX0sODU0OTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMTE1MSkseD1GKDgxNDUwKSxt'@; put 'PUYoMzY1NjEpLGxlPWFlKGFlLmJpbmQpO2F0LmV4cG9ydHM9ZnVuY3Rpb24oTSxPKXtyZXR1cm4geChNKSx2b2lkIDA9PT1PP006bT9sZShNLE8pOmZ1bmN0aW9uKCl7cmV0dXJuIE0uYXBwbHkoTyxhcmd1bWVudHMpfX19LDM2NTYxOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9'@; put 'RigyMzUyMyk7YXQuZXhwb3J0cz0hYWUoZnVuY3Rpb24oKXt2YXIgeD1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB4fHx4Lmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pfSwzNTYyOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigzNjU2'@; put 'MSkseD1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDthdC5leHBvcnRzPWFlP3guYmluZCh4KTpmdW5jdGlvbigpe3JldHVybiB4LmFwcGx5KHgsYXJndW1lbnRzKX19LDEzODY5OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig4NTYyNCkseD1GKDQ4ODExKSxtPUZ1bmN0aW9uLnBy'@; put 'b3RvdHlwZSxsZT1hZSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixNPXgobSwibmFtZSIpLE89TSYmInNvbWV0aGluZyI9PT1mdW5jdGlvbigpe30ubmFtZSxSPU0mJighYWV8fGFlJiZsZShtLCJuYW1lIikuY29uZmlndXJhYmxlKTthdC5leHBvcnRzPXtFWElTVFM6TSxQUk9Q'@; put 'RVI6TyxDT05GSUdVUkFCTEU6Un19LDQ1OTM4OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig2NjEzKSx4PUYoODE0NTApO2F0LmV4cG9ydHM9ZnVuY3Rpb24obSxsZSxNKXt0cnl7cmV0dXJuIGFlKHgoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLGxlKVtNXSkp'@; put 'fWNhdGNoe319fSwxMTUxOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig5NDcyMykseD1GKDY2MTMpO2F0LmV4cG9ydHM9ZnVuY3Rpb24obSl7aWYoIkZ1bmN0aW9uIj09PWFlKG0pKXJldHVybiB4KG0pfX0sNjYxMzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYo'@; put 'MzY1NjEpLHg9RnVuY3Rpb24ucHJvdG90eXBlLG09eC5jYWxsLGxlPWFlJiZ4LmJpbmQuYmluZChtLG0pO2F0LmV4cG9ydHM9YWU/bGU6ZnVuY3Rpb24oTSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG0uYXBwbHkoTSxhcmd1bWVudHMpfX19LDQ2NjkzOihhdCxJZSxGKT0+eyJ1c2Ugc3Ry'@; put 'aWN0Ijt2YXIgYWU9Rig3MDcwNSkseD1GKDEyMDE0KTthdC5leHBvcnRzPWZ1bmN0aW9uKGxlLE0pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/ZnVuY3Rpb24obGUpe3JldHVybiB4KGxlKT9sZTp2b2lkIDB9KGFlW2xlXSk6YWVbbGVdJiZhZVtsZV1bTV19fSwzODU4NjooYXQsSWUsRik9'@; put 'PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjYxMykseD1GKDI5MTA2KSxtPUYoMTIwMTQpLGxlPUYoOTQ3MjMpLE09Rig5MjEpLE89YWUoW10ucHVzaCk7YXQuZXhwb3J0cz1mdW5jdGlvbihSKXtpZihtKFIpKXJldHVybiBSO2lmKHgoUikpe2Zvcih2YXIgej1SLmxlbmd0aCxLPVtdLEk9MDtJ'@; put 'PHo7SSsrKXt2YXIgaz1SW0ldOyJzdHJpbmciPT10eXBlb2Ygaz9PKEssayk6KCJudW1iZXIiPT10eXBlb2Yga3x8Ik51bWJlciI9PWxlKGspfHwiU3RyaW5nIj09bGUoaykpJiZPKEssTShrKSl9dmFyIEU9Sy5sZW5ndGgsaj0hMDtyZXR1cm4gZnVuY3Rpb24oVixCKXtpZihqKXJldHVybiBq'@; put 'PSExLEI7aWYoeCh0aGlzKSlyZXR1cm4gQjtmb3IodmFyIFk9MDtZPEU7WSsrKWlmKEtbWV09PT1WKXJldHVybiBCfX19fSwyMDk0ODooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoODE0NTApLHg9Rig2Mzc0KTthdC5leHBvcnRzPWZ1bmN0aW9uKG0sbGUpe3ZhciBNPW1bbGVd'@; put 'O3JldHVybiB4KE0pP3ZvaWQgMDphZShNKX19LDcwNzA1OmZ1bmN0aW9uKGF0KXsidXNlIHN0cmljdCI7dmFyIEllPWZ1bmN0aW9uKEYpe3JldHVybiBGJiZGLk1hdGg9PU1hdGgmJkZ9O2F0LmV4cG9ydHM9SWUoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8SWUo'@; put 'Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fEllKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fEllKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHx0aGlzfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSw0'@; put 'ODgxMTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjYxMykseD1GKDY4MDcxKSxtPWFlKHt9Lmhhc093blByb3BlcnR5KTthdC5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKE0sTyl7cmV0dXJuIG0oeChNKSxPKX19LDE5OTA5OmF0PT57InVzZSBzdHJpY3QiO2F0'@; put 'LmV4cG9ydHM9e319LDU5NDA2OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig0NjY5Myk7YXQuZXhwb3J0cz1hZSgiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKX0sOTQ2NzU6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg1NjI0KSx4PUYoMjM1MjMpLG09'@; put 'Rig0NjMxMyk7YXQuZXhwb3J0cz0hYWUmJiF4KGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShtKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KX0sNTY2MDc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDY2MTMpLHg9'@; put 'RigyMzUyMyksbT1GKDk0NzIzKSxsZT1PYmplY3QsTT1hZSgiIi5zcGxpdCk7YXQuZXhwb3J0cz14KGZ1bmN0aW9uKCl7cmV0dXJuIWxlKCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbihPKXtyZXR1cm4iU3RyaW5nIj09bShPKT9NKE8sIiIpOmxlKE8pfTpsZX0sNTE4'@; put 'NDk6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDEyMDE0KSx4PUYoMTM4NDkpLG09RigxOTU4Nyk7YXQuZXhwb3J0cz1mdW5jdGlvbihsZSxNLE8pe3ZhciBSLHo7cmV0dXJuIG0mJmFlKFI9TS5jb25zdHJ1Y3RvcikmJlIhPT1PJiZ4KHo9Ui5wcm90b3R5cGUpJiZ6IT09Ty5w'@; put 'cm90b3R5cGUmJm0obGUseiksbGV9fSw1NzM3MTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjYxMykseD1GKDEyMDE0KSxtPUYoODEwNjkpLGxlPWFlKEZ1bmN0aW9uLnRvU3RyaW5nKTt4KG0uaW5zcGVjdFNvdXJjZSl8fChtLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24oTSl7'@; put 'cmV0dXJuIGxlKE0pfSksYXQuZXhwb3J0cz1tLmluc3BlY3RTb3VyY2V9LDQ5NDI3OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigxMzg0OSkseD1GKDE2MDE3KTthdC5leHBvcnRzPWZ1bmN0aW9uKG0sbGUpe2FlKGxlKSYmImNhdXNlImluIGxlJiZ4KG0sImNhdXNlIixsZS5j'@; put 'YXVzZSl9fSw3Mjc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBFLGosVixhZT1GKDE3NTQyKSx4PUYoNzA3MDUpLG09RigxMzg0OSksbGU9RigxNjAxNyksTT1GKDQ4ODExKSxPPUYoODEwNjkpLFI9RigyNzIzMCksej1GKDE5OTA5KSxLPSJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXpl'@; put 'ZCIsST14LlR5cGVFcnJvcjtpZihhZXx8Ty5zdGF0ZSl7dmFyIFg9Ty5zdGF0ZXx8KE8uc3RhdGU9bmV3KDAseC5XZWFrTWFwKSk7WC5nZXQ9WC5nZXQsWC5oYXM9WC5oYXMsWC5zZXQ9WC5zZXQsRT1mdW5jdGlvbihxLGVlKXtpZihYLmhhcyhxKSl0aHJvdyBJKEspO3JldHVybiBlZS5mYWNh'@; put 'ZGU9cSxYLnNldChxLGVlKSxlZX0saj1mdW5jdGlvbihxKXtyZXR1cm4gWC5nZXQocSl8fHt9fSxWPWZ1bmN0aW9uKHEpe3JldHVybiBYLmhhcyhxKX19ZWxzZXt2YXIgVT1SKCJzdGF0ZSIpO3pbVV09ITAsRT1mdW5jdGlvbihxLGVlKXtpZihNKHEsVSkpdGhyb3cgSShLKTtyZXR1cm4gZWUu'@; put 'ZmFjYWRlPXEsbGUocSxVLGVlKSxlZX0saj1mdW5jdGlvbihxKXtyZXR1cm4gTShxLFUpP3FbVV06e319LFY9ZnVuY3Rpb24ocSl7cmV0dXJuIE0ocSxVKX19YXQuZXhwb3J0cz17c2V0OkUsZ2V0OmosaGFzOlYsZW5mb3JjZTpmdW5jdGlvbihxKXtyZXR1cm4gVihxKT9qKHEpOkUocSx7fSl9'@; put 'LGdldHRlckZvcjpmdW5jdGlvbihxKXtyZXR1cm4gZnVuY3Rpb24oZWUpe3ZhciB0ZTtpZighbShlZSl8fCh0ZT1qKGVlKSkudHlwZSE9PXEpdGhyb3cgSSgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3ErIiByZXF1aXJlZCIpO3JldHVybiB0ZX19fX0sMjkxMDY6KGF0LEllLEYpPT57InVz'@; put 'ZSBzdHJpY3QiO3ZhciBhZT1GKDk0NzIzKTthdC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKG0pe3JldHVybiJBcnJheSI9PWFlKG0pfX0sMTIwMTQ6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDMxMjcwKSx4PWFlLmFsbDthdC5leHBvcnRzPWFlLklTX0hUTUxE'@; put 'REE/ZnVuY3Rpb24obSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG18fG09PT14fTpmdW5jdGlvbihtKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbX19LDY3NTA3OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigyMzUyMykseD1GKDEyMDE0KSxtPS8jfFwucHJvdG90eXBl'@; put 'XC4vLGxlPWZ1bmN0aW9uKEssSSl7dmFyIGs9T1tNKEspXTtyZXR1cm4gaz09enx8ayE9UiYmKHgoSSk/YWUoSSk6ISFJKX0sTT1sZS5ub3JtYWxpemU9ZnVuY3Rpb24oSyl7cmV0dXJuIFN0cmluZyhLKS5yZXBsYWNlKG0sIi4iKS50b0xvd2VyQ2FzZSgpfSxPPWxlLmRhdGE9e30sUj1sZS5O'@; put 'QVRJVkU9Ik4iLHo9bGUuUE9MWUZJTEw9IlAiO2F0LmV4cG9ydHM9bGV9LDYzNzQ6YXQ9PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz1mdW5jdGlvbihJZSl7cmV0dXJuIG51bGw9PUllfX0sMTM4NDk6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDEyMDE0KSx4PUYoMzEyNzAp'@; put 'LG09eC5hbGw7YXQuZXhwb3J0cz14LklTX0hUTUxEREE/ZnVuY3Rpb24obGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgbGU/bnVsbCE9PWxlOmFlKGxlKXx8bGU9PT1tfTpmdW5jdGlvbihsZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBsZT9udWxsIT09bGU6YWUobGUpfX0sMTAwMTc6YXQ9'@; put 'PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz0hMX0sNjk3NTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNDY2OTMpLHg9RigxMjAxNCksbT1GKDM3NDc0KSxsZT1GKDIzOTYxKSxNPU9iamVjdDthdC5leHBvcnRzPWxlP2Z1bmN0aW9uKE8pe3JldHVybiJzeW1ib2wiPT10eXBl'@; put 'b2YgT306ZnVuY3Rpb24oTyl7dmFyIFI9YWUoIlN5bWJvbCIpO3JldHVybiB4KFIpJiZtKFIucHJvdG90eXBlLE0oTykpfX0sNTQ0NTA6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDY1MzE2KTthdC5leHBvcnRzPWZ1bmN0aW9uKHgpe3JldHVybiBhZSh4Lmxlbmd0aCl9fSwz'@; put 'NDQ2ODooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjYxMykseD1GKDIzNTIzKSxtPUYoMTIwMTQpLGxlPUYoNDg4MTEpLE09Rig4NTYyNCksTz1GKDEzODY5KS5DT05GSUdVUkFCTEUsUj1GKDU3MzcxKSx6PUYoNzI3KSxLPXouZW5mb3JjZSxJPXouZ2V0LGs9U3RyaW5nLEU9'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5LGo9YWUoIiIuc2xpY2UpLFY9YWUoIiIucmVwbGFjZSksQj1hZShbXS5qb2luKSxZPU0mJiF4KGZ1bmN0aW9uKCl7cmV0dXJuIDghPT1FKGZ1bmN0aW9uKCl7fSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pLFg9U3RyaW5nKFN0cmluZykuc3BsaXQo'@; put 'IlN0cmluZyIpLFU9YXQuZXhwb3J0cz1mdW5jdGlvbihxLGVlLHRlKXsiU3ltYm9sKCI9PT1qKGsoZWUpLDAsNykmJihlZT0iWyIrVihrKGVlKSwvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLHRlJiZ0ZS5nZXR0ZXImJihlZT0iZ2V0ICIrZWUpLHRlJiZ0ZS5zZXR0ZXImJihlZT0i'@; put 'c2V0ICIrZWUpLCghbGUocSwibmFtZSIpfHxPJiZxLm5hbWUhPT1lZSkmJihNP0UocSwibmFtZSIse3ZhbHVlOmVlLGNvbmZpZ3VyYWJsZTohMH0pOnEubmFtZT1lZSksWSYmdGUmJmxlKHRlLCJhcml0eSIpJiZxLmxlbmd0aCE9PXRlLmFyaXR5JiZFKHEsImxlbmd0aCIse3ZhbHVlOnRlLmFy'@; put 'aXR5fSk7dHJ5e3RlJiZsZSh0ZSwiY29uc3RydWN0b3IiKSYmdGUuY29uc3RydWN0b3I/TSYmRShxLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOnEucHJvdG90eXBlJiYocS5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaHt9dmFyIG9lPUsocSk7cmV0dXJuIGxlKG9lLCJzb3VyY2UiKXx8KG9l'@; put 'LnNvdXJjZT1CKFgsInN0cmluZyI9PXR5cGVvZiBlZT9lZToiIikpLHF9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1VKGZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcykmJkkodGhpcykuc291cmNlfHxSKHRoaXMpfSwidG9TdHJpbmciKX0sODQ3NDQ6YXQ9PnsidXNlIHN0cmljdCI7dmFy'@; put 'IEllPU1hdGguY2VpbCxGPU1hdGguZmxvb3I7YXQuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbih4KXt2YXIgbT0reDtyZXR1cm4obT4wP0Y6SWUpKG0pfX0sODIxNDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoOTIxKTthdC5leHBvcnRzPWZ1bmN0aW9uKHgsbSl7cmV0'@; put 'dXJuIHZvaWQgMD09PXg/YXJndW1lbnRzLmxlbmd0aDwyPyIiOm06YWUoeCl9fSw3NDQxMDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIFgsYWU9Rig1ODY0NykseD1GKDc3MzI4KSxtPUYoNDc4MzMpLGxlPUYoMTk5MDkpLE09Rig1OTQwNiksTz1GKDQ2MzEzKSxSPUYoMjcyMzApLEk9'@; put 'InByb3RvdHlwZSIsaz0ic2NyaXB0IixFPVIoIklFX1BST1RPIiksaj1mdW5jdGlvbigpe30sVj1mdW5jdGlvbihxKXtyZXR1cm4iPCIraysiPiIrcSsiPC8iK2srIj4ifSxCPWZ1bmN0aW9uKHEpe3Eud3JpdGUoVigiIikpLHEuY2xvc2UoKTt2YXIgZWU9cS5wYXJlbnRXaW5kb3cuT2JqZWN0'@; put 'O3JldHVybiBxPW51bGwsZWV9LFU9ZnVuY3Rpb24oKXt0cnl7WD1uZXcgQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKX1jYXRjaHt9VT10eXBlb2YgZG9jdW1lbnQ8InUiP2RvY3VtZW50LmRvbWFpbiYmWD9CKFgpOmZ1bmN0aW9uKCl7dmFyIHRlLHE9TygiaWZyYW1lIiksZWU9ImphdmEiK2sr'@; put 'IjoiO3JldHVybiBxLnN0eWxlLmRpc3BsYXk9Im5vbmUiLE0uYXBwZW5kQ2hpbGQocSkscS5zcmM9U3RyaW5nKGVlKSwodGU9cS5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksdGUud3JpdGUoVigiZG9jdW1lbnQuRj1PYmplY3QiKSksdGUuY2xvc2UoKSx0ZS5GfSgpOkIoWCk7Zm9y'@; put 'KHZhciBxPW0ubGVuZ3RoO3EtLTspZGVsZXRlIFVbSV1bbVtxXV07cmV0dXJuIFUoKX07bGVbRV09ITAsYXQuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihlZSx0ZSl7dmFyIG9lO3JldHVybiBudWxsIT09ZWU/KGpbSV09YWUoZWUpLG9lPW5ldyBqLGpbSV09bnVsbCxvZVtFXT1l'@; put 'ZSk6b2U9VSgpLHZvaWQgMD09PXRlP29lOnguZihvZSx0ZSl9fSw3NzMyODooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoODU2MjQpLHg9RigyMDExOCksbT1GKDUxMTgzKSxsZT1GKDU4NjQ3KSxNPUYoNTAzMjcpLE89RigxNDU0NSk7SWUuZj1hZSYmIXg/T2JqZWN0LmRlZmlu'@; put 'ZVByb3BlcnRpZXM6ZnVuY3Rpb24oeixLKXtsZSh6KTtmb3IodmFyIFYsST1NKEspLGs9TyhLKSxFPWsubGVuZ3RoLGo9MDtFPmo7KW0uZih6LFY9a1tqKytdLElbVl0pO3JldHVybiB6fX0sNTExODM6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg1NjI0KSx4PUYoOTQ2NzUp'@; put 'LG09RigyMDExOCksbGU9Rig1ODY0NyksTT1GKDg0MDk0KSxPPVR5cGVFcnJvcixSPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSx6PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsSz0iZW51bWVyYWJsZSIsST0iY29uZmlndXJhYmxlIixrPSJ3cml0YWJsZSI7SWUuZj1hZT9tP2Z1bmN0'@; put 'aW9uKGosVixCKXtpZihsZShqKSxWPU0oViksbGUoQiksImZ1bmN0aW9uIj09dHlwZW9mIGomJiJwcm90b3R5cGUiPT09ViYmInZhbHVlImluIEImJmsgaW4gQiYmIUJba10pe3ZhciBZPXooaixWKTtZJiZZW2tdJiYoaltWXT1CLnZhbHVlLEI9e2NvbmZpZ3VyYWJsZTpJIGluIEI/QltJXTpZ'@; put 'W0ldLGVudW1lcmFibGU6SyBpbiBCP0JbS106WVtLXSx3cml0YWJsZTohMX0pfXJldHVybiBSKGosVixCKX06UjpmdW5jdGlvbihqLFYsQil7aWYobGUoaiksVj1NKFYpLGxlKEIpLHgpdHJ5e3JldHVybiBSKGosVixCKX1jYXRjaHt9aWYoImdldCJpbiBCfHwic2V0ImluIEIpdGhyb3cgTygi'@; put 'QWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gQiYmKGpbVl09Qi52YWx1ZSksan19LDQ3OTg3OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig4NTYyNCkseD1GKDM1NjIpLG09Rig0NjkwMSksbGU9Rig3MzkyMCksTT1GKDUwMzI3KSxPPUYoODQwOTQp'@; put 'LFI9Rig0ODgxMSksej1GKDk0Njc1KSxLPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7SWUuZj1hZT9LOmZ1bmN0aW9uKGssRSl7aWYoaz1NKGspLEU9TyhFKSx6KXRyeXtyZXR1cm4gSyhrLEUpfWNhdGNoe31pZihSKGssRSkpcmV0dXJuIGxlKCF4KG0uZixrLEUpLGtbRV0pfX0s'@; put 'NzU0MzE6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI0OTY3KSxtPUYoNDc4MzMpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7SWUuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oTSl7cmV0dXJuIGFlKE0sbSl9fSw1NTM0OihhdCxJZSk9Pnsi'@; put 'dXNlIHN0cmljdCI7SWUuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSwzNzQ3NDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjYxMyk7YXQuZXhwb3J0cz1hZSh7fS5pc1Byb3RvdHlwZU9mKX0sMjQ5Njc6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1G'@; put 'KDY2MTMpLHg9Rig0ODgxMSksbT1GKDUwMzI3KSxsZT1GKDM2MzA1KS5pbmRleE9mLE09RigxOTkwOSksTz1hZShbXS5wdXNoKTthdC5leHBvcnRzPWZ1bmN0aW9uKFIseil7dmFyIEUsSz1tKFIpLEk9MCxrPVtdO2ZvcihFIGluIEspIXgoTSxFKSYmeChLLEUpJiZPKGssRSk7Zm9yKDt6Lmxl'@; put 'bmd0aD5JOyl4KEssRT16W0krK10pJiYofmxlKGssRSl8fE8oayxFKSk7cmV0dXJuIGt9fSwxNDU0NTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMjQ5NjcpLHg9Rig0NzgzMyk7YXQuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24obGUpe3JldHVybiBhZShsZSx4KX19'@; put 'LDQ2OTAxOihhdCxJZSk9PnsidXNlIHN0cmljdCI7dmFyIEY9e30ucHJvcGVydHlJc0VudW1lcmFibGUsYWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix4PWFlJiYhRi5jYWxsKHsxOjJ9LDEpO0llLmY9eD9mdW5jdGlvbihsZSl7dmFyIE09YWUodGhpcyxsZSk7cmV0dXJuISFN'@; put 'JiZNLmVudW1lcmFibGV9OkZ9LDE5NTg3OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig0NTkzOCkseD1GKDU4NjQ3KSxtPUYoNzAwOCk7YXQuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgTyxsZT0hMSxNPXt9'@; put 'O3RyeXsoTz1hZShPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKSkoTSxbXSksbGU9TSBpbnN0YW5jZW9mIEFycmF5fWNhdGNoe31yZXR1cm4gZnVuY3Rpb24oeixLKXtyZXR1cm4geCh6KSxtKEspLGxlP08oeixLKTp6Ll9fcHJvdG9fXz1LLHp9fSgpOnZvaWQgMCl9LDYzNDE1'@; put 'OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigzNTYyKSx4PUYoMTIwMTQpLG09RigxMzg0OSksbGU9VHlwZUVycm9yO2F0LmV4cG9ydHM9ZnVuY3Rpb24oTSxPKXt2YXIgUix6O2lmKCJzdHJpbmciPT09TyYmeChSPU0udG9TdHJpbmcpJiYhbSh6PWFlKFIsTSkpfHx4KFI9TS52'@; put 'YWx1ZU9mKSYmIW0oej1hZShSLE0pKXx8InN0cmluZyIhPT1PJiZ4KFI9TS50b1N0cmluZykmJiFtKHo9YWUoUixNKSkpcmV0dXJuIHo7dGhyb3cgbGUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sMjExOTk6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3Zh'@; put 'ciBhZT1GKDQ2NjkzKSx4PUYoNjYxMyksbT1GKDc1NDMxKSxsZT1GKDU1MzQpLE09Rig1ODY0NyksTz14KFtdLmNvbmNhdCk7YXQuZXhwb3J0cz1hZSgiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24oeil7dmFyIEs9bS5mKE0oeikpLEk9bGUuZjtyZXR1cm4gST9PKEssSSh6KSk6S319'@; put 'LDkyNDAwOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig1MTE4MykuZjthdC5leHBvcnRzPWZ1bmN0aW9uKHgsbSxsZSl7bGUgaW4geHx8YWUoeCxsZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBtW2xlXX0sc2V0OmZ1bmN0aW9uKE0pe21bbGVdPU19'@; put 'fSl9fSwyNDU3MjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjM3NCkseD1UeXBlRXJyb3I7YXQuZXhwb3J0cz1mdW5jdGlvbihtKXtpZihhZShtKSl0aHJvdyB4KCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK20pO3JldHVybiBtfX0sOTU4OTU6KGF0LEllLEYpPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBJLGFlPUYoNzA3MDUpLHg9RigxMTMwNiksbT1GKDEyMDE0KSxsZT1GKDgzNDYwKSxNPUYoNzc4MzkpLE89Rig0MDkzMCksUj1GKDc5NTQ1KSx6PWFlLkZ1bmN0aW9uLEs9L01TSUUgLlwuLy50ZXN0KE0pfHxsZSYmKChJPWFlLkJ1bi52ZXJzaW9uLnNwbGl0KCIuIikpLmxl'@; put 'bmd0aDwzfHwwPT1JWzBdJiYoSVsxXTwzfHwzPT1JWzFdJiYwPT1JWzJdKSk7YXQuZXhwb3J0cz1mdW5jdGlvbihJLGspe3ZhciBFPWs/MjoxO3JldHVybiBLP2Z1bmN0aW9uKGosVil7dmFyIEI9Uihhcmd1bWVudHMubGVuZ3RoLDEpPkUsWT1tKGopP2o6eihqKSxYPUI/Tyhhcmd1bWVudHMs'@; put 'RSk6W10sVT1CP2Z1bmN0aW9uKCl7eChZLHRoaXMsWCl9Olk7cmV0dXJuIGs/SShVLFYpOkkoVSl9Okl9fSwyNzIzMDooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNjg4MzUpLHg9Rig1MjgxMCksbT1hZSgia2V5cyIpO2F0LmV4cG9ydHM9ZnVuY3Rpb24obGUpe3JldHVybiBt'@; put 'W2xlXXx8KG1bbGVdPXgobGUpKX19LDgxMDY5OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig3MDcwNSkseD1GKDczNDcwKSxtPSJfX2NvcmUtanNfc2hhcmVkX18iLGxlPWFlW21dfHx4KG0se30pO2F0LmV4cG9ydHM9bGV9LDY4ODM1OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgYWU9RigxMDAxNykseD1GKDgxMDY5KTsoYXQuZXhwb3J0cz1mdW5jdGlvbihtLGxlKXtyZXR1cm4geFttXXx8KHhbbV09dm9pZCAwIT09bGU/bGU6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4zMi4wIixtb2RlOmFlPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmln'@; put 'aHQ6Ilx4YTkgMjAxNC0yMDIzIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjMyLjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0s'@; put 'MjkzMzk6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDI5Mzg1KSx4PUYoMjM1MjMpLGxlPUYoNzA3MDUpLlN0cmluZzthdC5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXgoZnVuY3Rpb24oKXt2YXIgTT1TeW1ib2woKTtyZXR1cm4hbGUoTSl8fCEo'@; put 'T2JqZWN0KE0paW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJmFlJiZhZTw0MX0pfSw1NTI2MTooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIHNlLGhlLHVlLGNlLGFlPUYoNzA3MDUpLHg9RigxMTMwNiksbT1GKDg1NDkpLGxlPUYoMTIwMTQpLE09Rig0ODgxMSksTz1GKDIz'@; put 'NTIzKSxSPUYoNTk0MDYpLHo9Rig0MDkzMCksSz1GKDQ2MzEzKSxJPUYoNzk1NDUpLGs9Rig3ODUyMCksRT1GKDg3MjQ0KSxqPWFlLnNldEltbWVkaWF0ZSxWPWFlLmNsZWFySW1tZWRpYXRlLEI9YWUucHJvY2VzcyxZPWFlLkRpc3BhdGNoLFg9YWUuRnVuY3Rpb24sVT1hZS5NZXNzYWdlQ2hh'@; put 'bm5lbCxxPWFlLlN0cmluZyxlZT0wLHRlPXt9LG9lPSJvbnJlYWR5c3RhdGVjaGFuZ2UiO08oZnVuY3Rpb24oKXtzZT1hZS5sb2NhdGlvbn0pO3ZhciBHPWZ1bmN0aW9uKE4pe2lmKE0odGUsTikpe3ZhciBnPXRlW05dO2RlbGV0ZSB0ZVtOXSxnKCl9fSxiPWZ1bmN0aW9uKE4pe3JldHVybiBm'@; put 'dW5jdGlvbigpe0coTil9fSxEPWZ1bmN0aW9uKE4pe0coTi5kYXRhKX0sSD1mdW5jdGlvbihOKXthZS5wb3N0TWVzc2FnZShxKE4pLHNlLnByb3RvY29sKyIvLyIrc2UuaG9zdCl9Oyghanx8IVYpJiYoaj1mdW5jdGlvbihnKXtJKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIEM9bGUoZyk/ZzpY'@; put 'KGcpLFM9eihhcmd1bWVudHMsMSk7cmV0dXJuIHRlWysrZWVdPWZ1bmN0aW9uKCl7eChDLHZvaWQgMCxTKX0saGUoZWUpLGVlfSxWPWZ1bmN0aW9uKGcpe2RlbGV0ZSB0ZVtnXX0sRT9oZT1mdW5jdGlvbihOKXtCLm5leHRUaWNrKGIoTikpfTpZJiZZLm5vdz9oZT1mdW5jdGlvbihOKXtZLm5v'@; put 'dyhiKE4pKX06VSYmIWs/KGNlPSh1ZT1uZXcgVSkucG9ydDIsdWUucG9ydDEub25tZXNzYWdlPUQsaGU9bShjZS5wb3N0TWVzc2FnZSxjZSkpOmFlLmFkZEV2ZW50TGlzdGVuZXImJmxlKGFlLnBvc3RNZXNzYWdlKSYmIWFlLmltcG9ydFNjcmlwdHMmJnNlJiYiZmlsZToiIT09c2UucHJvdG9j'@; put 'b2wmJiFPKEgpPyhoZT1ILGFlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEQsITEpKTpoZT1vZSBpbiBLKCJzY3JpcHQiKT9mdW5jdGlvbihOKXtSLmFwcGVuZENoaWxkKEsoInNjcmlwdCIpKVtvZV09ZnVuY3Rpb24oKXtSLnJlbW92ZUNoaWxkKHRoaXMpLEcoTil9fTpmdW5jdGlvbihO'@; put 'KXtzZXRUaW1lb3V0KGIoTiksMCl9KSxhdC5leHBvcnRzPXtzZXQ6aixjbGVhcjpWfX0sNzYxNjM6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDQwNzAyKSx4PU1hdGgubWF4LG09TWF0aC5taW47YXQuZXhwb3J0cz1mdW5jdGlvbihsZSxNKXt2YXIgTz1hZShsZSk7cmV0dXJu'@; put 'IE88MD94KE8rTSwwKTptKE8sTSl9fSw1MDMyNzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNTY2MDcpLHg9RigyNDU3Mik7YXQuZXhwb3J0cz1mdW5jdGlvbihtKXtyZXR1cm4gYWUoeChtKSl9fSw0MDcwMjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoODQ3'@; put 'NDQpO2F0LmV4cG9ydHM9ZnVuY3Rpb24oeCl7dmFyIG09K3g7cmV0dXJuIG0hPW18fDA9PT1tPzA6YWUobSl9fSw2NTMxNjooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNDA3MDIpLHg9TWF0aC5taW47YXQuZXhwb3J0cz1mdW5jdGlvbihtKXtyZXR1cm4gbT4wP3goYWUobSks'@; put 'OTAwNzE5OTI1NDc0MDk5MSk6MH19LDY4MDcxOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigyNDU3MikseD1PYmplY3Q7YXQuZXhwb3J0cz1mdW5jdGlvbihtKXtyZXR1cm4geChhZShtKSl9fSw3NTUzNzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoMzU2Miks'@; put 'eD1GKDEzODQ5KSxtPUYoNjk3NSksbGU9RigyMDk0OCksTT1GKDYzNDE1KSxPPUYoMjU0NiksUj1UeXBlRXJyb3Isej1PKCJ0b1ByaW1pdGl2ZSIpO2F0LmV4cG9ydHM9ZnVuY3Rpb24oSyxJKXtpZigheChLKXx8bShLKSlyZXR1cm4gSzt2YXIgRSxrPWxlKEsseik7aWYoayl7aWYodm9pZCAw'@; put 'PT09SSYmKEk9ImRlZmF1bHQiKSxFPWFlKGssSyxJKSwheChFKXx8bShFKSlyZXR1cm4gRTt0aHJvdyBSKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09SSYmKEk9Im51bWJlciIpLE0oSyxJKX19LDg0MDk0OihhdCxJZSxGKT0+eyJ1'@; put 'c2Ugc3RyaWN0Ijt2YXIgYWU9Rig3NTUzNykseD1GKDY5NzUpO2F0LmV4cG9ydHM9ZnVuY3Rpb24obSl7dmFyIGxlPWFlKG0sInN0cmluZyIpO3JldHVybiB4KGxlKT9sZTpsZSsiIn19LDI3NDkwOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbT17fTttW0YoMjU0NikoInRvU3RyaW5n'@; put 'VGFnIildPSJ6IixhdC5leHBvcnRzPSJbb2JqZWN0IHpdIj09PVN0cmluZyhtKX0sOTIxOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig3OTUyMCkseD1TdHJpbmc7YXQuZXhwb3J0cz1mdW5jdGlvbihtKXtpZigiU3ltYm9sIj09PWFlKG0pKXRocm93IFR5cGVFcnJvcigiQ2Fu'@; put 'bm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmciKTtyZXR1cm4geChtKX19LDk0Njc2OmF0PT57InVzZSBzdHJpY3QiO3ZhciBJZT1TdHJpbmc7YXQuZXhwb3J0cz1mdW5jdGlvbihGKXt0cnl7cmV0dXJuIEllKEYpfWNhdGNoe3JldHVybiJPYmplY3QifX19LDUyODEwOihh'@; put 'dCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig2NjEzKSx4PTAsbT1NYXRoLnJhbmRvbSgpLGxlPWFlKDEuLnRvU3RyaW5nKTthdC5leHBvcnRzPWZ1bmN0aW9uKE0pe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09TT8iIjpNKSsiKV8iK2xlKCsreCttLDM2KX19LDIzOTYxOihhdCxJ'@; put 'ZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9RigyOTMzOSk7YXQuZXhwb3J0cz1hZSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sMjAxMTg6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg1NjI0KSx4PUYoMjM1MjMpO2F0LmV4cG9y'@; put 'dHM9YWUmJngoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe30sInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSl9LDc5NTQ1OmF0PT57InVzZSBzdHJpY3QiO3ZhciBJZT1UeXBlRXJyb3I7YXQuZXhwb3J0'@; put 'cz1mdW5jdGlvbihGLGFlKXtpZihGPGFlKXRocm93IEllKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO3JldHVybiBGfX0sMTc1NDI6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDcwNzA1KSx4PUYoMTIwMTQpLG09YWUuV2Vha01hcDthdC5leHBvcnRzPXgobSkmJi9uYXRpdmUg'@; put 'Y29kZS8udGVzdChTdHJpbmcobSkpfSwyNTQ2OihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig3MDcwNSkseD1GKDY4ODM1KSxtPUYoNDg4MTEpLGxlPUYoNTI4MTApLE09RigyOTMzOSksTz1GKDIzOTYxKSxSPWFlLlN5bWJvbCx6PXgoIndrcyIpLEs9Tz9SLmZvcnx8UjpSJiZS'@; put 'LndpdGhvdXRTZXR0ZXJ8fGxlO2F0LmV4cG9ydHM9ZnVuY3Rpb24oSSl7cmV0dXJuIG0oeixJKXx8KHpbSV09TSYmbShSLEkpP1JbSV06SygiU3ltYm9sLiIrSSkpLHpbSV19fSw2NzY3ODooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoNDY2OTMpLHg9Rig0ODgxMSksbT1GKDE2'@; put 'MDE3KSxsZT1GKDM3NDc0KSxNPUYoMTk1ODcpLE89Rig3NzU0OCksUj1GKDkyNDAwKSx6PUYoNTE4NDkpLEs9Rig4MjE0KSxJPUYoNDk0MjcpLGs9Rig4Nzg3NyksRT1GKDg1NjI0KSxqPUYoMTAwMTcpO2F0LmV4cG9ydHM9ZnVuY3Rpb24oVixCLFksWCl7dmFyIFU9InN0YWNrVHJhY2VMaW1p'@; put 'dCIscT1YPzI6MSxlZT1WLnNwbGl0KCIuIiksdGU9ZWVbZWUubGVuZ3RoLTFdLG9lPWFlLmFwcGx5KG51bGwsZWUpO2lmKG9lKXt2YXIgc2U9b2UucHJvdG90eXBlO2lmKCFqJiZ4KHNlLCJjYXVzZSIpJiZkZWxldGUgc2UuY2F1c2UsIVkpcmV0dXJuIG9lO3ZhciBoZT1hZSgiRXJyb3IiKSx1'@; put 'ZT1CKGZ1bmN0aW9uKGNlLEcpe3ZhciBiPUsoWD9HOmNlLHZvaWQgMCksRD1YP25ldyBvZShjZSk6bmV3IG9lO3JldHVybiB2b2lkIDAhPT1iJiZtKEQsIm1lc3NhZ2UiLGIpLGsoRCx1ZSxELnN0YWNrLDIpLHRoaXMmJmxlKHNlLHRoaXMpJiZ6KEQsdGhpcyx1ZSksYXJndW1lbnRzLmxlbmd0'@; put 'aD5xJiZJKEQsYXJndW1lbnRzW3FdKSxEfSk7aWYodWUucHJvdG90eXBlPXNlLCJFcnJvciIhPT10ZT9NP00odWUsaGUpOk8odWUsaGUse25hbWU6ITB9KTpFJiZVIGluIG9lJiYoUih1ZSxvZSxVKSxSKHVlLG9lLCJwcmVwYXJlU3RhY2tUcmFjZSIpKSxPKHVlLG9lKSwhail0cnl7c2UubmFt'@; put 'ZSE9PXRlJiZtKHNlLCJuYW1lIix0ZSksc2UuY29uc3RydWN0b3I9dWV9Y2F0Y2h7fXJldHVybiB1ZX19fSw1MTAxOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig4NTY0OCkseD1GKDY4MDcxKSxtPUYoNTQ0NTApLGxlPUYoNDA3MDIpLE09Rig3NDk2NSk7YWUoe3RhcmdldDoi'@; put 'QXJyYXkiLHByb3RvOiEwfSx7YXQ6ZnVuY3Rpb24oUil7dmFyIHo9eCh0aGlzKSxLPW0oeiksST1sZShSKSxrPUk+PTA/STpLK0k7cmV0dXJuIGs8MHx8az49Sz92b2lkIDA6eltrXX19KSxNKCJhdCIpfSw4NzEzOihhdCxJZSxGKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9Rig4NTY0OCkseD1G'@; put 'KDY4MDcxKSxtPUYoNTQ0NTApLGxlPUYoODY3NTkpLE09RigyMzEyNCk7YWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOkYoMjM1MjMpKGZ1bmN0aW9uKCl7cmV0dXJuIDQyOTQ5NjcyOTchPT1bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKX0pfHwh'@; put 'ZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTohMX0pLnB1c2goKX1jYXRjaChJKXtyZXR1cm4gSSBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCl9LHtwdXNoOmZ1bmN0aW9uKGspe3ZhciBFPXgodGhpcyksaj1tKEUpLFY9YXJndW1lbnRz'@; put 'Lmxlbmd0aDtNKGorVik7Zm9yKHZhciBCPTA7QjxWO0IrKylFW2pdPWFyZ3VtZW50c1tCXSxqKys7cmV0dXJuIGxlKEUsaiksan19KX0sMTYwMDE6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg1NjQ4KSx4PUYoNjgwNzEpLG09Rig1NDQ1MCksbGU9Rig4Njc1OSksTT1GKDQ2'@; put 'MjgpLE89RigyMzEyNCk7YWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOjEhPT1bXS51bnNoaWZ0KDApfHwhZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTohMX0pLnVuc2hpZnQoKX1jYXRjaChJKXtyZXR1'@; put 'cm4gSSBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCl9LHt1bnNoaWZ0OmZ1bmN0aW9uKGspe3ZhciBFPXgodGhpcyksaj1tKEUpLFY9YXJndW1lbnRzLmxlbmd0aDtpZihWKXtPKGorVik7Zm9yKHZhciBCPWo7Qi0tOyl7dmFyIFk9QitWO0IgaW4gRT9FW1ldPUVbQl06TShFLFkpfWZvcih2YXIg'@; put 'WD0wO1g8VjtYKyspRVtYXT1hcmd1bWVudHNbWF19cmV0dXJuIGxlKEUsaitWKX19KX0sNTY1ODooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoODU2NDgpLHg9Rig3MDcwNSksbT1GKDExMzA2KSxsZT1GKDY3Njc4KSxNPSJXZWJBc3NlbWJseSIsTz14W01dLFI9NyE9PUVycm9y'@; put 'KCJlIix7Y2F1c2U6N30pLmNhdXNlLHo9ZnVuY3Rpb24oSSxrKXt2YXIgRT17fTtFW0ldPWxlKEksayxSKSxhZSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGFyaXR5OjEsZm9yY2VkOlJ9LEUpfSxLPWZ1bmN0aW9uKEksayl7aWYoTyYmT1tJXSl7dmFyIEU9e307RVtJXT1sZShNKyIuIitJ'@; put 'LGssUiksYWUoe3RhcmdldDpNLHN0YXQ6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6MSxmb3JjZWQ6Un0sRSl9fTt6KCJFcnJvciIsZnVuY3Rpb24oSSl7cmV0dXJuIGZ1bmN0aW9uKEUpe3JldHVybiBtKEksdGhpcyxhcmd1bWVudHMpfX0pLHooIkV2YWxFcnJvciIsZnVuY3Rpb24oSSl7cmV0'@; put 'dXJuIGZ1bmN0aW9uKEUpe3JldHVybiBtKEksdGhpcyxhcmd1bWVudHMpfX0pLHooIlJhbmdlRXJyb3IiLGZ1bmN0aW9uKEkpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbShJLHRoaXMsYXJndW1lbnRzKX19KSx6KCJSZWZlcmVuY2VFcnJvciIsZnVuY3Rpb24oSSl7cmV0dXJuIGZ1bmN0'@; put 'aW9uKEUpe3JldHVybiBtKEksdGhpcyxhcmd1bWVudHMpfX0pLHooIlN5bnRheEVycm9yIixmdW5jdGlvbihJKXtyZXR1cm4gZnVuY3Rpb24oRSl7cmV0dXJuIG0oSSx0aGlzLGFyZ3VtZW50cyl9fSkseigiVHlwZUVycm9yIixmdW5jdGlvbihJKXtyZXR1cm4gZnVuY3Rpb24oRSl7cmV0dXJu'@; put 'IG0oSSx0aGlzLGFyZ3VtZW50cyl9fSkseigiVVJJRXJyb3IiLGZ1bmN0aW9uKEkpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbShJLHRoaXMsYXJndW1lbnRzKX19KSxLKCJDb21waWxlRXJyb3IiLGZ1bmN0aW9uKEkpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbShJLHRoaXMsYXJn'@; put 'dW1lbnRzKX19KSxLKCJMaW5rRXJyb3IiLGZ1bmN0aW9uKEkpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbShJLHRoaXMsYXJndW1lbnRzKX19KSxLKCJSdW50aW1lRXJyb3IiLGZ1bmN0aW9uKEkpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbShJLHRoaXMsYXJndW1lbnRzKX19KX0s'@; put 'MTMwMDY6KGF0LEllLEYpPT57InVzZSBzdHJpY3QiO3ZhciBhZT1GKDg1NjQ4KSx4PUYoNDY2OTMpLG09RigxMTMwNiksbGU9RigzNTYyKSxNPUYoNjYxMyksTz1GKDIzNTIzKSxSPUYoMTIwMTQpLHo9Rig2OTc1KSxLPUYoNDA5MzApLEk9RigzODU4Niksaz1GKDI5MzM5KSxFPVN0cmluZyxq'@; put 'PXgoIkpTT04iLCJzdHJpbmdpZnkiKSxWPU0oLy4vLmV4ZWMpLEI9TSgiIi5jaGFyQXQpLFk9TSgiIi5jaGFyQ29kZUF0KSxYPU0oIiIucmVwbGFjZSksVT1NKDEuLnRvU3RyaW5nKSxxPS9bXHVEODAwLVx1REZGRl0vZyxlZT0vXltcdUQ4MDAtXHVEQkZGXSQvLHRlPS9eW1x1REMwMC1cdURG'@; put 'RkZdJC8sb2U9IWt8fE8oZnVuY3Rpb24oKXt2YXIgY2U9eCgiU3ltYm9sIikoKTtyZXR1cm4iW251bGxdIiE9aihbY2VdKXx8Int9IiE9aih7YTpjZX0pfHwie30iIT1qKE9iamVjdChjZSkpfSksc2U9TyhmdW5jdGlvbigpe3JldHVybiciXFx1ZGYwNlxcdWQ4MzQiJyE9PWooIlx1ZGYwNlx1'@; put 'ZDgzNCIpfHwnIlxcdWRlYWQiJyE9PWooIlx1ZGVhZCIpfSksaGU9ZnVuY3Rpb24oY2UsRyl7dmFyIGI9Syhhcmd1bWVudHMpLEQ9SShHKTtpZihSKEQpfHx2b2lkIDAhPT1jZSYmIXooY2UpKXJldHVybiBiWzFdPWZ1bmN0aW9uKEgsTil7aWYoUihEKSYmKE49bGUoRCx0aGlzLEUoSCksTikp'@; put 'LCF6KE4pKXJldHVybiBOfSxtKGosbnVsbCxiKX0sdWU9ZnVuY3Rpb24oY2UsRyxiKXt2YXIgRD1CKGIsRy0xKSxIPUIoYixHKzEpO3JldHVybiBWKGVlLGNlKSYmIVYodGUsSCl8fFYodGUsY2UpJiYhVihlZSxEKT8iXFx1IitVKFkoY2UsMCksMTYpOmNlfTtqJiZhZSh7dGFyZ2V0OiJKU09O'@; put 'IixzdGF0OiEwLGFyaXR5OjMsZm9yY2VkOm9lfHxzZX0se3N0cmluZ2lmeTpmdW5jdGlvbihHLGIsRCl7dmFyIEg9Syhhcmd1bWVudHMpLE49bShvZT9oZTpqLG51bGwsSCk7cmV0dXJuIHNlJiYic3RyaW5nIj09dHlwZW9mIE4/WChOLHEsdWUpOk59fSl9LDIyNDk2OihhdCxJZSxGKT0+eyJ1'@; put 'c2Ugc3RyaWN0Ijt2YXIgYWU9Rig4NTY0OCkseD1GKDcwNzA1KSxtPUYoNTUyNjEpLmNsZWFyO2FlKHtnbG9iYWw6ITAsYmluZDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDp4LmNsZWFySW1tZWRpYXRlIT09bX0se2NsZWFySW1tZWRpYXRlOm19KX0sOTE5NDU6KGF0LEllLEYpPT57InVzZSBz'@; put 'dHJpY3QiO0YoMjI0OTYpLEYoMzQ0NDMpfSwzNDQ0MzooYXQsSWUsRik9PnsidXNlIHN0cmljdCI7dmFyIGFlPUYoODU2NDgpLHg9Rig3MDcwNSksbT1GKDU1MjYxKS5zZXQsbGU9Rig5NTg5NSksTT14LnNldEltbWVkaWF0ZT9sZShtLCExKTptO2FlKHtnbG9iYWw6ITAsYmluZDohMCxlbnVt'@; put 'ZXJhYmxlOiEwLGZvcmNlZDp4LnNldEltbWVkaWF0ZSE9PU19LHtzZXRJbW1lZGlhdGU6TX0pfSw0NjcwMDooYXQsSWUsRik9Pnt2YXIgYWU9eyIuL2FmIjo4MzI3NCwiLi9hZi5qcyI6ODMyNzQsIi4vYXIiOjIyMDk3LCIuL2FyLWR6Ijo2MTg2NywiLi9hci1kei5qcyI6NjE4NjcsIi4vYXIt'@; put 'a3ciOjE3MDc4LCIuL2FyLWt3LmpzIjoxNzA3OCwiLi9hci1seSI6Nzc3NzYsIi4vYXItbHkuanMiOjc3Nzc2LCIuL2FyLW1hIjo1Njc4OSwiLi9hci1tYS5qcyI6NTY3ODksIi4vYXItc2EiOjY4OTcsIi4vYXItc2EuanMiOjY4OTcsIi4vYXItdG4iOjcxNTg1LCIuL2FyLXRuLmpzIjo3MTU4'@; put 'NSwiLi9hci5qcyI6MjIwOTcsIi4vYXoiOjE1NjExLCIuL2F6LmpzIjoxNTYxMSwiLi9iZSI6NjI0NTksIi4vYmUuanMiOjYyNDU5LCIuL2JnIjo5MTgyNSwiLi9iZy5qcyI6OTE4MjUsIi4vYm0iOjc1OTE4LCIuL2JtLmpzIjo3NTkxOCwiLi9ibiI6MzQwNjUsIi4vYm4tYmQiOjQ5NjgzLCIu'@; put 'L2JuLWJkLmpzIjo0OTY4MywiLi9ibi5qcyI6MzQwNjUsIi4vYm8iOjExMDM0LCIuL2JvLmpzIjoxMTAzNCwiLi9iciI6Mjc2NzEsIi4vYnIuanMiOjI3NjcxLCIuL2JzIjozODE1MywiLi9icy5qcyI6MzgxNTMsIi4vY2EiOjU0Mjg3LCIuL2NhLmpzIjo1NDI4NywiLi9jcyI6NzI2MTYsIi4v'@; put 'Y3MuanMiOjcyNjE2LCIuL2N2IjoyNzA0OSwiLi9jdi5qcyI6MjcwNDksIi4vY3kiOjk5MTcyLCIuL2N5LmpzIjo5OTE3MiwiLi9kYSI6MjA2MDUsIi4vZGEuanMiOjIwNjA1LCIuL2RlIjo5NDAxMywiLi9kZS1hdCI6OTMzOTUsIi4vZGUtYXQuanMiOjkzMzk1LCIuL2RlLWNoIjo5OTgzNSwi'@; put 'Li9kZS1jaC5qcyI6OTk4MzUsIi4vZGUuanMiOjk0MDEzLCIuL2R2IjoxNDU3MCwiLi9kdi5qcyI6MTQ1NzAsIi4vZWwiOjMxODU5LCIuL2VsLmpzIjozMTg1OSwiLi9lbi1hdSI6NTU3ODUsIi4vZW4tYXUuanMiOjU1Nzg1LCIuL2VuLWNhIjo4Mzc5MiwiLi9lbi1jYS5qcyI6ODM3OTIsIi4v'@; put 'ZW4tZ2IiOjU3NjUxLCIuL2VuLWdiLmpzIjo1NzY1MSwiLi9lbi1pZSI6ODE5MjksIi4vZW4taWUuanMiOjgxOTI5LCIuL2VuLWlsIjoxOTgxOCwiLi9lbi1pbC5qcyI6MTk4MTgsIi4vZW4taW4iOjY2MTIsIi4vZW4taW4uanMiOjY2MTIsIi4vZW4tbnoiOjI0OTAwLCIuL2VuLW56LmpzIjoy'@; put 'NDkwMCwiLi9lbi1zZyI6NzI3MjEsIi4vZW4tc2cuanMiOjcyNzIxLCIuL2VvIjo5NTE1OSwiLi9lby5qcyI6OTUxNTksIi4vZXMiOjIxOTU0LCIuL2VzLWRvIjoxMTc4MCwiLi9lcy1kby5qcyI6MTE3ODAsIi4vZXMtbXgiOjIzNDY4LCIuL2VzLW14LmpzIjoyMzQ2OCwiLi9lcy11cyI6NDQ5'@; put 'MzgsIi4vZXMtdXMuanMiOjQ0OTM4LCIuL2VzLmpzIjoyMTk1NCwiLi9ldCI6MTE0NTMsIi4vZXQuanMiOjExNDUzLCIuL2V1Ijo0NDY5NywiLi9ldS5qcyI6NDQ2OTcsIi4vZmEiOjUyOTAwLCIuL2ZhLmpzIjo1MjkwMCwiLi9maSI6NDk3NzUsIi4vZmkuanMiOjQ5Nzc1LCIuL2ZpbCI6NjQy'@; put 'ODIsIi4vZmlsLmpzIjo2NDI4MiwiLi9mbyI6ODQyMzYsIi4vZm8uanMiOjg0MjM2LCIuL2ZyIjo4OTM2MSwiLi9mci1jYSI6OTI4MzAsIi4vZnItY2EuanMiOjkyODMwLCIuL2ZyLWNoIjoyMTQxMiwiLi9mci1jaC5qcyI6MjE0MTIsIi4vZnIuanMiOjg5MzYxLCIuL2Z5Ijo2Njk4NCwiLi9m'@; put 'eS5qcyI6NjY5ODQsIi4vZ2EiOjkzOTYxLCIuL2dhLmpzIjo5Mzk2MSwiLi9nZCI6Nzg4NDksIi4vZ2QuanMiOjc4ODQ5LCIuL2dsIjozNDI3MywiLi9nbC5qcyI6MzQyNzMsIi4vZ29tLWRldmEiOjQwNjIzLCIuL2dvbS1kZXZhLmpzIjo0MDYyMywiLi9nb20tbGF0biI6NjI2OTYsIi4vZ29t'@; put 'LWxhdG4uanMiOjYyNjk2LCIuL2d1Ijo2NjkyOCwiLi9ndS5qcyI6NjY5MjgsIi4vaGUiOjI0ODA0LCIuL2hlLmpzIjoyNDgwNCwiLi9oaSI6MjMwMTUsIi4vaGkuanMiOjIzMDE1LCIuL2hyIjoxNzEzNCwiLi9oci5qcyI6MTcxMzQsIi4vaHUiOjUwNjcwLCIuL2h1LmpzIjo1MDY3MCwiLi9o'@; put 'eS1hbSI6NDUyMywiLi9oeS1hbS5qcyI6NDUyMywiLi9pZCI6OTkyMzMsIi4vaWQuanMiOjk5MjMzLCIuL2lzIjo5NDY5MywiLi9pcy5qcyI6OTQ2OTMsIi4vaXQiOjYzOTM2LCIuL2l0LWNoIjo3ODExOCwiLi9pdC1jaC5qcyI6NzgxMTgsIi4vaXQuanMiOjYzOTM2LCIuL2phIjo4Njg3MSwi'@; put 'Li9qYS5qcyI6ODY4NzEsIi4vanYiOjY4NzEwLCIuL2p2LmpzIjo2ODcxMCwiLi9rYSI6MTcxMjUsIi4va2EuanMiOjE3MTI1LCIuL2trIjo4MjQ2MSwiLi9ray5qcyI6ODI0NjEsIi4va20iOjc3Mzk5LCIuL2ttLmpzIjo3NzM5OSwiLi9rbiI6Mzg3MjAsIi4va24uanMiOjM4NzIwLCIuL2tv'@; put 'Ijo4NTMwNiwiLi9rby5qcyI6ODUzMDYsIi4va3UiOjgyOTk1LCIuL2t1LmpzIjo4Mjk5NSwiLi9reSI6ODc3OSwiLi9reS5qcyI6ODc3OSwiLi9sYiI6NjIwNTcsIi4vbGIuanMiOjYyMDU3LCIuL2xvIjoxNzE5MiwiLi9sby5qcyI6MTcxOTIsIi4vbHQiOjE1NDMwLCIuL2x0LmpzIjoxNTQz'@; put 'MCwiLi9sdiI6NTMzNjMsIi4vbHYuanMiOjUzMzYzLCIuL21lIjo3MjkzOSwiLi9tZS5qcyI6NzI5MzksIi4vbWkiOjM4MjEyLCIuL21pLmpzIjozODIxMiwiLi9tayI6Njk3MTgsIi4vbWsuanMiOjY5NzE4LCIuL21sIjo1MDU2MSwiLi9tbC5qcyI6NTA1NjEsIi4vbW4iOjY4OTI5LCIuL21u'@; put 'LmpzIjo2ODkyOSwiLi9tciI6ODQ4ODAsIi4vbXIuanMiOjg0ODgwLCIuL21zIjo2MzE5MywiLi9tcy1teSI6NDIwNzQsIi4vbXMtbXkuanMiOjQyMDc0LCIuL21zLmpzIjo2MzE5MywiLi9tdCI6NTQwODIsIi4vbXQuanMiOjU0MDgyLCIuL215Ijo4MjI2MSwiLi9teS5qcyI6ODIyNjEsIi4v'@; put 'bmIiOjE1MjczLCIuL25iLmpzIjoxNTI3MywiLi9uZSI6MTk4NzQsIi4vbmUuanMiOjE5ODc0LCIuL25sIjo1MTY2NywiLi9ubC1iZSI6ODE0ODQsIi4vbmwtYmUuanMiOjgxNDg0LCIuL25sLmpzIjo1MTY2NywiLi9ubiI6MTcyNjIsIi4vbm4uanMiOjE3MjYyLCIuL29jLWxuYyI6MTk2Nzks'@; put 'Ii4vb2MtbG5jLmpzIjoxOTY3OSwiLi9wYS1pbiI6OTY4MzAsIi4vcGEtaW4uanMiOjk2ODMwLCIuL3BsIjo5MzYxNiwiLi9wbC5qcyI6OTM2MTYsIi4vcHQiOjU1MTM4LCIuL3B0LWJyIjozMjc1MSwiLi9wdC1ici5qcyI6MzI3NTEsIi4vcHQuanMiOjU1MTM4LCIuL3JvIjoxNzk2OCwiLi9y'@; put 'by5qcyI6MTc5NjgsIi4vcnUiOjgxODI4LCIuL3J1LmpzIjo4MTgyOCwiLi9zZCI6NjIxODgsIi4vc2QuanMiOjYyMTg4LCIuL3NlIjo2NTYyLCIuL3NlLmpzIjo2NTYyLCIuL3NpIjo4NzE3MiwiLi9zaS5qcyI6ODcxNzIsIi4vc2siOjk5OTY2LCIuL3NrLmpzIjo5OTk2NiwiLi9zbCI6NDI4'@; put 'NywiLi9zbC5qcyI6NDI4NywiLi9zcSI6MTUyOTEsIi4vc3EuanMiOjE1MjkxLCIuL3NyIjo4MDQ1MCwiLi9zci1jeXJsIjozNzYwMywiLi9zci1jeXJsLmpzIjozNzYwMywiLi9zci5qcyI6ODA0NTAsIi4vc3MiOjMwMzgzLCIuL3NzLmpzIjozMDM4MywiLi9zdiI6MzcyMjEsIi4vc3YuanMi'@; put 'OjM3MjIxLCIuL3N3Ijo1MTc0MywiLi9zdy5qcyI6NTE3NDMsIi4vdGEiOjYzNTEsIi4vdGEuanMiOjYzNTEsIi4vdGUiOjk4MTE4LCIuL3RlLmpzIjo5ODExOCwiLi90ZXQiOjI2Mjc4LCIuL3RldC5qcyI6MjYyNzgsIi4vdGciOjM2OTg3LCIuL3RnLmpzIjozNjk4NywiLi90aCI6MzkzMjUs'@; put 'Ii4vdGguanMiOjM5MzI1LCIuL3RrIjo0MzQ4NSwiLi90ay5qcyI6NDM0ODUsIi4vdGwtcGgiOjY4MTQ4LCIuL3RsLXBoLmpzIjo2ODE0OCwiLi90bGgiOjU5NjE2LCIuL3RsaC5qcyI6NTk2MTYsIi4vdHIiOjI0MDQwLCIuL3RyLmpzIjoyNDA0MCwiLi90emwiOjU5NCwiLi90emwuanMiOjU5'@; put 'NCwiLi90em0iOjgwNjczLCIuL3R6bS1sYXRuIjoyMzIyNiwiLi90em0tbGF0bi5qcyI6MjMyMjYsIi4vdHptLmpzIjo4MDY3MywiLi91Zy1jbiI6Njk1ODAsIi4vdWctY24uanMiOjY5NTgwLCIuL3VrIjo4NzI3MCwiLi91ay5qcyI6ODcyNzAsIi4vdXIiOjExNjU2LCIuL3VyLmpzIjoxMTY1'@; put 'NiwiLi91eiI6NjgzNjQsIi4vdXotbGF0biI6MTg3NDQsIi4vdXotbGF0bi5qcyI6MTg3NDQsIi4vdXouanMiOjY4MzY0LCIuL3ZpIjo3NTA0OSwiLi92aS5qcyI6NzUwNDksIi4veC1wc2V1ZG8iOjE1MTA2LCIuL3gtcHNldWRvLmpzIjoxNTEwNiwiLi95byI6NjE5OSwiLi95by5qcyI6NjE5'@; put 'OSwiLi96aC1jbiI6MjcyODAsIi4vemgtY24uanMiOjI3MjgwLCIuL3poLWhrIjozNjg2MCwiLi96aC1oay5qcyI6MzY4NjAsIi4vemgtbW8iOjc4MzY0LCIuL3poLW1vLmpzIjo3ODM2NCwiLi96aC10dyI6NDgyLCIuL3poLXR3LmpzIjo0ODJ9O2Z1bmN0aW9uIHgobGUpe3ZhciBNPW0obGUp'@; put 'O3JldHVybiBGKE0pfWZ1bmN0aW9uIG0obGUpe2lmKCFGLm8oYWUsbGUpKXt2YXIgTT1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitsZSsiJyIpO3Rocm93IE0uY29kZT0iTU9EVUxFX05PVF9GT1VORCIsTX1yZXR1cm4gYWVbbGVdfXgua2V5cz1mdW5jdGlvbigpe3JldHVybiBP'@; put 'YmplY3Qua2V5cyhhZSl9LHgucmVzb2x2ZT1tLGF0LmV4cG9ydHM9eCx4LmlkPTQ2NzAwfSw3ODc3MzooKT0+e30sODA5NTA6KCk9Pnt9LDQ2NjAxOigpPT57fSw4NjIzOigpPT57fSw3NzQ4OigpPT57fSw4NTU2ODooKT0+e30sMTk1Mjc6KCk9Pnt9LDY5MzMxOigpPT57fSw1NjYxOTooKT0+'@; put 'e30sNzcxMDg6KCk9Pnt9LDUyMzYxOigpPT57fSw5NDYxNjooKT0+e30sMTcxNTY6YXQ9PntmdW5jdGlvbiBJZShhZSx4LG0sbGUsTSxPLFIpe3RyeXt2YXIgej1hZVtPXShSKSxLPXoudmFsdWV9Y2F0Y2goSSl7cmV0dXJuIHZvaWQgbShJKX16LmRvbmU/eChLKTpQcm9taXNlLnJlc29sdmUo'@; put 'SykudGhlbihsZSxNKX1hdC5leHBvcnRzPWZ1bmN0aW9uIEYoYWUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB4PXRoaXMsbT1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGxlLE0pe3ZhciBPPWFlLmFwcGx5KHgsbSk7ZnVuY3Rpb24gUihLKXtJZShPLGxlLE0sUix6LCJu'@; put 'ZXh0IixLKX1mdW5jdGlvbiB6KEspe0llKE8sbGUsTSxSLHosInRocm93IixLKX1SKHZvaWQgMCl9KX19LGF0LmV4cG9ydHMuX19lc01vZHVsZT0hMCxhdC5leHBvcnRzLmRlZmF1bHQ9YXQuZXhwb3J0c30sNDQ5NDY6YXQ9PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz1KU09OLnBhcnNlKCd7'@; put 'ImFlcy0xMjgtZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTI1Ni1lY2Ii'@; put 'OnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTE5Mi1jYmMiOnsiY2lwaGVyIjoi'@; put 'QUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczEyOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwi'@; put 'aXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczE5MiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczI1NiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwi'@; put 'dHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3Ry'@; put 'ZWFtIn0sImFlcy0yNTYtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwi'@; put 'YWVzLTE5Mi1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0x'@; put 'MjgtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNm'@; put 'YjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItb2ZiIjp7ImNp'@; put 'cGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY3RyIjp7ImNpcGhlciI6IkFF'@; put 'UyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6'@; put 'MjU2LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMtMTkyLWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjEy'@; put 'LCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifSwiYWVzLTI1Ni1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn19Jyl9LDc1MjA3OmF0PT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9SlNPTi5wYXJzZSgneyJzaGEyMjRX'@; put 'aXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNIQTIyNCI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4'@; put 'NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwic2hhMjU2V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sIlJTQS1TSEEyNTYiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhh'@; put 'c2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJS'@; put 'U0EtU0hBMzg0Ijp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJzaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQw'@; put 'NjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTEiOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEx'@; put 'IiwiaWQiOiIzMDIxMzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwic2hhMjU2Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJzaGEyMjQiOnsic2lnbiI6'@; put 'ImVjZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sInNoYTM4NCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwic2hhNTEyIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtU0hBIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoi'@; put 'c2hhMSIsImlkIjoiIn0sIkRTQS1TSEExIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEyMjQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJE'@; put 'U0EtU0hBMjI0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMjU2Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwiRFNBLVNIQTI1NiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sIkRTQS1X'@; put 'SVRILVNIQTM4NCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sIkRTQS1TSEEzODQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEE1MTIiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0Et'@; put 'U0hBNTEyIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIifSwiRFNBLVJJUEVNRDE2MCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiIn0sInJpcGVtZDE2MFdpdGhSU0EiOnsic2lnbiI6InJzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IjMwMjEzMDA5'@; put 'MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwibWQ1V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJtZDUiLCJpZCI6'@; put 'IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9LCJSU0EtTUQ1Ijp7InNpZ24iOiJyc2EiLCJoYXNoIjoibWQ1IiwiaWQiOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifX0nKX0sMTMwODphdD0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPUpTT04u'@; put 'cGFyc2UoJ3siMS4zLjEzMi4wLjEwIjoic2VjcDI1NmsxIiwiMS4zLjEzMi4wLjMzIjoicDIyNCIsIjEuMi44NDAuMTAwNDUuMy4xLjEiOiJwMTkyIiwiMS4yLjg0MC4xMDA0NS4zLjEuNyI6InAyNTYiLCIxLjMuMTMyLjAuMzQiOiJwMzg0IiwiMS4zLjEzMi4wLjM1IjoicDUyMSJ9Jyl9LDI5'@; put 'Nzk5OmF0PT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9SlNPTi5wYXJzZSgneyJtb2RwMSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThl'@; put 'MzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzYTM2MjBmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAyIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIz'@; put 'NGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4'@; put 'NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNjUzODFmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHA1Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYz'@; put 'YjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDVi'@; put 'M2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTIzNzMyN2ZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE0Ijp7ImdlbiI6'@; put 'IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3'@; put 'NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1'@; put 'NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAx'@; put 'NTcyOGU1YThhYWNhYTY4ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUx'@; put 'OWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFj'@; put 'NTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJj'@; put 'OWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThj'@; put 'OTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5M2FkMmNhZmZmZmZmZmZm'@; put 'ZmZmZmZmZiJ9LCJtb2RwMTYiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYx'@; put 'NDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1Zjgz'@; put 'NjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3'@; put 'Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQy'@; put 'ZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5'@; put 'OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkx'@; put 'MjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDA2MzE5OWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE3Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhh'@; put 'NjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZl'@; put 'NjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzll'@; put 'NzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1'@; put 'ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFi'@; put 'MzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTli'@; put 'Mjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2'@; put 'M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5'@; put 'MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3'@; put 'OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGNjNDAyNGZmZmZmZmZmZmZmZmZmZmYifSwibW9k'@; put 'cDE4Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1'@; put 'MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2'@; put 'MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIy'@; put 'NjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5'@; put 'OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIz'@; put 'YzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0'@; put 'ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJj'@; put 'ZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4'@; put 'ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3'@; put 'ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGJlMTE1OTc0YTM5MjZmMTJmZWU1ZTQzODc3N2NiNmE5MzJkZjhjZDhiZWM0ZDA3M2I5MzFiYTNiYzgzMmI2OGQ5ZGQzMDA3NDFmYTdiZjhhZmM0N2VkMjU3NmY2OTM2YmE0MjQ2NjNhYWI2Mzlj'@; put 'NWFlNGY1NjgzNDIzYjQ3NDJiZjFjOTc4MjM4ZjE2Y2JlMzlkNjUyZGUzZmRiOGJlZmM4NDhhZDkyMjIyMmUwNGE0MDM3YzA3MTNlYjU3YTgxYTIzZjBjNzM0NzNmYzY0NmNlYTMwNmI0YmNiYzg4NjJmODM4NWRkZmE5ZDRiN2ZhMmMwODdlODc5NjgzMzAzZWQ1YmRkM2EwNjJiM2NmNWIzYTI3'@; put 'OGE2NmQyYTEzZjgzZjQ0ZjgyZGRmMzEwZWUwNzRhYjZhMzY0NTk3ZTg5OWEwMjU1ZGMxNjRmMzFjYzUwODQ2ODUxZGY5YWI0ODE5NWRlZDdlYTFiMWQ1MTBiZDdlZTc0ZDczZmFmMzZiYzMxZWNmYTI2ODM1OTA0NmY0ZWI4NzlmOTI0MDA5NDM4YjQ4MWM2Y2Q3ODg5YTAwMmVkNWVlMzgyYmM5'@; put 'MTkwZGE2ZmMwMjZlNDc5NTU4ZTQ0NzU2NzdlOWFhOWUzMDUwZTI3NjU2OTRkZmM4MWY1NmU4ODBiOTZlNzE2MGM5ODBkZDk4ZWRkM2RmZmZmZmZmZmZmZmZmZmZmZiJ9fScpfSwxODU5NzphdD0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPXtpODoiNi41LjQifX0sNjM0ODA6YXQ9PnsidXNl'@; put 'IHN0cmljdCI7YXQuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyI4NzQwIiwiXHU0M2YwXHU0YzMyXHU0NjAzXHU0NWE2XHU0NTc4XHV7MjcyNjd9XHU0ZDc3XHU0NWIzXHV7MjdjYjF9XHU0Y2UyXHV7MjdjYzV9XHUzYjk1XHU0NzM2XHU0NzQ0XHU0YzQ3XHU0YzQwXHV7MjQyYmZ9XHV7MjM2MTd9'@; put 'XHV7MjczNTJ9XHV7MjZlOGJ9XHV7MjcwZDJ9XHU0YzU3XHV7MmEzNTF9XHU0NzRmXHU0NWRhXHU0Yzg1XHV7MjdjNmN9XHU0ZDA3XHU0YWE0XHU0NmExXHV7MjZiMjN9XHU3MjI1XHV7MjVhNTR9XHV7MjFhNjN9XHV7MjNlMDZ9XHV7MjNmNjF9XHU2NjRkXHU1NmZiIl0sWyI4NzY3IiwiXHU3'@; put 'ZDk1XHU1OTFkXHV7MjhiYjl9XHUzZGY0XHU5NzM0XHV7MjdiZWZ9XHU1YmRiXHV7MjFkNWV9XHU1YWE0XHUzNjI1XHV7MjllYjB9XHU1YWQxXHU1YmI3XHU1Y2ZjXHU2NzZlXHU4NTkzXHV7Mjk5NDV9XHU3NDYxXHU3NDlkXHUzODc1XHV7MjFkNTN9XHV7MjM2OWV9XHV7MjYwMjF9XHUzZWVj'@; put 'Il0sWyI4N2ExIiwiXHV7MjU4ZGV9XHUzYWY1XHU3YWZjXHU5Zjk3XHV7MjQxNjF9XHV7Mjg5MGR9XHV7MjMxZWF9XHV7MjBhOGF9XHV7MjMyNWV9XHU0MzBhXHU4NDg0XHU5Zjk2XHU5NDJmXHU0OTMwXHU4NjEzXHU1ODk2XHU5NzRhXHU5MjE4XHU3OWQwXHU3YTMyXHU2NjYwXHU2YTI5XHU4'@; put 'ODlkXHU3NDRjXHU3YmM1XHU2NzgyXHU3YTJjXHU1MjRmXHU5MDQ2XHUzNGU2XHU3M2M0XHV7MjVkYjl9XHU3NGM2XHU5ZmM3XHU1N2IzXHU0OTJmXHU1NDRjXHU0MTMxXHV7MjM2OGV9XHU1ODE4XHU3YTcyXHV7MjdiNjV9XHU4YjhmXHU0NmFlXHV7MjZlODh9XHU0MTgxXHV7MjVkOTl9XHU3'@; put 'YmFlXHV7MjI0YmN9XHU5ZmM4XHV7MjI0YzF9XHV7MjI0Yzl9XHV7MjI0Y2N9XHU5ZmM5XHU4NTA0XHV7MjM1YmJ9XHU0MGI0XHU5ZmNhXHU0NGUxXHV7MmFkZmZ9XHU2MmMxXHU3MDZlXHU5ZmNiIl0sWyI4ODQwIiwiXHUzMWMwIiw0LCJcdXsyMDEwY31cdTMxYzVcdXsyMDBkMX1cdXsyMDBj'@; put 'ZH1cdTMxYzZcdTMxYzdcdXsyMDBjYn1cdXsyMWZlOH1cdTMxYzhcdXsyMDBjYX1cdTMxYzlcdTMxY2FcdTMxY2JcdTMxY2NcdXsyMDEwZX1cdTMxY2RcdTMxY2VcdTAxMDBceGMxXHUwMWNkXHhjMFx1MDExMlx4YzlcdTAxMWFceGM4XHUwMTRjXHhkM1x1MDFkMVx4ZDJcdTBmZmZceGNhXHUw'@; put 'MzA0XHUxZWJlXHUwZmZmXHhjYVx1MDMwY1x1MWVjMFx4Y2FcdTAxMDFceGUxXHUwMWNlXHhlMFx1MDI1MVx1MDExM1x4ZTlcdTAxMWJceGU4XHUwMTJiXHhlZFx1MDFkMFx4ZWNcdTAxNGRceGYzXHUwMWQyXHhmMlx1MDE2Ylx4ZmFcdTAxZDRceGY5XHUwMWQ2XHUwMWQ4XHUwMWRhIl0sWyI4'@; put 'OGExIiwiXHUwMWRjXHhmY1x1MGZmZlx4ZWFcdTAzMDRcdTFlYmZcdTBmZmZceGVhXHUwMzBjXHUxZWMxXHhlYVx1MDI2MVx1MjNkYVx1MjNkYiJdLFsiODk0MCIsIlx1ezJhM2E5fVx1ezIxMTQ1fSJdLFsiODk0MyIsIlx1NjUwYSJdLFsiODk0NiIsIlx1NGUzZFx1NmVkZFx1OWQ0ZVx1OTFk'@; put 'ZiJdLFsiODk0YyIsIlx1ezI3NzM1fVx1NjQ5MVx1NGYxYVx1NGYyOFx1NGZhOFx1NTE1Nlx1NTE3NFx1NTE5Y1x1NTFlNFx1NTJhMVx1NTJhOFx1NTMzYlx1NTM0ZVx1NTNkMVx1NTNkOFx1NTZlMlx1NThmMFx1NTkwNFx1NTkwN1x1NTkzMlx1NTkzNFx1NWI2Nlx1NWI5ZVx1NWI5Zlx1NWM5'@; put 'YVx1NWU4Nlx1NjAzYlx1NjU4OVx1NjdmZVx1NjgwNFx1Njg2NVx1NmQ0ZVx1NzBiY1x1NzUzNVx1N2VhNFx1N2VhY1x1N2ViYVx1N2VjN1x1N2VjZlx1N2VkZlx1N2YwNlx1N2YzN1x1ODI3YVx1ODJjZlx1ODM2Zlx1ODljNlx1OGJiZVx1OGJlMlx1OGY2Nlx1OGY2N1x1OGY2ZSJdLFsiODlh'@; put 'MSIsIlx1NzQxMVx1N2NmY1x1N2RjZFx1Njk0Nlx1N2FjOVx1NTIyNyJdLFsiODlhYiIsIlx1OTE4Y1x1NzhiOFx1OTE1ZVx1ODBiYyJdLFsiODliMCIsIlx1OGQwYlx1ODBmNlx1ezIwOWU3fSJdLFsiODliNSIsIlx1ODA5Zlx1OWVjN1x1NGNjZFx1OWRjOVx1OWUwY1x1NGMzZVx1ezI5ZGY2'@; put 'fVx1ezI3MDBlfVx1OWUwYVx1ezJhMTMzfVx1MzVjMSJdLFsiODljMSIsIlx1NmU5YVx1ODIzZVx1NzUxOSJdLFsiODljNSIsIlx1NDkxMVx1OWE2Y1x1OWE4Zlx1OWY5OVx1Nzk4N1x1ezI4NDZjfVx1ezIxZGNhfVx1ezIwNWQwfVx1ezIyYWU2fVx1NGUyNFx1NGU4MVx1NGU4MFx1NGU4N1x1'@; put 'NGViZlx1NGVlYlx1NGYzN1x1MzQ0Y1x1NGZiZFx1M2U0OFx1NTAwM1x1NTA4OFx1MzQ3ZFx1MzQ5M1x1MzRhNVx1NTE4Nlx1NTkwNVx1NTFkYlx1NTFmY1x1NTIwNVx1NGU4OVx1NTI3OVx1NTI5MFx1NTMyN1x1MzVjN1x1NTNhOVx1MzU1MVx1NTNiMFx1MzU1M1x1NTNjMlx1NTQyM1x1MzU2'@; put 'ZFx1MzU3Mlx1MzY4MVx1NTQ5M1x1NTRhM1x1NTRiNFx1NTRiOVx1NTRkMFx1NTRlZlx1NTUxOFx1NTUyM1x1NTUyOFx1MzU5OFx1NTUzZlx1MzVhNVx1MzViZlx1NTVkN1x1MzVjNSJdLFsiOGE0MCIsIlx1ezI3ZDg0fVx1NTUyNSJdLFsiOGE0MyIsIlx1ezIwYzQyfVx1ezIwZDE1fVx1ezI1'@; put 'MTJifVx1NTU5MFx1ezIyY2M2fVx1MzllY1x1ezIwMzQxfVx1OGU0Nlx1ezI0ZGI4fVx1ezI5NGU1fVx1NDA1M1x1ezI4MGJlfVx1Nzc3YVx1ezIyYzM4fVx1M2EzNFx1NDdkNVx1ezI4MTVkfVx1ezI2OWYyfVx1ezI0ZGVhfVx1NjRkZFx1ezIwZDdjfVx1ezIwZmI0fVx1ezIwY2Q1fVx1ezIx'@; put 'MGY0fVx1NjQ4ZFx1OGU3ZVx1ezIwZTk2fVx1ezIwYzBifVx1ezIwZjY0fVx1ezIyY2E5fVx1ezI4MjU2fVx1ezI0NGQzfSJdLFsiOGE2NCIsIlx1ezIwZDQ2fVx1ezI5YTRkfVx1ezI4MGU5fVx1NDdmNFx1ezI0ZWE3fVx1ezIyY2MyfVx1OWFiMlx1M2E2N1x1ezI5NWY0fVx1M2ZlZFx1MzUw'@; put 'Nlx1ezI1MmM3fVx1ezI5N2Q0fVx1ezI3OGM4fVx1ezIyZDQ0fVx1OWQ2ZVx1OTgxNSJdLFsiOGE3NiIsIlx1NDNkOVx1ezI2MGE1fVx1NjRiNFx1NTRlM1x1ezIyZDRjfVx1ezIyYmNhfVx1ezIxMDc3fVx1MzlmYlx1ezIxMDZmfSJdLFsiOGFhMSIsIlx1ezI2NmRhfVx1ezI2NzE2fVx1ezI3'@; put 'OWEwfVx1NjRlYVx1ezI1MDUyfVx1ezIwYzQzfVx1OGU2OFx1ezIyMWExfVx1ezI4YjRjfVx1ezIwNzMxfSJdLFsiOGFhYyIsIlx1NDgwYlx1ezIwMWE5fVx1M2ZmYVx1NTg3M1x1ezIyZDhkfSJdLFsiOGFiMiIsIlx1ezI0NWM4fVx1ezIwNGZjfVx1ezI2MDk3fVx1ezIwZjRjfVx1ezIwZDk2'@; put 'fVx1NTU3OVx1NDBiYlx1NDNiYSJdLFsiOGFiYiIsIlx1NGFiNFx1ezIyYTY2fVx1ezIxMDlkfVx1ODFhYVx1OThmNVx1ezIwZDljfVx1NjM3OVx1MzlmZVx1ezIyNzc1fVx1OGRjMFx1NTZhMVx1NjQ3Y1x1M2U0MyJdLFsiOGFjOSIsIlx1ezJhNjAxfVx1ezIwZTA5fVx1ezIyYWNmfVx1ezIy'@; put 'Y2M5fSJdLFsiOGFjZSIsIlx1ezIxMGM4fVx1ezIzOWMyfVx1Mzk5Mlx1M2EwNlx1ezI4MjlifVx1MzU3OFx1ezI1ZTQ5fVx1ezIyMGM3fVx1NTY1Mlx1ezIwZjMxfVx1ezIyY2IyfVx1ezI5NzIwfVx1MzRiY1x1NmMzZFx1ezI0ZTNifSJdLFsiOGFkZiIsIlx1ezI3NTc0fVx1ezIyZThifVx1'@; put 'ezIyMjA4fVx1ezJhNjVifVx1ezI4Y2NkfVx1ezIwZTdhfVx1ezIwYzM0fVx1ezI2ODFjfVx1N2Y5M1x1ezIxMGNmfVx1ezIyODAzfVx1ezIyOTM5fVx1MzVmYlx1ezI1MWUzfVx1ezIwZThjfVx1ezIwZjhkfVx1ezIwZWFhfVx1M2Y5M1x1ezIwZjMwfVx1ezIwZDQ3fVx1ezIxMTRmfVx1ezIw'@; put 'ZTRjfSJdLFsiOGFmNiIsIlx1ezIwZWFifVx1ezIwYmE5fVx1ezIwZDQ4fVx1ezIxMGMwfVx1ezIxMTNkfVx1M2ZmOVx1ezIyNjk2fVx1NjQzMlx1ezIwZmFkfSJdLFsiOGI0MCIsIlx1ezIzM2Y0fVx1ezI3NjM5fVx1ezIyYmNlfVx1ezIwZDdlfVx1ezIwZDdmfVx1ezIyYzUxfVx1ezIyYzU1'@; put 'fVx1M2ExOFx1ezIwZTk4fVx1ezIxMGM3fVx1ezIwZjJlfVx1ezJhNjMyfVx1ezI2YjUwfVx1ezI4Y2QyfVx1ezI4ZDk5fVx1ezI4Y2NhfVx1OTVhYVx1NTRjY1x1ODJjNFx1NTViOSJdLFsiOGI1NSIsIlx1ezI5ZWMzfVx1OWMyNlx1OWFiNlx1ezI3NzVlfVx1ezIyZGVlfVx1NzE0MFx1ODE2'@; put 'ZFx1ODBlY1x1NWMxY1x1ezI2NTcyfVx1ODEzNFx1Mzc5N1x1NTM1Zlx1ezI4MGJkfVx1OTFiNlx1ezIwZWZhfVx1ezIwZTBmfVx1ezIwZTc3fVx1ezIwZWZifVx1MzVkZFx1ezI0ZGVifVx1MzYwOVx1ezIwY2Q2fVx1NTZhZlx1ezIyN2I1fVx1ezIxMGM5fVx1ezIwZTEwfVx1ezIwZTc4fVx1'@; put 'ezIxMDc4fVx1ezIxMTQ4fVx1ezI4MjA3fVx1ezIxNDU1fVx1ezIwZTc5fVx1ezI0ZTUwfVx1ezIyZGE0fVx1NWE1NFx1ezIxMDFkfVx1ezIxMDFlfVx1ezIxMGY1fVx1ezIxMGY2fVx1NTc5Y1x1ezIwZTExfSJdLFsiOGJhMSIsIlx1ezI3Njk0fVx1ezI4MmNkfVx1ezIwZmI1fVx1ezIwZTdi'@; put 'fVx1ezI1MTdlfVx1MzcwM1x1ezIwZmI2fVx1ezIxMTgwfVx1ezI1MmQ4fVx1ezJhMmJkfVx1ezI0OWRhfVx1ezIxODNhfVx1ezI0MTc3fVx1ezI4MjdjfVx1NTg5OVx1NTI2OFx1MzYxYVx1ezI1NzNkfVx1N2JiMlx1NWI2OFx1NDgwMFx1NGIyY1x1OWYyN1x1NDllN1x1OWMxZlx1OWI4ZFx1'@; put 'ezI1Yjc0fVx1ezIzMTNkfVx1NTVmYlx1MzVmMlx1NTY4OVx1NGUyOFx1NTkwMlx1ezIxYmMxfVx1ezJmODc4fVx1OTc1MVx1ezIwMDg2fVx1NGU1Ylx1NGViYlx1MzUzZVx1NWMyM1x1NWY1MVx1NWZjNFx1MzhmYVx1NjI0Y1x1NjUzNVx1NmI3YVx1NmMzNVx1NmMzYVx1NzA2Y1x1NzIyYlx1'@; put 'NGUyY1x1NzJhZFx1ezI0OGU5fVx1N2Y1Mlx1NzkzYlx1N2NmOVx1N2Y1M1x1ezI2MjZhfVx1MzRjMSJdLFsiOGJkZSIsIlx1ezI2MzRifVx1ODAwMlx1ODA4MFx1ezI2NjEyfVx1ezI2OTUxfVx1NTM1ZFx1ODg2NFx1ODljMVx1ezI3OGIyfVx1OGJhMFx1OGQxZFx1OTQ4NVx1OTU3OFx1OTU3'@; put 'Zlx1OTVlOFx1ezI4ZTBmfVx1OTdlNlx1OTg3NVx1OThjZVx1OThkZVx1OTk2M1x1ezI5ODEwfVx1OWM3Y1x1OWUxZlx1OWVjNFx1NmI2Zlx1ZjkwN1x1NGUzN1x1ezIwMDg3fVx1OTYxZFx1NjIzN1x1OTRhMiJdLFsiOGM0MCIsIlx1NTAzYlx1NmRmZVx1ezI5YzczfVx1OWZhNlx1M2RjOVx1'@; put 'ODg4Zlx1ezI0MTRlfVx1NzA3N1x1NWNmNVx1NGIyMFx1ezI1MWNkfVx1MzU1OVx1ezI1ZDMwfVx1NjEyMlx1ezI4YTMyfVx1OGZhN1x1OTFmNlx1NzE5MVx1NjcxOVx1NzNiYVx1ezIzMjgxfVx1ezJhMTA3fVx1M2M4Ylx1ezIxOTgwfVx1NGIxMFx1NzhlNFx1NzQwMlx1NTFhZVx1ezI4NzBm'@; put 'fVx1NDAwOVx1NmE2M1x1ezJhMmJhfVx1NDIyM1x1ODYwZlx1ezIwYTZmfVx1N2EyYVx1ezI5OTQ3fVx1ezI4YWVhfVx1OTc1NVx1NzA0ZFx1NTMyNFx1ezIyMDdlfVx1OTNmNFx1NzZkOVx1ezI4OWUzfVx1OWZhN1x1NzdkZFx1NGVhM1x1NGZmMFx1NTBiY1x1NGUyZlx1NGYxN1x1OWZhOFx1'@; put 'NTQzNFx1N2Q4Ylx1NTg5Mlx1NThkMFx1ezIxZGI2fVx1NWU5Mlx1NWU5OVx1NWZjMlx1ezIyNzEyfVx1NjU4YiJdLFsiOGNhMSIsIlx1ezIzM2Y5fVx1NjkxOVx1NmE0M1x1ezIzYzYzfVx1NmNmZiJdLFsiOGNhNyIsIlx1NzIwMFx1ezI0NTA1fVx1NzM4Y1x1M2VkYlx1ezI0YTEzfVx1NWIx'@; put 'NVx1NzRiOVx1OGI4M1x1ezI1Y2E0fVx1ezI1Njk1fVx1N2E5M1x1N2JlY1x1N2NjM1x1N2U2Y1x1ODJmOFx1ODU5N1x1OWZhOVx1ODg5MFx1OWZhYVx1OGViOVx1OWZhYlx1OGZjZlx1ODU1Zlx1OTllMFx1OTIyMVx1OWZhY1x1ezI4ZGI5fVx1ezIxNDNmfVx1NDA3MVx1NDJhMlx1NWExYSJd'@; put 'LFsiOGNjOSIsIlx1OTg2OFx1Njc2Ylx1NDI3Nlx1NTczZCJdLFsiOGNjZSIsIlx1ODVkNlx1ezI0OTdifVx1ODJiZlx1ezI3MTBkfVx1NGM4MVx1ezI2ZDc0fVx1NWQ3Ylx1ezI2YjE1fVx1ezI2ZmJlfVx1OWZhZFx1OWZhZVx1NWI5Nlx1OWZhZlx1NjZlN1x1N2U1Ylx1NmU1N1x1NzljYVx1'@; put 'M2Q4OFx1NDRjM1x1ezIzMjU2fVx1ezIyNzk2fVx1NDM5YVx1NDUzNiJdLFsiOGNlNiIsIlx1NWNkNVx1ezIzYjFhfVx1OGFmOVx1NWM3OFx1M2QxMlx1ezIzNTUxfVx1NWQ3OFx1OWZiMlx1NzE1N1x1NDU1OFx1ezI0MGVjfVx1ezIxZTIzfVx1NGM3N1x1Mzk3OFx1MzQ0YVx1ezIwMWE0fVx1'@; put 'ezI2YzQxfVx1OGFjY1x1NGZiNFx1ezIwMjM5fVx1NTliZlx1ODE2Y1x1OTg1Nlx1ezI5OGZhfVx1NWYzYiJdLFsiOGQ0MCIsIlx1ezIwYjlmfSJdLFsiOGQ0MiIsIlx1ezIyMWMxfVx1ezI4OTZkfVx1NDEwMlx1NDZiYlx1ezI5MDc5fVx1M2YwN1x1OWZiM1x1ezJhMWI1fVx1NDBmOFx1Mzdk'@; put 'Nlx1NDZmN1x1ezI2YzQ2fVx1NDE3Y1x1ezI4NmIyfVx1ezI3M2ZmfVx1NDU2ZFx1MzhkNFx1ezI1NDlhfVx1NDU2MVx1NDUxYlx1NGQ4OVx1NGM3Ylx1NGQ3Nlx1NDVlYVx1M2ZjOFx1ezI0YjBmfVx1MzY2MVx1NDRkZVx1NDRiZFx1NDFlZFx1NWQzZVx1NWQ0OFx1NWQ1Nlx1M2RmY1x1Mzgw'@; put 'Zlx1NWRhNFx1NWRiOVx1MzgyMFx1MzgzOFx1NWU0Mlx1NWViZFx1NWYyNVx1NWY4M1x1MzkwOFx1MzkxNFx1MzkzZlx1Mzk0ZFx1NjBkN1x1NjEzZFx1NWNlNVx1Mzk4OVx1NjFiN1x1NjFiOVx1NjFjZlx1MzliOFx1NjIyY1x1NjI5MFx1NjJlNVx1NjMxOFx1MzlmOFx1NTZiMSJdLFsiOGRh'@; put 'MSIsIlx1M2EwM1x1NjNlMlx1NjNmYlx1NjQwN1x1NjQ1YVx1M2E0Ylx1NjRjMFx1NWQxNVx1NTYyMVx1OWY5Zlx1M2E5N1x1NjU4Nlx1M2FiZFx1NjVmZlx1NjY1M1x1M2FmMlx1NjY5Mlx1M2IyMlx1NjcxNlx1M2I0Mlx1NjdhNFx1NjgwMFx1M2I1OFx1Njg0YVx1Njg4NFx1M2I3Mlx1M2I3'@; put 'MVx1M2I3Ylx1NjkwOVx1Njk0M1x1NzI1Y1x1Njk2NFx1Njk5Zlx1Njk4NVx1M2JiY1x1NjlkNlx1M2JkZFx1NmE2NVx1NmE3NFx1NmE3MVx1NmE4Mlx1M2JlY1x1NmE5OVx1M2JmMlx1NmFhYlx1NmFiNVx1NmFkNFx1NmFmNlx1NmI4MVx1NmJjMVx1NmJlYVx1NmM3NVx1NmNhYVx1M2NjYlx1'@; put 'NmQwMlx1NmQwNlx1NmQyNlx1NmQ4MVx1M2NlZlx1NmRhNFx1NmRiMVx1NmUxNVx1NmUxOFx1NmUyOVx1NmU4Nlx1ezI4OWMwfVx1NmViYlx1NmVlMlx1NmVkYVx1OWY3Zlx1NmVlOFx1NmVlOVx1NmYyNFx1NmYzNFx1M2Q0Nlx1ezIzZjQxfVx1NmY4MVx1NmZiZVx1M2Q2YVx1M2Q3NVx1NzFi'@; put 'N1x1NWM5OVx1M2Q4YVx1NzAyY1x1M2Q5MVx1NzA1MFx1NzA1NFx1NzA2Zlx1NzA3Zlx1NzA4OVx1ezIwMzI1fVx1NDNjMVx1MzVmMVx1ezIwZWQ4fSJdLFsiOGU0MCIsIlx1ezIzZWQ3fVx1NTdiZVx1ezI2ZWQzfVx1NzEzZVx1ezI1N2UwfVx1MzY0ZVx1NjlhMlx1ezI4YmU5fVx1NWI3NFx1'@; put 'N2E0OVx1ezI1OGUxfVx1ezI5NGQ5fVx1N2E2NVx1N2E3ZFx1ezI1OWFjfVx1N2FiYlx1N2FiMFx1N2FjMlx1N2FjM1x1NzFkMVx1ezI2NDhkfVx1NDFjYVx1N2FkYVx1N2FkZFx1N2FlYVx1NDFlZlx1NTRiMlx1ezI1YzAxfVx1N2IwYlx1N2I1NVx1N2IyOVx1ezI1MzBlfVx1ezI1Y2ZlfVx1'@; put 'N2JhMlx1N2I2Zlx1ODM5Y1x1ezI1YmI0fVx1ezI2YzdmfVx1N2JkMFx1ODQyMVx1N2I5Mlx1N2JiOFx1ezI1ZDIwfVx1M2RhZFx1ezI1YzY1fVx1ODQ5Mlx1N2JmYVx1N2MwNlx1N2MzNVx1ezI1Y2MxfVx1N2M0NFx1N2M4M1x1ezI0ODgyfVx1N2NhNlx1NjY3ZFx1ezI0NTc4fVx1N2NjOVx1'@; put 'N2NjN1x1N2NlNlx1N2M3NFx1N2NmM1x1N2NmNVx1N2NjZSJdLFsiOGVhMSIsIlx1N2U2N1x1NDUxZFx1ezI2ZTQ0fVx1N2Q1ZFx1ezI2ZWQ2fVx1NzQ4ZFx1N2Q4OVx1N2RhYlx1NzEzNVx1N2RiM1x1N2RkMlx1ezI0MDU3fVx1ezI2MDI5fVx1N2RlNFx1M2QxM1x1N2RmNVx1ezIxN2Y5fVx1'@; put 'N2RlNVx1ezI4MzZkfVx1N2UxZFx1ezI2MTIxfVx1ezI2MTVhfVx1N2U2ZVx1N2U5Mlx1NDMyYlx1OTQ2Y1x1N2UyN1x1N2Y0MFx1N2Y0MVx1N2Y0N1x1NzkzNlx1ezI2MmQwfVx1OTllMVx1N2Y5N1x1ezI2MzUxfVx1N2ZhM1x1ezIxNjYxfVx1ezIwMDY4fVx1NDU1Y1x1ezIzNzY2fVx1NDUw'@; put 'M1x1ezI4MzNhfVx1N2ZmYVx1ezI2NDg5fVx1ODAwNVx1ODAwOFx1ODAxZFx1ODAyOFx1ODAyZlx1ezJhMDg3fVx1ezI2Y2MzfVx1ODAzYlx1ODAzY1x1ODA2MVx1ezIyNzE0fVx1NDk4OVx1ezI2NjI2fVx1ezIzZGUzfVx1ezI2NmU4fVx1NjcyNVx1ODBhN1x1ezI4YTQ4fVx1ODEwN1x1ODEx'@; put 'YVx1NThiMFx1ezIyNmY2fVx1NmM3Zlx1ezI2NDk4fVx1ezI0ZmI4fVx1NjRlN1x1ezIxNDhhfVx1ODIxOFx1ezIxODVlfVx1NmE1M1x1ezI0YTY1fVx1ezI0YTk1fVx1NDQ3YVx1ODIyOVx1ezIwYjBkfVx1ezI2YTUyfVx1ezIzZDdlfVx1NGZmOVx1ezIxNGZkfVx1ODRlMlx1ODM2Mlx1ezI2'@; put 'YjBhfVx1ezI0OWE3fVx1ezIzNTMwfVx1ezIxNzczfVx1ezIzZGY4fVx1ODJhYVx1NjkxYlx1ezJmOTk0fVx1NDFkYiJdLFsiOGY0MCIsIlx1ODU0Ylx1ODJkMFx1ODMxYVx1ezIwZTE2fVx1ezIxN2I0fVx1MzZjMVx1ezIzMTdkfVx1ezIzNTVhfVx1ODI3Ylx1ODJlMlx1ODMxOFx1ezIzZThi'@; put 'fVx1ezI2ZGEzfVx1ezI2YjA1fVx1ezI2Yjk3fVx1ezIzNWNlfVx1M2RiZlx1ODMxZFx1NTVlY1x1ODM4NVx1NDUwYlx1ezI2ZGE1fVx1ODNhY1x1ODNjMVx1ODNkM1x1MzQ3ZVx1ezI2ZWQ0fVx1NmE1N1x1ODU1YVx1MzQ5Nlx1ezI2ZTQyfVx1ezIyZWVmfVx1ODQ1OFx1ezI1YmU0fVx1ODQ3'@; put 'MVx1M2RkM1x1NDRlNFx1NmFhN1x1ODQ0YVx1ezIzY2I1fVx1Nzk1OFx1ODRhOFx1ezI2Yjk2fVx1ezI2ZTc3fVx1ezI2ZTQzfVx1ODRkZVx1ODQwZlx1ODM5MVx1NDRhMFx1ODQ5M1x1ODRlNFx1ezI1YzkxfVx1NDI0MFx1ezI1Y2MwfVx1NDU0M1x1ODUzNFx1NWFmMlx1ezI2ZTk5fVx1NDUy'@; put 'N1x1ODU3M1x1NDUxNlx1NjdiZlx1ODYxNiJdLFsiOGZhMSIsIlx1ezI4NjI1fVx1ezI4NjNifVx1ODVjMVx1ezI3MDg4fVx1ODYwMlx1ezIxNTgyfVx1ezI3MGNkfVx1ezJmOWIyfVx1NDU2YVx1ODYyOFx1MzY0OFx1ezIxOGEyfVx1NTNmN1x1ezI3MzlhfVx1ODY3ZVx1ODc3MVx1ezJhMGY4'@; put 'fVx1ODdlZVx1ezIyYzI3fVx1ODdiMVx1ODdkYVx1ODgwZlx1NTY2MVx1ODY2Y1x1Njg1Nlx1NDYwZlx1ODg0NVx1ODg0Nlx1ezI3NWUwfVx1ezIzZGI5fVx1ezI3NWU0fVx1ODg1ZVx1ODg5Y1x1NDY1Ylx1ODhiNFx1ODhiNVx1NjNjMVx1ODhjNVx1Nzc3N1x1ezI3NzBmfVx1ODk4N1x1ODk4'@; put 'YVx1ODlhNlx1ODlhOVx1ODlhN1x1ODliY1x1ezI4YTI1fVx1ODllN1x1ezI3OTI0fVx1ezI3YWJkfVx1OGE5Y1x1Nzc5M1x1OTFmZVx1OGE5MFx1ezI3YTU5fVx1N2FlOVx1ezI3YjNhfVx1ezIzZjhmfVx1NDcxM1x1ezI3YjM4fVx1NzE3Y1x1OGIwY1x1OGIxZlx1ezI1NDMwfVx1ezI1NTY1'@; put 'fVx1OGIzZlx1OGI0Y1x1OGI0ZFx1OGFhOVx1ezI0YTdhfVx1OGI5MFx1OGI5Ylx1OGFhZlx1ezIxNmRmfVx1NDYxNVx1ODg0Zlx1OGM5Ylx1ezI3ZDU0fVx1ezI3ZDhmfVx1ezJmOWQ0fVx1MzcyNVx1ezI3ZDUzfVx1OGNkNlx1ezI3ZDk4fVx1ezI3ZGJkfVx1OGQxMlx1OGQwM1x1ezIxOTEw'@; put 'fVx1OGNkYlx1NzA1Y1x1OGQxMVx1ezI0Y2M5fVx1M2VkMFx1OGQ3NyJdLFsiOTA0MCIsIlx1OGRhOVx1ezI4MDAyfVx1ezIxMDE0fVx1ezI0OThhfVx1M2I3Y1x1ezI4MWJjfVx1ezI3MTBjfVx1N2FlN1x1OGVhZFx1OGViNlx1OGVjM1x1OTJkNFx1OGYxOVx1OGYyZFx1ezI4MzY1fVx1ezI4'@; put 'NDEyfVx1OGZhNVx1OTMwM1x1ezJhMjlmfVx1ezIwYTUwfVx1OGZiM1x1NDkyYVx1ezI4OWRlfVx1ezI4NTNkfVx1ezIzZGJifVx1NWVmOFx1ezIzMjYyfVx1OGZmOVx1ezJhMDE0fVx1ezI4NmJjfVx1ezI4NTAxfVx1ezIyMzI1fVx1Mzk4MFx1ezI2ZWQ3fVx1OTAzN1x1ezI4NTNjfVx1ezI3'@; put 'YWJlfVx1OTA2MVx1ezI4NTZjfVx1ezI4NjBifVx1OTBhOFx1ezI4NzEzfVx1OTBjNFx1ezI4NmU2fVx1OTBhZVx1OTBmZFx1OTE2N1x1M2FmMFx1OTFhOVx1OTFjNFx1N2NhY1x1ezI4OTMzfVx1ezIxZTg5fVx1OTIwZVx1NmM5Zlx1OTI0MVx1OTI2Mlx1ezI1NWI5fVx1OTJiOVx1ezI4YWM2'@; put 'fVx1ezIzYzlifVx1ezI4YjBjfVx1ezI1NWRifSJdLFsiOTBhMSIsIlx1ezIwZDMxfVx1OTMyY1x1OTM2Ylx1ezI4YWUxfVx1ezI4YmVifVx1NzA4Zlx1NWFjM1x1ezI4YWUyfVx1ezI4YWU1fVx1NDk2NVx1OTI0NFx1ezI4YmVjfVx1ezI4YzM5fVx1ezI4YmZmfVx1OTM3M1x1OTQ1Ylx1OGVi'@; put 'Y1x1OTU4NVx1OTVhNlx1OTQyNlx1OTVhMFx1NmZmNlx1NDJiOVx1ezIyNjdhfVx1ezI4NmQ4fVx1ezIxMjdjfVx1ezIzZTJlfVx1NDlkZlx1NmMxY1x1OTY3Ylx1OTY5Nlx1NDE2Y1x1OTZhM1x1ezI2ZWQ1fVx1NjFkYVx1OTZiNlx1NzhmNVx1ezI4YWUwfVx1OTZiZFx1NTNjY1x1NDlhMVx1'@; put 'ezI2Y2I4fVx1ezIwMjc0fVx1ezI2NDEwfVx1ezI5MGFmfVx1ezI5MGU1fVx1ezI0YWQxfVx1ezIxOTE1fVx1ezIzMzBhfVx1OTczMVx1ODY0Mlx1OTczNlx1NGEwZlx1NDUzZFx1NDU4NVx1ezI0YWU5fVx1NzA3NVx1NWI0MVx1OTcxYlx1OTc1Y1x1ezI5MWQ1fVx1OTc1N1x1NWI0YVx1ezI5'@; put 'MWVifVx1OTc1Zlx1OTQyNVx1NTBkMFx1ezIzMGI3fVx1ezIzMGJjfVx1OTc4OVx1OTc5Zlx1OTdiMVx1OTdiZVx1OTdjMFx1OTdkMlx1OTdlMFx1ezI1NDZjfVx1OTdlZVx1NzQxY1x1ezI5NDMzfVx1OTdmZlx1OTdmNVx1ezI5NDFkfVx1ezI3OTdhfVx1NGFkMVx1OTgzNFx1OTgzM1x1OTg0'@; put 'Ylx1OTg2Nlx1M2IwZVx1ezI3MTc1fVx1M2Q1MVx1ezIwNjMwfVx1ezI0MTVjfSJdLFsiOTE0MCIsIlx1ezI1NzA2fVx1OThjYVx1OThiN1x1OThjOFx1OThjN1x1NGFmZlx1ezI2ZDI3fVx1ezIxNmQzfVx1NTViMFx1OThlMVx1OThlNlx1OThlY1x1OTM3OFx1OTkzOVx1ezI0YTI5fVx1NGI3'@; put 'Mlx1ezI5ODU3fVx1ezI5OTA1fVx1OTlmNVx1OWEwY1x1OWEzYlx1OWExMFx1OWE1OFx1ezI1NzI1fVx1MzZjNFx1ezI5MGIxfVx1ezI5YmQ1fVx1OWFlMFx1OWFlMlx1ezI5YjA1fVx1OWFmNFx1NGMwZVx1OWIxNFx1OWIyZFx1ezI4NjAwfVx1NTAzNFx1OWIzNFx1ezI2OWE4fVx1MzhjM1x1'@; put 'ezIzMDdkfVx1OWI1MFx1OWI0MFx1ezI5ZDNlfVx1NWE0NVx1ezIxODYzfVx1OWI4ZVx1ezI0MjRifVx1OWMwMlx1OWJmZlx1OWMwY1x1ezI5ZTY4fVx1OWRkNFx1ezI5ZmI3fVx1ezJhMTkyfVx1ezJhMWFifVx1ezJhMGUxfVx1ezJhMTIzfVx1ezJhMWRmfVx1OWQ3ZVx1OWQ4M1x1ezJhMTM0'@; put 'fVx1OWUwZVx1Njg4OCJdLFsiOTFhMSIsIlx1OWRjNFx1ezIyMTVifVx1ezJhMTkzfVx1ezJhMjIwfVx1ezIxOTNifVx1ezJhMjMzfVx1OWQzOVx1ezJhMGI5fVx1ezJhMmI0fVx1OWU5MFx1OWU5NVx1OWU5ZVx1OWVhMlx1NGQzNFx1OWVhYVx1OWVhZlx1ezI0MzY0fVx1OWVjMVx1M2I2MFx1'@; put 'MzllNVx1M2QxZFx1NGYzMlx1MzdiZVx1ezI4YzJifVx1OWYwMlx1OWYwOFx1NGI5Nlx1OTQyNFx1ezI2ZGEyfVx1OWYxN1x1OWYxNlx1OWYzOVx1NTY5Zlx1NTY4YVx1OWY0NVx1OTliOFx1ezI5MDhifVx1OTdmMlx1ODQ3Zlx1OWY2Mlx1OWY2OVx1N2FkY1x1OWY4ZVx1NzIxNlx1NGJiZVx1'@; put 'ezI0OTc1fVx1ezI0OWJifVx1NzE3N1x1ezI0OWY4fVx1ezI0MzQ4fVx1ezI0YTUxfVx1NzM5ZVx1ezI4YmRhfVx1ezIxOGZhfVx1Nzk5Zlx1ezI4OTdlfVx1ezI4ZTM2fVx1OTM2OVx1OTNmM1x1ezI4YTQ0fVx1OTJlY1x1OTM4MVx1OTNjYlx1ezI4OTZjfVx1ezI0NGI5fVx1NzIxN1x1M2Vl'@; put 'Ylx1Nzc3Mlx1N2E0M1x1NzBkMFx1ezI0NDczfVx1ezI0M2Y4fVx1NzE3ZVx1ezIxN2VmfVx1NzBhM1x1ezIxOGJlfVx1ezIzNTk5fVx1M2VjN1x1ezIxODg1fVx1ezI1NDJmfVx1ezIxN2Y4fVx1MzcyMlx1ezIxNmZifVx1ezIxODM5fVx1MzZlMVx1ezIxNzc0fVx1ezIxOGQxfVx1ezI1ZjRi'@; put 'fVx1MzcyM1x1ezIxNmMwfVx1NTc1Ylx1ezI0YTI1fVx1ezIxM2ZlfVx1ezIxMmE4fSJdLFsiOTI0MCIsIlx1ezIxM2M2fVx1ezIxNGI2fVx1ODUwM1x1ezIzNmE2fVx1ODUwM1x1ODQ1NVx1ezI0OTk0fVx1ezI3MTY1fVx1ezIzZTMxfVx1ezI1NTVjfVx1ezIzZWZifVx1ezI3MDUyfVx1NDRm'@; put 'NFx1ezIzNmVlfVx1ezI5OTlkfVx1ezI2ZjI2fVx1NjdmOVx1MzczM1x1M2MxNVx1M2RlN1x1NTg2Y1x1ezIxOTIyfVx1NjgxMFx1NDA1N1x1ezIzNzNmfVx1ezI0MGUxfVx1ezI0MDhifVx1ezI0MTBmfVx1ezI2YzIxfVx1NTRjYlx1NTY5ZVx1ezI2NmIxfVx1NTY5Mlx1ezIwZmRmfVx1ezIw'@; put 'YmE4fVx1ezIwZTBkfVx1OTNjNlx1ezI4YjEzfVx1OTM5Y1x1NGVmOFx1NTEyYlx1MzgxOVx1ezI0NDM2fVx1NGViY1x1ezIwNDY1fVx1ezIwMzdmfVx1NGY0Ylx1NGY4YVx1ezI1NjUxfVx1NWE2OFx1ezIwMWFifVx1ezIwM2NifVx1Mzk5OVx1ezIwMzBhfVx1ezIwNDE0fVx1MzQzNVx1NGYy'@; put 'OVx1ezIwMmMwfVx1ezI4ZWIzfVx1ezIwMjc1fVx1OGFkYVx1ezIwMjBjfVx1NGU5OCJdLFsiOTJhMSIsIlx1NTBjZFx1NTEwZFx1NGZhMlx1NGYwM1x1ezI0YTBlfVx1ezIzZThhfVx1NGY0Mlx1NTAyZVx1NTA2Y1x1NTA4MVx1NGZjY1x1NGZlNVx1NTA1OFx1NTBmY1x1NTE1OVx1NTE1Ylx1'@; put 'NTE1ZFx1NTE1ZVx1NmU3Nlx1ezIzNTk1fVx1ezIzZTM5fVx1ezIzZWJmfVx1NmQ3Mlx1ezIxODg0fVx1ezIzZTg5fVx1NTFhOFx1NTFjM1x1ezIwNWUwfVx1NDRkZFx1ezIwNGEzfVx1ezIwNDkyfVx1ezIwNDkxfVx1OGQ3YVx1ezI4YTljfVx1ezIwNzBlfVx1NTI1OVx1NTJhNFx1ezIwODcz'@; put 'fVx1NTJlMVx1OTM2ZVx1NDY3YVx1NzE4Y1x1ezI0MzhjfVx1ezIwYzIwfVx1ezI0OWFjfVx1ezIxMGU0fVx1NjlkMVx1ezIwZTFkfVx1NzQ3OVx1M2VkZVx1NzQ5OVx1NzQxNFx1NzQ1Nlx1NzM5OFx1NGI4ZVx1ezI0YWJjfVx1ezI0MDhkfVx1NTNkMFx1MzU4NFx1NzIwZlx1ezI0MGM5fVx1'@; put 'NTViNFx1ezIwMzQ1fVx1NTRjZFx1ezIwYmM2fVx1NTcxZFx1OTI1ZFx1OTZmNFx1OTM2Nlx1NTdkZFx1NTc4ZFx1NTc3Zlx1MzYzZVx1NThjYlx1NWE5OVx1ezI4YTQ2fVx1ezIxNmZhfVx1ezIxNzZmfVx1ezIxNzEwfVx1NWEyY1x1NTliOFx1OTI4Zlx1NWE3ZVx1NWFjZlx1NWExMlx1ezI1'@; put 'OTQ2fVx1ezIxOWYzfVx1ezIxODYxfVx1ezI0Mjk1fVx1MzZmNVx1NmQwNVx1NzQ0M1x1NWEyMVx1ezI1ZTgzfSJdLFsiOTM0MCIsIlx1NWE4MVx1ezI4YmQ3fVx1ezIwNDEzfVx1OTNlMFx1NzQ4Y1x1ezIxMzAzfVx1NzEwNVx1NDk3Mlx1OTQwOFx1ezI4OWZifVx1OTNiZFx1MzdhMFx1NWMx'@; put 'ZVx1NWM5ZVx1NWU1ZVx1NWU0OFx1ezIxOTk2fVx1ezIxOTdjfVx1ezIzYWVlfVx1NWVjZFx1NWI0Zlx1ezIxOTAzfVx1ezIxOTA0fVx1MzcwMVx1ezIxOGEwfVx1MzZkZFx1ezIxNmZlfVx1MzZkM1x1ODEyYVx1ezI4YTQ3fVx1ezIxZGJhfVx1ezIzNDcyfVx1ezI4OWE4fVx1NWYwY1x1NWYw'@; put 'ZVx1ezIxOTI3fVx1ezIxN2FifVx1NWE2Ylx1ezIxNzNifVx1NWI0NFx1ODYxNFx1ezI3NWZkfVx1ODg2MFx1NjA3ZVx1ezIyODYwfVx1ezIyNjJifVx1NWZkYlx1M2ViOFx1ezIyNWFmfVx1ezIyNWJlfVx1ezI5MDg4fVx1ezI2ZjczfVx1NjFjMFx1ezIwMDNlfVx1ezIwMDQ2fVx1ezIyNjFi'@; put 'fVx1NjE5OVx1NjE5OFx1NjA3NVx1ezIyYzlifVx1ezIyZDA3fVx1ezI0NmQ0fVx1ezI5MTRkfSJdLFsiOTNhMSIsIlx1NjQ3MVx1ezI0NjY1fVx1ezIyYjZhfVx1M2EyOVx1ezIyYjIyfVx1ezIzNDUwfVx1ezI5OGVhfVx1ezIyZTc4fVx1NjMzN1x1ezJhNDVifVx1NjRiNlx1NjMzMVx1NjNk'@; put 'MVx1ezI0OWUzfVx1ezIyZDY3fVx1NjJhNFx1ezIyY2ExfVx1NjQzYlx1NjU2Ylx1Njk3Mlx1M2JmNFx1ezIzMDhlfVx1ezIzMmFkfVx1ezI0OTg5fVx1ezIzMmFifVx1NTUwZFx1ezIzMmUwfVx1ezIxOGQ5fVx1ezI5NDNmfVx1NjZjZVx1ezIzMjg5fVx1ezIzMWIzfVx1M2FlMFx1NDE5MFx1'@; put 'ezI1NTg0fVx1ezI4YjIyfVx1ezI1NThmfVx1ezIxNmZjfVx1ezI1NTVifVx1ezI1NDI1fVx1NzhlZVx1ezIzMTAzfVx1ezIxODJhfVx1ezIzMjM0fVx1MzQ2NFx1ezIzMjBmfVx1ezIzMTgyfVx1ezI0MmM5fVx1NjY4ZVx1ezI2ZDI0fVx1NjY2Ylx1NGI5M1x1NjYzMFx1ezI3ODcwfVx1ezIx'@; put 'ZGVifVx1NjY2M1x1ezIzMmQyfVx1ezIzMmUxfVx1NjYxZVx1ezI1ODcyfVx1MzhkMVx1ezIzODNhfVx1ezIzN2JjfVx1M2I5OVx1ezIzN2EyfVx1ezIzM2ZlfVx1NzRkMFx1M2I5Nlx1Njc4Zlx1ezI0NjJhfVx1NjhiNlx1NjgxZVx1M2JjNFx1NmFiZVx1Mzg2M1x1ezIzN2Q1fVx1ezI0NDg3'@; put 'fVx1NmEzM1x1NmE1Mlx1NmFjOVx1NmIwNVx1ezIxOTEyfVx1NjUxMVx1Njg5OFx1NmE0Y1x1M2JkN1x1NmE3YVx1NmI1N1x1ezIzZmMwfVx1ezIzYzlhfVx1OTNhMFx1OTJmMlx1ezI4YmVhfVx1ezI4YWNifSJdLFsiOTQ0MCIsIlx1OTI4OVx1ezI4MDFlfVx1ezI4OWRjfVx1OTQ2N1x1NmRh'@; put 'NVx1NmYwYlx1ezI0OWVjfVx1NmQ2N1x1ezIzZjdmfVx1M2Q4Zlx1NmUwNFx1ezI0MDNjfVx1NWEzZFx1NmUwYVx1NTg0N1x1NmQyNFx1Nzg0Mlx1NzEzYlx1ezI0MzFhfVx1ezI0Mjc2fVx1NzBmMVx1NzI1MFx1NzI4N1x1NzI5NFx1ezI0NzhmfVx1ezI0NzI1fVx1NTE3OVx1ezI0YWE0fVx1'@; put 'ezIwNWVifVx1NzQ3YVx1ezIzZWY4fVx1ezIzNjVmfVx1ezI0YTRhfVx1ezI0OTE3fVx1ezI1ZmUxfVx1M2YwNlx1M2ViMVx1ezI0YWRmfVx1ezI4YzIzfVx1ezIzZjM1fVx1NjBhN1x1M2VmM1x1NzRjY1x1NzQzY1x1OTM4N1x1NzQzN1x1NDQ5Zlx1ezI2ZGVhfVx1NDU1MVx1NzU4M1x1M2Y2'@; put 'M1x1ezI0Y2Q5fVx1ezI0ZDA2fVx1M2Y1OFx1NzU1NVx1NzY3M1x1ezJhNWM2fVx1M2IxOVx1NzQ2OFx1ezI4YWNjfVx1ezI0OWFifVx1ezI0OThlfVx1M2FmYiJdLFsiOTRhMSIsIlx1M2RjZFx1ezI0YTRlfVx1M2VmZlx1ezI0OWM1fVx1ezI0OGYzfVx1OTFmYVx1NTczMlx1OTM0Mlx1ezI4'@; put 'YWUzfVx1ezIxODY0fVx1NTBkZlx1ezI1MjIxfVx1ezI1MWU3fVx1Nzc3OFx1ezIzMjMyfVx1NzcwZVx1NzcwZlx1Nzc3Ylx1ezI0Njk3fVx1ezIzNzgxfVx1M2E1ZVx1ezI0OGYwfVx1NzQzOFx1NzQ5Ylx1M2ViZlx1ezI0YWJhfVx1ezI0YWM3fVx1NDBjOFx1ezI0YTk2fVx1ezI2MWFlfVx1'@; put 'OTMwN1x1ezI1NTgxfVx1NzgxZVx1Nzg4ZFx1Nzg4OFx1NzhkMlx1NzNkMFx1Nzk1OVx1ezI3NzQxfVx1ezI1NmUzfVx1NDEwZVx1Nzk5Ylx1ODQ5Nlx1NzlhNVx1NmEyZFx1ezIzZWZhfVx1N2EzYVx1NzlmNFx1NDE2ZVx1ezIxNmU2fVx1NDEzMlx1OTIzNVx1NzlmMVx1ezIwZDRjfVx1ezI0'@; put 'OThjfVx1ezIwMjk5fVx1ezIzZGJhfVx1ezIxNzZlfVx1MzU5N1x1NTU2Ylx1MzU3MFx1MzZhYVx1ezIwMWQ0fVx1ezIwYzBkfVx1N2FlMlx1NWE1OVx1ezIyNmY1fVx1ezI1YWFmfVx1ezI1YTljfVx1NWEwZFx1ezIwMjVifVx1NzhmMFx1NWEyYVx1ezI1YmM2fVx1N2FmZVx1NDFmOVx1N2M1'@; put 'ZFx1N2M2ZFx1NDIxMVx1ezI1YmIzfVx1ezI1ZWJjfVx1ezI1ZWE2fVx1N2NjZFx1ezI0OWY5fVx1ezIxN2IwfVx1N2M4ZVx1N2M3Y1x1N2NhZVx1NmFiMlx1N2RkY1x1N2UwN1x1N2RkM1x1N2Y0ZVx1ezI2MjYxfSJdLFsiOTU0MCIsIlx1ezI2MTVjfVx1ezI3YjQ4fVx1N2Q5N1x1ezI1ZTgy'@; put 'fVx1NDI2YVx1ezI2Yjc1fVx1ezIwOTE2fVx1NjdkNlx1ezIwMDRlfVx1ezIzNWNmfVx1NTdjNFx1ezI2NDEyfVx1ezI2M2Y4fVx1ezI0OTYyfVx1N2ZkZFx1N2IyN1x1ezIwODJjfVx1ezI1YWU5fVx1ezI1ZDQzfVx1N2IwY1x1ezI1ZTBlfVx1OTllNlx1ODY0NVx1OWE2M1x1NmExY1x1ezIz'@; put 'NDNmfVx1MzllMlx1ezI0OWY3fVx1ezI2NWFkfVx1OWExZlx1ezI2NWEwfVx1ODQ4MFx1ezI3MTI3fVx1ezI2Y2QxfVx1NDRlYVx1ODEzN1x1NDQwMlx1ODBjNlx1ODEwOVx1ODE0Mlx1ezI2N2I0fVx1OThjM1x1ezI2YTQyfVx1ODI2Mlx1ODI2NVx1ezI2YTUxfVx1ODQ1M1x1ezI2ZGE3fVx1'@; put 'ODYxMFx1ezI3MjFifVx1NWE4Nlx1NDE3Zlx1ezIxODQwfVx1NWIyYlx1ezIxOGExfVx1NWFlNFx1ezIxOGQ4fVx1ODZhMFx1ezJmOWJjfVx1ezIzZDhmfVx1ODgyZFx1ezI3NDIyfVx1NWEwMiJdLFsiOTVhMSIsIlx1ODg2ZVx1NGY0NVx1ODg4N1x1ODhiZlx1ODhlNlx1ODk2NVx1ODk0ZFx1'@; put 'ezI1NjgzfVx1ODk1NFx1ezI3Nzg1fVx1ezI3Nzg0fVx1ezI4YmY1fVx1ezI4YmQ5fVx1ezI4YjljfVx1ezI4OWY5fVx1M2VhZFx1ODRhM1x1NDZmNVx1NDZjZlx1MzdmMlx1OGEzZFx1OGExY1x1ezI5NDQ4fVx1NWY0ZFx1OTIyYlx1ezI0Mjg0fVx1NjVkNFx1NzEyOVx1NzBjNFx1ezIxODQ1'@; put 'fVx1OWQ2ZFx1OGM5Zlx1OGNlOVx1ezI3ZGRjfVx1NTk5YVx1NzdjM1x1NTlmMFx1NDM2ZVx1MzZkNFx1OGUyYVx1OGVhN1x1ezI0YzA5fVx1OGYzMFx1OGY0YVx1NDJmNFx1NmM1OFx1NmZiYlx1ezIyMzIxfVx1NDg5Ylx1NmY3OVx1NmU4Ylx1ezIxN2RhfVx1OWJlOVx1MzZiNVx1ezI0OTJm'@; put 'fVx1OTBiYlx1OTA5N1x1NTU3MVx1NDkwNlx1OTFiYlx1OTQwNFx1ezI4YTRifVx1NDA2Mlx1ezI4YWZjfVx1OTQyN1x1ezI4YzFkfVx1ezI4YzNifVx1ODRlNVx1OGEyYlx1OTU5OVx1OTVhN1x1OTU5N1x1OTU5Nlx1ezI4ZDM0fVx1NzQ0NVx1M2VjMlx1ezI0OGZmfVx1ezI0YTQyfVx1ezI0'@; put 'M2VhfVx1M2VlN1x1ezIzMjI1fVx1OTY4Zlx1ezI4ZWU3fVx1ezI4ZTY2fVx1ezI4ZTY1fVx1M2VjY1x1ezI0OWVkfVx1ezI0YTc4fVx1ezIzZmVlfVx1NzQxMlx1NzQ2Ylx1M2VmY1x1OTc0MVx1ezI5MGIwfSJdLFsiOTY0MCIsIlx1Njg0N1x1NGExZFx1ezI5MDkzfVx1ezI1N2RmfVx1OTc1'@; put 'ZFx1OTM2OFx1ezI4OTg5fVx1ezI4YzI2fVx1ezI4YjJmfVx1ezI2M2JlfVx1OTJiYVx1NWIxMVx1OGI2OVx1NDkzY1x1NzNmOVx1ezI0MjFifVx1OTc5Ylx1OTc3MVx1OTkzOFx1ezIwZjI2fVx1NWRjMVx1ezI4YmM1fVx1ezI0YWIyfVx1OTgxZlx1ezI5NGRhfVx1OTJmNlx1ezI5NWQ3fVx1'@; put 'OTFlNVx1NDRjMFx1ezI4YjUwfVx1ezI0YTY3fVx1ezI4YjY0fVx1OThkY1x1ezI4YTQ1fVx1M2YwMFx1OTIyYVx1NDkyNVx1ODQxNFx1OTkzYlx1OTk0ZFx1ezI3YjA2fVx1M2RmZFx1OTk5Ylx1NGI2Zlx1OTlhYVx1OWE1Y1x1ezI4YjY1fVx1ezI1OGM4fVx1NmE4Zlx1OWEyMVx1NWFmZVx1'@; put 'OWEyZlx1ezI5OGYxfVx1NGI5MFx1ezI5OTQ4fVx1OTliY1x1NGJiZFx1NGI5N1x1OTM3ZFx1NTg3Mlx1ezIxMzAyfVx1NTgyMlx1ezI0OWI4fSJdLFsiOTZhMSIsIlx1ezIxNGU4fVx1Nzg0NFx1ezIyNzFmfVx1ezIzZGI4fVx1NjhjNVx1M2Q3ZFx1OTQ1OFx1MzkyN1x1NjE1MFx1ezIyNzgx'@; put 'fVx1ezIyOTZifVx1NjEwN1x1OWM0Zlx1OWM1M1x1OWM3Ylx1OWMzNVx1OWMxMFx1OWI3Zlx1OWJjZlx1ezI5ZTJkfVx1OWI5Zlx1ezJhMWY1fVx1ezJhMGZlfVx1OWQyMVx1NGNhZVx1ezI0MTA0fVx1OWUxOFx1NGNiMFx1OWQwY1x1ezJhMWI0fVx1ezJhMGVkfVx1ezJhMGYzfVx1ezI5OTJm'@; put 'fVx1OWRhNVx1ODRiZFx1ezI2ZTEyfVx1ezI2ZmRmfVx1ezI2YjgyfVx1ODVmY1x1NDUzM1x1ezI2ZGE0fVx1ezI2ZTg0fVx1ezI2ZGYwfVx1ODQyMFx1ODVlZVx1ezI2ZTAwfVx1ezIzN2Q3fVx1ezI2MDY0fVx1NzllMlx1ezIzNTljfVx1ezIzNjQwfVx1NDkyZFx1ezI0OWRlfVx1M2Q2Mlx1'@; put 'OTNkYlx1OTJiZVx1OTM0OFx1ezIwMmJmfVx1NzhiOVx1OTI3N1x1OTQ0ZFx1NGZlNFx1MzQ0MFx1OTA2NFx1ezI1NTVkfVx1NzgzZFx1Nzg1NFx1NzhiNlx1Nzg0Ylx1ezIxNzU3fVx1ezIzMWM5fVx1ezI0OTQxfVx1MzY5YVx1NGY3Mlx1NmZkYVx1NmZkOVx1NzAxZVx1NzAxZVx1NTQxNFx1'@; put 'ezI0MWI1fVx1NTdiYlx1NThmM1x1NTc4YVx1OWQxNlx1NTdkN1x1NzEzNFx1MzRhZlx1ezI0MWFjfVx1NzFlYlx1ezI2YzQwfVx1ezI0Zjk3fVx1NWIyOFx1ezIxN2I1fVx1ezI4YTQ5fSJdLFsiOTc0MCIsIlx1NjEwY1x1NWFjZVx1NWEwYlx1NDJiY1x1ezI0NDg4fVx1MzcyY1x1NGI3Ylx1'@; put 'ezI4OWZjfVx1OTNiYlx1OTNiOFx1ezIxOGQ2fVx1ezIwZjFkfVx1ODQ3Mlx1ezI2Y2MwfVx1ezIxNDEzfVx1ezI0MmZhfVx1ezIyYzI2fVx1ezI0M2MxfVx1NTk5NFx1ezIzZGI3fVx1ezI2NzQxfVx1N2RhOFx1ezI2MTVifVx1ezI2MGE0fVx1ezI0OWI5fVx1ezI0OThifVx1ezI4OWZhfVx1'@; put 'OTJlNVx1NzNlMlx1M2VlOVx1NzRiNFx1ezI4YjYzfVx1ezIxODlmfVx1M2VlMVx1ezI0YWIzfVx1NmFkOFx1NzNmM1x1NzNmYlx1M2VkNlx1ezI0YTNlfVx1ezI0YTk0fVx1ezIxN2Q5fVx1ezI0YTY2fVx1ezIwM2E3fVx1ezIxNDI0fVx1ezI0OWU1fVx1NzQ0OFx1ezI0OTE2fVx1NzBhNVx1'@; put 'ezI0OTc2fVx1OTI4NFx1NzNlNlx1OTM1Zlx1ezIwNGZlfVx1OTMzMVx1ezI4YWNlfVx1ezI4YTE2fVx1OTM4Nlx1ezI4YmU3fVx1ezI1NWQ1fVx1NDkzNVx1ezI4YTgyfVx1NzE2YiJdLFsiOTdhMSIsIlx1ezI0OTQzfVx1ezIwY2ZmfVx1NTZhNFx1ezIwNjFhfVx1ezIwYmVifVx1ezIwY2I4'@; put 'fVx1NTUwMlx1NzljNFx1ezIxN2ZhfVx1N2RmZVx1ezIxNmMyfVx1ezI0YTUwfVx1ezIxODUyfVx1NDUyZVx1OTQwMVx1MzcwYVx1ezI4YWMwfVx1ezI0OWFkfVx1NTliMFx1ezIxOGJmfVx1ezIxODgzfVx1ezI3NDg0fVx1NWFhMVx1MzZlMlx1ezIzZDVifVx1MzZiMFx1OTI1Zlx1NWE3OVx1'@; put 'ezI4YTgxfVx1ezIxODYyfVx1OTM3NFx1M2NjZFx1ezIwYWI0fVx1NGE5Nlx1Mzk4YVx1NTBmNFx1M2Q2OVx1M2Q0Y1x1ezIxMzljfVx1NzE3NVx1NDJmYlx1ezI4MjE4fVx1NmUwZlx1ezI5MGU0fVx1NDRlYlx1NmQ1N1x1ezI3ZTRmfVx1NzA2N1x1NmNhZlx1M2NkNlx1ezIzZmVkfVx1ezIz'@; put 'ZTJkfVx1NmUwMlx1NmYwY1x1M2Q2Zlx1ezIwM2Y1fVx1NzU1MVx1MzZiY1x1MzRjOFx1NDY4MFx1M2VkYVx1NDg3MVx1NTljNFx1OTI2ZVx1NDkzZVx1OGY0MVx1ezI4YzFjfVx1ezI2YmMwfVx1NTgxMlx1NTdjOFx1MzZkNlx1ezIxNDUyfVx1NzBmZVx1ezI0MzYyfVx1ezI0YTcxfVx1ezIy'@; put 'ZmUzfVx1ezIxMmIwfVx1ezIyM2JkfVx1NjhiOVx1Njk2N1x1ezIxMzk4fVx1ezIzNGU1fVx1ezI3YmY0fVx1ezIzNmRmfVx1ezI4YTgzfVx1ezIzN2Q2fVx1ezIzM2ZhfVx1ezI0YzlmfVx1NmExYVx1ezIzNmFkfVx1ezI2Y2I3fVx1ODQzZVx1NDRkZlx1NDRjZSJdLFsiOTg0MCIsIlx1ezI2'@; put 'ZDI2fVx1ezI2ZDUxfVx1ezI2YzgyfVx1ezI2ZmRlfVx1NmYxN1x1ezI3MTA5fVx1ODMzZFx1ezIxNzNhfVx1ODNlZFx1ezI2YzgwfVx1ezI3MDUzfVx1ezIxN2RifVx1NTk4OVx1NWE4Mlx1ezIxN2IzfVx1NWE2MVx1NWE3MVx1ezIxOTA1fVx1ezI0MWZjfVx1MzcyZFx1NTllZlx1ezIxNzNj'@; put 'fVx1MzZjN1x1NzE4ZVx1OTM5MFx1NjY5YVx1ezI0MmE1fVx1NWE2ZVx1NWEyYlx1ezI0MjkzfVx1NmEyYlx1ezIzZWY5fVx1ezI3NzM2fVx1ezI0NDVifVx1ezI0MmNhfVx1NzExZFx1ezI0MjU5fVx1ezI4OWUxfVx1NGZiMFx1ezI2ZDI4fVx1NWNjMlx1ezI0NGNlfVx1ezI3ZTRkfVx1ezI0'@; put 'M2JkfVx1NmEwY1x1ezI0MjU2fVx1ezIxMzA0fVx1NzBhNlx1NzEzM1x1ezI0M2U5fVx1M2RhNVx1NmNkZlx1ezJmODI1fVx1ezI0YTRmfVx1N2U2NVx1NTllYlx1NWQyZlx1M2RmM1x1NWY1Y1x1ezI0YTVkfVx1ezIxN2RmfVx1N2RhNFx1ODQyNiJdLFsiOThhMSIsIlx1NTQ4NVx1ezIzYWZh'@; put 'fVx1ezIzMzAwfVx1ezIwMjE0fVx1NTc3ZVx1ezIwOGQ1fVx1ezIwNjE5fVx1M2ZlNVx1ezIxZjllfVx1ezJhMmI2fVx1NzAwM1x1ezI5MTVifVx1NWQ3MFx1NzM4Zlx1N2NkM1x1ezI4YTU5fVx1ezI5NDIwfVx1NGZjOFx1N2ZlN1x1NzJjZFx1NzMxMFx1ezI3YWY0fVx1NzMzOFx1NzMzOVx1'@; put 'ezI1NmY2fVx1NzM0MVx1NzM0OFx1M2VhOVx1ezI3YjE4fVx1OTA2Y1x1NzFmNVx1ezI0OGYyfVx1NzNlMVx1ODFmNlx1M2VjYVx1NzcwY1x1M2VkMVx1NmNhMlx1NTZmZFx1NzQxOVx1NzQxZVx1NzQxZlx1M2VlMlx1M2VmMFx1M2VmNFx1M2VmYVx1NzRkM1x1M2YwZVx1M2Y1M1x1NzU0Mlx1'@; put 'NzU2ZFx1NzU3Mlx1NzU4ZFx1M2Y3Y1x1NzVjOFx1NzVkY1x1M2ZjMFx1NzY0ZFx1M2ZkN1x1NzY3NFx1M2ZkY1x1NzY3YVx1ezI0ZjVjfVx1NzE4OFx1NTYyM1x1ODk4MFx1NTg2OVx1NDAxZFx1Nzc0M1x1NDAzOVx1Njc2MVx1NDA0NVx1MzVkYlx1Nzc5OFx1NDA2YVx1NDA2Zlx1NWM1ZVx1'@; put 'NzdiZVx1NzdjYlx1NThmMlx1NzgxOFx1NzBiOVx1NzgxY1x1NDBhOFx1NzgzOVx1Nzg0N1x1Nzg1MVx1Nzg2Nlx1ODQ0OFx1ezI1NTM1fVx1NzkzM1x1NjgwM1x1NzkzMlx1NDEwMyJdLFsiOTk0MCIsIlx1NDEwOVx1Nzk5MVx1Nzk5OVx1OGZiYlx1N2EwNlx1OGZiY1x1NDE2N1x1N2E5MVx1'@; put 'NDFiMlx1N2FiY1x1ODI3OVx1NDFjNFx1N2FjZlx1N2FkYlx1NDFjZlx1NGUyMVx1N2I2Mlx1N2I2Y1x1N2I3Ylx1N2MxMlx1N2MxYlx1NDI2MFx1NDI3YVx1N2M3Ylx1N2M5Y1x1NDI4Y1x1N2NiOFx1NDI5NFx1N2NlZFx1OGY5M1x1NzBjMFx1ezIwY2NmfVx1N2RjZlx1N2RkNFx1N2RkMFx1'@; put 'N2RmZFx1N2ZhZVx1N2ZiNFx1NzI5Zlx1NDM5N1x1ODAyMFx1ODAyNVx1N2IzOVx1ODAyZVx1ODAzMVx1ODA1NFx1M2RjY1x1NTdiNFx1NzBhMFx1ODBiN1x1ODBlOVx1NDNlZFx1ODEwY1x1NzMyYVx1ODEwZVx1ODExMlx1NzU2MFx1ODExNFx1NDQwMVx1M2IzOVx1ODE1Nlx1ODE1OVx1ODE1'@; put 'YSJdLFsiOTlhMSIsIlx1NDQxM1x1NTgzYVx1ODE3Y1x1ODE4NFx1NDQyNVx1ODE5M1x1NDQyZFx1ODFhNVx1NTdlZlx1ODFjMVx1ODFlNFx1ODI1NFx1NDQ4Zlx1ODJhNlx1ODI3Nlx1ODJjYVx1ODJkOFx1ODJmZlx1NDRiMFx1ODM1N1x1OTY2OVx1Njk4YVx1ODQwNVx1NzBmNVx1ODQ2NFx1'@; put 'NjBlM1x1ODQ4OFx1NDUwNFx1ODRiZVx1ODRlMVx1ODRmOFx1ODUxMFx1ODUzOFx1ODU1Mlx1NDUzYlx1ODU2Zlx1ODU3MFx1ODVlMFx1NDU3N1x1ODY3Mlx1ODY5Mlx1ODZiMlx1ODZlZlx1OTY0NVx1ODc4Ylx1NDYwNlx1NDYxN1x1ODhhZVx1ODhmZlx1ODkyNFx1ODk0N1x1ODk5MVx1ezI3'@; put 'OTY3fVx1OGEyOVx1OGEzOFx1OGE5NFx1OGFiNFx1OGM1MVx1OGNkNFx1OGNmMlx1OGQxY1x1NDc5OFx1NTg1Zlx1OGRjM1x1NDdlZFx1NGVlZVx1OGUzYVx1NTVkOFx1NTc1NFx1OGU3MVx1NTVmNVx1OGViMFx1NDgzN1x1OGVjZVx1OGVlMlx1OGVlNFx1OGVlZFx1OGVmMlx1OGZiN1x1OGZj'@; put 'MVx1OGZjYVx1OGZjY1x1OTAzM1x1OTljNFx1NDhhZFx1OThlMFx1OTIxM1x1NDkxZVx1OTIyOFx1OTI1OFx1OTI2Ylx1OTJiMVx1OTJhZVx1OTJiZiJdLFsiOWE0MCIsIlx1OTJlM1x1OTJlYlx1OTJmM1x1OTJmNFx1OTJmZFx1OTM0M1x1OTM4NFx1OTNhZFx1NDk0NVx1NDk1MVx1OWViZlx1'@; put 'OTQxN1x1NTMwMVx1OTQxZFx1OTQyZFx1OTQzZVx1NDk2YVx1OTQ1NFx1OTQ3OVx1OTUyZFx1OTVhMlx1NDlhN1x1OTVmNFx1OTYzM1x1NDllNVx1NjdhMFx1NGEyNFx1OTc0MFx1NGEzNVx1OTdiMlx1OTdjMlx1NTY1NFx1NGFlNFx1NjBlOFx1OThiOVx1NGIxOVx1OThmMVx1NTg0NFx1OTkw'@; put 'ZVx1OTkxOVx1NTFiNFx1OTkxY1x1OTkzN1x1OTk0Mlx1OTk1ZFx1OTk2Mlx1NGI3MFx1OTljNVx1NGI5ZFx1OWEzY1x1OWIwZlx1N2E4M1x1OWI2OVx1OWI4MVx1OWJkZFx1OWJmMVx1OWJmNFx1NGM2ZFx1OWMyMFx1Mzc2Zlx1ezIxYmMyfVx1OWQ0OVx1OWMzYSJdLFsiOWFhMSIsIlx1OWVm'@; put 'ZVx1NTY1MFx1OWQ5M1x1OWRiZFx1OWRjMFx1OWRmY1x1OTRmNlx1OGZiNlx1OWU3Ylx1OWVhY1x1OWViMVx1OWViZFx1OWVjNlx1OTRkY1x1OWVlMlx1OWVmMVx1OWVmOFx1N2FjOFx1OWY0NFx1ezIwMDk0fVx1ezIwMmI3fVx1ezIwM2EwfVx1NjkxYVx1OTRjM1x1NTlhY1x1ezIwNGQ3fVx1'@; put 'NTg0MFx1OTRjMVx1MzdiOVx1ezIwNWQ1fVx1ezIwNjE1fVx1ezIwNjc2fVx1ezIxNmJhfVx1NTc1N1x1NzE3M1x1ezIwYWMyfVx1ezIwYWNkfVx1ezIwYmJmfVx1NTQ2YVx1ezJmODNifVx1ezIwYmNifVx1NTQ5ZVx1ezIwYmZifVx1ezIwYzNifVx1ezIwYzUzfVx1ezIwYzY1fVx1ezIwYzdj'@; put 'fVx1NjBlN1x1ezIwYzhkfVx1NTY3YVx1ezIwY2I1fVx1ezIwY2RkfVx1ezIwY2VkfVx1ezIwZDZmfVx1ezIwZGIyfVx1ezIwZGM4fVx1Njk1NVx1OWMyZlx1ODdhNVx1ezIwZTA0fVx1ezIwZTBlfVx1ezIwZWQ3fVx1ezIwZjkwfVx1ezIwZjJkfVx1ezIwZTczfVx1NWMyMFx1ezIwZmJjfVx1'@; put 'NWUwYlx1ezIxMDVjfVx1ezIxMDRmfVx1ezIxMDc2fVx1NjcxZVx1ezIxMDdifVx1ezIxMDg4fVx1ezIxMDk2fVx1MzY0N1x1ezIxMGJmfVx1ezIxMGQzfVx1ezIxMTJmfVx1ezIxMTNifVx1NTM2NFx1ODRhZFx1ezIxMmUzfVx1ezIxMzc1fVx1ezIxMzM2fVx1OGI4MVx1ezIxNTc3fVx1ezIx'@; put 'NjE5fVx1ezIxN2MzfVx1ezIxN2M3fVx1NGU3OFx1NzBiYlx1ezIxODJkfVx1ezIxOTZhfSJdLFsiOWI0MCIsIlx1ezIxYTJkfVx1ezIxYTQ1fVx1ezIxYzJhfVx1ezIxYzcwfVx1ezIxY2FjfVx1ezIxZWM4fVx1NjJjM1x1ezIxZWQ1fVx1ezIxZjE1fVx1NzE5OFx1Njg1NVx1ezIyMDQ1fVx1'@; put 'NjllOVx1MzZjOFx1ezIyMjdjfVx1ezIyM2Q3fVx1ezIyM2ZhfVx1ezIyNzJhfVx1ezIyODcxfVx1ezIyOTRmfVx1ODJmZFx1ezIyOTY3fVx1ezIyOTkzfVx1ezIyYWQ1fVx1ODlhNVx1ezIyYWU4fVx1OGZhMFx1ezIyYjBlfVx1OTdiOFx1ezIyYjNmfVx1OTg0N1x1OWFiZFx1ezIyYzRjfSJd'@; put 'LFsiOWI2MiIsIlx1ezIyYzg4fVx1ezIyY2I3fVx1ezI1YmU4fVx1ezIyZDA4fVx1ezIyZDEyfVx1ezIyZGI3fVx1ezIyZDk1fVx1ezIyZTQyfVx1ezIyZjc0fVx1ezIyZmNjfVx1ezIzMDMzfVx1ezIzMDY2fVx1ezIzMzFmfVx1ezIzM2RlfVx1NWZiMVx1NjY0OFx1NjZiZlx1ezI3YTc5fVx1'@; put 'ezIzNTY3fVx1ezIzNWYzfVx1NzIwMVx1ezI0OWJhfVx1NzdkN1x1ezIzNjFhfVx1ezIzNzE2fVx1N2U4N1x1ezIwMzQ2fVx1NThiNVx1NjcwZSJdLFsiOWJhMSIsIlx1NjkxOFx1ezIzYWE3fVx1ezI3NjU3fVx1ezI1ZmUyfVx1ezIzZTExfVx1ezIzZWI5fVx1ezI3NWZlfVx1ezIyMDlhfVx1'@; put 'NDhkMFx1NGFiOFx1ezI0MTE5fVx1ezI4YTlhfVx1ezI0MmVlfVx1ezI0MzBkfVx1ezI0MDNifVx1ezI0MzM0fVx1ezI0Mzk2fVx1ezI0YTQ1fVx1ezIwNWNhfVx1NTFkMlx1ezIwNjExfVx1NTk5Zlx1ezIxZWE4fVx1M2JiZVx1ezIzY2ZmfVx1ezI0NDA0fVx1ezI0NGQ2fVx1NTc4OFx1ezI0'@; put 'Njc0fVx1Mzk5Ylx1ezI0NzJmfVx1ezI4NWU4fVx1ezI5OWM5fVx1Mzc2Mlx1ezIyMWMzfVx1OGI1ZVx1ezI4YjRlfVx1OTlkNlx1ezI0ODEyfVx1ezI0OGZifVx1ezI0YTE1fVx1NzIwOVx1ezI0YWMwfVx1ezIwYzc4fVx1NTk2NVx1ezI0ZWE1fVx1ezI0Zjg2fVx1ezIwNzc5fVx1OGVkYVx1'@; put 'ezI1MDJjfVx1NTI4Zlx1NTczZlx1NzE3MVx1ezI1Mjk5fVx1ezI1NDE5fVx1ezIzZjRhfVx1ezI0YWE3fVx1NTViY1x1ezI1NDQ2fVx1ezI1NDZlfVx1ezI2YjUyfVx1OTFkNFx1MzQ3M1x1ezI1NTNmfVx1ezI3NjMyfVx1ezI1NTVlfVx1NDcxOFx1ezI1NTYyfVx1ezI1NTY2fVx1ezI1N2M3'@; put 'fVx1ezI0OTNmfVx1ezI1ODVkfVx1NTA2Nlx1MzRmYlx1ezIzM2NjfVx1NjBkZVx1ezI1OTAzfVx1NDc3Y1x1ezI4OTQ4fVx1ezI1YWFlfVx1ezI1Yjg5fVx1ezI1YzA2fVx1ezIxZDkwfVx1NTdhMVx1NzE1MVx1NmZiNlx1ezI2MTAyfVx1ezI3YzEyfVx1OTA1Nlx1ezI2MWIyfVx1ezI0Zjlh'@; put 'fVx1OGI2Mlx1ezI2NDAyfVx1ezI2NDRhfSJdLFsiOWM0MCIsIlx1NWQ1Ylx1ezI2YmY3fVx1OGYzNlx1ezI2NDg0fVx1ezIxOTFjfVx1OGFlYVx1ezI0OWY2fVx1ezI2NDg4fVx1ezIzZmVmfVx1ezI2NTEyfVx1NGJjMFx1ezI2NWJmfVx1ezI2NmI1fVx1ezIyNzFifVx1OTQ2NVx1ezI1N2Ux'@; put 'fVx1NjE5NVx1NWEyN1x1ezJmOGNkfVx1NGZiYlx1NTZiOVx1ezI0NTIxfVx1ezI2NmZjfVx1NGU2YVx1ezI0OTM0fVx1OTY1Nlx1NmQ4Zlx1ezI2Y2JkfVx1MzYxOFx1ODk3N1x1ezI2Nzk5fVx1ezI2ODZlfVx1ezI2NDExfVx1ezI2ODVlfVx1NzFkZlx1ezI2OGM3fVx1N2I0Mlx1ezI5MGMw'@; put 'fVx1ezIwYTExfVx1ezI2OTI2fVx1OTEwNFx1ezI2OTM5fVx1N2E0NVx1OWRmMFx1ezI2OWZhfVx1OWEyNlx1ezI2YTJkfVx1MzY1Zlx1ezI2NDY5fVx1ezIwMDIxfVx1Nzk4M1x1ezI2YTM0fVx1ezI2YjVifVx1NWQyY1x1ezIzNTE5fVx1ODNjZlx1ezI2YjlkfVx1NDZkMFx1ezI2Y2E0fVx1'@; put 'NzUzYlx1ODg2NVx1ezI2ZGFlfVx1NThiNiJdLFsiOWNhMSIsIlx1MzcxY1x1ezIyNThkfVx1ezI3MDRifVx1ezI3MWNkfVx1M2M1NFx1ezI3MjgwfVx1ezI3Mjg1fVx1OTI4MVx1ezIyMTdhfVx1ezI3MjhifVx1OTMzMFx1ezI3MmU2fVx1ezI0OWQwfVx1NmMzOVx1OTQ5Zlx1ezI3NDUwfVx1'@; put 'ezIwZWY4fVx1ODgyN1x1ODhmNVx1ezIyOTI2fVx1ezI4NDczfVx1ezIxN2IxfVx1NmViOFx1ezI0YTJhfVx1ezIxODIwfVx1MzlhNFx1MzZiOVx1NWMxMFx1NzllM1x1NDUzZlx1NjZiNlx1ezI5Y2FkfVx1ezI5OGE0fVx1ODk0M1x1ezI3N2NjfVx1ezI3ODU4fVx1NTZkNlx1NDBkZlx1ezIx'@; put 'NjBhfVx1MzlhMVx1ezIzNzJmfVx1ezI4MGU4fVx1ezIxM2M1fVx1NzFhZFx1ODM2Nlx1ezI3OWRkfVx1ezI5MWE4fVx1NWE2N1x1NGNiN1x1ezI3MGFmfVx1ezI4OWFifVx1ezI3OWZkfVx1ezI3YTBhfVx1ezI3YjBifVx1ezI3ZDY2fVx1ezI0MTdhfVx1N2I0M1x1Nzk3ZVx1ezI4MDA5fVx1'@; put 'NmZiNVx1ezJhMmRmfVx1NmEwM1x1ezI4MzE4fVx1NTNhMlx1ezI2ZTA3fVx1OTNiZlx1NjgzNlx1OTc1ZFx1ezI4MTZmfVx1ezI4MDIzfVx1ezI2OWI1fVx1ezIxM2VkfVx1ezIzMjJmfVx1ezI4MDQ4fVx1NWQ4NVx1ezI4YzMwfVx1ezI4MDgzfVx1NTcxNVx1OTgyM1x1ezI4OTQ5fVx1NWRh'@; put 'Ylx1ezI0OTg4fVx1NjViZVx1NjlkNVx1NTNkMlx1ezI0YWE1fVx1ezIzZjgxfVx1M2MxMVx1NjczNlx1ezI4MDkwfVx1ezI4MGY0fVx1ezI4MTJlfVx1ezIxZmExfVx1ezI4MTRmfSJdLFsiOWQ0MCIsIlx1ezI4MTg5fVx1ezI4MWFmfVx1ezI4MjFhfVx1ezI4MzA2fVx1ezI4MzJmfVx1ezI4'@; put 'MzhhfVx1MzVjYVx1ezI4NDY4fVx1ezI4NmFhfVx1NDhmYVx1NjNlNlx1ezI4OTU2fVx1NzgwOFx1OTI1NVx1ezI4OWI4fVx1NDNmMlx1ezI4OWU3fVx1NDNkZlx1ezI4OWU4fVx1ezI4YjQ2fVx1ezI4YmQ0fVx1NTlmOFx1ezI4YzA5fVx1OGYwYlx1ezI4ZmM1fVx1ezI5MGVjfVx1N2I1MVx1'@; put 'ezI5MTEwfVx1ezI5MTNjfVx1M2RmN1x1ezI5MTVlfVx1ezI0YWNhfVx1OGZkMFx1NzI4Zlx1NTY4Ylx1ezI5NGU3fVx1ezI5NWU5fVx1ezI5NWIwfVx1ezI5NWI4fVx1ezI5NzMyfVx1ezI5OGQxfVx1ezI5OTQ5fVx1ezI5OTZhfVx1ezI5OWMzfVx1ezI5YTI4fVx1ezI5YjBlfVx1ezI5ZDVh'@; put 'fVx1ezI5ZDlifVx1N2U5Zlx1ezI5ZWY4fVx1ezI5ZjIzfVx1NGNhNFx1OTU0N1x1ezJhMjkzfVx1NzFhMlx1ezJhMmZmfVx1NGQ5MVx1OTAxMlx1ezJhNWNifVx1NGQ5Y1x1ezIwYzljfVx1OGZiZVx1NTVjMSJdLFsiOWRhMSIsIlx1OGZiYVx1ezIyNGIwfVx1OGZiOVx1ezI0YTkzfVx1NDUw'@; put 'OVx1N2U3Zlx1NmY1Nlx1NmFiMVx1NGVlYVx1MzRlNFx1ezI4YjJjfVx1ezI3ODlkfVx1MzczYVx1OGU4MFx1ezIxN2Y1fVx1ezI4MDI0fVx1ezI4YjZjfVx1ezI4Yjk5fVx1ezI3YTNlfVx1ezI2NmFmfVx1M2RlYlx1ezI3NjU1fVx1ezIzY2I3fVx1ezI1NjM1fVx1ezI1OTU2fVx1NGU5YVx1'@; put 'ezI1ZTgxfVx1ezI2MjU4fVx1NTZiZlx1ezIwZTZkfVx1OGUwZVx1NWI2ZFx1ezIzZTg4fVx1ezI0YzllfVx1NjNkZVx1NjJkMFx1ezIxN2Y2fVx1ezIxODdifVx1NjUzMFx1NTYyZFx1ezI1YzRhfVx1NTQxYVx1ezI1MzExfVx1M2RjNlx1ezI5ZDk4fVx1NGM3ZFx1NTYyMlx1NTYxZVx1N2Y0'@; put 'OVx1ezI1ZWQ4fVx1NTk3NVx1ezIzZDQwfVx1ODc3MFx1NGUxY1x1ezIwZmVhfVx1ezIwZDQ5fVx1ezIzNmJhfVx1ODExN1x1OWQ1ZVx1OGQxOFx1NzYzYlx1OWM0NVx1NzY0ZVx1NzdiOVx1OTM0NVx1NTQzMlx1ODE0OFx1ODJmN1x1NTYyNVx1ODEzMlx1ODQxOFx1ODBiZFx1NTVlYVx1Nzk2'@; put 'Mlx1NTY0M1x1NTQxNlx1ezIwZTlkfVx1MzVjZVx1NTYwNVx1NTVmMVx1NjZmMVx1ezI4MmUyfVx1MzYyZFx1NzUzNFx1NTVmMFx1NTViYVx1NTQ5N1x1NTU3Mlx1ezIwYzQxfVx1ezIwYzk2fVx1NWVkMFx1ezI1MTQ4fVx1ezIwZTc2fVx1ezIyYzYyfSJdLFsiOWU0MCIsIlx1ezIwZWEyfVx1'@; put 'OWVhYlx1N2Q1YVx1NTVkZVx1ezIxMDc1fVx1NjI5ZFx1OTc2ZFx1NTQ5NFx1OGNjZFx1NzFmNlx1OTE3Nlx1NjNmY1x1NjNiOVx1NjNmZVx1NTU2OVx1ezIyYjQzfVx1OWM3Mlx1ezIyZWIzfVx1NTE5YVx1MzRkZlx1ezIwZGE3fVx1NTFhN1x1NTQ0ZFx1NTUxZVx1NTUxM1x1NzY2Nlx1OGUy'@; put 'ZFx1ezI2ODhhfVx1NzViMVx1ODBiNlx1ODgwNFx1ODc4Nlx1ODhjN1x1ODFiNlx1ODQxY1x1ezIxMGMxfVx1NDRlY1x1NzMwNFx1ezI0NzA2fVx1NWI5MFx1ODMwYlx1ezI2ODkzfVx1NTY3Ylx1ezIyNmY0fVx1ezI3ZDJmfVx1ezI0MWEzfVx1ezI3ZDczfVx1ezI2ZWQwfVx1ezI3MmI2fVx1'@; put 'OTE3MFx1ezIxMWQ5fVx1OTIwOFx1ezIzY2ZjfVx1ezJhNmE5fVx1ezIwZWFjfVx1ezIwZWY5fVx1NzI2Nlx1ezIxY2EyfVx1NDc0ZVx1ezI0ZmMyfVx1ezI3ZmY5fVx1ezIwZmVifVx1NDBmYSJdLFsiOWVhMSIsIlx1OWM1ZFx1NjUxZlx1ezIyZGEwfVx1NDhmM1x1ezI0N2UwfVx1ezI5ZDdj'@; put 'fVx1ezIwZmVjfVx1ezIwZTBhfVx1NjA2Mlx1ezI3NWEzfVx1ezIwZmVkfSJdLFsiOWVhZCIsIlx1ezI2MDQ4fVx1ezIxMTg3fVx1NzFhM1x1N2U4ZVx1OWQ1MFx1NGUxYVx1NGUwNFx1MzU3N1x1NWIwZFx1NmNiMlx1NTM2N1x1MzZhY1x1MzlkY1x1NTM3ZFx1MzZhNVx1ezI0NjE4fVx1NTg5'@; put 'YVx1ezI0YjZlfVx1ODIyZFx1NTQ0Ylx1NTdhYVx1ezI1YTk1fVx1ezIwOTc5fSJdLFsiOWVjNSIsIlx1M2E1Mlx1ezIyNDY1fVx1NzM3NFx1ezI5ZWFjfVx1NGQwOVx1OWJlZFx1ezIzY2ZlfVx1ezI5ZjMwfVx1NGM1Ylx1ezI0ZmE5fVx1ezI5NTllfVx1ezI5ZmRlfVx1ODQ1Y1x1ezIzZGI2'@; put 'fVx1ezI3MmIyfVx1ezI2N2IzfVx1ezIzNzIwfVx1NjMyZVx1N2QyNVx1ezIzZWY3fVx1ezIzZTJjfVx1M2EyYVx1OTAwOFx1NTJjY1x1M2U3NFx1MzY3YVx1NDVlOVx1ezIwNDhlfVx1NzY0MFx1NWFmMFx1ezIwZWI2fVx1Nzg3YVx1ezI3ZjJlfVx1NThhN1x1NDBiZlx1NTY3Y1x1OWI4Ylx1'@; put 'NWQ3NFx1NzY1NFx1ezJhNDM0fVx1OWU4NVx1NGNlMVx1NzVmOVx1MzdmYlx1NjExOVx1ezIzMGRhfVx1ezI0M2YyfSJdLFsiOWVmNSIsIlx1NTY1ZFx1ezIxMmE5fVx1NTdhN1x1ezI0OTYzfVx1ezI5ZTA2fVx1NTIzNFx1ezI3MGFlfVx1MzVhZFx1NmM0YVx1OWQ3YyJdLFsiOWY0MCIsIlx1'@; put 'N2M1Nlx1OWIzOVx1NTdkZVx1ezIxNzZjfVx1NWM1M1x1NjRkM1x1ezI5NGQwfVx1ezI2MzM1fVx1ezI3MTY0fVx1ODZhZFx1ezIwZDI4fVx1ezI2ZDIyfVx1ezI0YWUyfVx1ezIwZDcxfSJdLFsiOWY0ZiIsIlx1NTFmZVx1ezIxZjBmfVx1NWQ4ZVx1OTcwM1x1ezIxZGQxfVx1OWU4MVx1OTA0'@; put 'Y1x1N2IxZlx1OWIwMlx1NWNkMVx1N2JhM1x1NjI2OFx1NjMzNVx1OWFmZlx1N2JjZlx1OWIyYVx1N2M3ZVx1OWIyZVx1N2M0Mlx1N2M4Nlx1OWMxNVx1N2JmY1x1OWIwOVx1OWYxN1x1OWMxYlx1ezI0OTNlfVx1OWY1YVx1NTU3M1x1NWJjM1x1NGZmZFx1OWU5OFx1NGZmMlx1NTI2MFx1M2Uw'@; put 'Nlx1NTJkMVx1NTc2N1x1NTA1Nlx1NTliN1x1NWUxMlx1OTdjOFx1OWRhYlx1OGY1Y1x1NTQ2OVx1OTdiNFx1OTk0MFx1OTdiYVx1NTMyY1x1NjEzMCJdLFsiOWZhMSIsIlx1NjkyY1x1NTNkYVx1OWMwYVx1OWQwMlx1NGMzYlx1OTY0MVx1Njk4MFx1NTBhNlx1NzU0Nlx1ezIxNzZkfVx1OTlk'@; put 'YVx1NTI3MyJdLFsiOWZhZSIsIlx1OTE1OVx1OTY4MVx1OTE1YyJdLFsiOWZiMiIsIlx1OTE1MVx1ezI4ZTk3fVx1NjM3Zlx1ezI2ZDIzfVx1NmFjYVx1NTYxMVx1OTE4ZVx1NzU3YVx1NjI4NVx1ezIwM2ZjfVx1NzM0Zlx1N2M3MFx1ezI1YzIxfVx1ezIzY2ZkfSJdLFsiOWZjMSIsIlx1ezI0'@; put 'OTE5fVx1NzZkNlx1OWI5ZFx1NGUyYVx1ezIwY2Q0fVx1ODNiZVx1ODg0MiJdLFsiOWZjOSIsIlx1NWM0YVx1NjljMFx1NTBlZFx1NTc3YVx1NTIxZlx1NWRmNVx1NGVjZVx1NmMzMVx1ezIwMWYyfVx1NGYzOVx1NTQ5Y1x1NTRkYVx1NTI5YVx1OGQ4Mlx1MzVmZVx1NWYwY1x1MzVmMyJdLFsi'@; put 'OWZkYiIsIlx1NmI1Mlx1OTE3Y1x1OWZhNVx1OWI5N1x1OTgyZVx1OThiNFx1OWFiYVx1OWVhOFx1OWU4NFx1NzE3YVx1N2IxNCJdLFsiOWZlNyIsIlx1NmJmYVx1ODgxOFx1N2Y3OCJdLFsiOWZlYiIsIlx1NTYyMFx1ezJhNjRhfVx1OGU3N1x1OWY1MyJdLFsiOWZmMCIsIlx1OGRkNFx1OGU0'@; put 'Zlx1OWUxY1x1OGUwMVx1NjI4Mlx1ezI4MzdkfVx1OGUyOFx1OGU3NVx1N2FkM1x1ezI0YTc3fVx1N2EzZVx1NzhkOFx1NmNlYVx1OGE2N1x1NzYwNyJdLFsiYTA0MCIsIlx1ezI4YTVhfVx1OWYyNlx1NmNjZVx1ODdkNlx1NzVjM1x1ezJhMmIyfVx1Nzg1M1x1ezJmODQwfVx1OGQwY1x1NzJl'@; put 'Mlx1NzM3MVx1OGIyZFx1NzMwMlx1NzRmMVx1OGNlYlx1ezI0YWJifVx1ODYyZlx1NWZiYVx1ODhhMFx1NDRiNyJdLFsiYTA1NSIsIlx1ezIxODNifVx1ezI2ZTA1fSJdLFsiYTA1OCIsIlx1OGE3ZVx1ezIyNTFifSJdLFsiYTA1YiIsIlx1NjBmZFx1NzY2N1x1OWFkN1x1OWQ0NFx1OTM2ZVx1'@; put 'OWI4Zlx1ODdmNSJdLFsiYTA2MyIsIlx1ODgwZlx1OGNmN1x1NzMyY1x1OTcyMVx1OWJiMFx1MzVkNlx1NzJiMlx1NGMwN1x1N2M1MVx1OTk0YVx1ezI2MTU5fVx1NjE1OVx1NGMwNFx1OWU5Nlx1NjE3ZCJdLFsiYTA3MyIsIlx1NTc1Zlx1NjE2Zlx1NjJhNlx1NjIzOVx1NjJjZVx1M2E1Y1x1'@; put 'NjFlMlx1NTNhYVx1ezIzM2Y1fVx1NjM2NFx1NjgwMlx1MzVkMiJdLFsiYTBhMSIsIlx1NWQ1N1x1ezI4YmMyfVx1OGZkYVx1ezI4ZTM5fSJdLFsiYTBhNiIsIlx1NTBkOVx1ezIxZDQ2fVx1NzkwNlx1NTMzMlx1OTYzOFx1ezIwZjNifVx1NDA2NSJdLFsiYTBhZSIsIlx1NzdmZSJdLFsiYTBi'@; put 'MCIsIlx1N2NjMlx1ezI1ZjFhfVx1N2NkYVx1N2EyZFx1ODA2Nlx1ODA2M1x1N2Q0ZFx1NzUwNVx1NzRmMlx1ODk5NFx1ODIxYVx1NjcwY1x1ODA2Mlx1ezI3NDg2fVx1ODA1Ylx1NzRmMFx1ODEwM1x1NzcyNFx1ODk4OVx1ezI2N2NjfVx1NzU1M1x1ezI2ZWQxfVx1ODdhOVx1ODdjZVx1ODFj'@; put 'OFx1ODc4Y1x1OGE0OVx1OGNhZFx1OGI0M1x1NzcyYlx1NzRmOFx1ODRkYVx1MzYzNVx1NjliMlx1OGRhNiJdLFsiYTBkNCIsIlx1ODlhOVx1NzQ2OFx1NmRiOVx1ODdjMVx1ezI0MDExfVx1NzRlN1x1M2RkYlx1NzE3Nlx1NjBhNFx1NjE5Y1x1M2NkMVx1NzE2Mlx1NjA3NyJdLFsiYTBlMiIs'@; put 'Ilx1N2Y3MVx1ezI4YjJkfVx1NzI1MFx1NjBlOVx1NGI3ZVx1NTIyMFx1M2MxOFx1ezIzY2M3fVx1ezI1ZWQ3fVx1ezI3NjU2fVx1ezI1NTMxfVx1ezIxOTQ0fVx1ezIxMmZlfVx1ezI5OTAzfVx1ezI2ZGRjfVx1ezI3MGFkfVx1NWNjMVx1ezI2MWFkfVx1ezI4YTBmfVx1ezIzNjc3fVx1ezIw'@; put 'MGVlfVx1ezI2ODQ2fVx1ezI0ZjBlfVx1NDU2Mlx1NWIxZlx1ezI2MzRjfVx1OWY1MFx1OWVhNlx1ezI2MjZifSJdLFsiYTNjMCIsIlx1MjQwMCIsMzEsIlx1MjQyMSJdLFsiYzZhMSIsIlx1MjQ2MCIsOSwiXHUyNDc0Iiw5LCJcdTIxNzAiLDksIlx1NGUzNlx1NGUzZlx1NGU4NVx1NGVhMFx1'@; put 'NTE4Mlx1NTE5Nlx1NTFhYlx1NTJmOVx1NTMzOFx1NTM2OVx1NTNiNlx1NTkwYVx1NWI4MFx1NWRkYlx1MmYzM1x1NWU3Zlx1NWVmNFx1NWY1MFx1NWY2MVx1NjUzNFx1NjVlMFx1NzU5Mlx1NzY3Nlx1OGZiNVx1OTZiNlx4YThcdTAyYzZcdTMwZmRcdTMwZmVcdTMwOWRcdTMwOWVcdTMwMDNc'@; put 'dTRlZGRcdTMwMDVcdTMwMDZcdTMwMDdcdTMwZmNcdWZmM2JcdWZmM2RcdTI3M2RcdTMwNDEiLDIzXSxbImM3NDAiLCJcdTMwNTkiLDU4LCJcdTMwYTFcdTMwYTJcdTMwYTNcdTMwYTQiXSxbImM3YTEiLCJcdTMwYTUiLDgxLCJcdTA0MTAiLDUsIlx1MDQwMVx1MDQxNiIsNF0sWyJjODQwIiwi'@; put 'XHUwNDFiIiwyNiwiXHUwNDUxXHUwNDM2IiwyNSwiXHUyMWU3XHUyMWI4XHUyMWI5XHUzMWNmXHV7MjAwY2N9XHU0ZTVhXHV7MjAwOGF9XHU1MjAyXHU0NDkxIl0sWyJjOGExIiwiXHU5ZmIwXHU1MTg4XHU5ZmIxXHV7Mjc2MDd9Il0sWyJjOGNkIiwiXHVmZmUyXHVmZmU0XHVmZjA3XHVmZjAy'@; put 'XHUzMjMxXHUyMTE2XHUyMTIxXHUzMDliXHUzMDljXHUyZTgwXHUyZTg0XHUyZTg2XHUyZTg3XHUyZTg4XHUyZThhXHUyZThjXHUyZThkXHUyZTk1XHUyZTljXHUyZTlkXHUyZWE1XHUyZWE3XHUyZWFhXHUyZWFjXHUyZWFlXHUyZWI2XHUyZWJjXHUyZWJlXHUyZWM2XHUyZWNhXHUyZWNjXHUy'@; put 'ZWNkXHUyZWNmXHUyZWQ2XHUyZWQ3XHUyZWRlXHUyZWUzIl0sWyJjOGY1IiwiXHUwMjgzXHUwMjUwXHUwMjViXHUwMjU0XHUwMjc1XHUwMTUzXHhmOFx1MDE0Ylx1MDI4YVx1MDI2YSJdLFsiZjlmZSIsIlx1ZmZlZCJdLFsiZmE0MCIsIlx1ezIwNTQ3fVx1OTJkYlx1ezIwNWRmfVx1ezIzZmM1'@; put 'fVx1ODU0Y1x1NDJiNVx1NzNlZlx1NTFiNVx1MzY0OVx1ezI0OTQyfVx1ezI4OWU0fVx1OTM0NFx1ezIxOWRifVx1ODJlZVx1ezIzY2M4fVx1NzgzY1x1Njc0NFx1NjJkZlx1ezI0OTMzfVx1ezI4OWFhfVx1ezIwMmEwfVx1ezI2YmIzfVx1ezIxMzA1fVx1NGZhYlx1ezIyNGVkfVx1NTAwOFx1'@; put 'ezI2ZDI5fVx1ezI3YTg0fVx1ezIzNjAwfVx1ezI0YWIxfVx1ezIyNTEzfVx1NTAyOVx1ezIwMzdlfVx1NWZhNFx1ezIwMzgwfVx1ezIwMzQ3fVx1NmVkYlx1ezIwNDFmfVx1NTA3ZFx1NTEwMVx1MzQ3YVx1NTEwZVx1OTg2Y1x1Mzc0M1x1ODQxNlx1ezI0OWE0fVx1ezIwNDg3fVx1NTE2MFx1'@; put 'ezIzM2I0fVx1NTE2YVx1ezIwYmZmfVx1ezIyMGZjfVx1ezIwMmU1fVx1ezIyNTMwfVx1ezIwNThlfVx1ezIzMjMzfVx1ezIxOTgzfVx1NWI4Mlx1ODc3ZFx1ezIwNWIzfVx1ezIzYzk5fVx1NTFiMlx1NTFiOCJdLFsiZmFhMSIsIlx1OWQzNFx1NTFjOVx1NTFjZlx1NTFkMVx1M2NkY1x1NTFk'@; put 'M1x1ezI0YWE2fVx1NTFiM1x1NTFlMlx1NTM0Mlx1NTFlZFx1ODNjZFx1NjkzZVx1ezIzNzJkfVx1NWY3Ylx1NTIwYlx1NTIyNlx1NTIzY1x1NTJiNVx1NTI1N1x1NTI5NFx1NTJiOVx1NTJjNVx1N2MxNVx1ODU0Mlx1NTJlMFx1ODYwZFx1ezI2YjEzfVx1NTMwNVx1ezI4YWRlfVx1NTU0OVx1'@; put 'NmVkOVx1ezIzZjgwfVx1ezIwOTU0fVx1ezIzZmVjfVx1NTMzM1x1NTM0NFx1ezIwYmUyfVx1NmNjYlx1ezIxNzI2fVx1NjgxYlx1NzNkNVx1NjA0YVx1M2VhYVx1MzhjY1x1ezIxNmU4fVx1NzFkZFx1NDRhMlx1NTM2ZFx1NTM3NFx1ezI4NmFifVx1NTM3ZVx1NTM3Zlx1ezIxNTk2fVx1ezIx'@; put 'NjEzfVx1NzdlNlx1NTM5M1x1ezI4YTlifVx1NTNhMFx1NTNhYlx1NTNhZVx1NzNhN1x1ezI1NzcyfVx1M2Y1OVx1NzM5Y1x1NTNjMVx1NTNjNVx1NmM0OVx1NGU0OVx1NTdmZVx1NTNkOVx1M2FhYlx1ezIwYjhmfVx1NTNlMFx1ezIzZmVifVx1ezIyZGEzfVx1NTNmNlx1ezIwYzc3fVx1NTQx'@; put 'M1x1NzA3OVx1NTUyYlx1NjY1N1x1NmQ1Ylx1NTQ2ZFx1ezI2YjUzfVx1ezIwZDc0fVx1NTU1ZFx1NTQ4Zlx1NTRhNFx1NDdhNlx1ezIxNzBkfVx1ezIwZWRkfVx1M2RiNFx1ezIwZDRkfSJdLFsiZmI0MCIsIlx1ezI4OWJjfVx1ezIyNjk4fVx1NTU0N1x1NGNlZFx1NTQyZlx1NzQxN1x1NTU4'@; put 'Nlx1NTVhOVx1NTYwNVx1ezIxOGQ3fVx1ezI0MDNhfVx1NDU1Mlx1ezI0NDM1fVx1NjZiM1x1ezIxMGI0fVx1NTYzN1x1NjZjZFx1ezIzMjhhfVx1NjZhNFx1NjZhZFx1NTY0ZFx1NTY0Zlx1NzhmMVx1NTZmMVx1OTc4N1x1NTNmZVx1NTcwMFx1NTZlZlx1NTZlZFx1ezI4YjY2fVx1MzYyM1x1'@; put 'ezIxMjRmfVx1NTc0Nlx1ezI0MWE1fVx1NmM2ZVx1NzA4Ylx1NTc0Mlx1MzZiMVx1ezI2YzdlfVx1NTdlNlx1ezIxNDE2fVx1NTgwM1x1ezIxNDU0fVx1ezI0MzYzfVx1NTgyNlx1ezI0YmY1fVx1NTg1Y1x1NThhYVx1MzU2MVx1NThlMFx1NThkY1x1ezIxMjNjfVx1NThmYlx1NWJmZlx1NTc0'@; put 'M1x1ezJhMTUwfVx1ezI0Mjc4fVx1OTNkM1x1MzVhMVx1NTkxZlx1NjhhNlx1MzZjM1x1NmU1OSJdLFsiZmJhMSIsIlx1ezIxNjNlfVx1NWEyNFx1NTU1M1x1ezIxNjkyfVx1ODUwNVx1NTljOVx1ezIwZDRlfVx1ezI2YzgxfVx1ezI2ZDJhfVx1ezIxN2RjfVx1NTlkOVx1ezIxN2ZifVx1ezIx'@; put 'N2IyfVx1ezI2ZGE2fVx1NmQ3MVx1ezIxODI4fVx1ezIxNmQ1fVx1NTlmOVx1ezI2ZTQ1fVx1NWFhYlx1NWE2M1x1MzZlNlx1ezI0OWE5fVx1NWE3N1x1MzcwOFx1NWE5Nlx1NzQ2NVx1NWFkM1x1ezI2ZmExfVx1ezIyNTU0fVx1M2Q4NVx1ezIxOTExfVx1MzczMlx1ezIxNmI4fVx1NWU4M1x1'@; put 'NTJkMFx1NWI3Nlx1NjU4OFx1NWI3Y1x1ezI3YTBlfVx1NDAwNFx1NDg1ZFx1ezIwMjA0fVx1NWJkNVx1NjE2MFx1ezIxYTM0fVx1ezI1OWNjfVx1ezIwNWE1fVx1NWJmM1x1NWI5ZFx1NGQxMFx1NWMwNVx1ezIxYjQ0fVx1NWMxM1x1NzNjZVx1NWMxNFx1ezIxY2E1fVx1ezI2YjI4fVx1NWM0'@; put 'OVx1NDhkZFx1NWM4NVx1NWNlOVx1NWNlZlx1NWQ4Ylx1ezIxZGY5fVx1ezIxZTM3fVx1NWQxMFx1NWQxOFx1NWQ0Nlx1ezIxZWE0fVx1NWNiYVx1NWRkN1x1ODJmY1x1MzgyZFx1ezI0OTAxfVx1ezIyMDQ5fVx1ezIyMTczfVx1ODI4N1x1MzgzNlx1M2JjMlx1NWUyZVx1NmE4YVx1NWU3NVx1'@; put 'NWU3YVx1ezI0NGJjfVx1ezIwY2QzfVx1NTNhNlx1NGViN1x1NWVkMFx1NTNhOFx1ezIxNzcxfVx1NWUwOVx1NWVmNFx1ezI4NDgyfSJdLFsiZmM0MCIsIlx1NWVmOVx1NWVmYlx1MzhhMFx1NWVmY1x1NjgzZVx1OTQxYlx1NWYwZFx1ezIwMWMxfVx1ezJmODk0fVx1M2FkZVx1NDhhZVx1ezIx'@; put 'MzNhfVx1NWYzYVx1ezI2ODg4fVx1ezIyM2QwfVx1NWY1OFx1ezIyNDcxfVx1NWY2M1x1OTdiZFx1ezI2ZTZlfVx1NWY3Mlx1OTM0MFx1ezI4YTM2fVx1NWZhN1x1NWRiNlx1M2Q1Zlx1ezI1MjUwfVx1ezIxZjZhfVx1ezI3MGY4fVx1ezIyNjY4fVx1OTFkNlx1ezIwMjllfVx1ezI4YTI5fVx1'@; put 'NjAzMVx1NjY4NVx1ezIxODc3fVx1Mzk2M1x1M2RjN1x1MzYzOVx1NTc5MFx1ezIyN2I0fVx1Nzk3MVx1M2U0MFx1NjA5ZVx1NjBhNFx1NjBiM1x1ezI0OTgyfVx1ezI0OThmfVx1ezI3YTUzfVx1NzRhNFx1NTBlMVx1NWFhMFx1NjE2NFx1ODQyNFx1NjE0Mlx1ezJmOGE2fVx1ezI2ZWQyfVx1'@; put 'NjE4MVx1NTFmNFx1ezIwNjU2fVx1NjE4N1x1NWJhYVx1ezIzZmI3fSJdLFsiZmNhMSIsIlx1ezIyODVmfVx1NjFkM1x1ezI4YjlkfVx1ezI5OTVkfVx1NjFkMFx1MzkzMlx1ezIyOTgwfVx1ezIyOGMxfVx1NjAyM1x1NjE1Y1x1NjUxZVx1NjM4Ylx1ezIwMTE4fVx1NjJjNVx1ezIxNzcwfVx1'@; put 'NjJkNVx1ezIyZTBkfVx1NjM2Y1x1ezI0OWRmfVx1M2ExN1x1NjQzOFx1NjNmOFx1ezIxMzhlfVx1ezIxN2ZjfVx1NjQ5MFx1NmY4YVx1ezIyZTM2fVx1OTgxNFx1ezI0MDhjfVx1ezI1NzFkfVx1NjRlMVx1NjRlNVx1OTQ3Ylx1M2E2Nlx1NjQzYVx1M2E1N1x1NjU0ZFx1NmYxNlx1ezI0YTI4'@; put 'fVx1ezI0YTIzfVx1NjU4NVx1NjU2ZFx1NjU1Zlx1ezIzMDdlfVx1NjViNVx1ezI0OTQwfVx1NGIzN1x1NjVkMVx1NDBkOFx1ezIxODI5fVx1NjVlMFx1NjVlM1x1NWZkZlx1ezIzNDAwfVx1NjYxOFx1ezIzMWY3fVx1ezIzMWY4fVx1NjY0NFx1ezIzMWE0fVx1ezIzMWE1fVx1NjY0Ylx1ezIw'@; put 'ZTc1fVx1NjY2N1x1ezI1MWU2fVx1NjY3M1x1NjY3NFx1ezIxZTNkfVx1ezIzMjMxfVx1ezI4NWY0fVx1ezIzMWM4fVx1ezI1MzEzfVx1NzdjNVx1ezIyOGY3fVx1OTlhNFx1NjcwMlx1ezI0MzljfVx1ezI0YTIxfVx1M2IyYlx1NjlmYVx1ezIzN2MyfVx1Njc1ZVx1Njc2N1x1Njc2Mlx1ezI0'@; put 'MWNkfVx1ezI5MGVkfVx1NjdkN1x1NDRlOVx1NjgyMlx1NmU1MFx1OTIzY1x1NjgwMVx1ezIzM2U2fVx1ezI2ZGEwfVx1Njg1ZCJdLFsiZmQ0MCIsIlx1ezIzNDZmfVx1NjllMVx1NmEwYlx1ezI4YWRmfVx1Njk3M1x1NjhjM1x1ezIzNWNkfVx1NjkwMVx1NjkwMFx1M2QzMlx1M2EwMVx1ezIz'@; put 'NjNjfVx1M2I4MFx1NjdhY1x1Njk2MVx1ezI4YTRhfVx1NDJmY1x1NjkzNlx1Njk5OFx1M2JhMVx1ezIwM2M5fVx1ODM2M1x1NTA5MFx1NjlmOVx1ezIzNjU5fVx1ezIyMTJhfVx1NmE0NVx1ezIzNzAzfVx1NmE5ZFx1M2JmM1x1NjdiMVx1NmFjOFx1ezI5MTljfVx1M2MwZFx1NmIxZFx1ezIw'@; put 'OTIzfVx1NjBkZVx1NmIzNVx1NmI3NFx1ezIyN2NkfVx1NmViNVx1ezIzYWRifVx1ezIwM2I1fVx1ezIxOTU4fVx1Mzc0MFx1NTQyMVx1ezIzYjVhfVx1NmJlMVx1ezIzZWZjfVx1NmJkY1x1NmMzN1x1ezIyNDhifVx1ezI0OGYxfVx1ezI2YjUxfVx1NmM1YVx1ODIyNlx1NmM3OVx1ezIzZGJj'@; put 'fVx1NDRjNVx1ezIzZGJkfVx1ezI0MWE0fVx1ezI0OTBjfVx1ezI0OTAwfSJdLFsiZmRhMSIsIlx1ezIzY2M5fVx1MzZlNVx1M2NlYlx1ezIwZDMyfVx1OWI4M1x1ezIzMWY5fVx1ezIyNDkxfVx1N2Y4Zlx1NjgzN1x1ezI2ZDI1fVx1ezI2ZGExfVx1ezI2ZGVifVx1NmQ5Nlx1NmQ1Y1x1NmU3'@; put 'Y1x1NmYwNFx1ezI0OTdmfVx1ezI0MDg1fVx1ezI2ZTcyfVx1ODUzM1x1ezI2Zjc0fVx1NTFjN1x1NmM5Y1x1NmUxZFx1ODQyZVx1ezI4YjIxfVx1NmUyZlx1ezIzZTJmfVx1NzQ1M1x1ezIzZjgyfVx1NzljY1x1NmU0Zlx1NWE5MVx1ezIzMDRifVx1NmZmOFx1MzcwZFx1NmY5ZFx1ezIzZTMw'@; put 'fVx1NmVmYVx1ezIxNDk3fVx1ezI0MDNkfVx1NDU1NVx1OTNmMFx1NmY0NFx1NmY1Y1x1M2Q0ZVx1NmY3NFx1ezI5MTcwfVx1M2QzYlx1NmY5Zlx1ezI0MTQ0fVx1NmZkM1x1ezI0MDkxfVx1ezI0MTU1fVx1ezI0MDM5fVx1ezIzZmYwfVx1ezIzZmI0fVx1ezI0MTNmfVx1NTFkZlx1ezI0MTU2'@; put 'fVx1ezI0MTU3fVx1ezI0MTQwfVx1ezI2MWRkfVx1NzA0Ylx1NzA3ZVx1NzBhN1x1NzA4MVx1NzBjY1x1NzBkNVx1NzBkNlx1NzBkZlx1NDEwNFx1M2RlOFx1NzFiNFx1NzE5Nlx1ezI0Mjc3fVx1NzEyYlx1NzE0NVx1NWE4OFx1NzE0YVx1NzE2ZVx1NWM5Y1x1ezI0MzY1fVx1NzE0Zlx1OTM2'@; put 'Mlx1ezI0MmMxfVx1NzEyY1x1ezI0NDVhfVx1ezI0YTI3fVx1ezI0YTIyfVx1NzFiYVx1ezI4YmU4fVx1NzBiZFx1NzIwZSJdLFsiZmU0MCIsIlx1OTQ0Mlx1NzIxNVx1NTkxMVx1OTQ0M1x1NzIyNFx1OTM0MVx1ezI1NjA1fVx1NzIyZVx1NzI0MFx1ezI0OTc0fVx1NjhiZFx1NzI1NVx1NzI1'@; put 'N1x1M2U1NVx1ezIzMDQ0fVx1NjgwZFx1NmYzZFx1NzI4Mlx1NzMyYVx1NzMyYlx1ezI0ODIzfVx1ezI4ODJifVx1NDhlZFx1ezI4ODA0fVx1NzMyOFx1NzMyZVx1NzNjZlx1NzNhYVx1ezIwYzNhfVx1ezI2YTJlfVx1NzNjOVx1NzQ0OVx1ezI0MWUyfVx1ezIxNmU3fVx1ezI0YTI0fVx1NjYy'@; put 'M1x1MzZjNVx1ezI0OWI3fVx1ezI0OThkfVx1ezI0OWZifVx1NzNmN1x1NzQxNVx1NjkwM1x1ezI0YTI2fVx1NzQzOVx1ezIwNWMzfVx1M2VkN1x1NzQ1Y1x1ezIyOGFkfVx1NzQ2MFx1ezI4ZWIyfVx1NzQ0N1x1NzNlNFx1NzQ3Nlx1ODNiOVx1NzQ2Y1x1MzczMFx1NzQ3NFx1OTNmMVx1NmEy'@; put 'Y1x1NzQ4Mlx1NDk1M1x1ezI0YThjfSJdLFsiZmVhMSIsIlx1ezI0MTVmfVx1ezI0YTc5fVx1ezI4YjhmfVx1NWI0Nlx1ezI4YzAzfVx1ezIxODllfVx1NzRjOFx1ezIxOTg4fVx1NzUwZVx1NzRlOVx1NzUxZVx1ezI4ZWQ5fVx1ezIxYTRifVx1NWJkN1x1ezI4ZWFjfVx1OTM4NVx1NzU0ZFx1'@; put 'NzU0YVx1NzU2N1x1NzU2ZVx1ezI0ZjgyfVx1M2YwNFx1ezI0ZDEzfVx1NzU4ZVx1NzQ1ZFx1NzU5ZVx1NzViNFx1NzYwMlx1NzYyY1x1NzY1MVx1NzY0Zlx1NzY2Zlx1NzY3Nlx1ezI2M2Y1fVx1NzY5MFx1ODFlZlx1MzdmOFx1ezI2OTExfVx1ezI2OTBlfVx1NzZhMVx1NzZhNVx1NzZiN1x1'@; put 'NzZjY1x1ezI2ZjlmfVx1ODQ2Mlx1ezI1MDlkfVx1ezI1MTdkfVx1ezIxZTFjfVx1NzcxZVx1NzcyNlx1Nzc0MFx1NjRhZlx1ezI1MjIwfVx1Nzc1OFx1ezIzMmFjfVx1NzdhZlx1ezI4OTY0fVx1ezI4OTY4fVx1ezIxNmMxfVx1NzdmNFx1NzgwOVx1ezIxMzc2fVx1ezI0YTEyfVx1NjhjYVx1'@; put 'NzhhZlx1NzhjN1x1NzhkM1x1OTZhNVx1NzkyZVx1ezI1NWUwfVx1NzhkN1x1NzkzNFx1NzhiMVx1ezI3NjBjfVx1OGZiOFx1ODg4NFx1ezI4YjJifVx1ezI2MDgzfVx1ezIyNjFjfVx1Nzk4Nlx1ODkwMFx1NjkwMlx1Nzk4MFx1ezI1ODU3fVx1Nzk5ZFx1ezI3YjM5fVx1NzkzY1x1NzlhOVx1'@; put 'NmUyYVx1ezI3MTI2fVx1M2VhOFx1NzljNlx1ezI5MTBkfVx1NzlkNCJdXScpfSwxMzMzNjphdD0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjAiLCJcXHUwMDAwIiwxMjcsIlx1MjBhYyJdLFsiODE0MCIsIlx1NGUwMlx1NGUwNFx1NGUwNVx1NGUwNlx1NGUwZlx1'@; put 'NGUxMlx1NGUxN1x1NGUxZlx1NGUyMFx1NGUyMVx1NGUyM1x1NGUyNlx1NGUyOVx1NGUyZVx1NGUyZlx1NGUzMVx1NGUzM1x1NGUzNVx1NGUzN1x1NGUzY1x1NGU0MFx1NGU0MVx1NGU0Mlx1NGU0NFx1NGU0Nlx1NGU0YVx1NGU1MVx1NGU1NVx1NGU1N1x1NGU1YVx1NGU1Ylx1NGU2Mlx1NGU2'@; put 'M1x1NGU2NFx1NGU2NVx1NGU2N1x1NGU2OFx1NGU2YSIsNSwiXHU0ZTcyXHU0ZTc0Iiw5LCJcdTRlN2YiLDYsIlx1NGU4N1x1NGU4YSJdLFsiODE4MCIsIlx1NGU5MFx1NGU5Nlx1NGU5N1x1NGU5OVx1NGU5Y1x1NGU5ZFx1NGU5ZVx1NGVhM1x1NGVhYVx1NGVhZlx1NGViMFx1NGViMVx1NGVi'@; put 'NFx1NGViNlx1NGViN1x1NGViOFx1NGViOVx1NGViY1x1NGViZFx1NGViZVx1NGVjOFx1NGVjY1x1NGVjZlx1NGVkMFx1NGVkMlx1NGVkYVx1NGVkYlx1NGVkY1x1NGVlMFx1NGVlMlx1NGVlNlx1NGVlN1x1NGVlOVx1NGVlZFx1NGVlZVx1NGVlZlx1NGVmMVx1NGVmNFx1NGVmOFx1NGVmOVx1'@; put 'NGVmYVx1NGVmY1x1NGVmZVx1NGYwMFx1NGYwMiIsNiwiXHU0ZjBiXHU0ZjBjXHU0ZjEyIiw0LCJcdTRmMWNcdTRmMWRcdTRmMjFcdTRmMjNcdTRmMjhcdTRmMjlcdTRmMmNcdTRmMmRcdTRmMmVcdTRmMzFcdTRmMzNcdTRmMzVcdTRmMzdcdTRmMzlcdTRmM2JcdTRmM2UiLDQsIlx1NGY0NFx1'@; put 'NGY0NVx1NGY0NyIsNSwiXHU0ZjUyXHU0ZjU0XHU0ZjU2XHU0ZjYxXHU0ZjYyXHU0ZjY2XHU0ZjY4XHU0ZjZhXHU0ZjZiXHU0ZjZkXHU0ZjZlXHU0ZjcxXHU0ZjcyXHU0Zjc1XHU0Zjc3XHU0Zjc4XHU0Zjc5XHU0ZjdhXHU0ZjdkXHU0ZjgwXHU0ZjgxXHU0ZjgyXHU0Zjg1XHU0Zjg2XHU0Zjg3'@; put 'XHU0ZjhhXHU0ZjhjXHU0ZjhlXHU0ZjkwXHU0ZjkyXHU0ZjkzXHU0Zjk1XHU0Zjk2XHU0Zjk4XHU0Zjk5XHU0ZjlhXHU0ZjljXHU0ZjllXHU0ZjlmXHU0ZmExXHU0ZmEyIl0sWyI4MjQwIiwiXHU0ZmE0XHU0ZmFiXHU0ZmFkXHU0ZmIwIiw0LCJcdTRmYjYiLDgsIlx1NGZjMFx1NGZjMVx1NGZj'@; put 'Mlx1NGZjNlx1NGZjN1x1NGZjOFx1NGZjOVx1NGZjYlx1NGZjY1x1NGZjZFx1NGZkMiIsNCwiXHU0ZmQ5XHU0ZmRiXHU0ZmUwXHU0ZmUyXHU0ZmU0XHU0ZmU1XHU0ZmU3XHU0ZmViXHU0ZmVjXHU0ZmYwXHU0ZmYyXHU0ZmY0XHU0ZmY1XHU0ZmY2XHU0ZmY3XHU0ZmY5XHU0ZmZiXHU0ZmZjXHU0'@; put 'ZmZkXHU0ZmZmIiwxMV0sWyI4MjgwIiwiXHU1MDBiXHU1MDBlXHU1MDEwXHU1MDExXHU1MDEzXHU1MDE1XHU1MDE2XHU1MDE3XHU1MDFiXHU1MDFkXHU1MDFlXHU1MDIwXHU1MDIyXHU1MDIzXHU1MDI0XHU1MDI3XHU1MDJiXHU1MDJmIiwxMCwiXHU1MDNiXHU1MDNkXHU1MDNmXHU1MDQwXHU1'@; put 'MDQxXHU1MDQyXHU1MDQ0XHU1MDQ1XHU1MDQ2XHU1MDQ5XHU1MDRhXHU1MDRiXHU1MDRkXHU1MDUwIiw0LCJcdTUwNTZcdTUwNTdcdTUwNThcdTUwNTlcdTUwNWJcdTUwNWQiLDcsIlx1NTA2NiIsNSwiXHU1MDZkIiw4LCJcdTUwNzhcdTUwNzlcdTUwN2FcdTUwN2NcdTUwN2RcdTUwODFcdTUw'@; put 'ODJcdTUwODNcdTUwODRcdTUwODZcdTUwODdcdTUwODlcdTUwOGFcdTUwOGJcdTUwOGNcdTUwOGUiLDIwLCJcdTUwYTRcdTUwYTZcdTUwYWFcdTUwYWJcdTUwYWQiLDQsIlx1NTBiMyIsNiwiXHU1MGJjIl0sWyI4MzQwIiwiXHU1MGJkIiwxNywiXHU1MGQwIiw1LCJcdTUwZDdcdTUwZDhcdTUw'@; put 'ZDlcdTUwZGIiLDEwLCJcdTUwZThcdTUwZTlcdTUwZWFcdTUwZWJcdTUwZWZcdTUwZjBcdTUwZjFcdTUwZjJcdTUwZjRcdTUwZjYiLDQsIlx1NTBmYyIsOSwiXHU1MTA4Il0sWyI4MzgwIiwiXHU1MTA5XHU1MTBhXHU1MTBjIiw1LCJcdTUxMTMiLDEzLCJcdTUxMjIiLDI4LCJcdTUxNDJcdTUx'@; put 'NDdcdTUxNGFcdTUxNGNcdTUxNGVcdTUxNGZcdTUxNTBcdTUxNTJcdTUxNTNcdTUxNTdcdTUxNThcdTUxNTlcdTUxNWJcdTUxNWQiLDQsIlx1NTE2M1x1NTE2NFx1NTE2Nlx1NTE2N1x1NTE2OVx1NTE2YVx1NTE2Zlx1NTE3Mlx1NTE3YVx1NTE3ZVx1NTE3Zlx1NTE4M1x1NTE4NFx1NTE4Nlx1'@; put 'NTE4N1x1NTE4YVx1NTE4Ylx1NTE4ZVx1NTE4Zlx1NTE5MFx1NTE5MVx1NTE5M1x1NTE5NFx1NTE5OFx1NTE5YVx1NTE5ZFx1NTE5ZVx1NTE5Zlx1NTFhMVx1NTFhM1x1NTFhNiIsNCwiXHU1MWFkXHU1MWFlXHU1MWI0XHU1MWI4XHU1MWI5XHU1MWJhXHU1MWJlXHU1MWJmXHU1MWMxXHU1MWMy'@; put 'XHU1MWMzXHU1MWM1XHU1MWM4XHU1MWNhXHU1MWNkXHU1MWNlXHU1MWQwXHU1MWQyIiw1XSxbIjg0NDAiLCJcdTUxZDhcdTUxZDlcdTUxZGFcdTUxZGNcdTUxZGVcdTUxZGZcdTUxZTJcdTUxZTNcdTUxZTUiLDUsIlx1NTFlY1x1NTFlZVx1NTFmMVx1NTFmMlx1NTFmNFx1NTFmN1x1NTFmZVx1'@; put 'NTIwNFx1NTIwNVx1NTIwOVx1NTIwYlx1NTIwY1x1NTIwZlx1NTIxMFx1NTIxM1x1NTIxNFx1NTIxNVx1NTIxY1x1NTIxZVx1NTIxZlx1NTIyMVx1NTIyMlx1NTIyM1x1NTIyNVx1NTIyNlx1NTIyN1x1NTIyYVx1NTIyY1x1NTIyZlx1NTIzMVx1NTIzMlx1NTIzNFx1NTIzNVx1NTIzY1x1NTIz'@; put 'ZVx1NTI0NCIsNSwiXHU1MjRiXHU1MjRlXHU1MjRmXHU1MjUyXHU1MjUzXHU1MjU1XHU1MjU3XHU1MjU4Il0sWyI4NDgwIiwiXHU1MjU5XHU1MjVhXHU1MjViXHU1MjVkXHU1MjVmXHU1MjYwXHU1MjYyXHU1MjYzXHU1MjY0XHU1MjY2XHU1MjY4XHU1MjZiXHU1MjZjXHU1MjZkXHU1MjZlXHU1'@; put 'MjcwXHU1MjcxXHU1MjczIiw5LCJcdTUyN2VcdTUyODBcdTUyODMiLDQsIlx1NTI4OSIsNiwiXHU1MjkxXHU1MjkyXHU1Mjk0Iiw2LCJcdTUyOWNcdTUyYTRcdTUyYTVcdTUyYTZcdTUyYTdcdTUyYWVcdTUyYWZcdTUyYjBcdTUyYjQiLDksIlx1NTJjMFx1NTJjMVx1NTJjMlx1NTJjNFx1NTJj'@; put 'NVx1NTJjNlx1NTJjOFx1NTJjYVx1NTJjY1x1NTJjZFx1NTJjZVx1NTJjZlx1NTJkMVx1NTJkM1x1NTJkNFx1NTJkNVx1NTJkN1x1NTJkOSIsNSwiXHU1MmUwXHU1MmUxXHU1MmUyXHU1MmUzXHU1MmU1IiwxMCwiXHU1MmYxIiw3LCJcdTUyZmJcdTUyZmNcdTUyZmRcdTUzMDFcdTUzMDJcdTUz'@; put 'MDNcdTUzMDRcdTUzMDdcdTUzMDlcdTUzMGFcdTUzMGJcdTUzMGNcdTUzMGUiXSxbIjg1NDAiLCJcdTUzMTFcdTUzMTJcdTUzMTNcdTUzMTRcdTUzMThcdTUzMWJcdTUzMWNcdTUzMWVcdTUzMWZcdTUzMjJcdTUzMjRcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUzMmJcdTUzMmNcdTUzMmRc'@; put 'dTUzMmYiLDksIlx1NTMzY1x1NTMzZFx1NTM0MFx1NTM0Mlx1NTM0NFx1NTM0Nlx1NTM0Ylx1NTM0Y1x1NTM0ZFx1NTM1MFx1NTM1NFx1NTM1OFx1NTM1OVx1NTM1Ylx1NTM1ZFx1NTM2NVx1NTM2OFx1NTM2YVx1NTM2Y1x1NTM2ZFx1NTM3Mlx1NTM3Nlx1NTM3OVx1NTM3Ylx1NTM3Y1x1NTM3'@; put 'ZFx1NTM3ZVx1NTM4MFx1NTM4MVx1NTM4M1x1NTM4N1x1NTM4OFx1NTM4YVx1NTM4ZVx1NTM4ZiJdLFsiODU4MCIsIlx1NTM5MCIsNCwiXHU1Mzk2XHU1Mzk3XHU1Mzk5XHU1MzliXHU1MzljXHU1MzllXHU1M2EwXHU1M2ExXHU1M2E0XHU1M2E3XHU1M2FhXHU1M2FiXHU1M2FjXHU1M2FkXHU1'@; put 'M2FmIiw2LCJcdTUzYjdcdTUzYjhcdTUzYjlcdTUzYmFcdTUzYmNcdTUzYmRcdTUzYmVcdTUzYzBcdTUzYzMiLDQsIlx1NTNjZVx1NTNjZlx1NTNkMFx1NTNkMlx1NTNkM1x1NTNkNVx1NTNkYVx1NTNkY1x1NTNkZFx1NTNkZVx1NTNlMVx1NTNlMlx1NTNlN1x1NTNmNFx1NTNmYVx1NTNmZVx1'@; put 'NTNmZlx1NTQwMFx1NTQwMlx1NTQwNVx1NTQwN1x1NTQwYlx1NTQxNFx1NTQxOFx1NTQxOVx1NTQxYVx1NTQxY1x1NTQyMlx1NTQyNFx1NTQyNVx1NTQyYVx1NTQzMFx1NTQzM1x1NTQzNlx1NTQzN1x1NTQzYVx1NTQzZFx1NTQzZlx1NTQ0MVx1NTQ0Mlx1NTQ0NFx1NTQ0NVx1NTQ0N1x1NTQ0'@; put 'OVx1NTQ0Y1x1NTQ0ZFx1NTQ0ZVx1NTQ0Zlx1NTQ1MVx1NTQ1YVx1NTQ1ZCIsNCwiXHU1NDYzXHU1NDY1XHU1NDY3XHU1NDY5Iiw3LCJcdTU0NzRcdTU0NzlcdTU0N2FcdTU0N2VcdTU0N2ZcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODdcdTU0ODhcdTU0ODlcdTU0OGFcdTU0OGRcdTU0OTFcdTU0'@; put 'OTNcdTU0OTdcdTU0OThcdTU0OWNcdTU0OWVcdTU0OWZcdTU0YTBcdTU0YTEiXSxbIjg2NDAiLCJcdTU0YTJcdTU0YTVcdTU0YWVcdTU0YjBcdTU0YjJcdTU0YjVcdTU0YjZcdTU0YjdcdTU0YjlcdTU0YmFcdTU0YmNcdTU0YmVcdTU0YzNcdTU0YzVcdTU0Y2FcdTU0Y2JcdTU0ZDZcdTU0ZDhc'@; put 'dTU0ZGJcdTU0ZTAiLDQsIlx1NTRlYlx1NTRlY1x1NTRlZlx1NTRmMFx1NTRmMVx1NTRmNCIsNSwiXHU1NGZiXHU1NGZlXHU1NTAwXHU1NTAyXHU1NTAzXHU1NTA0XHU1NTA1XHU1NTA4XHU1NTBhIiw0LCJcdTU1MTJcdTU1MTNcdTU1MTUiLDUsIlx1NTUxY1x1NTUxZFx1NTUxZVx1NTUxZlx1'@; put 'NTUyMVx1NTUyNVx1NTUyNiJdLFsiODY4MCIsIlx1NTUyOFx1NTUyOVx1NTUyYlx1NTUyZFx1NTUzMlx1NTUzNFx1NTUzNVx1NTUzNlx1NTUzOFx1NTUzOVx1NTUzYVx1NTUzYlx1NTUzZFx1NTU0MFx1NTU0Mlx1NTU0NVx1NTU0N1x1NTU0OFx1NTU0YiIsNCwiXHU1NTUxXHU1NTUyXHU1NTUz'@; put 'XHU1NTU0XHU1NTU3Iiw0LCJcdTU1NWRcdTU1NWVcdTU1NWZcdTU1NjBcdTU1NjJcdTU1NjNcdTU1NjhcdTU1NjlcdTU1NmJcdTU1NmYiLDUsIlx1NTU3OVx1NTU3YVx1NTU3ZFx1NTU3Zlx1NTU4NVx1NTU4Nlx1NTU4Y1x1NTU4ZFx1NTU4ZVx1NTU5MFx1NTU5Mlx1NTU5M1x1NTU5NVx1NTU5'@; put 'Nlx1NTU5N1x1NTU5YVx1NTU5Ylx1NTU5ZVx1NTVhMCIsNiwiXHU1NWE4Iiw4LCJcdTU1YjJcdTU1YjRcdTU1YjZcdTU1YjhcdTU1YmFcdTU1YmNcdTU1YmYiLDQsIlx1NTVjNlx1NTVjN1x1NTVjOFx1NTVjYVx1NTVjYlx1NTVjZVx1NTVjZlx1NTVkMFx1NTVkNVx1NTVkNyIsNCwiXHU1NWRl'@; put 'XHU1NWUwXHU1NWUyXHU1NWU3XHU1NWU5XHU1NWVkXHU1NWVlXHU1NWYwXHU1NWYxXHU1NWY0XHU1NWY2XHU1NWY4Iiw0LCJcdTU1ZmZcdTU2MDJcdTU2MDNcdTU2MDRcdTU2MDUiXSxbIjg3NDAiLCJcdTU2MDZcdTU2MDdcdTU2MGFcdTU2MGJcdTU2MGRcdTU2MTAiLDcsIlx1NTYxOVx1NTYx'@; put 'YVx1NTYxY1x1NTYxZFx1NTYyMFx1NTYyMVx1NTYyMlx1NTYyNVx1NTYyNlx1NTYyOFx1NTYyOVx1NTYyYVx1NTYyYlx1NTYyZVx1NTYyZlx1NTYzMFx1NTYzM1x1NTYzNVx1NTYzN1x1NTYzOFx1NTYzYVx1NTYzY1x1NTYzZFx1NTYzZVx1NTY0MCIsMTEsIlx1NTY0ZiIsNCwiXHU1NjU1XHU1'@; put 'NjU2XHU1NjVhXHU1NjViXHU1NjVkIiw0XSxbIjg3ODAiLCJcdTU2NjNcdTU2NjVcdTU2NjZcdTU2NjdcdTU2NmRcdTU2NmVcdTU2NmZcdTU2NzBcdTU2NzJcdTU2NzNcdTU2NzRcdTU2NzVcdTU2NzdcdTU2NzhcdTU2NzlcdTU2N2FcdTU2N2QiLDcsIlx1NTY4NyIsNiwiXHU1NjkwXHU1Njkx'@; put 'XHU1NjkyXHU1Njk0IiwxNCwiXHU1NmE0IiwxMCwiXHU1NmIwIiw2LCJcdTU2YjhcdTU2YjlcdTU2YmFcdTU2YmJcdTU2YmQiLDEyLCJcdTU2Y2IiLDgsIlx1NTZkNVx1NTZkNlx1NTZkOFx1NTZkOVx1NTZkY1x1NTZlM1x1NTZlNSIsNSwiXHU1NmVjXHU1NmVlXHU1NmVmXHU1NmYyXHU1NmYz'@; put 'XHU1NmY2XHU1NmY3XHU1NmY4XHU1NmZiXHU1NmZjXHU1NzAwXHU1NzAxXHU1NzAyXHU1NzA1XHU1NzA3XHU1NzBiIiw2XSxbIjg4NDAiLCJcdTU3MTIiLDksIlx1NTcxZFx1NTcxZVx1NTcyMFx1NTcyMVx1NTcyMlx1NTcyNFx1NTcyNVx1NTcyNlx1NTcyN1x1NTcyYlx1NTczMVx1NTczMlx1'@; put 'NTczNCIsNCwiXHU1NzNjXHU1NzNkXHU1NzNmXHU1NzQxXHU1NzQzXHU1NzQ0XHU1NzQ1XHU1NzQ2XHU1NzQ4XHU1NzQ5XHU1NzRiXHU1NzUyIiw0LCJcdTU3NThcdTU3NTlcdTU3NjJcdTU3NjNcdTU3NjVcdTU3NjdcdTU3NmNcdTU3NmVcdTU3NzBcdTU3NzFcdTU3NzJcdTU3NzRcdTU3NzVc'@; put 'dTU3NzhcdTU3NzlcdTU3N2FcdTU3N2RcdTU3N2VcdTU3N2ZcdTU3ODAiXSxbIjg4ODAiLCJcdTU3ODFcdTU3ODdcdTU3ODhcdTU3ODlcdTU3OGFcdTU3OGQiLDQsIlx1NTc5NCIsNiwiXHU1NzljXHU1NzlkXHU1NzllXHU1NzlmXHU1N2E1XHU1N2E4XHU1N2FhXHU1N2FjXHU1N2FmXHU1N2Iw'@; put 'XHU1N2IxXHU1N2IzXHU1N2I1XHU1N2I2XHU1N2I3XHU1N2I5Iiw4LCJcdTU3YzQiLDYsIlx1NTdjY1x1NTdjZFx1NTdkMFx1NTdkMVx1NTdkM1x1NTdkNlx1NTdkN1x1NTdkYlx1NTdkY1x1NTdkZVx1NTdlMVx1NTdlMlx1NTdlM1x1NTdlNSIsNywiXHU1N2VlXHU1N2YwXHU1N2YxXHU1N2Yy'@; put 'XHU1N2YzXHU1N2Y1XHU1N2Y2XHU1N2Y3XHU1N2ZiXHU1N2ZjXHU1N2ZlXHU1N2ZmXHU1ODAxXHU1ODAzXHU1ODA0XHU1ODA1XHU1ODA4XHU1ODA5XHU1ODBhXHU1ODBjXHU1ODBlXHU1ODBmXHU1ODEwXHU1ODEyXHU1ODEzXHU1ODE0XHU1ODE2XHU1ODE3XHU1ODE4XHU1ODFhXHU1ODFiXHU1'@; put 'ODFjXHU1ODFkXHU1ODFmXHU1ODIyXHU1ODIzXHU1ODI1Iiw0LCJcdTU4MmIiLDQsIlx1NTgzMVx1NTgzMlx1NTgzM1x1NTgzNFx1NTgzNiIsN10sWyI4OTQwIiwiXHU1ODNlIiw1LCJcdTU4NDUiLDYsIlx1NTg0ZVx1NTg0Zlx1NTg1MFx1NTg1Mlx1NTg1M1x1NTg1NVx1NTg1Nlx1NTg1N1x1'@; put 'NTg1OSIsNCwiXHU1ODVmIiw1LCJcdTU4NjYiLDQsIlx1NTg2ZCIsMTYsIlx1NTg3Zlx1NTg4Mlx1NTg4NFx1NTg4Nlx1NTg4N1x1NTg4OFx1NTg4YVx1NTg4Ylx1NTg4YyJdLFsiODk4MCIsIlx1NTg4ZCIsNCwiXHU1ODk0Iiw0LCJcdTU4OWJcdTU4OWNcdTU4OWRcdTU4YTAiLDcsIlx1NThh'@; put 'YSIsMTcsIlx1NThiZFx1NThiZVx1NThiZlx1NThjMFx1NThjMlx1NThjM1x1NThjNFx1NThjNiIsMTAsIlx1NThkMlx1NThkM1x1NThkNFx1NThkNiIsMTMsIlx1NThlNSIsNSwiXHU1OGVkXHU1OGVmXHU1OGYxXHU1OGYyXHU1OGY0XHU1OGY1XHU1OGY3XHU1OGY4XHU1OGZhIiw3LCJcdTU5'@; put 'MDNcdTU5MDVcdTU5MDZcdTU5MDgiLDQsIlx1NTkwZVx1NTkxMFx1NTkxMVx1NTkxMlx1NTkxM1x1NTkxN1x1NTkxOFx1NTkxYlx1NTkxZFx1NTkxZVx1NTkyMFx1NTkyMVx1NTkyMlx1NTkyM1x1NTkyNlx1NTkyOFx1NTkyY1x1NTkzMFx1NTkzMlx1NTkzM1x1NTkzNVx1NTkzNlx1NTkzYiJd'@; put 'LFsiOGE0MCIsIlx1NTkzZFx1NTkzZVx1NTkzZlx1NTk0MFx1NTk0M1x1NTk0NVx1NTk0Nlx1NTk0YVx1NTk0Y1x1NTk0ZFx1NTk1MFx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1YiIsNCwiXHU1OTYxXHU1OTYzXHU1OTY0XHU1OTY2IiwxMiwiXHU1OTc1XHU1OTc3XHU1OTdhXHU1OTdiXHU1OTdj'@; put 'XHU1OTdlXHU1OTdmXHU1OTgwXHU1OTg1XHU1OTg5XHU1OThiXHU1OThjXHU1OThlXHU1OThmXHU1OTkwXHU1OTkxXHU1OTk0XHU1OTk1XHU1OTk4XHU1OTlhXHU1OTliXHU1OTljXHU1OTlkXHU1OTlmXHU1OWEwXHU1OWExXHU1OWEyXHU1OWE2Il0sWyI4YTgwIiwiXHU1OWE3XHU1OWFjXHU1'@; put 'OWFkXHU1OWIwXHU1OWIxXHU1OWIzIiw1LCJcdTU5YmFcdTU5YmNcdTU5YmRcdTU5YmYiLDYsIlx1NTljN1x1NTljOFx1NTljOVx1NTljY1x1NTljZFx1NTljZVx1NTljZlx1NTlkNVx1NTlkNlx1NTlkOVx1NTlkYlx1NTlkZSIsNCwiXHU1OWU0XHU1OWU2XHU1OWU3XHU1OWU5XHU1OWVhXHU1'@; put 'OWViXHU1OWVkIiwxMSwiXHU1OWZhXHU1OWZjXHU1OWZkXHU1OWZlXHU1YTAwXHU1YTAyXHU1YTBhXHU1YTBiXHU1YTBkXHU1YTBlXHU1YTBmXHU1YTEwXHU1YTEyXHU1YTE0XHU1YTE1XHU1YTE2XHU1YTE3XHU1YTE5XHU1YTFhXHU1YTFiXHU1YTFkXHU1YTFlXHU1YTIxXHU1YTIyXHU1YTI0'@; put 'XHU1YTI2XHU1YTI3XHU1YTI4XHU1YTJhIiw2LCJcdTVhMzNcdTVhMzVcdTVhMzciLDQsIlx1NWEzZFx1NWEzZVx1NWEzZlx1NWE0MSIsNCwiXHU1YTQ3XHU1YTQ4XHU1YTRiIiw5LCJcdTVhNTZcdTVhNTdcdTVhNThcdTVhNTlcdTVhNWIiLDVdLFsiOGI0MCIsIlx1NWE2MVx1NWE2M1x1NWE2'@; put 'NFx1NWE2NVx1NWE2Nlx1NWE2OFx1NWE2OVx1NWE2YiIsOCwiXHU1YTc4XHU1YTc5XHU1YTdiXHU1YTdjXHU1YTdkXHU1YTdlXHU1YTgwIiwxNywiXHU1YTkzIiw2LCJcdTVhOWMiLDEzLCJcdTVhYWJcdTVhYWMiXSxbIjhiODAiLCJcdTVhYWQiLDQsIlx1NWFiNFx1NWFiNlx1NWFiN1x1NWFi'@; put 'OSIsNCwiXHU1YWJmXHU1YWMwXHU1YWMzIiw1LCJcdTVhY2FcdTVhY2JcdTVhY2QiLDQsIlx1NWFkM1x1NWFkNVx1NWFkN1x1NWFkOVx1NWFkYVx1NWFkYlx1NWFkZFx1NWFkZVx1NWFkZlx1NWFlMlx1NWFlNFx1NWFlNVx1NWFlN1x1NWFlOFx1NWFlYVx1NWFlYyIsNCwiXHU1YWYyIiwyMiwi'@; put 'XHU1YjBhIiwxMSwiXHU1YjE4IiwyNSwiXHU1YjMzXHU1YjM1XHU1YjM2XHU1YjM4Iiw3LCJcdTViNDEiLDZdLFsiOGM0MCIsIlx1NWI0OCIsNywiXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjYwXHU1YjYxXHU1YjY3XHU1YjY4XHU1YjZiXHU1YjZkXHU1YjZlXHU1YjZmXHU1YjcyXHU1Yjc0XHU1'@; put 'Yjc2XHU1Yjc3XHU1Yjc4XHU1Yjc5XHU1YjdiXHU1YjdjXHU1YjdlXHU1YjdmXHU1YjgyXHU1Yjg2XHU1YjhhXHU1YjhkXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkyXHU1Yjk0XHU1Yjk2XHU1YjlmXHU1YmE3XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFlXHU1YmFmXHU1YmIxXHU1YmIy'@; put 'XHU1YmI3XHU1YmJhXHU1YmJiXHU1YmJjXHU1YmMwXHU1YmMxXHU1YmMzXHU1YmM4XHU1YmM5XHU1YmNhXHU1YmNiXHU1YmNkXHU1YmNlXHU1YmNmIl0sWyI4YzgwIiwiXHU1YmQxXHU1YmQ0Iiw4LCJcdTViZTBcdTViZTJcdTViZTNcdTViZTZcdTViZTdcdTViZTkiLDQsIlx1NWJlZlx1NWJm'@; put 'MSIsNiwiXHU1YmZkXHU1YmZlXHU1YzAwXHU1YzAyXHU1YzAzXHU1YzA1XHU1YzA3XHU1YzA4XHU1YzBiXHU1YzBjXHU1YzBkXHU1YzBlXHU1YzEwXHU1YzEyXHU1YzEzXHU1YzE3XHU1YzE5XHU1YzFiXHU1YzFlXHU1YzFmXHU1YzIwXHU1YzIxXHU1YzIzXHU1YzI2XHU1YzI4XHU1YzI5XHU1'@; put 'YzJhXHU1YzJiXHU1YzJkXHU1YzJlXHU1YzJmXHU1YzMwXHU1YzMyXHU1YzMzXHU1YzM1XHU1YzM2XHU1YzM3XHU1YzQzXHU1YzQ0XHU1YzQ2XHU1YzQ3XHU1YzRjXHU1YzRkXHU1YzUyXHU1YzUzXHU1YzU0XHU1YzU2XHU1YzU3XHU1YzU4XHU1YzVhXHU1YzViXHU1YzVjXHU1YzVkXHU1YzVm'@; put 'XHU1YzYyXHU1YzY0XHU1YzY3Iiw2LCJcdTVjNzBcdTVjNzIiLDYsIlx1NWM3Ylx1NWM3Y1x1NWM3ZFx1NWM3ZVx1NWM4MFx1NWM4MyIsNCwiXHU1Yzg5XHU1YzhhXHU1YzhiXHU1YzhlXHU1YzhmXHU1YzkyXHU1YzkzXHU1Yzk1XHU1YzlkIiw0LCJcdTVjYTQiLDRdLFsiOGQ0MCIsIlx1NWNh'@; put 'YVx1NWNhZVx1NWNhZlx1NWNiMFx1NWNiMlx1NWNiNFx1NWNiNlx1NWNiOVx1NWNiYVx1NWNiYlx1NWNiY1x1NWNiZVx1NWNjMFx1NWNjMlx1NWNjM1x1NWNjNSIsNSwiXHU1Y2NjIiw1LCJcdTVjZDMiLDUsIlx1NWNkYSIsNiwiXHU1Y2UyXHU1Y2UzXHU1Y2U3XHU1Y2U5XHU1Y2ViXHU1Y2Vj'@; put 'XHU1Y2VlXHU1Y2VmXHU1Y2YxIiw5LCJcdTVjZmMiLDRdLFsiOGQ4MCIsIlx1NWQwMVx1NWQwNFx1NWQwNVx1NWQwOCIsNSwiXHU1ZDBmIiw0LCJcdTVkMTVcdTVkMTdcdTVkMThcdTVkMTlcdTVkMWFcdTVkMWNcdTVkMWRcdTVkMWYiLDQsIlx1NWQyNVx1NWQyOFx1NWQyYVx1NWQyYlx1NWQy'@; put 'Y1x1NWQyZiIsNCwiXHU1ZDM1Iiw3LCJcdTVkM2YiLDcsIlx1NWQ0OFx1NWQ0OVx1NWQ0ZCIsMTAsIlx1NWQ1OVx1NWQ1YVx1NWQ1Y1x1NWQ1ZSIsMTAsIlx1NWQ2YVx1NWQ2ZFx1NWQ2ZVx1NWQ3MFx1NWQ3MVx1NWQ3Mlx1NWQ3M1x1NWQ3NSIsMTIsIlx1NWQ4MyIsMjEsIlx1NWQ5YVx1NWQ5'@; put 'Ylx1NWQ5Y1x1NWQ5ZVx1NWQ5Zlx1NWRhMCJdLFsiOGU0MCIsIlx1NWRhMSIsMjEsIlx1NWRiOCIsMTIsIlx1NWRjNiIsNiwiXHU1ZGNlIiwxMiwiXHU1ZGRjXHU1ZGRmXHU1ZGUwXHU1ZGUzXHU1ZGU0XHU1ZGVhXHU1ZGVjXHU1ZGVkIl0sWyI4ZTgwIiwiXHU1ZGYwXHU1ZGY1XHU1ZGY2XHU1'@; put 'ZGY4Iiw0LCJcdTVkZmZcdTVlMDBcdTVlMDRcdTVlMDdcdTVlMDlcdTVlMGFcdTVlMGJcdTVlMGRcdTVlMGVcdTVlMTJcdTVlMTNcdTVlMTdcdTVlMWUiLDcsIlx1NWUyOCIsNCwiXHU1ZTJmXHU1ZTMwXHU1ZTMyIiw0LCJcdTVlMzlcdTVlM2FcdTVlM2VcdTVlM2ZcdTVlNDBcdTVlNDFcdTVl'@; put 'NDNcdTVlNDYiLDUsIlx1NWU0ZCIsNiwiXHU1ZTU2Iiw0LCJcdTVlNWNcdTVlNWRcdTVlNWZcdTVlNjBcdTVlNjMiLDE0LCJcdTVlNzVcdTVlNzdcdTVlNzlcdTVlN2VcdTVlODFcdTVlODJcdTVlODNcdTVlODVcdTVlODhcdTVlODlcdTVlOGNcdTVlOGRcdTVlOGVcdTVlOTJcdTVlOThcdTVl'@; put 'OWJcdTVlOWRcdTVlYTFcdTVlYTJcdTVlYTNcdTVlYTRcdTVlYTgiLDQsIlx1NWVhZSIsNCwiXHU1ZWI0XHU1ZWJhXHU1ZWJiXHU1ZWJjXHU1ZWJkXHU1ZWJmIiw2XSxbIjhmNDAiLCJcdTVlYzZcdTVlYzdcdTVlYzhcdTVlY2IiLDUsIlx1NWVkNFx1NWVkNVx1NWVkN1x1NWVkOFx1NWVkOVx1'@; put 'NWVkYVx1NWVkYyIsMTEsIlx1NWVlOVx1NWVlYiIsOCwiXHU1ZWY1XHU1ZWY4XHU1ZWY5XHU1ZWZiXHU1ZWZjXHU1ZWZkXHU1ZjA1XHU1ZjA2XHU1ZjA3XHU1ZjA5XHU1ZjBjXHU1ZjBkXHU1ZjBlXHU1ZjEwXHU1ZjEyXHU1ZjE0XHU1ZjE2XHU1ZjE5XHU1ZjFhXHU1ZjFjXHU1ZjFkXHU1ZjFl'@; put 'XHU1ZjIxXHU1ZjIyXHU1ZjIzXHU1ZjI0Il0sWyI4ZjgwIiwiXHU1ZjI4XHU1ZjJiXHU1ZjJjXHU1ZjJlXHU1ZjMwXHU1ZjMyIiw2LCJcdTVmM2JcdTVmM2RcdTVmM2VcdTVmM2ZcdTVmNDEiLDE0LCJcdTVmNTFcdTVmNTRcdTVmNTlcdTVmNWFcdTVmNWJcdTVmNWNcdTVmNWVcdTVmNWZcdTVm'@; put 'NjBcdTVmNjNcdTVmNjVcdTVmNjdcdTVmNjhcdTVmNmJcdTVmNmVcdTVmNmZcdTVmNzJcdTVmNzRcdTVmNzVcdTVmNzZcdTVmNzhcdTVmN2FcdTVmN2RcdTVmN2VcdTVmN2ZcdTVmODNcdTVmODZcdTVmOGRcdTVmOGVcdTVmOGZcdTVmOTFcdTVmOTNcdTVmOTRcdTVmOTZcdTVmOWFcdTVmOWJc'@; put 'dTVmOWRcdTVmOWVcdTVmOWZcdTVmYTBcdTVmYTIiLDUsIlx1NWZhOVx1NWZhYlx1NWZhY1x1NWZhZiIsNSwiXHU1ZmI2XHU1ZmI4XHU1ZmI5XHU1ZmJhXHU1ZmJiXHU1ZmJlIiw0LCJcdTVmYzdcdTVmYzhcdTVmY2FcdTVmY2JcdTVmY2VcdTVmZDNcdTVmZDRcdTVmZDVcdTVmZGFcdTVmZGJc'@; put 'dTVmZGNcdTVmZGVcdTVmZGZcdTVmZTJcdTVmZTNcdTVmZTVcdTVmZTZcdTVmZThcdTVmZTlcdTVmZWNcdTVmZWZcdTVmZjBcdTVmZjJcdTVmZjNcdTVmZjRcdTVmZjZcdTVmZjdcdTVmZjlcdTVmZmFcdTVmZmNcdTYwMDciXSxbIjkwNDAiLCJcdTYwMDhcdTYwMDlcdTYwMGJcdTYwMGNcdTYw'@; put 'MTBcdTYwMTFcdTYwMTNcdTYwMTdcdTYwMThcdTYwMWFcdTYwMWVcdTYwMWZcdTYwMjJcdTYwMjNcdTYwMjRcdTYwMmNcdTYwMmRcdTYwMmVcdTYwMzAiLDQsIlx1NjAzNiIsNCwiXHU2MDNkXHU2MDNlXHU2MDQwXHU2MDQ0Iiw2LCJcdTYwNGNcdTYwNGVcdTYwNGZcdTYwNTFcdTYwNTNcdTYw'@; put 'NTRcdTYwNTZcdTYwNTdcdTYwNThcdTYwNWJcdTYwNWNcdTYwNWVcdTYwNWZcdTYwNjBcdTYwNjFcdTYwNjVcdTYwNjZcdTYwNmVcdTYwNzFcdTYwNzJcdTYwNzRcdTYwNzVcdTYwNzdcdTYwN2VcdTYwODAiXSxbIjkwODAiLCJcdTYwODFcdTYwODJcdTYwODVcdTYwODZcdTYwODdcdTYwODhc'@; put 'dTYwOGFcdTYwOGJcdTYwOGVcdTYwOGZcdTYwOTBcdTYwOTFcdTYwOTNcdTYwOTVcdTYwOTdcdTYwOThcdTYwOTlcdTYwOWNcdTYwOWVcdTYwYTFcdTYwYTJcdTYwYTRcdTYwYTVcdTYwYTdcdTYwYTlcdTYwYWFcdTYwYWVcdTYwYjBcdTYwYjNcdTYwYjVcdTYwYjZcdTYwYjdcdTYwYjlcdTYw'@; put 'YmFcdTYwYmQiLDcsIlx1NjBjN1x1NjBjOFx1NjBjOVx1NjBjYyIsNCwiXHU2MGQyXHU2MGQzXHU2MGQ0XHU2MGQ2XHU2MGQ3XHU2MGQ5XHU2MGRiXHU2MGRlXHU2MGUxIiw0LCJcdTYwZWFcdTYwZjFcdTYwZjJcdTYwZjVcdTYwZjdcdTYwZjhcdTYwZmIiLDQsIlx1NjEwMlx1NjEwM1x1NjEw'@; put 'NFx1NjEwNVx1NjEwN1x1NjEwYVx1NjEwYlx1NjEwY1x1NjExMCIsNCwiXHU2MTE2XHU2MTE3XHU2MTE4XHU2MTE5XHU2MTFiXHU2MTFjXHU2MTFkXHU2MTFlXHU2MTIxXHU2MTIyXHU2MTI1XHU2MTI4XHU2MTI5XHU2MTJhXHU2MTJjIiwxOCwiXHU2MTQwIiw2XSxbIjkxNDAiLCJcdTYxNDdc'@; put 'dTYxNDlcdTYxNGJcdTYxNGRcdTYxNGZcdTYxNTBcdTYxNTJcdTYxNTNcdTYxNTRcdTYxNTYiLDYsIlx1NjE1ZVx1NjE1Zlx1NjE2MFx1NjE2MVx1NjE2M1x1NjE2NFx1NjE2NVx1NjE2Nlx1NjE2OSIsNiwiXHU2MTcxXHU2MTcyXHU2MTczXHU2MTc0XHU2MTc2XHU2MTc4IiwxOCwiXHU2MThj'@; put 'XHU2MThkXHU2MThmIiw0LCJcdTYxOTUiXSxbIjkxODAiLCJcdTYxOTYiLDYsIlx1NjE5ZSIsOCwiXHU2MWFhXHU2MWFiXHU2MWFkIiw5LCJcdTYxYjgiLDUsIlx1NjFiZlx1NjFjMFx1NjFjMVx1NjFjMyIsNCwiXHU2MWM5XHU2MWNjIiw0LCJcdTYxZDNcdTYxZDUiLDE2LCJcdTYxZTciLDEz'@; put 'LCJcdTYxZjYiLDgsIlx1NjIwMCIsNSwiXHU2MjA3XHU2MjA5XHU2MjEzXHU2MjE0XHU2MjE5XHU2MjFjXHU2MjFkXHU2MjFlXHU2MjIwXHU2MjIzXHU2MjI2XHU2MjI3XHU2MjI4XHU2MjI5XHU2MjJiXHU2MjJkXHU2MjJmXHU2MjMwXHU2MjMxXHU2MjMyXHU2MjM1XHU2MjM2XHU2MjM4Iiw0'@; put 'LCJcdTYyNDJcdTYyNDRcdTYyNDVcdTYyNDZcdTYyNGEiXSxbIjkyNDAiLCJcdTYyNGZcdTYyNTBcdTYyNTVcdTYyNTZcdTYyNTdcdTYyNTlcdTYyNWFcdTYyNWMiLDYsIlx1NjI2NFx1NjI2NVx1NjI2OFx1NjI3MVx1NjI3Mlx1NjI3NFx1NjI3NVx1NjI3N1x1NjI3OFx1NjI3YVx1NjI3Ylx1'@; put 'NjI3ZFx1NjI4MVx1NjI4Mlx1NjI4M1x1NjI4NVx1NjI4Nlx1NjI4N1x1NjI4OFx1NjI4YiIsNSwiXHU2Mjk0XHU2Mjk5XHU2MjljXHU2MjlkXHU2MjllXHU2MmEzXHU2MmE2XHU2MmE3XHU2MmE5XHU2MmFhXHU2MmFkXHU2MmFlXHU2MmFmXHU2MmIwXHU2MmIyXHU2MmIzXHU2MmI0XHU2MmI2'@; put 'XHU2MmI3XHU2MmI4XHU2MmJhXHU2MmJlXHU2MmMwXHU2MmMxIl0sWyI5MjgwIiwiXHU2MmMzXHU2MmNiXHU2MmNmXHU2MmQxXHU2MmQ1XHU2MmRkXHU2MmRlXHU2MmUwXHU2MmUxXHU2MmU0XHU2MmVhXHU2MmViXHU2MmYwXHU2MmYyXHU2MmY1XHU2MmY4XHU2MmY5XHU2MmZhXHU2MmZiXHU2'@; put 'MzAwXHU2MzAzXHU2MzA0XHU2MzA1XHU2MzA2XHU2MzBhXHU2MzBiXHU2MzBjXHU2MzBkXHU2MzBmXHU2MzEwXHU2MzEyXHU2MzEzXHU2MzE0XHU2MzE1XHU2MzE3XHU2MzE4XHU2MzE5XHU2MzFjXHU2MzI2XHU2MzI3XHU2MzI5XHU2MzJjXHU2MzJkXHU2MzJlXHU2MzMwXHU2MzMxXHU2MzMz'@; put 'Iiw1LCJcdTYzM2JcdTYzM2NcdTYzM2VcdTYzM2ZcdTYzNDBcdTYzNDFcdTYzNDRcdTYzNDdcdTYzNDhcdTYzNGFcdTYzNTFcdTYzNTJcdTYzNTNcdTYzNTRcdTYzNTYiLDcsIlx1NjM2MFx1NjM2NFx1NjM2NVx1NjM2Nlx1NjM2OFx1NjM2YVx1NjM2Ylx1NjM2Y1x1NjM2Zlx1NjM3MFx1NjM3'@; put 'Mlx1NjM3M1x1NjM3NFx1NjM3NVx1NjM3OFx1NjM3OVx1NjM3Y1x1NjM3ZFx1NjM3ZVx1NjM3Zlx1NjM4MVx1NjM4M1x1NjM4NFx1NjM4NVx1NjM4Nlx1NjM4Ylx1NjM4ZFx1NjM5MVx1NjM5M1x1NjM5NFx1NjM5NVx1NjM5N1x1NjM5OSIsNiwiXHU2M2ExXHU2M2E0XHU2M2E2XHU2M2FiXHU2'@; put 'M2FmXHU2M2IxXHU2M2IyXHU2M2I1XHU2M2I2XHU2M2I5XHU2M2JiXHU2M2JkXHU2M2JmXHU2M2MwIl0sWyI5MzQwIiwiXHU2M2MxXHU2M2MyXHU2M2MzXHU2M2M1XHU2M2M3XHU2M2M4XHU2M2NhXHU2M2NiXHU2M2NjXHU2M2QxXHU2M2QzXHU2M2Q0XHU2M2Q1XHU2M2Q3Iiw2LCJcdTYzZGZc'@; put 'dTYzZTJcdTYzZTQiLDQsIlx1NjNlYlx1NjNlY1x1NjNlZVx1NjNlZlx1NjNmMFx1NjNmMVx1NjNmM1x1NjNmNVx1NjNmN1x1NjNmOVx1NjNmYVx1NjNmYlx1NjNmY1x1NjNmZVx1NjQwM1x1NjQwNFx1NjQwNiIsNCwiXHU2NDBkXHU2NDBlXHU2NDExXHU2NDEyXHU2NDE1Iiw1LCJcdTY0MWRc'@; put 'dTY0MWZcdTY0MjJcdTY0MjNcdTY0MjQiXSxbIjkzODAiLCJcdTY0MjVcdTY0MjdcdTY0MjhcdTY0MjlcdTY0MmJcdTY0MmUiLDUsIlx1NjQzNSIsNCwiXHU2NDNiXHU2NDNjXHU2NDNlXHU2NDQwXHU2NDQyXHU2NDQzXHU2NDQ5XHU2NDRiIiw2LCJcdTY0NTNcdTY0NTVcdTY0NTZcdTY0NTdc'@; put 'dTY0NTkiLDQsIlx1NjQ1ZiIsNywiXHU2NDY4XHU2NDZhXHU2NDZiXHU2NDZjXHU2NDZlIiw5LCJcdTY0N2IiLDYsIlx1NjQ4M1x1NjQ4Nlx1NjQ4OCIsOCwiXHU2NDkzXHU2NDk0XHU2NDk3XHU2NDk4XHU2NDlhXHU2NDliXHU2NDljXHU2NDlkXHU2NDlmIiw0LCJcdTY0YTVcdTY0YTZcdTY0'@; put 'YTdcdTY0YThcdTY0YWFcdTY0YWJcdTY0YWZcdTY0YjFcdTY0YjJcdTY0YjNcdTY0YjRcdTY0YjZcdTY0YjlcdTY0YmJcdTY0YmRcdTY0YmVcdTY0YmZcdTY0YzFcdTY0YzNcdTY0YzRcdTY0YzYiLDYsIlx1NjRjZlx1NjRkMVx1NjRkM1x1NjRkNFx1NjRkNVx1NjRkNlx1NjRkOVx1NjRkYSJd'@; put 'LFsiOTQ0MCIsIlx1NjRkYlx1NjRkY1x1NjRkZFx1NjRkZlx1NjRlMFx1NjRlMVx1NjRlM1x1NjRlNVx1NjRlNyIsMjQsIlx1NjUwMSIsNywiXHU2NTBhIiw3LCJcdTY1MTMiLDQsIlx1NjUxOSIsOF0sWyI5NDgwIiwiXHU2NTIyXHU2NTIzXHU2NTI0XHU2NTI2Iiw0LCJcdTY1MmNcdTY1MmRc'@; put 'dTY1MzBcdTY1MzFcdTY1MzJcdTY1MzNcdTY1MzdcdTY1M2FcdTY1M2NcdTY1M2RcdTY1NDAiLDQsIlx1NjU0Nlx1NjU0N1x1NjU0YVx1NjU0Ylx1NjU0ZFx1NjU0ZVx1NjU1MFx1NjU1Mlx1NjU1M1x1NjU1NFx1NjU1N1x1NjU1OFx1NjU1YVx1NjU1Y1x1NjU1Zlx1NjU2MFx1NjU2MVx1NjU2'@; put 'NFx1NjU2NVx1NjU2N1x1NjU2OFx1NjU2OVx1NjU2YVx1NjU2ZFx1NjU2ZVx1NjU2Zlx1NjU3MVx1NjU3M1x1NjU3NVx1NjU3Nlx1NjU3OCIsMTQsIlx1NjU4OFx1NjU4OVx1NjU4YVx1NjU4ZFx1NjU4ZVx1NjU4Zlx1NjU5Mlx1NjU5NFx1NjU5NVx1NjU5Nlx1NjU5OFx1NjU5YVx1NjU5ZFx1'@; put 'NjU5ZVx1NjVhMFx1NjVhMlx1NjVhM1x1NjVhNlx1NjVhOFx1NjVhYVx1NjVhY1x1NjVhZVx1NjViMSIsNywiXHU2NWJhXHU2NWJiXHU2NWJlXHU2NWJmXHU2NWMwXHU2NWMyXHU2NWM3XHU2NWM4XHU2NWM5XHU2NWNhXHU2NWNkXHU2NWQwXHU2NWQxXHU2NWQzXHU2NWQ0XHU2NWQ1XHU2NWQ4'@; put 'Iiw3LCJcdTY1ZTFcdTY1ZTNcdTY1ZTRcdTY1ZWFcdTY1ZWIiXSxbIjk1NDAiLCJcdTY1ZjJcdTY1ZjNcdTY1ZjRcdTY1ZjVcdTY1ZjhcdTY1ZjlcdTY1ZmIiLDQsIlx1NjYwMVx1NjYwNFx1NjYwNVx1NjYwN1x1NjYwOFx1NjYwOVx1NjYwYlx1NjYwZFx1NjYxMFx1NjYxMVx1NjYxMlx1NjYx'@; put 'Nlx1NjYxN1x1NjYxOFx1NjYxYVx1NjYxYlx1NjYxY1x1NjYxZVx1NjYyMVx1NjYyMlx1NjYyM1x1NjYyNFx1NjYyNlx1NjYyOVx1NjYyYVx1NjYyYlx1NjYyY1x1NjYyZVx1NjYzMFx1NjYzMlx1NjYzM1x1NjYzNyIsNCwiXHU2NjNkXHU2NjNmXHU2NjQwXHU2NjQyXHU2NjQ0Iiw2LCJcdTY2'@; put 'NGRcdTY2NGVcdTY2NTBcdTY2NTFcdTY2NTgiXSxbIjk1ODAiLCJcdTY2NTlcdTY2NWJcdTY2NWNcdTY2NWRcdTY2NWVcdTY2NjBcdTY2NjJcdTY2NjNcdTY2NjVcdTY2NjdcdTY2NjkiLDQsIlx1NjY3MVx1NjY3Mlx1NjY3M1x1NjY3NVx1NjY3OFx1NjY3OVx1NjY3Ylx1NjY3Y1x1NjY3ZFx1'@; put 'NjY3Zlx1NjY4MFx1NjY4MVx1NjY4M1x1NjY4NVx1NjY4Nlx1NjY4OFx1NjY4OVx1NjY4YVx1NjY4Ylx1NjY4ZFx1NjY4ZVx1NjY4Zlx1NjY5MFx1NjY5Mlx1NjY5M1x1NjY5NFx1NjY5NVx1NjY5OCIsNCwiXHU2NjllIiw4LCJcdTY2YTkiLDQsIlx1NjZhZiIsNCwiXHU2NmI1XHU2NmI2XHU2'@; put 'NmI3XHU2NmI4XHU2NmJhXHU2NmJiXHU2NmJjXHU2NmJkXHU2NmJmIiwyNSwiXHU2NmRhXHU2NmRlIiw3LCJcdTY2ZTdcdTY2ZThcdTY2ZWEiLDUsIlx1NjZmMVx1NjZmNVx1NjZmNlx1NjZmOFx1NjZmYVx1NjZmYlx1NjZmZFx1NjcwMVx1NjcwMlx1NjcwMyJdLFsiOTY0MCIsIlx1NjcwNFx1'@; put 'NjcwNVx1NjcwNlx1NjcwN1x1NjcwY1x1NjcwZVx1NjcwZlx1NjcxMVx1NjcxMlx1NjcxM1x1NjcxNlx1NjcxOFx1NjcxOVx1NjcxYVx1NjcxY1x1NjcxZVx1NjcyMCIsNSwiXHU2NzI3XHU2NzI5XHU2NzJlXHU2NzMwXHU2NzMyXHU2NzMzXHU2NzM2XHU2NzM3XHU2NzM4XHU2NzM5XHU2NzNi'@; put 'XHU2NzNjXHU2NzNlXHU2NzNmXHU2NzQxXHU2NzQ0XHU2NzQ1XHU2NzQ3XHU2NzRhXHU2NzRiXHU2NzRkXHU2NzUyXHU2NzU0XHU2NzU1XHU2NzU3Iiw0LCJcdTY3NWRcdTY3NjJcdTY3NjNcdTY3NjRcdTY3NjZcdTY3NjdcdTY3NmJcdTY3NmNcdTY3NmVcdTY3NzFcdTY3NzRcdTY3NzYiXSxb'@; put 'Ijk2ODAiLCJcdTY3NzhcdTY3NzlcdTY3N2FcdTY3N2JcdTY3N2RcdTY3ODBcdTY3ODJcdTY3ODNcdTY3ODVcdTY3ODZcdTY3ODhcdTY3OGFcdTY3OGNcdTY3OGRcdTY3OGVcdTY3OGZcdTY3OTFcdTY3OTJcdTY3OTNcdTY3OTRcdTY3OTZcdTY3OTlcdTY3OWJcdTY3OWZcdTY3YTBcdTY3YTFc'@; put 'dTY3YTRcdTY3YTZcdTY3YTlcdTY3YWNcdTY3YWVcdTY3YjFcdTY3YjJcdTY3YjRcdTY3YjkiLDcsIlx1NjdjMlx1NjdjNSIsOSwiXHU2N2Q1XHU2N2Q2XHU2N2Q3XHU2N2RiXHU2N2RmXHU2N2UxXHU2N2UzXHU2N2U0XHU2N2U2XHU2N2U3XHU2N2U4XHU2N2VhXHU2N2ViXHU2N2VkXHU2N2Vl'@; put 'XHU2N2YyXHU2N2Y1Iiw3LCJcdTY3ZmVcdTY4MDFcdTY4MDJcdTY4MDNcdTY4MDRcdTY4MDZcdTY4MGRcdTY4MTBcdTY4MTJcdTY4MTRcdTY4MTVcdTY4MTgiLDQsIlx1NjgxZVx1NjgxZlx1NjgyMFx1NjgyMiIsNiwiXHU2ODJiIiw2LCJcdTY4MzRcdTY4MzVcdTY4MzZcdTY4M2FcdTY4M2Jc'@; put 'dTY4M2ZcdTY4NDdcdTY4NGJcdTY4NGRcdTY4NGZcdTY4NTJcdTY4NTYiLDVdLFsiOTc0MCIsIlx1Njg1Y1x1Njg1ZFx1Njg1ZVx1Njg1Zlx1Njg2YVx1Njg2YyIsNywiXHU2ODc1XHU2ODc4Iiw4LCJcdTY4ODJcdTY4ODRcdTY4ODciLDcsIlx1Njg5MFx1Njg5MVx1Njg5Mlx1Njg5NFx1Njg5'@; put 'NVx1Njg5Nlx1Njg5OCIsOSwiXHU2OGEzXHU2OGE0XHU2OGE1XHU2OGE5XHU2OGFhXHU2OGFiXHU2OGFjXHU2OGFlXHU2OGIxXHU2OGIyXHU2OGI0XHU2OGI2XHU2OGI3XHU2OGI4Il0sWyI5NzgwIiwiXHU2OGI5Iiw2LCJcdTY4YzFcdTY4YzMiLDUsIlx1NjhjYVx1NjhjY1x1NjhjZVx1Njhj'@; put 'Zlx1NjhkMFx1NjhkMVx1NjhkM1x1NjhkNFx1NjhkNlx1NjhkN1x1NjhkOVx1NjhkYiIsNCwiXHU2OGUxXHU2OGUyXHU2OGU0Iiw5LCJcdTY4ZWZcdTY4ZjJcdTY4ZjNcdTY4ZjRcdTY4ZjZcdTY4ZjdcdTY4ZjhcdTY4ZmJcdTY4ZmRcdTY4ZmVcdTY4ZmZcdTY5MDBcdTY5MDJcdTY5MDNcdTY5'@; put 'MDRcdTY5MDYiLDQsIlx1NjkwY1x1NjkwZlx1NjkxMVx1NjkxMyIsMTEsIlx1NjkyMVx1NjkyMlx1NjkyM1x1NjkyNSIsNywiXHU2OTJlXHU2OTJmXHU2OTMxXHU2OTMyXHU2OTMzXHU2OTM1XHU2OTM2XHU2OTM3XHU2OTM4XHU2OTNhXHU2OTNiXHU2OTNjXHU2OTNlXHU2OTQwXHU2OTQxXHU2'@; put 'OTQzIiwxNiwiXHU2OTU1XHU2OTU2XHU2OTU4XHU2OTU5XHU2OTViXHU2OTVjXHU2OTVmIl0sWyI5ODQwIiwiXHU2OTYxXHU2OTYyXHU2OTY0XHU2OTY1XHU2OTY3XHU2OTY4XHU2OTY5XHU2OTZhXHU2OTZjXHU2OTZkXHU2OTZmXHU2OTcwXHU2OTcyIiw0LCJcdTY5N2FcdTY5N2JcdTY5N2Rc'@; put 'dTY5N2VcdTY5N2ZcdTY5ODFcdTY5ODNcdTY5ODVcdTY5OGFcdTY5OGJcdTY5OGNcdTY5OGUiLDUsIlx1Njk5Nlx1Njk5N1x1Njk5OVx1Njk5YVx1Njk5ZCIsOSwiXHU2OWE5XHU2OWFhXHU2OWFjXHU2OWFlXHU2OWFmXHU2OWIwXHU2OWIyXHU2OWIzXHU2OWI1XHU2OWI2XHU2OWI4XHU2OWI5'@; put 'XHU2OWJhXHU2OWJjXHU2OWJkIl0sWyI5ODgwIiwiXHU2OWJlXHU2OWJmXHU2OWMwXHU2OWMyIiw3LCJcdTY5Y2JcdTY5Y2RcdTY5Y2ZcdTY5ZDFcdTY5ZDJcdTY5ZDNcdTY5ZDUiLDUsIlx1NjlkY1x1NjlkZFx1NjlkZVx1NjllMSIsMTEsIlx1NjllZVx1NjllZlx1NjlmMFx1NjlmMVx1Njlm'@; put 'MyIsOSwiXHU2OWZlXHU2YTAwIiw5LCJcdTZhMGIiLDExLCJcdTZhMTkiLDUsIlx1NmEyMFx1NmEyMiIsNSwiXHU2YTI5XHU2YTJiXHU2YTJjXHU2YTJkXHU2YTJlXHU2YTMwXHU2YTMyXHU2YTMzXHU2YTM0XHU2YTM2Iiw2LCJcdTZhM2YiLDQsIlx1NmE0NVx1NmE0Nlx1NmE0OCIsNywiXHU2'@; put 'YTUxIiw2LCJcdTZhNWEiXSxbIjk5NDAiLCJcdTZhNWMiLDQsIlx1NmE2Mlx1NmE2M1x1NmE2NFx1NmE2NiIsMTAsIlx1NmE3MiIsNiwiXHU2YTdhXHU2YTdiXHU2YTdkXHU2YTdlXHU2YTdmXHU2YTgxXHU2YTgyXHU2YTgzXHU2YTg1Iiw4LCJcdTZhOGZcdTZhOTIiLDQsIlx1NmE5OCIsNywi'@; put 'XHU2YWExIiw1XSxbIjk5ODAiLCJcdTZhYTdcdTZhYThcdTZhYWFcdTZhYWQiLDExNCwiXHU2YjI1XHU2YjI2XHU2YjI4Iiw2XSxbIjlhNDAiLCJcdTZiMmZcdTZiMzBcdTZiMzFcdTZiMzNcdTZiMzRcdTZiMzVcdTZiMzZcdTZiMzhcdTZiM2JcdTZiM2NcdTZiM2RcdTZiM2ZcdTZiNDBcdTZi'@; put 'NDFcdTZiNDJcdTZiNDRcdTZiNDVcdTZiNDhcdTZiNGFcdTZiNGJcdTZiNGQiLDExLCJcdTZiNWEiLDcsIlx1NmI2OFx1NmI2OVx1NmI2YiIsMTMsIlx1NmI3YVx1NmI3ZFx1NmI3ZVx1NmI3Zlx1NmI4MFx1NmI4NVx1NmI4OCJdLFsiOWE4MCIsIlx1NmI4Y1x1NmI4ZVx1NmI4Zlx1NmI5MFx1'@; put 'NmI5MVx1NmI5NFx1NmI5NVx1NmI5N1x1NmI5OFx1NmI5OVx1NmI5YyIsNCwiXHU2YmEyIiw3LCJcdTZiYWIiLDcsIlx1NmJiNlx1NmJiOCIsNiwiXHU2YmMwXHU2YmMzXHU2YmM0XHU2YmM2Iiw0LCJcdTZiY2NcdTZiY2VcdTZiZDBcdTZiZDFcdTZiZDhcdTZiZGFcdTZiZGMiLDQsIlx1NmJl'@; put 'MiIsNywiXHU2YmVjXHU2YmVkXHU2YmVlXHU2YmYwXHU2YmYxXHU2YmYyXHU2YmY0XHU2YmY2XHU2YmY3XHU2YmY4XHU2YmZhXHU2YmZiXHU2YmZjXHU2YmZlIiw2LCJcdTZjMDgiLDQsIlx1NmMwZVx1NmMxMlx1NmMxN1x1NmMxY1x1NmMxZFx1NmMxZVx1NmMyMFx1NmMyM1x1NmMyNVx1NmMy'@; put 'Ylx1NmMyY1x1NmMyZFx1NmMzMVx1NmMzM1x1NmMzNlx1NmMzN1x1NmMzOVx1NmMzYVx1NmMzYlx1NmMzY1x1NmMzZVx1NmMzZlx1NmM0M1x1NmM0NFx1NmM0NVx1NmM0OFx1NmM0YiIsNCwiXHU2YzUxXHU2YzUyXHU2YzUzXHU2YzU2XHU2YzU4Il0sWyI5YjQwIiwiXHU2YzU5XHU2YzVhXHU2'@; put 'YzYyXHU2YzYzXHU2YzY1XHU2YzY2XHU2YzY3XHU2YzZiIiw0LCJcdTZjNzFcdTZjNzNcdTZjNzVcdTZjNzdcdTZjNzhcdTZjN2FcdTZjN2JcdTZjN2NcdTZjN2ZcdTZjODBcdTZjODRcdTZjODdcdTZjOGFcdTZjOGJcdTZjOGRcdTZjOGVcdTZjOTFcdTZjOTJcdTZjOTVcdTZjOTZcdTZjOTdc'@; put 'dTZjOThcdTZjOWFcdTZjOWNcdTZjOWRcdTZjOWVcdTZjYTBcdTZjYTJcdTZjYThcdTZjYWNcdTZjYWZcdTZjYjBcdTZjYjRcdTZjYjVcdTZjYjZcdTZjYjdcdTZjYmFcdTZjYzBcdTZjYzFcdTZjYzJcdTZjYzNcdTZjYzZcdTZjYzdcdTZjYzhcdTZjY2JcdTZjY2RcdTZjY2VcdTZjY2ZcdTZj'@; put 'ZDFcdTZjZDJcdTZjZDgiXSxbIjliODAiLCJcdTZjZDlcdTZjZGFcdTZjZGNcdTZjZGRcdTZjZGZcdTZjZTRcdTZjZTZcdTZjZTdcdTZjZTlcdTZjZWNcdTZjZWRcdTZjZjJcdTZjZjRcdTZjZjlcdTZjZmZcdTZkMDBcdTZkMDJcdTZkMDNcdTZkMDVcdTZkMDZcdTZkMDhcdTZkMDlcdTZkMGFc'@; put 'dTZkMGRcdTZkMGZcdTZkMTBcdTZkMTFcdTZkMTNcdTZkMTRcdTZkMTVcdTZkMTZcdTZkMThcdTZkMWNcdTZkMWRcdTZkMWYiLDUsIlx1NmQyNlx1NmQyOFx1NmQyOVx1NmQyY1x1NmQyZFx1NmQyZlx1NmQzMFx1NmQzNFx1NmQzNlx1NmQzN1x1NmQzOFx1NmQzYVx1NmQzZlx1NmQ0MFx1NmQ0'@; put 'Mlx1NmQ0NFx1NmQ0OVx1NmQ0Y1x1NmQ1MFx1NmQ1NVx1NmQ1Nlx1NmQ1N1x1NmQ1OFx1NmQ1Ylx1NmQ1ZFx1NmQ1Zlx1NmQ2MVx1NmQ2Mlx1NmQ2NFx1NmQ2NVx1NmQ2N1x1NmQ2OFx1NmQ2Ylx1NmQ2Y1x1NmQ2ZFx1NmQ3MFx1NmQ3MVx1NmQ3Mlx1NmQ3M1x1NmQ3NVx1NmQ3Nlx1NmQ3OVx1'@; put 'NmQ3YVx1NmQ3Ylx1NmQ3ZCIsNCwiXHU2ZDgzXHU2ZDg0XHU2ZDg2XHU2ZDg3XHU2ZDhhXHU2ZDhiXHU2ZDhkXHU2ZDhmXHU2ZDkwXHU2ZDkyXHU2ZDk2Iiw0LCJcdTZkOWNcdTZkYTJcdTZkYTVcdTZkYWNcdTZkYWRcdTZkYjBcdTZkYjFcdTZkYjNcdTZkYjRcdTZkYjZcdTZkYjdcdTZkYjki'@; put 'LDUsIlx1NmRjMVx1NmRjMlx1NmRjM1x1NmRjOFx1NmRjOVx1NmRjYSJdLFsiOWM0MCIsIlx1NmRjZFx1NmRjZVx1NmRjZlx1NmRkMFx1NmRkMlx1NmRkM1x1NmRkNFx1NmRkNVx1NmRkN1x1NmRkYVx1NmRkYlx1NmRkY1x1NmRkZlx1NmRlMlx1NmRlM1x1NmRlNVx1NmRlN1x1NmRlOFx1NmRl'@; put 'OVx1NmRlYVx1NmRlZFx1NmRlZlx1NmRmMFx1NmRmMlx1NmRmNFx1NmRmNVx1NmRmNlx1NmRmOFx1NmRmYVx1NmRmZCIsNywiXHU2ZTA2XHU2ZTA3XHU2ZTA4XHU2ZTA5XHU2ZTBiXHU2ZTBmXHU2ZTEyXHU2ZTEzXHU2ZTE1XHU2ZTE4XHU2ZTE5XHU2ZTFiXHU2ZTFjXHU2ZTFlXHU2ZTFmXHU2'@; put 'ZTIyXHU2ZTI2XHU2ZTI3XHU2ZTI4XHU2ZTJhXHU2ZTJjXHU2ZTJlXHU2ZTMwXHU2ZTMxXHU2ZTMzXHU2ZTM1Il0sWyI5YzgwIiwiXHU2ZTM2XHU2ZTM3XHU2ZTM5XHU2ZTNiIiw3LCJcdTZlNDUiLDcsIlx1NmU0Zlx1NmU1MFx1NmU1MVx1NmU1Mlx1NmU1NVx1NmU1N1x1NmU1OVx1NmU1YVx1'@; put 'NmU1Y1x1NmU1ZFx1NmU1ZVx1NmU2MCIsMTAsIlx1NmU2Y1x1NmU2ZFx1NmU2ZiIsMTQsIlx1NmU4MFx1NmU4MVx1NmU4Mlx1NmU4NFx1NmU4N1x1NmU4OFx1NmU4YSIsNCwiXHU2ZTkxIiw2LCJcdTZlOTlcdTZlOWFcdTZlOWJcdTZlOWRcdTZlOWVcdTZlYTBcdTZlYTFcdTZlYTNcdTZlYTRc'@; put 'dTZlYTZcdTZlYThcdTZlYTlcdTZlYWJcdTZlYWNcdTZlYWRcdTZlYWVcdTZlYjBcdTZlYjNcdTZlYjVcdTZlYjhcdTZlYjlcdTZlYmNcdTZlYmVcdTZlYmZcdTZlYzBcdTZlYzNcdTZlYzRcdTZlYzVcdTZlYzZcdTZlYzhcdTZlYzlcdTZlY2FcdTZlY2NcdTZlY2RcdTZlY2VcdTZlZDBcdTZl'@; put 'ZDJcdTZlZDZcdTZlZDhcdTZlZDlcdTZlZGJcdTZlZGNcdTZlZGRcdTZlZTNcdTZlZTdcdTZlZWEiLDVdLFsiOWQ0MCIsIlx1NmVmMFx1NmVmMVx1NmVmMlx1NmVmM1x1NmVmNVx1NmVmNlx1NmVmN1x1NmVmOFx1NmVmYSIsNywiXHU2ZjAzXHU2ZjA0XHU2ZjA1XHU2ZjA3XHU2ZjA4XHU2ZjBh'@; put 'Iiw0LCJcdTZmMTBcdTZmMTFcdTZmMTJcdTZmMTYiLDksIlx1NmYyMVx1NmYyMlx1NmYyM1x1NmYyNVx1NmYyNlx1NmYyN1x1NmYyOFx1NmYyY1x1NmYyZVx1NmYzMFx1NmYzMlx1NmYzNFx1NmYzNVx1NmYzNyIsNiwiXHU2ZjNmXHU2ZjQwXHU2ZjQxXHU2ZjQyIl0sWyI5ZDgwIiwiXHU2ZjQz'@; put 'XHU2ZjQ0XHU2ZjQ1XHU2ZjQ4XHU2ZjQ5XHU2ZjRhXHU2ZjRjXHU2ZjRlIiw5LCJcdTZmNTlcdTZmNWFcdTZmNWJcdTZmNWRcdTZmNWZcdTZmNjBcdTZmNjFcdTZmNjNcdTZmNjRcdTZmNjVcdTZmNjciLDUsIlx1NmY2Zlx1NmY3MFx1NmY3MVx1NmY3M1x1NmY3NVx1NmY3Nlx1NmY3N1x1NmY3'@; put 'OVx1NmY3Ylx1NmY3ZCIsNiwiXHU2Zjg1XHU2Zjg2XHU2Zjg3XHU2ZjhhXHU2ZjhiXHU2ZjhmIiwxMiwiXHU2ZjlkXHU2ZjllXHU2ZjlmXHU2ZmEwXHU2ZmEyIiw0LCJcdTZmYTgiLDEwLCJcdTZmYjRcdTZmYjVcdTZmYjdcdTZmYjhcdTZmYmEiLDUsIlx1NmZjMVx1NmZjMyIsNSwiXHU2ZmNh'@; put 'Iiw2LCJcdTZmZDMiLDEwLCJcdTZmZGZcdTZmZTJcdTZmZTNcdTZmZTRcdTZmZTUiXSxbIjllNDAiLCJcdTZmZTYiLDcsIlx1NmZmMCIsMzIsIlx1NzAxMiIsNywiXHU3MDFjIiw2LCJcdTcwMjQiLDZdLFsiOWU4MCIsIlx1NzAyYiIsOSwiXHU3MDM2XHU3MDM3XHU3MDM4XHU3MDNhIiwxNywi'@; put 'XHU3MDRkXHU3MDRlXHU3MDUwIiwxMywiXHU3MDVmIiwxMSwiXHU3MDZlXHU3MDcxXHU3MDcyXHU3MDczXHU3MDc0XHU3MDc3XHU3MDc5XHU3MDdhXHU3MDdiXHU3MDdkXHU3MDgxXHU3MDgyXHU3MDgzXHU3MDg0XHU3MDg2XHU3MDg3XHU3MDg4XHU3MDhiXHU3MDhjXHU3MDhkXHU3MDhmXHU3'@; put 'MDkwXHU3MDkxXHU3MDkzXHU3MDk3XHU3MDk4XHU3MDlhXHU3MDliXHU3MDllIiwxMiwiXHU3MGIwXHU3MGIyXHU3MGI0XHU3MGI1XHU3MGI2XHU3MGJhXHU3MGJlXHU3MGJmXHU3MGM0XHU3MGM1XHU3MGM2XHU3MGM3XHU3MGM5XHU3MGNiIiwxMiwiXHU3MGRhIl0sWyI5ZjQwIiwiXHU3MGRj'@; put 'XHU3MGRkXHU3MGRlXHU3MGUwXHU3MGUxXHU3MGUyXHU3MGUzXHU3MGU1XHU3MGVhXHU3MGVlXHU3MGYwIiw2LCJcdTcwZjhcdTcwZmFcdTcwZmJcdTcwZmNcdTcwZmUiLDEwLCJcdTcxMGIiLDQsIlx1NzExMVx1NzExMlx1NzExNFx1NzExN1x1NzExYiIsMTAsIlx1NzEyNyIsNywiXHU3MTMy'@; put 'XHU3MTMzXHU3MTM0Il0sWyI5ZjgwIiwiXHU3MTM1XHU3MTM3IiwxMywiXHU3MTQ2XHU3MTQ3XHU3MTQ4XHU3MTQ5XHU3MTRiXHU3MTRkXHU3MTRmIiwxMiwiXHU3MTVkXHU3MTVmIiw0LCJcdTcxNjVcdTcxNjkiLDQsIlx1NzE2Zlx1NzE3MFx1NzE3MVx1NzE3NFx1NzE3NVx1NzE3Nlx1NzE3'@; put 'N1x1NzE3OVx1NzE3Ylx1NzE3Y1x1NzE3ZSIsNSwiXHU3MTg1Iiw0LCJcdTcxOGJcdTcxOGNcdTcxOGRcdTcxOGVcdTcxOTBcdTcxOTFcdTcxOTJcdTcxOTNcdTcxOTVcdTcxOTZcdTcxOTdcdTcxOWEiLDQsIlx1NzFhMSIsNiwiXHU3MWE5XHU3MWFhXHU3MWFiXHU3MWFkIiw1LCJcdTcxYjRc'@; put 'dTcxYjZcdTcxYjdcdTcxYjhcdTcxYmEiLDgsIlx1NzFjNCIsOSwiXHU3MWNmIiw0XSxbImEwNDAiLCJcdTcxZDYiLDksIlx1NzFlMVx1NzFlMlx1NzFlM1x1NzFlNFx1NzFlNlx1NzFlOCIsNSwiXHU3MWVmIiw5LCJcdTcxZmEiLDExLCJcdTcyMDciLDE5XSxbImEwODAiLCJcdTcyMWJcdTcy'@; put 'MWNcdTcyMWUiLDksIlx1NzIyOVx1NzIyYlx1NzIyZFx1NzIyZVx1NzIyZlx1NzIzMlx1NzIzM1x1NzIzNFx1NzIzYVx1NzIzY1x1NzIzZVx1NzI0MCIsNiwiXHU3MjQ5XHU3MjRhXHU3MjRiXHU3MjRlXHU3MjRmXHU3MjUwXHU3MjUxXHU3MjUzXHU3MjU0XHU3MjU1XHU3MjU3XHU3MjU4XHU3'@; put 'MjVhXHU3MjVjXHU3MjVlXHU3MjYwXHU3MjYzXHU3MjY0XHU3MjY1XHU3MjY4XHU3MjZhXHU3MjZiXHU3MjZjXHU3MjZkXHU3MjcwXHU3MjcxXHU3MjczXHU3Mjc0XHU3Mjc2XHU3Mjc3XHU3Mjc4XHU3MjdiXHU3MjdjXHU3MjdkXHU3MjgyXHU3MjgzXHU3Mjg1Iiw0LCJcdTcyOGNcdTcyOGVc'@; put 'dTcyOTBcdTcyOTFcdTcyOTMiLDExLCJcdTcyYTAiLDExLCJcdTcyYWVcdTcyYjFcdTcyYjJcdTcyYjNcdTcyYjVcdTcyYmEiLDYsIlx1NzJjNVx1NzJjNlx1NzJjN1x1NzJjOVx1NzJjYVx1NzJjYlx1NzJjY1x1NzJjZlx1NzJkMVx1NzJkM1x1NzJkNFx1NzJkNVx1NzJkNlx1NzJkOFx1NzJk'@; put 'YVx1NzJkYiJdLFsiYTFhMSIsIlx1MzAwMFx1MzAwMVx1MzAwMlx4YjdcdTAyYzlcdTAyYzdceGE4XHUzMDAzXHUzMDA1XHUyMDE0XHVmZjVlXHUyMDE2XHUyMDI2XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4Iiw3LCJcdTMwMTZcdTMwMTdcdTMwMTBcdTMwMTFc'@; put 'eGIxXHhkN1x4ZjdcdTIyMzZcdTIyMjdcdTIyMjhcdTIyMTFcdTIyMGZcdTIyMmFcdTIyMjlcdTIyMDhcdTIyMzdcdTIyMWFcdTIyYTVcdTIyMjVcdTIyMjBcdTIzMTJcdTIyOTlcdTIyMmJcdTIyMmVcdTIyNjFcdTIyNGNcdTIyNDhcdTIyM2RcdTIyMWRcdTIyNjBcdTIyNmVcdTIyNmZcdTIy'@; put 'NjRcdTIyNjVcdTIyMWVcdTIyMzVcdTIyMzRcdTI2NDJcdTI2NDBceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHVmZjA0XHhhNFx1ZmZlMFx1ZmZlMVx1MjAzMFx4YTdcdTIxMTZcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJc'@; put 'dTIwM2JcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMiXSxbImEyYTEiLCJcdTIxNzAiLDldLFsiYTJiMSIsIlx1MjQ4OCIsMTksIlx1MjQ3NCIsMTksIlx1MjQ2MCIsOV0sWyJhMmU1IiwiXHUzMjIwIiw5XSxbImEyZjEiLCJcdTIxNjAiLDExXSxbImEzYTEiLCJcdWZmMDFcdWZmMDJc'@; put 'dWZmMDNcdWZmZTVcdWZmMDUiLDg4LCJcdWZmZTMiXSxbImE0YTEiLCJcdTMwNDEiLDgyXSxbImE1YTEiLCJcdTMwYTEiLDg1XSxbImE2YTEiLCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsiYTZjMSIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyJhNmUwIiwiXHVmZTM1XHVmZTM2XHVmZTM5'@; put 'XHVmZTNhXHVmZTNmXHVmZTQwXHVmZTNkXHVmZTNlXHVmZTQxXHVmZTQyXHVmZTQzXHVmZTQ0Il0sWyJhNmVlIiwiXHVmZTNiXHVmZTNjXHVmZTM3XHVmZTM4XHVmZTMxIl0sWyJhNmY0IiwiXHVmZTMzXHVmZTM0Il0sWyJhN2ExIiwiXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbImE3'@; put 'ZDEiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsMjVdLFsiYTg0MCIsIlx1MDJjYVx1MDJjYlx1MDJkOVx1MjAxM1x1MjAxNVx1MjAyNVx1MjAzNVx1MjEwNVx1MjEwOVx1MjE5Nlx1MjE5N1x1MjE5OFx1MjE5OVx1MjIxNVx1MjIxZlx1MjIyM1x1MjI1Mlx1MjI2Nlx1MjI2N1x1MjJiZlx1'@; put 'MjU1MCIsMzUsIlx1MjU4MSIsNl0sWyJhODgwIiwiXHUyNTg4Iiw3LCJcdTI1OTNcdTI1OTRcdTI1OTVcdTI1YmNcdTI1YmRcdTI1ZTJcdTI1ZTNcdTI1ZTRcdTI1ZTVcdTI2MDlcdTIyOTVcdTMwMTJcdTMwMWRcdTMwMWUiXSxbImE4YTEiLCJcdTAxMDFceGUxXHUwMWNlXHhlMFx1MDExM1x4'@; put 'ZTlcdTAxMWJceGU4XHUwMTJiXHhlZFx1MDFkMFx4ZWNcdTAxNGRceGYzXHUwMWQyXHhmMlx1MDE2Ylx4ZmFcdTAxZDRceGY5XHUwMWQ2XHUwMWQ4XHUwMWRhXHUwMWRjXHhmY1x4ZWFcdTAyNTEiXSxbImE4YmQiLCJcdTAxNDRcdTAxNDgiXSxbImE4YzAiLCJcdTAyNjEiXSxbImE4YzUiLCJc'@; put 'dTMxMDUiLDM2XSxbImE5NDAiLCJcdTMwMjEiLDgsIlx1MzJhM1x1MzM4ZVx1MzM4Zlx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNhMVx1MzNjNFx1MzNjZVx1MzNkMVx1MzNkMlx1MzNkNVx1ZmUzMFx1ZmZlMlx1ZmZlNCJdLFsiYTk1OSIsIlx1MjEyMVx1MzIzMSJdLFsiYTk1YyIsIlx1MjAxMCJd'@; put 'LFsiYTk2MCIsIlx1MzBmY1x1MzA5Ylx1MzA5Y1x1MzBmZFx1MzBmZVx1MzAwNlx1MzA5ZFx1MzA5ZVx1ZmU0OSIsOSwiXHVmZTU0XHVmZTU1XHVmZTU2XHVmZTU3XHVmZTU5Iiw4XSxbImE5ODAiLCJcdWZlNjIiLDQsIlx1ZmU2OFx1ZmU2OVx1ZmU2YVx1ZmU2YiJdLFsiYTk5NiIsIlx1MzAw'@; put 'NyJdLFsiYTlhNCIsIlx1MjUwMCIsNzVdLFsiYWE0MCIsIlx1NzJkY1x1NzJkZFx1NzJkZlx1NzJlMiIsNSwiXHU3MmVhXHU3MmViXHU3MmY1XHU3MmY2XHU3MmY5XHU3MmZkXHU3MmZlXHU3MmZmXHU3MzAwXHU3MzAyXHU3MzA0Iiw1LCJcdTczMGJcdTczMGNcdTczMGRcdTczMGZcdTczMTBc'@; put 'dTczMTFcdTczMTJcdTczMTRcdTczMThcdTczMTlcdTczMWFcdTczMWZcdTczMjBcdTczMjNcdTczMjRcdTczMjZcdTczMjdcdTczMjhcdTczMmRcdTczMmZcdTczMzBcdTczMzJcdTczMzNcdTczMzVcdTczMzZcdTczM2FcdTczM2JcdTczM2NcdTczM2RcdTczNDAiLDhdLFsiYWE4MCIsIlx1'@; put 'NzM0OVx1NzM0YVx1NzM0Ylx1NzM0Y1x1NzM0ZVx1NzM0Zlx1NzM1MVx1NzM1M1x1NzM1NFx1NzM1NVx1NzM1Nlx1NzM1OCIsNywiXHU3MzYxIiwxMCwiXHU3MzZlXHU3MzcwXHU3MzcxIl0sWyJhYjQwIiwiXHU3MzcyIiwxMSwiXHU3MzdmIiw0LCJcdTczODVcdTczODZcdTczODhcdTczOGFc'@; put 'dTczOGNcdTczOGRcdTczOGZcdTczOTBcdTczOTJcdTczOTNcdTczOTRcdTczOTVcdTczOTdcdTczOThcdTczOTlcdTczOWFcdTczOWNcdTczOWRcdTczOWVcdTczYTBcdTczYTFcdTczYTMiLDUsIlx1NzNhYVx1NzNhY1x1NzNhZFx1NzNiMVx1NzNiNFx1NzNiNVx1NzNiNlx1NzNiOFx1NzNi'@; put 'OVx1NzNiY1x1NzNiZFx1NzNiZVx1NzNiZlx1NzNjMVx1NzNjMyIsNF0sWyJhYjgwIiwiXHU3M2NiXHU3M2NjXHU3M2NlXHU3M2QyIiw2LCJcdTczZGFcdTczZGJcdTczZGNcdTczZGRcdTczZGZcdTczZTFcdTczZTJcdTczZTNcdTczZTRcdTczZTZcdTczZThcdTczZWFcdTczZWJcdTczZWNc'@; put 'dTczZWVcdTczZWZcdTczZjBcdTczZjFcdTczZjMiLDRdLFsiYWM0MCIsIlx1NzNmOCIsMTAsIlx1NzQwNFx1NzQwN1x1NzQwOFx1NzQwYlx1NzQwY1x1NzQwZFx1NzQwZVx1NzQxMSIsOCwiXHU3NDFjIiw1LCJcdTc0MjNcdTc0MjRcdTc0MjdcdTc0MjlcdTc0MmJcdTc0MmRcdTc0MmZcdTc0'@; put 'MzFcdTc0MzJcdTc0MzciLDQsIlx1NzQzZFx1NzQzZVx1NzQzZlx1NzQ0MFx1NzQ0MiIsMTFdLFsiYWM4MCIsIlx1NzQ0ZSIsNiwiXHU3NDU2XHU3NDU4XHU3NDVkXHU3NDYwIiwxMiwiXHU3NDZlXHU3NDZmXHU3NDcxIiw0LCJcdTc0NzhcdTc0NzlcdTc0N2EiXSxbImFkNDAiLCJcdTc0N2Jc'@; put 'dTc0N2NcdTc0N2RcdTc0N2ZcdTc0ODJcdTc0ODRcdTc0ODVcdTc0ODZcdTc0ODhcdTc0ODlcdTc0OGFcdTc0OGNcdTc0OGRcdTc0OGZcdTc0OTEiLDEwLCJcdTc0OWRcdTc0OWYiLDcsIlx1NzRhYSIsMTUsIlx1NzRiYiIsMTJdLFsiYWQ4MCIsIlx1NzRjOCIsOSwiXHU3NGQzIiw4LCJcdTc0'@; put 'ZGRcdTc0ZGZcdTc0ZTFcdTc0ZTVcdTc0ZTciLDYsIlx1NzRmMFx1NzRmMVx1NzRmMiJdLFsiYWU0MCIsIlx1NzRmM1x1NzRmNVx1NzRmOCIsNiwiXHU3NTAwXHU3NTAxXHU3NTAyXHU3NTAzXHU3NTA1Iiw3LCJcdTc1MGVcdTc1MTBcdTc1MTJcdTc1MTRcdTc1MTVcdTc1MTZcdTc1MTdcdTc1'@; put 'MWJcdTc1MWRcdTc1MWVcdTc1MjAiLDQsIlx1NzUyNlx1NzUyN1x1NzUyYVx1NzUyZVx1NzUzNFx1NzUzNlx1NzUzOVx1NzUzY1x1NzUzZFx1NzUzZlx1NzU0MVx1NzU0Mlx1NzU0M1x1NzU0NFx1NzU0Nlx1NzU0N1x1NzU0OVx1NzU0YVx1NzU0ZFx1NzU1MFx1NzU1MVx1NzU1Mlx1NzU1M1x1'@; put 'NzU1NVx1NzU1Nlx1NzU1N1x1NzU1OCJdLFsiYWU4MCIsIlx1NzU1ZCIsNywiXHU3NTY3XHU3NTY4XHU3NTY5XHU3NTZiIiw2LCJcdTc1NzNcdTc1NzVcdTc1NzZcdTc1NzdcdTc1N2EiLDQsIlx1NzU4MFx1NzU4MVx1NzU4Mlx1NzU4NFx1NzU4NVx1NzU4NyJdLFsiYWY0MCIsIlx1NzU4OFx1'@; put 'NzU4OVx1NzU4YVx1NzU4Y1x1NzU4ZFx1NzU4ZVx1NzU5MFx1NzU5M1x1NzU5NVx1NzU5OFx1NzU5Ylx1NzU5Y1x1NzU5ZVx1NzVhMlx1NzVhNiIsNCwiXHU3NWFkXHU3NWI2XHU3NWI3XHU3NWJhXHU3NWJiXHU3NWJmXHU3NWMwXHU3NWMxXHU3NWM2XHU3NWNiXHU3NWNjXHU3NWNlXHU3NWNm'@; put 'XHU3NWQwXHU3NWQxXHU3NWQzXHU3NWQ3XHU3NWQ5XHU3NWRhXHU3NWRjXHU3NWRkXHU3NWRmXHU3NWUwXHU3NWUxXHU3NWU1XHU3NWU5XHU3NWVjXHU3NWVkXHU3NWVlXHU3NWVmXHU3NWYyXHU3NWYzXHU3NWY1XHU3NWY2XHU3NWY3XHU3NWY4XHU3NWZhXHU3NWZiXHU3NWZkXHU3NWZlXHU3'@; put 'NjAyXHU3NjA0XHU3NjA2XHU3NjA3Il0sWyJhZjgwIiwiXHU3NjA4XHU3NjA5XHU3NjBiXHU3NjBkXHU3NjBlXHU3NjBmXHU3NjExXHU3NjEyXHU3NjEzXHU3NjE0XHU3NjE2XHU3NjFhXHU3NjFjXHU3NjFkXHU3NjFlXHU3NjIxXHU3NjIzXHU3NjI3XHU3NjI4XHU3NjJjXHU3NjJlXHU3NjJm'@; put 'XHU3NjMxXHU3NjMyXHU3NjM2XHU3NjM3XHU3NjM5XHU3NjNhXHU3NjNiXHU3NjNkXHU3NjQxXHU3NjQyXHU3NjQ0Il0sWyJiMDQwIiwiXHU3NjQ1Iiw2LCJcdTc2NGUiLDUsIlx1NzY1NVx1NzY1NyIsNCwiXHU3NjVkXHU3NjVmXHU3NjYwXHU3NjYxXHU3NjYyXHU3NjY0Iiw2LCJcdTc2NmNc'@; put 'dTc2NmRcdTc2NmVcdTc2NzAiLDcsIlx1NzY3OVx1NzY3YVx1NzY3Y1x1NzY3Zlx1NzY4MFx1NzY4MVx1NzY4M1x1NzY4NVx1NzY4OVx1NzY4YVx1NzY4Y1x1NzY4ZFx1NzY4Zlx1NzY5MFx1NzY5Mlx1NzY5NFx1NzY5NVx1NzY5N1x1NzY5OFx1NzY5YVx1NzY5YiJdLFsiYjA4MCIsIlx1NzY5'@; put 'YyIsNywiXHU3NmE1Iiw4LCJcdTc2YWZcdTc2YjBcdTc2YjNcdTc2YjUiLDksIlx1NzZjMFx1NzZjMVx1NzZjM1x1NTU0YVx1OTYzZlx1NTdjM1x1NjMyOFx1NTRjZVx1NTUwOVx1NTRjMFx1NzY5MVx1NzY0Y1x1ODUzY1x1NzdlZVx1ODI3ZVx1Nzg4ZFx1NzIzMVx1OTY5OFx1OTc4ZFx1NmMy'@; put 'OFx1NWI4OVx1NGZmYVx1NjMwOVx1NjY5N1x1NWNiOFx1ODBmYVx1Njg0OFx1ODBhZVx1NjYwMlx1NzZjZVx1NTFmOVx1NjU1Nlx1NzFhY1x1N2ZmMVx1ODg4NFx1NTBiMlx1NTk2NVx1NjFjYVx1NmZiM1x1ODJhZFx1NjM0Y1x1NjI1Mlx1NTNlZFx1NTQyN1x1N2IwNlx1NTE2Ylx1NzVhNFx1'@; put 'NWRmNFx1NjJkNFx1OGRjYlx1OTc3Nlx1NjI4YVx1ODAxOVx1NTc1ZFx1OTczOFx1N2Y2Mlx1NzIzOFx1NzY3ZFx1NjdjZlx1NzY3ZVx1NjQ0Nlx1NGY3MFx1OGQyNVx1NjJkY1x1N2ExN1x1NjU5MVx1NzNlZFx1NjQyY1x1NjI3M1x1ODIyY1x1OTg4MVx1Njc3Zlx1NzI0OFx1NjI2ZVx1NjJj'@; put 'Y1x1NGYzNFx1NzRlM1x1NTM0YVx1NTI5ZVx1N2VjYVx1OTBhNlx1NWUyZVx1Njg4Nlx1Njk5Y1x1ODE4MFx1N2VkMVx1NjhkMlx1NzhjNVx1ODY4Y1x1OTU1MVx1NTA4ZFx1OGMyNFx1ODJkZVx1ODBkZVx1NTMwNVx1ODkxMlx1NTI2NSJdLFsiYjE0MCIsIlx1NzZjNFx1NzZjN1x1NzZjOVx1'@; put 'NzZjYlx1NzZjY1x1NzZkM1x1NzZkNVx1NzZkOVx1NzZkYVx1NzZkY1x1NzZkZFx1NzZkZVx1NzZlMCIsNCwiXHU3NmU2Iiw3LCJcdTc2ZjBcdTc2ZjNcdTc2ZjVcdTc2ZjZcdTc2ZjdcdTc2ZmFcdTc2ZmJcdTc2ZmRcdTc2ZmZcdTc3MDBcdTc3MDJcdTc3MDNcdTc3MDVcdTc3MDZcdTc3MGFc'@; put 'dTc3MGNcdTc3MGUiLDEwLCJcdTc3MWJcdTc3MWNcdTc3MWRcdTc3MWVcdTc3MjFcdTc3MjNcdTc3MjRcdTc3MjVcdTc3MjdcdTc3MmFcdTc3MmIiXSxbImIxODAiLCJcdTc3MmNcdTc3MmVcdTc3MzAiLDQsIlx1NzczOVx1NzczYlx1NzczZFx1NzczZVx1NzczZlx1Nzc0Mlx1Nzc0NFx1Nzc0'@; put 'NVx1Nzc0Nlx1Nzc0OCIsNywiXHU3NzUyIiw3LCJcdTc3NWNcdTg1ODRcdTk2ZjlcdTRmZGRcdTU4MjFcdTk5NzFcdTViOWRcdTYyYjFcdTYyYTVcdTY2YjRcdThjNzlcdTljOGRcdTcyMDZcdTY3NmZcdTc4OTFcdTYwYjJcdTUzNTFcdTUzMTdcdThmODhcdTgwY2NcdThkMWRcdTk0YTFcdTUw'@; put 'MGRcdTcyYzhcdTU5MDdcdTYwZWJcdTcxMTlcdTg4YWJcdTU5NTRcdTgyZWZcdTY3MmNcdTdiMjhcdTVkMjlcdTdlZjdcdTc1MmRcdTZjZjVcdThlNjZcdThmZjhcdTkwM2NcdTlmM2JcdTZiZDRcdTkxMTlcdTdiMTRcdTVmN2NcdTc4YTdcdTg0ZDZcdTg1M2RcdTZiZDVcdTZiZDlcdTZiZDZc'@; put 'dTVlMDFcdTVlODdcdTc1ZjlcdTk1ZWRcdTY1NWRcdTVmMGFcdTVmYzVcdThmOWZcdTU4YzFcdTgxYzJcdTkwN2ZcdTk2NWJcdTk3YWRcdThmYjlcdTdmMTZcdThkMmNcdTYyNDFcdTRmYmZcdTUzZDhcdTUzNWVcdThmYThcdThmYTlcdThmYWJcdTkwNGRcdTY4MDdcdTVmNmFcdTgxOThcdTg4'@; put 'NjhcdTljZDZcdTYxOGJcdTUyMmJcdTc2MmFcdTVmNmNcdTY1OGNcdTZmZDJcdTZlZThcdTViYmVcdTY0NDhcdTUxNzVcdTUxYjBcdTY3YzRcdTRlMTlcdTc5YzlcdTk5N2NcdTcwYjMiXSxbImIyNDAiLCJcdTc3NWRcdTc3NWVcdTc3NWZcdTc3NjBcdTc3NjRcdTc3NjdcdTc3NjlcdTc3NmFc'@; put 'dTc3NmQiLDExLCJcdTc3N2FcdTc3N2JcdTc3N2NcdTc3ODFcdTc3ODJcdTc3ODNcdTc3ODYiLDUsIlx1Nzc4Zlx1Nzc5MFx1Nzc5MyIsMTEsIlx1NzdhMVx1NzdhM1x1NzdhNFx1NzdhNlx1NzdhOFx1NzdhYlx1NzdhZFx1NzdhZVx1NzdhZlx1NzdiMVx1NzdiMlx1NzdiNFx1NzdiNiIsNF0s'@; put 'WyJiMjgwIiwiXHU3N2JjXHU3N2JlXHU3N2MwIiwxMiwiXHU3N2NlIiw4LCJcdTc3ZDhcdTc3ZDlcdTc3ZGFcdTc3ZGQiLDQsIlx1NzdlNFx1NzVjNVx1NWU3Nlx1NzNiYlx1ODNlMFx1NjRhZFx1NjJlOFx1OTRiNVx1NmNlMlx1NTM1YVx1NTJjM1x1NjQwZlx1OTRjMlx1N2I5NFx1NGYyZlx1'@; put 'NWUxYlx1ODIzNlx1ODExNlx1ODE4YVx1NmUyNFx1NmNjYVx1OWE3M1x1NjM1NVx1NTM1Y1x1NTRmYVx1ODg2NVx1NTdlMFx1NGUwZFx1NWUwM1x1NmI2NVx1N2MzZlx1OTBlOFx1NjAxNlx1NjRlNlx1NzMxY1x1ODhjMVx1Njc1MFx1NjI0ZFx1OGQyMlx1Nzc2Y1x1OGUyOVx1OTFjN1x1NWY2'@; put 'OVx1ODNkY1x1ODUyMVx1OTkxMFx1NTNjMlx1ODY5NVx1NmI4Ylx1NjBlZFx1NjBlOFx1NzA3Zlx1ODJjZFx1ODIzMVx1NGVkM1x1NmNhN1x1ODVjZlx1NjRjZFx1N2NkOVx1NjlmZFx1NjZmOVx1ODM0OVx1NTM5NVx1N2I1Nlx1NGZhN1x1NTE4Y1x1NmQ0Ylx1NWM0Mlx1OGU2ZFx1NjNkMlx1'@; put 'NTNjOVx1ODMyY1x1ODMzNlx1NjdlNVx1NzhiNFx1NjQzZFx1NWJkZlx1NWM5NFx1NWRlZVx1OGJlN1x1NjJjNlx1NjdmNFx1OGM3YVx1NjQwMFx1NjNiYVx1ODc0OVx1OTk4Ylx1OGMxN1x1N2YyMFx1OTRmMlx1NGVhN1x1OTYxMFx1OThhNFx1NjYwY1x1NzMxNiJdLFsiYjM0MCIsIlx1Nzdl'@; put 'Nlx1NzdlOFx1NzdlYVx1NzdlZlx1NzdmMFx1NzdmMVx1NzdmMlx1NzdmNFx1NzdmNVx1NzdmN1x1NzdmOVx1NzdmYVx1NzdmYlx1NzdmY1x1NzgwMyIsNSwiXHU3ODBhXHU3ODBiXHU3ODBlXHU3ODBmXHU3ODEwXHU3ODEzXHU3ODE1XHU3ODE5XHU3ODFiXHU3ODFlXHU3ODIwXHU3ODIxXHU3'@; put 'ODIyXHU3ODI0XHU3ODI4XHU3ODJhXHU3ODJiXHU3ODJlXHU3ODJmXHU3ODMxXHU3ODMyXHU3ODMzXHU3ODM1XHU3ODM2XHU3ODNkXHU3ODNmXHU3ODQxXHU3ODQyXHU3ODQzXHU3ODQ0XHU3ODQ2XHU3ODQ4XHU3ODQ5XHU3ODRhXHU3ODRiXHU3ODRkXHU3ODRmXHU3ODUxXHU3ODUzXHU3ODU0'@; put 'XHU3ODU4XHU3ODU5XHU3ODVhIl0sWyJiMzgwIiwiXHU3ODViXHU3ODVjXHU3ODVlIiwxMSwiXHU3ODZmIiw3LCJcdTc4NzhcdTc4NzlcdTc4N2FcdTc4N2JcdTc4N2QiLDYsIlx1NTczYVx1NWMxZFx1NWUzOFx1OTU3Zlx1NTA3Zlx1ODBhMFx1NTM4Mlx1NjU1ZVx1NzU0NVx1NTUzMVx1NTAy'@; put 'MVx1OGQ4NVx1NjI4NFx1OTQ5ZVx1NjcxZFx1NTYzMlx1NmY2ZVx1NWRlMlx1NTQzNVx1NzA5Mlx1OGY2Nlx1NjI2Zlx1NjRhNFx1NjNhM1x1NWY3Ylx1NmY4OFx1OTBmNFx1ODFlM1x1OGZiMFx1NWMxOFx1NjY2OFx1NWZmMVx1NmM4OVx1OTY0OFx1OGQ4MVx1ODg2Y1x1NjQ5MVx1NzlmMFx1'@; put 'NTdjZVx1NmE1OVx1NjIxMFx1NTQ0OFx1NGU1OFx1N2EwYlx1NjBlOVx1NmY4NFx1OGJkYVx1NjI3Zlx1OTAxZVx1OWE4Ylx1NzllNFx1NTQwM1x1NzVmNFx1NjMwMVx1NTMxOVx1NmM2MFx1OGZkZlx1NWYxYlx1OWE3MFx1ODAzYlx1OWY3Zlx1NGY4OFx1NWMzYVx1OGQ2NFx1N2ZjNVx1NjVh'@; put 'NVx1NzBiZFx1NTE0NVx1NTFiMlx1ODY2Ylx1NWQwN1x1NWJhMFx1NjJiZFx1OTE2Y1x1NzU3NFx1OGUwY1x1N2EyMFx1NjEwMVx1N2I3OVx1NGVjN1x1N2VmOFx1Nzc4NVx1NGUxMVx1ODFlZFx1NTIxZFx1NTFmYVx1NmE3MVx1NTNhOFx1OGU4N1x1OTUwNFx1OTZjZlx1NmVjMVx1OTY2NFx1'@; put 'Njk1YSJdLFsiYjQ0MCIsIlx1Nzg4NFx1Nzg4NVx1Nzg4Nlx1Nzg4OFx1Nzg4YVx1Nzg4Ylx1Nzg4Zlx1Nzg5MFx1Nzg5Mlx1Nzg5NFx1Nzg5NVx1Nzg5Nlx1Nzg5OVx1Nzg5ZFx1Nzg5ZVx1NzhhMFx1NzhhMlx1NzhhNFx1NzhhNlx1NzhhOCIsNywiXHU3OGI1XHU3OGI2XHU3OGI3XHU3OGI4'@; put 'XHU3OGJhXHU3OGJiXHU3OGJjXHU3OGJkXHU3OGJmXHU3OGMwXHU3OGMyXHU3OGMzXHU3OGM0XHU3OGM2XHU3OGM3XHU3OGM4XHU3OGNjXHU3OGNkXHU3OGNlXHU3OGNmXHU3OGQxXHU3OGQyXHU3OGQzXHU3OGQ2XHU3OGQ3XHU3OGQ4XHU3OGRhIiw5XSxbImI0ODAiLCJcdTc4ZTRcdTc4ZTVc'@; put 'dTc4ZTZcdTc4ZTdcdTc4ZTlcdTc4ZWFcdTc4ZWJcdTc4ZWQiLDQsIlx1NzhmM1x1NzhmNVx1NzhmNlx1NzhmOFx1NzhmOVx1NzhmYiIsNSwiXHU3OTAyXHU3OTAzXHU3OTA0XHU3OTA2Iiw2LCJcdTc4NDBcdTUwYThcdTc3ZDdcdTY0MTBcdTg5ZTZcdTU5MDRcdTYzZTNcdTVkZGRcdTdhN2Zc'@; put 'dTY5M2RcdTRmMjBcdTgyMzlcdTU1OThcdTRlMzJcdTc1YWVcdTdhOTdcdTVlNjJcdTVlOGFcdTk1ZWZcdTUyMWJcdTU0MzlcdTcwOGFcdTYzNzZcdTk1MjRcdTU3ODJcdTY2MjVcdTY5M2ZcdTkxODdcdTU1MDdcdTZkZjNcdTdlYWZcdTg4MjJcdTYyMzNcdTdlZjBcdTc1YjVcdTgzMjhcdTc4'@; put 'YzFcdTk2Y2NcdThmOWVcdTYxNDhcdTc0ZjdcdThiY2RcdTZiNjRcdTUyM2FcdThkNTBcdTZiMjFcdTgwNmFcdTg0NzFcdTU2ZjFcdTUzMDZcdTRlY2VcdTRlMWJcdTUxZDFcdTdjOTdcdTkxOGJcdTdjMDdcdTRmYzNcdThlN2ZcdTdiZTFcdTdhOWNcdTY0NjdcdTVkMTRcdTUwYWNcdTgxMDZc'@; put 'dTc2MDFcdTdjYjlcdTZkZWNcdTdmZTBcdTY3NTFcdTViNThcdTViZjhcdTc4Y2JcdTY0YWVcdTY0MTNcdTYzYWFcdTYzMmJcdTk1MTlcdTY0MmRcdThmYmVcdTdiNTRcdTc2MjlcdTYyNTNcdTU5MjdcdTU0NDZcdTZiNzlcdTUwYTNcdTYyMzRcdTVlMjZcdTZiODZcdTRlZTNcdThkMzdcdTg4'@; put 'OGJcdTVmODVcdTkwMmUiXSxbImI1NDAiLCJcdTc5MGQiLDUsIlx1NzkxNCIsOSwiXHU3OTFmIiw0LCJcdTc5MjUiLDE0LCJcdTc5MzUiLDQsIlx1NzkzZFx1NzkzZlx1Nzk0Mlx1Nzk0M1x1Nzk0NFx1Nzk0NVx1Nzk0N1x1Nzk0YSIsOCwiXHU3OTU0XHU3OTU1XHU3OTU4XHU3OTU5XHU3OTYx'@; put 'XHU3OTYzIl0sWyJiNTgwIiwiXHU3OTY0XHU3OTY2XHU3OTY5XHU3OTZhXHU3OTZiXHU3OTZjXHU3OTZlXHU3OTcwIiw2LCJcdTc5NzlcdTc5N2IiLDQsIlx1Nzk4Mlx1Nzk4M1x1Nzk4Nlx1Nzk4N1x1Nzk4OFx1Nzk4OVx1Nzk4Ylx1Nzk4Y1x1Nzk4ZFx1Nzk4ZVx1Nzk5MFx1Nzk5MVx1Nzk5'@; put 'Mlx1NjAyMFx1ODAzZFx1NjJjNVx1NGUzOVx1NTM1NVx1OTBmOFx1NjNiOFx1ODBjNlx1NjVlNlx1NmMyZVx1NGY0Nlx1NjBlZVx1NmRlMVx1OGJkZVx1NWYzOVx1ODZjYlx1NWY1M1x1NjMyMVx1NTE1YVx1ODM2MVx1Njg2M1x1NTIwMFx1NjM2M1x1OGU0OFx1NTAxMlx1NWM5Ylx1Nzk3N1x1'@; put 'NWJmY1x1NTIzMFx1N2EzYlx1NjBiY1x1OTA1M1x1NzZkN1x1NWZiN1x1NWY5N1x1NzY4NFx1OGU2Y1x1NzA2Zlx1NzY3Ylx1N2I0OVx1NzdhYVx1NTFmM1x1OTA5M1x1NTgyNFx1NGY0ZVx1NmVmNFx1OGZlYVx1NjU0Y1x1N2IxYlx1NzJjNFx1NmRhNFx1N2ZkZlx1NWFlMVx1NjJiNVx1NWU5'@; put 'NVx1NTczMFx1ODQ4Mlx1N2IyY1x1NWUxZFx1NWYxZlx1OTAxMlx1N2YxNFx1OThhMFx1NjM4Mlx1NmVjN1x1Nzg5OFx1NzBiOVx1NTE3OFx1OTc1Ylx1NTdhYlx1NzUzNVx1NGY0M1x1NzUzOFx1NWU5N1x1NjBlNlx1NTk2MFx1NmRjMFx1NmJiZlx1Nzg4OVx1NTNmY1x1OTZkNVx1NTFjYlx1'@; put 'NTIwMVx1NjM4OVx1NTQwYVx1OTQ5M1x1OGMwM1x1OGRjY1x1NzIzOVx1Nzg5Zlx1ODc3Nlx1OGZlZFx1OGMwZFx1NTNlMCJdLFsiYjY0MCIsIlx1Nzk5MyIsNiwiXHU3OTliIiwxMSwiXHU3OWE4IiwxMCwiXHU3OWI0Iiw0LCJcdTc5YmNcdTc5YmZcdTc5YzJcdTc5YzRcdTc5YzVcdTc5Yzdc'@; put 'dTc5YzhcdTc5Y2FcdTc5Y2NcdTc5Y2VcdTc5Y2ZcdTc5ZDBcdTc5ZDNcdTc5ZDRcdTc5ZDZcdTc5ZDdcdTc5ZDkiLDUsIlx1NzllMFx1NzllMVx1NzllMlx1NzllNVx1NzllOFx1NzllYSJdLFsiYjY4MCIsIlx1NzllY1x1NzllZVx1NzlmMSIsNiwiXHU3OWY5XHU3OWZhXHU3OWZjXHU3OWZl'@; put 'XHU3OWZmXHU3YTAxXHU3YTA0XHU3YTA1XHU3YTA3XHU3YTA4XHU3YTA5XHU3YTBhXHU3YTBjXHU3YTBmIiw0LCJcdTdhMTVcdTdhMTZcdTdhMThcdTdhMTlcdTdhMWJcdTdhMWNcdTRlMDFcdTc2ZWZcdTUzZWVcdTk0ODlcdTk4NzZcdTlmMGVcdTk1MmRcdTViOWFcdThiYTJcdTRlMjJcdTRl'@; put 'MWNcdTUxYWNcdTg0NjNcdTYxYzJcdTUyYThcdTY4MGJcdTRmOTdcdTYwNmJcdTUxYmJcdTZkMWVcdTUxNWNcdTYyOTZcdTY1OTdcdTk2NjFcdThjNDZcdTkwMTdcdTc1ZDhcdTkwZmRcdTc3NjNcdTZiZDJcdTcyOGFcdTcyZWNcdThiZmJcdTU4MzVcdTc3NzlcdThkNGNcdTY3NWNcdTk1NDBc'@; put 'dTgwOWFcdTVlYTZcdTZlMjFcdTU5OTJcdTdhZWZcdTc3ZWRcdTk1M2JcdTZiYjVcdTY1YWRcdTdmMGVcdTU4MDZcdTUxNTFcdTk2MWZcdTViZjlcdTU4YTlcdTU0MjhcdThlNzJcdTY1NjZcdTk4N2ZcdTU2ZTRcdTk0OWRcdTc2ZmVcdTkwNDFcdTYzODdcdTU0YzZcdTU5MWFcdTU5M2FcdTU3'@; put 'OWJcdThlYjJcdTY3MzVcdThkZmFcdTgyMzVcdTUyNDFcdTYwZjBcdTU4MTVcdTg2ZmVcdTVjZThcdTllNDVcdTRmYzRcdTk4OWRcdThiYjlcdTVhMjVcdTYwNzZcdTUzODRcdTYyN2NcdTkwNGZcdTkxMDJcdTk5N2ZcdTYwNjlcdTgwMGNcdTUxM2ZcdTgwMzNcdTVjMTRcdTk5NzVcdTZkMzFc'@; put 'dTRlOGMiXSxbImI3NDAiLCJcdTdhMWRcdTdhMWZcdTdhMjFcdTdhMjJcdTdhMjQiLDE0LCJcdTdhMzRcdTdhMzVcdTdhMzZcdTdhMzhcdTdhM2FcdTdhM2VcdTdhNDAiLDUsIlx1N2E0NyIsOSwiXHU3YTUyIiw0LCJcdTdhNTgiLDE2XSxbImI3ODAiLCJcdTdhNjkiLDYsIlx1N2E3MVx1N2E3'@; put 'Mlx1N2E3M1x1N2E3NVx1N2E3Ylx1N2E3Y1x1N2E3ZFx1N2E3ZVx1N2E4Mlx1N2E4NVx1N2E4N1x1N2E4OVx1N2E4YVx1N2E4Ylx1N2E4Y1x1N2E4ZVx1N2E4Zlx1N2E5MFx1N2E5M1x1N2E5NFx1N2E5OVx1N2E5YVx1N2E5Ylx1N2E5ZVx1N2FhMVx1N2FhMlx1OGQzMFx1NTNkMVx1N2Y1YVx1'@; put 'N2I0Zlx1NGYxMFx1NGU0Zlx1OTYwMFx1NmNkNVx1NzNkMFx1ODVlOVx1NWUwNlx1NzU2YVx1N2ZmYlx1NmEwYVx1NzdmZVx1OTQ5Mlx1N2U0MVx1NTFlMVx1NzBlNlx1NTNjZFx1OGZkNFx1ODMwM1x1OGQyOVx1NzJhZlx1OTk2ZFx1NmNkYlx1NTc0YVx1ODJiM1x1NjViOVx1ODBhYVx1NjIz'@; put 'Zlx1OTYzMlx1NTlhOFx1NGVmZlx1OGJiZlx1N2ViYVx1NjUzZVx1ODNmMlx1OTc1ZVx1NTU2MVx1OThkZVx1ODBhNVx1NTMyYVx1OGJmZFx1NTQyMFx1ODBiYVx1NWU5Zlx1NmNiOFx1OGQzOVx1ODJhY1x1OTE1YVx1NTQyOVx1NmMxYlx1NTIwNlx1N2ViN1x1NTc1Zlx1NzExYVx1NmM3ZVx1'@; put 'N2M4OVx1NTk0Ylx1NGVmZFx1NWZmZlx1NjEyNFx1N2NhYVx1NGUzMFx1NWMwMVx1NjdhYlx1ODcwMlx1NWNmMFx1OTUwYlx1OThjZVx1NzVhZlx1NzBmZFx1OTAyMlx1NTFhZlx1N2YxZFx1OGJiZFx1NTk0OVx1NTFlNFx1NGY1Ylx1NTQyNlx1NTkyYlx1NjU3N1x1ODBhNFx1NWI3NVx1NjI3'@; put 'Nlx1NjJjMlx1OGY5MFx1NWU0NVx1NmMxZlx1N2IyNlx1NGYwZlx1NGZkOFx1NjcwZCJdLFsiYjg0MCIsIlx1N2FhM1x1N2FhNFx1N2FhN1x1N2FhOVx1N2FhYVx1N2FhYlx1N2FhZSIsNCwiXHU3YWI0IiwxMCwiXHU3YWMwIiwxMCwiXHU3YWNjIiw5LCJcdTdhZDdcdTdhZDhcdTdhZGFcdTdh'@; put 'ZGJcdTdhZGNcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTRcdTdhZTciLDUsIlx1N2FlZVx1N2FmMFx1N2FmMVx1N2FmMlx1N2FmMyJdLFsiYjg4MCIsIlx1N2FmNCIsNCwiXHU3YWZiXHU3YWZjXHU3YWZlXHU3YjAwXHU3YjAxXHU3YjAyXHU3YjA1XHU3YjA3XHU3YjA5XHU3YjBjXHU3YjBkXHU3'@; put 'YjBlXHU3YjEwXHU3YjEyXHU3YjEzXHU3YjE2XHU3YjE3XHU3YjE4XHU3YjFhXHU3YjFjXHU3YjFkXHU3YjFmXHU3YjIxXHU3YjIyXHU3YjIzXHU3YjI3XHU3YjI5XHU3YjJkXHU2ZDZlXHU2ZGFhXHU3OThmXHU4OGIxXHU1ZjE3XHU3NTJiXHU2MjlhXHU4Zjg1XHU0ZmVmXHU5MWRjXHU2NWE3'@; put 'XHU4MTJmXHU4MTUxXHU1ZTljXHU4MTUwXHU4ZDc0XHU1MjZmXHU4OTg2XHU4ZDRiXHU1OTBkXHU1MDg1XHU0ZWQ4XHU5NjFjXHU3MjM2XHU4MTc5XHU4ZDFmXHU1YmNjXHU4YmEzXHU5NjQ0XHU1OTg3XHU3ZjFhXHU1NDkwXHU1Njc2XHU1NjBlXHU4YmU1XHU2NTM5XHU2OTgyXHU5NDk5XHU3'@; put 'NmQ2XHU2ZTg5XHU1ZTcyXHU3NTE4XHU2NzQ2XHU2N2QxXHU3YWZmXHU4MDlkXHU4ZDc2XHU2MTFmXHU3OWM2XHU2NTYyXHU4ZDYzXHU1MTg4XHU1MjFhXHU5NGEyXHU3ZjM4XHU4MDliXHU3ZWIyXHU1Yzk3XHU2ZTJmXHU2NzYwXHU3YmQ5XHU3NjhiXHU5YWQ4XHU4MThmXHU3Zjk0XHU3Y2Q1'@; put 'XHU2NDFlXHU5NTUwXHU3YTNmXHU1NDRhXHU1NGU1XHU2YjRjXHU2NDAxXHU2MjA4XHU5ZTNkXHU4MGYzXHU3NTk5XHU1MjcyXHU5NzY5XHU4NDViXHU2ODNjXHU4NmU0XHU5NjAxXHU5Njk0XHU5NGVjXHU0ZTJhXHU1NDA0XHU3ZWQ5XHU2ODM5XHU4ZGRmXHU4MDE1XHU2NmY0XHU1ZTlhXHU3'@; put 'ZmI5Il0sWyJiOTQwIiwiXHU3YjJmXHU3YjMwXHU3YjMyXHU3YjM0XHU3YjM1XHU3YjM2XHU3YjM3XHU3YjM5XHU3YjNiXHU3YjNkXHU3YjNmIiw1LCJcdTdiNDZcdTdiNDhcdTdiNGFcdTdiNGRcdTdiNGVcdTdiNTNcdTdiNTVcdTdiNTdcdTdiNTlcdTdiNWNcdTdiNWVcdTdiNWZcdTdiNjFc'@; put 'dTdiNjMiLDEwLCJcdTdiNmZcdTdiNzBcdTdiNzNcdTdiNzRcdTdiNzZcdTdiNzhcdTdiN2FcdTdiN2NcdTdiN2RcdTdiN2ZcdTdiODFcdTdiODJcdTdiODNcdTdiODRcdTdiODYiLDYsIlx1N2I4ZVx1N2I4ZiJdLFsiYjk4MCIsIlx1N2I5MVx1N2I5Mlx1N2I5M1x1N2I5Nlx1N2I5OFx1N2I5'@; put 'OVx1N2I5YVx1N2I5Ylx1N2I5ZVx1N2I5Zlx1N2JhMFx1N2JhM1x1N2JhNFx1N2JhNVx1N2JhZVx1N2JhZlx1N2JiMFx1N2JiMlx1N2JiM1x1N2JiNVx1N2JiNlx1N2JiN1x1N2JiOSIsNywiXHU3YmMyXHU3YmMzXHU3YmM0XHU1N2MyXHU4MDNmXHU2ODk3XHU1ZGU1XHU2NTNiXHU1MjlmXHU2'@; put 'MDZkXHU5ZjlhXHU0ZjliXHU4ZWFjXHU1MTZjXHU1YmFiXHU1ZjEzXHU1ZGU5XHU2YzVlXHU2MmYxXHU4ZDIxXHU1MTcxXHU5NGE5XHU1MmZlXHU2YzlmXHU4MmRmXHU3MmQ3XHU1N2EyXHU2Nzg0XHU4ZDJkXHU1OTFmXHU4ZjljXHU4M2M3XHU1NDk1XHU3YjhkXHU0ZjMwXHU2Y2JkXHU1YjY0'@; put 'XHU1OWQxXHU5ZjEzXHU1M2U0XHU4NmNhXHU5YWE4XHU4YzM3XHU4MGExXHU2NTQ1XHU5ODdlXHU1NmZhXHU5NmM3XHU1MjJlXHU3NGRjXHU1MjUwXHU1YmUxXHU2MzAyXHU4OTAyXHU0ZTU2XHU2MmQwXHU2MDJhXHU2OGZhXHU1MTczXHU1Yjk4XHU1MWEwXHU4OWMyXHU3YmExXHU5OTg2XHU3'@; put 'ZjUwXHU2MGVmXHU3MDRjXHU4ZDJmXHU1MTQ5XHU1ZTdmXHU5MDFiXHU3NDcwXHU4OWM0XHU1NzJkXHU3ODQ1XHU1ZjUyXHU5ZjlmXHU5NWZhXHU4ZjY4XHU5YjNjXHU4YmUxXHU3Njc4XHU2ODQyXHU2N2RjXHU4ZGVhXHU4ZDM1XHU1MjNkXHU4ZjhhXHU2ZWRhXHU2OGNkXHU5NTA1XHU5MGVk'@; put 'XHU1NmZkXHU2NzljXHU4OGY5XHU4ZmM3XHU1NGM4Il0sWyJiYTQwIiwiXHU3YmM1XHU3YmM4XHU3YmM5XHU3YmNhXHU3YmNiXHU3YmNkXHU3YmNlXHU3YmNmXHU3YmQwXHU3YmQyXHU3YmQ0Iiw0LCJcdTdiZGJcdTdiZGNcdTdiZGVcdTdiZGZcdTdiZTBcdTdiZTJcdTdiZTNcdTdiZTRcdTdi'@; put 'ZTdcdTdiZThcdTdiZTlcdTdiZWJcdTdiZWNcdTdiZWRcdTdiZWZcdTdiZjBcdTdiZjIiLDQsIlx1N2JmOFx1N2JmOVx1N2JmYVx1N2JmYlx1N2JmZFx1N2JmZiIsNywiXHU3YzA4XHU3YzA5XHU3YzBhXHU3YzBkXHU3YzBlXHU3YzEwIiw1LCJcdTdjMTdcdTdjMThcdTdjMTkiXSxbImJhODAi'@; put 'LCJcdTdjMWEiLDQsIlx1N2MyMCIsNSwiXHU3YzI4XHU3YzI5XHU3YzJiIiwxMiwiXHU3YzM5Iiw1LCJcdTdjNDJcdTlhYjhcdTViNjlcdTZkNzdcdTZjMjZcdTRlYTVcdTViYjNcdTlhODdcdTkxNjNcdTYxYThcdTkwYWZcdTk3ZTlcdTU0MmJcdTZkYjVcdTViZDJcdTUxZmRcdTU1OGFcdTdm'@; put 'NTVcdTdmZjBcdTY0YmNcdTYzNGRcdTY1ZjFcdTYxYmVcdTYwOGRcdTcxMGFcdTZjNTdcdTZjNDlcdTU5MmZcdTY3NmRcdTgyMmFcdTU4ZDVcdTU2OGVcdThjNmFcdTZiZWJcdTkwZGRcdTU5N2RcdTgwMTdcdTUzZjdcdTZkNjlcdTU0NzVcdTU1OWRcdTgzNzdcdTgzY2ZcdTY4MzhcdTc5YmVc'@; put 'dTU0OGNcdTRmNTVcdTU0MDhcdTc2ZDJcdThjODlcdTk2MDJcdTZjYjNcdTZkYjhcdThkNmJcdTg5MTBcdTllNjRcdThkM2FcdTU2M2ZcdTllZDFcdTc1ZDVcdTVmODhcdTcyZTBcdTYwNjhcdTU0ZmNcdTRlYThcdTZhMmFcdTg4NjFcdTYwNTJcdThmNzBcdTU0YzRcdTcwZDhcdTg2NzlcdTll'@; put 'M2ZcdTZkMmFcdTViOGZcdTVmMThcdTdlYTJcdTU1ODlcdTRmYWZcdTczMzRcdTU0M2NcdTUzOWFcdTUwMTlcdTU0MGVcdTU0N2NcdTRlNGVcdTVmZmRcdTc0NWFcdTU4ZjZcdTg0NmJcdTgwZTFcdTg3NzRcdTcyZDBcdTdjY2FcdTZlNTYiXSxbImJiNDAiLCJcdTdjNDMiLDksIlx1N2M0ZSIs'@; put 'MzYsIlx1N2M3NSIsNSwiXHU3YzdlIiw5XSxbImJiODAiLCJcdTdjODhcdTdjOGEiLDYsIlx1N2M5M1x1N2M5NFx1N2M5Nlx1N2M5OVx1N2M5YVx1N2M5Ylx1N2NhMFx1N2NhMVx1N2NhM1x1N2NhNlx1N2NhN1x1N2NhOFx1N2NhOVx1N2NhYlx1N2NhY1x1N2NhZFx1N2NhZlx1N2NiMFx1N2Ni'@; put 'NCIsNCwiXHU3Y2JhXHU3Y2JiXHU1ZjI3XHU4NjRlXHU1NTJjXHU2MmE0XHU0ZTkyXHU2Y2FhXHU2MjM3XHU4MmIxXHU1NGQ3XHU1MzRlXHU3MzNlXHU2ZWQxXHU3NTNiXHU1MjEyXHU1MzE2XHU4YmRkXHU2OWQwXHU1ZjhhXHU2MDAwXHU2ZGVlXHU1NzRmXHU2YjIyXHU3M2FmXHU2ODUzXHU4'@; put 'ZmQ4XHU3ZjEzXHU2MzYyXHU2MGEzXHU1NTI0XHU3NWVhXHU4YzYyXHU3MTE1XHU2ZGEzXHU1YmE2XHU1ZTdiXHU4MzUyXHU2MTRjXHU5ZWM0XHU3OGZhXHU4NzU3XHU3YzI3XHU3Njg3XHU1MWYwXHU2MGY2XHU3MTRjXHU2NjQzXHU1ZTRjXHU2MDRkXHU4YzBlXHU3MDcwXHU2MzI1XHU4Zjg5'@; put 'XHU1ZmJkXHU2MDYyXHU4NmQ0XHU1NmRlXHU2YmMxXHU2MDk0XHU2MTY3XHU1MzQ5XHU2MGUwXHU2NjY2XHU4ZDNmXHU3OWZkXHU0ZjFhXHU3MGU5XHU2YzQ3XHU4YmIzXHU4YmYyXHU3ZWQ4XHU4MzY0XHU2NjBmXHU1YTVhXHU5YjQyXHU2ZDUxXHU2ZGY3XHU4YzQxXHU2ZDNiXHU0ZjE5XHU3'@; put 'MDZiXHU4M2I3XHU2MjE2XHU2MGQxXHU5NzBkXHU4ZDI3XHU3OTc4XHU1MWZiXHU1NzNlXHU1N2ZhXHU2NzNhXHU3NTc4XHU3YTNkXHU3OWVmXHU3Yjk1Il0sWyJiYzQwIiwiXHU3Y2JmXHU3Y2MwXHU3Y2MyXHU3Y2MzXHU3Y2M0XHU3Y2M2XHU3Y2M5XHU3Y2NiXHU3Y2NlIiw2LCJcdTdjZDhc'@; put 'dTdjZGFcdTdjZGJcdTdjZGRcdTdjZGVcdTdjZTEiLDYsIlx1N2NlOSIsNSwiXHU3Y2YwIiw3LCJcdTdjZjlcdTdjZmFcdTdjZmMiLDEzLCJcdTdkMGIiLDVdLFsiYmM4MCIsIlx1N2QxMSIsMTQsIlx1N2QyMVx1N2QyM1x1N2QyNFx1N2QyNVx1N2QyNlx1N2QyOFx1N2QyOVx1N2QyYVx1N2Qy'@; put 'Y1x1N2QyZFx1N2QyZVx1N2QzMCIsNiwiXHU4MDhjXHU5OTY1XHU4ZmY5XHU2ZmMwXHU4YmE1XHU5ZTIxXHU1OWVjXHU3ZWU5XHU3ZjA5XHU1NDA5XHU2NzgxXHU2OGQ4XHU4ZjkxXHU3YzRkXHU5NmM2XHU1M2NhXHU2MDI1XHU3NWJlXHU2YzcyXHU1MzczXHU1YWM5XHU3ZWE3XHU2MzI0XHU1'@; put 'MWUwXHU4MTBhXHU1ZGYxXHU4NGRmXHU2MjgwXHU1MTgwXHU1YjYzXHU0ZjBlXHU3OTZkXHU1MjQyXHU2MGI4XHU2ZDRlXHU1YmM0XHU1YmMyXHU4YmExXHU4YmIwXHU2NWUyXHU1ZmNjXHU5NjQ1XHU1OTkzXHU3ZWU3XHU3ZWFhXHU1NjA5XHU2N2I3XHU1OTM5XHU0ZjczXHU1YmI2XHU1MmEw'@; put 'XHU4MzVhXHU5ODhhXHU4ZDNlXHU3NTMyXHU5NGJlXHU1MDQ3XHU3YTNjXHU0ZWY3XHU2N2I2XHU5YTdlXHU1YWMxXHU2YjdjXHU3NmQxXHU1NzVhXHU1YzE2XHU3YjNhXHU5NWY0XHU3MTRlXHU1MTdjXHU4MGE5XHU4MjcwXHU1OTc4XHU3ZjA0XHU4MzI3XHU2OGMwXHU2N2VjXHU3OGIxXHU3'@; put 'ODc3XHU2MmUzXHU2MzYxXHU3YjgwXHU0ZmVkXHU1MjZhXHU1MWNmXHU4MzUwXHU2OWRiXHU5Mjc0XHU4ZGY1XHU4ZDMxXHU4OWMxXHU5NTJlXHU3YmFkXHU0ZWY2Il0sWyJiZDQwIiwiXHU3ZDM3Iiw1NCwiXHU3ZDZmIiw3XSxbImJkODAiLCJcdTdkNzgiLDMyLCJcdTUwNjVcdTgyMzBcdTUy'@; put 'NTFcdTk5NmZcdTZlMTBcdTZlODVcdTZkYTdcdTVlZmFcdTUwZjVcdTU5ZGNcdTVjMDZcdTZkNDZcdTZjNWZcdTc1ODZcdTg0OGJcdTY4NjhcdTU5NTZcdThiYjJcdTUzMjBcdTkxNzFcdTk2NGRcdTg1NDlcdTY5MTJcdTc5MDFcdTcxMjZcdTgwZjZcdTRlYTRcdTkwY2FcdTZkNDdcdTlhODRc'@; put 'dTVhMDdcdTU2YmNcdTY0MDVcdTk0ZjBcdTc3ZWJcdTRmYTVcdTgxMWFcdTcyZTFcdTg5ZDJcdTk5N2FcdTdmMzRcdTdlZGVcdTUyN2ZcdTY1NTlcdTkxNzVcdThmN2ZcdThmODNcdTUzZWJcdTdhOTZcdTYzZWRcdTYzYTVcdTc2ODZcdTc5ZjhcdTg4NTdcdTk2MzZcdTYyMmFcdTUyYWJcdTgy'@; put 'ODJcdTY4NTRcdTY3NzBcdTYzNzdcdTc3NmJcdTdhZWRcdTZkMDFcdTdlZDNcdTg5ZTNcdTU5ZDBcdTYyMTJcdTg1YzlcdTgyYTVcdTc1NGNcdTUwMWZcdTRlY2JcdTc1YTVcdThiZWJcdTVjNGFcdTVkZmVcdTdiNGJcdTY1YTRcdTkxZDFcdTRlY2FcdTZkMjVcdTg5NWZcdTdkMjdcdTk1MjZc'@; put 'dTRlYzVcdThjMjhcdThmZGJcdTk3NzNcdTY2NGJcdTc5ODFcdThmZDFcdTcwZWNcdTZkNzgiXSxbImJlNDAiLCJcdTdkOTkiLDEyLCJcdTdkYTciLDYsIlx1N2RhZiIsNDJdLFsiYmU4MCIsIlx1N2RkYSIsMzIsIlx1NWMzZFx1NTJiMlx1ODM0Nlx1NTE2Mlx1ODMwZVx1Nzc1Ylx1NjY3Nlx1'@; put 'OWNiOFx1NGVhY1x1NjBjYVx1N2NiZVx1N2NiM1x1N2VjZlx1NGU5NVx1OGI2Nlx1NjY2Zlx1OTg4OFx1OTc1OVx1NTg4M1x1NjU2Y1x1OTU1Y1x1NWY4NFx1NzVjOVx1OTc1Nlx1N2FkZlx1N2FkZVx1NTFjMFx1NzBhZlx1N2E5OFx1NjNlYVx1N2E3Nlx1N2VhMFx1NzM5Nlx1OTdlZFx1NGU0'@; put 'NVx1NzA3OFx1NGU1ZFx1OTE1Mlx1NTNhOVx1NjU1MVx1NjVlN1x1ODFmY1x1ODIwNVx1NTQ4ZVx1NWMzMVx1NzU5YVx1OTdhMFx1NjJkOFx1NzJkOVx1NzViZFx1NWM0NVx1OWE3OVx1ODNjYVx1NWM0MFx1NTQ4MFx1NzdlOVx1NGUzZVx1NmNhZVx1ODA1YVx1NjJkMlx1NjM2ZVx1NWRlOFx1'@; put 'NTE3N1x1OGRkZFx1OGUxZVx1OTUyZlx1NGZmMVx1NTNlNVx1NjBlN1x1NzBhY1x1NTI2N1x1NjM1MFx1OWU0M1x1NWExZlx1NTAyNlx1NzczN1x1NTM3N1x1N2VlMlx1NjQ4NVx1NjUyYlx1NjI4OVx1NjM5OFx1NTAxNFx1NzIzNVx1ODljOVx1NTFiM1x1OGJjMFx1N2VkZFx1NTc0N1x1ODNj'@; put 'Y1x1OTRhN1x1NTE5Ylx1NTQxYlx1NWNmYiJdLFsiYmY0MCIsIlx1N2RmYiIsNjJdLFsiYmY4MCIsIlx1N2UzYVx1N2UzYyIsNCwiXHU3ZTQyIiw0LCJcdTdlNDgiLDIxLCJcdTRmY2FcdTdhZTNcdTZkNWFcdTkwZTFcdTlhOGZcdTU1ODBcdTU0OTZcdTUzNjFcdTU0YWZcdTVmMDBcdTYzZTlc'@; put 'dTY5NzdcdTUxZWZcdTYxNjhcdTUyMGFcdTU4MmFcdTUyZDhcdTU3NGVcdTc4MGRcdTc3MGJcdTVlYjdcdTYxNzdcdTdjZTBcdTYyNWJcdTYyOTdcdTRlYTJcdTcwOTVcdTgwMDNcdTYyZjdcdTcwZTRcdTk3NjBcdTU3NzdcdTgyZGJcdTY3ZWZcdTY4ZjVcdTc4ZDVcdTk4OTdcdTc5ZDFcdTU4'@; put 'ZjNcdTU0YjNcdTUzZWZcdTZlMzRcdTUxNGJcdTUyM2JcdTViYTJcdThiZmVcdTgwYWZcdTU1NDNcdTU3YTZcdTYwNzNcdTU3NTFcdTU0MmRcdTdhN2FcdTYwNTBcdTViNTRcdTYzYTdcdTYyYTBcdTUzZTNcdTYyNjNcdTViYzdcdTY3YWZcdTU0ZWRcdTdhOWZcdTgyZTZcdTkxNzdcdTVlOTNc'@; put 'dTg4ZTRcdTU5MzhcdTU3YWVcdTYzMGVcdThkZThcdTgwZWZcdTU3NTdcdTdiNzdcdTRmYTlcdTVmZWJcdTViYmRcdTZiM2VcdTUzMjFcdTdiNTBcdTcyYzJcdTY4NDZcdTc3ZmZcdTc3MzZcdTY1ZjdcdTUxYjVcdTRlOGZcdTc2ZDRcdTVjYmZcdTdhYTVcdTg0NzVcdTU5NGVcdTliNDFcdTUw'@; put 'ODAiXSxbImMwNDAiLCJcdTdlNWUiLDM1LCJcdTdlODMiLDIzLCJcdTdlOWNcdTdlOWRcdTdlOWUiXSxbImMwODAiLCJcdTdlYWVcdTdlYjRcdTdlYmJcdTdlYmNcdTdlZDZcdTdlZTRcdTdlZWNcdTdlZjlcdTdmMGFcdTdmMTBcdTdmMWVcdTdmMzdcdTdmMzlcdTdmM2IiLDYsIlx1N2Y0M1x1'@; put 'N2Y0NiIsOSwiXHU3ZjUyXHU3ZjUzXHU5OTg4XHU2MTI3XHU2ZTgzXHU1NzY0XHU2NjA2XHU2MzQ2XHU1NmYwXHU2MmVjXHU2MjY5XHU1ZWQzXHU5NjE0XHU1NzgzXHU2MmM5XHU1NTg3XHU4NzIxXHU4MTRhXHU4ZmEzXHU1NTY2XHU4M2IxXHU2NzY1XHU4ZDU2XHU4NGRkXHU1YTZhXHU2ODBm'@; put 'XHU2MmU2XHU3YmVlXHU5NjExXHU1MTcwXHU2ZjljXHU4YzMwXHU2M2ZkXHU4OWM4XHU2MWQyXHU3ZjA2XHU3MGMyXHU2ZWU1XHU3NDA1XHU2OTk0XHU3MmZjXHU1ZWNhXHU5MGNlXHU2NzE3XHU2ZDZhXHU2MzVlXHU1MmIzXHU3MjYyXHU4MDAxXHU0ZjZjXHU1OWU1XHU5MTZhXHU3MGQ5XHU2'@; put 'ZDlkXHU1MmQyXHU0ZTUwXHU5NmY3XHU5NTZkXHU4NTdlXHU3OGNhXHU3ZDJmXHU1MTIxXHU1NzkyXHU2NGMyXHU4MDhiXHU3YzdiXHU2Y2VhXHU2OGYxXHU2OTVlXHU1MWI3XHU1Mzk4XHU2OGE4XHU3MjgxXHU5ZWNlXHU3YmYxXHU3MmY4XHU3OWJiXHU2ZjEzXHU3NDA2XHU2NzRlXHU5MWNj'@; put 'XHU5Y2E0XHU3OTNjXHU4Mzg5XHU4MzU0XHU1NDBmXHU2ODE3XHU0ZTNkXHU1Mzg5XHU1MmIxXHU3ODNlXHU1Mzg2XHU1MjI5XHU1MDg4XHU0ZjhiXHU0ZmQwIl0sWyJjMTQwIiwiXHU3ZjU2XHU3ZjU5XHU3ZjViXHU3ZjVjXHU3ZjVkXHU3ZjVlXHU3ZjYwXHU3ZjYzIiw0LCJcdTdmNmJcdTdm'@; put 'NmNcdTdmNmRcdTdmNmZcdTdmNzBcdTdmNzNcdTdmNzVcdTdmNzZcdTdmNzdcdTdmNzhcdTdmN2FcdTdmN2JcdTdmN2NcdTdmN2RcdTdmN2ZcdTdmODBcdTdmODIiLDcsIlx1N2Y4Ylx1N2Y4ZFx1N2Y4ZiIsNCwiXHU3Zjk1Iiw0LCJcdTdmOWJcdTdmOWNcdTdmYTBcdTdmYTJcdTdmYTNcdTdm'@; put 'YTVcdTdmYTZcdTdmYTgiLDYsIlx1N2ZiMSJdLFsiYzE4MCIsIlx1N2ZiMyIsNCwiXHU3ZmJhXHU3ZmJiXHU3ZmJlXHU3ZmMwXHU3ZmMyXHU3ZmMzXHU3ZmM0XHU3ZmM2XHU3ZmM3XHU3ZmM4XHU3ZmM5XHU3ZmNiXHU3ZmNkXHU3ZmNmIiw0LCJcdTdmZDZcdTdmZDdcdTdmZDkiLDUsIlx1N2Zl'@; put 'Mlx1N2ZlM1x1NzVlMlx1N2FjYlx1N2M5Mlx1NmNhNVx1OTZiNlx1NTI5Ylx1NzQ4M1x1NTRlOVx1NGZlOVx1ODA1NFx1ODNiMlx1OGZkZVx1OTU3MFx1NWVjOVx1NjAxY1x1NmQ5Zlx1NWUxOFx1NjU1Ylx1ODEzOFx1OTRmZVx1NjA0Ylx1NzBiY1x1N2VjM1x1N2NhZVx1NTFjOVx1Njg4MVx1'@; put 'N2NiMVx1ODI2Zlx1NGUyNFx1OGY4Nlx1OTFjZlx1NjY3ZVx1NGVhZVx1OGMwNVx1NjRhOVx1ODA0YVx1NTBkYVx1NzU5N1x1NzFjZVx1NWJlNVx1OGZiZFx1NmY2Nlx1NGU4Nlx1NjQ4Mlx1OTU2M1x1NWVkNlx1NjU5OVx1NTIxN1x1ODhjMlx1NzBjOFx1NTJhM1x1NzMwZVx1NzQzM1x1Njc5'@; put 'N1x1NzhmN1x1OTcxNlx1NGUzNFx1OTBiYlx1OWNkZVx1NmRjYlx1NTFkYlx1OGQ0MVx1NTQxZFx1NjJjZVx1NzNiMlx1ODNmMVx1OTZmNlx1OWY4NFx1OTRjM1x1NGYzNlx1N2Y5YVx1NTFjY1x1NzA3NVx1OTY3NVx1NWNhZFx1OTg4Nlx1NTNlNlx1NGVlNFx1NmU5Y1x1NzQwOVx1NjliNFx1'@; put 'Nzg2Ylx1OTk4Zlx1NzU1OVx1NTIxOFx1NzYyNFx1NmQ0MVx1NjdmM1x1NTE2ZFx1OWY5OVx1ODA0Ylx1NTQ5OVx1N2IzY1x1N2FiZiJdLFsiYzI0MCIsIlx1N2ZlNFx1N2ZlN1x1N2ZlOFx1N2ZlYVx1N2ZlYlx1N2ZlY1x1N2ZlZFx1N2ZlZlx1N2ZmMlx1N2ZmNCIsNiwiXHU3ZmZkXHU3ZmZl'@; put 'XHU3ZmZmXHU4MDAyXHU4MDA3XHU4MDA4XHU4MDA5XHU4MDBhXHU4MDBlXHU4MDBmXHU4MDExXHU4MDEzXHU4MDFhXHU4MDFiXHU4MDFkXHU4MDFlXHU4MDFmXHU4MDIxXHU4MDIzXHU4MDI0XHU4MDJiIiw1LCJcdTgwMzJcdTgwMzRcdTgwMzlcdTgwM2FcdTgwM2NcdTgwM2VcdTgwNDBcdTgw'@; put 'NDFcdTgwNDRcdTgwNDVcdTgwNDdcdTgwNDhcdTgwNDlcdTgwNGVcdTgwNGZcdTgwNTBcdTgwNTFcdTgwNTNcdTgwNTVcdTgwNTZcdTgwNTciXSxbImMyODAiLCJcdTgwNTlcdTgwNWIiLDEzLCJcdTgwNmIiLDUsIlx1ODA3MiIsMTEsIlx1OTY4Nlx1NTc4NFx1NjJlMlx1OTY0N1x1Njk3Y1x1'@; put 'NWEwNFx1NjQwMlx1N2JkM1x1NmYwZlx1OTY0Ylx1ODJhNlx1NTM2Mlx1OTg4NVx1NWU5MFx1NzA4OVx1NjNiM1x1NTM2NFx1ODY0Zlx1OWM4MVx1OWU5M1x1Nzg4Y1x1OTczMlx1OGRlZlx1OGQ0Mlx1OWU3Zlx1NmY1ZVx1Nzk4NFx1NWY1NVx1OTY0Nlx1NjIyZVx1OWE3NFx1NTQxNVx1OTRk'@; put 'ZFx1NGZhM1x1NjVjNVx1NWM2NVx1NWM2MVx1N2YxNVx1ODY1MVx1NmMyZlx1NWY4Ylx1NzM4N1x1NmVlNFx1N2VmZlx1NWNlNlx1NjMxYlx1NWI2YVx1NmVlNlx1NTM3NVx1NGU3MVx1NjNhMFx1NzU2NVx1NjJhMVx1OGY2ZVx1NGYyNlx1NGVkMVx1NmNhNlx1N2ViNlx1OGJiYVx1ODQxZFx1'@; put 'ODdiYVx1N2Y1N1x1OTAzYlx1OTUyM1x1N2JhOVx1OWFhMVx1ODhmOFx1ODQzZFx1NmQxYlx1OWE4Nlx1N2VkY1x1NTk4OFx1OWViYlx1NzM5Ylx1NzgwMVx1ODY4Mlx1OWE2Y1x1OWE4Mlx1NTYxYlx1NTQxN1x1NTdjYlx1NGU3MFx1OWVhNlx1NTM1Nlx1OGZjOFx1ODEwOVx1Nzc5Mlx1OTk5'@; put 'Mlx1ODZlZVx1NmVlMVx1ODUxM1x1NjZmY1x1NjE2Mlx1NmYyYiJdLFsiYzM0MCIsIlx1ODA3ZVx1ODA4MVx1ODA4Mlx1ODA4NVx1ODA4OFx1ODA4YVx1ODA4ZCIsNSwiXHU4MDk0XHU4MDk1XHU4MDk3XHU4MDk5XHU4MDllXHU4MGEzXHU4MGE2XHU4MGE3XHU4MGE4XHU4MGFjXHU4MGIwXHU4'@; put 'MGIzXHU4MGI1XHU4MGI2XHU4MGI4XHU4MGI5XHU4MGJiXHU4MGM1XHU4MGM3Iiw0LCJcdTgwY2YiLDYsIlx1ODBkOFx1ODBkZlx1ODBlMFx1ODBlMlx1ODBlM1x1ODBlNlx1ODBlZVx1ODBmNVx1ODBmN1x1ODBmOVx1ODBmYlx1ODBmZVx1ODBmZlx1ODEwMFx1ODEwMVx1ODEwM1x1ODEwNFx1'@; put 'ODEwNVx1ODEwN1x1ODEwOFx1ODEwYiJdLFsiYzM4MCIsIlx1ODEwY1x1ODExNVx1ODExN1x1ODExOVx1ODExYlx1ODExY1x1ODExZFx1ODExZiIsMTIsIlx1ODEyZFx1ODEyZVx1ODEzMFx1ODEzM1x1ODEzNFx1ODEzNVx1ODEzN1x1ODEzOSIsNCwiXHU4MTNmXHU4YzI5XHU4MjkyXHU4MzJi'@; put 'XHU3NmYyXHU2YzEzXHU1ZmQ5XHU4M2JkXHU3MzJiXHU4MzA1XHU5NTFhXHU2YmRiXHU3N2RiXHU5NGM2XHU1MzZmXHU4MzAyXHU1MTkyXHU1ZTNkXHU4YzhjXHU4ZDM4XHU0ZTQ4XHU3M2FiXHU2NzlhXHU2ODg1XHU5MTc2XHU5NzA5XHU3MTY0XHU2Y2ExXHU3NzA5XHU1YTkyXHU5NTQxXHU2'@; put 'YmNmXHU3ZjhlXHU2NjI3XHU1YmQwXHU1OWI5XHU1YTlhXHU5NWU4XHU5NWY3XHU0ZWVjXHU4NDBjXHU4NDk5XHU2YWFjXHU3NmRmXHU5NTMwXHU3MzFiXHU2OGE2XHU1YjVmXHU3NzJmXHU5MTlhXHU5NzYxXHU3Y2RjXHU4ZmY3XHU4YzFjXHU1ZjI1XHU3YzczXHU3OWQ4XHU4OWM1XHU2Y2Nj'@; put 'XHU4NzFjXHU1YmM2XHU1ZTQyXHU2OGM5XHU3NzIwXHU3ZWY1XHU1MTk1XHU1MTRkXHU1MmM5XHU1YTI5XHU3ZjA1XHU5NzYyXHU4MmQ3XHU2M2NmXHU3Nzg0XHU4NWQwXHU3OWQyXHU2ZTNhXHU1ZTk5XHU1OTk5XHU4NTExXHU3MDZkXHU2YzExXHU2MmJmXHU3NmJmXHU2NTRmXHU2MGFmXHU5'@; put 'NWZkXHU2NjBlXHU4NzlmXHU5ZTIzXHU5NGVkXHU1NDBkXHU1NDdkXHU4YzJjXHU2NDc4Il0sWyJjNDQwIiwiXHU4MTQwIiw1LCJcdTgxNDdcdTgxNDlcdTgxNGRcdTgxNGVcdTgxNGZcdTgxNTJcdTgxNTZcdTgxNTdcdTgxNThcdTgxNWIiLDQsIlx1ODE2MVx1ODE2Mlx1ODE2M1x1ODE2NFx1'@; put 'ODE2Nlx1ODE2OFx1ODE2YVx1ODE2Ylx1ODE2Y1x1ODE2Zlx1ODE3Mlx1ODE3M1x1ODE3NVx1ODE3Nlx1ODE3N1x1ODE3OFx1ODE4MVx1ODE4MyIsNCwiXHU4MTg5XHU4MThiXHU4MThjXHU4MThkXHU4MThlXHU4MTkwXHU4MTkyIiw1LCJcdTgxOTlcdTgxOWFcdTgxOWUiLDQsIlx1ODFhNFx1'@; put 'ODFhNSJdLFsiYzQ4MCIsIlx1ODFhN1x1ODFhOVx1ODFhYiIsNywiXHU4MWI0Iiw1LCJcdTgxYmNcdTgxYmRcdTgxYmVcdTgxYmZcdTgxYzRcdTgxYzVcdTgxYzdcdTgxYzhcdTgxYzlcdTgxY2JcdTgxY2QiLDYsIlx1NjQ3OVx1ODYxMVx1NmEyMVx1ODE5Y1x1NzhlOFx1NjQ2OVx1OWI1NFx1'@; put 'NjJiOVx1NjcyYlx1ODNhYlx1NThhOFx1OWVkOFx1NmNhYlx1NmYyMFx1NWJkZVx1OTY0Y1x1OGMwYlx1NzI1Zlx1NjdkMFx1NjJjN1x1NzI2MVx1NGVhOVx1NTljNlx1NmJjZFx1NTg5M1x1NjZhZVx1NWU1NVx1NTJkZlx1NjE1NVx1NjcyOFx1NzZlZVx1Nzc2Nlx1NzI2N1x1N2E0Nlx1NjJm'@; put 'Zlx1NTRlYVx1NTQ1MFx1OTRhMFx1OTBhM1x1NWExY1x1N2ViM1x1NmMxNlx1NGU0M1x1NTk3Nlx1ODAxMFx1NTk0OFx1NTM1N1x1NzUzN1x1OTZiZVx1NTZjYVx1NjMyMFx1ODExMVx1NjA3Y1x1OTVmOVx1NmRkNlx1NTQ2Mlx1OTk4MVx1NTE4NVx1NWFlOVx1ODBmZFx1NTlhZVx1OTcxM1x1'@; put 'NTAyYVx1NmNlNVx1NWMzY1x1NjJkZlx1NGY2MFx1NTMzZlx1ODE3Ylx1OTAwNlx1NmViYVx1ODUyYlx1NjJjOFx1NWU3NFx1NzhiZVx1NjRiNVx1NjM3Ylx1NWZmNVx1NWExOFx1OTE3Zlx1OWUxZlx1NWMzZlx1NjM0Zlx1ODA0Mlx1NWI3ZFx1NTU2ZVx1OTU0YVx1OTU0ZFx1NmQ4NVx1NjBh'@; put 'OFx1NjdlMFx1NzJkZVx1NTFkZFx1NWI4MSJdLFsiYzU0MCIsIlx1ODFkNCIsMTQsIlx1ODFlNFx1ODFlNVx1ODFlNlx1ODFlOFx1ODFlOVx1ODFlYlx1ODFlZSIsNCwiXHU4MWY1Iiw1LCJcdTgxZmRcdTgxZmZcdTgyMDNcdTgyMDciLDQsIlx1ODIwZVx1ODIwZlx1ODIxMVx1ODIxM1x1ODIx'@; put 'NSIsNSwiXHU4MjFkXHU4MjIwXHU4MjI0XHU4MjI1XHU4MjI2XHU4MjI3XHU4MjI5XHU4MjJlXHU4MjMyXHU4MjNhXHU4MjNjXHU4MjNkXHU4MjNmIl0sWyJjNTgwIiwiXHU4MjQwXHU4MjQxXHU4MjQyXHU4MjQzXHU4MjQ1XHU4MjQ2XHU4MjQ4XHU4MjRhXHU4MjRjXHU4MjRkXHU4MjRlXHU4'@; put 'MjUwIiw3LCJcdTgyNTlcdTgyNWJcdTgyNWNcdTgyNWRcdTgyNWVcdTgyNjAiLDcsIlx1ODI2OVx1NjJlN1x1NmNkZVx1NzI1Ylx1NjI2ZFx1OTRhZVx1N2ViZFx1ODExM1x1NmQ1M1x1NTE5Y1x1NWYwNFx1NTk3NFx1NTJhYVx1NjAxMlx1NTk3M1x1NjY5Nlx1ODY1MFx1NzU5Zlx1NjMyYVx1'@; put 'NjFlNlx1N2NlZlx1OGJmYVx1NTRlNlx1NmIyN1x1OWUyNVx1NmJiNFx1ODVkNVx1NTQ1NVx1NTA3Nlx1NmNhNFx1NTU2YVx1OGRiNFx1NzIyY1x1NWUxNVx1NjAxNVx1NzQzNlx1NjJjZFx1NjM5Mlx1NzI0Y1x1NWY5OFx1NmU0M1x1NmQzZVx1NjUwMFx1NmY1OFx1NzZkOFx1NzhkMFx1NzZm'@; put 'Y1x1NzU1NFx1NTIyNFx1NTNkYlx1NGU1M1x1NWU5ZVx1NjVjMVx1ODAyYVx1ODBkNlx1NjI5Ylx1NTQ4Nlx1NTIyOFx1NzBhZVx1ODg4ZFx1OGRkMVx1NmNlMVx1NTQ3OFx1ODBkYVx1NTdmOVx1ODhmNFx1OGQ1NFx1OTY2YVx1OTE0ZFx1NGY2OVx1NmM5Ylx1NTViN1x1NzZjNlx1NzgzMFx1'@; put 'NjJhOFx1NzBmOVx1NmY4ZVx1NWY2ZFx1ODRlY1x1NjhkYVx1Nzg3Y1x1N2JmN1x1ODFhOFx1NjcwYlx1OWU0Zlx1NjM2N1x1NzhiMFx1NTc2Zlx1NzgxMlx1OTczOVx1NjI3OVx1NjJhYlx1NTI4OFx1NzQzNVx1NmJkNyJdLFsiYzY0MCIsIlx1ODI2YVx1ODI2Ylx1ODI2Y1x1ODI2ZFx1ODI3'@; put 'MVx1ODI3NVx1ODI3Nlx1ODI3N1x1ODI3OFx1ODI3Ylx1ODI3Y1x1ODI4MFx1ODI4MVx1ODI4M1x1ODI4NVx1ODI4Nlx1ODI4N1x1ODI4OVx1ODI4Y1x1ODI5MFx1ODI5M1x1ODI5NFx1ODI5NVx1ODI5Nlx1ODI5YVx1ODI5Ylx1ODI5ZVx1ODJhMFx1ODJhMlx1ODJhM1x1ODJhN1x1ODJiMlx1'@; put 'ODJiNVx1ODJiNlx1ODJiYVx1ODJiYlx1ODJiY1x1ODJiZlx1ODJjMFx1ODJjMlx1ODJjM1x1ODJjNVx1ODJjNlx1ODJjOVx1ODJkMFx1ODJkNlx1ODJkOVx1ODJkYVx1ODJkZFx1ODJlMlx1ODJlN1x1ODJlOFx1ODJlOVx1ODJlYVx1ODJlY1x1ODJlZFx1ODJlZVx1ODJmMFx1ODJmMlx1ODJm'@; put 'M1x1ODJmNVx1ODJmNlx1ODJmOCJdLFsiYzY4MCIsIlx1ODJmYVx1ODJmYyIsNCwiXHU4MzBhXHU4MzBiXHU4MzBkXHU4MzEwXHU4MzEyXHU4MzEzXHU4MzE2XHU4MzE4XHU4MzE5XHU4MzFkIiw5LCJcdTgzMjlcdTgzMmFcdTgzMmVcdTgzMzBcdTgzMzJcdTgzMzdcdTgzM2JcdTgzM2RcdTU1'@; put 'NjRcdTgxM2VcdTc1YjJcdTc2YWVcdTUzMzlcdTc1ZGVcdTUwZmJcdTVjNDFcdThiNmNcdTdiYzdcdTUwNGZcdTcyNDdcdTlhOTdcdTk4ZDhcdTZmMDJcdTc0ZTJcdTc5NjhcdTY0ODdcdTc3YTVcdTYyZmNcdTk4OTFcdThkMmJcdTU0YzFcdTgwNThcdTRlNTJcdTU3NmFcdTgyZjlcdTg0MGRc'@; put 'dTVlNzNcdTUxZWRcdTc0ZjZcdThiYzRcdTVjNGZcdTU3NjFcdTZjZmNcdTk4ODdcdTVhNDZcdTc4MzRcdTliNDRcdThmZWJcdTdjOTVcdTUyNTZcdTYyNTFcdTk0ZmFcdTRlYzZcdTgzODZcdTg0NjFcdTgzZTlcdTg0YjJcdTU3ZDRcdTY3MzRcdTU3MDNcdTY2NmVcdTZkNjZcdThjMzFcdTY2'@; put 'ZGRcdTcwMTFcdTY3MWZcdTZiM2FcdTY4MTZcdTYyMWFcdTU5YmJcdTRlMDNcdTUxYzRcdTZmMDZcdTY3ZDJcdTZjOGZcdTUxNzZcdTY4Y2JcdTU5NDdcdTZiNjdcdTc1NjZcdTVkMGVcdTgxMTBcdTlmNTBcdTY1ZDdcdTc5NDhcdTc5NDFcdTlhOTFcdThkNzdcdTVjODJcdTRlNWVcdTRmMDFc'@; put 'dTU0MmZcdTU5NTFcdTc4MGNcdTU2NjhcdTZjMTRcdThmYzRcdTVmMDNcdTZjN2RcdTZjZTNcdThiYWJcdTYzOTAiXSxbImM3NDAiLCJcdTgzM2VcdTgzM2ZcdTgzNDFcdTgzNDJcdTgzNDRcdTgzNDVcdTgzNDhcdTgzNGEiLDQsIlx1ODM1M1x1ODM1NSIsNCwiXHU4MzVkXHU4MzYyXHU4Mzcw'@; put 'Iiw2LCJcdTgzNzlcdTgzN2FcdTgzN2UiLDYsIlx1ODM4N1x1ODM4OFx1ODM4YVx1ODM4Ylx1ODM4Y1x1ODM4ZFx1ODM4Zlx1ODM5MFx1ODM5MVx1ODM5NFx1ODM5NVx1ODM5Nlx1ODM5N1x1ODM5OVx1ODM5YVx1ODM5ZFx1ODM5Zlx1ODNhMSIsNiwiXHU4M2FjXHU4M2FkXHU4M2FlIl0sWyJj'@; put 'NzgwIiwiXHU4M2FmXHU4M2I1XHU4M2JiXHU4M2JlXHU4M2JmXHU4M2MyXHU4M2MzXHU4M2M0XHU4M2M2XHU4M2M4XHU4M2M5XHU4M2NiXHU4M2NkXHU4M2NlXHU4M2QwXHU4M2QxXHU4M2QyXHU4M2QzXHU4M2Q1XHU4M2Q3XHU4M2Q5XHU4M2RhXHU4M2RiXHU4M2RlXHU4M2UyXHU4M2UzXHU4'@; put 'M2U0XHU4M2U2XHU4M2U3XHU4M2U4XHU4M2ViXHU4M2VjXHU4M2VkXHU2MDcwXHU2ZDNkXHU3Mjc1XHU2MjY2XHU5NDhlXHU5NGM1XHU1MzQzXHU4ZmMxXHU3YjdlXHU0ZWRmXHU4YzI2XHU0ZTdlXHU5ZWQ0XHU5NGIxXHU5NGIzXHU1MjRkXHU2ZjVjXHU5MDYzXHU2ZDQ1XHU4YzM0XHU1ODEx'@; put 'XHU1ZDRjXHU2YjIwXHU2YjQ5XHU2N2FhXHU1NDViXHU4MTU0XHU3ZjhjXHU1ODk5XHU4NTM3XHU1ZjNhXHU2MmEyXHU2YTQ3XHU5NTM5XHU2NTcyXHU2MDg0XHU2ODY1XHU3N2E3XHU0ZTU0XHU0ZmE4XHU1ZGU3XHU5Nzk4XHU2NGFjXHU3ZmQ4XHU1Y2VkXHU0ZmNmXHU3YThkXHU1MjA3XHU4'@; put 'MzA0XHU0ZTE0XHU2MDJmXHU3YTgzXHU5NGE2XHU0ZmI1XHU0ZWIyXHU3OWU2XHU3NDM0XHU1MmU0XHU4MmI5XHU2NGQyXHU3OWJkXHU1YmRkXHU2YzgxXHU5NzUyXHU4ZjdiXHU2YzIyXHU1MDNlXHU1MzdmXHU2ZTA1XHU2NGNlXHU2Njc0XHU2YzMwXHU2MGM1XHU5ODc3XHU4YmY3XHU1ZTg2'@; put 'XHU3NDNjXHU3YTc3XHU3OWNiXHU0ZTE4XHU5MGIxXHU3NDAzXHU2YzQyXHU1NmRhXHU5MTRiXHU2Y2M1XHU4ZDhiXHU1MzNhXHU4NmM2XHU2NmYyXHU4ZWFmXHU1YzQ4XHU5YTcxXHU2ZTIwIl0sWyJjODQwIiwiXHU4M2VlXHU4M2VmXHU4M2YzIiw0LCJcdTgzZmFcdTgzZmJcdTgzZmNcdTgz'@; put 'ZmVcdTgzZmZcdTg0MDBcdTg0MDJcdTg0MDVcdTg0MDdcdTg0MDhcdTg0MDlcdTg0MGFcdTg0MTBcdTg0MTIiLDUsIlx1ODQxOVx1ODQxYVx1ODQxYlx1ODQxZSIsNSwiXHU4NDI5Iiw3LCJcdTg0MzIiLDUsIlx1ODQzOVx1ODQzYVx1ODQzYlx1ODQzZSIsNywiXHU4NDQ3XHU4NDQ4XHU4NDQ5'@; put 'Il0sWyJjODgwIiwiXHU4NDRhIiw2LCJcdTg0NTIiLDQsIlx1ODQ1OFx1ODQ1ZFx1ODQ1ZVx1ODQ1Zlx1ODQ2MFx1ODQ2Mlx1ODQ2NCIsNCwiXHU4NDZhXHU4NDZlXHU4NDZmXHU4NDcwXHU4NDcyXHU4NDc0XHU4NDc3XHU4NDc5XHU4NDdiXHU4NDdjXHU1M2Q2XHU1YTM2XHU5ZjhiXHU4ZGEz'@; put 'XHU1M2JiXHU1NzA4XHU5OGE3XHU2NzQzXHU5MTliXHU2Y2M5XHU1MTY4XHU3NWNhXHU2MmYzXHU3MmFjXHU1MjM4XHU1MjlkXHU3ZjNhXHU3MDk0XHU3NjM4XHU1Mzc0XHU5ZTRhXHU2OWI3XHU3ODZlXHU5NmMwXHU4OGQ5XHU3ZmE0XHU3MTM2XHU3MWMzXHU1MTg5XHU2N2QzXHU3NGU0XHU1'@; put 'OGU0XHU2NTE4XHU1NmI3XHU4YmE5XHU5OTc2XHU2MjcwXHU3ZWQ1XHU2MGY5XHU3MGVkXHU1OGVjXHU0ZWMxXHU0ZWJhXHU1ZmNkXHU5N2U3XHU0ZWZiXHU4YmE0XHU1MjAzXHU1OThhXHU3ZWFiXHU2MjU0XHU0ZWNkXHU2NWU1XHU2MjBlXHU4MzM4XHU4NGM5XHU4MzYzXHU4NzhkXHU3MTk0'@; put 'XHU2ZWI2XHU1YmI5XHU3ZWQyXHU1MTk3XHU2M2M5XHU2N2Q0XHU4MDg5XHU4MzM5XHU4ODE1XHU1MTEyXHU1YjdhXHU1OTgyXHU4ZmIxXHU0ZTczXHU2YzVkXHU1MTY1XHU4OTI1XHU4ZjZmXHU5NjJlXHU4NTRhXHU3NDVlXHU5NTEwXHU5NWYwXHU2ZGE2XHU4MmU1XHU1ZjMxXHU2NDkyXHU2'@; put 'ZDEyXHU4NDI4XHU4MTZlXHU5Y2MzXHU1ODVlXHU4ZDViXHU0ZTA5XHU1M2MxIl0sWyJjOTQwIiwiXHU4NDdkIiw0LCJcdTg0ODNcdTg0ODRcdTg0ODVcdTg0ODZcdTg0OGFcdTg0OGRcdTg0OGYiLDcsIlx1ODQ5OFx1ODQ5YVx1ODQ5Ylx1ODQ5ZFx1ODQ5ZVx1ODQ5Zlx1ODRhMFx1ODRhMiIs'@; put 'MTIsIlx1ODRiMFx1ODRiMVx1ODRiM1x1ODRiNVx1ODRiNlx1ODRiN1x1ODRiYlx1ODRiY1x1ODRiZVx1ODRjMFx1ODRjMlx1ODRjM1x1ODRjNVx1ODRjNlx1ODRjN1x1ODRjOFx1ODRjYlx1ODRjY1x1ODRjZVx1ODRjZlx1ODRkMlx1ODRkNFx1ODRkNVx1ODRkNyJdLFsiYzk4MCIsIlx1ODRk'@; put 'OCIsNCwiXHU4NGRlXHU4NGUxXHU4NGUyXHU4NGU0XHU4NGU3Iiw0LCJcdTg0ZWRcdTg0ZWVcdTg0ZWZcdTg0ZjEiLDEwLCJcdTg0ZmRcdTg0ZmVcdTg1MDBcdTg1MDFcdTg1MDJcdTRmMWVcdTY1NjNcdTY4NTFcdTU1ZDNcdTRlMjdcdTY0MTRcdTlhOWFcdTYyNmJcdTVhYzJcdTc0NWZcdTgy'@; put 'NzJcdTZkYTlcdTY4ZWVcdTUwZTdcdTgzOGVcdTc4MDJcdTY3NDBcdTUyMzlcdTZjOTlcdTdlYjFcdTUwYmJcdTU1NjVcdTcxNWVcdTdiNWJcdTY2NTJcdTczY2FcdTgyZWJcdTY3NDlcdTVjNzFcdTUyMjBcdTcxN2RcdTg4NmJcdTk1ZWFcdTk2NTVcdTY0YzVcdThkNjFcdTgxYjNcdTU1ODRc'@; put 'dTZjNTVcdTYyNDdcdTdmMmVcdTU4OTJcdTRmMjRcdTU1NDZcdThkNGZcdTY2NGNcdTRlMGFcdTVjMWFcdTg4ZjNcdTY4YTJcdTYzNGVcdTdhMGRcdTcwZTdcdTgyOGRcdTUyZmFcdTk3ZjZcdTVjMTFcdTU0ZThcdTkwYjVcdTdlY2RcdTU5NjJcdThkNGFcdTg2YzdcdTgyMGNcdTgyMGRcdThk'@; put 'NjZcdTY0NDRcdTVjMDRcdTYxNTFcdTZkODlcdTc5M2VcdThiYmVcdTc4MzdcdTc1MzNcdTU0N2JcdTRmMzhcdThlYWJcdTZkZjFcdTVhMjBcdTdlYzVcdTc5NWVcdTZjODhcdTViYTFcdTVhNzZcdTc1MWFcdTgwYmVcdTYxNGVcdTZlMTdcdTU4ZjBcdTc1MWZcdTc1MjVcdTcyNzJcdTUzNDdc'@; put 'dTdlZjMiXSxbImNhNDAiLCJcdTg1MDMiLDgsIlx1ODUwZFx1ODUwZVx1ODUwZlx1ODUxMFx1ODUxMlx1ODUxNFx1ODUxNVx1ODUxNlx1ODUxOFx1ODUxOVx1ODUxYlx1ODUxY1x1ODUxZFx1ODUxZVx1ODUyMFx1ODUyMiIsOCwiXHU4NTJkIiw5LCJcdTg1M2UiLDQsIlx1ODU0NFx1ODU0NVx1'@; put 'ODU0Nlx1ODU0N1x1ODU0YiIsMTBdLFsiY2E4MCIsIlx1ODU1N1x1ODU1OFx1ODU1YVx1ODU1Ylx1ODU1Y1x1ODU1ZFx1ODU1ZiIsNCwiXHU4NTY1XHU4NTY2XHU4NTY3XHU4NTY5Iiw4LCJcdTg1NzNcdTg1NzVcdTg1NzZcdTg1NzdcdTg1NzhcdTg1N2NcdTg1N2RcdTg1N2ZcdTg1ODBcdTg1'@; put 'ODFcdTc3MDFcdTc2ZGJcdTUyNjlcdTgwZGNcdTU3MjNcdTVlMDhcdTU5MzFcdTcyZWVcdTY1YmRcdTZlN2ZcdThiZDdcdTVjMzhcdTg2NzFcdTUzNDFcdTc3ZjNcdTYyZmVcdTY1ZjZcdTRlYzBcdTk4ZGZcdTg2ODBcdTViOWVcdThiYzZcdTUzZjJcdTc3ZTJcdTRmN2ZcdTVjNGVcdTlhNzZc'@; put 'dTU5Y2JcdTVmMGZcdTc5M2FcdTU4ZWJcdTRlMTZcdTY3ZmZcdTRlOGJcdTYyZWRcdThhOTNcdTkwMWRcdTUyYmZcdTY2MmZcdTU1ZGNcdTU2NmNcdTkwMDJcdTRlZDVcdTRmOGRcdTkxY2FcdTk5NzBcdTZjMGZcdTVlMDJcdTYwNDNcdTViYTRcdTg5YzZcdThiZDVcdTY1MzZcdTYyNGJcdTk5'@; put 'OTZcdTViODhcdTViZmZcdTYzODhcdTU1MmVcdTUzZDdcdTc2MjZcdTUxN2RcdTg1MmNcdTY3YTJcdTY4YjNcdTZiOGFcdTYyOTJcdThmOTNcdTUzZDRcdTgyMTJcdTZkZDFcdTc1OGZcdTRlNjZcdThkNGVcdTViNzBcdTcxOWZcdTg1YWZcdTY2OTFcdTY2ZDlcdTdmNzJcdTg3MDBcdTllY2Rc'@; put 'dTlmMjBcdTVjNWVcdTY3MmZcdThmZjBcdTY4MTFcdTY3NWZcdTYyMGRcdTdhZDZcdTU4ODVcdTVlYjZcdTY1NzBcdTZmMzEiXSxbImNiNDAiLCJcdTg1ODJcdTg1ODNcdTg1ODZcdTg1ODgiLDYsIlx1ODU5MCIsMTAsIlx1ODU5ZCIsNiwiXHU4NWE1XHU4NWE2XHU4NWE3XHU4NWE5XHU4NWFi'@; put 'XHU4NWFjXHU4NWFkXHU4NWIxIiw1LCJcdTg1YjhcdTg1YmEiLDYsIlx1ODVjMiIsNiwiXHU4NWNhIiw0LCJcdTg1ZDFcdTg1ZDIiXSxbImNiODAiLCJcdTg1ZDRcdTg1ZDYiLDUsIlx1ODVkZCIsNiwiXHU4NWU1XHU4NWU2XHU4NWU3XHU4NWU4XHU4NWVhIiwxNCwiXHU2MDU1XHU1MjM3XHU4'@; put 'MDBkXHU2NDU0XHU4ODcwXHU3NTI5XHU1ZTA1XHU2ODEzXHU2MmY0XHU5NzFjXHU1M2NjXHU3MjNkXHU4YzAxXHU2YzM0XHU3NzYxXHU3YTBlXHU1NDJlXHU3N2FjXHU5ODdhXHU4MjFjXHU4YmY0XHU3ODU1XHU2NzE0XHU3MGMxXHU2NWFmXHU2NDk1XHU1NjM2XHU2MDFkXHU3OWMxXHU1M2Y4'@; put 'XHU0ZTFkXHU2YjdiXHU4MDg2XHU1YmZhXHU1NWUzXHU1NmRiXHU0ZjNhXHU0ZjNjXHU5OTcyXHU1ZGYzXHU2NzdlXHU4MDM4XHU2MDAyXHU5ODgyXHU5MDAxXHU1YjhiXHU4YmJjXHU4YmY1XHU2NDFjXHU4MjU4XHU2NGRlXHU1NWZkXHU4MmNmXHU5MTY1XHU0ZmQ3XHU3ZDIwXHU5MDFmXHU3'@; put 'YzlmXHU1MGYzXHU1ODUxXHU2ZWFmXHU1YmJmXHU4YmM5XHU4MDgzXHU5MTc4XHU4NDljXHU3Yjk3XHU4NjdkXHU5NjhiXHU5NjhmXHU3ZWU1XHU5YWQzXHU3ODhlXHU1YzgxXHU3YTU3XHU5MDQyXHU5NmE3XHU3OTVmXHU1YjU5XHU2MzVmXHU3YjBiXHU4NGQxXHU2OGFkXHU1NTA2XHU3ZjI5'@; put 'XHU3NDEwXHU3ZDIyXHU5NTAxXHU2MjQwXHU1ODRjXHU0ZWQ2XHU1YjgzXHU1OTc5XHU1ODU0Il0sWyJjYzQwIiwiXHU4NWY5XHU4NWZhXHU4NWZjXHU4NWZkXHU4NWZlXHU4NjAwIiw0LCJcdTg2MDYiLDEwLCJcdTg2MTJcdTg2MTNcdTg2MTRcdTg2MTVcdTg2MTciLDE1LCJcdTg2MjhcdTg2'@; put 'MmEiLDEzLCJcdTg2MzlcdTg2M2FcdTg2M2JcdTg2M2RcdTg2M2VcdTg2M2ZcdTg2NDAiXSxbImNjODAiLCJcdTg2NDEiLDExLCJcdTg2NTJcdTg2NTNcdTg2NTUiLDQsIlx1ODY1Ylx1ODY1Y1x1ODY1ZFx1ODY1Zlx1ODY2MFx1ODY2MVx1ODY2MyIsNywiXHU3MzZkXHU2MzFlXHU4ZTRiXHU4'@; put 'ZTBmXHU4MGNlXHU4MmQ0XHU2MmFjXHU1M2YwXHU2Y2YwXHU5MTVlXHU1OTJhXHU2MDAxXHU2YzcwXHU1NzRkXHU2NDRhXHU4ZDJhXHU3NjJiXHU2ZWU5XHU1NzViXHU2YTgwXHU3NWYwXHU2ZjZkXHU4YzJkXHU4YzA4XHU1NzY2XHU2YmVmXHU4ODkyXHU3OGIzXHU2M2EyXHU1M2Y5XHU3MGFk'@; put 'XHU2YzY0XHU1ODU4XHU2NDJhXHU1ODAyXHU2OGUwXHU4MTliXHU1NTEwXHU3Y2Q2XHU1MDE4XHU4ZWJhXHU2ZGNjXHU4ZDlmXHU3MGViXHU2MzhmXHU2ZDliXHU2ZWQ0XHU3ZWU2XHU4NDA0XHU2ODQzXHU5MDAzXHU2ZGQ4XHU5Njc2XHU4YmE4XHU1OTU3XHU3Mjc5XHU4NWU0XHU4MTdlXHU3'@; put 'NWJjXHU4YThhXHU2OGFmXHU1MjU0XHU4ZTIyXHU5NTExXHU2M2QwXHU5ODk4XHU4ZTQ0XHU1NTdjXHU0ZjUzXHU2NmZmXHU1NjhmXHU2MGQ1XHU2ZDk1XHU1MjQzXHU1YzQ5XHU1OTI5XHU2ZGZiXHU1ODZiXHU3NTMwXHU3NTFjXHU2MDZjXHU4MjE0XHU4MTQ2XHU2MzExXHU2NzYxXHU4ZmUy'@; put 'XHU3NzNhXHU4ZGYzXHU4ZDM0XHU5NGMxXHU1ZTE2XHU1Mzg1XHU1NDJjXHU3MGMzIl0sWyJjZDQwIiwiXHU4NjZkXHU4NjZmXHU4NjcwXHU4NjcyIiw2LCJcdTg2ODMiLDYsIlx1ODY4ZSIsNCwiXHU4Njk0XHU4Njk2Iiw1LCJcdTg2OWUiLDQsIlx1ODZhNVx1ODZhNlx1ODZhYlx1ODZhZFx1'@; put 'ODZhZVx1ODZiMlx1ODZiM1x1ODZiN1x1ODZiOFx1ODZiOVx1ODZiYiIsNCwiXHU4NmMxXHU4NmMyXHU4NmMzXHU4NmM1XHU4NmM4XHU4NmNjXHU4NmNkXHU4NmQyXHU4NmQzXHU4NmQ1XHU4NmQ2XHU4NmQ3XHU4NmRhXHU4NmRjIl0sWyJjZDgwIiwiXHU4NmRkXHU4NmUwXHU4NmUxXHU4NmUy'@; put 'XHU4NmUzXHU4NmU1XHU4NmU2XHU4NmU3XHU4NmU4XHU4NmVhXHU4NmViXHU4NmVjXHU4NmVmXHU4NmY1XHU4NmY2XHU4NmY3XHU4NmZhXHU4NmZiXHU4NmZjXHU4NmZkXHU4NmZmXHU4NzAxXHU4NzA0XHU4NzA1XHU4NzA2XHU4NzBiXHU4NzBjXHU4NzBlXHU4NzBmXHU4NzEwXHU4NzExXHU4'@; put 'NzE0XHU4NzE2XHU2YzQwXHU1ZWY3XHU1MDVjXHU0ZWFkXHU1ZWFkXHU2MzNhXHU4MjQ3XHU5MDFhXHU2ODUwXHU5MTZlXHU3N2IzXHU1NDBjXHU5NGRjXHU1ZjY0XHU3YWU1XHU2ODc2XHU2MzQ1XHU3YjUyXHU3ZWRmXHU3NWRiXHU1MDc3XHU2Mjk1XHU1OTM0XHU5MDBmXHU1MWY4XHU3OWMz'@; put 'XHU3YTgxXHU1NmZlXHU1ZjkyXHU5MDE0XHU2ZDgyXHU1YzYwXHU1NzFmXHU1NDEwXHU1MTU0XHU2ZTRkXHU1NmUyXHU2M2E4XHU5ODkzXHU4MTdmXHU4NzE1XHU4OTJhXHU5MDAwXHU1NDFlXHU1YzZmXHU4MWMwXHU2MmQ2XHU2MjU4XHU4MTMxXHU5ZTM1XHU5NjQwXHU5YTZlXHU5YTdjXHU2'@; put 'OTJkXHU1OWE1XHU2MmQzXHU1NTNlXHU2MzE2XHU1NGM3XHU4NmQ5XHU2ZDNjXHU1YTAzXHU3NGU2XHU4ODljXHU2YjZhXHU1OTE2XHU4YzRjXHU1ZjJmXHU2ZTdlXHU3M2E5XHU5ODdkXHU0ZTM4XHU3MGY3XHU1YjhjXHU3ODk3XHU2MzNkXHU2NjVhXHU3Njk2XHU2MGNiXHU1YjliXHU1YTQ5'@; put 'XHU0ZTA3XHU4MTU1XHU2YzZhXHU3MzhiXHU0ZWExXHU2Nzg5XHU3ZjUxXHU1ZjgwXHU2NWZhXHU2NzFiXHU1ZmQ4XHU1OTg0XHU1YTAxIl0sWyJjZTQwIiwiXHU4NzE5XHU4NzFiXHU4NzFkXHU4NzFmXHU4NzIwXHU4NzI0XHU4NzI2XHU4NzI3XHU4NzI4XHU4NzJhXHU4NzJiXHU4NzJjXHU4'@; put 'NzJkXHU4NzJmXHU4NzMwXHU4NzMyXHU4NzMzXHU4NzM1XHU4NzM2XHU4NzM4XHU4NzM5XHU4NzNhXHU4NzNjXHU4NzNkXHU4NzQwIiw2LCJcdTg3NGFcdTg3NGJcdTg3NGRcdTg3NGZcdTg3NTBcdTg3NTFcdTg3NTJcdTg3NTRcdTg3NTVcdTg3NTZcdTg3NThcdTg3NWEiLDUsIlx1ODc2MVx1'@; put 'ODc2Mlx1ODc2NiIsNywiXHU4NzZmXHU4NzcxXHU4NzcyXHU4NzczXHU4Nzc1Il0sWyJjZTgwIiwiXHU4Nzc3XHU4Nzc4XHU4Nzc5XHU4NzdhXHU4NzdmXHU4NzgwXHU4NzgxXHU4Nzg0XHU4Nzg2XHU4Nzg3XHU4Nzg5XHU4NzhhXHU4NzhjXHU4NzhlIiw0LCJcdTg3OTRcdTg3OTVcdTg3OTZc'@; put 'dTg3OTgiLDYsIlx1ODdhMCIsNCwiXHU1ZGNkXHU1ZmFlXHU1MzcxXHU5N2U2XHU4ZmRkXHU2ODQ1XHU1NmY0XHU1NTJmXHU2MGRmXHU0ZTNhXHU2ZjRkXHU3ZWY0XHU4MmM3XHU4NDBlXHU1OWQ0XHU0ZjFmXHU0ZjJhXHU1YzNlXHU3ZWFjXHU2NzJhXHU4NTFhXHU1NDczXHU3NTRmXHU4MGMz'@; put 'XHU1NTgyXHU5YjRmXHU0ZjRkXHU2ZTJkXHU4YzEzXHU1YzA5XHU2MTcwXHU1MzZiXHU3NjFmXHU2ZTI5XHU4NjhhXHU2NTg3XHU5NWZiXHU3ZWI5XHU1NDNiXHU3YTMzXHU3ZDBhXHU5NWVlXHU1NWUxXHU3ZmMxXHU3NGVlXHU2MzFkXHU4NzE3XHU2ZGExXHU3YTlkXHU2MjExXHU2NWExXHU1'@; put 'MzY3XHU2M2UxXHU2YzgzXHU1ZGViXHU1NDVjXHU5NGE4XHU0ZTRjXHU2YzYxXHU4YmVjXHU1YzRiXHU2NWUwXHU4MjljXHU2OGE3XHU1NDNlXHU1NDM0XHU2YmNiXHU2YjY2XHU0ZTk0XHU2MzQyXHU1MzQ4XHU4MjFlXHU0ZjBkXHU0ZmFlXHU1NzVlXHU2MjBhXHU5NmZlXHU2NjY0XHU3MjY5'@; put 'XHU1MmZmXHU1MmExXHU2MDlmXHU4YmVmXHU2NjE0XHU3MTk5XHU2NzkwXHU4OTdmXHU3ODUyXHU3N2ZkXHU2NjcwXHU1NjNiXHU1NDM4XHU5NTIxXHU3MjdhIl0sWyJjZjQwIiwiXHU4N2E1XHU4N2E2XHU4N2E3XHU4N2E5XHU4N2FhXHU4N2FlXHU4N2IwXHU4N2IxXHU4N2IyXHU4N2I0XHU4'@; put 'N2I2XHU4N2I3XHU4N2I4XHU4N2I5XHU4N2JiXHU4N2JjXHU4N2JlXHU4N2JmXHU4N2MxIiw0LCJcdTg3YzdcdTg3YzhcdTg3YzlcdTg3Y2MiLDQsIlx1ODdkNCIsNiwiXHU4N2RjXHU4N2RkXHU4N2RlXHU4N2RmXHU4N2UxXHU4N2UyXHU4N2UzXHU4N2U0XHU4N2U2XHU4N2U3XHU4N2U4XHU4'@; put 'N2U5XHU4N2ViXHU4N2VjXHU4N2VkXHU4N2VmIiw5XSxbImNmODAiLCJcdTg3ZmFcdTg3ZmJcdTg3ZmNcdTg3ZmRcdTg3ZmZcdTg4MDBcdTg4MDFcdTg4MDJcdTg4MDQiLDUsIlx1ODgwYiIsNywiXHU4ODE0XHU4ODE3XHU4ODE4XHU4ODE5XHU4ODFhXHU4ODFjIiw0LCJcdTg4MjNcdTdhMDBc'@; put 'dTYwNmZcdTVlMGNcdTYwODlcdTgxOWRcdTU5MTVcdTYwZGNcdTcxODRcdTcwZWZcdTZlYWFcdTZjNTBcdTcyODBcdTZhODRcdTg4YWRcdTVlMmRcdTRlNjBcdTVhYjNcdTU1OWNcdTk0ZTNcdTZkMTdcdTdjZmJcdTk2OTlcdTYyMGZcdTdlYzZcdTc3OGVcdTg2N2VcdTUzMjNcdTk3MWVcdThm'@; put 'OTZcdTY2ODdcdTVjZTFcdTRmYTBcdTcyZWRcdTRlMGJcdTUzYTZcdTU5MGZcdTU0MTNcdTYzODBcdTk1MjhcdTUxNDhcdTRlZDlcdTljOWNcdTdlYTRcdTU0YjhcdThkMjRcdTg4NTRcdTgyMzdcdTk1ZjJcdTZkOGVcdTVmMjZcdTVhY2NcdTY2M2VcdTk2NjlcdTczYjBcdTczMmVcdTUzYmZc'@; put 'dTgxN2FcdTk5ODVcdTdmYTFcdTViYWFcdTk2NzdcdTk2NTBcdTdlYmZcdTc2ZjhcdTUzYTJcdTk1NzZcdTk5OTlcdTdiYjFcdTg5NDRcdTZlNThcdTRlNjFcdTdmZDRcdTc5NjVcdThiZTZcdTYwZjNcdTU0Y2RcdTRlYWJcdTk4NzlcdTVkZjdcdTZhNjFcdTUwY2ZcdTU0MTFcdThjNjFcdTg0'@; put 'MjdcdTc4NWRcdTk3MDRcdTUyNGFcdTU0ZWVcdTU2YTNcdTk1MDBcdTZkODhcdTViYjVcdTZkYzZcdTY2NTMiXSxbImQwNDAiLCJcdTg4MjQiLDEzLCJcdTg4MzMiLDUsIlx1ODgzYVx1ODgzYlx1ODgzZFx1ODgzZVx1ODgzZlx1ODg0MVx1ODg0Mlx1ODg0M1x1ODg0NiIsNSwiXHU4ODRlIiw1'@; put 'LCJcdTg4NTVcdTg4NTZcdTg4NThcdTg4NWEiLDYsIlx1ODg2Nlx1ODg2N1x1ODg2YVx1ODg2ZFx1ODg2Zlx1ODg3MVx1ODg3M1x1ODg3NFx1ODg3NVx1ODg3Nlx1ODg3OFx1ODg3OVx1ODg3YSJdLFsiZDA4MCIsIlx1ODg3Ylx1ODg3Y1x1ODg4MFx1ODg4M1x1ODg4Nlx1ODg4N1x1ODg4OVx1'@; put 'ODg4YVx1ODg4Y1x1ODg4ZVx1ODg4Zlx1ODg5MFx1ODg5MVx1ODg5M1x1ODg5NFx1ODg5NVx1ODg5NyIsNCwiXHU4ODlkIiw0LCJcdTg4YTNcdTg4YTUiLDUsIlx1NWMwZlx1NWI1ZFx1NjgyMVx1ODA5Nlx1NTU3OFx1N2IxMVx1NjU0OFx1Njk1NFx1NGU5Ylx1NmI0N1x1ODc0ZVx1OTc4Ylx1'@; put 'NTM0Zlx1NjMxZlx1NjQzYVx1OTBhYVx1NjU5Y1x1ODBjMVx1OGMxMFx1NTE5OVx1NjhiMFx1NTM3OFx1ODdmOVx1NjFjOFx1NmNjNFx1NmNmYlx1OGMyMlx1NWM1MVx1ODVhYVx1ODJhZlx1OTUwY1x1NmIyM1x1OGY5Ylx1NjViMFx1NWZmYlx1NWZjM1x1NGZlMVx1ODg0NVx1NjYxZlx1ODE2'@; put 'NVx1NzMyOVx1NjBmYVx1NTE3NFx1NTIxMVx1NTc4Ylx1NWY2Mlx1OTBhMlx1ODg0Y1x1OTE5Mlx1NWU3OFx1Njc0Zlx1NjAyN1x1NTlkM1x1NTE0NFx1NTFmNlx1ODBmOFx1NTMwOFx1NmM3OVx1OTZjNFx1NzE4YVx1NGYxMVx1NGZlZVx1N2Y5ZVx1NjczZFx1NTVjNVx1OTUwOFx1NzljMFx1'@; put 'ODg5Nlx1N2VlM1x1NTg5Zlx1NjIwY1x1OTcwMFx1ODY1YVx1NTYxOFx1OTg3Ylx1NWY5MFx1OGJiOFx1ODRjNFx1OTE1N1x1NTNkOVx1NjVlZFx1NWU4Zlx1NzU1Y1x1NjA2NFx1N2Q2ZVx1NWE3Zlx1N2VlYVx1N2VlZFx1OGY2OVx1NTVhN1x1NWJhM1x1NjBhY1x1NjVjYlx1NzM4NCJdLFsi'@; put 'ZDE0MCIsIlx1ODhhY1x1ODhhZVx1ODhhZlx1ODhiMFx1ODhiMiIsNCwiXHU4OGI4XHU4OGI5XHU4OGJhXHU4OGJiXHU4OGJkXHU4OGJlXHU4OGJmXHU4OGMwXHU4OGMzXHU4OGM0XHU4OGM3XHU4OGM4XHU4OGNhXHU4OGNiXHU4OGNjXHU4OGNkXHU4OGNmXHU4OGQwXHU4OGQxXHU4OGQzXHU4'@; put 'OGQ2XHU4OGQ3XHU4OGRhIiw0LCJcdTg4ZTBcdTg4ZTFcdTg4ZTZcdTg4ZTdcdTg4ZTkiLDYsIlx1ODhmMlx1ODhmNVx1ODhmNlx1ODhmN1x1ODhmYVx1ODhmYlx1ODhmZFx1ODhmZlx1ODkwMFx1ODkwMVx1ODkwMyIsNV0sWyJkMTgwIiwiXHU4OTA5XHU4OTBiIiw0LCJcdTg5MTFcdTg5MTQi'@; put 'LDQsIlx1ODkxYyIsNCwiXHU4OTIyXHU4OTIzXHU4OTI0XHU4OTI2XHU4OTI3XHU4OTI4XHU4OTI5XHU4OTJjXHU4OTJkXHU4OTJlXHU4OTJmXHU4OTMxXHU4OTMyXHU4OTMzXHU4OTM1XHU4OTM3XHU5MDA5XHU3NjYzXHU3NzI5XHU3ZWRhXHU5Nzc0XHU4NTliXHU1YjY2XHU3YTc0XHU5NmVh'@; put 'XHU4ODQwXHU1MmNiXHU3MThmXHU1ZmFhXHU2NWVjXHU4YmUyXHU1YmZiXHU5YTZmXHU1ZGUxXHU2Yjg5XHU2YzViXHU4YmFkXHU4YmFmXHU5MDBhXHU4ZmM1XHU1MzhiXHU2MmJjXHU5ZTI2XHU5ZTJkXHU1NDQwXHU0ZTJiXHU4MmJkXHU3MjU5XHU4NjljXHU1ZDE2XHU4ODU5XHU2ZGFmXHU5'@; put 'NmM1XHU1NGQxXHU0ZTlhXHU4YmI2XHU3MTA5XHU1NGJkXHU5NjA5XHU3MGRmXHU2ZGY5XHU3NmQwXHU0ZTI1XHU3ODE0XHU4NzEyXHU1Y2E5XHU1ZWY2XHU4YTAwXHU5ODljXHU5NjBlXHU3MDhlXHU2Y2JmXHU1OTQ0XHU2M2E5XHU3NzNjXHU4ODRkXHU2ZjE0XHU4MjczXHU1ODMwXHU3MWQ1'@; put 'XHU1MzhjXHU3ODFhXHU5NmMxXHU1NTAxXHU1ZjY2XHU3MTMwXHU1YmI0XHU4YzFhXHU5YThjXHU2YjgzXHU1OTJlXHU5ZTJmXHU3OWU3XHU2NzY4XHU2MjZjXHU0ZjZmXHU3NWExXHU3ZjhhXHU2ZDBiXHU5NjMzXHU2YzI3XHU0ZWYwXHU3NWQyXHU1MTdiXHU2ODM3XHU2ZjNlXHU5MDgwXHU4'@; put 'MTcwXHU1OTk2XHU3NDc2Il0sWyJkMjQwIiwiXHU4OTM4Iiw4LCJcdTg5NDJcdTg5NDNcdTg5NDUiLDI0LCJcdTg5NjAiLDUsIlx1ODk2NyIsMTksIlx1ODk3YyJdLFsiZDI4MCIsIlx1ODk3ZFx1ODk3ZVx1ODk4MFx1ODk4Mlx1ODk4NFx1ODk4NVx1ODk4NyIsMjYsIlx1NjQ0N1x1NWMyN1x1'@; put 'OTA2NVx1N2E5MVx1OGMyM1x1NTlkYVx1NTRhY1x1ODIwMFx1ODM2Zlx1ODk4MVx1ODAwMFx1NjkzMFx1NTY0ZVx1ODAzNlx1NzIzN1x1OTFjZVx1NTFiNlx1NGU1Zlx1OTg3NVx1NjM5Nlx1NGUxYVx1NTNmNlx1NjZmM1x1ODE0Ylx1NTkxY1x1NmRiMlx1NGUwMFx1NThmOVx1NTMzYlx1NjNk'@; put 'Nlx1OTRmMVx1NGY5ZFx1NGYwYVx1ODg2M1x1OTg5MFx1NTkzN1x1OTA1N1x1NzlmYlx1NGVlYVx1ODBmMFx1NzU5MVx1NmM4Mlx1NWI5Y1x1NTllOFx1NWY1ZFx1NjkwNVx1ODY4MVx1NTAxYVx1NWRmMlx1NGU1OVx1NzdlM1x1NGVlNVx1ODI3YVx1NjI5MVx1NjYxM1x1OTA5MVx1NWM3OVx1'@; put 'NGViZlx1NWY3OVx1ODFjNlx1OTAzOFx1ODA4NFx1NzVhYlx1NGVhNlx1ODhkNFx1NjEwZlx1NmJjNVx1NWZjNlx1NGU0OVx1NzZjYVx1NmVhMlx1OGJlM1x1OGJhZVx1OGMwYVx1OGJkMVx1NWYwMlx1N2ZmY1x1N2ZjY1x1N2VjZVx1ODMzNVx1ODM2Ylx1NTZlMFx1NmJiN1x1OTdmM1x1OTYz'@; put 'NFx1NTlmYlx1NTQxZlx1OTRmNlx1NmRlYlx1NWJjNVx1OTk2ZVx1NWMzOVx1NWYxNVx1OTY5MCJdLFsiZDM0MCIsIlx1ODlhMiIsMzAsIlx1ODljM1x1ODljZFx1ODlkM1x1ODlkNFx1ODlkNVx1ODlkN1x1ODlkOFx1ODlkOVx1ODlkYlx1ODlkZFx1ODlkZlx1ODllMFx1ODllMVx1ODllMlx1'@; put 'ODllNFx1ODllN1x1ODllOFx1ODllOVx1ODllYVx1ODllY1x1ODllZFx1ODllZVx1ODlmMFx1ODlmMVx1ODlmMlx1ODlmNCIsNl0sWyJkMzgwIiwiXHU4OWZiIiw0LCJcdThhMDEiLDUsIlx1OGEwOCIsMjEsIlx1NTM3MFx1ODJmMVx1NmEzMVx1NWE3NFx1OWU3MFx1NWU5NFx1N2YyOFx1ODNi'@; put 'OVx1ODQyNFx1ODQyNVx1ODM2N1x1ODc0N1x1OGZjZVx1OGQ2Mlx1NzZjOFx1NWY3MVx1OTg5Nlx1Nzg2Y1x1NjYyMFx1NTRkZlx1NjJlNVx1NGY2M1x1ODFjM1x1NzVjOFx1NWViOFx1OTZjZFx1OGUwYVx1ODZmOVx1NTQ4Zlx1NmNmM1x1NmQ4Y1x1NmMzOFx1NjA3Zlx1NTJjN1x1NzUyOFx1'@; put 'NWU3ZFx1NGYxOFx1NjBhMFx1NWZlN1x1NWMyNFx1NzUzMVx1OTBhZVx1OTRjMFx1NzJiOVx1NmNiOVx1NmUzOFx1OTE0OVx1NjcwOVx1NTNjYlx1NTNmM1x1NGY1MVx1OTFjOVx1OGJmMVx1NTNjOFx1NWU3Y1x1OGZjMlx1NmRlNFx1NGU4ZVx1NzZjMlx1Njk4Nlx1ODY1ZVx1NjExYVx1ODIw'@; put 'Nlx1NGY1OVx1NGZkZVx1OTAzZVx1OWM3Y1x1NjEwOVx1NmUxZFx1NmUxNFx1OTY4NVx1NGU4OFx1NWEzMVx1OTZlOFx1NGUwZVx1NWM3Zlx1NzliOVx1NWI4N1x1OGJlZFx1N2ZiZFx1NzM4OVx1NTdkZlx1ODI4Ylx1OTBjMVx1NTQwMVx1OTA0N1x1NTViYlx1NWNlYVx1NWZhMVx1NjEwOFx1'@; put 'NmIzMlx1NzJmMVx1ODBiMlx1OGE4OSJdLFsiZDQ0MCIsIlx1OGExZSIsMzEsIlx1OGEzZiIsOCwiXHU4YTQ5IiwyMV0sWyJkNDgwIiwiXHU4YTVmIiwyNSwiXHU4YTdhIiw2LCJcdTZkNzRcdTViZDNcdTg4ZDVcdTk4ODRcdThjNmJcdTlhNmRcdTllMzNcdTZlMGFcdTUxYTRcdTUxNDNcdTU3'@; put 'YTNcdTg4ODFcdTUzOWZcdTYzZjRcdThmOTVcdTU2ZWRcdTU0NThcdTU3MDZcdTczM2ZcdTZlOTBcdTdmMThcdThmZGNcdTgyZDFcdTYxM2ZcdTYwMjhcdTk2NjJcdTY2ZjBcdTdlYTZcdThkOGFcdThkYzNcdTk0YTVcdTVjYjNcdTdjYTRcdTY3MDhcdTYwYTZcdTk2MDVcdTgwMThcdTRlOTFc'@; put 'dTkwZTdcdTUzMDBcdTk2NjhcdTUxNDFcdThmZDBcdTg1NzRcdTkxNWRcdTY2NTVcdTk3ZjVcdTViNTVcdTUzMWRcdTc4MzhcdTY3NDJcdTY4M2RcdTU0YzlcdTcwN2VcdTViYjBcdThmN2RcdTUxOGRcdTU3MjhcdTU0YjFcdTY1MTJcdTY2ODJcdThkNWVcdThkNDNcdTgxMGZcdTg0NmNcdTkw'@; put 'NmRcdTdjZGZcdTUxZmZcdTg1ZmJcdTY3YTNcdTY1ZTlcdTZmYTFcdTg2YTRcdThlODFcdTU2NmFcdTkwMjBcdTc2ODJcdTcwNzZcdTcxZTVcdThkMjNcdTYyZTlcdTUyMTlcdTZjZmRcdThkM2NcdTYwMGVcdTU4OWVcdTYxOGVcdTY2ZmVcdThkNjBcdTYyNGVcdTU1YjNcdTZlMjNcdTY3MmRc'@; put 'dThmNjciXSxbImQ1NDAiLCJcdThhODEiLDcsIlx1OGE4YiIsNywiXHU4YTk0Iiw0Nl0sWyJkNTgwIiwiXHU4YWMzIiwzMiwiXHU5NGUxXHU5NWY4XHU3NzI4XHU2ODA1XHU2OWE4XHU1NDhiXHU0ZTRkXHU3MGI4XHU4YmM4XHU2NDU4XHU2NThiXHU1Yjg1XHU3YTg0XHU1MDNhXHU1YmU4XHU3'@; put 'N2JiXHU2YmUxXHU4YTc5XHU3Yzk4XHU2Y2JlXHU3NmNmXHU2NWE5XHU4Zjk3XHU1ZDJkXHU1YzU1XHU4NjM4XHU2ODA4XHU1MzYwXHU2MjE4XHU3YWQ5XHU2ZTViXHU3ZWZkXHU2YTFmXHU3YWUwXHU1ZjcwXHU2ZjMzXHU1ZjIwXHU2MzhjXHU2ZGE4XHU2NzU2XHU0ZTA4XHU1ZTEwXHU4ZDI2'@; put 'XHU0ZWQ3XHU4MGMwXHU3NjM0XHU5NjljXHU2MmRiXHU2NjJkXHU2MjdlXHU2Y2JjXHU4ZDc1XHU3MTY3XHU3ZjY5XHU1MTQ2XHU4MDg3XHU1M2VjXHU5MDZlXHU2Mjk4XHU1NGYyXHU4NmYwXHU4Zjk5XHU4MDA1XHU5NTE3XHU4NTE3XHU4ZmQ5XHU2ZDU5XHU3M2NkXHU2NTlmXHU3NzFmXHU3'@; put 'NTA0XHU3ODI3XHU4MWZiXHU4ZDFlXHU5NDg4XHU0ZmE2XHU2Nzk1XHU3NWI5XHU4YmNhXHU5NzA3XHU2MzJmXHU5NTQ3XHU5NjM1XHU4NGI4XHU2MzIzXHU3NzQxXHU1ZjgxXHU3MmYwXHU0ZTg5XHU2MDE0XHU2NTc0XHU2MmVmXHU2YjYzXHU2NTNmIl0sWyJkNjQwIiwiXHU4YWU0IiwzNCwi'@; put 'XHU4YjA4IiwyN10sWyJkNjgwIiwiXHU4YjI0XHU4YjI1XHU4YjI3IiwzMCwiXHU1ZTI3XHU3NWM3XHU5MGQxXHU4YmMxXHU4MjlkXHU2NzlkXHU2NTJmXHU1NDMxXHU4NzE4XHU3N2U1XHU4MGEyXHU4MTAyXHU2YzQxXHU0ZTRiXHU3ZWM3XHU4MDRjXHU3NmY0XHU2OTBkXHU2Yjk2XHU2MjY3'@; put 'XHU1MDNjXHU0Zjg0XHU1NzQwXHU2MzA3XHU2YjYyXHU4ZGJlXHU1M2VhXHU2NWU4XHU3ZWI4XHU1ZmQ3XHU2MzFhXHU2M2I3XHU4MWYzXHU4MWY0XHU3ZjZlXHU1ZTFjXHU1Y2Q5XHU1MjM2XHU2NjdhXHU3OWU5XHU3YTFhXHU4ZDI4XHU3MDk5XHU3NWQ0XHU2ZWRlXHU2Y2JiXHU3YTkyXHU0'@; put 'ZTJkXHU3NmM1XHU1ZmUwXHU5NDlmXHU4ODc3XHU3ZWM4XHU3OWNkXHU4MGJmXHU5MWNkXHU0ZWYyXHU0ZjE3XHU4MjFmXHU1NDY4XHU1ZGRlXHU2ZDMyXHU4YmNjXHU3Y2E1XHU4Zjc0XHU4MDk4XHU1ZTFhXHU1NDkyXHU3NmIxXHU1Yjk5XHU2NjNjXHU5YWE0XHU3M2UwXHU2ODJhXHU4NmRi'@; put 'XHU2NzMxXHU3MzJhXHU4YmY4XHU4YmRiXHU5MDEwXHU3YWY5XHU3MGRiXHU3MTZlXHU2MmM0XHU3N2E5XHU1NjMxXHU0ZTNiXHU4NDU3XHU2N2YxXHU1MmE5XHU4NmMwXHU4ZDJlXHU5NGY4XHU3YjUxIl0sWyJkNzQwIiwiXHU4YjQ2IiwzMSwiXHU4YjY3Iiw0LCJcdThiNmQiLDI1XSxbImQ3'@; put 'ODAiLCJcdThiODciLDI0LCJcdThiYWNcdThiYjFcdThiYmJcdThiYzdcdThiZDBcdThiZWFcdThjMDlcdThjMWVcdTRmNGZcdTZjZThcdTc5NWRcdTlhN2JcdTYyOTNcdTcyMmFcdTYyZmRcdTRlMTNcdTc4MTZcdThmNmNcdTY0YjBcdThkNWFcdTdiYzZcdTY4NjlcdTVlODRcdTg4YzVcdTU5'@; put 'ODZcdTY0OWVcdTU4ZWVcdTcyYjZcdTY5MGVcdTk1MjVcdThmZmRcdThkNThcdTU3NjBcdTdmMDBcdThjMDZcdTUxYzZcdTYzNDlcdTYyZDlcdTUzNTNcdTY4NGNcdTc0MjJcdTgzMDFcdTkxNGNcdTU1NDRcdTc3NDBcdTcwN2NcdTZkNGFcdTUxNzlcdTU0YThcdThkNDRcdTU5ZmZcdTZlY2Jc'@; put 'dTZkYzRcdTViNWNcdTdkMmJcdTRlZDRcdTdjN2RcdTZlZDNcdTViNTBcdTgxZWFcdTZlMGRcdTViNTdcdTliMDNcdTY4ZDVcdThlMmFcdTViOTdcdTdlZmNcdTYwM2JcdTdlYjVcdTkwYjlcdThkNzBcdTU5NGZcdTYzY2RcdTc5ZGZcdThkYjNcdTUzNTJcdTY1Y2ZcdTc5NTZcdThiYzVcdTk2'@; put 'M2JcdTdlYzRcdTk0YmJcdTdlODJcdTU2MzRcdTkxODlcdTY3MDBcdTdmNmFcdTVjMGFcdTkwNzVcdTY2MjhcdTVkZTZcdTRmNTBcdTY3ZGVcdTUwNWFcdTRmNWNcdTU3NTBcdTVlYTciXSxbImQ4NDAiLCJcdThjMzgiLDgsIlx1OGM0Mlx1OGM0M1x1OGM0NFx1OGM0NVx1OGM0OFx1OGM0YVx1'@; put 'OGM0Ylx1OGM0ZCIsNywiXHU4YzU2XHU4YzU3XHU4YzU4XHU4YzU5XHU4YzViIiw1LCJcdThjNjMiLDYsIlx1OGM2YyIsNiwiXHU4Yzc0XHU4Yzc1XHU4Yzc2XHU4Yzc3XHU4YzdiIiw2LCJcdThjODNcdThjODRcdThjODZcdThjODciXSxbImQ4ODAiLCJcdThjODhcdThjOGJcdThjOGQiLDYs'@; put 'Ilx1OGM5NVx1OGM5Nlx1OGM5N1x1OGM5OSIsMjAsIlx1NGU4ZFx1NGUwY1x1NTE0MFx1NGUxMFx1NWVmZlx1NTM0NVx1NGUxNVx1NGU5OFx1NGUxZVx1OWIzMlx1NWI2Y1x1NTY2OVx1NGUyOFx1NzliYVx1NGUzZlx1NTMxNVx1NGU0N1x1NTkyZFx1NzIzYlx1NTM2ZVx1NmMxMFx1NTZkZlx1'@; put 'ODBlNFx1OTk5N1x1NmJkM1x1Nzc3ZVx1OWYxN1x1NGUzNlx1NGU5Zlx1OWYxMFx1NGU1Y1x1NGU2OVx1NGU5M1x1ODI4OFx1NWI1Ylx1NTU2Y1x1NTYwZlx1NGVjNFx1NTM4ZFx1NTM5ZFx1NTNhM1x1NTNhNVx1NTNhZVx1OTc2NVx1OGQ1ZFx1NTMxYVx1NTNmNVx1NTMyNlx1NTMyZVx1NTMz'@; put 'ZVx1OGQ1Y1x1NTM2Nlx1NTM2M1x1NTIwMlx1NTIwOFx1NTIwZVx1NTIyZFx1NTIzM1x1NTIzZlx1NTI0MFx1NTI0Y1x1NTI1ZVx1NTI2MVx1NTI1Y1x1ODRhZlx1NTI3ZFx1NTI4Mlx1NTI4MVx1NTI5MFx1NTI5M1x1NTE4Mlx1N2Y1NFx1NGViYlx1NGVjM1x1NGVjOVx1NGVjMlx1NGVlOFx1'@; put 'NGVlMVx1NGVlYlx1NGVkZVx1NGYxYlx1NGVmM1x1NGYyMlx1NGY2NFx1NGVmNVx1NGYyNVx1NGYyN1x1NGYwOVx1NGYyYlx1NGY1ZVx1NGY2N1x1NjUzOFx1NGY1YVx1NGY1ZCJdLFsiZDk0MCIsIlx1OGNhZSIsNjJdLFsiZDk4MCIsIlx1OGNlZCIsMzIsIlx1NGY1Zlx1NGY1N1x1NGYzMlx1'@; put 'NGYzZFx1NGY3Nlx1NGY3NFx1NGY5MVx1NGY4OVx1NGY4M1x1NGY4Zlx1NGY3ZVx1NGY3Ylx1NGZhYVx1NGY3Y1x1NGZhY1x1NGY5NFx1NGZlNlx1NGZlOFx1NGZlYVx1NGZjNVx1NGZkYVx1NGZlM1x1NGZkY1x1NGZkMVx1NGZkZlx1NGZmOFx1NTAyOVx1NTA0Y1x1NGZmM1x1NTAyY1x1NTAw'@; put 'Zlx1NTAyZVx1NTAyZFx1NGZmZVx1NTAxY1x1NTAwY1x1NTAyNVx1NTAyOFx1NTA3ZVx1NTA0M1x1NTA1NVx1NTA0OFx1NTA0ZVx1NTA2Y1x1NTA3Ylx1NTBhNVx1NTBhN1x1NTBhOVx1NTBiYVx1NTBkNlx1NTEwNlx1NTBlZFx1NTBlY1x1NTBlNlx1NTBlZVx1NTEwN1x1NTEwYlx1NGVkZFx1'@; put 'NmMzZFx1NGY1OFx1NGY2NVx1NGZjZVx1OWZhMFx1NmM0Nlx1N2M3NFx1NTE2ZVx1NWRmZFx1OWVjOVx1OTk5OFx1NTE4MVx1NTkxNFx1NTJmOVx1NTMwZFx1OGEwN1x1NTMxMFx1NTFlYlx1NTkxOVx1NTE1NVx1NGVhMFx1NTE1Nlx1NGViM1x1ODg2ZVx1ODhhNFx1NGViNVx1ODExNFx1ODhk'@; put 'Mlx1Nzk4MFx1NWIzNFx1ODgwM1x1N2ZiOFx1NTFhYlx1NTFiMVx1NTFiZFx1NTFiYyJdLFsiZGE0MCIsIlx1OGQwZSIsMTQsIlx1OGQyMFx1OGQ1MVx1OGQ1Mlx1OGQ1N1x1OGQ1Zlx1OGQ2NVx1OGQ2OFx1OGQ2OVx1OGQ2YVx1OGQ2Y1x1OGQ2ZVx1OGQ2Zlx1OGQ3MVx1OGQ3Mlx1OGQ3OCIs'@; put 'OCwiXHU4ZDgyXHU4ZDgzXHU4ZDg2XHU4ZDg3XHU4ZDg4XHU4ZDg5XHU4ZDhjIiw0LCJcdThkOTJcdThkOTNcdThkOTUiLDksIlx1OGRhMFx1OGRhMSJdLFsiZGE4MCIsIlx1OGRhMlx1OGRhNCIsMTIsIlx1OGRiMlx1OGRiNlx1OGRiN1x1OGRiOVx1OGRiYlx1OGRiZFx1OGRjMFx1OGRjMVx1'@; put 'OGRjMlx1OGRjNVx1OGRjN1x1OGRjOFx1OGRjOVx1OGRjYVx1OGRjZFx1OGRkMFx1OGRkMlx1OGRkM1x1OGRkNFx1NTFjN1x1NTE5Nlx1NTFhMlx1NTFhNVx1OGJhMFx1OGJhNlx1OGJhN1x1OGJhYVx1OGJiNFx1OGJiNVx1OGJiN1x1OGJjMlx1OGJjM1x1OGJjYlx1OGJjZlx1OGJjZVx1OGJk'@; put 'Mlx1OGJkM1x1OGJkNFx1OGJkNlx1OGJkOFx1OGJkOVx1OGJkY1x1OGJkZlx1OGJlMFx1OGJlNFx1OGJlOFx1OGJlOVx1OGJlZVx1OGJmMFx1OGJmM1x1OGJmNlx1OGJmOVx1OGJmY1x1OGJmZlx1OGMwMFx1OGMwMlx1OGMwNFx1OGMwN1x1OGMwY1x1OGMwZlx1OGMxMVx1OGMxMlx1OGMxNFx1'@; put 'OGMxNVx1OGMxNlx1OGMxOVx1OGMxYlx1OGMxOFx1OGMxZFx1OGMxZlx1OGMyMFx1OGMyMVx1OGMyNVx1OGMyN1x1OGMyYVx1OGMyYlx1OGMyZVx1OGMyZlx1OGMzMlx1OGMzM1x1OGMzNVx1OGMzNlx1NTM2OVx1NTM3YVx1OTYxZFx1OTYyMlx1OTYyMVx1OTYzMVx1OTYyYVx1OTYzZFx1OTYz'@; put 'Y1x1OTY0Mlx1OTY0OVx1OTY1NFx1OTY1Zlx1OTY2N1x1OTY2Y1x1OTY3Mlx1OTY3NFx1OTY4OFx1OTY4ZFx1OTY5N1x1OTZiMFx1OTA5N1x1OTA5Ylx1OTA5ZFx1OTA5OVx1OTBhY1x1OTBhMVx1OTBiNFx1OTBiM1x1OTBiNlx1OTBiYSJdLFsiZGI0MCIsIlx1OGRkNVx1OGRkOFx1OGRkOVx1'@; put 'OGRkY1x1OGRlMFx1OGRlMVx1OGRlMlx1OGRlNVx1OGRlNlx1OGRlN1x1OGRlOVx1OGRlZFx1OGRlZVx1OGRmMFx1OGRmMVx1OGRmMlx1OGRmNFx1OGRmNlx1OGRmY1x1OGRmZSIsNiwiXHU4ZTA2XHU4ZTA3XHU4ZTA4XHU4ZTBiXHU4ZTBkXHU4ZTBlXHU4ZTEwXHU4ZTExXHU4ZTEyXHU4ZTEz'@; put 'XHU4ZTE1Iiw3LCJcdThlMjBcdThlMjFcdThlMjQiLDQsIlx1OGUyYlx1OGUyZFx1OGUzMFx1OGUzMlx1OGUzM1x1OGUzNFx1OGUzNlx1OGUzN1x1OGUzOFx1OGUzYlx1OGUzY1x1OGUzZSJdLFsiZGI4MCIsIlx1OGUzZlx1OGU0M1x1OGU0NVx1OGU0Nlx1OGU0YyIsNCwiXHU4ZTUzIiw1LCJc'@; put 'dThlNWEiLDExLCJcdThlNjdcdThlNjhcdThlNmFcdThlNmJcdThlNmVcdThlNzFcdTkwYjhcdTkwYjBcdTkwY2ZcdTkwYzVcdTkwYmVcdTkwZDBcdTkwYzRcdTkwYzdcdTkwZDNcdTkwZTZcdTkwZTJcdTkwZGNcdTkwZDdcdTkwZGJcdTkwZWJcdTkwZWZcdTkwZmVcdTkxMDRcdTkxMjJcdTkx'@; put 'MWVcdTkxMjNcdTkxMzFcdTkxMmZcdTkxMzlcdTkxNDNcdTkxNDZcdTUyMGRcdTU5NDJcdTUyYTJcdTUyYWNcdTUyYWRcdTUyYmVcdTU0ZmZcdTUyZDBcdTUyZDZcdTUyZjBcdTUzZGZcdTcxZWVcdTc3Y2RcdTVlZjRcdTUxZjVcdTUxZmNcdTliMmZcdTUzYjZcdTVmMDFcdTc1NWFcdTVkZWZc'@; put 'dTU3NGNcdTU3YTlcdTU3YTFcdTU4N2VcdTU4YmNcdTU4YzVcdTU4ZDFcdTU3MjlcdTU3MmNcdTU3MmFcdTU3MzNcdTU3MzlcdTU3MmVcdTU3MmZcdTU3NWNcdTU3M2JcdTU3NDJcdTU3NjlcdTU3ODVcdTU3NmJcdTU3ODZcdTU3N2NcdTU3N2JcdTU3NjhcdTU3NmRcdTU3NzZcdTU3NzNcdTU3'@; put 'YWRcdTU3YTRcdTU3OGNcdTU3YjJcdTU3Y2ZcdTU3YTdcdTU3YjRcdTU3OTNcdTU3YTBcdTU3ZDVcdTU3ZDhcdTU3ZGFcdTU3ZDlcdTU3ZDJcdTU3YjhcdTU3ZjRcdTU3ZWZcdTU3ZjhcdTU3ZTRcdTU3ZGQiXSxbImRjNDAiLCJcdThlNzNcdThlNzVcdThlNzciLDQsIlx1OGU3ZFx1OGU3ZVx1'@; put 'OGU4MFx1OGU4Mlx1OGU4M1x1OGU4NFx1OGU4Nlx1OGU4OCIsNiwiXHU4ZTkxXHU4ZTkyXHU4ZTkzXHU4ZTk1Iiw2LCJcdThlOWRcdThlOWYiLDExLCJcdThlYWRcdThlYWVcdThlYjBcdThlYjFcdThlYjMiLDYsIlx1OGViYiIsN10sWyJkYzgwIiwiXHU4ZWMzIiwxMCwiXHU4ZWNmIiwyMSwi'@; put 'XHU1ODBiXHU1ODBkXHU1N2ZkXHU1N2VkXHU1ODAwXHU1ODFlXHU1ODE5XHU1ODQ0XHU1ODIwXHU1ODY1XHU1ODZjXHU1ODgxXHU1ODg5XHU1ODlhXHU1ODgwXHU5OWE4XHU5ZjE5XHU2MWZmXHU4Mjc5XHU4MjdkXHU4MjdmXHU4MjhmXHU4MjhhXHU4MmE4XHU4Mjg0XHU4MjhlXHU4MjkxXHU4'@; put 'Mjk3XHU4Mjk5XHU4MmFiXHU4MmI4XHU4MmJlXHU4MmIwXHU4MmM4XHU4MmNhXHU4MmUzXHU4Mjk4XHU4MmI3XHU4MmFlXHU4MmNiXHU4MmNjXHU4MmMxXHU4MmE5XHU4MmI0XHU4MmExXHU4MmFhXHU4MjlmXHU4MmM0XHU4MmNlXHU4MmE0XHU4MmUxXHU4MzA5XHU4MmY3XHU4MmU0XHU4MzBm'@; put 'XHU4MzA3XHU4MmRjXHU4MmY0XHU4MmQyXHU4MmQ4XHU4MzBjXHU4MmZiXHU4MmQzXHU4MzExXHU4MzFhXHU4MzA2XHU4MzE0XHU4MzE1XHU4MmUwXHU4MmQ1XHU4MzFjXHU4MzUxXHU4MzViXHU4MzVjXHU4MzA4XHU4MzkyXHU4MzNjXHU4MzM0XHU4MzMxXHU4MzliXHU4MzVlXHU4MzJmXHU4'@; put 'MzRmXHU4MzQ3XHU4MzQzXHU4MzVmXHU4MzQwXHU4MzE3XHU4MzYwXHU4MzJkXHU4MzNhXHU4MzMzXHU4MzY2XHU4MzY1Il0sWyJkZDQwIiwiXHU4ZWU1Iiw2Ml0sWyJkZDgwIiwiXHU4ZjI0IiwzMiwiXHU4MzY4XHU4MzFiXHU4MzY5XHU4MzZjXHU4MzZhXHU4MzZkXHU4MzZlXHU4M2IwXHU4'@; put 'Mzc4XHU4M2IzXHU4M2I0XHU4M2EwXHU4M2FhXHU4MzkzXHU4MzljXHU4Mzg1XHU4MzdjXHU4M2I2XHU4M2E5XHU4MzdkXHU4M2I4XHU4MzdiXHU4Mzk4XHU4MzllXHU4M2E4XHU4M2JhXHU4M2JjXHU4M2MxXHU4NDAxXHU4M2U1XHU4M2Q4XHU1ODA3XHU4NDE4XHU4NDBiXHU4M2RkXHU4M2Zk'@; put 'XHU4M2Q2XHU4NDFjXHU4NDM4XHU4NDExXHU4NDA2XHU4M2Q0XHU4M2RmXHU4NDBmXHU4NDAzXHU4M2Y4XHU4M2Y5XHU4M2VhXHU4M2M1XHU4M2MwXHU4NDI2XHU4M2YwXHU4M2UxXHU4NDVjXHU4NDUxXHU4NDVhXHU4NDU5XHU4NDczXHU4NDg3XHU4NDg4XHU4NDdhXHU4NDg5XHU4NDc4XHU4'@; put 'NDNjXHU4NDQ2XHU4NDY5XHU4NDc2XHU4NDhjXHU4NDhlXHU4NDMxXHU4NDZkXHU4NGMxXHU4NGNkXHU4NGQwXHU4NGU2XHU4NGJkXHU4NGQzXHU4NGNhXHU4NGJmXHU4NGJhXHU4NGUwXHU4NGExXHU4NGI5XHU4NGI0XHU4NDk3XHU4NGU1XHU4NGUzXHU4NTBjXHU3NTBkXHU4NTM4XHU4NGYw'@; put 'XHU4NTM5XHU4NTFmXHU4NTNhIl0sWyJkZTQwIiwiXHU4ZjQ1IiwzMiwiXHU4ZjZhXHU4ZjgwXHU4ZjhjXHU4ZjkyXHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmEyXHU4ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmE3XHU4ZmFhXHU4ZmFjXHU4ZmFkXHU4ZmFlXHU4ZmFmXHU4ZmIyXHU4ZmIzXHU4ZmI0XHU4'@; put 'ZmI1XHU4ZmI3XHU4ZmI4XHU4ZmJhXHU4ZmJiXHU4ZmJjXHU4ZmJmXHU4ZmMwXHU4ZmMzXHU4ZmM2Il0sWyJkZTgwIiwiXHU4ZmM5Iiw0LCJcdThmY2ZcdThmZDJcdThmZDZcdThmZDdcdThmZGFcdThmZTBcdThmZTFcdThmZTNcdThmZTdcdThmZWNcdThmZWZcdThmZjFcdThmZjJcdThmZjRc'@; put 'dThmZjVcdThmZjZcdThmZmFcdThmZmJcdThmZmNcdThmZmVcdThmZmZcdTkwMDdcdTkwMDhcdTkwMGNcdTkwMGVcdTkwMTNcdTkwMTVcdTkwMThcdTg1NTZcdTg1M2JcdTg0ZmZcdTg0ZmNcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjRcdTg1NWVcdTg1N2FcdTc3YTJcdTg1NDNcdTg1NzJcdTg1'@; put 'N2JcdTg1YTRcdTg1YThcdTg1ODdcdTg1OGZcdTg1NzlcdTg1YWVcdTg1OWNcdTg1ODVcdTg1YjlcdTg1YjdcdTg1YjBcdTg1ZDNcdTg1YzFcdTg1ZGNcdTg1ZmZcdTg2MjdcdTg2MDVcdTg2MjlcdTg2MTZcdTg2M2NcdTVlZmVcdTVmMDhcdTU5M2NcdTU5NDFcdTgwMzdcdTU5NTVcdTU5NWFc'@; put 'dTU5NThcdTUzMGZcdTVjMjJcdTVjMjVcdTVjMmNcdTVjMzRcdTYyNGNcdTYyNmFcdTYyOWZcdTYyYmJcdTYyY2FcdTYyZGFcdTYyZDdcdTYyZWVcdTYzMjJcdTYyZjZcdTYzMzlcdTYzNGJcdTYzNDNcdTYzYWRcdTYzZjZcdTYzNzFcdTYzN2FcdTYzOGVcdTYzYjRcdTYzNmRcdTYzYWNcdTYz'@; put 'OGFcdTYzNjlcdTYzYWVcdTYzYmNcdTYzZjJcdTYzZjhcdTYzZTBcdTYzZmZcdTYzYzRcdTYzZGVcdTYzY2VcdTY0NTJcdTYzYzZcdTYzYmVcdTY0NDVcdTY0NDFcdTY0MGJcdTY0MWJcdTY0MjBcdTY0MGNcdTY0MjZcdTY0MjFcdTY0NWVcdTY0ODRcdTY0NmRcdTY0OTYiXSxbImRmNDAiLCJc'@; put 'dTkwMTlcdTkwMWNcdTkwMjNcdTkwMjRcdTkwMjVcdTkwMjciLDUsIlx1OTAzMCIsNCwiXHU5MDM3XHU5MDM5XHU5MDNhXHU5MDNkXHU5MDNmXHU5MDQwXHU5MDQzXHU5MDQ1XHU5MDQ2XHU5MDQ4Iiw0LCJcdTkwNGVcdTkwNTRcdTkwNTVcdTkwNTZcdTkwNTlcdTkwNWFcdTkwNWMiLDUsIlx1'@; put 'OTA2NFx1OTA2Nlx1OTA2N1x1OTA2OVx1OTA2YVx1OTA2Ylx1OTA2Y1x1OTA2ZiIsNCwiXHU5MDc2Iiw2LCJcdTkwN2VcdTkwODEiXSxbImRmODAiLCJcdTkwODRcdTkwODVcdTkwODZcdTkwODdcdTkwODlcdTkwOGFcdTkwOGMiLDQsIlx1OTA5Mlx1OTA5NFx1OTA5Nlx1OTA5OFx1OTA5YVx1'@; put 'OTA5Y1x1OTA5ZVx1OTA5Zlx1OTBhMFx1OTBhNFx1OTBhNVx1OTBhN1x1OTBhOFx1OTBhOVx1OTBhYlx1OTBhZFx1OTBiMlx1OTBiN1x1OTBiY1x1OTBiZFx1OTBiZlx1OTBjMFx1NjQ3YVx1NjRiN1x1NjRiOFx1NjQ5OVx1NjRiYVx1NjRjMFx1NjRkMFx1NjRkN1x1NjRlNFx1NjRlMlx1NjUw'@; put 'OVx1NjUyNVx1NjUyZVx1NWYwYlx1NWZkMlx1NzUxOVx1NWYxMVx1NTM1Zlx1NTNmMVx1NTNmZFx1NTNlOVx1NTNlOFx1NTNmYlx1NTQxMlx1NTQxNlx1NTQwNlx1NTQ0Ylx1NTQ1Mlx1NTQ1M1x1NTQ1NFx1NTQ1Nlx1NTQ0M1x1NTQyMVx1NTQ1N1x1NTQ1OVx1NTQyM1x1NTQzMlx1NTQ4Mlx1'@; put 'NTQ5NFx1NTQ3N1x1NTQ3MVx1NTQ2NFx1NTQ5YVx1NTQ5Ylx1NTQ4NFx1NTQ3Nlx1NTQ2Nlx1NTQ5ZFx1NTRkMFx1NTRhZFx1NTRjMlx1NTRiNFx1NTRkMlx1NTRhN1x1NTRhNlx1NTRkM1x1NTRkNFx1NTQ3Mlx1NTRhM1x1NTRkNVx1NTRiYlx1NTRiZlx1NTRjY1x1NTRkOVx1NTRkYVx1NTRk'@; put 'Y1x1NTRhOVx1NTRhYVx1NTRhNFx1NTRkZFx1NTRjZlx1NTRkZVx1NTUxYlx1NTRlN1x1NTUyMFx1NTRmZFx1NTUxNFx1NTRmM1x1NTUyMlx1NTUyM1x1NTUwZlx1NTUxMVx1NTUyN1x1NTUyYVx1NTU2N1x1NTU4Zlx1NTViNVx1NTU0OVx1NTU2ZFx1NTU0MVx1NTU1NVx1NTUzZlx1NTU1MFx1'@; put 'NTUzYyJdLFsiZTA0MCIsIlx1OTBjMlx1OTBjM1x1OTBjNlx1OTBjOFx1OTBjOVx1OTBjYlx1OTBjY1x1OTBjZFx1OTBkMlx1OTBkNFx1OTBkNVx1OTBkNlx1OTBkOFx1OTBkOVx1OTBkYVx1OTBkZVx1OTBkZlx1OTBlMFx1OTBlM1x1OTBlNFx1OTBlNVx1OTBlOVx1OTBlYVx1OTBlY1x1OTBl'@; put 'ZVx1OTBmMFx1OTBmMVx1OTBmMlx1OTBmM1x1OTBmNVx1OTBmNlx1OTBmN1x1OTBmOVx1OTBmYVx1OTBmYlx1OTBmY1x1OTBmZlx1OTEwMFx1OTEwMVx1OTEwM1x1OTEwNSIsMTksIlx1OTExYVx1OTExYlx1OTExYyJdLFsiZTA4MCIsIlx1OTExZFx1OTExZlx1OTEyMFx1OTEyMVx1OTEyNCIs'@; put 'MTAsIlx1OTEzMFx1OTEzMiIsNiwiXHU5MTNhIiw4LCJcdTkxNDRcdTU1MzdcdTU1NTZcdTU1NzVcdTU1NzZcdTU1NzdcdTU1MzNcdTU1MzBcdTU1NWNcdTU1OGJcdTU1ZDJcdTU1ODNcdTU1YjFcdTU1YjlcdTU1ODhcdTU1ODFcdTU1OWZcdTU1N2VcdTU1ZDZcdTU1OTFcdTU1N2JcdTU1ZGZc'@; put 'dTU1YmRcdTU1YmVcdTU1OTRcdTU1OTlcdTU1ZWFcdTU1ZjdcdTU1YzlcdTU2MWZcdTU1ZDFcdTU1ZWJcdTU1ZWNcdTU1ZDRcdTU1ZTZcdTU1ZGRcdTU1YzRcdTU1ZWZcdTU1ZTVcdTU1ZjJcdTU1ZjNcdTU1Y2NcdTU1Y2RcdTU1ZThcdTU1ZjVcdTU1ZTRcdThmOTRcdTU2MWVcdTU2MDhcdTU2'@; put 'MGNcdTU2MDFcdTU2MjRcdTU2MjNcdTU1ZmVcdTU2MDBcdTU2MjdcdTU2MmRcdTU2NThcdTU2MzlcdTU2NTdcdTU2MmNcdTU2NGRcdTU2NjJcdTU2NTlcdTU2NWNcdTU2NGNcdTU2NTRcdTU2ODZcdTU2NjRcdTU2NzFcdTU2NmJcdTU2N2JcdTU2N2NcdTU2ODVcdTU2OTNcdTU2YWZcdTU2ZDRc'@; put 'dTU2ZDdcdTU2ZGRcdTU2ZTFcdTU2ZjVcdTU2ZWJcdTU2ZjlcdTU2ZmZcdTU3MDRcdTU3MGFcdTU3MDlcdTU3MWNcdTVlMGZcdTVlMTlcdTVlMTRcdTVlMTFcdTVlMzFcdTVlM2JcdTVlM2MiXSxbImUxNDAiLCJcdTkxNDVcdTkxNDdcdTkxNDhcdTkxNTFcdTkxNTNcdTkxNTRcdTkxNTVcdTkx'@; put 'NTZcdTkxNThcdTkxNTlcdTkxNWJcdTkxNWNcdTkxNWZcdTkxNjBcdTkxNjZcdTkxNjdcdTkxNjhcdTkxNmJcdTkxNmRcdTkxNzNcdTkxN2FcdTkxN2JcdTkxN2NcdTkxODAiLDQsIlx1OTE4Nlx1OTE4OFx1OTE4YVx1OTE4ZVx1OTE4Zlx1OTE5MyIsNiwiXHU5MTljIiw1LCJcdTkxYTQiLDUs'@; put 'Ilx1OTFhYlx1OTFhY1x1OTFiMFx1OTFiMVx1OTFiMlx1OTFiM1x1OTFiNlx1OTFiN1x1OTFiOFx1OTFiOVx1OTFiYiJdLFsiZTE4MCIsIlx1OTFiYyIsMTAsIlx1OTFjOFx1OTFjYlx1OTFkMFx1OTFkMiIsOSwiXHU5MWRkIiw4LCJcdTVlMzdcdTVlNDRcdTVlNTRcdTVlNWJcdTVlNWVcdTVl'@; put 'NjFcdTVjOGNcdTVjN2FcdTVjOGRcdTVjOTBcdTVjOTZcdTVjODhcdTVjOThcdTVjOTlcdTVjOTFcdTVjOWFcdTVjOWNcdTVjYjVcdTVjYTJcdTVjYmRcdTVjYWNcdTVjYWJcdTVjYjFcdTVjYTNcdTVjYzFcdTVjYjdcdTVjYzRcdTVjZDJcdTVjZTRcdTVjY2JcdTVjZTVcdTVkMDJcdTVkMDNc'@; put 'dTVkMjdcdTVkMjZcdTVkMmVcdTVkMjRcdTVkMWVcdTVkMDZcdTVkMWJcdTVkNThcdTVkM2VcdTVkMzRcdTVkM2RcdTVkNmNcdTVkNWJcdTVkNmZcdTVkNWRcdTVkNmJcdTVkNGJcdTVkNGFcdTVkNjlcdTVkNzRcdTVkODJcdTVkOTlcdTVkOWRcdThjNzNcdTVkYjdcdTVkYzVcdTVmNzNcdTVm'@; put 'NzdcdTVmODJcdTVmODdcdTVmODlcdTVmOGNcdTVmOTVcdTVmOTlcdTVmOWNcdTVmYThcdTVmYWRcdTVmYjVcdTVmYmNcdTg4NjJcdTVmNjFcdTcyYWRcdTcyYjBcdTcyYjRcdTcyYjdcdTcyYjhcdTcyYzNcdTcyYzFcdTcyY2VcdTcyY2RcdTcyZDJcdTcyZThcdTcyZWZcdTcyZTlcdTcyZjJc'@; put 'dTcyZjRcdTcyZjdcdTczMDFcdTcyZjNcdTczMDNcdTcyZmEiXSxbImUyNDAiLCJcdTkxZTYiLDYyXSxbImUyODAiLCJcdTkyMjUiLDMyLCJcdTcyZmJcdTczMTdcdTczMTNcdTczMjFcdTczMGFcdTczMWVcdTczMWRcdTczMTVcdTczMjJcdTczMzlcdTczMjVcdTczMmNcdTczMzhcdTczMzFc'@; put 'dTczNTBcdTczNGRcdTczNTdcdTczNjBcdTczNmNcdTczNmZcdTczN2VcdTgyMWJcdTU5MjVcdTk4ZTdcdTU5MjRcdTU5MDJcdTk5NjNcdTk5NjciLDUsIlx1OTk3NFx1OTk3N1x1OTk3ZFx1OTk4MFx1OTk4NFx1OTk4N1x1OTk4YVx1OTk4ZFx1OTk5MFx1OTk5MVx1OTk5M1x1OTk5NFx1OTk5'@; put 'NVx1NWU4MFx1NWU5MVx1NWU4Ylx1NWU5Nlx1NWVhNVx1NWVhMFx1NWViOVx1NWViNVx1NWViZVx1NWViM1x1OGQ1M1x1NWVkMlx1NWVkMVx1NWVkYlx1NWVlOFx1NWVlYVx1ODFiYVx1NWZjNFx1NWZjOVx1NWZkNlx1NWZjZlx1NjAwM1x1NWZlZVx1NjAwNFx1NWZlMVx1NWZlNFx1NWZmZVx1'@; put 'NjAwNVx1NjAwNlx1NWZlYVx1NWZlZFx1NWZmOFx1NjAxOVx1NjAzNVx1NjAyNlx1NjAxYlx1NjAwZlx1NjAwZFx1NjAyOVx1NjAyYlx1NjAwYVx1NjAzZlx1NjAyMVx1NjA3OFx1NjA3OVx1NjA3Ylx1NjA3YVx1NjA0MiJdLFsiZTM0MCIsIlx1OTI0NiIsNDUsIlx1OTI3NSIsMTZdLFsiZTM4'@; put 'MCIsIlx1OTI4NiIsNywiXHU5MjhmIiwyNCwiXHU2MDZhXHU2MDdkXHU2MDk2XHU2MDlhXHU2MGFkXHU2MDlkXHU2MDgzXHU2MDkyXHU2MDhjXHU2MDliXHU2MGVjXHU2MGJiXHU2MGIxXHU2MGRkXHU2MGQ4XHU2MGM2XHU2MGRhXHU2MGI0XHU2MTIwXHU2MTI2XHU2MTE1XHU2MTIzXHU2MGY0'@; put 'XHU2MTAwXHU2MTBlXHU2MTJiXHU2MTRhXHU2MTc1XHU2MWFjXHU2MTk0XHU2MWE3XHU2MWI3XHU2MWQ0XHU2MWY1XHU1ZmRkXHU5NmIzXHU5NWU5XHU5NWViXHU5NWYxXHU5NWYzXHU5NWY1XHU5NWY2XHU5NWZjXHU5NWZlXHU5NjAzXHU5NjA0XHU5NjA2XHU5NjA4XHU5NjBhXHU5NjBiXHU5'@; put 'NjBjXHU5NjBkXHU5NjBmXHU5NjEyXHU5NjE1XHU5NjE2XHU5NjE3XHU5NjE5XHU5NjFhXHU0ZTJjXHU3MjNmXHU2MjE1XHU2YzM1XHU2YzU0XHU2YzVjXHU2YzRhXHU2Y2EzXHU2Yzg1XHU2YzkwXHU2Yzk0XHU2YzhjXHU2YzY4XHU2YzY5XHU2Yzc0XHU2Yzc2XHU2Yzg2XHU2Y2E5XHU2Y2Qw'@; put 'XHU2Y2Q0XHU2Y2FkXHU2Y2Y3XHU2Y2Y4XHU2Y2YxXHU2Y2Q3XHU2Y2IyXHU2Y2UwXHU2Y2Q2XHU2Y2ZhXHU2Y2ViXHU2Y2VlXHU2Y2IxXHU2Y2QzXHU2Y2VmXHU2Y2ZlIl0sWyJlNDQwIiwiXHU5MmE4Iiw1LCJcdTkyYWYiLDI0LCJcdTkyYzkiLDMxXSxbImU0ODAiLCJcdTkyZTkiLDMyLCJc'@; put 'dTZkMzlcdTZkMjdcdTZkMGNcdTZkNDNcdTZkNDhcdTZkMDdcdTZkMDRcdTZkMTlcdTZkMGVcdTZkMmJcdTZkNGRcdTZkMmVcdTZkMzVcdTZkMWFcdTZkNGZcdTZkNTJcdTZkNTRcdTZkMzNcdTZkOTFcdTZkNmZcdTZkOWVcdTZkYTBcdTZkNWVcdTZkOTNcdTZkOTRcdTZkNWNcdTZkNjBcdTZk'@; put 'N2NcdTZkNjNcdTZlMWFcdTZkYzdcdTZkYzVcdTZkZGVcdTZlMGVcdTZkYmZcdTZkZTBcdTZlMTFcdTZkZTZcdTZkZGRcdTZkZDlcdTZlMTZcdTZkYWJcdTZlMGNcdTZkYWVcdTZlMmJcdTZlNmVcdTZlNGVcdTZlNmJcdTZlYjJcdTZlNWZcdTZlODZcdTZlNTNcdTZlNTRcdTZlMzJcdTZlMjVc'@; put 'dTZlNDRcdTZlZGZcdTZlYjFcdTZlOThcdTZlZTBcdTZmMmRcdTZlZTJcdTZlYTVcdTZlYTdcdTZlYmRcdTZlYmJcdTZlYjdcdTZlZDdcdTZlYjRcdTZlY2ZcdTZlOGZcdTZlYzJcdTZlOWZcdTZmNjJcdTZmNDZcdTZmNDdcdTZmMjRcdTZmMTVcdTZlZjlcdTZmMmZcdTZmMzZcdTZmNGJcdTZm'@; put 'NzRcdTZmMmFcdTZmMDlcdTZmMjlcdTZmODlcdTZmOGRcdTZmOGNcdTZmNzhcdTZmNzJcdTZmN2NcdTZmN2FcdTZmZDEiXSxbImU1NDAiLCJcdTkzMGEiLDUxLCJcdTkzM2YiLDEwXSxbImU1ODAiLCJcdTkzNGEiLDMxLCJcdTkzNmJcdTZmYzlcdTZmYTdcdTZmYjlcdTZmYjZcdTZmYzJcdTZm'@; put 'ZTFcdTZmZWVcdTZmZGVcdTZmZTBcdTZmZWZcdTcwMWFcdTcwMjNcdTcwMWJcdTcwMzlcdTcwMzVcdTcwNGZcdTcwNWVcdTViODBcdTViODRcdTViOTVcdTViOTNcdTViYTVcdTViYjhcdTc1MmZcdTlhOWVcdTY0MzRcdTViZTRcdTViZWVcdTg5MzBcdTViZjBcdThlNDdcdThiMDdcdThmYjZc'@; put 'dThmZDNcdThmZDVcdThmZTVcdThmZWVcdThmZTRcdThmZTlcdThmZTZcdThmZjNcdThmZThcdTkwMDVcdTkwMDRcdTkwMGJcdTkwMjZcdTkwMTFcdTkwMGRcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMmRcdTkwMmZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBcdTkwNjhcdTkwNThcdTkw'@; put 'NjJcdTkwNWJcdTY2YjlcdTkwNzRcdTkwN2RcdTkwODJcdTkwODhcdTkwODNcdTkwOGJcdTVmNTBcdTVmNTdcdTVmNTZcdTVmNThcdTVjM2JcdTU0YWJcdTVjNTBcdTVjNTlcdTViNzFcdTVjNjNcdTVjNjZcdTdmYmNcdTVmMmFcdTVmMjlcdTVmMmRcdTgyNzRcdTVmM2NcdTliM2JcdTVjNmVc'@; put 'dTU5ODFcdTU5ODNcdTU5OGRcdTU5YTlcdTU5YWFcdTU5YTMiXSxbImU2NDAiLCJcdTkzNmMiLDM0LCJcdTkzOTAiLDI3XSxbImU2ODAiLCJcdTkzYWMiLDI5LCJcdTkzY2JcdTkzY2NcdTkzY2RcdTU5OTdcdTU5Y2FcdTU5YWJcdTU5OWVcdTU5YTRcdTU5ZDJcdTU5YjJcdTU5YWZcdTU5ZDdc'@; put 'dTU5YmVcdTVhMDVcdTVhMDZcdTU5ZGRcdTVhMDhcdTU5ZTNcdTU5ZDhcdTU5ZjlcdTVhMGNcdTVhMDlcdTVhMzJcdTVhMzRcdTVhMTFcdTVhMjNcdTVhMTNcdTVhNDBcdTVhNjdcdTVhNGFcdTVhNTVcdTVhM2NcdTVhNjJcdTVhNzVcdTgwZWNcdTVhYWFcdTVhOWJcdTVhNzdcdTVhN2FcdTVh'@; put 'YmVcdTVhZWJcdTVhYjJcdTVhZDJcdTVhZDRcdTVhYjhcdTVhZTBcdTVhZTNcdTVhZjFcdTVhZDZcdTVhZTZcdTVhZDhcdTVhZGNcdTViMDlcdTViMTdcdTViMTZcdTViMzJcdTViMzdcdTViNDBcdTVjMTVcdTVjMWNcdTViNWFcdTViNjVcdTViNzNcdTViNTFcdTViNTNcdTViNjJcdTlhNzVc'@; put 'dTlhNzdcdTlhNzhcdTlhN2FcdTlhN2ZcdTlhN2RcdTlhODBcdTlhODFcdTlhODVcdTlhODhcdTlhOGFcdTlhOTBcdTlhOTJcdTlhOTNcdTlhOTZcdTlhOThcdTlhOWJcdTlhOWNcdTlhOWRcdTlhOWZcdTlhYTBcdTlhYTJcdTlhYTNcdTlhYTVcdTlhYTdcdTdlOWZcdTdlYTFcdTdlYTNcdTdl'@; put 'YTVcdTdlYThcdTdlYTkiXSxbImU3NDAiLCJcdTkzY2UiLDcsIlx1OTNkNyIsNTRdLFsiZTc4MCIsIlx1OTQwZSIsMzIsIlx1N2VhZFx1N2ViMFx1N2ViZVx1N2VjMFx1N2VjMVx1N2VjMlx1N2VjOVx1N2VjYlx1N2VjY1x1N2VkMFx1N2VkNFx1N2VkN1x1N2VkYlx1N2VlMFx1N2VlMVx1N2Vl'@; put 'OFx1N2VlYlx1N2VlZVx1N2VlZlx1N2VmMVx1N2VmMlx1N2YwZFx1N2VmNlx1N2VmYVx1N2VmYlx1N2VmZVx1N2YwMVx1N2YwMlx1N2YwM1x1N2YwN1x1N2YwOFx1N2YwYlx1N2YwY1x1N2YwZlx1N2YxMVx1N2YxMlx1N2YxN1x1N2YxOVx1N2YxY1x1N2YxYlx1N2YxZlx1N2YyMSIsNiwiXHU3'@; put 'ZjJhXHU3ZjJiXHU3ZjJjXHU3ZjJkXHU3ZjJmIiw0LCJcdTdmMzVcdTVlN2FcdTc1N2ZcdTVkZGJcdTc1M2VcdTkwOTVcdTczOGVcdTczOTFcdTczYWVcdTczYTJcdTczOWZcdTczY2ZcdTczYzJcdTczZDFcdTczYjdcdTczYjNcdTczYzBcdTczYzlcdTczYzhcdTczZTVcdTczZDlcdTk4N2Nc'@; put 'dTc0MGFcdTczZTlcdTczZTdcdTczZGVcdTczYmFcdTczZjJcdTc0MGZcdTc0MmFcdTc0NWJcdTc0MjZcdTc0MjVcdTc0MjhcdTc0MzBcdTc0MmVcdTc0MmMiXSxbImU4NDAiLCJcdTk0MmYiLDE0LCJcdTk0M2YiLDQzLCJcdTk0NmNcdTk0NmRcdTk0NmVcdTk0NmYiXSxbImU4ODAiLCJcdTk0'@; put 'NzAiLDIwLCJcdTk0OTFcdTk0OTZcdTk0OThcdTk0YzdcdTk0Y2ZcdTk0ZDNcdTk0ZDRcdTk0ZGFcdTk0ZTZcdTk0ZmJcdTk1MWNcdTk1MjBcdTc0MWJcdTc0MWFcdTc0NDFcdTc0NWNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0NmRcdTc0N2VcdTc0OWNcdTc0OGVcdTc0ODBcdTc0ODFc'@; put 'dTc0ODdcdTc0OGJcdTc0OWVcdTc0YThcdTc0YTlcdTc0OTBcdTc0YTdcdTc0ZDJcdTc0YmFcdTk3ZWFcdTk3ZWJcdTk3ZWNcdTY3NGNcdTY3NTNcdTY3NWVcdTY3NDhcdTY3NjlcdTY3YTVcdTY3ODdcdTY3NmFcdTY3NzNcdTY3OThcdTY3YTdcdTY3NzVcdTY3YThcdTY3OWVcdTY3YWRcdTY3'@; put 'OGJcdTY3NzdcdTY3N2NcdTY3ZjBcdTY4MDlcdTY3ZDhcdTY4MGFcdTY3ZTlcdTY3YjBcdTY4MGNcdTY3ZDlcdTY3YjVcdTY3ZGFcdTY3YjNcdTY3ZGRcdTY4MDBcdTY3YzNcdTY3YjhcdTY3ZTJcdTY4MGVcdTY3YzFcdTY3ZmRcdTY4MzJcdTY4MzNcdTY4NjBcdTY4NjFcdTY4NGVcdTY4NjJc'@; put 'dTY4NDRcdTY4NjRcdTY4ODNcdTY4MWRcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M2VcdTY4NGFcdTY4NDlcdTY4MjlcdTY4YjVcdTY4OGZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NmJcdTY4YzJcdTY5NmVcdTY4ZmNcdTY5MWZcdTY5MjBcdTY4ZjkiXSxbImU5NDAiLCJcdTk1'@; put 'MjdcdTk1MzNcdTk1M2RcdTk1NDNcdTk1NDhcdTk1NGJcdTk1NTVcdTk1NWFcdTk1NjBcdTk1NmVcdTk1NzRcdTk1NzVcdTk1NzciLDcsIlx1OTU4MCIsNDJdLFsiZTk4MCIsIlx1OTVhYiIsMzIsIlx1NjkyNFx1NjhmMFx1NjkwYlx1NjkwMVx1Njk1N1x1NjhlM1x1NjkxMFx1Njk3MVx1Njkz'@; put 'OVx1Njk2MFx1Njk0Mlx1Njk1ZFx1Njk4NFx1Njk2Ylx1Njk4MFx1Njk5OFx1Njk3OFx1NjkzNFx1NjljY1x1Njk4N1x1Njk4OFx1NjljZVx1Njk4OVx1Njk2Nlx1Njk2M1x1Njk3OVx1Njk5Ylx1NjlhN1x1NjliYlx1NjlhYlx1NjlhZFx1NjlkNFx1NjliMVx1NjljMVx1NjljYVx1NjlkZlx1'@; put 'Njk5NVx1NjllMFx1Njk4ZFx1NjlmZlx1NmEyZlx1NjllZFx1NmExN1x1NmExOFx1NmE2NVx1NjlmMlx1NmE0NFx1NmEzZVx1NmFhMFx1NmE1MFx1NmE1Ylx1NmEzNVx1NmE4ZVx1NmE3OVx1NmEzZFx1NmEyOFx1NmE1OFx1NmE3Y1x1NmE5MVx1NmE5MFx1NmFhOVx1NmE5N1x1NmFhYlx1NzMz'@; put 'N1x1NzM1Mlx1NmI4MVx1NmI4Mlx1NmI4N1x1NmI4NFx1NmI5Mlx1NmI5M1x1NmI4ZFx1NmI5YVx1NmI5Ylx1NmJhMVx1NmJhYVx1OGY2Ylx1OGY2ZFx1OGY3MVx1OGY3Mlx1OGY3M1x1OGY3NVx1OGY3Nlx1OGY3OFx1OGY3N1x1OGY3OVx1OGY3YVx1OGY3Y1x1OGY3ZVx1OGY4MVx1OGY4Mlx1'@; put 'OGY4NFx1OGY4N1x1OGY4YiJdLFsiZWE0MCIsIlx1OTVjYyIsMjcsIlx1OTVlY1x1OTVmZlx1OTYwN1x1OTYxM1x1OTYxOFx1OTYxYlx1OTYxZVx1OTYyMFx1OTYyMyIsNiwiXHU5NjJiXHU5NjJjXHU5NjJkXHU5NjJmXHU5NjMwXHU5NjM3XHU5NjM4XHU5NjM5XHU5NjNhXHU5NjNlXHU5NjQx'@; put 'XHU5NjQzXHU5NjRhXHU5NjRlXHU5NjRmXHU5NjUxXHU5NjUyXHU5NjUzXHU5NjU2XHU5NjU3Il0sWyJlYTgwIiwiXHU5NjU4XHU5NjU5XHU5NjVhXHU5NjVjXHU5NjVkXHU5NjVlXHU5NjYwXHU5NjYzXHU5NjY1XHU5NjY2XHU5NjZiXHU5NjZkIiw0LCJcdTk2NzNcdTk2NzgiLDEyLCJcdTk2'@; put 'ODdcdTk2ODlcdTk2OGFcdThmOGRcdThmOGVcdThmOGZcdThmOThcdThmOWFcdThlY2VcdTYyMGJcdTYyMTdcdTYyMWJcdTYyMWZcdTYyMjJcdTYyMjFcdTYyMjVcdTYyMjRcdTYyMmNcdTgxZTdcdTc0ZWZcdTc0ZjRcdTc0ZmZcdTc1MGZcdTc1MTFcdTc1MTNcdTY1MzRcdTY1ZWVcdTY1ZWZc'@; put 'dTY1ZjBcdTY2MGFcdTY2MTlcdTY3NzJcdTY2MDNcdTY2MTVcdTY2MDBcdTcwODVcdTY2ZjdcdTY2MWRcdTY2MzRcdTY2MzFcdTY2MzZcdTY2MzVcdTgwMDZcdTY2NWZcdTY2NTRcdTY2NDFcdTY2NGZcdTY2NTZcdTY2NjFcdTY2NTdcdTY2NzdcdTY2ODRcdTY2OGNcdTY2YTdcdTY2OWRcdTY2'@; put 'YmVcdTY2ZGJcdTY2ZGNcdTY2ZTZcdTY2ZTlcdThkMzJcdThkMzNcdThkMzZcdThkM2JcdThkM2RcdThkNDBcdThkNDVcdThkNDZcdThkNDhcdThkNDlcdThkNDdcdThkNGRcdThkNTVcdThkNTlcdTg5YzdcdTg5Y2FcdTg5Y2JcdTg5Y2NcdTg5Y2VcdTg5Y2ZcdTg5ZDBcdTg5ZDFcdTcyNmVc'@; put 'dTcyOWZcdTcyNWRcdTcyNjZcdTcyNmZcdTcyN2VcdTcyN2ZcdTcyODRcdTcyOGJcdTcyOGRcdTcyOGZcdTcyOTJcdTYzMDhcdTYzMzJcdTYzYjAiXSxbImViNDAiLCJcdTk2OGNcdTk2OGVcdTk2OTFcdTk2OTJcdTk2OTNcdTk2OTVcdTk2OTZcdTk2OWFcdTk2OWJcdTk2OWQiLDksIlx1OTZh'@; put 'OCIsNywiXHU5NmIxXHU5NmIyXHU5NmI0XHU5NmI1XHU5NmI3XHU5NmI4XHU5NmJhXHU5NmJiXHU5NmJmXHU5NmMyXHU5NmMzXHU5NmM4XHU5NmNhXHU5NmNiXHU5NmQwXHU5NmQxXHU5NmQzXHU5NmQ0XHU5NmQ2Iiw5LCJcdTk2ZTEiLDYsIlx1OTZlYiJdLFsiZWI4MCIsIlx1OTZlY1x1OTZl'@; put 'ZFx1OTZlZVx1OTZmMFx1OTZmMVx1OTZmMlx1OTZmNFx1OTZmNVx1OTZmOFx1OTZmYVx1OTZmYlx1OTZmY1x1OTZmZFx1OTZmZlx1OTcwMlx1OTcwM1x1OTcwNVx1OTcwYVx1OTcwYlx1OTcwY1x1OTcxMFx1OTcxMVx1OTcxMlx1OTcxNFx1OTcxNVx1OTcxNyIsNCwiXHU5NzFkXHU5NzFmXHU5'@; put 'NzIwXHU2NDNmXHU2NGQ4XHU4MDA0XHU2YmVhXHU2YmYzXHU2YmZkXHU2YmY1XHU2YmY5XHU2YzA1XHU2YzA3XHU2YzA2XHU2YzBkXHU2YzE1XHU2YzE4XHU2YzE5XHU2YzFhXHU2YzIxXHU2YzI5XHU2YzI0XHU2YzJhXHU2YzMyXHU2NTM1XHU2NTU1XHU2NTZiXHU3MjRkXHU3MjUyXHU3MjU2'@; put 'XHU3MjMwXHU4NjYyXHU1MjE2XHU4MDlmXHU4MDljXHU4MDkzXHU4MGJjXHU2NzBhXHU4MGJkXHU4MGIxXHU4MGFiXHU4MGFkXHU4MGI0XHU4MGI3XHU4MGU3XHU4MGU4XHU4MGU5XHU4MGVhXHU4MGRiXHU4MGMyXHU4MGM0XHU4MGQ5XHU4MGNkXHU4MGQ3XHU2NzEwXHU4MGRkXHU4MGViXHU4'@; put 'MGYxXHU4MGY0XHU4MGVkXHU4MTBkXHU4MTBlXHU4MGYyXHU4MGZjXHU2NzE1XHU4MTEyXHU4YzVhXHU4MTM2XHU4MTFlXHU4MTJjXHU4MTE4XHU4MTMyXHU4MTQ4XHU4MTRjXHU4MTUzXHU4MTc0XHU4MTU5XHU4MTVhXHU4MTcxXHU4MTYwXHU4MTY5XHU4MTdjXHU4MTdkXHU4MTZkXHU4MTY3'@; put 'XHU1ODRkXHU1YWI1XHU4MTg4XHU4MTgyXHU4MTkxXHU2ZWQ1XHU4MWEzXHU4MWFhXHU4MWNjXHU2NzI2XHU4MWNhXHU4MWJiIl0sWyJlYzQwIiwiXHU5NzIxIiw4LCJcdTk3MmJcdTk3MmNcdTk3MmVcdTk3MmZcdTk3MzFcdTk3MzMiLDQsIlx1OTczYVx1OTczYlx1OTczY1x1OTczZFx1OTcz'@; put 'ZiIsMTgsIlx1OTc1NFx1OTc1NVx1OTc1N1x1OTc1OFx1OTc1YVx1OTc1Y1x1OTc1ZFx1OTc1Zlx1OTc2M1x1OTc2NFx1OTc2Nlx1OTc2N1x1OTc2OFx1OTc2YSIsN10sWyJlYzgwIiwiXHU5NzcyXHU5Nzc1XHU5Nzc3Iiw0LCJcdTk3N2QiLDcsIlx1OTc4NiIsNCwiXHU5NzhjXHU5NzhlXHU5'@; put 'NzhmXHU5NzkwXHU5NzkzXHU5Nzk1XHU5Nzk2XHU5Nzk3XHU5Nzk5Iiw0LCJcdTgxYzFcdTgxYTZcdTZiMjRcdTZiMzdcdTZiMzlcdTZiNDNcdTZiNDZcdTZiNTlcdTk4ZDFcdTk4ZDJcdTk4ZDNcdTk4ZDVcdTk4ZDlcdTk4ZGFcdTZiYjNcdTVmNDBcdTZiYzJcdTg5ZjNcdTY1OTBcdTlmNTFc'@; put 'dTY1OTNcdTY1YmNcdTY1YzZcdTY1YzRcdTY1YzNcdTY1Y2NcdTY1Y2VcdTY1ZDJcdTY1ZDZcdTcwODBcdTcwOWNcdTcwOTZcdTcwOWRcdTcwYmJcdTcwYzBcdTcwYjdcdTcwYWJcdTcwYjFcdTcwZThcdTcwY2FcdTcxMTBcdTcxMTNcdTcxMTZcdTcxMmZcdTcxMzFcdTcxNzNcdTcxNWNcdTcx'@; put 'NjhcdTcxNDVcdTcxNzJcdTcxNGFcdTcxNzhcdTcxN2FcdTcxOThcdTcxYjNcdTcxYjVcdTcxYThcdTcxYTBcdTcxZTBcdTcxZDRcdTcxZTdcdTcxZjlcdTcyMWRcdTcyMjhcdTcwNmNcdTcxMThcdTcxNjZcdTcxYjlcdTYyM2VcdTYyM2RcdTYyNDNcdTYyNDhcdTYyNDlcdTc5M2JcdTc5NDBc'@; put 'dTc5NDZcdTc5NDlcdTc5NWJcdTc5NWNcdTc5NTNcdTc5NWFcdTc5NjJcdTc5NTdcdTc5NjBcdTc5NmZcdTc5NjdcdTc5N2FcdTc5ODVcdTc5OGFcdTc5OWFcdTc5YTdcdTc5YjNcdTVmZDFcdTVmZDAiXSxbImVkNDAiLCJcdTk3OWVcdTk3OWZcdTk3YTFcdTk3YTJcdTk3YTQiLDYsIlx1OTdh'@; put 'Y1x1OTdhZVx1OTdiMFx1OTdiMVx1OTdiM1x1OTdiNSIsNDZdLFsiZWQ4MCIsIlx1OTdlNFx1OTdlNVx1OTdlOFx1OTdlZSIsNCwiXHU5N2Y0XHU5N2Y3IiwyMywiXHU2MDNjXHU2MDVkXHU2MDVhXHU2MDY3XHU2MDQxXHU2MDU5XHU2MDYzXHU2MGFiXHU2MTA2XHU2MTBkXHU2MTVkXHU2MWE5'@; put 'XHU2MTlkXHU2MWNiXHU2MWQxXHU2MjA2XHU4MDgwXHU4MDdmXHU2YzkzXHU2Y2Y2XHU2ZGZjXHU3N2Y2XHU3N2Y4XHU3ODAwXHU3ODA5XHU3ODE3XHU3ODE4XHU3ODExXHU2NWFiXHU3ODJkXHU3ODFjXHU3ODFkXHU3ODM5XHU3ODNhXHU3ODNiXHU3ODFmXHU3ODNjXHU3ODI1XHU3ODJjXHU3'@; put 'ODIzXHU3ODI5XHU3ODRlXHU3ODZkXHU3ODU2XHU3ODU3XHU3ODI2XHU3ODUwXHU3ODQ3XHU3ODRjXHU3ODZhXHU3ODliXHU3ODkzXHU3ODlhXHU3ODg3XHU3ODljXHU3OGExXHU3OGEzXHU3OGIyXHU3OGI5XHU3OGE1XHU3OGQ0XHU3OGQ5XHU3OGM5XHU3OGVjXHU3OGYyXHU3OTA1XHU3OGY0'@; put 'XHU3OTEzXHU3OTI0XHU3OTFlXHU3OTM0XHU5ZjliXHU5ZWY5XHU5ZWZiXHU5ZWZjXHU3NmYxXHU3NzA0XHU3NzBkXHU3NmY5XHU3NzA3XHU3NzA4XHU3NzFhXHU3NzIyXHU3NzE5XHU3NzJkXHU3NzI2XHU3NzM1XHU3NzM4XHU3NzUwXHU3NzUxXHU3NzQ3XHU3NzQzXHU3NzVhXHU3NzY4Il0s'@; put 'WyJlZTQwIiwiXHU5ODBmIiw2Ml0sWyJlZTgwIiwiXHU5ODRlIiwzMiwiXHU3NzYyXHU3NzY1XHU3NzdmXHU3NzhkXHU3NzdkXHU3NzgwXHU3NzhjXHU3NzkxXHU3NzlmXHU3N2EwXHU3N2IwXHU3N2I1XHU3N2JkXHU3NTNhXHU3NTQwXHU3NTRlXHU3NTRiXHU3NTQ4XHU3NTViXHU3NTcyXHU3'@; put 'NTc5XHU3NTgzXHU3ZjU4XHU3ZjYxXHU3ZjVmXHU4YTQ4XHU3ZjY4XHU3Zjc0XHU3ZjcxXHU3Zjc5XHU3ZjgxXHU3ZjdlXHU3NmNkXHU3NmU1XHU4ODMyXHU5NDg1XHU5NDg2XHU5NDg3XHU5NDhiXHU5NDhhXHU5NDhjXHU5NDhkXHU5NDhmXHU5NDkwXHU5NDk0XHU5NDk3XHU5NDk1XHU5NDlh'@; put 'XHU5NDliXHU5NDljXHU5NGEzXHU5NGE0XHU5NGFiXHU5NGFhXHU5NGFkXHU5NGFjXHU5NGFmXHU5NGIwXHU5NGIyXHU5NGI0XHU5NGI2Iiw0LCJcdTk0YmNcdTk0YmRcdTk0YmZcdTk0YzRcdTk0YzgiLDYsIlx1OTRkMFx1OTRkMVx1OTRkMlx1OTRkNVx1OTRkNlx1OTRkN1x1OTRkOVx1OTRk'@; put 'OFx1OTRkYlx1OTRkZVx1OTRkZlx1OTRlMFx1OTRlMlx1OTRlNFx1OTRlNVx1OTRlN1x1OTRlOFx1OTRlYSJdLFsiZWY0MCIsIlx1OTg2ZiIsNSwiXHU5ODhiXHU5ODhlXHU5ODkyXHU5ODk1XHU5ODk5XHU5OGEzXHU5OGE4IiwzNywiXHU5OGNmXHU5OGQwXHU5OGQ0XHU5OGQ2XHU5OGQ3XHU5'@; put 'OGRiXHU5OGRjXHU5OGRkXHU5OGUwIiw0XSxbImVmODAiLCJcdTk4ZTVcdTk4ZTZcdTk4ZTkiLDMwLCJcdTk0ZTlcdTk0ZWJcdTk0ZWVcdTk0ZWZcdTk0ZjNcdTk0ZjRcdTk0ZjVcdTk0ZjdcdTk0ZjlcdTk0ZmNcdTk0ZmRcdTk0ZmZcdTk1MDNcdTk1MDJcdTk1MDZcdTk1MDdcdTk1MDlcdTk1'@; put 'MGFcdTk1MGRcdTk1MGVcdTk1MGZcdTk1MTIiLDQsIlx1OTUxOFx1OTUxYlx1OTUxZFx1OTUxZVx1OTUxZlx1OTUyMlx1OTUyYVx1OTUyYlx1OTUyOVx1OTUyY1x1OTUzMVx1OTUzMlx1OTUzNFx1OTUzNlx1OTUzN1x1OTUzOFx1OTUzY1x1OTUzZVx1OTUzZlx1OTU0Mlx1OTUzNVx1OTU0NFx1'@; put 'OTU0NVx1OTU0Nlx1OTU0OVx1OTU0Y1x1OTU0ZVx1OTU0Zlx1OTU1Mlx1OTU1M1x1OTU1NFx1OTU1Nlx1OTU1N1x1OTU1OFx1OTU1OVx1OTU1Ylx1OTU1ZVx1OTU1Zlx1OTU1ZFx1OTU2MVx1OTU2Mlx1OTU2NCIsOCwiXHU5NTZmXHU5NTcxXHU5NTcyXHU5NTczXHU5NTNhXHU3N2U3XHU3N2Vj'@; put 'XHU5NmM5XHU3OWQ1XHU3OWVkXHU3OWUzXHU3OWViXHU3YTA2XHU1ZDQ3XHU3YTAzXHU3YTAyXHU3YTFlXHU3YTE0Il0sWyJmMDQwIiwiXHU5OTA4Iiw0LCJcdTk5MGVcdTk5MGZcdTk5MTEiLDI4LCJcdTk5MmYiLDI2XSxbImYwODAiLCJcdTk5NGEiLDksIlx1OTk1NiIsMTIsIlx1OTk2NFx1'@; put 'OTk2Nlx1OTk3M1x1OTk3OFx1OTk3OVx1OTk3Ylx1OTk3ZVx1OTk4Mlx1OTk4M1x1OTk4OVx1N2EzOVx1N2EzN1x1N2E1MVx1OWVjZlx1OTlhNVx1N2E3MFx1NzY4OFx1NzY4ZVx1NzY5M1x1NzY5OVx1NzZhNFx1NzRkZVx1NzRlMFx1NzUyY1x1OWUyMFx1OWUyMlx1OWUyOCIsNCwiXHU5ZTMy'@; put 'XHU5ZTMxXHU5ZTM2XHU5ZTM4XHU5ZTM3XHU5ZTM5XHU5ZTNhXHU5ZTNlXHU5ZTQxXHU5ZTQyXHU5ZTQ0XHU5ZTQ2XHU5ZTQ3XHU5ZTQ4XHU5ZTQ5XHU5ZTRiXHU5ZTRjXHU5ZTRlXHU5ZTUxXHU5ZTU1XHU5ZTU3XHU5ZTVhXHU5ZTViXHU5ZTVjXHU5ZTVlXHU5ZTYzXHU5ZTY2Iiw2LCJcdTll'@; put 'NzFcdTllNmRcdTllNzNcdTc1OTJcdTc1OTRcdTc1OTZcdTc1YTBcdTc1OWRcdTc1YWNcdTc1YTNcdTc1YjNcdTc1YjRcdTc1YjhcdTc1YzRcdTc1YjFcdTc1YjBcdTc1YzNcdTc1YzJcdTc1ZDZcdTc1Y2RcdTc1ZTNcdTc1ZThcdTc1ZTZcdTc1ZTRcdTc1ZWJcdTc1ZTdcdTc2MDNcdTc1ZjFc'@; put 'dTc1ZmNcdTc1ZmZcdTc2MTBcdTc2MDBcdTc2MDVcdTc2MGNcdTc2MTdcdTc2MGFcdTc2MjVcdTc2MThcdTc2MTVcdTc2MTkiXSxbImYxNDAiLCJcdTk5OGNcdTk5OGVcdTk5OWEiLDEwLCJcdTk5YTZcdTk5YTdcdTk5YTkiLDQ3XSxbImYxODAiLCJcdTk5ZDkiLDMyLCJcdTc2MWJcdTc2M2Nc'@; put 'dTc2MjJcdTc2MjBcdTc2NDBcdTc2MmRcdTc2MzBcdTc2M2ZcdTc2MzVcdTc2NDNcdTc2M2VcdTc2MzNcdTc2NGRcdTc2NWVcdTc2NTRcdTc2NWNcdTc2NTZcdTc2NmJcdTc2NmZcdTdmY2FcdTdhZTZcdTdhNzhcdTdhNzlcdTdhODBcdTdhODZcdTdhODhcdTdhOTVcdTdhYTZcdTdhYTBcdTdh'@; put 'YWNcdTdhYThcdTdhYWRcdTdhYjNcdTg4NjRcdTg4NjlcdTg4NzJcdTg4N2RcdTg4N2ZcdTg4ODJcdTg4YTJcdTg4YzZcdTg4YjdcdTg4YmNcdTg4YzlcdTg4ZTJcdTg4Y2VcdTg4ZTNcdTg4ZTVcdTg4ZjFcdTg5MWFcdTg4ZmNcdTg4ZThcdTg4ZmVcdTg4ZjBcdTg5MjFcdTg5MTlcdTg5MTNc'@; put 'dTg5MWJcdTg5MGFcdTg5MzRcdTg5MmJcdTg5MzZcdTg5NDFcdTg5NjZcdTg5N2JcdTc1OGJcdTgwZTVcdTc2YjJcdTc2YjRcdTc3ZGNcdTgwMTJcdTgwMTRcdTgwMTZcdTgwMWNcdTgwMjBcdTgwMjJcdTgwMjVcdTgwMjZcdTgwMjdcdTgwMjlcdTgwMjhcdTgwMzFcdTgwMGJcdTgwMzVcdTgw'@; put 'NDNcdTgwNDZcdTgwNGRcdTgwNTJcdTgwNjlcdTgwNzFcdTg5ODNcdTk4NzhcdTk4ODBcdTk4ODMiXSxbImYyNDAiLCJcdTk5ZmEiLDYyXSxbImYyODAiLCJcdTlhMzkiLDMyLCJcdTk4ODlcdTk4OGNcdTk4OGRcdTk4OGZcdTk4OTRcdTk4OWFcdTk4OWJcdTk4OWVcdTk4OWZcdTk4YTFcdTk4'@; put 'YTJcdTk4YTVcdTk4YTZcdTg2NGRcdTg2NTRcdTg2NmNcdTg2NmVcdTg2N2ZcdTg2N2FcdTg2N2NcdTg2N2JcdTg2YThcdTg2OGRcdTg2OGJcdTg2YWNcdTg2OWRcdTg2YTdcdTg2YTNcdTg2YWFcdTg2OTNcdTg2YTlcdTg2YjZcdTg2YzRcdTg2YjVcdTg2Y2VcdTg2YjBcdTg2YmFcdTg2YjFc'@; put 'dTg2YWZcdTg2YzlcdTg2Y2ZcdTg2YjRcdTg2ZTlcdTg2ZjFcdTg2ZjJcdTg2ZWRcdTg2ZjNcdTg2ZDBcdTg3MTNcdTg2ZGVcdTg2ZjRcdTg2ZGZcdTg2ZDhcdTg2ZDFcdTg3MDNcdTg3MDdcdTg2ZjhcdTg3MDhcdTg3MGFcdTg3MGRcdTg3MDlcdTg3MjNcdTg3M2JcdTg3MWVcdTg3MjVcdTg3'@; put 'MmVcdTg3MWFcdTg3M2VcdTg3NDhcdTg3MzRcdTg3MzFcdTg3MjlcdTg3MzdcdTg3M2ZcdTg3ODJcdTg3MjJcdTg3N2RcdTg3N2VcdTg3N2JcdTg3NjBcdTg3NzBcdTg3NGNcdTg3NmVcdTg3OGJcdTg3NTNcdTg3NjNcdTg3N2NcdTg3NjRcdTg3NTlcdTg3NjVcdTg3OTNcdTg3YWZcdTg3YThc'@; put 'dTg3ZDIiXSxbImYzNDAiLCJcdTlhNWEiLDE3LCJcdTlhNzJcdTlhODNcdTlhODlcdTlhOGRcdTlhOGVcdTlhOTRcdTlhOTVcdTlhOTlcdTlhYTZcdTlhYTkiLDYsIlx1OWFiMlx1OWFiM1x1OWFiNFx1OWFiNVx1OWFiOVx1OWFiYlx1OWFiZFx1OWFiZVx1OWFiZlx1OWFjM1x1OWFjNFx1OWFj'@; put 'NiIsNCwiXHU5YWNkXHU5YWNlXHU5YWNmXHU5YWQwXHU5YWQyXHU5YWQ0XHU5YWQ1XHU5YWQ2XHU5YWQ3XHU5YWQ5XHU5YWRhXHU5YWRiXHU5YWRjIl0sWyJmMzgwIiwiXHU5YWRkXHU5YWRlXHU5YWUwXHU5YWUyXHU5YWUzXHU5YWU0XHU5YWU1XHU5YWU3XHU5YWU4XHU5YWU5XHU5YWVhXHU5'@; put 'YWVjXHU5YWVlXHU5YWYwIiw4LCJcdTlhZmFcdTlhZmMiLDYsIlx1OWIwNFx1OWIwNVx1OWIwNlx1ODdjNlx1ODc4OFx1ODc4NVx1ODdhZFx1ODc5N1x1ODc4M1x1ODdhYlx1ODdlNVx1ODdhY1x1ODdiNVx1ODdiM1x1ODdjYlx1ODdkM1x1ODdiZFx1ODdkMVx1ODdjMFx1ODdjYVx1ODdkYlx1'@; put 'ODdlYVx1ODdlMFx1ODdlZVx1ODgxNlx1ODgxM1x1ODdmZVx1ODgwYVx1ODgxYlx1ODgyMVx1ODgzOVx1ODgzY1x1N2YzNlx1N2Y0Mlx1N2Y0NFx1N2Y0NVx1ODIxMFx1N2FmYVx1N2FmZFx1N2IwOFx1N2IwM1x1N2IwNFx1N2IxNVx1N2IwYVx1N2IyYlx1N2IwZlx1N2I0N1x1N2IzOFx1N2Iy'@; put 'YVx1N2IxOVx1N2IyZVx1N2IzMVx1N2IyMFx1N2IyNVx1N2IyNFx1N2IzM1x1N2IzZVx1N2IxZVx1N2I1OFx1N2I1YVx1N2I0NVx1N2I3NVx1N2I0Y1x1N2I1ZFx1N2I2MFx1N2I2ZVx1N2I3Ylx1N2I2Mlx1N2I3Mlx1N2I3MVx1N2I5MFx1N2JhNlx1N2JhN1x1N2JiOFx1N2JhY1x1N2I5ZFx1'@; put 'N2JhOFx1N2I4NVx1N2JhYVx1N2I5Y1x1N2JhMlx1N2JhYlx1N2JiNFx1N2JkMVx1N2JjMVx1N2JjY1x1N2JkZFx1N2JkYVx1N2JlNVx1N2JlNlx1N2JlYVx1N2MwY1x1N2JmZVx1N2JmY1x1N2MwZlx1N2MxNlx1N2MwYiJdLFsiZjQ0MCIsIlx1OWIwN1x1OWIwOSIsNSwiXHU5YjEwXHU5YjEx'@; put 'XHU5YjEyXHU5YjE0IiwxMCwiXHU5YjIwXHU5YjIxXHU5YjIyXHU5YjI0IiwxMCwiXHU5YjMwXHU5YjMxXHU5YjMzIiw3LCJcdTliM2RcdTliM2VcdTliM2ZcdTliNDBcdTliNDZcdTliNGFcdTliNGJcdTliNGNcdTliNGVcdTliNTBcdTliNTJcdTliNTNcdTliNTUiLDVdLFsiZjQ4MCIsIlx1'@; put 'OWI1YiIsMzIsIlx1N2MxZlx1N2MyYVx1N2MyNlx1N2MzOFx1N2M0MVx1N2M0MFx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNFx1ODFlY1x1ODg0NFx1ODIyMVx1ODIyMlx1ODIyM1x1ODIyZFx1ODIyZlx1ODIyOFx1ODIyYlx1ODIzOFx1ODIzYlx1ODIzM1x1ODIzNFx1ODIzZVx1ODI0NFx1ODI0'@; put 'OVx1ODI0Ylx1ODI0Zlx1ODI1YVx1ODI1Zlx1ODI2OFx1ODg3ZVx1ODg4NVx1ODg4OFx1ODhkOFx1ODhkZlx1ODk1ZVx1N2Y5ZFx1N2Y5Zlx1N2ZhN1x1N2ZhZlx1N2ZiMFx1N2ZiMlx1N2M3Y1x1NjU0OVx1N2M5MVx1N2M5ZFx1N2M5Y1x1N2M5ZVx1N2NhMlx1N2NiMlx1N2NiY1x1N2NiZFx1'@; put 'N2NjMVx1N2NjN1x1N2NjY1x1N2NjZFx1N2NjOFx1N2NjNVx1N2NkN1x1N2NlOFx1ODI2ZVx1NjZhOFx1N2ZiZlx1N2ZjZVx1N2ZkNVx1N2ZlNVx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZlZVx1N2ZmM1x1N2NmOFx1N2Q3N1x1N2RhNlx1N2RhZVx1N2U0N1x1N2U5Ylx1OWViOFx1OWViNFx1OGQ3'@; put 'M1x1OGQ4NFx1OGQ5NFx1OGQ5MVx1OGRiMVx1OGQ2N1x1OGQ2ZFx1OGM0N1x1OGM0OVx1OTE0YVx1OTE1MFx1OTE0ZVx1OTE0Zlx1OTE2NCJdLFsiZjU0MCIsIlx1OWI3YyIsNjJdLFsiZjU4MCIsIlx1OWJiYiIsMzIsIlx1OTE2Mlx1OTE2MVx1OTE3MFx1OTE2OVx1OTE2Zlx1OTE3ZFx1OTE3'@; put 'ZVx1OTE3Mlx1OTE3NFx1OTE3OVx1OTE4Y1x1OTE4NVx1OTE5MFx1OTE4ZFx1OTE5MVx1OTFhMlx1OTFhM1x1OTFhYVx1OTFhZFx1OTFhZVx1OTFhZlx1OTFiNVx1OTFiNFx1OTFiYVx1OGM1NVx1OWU3ZVx1OGRiOFx1OGRlYlx1OGUwNVx1OGU1OVx1OGU2OVx1OGRiNVx1OGRiZlx1OGRiY1x1'@; put 'OGRiYVx1OGRjNFx1OGRkNlx1OGRkN1x1OGRkYVx1OGRkZVx1OGRjZVx1OGRjZlx1OGRkYlx1OGRjNlx1OGRlY1x1OGRmN1x1OGRmOFx1OGRlM1x1OGRmOVx1OGRmYlx1OGRlNFx1OGUwOVx1OGRmZFx1OGUxNFx1OGUxZFx1OGUxZlx1OGUyY1x1OGUyZVx1OGUyM1x1OGUyZlx1OGUzYVx1OGU0'@; put 'MFx1OGUzOVx1OGUzNVx1OGUzZFx1OGUzMVx1OGU0OVx1OGU0MVx1OGU0Mlx1OGU1MVx1OGU1Mlx1OGU0YVx1OGU3MFx1OGU3Nlx1OGU3Y1x1OGU2Zlx1OGU3NFx1OGU4NVx1OGU4Zlx1OGU5NFx1OGU5MFx1OGU5Y1x1OGU5ZVx1OGM3OFx1OGM4Mlx1OGM4YVx1OGM4NVx1OGM5OFx1OGM5NFx1'@; put 'NjU5Ylx1ODlkNlx1ODlkZVx1ODlkYVx1ODlkYyJdLFsiZjY0MCIsIlx1OWJkYyIsNjJdLFsiZjY4MCIsIlx1OWMxYiIsMzIsIlx1ODllNVx1ODllYlx1ODllZlx1OGEzZVx1OGIyNlx1OTc1M1x1OTZlOVx1OTZmM1x1OTZlZlx1OTcwNlx1OTcwMVx1OTcwOFx1OTcwZlx1OTcwZVx1OTcyYVx1'@; put 'OTcyZFx1OTczMFx1OTczZVx1OWY4MFx1OWY4M1x1OWY4NSIsNSwiXHU5ZjhjXHU5ZWZlXHU5ZjBiXHU5ZjBkXHU5NmI5XHU5NmJjXHU5NmJkXHU5NmNlXHU5NmQyXHU3N2JmXHU5NmUwXHU5MjhlXHU5MmFlXHU5MmM4XHU5MzNlXHU5MzZhXHU5M2NhXHU5MzhmXHU5NDNlXHU5NDZiXHU5Yzdm'@; put 'XHU5YzgyXHU5Yzg1XHU5Yzg2XHU5Yzg3XHU5Yzg4XHU3YTIzXHU5YzhiXHU5YzhlXHU5YzkwXHU5YzkxXHU5YzkyXHU5Yzk0XHU5Yzk1XHU5YzlhXHU5YzliXHU5YzllIiw1LCJcdTljYTUiLDQsIlx1OWNhYlx1OWNhZFx1OWNhZVx1OWNiMCIsNywiXHU5Y2JhXHU5Y2JiXHU5Y2JjXHU5Y2Jk'@; put 'XHU5Y2M0XHU5Y2M1XHU5Y2M2XHU5Y2M3XHU5Y2NhXHU5Y2NiIl0sWyJmNzQwIiwiXHU5YzNjIiw2Ml0sWyJmNzgwIiwiXHU5YzdiXHU5YzdkXHU5YzdlXHU5YzgwXHU5YzgzXHU5Yzg0XHU5Yzg5XHU5YzhhXHU5YzhjXHU5YzhmXHU5YzkzXHU5Yzk2XHU5Yzk3XHU5Yzk4XHU5Yzk5XHU5Yzlk'@; put 'XHU5Y2FhXHU5Y2FjXHU5Y2FmXHU5Y2I5XHU5Y2JlIiw0LCJcdTljYzhcdTljYzlcdTljZDFcdTljZDJcdTljZGFcdTljZGJcdTljZTBcdTljZTFcdTljY2MiLDQsIlx1OWNkM1x1OWNkNFx1OWNkNVx1OWNkN1x1OWNkOFx1OWNkOVx1OWNkY1x1OWNkZFx1OWNkZlx1OWNlMlx1OTc3Y1x1OTc4'@; put 'NVx1OTc5MVx1OTc5Mlx1OTc5NFx1OTdhZlx1OTdhYlx1OTdhM1x1OTdiMlx1OTdiNFx1OWFiMVx1OWFiMFx1OWFiN1x1OWU1OFx1OWFiNlx1OWFiYVx1OWFiY1x1OWFjMVx1OWFjMFx1OWFjNVx1OWFjMlx1OWFjYlx1OWFjY1x1OWFkMVx1OWI0NVx1OWI0M1x1OWI0N1x1OWI0OVx1OWI0OFx1'@; put 'OWI0ZFx1OWI1MVx1OThlOFx1OTkwZFx1OTkyZVx1OTk1NVx1OTk1NFx1OWFkZlx1OWFlMVx1OWFlNlx1OWFlZlx1OWFlYlx1OWFmYlx1OWFlZFx1OWFmOVx1OWIwOFx1OWIwZlx1OWIxM1x1OWIxZlx1OWIyM1x1OWViZFx1OWViZVx1N2UzYlx1OWU4Mlx1OWU4N1x1OWU4OFx1OWU4Ylx1OWU5'@; put 'Mlx1OTNkNlx1OWU5ZFx1OWU5Zlx1OWVkYlx1OWVkY1x1OWVkZFx1OWVlMFx1OWVkZlx1OWVlMlx1OWVlOVx1OWVlN1x1OWVlNVx1OWVlYVx1OWVlZlx1OWYyMlx1OWYyY1x1OWYyZlx1OWYzOVx1OWYzN1x1OWYzZFx1OWYzZVx1OWY0NCJdLFsiZjg0MCIsIlx1OWNlMyIsNjJdLFsiZjg4MCIs'@; put 'Ilx1OWQyMiIsMzJdLFsiZjk0MCIsIlx1OWQ0MyIsNjJdLFsiZjk4MCIsIlx1OWQ4MiIsMzJdLFsiZmE0MCIsIlx1OWRhMyIsNjJdLFsiZmE4MCIsIlx1OWRlMiIsMzJdLFsiZmI0MCIsIlx1OWUwMyIsMjcsIlx1OWUyNFx1OWUyN1x1OWUyZVx1OWUzMFx1OWUzNFx1OWUzYlx1OWUzY1x1OWU0'@; put 'MFx1OWU0ZFx1OWU1MFx1OWU1Mlx1OWU1M1x1OWU1NFx1OWU1Nlx1OWU1OVx1OWU1ZFx1OWU1Zlx1OWU2MFx1OWU2MVx1OWU2Mlx1OWU2NVx1OWU2ZVx1OWU2Zlx1OWU3Mlx1OWU3NCIsOSwiXHU5ZTgwIl0sWyJmYjgwIiwiXHU5ZTgxXHU5ZTgzXHU5ZTg0XHU5ZTg1XHU5ZTg2XHU5ZTg5XHU5'@; put 'ZThhXHU5ZThjIiw1LCJcdTllOTQiLDgsIlx1OWU5ZVx1OWVhMCIsNSwiXHU5ZWE3XHU5ZWE4XHU5ZWE5XHU5ZWFhIl0sWyJmYzQwIiwiXHU5ZWFiIiw4LCJcdTllYjVcdTllYjZcdTllYjdcdTllYjlcdTllYmFcdTllYmNcdTllYmYiLDQsIlx1OWVjNVx1OWVjNlx1OWVjN1x1OWVjOFx1OWVj'@; put 'YVx1OWVjYlx1OWVjY1x1OWVkMFx1OWVkMlx1OWVkM1x1OWVkNVx1OWVkNlx1OWVkN1x1OWVkOVx1OWVkYVx1OWVkZVx1OWVlMVx1OWVlM1x1OWVlNFx1OWVlNlx1OWVlOFx1OWVlYlx1OWVlY1x1OWVlZFx1OWVlZVx1OWVmMCIsOCwiXHU5ZWZhXHU5ZWZkXHU5ZWZmIiw2XSxbImZjODAiLCJc'@; put 'dTlmMDYiLDQsIlx1OWYwY1x1OWYwZlx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNVx1OWYxNlx1OWYxOFx1OWYxYSIsNSwiXHU5ZjIxXHU5ZjIzIiw4LCJcdTlmMmRcdTlmMmVcdTlmMzBcdTlmMzEiXSxbImZkNDAiLCJcdTlmMzIiLDQsIlx1OWYzOFx1OWYzYVx1OWYzY1x1OWYzZiIsNCwiXHU5'@; put 'ZjQ1IiwxMCwiXHU5ZjUyIiwzOF0sWyJmZDgwIiwiXHU5Zjc5Iiw1LCJcdTlmODFcdTlmODJcdTlmOGQiLDExLCJcdTlmOWNcdTlmOWRcdTlmOWVcdTlmYTEiLDQsIlx1ZjkyY1x1Zjk3OVx1Zjk5NVx1ZjllN1x1ZjlmMSJdLFsiZmU0MCIsIlx1ZmEwY1x1ZmEwZFx1ZmEwZVx1ZmEwZlx1ZmEx'@; put 'MVx1ZmExM1x1ZmExNFx1ZmExOFx1ZmExZlx1ZmEyMFx1ZmEyMVx1ZmEyM1x1ZmEyNFx1ZmEyN1x1ZmEyOFx1ZmEyOSJdXScpfSw3NzM0ODphdD0+eyJ1c2Ugc3RyaWN0IjthdC5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjAiLCJcXHUwMDAwIiwxMjddLFsiODE0MSIsIlx1YWMwMlx1YWMwM1x1'@; put 'YWMwNVx1YWMwNlx1YWMwYiIsNCwiXHVhYzE4XHVhYzFlXHVhYzFmXHVhYzIxXHVhYzIyXHVhYzIzXHVhYzI1Iiw2LCJcdWFjMmVcdWFjMzJcdWFjMzNcdWFjMzQiXSxbIjgxNjEiLCJcdWFjMzVcdWFjMzZcdWFjMzdcdWFjM2FcdWFjM2JcdWFjM2RcdWFjM2VcdWFjM2ZcdWFjNDEiLDksIlx1'@; put 'YWM0Y1x1YWM0ZSIsNSwiXHVhYzU1Il0sWyI4MTgxIiwiXHVhYzU2XHVhYzU3XHVhYzU5XHVhYzVhXHVhYzViXHVhYzVkIiwxOCwiXHVhYzcyXHVhYzczXHVhYzc1XHVhYzc2XHVhYzc5XHVhYzdiIiw0LCJcdWFjODJcdWFjODdcdWFjODhcdWFjOGRcdWFjOGVcdWFjOGZcdWFjOTFcdWFjOTJc'@; put 'dWFjOTNcdWFjOTUiLDYsIlx1YWM5ZVx1YWNhMiIsNSwiXHVhY2FiXHVhY2FkXHVhY2FlXHVhY2IxIiw2LCJcdWFjYmFcdWFjYmVcdWFjYmZcdWFjYzBcdWFjYzJcdWFjYzNcdWFjYzVcdWFjYzZcdWFjYzdcdWFjYzlcdWFjY2FcdWFjY2JcdWFjY2QiLDcsIlx1YWNkNlx1YWNkOCIsNywiXHVh'@; put 'Y2UyXHVhY2UzXHVhY2U1XHVhY2U2XHVhY2U5XHVhY2ViXHVhY2VkXHVhY2VlXHVhY2YyXHVhY2Y0XHVhY2Y3Iiw0LCJcdWFjZmVcdWFjZmZcdWFkMDFcdWFkMDJcdWFkMDNcdWFkMDVcdWFkMDciLDQsIlx1YWQwZVx1YWQxMFx1YWQxMlx1YWQxMyJdLFsiODI0MSIsIlx1YWQxNFx1YWQxNVx1'@; put 'YWQxNlx1YWQxN1x1YWQxOVx1YWQxYVx1YWQxYlx1YWQxZFx1YWQxZVx1YWQxZlx1YWQyMSIsNywiXHVhZDJhXHVhZDJiXHVhZDJlIiw1XSxbIjgyNjEiLCJcdWFkMzZcdWFkMzdcdWFkMzlcdWFkM2FcdWFkM2JcdWFkM2QiLDYsIlx1YWQ0Nlx1YWQ0OFx1YWQ0YSIsNSwiXHVhZDUxXHVhZDUy'@; put 'XHVhZDUzXHVhZDU1XHVhZDU2XHVhZDU3Il0sWyI4MjgxIiwiXHVhZDU5Iiw3LCJcdWFkNjJcdWFkNjQiLDcsIlx1YWQ2ZVx1YWQ2Zlx1YWQ3MVx1YWQ3Mlx1YWQ3N1x1YWQ3OFx1YWQ3OVx1YWQ3YVx1YWQ3ZVx1YWQ4MFx1YWQ4MyIsNCwiXHVhZDhhXHVhZDhiXHVhZDhkXHVhZDhlXHVhZDhm'@; put 'XHVhZDkxIiwxMCwiXHVhZDllIiw1LCJcdWFkYTUiLDE3LCJcdWFkYjgiLDcsIlx1YWRjMlx1YWRjM1x1YWRjNVx1YWRjNlx1YWRjN1x1YWRjOSIsNiwiXHVhZGQyXHVhZGQ0Iiw3LCJcdWFkZGRcdWFkZGVcdWFkZGZcdWFkZTFcdWFkZTJcdWFkZTNcdWFkZTUiLDE4XSxbIjgzNDEiLCJcdWFk'@; put 'ZmFcdWFkZmJcdWFkZmRcdWFkZmVcdWFlMDIiLDUsIlx1YWUwYVx1YWUwY1x1YWUwZSIsNSwiXHVhZTE1Iiw3XSxbIjgzNjEiLCJcdWFlMWQiLDE4LCJcdWFlMzJcdWFlMzNcdWFlMzVcdWFlMzZcdWFlMzlcdWFlM2JcdWFlM2MiXSxbIjgzODEiLCJcdWFlM2RcdWFlM2VcdWFlM2ZcdWFlNDJc'@; put 'dWFlNDRcdWFlNDdcdWFlNDhcdWFlNDlcdWFlNGJcdWFlNGZcdWFlNTFcdWFlNTJcdWFlNTNcdWFlNTVcdWFlNTciLDQsIlx1YWU1ZVx1YWU2Mlx1YWU2M1x1YWU2NFx1YWU2Nlx1YWU2N1x1YWU2YVx1YWU2Ylx1YWU2ZFx1YWU2ZVx1YWU2Zlx1YWU3MSIsNiwiXHVhZTdhXHVhZTdlIiw1LCJc'@; put 'dWFlODYiLDUsIlx1YWU4ZCIsNDYsIlx1YWViZlx1YWVjMVx1YWVjMlx1YWVjM1x1YWVjNSIsNiwiXHVhZWNlXHVhZWQyIiw1LCJcdWFlZGFcdWFlZGJcdWFlZGQiLDhdLFsiODQ0MSIsIlx1YWVlNlx1YWVlN1x1YWVlOVx1YWVlYVx1YWVlY1x1YWVlZSIsNSwiXHVhZWY1XHVhZWY2XHVhZWY3'@; put 'XHVhZWY5XHVhZWZhXHVhZWZiXHVhZWZkIiw4XSxbIjg0NjEiLCJcdWFmMDZcdWFmMDlcdWFmMGFcdWFmMGJcdWFmMGNcdWFmMGVcdWFmMGZcdWFmMTEiLDE4XSxbIjg0ODEiLCJcdWFmMjQiLDcsIlx1YWYyZVx1YWYyZlx1YWYzMVx1YWYzM1x1YWYzNSIsNiwiXHVhZjNlXHVhZjQwXHVhZjQ0'@; put 'XHVhZjQ1XHVhZjQ2XHVhZjQ3XHVhZjRhIiw1LCJcdWFmNTEiLDEwLCJcdWFmNWUiLDUsIlx1YWY2NiIsMTgsIlx1YWY3YSIsNSwiXHVhZjgxXHVhZjgyXHVhZjgzXHVhZjg1XHVhZjg2XHVhZjg3XHVhZjg5Iiw2LCJcdWFmOTJcdWFmOTNcdWFmOTRcdWFmOTYiLDUsIlx1YWY5ZCIsMjYsIlx1'@; put 'YWZiYVx1YWZiYlx1YWZiZFx1YWZiZSJdLFsiODU0MSIsIlx1YWZiZlx1YWZjMSIsNSwiXHVhZmNhXHVhZmNjXHVhZmNmIiw0LCJcdWFmZDUiLDYsIlx1YWZkZCIsNF0sWyI4NTYxIiwiXHVhZmUyIiw1LCJcdWFmZWEiLDUsIlx1YWZmMlx1YWZmM1x1YWZmNVx1YWZmNlx1YWZmN1x1YWZmOSIs'@; put 'NiwiXHViMDAyXHViMDAzIl0sWyI4NTgxIiwiXHViMDA1Iiw2LCJcdWIwMGRcdWIwMGVcdWIwMGZcdWIwMTFcdWIwMTJcdWIwMTNcdWIwMTUiLDYsIlx1YjAxZSIsOSwiXHViMDI5IiwyNiwiXHViMDQ2XHViMDQ3XHViMDQ5XHViMDRiXHViMDRkXHViMDRmXHViMDUwXHViMDUxXHViMDUyXHVi'@; put 'MDU2XHViMDU4XHViMDVhXHViMDViXHViMDVjXHViMDVlIiwyOSwiXHViMDdlXHViMDdmXHViMDgxXHViMDgyXHViMDgzXHViMDg1Iiw2LCJcdWIwOGVcdWIwOTBcdWIwOTIiLDUsIlx1YjA5Ylx1YjA5ZFx1YjA5ZVx1YjBhM1x1YjBhNCJdLFsiODY0MSIsIlx1YjBhNVx1YjBhNlx1YjBhN1x1'@; put 'YjBhYVx1YjBiMFx1YjBiMlx1YjBiNlx1YjBiN1x1YjBiOVx1YjBiYVx1YjBiYlx1YjBiZCIsNiwiXHViMGM2XHViMGNhIiw1LCJcdWIwZDIiXSxbIjg2NjEiLCJcdWIwZDNcdWIwZDVcdWIwZDZcdWIwZDdcdWIwZDkiLDYsIlx1YjBlMVx1YjBlMlx1YjBlM1x1YjBlNFx1YjBlNiIsMTBdLFsi'@; put 'ODY4MSIsIlx1YjBmMSIsMjIsIlx1YjEwYVx1YjEwZFx1YjEwZVx1YjEwZlx1YjExMVx1YjExNFx1YjExNVx1YjExNlx1YjExN1x1YjExYVx1YjExZSIsNCwiXHViMTI2XHViMTI3XHViMTI5XHViMTJhXHViMTJiXHViMTJkIiw2LCJcdWIxMzZcdWIxM2EiLDUsIlx1YjE0Mlx1YjE0M1x1YjE0'@; put 'NVx1YjE0Nlx1YjE0N1x1YjE0OSIsNiwiXHViMTUyXHViMTUzXHViMTU2XHViMTU3XHViMTU5XHViMTVhXHViMTViXHViMTVkXHViMTVlXHViMTVmXHViMTYxIiwyMiwiXHViMTdhXHViMTdiXHViMTdkXHViMTdlXHViMTdmXHViMTgxXHViMTgzIiw0LCJcdWIxOGFcdWIxOGNcdWIxOGVcdWIx'@; put 'OGZcdWIxOTBcdWIxOTFcdWIxOTVcdWIxOTZcdWIxOTdcdWIxOTlcdWIxOWFcdWIxOWJcdWIxOWQiXSxbIjg3NDEiLCJcdWIxOWUiLDksIlx1YjFhOSIsMTVdLFsiODc2MSIsIlx1YjFiOSIsMTgsIlx1YjFjZFx1YjFjZVx1YjFjZlx1YjFkMVx1YjFkMlx1YjFkM1x1YjFkNSJdLFsiODc4MSIs'@; put 'Ilx1YjFkNiIsNSwiXHViMWRlXHViMWUwIiw3LCJcdWIxZWFcdWIxZWJcdWIxZWRcdWIxZWVcdWIxZWZcdWIxZjEiLDcsIlx1YjFmYVx1YjFmY1x1YjFmZSIsNSwiXHViMjA2XHViMjA3XHViMjA5XHViMjBhXHViMjBkIiw2LCJcdWIyMTZcdWIyMThcdWIyMWEiLDUsIlx1YjIyMSIsMTgsIlx1'@; put 'YjIzNSIsNiwiXHViMjNkIiwyNiwiXHViMjU5XHViMjVhXHViMjViXHViMjVkXHViMjVlXHViMjVmXHViMjYxIiw2LCJcdWIyNmEiLDRdLFsiODg0MSIsIlx1YjI2ZiIsNCwiXHViMjc2Iiw1LCJcdWIyN2QiLDYsIlx1YjI4Nlx1YjI4N1x1YjI4OFx1YjI4YSIsNF0sWyI4ODYxIiwiXHViMjhm'@; put 'XHViMjkyXHViMjkzXHViMjk1XHViMjk2XHViMjk3XHViMjliIiw0LCJcdWIyYTJcdWIyYTRcdWIyYTdcdWIyYThcdWIyYTlcdWIyYWJcdWIyYWRcdWIyYWVcdWIyYWZcdWIyYjFcdWIyYjJcdWIyYjNcdWIyYjVcdWIyYjZcdWIyYjciXSxbIjg4ODEiLCJcdWIyYjgiLDE1LCJcdWIyY2FcdWIy'@; put 'Y2JcdWIyY2RcdWIyY2VcdWIyY2ZcdWIyZDFcdWIyZDMiLDQsIlx1YjJkYVx1YjJkY1x1YjJkZVx1YjJkZlx1YjJlMFx1YjJlMVx1YjJlM1x1YjJlN1x1YjJlOVx1YjJlYVx1YjJmMFx1YjJmMVx1YjJmMlx1YjJmNlx1YjJmY1x1YjJmZFx1YjJmZVx1YjMwMlx1YjMwM1x1YjMwNVx1YjMwNlx1'@; put 'YjMwN1x1YjMwOSIsNiwiXHViMzEyXHViMzE2Iiw1LCJcdWIzMWQiLDU0LCJcdWIzNTdcdWIzNTlcdWIzNWFcdWIzNWRcdWIzNjBcdWIzNjFcdWIzNjJcdWIzNjMiXSxbIjg5NDEiLCJcdWIzNjZcdWIzNjhcdWIzNmFcdWIzNmNcdWIzNmRcdWIzNmZcdWIzNzJcdWIzNzNcdWIzNzVcdWIzNzZc'@; put 'dWIzNzdcdWIzNzkiLDYsIlx1YjM4Mlx1YjM4NiIsNSwiXHViMzhkIl0sWyI4OTYxIiwiXHViMzhlXHViMzhmXHViMzkxXHViMzkyXHViMzkzXHViMzk1IiwxMCwiXHViM2EyIiw1LCJcdWIzYTlcdWIzYWFcdWIzYWJcdWIzYWQiXSxbIjg5ODEiLCJcdWIzYWUiLDIxLCJcdWIzYzZcdWIzYzdc'@; put 'dWIzYzlcdWIzY2FcdWIzY2RcdWIzY2ZcdWIzZDFcdWIzZDJcdWIzZDNcdWIzZDZcdWIzZDhcdWIzZGFcdWIzZGNcdWIzZGVcdWIzZGZcdWIzZTFcdWIzZTJcdWIzZTNcdWIzZTVcdWIzZTZcdWIzZTdcdWIzZTkiLDE4LCJcdWIzZmQiLDE4LCJcdWI0MTEiLDYsIlx1YjQxOVx1YjQxYVx1YjQx'@; put 'Ylx1YjQxZFx1YjQxZVx1YjQxZlx1YjQyMSIsNiwiXHViNDJhXHViNDJjIiw3LCJcdWI0MzUiLDE1XSxbIjhhNDEiLCJcdWI0NDUiLDEwLCJcdWI0NTJcdWI0NTNcdWI0NTVcdWI0NTZcdWI0NTdcdWI0NTkiLDYsIlx1YjQ2Mlx1YjQ2NFx1YjQ2NiJdLFsiOGE2MSIsIlx1YjQ2NyIsNCwiXHVi'@; put 'NDZkIiwxOCwiXHViNDgxXHViNDgyIl0sWyI4YTgxIiwiXHViNDgzIiw0LCJcdWI0ODkiLDE5LCJcdWI0OWUiLDUsIlx1YjRhNVx1YjRhNlx1YjRhN1x1YjRhOVx1YjRhYVx1YjRhYlx1YjRhZCIsNywiXHViNGI2XHViNGI4XHViNGJhIiw1LCJcdWI0YzFcdWI0YzJcdWI0YzNcdWI0YzVcdWI0'@; put 'YzZcdWI0YzdcdWI0YzkiLDYsIlx1YjRkMVx1YjRkMlx1YjRkM1x1YjRkNFx1YjRkNiIsNSwiXHViNGRlXHViNGRmXHViNGUxXHViNGUyXHViNGU1XHViNGU3Iiw0LCJcdWI0ZWVcdWI0ZjBcdWI0ZjIiLDUsIlx1YjRmOSIsMjYsIlx1YjUxNlx1YjUxN1x1YjUxOVx1YjUxYVx1YjUxZCJdLFsi'@; put 'OGI0MSIsIlx1YjUxZSIsNSwiXHViNTI2XHViNTJiIiw0LCJcdWI1MzJcdWI1MzNcdWI1MzVcdWI1MzZcdWI1MzdcdWI1MzkiLDYsIlx1YjU0Mlx1YjU0NiJdLFsiOGI2MSIsIlx1YjU0N1x1YjU0OFx1YjU0OVx1YjU0YVx1YjU0ZVx1YjU0Zlx1YjU1MVx1YjU1Mlx1YjU1M1x1YjU1NSIsNiwi'@; put 'XHViNTVlXHViNTYyIiw4XSxbIjhiODEiLCJcdWI1NmIiLDUyLCJcdWI1YTJcdWI1YTNcdWI1YTVcdWI1YTZcdWI1YTdcdWI1YTlcdWI1YWNcdWI1YWRcdWI1YWVcdWI1YWZcdWI1YjJcdWI1YjYiLDQsIlx1YjViZVx1YjViZlx1YjVjMVx1YjVjMlx1YjVjM1x1YjVjNSIsNiwiXHViNWNlXHVi'@; put 'NWQyIiw1LCJcdWI1ZDkiLDE4LCJcdWI1ZWQiLDE4XSxbIjhjNDEiLCJcdWI2MDAiLDE1LCJcdWI2MTJcdWI2MTNcdWI2MTVcdWI2MTZcdWI2MTdcdWI2MTkiLDRdLFsiOGM2MSIsIlx1YjYxZSIsNiwiXHViNjI2Iiw1LCJcdWI2MmQiLDYsIlx1YjYzNSIsNV0sWyI4YzgxIiwiXHViNjNiIiwx'@; put 'MiwiXHViNjQ5IiwyNiwiXHViNjY1XHViNjY2XHViNjY3XHViNjY5Iiw1MCwiXHViNjllXHViNjlmXHViNmExXHViNmEyXHViNmEzXHViNmE1Iiw1LCJcdWI2YWRcdWI2YWVcdWI2YWZcdWI2YjBcdWI2YjIiLDE2XSxbIjhkNDEiLCJcdWI2YzMiLDE2LCJcdWI2ZDUiLDhdLFsiOGQ2MSIsIlx1'@; put 'YjZkZSIsMTcsIlx1YjZmMVx1YjZmMlx1YjZmM1x1YjZmNVx1YjZmNlx1YjZmN1x1YjZmOVx1YjZmYSJdLFsiOGQ4MSIsIlx1YjZmYiIsNCwiXHViNzAyXHViNzAzXHViNzA0XHViNzA2IiwzMywiXHViNzJhXHViNzJiXHViNzJkXHViNzJlXHViNzMxIiw2LCJcdWI3M2FcdWI3M2MiLDcsIlx1'@; put 'Yjc0NVx1Yjc0Nlx1Yjc0N1x1Yjc0OVx1Yjc0YVx1Yjc0Ylx1Yjc0ZCIsNiwiXHViNzU2Iiw5LCJcdWI3NjFcdWI3NjJcdWI3NjNcdWI3NjVcdWI3NjZcdWI3NjdcdWI3NjkiLDYsIlx1Yjc3Mlx1Yjc3NFx1Yjc3NiIsNSwiXHViNzdlXHViNzdmXHViNzgxXHViNzgyXHViNzgzXHViNzg1Iiw2'@; put 'LCJcdWI3OGVcdWI3OTNcdWI3OTRcdWI3OTVcdWI3OWFcdWI3OWJcdWI3OWRcdWI3OWUiXSxbIjhlNDEiLCJcdWI3OWZcdWI3YTEiLDYsIlx1YjdhYVx1YjdhZSIsNSwiXHViN2I2XHViN2I3XHViN2I5Iiw4XSxbIjhlNjEiLCJcdWI3YzIiLDQsIlx1YjdjOFx1YjdjYSIsMTldLFsiOGU4MSIs'@; put 'Ilx1YjdkZSIsMTMsIlx1YjdlZVx1YjdlZlx1YjdmMVx1YjdmMlx1YjdmM1x1YjdmNSIsNiwiXHViN2ZlXHViODAyIiw0LCJcdWI4MGFcdWI4MGJcdWI4MGRcdWI4MGVcdWI4MGZcdWI4MTEiLDYsIlx1YjgxYVx1YjgxY1x1YjgxZSIsNSwiXHViODI2XHViODI3XHViODI5XHViODJhXHViODJi'@; put 'XHViODJkIiw2LCJcdWI4MzZcdWI4M2EiLDUsIlx1Yjg0MVx1Yjg0Mlx1Yjg0M1x1Yjg0NSIsMTEsIlx1Yjg1Mlx1Yjg1NCIsNywiXHViODVlXHViODVmXHViODYxXHViODYyXHViODYzXHViODY1Iiw2LCJcdWI4NmVcdWI4NzBcdWI4NzIiLDUsIlx1Yjg3OVx1Yjg3YVx1Yjg3Ylx1Yjg3ZCIs'@; put 'N10sWyI4ZjQxIiwiXHViODg1Iiw3LCJcdWI4OGUiLDE3XSxbIjhmNjEiLCJcdWI4YTAiLDcsIlx1YjhhOSIsNiwiXHViOGIxXHViOGIyXHViOGIzXHViOGI1XHViOGI2XHViOGI3XHViOGI5Iiw0XSxbIjhmODEiLCJcdWI4YmVcdWI4YmZcdWI4YzJcdWI4YzRcdWI4YzYiLDUsIlx1YjhjZFx1'@; put 'YjhjZVx1YjhjZlx1YjhkMVx1YjhkMlx1YjhkM1x1YjhkNSIsNywiXHViOGRlXHViOGUwXHViOGUyIiw1LCJcdWI4ZWFcdWI4ZWJcdWI4ZWRcdWI4ZWVcdWI4ZWZcdWI4ZjEiLDYsIlx1YjhmYVx1YjhmY1x1YjhmZSIsNSwiXHViOTA1IiwxOCwiXHViOTE5Iiw2LCJcdWI5MjEiLDI2LCJcdWI5'@; put 'M2VcdWI5M2ZcdWI5NDFcdWI5NDJcdWI5NDNcdWI5NDUiLDYsIlx1Yjk0ZFx1Yjk0ZVx1Yjk1MFx1Yjk1MiIsNV0sWyI5MDQxIiwiXHViOTVhXHViOTViXHViOTVkXHViOTVlXHViOTVmXHViOTYxIiw2LCJcdWI5NmFcdWI5NmNcdWI5NmUiLDUsIlx1Yjk3Nlx1Yjk3N1x1Yjk3OVx1Yjk3YVx1'@; put 'Yjk3Ylx1Yjk3ZCJdLFsiOTA2MSIsIlx1Yjk3ZSIsNSwiXHViOTg2XHViOTg4XHViOThiXHViOThjXHViOThmIiwxNV0sWyI5MDgxIiwiXHViOTlmIiwxMiwiXHViOWFlXHViOWFmXHViOWIxXHViOWIyXHViOWIzXHViOWI1Iiw2LCJcdWI5YmVcdWI5YzBcdWI5YzIiLDUsIlx1YjljYVx1Yjlj'@; put 'Ylx1YjljZFx1YjlkMyIsNCwiXHViOWRhXHViOWRjXHViOWRmXHViOWUwXHViOWUyXHViOWU2XHViOWU3XHViOWU5XHViOWVhXHViOWViXHViOWVkIiw2LCJcdWI5ZjZcdWI5ZmIiLDQsIlx1YmEwMiIsNSwiXHViYTA5IiwxMSwiXHViYTE2IiwzMywiXHViYTNhXHViYTNiXHViYTNkXHViYTNl'@; put 'XHViYTNmXHViYTQxXHViYTQzXHViYTQ0XHViYTQ1XHViYTQ2Il0sWyI5MTQxIiwiXHViYTQ3XHViYTRhXHViYTRjXHViYTRmXHViYTUwXHViYTUxXHViYTUyXHViYTU2XHViYTU3XHViYTU5XHViYTVhXHViYTViXHViYTVkIiw2LCJcdWJhNjZcdWJhNmEiLDVdLFsiOTE2MSIsIlx1YmE3Mlx1'@; put 'YmE3M1x1YmE3NVx1YmE3Nlx1YmE3N1x1YmE3OSIsOSwiXHViYTg2XHViYTg4XHViYTg5XHViYThhXHViYThiXHViYThkIiw1XSxbIjkxODEiLCJcdWJhOTMiLDIwLCJcdWJhYWFcdWJhYWRcdWJhYWVcdWJhYWZcdWJhYjFcdWJhYjMiLDQsIlx1YmFiYVx1YmFiY1x1YmFiZSIsNSwiXHViYWM1'@; put 'XHViYWM2XHViYWM3XHViYWM5IiwxNCwiXHViYWRhIiwzMywiXHViYWZkXHViYWZlXHViYWZmXHViYjAxXHViYjAyXHViYjAzXHViYjA1Iiw3LCJcdWJiMGVcdWJiMTBcdWJiMTIiLDUsIlx1YmIxOVx1YmIxYVx1YmIxYlx1YmIxZFx1YmIxZVx1YmIxZlx1YmIyMSIsNl0sWyI5MjQxIiwiXHVi'@; put 'YjI4XHViYjJhXHViYjJjIiw3LCJcdWJiMzdcdWJiMzlcdWJiM2FcdWJiM2YiLDQsIlx1YmI0Nlx1YmI0OFx1YmI0YVx1YmI0Ylx1YmI0Y1x1YmI0ZVx1YmI1MVx1YmI1MiJdLFsiOTI2MSIsIlx1YmI1M1x1YmI1NVx1YmI1Nlx1YmI1N1x1YmI1OSIsNywiXHViYjYyXHViYjY0Iiw3LCJcdWJi'@; put 'NmQiLDRdLFsiOTI4MSIsIlx1YmI3MiIsMjEsIlx1YmI4OVx1YmI4YVx1YmI4Ylx1YmI4ZFx1YmI4ZVx1YmI4Zlx1YmI5MSIsMTgsIlx1YmJhNVx1YmJhNlx1YmJhN1x1YmJhOVx1YmJhYVx1YmJhYlx1YmJhZCIsNiwiXHViYmI1XHViYmI2XHViYmI4Iiw3LCJcdWJiYzFcdWJiYzJcdWJiYzNc'@; put 'dWJiYzVcdWJiYzZcdWJiYzdcdWJiYzkiLDYsIlx1YmJkMVx1YmJkMlx1YmJkNCIsMzUsIlx1YmJmYVx1YmJmYlx1YmJmZFx1YmJmZVx1YmMwMSJdLFsiOTM0MSIsIlx1YmMwMyIsNCwiXHViYzBhXHViYzBlXHViYzEwXHViYzEyXHViYzEzXHViYzE5XHViYzFhXHViYzIwXHViYzIxXHViYzIy'@; put 'XHViYzIzXHViYzI2XHViYzI4XHViYzJhXHViYzJiXHViYzJjXHViYzJlXHViYzJmXHViYzMyXHViYzMzXHViYzM1Il0sWyI5MzYxIiwiXHViYzM2XHViYzM3XHViYzM5Iiw2LCJcdWJjNDJcdWJjNDZcdWJjNDdcdWJjNDhcdWJjNGFcdWJjNGJcdWJjNGVcdWJjNGZcdWJjNTEiLDhdLFsiOTM4'@; put 'MSIsIlx1YmM1YVx1YmM1Ylx1YmM1Y1x1YmM1ZSIsMzcsIlx1YmM4Nlx1YmM4N1x1YmM4OVx1YmM4YVx1YmM4ZFx1YmM4ZiIsNCwiXHViYzk2XHViYzk4XHViYzliIiw0LCJcdWJjYTJcdWJjYTNcdWJjYTVcdWJjYTZcdWJjYTkiLDYsIlx1YmNiMlx1YmNiNiIsNSwiXHViY2JlXHViY2JmXHVi'@; put 'Y2MxXHViY2MyXHViY2MzXHViY2M1Iiw3LCJcdWJjY2VcdWJjZDJcdWJjZDNcdWJjZDRcdWJjZDZcdWJjZDdcdWJjZDlcdWJjZGFcdWJjZGJcdWJjZGQiLDIyLCJcdWJjZjdcdWJjZjlcdWJjZmFcdWJjZmJcdWJjZmQiXSxbIjk0NDEiLCJcdWJjZmUiLDUsIlx1YmQwNlx1YmQwOFx1YmQwYSIs'@; put 'NSwiXHViZDExXHViZDEyXHViZDEzXHViZDE1Iiw4XSxbIjk0NjEiLCJcdWJkMWUiLDUsIlx1YmQyNSIsNiwiXHViZDJkIiwxMl0sWyI5NDgxIiwiXHViZDNhIiw1LCJcdWJkNDEiLDYsIlx1YmQ0YVx1YmQ0Ylx1YmQ0ZFx1YmQ0ZVx1YmQ0Zlx1YmQ1MSIsNiwiXHViZDVhIiw5LCJcdWJkNjVc'@; put 'dWJkNjZcdWJkNjdcdWJkNjkiLDIyLCJcdWJkODJcdWJkODNcdWJkODVcdWJkODZcdWJkOGIiLDQsIlx1YmQ5Mlx1YmQ5NFx1YmQ5Nlx1YmQ5N1x1YmQ5OFx1YmQ5Ylx1YmQ5ZCIsNiwiXHViZGE1IiwxMCwiXHViZGIxIiw2LCJcdWJkYjkiLDI0XSxbIjk1NDEiLCJcdWJkZDJcdWJkZDNcdWJk'@; put 'ZDZcdWJkZDdcdWJkZDlcdWJkZGFcdWJkZGJcdWJkZGQiLDExLCJcdWJkZWEiLDUsIlx1YmRmMSJdLFsiOTU2MSIsIlx1YmRmMlx1YmRmM1x1YmRmNVx1YmRmNlx1YmRmN1x1YmRmOSIsNiwiXHViZTAxXHViZTAyXHViZTA0XHViZTA2Iiw1LCJcdWJlMGVcdWJlMGZcdWJlMTFcdWJlMTJcdWJl'@; put 'MTMiXSxbIjk1ODEiLCJcdWJlMTUiLDYsIlx1YmUxZVx1YmUyMCIsMzUsIlx1YmU0Nlx1YmU0N1x1YmU0OVx1YmU0YVx1YmU0Ylx1YmU0ZFx1YmU0ZiIsNCwiXHViZTU2XHViZTU4XHViZTVjXHViZTVkXHViZTVlXHViZTVmXHViZTYyXHViZTYzXHViZTY1XHViZTY2XHViZTY3XHViZTY5XHVi'@; put 'ZTZiIiw0LCJcdWJlNzJcdWJlNzYiLDQsIlx1YmU3ZVx1YmU3Zlx1YmU4MVx1YmU4Mlx1YmU4M1x1YmU4NSIsNiwiXHViZThlXHViZTkyIiw1LCJcdWJlOWEiLDEzLCJcdWJlYTkiLDE0XSxbIjk2NDEiLCJcdWJlYjgiLDIzLCJcdWJlZDJcdWJlZDMiXSxbIjk2NjEiLCJcdWJlZDVcdWJlZDZc'@; put 'dWJlZDkiLDYsIlx1YmVlMVx1YmVlMlx1YmVlNiIsNSwiXHViZWVkIiw4XSxbIjk2ODEiLCJcdWJlZjYiLDEwLCJcdWJmMDIiLDUsIlx1YmYwYSIsMTMsIlx1YmYxYVx1YmYxZSIsMzMsIlx1YmY0Mlx1YmY0M1x1YmY0NVx1YmY0Nlx1YmY0N1x1YmY0OSIsNiwiXHViZjUyXHViZjUzXHViZjU0'@; put 'XHViZjU2Iiw0NF0sWyI5NzQxIiwiXHViZjgzIiwxNiwiXHViZjk1Iiw4XSxbIjk3NjEiLCJcdWJmOWUiLDE3LCJcdWJmYjEiLDddLFsiOTc4MSIsIlx1YmZiOSIsMTEsIlx1YmZjNiIsNSwiXHViZmNlXHViZmNmXHViZmQxXHViZmQyXHViZmQzXHViZmQ1Iiw2LCJcdWJmZGRcdWJmZGVcdWJm'@; put 'ZTBcdWJmZTIiLDg5LCJcdWMwM2RcdWMwM2VcdWMwM2YiXSxbIjk4NDEiLCJcdWMwNDAiLDE2LCJcdWMwNTIiLDUsIlx1YzA1OVx1YzA1YVx1YzA1YiJdLFsiOTg2MSIsIlx1YzA1ZFx1YzA1ZVx1YzA1Zlx1YzA2MSIsNiwiXHVjMDZhIiwxNV0sWyI5ODgxIiwiXHVjMDdhIiwyMSwiXHVjMDky'@; put 'XHVjMDkzXHVjMDk1XHVjMDk2XHVjMDk3XHVjMDk5Iiw2LCJcdWMwYTJcdWMwYTRcdWMwYTYiLDUsIlx1YzBhZVx1YzBiMVx1YzBiMlx1YzBiNyIsNCwiXHVjMGJlXHVjMGMyXHVjMGMzXHVjMGM0XHVjMGM2XHVjMGM3XHVjMGNhXHVjMGNiXHVjMGNkXHVjMGNlXHVjMGNmXHVjMGQxIiw2LCJc'@; put 'dWMwZGFcdWMwZGUiLDUsIlx1YzBlNlx1YzBlN1x1YzBlOVx1YzBlYVx1YzBlYlx1YzBlZCIsNiwiXHVjMGY2XHVjMGY4XHVjMGZhIiw1LCJcdWMxMDFcdWMxMDJcdWMxMDNcdWMxMDVcdWMxMDZcdWMxMDdcdWMxMDkiLDYsIlx1YzExMVx1YzExMlx1YzExM1x1YzExNFx1YzExNiIsNSwiXHVj'@; put 'MTIxXHVjMTIyXHVjMTI1XHVjMTI4XHVjMTI5XHVjMTJhXHVjMTJiXHVjMTJlIl0sWyI5OTQxIiwiXHVjMTMyXHVjMTMzXHVjMTM0XHVjMTM1XHVjMTM3XHVjMTNhXHVjMTNiXHVjMTNkXHVjMTNlXHVjMTNmXHVjMTQxIiw2LCJcdWMxNGFcdWMxNGUiLDUsIlx1YzE1Nlx1YzE1NyJdLFsiOTk2'@; put 'MSIsIlx1YzE1OVx1YzE1YVx1YzE1Ylx1YzE1ZCIsNiwiXHVjMTY2XHVjMTZhIiw1LCJcdWMxNzFcdWMxNzJcdWMxNzNcdWMxNzVcdWMxNzZcdWMxNzdcdWMxNzlcdWMxN2FcdWMxN2IiXSxbIjk5ODEiLCJcdWMxN2MiLDgsIlx1YzE4NiIsNSwiXHVjMThmXHVjMTkxXHVjMTkyXHVjMTkzXHVj'@; put 'MTk1XHVjMTk3Iiw0LCJcdWMxOWVcdWMxYTBcdWMxYTJcdWMxYTNcdWMxYTRcdWMxYTZcdWMxYTdcdWMxYWFcdWMxYWJcdWMxYWRcdWMxYWVcdWMxYWZcdWMxYjEiLDExLCJcdWMxYmUiLDUsIlx1YzFjNVx1YzFjNlx1YzFjN1x1YzFjOVx1YzFjYVx1YzFjYlx1YzFjZCIsNiwiXHVjMWQ1XHVj'@; put 'MWQ2XHVjMWQ5Iiw2LCJcdWMxZTFcdWMxZTJcdWMxZTNcdWMxZTVcdWMxZTZcdWMxZTdcdWMxZTkiLDYsIlx1YzFmMlx1YzFmNCIsNywiXHVjMWZlXHVjMWZmXHVjMjAxXHVjMjAyXHVjMjAzXHVjMjA1Iiw2LCJcdWMyMGVcdWMyMTBcdWMyMTIiLDUsIlx1YzIxYVx1YzIxYlx1YzIxZFx1YzIx'@; put 'ZVx1YzIyMVx1YzIyMlx1YzIyMyJdLFsiOWE0MSIsIlx1YzIyNFx1YzIyNVx1YzIyNlx1YzIyN1x1YzIyYVx1YzIyY1x1YzIyZVx1YzIzMFx1YzIzM1x1YzIzNSIsMTZdLFsiOWE2MSIsIlx1YzI0Nlx1YzI0N1x1YzI0OSIsNiwiXHVjMjUyXHVjMjUzXHVjMjU1XHVjMjU2XHVjMjU3XHVjMjU5'@; put 'Iiw2LCJcdWMyNjFcdWMyNjJcdWMyNjNcdWMyNjRcdWMyNjYiXSxbIjlhODEiLCJcdWMyNjciLDQsIlx1YzI2ZVx1YzI2Zlx1YzI3MVx1YzI3Mlx1YzI3M1x1YzI3NSIsNiwiXHVjMjdlXHVjMjgwXHVjMjgyIiw1LCJcdWMyOGEiLDUsIlx1YzI5MSIsNiwiXHVjMjk5XHVjMjlhXHVjMjljXHVj'@; put 'MjllIiw1LCJcdWMyYTZcdWMyYTdcdWMyYTlcdWMyYWFcdWMyYWJcdWMyYWUiLDUsIlx1YzJiNlx1YzJiOFx1YzJiYSIsMzMsIlx1YzJkZVx1YzJkZlx1YzJlMVx1YzJlMlx1YzJlNSIsNSwiXHVjMmVlXHVjMmYwXHVjMmYyXHVjMmYzXHVjMmY0XHVjMmY1XHVjMmY3XHVjMmZhXHVjMmZkXHVj'@; put 'MmZlXHVjMmZmXHVjMzAxIiw2LCJcdWMzMGFcdWMzMGJcdWMzMGVcdWMzMGYiXSxbIjliNDEiLCJcdWMzMTBcdWMzMTFcdWMzMTJcdWMzMTZcdWMzMTdcdWMzMTlcdWMzMWFcdWMzMWJcdWMzMWQiLDYsIlx1YzMyNlx1YzMyN1x1YzMyYSIsOF0sWyI5YjYxIiwiXHVjMzMzIiwxNywiXHVjMzQ2'@; put 'Iiw3XSxbIjliODEiLCJcdWMzNGUiLDI1LCJcdWMzNmFcdWMzNmJcdWMzNmRcdWMzNmVcdWMzNmZcdWMzNzFcdWMzNzMiLDQsIlx1YzM3YVx1YzM3Ylx1YzM3ZSIsNSwiXHVjMzg1XHVjMzg2XHVjMzg3XHVjMzg5XHVjMzhhXHVjMzhiXHVjMzhkIiw1MCwiXHVjM2MxIiwyMiwiXHVjM2RhIl0s'@; put 'WyI5YzQxIiwiXHVjM2RiXHVjM2RkXHVjM2RlXHVjM2UxXHVjM2UzIiw0LCJcdWMzZWFcdWMzZWJcdWMzZWNcdWMzZWUiLDUsIlx1YzNmNlx1YzNmN1x1YzNmOSIsNV0sWyI5YzYxIiwiXHVjM2ZmIiw4LCJcdWM0MDkiLDYsIlx1YzQxMSIsOV0sWyI5YzgxIiwiXHVjNDFiIiw4LCJcdWM0MjUi'@; put 'LDYsIlx1YzQyZFx1YzQyZVx1YzQyZlx1YzQzMVx1YzQzMlx1YzQzM1x1YzQzNSIsNiwiXHVjNDNlIiw5LCJcdWM0NDkiLDI2LCJcdWM0NjZcdWM0NjdcdWM0NjlcdWM0NmFcdWM0NmJcdWM0NmQiLDYsIlx1YzQ3Nlx1YzQ3N1x1YzQ3OFx1YzQ3YSIsNSwiXHVjNDgxIiwxOCwiXHVjNDk1Iiw2'@; put 'LCJcdWM0OWQiLDEyXSxbIjlkNDEiLCJcdWM0YWEiLDEzLCJcdWM0YjlcdWM0YmFcdWM0YmJcdWM0YmQiLDhdLFsiOWQ2MSIsIlx1YzRjNiIsMjVdLFsiOWQ4MSIsIlx1YzRlMCIsOCwiXHVjNGVhIiw1LCJcdWM0ZjJcdWM0ZjNcdWM0ZjVcdWM0ZjZcdWM0ZjdcdWM0ZjlcdWM0ZmJcdWM0ZmNc'@; put 'dWM0ZmRcdWM0ZmVcdWM1MDIiLDksIlx1YzUwZFx1YzUwZVx1YzUwZlx1YzUxMVx1YzUxMlx1YzUxM1x1YzUxNSIsNiwiXHVjNTFkIiwxMCwiXHVjNTJhXHVjNTJiXHVjNTJkXHVjNTJlXHVjNTJmXHVjNTMxIiw2LCJcdWM1M2FcdWM1M2NcdWM1M2UiLDUsIlx1YzU0Nlx1YzU0N1x1YzU0Ylx1'@; put 'YzU0Zlx1YzU1MFx1YzU1MVx1YzU1Mlx1YzU1Nlx1YzU1YVx1YzU1Ylx1YzU1Y1x1YzU1Zlx1YzU2Mlx1YzU2M1x1YzU2NVx1YzU2Nlx1YzU2N1x1YzU2OSIsNiwiXHVjNTcyXHVjNTc2Iiw1LCJcdWM1N2VcdWM1N2ZcdWM1ODFcdWM1ODJcdWM1ODNcdWM1ODVcdWM1ODZcdWM1ODhcdWM1ODlc'@; put 'dWM1OGFcdWM1OGJcdWM1OGVcdWM1OTBcdWM1OTJcdWM1OTNcdWM1OTQiXSxbIjllNDEiLCJcdWM1OTZcdWM1OTlcdWM1OWFcdWM1OWJcdWM1OWRcdWM1OWVcdWM1OWZcdWM1YTEiLDcsIlx1YzVhYSIsOSwiXHVjNWI2Il0sWyI5ZTYxIiwiXHVjNWI3XHVjNWJhXHVjNWJmIiw0LCJcdWM1Y2Jc'@; put 'dWM1Y2RcdWM1Y2ZcdWM1ZDJcdWM1ZDNcdWM1ZDVcdWM1ZDZcdWM1ZDdcdWM1ZDkiLDYsIlx1YzVlMlx1YzVlNFx1YzVlNlx1YzVlNyJdLFsiOWU4MSIsIlx1YzVlOFx1YzVlOVx1YzVlYVx1YzVlYlx1YzVlZlx1YzVmMVx1YzVmMlx1YzVmM1x1YzVmNVx1YzVmOFx1YzVmOVx1YzVmYVx1YzVm'@; put 'Ylx1YzYwMlx1YzYwM1x1YzYwNFx1YzYwOVx1YzYwYVx1YzYwYlx1YzYwZFx1YzYwZVx1YzYwZlx1YzYxMSIsNiwiXHVjNjFhXHVjNjFkIiw2LCJcdWM2MjZcdWM2MjdcdWM2MjlcdWM2MmFcdWM2MmJcdWM2MmZcdWM2MzFcdWM2MzJcdWM2MzZcdWM2MzhcdWM2M2FcdWM2M2NcdWM2M2RcdWM2'@; put 'M2VcdWM2M2ZcdWM2NDJcdWM2NDNcdWM2NDVcdWM2NDZcdWM2NDdcdWM2NDkiLDYsIlx1YzY1Mlx1YzY1NiIsNSwiXHVjNjVlXHVjNjVmXHVjNjYxIiwxMCwiXHVjNjZkXHVjNjZlXHVjNjcwXHVjNjcyIiw1LCJcdWM2N2FcdWM2N2JcdWM2N2RcdWM2N2VcdWM2N2ZcdWM2ODEiLDYsIlx1YzY4'@; put 'YVx1YzY4Y1x1YzY4ZSIsNSwiXHVjNjk2XHVjNjk3XHVjNjk5XHVjNjlhXHVjNjliXHVjNjlkIiw2LCJcdWM2YTYiXSxbIjlmNDEiLCJcdWM2YThcdWM2YWEiLDUsIlx1YzZiMlx1YzZiM1x1YzZiNVx1YzZiNlx1YzZiN1x1YzZiYiIsNCwiXHVjNmMyXHVjNmM0XHVjNmM2Iiw1LCJcdWM2Y2Ui'@; put 'XSxbIjlmNjEiLCJcdWM2Y2ZcdWM2ZDFcdWM2ZDJcdWM2ZDNcdWM2ZDUiLDYsIlx1YzZkZVx1YzZkZlx1YzZlMiIsNSwiXHVjNmVhXHVjNmViXHVjNmVkXHVjNmVlXHVjNmVmXHVjNmYxXHVjNmYyIl0sWyI5ZjgxIiwiXHVjNmYzIiw0LCJcdWM2ZmFcdWM2ZmJcdWM2ZmNcdWM2ZmUiLDUsIlx1'@; put 'YzcwNlx1YzcwN1x1YzcwOVx1YzcwYVx1YzcwYlx1YzcwZCIsNiwiXHVjNzE2XHVjNzE4XHVjNzFhIiw1LCJcdWM3MjJcdWM3MjNcdWM3MjVcdWM3MjZcdWM3MjdcdWM3MjkiLDYsIlx1YzczMlx1YzczNFx1YzczNlx1YzczOFx1YzczOVx1YzczYVx1YzczYlx1YzczZVx1YzczZlx1Yzc0MVx1'@; put 'Yzc0Mlx1Yzc0M1x1Yzc0NSIsNCwiXHVjNzRiXHVjNzRlXHVjNzUwXHVjNzU5XHVjNzVhXHVjNzViXHVjNzVkXHVjNzVlXHVjNzVmXHVjNzYxIiw2LCJcdWM3NjlcdWM3NmFcdWM3NmMiLDcsIlx1Yzc3Nlx1Yzc3N1x1Yzc3OVx1Yzc3YVx1Yzc3Ylx1Yzc3Zlx1Yzc4MFx1Yzc4MVx1Yzc4Mlx1'@; put 'Yzc4Nlx1Yzc4Ylx1Yzc4Y1x1Yzc4ZFx1Yzc4Zlx1Yzc5Mlx1Yzc5M1x1Yzc5NVx1Yzc5OVx1Yzc5YiIsNCwiXHVjN2EyXHVjN2E3Iiw0LCJcdWM3YWVcdWM3YWZcdWM3YjFcdWM3YjJcdWM3YjNcdWM3YjVcdWM3YjZcdWM3YjciXSxbImEwNDEiLCJcdWM3YjhcdWM3YjlcdWM3YmFcdWM3YmJc'@; put 'dWM3YmVcdWM3YzIiLDUsIlx1YzdjYVx1YzdjYlx1YzdjZFx1YzdjZlx1YzdkMSIsNiwiXHVjN2Q5XHVjN2RhXHVjN2RiXHVjN2RjIl0sWyJhMDYxIiwiXHVjN2RlIiw1LCJcdWM3ZTVcdWM3ZTZcdWM3ZTdcdWM3ZTlcdWM3ZWFcdWM3ZWJcdWM3ZWQiLDEzXSxbImEwODEiLCJcdWM3ZmIiLDQs'@; put 'Ilx1YzgwMlx1YzgwM1x1YzgwNVx1YzgwNlx1YzgwN1x1YzgwOVx1YzgwYiIsNCwiXHVjODEyXHVjODE0XHVjODE3Iiw0LCJcdWM4MWVcdWM4MWZcdWM4MjFcdWM4MjJcdWM4MjNcdWM4MjUiLDYsIlx1YzgyZVx1YzgzMFx1YzgzMiIsNSwiXHVjODM5XHVjODNhXHVjODNiXHVjODNkXHVjODNl'@; put 'XHVjODNmXHVjODQxIiw2LCJcdWM4NGFcdWM4NGJcdWM4NGUiLDUsIlx1Yzg1NSIsMjYsIlx1Yzg3Mlx1Yzg3M1x1Yzg3NVx1Yzg3Nlx1Yzg3N1x1Yzg3OVx1Yzg3YiIsNCwiXHVjODgyXHVjODg0XHVjODg4XHVjODg5XHVjODhhXHVjODhlIiw1LCJcdWM4OTUiLDcsIlx1Yzg5ZVx1YzhhMFx1'@; put 'YzhhMlx1YzhhM1x1YzhhNCJdLFsiYTE0MSIsIlx1YzhhNVx1YzhhNlx1YzhhN1x1YzhhOSIsMTgsIlx1YzhiZVx1YzhiZlx1YzhjMFx1YzhjMSJdLFsiYTE2MSIsIlx1YzhjMlx1YzhjM1x1YzhjNVx1YzhjNlx1YzhjN1x1YzhjOVx1YzhjYVx1YzhjYlx1YzhjZCIsNiwiXHVjOGQ2XHVjOGQ4'@; put 'XHVjOGRhIiw1LCJcdWM4ZTJcdWM4ZTNcdWM4ZTUiXSxbImExODEiLCJcdWM4ZTYiLDE0LCJcdWM4ZjYiLDUsIlx1YzhmZVx1YzhmZlx1YzkwMVx1YzkwMlx1YzkwM1x1YzkwNyIsNCwiXHVjOTBlXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MjAyNVx1MjAyNlx4YThcdTMwMDNceGFkXHUyMDE1'@; put 'XHUyMjI1XHVmZjNjXHUyMjNjXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4Iiw5LCJceGIxXHhkN1x4ZjdcdTIyNjBcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzRceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHUyMTJiXHVmZmUwXHVmZmUxXHVmZmU1XHUyNjQyXHUyNjQw'@; put 'XHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHhhN1x1MjAzYlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjViZFx1MjViY1x1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MjE5NFx1MzAx'@; put 'M1x1MjI2YVx1MjI2Ylx1MjIxYVx1MjIzZFx1MjIxZFx1MjIzNVx1MjIyYlx1MjIyY1x1MjIwOFx1MjIwYlx1MjI4Nlx1MjI4N1x1MjI4Mlx1MjI4M1x1MjIyYVx1MjIyOVx1MjIyN1x1MjIyOFx1ZmZlMiJdLFsiYTI0MSIsIlx1YzkxMFx1YzkxMiIsNSwiXHVjOTE5IiwxOF0sWyJhMjYxIiwi'@; put 'XHVjOTJkIiw2LCJcdWM5MzUiLDE4XSxbImEyODEiLCJcdWM5NDgiLDcsIlx1Yzk1Mlx1Yzk1M1x1Yzk1NVx1Yzk1Nlx1Yzk1N1x1Yzk1OSIsNiwiXHVjOTYyXHVjOTY0Iiw3LCJcdWM5NmRcdWM5NmVcdWM5NmZcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDNceGI0XHVmZjVlXHUwMmM3XHUwMmQ4'@; put 'XHUwMmRkXHUwMmRhXHUwMmQ5XHhiOFx1MDJkYlx4YTFceGJmXHUwMmQwXHUyMjJlXHUyMjExXHUyMjBmXHhhNFx1MjEwOVx1MjAzMFx1MjVjMVx1MjVjMFx1MjViN1x1MjViNlx1MjY2NFx1MjY2MFx1MjY2MVx1MjY2NVx1MjY2N1x1MjY2M1x1MjI5OVx1MjVjOFx1MjVhM1x1MjVkMFx1MjVk'@; put 'MVx1MjU5Mlx1MjVhNFx1MjVhNVx1MjVhOFx1MjVhN1x1MjVhNlx1MjVhOVx1MjY2OFx1MjYwZlx1MjYwZVx1MjYxY1x1MjYxZVx4YjZcdTIwMjBcdTIwMjFcdTIxOTVcdTIxOTdcdTIxOTlcdTIxOTZcdTIxOThcdTI2NmRcdTI2NjlcdTI2NmFcdTI2NmNcdTMyN2ZcdTMyMWNcdTIxMTZcdTMz'@; put 'YzdcdTIxMjJcdTMzYzJcdTMzZDhcdTIxMjFcdTIwYWNceGFlIl0sWyJhMzQxIiwiXHVjOTcxXHVjOTcyXHVjOTczXHVjOTc1Iiw2LCJcdWM5N2QiLDEwLCJcdWM5OGFcdWM5OGJcdWM5OGRcdWM5OGVcdWM5OGYiXSxbImEzNjEiLCJcdWM5OTEiLDYsIlx1Yzk5YVx1Yzk5Y1x1Yzk5ZSIsMTZd'@; put 'LFsiYTM4MSIsIlx1YzlhZiIsMTYsIlx1YzljMlx1YzljM1x1YzljNVx1YzljNlx1YzljOVx1YzljYiIsNCwiXHVjOWQyXHVjOWQ0XHVjOWQ3XHVjOWQ4XHVjOWRiXHVmZjAxIiw1OCwiXHVmZmU2XHVmZjNkIiwzMiwiXHVmZmUzIl0sWyJhNDQxIiwiXHVjOWRlXHVjOWRmXHVjOWUxXHVjOWUz'@; put 'XHVjOWU1XHVjOWU2XHVjOWU4XHVjOWU5XHVjOWVhXHVjOWViXHVjOWVlXHVjOWYyIiw1LCJcdWM5ZmFcdWM5ZmJcdWM5ZmRcdWM5ZmVcdWM5ZmZcdWNhMDFcdWNhMDJcdWNhMDNcdWNhMDQiXSxbImE0NjEiLCJcdWNhMDVcdWNhMDZcdWNhMDdcdWNhMGFcdWNhMGUiLDUsIlx1Y2ExNVx1Y2Ex'@; put 'Nlx1Y2ExN1x1Y2ExOSIsMTJdLFsiYTQ4MSIsIlx1Y2EyNlx1Y2EyN1x1Y2EyOFx1Y2EyYSIsMjgsIlx1MzEzMSIsOTNdLFsiYTU0MSIsIlx1Y2E0NyIsNCwiXHVjYTRlXHVjYTRmXHVjYTUxXHVjYTUyXHVjYTUzXHVjYTU1Iiw2LCJcdWNhNWVcdWNhNjIiLDUsIlx1Y2E2OVx1Y2E2YSJdLFsi'@; put 'YTU2MSIsIlx1Y2E2YiIsMTcsIlx1Y2E3ZSIsNSwiXHVjYTg1XHVjYTg2Il0sWyJhNTgxIiwiXHVjYTg3IiwxNiwiXHVjYTk5IiwxNCwiXHUyMTcwIiw5XSxbImE1YjAiLCJcdTIxNjAiLDldLFsiYTVjMSIsIlx1MDM5MSIsMTYsIlx1MDNhMyIsNl0sWyJhNWUxIiwiXHUwM2IxIiwxNiwiXHUw'@; put 'M2MzIiw2XSxbImE2NDEiLCJcdWNhYTgiLDE5LCJcdWNhYmVcdWNhYmZcdWNhYzFcdWNhYzJcdWNhYzNcdWNhYzUiXSxbImE2NjEiLCJcdWNhYzYiLDUsIlx1Y2FjZVx1Y2FkMFx1Y2FkMlx1Y2FkNFx1Y2FkNVx1Y2FkNlx1Y2FkN1x1Y2FkYSIsNSwiXHVjYWUxIiw2XSxbImE2ODEiLCJcdWNh'@; put 'ZThcdWNhZTlcdWNhZWFcdWNhZWJcdWNhZWQiLDYsIlx1Y2FmNSIsMTgsIlx1Y2IwOVx1Y2IwYVx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1'@; put 'MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1MjUxMlx1MjUxMVx1MjUxYVx1MjUxOVx1MjUxNlx1MjUxNVx1MjUwZVx1MjUwZFx1MjUxZVx1MjUxZlx1MjUyMVx1MjUyMlx1MjUyNlx1MjUy'@; put 'N1x1MjUyOVx1MjUyYVx1MjUyZFx1MjUyZVx1MjUzMVx1MjUzMlx1MjUzNVx1MjUzNlx1MjUzOVx1MjUzYVx1MjUzZFx1MjUzZVx1MjU0MFx1MjU0MVx1MjU0MyIsN10sWyJhNzQxIiwiXHVjYjBiIiw0LCJcdWNiMTFcdWNiMTJcdWNiMTNcdWNiMTVcdWNiMTZcdWNiMTdcdWNiMTkiLDYsIlx1'@; put 'Y2IyMiIsN10sWyJhNzYxIiwiXHVjYjJhIiwyMiwiXHVjYjQyXHVjYjQzXHVjYjQ0Il0sWyJhNzgxIiwiXHVjYjQ1XHVjYjQ2XHVjYjQ3XHVjYjRhXHVjYjRiXHVjYjRkXHVjYjRlXHVjYjRmXHVjYjUxIiw2LCJcdWNiNWFcdWNiNWJcdWNiNWNcdWNiNWUiLDUsIlx1Y2I2NSIsNywiXHUzMzk1'@; put 'XHUzMzk2XHUzMzk3XHUyMTEzXHUzMzk4XHUzM2M0XHUzM2EzXHUzM2E0XHUzM2E1XHUzM2E2XHUzMzk5Iiw5LCJcdTMzY2FcdTMzOGRcdTMzOGVcdTMzOGZcdTMzY2ZcdTMzODhcdTMzODlcdTMzYzhcdTMzYTdcdTMzYThcdTMzYjAiLDksIlx1MzM4MCIsNCwiXHUzM2JhIiw1LCJcdTMzOTAi'@; put 'LDQsIlx1MjEyNlx1MzNjMFx1MzNjMVx1MzM4YVx1MzM4Ylx1MzM4Y1x1MzNkNlx1MzNjNVx1MzNhZFx1MzNhZVx1MzNhZlx1MzNkYlx1MzNhOVx1MzNhYVx1MzNhYlx1MzNhY1x1MzNkZFx1MzNkMFx1MzNkM1x1MzNjM1x1MzNjOVx1MzNkY1x1MzNjNiJdLFsiYTg0MSIsIlx1Y2I2ZCIsMTAs'@; put 'Ilx1Y2I3YSIsMTRdLFsiYTg2MSIsIlx1Y2I4OSIsMTgsIlx1Y2I5ZCIsNl0sWyJhODgxIiwiXHVjYmE0IiwxOSwiXHVjYmI5IiwxMSwiXHhjNlx4ZDBceGFhXHUwMTI2Il0sWyJhOGE2IiwiXHUwMTMyIl0sWyJhOGE4IiwiXHUwMTNmXHUwMTQxXHhkOFx1MDE1Mlx4YmFceGRlXHUwMTY2XHUw'@; put 'MTRhIl0sWyJhOGIxIiwiXHUzMjYwIiwyNywiXHUyNGQwIiwyNSwiXHUyNDYwIiwxNCwiXHhiZFx1MjE1M1x1MjE1NFx4YmNceGJlXHUyMTViXHUyMTVjXHUyMTVkXHUyMTVlIl0sWyJhOTQxIiwiXHVjYmM1IiwxNCwiXHVjYmQ1IiwxMF0sWyJhOTYxIiwiXHVjYmUwXHVjYmUxXHVjYmUyXHVj'@; put 'YmUzXHVjYmU1XHVjYmU2XHVjYmU4XHVjYmVhIiwxOF0sWyJhOTgxIiwiXHVjYmZkIiwxNCwiXHVjYzBlXHVjYzBmXHVjYzExXHVjYzEyXHVjYzEzXHVjYzE1Iiw2LCJcdWNjMWVcdWNjMWZcdWNjMjBcdWNjMjNcdWNjMjRceGU2XHUwMTExXHhmMFx1MDEyN1x1MDEzMVx1MDEzM1x1MDEzOFx1'@; put 'MDE0MFx1MDE0Mlx4ZjhcdTAxNTNceGRmXHhmZVx1MDE2N1x1MDE0Ylx1MDE0OVx1MzIwMCIsMjcsIlx1MjQ5YyIsMjUsIlx1MjQ3NCIsMTQsIlx4YjlceGIyXHhiM1x1MjA3NFx1MjA3Zlx1MjA4MVx1MjA4Mlx1MjA4M1x1MjA4NCJdLFsiYWE0MSIsIlx1Y2MyNVx1Y2MyNlx1Y2MyYVx1Y2My'@; put 'Ylx1Y2MyZFx1Y2MyZlx1Y2MzMSIsNiwiXHVjYzNhXHVjYzNmIiw0LCJcdWNjNDZcdWNjNDdcdWNjNDlcdWNjNGFcdWNjNGJcdWNjNGRcdWNjNGUiXSxbImFhNjEiLCJcdWNjNGYiLDQsIlx1Y2M1Nlx1Y2M1YSIsNSwiXHVjYzYxXHVjYzYyXHVjYzYzXHVjYzY1XHVjYzY3XHVjYzY5Iiw2LCJc'@; put 'dWNjNzFcdWNjNzIiXSxbImFhODEiLCJcdWNjNzNcdWNjNzRcdWNjNzYiLDI5LCJcdTMwNDEiLDgyXSxbImFiNDEiLCJcdWNjOTRcdWNjOTVcdWNjOTZcdWNjOTdcdWNjOWFcdWNjOWJcdWNjOWRcdWNjOWVcdWNjOWZcdWNjYTEiLDYsIlx1Y2NhYVx1Y2NhZSIsNSwiXHVjY2I2XHVjY2I3XHVj'@; put 'Y2I5Il0sWyJhYjYxIiwiXHVjY2JhXHVjY2JiXHVjY2JkIiw2LCJcdWNjYzZcdWNjYzhcdWNjY2EiLDUsIlx1Y2NkMVx1Y2NkMlx1Y2NkM1x1Y2NkNSIsNV0sWyJhYjgxIiwiXHVjY2RiIiw4LCJcdWNjZTUiLDYsIlx1Y2NlZFx1Y2NlZVx1Y2NlZlx1Y2NmMSIsMTIsIlx1MzBhMSIsODVdLFsi'@; put 'YWM0MSIsIlx1Y2NmZVx1Y2NmZlx1Y2QwMFx1Y2QwMiIsNSwiXHVjZDBhXHVjZDBiXHVjZDBkXHVjZDBlXHVjZDBmXHVjZDExIiw2LCJcdWNkMWFcdWNkMWNcdWNkMWVcdWNkMWZcdWNkMjAiXSxbImFjNjEiLCJcdWNkMjFcdWNkMjJcdWNkMjNcdWNkMjVcdWNkMjZcdWNkMjdcdWNkMjlcdWNk'@; put 'MmFcdWNkMmJcdWNkMmQiLDExLCJcdWNkM2EiLDRdLFsiYWM4MSIsIlx1Y2QzZiIsMjgsIlx1Y2Q1ZFx1Y2Q1ZVx1Y2Q1Zlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2IiwyNV0sWyJhY2QxIiwiXHUwNDMwIiw1LCJcdTA0NTFcdTA0MzYiLDI1XSxbImFkNDEiLCJcdWNkNjFcdWNkNjJcdWNkNjNc'@; put 'dWNkNjUiLDYsIlx1Y2Q2ZVx1Y2Q3MFx1Y2Q3MiIsNSwiXHVjZDc5Iiw3XSxbImFkNjEiLCJcdWNkODEiLDYsIlx1Y2Q4OSIsMTAsIlx1Y2Q5Nlx1Y2Q5N1x1Y2Q5OVx1Y2Q5YVx1Y2Q5Ylx1Y2Q5ZFx1Y2Q5ZVx1Y2Q5ZiJdLFsiYWQ4MSIsIlx1Y2RhMFx1Y2RhMVx1Y2RhMlx1Y2RhM1x1Y2Rh'@; put 'Nlx1Y2RhOFx1Y2RhYSIsNSwiXHVjZGIxIiwxOCwiXHVjZGM1Il0sWyJhZTQxIiwiXHVjZGM2Iiw1LCJcdWNkY2RcdWNkY2VcdWNkY2ZcdWNkZDEiLDE2XSxbImFlNjEiLCJcdWNkZTIiLDUsIlx1Y2RlOVx1Y2RlYVx1Y2RlYlx1Y2RlZFx1Y2RlZVx1Y2RlZlx1Y2RmMSIsNiwiXHVjZGZhXHVj'@; put 'ZGZjXHVjZGZlIiw0XSxbImFlODEiLCJcdWNlMDNcdWNlMDVcdWNlMDZcdWNlMDdcdWNlMDlcdWNlMGFcdWNlMGJcdWNlMGQiLDYsIlx1Y2UxNVx1Y2UxNlx1Y2UxN1x1Y2UxOFx1Y2UxYSIsNSwiXHVjZTIyXHVjZTIzXHVjZTI1XHVjZTI2XHVjZTI3XHVjZTI5XHVjZTJhXHVjZTJiIl0sWyJh'@; put 'ZjQxIiwiXHVjZTJjXHVjZTJkXHVjZTJlXHVjZTJmXHVjZTMyXHVjZTM0XHVjZTM2IiwxOV0sWyJhZjYxIiwiXHVjZTRhIiwxMywiXHVjZTVhXHVjZTViXHVjZTVkXHVjZTVlXHVjZTYyIiw1LCJcdWNlNmFcdWNlNmMiXSxbImFmODEiLCJcdWNlNmUiLDUsIlx1Y2U3Nlx1Y2U3N1x1Y2U3OVx1'@; put 'Y2U3YVx1Y2U3Ylx1Y2U3ZCIsNiwiXHVjZTg2XHVjZTg4XHVjZThhIiw1LCJcdWNlOTJcdWNlOTNcdWNlOTVcdWNlOTZcdWNlOTdcdWNlOTkiXSxbImIwNDEiLCJcdWNlOWEiLDUsIlx1Y2VhMlx1Y2VhNiIsNSwiXHVjZWFlIiwxMl0sWyJiMDYxIiwiXHVjZWJiIiw1LCJcdWNlYzIiLDE5XSxb'@; put 'ImIwODEiLCJcdWNlZDYiLDEzLCJcdWNlZTZcdWNlZTdcdWNlZTlcdWNlZWFcdWNlZWQiLDYsIlx1Y2VmNlx1Y2VmYSIsNSwiXHVhYzAwXHVhYzAxXHVhYzA0XHVhYzA3XHVhYzA4XHVhYzA5XHVhYzBhXHVhYzEwIiw3LCJcdWFjMTkiLDQsIlx1YWMyMFx1YWMyNFx1YWMyY1x1YWMyZFx1YWMy'@; put 'Zlx1YWMzMFx1YWMzMVx1YWMzOFx1YWMzOVx1YWMzY1x1YWM0MFx1YWM0Ylx1YWM0ZFx1YWM1NFx1YWM1OFx1YWM1Y1x1YWM3MFx1YWM3MVx1YWM3NFx1YWM3N1x1YWM3OFx1YWM3YVx1YWM4MFx1YWM4MVx1YWM4M1x1YWM4NFx1YWM4NVx1YWM4Nlx1YWM4OVx1YWM4YVx1YWM4Ylx1YWM4Y1x1'@; put 'YWM5MFx1YWM5NFx1YWM5Y1x1YWM5ZFx1YWM5Zlx1YWNhMFx1YWNhMVx1YWNhOFx1YWNhOVx1YWNhYVx1YWNhY1x1YWNhZlx1YWNiMFx1YWNiOFx1YWNiOVx1YWNiYlx1YWNiY1x1YWNiZFx1YWNjMVx1YWNjNFx1YWNjOFx1YWNjY1x1YWNkNVx1YWNkN1x1YWNlMFx1YWNlMVx1YWNlNFx1YWNl'@; put 'N1x1YWNlOFx1YWNlYVx1YWNlY1x1YWNlZlx1YWNmMFx1YWNmMVx1YWNmM1x1YWNmNVx1YWNmNlx1YWNmY1x1YWNmZFx1YWQwMFx1YWQwNFx1YWQwNiJdLFsiYjE0MSIsIlx1Y2YwMlx1Y2YwM1x1Y2YwNVx1Y2YwNlx1Y2YwN1x1Y2YwOSIsNiwiXHVjZjEyXHVjZjE0XHVjZjE2Iiw1LCJcdWNm'@; put 'MWRcdWNmMWVcdWNmMWZcdWNmMjFcdWNmMjJcdWNmMjMiXSxbImIxNjEiLCJcdWNmMjUiLDYsIlx1Y2YyZVx1Y2YzMiIsNSwiXHVjZjM5IiwxMV0sWyJiMTgxIiwiXHVjZjQ1IiwxNCwiXHVjZjU2XHVjZjU3XHVjZjU5XHVjZjVhXHVjZjViXHVjZjVkIiw2LCJcdWNmNjZcdWNmNjhcdWNmNmFc'@; put 'dWNmNmJcdWNmNmNcdWFkMGNcdWFkMGRcdWFkMGZcdWFkMTFcdWFkMThcdWFkMWNcdWFkMjBcdWFkMjlcdWFkMmNcdWFkMmRcdWFkMzRcdWFkMzVcdWFkMzhcdWFkM2NcdWFkNDRcdWFkNDVcdWFkNDdcdWFkNDlcdWFkNTBcdWFkNTRcdWFkNThcdWFkNjFcdWFkNjNcdWFkNmNcdWFkNmRcdWFk'@; put 'NzBcdWFkNzNcdWFkNzRcdWFkNzVcdWFkNzZcdWFkN2JcdWFkN2NcdWFkN2RcdWFkN2ZcdWFkODFcdWFkODJcdWFkODhcdWFkODlcdWFkOGNcdWFkOTBcdWFkOWNcdWFkOWRcdWFkYTRcdWFkYjdcdWFkYzBcdWFkYzFcdWFkYzRcdWFkYzhcdWFkZDBcdWFkZDFcdWFkZDNcdWFkZGNcdWFkZTBc'@; put 'dWFkZTRcdWFkZjhcdWFkZjlcdWFkZmNcdWFkZmZcdWFlMDBcdWFlMDFcdWFlMDhcdWFlMDlcdWFlMGJcdWFlMGRcdWFlMTRcdWFlMzBcdWFlMzFcdWFlMzRcdWFlMzdcdWFlMzhcdWFlM2FcdWFlNDBcdWFlNDFcdWFlNDNcdWFlNDVcdWFlNDZcdWFlNGFcdWFlNGNcdWFlNGRcdWFlNGVcdWFl'@; put 'NTBcdWFlNTRcdWFlNTZcdWFlNWNcdWFlNWRcdWFlNWZcdWFlNjBcdWFlNjFcdWFlNjVcdWFlNjhcdWFlNjlcdWFlNmNcdWFlNzBcdWFlNzgiXSxbImIyNDEiLCJcdWNmNmRcdWNmNmVcdWNmNmZcdWNmNzJcdWNmNzNcdWNmNzVcdWNmNzZcdWNmNzdcdWNmNzkiLDYsIlx1Y2Y4MVx1Y2Y4Mlx1'@; put 'Y2Y4M1x1Y2Y4NFx1Y2Y4NiIsNSwiXHVjZjhkIl0sWyJiMjYxIiwiXHVjZjhlIiwxOCwiXHVjZmEyIiw1LCJcdWNmYTkiXSxbImIyODEiLCJcdWNmYWEiLDUsIlx1Y2ZiMSIsMTgsIlx1Y2ZjNSIsNiwiXHVhZTc5XHVhZTdiXHVhZTdjXHVhZTdkXHVhZTg0XHVhZTg1XHVhZThjXHVhZWJjXHVh'@; put 'ZWJkXHVhZWJlXHVhZWMwXHVhZWM0XHVhZWNjXHVhZWNkXHVhZWNmXHVhZWQwXHVhZWQxXHVhZWQ4XHVhZWQ5XHVhZWRjXHVhZWU4XHVhZWViXHVhZWVkXHVhZWY0XHVhZWY4XHVhZWZjXHVhZjA3XHVhZjA4XHVhZjBkXHVhZjEwXHVhZjJjXHVhZjJkXHVhZjMwXHVhZjMyXHVhZjM0XHVhZjNj'@; put 'XHVhZjNkXHVhZjNmXHVhZjQxXHVhZjQyXHVhZjQzXHVhZjQ4XHVhZjQ5XHVhZjUwXHVhZjVjXHVhZjVkXHVhZjY0XHVhZjY1XHVhZjc5XHVhZjgwXHVhZjg0XHVhZjg4XHVhZjkwXHVhZjkxXHVhZjk1XHVhZjljXHVhZmI4XHVhZmI5XHVhZmJjXHVhZmMwXHVhZmM3XHVhZmM4XHVhZmM5XHVh'@; put 'ZmNiXHVhZmNkXHVhZmNlXHVhZmQ0XHVhZmRjXHVhZmU4XHVhZmU5XHVhZmYwXHVhZmYxXHVhZmY0XHVhZmY4XHViMDAwXHViMDAxXHViMDA0XHViMDBjXHViMDEwXHViMDE0XHViMDFjXHViMDFkXHViMDI4XHViMDQ0XHViMDQ1XHViMDQ4XHViMDRhXHViMDRjXHViMDRlXHViMDUzXHViMDU0'@; put 'XHViMDU1XHViMDU3XHViMDU5Il0sWyJiMzQxIiwiXHVjZmNjIiwxOSwiXHVjZmUyXHVjZmUzXHVjZmU1XHVjZmU2XHVjZmU3XHVjZmU5Il0sWyJiMzYxIiwiXHVjZmVhIiw1LCJcdWNmZjJcdWNmZjRcdWNmZjYiLDUsIlx1Y2ZmZFx1Y2ZmZVx1Y2ZmZlx1ZDAwMVx1ZDAwMlx1ZDAwM1x1ZDAw'@; put 'NSIsNV0sWyJiMzgxIiwiXHVkMDBiIiw1LCJcdWQwMTIiLDUsIlx1ZDAxOSIsMTksIlx1YjA1ZFx1YjA3Y1x1YjA3ZFx1YjA4MFx1YjA4NFx1YjA4Y1x1YjA4ZFx1YjA4Zlx1YjA5MVx1YjA5OFx1YjA5OVx1YjA5YVx1YjA5Y1x1YjA5Zlx1YjBhMFx1YjBhMVx1YjBhMlx1YjBhOFx1YjBhOVx1'@; put 'YjBhYiIsNCwiXHViMGIxXHViMGIzXHViMGI0XHViMGI1XHViMGI4XHViMGJjXHViMGM0XHViMGM1XHViMGM3XHViMGM4XHViMGM5XHViMGQwXHViMGQxXHViMGQ0XHViMGQ4XHViMGUwXHViMGU1XHViMTA4XHViMTA5XHViMTBiXHViMTBjXHViMTEwXHViMTEyXHViMTEzXHViMTE4XHViMTE5'@; put 'XHViMTFiXHViMTFjXHViMTFkXHViMTIzXHViMTI0XHViMTI1XHViMTI4XHViMTJjXHViMTM0XHViMTM1XHViMTM3XHViMTM4XHViMTM5XHViMTQwXHViMTQxXHViMTQ0XHViMTQ4XHViMTUwXHViMTUxXHViMTU0XHViMTU1XHViMTU4XHViMTVjXHViMTYwXHViMTc4XHViMTc5XHViMTdjXHVi'@; put 'MTgwXHViMTgyXHViMTg4XHViMTg5XHViMThiXHViMThkXHViMTkyXHViMTkzXHViMTk0XHViMTk4XHViMTljXHViMWE4XHViMWNjXHViMWQwXHViMWQ0XHViMWRjXHViMWRkIl0sWyJiNDQxIiwiXHVkMDJlIiw1LCJcdWQwMzZcdWQwMzdcdWQwMzlcdWQwM2FcdWQwM2JcdWQwM2QiLDYsIlx1'@; put 'ZDA0Nlx1ZDA0OFx1ZDA0YSIsNV0sWyJiNDYxIiwiXHVkMDUxXHVkMDUyXHVkMDUzXHVkMDU1XHVkMDU2XHVkMDU3XHVkMDU5Iiw2LCJcdWQwNjEiLDEwLCJcdWQwNmVcdWQwNmYiXSxbImI0ODEiLCJcdWQwNzFcdWQwNzJcdWQwNzNcdWQwNzUiLDYsIlx1ZDA3ZVx1ZDA3Zlx1ZDA4MFx1ZDA4'@; put 'MiIsMTgsIlx1YjFkZlx1YjFlOFx1YjFlOVx1YjFlY1x1YjFmMFx1YjFmOVx1YjFmYlx1YjFmZFx1YjIwNFx1YjIwNVx1YjIwOFx1YjIwYlx1YjIwY1x1YjIxNFx1YjIxNVx1YjIxN1x1YjIxOVx1YjIyMFx1YjIzNFx1YjIzY1x1YjI1OFx1YjI1Y1x1YjI2MFx1YjI2OFx1YjI2OVx1YjI3NFx1'@; put 'YjI3NVx1YjI3Y1x1YjI4NFx1YjI4NVx1YjI4OVx1YjI5MFx1YjI5MVx1YjI5NFx1YjI5OFx1YjI5OVx1YjI5YVx1YjJhMFx1YjJhMVx1YjJhM1x1YjJhNVx1YjJhNlx1YjJhYVx1YjJhY1x1YjJiMFx1YjJiNFx1YjJjOFx1YjJjOVx1YjJjY1x1YjJkMFx1YjJkMlx1YjJkOFx1YjJkOVx1YjJk'@; put 'Ylx1YjJkZFx1YjJlMlx1YjJlNFx1YjJlNVx1YjJlNlx1YjJlOFx1YjJlYiIsNCwiXHViMmYzXHViMmY0XHViMmY1XHViMmY3Iiw0LCJcdWIyZmZcdWIzMDBcdWIzMDFcdWIzMDRcdWIzMDhcdWIzMTBcdWIzMTFcdWIzMTNcdWIzMTRcdWIzMTVcdWIzMWNcdWIzNTRcdWIzNTVcdWIzNTZcdWIz'@; put 'NThcdWIzNWJcdWIzNWNcdWIzNWVcdWIzNWZcdWIzNjRcdWIzNjUiXSxbImI1NDEiLCJcdWQwOTUiLDE0LCJcdWQwYTZcdWQwYTdcdWQwYTlcdWQwYWFcdWQwYWJcdWQwYWQiLDVdLFsiYjU2MSIsIlx1ZDBiM1x1ZDBiNlx1ZDBiOFx1ZDBiYSIsNSwiXHVkMGMyXHVkMGMzXHVkMGM1XHVkMGM2'@; put 'XHVkMGM3XHVkMGNhIiw1LCJcdWQwZDJcdWQwZDYiLDRdLFsiYjU4MSIsIlx1ZDBkYlx1ZDBkZVx1ZDBkZlx1ZDBlMVx1ZDBlMlx1ZDBlM1x1ZDBlNSIsNiwiXHVkMGVlXHVkMGYyIiw1LCJcdWQwZjkiLDExLCJcdWIzNjdcdWIzNjlcdWIzNmJcdWIzNmVcdWIzNzBcdWIzNzFcdWIzNzRcdWIz'@; put 'NzhcdWIzODBcdWIzODFcdWIzODNcdWIzODRcdWIzODVcdWIzOGNcdWIzOTBcdWIzOTRcdWIzYTBcdWIzYTFcdWIzYThcdWIzYWNcdWIzYzRcdWIzYzVcdWIzYzhcdWIzY2JcdWIzY2NcdWIzY2VcdWIzZDBcdWIzZDRcdWIzZDVcdWIzZDdcdWIzZDlcdWIzZGJcdWIzZGRcdWIzZTBcdWIzZTRc'@; put 'dWIzZThcdWIzZmNcdWI0MTBcdWI0MThcdWI0MWNcdWI0MjBcdWI0MjhcdWI0MjlcdWI0MmJcdWI0MzRcdWI0NTBcdWI0NTFcdWI0NTRcdWI0NThcdWI0NjBcdWI0NjFcdWI0NjNcdWI0NjVcdWI0NmNcdWI0ODBcdWI0ODhcdWI0OWRcdWI0YTRcdWI0YThcdWI0YWNcdWI0YjVcdWI0YjdcdWI0'@; put 'YjlcdWI0YzBcdWI0YzRcdWI0YzhcdWI0ZDBcdWI0ZDVcdWI0ZGNcdWI0ZGRcdWI0ZTBcdWI0ZTNcdWI0ZTRcdWI0ZTZcdWI0ZWNcdWI0ZWRcdWI0ZWZcdWI0ZjFcdWI0ZjhcdWI1MTRcdWI1MTVcdWI1MThcdWI1MWJcdWI1MWNcdWI1MjRcdWI1MjVcdWI1MjdcdWI1MjhcdWI1MjlcdWI1MmFc'@; put 'dWI1MzBcdWI1MzFcdWI1MzRcdWI1MzgiXSxbImI2NDEiLCJcdWQxMDUiLDcsIlx1ZDEwZSIsMTddLFsiYjY2MSIsIlx1ZDEyMCIsMTUsIlx1ZDEzMlx1ZDEzM1x1ZDEzNVx1ZDEzNlx1ZDEzN1x1ZDEzOVx1ZDEzYlx1ZDEzY1x1ZDEzZFx1ZDEzZSJdLFsiYjY4MSIsIlx1ZDEzZlx1ZDE0Mlx1'@; put 'ZDE0NiIsNSwiXHVkMTRlXHVkMTRmXHVkMTUxXHVkMTUyXHVkMTUzXHVkMTU1Iiw2LCJcdWQxNWVcdWQxNjBcdWQxNjIiLDUsIlx1ZDE2OVx1ZDE2YVx1ZDE2Ylx1ZDE2ZFx1YjU0MFx1YjU0MVx1YjU0M1x1YjU0NFx1YjU0NVx1YjU0Ylx1YjU0Y1x1YjU0ZFx1YjU1MFx1YjU1NFx1YjU1Y1x1'@; put 'YjU1ZFx1YjU1Zlx1YjU2MFx1YjU2MVx1YjVhMFx1YjVhMVx1YjVhNFx1YjVhOFx1YjVhYVx1YjVhYlx1YjViMFx1YjViMVx1YjViM1x1YjViNFx1YjViNVx1YjViYlx1YjViY1x1YjViZFx1YjVjMFx1YjVjNFx1YjVjY1x1YjVjZFx1YjVjZlx1YjVkMFx1YjVkMVx1YjVkOFx1YjVlY1x1YjYx'@; put 'MFx1YjYxMVx1YjYxNFx1YjYxOFx1YjYyNVx1YjYyY1x1YjYzNFx1YjY0OFx1YjY2NFx1YjY2OFx1YjY5Y1x1YjY5ZFx1YjZhMFx1YjZhNFx1YjZhYlx1YjZhY1x1YjZiMVx1YjZkNFx1YjZmMFx1YjZmNFx1YjZmOFx1YjcwMFx1YjcwMVx1YjcwNVx1YjcyOFx1YjcyOVx1YjcyY1x1YjcyZlx1'@; put 'YjczMFx1YjczOFx1YjczOVx1YjczYlx1Yjc0NFx1Yjc0OFx1Yjc0Y1x1Yjc1NFx1Yjc1NVx1Yjc2MFx1Yjc2NFx1Yjc2OFx1Yjc3MFx1Yjc3MVx1Yjc3M1x1Yjc3NVx1Yjc3Y1x1Yjc3ZFx1Yjc4MFx1Yjc4NFx1Yjc4Y1x1Yjc4ZFx1Yjc4Zlx1Yjc5MFx1Yjc5MVx1Yjc5Mlx1Yjc5Nlx1Yjc5'@; put 'NyJdLFsiYjc0MSIsIlx1ZDE2ZSIsMTMsIlx1ZDE3ZCIsNiwiXHVkMTg1XHVkMTg2XHVkMTg3XHVkMTg5XHVkMThhIl0sWyJiNzYxIiwiXHVkMThiIiwyMCwiXHVkMWEyXHVkMWEzXHVkMWE1XHVkMWE2XHVkMWE3Il0sWyJiNzgxIiwiXHVkMWE5Iiw2LCJcdWQxYjJcdWQxYjRcdWQxYjZcdWQx'@; put 'YjdcdWQxYjhcdWQxYjlcdWQxYmJcdWQxYmRcdWQxYmVcdWQxYmZcdWQxYzEiLDE0LCJcdWI3OThcdWI3OTlcdWI3OWNcdWI3YTBcdWI3YThcdWI3YTlcdWI3YWJcdWI3YWNcdWI3YWRcdWI3YjRcdWI3YjVcdWI3YjhcdWI3YzdcdWI3YzlcdWI3ZWNcdWI3ZWRcdWI3ZjBcdWI3ZjRcdWI3ZmNc'@; put 'dWI3ZmRcdWI3ZmZcdWI4MDBcdWI4MDFcdWI4MDdcdWI4MDhcdWI4MDlcdWI4MGNcdWI4MTBcdWI4MThcdWI4MTlcdWI4MWJcdWI4MWRcdWI4MjRcdWI4MjVcdWI4MjhcdWI4MmNcdWI4MzRcdWI4MzVcdWI4MzdcdWI4MzhcdWI4MzlcdWI4NDBcdWI4NDRcdWI4NTFcdWI4NTNcdWI4NWNcdWI4'@; put 'NWRcdWI4NjBcdWI4NjRcdWI4NmNcdWI4NmRcdWI4NmZcdWI4NzFcdWI4NzhcdWI4N2NcdWI4OGRcdWI4YThcdWI4YjBcdWI4YjRcdWI4YjhcdWI4YzBcdWI4YzFcdWI4YzNcdWI4YzVcdWI4Y2NcdWI4ZDBcdWI4ZDRcdWI4ZGRcdWI4ZGZcdWI4ZTFcdWI4ZThcdWI4ZTlcdWI4ZWNcdWI4ZjBc'@; put 'dWI4ZjhcdWI4ZjlcdWI4ZmJcdWI4ZmRcdWI5MDRcdWI5MThcdWI5MjBcdWI5M2NcdWI5M2RcdWI5NDBcdWI5NDRcdWI5NGNcdWI5NGZcdWI5NTFcdWI5NThcdWI5NTlcdWI5NWNcdWI5NjBcdWI5NjhcdWI5NjkiXSxbImI4NDEiLCJcdWQxZDAiLDcsIlx1ZDFkOSIsMTddLFsiYjg2MSIsIlx1'@; put 'ZDFlYiIsOCwiXHVkMWY1XHVkMWY2XHVkMWY3XHVkMWY5IiwxM10sWyJiODgxIiwiXHVkMjA4XHVkMjBhIiw1LCJcdWQyMTEiLDI0LCJcdWI5NmJcdWI5NmRcdWI5NzRcdWI5NzVcdWI5NzhcdWI5N2NcdWI5ODRcdWI5ODVcdWI5ODdcdWI5ODlcdWI5OGFcdWI5OGRcdWI5OGVcdWI5YWNcdWI5'@; put 'YWRcdWI5YjBcdWI5YjRcdWI5YmNcdWI5YmRcdWI5YmZcdWI5YzFcdWI5YzhcdWI5YzlcdWI5Y2NcdWI5Y2UiLDQsIlx1YjlkOFx1YjlkOVx1YjlkYlx1YjlkZFx1YjlkZVx1YjllMVx1YjllM1x1YjllNFx1YjllNVx1YjllOFx1YjllY1x1YjlmNFx1YjlmNVx1YjlmN1x1YjlmOFx1YjlmOVx1'@; put 'YjlmYVx1YmEwMFx1YmEwMVx1YmEwOFx1YmExNVx1YmEzOFx1YmEzOVx1YmEzY1x1YmE0MFx1YmE0Mlx1YmE0OFx1YmE0OVx1YmE0Ylx1YmE0ZFx1YmE0ZVx1YmE1M1x1YmE1NFx1YmE1NVx1YmE1OFx1YmE1Y1x1YmE2NFx1YmE2NVx1YmE2N1x1YmE2OFx1YmE2OVx1YmE3MFx1YmE3MVx1YmE3'@; put 'NFx1YmE3OFx1YmE4M1x1YmE4NFx1YmE4NVx1YmE4N1x1YmE4Y1x1YmFhOFx1YmFhOVx1YmFhYlx1YmFhY1x1YmFiMFx1YmFiMlx1YmFiOFx1YmFiOVx1YmFiYlx1YmFiZFx1YmFjNFx1YmFjOFx1YmFkOFx1YmFkOVx1YmFmYyJdLFsiYjk0MSIsIlx1ZDIyYVx1ZDIyYlx1ZDIyZVx1ZDIyZlx1'@; put 'ZDIzMVx1ZDIzMlx1ZDIzM1x1ZDIzNSIsNiwiXHVkMjNlXHVkMjQwXHVkMjQyIiw1LCJcdWQyNDlcdWQyNGFcdWQyNGJcdWQyNGMiXSxbImI5NjEiLCJcdWQyNGQiLDE0LCJcdWQyNWQiLDYsIlx1ZDI2NVx1ZDI2Nlx1ZDI2N1x1ZDI2OCJdLFsiYjk4MSIsIlx1ZDI2OSIsMjIsIlx1ZDI4Mlx1'@; put 'ZDI4M1x1ZDI4NVx1ZDI4Nlx1ZDI4N1x1ZDI4OVx1ZDI4YVx1ZDI4Ylx1ZDI4Y1x1YmIwMFx1YmIwNFx1YmIwZFx1YmIwZlx1YmIxMVx1YmIxOFx1YmIxY1x1YmIyMFx1YmIyOVx1YmIyYlx1YmIzNFx1YmIzNVx1YmIzNlx1YmIzOFx1YmIzYlx1YmIzY1x1YmIzZFx1YmIzZVx1YmI0NFx1YmI0'@; put 'NVx1YmI0N1x1YmI0OVx1YmI0ZFx1YmI0Zlx1YmI1MFx1YmI1NFx1YmI1OFx1YmI2MVx1YmI2M1x1YmI2Y1x1YmI4OFx1YmI4Y1x1YmI5MFx1YmJhNFx1YmJhOFx1YmJhY1x1YmJiNFx1YmJiN1x1YmJjMFx1YmJjNFx1YmJjOFx1YmJkMFx1YmJkM1x1YmJmOFx1YmJmOVx1YmJmY1x1YmJmZlx1'@; put 'YmMwMFx1YmMwMlx1YmMwOFx1YmMwOVx1YmMwYlx1YmMwY1x1YmMwZFx1YmMwZlx1YmMxMVx1YmMxNCIsNCwiXHViYzFiIiw0LCJcdWJjMjRcdWJjMjVcdWJjMjdcdWJjMjlcdWJjMmRcdWJjMzBcdWJjMzFcdWJjMzRcdWJjMzhcdWJjNDBcdWJjNDFcdWJjNDNcdWJjNDRcdWJjNDVcdWJjNDlc'@; put 'dWJjNGNcdWJjNGRcdWJjNTBcdWJjNWRcdWJjODRcdWJjODVcdWJjODhcdWJjOGJcdWJjOGNcdWJjOGVcdWJjOTRcdWJjOTVcdWJjOTciXSxbImJhNDEiLCJcdWQyOGRcdWQyOGVcdWQyOGZcdWQyOTJcdWQyOTNcdWQyOTRcdWQyOTYiLDUsIlx1ZDI5ZFx1ZDI5ZVx1ZDI5Zlx1ZDJhMVx1ZDJh'@; put 'Mlx1ZDJhM1x1ZDJhNSIsNiwiXHVkMmFkIl0sWyJiYTYxIiwiXHVkMmFlXHVkMmFmXHVkMmIwXHVkMmIyIiw1LCJcdWQyYmFcdWQyYmJcdWQyYmRcdWQyYmVcdWQyYzFcdWQyYzMiLDQsIlx1ZDJjYVx1ZDJjYyIsNV0sWyJiYTgxIiwiXHVkMmQyXHVkMmQzXHVkMmQ1XHVkMmQ2XHVkMmQ3XHVk'@; put 'MmQ5XHVkMmRhXHVkMmRiXHVkMmRkIiw2LCJcdWQyZTYiLDksIlx1ZDJmMlx1ZDJmM1x1ZDJmNVx1ZDJmNlx1ZDJmN1x1ZDJmOVx1ZDJmYVx1YmM5OVx1YmM5YVx1YmNhMFx1YmNhMVx1YmNhNFx1YmNhN1x1YmNhOFx1YmNiMFx1YmNiMVx1YmNiM1x1YmNiNFx1YmNiNVx1YmNiY1x1YmNiZFx1'@; put 'YmNjMFx1YmNjNFx1YmNjZFx1YmNjZlx1YmNkMFx1YmNkMVx1YmNkNVx1YmNkOFx1YmNkY1x1YmNmNFx1YmNmNVx1YmNmNlx1YmNmOFx1YmNmY1x1YmQwNFx1YmQwNVx1YmQwN1x1YmQwOVx1YmQxMFx1YmQxNFx1YmQyNFx1YmQyY1x1YmQ0MFx1YmQ0OFx1YmQ0OVx1YmQ0Y1x1YmQ1MFx1YmQ1'@; put 'OFx1YmQ1OVx1YmQ2NFx1YmQ2OFx1YmQ4MFx1YmQ4MVx1YmQ4NFx1YmQ4N1x1YmQ4OFx1YmQ4OVx1YmQ4YVx1YmQ5MFx1YmQ5MVx1YmQ5M1x1YmQ5NVx1YmQ5OVx1YmQ5YVx1YmQ5Y1x1YmRhNFx1YmRiMFx1YmRiOFx1YmRkNFx1YmRkNVx1YmRkOFx1YmRkY1x1YmRlOVx1YmRmMFx1YmRmNFx1'@; put 'YmRmOFx1YmUwMFx1YmUwM1x1YmUwNVx1YmUwY1x1YmUwZFx1YmUxMFx1YmUxNFx1YmUxY1x1YmUxZFx1YmUxZlx1YmU0NFx1YmU0NVx1YmU0OFx1YmU0Y1x1YmU0ZVx1YmU1NFx1YmU1NVx1YmU1N1x1YmU1OVx1YmU1YVx1YmU1Ylx1YmU2MFx1YmU2MVx1YmU2NCJdLFsiYmI0MSIsIlx1ZDJm'@; put 'YiIsNCwiXHVkMzAyXHVkMzA0XHVkMzA2Iiw1LCJcdWQzMGZcdWQzMTFcdWQzMTJcdWQzMTNcdWQzMTVcdWQzMTciLDQsIlx1ZDMxZVx1ZDMyMlx1ZDMyMyJdLFsiYmI2MSIsIlx1ZDMyNFx1ZDMyNlx1ZDMyN1x1ZDMyYVx1ZDMyYlx1ZDMyZFx1ZDMyZVx1ZDMyZlx1ZDMzMSIsNiwiXHVkMzNh'@; put 'XHVkMzNlIiw1LCJcdWQzNDZcdWQzNDdcdWQzNDhcdWQzNDkiXSxbImJiODEiLCJcdWQzNGEiLDMxLCJcdWJlNjhcdWJlNmFcdWJlNzBcdWJlNzFcdWJlNzNcdWJlNzRcdWJlNzVcdWJlN2JcdWJlN2NcdWJlN2RcdWJlODBcdWJlODRcdWJlOGNcdWJlOGRcdWJlOGZcdWJlOTBcdWJlOTFcdWJl'@; put 'OThcdWJlOTlcdWJlYThcdWJlZDBcdWJlZDFcdWJlZDRcdWJlZDdcdWJlZDhcdWJlZTBcdWJlZTNcdWJlZTRcdWJlZTVcdWJlZWNcdWJmMDFcdWJmMDhcdWJmMDlcdWJmMThcdWJmMTlcdWJmMWJcdWJmMWNcdWJmMWRcdWJmNDBcdWJmNDFcdWJmNDRcdWJmNDhcdWJmNTBcdWJmNTFcdWJmNTVc'@; put 'dWJmOTRcdWJmYjBcdWJmYzVcdWJmY2NcdWJmY2RcdWJmZDBcdWJmZDRcdWJmZGNcdWJmZGZcdWJmZTFcdWMwM2NcdWMwNTFcdWMwNThcdWMwNWNcdWMwNjBcdWMwNjhcdWMwNjlcdWMwOTBcdWMwOTFcdWMwOTRcdWMwOThcdWMwYTBcdWMwYTFcdWMwYTNcdWMwYTVcdWMwYWNcdWMwYWRcdWMw'@; put 'YWZcdWMwYjBcdWMwYjNcdWMwYjRcdWMwYjVcdWMwYjZcdWMwYmNcdWMwYmRcdWMwYmZcdWMwYzBcdWMwYzFcdWMwYzVcdWMwYzhcdWMwYzlcdWMwY2NcdWMwZDBcdWMwZDhcdWMwZDlcdWMwZGJcdWMwZGNcdWMwZGRcdWMwZTQiXSxbImJjNDEiLCJcdWQzNmEiLDE3LCJcdWQzN2VcdWQzN2Zc'@; put 'dWQzODFcdWQzODJcdWQzODNcdWQzODVcdWQzODZcdWQzODciXSxbImJjNjEiLCJcdWQzODhcdWQzODlcdWQzOGFcdWQzOGJcdWQzOGVcdWQzOTIiLDUsIlx1ZDM5YVx1ZDM5Ylx1ZDM5ZFx1ZDM5ZVx1ZDM5Zlx1ZDNhMSIsNiwiXHVkM2FhXHVkM2FjXHVkM2FlIl0sWyJiYzgxIiwiXHVkM2Fm'@; put 'Iiw0LCJcdWQzYjVcdWQzYjZcdWQzYjdcdWQzYjlcdWQzYmFcdWQzYmJcdWQzYmQiLDYsIlx1ZDNjNlx1ZDNjN1x1ZDNjYSIsNSwiXHVkM2QxIiw1LCJcdWMwZTVcdWMwZThcdWMwZWNcdWMwZjRcdWMwZjVcdWMwZjdcdWMwZjlcdWMxMDBcdWMxMDRcdWMxMDhcdWMxMTBcdWMxMTVcdWMxMWMi'@; put 'LDQsIlx1YzEyM1x1YzEyNFx1YzEyNlx1YzEyN1x1YzEyY1x1YzEyZFx1YzEyZlx1YzEzMFx1YzEzMVx1YzEzNlx1YzEzOFx1YzEzOVx1YzEzY1x1YzE0MFx1YzE0OFx1YzE0OVx1YzE0Ylx1YzE0Y1x1YzE0ZFx1YzE1NFx1YzE1NVx1YzE1OFx1YzE1Y1x1YzE2NFx1YzE2NVx1YzE2N1x1YzE2'@; put 'OFx1YzE2OVx1YzE3MFx1YzE3NFx1YzE3OFx1YzE4NVx1YzE4Y1x1YzE4ZFx1YzE4ZVx1YzE5MFx1YzE5NFx1YzE5Nlx1YzE5Y1x1YzE5ZFx1YzE5Zlx1YzFhMVx1YzFhNVx1YzFhOFx1YzFhOVx1YzFhY1x1YzFiMFx1YzFiZFx1YzFjNFx1YzFjOFx1YzFjY1x1YzFkNFx1YzFkN1x1YzFkOFx1'@; put 'YzFlMFx1YzFlNFx1YzFlOFx1YzFmMFx1YzFmMVx1YzFmM1x1YzFmY1x1YzFmZFx1YzIwMFx1YzIwNFx1YzIwY1x1YzIwZFx1YzIwZlx1YzIxMVx1YzIxOFx1YzIxOVx1YzIxY1x1YzIxZlx1YzIyMFx1YzIyOFx1YzIyOVx1YzIyYlx1YzIyZCJdLFsiYmQ0MSIsIlx1ZDNkN1x1ZDNkOSIsNywi'@; put 'XHVkM2UyXHVkM2U0Iiw3LCJcdWQzZWVcdWQzZWZcdWQzZjFcdWQzZjJcdWQzZjNcdWQzZjVcdWQzZjZcdWQzZjciXSxbImJkNjEiLCJcdWQzZjhcdWQzZjlcdWQzZmFcdWQzZmJcdWQzZmVcdWQ0MDBcdWQ0MDIiLDUsIlx1ZDQwOSIsMTNdLFsiYmQ4MSIsIlx1ZDQxNyIsNSwiXHVkNDFlIiwy'@; put 'NSwiXHVjMjJmXHVjMjMxXHVjMjMyXHVjMjM0XHVjMjQ4XHVjMjUwXHVjMjUxXHVjMjU0XHVjMjU4XHVjMjYwXHVjMjY1XHVjMjZjXHVjMjZkXHVjMjcwXHVjMjc0XHVjMjdjXHVjMjdkXHVjMjdmXHVjMjgxXHVjMjg4XHVjMjg5XHVjMjkwXHVjMjk4XHVjMjliXHVjMjlkXHVjMmE0XHVjMmE1'@; put 'XHVjMmE4XHVjMmFjXHVjMmFkXHVjMmI0XHVjMmI1XHVjMmI3XHVjMmI5XHVjMmRjXHVjMmRkXHVjMmUwXHVjMmUzXHVjMmU0XHVjMmViXHVjMmVjXHVjMmVkXHVjMmVmXHVjMmYxXHVjMmY2XHVjMmY4XHVjMmY5XHVjMmZiXHVjMmZjXHVjMzAwXHVjMzA4XHVjMzA5XHVjMzBjXHVjMzBkXHVj'@; put 'MzEzXHVjMzE0XHVjMzE1XHVjMzE4XHVjMzFjXHVjMzI0XHVjMzI1XHVjMzI4XHVjMzI5XHVjMzQ1XHVjMzY4XHVjMzY5XHVjMzZjXHVjMzcwXHVjMzcyXHVjMzc4XHVjMzc5XHVjMzdjXHVjMzdkXHVjMzg0XHVjMzg4XHVjMzhjXHVjM2MwXHVjM2Q4XHVjM2Q5XHVjM2RjXHVjM2RmXHVjM2Uw'@; put 'XHVjM2UyXHVjM2U4XHVjM2U5XHVjM2VkXHVjM2Y0XHVjM2Y1XHVjM2Y4XHVjNDA4XHVjNDEwXHVjNDI0XHVjNDJjXHVjNDMwIl0sWyJiZTQxIiwiXHVkNDM4Iiw3LCJcdWQ0NDFcdWQ0NDJcdWQ0NDNcdWQ0NDUiLDE0XSxbImJlNjEiLCJcdWQ0NTQiLDcsIlx1ZDQ1ZFx1ZDQ1ZVx1ZDQ1Zlx1'@; put 'ZDQ2MVx1ZDQ2Mlx1ZDQ2M1x1ZDQ2NSIsNywiXHVkNDZlXHVkNDcwXHVkNDcxXHVkNDcyIl0sWyJiZTgxIiwiXHVkNDczIiw0LCJcdWQ0N2FcdWQ0N2JcdWQ0N2RcdWQ0N2VcdWQ0ODFcdWQ0ODMiLDQsIlx1ZDQ4YVx1ZDQ4Y1x1ZDQ4ZSIsNSwiXHVkNDk1Iiw4LCJcdWM0MzRcdWM0M2NcdWM0'@; put 'M2RcdWM0NDhcdWM0NjRcdWM0NjVcdWM0NjhcdWM0NmNcdWM0NzRcdWM0NzVcdWM0NzlcdWM0ODBcdWM0OTRcdWM0OWNcdWM0YjhcdWM0YmNcdWM0ZTlcdWM0ZjBcdWM0ZjFcdWM0ZjRcdWM0ZjhcdWM0ZmFcdWM0ZmZcdWM1MDBcdWM1MDFcdWM1MGNcdWM1MTBcdWM1MTRcdWM1MWNcdWM1Mjhc'@; put 'dWM1MjlcdWM1MmNcdWM1MzBcdWM1MzhcdWM1MzlcdWM1M2JcdWM1M2RcdWM1NDRcdWM1NDVcdWM1NDhcdWM1NDlcdWM1NGFcdWM1NGNcdWM1NGRcdWM1NGVcdWM1NTNcdWM1NTRcdWM1NTVcdWM1NTdcdWM1NThcdWM1NTlcdWM1NWRcdWM1NWVcdWM1NjBcdWM1NjFcdWM1NjRcdWM1NjhcdWM1'@; put 'NzBcdWM1NzFcdWM1NzNcdWM1NzRcdWM1NzVcdWM1N2NcdWM1N2RcdWM1ODBcdWM1ODRcdWM1ODdcdWM1OGNcdWM1OGRcdWM1OGZcdWM1OTFcdWM1OTVcdWM1OTdcdWM1OThcdWM1OWNcdWM1YTBcdWM1YTlcdWM1YjRcdWM1YjVcdWM1YjhcdWM1YjlcdWM1YmJcdWM1YmNcdWM1YmRcdWM1YmVc'@; put 'dWM1YzQiLDYsIlx1YzVjY1x1YzVjZSJdLFsiYmY0MSIsIlx1ZDQ5ZSIsMTAsIlx1ZDRhYSIsMTRdLFsiYmY2MSIsIlx1ZDRiOSIsMTgsIlx1ZDRjZFx1ZDRjZVx1ZDRjZlx1ZDRkMVx1ZDRkMlx1ZDRkM1x1ZDRkNSJdLFsiYmY4MSIsIlx1ZDRkNiIsNSwiXHVkNGRkXHVkNGRlXHVkNGUwIiw3'@; put 'LCJcdWQ0ZTlcdWQ0ZWFcdWQ0ZWJcdWQ0ZWRcdWQ0ZWVcdWQ0ZWZcdWQ0ZjEiLDYsIlx1ZDRmOVx1ZDRmYVx1ZDRmY1x1YzVkMFx1YzVkMVx1YzVkNFx1YzVkOFx1YzVlMFx1YzVlMVx1YzVlM1x1YzVlNVx1YzVlY1x1YzVlZFx1YzVlZVx1YzVmMFx1YzVmNFx1YzVmNlx1YzVmN1x1YzVmYyIs'@; put 'NSwiXHVjNjA1XHVjNjA2XHVjNjA3XHVjNjA4XHVjNjBjXHVjNjEwXHVjNjE4XHVjNjE5XHVjNjFiXHVjNjFjXHVjNjI0XHVjNjI1XHVjNjI4XHVjNjJjXHVjNjJkXHVjNjJlXHVjNjMwXHVjNjMzXHVjNjM0XHVjNjM1XHVjNjM3XHVjNjM5XHVjNjNiXHVjNjQwXHVjNjQxXHVjNjQ0XHVjNjQ4'@; put 'XHVjNjUwXHVjNjUxXHVjNjUzXHVjNjU0XHVjNjU1XHVjNjVjXHVjNjVkXHVjNjYwXHVjNjZjXHVjNjZmXHVjNjcxXHVjNjc4XHVjNjc5XHVjNjdjXHVjNjgwXHVjNjg4XHVjNjg5XHVjNjhiXHVjNjhkXHVjNjk0XHVjNjk1XHVjNjk4XHVjNjljXHVjNmE0XHVjNmE1XHVjNmE3XHVjNmE5XHVj'@; put 'NmIwXHVjNmIxXHVjNmI0XHVjNmI4XHVjNmI5XHVjNmJhXHVjNmMwXHVjNmMxXHVjNmMzXHVjNmM1XHVjNmNjXHVjNmNkXHVjNmQwXHVjNmQ0XHVjNmRjXHVjNmRkXHVjNmUwXHVjNmUxXHVjNmU4Il0sWyJjMDQxIiwiXHVkNGZlIiw1LCJcdWQ1MDVcdWQ1MDZcdWQ1MDdcdWQ1MDlcdWQ1MGFc'@; put 'dWQ1MGJcdWQ1MGQiLDYsIlx1ZDUxNlx1ZDUxOCIsNV0sWyJjMDYxIiwiXHVkNTFlIiwyNV0sWyJjMDgxIiwiXHVkNTM4XHVkNTM5XHVkNTNhXHVkNTNiXHVkNTNlXHVkNTNmXHVkNTQxXHVkNTQyXHVkNTQzXHVkNTQ1Iiw2LCJcdWQ1NGVcdWQ1NTBcdWQ1NTIiLDUsIlx1ZDU1YVx1ZDU1Ylx1'@; put 'ZDU1ZFx1ZDU1ZVx1ZDU1Zlx1ZDU2MVx1ZDU2Mlx1ZDU2M1x1YzZlOVx1YzZlY1x1YzZmMFx1YzZmOFx1YzZmOVx1YzZmZFx1YzcwNFx1YzcwNVx1YzcwOFx1YzcwY1x1YzcxNFx1YzcxNVx1YzcxN1x1YzcxOVx1YzcyMFx1YzcyMVx1YzcyNFx1YzcyOFx1YzczMFx1YzczMVx1YzczM1x1Yzcz'@; put 'NVx1YzczN1x1YzczY1x1YzczZFx1Yzc0MFx1Yzc0NFx1Yzc0YVx1Yzc0Y1x1Yzc0ZFx1Yzc0Zlx1Yzc1MSIsNywiXHVjNzVjXHVjNzYwXHVjNzY4XHVjNzZiXHVjNzc0XHVjNzc1XHVjNzc4XHVjNzdjXHVjNzdkXHVjNzdlXHVjNzgzXHVjNzg0XHVjNzg1XHVjNzg3XHVjNzg4XHVjNzg5XHVj'@; put 'NzhhXHVjNzhlXHVjNzkwXHVjNzkxXHVjNzk0XHVjNzk2XHVjNzk3XHVjNzk4XHVjNzlhXHVjN2EwXHVjN2ExXHVjN2EzXHVjN2E0XHVjN2E1XHVjN2E2XHVjN2FjXHVjN2FkXHVjN2IwXHVjN2I0XHVjN2JjXHVjN2JkXHVjN2JmXHVjN2MwXHVjN2MxXHVjN2M4XHVjN2M5XHVjN2NjXHVjN2Nl'@; put 'XHVjN2QwXHVjN2Q4XHVjN2RkXHVjN2U0XHVjN2U4XHVjN2VjXHVjODAwXHVjODAxXHVjODA0XHVjODA4XHVjODBhIl0sWyJjMTQxIiwiXHVkNTY0XHVkNTY2XHVkNTY3XHVkNTZhXHVkNTZjXHVkNTZlIiw1LCJcdWQ1NzZcdWQ1NzdcdWQ1NzlcdWQ1N2FcdWQ1N2JcdWQ1N2QiLDYsIlx1ZDU4'@; put 'Nlx1ZDU4YVx1ZDU4YiJdLFsiYzE2MSIsIlx1ZDU4Y1x1ZDU4ZFx1ZDU4ZVx1ZDU4Zlx1ZDU5MSIsMTksIlx1ZDVhNlx1ZDVhNyJdLFsiYzE4MSIsIlx1ZDVhOCIsMzEsIlx1YzgxMFx1YzgxMVx1YzgxM1x1YzgxNVx1YzgxNlx1YzgxY1x1YzgxZFx1YzgyMFx1YzgyNFx1YzgyY1x1YzgyZFx1'@; put 'YzgyZlx1YzgzMVx1YzgzOFx1YzgzY1x1Yzg0MFx1Yzg0OFx1Yzg0OVx1Yzg0Y1x1Yzg0ZFx1Yzg1NFx1Yzg3MFx1Yzg3MVx1Yzg3NFx1Yzg3OFx1Yzg3YVx1Yzg4MFx1Yzg4MVx1Yzg4M1x1Yzg4NVx1Yzg4Nlx1Yzg4N1x1Yzg4Ylx1Yzg4Y1x1Yzg4ZFx1Yzg5NFx1Yzg5ZFx1Yzg5Zlx1Yzhh'@; put 'MVx1YzhhOFx1YzhiY1x1YzhiZFx1YzhjNFx1YzhjOFx1YzhjY1x1YzhkNFx1YzhkNVx1YzhkN1x1YzhkOVx1YzhlMFx1YzhlMVx1YzhlNFx1YzhmNVx1YzhmY1x1YzhmZFx1YzkwMFx1YzkwNFx1YzkwNVx1YzkwNlx1YzkwY1x1YzkwZFx1YzkwZlx1YzkxMVx1YzkxOFx1YzkyY1x1YzkzNFx1'@; put 'Yzk1MFx1Yzk1MVx1Yzk1NFx1Yzk1OFx1Yzk2MFx1Yzk2MVx1Yzk2M1x1Yzk2Y1x1Yzk3MFx1Yzk3NFx1Yzk3Y1x1Yzk4OFx1Yzk4OVx1Yzk4Y1x1Yzk5MFx1Yzk5OFx1Yzk5OVx1Yzk5Ylx1Yzk5ZFx1YzljMFx1YzljMVx1YzljNFx1YzljN1x1YzljOFx1YzljYVx1YzlkMFx1YzlkMVx1Yzlk'@; put 'MyJdLFsiYzI0MSIsIlx1ZDVjYVx1ZDVjYlx1ZDVjZFx1ZDVjZVx1ZDVjZlx1ZDVkMVx1ZDVkMyIsNCwiXHVkNWRhXHVkNWRjXHVkNWRlIiw1LCJcdWQ1ZTZcdWQ1ZTdcdWQ1ZTlcdWQ1ZWFcdWQ1ZWJcdWQ1ZWRcdWQ1ZWUiXSxbImMyNjEiLCJcdWQ1ZWYiLDQsIlx1ZDVmNlx1ZDVmOFx1ZDVm'@; put 'YSIsNSwiXHVkNjAyXHVkNjAzXHVkNjA1XHVkNjA2XHVkNjA3XHVkNjA5Iiw2LCJcdWQ2MTIiXSxbImMyODEiLCJcdWQ2MTYiLDUsIlx1ZDYxZFx1ZDYxZVx1ZDYxZlx1ZDYyMVx1ZDYyMlx1ZDYyM1x1ZDYyNSIsNywiXHVkNjJlIiw5LCJcdWQ2M2FcdWQ2M2JcdWM5ZDVcdWM5ZDZcdWM5ZDlc'@; put 'dWM5ZGFcdWM5ZGNcdWM5ZGRcdWM5ZTBcdWM5ZTJcdWM5ZTRcdWM5ZTdcdWM5ZWNcdWM5ZWRcdWM5ZWZcdWM5ZjBcdWM5ZjFcdWM5ZjhcdWM5ZjlcdWM5ZmNcdWNhMDBcdWNhMDhcdWNhMDlcdWNhMGJcdWNhMGNcdWNhMGRcdWNhMTRcdWNhMThcdWNhMjlcdWNhNGNcdWNhNGRcdWNhNTBcdWNh'@; put 'NTRcdWNhNWNcdWNhNWRcdWNhNWZcdWNhNjBcdWNhNjFcdWNhNjhcdWNhN2RcdWNhODRcdWNhOThcdWNhYmNcdWNhYmRcdWNhYzBcdWNhYzRcdWNhY2NcdWNhY2RcdWNhY2ZcdWNhZDFcdWNhZDNcdWNhZDhcdWNhZDlcdWNhZTBcdWNhZWNcdWNhZjRcdWNiMDhcdWNiMTBcdWNiMTRcdWNiMThc'@; put 'dWNiMjBcdWNiMjFcdWNiNDFcdWNiNDhcdWNiNDlcdWNiNGNcdWNiNTBcdWNiNThcdWNiNTlcdWNiNWRcdWNiNjRcdWNiNzhcdWNiNzlcdWNiOWNcdWNiYjhcdWNiZDRcdWNiZTRcdWNiZTdcdWNiZTlcdWNjMGNcdWNjMGRcdWNjMTBcdWNjMTRcdWNjMWNcdWNjMWRcdWNjMjFcdWNjMjJcdWNj'@; put 'MjdcdWNjMjhcdWNjMjlcdWNjMmNcdWNjMmVcdWNjMzBcdWNjMzhcdWNjMzlcdWNjM2IiXSxbImMzNDEiLCJcdWQ2M2RcdWQ2M2VcdWQ2M2ZcdWQ2NDFcdWQ2NDJcdWQ2NDNcdWQ2NDRcdWQ2NDZcdWQ2NDdcdWQ2NGFcdWQ2NGNcdWQ2NGVcdWQ2NGZcdWQ2NTBcdWQ2NTJcdWQ2NTNcdWQ2NTZc'@; put 'dWQ2NTdcdWQ2NTlcdWQ2NWFcdWQ2NWJcdWQ2NWQiLDRdLFsiYzM2MSIsIlx1ZDY2MiIsNCwiXHVkNjY4XHVkNjZhIiw1LCJcdWQ2NzJcdWQ2NzNcdWQ2NzUiLDExXSxbImMzODEiLCJcdWQ2ODFcdWQ2ODJcdWQ2ODRcdWQ2ODYiLDUsIlx1ZDY4ZVx1ZDY4Zlx1ZDY5MVx1ZDY5Mlx1ZDY5M1x1'@; put 'ZDY5NSIsNywiXHVkNjllXHVkNmEwXHVkNmEyIiw1LCJcdWQ2YTlcdWQ2YWFcdWNjM2NcdWNjM2RcdWNjM2VcdWNjNDRcdWNjNDVcdWNjNDhcdWNjNGNcdWNjNTRcdWNjNTVcdWNjNTdcdWNjNThcdWNjNTlcdWNjNjBcdWNjNjRcdWNjNjZcdWNjNjhcdWNjNzBcdWNjNzVcdWNjOThcdWNjOTlc'@; put 'dWNjOWNcdWNjYTBcdWNjYThcdWNjYTlcdWNjYWJcdWNjYWNcdWNjYWRcdWNjYjRcdWNjYjVcdWNjYjhcdWNjYmNcdWNjYzRcdWNjYzVcdWNjYzdcdWNjYzlcdWNjZDBcdWNjZDRcdWNjZTRcdWNjZWNcdWNjZjBcdWNkMDFcdWNkMDhcdWNkMDlcdWNkMGNcdWNkMTBcdWNkMThcdWNkMTlcdWNk'@; put 'MWJcdWNkMWRcdWNkMjRcdWNkMjhcdWNkMmNcdWNkMzlcdWNkNWNcdWNkNjBcdWNkNjRcdWNkNmNcdWNkNmRcdWNkNmZcdWNkNzFcdWNkNzhcdWNkODhcdWNkOTRcdWNkOTVcdWNkOThcdWNkOWNcdWNkYTRcdWNkYTVcdWNkYTdcdWNkYTlcdWNkYjBcdWNkYzRcdWNkY2NcdWNkZDBcdWNkZThc'@; put 'dWNkZWNcdWNkZjBcdWNkZjhcdWNkZjlcdWNkZmJcdWNkZmRcdWNlMDRcdWNlMDhcdWNlMGNcdWNlMTRcdWNlMTlcdWNlMjBcdWNlMjFcdWNlMjRcdWNlMjhcdWNlMzBcdWNlMzFcdWNlMzNcdWNlMzUiXSxbImM0NDEiLCJcdWQ2YWJcdWQ2YWRcdWQ2YWVcdWQ2YWZcdWQ2YjEiLDcsIlx1ZDZi'@; put 'YVx1ZDZiYyIsNywiXHVkNmM2XHVkNmM3XHVkNmM5XHVkNmNhXHVkNmNiIl0sWyJjNDYxIiwiXHVkNmNkXHVkNmNlXHVkNmNmXHVkNmQwXHVkNmQyXHVkNmQzXHVkNmQ1XHVkNmQ2XHVkNmQ4XHVkNmRhIiw1LCJcdWQ2ZTFcdWQ2ZTJcdWQ2ZTNcdWQ2ZTVcdWQ2ZTZcdWQ2ZTdcdWQ2ZTkiLDRd'@; put 'LFsiYzQ4MSIsIlx1ZDZlZVx1ZDZlZlx1ZDZmMVx1ZDZmMlx1ZDZmM1x1ZDZmNFx1ZDZmNiIsNSwiXHVkNmZlXHVkNmZmXHVkNzAxXHVkNzAyXHVkNzAzXHVkNzA1IiwxMSwiXHVkNzEyXHVkNzEzXHVkNzE0XHVjZTU4XHVjZTU5XHVjZTVjXHVjZTVmXHVjZTYwXHVjZTYxXHVjZTY4XHVjZTY5'@; put 'XHVjZTZiXHVjZTZkXHVjZTc0XHVjZTc1XHVjZTc4XHVjZTdjXHVjZTg0XHVjZTg1XHVjZTg3XHVjZTg5XHVjZTkwXHVjZTkxXHVjZTk0XHVjZTk4XHVjZWEwXHVjZWExXHVjZWEzXHVjZWE0XHVjZWE1XHVjZWFjXHVjZWFkXHVjZWMxXHVjZWU0XHVjZWU1XHVjZWU4XHVjZWViXHVjZWVjXHVj'@; put 'ZWY0XHVjZWY1XHVjZWY3XHVjZWY4XHVjZWY5XHVjZjAwXHVjZjAxXHVjZjA0XHVjZjA4XHVjZjEwXHVjZjExXHVjZjEzXHVjZjE1XHVjZjFjXHVjZjIwXHVjZjI0XHVjZjJjXHVjZjJkXHVjZjJmXHVjZjMwXHVjZjMxXHVjZjM4XHVjZjU0XHVjZjU1XHVjZjU4XHVjZjVjXHVjZjY0XHVjZjY1'@; put 'XHVjZjY3XHVjZjY5XHVjZjcwXHVjZjcxXHVjZjc0XHVjZjc4XHVjZjgwXHVjZjg1XHVjZjhjXHVjZmExXHVjZmE4XHVjZmIwXHVjZmM0XHVjZmUwXHVjZmUxXHVjZmU0XHVjZmU4XHVjZmYwXHVjZmYxXHVjZmYzXHVjZmY1XHVjZmZjXHVkMDAwXHVkMDA0XHVkMDExXHVkMDE4XHVkMDJkXHVk'@; put 'MDM0XHVkMDM1XHVkMDM4XHVkMDNjIl0sWyJjNTQxIiwiXHVkNzE1XHVkNzE2XHVkNzE3XHVkNzFhXHVkNzFiXHVkNzFkXHVkNzFlXHVkNzFmXHVkNzIxIiw2LCJcdWQ3MmFcdWQ3MmNcdWQ3MmUiLDUsIlx1ZDczNlx1ZDczN1x1ZDczOSJdLFsiYzU2MSIsIlx1ZDczYVx1ZDczYlx1ZDczZCIs'@; put 'NiwiXHVkNzQ1XHVkNzQ2XHVkNzQ4XHVkNzRhIiw1LCJcdWQ3NTJcdWQ3NTNcdWQ3NTVcdWQ3NWEiLDRdLFsiYzU4MSIsIlx1ZDc1Zlx1ZDc2Mlx1ZDc2NFx1ZDc2Nlx1ZDc2N1x1ZDc2OFx1ZDc2YVx1ZDc2Ylx1ZDc2ZFx1ZDc2ZVx1ZDc2Zlx1ZDc3MVx1ZDc3Mlx1ZDc3M1x1ZDc3NSIsNiwi'@; put 'XHVkNzdlXHVkNzdmXHVkNzgwXHVkNzgyIiw1LCJcdWQ3OGFcdWQ3OGJcdWQwNDRcdWQwNDVcdWQwNDdcdWQwNDlcdWQwNTBcdWQwNTRcdWQwNThcdWQwNjBcdWQwNmNcdWQwNmRcdWQwNzBcdWQwNzRcdWQwN2NcdWQwN2RcdWQwODFcdWQwYTRcdWQwYTVcdWQwYThcdWQwYWNcdWQwYjRcdWQw'@; put 'YjVcdWQwYjdcdWQwYjlcdWQwYzBcdWQwYzFcdWQwYzRcdWQwYzhcdWQwYzlcdWQwZDBcdWQwZDFcdWQwZDNcdWQwZDRcdWQwZDVcdWQwZGNcdWQwZGRcdWQwZTBcdWQwZTRcdWQwZWNcdWQwZWRcdWQwZWZcdWQwZjBcdWQwZjFcdWQwZjhcdWQxMGRcdWQxMzBcdWQxMzFcdWQxMzRcdWQxMzhc'@; put 'dWQxM2FcdWQxNDBcdWQxNDFcdWQxNDNcdWQxNDRcdWQxNDVcdWQxNGNcdWQxNGRcdWQxNTBcdWQxNTRcdWQxNWNcdWQxNWRcdWQxNWZcdWQxNjFcdWQxNjhcdWQxNmNcdWQxN2NcdWQxODRcdWQxODhcdWQxYTBcdWQxYTFcdWQxYTRcdWQxYThcdWQxYjBcdWQxYjFcdWQxYjNcdWQxYjVcdWQx'@; put 'YmFcdWQxYmNcdWQxYzBcdWQxZDhcdWQxZjRcdWQxZjhcdWQyMDdcdWQyMDlcdWQyMTBcdWQyMmNcdWQyMmRcdWQyMzBcdWQyMzRcdWQyM2NcdWQyM2RcdWQyM2ZcdWQyNDFcdWQyNDhcdWQyNWMiXSxbImM2NDEiLCJcdWQ3OGRcdWQ3OGVcdWQ3OGZcdWQ3OTEiLDYsIlx1ZDc5YVx1ZDc5Y1x1'@; put 'ZDc5ZSIsNV0sWyJjNmExIiwiXHVkMjY0XHVkMjgwXHVkMjgxXHVkMjg0XHVkMjg4XHVkMjkwXHVkMjkxXHVkMjk1XHVkMjljXHVkMmEwXHVkMmE0XHVkMmFjXHVkMmIxXHVkMmI4XHVkMmI5XHVkMmJjXHVkMmJmXHVkMmMwXHVkMmMyXHVkMmM4XHVkMmM5XHVkMmNiXHVkMmQ0XHVkMmQ4XHVk'@; put 'MmRjXHVkMmU0XHVkMmU1XHVkMmYwXHVkMmYxXHVkMmY0XHVkMmY4XHVkMzAwXHVkMzAxXHVkMzAzXHVkMzA1XHVkMzBjXHVkMzBkXHVkMzBlXHVkMzEwXHVkMzE0XHVkMzE2XHVkMzFjXHVkMzFkXHVkMzFmXHVkMzIwXHVkMzIxXHVkMzI1XHVkMzI4XHVkMzI5XHVkMzJjXHVkMzMwXHVkMzM4'@; put 'XHVkMzM5XHVkMzNiXHVkMzNjXHVkMzNkXHVkMzQ0XHVkMzQ1XHVkMzdjXHVkMzdkXHVkMzgwXHVkMzg0XHVkMzhjXHVkMzhkXHVkMzhmXHVkMzkwXHVkMzkxXHVkMzk4XHVkMzk5XHVkMzljXHVkM2EwXHVkM2E4XHVkM2E5XHVkM2FiXHVkM2FkXHVkM2I0XHVkM2I4XHVkM2JjXHVkM2M0XHVk'@; put 'M2M1XHVkM2M4XHVkM2M5XHVkM2QwXHVkM2Q4XHVkM2UxXHVkM2UzXHVkM2VjXHVkM2VkXHVkM2YwXHVkM2Y0XHVkM2ZjXHVkM2ZkXHVkM2ZmXHVkNDAxIl0sWyJjN2ExIiwiXHVkNDA4XHVkNDFkXHVkNDQwXHVkNDQ0XHVkNDVjXHVkNDYwXHVkNDY0XHVkNDZkXHVkNDZmXHVkNDc4XHVkNDc5'@; put 'XHVkNDdjXHVkNDdmXHVkNDgwXHVkNDgyXHVkNDg4XHVkNDg5XHVkNDhiXHVkNDhkXHVkNDk0XHVkNGE5XHVkNGNjXHVkNGQwXHVkNGQ0XHVkNGRjXHVkNGRmXHVkNGU4XHVkNGVjXHVkNGYwXHVkNGY4XHVkNGZiXHVkNGZkXHVkNTA0XHVkNTA4XHVkNTBjXHVkNTE0XHVkNTE1XHVkNTE3XHVk'@; put 'NTNjXHVkNTNkXHVkNTQwXHVkNTQ0XHVkNTRjXHVkNTRkXHVkNTRmXHVkNTUxXHVkNTU4XHVkNTU5XHVkNTVjXHVkNTYwXHVkNTY1XHVkNTY4XHVkNTY5XHVkNTZiXHVkNTZkXHVkNTc0XHVkNTc1XHVkNTc4XHVkNTdjXHVkNTg0XHVkNTg1XHVkNTg3XHVkNTg4XHVkNTg5XHVkNTkwXHVkNWE1'@; put 'XHVkNWM4XHVkNWM5XHVkNWNjXHVkNWQwXHVkNWQyXHVkNWQ4XHVkNWQ5XHVkNWRiXHVkNWRkXHVkNWU0XHVkNWU1XHVkNWU4XHVkNWVjXHVkNWY0XHVkNWY1XHVkNWY3XHVkNWY5XHVkNjAwXHVkNjAxXHVkNjA0XHVkNjA4XHVkNjEwXHVkNjExXHVkNjEzXHVkNjE0XHVkNjE1XHVkNjFjXHVk'@; put 'NjIwIl0sWyJjOGExIiwiXHVkNjI0XHVkNjJkXHVkNjM4XHVkNjM5XHVkNjNjXHVkNjQwXHVkNjQ1XHVkNjQ4XHVkNjQ5XHVkNjRiXHVkNjRkXHVkNjUxXHVkNjU0XHVkNjU1XHVkNjU4XHVkNjVjXHVkNjY3XHVkNjY5XHVkNjcwXHVkNjcxXHVkNjc0XHVkNjgzXHVkNjg1XHVkNjhjXHVkNjhk'@; put 'XHVkNjkwXHVkNjk0XHVkNjlkXHVkNjlmXHVkNmExXHVkNmE4XHVkNmFjXHVkNmIwXHVkNmI5XHVkNmJiXHVkNmM0XHVkNmM1XHVkNmM4XHVkNmNjXHVkNmQxXHVkNmQ0XHVkNmQ3XHVkNmQ5XHVkNmUwXHVkNmU0XHVkNmU4XHVkNmYwXHVkNmY1XHVkNmZjXHVkNmZkXHVkNzAwXHVkNzA0XHVk'@; put 'NzExXHVkNzE4XHVkNzE5XHVkNzFjXHVkNzIwXHVkNzI4XHVkNzI5XHVkNzJiXHVkNzJkXHVkNzM0XHVkNzM1XHVkNzM4XHVkNzNjXHVkNzQ0XHVkNzQ3XHVkNzQ5XHVkNzUwXHVkNzUxXHVkNzU0XHVkNzU2XHVkNzU3XHVkNzU4XHVkNzU5XHVkNzYwXHVkNzYxXHVkNzYzXHVkNzY1XHVkNzY5'@; put 'XHVkNzZjXHVkNzcwXHVkNzc0XHVkNzdjXHVkNzdkXHVkNzgxXHVkNzg4XHVkNzg5XHVkNzhjXHVkNzkwXHVkNzk4XHVkNzk5XHVkNzliXHVkNzlkIl0sWyJjYWExIiwiXHU0ZjNkXHU0ZjczXHU1MDQ3XHU1MGY5XHU1MmEwXHU1M2VmXHU1NDc1XHU1NGU1XHU1NjA5XHU1YWMxXHU1YmI2XHU2'@; put 'Njg3XHU2N2I2XHU2N2I3XHU2N2VmXHU2YjRjXHU3M2MyXHU3NWMyXHU3YTNjXHU4MmRiXHU4MzA0XHU4ODU3XHU4ODg4XHU4YTM2XHU4Y2M4XHU4ZGNmXHU4ZWZiXHU4ZmU2XHU5OWQ1XHU1MjNiXHU1Mzc0XHU1NDA0XHU2MDZhXHU2MTY0XHU2YmJjXHU3M2NmXHU4MTFhXHU4OWJhXHU4OWQy'@; put 'XHU5NWEzXHU0ZjgzXHU1MjBhXHU1OGJlXHU1OTc4XHU1OWU2XHU1ZTcyXHU1ZTc5XHU2MWM3XHU2M2MwXHU2NzQ2XHU2N2VjXHU2ODdmXHU2Zjk3XHU3NjRlXHU3NzBiXHU3OGY1XHU3YTA4XHU3YWZmXHU3YzIxXHU4MDlkXHU4MjZlXHU4MjcxXHU4YWViXHU5NTkzXHU0ZTZiXHU1NTlkXHU2'@; put 'NmY3XHU2ZTM0XHU3OGEzXHU3YWVkXHU4NDViXHU4OTEwXHU4NzRlXHU5N2E4XHU1MmQ4XHU1NzRlXHU1ODJhXHU1ZDRjXHU2MTFmXHU2MWJlXHU2MjIxXHU2NTYyXHU2N2QxXHU2YTQ0XHU2ZTFiXHU3NTE4XHU3NWIzXHU3NmUzXHU3N2IwXHU3ZDNhXHU5MGFmXHU5NDUxXHU5NDUyXHU5Zjk1'@; put 'Il0sWyJjYmExIiwiXHU1MzIzXHU1Y2FjXHU3NTMyXHU4MGRiXHU5MjQwXHU5NTk4XHU1MjViXHU1ODA4XHU1OWRjXHU1Y2ExXHU1ZDE3XHU1ZWI3XHU1ZjNhXHU1ZjRhXHU2MTc3XHU2YzVmXHU3NTdhXHU3NTg2XHU3Y2UwXHU3ZDczXHU3ZGIxXHU3ZjhjXHU4MTU0XHU4MjIxXHU4NTkxXHU4'@; put 'OTQxXHU4YjFiXHU5MmZjXHU5NjRkXHU5YzQ3XHU0ZWNiXHU0ZWY3XHU1MDBiXHU1MWYxXHU1ODRmXHU2MTM3XHU2MTNlXHU2MTY4XHU2NTM5XHU2OWVhXHU2ZjExXHU3NWE1XHU3Njg2XHU3NmQ2XHU3Yjg3XHU4MmE1XHU4NGNiXHVmOTAwXHU5M2E3XHU5NThiXHU1NTgwXHU1YmEyXHU1NzUx'@; put 'XHVmOTAxXHU3Y2IzXHU3ZmI5XHU5MWI1XHU1MDI4XHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MzZlXHU2NGRhXHU2NGU3XHU2ZTIwXHU3MGFjXHU3OTViXHU4ZGRkXHU4ZTFlXHVmOTAyXHU5MDdkXHU5MjQ1XHU5MmY4XHU0ZTdlXHU0ZWY2XHU1MDY1XHU1ZGZlXHU1ZWZhXHU2MTA2XHU2'@; put 'OTU3XHU4MTcxXHU4NjU0XHU4ZTQ3XHU5Mzc1XHU5YTJiXHU0ZTVlXHU1MDkxXHU2NzcwXHU2ODQwXHU1MTA5XHU1MjhkXHU1MjkyXHU2YWEyIl0sWyJjY2ExIiwiXHU3N2JjXHU5MjEwXHU5ZWQ0XHU1MmFiXHU2MDJmXHU4ZmYyXHU1MDQ4XHU2MWE5XHU2M2VkXHU2NGNhXHU2ODNjXHU2YTg0'@; put 'XHU2ZmMwXHU4MTg4XHU4OWExXHU5Njk0XHU1ODA1XHU3MjdkXHU3MmFjXHU3NTA0XHU3ZDc5XHU3ZTZkXHU4MGE5XHU4OThiXHU4Yjc0XHU5MDYzXHU5ZDUxXHU2Mjg5XHU2YzdhXHU2ZjU0XHU3ZDUwXHU3ZjNhXHU4YTIzXHU1MTdjXHU2MTRhXHU3YjlkXHU4YjE5XHU5MjU3XHU5MzhjXHU0'@; put 'ZWFjXHU0ZmQzXHU1MDFlXHU1MGJlXHU1MTA2XHU1MmMxXHU1MmNkXHU1MzdmXHU1NzcwXHU1ODgzXHU1ZTlhXHU1ZjkxXHU2MTc2XHU2MWFjXHU2NGNlXHU2NTZjXHU2NjZmXHU2NmJiXHU2NmY0XHU2ODk3XHU2ZDg3XHU3MDg1XHU3MGYxXHU3NDlmXHU3NGE1XHU3NGNhXHU3NWQ5XHU3ODZj'@; put 'XHU3OGVjXHU3YWRmXHU3YWY2XHU3ZDQ1XHU3ZDkzXHU4MDE1XHU4MDNmXHU4MTFiXHU4Mzk2XHU4YjY2XHU4ZjE1XHU5MDE1XHU5M2UxXHU5ODAzXHU5ODM4XHU5YTVhXHU5YmU4XHU0ZmMyXHU1NTUzXHU1ODNhXHU1OTUxXHU1YjYzXHU1YzQ2XHU2MGI4XHU2MjEyXHU2ODQyXHU2OGIwIl0s'@; put 'WyJjZGExIiwiXHU2OGU4XHU2ZWFhXHU3NTRjXHU3Njc4XHU3OGNlXHU3YTNkXHU3Y2ZiXHU3ZTZiXHU3ZTdjXHU4YTA4XHU4YWExXHU4YzNmXHU5NjhlXHU5ZGM0XHU1M2U0XHU1M2U5XHU1NDRhXHU1NDcxXHU1NmZhXHU1OWQxXHU1YjY0XHU1YzNiXHU1ZWFiXHU2MmY3XHU2NTM3XHU2NTQ1'@; put 'XHU2NTcyXHU2NmEwXHU2N2FmXHU2OWMxXHU2Y2JkXHU3NWZjXHU3NjkwXHU3NzdlXHU3YTNmXHU3Zjk0XHU4MDAzXHU4MGExXHU4MThmXHU4MmU2XHU4MmZkXHU4M2YwXHU4NWMxXHU4ODMxXHU4OGI0XHU4YWE1XHVmOTAzXHU4ZjljXHU5MzJlXHU5NmM3XHU5ODY3XHU5YWQ4XHU5ZjEzXHU1'@; put 'NGVkXHU2NTliXHU2NmYyXHU2ODhmXHU3YTQwXHU4YzM3XHU5ZDYwXHU1NmYwXHU1NzY0XHU1ZDExXHU2NjA2XHU2OGIxXHU2OGNkXHU2ZWZlXHU3NDI4XHU4ODllXHU5YmU0XHU2YzY4XHVmOTA0XHU5YWE4XHU0ZjliXHU1MTZjXHU1MTcxXHU1MjlmXHU1YjU0XHU1ZGU1XHU2MDUwXHU2MDZk'@; put 'XHU2MmYxXHU2M2E3XHU2NTNiXHU3M2Q5XHU3YTdhXHU4NmEzXHU4Y2EyXHU5NzhmXHU0ZTMyXHU1YmUxXHU2MjA4XHU2NzljXHU3NGRjIl0sWyJjZWExIiwiXHU3OWQxXHU4M2QzXHU4YTg3XHU4YWIyXHU4ZGU4XHU5MDRlXHU5MzRiXHU5ODQ2XHU1ZWQzXHU2OWU4XHU4NWZmXHU5MGVkXHVm'@; put 'OTA1XHU1MWEwXHU1Yjk4XHU1YmVjXHU2MTYzXHU2OGZhXHU2YjNlXHU3MDRjXHU3NDJmXHU3NGQ4XHU3YmExXHU3ZjUwXHU4M2M1XHU4OWMwXHU4Y2FiXHU5NWRjXHU5OTI4XHU1MjJlXHU2MDVkXHU2MmVjXHU5MDAyXHU0ZjhhXHU1MTQ5XHU1MzIxXHU1OGQ5XHU1ZWUzXHU2NmUwXHU2ZDM4'@; put 'XHU3MDlhXHU3MmMyXHU3M2Q2XHU3YjUwXHU4MGYxXHU5NDViXHU1MzY2XHU2MzliXHU3ZjZiXHU0ZTU2XHU1MDgwXHU1ODRhXHU1OGRlXHU2MDJhXHU2MTI3XHU2MmQwXHU2OWQwXHU5YjQxXHU1YjhmXHU3ZDE4XHU4MGIxXHU4ZjVmXHU0ZWE0XHU1MGQxXHU1NGFjXHU1NWFjXHU1YjBjXHU1'@; put 'ZGEwXHU1ZGU3XHU2NTJhXHU2NTRlXHU2ODIxXHU2YTRiXHU3MmUxXHU3NjhlXHU3N2VmXHU3ZDVlXHU3ZmY5XHU4MWEwXHU4NTRlXHU4NmRmXHU4ZjAzXHU4ZjRlXHU5MGNhXHU5OTAzXHU5YTU1XHU5YmFiXHU0ZTE4XHU0ZTQ1XHU0ZTVkXHU0ZWM3XHU0ZmYxXHU1MTc3XHU1MmZlIl0sWyJj'@; put 'ZmExIiwiXHU1MzQwXHU1M2UzXHU1M2U1XHU1NDhlXHU1NjE0XHU1Nzc1XHU1N2EyXHU1YmM3XHU1ZDg3XHU1ZWQwXHU2MWZjXHU2MmQ4XHU2NTUxXHU2N2I4XHU2N2U5XHU2OWNiXHU2YjUwXHU2YmM2XHU2YmVjXHU2YzQyXHU2ZTlkXHU3MDc4XHU3MmQ3XHU3Mzk2XHU3NDAzXHU3N2JmXHU3'@; put 'N2U5XHU3YTc2XHU3ZDdmXHU4MDA5XHU4MWZjXHU4MjA1XHU4MjBhXHU4MmRmXHU4ODYyXHU4YjMzXHU4Y2ZjXHU4ZWMwXHU5MDExXHU5MGIxXHU5MjY0XHU5MmI2XHU5OWQyXHU5YTQ1XHU5Y2U5XHU5ZGQ3XHU5ZjljXHU1NzBiXHU1YzQwXHU4M2NhXHU5N2EwXHU5N2FiXHU5ZWI0XHU1NDFi'@; put 'XHU3YTk4XHU3ZmE0XHU4OGQ5XHU4ZWNkXHU5MGUxXHU1ODAwXHU1YzQ4XHU2Mzk4XHU3YTlmXHU1YmFlXHU1ZjEzXHU3YTc5XHU3YWFlXHU4MjhlXHU4ZWFjXHU1MDI2XHU1MjM4XHU1MmY4XHU1Mzc3XHU1NzA4XHU2MmYzXHU2MzcyXHU2YjBhXHU2ZGMzXHU3NzM3XHU1M2E1XHU3MzU3XHU4'@; put 'NTY4XHU4ZTc2XHU5NWQ1XHU2NzNhXHU2YWMzXHU2ZjcwXHU4YTZkXHU4ZWNjXHU5OTRiXHVmOTA2XHU2Njc3XHU2Yjc4XHU4Y2I0Il0sWyJkMGExIiwiXHU5YjNjXHVmOTA3XHU1M2ViXHU1NzJkXHU1OTRlXHU2M2M2XHU2OWZiXHU3M2VhXHU3ODQ1XHU3YWJhXHU3YWM1XHU3Y2ZlXHU4NDc1'@; put 'XHU4OThmXHU4ZDczXHU5MDM1XHU5NWE4XHU1MmZiXHU1NzQ3XHU3NTQ3XHU3YjYwXHU4M2NjXHU5MjFlXHVmOTA4XHU2YTU4XHU1MTRiXHU1MjRiXHU1Mjg3XHU2MjFmXHU2OGQ4XHU2OTc1XHU5Njk5XHU1MGM1XHU1MmE0XHU1MmU0XHU2MWMzXHU2NWE0XHU2ODM5XHU2OWZmXHU3NDdlXHU3'@; put 'YjRiXHU4MmI5XHU4M2ViXHU4OWIyXHU4YjM5XHU4ZmQxXHU5OTQ5XHVmOTA5XHU0ZWNhXHU1OTk3XHU2NGQyXHU2NjExXHU2YThlXHU3NDM0XHU3OTgxXHU3OWJkXHU4MmE5XHU4ODdlXHU4ODdmXHU4OTVmXHVmOTBhXHU5MzI2XHU0ZjBiXHU1M2NhXHU2MDI1XHU2MjcxXHU2YzcyXHU3ZDFh'@; put 'XHU3ZDY2XHU0ZTk4XHU1MTYyXHU3N2RjXHU4MGFmXHU0ZjAxXHU0ZjBlXHU1MTc2XHU1MTgwXHU1NWRjXHU1NjY4XHU1NzNiXHU1N2ZhXHU1N2ZjXHU1OTE0XHU1OTQ3XHU1OTkzXHU1YmM0XHU1YzkwXHU1ZDBlXHU1ZGYxXHU1ZTdlXHU1ZmNjXHU2MjgwXHU2NWQ3XHU2NWUzIl0sWyJkMWEx'@; put 'IiwiXHU2NzFlXHU2NzFmXHU2NzVlXHU2OGNiXHU2OGM0XHU2YTVmXHU2YjNhXHU2YzIzXHU2YzdkXHU2YzgyXHU2ZGM3XHU3Mzk4XHU3NDI2XHU3NDJhXHU3NDgyXHU3NGEzXHU3NTc4XHU3NTdmXHU3ODgxXHU3OGVmXHU3OTQxXHU3OTQ3XHU3OTQ4XHU3OTdhXHU3Yjk1XHU3ZDAwXHU3ZGJh'@; put 'XHU3Zjg4XHU4MDA2XHU4MDJkXHU4MDhjXHU4YTE4XHU4YjRmXHU4YzQ4XHU4ZDc3XHU5MzIxXHU5MzI0XHU5OGUyXHU5OTUxXHU5YTBlXHU5YTBmXHU5YTY1XHU5ZTkyXHU3ZGNhXHU0Zjc2XHU1NDA5XHU2MmVlXHU2ODU0XHU5MWQxXHU1NWFiXHU1MTNhXHVmOTBiXHVmOTBjXHU1YTFjXHU2'@; put 'MWU2XHVmOTBkXHU2MmNmXHU2MmZmXHVmOTBlIiw1LCJcdTkwYTNcdWY5MTQiLDQsIlx1OGFmZVx1ZjkxOVx1ZjkxYVx1ZjkxYlx1ZjkxY1x1NjY5Nlx1ZjkxZFx1NzE1Nlx1ZjkxZVx1ZjkxZlx1OTZlM1x1ZjkyMFx1NjM0Zlx1NjM3YVx1NTM1N1x1ZjkyMVx1Njc4Zlx1Njk2MFx1NmU3M1x1'@; put 'ZjkyMlx1NzUzN1x1ZjkyM1x1ZjkyNFx1ZjkyNSJdLFsiZDJhMSIsIlx1N2QwZFx1ZjkyNlx1ZjkyN1x1ODg3Mlx1NTZjYVx1NWExOFx1ZjkyOCIsNCwiXHU0ZTQzXHVmOTJkXHU1MTY3XHU1OTQ4XHU2N2YwXHU4MDEwXHVmOTJlXHU1OTczXHU1ZTc0XHU2NDlhXHU3OWNhXHU1ZmY1XHU2MDZj'@; put 'XHU2MmM4XHU2MzdiXHU1YmU3XHU1YmQ3XHU1MmFhXHVmOTJmXHU1OTc0XHU1ZjI5XHU2MDEyXHVmOTMwXHVmOTMxXHVmOTMyXHU3NDU5XHVmOTMzIiw1LCJcdTk5ZDFcdWY5MzkiLDEwLCJcdTZmYzNcdWY5NDRcdWY5NDVcdTgxYmZcdThmYjJcdTYwZjFcdWY5NDZcdWY5NDdcdTgxNjZcdWY5'@; put 'NDhcdWY5NDlcdTVjM2ZcdWY5NGEiLDcsIlx1NWFlOVx1OGEyNVx1Njc3Ylx1N2QxMFx1Zjk1MiIsNSwiXHU4MGZkXHVmOTU4XHVmOTU5XHU1YzNjXHU2Y2U1XHU1MzNmXHU2ZWJhXHU1OTFhXHU4MzM2Il0sWyJkM2ExIiwiXHU0ZTM5XHU0ZWI2XHU0ZjQ2XHU1NWFlXHU1NzE4XHU1OGM3XHU1'@; put 'ZjU2XHU2NWI3XHU2NWU2XHU2YTgwXHU2YmI1XHU2ZTRkXHU3N2VkXHU3YWVmXHU3YzFlXHU3ZGRlXHU4NmNiXHU4ODkyXHU5MTMyXHU5MzViXHU2NGJiXHU2ZmJlXHU3MzdhXHU3NWI4XHU5MDU0XHU1NTU2XHU1NzRkXHU2MWJhXHU2NGQ0XHU2NmM3XHU2ZGUxXHU2ZTViXHU2ZjZkXHU2ZmI5'@; put 'XHU3NWYwXHU4MDQzXHU4MWJkXHU4NTQxXHU4OTgzXHU4YWM3XHU4YjVhXHU5MzFmXHU2YzkzXHU3NTUzXHU3YjU0XHU4ZTBmXHU5MDVkXHU1NTEwXHU1ODAyXHU1ODU4XHU1ZTYyXHU2MjA3XHU2NDllXHU2OGUwXHU3NTc2XHU3Y2Q2XHU4N2IzXHU5ZWU4XHU0ZWUzXHU1Nzg4XHU1NzZlXHU1'@; put 'OTI3XHU1YzBkXHU1Y2IxXHU1ZTM2XHU1Zjg1XHU2MjM0XHU2NGUxXHU3M2IzXHU4MWZhXHU4ODhiXHU4Y2I4XHU5NjhhXHU5ZWRiXHU1Yjg1XHU1ZmI3XHU2MGIzXHU1MDEyXHU1MjAwXHU1MjMwXHU1NzE2XHU1ODM1XHU1ODU3XHU1YzBlXHU1YzYwXHU1Y2Y2XHU1ZDhiXHU1ZWE2XHU1Zjky'@; put 'XHU2MGJjXHU2MzExXHU2Mzg5XHU2NDE3XHU2ODQzIl0sWyJkNGExIiwiXHU2OGY5XHU2YWMyXHU2ZGQ4XHU2ZTIxXHU2ZWQ0XHU2ZmU0XHU3MWZlXHU3NmRjXHU3Nzc5XHU3OWIxXHU3YTNiXHU4NDA0XHU4OWE5XHU4Y2VkXHU4ZGYzXHU4ZTQ4XHU5MDAzXHU5MDE0XHU5MDUzXHU5MGZkXHU5'@; put 'MzRkXHU5Njc2XHU5N2RjXHU2YmQyXHU3MDA2XHU3MjU4XHU3MmEyXHU3MzY4XHU3NzYzXHU3OWJmXHU3YmU0XHU3ZTliXHU4YjgwXHU1OGE5XHU2MGM3XHU2NTY2XHU2NWZkXHU2NmJlXHU2YzhjXHU3MTFlXHU3MWM5XHU4YzVhXHU5ODEzXHU0ZTZkXHU3YTgxXHU0ZWRkXHU1MWFjXHU1MWNk'@; put 'XHU1MmQ1XHU1NDBjXHU2MWE3XHU2NzcxXHU2ODUwXHU2OGRmXHU2ZDFlXHU2ZjdjXHU3NWJjXHU3N2IzXHU3YWU1XHU4MGY0XHU4NDYzXHU5Mjg1XHU1MTVjXHU2NTk3XHU2NzVjXHU2NzkzXHU3NWQ4XHU3YWM3XHU4MzczXHVmOTVhXHU4YzQ2XHU5MDE3XHU5ODJkXHU1YzZmXHU4MWMwXHU4'@; put 'MjlhXHU5MDQxXHU5MDZmXHU5MjBkXHU1Zjk3XHU1ZDlkXHU2YTU5XHU3MWM4XHU3NjdiXHU3YjQ5XHU4NWU0XHU4YjA0XHU5MTI3XHU5YTMwXHU1NTg3XHU2MWY2XHVmOTViXHU3NjY5XHU3Zjg1Il0sWyJkNWExIiwiXHU4NjNmXHU4N2JhXHU4OGY4XHU5MDhmXHVmOTVjXHU2ZDFiXHU3MGQ5'@; put 'XHU3M2RlXHU3ZDYxXHU4NDNkXHVmOTVkXHU5MTZhXHU5OWYxXHVmOTVlXHU0ZTgyXHU1Mzc1XHU2YjA0XHU2YjEyXHU3MDNlXHU3MjFiXHU4NjJkXHU5ZTFlXHU1MjRjXHU4ZmEzXHU1ZDUwXHU2NGU1XHU2NTJjXHU2YjE2XHU2ZmViXHU3YzQzXHU3ZTljXHU4NWNkXHU4OTY0XHU4OWJkXHU2'@; put 'MmM5XHU4MWQ4XHU4ODFmXHU1ZWNhXHU2NzE3XHU2ZDZhXHU3MmZjXHU3NDA1XHU3NDZmXHU4NzgyXHU5MGRlXHU0Zjg2XHU1ZDBkXHU1ZmEwXHU4NDBhXHU1MWI3XHU2M2EwXHU3NTY1XHU0ZWFlXHU1MDA2XHU1MTY5XHU1MWM5XHU2ODgxXHU2YTExXHU3Y2FlXHU3Y2IxXHU3Y2U3XHU4MjZm'@; put 'XHU4YWQyXHU4ZjFiXHU5MWNmXHU0ZmI2XHU1MTM3XHU1MmY1XHU1NDQyXHU1ZWVjXHU2MTZlXHU2MjNlXHU2NWM1XHU2YWRhXHU2ZmZlXHU3OTJhXHU4NWRjXHU4ODIzXHU5NWFkXHU5YTYyXHU5YTZhXHU5ZTk3XHU5ZWNlXHU1MjliXHU2NmM2XHU2Yjc3XHU3MDFkXHU3OTJiXHU4ZjYyXHU5'@; put 'NzQyXHU2MTkwXHU2MjAwXHU2NTIzXHU2ZjIzIl0sWyJkNmExIiwiXHU3MTQ5XHU3NDg5XHU3ZGY0XHU4MDZmXHU4NGVlXHU4ZjI2XHU5MDIzXHU5MzRhXHU1MWJkXHU1MjE3XHU1MmEzXHU2ZDBjXHU3MGM4XHU4OGMyXHU1ZWM5XHU2NTgyXHU2YmFlXHU2ZmMyXHU3YzNlXHU3Mzc1XHU0ZWU0'@; put 'XHU0ZjM2XHU1NmY5XHVmOTVmXHU1Y2JhXHU1ZGJhXHU2MDFjXHU3M2IyXHU3YjJkXHU3ZjlhXHU3ZmNlXHU4MDQ2XHU5MDFlXHU5MjM0XHU5NmY2XHU5NzQ4XHU5ODE4XHU5ZjYxXHU0ZjhiXHU2ZmE3XHU3OWFlXHU5MWI0XHU5NmI3XHU1MmRlXHVmOTYwXHU2NDg4XHU2NGM0XHU2YWQzXHU2'@; put 'ZjVlXHU3MDE4XHU3MjEwXHU3NmU3XHU4MDAxXHU4NjA2XHU4NjVjXHU4ZGVmXHU4ZjA1XHU5NzMyXHU5YjZmXHU5ZGZhXHU5ZTc1XHU3ODhjXHU3OTdmXHU3ZGEwXHU4M2M5XHU5MzA0XHU5ZTdmXHU5ZTkzXHU4YWQ2XHU1OGRmXHU1ZjA0XHU2NzI3XHU3MDI3XHU3NGNmXHU3YzYwXHU4MDdl'@; put 'XHU1MTIxXHU3MDI4XHU3MjYyXHU3OGNhXHU4Y2MyXHU4Y2RhXHU4Y2Y0XHU5NmY3XHU0ZTg2XHU1MGRhXHU1YmVlXHU1ZWQ2XHU2NTk5XHU3MWNlXHU3NjQyXHU3N2FkXHU4MDRhXHU4NGZjIl0sWyJkN2ExIiwiXHU5MDdjXHU5YjI3XHU5ZjhkXHU1OGQ4XHU1YTQxXHU1YzYyXHU2YTEzXHU2'@; put 'ZGRhXHU2ZjBmXHU3NjNiXHU3ZDJmXHU3ZTM3XHU4NTFlXHU4OTM4XHU5M2U0XHU5NjRiXHU1Mjg5XHU2NWQyXHU2N2YzXHU2OWI0XHU2ZDQxXHU2ZTljXHU3MDBmXHU3NDA5XHU3NDYwXHU3NTU5XHU3NjI0XHU3ODZiXHU4YjJjXHU5ODVlXHU1MTZkXHU2MjJlXHU5Njc4XHU0Zjk2XHU1MDJi'@; put 'XHU1ZDE5XHU2ZGVhXHU3ZGI4XHU4ZjJhXHU1ZjhiXHU2MTQ0XHU2ODE3XHVmOTYxXHU5Njg2XHU1MmQyXHU4MDhiXHU1MWRjXHU1MWNjXHU2OTVlXHU3YTFjXHU3ZGJlXHU4M2YxXHU5Njc1XHU0ZmRhXHU1MjI5XHU1Mzk4XHU1NDBmXHU1NTBlXHU1YzY1XHU2MGE3XHU2NzRlXHU2OGE4XHU2'@; put 'ZDZjXHU3MjgxXHU3MmY4XHU3NDA2XHU3NDgzXHVmOTYyXHU3NWUyXHU3YzZjXHU3Zjc5XHU3ZmI4XHU4Mzg5XHU4OGNmXHU4OGUxXHU5MWNjXHU5MWQwXHU5NmUyXHU5YmM5XHU1NDFkXHU2ZjdlXHU3MWQwXHU3NDk4XHU4NWZhXHU4ZWFhXHU5NmEzXHU5YzU3XHU5ZTlmXHU2Nzk3XHU2ZGNi'@; put 'XHU3NDMzXHU4MWU4XHU5NzE2XHU3ODJjIl0sWyJkOGExIiwiXHU3YWNiXHU3YjIwXHU3YzkyXHU2NDY5XHU3NDZhXHU3NWYyXHU3OGJjXHU3OGU4XHU5OWFjXHU5YjU0XHU5ZWJiXHU1YmRlXHU1ZTU1XHU2ZjIwXHU4MTljXHU4M2FiXHU5MDg4XHU0ZTA3XHU1MzRkXHU1YTI5XHU1ZGQyXHU1'@; put 'ZjRlXHU2MTYyXHU2MzNkXHU2NjY5XHU2NmZjXHU2ZWZmXHU2ZjJiXHU3MDYzXHU3NzllXHU4NDJjXHU4NTEzXHU4ODNiXHU4ZjEzXHU5OTQ1XHU5YzNiXHU1NTFjXHU2MmI5XHU2NzJiXHU2Y2FiXHU4MzA5XHU4OTZhXHU5NzdhXHU0ZWExXHU1OTg0XHU1ZmQ4XHU1ZmQ5XHU2NzFiXHU3ZGIy'@; put 'XHU3ZjU0XHU4MjkyXHU4MzJiXHU4M2JkXHU4ZjFlXHU5MDk5XHU1N2NiXHU1OWI5XHU1YTkyXHU1YmQwXHU2NjI3XHU2NzlhXHU2ODg1XHU2YmNmXHU3MTY0XHU3Zjc1XHU4Y2I3XHU4Y2UzXHU5MDgxXHU5YjQ1XHU4MTA4XHU4YzhhXHU5NjRjXHU5YTQwXHU5ZWE1XHU1YjVmXHU2YzEzXHU3'@; put 'MzFiXHU3NmYyXHU3NmRmXHU4NDBjXHU1MWFhXHU4OTkzXHU1MTRkXHU1MTk1XHU1MmM5XHU2OGM5XHU2Yzk0XHU3NzA0XHU3NzIwXHU3ZGJmXHU3ZGVjXHU5NzYyXHU5ZWI1XHU2ZWM1Il0sWyJkOWExIiwiXHU4NTExXHU1MWE1XHU1NDBkXHU1NDdkXHU2NjBlXHU2NjlkXHU2OTI3XHU2ZTlm'@; put 'XHU3NmJmXHU3NzkxXHU4MzE3XHU4NGMyXHU4NzlmXHU5MTY5XHU5Mjk4XHU5Y2Y0XHU4ODgyXHU0ZmFlXHU1MTkyXHU1MmRmXHU1OWM2XHU1ZTNkXHU2MTU1XHU2NDc4XHU2NDc5XHU2NmFlXHU2N2QwXHU2YTIxXHU2YmNkXHU2YmRiXHU3MjVmXHU3MjYxXHU3NDQxXHU3NzM4XHU3N2RiXHU4'@; put 'MDE3XHU4MmJjXHU4MzA1XHU4YjAwXHU4YjI4XHU4YzhjXHU2NzI4XHU2YzkwXHU3MjY3XHU3NmVlXHU3NzY2XHU3YTQ2XHU5ZGE5XHU2YjdmXHU2YzkyXHU1OTIyXHU2NzI2XHU4NDk5XHU1MzZmXHU1ODkzXHU1OTk5XHU1ZWRmXHU2M2NmXHU2NjM0XHU2NzczXHU2ZTNhXHU3MzJiXHU3YWQ3'@; put 'XHU4MmQ3XHU5MzI4XHU1MmQ5XHU1ZGViXHU2MWFlXHU2MWNiXHU2MjBhXHU2MmM3XHU2NGFiXHU2NWUwXHU2OTU5XHU2YjY2XHU2YmNiXHU3MTIxXHU3M2Y3XHU3NTVkXHU3ZTQ2XHU4MjFlXHU4MzAyXHU4NTZhXHU4YWEzXHU4Y2JmXHU5NzI3XHU5ZDYxXHU1OGE4XHU5ZWQ4XHU1MDExXHU1'@; put 'MjBlXHU1NDNiXHU1NTRmXHU2NTg3Il0sWyJkYWExIiwiXHU2Yzc2XHU3ZDBhXHU3ZDBiXHU4MDVlXHU4NjhhXHU5NTgwXHU5NmVmXHU1MmZmXHU2Yzk1XHU3MjY5XHU1NDczXHU1YTlhXHU1YzNlXHU1ZDRiXHU1ZjRjXHU1ZmFlXHU2NzJhXHU2OGI2XHU2OTYzXHU2ZTNjXHU2ZTQ0XHU3NzA5'@; put 'XHU3YzczXHU3ZjhlXHU4NTg3XHU4YjBlXHU4ZmY3XHU5NzYxXHU5ZWY0XHU1Y2I3XHU2MGI2XHU2MTBkXHU2MWFiXHU2NTRmXHU2NWZiXHU2NWZjXHU2YzExXHU2Y2VmXHU3MzlmXHU3M2M5XHU3ZGUxXHU5NTk0XHU1YmM2XHU4NzFjXHU4YjEwXHU1MjVkXHU1MzVhXHU2MmNkXHU2NDBmXHU2'@; put 'NGIyXHU2NzM0XHU2YTM4XHU2Y2NhXHU3M2MwXHU3NDllXHU3Yjk0XHU3Yzk1XHU3ZTFiXHU4MThhXHU4MjM2XHU4NTg0XHU4ZmViXHU5NmY5XHU5OWMxXHU0ZjM0XHU1MzRhXHU1M2NkXHU1M2RiXHU2MmNjXHU2NDJjXHU2NTAwXHU2NTkxXHU2OWMzXHU2Y2VlXHU2ZjU4XHU3M2VkXHU3NTU0'@; put 'XHU3NjIyXHU3NmU0XHU3NmZjXHU3OGQwXHU3OGZiXHU3OTJjXHU3ZDQ2XHU4MjJjXHU4N2UwXHU4ZmQ0XHU5ODEyXHU5OGVmXHU1MmMzXHU2MmQ0XHU2NGE1XHU2ZTI0XHU2ZjUxIl0sWyJkYmExIiwiXHU3NjdjXHU4ZGNiXHU5MWIxXHU5MjYyXHU5YWVlXHU5YjQzXHU1MDIzXHU1MDhkXHU1'@; put 'NzRhXHU1OWE4XHU1YzI4XHU1ZTQ3XHU1Zjc3XHU2MjNmXHU2NTNlXHU2NWI5XHU2NWMxXHU2NjA5XHU2NzhiXHU2OTljXHU2ZWMyXHU3OGM1XHU3ZDIxXHU4MGFhXHU4MTgwXHU4MjJiXHU4MmIzXHU4NGExXHU4NjhjXHU4YTJhXHU4YjE3XHU5MGE2XHU5NjMyXHU5ZjkwXHU1MDBkXHU0ZmYz'@; put 'XHVmOTYzXHU1N2Y5XHU1Zjk4XHU2MmRjXHU2MzkyXHU2NzZmXHU2ZTQzXHU3MTE5XHU3NmMzXHU4MGNjXHU4MGRhXHU4OGY0XHU4OGY1XHU4OTE5XHU4Y2UwXHU4ZjI5XHU5MTRkXHU5NjZhXHU0ZjJmXHU0ZjcwXHU1ZTFiXHU2N2NmXHU2ODIyXHU3NjdkXHU3NjdlXHU5YjQ0XHU1ZTYxXHU2'@; put 'YTBhXHU3MTY5XHU3MWQ0XHU3NTZhXHVmOTY0XHU3ZTQxXHU4NTQzXHU4NWU5XHU5OGRjXHU0ZjEwXHU3YjRmXHU3ZjcwXHU5NWE1XHU1MWUxXHU1ZTA2XHU2OGI1XHU2YzNlXHU2YzRlXHU2Y2RiXHU3MmFmXHU3YmM0XHU4MzAzXHU2Y2Q1XHU3NDNhXHU1MGZiXHU1Mjg4XHU1OGMxXHU2NGQ4'@; put 'XHU2YTk3XHU3NGE3XHU3NjU2Il0sWyJkY2ExIiwiXHU3OGE3XHU4NjE3XHU5NWUyXHU5NzM5XHVmOTY1XHU1MzVlXHU1ZjAxXHU4YjhhXHU4ZmE4XHU4ZmFmXHU5MDhhXHU1MjI1XHU3N2E1XHU5YzQ5XHU5ZjA4XHU0ZTE5XHU1MDAyXHU1MTc1XHU1YzViXHU1ZTc3XHU2NjFlXHU2NjNhXHU2'@; put 'N2M0XHU2OGM1XHU3MGIzXHU3NTAxXHU3NWM1XHU3OWM5XHU3YWRkXHU4ZjI3XHU5OTIwXHU5YTA4XHU0ZmRkXHU1ODIxXHU1ODMxXHU1YmY2XHU2NjZlXHU2YjY1XHU2ZDExXHU2ZTdhXHU2ZjdkXHU3M2U0XHU3NTJiXHU4M2U5XHU4OGRjXHU4OTEzXHU4YjVjXHU4ZjE0XHU0ZjBmXHU1MGQ1'@; put 'XHU1MzEwXHU1MzVjXHU1YjkzXHU1ZmE5XHU2NzBkXHU3OThmXHU4MTc5XHU4MzJmXHU4NTE0XHU4OTA3XHU4OTg2XHU4ZjM5XHU4ZjNiXHU5OWE1XHU5YzEyXHU2NzJjXHU0ZTc2XHU0ZmY4XHU1OTQ5XHU1YzAxXHU1Y2VmXHU1Y2YwXHU2MzY3XHU2OGQyXHU3MGZkXHU3MWEyXHU3NDJiXHU3'@; put 'ZTJiXHU4NGVjXHU4NzAyXHU5MDIyXHU5MmQyXHU5Y2YzXHU0ZTBkXHU0ZWQ4XHU0ZmVmXHU1MDg1XHU1MjU2XHU1MjZmXHU1NDI2XHU1NDkwXHU1N2UwXHU1OTJiXHU1YTY2Il0sWyJkZGExIiwiXHU1YjVhXHU1Yjc1XHU1YmNjXHU1ZTljXHVmOTY2XHU2Mjc2XHU2NTc3XHU2NWE3XHU2ZDZl'@; put 'XHU2ZWE1XHU3MjM2XHU3YjI2XHU3YzNmXHU3ZjM2XHU4MTUwXHU4MTUxXHU4MTlhXHU4MjQwXHU4Mjk5XHU4M2E5XHU4YTAzXHU4Y2EwXHU4Y2U2XHU4Y2ZiXHU4ZDc0XHU4ZGJhXHU5MGU4XHU5MWRjXHU5NjFjXHU5NjQ0XHU5OWQ5XHU5Y2U3XHU1MzE3XHU1MjA2XHU1NDI5XHU1Njc0XHU1'@; put 'OGIzXHU1OTU0XHU1OTZlXHU1ZmZmXHU2MWE0XHU2MjZlXHU2NjEwXHU2YzdlXHU3MTFhXHU3NmM2XHU3Yzg5XHU3Y2RlXHU3ZDFiXHU4MmFjXHU4Y2MxXHU5NmYwXHVmOTY3XHU0ZjViXHU1ZjE3XHU1ZjdmXHU2MmMyXHU1ZDI5XHU2NzBiXHU2OGRhXHU3ODdjXHU3ZTQzXHU5ZDZjXHU0ZTE1'@; put 'XHU1MDk5XHU1MzE1XHU1MzJhXHU1MzUxXHU1OTgzXHU1YTYyXHU1ZTg3XHU2MGIyXHU2MThhXHU2MjQ5XHU2Mjc5XHU2NTkwXHU2Nzg3XHU2OWE3XHU2YmQ0XHU2YmQ2XHU2YmQ3XHU2YmQ4XHU2Y2I4XHVmOTY4XHU3NDM1XHU3NWZhXHU3ODEyXHU3ODkxXHU3OWQ1XHU3OWQ4XHU3YzgzXHU3'@; put 'ZGNiXHU3ZmUxXHU4MGE1Il0sWyJkZWExIiwiXHU4MTNlXHU4MWMyXHU4M2YyXHU4NzFhXHU4OGU4XHU4YWI5XHU4YjZjXHU4Y2JiXHU5MTE5XHU5NzVlXHU5OGRiXHU5ZjNiXHU1NmFjXHU1YjJhXHU1ZjZjXHU2NThjXHU2YWIzXHU2YmFmXHU2ZDVjXHU2ZmYxXHU3MDE1XHU3MjVkXHU3M2Fk'@; put 'XHU4Y2E3XHU4Y2QzXHU5ODNiXHU2MTkxXHU2YzM3XHU4MDU4XHU5YTAxXHU0ZTRkXHU0ZThiXHU0ZTliXHU0ZWQ1XHU0ZjNhXHU0ZjNjXHU0ZjdmXHU0ZmRmXHU1MGZmXHU1M2YyXHU1M2Y4XHU1NTA2XHU1NWUzXHU1NmRiXHU1OGViXHU1OTYyXHU1YTExXHU1YmViXHU1YmZhXHU1YzA0XHU1'@; put 'ZGYzXHU1ZTJiXHU1Zjk5XHU2MDFkXHU2MzY4XHU2NTljXHU2NWFmXHU2N2Y2XHU2N2ZiXHU2OGFkXHU2YjdiXHU2Yzk5XHU2Y2Q3XHU2ZTIzXHU3MDA5XHU3MzQ1XHU3ODAyXHU3OTNlXHU3OTQwXHU3OTYwXHU3OWMxXHU3YmU5XHU3ZDE3XHU3ZDcyXHU4MDg2XHU4MjBkXHU4MzhlXHU4NGQx'@; put 'XHU4NmM3XHU4OGRmXHU4YTUwXHU4YTVlXHU4YjFkXHU4Y2RjXHU4ZDY2XHU4ZmFkXHU5MGFhXHU5OGZjXHU5OWRmXHU5ZTlkXHU1MjRhXHVmOTY5XHU2NzE0XHVmOTZhIl0sWyJkZmExIiwiXHU1MDk4XHU1MjJhXHU1YzcxXHU2NTYzXHU2YzU1XHU3M2NhXHU3NTIzXHU3NTlkXHU3Yjk3XHU4'@; put 'NDljXHU5MTc4XHU5NzMwXHU0ZTc3XHU2NDkyXHU2YmJhXHU3MTVlXHU4NWE5XHU0ZTA5XHVmOTZiXHU2NzQ5XHU2OGVlXHU2ZTE3XHU4MjlmXHU4NTE4XHU4ODZiXHU2M2Y3XHU2ZjgxXHU5MjEyXHU5OGFmXHU0ZTBhXHU1MGI3XHU1MGNmXHU1MTFmXHU1NTQ2XHU1NWFhXHU1NjE3XHU1YjQw'@; put 'XHU1YzE5XHU1Y2UwXHU1ZTM4XHU1ZThhXHU1ZWEwXHU1ZWMyXHU2MGYzXHU2ODUxXHU2YTYxXHU2ZTU4XHU3MjNkXHU3MjQwXHU3MmMwXHU3NmY4XHU3OTY1XHU3YmIxXHU3ZmQ0XHU4OGYzXHU4OWY0XHU4YTczXHU4YzYxXHU4Y2RlXHU5NzFjXHU1ODVlXHU3NGJkXHU4Y2ZkXHU1NWM3XHVm'@; put 'OTZjXHU3YTYxXHU3ZDIyXHU4MjcyXHU3MjcyXHU3NTFmXHU3NTI1XHVmOTZkXHU3YjE5XHU1ODg1XHU1OGZiXHU1ZGJjXHU1ZThmXHU1ZWI2XHU1ZjkwXHU2MDU1XHU2MjkyXHU2MzdmXHU2NTRkXHU2NjkxXHU2NmQ5XHU2NmY4XHU2ODE2XHU2OGYyXHU3MjgwXHU3NDVlXHU3YjZlXHU3ZDZl'@; put 'XHU3ZGQ2XHU3ZjcyIl0sWyJlMGExIiwiXHU4MGU1XHU4MjEyXHU4NWFmXHU4OTdmXHU4YTkzXHU5MDFkXHU5MmU0XHU5ZWNkXHU5ZjIwXHU1OTE1XHU1OTZkXHU1ZTJkXHU2MGRjXHU2NjE0XHU2NjczXHU2NzkwXHU2YzUwXHU2ZGM1XHU2ZjVmXHU3N2YzXHU3OGE5XHU4NGM2XHU5MWNiXHU5'@; put 'MzJiXHU0ZWQ5XHU1MGNhXHU1MTQ4XHU1NTg0XHU1YjBiXHU1YmEzXHU2MjQ3XHU2NTdlXHU2NWNiXHU2ZTMyXHU3MTdkXHU3NDAxXHU3NDQ0XHU3NDg3XHU3NGJmXHU3NjZjXHU3OWFhXHU3ZGRhXHU3ZTU1XHU3ZmE4XHU4MTdhXHU4MWIzXHU4MjM5XHU4NjFhXHU4N2VjXHU4YTc1XHU4ZGUz'@; put 'XHU5MDc4XHU5MjkxXHU5NDI1XHU5OTRkXHU5YmFlXHU1MzY4XHU1YzUxXHU2OTU0XHU2Y2M0XHU2ZDI5XHU2ZTJiXHU4MjBjXHU4NTliXHU4OTNiXHU4YTJkXHU4YWFhXHU5NmVhXHU5ZjY3XHU1MjYxXHU2NmI5XHU2YmIyXHU3ZTk2XHU4N2ZlXHU4ZDBkXHU5NTgzXHU5NjVkXHU2NTFkXHU2'@; put 'ZDg5XHU3MWVlXHVmOTZlXHU1N2NlXHU1OWQzXHU1YmFjXHU2MDI3XHU2MGZhXHU2MjEwXHU2NjFmXHU2NjVmXHU3MzI5XHU3M2Y5XHU3NmRiXHU3NzAxXHU3YjZjIl0sWyJlMWExIiwiXHU4MDU2XHU4MDcyXHU4MTY1XHU4YWEwXHU5MTkyXHU0ZTE2XHU1MmUyXHU2YjcyXHU2ZDE3XHU3YTA1'@; put 'XHU3YjM5XHU3ZDMwXHVmOTZmXHU4Y2IwXHU1M2VjXHU1NjJmXHU1ODUxXHU1YmI1XHU1YzBmXHU1YzExXHU1ZGUyXHU2MjQwXHU2MzgzXHU2NDE0XHU2NjJkXHU2OGIzXHU2Y2JjXHU2ZDg4XHU2ZWFmXHU3MDFmXHU3MGE0XHU3MWQyXHU3NTI2XHU3NThmXHU3NThlXHU3NjE5XHU3YjExXHU3'@; put 'YmUwXHU3YzJiXHU3ZDIwXHU3ZDM5XHU4NTJjXHU4NTZkXHU4NjA3XHU4YTM0XHU5MDBkXHU5MDYxXHU5MGI1XHU5MmI3XHU5N2Y2XHU5YTM3XHU0ZmQ3XHU1YzZjXHU2NzVmXHU2ZDkxXHU3YzlmXHU3ZThjXHU4YjE2XHU4ZDE2XHU5MDFmXHU1YjZiXHU1ZGZkXHU2NDBkXHU4NGMwXHU5MDVj'@; put 'XHU5OGUxXHU3Mzg3XHU1YjhiXHU2MDlhXHU2NzdlXHU2ZGRlXHU4YTFmXHU4YWE2XHU5MDAxXHU5ODBjXHU1MjM3XHVmOTcwXHU3MDUxXHU3ODhlXHU5Mzk2XHU4ODcwXHU5MWQ3XHU0ZmVlXHU1M2Q3XHU1NWZkXHU1NmRhXHU1NzgyXHU1OGZkXHU1YWMyXHU1Yjg4XHU1Y2FiXHU1Y2MwXHU1'@; put 'ZTI1XHU2MTAxIl0sWyJlMmExIiwiXHU2MjBkXHU2MjRiXHU2Mzg4XHU2NDFjXHU2NTM2XHU2NTc4XHU2YTM5XHU2YjhhXHU2YzM0XHU2ZDE5XHU2ZjMxXHU3MWU3XHU3MmU5XHU3Mzc4XHU3NDA3XHU3NGIyXHU3NjI2XHU3NzYxXHU3OWMwXHU3YTU3XHU3YWVhXHU3Y2I5XHU3ZDhmXHU3ZGFj'@; put 'XHU3ZTYxXHU3ZjllXHU4MTI5XHU4MzMxXHU4NDkwXHU4NGRhXHU4NWVhXHU4ODk2XHU4YWIwXHU4YjkwXHU4ZjM4XHU5MDQyXHU5MDgzXHU5MTZjXHU5Mjk2XHU5MmI5XHU5NjhiXHU5NmE3XHU5NmE4XHU5NmQ2XHU5NzAwXHU5ODA4XHU5OTk2XHU5YWQzXHU5YjFhXHU1M2Q0XHU1ODdlXHU1'@; put 'OTE5XHU1YjcwXHU1YmJmXHU2ZGQxXHU2ZjVhXHU3MTlmXHU3NDIxXHU3NGI5XHU4MDg1XHU4M2ZkXHU1ZGUxXHU1Zjg3XHU1ZmFhXHU2MDQyXHU2NWVjXHU2ODEyXHU2OTZmXHU2YTUzXHU2Yjg5XHU2ZDM1XHU2ZGYzXHU3M2UzXHU3NmZlXHU3N2FjXHU3YjRkXHU3ZDE0XHU4MTIzXHU4MjFj'@; put 'XHU4MzQwXHU4NGY0XHU4NTYzXHU4YTYyXHU4YWM0XHU5MTg3XHU5MzFlXHU5ODA2XHU5OWI0XHU2MjBjXHU4ODUzXHU4ZmYwXHU5MjY1XHU1ZDA3XHU1ZDI3Il0sWyJlM2ExIiwiXHU1ZDY5XHU3NDVmXHU4MTlkXHU4NzY4XHU2ZmQ1XHU2MmZlXHU3ZmQyXHU4OTM2XHU4OTcyXHU0ZTFlXHU0'@; put 'ZTU4XHU1MGU3XHU1MmRkXHU1MzQ3XHU2MjdmXHU2NjA3XHU3ZTY5XHU4ODA1XHU5NjVlXHU0ZjhkXHU1MzE5XHU1NjM2XHU1OWNiXHU1YWE0XHU1YzM4XHU1YzRlXHU1YzRkXHU1ZTAyXHU1ZjExXHU2MDQzXHU2NWJkXHU2NjJmXHU2NjQyXHU2N2JlXHU2N2Y0XHU3MzFjXHU3N2UyXHU3OTNh'@; put 'XHU3ZmM1XHU4NDk0XHU4NGNkXHU4OTk2XHU4YTY2XHU4YTY5XHU4YWUxXHU4YzU1XHU4YzdhXHU1N2Y0XHU1YmQ0XHU1ZjBmXHU2MDZmXHU2MmVkXHU2OTBkXHU2Yjk2XHU2ZTVjXHU3MTg0XHU3YmQyXHU4NzU1XHU4YjU4XHU4ZWZlXHU5OGRmXHU5OGZlXHU0ZjM4XHU0ZjgxXHU0ZmUxXHU1'@; put 'NDdiXHU1YTIwXHU1YmI4XHU2MTNjXHU2NWIwXHU2NjY4XHU3MWZjXHU3NTMzXHU3OTVlXHU3ZDMzXHU4MTRlXHU4MWUzXHU4Mzk4XHU4NWFhXHU4NWNlXHU4NzAzXHU4YTBhXHU4ZWFiXHU4ZjliXHVmOTcxXHU4ZmM1XHU1OTMxXHU1YmE0XHU1YmU2XHU2MDg5XHU1YmU5XHU1YzBiXHU1ZmMz'@; put 'XHU2YzgxIl0sWyJlNGExIiwiXHVmOTcyXHU2ZGYxXHU3MDBiXHU3NTFhXHU4MmFmXHU4YWY2XHU0ZWMwXHU1MzQxXHVmOTczXHU5NmQ5XHU2YzBmXHU0ZTllXHU0ZmM0XHU1MTUyXHU1NTVlXHU1YTI1XHU1Y2U4XHU2MjExXHU3MjU5XHU4MmJkXHU4M2FhXHU4NmZlXHU4ODU5XHU4YTFkXHU5'@; put 'NjNmXHU5NmM1XHU5OTEzXHU5ZDA5XHU5ZDVkXHU1ODBhXHU1Y2IzXHU1ZGJkXHU1ZTQ0XHU2MGUxXHU2MTE1XHU2M2UxXHU2YTAyXHU2ZTI1XHU5MTAyXHU5MzU0XHU5ODRlXHU5YzEwXHU5Zjc3XHU1Yjg5XHU1Y2I4XHU2MzA5XHU2NjRmXHU2ODQ4XHU3NzNjXHU5NmMxXHU5NzhkXHU5ODU0'@; put 'XHU5YjlmXHU2NWExXHU4YjAxXHU4ZWNiXHU5NWJjXHU1NTM1XHU1Y2E5XHU1ZGQ2XHU1ZWI1XHU2Njk3XHU3NjRjXHU4M2Y0XHU5NWM3XHU1OGQzXHU2MmJjXHU3MmNlXHU5ZDI4XHU0ZWYwXHU1OTJlXHU2MDBmXHU2NjNiXHU2YjgzXHU3OWU3XHU5ZDI2XHU1MzkzXHU1NGMwXHU1N2MzXHU1'@; put 'ZDE2XHU2MTFiXHU2NmQ2XHU2ZGFmXHU3ODhkXHU4MjdlXHU5Njk4XHU5NzQ0XHU1Mzg0XHU2MjdjXHU2Mzk2XHU2ZGIyXHU3ZTBhXHU4MTRiXHU5ODRkIl0sWyJlNWExIiwiXHU2YWZiXHU3ZjRjXHU5ZGFmXHU5ZTFhXHU0ZTVmXHU1MDNiXHU1MWI2XHU1OTFjXHU2MGY5XHU2M2Y2XHU2OTMw'@; put 'XHU3MjNhXHU4MDM2XHVmOTc0XHU5MWNlXHU1ZjMxXHVmOTc1XHVmOTc2XHU3ZDA0XHU4MmU1XHU4NDZmXHU4NGJiXHU4NWU1XHU4ZThkXHVmOTc3XHU0ZjZmXHVmOTc4XHVmOTc5XHU1OGU0XHU1YjQzXHU2MDU5XHU2M2RhXHU2NTE4XHU2NTZkXHU2Njk4XHVmOTdhXHU2OTRhXHU2YTIzXHU2'@; put 'ZDBiXHU3MDAxXHU3MTZjXHU3NWQyXHU3NjBkXHU3OWIzXHU3YTcwXHVmOTdiXHU3ZjhhXHVmOTdjXHU4OTQ0XHVmOTdkXHU4YjkzXHU5MWMwXHU5NjdkXHVmOTdlXHU5OTBhXHU1NzA0XHU1ZmExXHU2NWJjXHU2ZjAxXHU3NjAwXHU3OWE2XHU4YTllXHU5OWFkXHU5YjVhXHU5ZjZjXHU1MTA0'@; put 'XHU2MWI2XHU2MjkxXHU2YThkXHU4MWM2XHU1MDQzXHU1ODMwXHU1ZjY2XHU3MTA5XHU4YTAwXHU4YWZhXHU1YjdjXHU4NjE2XHU0ZmZhXHU1MTNjXHU1NmI0XHU1OTQ0XHU2M2E5XHU2ZGY5XHU1ZGFhXHU2OTZkXHU1MTg2XHU0ZTg4XHU0ZjU5XHVmOTdmXHVmOTgwXHVmOTgxXHU1OTgyXHVm'@; put 'OTgyIl0sWyJlNmExIiwiXHVmOTgzXHU2YjVmXHU2YzVkXHVmOTg0XHU3NGI1XHU3OTE2XHVmOTg1XHU4MjA3XHU4MjQ1XHU4MzM5XHU4ZjNmXHU4ZjVkXHVmOTg2XHU5OTE4XHVmOTg3XHVmOTg4XHVmOTg5XHU0ZWE2XHVmOThhXHU1N2RmXHU1Zjc5XHU2NjEzXHVmOThiXHVmOThjXHU3NWFi'@; put 'XHU3ZTc5XHU4YjZmXHVmOThkXHU5MDA2XHU5YTViXHU1NmE1XHU1ODI3XHU1OWY4XHU1YTFmXHU1YmI0XHVmOThlXHU1ZWY2XHVmOThmXHVmOTkwXHU2MzUwXHU2MzNiXHVmOTkxXHU2OTNkXHU2Yzg3XHU2Y2JmXHU2ZDhlXHU2ZDkzXHU2ZGY1XHU2ZjE0XHVmOTkyXHU3MGRmXHU3MTM2XHU3'@; put 'MTU5XHVmOTkzXHU3MWMzXHU3MWQ1XHVmOTk0XHU3ODRmXHU3ODZmXHVmOTk1XHU3Yjc1XHU3ZGUzXHVmOTk2XHU3ZTJmXHVmOTk3XHU4ODRkXHU4ZWRmXHVmOTk4XHVmOTk5XHVmOTlhXHU5MjViXHVmOTliXHU5Y2Y2XHVmOTljXHVmOTlkXHVmOTllXHU2MDg1XHU2ZDg1XHVmOTlmXHU3MWIx'@; put 'XHVmOWEwXHVmOWExXHU5NWIxXHU1M2FkXHVmOWEyXHVmOWEzXHVmOWE0XHU2N2QzXHVmOWE1XHU3MDhlXHU3MTMwXHU3NDMwXHU4Mjc2XHU4MmQyIl0sWyJlN2ExIiwiXHVmOWE2XHU5NWJiXHU5YWU1XHU5ZTdkXHU2NmM0XHVmOWE3XHU3MWMxXHU4NDQ5XHVmOWE4XHVmOWE5XHU1ODRiXHVm'@; put 'OWFhXHVmOWFiXHU1ZGI4XHU1ZjcxXHVmOWFjXHU2NjIwXHU2NjhlXHU2OTc5XHU2OWFlXHU2YzM4XHU2Y2YzXHU2ZTM2XHU2ZjQxXHU2ZmRhXHU3MDFiXHU3MDJmXHU3MTUwXHU3MWRmXHU3MzcwXHVmOWFkXHU3NDViXHVmOWFlXHU3NGQ0XHU3NmM4XHU3YTRlXHU3ZTkzXHVmOWFmXHVmOWIw'@; put 'XHU4MmYxXHU4YTYwXHU4ZmNlXHVmOWIxXHU5MzQ4XHVmOWIyXHU5NzE5XHVmOWIzXHVmOWI0XHU0ZTQyXHU1MDJhXHVmOWI1XHU1MjA4XHU1M2UxXHU2NmYzXHU2YzZkXHU2ZmNhXHU3MzBhXHU3NzdmXHU3YTYyXHU4MmFlXHU4NWRkXHU4NjAyXHVmOWI2XHU4OGQ0XHU4YTYzXHU4YjdkXHU4'@; put 'YzZiXHVmOWI3XHU5MmIzXHVmOWI4XHU5NzEzXHU5ODEwXHU0ZTk0XHU0ZjBkXHU0ZmM5XHU1MGIyXHU1MzQ4XHU1NDNlXHU1NDMzXHU1NWRhXHU1ODYyXHU1OGJhXHU1OTY3XHU1YTFiXHU1YmU0XHU2MDlmXHVmOWI5XHU2MWNhXHU2NTU2XHU2NWZmXHU2NjY0XHU2OGE3XHU2YzVhXHU2ZmIz'@; put 'Il0sWyJlOGExIiwiXHU3MGNmXHU3MWFjXHU3MzUyXHU3YjdkXHU4NzA4XHU4YWE0XHU5YzMyXHU5ZjA3XHU1YzRiXHU2YzgzXHU3MzQ0XHU3Mzg5XHU5MjNhXHU2ZWFiXHU3NDY1XHU3NjFmXHU3YTY5XHU3ZTE1XHU4NjBhXHU1MTQwXHU1OGM1XHU2NGMxXHU3NGVlXHU3NTE1XHU3NjcwXHU3'@; put 'ZmMxXHU5MDk1XHU5NmNkXHU5OTU0XHU2ZTI2XHU3NGU2XHU3YWE5XHU3YWFhXHU4MWU1XHU4NmQ5XHU4Nzc4XHU4YTFiXHU1YTQ5XHU1YjhjXHU1YjliXHU2OGExXHU2OTAwXHU2ZDYzXHU3M2E5XHU3NDEzXHU3NDJjXHU3ODk3XHU3ZGU5XHU3ZmViXHU4MTE4XHU4MTU1XHU4MzllXHU4YzRj'@; put 'XHU5NjJlXHU5ODExXHU2NmYwXHU1ZjgwXHU2NWZhXHU2Nzg5XHU2YzZhXHU3MzhiXHU1MDJkXHU1YTAzXHU2YjZhXHU3N2VlXHU1OTE2XHU1ZDZjXHU1ZGNkXHU3MzI1XHU3NTRmXHVmOWJhXHVmOWJiXHU1MGU1XHU1MWY5XHU1ODJmXHU1OTJkXHU1OTk2XHU1OWRhXHU1YmU1XHVmOWJjXHVm'@; put 'OWJkXHU1ZGEyXHU2MmQ3XHU2NDE2XHU2NDkzXHU2NGZlXHVmOWJlXHU2NmRjXHVmOWJmXHU2YTQ4XHVmOWMwXHU3MWZmXHU3NDY0XHVmOWMxIl0sWyJlOWExIiwiXHU3YTg4XHU3YWFmXHU3ZTQ3XHU3ZTVlXHU4MDAwXHU4MTcwXHVmOWMyXHU4N2VmXHU4OTgxXHU4YjIwXHU5MDU5XHVmOWMz'@; put 'XHU5MDgwXHU5OTUyXHU2MTdlXHU2YjMyXHU2ZDc0XHU3ZTFmXHU4OTI1XHU4ZmIxXHU0ZmQxXHU1MGFkXHU1MTk3XHU1MmM3XHU1N2M3XHU1ODg5XHU1YmI5XHU1ZWI4XHU2MTQyXHU2OTk1XHU2ZDhjXHU2ZTY3XHU2ZWI2XHU3MTk0XHU3NDYyXHU3NTI4XHU3NTJjXHU4MDczXHU4MzM4XHU4'@; put 'NGM5XHU4ZTBhXHU5Mzk0XHU5M2RlXHVmOWM0XHU0ZThlXHU0ZjUxXHU1MDc2XHU1MTJhXHU1M2M4XHU1M2NiXHU1M2YzXHU1Yjg3XHU1YmQzXHU1YzI0XHU2MTFhXHU2MTgyXHU2NWY0XHU3MjViXHU3Mzk3XHU3NDQwXHU3NmMyXHU3OTUwXHU3OTkxXHU3OWI5XHU3ZDA2XHU3ZmJkXHU4Mjhi'@; put 'XHU4NWQ1XHU4NjVlXHU4ZmMyXHU5MDQ3XHU5MGY1XHU5MWVhXHU5Njg1XHU5NmU4XHU5NmU5XHU1MmQ2XHU1ZjY3XHU2NWVkXHU2NjMxXHU2ODJmXHU3MTVjXHU3YTM2XHU5MGMxXHU5ODBhXHU0ZTkxXHVmOWM1XHU2YTUyXHU2YjllXHU2ZjkwXHU3MTg5XHU4MDE4XHU4MmI4XHU4NTUzIl0s'@; put 'WyJlYWExIiwiXHU5MDRiXHU5Njk1XHU5NmYyXHU5N2ZiXHU4NTFhXHU5YjMxXHU0ZTkwXHU3MThhXHU5NmM0XHU1MTQzXHU1MzlmXHU1NGUxXHU1NzEzXHU1NzEyXHU1N2EzXHU1YTliXHU1YWM0XHU1YmMzXHU2MDI4XHU2MTNmXHU2M2Y0XHU2Yzg1XHU2ZDM5XHU2ZTcyXHU2ZTkwXHU3MjMw'@; put 'XHU3MzNmXHU3NDU3XHU4MmQxXHU4ODgxXHU4ZjQ1XHU5MDYwXHVmOWM2XHU5NjYyXHU5ODU4XHU5ZDFiXHU2NzA4XHU4ZDhhXHU5MjVlXHU0ZjRkXHU1MDQ5XHU1MGRlXHU1MzcxXHU1NzBkXHU1OWQ0XHU1YTAxXHU1YzA5XHU2MTcwXHU2NjkwXHU2ZTJkXHU3MjMyXHU3NDRiXHU3ZGVmXHU4'@; put 'MGMzXHU4NDBlXHU4NDY2XHU4NTNmXHU4NzVmXHU4ODViXHU4OTE4XHU4YjAyXHU5MDU1XHU5N2NiXHU5YjRmXHU0ZTczXHU0ZjkxXHU1MTEyXHU1MTZhXHVmOWM3XHU1NTJmXHU1NWE5XHU1YjdhXHU1YmE1XHU1ZTdjXHU1ZTdkXHU1ZWJlXHU2MGEwXHU2MGRmXHU2MTA4XHU2MTA5XHU2M2M0'@; put 'XHU2NTM4XHU2NzA5XHVmOWM4XHU2N2Q0XHU2N2RhXHVmOWM5XHU2OTYxXHU2OTYyXHU2Y2I5XHU2ZDI3XHVmOWNhXHU2ZTM4XHVmOWNiIl0sWyJlYmExIiwiXHU2ZmUxXHU3MzM2XHU3MzM3XHVmOWNjXHU3NDVjXHU3NTMxXHVmOWNkXHU3NjUyXHVmOWNlXHVmOWNmXHU3ZGFkXHU4MWZlXHU4'@; put 'NDM4XHU4OGQ1XHU4YTk4XHU4YWRiXHU4YWVkXHU4ZTMwXHU4ZTQyXHU5MDRhXHU5MDNlXHU5MDdhXHU5MTQ5XHU5MWM5XHU5MzZlXHVmOWQwXHVmOWQxXHU1ODA5XHVmOWQyXHU2YmQzXHU4MDg5XHU4MGIyXHVmOWQzXHVmOWQ0XHU1MTQxXHU1OTZiXHU1YzM5XHVmOWQ1XHVmOWQ2XHU2ZjY0'@; put 'XHU3M2E3XHU4MGU0XHU4ZDA3XHVmOWQ3XHU5MjE3XHU5NThmXHVmOWQ4XHVmOWQ5XHVmOWRhXHVmOWRiXHU4MDdmXHU2MjBlXHU3MDFjXHU3ZDY4XHU4NzhkXHVmOWRjXHU1N2EwXHU2MDY5XHU2MTQ3XHU2YmI3XHU4YWJlXHU5MjgwXHU5NmIxXHU0ZTU5XHU1NDFmXHU2ZGViXHU4NTJkXHU5'@; put 'NjcwXHU5N2YzXHU5OGVlXHU2M2Q2XHU2Y2UzXHU5MDkxXHU1MWRkXHU2MWM5XHU4MWJhXHU5ZGY5XHU0ZjlkXHU1MDFhXHU1MTAwXHU1YjljXHU2MTBmXHU2MWZmXHU2NGVjXHU2OTA1XHU2YmM1XHU3NTkxXHU3N2UzXHU3ZmE5XHU4MjY0XHU4NThmXHU4N2ZiXHU4ODYzXHU4YWJjIl0sWyJl'@; put 'Y2ExIiwiXHU4YjcwXHU5MWFiXHU0ZThjXHU0ZWU1XHU0ZjBhXHVmOWRkXHVmOWRlXHU1OTM3XHU1OWU4XHVmOWRmXHU1ZGYyXHU1ZjFiXHU1ZjViXHU2MDIxXHVmOWUwXHVmOWUxXHVmOWUyXHVmOWUzXHU3MjNlXHU3M2U1XHVmOWU0XHU3NTcwXHU3NWNkXHVmOWU1XHU3OWZiXHVmOWU2XHU4'@; put 'MDBjXHU4MDMzXHU4MDg0XHU4MmUxXHU4MzUxXHVmOWU3XHVmOWU4XHU4Y2JkXHU4Y2IzXHU5MDg3XHVmOWU5XHVmOWVhXHU5OGY0XHU5OTBjXHVmOWViXHVmOWVjXHU3MDM3XHU3NmNhXHU3ZmNhXHU3ZmNjXHU3ZmZjXHU4YjFhXHU0ZWJhXHU0ZWMxXHU1MjAzXHU1MzcwXHVmOWVkXHU1NGJk'@; put 'XHU1NmUwXHU1OWZiXHU1YmM1XHU1ZjE1XHU1ZmNkXHU2ZTZlXHVmOWVlXHVmOWVmXHU3ZDZhXHU4MzM1XHVmOWYwXHU4NjkzXHU4YThkXHVmOWYxXHU5NzZkXHU5Nzc3XHVmOWYyXHVmOWYzXHU0ZTAwXHU0ZjVhXHU0ZjdlXHU1OGY5XHU2NWU1XHU2ZWEyXHU5MDM4XHU5M2IwXHU5OWI5XHU0'@; put 'ZWZiXHU1OGVjXHU1OThhXHU1OWQ5XHU2MDQxXHVmOWY0XHVmOWY1XHU3YTE0XHVmOWY2XHU4MzRmXHU4Y2MzXHU1MTY1XHU1MzQ0Il0sWyJlZGExIiwiXHVmOWY3XHVmOWY4XHVmOWY5XHU0ZWNkXHU1MjY5XHU1YjU1XHU4MmJmXHU0ZWQ0XHU1MjNhXHU1NGE4XHU1OWM5XHU1OWZmXHU1YjUw'@; put 'XHU1YjU3XHU1YjVjXHU2MDYzXHU2MTQ4XHU2ZWNiXHU3MDk5XHU3MTZlXHU3Mzg2XHU3NGY3XHU3NWI1XHU3OGMxXHU3ZDJiXHU4MDA1XHU4MWVhXHU4MzI4XHU4NTE3XHU4NWM5XHU4YWVlXHU4Y2M3XHU5NmNjXHU0ZjVjXHU1MmZhXHU1NmJjXHU2NWFiXHU2NjI4XHU3MDdjXHU3MGI4XHU3'@; put 'MjM1XHU3ZGJkXHU4MjhkXHU5MTRjXHU5NmMwXHU5ZDcyXHU1YjcxXHU2OGU3XHU2Yjk4XHU2ZjdhXHU3NmRlXHU1YzkxXHU2NmFiXHU2ZjViXHU3YmI0XHU3YzJhXHU4ODM2XHU5NmRjXHU0ZTA4XHU0ZWQ3XHU1MzIwXHU1ODM0XHU1OGJiXHU1OGVmXHU1OTZjXHU1YzA3XHU1ZTMzXHU1ZTg0'@; put 'XHU1ZjM1XHU2MzhjXHU2NmIyXHU2NzU2XHU2YTFmXHU2YWEzXHU2YjBjXHU2ZjNmXHU3MjQ2XHVmOWZhXHU3MzUwXHU3NDhiXHU3YWUwXHU3Y2E3XHU4MTc4XHU4MWRmXHU4MWU3XHU4MzhhXHU4NDZjXHU4NTIzXHU4NTk0XHU4NWNmXHU4OGRkXHU4ZDEzXHU5MWFjXHU5NTc3Il0sWyJlZWEx'@; put 'IiwiXHU5NjljXHU1MThkXHU1NGM5XHU1NzI4XHU1YmIwXHU2MjRkXHU2NzUwXHU2ODNkXHU2ODkzXHU2ZTNkXHU2ZWQzXHU3MDdkXHU3ZTIxXHU4OGMxXHU4Y2ExXHU4ZjA5XHU5ZjRiXHU5ZjRlXHU3MjJkXHU3YjhmXHU4YWNkXHU5MzFhXHU0ZjQ3XHU0ZjRlXHU1MTMyXHU1NDgwXHU1OWQw'@; put 'XHU1ZTk1XHU2MmI1XHU2Nzc1XHU2OTZlXHU2YTE3XHU2Y2FlXHU2ZTFhXHU3MmQ5XHU3MzJhXHU3NWJkXHU3YmI4XHU3ZDM1XHU4MmU3XHU4M2Y5XHU4NDU3XHU4NWY3XHU4YTViXHU4Y2FmXHU4ZTg3XHU5MDE5XHU5MGI4XHU5NmNlXHU5ZjVmXHU1MmUzXHU1NDBhXHU1YWUxXHU1YmMyXHU2'@; put 'NDU4XHU2NTc1XHU2ZWY0XHU3MmM0XHVmOWZiXHU3Njg0XHU3YTRkXHU3YjFiXHU3YzRkXHU3ZTNlXHU3ZmRmXHU4MzdiXHU4YjJiXHU4Y2NhXHU4ZDY0XHU4ZGUxXHU4ZTVmXHU4ZmVhXHU4ZmY5XHU5MDY5XHU5M2QxXHU0ZjQzXHU0ZjdhXHU1MGIzXHU1MTY4XHU1MTc4XHU1MjRkXHU1MjZh'@; put 'XHU1ODYxXHU1ODdjXHU1OTYwXHU1YzA4XHU1YzU1XHU1ZWRiXHU2MDliXHU2MjMwXHU2ODEzXHU2YmJmXHU2YzA4XHU2ZmIxIl0sWyJlZmExIiwiXHU3MTRlXHU3NDIwXHU3NTMwXHU3NTM4XHU3NTUxXHU3NjcyXHU3YjRjXHU3YjhiXHU3YmFkXHU3YmM2XHU3ZThmXHU4YTZlXHU4ZjNlXHU4'@; put 'ZjQ5XHU5MjNmXHU5MjkzXHU5MzIyXHU5NDJiXHU5NmZiXHU5ODVhXHU5ODZiXHU5OTFlXHU1MjA3XHU2MjJhXHU2Mjk4XHU2ZDU5XHU3NjY0XHU3YWNhXHU3YmMwXHU3ZDc2XHU1MzYwXHU1Y2JlXHU1ZTk3XHU2ZjM4XHU3MGI5XHU3Yzk4XHU5NzExXHU5YjhlXHU5ZWRlXHU2M2E1XHU2NDdh'@; put 'XHU4Nzc2XHU0ZTAxXHU0ZTk1XHU0ZWFkXHU1MDVjXHU1MDc1XHU1NDQ4XHU1OWMzXHU1YjlhXHU1ZTQwXHU1ZWFkXHU1ZWY3XHU1ZjgxXHU2MGM1XHU2MzNhXHU2NTNmXHU2NTc0XHU2NWNjXHU2Njc2XHU2Njc4XHU2N2ZlXHU2OTY4XHU2YTg5XHU2YjYzXHU2YzQwXHU2ZGMwXHU2ZGU4XHU2'@; put 'ZTFmXHU2ZTVlXHU3MDFlXHU3MGExXHU3MzhlXHU3M2ZkXHU3NTNhXHU3NzViXHU3ODg3XHU3OThlXHU3YTBiXHU3YTdkXHU3Y2JlXHU3ZDhlXHU4MjQ3XHU4YTAyXHU4YWVhXHU4YzllXHU5MTJkXHU5MTRhXHU5MWQ4XHU5MjY2XHU5MmNjXHU5MzIwXHU5NzA2XHU5NzU2Il0sWyJmMGExIiwi'@; put 'XHU5NzVjXHU5ODAyXHU5ZjBlXHU1MjM2XHU1MjkxXHU1NTdjXHU1ODI0XHU1ZTFkXHU1ZjFmXHU2MDhjXHU2M2QwXHU2OGFmXHU2ZmRmXHU3OTZkXHU3YjJjXHU4MWNkXHU4NWJhXHU4OGZkXHU4YWY4XHU4ZTQ0XHU5MThkXHU5NjY0XHU5NjliXHU5NzNkXHU5ODRjXHU5ZjRhXHU0ZmNlXHU1'@; put 'MTQ2XHU1MWNiXHU1MmE5XHU1NjMyXHU1ZjE0XHU1ZjZiXHU2M2FhXHU2NGNkXHU2NWU5XHU2NjQxXHU2NmZhXHU2NmY5XHU2NzFkXHU2ODlkXHU2OGQ3XHU2OWZkXHU2ZjE1XHU2ZjZlXHU3MTY3XHU3MWU1XHU3MjJhXHU3NGFhXHU3NzNhXHU3OTU2XHU3OTVhXHU3OWRmXHU3YTIwXHU3YTk1'@; put 'XHU3Yzk3XHU3Y2RmXHU3ZDQ0XHU3ZTcwXHU4MDg3XHU4NWZiXHU4NmE0XHU4YTU0XHU4YWJmXHU4ZDk5XHU4ZTgxXHU5MDIwXHU5MDZkXHU5MWUzXHU5NjNiXHU5NmQ1XHU5Y2U1XHU2NWNmXHU3YzA3XHU4ZGIzXHU5M2MzXHU1YjU4XHU1YzBhXHU1MzUyXHU2MmQ5XHU3MzFkXHU1MDI3XHU1'@; put 'Yjk3XHU1ZjllXHU2MGIwXHU2MTZiXHU2OGQ1XHU2ZGQ5XHU3NDJlXHU3YTJlXHU3ZDQyXHU3ZDljXHU3ZTMxXHU4MTZiIl0sWyJmMWExIiwiXHU4ZTJhXHU4ZTM1XHU5MzdlXHU5NDE4XHU0ZjUwXHU1NzUwXHU1ZGU2XHU1ZWE3XHU2MzJiXHU3ZjZhXHU0ZTNiXHU0ZjRmXHU0ZjhmXHU1MDVh'@; put 'XHU1OWRkXHU4MGM0XHU1NDZhXHU1NDY4XHU1NWZlXHU1OTRmXHU1Yjk5XHU1ZGRlXHU1ZWRhXHU2NjVkXHU2NzMxXHU2N2YxXHU2ODJhXHU2Y2U4XHU2ZDMyXHU2ZTRhXHU2ZjhkXHU3MGI3XHU3M2UwXHU3NTg3XHU3YzRjXHU3ZDAyXHU3ZDJjXHU3ZGEyXHU4MjFmXHU4NmRiXHU4YTNiXHU4'@; put 'YTg1XHU4ZDcwXHU4ZThhXHU4ZjMzXHU5MDMxXHU5MTRlXHU5MTUyXHU5NDQ0XHU5OWQwXHU3YWY5XHU3Y2E1XHU0ZmNhXHU1MTAxXHU1MWM2XHU1N2M4XHU1YmVmXHU1Y2ZiXHU2NjU5XHU2YTNkXHU2ZDVhXHU2ZTk2XHU2ZmVjXHU3MTBjXHU3NTZmXHU3YWUzXHU4ODIyXHU5MDIxXHU5MDc1'@; put 'XHU5NmNiXHU5OWZmXHU4MzAxXHU0ZTJkXHU0ZWYyXHU4ODQ2XHU5MWNkXHU1MzdkXHU2YWRiXHU2OTZiXHU2YzQxXHU4NDdhXHU1ODllXHU2MThlXHU2NmZlXHU2MmVmXHU3MGRkXHU3NTExXHU3NWM3XHU3ZTUyXHU4NGI4XHU4YjQ5XHU4ZDA4XHU0ZTRiXHU1M2VhIl0sWyJmMmExIiwiXHU1'@; put 'NGFiXHU1NzMwXHU1NzQwXHU1ZmQ3XHU2MzAxXHU2MzA3XHU2NDZmXHU2NTJmXHU2NWU4XHU2NjdhXHU2NzlkXHU2N2IzXHU2YjYyXHU2YzYwXHU2YzlhXHU2ZjJjXHU3N2U1XHU3ODI1XHU3OTQ5XHU3OTU3XHU3ZDE5XHU4MGEyXHU4MTAyXHU4MWYzXHU4MjlkXHU4MmI3XHU4NzE4XHU4YThj'@; put 'XHVmOWZjXHU4ZDA0XHU4ZGJlXHU5MDcyXHU3NmY0XHU3YTE5XHU3YTM3XHU3ZTU0XHU4MDc3XHU1NTA3XHU1NWQ0XHU1ODc1XHU2MzJmXHU2NDIyXHU2NjQ5XHU2NjRiXHU2ODZkXHU2OTliXHU2Yjg0XHU2ZDI1XHU2ZWIxXHU3M2NkXHU3NDY4XHU3NGExXHU3NTViXHU3NWI5XHU3NmUxXHU3'@; put 'NzFlXHU3NzhiXHU3OWU2XHU3ZTA5XHU3ZTFkXHU4MWZiXHU4NTJmXHU4ODk3XHU4YTNhXHU4Y2QxXHU4ZWViXHU4ZmIwXHU5MDMyXHU5M2FkXHU5NjYzXHU5NjczXHU5NzA3XHU0Zjg0XHU1M2YxXHU1OWVhXHU1YWM5XHU1ZTE5XHU2ODRlXHU3NGM2XHU3NWJlXHU3OWU5XHU3YTkyXHU4MWEz'@; put 'XHU4NmVkXHU4Y2VhXHU4ZGNjXHU4ZmVkXHU2NTlmXHU2NzE1XHVmOWZkXHU1N2Y3XHU2ZjU3XHU3ZGRkXHU4ZjJmIl0sWyJmM2ExIiwiXHU5M2Y2XHU5NmM2XHU1ZmI1XHU2MWYyXHU2Zjg0XHU0ZTE0XHU0Zjk4XHU1MDFmXHU1M2M5XHU1NWRmXHU1ZDZmXHU1ZGVlXHU2YjIxXHU2YjY0XHU3'@; put 'OGNiXHU3YjlhXHVmOWZlXHU4ZTQ5XHU4ZWNhXHU5MDZlXHU2MzQ5XHU2NDNlXHU3NzQwXHU3YTg0XHU5MzJmXHU5NDdmXHU5ZjZhXHU2NGIwXHU2ZmFmXHU3MWU2XHU3NGE4XHU3NGRhXHU3YWM0XHU3YzEyXHU3ZTgyXHU3Y2IyXHU3ZTk4XHU4YjlhXHU4ZDBhXHU5NDdkXHU5OTEwXHU5OTRj'@; put 'XHU1MjM5XHU1YmRmXHU2NGU2XHU2NzJkXHU3ZDJlXHU1MGVkXHU1M2MzXHU1ODc5XHU2MTU4XHU2MTU5XHU2MWZhXHU2NWFjXHU3YWQ5XHU4YjkyXHU4Yjk2XHU1MDA5XHU1MDIxXHU1Mjc1XHU1NTMxXHU1YTNjXHU1ZWUwXHU1ZjcwXHU2MTM0XHU2NTVlXHU2NjBjXHU2NjM2XHU2NmEyXHU2'@; put 'OWNkXHU2ZWM0XHU2ZjMyXHU3MzE2XHU3NjIxXHU3YTkzXHU4MTM5XHU4MjU5XHU4M2Q2XHU4NGJjXHU1MGI1XHU1N2YwXHU1YmMwXHU1YmU4XHU1ZjY5XHU2M2ExXHU3ODI2XHU3ZGI1XHU4M2RjXHU4NTIxXHU5MWM3XHU5MWY1XHU1MThhXHU2N2Y1XHU3YjU2Il0sWyJmNGExIiwiXHU4Y2Fj'@; put 'XHU1MWM0XHU1OWJiXHU2MGJkXHU4NjU1XHU1MDFjXHVmOWZmXHU1MjU0XHU1YzNhXHU2MTdkXHU2MjFhXHU2MmQzXHU2NGYyXHU2NWE1XHU2ZWNjXHU3NjIwXHU4MTBhXHU4ZTYwXHU5NjVmXHU5NmJiXHU0ZWRmXHU1MzQzXHU1NTk4XHU1OTI5XHU1ZGRkXHU2NGM1XHU2Y2M5XHU2ZGZhXHU3'@; put 'Mzk0XHU3YTdmXHU4MjFiXHU4NWE2XHU4Y2U0XHU4ZTEwXHU5MDc3XHU5MWU3XHU5NWUxXHU5NjIxXHU5N2M2XHU1MWY4XHU1NGYyXHU1NTg2XHU1ZmI5XHU2NGE0XHU2Zjg4XHU3ZGI0XHU4ZjFmXHU4ZjRkXHU5NDM1XHU1MGM5XHU1YzE2XHU2Y2JlXHU2ZGZiXHU3NTFiXHU3N2JiXHU3YzNk'@; put 'XHU3YzY0XHU4YTc5XHU4YWMyXHU1ODFlXHU1OWJlXHU1ZTE2XHU2Mzc3XHU3MjUyXHU3NThhXHU3NzZiXHU4YWRjXHU4Y2JjXHU4ZjEyXHU1ZWYzXHU2Njc0XHU2ZGY4XHU4MDdkXHU4M2MxXHU4YWNiXHU5NzUxXHU5YmQ2XHVmYTAwXHU1MjQzXHU2NmZmXHU2ZDk1XHU2ZWVmXHU3ZGUwXHU4'@; put 'YWU2XHU5MDJlXHU5MDVlXHU5YWQ0XHU1MjFkXHU1MjdmXHU1NGU4XHU2MTk0XHU2Mjg0XHU2MmRiXHU2OGEyIl0sWyJmNWExIiwiXHU2OTEyXHU2OTVhXHU2YTM1XHU3MDkyXHU3MTI2XHU3ODVkXHU3OTAxXHU3OTBlXHU3OWQyXHU3YTBkXHU4MDk2XHU4Mjc4XHU4MmQ1XHU4MzQ5XHU4NTQ5'@; put 'XHU4YzgyXHU4ZDg1XHU5MTYyXHU5MThiXHU5MWFlXHU0ZmMzXHU1NmQxXHU3MWVkXHU3N2Q3XHU4NzAwXHU4OWY4XHU1YmY4XHU1ZmQ2XHU2NzUxXHU5MGE4XHU1M2UyXHU1ODVhXHU1YmY1XHU2MGE0XHU2MTgxXHU2NDYwXHU3ZTNkXHU4MDcwXHU4NTI1XHU5MjgzXHU2NGFlXHU1MGFjXHU1'@; put 'ZDE0XHU2NzAwXHU1ODljXHU2MmJkXHU2M2E4XHU2OTBlXHU2OTc4XHU2YTFlXHU2ZTZiXHU3NmJhXHU3OWNiXHU4MmJiXHU4NDI5XHU4YWNmXHU4ZGE4XHU4ZmZkXHU5MTEyXHU5MTRiXHU5MTljXHU5MzEwXHU5MzE4XHU5MzlhXHU5NmRiXHU5YTM2XHU5YzBkXHU0ZTExXHU3NTVjXHU3OTVk'@; put 'XHU3YWZhXHU3YjUxXHU3YmM5XHU3ZTJlXHU4NGM0XHU4ZTU5XHU4ZTc0XHU4ZWY4XHU5MDEwXHU2NjI1XHU2OTNmXHU3NDQzXHU1MWZhXHU2NzJlXHU5ZWRjXHU1MTQ1XHU1ZmUwXHU2Yzk2XHU4N2YyXHU4ODVkXHU4ODc3XHU2MGI0XHU4MWI1XHU4NDAzIl0sWyJmNmExIiwiXHU4ZDA1XHU1'@; put 'M2Q2XHU1NDM5XHU1NjM0XHU1YTM2XHU1YzMxXHU3MDhhXHU3ZmUwXHU4MDVhXHU4MTA2XHU4MWVkXHU4ZGEzXHU5MTg5XHU5YTVmXHU5ZGYyXHU1MDc0XHU0ZWM0XHU1M2EwXHU2MGZiXHU2ZTJjXHU1YzY0XHU0Zjg4XHU1MDI0XHU1NWU0XHU1Y2Q5XHU1ZTVmXHU2MDY1XHU2ODk0XHU2Y2Ji'@; put 'XHU2ZGM0XHU3MWJlXHU3NWQ0XHU3NWY0XHU3NjYxXHU3YTFhXHU3YTQ5XHU3ZGM3XHU3ZGZiXHU3ZjZlXHU4MWY0XHU4NmE5XHU4ZjFjXHU5NmM5XHU5OWIzXHU5ZjUyXHU1MjQ3XHU1MmM1XHU5OGVkXHU4OWFhXHU0ZTAzXHU2N2QyXHU2ZjA2XHU0ZmI1XHU1YmUyXHU2Nzk1XHU2Yzg4XHU2'@; put 'ZDc4XHU3NDFiXHU3ODI3XHU5MWRkXHU5MzdjXHU4N2M0XHU3OWU0XHU3YTMxXHU1ZmViXHU0ZWQ2XHU1NGE0XHU1NTNlXHU1OGFlXHU1OWE1XHU2MGYwXHU2MjUzXHU2MmQ2XHU2NzM2XHU2OTU1XHU4MjM1XHU5NjQwXHU5OWIxXHU5OWRkXHU1MDJjXHU1MzUzXHU1NTQ0XHU1NzdjXHVmYTAx'@; put 'XHU2MjU4XHVmYTAyXHU2NGUyXHU2NjZiXHU2N2RkXHU2ZmMxXHU2ZmVmXHU3NDIyXHU3NDM4XHU4YTE3Il0sWyJmN2ExIiwiXHU5NDM4XHU1NDUxXHU1NjA2XHU1NzY2XHU1ZjQ4XHU2MTlhXHU2YjRlXHU3MDU4XHU3MGFkXHU3ZGJiXHU4YTk1XHU1OTZhXHU4MTJiXHU2M2EyXHU3NzA4XHU4'@; put 'MDNkXHU4Y2FhXHU1ODU0XHU2NDJkXHU2OWJiXHU1Yjk1XHU1ZTExXHU2ZTZmXHVmYTAzXHU4NTY5XHU1MTRjXHU1M2YwXHU1OTJhXHU2MDIwXHU2MTRiXHU2Yjg2XHU2YzcwXHU2Y2YwXHU3YjFlXHU4MGNlXHU4MmQ0XHU4ZGM2XHU5MGIwXHU5OGIxXHVmYTA0XHU2NGM3XHU2ZmE0XHU2NDkx'@; put 'XHU2NTA0XHU1MTRlXHU1NDEwXHU1NzFmXHU4YTBlXHU2MTVmXHU2ODc2XHVmYTA1XHU3NWRiXHU3YjUyXHU3ZDcxXHU5MDFhXHU1ODA2XHU2OWNjXHU4MTdmXHU4OTJhXHU5MDAwXHU5ODM5XHU1MDc4XHU1OTU3XHU1OWFjXHU2Mjk1XHU5MDBmXHU5YjJhXHU2MTVkXHU3Mjc5XHU5NWQ2XHU1'@; put 'NzYxXHU1YTQ2XHU1ZGY0XHU2MjhhXHU2NGFkXHU2NGZhXHU2Nzc3XHU2Y2UyXHU2ZDNlXHU3MjJjXHU3NDM2XHU3ODM0XHU3Zjc3XHU4MmFkXHU4ZGRiXHU5ODE3XHU1MjI0XHU1NzQyXHU2NzdmXHU3MjQ4XHU3NGUzXHU4Y2E5XHU4ZmE2XHU5MjExIl0sWyJmOGExIiwiXHU5NjJhXHU1MTZi'@; put 'XHU1M2VkXHU2MzRjXHU0ZjY5XHU1NTA0XHU2MDk2XHU2NTU3XHU2YzliXHU2ZDdmXHU3MjRjXHU3MmZkXHU3YTE3XHU4OTg3XHU4YzlkXHU1ZjZkXHU2ZjhlXHU3MGY5XHU4MWE4XHU2MTBlXHU0ZmJmXHU1MDRmXHU2MjQxXHU3MjQ3XHU3YmM3XHU3ZGU4XHU3ZmU5XHU5MDRkXHU5N2FkXHU5'@; put 'YTE5XHU4Y2I2XHU1NzZhXHU1ZTczXHU2N2IwXHU4NDBkXHU4YTU1XHU1NDIwXHU1YjE2XHU1ZTYzXHU1ZWUyXHU1ZjBhXHU2NTgzXHU4MGJhXHU4NTNkXHU5NTg5XHU5NjViXHU0ZjQ4XHU1MzA1XHU1MzBkXHU1MzBmXHU1NDg2XHU1NGZhXHU1NzAzXHU1ZTAzXHU2MDE2XHU2MjliXHU2MmIx'@; put 'XHU2MzU1XHVmYTA2XHU2Y2UxXHU2ZDY2XHU3NWIxXHU3ODMyXHU4MGRlXHU4MTJmXHU4MmRlXHU4NDYxXHU4NGIyXHU4ODhkXHU4OTEyXHU5MDBiXHU5MmVhXHU5OGZkXHU5YjkxXHU1ZTQ1XHU2NmI0XHU2NmRkXHU3MDExXHU3MjA2XHVmYTA3XHU0ZmY1XHU1MjdkXHU1ZjZhXHU2MTUzXHU2'@; put 'NzUzXHU2YTE5XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4Yzc5XHU5OGM3XHU5OGM0XHU5YTQzIl0sWyJmOWExIiwiXHU1NGMxXHU3YTFmXHU2OTUzXHU4YWY3XHU4YzRhXHU5OGE4XHU5OWFlXHU1ZjdjXHU2MmFiXHU3NWIyXHU3NmFlXHU4OGFiXHU5MDdmXHU5NjQyXHU1MzM5XHU1ZjNj'@; put 'XHU1ZmM1XHU2Y2NjXHU3M2NjXHU3NTYyXHU3NThiXHU3YjQ2XHU4MmZlXHU5OTlkXHU0ZTRmXHU5MDNjXHU0ZTBiXHU0ZjU1XHU1M2E2XHU1OTBmXHU1ZWM4XHU2NjMwXHU2Y2IzXHU3NDU1XHU4Mzc3XHU4NzY2XHU4Y2MwXHU5MDUwXHU5NzFlXHU5YzE1XHU1OGQxXHU1Yjc4XHU4NjUwXHU4'@; put 'YjE0XHU5ZGI0XHU1YmQyXHU2MDY4XHU2MDhkXHU2NWYxXHU2YzU3XHU2ZjIyXHU2ZmEzXHU3MDFhXHU3ZjU1XHU3ZmYwXHU5NTkxXHU5NTkyXHU5NjUwXHU5N2QzXHU1MjcyXHU4ZjQ0XHU1MWZkXHU1NDJiXHU1NGI4XHU1NTYzXHU1NThhXHU2YWJiXHU2ZGI1XHU3ZGQ4XHU4MjY2XHU5Mjlj'@; put 'XHU5Njc3XHU5ZTc5XHU1NDA4XHU1NGM4XHU3NmQyXHU4NmU0XHU5NWE0XHU5NWQ0XHU5NjVjXHU0ZWEyXHU0ZjA5XHU1OWVlXHU1YWU2XHU1ZGY3XHU2MDUyXHU2Mjk3XHU2NzZkXHU2ODQxXHU2Yzg2XHU2ZTJmXHU3ZjM4XHU4MDliXHU4MjJhIl0sWyJmYWExIiwiXHVmYTA4XHVmYTA5XHU5'@; put 'ODA1XHU0ZWE1XHU1MDU1XHU1NGIzXHU1NzkzXHU1OTVhXHU1YjY5XHU1YmIzXHU2MWM4XHU2OTc3XHU2ZDc3XHU3MDIzXHU4N2Y5XHU4OWUzXHU4YTcyXHU4YWU3XHU5MDgyXHU5OWVkXHU5YWI4XHU1MmJlXHU2ODM4XHU1MDE2XHU1ZTc4XHU2NzRmXHU4MzQ3XHU4ODRjXHU0ZWFiXHU1NDEx'@; put 'XHU1NmFlXHU3M2U2XHU5MTE1XHU5N2ZmXHU5OTA5XHU5OTU3XHU5OTk5XHU1NjUzXHU1ODlmXHU4NjViXHU4YTMxXHU2MWIyXHU2YWY2XHU3MzdiXHU4ZWQyXHU2YjQ3XHU5NmFhXHU5YTU3XHU1OTU1XHU3MjAwXHU4ZDZiXHU5NzY5XHU0ZmQ0XHU1Y2Y0XHU1ZjI2XHU2MWY4XHU2NjViXHU2'@; put 'Y2ViXHU3MGFiXHU3Mzg0XHU3M2I5XHU3M2ZlXHU3NzI5XHU3NzRkXHU3ZDQzXHU3ZDYyXHU3ZTIzXHU4MjM3XHU4ODUyXHVmYTBhXHU4Y2UyXHU5MjQ5XHU5ODZmXHU1YjUxXHU3YTc0XHU4ODQwXHU5ODAxXHU1YWNjXHU0ZmUwXHU1MzU0XHU1OTNlXHU1Y2ZkXHU2MzNlXHU2ZDc5XHU3MmY5'@; put 'XHU4MTA1XHU4MTA3XHU4M2EyXHU5MmNmXHU5ODMwXHU0ZWE4XHU1MTQ0XHU1MjExXHU1NzhiIl0sWyJmYmExIiwiXHU1ZjYyXHU2Y2MyXHU2ZWNlXHU3MDA1XHU3MDUwXHU3MGFmXHU3MTkyXHU3M2U5XHU3NDY5XHU4MzRhXHU4N2EyXHU4ODYxXHU5MDA4XHU5MGEyXHU5M2EzXHU5OWE4XHU1'@; put 'MTZlXHU1ZjU3XHU2MGUwXHU2MTY3XHU2NmIzXHU4NTU5XHU4ZTRhXHU5MWFmXHU5NzhiXHU0ZTRlXHU0ZTkyXHU1NDdjXHU1OGQ1XHU1OGZhXHU1OTdkXHU1Y2I1XHU1ZjI3XHU2MjM2XHU2MjQ4XHU2NjBhXHU2NjY3XHU2YmViXHU2ZDY5XHU2ZGNmXHU2ZTU2XHU2ZWY4XHU2Zjk0XHU2ZmUw'@; put 'XHU2ZmU5XHU3MDVkXHU3MmQwXHU3NDI1XHU3NDVhXHU3NGUwXHU3NjkzXHU3OTVjXHU3Y2NhXHU3ZTFlXHU4MGUxXHU4MmE2XHU4NDZiXHU4NGJmXHU4NjRlXHU4NjVmXHU4Nzc0XHU4Yjc3XHU4YzZhXHU5M2FjXHU5ODAwXHU5ODY1XHU2MGQxXHU2MjE2XHU5MTc3XHU1YTVhXHU2NjBmXHU2'@; put 'ZGY3XHU2ZTNlXHU3NDNmXHU5YjQyXHU1ZmZkXHU2MGRhXHU3YjBmXHU1NGM0XHU1ZjE4XHU2YzVlXHU2Y2QzXHU2ZDJhXHU3MGQ4XHU3ZDA1XHU4Njc5XHU4YTBjXHU5ZDNiXHU1MzE2XHU1NDhjXHU1YjA1XHU2YTNhXHU3MDZiXHU3NTc1Il0sWyJmY2ExIiwiXHU3OThkXHU3OWJlXHU4MmIx'@; put 'XHU4M2VmXHU4YTcxXHU4YjQxXHU4Y2E4XHU5Nzc0XHVmYTBiXHU2NGY0XHU2NTJiXHU3OGJhXHU3OGJiXHU3YTZiXHU0ZTM4XHU1NTlhXHU1OTUwXHU1YmE2XHU1ZTdiXHU2MGEzXHU2M2RiXHU2YjYxXHU2NjY1XHU2ODUzXHU2ZTE5XHU3MTY1XHU3NGIwXHU3ZDA4XHU5MDg0XHU5YTY5XHU5'@; put 'YzI1XHU2ZDNiXHU2ZWQxXHU3MzNlXHU4YzQxXHU5NWNhXHU1MWYwXHU1ZTRjXHU1ZmE4XHU2MDRkXHU2MGY2XHU2MTMwXHU2MTRjXHU2NjQzXHU2NjQ0XHU2OWE1XHU2Y2MxXHU2ZTVmXHU2ZWM5XHU2ZjYyXHU3MTRjXHU3NDljXHU3Njg3XHU3YmMxXHU3YzI3XHU4MzUyXHU4NzU3XHU5MDUx'@; put 'XHU5NjhkXHU5ZWMzXHU1MzJmXHU1NmRlXHU1ZWZiXHU1ZjhhXHU2MDYyXHU2MDk0XHU2MWY3XHU2NjY2XHU2NzAzXHU2YTljXHU2ZGVlXHU2ZmFlXHU3MDcwXHU3MzZhXHU3ZTZhXHU4MWJlXHU4MzM0XHU4NmQ0XHU4YWE4XHU4Y2M0XHU1MjgzXHU3MzcyXHU1Yjk2XHU2YTZiXHU5NDA0XHU1'@; put 'NGVlXHU1Njg2XHU1YjVkXHU2NTQ4XHU2NTg1XHU2NmM5XHU2ODlmXHU2ZDhkXHU2ZGM2Il0sWyJmZGExIiwiXHU3MjNiXHU4MGI0XHU5MTc1XHU5YTRkXHU0ZmFmXHU1MDE5XHU1MzlhXHU1NDBlXHU1NDNjXHU1NTg5XHU1NWM1XHU1ZTNmXHU1ZjhjXHU2NzNkXHU3MTY2XHU3M2RkXHU5MDA1'@; put 'XHU1MmRiXHU1MmYzXHU1ODY0XHU1OGNlXHU3MTA0XHU3MThmXHU3MWZiXHU4NWIwXHU4YTEzXHU2Njg4XHU4NWE4XHU1NWE3XHU2Njg0XHU3MTRhXHU4NDMxXHU1MzQ5XHU1NTk5XHU2YmMxXHU1ZjU5XHU1ZmJkXHU2M2VlXHU2Njg5XHU3MTQ3XHU4YWYxXHU4ZjFkXHU5ZWJlXHU0ZjExXHU2'@; put 'NDNhXHU3MGNiXHU3NTY2XHU4NjY3XHU2MDY0XHU4YjRlXHU5ZGY4XHU1MTQ3XHU1MWY2XHU1MzA4XHU2ZDM2XHU4MGY4XHU5ZWQxXHU2NjE1XHU2YjIzXHU3MDk4XHU3NWQ1XHU1NDAzXHU1Yzc5XHU3ZDA3XHU4YTE2XHU2YjIwXHU2YjNkXHU2YjQ2XHU1NDM4XHU2MDcwXHU2ZDNkXHU3ZmQ1'@; put 'XHU4MjA4XHU1MGQ2XHU1MWRlXHU1NTljXHU1NjZiXHU1NmNkXHU1OWVjXHU1YjA5XHU1ZTBjXHU2MTk5XHU2MTk4XHU2MjMxXHU2NjVlXHU2NmU2XHU3MTk5XHU3MWI5XHU3MWJhXHU3MmE3XHU3OWE3XHU3YTAwXHU3ZmIyXHU4YTcwIl1dJyl9LDc0Mjg0OmF0PT57InVzZSBzdHJpY3QiO2F0'@; put 'LmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyN10sWyJhMTQwIiwiXHUzMDAwXHVmZjBjXHUzMDAxXHUzMDAyXHVmZjBlXHUyMDI3XHVmZjFiXHVmZjFhXHVmZjFmXHVmZjAxXHVmZTMwXHUyMDI2XHUyMDI1XHVmZTUwXHVmZTUxXHVmZTUyXHhiN1x1ZmU1NFx1ZmU1NVx1'@; put 'ZmU1Nlx1ZmU1N1x1ZmY1Y1x1MjAxM1x1ZmUzMVx1MjAxNFx1ZmUzM1x1MjU3NFx1ZmUzNFx1ZmU0Zlx1ZmYwOFx1ZmYwOVx1ZmUzNVx1ZmUzNlx1ZmY1Ylx1ZmY1ZFx1ZmUzN1x1ZmUzOFx1MzAxNFx1MzAxNVx1ZmUzOVx1ZmUzYVx1MzAxMFx1MzAxMVx1ZmUzYlx1ZmUzY1x1MzAwYVx1MzAw'@; put 'Ylx1ZmUzZFx1ZmUzZVx1MzAwOFx1MzAwOVx1ZmUzZlx1ZmU0MFx1MzAwY1x1MzAwZFx1ZmU0MVx1ZmU0Mlx1MzAwZVx1MzAwZlx1ZmU0M1x1ZmU0NFx1ZmU1OVx1ZmU1YSJdLFsiYTFhMSIsIlx1ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MzAxZFx1'@; put 'MzAxZVx1MjAzNVx1MjAzMlx1ZmYwM1x1ZmYwNlx1ZmYwYVx1MjAzYlx4YTdcdTMwMDNcdTI1Y2JcdTI1Y2ZcdTI1YjNcdTI1YjJcdTI1Y2VcdTI2MDZcdTI2MDVcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YmRcdTI1YmNcdTMyYTNcdTIxMDVceGFmXHVmZmUzXHVmZjNmXHUwMmNkXHVm'@; put 'ZTQ5XHVmZTRhXHVmZTRkXHVmZTRlXHVmZTRiXHVmZTRjXHVmZTVmXHVmZTYwXHVmZTYxXHVmZjBiXHVmZjBkXHhkN1x4ZjdceGIxXHUyMjFhXHVmZjFjXHVmZjFlXHVmZjFkXHUyMjY2XHUyMjY3XHUyMjYwXHUyMjFlXHUyMjUyXHUyMjYxXHVmZTYyIiw0LCJcdWZmNWVcdTIyMjlcdTIyMmFc'@; put 'dTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTMzZDJcdTMzZDFcdTIyMmJcdTIyMmVcdTIyMzVcdTIyMzRcdTI2NDBcdTI2NDJcdTIyOTVcdTIyOTlcdTIxOTFcdTIxOTNcdTIxOTBcdTIxOTJcdTIxOTZcdTIxOTdcdTIxOTlcdTIxOThcdTIyMjVcdTIyMjNcdWZmMGYiXSxbImEyNDAiLCJcdWZm'@; put 'M2NcdTIyMTVcdWZlNjhcdWZmMDRcdWZmZTVcdTMwMTJcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMjBcdTIxMDNcdTIxMDlcdWZlNjlcdWZlNmFcdWZlNmJcdTMzZDVcdTMzOWNcdTMzOWRcdTMzOWVcdTMzY2VcdTMzYTFcdTMzOGVcdTMzOGZcdTMzYzRceGIwXHU1MTU5XHU1MTViXHU1MTVlXHU1'@; put 'MTVkXHU1MTYxXHU1MTYzXHU1NWU3XHU3NGU5XHU3Y2NlXHUyNTgxIiw3LCJcdTI1OGZcdTI1OGVcdTI1OGRcdTI1OGNcdTI1OGJcdTI1OGFcdTI1ODlcdTI1M2NcdTI1MzRcdTI1MmNcdTI1MjRcdTI1MWNcdTI1OTRcdTI1MDBcdTI1MDJcdTI1OTVcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThc'@; put 'dTI1NmQiXSxbImEyYTEiLCJcdTI1NmVcdTI1NzBcdTI1NmZcdTI1NTBcdTI1NWVcdTI1NmFcdTI1NjFcdTI1ZTJcdTI1ZTNcdTI1ZTVcdTI1ZTRcdTI1NzFcdTI1NzJcdTI1NzNcdWZmMTAiLDksIlx1MjE2MCIsOSwiXHUzMDIxIiw4LCJcdTUzNDFcdTUzNDRcdTUzNDVcdWZmMjEiLDI1LCJc'@; put 'dWZmNDEiLDIxXSxbImEzNDAiLCJcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdTAzOTEiLDE2LCJcdTAzYTMiLDYsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNiwiXHUzMTA1IiwxMF0sWyJhM2ExIiwiXHUzMTEwIiwyNSwiXHUwMmQ5XHUwMmM5XHUwMmNhXHUwMmM3XHUwMmNiIl0sWyJhM2UxIiwi'@; put 'XHUyMGFjIl0sWyJhNDQwIiwiXHU0ZTAwXHU0ZTU5XHU0ZTAxXHU0ZTAzXHU0ZTQzXHU0ZTVkXHU0ZTg2XHU0ZThjXHU0ZWJhXHU1MTNmXHU1MTY1XHU1MTZiXHU1MWUwXHU1MjAwXHU1MjAxXHU1MjliXHU1MzE1XHU1MzQxXHU1MzVjXHU1M2M4XHU0ZTA5XHU0ZTBiXHU0ZTA4XHU0ZTBhXHU0'@; put 'ZTJiXHU0ZTM4XHU1MWUxXHU0ZTQ1XHU0ZTQ4XHU0ZTVmXHU0ZTVlXHU0ZThlXHU0ZWExXHU1MTQwXHU1MjAzXHU1MmZhXHU1MzQzXHU1M2M5XHU1M2UzXHU1NzFmXHU1OGViXHU1OTE1XHU1OTI3XHU1OTczXHU1YjUwXHU1YjUxXHU1YjUzXHU1YmY4XHU1YzBmXHU1YzIyXHU1YzM4XHU1Yzcx'@; put 'XHU1ZGRkXHU1ZGU1XHU1ZGYxXHU1ZGYyXHU1ZGYzXHU1ZGZlXHU1ZTcyXHU1ZWZlXHU1ZjBiXHU1ZjEzXHU2MjRkIl0sWyJhNGExIiwiXHU0ZTExXHU0ZTEwXHU0ZTBkXHU0ZTJkXHU0ZTMwXHU0ZTM5XHU0ZTRiXHU1YzM5XHU0ZTg4XHU0ZTkxXHU0ZTk1XHU0ZTkyXHU0ZTk0XHU0ZWEyXHU0'@; put 'ZWMxXHU0ZWMwXHU0ZWMzXHU0ZWM2XHU0ZWM3XHU0ZWNkXHU0ZWNhXHU0ZWNiXHU0ZWM0XHU1MTQzXHU1MTQxXHU1MTY3XHU1MTZkXHU1MTZlXHU1MTZjXHU1MTk3XHU1MWY2XHU1MjA2XHU1MjA3XHU1MjA4XHU1MmZiXHU1MmZlXHU1MmZmXHU1MzE2XHU1MzM5XHU1MzQ4XHU1MzQ3XHU1MzQ1'@; put 'XHU1MzVlXHU1Mzg0XHU1M2NiXHU1M2NhXHU1M2NkXHU1OGVjXHU1OTI5XHU1OTJiXHU1OTJhXHU1OTJkXHU1YjU0XHU1YzExXHU1YzI0XHU1YzNhXHU1YzZmXHU1ZGY0XHU1ZTdiXHU1ZWZmXHU1ZjE0XHU1ZjE1XHU1ZmMzXHU2MjA4XHU2MjM2XHU2MjRiXHU2MjRlXHU2NTJmXHU2NTg3XHU2'@; put 'NTk3XHU2NWE0XHU2NWI5XHU2NWU1XHU2NmYwXHU2NzA4XHU2NzI4XHU2YjIwXHU2YjYyXHU2Yjc5XHU2YmNiXHU2YmQ0XHU2YmRiXHU2YzBmXHU2YzM0XHU3MDZiXHU3MjJhXHU3MjM2XHU3MjNiXHU3MjQ3XHU3MjU5XHU3MjViXHU3MmFjXHU3MzhiXHU0ZTE5Il0sWyJhNTQwIiwiXHU0ZTE2'@; put 'XHU0ZTE1XHU0ZTE0XHU0ZTE4XHU0ZTNiXHU0ZTRkXHU0ZTRmXHU0ZTRlXHU0ZWU1XHU0ZWQ4XHU0ZWQ0XHU0ZWQ1XHU0ZWQ2XHU0ZWQ3XHU0ZWUzXHU0ZWU0XHU0ZWQ5XHU0ZWRlXHU1MTQ1XHU1MTQ0XHU1MTg5XHU1MThhXHU1MWFjXHU1MWY5XHU1MWZhXHU1MWY4XHU1MjBhXHU1MmEwXHU1'@; put 'MjlmXHU1MzA1XHU1MzA2XHU1MzE3XHU1MzFkXHU0ZWRmXHU1MzRhXHU1MzQ5XHU1MzYxXHU1MzYwXHU1MzZmXHU1MzZlXHU1M2JiXHU1M2VmXHU1M2U0XHU1M2YzXHU1M2VjXHU1M2VlXHU1M2U5XHU1M2U4XHU1M2ZjXHU1M2Y4XHU1M2Y1XHU1M2ViXHU1M2U2XHU1M2VhXHU1M2YyXHU1M2Yx'@; put 'XHU1M2YwXHU1M2U1XHU1M2VkXHU1M2ZiXHU1NmRiXHU1NmRhXHU1OTE2Il0sWyJhNWExIiwiXHU1OTJlXHU1OTMxXHU1OTc0XHU1OTc2XHU1YjU1XHU1YjgzXHU1YzNjXHU1ZGU4XHU1ZGU3XHU1ZGU2XHU1ZTAyXHU1ZTAzXHU1ZTczXHU1ZTdjXHU1ZjAxXHU1ZjE4XHU1ZjE3XHU1ZmM1XHU2'@; put 'MjBhXHU2MjUzXHU2MjU0XHU2MjUyXHU2MjUxXHU2NWE1XHU2NWU2XHU2NzJlXHU2NzJjXHU2NzJhXHU2NzJiXHU2NzJkXHU2YjYzXHU2YmNkXHU2YzExXHU2YzEwXHU2YzM4XHU2YzQxXHU2YzQwXHU2YzNlXHU3MmFmXHU3Mzg0XHU3Mzg5XHU3NGRjXHU3NGU2XHU3NTE4XHU3NTFmXHU3NTI4'@; put 'XHU3NTI5XHU3NTMwXHU3NTMxXHU3NTMyXHU3NTMzXHU3NThiXHU3NjdkXHU3NmFlXHU3NmJmXHU3NmVlXHU3N2RiXHU3N2UyXHU3N2YzXHU3OTNhXHU3OWJlXHU3YTc0XHU3YWNiXHU0ZTFlXHU0ZTFmXHU0ZTUyXHU0ZTUzXHU0ZTY5XHU0ZTk5XHU0ZWE0XHU0ZWE2XHU0ZWE1XHU0ZWZmXHU0'@; put 'ZjA5XHU0ZjE5XHU0ZjBhXHU0ZjE1XHU0ZjBkXHU0ZjEwXHU0ZjExXHU0ZjBmXHU0ZWYyXHU0ZWY2XHU0ZWZiXHU0ZWYwXHU0ZWYzXHU0ZWZkXHU0ZjAxXHU0ZjBiXHU1MTQ5XHU1MTQ3XHU1MTQ2XHU1MTQ4XHU1MTY4Il0sWyJhNjQwIiwiXHU1MTcxXHU1MThkXHU1MWIwXHU1MjE3XHU1MjEx'@; put 'XHU1MjEyXHU1MjBlXHU1MjE2XHU1MmEzXHU1MzA4XHU1MzIxXHU1MzIwXHU1MzcwXHU1MzcxXHU1NDA5XHU1NDBmXHU1NDBjXHU1NDBhXHU1NDEwXHU1NDAxXHU1NDBiXHU1NDA0XHU1NDExXHU1NDBkXHU1NDA4XHU1NDAzXHU1NDBlXHU1NDA2XHU1NDEyXHU1NmUwXHU1NmRlXHU1NmRkXHU1'@; put 'NzMzXHU1NzMwXHU1NzI4XHU1NzJkXHU1NzJjXHU1NzJmXHU1NzI5XHU1OTE5XHU1OTFhXHU1OTM3XHU1OTM4XHU1OTg0XHU1OTc4XHU1OTgzXHU1OTdkXHU1OTc5XHU1OTgyXHU1OTgxXHU1YjU3XHU1YjU4XHU1Yjg3XHU1Yjg4XHU1Yjg1XHU1Yjg5XHU1YmZhXHU1YzE2XHU1Yzc5XHU1ZGRl'@; put 'XHU1ZTA2XHU1ZTc2XHU1ZTc0Il0sWyJhNmExIiwiXHU1ZjBmXHU1ZjFiXHU1ZmQ5XHU1ZmQ2XHU2MjBlXHU2MjBjXHU2MjBkXHU2MjEwXHU2MjYzXHU2MjViXHU2MjU4XHU2NTM2XHU2NWU5XHU2NWU4XHU2NWVjXHU2NWVkXHU2NmYyXHU2NmYzXHU2NzA5XHU2NzNkXHU2NzM0XHU2NzMxXHU2'@; put 'NzM1XHU2YjIxXHU2YjY0XHU2YjdiXHU2YzE2XHU2YzVkXHU2YzU3XHU2YzU5XHU2YzVmXHU2YzYwXHU2YzUwXHU2YzU1XHU2YzYxXHU2YzViXHU2YzRkXHU2YzRlXHU3MDcwXHU3MjVmXHU3MjVkXHU3NjdlXHU3YWY5XHU3YzczXHU3Y2Y4XHU3ZjM2XHU3ZjhhXHU3ZmJkXHU4MDAxXHU4MDAz'@; put 'XHU4MDBjXHU4MDEyXHU4MDMzXHU4MDdmXHU4MDg5XHU4MDhiXHU4MDhjXHU4MWUzXHU4MWVhXHU4MWYzXHU4MWZjXHU4MjBjXHU4MjFiXHU4MjFmXHU4MjZlXHU4MjcyXHU4MjdlXHU4NjZiXHU4ODQwXHU4ODRjXHU4ODYzXHU4OTdmXHU5NjIxXHU0ZTMyXHU0ZWE4XHU0ZjRkXHU0ZjRmXHU0'@; put 'ZjQ3XHU0ZjU3XHU0ZjVlXHU0ZjM0XHU0ZjViXHU0ZjU1XHU0ZjMwXHU0ZjUwXHU0ZjUxXHU0ZjNkXHU0ZjNhXHU0ZjM4XHU0ZjQzXHU0ZjU0XHU0ZjNjXHU0ZjQ2XHU0ZjYzIl0sWyJhNzQwIiwiXHU0ZjVjXHU0ZjYwXHU0ZjJmXHU0ZjRlXHU0ZjM2XHU0ZjU5XHU0ZjVkXHU0ZjQ4XHU0ZjVh'@; put 'XHU1MTRjXHU1MTRiXHU1MTRkXHU1MTc1XHU1MWI2XHU1MWI3XHU1MjI1XHU1MjI0XHU1MjI5XHU1MjJhXHU1MjI4XHU1MmFiXHU1MmE5XHU1MmFhXHU1MmFjXHU1MzIzXHU1MzczXHU1Mzc1XHU1NDFkXHU1NDJkXHU1NDFlXHU1NDNlXHU1NDI2XHU1NDRlXHU1NDI3XHU1NDQ2XHU1NDQzXHU1'@; put 'NDMzXHU1NDQ4XHU1NDQyXHU1NDFiXHU1NDI5XHU1NDRhXHU1NDM5XHU1NDNiXHU1NDM4XHU1NDJlXHU1NDM1XHU1NDM2XHU1NDIwXHU1NDNjXHU1NDQwXHU1NDMxXHU1NDJiXHU1NDFmXHU1NDJjXHU1NmVhXHU1NmYwXHU1NmU0XHU1NmViXHU1NzRhXHU1NzUxXHU1NzQwXHU1NzRkIl0sWyJh'@; put 'N2ExIiwiXHU1NzQ3XHU1NzRlXHU1NzNlXHU1NzUwXHU1NzRmXHU1NzNiXHU1OGVmXHU1OTNlXHU1OTlkXHU1OTkyXHU1OWE4XHU1OTllXHU1OWEzXHU1OTk5XHU1OTk2XHU1OThkXHU1OWE0XHU1OTkzXHU1OThhXHU1OWE1XHU1YjVkXHU1YjVjXHU1YjVhXHU1YjViXHU1YjhjXHU1YjhiXHU1'@; put 'YjhmXHU1YzJjXHU1YzQwXHU1YzQxXHU1YzNmXHU1YzNlXHU1YzkwXHU1YzkxXHU1Yzk0XHU1YzhjXHU1ZGViXHU1ZTBjXHU1ZThmXHU1ZTg3XHU1ZThhXHU1ZWY3XHU1ZjA0XHU1ZjFmXHU1ZjY0XHU1ZjYyXHU1Zjc3XHU1Zjc5XHU1ZmQ4XHU1ZmNjXHU1ZmQ3XHU1ZmNkXHU1ZmYxXHU1ZmVi'@; put 'XHU1ZmY4XHU1ZmVhXHU2MjEyXHU2MjExXHU2Mjg0XHU2Mjk3XHU2Mjk2XHU2MjgwXHU2Mjc2XHU2Mjg5XHU2MjZkXHU2MjhhXHU2MjdjXHU2MjdlXHU2Mjc5XHU2MjczXHU2MjkyXHU2MjZmXHU2Mjk4XHU2MjZlXHU2Mjk1XHU2MjkzXHU2MjkxXHU2Mjg2XHU2NTM5XHU2NTNiXHU2NTM4XHU2'@; put 'NWYxXHU2NmY0XHU2NzVmXHU2NzRlXHU2NzRmXHU2NzUwXHU2NzUxXHU2NzVjXHU2NzU2XHU2NzVlXHU2NzQ5XHU2NzQ2XHU2NzYwIl0sWyJhODQwIiwiXHU2NzUzXHU2NzU3XHU2YjY1XHU2YmNmXHU2YzQyXHU2YzVlXHU2Yzk5XHU2YzgxXHU2Yzg4XHU2Yzg5XHU2Yzg1XHU2YzliXHU2YzZh'@; put 'XHU2YzdhXHU2YzkwXHU2YzcwXHU2YzhjXHU2YzY4XHU2Yzk2XHU2YzkyXHU2YzdkXHU2YzgzXHU2YzcyXHU2YzdlXHU2Yzc0XHU2Yzg2XHU2Yzc2XHU2YzhkXHU2Yzk0XHU2Yzk4XHU2YzgyXHU3MDc2XHU3MDdjXHU3MDdkXHU3MDc4XHU3MjYyXHU3MjYxXHU3MjYwXHU3MmM0XHU3MmMyXHU3'@; put 'Mzk2XHU3NTJjXHU3NTJiXHU3NTM3XHU3NTM4XHU3NjgyXHU3NmVmXHU3N2UzXHU3OWMxXHU3OWMwXHU3OWJmXHU3YTc2XHU3Y2ZiXHU3ZjU1XHU4MDk2XHU4MDkzXHU4MDlkXHU4MDk4XHU4MDliXHU4MDlhXHU4MGIyXHU4MjZmXHU4MjkyIl0sWyJhOGExIiwiXHU4MjhiXHU4MjhkXHU4OThi'@; put 'XHU4OWQyXHU4YTAwXHU4YzM3XHU4YzQ2XHU4YzU1XHU4YzlkXHU4ZDY0XHU4ZDcwXHU4ZGIzXHU4ZWFiXHU4ZWNhXHU4ZjliXHU4ZmIwXHU4ZmMyXHU4ZmM2XHU4ZmM1XHU4ZmM0XHU1ZGUxXHU5MDkxXHU5MGEyXHU5MGFhXHU5MGE2XHU5MGEzXHU5MTQ5XHU5MWM2XHU5MWNjXHU5NjMyXHU5'@; put 'NjJlXHU5NjMxXHU5NjJhXHU5NjJjXHU0ZTI2XHU0ZTU2XHU0ZTczXHU0ZThiXHU0ZTliXHU0ZTllXHU0ZWFiXHU0ZWFjXHU0ZjZmXHU0ZjlkXHU0ZjhkXHU0ZjczXHU0ZjdmXHU0ZjZjXHU0ZjliXHU0ZjhiXHU0Zjg2XHU0ZjgzXHU0ZjcwXHU0Zjc1XHU0Zjg4XHU0ZjY5XHU0ZjdiXHU0Zjk2'@; put 'XHU0ZjdlXHU0ZjhmXHU0ZjkxXHU0ZjdhXHU1MTU0XHU1MTUyXHU1MTU1XHU1MTY5XHU1MTc3XHU1MTc2XHU1MTc4XHU1MWJkXHU1MWZkXHU1MjNiXHU1MjM4XHU1MjM3XHU1MjNhXHU1MjMwXHU1MjJlXHU1MjM2XHU1MjQxXHU1MmJlXHU1MmJiXHU1MzUyXHU1MzU0XHU1MzUzXHU1MzUxXHU1'@; put 'MzY2XHU1Mzc3XHU1Mzc4XHU1Mzc5XHU1M2Q2XHU1M2Q0XHU1M2Q3XHU1NDczXHU1NDc1Il0sWyJhOTQwIiwiXHU1NDk2XHU1NDc4XHU1NDk1XHU1NDgwXHU1NDdiXHU1NDc3XHU1NDg0XHU1NDkyXHU1NDg2XHU1NDdjXHU1NDkwXHU1NDcxXHU1NDc2XHU1NDhjXHU1NDlhXHU1NDYyXHU1NDY4'@; put 'XHU1NDhiXHU1NDdkXHU1NDhlXHU1NmZhXHU1NzgzXHU1Nzc3XHU1NzZhXHU1NzY5XHU1NzYxXHU1NzY2XHU1NzY0XHU1NzdjXHU1OTFjXHU1OTQ5XHU1OTQ3XHU1OTQ4XHU1OTQ0XHU1OTU0XHU1OWJlXHU1OWJiXHU1OWQ0XHU1OWI5XHU1OWFlXHU1OWQxXHU1OWM2XHU1OWQwXHU1OWNkXHU1'@; put 'OWNiXHU1OWQzXHU1OWNhXHU1OWFmXHU1OWIzXHU1OWQyXHU1OWM1XHU1YjVmXHU1YjY0XHU1YjYzXHU1Yjk3XHU1YjlhXHU1Yjk4XHU1YjljXHU1Yjk5XHU1YjliXHU1YzFhXHU1YzQ4XHU1YzQ1Il0sWyJhOWExIiwiXHU1YzQ2XHU1Y2I3XHU1Y2ExXHU1Y2I4XHU1Y2E5XHU1Y2FiXHU1Y2Ix'@; put 'XHU1Y2IzXHU1ZTE4XHU1ZTFhXHU1ZTE2XHU1ZTE1XHU1ZTFiXHU1ZTExXHU1ZTc4XHU1ZTlhXHU1ZTk3XHU1ZTljXHU1ZTk1XHU1ZTk2XHU1ZWY2XHU1ZjI2XHU1ZjI3XHU1ZjI5XHU1ZjgwXHU1ZjgxXHU1ZjdmXHU1ZjdjXHU1ZmRkXHU1ZmUwXHU1ZmZkXHU1ZmY1XHU1ZmZmXHU2MDBmXHU2'@; put 'MDE0XHU2MDJmXHU2MDM1XHU2MDE2XHU2MDJhXHU2MDE1XHU2MDIxXHU2MDI3XHU2MDI5XHU2MDJiXHU2MDFiXHU2MjE2XHU2MjE1XHU2MjNmXHU2MjNlXHU2MjQwXHU2MjdmXHU2MmM5XHU2MmNjXHU2MmM0XHU2MmJmXHU2MmMyXHU2MmI5XHU2MmQyXHU2MmRiXHU2MmFiXHU2MmQzXHU2MmQ0'@; put 'XHU2MmNiXHU2MmM4XHU2MmE4XHU2MmJkXHU2MmJjXHU2MmQwXHU2MmQ5XHU2MmM3XHU2MmNkXHU2MmI1XHU2MmRhXHU2MmIxXHU2MmQ4XHU2MmQ2XHU2MmQ3XHU2MmM2XHU2MmFjXHU2MmNlXHU2NTNlXHU2NWE3XHU2NWJjXHU2NWZhXHU2NjE0XHU2NjEzXHU2NjBjXHU2NjA2XHU2NjAyXHU2'@; put 'NjBlXHU2NjAwXHU2NjBmXHU2NjE1XHU2NjBhIl0sWyJhYTQwIiwiXHU2NjA3XHU2NzBkXHU2NzBiXHU2NzZkXHU2NzhiXHU2Nzk1XHU2NzcxXHU2NzljXHU2NzczXHU2Nzc3XHU2Nzg3XHU2NzlkXHU2Nzk3XHU2NzZmXHU2NzcwXHU2NzdmXHU2Nzg5XHU2NzdlXHU2NzkwXHU2Nzc1XHU2Nzlh'@; put 'XHU2NzkzXHU2NzdjXHU2NzZhXHU2NzcyXHU2YjIzXHU2YjY2XHU2YjY3XHU2YjdmXHU2YzEzXHU2YzFiXHU2Y2UzXHU2Y2U4XHU2Y2YzXHU2Y2IxXHU2Y2NjXHU2Y2U1XHU2Y2IzXHU2Y2JkXHU2Y2JlXHU2Y2JjXHU2Y2UyXHU2Y2FiXHU2Y2Q1XHU2Y2QzXHU2Y2I4XHU2Y2M0XHU2Y2I5XHU2'@; put 'Y2MxXHU2Y2FlXHU2Y2Q3XHU2Y2M1XHU2Y2YxXHU2Y2JmXHU2Y2JiXHU2Y2UxXHU2Y2RiXHU2Y2NhXHU2Y2FjXHU2Y2VmXHU2Y2RjXHU2Y2Q2XHU2Y2UwIl0sWyJhYWExIiwiXHU3MDk1XHU3MDhlXHU3MDkyXHU3MDhhXHU3MDk5XHU3MjJjXHU3MjJkXHU3MjM4XHU3MjQ4XHU3MjY3XHU3MjY5'@; put 'XHU3MmMwXHU3MmNlXHU3MmQ5XHU3MmQ3XHU3MmQwXHU3M2E5XHU3M2E4XHU3MzlmXHU3M2FiXHU3M2E1XHU3NTNkXHU3NTlkXHU3NTk5XHU3NTlhXHU3Njg0XHU3NmMyXHU3NmYyXHU3NmY0XHU3N2U1XHU3N2ZkXHU3OTNlXHU3OTQwXHU3OTQxXHU3OWM5XHU3OWM4XHU3YTdhXHU3YTc5XHU3'@; put 'YWZhXHU3Y2ZlXHU3ZjU0XHU3ZjhjXHU3ZjhiXHU4MDA1XHU4MGJhXHU4MGE1XHU4MGEyXHU4MGIxXHU4MGExXHU4MGFiXHU4MGE5XHU4MGI0XHU4MGFhXHU4MGFmXHU4MWU1XHU4MWZlXHU4MjBkXHU4MmIzXHU4MjlkXHU4Mjk5XHU4MmFkXHU4MmJkXHU4MjlmXHU4MmI5XHU4MmIxXHU4MmFj'@; put 'XHU4MmE1XHU4MmFmXHU4MmI4XHU4MmEzXHU4MmIwXHU4MmJlXHU4MmI3XHU4NjRlXHU4NjcxXHU1MjFkXHU4ODY4XHU4ZWNiXHU4ZmNlXHU4ZmQ0XHU4ZmQxXHU5MGI1XHU5MGI4XHU5MGIxXHU5MGI2XHU5MWM3XHU5MWQxXHU5NTc3XHU5NTgwXHU5NjFjXHU5NjQwXHU5NjNmXHU5NjNiXHU5'@; put 'NjQ0Il0sWyJhYjQwIiwiXHU5NjQyXHU5NmI5XHU5NmU4XHU5NzUyXHU5NzVlXHU0ZTlmXHU0ZWFkXHU0ZWFlXHU0ZmUxXHU0ZmI1XHU0ZmFmXHU0ZmJmXHU0ZmUwXHU0ZmQxXHU0ZmNmXHU0ZmRkXHU0ZmMzXHU0ZmI2XHU0ZmQ4XHU0ZmRmXHU0ZmNhXHU0ZmQ3XHU0ZmFlXHU0ZmQwXHU0ZmM0'@; put 'XHU0ZmMyXHU0ZmRhXHU0ZmNlXHU0ZmRlXHU0ZmI3XHU1MTU3XHU1MTkyXHU1MTkxXHU1MWEwXHU1MjRlXHU1MjQzXHU1MjRhXHU1MjRkXHU1MjRjXHU1MjRiXHU1MjQ3XHU1MmM3XHU1MmM5XHU1MmMzXHU1MmMxXHU1MzBkXHU1MzU3XHU1MzdiXHU1MzlhXHU1M2RiXHU1NGFjXHU1NGMwXHU1'@; put 'NGE4XHU1NGNlXHU1NGM5XHU1NGI4XHU1NGE2XHU1NGIzXHU1NGM3XHU1NGMyXHU1NGJkXHU1NGFhXHU1NGMxIl0sWyJhYmExIiwiXHU1NGM0XHU1NGM4XHU1NGFmXHU1NGFiXHU1NGIxXHU1NGJiXHU1NGE5XHU1NGE3XHU1NGJmXHU1NmZmXHU1NzgyXHU1NzhiXHU1N2EwXHU1N2EzXHU1N2Ey'@; put 'XHU1N2NlXHU1N2FlXHU1NzkzXHU1OTU1XHU1OTUxXHU1OTRmXHU1OTRlXHU1OTUwXHU1OWRjXHU1OWQ4XHU1OWZmXHU1OWUzXHU1OWU4XHU1YTAzXHU1OWU1XHU1OWVhXHU1OWRhXHU1OWU2XHU1YTAxXHU1OWZiXHU1YjY5XHU1YmEzXHU1YmE2XHU1YmE0XHU1YmEyXHU1YmE1XHU1YzAxXHU1'@; put 'YzRlXHU1YzRmXHU1YzRkXHU1YzRiXHU1Y2Q5XHU1Y2QyXHU1ZGY3XHU1ZTFkXHU1ZTI1XHU1ZTFmXHU1ZTdkXHU1ZWEwXHU1ZWE2XHU1ZWZhXHU1ZjA4XHU1ZjJkXHU1ZjY1XHU1Zjg4XHU1Zjg1XHU1ZjhhXHU1ZjhiXHU1Zjg3XHU1ZjhjXHU1Zjg5XHU2MDEyXHU2MDFkXHU2MDIwXHU2MDI1'@; put 'XHU2MDBlXHU2MDI4XHU2MDRkXHU2MDcwXHU2MDY4XHU2MDYyXHU2MDQ2XHU2MDQzXHU2MDZjXHU2MDZiXHU2MDZhXHU2MDY0XHU2MjQxXHU2MmRjXHU2MzE2XHU2MzA5XHU2MmZjXHU2MmVkXHU2MzAxXHU2MmVlXHU2MmZkXHU2MzA3XHU2MmYxXHU2MmY3Il0sWyJhYzQwIiwiXHU2MmVmXHU2'@; put 'MmVjXHU2MmZlXHU2MmY0XHU2MzExXHU2MzAyXHU2NTNmXHU2NTQ1XHU2NWFiXHU2NWJkXHU2NWUyXHU2NjI1XHU2NjJkXHU2NjIwXHU2NjI3XHU2NjJmXHU2NjFmXHU2NjI4XHU2NjMxXHU2NjI0XHU2NmY3XHU2N2ZmXHU2N2QzXHU2N2YxXHU2N2Q0XHU2N2QwXHU2N2VjXHU2N2I2XHU2N2Fm'@; put 'XHU2N2Y1XHU2N2U5XHU2N2VmXHU2N2M0XHU2N2QxXHU2N2I0XHU2N2RhXHU2N2U1XHU2N2I4XHU2N2NmXHU2N2RlXHU2N2YzXHU2N2IwXHU2N2Q5XHU2N2UyXHU2N2RkXHU2N2QyXHU2YjZhXHU2YjgzXHU2Yjg2XHU2YmI1XHU2YmQyXHU2YmQ3XHU2YzFmXHU2Y2M5XHU2ZDBiXHU2ZDMyXHU2'@; put 'ZDJhXHU2ZDQxXHU2ZDI1XHU2ZDBjXHU2ZDMxXHU2ZDFlXHU2ZDE3Il0sWyJhY2ExIiwiXHU2ZDNiXHU2ZDNkXHU2ZDNlXHU2ZDM2XHU2ZDFiXHU2Y2Y1XHU2ZDM5XHU2ZDI3XHU2ZDM4XHU2ZDI5XHU2ZDJlXHU2ZDM1XHU2ZDBlXHU2ZDJiXHU3MGFiXHU3MGJhXHU3MGIzXHU3MGFjXHU3MGFm'@; put 'XHU3MGFkXHU3MGI4XHU3MGFlXHU3MGE0XHU3MjMwXHU3MjcyXHU3MjZmXHU3Mjc0XHU3MmU5XHU3MmUwXHU3MmUxXHU3M2I3XHU3M2NhXHU3M2JiXHU3M2IyXHU3M2NkXHU3M2MwXHU3M2IzXHU3NTFhXHU3NTJkXHU3NTRmXHU3NTRjXHU3NTRlXHU3NTRiXHU3NWFiXHU3NWE0XHU3NWE1XHU3'@; put 'NWEyXHU3NWEzXHU3Njc4XHU3Njg2XHU3Njg3XHU3Njg4XHU3NmM4XHU3NmM2XHU3NmMzXHU3NmM1XHU3NzAxXHU3NmY5XHU3NmY4XHU3NzA5XHU3NzBiXHU3NmZlXHU3NmZjXHU3NzA3XHU3N2RjXHU3ODAyXHU3ODE0XHU3ODBjXHU3ODBkXHU3OTQ2XHU3OTQ5XHU3OTQ4XHU3OTQ3XHU3OWI5'@; put 'XHU3OWJhXHU3OWQxXHU3OWQyXHU3OWNiXHU3YTdmXHU3YTgxXHU3YWZmXHU3YWZkXHU3YzdkXHU3ZDAyXHU3ZDA1XHU3ZDAwXHU3ZDA5XHU3ZDA3XHU3ZDA0XHU3ZDA2XHU3ZjM4XHU3ZjhlXHU3ZmJmXHU4MDA0Il0sWyJhZDQwIiwiXHU4MDEwXHU4MDBkXHU4MDExXHU4MDM2XHU4MGQ2XHU4'@; put 'MGU1XHU4MGRhXHU4MGMzXHU4MGM0XHU4MGNjXHU4MGUxXHU4MGRiXHU4MGNlXHU4MGRlXHU4MGU0XHU4MGRkXHU4MWY0XHU4MjIyXHU4MmU3XHU4MzAzXHU4MzA1XHU4MmUzXHU4MmRiXHU4MmU2XHU4MzA0XHU4MmU1XHU4MzAyXHU4MzA5XHU4MmQyXHU4MmQ3XHU4MmYxXHU4MzAxXHU4MmRj'@; put 'XHU4MmQ0XHU4MmQxXHU4MmRlXHU4MmQzXHU4MmRmXHU4MmVmXHU4MzA2XHU4NjUwXHU4Njc5XHU4NjdiXHU4NjdhXHU4ODRkXHU4ODZiXHU4OTgxXHU4OWQ0XHU4YTA4XHU4YTAyXHU4YTAzXHU4YzllXHU4Y2EwXHU4ZDc0XHU4ZDczXHU4ZGI0XHU4ZWNkXHU4ZWNjXHU4ZmYwXHU4ZmU2XHU4'@; put 'ZmUyXHU4ZmVhXHU4ZmU1Il0sWyJhZGExIiwiXHU4ZmVkXHU4ZmViXHU4ZmU0XHU4ZmU4XHU5MGNhXHU5MGNlXHU5MGMxXHU5MGMzXHU5MTRiXHU5MTRhXHU5MWNkXHU5NTgyXHU5NjUwXHU5NjRiXHU5NjRjXHU5NjRkXHU5NzYyXHU5NzY5XHU5N2NiXHU5N2VkXHU5N2YzXHU5ODAxXHU5OGE4'@; put 'XHU5OGRiXHU5OGRmXHU5OTk2XHU5OTk5XHU0ZTU4XHU0ZWIzXHU1MDBjXHU1MDBkXHU1MDIzXHU0ZmVmXHU1MDI2XHU1MDI1XHU0ZmY4XHU1MDI5XHU1MDE2XHU1MDA2XHU1MDNjXHU1MDFmXHU1MDFhXHU1MDEyXHU1MDExXHU0ZmZhXHU1MDAwXHU1MDE0XHU1MDI4XHU0ZmYxXHU1MDIxXHU1'@; put 'MDBiXHU1MDE5XHU1MDE4XHU0ZmYzXHU0ZmVlXHU1MDJkXHU1MDJhXHU0ZmZlXHU1MDJiXHU1MDA5XHU1MTdjXHU1MWE0XHU1MWE1XHU1MWEyXHU1MWNkXHU1MWNjXHU1MWM2XHU1MWNiXHU1MjU2XHU1MjVjXHU1MjU0XHU1MjViXHU1MjVkXHU1MzJhXHU1MzdmXHU1MzlmXHU1MzlkXHU1M2Rm'@; put 'XHU1NGU4XHU1NTEwXHU1NTAxXHU1NTM3XHU1NGZjXHU1NGU1XHU1NGYyXHU1NTA2XHU1NGZhXHU1NTE0XHU1NGU5XHU1NGVkXHU1NGUxXHU1NTA5XHU1NGVlXHU1NGVhIl0sWyJhZTQwIiwiXHU1NGU2XHU1NTI3XHU1NTA3XHU1NGZkXHU1NTBmXHU1NzAzXHU1NzA0XHU1N2MyXHU1N2Q0XHU1'@; put 'N2NiXHU1N2MzXHU1ODA5XHU1OTBmXHU1OTU3XHU1OTU4XHU1OTVhXHU1YTExXHU1YTE4XHU1YTFjXHU1YTFmXHU1YTFiXHU1YTEzXHU1OWVjXHU1YTIwXHU1YTIzXHU1YTI5XHU1YTI1XHU1YTBjXHU1YTA5XHU1YjZiXHU1YzU4XHU1YmIwXHU1YmIzXHU1YmI2XHU1YmI0XHU1YmFlXHU1YmI1'@; put 'XHU1YmI5XHU1YmI4XHU1YzA0XHU1YzUxXHU1YzU1XHU1YzUwXHU1Y2VkXHU1Y2ZkXHU1Y2ZiXHU1Y2VhXHU1Y2U4XHU1Y2YwXHU1Y2Y2XHU1ZDAxXHU1Y2Y0XHU1ZGVlXHU1ZTJkXHU1ZTJiXHU1ZWFiXHU1ZWFkXHU1ZWE3XHU1ZjMxXHU1ZjkyXHU1ZjkxXHU1ZjkwXHU2MDU5Il0sWyJhZWEx'@; put 'IiwiXHU2MDYzXHU2MDY1XHU2MDUwXHU2MDU1XHU2MDZkXHU2MDY5XHU2MDZmXHU2MDg0XHU2MDlmXHU2MDlhXHU2MDhkXHU2MDk0XHU2MDhjXHU2MDg1XHU2MDk2XHU2MjQ3XHU2MmYzXHU2MzA4XHU2MmZmXHU2MzRlXHU2MzNlXHU2MzJmXHU2MzU1XHU2MzQyXHU2MzQ2XHU2MzRmXHU2MzQ5'@; put 'XHU2MzNhXHU2MzUwXHU2MzNkXHU2MzJhXHU2MzJiXHU2MzI4XHU2MzRkXHU2MzRjXHU2NTQ4XHU2NTQ5XHU2NTk5XHU2NWMxXHU2NWM1XHU2NjQyXHU2NjQ5XHU2NjRmXHU2NjQzXHU2NjUyXHU2NjRjXHU2NjQ1XHU2NjQxXHU2NmY4XHU2NzE0XHU2NzE1XHU2NzE3XHU2ODIxXHU2ODM4XHU2'@; put 'ODQ4XHU2ODQ2XHU2ODUzXHU2ODM5XHU2ODQyXHU2ODU0XHU2ODI5XHU2OGIzXHU2ODE3XHU2ODRjXHU2ODUxXHU2ODNkXHU2N2Y0XHU2ODUwXHU2ODQwXHU2ODNjXHU2ODQzXHU2ODJhXHU2ODQ1XHU2ODEzXHU2ODE4XHU2ODQxXHU2YjhhXHU2Yjg5XHU2YmI3XHU2YzIzXHU2YzI3XHU2YzI4'@; put 'XHU2YzI2XHU2YzI0XHU2Y2YwXHU2ZDZhXHU2ZDk1XHU2ZDg4XHU2ZDg3XHU2ZDY2XHU2ZDc4XHU2ZDc3XHU2ZDU5XHU2ZDkzIl0sWyJhZjQwIiwiXHU2ZDZjXHU2ZDg5XHU2ZDZlXHU2ZDVhXHU2ZDc0XHU2ZDY5XHU2ZDhjXHU2ZDhhXHU2ZDc5XHU2ZDg1XHU2ZDY1XHU2ZDk0XHU3MGNhXHU3'@; put 'MGQ4XHU3MGU0XHU3MGQ5XHU3MGM4XHU3MGNmXHU3MjM5XHU3Mjc5XHU3MmZjXHU3MmY5XHU3MmZkXHU3MmY4XHU3MmY3XHU3Mzg2XHU3M2VkXHU3NDA5XHU3M2VlXHU3M2UwXHU3M2VhXHU3M2RlXHU3NTU0XHU3NTVkXHU3NTVjXHU3NTVhXHU3NTU5XHU3NWJlXHU3NWM1XHU3NWM3XHU3NWIy'@; put 'XHU3NWIzXHU3NWJkXHU3NWJjXHU3NWI5XHU3NWMyXHU3NWI4XHU3NjhiXHU3NmIwXHU3NmNhXHU3NmNkXHU3NmNlXHU3NzI5XHU3NzFmXHU3NzIwXHU3NzI4XHU3N2U5XHU3ODMwXHU3ODI3XHU3ODM4XHU3ODFkXHU3ODM0XHU3ODM3Il0sWyJhZmExIiwiXHU3ODI1XHU3ODJkXHU3ODIwXHU3'@; put 'ODFmXHU3ODMyXHU3OTU1XHU3OTUwXHU3OTYwXHU3OTVmXHU3OTU2XHU3OTVlXHU3OTVkXHU3OTU3XHU3OTVhXHU3OWU0XHU3OWUzXHU3OWU3XHU3OWRmXHU3OWU2XHU3OWU5XHU3OWQ4XHU3YTg0XHU3YTg4XHU3YWQ5XHU3YjA2XHU3YjExXHU3Yzg5XHU3ZDIxXHU3ZDE3XHU3ZDBiXHU3ZDBh'@; put 'XHU3ZDIwXHU3ZDIyXHU3ZDE0XHU3ZDEwXHU3ZDE1XHU3ZDFhXHU3ZDFjXHU3ZDBkXHU3ZDE5XHU3ZDFiXHU3ZjNhXHU3ZjVmXHU3Zjk0XHU3ZmM1XHU3ZmMxXHU4MDA2XHU4MDE4XHU4MDE1XHU4MDE5XHU4MDE3XHU4MDNkXHU4MDNmXHU4MGYxXHU4MTAyXHU4MGYwXHU4MTA1XHU4MGVkXHU4'@; put 'MGY0XHU4MTA2XHU4MGY4XHU4MGYzXHU4MTA4XHU4MGZkXHU4MTBhXHU4MGZjXHU4MGVmXHU4MWVkXHU4MWVjXHU4MjAwXHU4MjEwXHU4MjJhXHU4MjJiXHU4MjI4XHU4MjJjXHU4MmJiXHU4MzJiXHU4MzUyXHU4MzU0XHU4MzRhXHU4MzM4XHU4MzUwXHU4MzQ5XHU4MzM1XHU4MzM0XHU4MzRm'@; put 'XHU4MzMyXHU4MzM5XHU4MzM2XHU4MzE3XHU4MzQwXHU4MzMxXHU4MzI4XHU4MzQzIl0sWyJiMDQwIiwiXHU4NjU0XHU4NjhhXHU4NmFhXHU4NjkzXHU4NmE0XHU4NmE5XHU4NjhjXHU4NmEzXHU4NjljXHU4ODcwXHU4ODc3XHU4ODgxXHU4ODgyXHU4ODdkXHU4ODc5XHU4YTE4XHU4YTEwXHU4'@; put 'YTBlXHU4YTBjXHU4YTE1XHU4YTBhXHU4YTE3XHU4YTEzXHU4YTE2XHU4YTBmXHU4YTExXHU4YzQ4XHU4YzdhXHU4Yzc5XHU4Y2ExXHU4Y2EyXHU4ZDc3XHU4ZWFjXHU4ZWQyXHU4ZWQ0XHU4ZWNmXHU4ZmIxXHU5MDAxXHU5MDA2XHU4ZmY3XHU5MDAwXHU4ZmZhXHU4ZmY0XHU5MDAzXHU4ZmZk'@; put 'XHU5MDA1XHU4ZmY4XHU5MDk1XHU5MGUxXHU5MGRkXHU5MGUyXHU5MTUyXHU5MTRkXHU5MTRjXHU5MWQ4XHU5MWRkXHU5MWQ3XHU5MWRjXHU5MWQ5XHU5NTgzXHU5NjYyXHU5NjYzXHU5NjYxIl0sWyJiMGExIiwiXHU5NjViXHU5NjVkXHU5NjY0XHU5NjU4XHU5NjVlXHU5NmJiXHU5OGUyXHU5'@; put 'OWFjXHU5YWE4XHU5YWQ4XHU5YjI1XHU5YjMyXHU5YjNjXHU0ZTdlXHU1MDdhXHU1MDdkXHU1MDVjXHU1MDQ3XHU1MDQzXHU1MDRjXHU1MDVhXHU1MDQ5XHU1MDY1XHU1MDc2XHU1MDRlXHU1MDU1XHU1MDc1XHU1MDc0XHU1MDc3XHU1MDRmXHU1MDBmXHU1MDZmXHU1MDZkXHU1MTVjXHU1MTk1'@; put 'XHU1MWYwXHU1MjZhXHU1MjZmXHU1MmQyXHU1MmQ5XHU1MmQ4XHU1MmQ1XHU1MzEwXHU1MzBmXHU1MzE5XHU1MzNmXHU1MzQwXHU1MzNlXHU1M2MzXHU2NmZjXHU1NTQ2XHU1NTZhXHU1NTY2XHU1NTQ0XHU1NTVlXHU1NTYxXHU1NTQzXHU1NTRhXHU1NTMxXHU1NTU2XHU1NTRmXHU1NTU1XHU1'@; put 'NTJmXHU1NTY0XHU1NTM4XHU1NTJlXHU1NTVjXHU1NTJjXHU1NTYzXHU1NTMzXHU1NTQxXHU1NTU3XHU1NzA4XHU1NzBiXHU1NzA5XHU1N2RmXHU1ODA1XHU1ODBhXHU1ODA2XHU1N2UwXHU1N2U0XHU1N2ZhXHU1ODAyXHU1ODM1XHU1N2Y3XHU1N2Y5XHU1OTIwXHU1OTYyXHU1YTM2XHU1YTQx'@; put 'XHU1YTQ5XHU1YTY2XHU1YTZhXHU1YTQwIl0sWyJiMTQwIiwiXHU1YTNjXHU1YTYyXHU1YTVhXHU1YTQ2XHU1YTRhXHU1YjcwXHU1YmM3XHU1YmM1XHU1YmM0XHU1YmMyXHU1YmJmXHU1YmM2XHU1YzA5XHU1YzA4XHU1YzA3XHU1YzYwXHU1YzVjXHU1YzVkXHU1ZDA3XHU1ZDA2XHU1ZDBlXHU1'@; put 'ZDFiXHU1ZDE2XHU1ZDIyXHU1ZDExXHU1ZDI5XHU1ZDE0XHU1ZDE5XHU1ZDI0XHU1ZDI3XHU1ZDE3XHU1ZGUyXHU1ZTM4XHU1ZTM2XHU1ZTMzXHU1ZTM3XHU1ZWI3XHU1ZWI4XHU1ZWI2XHU1ZWI1XHU1ZWJlXHU1ZjM1XHU1ZjM3XHU1ZjU3XHU1ZjZjXHU1ZjY5XHU1ZjZiXHU1Zjk3XHU1Zjk5'@; put 'XHU1ZjllXHU1Zjk4XHU1ZmExXHU1ZmEwXHU1ZjljXHU2MDdmXHU2MGEzXHU2MDg5XHU2MGEwXHU2MGE4XHU2MGNiXHU2MGI0XHU2MGU2XHU2MGJkIl0sWyJiMWExIiwiXHU2MGM1XHU2MGJiXHU2MGI1XHU2MGRjXHU2MGJjXHU2MGQ4XHU2MGQ1XHU2MGM2XHU2MGRmXHU2MGI4XHU2MGRhXHU2'@; put 'MGM3XHU2MjFhXHU2MjFiXHU2MjQ4XHU2M2EwXHU2M2E3XHU2MzcyXHU2Mzk2XHU2M2EyXHU2M2E1XHU2Mzc3XHU2MzY3XHU2Mzk4XHU2M2FhXHU2MzcxXHU2M2E5XHU2Mzg5XHU2MzgzXHU2MzliXHU2MzZiXHU2M2E4XHU2Mzg0XHU2Mzg4XHU2Mzk5XHU2M2ExXHU2M2FjXHU2MzkyXHU2Mzhm'@; put 'XHU2MzgwXHU2MzdiXHU2MzY5XHU2MzY4XHU2MzdhXHU2NTVkXHU2NTU2XHU2NTUxXHU2NTU5XHU2NTU3XHU1NTVmXHU2NTRmXHU2NTU4XHU2NTU1XHU2NTU0XHU2NTljXHU2NTliXHU2NWFjXHU2NWNmXHU2NWNiXHU2NWNjXHU2NWNlXHU2NjVkXHU2NjVhXHU2NjY0XHU2NjY4XHU2NjY2XHU2'@; put 'NjVlXHU2NmY5XHU1MmQ3XHU2NzFiXHU2ODgxXHU2OGFmXHU2OGEyXHU2ODkzXHU2OGI1XHU2ODdmXHU2ODc2XHU2OGIxXHU2OGE3XHU2ODk3XHU2OGIwXHU2ODgzXHU2OGM0XHU2OGFkXHU2ODg2XHU2ODg1XHU2ODk0XHU2ODlkXHU2OGE4XHU2ODlmXHU2OGExXHU2ODgyXHU2YjMyXHU2YmJh'@; put 'Il0sWyJiMjQwIiwiXHU2YmViXHU2YmVjXHU2YzJiXHU2ZDhlXHU2ZGJjXHU2ZGYzXHU2ZGQ5XHU2ZGIyXHU2ZGUxXHU2ZGNjXHU2ZGU0XHU2ZGZiXHU2ZGZhXHU2ZTA1XHU2ZGM3XHU2ZGNiXHU2ZGFmXHU2ZGQxXHU2ZGFlXHU2ZGRlXHU2ZGY5XHU2ZGI4XHU2ZGY3XHU2ZGY1XHU2ZGM1XHU2'@; put 'ZGQyXHU2ZTFhXHU2ZGI1XHU2ZGRhXHU2ZGViXHU2ZGQ4XHU2ZGVhXHU2ZGYxXHU2ZGVlXHU2ZGU4XHU2ZGM2XHU2ZGM0XHU2ZGFhXHU2ZGVjXHU2ZGJmXHU2ZGU2XHU3MGY5XHU3MTA5XHU3MTBhXHU3MGZkXHU3MGVmXHU3MjNkXHU3MjdkXHU3MjgxXHU3MzFjXHU3MzFiXHU3MzE2XHU3MzEz'@; put 'XHU3MzE5XHU3Mzg3XHU3NDA1XHU3NDBhXHU3NDAzXHU3NDA2XHU3M2ZlXHU3NDBkXHU3NGUwXHU3NGY2Il0sWyJiMmExIiwiXHU3NGY3XHU3NTFjXHU3NTIyXHU3NTY1XHU3NTY2XHU3NTYyXHU3NTcwXHU3NThmXHU3NWQ0XHU3NWQ1XHU3NWI1XHU3NWNhXHU3NWNkXHU3NjhlXHU3NmQ0XHU3'@; put 'NmQyXHU3NmRiXHU3NzM3XHU3NzNlXHU3NzNjXHU3NzM2XHU3NzM4XHU3NzNhXHU3ODZiXHU3ODQzXHU3ODRlXHU3OTY1XHU3OTY4XHU3OTZkXHU3OWZiXHU3YTkyXHU3YTk1XHU3YjIwXHU3YjI4XHU3YjFiXHU3YjJjXHU3YjI2XHU3YjE5XHU3YjFlXHU3YjJlXHU3YzkyXHU3Yzk3XHU3Yzk1'@; put 'XHU3ZDQ2XHU3ZDQzXHU3ZDcxXHU3ZDJlXHU3ZDM5XHU3ZDNjXHU3ZDQwXHU3ZDMwXHU3ZDMzXHU3ZDQ0XHU3ZDJmXHU3ZDQyXHU3ZDMyXHU3ZDMxXHU3ZjNkXHU3ZjllXHU3ZjlhXHU3ZmNjXHU3ZmNlXHU3ZmQyXHU4MDFjXHU4MDRhXHU4MDQ2XHU4MTJmXHU4MTE2XHU4MTIzXHU4MTJiXHU4'@; put 'MTI5XHU4MTMwXHU4MTI0XHU4MjAyXHU4MjM1XHU4MjM3XHU4MjM2XHU4MjM5XHU4MzhlXHU4MzllXHU4Mzk4XHU4Mzc4XHU4M2EyXHU4Mzk2XHU4M2JkXHU4M2FiXHU4MzkyXHU4MzhhXHU4MzkzXHU4Mzg5XHU4M2EwXHU4Mzc3XHU4MzdiXHU4MzdjIl0sWyJiMzQwIiwiXHU4Mzg2XHU4M2E3'@; put 'XHU4NjU1XHU1ZjZhXHU4NmM3XHU4NmMwXHU4NmI2XHU4NmM0XHU4NmI1XHU4NmM2XHU4NmNiXHU4NmIxXHU4NmFmXHU4NmM5XHU4ODUzXHU4ODllXHU4ODg4XHU4OGFiXHU4ODkyXHU4ODk2XHU4ODhkXHU4ODhiXHU4OTkzXHU4OThmXHU4YTJhXHU4YTFkXHU4YTIzXHU4YTI1XHU4YTMxXHU4'@; put 'YTJkXHU4YTFmXHU4YTFiXHU4YTIyXHU4YzQ5XHU4YzVhXHU4Y2E5XHU4Y2FjXHU4Y2FiXHU4Y2E4XHU4Y2FhXHU4Y2E3XHU4ZDY3XHU4ZDY2XHU4ZGJlXHU4ZGJhXHU4ZWRiXHU4ZWRmXHU5MDE5XHU5MDBkXHU5MDFhXHU5MDE3XHU5MDIzXHU5MDFmXHU5MDFkXHU5MDEwXHU5MDE1XHU5MDFl'@; put 'XHU5MDIwXHU5MDBmXHU5MDIyXHU5MDE2XHU5MDFiXHU5MDE0Il0sWyJiM2ExIiwiXHU5MGU4XHU5MGVkXHU5MGZkXHU5MTU3XHU5MWNlXHU5MWY1XHU5MWU2XHU5MWUzXHU5MWU3XHU5MWVkXHU5MWU5XHU5NTg5XHU5NjZhXHU5Njc1XHU5NjczXHU5Njc4XHU5NjcwXHU5Njc0XHU5Njc2XHU5'@; put 'Njc3XHU5NjZjXHU5NmMwXHU5NmVhXHU5NmU5XHU3YWUwXHU3YWRmXHU5ODAyXHU5ODAzXHU5YjVhXHU5Y2U1XHU5ZTc1XHU5ZTdmXHU5ZWE1XHU5ZWJiXHU1MGEyXHU1MDhkXHU1MDg1XHU1MDk5XHU1MDkxXHU1MDgwXHU1MDk2XHU1MDk4XHU1MDlhXHU2NzAwXHU1MWYxXHU1MjcyXHU1Mjc0'@; put 'XHU1Mjc1XHU1MjY5XHU1MmRlXHU1MmRkXHU1MmRiXHU1MzVhXHU1M2E1XHU1NTdiXHU1NTgwXHU1NWE3XHU1NTdjXHU1NThhXHU1NTlkXHU1NTk4XHU1NTgyXHU1NTljXHU1NWFhXHU1NTk0XHU1NTg3XHU1NThiXHU1NTgzXHU1NWIzXHU1NWFlXHU1NTlmXHU1NTNlXHU1NWIyXHU1NTlhXHU1'@; put 'NWJiXHU1NWFjXHU1NWIxXHU1NTdlXHU1NTg5XHU1NWFiXHU1NTk5XHU1NzBkXHU1ODJmXHU1ODJhXHU1ODM0XHU1ODI0XHU1ODMwXHU1ODMxXHU1ODIxXHU1ODFkXHU1ODIwXHU1OGY5XHU1OGZhXHU1OTYwIl0sWyJiNDQwIiwiXHU1YTc3XHU1YTlhXHU1YTdmXHU1YTkyXHU1YTliXHU1YWE3'@; put 'XHU1YjczXHU1YjcxXHU1YmQyXHU1YmNjXHU1YmQzXHU1YmQwXHU1YzBhXHU1YzBiXHU1YzMxXHU1ZDRjXHU1ZDUwXHU1ZDM0XHU1ZDQ3XHU1ZGZkXHU1ZTQ1XHU1ZTNkXHU1ZTQwXHU1ZTQzXHU1ZTdlXHU1ZWNhXHU1ZWMxXHU1ZWMyXHU1ZWM0XHU1ZjNjXHU1ZjZkXHU1ZmE5XHU1ZmFhXHU1'@; put 'ZmE4XHU2MGQxXHU2MGUxXHU2MGIyXHU2MGI2XHU2MGUwXHU2MTFjXHU2MTIzXHU2MGZhXHU2MTE1XHU2MGYwXHU2MGZiXHU2MGY0XHU2MTY4XHU2MGYxXHU2MTBlXHU2MGY2XHU2MTA5XHU2MTAwXHU2MTEyXHU2MjFmXHU2MjQ5XHU2M2EzXHU2MzhjXHU2M2NmXHU2M2MwXHU2M2U5XHU2M2M5'@; put 'XHU2M2M2XHU2M2NkIl0sWyJiNGExIiwiXHU2M2QyXHU2M2UzXHU2M2QwXHU2M2UxXHU2M2Q2XHU2M2VkXHU2M2VlXHU2Mzc2XHU2M2Y0XHU2M2VhXHU2M2RiXHU2NDUyXHU2M2RhXHU2M2Y5XHU2NTVlXHU2NTY2XHU2NTYyXHU2NTYzXHU2NTkxXHU2NTkwXHU2NWFmXHU2NjZlXHU2NjcwXHU2'@; put 'Njc0XHU2Njc2XHU2NjZmXHU2NjkxXHU2NjdhXHU2NjdlXHU2Njc3XHU2NmZlXHU2NmZmXHU2NzFmXHU2NzFkXHU2OGZhXHU2OGQ1XHU2OGUwXHU2OGQ4XHU2OGQ3XHU2OTA1XHU2OGRmXHU2OGY1XHU2OGVlXHU2OGU3XHU2OGY5XHU2OGQyXHU2OGYyXHU2OGUzXHU2OGNiXHU2OGNkXHU2OTBk'@; put 'XHU2OTEyXHU2OTBlXHU2OGM5XHU2OGRhXHU2OTZlXHU2OGZiXHU2YjNlXHU2YjNhXHU2YjNkXHU2Yjk4XHU2Yjk2XHU2YmJjXHU2YmVmXHU2YzJlXHU2YzJmXHU2YzJjXHU2ZTJmXHU2ZTM4XHU2ZTU0XHU2ZTIxXHU2ZTMyXHU2ZTY3XHU2ZTRhXHU2ZTIwXHU2ZTI1XHU2ZTIzXHU2ZTFiXHU2'@; put 'ZTViXHU2ZTU4XHU2ZTI0XHU2ZTU2XHU2ZTZlXHU2ZTJkXHU2ZTI2XHU2ZTZmXHU2ZTM0XHU2ZTRkXHU2ZTNhXHU2ZTJjXHU2ZTQzXHU2ZTFkXHU2ZTNlXHU2ZWNiIl0sWyJiNTQwIiwiXHU2ZTg5XHU2ZTE5XHU2ZTRlXHU2ZTYzXHU2ZTQ0XHU2ZTcyXHU2ZTY5XHU2ZTVmXHU3MTE5XHU3MTFh'@; put 'XHU3MTI2XHU3MTMwXHU3MTIxXHU3MTM2XHU3MTZlXHU3MTFjXHU3MjRjXHU3Mjg0XHU3MjgwXHU3MzM2XHU3MzI1XHU3MzM0XHU3MzI5XHU3NDNhXHU3NDJhXHU3NDMzXHU3NDIyXHU3NDI1XHU3NDM1XHU3NDM2XHU3NDM0XHU3NDJmXHU3NDFiXHU3NDI2XHU3NDI4XHU3NTI1XHU3NTI2XHU3'@; put 'NTZiXHU3NTZhXHU3NWUyXHU3NWRiXHU3NWUzXHU3NWQ5XHU3NWQ4XHU3NWRlXHU3NWUwXHU3NjdiXHU3NjdjXHU3Njk2XHU3NjkzXHU3NmI0XHU3NmRjXHU3NzRmXHU3N2VkXHU3ODVkXHU3ODZjXHU3ODZmXHU3YTBkXHU3YTA4XHU3YTBiXHU3YTA1XHU3YTAwXHU3YTk4Il0sWyJiNWExIiwi'@; put 'XHU3YTk3XHU3YTk2XHU3YWU1XHU3YWUzXHU3YjQ5XHU3YjU2XHU3YjQ2XHU3YjUwXHU3YjUyXHU3YjU0XHU3YjRkXHU3YjRiXHU3YjRmXHU3YjUxXHU3YzlmXHU3Y2E1XHU3ZDVlXHU3ZDUwXHU3ZDY4XHU3ZDU1XHU3ZDJiXHU3ZDZlXHU3ZDcyXHU3ZDYxXHU3ZDY2XHU3ZDYyXHU3ZDcwXHU3'@; put 'ZDczXHU1NTg0XHU3ZmQ0XHU3ZmQ1XHU4MDBiXHU4MDUyXHU4MDg1XHU4MTU1XHU4MTU0XHU4MTRiXHU4MTUxXHU4MTRlXHU4MTM5XHU4MTQ2XHU4MTNlXHU4MTRjXHU4MTUzXHU4MTc0XHU4MjEyXHU4MjFjXHU4M2U5XHU4NDAzXHU4M2Y4XHU4NDBkXHU4M2UwXHU4M2M1XHU4NDBiXHU4M2Mx'@; put 'XHU4M2VmXHU4M2YxXHU4M2Y0XHU4NDU3XHU4NDBhXHU4M2YwXHU4NDBjXHU4M2NjXHU4M2ZkXHU4M2YyXHU4M2NhXHU4NDM4XHU4NDBlXHU4NDA0XHU4M2RjXHU4NDA3XHU4M2Q0XHU4M2RmXHU4NjViXHU4NmRmXHU4NmQ5XHU4NmVkXHU4NmQ0XHU4NmRiXHU4NmU0XHU4NmQwXHU4NmRlXHU4'@; put 'ODU3XHU4OGMxXHU4OGMyXHU4OGIxXHU4OTgzXHU4OTk2XHU4YTNiXHU4YTYwXHU4YTU1XHU4YTVlXHU4YTNjXHU4YTQxIl0sWyJiNjQwIiwiXHU4YTU0XHU4YTViXHU4YTUwXHU4YTQ2XHU4YTM0XHU4YTNhXHU4YTM2XHU4YTU2XHU4YzYxXHU4YzgyXHU4Y2FmXHU4Y2JjXHU4Y2IzXHU4Y2Jk'@; put 'XHU4Y2MxXHU4Y2JiXHU4Y2MwXHU4Y2I0XHU4Y2I3XHU4Y2I2XHU4Y2JmXHU4Y2I4XHU4ZDhhXHU4ZDg1XHU4ZDgxXHU4ZGNlXHU4ZGRkXHU4ZGNiXHU4ZGRhXHU4ZGQxXHU4ZGNjXHU4ZGRiXHU4ZGM2XHU4ZWZiXHU4ZWY4XHU4ZWZjXHU4ZjljXHU5MDJlXHU5MDM1XHU5MDMxXHU5MDM4XHU5'@; put 'MDMyXHU5MDM2XHU5MTAyXHU5MGY1XHU5MTA5XHU5MGZlXHU5MTYzXHU5MTY1XHU5MWNmXHU5MjE0XHU5MjE1XHU5MjIzXHU5MjA5XHU5MjFlXHU5MjBkXHU5MjEwXHU5MjA3XHU5MjExXHU5NTk0XHU5NThmXHU5NThiXHU5NTkxIl0sWyJiNmExIiwiXHU5NTkzXHU5NTkyXHU5NThlXHU5Njhh'@; put 'XHU5NjhlXHU5NjhiXHU5NjdkXHU5Njg1XHU5Njg2XHU5NjhkXHU5NjcyXHU5Njg0XHU5NmMxXHU5NmM1XHU5NmM0XHU5NmM2XHU5NmM3XHU5NmVmXHU5NmYyXHU5N2NjXHU5ODA1XHU5ODA2XHU5ODA4XHU5OGU3XHU5OGVhXHU5OGVmXHU5OGU5XHU5OGYyXHU5OGVkXHU5OWFlXHU5OWFkXHU5'@; put 'ZWMzXHU5ZWNkXHU5ZWQxXHU0ZTgyXHU1MGFkXHU1MGI1XHU1MGIyXHU1MGIzXHU1MGM1XHU1MGJlXHU1MGFjXHU1MGI3XHU1MGJiXHU1MGFmXHU1MGM3XHU1MjdmXHU1Mjc3XHU1MjdkXHU1MmRmXHU1MmU2XHU1MmU0XHU1MmUyXHU1MmUzXHU1MzJmXHU1NWRmXHU1NWU4XHU1NWQzXHU1NWU2'@; put 'XHU1NWNlXHU1NWRjXHU1NWM3XHU1NWQxXHU1NWUzXHU1NWU0XHU1NWVmXHU1NWRhXHU1NWUxXHU1NWM1XHU1NWM2XHU1NWU1XHU1NWM5XHU1NzEyXHU1NzEzXHU1ODVlXHU1ODUxXHU1ODU4XHU1ODU3XHU1ODVhXHU1ODU0XHU1ODZiXHU1ODRjXHU1ODZkXHU1ODRhXHU1ODYyXHU1ODUyXHU1'@; put 'ODRiXHU1OTY3XHU1YWMxXHU1YWM5XHU1YWNjXHU1YWJlXHU1YWJkXHU1YWJjIl0sWyJiNzQwIiwiXHU1YWIzXHU1YWMyXHU1YWIyXHU1ZDY5XHU1ZDZmXHU1ZTRjXHU1ZTc5XHU1ZWM5XHU1ZWM4XHU1ZjEyXHU1ZjU5XHU1ZmFjXHU1ZmFlXHU2MTFhXHU2MTBmXHU2MTQ4XHU2MTFmXHU2MGYz'@; put 'XHU2MTFiXHU2MGY5XHU2MTAxXHU2MTA4XHU2MTRlXHU2MTRjXHU2MTQ0XHU2MTRkXHU2MTNlXHU2MTM0XHU2MTI3XHU2MTBkXHU2MTA2XHU2MTM3XHU2MjIxXHU2MjIyXHU2NDEzXHU2NDNlXHU2NDFlXHU2NDJhXHU2NDJkXHU2NDNkXHU2NDJjXHU2NDBmXHU2NDFjXHU2NDE0XHU2NDBkXHU2'@; put 'NDM2XHU2NDE2XHU2NDE3XHU2NDA2XHU2NTZjXHU2NTlmXHU2NWIwXHU2Njk3XHU2Njg5XHU2Njg3XHU2Njg4XHU2Njk2XHU2Njg0XHU2Njk4XHU2NjhkXHU2NzAzXHU2OTk0XHU2OTZkIl0sWyJiN2ExIiwiXHU2OTVhXHU2OTc3XHU2OTYwXHU2OTU0XHU2OTc1XHU2OTMwXHU2OTgyXHU2OTRh'@; put 'XHU2OTY4XHU2OTZiXHU2OTVlXHU2OTUzXHU2OTc5XHU2OTg2XHU2OTVkXHU2OTYzXHU2OTViXHU2YjQ3XHU2YjcyXHU2YmMwXHU2YmJmXHU2YmQzXHU2YmZkXHU2ZWEyXHU2ZWFmXHU2ZWQzXHU2ZWI2XHU2ZWMyXHU2ZTkwXHU2ZTlkXHU2ZWM3XHU2ZWM1XHU2ZWE1XHU2ZTk4XHU2ZWJjXHU2'@; put 'ZWJhXHU2ZWFiXHU2ZWQxXHU2ZTk2XHU2ZTljXHU2ZWM0XHU2ZWQ0XHU2ZWFhXHU2ZWE3XHU2ZWI0XHU3MTRlXHU3MTU5XHU3MTY5XHU3MTY0XHU3MTQ5XHU3MTY3XHU3MTVjXHU3MTZjXHU3MTY2XHU3MTRjXHU3MTY1XHU3MTVlXHU3MTQ2XHU3MTY4XHU3MTU2XHU3MjNhXHU3MjUyXHU3MzM3'@; put 'XHU3MzQ1XHU3MzNmXHU3MzNlXHU3NDZmXHU3NDVhXHU3NDU1XHU3NDVmXHU3NDVlXHU3NDQxXHU3NDNmXHU3NDU5XHU3NDViXHU3NDVjXHU3NTc2XHU3NTc4XHU3NjAwXHU3NWYwXHU3NjAxXHU3NWYyXHU3NWYxXHU3NWZhXHU3NWZmXHU3NWY0XHU3NWYzXHU3NmRlXHU3NmRmXHU3NzViXHU3'@; put 'NzZiXHU3NzY2XHU3NzVlXHU3NzYzIl0sWyJiODQwIiwiXHU3Nzc5XHU3NzZhXHU3NzZjXHU3NzVjXHU3NzY1XHU3NzY4XHU3NzYyXHU3N2VlXHU3ODhlXHU3OGIwXHU3ODk3XHU3ODk4XHU3ODhjXHU3ODg5XHU3ODdjXHU3ODkxXHU3ODkzXHU3ODdmXHU3OTdhXHU3OTdmXHU3OTgxXHU4NDJj'@; put 'XHU3OWJkXHU3YTFjXHU3YTFhXHU3YTIwXHU3YTE0XHU3YTFmXHU3YTFlXHU3YTlmXHU3YWEwXHU3Yjc3XHU3YmMwXHU3YjYwXHU3YjZlXHU3YjY3XHU3Y2IxXHU3Y2IzXHU3Y2I1XHU3ZDkzXHU3ZDc5XHU3ZDkxXHU3ZDgxXHU3ZDhmXHU3ZDViXHU3ZjZlXHU3ZjY5XHU3ZjZhXHU3ZjcyXHU3'@; put 'ZmE5XHU3ZmE4XHU3ZmE0XHU4MDU2XHU4MDU4XHU4MDg2XHU4MDg0XHU4MTcxXHU4MTcwXHU4MTc4XHU4MTY1XHU4MTZlXHU4MTczXHU4MTZiIl0sWyJiOGExIiwiXHU4MTc5XHU4MTdhXHU4MTY2XHU4MjA1XHU4MjQ3XHU4NDgyXHU4NDc3XHU4NDNkXHU4NDMxXHU4NDc1XHU4NDY2XHU4NDZi'@; put 'XHU4NDQ5XHU4NDZjXHU4NDViXHU4NDNjXHU4NDM1XHU4NDYxXHU4NDYzXHU4NDY5XHU4NDZkXHU4NDQ2XHU4NjVlXHU4NjVjXHU4NjVmXHU4NmY5XHU4NzEzXHU4NzA4XHU4NzA3XHU4NzAwXHU4NmZlXHU4NmZiXHU4NzAyXHU4NzAzXHU4NzA2XHU4NzBhXHU4ODU5XHU4OGRmXHU4OGQ0XHU4'@; put 'OGQ5XHU4OGRjXHU4OGQ4XHU4OGRkXHU4OGUxXHU4OGNhXHU4OGQ1XHU4OGQyXHU4OTljXHU4OWUzXHU4YTZiXHU4YTcyXHU4YTczXHU4YTY2XHU4YTY5XHU4YTcwXHU4YTg3XHU4YTdjXHU4YTYzXHU4YWEwXHU4YTcxXHU4YTg1XHU4YTZkXHU4YTYyXHU4YTZlXHU4YTZjXHU4YTc5XHU4YTdi'@; put 'XHU4YTNlXHU4YTY4XHU4YzYyXHU4YzhhXHU4Yzg5XHU4Y2NhXHU4Y2M3XHU4Y2M4XHU4Y2M0XHU4Y2IyXHU4Y2MzXHU4Y2MyXHU4Y2M1XHU4ZGUxXHU4ZGRmXHU4ZGU4XHU4ZGVmXHU4ZGYzXHU4ZGZhXHU4ZGVhXHU4ZGU0XHU4ZGU2XHU4ZWIyXHU4ZjAzXHU4ZjA5XHU4ZWZlXHU4ZjBhIl0s'@; put 'WyJiOTQwIiwiXHU4ZjlmXHU4ZmIyXHU5MDRiXHU5MDRhXHU5MDUzXHU5MDQyXHU5MDU0XHU5MDNjXHU5MDU1XHU5MDUwXHU5MDQ3XHU5MDRmXHU5MDRlXHU5MDRkXHU5MDUxXHU5MDNlXHU5MDQxXHU5MTEyXHU5MTE3XHU5MTZjXHU5MTZhXHU5MTY5XHU5MWM5XHU5MjM3XHU5MjU3XHU5MjM4'@; put 'XHU5MjNkXHU5MjQwXHU5MjNlXHU5MjViXHU5MjRiXHU5MjY0XHU5MjUxXHU5MjM0XHU5MjQ5XHU5MjRkXHU5MjQ1XHU5MjM5XHU5MjNmXHU5MjVhXHU5NTk4XHU5Njk4XHU5Njk0XHU5Njk1XHU5NmNkXHU5NmNiXHU5NmM5XHU5NmNhXHU5NmY3XHU5NmZiXHU5NmY5XHU5NmY2XHU5NzU2XHU5'@; put 'Nzc0XHU5Nzc2XHU5ODEwXHU5ODExXHU5ODEzXHU5ODBhXHU5ODEyXHU5ODBjXHU5OGZjXHU5OGY0Il0sWyJiOWExIiwiXHU5OGZkXHU5OGZlXHU5OWIzXHU5OWIxXHU5OWI0XHU5YWUxXHU5Y2U5XHU5ZTgyXHU5ZjBlXHU5ZjEzXHU5ZjIwXHU1MGU3XHU1MGVlXHU1MGU1XHU1MGQ2XHU1MGVk'@; put 'XHU1MGRhXHU1MGQ1XHU1MGNmXHU1MGQxXHU1MGYxXHU1MGNlXHU1MGU5XHU1MTYyXHU1MWYzXHU1MjgzXHU1MjgyXHU1MzMxXHU1M2FkXHU1NWZlXHU1NjAwXHU1NjFiXHU1NjE3XHU1NWZkXHU1NjE0XHU1NjA2XHU1NjA5XHU1NjBkXHU1NjBlXHU1NWY3XHU1NjE2XHU1NjFmXHU1NjA4XHU1'@; put 'NjEwXHU1NWY2XHU1NzE4XHU1NzE2XHU1ODc1XHU1ODdlXHU1ODgzXHU1ODkzXHU1ODhhXHU1ODc5XHU1ODg1XHU1ODdkXHU1OGZkXHU1OTI1XHU1OTIyXHU1OTI0XHU1OTZhXHU1OTY5XHU1YWUxXHU1YWU2XHU1YWU5XHU1YWQ3XHU1YWQ2XHU1YWQ4XHU1YWUzXHU1Yjc1XHU1YmRlXHU1YmU3'@; put 'XHU1YmUxXHU1YmU1XHU1YmU2XHU1YmU4XHU1YmUyXHU1YmU0XHU1YmRmXHU1YzBkXHU1YzYyXHU1ZDg0XHU1ZDg3XHU1ZTViXHU1ZTYzXHU1ZTU1XHU1ZTU3XHU1ZTU0XHU1ZWQzXHU1ZWQ2XHU1ZjBhXHU1ZjQ2XHU1ZjcwXHU1ZmI5XHU2MTQ3Il0sWyJiYTQwIiwiXHU2MTNmXHU2MTRiXHU2'@; put 'MTc3XHU2MTYyXHU2MTYzXHU2MTVmXHU2MTVhXHU2MTU4XHU2MTc1XHU2MjJhXHU2NDg3XHU2NDU4XHU2NDU0XHU2NGE0XHU2NDc4XHU2NDVmXHU2NDdhXHU2NDUxXHU2NDY3XHU2NDM0XHU2NDZkXHU2NDdiXHU2NTcyXHU2NWExXHU2NWQ3XHU2NWQ2XHU2NmEyXHU2NmE4XHU2NjlkXHU2OTlj'@; put 'XHU2OWE4XHU2OTk1XHU2OWMxXHU2OWFlXHU2OWQzXHU2OWNiXHU2OTliXHU2OWI3XHU2OWJiXHU2OWFiXHU2OWI0XHU2OWQwXHU2OWNkXHU2OWFkXHU2OWNjXHU2OWE2XHU2OWMzXHU2OWEzXHU2YjQ5XHU2YjRjXHU2YzMzXHU2ZjMzXHU2ZjE0XHU2ZWZlXHU2ZjEzXHU2ZWY0XHU2ZjI5XHU2'@; put 'ZjNlXHU2ZjIwXHU2ZjJjXHU2ZjBmXHU2ZjAyXHU2ZjIyIl0sWyJiYWExIiwiXHU2ZWZmXHU2ZWVmXHU2ZjA2XHU2ZjMxXHU2ZjM4XHU2ZjMyXHU2ZjIzXHU2ZjE1XHU2ZjJiXHU2ZjJmXHU2Zjg4XHU2ZjJhXHU2ZWVjXHU2ZjAxXHU2ZWYyXHU2ZWNjXHU2ZWY3XHU3MTk0XHU3MTk5XHU3MTdk'@; put 'XHU3MThhXHU3MTg0XHU3MTkyXHU3MjNlXHU3MjkyXHU3Mjk2XHU3MzQ0XHU3MzUwXHU3NDY0XHU3NDYzXHU3NDZhXHU3NDcwXHU3NDZkXHU3NTA0XHU3NTkxXHU3NjI3XHU3NjBkXHU3NjBiXHU3NjA5XHU3NjEzXHU3NmUxXHU3NmUzXHU3Nzg0XHU3NzdkXHU3NzdmXHU3NzYxXHU3OGMxXHU3'@; put 'ODlmXHU3OGE3XHU3OGIzXHU3OGE5XHU3OGEzXHU3OThlXHU3OThmXHU3OThkXHU3YTJlXHU3YTMxXHU3YWFhXHU3YWE5XHU3YWVkXHU3YWVmXHU3YmExXHU3Yjk1XHU3YjhiXHU3Yjc1XHU3Yjk3XHU3YjlkXHU3Yjk0XHU3YjhmXHU3YmI4XHU3Yjg3XHU3Yjg0XHU3Y2I5XHU3Y2JkXHU3Y2Jl'@; put 'XHU3ZGJiXHU3ZGIwXHU3ZDljXHU3ZGJkXHU3ZGJlXHU3ZGEwXHU3ZGNhXHU3ZGI0XHU3ZGIyXHU3ZGIxXHU3ZGJhXHU3ZGEyXHU3ZGJmXHU3ZGI1XHU3ZGI4XHU3ZGFkXHU3ZGQyXHU3ZGM3XHU3ZGFjIl0sWyJiYjQwIiwiXHU3ZjcwXHU3ZmUwXHU3ZmUxXHU3ZmRmXHU4MDVlXHU4MDVhXHU4'@; put 'MDg3XHU4MTUwXHU4MTgwXHU4MThmXHU4MTg4XHU4MThhXHU4MTdmXHU4MTgyXHU4MWU3XHU4MWZhXHU4MjA3XHU4MjE0XHU4MjFlXHU4MjRiXHU4NGM5XHU4NGJmXHU4NGM2XHU4NGM0XHU4NDk5XHU4NDllXHU4NGIyXHU4NDljXHU4NGNiXHU4NGI4XHU4NGMwXHU4NGQzXHU4NDkwXHU4NGJj'@; put 'XHU4NGQxXHU4NGNhXHU4NzNmXHU4NzFjXHU4NzNiXHU4NzIyXHU4NzI1XHU4NzM0XHU4NzE4XHU4NzU1XHU4NzM3XHU4NzI5XHU4OGYzXHU4OTAyXHU4OGY0XHU4OGY5XHU4OGY4XHU4OGZkXHU4OGU4XHU4OTFhXHU4OGVmXHU4YWE2XHU4YThjXHU4YTllXHU4YWEzXHU4YThkXHU4YWExXHU4'@; put 'YTkzXHU4YWE0Il0sWyJiYmExIiwiXHU4YWFhXHU4YWE1XHU4YWE4XHU4YTk4XHU4YTkxXHU4YTlhXHU4YWE3XHU4YzZhXHU4YzhkXHU4YzhjXHU4Y2QzXHU4Y2QxXHU4Y2QyXHU4ZDZiXHU4ZDk5XHU4ZDk1XHU4ZGZjXHU4ZjE0XHU4ZjEyXHU4ZjE1XHU4ZjEzXHU4ZmEzXHU5MDYwXHU5MDU4'@; put 'XHU5MDVjXHU5MDYzXHU5MDU5XHU5MDVlXHU5MDYyXHU5MDVkXHU5MDViXHU5MTE5XHU5MTE4XHU5MTFlXHU5MTc1XHU5MTc4XHU5MTc3XHU5MTc0XHU5Mjc4XHU5MjgwXHU5Mjg1XHU5Mjk4XHU5Mjk2XHU5MjdiXHU5MjkzXHU5MjljXHU5MmE4XHU5MjdjXHU5MjkxXHU5NWExXHU5NWE4XHU5'@; put 'NWE5XHU5NWEzXHU5NWE1XHU5NWE0XHU5Njk5XHU5NjljXHU5NjliXHU5NmNjXHU5NmQyXHU5NzAwXHU5NzdjXHU5Nzg1XHU5N2Y2XHU5ODE3XHU5ODE4XHU5OGFmXHU5OGIxXHU5OTAzXHU5OTA1XHU5OTBjXHU5OTA5XHU5OWMxXHU5YWFmXHU5YWIwXHU5YWU2XHU5YjQxXHU5YjQyXHU5Y2Y0'@; put 'XHU5Y2Y2XHU5Y2YzXHU5ZWJjXHU5ZjNiXHU5ZjRhXHU1MTA0XHU1MTAwXHU1MGZiXHU1MGY1XHU1MGY5XHU1MTAyXHU1MTA4XHU1MTA5XHU1MTA1XHU1MWRjIl0sWyJiYzQwIiwiXHU1Mjg3XHU1Mjg4XHU1Mjg5XHU1MjhkXHU1MjhhXHU1MmYwXHU1M2IyXHU1NjJlXHU1NjNiXHU1NjM5XHU1'@; put 'NjMyXHU1NjNmXHU1NjM0XHU1NjI5XHU1NjUzXHU1NjRlXHU1NjU3XHU1Njc0XHU1NjM2XHU1NjJmXHU1NjMwXHU1ODgwXHU1ODlmXHU1ODllXHU1OGIzXHU1ODljXHU1OGFlXHU1OGE5XHU1OGE2XHU1OTZkXHU1YjA5XHU1YWZiXHU1YjBiXHU1YWY1XHU1YjBjXHU1YjA4XHU1YmVlXHU1YmVj'@; put 'XHU1YmU5XHU1YmViXHU1YzY0XHU1YzY1XHU1ZDlkXHU1ZDk0XHU1ZTYyXHU1ZTVmXHU1ZTYxXHU1ZWUyXHU1ZWRhXHU1ZWRmXHU1ZWRkXHU1ZWUzXHU1ZWUwXHU1ZjQ4XHU1ZjcxXHU1ZmI3XHU1ZmI1XHU2MTc2XHU2MTY3XHU2MTZlXHU2MTVkXHU2MTU1XHU2MTgyIl0sWyJiY2ExIiwiXHU2'@; put 'MTdjXHU2MTcwXHU2MTZiXHU2MTdlXHU2MWE3XHU2MTkwXHU2MWFiXHU2MThlXHU2MWFjXHU2MTlhXHU2MWE0XHU2MTk0XHU2MWFlXHU2MjJlXHU2NDY5XHU2NDZmXHU2NDc5XHU2NDllXHU2NGIyXHU2NDg4XHU2NDkwXHU2NGIwXHU2NGE1XHU2NDkzXHU2NDk1XHU2NGE5XHU2NDkyXHU2NGFl'@; put 'XHU2NGFkXHU2NGFiXHU2NDlhXHU2NGFjXHU2NDk5XHU2NGEyXHU2NGIzXHU2NTc1XHU2NTc3XHU2NTc4XHU2NmFlXHU2NmFiXHU2NmI0XHU2NmIxXHU2YTIzXHU2YTFmXHU2OWU4XHU2YTAxXHU2YTFlXHU2YTE5XHU2OWZkXHU2YTIxXHU2YTEzXHU2YTBhXHU2OWYzXHU2YTAyXHU2YTA1XHU2'@; put 'OWVkXHU2YTExXHU2YjUwXHU2YjRlXHU2YmE0XHU2YmM1XHU2YmM2XHU2ZjNmXHU2ZjdjXHU2Zjg0XHU2ZjUxXHU2ZjY2XHU2ZjU0XHU2Zjg2XHU2ZjZkXHU2ZjViXHU2Zjc4XHU2ZjZlXHU2ZjhlXHU2ZjdhXHU2ZjcwXHU2ZjY0XHU2Zjk3XHU2ZjU4XHU2ZWQ1XHU2ZjZmXHU2ZjYwXHU2ZjVm'@; put 'XHU3MTlmXHU3MWFjXHU3MWIxXHU3MWE4XHU3MjU2XHU3MjliXHU3MzRlXHU3MzU3XHU3NDY5XHU3NDhiXHU3NDgzIl0sWyJiZDQwIiwiXHU3NDdlXHU3NDgwXHU3NTdmXHU3NjIwXHU3NjI5XHU3NjFmXHU3NjI0XHU3NjI2XHU3NjIxXHU3NjIyXHU3NjlhXHU3NmJhXHU3NmU0XHU3NzhlXHU3'@; put 'Nzg3XHU3NzhjXHU3NzkxXHU3NzhiXHU3OGNiXHU3OGM1XHU3OGJhXHU3OGNhXHU3OGJlXHU3OGQ1XHU3OGJjXHU3OGQwXHU3YTNmXHU3YTNjXHU3YTQwXHU3YTNkXHU3YTM3XHU3YTNiXHU3YWFmXHU3YWFlXHU3YmFkXHU3YmIxXHU3YmM0XHU3YmI0XHU3YmM2XHU3YmM3XHU3YmMxXHU3YmEw'@; put 'XHU3YmNjXHU3Y2NhXHU3ZGUwXHU3ZGY0XHU3ZGVmXHU3ZGZiXHU3ZGQ4XHU3ZGVjXHU3ZGRkXHU3ZGU4XHU3ZGUzXHU3ZGRhXHU3ZGRlXHU3ZGU5XHU3ZDllXHU3ZGQ5XHU3ZGYyXHU3ZGY5XHU3Zjc1XHU3Zjc3XHU3ZmFmIl0sWyJiZGExIiwiXHU3ZmU5XHU4MDI2XHU4MTliXHU4MTljXHU4'@; put 'MTlkXHU4MWEwXHU4MTlhXHU4MTk4XHU4NTE3XHU4NTNkXHU4NTFhXHU4NGVlXHU4NTJjXHU4NTJkXHU4NTEzXHU4NTExXHU4NTIzXHU4NTIxXHU4NTE0XHU4NGVjXHU4NTI1XHU4NGZmXHU4NTA2XHU4NzgyXHU4Nzc0XHU4Nzc2XHU4NzYwXHU4NzY2XHU4Nzc4XHU4NzY4XHU4NzU5XHU4NzU3'@; put 'XHU4NzRjXHU4NzUzXHU4ODViXHU4ODVkXHU4OTEwXHU4OTA3XHU4OTEyXHU4OTEzXHU4OTE1XHU4OTBhXHU4YWJjXHU4YWQyXHU4YWM3XHU4YWM0XHU4YTk1XHU4YWNiXHU4YWY4XHU4YWIyXHU4YWM5XHU4YWMyXHU4YWJmXHU4YWIwXHU4YWQ2XHU4YWNkXHU4YWI2XHU4YWI5XHU4YWRiXHU4'@; put 'YzRjXHU4YzRlXHU4YzZjXHU4Y2UwXHU4Y2RlXHU4Y2U2XHU4Y2U0XHU4Y2VjXHU4Y2VkXHU4Y2UyXHU4Y2UzXHU4Y2RjXHU4Y2VhXHU4Y2UxXHU4ZDZkXHU4ZDlmXHU4ZGEzXHU4ZTJiXHU4ZTEwXHU4ZTFkXHU4ZTIyXHU4ZTBmXHU4ZTI5XHU4ZTFmXHU4ZTIxXHU4ZTFlXHU4ZWJhXHU4ZjFk'@; put 'XHU4ZjFiXHU4ZjFmXHU4ZjI5XHU4ZjI2XHU4ZjJhXHU4ZjFjXHU4ZjFlIl0sWyJiZTQwIiwiXHU4ZjI1XHU5MDY5XHU5MDZlXHU5MDY4XHU5MDZkXHU5MDc3XHU5MTMwXHU5MTJkXHU5MTI3XHU5MTMxXHU5MTg3XHU5MTg5XHU5MThiXHU5MTgzXHU5MmM1XHU5MmJiXHU5MmI3XHU5MmVhXHU5'@; put 'MmFjXHU5MmU0XHU5MmMxXHU5MmIzXHU5MmJjXHU5MmQyXHU5MmM3XHU5MmYwXHU5MmIyXHU5NWFkXHU5NWIxXHU5NzA0XHU5NzA2XHU5NzA3XHU5NzA5XHU5NzYwXHU5NzhkXHU5NzhiXHU5NzhmXHU5ODIxXHU5ODJiXHU5ODFjXHU5OGIzXHU5OTBhXHU5OTEzXHU5OTEyXHU5OTE4XHU5OWRk'@; put 'XHU5OWQwXHU5OWRmXHU5OWRiXHU5OWQxXHU5OWQ1XHU5OWQyXHU5OWQ5XHU5YWI3XHU5YWVlXHU5YWVmXHU5YjI3XHU5YjQ1XHU5YjQ0XHU5Yjc3XHU5YjZmXHU5ZDA2XHU5ZDA5Il0sWyJiZWExIiwiXHU5ZDAzXHU5ZWE5XHU5ZWJlXHU5ZWNlXHU1OGE4XHU5ZjUyXHU1MTEyXHU1MTE4XHU1'@; put 'MTE0XHU1MTEwXHU1MTE1XHU1MTgwXHU1MWFhXHU1MWRkXHU1MjkxXHU1MjkzXHU1MmYzXHU1NjU5XHU1NjZiXHU1Njc5XHU1NjY5XHU1NjY0XHU1Njc4XHU1NjZhXHU1NjY4XHU1NjY1XHU1NjcxXHU1NjZmXHU1NjZjXHU1NjYyXHU1Njc2XHU1OGMxXHU1OGJlXHU1OGM3XHU1OGM1XHU1OTZl'@; put 'XHU1YjFkXHU1YjM0XHU1Yjc4XHU1YmYwXHU1YzBlXHU1ZjRhXHU2MWIyXHU2MTkxXHU2MWE5XHU2MThhXHU2MWNkXHU2MWI2XHU2MWJlXHU2MWNhXHU2MWM4XHU2MjMwXHU2NGM1XHU2NGMxXHU2NGNiXHU2NGJiXHU2NGJjXHU2NGRhXHU2NGM0XHU2NGM3XHU2NGMyXHU2NGNkXHU2NGJmXHU2'@; put 'NGQyXHU2NGQ0XHU2NGJlXHU2NTc0XHU2NmM2XHU2NmM5XHU2NmI5XHU2NmM0XHU2NmM3XHU2NmI4XHU2YTNkXHU2YTM4XHU2YTNhXHU2YTU5XHU2YTZiXHU2YTU4XHU2YTM5XHU2YTQ0XHU2YTYyXHU2YTYxXHU2YTRiXHU2YTQ3XHU2YTM1XHU2YTVmXHU2YTQ4XHU2YjU5XHU2Yjc3XHU2YzA1'@; put 'XHU2ZmMyXHU2ZmIxXHU2ZmExIl0sWyJiZjQwIiwiXHU2ZmMzXHU2ZmE0XHU2ZmMxXHU2ZmE3XHU2ZmIzXHU2ZmMwXHU2ZmI5XHU2ZmI2XHU2ZmE2XHU2ZmEwXHU2ZmI0XHU3MWJlXHU3MWM5XHU3MWQwXHU3MWQyXHU3MWM4XHU3MWQ1XHU3MWI5XHU3MWNlXHU3MWQ5XHU3MWRjXHU3MWMzXHU3'@; put 'MWM0XHU3MzY4XHU3NDljXHU3NGEzXHU3NDk4XHU3NDlmXHU3NDllXHU3NGUyXHU3NTBjXHU3NTBkXHU3NjM0XHU3NjM4XHU3NjNhXHU3NmU3XHU3NmU1XHU3N2EwXHU3NzllXHU3NzlmXHU3N2E1XHU3OGU4XHU3OGRhXHU3OGVjXHU3OGU3XHU3OWE2XHU3YTRkXHU3YTRlXHU3YTQ2XHU3YTRj'@; put 'XHU3YTRiXHU3YWJhXHU3YmQ5XHU3YzExXHU3YmM5XHU3YmU0XHU3YmRiXHU3YmUxXHU3YmU5XHU3YmU2XHU3Y2Q1XHU3Y2Q2XHU3ZTBhIl0sWyJiZmExIiwiXHU3ZTExXHU3ZTA4XHU3ZTFiXHU3ZTIzXHU3ZTFlXHU3ZTFkXHU3ZTA5XHU3ZTEwXHU3Zjc5XHU3ZmIyXHU3ZmYwXHU3ZmYxXHU3'@; put 'ZmVlXHU4MDI4XHU4MWIzXHU4MWE5XHU4MWE4XHU4MWZiXHU4MjA4XHU4MjU4XHU4MjU5XHU4NTRhXHU4NTU5XHU4NTQ4XHU4NTY4XHU4NTY5XHU4NTQzXHU4NTQ5XHU4NTZkXHU4NTZhXHU4NTVlXHU4NzgzXHU4NzlmXHU4NzllXHU4N2EyXHU4NzhkXHU4ODYxXHU4OTJhXHU4OTMyXHU4OTI1'@; put 'XHU4OTJiXHU4OTIxXHU4OWFhXHU4OWE2XHU4YWU2XHU4YWZhXHU4YWViXHU4YWYxXHU4YjAwXHU4YWRjXHU4YWU3XHU4YWVlXHU4YWZlXHU4YjAxXHU4YjAyXHU4YWY3XHU4YWVkXHU4YWYzXHU4YWY2XHU4YWZjXHU4YzZiXHU4YzZkXHU4YzkzXHU4Y2Y0XHU4ZTQ0XHU4ZTMxXHU4ZTM0XHU4'@; put 'ZTQyXHU4ZTM5XHU4ZTM1XHU4ZjNiXHU4ZjJmXHU4ZjM4XHU4ZjMzXHU4ZmE4XHU4ZmE2XHU5MDc1XHU5MDc0XHU5MDc4XHU5MDcyXHU5MDdjXHU5MDdhXHU5MTM0XHU5MTkyXHU5MzIwXHU5MzM2XHU5MmY4XHU5MzMzXHU5MzJmXHU5MzIyXHU5MmZjXHU5MzJiXHU5MzA0XHU5MzFhIl0sWyJj'@; put 'MDQwIiwiXHU5MzEwXHU5MzI2XHU5MzIxXHU5MzE1XHU5MzJlXHU5MzE5XHU5NWJiXHU5NmE3XHU5NmE4XHU5NmFhXHU5NmQ1XHU5NzBlXHU5NzExXHU5NzE2XHU5NzBkXHU5NzEzXHU5NzBmXHU5NzViXHU5NzVjXHU5NzY2XHU5Nzk4XHU5ODMwXHU5ODM4XHU5ODNiXHU5ODM3XHU5ODJkXHU5'@; put 'ODM5XHU5ODI0XHU5OTEwXHU5OTI4XHU5OTFlXHU5OTFiXHU5OTIxXHU5OTFhXHU5OWVkXHU5OWUyXHU5OWYxXHU5YWI4XHU5YWJjXHU5YWZiXHU5YWVkXHU5YjI4XHU5YjkxXHU5ZDE1XHU5ZDIzXHU5ZDI2XHU5ZDI4XHU5ZDEyXHU5ZDFiXHU5ZWQ4XHU5ZWQ0XHU5ZjhkXHU5ZjljXHU1MTJh'@; put 'XHU1MTFmXHU1MTIxXHU1MTMyXHU1MmY1XHU1NjhlXHU1NjgwXHU1NjkwXHU1Njg1XHU1Njg3Il0sWyJjMGExIiwiXHU1NjhmXHU1OGQ1XHU1OGQzXHU1OGQxXHU1OGNlXHU1YjMwXHU1YjJhXHU1YjI0XHU1YjdhXHU1YzM3XHU1YzY4XHU1ZGJjXHU1ZGJhXHU1ZGJkXHU1ZGI4XHU1ZTZiXHU1'@; put 'ZjRjXHU1ZmJkXHU2MWM5XHU2MWMyXHU2MWM3XHU2MWU2XHU2MWNiXHU2MjMyXHU2MjM0XHU2NGNlXHU2NGNhXHU2NGQ4XHU2NGUwXHU2NGYwXHU2NGU2XHU2NGVjXHU2NGYxXHU2NGUyXHU2NGVkXHU2NTgyXHU2NTgzXHU2NmQ5XHU2NmQ2XHU2YTgwXHU2YTk0XHU2YTg0XHU2YWEyXHU2YTlj'@; put 'XHU2YWRiXHU2YWEzXHU2YTdlXHU2YTk3XHU2YTkwXHU2YWEwXHU2YjVjXHU2YmFlXHU2YmRhXHU2YzA4XHU2ZmQ4XHU2ZmYxXHU2ZmRmXHU2ZmUwXHU2ZmRiXHU2ZmU0XHU2ZmViXHU2ZmVmXHU2ZjgwXHU2ZmVjXHU2ZmUxXHU2ZmU5XHU2ZmQ1XHU2ZmVlXHU2ZmYwXHU3MWU3XHU3MWRmXHU3'@; put 'MWVlXHU3MWU2XHU3MWU1XHU3MWVkXHU3MWVjXHU3MWY0XHU3MWUwXHU3MjM1XHU3MjQ2XHU3MzcwXHU3MzcyXHU3NGE5XHU3NGIwXHU3NGE2XHU3NGE4XHU3NjQ2XHU3NjQyXHU3NjRjXHU3NmVhXHU3N2IzXHU3N2FhXHU3N2IwXHU3N2FjIl0sWyJjMTQwIiwiXHU3N2E3XHU3N2FkXHU3N2Vm'@; put 'XHU3OGY3XHU3OGZhXHU3OGY0XHU3OGVmXHU3OTAxXHU3OWE3XHU3OWFhXHU3YTU3XHU3YWJmXHU3YzA3XHU3YzBkXHU3YmZlXHU3YmY3XHU3YzBjXHU3YmUwXHU3Y2UwXHU3Y2RjXHU3Y2RlXHU3Y2UyXHU3Y2RmXHU3Y2Q5XHU3Y2RkXHU3ZTJlXHU3ZTNlXHU3ZTQ2XHU3ZTM3XHU3ZTMyXHU3'@; put 'ZTQzXHU3ZTJiXHU3ZTNkXHU3ZTMxXHU3ZTQ1XHU3ZTQxXHU3ZTM0XHU3ZTM5XHU3ZTQ4XHU3ZTM1XHU3ZTNmXHU3ZTJmXHU3ZjQ0XHU3ZmYzXHU3ZmZjXHU4MDcxXHU4MDcyXHU4MDcwXHU4MDZmXHU4MDczXHU4MWM2XHU4MWMzXHU4MWJhXHU4MWMyXHU4MWMwXHU4MWJmXHU4MWJkXHU4MWM5'@; put 'XHU4MWJlXHU4MWU4XHU4MjA5XHU4MjcxXHU4NWFhIl0sWyJjMWExIiwiXHU4NTg0XHU4NTdlXHU4NTljXHU4NTkxXHU4NTk0XHU4NWFmXHU4NTliXHU4NTg3XHU4NWE4XHU4NThhXHU4NjY3XHU4N2MwXHU4N2QxXHU4N2IzXHU4N2QyXHU4N2M2XHU4N2FiXHU4N2JiXHU4N2JhXHU4N2M4XHU4'@; put 'N2NiXHU4OTNiXHU4OTM2XHU4OTQ0XHU4OTM4XHU4OTNkXHU4OWFjXHU4YjBlXHU4YjE3XHU4YjE5XHU4YjFiXHU4YjBhXHU4YjIwXHU4YjFkXHU4YjA0XHU4YjEwXHU4YzQxXHU4YzNmXHU4YzczXHU4Y2ZhXHU4Y2ZkXHU4Y2ZjXHU4Y2Y4XHU4Y2ZiXHU4ZGE4XHU4ZTQ5XHU4ZTRiXHU4ZTQ4'@; put 'XHU4ZTRhXHU4ZjQ0XHU4ZjNlXHU4ZjQyXHU4ZjQ1XHU4ZjNmXHU5MDdmXHU5MDdkXHU5MDg0XHU5MDgxXHU5MDgyXHU5MDgwXHU5MTM5XHU5MWEzXHU5MTllXHU5MTljXHU5MzRkXHU5MzgyXHU5MzI4XHU5Mzc1XHU5MzRhXHU5MzY1XHU5MzRiXHU5MzE4XHU5MzdlXHU5MzZjXHU5MzViXHU5'@; put 'MzcwXHU5MzVhXHU5MzU0XHU5NWNhXHU5NWNiXHU5NWNjXHU5NWM4XHU5NWM2XHU5NmIxXHU5NmI4XHU5NmQ2XHU5NzFjXHU5NzFlXHU5N2EwXHU5N2QzXHU5ODQ2XHU5OGI2XHU5OTM1XHU5YTAxIl0sWyJjMjQwIiwiXHU5OWZmXHU5YmFlXHU5YmFiXHU5YmFhXHU5YmFkXHU5ZDNiXHU5ZDNm'@; put 'XHU5ZThiXHU5ZWNmXHU5ZWRlXHU5ZWRjXHU5ZWRkXHU5ZWRiXHU5ZjNlXHU5ZjRiXHU1M2UyXHU1Njk1XHU1NmFlXHU1OGQ5XHU1OGQ4XHU1YjM4XHU1ZjVkXHU2MWUzXHU2MjMzXHU2NGY0XHU2NGYyXHU2NGZlXHU2NTA2XHU2NGZhXHU2NGZiXHU2NGY3XHU2NWI3XHU2NmRjXHU2NzI2XHU2'@; put 'YWIzXHU2YWFjXHU2YWMzXHU2YWJiXHU2YWI4XHU2YWMyXHU2YWFlXHU2YWFmXHU2YjVmXHU2Yjc4XHU2YmFmXHU3MDA5XHU3MDBiXHU2ZmZlXHU3MDA2XHU2ZmZhXHU3MDExXHU3MDBmXHU3MWZiXHU3MWZjXHU3MWZlXHU3MWY4XHU3Mzc3XHU3Mzc1XHU3NGE3XHU3NGJmXHU3NTE1XHU3NjU2'@; put 'XHU3NjU4Il0sWyJjMmExIiwiXHU3NjUyXHU3N2JkXHU3N2JmXHU3N2JiXHU3N2JjXHU3OTBlXHU3OWFlXHU3YTYxXHU3YTYyXHU3YTYwXHU3YWM0XHU3YWM1XHU3YzJiXHU3YzI3XHU3YzJhXHU3YzFlXHU3YzIzXHU3YzIxXHU3Y2U3XHU3ZTU0XHU3ZTU1XHU3ZTVlXHU3ZTVhXHU3ZTYxXHU3'@; put 'ZTUyXHU3ZTU5XHU3ZjQ4XHU3ZmY5XHU3ZmZiXHU4MDc3XHU4MDc2XHU4MWNkXHU4MWNmXHU4MjBhXHU4NWNmXHU4NWE5XHU4NWNkXHU4NWQwXHU4NWM5XHU4NWIwXHU4NWJhXHU4NWI5XHU4NWE2XHU4N2VmXHU4N2VjXHU4N2YyXHU4N2UwXHU4OTg2XHU4OWIyXHU4OWY0XHU4YjI4XHU4YjM5'@; put 'XHU4YjJjXHU4YjJiXHU4YzUwXHU4ZDA1XHU4ZTU5XHU4ZTYzXHU4ZTY2XHU4ZTY0XHU4ZTVmXHU4ZTU1XHU4ZWMwXHU4ZjQ5XHU4ZjRkXHU5MDg3XHU5MDgzXHU5MDg4XHU5MWFiXHU5MWFjXHU5MWQwXHU5Mzk0XHU5MzhhXHU5Mzk2XHU5M2EyXHU5M2IzXHU5M2FlXHU5M2FjXHU5M2IwXHU5'@; put 'Mzk4XHU5MzlhXHU5Mzk3XHU5NWQ0XHU5NWQ2XHU5NWQwXHU5NWQ1XHU5NmUyXHU5NmRjXHU5NmQ5XHU5NmRiXHU5NmRlXHU5NzI0XHU5N2EzXHU5N2E2Il0sWyJjMzQwIiwiXHU5N2FkXHU5N2Y5XHU5ODRkXHU5ODRmXHU5ODRjXHU5ODRlXHU5ODUzXHU5OGJhXHU5OTNlXHU5OTNmXHU5OTNk'@; put 'XHU5OTJlXHU5OWE1XHU5YTBlXHU5YWMxXHU5YjAzXHU5YjA2XHU5YjRmXHU5YjRlXHU5YjRkXHU5YmNhXHU5YmM5XHU5YmZkXHU5YmM4XHU5YmMwXHU5ZDUxXHU5ZDVkXHU5ZDYwXHU5ZWUwXHU5ZjE1XHU5ZjJjXHU1MTMzXHU1NmE1XHU1OGRlXHU1OGRmXHU1OGUyXHU1YmY1XHU5ZjkwXHU1'@; put 'ZWVjXHU2MWYyXHU2MWY3XHU2MWY2XHU2MWY1XHU2NTAwXHU2NTBmXHU2NmUwXHU2NmRkXHU2YWU1XHU2YWRkXHU2YWRhXHU2YWQzXHU3MDFiXHU3MDFmXHU3MDI4XHU3MDFhXHU3MDFkXHU3MDE1XHU3MDE4XHU3MjA2XHU3MjBkXHU3MjU4XHU3MmEyXHU3Mzc4Il0sWyJjM2ExIiwiXHU3Mzdh'@; put 'XHU3NGJkXHU3NGNhXHU3NGUzXHU3NTg3XHU3NTg2XHU3NjVmXHU3NjYxXHU3N2M3XHU3OTE5XHU3OWIxXHU3YTZiXHU3YTY5XHU3YzNlXHU3YzNmXHU3YzM4XHU3YzNkXHU3YzM3XHU3YzQwXHU3ZTZiXHU3ZTZkXHU3ZTc5XHU3ZTY5XHU3ZTZhXHU3Zjg1XHU3ZTczXHU3ZmI2XHU3ZmI5XHU3'@; put 'ZmI4XHU4MWQ4XHU4NWU5XHU4NWRkXHU4NWVhXHU4NWQ1XHU4NWU0XHU4NWU1XHU4NWY3XHU4N2ZiXHU4ODA1XHU4ODBkXHU4N2Y5XHU4N2ZlXHU4OTYwXHU4OTVmXHU4OTU2XHU4OTVlXHU4YjQxXHU4YjVjXHU4YjU4XHU4YjQ5XHU4YjVhXHU4YjRlXHU4YjRmXHU4YjQ2XHU4YjU5XHU4ZDA4'@; put 'XHU4ZDBhXHU4ZTdjXHU4ZTcyXHU4ZTg3XHU4ZTc2XHU4ZTZjXHU4ZTdhXHU4ZTc0XHU4ZjU0XHU4ZjRlXHU4ZmFkXHU5MDhhXHU5MDhiXHU5MWIxXHU5MWFlXHU5M2UxXHU5M2QxXHU5M2RmXHU5M2MzXHU5M2M4XHU5M2RjXHU5M2RkXHU5M2Q2XHU5M2UyXHU5M2NkXHU5M2Q4XHU5M2U0XHU5'@; put 'M2Q3XHU5M2U4XHU5NWRjXHU5NmI0XHU5NmUzXHU5NzJhXHU5NzI3XHU5NzYxXHU5N2RjXHU5N2ZiXHU5ODVlIl0sWyJjNDQwIiwiXHU5ODU4XHU5ODViXHU5OGJjXHU5OTQ1XHU5OTQ5XHU5YTE2XHU5YTE5XHU5YjBkXHU5YmU4XHU5YmU3XHU5YmQ2XHU5YmRiXHU5ZDg5XHU5ZDYxXHU5ZDcy'@; put 'XHU5ZDZhXHU5ZDZjXHU5ZTkyXHU5ZTk3XHU5ZTkzXHU5ZWI0XHU1MmY4XHU1NmE4XHU1NmI3XHU1NmI2XHU1NmI0XHU1NmJjXHU1OGU0XHU1YjQwXHU1YjQzXHU1YjdkXHU1YmY2XHU1ZGM5XHU2MWY4XHU2MWZhXHU2NTE4XHU2NTE0XHU2NTE5XHU2NmU2XHU2NzI3XHU2YWVjXHU3MDNlXHU3'@; put 'MDMwXHU3MDMyXHU3MjEwXHU3MzdiXHU3NGNmXHU3NjYyXHU3NjY1XHU3OTI2XHU3OTJhXHU3OTJjXHU3OTJiXHU3YWM3XHU3YWY2XHU3YzRjXHU3YzQzXHU3YzRkXHU3Y2VmXHU3Y2YwXHU4ZmFlXHU3ZTdkXHU3ZTdjIl0sWyJjNGExIiwiXHU3ZTgyXHU3ZjRjXHU4MDAwXHU4MWRhXHU4MjY2'@; put 'XHU4NWZiXHU4NWY5XHU4NjExXHU4NWZhXHU4NjA2XHU4NjBiXHU4NjA3XHU4NjBhXHU4ODE0XHU4ODE1XHU4OTY0XHU4OWJhXHU4OWY4XHU4YjcwXHU4YjZjXHU4YjY2XHU4YjZmXHU4YjVmXHU4YjZiXHU4ZDBmXHU4ZDBkXHU4ZTg5XHU4ZTgxXHU4ZTg1XHU4ZTgyXHU5MWI0XHU5MWNiXHU5'@; put 'NDE4XHU5NDAzXHU5M2ZkXHU5NWUxXHU5NzMwXHU5OGM0XHU5OTUyXHU5OTUxXHU5OWE4XHU5YTJiXHU5YTMwXHU5YTM3XHU5YTM1XHU5YzEzXHU5YzBkXHU5ZTc5XHU5ZWI1XHU5ZWU4XHU5ZjJmXHU5ZjVmXHU5ZjYzXHU5ZjYxXHU1MTM3XHU1MTM4XHU1NmMxXHU1NmMwXHU1NmMyXHU1OTE0'@; put 'XHU1YzZjXHU1ZGNkXHU2MWZjXHU2MWZlXHU2NTFkXHU2NTFjXHU2NTk1XHU2NmU5XHU2YWZiXHU2YjA0XHU2YWZhXHU2YmIyXHU3MDRjXHU3MjFiXHU3MmE3XHU3NGQ2XHU3NGQ0XHU3NjY5XHU3N2QzXHU3YzUwXHU3ZThmXHU3ZThjXHU3ZmJjXHU4NjE3XHU4NjJkXHU4NjFhXHU4ODIzXHU4'@; put 'ODIyXHU4ODIxXHU4ODFmXHU4OTZhXHU4OTZjXHU4OWJkXHU4Yjc0Il0sWyJjNTQwIiwiXHU4Yjc3XHU4YjdkXHU4ZDEzXHU4ZThhXHU4ZThkXHU4ZThiXHU4ZjVmXHU4ZmFmXHU5MWJhXHU5NDJlXHU5NDMzXHU5NDM1XHU5NDNhXHU5NDM4XHU5NDMyXHU5NDJiXHU5NWUyXHU5NzM4XHU5NzM5'@; put 'XHU5NzMyXHU5N2ZmXHU5ODY3XHU5ODY1XHU5OTU3XHU5YTQ1XHU5YTQzXHU5YTQwXHU5YTNlXHU5YWNmXHU5YjU0XHU5YjUxXHU5YzJkXHU5YzI1XHU5ZGFmXHU5ZGI0XHU5ZGMyXHU5ZGI4XHU5ZTlkXHU5ZWVmXHU5ZjE5XHU5ZjVjXHU5ZjY2XHU5ZjY3XHU1MTNjXHU1MTNiXHU1NmM4XHU1'@; put 'NmNhXHU1NmM5XHU1YjdmXHU1ZGQ0XHU1ZGQyXHU1ZjRlXHU2MWZmXHU2NTI0XHU2YjBhXHU2YjYxXHU3MDUxXHU3MDU4XHU3MzgwXHU3NGU0XHU3NThhXHU3NjZlXHU3NjZjIl0sWyJjNWExIiwiXHU3OWIzXHU3YzYwXHU3YzVmXHU4MDdlXHU4MDdkXHU4MWRmXHU4OTcyXHU4OTZmXHU4OWZj'@; put 'XHU4YjgwXHU4ZDE2XHU4ZDE3XHU4ZTkxXHU4ZTkzXHU4ZjYxXHU5MTQ4XHU5NDQ0XHU5NDUxXHU5NDUyXHU5NzNkXHU5NzNlXHU5N2MzXHU5N2MxXHU5ODZiXHU5OTU1XHU5YTU1XHU5YTRkXHU5YWQyXHU5YjFhXHU5YzQ5XHU5YzMxXHU5YzNlXHU5YzNiXHU5ZGQzXHU5ZGQ3XHU5ZjM0XHU5'@; put 'ZjZjXHU5ZjZhXHU5Zjk0XHU1NmNjXHU1ZGQ2XHU2MjAwXHU2NTIzXHU2NTJiXHU2NTJhXHU2NmVjXHU2YjEwXHU3NGRhXHU3YWNhXHU3YzY0XHU3YzYzXHU3YzY1XHU3ZTkzXHU3ZTk2XHU3ZTk0XHU4MWUyXHU4NjM4XHU4NjNmXHU4ODMxXHU4YjhhXHU5MDkwXHU5MDhmXHU5NDYzXHU5NDYw'@; put 'XHU5NDY0XHU5NzY4XHU5ODZmXHU5OTVjXHU5YTVhXHU5YTViXHU5YTU3XHU5YWQzXHU5YWQ0XHU5YWQxXHU5YzU0XHU5YzU3XHU5YzU2XHU5ZGU1XHU5ZTlmXHU5ZWY0XHU1NmQxXHU1OGU5XHU2NTJjXHU3MDVlXHU3NjcxXHU3NjcyXHU3N2Q3XHU3ZjUwXHU3Zjg4XHU4ODM2XHU4ODM5XHU4'@; put 'ODYyXHU4YjkzXHU4YjkyIl0sWyJjNjQwIiwiXHU4Yjk2XHU4Mjc3XHU4ZDFiXHU5MWMwXHU5NDZhXHU5NzQyXHU5NzQ4XHU5NzQ0XHU5N2M2XHU5ODcwXHU5YTVmXHU5YjIyXHU5YjU4XHU5YzVmXHU5ZGY5XHU5ZGZhXHU5ZTdjXHU5ZTdkXHU5ZjA3XHU5Zjc3XHU5ZjcyXHU1ZWYzXHU2YjE2'@; put 'XHU3MDYzXHU3YzZjXHU3YzZlXHU4ODNiXHU4OWMwXHU4ZWExXHU5MWMxXHU5NDcyXHU5NDcwXHU5ODcxXHU5OTVlXHU5YWQ2XHU5YjIzXHU5ZWNjXHU3MDY0XHU3N2RhXHU4YjlhXHU5NDc3XHU5N2M5XHU5YTYyXHU5YTY1XHU3ZTljXHU4YjljXHU4ZWFhXHU5MWM1XHU5NDdkXHU5NDdlXHU5'@; put 'NDdjXHU5Yzc3XHU5Yzc4XHU5ZWY3XHU4YzU0XHU5NDdmXHU5ZTFhXHU3MjI4XHU5YTZhXHU5YjMxXHU5ZTFiXHU5ZTFlXHU3YzcyIl0sWyJjOTQwIiwiXHU0ZTQyXHU0ZTVjXHU1MWY1XHU1MzFhXHU1MzgyXHU0ZTA3XHU0ZTBjXHU0ZTQ3XHU0ZThkXHU1NmQ3XHVmYTBjXHU1YzZlXHU1Zjcz'@; put 'XHU0ZTBmXHU1MTg3XHU0ZTBlXHU0ZTJlXHU0ZTkzXHU0ZWMyXHU0ZWM5XHU0ZWM4XHU1MTk4XHU1MmZjXHU1MzZjXHU1M2I5XHU1NzIwXHU1OTAzXHU1OTJjXHU1YzEwXHU1ZGZmXHU2NWUxXHU2YmIzXHU2YmNjXHU2YzE0XHU3MjNmXHU0ZTMxXHU0ZTNjXHU0ZWU4XHU0ZWRjXHU0ZWU5XHU0'@; put 'ZWUxXHU0ZWRkXHU0ZWRhXHU1MjBjXHU1MzFjXHU1MzRjXHU1NzIyXHU1NzIzXHU1OTE3XHU1OTJmXHU1YjgxXHU1Yjg0XHU1YzEyXHU1YzNiXHU1Yzc0XHU1YzczXHU1ZTA0XHU1ZTgwXHU1ZTgyXHU1ZmM5XHU2MjA5XHU2MjUwXHU2YzE1Il0sWyJjOWExIiwiXHU2YzM2XHU2YzQzXHU2YzNm'@; put 'XHU2YzNiXHU3MmFlXHU3MmIwXHU3MzhhXHU3OWI4XHU4MDhhXHU5NjFlXHU0ZjBlXHU0ZjE4XHU0ZjJjXHU0ZWY1XHU0ZjE0XHU0ZWYxXHU0ZjAwXHU0ZWY3XHU0ZjA4XHU0ZjFkXHU0ZjAyXHU0ZjA1XHU0ZjIyXHU0ZjEzXHU0ZjA0XHU0ZWY0XHU0ZjEyXHU1MWIxXHU1MjEzXHU1MjA5XHU1'@; put 'MjEwXHU1MmE2XHU1MzIyXHU1MzFmXHU1MzRkXHU1MzhhXHU1NDA3XHU1NmUxXHU1NmRmXHU1NzJlXHU1NzJhXHU1NzM0XHU1OTNjXHU1OTgwXHU1OTdjXHU1OTg1XHU1OTdiXHU1OTdlXHU1OTc3XHU1OTdmXHU1YjU2XHU1YzE1XHU1YzI1XHU1YzdjXHU1YzdhXHU1YzdiXHU1YzdlXHU1ZGRm'@; put 'XHU1ZTc1XHU1ZTg0XHU1ZjAyXHU1ZjFhXHU1Zjc0XHU1ZmQ1XHU1ZmQ0XHU1ZmNmXHU2MjVjXHU2MjVlXHU2MjY0XHU2MjYxXHU2MjY2XHU2MjYyXHU2MjU5XHU2MjYwXHU2MjVhXHU2MjY1XHU2NWVmXHU2NWVlXHU2NzNlXHU2NzM5XHU2NzM4XHU2NzNiXHU2NzNhXHU2NzNmXHU2NzNjXHU2'@; put 'NzMzXHU2YzE4XHU2YzQ2XHU2YzUyXHU2YzVjXHU2YzRmXHU2YzRhXHU2YzU0XHU2YzRiIl0sWyJjYTQwIiwiXHU2YzRjXHU3MDcxXHU3MjVlXHU3MmI0XHU3MmI1XHU3MzhlXHU3NTJhXHU3NjdmXHU3YTc1XHU3ZjUxXHU4Mjc4XHU4MjdjXHU4MjgwXHU4MjdkXHU4MjdmXHU4NjRkXHU4OTdl'@; put 'XHU5MDk5XHU5MDk3XHU5MDk4XHU5MDliXHU5MDk0XHU5NjIyXHU5NjI0XHU5NjIwXHU5NjIzXHU0ZjU2XHU0ZjNiXHU0ZjYyXHU0ZjQ5XHU0ZjUzXHU0ZjY0XHU0ZjNlXHU0ZjY3XHU0ZjUyXHU0ZjVmXHU0ZjQxXHU0ZjU4XHU0ZjJkXHU0ZjMzXHU0ZjNmXHU0ZjYxXHU1MThmXHU1MWI5XHU1'@; put 'MjFjXHU1MjFlXHU1MjIxXHU1MmFkXHU1MmFlXHU1MzA5XHU1MzYzXHU1MzcyXHU1MzhlXHU1MzhmXHU1NDMwXHU1NDM3XHU1NDJhXHU1NDU0XHU1NDQ1XHU1NDE5XHU1NDFjXHU1NDI1XHU1NDE4Il0sWyJjYWExIiwiXHU1NDNkXHU1NDRmXHU1NDQxXHU1NDI4XHU1NDI0XHU1NDQ3XHU1NmVl'@; put 'XHU1NmU3XHU1NmU1XHU1NzQxXHU1NzQ1XHU1NzRjXHU1NzQ5XHU1NzRiXHU1NzUyXHU1OTA2XHU1OTQwXHU1OWE2XHU1OTk4XHU1OWEwXHU1OTk3XHU1OThlXHU1OWEyXHU1OTkwXHU1OThmXHU1OWE3XHU1OWExXHU1YjhlXHU1YjkyXHU1YzI4XHU1YzJhXHU1YzhkXHU1YzhmXHU1Yzg4XHU1'@; put 'YzhiXHU1Yzg5XHU1YzkyXHU1YzhhXHU1Yzg2XHU1YzkzXHU1Yzk1XHU1ZGUwXHU1ZTBhXHU1ZTBlXHU1ZThiXHU1ZTg5XHU1ZThjXHU1ZTg4XHU1ZThkXHU1ZjA1XHU1ZjFkXHU1Zjc4XHU1Zjc2XHU1ZmQyXHU1ZmQxXHU1ZmQwXHU1ZmVkXHU1ZmU4XHU1ZmVlXHU1ZmYzXHU1ZmUxXHU1ZmU0'@; put 'XHU1ZmUzXHU1ZmZhXHU1ZmVmXHU1ZmY3XHU1ZmZiXHU2MDAwXHU1ZmY0XHU2MjNhXHU2MjgzXHU2MjhjXHU2MjhlXHU2MjhmXHU2Mjk0XHU2Mjg3XHU2MjcxXHU2MjdiXHU2MjdhXHU2MjcwXHU2MjgxXHU2Mjg4XHU2Mjc3XHU2MjdkXHU2MjcyXHU2Mjc0XHU2NTM3XHU2NWYwXHU2NWY0XHU2'@; put 'NWYzXHU2NWYyXHU2NWY1XHU2NzQ1XHU2NzQ3Il0sWyJjYjQwIiwiXHU2NzU5XHU2NzU1XHU2NzRjXHU2NzQ4XHU2NzVkXHU2NzRkXHU2NzVhXHU2NzRiXHU2YmQwXHU2YzE5XHU2YzFhXHU2Yzc4XHU2YzY3XHU2YzZiXHU2Yzg0XHU2YzhiXHU2YzhmXHU2YzcxXHU2YzZmXHU2YzY5XHU2Yzlh'@; put 'XHU2YzZkXHU2Yzg3XHU2Yzk1XHU2YzljXHU2YzY2XHU2YzczXHU2YzY1XHU2YzdiXHU2YzhlXHU3MDc0XHU3MDdhXHU3MjYzXHU3MmJmXHU3MmJkXHU3MmMzXHU3MmM2XHU3MmMxXHU3MmJhXHU3MmM1XHU3Mzk1XHU3Mzk3XHU3MzkzXHU3Mzk0XHU3MzkyXHU3NTNhXHU3NTM5XHU3NTk0XHU3'@; put 'NTk1XHU3NjgxXHU3OTNkXHU4MDM0XHU4MDk1XHU4MDk5XHU4MDkwXHU4MDkyXHU4MDljXHU4MjkwXHU4MjhmXHU4Mjg1XHU4MjhlXHU4MjkxXHU4MjkzIl0sWyJjYmExIiwiXHU4MjhhXHU4MjgzXHU4Mjg0XHU4Yzc4XHU4ZmM5XHU4ZmJmXHU5MDlmXHU5MGExXHU5MGE1XHU5MDllXHU5MGE3'@; put 'XHU5MGEwXHU5NjMwXHU5NjI4XHU5NjJmXHU5NjJkXHU0ZTMzXHU0Zjk4XHU0ZjdjXHU0Zjg1XHU0ZjdkXHU0ZjgwXHU0Zjg3XHU0Zjc2XHU0Zjc0XHU0Zjg5XHU0Zjg0XHU0Zjc3XHU0ZjRjXHU0Zjk3XHU0ZjZhXHU0ZjlhXHU0Zjc5XHU0ZjgxXHU0Zjc4XHU0ZjkwXHU0ZjljXHU0Zjk0XHU0'@; put 'ZjllXHU0ZjkyXHU0ZjgyXHU0Zjk1XHU0ZjZiXHU0ZjZlXHU1MTllXHU1MWJjXHU1MWJlXHU1MjM1XHU1MjMyXHU1MjMzXHU1MjQ2XHU1MjMxXHU1MmJjXHU1MzBhXHU1MzBiXHU1MzNjXHU1MzkyXHU1Mzk0XHU1NDg3XHU1NDdmXHU1NDgxXHU1NDkxXHU1NDgyXHU1NDg4XHU1NDZiXHU1NDdh'@; put 'XHU1NDdlXHU1NDY1XHU1NDZjXHU1NDc0XHU1NDY2XHU1NDhkXHU1NDZmXHU1NDYxXHU1NDYwXHU1NDk4XHU1NDYzXHU1NDY3XHU1NDY0XHU1NmY3XHU1NmY5XHU1NzZmXHU1NzcyXHU1NzZkXHU1NzZiXHU1NzcxXHU1NzcwXHU1Nzc2XHU1NzgwXHU1Nzc1XHU1NzdiXHU1NzczXHU1Nzc0XHU1'@; put 'NzYyIl0sWyJjYzQwIiwiXHU1NzY4XHU1NzdkXHU1OTBjXHU1OTQ1XHU1OWI1XHU1OWJhXHU1OWNmXHU1OWNlXHU1OWIyXHU1OWNjXHU1OWMxXHU1OWI2XHU1OWJjXHU1OWMzXHU1OWQ2XHU1OWIxXHU1OWJkXHU1OWMwXHU1OWM4XHU1OWI0XHU1OWM3XHU1YjYyXHU1YjY1XHU1YjkzXHU1Yjk1'@; put 'XHU1YzQ0XHU1YzQ3XHU1Y2FlXHU1Y2E0XHU1Y2EwXHU1Y2I1XHU1Y2FmXHU1Y2E4XHU1Y2FjXHU1YzlmXHU1Y2EzXHU1Y2FkXHU1Y2EyXHU1Y2FhXHU1Y2E3XHU1YzlkXHU1Y2E1XHU1Y2I2XHU1Y2IwXHU1Y2E2XHU1ZTE3XHU1ZTE0XHU1ZTE5XHU1ZjI4XHU1ZjIyXHU1ZjIzXHU1ZjI0XHU1'@; put 'ZjU0XHU1ZjgyXHU1ZjdlXHU1ZjdkXHU1ZmRlXHU1ZmU1XHU2MDJkXHU2MDI2XHU2MDE5XHU2MDMyXHU2MDBiIl0sWyJjY2ExIiwiXHU2MDM0XHU2MDBhXHU2MDE3XHU2MDMzXHU2MDFhXHU2MDFlXHU2MDJjXHU2MDIyXHU2MDBkXHU2MDEwXHU2MDJlXHU2MDEzXHU2MDExXHU2MDBjXHU2MDA5'@; put 'XHU2MDFjXHU2MjE0XHU2MjNkXHU2MmFkXHU2MmI0XHU2MmQxXHU2MmJlXHU2MmFhXHU2MmI2XHU2MmNhXHU2MmFlXHU2MmIzXHU2MmFmXHU2MmJiXHU2MmE5XHU2MmIwXHU2MmI4XHU2NTNkXHU2NWE4XHU2NWJiXHU2NjA5XHU2NWZjXHU2NjA0XHU2NjEyXHU2NjA4XHU2NWZiXHU2NjAzXHU2'@; put 'NjBiXHU2NjBkXHU2NjA1XHU2NWZkXHU2NjExXHU2NjEwXHU2NmY2XHU2NzBhXHU2Nzg1XHU2NzZjXHU2NzhlXHU2NzkyXHU2Nzc2XHU2NzdiXHU2Nzk4XHU2Nzg2XHU2Nzg0XHU2Nzc0XHU2NzhkXHU2NzhjXHU2NzdhXHU2NzlmXHU2NzkxXHU2Nzk5XHU2NzgzXHU2NzdkXHU2NzgxXHU2Nzc4'@; put 'XHU2Nzc5XHU2Nzk0XHU2YjI1XHU2YjgwXHU2YjdlXHU2YmRlXHU2YzFkXHU2YzkzXHU2Y2VjXHU2Y2ViXHU2Y2VlXHU2Y2Q5XHU2Y2I2XHU2Y2Q0XHU2Y2FkXHU2Y2U3XHU2Y2I3XHU2Y2QwXHU2Y2MyXHU2Y2JhXHU2Y2MzXHU2Y2M2XHU2Y2VkXHU2Y2YyIl0sWyJjZDQwIiwiXHU2Y2QyXHU2'@; put 'Y2RkXHU2Y2I0XHU2YzhhXHU2YzlkXHU2YzgwXHU2Y2RlXHU2Y2MwXHU2ZDMwXHU2Y2NkXHU2Y2M3XHU2Y2IwXHU2Y2Y5XHU2Y2NmXHU2Y2U5XHU2Y2QxXHU3MDk0XHU3MDk4XHU3MDg1XHU3MDkzXHU3MDg2XHU3MDg0XHU3MDkxXHU3MDk2XHU3MDgyXHU3MDlhXHU3MDgzXHU3MjZhXHU3MmQ2'@; put 'XHU3MmNiXHU3MmQ4XHU3MmM5XHU3MmRjXHU3MmQyXHU3MmQ0XHU3MmRhXHU3MmNjXHU3MmQxXHU3M2E0XHU3M2ExXHU3M2FkXHU3M2E2XHU3M2EyXHU3M2EwXHU3M2FjXHU3MzlkXHU3NGRkXHU3NGU4XHU3NTNmXHU3NTQwXHU3NTNlXHU3NThjXHU3NTk4XHU3NmFmXHU3NmYzXHU3NmYxXHU3'@; put 'NmYwXHU3NmY1XHU3N2Y4XHU3N2ZjXHU3N2Y5XHU3N2ZiXHU3N2ZhIl0sWyJjZGExIiwiXHU3N2Y3XHU3OTQyXHU3OTNmXHU3OWM1XHU3YTc4XHU3YTdiXHU3YWZiXHU3Yzc1XHU3Y2ZkXHU4MDM1XHU4MDhmXHU4MGFlXHU4MGEzXHU4MGI4XHU4MGI1XHU4MGFkXHU4MjIwXHU4MmEwXHU4MmMw'@; put 'XHU4MmFiXHU4MjlhXHU4Mjk4XHU4MjliXHU4MmI1XHU4MmE3XHU4MmFlXHU4MmJjXHU4MjllXHU4MmJhXHU4MmI0XHU4MmE4XHU4MmExXHU4MmE5XHU4MmMyXHU4MmE0XHU4MmMzXHU4MmI2XHU4MmEyXHU4NjcwXHU4NjZmXHU4NjZkXHU4NjZlXHU4YzU2XHU4ZmQyXHU4ZmNiXHU4ZmQzXHU4'@; put 'ZmNkXHU4ZmQ2XHU4ZmQ1XHU4ZmQ3XHU5MGIyXHU5MGI0XHU5MGFmXHU5MGIzXHU5MGIwXHU5NjM5XHU5NjNkXHU5NjNjXHU5NjNhXHU5NjQzXHU0ZmNkXHU0ZmM1XHU0ZmQzXHU0ZmIyXHU0ZmM5XHU0ZmNiXHU0ZmMxXHU0ZmQ0XHU0ZmRjXHU0ZmQ5XHU0ZmJiXHU0ZmIzXHU0ZmRiXHU0ZmM3'@; put 'XHU0ZmQ2XHU0ZmJhXHU0ZmMwXHU0ZmI5XHU0ZmVjXHU1MjQ0XHU1MjQ5XHU1MmMwXHU1MmMyXHU1MzNkXHU1MzdjXHU1Mzk3XHU1Mzk2XHU1Mzk5XHU1Mzk4XHU1NGJhXHU1NGExXHU1NGFkXHU1NGE1XHU1NGNmIl0sWyJjZTQwIiwiXHU1NGMzXHU4MzBkXHU1NGI3XHU1NGFlXHU1NGQ2XHU1'@; put 'NGI2XHU1NGM1XHU1NGM2XHU1NGEwXHU1NDcwXHU1NGJjXHU1NGEyXHU1NGJlXHU1NDcyXHU1NGRlXHU1NGIwXHU1N2I1XHU1NzllXHU1NzlmXHU1N2E0XHU1NzhjXHU1Nzk3XHU1NzlkXHU1NzliXHU1Nzk0XHU1Nzk4XHU1NzhmXHU1Nzk5XHU1N2E1XHU1NzlhXHU1Nzk1XHU1OGY0XHU1OTBk'@; put 'XHU1OTUzXHU1OWUxXHU1OWRlXHU1OWVlXHU1YTAwXHU1OWYxXHU1OWRkXHU1OWZhXHU1OWZkXHU1OWZjXHU1OWY2XHU1OWU0XHU1OWYyXHU1OWY3XHU1OWRiXHU1OWU5XHU1OWYzXHU1OWY1XHU1OWUwXHU1OWZlXHU1OWY0XHU1OWVkXHU1YmE4XHU1YzRjXHU1Y2QwXHU1Y2Q4XHU1Y2NjXHU1'@; put 'Y2Q3XHU1Y2NiXHU1Y2RiIl0sWyJjZWExIiwiXHU1Y2RlXHU1Y2RhXHU1Y2M5XHU1Y2M3XHU1Y2NhXHU1Y2Q2XHU1Y2QzXHU1Y2Q0XHU1Y2NmXHU1Y2M4XHU1Y2M2XHU1Y2NlXHU1Y2RmXHU1Y2Y4XHU1ZGY5XHU1ZTIxXHU1ZTIyXHU1ZTIzXHU1ZTIwXHU1ZTI0XHU1ZWIwXHU1ZWE0XHU1ZWEy'@; put 'XHU1ZTliXHU1ZWEzXHU1ZWE1XHU1ZjA3XHU1ZjJlXHU1ZjU2XHU1Zjg2XHU2MDM3XHU2MDM5XHU2MDU0XHU2MDcyXHU2MDVlXHU2MDQ1XHU2MDUzXHU2MDQ3XHU2MDQ5XHU2MDViXHU2MDRjXHU2MDQwXHU2MDQyXHU2MDVmXHU2MDI0XHU2MDQ0XHU2MDU4XHU2MDY2XHU2MDZlXHU2MjQyXHU2'@; put 'MjQzXHU2MmNmXHU2MzBkXHU2MzBiXHU2MmY1XHU2MzBlXHU2MzAzXHU2MmViXHU2MmY5XHU2MzBmXHU2MzBjXHU2MmY4XHU2MmY2XHU2MzAwXHU2MzEzXHU2MzE0XHU2MmZhXHU2MzE1XHU2MmZiXHU2MmYwXHU2NTQxXHU2NTQzXHU2NWFhXHU2NWJmXHU2NjM2XHU2NjIxXHU2NjMyXHU2NjM1'@; put 'XHU2NjFjXHU2NjI2XHU2NjIyXHU2NjMzXHU2NjJiXHU2NjNhXHU2NjFkXHU2NjM0XHU2NjM5XHU2NjJlXHU2NzBmXHU2NzEwXHU2N2MxXHU2N2YyXHU2N2M4XHU2N2JhIl0sWyJjZjQwIiwiXHU2N2RjXHU2N2JiXHU2N2Y4XHU2N2Q4XHU2N2MwXHU2N2I3XHU2N2M1XHU2N2ViXHU2N2U0XHU2'@; put 'N2RmXHU2N2I1XHU2N2NkXHU2N2IzXHU2N2Y3XHU2N2Y2XHU2N2VlXHU2N2UzXHU2N2MyXHU2N2I5XHU2N2NlXHU2N2U3XHU2N2YwXHU2N2IyXHU2N2ZjXHU2N2M2XHU2N2VkXHU2N2NjXHU2N2FlXHU2N2U2XHU2N2RiXHU2N2ZhXHU2N2M5XHU2N2NhXHU2N2MzXHU2N2VhXHU2N2NiXHU2YjI4'@; put 'XHU2YjgyXHU2Yjg0XHU2YmI2XHU2YmQ2XHU2YmQ4XHU2YmUwXHU2YzIwXHU2YzIxXHU2ZDI4XHU2ZDM0XHU2ZDJkXHU2ZDFmXHU2ZDNjXHU2ZDNmXHU2ZDEyXHU2ZDBhXHU2Y2RhXHU2ZDMzXHU2ZDA0XHU2ZDE5XHU2ZDNhXHU2ZDFhXHU2ZDExXHU2ZDAwXHU2ZDFkXHU2ZDQyIl0sWyJjZmEx'@; put 'IiwiXHU2ZDAxXHU2ZDE4XHU2ZDM3XHU2ZDAzXHU2ZDBmXHU2ZDQwXHU2ZDA3XHU2ZDIwXHU2ZDJjXHU2ZDA4XHU2ZDIyXHU2ZDA5XHU2ZDEwXHU3MGI3XHU3MDlmXHU3MGJlXHU3MGIxXHU3MGIwXHU3MGExXHU3MGI0XHU3MGI1XHU3MGE5XHU3MjQxXHU3MjQ5XHU3MjRhXHU3MjZjXHU3Mjcw'@; put 'XHU3MjczXHU3MjZlXHU3MmNhXHU3MmU0XHU3MmU4XHU3MmViXHU3MmRmXHU3MmVhXHU3MmU2XHU3MmUzXHU3Mzg1XHU3M2NjXHU3M2MyXHU3M2M4XHU3M2M1XHU3M2I5XHU3M2I2XHU3M2I1XHU3M2I0XHU3M2ViXHU3M2JmXHU3M2M3XHU3M2JlXHU3M2MzXHU3M2M2XHU3M2I4XHU3M2NiXHU3'@; put 'NGVjXHU3NGVlXHU3NTJlXHU3NTQ3XHU3NTQ4XHU3NWE3XHU3NWFhXHU3Njc5XHU3NmM0XHU3NzA4XHU3NzAzXHU3NzA0XHU3NzA1XHU3NzBhXHU3NmY3XHU3NmZiXHU3NmZhXHU3N2U3XHU3N2U4XHU3ODA2XHU3ODExXHU3ODEyXHU3ODA1XHU3ODEwXHU3ODBmXHU3ODBlXHU3ODA5XHU3ODAz'@; put 'XHU3ODEzXHU3OTRhXHU3OTRjXHU3OTRiXHU3OTQ1XHU3OTQ0XHU3OWQ1XHU3OWNkXHU3OWNmXHU3OWQ2XHU3OWNlXHU3YTgwIl0sWyJkMDQwIiwiXHU3YTdlXHU3YWQxXHU3YjAwXHU3YjAxXHU3YzdhXHU3Yzc4XHU3Yzc5XHU3YzdmXHU3YzgwXHU3YzgxXHU3ZDAzXHU3ZDA4XHU3ZDAxXHU3'@; put 'ZjU4XHU3ZjkxXHU3ZjhkXHU3ZmJlXHU4MDA3XHU4MDBlXHU4MDBmXHU4MDE0XHU4MDM3XHU4MGQ4XHU4MGM3XHU4MGUwXHU4MGQxXHU4MGM4XHU4MGMyXHU4MGQwXHU4MGM1XHU4MGUzXHU4MGQ5XHU4MGRjXHU4MGNhXHU4MGQ1XHU4MGM5XHU4MGNmXHU4MGQ3XHU4MGU2XHU4MGNkXHU4MWZm'@; put 'XHU4MjIxXHU4Mjk0XHU4MmQ5XHU4MmZlXHU4MmY5XHU4MzA3XHU4MmU4XHU4MzAwXHU4MmQ1XHU4MzNhXHU4MmViXHU4MmQ2XHU4MmY0XHU4MmVjXHU4MmUxXHU4MmYyXHU4MmY1XHU4MzBjXHU4MmZiXHU4MmY2XHU4MmYwXHU4MmVhIl0sWyJkMGExIiwiXHU4MmU0XHU4MmUwXHU4MmZhXHU4'@; put 'MmYzXHU4MmVkXHU4Njc3XHU4Njc0XHU4NjdjXHU4NjczXHU4ODQxXHU4ODRlXHU4ODY3XHU4ODZhXHU4ODY5XHU4OWQzXHU4YTA0XHU4YTA3XHU4ZDcyXHU4ZmUzXHU4ZmUxXHU4ZmVlXHU4ZmUwXHU5MGYxXHU5MGJkXHU5MGJmXHU5MGQ1XHU5MGM1XHU5MGJlXHU5MGM3XHU5MGNiXHU5MGM4'@; put 'XHU5MWQ0XHU5MWQzXHU5NjU0XHU5NjRmXHU5NjUxXHU5NjUzXHU5NjRhXHU5NjRlXHU1MDFlXHU1MDA1XHU1MDA3XHU1MDEzXHU1MDIyXHU1MDMwXHU1MDFiXHU0ZmY1XHU0ZmY0XHU1MDMzXHU1MDM3XHU1MDJjXHU0ZmY2XHU0ZmY3XHU1MDE3XHU1MDFjXHU1MDIwXHU1MDI3XHU1MDM1XHU1'@; put 'MDJmXHU1MDMxXHU1MDBlXHU1MTVhXHU1MTk0XHU1MTkzXHU1MWNhXHU1MWM0XHU1MWM1XHU1MWM4XHU1MWNlXHU1MjYxXHU1MjVhXHU1MjUyXHU1MjVlXHU1MjVmXHU1MjU1XHU1MjYyXHU1MmNkXHU1MzBlXHU1MzllXHU1NTI2XHU1NGUyXHU1NTE3XHU1NTEyXHU1NGU3XHU1NGYzXHU1NGU0'@; put 'XHU1NTFhXHU1NGZmXHU1NTA0XHU1NTA4XHU1NGViXHU1NTExXHU1NTA1XHU1NGYxIl0sWyJkMTQwIiwiXHU1NTBhXHU1NGZiXHU1NGY3XHU1NGY4XHU1NGUwXHU1NTBlXHU1NTAzXHU1NTBiXHU1NzAxXHU1NzAyXHU1N2NjXHU1ODMyXHU1N2Q1XHU1N2QyXHU1N2JhXHU1N2M2XHU1N2JkXHU1'@; put 'N2JjXHU1N2I4XHU1N2I2XHU1N2JmXHU1N2M3XHU1N2QwXHU1N2I5XHU1N2MxXHU1OTBlXHU1OTRhXHU1YTE5XHU1YTE2XHU1YTJkXHU1YTJlXHU1YTE1XHU1YTBmXHU1YTE3XHU1YTBhXHU1YTFlXHU1YTMzXHU1YjZjXHU1YmE3XHU1YmFkXHU1YmFjXHU1YzAzXHU1YzU2XHU1YzU0XHU1Y2Vj'@; put 'XHU1Y2ZmXHU1Y2VlXHU1Y2YxXHU1Y2Y3XHU1ZDAwXHU1Y2Y5XHU1ZTI5XHU1ZTI4XHU1ZWE4XHU1ZWFlXHU1ZWFhXHU1ZWFjXHU1ZjMzXHU1ZjMwXHU1ZjY3XHU2MDVkXHU2MDVhXHU2MDY3Il0sWyJkMWExIiwiXHU2MDQxXHU2MGEyXHU2MDg4XHU2MDgwXHU2MDkyXHU2MDgxXHU2MDlkXHU2'@; put 'MDgzXHU2MDk1XHU2MDliXHU2MDk3XHU2MDg3XHU2MDljXHU2MDhlXHU2MjE5XHU2MjQ2XHU2MmYyXHU2MzEwXHU2MzU2XHU2MzJjXHU2MzQ0XHU2MzQ1XHU2MzM2XHU2MzQzXHU2M2U0XHU2MzM5XHU2MzRiXHU2MzRhXHU2MzNjXHU2MzI5XHU2MzQxXHU2MzM0XHU2MzU4XHU2MzU0XHU2MzU5'@; put 'XHU2MzJkXHU2MzQ3XHU2MzMzXHU2MzVhXHU2MzUxXHU2MzM4XHU2MzU3XHU2MzQwXHU2MzQ4XHU2NTRhXHU2NTQ2XHU2NWM2XHU2NWMzXHU2NWM0XHU2NWMyXHU2NjRhXHU2NjVmXHU2NjQ3XHU2NjUxXHU2NzEyXHU2NzEzXHU2ODFmXHU2ODFhXHU2ODQ5XHU2ODMyXHU2ODMzXHU2ODNiXHU2'@; put 'ODRiXHU2ODRmXHU2ODE2XHU2ODMxXHU2ODFjXHU2ODM1XHU2ODJiXHU2ODJkXHU2ODJmXHU2ODRlXHU2ODQ0XHU2ODM0XHU2ODFkXHU2ODEyXHU2ODE0XHU2ODI2XHU2ODI4XHU2ODJlXHU2ODRkXHU2ODNhXHU2ODI1XHU2ODIwXHU2YjJjXHU2YjJmXHU2YjJkXHU2YjMxXHU2YjM0XHU2YjZk'@; put 'XHU4MDgyXHU2Yjg4XHU2YmU2XHU2YmU0Il0sWyJkMjQwIiwiXHU2YmU4XHU2YmUzXHU2YmUyXHU2YmU3XHU2YzI1XHU2ZDdhXHU2ZDYzXHU2ZDY0XHU2ZDc2XHU2ZDBkXHU2ZDYxXHU2ZDkyXHU2ZDU4XHU2ZDYyXHU2ZDZkXHU2ZDZmXHU2ZDkxXHU2ZDhkXHU2ZGVmXHU2ZDdmXHU2ZDg2XHU2'@; put 'ZDVlXHU2ZDY3XHU2ZDYwXHU2ZDk3XHU2ZDcwXHU2ZDdjXHU2ZDVmXHU2ZDgyXHU2ZDk4XHU2ZDJmXHU2ZDY4XHU2ZDhiXHU2ZDdlXHU2ZDgwXHU2ZDg0XHU2ZDE2XHU2ZDgzXHU2ZDdiXHU2ZDdkXHU2ZDc1XHU2ZDkwXHU3MGRjXHU3MGQzXHU3MGQxXHU3MGRkXHU3MGNiXHU3ZjM5XHU3MGUy'@; put 'XHU3MGQ3XHU3MGQyXHU3MGRlXHU3MGUwXHU3MGQ0XHU3MGNkXHU3MGM1XHU3MGM2XHU3MGM3XHU3MGRhXHU3MGNlXHU3MGUxXHU3MjQyXHU3Mjc4Il0sWyJkMmExIiwiXHU3Mjc3XHU3Mjc2XHU3MzAwXHU3MmZhXHU3MmY0XHU3MmZlXHU3MmY2XHU3MmYzXHU3MmZiXHU3MzAxXHU3M2QzXHU3'@; put 'M2Q5XHU3M2U1XHU3M2Q2XHU3M2JjXHU3M2U3XHU3M2UzXHU3M2U5XHU3M2RjXHU3M2QyXHU3M2RiXHU3M2Q0XHU3M2RkXHU3M2RhXHU3M2Q3XHU3M2Q4XHU3M2U4XHU3NGRlXHU3NGRmXHU3NGY0XHU3NGY1XHU3NTIxXHU3NTViXHU3NTVmXHU3NWIwXHU3NWMxXHU3NWJiXHU3NWM0XHU3NWMw'@; put 'XHU3NWJmXHU3NWI2XHU3NWJhXHU3NjhhXHU3NmM5XHU3NzFkXHU3NzFiXHU3NzEwXHU3NzEzXHU3NzEyXHU3NzIzXHU3NzExXHU3NzE1XHU3NzE5XHU3NzFhXHU3NzIyXHU3NzI3XHU3ODIzXHU3ODJjXHU3ODIyXHU3ODM1XHU3ODJmXHU3ODI4XHU3ODJlXHU3ODJiXHU3ODIxXHU3ODI5XHU3'@; put 'ODMzXHU3ODJhXHU3ODMxXHU3OTU0XHU3OTViXHU3OTRmXHU3OTVjXHU3OTUzXHU3OTUyXHU3OTUxXHU3OWViXHU3OWVjXHU3OWUwXHU3OWVlXHU3OWVkXHU3OWVhXHU3OWRjXHU3OWRlXHU3OWRkXHU3YTg2XHU3YTg5XHU3YTg1XHU3YThiXHU3YThjXHU3YThhXHU3YTg3XHU3YWQ4XHU3YjEw'@; put 'Il0sWyJkMzQwIiwiXHU3YjA0XHU3YjEzXHU3YjA1XHU3YjBmXHU3YjA4XHU3YjBhXHU3YjBlXHU3YjA5XHU3YjEyXHU3Yzg0XHU3YzkxXHU3YzhhXHU3YzhjXHU3Yzg4XHU3YzhkXHU3Yzg1XHU3ZDFlXHU3ZDFkXHU3ZDExXHU3ZDBlXHU3ZDE4XHU3ZDE2XHU3ZDEzXHU3ZDFmXHU3ZDEyXHU3'@; put 'ZDBmXHU3ZDBjXHU3ZjVjXHU3ZjYxXHU3ZjVlXHU3ZjYwXHU3ZjVkXHU3ZjViXHU3Zjk2XHU3ZjkyXHU3ZmMzXHU3ZmMyXHU3ZmMwXHU4MDE2XHU4MDNlXHU4MDM5XHU4MGZhXHU4MGYyXHU4MGY5XHU4MGY1XHU4MTAxXHU4MGZiXHU4MTAwXHU4MjAxXHU4MjJmXHU4MjI1XHU4MzMzXHU4MzJk'@; put 'XHU4MzQ0XHU4MzE5XHU4MzUxXHU4MzI1XHU4MzU2XHU4MzNmXHU4MzQxXHU4MzI2XHU4MzFjXHU4MzIyIl0sWyJkM2ExIiwiXHU4MzQyXHU4MzRlXHU4MzFiXHU4MzJhXHU4MzA4XHU4MzNjXHU4MzRkXHU4MzE2XHU4MzI0XHU4MzIwXHU4MzM3XHU4MzJmXHU4MzI5XHU4MzQ3XHU4MzQ1XHU4'@; put 'MzRjXHU4MzUzXHU4MzFlXHU4MzJjXHU4MzRiXHU4MzI3XHU4MzQ4XHU4NjUzXHU4NjUyXHU4NmEyXHU4NmE4XHU4Njk2XHU4NjhkXHU4NjkxXHU4NjllXHU4Njg3XHU4Njk3XHU4Njg2XHU4NjhiXHU4NjlhXHU4Njg1XHU4NmE1XHU4Njk5XHU4NmExXHU4NmE3XHU4Njk1XHU4Njk4XHU4Njhl'@; put 'XHU4NjlkXHU4NjkwXHU4Njk0XHU4ODQzXHU4ODQ0XHU4ODZkXHU4ODc1XHU4ODc2XHU4ODcyXHU4ODgwXHU4ODcxXHU4ODdmXHU4ODZmXHU4ODgzXHU4ODdlXHU4ODc0XHU4ODdjXHU4YTEyXHU4YzQ3XHU4YzU3XHU4YzdiXHU4Y2E0XHU4Y2EzXHU4ZDc2XHU4ZDc4XHU4ZGI1XHU4ZGI3XHU4'@; put 'ZGI2XHU4ZWQxXHU4ZWQzXHU4ZmZlXHU4ZmY1XHU5MDAyXHU4ZmZmXHU4ZmZiXHU5MDA0XHU4ZmZjXHU4ZmY2XHU5MGQ2XHU5MGUwXHU5MGQ5XHU5MGRhXHU5MGUzXHU5MGRmXHU5MGU1XHU5MGQ4XHU5MGRiXHU5MGQ3XHU5MGRjXHU5MGU0XHU5MTUwIl0sWyJkNDQwIiwiXHU5MTRlXHU5MTRm'@; put 'XHU5MWQ1XHU5MWUyXHU5MWRhXHU5NjVjXHU5NjVmXHU5NmJjXHU5OGUzXHU5YWRmXHU5YjJmXHU0ZTdmXHU1MDcwXHU1MDZhXHU1MDYxXHU1MDVlXHU1MDYwXHU1MDUzXHU1MDRiXHU1MDVkXHU1MDcyXHU1MDQ4XHU1MDRkXHU1MDQxXHU1MDViXHU1MDRhXHU1MDYyXHU1MDE1XHU1MDQ1XHU1'@; put 'MDVmXHU1MDY5XHU1MDZiXHU1MDYzXHU1MDY0XHU1MDQ2XHU1MDQwXHU1MDZlXHU1MDczXHU1MDU3XHU1MDUxXHU1MWQwXHU1MjZiXHU1MjZkXHU1MjZjXHU1MjZlXHU1MmQ2XHU1MmQzXHU1MzJkXHU1MzljXHU1NTc1XHU1NTc2XHU1NTNjXHU1NTRkXHU1NTUwXHU1NTM0XHU1NTJhXHU1NTUx'@; put 'XHU1NTYyXHU1NTM2XHU1NTM1XHU1NTMwXHU1NTUyXHU1NTQ1Il0sWyJkNGExIiwiXHU1NTBjXHU1NTMyXHU1NTY1XHU1NTRlXHU1NTM5XHU1NTQ4XHU1NTJkXHU1NTNiXHU1NTQwXHU1NTRiXHU1NzBhXHU1NzA3XHU1N2ZiXHU1ODE0XHU1N2UyXHU1N2Y2XHU1N2RjXHU1N2Y0XHU1ODAwXHU1'@; put 'N2VkXHU1N2ZkXHU1ODA4XHU1N2Y4XHU1ODBiXHU1N2YzXHU1N2NmXHU1ODA3XHU1N2VlXHU1N2UzXHU1N2YyXHU1N2U1XHU1N2VjXHU1N2UxXHU1ODBlXHU1N2ZjXHU1ODEwXHU1N2U3XHU1ODAxXHU1ODBjXHU1N2YxXHU1N2U5XHU1N2YwXHU1ODBkXHU1ODA0XHU1OTVjXHU1YTYwXHU1YTU4'@; put 'XHU1YTU1XHU1YTY3XHU1YTVlXHU1YTM4XHU1YTM1XHU1YTZkXHU1YTUwXHU1YTVmXHU1YTY1XHU1YTZjXHU1YTUzXHU1YTY0XHU1YTU3XHU1YTQzXHU1YTVkXHU1YTUyXHU1YTQ0XHU1YTViXHU1YTQ4XHU1YThlXHU1YTNlXHU1YTRkXHU1YTM5XHU1YTRjXHU1YTcwXHU1YTY5XHU1YTQ3XHU1'@; put 'YTUxXHU1YTU2XHU1YTQyXHU1YTVjXHU1YjcyXHU1YjZlXHU1YmMxXHU1YmMwXHU1YzU5XHU1ZDFlXHU1ZDBiXHU1ZDFkXHU1ZDFhXHU1ZDIwXHU1ZDBjXHU1ZDI4XHU1ZDBkXHU1ZDI2XHU1ZDI1XHU1ZDBmIl0sWyJkNTQwIiwiXHU1ZDMwXHU1ZDEyXHU1ZDIzXHU1ZDFmXHU1ZDJlXHU1ZTNl'@; put 'XHU1ZTM0XHU1ZWIxXHU1ZWI0XHU1ZWI5XHU1ZWIyXHU1ZWIzXHU1ZjM2XHU1ZjM4XHU1ZjliXHU1Zjk2XHU1ZjlmXHU2MDhhXHU2MDkwXHU2MDg2XHU2MGJlXHU2MGIwXHU2MGJhXHU2MGQzXHU2MGQ0XHU2MGNmXHU2MGU0XHU2MGQ5XHU2MGRkXHU2MGM4XHU2MGIxXHU2MGRiXHU2MGI3XHU2'@; put 'MGNhXHU2MGJmXHU2MGMzXHU2MGNkXHU2MGMwXHU2MzMyXHU2MzY1XHU2MzhhXHU2MzgyXHU2MzdkXHU2M2JkXHU2MzllXHU2M2FkXHU2MzlkXHU2Mzk3XHU2M2FiXHU2MzhlXHU2MzZmXHU2Mzg3XHU2MzkwXHU2MzZlXHU2M2FmXHU2Mzc1XHU2MzljXHU2MzZkXHU2M2FlXHU2MzdjXHU2M2E0'@; put 'XHU2MzNiXHU2MzlmIl0sWyJkNWExIiwiXHU2Mzc4XHU2Mzg1XHU2MzgxXHU2MzkxXHU2MzhkXHU2MzcwXHU2NTUzXHU2NWNkXHU2NjY1XHU2NjYxXHU2NjViXHU2NjU5XHU2NjVjXHU2NjYyXHU2NzE4XHU2ODc5XHU2ODg3XHU2ODkwXHU2ODljXHU2ODZkXHU2ODZlXHU2OGFlXHU2OGFiXHU2'@; put 'OTU2XHU2ODZmXHU2OGEzXHU2OGFjXHU2OGE5XHU2ODc1XHU2ODc0XHU2OGIyXHU2ODhmXHU2ODc3XHU2ODkyXHU2ODdjXHU2ODZiXHU2ODcyXHU2OGFhXHU2ODgwXHU2ODcxXHU2ODdlXHU2ODliXHU2ODk2XHU2ODhiXHU2OGEwXHU2ODg5XHU2OGE0XHU2ODc4XHU2ODdiXHU2ODkxXHU2ODhj'@; put 'XHU2ODhhXHU2ODdkXHU2YjM2XHU2YjMzXHU2YjM3XHU2YjM4XHU2YjkxXHU2YjhmXHU2YjhkXHU2YjhlXHU2YjhjXHU2YzJhXHU2ZGMwXHU2ZGFiXHU2ZGI0XHU2ZGIzXHU2ZTc0XHU2ZGFjXHU2ZGU5XHU2ZGUyXHU2ZGI3XHU2ZGY2XHU2ZGQ0XHU2ZTAwXHU2ZGM4XHU2ZGUwXHU2ZGRmXHU2'@; put 'ZGQ2XHU2ZGJlXHU2ZGU1XHU2ZGRjXHU2ZGRkXHU2ZGRiXHU2ZGY0XHU2ZGNhXHU2ZGJkXHU2ZGVkXHU2ZGYwXHU2ZGJhXHU2ZGQ1XHU2ZGMyXHU2ZGNmXHU2ZGM5Il0sWyJkNjQwIiwiXHU2ZGQwXHU2ZGYyXHU2ZGQzXHU2ZGZkXHU2ZGQ3XHU2ZGNkXHU2ZGUzXHU2ZGJiXHU3MGZhXHU3MTBk'@; put 'XHU3MGY3XHU3MTE3XHU3MGY0XHU3MTBjXHU3MGYwXHU3MTA0XHU3MGYzXHU3MTEwXHU3MGZjXHU3MGZmXHU3MTA2XHU3MTEzXHU3MTAwXHU3MGY4XHU3MGY2XHU3MTBiXHU3MTAyXHU3MTBlXHU3MjdlXHU3MjdiXHU3MjdjXHU3MjdmXHU3MzFkXHU3MzE3XHU3MzA3XHU3MzExXHU3MzE4XHU3'@; put 'MzBhXHU3MzA4XHU3MmZmXHU3MzBmXHU3MzFlXHU3Mzg4XHU3M2Y2XHU3M2Y4XHU3M2Y1XHU3NDA0XHU3NDAxXHU3M2ZkXHU3NDA3XHU3NDAwXHU3M2ZhXHU3M2ZjXHU3M2ZmXHU3NDBjXHU3NDBiXHU3M2Y0XHU3NDA4XHU3NTY0XHU3NTYzXHU3NWNlXHU3NWQyXHU3NWNmIl0sWyJkNmExIiwi'@; put 'XHU3NWNiXHU3NWNjXHU3NWQxXHU3NWQwXHU3NjhmXHU3Njg5XHU3NmQzXHU3NzM5XHU3NzJmXHU3NzJkXHU3NzMxXHU3NzMyXHU3NzM0XHU3NzMzXHU3NzNkXHU3NzI1XHU3NzNiXHU3NzM1XHU3ODQ4XHU3ODUyXHU3ODQ5XHU3ODRkXHU3ODRhXHU3ODRjXHU3ODI2XHU3ODQ1XHU3ODUwXHU3'@; put 'OTY0XHU3OTY3XHU3OTY5XHU3OTZhXHU3OTYzXHU3OTZiXHU3OTYxXHU3OWJiXHU3OWZhXHU3OWY4XHU3OWY2XHU3OWY3XHU3YThmXHU3YTk0XHU3YTkwXHU3YjM1XHU3YjQ3XHU3YjM0XHU3YjI1XHU3YjMwXHU3YjIyXHU3YjI0XHU3YjMzXHU3YjE4XHU3YjJhXHU3YjFkXHU3YjMxXHU3YjJi'@; put 'XHU3YjJkXHU3YjJmXHU3YjMyXHU3YjM4XHU3YjFhXHU3YjIzXHU3Yzk0XHU3Yzk4XHU3Yzk2XHU3Y2EzXHU3ZDM1XHU3ZDNkXHU3ZDM4XHU3ZDM2XHU3ZDNhXHU3ZDQ1XHU3ZDJjXHU3ZDI5XHU3ZDQxXHU3ZDQ3XHU3ZDNlXHU3ZDNmXHU3ZDRhXHU3ZDNiXHU3ZDI4XHU3ZjYzXHU3Zjk1XHU3'@; put 'ZjljXHU3ZjlkXHU3ZjliXHU3ZmNhXHU3ZmNiXHU3ZmNkXHU3ZmQwXHU3ZmQxXHU3ZmM3XHU3ZmNmXHU3ZmM5XHU4MDFmIl0sWyJkNzQwIiwiXHU4MDFlXHU4MDFiXHU4MDQ3XHU4MDQzXHU4MDQ4XHU4MTE4XHU4MTI1XHU4MTE5XHU4MTFiXHU4MTJkXHU4MTFmXHU4MTJjXHU4MTFlXHU4MTIx'@; put 'XHU4MTE1XHU4MTI3XHU4MTFkXHU4MTIyXHU4MjExXHU4MjM4XHU4MjMzXHU4MjNhXHU4MjM0XHU4MjMyXHU4Mjc0XHU4MzkwXHU4M2EzXHU4M2E4XHU4MzhkXHU4MzdhXHU4MzczXHU4M2E0XHU4Mzc0XHU4MzhmXHU4MzgxXHU4Mzk1XHU4Mzk5XHU4Mzc1XHU4Mzk0XHU4M2E5XHU4MzdkXHU4'@; put 'MzgzXHU4MzhjXHU4MzlkXHU4MzliXHU4M2FhXHU4MzhiXHU4MzdlXHU4M2E1XHU4M2FmXHU4Mzg4XHU4Mzk3XHU4M2IwXHU4MzdmXHU4M2E2XHU4Mzg3XHU4M2FlXHU4Mzc2XHU4MzlhXHU4NjU5XHU4NjU2XHU4NmJmXHU4NmI3Il0sWyJkN2ExIiwiXHU4NmMyXHU4NmMxXHU4NmM1XHU4NmJh'@; put 'XHU4NmIwXHU4NmM4XHU4NmI5XHU4NmIzXHU4NmI4XHU4NmNjXHU4NmI0XHU4NmJiXHU4NmJjXHU4NmMzXHU4NmJkXHU4NmJlXHU4ODUyXHU4ODg5XHU4ODk1XHU4OGE4XHU4OGEyXHU4OGFhXHU4ODlhXHU4ODkxXHU4OGExXHU4ODlmXHU4ODk4XHU4OGE3XHU4ODk5XHU4ODliXHU4ODk3XHU4'@; put 'OGE0XHU4OGFjXHU4ODhjXHU4ODkzXHU4ODhlXHU4OTgyXHU4OWQ2XHU4OWQ5XHU4OWQ1XHU4YTMwXHU4YTI3XHU4YTJjXHU4YTFlXHU4YzM5XHU4YzNiXHU4YzVjXHU4YzVkXHU4YzdkXHU4Y2E1XHU4ZDdkXHU4ZDdiXHU4ZDc5XHU4ZGJjXHU4ZGMyXHU4ZGI5XHU4ZGJmXHU4ZGMxXHU4ZWQ4'@; put 'XHU4ZWRlXHU4ZWRkXHU4ZWRjXHU4ZWQ3XHU4ZWUwXHU4ZWUxXHU5MDI0XHU5MDBiXHU5MDExXHU5MDFjXHU5MDBjXHU5MDIxXHU5MGVmXHU5MGVhXHU5MGYwXHU5MGY0XHU5MGYyXHU5MGYzXHU5MGQ0XHU5MGViXHU5MGVjXHU5MGU5XHU5MTU2XHU5MTU4XHU5MTVhXHU5MTUzXHU5MTU1XHU5'@; put 'MWVjXHU5MWY0XHU5MWYxXHU5MWYzXHU5MWY4XHU5MWU0XHU5MWY5XHU5MWVhIl0sWyJkODQwIiwiXHU5MWViXHU5MWY3XHU5MWU4XHU5MWVlXHU5NTdhXHU5NTg2XHU5NTg4XHU5NjdjXHU5NjZkXHU5NjZiXHU5NjcxXHU5NjZmXHU5NmJmXHU5NzZhXHU5ODA0XHU5OGU1XHU5OTk3XHU1MDli'@; put 'XHU1MDk1XHU1MDk0XHU1MDllXHU1MDhiXHU1MGEzXHU1MDgzXHU1MDhjXHU1MDhlXHU1MDlkXHU1MDY4XHU1MDljXHU1MDkyXHU1MDgyXHU1MDg3XHU1MTVmXHU1MWQ0XHU1MzEyXHU1MzExXHU1M2E0XHU1M2E3XHU1NTkxXHU1NWE4XHU1NWE1XHU1NWFkXHU1NTc3XHU1NjQ1XHU1NWEyXHU1'@; put 'NTkzXHU1NTg4XHU1NThmXHU1NWI1XHU1NTgxXHU1NWEzXHU1NTkyXHU1NWE0XHU1NTdkXHU1NThjXHU1NWE2XHU1NTdmXHU1NTk1XHU1NWExXHU1NThlXHU1NzBjXHU1ODI5XHU1ODM3Il0sWyJkOGExIiwiXHU1ODE5XHU1ODFlXHU1ODI3XHU1ODIzXHU1ODI4XHU1N2Y1XHU1ODQ4XHU1ODI1'@; put 'XHU1ODFjXHU1ODFiXHU1ODMzXHU1ODNmXHU1ODM2XHU1ODJlXHU1ODM5XHU1ODM4XHU1ODJkXHU1ODJjXHU1ODNiXHU1OTYxXHU1YWFmXHU1YTk0XHU1YTlmXHU1YTdhXHU1YWEyXHU1YTllXHU1YTc4XHU1YWE2XHU1YTdjXHU1YWE1XHU1YWFjXHU1YTk1XHU1YWFlXHU1YTM3XHU1YTg0XHU1'@; put 'YThhXHU1YTk3XHU1YTgzXHU1YThiXHU1YWE5XHU1YTdiXHU1YTdkXHU1YThjXHU1YTljXHU1YThmXHU1YTkzXHU1YTlkXHU1YmVhXHU1YmNkXHU1YmNiXHU1YmQ0XHU1YmQxXHU1YmNhXHU1YmNlXHU1YzBjXHU1YzMwXHU1ZDM3XHU1ZDQzXHU1ZDZiXHU1ZDQxXHU1ZDRiXHU1ZDNmXHU1ZDM1'@; put 'XHU1ZDUxXHU1ZDRlXHU1ZDU1XHU1ZDMzXHU1ZDNhXHU1ZDUyXHU1ZDNkXHU1ZDMxXHU1ZDU5XHU1ZDQyXHU1ZDM5XHU1ZDQ5XHU1ZDM4XHU1ZDNjXHU1ZDMyXHU1ZDM2XHU1ZDQwXHU1ZDQ1XHU1ZTQ0XHU1ZTQxXHU1ZjU4XHU1ZmE2XHU1ZmE1XHU1ZmFiXHU2MGM5XHU2MGI5XHU2MGNjXHU2'@; put 'MGUyXHU2MGNlXHU2MGM0XHU2MTE0Il0sWyJkOTQwIiwiXHU2MGYyXHU2MTBhXHU2MTE2XHU2MTA1XHU2MGY1XHU2MTEzXHU2MGY4XHU2MGZjXHU2MGZlXHU2MGMxXHU2MTAzXHU2MTE4XHU2MTFkXHU2MTEwXHU2MGZmXHU2MTA0XHU2MTBiXHU2MjRhXHU2Mzk0XHU2M2IxXHU2M2IwXHU2M2Nl'@; put 'XHU2M2U1XHU2M2U4XHU2M2VmXHU2M2MzXHU2NDlkXHU2M2YzXHU2M2NhXHU2M2UwXHU2M2Y2XHU2M2Q1XHU2M2YyXHU2M2Y1XHU2NDYxXHU2M2RmXHU2M2JlXHU2M2RkXHU2M2RjXHU2M2M0XHU2M2Q4XHU2M2QzXHU2M2MyXHU2M2M3XHU2M2NjXHU2M2NiXHU2M2M4XHU2M2YwXHU2M2Q3XHU2'@; put 'M2Q5XHU2NTMyXHU2NTY3XHU2NTZhXHU2NTY0XHU2NTVjXHU2NTY4XHU2NTY1XHU2NThjXHU2NTlkXHU2NTllXHU2NWFlXHU2NWQwXHU2NWQyIl0sWyJkOWExIiwiXHU2NjdjXHU2NjZjXHU2NjdiXHU2NjgwXHU2NjcxXHU2Njc5XHU2NjZhXHU2NjcyXHU2NzAxXHU2OTBjXHU2OGQzXHU2OTA0'@; put 'XHU2OGRjXHU2OTJhXHU2OGVjXHU2OGVhXHU2OGYxXHU2OTBmXHU2OGQ2XHU2OGY3XHU2OGViXHU2OGU0XHU2OGY2XHU2OTEzXHU2OTEwXHU2OGYzXHU2OGUxXHU2OTA3XHU2OGNjXHU2OTA4XHU2OTcwXHU2OGI0XHU2OTExXHU2OGVmXHU2OGM2XHU2OTE0XHU2OGY4XHU2OGQwXHU2OGZkXHU2'@; put 'OGZjXHU2OGU4XHU2OTBiXHU2OTBhXHU2OTE3XHU2OGNlXHU2OGM4XHU2OGRkXHU2OGRlXHU2OGU2XHU2OGY0XHU2OGQxXHU2OTA2XHU2OGQ0XHU2OGU5XHU2OTE1XHU2OTI1XHU2OGM3XHU2YjM5XHU2YjNiXHU2YjNmXHU2YjNjXHU2Yjk0XHU2Yjk3XHU2Yjk5XHU2Yjk1XHU2YmJkXHU2YmYw'@; put 'XHU2YmYyXHU2YmYzXHU2YzMwXHU2ZGZjXHU2ZTQ2XHU2ZTQ3XHU2ZTFmXHU2ZTQ5XHU2ZTg4XHU2ZTNjXHU2ZTNkXHU2ZTQ1XHU2ZTYyXHU2ZTJiXHU2ZTNmXHU2ZTQxXHU2ZTVkXHU2ZTczXHU2ZTFjXHU2ZTMzXHU2ZTRiXHU2ZTQwXHU2ZTUxXHU2ZTNiXHU2ZTAzXHU2ZTJlXHU2ZTVlIl0s'@; put 'WyJkYTQwIiwiXHU2ZTY4XHU2ZTVjXHU2ZTYxXHU2ZTMxXHU2ZTI4XHU2ZTYwXHU2ZTcxXHU2ZTZiXHU2ZTM5XHU2ZTIyXHU2ZTMwXHU2ZTUzXHU2ZTY1XHU2ZTI3XHU2ZTc4XHU2ZTY0XHU2ZTc3XHU2ZTU1XHU2ZTc5XHU2ZTUyXHU2ZTY2XHU2ZTM1XHU2ZTM2XHU2ZTVhXHU3MTIwXHU3MTFl'@; put 'XHU3MTJmXHU3MGZiXHU3MTJlXHU3MTMxXHU3MTIzXHU3MTI1XHU3MTIyXHU3MTMyXHU3MTFmXHU3MTI4XHU3MTNhXHU3MTFiXHU3MjRiXHU3MjVhXHU3Mjg4XHU3Mjg5XHU3Mjg2XHU3Mjg1XHU3MjhiXHU3MzEyXHU3MzBiXHU3MzMwXHU3MzIyXHU3MzMxXHU3MzMzXHU3MzI3XHU3MzMyXHU3'@; put 'MzJkXHU3MzI2XHU3MzIzXHU3MzM1XHU3MzBjXHU3NDJlXHU3NDJjXHU3NDMwXHU3NDJiXHU3NDE2Il0sWyJkYWExIiwiXHU3NDFhXHU3NDIxXHU3NDJkXHU3NDMxXHU3NDI0XHU3NDIzXHU3NDFkXHU3NDI5XHU3NDIwXHU3NDMyXHU3NGZiXHU3NTJmXHU3NTZmXHU3NTZjXHU3NWU3XHU3NWRh'@; put 'XHU3NWUxXHU3NWU2XHU3NWRkXHU3NWRmXHU3NWU0XHU3NWQ3XHU3Njk1XHU3NjkyXHU3NmRhXHU3NzQ2XHU3NzQ3XHU3NzQ0XHU3NzRkXHU3NzQ1XHU3NzRhXHU3NzRlXHU3NzRiXHU3NzRjXHU3N2RlXHU3N2VjXHU3ODYwXHU3ODY0XHU3ODY1XHU3ODVjXHU3ODZkXHU3ODcxXHU3ODZhXHU3'@; put 'ODZlXHU3ODcwXHU3ODY5XHU3ODY4XHU3ODVlXHU3ODYyXHU3OTc0XHU3OTczXHU3OTcyXHU3OTcwXHU3YTAyXHU3YTBhXHU3YTAzXHU3YTBjXHU3YTA0XHU3YTk5XHU3YWU2XHU3YWU0XHU3YjRhXHU3YjNiXHU3YjQ0XHU3YjQ4XHU3YjRjXHU3YjRlXHU3YjQwXHU3YjU4XHU3YjQ1XHU3Y2Ey'@; put 'XHU3YzllXHU3Y2E4XHU3Y2ExXHU3ZDU4XHU3ZDZmXHU3ZDYzXHU3ZDUzXHU3ZDU2XHU3ZDY3XHU3ZDZhXHU3ZDRmXHU3ZDZkXHU3ZDVjXHU3ZDZiXHU3ZDUyXHU3ZDU0XHU3ZDY5XHU3ZDUxXHU3ZDVmXHU3ZDRlXHU3ZjNlXHU3ZjNmXHU3ZjY1Il0sWyJkYjQwIiwiXHU3ZjY2XHU3ZmEyXHU3'@; put 'ZmEwXHU3ZmExXHU3ZmQ3XHU4MDUxXHU4MDRmXHU4MDUwXHU4MGZlXHU4MGQ0XHU4MTQzXHU4MTRhXHU4MTUyXHU4MTRmXHU4MTQ3XHU4MTNkXHU4MTRkXHU4MTNhXHU4MWU2XHU4MWVlXHU4MWY3XHU4MWY4XHU4MWY5XHU4MjA0XHU4MjNjXHU4MjNkXHU4MjNmXHU4Mjc1XHU4MzNiXHU4M2Nm'@; put 'XHU4M2Y5XHU4NDIzXHU4M2MwXHU4M2U4XHU4NDEyXHU4M2U3XHU4M2U0XHU4M2ZjXHU4M2Y2XHU4NDEwXHU4M2M2XHU4M2M4XHU4M2ViXHU4M2UzXHU4M2JmXHU4NDAxXHU4M2RkXHU4M2U1XHU4M2Q4XHU4M2ZmXHU4M2UxXHU4M2NiXHU4M2NlXHU4M2Q2XHU4M2Y1XHU4M2M5XHU4NDA5XHU4'@; put 'NDBmXHU4M2RlXHU4NDExXHU4NDA2XHU4M2MyXHU4M2YzIl0sWyJkYmExIiwiXHU4M2Q1XHU4M2ZhXHU4M2M3XHU4M2QxXHU4M2VhXHU4NDEzXHU4M2MzXHU4M2VjXHU4M2VlXHU4M2M0XHU4M2ZiXHU4M2Q3XHU4M2UyXHU4NDFiXHU4M2RiXHU4M2ZlXHU4NmQ4XHU4NmUyXHU4NmU2XHU4NmQz'@; put 'XHU4NmUzXHU4NmRhXHU4NmVhXHU4NmRkXHU4NmViXHU4NmRjXHU4NmVjXHU4NmU5XHU4NmQ3XHU4NmU4XHU4NmQxXHU4ODQ4XHU4ODU2XHU4ODU1XHU4OGJhXHU4OGQ3XHU4OGI5XHU4OGI4XHU4OGMwXHU4OGJlXHU4OGI2XHU4OGJjXHU4OGI3XHU4OGJkXHU4OGIyXHU4OTAxXHU4OGM5XHU4'@; put 'OTk1XHU4OTk4XHU4OTk3XHU4OWRkXHU4OWRhXHU4OWRiXHU4YTRlXHU4YTRkXHU4YTM5XHU4YTU5XHU4YTQwXHU4YTU3XHU4YTU4XHU4YTQ0XHU4YTQ1XHU4YTUyXHU4YTQ4XHU4YTUxXHU4YTRhXHU4YTRjXHU4YTRmXHU4YzVmXHU4YzgxXHU4YzgwXHU4Y2JhXHU4Y2JlXHU4Y2IwXHU4Y2I5'@; put 'XHU4Y2I1XHU4ZDg0XHU4ZDgwXHU4ZDg5XHU4ZGQ4XHU4ZGQzXHU4ZGNkXHU4ZGM3XHU4ZGQ2XHU4ZGRjXHU4ZGNmXHU4ZGQ1XHU4ZGQ5XHU4ZGM4XHU4ZGQ3XHU4ZGM1XHU4ZWVmXHU4ZWY3XHU4ZWZhIl0sWyJkYzQwIiwiXHU4ZWY5XHU4ZWU2XHU4ZWVlXHU4ZWU1XHU4ZWY1XHU4ZWU3XHU4'@; put 'ZWU4XHU4ZWY2XHU4ZWViXHU4ZWYxXHU4ZWVjXHU4ZWY0XHU4ZWU5XHU5MDJkXHU5MDM0XHU5MDJmXHU5MTA2XHU5MTJjXHU5MTA0XHU5MGZmXHU5MGZjXHU5MTA4XHU5MGY5XHU5MGZiXHU5MTAxXHU5MTAwXHU5MTA3XHU5MTA1XHU5MTAzXHU5MTYxXHU5MTY0XHU5MTVmXHU5MTYyXHU5MTYw'@; put 'XHU5MjAxXHU5MjBhXHU5MjI1XHU5MjAzXHU5MjFhXHU5MjI2XHU5MjBmXHU5MjBjXHU5MjAwXHU5MjEyXHU5MWZmXHU5MWZkXHU5MjA2XHU5MjA0XHU5MjI3XHU5MjAyXHU5MjFjXHU5MjI0XHU5MjE5XHU5MjE3XHU5MjA1XHU5MjE2XHU5NTdiXHU5NThkXHU5NThjXHU5NTkwXHU5Njg3XHU5'@; put 'NjdlXHU5Njg4Il0sWyJkY2ExIiwiXHU5Njg5XHU5NjgzXHU5NjgwXHU5NmMyXHU5NmM4XHU5NmMzXHU5NmYxXHU5NmYwXHU5NzZjXHU5NzcwXHU5NzZlXHU5ODA3XHU5OGE5XHU5OGViXHU5Y2U2XHU5ZWY5XHU0ZTgzXHU0ZTg0XHU0ZWI2XHU1MGJkXHU1MGJmXHU1MGM2XHU1MGFlXHU1MGM0'@; put 'XHU1MGNhXHU1MGI0XHU1MGM4XHU1MGMyXHU1MGIwXHU1MGMxXHU1MGJhXHU1MGIxXHU1MGNiXHU1MGM5XHU1MGI2XHU1MGI4XHU1MWQ3XHU1MjdhXHU1Mjc4XHU1MjdiXHU1MjdjXHU1NWMzXHU1NWRiXHU1NWNjXHU1NWQwXHU1NWNiXHU1NWNhXHU1NWRkXHU1NWMwXHU1NWQ0XHU1NWM0XHU1'@; put 'NWU5XHU1NWJmXHU1NWQyXHU1NThkXHU1NWNmXHU1NWQ1XHU1NWUyXHU1NWQ2XHU1NWM4XHU1NWYyXHU1NWNkXHU1NWQ5XHU1NWMyXHU1NzE0XHU1ODUzXHU1ODY4XHU1ODY0XHU1ODRmXHU1ODRkXHU1ODQ5XHU1ODZmXHU1ODU1XHU1ODRlXHU1ODVkXHU1ODU5XHU1ODY1XHU1ODViXHU1ODNk'@; put 'XHU1ODYzXHU1ODcxXHU1OGZjXHU1YWM3XHU1YWM0XHU1YWNiXHU1YWJhXHU1YWI4XHU1YWIxXHU1YWI1XHU1YWIwXHU1YWJmXHU1YWM4XHU1YWJiXHU1YWM2Il0sWyJkZDQwIiwiXHU1YWI3XHU1YWMwXHU1YWNhXHU1YWI0XHU1YWI2XHU1YWNkXHU1YWI5XHU1YTkwXHU1YmQ2XHU1YmQ4XHU1'@; put 'YmQ5XHU1YzFmXHU1YzMzXHU1ZDcxXHU1ZDYzXHU1ZDRhXHU1ZDY1XHU1ZDcyXHU1ZDZjXHU1ZDVlXHU1ZDY4XHU1ZDY3XHU1ZDYyXHU1ZGYwXHU1ZTRmXHU1ZTRlXHU1ZTRhXHU1ZTRkXHU1ZTRiXHU1ZWM1XHU1ZWNjXHU1ZWM2XHU1ZWNiXHU1ZWM3XHU1ZjQwXHU1ZmFmXHU1ZmFkXHU2MGY3'@; put 'XHU2MTQ5XHU2MTRhXHU2MTJiXHU2MTQ1XHU2MTM2XHU2MTMyXHU2MTJlXHU2MTQ2XHU2MTJmXHU2MTRmXHU2MTI5XHU2MTQwXHU2MjIwXHU5MTY4XHU2MjIzXHU2MjI1XHU2MjI0XHU2M2M1XHU2M2YxXHU2M2ViXHU2NDEwXHU2NDEyXHU2NDA5XHU2NDIwXHU2NDI0Il0sWyJkZGExIiwiXHU2'@; put 'NDMzXHU2NDQzXHU2NDFmXHU2NDE1XHU2NDE4XHU2NDM5XHU2NDM3XHU2NDIyXHU2NDIzXHU2NDBjXHU2NDI2XHU2NDMwXHU2NDI4XHU2NDQxXHU2NDM1XHU2NDJmXHU2NDBhXHU2NDFhXHU2NDQwXHU2NDI1XHU2NDI3XHU2NDBiXHU2M2U3XHU2NDFiXHU2NDJlXHU2NDIxXHU2NDBlXHU2NTZm'@; put 'XHU2NTkyXHU2NWQzXHU2Njg2XHU2NjhjXHU2Njk1XHU2NjkwXHU2NjhiXHU2NjhhXHU2Njk5XHU2Njk0XHU2Njc4XHU2NzIwXHU2OTY2XHU2OTVmXHU2OTM4XHU2OTRlXHU2OTYyXHU2OTcxXHU2OTNmXHU2OTQ1XHU2OTZhXHU2OTM5XHU2OTQyXHU2OTU3XHU2OTU5XHU2OTdhXHU2OTQ4XHU2'@; put 'OTQ5XHU2OTM1XHU2OTZjXHU2OTMzXHU2OTNkXHU2OTY1XHU2OGYwXHU2OTc4XHU2OTM0XHU2OTY5XHU2OTQwXHU2OTZmXHU2OTQ0XHU2OTc2XHU2OTU4XHU2OTQxXHU2OTc0XHU2OTRjXHU2OTNiXHU2OTRiXHU2OTM3XHU2OTVjXHU2OTRmXHU2OTUxXHU2OTMyXHU2OTUyXHU2OTJmXHU2OTdi'@; put 'XHU2OTNjXHU2YjQ2XHU2YjQ1XHU2YjQzXHU2YjQyXHU2YjQ4XHU2YjQxXHU2YjliXHVmYTBkXHU2YmZiXHU2YmZjIl0sWyJkZTQwIiwiXHU2YmY5XHU2YmY3XHU2YmY4XHU2ZTliXHU2ZWQ2XHU2ZWM4XHU2ZThmXHU2ZWMwXHU2ZTlmXHU2ZTkzXHU2ZTk0XHU2ZWEwXHU2ZWIxXHU2ZWI5XHU2'@; put 'ZWM2XHU2ZWQyXHU2ZWJkXHU2ZWMxXHU2ZTllXHU2ZWM5XHU2ZWI3XHU2ZWIwXHU2ZWNkXHU2ZWE2XHU2ZWNmXHU2ZWIyXHU2ZWJlXHU2ZWMzXHU2ZWRjXHU2ZWQ4XHU2ZTk5XHU2ZTkyXHU2ZThlXHU2ZThkXHU2ZWE0XHU2ZWExXHU2ZWJmXHU2ZWIzXHU2ZWQwXHU2ZWNhXHU2ZTk3XHU2ZWFl'@; put 'XHU2ZWEzXHU3MTQ3XHU3MTU0XHU3MTUyXHU3MTYzXHU3MTYwXHU3MTQxXHU3MTVkXHU3MTYyXHU3MTcyXHU3MTc4XHU3MTZhXHU3MTYxXHU3MTQyXHU3MTU4XHU3MTQzXHU3MTRiXHU3MTcwXHU3MTVmXHU3MTUwXHU3MTUzIl0sWyJkZWExIiwiXHU3MTQ0XHU3MTRkXHU3MTVhXHU3MjRmXHU3'@; put 'MjhkXHU3MjhjXHU3MjkxXHU3MjkwXHU3MjhlXHU3MzNjXHU3MzQyXHU3MzNiXHU3MzNhXHU3MzQwXHU3MzRhXHU3MzQ5XHU3NDQ0XHU3NDRhXHU3NDRiXHU3NDUyXHU3NDUxXHU3NDU3XHU3NDQwXHU3NDRmXHU3NDUwXHU3NDRlXHU3NDQyXHU3NDQ2XHU3NDRkXHU3NDU0XHU3NGUxXHU3NGZm'@; put 'XHU3NGZlXHU3NGZkXHU3NTFkXHU3NTc5XHU3NTc3XHU2OTgzXHU3NWVmXHU3NjBmXHU3NjAzXHU3NWY3XHU3NWZlXHU3NWZjXHU3NWY5XHU3NWY4XHU3NjEwXHU3NWZiXHU3NWY2XHU3NWVkXHU3NWY1XHU3NWZkXHU3Njk5XHU3NmI1XHU3NmRkXHU3NzU1XHU3NzVmXHU3NzYwXHU3NzUyXHU3'@; put 'NzU2XHU3NzVhXHU3NzY5XHU3NzY3XHU3NzU0XHU3NzU5XHU3NzZkXHU3N2UwXHU3ODg3XHU3ODlhXHU3ODk0XHU3ODhmXHU3ODg0XHU3ODk1XHU3ODg1XHU3ODg2XHU3OGExXHU3ODgzXHU3ODc5XHU3ODk5XHU3ODgwXHU3ODk2XHU3ODdiXHU3OTdjXHU3OTgyXHU3OTdkXHU3OTc5XHU3YTEx'@; put 'XHU3YTE4XHU3YTE5XHU3YTEyXHU3YTE3XHU3YTE1XHU3YTIyXHU3YTEzIl0sWyJkZjQwIiwiXHU3YTFiXHU3YTEwXHU3YWEzXHU3YWEyXHU3YTllXHU3YWViXHU3YjY2XHU3YjY0XHU3YjZkXHU3Yjc0XHU3YjY5XHU3YjcyXHU3YjY1XHU3YjczXHU3YjcxXHU3YjcwXHU3YjYxXHU3Yjc4XHU3'@; put 'Yjc2XHU3YjYzXHU3Y2IyXHU3Y2I0XHU3Y2FmXHU3ZDg4XHU3ZDg2XHU3ZDgwXHU3ZDhkXHU3ZDdmXHU3ZDg1XHU3ZDdhXHU3ZDhlXHU3ZDdiXHU3ZDgzXHU3ZDdjXHU3ZDhjXHU3ZDk0XHU3ZDg0XHU3ZDdkXHU3ZDkyXHU3ZjZkXHU3ZjZiXHU3ZjY3XHU3ZjY4XHU3ZjZjXHU3ZmE2XHU3ZmE1'@; put 'XHU3ZmE3XHU3ZmRiXHU3ZmRjXHU4MDIxXHU4MTY0XHU4MTYwXHU4MTc3XHU4MTVjXHU4MTY5XHU4MTViXHU4MTYyXHU4MTcyXHU2NzIxXHU4MTVlXHU4MTc2XHU4MTY3XHU4MTZmIl0sWyJkZmExIiwiXHU4MTQ0XHU4MTYxXHU4MjFkXHU4MjQ5XHU4MjQ0XHU4MjQwXHU4MjQyXHU4MjQ1XHU4'@; put 'NGYxXHU4NDNmXHU4NDU2XHU4NDc2XHU4NDc5XHU4NDhmXHU4NDhkXHU4NDY1XHU4NDUxXHU4NDQwXHU4NDg2XHU4NDY3XHU4NDMwXHU4NDRkXHU4NDdkXHU4NDVhXHU4NDU5XHU4NDc0XHU4NDczXHU4NDVkXHU4NTA3XHU4NDVlXHU4NDM3XHU4NDNhXHU4NDM0XHU4NDdhXHU4NDQzXHU4NDc4'@; put 'XHU4NDMyXHU4NDQ1XHU4NDI5XHU4M2Q5XHU4NDRiXHU4NDJmXHU4NDQyXHU4NDJkXHU4NDVmXHU4NDcwXHU4NDM5XHU4NDRlXHU4NDRjXHU4NDUyXHU4NDZmXHU4NGM1XHU4NDhlXHU4NDNiXHU4NDQ3XHU4NDM2XHU4NDMzXHU4NDY4XHU4NDdlXHU4NDQ0XHU4NDJiXHU4NDYwXHU4NDU0XHU4'@; put 'NDZlXHU4NDUwXHU4NzBiXHU4NzA0XHU4NmY3XHU4NzBjXHU4NmZhXHU4NmQ2XHU4NmY1XHU4NzRkXHU4NmY4XHU4NzBlXHU4NzA5XHU4NzAxXHU4NmY2XHU4NzBkXHU4NzA1XHU4OGQ2XHU4OGNiXHU4OGNkXHU4OGNlXHU4OGRlXHU4OGRiXHU4OGRhXHU4OGNjXHU4OGQwXHU4OTg1XHU4OTli'@; put 'XHU4OWRmXHU4OWU1XHU4OWU0Il0sWyJlMDQwIiwiXHU4OWUxXHU4OWUwXHU4OWUyXHU4OWRjXHU4OWU2XHU4YTc2XHU4YTg2XHU4YTdmXHU4YTYxXHU4YTNmXHU4YTc3XHU4YTgyXHU4YTg0XHU4YTc1XHU4YTgzXHU4YTgxXHU4YTc0XHU4YTdhXHU4YzNjXHU4YzRiXHU4YzRhXHU4YzY1XHU4'@; put 'YzY0XHU4YzY2XHU4Yzg2XHU4Yzg0XHU4Yzg1XHU4Y2NjXHU4ZDY4XHU4ZDY5XHU4ZDkxXHU4ZDhjXHU4ZDhlXHU4ZDhmXHU4ZDhkXHU4ZDkzXHU4ZDk0XHU4ZDkwXHU4ZDkyXHU4ZGYwXHU4ZGUwXHU4ZGVjXHU4ZGYxXHU4ZGVlXHU4ZGQwXHU4ZGU5XHU4ZGUzXHU4ZGUyXHU4ZGU3XHU4ZGYy'@; put 'XHU4ZGViXHU4ZGY0XHU4ZjA2XHU4ZWZmXHU4ZjAxXHU4ZjAwXHU4ZjA1XHU4ZjA3XHU4ZjA4XHU4ZjAyXHU4ZjBiXHU5MDUyXHU5MDNmIl0sWyJlMGExIiwiXHU5MDQ0XHU5MDQ5XHU5MDNkXHU5MTEwXHU5MTBkXHU5MTBmXHU5MTExXHU5MTE2XHU5MTE0XHU5MTBiXHU5MTBlXHU5MTZlXHU5'@; put 'MTZmXHU5MjQ4XHU5MjUyXHU5MjMwXHU5MjNhXHU5MjY2XHU5MjMzXHU5MjY1XHU5MjVlXHU5MjgzXHU5MjJlXHU5MjRhXHU5MjQ2XHU5MjZkXHU5MjZjXHU5MjRmXHU5MjYwXHU5MjY3XHU5MjZmXHU5MjM2XHU5MjYxXHU5MjcwXHU5MjMxXHU5MjU0XHU5MjYzXHU5MjUwXHU5MjcyXHU5MjRl'@; put 'XHU5MjUzXHU5MjRjXHU5MjU2XHU5MjMyXHU5NTlmXHU5NTljXHU5NTllXHU5NTliXHU5NjkyXHU5NjkzXHU5NjkxXHU5Njk3XHU5NmNlXHU5NmZhXHU5NmZkXHU5NmY4XHU5NmY1XHU5NzczXHU5Nzc3XHU5Nzc4XHU5NzcyXHU5ODBmXHU5ODBkXHU5ODBlXHU5OGFjXHU5OGY2XHU5OGY5XHU5'@; put 'OWFmXHU5OWIyXHU5OWIwXHU5OWI1XHU5YWFkXHU5YWFiXHU5YjViXHU5Y2VhXHU5Y2VkXHU5Y2U3XHU5ZTgwXHU5ZWZkXHU1MGU2XHU1MGQ0XHU1MGQ3XHU1MGU4XHU1MGYzXHU1MGRiXHU1MGVhXHU1MGRkXHU1MGU0XHU1MGQzXHU1MGVjXHU1MGYwXHU1MGVmXHU1MGUzXHU1MGUwIl0sWyJl'@; put 'MTQwIiwiXHU1MWQ4XHU1MjgwXHU1MjgxXHU1MmU5XHU1MmViXHU1MzMwXHU1M2FjXHU1NjI3XHU1NjE1XHU1NjBjXHU1NjEyXHU1NWZjXHU1NjBmXHU1NjFjXHU1NjAxXHU1NjEzXHU1NjAyXHU1NWZhXHU1NjFkXHU1NjA0XHU1NWZmXHU1NWY5XHU1ODg5XHU1ODdjXHU1ODkwXHU1ODk4XHU1'@; put 'ODg2XHU1ODgxXHU1ODdmXHU1ODc0XHU1ODhiXHU1ODdhXHU1ODg3XHU1ODkxXHU1ODhlXHU1ODc2XHU1ODgyXHU1ODg4XHU1ODdiXHU1ODk0XHU1ODhmXHU1OGZlXHU1OTZiXHU1YWRjXHU1YWVlXHU1YWU1XHU1YWQ1XHU1YWVhXHU1YWRhXHU1YWVkXHU1YWViXHU1YWYzXHU1YWUyXHU1YWUw'@; put 'XHU1YWRiXHU1YWVjXHU1YWRlXHU1YWRkXHU1YWQ5XHU1YWU4XHU1YWRmXHU1Yjc3XHU1YmUwIl0sWyJlMWExIiwiXHU1YmUzXHU1YzYzXHU1ZDgyXHU1ZDgwXHU1ZDdkXHU1ZDg2XHU1ZDdhXHU1ZDgxXHU1ZDc3XHU1ZDhhXHU1ZDg5XHU1ZDg4XHU1ZDdlXHU1ZDdjXHU1ZDhkXHU1ZDc5XHU1'@; put 'ZDdmXHU1ZTU4XHU1ZTU5XHU1ZTUzXHU1ZWQ4XHU1ZWQxXHU1ZWQ3XHU1ZWNlXHU1ZWRjXHU1ZWQ1XHU1ZWQ5XHU1ZWQyXHU1ZWQ0XHU1ZjQ0XHU1ZjQzXHU1ZjZmXHU1ZmI2XHU2MTJjXHU2MTI4XHU2MTQxXHU2MTVlXHU2MTcxXHU2MTczXHU2MTUyXHU2MTUzXHU2MTcyXHU2MTZjXHU2MTgw'@; put 'XHU2MTc0XHU2MTU0XHU2MTdhXHU2MTViXHU2MTY1XHU2MTNiXHU2MTZhXHU2MTYxXHU2MTU2XHU2MjI5XHU2MjI3XHU2MjJiXHU2NDJiXHU2NDRkXHU2NDViXHU2NDVkXHU2NDc0XHU2NDc2XHU2NDcyXHU2NDczXHU2NDdkXHU2NDc1XHU2NDY2XHU2NGE2XHU2NDRlXHU2NDgyXHU2NDVlXHU2'@; put 'NDVjXHU2NDRiXHU2NDUzXHU2NDYwXHU2NDUwXHU2NDdmXHU2NDNmXHU2NDZjXHU2NDZiXHU2NDU5XHU2NDY1XHU2NDc3XHU2NTczXHU2NWEwXHU2NmExXHU2NmEwXHU2NjlmXHU2NzA1XHU2NzA0XHU2NzIyXHU2OWIxXHU2OWI2XHU2OWM5Il0sWyJlMjQwIiwiXHU2OWEwXHU2OWNlXHU2OTk2'@; put 'XHU2OWIwXHU2OWFjXHU2OWJjXHU2OTkxXHU2OTk5XHU2OThlXHU2OWE3XHU2OThkXHU2OWE5XHU2OWJlXHU2OWFmXHU2OWJmXHU2OWM0XHU2OWJkXHU2OWE0XHU2OWQ0XHU2OWI5XHU2OWNhXHU2OTlhXHU2OWNmXHU2OWIzXHU2OTkzXHU2OWFhXHU2OWExXHU2OTllXHU2OWQ5XHU2OTk3XHU2'@; put 'OTkwXHU2OWMyXHU2OWI1XHU2OWE1XHU2OWM2XHU2YjRhXHU2YjRkXHU2YjRiXHU2YjllXHU2YjlmXHU2YmEwXHU2YmMzXHU2YmM0XHU2YmZlXHU2ZWNlXHU2ZWY1XHU2ZWYxXHU2ZjAzXHU2ZjI1XHU2ZWY4XHU2ZjM3XHU2ZWZiXHU2ZjJlXHU2ZjA5XHU2ZjRlXHU2ZjE5XHU2ZjFhXHU2ZjI3'@; put 'XHU2ZjE4XHU2ZjNiXHU2ZjEyXHU2ZWVkXHU2ZjBhIl0sWyJlMmExIiwiXHU2ZjM2XHU2ZjczXHU2ZWY5XHU2ZWVlXHU2ZjJkXHU2ZjQwXHU2ZjMwXHU2ZjNjXHU2ZjM1XHU2ZWViXHU2ZjA3XHU2ZjBlXHU2ZjQzXHU2ZjA1XHU2ZWZkXHU2ZWY2XHU2ZjM5XHU2ZjFjXHU2ZWZjXHU2ZjNhXHU2'@; put 'ZjFmXHU2ZjBkXHU2ZjFlXHU2ZjA4XHU2ZjIxXHU3MTg3XHU3MTkwXHU3MTg5XHU3MTgwXHU3MTg1XHU3MTgyXHU3MThmXHU3MTdiXHU3MTg2XHU3MTgxXHU3MTk3XHU3MjQ0XHU3MjUzXHU3Mjk3XHU3Mjk1XHU3MjkzXHU3MzQzXHU3MzRkXHU3MzUxXHU3MzRjXHU3NDYyXHU3NDczXHU3NDcx'@; put 'XHU3NDc1XHU3NDcyXHU3NDY3XHU3NDZlXHU3NTAwXHU3NTAyXHU3NTAzXHU3NTdkXHU3NTkwXHU3NjE2XHU3NjA4XHU3NjBjXHU3NjE1XHU3NjExXHU3NjBhXHU3NjE0XHU3NmI4XHU3NzgxXHU3NzdjXHU3Nzg1XHU3NzgyXHU3NzZlXHU3NzgwXHU3NzZmXHU3NzdlXHU3NzgzXHU3OGIyXHU3'@; put 'OGFhXHU3OGI0XHU3OGFkXHU3OGE4XHU3ODdlXHU3OGFiXHU3ODllXHU3OGE1XHU3OGEwXHU3OGFjXHU3OGEyXHU3OGE0XHU3OTk4XHU3OThhXHU3OThiXHU3OTk2XHU3OTk1XHU3OTk0XHU3OTkzIl0sWyJlMzQwIiwiXHU3OTk3XHU3OTg4XHU3OTkyXHU3OTkwXHU3YTJiXHU3YTRhXHU3YTMw'@; put 'XHU3YTJmXHU3YTI4XHU3YTI2XHU3YWE4XHU3YWFiXHU3YWFjXHU3YWVlXHU3Yjg4XHU3YjljXHU3YjhhXHU3YjkxXHU3YjkwXHU3Yjk2XHU3YjhkXHU3YjhjXHU3YjliXHU3YjhlXHU3Yjg1XHU3Yjk4XHU1Mjg0XHU3Yjk5XHU3YmE0XHU3YjgyXHU3Y2JiXHU3Y2JmXHU3Y2JjXHU3Y2JhXHU3'@; put 'ZGE3XHU3ZGI3XHU3ZGMyXHU3ZGEzXHU3ZGFhXHU3ZGMxXHU3ZGMwXHU3ZGM1XHU3ZDlkXHU3ZGNlXHU3ZGM0XHU3ZGM2XHU3ZGNiXHU3ZGNjXHU3ZGFmXHU3ZGI5XHU3ZDk2XHU3ZGJjXHU3ZDlmXHU3ZGE2XHU3ZGFlXHU3ZGE5XHU3ZGExXHU3ZGM5XHU3ZjczXHU3ZmUyXHU3ZmUzXHU3ZmU1'@; put 'XHU3ZmRlIl0sWyJlM2ExIiwiXHU4MDI0XHU4MDVkXHU4MDVjXHU4MTg5XHU4MTg2XHU4MTgzXHU4MTg3XHU4MThkXHU4MThjXHU4MThiXHU4MjE1XHU4NDk3XHU4NGE0XHU4NGExXHU4NDlmXHU4NGJhXHU4NGNlXHU4NGMyXHU4NGFjXHU4NGFlXHU4NGFiXHU4NGI5XHU4NGI0XHU4NGMxXHU4'@; put 'NGNkXHU4NGFhXHU4NDlhXHU4NGIxXHU4NGQwXHU4NDlkXHU4NGE3XHU4NGJiXHU4NGEyXHU4NDk0XHU4NGM3XHU4NGNjXHU4NDliXHU4NGE5XHU4NGFmXHU4NGE4XHU4NGQ2XHU4NDk4XHU4NGI2XHU4NGNmXHU4NGEwXHU4NGQ3XHU4NGQ0XHU4NGQyXHU4NGRiXHU4NGIwXHU4NDkxXHU4NjYx'@; put 'XHU4NzMzXHU4NzIzXHU4NzI4XHU4NzZiXHU4NzQwXHU4NzJlXHU4NzFlXHU4NzIxXHU4NzE5XHU4NzFiXHU4NzQzXHU4NzJjXHU4NzQxXHU4NzNlXHU4NzQ2XHU4NzIwXHU4NzMyXHU4NzJhXHU4NzJkXHU4NzNjXHU4NzEyXHU4NzNhXHU4NzMxXHU4NzM1XHU4NzQyXHU4NzI2XHU4NzI3XHU4'@; put 'NzM4XHU4NzI0XHU4NzFhXHU4NzMwXHU4NzExXHU4OGY3XHU4OGU3XHU4OGYxXHU4OGYyXHU4OGZhXHU4OGZlXHU4OGVlXHU4OGZjXHU4OGY2XHU4OGZiIl0sWyJlNDQwIiwiXHU4OGYwXHU4OGVjXHU4OGViXHU4OTlkXHU4OWExXHU4OTlmXHU4OTllXHU4OWU5XHU4OWViXHU4OWU4XHU4YWFi'@; put 'XHU4YTk5XHU4YThiXHU4YTkyXHU4YThmXHU4YTk2XHU4YzNkXHU4YzY4XHU4YzY5XHU4Y2Q1XHU4Y2NmXHU4Y2Q3XHU4ZDk2XHU4ZTA5XHU4ZTAyXHU4ZGZmXHU4ZTBkXHU4ZGZkXHU4ZTBhXHU4ZTAzXHU4ZTA3XHU4ZTA2XHU4ZTA1XHU4ZGZlXHU4ZTAwXHU4ZTA0XHU4ZjEwXHU4ZjExXHU4'@; put 'ZjBlXHU4ZjBkXHU5MTIzXHU5MTFjXHU5MTIwXHU5MTIyXHU5MTFmXHU5MTFkXHU5MTFhXHU5MTI0XHU5MTIxXHU5MTFiXHU5MTdhXHU5MTcyXHU5MTc5XHU5MTczXHU5MmE1XHU5MmE0XHU5Mjc2XHU5MjliXHU5MjdhXHU5MmEwXHU5Mjk0XHU5MmFhXHU5MjhkIl0sWyJlNGExIiwiXHU5MmE2'@; put 'XHU5MjlhXHU5MmFiXHU5Mjc5XHU5Mjk3XHU5MjdmXHU5MmEzXHU5MmVlXHU5MjhlXHU5MjgyXHU5Mjk1XHU5MmEyXHU5MjdkXHU5Mjg4XHU5MmExXHU5MjhhXHU5Mjg2XHU5MjhjXHU5Mjk5XHU5MmE3XHU5MjdlXHU5Mjg3XHU5MmE5XHU5MjlkXHU5MjhiXHU5MjJkXHU5NjllXHU5NmExXHU5'@; put 'NmZmXHU5NzU4XHU5NzdkXHU5NzdhXHU5NzdlXHU5NzgzXHU5NzgwXHU5NzgyXHU5NzdiXHU5Nzg0XHU5NzgxXHU5NzdmXHU5N2NlXHU5N2NkXHU5ODE2XHU5OGFkXHU5OGFlXHU5OTAyXHU5OTAwXHU5OTA3XHU5OTlkXHU5OTljXHU5OWMzXHU5OWI5XHU5OWJiXHU5OWJhXHU5OWMyXHU5OWJk'@; put 'XHU5OWM3XHU5YWIxXHU5YWUzXHU5YWU3XHU5YjNlXHU5YjNmXHU5YjYwXHU5YjYxXHU5YjVmXHU5Y2YxXHU5Y2YyXHU5Y2Y1XHU5ZWE3XHU1MGZmXHU1MTAzXHU1MTMwXHU1MGY4XHU1MTA2XHU1MTA3XHU1MGY2XHU1MGZlXHU1MTBiXHU1MTBjXHU1MGZkXHU1MTBhXHU1MjhiXHU1MjhjXHU1'@; put 'MmYxXHU1MmVmXHU1NjQ4XHU1NjQyXHU1NjRjXHU1NjM1XHU1NjQxXHU1NjRhXHU1NjQ5XHU1NjQ2XHU1NjU4Il0sWyJlNTQwIiwiXHU1NjVhXHU1NjQwXHU1NjMzXHU1NjNkXHU1NjJjXHU1NjNlXHU1NjM4XHU1NjJhXHU1NjNhXHU1NzFhXHU1OGFiXHU1ODlkXHU1OGIxXHU1OGEwXHU1OGEz'@; put 'XHU1OGFmXHU1OGFjXHU1OGE1XHU1OGExXHU1OGZmXHU1YWZmXHU1YWY0XHU1YWZkXHU1YWY3XHU1YWY2XHU1YjAzXHU1YWY4XHU1YjAyXHU1YWY5XHU1YjAxXHU1YjA3XHU1YjA1XHU1YjBmXHU1YzY3XHU1ZDk5XHU1ZDk3XHU1ZDlmXHU1ZDkyXHU1ZGEyXHU1ZDkzXHU1ZDk1XHU1ZGEwXHU1'@; put 'ZDljXHU1ZGExXHU1ZDlhXHU1ZDllXHU1ZTY5XHU1ZTVkXHU1ZTYwXHU1ZTVjXHU3ZGYzXHU1ZWRiXHU1ZWRlXHU1ZWUxXHU1ZjQ5XHU1ZmIyXHU2MThiXHU2MTgzXHU2MTc5XHU2MWIxXHU2MWIwXHU2MWEyXHU2MTg5Il0sWyJlNWExIiwiXHU2MTliXHU2MTkzXHU2MWFmXHU2MWFkXHU2MTlm'@; put 'XHU2MTkyXHU2MWFhXHU2MWExXHU2MThkXHU2MTY2XHU2MWIzXHU2MjJkXHU2NDZlXHU2NDcwXHU2NDk2XHU2NGEwXHU2NDg1XHU2NDk3XHU2NDljXHU2NDhmXHU2NDhiXHU2NDhhXHU2NDhjXHU2NGEzXHU2NDlmXHU2NDY4XHU2NGIxXHU2NDk4XHU2NTc2XHU2NTdhXHU2NTc5XHU2NTdiXHU2'@; put 'NWIyXHU2NWIzXHU2NmI1XHU2NmIwXHU2NmE5XHU2NmIyXHU2NmI3XHU2NmFhXHU2NmFmXHU2YTAwXHU2YTA2XHU2YTE3XHU2OWU1XHU2OWY4XHU2YTE1XHU2OWYxXHU2OWU0XHU2YTIwXHU2OWZmXHU2OWVjXHU2OWUyXHU2YTFiXHU2YTFkXHU2OWZlXHU2YTI3XHU2OWYyXHU2OWVlXHU2YTE0'@; put 'XHU2OWY3XHU2OWU3XHU2YTQwXHU2YTA4XHU2OWU2XHU2OWZiXHU2YTBkXHU2OWZjXHU2OWViXHU2YTA5XHU2YTA0XHU2YTE4XHU2YTI1XHU2YTBmXHU2OWY2XHU2YTI2XHU2YTA3XHU2OWY0XHU2YTE2XHU2YjUxXHU2YmE1XHU2YmEzXHU2YmEyXHU2YmE2XHU2YzAxXHU2YzAwXHU2YmZmXHU2'@; put 'YzAyXHU2ZjQxXHU2ZjI2XHU2ZjdlXHU2Zjg3XHU2ZmM2XHU2ZjkyIl0sWyJlNjQwIiwiXHU2ZjhkXHU2Zjg5XHU2ZjhjXHU2ZjYyXHU2ZjRmXHU2Zjg1XHU2ZjVhXHU2Zjk2XHU2Zjc2XHU2ZjZjXHU2ZjgyXHU2ZjU1XHU2ZjcyXHU2ZjUyXHU2ZjUwXHU2ZjU3XHU2Zjk0XHU2ZjkzXHU2ZjVk'@; put 'XHU2ZjAwXHU2ZjYxXHU2ZjZiXHU2ZjdkXHU2ZjY3XHU2ZjkwXHU2ZjUzXHU2ZjhiXHU2ZjY5XHU2ZjdmXHU2Zjk1XHU2ZjYzXHU2Zjc3XHU2ZjZhXHU2ZjdiXHU3MWIyXHU3MWFmXHU3MTliXHU3MWIwXHU3MWEwXHU3MTlhXHU3MWE5XHU3MWI1XHU3MTlkXHU3MWE1XHU3MTllXHU3MWE0XHU3'@; put 'MWExXHU3MWFhXHU3MTljXHU3MWE3XHU3MWIzXHU3Mjk4XHU3MjlhXHU3MzU4XHU3MzUyXHU3MzVlXHU3MzVmXHU3MzYwXHU3MzVkXHU3MzViXHU3MzYxXHU3MzVhXHU3MzU5Il0sWyJlNmExIiwiXHU3MzYyXHU3NDg3XHU3NDg5XHU3NDhhXHU3NDg2XHU3NDgxXHU3NDdkXHU3NDg1XHU3NDg4'@; put 'XHU3NDdjXHU3NDc5XHU3NTA4XHU3NTA3XHU3NTdlXHU3NjI1XHU3NjFlXHU3NjE5XHU3NjFkXHU3NjFjXHU3NjIzXHU3NjFhXHU3NjI4XHU3NjFiXHU3NjljXHU3NjlkXHU3NjllXHU3NjliXHU3NzhkXHU3NzhmXHU3Nzg5XHU3Nzg4XHU3OGNkXHU3OGJiXHU3OGNmXHU3OGNjXHU3OGQxXHU3'@; put 'OGNlXHU3OGQ0XHU3OGM4XHU3OGMzXHU3OGM0XHU3OGM5XHU3OTlhXHU3OWExXHU3OWEwXHU3OTljXHU3OWEyXHU3OTliXHU2Yjc2XHU3YTM5XHU3YWIyXHU3YWI0XHU3YWIzXHU3YmI3XHU3YmNiXHU3YmJlXHU3YmFjXHU3YmNlXHU3YmFmXHU3YmI5XHU3YmNhXHU3YmI1XHU3Y2M1XHU3Y2M4'@; put 'XHU3Y2NjXHU3Y2NiXHU3ZGY3XHU3ZGRiXHU3ZGVhXHU3ZGU3XHU3ZGQ3XHU3ZGUxXHU3ZTAzXHU3ZGZhXHU3ZGU2XHU3ZGY2XHU3ZGYxXHU3ZGYwXHU3ZGVlXHU3ZGRmXHU3Zjc2XHU3ZmFjXHU3ZmIwXHU3ZmFkXHU3ZmVkXHU3ZmViXHU3ZmVhXHU3ZmVjXHU3ZmU2XHU3ZmU4XHU4MDY0XHU4'@; put 'MDY3XHU4MWEzXHU4MTlmIl0sWyJlNzQwIiwiXHU4MTllXHU4MTk1XHU4MWEyXHU4MTk5XHU4MTk3XHU4MjE2XHU4MjRmXHU4MjUzXHU4MjUyXHU4MjUwXHU4MjRlXHU4MjUxXHU4NTI0XHU4NTNiXHU4NTBmXHU4NTAwXHU4NTI5XHU4NTBlXHU4NTA5XHU4NTBkXHU4NTFmXHU4NTBhXHU4NTI3'@; put 'XHU4NTFjXHU4NGZiXHU4NTJiXHU4NGZhXHU4NTA4XHU4NTBjXHU4NGY0XHU4NTJhXHU4NGYyXHU4NTE1XHU4NGY3XHU4NGViXHU4NGYzXHU4NGZjXHU4NTEyXHU4NGVhXHU4NGU5XHU4NTE2XHU4NGZlXHU4NTI4XHU4NTFkXHU4NTJlXHU4NTAyXHU4NGZkXHU4NTFlXHU4NGY2XHU4NTMxXHU4'@; put 'NTI2XHU4NGU3XHU4NGU4XHU4NGYwXHU4NGVmXHU4NGY5XHU4NTE4XHU4NTIwXHU4NTMwXHU4NTBiXHU4NTE5XHU4NTJmXHU4NjYyIl0sWyJlN2ExIiwiXHU4NzU2XHU4NzYzXHU4NzY0XHU4Nzc3XHU4N2UxXHU4NzczXHU4NzU4XHU4NzU0XHU4NzViXHU4NzUyXHU4NzYxXHU4NzVhXHU4NzUx'@; put 'XHU4NzVlXHU4NzZkXHU4NzZhXHU4NzUwXHU4NzRlXHU4NzVmXHU4NzVkXHU4NzZmXHU4NzZjXHU4NzdhXHU4NzZlXHU4NzVjXHU4NzY1XHU4NzRmXHU4NzdiXHU4Nzc1XHU4NzYyXHU4NzY3XHU4NzY5XHU4ODVhXHU4OTA1XHU4OTBjXHU4OTE0XHU4OTBiXHU4OTE3XHU4OTE4XHU4OTE5XHU4'@; put 'OTA2XHU4OTE2XHU4OTExXHU4OTBlXHU4OTA5XHU4OWEyXHU4OWE0XHU4OWEzXHU4OWVkXHU4OWYwXHU4OWVjXHU4YWNmXHU4YWM2XHU4YWI4XHU4YWQzXHU4YWQxXHU4YWQ0XHU4YWQ1XHU4YWJiXHU4YWQ3XHU4YWJlXHU4YWMwXHU4YWM1XHU4YWQ4XHU4YWMzXHU4YWJhXHU4YWJkXHU4YWQ5'@; put 'XHU4YzNlXHU4YzRkXHU4YzhmXHU4Y2U1XHU4Y2RmXHU4Y2Q5XHU4Y2U4XHU4Y2RhXHU4Y2RkXHU4Y2U3XHU4ZGEwXHU4ZDljXHU4ZGExXHU4ZDliXHU4ZTIwXHU4ZTIzXHU4ZTI1XHU4ZTI0XHU4ZTJlXHU4ZTE1XHU4ZTFiXHU4ZTE2XHU4ZTExXHU4ZTE5XHU4ZTI2XHU4ZTI3Il0sWyJlODQw'@; put 'IiwiXHU4ZTE0XHU4ZTEyXHU4ZTE4XHU4ZTEzXHU4ZTFjXHU4ZTE3XHU4ZTFhXHU4ZjJjXHU4ZjI0XHU4ZjE4XHU4ZjFhXHU4ZjIwXHU4ZjIzXHU4ZjE2XHU4ZjE3XHU5MDczXHU5MDcwXHU5MDZmXHU5MDY3XHU5MDZiXHU5MTJmXHU5MTJiXHU5MTI5XHU5MTJhXHU5MTMyXHU5MTI2XHU5MTJl'@; put 'XHU5MTg1XHU5MTg2XHU5MThhXHU5MTgxXHU5MTgyXHU5MTg0XHU5MTgwXHU5MmQwXHU5MmMzXHU5MmM0XHU5MmMwXHU5MmQ5XHU5MmI2XHU5MmNmXHU5MmYxXHU5MmRmXHU5MmQ4XHU5MmU5XHU5MmQ3XHU5MmRkXHU5MmNjXHU5MmVmXHU5MmMyXHU5MmU4XHU5MmNhXHU5MmM4XHU5MmNlXHU5'@; put 'MmU2XHU5MmNkXHU5MmQ1XHU5MmM5XHU5MmUwXHU5MmRlXHU5MmU3XHU5MmQxXHU5MmQzIl0sWyJlOGExIiwiXHU5MmI1XHU5MmUxXHU5MmM2XHU5MmI0XHU5NTdjXHU5NWFjXHU5NWFiXHU5NWFlXHU5NWIwXHU5NmE0XHU5NmEyXHU5NmQzXHU5NzA1XHU5NzA4XHU5NzAyXHU5NzVhXHU5Nzhh'@; put 'XHU5NzhlXHU5Nzg4XHU5N2QwXHU5N2NmXHU5ODFlXHU5ODFkXHU5ODI2XHU5ODI5XHU5ODI4XHU5ODIwXHU5ODFiXHU5ODI3XHU5OGIyXHU5OTA4XHU5OGZhXHU5OTExXHU5OTE0XHU5OTE2XHU5OTE3XHU5OTE1XHU5OWRjXHU5OWNkXHU5OWNmXHU5OWQzXHU5OWQ0XHU5OWNlXHU5OWM5XHU5'@; put 'OWQ2XHU5OWQ4XHU5OWNiXHU5OWQ3XHU5OWNjXHU5YWIzXHU5YWVjXHU5YWViXHU5YWYzXHU5YWYyXHU5YWYxXHU5YjQ2XHU5YjQzXHU5YjY3XHU5Yjc0XHU5YjcxXHU5YjY2XHU5Yjc2XHU5Yjc1XHU5YjcwXHU5YjY4XHU5YjY0XHU5YjZjXHU5Y2ZjXHU5Y2ZhXHU5Y2ZkXHU5Y2ZmXHU5Y2Y3'@; put 'XHU5ZDA3XHU5ZDAwXHU5Y2Y5XHU5Y2ZiXHU5ZDA4XHU5ZDA1XHU5ZDA0XHU5ZTgzXHU5ZWQzXHU5ZjBmXHU5ZjEwXHU1MTFjXHU1MTEzXHU1MTE3XHU1MTFhXHU1MTExXHU1MWRlXHU1MzM0XHU1M2UxXHU1NjcwXHU1NjYwXHU1NjZlIl0sWyJlOTQwIiwiXHU1NjczXHU1NjY2XHU1NjYzXHU1'@; put 'NjZkXHU1NjcyXHU1NjVlXHU1Njc3XHU1NzFjXHU1NzFiXHU1OGM4XHU1OGJkXHU1OGM5XHU1OGJmXHU1OGJhXHU1OGMyXHU1OGJjXHU1OGM2XHU1YjE3XHU1YjE5XHU1YjFiXHU1YjIxXHU1YjE0XHU1YjEzXHU1YjEwXHU1YjE2XHU1YjI4XHU1YjFhXHU1YjIwXHU1YjFlXHU1YmVmXHU1ZGFj'@; put 'XHU1ZGIxXHU1ZGE5XHU1ZGE3XHU1ZGI1XHU1ZGIwXHU1ZGFlXHU1ZGFhXHU1ZGE4XHU1ZGIyXHU1ZGFkXHU1ZGFmXHU1ZGI0XHU1ZTY3XHU1ZTY4XHU1ZTY2XHU1ZTZmXHU1ZWU5XHU1ZWU3XHU1ZWU2XHU1ZWU4XHU1ZWU1XHU1ZjRiXHU1ZmJjXHU2MTlkXHU2MWE4XHU2MTk2XHU2MWM1XHU2'@; put 'MWI0XHU2MWM2XHU2MWMxXHU2MWNjXHU2MWJhIl0sWyJlOWExIiwiXHU2MWJmXHU2MWI4XHU2MThjXHU2NGQ3XHU2NGQ2XHU2NGQwXHU2NGNmXHU2NGM5XHU2NGJkXHU2NDg5XHU2NGMzXHU2NGRiXHU2NGYzXHU2NGQ5XHU2NTMzXHU2NTdmXHU2NTdjXHU2NWEyXHU2NmM4XHU2NmJlXHU2NmMw'@; put 'XHU2NmNhXHU2NmNiXHU2NmNmXHU2NmJkXHU2NmJiXHU2NmJhXHU2NmNjXHU2NzIzXHU2YTM0XHU2YTY2XHU2YTQ5XHU2YTY3XHU2YTMyXHU2YTY4XHU2YTNlXHU2YTVkXHU2YTZkXHU2YTc2XHU2YTViXHU2YTUxXHU2YTI4XHU2YTVhXHU2YTNiXHU2YTNmXHU2YTQxXHU2YTZhXHU2YTY0XHU2'@; put 'YTUwXHU2YTRmXHU2YTU0XHU2YTZmXHU2YTY5XHU2YTYwXHU2YTNjXHU2YTVlXHU2YTU2XHU2YTU1XHU2YTRkXHU2YTRlXHU2YTQ2XHU2YjU1XHU2YjU0XHU2YjU2XHU2YmE3XHU2YmFhXHU2YmFiXHU2YmM4XHU2YmM3XHU2YzA0XHU2YzAzXHU2YzA2XHU2ZmFkXHU2ZmNiXHU2ZmEzXHU2ZmM3'@; put 'XHU2ZmJjXHU2ZmNlXHU2ZmM4XHU2ZjVlXHU2ZmM0XHU2ZmJkXHU2ZjllXHU2ZmNhXHU2ZmE4XHU3MDA0XHU2ZmE1XHU2ZmFlXHU2ZmJhXHU2ZmFjXHU2ZmFhXHU2ZmNmXHU2ZmJmXHU2ZmI4Il0sWyJlYTQwIiwiXHU2ZmEyXHU2ZmM5XHU2ZmFiXHU2ZmNkXHU2ZmFmXHU2ZmIyXHU2ZmIwXHU3'@; put 'MWM1XHU3MWMyXHU3MWJmXHU3MWI4XHU3MWQ2XHU3MWMwXHU3MWMxXHU3MWNiXHU3MWQ0XHU3MWNhXHU3MWM3XHU3MWNmXHU3MWJkXHU3MWQ4XHU3MWJjXHU3MWM2XHU3MWRhXHU3MWRiXHU3MjlkXHU3MjllXHU3MzY5XHU3MzY2XHU3MzY3XHU3MzZjXHU3MzY1XHU3MzZiXHU3MzZhXHU3NDdm'@; put 'XHU3NDlhXHU3NGEwXHU3NDk0XHU3NDkyXHU3NDk1XHU3NGExXHU3NTBiXHU3NTgwXHU3NjJmXHU3NjJkXHU3NjMxXHU3NjNkXHU3NjMzXHU3NjNjXHU3NjM1XHU3NjMyXHU3NjMwXHU3NmJiXHU3NmU2XHU3NzlhXHU3NzlkXHU3N2ExXHU3NzljXHU3NzliXHU3N2EyXHU3N2EzXHU3Nzk1XHU3'@; put 'Nzk5Il0sWyJlYWExIiwiXHU3Nzk3XHU3OGRkXHU3OGU5XHU3OGU1XHU3OGVhXHU3OGRlXHU3OGUzXHU3OGRiXHU3OGUxXHU3OGUyXHU3OGVkXHU3OGRmXHU3OGUwXHU3OWE0XHU3YTQ0XHU3YTQ4XHU3YTQ3XHU3YWI2XHU3YWI4XHU3YWI1XHU3YWIxXHU3YWI3XHU3YmRlXHU3YmUzXHU3YmU3'@; put 'XHU3YmRkXHU3YmQ1XHU3YmU1XHU3YmRhXHU3YmU4XHU3YmY5XHU3YmQ0XHU3YmVhXHU3YmUyXHU3YmRjXHU3YmViXHU3YmQ4XHU3YmRmXHU3Y2QyXHU3Y2Q0XHU3Y2Q3XHU3Y2QwXHU3Y2QxXHU3ZTEyXHU3ZTIxXHU3ZTE3XHU3ZTBjXHU3ZTFmXHU3ZTIwXHU3ZTEzXHU3ZTBlXHU3ZTFjXHU3'@; put 'ZTE1XHU3ZTFhXHU3ZTIyXHU3ZTBiXHU3ZTBmXHU3ZTE2XHU3ZTBkXHU3ZTE0XHU3ZTI1XHU3ZTI0XHU3ZjQzXHU3ZjdiXHU3ZjdjXHU3ZjdhXHU3ZmIxXHU3ZmVmXHU4MDJhXHU4MDI5XHU4MDZjXHU4MWIxXHU4MWE2XHU4MWFlXHU4MWI5XHU4MWI1XHU4MWFiXHU4MWIwXHU4MWFjXHU4MWI0'@; put 'XHU4MWIyXHU4MWI3XHU4MWE3XHU4MWYyXHU4MjU1XHU4MjU2XHU4MjU3XHU4NTU2XHU4NTQ1XHU4NTZiXHU4NTRkXHU4NTUzXHU4NTYxXHU4NTU4Il0sWyJlYjQwIiwiXHU4NTQwXHU4NTQ2XHU4NTY0XHU4NTQxXHU4NTYyXHU4NTQ0XHU4NTUxXHU4NTQ3XHU4NTYzXHU4NTNlXHU4NTViXHU4'@; put 'NTcxXHU4NTRlXHU4NTZlXHU4NTc1XHU4NTU1XHU4NTY3XHU4NTYwXHU4NThjXHU4NTY2XHU4NTVkXHU4NTU0XHU4NTY1XHU4NTZjXHU4NjYzXHU4NjY1XHU4NjY0XHU4NzliXHU4NzhmXHU4Nzk3XHU4NzkzXHU4NzkyXHU4Nzg4XHU4NzgxXHU4Nzk2XHU4Nzk4XHU4Nzc5XHU4Nzg3XHU4N2Ez'@; put 'XHU4Nzg1XHU4NzkwXHU4NzkxXHU4NzlkXHU4Nzg0XHU4Nzk0XHU4NzljXHU4NzlhXHU4Nzg5XHU4OTFlXHU4OTI2XHU4OTMwXHU4OTJkXHU4OTJlXHU4OTI3XHU4OTMxXHU4OTIyXHU4OTI5XHU4OTIzXHU4OTJmXHU4OTJjXHU4OTFmXHU4OWYxXHU4YWUwIl0sWyJlYmExIiwiXHU4YWUyXHU4'@; put 'YWYyXHU4YWY0XHU4YWY1XHU4YWRkXHU4YjE0XHU4YWU0XHU4YWRmXHU4YWYwXHU4YWM4XHU4YWRlXHU4YWUxXHU4YWU4XHU4YWZmXHU4YWVmXHU4YWZiXHU4YzkxXHU4YzkyXHU4YzkwXHU4Y2Y1XHU4Y2VlXHU4Y2YxXHU4Y2YwXHU4Y2YzXHU4ZDZjXHU4ZDZlXHU4ZGE1XHU4ZGE3XHU4ZTMz'@; put 'XHU4ZTNlXHU4ZTM4XHU4ZTQwXHU4ZTQ1XHU4ZTM2XHU4ZTNjXHU4ZTNkXHU4ZTQxXHU4ZTMwXHU4ZTNmXHU4ZWJkXHU4ZjM2XHU4ZjJlXHU4ZjM1XHU4ZjMyXHU4ZjM5XHU4ZjM3XHU4ZjM0XHU5MDc2XHU5MDc5XHU5MDdiXHU5MDg2XHU5MGZhXHU5MTMzXHU5MTM1XHU5MTM2XHU5MTkzXHU5'@; put 'MTkwXHU5MTkxXHU5MThkXHU5MThmXHU5MzI3XHU5MzFlXHU5MzA4XHU5MzFmXHU5MzA2XHU5MzBmXHU5MzdhXHU5MzM4XHU5MzNjXHU5MzFiXHU5MzIzXHU5MzEyXHU5MzAxXHU5MzQ2XHU5MzJkXHU5MzBlXHU5MzBkXHU5MmNiXHU5MzFkXHU5MmZhXHU5MzI1XHU5MzEzXHU5MmY5XHU5MmY3'@; put 'XHU5MzM0XHU5MzAyXHU5MzI0XHU5MmZmXHU5MzI5XHU5MzM5XHU5MzM1XHU5MzJhXHU5MzE0XHU5MzBjIl0sWyJlYzQwIiwiXHU5MzBiXHU5MmZlXHU5MzA5XHU5MzAwXHU5MmZiXHU5MzE2XHU5NWJjXHU5NWNkXHU5NWJlXHU5NWI5XHU5NWJhXHU5NWI2XHU5NWJmXHU5NWI1XHU5NWJkXHU5'@; put 'NmE5XHU5NmQ0XHU5NzBiXHU5NzEyXHU5NzEwXHU5Nzk5XHU5Nzk3XHU5Nzk0XHU5N2YwXHU5N2Y4XHU5ODM1XHU5ODJmXHU5ODMyXHU5OTI0XHU5OTFmXHU5OTI3XHU5OTI5XHU5OTllXHU5OWVlXHU5OWVjXHU5OWU1XHU5OWU0XHU5OWYwXHU5OWUzXHU5OWVhXHU5OWU5XHU5OWU3XHU5YWI5'@; put 'XHU5YWJmXHU5YWI0XHU5YWJiXHU5YWY2XHU5YWZhXHU5YWY5XHU5YWY3XHU5YjMzXHU5YjgwXHU5Yjg1XHU5Yjg3XHU5YjdjXHU5YjdlXHU5YjdiXHU5YjgyXHU5YjkzXHU5YjkyXHU5YjkwXHU5YjdhXHU5Yjk1Il0sWyJlY2ExIiwiXHU5YjdkXHU5Yjg4XHU5ZDI1XHU5ZDE3XHU5ZDIwXHU5'@; put 'ZDFlXHU5ZDE0XHU5ZDI5XHU5ZDFkXHU5ZDE4XHU5ZDIyXHU5ZDEwXHU5ZDE5XHU5ZDFmXHU5ZTg4XHU5ZTg2XHU5ZTg3XHU5ZWFlXHU5ZWFkXHU5ZWQ1XHU5ZWQ2XHU5ZWZhXHU5ZjEyXHU5ZjNkXHU1MTI2XHU1MTI1XHU1MTIyXHU1MTI0XHU1MTIwXHU1MTI5XHU1MmY0XHU1NjkzXHU1Njhj'@; put 'XHU1NjhkXHU1Njg2XHU1Njg0XHU1NjgzXHU1NjdlXHU1NjgyXHU1NjdmXHU1NjgxXHU1OGQ2XHU1OGQ0XHU1OGNmXHU1OGQyXHU1YjJkXHU1YjI1XHU1YjMyXHU1YjIzXHU1YjJjXHU1YjI3XHU1YjI2XHU1YjJmXHU1YjJlXHU1YjdiXHU1YmYxXHU1YmYyXHU1ZGI3XHU1ZTZjXHU1ZTZhXHU1'@; put 'ZmJlXHU1ZmJiXHU2MWMzXHU2MWI1XHU2MWJjXHU2MWU3XHU2MWUwXHU2MWU1XHU2MWU0XHU2MWU4XHU2MWRlXHU2NGVmXHU2NGU5XHU2NGUzXHU2NGViXHU2NGU0XHU2NGU4XHU2NTgxXHU2NTgwXHU2NWI2XHU2NWRhXHU2NmQyXHU2YThkXHU2YTk2XHU2YTgxXHU2YWE1XHU2YTg5XHU2YTlm'@; put 'XHU2YTliXHU2YWExXHU2YTllXHU2YTg3XHU2YTkzXHU2YThlIl0sWyJlZDQwIiwiXHU2YTk1XHU2YTgzXHU2YWE4XHU2YWE0XHU2YTkxXHU2YTdmXHU2YWE2XHU2YTlhXHU2YTg1XHU2YThjXHU2YTkyXHU2YjViXHU2YmFkXHU2YzA5XHU2ZmNjXHU2ZmE5XHU2ZmY0XHU2ZmQ0XHU2ZmUzXHU2'@; put 'ZmRjXHU2ZmVkXHU2ZmU3XHU2ZmU2XHU2ZmRlXHU2ZmYyXHU2ZmRkXHU2ZmUyXHU2ZmU4XHU3MWUxXHU3MWYxXHU3MWU4XHU3MWYyXHU3MWU0XHU3MWYwXHU3MWUyXHU3MzczXHU3MzZlXHU3MzZmXHU3NDk3XHU3NGIyXHU3NGFiXHU3NDkwXHU3NGFhXHU3NGFkXHU3NGIxXHU3NGE1XHU3NGFm'@; put 'XHU3NTEwXHU3NTExXHU3NTEyXHU3NTBmXHU3NTg0XHU3NjQzXHU3NjQ4XHU3NjQ5XHU3NjQ3XHU3NmE0XHU3NmU5XHU3N2I1XHU3N2FiXHU3N2IyXHU3N2I3XHU3N2I2Il0sWyJlZGExIiwiXHU3N2I0XHU3N2IxXHU3N2E4XHU3N2YwXHU3OGYzXHU3OGZkXHU3OTAyXHU3OGZiXHU3OGZjXHU3'@; put 'OGYyXHU3OTA1XHU3OGY5XHU3OGZlXHU3OTA0XHU3OWFiXHU3OWE4XHU3YTVjXHU3YTViXHU3YTU2XHU3YTU4XHU3YTU0XHU3YTVhXHU3YWJlXHU3YWMwXHU3YWMxXHU3YzA1XHU3YzBmXHU3YmYyXHU3YzAwXHU3YmZmXHU3YmZiXHU3YzBlXHU3YmY0XHU3YzBiXHU3YmYzXHU3YzAyXHU3YzA5'@; put 'XHU3YzAzXHU3YzAxXHU3YmY4XHU3YmZkXHU3YzA2XHU3YmYwXHU3YmYxXHU3YzEwXHU3YzBhXHU3Y2U4XHU3ZTJkXHU3ZTNjXHU3ZTQyXHU3ZTMzXHU5ODQ4XHU3ZTM4XHU3ZTJhXHU3ZTQ5XHU3ZTQwXHU3ZTQ3XHU3ZTI5XHU3ZTRjXHU3ZTMwXHU3ZTNiXHU3ZTM2XHU3ZTQ0XHU3ZTNhXHU3'@; put 'ZjQ1XHU3ZjdmXHU3ZjdlXHU3ZjdkXHU3ZmY0XHU3ZmYyXHU4MDJjXHU4MWJiXHU4MWM0XHU4MWNjXHU4MWNhXHU4MWM1XHU4MWM3XHU4MWJjXHU4MWU5XHU4MjViXHU4MjVhXHU4MjVjXHU4NTgzXHU4NTgwXHU4NThmXHU4NWE3XHU4NTk1XHU4NWEwXHU4NThiXHU4NWEzXHU4NTdiXHU4NWE0'@; put 'XHU4NTlhXHU4NTllIl0sWyJlZTQwIiwiXHU4NTc3XHU4NTdjXHU4NTg5XHU4NWExXHU4NTdhXHU4NTc4XHU4NTU3XHU4NThlXHU4NTk2XHU4NTg2XHU4NThkXHU4NTk5XHU4NTlkXHU4NTgxXHU4NWEyXHU4NTgyXHU4NTg4XHU4NTg1XHU4NTc5XHU4NTc2XHU4NTk4XHU4NTkwXHU4NTlmXHU4'@; put 'NjY4XHU4N2JlXHU4N2FhXHU4N2FkXHU4N2M1XHU4N2IwXHU4N2FjXHU4N2I5XHU4N2I1XHU4N2JjXHU4N2FlXHU4N2M5XHU4N2MzXHU4N2MyXHU4N2NjXHU4N2I3XHU4N2FmXHU4N2M0XHU4N2NhXHU4N2I0XHU4N2I2XHU4N2JmXHU4N2I4XHU4N2JkXHU4N2RlXHU4N2IyXHU4OTM1XHU4OTMz'@; put 'XHU4OTNjXHU4OTNlXHU4OTQxXHU4OTUyXHU4OTM3XHU4OTQyXHU4OWFkXHU4OWFmXHU4OWFlXHU4OWYyXHU4OWYzXHU4YjFlIl0sWyJlZWExIiwiXHU4YjE4XHU4YjE2XHU4YjExXHU4YjA1XHU4YjBiXHU4YjIyXHU4YjBmXHU4YjEyXHU4YjE1XHU4YjA3XHU4YjBkXHU4YjA4XHU4YjA2XHU4'@; put 'YjFjXHU4YjEzXHU4YjFhXHU4YzRmXHU4YzcwXHU4YzcyXHU4YzcxXHU4YzZmXHU4Yzk1XHU4Yzk0XHU4Y2Y5XHU4ZDZmXHU4ZTRlXHU4ZTRkXHU4ZTUzXHU4ZTUwXHU4ZTRjXHU4ZTQ3XHU4ZjQzXHU4ZjQwXHU5MDg1XHU5MDdlXHU5MTM4XHU5MTlhXHU5MWEyXHU5MTliXHU5MTk5XHU5MTlm'@; put 'XHU5MWExXHU5MTlkXHU5MWEwXHU5M2ExXHU5MzgzXHU5M2FmXHU5MzY0XHU5MzU2XHU5MzQ3XHU5MzdjXHU5MzU4XHU5MzVjXHU5Mzc2XHU5MzQ5XHU5MzUwXHU5MzUxXHU5MzYwXHU5MzZkXHU5MzhmXHU5MzRjXHU5MzZhXHU5Mzc5XHU5MzU3XHU5MzU1XHU5MzUyXHU5MzRmXHU5MzcxXHU5'@; put 'Mzc3XHU5MzdiXHU5MzYxXHU5MzVlXHU5MzYzXHU5MzY3XHU5MzgwXHU5MzRlXHU5MzU5XHU5NWM3XHU5NWMwXHU5NWM5XHU5NWMzXHU5NWM1XHU5NWI3XHU5NmFlXHU5NmIwXHU5NmFjXHU5NzIwXHU5NzFmXHU5NzE4XHU5NzFkXHU5NzE5XHU5NzlhXHU5N2ExXHU5NzljIl0sWyJlZjQwIiwi'@; put 'XHU5NzllXHU5NzlkXHU5N2Q1XHU5N2Q0XHU5N2YxXHU5ODQxXHU5ODQ0XHU5ODRhXHU5ODQ5XHU5ODQ1XHU5ODQzXHU5OTI1XHU5OTJiXHU5OTJjXHU5OTJhXHU5OTMzXHU5OTMyXHU5OTJmXHU5OTJkXHU5OTMxXHU5OTMwXHU5OTk4XHU5OWEzXHU5OWExXHU5YTAyXHU5OWZhXHU5OWY0XHU5'@; put 'OWY3XHU5OWY5XHU5OWY4XHU5OWY2XHU5OWZiXHU5OWZkXHU5OWZlXHU5OWZjXHU5YTAzXHU5YWJlXHU5YWZlXHU5YWZkXHU5YjAxXHU5YWZjXHU5YjQ4XHU5YjlhXHU5YmE4XHU5YjllXHU5YjliXHU5YmE2XHU5YmExXHU5YmE1XHU5YmE0XHU5Yjg2XHU5YmEyXHU5YmEwXHU5YmFmXHU5ZDMz'@; put 'XHU5ZDQxXHU5ZDY3XHU5ZDM2XHU5ZDJlXHU5ZDJmXHU5ZDMxXHU5ZDM4XHU5ZDMwIl0sWyJlZmExIiwiXHU5ZDQ1XHU5ZDQyXHU5ZDQzXHU5ZDNlXHU5ZDM3XHU5ZDQwXHU5ZDNkXHU3ZmY1XHU5ZDJkXHU5ZThhXHU5ZTg5XHU5ZThkXHU5ZWIwXHU5ZWM4XHU5ZWRhXHU5ZWZiXHU5ZWZmXHU5'@; put 'ZjI0XHU5ZjIzXHU5ZjIyXHU5ZjU0XHU5ZmEwXHU1MTMxXHU1MTJkXHU1MTJlXHU1Njk4XHU1NjljXHU1Njk3XHU1NjlhXHU1NjlkXHU1Njk5XHU1OTcwXHU1YjNjXHU1YzY5XHU1YzZhXHU1ZGMwXHU1ZTZkXHU1ZTZlXHU2MWQ4XHU2MWRmXHU2MWVkXHU2MWVlXHU2MWYxXHU2MWVhXHU2MWYw'@; put 'XHU2MWViXHU2MWQ2XHU2MWU5XHU2NGZmXHU2NTA0XHU2NGZkXHU2NGY4XHU2NTAxXHU2NTAzXHU2NGZjXHU2NTk0XHU2NWRiXHU2NmRhXHU2NmRiXHU2NmQ4XHU2YWM1XHU2YWI5XHU2YWJkXHU2YWUxXHU2YWM2XHU2YWJhXHU2YWI2XHU2YWI3XHU2YWM3XHU2YWI0XHU2YWFkXHU2YjVlXHU2'@; put 'YmM5XHU2YzBiXHU3MDA3XHU3MDBjXHU3MDBkXHU3MDAxXHU3MDA1XHU3MDE0XHU3MDBlXHU2ZmZmXHU3MDAwXHU2ZmZiXHU3MDI2XHU2ZmZjXHU2ZmY3XHU3MDBhXHU3MjAxXHU3MWZmXHU3MWY5XHU3MjAzXHU3MWZkXHU3Mzc2Il0sWyJmMDQwIiwiXHU3NGI4XHU3NGMwXHU3NGI1XHU3NGMx'@; put 'XHU3NGJlXHU3NGI2XHU3NGJiXHU3NGMyXHU3NTE0XHU3NTEzXHU3NjVjXHU3NjY0XHU3NjU5XHU3NjUwXHU3NjUzXHU3NjU3XHU3NjVhXHU3NmE2XHU3NmJkXHU3NmVjXHU3N2MyXHU3N2JhXHU3OGZmXHU3OTBjXHU3OTEzXHU3OTE0XHU3OTA5XHU3OTEwXHU3OTEyXHU3OTExXHU3OWFkXHU3'@; put 'OWFjXHU3YTVmXHU3YzFjXHU3YzI5XHU3YzE5XHU3YzIwXHU3YzFmXHU3YzJkXHU3YzFkXHU3YzI2XHU3YzI4XHU3YzIyXHU3YzI1XHU3YzMwXHU3ZTVjXHU3ZTUwXHU3ZTU2XHU3ZTYzXHU3ZTU4XHU3ZTYyXHU3ZTVmXHU3ZTUxXHU3ZTYwXHU3ZTU3XHU3ZTUzXHU3ZmI1XHU3ZmIzXHU3ZmY3'@; put 'XHU3ZmY4XHU4MDc1XHU4MWQxXHU4MWQyIl0sWyJmMGExIiwiXHU4MWQwXHU4MjVmXHU4MjVlXHU4NWI0XHU4NWM2XHU4NWMwXHU4NWMzXHU4NWMyXHU4NWIzXHU4NWI1XHU4NWJkXHU4NWM3XHU4NWM0XHU4NWJmXHU4NWNiXHU4NWNlXHU4NWM4XHU4NWM1XHU4NWIxXHU4NWI2XHU4NWQyXHU4'@; put 'NjI0XHU4NWI4XHU4NWI3XHU4NWJlXHU4NjY5XHU4N2U3XHU4N2U2XHU4N2UyXHU4N2RiXHU4N2ViXHU4N2VhXHU4N2U1XHU4N2RmXHU4N2YzXHU4N2U0XHU4N2Q0XHU4N2RjXHU4N2QzXHU4N2VkXHU4N2Q4XHU4N2UzXHU4N2E0XHU4N2Q3XHU4N2Q5XHU4ODAxXHU4N2Y0XHU4N2U4XHU4N2Rk'@; put 'XHU4OTUzXHU4OTRiXHU4OTRmXHU4OTRjXHU4OTQ2XHU4OTUwXHU4OTUxXHU4OTQ5XHU4YjJhXHU4YjI3XHU4YjIzXHU4YjMzXHU4YjMwXHU4YjM1XHU4YjQ3XHU4YjJmXHU4YjNjXHU4YjNlXHU4YjMxXHU4YjI1XHU4YjM3XHU4YjI2XHU4YjM2XHU4YjJlXHU4YjI0XHU4YjNiXHU4YjNkXHU4'@; put 'YjNhXHU4YzQyXHU4Yzc1XHU4Yzk5XHU4Yzk4XHU4Yzk3XHU4Y2ZlXHU4ZDA0XHU4ZDAyXHU4ZDAwXHU4ZTVjXHU4ZTYyXHU4ZTYwXHU4ZTU3XHU4ZTU2XHU4ZTVlXHU4ZTY1XHU4ZTY3Il0sWyJmMTQwIiwiXHU4ZTViXHU4ZTVhXHU4ZTYxXHU4ZTVkXHU4ZTY5XHU4ZTU0XHU4ZjQ2XHU4ZjQ3'@; put 'XHU4ZjQ4XHU4ZjRiXHU5MTI4XHU5MTNhXHU5MTNiXHU5MTNlXHU5MWE4XHU5MWE1XHU5MWE3XHU5MWFmXHU5MWFhXHU5M2I1XHU5MzhjXHU5MzkyXHU5M2I3XHU5MzliXHU5MzlkXHU5Mzg5XHU5M2E3XHU5MzhlXHU5M2FhXHU5MzllXHU5M2E2XHU5Mzk1XHU5Mzg4XHU5Mzk5XHU5MzlmXHU5'@; put 'MzhkXHU5M2IxXHU5MzkxXHU5M2IyXHU5M2E0XHU5M2E4XHU5M2I0XHU5M2EzXHU5M2E1XHU5NWQyXHU5NWQzXHU5NWQxXHU5NmIzXHU5NmQ3XHU5NmRhXHU1ZGMyXHU5NmRmXHU5NmQ4XHU5NmRkXHU5NzIzXHU5NzIyXHU5NzI1XHU5N2FjXHU5N2FlXHU5N2E4XHU5N2FiXHU5N2E0XHU5N2Fh'@; put 'Il0sWyJmMWExIiwiXHU5N2EyXHU5N2E1XHU5N2Q3XHU5N2Q5XHU5N2Q2XHU5N2Q4XHU5N2ZhXHU5ODUwXHU5ODUxXHU5ODUyXHU5OGI4XHU5OTQxXHU5OTNjXHU5OTNhXHU5YTBmXHU5YTBiXHU5YTA5XHU5YTBkXHU5YTA0XHU5YTExXHU5YTBhXHU5YTA1XHU5YTA3XHU5YTA2XHU5YWMwXHU5'@; put 'YWRjXHU5YjA4XHU5YjA0XHU5YjA1XHU5YjI5XHU5YjM1XHU5YjRhXHU5YjRjXHU5YjRiXHU5YmM3XHU5YmM2XHU5YmMzXHU5YmJmXHU5YmMxXHU5YmI1XHU5YmI4XHU5YmQzXHU5YmI2XHU5YmM0XHU5YmI5XHU5YmJkXHU5ZDVjXHU5ZDUzXHU5ZDRmXHU5ZDRhXHU5ZDViXHU5ZDRiXHU5ZDU5'@; put 'XHU5ZDU2XHU5ZDRjXHU5ZDU3XHU5ZDUyXHU5ZDU0XHU5ZDVmXHU5ZDU4XHU5ZDVhXHU5ZThlXHU5ZThjXHU5ZWRmXHU5ZjAxXHU5ZjAwXHU5ZjE2XHU5ZjI1XHU5ZjJiXHU5ZjJhXHU5ZjI5XHU5ZjI4XHU5ZjRjXHU5ZjU1XHU1MTM0XHU1MTM1XHU1Mjk2XHU1MmY3XHU1M2I0XHU1NmFiXHU1'@; put 'NmFkXHU1NmE2XHU1NmE3XHU1NmFhXHU1NmFjXHU1OGRhXHU1OGRkXHU1OGRiXHU1OTEyXHU1YjNkXHU1YjNlXHU1YjNmXHU1ZGMzXHU1ZTcwIl0sWyJmMjQwIiwiXHU1ZmJmXHU2MWZiXHU2NTA3XHU2NTEwXHU2NTBkXHU2NTA5XHU2NTBjXHU2NTBlXHU2NTg0XHU2NWRlXHU2NWRkXHU2NmRl'@; put 'XHU2YWU3XHU2YWUwXHU2YWNjXHU2YWQxXHU2YWQ5XHU2YWNiXHU2YWRmXHU2YWRjXHU2YWQwXHU2YWViXHU2YWNmXHU2YWNkXHU2YWRlXHU2YjYwXHU2YmIwXHU2YzBjXHU3MDE5XHU3MDI3XHU3MDIwXHU3MDE2XHU3MDJiXHU3MDIxXHU3MDIyXHU3MDIzXHU3MDI5XHU3MDE3XHU3MDI0XHU3'@; put 'MDFjXHU3MDJhXHU3MjBjXHU3MjBhXHU3MjA3XHU3MjAyXHU3MjA1XHU3MmE1XHU3MmE2XHU3MmE0XHU3MmEzXHU3MmExXHU3NGNiXHU3NGM1XHU3NGI3XHU3NGMzXHU3NTE2XHU3NjYwXHU3N2M5XHU3N2NhXHU3N2M0XHU3N2YxXHU3OTFkXHU3OTFiIl0sWyJmMmExIiwiXHU3OTIxXHU3OTFj'@; put 'XHU3OTE3XHU3OTFlXHU3OWIwXHU3YTY3XHU3YTY4XHU3YzMzXHU3YzNjXHU3YzM5XHU3YzJjXHU3YzNiXHU3Y2VjXHU3Y2VhXHU3ZTc2XHU3ZTc1XHU3ZTc4XHU3ZTcwXHU3ZTc3XHU3ZTZmXHU3ZTdhXHU3ZTcyXHU3ZTc0XHU3ZTY4XHU3ZjRiXHU3ZjRhXHU3ZjgzXHU3Zjg2XHU3ZmI3XHU3'@; put 'ZmZkXHU3ZmZlXHU4MDc4XHU4MWQ3XHU4MWQ1XHU4MjY0XHU4MjYxXHU4MjYzXHU4NWViXHU4NWYxXHU4NWVkXHU4NWQ5XHU4NWUxXHU4NWU4XHU4NWRhXHU4NWQ3XHU4NWVjXHU4NWYyXHU4NWY4XHU4NWQ4XHU4NWRmXHU4NWUzXHU4NWRjXHU4NWQxXHU4NWYwXHU4NWU2XHU4NWVmXHU4NWRl'@; put 'XHU4NWUyXHU4ODAwXHU4N2ZhXHU4ODAzXHU4N2Y2XHU4N2Y3XHU4ODA5XHU4ODBjXHU4ODBiXHU4ODA2XHU4N2ZjXHU4ODA4XHU4N2ZmXHU4ODBhXHU4ODAyXHU4OTYyXHU4OTVhXHU4OTViXHU4OTU3XHU4OTYxXHU4OTVjXHU4OTU4XHU4OTVkXHU4OTU5XHU4OTg4XHU4OWI3XHU4OWI2XHU4'@; put 'OWY2XHU4YjUwXHU4YjQ4XHU4YjRhXHU4YjQwXHU4YjUzXHU4YjU2XHU4YjU0XHU4YjRiXHU4YjU1Il0sWyJmMzQwIiwiXHU4YjUxXHU4YjQyXHU4YjUyXHU4YjU3XHU4YzQzXHU4Yzc3XHU4Yzc2XHU4YzlhXHU4ZDA2XHU4ZDA3XHU4ZDA5XHU4ZGFjXHU4ZGFhXHU4ZGFkXHU4ZGFiXHU4ZTZk'@; put 'XHU4ZTc4XHU4ZTczXHU4ZTZhXHU4ZTZmXHU4ZTdiXHU4ZWMyXHU4ZjUyXHU4ZjUxXHU4ZjRmXHU4ZjUwXHU4ZjUzXHU4ZmI0XHU5MTQwXHU5MTNmXHU5MWIwXHU5MWFkXHU5M2RlXHU5M2M3XHU5M2NmXHU5M2MyXHU5M2RhXHU5M2QwXHU5M2Y5XHU5M2VjXHU5M2NjXHU5M2Q5XHU5M2E5XHU5'@; put 'M2U2XHU5M2NhXHU5M2Q0XHU5M2VlXHU5M2UzXHU5M2Q1XHU5M2M0XHU5M2NlXHU5M2MwXHU5M2QyXHU5M2U3XHU5NTdkXHU5NWRhXHU5NWRiXHU5NmUxXHU5NzI5XHU5NzJiXHU5NzJjXHU5NzI4XHU5NzI2Il0sWyJmM2ExIiwiXHU5N2IzXHU5N2I3XHU5N2I2XHU5N2RkXHU5N2RlXHU5N2Rm'@; put 'XHU5ODVjXHU5ODU5XHU5ODVkXHU5ODU3XHU5OGJmXHU5OGJkXHU5OGJiXHU5OGJlXHU5OTQ4XHU5OTQ3XHU5OTQzXHU5OWE2XHU5OWE3XHU5YTFhXHU5YTE1XHU5YTI1XHU5YTFkXHU5YTI0XHU5YTFiXHU5YTIyXHU5YTIwXHU5YTI3XHU5YTIzXHU5YTFlXHU5YTFjXHU5YTE0XHU5YWMyXHU5'@; put 'YjBiXHU5YjBhXHU5YjBlXHU5YjBjXHU5YjM3XHU5YmVhXHU5YmViXHU5YmUwXHU5YmRlXHU5YmU0XHU5YmU2XHU5YmUyXHU5YmYwXHU5YmQ0XHU5YmQ3XHU5YmVjXHU5YmRjXHU5YmQ5XHU5YmU1XHU5YmQ1XHU5YmUxXHU5YmRhXHU5ZDc3XHU5ZDgxXHU5ZDhhXHU5ZDg0XHU5ZDg4XHU5ZDcx'@; put 'XHU5ZDgwXHU5ZDc4XHU5ZDg2XHU5ZDhiXHU5ZDhjXHU5ZDdkXHU5ZDZiXHU5ZDc0XHU5ZDc1XHU5ZDcwXHU5ZDY5XHU5ZDg1XHU5ZDczXHU5ZDdiXHU5ZDgyXHU5ZDZmXHU5ZDc5XHU5ZDdmXHU5ZDg3XHU5ZDY4XHU5ZTk0XHU5ZTkxXHU5ZWMwXHU5ZWZjXHU5ZjJkXHU5ZjQwXHU5ZjQxXHU5'@; put 'ZjRkXHU5ZjU2XHU5ZjU3XHU5ZjU4XHU1MzM3XHU1NmIyIl0sWyJmNDQwIiwiXHU1NmI1XHU1NmIzXHU1OGUzXHU1YjQ1XHU1ZGM2XHU1ZGM3XHU1ZWVlXHU1ZWVmXHU1ZmMwXHU1ZmMxXHU2MWY5XHU2NTE3XHU2NTE2XHU2NTE1XHU2NTEzXHU2NWRmXHU2NmU4XHU2NmUzXHU2NmU0XHU2YWYz'@; put 'XHU2YWYwXHU2YWVhXHU2YWU4XHU2YWY5XHU2YWYxXHU2YWVlXHU2YWVmXHU3MDNjXHU3MDM1XHU3MDJmXHU3MDM3XHU3MDM0XHU3MDMxXHU3MDQyXHU3MDM4XHU3MDNmXHU3MDNhXHU3MDM5XHU3MDQwXHU3MDNiXHU3MDMzXHU3MDQxXHU3MjEzXHU3MjE0XHU3MmE4XHU3MzdkXHU3MzdjXHU3'@; put 'NGJhXHU3NmFiXHU3NmFhXHU3NmJlXHU3NmVkXHU3N2NjXHU3N2NlXHU3N2NmXHU3N2NkXHU3N2YyXHU3OTI1XHU3OTIzXHU3OTI3XHU3OTI4XHU3OTI0XHU3OTI5Il0sWyJmNGExIiwiXHU3OWIyXHU3YTZlXHU3YTZjXHU3YTZkXHU3YWY3XHU3YzQ5XHU3YzQ4XHU3YzRhXHU3YzQ3XHU3YzQ1'@; put 'XHU3Y2VlXHU3ZTdiXHU3ZTdlXHU3ZTgxXHU3ZTgwXHU3ZmJhXHU3ZmZmXHU4MDc5XHU4MWRiXHU4MWQ5XHU4MjBiXHU4MjY4XHU4MjY5XHU4NjIyXHU4NWZmXHU4NjAxXHU4NWZlXHU4NjFiXHU4NjAwXHU4NWY2XHU4NjA0XHU4NjA5XHU4NjA1XHU4NjBjXHU4NWZkXHU4ODE5XHU4ODEwXHU4'@; put 'ODExXHU4ODE3XHU4ODEzXHU4ODE2XHU4OTYzXHU4OTY2XHU4OWI5XHU4OWY3XHU4YjYwXHU4YjZhXHU4YjVkXHU4YjY4XHU4YjYzXHU4YjY1XHU4YjY3XHU4YjZkXHU4ZGFlXHU4ZTg2XHU4ZTg4XHU4ZTg0XHU4ZjU5XHU4ZjU2XHU4ZjU3XHU4ZjU1XHU4ZjU4XHU4ZjVhXHU5MDhkXHU5MTQz'@; put 'XHU5MTQxXHU5MWI3XHU5MWI1XHU5MWIyXHU5MWIzXHU5NDBiXHU5NDEzXHU5M2ZiXHU5NDIwXHU5NDBmXHU5NDE0XHU5M2ZlXHU5NDE1XHU5NDEwXHU5NDI4XHU5NDE5XHU5NDBkXHU5M2Y1XHU5NDAwXHU5M2Y3XHU5NDA3XHU5NDBlXHU5NDE2XHU5NDEyXHU5M2ZhXHU5NDA5XHU5M2Y4XHU5'@; put 'NDBhXHU5M2ZmIl0sWyJmNTQwIiwiXHU5M2ZjXHU5NDBjXHU5M2Y2XHU5NDExXHU5NDA2XHU5NWRlXHU5NWUwXHU5NWRmXHU5NzJlXHU5NzJmXHU5N2I5XHU5N2JiXHU5N2ZkXHU5N2ZlXHU5ODYwXHU5ODYyXHU5ODYzXHU5ODVmXHU5OGMxXHU5OGMyXHU5OTUwXHU5OTRlXHU5OTU5XHU5OTRj'@; put 'XHU5OTRiXHU5OTUzXHU5YTMyXHU5YTM0XHU5YTMxXHU5YTJjXHU5YTJhXHU5YTM2XHU5YTI5XHU5YTJlXHU5YTM4XHU5YTJkXHU5YWM3XHU5YWNhXHU5YWM2XHU5YjEwXHU5YjEyXHU5YjExXHU5YzBiXHU5YzA4XHU5YmY3XHU5YzA1XHU5YzEyXHU5YmY4XHU5YzQwXHU5YzA3XHU5YzBlXHU5'@; put 'YzA2XHU5YzE3XHU5YzE0XHU5YzA5XHU5ZDlmXHU5ZDk5XHU5ZGE0XHU5ZDlkXHU5ZDkyXHU5ZDk4XHU5ZDkwXHU5ZDliIl0sWyJmNWExIiwiXHU5ZGEwXHU5ZDk0XHU5ZDljXHU5ZGFhXHU5ZDk3XHU5ZGExXHU5ZDlhXHU5ZGEyXHU5ZGE4XHU5ZDllXHU5ZGEzXHU5ZGJmXHU5ZGE5XHU5ZDk2'@; put 'XHU5ZGE2XHU5ZGE3XHU5ZTk5XHU5ZTliXHU5ZTlhXHU5ZWU1XHU5ZWU0XHU5ZWU3XHU5ZWU2XHU5ZjMwXHU5ZjJlXHU5ZjViXHU5ZjYwXHU5ZjVlXHU5ZjVkXHU5ZjU5XHU5ZjkxXHU1MTNhXHU1MTM5XHU1Mjk4XHU1Mjk3XHU1NmMzXHU1NmJkXHU1NmJlXHU1YjQ4XHU1YjQ3XHU1ZGNiXHU1'@; put 'ZGNmXHU1ZWYxXHU2MWZkXHU2NTFiXHU2YjAyXHU2YWZjXHU2YjAzXHU2YWY4XHU2YjAwXHU3MDQzXHU3MDQ0XHU3MDRhXHU3MDQ4XHU3MDQ5XHU3MDQ1XHU3MDQ2XHU3MjFkXHU3MjFhXHU3MjE5XHU3MzdlXHU3NTE3XHU3NjZhXHU3N2QwXHU3OTJkXHU3OTMxXHU3OTJmXHU3YzU0XHU3YzUz'@; put 'XHU3Y2YyXHU3ZThhXHU3ZTg3XHU3ZTg4XHU3ZThiXHU3ZTg2XHU3ZThkXHU3ZjRkXHU3ZmJiXHU4MDMwXHU4MWRkXHU4NjE4XHU4NjJhXHU4NjI2XHU4NjFmXHU4NjIzXHU4NjFjXHU4NjE5XHU4NjI3XHU4NjJlXHU4NjIxXHU4NjIwXHU4NjI5XHU4NjFlXHU4NjI1Il0sWyJmNjQwIiwiXHU4'@; put 'ODI5XHU4ODFkXHU4ODFiXHU4ODIwXHU4ODI0XHU4ODFjXHU4ODJiXHU4ODRhXHU4OTZkXHU4OTY5XHU4OTZlXHU4OTZiXHU4OWZhXHU4Yjc5XHU4Yjc4XHU4YjQ1XHU4YjdhXHU4YjdiXHU4ZDEwXHU4ZDE0XHU4ZGFmXHU4ZThlXHU4ZThjXHU4ZjVlXHU4ZjViXHU4ZjVkXHU5MTQ2XHU5MTQ0'@; put 'XHU5MTQ1XHU5MWI5XHU5NDNmXHU5NDNiXHU5NDM2XHU5NDI5XHU5NDNkXHU5NDNjXHU5NDMwXHU5NDM5XHU5NDJhXHU5NDM3XHU5NDJjXHU5NDQwXHU5NDMxXHU5NWU1XHU5NWU0XHU5NWUzXHU5NzM1XHU5NzNhXHU5N2JmXHU5N2UxXHU5ODY0XHU5OGM5XHU5OGM2XHU5OGMwXHU5OTU4XHU5'@; put 'OTU2XHU5YTM5XHU5YTNkXHU5YTQ2XHU5YTQ0XHU5YTQyXHU5YTQxXHU5YTNhIl0sWyJmNmExIiwiXHU5YTNmXHU5YWNkXHU5YjE1XHU5YjE3XHU5YjE4XHU5YjE2XHU5YjNhXHU5YjUyXHU5YzJiXHU5YzFkXHU5YzFjXHU5YzJjXHU5YzIzXHU5YzI4XHU5YzI5XHU5YzI0XHU5YzIxXHU5ZGI3'@; put 'XHU5ZGI2XHU5ZGJjXHU5ZGMxXHU5ZGM3XHU5ZGNhXHU5ZGNmXHU5ZGJlXHU5ZGM1XHU5ZGMzXHU5ZGJiXHU5ZGI1XHU5ZGNlXHU5ZGI5XHU5ZGJhXHU5ZGFjXHU5ZGM4XHU5ZGIxXHU5ZGFkXHU5ZGNjXHU5ZGIzXHU5ZGNkXHU5ZGIyXHU5ZTdhXHU5ZTljXHU5ZWViXHU5ZWVlXHU5ZWVkXHU5'@; put 'ZjFiXHU5ZjE4XHU5ZjFhXHU5ZjMxXHU5ZjRlXHU5ZjY1XHU5ZjY0XHU5ZjkyXHU0ZWI5XHU1NmM2XHU1NmM1XHU1NmNiXHU1OTcxXHU1YjRiXHU1YjRjXHU1ZGQ1XHU1ZGQxXHU1ZWYyXHU2NTIxXHU2NTIwXHU2NTI2XHU2NTIyXHU2YjBiXHU2YjA4XHU2YjA5XHU2YzBkXHU3MDU1XHU3MDU2'@; put 'XHU3MDU3XHU3MDUyXHU3MjFlXHU3MjFmXHU3MmE5XHU3MzdmXHU3NGQ4XHU3NGQ1XHU3NGQ5XHU3NGQ3XHU3NjZkXHU3NmFkXHU3OTM1XHU3OWI0XHU3YTcwXHU3YTcxXHU3YzU3XHU3YzVjXHU3YzU5XHU3YzViXHU3YzVhIl0sWyJmNzQwIiwiXHU3Y2Y0XHU3Y2YxXHU3ZTkxXHU3ZjRmXHU3'@; put 'Zjg3XHU4MWRlXHU4MjZiXHU4NjM0XHU4NjM1XHU4NjMzXHU4NjJjXHU4NjMyXHU4NjM2XHU4ODJjXHU4ODI4XHU4ODI2XHU4ODJhXHU4ODI1XHU4OTcxXHU4OWJmXHU4OWJlXHU4OWZiXHU4YjdlXHU4Yjg0XHU4YjgyXHU4Yjg2XHU4Yjg1XHU4YjdmXHU4ZDE1XHU4ZTk1XHU4ZTk0XHU4ZTlh'@; put 'XHU4ZTkyXHU4ZTkwXHU4ZTk2XHU4ZTk3XHU4ZjYwXHU4ZjYyXHU5MTQ3XHU5NDRjXHU5NDUwXHU5NDRhXHU5NDRiXHU5NDRmXHU5NDQ3XHU5NDQ1XHU5NDQ4XHU5NDQ5XHU5NDQ2XHU5NzNmXHU5N2UzXHU5ODZhXHU5ODY5XHU5OGNiXHU5OTU0XHU5OTViXHU5YTRlXHU5YTUzXHU5YTU0XHU5'@; put 'YTRjXHU5YTRmXHU5YTQ4XHU5YTRhIl0sWyJmN2ExIiwiXHU5YTQ5XHU5YTUyXHU5YTUwXHU5YWQwXHU5YjE5XHU5YjJiXHU5YjNiXHU5YjU2XHU5YjU1XHU5YzQ2XHU5YzQ4XHU5YzNmXHU5YzQ0XHU5YzM5XHU5YzMzXHU5YzQxXHU5YzNjXHU5YzM3XHU5YzM0XHU5YzMyXHU5YzNkXHU5YzM2'@; put 'XHU5ZGRiXHU5ZGQyXHU5ZGRlXHU5ZGRhXHU5ZGNiXHU5ZGQwXHU5ZGRjXHU5ZGQxXHU5ZGRmXHU5ZGU5XHU5ZGQ5XHU5ZGQ4XHU5ZGQ2XHU5ZGY1XHU5ZGQ1XHU5ZGRkXHU5ZWI2XHU5ZWYwXHU5ZjM1XHU5ZjMzXHU5ZjMyXHU5ZjQyXHU5ZjZiXHU5Zjk1XHU5ZmEyXHU1MTNkXHU1Mjk5XHU1'@; put 'OGU4XHU1OGU3XHU1OTcyXHU1YjRkXHU1ZGQ4XHU4ODJmXHU1ZjRmXHU2MjAxXHU2MjAzXHU2MjA0XHU2NTI5XHU2NTI1XHU2NTk2XHU2NmViXHU2YjExXHU2YjEyXHU2YjBmXHU2YmNhXHU3MDViXHU3MDVhXHU3MjIyXHU3MzgyXHU3MzgxXHU3MzgzXHU3NjcwXHU3N2Q0XHU3YzY3XHU3YzY2'@; put 'XHU3ZTk1XHU4MjZjXHU4NjNhXHU4NjQwXHU4NjM5XHU4NjNjXHU4NjMxXHU4NjNiXHU4NjNlXHU4ODMwXHU4ODMyXHU4ODJlXHU4ODMzXHU4OTc2XHU4OTc0XHU4OTczXHU4OWZlIl0sWyJmODQwIiwiXHU4YjhjXHU4YjhlXHU4YjhiXHU4Yjg4XHU4YzQ1XHU4ZDE5XHU4ZTk4XHU4ZjY0XHU4'@; put 'ZjYzXHU5MWJjXHU5NDYyXHU5NDU1XHU5NDVkXHU5NDU3XHU5NDVlXHU5N2M0XHU5N2M1XHU5ODAwXHU5YTU2XHU5YTU5XHU5YjFlXHU5YjFmXHU5YjIwXHU5YzUyXHU5YzU4XHU5YzUwXHU5YzRhXHU5YzRkXHU5YzRiXHU5YzU1XHU5YzU5XHU5YzRjXHU5YzRlXHU5ZGZiXHU5ZGY3XHU5ZGVm'@; put 'XHU5ZGUzXHU5ZGViXHU5ZGY4XHU5ZGU0XHU5ZGY2XHU5ZGUxXHU5ZGVlXHU5ZGU2XHU5ZGYyXHU5ZGYwXHU5ZGUyXHU5ZGVjXHU5ZGY0XHU5ZGYzXHU5ZGU4XHU5ZGVkXHU5ZWMyXHU5ZWQwXHU5ZWYyXHU5ZWYzXHU5ZjA2XHU5ZjFjXHU5ZjM4XHU5ZjM3XHU5ZjM2XHU5ZjQzXHU5ZjRmIl0s'@; put 'WyJmOGExIiwiXHU5ZjcxXHU5ZjcwXHU5ZjZlXHU5ZjZmXHU1NmQzXHU1NmNkXHU1YjRlXHU1YzZkXHU2NTJkXHU2NmVkXHU2NmVlXHU2YjEzXHU3MDVmXHU3MDYxXHU3MDVkXHU3MDYwXHU3MjIzXHU3NGRiXHU3NGU1XHU3N2Q1XHU3OTM4XHU3OWI3XHU3OWI2XHU3YzZhXHU3ZTk3XHU3Zjg5'@; put 'XHU4MjZkXHU4NjQzXHU4ODM4XHU4ODM3XHU4ODM1XHU4ODRiXHU4Yjk0XHU4Yjk1XHU4ZTllXHU4ZTlmXHU4ZWEwXHU4ZTlkXHU5MWJlXHU5MWJkXHU5MWMyXHU5NDZiXHU5NDY4XHU5NDY5XHU5NmU1XHU5NzQ2XHU5NzQzXHU5NzQ3XHU5N2M3XHU5N2U1XHU5YTVlXHU5YWQ1XHU5YjU5XHU5'@; put 'YzYzXHU5YzY3XHU5YzY2XHU5YzYyXHU5YzVlXHU5YzYwXHU5ZTAyXHU5ZGZlXHU5ZTA3XHU5ZTAzXHU5ZTA2XHU5ZTA1XHU5ZTAwXHU5ZTAxXHU5ZTA5XHU5ZGZmXHU5ZGZkXHU5ZTA0XHU5ZWEwXHU5ZjFlXHU5ZjQ2XHU5Zjc0XHU5Zjc1XHU5Zjc2XHU1NmQ0XHU2NTJlXHU2NWI4XHU2YjE4'@; put 'XHU2YjE5XHU2YjE3XHU2YjFhXHU3MDYyXHU3MjI2XHU3MmFhXHU3N2Q4XHU3N2Q5XHU3OTM5XHU3YzY5XHU3YzZiXHU3Y2Y2XHU3ZTlhIl0sWyJmOTQwIiwiXHU3ZTk4XHU3ZTliXHU3ZTk5XHU4MWUwXHU4MWUxXHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4OTc5XHU4OTdhXHU4OTdjXHU4OTdiXHU4'@; put 'OWZmXHU4Yjk4XHU4Yjk5XHU4ZWE1XHU4ZWE0XHU4ZWEzXHU5NDZlXHU5NDZkXHU5NDZmXHU5NDcxXHU5NDczXHU5NzQ5XHU5ODcyXHU5OTVmXHU5YzY4XHU5YzZlXHU5YzZkXHU5ZTBiXHU5ZTBkXHU5ZTEwXHU5ZTBmXHU5ZTEyXHU5ZTExXHU5ZWExXHU5ZWY1XHU5ZjA5XHU5ZjQ3XHU5Zjc4'@; put 'XHU5ZjdiXHU5ZjdhXHU5Zjc5XHU1NzFlXHU3MDY2XHU3YzZmXHU4ODNjXHU4ZGIyXHU4ZWE2XHU5MWMzXHU5NDc0XHU5NDc4XHU5NDc2XHU5NDc1XHU5YTYwXHU5Yzc0XHU5YzczXHU5YzcxXHU5Yzc1XHU5ZTE0XHU5ZTEzXHU5ZWY2XHU5ZjBhIl0sWyJmOWExIiwiXHU5ZmE0XHU3MDY4XHU3'@; put 'MDY1XHU3Y2Y3XHU4NjZhXHU4ODNlXHU4ODNkXHU4ODNmXHU4YjllXHU4YzljXHU4ZWE5XHU4ZWM5XHU5NzRiXHU5ODczXHU5ODc0XHU5OGNjXHU5OTYxXHU5OWFiXHU5YTY0XHU5YTY2XHU5YTY3XHU5YjI0XHU5ZTE1XHU5ZTE3XHU5ZjQ4XHU2MjA3XHU2YjFlXHU3MjI3XHU4NjRjXHU4ZWE4'@; put 'XHU5NDgyXHU5NDgwXHU5NDgxXHU5YTY5XHU5YTY4XHU5YjJlXHU5ZTE5XHU3MjI5XHU4NjRiXHU4YjlmXHU5NDgzXHU5Yzc5XHU5ZWI3XHU3Njc1XHU5YTZiXHU5YzdhXHU5ZTFkXHU3MDY5XHU3MDZhXHU5ZWE0XHU5ZjdlXHU5ZjQ5XHU5Zjk4XHU3ODgxXHU5MmI5XHU4OGNmXHU1OGJiXHU2'@; put 'MDUyXHU3Y2E3XHU1YWZhXHUyNTU0XHUyNTY2XHUyNTU3XHUyNTYwXHUyNTZjXHUyNTYzXHUyNTVhXHUyNTY5XHUyNTVkXHUyNTUyXHUyNTY0XHUyNTU1XHUyNTVlXHUyNTZhXHUyNTYxXHUyNTU4XHUyNTY3XHUyNTViXHUyNTUzXHUyNTY1XHUyNTU2XHUyNTVmXHUyNTZiXHUyNTYyXHUyNTU5'@; put 'XHUyNTY4XHUyNTVjXHUyNTUxXHUyNTUwXHUyNTZkXHUyNTZlXHUyNTcwXHUyNTZmXHUyNTkzIl1dJyl9LDMxNTMyOmF0PT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyN10sWyI4ZWExIiwiXHVmZjYxIiw2Ml0sWyJhMWExIiwiXHUzMDAw'@; put 'XHUzMDAxXHUzMDAyXHVmZjBjXHVmZjBlXHUzMGZiXHVmZjFhXHVmZjFiXHVmZjFmXHVmZjAxXHUzMDliXHUzMDljXHhiNFx1ZmY0MFx4YThcdWZmM2VcdWZmZTNcdWZmM2ZcdTMwZmRcdTMwZmVcdTMwOWRcdTMwOWVcdTMwMDNcdTRlZGRcdTMwMDVcdTMwMDZcdTMwMDdcdTMwZmNcdTIwMTVc'@; put 'dTIwMTBcdWZmMGZcdWZmM2NcdWZmNWVcdTIyMjVcdWZmNWNcdTIwMjZcdTIwMjVcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdWZmMDhcdWZmMDlcdTMwMTRcdTMwMTVcdWZmM2JcdWZmM2RcdWZmNWJcdWZmNWRcdTMwMDgiLDksIlx1ZmYwYlx1ZmYwZFx4YjFceGQ3XHhmN1x1ZmYxZFx1MjI2'@; put 'MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVcdWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZmMDZcdWZmMGFcdWZmMjBceGE3XHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3'@; put 'Il0sWyJhMmExIiwiXHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzIl0sWyJhMmJhIiwiXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5Il0sWyJhMmNh'@; put 'IiwiXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzIl0sWyJhMmRjIiwiXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjIl0sWyJhMmYyIiwiXHUyMTJi'@; put 'XHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNiJdLFsiYTJmZSIsIlx1MjVlZiJdLFsiYTNiMCIsIlx1ZmYxMCIsOV0sWyJhM2MxIiwiXHVmZjIxIiwyNV0sWyJhM2UxIiwiXHVmZjQxIiwyNV0sWyJhNGExIiwiXHUzMDQxIiw4Ml0sWyJhNWExIiwiXHUzMGExIiw4NV0s'@; put 'WyJhNmExIiwiXHUwMzkxIiwxNiwiXHUwM2EzIiw2XSxbImE2YzEiLCJcdTAzYjEiLDE2LCJcdTAzYzMiLDZdLFsiYTdhMSIsIlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2IiwyNV0sWyJhN2QxIiwiXHUwNDMwIiw1LCJcdTA0NTFcdTA0MzYiLDI1XSxbImE4YTEiLCJcdTI1MDBcdTI1MDJcdTI1'@; put 'MGNcdTI1MTBcdTI1MThcdTI1MTRcdTI1MWNcdTI1MmNcdTI1MjRcdTI1MzRcdTI1M2NcdTI1MDFcdTI1MDNcdTI1MGZcdTI1MTNcdTI1MWJcdTI1MTdcdTI1MjNcdTI1MzNcdTI1MmJcdTI1M2JcdTI1NGJcdTI1MjBcdTI1MmZcdTI1MjhcdTI1MzdcdTI1M2ZcdTI1MWRcdTI1MzBcdTI1MjVc'@; put 'dTI1MzhcdTI1NDIiXSxbImFkYTEiLCJcdTI0NjAiLDE5LCJcdTIxNjAiLDldLFsiYWRjMCIsIlx1MzM0OVx1MzMxNFx1MzMyMlx1MzM0ZFx1MzMxOFx1MzMyN1x1MzMwM1x1MzMzNlx1MzM1MVx1MzM1N1x1MzMwZFx1MzMyNlx1MzMyM1x1MzMyYlx1MzM0YVx1MzMzYlx1MzM5Y1x1MzM5ZFx1'@; put 'MzM5ZVx1MzM4ZVx1MzM4Zlx1MzNjNFx1MzNhMSJdLFsiYWRkZiIsIlx1MzM3Ylx1MzAxZFx1MzAxZlx1MjExNlx1MzNjZFx1MjEyMVx1MzJhNCIsNCwiXHUzMjMxXHUzMjMyXHUzMjM5XHUzMzdlXHUzMzdkXHUzMzdjXHUyMjUyXHUyMjYxXHUyMjJiXHUyMjJlXHUyMjExXHUyMjFhXHUyMmE1'@; put 'XHUyMjIwXHUyMjFmXHUyMmJmXHUyMjM1XHUyMjI5XHUyMjJhIl0sWyJiMGExIiwiXHU0ZTljXHU1NTE2XHU1YTAzXHU5NjNmXHU1NGMwXHU2MTFiXHU2MzI4XHU1OWY2XHU5MDIyXHU4NDc1XHU4MzFjXHU3YTUwXHU2MGFhXHU2M2UxXHU2ZTI1XHU2NWVkXHU4NDY2XHU4MmE2XHU5YmY1XHU2'@; put 'ODkzXHU1NzI3XHU2NWExXHU2MjcxXHU1YjliXHU1OWQwXHU4NjdiXHU5OGY0XHU3ZDYyXHU3ZGJlXHU5YjhlXHU2MjE2XHU3YzlmXHU4OGI3XHU1Yjg5XHU1ZWI1XHU2MzA5XHU2Njk3XHU2ODQ4XHU5NWM3XHU5NzhkXHU2NzRmXHU0ZWU1XHU0ZjBhXHU0ZjRkXHU0ZjlkXHU1MDQ5XHU1NmYy'@; put 'XHU1OTM3XHU1OWQ0XHU1YTAxXHU1YzA5XHU2MGRmXHU2MTBmXHU2MTcwXHU2NjEzXHU2OTA1XHU3MGJhXHU3NTRmXHU3NTcwXHU3OWZiXHU3ZGFkXHU3ZGVmXHU4MGMzXHU4NDBlXHU4ODYzXHU4YjAyXHU5MDU1XHU5MDdhXHU1MzNiXHU0ZTk1XHU0ZWE1XHU1N2RmXHU4MGIyXHU5MGMxXHU3'@; put 'OGVmXHU0ZTAwXHU1OGYxXHU2ZWEyXHU5MDM4XHU3YTMyXHU4MzI4XHU4MjhiXHU5YzJmXHU1MTQxXHU1MzcwXHU1NGJkXHU1NGUxXHU1NmUwXHU1OWZiXHU1ZjE1XHU5OGYyXHU2ZGViXHU4MGU0XHU4NTJkIl0sWyJiMWExIiwiXHU5NjYyXHU5NjcwXHU5NmEwXHU5N2ZiXHU1NDBiXHU1M2Yz'@; put 'XHU1Yjg3XHU3MGNmXHU3ZmJkXHU4ZmMyXHU5NmU4XHU1MzZmXHU5ZDVjXHU3YWJhXHU0ZTExXHU3ODkzXHU4MWZjXHU2ZTI2XHU1NjE4XHU1NTA0XHU2YjFkXHU4NTFhXHU5YzNiXHU1OWU1XHU1M2E5XHU2ZDY2XHU3NGRjXHU5NThmXHU1NjQyXHU0ZTkxXHU5MDRiXHU5NmYyXHU4MzRmXHU5'@; put 'OTBjXHU1M2UxXHU1NWI2XHU1YjMwXHU1ZjcxXHU2NjIwXHU2NmYzXHU2ODA0XHU2YzM4XHU2Y2YzXHU2ZDI5XHU3NDViXHU3NmM4XHU3YTRlXHU5ODM0XHU4MmYxXHU4ODViXHU4YTYwXHU5MmVkXHU2ZGIyXHU3NWFiXHU3NmNhXHU5OWM1XHU2MGE2XHU4YjAxXHU4ZDhhXHU5NWIyXHU2OThl'@; put 'XHU1M2FkXHU1MTg2XHU1NzEyXHU1ODMwXHU1OTQ0XHU1YmI0XHU1ZWY2XHU2MDI4XHU2M2E5XHU2M2Y0XHU2Y2JmXHU2ZjE0XHU3MDhlXHU3MTE0XHU3MTU5XHU3MWQ1XHU3MzNmXHU3ZTAxXHU4Mjc2XHU4MmQxXHU4NTk3XHU5MDYwXHU5MjViXHU5ZDFiXHU1ODY5XHU2NWJjXHU2YzVhXHU3'@; put 'NTI1XHU1MWY5XHU1OTJlXHU1OTY1XHU1ZjgwXHU1ZmRjIl0sWyJiMmExIiwiXHU2MmJjXHU2NWZhXHU2YTJhXHU2YjI3XHU2YmI0XHU3MzhiXHU3ZmMxXHU4OTU2XHU5ZDJjXHU5ZDBlXHU5ZWM0XHU1Y2ExXHU2Yzk2XHU4MzdiXHU1MTA0XHU1YzRiXHU2MWI2XHU4MWM2XHU2ODc2XHU3MjYx'@; put 'XHU0ZTU5XHU0ZmZhXHU1Mzc4XHU2MDY5XHU2ZTI5XHU3YTRmXHU5N2YzXHU0ZTBiXHU1MzE2XHU0ZWVlXHU0ZjU1XHU0ZjNkXHU0ZmExXHU0ZjczXHU1MmEwXHU1M2VmXHU1NjA5XHU1OTBmXHU1YWMxXHU1YmI2XHU1YmUxXHU3OWQxXHU2Njg3XHU2NzljXHU2N2I2XHU2YjRjXHU2Y2IzXHU3'@; put 'MDZiXHU3M2MyXHU3OThkXHU3OWJlXHU3YTNjXHU3Yjg3XHU4MmIxXHU4MmRiXHU4MzA0XHU4Mzc3XHU4M2VmXHU4M2QzXHU4NzY2XHU4YWIyXHU1NjI5XHU4Y2E4XHU4ZmU2XHU5MDRlXHU5NzFlXHU4NjhhXHU0ZmM0XHU1Y2U4XHU2MjExXHU3MjU5XHU3NTNiXHU4MWU1XHU4MmJkXHU4NmZl'@; put 'XHU4Y2MwXHU5NmM1XHU5OTEzXHU5OWQ1XHU0ZWNiXHU0ZjFhXHU4OWUzXHU1NmRlXHU1ODRhXHU1OGNhXHU1ZWZiXHU1ZmViXHU2MDJhXHU2MDk0XHU2MDYyXHU2MWQwXHU2MjEyXHU2MmQwXHU2NTM5Il0sWyJiM2ExIiwiXHU5YjQxXHU2NjY2XHU2OGIwXHU2ZDc3XHU3MDcwXHU3NTRjXHU3'@; put 'Njg2XHU3ZDc1XHU4MmE1XHU4N2Y5XHU5NThiXHU5NjhlXHU4YzlkXHU1MWYxXHU1MmJlXHU1OTE2XHU1NGIzXHU1YmIzXHU1ZDE2XHU2MTY4XHU2OTgyXHU2ZGFmXHU3ODhkXHU4NGNiXHU4ODU3XHU4YTcyXHU5M2E3XHU5YWI4XHU2ZDZjXHU5OWE4XHU4NmQ5XHU1N2EzXHU2N2ZmXHU4NmNl'@; put 'XHU5MjBlXHU1MjgzXHU1Njg3XHU1NDA0XHU1ZWQzXHU2MmUxXHU2NGI5XHU2ODNjXHU2ODM4XHU2YmJiXHU3MzcyXHU3OGJhXHU3YTZiXHU4OTlhXHU4OWQyXHU4ZDZiXHU4ZjAzXHU5MGVkXHU5NWEzXHU5Njk0XHU5NzY5XHU1YjY2XHU1Y2IzXHU2OTdkXHU5ODRkXHU5ODRlXHU2MzliXHU3'@; put 'YjIwXHU2YTJiXHU2YTdmXHU2OGI2XHU5YzBkXHU2ZjVmXHU1MjcyXHU1NTlkXHU2MDcwXHU2MmVjXHU2ZDNiXHU2ZTA3XHU2ZWQxXHU4NDViXHU4OTEwXHU4ZjQ0XHU0ZTE0XHU5YzM5XHU1M2Y2XHU2OTFiXHU2YTNhXHU5Nzg0XHU2ODJhXHU1MTVjXHU3YWMzXHU4NGIyXHU5MWRjXHU5Mzhj'@; put 'XHU1NjViXHU5ZDI4XHU2ODIyXHU4MzA1XHU4NDMxIl0sWyJiNGExIiwiXHU3Y2E1XHU1MjA4XHU4MmM1XHU3NGU2XHU0ZTdlXHU0ZjgzXHU1MWEwXHU1YmQyXHU1MjBhXHU1MmQ4XHU1MmU3XHU1ZGZiXHU1NTlhXHU1ODJhXHU1OWU2XHU1YjhjXHU1Yjk4XHU1YmRiXHU1ZTcyXHU1ZTc5XHU2'@; put 'MGEzXHU2MTFmXHU2MTYzXHU2MWJlXHU2M2RiXHU2NTYyXHU2N2QxXHU2ODUzXHU2OGZhXHU2YjNlXHU2YjUzXHU2YzU3XHU2ZjIyXHU2Zjk3XHU2ZjQ1XHU3NGIwXHU3NTE4XHU3NmUzXHU3NzBiXHU3YWZmXHU3YmExXHU3YzIxXHU3ZGU5XHU3ZjM2XHU3ZmYwXHU4MDlkXHU4MjY2XHU4Mzll'@; put 'XHU4OWIzXHU4YWNjXHU4Y2FiXHU5MDg0XHU5NDUxXHU5NTkzXHU5NTkxXHU5NWEyXHU5NjY1XHU5N2QzXHU5OTI4XHU4MjE4XHU0ZTM4XHU1NDJiXHU1Y2I4XHU1ZGNjXHU3M2E5XHU3NjRjXHU3NzNjXHU1Y2E5XHU3ZmViXHU4ZDBiXHU5NmMxXHU5ODExXHU5ODU0XHU5ODU4XHU0ZjAxXHU0'@; put 'ZjBlXHU1MzcxXHU1NTljXHU1NjY4XHU1N2ZhXHU1OTQ3XHU1YjA5XHU1YmM0XHU1YzkwXHU1ZTBjXHU1ZTdlXHU1ZmNjXHU2M2VlXHU2NzNhXHU2NWQ3XHU2NWUyXHU2NzFmXHU2OGNiXHU2OGM0Il0sWyJiNWExIiwiXHU2YTVmXHU1ZTMwXHU2YmM1XHU2YzE3XHU2YzdkXHU3NTdmXHU3OTQ4'@; put 'XHU1YjYzXHU3YTAwXHU3ZDAwXHU1ZmJkXHU4OThmXHU4YTE4XHU4Y2I0XHU4ZDc3XHU4ZWNjXHU4ZjFkXHU5OGUyXHU5YTBlXHU5YjNjXHU0ZTgwXHU1MDdkXHU1MTAwXHU1OTkzXHU1YjljXHU2MjJmXHU2MjgwXHU2NGVjXHU2YjNhXHU3MmEwXHU3NTkxXHU3OTQ3XHU3ZmE5XHU4N2ZiXHU4'@; put 'YWJjXHU4YjcwXHU2M2FjXHU4M2NhXHU5N2EwXHU1NDA5XHU1NDAzXHU1NWFiXHU2ODU0XHU2YTU4XHU4YTcwXHU3ODI3XHU2Nzc1XHU5ZWNkXHU1Mzc0XHU1YmEyXHU4MTFhXHU4NjUwXHU5MDA2XHU0ZTE4XHU0ZTQ1XHU0ZWM3XHU0ZjExXHU1M2NhXHU1NDM4XHU1YmFlXHU1ZjEzXHU2MDI1'@; put 'XHU2NTUxXHU2NzNkXHU2YzQyXHU2YzcyXHU2Y2UzXHU3MDc4XHU3NDAzXHU3YTc2XHU3YWFlXHU3YjA4XHU3ZDFhXHU3Y2ZlXHU3ZDY2XHU2NWU3XHU3MjViXHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MmUwXHU2MzE5XHU2ZTIwXHU4NjVhXHU4YTMxXHU4ZGRkXHU5MmY4XHU2ZjAxXHU3'@; put 'OWE2XHU5YjVhXHU0ZWE4XHU0ZWFiXHU0ZWFjIl0sWyJiNmExIiwiXHU0ZjliXHU0ZmEwXHU1MGQxXHU1MTQ3XHU3YWY2XHU1MTcxXHU1MWY2XHU1MzU0XHU1MzIxXHU1MzdmXHU1M2ViXHU1NWFjXHU1ODgzXHU1Y2UxXHU1ZjM3XHU1ZjRhXHU2MDJmXHU2MDUwXHU2MDZkXHU2MzFmXHU2NTU5'@; put 'XHU2YTRiXHU2Y2MxXHU3MmMyXHU3MmVkXHU3N2VmXHU4MGY4XHU4MTA1XHU4MjA4XHU4NTRlXHU5MGY3XHU5M2UxXHU5N2ZmXHU5OTU3XHU5YTVhXHU0ZWYwXHU1MWRkXHU1YzJkXHU2NjgxXHU2OTZkXHU1YzQwXHU2NmYyXHU2OTc1XHU3Mzg5XHU2ODUwXHU3YzgxXHU1MGM1XHU1MmU0XHU1'@; put 'NzQ3XHU1ZGZlXHU5MzI2XHU2NWE0XHU2YjIzXHU2YjNkXHU3NDM0XHU3OTgxXHU3OWJkXHU3YjRiXHU3ZGNhXHU4MmI5XHU4M2NjXHU4ODdmXHU4OTVmXHU4YjM5XHU4ZmQxXHU5MWQxXHU1NDFmXHU5MjgwXHU0ZTVkXHU1MDM2XHU1M2U1XHU1MzNhXHU3MmQ3XHU3Mzk2XHU3N2U5XHU4MmU2'@; put 'XHU4ZWFmXHU5OWM2XHU5OWM4XHU5OWQyXHU1MTc3XHU2MTFhXHU4NjVlXHU1NWIwXHU3YTdhXHU1MDc2XHU1YmQzXHU5MDQ3XHU5Njg1XHU0ZTMyXHU2YWRiXHU5MWU3XHU1YzUxXHU1YzQ4Il0sWyJiN2ExIiwiXHU2Mzk4XHU3YTlmXHU2YzkzXHU5Nzc0XHU4ZjYxXHU3YWFhXHU3MThhXHU5'@; put 'Njg4XHU3YzgyXHU2ODE3XHU3ZTcwXHU2ODUxXHU5MzZjXHU1MmYyXHU1NDFiXHU4NWFiXHU4YTEzXHU3ZmE0XHU4ZWNkXHU5MGUxXHU1MzY2XHU4ODg4XHU3OTQxXHU0ZmMyXHU1MGJlXHU1MjExXHU1MTQ0XHU1NTUzXHU1NzJkXHU3M2VhXHU1NzhiXHU1OTUxXHU1ZjYyXHU1Zjg0XHU2MDc1'@; put 'XHU2MTc2XHU2MTY3XHU2MWE5XHU2M2IyXHU2NDNhXHU2NTZjXHU2NjZmXHU2ODQyXHU2ZTEzXHU3NTY2XHU3YTNkXHU3Y2ZiXHU3ZDRjXHU3ZDk5XHU3ZTRiXHU3ZjZiXHU4MzBlXHU4MzRhXHU4NmNkXHU4YTA4XHU4YTYzXHU4YjY2XHU4ZWZkXHU5ODFhXHU5ZDhmXHU4MmI4XHU4ZmNlXHU5'@; put 'YmU4XHU1Mjg3XHU2MjFmXHU2NDgzXHU2ZmMwXHU5Njk5XHU2ODQxXHU1MDkxXHU2YjIwXHU2YzdhXHU2ZjU0XHU3YTc0XHU3ZDUwXHU4ODQwXHU4YTIzXHU2NzA4XHU0ZWY2XHU1MDM5XHU1MDI2XHU1MDY1XHU1MTdjXHU1MjM4XHU1MjYzXHU1NWE3XHU1NzBmXHU1ODA1XHU1YWNjXHU1ZWZh'@; put 'XHU2MWIyXHU2MWY4XHU2MmYzXHU2MzcyIl0sWyJiOGExIiwiXHU2OTFjXHU2YTI5XHU3MjdkXHU3MmFjXHU3MzJlXHU3ODE0XHU3ODZmXHU3ZDc5XHU3NzBjXHU4MGE5XHU4OThiXHU4YjE5XHU4Y2UyXHU4ZWQyXHU5MDYzXHU5Mzc1XHU5NjdhXHU5ODU1XHU5YTEzXHU5ZTc4XHU1MTQzXHU1'@; put 'MzlmXHU1M2IzXHU1ZTdiXHU1ZjI2XHU2ZTFiXHU2ZTkwXHU3Mzg0XHU3M2ZlXHU3ZDQzXHU4MjM3XHU4YTAwXHU4YWZhXHU5NjUwXHU0ZTRlXHU1MDBiXHU1M2U0XHU1NDdjXHU1NmZhXHU1OWQxXHU1YjY0XHU1ZGYxXHU1ZWFiXHU1ZjI3XHU2MjM4XHU2NTQ1XHU2N2FmXHU2ZTU2XHU3MmQw'@; put 'XHU3Y2NhXHU4OGI0XHU4MGExXHU4MGUxXHU4M2YwXHU4NjRlXHU4YTg3XHU4ZGU4XHU5MjM3XHU5NmM3XHU5ODY3XHU5ZjEzXHU0ZTk0XHU0ZTkyXHU0ZjBkXHU1MzQ4XHU1NDQ5XHU1NDNlXHU1YTJmXHU1ZjhjXHU1ZmExXHU2MDlmXHU2OGE3XHU2YThlXHU3NDVhXHU3ODgxXHU4YTllXHU4'@; put 'YWE0XHU4Yjc3XHU5MTkwXHU0ZTVlXHU5YmM5XHU0ZWE0XHU0ZjdjXHU0ZmFmXHU1MDE5XHU1MDE2XHU1MTQ5XHU1MTZjXHU1MjlmXHU1MmI5XHU1MmZlXHU1MzlhXHU1M2UzXHU1NDExIl0sWyJiOWExIiwiXHU1NDBlXHU1NTg5XHU1NzUxXHU1N2EyXHU1OTdkXHU1YjU0XHU1YjVkXHU1Yjhm'@; put 'XHU1ZGU1XHU1ZGU3XHU1ZGY3XHU1ZTc4XHU1ZTgzXHU1ZTlhXHU1ZWI3XHU1ZjE4XHU2MDUyXHU2MTRjXHU2Mjk3XHU2MmQ4XHU2M2E3XHU2NTNiXHU2NjAyXHU2NjQzXHU2NmY0XHU2NzZkXHU2ODIxXHU2ODk3XHU2OWNiXHU2YzVmXHU2ZDJhXHU2ZDY5XHU2ZTJmXHU2ZTlkXHU3NTMyXHU3'@; put 'Njg3XHU3ODZjXHU3YTNmXHU3Y2UwXHU3ZDA1XHU3ZDE4XHU3ZDVlXHU3ZGIxXHU4MDE1XHU4MDAzXHU4MGFmXHU4MGIxXHU4MTU0XHU4MThmXHU4MjJhXHU4MzUyXHU4ODRjXHU4ODYxXHU4YjFiXHU4Y2EyXHU4Y2ZjXHU5MGNhXHU5MTc1XHU5MjcxXHU3ODNmXHU5MmZjXHU5NWE0XHU5NjRk'@; put 'XHU5ODA1XHU5OTk5XHU5YWQ4XHU5ZDNiXHU1MjViXHU1MmFiXHU1M2Y3XHU1NDA4XHU1OGQ1XHU2MmY3XHU2ZmUwXHU4YzZhXHU4ZjVmXHU5ZWI5XHU1MTRiXHU1MjNiXHU1NDRhXHU1NmZkXHU3YTQwXHU5MTc3XHU5ZDYwXHU5ZWQyXHU3MzQ0XHU2ZjA5XHU4MTcwXHU3NTExXHU1ZmZkXHU2'@; put 'MGRhXHU5YWE4XHU3MmRiXHU4ZmJjIl0sWyJiYWExIiwiXHU2YjY0XHU5ODAzXHU0ZWNhXHU1NmYwXHU1NzY0XHU1OGJlXHU1YTVhXHU2MDY4XHU2MWM3XHU2NjBmXHU2NjA2XHU2ODM5XHU2OGIxXHU2ZGY3XHU3NWQ1XHU3ZDNhXHU4MjZlXHU5YjQyXHU0ZTliXHU0ZjUwXHU1M2M5XHU1NTA2'@; put 'XHU1ZDZmXHU1ZGU2XHU1ZGVlXHU2N2ZiXHU2Yzk5XHU3NDczXHU3ODAyXHU4YTUwXHU5Mzk2XHU4OGRmXHU1NzUwXHU1ZWE3XHU2MzJiXHU1MGI1XHU1MGFjXHU1MThkXHU2NzAwXHU1NGM5XHU1ODVlXHU1OWJiXHU1YmIwXHU1ZjY5XHU2MjRkXHU2M2ExXHU2ODNkXHU2YjczXHU2ZTA4XHU3'@; put 'MDdkXHU5MWM3XHU3MjgwXHU3ODE1XHU3ODI2XHU3OTZkXHU2NThlXHU3ZDMwXHU4M2RjXHU4OGMxXHU4ZjA5XHU5NjliXHU1MjY0XHU1NzI4XHU2NzUwXHU3ZjZhXHU4Y2ExXHU1MWI0XHU1NzQyXHU5NjJhXHU1ODNhXHU2OThhXHU4MGI0XHU1NGIyXHU1ZDBlXHU1N2ZjXHU3ODk1XHU5ZGZh'@; put 'XHU0ZjVjXHU1MjRhXHU1NDhiXHU2NDNlXHU2NjI4XHU2NzE0XHU2N2Y1XHU3YTg0XHU3YjU2XHU3ZDIyXHU5MzJmXHU2ODVjXHU5YmFkXHU3YjM5XHU1MzE5XHU1MThhXHU1MjM3Il0sWyJiYmExIiwiXHU1YmRmXHU2MmY2XHU2NGFlXHU2NGU2XHU2NzJkXHU2YmJhXHU4NWE5XHU5NmQxXHU3'@; put 'NjkwXHU5YmQ2XHU2MzRjXHU5MzA2XHU5YmFiXHU3NmJmXHU2NjUyXHU0ZTA5XHU1MDk4XHU1M2MyXHU1YzcxXHU2MGU4XHU2NDkyXHU2NTYzXHU2ODVmXHU3MWU2XHU3M2NhXHU3NTIzXHU3Yjk3XHU3ZTgyXHU4Njk1XHU4YjgzXHU4Y2RiXHU5MTc4XHU5OTEwXHU2NWFjXHU2NmFiXHU2Yjhi'@; put 'XHU0ZWQ1XHU0ZWQ0XHU0ZjNhXHU0ZjdmXHU1MjNhXHU1M2Y4XHU1M2YyXHU1NWUzXHU1NmRiXHU1OGViXHU1OWNiXHU1OWM5XHU1OWZmXHU1YjUwXHU1YzRkXHU1ZTAyXHU1ZTJiXHU1ZmQ3XHU2MDFkXHU2MzA3XHU2NTJmXHU1YjVjXHU2NWFmXHU2NWJkXHU2NWU4XHU2NzlkXHU2YjYyXHU2'@; put 'YjdiXHU2YzBmXHU3MzQ1XHU3OTQ5XHU3OWMxXHU3Y2Y4XHU3ZDE5XHU3ZDJiXHU4MGEyXHU4MTAyXHU4MWYzXHU4OTk2XHU4YTVlXHU4YTY5XHU4YTY2XHU4YThjXHU4YWVlXHU4Y2M3XHU4Y2RjXHU5NmNjXHU5OGZjXHU2YjZmXHU0ZThiXHU0ZjNjXHU0ZjhkXHU1MTUwXHU1YjU3XHU1YmZh'@; put 'XHU2MTQ4XHU2MzAxXHU2NjQyIl0sWyJiY2ExIiwiXHU2YjIxXHU2ZWNiXHU2Y2JiXHU3MjNlXHU3NGJkXHU3NWQ0XHU3OGMxXHU3OTNhXHU4MDBjXHU4MDMzXHU4MWVhXHU4NDk0XHU4ZjllXHU2YzUwXHU5ZTdmXHU1ZjBmXHU4YjU4XHU5ZDJiXHU3YWZhXHU4ZWY4XHU1YjhkXHU5NmViXHU0'@; put 'ZTAzXHU1M2YxXHU1N2Y3XHU1OTMxXHU1YWM5XHU1YmE0XHU2MDg5XHU2ZTdmXHU2ZjA2XHU3NWJlXHU4Y2VhXHU1YjlmXHU4NTAwXHU3YmUwXHU1MDcyXHU2N2Y0XHU4MjlkXHU1YzYxXHU4NTRhXHU3ZTFlXHU4MjBlXHU1MTk5XHU1YzA0XHU2MzY4XHU4ZDY2XHU2NTljXHU3MTZlXHU3OTNl'@; put 'XHU3ZDE3XHU4MDA1XHU4YjFkXHU4ZWNhXHU5MDZlXHU4NmM3XHU5MGFhXHU1MDFmXHU1MmZhXHU1YzNhXHU2NzUzXHU3MDdjXHU3MjM1XHU5MTRjXHU5MWM4XHU5MzJiXHU4MmU1XHU1YmMyXHU1ZjMxXHU2MGY5XHU0ZTNiXHU1M2Q2XHU1Yjg4XHU2MjRiXHU2NzMxXHU2YjhhXHU3MmU5XHU3'@; put 'M2UwXHU3YTJlXHU4MTZiXHU4ZGEzXHU5MTUyXHU5OTk2XHU1MTEyXHU1M2Q3XHU1NDZhXHU1YmZmXHU2Mzg4XHU2YTM5XHU3ZGFjXHU5NzAwXHU1NmRhXHU1M2NlXHU1NDY4Il0sWyJiZGExIiwiXHU1Yjk3XHU1YzMxXHU1ZGRlXHU0ZmVlXHU2MTAxXHU2MmZlXHU2ZDMyXHU3OWMwXHU3OWNi'@; put 'XHU3ZDQyXHU3ZTRkXHU3ZmQyXHU4MWVkXHU4MjFmXHU4NDkwXHU4ODQ2XHU4OTcyXHU4YjkwXHU4ZTc0XHU4ZjJmXHU5MDMxXHU5MTRiXHU5MTZjXHU5NmM2XHU5MTljXHU0ZWMwXHU0ZjRmXHU1MTQ1XHU1MzQxXHU1ZjkzXHU2MjBlXHU2N2Q0XHU2YzQxXHU2ZTBiXHU3MzYzXHU3ZTI2XHU5'@; put 'MWNkXHU5MjgzXHU1M2Q0XHU1OTE5XHU1YmJmXHU2ZGQxXHU3OTVkXHU3ZTJlXHU3YzliXHU1ODdlXHU3MTlmXHU1MWZhXHU4ODUzXHU4ZmYwXHU0ZmNhXHU1Y2ZiXHU2NjI1XHU3N2FjXHU3YWUzXHU4MjFjXHU5OWZmXHU1MWM2XHU1ZmFhXHU2NWVjXHU2OTZmXHU2Yjg5XHU2ZGYzXHU2ZTk2'@; put 'XHU2ZjY0XHU3NmZlXHU3ZDE0XHU1ZGUxXHU5MDc1XHU5MTg3XHU5ODA2XHU1MWU2XHU1MjFkXHU2MjQwXHU2NjkxXHU2NmQ5XHU2ZTFhXHU1ZWI2XHU3ZGQyXHU3ZjcyXHU2NmY4XHU4NWFmXHU4NWY3XHU4YWY4XHU1MmE5XHU1M2Q5XHU1OTczXHU1ZThmXHU1ZjkwXHU2MDU1XHU5MmU0XHU5'@; put 'NjY0XHU1MGI3XHU1MTFmIl0sWyJiZWExIiwiXHU1MmRkXHU1MzIwXHU1MzQ3XHU1M2VjXHU1NGU4XHU1NTQ2XHU1NTMxXHU1NjE3XHU1OTY4XHU1OWJlXHU1YTNjXHU1YmI1XHU1YzA2XHU1YzBmXHU1YzExXHU1YzFhXHU1ZTg0XHU1ZThhXHU1ZWUwXHU1ZjcwXHU2MjdmXHU2Mjg0XHU2MmRi'@; put 'XHU2MzhjXHU2Mzc3XHU2NjA3XHU2NjBjXHU2NjJkXHU2Njc2XHU2NzdlXHU2OGEyXHU2YTFmXHU2YTM1XHU2Y2JjXHU2ZDg4XHU2ZTA5XHU2ZTU4XHU3MTNjXHU3MTI2XHU3MTY3XHU3NWM3XHU3NzAxXHU3ODVkXHU3OTAxXHU3OTY1XHU3OWYwXHU3YWUwXHU3YjExXHU3Y2E3XHU3ZDM5XHU4'@; put 'MDk2XHU4M2Q2XHU4NDhiXHU4NTQ5XHU4ODVkXHU4OGYzXHU4YTFmXHU4YTNjXHU4YTU0XHU4YTczXHU4YzYxXHU4Y2RlXHU5MWE0XHU5MjY2XHU5MzdlXHU5NDE4XHU5NjljXHU5Nzk4XHU0ZTBhXHU0ZTA4XHU0ZTFlXHU0ZTU3XHU1MTk3XHU1MjcwXHU1N2NlXHU1ODM0XHU1OGNjXHU1YjIy'@; put 'XHU1ZTM4XHU2MGM1XHU2NGZlXHU2NzYxXHU2NzU2XHU2ZDQ0XHU3MmI2XHU3NTczXHU3YTYzXHU4NGI4XHU4YjcyXHU5MWI4XHU5MzIwXHU1NjMxXHU1N2Y0XHU5OGZlIl0sWyJiZmExIiwiXHU2MmVkXHU2OTBkXHU2Yjk2XHU3MWVkXHU3ZTU0XHU4MDc3XHU4MjcyXHU4OWU2XHU5OGRmXHU4'@; put 'NzU1XHU4ZmIxXHU1YzNiXHU0ZjM4XHU0ZmUxXHU0ZmI1XHU1NTA3XHU1YTIwXHU1YmRkXHU1YmU5XHU1ZmMzXHU2MTRlXHU2MzJmXHU2NWIwXHU2NjRiXHU2OGVlXHU2OTliXHU2ZDc4XHU2ZGYxXHU3NTMzXHU3NWI5XHU3NzFmXHU3OTVlXHU3OWU2XHU3ZDMzXHU4MWUzXHU4MmFmXHU4NWFh'@; put 'XHU4OWFhXHU4YTNhXHU4ZWFiXHU4ZjliXHU5MDMyXHU5MWRkXHU5NzA3XHU0ZWJhXHU0ZWMxXHU1MjAzXHU1ODc1XHU1OGVjXHU1YzBiXHU3NTFhXHU1YzNkXHU4MTRlXHU4YTBhXHU4ZmM1XHU5NjYzXHU5NzZkXHU3YjI1XHU4YWNmXHU5ODA4XHU5MTYyXHU1NmYzXHU1M2E4XHU5MDE3XHU1'@; put 'NDM5XHU1NzgyXHU1ZTI1XHU2M2E4XHU2YzM0XHU3MDhhXHU3NzYxXHU3YzhiXHU3ZmUwXHU4ODcwXHU5MDQyXHU5MTU0XHU5MzEwXHU5MzE4XHU5NjhmXHU3NDVlXHU5YWM0XHU1ZDA3XHU1ZDY5XHU2NTcwXHU2N2EyXHU4ZGE4XHU5NmRiXHU2MzZlXHU2NzQ5XHU2OTE5XHU4M2M1XHU5ODE3'@; put 'XHU5NmMwXHU4OGZlIl0sWyJjMGExIiwiXHU2Zjg0XHU2NDdhXHU1YmY4XHU0ZTE2XHU3MDJjXHU3NTVkXHU2NjJmXHU1MWM0XHU1MjM2XHU1MmUyXHU1OWQzXHU1ZjgxXHU2MDI3XHU2MjEwXHU2NTNmXHU2NTc0XHU2NjFmXHU2Njc0XHU2OGYyXHU2ODE2XHU2YjYzXHU2ZTA1XHU3MjcyXHU3'@; put 'NTFmXHU3NmRiXHU3Y2JlXHU4MDU2XHU1OGYwXHU4OGZkXHU4OTdmXHU4YWEwXHU4YTkzXHU4YWNiXHU5MDFkXHU5MTkyXHU5NzUyXHU5NzU5XHU2NTg5XHU3YTBlXHU4MTA2XHU5NmJiXHU1ZTJkXHU2MGRjXHU2MjFhXHU2NWE1XHU2NjE0XHU2NzkwXHU3N2YzXHU3YTRkXHU3YzRkXHU3ZTNl'@; put 'XHU4MTBhXHU4Y2FjXHU4ZDY0XHU4ZGUxXHU4ZTVmXHU3OGE5XHU1MjA3XHU2MmQ5XHU2M2E1XHU2NDQyXHU2Mjk4XHU4YTJkXHU3YTgzXHU3YmMwXHU4YWFjXHU5NmVhXHU3ZDc2XHU4MjBjXHU4NzQ5XHU0ZWQ5XHU1MTQ4XHU1MzQzXHU1MzYwXHU1YmEzXHU1YzAyXHU1YzE2XHU1ZGRkXHU2'@; put 'MjI2XHU2MjQ3XHU2NGIwXHU2ODEzXHU2ODM0XHU2Y2M5XHU2ZDQ1XHU2ZDE3XHU2N2QzXHU2ZjVjXHU3MTRlXHU3MTdkXHU2NWNiXHU3YTdmXHU3YmFkXHU3ZGRhIl0sWyJjMWExIiwiXHU3ZTRhXHU3ZmE4XHU4MTdhXHU4MjFiXHU4MjM5XHU4NWE2XHU4YTZlXHU4Y2NlXHU4ZGY1XHU5MDc4'@; put 'XHU5MDc3XHU5MmFkXHU5MjkxXHU5NTgzXHU5YmFlXHU1MjRkXHU1NTg0XHU2ZjM4XHU3MTM2XHU1MTY4XHU3OTg1XHU3ZTU1XHU4MWIzXHU3Y2NlXHU1NjRjXHU1ODUxXHU1Y2E4XHU2M2FhXHU2NmZlXHU2NmZkXHU2OTVhXHU3MmQ5XHU3NThmXHU3NThlXHU3OTBlXHU3OTU2XHU3OWRmXHU3'@; put 'Yzk3XHU3ZDIwXHU3ZDQ0XHU4NjA3XHU4YTM0XHU5NjNiXHU5MDYxXHU5ZjIwXHU1MGU3XHU1Mjc1XHU1M2NjXHU1M2UyXHU1MDA5XHU1NWFhXHU1OGVlXHU1OTRmXHU3MjNkXHU1YjhiXHU1YzY0XHU1MzFkXHU2MGUzXHU2MGYzXHU2MzVjXHU2MzgzXHU2MzNmXHU2M2JiXHU2NGNkXHU2NWU5'@; put 'XHU2NmY5XHU1ZGUzXHU2OWNkXHU2OWZkXHU2ZjE1XHU3MWU1XHU0ZTg5XHU3NWU5XHU3NmY4XHU3YTkzXHU3Y2RmXHU3ZGNmXHU3ZDljXHU4MDYxXHU4MzQ5XHU4MzU4XHU4NDZjXHU4NGJjXHU4NWZiXHU4OGM1XHU4ZDcwXHU5MDAxXHU5MDZkXHU5Mzk3XHU5NzFjXHU5YTEyXHU1MGNmXHU1'@; put 'ODk3XHU2MThlIl0sWyJjMmExIiwiXHU4MWQzXHU4NTM1XHU4ZDA4XHU5MDIwXHU0ZmMzXHU1MDc0XHU1MjQ3XHU1MzczXHU2MDZmXHU2MzQ5XHU2NzVmXHU2ZTJjXHU4ZGIzXHU5MDFmXHU0ZmQ3XHU1YzVlXHU4Y2NhXHU2NWNmXHU3ZDlhXHU1MzUyXHU4ODk2XHU1MTc2XHU2M2MzXHU1YjU4'@; put 'XHU1YjZiXHU1YzBhXHU2NDBkXHU2NzUxXHU5MDVjXHU0ZWQ2XHU1OTFhXHU1OTJhXHU2YzcwXHU4YTUxXHU1NTNlXHU1ODE1XHU1OWE1XHU2MGYwXHU2MjUzXHU2N2MxXHU4MjM1XHU2OTU1XHU5NjQwXHU5OWM0XHU5YTI4XHU0ZjUzXHU1ODA2XHU1YmZlXHU4MDEwXHU1Y2IxXHU1ZTJmXHU1'@; put 'Zjg1XHU2MDIwXHU2MTRiXHU2MjM0XHU2NmZmXHU2Y2YwXHU2ZWRlXHU4MGNlXHU4MTdmXHU4MmQ0XHU4ODhiXHU4Y2I4XHU5MDAwXHU5MDJlXHU5NjhhXHU5ZWRiXHU5YmRiXHU0ZWUzXHU1M2YwXHU1OTI3XHU3YjJjXHU5MThkXHU5ODRjXHU5ZGY5XHU2ZWRkXHU3MDI3XHU1MzUzXHU1NTQ0'@; put 'XHU1Yjg1XHU2MjU4XHU2MjllXHU2MmQzXHU2Y2EyXHU2ZmVmXHU3NDIyXHU4YTE3XHU5NDM4XHU2ZmMxXHU4YWZlXHU4MzM4XHU1MWU3XHU4NmY4XHU1M2VhIl0sWyJjM2ExIiwiXHU1M2U5XHU0ZjQ2XHU5MDU0XHU4ZmIwXHU1OTZhXHU4MTMxXHU1ZGZkXHU3YWVhXHU4ZmJmXHU2OGRhXHU4'@; put 'YzM3XHU3MmY4XHU5YzQ4XHU2YTNkXHU4YWIwXHU0ZTM5XHU1MzU4XHU1NjA2XHU1NzY2XHU2MmM1XHU2M2EyXHU2NWU2XHU2YjRlXHU2ZGUxXHU2ZTViXHU3MGFkXHU3N2VkXHU3YWVmXHU3YmFhXHU3ZGJiXHU4MDNkXHU4MGM2XHU4NmNiXHU4YTk1XHU5MzViXHU1NmUzXHU1OGM3XHU1ZjNl'@; put 'XHU2NWFkXHU2Njk2XHU2YTgwXHU2YmI1XHU3NTM3XHU4YWM3XHU1MDI0XHU3N2U1XHU1NzMwXHU1ZjFiXHU2MDY1XHU2NjdhXHU2YzYwXHU3NWY0XHU3YTFhXHU3ZjZlXHU4MWY0XHU4NzE4XHU5MDQ1XHU5OWIzXHU3YmM5XHU3NTVjXHU3YWY5XHU3YjUxXHU4NGM0XHU5MDEwXHU3OWU5XHU3'@; put 'YTkyXHU4MzM2XHU1YWUxXHU3NzQwXHU0ZTJkXHU0ZWYyXHU1Yjk5XHU1ZmUwXHU2MmJkXHU2NjNjXHU2N2YxXHU2Y2U4XHU4NjZiXHU4ODc3XHU4YTNiXHU5MTRlXHU5MmYzXHU5OWQwXHU2YTE3XHU3MDI2XHU3MzJhXHU4MmU3XHU4NDU3XHU4Y2FmXHU0ZTAxXHU1MTQ2XHU1MWNiXHU1NThi'@; put 'XHU1YmY1Il0sWyJjNGExIiwiXHU1ZTE2XHU1ZTMzXHU1ZTgxXHU1ZjE0XHU1ZjM1XHU1ZjZiXHU1ZmI0XHU2MWYyXHU2MzExXHU2NmEyXHU2NzFkXHU2ZjZlXHU3MjUyXHU3NTNhXHU3NzNhXHU4MDc0XHU4MTM5XHU4MTc4XHU4Nzc2XHU4YWJmXHU4YWRjXHU4ZDg1XHU4ZGYzXHU5MjlhXHU5'@; put 'NTc3XHU5ODAyXHU5Y2U1XHU1MmM1XHU2MzU3XHU3NmY0XHU2NzE1XHU2Yzg4XHU3M2NkXHU4Y2MzXHU5M2FlXHU5NjczXHU2ZDI1XHU1ODljXHU2OTBlXHU2OWNjXHU4ZmZkXHU5MzlhXHU3NWRiXHU5MDFhXHU1ODVhXHU2ODAyXHU2M2I0XHU2OWZiXHU0ZjQzXHU2ZjJjXHU2N2Q4XHU4ZmJi'@; put 'XHU4NTI2XHU3ZGI0XHU5MzU0XHU2OTNmXHU2ZjcwXHU1NzZhXHU1OGY3XHU1YjJjXHU3ZDJjXHU3MjJhXHU1NDBhXHU5MWUzXHU5ZGI0XHU0ZWFkXHU0ZjRlXHU1MDVjXHU1MDc1XHU1MjQzXHU4YzllXHU1NDQ4XHU1ODI0XHU1YjlhXHU1ZTFkXHU1ZTk1XHU1ZWFkXHU1ZWY3XHU1ZjFmXHU2'@; put 'MDhjXHU2MmI1XHU2MzNhXHU2M2QwXHU2OGFmXHU2YzQwXHU3ODg3XHU3OThlXHU3YTBiXHU3ZGUwXHU4MjQ3XHU4YTAyXHU4YWU2XHU4ZTQ0XHU5MDEzIl0sWyJjNWExIiwiXHU5MGI4XHU5MTJkXHU5MWQ4XHU5ZjBlXHU2Y2U1XHU2NDU4XHU2NGUyXHU2NTc1XHU2ZWY0XHU3Njg0XHU3YjFi'@; put 'XHU5MDY5XHU5M2QxXHU2ZWJhXHU1NGYyXHU1ZmI5XHU2NGE0XHU4ZjRkXHU4ZmVkXHU5MjQ0XHU1MTc4XHU1ODZiXHU1OTI5XHU1YzU1XHU1ZTk3XHU2ZGZiXHU3ZThmXHU3NTFjXHU4Y2JjXHU4ZWUyXHU5ODViXHU3MGI5XHU0ZjFkXHU2YmJmXHU2ZmIxXHU3NTMwXHU5NmZiXHU1MTRlXHU1'@; put 'NDEwXHU1ODM1XHU1ODU3XHU1OWFjXHU1YzYwXHU1ZjkyXHU2NTk3XHU2NzVjXHU2ZTIxXHU3NjdiXHU4M2RmXHU4Y2VkXHU5MDE0XHU5MGZkXHU5MzRkXHU3ODI1XHU3ODNhXHU1MmFhXHU1ZWE2XHU1NzFmXHU1OTc0XHU2MDEyXHU1MDEyXHU1MTVhXHU1MWFjXHU1MWNkXHU1MjAwXHU1NTEw'@; put 'XHU1ODU0XHU1ODU4XHU1OTU3XHU1Yjk1XHU1Y2Y2XHU1ZDhiXHU2MGJjXHU2Mjk1XHU2NDJkXHU2NzcxXHU2ODQzXHU2OGJjXHU2OGRmXHU3NmQ3XHU2ZGQ4XHU2ZTZmXHU2ZDliXHU3MDZmXHU3MWM4XHU1ZjUzXHU3NWQ4XHU3OTc3XHU3YjQ5XHU3YjU0XHU3YjUyXHU3Y2Q2XHU3ZDcxXHU1'@; put 'MjMwIl0sWyJjNmExIiwiXHU4NDYzXHU4NTY5XHU4NWU0XHU4YTBlXHU4YjA0XHU4YzQ2XHU4ZTBmXHU5MDAzXHU5MDBmXHU5NDE5XHU5Njc2XHU5ODJkXHU5YTMwXHU5NWQ4XHU1MGNkXHU1MmQ1XHU1NDBjXHU1ODAyXHU1YzBlXHU2MWE3XHU2NDllXHU2ZDFlXHU3N2IzXHU3YWU1XHU4MGY0'@; put 'XHU4NDA0XHU5MDUzXHU5Mjg1XHU1Y2UwXHU5ZDA3XHU1MzNmXHU1Zjk3XHU1ZmIzXHU2ZDljXHU3Mjc5XHU3NzYzXHU3OWJmXHU3YmU0XHU2YmQyXHU3MmVjXHU4YWFkXHU2ODAzXHU2YTYxXHU1MWY4XHU3YTgxXHU2OTM0XHU1YzRhXHU5Y2Y2XHU4MmViXHU1YmM1XHU5MTQ5XHU3MDFlXHU1'@; put 'Njc4XHU1YzZmXHU2MGM3XHU2NTY2XHU2YzhjXHU4YzVhXHU5MDQxXHU5ODEzXHU1NDUxXHU2NmM3XHU5MjBkXHU1OTQ4XHU5MGEzXHU1MTg1XHU0ZTRkXHU1MWVhXHU4NTk5XHU4YjBlXHU3MDU4XHU2MzdhXHU5MzRiXHU2OTYyXHU5OWI0XHU3ZTA0XHU3NTc3XHU1MzU3XHU2OTYwXHU4ZWRm'@; put 'XHU5NmUzXHU2YzVkXHU0ZThjXHU1YzNjXHU1ZjEwXHU4ZmU5XHU1MzAyXHU4Y2QxXHU4MDg5XHU4Njc5XHU1ZWZmXHU2NWU1XHU0ZTczXHU1MTY1Il0sWyJjN2ExIiwiXHU1OTgyXHU1YzNmXHU5N2VlXHU0ZWZiXHU1OThhXHU1ZmNkXHU4YThkXHU2ZmUxXHU3OWIwXHU3OTYyXHU1YmU3XHU4'@; put 'NDcxXHU3MzJiXHU3MWIxXHU1ZTc0XHU1ZmY1XHU2MzdiXHU2NDlhXHU3MWMzXHU3Yzk4XHU0ZTQzXHU1ZWZjXHU0ZTRiXHU1N2RjXHU1NmEyXHU2MGE5XHU2ZmMzXHU3ZDBkXHU4MGZkXHU4MTMzXHU4MWJmXHU4ZmIyXHU4OTk3XHU4NmE0XHU1ZGY0XHU2MjhhXHU2NGFkXHU4OTg3XHU2Nzc3'@; put 'XHU2Y2UyXHU2ZDNlXHU3NDM2XHU3ODM0XHU1YTQ2XHU3Zjc1XHU4MmFkXHU5OWFjXHU0ZmYzXHU1ZWMzXHU2MmRkXHU2MzkyXHU2NTU3XHU2NzZmXHU3NmMzXHU3MjRjXHU4MGNjXHU4MGJhXHU4ZjI5XHU5MTRkXHU1MDBkXHU1N2Y5XHU1YTkyXHU2ODg1XHU2OTczXHU3MTY0XHU3MmZkXHU4'@; put 'Y2I3XHU1OGYyXHU4Y2UwXHU5NjZhXHU5MDE5XHU4NzdmXHU3OWU0XHU3N2U3XHU4NDI5XHU0ZjJmXHU1MjY1XHU1MzVhXHU2MmNkXHU2N2NmXHU2Y2NhXHU3NjdkXHU3Yjk0XHU3Yzk1XHU4MjM2XHU4NTg0XHU4ZmViXHU2NmRkXHU2ZjIwXHU3MjA2XHU3ZTFiXHU4M2FiXHU5OWMxXHU5ZWE2'@; put 'Il0sWyJjOGExIiwiXHU1MWZkXHU3YmIxXHU3ODcyXHU3YmI4XHU4MDg3XHU3YjQ4XHU2YWU4XHU1ZTYxXHU4MDhjXHU3NTUxXHU3NTYwXHU1MTZiXHU5MjYyXHU2ZThjXHU3NjdhXHU5MTk3XHU5YWVhXHU0ZjEwXHU3ZjcwXHU2MjljXHU3YjRmXHU5NWE1XHU5Y2U5XHU1NjdhXHU1ODU5XHU4'@; put 'NmU0XHU5NmJjXHU0ZjM0XHU1MjI0XHU1MzRhXHU1M2NkXHU1M2RiXHU1ZTA2XHU2NDJjXHU2NTkxXHU2NzdmXHU2YzNlXHU2YzRlXHU3MjQ4XHU3MmFmXHU3M2VkXHU3NTU0XHU3ZTQxXHU4MjJjXHU4NWU5XHU4Y2E5XHU3YmM0XHU5MWM2XHU3MTY5XHU5ODEyXHU5OGVmXHU2MzNkXHU2NjY5'@; put 'XHU3NTZhXHU3NmU0XHU3OGQwXHU4NTQzXHU4NmVlXHU1MzJhXHU1MzUxXHU1NDI2XHU1OTgzXHU1ZTg3XHU1ZjdjXHU2MGIyXHU2MjQ5XHU2Mjc5XHU2MmFiXHU2NTkwXHU2YmQ0XHU2Y2NjXHU3NWIyXHU3NmFlXHU3ODkxXHU3OWQ4XHU3ZGNiXHU3Zjc3XHU4MGE1XHU4OGFiXHU4YWI5XHU4'@; put 'Y2JiXHU5MDdmXHU5NzVlXHU5OGRiXHU2YTBiXHU3YzM4XHU1MDk5XHU1YzNlXHU1ZmFlXHU2Nzg3XHU2YmQ4XHU3NDM1XHU3NzA5XHU3ZjhlIl0sWyJjOWExIiwiXHU5ZjNiXHU2N2NhXHU3YTE3XHU1MzM5XHU3NThiXHU5YWVkXHU1ZjY2XHU4MTlkXHU4M2YxXHU4MDk4XHU1ZjNjXHU1ZmM1'@; put 'XHU3NTYyXHU3YjQ2XHU5MDNjXHU2ODY3XHU1OWViXHU1YTliXHU3ZDEwXHU3NjdlXHU4YjJjXHU0ZmY1XHU1ZjZhXHU2YTE5XHU2YzM3XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4YTU1XHU4Yzc5XHU1ZWRmXHU2M2NmXHU3NWM1XHU3OWQyXHU4MmQ3XHU5MzI4XHU5MmYyXHU4NDljXHU4'@; put 'NmVkXHU5YzJkXHU1NGMxXHU1ZjZjXHU2NThjXHU2ZDVjXHU3MDE1XHU4Y2E3XHU4Y2QzXHU5ODNiXHU2NTRmXHU3NGY2XHU0ZTBkXHU0ZWQ4XHU1N2UwXHU1OTJiXHU1YTY2XHU1YmNjXHU1MWE4XHU1ZTAzXHU1ZTljXHU2MDE2XHU2Mjc2XHU2NTc3XHU2NWE3XHU2NjZlXHU2ZDZlXHU3MjM2'@; put 'XHU3YjI2XHU4MTUwXHU4MTlhXHU4Mjk5XHU4YjVjXHU4Y2EwXHU4Y2U2XHU4ZDc0XHU5NjFjXHU5NjQ0XHU0ZmFlXHU2NGFiXHU2YjY2XHU4MjFlXHU4NDYxXHU4NTZhXHU5MGU4XHU1YzAxXHU2OTUzXHU5OGE4XHU4NDdhXHU4NTU3XHU0ZjBmXHU1MjZmXHU1ZmE5XHU1ZTQ1XHU2NzBkIl0s'@; put 'WyJjYWExIiwiXHU3OThmXHU4MTc5XHU4OTA3XHU4OTg2XHU2ZGY1XHU1ZjE3XHU2MjU1XHU2Y2I4XHU0ZWNmXHU3MjY5XHU5YjkyXHU1MjA2XHU1NDNiXHU1Njc0XHU1OGIzXHU2MWE0XHU2MjZlXHU3MTFhXHU1OTZlXHU3Yzg5XHU3Y2RlXHU3ZDFiXHU5NmYwXHU2NTg3XHU4MDVlXHU0ZTE5'@; put 'XHU0Zjc1XHU1MTc1XHU1ODQwXHU1ZTYzXHU1ZTczXHU1ZjBhXHU2N2M0XHU0ZTI2XHU4NTNkXHU5NTg5XHU5NjViXHU3YzczXHU5ODAxXHU1MGZiXHU1OGMxXHU3NjU2XHU3OGE3XHU1MjI1XHU3N2E1XHU4NTExXHU3Yjg2XHU1MDRmXHU1OTA5XHU3MjQ3XHU3YmM3XHU3ZGU4XHU4ZmJhXHU4'@; put 'ZmQ0XHU5MDRkXHU0ZmJmXHU1MmM5XHU1YTI5XHU1ZjAxXHU5N2FkXHU0ZmRkXHU4MjE3XHU5MmVhXHU1NzAzXHU2MzU1XHU2YjY5XHU3NTJiXHU4OGRjXHU4ZjE0XHU3YTQyXHU1MmRmXHU1ODkzXHU2MTU1XHU2MjBhXHU2NmFlXHU2YmNkXHU3YzNmXHU4M2U5XHU1MDIzXHU0ZmY4XHU1MzA1'@; put 'XHU1NDQ2XHU1ODMxXHU1OTQ5XHU1YjlkXHU1Y2YwXHU1Y2VmXHU1ZDI5XHU1ZTk2XHU2MmIxXHU2MzY3XHU2NTNlXHU2NWI5XHU2NzBiIl0sWyJjYmExIiwiXHU2Y2Q1XHU2Y2UxXHU3MGY5XHU3ODMyXHU3ZTJiXHU4MGRlXHU4MmIzXHU4NDBjXHU4NGVjXHU4NzAyXHU4OTEyXHU4YTJhXHU4'@; put 'YzRhXHU5MGE2XHU5MmQyXHU5OGZkXHU5Y2YzXHU5ZDZjXHU0ZTRmXHU0ZWExXHU1MDhkXHU1MjU2XHU1NzRhXHU1OWE4XHU1ZTNkXHU1ZmQ4XHU1ZmQ5XHU2MjNmXHU2NmI0XHU2NzFiXHU2N2QwXHU2OGQyXHU1MTkyXHU3ZDIxXHU4MGFhXHU4MWE4XHU4YjAwXHU4YzhjXHU4Y2JmXHU5Mjdl'@; put 'XHU5NjMyXHU1NDIwXHU5ODJjXHU1MzE3XHU1MGQ1XHU1MzVjXHU1OGE4XHU2NGIyXHU2NzM0XHU3MjY3XHU3NzY2XHU3YTQ2XHU5MWU2XHU1MmMzXHU2Y2ExXHU2Yjg2XHU1ODAwXHU1ZTRjXHU1OTU0XHU2NzJjXHU3ZmZiXHU1MWUxXHU3NmM2XHU2NDY5XHU3OGU4XHU5YjU0XHU5ZWJiXHU1'@; put 'N2NiXHU1OWI5XHU2NjI3XHU2NzlhXHU2YmNlXHU1NGU5XHU2OWQ5XHU1ZTU1XHU4MTljXHU2Nzk1XHU5YmFhXHU2N2ZlXHU5YzUyXHU2ODVkXHU0ZWE2XHU0ZmUzXHU1M2M4XHU2MmI5XHU2NzJiXHU2Y2FiXHU4ZmM0XHU0ZmFkXHU3ZTZkXHU5ZWJmXHU0ZTA3XHU2MTYyXHU2ZTgwIl0sWyJj'@; put 'Y2ExIiwiXHU2ZjJiXHU4NTEzXHU1NDczXHU2NzJhXHU5YjQ1XHU1ZGYzXHU3Yjk1XHU1Y2FjXHU1YmM2XHU4NzFjXHU2ZTRhXHU4NGQxXHU3YTE0XHU4MTA4XHU1OTk5XHU3YzhkXHU2YzExXHU3NzIwXHU1MmQ5XHU1OTIyXHU3MTIxXHU3MjVmXHU3N2RiXHU5NzI3XHU5ZDYxXHU2OTBiXHU1'@; put 'YTdmXHU1YTE4XHU1MWE1XHU1NDBkXHU1NDdkXHU2NjBlXHU3NmRmXHU4ZmY3XHU5Mjk4XHU5Y2Y0XHU1OWVhXHU3MjVkXHU2ZWM1XHU1MTRkXHU2OGM5XHU3ZGJmXHU3ZGVjXHU5NzYyXHU5ZWJhXHU2NDc4XHU2YTIxXHU4MzAyXHU1OTg0XHU1YjVmXHU2YmRiXHU3MzFiXHU3NmYyXHU3ZGIy'@; put 'XHU4MDE3XHU4NDk5XHU1MTMyXHU2NzI4XHU5ZWQ5XHU3NmVlXHU2NzYyXHU1MmZmXHU5OTA1XHU1YzI0XHU2MjNiXHU3YzdlXHU4Y2IwXHU1NTRmXHU2MGI2XHU3ZDBiXHU5NTgwXHU1MzAxXHU0ZTVmXHU1MWI2XHU1OTFjXHU3MjNhXHU4MDM2XHU5MWNlXHU1ZjI1XHU3N2UyXHU1Mzg0XHU1'@; put 'Zjc5XHU3ZDA0XHU4NWFjXHU4YTMzXHU4ZThkXHU5NzU2XHU2N2YzXHU4NWFlXHU5NDUzXHU2MTA5XHU2MTA4XHU2Y2I5XHU3NjUyIl0sWyJjZGExIiwiXHU4YWVkXHU4ZjM4XHU1NTJmXHU0ZjUxXHU1MTJhXHU1MmM3XHU1M2NiXHU1YmE1XHU1ZTdkXHU2MGEwXHU2MTgyXHU2M2Q2XHU2NzA5'@; put 'XHU2N2RhXHU2ZTY3XHU2ZDhjXHU3MzM2XHU3MzM3XHU3NTMxXHU3OTUwXHU4OGQ1XHU4YTk4XHU5MDRhXHU5MDkxXHU5MGY1XHU5NmM0XHU4NzhkXHU1OTE1XHU0ZTg4XHU0ZjU5XHU0ZTBlXHU4YTg5XHU4ZjNmXHU5ODEwXHU1MGFkXHU1ZTdjXHU1OTk2XHU1YmI5XHU1ZWI4XHU2M2RhXHU2'@; put 'M2ZhXHU2NGMxXHU2NmRjXHU2OTRhXHU2OWQ4XHU2ZDBiXHU2ZWI2XHU3MTk0XHU3NTI4XHU3YWFmXHU3ZjhhXHU4MDAwXHU4NDQ5XHU4NGM5XHU4OTgxXHU4YjIxXHU4ZTBhXHU5MDY1XHU5NjdkXHU5OTBhXHU2MTdlXHU2MjkxXHU2YjMyXHU2YzgzXHU2ZDc0XHU3ZmNjXHU3ZmZjXHU2ZGMw'@; put 'XHU3Zjg1XHU4N2JhXHU4OGY4XHU2NzY1XHU4M2IxXHU5ODNjXHU5NmY3XHU2ZDFiXHU3ZDYxXHU4NDNkXHU5MTZhXHU0ZTcxXHU1Mzc1XHU1ZDUwXHU2YjA0XHU2ZmViXHU4NWNkXHU4NjJkXHU4OWE3XHU1MjI5XHU1NDBmXHU1YzY1XHU2NzRlXHU2OGE4XHU3NDA2XHU3NDgzIl0sWyJjZWEx'@; put 'IiwiXHU3NWUyXHU4OGNmXHU4OGUxXHU5MWNjXHU5NmUyXHU5Njc4XHU1ZjhiXHU3Mzg3XHU3YWNiXHU4NDRlXHU2M2EwXHU3NTY1XHU1Mjg5XHU2ZDQxXHU2ZTljXHU3NDA5XHU3NTU5XHU3ODZiXHU3YzkyXHU5Njg2XHU3YWRjXHU5ZjhkXHU0ZmI2XHU2MTZlXHU2NWM1XHU4NjVjXHU0ZTg2'@; put 'XHU0ZWFlXHU1MGRhXHU0ZTIxXHU1MWNjXHU1YmVlXHU2NTk5XHU2ODgxXHU2ZGJjXHU3MzFmXHU3NjQyXHU3N2FkXHU3YTFjXHU3Y2U3XHU4MjZmXHU4YWQyXHU5MDdjXHU5MWNmXHU5Njc1XHU5ODE4XHU1MjliXHU3ZGQxXHU1MDJiXHU1Mzk4XHU2Nzk3XHU2ZGNiXHU3MWQwXHU3NDMzXHU4'@; put 'MWU4XHU4ZjJhXHU5NmEzXHU5YzU3XHU5ZTlmXHU3NDYwXHU1ODQxXHU2ZDk5XHU3ZDJmXHU5ODVlXHU0ZWU0XHU0ZjM2XHU0ZjhiXHU1MWI3XHU1MmIxXHU1ZGJhXHU2MDFjXHU3M2IyXHU3OTNjXHU4MmQzXHU5MjM0XHU5NmI3XHU5NmY2XHU5NzBhXHU5ZTk3XHU5ZjYyXHU2NmE2XHU2Yjc0'@; put 'XHU1MjE3XHU1MmEzXHU3MGM4XHU4OGMyXHU1ZWM5XHU2MDRiXHU2MTkwXHU2ZjIzXHU3MTQ5XHU3YzNlXHU3ZGY0XHU4MDZmIl0sWyJjZmExIiwiXHU4NGVlXHU5MDIzXHU5MzJjXHU1NDQyXHU5YjZmXHU2YWQzXHU3MDg5XHU4Y2MyXHU4ZGVmXHU5NzMyXHU1MmI0XHU1YTQxXHU1ZWNhXHU1'@; put 'ZjA0XHU2NzE3XHU2OTdjXHU2OTk0XHU2ZDZhXHU2ZjBmXHU3MjYyXHU3MmZjXHU3YmVkXHU4MDAxXHU4MDdlXHU4NzRiXHU5MGNlXHU1MTZkXHU5ZTkzXHU3OTg0XHU4MDhiXHU5MzMyXHU4YWQ2XHU1MDJkXHU1NDhjXHU4YTcxXHU2YjZhXHU4Y2M0XHU4MTA3XHU2MGQxXHU2N2EwXHU5ZGYy'@; put 'XHU0ZTk5XHU0ZTk4XHU5YzEwXHU4YTZiXHU4NWMxXHU4NTY4XHU2OTAwXHU2ZTdlXHU3ODk3XHU4MTU1Il0sWyJkMGExIiwiXHU1ZjBjXHU0ZTEwXHU0ZTE1XHU0ZTJhXHU0ZTMxXHU0ZTM2XHU0ZTNjXHU0ZTNmXHU0ZTQyXHU0ZTU2XHU0ZTU4XHU0ZTgyXHU0ZTg1XHU4YzZiXHU0ZThhXHU4'@; put 'MjEyXHU1ZjBkXHU0ZThlXHU0ZTllXHU0ZTlmXHU0ZWEwXHU0ZWEyXHU0ZWIwXHU0ZWIzXHU0ZWI2XHU0ZWNlXHU0ZWNkXHU0ZWM0XHU0ZWM2XHU0ZWMyXHU0ZWQ3XHU0ZWRlXHU0ZWVkXHU0ZWRmXHU0ZWY3XHU0ZjA5XHU0ZjVhXHU0ZjMwXHU0ZjViXHU0ZjVkXHU0ZjU3XHU0ZjQ3XHU0Zjc2'@; put 'XHU0Zjg4XHU0ZjhmXHU0Zjk4XHU0ZjdiXHU0ZjY5XHU0ZjcwXHU0ZjkxXHU0ZjZmXHU0Zjg2XHU0Zjk2XHU1MTE4XHU0ZmQ0XHU0ZmRmXHU0ZmNlXHU0ZmQ4XHU0ZmRiXHU0ZmQxXHU0ZmRhXHU0ZmQwXHU0ZmU0XHU0ZmU1XHU1MDFhXHU1MDI4XHU1MDE0XHU1MDJhXHU1MDI1XHU1MDA1XHU0'@; put 'ZjFjXHU0ZmY2XHU1MDIxXHU1MDI5XHU1MDJjXHU0ZmZlXHU0ZmVmXHU1MDExXHU1MDA2XHU1MDQzXHU1MDQ3XHU2NzAzXHU1MDU1XHU1MDUwXHU1MDQ4XHU1MDVhXHU1MDU2XHU1MDZjXHU1MDc4XHU1MDgwXHU1MDlhXHU1MDg1XHU1MGI0XHU1MGIyIl0sWyJkMWExIiwiXHU1MGM5XHU1MGNh'@; put 'XHU1MGIzXHU1MGMyXHU1MGQ2XHU1MGRlXHU1MGU1XHU1MGVkXHU1MGUzXHU1MGVlXHU1MGY5XHU1MGY1XHU1MTA5XHU1MTAxXHU1MTAyXHU1MTE2XHU1MTE1XHU1MTE0XHU1MTFhXHU1MTIxXHU1MTNhXHU1MTM3XHU1MTNjXHU1MTNiXHU1MTNmXHU1MTQwXHU1MTUyXHU1MTRjXHU1MTU0XHU1'@; put 'MTYyXHU3YWY4XHU1MTY5XHU1MTZhXHU1MTZlXHU1MTgwXHU1MTgyXHU1NmQ4XHU1MThjXHU1MTg5XHU1MThmXHU1MTkxXHU1MTkzXHU1MTk1XHU1MTk2XHU1MWE0XHU1MWE2XHU1MWEyXHU1MWE5XHU1MWFhXHU1MWFiXHU1MWIzXHU1MWIxXHU1MWIyXHU1MWIwXHU1MWI1XHU1MWJkXHU1MWM1'@; put 'XHU1MWM5XHU1MWRiXHU1MWUwXHU4NjU1XHU1MWU5XHU1MWVkXHU1MWYwXHU1MWY1XHU1MWZlXHU1MjA0XHU1MjBiXHU1MjE0XHU1MjBlXHU1MjI3XHU1MjJhXHU1MjJlXHU1MjMzXHU1MjM5XHU1MjRmXHU1MjQ0XHU1MjRiXHU1MjRjXHU1MjVlXHU1MjU0XHU1MjZhXHU1Mjc0XHU1MjY5XHU1'@; put 'MjczXHU1MjdmXHU1MjdkXHU1MjhkXHU1Mjk0XHU1MjkyXHU1MjcxXHU1Mjg4XHU1MjkxXHU4ZmE4Il0sWyJkMmExIiwiXHU4ZmE3XHU1MmFjXHU1MmFkXHU1MmJjXHU1MmI1XHU1MmMxXHU1MmNkXHU1MmQ3XHU1MmRlXHU1MmUzXHU1MmU2XHU5OGVkXHU1MmUwXHU1MmYzXHU1MmY1XHU1MmY4'@; put 'XHU1MmY5XHU1MzA2XHU1MzA4XHU3NTM4XHU1MzBkXHU1MzEwXHU1MzBmXHU1MzE1XHU1MzFhXHU1MzIzXHU1MzJmXHU1MzMxXHU1MzMzXHU1MzM4XHU1MzQwXHU1MzQ2XHU1MzQ1XHU0ZTE3XHU1MzQ5XHU1MzRkXHU1MWQ2XHU1MzVlXHU1MzY5XHU1MzZlXHU1OTE4XHU1MzdiXHU1Mzc3XHU1'@; put 'MzgyXHU1Mzk2XHU1M2EwXHU1M2E2XHU1M2E1XHU1M2FlXHU1M2IwXHU1M2I2XHU1M2MzXHU3YzEyXHU5NmQ5XHU1M2RmXHU2NmZjXHU3MWVlXHU1M2VlXHU1M2U4XHU1M2VkXHU1M2ZhXHU1NDAxXHU1NDNkXHU1NDQwXHU1NDJjXHU1NDJkXHU1NDNjXHU1NDJlXHU1NDM2XHU1NDI5XHU1NDFk'@; put 'XHU1NDRlXHU1NDhmXHU1NDc1XHU1NDhlXHU1NDVmXHU1NDcxXHU1NDc3XHU1NDcwXHU1NDkyXHU1NDdiXHU1NDgwXHU1NDc2XHU1NDg0XHU1NDkwXHU1NDg2XHU1NGM3XHU1NGEyXHU1NGI4XHU1NGE1XHU1NGFjXHU1NGM0XHU1NGM4XHU1NGE4Il0sWyJkM2ExIiwiXHU1NGFiXHU1NGMyXHU1'@; put 'NGE0XHU1NGJlXHU1NGJjXHU1NGQ4XHU1NGU1XHU1NGU2XHU1NTBmXHU1NTE0XHU1NGZkXHU1NGVlXHU1NGVkXHU1NGZhXHU1NGUyXHU1NTM5XHU1NTQwXHU1NTYzXHU1NTRjXHU1NTJlXHU1NTVjXHU1NTQ1XHU1NTU2XHU1NTU3XHU1NTM4XHU1NTMzXHU1NTVkXHU1NTk5XHU1NTgwXHU1NGFm'@; put 'XHU1NThhXHU1NTlmXHU1NTdiXHU1NTdlXHU1NTk4XHU1NTllXHU1NWFlXHU1NTdjXHU1NTgzXHU1NWE5XHU1NTg3XHU1NWE4XHU1NWRhXHU1NWM1XHU1NWRmXHU1NWM0XHU1NWRjXHU1NWU0XHU1NWQ0XHU1NjE0XHU1NWY3XHU1NjE2XHU1NWZlXHU1NWZkXHU1NjFiXHU1NWY5XHU1NjRlXHU1'@; put 'NjUwXHU3MWRmXHU1NjM0XHU1NjM2XHU1NjMyXHU1NjM4XHU1NjZiXHU1NjY0XHU1NjJmXHU1NjZjXHU1NjZhXHU1Njg2XHU1NjgwXHU1NjhhXHU1NmEwXHU1Njk0XHU1NjhmXHU1NmE1XHU1NmFlXHU1NmI2XHU1NmI0XHU1NmMyXHU1NmJjXHU1NmMxXHU1NmMzXHU1NmMwXHU1NmM4XHU1NmNl'@; put 'XHU1NmQxXHU1NmQzXHU1NmQ3XHU1NmVlXHU1NmY5XHU1NzAwXHU1NmZmXHU1NzA0XHU1NzA5Il0sWyJkNGExIiwiXHU1NzA4XHU1NzBiXHU1NzBkXHU1NzEzXHU1NzE4XHU1NzE2XHU1NWM3XHU1NzFjXHU1NzI2XHU1NzM3XHU1NzM4XHU1NzRlXHU1NzNiXHU1NzQwXHU1NzRmXHU1NzY5XHU1'@; put 'N2MwXHU1Nzg4XHU1NzYxXHU1NzdmXHU1Nzg5XHU1NzkzXHU1N2EwXHU1N2IzXHU1N2E0XHU1N2FhXHU1N2IwXHU1N2MzXHU1N2M2XHU1N2Q0XHU1N2QyXHU1N2QzXHU1ODBhXHU1N2Q2XHU1N2UzXHU1ODBiXHU1ODE5XHU1ODFkXHU1ODcyXHU1ODIxXHU1ODYyXHU1ODRiXHU1ODcwXHU2YmMw'@; put 'XHU1ODUyXHU1ODNkXHU1ODc5XHU1ODg1XHU1OGI5XHU1ODlmXHU1OGFiXHU1OGJhXHU1OGRlXHU1OGJiXHU1OGI4XHU1OGFlXHU1OGM1XHU1OGQzXHU1OGQxXHU1OGQ3XHU1OGQ5XHU1OGQ4XHU1OGU1XHU1OGRjXHU1OGU0XHU1OGRmXHU1OGVmXHU1OGZhXHU1OGY5XHU1OGZiXHU1OGZjXHU1'@; put 'OGZkXHU1OTAyXHU1OTBhXHU1OTEwXHU1OTFiXHU2OGE2XHU1OTI1XHU1OTJjXHU1OTJkXHU1OTMyXHU1OTM4XHU1OTNlXHU3YWQyXHU1OTU1XHU1OTUwXHU1OTRlXHU1OTVhXHU1OTU4XHU1OTYyXHU1OTYwXHU1OTY3XHU1OTZjXHU1OTY5Il0sWyJkNWExIiwiXHU1OTc4XHU1OTgxXHU1OTlk'@; put 'XHU0ZjVlXHU0ZmFiXHU1OWEzXHU1OWIyXHU1OWM2XHU1OWU4XHU1OWRjXHU1OThkXHU1OWQ5XHU1OWRhXHU1YTI1XHU1YTFmXHU1YTExXHU1YTFjXHU1YTA5XHU1YTFhXHU1YTQwXHU1YTZjXHU1YTQ5XHU1YTM1XHU1YTM2XHU1YTYyXHU1YTZhXHU1YTlhXHU1YWJjXHU1YWJlXHU1YWNiXHU1'@; put 'YWMyXHU1YWJkXHU1YWUzXHU1YWQ3XHU1YWU2XHU1YWU5XHU1YWQ2XHU1YWZhXHU1YWZiXHU1YjBjXHU1YjBiXHU1YjE2XHU1YjMyXHU1YWQwXHU1YjJhXHU1YjM2XHU1YjNlXHU1YjQzXHU1YjQ1XHU1YjQwXHU1YjUxXHU1YjU1XHU1YjVhXHU1YjViXHU1YjY1XHU1YjY5XHU1YjcwXHU1Yjcz'@; put 'XHU1Yjc1XHU1Yjc4XHU2NTg4XHU1YjdhXHU1YjgwXHU1YjgzXHU1YmE2XHU1YmI4XHU1YmMzXHU1YmM3XHU1YmM5XHU1YmQ0XHU1YmQwXHU1YmU0XHU1YmU2XHU1YmUyXHU1YmRlXHU1YmU1XHU1YmViXHU1YmYwXHU1YmY2XHU1YmYzXHU1YzA1XHU1YzA3XHU1YzA4XHU1YzBkXHU1YzEzXHU1'@; put 'YzIwXHU1YzIyXHU1YzI4XHU1YzM4XHU1YzM5XHU1YzQxXHU1YzQ2XHU1YzRlXHU1YzUzIl0sWyJkNmExIiwiXHU1YzUwXHU1YzRmXHU1YjcxXHU1YzZjXHU1YzZlXHU0ZTYyXHU1Yzc2XHU1Yzc5XHU1YzhjXHU1YzkxXHU1Yzk0XHU1OTliXHU1Y2FiXHU1Y2JiXHU1Y2I2XHU1Y2JjXHU1Y2I3'@; put 'XHU1Y2M1XHU1Y2JlXHU1Y2M3XHU1Y2Q5XHU1Y2U5XHU1Y2ZkXHU1Y2ZhXHU1Y2VkXHU1ZDhjXHU1Y2VhXHU1ZDBiXHU1ZDE1XHU1ZDE3XHU1ZDVjXHU1ZDFmXHU1ZDFiXHU1ZDExXHU1ZDE0XHU1ZDIyXHU1ZDFhXHU1ZDE5XHU1ZDE4XHU1ZDRjXHU1ZDUyXHU1ZDRlXHU1ZDRiXHU1ZDZjXHU1'@; put 'ZDczXHU1ZDc2XHU1ZDg3XHU1ZDg0XHU1ZDgyXHU1ZGEyXHU1ZDlkXHU1ZGFjXHU1ZGFlXHU1ZGJkXHU1ZDkwXHU1ZGI3XHU1ZGJjXHU1ZGM5XHU1ZGNkXHU1ZGQzXHU1ZGQyXHU1ZGQ2XHU1ZGRiXHU1ZGViXHU1ZGYyXHU1ZGY1XHU1ZTBiXHU1ZTFhXHU1ZTE5XHU1ZTExXHU1ZTFiXHU1ZTM2'@; put 'XHU1ZTM3XHU1ZTQ0XHU1ZTQzXHU1ZTQwXHU1ZTRlXHU1ZTU3XHU1ZTU0XHU1ZTVmXHU1ZTYyXHU1ZTY0XHU1ZTQ3XHU1ZTc1XHU1ZTc2XHU1ZTdhXHU5ZWJjXHU1ZTdmXHU1ZWEwXHU1ZWMxXHU1ZWMyXHU1ZWM4XHU1ZWQwXHU1ZWNmIl0sWyJkN2ExIiwiXHU1ZWQ2XHU1ZWUzXHU1ZWRkXHU1'@; put 'ZWRhXHU1ZWRiXHU1ZWUyXHU1ZWUxXHU1ZWU4XHU1ZWU5XHU1ZWVjXHU1ZWYxXHU1ZWYzXHU1ZWYwXHU1ZWY0XHU1ZWY4XHU1ZWZlXHU1ZjAzXHU1ZjA5XHU1ZjVkXHU1ZjVjXHU1ZjBiXHU1ZjExXHU1ZjE2XHU1ZjI5XHU1ZjJkXHU1ZjM4XHU1ZjQxXHU1ZjQ4XHU1ZjRjXHU1ZjRlXHU1ZjJm'@; put 'XHU1ZjUxXHU1ZjU2XHU1ZjU3XHU1ZjU5XHU1ZjYxXHU1ZjZkXHU1ZjczXHU1Zjc3XHU1ZjgzXHU1ZjgyXHU1ZjdmXHU1ZjhhXHU1Zjg4XHU1ZjkxXHU1Zjg3XHU1ZjllXHU1Zjk5XHU1Zjk4XHU1ZmEwXHU1ZmE4XHU1ZmFkXHU1ZmJjXHU1ZmQ2XHU1ZmZiXHU1ZmU0XHU1ZmY4XHU1ZmYxXHU1'@; put 'ZmRkXHU2MGIzXHU1ZmZmXHU2MDIxXHU2MDYwXHU2MDE5XHU2MDEwXHU2MDI5XHU2MDBlXHU2MDMxXHU2MDFiXHU2MDE1XHU2MDJiXHU2MDI2XHU2MDBmXHU2MDNhXHU2MDVhXHU2MDQxXHU2MDZhXHU2MDc3XHU2MDVmXHU2MDRhXHU2MDQ2XHU2MDRkXHU2MDYzXHU2MDQzXHU2MDY0XHU2MDQy'@; put 'XHU2MDZjXHU2MDZiXHU2MDU5XHU2MDgxXHU2MDhkXHU2MGU3XHU2MDgzXHU2MDlhIl0sWyJkOGExIiwiXHU2MDg0XHU2MDliXHU2MDk2XHU2MDk3XHU2MDkyXHU2MGE3XHU2MDhiXHU2MGUxXHU2MGI4XHU2MGUwXHU2MGQzXHU2MGI0XHU1ZmYwXHU2MGJkXHU2MGM2XHU2MGI1XHU2MGQ4XHU2'@; put 'MTRkXHU2MTE1XHU2MTA2XHU2MGY2XHU2MGY3XHU2MTAwXHU2MGY0XHU2MGZhXHU2MTAzXHU2MTIxXHU2MGZiXHU2MGYxXHU2MTBkXHU2MTBlXHU2MTQ3XHU2MTNlXHU2MTI4XHU2MTI3XHU2MTRhXHU2MTNmXHU2MTNjXHU2MTJjXHU2MTM0XHU2MTNkXHU2MTQyXHU2MTQ0XHU2MTczXHU2MTc3'@; put 'XHU2MTU4XHU2MTU5XHU2MTVhXHU2MTZiXHU2MTc0XHU2MTZmXHU2MTY1XHU2MTcxXHU2MTVmXHU2MTVkXHU2MTUzXHU2MTc1XHU2MTk5XHU2MTk2XHU2MTg3XHU2MWFjXHU2MTk0XHU2MTlhXHU2MThhXHU2MTkxXHU2MWFiXHU2MWFlXHU2MWNjXHU2MWNhXHU2MWM5XHU2MWY3XHU2MWM4XHU2'@; put 'MWMzXHU2MWM2XHU2MWJhXHU2MWNiXHU3Zjc5XHU2MWNkXHU2MWU2XHU2MWUzXHU2MWY2XHU2MWZhXHU2MWY0XHU2MWZmXHU2MWZkXHU2MWZjXHU2MWZlXHU2MjAwXHU2MjA4XHU2MjA5XHU2MjBkXHU2MjBjXHU2MjE0XHU2MjFiIl0sWyJkOWExIiwiXHU2MjFlXHU2MjIxXHU2MjJhXHU2MjJl'@; put 'XHU2MjMwXHU2MjMyXHU2MjMzXHU2MjQxXHU2MjRlXHU2MjVlXHU2MjYzXHU2MjViXHU2MjYwXHU2MjY4XHU2MjdjXHU2MjgyXHU2Mjg5XHU2MjdlXHU2MjkyXHU2MjkzXHU2Mjk2XHU2MmQ0XHU2MjgzXHU2Mjk0XHU2MmQ3XHU2MmQxXHU2MmJiXHU2MmNmXHU2MmZmXHU2MmM2XHU2NGQ0XHU2'@; put 'MmM4XHU2MmRjXHU2MmNjXHU2MmNhXHU2MmMyXHU2MmM3XHU2MjliXHU2MmM5XHU2MzBjXHU2MmVlXHU2MmYxXHU2MzI3XHU2MzAyXHU2MzA4XHU2MmVmXHU2MmY1XHU2MzUwXHU2MzNlXHU2MzRkXHU2NDFjXHU2MzRmXHU2Mzk2XHU2MzhlXHU2MzgwXHU2M2FiXHU2Mzc2XHU2M2EzXHU2Mzhm'@; put 'XHU2Mzg5XHU2MzlmXHU2M2I1XHU2MzZiXHU2MzY5XHU2M2JlXHU2M2U5XHU2M2MwXHU2M2M2XHU2M2UzXHU2M2M5XHU2M2QyXHU2M2Y2XHU2M2M0XHU2NDE2XHU2NDM0XHU2NDA2XHU2NDEzXHU2NDI2XHU2NDM2XHU2NTFkXHU2NDE3XHU2NDI4XHU2NDBmXHU2NDY3XHU2NDZmXHU2NDc2XHU2'@; put 'NDRlXHU2NTJhXHU2NDk1XHU2NDkzXHU2NGE1XHU2NGE5XHU2NDg4XHU2NGJjIl0sWyJkYWExIiwiXHU2NGRhXHU2NGQyXHU2NGM1XHU2NGM3XHU2NGJiXHU2NGQ4XHU2NGMyXHU2NGYxXHU2NGU3XHU4MjA5XHU2NGUwXHU2NGUxXHU2MmFjXHU2NGUzXHU2NGVmXHU2NTJjXHU2NGY2XHU2NGY0'@; put 'XHU2NGYyXHU2NGZhXHU2NTAwXHU2NGZkXHU2NTE4XHU2NTFjXHU2NTA1XHU2NTI0XHU2NTIzXHU2NTJiXHU2NTM0XHU2NTM1XHU2NTM3XHU2NTM2XHU2NTM4XHU3NTRiXHU2NTQ4XHU2NTU2XHU2NTU1XHU2NTRkXHU2NTU4XHU2NTVlXHU2NTVkXHU2NTcyXHU2NTc4XHU2NTgyXHU2NTgzXHU4'@; put 'YjhhXHU2NTliXHU2NTlmXHU2NWFiXHU2NWI3XHU2NWMzXHU2NWM2XHU2NWMxXHU2NWM0XHU2NWNjXHU2NWQyXHU2NWRiXHU2NWQ5XHU2NWUwXHU2NWUxXHU2NWYxXHU2NzcyXHU2NjBhXHU2NjAzXHU2NWZiXHU2NzczXHU2NjM1XHU2NjM2XHU2NjM0XHU2NjFjXHU2NjRmXHU2NjQ0XHU2NjQ5'@; put 'XHU2NjQxXHU2NjVlXHU2NjVkXHU2NjY0XHU2NjY3XHU2NjY4XHU2NjVmXHU2NjYyXHU2NjcwXHU2NjgzXHU2Njg4XHU2NjhlXHU2Njg5XHU2Njg0XHU2Njk4XHU2NjlkXHU2NmMxXHU2NmI5XHU2NmM5XHU2NmJlXHU2NmJjIl0sWyJkYmExIiwiXHU2NmM0XHU2NmI4XHU2NmQ2XHU2NmRhXHU2'@; put 'NmUwXHU2NjNmXHU2NmU2XHU2NmU5XHU2NmYwXHU2NmY1XHU2NmY3XHU2NzBmXHU2NzE2XHU2NzFlXHU2NzI2XHU2NzI3XHU5NzM4XHU2NzJlXHU2NzNmXHU2NzM2XHU2NzQxXHU2NzM4XHU2NzM3XHU2NzQ2XHU2NzVlXHU2NzYwXHU2NzU5XHU2NzYzXHU2NzY0XHU2Nzg5XHU2NzcwXHU2N2E5'@; put 'XHU2NzdjXHU2NzZhXHU2NzhjXHU2NzhiXHU2N2E2XHU2N2ExXHU2Nzg1XHU2N2I3XHU2N2VmXHU2N2I0XHU2N2VjXHU2N2IzXHU2N2U5XHU2N2I4XHU2N2U0XHU2N2RlXHU2N2RkXHU2N2UyXHU2N2VlXHU2N2I5XHU2N2NlXHU2N2M2XHU2N2U3XHU2YTljXHU2ODFlXHU2ODQ2XHU2ODI5XHU2'@; put 'ODQwXHU2ODRkXHU2ODMyXHU2ODRlXHU2OGIzXHU2ODJiXHU2ODU5XHU2ODYzXHU2ODc3XHU2ODdmXHU2ODlmXHU2ODhmXHU2OGFkXHU2ODk0XHU2ODlkXHU2ODliXHU2ODgzXHU2YWFlXHU2OGI5XHU2ODc0XHU2OGI1XHU2OGEwXHU2OGJhXHU2OTBmXHU2ODhkXHU2ODdlXHU2OTAxXHU2OGNh'@; put 'XHU2OTA4XHU2OGQ4XHU2OTIyXHU2OTI2XHU2OGUxXHU2OTBjXHU2OGNkIl0sWyJkY2ExIiwiXHU2OGQ0XHU2OGU3XHU2OGQ1XHU2OTM2XHU2OTEyXHU2OTA0XHU2OGQ3XHU2OGUzXHU2OTI1XHU2OGY5XHU2OGUwXHU2OGVmXHU2OTI4XHU2OTJhXHU2OTFhXHU2OTIzXHU2OTIxXHU2OGM2XHU2'@; put 'OTc5XHU2OTc3XHU2OTVjXHU2OTc4XHU2OTZiXHU2OTU0XHU2OTdlXHU2OTZlXHU2OTM5XHU2OTc0XHU2OTNkXHU2OTU5XHU2OTMwXHU2OTYxXHU2OTVlXHU2OTVkXHU2OTgxXHU2OTZhXHU2OWIyXHU2OWFlXHU2OWQwXHU2OWJmXHU2OWMxXHU2OWQzXHU2OWJlXHU2OWNlXHU1YmU4XHU2OWNh'@; put 'XHU2OWRkXHU2OWJiXHU2OWMzXHU2OWE3XHU2YTJlXHU2OTkxXHU2OWEwXHU2OTljXHU2OTk1XHU2OWI0XHU2OWRlXHU2OWU4XHU2YTAyXHU2YTFiXHU2OWZmXHU2YjBhXHU2OWY5XHU2OWYyXHU2OWU3XHU2YTA1XHU2OWIxXHU2YTFlXHU2OWVkXHU2YTE0XHU2OWViXHU2YTBhXHU2YTEyXHU2'@; put 'YWMxXHU2YTIzXHU2YTEzXHU2YTQ0XHU2YTBjXHU2YTcyXHU2YTM2XHU2YTc4XHU2YTQ3XHU2YTYyXHU2YTU5XHU2YTY2XHU2YTQ4XHU2YTM4XHU2YTIyXHU2YTkwXHU2YThkXHU2YWEwXHU2YTg0XHU2YWEyXHU2YWEzIl0sWyJkZGExIiwiXHU2YTk3XHU4NjE3XHU2YWJiXHU2YWMzXHU2YWMy'@; put 'XHU2YWI4XHU2YWIzXHU2YWFjXHU2YWRlXHU2YWQxXHU2YWRmXHU2YWFhXHU2YWRhXHU2YWVhXHU2YWZiXHU2YjA1XHU4NjE2XHU2YWZhXHU2YjEyXHU2YjE2XHU5YjMxXHU2YjFmXHU2YjM4XHU2YjM3XHU3NmRjXHU2YjM5XHU5OGVlXHU2YjQ3XHU2YjQzXHU2YjQ5XHU2YjUwXHU2YjU5XHU2'@; put 'YjU0XHU2YjViXHU2YjVmXHU2YjYxXHU2Yjc4XHU2Yjc5XHU2YjdmXHU2YjgwXHU2Yjg0XHU2YjgzXHU2YjhkXHU2Yjk4XHU2Yjk1XHU2YjllXHU2YmE0XHU2YmFhXHU2YmFiXHU2YmFmXHU2YmIyXHU2YmIxXHU2YmIzXHU2YmI3XHU2YmJjXHU2YmM2XHU2YmNiXHU2YmQzXHU2YmRmXHU2YmVj'@; put 'XHU2YmViXHU2YmYzXHU2YmVmXHU5ZWJlXHU2YzA4XHU2YzEzXHU2YzE0XHU2YzFiXHU2YzI0XHU2YzIzXHU2YzVlXHU2YzU1XHU2YzYyXHU2YzZhXHU2YzgyXHU2YzhkXHU2YzlhXHU2YzgxXHU2YzliXHU2YzdlXHU2YzY4XHU2YzczXHU2YzkyXHU2YzkwXHU2Y2M0XHU2Y2YxXHU2Y2QzXHU2'@; put 'Y2JkXHU2Y2Q3XHU2Y2M1XHU2Y2RkXHU2Y2FlXHU2Y2IxXHU2Y2JlIl0sWyJkZWExIiwiXHU2Y2JhXHU2Y2RiXHU2Y2VmXHU2Y2Q5XHU2Y2VhXHU2ZDFmXHU4ODRkXHU2ZDM2XHU2ZDJiXHU2ZDNkXHU2ZDM4XHU2ZDE5XHU2ZDM1XHU2ZDMzXHU2ZDEyXHU2ZDBjXHU2ZDYzXHU2ZDkzXHU2ZDY0'@; put 'XHU2ZDVhXHU2ZDc5XHU2ZDU5XHU2ZDhlXHU2ZDk1XHU2ZmU0XHU2ZDg1XHU2ZGY5XHU2ZTE1XHU2ZTBhXHU2ZGI1XHU2ZGM3XHU2ZGU2XHU2ZGI4XHU2ZGM2XHU2ZGVjXHU2ZGRlXHU2ZGNjXHU2ZGU4XHU2ZGQyXHU2ZGM1XHU2ZGZhXHU2ZGQ5XHU2ZGU0XHU2ZGQ1XHU2ZGVhXHU2ZGVlXHU2'@; put 'ZTJkXHU2ZTZlXHU2ZTJlXHU2ZTE5XHU2ZTcyXHU2ZTVmXHU2ZTNlXHU2ZTIzXHU2ZTZiXHU2ZTJiXHU2ZTc2XHU2ZTRkXHU2ZTFmXHU2ZTQzXHU2ZTNhXHU2ZTRlXHU2ZTI0XHU2ZWZmXHU2ZTFkXHU2ZTM4XHU2ZTgyXHU2ZWFhXHU2ZTk4XHU2ZWM5XHU2ZWI3XHU2ZWQzXHU2ZWJkXHU2ZWFm'@; put 'XHU2ZWM0XHU2ZWIyXHU2ZWQ0XHU2ZWQ1XHU2ZThmXHU2ZWE1XHU2ZWMyXHU2ZTlmXHU2ZjQxXHU2ZjExXHU3MDRjXHU2ZWVjXHU2ZWY4XHU2ZWZlXHU2ZjNmXHU2ZWYyXHU2ZjMxXHU2ZWVmXHU2ZjMyXHU2ZWNjIl0sWyJkZmExIiwiXHU2ZjNlXHU2ZjEzXHU2ZWY3XHU2Zjg2XHU2ZjdhXHU2'@; put 'Zjc4XHU2ZjgxXHU2ZjgwXHU2ZjZmXHU2ZjViXHU2ZmYzXHU2ZjZkXHU2ZjgyXHU2ZjdjXHU2ZjU4XHU2ZjhlXHU2ZjkxXHU2ZmMyXHU2ZjY2XHU2ZmIzXHU2ZmEzXHU2ZmExXHU2ZmE0XHU2ZmI5XHU2ZmM2XHU2ZmFhXHU2ZmRmXHU2ZmQ1XHU2ZmVjXHU2ZmQ0XHU2ZmQ4XHU2ZmYxXHU2ZmVl'@; put 'XHU2ZmRiXHU3MDA5XHU3MDBiXHU2ZmZhXHU3MDExXHU3MDAxXHU3MDBmXHU2ZmZlXHU3MDFiXHU3MDFhXHU2Zjc0XHU3MDFkXHU3MDE4XHU3MDFmXHU3MDMwXHU3MDNlXHU3MDMyXHU3MDUxXHU3MDYzXHU3MDk5XHU3MDkyXHU3MGFmXHU3MGYxXHU3MGFjXHU3MGI4XHU3MGIzXHU3MGFlXHU3'@; put 'MGRmXHU3MGNiXHU3MGRkXHU3MGQ5XHU3MTA5XHU3MGZkXHU3MTFjXHU3MTE5XHU3MTY1XHU3MTU1XHU3MTg4XHU3MTY2XHU3MTYyXHU3MTRjXHU3MTU2XHU3MTZjXHU3MThmXHU3MWZiXHU3MTg0XHU3MTk1XHU3MWE4XHU3MWFjXHU3MWQ3XHU3MWI5XHU3MWJlXHU3MWQyXHU3MWM5XHU3MWQ0'@; put 'XHU3MWNlXHU3MWUwXHU3MWVjXHU3MWU3XHU3MWY1XHU3MWZjIl0sWyJlMGExIiwiXHU3MWY5XHU3MWZmXHU3MjBkXHU3MjEwXHU3MjFiXHU3MjI4XHU3MjJkXHU3MjJjXHU3MjMwXHU3MjMyXHU3MjNiXHU3MjNjXHU3MjNmXHU3MjQwXHU3MjQ2XHU3MjRiXHU3MjU4XHU3Mjc0XHU3MjdlXHU3'@; put 'MjgyXHU3MjgxXHU3Mjg3XHU3MjkyXHU3Mjk2XHU3MmEyXHU3MmE3XHU3MmI5XHU3MmIyXHU3MmMzXHU3MmM2XHU3MmM0XHU3MmNlXHU3MmQyXHU3MmUyXHU3MmUwXHU3MmUxXHU3MmY5XHU3MmY3XHU1MDBmXHU3MzE3XHU3MzBhXHU3MzFjXHU3MzE2XHU3MzFkXHU3MzM0XHU3MzJmXHU3MzI5'@; put 'XHU3MzI1XHU3MzNlXHU3MzRlXHU3MzRmXHU5ZWQ4XHU3MzU3XHU3MzZhXHU3MzY4XHU3MzcwXHU3Mzc4XHU3Mzc1XHU3MzdiXHU3MzdhXHU3M2M4XHU3M2IzXHU3M2NlXHU3M2JiXHU3M2MwXHU3M2U1XHU3M2VlXHU3M2RlXHU3NGEyXHU3NDA1XHU3NDZmXHU3NDI1XHU3M2Y4XHU3NDMyXHU3'@; put 'NDNhXHU3NDU1XHU3NDNmXHU3NDVmXHU3NDU5XHU3NDQxXHU3NDVjXHU3NDY5XHU3NDcwXHU3NDYzXHU3NDZhXHU3NDc2XHU3NDdlXHU3NDhiXHU3NDllXHU3NGE3XHU3NGNhXHU3NGNmXHU3NGQ0XHU3M2YxIl0sWyJlMWExIiwiXHU3NGUwXHU3NGUzXHU3NGU3XHU3NGU5XHU3NGVlXHU3NGYy'@; put 'XHU3NGYwXHU3NGYxXHU3NGY4XHU3NGY3XHU3NTA0XHU3NTAzXHU3NTA1XHU3NTBjXHU3NTBlXHU3NTBkXHU3NTE1XHU3NTEzXHU3NTFlXHU3NTI2XHU3NTJjXHU3NTNjXHU3NTQ0XHU3NTRkXHU3NTRhXHU3NTQ5XHU3NTViXHU3NTQ2XHU3NTVhXHU3NTY5XHU3NTY0XHU3NTY3XHU3NTZiXHU3'@; put 'NTZkXHU3NTc4XHU3NTc2XHU3NTg2XHU3NTg3XHU3NTc0XHU3NThhXHU3NTg5XHU3NTgyXHU3NTk0XHU3NTlhXHU3NTlkXHU3NWE1XHU3NWEzXHU3NWMyXHU3NWIzXHU3NWMzXHU3NWI1XHU3NWJkXHU3NWI4XHU3NWJjXHU3NWIxXHU3NWNkXHU3NWNhXHU3NWQyXHU3NWQ5XHU3NWUzXHU3NWRl'@; put 'XHU3NWZlXHU3NWZmXHU3NWZjXHU3NjAxXHU3NWYwXHU3NWZhXHU3NWYyXHU3NWYzXHU3NjBiXHU3NjBkXHU3NjA5XHU3NjFmXHU3NjI3XHU3NjIwXHU3NjIxXHU3NjIyXHU3NjI0XHU3NjM0XHU3NjMwXHU3NjNiXHU3NjQ3XHU3NjQ4XHU3NjQ2XHU3NjVjXHU3NjU4XHU3NjYxXHU3NjYyXHU3'@; put 'NjY4XHU3NjY5XHU3NjZhXHU3NjY3XHU3NjZjXHU3NjcwIl0sWyJlMmExIiwiXHU3NjcyXHU3Njc2XHU3Njc4XHU3NjdjXHU3NjgwXHU3NjgzXHU3Njg4XHU3NjhiXHU3NjhlXHU3Njk2XHU3NjkzXHU3Njk5XHU3NjlhXHU3NmIwXHU3NmI0XHU3NmI4XHU3NmI5XHU3NmJhXHU3NmMyXHU3NmNk'@; put 'XHU3NmQ2XHU3NmQyXHU3NmRlXHU3NmUxXHU3NmU1XHU3NmU3XHU3NmVhXHU4NjJmXHU3NmZiXHU3NzA4XHU3NzA3XHU3NzA0XHU3NzI5XHU3NzI0XHU3NzFlXHU3NzI1XHU3NzI2XHU3NzFiXHU3NzM3XHU3NzM4XHU3NzQ3XHU3NzVhXHU3NzY4XHU3NzZiXHU3NzViXHU3NzY1XHU3NzdmXHU3'@; put 'NzdlXHU3Nzc5XHU3NzhlXHU3NzhiXHU3NzkxXHU3N2EwXHU3NzllXHU3N2IwXHU3N2I2XHU3N2I5XHU3N2JmXHU3N2JjXHU3N2JkXHU3N2JiXHU3N2M3XHU3N2NkXHU3N2Q3XHU3N2RhXHU3N2RjXHU3N2UzXHU3N2VlXHU3N2ZjXHU3ODBjXHU3ODEyXHU3OTI2XHU3ODIwXHU3OTJhXHU3ODQ1'@; put 'XHU3ODhlXHU3ODc0XHU3ODg2XHU3ODdjXHU3ODlhXHU3ODhjXHU3OGEzXHU3OGI1XHU3OGFhXHU3OGFmXHU3OGQxXHU3OGM2XHU3OGNiXHU3OGQ0XHU3OGJlXHU3OGJjXHU3OGM1XHU3OGNhXHU3OGVjIl0sWyJlM2ExIiwiXHU3OGU3XHU3OGRhXHU3OGZkXHU3OGY0XHU3OTA3XHU3OTEyXHU3'@; put 'OTExXHU3OTE5XHU3OTJjXHU3OTJiXHU3OTQwXHU3OTYwXHU3OTU3XHU3OTVmXHU3OTVhXHU3OTU1XHU3OTUzXHU3OTdhXHU3OTdmXHU3OThhXHU3OTlkXHU3OWE3XHU5ZjRiXHU3OWFhXHU3OWFlXHU3OWIzXHU3OWI5XHU3OWJhXHU3OWM5XHU3OWQ1XHU3OWU3XHU3OWVjXHU3OWUxXHU3OWUz'@; put 'XHU3YTA4XHU3YTBkXHU3YTE4XHU3YTE5XHU3YTIwXHU3YTFmXHU3OTgwXHU3YTMxXHU3YTNiXHU3YTNlXHU3YTM3XHU3YTQzXHU3YTU3XHU3YTQ5XHU3YTYxXHU3YTYyXHU3YTY5XHU5ZjlkXHU3YTcwXHU3YTc5XHU3YTdkXHU3YTg4XHU3YTk3XHU3YTk1XHU3YTk4XHU3YTk2XHU3YWE5XHU3'@; put 'YWM4XHU3YWIwXHU3YWI2XHU3YWM1XHU3YWM0XHU3YWJmXHU5MDgzXHU3YWM3XHU3YWNhXHU3YWNkXHU3YWNmXHU3YWQ1XHU3YWQzXHU3YWQ5XHU3YWRhXHU3YWRkXHU3YWUxXHU3YWUyXHU3YWU2XHU3YWVkXHU3YWYwXHU3YjAyXHU3YjBmXHU3YjBhXHU3YjA2XHU3YjMzXHU3YjE4XHU3YjE5'@; put 'XHU3YjFlXHU3YjM1XHU3YjI4XHU3YjM2XHU3YjUwIl0sWyJlNGExIiwiXHU3YjdhXHU3YjA0XHU3YjRkXHU3YjBiXHU3YjRjXHU3YjQ1XHU3Yjc1XHU3YjY1XHU3Yjc0XHU3YjY3XHU3YjcwXHU3YjcxXHU3YjZjXHU3YjZlXHU3YjlkXHU3Yjk4XHU3YjlmXHU3YjhkXHU3YjljXHU3YjlhXHU3'@; put 'YjhiXHU3YjkyXHU3YjhmXHU3YjVkXHU3Yjk5XHU3YmNiXHU3YmMxXHU3YmNjXHU3YmNmXHU3YmI0XHU3YmM2XHU3YmRkXHU3YmU5XHU3YzExXHU3YzE0XHU3YmU2XHU3YmU1XHU3YzYwXHU3YzAwXHU3YzA3XHU3YzEzXHU3YmYzXHU3YmY3XHU3YzE3XHU3YzBkXHU3YmY2XHU3YzIzXHU3YzI3'@; put 'XHU3YzJhXHU3YzFmXHU3YzM3XHU3YzJiXHU3YzNkXHU3YzRjXHU3YzQzXHU3YzU0XHU3YzRmXHU3YzQwXHU3YzUwXHU3YzU4XHU3YzVmXHU3YzY0XHU3YzU2XHU3YzY1XHU3YzZjXHU3Yzc1XHU3YzgzXHU3YzkwXHU3Y2E0XHU3Y2FkXHU3Y2EyXHU3Y2FiXHU3Y2ExXHU3Y2E4XHU3Y2IzXHU3'@; put 'Y2IyXHU3Y2IxXHU3Y2FlXHU3Y2I5XHU3Y2JkXHU3Y2MwXHU3Y2M1XHU3Y2MyXHU3Y2Q4XHU3Y2QyXHU3Y2RjXHU3Y2UyXHU5YjNiXHU3Y2VmXHU3Y2YyXHU3Y2Y0XHU3Y2Y2XHU3Y2ZhXHU3ZDA2Il0sWyJlNWExIiwiXHU3ZDAyXHU3ZDFjXHU3ZDE1XHU3ZDBhXHU3ZDQ1XHU3ZDRiXHU3ZDJl'@; put 'XHU3ZDMyXHU3ZDNmXHU3ZDM1XHU3ZDQ2XHU3ZDczXHU3ZDU2XHU3ZDRlXHU3ZDcyXHU3ZDY4XHU3ZDZlXHU3ZDRmXHU3ZDYzXHU3ZDkzXHU3ZDg5XHU3ZDViXHU3ZDhmXHU3ZDdkXHU3ZDliXHU3ZGJhXHU3ZGFlXHU3ZGEzXHU3ZGI1XHU3ZGM3XHU3ZGJkXHU3ZGFiXHU3ZTNkXHU3ZGEyXHU3'@; put 'ZGFmXHU3ZGRjXHU3ZGI4XHU3ZDlmXHU3ZGIwXHU3ZGQ4XHU3ZGRkXHU3ZGU0XHU3ZGRlXHU3ZGZiXHU3ZGYyXHU3ZGUxXHU3ZTA1XHU3ZTBhXHU3ZTIzXHU3ZTIxXHU3ZTEyXHU3ZTMxXHU3ZTFmXHU3ZTA5XHU3ZTBiXHU3ZTIyXHU3ZTQ2XHU3ZTY2XHU3ZTNiXHU3ZTM1XHU3ZTM5XHU3ZTQz'@; put 'XHU3ZTM3XHU3ZTMyXHU3ZTNhXHU3ZTY3XHU3ZTVkXHU3ZTU2XHU3ZTVlXHU3ZTU5XHU3ZTVhXHU3ZTc5XHU3ZTZhXHU3ZTY5XHU3ZTdjXHU3ZTdiXHU3ZTgzXHU3ZGQ1XHU3ZTdkXHU4ZmFlXHU3ZTdmXHU3ZTg4XHU3ZTg5XHU3ZThjXHU3ZTkyXHU3ZTkwXHU3ZTkzXHU3ZTk0XHU3ZTk2XHU3'@; put 'ZThlXHU3ZTliXHU3ZTljXHU3ZjM4XHU3ZjNhIl0sWyJlNmExIiwiXHU3ZjQ1XHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3ZjUwXHU3ZjUxXHU3ZjU1XHU3ZjU0XHU3ZjU4XHU3ZjVmXHU3ZjYwXHU3ZjY4XHU3ZjY5XHU3ZjY3XHU3Zjc4XHU3ZjgyXHU3Zjg2XHU3ZjgzXHU3Zjg4XHU3Zjg3XHU3Zjhj'@; put 'XHU3Zjk0XHU3ZjllXHU3ZjlkXHU3ZjlhXHU3ZmEzXHU3ZmFmXHU3ZmIyXHU3ZmI5XHU3ZmFlXHU3ZmI2XHU3ZmI4XHU4YjcxXHU3ZmM1XHU3ZmM2XHU3ZmNhXHU3ZmQ1XHU3ZmQ0XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3ZmYzXHU3ZmY5XHU5OGRjXHU4MDA2XHU4MDA0XHU4MDBiXHU4MDEyXHU4'@; put 'MDE4XHU4MDE5XHU4MDFjXHU4MDIxXHU4MDI4XHU4MDNmXHU4MDNiXHU4MDRhXHU4MDQ2XHU4MDUyXHU4MDU4XHU4MDVhXHU4MDVmXHU4MDYyXHU4MDY4XHU4MDczXHU4MDcyXHU4MDcwXHU4MDc2XHU4MDc5XHU4MDdkXHU4MDdmXHU4MDg0XHU4MDg2XHU4MDg1XHU4MDliXHU4MDkzXHU4MDlh'@; put 'XHU4MGFkXHU1MTkwXHU4MGFjXHU4MGRiXHU4MGU1XHU4MGQ5XHU4MGRkXHU4MGM0XHU4MGRhXHU4MGQ2XHU4MTA5XHU4MGVmXHU4MGYxXHU4MTFiXHU4MTI5XHU4MTIzXHU4MTJmXHU4MTRiIl0sWyJlN2ExIiwiXHU5NjhiXHU4MTQ2XHU4MTNlXHU4MTUzXHU4MTUxXHU4MGZjXHU4MTcxXHU4'@; put 'MTZlXHU4MTY1XHU4MTY2XHU4MTc0XHU4MTgzXHU4MTg4XHU4MThhXHU4MTgwXHU4MTgyXHU4MWEwXHU4MTk1XHU4MWE0XHU4MWEzXHU4MTVmXHU4MTkzXHU4MWE5XHU4MWIwXHU4MWI1XHU4MWJlXHU4MWI4XHU4MWJkXHU4MWMwXHU4MWMyXHU4MWJhXHU4MWM5XHU4MWNkXHU4MWQxXHU4MWQ5'@; put 'XHU4MWQ4XHU4MWM4XHU4MWRhXHU4MWRmXHU4MWUwXHU4MWU3XHU4MWZhXHU4MWZiXHU4MWZlXHU4MjAxXHU4MjAyXHU4MjA1XHU4MjA3XHU4MjBhXHU4MjBkXHU4MjEwXHU4MjE2XHU4MjI5XHU4MjJiXHU4MjM4XHU4MjMzXHU4MjQwXHU4MjU5XHU4MjU4XHU4MjVkXHU4MjVhXHU4MjVmXHU4'@; put 'MjY0XHU4MjYyXHU4MjY4XHU4MjZhXHU4MjZiXHU4MjJlXHU4MjcxXHU4Mjc3XHU4Mjc4XHU4MjdlXHU4MjhkXHU4MjkyXHU4MmFiXHU4MjlmXHU4MmJiXHU4MmFjXHU4MmUxXHU4MmUzXHU4MmRmXHU4MmQyXHU4MmY0XHU4MmYzXHU4MmZhXHU4MzkzXHU4MzAzXHU4MmZiXHU4MmY5XHU4MmRl'@; put 'XHU4MzA2XHU4MmRjXHU4MzA5XHU4MmQ5Il0sWyJlOGExIiwiXHU4MzM1XHU4MzM0XHU4MzE2XHU4MzMyXHU4MzMxXHU4MzQwXHU4MzM5XHU4MzUwXHU4MzQ1XHU4MzJmXHU4MzJiXHU4MzE3XHU4MzE4XHU4Mzg1XHU4MzlhXHU4M2FhXHU4MzlmXHU4M2EyXHU4Mzk2XHU4MzIzXHU4MzhlXHU4'@; put 'Mzg3XHU4MzhhXHU4MzdjXHU4M2I1XHU4MzczXHU4Mzc1XHU4M2EwXHU4Mzg5XHU4M2E4XHU4M2Y0XHU4NDEzXHU4M2ViXHU4M2NlXHU4M2ZkXHU4NDAzXHU4M2Q4XHU4NDBiXHU4M2MxXHU4M2Y3XHU4NDA3XHU4M2UwXHU4M2YyXHU4NDBkXHU4NDIyXHU4NDIwXHU4M2JkXHU4NDM4XHU4NTA2'@; put 'XHU4M2ZiXHU4NDZkXHU4NDJhXHU4NDNjXHU4NTVhXHU4NDg0XHU4NDc3XHU4NDZiXHU4NGFkXHU4NDZlXHU4NDgyXHU4NDY5XHU4NDQ2XHU4NDJjXHU4NDZmXHU4NDc5XHU4NDM1XHU4NGNhXHU4NDYyXHU4NGI5XHU4NGJmXHU4NDlmXHU4NGQ5XHU4NGNkXHU4NGJiXHU4NGRhXHU4NGQwXHU4'@; put 'NGMxXHU4NGM2XHU4NGQ2XHU4NGExXHU4NTIxXHU4NGZmXHU4NGY0XHU4NTE3XHU4NTE4XHU4NTJjXHU4NTFmXHU4NTE1XHU4NTE0XHU4NGZjXHU4NTQwXHU4NTYzXHU4NTU4XHU4NTQ4Il0sWyJlOWExIiwiXHU4NTQxXHU4NjAyXHU4NTRiXHU4NTU1XHU4NTgwXHU4NWE0XHU4NTg4XHU4NTkx'@; put 'XHU4NThhXHU4NWE4XHU4NTZkXHU4NTk0XHU4NTliXHU4NWVhXHU4NTg3XHU4NTljXHU4NTc3XHU4NTdlXHU4NTkwXHU4NWM5XHU4NWJhXHU4NWNmXHU4NWI5XHU4NWQwXHU4NWQ1XHU4NWRkXHU4NWU1XHU4NWRjXHU4NWY5XHU4NjBhXHU4NjEzXHU4NjBiXHU4NWZlXHU4NWZhXHU4NjA2XHU4'@; put 'NjIyXHU4NjFhXHU4NjMwXHU4NjNmXHU4NjRkXHU0ZTU1XHU4NjU0XHU4NjVmXHU4NjY3XHU4NjcxXHU4NjkzXHU4NmEzXHU4NmE5XHU4NmFhXHU4NjhiXHU4NjhjXHU4NmI2XHU4NmFmXHU4NmM0XHU4NmM2XHU4NmIwXHU4NmM5XHU4ODIzXHU4NmFiXHU4NmQ0XHU4NmRlXHU4NmU5XHU4NmVj'@; put 'XHU4NmRmXHU4NmRiXHU4NmVmXHU4NzEyXHU4NzA2XHU4NzA4XHU4NzAwXHU4NzAzXHU4NmZiXHU4NzExXHU4NzA5XHU4NzBkXHU4NmY5XHU4NzBhXHU4NzM0XHU4NzNmXHU4NzM3XHU4NzNiXHU4NzI1XHU4NzI5XHU4NzFhXHU4NzYwXHU4NzVmXHU4Nzc4XHU4NzRjXHU4NzRlXHU4Nzc0XHU4'@; put 'NzU3XHU4NzY4XHU4NzZlXHU4NzU5Il0sWyJlYWExIiwiXHU4NzUzXHU4NzYzXHU4NzZhXHU4ODA1XHU4N2EyXHU4NzlmXHU4NzgyXHU4N2FmXHU4N2NiXHU4N2JkXHU4N2MwXHU4N2QwXHU5NmQ2XHU4N2FiXHU4N2M0XHU4N2IzXHU4N2M3XHU4N2M2XHU4N2JiXHU4N2VmXHU4N2YyXHU4N2Uw'@; put 'XHU4ODBmXHU4ODBkXHU4N2ZlXHU4N2Y2XHU4N2Y3XHU4ODBlXHU4N2QyXHU4ODExXHU4ODE2XHU4ODE1XHU4ODIyXHU4ODIxXHU4ODMxXHU4ODM2XHU4ODM5XHU4ODI3XHU4ODNiXHU4ODQ0XHU4ODQyXHU4ODUyXHU4ODU5XHU4ODVlXHU4ODYyXHU4ODZiXHU4ODgxXHU4ODdlXHU4ODllXHU4'@; put 'ODc1XHU4ODdkXHU4OGI1XHU4ODcyXHU4ODgyXHU4ODk3XHU4ODkyXHU4OGFlXHU4ODk5XHU4OGEyXHU4ODhkXHU4OGE0XHU4OGIwXHU4OGJmXHU4OGIxXHU4OGMzXHU4OGM0XHU4OGQ0XHU4OGQ4XHU4OGQ5XHU4OGRkXHU4OGY5XHU4OTAyXHU4OGZjXHU4OGY0XHU4OGU4XHU4OGYyXHU4OTA0'@; put 'XHU4OTBjXHU4OTBhXHU4OTEzXHU4OTQzXHU4OTFlXHU4OTI1XHU4OTJhXHU4OTJiXHU4OTQxXHU4OTQ0XHU4OTNiXHU4OTM2XHU4OTM4XHU4OTRjXHU4OTFkXHU4OTYwXHU4OTVlIl0sWyJlYmExIiwiXHU4OTY2XHU4OTY0XHU4OTZkXHU4OTZhXHU4OTZmXHU4OTc0XHU4OTc3XHU4OTdlXHU4'@; put 'OTgzXHU4OTg4XHU4OThhXHU4OTkzXHU4OTk4XHU4OWExXHU4OWE5XHU4OWE2XHU4OWFjXHU4OWFmXHU4OWIyXHU4OWJhXHU4OWJkXHU4OWJmXHU4OWMwXHU4OWRhXHU4OWRjXHU4OWRkXHU4OWU3XHU4OWY0XHU4OWY4XHU4YTAzXHU4YTE2XHU4YTEwXHU4YTBjXHU4YTFiXHU4YTFkXHU4YTI1'@; put 'XHU4YTM2XHU4YTQxXHU4YTViXHU4YTUyXHU4YTQ2XHU4YTQ4XHU4YTdjXHU4YTZkXHU4YTZjXHU4YTYyXHU4YTg1XHU4YTgyXHU4YTg0XHU4YWE4XHU4YWExXHU4YTkxXHU4YWE1XHU4YWE2XHU4YTlhXHU4YWEzXHU4YWM0XHU4YWNkXHU4YWMyXHU4YWRhXHU4YWViXHU4YWYzXHU4YWU3XHU4'@; put 'YWU0XHU4YWYxXHU4YjE0XHU4YWUwXHU4YWUyXHU4YWY3XHU4YWRlXHU4YWRiXHU4YjBjXHU4YjA3XHU4YjFhXHU4YWUxXHU4YjE2XHU4YjEwXHU4YjE3XHU4YjIwXHU4YjMzXHU5N2FiXHU4YjI2XHU4YjJiXHU4YjNlXHU4YjI4XHU4YjQxXHU4YjRjXHU4YjRmXHU4YjRlXHU4YjQ5XHU4YjU2'@; put 'XHU4YjViXHU4YjVhXHU4YjZiIl0sWyJlY2ExIiwiXHU4YjVmXHU4YjZjXHU4YjZmXHU4Yjc0XHU4YjdkXHU4YjgwXHU4YjhjXHU4YjhlXHU4YjkyXHU4YjkzXHU4Yjk2XHU4Yjk5XHU4YjlhXHU4YzNhXHU4YzQxXHU4YzNmXHU4YzQ4XHU4YzRjXHU4YzRlXHU4YzUwXHU4YzU1XHU4YzYyXHU4'@; put 'YzZjXHU4Yzc4XHU4YzdhXHU4YzgyXHU4Yzg5XHU4Yzg1XHU4YzhhXHU4YzhkXHU4YzhlXHU4Yzk0XHU4YzdjXHU4Yzk4XHU2MjFkXHU4Y2FkXHU4Y2FhXHU4Y2JkXHU4Y2IyXHU4Y2IzXHU4Y2FlXHU4Y2I2XHU4Y2M4XHU4Y2MxXHU4Y2U0XHU4Y2UzXHU4Y2RhXHU4Y2ZkXHU4Y2ZhXHU4Y2Zi'@; put 'XHU4ZDA0XHU4ZDA1XHU4ZDBhXHU4ZDA3XHU4ZDBmXHU4ZDBkXHU4ZDEwXHU5ZjRlXHU4ZDEzXHU4Y2NkXHU4ZDE0XHU4ZDE2XHU4ZDY3XHU4ZDZkXHU4ZDcxXHU4ZDczXHU4ZDgxXHU4ZDk5XHU4ZGMyXHU4ZGJlXHU4ZGJhXHU4ZGNmXHU4ZGRhXHU4ZGQ2XHU4ZGNjXHU4ZGRiXHU4ZGNiXHU4'@; put 'ZGVhXHU4ZGViXHU4ZGRmXHU4ZGUzXHU4ZGZjXHU4ZTA4XHU4ZTA5XHU4ZGZmXHU4ZTFkXHU4ZTFlXHU4ZTEwXHU4ZTFmXHU4ZTQyXHU4ZTM1XHU4ZTMwXHU4ZTM0XHU4ZTRhIl0sWyJlZGExIiwiXHU4ZTQ3XHU4ZTQ5XHU4ZTRjXHU4ZTUwXHU4ZTQ4XHU4ZTU5XHU4ZTY0XHU4ZTYwXHU4ZTJh'@; put 'XHU4ZTYzXHU4ZTU1XHU4ZTc2XHU4ZTcyXHU4ZTdjXHU4ZTgxXHU4ZTg3XHU4ZTg1XHU4ZTg0XHU4ZThiXHU4ZThhXHU4ZTkzXHU4ZTkxXHU4ZTk0XHU4ZTk5XHU4ZWFhXHU4ZWExXHU4ZWFjXHU4ZWIwXHU4ZWM2XHU4ZWIxXHU4ZWJlXHU4ZWM1XHU4ZWM4XHU4ZWNiXHU4ZWRiXHU4ZWUzXHU4'@; put 'ZWZjXHU4ZWZiXHU4ZWViXHU4ZWZlXHU4ZjBhXHU4ZjA1XHU4ZjE1XHU4ZjEyXHU4ZjE5XHU4ZjEzXHU4ZjFjXHU4ZjFmXHU4ZjFiXHU4ZjBjXHU4ZjI2XHU4ZjMzXHU4ZjNiXHU4ZjM5XHU4ZjQ1XHU4ZjQyXHU4ZjNlXHU4ZjRjXHU4ZjQ5XHU4ZjQ2XHU4ZjRlXHU4ZjU3XHU4ZjVjXHU4ZjYy'@; put 'XHU4ZjYzXHU4ZjY0XHU4ZjljXHU4ZjlmXHU4ZmEzXHU4ZmFkXHU4ZmFmXHU4ZmI3XHU4ZmRhXHU4ZmU1XHU4ZmUyXHU4ZmVhXHU4ZmVmXHU5MDg3XHU4ZmY0XHU5MDA1XHU4ZmY5XHU4ZmZhXHU5MDExXHU5MDE1XHU5MDIxXHU5MDBkXHU5MDFlXHU5MDE2XHU5MDBiXHU5MDI3XHU5MDM2XHU5'@; put 'MDM1XHU5MDM5XHU4ZmY4Il0sWyJlZWExIiwiXHU5MDRmXHU5MDUwXHU5MDUxXHU5MDUyXHU5MDBlXHU5MDQ5XHU5MDNlXHU5MDU2XHU5MDU4XHU5MDVlXHU5MDY4XHU5MDZmXHU5MDc2XHU5NmE4XHU5MDcyXHU5MDgyXHU5MDdkXHU5MDgxXHU5MDgwXHU5MDhhXHU5MDg5XHU5MDhmXHU5MGE4'@; put 'XHU5MGFmXHU5MGIxXHU5MGI1XHU5MGUyXHU5MGU0XHU2MjQ4XHU5MGRiXHU5MTAyXHU5MTEyXHU5MTE5XHU5MTMyXHU5MTMwXHU5MTRhXHU5MTU2XHU5MTU4XHU5MTYzXHU5MTY1XHU5MTY5XHU5MTczXHU5MTcyXHU5MThiXHU5MTg5XHU5MTgyXHU5MWEyXHU5MWFiXHU5MWFmXHU5MWFhXHU5'@; put 'MWI1XHU5MWI0XHU5MWJhXHU5MWMwXHU5MWMxXHU5MWM5XHU5MWNiXHU5MWQwXHU5MWQ2XHU5MWRmXHU5MWUxXHU5MWRiXHU5MWZjXHU5MWY1XHU5MWY2XHU5MjFlXHU5MWZmXHU5MjE0XHU5MjJjXHU5MjE1XHU5MjExXHU5MjVlXHU5MjU3XHU5MjQ1XHU5MjQ5XHU5MjY0XHU5MjQ4XHU5Mjk1'@; put 'XHU5MjNmXHU5MjRiXHU5MjUwXHU5MjljXHU5Mjk2XHU5MjkzXHU5MjliXHU5MjVhXHU5MmNmXHU5MmI5XHU5MmI3XHU5MmU5XHU5MzBmXHU5MmZhXHU5MzQ0XHU5MzJlIl0sWyJlZmExIiwiXHU5MzE5XHU5MzIyXHU5MzFhXHU5MzIzXHU5MzNhXHU5MzM1XHU5MzNiXHU5MzVjXHU5MzYwXHU5'@; put 'MzdjXHU5MzZlXHU5MzU2XHU5M2IwXHU5M2FjXHU5M2FkXHU5Mzk0XHU5M2I5XHU5M2Q2XHU5M2Q3XHU5M2U4XHU5M2U1XHU5M2Q4XHU5M2MzXHU5M2RkXHU5M2QwXHU5M2M4XHU5M2U0XHU5NDFhXHU5NDE0XHU5NDEzXHU5NDAzXHU5NDA3XHU5NDEwXHU5NDM2XHU5NDJiXHU5NDM1XHU5NDIx'@; put 'XHU5NDNhXHU5NDQxXHU5NDUyXHU5NDQ0XHU5NDViXHU5NDYwXHU5NDYyXHU5NDVlXHU5NDZhXHU5MjI5XHU5NDcwXHU5NDc1XHU5NDc3XHU5NDdkXHU5NDVhXHU5NDdjXHU5NDdlXHU5NDgxXHU5NDdmXHU5NTgyXHU5NTg3XHU5NThhXHU5NTk0XHU5NTk2XHU5NTk4XHU5NTk5XHU5NWEwXHU5'@; put 'NWE4XHU5NWE3XHU5NWFkXHU5NWJjXHU5NWJiXHU5NWI5XHU5NWJlXHU5NWNhXHU2ZmY2XHU5NWMzXHU5NWNkXHU5NWNjXHU5NWQ1XHU5NWQ0XHU5NWQ2XHU5NWRjXHU5NWUxXHU5NWU1XHU5NWUyXHU5NjIxXHU5NjI4XHU5NjJlXHU5NjJmXHU5NjQyXHU5NjRjXHU5NjRmXHU5NjRiXHU5Njc3'@; put 'XHU5NjVjXHU5NjVlIl0sWyJmMGExIiwiXHU5NjVkXHU5NjVmXHU5NjY2XHU5NjcyXHU5NjZjXHU5NjhkXHU5Njk4XHU5Njk1XHU5Njk3XHU5NmFhXHU5NmE3XHU5NmIxXHU5NmIyXHU5NmIwXHU5NmI0XHU5NmI2XHU5NmI4XHU5NmI5XHU5NmNlXHU5NmNiXHU5NmM5XHU5NmNkXHU4OTRkXHU5'@; put 'NmRjXHU5NzBkXHU5NmQ1XHU5NmY5XHU5NzA0XHU5NzA2XHU5NzA4XHU5NzEzXHU5NzBlXHU5NzExXHU5NzBmXHU5NzE2XHU5NzE5XHU5NzI0XHU5NzJhXHU5NzMwXHU5NzM5XHU5NzNkXHU5NzNlXHU5NzQ0XHU5NzQ2XHU5NzQ4XHU5NzQyXHU5NzQ5XHU5NzVjXHU5NzYwXHU5NzY0XHU5NzY2'@; put 'XHU5NzY4XHU1MmQyXHU5NzZiXHU5NzcxXHU5Nzc5XHU5Nzg1XHU5NzdjXHU5NzgxXHU5NzdhXHU5Nzg2XHU5NzhiXHU5NzhmXHU5NzkwXHU5NzljXHU5N2E4XHU5N2E2XHU5N2EzXHU5N2IzXHU5N2I0XHU5N2MzXHU5N2M2XHU5N2M4XHU5N2NiXHU5N2RjXHU5N2VkXHU5ZjRmXHU5N2YyXHU3'@; put 'YWRmXHU5N2Y2XHU5N2Y1XHU5ODBmXHU5ODBjXHU5ODM4XHU5ODI0XHU5ODIxXHU5ODM3XHU5ODNkXHU5ODQ2XHU5ODRmXHU5ODRiXHU5ODZiXHU5ODZmXHU5ODcwIl0sWyJmMWExIiwiXHU5ODcxXHU5ODc0XHU5ODczXHU5OGFhXHU5OGFmXHU5OGIxXHU5OGI2XHU5OGM0XHU5OGMzXHU5OGM2'@; put 'XHU5OGU5XHU5OGViXHU5OTAzXHU5OTA5XHU5OTEyXHU5OTE0XHU5OTE4XHU5OTIxXHU5OTFkXHU5OTFlXHU5OTI0XHU5OTIwXHU5OTJjXHU5OTJlXHU5OTNkXHU5OTNlXHU5OTQyXHU5OTQ5XHU5OTQ1XHU5OTUwXHU5OTRiXHU5OTUxXHU5OTUyXHU5OTRjXHU5OTU1XHU5OTk3XHU5OTk4XHU5'@; put 'OWE1XHU5OWFkXHU5OWFlXHU5OWJjXHU5OWRmXHU5OWRiXHU5OWRkXHU5OWQ4XHU5OWQxXHU5OWVkXHU5OWVlXHU5OWYxXHU5OWYyXHU5OWZiXHU5OWY4XHU5YTAxXHU5YTBmXHU5YTA1XHU5OWUyXHU5YTE5XHU5YTJiXHU5YTM3XHU5YTQ1XHU5YTQyXHU5YTQwXHU5YTQzXHU5YTNlXHU5YTU1'@; put 'XHU5YTRkXHU5YTViXHU5YTU3XHU5YTVmXHU5YTYyXHU5YTY1XHU5YTY0XHU5YTY5XHU5YTZiXHU5YTZhXHU5YWFkXHU5YWIwXHU5YWJjXHU5YWMwXHU5YWNmXHU5YWQxXHU5YWQzXHU5YWQ0XHU5YWRlXHU5YWRmXHU5YWUyXHU5YWUzXHU5YWU2XHU5YWVmXHU5YWViXHU5YWVlXHU5YWY0XHU5'@; put 'YWYxXHU5YWY3Il0sWyJmMmExIiwiXHU5YWZiXHU5YjA2XHU5YjE4XHU5YjFhXHU5YjFmXHU5YjIyXHU5YjIzXHU5YjI1XHU5YjI3XHU5YjI4XHU5YjI5XHU5YjJhXHU5YjJlXHU5YjJmXHU5YjMyXHU5YjQ0XHU5YjQzXHU5YjRmXHU5YjRkXHU5YjRlXHU5YjUxXHU5YjU4XHU5Yjc0XHU5Yjkz'@; put 'XHU5YjgzXHU5YjkxXHU5Yjk2XHU5Yjk3XHU5YjlmXHU5YmEwXHU5YmE4XHU5YmI0XHU5YmMwXHU5YmNhXHU5YmI5XHU5YmM2XHU5YmNmXHU5YmQxXHU5YmQyXHU5YmUzXHU5YmUyXHU5YmU0XHU5YmQ0XHU5YmUxXHU5YzNhXHU5YmYyXHU5YmYxXHU5YmYwXHU5YzE1XHU5YzE0XHU5YzA5XHU5'@; put 'YzEzXHU5YzBjXHU5YzA2XHU5YzA4XHU5YzEyXHU5YzBhXHU5YzA0XHU5YzJlXHU5YzFiXHU5YzI1XHU5YzI0XHU5YzIxXHU5YzMwXHU5YzQ3XHU5YzMyXHU5YzQ2XHU5YzNlXHU5YzVhXHU5YzYwXHU5YzY3XHU5Yzc2XHU5Yzc4XHU5Y2U3XHU5Y2VjXHU5Y2YwXHU5ZDA5XHU5ZDA4XHU5Y2Vi'@; put 'XHU5ZDAzXHU5ZDA2XHU5ZDJhXHU5ZDI2XHU5ZGFmXHU5ZDIzXHU5ZDFmXHU5ZDQ0XHU5ZDE1XHU5ZDEyXHU5ZDQxXHU5ZDNmXHU5ZDNlXHU5ZDQ2XHU5ZDQ4Il0sWyJmM2ExIiwiXHU5ZDVkXHU5ZDVlXHU5ZDY0XHU5ZDUxXHU5ZDUwXHU5ZDU5XHU5ZDcyXHU5ZDg5XHU5ZDg3XHU5ZGFiXHU5'@; put 'ZDZmXHU5ZDdhXHU5ZDlhXHU5ZGE0XHU5ZGE5XHU5ZGIyXHU5ZGM0XHU5ZGMxXHU5ZGJiXHU5ZGI4XHU5ZGJhXHU5ZGM2XHU5ZGNmXHU5ZGMyXHU5ZGQ5XHU5ZGQzXHU5ZGY4XHU5ZGU2XHU5ZGVkXHU5ZGVmXHU5ZGZkXHU5ZTFhXHU5ZTFiXHU5ZTFlXHU5ZTc1XHU5ZTc5XHU5ZTdkXHU5ZTgx'@; put 'XHU5ZTg4XHU5ZThiXHU5ZThjXHU5ZTkyXHU5ZTk1XHU5ZTkxXHU5ZTlkXHU5ZWE1XHU5ZWE5XHU5ZWI4XHU5ZWFhXHU5ZWFkXHU5NzYxXHU5ZWNjXHU5ZWNlXHU5ZWNmXHU5ZWQwXHU5ZWQ0XHU5ZWRjXHU5ZWRlXHU5ZWRkXHU5ZWUwXHU5ZWU1XHU5ZWU4XHU5ZWVmXHU5ZWY0XHU5ZWY2XHU5'@; put 'ZWY3XHU5ZWY5XHU5ZWZiXHU5ZWZjXHU5ZWZkXHU5ZjA3XHU5ZjA4XHU3NmI3XHU5ZjE1XHU5ZjIxXHU5ZjJjXHU5ZjNlXHU5ZjRhXHU5ZjUyXHU5ZjU0XHU5ZjYzXHU5ZjVmXHU5ZjYwXHU5ZjYxXHU5ZjY2XHU5ZjY3XHU5ZjZjXHU5ZjZhXHU5Zjc3XHU5ZjcyXHU5Zjc2XHU5Zjk1XHU5Zjlj'@; put 'XHU5ZmEwIl0sWyJmNGExIiwiXHU1ODJmXHU2OWM3XHU5MDU5XHU3NDY0XHU1MWRjXHU3MTk5Il0sWyJmOWExIiwiXHU3ZThhXHU4OTFjXHU5MzQ4XHU5Mjg4XHU4NGRjXHU0ZmM5XHU3MGJiXHU2NjMxXHU2OGM4XHU5MmY5XHU2NmZiXHU1ZjQ1XHU0ZTI4XHU0ZWUxXHU0ZWZjXHU0ZjAwXHU0'@; put 'ZjAzXHU0ZjM5XHU0ZjU2XHU0ZjkyXHU0ZjhhXHU0ZjlhXHU0Zjk0XHU0ZmNkXHU1MDQwXHU1MDIyXHU0ZmZmXHU1MDFlXHU1MDQ2XHU1MDcwXHU1MDQyXHU1MDk0XHU1MGY0XHU1MGQ4XHU1MTRhXHU1MTY0XHU1MTlkXHU1MWJlXHU1MWVjXHU1MjE1XHU1MjljXHU1MmE2XHU1MmMwXHU1MmRi'@; put 'XHU1MzAwXHU1MzA3XHU1MzI0XHU1MzcyXHU1MzkzXHU1M2IyXHU1M2RkXHVmYTBlXHU1NDljXHU1NDhhXHU1NGE5XHU1NGZmXHU1NTg2XHU1NzU5XHU1NzY1XHU1N2FjXHU1N2M4XHU1N2M3XHVmYTBmXHVmYTEwXHU1ODllXHU1OGIyXHU1OTBiXHU1OTUzXHU1OTViXHU1OTVkXHU1OTYzXHU1'@; put 'OWE0XHU1OWJhXHU1YjU2XHU1YmMwXHU3NTJmXHU1YmQ4XHU1YmVjXHU1YzFlXHU1Y2E2XHU1Y2JhXHU1Y2Y1XHU1ZDI3XHU1ZDUzXHVmYTExXHU1ZDQyXHU1ZDZkXHU1ZGI4XHU1ZGI5XHU1ZGQwXHU1ZjIxXHU1ZjM0XHU1ZjY3XHU1ZmI3Il0sWyJmYWExIiwiXHU1ZmRlXHU2MDVkXHU2MDg1'@; put 'XHU2MDhhXHU2MGRlXHU2MGQ1XHU2MTIwXHU2MGYyXHU2MTExXHU2MTM3XHU2MTMwXHU2MTk4XHU2MjEzXHU2MmE2XHU2M2Y1XHU2NDYwXHU2NDlkXHU2NGNlXHU2NTRlXHU2NjAwXHU2NjE1XHU2NjNiXHU2NjA5XHU2NjJlXHU2NjFlXHU2NjI0XHU2NjY1XHU2NjU3XHU2NjU5XHVmYTEyXHU2'@; put 'NjczXHU2Njk5XHU2NmEwXHU2NmIyXHU2NmJmXHU2NmZhXHU2NzBlXHVmOTI5XHU2NzY2XHU2N2JiXHU2ODUyXHU2N2MwXHU2ODAxXHU2ODQ0XHU2OGNmXHVmYTEzXHU2OTY4XHVmYTE0XHU2OTk4XHU2OWUyXHU2YTMwXHU2YTZiXHU2YTQ2XHU2YTczXHU2YTdlXHU2YWUyXHU2YWU0XHU2YmQ2'@; put 'XHU2YzNmXHU2YzVjXHU2Yzg2XHU2YzZmXHU2Y2RhXHU2ZDA0XHU2ZDg3XHU2ZDZmXHU2ZDk2XHU2ZGFjXHU2ZGNmXHU2ZGY4XHU2ZGYyXHU2ZGZjXHU2ZTM5XHU2ZTVjXHU2ZTI3XHU2ZTNjXHU2ZWJmXHU2Zjg4XHU2ZmI1XHU2ZmY1XHU3MDA1XHU3MDA3XHU3MDI4XHU3MDg1XHU3MGFiXHU3'@; put 'MTBmXHU3MTA0XHU3MTVjXHU3MTQ2XHU3MTQ3XHVmYTE1XHU3MWMxXHU3MWZlXHU3MmIxIl0sWyJmYmExIiwiXHU3MmJlXHU3MzI0XHVmYTE2XHU3Mzc3XHU3M2JkXHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3NDJlXHU3NDYyXHU3NDg5'@; put 'XHU3NDlmXHU3NTAxXHU3NTZmXHU3NjgyXHU3NjljXHU3NjllXHU3NjliXHU3NmE2XHVmYTE3XHU3NzQ2XHU1MmFmXHU3ODIxXHU3ODRlXHU3ODY0XHU3ODdhXHU3OTMwXHVmYTE4XHVmYTE5XHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFjXHU3YWViXHU3YjllXHVm'@; put 'YTFkXHU3ZDQ4XHU3ZDVjXHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUyXHU3ZjQ3XHU3ZmExXHVmYTFlXHU4MzAxXHU4MzYyXHU4MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4XHU4NGI0XHU4NTUzXHU4NTU5XHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4OGY1XHU4YTEyXHU4YTM3'@; put 'XHU4YTc5XHU4YWE3XHU4YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4YjUzXHU4YjdmXHU4Y2YwXHU4Y2Y0XHU4ZDEyXHU4ZDc2XHVmYTIzXHU4ZWNmXHVmYTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhIl0sWyJmY2ExIiwiXHU5MWQ3XHU5MWRlXHU5MWVkXHU5'@; put 'MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEwXHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNjXHU5MjRlXHU5MjU5XHU5MjUxXHU5MjM5XHU5MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5MzI1XHU5MzIxXHU5MmZi'@; put 'XHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5M2M2XHU5M2RlXHU5M2Y4XHU5NDMxXHU5NDQ1XHU5NDQ4XHU5NTkyXHVmOWRjXHVmYTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUxXHU5NzU1XHU5ODU3XHU5'@; put 'ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJjXHU5OTllXHU5YTRlXHU5YWQ5XHU5YWRjXHU5Yjc1XHU5YjcyXHU5YjhmXHU5YmIxXHU5YmJiXHU5YzAwXHU5ZDcwXHU5ZDZiXHVmYTJkXHU5ZTE5XHU5ZWQxIl0sWyJmY2YxIiwiXHUyMTcwIiw5LCJcdWZmZTJcdWZmZTRcdWZmMDdcdWZmMDIi'@; put 'XSxbIjhmYTJhZiIsIlx1MDJkOFx1MDJjN1x4YjhcdTAyZDlcdTAyZGRceGFmXHUwMmRiXHUwMmRhXHVmZjVlXHUwMzg0XHUwMzg1Il0sWyI4ZmEyYzIiLCJceGExXHhhNlx4YmYiXSxbIjhmYTJlYiIsIlx4YmFceGFhXHhhOVx4YWVcdTIxMjJceGE0XHUyMTE2Il0sWyI4ZmE2ZTEiLCJcdTAz'@; put 'ODZcdTAzODhcdTAzODlcdTAzOGFcdTAzYWEiXSxbIjhmYTZlNyIsIlx1MDM4YyJdLFsiOGZhNmU5IiwiXHUwMzhlXHUwM2FiIl0sWyI4ZmE2ZWMiLCJcdTAzOGYiXSxbIjhmYTZmMSIsIlx1MDNhY1x1MDNhZFx1MDNhZVx1MDNhZlx1MDNjYVx1MDM5MFx1MDNjY1x1MDNjMlx1MDNjZFx1MDNj'@; put 'Ylx1MDNiMFx1MDNjZSJdLFsiOGZhN2MyIiwiXHUwNDAyIiwxMCwiXHUwNDBlXHUwNDBmIl0sWyI4ZmE3ZjIiLCJcdTA0NTIiLDEwLCJcdTA0NWVcdTA0NWYiXSxbIjhmYTlhMSIsIlx4YzZcdTAxMTAiXSxbIjhmYTlhNCIsIlx1MDEyNiJdLFsiOGZhOWE2IiwiXHUwMTMyIl0sWyI4ZmE5YTgi'@; put 'LCJcdTAxNDFcdTAxM2YiXSxbIjhmYTlhYiIsIlx1MDE0YVx4ZDhcdTAxNTIiXSxbIjhmYTlhZiIsIlx1MDE2Nlx4ZGUiXSxbIjhmYTljMSIsIlx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQyXHUwMTQwXHUwMTQ5XHUwMTRiXHhmOFx1MDE1M1x4ZGZcdTAxNjdc'@; put 'eGZlIl0sWyI4ZmFhYTEiLCJceGMxXHhjMFx4YzRceGMyXHUwMTAyXHUwMWNkXHUwMTAwXHUwMTA0XHhjNVx4YzNcdTAxMDZcdTAxMDhcdTAxMGNceGM3XHUwMTBhXHUwMTBlXHhjOVx4YzhceGNiXHhjYVx1MDExYVx1MDExNlx1MDExMlx1MDExOCJdLFsiOGZhYWJhIiwiXHUwMTFjXHUwMTFl'@; put 'XHUwMTIyXHUwMTIwXHUwMTI0XHhjZFx4Y2NceGNmXHhjZVx1MDFjZlx1MDEzMFx1MDEyYVx1MDEyZVx1MDEyOFx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzZFx1MDEzYlx1MDE0M1x1MDE0N1x1MDE0NVx4ZDFceGQzXHhkMlx4ZDZceGQ0XHUwMWQxXHUwMTUwXHUwMTRjXHhkNVx1MDE1NFx1MDE1'@; put 'OFx1MDE1Nlx1MDE1YVx1MDE1Y1x1MDE2MFx1MDE1ZVx1MDE2NFx1MDE2Mlx4ZGFceGQ5XHhkY1x4ZGJcdTAxNmNcdTAxZDNcdTAxNzBcdTAxNmFcdTAxNzJcdTAxNmVcdTAxNjhcdTAxZDdcdTAxZGJcdTAxZDlcdTAxZDVcdTAxNzRceGRkXHUwMTc4XHUwMTc2XHUwMTc5XHUwMTdkXHUwMTdi'@; put 'Il0sWyI4ZmFiYTEiLCJceGUxXHhlMFx4ZTRceGUyXHUwMTAzXHUwMWNlXHUwMTAxXHUwMTA1XHhlNVx4ZTNcdTAxMDdcdTAxMDlcdTAxMGRceGU3XHUwMTBiXHUwMTBmXHhlOVx4ZThceGViXHhlYVx1MDExYlx1MDExN1x1MDExM1x1MDExOVx1MDFmNVx1MDExZFx1MDExZiJdLFsiOGZhYmJk'@; put 'IiwiXHUwMTIxXHUwMTI1XHhlZFx4ZWNceGVmXHhlZVx1MDFkMCJdLFsiOGZhYmM1IiwiXHUwMTJiXHUwMTJmXHUwMTI5XHUwMTM1XHUwMTM3XHUwMTNhXHUwMTNlXHUwMTNjXHUwMTQ0XHUwMTQ4XHUwMTQ2XHhmMVx4ZjNceGYyXHhmNlx4ZjRcdTAxZDJcdTAxNTFcdTAxNGRceGY1XHUwMTU1'@; put 'XHUwMTU5XHUwMTU3XHUwMTViXHUwMTVkXHUwMTYxXHUwMTVmXHUwMTY1XHUwMTYzXHhmYVx4ZjlceGZjXHhmYlx1MDE2ZFx1MDFkNFx1MDE3MVx1MDE2Ylx1MDE3M1x1MDE2Zlx1MDE2OVx1MDFkOFx1MDFkY1x1MDFkYVx1MDFkNlx1MDE3NVx4ZmRceGZmXHUwMTc3XHUwMTdhXHUwMTdlXHUw'@; put 'MTdjIl0sWyI4ZmIwYTEiLCJcdTRlMDJcdTRlMDRcdTRlMDVcdTRlMGNcdTRlMTJcdTRlMWZcdTRlMjNcdTRlMjRcdTRlMjhcdTRlMmJcdTRlMmVcdTRlMmZcdTRlMzBcdTRlMzVcdTRlNDBcdTRlNDFcdTRlNDRcdTRlNDdcdTRlNTFcdTRlNWFcdTRlNWNcdTRlNjNcdTRlNjhcdTRlNjlcdTRl'@; put 'NzRcdTRlNzVcdTRlNzlcdTRlN2ZcdTRlOGRcdTRlOTZcdTRlOTdcdTRlOWRcdTRlYWZcdTRlYjlcdTRlYzNcdTRlZDBcdTRlZGFcdTRlZGJcdTRlZTBcdTRlZTFcdTRlZTJcdTRlZThcdTRlZWZcdTRlZjFcdTRlZjNcdTRlZjVcdTRlZmRcdTRlZmVcdTRlZmZcdTRmMDBcdTRmMDJcdTRmMDNc'@; put 'dTRmMDhcdTRmMGJcdTRmMGNcdTRmMTJcdTRmMTVcdTRmMTZcdTRmMTdcdTRmMTlcdTRmMmVcdTRmMzFcdTRmNjBcdTRmMzNcdTRmMzVcdTRmMzdcdTRmMzlcdTRmM2JcdTRmM2VcdTRmNDBcdTRmNDJcdTRmNDhcdTRmNDlcdTRmNGJcdTRmNGNcdTRmNTJcdTRmNTRcdTRmNTZcdTRmNThcdTRm'@; put 'NWZcdTRmNjNcdTRmNmFcdTRmNmNcdTRmNmVcdTRmNzFcdTRmNzdcdTRmNzhcdTRmNzlcdTRmN2FcdTRmN2RcdTRmN2VcdTRmODFcdTRmODJcdTRmODQiXSxbIjhmYjFhMSIsIlx1NGY4NVx1NGY4OVx1NGY4YVx1NGY4Y1x1NGY4ZVx1NGY5MFx1NGY5Mlx1NGY5M1x1NGY5NFx1NGY5N1x1NGY5'@; put 'OVx1NGY5YVx1NGY5ZVx1NGY5Zlx1NGZiMlx1NGZiN1x1NGZiOVx1NGZiYlx1NGZiY1x1NGZiZFx1NGZiZVx1NGZjMFx1NGZjMVx1NGZjNVx1NGZjNlx1NGZjOFx1NGZjOVx1NGZjYlx1NGZjY1x1NGZjZFx1NGZjZlx1NGZkMlx1NGZkY1x1NGZlMFx1NGZlMlx1NGZmMFx1NGZmMlx1NGZmY1x1'@; put 'NGZmZFx1NGZmZlx1NTAwMFx1NTAwMVx1NTAwNFx1NTAwN1x1NTAwYVx1NTAwY1x1NTAwZVx1NTAxMFx1NTAxM1x1NTAxN1x1NTAxOFx1NTAxYlx1NTAxY1x1NTAxZFx1NTAxZVx1NTAyMlx1NTAyN1x1NTAyZVx1NTAzMFx1NTAzMlx1NTAzM1x1NTAzNVx1NTA0MFx1NTA0MVx1NTA0Mlx1NTA0'@; put 'NVx1NTA0Nlx1NTA0YVx1NTA0Y1x1NTA0ZVx1NTA1MVx1NTA1Mlx1NTA1M1x1NTA1N1x1NTA1OVx1NTA1Zlx1NTA2MFx1NTA2Mlx1NTA2M1x1NTA2Nlx1NTA2N1x1NTA2YVx1NTA2ZFx1NTA3MFx1NTA3MVx1NTAzYlx1NTA4MVx1NTA4M1x1NTA4NFx1NTA4Nlx1NTA4YVx1NTA4ZVx1NTA4Zlx1'@; put 'NTA5MCJdLFsiOGZiMmExIiwiXHU1MDkyXHU1MDkzXHU1MDk0XHU1MDk2XHU1MDliXHU1MDljXHU1MDllIiw0LCJcdTUwYWFcdTUwYWZcdTUwYjBcdTUwYjlcdTUwYmFcdTUwYmRcdTUwYzBcdTUwYzNcdTUwYzRcdTUwYzdcdTUwY2NcdTUwY2VcdTUwZDBcdTUwZDNcdTUwZDRcdTUwZDhcdTUw'@; put 'ZGNcdTUwZGRcdTUwZGZcdTUwZTJcdTUwZTRcdTUwZTZcdTUwZThcdTUwZTlcdTUwZWZcdTUwZjFcdTUwZjZcdTUwZmFcdTUwZmVcdTUxMDNcdTUxMDZcdTUxMDdcdTUxMDhcdTUxMGJcdTUxMGNcdTUxMGRcdTUxMGVcdTUwZjJcdTUxMTBcdTUxMTdcdTUxMTlcdTUxMWJcdTUxMWNcdTUxMWRc'@; put 'dTUxMWVcdTUxMjNcdTUxMjdcdTUxMjhcdTUxMmNcdTUxMmRcdTUxMmZcdTUxMzFcdTUxMzNcdTUxMzRcdTUxMzVcdTUxMzhcdTUxMzlcdTUxNDJcdTUxNGFcdTUxNGZcdTUxNTNcdTUxNTVcdTUxNTdcdTUxNThcdTUxNWZcdTUxNjRcdTUxNjZcdTUxN2VcdTUxODNcdTUxODRcdTUxOGJcdTUx'@; put 'OGVcdTUxOThcdTUxOWRcdTUxYTFcdTUxYTNcdTUxYWRcdTUxYjhcdTUxYmFcdTUxYmNcdTUxYmVcdTUxYmZcdTUxYzIiXSxbIjhmYjNhMSIsIlx1NTFjOFx1NTFjZlx1NTFkMVx1NTFkMlx1NTFkM1x1NTFkNVx1NTFkOFx1NTFkZVx1NTFlMlx1NTFlNVx1NTFlZVx1NTFmMlx1NTFmM1x1NTFm'@; put 'NFx1NTFmN1x1NTIwMVx1NTIwMlx1NTIwNVx1NTIxMlx1NTIxM1x1NTIxNVx1NTIxNlx1NTIxOFx1NTIyMlx1NTIyOFx1NTIzMVx1NTIzMlx1NTIzNVx1NTIzY1x1NTI0NVx1NTI0OVx1NTI1NVx1NTI1N1x1NTI1OFx1NTI1YVx1NTI1Y1x1NTI1Zlx1NTI2MFx1NTI2MVx1NTI2Nlx1NTI2ZVx1'@; put 'NTI3N1x1NTI3OFx1NTI3OVx1NTI4MFx1NTI4Mlx1NTI4NVx1NTI4YVx1NTI4Y1x1NTI5M1x1NTI5NVx1NTI5Nlx1NTI5N1x1NTI5OFx1NTI5YVx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1NTJhN1x1NTJhZlx1NTJiMFx1NTJiNlx1NTJiN1x1NTJiOFx1NTJiYVx1NTJiYlx1NTJiZFx1NTJj'@; put 'MFx1NTJjNFx1NTJjNlx1NTJjOFx1NTJjY1x1NTJjZlx1NTJkMVx1NTJkNFx1NTJkNlx1NTJkYlx1NTJkY1x1NTJlMVx1NTJlNVx1NTJlOFx1NTJlOVx1NTJlYVx1NTJlY1x1NTJmMFx1NTJmMVx1NTJmNFx1NTJmNlx1NTJmN1x1NTMwMFx1NTMwM1x1NTMwYVx1NTMwYiJdLFsiOGZiNGExIiwi'@; put 'XHU1MzBjXHU1MzExXHU1MzEzXHU1MzE4XHU1MzFiXHU1MzFjXHU1MzFlXHU1MzFmXHU1MzI1XHU1MzI3XHU1MzI4XHU1MzI5XHU1MzJiXHU1MzJjXHU1MzJkXHU1MzMwXHU1MzMyXHU1MzM1XHU1MzNjXHU1MzNkXHU1MzNlXHU1MzQyXHU1MzRjXHU1MzRiXHU1MzU5XHU1MzViXHU1MzYxXHU1'@; put 'MzYzXHU1MzY1XHU1MzZjXHU1MzZkXHU1MzcyXHU1Mzc5XHU1MzdlXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhlXHU1MzkzXHU1Mzk0XHU1Mzk5XHU1MzlkXHU1M2ExXHU1M2E0XHU1M2FhXHU1M2FiXHU1M2FmXHU1M2IyXHU1M2I0XHU1M2I1XHU1M2I3XHU1M2I4XHU1M2JhXHU1M2JkXHU1M2Mw'@; put 'XHU1M2M1XHU1M2NmXHU1M2QyXHU1M2QzXHU1M2Q1XHU1M2RhXHU1M2RkXHU1M2RlXHU1M2UwXHU1M2U2XHU1M2U3XHU1M2Y1XHU1NDAyXHU1NDEzXHU1NDFhXHU1NDIxXHU1NDI3XHU1NDI4XHU1NDJhXHU1NDJmXHU1NDMxXHU1NDM0XHU1NDM1XHU1NDQzXHU1NDQ0XHU1NDQ3XHU1NDRkXHU1'@; put 'NDRmXHU1NDVlXHU1NDYyXHU1NDY0XHU1NDY2XHU1NDY3XHU1NDY5XHU1NDZiXHU1NDZkXHU1NDZlXHU1NDc0XHU1NDdmIl0sWyI4ZmI1YTEiLCJcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODhcdTU0ODlcdTU0OGRcdTU0OTFcdTU0OTVcdTU0OTZcdTU0OWNcdTU0OWZcdTU0YTFcdTU0YTZcdTU0'@; put 'YTdcdTU0YTlcdTU0YWFcdTU0YWRcdTU0YWVcdTU0YjFcdTU0YjdcdTU0YjlcdTU0YmFcdTU0YmJcdTU0YmZcdTU0YzZcdTU0Y2FcdTU0Y2RcdTU0Y2VcdTU0ZTBcdTU0ZWFcdTU0ZWNcdTU0ZWZcdTU0ZjZcdTU0ZmNcdTU0ZmVcdTU0ZmZcdTU1MDBcdTU1MDFcdTU1MDVcdTU1MDhcdTU1MDlc'@; put 'dTU1MGNcdTU1MGRcdTU1MGVcdTU1MTVcdTU1MmFcdTU1MmJcdTU1MzJcdTU1MzVcdTU1MzZcdTU1M2JcdTU1M2NcdTU1M2RcdTU1NDFcdTU1NDdcdTU1NDlcdTU1NGFcdTU1NGRcdTU1NTBcdTU1NTFcdTU1NThcdTU1NWFcdTU1NWJcdTU1NWVcdTU1NjBcdTU1NjFcdTU1NjRcdTU1NjZcdTU1'@; put 'N2ZcdTU1ODFcdTU1ODJcdTU1ODZcdTU1ODhcdTU1OGVcdTU1OGZcdTU1OTFcdTU1OTJcdTU1OTNcdTU1OTRcdTU1OTdcdTU1YTNcdTU1YTRcdTU1YWRcdTU1YjJcdTU1YmZcdTU1YzFcdTU1YzNcdTU1YzZcdTU1YzlcdTU1Y2JcdTU1Y2NcdTU1Y2VcdTU1ZDFcdTU1ZDIiXSxbIjhmYjZhMSIs'@; put 'Ilx1NTVkM1x1NTVkN1x1NTVkOFx1NTVkYlx1NTVkZVx1NTVlMlx1NTVlOVx1NTVmNlx1NTVmZlx1NTYwNVx1NTYwOFx1NTYwYVx1NTYwZCIsNSwiXHU1NjE5XHU1NjJjXHU1NjMwXHU1NjMzXHU1NjM1XHU1NjM3XHU1NjM5XHU1NjNiXHU1NjNjXHU1NjNkXHU1NjNmXHU1NjQwXHU1NjQxXHU1'@; put 'NjQzXHU1NjQ0XHU1NjQ2XHU1NjQ5XHU1NjRiXHU1NjRkXHU1NjRmXHU1NjU0XHU1NjVlXHU1NjYwXHU1NjYxXHU1NjYyXHU1NjYzXHU1NjY2XHU1NjY5XHU1NjZkXHU1NjZmXHU1NjcxXHU1NjcyXHU1Njc1XHU1Njg0XHU1Njg1XHU1Njg4XHU1NjhiXHU1NjhjXHU1Njk1XHU1Njk5XHU1Njlh'@; put 'XHU1NjlkXHU1NjllXHU1NjlmXHU1NmE2XHU1NmE3XHU1NmE4XHU1NmE5XHU1NmFiXHU1NmFjXHU1NmFkXHU1NmIxXHU1NmIzXHU1NmI3XHU1NmJlXHU1NmM1XHU1NmM5XHU1NmNhXHU1NmNiXHU1NmNmXHU1NmQwXHU1NmNjXHU1NmNkXHU1NmQ5XHU1NmRjXHU1NmRkXHU1NmRmXHU1NmUxXHU1'@; put 'NmU0Iiw0LCJcdTU2ZjFcdTU2ZWJcdTU2ZWQiXSxbIjhmYjdhMSIsIlx1NTZmNlx1NTZmN1x1NTcwMVx1NTcwMlx1NTcwN1x1NTcwYVx1NTcwY1x1NTcxMVx1NTcxNVx1NTcxYVx1NTcxYlx1NTcxZFx1NTcyMFx1NTcyMlx1NTcyM1x1NTcyNFx1NTcyNVx1NTcyOVx1NTcyYVx1NTcyY1x1NTcy'@; put 'ZVx1NTcyZlx1NTczM1x1NTczNFx1NTczZFx1NTczZVx1NTczZlx1NTc0NVx1NTc0Nlx1NTc0Y1x1NTc0ZFx1NTc1Mlx1NTc2Mlx1NTc2NVx1NTc2N1x1NTc2OFx1NTc2Ylx1NTc2ZCIsNCwiXHU1NzczXHU1Nzc0XHU1Nzc1XHU1Nzc3XHU1Nzc5XHU1NzdhXHU1NzdiXHU1NzdjXHU1NzdlXHU1'@; put 'NzgxXHU1NzgzXHU1NzhjXHU1Nzk0XHU1Nzk3XHU1Nzk5XHU1NzlhXHU1NzljXHU1NzlkXHU1NzllXHU1NzlmXHU1N2ExXHU1Nzk1XHU1N2E3XHU1N2E4XHU1N2E5XHU1N2FjXHU1N2I4XHU1N2JkXHU1N2M3XHU1N2M4XHU1N2NjXHU1N2NmXHU1N2Q1XHU1N2RkXHU1N2RlXHU1N2U0XHU1N2U2'@; put 'XHU1N2U3XHU1N2U5XHU1N2VkXHU1N2YwXHU1N2Y1XHU1N2Y2XHU1N2Y4XHU1N2ZkXHU1N2ZlXHU1N2ZmXHU1ODAzXHU1ODA0XHU1ODA4XHU1ODA5XHU1N2UxIl0sWyI4ZmI4YTEiLCJcdTU4MGNcdTU4MGRcdTU4MWJcdTU4MWVcdTU4MWZcdTU4MjBcdTU4MjZcdTU4MjdcdTU4MmRcdTU4MzJc'@; put 'dTU4MzlcdTU4M2ZcdTU4NDlcdTU4NGNcdTU4NGRcdTU4NGZcdTU4NTBcdTU4NTVcdTU4NWZcdTU4NjFcdTU4NjRcdTU4NjdcdTU4NjhcdTU4NzhcdTU4N2NcdTU4N2ZcdTU4ODBcdTU4ODFcdTU4ODdcdTU4ODhcdTU4ODlcdTU4OGFcdTU4OGNcdTU4OGRcdTU4OGZcdTU4OTBcdTU4OTRcdTU4'@; put 'OTZcdTU4OWRcdTU4YTBcdTU4YTFcdTU4YTJcdTU4YTZcdTU4YTlcdTU4YjFcdTU4YjJcdTU4YzRcdTU4YmNcdTU4YzJcdTU4YzhcdTU4Y2RcdTU4Y2VcdTU4ZDBcdTU4ZDJcdTU4ZDRcdTU4ZDZcdTU4ZGFcdTU4ZGRcdTU4ZTFcdTU4ZTJcdTU4ZTlcdTU4ZjNcdTU5MDVcdTU5MDZcdTU5MGJc'@; put 'dTU5MGNcdTU5MTJcdTU5MTNcdTU5MTRcdTg2NDFcdTU5MWRcdTU5MjFcdTU5MjNcdTU5MjRcdTU5MjhcdTU5MmZcdTU5MzBcdTU5MzNcdTU5MzVcdTU5MzZcdTU5M2ZcdTU5NDNcdTU5NDZcdTU5NTJcdTU5NTNcdTU5NTlcdTU5NWJcdTU5NWRcdTU5NWVcdTU5NWZcdTU5NjFcdTU5NjNcdTU5'@; put 'NmJcdTU5NmQiXSxbIjhmYjlhMSIsIlx1NTk2Zlx1NTk3Mlx1NTk3NVx1NTk3Nlx1NTk3OVx1NTk3Ylx1NTk3Y1x1NTk4Ylx1NTk4Y1x1NTk4ZVx1NTk5Mlx1NTk5NVx1NTk5N1x1NTk5Zlx1NTlhNFx1NTlhN1x1NTlhZFx1NTlhZVx1NTlhZlx1NTliMFx1NTliM1x1NTliN1x1NTliYVx1NTli'@; put 'Y1x1NTljMVx1NTljM1x1NTljNFx1NTljOFx1NTljYVx1NTljZFx1NTlkMlx1NTlkZFx1NTlkZVx1NTlkZlx1NTllM1x1NTllNFx1NTllN1x1NTllZVx1NTllZlx1NTlmMVx1NTlmMlx1NTlmNFx1NTlmN1x1NWEwMFx1NWEwNFx1NWEwY1x1NWEwZFx1NWEwZVx1NWExMlx1NWExM1x1NWExZVx1'@; put 'NWEyM1x1NWEyNFx1NWEyN1x1NWEyOFx1NWEyYVx1NWEyZFx1NWEzMFx1NWE0NFx1NWE0NVx1NWE0N1x1NWE0OFx1NWE0Y1x1NWE1MFx1NWE1NVx1NWE1ZVx1NWE2M1x1NWE2NVx1NWE2N1x1NWE2ZFx1NWE3N1x1NWE3YVx1NWE3Ylx1NWE3ZVx1NWE4Ylx1NWE5MFx1NWE5M1x1NWE5Nlx1NWE5'@; put 'OVx1NWE5Y1x1NWE5ZVx1NWE5Zlx1NWFhMFx1NWFhMlx1NWFhN1x1NWFhY1x1NWFiMVx1NWFiMlx1NWFiM1x1NWFiNVx1NWFiOFx1NWFiYVx1NWFiYlx1NWFiZiJdLFsiOGZiYWExIiwiXHU1YWM0XHU1YWM2XHU1YWM4XHU1YWNmXHU1YWRhXHU1YWRjXHU1YWUwXHU1YWU1XHU1YWVhXHU1YWVl'@; put 'XHU1YWY1XHU1YWY2XHU1YWZkXHU1YjAwXHU1YjAxXHU1YjA4XHU1YjE3XHU1YjM0XHU1YjE5XHU1YjFiXHU1YjFkXHU1YjIxXHU1YjI1XHU1YjJkXHU1YjM4XHU1YjQxXHU1YjRiXHU1YjRjXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjY4XHU1YjZlXHU1YjZmXHU1YjdjXHU1YjdkXHU1YjdlXHU1'@; put 'YjdmXHU1YjgxXHU1Yjg0XHU1Yjg2XHU1YjhhXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkzXHU1Yjk0XHU1Yjk2XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFmXHU1YmIxXHU1YmIyXHU1YmI3XHU1YmJhXHU1YmJjXHU1YmMwXHU1YmMxXHU1YmNkXHU1YmNmXHU1YmQ2Iiw0LCJcdTViZTBc'@; put 'dTViZWZcdTViZjFcdTViZjRcdTViZmRcdTVjMGNcdTVjMTdcdTVjMWVcdTVjMWZcdTVjMjNcdTVjMjZcdTVjMjlcdTVjMmJcdTVjMmNcdTVjMmVcdTVjMzBcdTVjMzJcdTVjMzVcdTVjMzZcdTVjNTlcdTVjNWFcdTVjNWNcdTVjNjJcdTVjNjNcdTVjNjdcdTVjNjhcdTVjNjkiXSxbIjhmYmJh'@; put 'MSIsIlx1NWM2ZFx1NWM3MFx1NWM3NFx1NWM3NVx1NWM3YVx1NWM3Ylx1NWM3Y1x1NWM3ZFx1NWM4N1x1NWM4OFx1NWM4YVx1NWM4Zlx1NWM5Mlx1NWM5ZFx1NWM5Zlx1NWNhMFx1NWNhMlx1NWNhM1x1NWNhNlx1NWNhYVx1NWNiMlx1NWNiNFx1NWNiNVx1NWNiYVx1NWNjOVx1NWNjYlx1NWNk'@; put 'Mlx1NWNkZFx1NWNkN1x1NWNlZVx1NWNmMVx1NWNmMlx1NWNmNFx1NWQwMVx1NWQwNlx1NWQwZFx1NWQxMlx1NWQyYlx1NWQyM1x1NWQyNFx1NWQyNlx1NWQyN1x1NWQzMVx1NWQzNFx1NWQzOVx1NWQzZFx1NWQzZlx1NWQ0Mlx1NWQ0M1x1NWQ0Nlx1NWQ0OFx1NWQ1NVx1NWQ1MVx1NWQ1OVx1'@; put 'NWQ0YVx1NWQ1Zlx1NWQ2MFx1NWQ2MVx1NWQ2Mlx1NWQ2NFx1NWQ2YVx1NWQ2ZFx1NWQ3MFx1NWQ3OVx1NWQ3YVx1NWQ3ZVx1NWQ3Zlx1NWQ4MVx1NWQ4M1x1NWQ4OFx1NWQ4YVx1NWQ5Mlx1NWQ5M1x1NWQ5NFx1NWQ5NVx1NWQ5OVx1NWQ5Ylx1NWQ5Zlx1NWRhMFx1NWRhN1x1NWRhYlx1NWRi'@; put 'MFx1NWRiNFx1NWRiOFx1NWRiOVx1NWRjM1x1NWRjN1x1NWRjYlx1NWRkMFx1NWRjZVx1NWRkOFx1NWRkOVx1NWRlMFx1NWRlNCJdLFsiOGZiY2ExIiwiXHU1ZGU5XHU1ZGY4XHU1ZGY5XHU1ZTAwXHU1ZTA3XHU1ZTBkXHU1ZTEyXHU1ZTE0XHU1ZTE1XHU1ZTE4XHU1ZTFmXHU1ZTIwXHU1ZTJl'@; put 'XHU1ZTI4XHU1ZTMyXHU1ZTM1XHU1ZTNlXHU1ZTRiXHU1ZTUwXHU1ZTQ5XHU1ZTUxXHU1ZTU2XHU1ZTU4XHU1ZTViXHU1ZTVjXHU1ZTVlXHU1ZTY4XHU1ZTZhIiw0LCJcdTVlNzBcdTVlODBcdTVlOGJcdTVlOGVcdTVlYTJcdTVlYTRcdTVlYTVcdTVlYThcdTVlYWFcdTVlYWNcdTVlYjFcdTVl'@; put 'YjNcdTVlYmRcdTVlYmVcdTVlYmZcdTVlYzZcdTVlY2NcdTVlY2JcdTVlY2VcdTVlZDFcdTVlZDJcdTVlZDRcdTVlZDVcdTVlZGNcdTVlZGVcdTVlZTVcdTVlZWJcdTVmMDJcdTVmMDZcdTVmMDdcdTVmMDhcdTVmMGVcdTVmMTlcdTVmMWNcdTVmMWRcdTVmMjFcdTVmMjJcdTVmMjNcdTVmMjRc'@; put 'dTVmMjhcdTVmMmJcdTVmMmNcdTVmMmVcdTVmMzBcdTVmMzRcdTVmMzZcdTVmM2JcdTVmM2RcdTVmM2ZcdTVmNDBcdTVmNDRcdTVmNDVcdTVmNDdcdTVmNGRcdTVmNTBcdTVmNTRcdTVmNThcdTVmNWJcdTVmNjBcdTVmNjNcdTVmNjRcdTVmNjciXSxbIjhmYmRhMSIsIlx1NWY2Zlx1NWY3Mlx1'@; put 'NWY3NFx1NWY3NVx1NWY3OFx1NWY3YVx1NWY3ZFx1NWY3ZVx1NWY4OVx1NWY4ZFx1NWY4Zlx1NWY5Nlx1NWY5Y1x1NWY5ZFx1NWZhMlx1NWZhN1x1NWZhYlx1NWZhNFx1NWZhY1x1NWZhZlx1NWZiMFx1NWZiMVx1NWZiOFx1NWZjNFx1NWZjN1x1NWZjOFx1NWZjOVx1NWZjYlx1NWZkMCIsNCwi'@; put 'XHU1ZmRlXHU1ZmUxXHU1ZmUyXHU1ZmU4XHU1ZmU5XHU1ZmVhXHU1ZmVjXHU1ZmVkXHU1ZmVlXHU1ZmVmXHU1ZmYyXHU1ZmYzXHU1ZmY2XHU1ZmZhXHU1ZmZjXHU2MDA3XHU2MDBhXHU2MDBkXHU2MDEzXHU2MDE0XHU2MDE3XHU2MDE4XHU2MDFhXHU2MDFmXHU2MDI0XHU2MDJkXHU2MDMzXHU2'@; put 'MDM1XHU2MDQwXHU2MDQ3XHU2MDQ4XHU2MDQ5XHU2MDRjXHU2MDUxXHU2MDU0XHU2MDU2XHU2MDU3XHU2MDVkXHU2MDYxXHU2MDY3XHU2MDcxXHU2MDdlXHU2MDdmXHU2MDgyXHU2MDg2XHU2MDg4XHU2MDhhXHU2MDhlXHU2MDkxXHU2MDkzXHU2MDk1XHU2MDk4XHU2MDlkXHU2MDllXHU2MGEy'@; put 'XHU2MGE0XHU2MGE1XHU2MGE4XHU2MGIwXHU2MGIxXHU2MGI3Il0sWyI4ZmJlYTEiLCJcdTYwYmJcdTYwYmVcdTYwYzJcdTYwYzRcdTYwYzhcdTYwYzlcdTYwY2FcdTYwY2JcdTYwY2VcdTYwY2ZcdTYwZDRcdTYwZDVcdTYwZDlcdTYwZGJcdTYwZGRcdTYwZGVcdTYwZTJcdTYwZTVcdTYwZjJc'@; put 'dTYwZjVcdTYwZjhcdTYwZmNcdTYwZmRcdTYxMDJcdTYxMDdcdTYxMGFcdTYxMGNcdTYxMTAiLDQsIlx1NjExNlx1NjExN1x1NjExOVx1NjExY1x1NjExZVx1NjEyMlx1NjEyYVx1NjEyYlx1NjEzMFx1NjEzMVx1NjEzNVx1NjEzNlx1NjEzN1x1NjEzOVx1NjE0MVx1NjE0NVx1NjE0Nlx1NjE0'@; put 'OVx1NjE1ZVx1NjE2MFx1NjE2Y1x1NjE3Mlx1NjE3OFx1NjE3Ylx1NjE3Y1x1NjE3Zlx1NjE4MFx1NjE4MVx1NjE4M1x1NjE4NFx1NjE4Ylx1NjE4ZFx1NjE5Mlx1NjE5M1x1NjE5N1x1NjE5OFx1NjE5Y1x1NjE5ZFx1NjE5Zlx1NjFhMFx1NjFhNVx1NjFhOFx1NjFhYVx1NjFhZFx1NjFiOFx1'@; put 'NjFiOVx1NjFiY1x1NjFjMFx1NjFjMVx1NjFjMlx1NjFjZVx1NjFjZlx1NjFkNVx1NjFkY1x1NjFkZFx1NjFkZVx1NjFkZlx1NjFlMVx1NjFlMlx1NjFlN1x1NjFlOVx1NjFlNSJdLFsiOGZiZmExIiwiXHU2MWVjXHU2MWVkXHU2MWVmXHU2MjAxXHU2MjAzXHU2MjA0XHU2MjA3XHU2MjEzXHU2'@; put 'MjE1XHU2MjFjXHU2MjIwXHU2MjIyXHU2MjIzXHU2MjI3XHU2MjI5XHU2MjJiXHU2MjM5XHU2MjNkXHU2MjQyXHU2MjQzXHU2MjQ0XHU2MjQ2XHU2MjRjXHU2MjUwXHU2MjUxXHU2MjUyXHU2MjU0XHU2MjU2XHU2MjVhXHU2MjVjXHU2MjY0XHU2MjZkXHU2MjZmXHU2MjczXHU2MjdhXHU2Mjdk'@; put 'XHU2MjhkXHU2MjhlXHU2MjhmXHU2MjkwXHU2MmE2XHU2MmE4XHU2MmIzXHU2MmI2XHU2MmI3XHU2MmJhXHU2MmJlXHU2MmJmXHU2MmM0XHU2MmNlXHU2MmQ1XHU2MmQ2XHU2MmRhXHU2MmVhXHU2MmYyXHU2MmY0XHU2MmZjXHU2MmZkXHU2MzAzXHU2MzA0XHU2MzBhXHU2MzBiXHU2MzBkXHU2'@; put 'MzEwXHU2MzEzXHU2MzE2XHU2MzE4XHU2MzI5XHU2MzJhXHU2MzJkXHU2MzM1XHU2MzM2XHU2MzM5XHU2MzNjXHU2MzQxXHU2MzQyXHU2MzQzXHU2MzQ0XHU2MzQ2XHU2MzRhXHU2MzRiXHU2MzRlXHU2MzUyXHU2MzUzXHU2MzU0XHU2MzU4XHU2MzViXHU2MzY1XHU2MzY2XHU2MzZjXHU2MzZk'@; put 'XHU2MzcxXHU2Mzc0XHU2Mzc1Il0sWyI4ZmMwYTEiLCJcdTYzNzhcdTYzN2NcdTYzN2RcdTYzN2ZcdTYzODJcdTYzODRcdTYzODdcdTYzOGFcdTYzOTBcdTYzOTRcdTYzOTVcdTYzOTlcdTYzOWFcdTYzOWVcdTYzYTRcdTYzYTZcdTYzYWRcdTYzYWVcdTYzYWZcdTYzYmRcdTYzYzFcdTYzYzVc'@; put 'dTYzYzhcdTYzY2VcdTYzZDFcdTYzZDNcdTYzZDRcdTYzZDVcdTYzZGNcdTYzZTBcdTYzZTVcdTYzZWFcdTYzZWNcdTYzZjJcdTYzZjNcdTYzZjVcdTYzZjhcdTYzZjlcdTY0MDlcdTY0MGFcdTY0MTBcdTY0MTJcdTY0MTRcdTY0MThcdTY0MWVcdTY0MjBcdTY0MjJcdTY0MjRcdTY0MjVcdTY0'@; put 'MjlcdTY0MmFcdTY0MmZcdTY0MzBcdTY0MzVcdTY0M2RcdTY0M2ZcdTY0NGJcdTY0NGZcdTY0NTFcdTY0NTJcdTY0NTNcdTY0NTRcdTY0NWFcdTY0NWJcdTY0NWNcdTY0NWRcdTY0NWZcdTY0NjBcdTY0NjFcdTY0NjNcdTY0NmRcdTY0NzNcdTY0NzRcdTY0N2JcdTY0N2RcdTY0ODVcdTY0ODdc'@; put 'dTY0OGZcdTY0OTBcdTY0OTFcdTY0OThcdTY0OTlcdTY0OWJcdTY0OWRcdTY0OWZcdTY0YTFcdTY0YTNcdTY0YTZcdTY0YThcdTY0YWNcdTY0YjNcdTY0YmRcdTY0YmVcdTY0YmYiXSxbIjhmYzFhMSIsIlx1NjRjNFx1NjRjOVx1NjRjYVx1NjRjYlx1NjRjY1x1NjRjZVx1NjRkMFx1NjRkMVx1'@; put 'NjRkNVx1NjRkN1x1NjRlNFx1NjRlNVx1NjRlOVx1NjRlYVx1NjRlZFx1NjRmMFx1NjRmNVx1NjRmN1x1NjRmYlx1NjRmZlx1NjUwMVx1NjUwNFx1NjUwOFx1NjUwOVx1NjUwYVx1NjUwZlx1NjUxM1x1NjUxNFx1NjUxNlx1NjUxOVx1NjUxYlx1NjUxZVx1NjUxZlx1NjUyMlx1NjUyNlx1NjUy'@; put 'OVx1NjUyZVx1NjUzMVx1NjUzYVx1NjUzY1x1NjUzZFx1NjU0M1x1NjU0N1x1NjU0OVx1NjU1MFx1NjU1Mlx1NjU1NFx1NjU1Zlx1NjU2MFx1NjU2N1x1NjU2Ylx1NjU3YVx1NjU3ZFx1NjU4MVx1NjU4NVx1NjU4YVx1NjU5Mlx1NjU5NVx1NjU5OFx1NjU5ZFx1NjVhMFx1NjVhM1x1NjVhNlx1'@; put 'NjVhZVx1NjViMlx1NjViM1x1NjViNFx1NjViZlx1NjVjMlx1NjVjOFx1NjVjOVx1NjVjZVx1NjVkMFx1NjVkNFx1NjVkNlx1NjVkOFx1NjVkZlx1NjVmMFx1NjVmMlx1NjVmNFx1NjVmNVx1NjVmOVx1NjVmZVx1NjVmZlx1NjYwMFx1NjYwNFx1NjYwOFx1NjYwOVx1NjYwZFx1NjYxMVx1NjYx'@; put 'Mlx1NjYxNVx1NjYxNlx1NjYxZCJdLFsiOGZjMmExIiwiXHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMxXHU2NjMzXHU2NjM5XHU2NjM3XHU2NjQwXHU2NjQ1XHU2NjQ2XHU2NjRhXHU2NjRjXHU2NjUx'@; put 'XHU2NjRlXHU2NjU3XHU2NjU4XHU2NjU5XHU2NjViXHU2NjVjXHU2NjYwXHU2NjYxXHU2NmZiXHU2NjZhXHU2NjZiXHU2NjZjXHU2NjdlXHU2NjczXHU2Njc1XHU2NjdmXHU2Njc3XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjgwXHU2NjdjXHU2NjhiXHU2NjhjXHU2NjhkXHU2NjkwXHU2NjkyXHU2'@; put 'Njk5XHU2NjlhXHU2NjliXHU2NjljXHU2NjlmXHU2NmEwXHU2NmE0XHU2NmFkXHU2NmIxXHU2NmIyXHU2NmI1XHU2NmJiXHU2NmJmXHU2NmMwXHU2NmMyXHU2NmMzXHU2NmM4XHU2NmNjXHU2NmNlXHU2NmNmXHU2NmQ0XHU2NmRiXHU2NmRmXHU2NmU4XHU2NmViXHU2NmVjXHU2NmVlXHU2NmZh'@; put 'XHU2NzA1XHU2NzA3XHU2NzBlXHU2NzEzXHU2NzE5XHU2NzFjXHU2NzIwXHU2NzIyXHU2NzMzXHU2NzNlXHU2NzQ1XHU2NzQ3XHU2NzQ4XHU2NzRjXHU2NzU0XHU2NzU1XHU2NzVkIl0sWyI4ZmMzYTEiLCJcdTY3NjZcdTY3NmNcdTY3NmVcdTY3NzRcdTY3NzZcdTY3N2JcdTY3ODFcdTY3ODRc'@; put 'dTY3OGVcdTY3OGZcdTY3OTFcdTY3OTNcdTY3OTZcdTY3OThcdTY3OTlcdTY3OWJcdTY3YjBcdTY3YjFcdTY3YjJcdTY3YjVcdTY3YmJcdTY3YmNcdTY3YmRcdTY3ZjlcdTY3YzBcdTY3YzJcdTY3YzNcdTY3YzVcdTY3YzhcdTY3YzlcdTY3ZDJcdTY3ZDdcdTY3ZDlcdTY3ZGNcdTY3ZTFcdTY3'@; put 'ZTZcdTY3ZjBcdTY3ZjJcdTY3ZjZcdTY3ZjdcdTY4NTJcdTY4MTRcdTY4MTlcdTY4MWRcdTY4MWZcdTY4MjhcdTY4MjdcdTY4MmNcdTY4MmRcdTY4MmZcdTY4MzBcdTY4MzFcdTY4MzNcdTY4M2JcdTY4M2ZcdTY4NDRcdTY4NDVcdTY4NGFcdTY4NGNcdTY4NTVcdTY4NTdcdTY4NThcdTY4NWJc'@; put 'dTY4NmJcdTY4NmUiLDQsIlx1Njg3NVx1Njg3OVx1Njg3YVx1Njg3Ylx1Njg3Y1x1Njg4Mlx1Njg4NFx1Njg4Nlx1Njg4OFx1Njg5Nlx1Njg5OFx1Njg5YVx1Njg5Y1x1NjhhMVx1NjhhM1x1NjhhNVx1NjhhOVx1NjhhYVx1NjhhZVx1NjhiMlx1NjhiYlx1NjhjNVx1NjhjOFx1NjhjY1x1Njhj'@; put 'ZiJdLFsiOGZjNGExIiwiXHU2OGQwXHU2OGQxXHU2OGQzXHU2OGQ2XHU2OGQ5XHU2OGRjXHU2OGRkXHU2OGU1XHU2OGU4XHU2OGVhXHU2OGViXHU2OGVjXHU2OGVkXHU2OGYwXHU2OGYxXHU2OGY1XHU2OGY2XHU2OGZiXHU2OGZjXHU2OGZkXHU2OTA2XHU2OTA5XHU2OTBhXHU2OTEwXHU2OTEx'@; put 'XHU2OTEzXHU2OTE2XHU2OTE3XHU2OTMxXHU2OTMzXHU2OTM1XHU2OTM4XHU2OTNiXHU2OTQyXHU2OTQ1XHU2OTQ5XHU2OTRlXHU2OTU3XHU2OTViXHU2OTYzXHU2OTY0XHU2OTY1XHU2OTY2XHU2OTY4XHU2OTY5XHU2OTZjXHU2OTcwXHU2OTcxXHU2OTcyXHU2OTdhXHU2OTdiXHU2OTdmXHU2'@; put 'OTgwXHU2OThkXHU2OTkyXHU2OTk2XHU2OTk4XHU2OWExXHU2OWE1XHU2OWE2XHU2OWE4XHU2OWFiXHU2OWFkXHU2OWFmXHU2OWI3XHU2OWI4XHU2OWJhXHU2OWJjXHU2OWM1XHU2OWM4XHU2OWQxXHU2OWQ2XHU2OWQ3XHU2OWUyXHU2OWU1XHU2OWVlXHU2OWVmXHU2OWYxXHU2OWYzXHU2OWY1'@; put 'XHU2OWZlXHU2YTAwXHU2YTAxXHU2YTAzXHU2YTBmXHU2YTExXHU2YTE1XHU2YTFhXHU2YTFkXHU2YTIwXHU2YTI0XHU2YTI4XHU2YTMwXHU2YTMyIl0sWyI4ZmM1YTEiLCJcdTZhMzRcdTZhMzdcdTZhM2JcdTZhM2VcdTZhM2ZcdTZhNDVcdTZhNDZcdTZhNDlcdTZhNGFcdTZhNGVcdTZhNTBc'@; put 'dTZhNTFcdTZhNTJcdTZhNTVcdTZhNTZcdTZhNWJcdTZhNjRcdTZhNjdcdTZhNmFcdTZhNzFcdTZhNzNcdTZhN2VcdTZhODFcdTZhODNcdTZhODZcdTZhODdcdTZhODlcdTZhOGJcdTZhOTFcdTZhOWJcdTZhOWRcdTZhOWVcdTZhOWZcdTZhYTVcdTZhYWJcdTZhYWZcdTZhYjBcdTZhYjFcdTZh'@; put 'YjRcdTZhYmRcdTZhYmVcdTZhYmZcdTZhYzZcdTZhYzlcdTZhYzhcdTZhY2NcdTZhZDBcdTZhZDRcdTZhZDVcdTZhZDZcdTZhZGNcdTZhZGRcdTZhZTRcdTZhZTdcdTZhZWNcdTZhZjBcdTZhZjFcdTZhZjJcdTZhZmNcdTZhZmRcdTZiMDJcdTZiMDNcdTZiMDZcdTZiMDdcdTZiMDlcdTZiMGZc'@; put 'dTZiMTBcdTZiMTFcdTZiMTdcdTZiMWJcdTZiMWVcdTZiMjRcdTZiMjhcdTZiMmJcdTZiMmNcdTZiMmZcdTZiMzVcdTZiMzZcdTZiM2JcdTZiM2ZcdTZiNDZcdTZiNGFcdTZiNGRcdTZiNTJcdTZiNTZcdTZiNThcdTZiNWRcdTZiNjBcdTZiNjdcdTZiNmJcdTZiNmVcdTZiNzBcdTZiNzVcdTZi'@; put 'N2QiXSxbIjhmYzZhMSIsIlx1NmI3ZVx1NmI4Mlx1NmI4NVx1NmI5N1x1NmI5Ylx1NmI5Zlx1NmJhMFx1NmJhMlx1NmJhM1x1NmJhOFx1NmJhOVx1NmJhY1x1NmJhZFx1NmJhZVx1NmJiMFx1NmJiOFx1NmJiOVx1NmJiZFx1NmJiZVx1NmJjM1x1NmJjNFx1NmJjOVx1NmJjY1x1NmJkNlx1NmJk'@; put 'YVx1NmJlMVx1NmJlM1x1NmJlNlx1NmJlN1x1NmJlZVx1NmJmMVx1NmJmN1x1NmJmOVx1NmJmZlx1NmMwMlx1NmMwNFx1NmMwNVx1NmMwOVx1NmMwZFx1NmMwZVx1NmMxMFx1NmMxMlx1NmMxOVx1NmMxZlx1NmMyNlx1NmMyN1x1NmMyOFx1NmMyY1x1NmMyZVx1NmMzM1x1NmMzNVx1NmMzNlx1'@; put 'NmMzYVx1NmMzYlx1NmMzZlx1NmM0YVx1NmM0Ylx1NmM0ZFx1NmM0Zlx1NmM1Mlx1NmM1NFx1NmM1OVx1NmM1Ylx1NmM1Y1x1NmM2Ylx1NmM2ZFx1NmM2Zlx1NmM3NFx1NmM3Nlx1NmM3OFx1NmM3OVx1NmM3Ylx1NmM4NVx1NmM4Nlx1NmM4N1x1NmM4OVx1NmM5NFx1NmM5NVx1NmM5N1x1NmM5'@; put 'OFx1NmM5Y1x1NmM5Zlx1NmNiMFx1NmNiMlx1NmNiNFx1NmNjMlx1NmNjNlx1NmNjZFx1NmNjZlx1NmNkMFx1NmNkMVx1NmNkMlx1NmNkNFx1NmNkNiJdLFsiOGZjN2ExIiwiXHU2Y2RhXHU2Y2RjXHU2Y2UwXHU2Y2U3XHU2Y2U5XHU2Y2ViXHU2Y2VjXHU2Y2VlXHU2Y2YyXHU2Y2Y0XHU2ZDA0'@; put 'XHU2ZDA3XHU2ZDBhXHU2ZDBlXHU2ZDBmXHU2ZDExXHU2ZDEzXHU2ZDFhXHU2ZDI2XHU2ZDI3XHU2ZDI4XHU2YzY3XHU2ZDJlXHU2ZDJmXHU2ZDMxXHU2ZDM5XHU2ZDNjXHU2ZDNmXHU2ZDU3XHU2ZDVlXHU2ZDVmXHU2ZDYxXHU2ZDY1XHU2ZDY3XHU2ZDZmXHU2ZDcwXHU2ZDdjXHU2ZDgyXHU2'@; put 'ZDg3XHU2ZDkxXHU2ZDkyXHU2ZDk0XHU2ZDk2XHU2ZDk3XHU2ZDk4XHU2ZGFhXHU2ZGFjXHU2ZGI0XHU2ZGI3XHU2ZGI5XHU2ZGJkXHU2ZGJmXHU2ZGM0XHU2ZGM4XHU2ZGNhXHU2ZGNlXHU2ZGNmXHU2ZGQ2XHU2ZGRiXHU2ZGRkXHU2ZGRmXHU2ZGUwXHU2ZGUyXHU2ZGU1XHU2ZGU5XHU2ZGVm'@; put 'XHU2ZGYwXHU2ZGY0XHU2ZGY2XHU2ZGZjXHU2ZTAwXHU2ZTA0XHU2ZTFlXHU2ZTIyXHU2ZTI3XHU2ZTMyXHU2ZTM2XHU2ZTM5XHU2ZTNiXHU2ZTNjXHU2ZTQ0XHU2ZTQ1XHU2ZTQ4XHU2ZTQ5XHU2ZTRiXHU2ZTRmXHU2ZTUxXHU2ZTUyXHU2ZTUzXHU2ZTU0XHU2ZTU3XHU2ZTVjXHU2ZTVkXHU2'@; put 'ZTVlIl0sWyI4ZmM4YTEiLCJcdTZlNjJcdTZlNjNcdTZlNjhcdTZlNzNcdTZlN2JcdTZlN2RcdTZlOGRcdTZlOTNcdTZlOTlcdTZlYTBcdTZlYTdcdTZlYWRcdTZlYWVcdTZlYjFcdTZlYjNcdTZlYmJcdTZlYmZcdTZlYzBcdTZlYzFcdTZlYzNcdTZlYzdcdTZlYzhcdTZlY2FcdTZlY2RcdTZl'@; put 'Y2VcdTZlY2ZcdTZlZWJcdTZlZWRcdTZlZWVcdTZlZjlcdTZlZmJcdTZlZmRcdTZmMDRcdTZmMDhcdTZmMGFcdTZmMGNcdTZmMGRcdTZmMTZcdTZmMThcdTZmMWFcdTZmMWJcdTZmMjZcdTZmMjlcdTZmMmFcdTZmMmZcdTZmMzBcdTZmMzNcdTZmMzZcdTZmM2JcdTZmM2NcdTZmMmRcdTZmNGZc'@; put 'dTZmNTFcdTZmNTJcdTZmNTNcdTZmNTdcdTZmNTlcdTZmNWFcdTZmNWRcdTZmNWVcdTZmNjFcdTZmNjJcdTZmNjhcdTZmNmNcdTZmN2RcdTZmN2VcdTZmODNcdTZmODdcdTZmODhcdTZmOGJcdTZmOGNcdTZmOGRcdTZmOTBcdTZmOTJcdTZmOTNcdTZmOTRcdTZmOTZcdTZmOWFcdTZmOWZcdTZm'@; put 'YTBcdTZmYTVcdTZmYTZcdTZmYTdcdTZmYThcdTZmYWVcdTZmYWZcdTZmYjBcdTZmYjVcdTZmYjZcdTZmYmNcdTZmYzVcdTZmYzdcdTZmYzhcdTZmY2EiXSxbIjhmYzlhMSIsIlx1NmZkYVx1NmZkZVx1NmZlOFx1NmZlOVx1NmZmMFx1NmZmNVx1NmZmOVx1NmZmY1x1NmZmZFx1NzAwMFx1NzAw'@; put 'NVx1NzAwNlx1NzAwN1x1NzAwZFx1NzAxN1x1NzAyMFx1NzAyM1x1NzAyZlx1NzAzNFx1NzAzN1x1NzAzOVx1NzAzY1x1NzA0M1x1NzA0NFx1NzA0OFx1NzA0OVx1NzA0YVx1NzA0Ylx1NzA1NFx1NzA1NVx1NzA1ZFx1NzA1ZVx1NzA0ZVx1NzA2NFx1NzA2NVx1NzA2Y1x1NzA2ZVx1NzA3NVx1'@; put 'NzA3Nlx1NzA3ZVx1NzA4MVx1NzA4NVx1NzA4Nlx1NzA5NCIsNCwiXHU3MDliXHU3MGE0XHU3MGFiXHU3MGIwXHU3MGIxXHU3MGI0XHU3MGI3XHU3MGNhXHU3MGQxXHU3MGQzXHU3MGQ0XHU3MGQ1XHU3MGQ2XHU3MGQ4XHU3MGRjXHU3MGU0XHU3MGZhXHU3MTAzIiw0LCJcdTcxMGJcdTcxMGNc'@; put 'dTcxMGZcdTcxMWVcdTcxMjBcdTcxMmJcdTcxMmRcdTcxMmZcdTcxMzBcdTcxMzFcdTcxMzhcdTcxNDFcdTcxNDVcdTcxNDZcdTcxNDdcdTcxNGFcdTcxNGJcdTcxNTBcdTcxNTJcdTcxNTdcdTcxNWFcdTcxNWNcdTcxNWVcdTcxNjAiXSxbIjhmY2FhMSIsIlx1NzE2OFx1NzE3OVx1NzE4MFx1'@; put 'NzE4NVx1NzE4N1x1NzE4Y1x1NzE5Mlx1NzE5YVx1NzE5Ylx1NzFhMFx1NzFhMlx1NzFhZlx1NzFiMFx1NzFiMlx1NzFiM1x1NzFiYVx1NzFiZlx1NzFjMFx1NzFjMVx1NzFjNFx1NzFjYlx1NzFjY1x1NzFkM1x1NzFkNlx1NzFkOVx1NzFkYVx1NzFkY1x1NzFmOFx1NzFmZVx1NzIwMFx1NzIw'@; put 'N1x1NzIwOFx1NzIwOVx1NzIxM1x1NzIxN1x1NzIxYVx1NzIxZFx1NzIxZlx1NzIyNFx1NzIyYlx1NzIyZlx1NzIzNFx1NzIzOFx1NzIzOVx1NzI0MVx1NzI0Mlx1NzI0M1x1NzI0NVx1NzI0ZVx1NzI0Zlx1NzI1MFx1NzI1M1x1NzI1NVx1NzI1Nlx1NzI1YVx1NzI1Y1x1NzI1ZVx1NzI2MFx1'@; put 'NzI2M1x1NzI2OFx1NzI2Ylx1NzI2ZVx1NzI2Zlx1NzI3MVx1NzI3N1x1NzI3OFx1NzI3Ylx1NzI3Y1x1NzI3Zlx1NzI4NFx1NzI4OVx1NzI4ZFx1NzI4ZVx1NzI5M1x1NzI5Ylx1NzJhOFx1NzJhZFx1NzJhZVx1NzJiMVx1NzJiNFx1NzJiZVx1NzJjMVx1NzJjN1x1NzJjOVx1NzJjY1x1NzJk'@; put 'NVx1NzJkNlx1NzJkOFx1NzJkZlx1NzJlNVx1NzJmM1x1NzJmNFx1NzJmYVx1NzJmYiJdLFsiOGZjYmExIiwiXHU3MmZlXHU3MzAyXHU3MzA0XHU3MzA1XHU3MzA3XHU3MzBiXHU3MzBkXHU3MzEyXHU3MzEzXHU3MzE4XHU3MzE5XHU3MzFlXHU3MzIyXHU3MzI0XHU3MzI3XHU3MzI4XHU3MzJj'@; put 'XHU3MzMxXHU3MzMyXHU3MzM1XHU3MzNhXHU3MzNiXHU3MzNkXHU3MzQzXHU3MzRkXHU3MzUwXHU3MzUyXHU3MzU2XHU3MzU4XHU3MzVkXHU3MzVlXHU3MzVmXHU3MzYwXHU3MzY2XHU3MzY3XHU3MzY5XHU3MzZiXHU3MzZjXHU3MzZlXHU3MzZmXHU3MzcxXHU3Mzc3XHU3Mzc5XHU3MzdjXHU3'@; put 'MzgwXHU3MzgxXHU3MzgzXHU3Mzg1XHU3Mzg2XHU3MzhlXHU3MzkwXHU3MzkzXHU3Mzk1XHU3Mzk3XHU3Mzk4XHU3MzljXHU3MzllXHU3MzlmXHU3M2EwXHU3M2EyXHU3M2E1XHU3M2E2XHU3M2FhXHU3M2FiXHU3M2FkXHU3M2I1XHU3M2I3XHU3M2I5XHU3M2JjXHU3M2JkXHU3M2JmXHU3M2M1'@; put 'XHU3M2M2XHU3M2M5XHU3M2NiXHU3M2NjXHU3M2NmXHU3M2QyXHU3M2QzXHU3M2Q2XHU3M2Q5XHU3M2RkXHU3M2UxXHU3M2UzXHU3M2U2XHU3M2U3XHU3M2U5XHU3M2Y0XHU3M2Y1XHU3M2Y3XHU3M2Y5XHU3M2ZhXHU3M2ZiXHU3M2ZkIl0sWyI4ZmNjYTEiLCJcdTczZmZcdTc0MDBcdTc0MDFc'@; put 'dTc0MDRcdTc0MDdcdTc0MGFcdTc0MTFcdTc0MWFcdTc0MWJcdTc0MjRcdTc0MjZcdTc0MjgiLDksIlx1NzQzOVx1NzQ0MFx1NzQ0M1x1NzQ0NFx1NzQ0Nlx1NzQ0N1x1NzQ0Ylx1NzQ0ZFx1NzQ1MVx1NzQ1Mlx1NzQ1N1x1NzQ1ZFx1NzQ2Mlx1NzQ2Nlx1NzQ2N1x1NzQ2OFx1NzQ2Ylx1NzQ2'@; put 'ZFx1NzQ2ZVx1NzQ3MVx1NzQ3Mlx1NzQ4MFx1NzQ4MVx1NzQ4NVx1NzQ4Nlx1NzQ4N1x1NzQ4OVx1NzQ4Zlx1NzQ5MFx1NzQ5MVx1NzQ5Mlx1NzQ5OFx1NzQ5OVx1NzQ5YVx1NzQ5Y1x1NzQ5Zlx1NzRhMFx1NzRhMVx1NzRhM1x1NzRhNlx1NzRhOFx1NzRhOVx1NzRhYVx1NzRhYlx1NzRhZVx1'@; put 'NzRhZlx1NzRiMVx1NzRiMlx1NzRiNVx1NzRiOVx1NzRiYlx1NzRiZlx1NzRjOFx1NzRjOVx1NzRjY1x1NzRkMFx1NzRkM1x1NzRkOFx1NzRkYVx1NzRkYlx1NzRkZVx1NzRkZlx1NzRlNFx1NzRlOFx1NzRlYVx1NzRlYlx1NzRlZlx1NzRmNFx1NzRmYVx1NzRmYlx1NzRmY1x1NzRmZlx1NzUw'@; put 'NiJdLFsiOGZjZGExIiwiXHU3NTEyXHU3NTE2XHU3NTE3XHU3NTIwXHU3NTIxXHU3NTI0XHU3NTI3XHU3NTI5XHU3NTJhXHU3NTJmXHU3NTM2XHU3NTM5XHU3NTNkXHU3NTNlXHU3NTNmXHU3NTQwXHU3NTQzXHU3NTQ3XHU3NTQ4XHU3NTRlXHU3NTUwXHU3NTUyXHU3NTU3XHU3NTVlXHU3NTVm'@; put 'XHU3NTYxXHU3NTZmXHU3NTcxXHU3NTc5Iiw1LCJcdTc1ODFcdTc1ODVcdTc1OTBcdTc1OTJcdTc1OTNcdTc1OTVcdTc1OTlcdTc1OWNcdTc1YTJcdTc1YTRcdTc1YjRcdTc1YmFcdTc1YmZcdTc1YzBcdTc1YzFcdTc1YzRcdTc1YzZcdTc1Y2NcdTc1Y2VcdTc1Y2ZcdTc1ZDdcdTc1ZGNcdTc1'@; put 'ZGZcdTc1ZTBcdTc1ZTFcdTc1ZTRcdTc1ZTdcdTc1ZWNcdTc1ZWVcdTc1ZWZcdTc1ZjFcdTc1ZjlcdTc2MDBcdTc2MDJcdTc2MDNcdTc2MDRcdTc2MDdcdTc2MDhcdTc2MGFcdTc2MGNcdTc2MGZcdTc2MTJcdTc2MTNcdTc2MTVcdTc2MTZcdTc2MTlcdTc2MWJcdTc2MWNcdTc2MWRcdTc2MWVc'@; put 'dTc2MjNcdTc2MjVcdTc2MjZcdTc2MjlcdTc2MmRcdTc2MzJcdTc2MzNcdTc2MzVcdTc2MzhcdTc2MzkiXSxbIjhmY2VhMSIsIlx1NzYzYVx1NzYzY1x1NzY0YVx1NzY0MFx1NzY0MVx1NzY0M1x1NzY0NFx1NzY0NVx1NzY0OVx1NzY0Ylx1NzY1NVx1NzY1OVx1NzY1Zlx1NzY2NFx1NzY2NVx1'@; put 'NzY2ZFx1NzY2ZVx1NzY2Zlx1NzY3MVx1NzY3NFx1NzY4MVx1NzY4NVx1NzY4Y1x1NzY4ZFx1NzY5NVx1NzY5Ylx1NzY5Y1x1NzY5ZFx1NzY5Zlx1NzZhMFx1NzZhMiIsNiwiXHU3NmFhXHU3NmFkXHU3NmJkXHU3NmMxXHU3NmM1XHU3NmM5XHU3NmNiXHU3NmNjXHU3NmNlXHU3NmQ0XHU3NmQ5'@; put 'XHU3NmUwXHU3NmU2XHU3NmU4XHU3NmVjXHU3NmYwXHU3NmYxXHU3NmY2XHU3NmY5XHU3NmZjXHU3NzAwXHU3NzA2XHU3NzBhXHU3NzBlXHU3NzEyXHU3NzE0XHU3NzE1XHU3NzE3XHU3NzE5XHU3NzFhXHU3NzFjXHU3NzIyXHU3NzI4XHU3NzJkXHU3NzJlXHU3NzJmXHU3NzM0XHU3NzM1XHU3'@; put 'NzM2XHU3NzM5XHU3NzNkXHU3NzNlXHU3NzQyXHU3NzQ1XHU3NzQ2XHU3NzRhXHU3NzRkXHU3NzRlXHU3NzRmXHU3NzUyXHU3NzU2XHU3NzU3XHU3NzVjXHU3NzVlXHU3NzVmXHU3NzYwXHU3NzYyIl0sWyI4ZmNmYTEiLCJcdTc3NjRcdTc3NjdcdTc3NmFcdTc3NmNcdTc3NzBcdTc3NzJcdTc3'@; put 'NzNcdTc3NzRcdTc3N2FcdTc3N2RcdTc3ODBcdTc3ODRcdTc3OGNcdTc3OGRcdTc3OTRcdTc3OTVcdTc3OTZcdTc3OWFcdTc3OWZcdTc3YTJcdTc3YTdcdTc3YWFcdTc3YWVcdTc3YWZcdTc3YjFcdTc3YjVcdTc3YmVcdTc3YzNcdTc3YzlcdTc3ZDFcdTc3ZDJcdTc3ZDVcdTc3ZDlcdTc3ZGVc'@; put 'dTc3ZGZcdTc3ZTBcdTc3ZTRcdTc3ZTZcdTc3ZWFcdTc3ZWNcdTc3ZjBcdTc3ZjFcdTc3ZjRcdTc3ZjhcdTc3ZmJcdTc4MDVcdTc4MDZcdTc4MDlcdTc4MGRcdTc4MGVcdTc4MTFcdTc4MWRcdTc4MjFcdTc4MjJcdTc4MjNcdTc4MmRcdTc4MmVcdTc4MzBcdTc4MzVcdTc4MzdcdTc4NDNcdTc4'@; put 'NDRcdTc4NDdcdTc4NDhcdTc4NGNcdTc4NGVcdTc4NTJcdTc4NWNcdTc4NWVcdTc4NjBcdTc4NjFcdTc4NjNcdTc4NjRcdTc4NjhcdTc4NmFcdTc4NmVcdTc4N2FcdTc4N2VcdTc4OGFcdTc4OGZcdTc4OTRcdTc4OThcdTc4YTFcdTc4OWRcdTc4OWVcdTc4OWZcdTc4YTRcdTc4YThcdTc4YWNc'@; put 'dTc4YWRcdTc4YjBcdTc4YjFcdTc4YjJcdTc4YjMiXSxbIjhmZDBhMSIsIlx1NzhiYlx1NzhiZFx1NzhiZlx1NzhjN1x1NzhjOFx1NzhjOVx1NzhjY1x1NzhjZVx1NzhkMlx1NzhkM1x1NzhkNVx1NzhkNlx1NzhlNFx1NzhkYlx1NzhkZlx1NzhlMFx1NzhlMVx1NzhlNlx1NzhlYVx1NzhmMlx1'@; put 'NzhmM1x1NzkwMFx1NzhmNlx1NzhmN1x1NzhmYVx1NzhmYlx1NzhmZlx1NzkwNlx1NzkwY1x1NzkxMFx1NzkxYVx1NzkxY1x1NzkxZVx1NzkxZlx1NzkyMFx1NzkyNVx1NzkyN1x1NzkyOVx1NzkyZFx1NzkzMVx1NzkzNFx1NzkzNVx1NzkzYlx1NzkzZFx1NzkzZlx1Nzk0NFx1Nzk0NVx1Nzk0'@; put 'Nlx1Nzk0YVx1Nzk0Ylx1Nzk0Zlx1Nzk1MVx1Nzk1NFx1Nzk1OFx1Nzk1Ylx1Nzk1Y1x1Nzk2N1x1Nzk2OVx1Nzk2Ylx1Nzk3Mlx1Nzk3OVx1Nzk3Ylx1Nzk3Y1x1Nzk3ZVx1Nzk4Ylx1Nzk4Y1x1Nzk5MVx1Nzk5M1x1Nzk5NFx1Nzk5NVx1Nzk5Nlx1Nzk5OFx1Nzk5Ylx1Nzk5Y1x1NzlhMVx1'@; put 'NzlhOFx1NzlhOVx1NzlhYlx1NzlhZlx1NzliMVx1NzliNFx1NzliOFx1NzliYlx1NzljMlx1NzljNFx1NzljN1x1NzljOFx1NzljYVx1NzljZlx1NzlkNFx1NzlkNlx1NzlkYVx1NzlkZFx1NzlkZSJdLFsiOGZkMWExIiwiXHU3OWUwXHU3OWUyXHU3OWU1XHU3OWVhXHU3OWViXHU3OWVkXHU3'@; put 'OWYxXHU3OWY4XHU3OWZjXHU3YTAyXHU3YTAzXHU3YTA3XHU3YTA5XHU3YTBhXHU3YTBjXHU3YTExXHU3YTE1XHU3YTFiXHU3YTFlXHU3YTIxXHU3YTI3XHU3YTJiXHU3YTJkXHU3YTJmXHU3YTMwXHU3YTM0XHU3YTM1XHU3YTM4XHU3YTM5XHU3YTNhXHU3YTQ0XHU3YTQ1XHU3YTQ3XHU3YTQ4'@; put 'XHU3YTRjXHU3YTU1XHU3YTU2XHU3YTU5XHU3YTVjXHU3YTVkXHU3YTVmXHU3YTYwXHU3YTY1XHU3YTY3XHU3YTZhXHU3YTZkXHU3YTc1XHU3YTc4XHU3YTdlXHU3YTgwXHU3YTgyXHU3YTg1XHU3YTg2XHU3YThhXHU3YThiXHU3YTkwXHU3YTkxXHU3YTk0XHU3YTllXHU3YWEwXHU3YWEzXHU3'@; put 'YWFjXHU3YWIzXHU3YWI1XHU3YWI5XHU3YWJiXHU3YWJjXHU3YWM2XHU3YWM5XHU3YWNjXHU3YWNlXHU3YWQxXHU3YWRiXHU3YWU4XHU3YWU5XHU3YWViXHU3YWVjXHU3YWYxXHU3YWY0XHU3YWZiXHU3YWZkXHU3YWZlXHU3YjA3XHU3YjE0XHU3YjFmXHU3YjIzXHU3YjI3XHU3YjI5XHU3YjJh'@; put 'XHU3YjJiXHU3YjJkXHU3YjJlXHU3YjJmXHU3YjMwIl0sWyI4ZmQyYTEiLCJcdTdiMzFcdTdiMzRcdTdiM2RcdTdiM2ZcdTdiNDBcdTdiNDFcdTdiNDdcdTdiNGVcdTdiNTVcdTdiNjBcdTdiNjRcdTdiNjZcdTdiNjlcdTdiNmFcdTdiNmRcdTdiNmZcdTdiNzJcdTdiNzNcdTdiNzdcdTdiODRc'@; put 'dTdiODlcdTdiOGVcdTdiOTBcdTdiOTFcdTdiOTZcdTdiOWJcdTdiOWVcdTdiYTBcdTdiYTVcdTdiYWNcdTdiYWZcdTdiYjBcdTdiYjJcdTdiYjVcdTdiYjZcdTdiYmFcdTdiYmJcdTdiYmNcdTdiYmRcdTdiYzJcdTdiYzVcdTdiYzhcdTdiY2FcdTdiZDRcdTdiZDZcdTdiZDdcdTdiZDlcdTdi'@; put 'ZGFcdTdiZGJcdTdiZThcdTdiZWFcdTdiZjJcdTdiZjRcdTdiZjVcdTdiZjhcdTdiZjlcdTdiZmFcdTdiZmNcdTdiZmVcdTdjMDFcdTdjMDJcdTdjMDNcdTdjMDRcdTdjMDZcdTdjMDlcdTdjMGJcdTdjMGNcdTdjMGVcdTdjMGZcdTdjMTlcdTdjMWJcdTdjMjBcdTdjMjVcdTdjMjZcdTdjMjhc'@; put 'dTdjMmNcdTdjMzFcdTdjMzNcdTdjMzRcdTdjMzZcdTdjMzlcdTdjM2FcdTdjNDZcdTdjNGFcdTdjNTVcdTdjNTFcdTdjNTJcdTdjNTNcdTdjNTkiLDVdLFsiOGZkM2ExIiwiXHU3YzYxXHU3YzYzXHU3YzY3XHU3YzY5XHU3YzZkXHU3YzZlXHU3YzcwXHU3YzcyXHU3Yzc5XHU3YzdjXHU3Yzdk'@; put 'XHU3Yzg2XHU3Yzg3XHU3YzhmXHU3Yzk0XHU3YzllXHU3Y2EwXHU3Y2E2XHU3Y2IwXHU3Y2I2XHU3Y2I3XHU3Y2JhXHU3Y2JiXHU3Y2JjXHU3Y2JmXHU3Y2M0XHU3Y2M3XHU3Y2M4XHU3Y2M5XHU3Y2NkXHU3Y2NmXHU3Y2QzXHU3Y2Q0XHU3Y2Q1XHU3Y2Q3XHU3Y2Q5XHU3Y2RhXHU3Y2RkXHU3'@; put 'Y2U2XHU3Y2U5XHU3Y2ViXHU3Y2Y1XHU3ZDAzXHU3ZDA3XHU3ZDA4XHU3ZDA5XHU3ZDBmXHU3ZDExXHU3ZDEyXHU3ZDEzXHU3ZDE2XHU3ZDFkXHU3ZDFlXHU3ZDIzXHU3ZDI2XHU3ZDJhXHU3ZDJkXHU3ZDMxXHU3ZDNjXHU3ZDNkXHU3ZDNlXHU3ZDQwXHU3ZDQxXHU3ZDQ3XHU3ZDQ4XHU3ZDRk'@; put 'XHU3ZDUxXHU3ZDUzXHU3ZDU3XHU3ZDU5XHU3ZDVhXHU3ZDVjXHU3ZDVkXHU3ZDY1XHU3ZDY3XHU3ZDZhXHU3ZDcwXHU3ZDc4XHU3ZDdhXHU3ZDdiXHU3ZDdmXHU3ZDgxXHU3ZDgyXHU3ZDgzXHU3ZDg1XHU3ZDg2XHU3ZDg4XHU3ZDhiXHU3ZDhjXHU3ZDhkXHU3ZDkxXHU3ZDk2XHU3ZDk3XHU3'@; put 'ZDlkIl0sWyI4ZmQ0YTEiLCJcdTdkOWVcdTdkYTZcdTdkYTdcdTdkYWFcdTdkYjNcdTdkYjZcdTdkYjdcdTdkYjlcdTdkYzIiLDQsIlx1N2RjY1x1N2RjZFx1N2RjZVx1N2RkN1x1N2RkOVx1N2UwMFx1N2RlMlx1N2RlNVx1N2RlNlx1N2RlYVx1N2RlYlx1N2RlZFx1N2RmMVx1N2RmNVx1N2Rm'@; put 'Nlx1N2RmOVx1N2RmYVx1N2UwOFx1N2UxMFx1N2UxMVx1N2UxNVx1N2UxN1x1N2UxY1x1N2UxZFx1N2UyMFx1N2UyN1x1N2UyOFx1N2UyY1x1N2UyZFx1N2UyZlx1N2UzM1x1N2UzNlx1N2UzZlx1N2U0NFx1N2U0NVx1N2U0N1x1N2U0ZVx1N2U1MFx1N2U1Mlx1N2U1OFx1N2U1Zlx1N2U2MVx1'@; put 'N2U2Mlx1N2U2NVx1N2U2Ylx1N2U2ZVx1N2U2Zlx1N2U3M1x1N2U3OFx1N2U3ZVx1N2U4MVx1N2U4Nlx1N2U4N1x1N2U4YVx1N2U4ZFx1N2U5MVx1N2U5NVx1N2U5OFx1N2U5YVx1N2U5ZFx1N2U5ZVx1N2YzY1x1N2YzYlx1N2YzZFx1N2YzZVx1N2YzZlx1N2Y0M1x1N2Y0NFx1N2Y0N1x1N2Y0'@; put 'Zlx1N2Y1Mlx1N2Y1M1x1N2Y1Ylx1N2Y1Y1x1N2Y1ZFx1N2Y2MVx1N2Y2M1x1N2Y2NFx1N2Y2NVx1N2Y2Nlx1N2Y2ZCJdLFsiOGZkNWExIiwiXHU3ZjcxXHU3ZjdkXHU3ZjdlXHU3ZjdmXHU3ZjgwXHU3ZjhiXHU3ZjhkXHU3ZjhmXHU3ZjkwXHU3ZjkxXHU3Zjk2XHU3Zjk3XHU3ZjljXHU3ZmEx'@; put 'XHU3ZmEyXHU3ZmE2XHU3ZmFhXHU3ZmFkXHU3ZmI0XHU3ZmJjXHU3ZmJmXHU3ZmMwXHU3ZmMzXHU3ZmM4XHU3ZmNlXHU3ZmNmXHU3ZmRiXHU3ZmRmXHU3ZmUzXHU3ZmU1XHU3ZmU4XHU3ZmVjXHU3ZmVlXHU3ZmVmXHU3ZmYyXHU3ZmZhXHU3ZmZkXHU3ZmZlXHU3ZmZmXHU4MDA3XHU4MDA4XHU4'@; put 'MDBhXHU4MDBkXHU4MDBlXHU4MDBmXHU4MDExXHU4MDEzXHU4MDE0XHU4MDE2XHU4MDFkXHU4MDFlXHU4MDFmXHU4MDIwXHU4MDI0XHU4MDI2XHU4MDJjXHU4MDJlXHU4MDMwXHU4MDM0XHU4MDM1XHU4MDM3XHU4MDM5XHU4MDNhXHU4MDNjXHU4MDNlXHU4MDQwXHU4MDQ0XHU4MDYwXHU4MDY0'@; put 'XHU4MDY2XHU4MDZkXHU4MDcxXHU4MDc1XHU4MDgxXHU4MDg4XHU4MDhlXHU4MDljXHU4MDllXHU4MGE2XHU4MGE3XHU4MGFiXHU4MGI4XHU4MGI5XHU4MGM4XHU4MGNkXHU4MGNmXHU4MGQyXHU4MGQ0XHU4MGQ1XHU4MGQ3XHU4MGQ4XHU4MGUwXHU4MGVkXHU4MGVlIl0sWyI4ZmQ2YTEiLCJc'@; put 'dTgwZjBcdTgwZjJcdTgwZjNcdTgwZjZcdTgwZjlcdTgwZmFcdTgwZmVcdTgxMDNcdTgxMGJcdTgxMTZcdTgxMTdcdTgxMThcdTgxMWNcdTgxMWVcdTgxMjBcdTgxMjRcdTgxMjdcdTgxMmNcdTgxMzBcdTgxMzVcdTgxM2FcdTgxM2NcdTgxNDVcdTgxNDdcdTgxNGFcdTgxNGNcdTgxNTJcdTgx'@; put 'NTdcdTgxNjBcdTgxNjFcdTgxNjdcdTgxNjhcdTgxNjlcdTgxNmRcdTgxNmZcdTgxNzdcdTgxODFcdTgxOTBcdTgxODRcdTgxODVcdTgxODZcdTgxOGJcdTgxOGVcdTgxOTZcdTgxOThcdTgxOWJcdTgxOWVcdTgxYTJcdTgxYWVcdTgxYjJcdTgxYjRcdTgxYmJcdTgxY2JcdTgxYzNcdTgxYzVc'@; put 'dTgxY2FcdTgxY2VcdTgxY2ZcdTgxZDVcdTgxZDdcdTgxZGJcdTgxZGRcdTgxZGVcdTgxZTFcdTgxZTRcdTgxZWJcdTgxZWNcdTgxZjBcdTgxZjFcdTgxZjJcdTgxZjVcdTgxZjZcdTgxZjhcdTgxZjlcdTgxZmRcdTgxZmZcdTgyMDBcdTgyMDNcdTgyMGZcdTgyMTNcdTgyMTRcdTgyMTlcdTgy'@; put 'MWFcdTgyMWRcdTgyMjFcdTgyMjJcdTgyMjhcdTgyMzJcdTgyMzRcdTgyM2FcdTgyNDNcdTgyNDRcdTgyNDVcdTgyNDYiXSxbIjhmZDdhMSIsIlx1ODI0Ylx1ODI0ZVx1ODI0Zlx1ODI1MVx1ODI1Nlx1ODI1Y1x1ODI2MFx1ODI2M1x1ODI2N1x1ODI2ZFx1ODI3NFx1ODI3Ylx1ODI3ZFx1ODI3'@; put 'Zlx1ODI4MFx1ODI4MVx1ODI4M1x1ODI4NFx1ODI4N1x1ODI4OVx1ODI4YVx1ODI4ZVx1ODI5MVx1ODI5NFx1ODI5Nlx1ODI5OFx1ODI5YVx1ODI5Ylx1ODJhMFx1ODJhMVx1ODJhM1x1ODJhNFx1ODJhN1x1ODJhOFx1ODJhOVx1ODJhYVx1ODJhZVx1ODJiMFx1ODJiMlx1ODJiNFx1ODJiN1x1'@; put 'ODJiYVx1ODJiY1x1ODJiZVx1ODJiZlx1ODJjNlx1ODJkMFx1ODJkNVx1ODJkYVx1ODJlMFx1ODJlMlx1ODJlNFx1ODJlOFx1ODJlYVx1ODJlZFx1ODJlZlx1ODJmNlx1ODJmN1x1ODJmZFx1ODJmZVx1ODMwMFx1ODMwMVx1ODMwN1x1ODMwOFx1ODMwYVx1ODMwYlx1ODM1NFx1ODMxYlx1ODMx'@; put 'ZFx1ODMxZVx1ODMxZlx1ODMyMVx1ODMyMlx1ODMyY1x1ODMyZFx1ODMyZVx1ODMzMFx1ODMzM1x1ODMzN1x1ODMzYVx1ODMzY1x1ODMzZFx1ODM0Mlx1ODM0M1x1ODM0NFx1ODM0N1x1ODM0ZFx1ODM0ZVx1ODM1MVx1ODM1NVx1ODM1Nlx1ODM1N1x1ODM3MFx1ODM3OCJdLFsiOGZkOGExIiwi'@; put 'XHU4MzdkXHU4MzdmXHU4MzgwXHU4MzgyXHU4Mzg0XHU4Mzg2XHU4MzhkXHU4MzkyXHU4Mzk0XHU4Mzk1XHU4Mzk4XHU4Mzk5XHU4MzliXHU4MzljXHU4MzlkXHU4M2E2XHU4M2E3XHU4M2E5XHU4M2FjXHU4M2JlXHU4M2JmXHU4M2MwXHU4M2M3XHU4M2M5XHU4M2NmXHU4M2QwXHU4M2QxXHU4'@; put 'M2Q0XHU4M2RkXHU4MzUzXHU4M2U4XHU4M2VhXHU4M2Y2XHU4M2Y4XHU4M2Y5XHU4M2ZjXHU4NDAxXHU4NDA2XHU4NDBhXHU4NDBmXHU4NDExXHU4NDE1XHU4NDE5XHU4M2FkXHU4NDJmXHU4NDM5XHU4NDQ1XHU4NDQ3XHU4NDQ4XHU4NDRhXHU4NDRkXHU4NDRmXHU4NDUxXHU4NDUyXHU4NDU2'@; put 'XHU4NDU4XHU4NDU5XHU4NDVhXHU4NDVjXHU4NDYwXHU4NDY0XHU4NDY1XHU4NDY3XHU4NDZhXHU4NDcwXHU4NDczXHU4NDc0XHU4NDc2XHU4NDc4XHU4NDdjXHU4NDdkXHU4NDgxXHU4NDg1XHU4NDkyXHU4NDkzXHU4NDk1XHU4NDllXHU4NGE2XHU4NGE4XHU4NGE5XHU4NGFhXHU4NGFmXHU4'@; put 'NGIxXHU4NGI0XHU4NGJhXHU4NGJkXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGM3XHU4NGM4XHU4NGNjXHU4NGNmXHU4NGQzIl0sWyI4ZmQ5YTEiLCJcdTg0ZGNcdTg0ZTdcdTg0ZWFcdTg0ZWZcdTg0ZjBcdTg0ZjFcdTg0ZjJcdTg0ZjdcdTg1MzJcdTg0ZmFcdTg0ZmJcdTg0ZmRcdTg1MDJcdTg1'@; put 'MDNcdTg1MDdcdTg1MGNcdTg1MGVcdTg1MTBcdTg1MWNcdTg1MWVcdTg1MjJcdTg1MjNcdTg1MjRcdTg1MjVcdTg1MjdcdTg1MmFcdTg1MmJcdTg1MmZcdTg1MzNcdTg1MzRcdTg1MzZcdTg1M2ZcdTg1NDZcdTg1NGYiLDQsIlx1ODU1Nlx1ODU1OVx1ODU1YyIsNiwiXHU4NTY0XHU4NTZiXHU4'@; put 'NTZmXHU4NTc5XHU4NTdhXHU4NTdiXHU4NTdkXHU4NTdmXHU4NTgxXHU4NTg1XHU4NTg2XHU4NTg5XHU4NThiXHU4NThjXHU4NThmXHU4NTkzXHU4NTk4XHU4NTlkXHU4NTlmXHU4NWEwXHU4NWEyXHU4NWE1XHU4NWE3XHU4NWI0XHU4NWI2XHU4NWI3XHU4NWI4XHU4NWJjXHU4NWJkXHU4NWJl'@; put 'XHU4NWJmXHU4NWMyXHU4NWM3XHU4NWNhXHU4NWNiXHU4NWNlXHU4NWFkXHU4NWQ4XHU4NWRhXHU4NWRmXHU4NWUwXHU4NWU2XHU4NWU4XHU4NWVkXHU4NWYzXHU4NWY2XHU4NWZjIl0sWyI4ZmRhYTEiLCJcdTg1ZmZcdTg2MDBcdTg2MDRcdTg2MDVcdTg2MGRcdTg2MGVcdTg2MTBcdTg2MTFc'@; put 'dTg2MTJcdTg2MThcdTg2MTlcdTg2MWJcdTg2MWVcdTg2MjFcdTg2MjdcdTg2MjlcdTg2MzZcdTg2MzhcdTg2M2FcdTg2M2NcdTg2M2RcdTg2NDBcdTg2NDJcdTg2NDZcdTg2NTJcdTg2NTNcdTg2NTZcdTg2NTdcdTg2NThcdTg2NTlcdTg2NWRcdTg2NjAiLDQsIlx1ODY2OVx1ODY2Y1x1ODY2'@; put 'Zlx1ODY3NVx1ODY3Nlx1ODY3N1x1ODY3YVx1ODY4ZFx1ODY5MVx1ODY5Nlx1ODY5OFx1ODY5YVx1ODY5Y1x1ODZhMVx1ODZhNlx1ODZhN1x1ODZhOFx1ODZhZFx1ODZiMVx1ODZiM1x1ODZiNFx1ODZiNVx1ODZiN1x1ODZiOFx1ODZiOVx1ODZiZlx1ODZjMFx1ODZjMVx1ODZjM1x1ODZjNVx1'@; put 'ODZkMVx1ODZkMlx1ODZkNVx1ODZkN1x1ODZkYVx1ODZkY1x1ODZlMFx1ODZlM1x1ODZlNVx1ODZlN1x1ODY4OFx1ODZmYVx1ODZmY1x1ODZmZFx1ODcwNFx1ODcwNVx1ODcwN1x1ODcwYlx1ODcwZVx1ODcwZlx1ODcxMFx1ODcxM1x1ODcxNFx1ODcxOVx1ODcxZVx1ODcxZlx1ODcyMVx1ODcy'@; put 'MyJdLFsiOGZkYmExIiwiXHU4NzI4XHU4NzJlXHU4NzJmXHU4NzMxXHU4NzMyXHU4NzM5XHU4NzNhXHU4NzNjXHU4NzNkXHU4NzNlXHU4NzQwXHU4NzQzXHU4NzQ1XHU4NzRkXHU4NzU4XHU4NzVkXHU4NzYxXHU4NzY0XHU4NzY1XHU4NzZmXHU4NzcxXHU4NzcyXHU4NzdiXHU4NzgzIiw2LCJc'@; put 'dTg3OGJcdTg3OGNcdTg3OTBcdTg3OTNcdTg3OTVcdTg3OTdcdTg3OThcdTg3OTlcdTg3OWVcdTg3YTBcdTg3YTNcdTg3YTdcdTg3YWNcdTg3YWRcdTg3YWVcdTg3YjFcdTg3YjVcdTg3YmVcdTg3YmZcdTg3YzFcdTg3YzhcdTg3YzlcdTg3Y2FcdTg3Y2VcdTg3ZDVcdTg3ZDZcdTg3ZDlcdTg3'@; put 'ZGFcdTg3ZGNcdTg3ZGZcdTg3ZTJcdTg3ZTNcdTg3ZTRcdTg3ZWFcdTg3ZWJcdTg3ZWRcdTg3ZjFcdTg3ZjNcdTg3ZjhcdTg3ZmFcdTg3ZmZcdTg4MDFcdTg4MDNcdTg4MDZcdTg4MDlcdTg4MGFcdTg4MGJcdTg4MTBcdTg4MTlcdTg4MTJcdTg4MTNcdTg4MTRcdTg4MThcdTg4MWFcdTg4MWJc'@; put 'dTg4MWNcdTg4MWVcdTg4MWZcdTg4MjhcdTg4MmRcdTg4MmVcdTg4MzBcdTg4MzJcdTg4MzUiXSxbIjhmZGNhMSIsIlx1ODgzYVx1ODgzY1x1ODg0MVx1ODg0M1x1ODg0NVx1ODg0OFx1ODg0OVx1ODg0YVx1ODg0Ylx1ODg0ZVx1ODg1MVx1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1YVx1ODg1Y1x1'@; put 'ODg1Zlx1ODg2MFx1ODg2NFx1ODg2OVx1ODg3MVx1ODg3OVx1ODg3Ylx1ODg4MFx1ODg5OFx1ODg5YVx1ODg5Ylx1ODg5Y1x1ODg5Zlx1ODhhMFx1ODhhOFx1ODhhYVx1ODhiYVx1ODhiZFx1ODhiZVx1ODhjMFx1ODhjYSIsNCwiXHU4OGQxXHU4OGQyXHU4OGQzXHU4OGRiXHU4OGRlXHU4OGU3'@; put 'XHU4OGVmXHU4OGYwXHU4OGYxXHU4OGY1XHU4OGY3XHU4OTAxXHU4OTA2XHU4OTBkXHU4OTBlXHU4OTBmXHU4OTE1XHU4OTE2XHU4OTE4XHU4OTE5XHU4OTFhXHU4OTFjXHU4OTIwXHU4OTI2XHU4OTI3XHU4OTI4XHU4OTMwXHU4OTMxXHU4OTMyXHU4OTM1XHU4OTM5XHU4OTNhXHU4OTNlXHU4'@; put 'OTQwXHU4OTQyXHU4OTQ1XHU4OTQ2XHU4OTQ5XHU4OTRmXHU4OTUyXHU4OTU3XHU4OTVhXHU4OTViXHU4OTVjXHU4OTYxXHU4OTYyXHU4OTYzXHU4OTZiXHU4OTZlXHU4OTcwXHU4OTczXHU4OTc1XHU4OTdhIl0sWyI4ZmRkYTEiLCJcdTg5N2JcdTg5N2NcdTg5N2RcdTg5ODlcdTg5OGRcdTg5'@; put 'OTBcdTg5OTRcdTg5OTVcdTg5OWJcdTg5OWNcdTg5OWZcdTg5YTBcdTg5YTVcdTg5YjBcdTg5YjRcdTg5YjVcdTg5YjZcdTg5YjdcdTg5YmNcdTg5ZDQiLDQsIlx1ODllNVx1ODllOVx1ODllYlx1ODllZFx1ODlmMVx1ODlmM1x1ODlmNlx1ODlmOVx1ODlmZFx1ODlmZlx1OGEwNFx1OGEwNVx1'@; put 'OGEwN1x1OGEwZlx1OGExMVx1OGExMlx1OGExNFx1OGExNVx1OGExZVx1OGEyMFx1OGEyMlx1OGEyNFx1OGEyNlx1OGEyYlx1OGEyY1x1OGEyZlx1OGEzNVx1OGEzN1x1OGEzZFx1OGEzZVx1OGE0MFx1OGE0M1x1OGE0NVx1OGE0N1x1OGE0OVx1OGE0ZFx1OGE0ZVx1OGE1M1x1OGE1Nlx1OGE1'@; put 'N1x1OGE1OFx1OGE1Y1x1OGE1ZFx1OGE2MVx1OGE2NVx1OGE2N1x1OGE3NVx1OGE3Nlx1OGE3N1x1OGE3OVx1OGE3YVx1OGE3Ylx1OGE3ZVx1OGE3Zlx1OGE4MFx1OGE4M1x1OGE4Nlx1OGE4Ylx1OGE4Zlx1OGE5MFx1OGE5Mlx1OGE5Nlx1OGE5N1x1OGE5OVx1OGE5Zlx1OGFhN1x1OGFhOVx1'@; put 'OGFhZVx1OGFhZlx1OGFiMyJdLFsiOGZkZWExIiwiXHU4YWI2XHU4YWI3XHU4YWJiXHU4YWJlXHU4YWMzXHU4YWM2XHU4YWM4XHU4YWM5XHU4YWNhXHU4YWQxXHU4YWQzXHU4YWQ0XHU4YWQ1XHU4YWQ3XHU4YWRkXHU4YWRmXHU4YWVjXHU4YWYwXHU4YWY0XHU4YWY1XHU4YWY2XHU4YWZjXHU4'@; put 'YWZmXHU4YjA1XHU4YjA2XHU4YjBiXHU4YjExXHU4YjFjXHU4YjFlXHU4YjFmXHU4YjBhXHU4YjJkXHU4YjMwXHU4YjM3XHU4YjNjXHU4YjQyIiw0LCJcdThiNDhcdThiNTJcdThiNTNcdThiNTRcdThiNTlcdThiNGRcdThiNWVcdThiNjNcdThiNmRcdThiNzZcdThiNzhcdThiNzlcdThiN2Nc'@; put 'dThiN2VcdThiODFcdThiODRcdThiODVcdThiOGJcdThiOGRcdThiOGZcdThiOTRcdThiOTVcdThiOWNcdThiOWVcdThiOWZcdThjMzhcdThjMzlcdThjM2RcdThjM2VcdThjNDVcdThjNDdcdThjNDlcdThjNGJcdThjNGZcdThjNTFcdThjNTNcdThjNTRcdThjNTdcdThjNThcdThjNWJcdThj'@; put 'NWRcdThjNTlcdThjNjNcdThjNjRcdThjNjZcdThjNjhcdThjNjlcdThjNmRcdThjNzNcdThjNzVcdThjNzZcdThjN2JcdThjN2VcdThjODYiXSxbIjhmZGZhMSIsIlx1OGM4N1x1OGM4Ylx1OGM5MFx1OGM5Mlx1OGM5M1x1OGM5OVx1OGM5Ylx1OGM5Y1x1OGNhNFx1OGNiOVx1OGNiYVx1OGNj'@; put 'NVx1OGNjNlx1OGNjOVx1OGNjYlx1OGNjZlx1OGNkNlx1OGNkNVx1OGNkOVx1OGNkZFx1OGNlMVx1OGNlOFx1OGNlY1x1OGNlZlx1OGNmMFx1OGNmMlx1OGNmNVx1OGNmN1x1OGNmOFx1OGNmZVx1OGNmZlx1OGQwMVx1OGQwM1x1OGQwOVx1OGQxMlx1OGQxN1x1OGQxYlx1OGQ2NVx1OGQ2OVx1'@; put 'OGQ2Y1x1OGQ2ZVx1OGQ3Zlx1OGQ4Mlx1OGQ4NFx1OGQ4OFx1OGQ4ZFx1OGQ5MFx1OGQ5MVx1OGQ5NVx1OGQ5ZVx1OGQ5Zlx1OGRhMFx1OGRhNlx1OGRhYlx1OGRhY1x1OGRhZlx1OGRiMlx1OGRiNVx1OGRiN1x1OGRiOVx1OGRiYlx1OGRjMFx1OGRjNVx1OGRjNlx1OGRjN1x1OGRjOFx1OGRj'@; put 'YVx1OGRjZVx1OGRkMVx1OGRkNFx1OGRkNVx1OGRkN1x1OGRkOVx1OGRlNFx1OGRlNVx1OGRlN1x1OGRlY1x1OGRmMFx1OGRiY1x1OGRmMVx1OGRmMlx1OGRmNFx1OGRmZFx1OGUwMVx1OGUwNFx1OGUwNVx1OGUwNlx1OGUwYlx1OGUxMVx1OGUxNFx1OGUxNlx1OGUyMFx1OGUyMVx1OGUyMiJd'@; put 'LFsiOGZlMGExIiwiXHU4ZTIzXHU4ZTI2XHU4ZTI3XHU4ZTMxXHU4ZTMzXHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTM5XHU4ZTNkXHU4ZTQwXHU4ZTQxXHU4ZTRiXHU4ZTRkXHU4ZTRlXHU4ZTRmXHU4ZTU0XHU4ZTViXHU4ZTVjXHU4ZTVkXHU4ZTVlXHU4ZTYxXHU4ZTYyXHU4ZTY5XHU4ZTZjXHU4'@; put 'ZTZkXHU4ZTZmXHU4ZTcwXHU4ZTcxXHU4ZTc5XHU4ZTdhXHU4ZTdiXHU4ZTgyXHU4ZTgzXHU4ZTg5XHU4ZTkwXHU4ZTkyXHU4ZTk1XHU4ZTlhXHU4ZTliXHU4ZTlkXHU4ZTllXHU4ZWEyXHU4ZWE3XHU4ZWE5XHU4ZWFkXHU4ZWFlXHU4ZWIzXHU4ZWI1XHU4ZWJhXHU4ZWJiXHU4ZWMwXHU4ZWMx'@; put 'XHU4ZWMzXHU4ZWM0XHU4ZWM3XHU4ZWNmXHU4ZWQxXHU4ZWQ0XHU4ZWRjXHU4ZWU4XHU4ZWVlXHU4ZWYwXHU4ZWYxXHU4ZWY3XHU4ZWY5XHU4ZWZhXHU4ZWVkXHU4ZjAwXHU4ZjAyXHU4ZjA3XHU4ZjA4XHU4ZjBmXHU4ZjEwXHU4ZjE2XHU4ZjE3XHU4ZjE4XHU4ZjFlXHU4ZjIwXHU4ZjIxXHU4'@; put 'ZjIzXHU4ZjI1XHU4ZjI3XHU4ZjI4XHU4ZjJjXHU4ZjJkXHU4ZjJlXHU4ZjM0XHU4ZjM1XHU4ZjM2XHU4ZjM3XHU4ZjNhXHU4ZjQwXHU4ZjQxIl0sWyI4ZmUxYTEiLCJcdThmNDNcdThmNDdcdThmNGZcdThmNTEiLDQsIlx1OGY1OFx1OGY1ZFx1OGY1ZVx1OGY2NVx1OGY5ZFx1OGZhMFx1OGZh'@; put 'MVx1OGZhNFx1OGZhNVx1OGZhNlx1OGZiNVx1OGZiNlx1OGZiOFx1OGZiZVx1OGZjMFx1OGZjMVx1OGZjNlx1OGZjYVx1OGZjYlx1OGZjZFx1OGZkMFx1OGZkMlx1OGZkM1x1OGZkNVx1OGZlMFx1OGZlM1x1OGZlNFx1OGZlOFx1OGZlZVx1OGZmMVx1OGZmNVx1OGZmNlx1OGZmYlx1OGZmZVx1'@; put 'OTAwMlx1OTAwNFx1OTAwOFx1OTAwY1x1OTAxOFx1OTAxYlx1OTAyOFx1OTAyOVx1OTAyZlx1OTAyYVx1OTAyY1x1OTAyZFx1OTAzM1x1OTAzNFx1OTAzN1x1OTAzZlx1OTA0M1x1OTA0NFx1OTA0Y1x1OTA1Ylx1OTA1ZFx1OTA2Mlx1OTA2Nlx1OTA2N1x1OTA2Y1x1OTA3MFx1OTA3NFx1OTA3'@; put 'OVx1OTA4NVx1OTA4OFx1OTA4Ylx1OTA4Y1x1OTA4ZVx1OTA5MFx1OTA5NVx1OTA5N1x1OTA5OFx1OTA5OVx1OTA5Ylx1OTBhMFx1OTBhMVx1OTBhMlx1OTBhNVx1OTBiMFx1OTBiMlx1OTBiM1x1OTBiNFx1OTBiNlx1OTBiZFx1OTBjY1x1OTBiZVx1OTBjMyJdLFsiOGZlMmExIiwiXHU5MGM0'@; put 'XHU5MGM1XHU5MGM3XHU5MGM4XHU5MGQ1XHU5MGQ3XHU5MGQ4XHU5MGQ5XHU5MGRjXHU5MGRkXHU5MGRmXHU5MGU1XHU5MGQyXHU5MGY2XHU5MGViXHU5MGVmXHU5MGYwXHU5MGY0XHU5MGZlXHU5MGZmXHU5MTAwXHU5MTA0XHU5MTA1XHU5MTA2XHU5MTA4XHU5MTBkXHU5MTEwXHU5MTE0XHU5'@; put 'MTE2XHU5MTE3XHU5MTE4XHU5MTFhXHU5MTFjXHU5MTFlXHU5MTIwXHU5MTI1XHU5MTIyXHU5MTIzXHU5MTI3XHU5MTI5XHU5MTJlXHU5MTJmXHU5MTMxXHU5MTM0XHU5MTM2XHU5MTM3XHU5MTM5XHU5MTNhXHU5MTNjXHU5MTNkXHU5MTQzXHU5MTQ3XHU5MTQ4XHU5MTRmXHU5MTUzXHU5MTU3'@; put 'XHU5MTU5XHU5MTVhXHU5MTViXHU5MTYxXHU5MTY0XHU5MTY3XHU5MTZkXHU5MTc0XHU5MTc5XHU5MTdhXHU5MTdiXHU5MTgxXHU5MTgzXHU5MTg1XHU5MTg2XHU5MThhXHU5MThlXHU5MTkxXHU5MTkzXHU5MTk0XHU5MTk1XHU5MTk4XHU5MTllXHU5MWExXHU5MWE2XHU5MWE4XHU5MWFjXHU5'@; put 'MWFkXHU5MWFlXHU5MWIwXHU5MWIxXHU5MWIyXHU5MWIzXHU5MWI2XHU5MWJiXHU5MWJjXHU5MWJkXHU5MWJmIl0sWyI4ZmUzYTEiLCJcdTkxYzJcdTkxYzNcdTkxYzVcdTkxZDNcdTkxZDRcdTkxZDdcdTkxZDlcdTkxZGFcdTkxZGVcdTkxZTRcdTkxZTVcdTkxZTlcdTkxZWFcdTkxZWMiLDUs'@; put 'Ilx1OTFmN1x1OTFmOVx1OTFmYlx1OTFmZFx1OTIwMFx1OTIwMVx1OTIwNFx1OTIwNVx1OTIwNlx1OTIwN1x1OTIwOVx1OTIwYVx1OTIwY1x1OTIxMFx1OTIxMlx1OTIxM1x1OTIxNlx1OTIxOFx1OTIxY1x1OTIxZFx1OTIyM1x1OTIyNFx1OTIyNVx1OTIyNlx1OTIyOFx1OTIyZVx1OTIyZlx1'@; put 'OTIzMFx1OTIzM1x1OTIzNVx1OTIzNlx1OTIzOFx1OTIzOVx1OTIzYVx1OTIzY1x1OTIzZVx1OTI0MFx1OTI0Mlx1OTI0M1x1OTI0Nlx1OTI0N1x1OTI0YVx1OTI0ZFx1OTI0ZVx1OTI0Zlx1OTI1MVx1OTI1OFx1OTI1OVx1OTI1Y1x1OTI1ZFx1OTI2MFx1OTI2MVx1OTI2NVx1OTI2N1x1OTI2'@; put 'OFx1OTI2OVx1OTI2ZVx1OTI2Zlx1OTI3MFx1OTI3NSIsNCwiXHU5MjdiXHU5MjdjXHU5MjdkXHU5MjdmXHU5Mjg4XHU5Mjg5XHU5MjhhXHU5MjhkXHU5MjhlXHU5MjkyXHU5Mjk3Il0sWyI4ZmU0YTEiLCJcdTkyOTlcdTkyOWZcdTkyYTBcdTkyYTRcdTkyYTVcdTkyYTdcdTkyYThcdTkyYWJc'@; put 'dTkyYWZcdTkyYjJcdTkyYjZcdTkyYjhcdTkyYmFcdTkyYmJcdTkyYmNcdTkyYmRcdTkyYmYiLDQsIlx1OTJjNVx1OTJjNlx1OTJjN1x1OTJjOFx1OTJjYlx1OTJjY1x1OTJjZFx1OTJjZVx1OTJkMFx1OTJkM1x1OTJkNVx1OTJkN1x1OTJkOFx1OTJkOVx1OTJkY1x1OTJkZFx1OTJkZlx1OTJl'@; put 'MFx1OTJlMVx1OTJlM1x1OTJlNVx1OTJlN1x1OTJlOFx1OTJlY1x1OTJlZVx1OTJmMFx1OTJmOVx1OTJmYlx1OTJmZlx1OTMwMFx1OTMwMlx1OTMwOFx1OTMwZFx1OTMxMVx1OTMxNFx1OTMxNVx1OTMxY1x1OTMxZFx1OTMxZVx1OTMxZlx1OTMyMVx1OTMyNFx1OTMyNVx1OTMyN1x1OTMyOVx1'@; put 'OTMyYVx1OTMzM1x1OTMzNFx1OTMzNlx1OTMzN1x1OTM0N1x1OTM0OFx1OTM0OVx1OTM1MFx1OTM1MVx1OTM1Mlx1OTM1NVx1OTM1N1x1OTM1OFx1OTM1YVx1OTM1ZVx1OTM2NFx1OTM2NVx1OTM2N1x1OTM2OVx1OTM2YVx1OTM2ZFx1OTM2Zlx1OTM3MFx1OTM3MVx1OTM3M1x1OTM3NFx1OTM3'@; put 'NiJdLFsiOGZlNWExIiwiXHU5MzdhXHU5MzdkXHU5MzdmXHU5MzgwXHU5MzgxXHU5MzgyXHU5Mzg4XHU5MzhhXHU5MzhiXHU5MzhkXHU5MzhmXHU5MzkyXHU5Mzk1XHU5Mzk4XHU5MzliXHU5MzllXHU5M2ExXHU5M2EzXHU5M2E0XHU5M2E2XHU5M2E4XHU5M2FiXHU5M2I0XHU5M2I1XHU5M2I2'@; put 'XHU5M2JhXHU5M2E5XHU5M2MxXHU5M2M0XHU5M2M1XHU5M2M2XHU5M2M3XHU5M2M5Iiw0LCJcdTkzZDNcdTkzZDlcdTkzZGNcdTkzZGVcdTkzZGZcdTkzZTJcdTkzZTZcdTkzZTdcdTkzZjlcdTkzZjdcdTkzZjhcdTkzZmFcdTkzZmJcdTkzZmRcdTk0MDFcdTk0MDJcdTk0MDRcdTk0MDhcdTk0'@; put 'MDlcdTk0MGRcdTk0MGVcdTk0MGZcdTk0MTVcdTk0MTZcdTk0MTdcdTk0MWZcdTk0MmVcdTk0MmZcdTk0MzFcdTk0MzJcdTk0MzNcdTk0MzRcdTk0M2JcdTk0M2ZcdTk0M2RcdTk0NDNcdTk0NDVcdTk0NDhcdTk0NGFcdTk0NGNcdTk0NTVcdTk0NTlcdTk0NWNcdTk0NWZcdTk0NjFcdTk0NjNc'@; put 'dTk0NjhcdTk0NmJcdTk0NmRcdTk0NmVcdTk0NmZcdTk0NzFcdTk0NzJcdTk0ODRcdTk0ODNcdTk1NzhcdTk1NzkiXSxbIjhmZTZhMSIsIlx1OTU3ZVx1OTU4NFx1OTU4OFx1OTU4Y1x1OTU4ZFx1OTU4ZVx1OTU5ZFx1OTU5ZVx1OTU5Zlx1OTVhMVx1OTVhNlx1OTVhOVx1OTVhYlx1OTVhY1x1'@; put 'OTViNFx1OTViNlx1OTViYVx1OTViZFx1OTViZlx1OTVjNlx1OTVjOFx1OTVjOVx1OTVjYlx1OTVkMFx1OTVkMVx1OTVkMlx1OTVkM1x1OTVkOVx1OTVkYVx1OTVkZFx1OTVkZVx1OTVkZlx1OTVlMFx1OTVlNFx1OTVlNlx1OTYxZFx1OTYxZVx1OTYyMlx1OTYyNFx1OTYyNVx1OTYyNlx1OTYy'@; put 'Y1x1OTYzMVx1OTYzM1x1OTYzN1x1OTYzOFx1OTYzOVx1OTYzYVx1OTYzY1x1OTYzZFx1OTY0MVx1OTY1Mlx1OTY1NFx1OTY1Nlx1OTY1N1x1OTY1OFx1OTY2MVx1OTY2ZVx1OTY3NFx1OTY3Ylx1OTY3Y1x1OTY3ZVx1OTY3Zlx1OTY4MVx1OTY4Mlx1OTY4M1x1OTY4NFx1OTY4OVx1OTY5MVx1'@; put 'OTY5Nlx1OTY5YVx1OTY5ZFx1OTY5Zlx1OTZhNFx1OTZhNVx1OTZhNlx1OTZhOVx1OTZhZVx1OTZhZlx1OTZiM1x1OTZiYVx1OTZjYVx1OTZkMlx1NWRiMlx1OTZkOFx1OTZkYVx1OTZkZFx1OTZkZVx1OTZkZlx1OTZlOVx1OTZlZlx1OTZmMVx1OTZmYVx1OTcwMiJdLFsiOGZlN2ExIiwiXHU5'@; put 'NzAzXHU5NzA1XHU5NzA5XHU5NzFhXHU5NzFiXHU5NzFkXHU5NzIxXHU5NzIyXHU5NzIzXHU5NzI4XHU5NzMxXHU5NzMzXHU5NzQxXHU5NzQzXHU5NzRhXHU5NzRlXHU5NzRmXHU5NzU1XHU5NzU3XHU5NzU4XHU5NzVhXHU5NzViXHU5NzYzXHU5NzY3XHU5NzZhXHU5NzZlXHU5NzczXHU5Nzc2'@; put 'XHU5Nzc3XHU5Nzc4XHU5NzdiXHU5NzdkXHU5NzdmXHU5NzgwXHU5Nzg5XHU5Nzk1XHU5Nzk2XHU5Nzk3XHU5Nzk5XHU5NzlhXHU5NzllXHU5NzlmXHU5N2EyXHU5N2FjXHU5N2FlXHU5N2IxXHU5N2IyXHU5N2I1XHU5N2I2XHU5N2I4XHU5N2I5XHU5N2JhXHU5N2JjXHU5N2JlXHU5N2JmXHU5'@; put 'N2MxXHU5N2M0XHU5N2M1XHU5N2M3XHU5N2M5XHU5N2NhXHU5N2NjXHU5N2NkXHU5N2NlXHU5N2QwXHU5N2QxXHU5N2Q0XHU5N2Q3XHU5N2Q4XHU5N2Q5XHU5N2RkXHU5N2RlXHU5N2UwXHU5N2RiXHU5N2UxXHU5N2U0XHU5N2VmXHU5N2YxXHU5N2Y0XHU5N2Y3XHU5N2Y4XHU5N2ZhXHU5ODA3'@; put 'XHU5ODBhXHU5ODE5XHU5ODBkXHU5ODBlXHU5ODE0XHU5ODE2XHU5ODFjXHU5ODFlXHU5ODIwXHU5ODIzXHU5ODI2Il0sWyI4ZmU4YTEiLCJcdTk4MmJcdTk4MmVcdTk4MmZcdTk4MzBcdTk4MzJcdTk4MzNcdTk4MzVcdTk4MjVcdTk4M2VcdTk4NDRcdTk4NDdcdTk4NGFcdTk4NTFcdTk4NTJc'@; put 'dTk4NTNcdTk4NTZcdTk4NTdcdTk4NTlcdTk4NWFcdTk4NjJcdTk4NjNcdTk4NjVcdTk4NjZcdTk4NmFcdTk4NmNcdTk4YWJcdTk4YWRcdTk4YWVcdTk4YjBcdTk4YjRcdTk4YjdcdTk4YjhcdTk4YmFcdTk4YmJcdTk4YmZcdTk4YzJcdTk4YzVcdTk4YzhcdTk4Y2NcdTk4ZTFcdTk4ZTNcdTk4'@; put 'ZTVcdTk4ZTZcdTk4ZTdcdTk4ZWFcdTk4ZjNcdTk4ZjZcdTk5MDJcdTk5MDdcdTk5MDhcdTk5MTFcdTk5MTVcdTk5MTZcdTk5MTdcdTk5MWFcdTk5MWJcdTk5MWNcdTk5MWZcdTk5MjJcdTk5MjZcdTk5MjdcdTk5MmJcdTk5MzEiLDQsIlx1OTkzOVx1OTkzYVx1OTkzYlx1OTkzY1x1OTk0MFx1'@; put 'OTk0MVx1OTk0Nlx1OTk0N1x1OTk0OFx1OTk0ZFx1OTk0ZVx1OTk1NFx1OTk1OFx1OTk1OVx1OTk1Ylx1OTk1Y1x1OTk1ZVx1OTk1Zlx1OTk2MFx1OTk5Ylx1OTk5ZFx1OTk5Zlx1OTlhNlx1OTliMFx1OTliMVx1OTliMlx1OTliNSJdLFsiOGZlOWExIiwiXHU5OWI5XHU5OWJhXHU5OWJkXHU5'@; put 'OWJmXHU5OWMzXHU5OWM5XHU5OWQzXHU5OWQ0XHU5OWQ5XHU5OWRhXHU5OWRjXHU5OWRlXHU5OWU3XHU5OWVhXHU5OWViXHU5OWVjXHU5OWYwXHU5OWY0XHU5OWY1XHU5OWY5XHU5OWZkXHU5OWZlXHU5YTAyXHU5YTAzXHU5YTA0XHU5YTBiXHU5YTBjXHU5YTEwXHU5YTExXHU5YTE2XHU5YTFl'@; put 'XHU5YTIwXHU5YTIyXHU5YTIzXHU5YTI0XHU5YTI3XHU5YTJkXHU5YTJlXHU5YTMzXHU5YTM1XHU5YTM2XHU5YTM4XHU5YTQ3XHU5YTQxXHU5YTQ0XHU5YTRhXHU5YTRiXHU5YTRjXHU5YTRlXHU5YTUxXHU5YTU0XHU5YTU2XHU5YTVkXHU5YWFhXHU5YWFjXHU5YWFlXHU5YWFmXHU5YWIyXHU5'@; put 'YWI0XHU5YWI1XHU5YWI2XHU5YWI5XHU5YWJiXHU5YWJlXHU5YWJmXHU5YWMxXHU5YWMzXHU5YWM2XHU5YWM4XHU5YWNlXHU5YWQwXHU5YWQyXHU5YWQ1XHU5YWQ2XHU5YWQ3XHU5YWRiXHU5YWRjXHU5YWUwXHU5YWU0XHU5YWU1XHU5YWU3XHU5YWU5XHU5YWVjXHU5YWYyXHU5YWYzXHU5YWY1'@; put 'XHU5YWY5XHU5YWZhXHU5YWZkXHU5YWZmIiw0XSxbIjhmZWFhMSIsIlx1OWIwNFx1OWIwNVx1OWIwOFx1OWIwOVx1OWIwYlx1OWIwY1x1OWIwZFx1OWIwZVx1OWIxMFx1OWIxMlx1OWIxNlx1OWIxOVx1OWIxYlx1OWIxY1x1OWIyMFx1OWIyNlx1OWIyYlx1OWIyZFx1OWIzM1x1OWIzNFx1OWIz'@; put 'NVx1OWIzN1x1OWIzOVx1OWIzYVx1OWIzZFx1OWI0OFx1OWI0Ylx1OWI0Y1x1OWI1NVx1OWI1Nlx1OWI1N1x1OWI1Ylx1OWI1ZVx1OWI2MVx1OWI2M1x1OWI2NVx1OWI2Nlx1OWI2OFx1OWI2YSIsNCwiXHU5YjczXHU5Yjc1XHU5Yjc3XHU5Yjc4XHU5Yjc5XHU5YjdmXHU5YjgwXHU5Yjg0XHU5'@; put 'Yjg1XHU5Yjg2XHU5Yjg3XHU5Yjg5XHU5YjhhXHU5YjhiXHU5YjhkXHU5YjhmXHU5YjkwXHU5Yjk0XHU5YjlhXHU5YjlkXHU5YjllXHU5YmE2XHU5YmE3XHU5YmE5XHU5YmFjXHU5YmIwXHU5YmIxXHU5YmIyXHU5YmI3XHU5YmI4XHU5YmJiXHU5YmJjXHU5YmJlXHU5YmJmXHU5YmMxXHU5YmM3'@; put 'XHU5YmM4XHU5YmNlXHU5YmQwXHU5YmQ3XHU5YmQ4XHU5YmRkXHU5YmRmXHU5YmU1XHU5YmU3XHU5YmVhXHU5YmViXHU5YmVmXHU5YmYzXHU5YmY3XHU5YmY4Il0sWyI4ZmViYTEiLCJcdTliZjlcdTliZmFcdTliZmRcdTliZmZcdTljMDBcdTljMDJcdTljMGJcdTljMGZcdTljMTFcdTljMTZc'@; put 'dTljMThcdTljMTlcdTljMWFcdTljMWNcdTljMWVcdTljMjJcdTljMjNcdTljMjYiLDQsIlx1OWMzMVx1OWMzNVx1OWMzNlx1OWMzN1x1OWMzZFx1OWM0MVx1OWM0M1x1OWM0NFx1OWM0NVx1OWM0OVx1OWM0YVx1OWM0ZVx1OWM0Zlx1OWM1MFx1OWM1M1x1OWM1NFx1OWM1Nlx1OWM1OFx1OWM1'@; put 'Ylx1OWM1ZFx1OWM1ZVx1OWM1Zlx1OWM2M1x1OWM2OVx1OWM2YVx1OWM1Y1x1OWM2Ylx1OWM2OFx1OWM2ZVx1OWM3MFx1OWM3Mlx1OWM3NVx1OWM3N1x1OWM3Ylx1OWNlNlx1OWNmMlx1OWNmN1x1OWNmOVx1OWQwYlx1OWQwMlx1OWQxMVx1OWQxN1x1OWQxOFx1OWQxY1x1OWQxZFx1OWQxZVx1'@; put 'OWQyZlx1OWQzMFx1OWQzMlx1OWQzM1x1OWQzNFx1OWQzYVx1OWQzY1x1OWQ0NVx1OWQzZFx1OWQ0Mlx1OWQ0M1x1OWQ0N1x1OWQ0YVx1OWQ1M1x1OWQ1NFx1OWQ1Zlx1OWQ2M1x1OWQ2Mlx1OWQ2NVx1OWQ2OVx1OWQ2YVx1OWQ2Ylx1OWQ3MFx1OWQ3Nlx1OWQ3N1x1OWQ3YiJdLFsiOGZlY2Ex'@; put 'IiwiXHU5ZDdjXHU5ZDdlXHU5ZDgzXHU5ZDg0XHU5ZDg2XHU5ZDhhXHU5ZDhkXHU5ZDhlXHU5ZDkyXHU5ZDkzXHU5ZDk1XHU5ZDk2XHU5ZDk3XHU5ZDk4XHU5ZGExXHU5ZGFhXHU5ZGFjXHU5ZGFlXHU5ZGIxXHU5ZGI1XHU5ZGI5XHU5ZGJjXHU5ZGJmXHU5ZGMzXHU5ZGM3XHU5ZGM5XHU5ZGNh'@; put 'XHU5ZGQ0XHU5ZGQ1XHU5ZGQ2XHU5ZGQ3XHU5ZGRhXHU5ZGRlXHU5ZGRmXHU5ZGUwXHU5ZGU1XHU5ZGU3XHU5ZGU5XHU5ZGViXHU5ZGVlXHU5ZGYwXHU5ZGYzXHU5ZGY0XHU5ZGZlXHU5ZTBhXHU5ZTAyXHU5ZTA3XHU5ZTBlXHU5ZTEwXHU5ZTExXHU5ZTEyXHU5ZTE1XHU5ZTE2XHU5ZTE5XHU5'@; put 'ZTFjXHU5ZTFkXHU5ZTdhXHU5ZTdiXHU5ZTdjXHU5ZTgwXHU5ZTgyXHU5ZTgzXHU5ZTg0XHU5ZTg1XHU5ZTg3XHU5ZThlXHU5ZThmXHU5ZTk2XHU5ZTk4XHU5ZTliXHU5ZTllXHU5ZWE0XHU5ZWE4XHU5ZWFjXHU5ZWFlXHU5ZWFmXHU5ZWIwXHU5ZWIzXHU5ZWI0XHU5ZWI1XHU5ZWM2XHU5ZWM4'@; put 'XHU5ZWNiXHU5ZWQ1XHU5ZWRmXHU5ZWU0XHU5ZWU3XHU5ZWVjXHU5ZWVkXHU5ZWVlXHU5ZWYwXHU5ZWYxXHU5ZWYyXHU5ZWY1Il0sWyI4ZmVkYTEiLCJcdTllZjhcdTllZmZcdTlmMDJcdTlmMDNcdTlmMDlcdTlmMGZcdTlmMTBcdTlmMTFcdTlmMTJcdTlmMTRcdTlmMTZcdTlmMTdcdTlmMTlc'@; put 'dTlmMWFcdTlmMWJcdTlmMWZcdTlmMjJcdTlmMjZcdTlmMmFcdTlmMmJcdTlmMmZcdTlmMzFcdTlmMzJcdTlmMzRcdTlmMzdcdTlmMzlcdTlmM2FcdTlmM2NcdTlmM2RcdTlmM2ZcdTlmNDFcdTlmNDMiLDQsIlx1OWY1M1x1OWY1NVx1OWY1Nlx1OWY1N1x1OWY1OFx1OWY1YVx1OWY1ZFx1OWY1'@; put 'ZVx1OWY2OFx1OWY2OVx1OWY2ZCIsNCwiXHU5ZjczXHU5Zjc1XHU5ZjdhXHU5ZjdkXHU5ZjhmXHU5ZjkwXHU5ZjkxXHU5ZjkyXHU5Zjk0XHU5Zjk2XHU5Zjk3XHU5ZjllXHU5ZmExXHU5ZmEyXHU5ZmEzXHU5ZmE1Il1dJyl9LDM2MjU4OmF0PT57InVzZSBzdHJpY3QiO2F0LmV4cG9ydHM9SlNP'@; put 'Ti5wYXJzZSgneyJ1Q2hhcnMiOlsxMjgsMTY1LDE2OSwxNzgsMTg0LDIxNiwyMjYsMjM1LDIzOCwyNDQsMjQ4LDI1MSwyNTMsMjU4LDI3NiwyODQsMzAwLDMyNSwzMjksMzM0LDM2NCw0NjMsNDY1LDQ2Nyw0NjksNDcxLDQ3Myw0NzUsNDc3LDUwNiw1OTQsNjEwLDcxMiw3MTYsNzMwLDkzMCw5'@; put 'MzgsOTYyLDk3MCwxMDI2LDExMDQsMTEwNiw4MjA5LDgyMTUsODIxOCw4MjIyLDgyMzEsODI0MSw4MjQ0LDgyNDYsODI1Miw4MzY1LDg0NTIsODQ1NCw4NDU4LDg0NzEsODQ4Miw4NTU2LDg1NzAsODU5Niw4NjAyLDg3MTMsODcyMCw4NzIyLDg3MjYsODczMSw4NzM3LDg3NDAsODc0Miw4NzQ4'@; put 'LDg3NTEsODc2MCw4NzY2LDg3NzcsODc4MSw4Nzg3LDg4MDIsODgwOCw4ODE2LDg4NTQsODg1OCw4ODcwLDg4OTYsODk3OSw5MzIyLDkzNzIsOTU0OCw5NTg4LDk2MTYsOTYyMiw5NjM0LDk2NTIsOTY2Miw5NjcyLDk2NzYsOTY4MCw5NzAyLDk3MzUsOTczOCw5NzkzLDk3OTUsMTE5MDYsMTE5'@; put 'MDksMTE5MTMsMTE5MTcsMTE5MjgsMTE5NDQsMTE5NDcsMTE5NTEsMTE5NTYsMTE5NjAsMTE5NjQsMTE5NzksMTIyODQsMTIyOTIsMTIzMTIsMTIzMTksMTIzMzAsMTIzNTEsMTI0MzYsMTI0NDcsMTI1MzUsMTI1NDMsMTI1ODYsMTI4NDIsMTI4NTAsMTI5NjQsMTMyMDAsMTMyMTUsMTMyMTgs'@; put 'MTMyNTMsMTMyNjMsMTMyNjcsMTMyNzAsMTMzODQsMTM0MjgsMTM3MjcsMTM4MzksMTM4NTEsMTQ2MTcsMTQ3MDMsMTQ4MDEsMTQ4MTYsMTQ5NjQsMTUxODMsMTU0NzEsMTU1ODUsMTY0NzEsMTY3MzYsMTcyMDgsMTczMjUsMTczMzAsMTczNzQsMTc2MjMsMTc5OTcsMTgwMTgsMTgyMTIsMTgy'@; put 'MTgsMTgzMDEsMTgzMTgsMTg3NjAsMTg4MTEsMTg4MTQsMTg4MjAsMTg4MjMsMTg4NDQsMTg4NDgsMTg4NzIsMTk1NzYsMTk2MjAsMTk3MzgsMTk4ODcsNDA4NzAsNTkyNDQsNTkzMzYsNTkzNjcsNTk0MTMsNTk0MTcsNTk0MjMsNTk0MzEsNTk0MzcsNTk0NDMsNTk0NTIsNTk0NjAsNTk0Nzgs'@; put 'NTk0OTMsNjM3ODksNjM4NjYsNjM4OTQsNjM5NzYsNjM5ODYsNjQwMTYsNjQwMTgsNjQwMjEsNjQwMjUsNjQwMzQsNjQwMzcsNjQwNDIsNjUwNzQsNjUwOTMsNjUxMDcsNjUxMTIsNjUxMjcsNjUxMzIsNjUzNzUsNjU1MTAsNjU1MzZdLCJnYkNoYXJzIjpbMCwzNiwzOCw0NSw1MCw4MSw4OSw5'@; put 'NSw5NiwxMDAsMTAzLDEwNCwxMDUsMTA5LDEyNiwxMzMsMTQ4LDE3MiwxNzUsMTc5LDIwOCwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDM0MSw0MjgsNDQzLDU0NCw1NDUsNTU4LDc0MSw3NDIsNzQ5LDc1MCw4MDUsODE5LDgyMCw3OTIyLDc5MjQsNzkyNSw3OTI3LDc5MzQsNzk0'@; put 'Myw3OTQ0LDc5NDUsNzk1MCw4MDYyLDgxNDgsODE0OSw4MTUyLDgxNjQsODE3NCw4MjM2LDgyNDAsODI2Miw4MjY0LDgzNzQsODM4MCw4MzgxLDgzODQsODM4OCw4MzkwLDgzOTIsODM5Myw4Mzk0LDgzOTYsODQwMSw4NDA2LDg0MTYsODQxOSw4NDI0LDg0MzcsODQzOSw4NDQ1LDg0ODIsODQ4'@; put 'NSw4NDk2LDg1MjEsODYwMyw4OTM2LDg5NDYsOTA0Niw5MDUwLDkwNjMsOTA2Niw5MDc2LDkwOTIsOTEwMCw5MTA4LDkxMTEsOTExMyw5MTMxLDkxNjIsOTE2NCw5MjE4LDkyMTksMTEzMjksMTEzMzEsMTEzMzQsMTEzMzYsMTEzNDYsMTEzNjEsMTEzNjMsMTEzNjYsMTEzNzAsMTEzNzIsMTEz'@; put 'NzUsMTEzODksMTE2ODIsMTE2ODYsMTE2ODcsMTE2OTIsMTE2OTQsMTE3MTQsMTE3MTYsMTE3MjMsMTE3MjUsMTE3MzAsMTE3MzYsMTE5ODIsMTE5ODksMTIxMDIsMTIzMzYsMTIzNDgsMTIzNTAsMTIzODQsMTIzOTMsMTIzOTUsMTIzOTcsMTI1MTAsMTI1NTMsMTI4NTEsMTI5NjIsMTI5NzMs'@; put 'MTM3MzgsMTM4MjMsMTM5MTksMTM5MzMsMTQwODAsMTQyOTgsMTQ1ODUsMTQ2OTgsMTU1ODMsMTU4NDcsMTYzMTgsMTY0MzQsMTY0MzgsMTY0ODEsMTY3MjksMTcxMDIsMTcxMjIsMTczMTUsMTczMjAsMTc0MDIsMTc0MTgsMTc4NTksMTc5MDksMTc5MTEsMTc5MTUsMTc5MTYsMTc5MzYsMTc5'@; put 'MzksMTc5NjEsMTg2NjQsMTg3MDMsMTg4MTQsMTg5NjIsMTkwNDMsMzM0NjksMzM0NzAsMzM0NzEsMzM0ODQsMzM0ODUsMzM0OTAsMzM0OTcsMzM1MDEsMzM1MDUsMzM1MTMsMzM1MjAsMzM1MzYsMzM1NTAsMzc4NDUsMzc5MjEsMzc5NDgsMzgwMjksMzgwMzgsMzgwNjQsMzgwNjUsMzgwNjYs'@; put 'MzgwNjksMzgwNzUsMzgwNzYsMzgwNzgsMzkxMDgsMzkxMDksMzkxMTMsMzkxMTQsMzkxMTUsMzkxMTYsMzkyNjUsMzkzOTQsMTg5MDAwXX0nKX0sNDQzNDY6YXQ9PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyJhMTQwIiwiXHVlNGM2Iiw2Ml0sWyJhMTgwIiwiXHVl'@; put 'NTA1IiwzMl0sWyJhMjQwIiwiXHVlNTI2Iiw2Ml0sWyJhMjgwIiwiXHVlNTY1IiwzMl0sWyJhMmFiIiwiXHVlNzY2Iiw1XSxbImEyZTMiLCJcdTIwYWNcdWU3NmQiXSxbImEyZWYiLCJcdWU3NmVcdWU3NmYiXSxbImEyZmQiLCJcdWU3NzBcdWU3NzEiXSxbImEzNDAiLCJcdWU1ODYiLDYyXSxb'@; put 'ImEzODAiLCJcdWU1YzUiLDMxLCJcdTMwMDAiXSxbImE0NDAiLCJcdWU1ZTYiLDYyXSxbImE0ODAiLCJcdWU2MjUiLDMyXSxbImE0ZjQiLCJcdWU3NzIiLDEwXSxbImE1NDAiLCJcdWU2NDYiLDYyXSxbImE1ODAiLCJcdWU2ODUiLDMyXSxbImE1ZjciLCJcdWU3N2QiLDddLFsiYTY0MCIsIlx1'@; put 'ZTZhNiIsNjJdLFsiYTY4MCIsIlx1ZTZlNSIsMzJdLFsiYTZiOSIsIlx1ZTc4NSIsN10sWyJhNmQ5IiwiXHVlNzhkIiw2XSxbImE2ZWMiLCJcdWU3OTRcdWU3OTUiXSxbImE2ZjMiLCJcdWU3OTYiXSxbImE2ZjYiLCJcdWU3OTciLDhdLFsiYTc0MCIsIlx1ZTcwNiIsNjJdLFsiYTc4MCIsIlx1'@; put 'ZTc0NSIsMzJdLFsiYTdjMiIsIlx1ZTdhMCIsMTRdLFsiYTdmMiIsIlx1ZTdhZiIsMTJdLFsiYTg5NiIsIlx1ZTdiYyIsMTBdLFsiYThiYyIsIlx1ZTdjNyJdLFsiYThiZiIsIlx1MDFmOSJdLFsiYThjMSIsIlx1ZTdjOVx1ZTdjYVx1ZTdjYlx1ZTdjYyJdLFsiYThlYSIsIlx1ZTdjZCIsMjBd'@; put 'LFsiYTk1OCIsIlx1ZTdlMiJdLFsiYTk1YiIsIlx1ZTdlMyJdLFsiYTk1ZCIsIlx1ZTdlNFx1ZTdlNVx1ZTdlNiJdLFsiYTk4OSIsIlx1MzAzZVx1MmZmMCIsMTFdLFsiYTk5NyIsIlx1ZTdmNCIsMTJdLFsiYTlmMCIsIlx1ZTgwMSIsMTRdLFsiYWFhMSIsIlx1ZTAwMCIsOTNdLFsiYWJhMSIs'@; put 'Ilx1ZTA1ZSIsOTNdLFsiYWNhMSIsIlx1ZTBiYyIsOTNdLFsiYWRhMSIsIlx1ZTExYSIsOTNdLFsiYWVhMSIsIlx1ZTE3OCIsOTNdLFsiYWZhMSIsIlx1ZTFkNiIsOTNdLFsiZDdmYSIsIlx1ZTgxMCIsNF0sWyJmOGExIiwiXHVlMjM0Iiw5M10sWyJmOWExIiwiXHVlMjkyIiw5M10sWyJmYWEx'@; put 'IiwiXHVlMmYwIiw5M10sWyJmYmExIiwiXHVlMzRlIiw5M10sWyJmY2ExIiwiXHVlM2FjIiw5M10sWyJmZGExIiwiXHVlNDBhIiw5M10sWyJmZTUwIiwiXHUyZTgxXHVlODE2XHVlODE3XHVlODE4XHUyZTg0XHUzNDczXHUzNDQ3XHUyZTg4XHUyZThiXHVlODFlXHUzNTllXHUzNjFhXHUzNjBl'@; put 'XHUyZThjXHUyZTk3XHUzOTZlXHUzOTE4XHVlODI2XHUzOWNmXHUzOWRmXHUzYTczXHUzOWQwXHVlODJiXHVlODJjXHUzYjRlXHUzYzZlXHUzY2UwXHUyZWE3XHVlODMxXHVlODMyXHUyZWFhXHU0MDU2XHU0MTVmXHUyZWFlXHU0MzM3XHUyZWIzXHUyZWI2XHUyZWI3XHVlODNiXHU0M2IxXHU0'@; put 'M2FjXHUyZWJiXHU0M2RkXHU0NGQ2XHU0NjYxXHU0NjRjXHVlODQzIl0sWyJmZTgwIiwiXHU0NzIzXHU0NzI5XHU0NzdjXHU0NzhkXHUyZWNhXHU0OTQ3XHU0OTdhXHU0OTdkXHU0OTgyXHU0OTgzXHU0OTg1XHU0OTg2XHU0OTlmXHU0OTliXHU0OWI3XHU0OWI2XHVlODU0XHVlODU1XHU0Y2Ez'@; put 'XHU0YzlmXHU0Y2EwXHU0Y2ExXHU0Yzc3XHU0Y2EyXHU0ZDEzIiw2LCJcdTRkYWVcdWU4NjRcdWU0NjgiLDkzXV0nKX0sMjcwMTQ6YXQ9PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyIwIiwiXFx1MDAwMCIsMTI4XSxbImExIiwiXHVmZjYxIiw2Ml0sWyI4MTQwIiwi'@; put 'XHUzMDAwXHUzMDAxXHUzMDAyXHVmZjBjXHVmZjBlXHUzMGZiXHVmZjFhXHVmZjFiXHVmZjFmXHVmZjAxXHUzMDliXHUzMDljXHhiNFx1ZmY0MFx4YThcdWZmM2VcdWZmZTNcdWZmM2ZcdTMwZmRcdTMwZmVcdTMwOWRcdTMwOWVcdTMwMDNcdTRlZGRcdTMwMDVcdTMwMDZcdTMwMDdcdTMwZmNc'@; put 'dTIwMTVcdTIwMTBcdWZmMGZcdWZmM2NcdWZmNWVcdTIyMjVcdWZmNWNcdTIwMjZcdTIwMjVcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdWZmMDhcdWZmMDlcdTMwMTRcdTMwMTVcdWZmM2JcdWZmM2RcdWZmNWJcdWZmNWRcdTMwMDgiLDksIlx1ZmYwYlx1ZmYwZFx4YjFceGQ3Il0sWyI4MTgw'@; put 'IiwiXHhmN1x1ZmYxZFx1MjI2MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVcdWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZmMDZcdWZmMGFcdWZmMjBceGE3XHUyNjA2XHUyNjA1XHUyNWNi'@; put 'XHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzIl0sWyI4MWI4IiwiXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5Il0s'@; put 'WyI4MWM4IiwiXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzIl0sWyI4MWRhIiwiXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjIl0sWyI4MWYwIiwi'@; put 'XHUyMTJiXHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNiJdLFsiODFmYyIsIlx1MjVlZiJdLFsiODI0ZiIsIlx1ZmYxMCIsOV0sWyI4MjYwIiwiXHVmZjIxIiwyNV0sWyI4MjgxIiwiXHVmZjQxIiwyNV0sWyI4MjlmIiwiXHUzMDQxIiw4Ml0sWyI4MzQwIiwiXHUzMGEx'@; put 'Iiw2Ml0sWyI4MzgwIiwiXHUzMGUwIiwyMl0sWyI4MzlmIiwiXHUwMzkxIiwxNiwiXHUwM2EzIiw2XSxbIjgzYmYiLCJcdTAzYjEiLDE2LCJcdTAzYzMiLDZdLFsiODQ0MCIsIlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2IiwyNV0sWyI4NDcwIiwiXHUwNDMwIiw1LCJcdTA0NTFcdTA0MzYiLDdd'@; put 'LFsiODQ4MCIsIlx1MDQzZSIsMTddLFsiODQ5ZiIsIlx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1'@; put 'MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0MiJdLFsiODc0MCIsIlx1MjQ2MCIsMTksIlx1MjE2MCIsOV0sWyI4NzVmIiwiXHUzMzQ5XHUzMzE0XHUzMzIyXHUzMzRkXHUzMzE4XHUzMzI3XHUzMzAzXHUzMzM2XHUzMzUxXHUzMzU3XHUz'@; put 'MzBkXHUzMzI2XHUzMzIzXHUzMzJiXHUzMzRhXHUzMzNiXHUzMzljXHUzMzlkXHUzMzllXHUzMzhlXHUzMzhmXHUzM2M0XHUzM2ExIl0sWyI4NzdlIiwiXHUzMzdiIl0sWyI4NzgwIiwiXHUzMDFkXHUzMDFmXHUyMTE2XHUzM2NkXHUyMTIxXHUzMmE0Iiw0LCJcdTMyMzFcdTMyMzJcdTMyMzlc'@; put 'dTMzN2VcdTMzN2RcdTMzN2NcdTIyNTJcdTIyNjFcdTIyMmJcdTIyMmVcdTIyMTFcdTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIyMmEiXSxbIjg4OWYiLCJcdTRlOWNcdTU1MTZcdTVhMDNcdTk2M2ZcdTU0YzBcdTYxMWJcdTYzMjhcdTU5ZjZcdTkwMjJcdTg0'@; put 'NzVcdTgzMWNcdTdhNTBcdTYwYWFcdTYzZTFcdTZlMjVcdTY1ZWRcdTg0NjZcdTgyYTZcdTliZjVcdTY4OTNcdTU3MjdcdTY1YTFcdTYyNzFcdTViOWJcdTU5ZDBcdTg2N2JcdTk4ZjRcdTdkNjJcdTdkYmVcdTliOGVcdTYyMTZcdTdjOWZcdTg4YjdcdTViODlcdTVlYjVcdTYzMDlcdTY2OTdc'@; put 'dTY4NDhcdTk1YzdcdTk3OGRcdTY3NGZcdTRlZTVcdTRmMGFcdTRmNGRcdTRmOWRcdTUwNDlcdTU2ZjJcdTU5MzdcdTU5ZDRcdTVhMDFcdTVjMDlcdTYwZGZcdTYxMGZcdTYxNzBcdTY2MTNcdTY5MDVcdTcwYmFcdTc1NGZcdTc1NzBcdTc5ZmJcdTdkYWRcdTdkZWZcdTgwYzNcdTg0MGVcdTg4'@; put 'NjNcdThiMDJcdTkwNTVcdTkwN2FcdTUzM2JcdTRlOTVcdTRlYTVcdTU3ZGZcdTgwYjJcdTkwYzFcdTc4ZWZcdTRlMDBcdTU4ZjFcdTZlYTJcdTkwMzhcdTdhMzJcdTgzMjhcdTgyOGJcdTljMmZcdTUxNDFcdTUzNzBcdTU0YmRcdTU0ZTFcdTU2ZTBcdTU5ZmJcdTVmMTVcdTk4ZjJcdTZkZWJc'@; put 'dTgwZTRcdTg1MmQiXSxbIjg5NDAiLCJcdTk2NjJcdTk2NzBcdTk2YTBcdTk3ZmJcdTU0MGJcdTUzZjNcdTViODdcdTcwY2ZcdTdmYmRcdThmYzJcdTk2ZThcdTUzNmZcdTlkNWNcdTdhYmFcdTRlMTFcdTc4OTNcdTgxZmNcdTZlMjZcdTU2MThcdTU1MDRcdTZiMWRcdTg1MWFcdTljM2JcdTU5'@; put 'ZTVcdTUzYTlcdTZkNjZcdTc0ZGNcdTk1OGZcdTU2NDJcdTRlOTFcdTkwNGJcdTk2ZjJcdTgzNGZcdTk5MGNcdTUzZTFcdTU1YjZcdTViMzBcdTVmNzFcdTY2MjBcdTY2ZjNcdTY4MDRcdTZjMzhcdTZjZjNcdTZkMjlcdTc0NWJcdTc2YzhcdTdhNGVcdTk4MzRcdTgyZjFcdTg4NWJcdThhNjBc'@; put 'dTkyZWRcdTZkYjJcdTc1YWJcdTc2Y2FcdTk5YzVcdTYwYTZcdThiMDFcdThkOGFcdTk1YjJcdTY5OGVcdTUzYWRcdTUxODYiXSxbIjg5ODAiLCJcdTU3MTJcdTU4MzBcdTU5NDRcdTViYjRcdTVlZjZcdTYwMjhcdTYzYTlcdTYzZjRcdTZjYmZcdTZmMTRcdTcwOGVcdTcxMTRcdTcxNTlcdTcx'@; put 'ZDVcdTczM2ZcdTdlMDFcdTgyNzZcdTgyZDFcdTg1OTdcdTkwNjBcdTkyNWJcdTlkMWJcdTU4NjlcdTY1YmNcdTZjNWFcdTc1MjVcdTUxZjlcdTU5MmVcdTU5NjVcdTVmODBcdTVmZGNcdTYyYmNcdTY1ZmFcdTZhMmFcdTZiMjdcdTZiYjRcdTczOGJcdTdmYzFcdTg5NTZcdTlkMmNcdTlkMGVc'@; put 'dTllYzRcdTVjYTFcdTZjOTZcdTgzN2JcdTUxMDRcdTVjNGJcdTYxYjZcdTgxYzZcdTY4NzZcdTcyNjFcdTRlNTlcdTRmZmFcdTUzNzhcdTYwNjlcdTZlMjlcdTdhNGZcdTk3ZjNcdTRlMGJcdTUzMTZcdTRlZWVcdTRmNTVcdTRmM2RcdTRmYTFcdTRmNzNcdTUyYTBcdTUzZWZcdTU2MDlcdTU5'@; put 'MGZcdTVhYzFcdTViYjZcdTViZTFcdTc5ZDFcdTY2ODdcdTY3OWNcdTY3YjZcdTZiNGNcdTZjYjNcdTcwNmJcdTczYzJcdTc5OGRcdTc5YmVcdTdhM2NcdTdiODdcdTgyYjFcdTgyZGJcdTgzMDRcdTgzNzdcdTgzZWZcdTgzZDNcdTg3NjZcdThhYjJcdTU2MjlcdThjYThcdThmZTZcdTkwNGVc'@; put 'dTk3MWVcdTg2OGFcdTRmYzRcdTVjZThcdTYyMTFcdTcyNTlcdTc1M2JcdTgxZTVcdTgyYmRcdTg2ZmVcdThjYzBcdTk2YzVcdTk5MTNcdTk5ZDVcdTRlY2JcdTRmMWFcdTg5ZTNcdTU2ZGVcdTU4NGFcdTU4Y2FcdTVlZmJcdTVmZWJcdTYwMmFcdTYwOTRcdTYwNjJcdTYxZDBcdTYyMTJcdTYy'@; put 'ZDBcdTY1MzkiXSxbIjhhNDAiLCJcdTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVcdThjOWRcdTUxZjFcdTUyYmVcdTU5MTZcdTU0YjNcdTViYjNcdTVkMTZcdTYxNjhcdTY5ODJcdTZkYWZcdTc4OGRcdTg0Y2Jc'@; put 'dTg4NTdcdThhNzJcdTkzYTdcdTlhYjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYyZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZiYmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5OWFcdTg5ZDJcdThkNmJcdThmMDNcdTkw'@; put 'ZWRcdTk1YTNcdTk2OTRcdTk3NjlcdTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmIiXSxbIjhhODAiLCJcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZcdTUyNzJcdTU1OWRcdTYwNzBcdTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFcdTg0NWJcdTg5MTBcdThmNDRc'@; put 'dTRlMTRcdTljMzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzFcdTdjYTVcdTUyMDhcdTgyYzVcdTc0ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTViZDJcdTUyMGFcdTUyZDhcdTUy'@; put 'ZTdcdTVkZmJcdTU1OWFcdTU4MmFcdTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJcdTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNcdTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVcdTc0YjBcdTc1MThcdTc2ZTNc'@; put 'dTc3MGJcdTdhZmZcdTdiYTFcdTdjMjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVjYjhcdTVkY2NcdTczYTlcdTc2'@; put 'NGNcdTc3M2NcdTVjYTlcdTdmZWJcdThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdcdTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2VcdTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdcdTY1ZTJcdTY3MWZcdTY4Y2Jc'@; put 'dTY4YzQiXSxbIjhiNDAiLCJcdTZhNWZcdTVlMzBcdTZiYzVcdTZjMTdcdTZjN2RcdTc1N2ZcdTc5NDhcdTViNjNcdTdhMDBcdTdkMDBcdTVmYmRcdTg5OGZcdThhMThcdThjYjRcdThkNzdcdThlY2NcdThmMWRcdTk4ZTJcdTlhMGVcdTliM2NcdTRlODBcdTUwN2RcdTUxMDBcdTU5OTNcdTVi'@; put 'OWNcdTYyMmZcdTYyODBcdTY0ZWNcdTZiM2FcdTcyYTBcdTc1OTFcdTc5NDdcdTdmYTlcdTg3ZmJcdThhYmNcdThiNzBcdTYzYWNcdTgzY2FcdTk3YTBcdTU0MDlcdTU0MDNcdTU1YWJcdTY4NTRcdTZhNThcdThhNzBcdTc4MjdcdTY3NzVcdTllY2RcdTUzNzRcdTViYTJcdTgxMWFcdTg2NTBc'@; put 'dTkwMDZcdTRlMThcdTRlNDVcdTRlYzdcdTRmMTFcdTUzY2FcdTU0MzhcdTViYWVcdTVmMTNcdTYwMjVcdTY1NTEiXSxbIjhiODAiLCJcdTY3M2RcdTZjNDJcdTZjNzJcdTZjZTNcdTcwNzhcdTc0MDNcdTdhNzZcdTdhYWVcdTdiMDhcdTdkMWFcdTdjZmVcdTdkNjZcdTY1ZTdcdTcyNWJcdTUz'@; put 'YmJcdTVjNDVcdTVkZThcdTYyZDJcdTYyZTBcdTYzMTlcdTZlMjBcdTg2NWFcdThhMzFcdThkZGRcdTkyZjhcdTZmMDFcdTc5YTZcdTliNWFcdTRlYThcdTRlYWJcdTRlYWNcdTRmOWJcdTRmYTBcdTUwZDFcdTUxNDdcdTdhZjZcdTUxNzFcdTUxZjZcdTUzNTRcdTUzMjFcdTUzN2ZcdTUzZWJc'@; put 'dTU1YWNcdTU4ODNcdTVjZTFcdTVmMzdcdTVmNGFcdTYwMmZcdTYwNTBcdTYwNmRcdTYzMWZcdTY1NTlcdTZhNGJcdTZjYzFcdTcyYzJcdTcyZWRcdTc3ZWZcdTgwZjhcdTgxMDVcdTgyMDhcdTg1NGVcdTkwZjdcdTkzZTFcdTk3ZmZcdTk5NTdcdTlhNWFcdTRlZjBcdTUxZGRcdTVjMmRcdTY2'@; put 'ODFcdTY5NmRcdTVjNDBcdTY2ZjJcdTY5NzVcdTczODlcdTY4NTBcdTdjODFcdTUwYzVcdTUyZTRcdTU3NDdcdTVkZmVcdTkzMjZcdTY1YTRcdTZiMjNcdTZiM2RcdTc0MzRcdTc5ODFcdTc5YmRcdTdiNGJcdTdkY2FcdTgyYjlcdTgzY2NcdTg4N2ZcdTg5NWZcdThiMzlcdThmZDFcdTkxZDFc'@; put 'dTU0MWZcdTkyODBcdTRlNWRcdTUwMzZcdTUzZTVcdTUzM2FcdTcyZDdcdTczOTZcdTc3ZTlcdTgyZTZcdThlYWZcdTk5YzZcdTk5YzhcdTk5ZDJcdTUxNzdcdTYxMWFcdTg2NWVcdTU1YjBcdTdhN2FcdTUwNzZcdTViZDNcdTkwNDdcdTk2ODVcdTRlMzJcdTZhZGJcdTkxZTdcdTVjNTFcdTVj'@; put 'NDgiXSxbIjhjNDAiLCJcdTYzOThcdTdhOWZcdTZjOTNcdTk3NzRcdThmNjFcdTdhYWFcdTcxOGFcdTk2ODhcdTdjODJcdTY4MTdcdTdlNzBcdTY4NTFcdTkzNmNcdTUyZjJcdTU0MWJcdTg1YWJcdThhMTNcdTdmYTRcdThlY2RcdTkwZTFcdTUzNjZcdTg4ODhcdTc5NDFcdTRmYzJcdTUwYmVc'@; put 'dTUyMTFcdTUxNDRcdTU1NTNcdTU3MmRcdTczZWFcdTU3OGJcdTU5NTFcdTVmNjJcdTVmODRcdTYwNzVcdTYxNzZcdTYxNjdcdTYxYTlcdTYzYjJcdTY0M2FcdTY1NmNcdTY2NmZcdTY4NDJcdTZlMTNcdTc1NjZcdTdhM2RcdTdjZmJcdTdkNGNcdTdkOTlcdTdlNGJcdTdmNmJcdTgzMGVcdTgz'@; put 'NGFcdTg2Y2RcdThhMDhcdThhNjNcdThiNjZcdThlZmRcdTk4MWFcdTlkOGZcdTgyYjhcdThmY2VcdTliZTgiXSxbIjhjODAiLCJcdTUyODdcdTYyMWZcdTY0ODNcdTZmYzBcdTk2OTlcdTY4NDFcdTUwOTFcdTZiMjBcdTZjN2FcdTZmNTRcdTdhNzRcdTdkNTBcdTg4NDBcdThhMjNcdTY3MDhc'@; put 'dTRlZjZcdTUwMzlcdTUwMjZcdTUwNjVcdTUxN2NcdTUyMzhcdTUyNjNcdTU1YTdcdTU3MGZcdTU4MDVcdTVhY2NcdTVlZmFcdTYxYjJcdTYxZjhcdTYyZjNcdTYzNzJcdTY5MWNcdTZhMjlcdTcyN2RcdTcyYWNcdTczMmVcdTc4MTRcdTc4NmZcdTdkNzlcdTc3MGNcdTgwYTlcdTg5OGJcdThi'@; put 'MTlcdThjZTJcdThlZDJcdTkwNjNcdTkzNzVcdTk2N2FcdTk4NTVcdTlhMTNcdTllNzhcdTUxNDNcdTUzOWZcdTUzYjNcdTVlN2JcdTVmMjZcdTZlMWJcdTZlOTBcdTczODRcdTczZmVcdTdkNDNcdTgyMzdcdThhMDBcdThhZmFcdTk2NTBcdTRlNGVcdTUwMGJcdTUzZTRcdTU0N2NcdTU2ZmFc'@; put 'dTU5ZDFcdTViNjRcdTVkZjFcdTVlYWJcdTVmMjdcdTYyMzhcdTY1NDVcdTY3YWZcdTZlNTZcdTcyZDBcdTdjY2FcdTg4YjRcdTgwYTFcdTgwZTFcdTgzZjBcdTg2NGVcdThhODdcdThkZThcdTkyMzdcdTk2YzdcdTk4NjdcdTlmMTNcdTRlOTRcdTRlOTJcdTRmMGRcdTUzNDhcdTU0NDlcdTU0'@; put 'M2VcdTVhMmZcdTVmOGNcdTVmYTFcdTYwOWZcdTY4YTdcdTZhOGVcdTc0NWFcdTc4ODFcdThhOWVcdThhYTRcdThiNzdcdTkxOTBcdTRlNWVcdTliYzlcdTRlYTRcdTRmN2NcdTRmYWZcdTUwMTlcdTUwMTZcdTUxNDlcdTUxNmNcdTUyOWZcdTUyYjlcdTUyZmVcdTUzOWFcdTUzZTNcdTU0MTEi'@; put 'XSxbIjhkNDAiLCJcdTU0MGVcdTU1ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVkZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVlOWFcdTVlYjdcdTVmMThcdTYwNTJcdTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJcdTY2NDNcdTY2ZjRcdTY3'@; put 'NmRcdTY4MjFcdTY4OTdcdTY5Y2JcdTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNcdTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThcdTdkNWVcdTdkYjFcdTgwMTVcdTgwMDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgzNTJcdTg4NGNcdTg4NjFc'@; put 'dThiMWJcdThjYTJcdThjZmNcdTkwY2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGQiXSxbIjhkODAiLCJcdTk4MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUyNWJcdTUyYWJcdTUzZjdcdTU0MDhcdTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZcdTllYjlcdTUxNGJcdTUy'@; put 'M2JcdTU0NGFcdTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBcdTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFcdTlhYThcdTcyZGJcdThmYmNcdTZiNjRcdTk4MDNcdTRlY2FcdTU2ZjBcdTU3NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2MGZcdTY2MDZcdTY4Mzlc'@; put 'dTY4YjFcdTZkZjdcdTc1ZDVcdTdkM2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVkZWVcdTY3ZmJcdTZjOTlcdTc0NzNcdTc4MDJcdThhNTBcdTkzOTZcdTg4ZGZcdTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNcdTUxOGRcdTY3MDBcdTU0'@; put 'YzlcdTU4NWVcdTU5YmJcdTViYjBcdTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBcdTc4MTVcdTc4MjZcdTc5NmRcdTY1OGVcdTdkMzBcdTgzZGNcdTg4YzFcdThmMDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdmNmFcdThjYTFcdTUxYjRc'@; put 'dTU3NDJcdTk2MmFcdTU4M2FcdTY5OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0OGJcdTY0M2VcdTY2MjhcdTY3MTRcdTY3ZjVcdTdhODRcdTdiNTZcdTdkMjJcdTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlcdTUxOGFcdTUyMzciXSxb'@; put 'IjhlNDAiLCJcdTViZGZcdTYyZjZcdTY0YWVcdTY0ZTZcdTY3MmRcdTZiYmFcdTg1YTlcdTk2ZDFcdTc2OTBcdTliZDZcdTYzNGNcdTkzMDZcdTliYWJcdTc2YmZcdTY2NTJcdTRlMDlcdTUwOThcdTUzYzJcdTVjNzFcdTYwZThcdTY0OTJcdTY1NjNcdTY4NWZcdTcxZTZcdTczY2FcdTc1MjNc'@; put 'dTdiOTdcdTdlODJcdTg2OTVcdThiODNcdThjZGJcdTkxNzhcdTk5MTBcdTY1YWNcdTY2YWJcdTZiOGJcdTRlZDVcdTRlZDRcdTRmM2FcdTRmN2ZcdTUyM2FcdTUzZjhcdTUzZjJcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5Y2JcdTU5YzlcdTU5ZmZcdTViNTBcdTVjNGRcdTVlMDJcdTVlMmJcdTVm'@; put 'ZDdcdTYwMWRcdTYzMDdcdTY1MmZcdTViNWNcdTY1YWZcdTY1YmRcdTY1ZThcdTY3OWRcdTZiNjIiXSxbIjhlODAiLCJcdTZiN2JcdTZjMGZcdTczNDVcdTc5NDlcdTc5YzFcdTdjZjhcdTdkMTlcdTdkMmJcdTgwYTJcdTgxMDJcdTgxZjNcdTg5OTZcdThhNWVcdThhNjlcdThhNjZcdThhOGNc'@; put 'dThhZWVcdThjYzdcdThjZGNcdTk2Y2NcdTk4ZmNcdTZiNmZcdTRlOGJcdTRmM2NcdTRmOGRcdTUxNTBcdTViNTdcdTViZmFcdTYxNDhcdTYzMDFcdTY2NDJcdTZiMjFcdTZlY2JcdTZjYmJcdTcyM2VcdTc0YmRcdTc1ZDRcdTc4YzFcdTc5M2FcdTgwMGNcdTgwMzNcdTgxZWFcdTg0OTRcdThm'@; put 'OWVcdTZjNTBcdTllN2ZcdTVmMGZcdThiNThcdTlkMmJcdTdhZmFcdThlZjhcdTViOGRcdTk2ZWJcdTRlMDNcdTUzZjFcdTU3ZjdcdTU5MzFcdTVhYzlcdTViYTRcdTYwODlcdTZlN2ZcdTZmMDZcdTc1YmVcdThjZWFcdTViOWZcdTg1MDBcdTdiZTBcdTUwNzJcdTY3ZjRcdTgyOWRcdTVjNjFc'@; put 'dTg1NGFcdTdlMWVcdTgyMGVcdTUxOTlcdTVjMDRcdTYzNjhcdThkNjZcdTY1OWNcdTcxNmVcdTc5M2VcdTdkMTdcdTgwMDVcdThiMWRcdThlY2FcdTkwNmVcdTg2YzdcdTkwYWFcdTUwMWZcdTUyZmFcdTVjM2FcdTY3NTNcdTcwN2NcdTcyMzVcdTkxNGNcdTkxYzhcdTkzMmJcdTgyZTVcdTVi'@; put 'YzJcdTVmMzFcdTYwZjlcdTRlM2JcdTUzZDZcdTViODhcdTYyNGJcdTY3MzFcdTZiOGFcdTcyZTlcdTczZTBcdTdhMmVcdTgxNmJcdThkYTNcdTkxNTJcdTk5OTZcdTUxMTJcdTUzZDdcdTU0NmFcdTViZmZcdTYzODhcdTZhMzlcdTdkYWNcdTk3MDBcdTU2ZGFcdTUzY2VcdTU0NjgiXSxbIjhm'@; put 'NDAiLCJcdTViOTdcdTVjMzFcdTVkZGVcdTRmZWVcdTYxMDFcdTYyZmVcdTZkMzJcdTc5YzBcdTc5Y2JcdTdkNDJcdTdlNGRcdTdmZDJcdTgxZWRcdTgyMWZcdTg0OTBcdTg4NDZcdTg5NzJcdThiOTBcdThlNzRcdThmMmZcdTkwMzFcdTkxNGJcdTkxNmNcdTk2YzZcdTkxOWNcdTRlYzBcdTRm'@; put 'NGZcdTUxNDVcdTUzNDFcdTVmOTNcdTYyMGVcdTY3ZDRcdTZjNDFcdTZlMGJcdTczNjNcdTdlMjZcdTkxY2RcdTkyODNcdTUzZDRcdTU5MTlcdTViYmZcdTZkZDFcdTc5NWRcdTdlMmVcdTdjOWJcdTU4N2VcdTcxOWZcdTUxZmFcdTg4NTNcdThmZjBcdTRmY2FcdTVjZmJcdTY2MjVcdTc3YWNc'@; put 'dTdhZTNcdTgyMWNcdTk5ZmZcdTUxYzZcdTVmYWFcdTY1ZWNcdTY5NmZcdTZiODlcdTZkZjMiXSxbIjhmODAiLCJcdTZlOTZcdTZmNjRcdTc2ZmVcdTdkMTRcdTVkZTFcdTkwNzVcdTkxODdcdTk4MDZcdTUxZTZcdTUyMWRcdTYyNDBcdTY2OTFcdTY2ZDlcdTZlMWFcdTVlYjZcdTdkZDJcdTdm'@; put 'NzJcdTY2ZjhcdTg1YWZcdTg1ZjdcdThhZjhcdTUyYTlcdTUzZDlcdTU5NzNcdTVlOGZcdTVmOTBcdTYwNTVcdTkyZTRcdTk2NjRcdTUwYjdcdTUxMWZcdTUyZGRcdTUzMjBcdTUzNDdcdTUzZWNcdTU0ZThcdTU1NDZcdTU1MzFcdTU2MTdcdTU5NjhcdTU5YmVcdTVhM2NcdTViYjVcdTVjMDZc'@; put 'dTVjMGZcdTVjMTFcdTVjMWFcdTVlODRcdTVlOGFcdTVlZTBcdTVmNzBcdTYyN2ZcdTYyODRcdTYyZGJcdTYzOGNcdTYzNzdcdTY2MDdcdTY2MGNcdTY2MmRcdTY2NzZcdTY3N2VcdTY4YTJcdTZhMWZcdTZhMzVcdTZjYmNcdTZkODhcdTZlMDlcdTZlNThcdTcxM2NcdTcxMjZcdTcxNjdcdTc1'@; put 'YzdcdTc3MDFcdTc4NWRcdTc5MDFcdTc5NjVcdTc5ZjBcdTdhZTBcdTdiMTFcdTdjYTdcdTdkMzlcdTgwOTZcdTgzZDZcdTg0OGJcdTg1NDlcdTg4NWRcdTg4ZjNcdThhMWZcdThhM2NcdThhNTRcdThhNzNcdThjNjFcdThjZGVcdTkxYTRcdTkyNjZcdTkzN2VcdTk0MThcdTk2OWNcdTk3OThc'@; put 'dTRlMGFcdTRlMDhcdTRlMWVcdTRlNTdcdTUxOTdcdTUyNzBcdTU3Y2VcdTU4MzRcdTU4Y2NcdTViMjJcdTVlMzhcdTYwYzVcdTY0ZmVcdTY3NjFcdTY3NTZcdTZkNDRcdTcyYjZcdTc1NzNcdTdhNjNcdTg0YjhcdThiNzJcdTkxYjhcdTkzMjBcdTU2MzFcdTU3ZjRcdTk4ZmUiXSxbIjkwNDAi'@; put 'LCJcdTYyZWRcdTY5MGRcdTZiOTZcdTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJcdTg5ZTZcdTk4ZGZcdTg3NTVcdThmYjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVcdTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4ZWVcdTY5OWJcdTZkNzhc'@; put 'dTZkZjFcdTc1MzNcdTc1YjlcdTc3MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgxZTNcdTgyYWZcdTg1YWFcdTg5YWFcdThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkxZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2RcdTgxNGVcdThhMGFcdThm'@; put 'YzVcdTk2NjNcdTk3NmRcdTdiMjVcdThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNcdTUzYTgiXSxbIjkwODAiLCJcdTkwMTdcdTU0MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFcdTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkzMThcdTk2OGZcdTc0NWVc'@; put 'dTlhYzRcdTVkMDdcdTVkNjlcdTY1NzBcdTY3YTJcdThkYThcdTk2ZGJcdTYzNmVcdTY3NDlcdTY5MTlcdTgzYzVcdTk4MTdcdTk2YzBcdTg4ZmVcdTZmODRcdTY0N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNcdTVmODFcdTYwMjdcdTYy'@; put 'MTBcdTY1M2ZcdTY1NzRcdTY2MWZcdTY2NzRcdTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVcdTcyNzJcdTc1MWZcdTc2ZGJcdTdjYmVcdTgwNTZcdTU4ZjBcdTg4ZmRcdTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdhMGVcdTgxMDZcdTk2YmJc'@; put 'dTVlMmRcdTYwZGNcdTYyMWFcdTY1YTVcdTY2MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdjNGRcdTdlM2VcdTgxMGFcdThjYWNcdThkNjRcdThkZTFcdThlNWZcdTc4YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNcdTk2ZWFcdTdkNzZcdTgy'@; put 'MGNcdTg3NDlcdTRlZDlcdTUxNDhcdTUzNDNcdTUzNjBcdTViYTNcdTVjMDJcdTVjMTZcdTVkZGRcdTYyMjZcdTYyNDdcdTY0YjBcdTY4MTNcdTY4MzRcdTZjYzlcdTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdkZGEiXSxbIjkxNDAiLCJc'@; put 'dTdlNGFcdTdmYThcdTgxN2FcdTgyMWJcdTgyMzlcdTg1YTZcdThhNmVcdThjY2VcdThkZjVcdTkwNzhcdTkwNzdcdTkyYWRcdTkyOTFcdTk1ODNcdTliYWVcdTUyNGRcdTU1ODRcdTZmMzhcdTcxMzZcdTUxNjhcdTc5ODVcdTdlNTVcdTgxYjNcdTdjY2VcdTU2NGNcdTU4NTFcdTVjYThcdTYz'@; put 'YWFcdTY2ZmVcdTY2ZmRcdTY5NWFcdTcyZDlcdTc1OGZcdTc1OGVcdTc5MGVcdTc5NTZcdTc5ZGZcdTdjOTdcdTdkMjBcdTdkNDRcdTg2MDdcdThhMzRcdTk2M2JcdTkwNjFcdTlmMjBcdTUwZTdcdTUyNzVcdTUzY2NcdTUzZTJcdTUwMDlcdTU1YWFcdTU4ZWVcdTU5NGZcdTcyM2RcdTViOGJc'@; put 'dTVjNjRcdTUzMWRcdTYwZTNcdTYwZjNcdTYzNWNcdTYzODNcdTYzM2ZcdTYzYmIiXSxbIjkxODAiLCJcdTY0Y2RcdTY1ZTlcdTY2ZjlcdTVkZTNcdTY5Y2RcdTY5ZmRcdTZmMTVcdTcxZTVcdTRlODlcdTc1ZTlcdTc2ZjhcdTdhOTNcdTdjZGZcdTdkY2ZcdTdkOWNcdTgwNjFcdTgzNDlcdTgz'@; put 'NThcdTg0NmNcdTg0YmNcdTg1ZmJcdTg4YzVcdThkNzBcdTkwMDFcdTkwNmRcdTkzOTdcdTk3MWNcdTlhMTJcdTUwY2ZcdTU4OTdcdTYxOGVcdTgxZDNcdTg1MzVcdThkMDhcdTkwMjBcdTRmYzNcdTUwNzRcdTUyNDdcdTUzNzNcdTYwNmZcdTYzNDlcdTY3NWZcdTZlMmNcdThkYjNcdTkwMWZc'@; put 'dTRmZDdcdTVjNWVcdThjY2FcdTY1Y2ZcdTdkOWFcdTUzNTJcdTg4OTZcdTUxNzZcdTYzYzNcdTViNThcdTViNmJcdTVjMGFcdTY0MGRcdTY3NTFcdTkwNWNcdTRlZDZcdTU5MWFcdTU5MmFcdTZjNzBcdThhNTFcdTU1M2VcdTU4MTVcdTU5YTVcdTYwZjBcdTYyNTNcdTY3YzFcdTgyMzVcdTY5'@; put 'NTVcdTk2NDBcdTk5YzRcdTlhMjhcdTRmNTNcdTU4MDZcdTViZmVcdTgwMTBcdTVjYjFcdTVlMmZcdTVmODVcdTYwMjBcdTYxNGJcdTYyMzRcdTY2ZmZcdTZjZjBcdTZlZGVcdTgwY2VcdTgxN2ZcdTgyZDRcdTg4OGJcdThjYjhcdTkwMDBcdTkwMmVcdTk2OGFcdTllZGJcdTliZGJcdTRlZTNc'@; put 'dTUzZjBcdTU5MjdcdTdiMmNcdTkxOGRcdTk4NGNcdTlkZjlcdTZlZGRcdTcwMjdcdTUzNTNcdTU1NDRcdTViODVcdTYyNThcdTYyOWVcdTYyZDNcdTZjYTJcdTZmZWZcdTc0MjJcdThhMTdcdTk0MzhcdTZmYzFcdThhZmVcdTgzMzhcdTUxZTdcdTg2ZjhcdTUzZWEiXSxbIjkyNDAiLCJcdTUz'@; put 'ZTlcdTRmNDZcdTkwNTRcdThmYjBcdTU5NmFcdTgxMzFcdTVkZmRcdTdhZWFcdThmYmZcdTY4ZGFcdThjMzdcdTcyZjhcdTljNDhcdTZhM2RcdThhYjBcdTRlMzlcdTUzNThcdTU2MDZcdTU3NjZcdTYyYzVcdTYzYTJcdTY1ZTZcdTZiNGVcdTZkZTFcdTZlNWJcdTcwYWRcdTc3ZWRcdTdhZWZc'@; put 'dTdiYWFcdTdkYmJcdTgwM2RcdTgwYzZcdTg2Y2JcdThhOTVcdTkzNWJcdTU2ZTNcdTU4YzdcdTVmM2VcdTY1YWRcdTY2OTZcdTZhODBcdTZiYjVcdTc1MzdcdThhYzdcdTUwMjRcdTc3ZTVcdTU3MzBcdTVmMWJcdTYwNjVcdTY2N2FcdTZjNjBcdTc1ZjRcdTdhMWFcdTdmNmVcdTgxZjRcdTg3'@; put 'MThcdTkwNDVcdTk5YjNcdTdiYzlcdTc1NWNcdTdhZjlcdTdiNTFcdTg0YzQiXSxbIjkyODAiLCJcdTkwMTBcdTc5ZTlcdTdhOTJcdTgzMzZcdTVhZTFcdTc3NDBcdTRlMmRcdTRlZjJcdTViOTlcdTVmZTBcdTYyYmRcdTY2M2NcdTY3ZjFcdTZjZThcdTg2NmJcdTg4NzdcdThhM2JcdTkxNGVc'@; put 'dTkyZjNcdTk5ZDBcdTZhMTdcdTcwMjZcdTczMmFcdTgyZTdcdTg0NTdcdThjYWZcdTRlMDFcdTUxNDZcdTUxY2JcdTU1OGJcdTViZjVcdTVlMTZcdTVlMzNcdTVlODFcdTVmMTRcdTVmMzVcdTVmNmJcdTVmYjRcdTYxZjJcdTYzMTFcdTY2YTJcdTY3MWRcdTZmNmVcdTcyNTJcdTc1M2FcdTc3'@; put 'M2FcdTgwNzRcdTgxMzlcdTgxNzhcdTg3NzZcdThhYmZcdThhZGNcdThkODVcdThkZjNcdTkyOWFcdTk1NzdcdTk4MDJcdTljZTVcdTUyYzVcdTYzNTdcdTc2ZjRcdTY3MTVcdTZjODhcdTczY2RcdThjYzNcdTkzYWVcdTk2NzNcdTZkMjVcdTU4OWNcdTY5MGVcdTY5Y2NcdThmZmRcdTkzOWFc'@; put 'dTc1ZGJcdTkwMWFcdTU4NWFcdTY4MDJcdTYzYjRcdTY5ZmJcdTRmNDNcdTZmMmNcdTY3ZDhcdThmYmJcdTg1MjZcdTdkYjRcdTkzNTRcdTY5M2ZcdTZmNzBcdTU3NmFcdTU4ZjdcdTViMmNcdTdkMmNcdTcyMmFcdTU0MGFcdTkxZTNcdTlkYjRcdTRlYWRcdTRmNGVcdTUwNWNcdTUwNzVcdTUy'@; put 'NDNcdThjOWVcdTU0NDhcdTU4MjRcdTViOWFcdTVlMWRcdTVlOTVcdTVlYWRcdTVlZjdcdTVmMWZcdTYwOGNcdTYyYjVcdTYzM2FcdTYzZDBcdTY4YWZcdTZjNDBcdTc4ODdcdTc5OGVcdTdhMGJcdTdkZTBcdTgyNDdcdThhMDJcdThhZTZcdThlNDRcdTkwMTMiXSxbIjkzNDAiLCJcdTkwYjhc'@; put 'dTkxMmRcdTkxZDhcdTlmMGVcdTZjZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVcdTVlOTdcdTZkZmJcdTdlOGZcdTc1MWNcdThj'@; put 'YmNcdThlZTJcdTk4NWJcdTcwYjlcdTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJcdTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkwZmRcdTkzNGRcdTc4MjVcdTc4M2FcdTUyYWFc'@; put 'dTVlYTZcdTU3MWZcdTU5NzRcdTYwMTJcdTUwMTJcdTUxNWFcdTUxYWMiXSxbIjkzODAiLCJcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVkOGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNcdTY4ZGZcdTc2ZDdcdTZkZDhcdTZl'@; put 'NmZcdTZkOWJcdTcwNmZcdTcxYzhcdTVmNTNcdTc1ZDhcdTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzBcdTg0NjNcdTg1NjlcdTg1ZTRcdThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4MmRcdTlhMzBcdTk1ZDhcdTUwY2Rc'@; put 'dTUyZDVcdTU0MGNcdTU4MDJcdTVjMGVcdTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUzM2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJcdTcyZWNcdThhYWRcdTY4MDNcdTZh'@; put 'NjFcdTUxZjhcdTdhODFcdTY5MzRcdTVjNGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFcdTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRlNGRcdTUxZWFcdTg1OTlcdThiMGVc'@; put 'dTcwNThcdTYzN2FcdTkzNGJcdTY5NjJcdTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThmZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjUiXSxbIjk0NDAiLCJcdTU5ODJcdTVj'@; put 'M2ZcdTk3ZWVcdTRlZmJcdTU5OGFcdTVmY2RcdThhOGRcdTZmZTFcdTc5YjBcdTc5NjJcdTViZTdcdTg0NzFcdTczMmJcdTcxYjFcdTVlNzRcdTVmZjVcdTYzN2JcdTY0OWFcdTcxYzNcdTdjOThcdTRlNDNcdTVlZmNcdTRlNGJcdTU3ZGNcdTU2YTJcdTYwYTlcdTZmYzNcdTdkMGRcdTgwZmRc'@; put 'dTgxMzNcdTgxYmZcdThmYjJcdTg5OTdcdTg2YTRcdTVkZjRcdTYyOGFcdTY0YWRcdTg5ODdcdTY3NzdcdTZjZTJcdTZkM2VcdTc0MzZcdTc4MzRcdTVhNDZcdTdmNzVcdTgyYWRcdTk5YWNcdTRmZjNcdTVlYzNcdTYyZGRcdTYzOTJcdTY1NTdcdTY3NmZcdTc2YzNcdTcyNGNcdTgwY2NcdTgw'@; put 'YmFcdThmMjlcdTkxNGRcdTUwMGRcdTU3ZjlcdTVhOTJcdTY4ODUiXSxbIjk0ODAiLCJcdTY5NzNcdTcxNjRcdTcyZmRcdThjYjdcdTU4ZjJcdThjZTBcdTk2NmFcdTkwMTlcdTg3N2ZcdTc5ZTRcdTc3ZTdcdTg0MjlcdTRmMmZcdTUyNjVcdTUzNWFcdTYyY2RcdTY3Y2ZcdTZjY2FcdTc2N2Rc'@; put 'dTdiOTRcdTdjOTVcdTgyMzZcdTg1ODRcdThmZWJcdTY2ZGRcdTZmMjBcdTcyMDZcdTdlMWJcdTgzYWJcdTk5YzFcdTllYTZcdTUxZmRcdTdiYjFcdTc4NzJcdTdiYjhcdTgwODdcdTdiNDhcdTZhZThcdTVlNjFcdTgwOGNcdTc1NTFcdTc1NjBcdTUxNmJcdTkyNjJcdTZlOGNcdTc2N2FcdTkx'@; put 'OTdcdTlhZWFcdTRmMTBcdTdmNzBcdTYyOWNcdTdiNGZcdTk1YTVcdTljZTlcdTU2N2FcdTU4NTlcdTg2ZTRcdTk2YmNcdTRmMzRcdTUyMjRcdTUzNGFcdTUzY2RcdTUzZGJcdTVlMDZcdTY0MmNcdTY1OTFcdTY3N2ZcdTZjM2VcdTZjNGVcdTcyNDhcdTcyYWZcdTczZWRcdTc1NTRcdTdlNDFc'@; put 'dTgyMmNcdTg1ZTlcdThjYTlcdTdiYzRcdTkxYzZcdTcxNjlcdTk4MTJcdTk4ZWZcdTYzM2RcdTY2NjlcdTc1NmFcdTc2ZTRcdTc4ZDBcdTg1NDNcdTg2ZWVcdTUzMmFcdTUzNTFcdTU0MjZcdTU5ODNcdTVlODdcdTVmN2NcdTYwYjJcdTYyNDlcdTYyNzlcdTYyYWJcdTY1OTBcdTZiZDRcdTZj'@; put 'Y2NcdTc1YjJcdTc2YWVcdTc4OTFcdTc5ZDhcdTdkY2JcdTdmNzdcdTgwYTVcdTg4YWJcdThhYjlcdThjYmJcdTkwN2ZcdTk3NWVcdTk4ZGJcdTZhMGJcdTdjMzhcdTUwOTlcdTVjM2VcdTVmYWVcdTY3ODdcdTZiZDhcdTc0MzVcdTc3MDlcdTdmOGUiXSxbIjk1NDAiLCJcdTlmM2JcdTY3Y2Fc'@; put 'dTdhMTdcdTUzMzlcdTc1OGJcdTlhZWRcdTVmNjZcdTgxOWRcdTgzZjFcdTgwOThcdTVmM2NcdTVmYzVcdTc1NjJcdTdiNDZcdTkwM2NcdTY4NjdcdTU5ZWJcdTVhOWJcdTdkMTBcdTc2N2VcdThiMmNcdTRmZjVcdTVmNmFcdTZhMTlcdTZjMzdcdTZmMDJcdTc0ZTJcdTc5NjhcdTg4NjhcdThh'@; put 'NTVcdThjNzlcdTVlZGZcdTYzY2ZcdTc1YzVcdTc5ZDJcdTgyZDdcdTkzMjhcdTkyZjJcdTg0OWNcdTg2ZWRcdTljMmRcdTU0YzFcdTVmNmNcdTY1OGNcdTZkNWNcdTcwMTVcdThjYTdcdThjZDNcdTk4M2JcdTY1NGZcdTc0ZjZcdTRlMGRcdTRlZDhcdTU3ZTBcdTU5MmJcdTVhNjZcdTViY2Nc'@; put 'dTUxYThcdTVlMDNcdTVlOWNcdTYwMTZcdTYyNzZcdTY1NzciXSxbIjk1ODAiLCJcdTY1YTdcdTY2NmVcdTZkNmVcdTcyMzZcdTdiMjZcdTgxNTBcdTgxOWFcdTgyOTlcdThiNWNcdThjYTBcdThjZTZcdThkNzRcdTk2MWNcdTk2NDRcdTRmYWVcdTY0YWJcdTZiNjZcdTgyMWVcdTg0NjFcdTg1'@; put 'NmFcdTkwZThcdTVjMDFcdTY5NTNcdTk4YThcdTg0N2FcdTg1NTdcdTRmMGZcdTUyNmZcdTVmYTlcdTVlNDVcdTY3MGRcdTc5OGZcdTgxNzlcdTg5MDdcdTg5ODZcdTZkZjVcdTVmMTdcdTYyNTVcdTZjYjhcdTRlY2ZcdTcyNjlcdTliOTJcdTUyMDZcdTU0M2JcdTU2NzRcdTU4YjNcdTYxYTRc'@; put 'dTYyNmVcdTcxMWFcdTU5NmVcdTdjODlcdTdjZGVcdTdkMWJcdTk2ZjBcdTY1ODdcdTgwNWVcdTRlMTlcdTRmNzVcdTUxNzVcdTU4NDBcdTVlNjNcdTVlNzNcdTVmMGFcdTY3YzRcdTRlMjZcdTg1M2RcdTk1ODlcdTk2NWJcdTdjNzNcdTk4MDFcdTUwZmJcdTU4YzFcdTc2NTZcdTc4YTdcdTUy'@; put 'MjVcdTc3YTVcdTg1MTFcdTdiODZcdTUwNGZcdTU5MDlcdTcyNDdcdTdiYzdcdTdkZThcdThmYmFcdThmZDRcdTkwNGRcdTRmYmZcdTUyYzlcdTVhMjlcdTVmMDFcdTk3YWRcdTRmZGRcdTgyMTdcdTkyZWFcdTU3MDNcdTYzNTVcdTZiNjlcdTc1MmJcdTg4ZGNcdThmMTRcdTdhNDJcdTUyZGZc'@; put 'dTU4OTNcdTYxNTVcdTYyMGFcdTY2YWVcdTZiY2RcdTdjM2ZcdTgzZTlcdTUwMjNcdTRmZjhcdTUzMDVcdTU0NDZcdTU4MzFcdTU5NDlcdTViOWRcdTVjZjBcdTVjZWZcdTVkMjlcdTVlOTZcdTYyYjFcdTYzNjdcdTY1M2VcdTY1YjlcdTY3MGIiXSxbIjk2NDAiLCJcdTZjZDVcdTZjZTFcdTcw'@; put 'ZjlcdTc4MzJcdTdlMmJcdTgwZGVcdTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlkNmNcdTRlNGZcdTRlYTFcdTUwOGRcdTUyNTZcdTU3NGFcdTU5YThcdTVlM2RcdTVmZDhcdTVmZDlcdTYyM2ZcdTY2YjRcdTY3MWJc'@; put 'dTY3ZDBcdTY4ZDJcdTUxOTJcdTdkMjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVcdTUzNWNcdTU4YThcdTY0YjJcdTY3MzRcdTcyNjdcdTc3NjZcdTdhNDZcdTkxZTZcdTUyYzNcdTZjYTFcdTZiODZcdTU4MDBcdTVl'@; put 'NGNcdTU5NTRcdTY3MmNcdTdmZmJcdTUxZTFcdTc2YzYiXSxbIjk2ODAiLCJcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZiY2VcdTU0ZTlcdTY5ZDlcdTVlNTVcdTgxOWNcdTY3OTVcdTliYWFcdTY3ZmVcdTljNTJcdTY4NWRcdTRlYTZcdTRmZTNc'@; put 'dTUzYzhcdTYyYjlcdTY3MmJcdTZjYWJcdThmYzRcdTRmYWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODBcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTliNDVcdTVkZjNcdTdiOTVcdTVjYWNcdTViYzZcdTg3MWNcdTZlNGFcdTg0ZDFcdTdhMTRcdTgxMDhcdTU5OTlcdTdjOGRcdTZj'@; put 'MTFcdTc3MjBcdTUyZDlcdTU5MjJcdTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTc2ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5ZWFcdTcyNWRcdTZlYzVcdTUxNGRcdTY4YzlcdTdkYmZcdTdkZWNcdTk3NjJc'@; put 'dTllYmFcdTY0NzhcdTZhMjFcdTgzMDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2ZWVcdTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRcdTYyM2JcdTdjN2VcdThjYjBcdTU1NGZcdTYwYjZcdTdkMGJcdTk1ODBcdTUz'@; put 'MDFcdTRlNWZcdTUxYjZcdTU5MWNcdTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZcdTY3ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYxMDhcdTZjYjlcdTc2NTIiXSxbIjk3NDAiLCJcdThhZWRcdThmMzhcdTU1MmZc'@; put 'dTRmNTFcdTUxMmFcdTUyYzdcdTUzY2JcdTViYTVcdTVlN2RcdTYwYTBcdTYxODJcdTYzZDZcdTY3MDlcdTY3ZGFcdTZlNjdcdTZkOGNcdTczMzZcdTczMzdcdTc1MzFcdTc5NTBcdTg4ZDVcdThhOThcdTkwNGFcdTkwOTFcdTkwZjVcdTk2YzRcdTg3OGRcdTU5MTVcdTRlODhcdTRmNTlcdTRl'@; put 'MGVcdThhODlcdThmM2ZcdTk4MTBcdTUwYWRcdTVlN2NcdTU5OTZcdTViYjlcdTVlYjhcdTYzZGFcdTYzZmFcdTY0YzFcdTY2ZGNcdTY5NGFcdTY5ZDhcdTZkMGJcdTZlYjZcdTcxOTRcdTc1MjhcdTdhYWZcdTdmOGFcdTgwMDBcdTg0NDlcdTg0YzlcdTg5ODFcdThiMjFcdThlMGFcdTkwNjVc'@; put 'dTk2N2RcdTk5MGFcdTYxN2VcdTYyOTFcdTZiMzIiXSxbIjk3ODAiLCJcdTZjODNcdTZkNzRcdTdmY2NcdTdmZmNcdTZkYzBcdTdmODVcdTg3YmFcdTg4ZjhcdTY3NjVcdTgzYjFcdTk4M2NcdTk2ZjdcdTZkMWJcdTdkNjFcdTg0M2RcdTkxNmFcdTRlNzFcdTUzNzVcdTVkNTBcdTZiMDRcdTZm'@; put 'ZWJcdTg1Y2RcdTg2MmRcdTg5YTdcdTUyMjlcdTU0MGZcdTVjNjVcdTY3NGVcdTY4YThcdTc0MDZcdTc0ODNcdTc1ZTJcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTk2ZTJcdTk2NzhcdTVmOGJcdTczODdcdTdhY2JcdTg0NGVcdTYzYTBcdTc1NjVcdTUyODlcdTZkNDFcdTZlOWNcdTc0MDlcdTc1NTlc'@; put 'dTc4NmJcdTdjOTJcdTk2ODZcdTdhZGNcdTlmOGRcdTRmYjZcdTYxNmVcdTY1YzVcdTg2NWNcdTRlODZcdTRlYWVcdTUwZGFcdTRlMjFcdTUxY2NcdTViZWVcdTY1OTlcdTY4ODFcdTZkYmNcdTczMWZcdTc2NDJcdTc3YWRcdTdhMWNcdTdjZTdcdTgyNmZcdThhZDJcdTkwN2NcdTkxY2ZcdTk2'@; put 'NzVcdTk4MThcdTUyOWJcdTdkZDFcdTUwMmJcdTUzOThcdTY3OTdcdTZkY2JcdTcxZDBcdTc0MzNcdTgxZThcdThmMmFcdTk2YTNcdTljNTdcdTllOWZcdTc0NjBcdTU4NDFcdTZkOTlcdTdkMmZcdTk4NWVcdTRlZTRcdTRmMzZcdTRmOGJcdTUxYjdcdTUyYjFcdTVkYmFcdTYwMWNcdTczYjJc'@; put 'dTc5M2NcdTgyZDNcdTkyMzRcdTk2YjdcdTk2ZjZcdTk3MGFcdTllOTdcdTlmNjJcdTY2YTZcdTZiNzRcdTUyMTdcdTUyYTNcdTcwYzhcdTg4YzJcdTVlYzlcdTYwNGJcdTYxOTBcdTZmMjNcdTcxNDlcdTdjM2VcdTdkZjRcdTgwNmYiXSxbIjk4NDAiLCJcdTg0ZWVcdTkwMjNcdTkzMmNcdTU0'@; put 'NDJcdTliNmZcdTZhZDNcdTcwODlcdThjYzJcdThkZWZcdTk3MzJcdTUyYjRcdTVhNDFcdTVlY2FcdTVmMDRcdTY3MTdcdTY5N2NcdTY5OTRcdTZkNmFcdTZmMGZcdTcyNjJcdTcyZmNcdTdiZWRcdTgwMDFcdTgwN2VcdTg3NGJcdTkwY2VcdTUxNmRcdTllOTNcdTc5ODRcdTgwOGJcdTkzMzJc'@; put 'dThhZDZcdTUwMmRcdTU0OGNcdThhNzFcdTZiNmFcdThjYzRcdTgxMDdcdTYwZDFcdTY3YTBcdTlkZjJcdTRlOTlcdTRlOThcdTljMTBcdThhNmJcdTg1YzFcdTg1NjhcdTY5MDBcdTZlN2VcdTc4OTdcdTgxNTUiXSxbIjk4OWYiLCJcdTVmMGNcdTRlMTBcdTRlMTVcdTRlMmFcdTRlMzFcdTRl'@; put 'MzZcdTRlM2NcdTRlM2ZcdTRlNDJcdTRlNTZcdTRlNThcdTRlODJcdTRlODVcdThjNmJcdTRlOGFcdTgyMTJcdTVmMGRcdTRlOGVcdTRlOWVcdTRlOWZcdTRlYTBcdTRlYTJcdTRlYjBcdTRlYjNcdTRlYjZcdTRlY2VcdTRlY2RcdTRlYzRcdTRlYzZcdTRlYzJcdTRlZDdcdTRlZGVcdTRlZWRc'@; put 'dTRlZGZcdTRlZjdcdTRmMDlcdTRmNWFcdTRmMzBcdTRmNWJcdTRmNWRcdTRmNTdcdTRmNDdcdTRmNzZcdTRmODhcdTRmOGZcdTRmOThcdTRmN2JcdTRmNjlcdTRmNzBcdTRmOTFcdTRmNmZcdTRmODZcdTRmOTZcdTUxMThcdTRmZDRcdTRmZGZcdTRmY2VcdTRmZDhcdTRmZGJcdTRmZDFcdTRm'@; put 'ZGFcdTRmZDBcdTRmZTRcdTRmZTVcdTUwMWFcdTUwMjhcdTUwMTRcdTUwMmFcdTUwMjVcdTUwMDVcdTRmMWNcdTRmZjZcdTUwMjFcdTUwMjlcdTUwMmNcdTRmZmVcdTRmZWZcdTUwMTFcdTUwMDZcdTUwNDNcdTUwNDdcdTY3MDNcdTUwNTVcdTUwNTBcdTUwNDhcdTUwNWFcdTUwNTZcdTUwNmNc'@; put 'dTUwNzhcdTUwODBcdTUwOWFcdTUwODVcdTUwYjRcdTUwYjIiXSxbIjk5NDAiLCJcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUwZWRcdTUwZTNcdTUwZWVcdTUwZjlcdTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJcdTUxMTZcdTUxMTVcdTUxMTRcdTUxMWFcdTUx'@; put 'MjFcdTUxM2FcdTUxMzdcdTUxM2NcdTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBcdTUxODJcdTU2ZDhcdTUxOGNcdTUxODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUxOTVcdTUxOTZcdTUxYTRcdTUxYTZcdTUxYTJc'@; put 'dTUxYTlcdTUxYWFcdTUxYWJcdTUxYjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUxZWQiXSxbIjk5ODAiLCJcdTUxZjBcdTUxZjVcdTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRcdTUyMGVcdTUyMjdcdTUyMmFcdTUy'@; put 'MmVcdTUyMzNcdTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJcdTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJcdTUyNzFcdTUyODhcdTUyOTFcdThmYThcdThmYTdcdTUyYWNcdTUyYWRcdTUyYmNcdTUyYjVcdTUyYzFc'@; put 'dTUyY2RcdTUyZDdcdTUyZGVcdTUyZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUzMTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNcdTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhcdTUzNDBcdTUzNDZcdTUzNDVcdTRl'@; put 'MTdcdTUzNDlcdTUzNGRcdTUxZDZcdTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVcdTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUzZWVcdTUzZThcdTUzZWRcdTUzZmFc'@; put 'dTU0MDFcdTU0M2RcdTU0NDBcdTU0MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2JcdTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBcdTU0ODZcdTU0YzdcdTU0YTJcdTU0'@; put 'YjhcdTU0YTVcdTU0YWNcdTU0YzRcdTU0YzhcdTU0YTgiXSxbIjlhNDAiLCJcdTU0YWJcdTU0YzJcdTU0YTRcdTU0YmVcdTU0YmNcdTU0ZDhcdTU0ZTVcdTU0ZTZcdTU1MGZcdTU1MTRcdTU0ZmRcdTU0ZWVcdTU0ZWRcdTU0ZmFcdTU0ZTJcdTU1MzlcdTU1NDBcdTU1NjNcdTU1NGNcdTU1MmVc'@; put 'dTU1NWNcdTU1NDVcdTU1NTZcdTU1NTdcdTU1MzhcdTU1MzNcdTU1NWRcdTU1OTlcdTU1ODBcdTU0YWZcdTU1OGFcdTU1OWZcdTU1N2JcdTU1N2VcdTU1OThcdTU1OWVcdTU1YWVcdTU1N2NcdTU1ODNcdTU1YTlcdTU1ODdcdTU1YThcdTU1ZGFcdTU1YzVcdTU1ZGZcdTU1YzRcdTU1ZGNcdTU1'@; put 'ZTRcdTU1ZDRcdTU2MTRcdTU1ZjdcdTU2MTZcdTU1ZmVcdTU1ZmRcdTU2MWJcdTU1ZjlcdTU2NGVcdTU2NTBcdTcxZGZcdTU2MzRcdTU2MzZcdTU2MzJcdTU2MzgiXSxbIjlhODAiLCJcdTU2NmJcdTU2NjRcdTU2MmZcdTU2NmNcdTU2NmFcdTU2ODZcdTU2ODBcdTU2OGFcdTU2YTBcdTU2OTRc'@; put 'dTU2OGZcdTU2YTVcdTU2YWVcdTU2YjZcdTU2YjRcdTU2YzJcdTU2YmNcdTU2YzFcdTU2YzNcdTU2YzBcdTU2YzhcdTU2Y2VcdTU2ZDFcdTU2ZDNcdTU2ZDdcdTU2ZWVcdTU2ZjlcdTU3MDBcdTU2ZmZcdTU3MDRcdTU3MDlcdTU3MDhcdTU3MGJcdTU3MGRcdTU3MTNcdTU3MThcdTU3MTZcdTU1'@; put 'YzdcdTU3MWNcdTU3MjZcdTU3MzdcdTU3MzhcdTU3NGVcdTU3M2JcdTU3NDBcdTU3NGZcdTU3NjlcdTU3YzBcdTU3ODhcdTU3NjFcdTU3N2ZcdTU3ODlcdTU3OTNcdTU3YTBcdTU3YjNcdTU3YTRcdTU3YWFcdTU3YjBcdTU3YzNcdTU3YzZcdTU3ZDRcdTU3ZDJcdTU3ZDNcdTU4MGFcdTU3ZDZc'@; put 'dTU3ZTNcdTU4MGJcdTU4MTlcdTU4MWRcdTU4NzJcdTU4MjFcdTU4NjJcdTU4NGJcdTU4NzBcdTZiYzBcdTU4NTJcdTU4M2RcdTU4NzlcdTU4ODVcdTU4YjlcdTU4OWZcdTU4YWJcdTU4YmFcdTU4ZGVcdTU4YmJcdTU4YjhcdTU4YWVcdTU4YzVcdTU4ZDNcdTU4ZDFcdTU4ZDdcdTU4ZDlcdTU4'@; put 'ZDhcdTU4ZTVcdTU4ZGNcdTU4ZTRcdTU4ZGZcdTU4ZWZcdTU4ZmFcdTU4ZjlcdTU4ZmJcdTU4ZmNcdTU4ZmRcdTU5MDJcdTU5MGFcdTU5MTBcdTU5MWJcdTY4YTZcdTU5MjVcdTU5MmNcdTU5MmRcdTU5MzJcdTU5MzhcdTU5M2VcdTdhZDJcdTU5NTVcdTU5NTBcdTU5NGVcdTU5NWFcdTU5NThc'@; put 'dTU5NjJcdTU5NjBcdTU5NjdcdTU5NmNcdTU5NjkiXSxbIjliNDAiLCJcdTU5NzhcdTU5ODFcdTU5OWRcdTRmNWVcdTRmYWJcdTU5YTNcdTU5YjJcdTU5YzZcdTU5ZThcdTU5ZGNcdTU5OGRcdTU5ZDlcdTU5ZGFcdTVhMjVcdTVhMWZcdTVhMTFcdTVhMWNcdTVhMDlcdTVhMWFcdTVhNDBcdTVh'@; put 'NmNcdTVhNDlcdTVhMzVcdTVhMzZcdTVhNjJcdTVhNmFcdTVhOWFcdTVhYmNcdTVhYmVcdTVhY2JcdTVhYzJcdTVhYmRcdTVhZTNcdTVhZDdcdTVhZTZcdTVhZTlcdTVhZDZcdTVhZmFcdTVhZmJcdTViMGNcdTViMGJcdTViMTZcdTViMzJcdTVhZDBcdTViMmFcdTViMzZcdTViM2VcdTViNDNc'@; put 'dTViNDVcdTViNDBcdTViNTFcdTViNTVcdTViNWFcdTViNWJcdTViNjVcdTViNjlcdTViNzBcdTViNzNcdTViNzVcdTViNzhcdTY1ODhcdTViN2FcdTViODAiXSxbIjliODAiLCJcdTViODNcdTViYTZcdTViYjhcdTViYzNcdTViYzdcdTViYzlcdTViZDRcdTViZDBcdTViZTRcdTViZTZcdTVi'@; put 'ZTJcdTViZGVcdTViZTVcdTViZWJcdTViZjBcdTViZjZcdTViZjNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGRcdTVjMTNcdTVjMjBcdTVjMjJcdTVjMjhcdTVjMzhcdTVjMzlcdTVjNDFcdTVjNDZcdTVjNGVcdTVjNTNcdTVjNTBcdTVjNGZcdTViNzFcdTVjNmNcdTVjNmVcdTRlNjJcdTVjNzZc'@; put 'dTVjNzlcdTVjOGNcdTVjOTFcdTVjOTRcdTU5OWJcdTVjYWJcdTVjYmJcdTVjYjZcdTVjYmNcdTVjYjdcdTVjYzVcdTVjYmVcdTVjYzdcdTVjZDlcdTVjZTlcdTVjZmRcdTVjZmFcdTVjZWRcdTVkOGNcdTVjZWFcdTVkMGJcdTVkMTVcdTVkMTdcdTVkNWNcdTVkMWZcdTVkMWJcdTVkMTFcdTVk'@; put 'MTRcdTVkMjJcdTVkMWFcdTVkMTlcdTVkMThcdTVkNGNcdTVkNTJcdTVkNGVcdTVkNGJcdTVkNmNcdTVkNzNcdTVkNzZcdTVkODdcdTVkODRcdTVkODJcdTVkYTJcdTVkOWRcdTVkYWNcdTVkYWVcdTVkYmRcdTVkOTBcdTVkYjdcdTVkYmNcdTVkYzlcdTVkY2RcdTVkZDNcdTVkZDJcdTVkZDZc'@; put 'dTVkZGJcdTVkZWJcdTVkZjJcdTVkZjVcdTVlMGJcdTVlMWFcdTVlMTlcdTVlMTFcdTVlMWJcdTVlMzZcdTVlMzdcdTVlNDRcdTVlNDNcdTVlNDBcdTVlNGVcdTVlNTdcdTVlNTRcdTVlNWZcdTVlNjJcdTVlNjRcdTVlNDdcdTVlNzVcdTVlNzZcdTVlN2FcdTllYmNcdTVlN2ZcdTVlYTBcdTVl'@; put 'YzFcdTVlYzJcdTVlYzhcdTVlZDBcdTVlY2YiXSxbIjljNDAiLCJcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVlZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVlZTlcdTVlZWNcdTVlZjFcdTVlZjNcdTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVmNWRcdTVmNWNcdTVmMGJc'@; put 'dTVmMTFcdTVmMTZcdTVmMjlcdTVmMmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFcdTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFcdTVmNmRcdTVmNzNcdTVmNzdcdTVmODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdcdTVmOWVcdTVmOTlcdTVm'@; put 'OThcdTVmYTBcdTVmYThcdTVmYWRcdTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYwYjNcdTVmZmZcdTYwMjFcdTYwNjAiXSxbIjljODAiLCJcdTYwMTlcdTYwMTBcdTYwMjlcdTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYwMjZcdTYwMGZcdTYwM2Fc'@; put 'dTYwNWFcdTYwNDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYwNGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJcdTYwNmNcdTYwNmJcdTYwNTlcdTYwODFcdTYwOGRcdTYwZTdcdTYwODNcdTYwOWFcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJcdTYwYTdcdTYwOGJcdTYw'@; put 'ZTFcdTYwYjhcdTYwZTBcdTYwZDNcdTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYxMDZcdTYwZjZcdTYwZjdcdTYxMDBcdTYwZjRcdTYwZmFcdTYxMDNcdTYxMjFcdTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYxM2VcdTYxMjhcdTYxMjdc'@; put 'dTYxNGFcdTYxM2ZcdTYxM2NcdTYxMmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNmJcdTYxNzRcdTYxNmZcdTYxNjVcdTYxNzFcdTYxNWZcdTYxNWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdcdTYxYWNcdTYxOTRcdTYx'@; put 'OWFcdTYxOGFcdTYxOTFcdTYxYWJcdTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYxYmFcdTYxY2JcdTdmNzlcdTYxY2RcdTYxZTZcdTYxZTNcdTYxZjZcdTYxZmFcdTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYyMDBcdTYyMDhcdTYyMDlc'@; put 'dTYyMGRcdTYyMGNcdTYyMTRcdTYyMWIiXSxbIjlkNDAiLCJcdTYyMWVcdTYyMjFcdTYyMmFcdTYyMmVcdTYyMzBcdTYyMzJcdTYyMzNcdTYyNDFcdTYyNGVcdTYyNWVcdTYyNjNcdTYyNWJcdTYyNjBcdTYyNjhcdTYyN2NcdTYyODJcdTYyODlcdTYyN2VcdTYyOTJcdTYyOTNcdTYyOTZcdTYy'@; put 'ZDRcdTYyODNcdTYyOTRcdTYyZDdcdTYyZDFcdTYyYmJcdTYyY2ZcdTYyZmZcdTYyYzZcdTY0ZDRcdTYyYzhcdTYyZGNcdTYyY2NcdTYyY2FcdTYyYzJcdTYyYzdcdTYyOWJcdTYyYzlcdTYzMGNcdTYyZWVcdTYyZjFcdTYzMjdcdTYzMDJcdTYzMDhcdTYyZWZcdTYyZjVcdTYzNTBcdTYzM2Vc'@; put 'dTYzNGRcdTY0MWNcdTYzNGZcdTYzOTZcdTYzOGVcdTYzODBcdTYzYWJcdTYzNzZcdTYzYTNcdTYzOGZcdTYzODlcdTYzOWZcdTYzYjVcdTYzNmIiXSxbIjlkODAiLCJcdTYzNjlcdTYzYmVcdTYzZTlcdTYzYzBcdTYzYzZcdTYzZTNcdTYzYzlcdTYzZDJcdTYzZjZcdTYzYzRcdTY0MTZcdTY0'@; put 'MzRcdTY0MDZcdTY0MTNcdTY0MjZcdTY0MzZcdTY1MWRcdTY0MTdcdTY0MjhcdTY0MGZcdTY0NjdcdTY0NmZcdTY0NzZcdTY0NGVcdTY1MmFcdTY0OTVcdTY0OTNcdTY0YTVcdTY0YTlcdTY0ODhcdTY0YmNcdTY0ZGFcdTY0ZDJcdTY0YzVcdTY0YzdcdTY0YmJcdTY0ZDhcdTY0YzJcdTY0ZjFc'@; put 'dTY0ZTdcdTgyMDlcdTY0ZTBcdTY0ZTFcdTYyYWNcdTY0ZTNcdTY0ZWZcdTY1MmNcdTY0ZjZcdTY0ZjRcdTY0ZjJcdTY0ZmFcdTY1MDBcdTY0ZmRcdTY1MThcdTY1MWNcdTY1MDVcdTY1MjRcdTY1MjNcdTY1MmJcdTY1MzRcdTY1MzVcdTY1MzdcdTY1MzZcdTY1MzhcdTc1NGJcdTY1NDhcdTY1'@; put 'NTZcdTY1NTVcdTY1NGRcdTY1NThcdTY1NWVcdTY1NWRcdTY1NzJcdTY1NzhcdTY1ODJcdTY1ODNcdThiOGFcdTY1OWJcdTY1OWZcdTY1YWJcdTY1YjdcdTY1YzNcdTY1YzZcdTY1YzFcdTY1YzRcdTY1Y2NcdTY1ZDJcdTY1ZGJcdTY1ZDlcdTY1ZTBcdTY1ZTFcdTY1ZjFcdTY3NzJcdTY2MGFc'@; put 'dTY2MDNcdTY1ZmJcdTY3NzNcdTY2MzVcdTY2MzZcdTY2MzRcdTY2MWNcdTY2NGZcdTY2NDRcdTY2NDlcdTY2NDFcdTY2NWVcdTY2NWRcdTY2NjRcdTY2NjdcdTY2NjhcdTY2NWZcdTY2NjJcdTY2NzBcdTY2ODNcdTY2ODhcdTY2OGVcdTY2ODlcdTY2ODRcdTY2OThcdTY2OWRcdTY2YzFcdTY2'@; put 'YjlcdTY2YzlcdTY2YmVcdTY2YmMiXSxbIjllNDAiLCJcdTY2YzRcdTY2YjhcdTY2ZDZcdTY2ZGFcdTY2ZTBcdTY2M2ZcdTY2ZTZcdTY2ZTlcdTY2ZjBcdTY2ZjVcdTY2ZjdcdTY3MGZcdTY3MTZcdTY3MWVcdTY3MjZcdTY3MjdcdTk3MzhcdTY3MmVcdTY3M2ZcdTY3MzZcdTY3NDFcdTY3Mzhc'@; put 'dTY3MzdcdTY3NDZcdTY3NWVcdTY3NjBcdTY3NTlcdTY3NjNcdTY3NjRcdTY3ODlcdTY3NzBcdTY3YTlcdTY3N2NcdTY3NmFcdTY3OGNcdTY3OGJcdTY3YTZcdTY3YTFcdTY3ODVcdTY3YjdcdTY3ZWZcdTY3YjRcdTY3ZWNcdTY3YjNcdTY3ZTlcdTY3YjhcdTY3ZTRcdTY3ZGVcdTY3ZGRcdTY3'@; put 'ZTJcdTY3ZWVcdTY3YjlcdTY3Y2VcdTY3YzZcdTY3ZTdcdTZhOWNcdTY4MWVcdTY4NDZcdTY4MjlcdTY4NDBcdTY4NGRcdTY4MzJcdTY4NGUiXSxbIjllODAiLCJcdTY4YjNcdTY4MmJcdTY4NTlcdTY4NjNcdTY4NzdcdTY4N2ZcdTY4OWZcdTY4OGZcdTY4YWRcdTY4OTRcdTY4OWRcdTY4OWJc'@; put 'dTY4ODNcdTZhYWVcdTY4YjlcdTY4NzRcdTY4YjVcdTY4YTBcdTY4YmFcdTY5MGZcdTY4OGRcdTY4N2VcdTY5MDFcdTY4Y2FcdTY5MDhcdTY4ZDhcdTY5MjJcdTY5MjZcdTY4ZTFcdTY5MGNcdTY4Y2RcdTY4ZDRcdTY4ZTdcdTY4ZDVcdTY5MzZcdTY5MTJcdTY5MDRcdTY4ZDdcdTY4ZTNcdTY5'@; put 'MjVcdTY4ZjlcdTY4ZTBcdTY4ZWZcdTY5MjhcdTY5MmFcdTY5MWFcdTY5MjNcdTY5MjFcdTY4YzZcdTY5NzlcdTY5NzdcdTY5NWNcdTY5NzhcdTY5NmJcdTY5NTRcdTY5N2VcdTY5NmVcdTY5MzlcdTY5NzRcdTY5M2RcdTY5NTlcdTY5MzBcdTY5NjFcdTY5NWVcdTY5NWRcdTY5ODFcdTY5NmFc'@; put 'dTY5YjJcdTY5YWVcdTY5ZDBcdTY5YmZcdTY5YzFcdTY5ZDNcdTY5YmVcdTY5Y2VcdTViZThcdTY5Y2FcdTY5ZGRcdTY5YmJcdTY5YzNcdTY5YTdcdTZhMmVcdTY5OTFcdTY5YTBcdTY5OWNcdTY5OTVcdTY5YjRcdTY5ZGVcdTY5ZThcdTZhMDJcdTZhMWJcdTY5ZmZcdTZiMGFcdTY5ZjlcdTY5'@; put 'ZjJcdTY5ZTdcdTZhMDVcdTY5YjFcdTZhMWVcdTY5ZWRcdTZhMTRcdTY5ZWJcdTZhMGFcdTZhMTJcdTZhYzFcdTZhMjNcdTZhMTNcdTZhNDRcdTZhMGNcdTZhNzJcdTZhMzZcdTZhNzhcdTZhNDdcdTZhNjJcdTZhNTlcdTZhNjZcdTZhNDhcdTZhMzhcdTZhMjJcdTZhOTBcdTZhOGRcdTZhYTBc'@; put 'dTZhODRcdTZhYTJcdTZhYTMiXSxbIjlmNDAiLCJcdTZhOTdcdTg2MTdcdTZhYmJcdTZhYzNcdTZhYzJcdTZhYjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZhZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZcdTliMzFcdTZiMWZcdTZi'@; put 'MzhcdTZiMzdcdTc2ZGNcdTZiMzlcdTk4ZWVcdTZiNDdcdTZiNDNcdTZiNDlcdTZiNTBcdTZiNTlcdTZiNTRcdTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlcdTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZiYWFcdTZiYWJcdTZiYWZc'@; put 'dTZiYjJcdTZiYjFcdTZiYjNcdTZiYjdcdTZiYmNcdTZiYzZcdTZiY2JcdTZiZDNcdTZiZGZcdTZiZWNcdTZiZWJcdTZiZjNcdTZiZWYiXSxbIjlmODAiLCJcdTllYmVcdTZjMDhcdTZjMTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJcdTZjNmFcdTZjODJcdTZj'@; put 'OGRcdTZjOWFcdTZjODFcdTZjOWJcdTZjN2VcdTZjNjhcdTZjNzNcdTZjOTJcdTZjOTBcdTZjYzRcdTZjZjFcdTZjZDNcdTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFcdTZjYmVcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4NGRcdTZkMzZcdTZkMmJc'@; put 'dTZkM2RcdTZkMzhcdTZkMTlcdTZkMzVcdTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNcdTZkOTNcdTZkNjRcdTZkNWFcdTZkNzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZmZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZcdTZkZWNcdTZkZGVcdTZk'@; put 'Y2NcdTZkZThcdTZkZDJcdTZkYzVcdTZkZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZkZWFcdTZkZWVcdTZlMmRcdTZlNmVcdTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZcdTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZlNGVcdTZlMjRcdTZlZmZc'@; put 'dTZlMWRcdTZlMzhcdTZlODJcdTZlYWFcdTZlOThcdTZlYzlcdTZlYjdcdTZlZDNcdTZlYmRcdTZlYWZcdTZlYzRcdTZlYjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZlYTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2ZcdTZlZjJcdTZmMzFcdTZl'@; put 'ZWZcdTZmMzJcdTZlY2MiXSxbImUwNDAiLCJcdTZmM2VcdTZmMTNcdTZlZjdcdTZmODZcdTZmN2FcdTZmNzhcdTZmODFcdTZmODBcdTZmNmZcdTZmNWJcdTZmZjNcdTZmNmRcdTZmODJcdTZmN2NcdTZmNThcdTZmOGVcdTZmOTFcdTZmYzJcdTZmNjZcdTZmYjNcdTZmYTNcdTZmYTFcdTZmYTRc'@; put 'dTZmYjlcdTZmYzZcdTZmYWFcdTZmZGZcdTZmZDVcdTZmZWNcdTZmZDRcdTZmZDhcdTZmZjFcdTZmZWVcdTZmZGJcdTcwMDlcdTcwMGJcdTZmZmFcdTcwMTFcdTcwMDFcdTcwMGZcdTZmZmVcdTcwMWJcdTcwMWFcdTZmNzRcdTcwMWRcdTcwMThcdTcwMWZcdTcwMzBcdTcwM2VcdTcwMzJcdTcw'@; put 'NTFcdTcwNjNcdTcwOTlcdTcwOTJcdTcwYWZcdTcwZjFcdTcwYWNcdTcwYjhcdTcwYjNcdTcwYWVcdTcwZGZcdTcwY2JcdTcwZGQiXSxbImUwODAiLCJcdTcwZDlcdTcxMDlcdTcwZmRcdTcxMWNcdTcxMTlcdTcxNjVcdTcxNTVcdTcxODhcdTcxNjZcdTcxNjJcdTcxNGNcdTcxNTZcdTcxNmNc'@; put 'dTcxOGZcdTcxZmJcdTcxODRcdTcxOTVcdTcxYThcdTcxYWNcdTcxZDdcdTcxYjlcdTcxYmVcdTcxZDJcdTcxYzlcdTcxZDRcdTcxY2VcdTcxZTBcdTcxZWNcdTcxZTdcdTcxZjVcdTcxZmNcdTcxZjlcdTcxZmZcdTcyMGRcdTcyMTBcdTcyMWJcdTcyMjhcdTcyMmRcdTcyMmNcdTcyMzBcdTcy'@; put 'MzJcdTcyM2JcdTcyM2NcdTcyM2ZcdTcyNDBcdTcyNDZcdTcyNGJcdTcyNThcdTcyNzRcdTcyN2VcdTcyODJcdTcyODFcdTcyODdcdTcyOTJcdTcyOTZcdTcyYTJcdTcyYTdcdTcyYjlcdTcyYjJcdTcyYzNcdTcyYzZcdTcyYzRcdTcyY2VcdTcyZDJcdTcyZTJcdTcyZTBcdTcyZTFcdTcyZjlc'@; put 'dTcyZjdcdTUwMGZcdTczMTdcdTczMGFcdTczMWNcdTczMTZcdTczMWRcdTczMzRcdTczMmZcdTczMjlcdTczMjVcdTczM2VcdTczNGVcdTczNGZcdTllZDhcdTczNTdcdTczNmFcdTczNjhcdTczNzBcdTczNzhcdTczNzVcdTczN2JcdTczN2FcdTczYzhcdTczYjNcdTczY2VcdTczYmJcdTcz'@; put 'YzBcdTczZTVcdTczZWVcdTczZGVcdTc0YTJcdTc0MDVcdTc0NmZcdTc0MjVcdTczZjhcdTc0MzJcdTc0M2FcdTc0NTVcdTc0M2ZcdTc0NWZcdTc0NTlcdTc0NDFcdTc0NWNcdTc0NjlcdTc0NzBcdTc0NjNcdTc0NmFcdTc0NzZcdTc0N2VcdTc0OGJcdTc0OWVcdTc0YTdcdTc0Y2FcdTc0Y2Zc'@; put 'dTc0ZDRcdTczZjEiXSxbImUxNDAiLCJcdTc0ZTBcdTc0ZTNcdTc0ZTdcdTc0ZTlcdTc0ZWVcdTc0ZjJcdTc0ZjBcdTc0ZjFcdTc0ZjhcdTc0ZjdcdTc1MDRcdTc1MDNcdTc1MDVcdTc1MGNcdTc1MGVcdTc1MGRcdTc1MTVcdTc1MTNcdTc1MWVcdTc1MjZcdTc1MmNcdTc1M2NcdTc1NDRcdTc1'@; put 'NGRcdTc1NGFcdTc1NDlcdTc1NWJcdTc1NDZcdTc1NWFcdTc1NjlcdTc1NjRcdTc1NjdcdTc1NmJcdTc1NmRcdTc1NzhcdTc1NzZcdTc1ODZcdTc1ODdcdTc1NzRcdTc1OGFcdTc1ODlcdTc1ODJcdTc1OTRcdTc1OWFcdTc1OWRcdTc1YTVcdTc1YTNcdTc1YzJcdTc1YjNcdTc1YzNcdTc1YjVc'@; put 'dTc1YmRcdTc1YjhcdTc1YmNcdTc1YjFcdTc1Y2RcdTc1Y2FcdTc1ZDJcdTc1ZDlcdTc1ZTNcdTc1ZGVcdTc1ZmVcdTc1ZmYiXSxbImUxODAiLCJcdTc1ZmNcdTc2MDFcdTc1ZjBcdTc1ZmFcdTc1ZjJcdTc1ZjNcdTc2MGJcdTc2MGRcdTc2MDlcdTc2MWZcdTc2MjdcdTc2MjBcdTc2MjFcdTc2'@; put 'MjJcdTc2MjRcdTc2MzRcdTc2MzBcdTc2M2JcdTc2NDdcdTc2NDhcdTc2NDZcdTc2NWNcdTc2NThcdTc2NjFcdTc2NjJcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NjdcdTc2NmNcdTc2NzBcdTc2NzJcdTc2NzZcdTc2NzhcdTc2N2NcdTc2ODBcdTc2ODNcdTc2ODhcdTc2OGJcdTc2OGVcdTc2OTZc'@; put 'dTc2OTNcdTc2OTlcdTc2OWFcdTc2YjBcdTc2YjRcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YzJcdTc2Y2RcdTc2ZDZcdTc2ZDJcdTc2ZGVcdTc2ZTFcdTc2ZTVcdTc2ZTdcdTc2ZWFcdTg2MmZcdTc2ZmJcdTc3MDhcdTc3MDdcdTc3MDRcdTc3MjlcdTc3MjRcdTc3MWVcdTc3MjVcdTc3MjZcdTc3'@; put 'MWJcdTc3MzdcdTc3MzhcdTc3NDdcdTc3NWFcdTc3NjhcdTc3NmJcdTc3NWJcdTc3NjVcdTc3N2ZcdTc3N2VcdTc3NzlcdTc3OGVcdTc3OGJcdTc3OTFcdTc3YTBcdTc3OWVcdTc3YjBcdTc3YjZcdTc3YjlcdTc3YmZcdTc3YmNcdTc3YmRcdTc3YmJcdTc3YzdcdTc3Y2RcdTc3ZDdcdTc3ZGFc'@; put 'dTc3ZGNcdTc3ZTNcdTc3ZWVcdTc3ZmNcdTc4MGNcdTc4MTJcdTc5MjZcdTc4MjBcdTc5MmFcdTc4NDVcdTc4OGVcdTc4NzRcdTc4ODZcdTc4N2NcdTc4OWFcdTc4OGNcdTc4YTNcdTc4YjVcdTc4YWFcdTc4YWZcdTc4ZDFcdTc4YzZcdTc4Y2JcdTc4ZDRcdTc4YmVcdTc4YmNcdTc4YzVcdTc4'@; put 'Y2FcdTc4ZWMiXSxbImUyNDAiLCJcdTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBcdTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2ZcdTc5OGFcdTc5OWRcdTc5YTdcdTlmNGJcdTc5YWFc'@; put 'dTc5YWVcdTc5YjNcdTc5YjlcdTc5YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdhMWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdhNTdcdTdhNDlcdTdhNjFcdTdhNjJcdTdhNjlcdTlm'@; put 'OWRcdTdhNzBcdTdhNzlcdTdhN2RcdTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjAiXSxbImUyODAiLCJcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZcdTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVcdTdhZDNcdTdhZDlcdTdhZGFcdTdhZGRc'@; put 'dTdhZTFcdTdhZTJcdTdhZTZcdTdhZWRcdTdhZjBcdTdiMDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTBcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdiNzVcdTdiNjVcdTdiNzRcdTdiNjdcdTdi'@; put 'NzBcdTdiNzFcdTdiNmNcdTdiNmVcdTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2JcdTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFcdTdjMTRcdTdiZTZcdTdiZTVcdTdjNjBc'@; put 'dTdjMDBcdTdjMDdcdTdjMTNcdTdiZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdjNGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdjNjRcdTdjNTZcdTdjNjVcdTdjNmNcdTdj'@; put 'NzVcdTdjODNcdTdjOTBcdTdjYTRcdTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBcdTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZcdTdjZjJcdTdjZjRcdTdjZjZcdTdjZmFc'@; put 'dTdkMDYiXSxbImUzNDAiLCJcdTdkMDJcdTdkMWNcdTdkMTVcdTdkMGFcdTdkNDVcdTdkNGJcdTdkMmVcdTdkMzJcdTdkM2ZcdTdkMzVcdTdkNDZcdTdkNzNcdTdkNTZcdTdkNGVcdTdkNzJcdTdkNjhcdTdkNmVcdTdkNGZcdTdkNjNcdTdkOTNcdTdkODlcdTdkNWJcdTdkOGZcdTdkN2RcdTdk'@; put 'OWJcdTdkYmFcdTdkYWVcdTdkYTNcdTdkYjVcdTdkYzdcdTdkYmRcdTdkYWJcdTdlM2RcdTdkYTJcdTdkYWZcdTdkZGNcdTdkYjhcdTdkOWZcdTdkYjBcdTdkZDhcdTdkZGRcdTdkZTRcdTdkZGVcdTdkZmJcdTdkZjJcdTdkZTFcdTdlMDVcdTdlMGFcdTdlMjNcdTdlMjFcdTdlMTJcdTdlMzFc'@; put 'dTdlMWZcdTdlMDlcdTdlMGJcdTdlMjJcdTdlNDZcdTdlNjZcdTdlM2JcdTdlMzVcdTdlMzlcdTdlNDNcdTdlMzciXSxbImUzODAiLCJcdTdlMzJcdTdlM2FcdTdlNjdcdTdlNWRcdTdlNTZcdTdlNWVcdTdlNTlcdTdlNWFcdTdlNzlcdTdlNmFcdTdlNjlcdTdlN2NcdTdlN2JcdTdlODNcdTdk'@; put 'ZDVcdTdlN2RcdThmYWVcdTdlN2ZcdTdlODhcdTdlODlcdTdlOGNcdTdlOTJcdTdlOTBcdTdlOTNcdTdlOTRcdTdlOTZcdTdlOGVcdTdlOWJcdTdlOWNcdTdmMzhcdTdmM2FcdTdmNDVcdTdmNGNcdTdmNGRcdTdmNGVcdTdmNTBcdTdmNTFcdTdmNTVcdTdmNTRcdTdmNThcdTdmNWZcdTdmNjBc'@; put 'dTdmNjhcdTdmNjlcdTdmNjdcdTdmNzhcdTdmODJcdTdmODZcdTdmODNcdTdmODhcdTdmODdcdTdmOGNcdTdmOTRcdTdmOWVcdTdmOWRcdTdmOWFcdTdmYTNcdTdmYWZcdTdmYjJcdTdmYjlcdTdmYWVcdTdmYjZcdTdmYjhcdThiNzFcdTdmYzVcdTdmYzZcdTdmY2FcdTdmZDVcdTdmZDRcdTdm'@; put 'ZTFcdTdmZTZcdTdmZTlcdTdmZjNcdTdmZjlcdTk4ZGNcdTgwMDZcdTgwMDRcdTgwMGJcdTgwMTJcdTgwMThcdTgwMTlcdTgwMWNcdTgwMjFcdTgwMjhcdTgwM2ZcdTgwM2JcdTgwNGFcdTgwNDZcdTgwNTJcdTgwNThcdTgwNWFcdTgwNWZcdTgwNjJcdTgwNjhcdTgwNzNcdTgwNzJcdTgwNzBc'@; put 'dTgwNzZcdTgwNzlcdTgwN2RcdTgwN2ZcdTgwODRcdTgwODZcdTgwODVcdTgwOWJcdTgwOTNcdTgwOWFcdTgwYWRcdTUxOTBcdTgwYWNcdTgwZGJcdTgwZTVcdTgwZDlcdTgwZGRcdTgwYzRcdTgwZGFcdTgwZDZcdTgxMDlcdTgwZWZcdTgwZjFcdTgxMWJcdTgxMjlcdTgxMjNcdTgxMmZcdTgx'@; put 'NGIiXSxbImU0NDAiLCJcdTk2OGJcdTgxNDZcdTgxM2VcdTgxNTNcdTgxNTFcdTgwZmNcdTgxNzFcdTgxNmVcdTgxNjVcdTgxNjZcdTgxNzRcdTgxODNcdTgxODhcdTgxOGFcdTgxODBcdTgxODJcdTgxYTBcdTgxOTVcdTgxYTRcdTgxYTNcdTgxNWZcdTgxOTNcdTgxYTlcdTgxYjBcdTgxYjVc'@; put 'dTgxYmVcdTgxYjhcdTgxYmRcdTgxYzBcdTgxYzJcdTgxYmFcdTgxYzlcdTgxY2RcdTgxZDFcdTgxZDlcdTgxZDhcdTgxYzhcdTgxZGFcdTgxZGZcdTgxZTBcdTgxZTdcdTgxZmFcdTgxZmJcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDVcdTgyMDdcdTgyMGFcdTgyMGRcdTgyMTBcdTgyMTZcdTgy'@; put 'MjlcdTgyMmJcdTgyMzhcdTgyMzNcdTgyNDBcdTgyNTlcdTgyNThcdTgyNWRcdTgyNWFcdTgyNWZcdTgyNjQiXSxbImU0ODAiLCJcdTgyNjJcdTgyNjhcdTgyNmFcdTgyNmJcdTgyMmVcdTgyNzFcdTgyNzdcdTgyNzhcdTgyN2VcdTgyOGRcdTgyOTJcdTgyYWJcdTgyOWZcdTgyYmJcdTgyYWNc'@; put 'dTgyZTFcdTgyZTNcdTgyZGZcdTgyZDJcdTgyZjRcdTgyZjNcdTgyZmFcdTgzOTNcdTgzMDNcdTgyZmJcdTgyZjlcdTgyZGVcdTgzMDZcdTgyZGNcdTgzMDlcdTgyZDlcdTgzMzVcdTgzMzRcdTgzMTZcdTgzMzJcdTgzMzFcdTgzNDBcdTgzMzlcdTgzNTBcdTgzNDVcdTgzMmZcdTgzMmJcdTgz'@; put 'MTdcdTgzMThcdTgzODVcdTgzOWFcdTgzYWFcdTgzOWZcdTgzYTJcdTgzOTZcdTgzMjNcdTgzOGVcdTgzODdcdTgzOGFcdTgzN2NcdTgzYjVcdTgzNzNcdTgzNzVcdTgzYTBcdTgzODlcdTgzYThcdTgzZjRcdTg0MTNcdTgzZWJcdTgzY2VcdTgzZmRcdTg0MDNcdTgzZDhcdTg0MGJcdTgzYzFc'@; put 'dTgzZjdcdTg0MDdcdTgzZTBcdTgzZjJcdTg0MGRcdTg0MjJcdTg0MjBcdTgzYmRcdTg0MzhcdTg1MDZcdTgzZmJcdTg0NmRcdTg0MmFcdTg0M2NcdTg1NWFcdTg0ODRcdTg0NzdcdTg0NmJcdTg0YWRcdTg0NmVcdTg0ODJcdTg0NjlcdTg0NDZcdTg0MmNcdTg0NmZcdTg0NzlcdTg0MzVcdTg0'@; put 'Y2FcdTg0NjJcdTg0YjlcdTg0YmZcdTg0OWZcdTg0ZDlcdTg0Y2RcdTg0YmJcdTg0ZGFcdTg0ZDBcdTg0YzFcdTg0YzZcdTg0ZDZcdTg0YTFcdTg1MjFcdTg0ZmZcdTg0ZjRcdTg1MTdcdTg1MThcdTg1MmNcdTg1MWZcdTg1MTVcdTg1MTRcdTg0ZmNcdTg1NDBcdTg1NjNcdTg1NThcdTg1NDgi'@; put 'XSxbImU1NDAiLCJcdTg1NDFcdTg2MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1OWJcdTg1ZWFcdTg1ODdcdTg1OWNcdTg1NzdcdTg1N2VcdTg1OTBcdTg1YzlcdTg1YmFcdTg1Y2ZcdTg1YjlcdTg1ZDBcdTg1ZDVcdTg1'@; put 'ZGRcdTg1ZTVcdTg1ZGNcdTg1ZjlcdTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRcdTRlNTVcdTg2NTRcdTg2NWZcdTg2NjdcdTg2NzFcdTg2OTNcdTg2YTNcdTg2YTlcdTg2YWFcdTg2OGJcdTg2OGNcdTg2YjZcdTg2YWZc'@; put 'dTg2YzRcdTg2YzZcdTg2YjBcdTg2YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWMiXSxbImU1ODAiLCJcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3MTJcdTg3MDZcdTg3MDhcdTg3MDBcdTg3MDNcdTg2ZmJcdTg3MTFcdTg3MDlcdTg3MGRcdTg2ZjlcdTg3MGFcdTg3MzRcdTg3'@; put 'M2ZcdTg3MzdcdTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFcdTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTlcdTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVcdTg3YTJcdTg3OWZcdTg3ODJcdTg3YWZcdTg3Y2JcdTg3YmRcdTg3YzBcdTg3ZDBc'@; put 'dTk2ZDZcdTg3YWJcdTg3YzRcdTg3YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4MTVcdTg4MjJcdTg4MjFcdTg4MzFcdTg4MzZcdTg4MzlcdTg4MjdcdTg4M2JcdTg4'@; put 'NDRcdTg4NDJcdTg4NTJcdTg4NTlcdTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdcdTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJcdTg4OGRcdTg4YTRcdTg4YjBcdTg4YmZcdTg4YjFcdTg4YzNcdTg4YzRcdTg4ZDRc'@; put 'dTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5NDRcdTg5M2JcdTg5MzZcdTg5MzhcdTg5NGNcdTg5MWRcdTg5NjBcdTg5NWUiXSxb'@; put 'ImU2NDAiLCJcdTg5NjZcdTg5NjRcdTg5NmRcdTg5NmFcdTg5NmZcdTg5NzRcdTg5NzdcdTg5N2VcdTg5ODNcdTg5ODhcdTg5OGFcdTg5OTNcdTg5OThcdTg5YTFcdTg5YTlcdTg5YTZcdTg5YWNcdTg5YWZcdTg5YjJcdTg5YmFcdTg5YmRcdTg5YmZcdTg5YzBcdTg5ZGFcdTg5ZGNcdTg5ZGRc'@; put 'dTg5ZTdcdTg5ZjRcdTg5ZjhcdThhMDNcdThhMTZcdThhMTBcdThhMGNcdThhMWJcdThhMWRcdThhMjVcdThhMzZcdThhNDFcdThhNWJcdThhNTJcdThhNDZcdThhNDhcdThhN2NcdThhNmRcdThhNmNcdThhNjJcdThhODVcdThhODJcdThhODRcdThhYThcdThhYTFcdThhOTFcdThhYTVcdThh'@; put 'YTZcdThhOWFcdThhYTNcdThhYzRcdThhY2RcdThhYzJcdThhZGFcdThhZWJcdThhZjNcdThhZTciXSxbImU2ODAiLCJcdThhZTRcdThhZjFcdThiMTRcdThhZTBcdThhZTJcdThhZjdcdThhZGVcdThhZGJcdThiMGNcdThiMDdcdThiMWFcdThhZTFcdThiMTZcdThiMTBcdThiMTdcdThiMjBc'@; put 'dThiMzNcdTk3YWJcdThiMjZcdThiMmJcdThiM2VcdThiMjhcdThiNDFcdThiNGNcdThiNGZcdThiNGVcdThiNDlcdThiNTZcdThiNWJcdThiNWFcdThiNmJcdThiNWZcdThiNmNcdThiNmZcdThiNzRcdThiN2RcdThiODBcdThiOGNcdThiOGVcdThiOTJcdThiOTNcdThiOTZcdThiOTlcdThi'@; put 'OWFcdThjM2FcdThjNDFcdThjM2ZcdThjNDhcdThjNGNcdThjNGVcdThjNTBcdThjNTVcdThjNjJcdThjNmNcdThjNzhcdThjN2FcdThjODJcdThjODlcdThjODVcdThjOGFcdThjOGRcdThjOGVcdThjOTRcdThjN2NcdThjOThcdTYyMWRcdThjYWRcdThjYWFcdThjYmRcdThjYjJcdThjYjNc'@; put 'dThjYWVcdThjYjZcdThjYzhcdThjYzFcdThjZTRcdThjZTNcdThjZGFcdThjZmRcdThjZmFcdThjZmJcdThkMDRcdThkMDVcdThkMGFcdThkMDdcdThkMGZcdThkMGRcdThkMTBcdTlmNGVcdThkMTNcdThjY2RcdThkMTRcdThkMTZcdThkNjdcdThkNmRcdThkNzFcdThkNzNcdThkODFcdThk'@; put 'OTlcdThkYzJcdThkYmVcdThkYmFcdThkY2ZcdThkZGFcdThkZDZcdThkY2NcdThkZGJcdThkY2JcdThkZWFcdThkZWJcdThkZGZcdThkZTNcdThkZmNcdThlMDhcdThlMDlcdThkZmZcdThlMWRcdThlMWVcdThlMTBcdThlMWZcdThlNDJcdThlMzVcdThlMzBcdThlMzRcdThlNGEiXSxbImU3'@; put 'NDAiLCJcdThlNDdcdThlNDlcdThlNGNcdThlNTBcdThlNDhcdThlNTlcdThlNjRcdThlNjBcdThlMmFcdThlNjNcdThlNTVcdThlNzZcdThlNzJcdThlN2NcdThlODFcdThlODdcdThlODVcdThlODRcdThlOGJcdThlOGFcdThlOTNcdThlOTFcdThlOTRcdThlOTlcdThlYWFcdThlYTFcdThl'@; put 'YWNcdThlYjBcdThlYzZcdThlYjFcdThlYmVcdThlYzVcdThlYzhcdThlY2JcdThlZGJcdThlZTNcdThlZmNcdThlZmJcdThlZWJcdThlZmVcdThmMGFcdThmMDVcdThmMTVcdThmMTJcdThmMTlcdThmMTNcdThmMWNcdThmMWZcdThmMWJcdThmMGNcdThmMjZcdThmMzNcdThmM2JcdThmMzlc'@; put 'dThmNDVcdThmNDJcdThmM2VcdThmNGNcdThmNDlcdThmNDZcdThmNGVcdThmNTdcdThmNWMiXSxbImU3ODAiLCJcdThmNjJcdThmNjNcdThmNjRcdThmOWNcdThmOWZcdThmYTNcdThmYWRcdThmYWZcdThmYjdcdThmZGFcdThmZTVcdThmZTJcdThmZWFcdThmZWZcdTkwODdcdThmZjRcdTkw'@; put 'MDVcdThmZjlcdThmZmFcdTkwMTFcdTkwMTVcdTkwMjFcdTkwMGRcdTkwMWVcdTkwMTZcdTkwMGJcdTkwMjdcdTkwMzZcdTkwMzVcdTkwMzlcdThmZjhcdTkwNGZcdTkwNTBcdTkwNTFcdTkwNTJcdTkwMGVcdTkwNDlcdTkwM2VcdTkwNTZcdTkwNThcdTkwNWVcdTkwNjhcdTkwNmZcdTkwNzZc'@; put 'dTk2YThcdTkwNzJcdTkwODJcdTkwN2RcdTkwODFcdTkwODBcdTkwOGFcdTkwODlcdTkwOGZcdTkwYThcdTkwYWZcdTkwYjFcdTkwYjVcdTkwZTJcdTkwZTRcdTYyNDhcdTkwZGJcdTkxMDJcdTkxMTJcdTkxMTlcdTkxMzJcdTkxMzBcdTkxNGFcdTkxNTZcdTkxNThcdTkxNjNcdTkxNjVcdTkx'@; put 'NjlcdTkxNzNcdTkxNzJcdTkxOGJcdTkxODlcdTkxODJcdTkxYTJcdTkxYWJcdTkxYWZcdTkxYWFcdTkxYjVcdTkxYjRcdTkxYmFcdTkxYzBcdTkxYzFcdTkxYzlcdTkxY2JcdTkxZDBcdTkxZDZcdTkxZGZcdTkxZTFcdTkxZGJcdTkxZmNcdTkxZjVcdTkxZjZcdTkyMWVcdTkxZmZcdTkyMTRc'@; put 'dTkyMmNcdTkyMTVcdTkyMTFcdTkyNWVcdTkyNTdcdTkyNDVcdTkyNDlcdTkyNjRcdTkyNDhcdTkyOTVcdTkyM2ZcdTkyNGJcdTkyNTBcdTkyOWNcdTkyOTZcdTkyOTNcdTkyOWJcdTkyNWFcdTkyY2ZcdTkyYjlcdTkyYjdcdTkyZTlcdTkzMGZcdTkyZmFcdTkzNDRcdTkzMmUiXSxbImU4NDAi'@; put 'LCJcdTkzMTlcdTkzMjJcdTkzMWFcdTkzMjNcdTkzM2FcdTkzMzVcdTkzM2JcdTkzNWNcdTkzNjBcdTkzN2NcdTkzNmVcdTkzNTZcdTkzYjBcdTkzYWNcdTkzYWRcdTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkzZDBcdTkzYzhcdTkzZTRc'@; put 'dTk0MWFcdTk0MTRcdTk0MTNcdTk0MDNcdTk0MDdcdTk0MTBcdTk0MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0M2FcdTk0NDFcdTk0NTJcdTk0NDRcdTk0NWJcdTk0NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFcdTk0N2NcdTk0N2VcdTk0'@; put 'ODFcdTk0N2ZcdTk1ODJcdTk1ODdcdTk1OGFcdTk1OTRcdTk1OTZcdTk1OThcdTk1OTkiXSxbImU4ODAiLCJcdTk1YTBcdTk1YThcdTk1YTdcdTk1YWRcdTk1YmNcdTk1YmJcdTk1YjlcdTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1ZDRcdTk1ZDZcdTk1ZGNc'@; put 'dTk1ZTFcdTk1ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2MmVcdTk2MmZcdTk2NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2NzdcdTk2NWNcdTk2NWVcdTk2NWRcdTk2NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdcdTk2YjFcdTk2YjJcdTk2'@; put 'YjBcdTk2YjRcdTk2YjZcdTk2YjhcdTk2YjlcdTk2Y2VcdTk2Y2JcdTk2YzlcdTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRcdTk2ZDVcdTk2ZjlcdTk3MDRcdTk3MDZcdTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3MzBcdTk3MzlcdTk3M2Rc'@; put 'dTk3M2VcdTk3NDRcdTk3NDZcdTk3NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUyZDJcdTk3NmJcdTk3NzFcdTk3NzlcdTk3ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThcdTk3YTZcdTk3YTNcdTk3'@; put 'YjNcdTk3YjRcdTk3YzNcdTk3YzZcdTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRcdTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZcdTk3ZjVcdTk4MGZcdTk4MGNcdTk4MzhcdTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4NzAiXSxbImU5NDAiLCJc'@; put 'dTk4NzFcdTk4NzRcdTk4NzNcdTk4YWFcdTk4YWZcdTk4YjFcdTk4YjZcdTk4YzRcdTk4YzNcdTk4YzZcdTk4ZTlcdTk4ZWJcdTk5MDNcdTk5MDlcdTk5MTJcdTk5MTRcdTk5MThcdTk5MjFcdTk5MWRcdTk5MWVcdTk5MjRcdTk5MjBcdTk5MmNcdTk5MmVcdTk5M2RcdTk5M2VcdTk5NDJcdTk5'@; put 'NDlcdTk5NDVcdTk5NTBcdTk5NGJcdTk5NTFcdTk5NTJcdTk5NGNcdTk5NTVcdTk5OTdcdTk5OThcdTk5YTVcdTk5YWRcdTk5YWVcdTk5YmNcdTk5ZGZcdTk5ZGJcdTk5ZGRcdTk5ZDhcdTk5ZDFcdTk5ZWRcdTk5ZWVcdTk5ZjFcdTk5ZjJcdTk5ZmJcdTk5ZjhcdTlhMDFcdTlhMGZcdTlhMDVc'@; put 'dTk5ZTJcdTlhMTlcdTlhMmJcdTlhMzdcdTlhNDVcdTlhNDJcdTlhNDBcdTlhNDMiXSxbImU5ODAiLCJcdTlhM2VcdTlhNTVcdTlhNGRcdTlhNWJcdTlhNTdcdTlhNWZcdTlhNjJcdTlhNjVcdTlhNjRcdTlhNjlcdTlhNmJcdTlhNmFcdTlhYWRcdTlhYjBcdTlhYmNcdTlhYzBcdTlhY2ZcdTlh'@; put 'ZDFcdTlhZDNcdTlhZDRcdTlhZGVcdTlhZGZcdTlhZTJcdTlhZTNcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZWVcdTlhZjRcdTlhZjFcdTlhZjdcdTlhZmJcdTliMDZcdTliMThcdTliMWFcdTliMWZcdTliMjJcdTliMjNcdTliMjVcdTliMjdcdTliMjhcdTliMjlcdTliMmFcdTliMmVcdTliMmZc'@; put 'dTliMzJcdTliNDRcdTliNDNcdTliNGZcdTliNGRcdTliNGVcdTliNTFcdTliNThcdTliNzRcdTliOTNcdTliODNcdTliOTFcdTliOTZcdTliOTdcdTliOWZcdTliYTBcdTliYThcdTliYjRcdTliYzBcdTliY2FcdTliYjlcdTliYzZcdTliY2ZcdTliZDFcdTliZDJcdTliZTNcdTliZTJcdTli'@; put 'ZTRcdTliZDRcdTliZTFcdTljM2FcdTliZjJcdTliZjFcdTliZjBcdTljMTVcdTljMTRcdTljMDlcdTljMTNcdTljMGNcdTljMDZcdTljMDhcdTljMTJcdTljMGFcdTljMDRcdTljMmVcdTljMWJcdTljMjVcdTljMjRcdTljMjFcdTljMzBcdTljNDdcdTljMzJcdTljNDZcdTljM2VcdTljNWFc'@; put 'dTljNjBcdTljNjdcdTljNzZcdTljNzhcdTljZTdcdTljZWNcdTljZjBcdTlkMDlcdTlkMDhcdTljZWJcdTlkMDNcdTlkMDZcdTlkMmFcdTlkMjZcdTlkYWZcdTlkMjNcdTlkMWZcdTlkNDRcdTlkMTVcdTlkMTJcdTlkNDFcdTlkM2ZcdTlkM2VcdTlkNDZcdTlkNDgiXSxbImVhNDAiLCJcdTlk'@; put 'NWRcdTlkNWVcdTlkNjRcdTlkNTFcdTlkNTBcdTlkNTlcdTlkNzJcdTlkODlcdTlkODdcdTlkYWJcdTlkNmZcdTlkN2FcdTlkOWFcdTlkYTRcdTlkYTlcdTlkYjJcdTlkYzRcdTlkYzFcdTlkYmJcdTlkYjhcdTlkYmFcdTlkYzZcdTlkY2ZcdTlkYzJcdTlkZDlcdTlkZDNcdTlkZjhcdTlkZTZc'@; put 'dTlkZWRcdTlkZWZcdTlkZmRcdTllMWFcdTllMWJcdTllMWVcdTllNzVcdTllNzlcdTllN2RcdTllODFcdTllODhcdTllOGJcdTllOGNcdTllOTJcdTllOTVcdTllOTFcdTllOWRcdTllYTVcdTllYTlcdTllYjhcdTllYWFcdTllYWRcdTk3NjFcdTllY2NcdTllY2VcdTllY2ZcdTllZDBcdTll'@; put 'ZDRcdTllZGNcdTllZGVcdTllZGRcdTllZTBcdTllZTVcdTllZThcdTllZWYiXSxbImVhODAiLCJcdTllZjRcdTllZjZcdTllZjdcdTllZjlcdTllZmJcdTllZmNcdTllZmRcdTlmMDdcdTlmMDhcdTc2YjdcdTlmMTVcdTlmMjFcdTlmMmNcdTlmM2VcdTlmNGFcdTlmNTJcdTlmNTRcdTlmNjNc'@; put 'dTlmNWZcdTlmNjBcdTlmNjFcdTlmNjZcdTlmNjdcdTlmNmNcdTlmNmFcdTlmNzdcdTlmNzJcdTlmNzZcdTlmOTVcdTlmOWNcdTlmYTBcdTU4MmZcdTY5YzdcdTkwNTlcdTc0NjRcdTUxZGNcdTcxOTkiXSxbImVkNDAiLCJcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcw'@; put 'YmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhc'@; put 'dTUxNGFcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3'@; put 'YzdcdWZhMGYiXSxbImVkODAiLCJcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRc'@; put 'dTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBcdTY2'@; put 'MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZhMTRc'@; put 'dTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZl'@; put 'M2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjEiXSxbImVlNDAiLCJcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTczYmRcdTczYzlcdTczZDZc'@; put 'dTczZTNcdTczZDJcdTc0MDdcdTczZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlcdTc0OWZcdTc1MDFcdTc1NmZcdTc2ODJcdTc2OWNcdTc2OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2FcdTc5MzBcdWZhMThcdWZh'@; put 'MTlcdWZhMWFcdTc5OTRcdWZhMWJcdTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdhZWJcdTdiOWVcdWZhMWRcdTdkNDhcdTdkNWNcdTdkYjdcdTdkYTBcdTdkZDZcdTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0NDhcdTg0YjRcdTg1NTNc'@; put 'dTg1NTkiXSxbImVlODAiLCJcdTg1NmJcdWZhMWZcdTg1YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVcdThhMTJcdThhMzdcdThhNzlcdThhYTdcdThhYmVcdThhZGZcdWZhMjJcdThhZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNcdThlY2ZcdWZhMjRcdWZh'@; put 'MjVcdTkwNjdcdTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdcdTkxZGFcdTkxZDdcdTkxZGVcdTkxZWRcdTkxZWVcdTkxZTRcdTkxZTVcdTkyMDZcdTkyMTBcdTkyMGFcdTkyM2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTkyNzdcdTkyNzhcdTkyZTdc'@; put 'dTkyZDdcdTkyZDlcdTkyZDBcdWZhMjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJcdWZhMjhcdTkzMWVcdTkyZmZcdTkzMWRcdTkzMDJcdTkzNzBcdTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJcdWY5ZGNcdWZhMjlcdTk2'@; put 'OWRcdTk2YWZcdTk3MzNcdTk3M2JcdTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4NjVcdWZhMmFcdWZhMmJcdTk5MjdcdWZhMmNcdTk5OWVcdTlhNGVcdTlhZDlcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZhMmRc'@; put 'dTllMTlcdTllZDEiXSxbImVlZWYiLCJcdTIxNzAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMiJdLFsiZjA0MCIsIlx1ZTAwMCIsNjJdLFsiZjA4MCIsIlx1ZTAzZiIsMTI0XSxbImYxNDAiLCJcdWUwYmMiLDYyXSxbImYxODAiLCJcdWUwZmIiLDEyNF0sWyJmMjQwIiwiXHVlMTc4Iiw2'@; put 'Ml0sWyJmMjgwIiwiXHVlMWI3IiwxMjRdLFsiZjM0MCIsIlx1ZTIzNCIsNjJdLFsiZjM4MCIsIlx1ZTI3MyIsMTI0XSxbImY0NDAiLCJcdWUyZjAiLDYyXSxbImY0ODAiLCJcdWUzMmYiLDEyNF0sWyJmNTQwIiwiXHVlM2FjIiw2Ml0sWyJmNTgwIiwiXHVlM2ViIiwxMjRdLFsiZjY0MCIsIlx1'@; put 'ZTQ2OCIsNjJdLFsiZjY4MCIsIlx1ZTRhNyIsMTI0XSxbImY3NDAiLCJcdWU1MjQiLDYyXSxbImY3ODAiLCJcdWU1NjMiLDEyNF0sWyJmODQwIiwiXHVlNWUwIiw2Ml0sWyJmODgwIiwiXHVlNjFmIiwxMjRdLFsiZjk0MCIsIlx1ZTY5YyJdLFsiZmE0MCIsIlx1MjE3MCIsOSwiXHUyMTYwIiw5'@; put 'LCJcdWZmZTJcdWZmZTRcdWZmMDdcdWZmMDJcdTMyMzFcdTIxMTZcdTIxMjFcdTIyMzVcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZc'@; put 'dTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhcdTUxNGEiXSxbImZhODAiLCJcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUz'@; put 'MDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3YzdcdWZhMGZcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRc'@; put 'dTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYw'@; put 'ZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBc'@; put 'dTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZj'@; put 'ODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmYiXSxbImZiNDAiLCJcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZc'@; put 'dTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjFcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTczYmRcdTczYzlcdTczZDZcdTczZTNcdTczZDJcdTc0MDdcdTczZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlcdTc0OWZcdTc1MDFcdTc1'@; put 'NmZcdTc2ODJcdTc2OWNcdTc2OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2FcdTc5MzBcdWZhMThcdWZhMTkiXSxbImZiODAiLCJcdWZhMWFcdTc5OTRcdWZhMWJcdTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdhZWJcdTdiOWVcdWZhMWRc'@; put 'dTdkNDhcdTdkNWNcdTdkYjdcdTdkYTBcdTdkZDZcdTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0NDhcdTg0YjRcdTg1NTNcdTg1NTlcdTg1NmJcdWZhMWZcdTg1YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVcdThhMTJcdThhMzdcdThh'@; put 'NzlcdThhYTdcdThhYmVcdThhZGZcdWZhMjJcdThhZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNcdThlY2ZcdWZhMjRcdWZhMjVcdTkwNjdcdTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdcdTkxZGFcdTkxZDdcdTkxZGVcdTkxZWRcdTkxZWVcdTkxZTRcdTkxZTVc'@; put 'dTkyMDZcdTkyMTBcdTkyMGFcdTkyM2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTkyNzdcdTkyNzhcdTkyZTdcdTkyZDdcdTkyZDlcdTkyZDBcdWZhMjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJcdWZhMjhcdTkzMWVcdTky'@; put 'ZmZcdTkzMWRcdTkzMDJcdTkzNzBcdTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJcdWY5ZGNcdWZhMjlcdTk2OWRcdTk2YWZcdTk3MzNcdTk3M2JcdTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4NjVcdWZhMmFcdWZhMmJc'@; put 'dTk5MjdcdWZhMmNcdTk5OWVcdTlhNGVcdTlhZDkiXSxbImZjNDAiLCJcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZhMmRcdTllMTlcdTllZDEiXV0nKX0sMjI1NjI6YXQ9PnsidXNlIHN0cmljdCI7YXQuZXhwb3J0cz1KU09OLnBhcnNl'@; put 'KCd7IjIuMTYuODQwLjEuMTAxLjMuNC4xLjEiOiJhZXMtMTI4LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIiOiJhZXMtMTI4LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjMiOiJhZXMtMTI4LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQiOiJhZXMtMTI4LWNmYiIsIjIuMTYu'@; put 'ODQwLjEuMTAxLjMuNC4xLjIxIjoiYWVzLTE5Mi1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMiI6ImFlcy0xOTItY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjMiOiJhZXMtMTkyLW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjI0IjoiYWVzLTE5Mi1jZmIiLCIyLjE2Ljg0MC4x'@; put 'LjEwMS4zLjQuMS40MSI6ImFlcy0yNTYtZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDIiOiJhZXMtMjU2LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQzIjoiYWVzLTI1Ni1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40NCI6ImFlcy0yNTYtY2ZiIn0nKX19LGF0PT57YXQoYXQu'@; put 'cz04MjAyNSl9XSk7'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=polyfills.87dbbd3faabed513.js; filename filecode temp lrecl=207384; data _null_; file filecode; put 'KHNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W10pLnB1c2goW1s0MjldLHs1NTMyMTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3QoNDI0NCksdCg3NzY1NyksdCg4ODgxMyksdCg1MzEwKSx0KDUxNzcxKSx0KDYyMzE0KSx0'@; put 'KDE2MzQzKSx0KDM3MDQyKSx0KDc2NzcpLHQoODI2OTEpLHQoMjkxMzIpLHQoMTc4NzgpLHQoNTIyOTgpLHQoNDM0OTkpLHQoNjc3OTUpLHQoNDgzMzIpLHQoMzA3NTgpO3ZhciB2dD10KDM5MDA3KTt3aW5kb3cuZ2xvYmFsPXdpbmRvdyx3aW5kb3cuZ2xvYmFsLkJ1ZmZlcj13aW5kb3cuZ2xv'@; put 'YmFsLkJ1ZmZlcnx8dnQuQnVmZmVyLHdpbmRvdy5wcm9jZXNzPXt2ZXJzaW9uOiIifX0sOTkxOTooYyxsKT0+eyJ1c2Ugc3RyaWN0IjtsLmJ5dGVMZW5ndGg9ZnVuY3Rpb24gaShFKXt2YXIgaj1mKEUpLFI9alsxXTtyZXR1cm4gMyooalswXStSKS80LVJ9LGwudG9CeXRlQXJyYXk9ZnVuY3Rp'@; put 'b24geShFKXt2YXIgaixTLHc9ZihFKSxSPXdbMF0sRj13WzFdLEI9bmV3IGUoZnVuY3Rpb24gcChFLGosdyl7cmV0dXJuIDMqKGordykvNC13fSgwLFIsRikpLGI9MCxPPUY+MD9SLTQ6Ujtmb3IoUz0wO1M8TztTKz00KWo9bltFLmNoYXJDb2RlQXQoUyldPDwxOHxuW0UuY2hhckNvZGVBdChT'@; put 'KzEpXTw8MTJ8bltFLmNoYXJDb2RlQXQoUysyKV08PDZ8bltFLmNoYXJDb2RlQXQoUyszKV0sQltiKytdPWo+PjE2JjI1NSxCW2IrK109aj4+OCYyNTUsQltiKytdPTI1NSZqO3JldHVybiAyPT09RiYmKGo9bltFLmNoYXJDb2RlQXQoUyldPDwyfG5bRS5jaGFyQ29kZUF0KFMrMSldPj40LEJb'@; put 'YisrXT0yNTUmaiksMT09PUYmJihqPW5bRS5jaGFyQ29kZUF0KFMpXTw8MTB8bltFLmNoYXJDb2RlQXQoUysxKV08PDR8bltFLmNoYXJDb2RlQXQoUysyKV0+PjIsQltiKytdPWo+PjgmMjU1LEJbYisrXT0yNTUmaiksQn0sbC5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uIHgoRSl7Zm9yKHZhciBq'@; put 'LHc9RS5sZW5ndGgsUj13JTMsRj1bXSxCPTE2MzgzLGI9MCxPPXctUjtiPE87Yis9QilGLnB1c2goZyhFLGIsYitCPk8/TzpiK0IpKTtyZXR1cm4gMT09PVI/Ri5wdXNoKHRbKGo9RVt3LTFdKT4+Ml0rdFtqPDw0JjYzXSsiPT0iKToyPT09UiYmRi5wdXNoKHRbKGo9KEVbdy0yXTw8OCkrRVt3'@; put 'LTFdKT4+MTBdK3Rbaj4+NCY2M10rdFtqPDwyJjYzXSsiPSIpLEYuam9pbigiIil9O2Zvcih2YXIgdD1bXSxuPVtdLGU9dHlwZW9mIFVpbnQ4QXJyYXk8InUiP1VpbnQ4QXJyYXk6QXJyYXkscz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAx'@; put 'MjM0NTY3ODkrLyIsbz0wO288NjQ7KytvKXRbb109c1tvXSxuW3MuY2hhckNvZGVBdChvKV09bztmdW5jdGlvbiBmKEUpe3ZhciBqPUUubGVuZ3RoO2lmKGolND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciB3'@; put 'PUUuaW5kZXhPZigiPSIpO3JldHVybi0xPT09dyYmKHc9aiksW3csdz09PWo/MDo0LXclNF19ZnVuY3Rpb24gdihFKXtyZXR1cm4gdFtFPj4xOCY2M10rdFtFPj4xMiY2M10rdFtFPj42JjYzXSt0WzYzJkVdfWZ1bmN0aW9uIGcoRSxqLHcpe2Zvcih2YXIgRj1bXSxCPWo7Qjx3O0IrPTMpRi5w'@; put 'dXNoKHYoKEVbQl08PDE2JjE2NzExNjgwKSsoRVtCKzFdPDw4JjY1MjgwKSsoMjU1JkVbQisyXSkpKTtyZXR1cm4gRi5qb2luKCIiKX1uWyItIi5jaGFyQ29kZUF0KDApXT02MixuWyJfIi5jaGFyQ29kZUF0KDApXT02M30sMzkwMDc6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDk5'@; put 'MTkpLGU9dCgyMjYwMSkscz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpOm51bGw7bC5CdWZmZXI9aSxsLlNsb3dCdWZmZXI9ZnVuY3Rpb24gQihkKXtyZXR1cm4r'@; put 'ZCE9ZCYmKGQ9MCksaS5hbGxvYygrZCl9LGwuSU5TUEVDVF9NQVhfQllURVM9NTA7dmFyIG89MjE0NzQ4MzY0NztmdW5jdGlvbiBmKGQpe2lmKGQ+byl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK2QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO3ZhciByPW5l'@; put 'dyBVaW50OEFycmF5KGQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YocixpLnByb3RvdHlwZSkscn1mdW5jdGlvbiBpKGQscixhKXtpZigibnVtYmVyIj09dHlwZW9mIGQpe2lmKCJzdHJpbmciPT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1l'@; put 'bnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gZyhkKX1yZXR1cm4gcChkLHIsYSl9ZnVuY3Rpb24gcChkLHIsYSl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBmdW5jdGlvbiB4KGQscil7aWYoKCJzdHJpbmciIT10eXBlb2Ygcnx8'@; put 'IiI9PT1yKSYmKHI9InV0ZjgiKSwhaS5pc0VuY29kaW5nKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrcik7dmFyIGE9MHxiKGQsciksbT1mKGEpLEQ9bS53cml0ZShkLHIpO3JldHVybiBEIT09YSYmKG09bS5zbGljZSgwLEQpKSxtfShkLHIpO2lmKEFycmF5'@; put 'QnVmZmVyLmlzVmlldyhkKSlyZXR1cm4gZnVuY3Rpb24gaihkKXtpZihadChkLFVpbnQ4QXJyYXkpKXt2YXIgcj1uZXcgVWludDhBcnJheShkKTtyZXR1cm4gdyhyLmJ1ZmZlcixyLmJ5dGVPZmZzZXQsci5ieXRlTGVuZ3RoKX1yZXR1cm4gRShkKX0oZCk7aWYobnVsbD09ZCl0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBkKTtpZihadChkLEFycmF5QnVmZmVyKXx8ZCYmWnQoZC5i'@; put 'dWZmZXIsQXJyYXlCdWZmZXIpfHx0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI8InUiJiYoWnQoZCxTaGFyZWRBcnJheUJ1ZmZlcil8fGQmJlp0KGQuYnVmZmVyLFNoYXJlZEFycmF5QnVmZmVyKSkpcmV0dXJuIHcoZCxyLGEpO2lmKCJudW1iZXIiPT10eXBlb2YgZCl0aHJvdyBuZXcgVHlwZUVy'@; put 'cm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIgbT1kLnZhbHVlT2YmJmQudmFsdWVPZigpO2lmKG51bGwhPW0mJm0hPT1kKXJldHVybiBpLmZyb20obSxyLGEpO3ZhciBEPWZ1bmN0aW9uIFIoZCl7'@; put 'aWYoaS5pc0J1ZmZlcihkKSl7dmFyIHI9MHxGKGQubGVuZ3RoKSxhPWYocik7cmV0dXJuIDA9PT1hLmxlbmd0aHx8ZC5jb3B5KGEsMCwwLHIpLGF9cmV0dXJuIHZvaWQgMCE9PWQubGVuZ3RoPyJudW1iZXIiIT10eXBlb2YgZC5sZW5ndGh8fGVuKGQubGVuZ3RoKT9mKDApOkUoZCk6IkJ1ZmZl'@; put 'ciI9PT1kLnR5cGUmJkFycmF5LmlzQXJyYXkoZC5kYXRhKT9FKGQuZGF0YSk6dm9pZCAwfShkKTtpZihEKXJldHVybiBEO2lmKHR5cGVvZiBTeW1ib2w8InUiJiZudWxsIT1TeW1ib2wudG9QcmltaXRpdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBkW1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJu'@; put 'IGkuZnJvbShkW1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLHIsYSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJl'@; put 'Y2VpdmVkIHR5cGUgIit0eXBlb2YgZCl9ZnVuY3Rpb24geShkKXtpZigibnVtYmVyIiE9dHlwZW9mIGQpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihkPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytk'@; put 'KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKX1mdW5jdGlvbiBnKGQpe3JldHVybiB5KGQpLGYoZDwwPzA6MHxGKGQpKX1mdW5jdGlvbiBFKGQpe2Zvcih2YXIgcj1kLmxlbmd0aDwwPzA6MHxGKGQubGVuZ3RoKSxhPWYociksbT0wO208cjttKz0xKWFbbV09MjU1JmRbbV07cmV0'@; put 'dXJuIGF9ZnVuY3Rpb24gdyhkLHIsYSl7aWYocjwwfHxkLmJ5dGVMZW5ndGg8cil0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYoZC5ieXRlTGVuZ3RoPHIrKGF8fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBp'@; put 'cyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTt2YXIgbTtyZXR1cm4gbT12b2lkIDA9PT1yJiZ2b2lkIDA9PT1hP25ldyBVaW50OEFycmF5KGQpOnZvaWQgMD09PWE/bmV3IFVpbnQ4QXJyYXkoZCxyKTpuZXcgVWludDhBcnJheShkLHIsYSksT2JqZWN0LnNldFByb3RvdHlwZU9mKG0saS5w'@; put 'cm90b3R5cGUpLG19ZnVuY3Rpb24gRihkKXtpZihkPj1vKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitvLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8ZH1mdW5jdGlvbiBiKGQscil7'@; put 'aWYoaS5pc0J1ZmZlcihkKSlyZXR1cm4gZC5sZW5ndGg7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGQpfHxadChkLEFycmF5QnVmZmVyKSlyZXR1cm4gZC5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgZCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVz'@; put 'dCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgZCk7dmFyIGE9ZC5sZW5ndGgsbT1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCFtJiYwPT09YSlyZXR1cm4gMDtmb3IodmFyIEQ9ITE7'@; put 'Oylzd2l0Y2gocil7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gYTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBubihkKS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKmE7'@; put 'Y2FzZSJoZXgiOnJldHVybiBhPj4+MTtjYXNlImJhc2U2NCI6cmV0dXJuIG9uKGQpLmxlbmd0aDtkZWZhdWx0OmlmKEQpcmV0dXJuIG0/LTE6bm4oZCkubGVuZ3RoO3I9KCIiK3IpLnRvTG93ZXJDYXNlKCksRD0hMH19ZnVuY3Rpb24gTyhkLHIsYSl7dmFyIG09ITE7aWYoKHZvaWQgMD09PXJ8'@; put 'fHI8MCkmJihyPTApLHI+dGhpcy5sZW5ndGh8fCgodm9pZCAwPT09YXx8YT50aGlzLmxlbmd0aCkmJihhPXRoaXMubGVuZ3RoKSxhPD0wKXx8KGE+Pj49MCk8PShyPj4+PTApKXJldHVybiIiO2ZvcihkfHwoZD0idXRmOCIpOzspc3dpdGNoKGQpe2Nhc2UiaGV4IjpyZXR1cm4gdnQodGhpcyxy'@; put 'LGEpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIFgodGhpcyxyLGEpO2Nhc2UiYXNjaWkiOnJldHVybiBZKHRoaXMscixhKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBmdCh0aGlzLHIsYSk7Y2FzZSJiYXNlNjQiOnJldHVybiBzdCh0aGlzLHIsYSk7Y2FzZSJ1Y3My'@; put 'IjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBNdCh0aGlzLHIsYSk7ZGVmYXVsdDppZihtKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrZCk7ZD0oZCsiIikudG9Mb3dlckNhc2UoKSxtPSEwfX1mdW5jdGlvbiBTKGQscixh'@; put 'KXt2YXIgbT1kW3JdO2Rbcl09ZFthXSxkW2FdPW19ZnVuY3Rpb24gQyhkLHIsYSxtLEQpe2lmKDA9PT1kLmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIGE/KG09YSxhPTApOmE+MjE0NzQ4MzY0Nz9hPTIxNDc0ODM2NDc6YTwtMjE0NzQ4MzY0OCYmKGE9LTIxNDc0ODM2NDgp'@; put 'LGVuKGE9K2EpJiYoYT1EPzA6ZC5sZW5ndGgtMSksYTwwJiYoYT1kLmxlbmd0aCthKSxhPj1kLmxlbmd0aCl7aWYoRClyZXR1cm4tMTthPWQubGVuZ3RoLTF9ZWxzZSBpZihhPDApe2lmKCFEKXJldHVybi0xO2E9MH1pZigic3RyaW5nIj09dHlwZW9mIHImJihyPWkuZnJvbShyLG0pKSxpLmlz'@; put 'QnVmZmVyKHIpKXJldHVybiAwPT09ci5sZW5ndGg/LTE6SyhkLHIsYSxtLEQpO2lmKCJudW1iZXIiPT10eXBlb2YgcilyZXR1cm4gciY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP0Q/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxs'@; put 'KGQscixhKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGQscixhKTpLKGQsW3JdLGEsbSxEKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBLKGQscixhLG0sRCl7dmFyIFQsJD0xLGg9ZC5s'@; put 'ZW5ndGgsUD1yLmxlbmd0aDtpZih2b2lkIDAhPT1tJiYoInVjczIiPT09KG09U3RyaW5nKG0pLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09bXx8InV0ZjE2bGUiPT09bXx8InV0Zi0xNmxlIj09PW0pKXtpZihkLmxlbmd0aDwyfHxyLmxlbmd0aDwyKXJldHVybi0xOyQ9MixoLz0yLFAvPTIs'@; put 'YS89Mn1mdW5jdGlvbiBJKHosb3Qpe3JldHVybiAxPT09JD96W290XTp6LnJlYWRVSW50MTZCRShvdCokKX1pZihEKXt2YXIgQT0tMTtmb3IoVD1hO1Q8aDtUKyspaWYoSShkLFQpPT09SShyLC0xPT09QT8wOlQtQSkpe2lmKC0xPT09QSYmKEE9VCksVC1BKzE9PT1QKXJldHVybiBBKiR9ZWxz'@; put 'ZS0xIT09QSYmKFQtPVQtQSksQT0tMX1lbHNlIGZvcihhK1A+aCYmKGE9aC1QKSxUPWE7VD49MDtULS0pe2Zvcih2YXIgaz0hMCxKPTA7SjxQO0orKylpZihJKGQsVCtKKSE9PUkocixKKSl7az0hMTticmVha31pZihrKXJldHVybiBUfXJldHVybi0xfWZ1bmN0aW9uIFUoZCxyLGEsbSl7YT1O'@; put 'dW1iZXIoYSl8fDA7dmFyIEQ9ZC5sZW5ndGgtYTttPyhtPU51bWJlcihtKSk+RCYmKG09RCk6bT1EO3ZhciAkPXIubGVuZ3RoO20+JC8yJiYobT0kLzIpO2Zvcih2YXIgaD0wO2g8bTsrK2gpe3ZhciBQPXBhcnNlSW50KHIuc3Vic3RyKDIqaCwyKSwxNik7aWYoZW4oUCkpcmV0dXJuIGg7ZFth'@; put 'K2hdPVB9cmV0dXJuIGh9ZnVuY3Rpb24gWihkLHIsYSxtKXtyZXR1cm4gWXQobm4ocixkLmxlbmd0aC1hKSxkLGEsbSl9ZnVuY3Rpb24gdHQoZCxyLGEsbSl7cmV0dXJuIFl0KGZ1bmN0aW9uIGFuKGQpe2Zvcih2YXIgcj1bXSxhPTA7YTxkLmxlbmd0aDsrK2Epci5wdXNoKDI1NSZkLmNoYXJD'@; put 'b2RlQXQoYSkpO3JldHVybiByfShyKSxkLGEsbSl9ZnVuY3Rpb24gXyhkLHIsYSxtKXtyZXR1cm4gWXQob24ociksZCxhLG0pfWZ1bmN0aW9uIG50KGQscixhLG0pe3JldHVybiBZdChmdW5jdGlvbiBmbihkLHIpe2Zvcih2YXIgYSxtLCQ9W10saD0wO2g8ZC5sZW5ndGgmJiEoKHItPTIpPDAp'@; put 'OysraCltPShhPWQuY2hhckNvZGVBdChoKSk+PjgsJC5wdXNoKGElMjU2KSwkLnB1c2gobSk7cmV0dXJuICR9KHIsZC5sZW5ndGgtYSksZCxhLG0pfWZ1bmN0aW9uIHN0KGQscixhKXtyZXR1cm4gbi5mcm9tQnl0ZUFycmF5KDA9PT1yJiZhPT09ZC5sZW5ndGg/ZDpkLnNsaWNlKHIsYSkpfWZ1'@; put 'bmN0aW9uIFgoZCxyLGEpe2E9TWF0aC5taW4oZC5sZW5ndGgsYSk7Zm9yKHZhciBtPVtdLEQ9cjtEPGE7KXt2YXIgSSxULEEsaywkPWRbRF0saD1udWxsLFA9JD4yMzk/NDokPjIyMz8zOiQ+MTkxPzI6MTtpZihEK1A8PWEpc3dpdGNoKFApe2Nhc2UgMTokPDEyOCYmKGg9JCk7YnJlYWs7Y2Fz'@; put 'ZSAyOjEyOD09KDE5MiYoST1kW0QrMV0pKSYmKGs9KDMxJiQpPDw2fDYzJkkpPjEyNyYmKGg9ayk7YnJlYWs7Y2FzZSAzOlQ9ZFtEKzJdLDEyOD09KDE5MiYoST1kW0QrMV0pKSYmMTI4PT0oMTkyJlQpJiYoaz0oMTUmJCk8PDEyfCg2MyZJKTw8Nnw2MyZUKT4yMDQ3JiYoazw1NTI5Nnx8az41'@; put 'NzM0MykmJihoPWspO2JyZWFrO2Nhc2UgNDpUPWRbRCsyXSxBPWRbRCszXSwxMjg9PSgxOTImKEk9ZFtEKzFdKSkmJjEyOD09KDE5MiZUKSYmMTI4PT0oMTkyJkEpJiYoaz0oMTUmJCk8PDE4fCg2MyZJKTw8MTJ8KDYzJlQpPDw2fDYzJkEpPjY1NTM1JiZrPDExMTQxMTImJihoPWspfW51bGw9'@; put 'PT1oPyhoPTY1NTMzLFA9MSk6aD42NTUzNSYmKG0ucHVzaCgoaC09NjU1MzYpPj4+MTAmMTAyM3w1NTI5NiksaD01NjMyMHwxMDIzJmgpLG0ucHVzaChoKSxEKz1QfXJldHVybiBmdW5jdGlvbiBRKGQpe3ZhciByPWQubGVuZ3RoO2lmKHI8PVYpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUu'@; put 'YXBwbHkoU3RyaW5nLGQpO2Zvcih2YXIgYT0iIixtPTA7bTxyOylhKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxkLnNsaWNlKG0sbSs9VikpO3JldHVybiBhfShtKX1sLmtNYXhMZW5ndGg9bywhKGkuVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbiB1KCl7dHJ5e3ZhciBk'@; put 'PW5ldyBVaW50OEFycmF5KDEpLHI9e2ZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YocixVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKGQsciksNDI9PT1kLmZvbygpfWNhdGNoe3JldHVybiExfX0oKSkmJnR5'@; put 'cGVvZiBjb25zb2xlPCJ1IiYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUuZXJyb3ImJmNvbnNvbGUuZXJyb3IoIlRoaXMgYnJvd3NlciBsYWNrcyB0eXBlZCBhcnJheSAoVWludDhBcnJheSkgc3VwcG9ydCB3aGljaCBpcyByZXF1aXJlZCBieSBgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZl'@; put 'cmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLnByb3RvdHlwZSwicGFyZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihpLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ1ZmZlcn19KSxPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoaS5wcm90b3R5cGUsIm9mZnNldCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoaS5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5ieXRlT2Zmc2V0fX0pLGkucG9vbFNpemU9ODE5MixpLmZyb209ZnVuY3Rpb24oZCxyLGEpe3JldHVybiBwKGQs'@; put 'cixhKX0sT2JqZWN0LnNldFByb3RvdHlwZU9mKGkucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoaSxVaW50OEFycmF5KSxpLmFsbG9jPWZ1bmN0aW9uKGQscixhKXtyZXR1cm4gZnVuY3Rpb24gdihkLHIsYSl7cmV0dXJuIHkoZCksZDw9MD9m'@; put 'KGQpOnZvaWQgMCE9PXI/InN0cmluZyI9PXR5cGVvZiBhP2YoZCkuZmlsbChyLGEpOmYoZCkuZmlsbChyKTpmKGQpfShkLHIsYSl9LGkuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oZCl7cmV0dXJuIGcoZCl9LGkuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGQpe3JldHVybiBnKGQpfSxpLmlzQnVm'@; put 'ZmVyPWZ1bmN0aW9uKHIpe3JldHVybiBudWxsIT1yJiYhMD09PXIuX2lzQnVmZmVyJiZyIT09aS5wcm90b3R5cGV9LGkuY29tcGFyZT1mdW5jdGlvbihyLGEpe2lmKFp0KHIsVWludDhBcnJheSkmJihyPWkuZnJvbShyLHIub2Zmc2V0LHIuYnl0ZUxlbmd0aCkpLFp0KGEsVWludDhBcnJheSkm'@; put 'JihhPWkuZnJvbShhLGEub2Zmc2V0LGEuYnl0ZUxlbmd0aCkpLCFpLmlzQnVmZmVyKHIpfHwhaS5pc0J1ZmZlcihhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZihy'@; put 'PT09YSlyZXR1cm4gMDtmb3IodmFyIG09ci5sZW5ndGgsRD1hLmxlbmd0aCwkPTAsaD1NYXRoLm1pbihtLEQpOyQ8aDsrKyQpaWYoclskXSE9PWFbJF0pe209clskXSxEPWFbJF07YnJlYWt9cmV0dXJuIG08RD8tMTpEPG0/MTowfSxpLmlzRW5jb2Rpbmc9ZnVuY3Rpb24ocil7c3dpdGNoKFN0'@; put 'cmluZyhyKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJu'@; put 'ITA7ZGVmYXVsdDpyZXR1cm4hMX19LGkuY29uY2F0PWZ1bmN0aW9uKHIsYSl7aWYoIUFycmF5LmlzQXJyYXkocikpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT1yLmxlbmd0aClyZXR1cm4gaS5hbGxvYygw'@; put 'KTt2YXIgbTtpZih2b2lkIDA9PT1hKWZvcihhPTAsbT0wO208ci5sZW5ndGg7KyttKWErPXJbbV0ubGVuZ3RoO3ZhciBEPWkuYWxsb2NVbnNhZmUoYSksJD0wO2ZvcihtPTA7bTxyLmxlbmd0aDsrK20pe3ZhciBoPXJbbV07aWYoWnQoaCxVaW50OEFycmF5KSkkK2gubGVuZ3RoPkQubGVuZ3Ro'@; put 'P2kuZnJvbShoKS5jb3B5KEQsJCk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoRCxoLCQpO2Vsc2V7aWYoIWkuaXNCdWZmZXIoaCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2guY29weShELCQpfSQrPWgu'@; put 'bGVuZ3RofXJldHVybiBEfSxpLmJ5dGVMZW5ndGg9YixpLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsaS5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5sZW5ndGg7aWYociUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlw'@; put 'bGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgYT0wO2E8cjthKz0yKVModGhpcyxhLGErMSk7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciByPXRoaXMubGVuZ3RoO2lmKHIlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBh'@; put 'IG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIGE9MDthPHI7YSs9NClTKHRoaXMsYSxhKzMpLFModGhpcyxhKzEsYSsyKTtyZXR1cm4gdGhpc30saS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5sZW5ndGg7aWYociU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9y'@; put 'KCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2Zvcih2YXIgYT0wO2E8cjthKz04KVModGhpcyxhLGErNyksUyh0aGlzLGErMSxhKzYpLFModGhpcyxhKzIsYSs1KSxTKHRoaXMsYSszLGErNCk7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLnRvTG9jYWxlU3Ry'@; put 'aW5nPWkucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT1yPyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP1godGhpcywwLHIpOk8uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxpLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24ocil7aWYoIWku'@; put 'aXNCdWZmZXIocikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09cnx8MD09PWkuY29tcGFyZSh0aGlzLHIpfSxpLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7dmFyIHI9IiIsYT1sLklOU1BFQ1RfTUFYX0JZVEVTO3Jl'@; put 'dHVybiByPXRoaXMudG9TdHJpbmcoImhleCIsMCxhKS5yZXBsYWNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPmEmJihyKz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3IrIj4ifSxzJiYoaS5wcm90b3R5cGVbc109aS5wcm90b3R5cGUuaW5zcGVjdCksaS5wcm90b3R5cGUuY29t'@; put 'cGFyZT1mdW5jdGlvbihyLGEsbSxELCQpe2lmKFp0KHIsVWludDhBcnJheSkmJihyPWkuZnJvbShyLHIub2Zmc2V0LHIuYnl0ZUxlbmd0aCkpLCFpLmlzQnVmZmVyKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZl'@; put 'ciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHIpO2lmKHZvaWQgMD09PWEmJihhPTApLHZvaWQgMD09PW0mJihtPXI/ci5sZW5ndGg6MCksdm9pZCAwPT09RCYmKEQ9MCksdm9pZCAwPT09JCYmKCQ9dGhpcy5sZW5ndGgpLGE8MHx8bT5yLmxlbmd0aHx8RDwwfHwkPnRo'@; put 'aXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihEPj0kJiZhPj1tKXJldHVybiAwO2lmKEQ+PSQpcmV0dXJuLTE7aWYoYT49bSlyZXR1cm4gMTtpZih0aGlzPT09cilyZXR1cm4gMDtmb3IodmFyIGg9KCQ+Pj49MCktKEQ+Pj49MCksUD0obT4+'@; put 'Pj0wKS0oYT4+Pj0wKSxJPU1hdGgubWluKGgsUCksVD10aGlzLnNsaWNlKEQsJCksQT1yLnNsaWNlKGEsbSksaz0wO2s8STsrK2spaWYoVFtrXSE9PUFba10pe2g9VFtrXSxQPUFba107YnJlYWt9cmV0dXJuIGg8UD8tMTpQPGg/MTowfSxpLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihy'@; put 'LGEsbSl7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YocixhLG0pfSxpLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4gQyh0aGlzLHIsYSxtLCEwKX0saS5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24ocixhLG0pe3JldHVybiBDKHRoaXMscixhLG0sITEpfSxp'@; put 'LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihyLGEsbSxEKXtpZih2b2lkIDA9PT1hKUQ9InV0ZjgiLG09dGhpcy5sZW5ndGgsYT0wO2Vsc2UgaWYodm9pZCAwPT09bSYmInN0cmluZyI9PXR5cGVvZiBhKUQ9YSxtPXRoaXMubGVuZ3RoLGE9MDtlbHNle2lmKCFpc0Zpbml0ZShhKSl0aHJvdyBu'@; put 'ZXcgRXJyb3IoIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7YT4+Pj0wLGlzRmluaXRlKG0pPyhtPj4+PTAsdm9pZCAwPT09RCYmKEQ9InV0ZjgiKSk6KEQ9bSxtPXZvaWQgMCl9dmFyICQ9dGhpcy5sZW5n'@; put 'dGgtYTtpZigodm9pZCAwPT09bXx8bT4kKSYmKG09JCksci5sZW5ndGg+MCYmKG08MHx8YTwwKXx8YT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtEfHwoRD0idXRmOCIpO2Zvcih2YXIgaD0hMTs7KXN3'@; put 'aXRjaChEKXtjYXNlImhleCI6cmV0dXJuIFUodGhpcyxyLGEsbSk7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gWih0aGlzLHIsYSxtKTtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiB0dCh0aGlzLHIsYSxtKTtjYXNlImJhc2U2NCI6cmV0dXJuIF8o'@; put 'dGhpcyxyLGEsbSk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBudCh0aGlzLHIsYSxtKTtkZWZhdWx0OmlmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitEKTtEPSgiIitEKS50b0xvd2VyQ2FzZSgp'@; put 'LGg9ITB9fSxpLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O3ZhciBWPTQwOTY7ZnVuY3Rpb24gWShkLHIsYSl7dmFyIG09IiI7YT1NYXRoLm1pbihkLmxl'@; put 'bmd0aCxhKTtmb3IodmFyIEQ9cjtEPGE7KytEKW0rPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JmRbRF0pO3JldHVybiBtfWZ1bmN0aW9uIGZ0KGQscixhKXt2YXIgbT0iIjthPU1hdGgubWluKGQubGVuZ3RoLGEpO2Zvcih2YXIgRD1yO0Q8YTsrK0QpbSs9U3RyaW5nLmZyb21DaGFyQ29kZShk'@; put 'W0RdKTtyZXR1cm4gbX1mdW5jdGlvbiB2dChkLHIsYSl7dmFyIG09ZC5sZW5ndGg7KCFyfHxyPDApJiYocj0wKSwoIWF8fGE8MHx8YT5tKSYmKGE9bSk7Zm9yKHZhciBEPSIiLCQ9cjskPGE7KyskKUQrPWxuW2RbJF1dO3JldHVybiBEfWZ1bmN0aW9uIE10KGQscixhKXtmb3IodmFyIG09ZC5z'@; put 'bGljZShyLGEpLEQ9IiIsJD0wOyQ8bS5sZW5ndGgtMTskKz0yKUQrPVN0cmluZy5mcm9tQ2hhckNvZGUobVskXSsyNTYqbVskKzFdKTtyZXR1cm4gRH1mdW5jdGlvbiBFdChkLHIsYSl7aWYoZCUxIT0wfHxkPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lm'@; put 'KGQrcj5hKXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gRnQoZCxyLGEsbSxELCQpe2lmKCFpLmlzQnVmZmVyKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZm'@; put 'ZXIgaW5zdGFuY2UnKTtpZihyPkR8fHI8JCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYoYSttPmQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBqdChkLHIsYSxtLEQs'@; put 'JCl7aWYoYSttPmQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihhPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIFh0KGQscixhLG0sRCl7cmV0dXJuIHI9K3IsYT4+Pj0wLER8fGp0KGQsMCxh'@; put 'LDQpLGUud3JpdGUoZCxyLGEsbSwyMyw0KSxhKzR9ZnVuY3Rpb24gQnQoZCxyLGEsbSxEKXtyZXR1cm4gcj0rcixhPj4+PTAsRHx8anQoZCwwLGEsOCksZS53cml0ZShkLHIsYSxtLDUyLDgpLGErOH1pLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihyLGEpe3ZhciBtPXRoaXMubGVuZ3RoOyhy'@; put 'PX5+cik8MD8ocis9bSk8MCYmKHI9MCk6cj5tJiYocj1tKSwoYT12b2lkIDA9PT1hP206fn5hKTwwPyhhKz1tKTwwJiYoYT0wKTphPm0mJihhPW0pLGE8ciYmKGE9cik7dmFyIEQ9dGhpcy5zdWJhcnJheShyLGEpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoRCxpLnByb3RvdHlwZSks'@; put 'RH0saS5wcm90b3R5cGUucmVhZFVpbnRMRT1pLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKHIsYSxtKXtyPj4+PTAsYT4+Pj0wLG18fEV0KHIsYSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBEPXRoaXNbcl0sJD0xLGg9MDsrK2g8YSYmKCQqPTI1Nik7KUQrPXRoaXNbcitoXSokO3JldHVy'@; put 'biBEfSxpLnByb3RvdHlwZS5yZWFkVWludEJFPWkucHJvdG90eXBlLnJlYWRVSW50QkU9ZnVuY3Rpb24ocixhLG0pe3I+Pj49MCxhPj4+PTAsbXx8RXQocixhLHRoaXMubGVuZ3RoKTtmb3IodmFyIEQ9dGhpc1tyKy0tYV0sJD0xO2E+MCYmKCQqPTI1Nik7KUQrPXRoaXNbcistLWFdKiQ7cmV0'@; put 'dXJuIER9LGkucHJvdG90eXBlLnJlYWRVaW50OD1pLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24ocixhKXtyZXR1cm4gcj4+Pj0wLGF8fEV0KHIsMSx0aGlzLmxlbmd0aCksdGhpc1tyXX0saS5wcm90b3R5cGUucmVhZFVpbnQxNkxFPWkucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5j'@; put 'dGlvbihyLGEpe3JldHVybiByPj4+PTAsYXx8RXQociwyLHRoaXMubGVuZ3RoKSx0aGlzW3JdfHRoaXNbcisxXTw8OH0saS5wcm90b3R5cGUucmVhZFVpbnQxNkJFPWkucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbihyLGEpe3JldHVybiByPj4+PTAsYXx8RXQociwyLHRoaXMubGVu'@; put 'Z3RoKSx0aGlzW3JdPDw4fHRoaXNbcisxXX0saS5wcm90b3R5cGUucmVhZFVpbnQzMkxFPWkucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbihyLGEpe3JldHVybiByPj4+PTAsYXx8RXQociw0LHRoaXMubGVuZ3RoKSwodGhpc1tyXXx0aGlzW3IrMV08PDh8dGhpc1tyKzJdPDwxNikr'@; put 'MTY3NzcyMTYqdGhpc1tyKzNdfSxpLnByb3RvdHlwZS5yZWFkVWludDMyQkU9aS5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIHI+Pj49MCxhfHxFdChyLDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbcl0rKHRoaXNbcisxXTw8MTZ8dGhpc1tyKzJdPDw4'@; put 'fHRoaXNbciszXSl9LGkucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbihyLGEsbSl7cj4+Pj0wLGE+Pj49MCxtfHxFdChyLGEsdGhpcy5sZW5ndGgpO2Zvcih2YXIgRD10aGlzW3JdLCQ9MSxoPTA7KytoPGEmJigkKj0yNTYpOylEKz10aGlzW3IraF0qJDtyZXR1cm4gRD49KCQqPTEyOCkm'@; put 'JihELT1NYXRoLnBvdygyLDgqYSkpLER9LGkucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbihyLGEsbSl7cj4+Pj0wLGE+Pj49MCxtfHxFdChyLGEsdGhpcy5sZW5ndGgpO2Zvcih2YXIgRD1hLCQ9MSxoPXRoaXNbcistLURdO0Q+MCYmKCQqPTI1Nik7KWgrPXRoaXNbcistLURdKiQ7cmV0'@; put 'dXJuIGg+PSgkKj0xMjgpJiYoaC09TWF0aC5wb3coMiw4KmEpKSxofSxpLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbihyLGEpe3JldHVybiByPj4+PTAsYXx8RXQociwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1tyXT8tMSooMjU1LXRoaXNbcl0rMSk6dGhpc1tyXX0saS5wcm90b3R5cGUu'@; put 'cmVhZEludDE2TEU9ZnVuY3Rpb24ocixhKXtyPj4+PTAsYXx8RXQociwyLHRoaXMubGVuZ3RoKTt2YXIgbT10aGlzW3JdfHRoaXNbcisxXTw8ODtyZXR1cm4gMzI3NjgmbT80Mjk0OTAxNzYwfG06bX0saS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24ocixhKXtyPj4+PTAsYXx8RXQo'@; put 'ciwyLHRoaXMubGVuZ3RoKTt2YXIgbT10aGlzW3IrMV18dGhpc1tyXTw8ODtyZXR1cm4gMzI3NjgmbT80Mjk0OTAxNzYwfG06bX0saS5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24ocixhKXtyZXR1cm4gcj4+Pj0wLGF8fEV0KHIsNCx0aGlzLmxlbmd0aCksdGhpc1tyXXx0aGlzW3Ir'@; put 'MV08PDh8dGhpc1tyKzJdPDwxNnx0aGlzW3IrM108PDI0fSxpLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbihyLGEpe3JldHVybiByPj4+PTAsYXx8RXQociw0LHRoaXMubGVuZ3RoKSx0aGlzW3JdPDwyNHx0aGlzW3IrMV08PDE2fHRoaXNbcisyXTw8OHx0aGlzW3IrM119LGkucHJv'@; put 'dG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIHI+Pj49MCxhfHxFdChyLDQsdGhpcy5sZW5ndGgpLGUucmVhZCh0aGlzLHIsITAsMjMsNCl9LGkucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uKHIsYSl7cmV0dXJuIHI+Pj49MCxhfHxFdChyLDQsdGhpcy5sZW5n'@; put 'dGgpLGUucmVhZCh0aGlzLHIsITEsMjMsNCl9LGkucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbihyLGEpe3JldHVybiByPj4+PTAsYXx8RXQociw4LHRoaXMubGVuZ3RoKSxlLnJlYWQodGhpcyxyLCEwLDUyLDgpfSxpLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24ocixh'@; put 'KXtyZXR1cm4gcj4+Pj0wLGF8fEV0KHIsOCx0aGlzLmxlbmd0aCksZS5yZWFkKHRoaXMsciwhMSw1Miw4KX0saS5wcm90b3R5cGUud3JpdGVVaW50TEU9aS5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24ocixhLG0sRCl7cj0rcixhPj4+PTAsbT4+Pj0wLER8fEZ0KHRoaXMscixhLG0s'@; put 'TWF0aC5wb3coMiw4Km0pLTEsMCk7dmFyIGg9MSxQPTA7Zm9yKHRoaXNbYV09MjU1JnI7KytQPG0mJihoKj0yNTYpOyl0aGlzW2ErUF09ci9oJjI1NTtyZXR1cm4gYSttfSxpLnByb3RvdHlwZS53cml0ZVVpbnRCRT1pLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbihyLGEsbSxEKXty'@; put 'PStyLGE+Pj49MCxtPj4+PTAsRHx8RnQodGhpcyxyLGEsbSxNYXRoLnBvdygyLDgqbSktMSwwKTt2YXIgaD1tLTEsUD0xO2Zvcih0aGlzW2EraF09MjU1JnI7LS1oPj0wJiYoUCo9MjU2KTspdGhpc1thK2hdPXIvUCYyNTU7cmV0dXJuIGErbX0saS5wcm90b3R5cGUud3JpdGVVaW50OD1pLnBy'@; put 'b3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4gcj0rcixhPj4+PTAsbXx8RnQodGhpcyxyLGEsMSwyNTUsMCksdGhpc1thXT0yNTUmcixhKzF9LGkucHJvdG90eXBlLndyaXRlVWludDE2TEU9aS5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbihyLGEsbSl7'@; put 'cmV0dXJuIHI9K3IsYT4+Pj0wLG18fEZ0KHRoaXMscixhLDIsNjU1MzUsMCksdGhpc1thXT0yNTUmcix0aGlzW2ErMV09cj4+PjgsYSsyfSxpLnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPWkucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24ocixhLG0pe3JldHVybiByPStyLGE+Pj49'@; put 'MCxtfHxGdCh0aGlzLHIsYSwyLDY1NTM1LDApLHRoaXNbYV09cj4+PjgsdGhpc1thKzFdPTI1NSZyLGErMn0saS5wcm90b3R5cGUud3JpdGVVaW50MzJMRT1pLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4gcj0rcixhPj4+PTAsbXx8RnQodGhpcyxyLGEs'@; put 'NCw0Mjk0OTY3Mjk1LDApLHRoaXNbYSszXT1yPj4+MjQsdGhpc1thKzJdPXI+Pj4xNix0aGlzW2ErMV09cj4+PjgsdGhpc1thXT0yNTUmcixhKzR9LGkucHJvdG90eXBlLndyaXRlVWludDMyQkU9aS5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbihyLGEsbSl7cmV0dXJuIHI9K3Is'@; put 'YT4+Pj0wLG18fEZ0KHRoaXMscixhLDQsNDI5NDk2NzI5NSwwKSx0aGlzW2FdPXI+Pj4yNCx0aGlzW2ErMV09cj4+PjE2LHRoaXNbYSsyXT1yPj4+OCx0aGlzW2ErM109MjU1JnIsYSs0fSxpLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHIsYSxtLEQpe2lmKHI9K3IsYT4+Pj0wLCFE'@; put 'KXt2YXIgJD1NYXRoLnBvdygyLDgqbS0xKTtGdCh0aGlzLHIsYSxtLCQtMSwtJCl9dmFyIGg9MCxQPTEsST0wO2Zvcih0aGlzW2FdPTI1NSZyOysraDxtJiYoUCo9MjU2KTspcjwwJiYwPT09SSYmMCE9PXRoaXNbYStoLTFdJiYoST0xKSx0aGlzW2EraF09KHIvUD4+MCktSSYyNTU7cmV0dXJu'@; put 'IGErbX0saS5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihyLGEsbSxEKXtpZihyPStyLGE+Pj49MCwhRCl7dmFyICQ9TWF0aC5wb3coMiw4Km0tMSk7RnQodGhpcyxyLGEsbSwkLTEsLSQpfXZhciBoPW0tMSxQPTEsST0wO2Zvcih0aGlzW2EraF09MjU1JnI7LS1oPj0wJiYoUCo9MjU2'@; put 'KTspcjwwJiYwPT09SSYmMCE9PXRoaXNbYStoKzFdJiYoST0xKSx0aGlzW2EraF09KHIvUD4+MCktSSYyNTU7cmV0dXJuIGErbX0saS5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4gcj0rcixhPj4+PTAsbXx8RnQodGhpcyxyLGEsMSwxMjcsLTEyOCkscjwwJiYo'@; put 'cj0yNTUrcisxKSx0aGlzW2FdPTI1NSZyLGErMX0saS5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4gcj0rcixhPj4+PTAsbXx8RnQodGhpcyxyLGEsMiwzMjc2NywtMzI3NjgpLHRoaXNbYV09MjU1JnIsdGhpc1thKzFdPXI+Pj44LGErMn0saS5wcm90b3R5'@; put 'cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4gcj0rcixhPj4+PTAsbXx8RnQodGhpcyxyLGEsMiwzMjc2NywtMzI3NjgpLHRoaXNbYV09cj4+PjgsdGhpc1thKzFdPTI1NSZyLGErMn0saS5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4g'@; put 'cj0rcixhPj4+PTAsbXx8RnQodGhpcyxyLGEsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW2FdPTI1NSZyLHRoaXNbYSsxXT1yPj4+OCx0aGlzW2ErMl09cj4+PjE2LHRoaXNbYSszXT1yPj4+MjQsYSs0fSxpLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24ocixhLG0pe3Jl'@; put 'dHVybiByPStyLGE+Pj49MCxtfHxGdCh0aGlzLHIsYSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHI8MCYmKHI9NDI5NDk2NzI5NStyKzEpLHRoaXNbYV09cj4+PjI0LHRoaXNbYSsxXT1yPj4+MTYsdGhpc1thKzJdPXI+Pj44LHRoaXNbYSszXT0yNTUmcixhKzR9LGkucHJvdG90eXBlLndy'@; put 'aXRlRmxvYXRMRT1mdW5jdGlvbihyLGEsbSl7cmV0dXJuIFh0KHRoaXMscixhLCEwLG0pfSxpLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24ocixhLG0pe3JldHVybiBYdCh0aGlzLHIsYSwhMSxtKX0saS5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbihyLGEsbSl7cmV0'@; put 'dXJuIEJ0KHRoaXMscixhLCEwLG0pfSxpLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKHIsYSxtKXtyZXR1cm4gQnQodGhpcyxyLGEsITEsbSl9LGkucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24ocixhLG0sRCl7aWYoIWkuaXNCdWZmZXIocikpdGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'YXJndW1lbnQgc2hvdWxkIGJlIGEgQnVmZmVyIik7aWYobXx8KG09MCksIUQmJjAhPT1EJiYoRD10aGlzLmxlbmd0aCksYT49ci5sZW5ndGgmJihhPXIubGVuZ3RoKSxhfHwoYT0wKSxEPjAmJkQ8bSYmKEQ9bSksRD09PW18fDA9PT1yLmxlbmd0aHx8MD09PXRoaXMubGVuZ3RoKXJldHVybiAw'@; put 'O2lmKGE8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKG08MHx8bT49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKEQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91'@; put 'dCBvZiBib3VuZHMiKTtEPnRoaXMubGVuZ3RoJiYoRD10aGlzLmxlbmd0aCksci5sZW5ndGgtYTxELW0mJihEPXIubGVuZ3RoLWErbSk7dmFyICQ9RC1tO3JldHVybiB0aGlzPT09ciYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4/dGhpcy5jb3B5'@; put 'V2l0aGluKGEsbSxEKTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChyLHRoaXMuc3ViYXJyYXkobSxEKSxhKSwkfSxpLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKHIsYSxtLEQpe2lmKCJzdHJpbmciPT10eXBlb2Ygcil7aWYoInN0cmluZyI9PXR5cGVvZiBhPyhEPWEsYT0wLG09dGhp'@; put 'cy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2YgbSYmKEQ9bSxtPXRoaXMubGVuZ3RoKSx2b2lkIDAhPT1EJiYic3RyaW5nIiE9dHlwZW9mIEQpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgRCYmIWkuaXNFbmNvZGlu'@; put 'ZyhEKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK0QpO2lmKDE9PT1yLmxlbmd0aCl7dmFyICQ9ci5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1EJiYkPDEyOHx8ImxhdGluMSI9PT1EKSYmKHI9JCl9fWVsc2UibnVtYmVyIj09dHlwZW9mIHI/ciY9MjU1OiJib29s'@; put 'ZWFuIj09dHlwZW9mIHImJihyPU51bWJlcihyKSk7aWYoYTwwfHx0aGlzLmxlbmd0aDxhfHx0aGlzLmxlbmd0aDxtKXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihtPD1hKXJldHVybiB0aGlzO3ZhciBoO2lmKGE+Pj49MCxtPXZvaWQgMD09PW0/dGhpcy5s'@; put 'ZW5ndGg6bT4+PjAscnx8KHI9MCksIm51bWJlciI9PXR5cGVvZiByKWZvcihoPWE7aDxtOysraCl0aGlzW2hdPXI7ZWxzZXt2YXIgUD1pLmlzQnVmZmVyKHIpP3I6aS5mcm9tKHIsRCksST1QLmxlbmd0aDtpZigwPT09SSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgIicrcisnIiBp'@; put 'cyBpbnZhbGlkIGZvciBhcmd1bWVudCAidmFsdWUiJyk7Zm9yKGg9MDtoPG0tYTsrK2gpdGhpc1toK2FdPVBbaCVJXX1yZXR1cm4gdGhpc307dmFyIFF0PS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gbm4oZCxyKXtyPXJ8fDEvMDtmb3IodmFyIGEsbT1kLmxlbmd0aCxEPW51bGwsJD1b'@; put 'XSxoPTA7aDxtOysraCl7aWYoKGE9ZC5jaGFyQ29kZUF0KGgpKT41NTI5NSYmYTw1NzM0NCl7aWYoIUQpe2lmKGE+NTYzMTkpeyhyLT0zKT4tMSYmJC5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihoKzE9PT1tKXsoci09Myk+LTEmJiQucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9'@; put 'RD1hO2NvbnRpbnVlfWlmKGE8NTYzMjApeyhyLT0zKT4tMSYmJC5wdXNoKDIzOSwxOTEsMTg5KSxEPWE7Y29udGludWV9YT02NTUzNisoRC01NTI5Njw8MTB8YS01NjMyMCl9ZWxzZSBEJiYoci09Myk+LTEmJiQucHVzaCgyMzksMTkxLDE4OSk7aWYoRD1udWxsLGE8MTI4KXtpZigoci09MSk8'@; put 'MClicmVhazskLnB1c2goYSl9ZWxzZSBpZihhPDIwNDgpe2lmKChyLT0yKTwwKWJyZWFrOyQucHVzaChhPj42fDE5Miw2MyZhfDEyOCl9ZWxzZSBpZihhPDY1NTM2KXtpZigoci09Myk8MClicmVhazskLnB1c2goYT4+MTJ8MjI0LGE+PjYmNjN8MTI4LDYzJmF8MTI4KX1lbHNle2lmKCEoYTwx'@; put 'MTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKChyLT00KTwwKWJyZWFrOyQucHVzaChhPj4xOHwyNDAsYT4+MTImNjN8MTI4LGE+PjYmNjN8MTI4LDYzJmF8MTI4KX19cmV0dXJuICR9ZnVuY3Rpb24gb24oZCl7cmV0dXJuIG4udG9CeXRlQXJyYXkoZnVu'@; put 'Y3Rpb24gcm4oZCl7aWYoKGQ9KGQ9ZC5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZShRdCwiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7ZC5sZW5ndGglNCE9MDspZCs9Ij0iO3JldHVybiBkfShkKSl9ZnVuY3Rpb24gWXQoZCxyLGEsbSl7Zm9yKHZhciBEPTA7RDxtJiYhKEQrYT49'@; put 'ci5sZW5ndGh8fEQ+PWQubGVuZ3RoKTsrK0QpcltEK2FdPWRbRF07cmV0dXJuIER9ZnVuY3Rpb24gWnQoZCxyKXtyZXR1cm4gZCBpbnN0YW5jZW9mIHJ8fG51bGwhPWQmJm51bGwhPWQuY29uc3RydWN0b3ImJm51bGwhPWQuY29uc3RydWN0b3IubmFtZSYmZC5jb25zdHJ1Y3Rvci5uYW1lPT09'@; put 'ci5uYW1lfWZ1bmN0aW9uIGVuKGQpe3JldHVybiBkIT1kfXZhciBsbj1mdW5jdGlvbigpe2Zvcih2YXIgZD0iMDEyMzQ1Njc4OWFiY2RlZiIscj1uZXcgQXJyYXkoMjU2KSxhPTA7YTwxNjsrK2EpZm9yKHZhciBtPTE2KmEsRD0wO0Q8MTY7KytEKXJbbStEXT1kW2FdK2RbRF07cmV0dXJuIHJ9'@; put 'KCl9LDIyNjAxOihjLGwpPT57bC5yZWFkPWZ1bmN0aW9uKHQsbixlLHMsbyl7dmFyIHUsZixpPTgqby1zLTEscD0oMTw8aSktMSx5PXA+PjEsdj0tNyxnPWU/by0xOjAseD1lPy0xOjEsRT10W24rZ107Zm9yKGcrPXgsdT1FJigxPDwtdiktMSxFPj49LXYsdis9aTt2PjA7dT0yNTYqdSt0W24r'@; put 'Z10sZys9eCx2LT04KTtmb3IoZj11JigxPDwtdiktMSx1Pj49LXYsdis9czt2PjA7Zj0yNTYqZit0W24rZ10sZys9eCx2LT04KTtpZigwPT09dSl1PTEteTtlbHNle2lmKHU9PT1wKXJldHVybiBmP05hTjoxLzAqKEU/LTE6MSk7Zis9TWF0aC5wb3coMixzKSx1LT15fXJldHVybihFPy0xOjEp'@; put 'KmYqTWF0aC5wb3coMix1LXMpfSxsLndyaXRlPWZ1bmN0aW9uKHQsbixlLHMsbyx1KXt2YXIgZixpLHAseT04KnUtby0xLHY9KDE8PHkpLTEsZz12Pj4xLHg9MjM9PT1vP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxFPXM/MDp1LTEsaj1zPzE6LTEsdz1uPDB8fDA9PT1uJiYx'@; put 'L248MD8xOjA7Zm9yKG49TWF0aC5hYnMobiksaXNOYU4obil8fG49PT0xLzA/KGk9aXNOYU4obik/MTowLGY9dik6KGY9TWF0aC5mbG9vcihNYXRoLmxvZyhuKS9NYXRoLkxOMiksbioocD1NYXRoLnBvdygyLC1mKSk8MSYmKGYtLSxwKj0yKSwobis9ZitnPj0xP3gvcDp4Kk1hdGgucG93KDIs'@; put 'MS1nKSkqcD49MiYmKGYrKyxwLz0yKSxmK2c+PXY/KGk9MCxmPXYpOmYrZz49MT8oaT0obipwLTEpKk1hdGgucG93KDIsbyksZis9Zyk6KGk9bipNYXRoLnBvdygyLGctMSkqTWF0aC5wb3coMixvKSxmPTApKTtvPj04O3RbZStFXT0yNTUmaSxFKz1qLGkvPTI1NixvLT04KTtmb3IoZj1mPDxv'@; put 'fGkseSs9bzt5PjA7dFtlK0VdPTI1NSZmLEUrPWosZi89MjU2LHktPTgpO3RbZStFLWpdfD0xMjgqd319LDQ4MzMyOigpPT57InVzZSBzdHJpY3QiOyFmdW5jdGlvbihoKXtjb25zdCBQPWgucGVyZm9ybWFuY2U7ZnVuY3Rpb24gSShJdCl7UCYmUC5tYXJrJiZQLm1hcmsoSXQpfWZ1bmN0aW9u'@; put 'IFQoSXQsYXQpe1AmJlAubWVhc3VyZSYmUC5tZWFzdXJlKEl0LGF0KX1JKCJab25lIik7Y29uc3QgQT1oLl9fWm9uZV9zeW1ib2xfcHJlZml4fHwiX196b25lX3N5bWJvbF9fIjtmdW5jdGlvbiBrKEl0KXtyZXR1cm4gQStJdH1jb25zdCBKPSEwPT09aFtrKCJmb3JjZUR1cGxpY2F0ZVpvbmVD'@; put 'aGVjayIpXTtpZihoLlpvbmUpe2lmKEp8fCJmdW5jdGlvbiIhPXR5cGVvZiBoLlpvbmUuX19zeW1ib2xfXyl0aHJvdyBuZXcgRXJyb3IoIlpvbmUgYWxyZWFkeSBsb2FkZWQuIik7cmV0dXJuIGguWm9uZX1sZXQgej0oKCk9PntjbGFzcyBJdHtzdGF0aWMgYXNzZXJ0Wm9uZVBhdGNoZWQoKXtp'@; put 'ZihoLlByb21pc2UhPT1fdC5ab25lQXdhcmVQcm9taXNlKXRocm93IG5ldyBFcnJvcigiWm9uZS5qcyBoYXMgZGV0ZWN0ZWQgdGhhdCBab25lQXdhcmVQcm9taXNlIGAod2luZG93fGdsb2JhbCkuUHJvbWlzZWAgaGFzIGJlZW4gb3ZlcndyaXR0ZW4uXG5Nb3N0IGxpa2VseSBjYXVzZSBpcyB0'@; put 'aGF0IGEgUHJvbWlzZSBwb2x5ZmlsbCBoYXMgYmVlbiBsb2FkZWQgYWZ0ZXIgWm9uZS5qcyAoUG9seWZpbGxpbmcgUHJvbWlzZSBhcGkgaXMgbm90IG5lY2Vzc2FyeSB3aGVuIHpvbmUuanMgaXMgbG9hZGVkLiBJZiB5b3UgbXVzdCBsb2FkIG9uZSwgZG8gc28gYmVmb3JlIGxvYWRpbmcgem9u'@; put 'ZS5qcy4pIil9c3RhdGljIGdldCByb290KCl7bGV0IE09SXQuY3VycmVudDtmb3IoO00ucGFyZW50OylNPU0ucGFyZW50O3JldHVybiBNfXN0YXRpYyBnZXQgY3VycmVudCgpe3JldHVybiBMdC56b25lfXN0YXRpYyBnZXQgY3VycmVudFRhc2soKXtyZXR1cm4gcXR9c3RhdGljIF9fbG9hZF9w'@; put 'YXRjaChNLE4saHQ9ITEpe2lmKF90Lmhhc093blByb3BlcnR5KE0pKXtpZighaHQmJkopdGhyb3cgRXJyb3IoIkFscmVhZHkgbG9hZGVkIHBhdGNoOiAiK00pfWVsc2UgaWYoIWhbIl9fWm9uZV9kaXNhYmxlXyIrTV0pe2NvbnN0IG10PSJab25lOiIrTTtJKG10KSxfdFtNXT1OKGgsSXQsSHQp'@; put 'LFQobXQsbXQpfX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3BhcmVudH1nZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfWNvbnN0cnVjdG9yKE0sTil7dGhpcy5fcGFyZW50PU0sdGhpcy5fbmFtZT1OP04ubmFtZXx8InVubmFtZWQiOiI8cm9vdD4iLHRoaXMuX3Byb3BlcnRpZXM9TiYm'@; put 'Ti5wcm9wZXJ0aWVzfHx7fSx0aGlzLl96b25lRGVsZWdhdGU9bmV3IGN0KHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSxOKX1nZXQoTSl7Y29uc3QgTj10aGlzLmdldFpvbmVXaXRoKE0pO2lmKE4pcmV0dXJuIE4uX3Byb3BlcnRpZXNbTV19Z2V0Wm9uZVdp'@; put 'dGgoTSl7bGV0IE49dGhpcztmb3IoO047KXtpZihOLl9wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KE0pKXJldHVybiBOO049Ti5fcGFyZW50fXJldHVybiBudWxsfWZvcmsoTSl7aWYoIU0pdGhyb3cgbmV3IEVycm9yKCJab25lU3BlYyByZXF1aXJlZCEiKTtyZXR1cm4gdGhpcy5fem9uZURl'@; put 'bGVnYXRlLmZvcmsodGhpcyxNKX13cmFwKE0sTil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIE0pdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RpbmcgZnVuY3Rpb24gZ290OiAiK00pO2NvbnN0IGh0PXRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnRlcmNlcHQodGhpcyxNLE4pLG10PXRoaXM7cmV0dXJuIGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIG10LnJ1bkd1YXJkZWQoaHQsdGhpcyxhcmd1bWVudHMsTil9fXJ1bihNLE4saHQsbXQpe0x0PXtwYXJlbnQ6THQsem9uZTp0aGlzfTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyxNLE4saHQsbXQpfWZpbmFsbHl7THQ9THQucGFyZW50'@; put 'fX1ydW5HdWFyZGVkKE0sTj1udWxsLGh0LG10KXtMdD17cGFyZW50Okx0LHpvbmU6dGhpc307dHJ5e3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLE0sTixodCxtdCl9Y2F0Y2goV3Qpe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLFd0KSl0'@; put 'aHJvdyBXdH19ZmluYWxseXtMdD1MdC5wYXJlbnR9fXJ1blRhc2soTSxOLGh0KXtpZihNLnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKE0uem9uZXx8R3QpLm5hbWUrIjsgRXhl'@; put 'Y3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2lmKE0uc3RhdGU9PT1EdCYmKE0udHlwZT09PXp0fHxNLnR5cGU9PT1kdCkpcmV0dXJuO2NvbnN0IG10PU0uc3RhdGUhPXJ0O210JiZNLl90cmFuc2l0aW9uVG8ocnQsd3QpLE0ucnVuQ291bnQrKztjb25zdCBXdD1xdDtxdD1NLEx0PXtwYXJlbnQ6'@; put 'THQsem9uZTp0aGlzfTt0cnl7TS50eXBlPT1kdCYmTS5kYXRhJiYhTS5kYXRhLmlzUGVyaW9kaWMmJihNLmNhbmNlbEZuPXZvaWQgMCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLE0sTixodCl9Y2F0Y2goSCl7aWYodGhpcy5fem9uZURlbGVnYXRlLmhh'@; put 'bmRsZUVycm9yKHRoaXMsSCkpdGhyb3cgSH19ZmluYWxseXtNLnN0YXRlIT09RHQmJk0uc3RhdGUhPT1xJiYoTS50eXBlPT16dHx8TS5kYXRhJiZNLmRhdGEuaXNQZXJpb2RpYz9tdCYmTS5fdHJhbnNpdGlvblRvKHd0LHJ0KTooTS5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChN'@; put 'LC0xKSxtdCYmTS5fdHJhbnNpdGlvblRvKER0LHJ0LER0KSkpLEx0PUx0LnBhcmVudCxxdD1XdH19c2NoZWR1bGVUYXNrKE0pe2lmKE0uem9uZSYmTS56b25lIT09dGhpcyl7bGV0IGh0PXRoaXM7Zm9yKDtodDspe2lmKGh0PT09TS56b25lKXRocm93IEVycm9yKGBjYW4gbm90IHJlc2NoZWR1'@; put 'bGUgdGFzayB0byAke3RoaXMubmFtZX0gd2hpY2ggaXMgZGVzY2VuZGFudHMgb2YgdGhlIG9yaWdpbmFsIHpvbmUgJHtNLnpvbmUubmFtZX1gKTtodD1odC5wYXJlbnR9fU0uX3RyYW5zaXRpb25UbyhVdCxEdCk7Y29uc3QgTj1bXTtNLl96b25lRGVsZWdhdGVzPU4sTS5fem9uZT10aGlzO3Ry'@; put 'eXtNPXRoaXMuX3pvbmVEZWxlZ2F0ZS5zY2hlZHVsZVRhc2sodGhpcyxNKX1jYXRjaChodCl7dGhyb3cgTS5fdHJhbnNpdGlvblRvKHEsVXQsRHQpLHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLGh0KSxodH1yZXR1cm4gTS5fem9uZURlbGVnYXRlcz09PU4mJnRoaXMuX3Vw'@; put 'ZGF0ZVRhc2tDb3VudChNLDEpLE0uc3RhdGU9PVV0JiZNLl90cmFuc2l0aW9uVG8od3QsVXQpLE19c2NoZWR1bGVNaWNyb1Rhc2soTSxOLGh0LG10KXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IGl0KFB0LE0sTixodCxtdCx2b2lkIDApKX1zY2hlZHVsZU1hY3JvVGFzayhNLE4saHQs'@; put 'bXQsV3Qpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgaXQoZHQsTSxOLGh0LG10LFd0KSl9c2NoZWR1bGVFdmVudFRhc2soTSxOLGh0LG10LFd0KXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IGl0KHp0LE0sTixodCxtdCxXdCkpfWNhbmNlbFRhc2soTSl7aWYoTS56b25lIT10'@; put 'aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhNLnpvbmV8fEd0KS5uYW1lKyI7IEV4ZWN1dGlvbjogIit0aGlzLm5hbWUrIikiKTtpZihNLnN0YXRlPT09d3R8fE0uc3RhdGU9PT1y'@; put 'dCl7TS5fdHJhbnNpdGlvblRvKEN0LHd0LHJ0KTt0cnl7dGhpcy5fem9uZURlbGVnYXRlLmNhbmNlbFRhc2sodGhpcyxNKX1jYXRjaChOKXt0aHJvdyBNLl90cmFuc2l0aW9uVG8ocSxDdCksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsTiksTn1yZXR1cm4gdGhpcy5fdXBk'@; put 'YXRlVGFza0NvdW50KE0sLTEpLE0uX3RyYW5zaXRpb25UbyhEdCxDdCksTS5ydW5Db3VudD0wLE19fV91cGRhdGVUYXNrQ291bnQoTSxOKXtjb25zdCBodD1NLl96b25lRGVsZWdhdGVzOy0xPT1OJiYoTS5fem9uZURlbGVnYXRlcz1udWxsKTtmb3IobGV0IG10PTA7bXQ8aHQubGVuZ3RoO210'@; put 'KyspaHRbbXRdLl91cGRhdGVUYXNrQ291bnQoTS50eXBlLE4pfX1yZXR1cm4gSXQuX19zeW1ib2xfXz1rLEl0fSkoKTtjb25zdCBvdD17bmFtZToiIixvbkhhc1Rhc2s6KEl0LGF0LE0sTik9Pkl0Lmhhc1Rhc2soTSxOKSxvblNjaGVkdWxlVGFzazooSXQsYXQsTSxOKT0+SXQuc2NoZWR1bGVU'@; put 'YXNrKE0sTiksb25JbnZva2VUYXNrOihJdCxhdCxNLE4saHQsbXQpPT5JdC5pbnZva2VUYXNrKE0sTixodCxtdCksb25DYW5jZWxUYXNrOihJdCxhdCxNLE4pPT5JdC5jYW5jZWxUYXNrKE0sTil9O2NsYXNzIGN0e2NvbnN0cnVjdG9yKGF0LE0sTil7dGhpcy5fdGFza0NvdW50cz17bWljcm9U'@; put 'YXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT1hdCx0aGlzLl9wYXJlbnREZWxlZ2F0ZT1NLHRoaXMuX2ZvcmtaUz1OJiYoTiYmTi5vbkZvcms/TjpNLl9mb3JrWlMpLHRoaXMuX2ZvcmtEbGd0PU4mJihOLm9uRm9yaz9NOk0uX2ZvcmtEbGd0KSx0aGlzLl9mb3JrQ3Vy'@; put 'clpvbmU9TiYmKE4ub25Gb3JrP3RoaXMuem9uZTpNLl9mb3JrQ3VyclpvbmUpLHRoaXMuX2ludGVyY2VwdFpTPU4mJihOLm9uSW50ZXJjZXB0P046TS5faW50ZXJjZXB0WlMpLHRoaXMuX2ludGVyY2VwdERsZ3Q9TiYmKE4ub25JbnRlcmNlcHQ/TTpNLl9pbnRlcmNlcHREbGd0KSx0aGlzLl9p'@; put 'bnRlcmNlcHRDdXJyWm9uZT1OJiYoTi5vbkludGVyY2VwdD90aGlzLnpvbmU6TS5faW50ZXJjZXB0Q3VyclpvbmUpLHRoaXMuX2ludm9rZVpTPU4mJihOLm9uSW52b2tlP046TS5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9TiYmKE4ub25JbnZva2U/TTpNLl9pbnZva2VEbGd0KSx0aGlz'@; put 'Ll9pbnZva2VDdXJyWm9uZT1OJiYoTi5vbkludm9rZT90aGlzLnpvbmU6TS5faW52b2tlQ3VyclpvbmUpLHRoaXMuX2hhbmRsZUVycm9yWlM9TiYmKE4ub25IYW5kbGVFcnJvcj9OOk0uX2hhbmRsZUVycm9yWlMpLHRoaXMuX2hhbmRsZUVycm9yRGxndD1OJiYoTi5vbkhhbmRsZUVycm9yP006'@; put 'TS5faGFuZGxlRXJyb3JEbGd0KSx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lPU4mJihOLm9uSGFuZGxlRXJyb3I/dGhpcy56b25lOk0uX2hhbmRsZUVycm9yQ3VyclpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPU4mJihOLm9uU2NoZWR1bGVUYXNrP046TS5fc2NoZWR1bGVUYXNrWlMpLHRo'@; put 'aXMuX3NjaGVkdWxlVGFza0RsZ3Q9TiYmKE4ub25TY2hlZHVsZVRhc2s/TTpNLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1OJiYoTi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6TS5fc2NoZWR1bGVUYXNrQ3VyclpvbmUpLHRoaXMuX2ludm9rZVRhc2ta'@; put 'Uz1OJiYoTi5vbkludm9rZVRhc2s/TjpNLl9pbnZva2VUYXNrWlMpLHRoaXMuX2ludm9rZVRhc2tEbGd0PU4mJihOLm9uSW52b2tlVGFzaz9NOk0uX2ludm9rZVRhc2tEbGd0KSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9TiYmKE4ub25JbnZva2VUYXNrP3RoaXMuem9uZTpNLl9pbnZva2VU'@; put 'YXNrQ3VyclpvbmUpLHRoaXMuX2NhbmNlbFRhc2taUz1OJiYoTi5vbkNhbmNlbFRhc2s/TjpNLl9jYW5jZWxUYXNrWlMpLHRoaXMuX2NhbmNlbFRhc2tEbGd0PU4mJihOLm9uQ2FuY2VsVGFzaz9NOk0uX2NhbmNlbFRhc2tEbGd0KSx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmU9TiYmKE4ub25D'@; put 'YW5jZWxUYXNrP3RoaXMuem9uZTpNLl9jYW5jZWxUYXNrQ3VyclpvbmUpLHRoaXMuX2hhc1Rhc2taUz1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0PW51bGwsdGhpcy5faGFzVGFza0RsZ3RPd25lcj1udWxsLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT1udWxsO2NvbnN0IGh0PU4mJk4ub25IYXNUYXNr'@; put 'OyhodHx8TSYmTS5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1odD9OOm90LHRoaXMuX2hhc1Rhc2tEbGd0PU0sdGhpcy5faGFzVGFza0RsZ3RPd25lcj10aGlzLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT1hdCxOLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9b3Qs'@; put 'dGhpcy5fc2NoZWR1bGVUYXNrRGxndD1NLHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lPXRoaXMuem9uZSksTi5vbkludm9rZVRhc2t8fCh0aGlzLl9pbnZva2VUYXNrWlM9b3QsdGhpcy5faW52b2tlVGFza0RsZ3Q9TSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxOLm9u'@; put 'Q2FuY2VsVGFza3x8KHRoaXMuX2NhbmNlbFRhc2taUz1vdCx0aGlzLl9jYW5jZWxUYXNrRGxndD1NLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1mb3JrKGF0LE0pe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlz'@; put 'LnpvbmUsYXQsTSk6bmV3IHooYXQsTSl9aW50ZXJjZXB0KGF0LE0sTil7cmV0dXJuIHRoaXMuX2ludGVyY2VwdFpTP3RoaXMuX2ludGVyY2VwdFpTLm9uSW50ZXJjZXB0KHRoaXMuX2ludGVyY2VwdERsZ3QsdGhpcy5faW50ZXJjZXB0Q3VyclpvbmUsYXQsTSxOKTpNfWludm9rZShhdCxNLE4s'@; put 'aHQsbXQpe3JldHVybiB0aGlzLl9pbnZva2VaUz90aGlzLl9pbnZva2VaUy5vbkludm9rZSh0aGlzLl9pbnZva2VEbGd0LHRoaXMuX2ludm9rZUN1cnJab25lLGF0LE0sTixodCxtdCk6TS5hcHBseShOLGh0KX1oYW5kbGVFcnJvcihhdCxNKXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8'@; put 'dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLGF0LE0pfXNjaGVkdWxlVGFzayhhdCxNKXtsZXQgTj1NO2lmKHRoaXMuX3NjaGVkdWxlVGFza1pTKXRoaXMuX2hhc1Rhc2taUyYmTi5fem9uZURl'@; put 'bGVnYXRlcy5wdXNoKHRoaXMuX2hhc1Rhc2tEbGd0T3duZXIpLE49dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSxhdCxNKSxOfHwoTj1NKTtlbHNlIGlmKE0uc2NoZWR1bGVGbilNLnNj'@; put 'aGVkdWxlRm4oTSk7ZWxzZXtpZihNLnR5cGUhPVB0KXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7eXQoTSl9cmV0dXJuIE59aW52b2tlVGFzayhhdCxNLE4saHQpe3JldHVybiB0aGlzLl9pbnZva2VUYXNrWlM/dGhpcy5faW52b2tlVGFza1pTLm9uSW52'@; put 'b2tlVGFzayh0aGlzLl9pbnZva2VUYXNrRGxndCx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmUsYXQsTSxOLGh0KTpNLmNhbGxiYWNrLmFwcGx5KE4saHQpfWNhbmNlbFRhc2soYXQsTSl7bGV0IE47aWYodGhpcy5fY2FuY2VsVGFza1pTKU49dGhpcy5fY2FuY2VsVGFza1pTLm9uQ2FuY2VsVGFz'@; put 'ayh0aGlzLl9jYW5jZWxUYXNrRGxndCx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmUsYXQsTSk7ZWxzZXtpZighTS5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO049TS5jYW5jZWxGbihNKX1yZXR1cm4gTn1oYXNUYXNrKGF0LE0pe3RyeXt0aGlzLl9oYXNU'@; put 'YXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLGF0LE0pfWNhdGNoKE4pe3RoaXMuaGFuZGxlRXJyb3IoYXQsTil9fV91cGRhdGVUYXNrQ291bnQoYXQsTSl7Y29uc3QgTj10aGlzLl90YXNrQ291bnRzLGh0PU5b'@; put 'YXRdLG10PU5bYXRdPWh0K007aWYobXQ8MCl0aHJvdyBuZXcgRXJyb3IoIk1vcmUgdGFza3MgZXhlY3V0ZWQgdGhlbiB3ZXJlIHNjaGVkdWxlZC4iKTswIT1odCYmMCE9bXR8fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpOLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpOLm1hY3Jv'@; put 'VGFzaz4wLGV2ZW50VGFzazpOLmV2ZW50VGFzaz4wLGNoYW5nZTphdH0pfX1jbGFzcyBpdHtjb25zdHJ1Y3RvcihhdCxNLE4saHQsbXQsV3Qpe2lmKHRoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVs'@; put 'ZWQiLHRoaXMudHlwZT1hdCx0aGlzLnNvdXJjZT1NLHRoaXMuZGF0YT1odCx0aGlzLnNjaGVkdWxlRm49bXQsdGhpcy5jYW5jZWxGbj1XdCwhTil0aHJvdyBuZXcgRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBkZWZpbmVkIik7dGhpcy5jYWxsYmFjaz1OO2NvbnN0IEg9dGhpczt0aGlzLmludm9r'@; put 'ZT1hdD09PXp0JiZodCYmaHQudXNlRz9pdC5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIGl0Lmludm9rZVRhc2suY2FsbChoLEgsdGhpcyxhcmd1bWVudHMpfX1zdGF0aWMgaW52b2tlVGFzayhhdCxNLE4pe2F0fHwoYXQ9dGhpcyksVnQrKzt0cnl7cmV0dXJuIGF0LnJ1bkNvdW50Kyss'@; put 'YXQuem9uZS5ydW5UYXNrKGF0LE0sTil9ZmluYWxseXsxPT1WdCYmZXQoKSxWdC0tfX1nZXQgem9uZSgpe3JldHVybiB0aGlzLl96b25lfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZX1jYW5jZWxTY2hlZHVsZVJlcXVlc3QoKXt0aGlzLl90cmFuc2l0aW9uVG8oRHQsVXQpfV90cmFu'@; put 'c2l0aW9uVG8oYXQsTSxOKXtpZih0aGlzLl9zdGF0ZSE9PU0mJnRoaXMuX3N0YXRlIT09Til0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy50eXBlfSAnJHt0aGlzLnNvdXJjZX0nOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyR7YXR9JywgZXhwZWN0aW5nIHN0YXRlICcke019JyR7Tj8iIG9yICci'@; put 'K04rIiciOiIifSwgd2FzICcke3RoaXMuX3N0YXRlfScuYCk7dGhpcy5fc3RhdGU9YXQsYXQ9PUR0JiYodGhpcy5fem9uZURlbGVnYXRlcz1udWxsKX10b1N0cmluZygpe3JldHVybiB0aGlzLmRhdGEmJnR5cGVvZiB0aGlzLmRhdGEuaGFuZGxlSWQ8InUiP3RoaXMuZGF0YS5oYW5kbGVJZC50'@; put 'b1N0cmluZygpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzKX10b0pTT04oKXtyZXR1cm57dHlwZTp0aGlzLnR5cGUsc3RhdGU6dGhpcy5zdGF0ZSxzb3VyY2U6dGhpcy5zb3VyY2Usem9uZTp0aGlzLnpvbmUubmFtZSxydW5Db3VudDp0aGlzLnJ1bkNvdW50fX19Y29uc3Qg'@; put 'QXQ9aygic2V0VGltZW91dCIpLFN0PWsoIlByb21pc2UiKSxPdD1rKCJ0aGVuIik7bGV0IEp0LGt0PVtdLFJ0PSExO2Z1bmN0aW9uICR0KEl0KXtpZihKdHx8aFtTdF0mJihKdD1oW1N0XS5yZXNvbHZlKDApKSxKdCl7bGV0IGF0PUp0W090XTthdHx8KGF0PUp0LnRoZW4pLGF0LmNhbGwoSnQs'@; put 'SXQpfWVsc2UgaFtBdF0oSXQsMCl9ZnVuY3Rpb24geXQoSXQpezA9PT1WdCYmMD09PWt0Lmxlbmd0aCYmJHQoZXQpLEl0JiZrdC5wdXNoKEl0KX1mdW5jdGlvbiBldCgpe2lmKCFSdCl7Zm9yKFJ0PSEwO2t0Lmxlbmd0aDspe2NvbnN0IEl0PWt0O2t0PVtdO2ZvcihsZXQgYXQ9MDthdDxJdC5s'@; put 'ZW5ndGg7YXQrKyl7Y29uc3QgTT1JdFthdF07dHJ5e00uem9uZS5ydW5UYXNrKE0sbnVsbCxudWxsKX1jYXRjaChOKXtIdC5vblVuaGFuZGxlZEVycm9yKE4pfX19SHQubWljcm90YXNrRHJhaW5Eb25lKCksUnQ9ITF9fWNvbnN0IEd0PXtuYW1lOiJOTyBaT05FIn0sRHQ9Im5vdFNjaGVkdWxl'@; put 'ZCIsVXQ9InNjaGVkdWxpbmciLHd0PSJzY2hlZHVsZWQiLHJ0PSJydW5uaW5nIixDdD0iY2FuY2VsaW5nIixxPSJ1bmtub3duIixQdD0ibWljcm9UYXNrIixkdD0ibWFjcm9UYXNrIix6dD0iZXZlbnRUYXNrIixfdD17fSxIdD17c3ltYm9sOmssY3VycmVudFpvbmVGcmFtZTooKT0+THQsb25V'@; put 'bmhhbmRsZWRFcnJvcjpLdCxtaWNyb3Rhc2tEcmFpbkRvbmU6S3Qsc2NoZWR1bGVNaWNyb1Rhc2s6eXQsc2hvd1VuY2F1Z2h0RXJyb3I6KCk9PiF6W2soImlnbm9yZUNvbnNvbGVFcnJvclVuY2F1Z2h0RXJyb3IiKV0scGF0Y2hFdmVudFRhcmdldDooKT0+W10scGF0Y2hPblByb3BlcnRpZXM6'@; put 'S3QscGF0Y2hNZXRob2Q6KCk9Pkt0LGJpbmRBcmd1bWVudHM6KCk9PltdLHBhdGNoVGhlbjooKT0+S3QscGF0Y2hNYWNyb1Rhc2s6KCk9Pkt0LHBhdGNoRXZlbnRQcm90b3R5cGU6KCk9Pkt0LGlzSUVPckVkZ2U6KCk9PiExLGdldEdsb2JhbE9iamVjdHM6KCk9Pnt9LE9iamVjdERlZmluZVBy'@; put 'b3BlcnR5OigpPT5LdCxPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6KCk9Pnt9LE9iamVjdENyZWF0ZTooKT0+e30sQXJyYXlTbGljZTooKT0+W10scGF0Y2hDbGFzczooKT0+S3Qsd3JhcFdpdGhDdXJyZW50Wm9uZTooKT0+S3QsZmlsdGVyUHJvcGVydGllczooKT0+W10sYXR0YWNo'@; put 'T3JpZ2luVG9QYXRjaGVkOigpPT5LdCxfcmVkZWZpbmVQcm9wZXJ0eTooKT0+S3QscGF0Y2hDYWxsYmFja3M6KCk9Pkt0LG5hdGl2ZVNjaGVkdWxlTWljcm9UYXNrOiR0fTtsZXQgTHQ9e3BhcmVudDpudWxsLHpvbmU6bmV3IHoobnVsbCxudWxsKX0scXQ9bnVsbCxWdD0wO2Z1bmN0aW9uIEt0'@; put 'KCl7fVQoIlpvbmUiLCJab25lIiksaC5ab25lPXp9KHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3d8fHR5cGVvZiBzZWxmPCJ1IiYmc2VsZnx8Z2xvYmFsKTtjb25zdCBjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsbD1PYmplY3QuZGVmaW5lUHJvcGVydHksdD1PYmplY3QuZ2V0'@; put 'UHJvdG90eXBlT2Ysbj1PYmplY3QuY3JlYXRlLGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLHM9ImFkZEV2ZW50TGlzdGVuZXIiLG89InJlbW92ZUV2ZW50TGlzdGVuZXIiLHU9Wm9uZS5fX3N5bWJvbF9fKHMpLGY9Wm9uZS5fX3N5bWJvbF9fKG8pLGk9InRydWUiLHA9ImZhbHNlIix5PVpvbmUu'@; put 'X19zeW1ib2xfXygiIik7ZnVuY3Rpb24gdihoLFApe3JldHVybiBab25lLmN1cnJlbnQud3JhcChoLFApfWZ1bmN0aW9uIGcoaCxQLEksVCxBKXtyZXR1cm4gWm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKGgsUCxJLFQsQSl9Y29uc3QgeD1ab25lLl9fc3ltYm9sX18sRT10eXBlb2Yg'@; put 'd2luZG93PCJ1IixqPUU/d2luZG93OnZvaWQgMCx3PUUmJmp8fCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsLFI9InJlbW92ZUF0dHJpYnV0ZSI7ZnVuY3Rpb24gRihoLFApe2ZvcihsZXQgST1oLmxlbmd0aC0xO0k+PTA7SS0tKSJmdW5jdGlvbiI9PXR5cGVvZiBoW0ldJiYo'@; put 'aFtJXT12KGhbSV0sUCsiXyIrSSkpO3JldHVybiBofWZ1bmN0aW9uIGIoaCl7cmV0dXJuIWh8fCExIT09aC53cml0YWJsZSYmISgiZnVuY3Rpb24iPT10eXBlb2YgaC5nZXQmJnR5cGVvZiBoLnNldD4idSIpfWNvbnN0IE89dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0'@; put 'YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlLFM9ISgibnciaW4gdykmJnR5cGVvZiB3LnByb2Nlc3M8InUiJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKHcucHJvY2VzcyksQz0hUyYmIU8mJiEoIUV8fCFqLkhUTUxFbGVtZW50KSxLPXR5cGVvZiB3LnByb2Nlc3M8InUi'@; put 'JiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKHcucHJvY2VzcykmJiFPJiYhKCFFfHwhai5IVE1MRWxlbWVudCksVT17fSxaPWZ1bmN0aW9uKGgpe2lmKCEoaD1ofHx3LmV2ZW50KSlyZXR1cm47bGV0IFA9VVtoLnR5cGVdO1B8fChQPVVbaC50eXBlXT14KCJPTl9QUk9Q'@; put 'RVJUWSIraC50eXBlKSk7Y29uc3QgST10aGlzfHxoLnRhcmdldHx8dyxUPUlbUF07bGV0IEE7cmV0dXJuIEMmJkk9PT1qJiYiZXJyb3IiPT09aC50eXBlPyhBPVQmJlQuY2FsbCh0aGlzLGgubWVzc2FnZSxoLmZpbGVuYW1lLGgubGluZW5vLGguY29sbm8saC5lcnJvciksITA9PT1BJiZoLnBy'@; put 'ZXZlbnREZWZhdWx0KCkpOihBPVQmJlQuYXBwbHkodGhpcyxhcmd1bWVudHMpLG51bGwhPUEmJiFBJiZoLnByZXZlbnREZWZhdWx0KCkpLEF9O2Z1bmN0aW9uIHR0KGgsUCxJKXtsZXQgVD1jKGgsUCk7aWYoIVQmJkkmJmMoSSxQKSYmKFQ9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEw'@; put 'fSksIVR8fCFULmNvbmZpZ3VyYWJsZSlyZXR1cm47Y29uc3QgQT14KCJvbiIrUCsicGF0Y2hlZCIpO2lmKGguaGFzT3duUHJvcGVydHkoQSkmJmhbQV0pcmV0dXJuO2RlbGV0ZSBULndyaXRhYmxlLGRlbGV0ZSBULnZhbHVlO2NvbnN0IGs9VC5nZXQsSj1ULnNldCx6PVAuc2xpY2UoMik7bGV0'@; put 'IG90PVVbel07b3R8fChvdD1VW3pdPXgoIk9OX1BST1BFUlRZIit6KSksVC5zZXQ9ZnVuY3Rpb24oY3Qpe2xldCBpdD10aGlzOyFpdCYmaD09PXcmJihpdD13KSxpdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpdFtvdF0mJml0LnJlbW92ZUV2ZW50TGlzdGVuZXIoeixaKSxKJiZKLmNhbGwoaXQs'@; put 'bnVsbCksaXRbb3RdPWN0LCJmdW5jdGlvbiI9PXR5cGVvZiBjdCYmaXQuYWRkRXZlbnRMaXN0ZW5lcih6LFosITEpKX0sVC5nZXQ9ZnVuY3Rpb24oKXtsZXQgY3Q9dGhpcztpZighY3QmJmg9PT13JiYoY3Q9dyksIWN0KXJldHVybiBudWxsO2NvbnN0IGl0PWN0W290XTtpZihpdClyZXR1cm4g'@; put 'aXQ7aWYoayl7bGV0IEF0PWsuY2FsbCh0aGlzKTtpZihBdClyZXR1cm4gVC5zZXQuY2FsbCh0aGlzLEF0KSwiZnVuY3Rpb24iPT10eXBlb2YgY3RbUl0mJmN0LnJlbW92ZUF0dHJpYnV0ZShQKSxBdH1yZXR1cm4gbnVsbH0sbChoLFAsVCksaFtBXT0hMH1mdW5jdGlvbiBfKGgsUCxJKXtpZihQ'@; put 'KWZvcihsZXQgVD0wO1Q8UC5sZW5ndGg7VCsrKXR0KGgsIm9uIitQW1RdLEkpO2Vsc2V7Y29uc3QgVD1bXTtmb3IoY29uc3QgQSBpbiBoKSJvbiI9PUEuc2xpY2UoMCwyKSYmVC5wdXNoKEEpO2ZvcihsZXQgQT0wO0E8VC5sZW5ndGg7QSsrKXR0KGgsVFtBXSxJKX19Y29uc3QgbnQ9eCgib3Jp'@; put 'Z2luYWxJbnN0YW5jZSIpO2Z1bmN0aW9uIHN0KGgpe2NvbnN0IFA9d1toXTtpZighUClyZXR1cm47d1t4KGgpXT1QLHdbaF09ZnVuY3Rpb24oKXtjb25zdCBBPUYoYXJndW1lbnRzLGgpO3N3aXRjaChBLmxlbmd0aCl7Y2FzZSAwOnRoaXNbbnRdPW5ldyBQO2JyZWFrO2Nhc2UgMTp0aGlzW250'@; put 'XT1uZXcgUChBWzBdKTticmVhaztjYXNlIDI6dGhpc1tudF09bmV3IFAoQVswXSxBWzFdKTticmVhaztjYXNlIDM6dGhpc1tudF09bmV3IFAoQVswXSxBWzFdLEFbMl0pO2JyZWFrO2Nhc2UgNDp0aGlzW250XT1uZXcgUChBWzBdLEFbMV0sQVsyXSxBWzNdKTticmVhaztkZWZhdWx0OnRocm93'@; put 'IG5ldyBFcnJvcigiQXJnIGxpc3QgdG9vIGxvbmcuIil9fSxRKHdbaF0sUCk7Y29uc3QgST1uZXcgUChmdW5jdGlvbigpe30pO2xldCBUO2ZvcihUIGluIEkpIlhNTEh0dHBSZXF1ZXN0Ij09PWgmJiJyZXNwb25zZUJsb2IiPT09VHx8ZnVuY3Rpb24oQSl7ImZ1bmN0aW9uIj09dHlwZW9mIElb'@; put 'QV0/d1toXS5wcm90b3R5cGVbQV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tudF1bQV0uYXBwbHkodGhpc1tudF0sYXJndW1lbnRzKX06bCh3W2hdLnByb3RvdHlwZSxBLHtzZXQ6ZnVuY3Rpb24oayl7ImZ1bmN0aW9uIj09dHlwZW9mIGs/KHRoaXNbbnRdW0FdPXYoayxoKyIuIitBKSxRKHRo'@; put 'aXNbbnRdW0FdLGspKTp0aGlzW250XVtBXT1rfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tudF1bQV19fSl9KFQpO2ZvcihUIGluIFApInByb3RvdHlwZSIhPT1UJiZQLmhhc093blByb3BlcnR5KFQpJiYod1toXVtUXT1QW1RdKX1mdW5jdGlvbiBYKGgsUCxJKXtsZXQgVD1oO2Zvcig7'@; put 'VCYmIVQuaGFzT3duUHJvcGVydHkoUCk7KVQ9dChUKTshVCYmaFtQXSYmKFQ9aCk7Y29uc3QgQT14KFApO2xldCBrPW51bGw7aWYoVCYmKCEoaz1UW0FdKXx8IVQuaGFzT3duUHJvcGVydHkoQSkpJiYoaz1UW0FdPVRbUF0sYihUJiZjKFQsUCkpKSl7Y29uc3Qgej1JKGssQSxQKTtUW1BdPWZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIHoodGhpcyxhcmd1bWVudHMpfSxRKFRbUF0sayl9cmV0dXJuIGt9ZnVuY3Rpb24gVihoLFAsSSl7bGV0IFQ9bnVsbDtmdW5jdGlvbiBBKGspe2NvbnN0IEo9ay5kYXRhO3JldHVybiBKLmFyZ3NbSi5jYklkeF09ZnVuY3Rpb24oKXtrLmludm9rZS5hcHBseSh0aGlz'@; put 'LGFyZ3VtZW50cyl9LFQuYXBwbHkoSi50YXJnZXQsSi5hcmdzKSxrfVQ9WChoLFAsaz0+ZnVuY3Rpb24oSix6KXtjb25zdCBvdD1JKEoseik7cmV0dXJuIG90LmNiSWR4Pj0wJiYiZnVuY3Rpb24iPT10eXBlb2YgeltvdC5jYklkeF0/ZyhvdC5uYW1lLHpbb3QuY2JJZHhdLG90LEEpOmsuYXBw'@; put 'bHkoSix6KX0pfWZ1bmN0aW9uIFEoaCxQKXtoW3goIk9yaWdpbmFsRGVsZWdhdGUiKV09UH1sZXQgWT0hMSxmdD0hMTtmdW5jdGlvbiBNdCgpe2lmKFkpcmV0dXJuIGZ0O1k9ITA7dHJ5e2NvbnN0IGg9ai5uYXZpZ2F0b3IudXNlckFnZW50OygtMSE9PWguaW5kZXhPZigiTVNJRSAiKXx8LTEh'@; put 'PT1oLmluZGV4T2YoIlRyaWRlbnQvIil8fC0xIT09aC5pbmRleE9mKCJFZGdlLyIpKSYmKGZ0PSEwKX1jYXRjaHt9cmV0dXJuIGZ0fVpvbmUuX19sb2FkX3BhdGNoKCJab25lQXdhcmVQcm9taXNlIiwoaCxQLEkpPT57Y29uc3QgVD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEE9'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5LEo9SS5zeW1ib2wsej1bXSxvdD0hMD09PWhbSigiRElTQUJMRV9XUkFQUElOR19VTkNBVUdIVF9QUk9NSVNFX1JFSkVDVElPTiIpXSxjdD1KKCJQcm9taXNlIiksaXQ9SigidGhlbiIpLEF0PSJfX2NyZWF0aW9uVHJhY2VfXyI7SS5vblVuaGFuZGxlZEVy'@; put 'cm9yPUg9PntpZihJLnNob3dVbmNhdWdodEVycm9yKCkpe2NvbnN0IFc9SCYmSC5yZWplY3Rpb247Vz9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246IixXIGluc3RhbmNlb2YgRXJyb3I/Vy5tZXNzYWdlOlcsIjsgWm9uZToiLEguem9uZS5uYW1lLCI7IFRhc2s6'@; put 'IixILnRhc2smJkgudGFzay5zb3VyY2UsIjsgVmFsdWU6IixXLFcgaW5zdGFuY2VvZiBFcnJvcj9XLnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcihIKX19LEkubWljcm90YXNrRHJhaW5Eb25lPSgpPT57Zm9yKDt6Lmxlbmd0aDspe2NvbnN0IEg9ei5zaGlmdCgpO3RyeXtILnpvbmUucnVu'@; put 'R3VhcmRlZCgoKT0+e3Rocm93IEgudGhyb3dPcmlnaW5hbD9ILnJlamVjdGlvbjpIfSl9Y2F0Y2goVyl7T3QoVyl9fX07Y29uc3QgU3Q9SigidW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvbkhhbmRsZXIiKTtmdW5jdGlvbiBPdChIKXtJLm9uVW5oYW5kbGVkRXJyb3IoSCk7dHJ5e2NvbnN0IFc9'@; put 'UFtTdF07ImZ1bmN0aW9uIj09dHlwZW9mIFcmJlcuY2FsbCh0aGlzLEgpfWNhdGNoe319ZnVuY3Rpb24ga3QoSCl7cmV0dXJuIEgmJkgudGhlbn1mdW5jdGlvbiBSdChIKXtyZXR1cm4gSH1mdW5jdGlvbiBKdChIKXtyZXR1cm4gTS5yZWplY3QoSCl9Y29uc3QgJHQ9Sigic3RhdGUiKSx5dD1K'@; put 'KCJ2YWx1ZSIpLGV0PUooImZpbmFsbHkiKSxHdD1KKCJwYXJlbnRQcm9taXNlVmFsdWUiKSxEdD1KKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxVdD0iUHJvbWlzZS50aGVuIix3dD1udWxsLHJ0PSEwLEN0PSExLHE9MDtmdW5jdGlvbiBQdChILFcpe3JldHVybiBMPT57dHJ5e0h0KEgsVyxMKX1j'@; put 'YXRjaChHKXtIdChILCExLEcpfX19Y29uc3QgZHQ9ZnVuY3Rpb24oKXtsZXQgSD0hMTtyZXR1cm4gZnVuY3Rpb24oTCl7cmV0dXJuIGZ1bmN0aW9uKCl7SHx8KEg9ITAsTC5hcHBseShudWxsLGFyZ3VtZW50cykpfX19LHp0PSJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIixfdD1KKCJj'@; put 'dXJyZW50VGFza1RyYWNlIik7ZnVuY3Rpb24gSHQoSCxXLEwpe2NvbnN0IEc9ZHQoKTtpZihIPT09TCl0aHJvdyBuZXcgVHlwZUVycm9yKHp0KTtpZihIWyR0XT09PXd0KXtsZXQgbHQ9bnVsbDt0cnl7KCJvYmplY3QiPT10eXBlb2YgTHx8ImZ1bmN0aW9uIj09dHlwZW9mIEwpJiYobHQ9TCYm'@; put 'TC50aGVuKX1jYXRjaChwdCl7cmV0dXJuIEcoKCk9PntIdChILCExLHB0KX0pKCksSH1pZihXIT09Q3QmJkwgaW5zdGFuY2VvZiBNJiZMLmhhc093blByb3BlcnR5KCR0KSYmTC5oYXNPd25Qcm9wZXJ0eSh5dCkmJkxbJHRdIT09d3QpcXQoTCksSHQoSCxMWyR0XSxMW3l0XSk7ZWxzZSBpZihX'@; put 'IT09Q3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBsdCl0cnl7bHQuY2FsbChMLEcoUHQoSCxXKSksRyhQdChILCExKSkpfWNhdGNoKHB0KXtHKCgpPT57SHQoSCwhMSxwdCl9KSgpfWVsc2V7SFskdF09Vztjb25zdCBwdD1IW3l0XTtpZihIW3l0XT1MLEhbZXRdPT09ZXQmJlc9PT1ydCYmKEhbJHRd'@; put 'PUhbRHRdLEhbeXRdPUhbR3RdKSxXPT09Q3QmJkwgaW5zdGFuY2VvZiBFcnJvcil7Y29uc3QgdXQ9UC5jdXJyZW50VGFzayYmUC5jdXJyZW50VGFzay5kYXRhJiZQLmN1cnJlbnRUYXNrLmRhdGFbQXRdO3V0JiZBKEwsX3Qse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxl'@; put 'OiEwLHZhbHVlOnV0fSl9Zm9yKGxldCB1dD0wO3V0PHB0Lmxlbmd0aDspVnQoSCxwdFt1dCsrXSxwdFt1dCsrXSxwdFt1dCsrXSxwdFt1dCsrXSk7aWYoMD09cHQubGVuZ3RoJiZXPT1DdCl7SFskdF09cTtsZXQgdXQ9TDt0cnl7dGhyb3cgbmV3IEVycm9yKCJVbmNhdWdodCAoaW4gcHJvbWlz'@; put 'ZSk6ICIrZnVuY3Rpb24gayhIKXtyZXR1cm4gSCYmSC50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KEguY29uc3RydWN0b3ImJkguY29uc3RydWN0b3IubmFtZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkoSCk6SD9ILnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50'@; put 'b1N0cmluZy5jYWxsKEgpfShMKSsoTCYmTC5zdGFjaz8iXG4iK0wuc3RhY2s6IiIpKX1jYXRjaChndCl7dXQ9Z3R9b3QmJih1dC50aHJvd09yaWdpbmFsPSEwKSx1dC5yZWplY3Rpb249TCx1dC5wcm9taXNlPUgsdXQuem9uZT1QLmN1cnJlbnQsdXQudGFzaz1QLmN1cnJlbnRUYXNrLHoucHVz'@; put 'aCh1dCksSS5zY2hlZHVsZU1pY3JvVGFzaygpfX19cmV0dXJuIEh9Y29uc3QgTHQ9SigicmVqZWN0aW9uSGFuZGxlZEhhbmRsZXIiKTtmdW5jdGlvbiBxdChIKXtpZihIWyR0XT09PXEpe3RyeXtjb25zdCBXPVBbTHRdO1cmJiJmdW5jdGlvbiI9PXR5cGVvZiBXJiZXLmNhbGwodGhpcyx7cmVq'@; put 'ZWN0aW9uOkhbeXRdLHByb21pc2U6SH0pfWNhdGNoe31IWyR0XT1DdDtmb3IobGV0IFc9MDtXPHoubGVuZ3RoO1crKylIPT09eltXXS5wcm9taXNlJiZ6LnNwbGljZShXLDEpfX1mdW5jdGlvbiBWdChILFcsTCxHLGx0KXtxdChIKTtjb25zdCBwdD1IWyR0XSx1dD1wdD8iZnVuY3Rpb24iPT10'@; put 'eXBlb2YgRz9HOlJ0OiJmdW5jdGlvbiI9PXR5cGVvZiBsdD9sdDpKdDtXLnNjaGVkdWxlTWljcm9UYXNrKFV0LCgpPT57dHJ5e2NvbnN0IGd0PUhbeXRdLHh0PSEhTCYmZXQ9PT1MW2V0XTt4dCYmKExbR3RdPWd0LExbRHRdPXB0KTtjb25zdCBUdD1XLnJ1bih1dCx2b2lkIDAseHQmJnV0IT09'@; put 'SnQmJnV0IT09UnQ/W106W2d0XSk7SHQoTCwhMCxUdCl9Y2F0Y2goZ3Qpe0h0KEwsITEsZ3QpfX0sTCl9Y29uc3QgSXQ9ZnVuY3Rpb24oKXt9LGF0PWguQWdncmVnYXRlRXJyb3I7Y2xhc3MgTXtzdGF0aWMgdG9TdHJpbmcoKXtyZXR1cm4iZnVuY3Rpb24gWm9uZUF3YXJlUHJvbWlzZSgpIHsg'@; put 'W25hdGl2ZSBjb2RlXSB9In1zdGF0aWMgcmVzb2x2ZShXKXtyZXR1cm4gSHQobmV3IHRoaXMobnVsbCkscnQsVyl9c3RhdGljIHJlamVjdChXKXtyZXR1cm4gSHQobmV3IHRoaXMobnVsbCksQ3QsVyl9c3RhdGljIGFueShXKXtpZighV3x8ImZ1bmN0aW9uIiE9dHlwZW9mIFdbU3ltYm9sLml0'@; put 'ZXJhdG9yXSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGF0KFtdLCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKTtjb25zdCBMPVtdO2xldCBHPTA7dHJ5e2ZvcihsZXQgdXQgb2YgVylHKyssTC5wdXNoKE0ucmVzb2x2ZSh1dCkpfWNhdGNoe3JldHVybiBQcm9taXNlLnJlamVjdChu'@; put 'ZXcgYXQoW10sIkFsbCBwcm9taXNlcyB3ZXJlIHJlamVjdGVkIikpfWlmKDA9PT1HKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgYXQoW10sIkFsbCBwcm9taXNlcyB3ZXJlIHJlamVjdGVkIikpO2xldCBsdD0hMTtjb25zdCBwdD1bXTtyZXR1cm4gbmV3IE0oKHV0LGd0KT0+e2ZvcihsZXQg'@; put 'eHQ9MDt4dDxMLmxlbmd0aDt4dCsrKUxbeHRdLnRoZW4oVHQ9PntsdHx8KGx0PSEwLHV0KFR0KSl9LFR0PT57cHQucHVzaChUdCksRy0tLDA9PT1HJiYobHQ9ITAsZ3QobmV3IGF0KHB0LCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKSl9KX0pfXN0YXRpYyByYWNlKFcpe2xldCBMLEcs'@; put 'bHQ9bmV3IHRoaXMoKGd0LHh0KT0+e0w9Z3QsRz14dH0pO2Z1bmN0aW9uIHB0KGd0KXtMKGd0KX1mdW5jdGlvbiB1dChndCl7RyhndCl9Zm9yKGxldCBndCBvZiBXKWt0KGd0KXx8KGd0PXRoaXMucmVzb2x2ZShndCkpLGd0LnRoZW4ocHQsdXQpO3JldHVybiBsdH1zdGF0aWMgYWxsKFcpe3Jl'@; put 'dHVybiBNLmFsbFdpdGhDYWxsYmFjayhXKX1zdGF0aWMgYWxsU2V0dGxlZChXKXtyZXR1cm4odGhpcyYmdGhpcy5wcm90b3R5cGUgaW5zdGFuY2VvZiBNP3RoaXM6TSkuYWxsV2l0aENhbGxiYWNrKFcse3RoZW5DYWxsYmFjazpHPT4oe3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpHfSksZXJy'@; put 'b3JDYWxsYmFjazpHPT4oe3N0YXR1czoicmVqZWN0ZWQiLHJlYXNvbjpHfSl9KX1zdGF0aWMgYWxsV2l0aENhbGxiYWNrKFcsTCl7bGV0IEcsbHQscHQ9bmV3IHRoaXMoKFR0LGJ0KT0+e0c9VHQsbHQ9YnR9KSx1dD0yLGd0PTA7Y29uc3QgeHQ9W107Zm9yKGxldCBUdCBvZiBXKXtrdChUdCl8'@; put 'fChUdD10aGlzLnJlc29sdmUoVHQpKTtjb25zdCBidD1ndDt0cnl7VHQudGhlbihOdD0+e3h0W2J0XT1MP0wudGhlbkNhbGxiYWNrKE50KTpOdCx1dC0tLDA9PT11dCYmRyh4dCl9LE50PT57TD8oeHRbYnRdPUwuZXJyb3JDYWxsYmFjayhOdCksdXQtLSwwPT09dXQmJkcoeHQpKTpsdChOdCl9'@; put 'KX1jYXRjaChOdCl7bHQoTnQpfXV0KyssZ3QrK31yZXR1cm4gdXQtPTIsMD09PXV0JiZHKHh0KSxwdH1jb25zdHJ1Y3RvcihXKXtjb25zdCBMPXRoaXM7aWYoIShMIGluc3RhbmNlb2YgTSkpdGhyb3cgbmV3IEVycm9yKCJNdXN0IGJlIGFuIGluc3RhbmNlb2YgUHJvbWlzZS4iKTtMWyR0XT13'@; put 'dCxMW3l0XT1bXTt0cnl7Y29uc3QgRz1kdCgpO1cmJlcoRyhQdChMLHJ0KSksRyhQdChMLEN0KSkpfWNhdGNoKEcpe0h0KEwsITEsRyl9fWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIlByb21pc2UifWdldFtTeW1ib2wuc3BlY2llc10oKXtyZXR1cm4gTX10aGVuKFcsTCl7bGV0'@; put 'IEc9dGhpcy5jb25zdHJ1Y3Rvcj8uW1N5bWJvbC5zcGVjaWVzXTsoIUd8fCJmdW5jdGlvbiIhPXR5cGVvZiBHKSYmKEc9dGhpcy5jb25zdHJ1Y3Rvcnx8TSk7Y29uc3QgbHQ9bmV3IEcoSXQpLHB0PVAuY3VycmVudDtyZXR1cm4gdGhpc1skdF09PXd0P3RoaXNbeXRdLnB1c2gocHQsbHQsVyxM'@; put 'KTpWdCh0aGlzLHB0LGx0LFcsTCksbHR9Y2F0Y2goVyl7cmV0dXJuIHRoaXMudGhlbihudWxsLFcpfWZpbmFsbHkoVyl7bGV0IEw9dGhpcy5jb25zdHJ1Y3Rvcj8uW1N5bWJvbC5zcGVjaWVzXTsoIUx8fCJmdW5jdGlvbiIhPXR5cGVvZiBMKSYmKEw9TSk7Y29uc3QgRz1uZXcgTChJdCk7R1tl'@; put 'dF09ZXQ7Y29uc3QgbHQ9UC5jdXJyZW50O3JldHVybiB0aGlzWyR0XT09d3Q/dGhpc1t5dF0ucHVzaChsdCxHLFcsVyk6VnQodGhpcyxsdCxHLFcsVyksR319TS5yZXNvbHZlPU0ucmVzb2x2ZSxNLnJlamVjdD1NLnJlamVjdCxNLnJhY2U9TS5yYWNlLE0uYWxsPU0uYWxsO2NvbnN0IE49aFtj'@; put 'dF09aC5Qcm9taXNlO2guUHJvbWlzZT1NO2NvbnN0IGh0PUooInRoZW5QYXRjaGVkIik7ZnVuY3Rpb24gbXQoSCl7Y29uc3QgVz1ILnByb3RvdHlwZSxMPVQoVywidGhlbiIpO2lmKEwmJighMT09PUwud3JpdGFibGV8fCFMLmNvbmZpZ3VyYWJsZSkpcmV0dXJuO2NvbnN0IEc9Vy50aGVuO1db'@; put 'aXRdPUcsSC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihsdCxwdCl7cmV0dXJuIG5ldyBNKChndCx4dCk9PntHLmNhbGwodGhpcyxndCx4dCl9KS50aGVuKGx0LHB0KX0sSFtodF09ITB9cmV0dXJuIEkucGF0Y2hUaGVuPW10LE4mJihtdChOKSxYKGgsImZldGNoIixIPT5mdW5jdGlvbiBXdChI'@; put 'KXtyZXR1cm4gZnVuY3Rpb24oVyxMKXtsZXQgRz1ILmFwcGx5KFcsTCk7aWYoRyBpbnN0YW5jZW9mIE0pcmV0dXJuIEc7bGV0IGx0PUcuY29uc3RydWN0b3I7cmV0dXJuIGx0W2h0XXx8bXQobHQpLEd9fShIKSkpLFByb21pc2VbUC5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMi'@; put 'KV09eixNfSksWm9uZS5fX2xvYWRfcGF0Y2goInRvU3RyaW5nIixoPT57Y29uc3QgUD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsST14KCJPcmlnaW5hbERlbGVnYXRlIiksVD14KCJQcm9taXNlIiksQT14KCJFcnJvciIpLGs9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'dGhpcyl7Y29uc3QgY3Q9dGhpc1tJXTtpZihjdClyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgY3Q/UC5jYWxsKGN0KTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoY3QpO2lmKHRoaXM9PT1Qcm9taXNlKXtjb25zdCBpdD1oW1RdO2lmKGl0KXJldHVybiBQLmNhbGwoaXQpfWlmKHRo'@; put 'aXM9PT1FcnJvcil7Y29uc3QgaXQ9aFtBXTtpZihpdClyZXR1cm4gUC5jYWxsKGl0KX19cmV0dXJuIFAuY2FsbCh0aGlzKX07a1tJXT1QLEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1rO2NvbnN0IEo9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztPYmplY3QucHJvdG90eXBlLnRvU3Ry'@; put 'aW5nPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2UmJnRoaXMgaW5zdGFuY2VvZiBQcm9taXNlPyJbb2JqZWN0IFByb21pc2VdIjpKLmNhbGwodGhpcyl9fSk7bGV0IEV0PSExO2lmKHR5cGVvZiB3aW5kb3c8InUiKXRyeXtjb25zdCBoPU9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe0V0PSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixoLGgpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixoLGgpfWNhdGNoe0V0PSExfWNvbnN0IEZ0PXt1c2VHOiEwfSxqdD17fSxYdD17fSxC'@; put 'dD1uZXcgUmVnRXhwKCJeIit5KyIoXFx3KykodHJ1ZXxmYWxzZSkkIiksUXQ9eCgicHJvcGFnYXRpb25TdG9wcGVkIik7ZnVuY3Rpb24gcm4oaCxQKXtjb25zdCBJPShQP1AoaCk6aCkrcCxUPShQP1AoaCk6aCkraSxBPXkrSSxrPXkrVDtqdFtoXT17fSxqdFtoXVtwXT1BLGp0W2hdW2ldPWt9'@; put 'ZnVuY3Rpb24gbm4oaCxQLEksVCl7Y29uc3QgQT1UJiZULmFkZHx8cyxrPVQmJlQucm18fG8sSj1UJiZULmxpc3RlbmVyc3x8ImV2ZW50TGlzdGVuZXJzIix6PVQmJlQucm1BbGx8fCJyZW1vdmVBbGxMaXN0ZW5lcnMiLG90PXgoQSksY3Q9Ii4iK0ErIjoiLGl0PSJwcmVwZW5kTGlzdGVuZXIi'@; put 'LEF0PSIuIitpdCsiOiIsU3Q9ZnVuY3Rpb24oeXQsZXQsR3Qpe2lmKHl0LmlzUmVtb3ZlZClyZXR1cm47Y29uc3QgRHQ9eXQuY2FsbGJhY2s7bGV0IFV0OyJvYmplY3QiPT10eXBlb2YgRHQmJkR0LmhhbmRsZUV2ZW50JiYoeXQuY2FsbGJhY2s9cnQ9PkR0LmhhbmRsZUV2ZW50KHJ0KSx5dC5v'@; put 'cmlnaW5hbERlbGVnYXRlPUR0KTt0cnl7eXQuaW52b2tlKHl0LGV0LFtHdF0pfWNhdGNoKHJ0KXtVdD1ydH1jb25zdCB3dD15dC5vcHRpb25zO3JldHVybiB3dCYmIm9iamVjdCI9PXR5cGVvZiB3dCYmd3Qub25jZSYmZXRba10uY2FsbChldCxHdC50eXBlLHl0Lm9yaWdpbmFsRGVsZWdhdGU/'@; put 'eXQub3JpZ2luYWxEZWxlZ2F0ZTp5dC5jYWxsYmFjayx3dCksVXR9O2Z1bmN0aW9uIE90KHl0LGV0LEd0KXtpZighKGV0PWV0fHxoLmV2ZW50KSlyZXR1cm47Y29uc3QgRHQ9eXR8fGV0LnRhcmdldHx8aCxVdD1EdFtqdFtldC50eXBlXVtHdD9pOnBdXTtpZihVdCl7Y29uc3Qgd3Q9W107aWYo'@; put 'MT09PVV0Lmxlbmd0aCl7Y29uc3QgcnQ9U3QoVXRbMF0sRHQsZXQpO3J0JiZ3dC5wdXNoKHJ0KX1lbHNle2NvbnN0IHJ0PVV0LnNsaWNlKCk7Zm9yKGxldCBDdD0wO0N0PHJ0Lmxlbmd0aCYmKCFldHx8ITAhPT1ldFtRdF0pO0N0Kyspe2NvbnN0IHE9U3QocnRbQ3RdLER0LGV0KTtxJiZ3dC5w'@; put 'dXNoKHEpfX1pZigxPT09d3QubGVuZ3RoKXRocm93IHd0WzBdO2ZvcihsZXQgcnQ9MDtydDx3dC5sZW5ndGg7cnQrKyl7Y29uc3QgQ3Q9d3RbcnRdO1AubmF0aXZlU2NoZWR1bGVNaWNyb1Rhc2soKCk9Pnt0aHJvdyBDdH0pfX19Y29uc3Qga3Q9ZnVuY3Rpb24oeXQpe3JldHVybiBPdCh0aGlz'@; put 'LHl0LCExKX0sUnQ9ZnVuY3Rpb24oeXQpe3JldHVybiBPdCh0aGlzLHl0LCEwKX07ZnVuY3Rpb24gSnQoeXQsZXQpe2lmKCF5dClyZXR1cm4hMTtsZXQgR3Q9ITA7ZXQmJnZvaWQgMCE9PWV0LnVzZUcmJihHdD1ldC51c2VHKTtjb25zdCBEdD1ldCYmZXQudmg7bGV0IFV0PSEwO2V0JiZ2b2lk'@; put 'IDAhPT1ldC5jaGtEdXAmJihVdD1ldC5jaGtEdXApO2xldCB3dD0hMTtldCYmdm9pZCAwIT09ZXQucnQmJih3dD1ldC5ydCk7bGV0IHJ0PXl0O2Zvcig7cnQmJiFydC5oYXNPd25Qcm9wZXJ0eShBKTspcnQ9dChydCk7aWYoIXJ0JiZ5dFtBXSYmKHJ0PXl0KSwhcnR8fHJ0W290XSlyZXR1cm4h'@; put 'MTtjb25zdCBDdD1ldCYmZXQuZXZlbnROYW1lVG9TdHJpbmcscT17fSxQdD1ydFtvdF09cnRbQV0sZHQ9cnRbeChrKV09cnRba10senQ9cnRbeChKKV09cnRbSl0sX3Q9cnRbeCh6KV09cnRbel07bGV0IEh0O2V0JiZldC5wcmVwZW5kJiYoSHQ9cnRbeChldC5wcmVwZW5kKV09cnRbZXQucHJl'@; put 'cGVuZF0pO2NvbnN0IE09R3Q/ZnVuY3Rpb24oTCl7aWYoIXEuaXNFeGlzdGluZylyZXR1cm4gUHQuY2FsbChxLnRhcmdldCxxLmV2ZW50TmFtZSxxLmNhcHR1cmU/UnQ6a3QscS5vcHRpb25zKX06ZnVuY3Rpb24oTCl7cmV0dXJuIFB0LmNhbGwocS50YXJnZXQscS5ldmVudE5hbWUsTC5pbnZv'@; put 'a2UscS5vcHRpb25zKX0sTj1HdD9mdW5jdGlvbihMKXtpZighTC5pc1JlbW92ZWQpe2NvbnN0IEc9anRbTC5ldmVudE5hbWVdO2xldCBsdDtHJiYobHQ9R1tMLmNhcHR1cmU/aTpwXSk7Y29uc3QgcHQ9bHQmJkwudGFyZ2V0W2x0XTtpZihwdClmb3IobGV0IHV0PTA7dXQ8cHQubGVuZ3RoO3V0'@; put 'KyspaWYocHRbdXRdPT09TCl7cHQuc3BsaWNlKHV0LDEpLEwuaXNSZW1vdmVkPSEwLDA9PT1wdC5sZW5ndGgmJihMLmFsbFJlbW92ZWQ9ITAsTC50YXJnZXRbbHRdPW51bGwpO2JyZWFrfX1pZihMLmFsbFJlbW92ZWQpcmV0dXJuIGR0LmNhbGwoTC50YXJnZXQsTC5ldmVudE5hbWUsTC5jYXB0'@; put 'dXJlP1J0Omt0LEwub3B0aW9ucyl9OmZ1bmN0aW9uKEwpe3JldHVybiBkdC5jYWxsKEwudGFyZ2V0LEwuZXZlbnROYW1lLEwuaW52b2tlLEwub3B0aW9ucyl9LG10PWV0JiZldC5kaWZmP2V0LmRpZmY6ZnVuY3Rpb24oTCxHKXtjb25zdCBsdD10eXBlb2YgRztyZXR1cm4iZnVuY3Rpb24iPT09'@; put 'bHQmJkwuY2FsbGJhY2s9PT1HfHwib2JqZWN0Ij09PWx0JiZMLm9yaWdpbmFsRGVsZWdhdGU9PT1HfSxXdD1ab25lW3goIlVOUEFUQ0hFRF9FVkVOVFMiKV0sSD1oW3goIlBBU1NJVkVfRVZFTlRTIildLFc9ZnVuY3Rpb24oTCxHLGx0LHB0LHV0PSExLGd0PSExKXtyZXR1cm4gZnVuY3Rpb24o'@; put 'KXtjb25zdCB4dD10aGlzfHxoO2xldCBUdD1hcmd1bWVudHNbMF07ZXQmJmV0LnRyYW5zZmVyRXZlbnROYW1lJiYoVHQ9ZXQudHJhbnNmZXJFdmVudE5hbWUoVHQpKTtsZXQgYnQ9YXJndW1lbnRzWzFdO2lmKCFidClyZXR1cm4gTC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoUyYmInVuY2F1'@; put 'Z2h0RXhjZXB0aW9uIj09PVR0KXJldHVybiBMLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtsZXQgTnQ9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGJ0KXtpZighYnQuaGFuZGxlRXZlbnQpcmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpO050PSEwfWlmKER0JiYhRHQoTCxidCx4dCxhcmd1'@; put 'bWVudHMpKXJldHVybjtjb25zdCBzbj1FdCYmISFIJiYtMSE9PUguaW5kZXhPZihUdCksdG49ZnVuY3Rpb24gTHQoTCxHKXtyZXR1cm4hRXQmJiJvYmplY3QiPT10eXBlb2YgTCYmTD8hIUwuY2FwdHVyZTpFdCYmRz8iYm9vbGVhbiI9PXR5cGVvZiBMP3tjYXB0dXJlOkwscGFzc2l2ZTohMH06'@; put 'TD8ib2JqZWN0Ij09dHlwZW9mIEwmJiExIT09TC5wYXNzaXZlP3suLi5MLHBhc3NpdmU6ITB9Okw6e3Bhc3NpdmU6ITB9Okx9KGFyZ3VtZW50c1syXSxzbik7aWYoV3QpZm9yKGxldCBjbj0wO2NuPFd0Lmxlbmd0aDtjbisrKWlmKFR0PT09V3RbY25dKXJldHVybiBzbj9MLmNhbGwoeHQsVHQs'@; put 'YnQsdG4pOkwuYXBwbHkodGhpcyxhcmd1bWVudHMpO2NvbnN0IHBuPSEhdG4mJigiYm9vbGVhbiI9PXR5cGVvZiB0bnx8dG4uY2FwdHVyZSksbW49ISghdG58fCJvYmplY3QiIT10eXBlb2YgdG4pJiZ0bi5vbmNlLE1uPVpvbmUuY3VycmVudDtsZXQgeW49anRbVHRdO3lufHwocm4oVHQsQ3Qp'@; put 'LHluPWp0W1R0XSk7Y29uc3QgZ249eW5bcG4/aTpwXTtsZXQgdm4saG49eHRbZ25dLEVuPSExO2lmKGhuKXtpZihFbj0hMCxVdClmb3IobGV0IGNuPTA7Y248aG4ubGVuZ3RoO2NuKyspaWYobXQoaG5bY25dLGJ0KSlyZXR1cm59ZWxzZSBobj14dFtnbl09W107Y29uc3QgeG49eHQuY29uc3Ry'@; put 'dWN0b3IubmFtZSxUbj1YdFt4bl07VG4mJih2bj1UbltUdF0pLHZufHwodm49eG4rRysoQ3Q/Q3QoVHQpOlR0KSkscS5vcHRpb25zPXRuLG1uJiYocS5vcHRpb25zLm9uY2U9ITEpLHEudGFyZ2V0PXh0LHEuY2FwdHVyZT1wbixxLmV2ZW50TmFtZT1UdCxxLmlzRXhpc3Rpbmc9RW47Y29uc3Qg'@; put 'ZG49R3Q/RnQ6dm9pZCAwO2RuJiYoZG4udGFza0RhdGE9cSk7Y29uc3QgdW49TW4uc2NoZWR1bGVFdmVudFRhc2sodm4sYnQsZG4sbHQscHQpO3JldHVybiBxLnRhcmdldD1udWxsLGRuJiYoZG4udGFza0RhdGE9bnVsbCksbW4mJih0bi5vbmNlPSEwKSwhRXQmJiJib29sZWFuIj09dHlwZW9m'@; put 'IHVuLm9wdGlvbnN8fCh1bi5vcHRpb25zPXRuKSx1bi50YXJnZXQ9eHQsdW4uY2FwdHVyZT1wbix1bi5ldmVudE5hbWU9VHQsTnQmJih1bi5vcmlnaW5hbERlbGVnYXRlPWJ0KSxndD9obi51bnNoaWZ0KHVuKTpobi5wdXNoKHVuKSx1dD94dDp2b2lkIDB9fTtyZXR1cm4gcnRbQV09VyhQdCxj'@; put 'dCxNLE4sd3QpLEh0JiYocnRbaXRdPVcoSHQsQXQsZnVuY3Rpb24oTCl7cmV0dXJuIEh0LmNhbGwocS50YXJnZXQscS5ldmVudE5hbWUsTC5pbnZva2UscS5vcHRpb25zKX0sTix3dCwhMCkpLHJ0W2tdPWZ1bmN0aW9uKCl7Y29uc3QgTD10aGlzfHxoO2xldCBHPWFyZ3VtZW50c1swXTtldCYm'@; put 'ZXQudHJhbnNmZXJFdmVudE5hbWUmJihHPWV0LnRyYW5zZmVyRXZlbnROYW1lKEcpKTtjb25zdCBsdD1hcmd1bWVudHNbMl0scHQ9ISFsdCYmKCJib29sZWFuIj09dHlwZW9mIGx0fHxsdC5jYXB0dXJlKSx1dD1hcmd1bWVudHNbMV07aWYoIXV0KXJldHVybiBkdC5hcHBseSh0aGlzLGFyZ3Vt'@; put 'ZW50cyk7aWYoRHQmJiFEdChkdCx1dCxMLGFyZ3VtZW50cykpcmV0dXJuO2NvbnN0IGd0PWp0W0ddO2xldCB4dDtndCYmKHh0PWd0W3B0P2k6cF0pO2NvbnN0IFR0PXh0JiZMW3h0XTtpZihUdClmb3IobGV0IGJ0PTA7YnQ8VHQubGVuZ3RoO2J0Kyspe2NvbnN0IE50PVR0W2J0XTtpZihtdChO'@; put 'dCx1dCkpcmV0dXJuIFR0LnNwbGljZShidCwxKSxOdC5pc1JlbW92ZWQ9ITAsMD09PVR0Lmxlbmd0aCYmKE50LmFsbFJlbW92ZWQ9ITAsTFt4dF09bnVsbCwic3RyaW5nIj09dHlwZW9mIEcpJiYoTFt5KyJPTl9QUk9QRVJUWSIrR109bnVsbCksTnQuem9uZS5jYW5jZWxUYXNrKE50KSx3dD9M'@; put 'OnZvaWQgMH1yZXR1cm4gZHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxydFtKXT1mdW5jdGlvbigpe2NvbnN0IEw9dGhpc3x8aDtsZXQgRz1hcmd1bWVudHNbMF07ZXQmJmV0LnRyYW5zZmVyRXZlbnROYW1lJiYoRz1ldC50cmFuc2ZlckV2ZW50TmFtZShHKSk7Y29uc3QgbHQ9W10scHQ9YW4o'@; put 'TCxDdD9DdChHKTpHKTtmb3IobGV0IHV0PTA7dXQ8cHQubGVuZ3RoO3V0Kyspe2NvbnN0IGd0PXB0W3V0XTtsdC5wdXNoKGd0Lm9yaWdpbmFsRGVsZWdhdGU/Z3Qub3JpZ2luYWxEZWxlZ2F0ZTpndC5jYWxsYmFjayl9cmV0dXJuIGx0fSxydFt6XT1mdW5jdGlvbigpe2NvbnN0IEw9dGhpc3x8'@; put 'aDtsZXQgRz1hcmd1bWVudHNbMF07aWYoRyl7ZXQmJmV0LnRyYW5zZmVyRXZlbnROYW1lJiYoRz1ldC50cmFuc2ZlckV2ZW50TmFtZShHKSk7Y29uc3QgbHQ9anRbR107aWYobHQpe2NvbnN0IGd0PUxbbHRbcF1dLHh0PUxbbHRbaV1dO2lmKGd0KXtjb25zdCBUdD1ndC5zbGljZSgpO2Zvcihs'@; put 'ZXQgYnQ9MDtidDxUdC5sZW5ndGg7YnQrKyl7Y29uc3QgTnQ9VHRbYnRdO3RoaXNba10uY2FsbCh0aGlzLEcsTnQub3JpZ2luYWxEZWxlZ2F0ZT9OdC5vcmlnaW5hbERlbGVnYXRlOk50LmNhbGxiYWNrLE50Lm9wdGlvbnMpfX1pZih4dCl7Y29uc3QgVHQ9eHQuc2xpY2UoKTtmb3IobGV0IGJ0'@; put 'PTA7YnQ8VHQubGVuZ3RoO2J0Kyspe2NvbnN0IE50PVR0W2J0XTt0aGlzW2tdLmNhbGwodGhpcyxHLE50Lm9yaWdpbmFsRGVsZWdhdGU/TnQub3JpZ2luYWxEZWxlZ2F0ZTpOdC5jYWxsYmFjayxOdC5vcHRpb25zKX19fX1lbHNle2NvbnN0IGx0PU9iamVjdC5rZXlzKEwpO2ZvcihsZXQgcHQ9'@; put 'MDtwdDxsdC5sZW5ndGg7cHQrKyl7Y29uc3QgZ3Q9QnQuZXhlYyhsdFtwdF0pO2xldCB4dD1ndCYmZ3RbMV07eHQmJiJyZW1vdmVMaXN0ZW5lciIhPT14dCYmdGhpc1t6XS5jYWxsKHRoaXMseHQpfXRoaXNbel0uY2FsbCh0aGlzLCJyZW1vdmVMaXN0ZW5lciIpfWlmKHd0KXJldHVybiB0aGlz'@; put 'fSxRKHJ0W0FdLFB0KSxRKHJ0W2tdLGR0KSxfdCYmUShydFt6XSxfdCksenQmJlEocnRbSl0senQpLCEwfWxldCAkdD1bXTtmb3IobGV0IHl0PTA7eXQ8SS5sZW5ndGg7eXQrKykkdFt5dF09SnQoSVt5dF0sVCk7cmV0dXJuICR0fWZ1bmN0aW9uIGFuKGgsUCl7aWYoIVApe2NvbnN0IGs9W107'@; put 'Zm9yKGxldCBKIGluIGgpe2NvbnN0IHo9QnQuZXhlYyhKKTtsZXQgb3Q9eiYmelsxXTtpZihvdCYmKCFQfHxvdD09PVApKXtjb25zdCBjdD1oW0pdO2lmKGN0KWZvcihsZXQgaXQ9MDtpdDxjdC5sZW5ndGg7aXQrKylrLnB1c2goY3RbaXRdKX19cmV0dXJuIGt9bGV0IEk9anRbUF07SXx8KHJu'@; put 'KFApLEk9anRbUF0pO2NvbnN0IFQ9aFtJW3BdXSxBPWhbSVtpXV07cmV0dXJuIFQ/QT9ULmNvbmNhdChBKTpULnNsaWNlKCk6QT9BLnNsaWNlKCk6W119ZnVuY3Rpb24gZm4oaCxQKXtjb25zdCBJPWguRXZlbnQ7SSYmSS5wcm90b3R5cGUmJlAucGF0Y2hNZXRob2QoSS5wcm90b3R5cGUsInN0'@; put 'b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsVD0+ZnVuY3Rpb24oQSxrKXtBW1F0XT0hMCxUJiZULmFwcGx5KEEsayl9KX1mdW5jdGlvbiBvbihoLFAsSSxULEEpe2NvbnN0IGs9Wm9uZS5fX3N5bWJvbF9fKFQpO2lmKFBba10pcmV0dXJuO2NvbnN0IEo9UFtrXT1QW1RdO1BbVF09ZnVuY3Rpb24o'@; put 'eixvdCxjdCl7cmV0dXJuIG90JiZvdC5wcm90b3R5cGUmJkEuZm9yRWFjaChmdW5jdGlvbihpdCl7Y29uc3QgQXQ9YCR7SX0uJHtUfTo6YCtpdCxTdD1vdC5wcm90b3R5cGU7dHJ5e2lmKFN0Lmhhc093blByb3BlcnR5KGl0KSl7Y29uc3QgT3Q9aC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2Ny'@; put 'aXB0b3IoU3QsaXQpO090JiZPdC52YWx1ZT8oT3QudmFsdWU9aC53cmFwV2l0aEN1cnJlbnRab25lKE90LnZhbHVlLEF0KSxoLl9yZWRlZmluZVByb3BlcnR5KG90LnByb3RvdHlwZSxpdCxPdCkpOlN0W2l0XSYmKFN0W2l0XT1oLndyYXBXaXRoQ3VycmVudFpvbmUoU3RbaXRdLEF0KSl9ZWxz'@; put 'ZSBTdFtpdF0mJihTdFtpdF09aC53cmFwV2l0aEN1cnJlbnRab25lKFN0W2l0XSxBdCkpfWNhdGNoe319KSxKLmNhbGwoUCx6LG90LGN0KX0saC5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQoUFtUXSxKKX1mdW5jdGlvbiBZdChoLFAsSSl7aWYoIUl8fDA9PT1JLmxlbmd0aClyZXR1cm4gUDtjb25z'@; put 'dCBUPUkuZmlsdGVyKGs9PmsudGFyZ2V0PT09aCk7aWYoIVR8fDA9PT1ULmxlbmd0aClyZXR1cm4gUDtjb25zdCBBPVRbMF0uaWdub3JlUHJvcGVydGllcztyZXR1cm4gUC5maWx0ZXIoaz0+LTE9PT1BLmluZGV4T2YoaykpfWZ1bmN0aW9uIFp0KGgsUCxJLFQpe2gmJl8oaCxZdChoLFAsSSks'@; put 'VCl9ZnVuY3Rpb24gZW4oaCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGgpLmZpbHRlcihQPT5QLnN0YXJ0c1dpdGgoIm9uIikmJlAubGVuZ3RoPjIpLm1hcChQPT5QLnN1YnN0cmluZygyKSl9Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChoLFAsSSk9Pntjb25zdCBUPWVu'@; put 'KGgpO0kucGF0Y2hPblByb3BlcnRpZXM9XyxJLnBhdGNoTWV0aG9kPVgsSS5iaW5kQXJndW1lbnRzPUYsSS5wYXRjaE1hY3JvVGFzaz1WO2NvbnN0IEE9UC5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIiksaz1QLl9fc3ltYm9sX18oIlVOUEFUQ0hFRF9FVkVOVFMiKTtoW2tdJiYo'@; put 'aFtBXT1oW2tdKSxoW0FdJiYoUFtBXT1QW2tdPWhbQV0pLEkucGF0Y2hFdmVudFByb3RvdHlwZT1mbixJLnBhdGNoRXZlbnRUYXJnZXQ9bm4sSS5pc0lFT3JFZGdlPU10LEkuT2JqZWN0RGVmaW5lUHJvcGVydHk9bCxJLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcj1jLEkuT2JqZWN0'@; put 'Q3JlYXRlPW4sSS5BcnJheVNsaWNlPWUsSS5wYXRjaENsYXNzPXN0LEkud3JhcFdpdGhDdXJyZW50Wm9uZT12LEkuZmlsdGVyUHJvcGVydGllcz1ZdCxJLmF0dGFjaE9yaWdpblRvUGF0Y2hlZD1RLEkuX3JlZGVmaW5lUHJvcGVydHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LEkucGF0Y2hDYWxs'@; put 'YmFja3M9b24sSS5nZXRHbG9iYWxPYmplY3RzPSgpPT4oe2dsb2JhbFNvdXJjZXM6WHQsem9uZVN5bWJvbEV2ZW50TmFtZXM6anQsZXZlbnROYW1lczpULGlzQnJvd3NlcjpDLGlzTWl4OkssaXNOb2RlOlMsVFJVRV9TVFI6aSxGQUxTRV9TVFI6cCxaT05FX1NZTUJPTF9QUkVGSVg6eSxBRERf'@; put 'RVZFTlRfTElTVEVORVJfU1RSOnMsUkVNT1ZFX0VWRU5UX0xJU1RFTkVSX1NUUjpvfSl9KTtjb25zdCByPXgoInpvbmVUYXNrIik7ZnVuY3Rpb24gYShoLFAsSSxUKXtsZXQgQT1udWxsLGs9bnVsbDtJKz1UO2NvbnN0IEo9e307ZnVuY3Rpb24geihjdCl7Y29uc3QgaXQ9Y3QuZGF0YTtyZXR1'@; put 'cm4gaXQuYXJnc1swXT1mdW5jdGlvbigpe3JldHVybiBjdC5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxpdC5oYW5kbGVJZD1BLmFwcGx5KGgsaXQuYXJncyksY3R9ZnVuY3Rpb24gb3QoY3Qpe3JldHVybiBrLmNhbGwoaCxjdC5kYXRhLmhhbmRsZUlkKX1BPVgoaCxQKz1ULGN0PT5m'@; put 'dW5jdGlvbihpdCxBdCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEF0WzBdKXtjb25zdCBTdD17aXNQZXJpb2RpYzoiSW50ZXJ2YWwiPT09VCxkZWxheToiVGltZW91dCI9PT1UfHwiSW50ZXJ2YWwiPT09VD9BdFsxXXx8MDp2b2lkIDAsYXJnczpBdH0sT3Q9QXRbMF07QXRbMF09ZnVuY3Rpb24o'@; put 'KXt0cnl7cmV0dXJuIE90LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e1N0LmlzUGVyaW9kaWN8fCgibnVtYmVyIj09dHlwZW9mIFN0LmhhbmRsZUlkP2RlbGV0ZSBKW1N0LmhhbmRsZUlkXTpTdC5oYW5kbGVJZCYmKFN0LmhhbmRsZUlkW3JdPW51bGwpKX19O2NvbnN0IGt0PWcoUCxB'@; put 'dFswXSxTdCx6LG90KTtpZigha3QpcmV0dXJuIGt0O2NvbnN0IFJ0PWt0LmRhdGEuaGFuZGxlSWQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBSdD9KW1J0XT1rdDpSdCYmKFJ0W3JdPWt0KSxSdCYmUnQucmVmJiZSdC51bnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIFJ0LnJlZiYmImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIFJ0LnVucmVmJiYoa3QucmVmPVJ0LnJlZi5iaW5kKFJ0KSxrdC51bnJlZj1SdC51bnJlZi5iaW5kKFJ0KSksIm51bWJlciI9PXR5cGVvZiBSdHx8UnQ/UnQ6a3R9cmV0dXJuIGN0LmFwcGx5KGgsQXQpfSksaz1YKGgsSSxjdD0+ZnVuY3Rpb24oaXQsQXQpe2NvbnN0IFN0PUF0'@; put 'WzBdO2xldCBPdDsibnVtYmVyIj09dHlwZW9mIFN0P090PUpbU3RdOihPdD1TdCYmU3Rbcl0sT3R8fChPdD1TdCkpLE90JiYic3RyaW5nIj09dHlwZW9mIE90LnR5cGU/Im5vdFNjaGVkdWxlZCIhPT1PdC5zdGF0ZSYmKE90LmNhbmNlbEZuJiZPdC5kYXRhLmlzUGVyaW9kaWN8fDA9PT1PdC5y'@; put 'dW5Db3VudCkmJigibnVtYmVyIj09dHlwZW9mIFN0P2RlbGV0ZSBKW1N0XTpTdCYmKFN0W3JdPW51bGwpLE90LnpvbmUuY2FuY2VsVGFzayhPdCkpOmN0LmFwcGx5KGgsQXQpfSl9Wm9uZS5fX2xvYWRfcGF0Y2goImxlZ2FjeSIsaD0+e2NvbnN0IFA9aFtab25lLl9fc3ltYm9sX18oImxlZ2Fj'@; put 'eVBhdGNoIildO1AmJlAoKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJ0aW1lcnMiLGg9Pntjb25zdCBQPSJzZXQiLEk9ImNsZWFyIjthKGgsUCxJLCJUaW1lb3V0IiksYShoLFAsSSwiSW50ZXJ2YWwiKSxhKGgsUCxJLCJJbW1lZGlhdGUiKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJyZXF1ZXN0QW5p'@; put 'bWF0aW9uRnJhbWUiLGg9PnthKGgsInJlcXVlc3QiLCJjYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLGEoaCwibW96UmVxdWVzdCIsIm1vekNhbmNlbCIsIkFuaW1hdGlvbkZyYW1lIiksYShoLCJ3ZWJraXRSZXF1ZXN0Iiwid2Via2l0Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKX0pLFpvbmUu'@; put 'X19sb2FkX3BhdGNoKCJibG9ja2luZyIsKGgsUCk9Pntjb25zdCBJPVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl07Zm9yKGxldCBUPTA7VDxJLmxlbmd0aDtUKyspWChoLElbVF0sKGssSix6KT0+ZnVuY3Rpb24ob3QsY3Qpe3JldHVybiBQLmN1cnJlbnQucnVuKGssaCxjdCx6KX0pfSks'@; put 'Wm9uZS5fX2xvYWRfcGF0Y2goIkV2ZW50VGFyZ2V0IiwoaCxQLEkpPT57KGZ1bmN0aW9uICQoaCxQKXtQLnBhdGNoRXZlbnRQcm90b3R5cGUoaCxQKX0pKGgsSSksZnVuY3Rpb24gRChoLFApe2lmKFpvbmVbUC5zeW1ib2woInBhdGNoRXZlbnRUYXJnZXQiKV0pcmV0dXJuO2NvbnN0e2V2ZW50'@; put 'TmFtZXM6SSx6b25lU3ltYm9sRXZlbnROYW1lczpULFRSVUVfU1RSOkEsRkFMU0VfU1RSOmssWk9ORV9TWU1CT0xfUFJFRklYOkp9PVAuZ2V0R2xvYmFsT2JqZWN0cygpO2ZvcihsZXQgb3Q9MDtvdDxJLmxlbmd0aDtvdCsrKXtjb25zdCBjdD1JW290XSxTdD1KKyhjdCtrKSxPdD1KKyhjdCtB'@; put 'KTtUW2N0XT17fSxUW2N0XVtrXT1TdCxUW2N0XVtBXT1PdH1jb25zdCB6PWguRXZlbnRUYXJnZXQ7eiYmei5wcm90b3R5cGUmJlAucGF0Y2hFdmVudFRhcmdldChoLFAsW3omJnoucHJvdG90eXBlXSl9KGgsSSk7Y29uc3QgVD1oLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7VCYmVC5wcm90'@; put 'b3R5cGUmJkkucGF0Y2hFdmVudFRhcmdldChoLEksW1QucHJvdG90eXBlXSl9KSxab25lLl9fbG9hZF9wYXRjaCgiTXV0YXRpb25PYnNlcnZlciIsKGgsUCxJKT0+e3N0KCJNdXRhdGlvbk9ic2VydmVyIiksc3QoIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIiKX0pLFpvbmUuX19sb2FkX3BhdGNo'@; put 'KCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsKGgsUCxJKT0+e3N0KCJJbnRlcnNlY3Rpb25PYnNlcnZlciIpfSksWm9uZS5fX2xvYWRfcGF0Y2goIkZpbGVSZWFkZXIiLChoLFAsSSk9PntzdCgiRmlsZVJlYWRlciIpfSksWm9uZS5fX2xvYWRfcGF0Y2goIm9uX3Byb3BlcnR5IiwoaCxQLEkpPT57'@; put 'IWZ1bmN0aW9uIGxuKGgsUCl7aWYoUyYmIUt8fFpvbmVbaC5zeW1ib2woInBhdGNoRXZlbnRzIildKXJldHVybjtjb25zdCBJPVAuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2xldCBUPVtdO2lmKEMpe2NvbnN0IEE9d2luZG93O1Q9VC5jb25jYXQoWyJEb2N1bWVudCIsIlNWR0VsZW1l'@; put 'bnQiLCJFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJIVE1MQm9keUVsZW1lbnQiLCJIVE1MTWVkaWFFbGVtZW50IiwiSFRNTEZyYW1lU2V0RWxlbWVudCIsIkhUTUxGcmFtZUVsZW1lbnQiLCJIVE1MSUZyYW1lRWxlbWVudCIsIkhUTUxNYXJxdWVlRWxlbWVudCIsIldvcmtlciJdKTtjb25zdCBr'@; put 'PWZ1bmN0aW9uIHZ0KCl7dHJ5e2NvbnN0IGg9ai5uYXZpZ2F0b3IudXNlckFnZW50O2lmKC0xIT09aC5pbmRleE9mKCJNU0lFICIpfHwtMSE9PWguaW5kZXhPZigiVHJpZGVudC8iKSlyZXR1cm4hMH1jYXRjaHt9cmV0dXJuITF9KCk/W3t0YXJnZXQ6QSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJy'@; put 'b3IiXX1dOltdO1p0KEEsZW4oQSksSSYmSS5jb25jYXQoayksdChBKSl9VD1ULmNvbmNhdChbIlhNTEh0dHBSZXF1ZXN0IiwiWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCIsIklEQkluZGV4IiwiSURCUmVxdWVzdCIsIklEQk9wZW5EQlJlcXVlc3QiLCJJREJEYXRhYmFzZSIsIklEQlRyYW5z'@; put 'YWN0aW9uIiwiSURCQ3Vyc29yIiwiV2ViU29ja2V0Il0pO2ZvcihsZXQgQT0wO0E8VC5sZW5ndGg7QSsrKXtjb25zdCBrPVBbVFtBXV07ayYmay5wcm90b3R5cGUmJlp0KGsucHJvdG90eXBlLGVuKGsucHJvdG90eXBlKSxJKX19KEksaCl9KSxab25lLl9fbG9hZF9wYXRjaCgiY3VzdG9tRWxl'@; put 'bWVudHMiLChoLFAsSSk9PnshZnVuY3Rpb24gbShoLFApe2NvbnN0e2lzQnJvd3NlcjpJLGlzTWl4OlR9PVAuZ2V0R2xvYmFsT2JqZWN0cygpOyhJfHxUKSYmaC5jdXN0b21FbGVtZW50cyYmImN1c3RvbUVsZW1lbnRzImluIGgmJlAucGF0Y2hDYWxsYmFja3MoUCxoLmN1c3RvbUVsZW1lbnRz'@; put 'LCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsWyJjb25uZWN0ZWRDYWxsYmFjayIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiYWRvcHRlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShoLEkpfSksWm9uZS5fX2xvYWRfcGF0Y2goIlhIUiIsKGgsUCk9PnshZnVuY3Rp'@; put 'b24gb3QoY3Qpe2NvbnN0IGl0PWN0LlhNTEh0dHBSZXF1ZXN0O2lmKCFpdClyZXR1cm47Y29uc3QgQXQ9aXQucHJvdG90eXBlO2xldCBPdD1BdFt1XSxrdD1BdFtmXTtpZighT3Qpe2NvbnN0IHE9Y3QuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpZihxKXtjb25zdCBQdD1xLnByb3RvdHlw'@; put 'ZTtPdD1QdFt1XSxrdD1QdFtmXX19Y29uc3QgUnQ9InJlYWR5c3RhdGVjaGFuZ2UiLEp0PSJzY2hlZHVsZWQiO2Z1bmN0aW9uICR0KHEpe2NvbnN0IFB0PXEuZGF0YSxkdD1QdC50YXJnZXQ7ZHRba109ITEsZHRbel09ITE7Y29uc3QgenQ9ZHRbQV07T3R8fChPdD1kdFt1XSxrdD1kdFtmXSks'@; put 'enQmJmt0LmNhbGwoZHQsUnQsenQpO2NvbnN0IF90PWR0W0FdPSgpPT57aWYoZHQucmVhZHlTdGF0ZT09PWR0LkRPTkUpaWYoIVB0LmFib3J0ZWQmJmR0W2tdJiZxLnN0YXRlPT09SnQpe2NvbnN0IEx0PWR0W1AuX19zeW1ib2xfXygibG9hZGZhbHNlIildO2lmKDAhPT1kdC5zdGF0dXMmJkx0'@; put 'JiZMdC5sZW5ndGg+MCl7Y29uc3QgcXQ9cS5pbnZva2U7cS5pbnZva2U9ZnVuY3Rpb24oKXtjb25zdCBWdD1kdFtQLl9fc3ltYm9sX18oImxvYWRmYWxzZSIpXTtmb3IobGV0IEt0PTA7S3Q8VnQubGVuZ3RoO0t0KyspVnRbS3RdPT09cSYmVnQuc3BsaWNlKEt0LDEpOyFQdC5hYm9ydGVkJiZx'@; put 'LnN0YXRlPT09SnQmJnF0LmNhbGwocSl9LEx0LnB1c2gocSl9ZWxzZSBxLmludm9rZSgpfWVsc2UhUHQuYWJvcnRlZCYmITE9PT1kdFtrXSYmKGR0W3pdPSEwKX07cmV0dXJuIE90LmNhbGwoZHQsUnQsX3QpLGR0W0ldfHwoZHRbSV09cSkscnQuYXBwbHkoZHQsUHQuYXJncyksZHRba109ITAs'@; put 'cX1mdW5jdGlvbiB5dCgpe31mdW5jdGlvbiBldChxKXtjb25zdCBQdD1xLmRhdGE7cmV0dXJuIFB0LmFib3J0ZWQ9ITAsQ3QuYXBwbHkoUHQudGFyZ2V0LFB0LmFyZ3MpfWNvbnN0IEd0PVgoQXQsIm9wZW4iLCgpPT5mdW5jdGlvbihxLFB0KXtyZXR1cm4gcVtUXT0wPT1QdFsyXSxxW0pdPVB0'@; put 'WzFdLEd0LmFwcGx5KHEsUHQpfSksVXQ9eCgiZmV0Y2hUYXNrQWJvcnRpbmciKSx3dD14KCJmZXRjaFRhc2tTY2hlZHVsaW5nIikscnQ9WChBdCwic2VuZCIsKCk9PmZ1bmN0aW9uKHEsUHQpe2lmKCEwPT09UC5jdXJyZW50W3d0XXx8cVtUXSlyZXR1cm4gcnQuYXBwbHkocSxQdCk7e2NvbnN0'@; put 'IGR0PXt0YXJnZXQ6cSx1cmw6cVtKXSxpc1BlcmlvZGljOiExLGFyZ3M6UHQsYWJvcnRlZDohMX0senQ9ZygiWE1MSHR0cFJlcXVlc3Quc2VuZCIseXQsZHQsJHQsZXQpO3EmJiEwPT09cVt6XSYmIWR0LmFib3J0ZWQmJnp0LnN0YXRlPT09SnQmJnp0Lmludm9rZSgpfX0pLEN0PVgoQXQsImFi'@; put 'b3J0IiwoKT0+ZnVuY3Rpb24ocSxQdCl7Y29uc3QgZHQ9ZnVuY3Rpb24gU3QocSl7cmV0dXJuIHFbSV19KHEpO2lmKGR0JiYic3RyaW5nIj09dHlwZW9mIGR0LnR5cGUpe2lmKG51bGw9PWR0LmNhbmNlbEZufHxkdC5kYXRhJiZkdC5kYXRhLmFib3J0ZWQpcmV0dXJuO2R0LnpvbmUuY2FuY2Vs'@; put 'VGFzayhkdCl9ZWxzZSBpZighMD09PVAuY3VycmVudFtVdF0pcmV0dXJuIEN0LmFwcGx5KHEsUHQpfSl9KGgpO2NvbnN0IEk9eCgieGhyVGFzayIpLFQ9eCgieGhyU3luYyIpLEE9eCgieGhyTGlzdGVuZXIiKSxrPXgoInhoclNjaGVkdWxlZCIpLEo9eCgieGhyVVJMIiksej14KCJ4aHJFcnJv'@; put 'ckJlZm9yZVNjaGVkdWxlZCIpfSksWm9uZS5fX2xvYWRfcGF0Y2goImdlb2xvY2F0aW9uIixoPT57aC5uYXZpZ2F0b3ImJmgubmF2aWdhdG9yLmdlb2xvY2F0aW9uJiZmdW5jdGlvbiBCKGgsUCl7Y29uc3QgST1oLmNvbnN0cnVjdG9yLm5hbWU7Zm9yKGxldCBUPTA7VDxQLmxlbmd0aDtUKysp'@; put 'e2NvbnN0IEE9UFtUXSxrPWhbQV07aWYoayl7aWYoIWIoYyhoLEEpKSljb250aW51ZTtoW0FdPSh6PT57Y29uc3Qgb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gei5hcHBseSh0aGlzLEYoYXJndW1lbnRzLEkrIi4iK0EpKX07cmV0dXJuIFEob3Qseiksb3R9KShrKX19fShoLm5hdmlnYXRvci5nZW9s'@; put 'b2NhdGlvbixbImdldEN1cnJlbnRQb3NpdGlvbiIsIndhdGNoUG9zaXRpb24iXSl9KSxab25lLl9fbG9hZF9wYXRjaCgiUHJvbWlzZVJlamVjdGlvbkV2ZW50IiwoaCxQKT0+e2Z1bmN0aW9uIEkoVCl7cmV0dXJuIGZ1bmN0aW9uKEEpe2FuKGgsVCkuZm9yRWFjaChKPT57Y29uc3Qgej1oLlBy'@; put 'b21pc2VSZWplY3Rpb25FdmVudDtpZih6KXtjb25zdCBvdD1uZXcgeihULHtwcm9taXNlOkEucHJvbWlzZSxyZWFzb246QS5yZWplY3Rpb259KTtKLmludm9rZShvdCl9fSl9fWguUHJvbWlzZVJlamVjdGlvbkV2ZW50JiYoUFt4KCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIp'@; put 'XT1JKCJ1bmhhbmRsZWRyZWplY3Rpb24iKSxQW3goInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIildPUkoInJlamVjdGlvbmhhbmRsZWQiKSl9KSxab25lLl9fbG9hZF9wYXRjaCgicXVldWVNaWNyb3Rhc2siLChoLFAsSSk9PnshZnVuY3Rpb24gZChoLFApe1AucGF0Y2hNZXRob2QoaCwicXVl'@; put 'dWVNaWNyb3Rhc2siLEk9PmZ1bmN0aW9uKFQsQSl7Wm9uZS5jdXJyZW50LnNjaGVkdWxlTWljcm9UYXNrKCJxdWV1ZU1pY3JvdGFzayIsQVswXSl9KX0oaCxJKX0pfSwzMDc1ODooYyxsLHQpPT57InVzZSBzdHJpY3QiO2NvbnN0IG49dCgxMjAzMCk7SW50bC5EYXRlVGltZUZvcm1hdC5wcm90'@; put 'b3R5cGUuZm9ybWF0VG9QYXJ0cz1mdW5jdGlvbihiKXtsZXQgTz10aGlzLnJlc29sdmVkT3B0aW9ucygpLFM9ZnVuY3Rpb24gQihiKXt2YXIgWix0dCxfLG50LHN0LE89Yi5hdmFpbGFibGVGb3JtYXRzLFM9Yi50aW1lRm9ybWF0cyxDPWIuZGF0ZUZvcm1hdHMsSz1iLm1lZGl1bSxVPVtdLFg9'@; put 'W10sVj1bXTtmdW5jdGlvbiBRKFksZnQpe3ZhciB2dD1uZXcgQXJyYXkoKFkubWF0Y2goL00vZyl8fFtdKS5sZW5ndGgrMSksTXQ9bmV3IEFycmF5KChZLm1hdGNoKC9FL2cpfHxbXSkubGVuZ3RoKzEpO3JldHVybiB2dC5sZW5ndGg+MiYmKGZ0PWZ0LnJlcGxhY2UoLyhNfEwpKy8sdnQuam9p'@; put 'bigiJDEiKSkpLE10Lmxlbmd0aD4yJiYoZnQ9ZnQucmVwbGFjZSgvKFtFZWNdKSsvLE10LmpvaW4oIiQxIikpKSxmdH1mb3IoWiBpbiBPKU8uaGFzT3duUHJvcGVydHkoWikmJigoXz1GKHR0PVEoWixPW1pdKSkpJiYoVS5wdXNoKF8pLHcoXyk/Vi5wdXNoKHR0KTpSKF8pJiZYLnB1c2godHQp'@; put 'KSk7Zm9yKG50PTA7bnQ8WC5sZW5ndGg7bnQrPTEpZm9yKHN0PTA7c3Q8Vi5sZW5ndGg7c3QrPTEpKF89Rih0dD1LLnJlcGxhY2UoInswfSIsWFtudF0pLnJlcGxhY2UoInsxfSIsVltzdF0pLnJlcGxhY2UoL15bLFxzXSt8Wyxcc10rJC9naSwiIikpKSYmVS5wdXNoKF8pO2ZvcihaIGluIFMp'@; put 'Uy5oYXNPd25Qcm9wZXJ0eShaKSYmKChfPUYodHQ9UShaLFNbWl0pKSkmJlUucHVzaChfKSk7Zm9yKFogaW4gQylDLmhhc093blByb3BlcnR5KFopJiYoKF89Rih0dD1RKFosQ1taXSkpKSYmVS5wdXNoKF8pKTtyZXR1cm4gVX0obi5kYXRlLmZvcm1hdHMpLEM9e307Zm9yKHZhciBLIGluIGYp'@; put 'cy5jYWxsKGYsSykmJihDWyJbWyIrSysiXV0iXT1PW0tdKTtsZXQgWj1mdW5jdGlvbiBpKGIsTyxTKXtmb3IodmFyIFgsc3Q9LTEvMCxWPTAsUT1PLmxlbmd0aDtWPFE7KXt2YXIgWT1PW1ZdLGZ0PTA7Zm9yKHZhciB2dCBpbiBmKWlmKHMuY2FsbChmLHZ0KSl7dmFyIE10PWJbIltbIit2dCsi'@; put 'XV0iXSxFdD1zLmNhbGwoWSx2dCk/WVt2dF06dm9pZCAwO2lmKHZvaWQgMD09PU10JiZ2b2lkIDAhPT1FdClmdC09MjA7ZWxzZSBpZih2b2lkIDAhPT1NdCYmdm9pZCAwPT09RXQpZnQtPTEyMDtlbHNle3ZhciBGdD1bIjItZGlnaXQiLCJudW1lcmljIiwibmFycm93Iiwic2hvcnQiLCJsb25n'@; put 'Il0sanQ9by5jYWxsKEZ0LE10KSxYdD1vLmNhbGwoRnQsRXQpLEJ0PU1hdGgubWF4KE1hdGgubWluKFh0LWp0LDIpLC0yKTtTJiYoKCJudW1lcmljIj09PU10fHwiMi1kaWdpdCI9PT1NdCkmJiJudW1lcmljIiE9PUV0JiYiMi1kaWdpdCIhPT1FdHx8Im51bWVyaWMiIT09TXQmJiIyLWRpZ2l0'@; put 'IiE9PU10JiYoIjItZGlnaXQiPT09RXR8fCJudW1lcmljIj09PUV0KSkmJihmdC09OCksMj09PUJ0P2Z0LT02OjE9PT1CdD9mdC09MzotMT09PUJ0P2Z0LT02Oi0yPT09QnQmJihmdC09OCl9fWZ0PnN0JiYoc3Q9ZnQsWD1ZKSxWKyt9cmV0dXJuIFh9KEMsUyk7cmV0dXJuIGZ1bmN0aW9uIGUo'@; put 'YixPKXtpZighaXNGaW5pdGUoTykpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdmFsaWQgZGF0ZSBwYXNzZWQgdG8gZm9ybWF0VG9QYXJ0cyIpO2Zvcih2YXIgWCxTPSJlbi1VUyIsQz1iLnBhdHRlcm4sWj0obmV3IEludGwuTnVtYmVyRm9ybWF0KFtTXSx7dXNlR3JvdXBpbmc6ITF9'@; put 'KSxuZXcgSW50bC5OdW1iZXJGb3JtYXQoW1NdLHttaW5pbXVtSW50ZWdlckRpZ2l0czoyLHVzZUdyb3VwaW5nOiExfSksZnVuY3Rpb24gcChiLE8sUyl7dmFyIEM9bmV3IERhdGUoYiksSz0iZ2V0IisoU3x8IiIpO3JldHVybnsiW1t3ZWVrZGF5XV0iOkNbSysiRGF5Il0oKSwiW1tlcmFdXSI6'@; put 'KyhDW0srIkZ1bGxZZWFyIl0oKT49MCksIltbeWVhcl1dIjpDW0srIkZ1bGxZZWFyIl0oKSwiW1ttb250aF1dIjpDW0srIk1vbnRoIl0oKSwiW1tkYXldXSI6Q1tLKyJEYXRlIl0oKSwiW1tob3VyXV0iOkNbSysiSG91cnMiXSgpLCJbW21pbnV0ZV1dIjpDW0srIk1pbnV0ZXMiXSgpLCJbW3Nl'@; put 'Y29uZF1dIjpDW0srIlNlY29uZHMiXSgpLCJbW2luRFNUXV0iOiExfX0oTykpLHR0PSJncmVnb3J5IixfPW4uZGF0ZS5jYWxlbmRhcnMsbnQ9W10sc3Q9L3soW159XSspfS9nLFY9MDtudWxsIT09KFg9c3QuZXhlYyhDKSk7KXtWPFguaW5kZXgmJm50LnB1c2goe3R5cGU6InNlcGFyYXRvciIs'@; put 'dmFsdWU6Qy5zdWJzdHIoVixYLmluZGV4LVYpfSk7dmFyIFE9WFsxXSxZPW51bGw7aWYocy5jYWxsKGIsUSkpe3ZhciBmdCx2dD1iW1FdLE10PVpbIltbIitRKyJdXSJdO2lmKCJ5ZWFyIj09PVEmJk10PD0wP010PTEtTXQ6Im1vbnRoIj09PVE/TXQrKzoiaG91ciI9PT1RJiYhMD09PWJbIltb'@; put 'aG91cjEyXV0iXSYmKGZ0PShNdCU9MTIpIT09WlsiW1siK1ErIl1dIl0sMD09PU10JiYhMD09PWJbIltbaG91ck5vMF1dIl0mJihNdD0xMikpLCJudW1lcmljIj09PXZ0KVk9TXQ7ZWxzZSBpZigiMi1kaWdpdCI9PT12dCkoWT1NdCkubGVuZ3RoPjImJihZPVkuc2xpY2UoLTIpKTtlbHNlIGlm'@; put 'KHZ0IGluIHUpc3dpdGNoKFEpe2Nhc2UibW9udGgiOlk9eShfLHR0LCJtb250aHMiLHZ0LFpbIltbIitRKyJdXSJdKTticmVhaztjYXNlIndlZWtkYXkiOnRyeXtZPXkoXyx0dCwiZGF5cyIsdnQsWlsiW1siK1ErIl1dIl0pfWNhdGNoe3Rocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQg'@; put 'd2Vla2RheSBkYXRhIGZvciBsb2NhbGUgIitTKX1icmVhaztjYXNlInRpbWVab25lTmFtZSI6WT0iIjticmVhaztkZWZhdWx0Olk9WlsiW1siK1ErIl1dIl19fWVsc2UiYW1wbSI9PT1RJiYoWT15KF8sdHQsImRheVBlcmlvZHMiLGZ0PyJwbSI6ImFtIikpO251bGwhPT1ZJiYobnQucHVzaCh7'@; put 'dHlwZTpYWzFdLHZhbHVlOll9KSxWPVguaW5kZXgrWFswXS5sZW5ndGgpfXJldHVybiBWPEMubGVuZ3RoJiZudC5wdXNoKHt0eXBlOiJzZXBhcmF0b3IiLHZhbHVlOkMuc3Vic3RyKFYpfSksbnR9KFosYil9O3ZhciBzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbz1BcnJheS5w'@; put 'cm90b3R5cGUuaW5kZXhPZix1PU9iamVjdC5jcmVhdGUobnVsbCx7bmFycm93Ont9LHNob3J0Ont9LGxvbmc6e319KSxmPXt3ZWVrZGF5OlsibmFycm93Iiwic2hvcnQiLCJsb25nIl0sZXJhOlsibmFycm93Iiwic2hvcnQiLCJsb25nIl0seWVhcjpbIjItZGlnaXQiLCJudW1lcmljIl0sbW9u'@; put 'dGg6WyIyLWRpZ2l0IiwibnVtZXJpYyIsIm5hcnJvdyIsInNob3J0IiwibG9uZyJdLGRheTpbIjItZGlnaXQiLCJudW1lcmljIl0saG91cjpbIjItZGlnaXQiLCJudW1lcmljIl0sbWludXRlOlsiMi1kaWdpdCIsIm51bWVyaWMiXSxzZWNvbmQ6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLHRpbWVa'@; put 'b25lTmFtZTpbInNob3J0IiwibG9uZyJdfTtmdW5jdGlvbiB5KGIsTyxTLEMsSyl7dmFyIFU9YltPXSYmYltPXVtTXT9iW09dW1NdOmIuZ3JlZ29yeVtTXSxaPXtuYXJyb3c6WyJzaG9ydCIsImxvbmciXSxzaG9ydDpbImxvbmciLCJuYXJyb3ciXSxsb25nOlsic2hvcnQiLCJuYXJyb3ciXX0s'@; put 'dHQ9cy5jYWxsKFUsQyk/VVtDXTpzLmNhbGwoVSxaW0NdWzBdKT9VW1pbQ11bMF1dOlVbWltDXVsxXV07cmV0dXJuIG51bGwhPUs/dHRbS106dHR9dmFyIHY9Lyg/OltFZWNdezEsNn18R3sxLDV9fCg/Olt5WXVdK3xVezEsNX0pfFtNTF17MSw1fXxkezEsMn18YXxbaGtIS117MSwyfXxtezEs'@; put 'Mn18c3sxLDJ9fHp7MSw0fSkoPz0oW14nXSonW14nXSonKSpbXiddKiQpL2csZz0vW1F4WFZPdlpBU2pnRkR3V0lRcUhdLyx4PXttb250aDpbIm51bWVyaWMiLCIyLWRpZ2l0Iiwic2hvcnQiLCJsb25nIiwibmFycm93Il0sd2Vla2RheTpbInNob3J0Iiwic2hvcnQiLCJzaG9ydCIsImxvbmci'@; put 'LCJuYXJyb3ciXSxlcmE6WyJzaG9ydCIsInNob3J0Iiwic2hvcnQiLCJsb25nIiwibmFycm93Il19LEU9WyJ3ZWVrZGF5IiwiZXJhIiwieWVhciIsIm1vbnRoIiwiZGF5Il0saj1bImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJ0aW1lWm9uZU5hbWUiXTtmdW5jdGlvbiB3KGIpe2Zvcih2YXIg'@; put 'Tz0wO088ai5sZW5ndGg7Tys9MSlpZihiLmhhc093blByb3BlcnR5KGpbT10pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFIoYil7Zm9yKHZhciBPPTA7TzxFLmxlbmd0aDtPKz0xKWlmKGIuaGFzT3duUHJvcGVydHkoRVtPXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gRihiKXtp'@; put 'ZighZy50ZXN0KGIpKXt2YXIgTz17fTtyZXR1cm4gTy5wYXR0ZXJuPWIucmVwbGFjZSh2LGZ1bmN0aW9uKFMpe3N3aXRjaChTLmNoYXJBdCgwKSl7Y2FzZSJFIjpjYXNlImUiOmNhc2UiYyI6cmV0dXJuIE8ud2Vla2RheT14LndlZWtkYXlbUy5sZW5ndGgtMV0sInt3ZWVrZGF5fSI7Y2FzZSJH'@; put 'IjpyZXR1cm4gTy5lcmE9eC5lcmFbUy5sZW5ndGgtMV0sIntlcmF9IjtjYXNlInkiOmNhc2UiWSI6Y2FzZSJ1IjpjYXNlIlUiOnJldHVybiBPLnllYXI9Mj09PVMubGVuZ3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsInt5ZWFyfSI7Y2FzZSJNIjpjYXNlIkwiOnJldHVybiBPLm1vbnRoPXgubW9u'@; put 'dGhbUy5sZW5ndGgtMV0sInttb250aH0iO2Nhc2UiZCI6cmV0dXJuIE8uZGF5PTI9PT1TLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7ZGF5fSI7Y2FzZSJhIjpyZXR1cm4ie2FtcG19IjtjYXNlImgiOmNhc2UiSCI6Y2FzZSJrIjpjYXNlIksiOnJldHVybiBPLmhvdXI9Mj09PVMubGVu'@; put 'Z3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsIntob3VyfSI7Y2FzZSJtIjpyZXR1cm4gTy5taW51dGU9Mj09PVMubGVuZ3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsInttaW51dGV9IjtjYXNlInMiOnJldHVybiBPLnNlY29uZD0yPT09Uy5sZW5ndGg/IjItZGlnaXQiOiJudW1lcmljIiwie3NlY29u'@; put 'ZH0iO2Nhc2UieiI6cmV0dXJuIE8udGltZVpvbmVOYW1lPVMubGVuZ3RoPDQ/InNob3J0IjoibG9uZyIsInt0aW1lWm9uZU5hbWV9In19KSxPLnBhdHRlcm49Ty5wYXR0ZXJuLnJlcGxhY2UoLycoW14nXSopJy9nLGZ1bmN0aW9uKFMsQyl7cmV0dXJuIEN8fCInIn0pLE8ucGF0dGVybi5pbmRl'@; put 'eE9mKCJ7YW1wbX0iKT4tMSYmKE8uaG91cjEyPSEwLE8ucGF0dGVybjEyPU8ucGF0dGVybixPLnBhdHRlcm49Ty5wYXR0ZXJuLnJlcGxhY2UoInthbXBtfSIsIiIpLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKSksT319fSw4MjY5MTooYyxsLHQpPT57'@; put 'dCgzOTExNSksdCgyMDc3NCksdCgzMDUyMiksdCg1ODI5NSksdCg4Nzg0MiksdCg1MDExMCksdCgyMDA3NSksdCgyNDMzNiksdCgxOTM3MSksdCg5ODgzNyksdCgyNjc3MyksdCgxNTc0NSksdCgzMzA1NyksdCgzNzUwKSx0KDIzMzY5KSx0KDk5NTY0KSx0KDMyZTMpLHQoNDg5NzcpLHQoNTIz'@; put 'MTApLHQoOTQ4OTkpLHQoMzE4NDIpLHQoNTY5OTcpLHQoMjU2NDUpfSw3Njc3OihjLGwsdCk9Pnt0KDgxODIyKSx0KDE5OTc3KSx0KDkxMDMxKSx0KDQ2MzMxKSx0KDQxNTYwKSxjLmV4cG9ydHM9RGF0ZX0sODg4MTM6KGMsbCx0KT0+e3QoMzk3MzApLHQoNjA1OSksdCg0ODM3NyksdCgyNTY0'@; put 'NSl9LDE3ODc4OihjLGwsdCk9Pnt0KDk2MjUzKSx0KDM5MTE1KSx0KDkxMTgxKSx0KDg4NDE2KSx0KDI1NjQ1KX0sMTYzNDM6KGMsbCx0KT0+e3QoNzY1MDMpLHQoNjY3ODYpLHQoNTA5MzIpLHQoNTc1MjYpLHQoMjE1OTEpLHQoOTA3MyksdCg4MDM0NyksdCgzMDU3OSksdCg0NjY5KSx0KDY3'@; put 'NzEwKSx0KDQ1Nzg5KSx0KDMzNTE0KSx0KDk5OTc4KSx0KDU4NDcyKSx0KDg2OTQ2KSx0KDM1MDY4KSx0KDQxMyksdCgyNTY0NSl9LDYyMzE0OihjLGwsdCk9Pnt0KDExMjQ2KSx0KDMwNzI2KSx0KDE5MDEpLHQoNzU5NzIpLHQoNTM0MDMpLHQoOTI1MTYpLHQoNDkzNzEpLHQoODY0NzkpLHQo'@; put 'OTE3MzYpLHQoNTE4ODkpLHQoNjUxNzcpLHQoODEyNDYpLHQoMjU2NDUpfSw3NzY1NzooYyxsLHQpPT57dCg5NTc2NyksdCg2ODEzMiksdCg0ODM4OCksdCgzNzQ3MCksdCg5NDg4MiksdCg0MTUyMCksdCgyNzQ3NiksdCg3OTYyMiksdCg4OTM3NSksdCg0MzUzMyksdCg4NDY3MiksdCg2NDE1'@; put 'NyksdCgzNTA5NSksdCg0OTg5MiksdCg3NTExNSksdCg5OTE3NiksdCg2ODgzOCksdCg5NjI1MyksdCgyNTY0NSl9LDUxNzcxOihjLGwsdCk9Pnt0KDY0Mjk5KSx0KDI1NjQ1KX0sNTMxMDooYyxsLHQpPT57dCg3MTA4NCksdCgyNTY0NSl9LDQzNDk5OihjLGwsdCk9Pnt0KDIxNTcyKSx0KDgy'@; put 'MTM5KSx0KDEwNjg1KSx0KDg1NTM1KSx0KDE3MzQ3KSx0KDgzMDQ5KSx0KDk2NjMzKSx0KDY4OTg5KSx0KDc4MjcwKSx0KDY0NTEwKSx0KDczOTg0KSx0KDc1NzY5KSx0KDUwMDU1KSx0KDk2MDE0KSx0KDI1NjQ1KX0sMjkxMzI6KGMsbCx0KT0+e3QoODM5NDYpLHQoMTgyNjkpLHQoNjYxMDgp'@; put 'LHQoNzY3NzQpLHQoMjE0NjYpLHQoNTkzNTcpLHQoNzYxNDIpLHQoNTE4NzYpLHQoMjU2NDUpfSw1MjI5ODooYyxsLHQpPT57dCg5NjI1MyksdCgzOTExNSksdCg5MTE4MSksdCg5ODE4NCksdCgyNTY0NSl9LDM3MDQyOihjLGwsdCk9Pnt0KDUwMTkxKSx0KDk4MzA2KSx0KDY0NTY0KSx0KDM5'@; put 'MTE1KSx0KDI5NTM5KSx0KDk2NjIwKSx0KDYyODUwKSx0KDEwODIzKSx0KDE3NzMyKSx0KDQwODU2KSx0KDgwNzAzKSx0KDkxNTM5KSx0KDUyOTIpLHQoNDUxNzcpLHQoNzM2OTQpLHQoMzc2NDgpLHQoMjc3OTUpLHQoNDUzMSksdCgyMzYwNSksdCg2NzgwKSx0KDY5OTM3KSx0KDEwNTExKSx0'@; put 'KDIxNDY2KSx0KDU5MzU3KSx0KDc2MTQyKSx0KDUxODc2KSx0KDI1NjQ1KX0sNDI0NDooYyxsLHQpPT57dCg5NTc2NyksdCg5NjI1MyksdCgyNTY0NSl9LDY3Nzk1OihjLGwsdCk9Pnt0KDUzMzY0KSx0KDUxNDMyKSx0KDI2NTYyKSx0KDg0NDE2KSx0KDk4NjgxKSx0KDMyMjEzKSx0KDYzNDcx'@; put 'KSx0KDQzMjkpLHQoMjUxNTkpLHQoMjU2NDUpfSwyNDk2MzpjPT57Yy5leHBvcnRzPWZ1bmN0aW9uKGwpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBsKXRocm93IFR5cGVFcnJvcihsKyIgaXMgbm90IGEgZnVuY3Rpb24hIik7cmV0dXJuIGx9fSw4MzM2NTooYyxsLHQpPT57dmFyIG49dCg5MjAz'@; put 'Mik7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyl7aWYoIm51bWJlciIhPXR5cGVvZiBlJiYiTnVtYmVyIiE9bihlKSl0aHJvdyBUeXBlRXJyb3Iocyk7cmV0dXJuK2V9fSwxNzcyMjooYyxsLHQpPT57dmFyIG49dCg4NjMxNCkoInVuc2NvcGFibGVzIiksZT1BcnJheS5wcm90b3R5cGU7bnVsbD09'@; put 'ZVtuXSYmdCg4NzcyOCkoZSxuLHt9KSxjLmV4cG9ydHM9ZnVuY3Rpb24ocyl7ZVtuXVtzXT0hMH19LDc2NzkzOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCgyNDQ5NikoITApO2MuZXhwb3J0cz1mdW5jdGlvbihlLHMsbyl7cmV0dXJuIHMrKG8/bihlLHMpLmxlbmd0aDoxKX19LDgz'@; put 'MzI4OmM9PntjLmV4cG9ydHM9ZnVuY3Rpb24obCx0LG4sZSl7aWYoIShsIGluc3RhbmNlb2YgdCl8fHZvaWQgMCE9PWUmJmUgaW4gbCl0aHJvdyBUeXBlRXJyb3IobisiOiBpbmNvcnJlY3QgaW52b2NhdGlvbiEiKTtyZXR1cm4gbH19LDI3MDA3OihjLGwsdCk9Pnt2YXIgbj10KDU1Mjg2KTtj'@; put 'LmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIW4oZSkpdGhyb3cgVHlwZUVycm9yKGUrIiBpcyBub3QgYW4gb2JqZWN0ISIpO3JldHVybiBlfX0sNTIxNjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMjA1MDgpLGU9dCg5MjMzNykscz10KDEwODc1KTtjLmV4cG9ydHM9W10uY29weVdp'@; put 'dGhpbnx8ZnVuY3Rpb24odSxmKXt2YXIgaT1uKHRoaXMpLHA9cyhpLmxlbmd0aCkseT1lKHUscCksdj1lKGYscCksZz1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCx4PU1hdGgubWluKCh2b2lkIDA9PT1nP3A6ZShnLHApKS12LHAteSksRT0xO2Zvcih2PHkmJnk8dit4'@; put 'JiYoRT0tMSx2Kz14LTEseSs9eC0xKTt4LS0gPjA7KXYgaW4gaT9pW3ldPWlbdl06ZGVsZXRlIGlbeV0seSs9RSx2Kz1FO3JldHVybiBpfX0sNDY4NTI6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDIwNTA4KSxlPXQoOTIzMzcpLHM9dCgxMDg3NSk7Yy5leHBvcnRzPWZ1bmN0aW9u'@; put 'KHUpe2Zvcih2YXIgZj1uKHRoaXMpLGk9cyhmLmxlbmd0aCkscD1hcmd1bWVudHMubGVuZ3RoLHk9ZShwPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxpKSx2PXA+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGc9dm9pZCAwPT09dj9pOmUodixpKTtnPnk7KWZbeSsrXT11O3JldHVybiBmfX0sOTQ5MDoo'@; put 'YyxsLHQpPT57dmFyIG49dCgzNTMxKTtjLmV4cG9ydHM9ZnVuY3Rpb24oZSxzKXt2YXIgbz1bXTtyZXR1cm4gbihlLCExLG8ucHVzaCxvLHMpLG99fSw3OTMxNTooYyxsLHQpPT57dmFyIG49dCgyMjExMCksZT10KDEwODc1KSxzPXQoOTIzMzcpO2MuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1'@; put 'cm4gZnVuY3Rpb24odSxmLGkpe3ZhciBnLHA9bih1KSx5PWUocC5sZW5ndGgpLHY9cyhpLHkpO2lmKG8mJmYhPWYpe2Zvcig7eT52OylpZigoZz1wW3YrK10pIT1nKXJldHVybiEwfWVsc2UgZm9yKDt5PnY7disrKWlmKChvfHx2IGluIHApJiZwW3ZdPT09ZilyZXR1cm4gb3x8dnx8MDtyZXR1'@; put 'cm4hbyYmLTF9fX0sMTAwNTA6KGMsbCx0KT0+e3ZhciBuPXQoNzQxKSxlPXQoNDk3OTcpLHM9dCgyMDUwOCksbz10KDEwODc1KSx1PXQoMTY4ODYpO2MuZXhwb3J0cz1mdW5jdGlvbihmLGkpe3ZhciBwPTE9PWYseT0yPT1mLHY9Mz09ZixnPTQ9PWYseD02PT1mLEU9NT09Znx8eCxqPWl8fHU7'@; put 'cmV0dXJuIGZ1bmN0aW9uKHcsUixGKXtmb3IodmFyIFUsWixCPXModyksYj1lKEIpLE89bihSLEYsMyksUz1vKGIubGVuZ3RoKSxDPTAsSz1wP2oodyxTKTp5P2oodywwKTp2b2lkIDA7Uz5DO0MrKylpZigoRXx8QyBpbiBiKSYmKFo9TyhVPWJbQ10sQyxCKSxmKSlpZihwKUtbQ109WjtlbHNl'@; put 'IGlmKFopc3dpdGNoKGYpe2Nhc2UgMzpyZXR1cm4hMDtjYXNlIDU6cmV0dXJuIFU7Y2FzZSA2OnJldHVybiBDO2Nhc2UgMjpLLnB1c2goVSl9ZWxzZSBpZihnKXJldHVybiExO3JldHVybiB4Py0xOnZ8fGc/ZzpLfX19LDM3NjI4OihjLGwsdCk9Pnt2YXIgbj10KDI0OTYzKSxlPXQoMjA1MDgp'@; put 'LHM9dCg0OTc5Nyksbz10KDEwODc1KTtjLmV4cG9ydHM9ZnVuY3Rpb24odSxmLGkscCx5KXtuKGYpO3ZhciB2PWUodSksZz1zKHYpLHg9byh2Lmxlbmd0aCksRT15P3gtMTowLGo9eT8tMToxO2lmKGk8Milmb3IoOzspe2lmKEUgaW4gZyl7cD1nW0VdLEUrPWo7YnJlYWt9aWYoRSs9aix5P0U8'@; put 'MDp4PD1FKXRocm93IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpfWZvcig7eT9FPj0wOng+RTtFKz1qKUUgaW4gZyYmKHA9ZihwLGdbRV0sRSx2KSk7cmV0dXJuIHB9fSw0MjczNjooYyxsLHQpPT57dmFyIG49dCg1NTI4NiksZT10KDQz'@; put 'MDIpLHM9dCg4NjMxNCkoInNwZWNpZXMiKTtjLmV4cG9ydHM9ZnVuY3Rpb24obyl7dmFyIHU7cmV0dXJuIGUobykmJigiZnVuY3Rpb24iPT10eXBlb2YodT1vLmNvbnN0cnVjdG9yKSYmKHU9PT1BcnJheXx8ZSh1LnByb3RvdHlwZSkpJiYodT12b2lkIDApLG4odSkmJm51bGw9PT0odT11W3Nd'@; put 'KSYmKHU9dm9pZCAwKSksdm9pZCAwPT09dT9BcnJheTp1fX0sMTY4ODY6KGMsbCx0KT0+e3ZhciBuPXQoNDI3MzYpO2MuZXhwb3J0cz1mdW5jdGlvbihlLHMpe3JldHVybiBuZXcobihlKSkocyl9fSwzNDM5ODooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMjQ5NjMpLGU9dCg1NTI4'@; put 'Nikscz10KDk3MjQyKSxvPVtdLnNsaWNlLHU9e307Yy5leHBvcnRzPUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9uKHApe3ZhciB5PW4odGhpcyksdj1vLmNhbGwoYXJndW1lbnRzLDEpLGc9ZnVuY3Rpb24oKXt2YXIgeD12LmNvbmNhdChvLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5z'@; put 'dGFuY2VvZiBnP2Z1bmN0aW9uKGkscCx5KXtpZighKHAgaW4gdSkpe2Zvcih2YXIgdj1bXSxnPTA7ZzxwO2crKyl2W2ddPSJhWyIrZysiXSI7dVtwXT1GdW5jdGlvbigiRixhIiwicmV0dXJuIG5ldyBGKCIrdi5qb2luKCIsIikrIikiKX1yZXR1cm4gdVtwXShpLHkpfSh5LHgubGVuZ3RoLHgp'@; put 'OnMoeSx4LHApfTtyZXR1cm4gZSh5LnByb3RvdHlwZSkmJihnLnByb3RvdHlwZT15LnByb3RvdHlwZSksZ319LDQxNDg4OihjLGwsdCk9Pnt2YXIgbj10KDkyMDMyKSxlPXQoODYzMTQpKCJ0b1N0cmluZ1RhZyIpLHM9IkFyZ3VtZW50cyI9PW4oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRz'@; put 'fSgpKTtjLmV4cG9ydHM9ZnVuY3Rpb24odSl7dmFyIGYsaSxwO3JldHVybiB2b2lkIDA9PT11PyJVbmRlZmluZWQiOm51bGw9PT11PyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKGk9ZnVuY3Rpb24odSxmKXt0cnl7cmV0dXJuIHVbZl19Y2F0Y2h7fX0oZj1PYmplY3QodSksZSkpP2k6cz9uKGYp'@; put 'OiJPYmplY3QiPT0ocD1uKGYpKSYmImZ1bmN0aW9uIj09dHlwZW9mIGYuY2FsbGVlPyJBcmd1bWVudHMiOnB9fSw5MjAzMjpjPT57dmFyIGw9e30udG9TdHJpbmc7Yy5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCkuc2xpY2UoOCwtMSl9fSw5ODI0OihjLGwsdCk9PnsidXNl'@; put 'IHN0cmljdCI7dmFyIG49dCg5OTI3NSkuZixlPXQoNDI1MDMpLHM9dCgyNDQwOCksbz10KDc0MSksdT10KDgzMzI4KSxmPXQoMzUzMSksaT10KDQyOTIzKSxwPXQoMTU0MzYpLHk9dCgyOTc0KSx2PXQoNjcwNTcpLGc9dCg4NDcyOCkuZmFzdEtleSx4PXQoMTYxNiksRT12PyJfcyI6InNpemUi'@; put 'LGo9ZnVuY3Rpb24odyxSKXt2YXIgQixGPWcoUik7aWYoIkYiIT09RilyZXR1cm4gdy5faVtGXTtmb3IoQj13Ll9mO0I7Qj1CLm4paWYoQi5rPT1SKXJldHVybiBCfTtjLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHcsUixGLEIpe3ZhciBiPXcoZnVuY3Rpb24oTyxTKXt1KE8s'@; put 'YixSLCJfaSIpLE8uX3Q9UixPLl9pPWUobnVsbCksTy5fZj12b2lkIDAsTy5fbD12b2lkIDAsT1tFXT0wLG51bGwhPVMmJmYoUyxGLE9bQl0sTyl9KTtyZXR1cm4gcyhiLnByb3RvdHlwZSx7Y2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIFM9eCh0aGlzLFIpLEM9Uy5faSxLPVMuX2Y7SztLPUsu'@; put 'bilLLnI9ITAsSy5wJiYoSy5wPUsucC5uPXZvaWQgMCksZGVsZXRlIENbSy5pXTtTLl9mPVMuX2w9dm9pZCAwLFNbRV09MH0sZGVsZXRlOmZ1bmN0aW9uKE8pe3ZhciBTPXgodGhpcyxSKSxDPWooUyxPKTtpZihDKXt2YXIgSz1DLm4sVT1DLnA7ZGVsZXRlIFMuX2lbQy5pXSxDLnI9ITAsVSYm'@; put 'KFUubj1LKSxLJiYoSy5wPVUpLFMuX2Y9PUMmJihTLl9mPUspLFMuX2w9PUMmJihTLl9sPVUpLFNbRV0tLX1yZXR1cm4hIUN9LGZvckVhY2g6ZnVuY3Rpb24oUyl7eCh0aGlzLFIpO2Zvcih2YXIgSyxDPW8oUyxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtLPUs/'@; put 'Sy5uOnRoaXMuX2Y7KWZvcihDKEsudixLLmssdGhpcyk7SyYmSy5yOylLPUsucH0saGFzOmZ1bmN0aW9uKFMpe3JldHVybiEhaih4KHRoaXMsUiksUyl9fSksdiYmbihiLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB4KHRoaXMsUilbRV19fSksYn0sZGVmOmZ1bmN0'@; put 'aW9uKHcsUixGKXt2YXIgYixPLEI9aih3LFIpO3JldHVybiBCP0Iudj1GOih3Ll9sPUI9e2k6Tz1nKFIsITApLGs6Uix2OkYscDpiPXcuX2wsbjp2b2lkIDAscjohMX0sdy5fZnx8KHcuX2Y9QiksYiYmKGIubj1CKSx3W0VdKyssIkYiIT09TyYmKHcuX2lbT109QikpLHd9LGdldEVudHJ5Omos'@; put 'c2V0U3Ryb25nOmZ1bmN0aW9uKHcsUixGKXtpKHcsUixmdW5jdGlvbihCLGIpe3RoaXMuX3Q9eChCLFIpLHRoaXMuX2s9Yix0aGlzLl9sPXZvaWQgMH0sZnVuY3Rpb24oKXtmb3IodmFyIEI9dGhpcyxiPUIuX2ssTz1CLl9sO08mJk8ucjspTz1PLnA7cmV0dXJuIEIuX3QmJihCLl9sPU89Tz9P'@; put 'Lm46Qi5fdC5fZik/cCgwLCJrZXlzIj09Yj9PLms6InZhbHVlcyI9PWI/Ty52OltPLmssTy52XSk6KEIuX3Q9dm9pZCAwLHAoMSkpfSxGPyJlbnRyaWVzIjoidmFsdWVzIiwhRiwhMCkseShSKX19fSwyMzY1NzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMjQ0MDgpLGU9dCg4NDcy'@; put 'OCkuZ2V0V2VhayxzPXQoMjcwMDcpLG89dCg1NTI4NiksdT10KDgzMzI4KSxmPXQoMzUzMSksaT10KDEwMDUwKSxwPXQoNzkxODEpLHk9dCgxNjE2KSx2PWkoNSksZz1pKDYpLHg9MCxFPWZ1bmN0aW9uKFIpe3JldHVybiBSLl9sfHwoUi5fbD1uZXcgail9LGo9ZnVuY3Rpb24oKXt0aGlzLmE9'@; put 'W119LHc9ZnVuY3Rpb24oUixGKXtyZXR1cm4gdihSLmEsZnVuY3Rpb24oQil7cmV0dXJuIEJbMF09PT1GfSl9O2oucHJvdG90eXBlPXtnZXQ6ZnVuY3Rpb24oUil7dmFyIEY9dyh0aGlzLFIpO2lmKEYpcmV0dXJuIEZbMV19LGhhczpmdW5jdGlvbihSKXtyZXR1cm4hIXcodGhpcyxSKX0sc2V0'@; put 'OmZ1bmN0aW9uKFIsRil7dmFyIEI9dyh0aGlzLFIpO0I/QlsxXT1GOnRoaXMuYS5wdXNoKFtSLEZdKX0sZGVsZXRlOmZ1bmN0aW9uKFIpe3ZhciBGPWcodGhpcy5hLGZ1bmN0aW9uKEIpe3JldHVybiBCWzBdPT09Un0pO3JldHVybn5GJiZ0aGlzLmEuc3BsaWNlKEYsMSksISF+Rn19LGMuZXhw'@; put 'b3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oUixGLEIsYil7dmFyIE89UihmdW5jdGlvbihTLEMpe3UoUyxPLEYsIl9pIiksUy5fdD1GLFMuX2k9eCsrLFMuX2w9dm9pZCAwLG51bGwhPUMmJmYoQyxCLFNbYl0sUyl9KTtyZXR1cm4gbihPLnByb3RvdHlwZSx7ZGVsZXRlOmZ1bmN0aW9u'@; put 'KFMpe2lmKCFvKFMpKXJldHVybiExO3ZhciBDPWUoUyk7cmV0dXJuITA9PT1DP0UoeSh0aGlzLEYpKS5kZWxldGUoUyk6QyYmcChDLHRoaXMuX2kpJiZkZWxldGUgQ1t0aGlzLl9pXX0saGFzOmZ1bmN0aW9uKEMpe2lmKCFvKEMpKXJldHVybiExO3ZhciBLPWUoQyk7cmV0dXJuITA9PT1LP0Uo'@; put 'eSh0aGlzLEYpKS5oYXMoQyk6SyYmcChLLHRoaXMuX2kpfX0pLE99LGRlZjpmdW5jdGlvbihSLEYsQil7dmFyIGI9ZShzKEYpLCEwKTtyZXR1cm4hMD09PWI/RShSKS5zZXQoRixCKTpiW1IuX2ldPUIsUn0sdWZzdG9yZTpFfX0sNDU3OTU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10'@; put 'KDM4MTYpLGU9dCg0Mjk4NSkscz10KDc3MjM0KSxvPXQoMjQ0MDgpLHU9dCg4NDcyOCksZj10KDM1MzEpLGk9dCg4MzMyOCkscD10KDU1Mjg2KSx5PXQoNzQyNTMpLHY9dCg3NDYyKSxnPXQoMjI5NDMpLHg9dCg0MDI2Nik7Yy5leHBvcnRzPWZ1bmN0aW9uKEUsaix3LFIsRixCKXt2YXIgYj1u'@; put 'W0VdLE89YixTPUY/InNldCI6ImFkZCIsQz1PJiZPLnByb3RvdHlwZSxLPXt9LFU9ZnVuY3Rpb24oWCl7dmFyIFY9Q1tYXTtzKEMsWCwiZGVsZXRlIj09WD9mdW5jdGlvbihRKXtyZXR1cm4hKEImJiFwKFEpKSYmVi5jYWxsKHRoaXMsMD09PVE/MDpRKX06ImhhcyI9PVg/ZnVuY3Rpb24oWSl7'@; put 'cmV0dXJuIShCJiYhcChZKSkmJlYuY2FsbCh0aGlzLDA9PT1ZPzA6WSl9OiJnZXQiPT1YP2Z1bmN0aW9uKFkpe3JldHVybiBCJiYhcChZKT92b2lkIDA6Vi5jYWxsKHRoaXMsMD09PVk/MDpZKX06ImFkZCI9PVg/ZnVuY3Rpb24oWSl7cmV0dXJuIFYuY2FsbCh0aGlzLDA9PT1ZPzA6WSksdGhp'@; put 'c306ZnVuY3Rpb24oWSxmdCl7cmV0dXJuIFYuY2FsbCh0aGlzLDA9PT1ZPzA6WSxmdCksdGhpc30pfTtpZigiZnVuY3Rpb24iPT10eXBlb2YgTyYmKEJ8fEMuZm9yRWFjaCYmIXkoZnVuY3Rpb24oKXsobmV3IE8pLmVudHJpZXMoKS5uZXh0KCl9KSkpe3ZhciBaPW5ldyBPLHR0PVpbU10oQj97'@; put 'fTotMCwxKSE9WixfPXkoZnVuY3Rpb24oKXtaLmhhcygxKX0pLG50PXYoZnVuY3Rpb24oWCl7bmV3IE8oWCl9KSxzdD0hQiYmeShmdW5jdGlvbigpe2Zvcih2YXIgWD1uZXcgTyxWPTU7Vi0tOylYW1NdKFYsVik7cmV0dXJuIVguaGFzKC0wKX0pO250fHwoKE89aihmdW5jdGlvbihYLFYpe2ko'@; put 'WCxPLEUpO3ZhciBRPXgobmV3IGIsWCxPKTtyZXR1cm4gbnVsbCE9ViYmZihWLEYsUVtTXSxRKSxRfSkpLnByb3RvdHlwZT1DLEMuY29uc3RydWN0b3I9TyksKF98fHN0KSYmKFUoImRlbGV0ZSIpLFUoImhhcyIpLEYmJlUoImdldCIpKSwoc3R8fHR0KSYmVShTKSxCJiZDLmNsZWFyJiZkZWxl'@; put 'dGUgQy5jbGVhcn1lbHNlIE89Ui5nZXRDb25zdHJ1Y3RvcihqLEUsRixTKSxvKE8ucHJvdG90eXBlLHcpLHUuTkVFRD0hMDtyZXR1cm4gZyhPLEUpLEtbRV09TyxlKGUuRytlLlcrZS5GKihPIT1iKSxLKSxCfHxSLnNldFN0cm9uZyhPLEUsRiksT319LDI1NjQ1OmM9Pnt2YXIgbD1jLmV4cG9y'@; put 'dHM9e3ZlcnNpb246IjIuNi4xMiJ9OyJudW1iZXIiPT10eXBlb2YgX19lJiYoX19lPWwpfSw5MjgxMTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoOTkyNzUpLGU9dCg5MDY4MSk7Yy5leHBvcnRzPWZ1bmN0aW9uKHMsbyx1KXtvIGluIHM/bi5mKHMsbyxlKDAsdSkpOnNbb109dX19'@; put 'LDc0MTooYyxsLHQpPT57dmFyIG49dCgyNDk2Myk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyxvKXtpZihuKGUpLHZvaWQgMD09PXMpcmV0dXJuIGU7c3dpdGNoKG8pe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGUuY2FsbChzLHUpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKHUs'@; put 'Zil7cmV0dXJuIGUuY2FsbChzLHUsZil9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24odSxmLGkpe3JldHVybiBlLmNhbGwocyx1LGYsaSl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHMsYXJndW1lbnRzKX19fSw1MzUzNzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQo'@; put 'NzQyNTMpLGU9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxzPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLG89ZnVuY3Rpb24odSl7cmV0dXJuIHU+OT91OiIwIit1fTtjLmV4cG9ydHM9bihmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1zLmNhbGwobmV3IERh'@; put 'dGUoLTUwMDAwMDAwMDAwMDAxKSl9KXx8IW4oZnVuY3Rpb24oKXtzLmNhbGwobmV3IERhdGUoTmFOKSl9KT9mdW5jdGlvbigpe2lmKCFpc0Zpbml0ZShlLmNhbGwodGhpcykpKXRocm93IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO3ZhciBmPXRoaXMsaT1mLmdldFVUQ0Z1bGxZ'@; put 'ZWFyKCkscD1mLmdldFVUQ01pbGxpc2Vjb25kcygpLHk9aTwwPyItIjppPjk5OTk/IisiOiIiO3JldHVybiB5KygiMDAwMDAiK01hdGguYWJzKGkpKS5zbGljZSh5Py02Oi00KSsiLSIrbyhmLmdldFVUQ01vbnRoKCkrMSkrIi0iK28oZi5nZXRVVENEYXRlKCkpKyJUIitvKGYuZ2V0VVRDSG91'@; put 'cnMoKSkrIjoiK28oZi5nZXRVVENNaW51dGVzKCkpKyI6IitvKGYuZ2V0VVRDU2Vjb25kcygpKSsiLiIrKHA+OTk/cDoiMCIrbyhwKSkrIloifTpzfSw4NzA6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDI3MDA3KSxlPXQoMjE2ODkpLHM9Im51bWJlciI7Yy5leHBvcnRzPWZ1bmN0'@; put 'aW9uKG8pe2lmKCJzdHJpbmciIT09byYmbyE9PXMmJiJkZWZhdWx0IiE9PW8pdGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaGludCIpO3JldHVybiBlKG4odGhpcyksbyE9cyl9fSw5MTM1NTpjPT57Yy5leHBvcnRzPWZ1bmN0aW9uKGwpe2lmKG51bGw9PWwpdGhyb3cgVHlwZUVycm9yKCJD'@; put 'YW4ndCBjYWxsIG1ldGhvZCBvbiAgIitsKTtyZXR1cm4gbH19LDY3MDU3OihjLGwsdCk9PntjLmV4cG9ydHM9IXQoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KX0sNjI0NTc6KGMs'@; put 'bCx0KT0+e3ZhciBuPXQoNTUyODYpLGU9dCgzODE2KS5kb2N1bWVudCxzPW4oZSkmJm4oZS5jcmVhdGVFbGVtZW50KTtjLmV4cG9ydHM9ZnVuY3Rpb24obyl7cmV0dXJuIHM/ZS5jcmVhdGVFbGVtZW50KG8pOnt9fX0sNzQ0MzA6Yz0+e2MuZXhwb3J0cz0iY29uc3RydWN0b3IsaGFzT3duUHJv'@; put 'cGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xvY2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mIi5zcGxpdCgiLCIpfSw1NTQxOihjLGwsdCk9Pnt2YXIgbj10KDQ3MTg0KSxlPXQoNjQ1NDgpLHM9dCgxNDY4Mik7Yy5leHBvcnRzPWZ1bmN0aW9uKG8pe3ZhciB1'@; put 'PW4obyksZj1lLmY7aWYoZilmb3IodmFyIHYsaT1mKG8pLHA9cy5mLHk9MDtpLmxlbmd0aD55OylwLmNhbGwobyx2PWlbeSsrXSkmJnUucHVzaCh2KTtyZXR1cm4gdX19LDQyOTg1OihjLGwsdCk9Pnt2YXIgbj10KDM4MTYpLGU9dCgyNTY0NSkscz10KDg3NzI4KSxvPXQoNzcyMzQpLHU9dCg3'@; put 'NDEpLGY9InByb3RvdHlwZSIsaT1mdW5jdGlvbihwLHksdil7dmFyIGIsTyxTLEMsZz1wJmkuRix4PXAmaS5HLGo9cCZpLlAsdz1wJmkuQixSPXg/bjpwJmkuUz9uW3ldfHwoblt5XT17fSk6KG5beV18fHt9KVtmXSxGPXg/ZTplW3ldfHwoZVt5XT17fSksQj1GW2ZdfHwoRltmXT17fSk7Zm9y'@; put 'KGIgaW4geCYmKHY9eSksdilTPSgoTz0hZyYmUiYmdm9pZCAwIT09UltiXSk/Ujp2KVtiXSxDPXcmJk8/dShTLG4pOmomJiJmdW5jdGlvbiI9PXR5cGVvZiBTP3UoRnVuY3Rpb24uY2FsbCxTKTpTLFImJm8oUixiLFMscCZpLlUpLEZbYl0hPVMmJnMoRixiLEMpLGomJkJbYl0hPVMmJihCW2Jd'@; put 'PVMpfTtuLmNvcmU9ZSxpLkY9MSxpLkc9MixpLlM9NCxpLlA9OCxpLkI9MTYsaS5XPTMyLGkuVT02NCxpLlI9MTI4LGMuZXhwb3J0cz1pfSw4ODUyOihjLGwsdCk9Pnt2YXIgbj10KDg2MzE0KSgibWF0Y2giKTtjLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHM9Ly4vO3RyeXsiLy4vIltlXShz'@; put 'KX1jYXRjaHt0cnl7cmV0dXJuIHNbbl09ITEsISIvLi8iW2VdKHMpfWNhdGNoe319cmV0dXJuITB9fSw3NDI1MzpjPT57Yy5leHBvcnRzPWZ1bmN0aW9uKGwpe3RyeXtyZXR1cm4hIWwoKX1jYXRjaHtyZXR1cm4hMH19fSwyODA4MjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3QoMTgyNjkpO3Zh'@; put 'ciBuPXQoNzcyMzQpLGU9dCg4NzcyOCkscz10KDc0MjUzKSxvPXQoOTEzNTUpLHU9dCg4NjMxNCksZj10KDIxMTY1KSxpPXUoInNwZWNpZXMiKSxwPSFzKGZ1bmN0aW9uKCl7dmFyIHY9Ly4vO3JldHVybiB2LmV4ZWM9ZnVuY3Rpb24oKXt2YXIgZz1bXTtyZXR1cm4gZy5ncm91cHM9e2E6Ijci'@; put 'fSxnfSwiNyIhPT0iIi5yZXBsYWNlKHYsIiQ8YT4iKX0pLHk9ZnVuY3Rpb24oKXt2YXIgdj0vKD86KS8sZz12LmV4ZWM7di5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgeD0iYWIiLnNwbGl0KHYpO3JldHVybiAyPT09eC5sZW5ndGgmJiJhIj09'@; put 'PXhbMF0mJiJiIj09PXhbMV19KCk7Yy5leHBvcnRzPWZ1bmN0aW9uKHYsZyx4KXt2YXIgRT11KHYpLGo9IXMoZnVuY3Rpb24oKXt2YXIgTz17fTtyZXR1cm4gT1tFXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIlt2XShPKX0pLHc9aj8hcyhmdW5jdGlvbigpe3ZhciBPPSExLFM9L2EvO3Jl'@; put 'dHVybiBTLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gTz0hMCxudWxsfSwic3BsaXQiPT09diYmKFMuY29uc3RydWN0b3I9e30sUy5jb25zdHJ1Y3RvcltpXT1mdW5jdGlvbigpe3JldHVybiBTfSksU1tFXSgiIiksIU99KTp2b2lkIDA7aWYoIWp8fCF3fHwicmVwbGFjZSI9PT12JiYhcHx8InNw'@; put 'bGl0Ij09PXYmJiF5KXt2YXIgUj0vLi9bRV0sRj14KG8sRSwiIlt2XSxmdW5jdGlvbihTLEMsSyxVLFope3JldHVybiBDLmV4ZWM9PT1mP2omJiFaP3tkb25lOiEwLHZhbHVlOlIuY2FsbChDLEssVSl9Ontkb25lOiEwLHZhbHVlOlMuY2FsbChLLEMsVSl9Ontkb25lOiExfX0pLGI9RlsxXTtu'@; put 'KFN0cmluZy5wcm90b3R5cGUsdixGWzBdKSxlKFJlZ0V4cC5wcm90b3R5cGUsRSwyPT1nP2Z1bmN0aW9uKE8sUyl7cmV0dXJuIGIuY2FsbChPLHRoaXMsUyl9OmZ1bmN0aW9uKE8pe3JldHVybiBiLmNhbGwoTyx0aGlzKX0pfX19LDUzMjE4OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49'@; put 'dCgyNzAwNyk7Yy5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIGU9bih0aGlzKSxzPSIiO3JldHVybiBlLmdsb2JhbCYmKHMrPSJnIiksZS5pZ25vcmVDYXNlJiYocys9ImkiKSxlLm11bHRpbGluZSYmKHMrPSJtIiksZS51bmljb2RlJiYocys9InUiKSxlLnN0aWNreSYmKHMrPSJ5Iiksc319LDM1'@; put 'MzE6KGMsbCx0KT0+e3ZhciBuPXQoNzQxKSxlPXQoMjg4NTEpLHM9dCg4NjU1NSksbz10KDI3MDA3KSx1PXQoMTA4NzUpLGY9dCg2OTAwMiksaT17fSxwPXt9LHk9Yy5leHBvcnRzPWZ1bmN0aW9uKHYsZyx4LEUsail7dmFyIEIsYixPLFMsdz1qP2Z1bmN0aW9uKCl7cmV0dXJuIHZ9OmYodiks'@; put 'Uj1uKHgsRSxnPzI6MSksRj0wO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3KXRocm93IFR5cGVFcnJvcih2KyIgaXMgbm90IGl0ZXJhYmxlISIpO2lmKHModykpe2ZvcihCPXUodi5sZW5ndGgpO0I+RjtGKyspaWYoKFM9Zz9SKG8oYj12W0ZdKVswXSxiWzFdKTpSKHZbRl0pKT09PWl8fFM9PT1w'@; put 'KXJldHVybiBTfWVsc2UgZm9yKE89dy5jYWxsKHYpOyEoYj1PLm5leHQoKSkuZG9uZTspaWYoKFM9ZShPLFIsYi52YWx1ZSxnKSk9PT1pfHxTPT09cClyZXR1cm4gU307eS5CUkVBSz1pLHkuUkVUVVJOPXB9LDQwMDE4OihjLGwsdCk9PntjLmV4cG9ydHM9dCgzODI1KSgibmF0aXZlLWZ1bmN0'@; put 'aW9uLXRvLXN0cmluZyIsRnVuY3Rpb24udG9TdHJpbmcpfSwzODE2OmM9Pnt2YXIgbD1jLmV4cG9ydHM9dHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5NYXRoPT1NYXRoP3dpbmRvdzp0eXBlb2Ygc2VsZjwidSImJnNlbGYuTWF0aD09TWF0aD9zZWxmOkZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIp'@; put 'KCk7Im51bWJlciI9PXR5cGVvZiBfX2cmJihfX2c9bCl9LDc5MTgxOmM9Pnt2YXIgbD17fS5oYXNPd25Qcm9wZXJ0eTtjLmV4cG9ydHM9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbC5jYWxsKHQsbil9fSw4NzcyODooYyxsLHQpPT57dmFyIG49dCg5OTI3NSksZT10KDkwNjgxKTtjLmV4cG9ydHM9'@; put 'dCg2NzA1Nyk/ZnVuY3Rpb24ocyxvLHUpe3JldHVybiBuLmYocyxvLGUoMSx1KSl9OmZ1bmN0aW9uKHMsbyx1KXtyZXR1cm4gc1tvXT11LHN9fSw0MDYzOTooYyxsLHQpPT57dmFyIG49dCgzODE2KS5kb2N1bWVudDtjLmV4cG9ydHM9biYmbi5kb2N1bWVudEVsZW1lbnR9LDE3MzQ6KGMsbCx0'@; put 'KT0+e2MuZXhwb3J0cz0hdCg2NzA1NykmJiF0KDc0MjUzKShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodCg2MjQ1NykoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pfSw0MDI2NjooYyxsLHQpPT57dmFyIG49dCg1NTI4NiksZT10'@; put 'KDI3Mzc1KS5zZXQ7Yy5leHBvcnRzPWZ1bmN0aW9uKHMsbyx1KXt2YXIgaSxmPW8uY29uc3RydWN0b3I7cmV0dXJuIGYhPT11JiYiZnVuY3Rpb24iPT10eXBlb2YgZiYmKGk9Zi5wcm90b3R5cGUpIT09dS5wcm90b3R5cGUmJm4oaSkmJmUmJmUocyxpKSxzfX0sOTcyNDI6Yz0+e2MuZXhwb3J0'@; put 'cz1mdW5jdGlvbihsLHQsbil7dmFyIGU9dm9pZCAwPT09bjtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gZT9sKCk6bC5jYWxsKG4pO2Nhc2UgMTpyZXR1cm4gZT9sKHRbMF0pOmwuY2FsbChuLHRbMF0pO2Nhc2UgMjpyZXR1cm4gZT9sKHRbMF0sdFsxXSk6bC5jYWxsKG4sdFswXSx0'@; put 'WzFdKTtjYXNlIDM6cmV0dXJuIGU/bCh0WzBdLHRbMV0sdFsyXSk6bC5jYWxsKG4sdFswXSx0WzFdLHRbMl0pO2Nhc2UgNDpyZXR1cm4gZT9sKHRbMF0sdFsxXSx0WzJdLHRbM10pOmwuY2FsbChuLHRbMF0sdFsxXSx0WzJdLHRbM10pfXJldHVybiBsLmFwcGx5KG4sdCl9fSw0OTc5NzooYyxs'@; put 'LHQpPT57dmFyIG49dCg5MjAzMik7Yy5leHBvcnRzPU9iamVjdCgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApP09iamVjdDpmdW5jdGlvbihlKXtyZXR1cm4iU3RyaW5nIj09bihlKT9lLnNwbGl0KCIiKTpPYmplY3QoZSl9fSw4NjU1NTooYyxsLHQpPT57dmFyIG49dCg4NzIzNCksZT10'@; put 'KDg2MzE0KSgiaXRlcmF0b3IiKSxzPUFycmF5LnByb3RvdHlwZTtjLmV4cG9ydHM9ZnVuY3Rpb24obyl7cmV0dXJuIHZvaWQgMCE9PW8mJihuLkFycmF5PT09b3x8c1tlXT09PW8pfX0sNDMwMjooYyxsLHQpPT57dmFyIG49dCg5MjAzMik7Yy5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0'@; put 'aW9uKHMpe3JldHVybiJBcnJheSI9PW4ocyl9fSwxODM2NzooYyxsLHQpPT57dmFyIG49dCg1NTI4NiksZT1NYXRoLmZsb29yO2MuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1cm4hbihvKSYmaXNGaW5pdGUobykmJmUobyk9PT1vfX0sNTUyODY6Yz0+e2MuZXhwb3J0cz1mdW5jdGlvbihsKXty'@; put 'ZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGw/bnVsbCE9PWw6ImZ1bmN0aW9uIj09dHlwZW9mIGx9fSw1NTM2NDooYyxsLHQpPT57dmFyIG49dCg1NTI4NiksZT10KDkyMDMyKSxzPXQoODYzMTQpKCJtYXRjaCIpO2MuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgdTtyZXR1cm4gbihvKSYmKHZvaWQg'@; put 'MCE9PSh1PW9bc10pPyEhdToiUmVnRXhwIj09ZShvKSl9fSwyODg1MTooYyxsLHQpPT57dmFyIG49dCgyNzAwNyk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyxvLHUpe3RyeXtyZXR1cm4gdT9zKG4obylbMF0sb1sxXSk6cyhvKX1jYXRjaChpKXt2YXIgZj1lLnJldHVybjt0aHJvdyB2b2lkIDAh'@; put 'PT1mJiZuKGYuY2FsbChlKSksaX19fSw0OTk4ODooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDI1MDMpLGU9dCg5MDY4MSkscz10KDIyOTQzKSxvPXt9O3QoODc3MjgpKG8sdCg4NjMxNCkoIml0ZXJhdG9yIiksZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGMuZXhwb3J0cz1mdW5j'@; put 'dGlvbih1LGYsaSl7dS5wcm90b3R5cGU9bihvLHtuZXh0OmUoMSxpKX0pLHModSxmKyIgSXRlcmF0b3IiKX19LDQyOTIzOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0NDYxKSxlPXQoNDI5ODUpLHM9dCg3NzIzNCksbz10KDg3NzI4KSx1PXQoODcyMzQpLGY9dCg0OTk4OCksaT10'@; put 'KDIyOTQzKSxwPXQoNDY4KSx5PXQoODYzMTQpKCJpdGVyYXRvciIpLHY9IShbXS5rZXlzJiYibmV4dCJpbltdLmtleXMoKSkseD0ia2V5cyIsRT0idmFsdWVzIixqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O2MuZXhwb3J0cz1mdW5jdGlvbih3LFIsRixCLGIsTyxTKXtmKEYsUixCKTt2YXIg'@; put 'VixRLFksQz1mdW5jdGlvbihmdCl7aWYoIXYmJmZ0IGluIHR0KXJldHVybiB0dFtmdF07c3dpdGNoKGZ0KXtjYXNlIHg6Y2FzZSBFOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgRih0aGlzLGZ0KX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBGKHRoaXMsZnQpfX0sSz1SKyIg'@; put 'SXRlcmF0b3IiLFU9Yj09RSxaPSExLHR0PXcucHJvdG90eXBlLF89dHRbeV18fHR0WyJAQGl0ZXJhdG9yIl18fGImJnR0W2JdLG50PV98fEMoYiksc3Q9Yj9VP0MoImVudHJpZXMiKTpudDp2b2lkIDAsWD0iQXJyYXkiPT1SJiZ0dC5lbnRyaWVzfHxfO2lmKFgmJihZPXAoWC5jYWxsKG5ldyB3'@; put 'KSkpIT09T2JqZWN0LnByb3RvdHlwZSYmWS5uZXh0JiYoaShZLEssITApLCFuJiYiZnVuY3Rpb24iIT10eXBlb2YgWVt5XSYmbyhZLHksaikpLFUmJl8mJl8ubmFtZSE9PUUmJihaPSEwLG50PWZ1bmN0aW9uKCl7cmV0dXJuIF8uY2FsbCh0aGlzKX0pLCghbnx8UykmJih2fHxafHwhdHRbeV0p'@; put 'JiZvKHR0LHksbnQpLHVbUl09bnQsdVtLXT1qLGIpaWYoVj17dmFsdWVzOlU/bnQ6QyhFKSxrZXlzOk8/bnQ6Qyh4KSxlbnRyaWVzOnN0fSxTKWZvcihRIGluIFYpUSBpbiB0dHx8cyh0dCxRLFZbUV0pO2Vsc2UgZShlLlArZS5GKih2fHxaKSxSLFYpO3JldHVybiBWfX0sNzQ2MjooYyxsLHQp'@; put 'PT57dmFyIG49dCg4NjMxNCkoIml0ZXJhdG9yIiksZT0hMTt0cnl7dmFyIHM9WzddW25dKCk7cy5yZXR1cm49ZnVuY3Rpb24oKXtlPSEwfSxBcnJheS5mcm9tKHMsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2h7fWMuZXhwb3J0cz1mdW5jdGlvbihvLHUpe2lmKCF1JiYhZSlyZXR1cm4hMTt2'@; put 'YXIgZj0hMTt0cnl7dmFyIGk9WzddLHA9aVtuXSgpO3AubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25lOmY9ITB9fSxpW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHB9LG8oaSl9Y2F0Y2h7fXJldHVybiBmfX0sMTU0MzY6Yz0+e2MuZXhwb3J0cz1mdW5jdGlvbihsLHQpe3JldHVybnt2YWx1ZTp0'@; put 'LGRvbmU6ISFsfX19LDg3MjM0OmM9PntjLmV4cG9ydHM9e319LDQ0NjE6Yz0+e2MuZXhwb3J0cz0hMX0sMTMwODY6Yz0+e3ZhciBsPU1hdGguZXhwbTE7Yy5leHBvcnRzPSFsfHxsKDEwKT4yMjAyNS40NjU3OTQ4MDY3MTh8fGwoMTApPDIyMDI1LjQ2NTc5NDgwNjcxOHx8LTJlLTE3IT1sKC0y'@; put 'ZS0xNyk/ZnVuY3Rpb24obil7cmV0dXJuIDA9PShuPStuKT9uOm4+LTFlLTYmJm48MWUtNj9uK24qbi8yOk1hdGguZXhwKG4pLTF9Omx9LDM0OTM0OihjLGwsdCk9Pnt2YXIgbj10KDYxODAxKSxlPU1hdGgucG93LHM9ZSgyLC01Miksbz1lKDIsLTIzKSx1PWUoMiwxMjcpKigyLW8pLGY9ZSgy'@; put 'LC0xMjYpO2MuZXhwb3J0cz1NYXRoLmZyb3VuZHx8ZnVuY3Rpb24oeSl7dmFyIHgsRSx2PU1hdGguYWJzKHkpLGc9bih5KTtyZXR1cm4gdjxmP2cqKHYvZi9vKzEvcy0xL3MpKmYqbzooRT0oeD0oMStvL3MpKnYpLSh4LXYpKT51fHxFIT1FP2cqKDEvMCk6ZypFfX0sNDYyMDY6Yz0+e2MuZXhw'@; put 'b3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbih0KXtyZXR1cm4odD0rdCk+LTFlLTgmJnQ8MWUtOD90LXQqdC8yOk1hdGgubG9nKDErdCl9fSw2MTgwMTpjPT57Yy5leHBvcnRzPU1hdGguc2lnbnx8ZnVuY3Rpb24odCl7cmV0dXJuIDA9PSh0PSt0KXx8dCE9dD90OnQ8MD8tMToxfX0sODQ3Mjg6'@; put 'KGMsbCx0KT0+e3ZhciBuPXQoOTM5NTMpKCJtZXRhIiksZT10KDU1Mjg2KSxzPXQoNzkxODEpLG89dCg5OTI3NSkuZix1PTAsZj1PYmplY3QuaXNFeHRlbnNpYmxlfHxmdW5jdGlvbigpe3JldHVybiEwfSxpPSF0KDc0MjUzKShmdW5jdGlvbigpe3JldHVybiBmKE9iamVjdC5wcmV2ZW50RXh0'@; put 'ZW5zaW9ucyh7fSkpfSkscD1mdW5jdGlvbihFKXtvKEUsbix7dmFsdWU6e2k6Ik8iKyArK3Usdzp7fX19KX0seD1jLmV4cG9ydHM9e0tFWTpuLE5FRUQ6ITEsZmFzdEtleTpmdW5jdGlvbihFLGope2lmKCFlKEUpKXJldHVybiJzeW1ib2wiPT10eXBlb2YgRT9FOigic3RyaW5nIj09dHlwZW9m'@; put 'IEU/IlMiOiJQIikrRTtpZighcyhFLG4pKXtpZighZihFKSlyZXR1cm4iRiI7aWYoIWopcmV0dXJuIkUiO3AoRSl9cmV0dXJuIEVbbl0uaX0sZ2V0V2VhazpmdW5jdGlvbihFLGope2lmKCFzKEUsbikpe2lmKCFmKEUpKXJldHVybiEwO2lmKCFqKXJldHVybiExO3AoRSl9cmV0dXJuIEVbbl0u'@; put 'd30sb25GcmVlemU6ZnVuY3Rpb24oRSl7cmV0dXJuIGkmJnguTkVFRCYmZihFKSYmIXMoRSxuKSYmcChFKSxFfX19LDUwMTMzOihjLGwsdCk9Pnt2YXIgbj10KDg4NDE2KSxlPXQoNDI5ODUpLHM9dCgzODI1KSgibWV0YWRhdGEiKSxvPXMuc3RvcmV8fChzLnN0b3JlPW5ldyh0KDMwMTQ3KSkp'@; put 'LHU9ZnVuY3Rpb24oeCxFLGope3ZhciB3PW8uZ2V0KHgpO2lmKCF3KXtpZighailyZXR1cm47by5zZXQoeCx3PW5ldyBuKX12YXIgUj13LmdldChFKTtpZighUil7aWYoIWopcmV0dXJuO3cuc2V0KEUsUj1uZXcgbil9cmV0dXJuIFJ9O2MuZXhwb3J0cz17c3RvcmU6byxtYXA6dSxoYXM6ZnVu'@; put 'Y3Rpb24oeCxFLGope3ZhciB3PXUoRSxqLCExKTtyZXR1cm4gdm9pZCAwIT09dyYmdy5oYXMoeCl9LGdldDpmdW5jdGlvbih4LEUsail7dmFyIHc9dShFLGosITEpO3JldHVybiB2b2lkIDA9PT13P3ZvaWQgMDp3LmdldCh4KX0sc2V0OmZ1bmN0aW9uKHgsRSxqLHcpe3Uoaix3LCEwKS5zZXQo'@; put 'eCxFKX0sa2V5czpmdW5jdGlvbih4LEUpe3ZhciBqPXUoeCxFLCExKSx3PVtdO3JldHVybiBqJiZqLmZvckVhY2goZnVuY3Rpb24oUixGKXt3LnB1c2goRil9KSx3fSxrZXk6ZnVuY3Rpb24oeCl7cmV0dXJuIHZvaWQgMD09PXh8fCJzeW1ib2wiPT10eXBlb2YgeD94OlN0cmluZyh4KX0sZXhw'@; put 'OmZ1bmN0aW9uKHgpe2UoZS5TLCJSZWZsZWN0Iix4KX19fSwzNTM0NTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNjcwNTcpLGU9dCg0NzE4NCkscz10KDY0NTQ4KSxvPXQoMTQ2ODIpLHU9dCgyMDUwOCksZj10KDQ5Nzk3KSxpPU9iamVjdC5hc3NpZ247Yy5leHBvcnRzPSFpfHx0'@; put 'KDc0MjUzKShmdW5jdGlvbigpe3ZhciBwPXt9LHk9e30sdj1TeW1ib2woKSxnPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHBbdl09NyxnLnNwbGl0KCIiKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3lbeF09eH0pLDchPWkoe30scClbdl18fE9iamVjdC5rZXlzKGkoe30seSkpLmpvaW4o'@; put 'IiIpIT1nfSk/ZnVuY3Rpb24oeSx2KXtmb3IodmFyIGc9dSh5KSx4PWFyZ3VtZW50cy5sZW5ndGgsRT0xLGo9cy5mLHc9by5mO3g+RTspZm9yKHZhciBPLFI9Zihhcmd1bWVudHNbRSsrXSksRj1qP2UoUikuY29uY2F0KGooUikpOmUoUiksQj1GLmxlbmd0aCxiPTA7Qj5iOylPPUZbYisrXSwo'@; put 'IW58fHcuY2FsbChSLE8pKSYmKGdbT109UltPXSk7cmV0dXJuIGd9Oml9LDQyNTAzOihjLGwsdCk9Pnt2YXIgbj10KDI3MDA3KSxlPXQoMzU1ODgpLHM9dCg3NDQzMCksbz10KDY5MzM1KSgiSUVfUFJPVE8iKSx1PWZ1bmN0aW9uKCl7fSxmPSJwcm90b3R5cGUiLGk9ZnVuY3Rpb24oKXt2YXIg'@; put 'eCxwPXQoNjI0NTcpKCJpZnJhbWUiKSx5PXMubGVuZ3RoO2ZvcihwLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHQoNDA2MzkpLmFwcGVuZENoaWxkKHApLHAuc3JjPSJqYXZhc2NyaXB0OiIsKHg9cC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCkseC53cml0ZSgiPHNjcmlwdD5kb2N1bWVu'@; put 'dC5GPU9iamVjdDxcL3NjcmlwdD4iKSx4LmNsb3NlKCksaT14LkY7eS0tOylkZWxldGUgaVtmXVtzW3ldXTtyZXR1cm4gaSgpfTtjLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oeSx2KXt2YXIgZztyZXR1cm4gbnVsbCE9PXk/KHVbZl09bih5KSxnPW5ldyB1LHVbZl09bnVsbCxn'@; put 'W29dPXkpOmc9aSgpLHZvaWQgMD09PXY/ZzplKGcsdil9fSw5OTI3NTooYyxsLHQpPT57dmFyIG49dCgyNzAwNyksZT10KDE3MzQpLHM9dCgyMTY4OSksbz1PYmplY3QuZGVmaW5lUHJvcGVydHk7bC5mPXQoNjcwNTcpP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihmLGkscCl7aWYo'@; put 'bihmKSxpPXMoaSwhMCksbihwKSxlKXRyeXtyZXR1cm4gbyhmLGkscCl9Y2F0Y2h7fWlmKCJnZXQiaW4gcHx8InNldCJpbiBwKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhIik7cmV0dXJuInZhbHVlImluIHAmJihmW2ldPXAudmFsdWUpLGZ9fSwzNTU4ODooYyxs'@; put 'LHQpPT57dmFyIG49dCg5OTI3NSksZT10KDI3MDA3KSxzPXQoNDcxODQpO2MuZXhwb3J0cz10KDY3MDU3KT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih1LGYpe2UodSk7Zm9yKHZhciB2LGk9cyhmKSxwPWkubGVuZ3RoLHk9MDtwPnk7KW4uZih1LHY9aVt5KytdLGZbdl0pO3Jl'@; put 'dHVybiB1fX0sMTg2OTM6KGMsbCx0KT0+e3ZhciBuPXQoMTQ2ODIpLGU9dCg5MDY4MSkscz10KDIyMTEwKSxvPXQoMjE2ODkpLHU9dCg3OTE4MSksZj10KDE3MzQpLGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtsLmY9dCg2NzA1Nyk/aTpmdW5jdGlvbih5LHYpe2lmKHk9cyh5'@; put 'KSx2PW8odiwhMCksZil0cnl7cmV0dXJuIGkoeSx2KX1jYXRjaHt9aWYodSh5LHYpKXJldHVybiBlKCFuLmYuY2FsbCh5LHYpLHlbdl0pfX0sMzkzMjc6KGMsbCx0KT0+e3ZhciBuPXQoMjIxMTApLGU9dCgyMDYxNikuZixzPXt9LnRvU3RyaW5nLG89Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cm'@; put 'JndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXTtjLmV4cG9ydHMuZj1mdW5jdGlvbihpKXtyZXR1cm4gbyYmIltvYmplY3QgV2luZG93XSI9PXMuY2FsbChpKT9mdW5jdGlvbihmKXt0cnl7cmV0dXJuIGUoZil9'@; put 'Y2F0Y2h7cmV0dXJuIG8uc2xpY2UoKX19KGkpOmUobihpKSl9fSwyMDYxNjooYyxsLHQpPT57dmFyIG49dCg2MDE4OSksZT10KDc0NDMwKS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO2wuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24obyl7cmV0dXJuIG4obyxl'@; put 'KX19LDY0NTQ4OihjLGwpPT57bC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDQ2ODooYyxsLHQpPT57dmFyIG49dCg3OTE4MSksZT10KDIwNTA4KSxzPXQoNjkzMzUpKCJJRV9QUk9UTyIpLG89T2JqZWN0LnByb3RvdHlwZTtjLmV4cG9ydHM9T2JqZWN0LmdldFByb3RvdHlwZU9m'@; put 'fHxmdW5jdGlvbih1KXtyZXR1cm4gdT1lKHUpLG4odSxzKT91W3NdOiJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbnN0cnVjdG9yJiZ1IGluc3RhbmNlb2YgdS5jb25zdHJ1Y3Rvcj91LmNvbnN0cnVjdG9yLnByb3RvdHlwZTp1IGluc3RhbmNlb2YgT2JqZWN0P286bnVsbH19LDYwMTg5OihjLGws'@; put 'dCk9Pnt2YXIgbj10KDc5MTgxKSxlPXQoMjIxMTApLHM9dCg3OTMxNSkoITEpLG89dCg2OTMzNSkoIklFX1BST1RPIik7Yy5leHBvcnRzPWZ1bmN0aW9uKHUsZil7dmFyIHYsaT1lKHUpLHA9MCx5PVtdO2Zvcih2IGluIGkpdiE9byYmbihpLHYpJiZ5LnB1c2godik7Zm9yKDtmLmxlbmd0aD5w'@; put 'OyluKGksdj1mW3ArK10pJiYofnMoeSx2KXx8eS5wdXNoKHYpKTtyZXR1cm4geX19LDQ3MTg0OihjLGwsdCk9Pnt2YXIgbj10KDYwMTg5KSxlPXQoNzQ0MzApO2MuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24obyl7cmV0dXJuIG4obyxlKX19LDE0NjgyOihjLGwpPT57bC5mPXt9LnBy'@; put 'b3BlcnR5SXNFbnVtZXJhYmxlfSwzMzE2MDooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDI1NjQ1KSxzPXQoNzQyNTMpO2MuZXhwb3J0cz1mdW5jdGlvbihvLHUpe3ZhciBmPShlLk9iamVjdHx8e30pW29dfHxPYmplY3Rbb10saT17fTtpW29dPXUoZiksbihuLlMrbi5GKnMoZnVuY3Rp'@; put 'b24oKXtmKDEpfSksIk9iamVjdCIsaSl9fSw1NzY0MzooYyxsLHQpPT57dmFyIG49dCgyMDYxNiksZT10KDY0NTQ4KSxzPXQoMjcwMDcpLG89dCgzODE2KS5SZWZsZWN0O2MuZXhwb3J0cz1vJiZvLm93bktleXN8fGZ1bmN0aW9uKGYpe3ZhciBpPW4uZihzKGYpKSxwPWUuZjtyZXR1cm4gcD9p'@; put 'LmNvbmNhdChwKGYpKTppfX0sNDc3NDM6KGMsbCx0KT0+e3ZhciBuPXQoMzgxNikucGFyc2VGbG9hdCxlPXQoMjk1OTkpLnRyaW07Yy5leHBvcnRzPTEvbih0KDg0NjQ0KSsiLTAiKSE9LTEvMD9mdW5jdGlvbihvKXt2YXIgdT1lKFN0cmluZyhvKSwzKSxmPW4odSk7cmV0dXJuIDA9PT1mJiYi'@; put 'LSI9PXUuY2hhckF0KDApPy0wOmZ9Om59LDU1OTYwOihjLGwsdCk9Pnt2YXIgbj10KDM4MTYpLnBhcnNlSW50LGU9dCgyOTU5OSkudHJpbSxzPXQoODQ2NDQpLG89L15bLStdPzBbeFhdLztjLmV4cG9ydHM9OCE9PW4ocysiMDgiKXx8MjIhPT1uKHMrIjB4MTYiKT9mdW5jdGlvbihmLGkpe3Zh'@; put 'ciBwPWUoU3RyaW5nKGYpLDMpO3JldHVybiBuKHAsaT4+PjB8fChvLnRlc3QocCk/MTY6MTApKX06bn0sOTA2ODE6Yz0+e2MuZXhwb3J0cz1mdW5jdGlvbihsLHQpe3JldHVybntlbnVtZXJhYmxlOiEoMSZsKSxjb25maWd1cmFibGU6ISgyJmwpLHdyaXRhYmxlOiEoNCZsKSx2YWx1ZTp0fX19'@; put 'LDI0NDA4OihjLGwsdCk9Pnt2YXIgbj10KDc3MjM0KTtjLmV4cG9ydHM9ZnVuY3Rpb24oZSxzLG8pe2Zvcih2YXIgdSBpbiBzKW4oZSx1LHNbdV0sbyk7cmV0dXJuIGV9fSw3NzIzNDooYyxsLHQpPT57dmFyIG49dCgzODE2KSxlPXQoODc3MjgpLHM9dCg3OTE4MSksbz10KDkzOTUzKSgic3Jj'@; put 'IiksdT10KDQwMDE4KSxmPSJ0b1N0cmluZyIsaT0oIiIrdSkuc3BsaXQoZik7dCgyNTY0NSkuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihwKXtyZXR1cm4gdS5jYWxsKHApfSwoYy5leHBvcnRzPWZ1bmN0aW9uKHAseSx2LGcpe3ZhciB4PSJmdW5jdGlvbiI9PXR5cGVvZiB2O3gmJihzKHYsIm5h'@; put 'bWUiKXx8ZSh2LCJuYW1lIix5KSkscFt5XSE9PXYmJih4JiYocyh2LG8pfHxlKHYsbyxwW3ldPyIiK3BbeV06aS5qb2luKFN0cmluZyh5KSkpKSxwPT09bj9wW3ldPXY6Zz9wW3ldP3BbeV09djplKHAseSx2KTooZGVsZXRlIHBbeV0sZShwLHksdikpKX0pKEZ1bmN0aW9uLnByb3RvdHlwZSxm'@; put 'LGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJnRoaXNbb118fHUuY2FsbCh0aGlzKX0pfSwyNzc4NzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDE0ODgpLGU9UmVnRXhwLnByb3RvdHlwZS5leGVjO2MuZXhwb3J0cz1mdW5jdGlvbihzLG8pe3ZhciB1'@; put 'PXMuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgdSl7dmFyIGY9dS5jYWxsKHMsbyk7aWYoIm9iamVjdCIhPXR5cGVvZiBmKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3Jl'@; put 'dHVybiBmfWlmKCJSZWdFeHAiIT09bihzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRpYmxlIHJlY2VpdmVyIik7cmV0dXJuIGUuY2FsbChzLG8pfX0sMjExNjU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgeSx2LG49dCg1MzIxOCksZT1S'@; put 'ZWdFeHAucHJvdG90eXBlLmV4ZWMscz1TdHJpbmcucHJvdG90eXBlLnJlcGxhY2Usbz1lLHU9Imxhc3RJbmRleCIsZj0odj0vYiovZyxlLmNhbGwoeT0vYS8sImEiKSxlLmNhbGwodiwiYSIpLDAhPT15W3VdfHwwIT09dlt1XSksaT12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KGZ8fGkp'@; put 'JiYobz1mdW5jdGlvbih2KXt2YXIgeCxFLGosdyxnPXRoaXM7cmV0dXJuIGkmJihFPW5ldyBSZWdFeHAoIl4iK2cuc291cmNlKyIkKD8hXFxzKSIsbi5jYWxsKGcpKSksZiYmKHg9Z1t1XSksaj1lLmNhbGwoZyx2KSxmJiZqJiYoZ1t1XT1nLmdsb2JhbD9qLmluZGV4K2pbMF0ubGVuZ3RoOngp'@; put 'LGkmJmomJmoubGVuZ3RoPjEmJnMuY2FsbChqWzBdLEUsZnVuY3Rpb24oKXtmb3Iodz0xO3c8YXJndW1lbnRzLmxlbmd0aC0yO3crKyl2b2lkIDA9PT1hcmd1bWVudHNbd10mJihqW3ddPXZvaWQgMCl9KSxqfSksYy5leHBvcnRzPW99LDI3MTk1OmM9PntjLmV4cG9ydHM9T2JqZWN0LmlzfHxm'@; put 'dW5jdGlvbih0LG4pe3JldHVybiB0PT09bj8wIT09dHx8MS90PT0xL246dCE9dCYmbiE9bn19LDI3Mzc1OihjLGwsdCk9Pnt2YXIgbj10KDU1Mjg2KSxlPXQoMjcwMDcpLHM9ZnVuY3Rpb24obyx1KXtpZihlKG8pLCFuKHUpJiZudWxsIT09dSl0aHJvdyBUeXBlRXJyb3IodSsiOiBjYW4ndCBz'@; put 'ZXQgYXMgcHJvdG90eXBlISIpfTtjLmV4cG9ydHM9e3NldDpPYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24obyx1LGYpe3RyeXsoZj10KDc0MSkoRnVuY3Rpb24uY2FsbCx0KDE4NjkzKS5mKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCwy'@; put 'KSkobyxbXSksdT0hKG8gaW5zdGFuY2VvZiBBcnJheSl9Y2F0Y2h7dT0hMH1yZXR1cm4gZnVuY3Rpb24ocCx5KXtyZXR1cm4gcyhwLHkpLHU/cC5fX3Byb3RvX189eTpmKHAseSkscH19KHt9LCExKTp2b2lkIDApLGNoZWNrOnN9fSwyOTc0OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49'@; put 'dCgzODE2KSxlPXQoOTkyNzUpLHM9dCg2NzA1Nyksbz10KDg2MzE0KSgic3BlY2llcyIpO2MuZXhwb3J0cz1mdW5jdGlvbih1KXt2YXIgZj1uW3VdO3MmJmYmJiFmW29dJiZlLmYoZixvLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSwyMjk0MzooYyxs'@; put 'LHQpPT57dmFyIG49dCg5OTI3NSkuZixlPXQoNzkxODEpLHM9dCg4NjMxNCkoInRvU3RyaW5nVGFnIik7Yy5leHBvcnRzPWZ1bmN0aW9uKG8sdSxmKXtvJiYhZShvPWY/bzpvLnByb3RvdHlwZSxzKSYmbihvLHMse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTp1fSl9fSw2OTMzNTooYyxsLHQpPT57'@; put 'dmFyIG49dCgzODI1KSgia2V5cyIpLGU9dCg5Mzk1Myk7Yy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBuW3NdfHwobltzXT1lKHMpKX19LDM4MjU6KGMsbCx0KT0+e3ZhciBuPXQoMjU2NDUpLGU9dCgzODE2KSxzPSJfX2NvcmUtanNfc2hhcmVkX18iLG89ZVtzXXx8KGVbc109e30pOyhj'@; put 'LmV4cG9ydHM9ZnVuY3Rpb24odSxmKXtyZXR1cm4gb1t1XXx8KG9bdV09dm9pZCAwIT09Zj9mOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246bi52ZXJzaW9uLG1vZGU6dCg0NDYxKT8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceGE5IDIwMjAgRGVuaXMgUHVzaGthcmV2'@; put 'ICh6bG9pcm9jay5ydSkifSl9LDU4MzY0OihjLGwsdCk9Pnt2YXIgbj10KDI3MDA3KSxlPXQoMjQ5NjMpLHM9dCg4NjMxNCkoInNwZWNpZXMiKTtjLmV4cG9ydHM9ZnVuY3Rpb24obyx1KXt2YXIgaSxmPW4obykuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PWZ8fG51bGw9PShpPW4oZilb'@; put 'c10pP3U6ZShpKX19LDc3NzE3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg3NDI1Myk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyl7cmV0dXJuISFlJiZuKGZ1bmN0aW9uKCl7cz9lLmNhbGwobnVsbCxmdW5jdGlvbigpe30sMSk6ZS5jYWxsKG51bGwpfSl9fSwyNDQ5NjooYyxsLHQp'@; put 'PT57dmFyIG49dCg4MTQ2NyksZT10KDkxMzU1KTtjLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8sdSl7dmFyIHksdixmPVN0cmluZyhlKG8pKSxpPW4odSkscD1mLmxlbmd0aDtyZXR1cm4gaTwwfHxpPj1wP3M/IiI6dm9pZCAwOih5PWYuY2hhckNvZGVBdChpKSk8NTUy'@; put 'OTZ8fHk+NTYzMTl8fGkrMT09PXB8fCh2PWYuY2hhckNvZGVBdChpKzEpKTw1NjMyMHx8dj41NzM0Mz9zP2YuY2hhckF0KGkpOnk6cz9mLnNsaWNlKGksaSsyKTp2LTU2MzIwKyh5LTU1Mjk2PDwxMCkrNjU1MzZ9fX0sNDIwOTQ6KGMsbCx0KT0+e3ZhciBuPXQoNTUzNjQpLGU9dCg5MTM1NSk7'@; put 'Yy5leHBvcnRzPWZ1bmN0aW9uKHMsbyx1KXtpZihuKG8pKXRocm93IFR5cGVFcnJvcigiU3RyaW5nIyIrdSsiIGRvZXNuJ3QgYWNjZXB0IHJlZ2V4ISIpO3JldHVybiBTdHJpbmcoZShzKSl9fSwyOTM5NTooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDc0MjUzKSxzPXQoOTEzNTUpLG89'@; put 'LyIvZyx1PWZ1bmN0aW9uKGYsaSxwLHkpe3ZhciB2PVN0cmluZyhzKGYpKSxnPSI8IitpO3JldHVybiIiIT09cCYmKGcrPSIgIitwKyc9IicrU3RyaW5nKHkpLnJlcGxhY2UobywiJnF1b3Q7IikrJyInKSxnKyI+Iit2KyI8LyIraSsiPiJ9O2MuZXhwb3J0cz1mdW5jdGlvbihmLGkpe3ZhciBw'@; put 'PXt9O3BbZl09aSh1KSxuKG4uUCtuLkYqZShmdW5jdGlvbigpe3ZhciB5PSIiW2ZdKCciJyk7cmV0dXJuIHkhPT15LnRvTG93ZXJDYXNlKCl8fHkuc3BsaXQoJyInKS5sZW5ndGg+M30pLCJTdHJpbmciLHApfX0sNjg1OTU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDgxNDY3KSxl'@; put 'PXQoOTEzNTUpO2MuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgdT1TdHJpbmcoZSh0aGlzKSksZj0iIixpPW4obyk7aWYoaTwwfHxpPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmUiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKHUrPXUpKTEmaSYmKGYrPXUpO3Jl'@; put 'dHVybiBmfX0sMjk1OTk6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9dCg5MTM1NSkscz10KDc0MjUzKSxvPXQoODQ2NDQpLHU9IlsiK28rIl0iLGk9UmVnRXhwKCJeIit1K3UrIioiKSxwPVJlZ0V4cCh1K3UrIiokIikseT1mdW5jdGlvbihnLHgsRSl7dmFyIGo9e30sdz1zKGZ1bmN0aW9u'@; put 'KCl7cmV0dXJuISFvW2ddKCl8fCJcdTIwMGJceDg1IiE9Ilx1MjAwYlx4ODUiW2ddKCl9KSxSPWpbZ109dz94KHYpOm9bZ107RSYmKGpbRV09UiksbihuLlArbi5GKncsIlN0cmluZyIsail9LHY9eS50cmltPWZ1bmN0aW9uKGcseCl7cmV0dXJuIGc9U3RyaW5nKGUoZykpLDEmeCYmKGc9Zy5y'@; put 'ZXBsYWNlKGksIiIpKSwyJngmJihnPWcucmVwbGFjZShwLCIiKSksZ307Yy5leHBvcnRzPXl9LDg0NjQ0OmM9PntjLmV4cG9ydHM9Ilx0XG5cdlxmXHIgXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1'@; put 'MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOVx1ZmVmZiJ9LDkyMzM3OihjLGwsdCk9Pnt2YXIgbj10KDgxNDY3KSxlPU1hdGgubWF4LHM9TWF0aC5taW47Yy5leHBvcnRzPWZ1bmN0aW9uKG8sdSl7cmV0dXJuKG89bihvKSk8MD9lKG8rdSwwKTpzKG8sdSl9fSw4MTQ2NzpjPT57'@; put 'dmFyIGw9TWF0aC5jZWlsLHQ9TWF0aC5mbG9vcjtjLmV4cG9ydHM9ZnVuY3Rpb24obil7cmV0dXJuIGlzTmFOKG49K24pPzA6KG4+MD90OmwpKG4pfX0sMjIxMTA6KGMsbCx0KT0+e3ZhciBuPXQoNDk3OTcpLGU9dCg5MTM1NSk7Yy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBuKGUocykp'@; put 'fX0sMTA4NzU6KGMsbCx0KT0+e3ZhciBuPXQoODE0NjcpLGU9TWF0aC5taW47Yy5leHBvcnRzPWZ1bmN0aW9uKHMpe3JldHVybiBzPjA/ZShuKHMpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSwyMDUwODooYyxsLHQpPT57dmFyIG49dCg5MTM1NSk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVy'@; put 'biBPYmplY3QobihlKSl9fSwyMTY4OTooYyxsLHQpPT57dmFyIG49dCg1NTI4Nik7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyl7aWYoIW4oZSkpcmV0dXJuIGU7dmFyIG8sdTtpZihzJiYiZnVuY3Rpb24iPT10eXBlb2Yobz1lLnRvU3RyaW5nKSYmIW4odT1vLmNhbGwoZSkpfHwiZnVuY3Rpb24i'@; put 'PT10eXBlb2Yobz1lLnZhbHVlT2YpJiYhbih1PW8uY2FsbChlKSl8fCFzJiYiZnVuY3Rpb24iPT10eXBlb2Yobz1lLnRvU3RyaW5nKSYmIW4odT1vLmNhbGwoZSkpKXJldHVybiB1O3Rocm93IFR5cGVFcnJvcigiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSw5'@; put 'Mzk1MzpjPT57dmFyIGw9MCx0PU1hdGgucmFuZG9tKCk7Yy5leHBvcnRzPWZ1bmN0aW9uKG4pe3JldHVybiJTeW1ib2woIi5jb25jYXQodm9pZCAwPT09bj8iIjpuLCIpXyIsKCsrbCt0KS50b1N0cmluZygzNikpfX0sMTYxNjooYyxsLHQpPT57dmFyIG49dCg1NTI4Nik7Yy5leHBvcnRzPWZ1'@; put 'bmN0aW9uKGUscyl7aWYoIW4oZSl8fGUuX3QhPT1zKXRocm93IFR5cGVFcnJvcigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3MrIiByZXF1aXJlZCEiKTtyZXR1cm4gZX19LDM2MDc0OihjLGwsdCk9Pnt2YXIgbj10KDM4MTYpLGU9dCgyNTY0NSkscz10KDQ0NjEpLG89dCgyODc4NyksdT10'@; put 'KDk5Mjc1KS5mO2MuZXhwb3J0cz1mdW5jdGlvbihmKXt2YXIgaT1lLlN5bWJvbHx8KGUuU3ltYm9sPXM/e306bi5TeW1ib2x8fHt9KTsiXyIhPWYuY2hhckF0KDApJiYhKGYgaW4gaSkmJnUoaSxmLHt2YWx1ZTpvLmYoZil9KX19LDI4Nzg3OihjLGwsdCk9PntsLmY9dCg4NjMxNCl9LDg2MzE0'@; put 'OihjLGwsdCk9Pnt2YXIgbj10KDM4MjUpKCJ3a3MiKSxlPXQoOTM5NTMpLHM9dCgzODE2KS5TeW1ib2wsbz0iZnVuY3Rpb24iPT10eXBlb2YgczsoYy5leHBvcnRzPWZ1bmN0aW9uKGYpe3JldHVybiBuW2ZdfHwobltmXT1vJiZzW2ZdfHwobz9zOmUpKCJTeW1ib2wuIitmKSl9KS5zdG9yZT1u'@; put 'fSw2OTAwMjooYyxsLHQpPT57dmFyIG49dCg0MTQ4OCksZT10KDg2MzE0KSgiaXRlcmF0b3IiKSxzPXQoODcyMzQpO2MuZXhwb3J0cz10KDI1NjQ1KS5nZXRJdGVyYXRvck1ldGhvZD1mdW5jdGlvbihvKXtpZihudWxsIT1vKXJldHVybiBvW2VdfHxvWyJAQGl0ZXJhdG9yIl18fHNbbihvKV19'@; put 'fSwzMmUzOihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUCwiQXJyYXkiLHtjb3B5V2l0aGluOnQoNTIxNil9KSx0KDE3NzIyKSgiY29weVdpdGhpbiIpfSwxNTc0NTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDI5ODUpLGU9dCgxMDA1MCkoNCk7bihuLlArbi5GKiF0KDc3'@; put 'NzE3KShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24obyl7cmV0dXJuIGUodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LDQ4OTc3OihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUCwiQXJyYXkiLHtmaWxsOnQoNDY4NTIpfSksdCgxNzcyMikoImZpbGwiKX0sOTg4Mzc6'@; put 'KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoMTAwNTApKDIpO24obi5QK24uRiohdCg3NzcxNykoW10uZmlsdGVyLCEwKSwiQXJyYXkiLHtmaWx0ZXI6ZnVuY3Rpb24obyl7cmV0dXJuIGUodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LDk0ODk5OihjLGwsdCk9Pnsi'@; put 'dXNlIHN0cmljdCI7dmFyIG49dCg0Mjk4NSksZT10KDEwMDUwKSg2KSxzPSJmaW5kSW5kZXgiLG89ITA7cyBpbltdJiZBcnJheSgxKVtzXShmdW5jdGlvbigpe289ITF9KSxuKG4uUCtuLkYqbywiQXJyYXkiLHtmaW5kSW5kZXg6ZnVuY3Rpb24oZil7cmV0dXJuIGUodGhpcyxmLGFyZ3VtZW50'@; put 'cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSx0KDE3NzIyKShzKX0sNTIzMTA6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoMTAwNTApKDUpLHM9ImZpbmQiLG89ITA7cyBpbltdJiZBcnJheSgxKVtzXShmdW5jdGlvbigpe289ITF9KSxuKG4uUCtu'@; put 'LkYqbywiQXJyYXkiLHtmaW5kOmZ1bmN0aW9uKGYpe3JldHVybiBlKHRoaXMsZixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksdCgxNzcyMikocyl9LDI0MzM2OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0Mjk4NSksZT10KDEwMDUwKSgwKSxzPXQo'@; put 'Nzc3MTcpKFtdLmZvckVhY2gsITApO24obi5QK24uRiohcywiQXJyYXkiLHtmb3JFYWNoOmZ1bmN0aW9uKHUpe3JldHVybiBlKHRoaXMsdSxhcmd1bWVudHNbMV0pfX0pfSwzMDUyMjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNzQxKSxlPXQoNDI5ODUpLHM9dCgyMDUwOCksbz10'@; put 'KDI4ODUxKSx1PXQoODY1NTUpLGY9dCgxMDg3NSksaT10KDkyODExKSxwPXQoNjkwMDIpO2UoZS5TK2UuRiohdCg3NDYyKShmdW5jdGlvbih5KXtBcnJheS5mcm9tKHkpfSksIkFycmF5Iix7ZnJvbTpmdW5jdGlvbih2KXt2YXIgQixiLE8sUyxnPXModikseD0iZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'dGhpcz90aGlzOkFycmF5LEU9YXJndW1lbnRzLmxlbmd0aCxqPUU+MT9hcmd1bWVudHNbMV06dm9pZCAwLHc9dm9pZCAwIT09aixSPTAsRj1wKGcpO2lmKHcmJihqPW4oaixFPjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09Rnx8eD09QXJyYXkmJnUoRikpZm9yKGI9bmV3IHgoQj1m'@; put 'KGcubGVuZ3RoKSk7Qj5SO1IrKylpKGIsUix3P2ooZ1tSXSxSKTpnW1JdKTtlbHNlIGZvcihTPUYuY2FsbChnKSxiPW5ldyB4OyEoTz1TLm5leHQoKSkuZG9uZTtSKyspaShiLFIsdz9vKFMsaixbTy52YWx1ZSxSXSwhMCk6Ty52YWx1ZSk7cmV0dXJuIGIubGVuZ3RoPVIsYn19KX0sMjMzNjk6'@; put 'KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoNzkzMTUpKCExKSxzPVtdLmluZGV4T2Ysbz0hIXMmJjEvWzFdLmluZGV4T2YoMSwtMCk8MDtuKG4uUCtuLkYqKG98fCF0KDc3NzE3KShzKSksIkFycmF5Iix7aW5kZXhPZjpmdW5jdGlvbihmKXtyZXR1cm4gbz9zLmFw'@; put 'cGx5KHRoaXMsYXJndW1lbnRzKXx8MDplKHRoaXMsZixhcmd1bWVudHNbMV0pfX0pfSwyMDc3NDooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIkFycmF5Iix7aXNBcnJheTp0KDQzMDIpfSl9LDU2OTk3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCgxNzcyMiksZT10KDE1'@; put 'NDM2KSxzPXQoODcyMzQpLG89dCgyMjExMCk7Yy5leHBvcnRzPXQoNDI5MjMpKEFycmF5LCJBcnJheSIsZnVuY3Rpb24odSxmKXt0aGlzLl90PW8odSksdGhpcy5faT0wLHRoaXMuX2s9Zn0sZnVuY3Rpb24oKXt2YXIgdT10aGlzLl90LGY9dGhpcy5fayxpPXRoaXMuX2krKztyZXR1cm4hdXx8'@; put 'aT49dS5sZW5ndGg/KHRoaXMuX3Q9dm9pZCAwLGUoMSkpOmUoMCwia2V5cyI9PWY/aToidmFsdWVzIj09Zj91W2ldOltpLHVbaV1dKX0sInZhbHVlcyIpLHMuQXJndW1lbnRzPXMuQXJyYXksbigia2V5cyIpLG4oInZhbHVlcyIpLG4oImVudHJpZXMiKX0sODc4NDI6KGMsbCx0KT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoMjIxMTApLHM9W10uam9pbjtuKG4uUCtuLkYqKHQoNDk3OTcpIT1PYmplY3R8fCF0KDc3NzE3KShzKSksIkFycmF5Iix7am9pbjpmdW5jdGlvbih1KXtyZXR1cm4gcy5jYWxsKGUodGhpcyksdm9pZCAwPT09dT8iLCI6dSl9fSl9LDk5NTY0Oihj'@; put 'LGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0Mjk4NSksZT10KDIyMTEwKSxzPXQoODE0NjcpLG89dCgxMDg3NSksdT1bXS5sYXN0SW5kZXhPZixmPSEhdSYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MDtuKG4uUCtuLkYqKGZ8fCF0KDc3NzE3KSh1KSksIkFycmF5Iix7bGFzdEluZGV4'@; put 'T2Y6ZnVuY3Rpb24ocCl7aWYoZilyZXR1cm4gdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIHk9ZSh0aGlzKSx2PW8oeS5sZW5ndGgpLGc9di0xO2Zvcihhcmd1bWVudHMubGVuZ3RoPjEmJihnPU1hdGgubWluKGcscyhhcmd1bWVudHNbMV0pKSksZzwwJiYoZz12K2cpO2c+PTA7Zy0t'@; put 'KWlmKGcgaW4geSYmeVtnXT09PXApcmV0dXJuIGd8fDA7cmV0dXJuLTF9fSl9LDE5MzcxOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0Mjk4NSksZT10KDEwMDUwKSgxKTtuKG4uUCtuLkYqIXQoNzc3MTcpKFtdLm1hcCwhMCksIkFycmF5Iix7bWFwOmZ1bmN0aW9uKG8pe3JldHVy'@; put 'biBlKHRoaXMsbyxhcmd1bWVudHNbMV0pfX0pfSw1ODI5NTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDI5ODUpLGU9dCg5MjgxMSk7bihuLlMrbi5GKnQoNzQyNTMpKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcygpe31yZXR1cm4hKEFycmF5Lm9mLmNhbGwocylpbnN0YW5jZW9mIHMp'@; put 'fSksIkFycmF5Iix7b2Y6ZnVuY3Rpb24oKXtmb3IodmFyIG89MCx1PWFyZ3VtZW50cy5sZW5ndGgsZj1uZXcoImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSkodSk7dT5vOyllKGYsbyxhcmd1bWVudHNbbysrXSk7cmV0dXJuIGYubGVuZ3RoPXUsZn19KX0sMzc1MDooYyxsLHQp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDI5ODUpLGU9dCgzNzYyOCk7bihuLlArbi5GKiF0KDc3NzE3KShbXS5yZWR1Y2VSaWdodCwhMCksIkFycmF5Iix7cmVkdWNlUmlnaHQ6ZnVuY3Rpb24obyl7cmV0dXJuIGUodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCEwKX19'@; put 'KX0sMzMwNTc6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoMzc2MjgpO24obi5QK24uRiohdCg3NzcxNykoW10ucmVkdWNlLCEwKSwiQXJyYXkiLHtyZWR1Y2U6ZnVuY3Rpb24obyl7cmV0dXJuIGUodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFd'@; put 'LCExKX19KX0sNTAxMTA6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoNDA2MzkpLHM9dCg5MjAzMiksbz10KDkyMzM3KSx1PXQoMTA4NzUpLGY9W10uc2xpY2U7bihuLlArbi5GKnQoNzQyNTMpKGZ1bmN0aW9uKCl7ZSYmZi5jYWxsKGUpfSksIkFycmF5Iix7c2xp'@; put 'Y2U6ZnVuY3Rpb24ocCx5KXt2YXIgdj11KHRoaXMubGVuZ3RoKSxnPXModGhpcyk7aWYoeT12b2lkIDA9PT15P3Y6eSwiQXJyYXkiPT1nKXJldHVybiBmLmNhbGwodGhpcyxwLHkpO2Zvcih2YXIgeD1vKHAsdiksRT1vKHksdiksaj11KEUteCksdz1uZXcgQXJyYXkoaiksUj0wO1I8ajtSKysp'@; put 'd1tSXT0iU3RyaW5nIj09Zz90aGlzLmNoYXJBdCh4K1IpOnRoaXNbeCtSXTtyZXR1cm4gd319KX0sMjY3NzM6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoMTAwNTApKDMpO24obi5QK24uRiohdCg3NzcxNykoW10uc29tZSwhMCksIkFycmF5Iix7c29tZTpmdW5j'@; put 'dGlvbihvKXtyZXR1cm4gZSh0aGlzLG8sYXJndW1lbnRzWzFdKX19KX0sMjAwNzU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoMjQ5NjMpLHM9dCgyMDUwOCksbz10KDc0MjUzKSx1PVtdLnNvcnQsZj1bMSwyLDNdO24obi5QK24uRioobyhmdW5jdGlvbigpe2Yu'@; put 'c29ydCh2b2lkIDApfSl8fCFvKGZ1bmN0aW9uKCl7Zi5zb3J0KG51bGwpfSl8fCF0KDc3NzE3KSh1KSksIkFycmF5Iix7c29ydDpmdW5jdGlvbihwKXtyZXR1cm4gdm9pZCAwPT09cD91LmNhbGwocyh0aGlzKSk6dS5jYWxsKHModGhpcyksZShwKSl9fSl9LDMxODQyOihjLGwsdCk9Pnt0KDI5'@; put 'NzQpKCJBcnJheSIpfSw4MTgyMjooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIkRhdGUiLHtub3c6ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX19KX0sOTEwMzE6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9dCg1MzUzNyk7bihuLlArbi5GKihEYXRlLnBy'@; put 'b3RvdHlwZS50b0lTT1N0cmluZyE9PWUpLCJEYXRlIix7dG9JU09TdHJpbmc6ZX0pfSwxOTk3NzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDI5ODUpLGU9dCgyMDUwOCkscz10KDIxNjg5KTtuKG4uUCtuLkYqdCg3NDI1MykoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PW5ldyBE'@; put 'YXRlKE5hTikudG9KU09OKCl8fDEhPT1EYXRlLnByb3RvdHlwZS50b0pTT04uY2FsbCh7dG9JU09TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gMX19KX0pLCJEYXRlIix7dG9KU09OOmZ1bmN0aW9uKHUpe3ZhciBmPWUodGhpcyksaT1zKGYpO3JldHVybiJudW1iZXIiIT10eXBlb2YgaXx8aXNG'@; put 'aW5pdGUoaSk/Zi50b0lTT1N0cmluZygpOm51bGx9fSl9LDQxNTYwOihjLGwsdCk9Pnt2YXIgbj10KDg2MzE0KSgidG9QcmltaXRpdmUiKSxlPURhdGUucHJvdG90eXBlO24gaW4gZXx8dCg4NzcyOCkoZSxuLHQoODcwKSl9LDQ2MzMxOihjLGwsdCk9Pnt2YXIgbj1EYXRlLnByb3RvdHlwZSxl'@; put 'PSJJbnZhbGlkIERhdGUiLHM9InRvU3RyaW5nIixvPW5bc10sdT1uLmdldFRpbWU7bmV3IERhdGUoTmFOKSsiIiE9ZSYmdCg3NzIzNCkobixzLGZ1bmN0aW9uKCl7dmFyIGk9dS5jYWxsKHRoaXMpO3JldHVybiBpPT1pP28uY2FsbCh0aGlzKTplfSl9LDM5NzMwOihjLGwsdCk9Pnt2YXIgbj10'@; put 'KDQyOTg1KTtuKG4uUCwiRnVuY3Rpb24iLHtiaW5kOnQoMzQzOTgpfSl9LDQ4Mzc3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg1NTI4NiksZT10KDQ2OCkscz10KDg2MzE0KSgiaGFzSW5zdGFuY2UiKSxvPUZ1bmN0aW9uLnByb3RvdHlwZTtzIGluIG98fHQoOTkyNzUpLmYobyxz'@; put 'LHt2YWx1ZTpmdW5jdGlvbih1KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdGhpc3x8IW4odSkpcmV0dXJuITE7aWYoIW4odGhpcy5wcm90b3R5cGUpKXJldHVybiB1IGluc3RhbmNlb2YgdGhpcztmb3IoO3U9ZSh1KTspaWYodGhpcy5wcm90b3R5cGU9PT11KXJldHVybiEwO3JldHVybiExfX0p'@; put 'fSw2MDU5OihjLGwsdCk9Pnt2YXIgbj10KDk5Mjc1KS5mLGU9RnVuY3Rpb24ucHJvdG90eXBlLHM9L15ccypmdW5jdGlvbiAoW14gKF0qKS8sbz0ibmFtZSI7byBpbiBlfHx0KDY3MDU3KSYmbihlLG8se2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuKCIiK3RoaXMp'@; put 'Lm1hdGNoKHMpWzFdfWNhdGNoe3JldHVybiIifX19KX0sODg0MTY6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDk4MjQpLGU9dCgxNjE2KSxzPSJNYXAiO2MuZXhwb3J0cz10KDQ1Nzk1KShzLGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsYXJndW1l'@; put 'bnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApfX0se2dldDpmdW5jdGlvbih1KXt2YXIgZj1uLmdldEVudHJ5KGUodGhpcyxzKSx1KTtyZXR1cm4gZiYmZi52fSxzZXQ6ZnVuY3Rpb24odSxmKXtyZXR1cm4gbi5kZWYoZSh0aGlzLHMpLDA9PT11PzA6dSxmKX19LG4sITApfSw3NjUw'@; put 'MzooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDQ2MjA2KSxzPU1hdGguc3FydCxvPU1hdGguYWNvc2g7bihuLlMrbi5GKiEobyYmNzEwPT1NYXRoLmZsb29yKG8oTnVtYmVyLk1BWF9WQUxVRSkpJiZvKDEvMCk9PTEvMCksIk1hdGgiLHthY29zaDpmdW5jdGlvbihmKXtyZXR1cm4oZj0r'@; put 'Zik8MT9OYU46Zj45NDkwNjI2NS42MjQyNTE1Nj9NYXRoLmxvZyhmKStNYXRoLkxOMjplKGYtMStzKGYtMSkqcyhmKzEpKX19KX0sNjY3ODY6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9TWF0aC5hc2luaDtuKG4uUytuLkYqIShlJiYxL2UoMCk+MCksIk1hdGgiLHthc2luaDpmdW5jdGlv'@; put 'biBzKG8pe3JldHVybiBpc0Zpbml0ZShvPStvKSYmMCE9bz9vPDA/LXMoLW8pOk1hdGgubG9nKG8rTWF0aC5zcXJ0KG8qbysxKSk6b319KX0sNTA5MzI6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9TWF0aC5hdGFuaDtuKG4uUytuLkYqIShlJiYxL2UoLTApPDApLCJNYXRoIix7YXRhbmg6'@; put 'ZnVuY3Rpb24obyl7cmV0dXJuIDA9PShvPStvKT9vOk1hdGgubG9nKCgxK28pLygxLW8pKS8yfX0pfSw1NzUyNjooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDYxODAxKTtuKG4uUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24obyl7cmV0dXJuIGUobz0rbykqTWF0aC5wb3coTWF0aC5hYnMo'@; put 'byksMS8zKX19KX0sMjE1OTE6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpO24obi5TLCJNYXRoIix7Y2x6MzI6ZnVuY3Rpb24ocyl7cmV0dXJuKHM+Pj49MCk/MzEtTWF0aC5mbG9vcihNYXRoLmxvZyhzKy41KSpNYXRoLkxPRzJFKTozMn19KX0sOTA3MzooYyxsLHQpPT57dmFyIG49dCg0Mjk4'@; put 'NSksZT1NYXRoLmV4cDtuKG4uUywiTWF0aCIse2Nvc2g6ZnVuY3Rpb24obyl7cmV0dXJuKGUobz0rbykrZSgtbykpLzJ9fSl9LDgwMzQ3OihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KSxlPXQoMTMwODYpO24obi5TK24uRiooZSE9TWF0aC5leHBtMSksIk1hdGgiLHtleHBtMTplfSl9LDMwNTc5'@; put 'OihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUywiTWF0aCIse2Zyb3VuZDp0KDM0OTM0KX0pfSw0NjY5OihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KSxlPU1hdGguYWJzO24obi5TLCJNYXRoIix7aHlwb3Q6ZnVuY3Rpb24obyx1KXtmb3IodmFyIHYsZyxmPTAsaT0wLHA9YXJndW1lbnRz'@; put 'Lmxlbmd0aCx5PTA7aTxwOyl5PCh2PWUoYXJndW1lbnRzW2krK10pKT8oZj1mKihnPXkvdikqZysxLHk9dik6Zis9dj4wPyhnPXYveSkqZzp2O3JldHVybiB5PT09MS8wPzEvMDp5Kk1hdGguc3FydChmKX19KX0sNjc3MTA6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9TWF0aC5pbXVsO24o'@; put 'bi5TK24uRip0KDc0MjUzKShmdW5jdGlvbigpe3JldHVybi01IT1lKDQyOTQ5NjcyOTUsNSl8fDIhPWUubGVuZ3RofSksIk1hdGgiLHtpbXVsOmZ1bmN0aW9uKG8sdSl7dmFyIGY9NjU1MzUsaT0rbyxwPSt1LHk9ZiZpLHY9ZiZwO3JldHVybiAwfHkqdisoKGYmaT4+PjE2KSp2K3kqKGYmcD4+'@; put 'PjE2KTw8MTY+Pj4wKX19KX0sNDU3ODk6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpO24obi5TLCJNYXRoIix7bG9nMTA6ZnVuY3Rpb24ocyl7cmV0dXJuIE1hdGgubG9nKHMpKk1hdGguTE9HMTBFfX0pfSwzMzUxNDooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIk1hdGgiLHtsb2cx'@; put 'cDp0KDQ2MjA2KX0pfSw5OTk3ODooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIk1hdGgiLHtsb2cyOmZ1bmN0aW9uKHMpe3JldHVybiBNYXRoLmxvZyhzKS9NYXRoLkxOMn19KX0sNTg0NzI6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpO24obi5TLCJNYXRoIix7c2lnbjp0KDYxODAx'@; put 'KX0pfSw4Njk0NjooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDEzMDg2KSxzPU1hdGguZXhwO24obi5TK24uRip0KDc0MjUzKShmdW5jdGlvbigpe3JldHVybi0yZS0xNyE9IU1hdGguc2luaCgtMmUtMTcpfSksIk1hdGgiLHtzaW5oOmZ1bmN0aW9uKHUpe3JldHVybiBNYXRoLmFicyh1'@; put 'PSt1KTwxPyhlKHUpLWUoLXUpKS8yOihzKHUtMSktcygtdS0xKSkqKE1hdGguRS8yKX19KX0sMzUwNjg6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9dCgxMzA4Nikscz1NYXRoLmV4cDtuKG4uUywiTWF0aCIse3Rhbmg6ZnVuY3Rpb24odSl7dmFyIGY9ZSh1PSt1KSxpPWUoLXUpO3JldHVy'@; put 'biBmPT0xLzA/MTppPT0xLzA/LTE6KGYtaSkvKHModSkrcygtdSkpfX0pfSw0MTM6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpO24obi5TLCJNYXRoIix7dHJ1bmM6ZnVuY3Rpb24ocyl7cmV0dXJuKHM+MD9NYXRoLmZsb29yOk1hdGguY2VpbCkocyl9fSl9LDExMjQ2OihjLGwsdCk9PnsidXNl'@; put 'IHN0cmljdCI7dmFyIG49dCgzODE2KSxlPXQoNzkxODEpLHM9dCg5MjAzMiksbz10KDQwMjY2KSx1PXQoMjE2ODkpLGY9dCg3NDI1MyksaT10KDIwNjE2KS5mLHA9dCgxODY5MykuZix5PXQoOTkyNzUpLmYsdj10KDI5NTk5KS50cmltLGc9Ik51bWJlciIseD1uW2ddLEU9eCxqPXgucHJvdG90'@; put 'eXBlLHc9cyh0KDQyNTAzKShqKSk9PWcsUj0idHJpbSJpbiBTdHJpbmcucHJvdG90eXBlLEY9ZnVuY3Rpb24oUyl7dmFyIEM9dShTLCExKTtpZigic3RyaW5nIj09dHlwZW9mIEMmJkMubGVuZ3RoPjIpe3ZhciBVLFosdHQsSz0oQz1SP0MudHJpbSgpOnYoQywzKSkuY2hhckNvZGVBdCgwKTtp'@; put 'Zig0Mz09PUt8fDQ1PT09Syl7aWYoODg9PT0oVT1DLmNoYXJDb2RlQXQoMikpfHwxMjA9PT1VKXJldHVybiBOYU59ZWxzZSBpZig0OD09PUspe3N3aXRjaChDLmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpaPTIsdHQ9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpaPTgsdHQ9NTU7'@; put 'YnJlYWs7ZGVmYXVsdDpyZXR1cm4rQ31mb3IodmFyIFgsXz1DLnNsaWNlKDIpLG50PTAsc3Q9Xy5sZW5ndGg7bnQ8c3Q7bnQrKylpZigoWD1fLmNoYXJDb2RlQXQobnQpKTw0OHx8WD50dClyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChfLFopfX1yZXR1cm4rQ307aWYoIXgoIiAwbzEiKXx8'@; put 'IXgoIjBiMSIpfHx4KCIrMHgxIikpe3g9ZnVuY3Rpb24oQyl7dmFyIEs9YXJndW1lbnRzLmxlbmd0aDwxPzA6QyxVPXRoaXM7cmV0dXJuIFUgaW5zdGFuY2VvZiB4JiYodz9mKGZ1bmN0aW9uKCl7ai52YWx1ZU9mLmNhbGwoVSl9KTpzKFUpIT1nKT9vKG5ldyBFKEYoSykpLFUseCk6RihLKX07'@; put 'Zm9yKHZhciBPLEI9dCg2NzA1Nyk/aShFKToiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVH'@; put 'RVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXIiLnNwbGl0KCIsIiksYj0wO0IubGVuZ3RoPmI7YisrKWUoRSxPPUJbYl0pJiYhZSh4LE8pJiZ5KHgsTyxwKEUsTykpO3gucHJvdG90eXBlPWosai5jb25zdHJ1Y3Rvcj14LHQoNzcyMzQpKG4sZyx4KX19LDc1OTcyOihjLGwsdCk9Pnt2'@; put 'YXIgbj10KDQyOTg1KTtuKG4uUywiTnVtYmVyIix7RVBTSUxPTjpNYXRoLnBvdygyLC01Mil9KX0sNTM0MDM6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9dCgzODE2KS5pc0Zpbml0ZTtuKG4uUywiTnVtYmVyIix7aXNGaW5pdGU6ZnVuY3Rpb24obyl7cmV0dXJuIm51bWJlciI9PXR5cGVv'@; put 'ZiBvJiZlKG8pfX0pfSw5MjUxNjooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIk51bWJlciIse2lzSW50ZWdlcjp0KDE4MzY3KX0pfSw0OTM3MTooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKHMpe3JldHVybiBzIT1zfX0pfSw4'@; put 'NjQ3OTooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDE4MzY3KSxzPU1hdGguYWJzO24obi5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKHUpe3JldHVybiBlKHUpJiZzKHUpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSw5MTczNjooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7'@; put 'bihuLlMsIk51bWJlciIse01BWF9TQUZFX0lOVEVHRVI6OTAwNzE5OTI1NDc0MDk5MX0pfSw1MTg4OTooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIk51bWJlciIse01JTl9TQUZFX0lOVEVHRVI6LTkwMDcxOTkyNTQ3NDA5OTF9KX0sNjUxNzc6KGMsbCx0KT0+e3ZhciBuPXQoNDI5'@; put 'ODUpLGU9dCg0Nzc0Myk7bihuLlMrbi5GKihOdW1iZXIucGFyc2VGbG9hdCE9ZSksIk51bWJlciIse3BhcnNlRmxvYXQ6ZX0pfSw4MTI0NjooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDU1OTYwKTtuKG4uUytuLkYqKE51bWJlci5wYXJzZUludCE9ZSksIk51bWJlciIse3BhcnNlSW50'@; put 'OmV9KX0sMzA3MjY6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoODE0NjcpLHM9dCg4MzM2NSksbz10KDY4NTk1KSx1PTEuLnRvRml4ZWQsZj1NYXRoLmZsb29yLGk9WzAsMCwwLDAsMCwwXSxwPSJOdW1iZXIudG9GaXhlZDogaW5jb3JyZWN0IGludm9jYXRpb24h'@; put 'Iix5PSIwIix2PWZ1bmN0aW9uKHcsUil7Zm9yKHZhciBGPS0xLEI9UjsrK0Y8NjspaVtGXT0oQis9dyppW0ZdKSUxZTcsQj1mKEIvMWU3KX0sZz1mdW5jdGlvbih3KXtmb3IodmFyIFI9NixGPTA7LS1SPj0wOylpW1JdPWYoKEYrPWlbUl0pL3cpLEY9RiV3KjFlN30seD1mdW5jdGlvbigpe2Zv'@; put 'cih2YXIgdz02LFI9IiI7LS13Pj0wOylpZigiIiE9PVJ8fDA9PT13fHwwIT09aVt3XSl7dmFyIEY9U3RyaW5nKGlbd10pO1I9IiI9PT1SP0Y6UitvLmNhbGwoeSw3LUYubGVuZ3RoKStGfXJldHVybiBSfSxFPWZ1bmN0aW9uKHcsUixGKXtyZXR1cm4gMD09PVI/RjpSJTI9PTE/RSh3LFItMSxG'@; put 'KncpOkUodyp3LFIvMixGKX07bihuLlArbi5GKighIXUmJigiMC4wMDAiIT09OGUtNS50b0ZpeGVkKDMpfHwiMSIhPT0uOS50b0ZpeGVkKDApfHwiMS4yNSIhPT0xLjI1NS50b0ZpeGVkKDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT0oMHhkZTBiNmIzYTc2NDAwODApLnRvRml4ZWQoMCkp'@; put 'fHwhdCg3NDI1MykoZnVuY3Rpb24oKXt1LmNhbGwoe30pfSkpLCJOdW1iZXIiLHt0b0ZpeGVkOmZ1bmN0aW9uKFIpe3ZhciBTLEMsSyxVLEY9cyh0aGlzLHApLEI9ZShSKSxiPSIiLE89eTtpZihCPDB8fEI+MjApdGhyb3cgUmFuZ2VFcnJvcihwKTtpZihGIT1GKXJldHVybiJOYU4iO2lmKEY8'@; put 'PS0xZTIxfHxGPj0xZTIxKXJldHVybiBTdHJpbmcoRik7aWYoRjwwJiYoYj0iLSIsRj0tRiksRj4xZS0yMSlpZihTPWZ1bmN0aW9uKHcpe2Zvcih2YXIgUj0wLEY9dztGPj00MDk2OylSKz0xMixGLz00MDk2O2Zvcig7Rj49MjspUis9MSxGLz0yO3JldHVybiBSfShGKkUoMiw2OSwxKSktNjks'@; put 'Qz1TPDA/RipFKDIsLVMsMSk6Ri9FKDIsUywxKSxDKj00NTAzNTk5NjI3MzcwNDk2LChTPTUyLVMpPjApe2Zvcih2KDAsQyksSz1CO0s+PTc7KXYoMWU3LDApLEstPTc7Zm9yKHYoRSgxMCxLLDEpLDApLEs9Uy0xO0s+PTIzOylnKDE8PDIzKSxLLT0yMztnKDE8PEspLHYoMSwxKSxnKDIpLE89'@; put 'eCgpfWVsc2UgdigwLEMpLHYoMTw8LVMsMCksTz14KCkrby5jYWxsKHksQik7cmV0dXJuIE89Qj4wP2IrKChVPU8ubGVuZ3RoKTw9Qj8iMC4iK28uY2FsbCh5LEItVSkrTzpPLnNsaWNlKDAsVS1CKSsiLiIrTy5zbGljZShVLUIpKTpiK099fSl9LDE5MDE6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgbj10KDQyOTg1KSxlPXQoNzQyNTMpLHM9dCg4MzM2NSksbz0xLi50b1ByZWNpc2lvbjtuKG4uUCtuLkYqKGUoZnVuY3Rpb24oKXtyZXR1cm4iMSIhPT1vLmNhbGwoMSx2b2lkIDApfSl8fCFlKGZ1bmN0aW9uKCl7by5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVu'@; put 'Y3Rpb24oZil7dmFyIGk9cyh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiB2b2lkIDA9PT1mP28uY2FsbChpKTpvLmNhbGwoaSxmKX19KX0sNzUxMTU6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpO24obi5TK24uRiwiT2JqZWN0Iix7YXNz'@; put 'aWduOnQoMzUzNDUpfSl9LDY4MTMyOihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUywiT2JqZWN0Iix7Y3JlYXRlOnQoNDI1MDMpfSl9LDM3NDcwOihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUytuLkYqIXQoNjcwNTcpLCJPYmplY3QiLHtkZWZpbmVQcm9wZXJ0aWVzOnQoMzU1'@; put 'ODgpfSl9LDQ4Mzg4OihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUytuLkYqIXQoNjcwNTcpLCJPYmplY3QiLHtkZWZpbmVQcm9wZXJ0eTp0KDk5Mjc1KS5mfSl9LDg5Mzc1OihjLGwsdCk9Pnt2YXIgbj10KDU1Mjg2KSxlPXQoODQ3MjgpLm9uRnJlZXplO3QoMzMxNjApKCJmcmVlemUi'@; put 'LGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gcyYmbih1KT9zKGUodSkpOnV9fSl9LDk0ODgyOihjLGwsdCk9Pnt2YXIgbj10KDIyMTEwKSxlPXQoMTg2OTMpLmY7dCgzMzE2MCkoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rp'@; put 'b24obyx1KXtyZXR1cm4gZShuKG8pLHUpfX0pfSw3OTYyMjooYyxsLHQpPT57dCgzMzE2MCkoImdldE93blByb3BlcnR5TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoMzkzMjcpLmZ9KX0sNDE1MjA6KGMsbCx0KT0+e3ZhciBuPXQoMjA1MDgpLGU9dCg0NjgpO3QoMzMxNjApKCJnZXRQcm90'@; put 'b3R5cGVPZiIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIGUobihvKSl9fSl9LDQ5ODkyOihjLGwsdCk9Pnt2YXIgbj10KDU1Mjg2KTt0KDMzMTYwKSgiaXNFeHRlbnNpYmxlIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuISFuKG8pJiYoIWV8fGUo'@; put 'bykpfX0pfSw2NDE1NzooYyxsLHQpPT57dmFyIG49dCg1NTI4Nik7dCgzMzE2MCkoImlzRnJvemVuIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIW4obyl8fCEhZSYmZShvKX19KX0sMzUwOTU6KGMsbCx0KT0+e3ZhciBuPXQoNTUyODYpO3QoMzMxNjApKCJpc1NlYWxl'@; put 'ZCIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiFuKG8pfHwhIWUmJmUobyl9fSl9LDk5MTc2OihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUywiT2JqZWN0Iix7aXM6dCgyNzE5NSl9KX0sMjc0NzY6KGMsbCx0KT0+e3ZhciBuPXQoMjA1MDgpLGU9dCg0NzE4NCk7'@; put 'dCgzMzE2MCkoImtleXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBlKG4obykpfX0pfSw4NDY3MjooYyxsLHQpPT57dmFyIG49dCg1NTI4NiksZT10KDg0NzI4KS5vbkZyZWV6ZTt0KDMzMTYwKSgicHJldmVudEV4dGVuc2lvbnMiLGZ1bmN0aW9uKHMpe3JldHVybiBm'@; put 'dW5jdGlvbih1KXtyZXR1cm4gcyYmbih1KT9zKGUodSkpOnV9fSl9LDQzNTMzOihjLGwsdCk9Pnt2YXIgbj10KDU1Mjg2KSxlPXQoODQ3MjgpLm9uRnJlZXplO3QoMzMxNjApKCJzZWFsIixmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIHMmJm4odSk/cyhlKHUpKTp1fX0p'@; put 'fSw2ODgzODooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSk7bihuLlMsIk9iamVjdCIse3NldFByb3RvdHlwZU9mOnQoMjczNzUpLnNldH0pfSw5NjI1MzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDE0ODgpLGU9e307ZVt0KDg2MzE0KSgidG9TdHJpbmdUYWciKV09InoiLGUrIiIh'@; put 'PSJbb2JqZWN0IHpdIiYmdCg3NzIzNCkoT2JqZWN0LnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIituKHRoaXMpKyJdIn0sITApfSw2NDI5OTooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDQ3NzQzKTtuKG4uRytuLkYqKHBhcnNlRmxvYXQhPWUp'@; put 'LHtwYXJzZUZsb2F0OmV9KX0sNzEwODQ6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9dCg1NTk2MCk7bihuLkcrbi5GKihwYXJzZUludCE9ZSkse3BhcnNlSW50OmV9KX0sMjE1NzI6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9dCgyNDk2Mykscz10KDI3MDA3KSxvPSh0KDM4MTYpLlJl'@; put 'ZmxlY3R8fHt9KS5hcHBseSx1PUZ1bmN0aW9uLmFwcGx5O24obi5TK24uRiohdCg3NDI1MykoZnVuY3Rpb24oKXtvKGZ1bmN0aW9uKCl7fSl9KSwiUmVmbGVjdCIse2FwcGx5OmZ1bmN0aW9uKGkscCx5KXt2YXIgdj1lKGkpLGc9cyh5KTtyZXR1cm4gbz9vKHYscCxnKTp1LmNhbGwodixwLGcp'@; put 'fX0pfSw4MjEzOTooYyxsLHQpPT57dmFyIG49dCg0Mjk4NSksZT10KDQyNTAzKSxzPXQoMjQ5NjMpLG89dCgyNzAwNyksdT10KDU1Mjg2KSxmPXQoNzQyNTMpLGk9dCgzNDM5OCkscD0odCgzODE2KS5SZWZsZWN0fHx7fSkuY29uc3RydWN0LHk9ZihmdW5jdGlvbigpe2Z1bmN0aW9uIGcoKXt9'@; put 'cmV0dXJuIShwKGZ1bmN0aW9uKCl7fSxbXSxnKWluc3RhbmNlb2YgZyl9KSx2PSFmKGZ1bmN0aW9uKCl7cChmdW5jdGlvbigpe30pfSk7bihuLlMrbi5GKih5fHx2KSwiUmVmbGVjdCIse2NvbnN0cnVjdDpmdW5jdGlvbih4LEUpe3MoeCksbyhFKTt2YXIgaj1hcmd1bWVudHMubGVuZ3RoPDM/'@; put 'eDpzKGFyZ3VtZW50c1syXSk7aWYodiYmIXkpcmV0dXJuIHAoeCxFLGopO2lmKHg9PWope3N3aXRjaChFLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgeDtjYXNlIDE6cmV0dXJuIG5ldyB4KEVbMF0pO2Nhc2UgMjpyZXR1cm4gbmV3IHgoRVswXSxFWzFdKTtjYXNlIDM6cmV0dXJuIG5ldyB4'@; put 'KEVbMF0sRVsxXSxFWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyB4KEVbMF0sRVsxXSxFWzJdLEVbM10pfXZhciB3PVtudWxsXTtyZXR1cm4gdy5wdXNoLmFwcGx5KHcsRSksbmV3KGkuYXBwbHkoeCx3KSl9dmFyIFI9ai5wcm90b3R5cGUsRj1lKHUoUik/UjpPYmplY3QucHJvdG90eXBlKSxCPUZ1'@; put 'bmN0aW9uLmFwcGx5LmNhbGwoeCxGLEUpO3JldHVybiB1KEIpP0I6Rn19KX0sMTA2ODU6KGMsbCx0KT0+e3ZhciBuPXQoOTkyNzUpLGU9dCg0Mjk4NSkscz10KDI3MDA3KSxvPXQoMjE2ODkpO2UoZS5TK2UuRip0KDc0MjUzKShmdW5jdGlvbigpe1JlZmxlY3QuZGVmaW5lUHJvcGVydHkobi5m'@; put 'KHt9LDEse3ZhbHVlOjF9KSwxLHt2YWx1ZToyfSl9KSwiUmVmbGVjdCIse2RlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGYsaSxwKXtzKGYpLGk9byhpLCEwKSxzKHApO3RyeXtyZXR1cm4gbi5mKGYsaSxwKSwhMH1jYXRjaHtyZXR1cm4hMX19fSl9LDg1NTM1OihjLGwsdCk9Pnt2YXIgbj10KDQy'@; put 'OTg1KSxlPXQoMTg2OTMpLmYscz10KDI3MDA3KTtuKG4uUywiUmVmbGVjdCIse2RlbGV0ZVByb3BlcnR5OmZ1bmN0aW9uKHUsZil7dmFyIGk9ZShzKHUpLGYpO3JldHVybiEoaSYmIWkuY29uZmlndXJhYmxlKSYmZGVsZXRlIHVbZl19fSl9LDE3MzQ3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7'@; put 'dmFyIG49dCg0Mjk4NSksZT10KDI3MDA3KSxzPWZ1bmN0aW9uKG8pe3RoaXMuX3Q9ZShvKSx0aGlzLl9pPTA7dmFyIGYsdT10aGlzLl9rPVtdO2ZvcihmIGluIG8pdS5wdXNoKGYpfTt0KDQ5OTg4KShzLCJPYmplY3QiLGZ1bmN0aW9uKCl7dmFyIGYsbz10aGlzLHU9by5faztkb3tpZihvLl9p'@; put 'Pj11Lmxlbmd0aClyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXdoaWxlKCEoKGY9dVtvLl9pKytdKWluIG8uX3QpKTtyZXR1cm57dmFsdWU6Zixkb25lOiExfX0pLG4obi5TLCJSZWZsZWN0Iix7ZW51bWVyYXRlOmZ1bmN0aW9uKHUpe3JldHVybiBuZXcgcyh1KX19KX0sOTY2MzM6KGMs'@; put 'bCx0KT0+e3ZhciBuPXQoMTg2OTMpLGU9dCg0Mjk4NSkscz10KDI3MDA3KTtlKGUuUywiUmVmbGVjdCIse2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbih1LGYpe3JldHVybiBuLmYocyh1KSxmKX19KX0sNjg5ODk6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpLGU9dCg0NjgpLHM9'@; put 'dCgyNzAwNyk7bihuLlMsIlJlZmxlY3QiLHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbih1KXtyZXR1cm4gZShzKHUpKX19KX0sODMwNDk6KGMsbCx0KT0+e3ZhciBuPXQoMTg2OTMpLGU9dCg0NjgpLHM9dCg3OTE4MSksbz10KDQyOTg1KSx1PXQoNTUyODYpLGY9dCgyNzAwNyk7byhvLlMsIlJl'@; put 'ZmxlY3QiLHtnZXQ6ZnVuY3Rpb24gaShwLHkpe3ZhciBnLHgsdj1hcmd1bWVudHMubGVuZ3RoPDM/cDphcmd1bWVudHNbMl07cmV0dXJuIGYocCk9PT12P3BbeV06KGc9bi5mKHAseSkpP3MoZywidmFsdWUiKT9nLnZhbHVlOnZvaWQgMCE9PWcuZ2V0P2cuZ2V0LmNhbGwodik6dm9pZCAwOnUo'@; put 'eD1lKHApKT9pKHgseSx2KTp2b2lkIDB9fSl9LDc4MjcwOihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KTtuKG4uUywiUmVmbGVjdCIse2hhczpmdW5jdGlvbihzLG8pe3JldHVybiBvIGluIHN9fSl9LDY0NTEwOihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KSxlPXQoMjcwMDcpLHM9T2JqZWN0Lmlz'@; put 'RXh0ZW5zaWJsZTtuKG4uUywiUmVmbGVjdCIse2lzRXh0ZW5zaWJsZTpmdW5jdGlvbih1KXtyZXR1cm4gZSh1KSwhc3x8cyh1KX19KX0sNzM5ODQ6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpO24obi5TLCJSZWZsZWN0Iix7b3duS2V5czp0KDU3NjQzKX0pfSw3NTc2OTooYyxsLHQpPT57dmFy'@; put 'IG49dCg0Mjk4NSksZT10KDI3MDA3KSxzPU9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucztuKG4uUywiUmVmbGVjdCIse3ByZXZlbnRFeHRlbnNpb25zOmZ1bmN0aW9uKHUpe2UodSk7dHJ5e3JldHVybiBzJiZzKHUpLCEwfWNhdGNoe3JldHVybiExfX19KX0sOTYwMTQ6KGMsbCx0KT0+e3ZhciBu'@; put 'PXQoNDI5ODUpLGU9dCgyNzM3NSk7ZSYmbihuLlMsIlJlZmxlY3QiLHtzZXRQcm90b3R5cGVPZjpmdW5jdGlvbihvLHUpe2UuY2hlY2sobyx1KTt0cnl7cmV0dXJuIGUuc2V0KG8sdSksITB9Y2F0Y2h7cmV0dXJuITF9fX0pfSw1MDA1NTooYyxsLHQpPT57dmFyIG49dCg5OTI3NSksZT10KDE4'@; put 'NjkzKSxzPXQoNDY4KSxvPXQoNzkxODEpLHU9dCg0Mjk4NSksZj10KDkwNjgxKSxpPXQoMjcwMDcpLHA9dCg1NTI4Nik7dSh1LlMsIlJlZmxlY3QiLHtzZXQ6ZnVuY3Rpb24geSh2LGcseCl7dmFyIHcsUixFPWFyZ3VtZW50cy5sZW5ndGg8ND92OmFyZ3VtZW50c1szXSxqPWUuZihpKHYpLGcp'@; put 'O2lmKCFqKXtpZihwKFI9cyh2KSkpcmV0dXJuIHkoUixnLHgsRSk7aj1mKDApfWlmKG8oaiwidmFsdWUiKSl7aWYoITE9PT1qLndyaXRhYmxlfHwhcChFKSlyZXR1cm4hMTtpZih3PWUuZihFLGcpKXtpZih3LmdldHx8dy5zZXR8fCExPT09dy53cml0YWJsZSlyZXR1cm4hMTt3LnZhbHVlPXgs'@; put 'bi5mKEUsZyx3KX1lbHNlIG4uZihFLGcsZigwLHgpKTtyZXR1cm4hMH1yZXR1cm4gdm9pZCAwIT09ai5zZXQmJihqLnNldC5jYWxsKEUseCksITApfX0pfSw4Mzk0NjooYyxsLHQpPT57dmFyIG49dCgzODE2KSxlPXQoNDAyNjYpLHM9dCg5OTI3NSkuZixvPXQoMjA2MTYpLmYsdT10KDU1MzY0'@; put 'KSxmPXQoNTMyMTgpLGk9bi5SZWdFeHAscD1pLHk9aS5wcm90b3R5cGUsdj0vYS9nLGc9L2EvZyx4PW5ldyBpKHYpIT09djtpZih0KDY3MDU3KSYmKCF4fHx0KDc0MjUzKShmdW5jdGlvbigpe3JldHVybiBnW3QoODYzMTQpKCJtYXRjaCIpXT0hMSxpKHYpIT12fHxpKGcpPT1nfHwiL2EvaSIh'@; put 'PWkodiwiaSIpfSkpKXtpPWZ1bmN0aW9uKEYsQil7dmFyIGI9dGhpcyBpbnN0YW5jZW9mIGksTz11KEYpLFM9dm9pZCAwPT09QjtyZXR1cm4hYiYmTyYmRi5jb25zdHJ1Y3Rvcj09PWkmJlM/RjplKHg/bmV3IHAoTyYmIVM/Ri5zb3VyY2U6RixCKTpwKChPPUYgaW5zdGFuY2VvZiBpKT9GLnNv'@; put 'dXJjZTpGLE8mJlM/Zi5jYWxsKEYpOkIpLGI/dGhpczp5LGkpfTtmb3IodmFyIEU9ZnVuY3Rpb24oUil7UiBpbiBpfHxzKGksUix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwW1JdfSxzZXQ6ZnVuY3Rpb24oRil7cFtSXT1GfX0pfSxqPW8ocCksdz0wO2oubGVuZ3Ro'@; put 'Pnc7KUUoalt3KytdKTt5LmNvbnN0cnVjdG9yPWksaS5wcm90b3R5cGU9eSx0KDc3MjM0KShuLCJSZWdFeHAiLGkpfXQoMjk3NCkoIlJlZ0V4cCIpfSwxODI2OTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMjExNjUpO3QoNDI5ODUpKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAs'@; put 'Zm9yY2VkOm4hPT0vLi8uZXhlY30se2V4ZWM6bn0pfSw3Njc3NDooYyxsLHQpPT57dCg2NzA1NykmJiJnIiE9Ly4vZy5mbGFncyYmdCg5OTI3NSkuZihSZWdFeHAucHJvdG90eXBlLCJmbGFncyIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6dCg1MzIxOCl9KX0sMjE0NjY6KGMsbCx0KT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgbj10KDI3MDA3KSxlPXQoMTA4NzUpLHM9dCg3Njc5Myksbz10KDI3Nzg3KTt0KDI4MDgyKSgibWF0Y2giLDEsZnVuY3Rpb24odSxmLGkscCl7cmV0dXJuW2Z1bmN0aW9uKHYpe3ZhciBnPXUodGhpcykseD12Py5bZl07cmV0dXJuIHZvaWQgMCE9PXg/eC5jYWxsKHYsZyk6'@; put 'bmV3IFJlZ0V4cCh2KVtmXShTdHJpbmcoZykpfSxmdW5jdGlvbih5KXt2YXIgdj1wKGkseSx0aGlzKTtpZih2LmRvbmUpcmV0dXJuIHYudmFsdWU7dmFyIGc9bih5KSx4PVN0cmluZyh0aGlzKTtpZighZy5nbG9iYWwpcmV0dXJuIG8oZyx4KTt2YXIgRT1nLnVuaWNvZGU7Zy5sYXN0SW5kZXg9'@; put 'MDtmb3IodmFyIFIsaj1bXSx3PTA7bnVsbCE9PShSPW8oZyx4KSk7KXt2YXIgRj1TdHJpbmcoUlswXSk7alt3XT1GLCIiPT09RiYmKGcubGFzdEluZGV4PXMoeCxlKGcubGFzdEluZGV4KSxFKSksdysrfXJldHVybiAwPT09dz9udWxsOmp9XX0pfSw1OTM1NzooYyxsLHQpPT57InVzZSBzdHJp'@; put 'Y3QiO3ZhciBuPXQoMjcwMDcpLGU9dCgyMDUwOCkscz10KDEwODc1KSxvPXQoODE0NjcpLHU9dCg3Njc5MyksZj10KDI3Nzg3KSxpPU1hdGgubWF4LHA9TWF0aC5taW4seT1NYXRoLmZsb29yLHY9L1wkKFskJmAnXXxcZFxkP3w8W14+XSo+KS9nLGc9L1wkKFskJmAnXXxcZFxkPykvZyx4PWZ1'@; put 'bmN0aW9uKEUpe3JldHVybiB2b2lkIDA9PT1FP0U6U3RyaW5nKEUpfTt0KDI4MDgyKSgicmVwbGFjZSIsMixmdW5jdGlvbihFLGosdyxSKXtyZXR1cm5bZnVuY3Rpb24oYixPKXt2YXIgUz1FKHRoaXMpLEM9Yj8uW2pdO3JldHVybiB2b2lkIDAhPT1DP0MuY2FsbChiLFMsTyk6dy5jYWxsKFN0'@; put 'cmluZyhTKSxiLE8pfSxmdW5jdGlvbihCLGIpe3ZhciBPPVIodyxCLHRoaXMsYik7aWYoTy5kb25lKXJldHVybiBPLnZhbHVlO3ZhciBTPW4oQiksQz1TdHJpbmcodGhpcyksSz0iZnVuY3Rpb24iPT10eXBlb2YgYjtLfHwoYj1TdHJpbmcoYikpO3ZhciBVPVMuZ2xvYmFsO2lmKFUpe3ZhciBa'@; put 'PVMudW5pY29kZTtTLmxhc3RJbmRleD0wfWZvcih2YXIgdHQ9W107Oyl7dmFyIF89ZihTLEMpO2lmKG51bGw9PT1ffHwodHQucHVzaChfKSwhVSkpYnJlYWs7IiI9PT1TdHJpbmcoX1swXSkmJihTLmxhc3RJbmRleD11KEMscyhTLmxhc3RJbmRleCksWikpfWZvcih2YXIgc3Q9IiIsWD0wLFY9'@; put 'MDtWPHR0Lmxlbmd0aDtWKyspe189dHRbVl07Zm9yKHZhciBRPVN0cmluZyhfWzBdKSxZPWkocChvKF8uaW5kZXgpLEMubGVuZ3RoKSwwKSxmdD1bXSx2dD0xO3Z0PF8ubGVuZ3RoO3Z0KyspZnQucHVzaCh4KF9bdnRdKSk7dmFyIE10PV8uZ3JvdXBzO2lmKEspe3ZhciBFdD1bUV0uY29uY2F0'@; put 'KGZ0LFksQyk7dm9pZCAwIT09TXQmJkV0LnB1c2goTXQpO3ZhciBGdD1TdHJpbmcoYi5hcHBseSh2b2lkIDAsRXQpKX1lbHNlIEZ0PUYoUSxDLFksZnQsTXQsYik7WT49WCYmKHN0Kz1DLnNsaWNlKFgsWSkrRnQsWD1ZK1EubGVuZ3RoKX1yZXR1cm4gc3QrQy5zbGljZShYKX1dO2Z1bmN0aW9u'@; put 'IEYoQixiLE8sUyxDLEspe3ZhciBVPU8rQi5sZW5ndGgsWj1TLmxlbmd0aCx0dD1nO3JldHVybiB2b2lkIDAhPT1DJiYoQz1lKEMpLHR0PXYpLHcuY2FsbChLLHR0LGZ1bmN0aW9uKF8sbnQpe3ZhciBzdDtzd2l0Y2gobnQuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJl'@; put 'dHVybiBCO2Nhc2UiYCI6cmV0dXJuIGIuc2xpY2UoMCxPKTtjYXNlIiciOnJldHVybiBiLnNsaWNlKFUpO2Nhc2UiPCI6c3Q9Q1tudC5zbGljZSgxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgWD0rbnQ7aWYoMD09PVgpcmV0dXJuIF87aWYoWD5aKXt2YXIgVj15KFgvMTApO3JldHVybiAwPT09'@; put 'Vj9fOlY8PVo/dm9pZCAwPT09U1tWLTFdP250LmNoYXJBdCgxKTpTW1YtMV0rbnQuY2hhckF0KDEpOl99c3Q9U1tYLTFdfXJldHVybiB2b2lkIDA9PT1zdD8iIjpzdH0pfX0pfSw3NjE0MjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMjcwMDcpLGU9dCgyNzE5NSkscz10KDI3Nzg3'@; put 'KTt0KDI4MDgyKSgic2VhcmNoIiwxLGZ1bmN0aW9uKG8sdSxmLGkpe3JldHVybltmdW5jdGlvbih5KXt2YXIgdj1vKHRoaXMpLGc9eT8uW3VdO3JldHVybiB2b2lkIDAhPT1nP2cuY2FsbCh5LHYpOm5ldyBSZWdFeHAoeSlbdV0oU3RyaW5nKHYpKX0sZnVuY3Rpb24ocCl7dmFyIHk9aShmLHAs'@; put 'dGhpcyk7aWYoeS5kb25lKXJldHVybiB5LnZhbHVlO3ZhciB2PW4ocCksZz1TdHJpbmcodGhpcykseD12Lmxhc3RJbmRleDtlKHgsMCl8fCh2Lmxhc3RJbmRleD0wKTt2YXIgRT1zKHYsZyk7cmV0dXJuIGUodi5sYXN0SW5kZXgseCl8fCh2Lmxhc3RJbmRleD14KSxudWxsPT09RT8tMTpFLmlu'@; put 'ZGV4fV19KX0sNTE4NzY6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDU1MzY0KSxlPXQoMjcwMDcpLHM9dCg1ODM2NCksbz10KDc2NzkzKSx1PXQoMTA4NzUpLGY9dCgyNzc4NyksaT10KDIxMTY1KSxwPXQoNzQyNTMpLHk9TWF0aC5taW4sdj1bXS5wdXNoLGc9InNwbGl0Iix4PSJs'@; put 'ZW5ndGgiLEU9Imxhc3RJbmRleCIsaj00Mjk0OTY3Mjk1LHc9IXAoZnVuY3Rpb24oKXtSZWdFeHAoaiwieSIpfSk7dCgyODA4MikoInNwbGl0IiwyLGZ1bmN0aW9uKFIsRixCLGIpe3ZhciBPO3JldHVybiBPPSJjIj09ImFiYmMiW2ddKC8oYikqLylbMV18fDQhPSJ0ZXN0IltnXSgvKD86KS8s'@; put 'LTEpW3hdfHwyIT0iYWIiW2ddKC8oPzphYikqLylbeF18fDQhPSIuIltnXSgvKC4/KSguPykvKVt4XXx8Ii4iW2ddKC8oKSgpLylbeF0+MXx8IiJbZ10oLy4/LylbeF0/ZnVuY3Rpb24oUyxDKXt2YXIgSz1TdHJpbmcodGhpcyk7aWYodm9pZCAwPT09UyYmMD09PUMpcmV0dXJuW107aWYoIW4o'@; put 'UykpcmV0dXJuIEIuY2FsbChLLFMsQyk7Zm9yKHZhciBzdCxYLFYsVT1bXSx0dD0wLF89dm9pZCAwPT09Qz9qOkM+Pj4wLG50PW5ldyBSZWdFeHAoUy5zb3VyY2UsKFMuaWdub3JlQ2FzZT8iaSI6IiIpKyhTLm11bHRpbGluZT8ibSI6IiIpKyhTLnVuaWNvZGU/InUiOiIiKSsoUy5zdGlja3k/'@; put 'InkiOiIiKSsiZyIpOyhzdD1pLmNhbGwobnQsSykpJiYhKChYPW50W0VdKT50dCYmKFUucHVzaChLLnNsaWNlKHR0LHN0LmluZGV4KSksc3RbeF0+MSYmc3QuaW5kZXg8S1t4XSYmdi5hcHBseShVLHN0LnNsaWNlKDEpKSxWPXN0WzBdW3hdLHR0PVgsVVt4XT49XykpOyludFtFXT09PXN0Lmlu'@; put 'ZGV4JiZudFtFXSsrO3JldHVybiB0dD09PUtbeF0/KFZ8fCFudC50ZXN0KCIiKSkmJlUucHVzaCgiIik6VS5wdXNoKEsuc2xpY2UodHQpKSxVW3hdPl8/VS5zbGljZSgwLF8pOlV9OiIwIltnXSh2b2lkIDAsMClbeF0/ZnVuY3Rpb24oUyxDKXtyZXR1cm4gdm9pZCAwPT09UyYmMD09PUM/W106'@; put 'Qi5jYWxsKHRoaXMsUyxDKX06QixbZnVuY3Rpb24oQyxLKXt2YXIgVT1SKHRoaXMpLFo9Qz8uW0ZdO3JldHVybiB2b2lkIDAhPT1aP1ouY2FsbChDLFUsSyk6Ty5jYWxsKFN0cmluZyhVKSxDLEspfSxmdW5jdGlvbihTLEMpe3ZhciBLPWIoTyxTLHRoaXMsQyxPIT09Qik7aWYoSy5kb25lKXJl'@; put 'dHVybiBLLnZhbHVlO3ZhciBVPWUoUyksWj1TdHJpbmcodGhpcyksdHQ9cyhVLFJlZ0V4cCksXz1VLnVuaWNvZGUsc3Q9bmV3IHR0KHc/VToiXig/OiIrVS5zb3VyY2UrIikiLChVLmlnbm9yZUNhc2U/ImkiOiIiKSsoVS5tdWx0aWxpbmU/Im0iOiIiKSsoVS51bmljb2RlPyJ1IjoiIikrKHc/'@; put 'InkiOiJnIikpLFg9dm9pZCAwPT09Qz9qOkM+Pj4wO2lmKDA9PT1YKXJldHVybltdO2lmKDA9PT1aLmxlbmd0aClyZXR1cm4gbnVsbD09PWYoc3QsWik/W1pdOltdO2Zvcih2YXIgVj0wLFE9MCxZPVtdO1E8Wi5sZW5ndGg7KXtzdC5sYXN0SW5kZXg9dz9ROjA7dmFyIHZ0LGZ0PWYoc3Qsdz9a'@; put 'Olouc2xpY2UoUSkpO2lmKG51bGw9PT1mdHx8KHZ0PXkodShzdC5sYXN0SW5kZXgrKHc/MDpRKSksWi5sZW5ndGgpKT09PVYpUT1vKFosUSxfKTtlbHNle2lmKFkucHVzaChaLnNsaWNlKFYsUSkpLFkubGVuZ3RoPT09WClyZXR1cm4gWTtmb3IodmFyIE10PTE7TXQ8PWZ0Lmxlbmd0aC0xO010'@; put 'KyspaWYoWS5wdXNoKGZ0W010XSksWS5sZW5ndGg9PT1YKXJldHVybiBZO1E9Vj12dH19cmV0dXJuIFkucHVzaChaLnNsaWNlKFYpKSxZfV19KX0sNjYxMDg6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDc2Nzc0KTt2YXIgbj10KDI3MDA3KSxlPXQoNTMyMTgpLHM9dCg2NzA1Nyksbz0idG9T'@; put 'dHJpbmciLHU9Ly4vW29dLGY9ZnVuY3Rpb24oaSl7dCg3NzIzNCkoUmVnRXhwLnByb3RvdHlwZSxvLGksITApfTt0KDc0MjUzKShmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9dS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSk/ZihmdW5jdGlvbigpe3ZhciBwPW4odGhpcyk7cmV0dXJu'@; put 'Ii8iLmNvbmNhdChwLnNvdXJjZSwiLyIsImZsYWdzImluIHA/cC5mbGFnczohcyYmcCBpbnN0YW5jZW9mIFJlZ0V4cD9lLmNhbGwocCk6dm9pZCAwKX0pOnUubmFtZSE9byYmZihmdW5jdGlvbigpe3JldHVybiB1LmNhbGwodGhpcyl9KX0sOTgxODQ6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2'@; put 'YXIgbj10KDk4MjQpLGU9dCgxNjE2KTtjLmV4cG9ydHM9dCg0NTc5NSkoIlNldCIsZnVuY3Rpb24obyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7YWRkOmZ1bmN0aW9uKHUpe3JldHVybiBuLmRlZihl'@; put 'KHRoaXMsIlNldCIpLHU9MD09PXU/MDp1LHUpfX0sbil9LDQwODU2OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCgyOTM5NSkoImFuY2hvciIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiBuKHRoaXMsImEiLCJuYW1lIixzKX19KX0sODA3MDM6KGMsbCx0KT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt0KDI5Mzk1KSgiYmlnIixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLCJiaWciLCIiLCIiKX19KX0sOTE1Mzk6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDI5Mzk1KSgiYmxpbmsiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVy'@; put 'biBuKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LDUyOTI6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDI5Mzk1KSgiYm9sZCIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcywiYiIsIiIsIiIpfX0pfSwyOTUzOTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBu'@; put 'PXQoNDI5ODUpLGU9dCgyNDQ5NikoITEpO24obi5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihvKXtyZXR1cm4gZSh0aGlzLG8pfX0pfSw5NjYyMDooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDI5ODUpLGU9dCgxMDg3NSkscz10KDQyMDk0KSxvPSJlbmRzV2l0aCIs'@; put 'dT0iIltvXTtuKG4uUCtuLkYqdCg4ODUyKShvKSwiU3RyaW5nIix7ZW5kc1dpdGg6ZnVuY3Rpb24oaSl7dmFyIHA9cyh0aGlzLGksbykseT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCx2PWUocC5sZW5ndGgpLGc9dm9pZCAwPT09eT92Ok1hdGgubWluKGUoeSksdiks'@; put 'eD1TdHJpbmcoaSk7cmV0dXJuIHU/dS5jYWxsKHAseCxnKTpwLnNsaWNlKGcteC5sZW5ndGgsZyk9PT14fX0pfSw0NTE3NzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3QoMjkzOTUpKCJmaXhlZCIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcywidHQiLCIiLCIi'@; put 'KX19KX0sNzM2OTQ6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDI5Mzk1KSgiZm9udGNvbG9yIixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIG4odGhpcywiZm9udCIsImNvbG9yIixzKX19KX0sMzc2NDg6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDI5Mzk1KSgiZm9u'@; put 'dHNpemUiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gbih0aGlzLCJmb250Iiwic2l6ZSIscyl9fSl9LDUwMTkxOihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KSxlPXQoOTIzMzcpLHM9U3RyaW5nLmZyb21DaGFyQ29kZSxvPVN0cmluZy5mcm9tQ29kZVBvaW50O24obi5T'@; put 'K24uRiooISFvJiYxIT1vLmxlbmd0aCksIlN0cmluZyIse2Zyb21Db2RlUG9pbnQ6ZnVuY3Rpb24oZil7Zm9yKHZhciB2LGk9W10scD1hcmd1bWVudHMubGVuZ3RoLHk9MDtwPnk7KXtpZih2PSthcmd1bWVudHNbeSsrXSxlKHYsMTExNDExMSkhPT12KXRocm93IFJhbmdlRXJyb3IodisiIGlz'@; put 'IG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQiKTtpLnB1c2godjw2NTUzNj9zKHYpOnMoNTUyOTYrKCh2LT02NTUzNik+PjEwKSx2JTEwMjQrNTYzMjApKX1yZXR1cm4gaS5qb2luKCIiKX19KX0sNjI4NTA6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyOTg1KSxlPXQoNDIwOTQpLHM9'@; put 'ImluY2x1ZGVzIjtuKG4uUCtuLkYqdCg4ODUyKShzKSwiU3RyaW5nIix7aW5jbHVkZXM6ZnVuY3Rpb24odSl7cmV0dXJuISF+ZSh0aGlzLHUscykuaW5kZXhPZih1LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMjc3OTU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt0KDI5Mzk1KSgiaXRhbGljcyIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcywiaSIsIiIsIiIpfX0pfSwzOTExNTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMjQ0OTYpKCEwKTt0KDQyOTIzKShTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oZSl7'@; put 'dGhpcy5fdD1TdHJpbmcoZSksdGhpcy5faT0wfSxmdW5jdGlvbigpe3ZhciBvLGU9dGhpcy5fdCxzPXRoaXMuX2k7cmV0dXJuIHM+PWUubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KG89bihlLHMpLHRoaXMuX2krPW8ubGVuZ3RoLHt2YWx1ZTpvLGRvbmU6ITF9KX0pfSw0NTMxOihj'@; put 'LGwsdCk9PnsidXNlIHN0cmljdCI7dCgyOTM5NSkoImxpbmsiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gbih0aGlzLCJhIiwiaHJlZiIscyl9fSl9LDk4MzA2OihjLGwsdCk9Pnt2YXIgbj10KDQyOTg1KSxlPXQoMjIxMTApLHM9dCgxMDg3NSk7bihuLlMsIlN0cmlu'@; put 'ZyIse3JhdzpmdW5jdGlvbih1KXtmb3IodmFyIGY9ZSh1LnJhdyksaT1zKGYubGVuZ3RoKSxwPWFyZ3VtZW50cy5sZW5ndGgseT1bXSx2PTA7aT52Oyl5LnB1c2goU3RyaW5nKGZbdisrXSkpLHY8cCYmeS5wdXNoKFN0cmluZyhhcmd1bWVudHNbdl0pKTtyZXR1cm4geS5qb2luKCIiKX19KX0s'@; put 'MTA4MjM6KGMsbCx0KT0+e3ZhciBuPXQoNDI5ODUpO24obi5QLCJTdHJpbmciLHtyZXBlYXQ6dCg2ODU5NSl9KX0sMjM2MDU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDI5Mzk1KSgic21hbGwiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsInNtYWxsIiwi'@; put 'IiwiIil9fSl9LDE3NzMyOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0Mjk4NSksZT10KDEwODc1KSxzPXQoNDIwOTQpLG89InN0YXJ0c1dpdGgiLHU9IiJbb107bihuLlArbi5GKnQoODg1MikobyksIlN0cmluZyIse3N0YXJ0c1dpdGg6ZnVuY3Rpb24oaSl7dmFyIHA9cyh0aGlz'@; put 'LGksbykseT1lKE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLHAubGVuZ3RoKSksdj1TdHJpbmcoaSk7cmV0dXJuIHU/dS5jYWxsKHAsdix5KTpwLnNsaWNlKHkseSt2Lmxlbmd0aCk9PT12fX0pfSw2NzgwOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCgy'@; put 'OTM5NSkoInN0cmlrZSIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcywic3RyaWtlIiwiIiwiIil9fSl9LDY5OTM3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCgyOTM5NSkoInN1YiIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4odGhp'@; put 'cywic3ViIiwiIiwiIil9fSl9LDEwNTExOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCgyOTM5NSkoInN1cCIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcywic3VwIiwiIiwiIil9fSl9LDY0NTY0OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCgyOTU5OSkoInRy'@; put 'aW0iLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsMyl9fSl9LDk1NzY3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCgzODE2KSxlPXQoNzkxODEpLHM9dCg2NzA1Nyksbz10KDQyOTg1KSx1PXQoNzcyMzQpLGY9dCg4NDcyOCkuS0VZLGk9dCg3NDI1'@; put 'MykscD10KDM4MjUpLHk9dCgyMjk0Myksdj10KDkzOTUzKSxnPXQoODYzMTQpLHg9dCgyODc4NyksRT10KDM2MDc0KSxqPXQoNTU0MSksdz10KDQzMDIpLFI9dCgyNzAwNyksRj10KDU1Mjg2KSxCPXQoMjA1MDgpLGI9dCgyMjExMCksTz10KDIxNjg5KSxTPXQoOTA2ODEpLEM9dCg0MjUwMyks'@; put 'Sz10KDM5MzI3KSxVPXQoMTg2OTMpLFo9dCg2NDU0OCksdHQ9dCg5OTI3NSksXz10KDQ3MTg0KSxudD1VLmYsc3Q9dHQuZixYPUsuZixWPW4uU3ltYm9sLFE9bi5KU09OLFk9USYmUS5zdHJpbmdpZnksZnQ9InByb3RvdHlwZSIsdnQ9ZygiX2hpZGRlbiIpLE10PWcoInRvUHJpbWl0aXZlIiks'@; put 'RXQ9e30ucHJvcGVydHlJc0VudW1lcmFibGUsRnQ9cCgic3ltYm9sLXJlZ2lzdHJ5IiksanQ9cCgic3ltYm9scyIpLFh0PXAoIm9wLXN5bWJvbHMiKSxCdD1PYmplY3RbZnRdLFF0PSJmdW5jdGlvbiI9PXR5cGVvZiBWJiYhIVouZixybj1uLlFPYmplY3Qsbm49IXJufHwhcm5bZnRdfHwhcm5b'@; put 'ZnRdLmZpbmRDaGlsZCxhbj1zJiZpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPUMoc3Qoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc3QodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24oSSxULEEpe3ZhciBrPW50KEJ0LFQpO2smJmRlbGV0ZSBCdFtUXSxzdChJLFQs'@; put 'QSksayYmSSE9PUJ0JiZzdChCdCxULGspfTpzdCxmbj1mdW5jdGlvbihJKXt2YXIgVD1qdFtJXT1DKFZbZnRdKTtyZXR1cm4gVC5faz1JLFR9LG9uPVF0JiYic3ltYm9sIj09dHlwZW9mIFYuaXRlcmF0b3I/ZnVuY3Rpb24oSSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBJfTpmdW5jdGlvbihJ'@; put 'KXtyZXR1cm4gSSBpbnN0YW5jZW9mIFZ9LFl0PWZ1bmN0aW9uKFQsQSxrKXtyZXR1cm4gVD09PUJ0JiZZdChYdCxBLGspLFIoVCksQT1PKEEsITApLFIoayksZShqdCxBKT8oay5lbnVtZXJhYmxlPyhlKFQsdnQpJiZUW3Z0XVtBXSYmKFRbdnRdW0FdPSExKSxrPUMoayx7ZW51bWVyYWJsZTpT'@; put 'KDAsITEpfSkpOihlKFQsdnQpfHxzdChULHZ0LFMoMSx7fSkpLFRbdnRdW0FdPSEwKSxhbihULEEsaykpOnN0KFQsQSxrKX0sWnQ9ZnVuY3Rpb24oVCxBKXtSKFQpO2Zvcih2YXIgb3Qsaz1qKEE9YihBKSksSj0wLHo9ay5sZW5ndGg7ej5KOylZdChULG90PWtbSisrXSxBW290XSk7cmV0dXJu'@; put 'IFR9LGxuPWZ1bmN0aW9uKFQpe3ZhciBBPUV0LmNhbGwodGhpcyxUPU8oVCwhMCkpO3JldHVybiEodGhpcz09PUJ0JiZlKGp0LFQpJiYhZShYdCxUKSkmJighKEF8fCFlKHRoaXMsVCl8fCFlKGp0LFQpfHxlKHRoaXMsdnQpJiZ0aGlzW3Z0XVtUXSl8fEEpfSxkPWZ1bmN0aW9uKFQsQSl7aWYo'@; put 'VD1iKFQpLEE9TyhBLCEwKSxUIT09QnR8fCFlKGp0LEEpfHxlKFh0LEEpKXt2YXIgaz1udChULEEpO3JldHVybiBrJiZlKGp0LEEpJiYhKGUoVCx2dCkmJlRbdnRdW0FdKSYmKGsuZW51bWVyYWJsZT0hMCksa319LHI9ZnVuY3Rpb24oVCl7Zm9yKHZhciB6LEE9WChiKFQpKSxrPVtdLEo9MDtB'@; put 'Lmxlbmd0aD5KOykhZShqdCx6PUFbSisrXSkmJnohPXZ0JiZ6IT1mJiZrLnB1c2goeik7cmV0dXJuIGt9LGE9ZnVuY3Rpb24oVCl7Zm9yKHZhciBvdCxBPVQ9PT1CdCxrPVgoQT9YdDpiKFQpKSxKPVtdLHo9MDtrLmxlbmd0aD56OyllKGp0LG90PWtbeisrXSkmJighQXx8ZShCdCxvdCkpJiZK'@; put 'LnB1c2goanRbb3RdKTtyZXR1cm4gSn07UXR8fCh1KChWPWZ1bmN0aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIFYpdGhyb3cgVHlwZUVycm9yKCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IhIik7dmFyIFQ9dihhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCksQT1m'@; put 'dW5jdGlvbihrKXt0aGlzPT09QnQmJkEuY2FsbChYdCxrKSxlKHRoaXMsdnQpJiZlKHRoaXNbdnRdLFQpJiYodGhpc1t2dF1bVF09ITEpLGFuKHRoaXMsVCxTKDEsaykpfTtyZXR1cm4gcyYmbm4mJmFuKEJ0LFQse2NvbmZpZ3VyYWJsZTohMCxzZXQ6QX0pLGZuKFQpfSlbZnRdLCJ0b1N0cmlu'@; put 'ZyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa30pLFUuZj1kLHR0LmY9WXQsdCgyMDYxNikuZj1LLmY9cix0KDE0NjgyKS5mPWxuLFouZj1hLHMmJiF0KDQ0NjEpJiZ1KEJ0LCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsbG4sITApLHguZj1mdW5jdGlvbihJKXtyZXR1cm4gZm4oZyhJKSl9KSxv'@; put 'KG8uRytvLlcrby5GKiFRdCx7U3ltYm9sOlZ9KTtmb3IodmFyIG09Imhhc0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzIi5zcGxpdCgiLCIpLEQ9'@; put 'MDttLmxlbmd0aD5EOylnKG1bRCsrXSk7Zm9yKHZhciAkPV8oZy5zdG9yZSksaD0wOyQubGVuZ3RoPmg7KUUoJFtoKytdKTtvKG8uUytvLkYqIVF0LCJTeW1ib2wiLHtmb3I6ZnVuY3Rpb24oSSl7cmV0dXJuIGUoRnQsSSs9IiIpP0Z0W0ldOkZ0W0ldPVYoSSl9LGtleUZvcjpmdW5jdGlvbihU'@; put 'KXtpZighb24oVCkpdGhyb3cgVHlwZUVycm9yKFQrIiBpcyBub3QgYSBzeW1ib2whIik7Zm9yKHZhciBBIGluIEZ0KWlmKEZ0W0FdPT09VClyZXR1cm4gQX0sdXNlU2V0dGVyOmZ1bmN0aW9uKCl7bm49ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe25uPSExfX0pLG8oby5TK28uRiohUXQsIk9i'@; put 'amVjdCIse2NyZWF0ZTpmdW5jdGlvbihULEEpe3JldHVybiB2b2lkIDA9PT1BP0MoVCk6WnQoQyhUKSxBKX0sZGVmaW5lUHJvcGVydHk6WXQsZGVmaW5lUHJvcGVydGllczpadCxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZCxnZXRPd25Qcm9wZXJ0eU5hbWVzOnIsZ2V0T3duUHJvcGVydHlT'@; put 'eW1ib2xzOmF9KTt2YXIgUD1pKGZ1bmN0aW9uKCl7Wi5mKDEpfSk7byhvLlMrby5GKlAsIk9iamVjdCIse2dldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbihUKXtyZXR1cm4gWi5mKEIoVCkpfX0pLFEmJm8oby5TK28uRiooIVF0fHxpKGZ1bmN0aW9uKCl7dmFyIEk9VigpO3JldHVybiJb'@; put 'bnVsbF0iIT1ZKFtJXSl8fCJ7fSIhPVkoe2E6SX0pfHwie30iIT1ZKE9iamVjdChJKSl9KSksIkpTT04iLHtzdHJpbmdpZnk6ZnVuY3Rpb24oVCl7Zm9yKHZhciBKLHosQT1bVF0saz0xO2FyZ3VtZW50cy5sZW5ndGg+azspQS5wdXNoKGFyZ3VtZW50c1trKytdKTtpZih6PUo9QVsxXSwoRihK'@; put 'KXx8dm9pZCAwIT09VCkmJiFvbihUKSlyZXR1cm4gdyhKKXx8KEo9ZnVuY3Rpb24ob3QsY3Qpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB6JiYoY3Q9ei5jYWxsKHRoaXMsb3QsY3QpKSwhb24oY3QpKXJldHVybiBjdH0pLEFbMV09SixZLmFwcGx5KFEsQSl9fSksVltmdF1bTXRdfHx0KDg3NzI4'@; put 'KShWW2Z0XSxNdCxWW2Z0XS52YWx1ZU9mKSx5KFYsIlN5bWJvbCIpLHkoTWF0aCwiTWF0aCIsITApLHkobi5KU09OLCJKU09OIiwhMCl9LDMwMTQ3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIHcsbj10KDM4MTYpLGU9dCgxMDA1MCkoMCkscz10KDc3MjM0KSxvPXQoODQ3MjgpLHU9dCgz'@; put 'NTM0NSksZj10KDIzNjU3KSxpPXQoNTUyODYpLHA9dCgxNjE2KSx5PXQoMTYxNiksdj0hbi5BY3RpdmVYT2JqZWN0JiYiQWN0aXZlWE9iamVjdCJpbiBuLGc9IldlYWtNYXAiLHg9by5nZXRXZWFrLEU9T2JqZWN0LmlzRXh0ZW5zaWJsZSxqPWYudWZzdG9yZSxSPWZ1bmN0aW9uKGIpe3JldHVy'@; put 'biBmdW5jdGlvbigpe3JldHVybiBiKHRoaXMsYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sRj17Z2V0OmZ1bmN0aW9uKE8pe2lmKGkoTykpe3ZhciBTPXgoTyk7cmV0dXJuITA9PT1TP2oocCh0aGlzLGcpKS5nZXQoTyk6Uz9TW3RoaXMuX2ldOnZvaWQgMH19LHNl'@; put 'dDpmdW5jdGlvbihPLFMpe3JldHVybiBmLmRlZihwKHRoaXMsZyksTyxTKX19LEI9Yy5leHBvcnRzPXQoNDU3OTUpKGcsUixGLGYsITAsITApO3kmJnYmJih1KCh3PWYuZ2V0Q29uc3RydWN0b3IoUixnKSkucHJvdG90eXBlLEYpLG8uTkVFRD0hMCxlKFsiZGVsZXRlIiwiaGFzIiwiZ2V0Iiwi'@; put 'c2V0Il0sZnVuY3Rpb24oYil7dmFyIE89Qi5wcm90b3R5cGUsUz1PW2JdO3MoTyxiLGZ1bmN0aW9uKEMsSyl7aWYoaShDKSYmIUUoQykpe3RoaXMuX2Z8fCh0aGlzLl9mPW5ldyB3KTt2YXIgVT10aGlzLl9mW2JdKEMsSyk7cmV0dXJuInNldCI9PWI/dGhpczpVfXJldHVybiBTLmNhbGwodGhp'@; put 'cyxDLEspfSl9KSl9LDUzMzY0OihjLGwsdCk9Pnt2YXIgbj10KDUwMTMzKSxlPXQoMjcwMDcpLHM9bi5rZXksbz1uLnNldDtuLmV4cCh7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24oZixpLHAseSl7byhmLGksZShwKSxzKHkpKX19KX0sNTE0MzI6KGMsbCx0KT0+e3ZhciBuPXQoNTAxMzMpLGU9'@; put 'dCgyNzAwNykscz1uLmtleSxvPW4ubWFwLHU9bi5zdG9yZTtuLmV4cCh7ZGVsZXRlTWV0YWRhdGE6ZnVuY3Rpb24oaSxwKXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOnMoYXJndW1lbnRzWzJdKSx2PW8oZShwKSx5LCExKTtpZih2b2lkIDA9PT12fHwhdi5kZWxldGUoaSkpcmV0'@; put 'dXJuITE7aWYodi5zaXplKXJldHVybiEwO3ZhciBnPXUuZ2V0KHApO3JldHVybiBnLmRlbGV0ZSh5KSwhIWcuc2l6ZXx8dS5kZWxldGUocCl9fSl9LDg0NDE2OihjLGwsdCk9Pnt2YXIgbj10KDk4MTg0KSxlPXQoOTQ5MCkscz10KDUwMTMzKSxvPXQoMjcwMDcpLHU9dCg0NjgpLGY9cy5rZXlz'@; put 'LGk9cy5rZXkscD1mdW5jdGlvbih5LHYpe3ZhciBnPWYoeSx2KSx4PXUoeSk7aWYobnVsbD09PXgpcmV0dXJuIGc7dmFyIEU9cCh4LHYpO3JldHVybiBFLmxlbmd0aD9nLmxlbmd0aD9lKG5ldyBuKGcuY29uY2F0KEUpKSk6RTpnfTtzLmV4cCh7Z2V0TWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHYp'@; put 'e3JldHVybiBwKG8odiksYXJndW1lbnRzLmxlbmd0aDwyP3ZvaWQgMDppKGFyZ3VtZW50c1sxXSkpfX0pfSwyNjU2MjooYyxsLHQpPT57dmFyIG49dCg1MDEzMyksZT10KDI3MDA3KSxzPXQoNDY4KSxvPW4uaGFzLHU9bi5nZXQsZj1uLmtleSxpPWZ1bmN0aW9uKHAseSx2KXtpZihvKHAseSx2'@; put 'KSlyZXR1cm4gdShwLHksdik7dmFyIHg9cyh5KTtyZXR1cm4gbnVsbCE9PXg/aShwLHgsdik6dm9pZCAwfTtuLmV4cCh7Z2V0TWV0YWRhdGE6ZnVuY3Rpb24oeSx2KXtyZXR1cm4gaSh5LGUodiksYXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpmKGFyZ3VtZW50c1syXSkpfX0pfSwzMjIxMzoo'@; put 'YyxsLHQpPT57dmFyIG49dCg1MDEzMyksZT10KDI3MDA3KSxzPW4ua2V5cyxvPW4ua2V5O24uZXhwKHtnZXRPd25NZXRhZGF0YUtleXM6ZnVuY3Rpb24oZil7cmV0dXJuIHMoZShmKSxhcmd1bWVudHMubGVuZ3RoPDI/dm9pZCAwOm8oYXJndW1lbnRzWzFdKSl9fSl9LDk4NjgxOihjLGwsdCk9'@; put 'Pnt2YXIgbj10KDUwMTMzKSxlPXQoMjcwMDcpLHM9bi5nZXQsbz1uLmtleTtuLmV4cCh7Z2V0T3duTWV0YWRhdGE6ZnVuY3Rpb24oZixpKXtyZXR1cm4gcyhmLGUoaSksYXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpvKGFyZ3VtZW50c1syXSkpfX0pfSw2MzQ3MTooYyxsLHQpPT57dmFyIG49'@; put 'dCg1MDEzMyksZT10KDI3MDA3KSxzPXQoNDY4KSxvPW4uaGFzLHU9bi5rZXksZj1mdW5jdGlvbihpLHAseSl7aWYobyhpLHAseSkpcmV0dXJuITA7dmFyIGc9cyhwKTtyZXR1cm4gbnVsbCE9PWcmJmYoaSxnLHkpfTtuLmV4cCh7aGFzTWV0YWRhdGE6ZnVuY3Rpb24ocCx5KXtyZXR1cm4gZihw'@; put 'LGUoeSksYXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDp1KGFyZ3VtZW50c1syXSkpfX0pfSw0MzI5OihjLGwsdCk9Pnt2YXIgbj10KDUwMTMzKSxlPXQoMjcwMDcpLHM9bi5oYXMsbz1uLmtleTtuLmV4cCh7aGFzT3duTWV0YWRhdGE6ZnVuY3Rpb24oZixpKXtyZXR1cm4gcyhmLGUoaSksYXJn'@; put 'dW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpvKGFyZ3VtZW50c1syXSkpfX0pfSwyNTE1OTooYyxsLHQpPT57dmFyIG49dCg1MDEzMyksZT10KDI3MDA3KSxzPXQoMjQ5NjMpLG89bi5rZXksdT1uLnNldDtuLmV4cCh7bWV0YWRhdGE6ZnVuY3Rpb24oaSxwKXtyZXR1cm4gZnVuY3Rpb24odixnKXt1'@; put 'KGkscCwodm9pZCAwIT09Zz9lOnMpKHYpLG8oZykpfX19KX0sOTExODE6KGMsbCx0KT0+e2Zvcih2YXIgbj10KDU2OTk3KSxlPXQoNDcxODQpLHM9dCg3NzIzNCksbz10KDM4MTYpLHU9dCg4NzcyOCksZj10KDg3MjM0KSxpPXQoODYzMTQpLHA9aSgiaXRlcmF0b3IiKSx5PWkoInRvU3RyaW5n'@; put 'VGFnIiksdj1mLkFycmF5LGc9e0NTU1J1bGVMaXN0OiEwLENTU1N0eWxlRGVjbGFyYXRpb246ITEsQ1NTVmFsdWVMaXN0OiExLENsaWVudFJlY3RMaXN0OiExLERPTVJlY3RMaXN0OiExLERPTVN0cmluZ0xpc3Q6ITEsRE9NVG9rZW5MaXN0OiEwLERhdGFUcmFuc2Zlckl0ZW1MaXN0OiExLEZp'@; put 'bGVMaXN0OiExLEhUTUxBbGxDb2xsZWN0aW9uOiExLEhUTUxDb2xsZWN0aW9uOiExLEhUTUxGb3JtRWxlbWVudDohMSxIVE1MU2VsZWN0RWxlbWVudDohMSxNZWRpYUxpc3Q6ITAsTWltZVR5cGVBcnJheTohMSxOYW1lZE5vZGVNYXA6ITEsTm9kZUxpc3Q6ITAsUGFpbnRSZXF1ZXN0TGlzdDoh'@; put 'MSxQbHVnaW46ITEsUGx1Z2luQXJyYXk6ITEsU1ZHTGVuZ3RoTGlzdDohMSxTVkdOdW1iZXJMaXN0OiExLFNWR1BhdGhTZWdMaXN0OiExLFNWR1BvaW50TGlzdDohMSxTVkdTdHJpbmdMaXN0OiExLFNWR1RyYW5zZm9ybUxpc3Q6ITEsU291cmNlQnVmZmVyTGlzdDohMSxTdHlsZVNoZWV0TGlz'@; put 'dDohMCxUZXh0VHJhY2tDdWVMaXN0OiExLFRleHRUcmFja0xpc3Q6ITEsVG91Y2hMaXN0OiExfSx4PWUoZyksRT0wO0U8eC5sZW5ndGg7RSsrKXt2YXIgQixqPXhbRV0sdz1nW2pdLFI9b1tqXSxGPVImJlIucHJvdG90eXBlO2lmKEYmJihGW3BdfHx1KEYscCx2KSxGW3ldfHx1KEYseSxqKSxm'@; put 'W2pdPXYsdykpZm9yKEIgaW4gbilGW0JdfHxzKEYsQixuW0JdLCEwKX19LDEyMDMwOmM9PnsidXNlIHN0cmljdCI7Yy5leHBvcnRzPUpTT04ucGFyc2UoJ3sibG9jYWxlIjoiZW4iLCJkYXRlIjp7ImNhIjpbImdyZWdvcnkiLCJidWRkaGlzdCIsImNoaW5lc2UiLCJjb3B0aWMiLCJkYW5naSIs'@; put 'ImV0aGlvYWEiLCJldGhpb3BpYyIsImdlbmVyaWMiLCJoZWJyZXciLCJpbmRpYW4iLCJpc2xhbWljIiwiaXNsYW1pY2MiLCJqYXBhbmVzZSIsInBlcnNpYW4iLCJyb2MiXSwiaG91ck5vMCI6dHJ1ZSwiaG91cjEyIjp0cnVlLCJmb3JtYXRzIjp7InNob3J0IjoiezF9LCB7MH0iLCJtZWRpdW0i'@; put 'OiJ7MX0sIHswfSIsImZ1bGwiOiJ7MX0gXCdhdFwnIHswfSIsImxvbmciOiJ7MX0gXCdhdFwnIHswfSIsImF2YWlsYWJsZUZvcm1hdHMiOnsiZCI6ImQiLCJFIjoiY2NjIiwiRWQiOiJkIEUiLCJFaG0iOiJFIGg6bW0gYSIsIkVIbSI6IkUgSEg6bW0iLCJFaG1zIjoiRSBoOm1tOnNzIGEiLCJF'@; put 'SG1zIjoiRSBISDptbTpzcyIsIkd5IjoieSBHIiwiR3lNTU0iOiJNTU0geSBHIiwiR3lNTU1kIjoiTU1NIGQsIHkgRyIsIkd5TU1NRWQiOiJFLCBNTU0gZCwgeSBHIiwiaCI6ImggYSIsIkgiOiJISCIsImhtIjoiaDptbSBhIiwiSG0iOiJISDptbSIsImhtcyI6Img6bW06c3MgYSIsIkhtcyI6'@; put 'IkhIOm1tOnNzIiwiaG1zdiI6Img6bW06c3MgYSB2IiwiSG1zdiI6IkhIOm1tOnNzIHYiLCJobXYiOiJoOm1tIGEgdiIsIkhtdiI6IkhIOm1tIHYiLCJNIjoiTCIsIk1kIjoiTS9kIiwiTUVkIjoiRSwgTS9kIiwiTU1NIjoiTExMIiwiTU1NZCI6Ik1NTSBkIiwiTU1NRWQiOiJFLCBNTU0gZCIs'@; put 'Ik1NTU1kIjoiTU1NTSBkIiwibXMiOiJtbTpzcyIsInkiOiJ5IiwieU0iOiJNL3kiLCJ5TWQiOiJNL2QveSIsInlNRWQiOiJFLCBNL2QveSIsInlNTU0iOiJNTU0geSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TU1NRWQiOiJFLCBNTU0gZCwgeSIsInlNTU1NIjoiTU1NTSB5IiwieVFRUSI6IlFR'@; put 'USB5IiwieVFRUVEiOiJRUVFRIHkifSwiZGF0ZUZvcm1hdHMiOnsieU1NTU1FRUVFZCI6IkVFRUUsIE1NTU0gZCwgeSIsInlNTU1NZCI6Ik1NTU0gZCwgeSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TWQiOiJNL2QveXkifSwidGltZUZvcm1hdHMiOnsiaG1tc3N6enp6IjoiaDptbTpzcyBhIHp6'@; put 'enoiLCJobXN6IjoiaDptbTpzcyBhIHoiLCJobXMiOiJoOm1tOnNzIGEiLCJobSI6Img6bW0gYSJ9fSwiY2FsZW5kYXJzIjp7ImJ1ZGRoaXN0Ijp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sInNob3J0IjpbIkph'@; put 'biIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIi'@; put 'LCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRu'@; put 'ZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJCRSJdLCJzaG9ydCI6WyJCRSJdLCJsb25nIjpbIkJFIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJjaGluZXNlIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIs'@; put 'IjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk1vMSIsIk1vMiIsIk1vMyIsIk1vNCIsIk1vNSIsIk1vNiIsIk1vNyIsIk1vOCIsIk1vOSIsIk1vMTAiLCJNbzExIiwiTW8xMiJdLCJsb25nIjpbIk1vbnRoMSIsIk1vbnRoMiIsIk1vbnRo'@; put 'MyIsIk1vbnRoNCIsIk1vbnRoNSIsIk1vbnRoNiIsIk1vbnRoNyIsIk1vbnRoOCIsIk1vbnRoOSIsIk1vbnRoMTAiLCJNb250aDExIiwiTW9udGgxMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJX'@; put 'ZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiY29wdGljIjp7Im1vbnRocyI6eyJuYXJy'@; put 'b3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiXSwic2hvcnQiOlsiVG91dCIsIkJhYmEiLCJIYXRvciIsIktpYWhrIiwiVG9iYSIsIkFtc2hpciIsIkJhcmFtaGF0IiwiQmFyYW1vdWRhIiwiQmFzaGFucyIsIlBhb25hIiwiRXBlcCIs'@; put 'Ik1lc3JhIiwiTmFzaWUiXSwibG9uZyI6WyJUb3V0IiwiQmFiYSIsIkhhdG9yIiwiS2lhaGsiLCJUb2JhIiwiQW1zaGlyIiwiQmFyYW1oYXQiLCJCYXJhbW91ZGEiLCJCYXNoYW5zIiwiUGFvbmEiLCJFcGVwIiwiTWVzcmEiLCJOYXNpZSJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJU'@; put 'IiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJy'@; put 'b3ciOlsiRVJBMCIsIkVSQTEiXSwic2hvcnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZGFuZ2kiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIs'@; put 'IjkiLCIxMCIsIjExIiwiMTIiXSwic2hvcnQiOlsiTW8xIiwiTW8yIiwiTW8zIiwiTW80IiwiTW81IiwiTW82IiwiTW83IiwiTW84IiwiTW85IiwiTW8xMCIsIk1vMTEiLCJNbzEyIl0sImxvbmciOlsiTW9udGgxIiwiTW9udGgyIiwiTW9udGgzIiwiTW9udGg0IiwiTW9udGg1IiwiTW9udGg2'@; put 'IiwiTW9udGg3IiwiTW9udGg4IiwiTW9udGg5IiwiTW9udGgxMCIsIk1vbnRoMTEiLCJNb250aDEyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25n'@; put 'IjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJldGhpb3BpYyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1Iiwi'@; put 'NiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIl0sInNob3J0IjpbIk1lc2tlcmVtIiwiVGVrZW10IiwiSGVkYXIiLCJUYWhzYXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1bWVuIl0sImxv'@; put 'bmciOlsiTWVza2VyZW0iLCJUZWtlbXQiLCJIZWRhciIsIlRhaHNhcyIsIlRlciIsIllla2F0aXQiLCJNZWdhYml0IiwiTWlhemlhIiwiR2VuYm90IiwiU2VuZSIsIkhhbWxlIiwiTmVoYXNzZSIsIlBhZ3VtZW4iXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIs'@; put 'IlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkVSQTAiLCJF'@; put 'UkExIl0sInNob3J0IjpbIkVSQTAiLCJFUkExIl0sImxvbmciOlsiRVJBMCIsIkVSQTEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImV0aGlvYWEiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjEx'@; put 'IiwiMTIiLCIxMyJdLCJzaG9ydCI6WyJNZXNrZXJlbSIsIlRla2VtdCIsIkhlZGFyIiwiVGFoc2FzIiwiVGVyIiwiWWVrYXRpdCIsIk1lZ2FiaXQiLCJNaWF6aWEiLCJHZW5ib3QiLCJTZW5lIiwiSGFtbGUiLCJOZWhhc3NlIiwiUGFndW1lbiJdLCJsb25nIjpbIk1lc2tlcmVtIiwiVGVrZW10'@; put 'IiwiSGVkYXIiLCJUYWhzYXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1bWVuIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1v'@; put 'biIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJFUkEwIl0sInNob3J0IjpbIkVSQTAiXSwibG9uZyI6'@; put 'WyJFUkEwIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJnZW5lcmljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk0wMSIsIk0wMiIsIk0wMyIsIk0wNCIsIk0w'@; put 'NSIsIk0wNiIsIk0wNyIsIk0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdLCJsb25nIjpbIk0wMSIsIk0wMiIsIk0wMyIsIk0wNCIsIk0wNSIsIk0wNiIsIk0wNyIsIk0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQi'@; put 'LCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiRVJB'@; put 'MCIsIkVSQTEiXSwic2hvcnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZ3JlZ29yeSI6eyJtb250aHMiOnsibmFycm93IjpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8i'@; put 'LCJOIiwiRCJdLCJzaG9ydCI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwibG9uZyI6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3Qi'@; put 'LCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJN'@; put 'b25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiQiIsIkEiLCJCQ0UiLCJDRSJdLCJzaG9ydCI6WyJCQyIsIkFEIiwiQkNFIiwiQ0UiXSwibG9uZyI6WyJCZWZvcmUgQ2hyaXN0IiwiQW5ubyBEb21p'@; put 'bmkiLCJCZWZvcmUgQ29tbW9uIEVyYSIsIkNvbW1vbiBFcmEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImhlYnJldyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiNyJd'@; put 'LCJzaG9ydCI6WyJUaXNocmkiLCJIZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXSwibG9uZyI6WyJUaXNocmkiLCJIZXNodmFuIiwiS2lzbGV2IiwiVGV2'@; put 'ZXQiLCJTaGV2YXQiLCJBZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwi'@; put 'VGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFNIl0sInNob3J0IjpbIkFNIl0sImxvbmciOlsiQU0iXX0sImRheVBlcmlvZHMi'@; put 'OnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImluZGlhbiI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLCJzaG9ydCI6WyJDaGFpdHJhIiwiVmFpc2FraGEiLCJKeWFpc3RoYSIsIkFzYWRoYSIsIlNyYXZhbmEi'@; put 'LCJCaGFkcmEiLCJBc3ZpbmEiLCJLYXJ0aWthIiwiQWdyYWhheWFuYSIsIlBhdXNhIiwiTWFnaGEiLCJQaGFsZ3VuYSJdLCJsb25nIjpbIkNoYWl0cmEiLCJWYWlzYWtoYSIsIkp5YWlzdGhhIiwiQXNhZGhhIiwiU3JhdmFuYSIsIkJoYWRyYSIsIkFzdmluYSIsIkthcnRpa2EiLCJBZ3JhaGF5'@; put 'YW5hIiwiUGF1c2EiLCJNYWdoYSIsIlBoYWxndW5hIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNk'@; put 'YXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJTYWthIl0sInNob3J0IjpbIlNha2EiXSwibG9uZyI6WyJTYWthIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJpc2xhbWljIjp7Im1vbnRocyI6'@; put 'eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJhbS4iLCJTaGF3LiIsIkRodVx1MDJiYmwt'@; put 'US4iLCJEaHVcdTAyYmJsLUguIl0sImxvbmciOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHVcdTAyYmJsLVFpXHUwMmJi'@; put 'ZGFoIiwiRGh1XHUwMmJibC1IaWpqYWgiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldl'@; put 'ZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImlzbGFtaWNjIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsi'@; put 'MSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJhbS4iLCJTaGF3LiIsIkRodVx1MDJiYmwtUS4iLCJEaHVcdTAy'@; put 'YmJsLUguIl0sImxvbmciOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHVcdTAyYmJsLVFpXHUwMmJiZGFoIiwiRGh1XHUw'@; put 'MmJibC1IaWpqYWgiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRo'@; put 'dXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImphcGFuZXNlIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwi'@; put 'QSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sInNob3J0IjpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJN'@; put 'YXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIs'@; put 'IlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJUYWlrYSAoNjQ1XHUyMDEzNjUwKSIsIkhha3VjaGkgKDY1MFx1MjAxMzY3MSkiLCJIYWt1aFx1MDE0'@; put 'ZCAoNjcyXHUyMDEzNjg2KSIsIlNodWNoXHUwMTRkICg2ODZcdTIwMTM3MDEpIiwiVGFpaFx1MDE0ZCAoNzAxXHUyMDEzNzA0KSIsIktlaXVuICg3MDRcdTIwMTM3MDgpIiwiV2FkXHUwMTRkICg3MDhcdTIwMTM3MTUpIiwiUmVpa2kgKDcxNVx1MjAxMzcxNykiLCJZXHUwMTRkclx1MDE0ZCAo'@; put 'NzE3XHUyMDEzNzI0KSIsIkppbmtpICg3MjRcdTIwMTM3MjkpIiwiVGVucHlcdTAxNGQgKDcyOVx1MjAxMzc0OSkiLCJUZW5weVx1MDE0ZC1rYW1wXHUwMTRkICg3NDktNzQ5KSIsIlRlbnB5XHUwMTRkLXNoXHUwMTRkaFx1MDE0ZCAoNzQ5LTc1NykiLCJUZW5weVx1MDE0ZC1oXHUwMTRkamkg'@; put 'KDc1Ny03NjUpIiwiVGVucHlcdTAxNGQtamluZ28gKDc2NS03NjcpIiwiSmluZ28ta2VpdW4gKDc2Ny03NzApIiwiSFx1MDE0ZGtpICg3NzBcdTIwMTM3ODApIiwiVGVuLVx1MDE0ZCAoNzgxLTc4MikiLCJFbnJ5YWt1ICg3ODJcdTIwMTM4MDYpIiwiRGFpZFx1MDE0ZCAoODA2XHUyMDEzODEw'@; put 'KSIsIktcdTAxNGRuaW4gKDgxMFx1MjAxMzgyNCkiLCJUZW5jaFx1MDE0ZCAoODI0XHUyMDEzODM0KSIsIkpcdTAxNGR3YSAoODM0XHUyMDEzODQ4KSIsIkthalx1MDE0ZCAoODQ4XHUyMDEzODUxKSIsIk5pbmp1ICg4NTFcdTIwMTM4NTQpIiwiU2Fpa1x1MDE0ZCAoODU0XHUyMDEzODU3KSIs'@; put 'IlRlbi1hbiAoODU3LTg1OSkiLCJKXHUwMTRkZ2FuICg4NTlcdTIwMTM4NzcpIiwiR2FuZ3lcdTAxNGQgKDg3N1x1MjAxMzg4NSkiLCJOaW5uYSAoODg1XHUyMDEzODg5KSIsIkthbnB5XHUwMTRkICg4ODlcdTIwMTM4OTgpIiwiU2hcdTAxNGR0YWkgKDg5OFx1MjAxMzkwMSkiLCJFbmdpICg5'@; put 'MDFcdTIwMTM5MjMpIiwiRW5jaFx1MDE0ZCAoOTIzXHUyMDEzOTMxKSIsIkpcdTAxNGRoZWkgKDkzMVx1MjAxMzkzOCkiLCJUZW5neVx1MDE0ZCAoOTM4XHUyMDEzOTQ3KSIsIlRlbnJ5YWt1ICg5NDdcdTIwMTM5NTcpIiwiVGVudG9rdSAoOTU3XHUyMDEzOTYxKSIsIlx1MDE0Y3dhICg5NjFc'@; put 'dTIwMTM5NjQpIiwiS1x1MDE0ZGhcdTAxNGQgKDk2NFx1MjAxMzk2OCkiLCJBbm5hICg5NjhcdTIwMTM5NzApIiwiVGVucm9rdSAoOTcwXHUyMDEzOTczKSIsIlRlblx1MjAxOWVuICg5NzNcdTIwMTM5NzYpIiwiSlx1MDE0ZGdlbiAoOTc2XHUyMDEzOTc4KSIsIlRlbmdlbiAoOTc4XHUyMDEz'@; put 'OTgzKSIsIkVpa2FuICg5ODNcdTIwMTM5ODUpIiwiS2FubmEgKDk4NVx1MjAxMzk4NykiLCJFaWVuICg5ODdcdTIwMTM5ODkpIiwiRWlzbyAoOTg5XHUyMDEzOTkwKSIsIlNoXHUwMTRkcnlha3UgKDk5MFx1MjAxMzk5NSkiLCJDaFx1MDE0ZHRva3UgKDk5NVx1MjAxMzk5OSkiLCJDaFx1MDE0'@; put 'ZGhcdTAxNGQgKDk5OVx1MjAxMzEwMDQpIiwiS2Fua1x1MDE0ZCAoMTAwNFx1MjAxMzEwMTIpIiwiQ2hcdTAxNGR3YSAoMTAxMlx1MjAxMzEwMTcpIiwiS2FubmluICgxMDE3XHUyMDEzMTAyMSkiLCJKaWFuICgxMDIxXHUyMDEzMTAyNCkiLCJNYW5qdSAoMTAyNFx1MjAxMzEwMjgpIiwiQ2hc'@; put 'dTAxNGRnZW4gKDEwMjhcdTIwMTMxMDM3KSIsIkNoXHUwMTRkcnlha3UgKDEwMzdcdTIwMTMxMDQwKSIsIkNoXHUwMTRka3lcdTAxNmIgKDEwNDBcdTIwMTMxMDQ0KSIsIkthbnRva3UgKDEwNDRcdTIwMTMxMDQ2KSIsIkVpc2hcdTAxNGQgKDEwNDZcdTIwMTMxMDUzKSIsIlRlbmdpICgxMDUz'@; put 'XHUyMDEzMTA1OCkiLCJLXHUwMTRkaGVpICgxMDU4XHUyMDEzMTA2NSkiLCJKaXJ5YWt1ICgxMDY1XHUyMDEzMTA2OSkiLCJFbmt5XHUwMTZiICgxMDY5XHUyMDEzMTA3NCkiLCJTaFx1MDE0ZGhvICgxMDc0XHUyMDEzMTA3NykiLCJTaFx1MDE0ZHJ5YWt1ICgxMDc3XHUyMDEzMTA4MSkiLCJF'@; put 'aWhcdTAxNGQgKDEwODFcdTIwMTMxMDg0KSIsIlx1MDE0Y3Rva3UgKDEwODRcdTIwMTMxMDg3KSIsIkthbmppICgxMDg3XHUyMDEzMTA5NCkiLCJLYWhcdTAxNGQgKDEwOTRcdTIwMTMxMDk2KSIsIkVpY2hcdTAxNGQgKDEwOTZcdTIwMTMxMDk3KSIsIkpcdTAxNGR0b2t1ICgxMDk3XHUyMDEz'@; put 'MTA5OSkiLCJLXHUwMTRkd2EgKDEwOTlcdTIwMTMxMTA0KSIsIkNoXHUwMTRkamkgKDExMDRcdTIwMTMxMTA2KSIsIkthc2hcdTAxNGQgKDExMDZcdTIwMTMxMTA4KSIsIlRlbm5pbiAoMTEwOFx1MjAxMzExMTApIiwiVGVuLWVpICgxMTEwLTExMTMpIiwiRWlreVx1MDE2YiAoMTExM1x1MjAx'@; put 'MzExMTgpIiwiR2VuXHUyMDE5ZWkgKDExMThcdTIwMTMxMTIwKSIsIkhcdTAxNGRhbiAoMTEyMFx1MjAxMzExMjQpIiwiVGVuamkgKDExMjRcdTIwMTMxMTI2KSIsIkRhaWppICgxMTI2XHUyMDEzMTEzMSkiLCJUZW5zaFx1MDE0ZCAoMTEzMVx1MjAxMzExMzIpIiwiQ2hcdTAxNGRzaFx1MDE0'@; put 'ZCAoMTEzMlx1MjAxMzExMzUpIiwiSFx1MDE0ZGVuICgxMTM1XHUyMDEzMTE0MSkiLCJFaWppICgxMTQxXHUyMDEzMTE0MikiLCJLXHUwMTRkamkgKDExNDJcdTIwMTMxMTQ0KSIsIlRlblx1MjAxOXlcdTAxNGQgKDExNDRcdTIwMTMxMTQ1KSIsIkt5XHUwMTZiYW4gKDExNDVcdTIwMTMxMTUx'@; put 'KSIsIk5pbnBlaSAoMTE1MVx1MjAxMzExNTQpIiwiS3lcdTAxNmJqdSAoMTE1NFx1MjAxMzExNTYpIiwiSFx1MDE0ZGdlbiAoMTE1Nlx1MjAxMzExNTkpIiwiSGVpamkgKDExNTlcdTIwMTMxMTYwKSIsIkVpcnlha3UgKDExNjBcdTIwMTMxMTYxKSIsIlx1MDE0Y2hvICgxMTYxXHUyMDEzMTE2'@; put 'MykiLCJDaFx1MDE0ZGthbiAoMTE2M1x1MjAxMzExNjUpIiwiRWltYW4gKDExNjVcdTIwMTMxMTY2KSIsIk5pblx1MjAxOWFuICgxMTY2XHUyMDEzMTE2OSkiLCJLYVx1MDE0ZCAoMTE2OVx1MjAxMzExNzEpIiwiU2hcdTAxNGRhbiAoMTE3MVx1MjAxMzExNzUpIiwiQW5nZW4gKDExNzVcdTIw'@; put 'MTMxMTc3KSIsIkppc2hcdTAxNGQgKDExNzdcdTIwMTMxMTgxKSIsIllcdTAxNGR3YSAoMTE4MVx1MjAxMzExODIpIiwiSnVlaSAoMTE4Mlx1MjAxMzExODQpIiwiR2Vucnlha3UgKDExODRcdTIwMTMxMTg1KSIsIkJ1bmppICgxMTg1XHUyMDEzMTE5MCkiLCJLZW5reVx1MDE2YiAoMTE5MFx1'@; put 'MjAxMzExOTkpIiwiU2hcdTAxNGRqaSAoMTE5OVx1MjAxMzEyMDEpIiwiS2VubmluICgxMjAxXHUyMDEzMTIwNCkiLCJHZW5reVx1MDE2YiAoMTIwNFx1MjAxMzEyMDYpIiwiS2VuXHUyMDE5ZWkgKDEyMDZcdTIwMTMxMjA3KSIsIkpcdTAxNGRnZW4gKDEyMDdcdTIwMTMxMjExKSIsIktlbnJ5'@; put 'YWt1ICgxMjExXHUyMDEzMTIxMykiLCJLZW5wXHUwMTRkICgxMjEzXHUyMDEzMTIxOSkiLCJKXHUwMTRka3lcdTAxNmIgKDEyMTlcdTIwMTMxMjIyKSIsIkpcdTAxNGRcdTAxNGQgKDEyMjJcdTIwMTMxMjI0KSIsIkdlbm5pbiAoMTIyNFx1MjAxMzEyMjUpIiwiS2Fyb2t1ICgxMjI1XHUyMDEz'@; put 'MTIyNykiLCJBbnRlaSAoMTIyN1x1MjAxMzEyMjkpIiwiS2Fua2kgKDEyMjlcdTIwMTMxMjMyKSIsIkpcdTAxNGRlaSAoMTIzMlx1MjAxMzEyMzMpIiwiVGVucHVrdSAoMTIzM1x1MjAxMzEyMzQpIiwiQnVucnlha3UgKDEyMzRcdTIwMTMxMjM1KSIsIkthdGVpICgxMjM1XHUyMDEzMTIzOCki'@; put 'LCJSeWFrdW5pbiAoMTIzOFx1MjAxMzEyMzkpIiwiRW5cdTIwMTlcdTAxNGQgKDEyMzlcdTIwMTMxMjQwKSIsIk5pbmppICgxMjQwXHUyMDEzMTI0MykiLCJLYW5nZW4gKDEyNDNcdTIwMTMxMjQ3KSIsIkhcdTAxNGRqaSAoMTI0N1x1MjAxMzEyNDkpIiwiS2VuY2hcdTAxNGQgKDEyNDlcdTIw'@; put 'MTMxMjU2KSIsIktcdTAxNGRnZW4gKDEyNTZcdTIwMTMxMjU3KSIsIlNoXHUwMTRka2EgKDEyNTdcdTIwMTMxMjU5KSIsIlNoXHUwMTRkZ2VuICgxMjU5XHUyMDEzMTI2MCkiLCJCdW5cdTIwMTlcdTAxNGQgKDEyNjBcdTIwMTMxMjYxKSIsIktcdTAxNGRjaFx1MDE0ZCAoMTI2MVx1MjAxMzEy'@; put 'NjQpIiwiQnVuXHUyMDE5ZWkgKDEyNjRcdTIwMTMxMjc1KSIsIktlbmppICgxMjc1XHUyMDEzMTI3OCkiLCJLXHUwMTRkYW4gKDEyNzhcdTIwMTMxMjg4KSIsIlNoXHUwMTRkXHUwMTRkICgxMjg4XHUyMDEzMTI5MykiLCJFaW5pbiAoMTI5M1x1MjAxMzEyOTkpIiwiU2hcdTAxNGRhbiAoMTI5'@; put 'OVx1MjAxMzEzMDIpIiwiS2VuZ2VuICgxMzAyXHUyMDEzMTMwMykiLCJLYWdlbiAoMTMwM1x1MjAxMzEzMDYpIiwiVG9rdWppICgxMzA2XHUyMDEzMTMwOCkiLCJFbmt5XHUwMTRkICgxMzA4XHUyMDEzMTMxMSkiLCJcdTAxNGNjaFx1MDE0ZCAoMTMxMVx1MjAxMzEzMTIpIiwiU2hcdTAxNGR3'@; put 'YSAoMTMxMlx1MjAxMzEzMTcpIiwiQnVucFx1MDE0ZCAoMTMxN1x1MjAxMzEzMTkpIiwiR2VuXHUwMTRkICgxMzE5XHUyMDEzMTMyMSkiLCJHZW5rXHUwMTRkICgxMzIxXHUyMDEzMTMyNCkiLCJTaFx1MDE0ZGNoXHUwMTZiICgxMzI0XHUyMDEzMTMyNikiLCJLYXJ5YWt1ICgxMzI2XHUyMDEz'@; put 'MTMyOSkiLCJHZW50b2t1ICgxMzI5XHUyMDEzMTMzMSkiLCJHZW5rXHUwMTRkICgxMzMxXHUyMDEzMTMzNCkiLCJLZW5tdSAoMTMzNFx1MjAxMzEzMzYpIiwiRW5nZW4gKDEzMzZcdTIwMTMxMzQwKSIsIktcdTAxNGRrb2t1ICgxMzQwXHUyMDEzMTM0NikiLCJTaFx1MDE0ZGhlaSAoMTM0Nlx1'@; put 'MjAxMzEzNzApIiwiS2VudG9rdSAoMTM3MFx1MjAxMzEzNzIpIiwiQnVuY2hcdTAxNmIgKDEzNzJcdTIwMTMxMzc1KSIsIlRlbmp1ICgxMzc1XHUyMDEzMTM3OSkiLCJLXHUwMTRkcnlha3UgKDEzNzlcdTIwMTMxMzgxKSIsIktcdTAxNGR3YSAoMTM4MVx1MjAxMzEzODQpIiwiR2VuY2hcdTAx'@; put 'NmIgKDEzODRcdTIwMTMxMzkyKSIsIk1laXRva3UgKDEzODRcdTIwMTMxMzg3KSIsIktha2VpICgxMzg3XHUyMDEzMTM4OSkiLCJLXHUwMTRkXHUwMTRkICgxMzg5XHUyMDEzMTM5MCkiLCJNZWl0b2t1ICgxMzkwXHUyMDEzMTM5NCkiLCJcdTAxNGNlaSAoMTM5NFx1MjAxMzE0MjgpIiwiU2hc'@; put 'dTAxNGRjaFx1MDE0ZCAoMTQyOFx1MjAxMzE0MjkpIiwiRWlreVx1MDE0ZCAoMTQyOVx1MjAxMzE0NDEpIiwiS2FraXRzdSAoMTQ0MVx1MjAxMzE0NDQpIiwiQnVuXHUyMDE5YW4gKDE0NDRcdTIwMTMxNDQ5KSIsIkhcdTAxNGR0b2t1ICgxNDQ5XHUyMDEzMTQ1MikiLCJLeVx1MDE0ZHRva3Ug'@; put 'KDE0NTJcdTIwMTMxNDU1KSIsIktcdTAxNGRzaFx1MDE0ZCAoMTQ1NVx1MjAxMzE0NTcpIiwiQ2hcdTAxNGRyb2t1ICgxNDU3XHUyMDEzMTQ2MCkiLCJLYW5zaFx1MDE0ZCAoMTQ2MFx1MjAxMzE0NjYpIiwiQnVuc2hcdTAxNGQgKDE0NjZcdTIwMTMxNDY3KSIsIlx1MDE0Y25pbiAoMTQ2N1x1'@; put 'MjAxMzE0NjkpIiwiQnVubWVpICgxNDY5XHUyMDEzMTQ4NykiLCJDaFx1MDE0ZGt5XHUwMTRkICgxNDg3XHUyMDEzMTQ4OSkiLCJFbnRva3UgKDE0ODlcdTIwMTMxNDkyKSIsIk1laVx1MDE0ZCAoMTQ5Mlx1MjAxMzE1MDEpIiwiQnVua2kgKDE1MDFcdTIwMTMxNTA0KSIsIkVpc2hcdTAxNGQg'@; put 'KDE1MDRcdTIwMTMxNTIxKSIsIlRhaWVpICgxNTIxXHUyMDEzMTUyOCkiLCJLeVx1MDE0ZHJva3UgKDE1MjhcdTIwMTMxNTMyKSIsIlRlbmJ1biAoMTUzMlx1MjAxMzE1NTUpIiwiS1x1MDE0ZGppICgxNTU1XHUyMDEzMTU1OCkiLCJFaXJva3UgKDE1NThcdTIwMTMxNTcwKSIsIkdlbmtpICgx'@; put 'NTcwXHUyMDEzMTU3MykiLCJUZW5zaFx1MDE0ZCAoMTU3M1x1MjAxMzE1OTIpIiwiQnVucm9rdSAoMTU5Mlx1MjAxMzE1OTYpIiwiS2VpY2hcdTAxNGQgKDE1OTZcdTIwMTMxNjE1KSIsIkdlbm5hICgxNjE1XHUyMDEzMTYyNCkiLCJLYW5cdTIwMTllaSAoMTYyNFx1MjAxMzE2NDQpIiwiU2hc'@; put 'dTAxNGRobyAoMTY0NFx1MjAxMzE2NDgpIiwiS2VpYW4gKDE2NDhcdTIwMTMxNjUyKSIsIkpcdTAxNGRcdTAxNGQgKDE2NTJcdTIwMTMxNjU1KSIsIk1laXJla2kgKDE2NTVcdTIwMTMxNjU4KSIsIk1hbmppICgxNjU4XHUyMDEzMTY2MSkiLCJLYW5idW4gKDE2NjFcdTIwMTMxNjczKSIsIkVu'@; put 'cFx1MDE0ZCAoMTY3M1x1MjAxMzE2ODEpIiwiVGVubmEgKDE2ODFcdTIwMTMxNjg0KSIsIkpcdTAxNGRreVx1MDE0ZCAoMTY4NFx1MjAxMzE2ODgpIiwiR2Vucm9rdSAoMTY4OFx1MjAxMzE3MDQpIiwiSFx1MDE0ZGVpICgxNzA0XHUyMDEzMTcxMSkiLCJTaFx1MDE0ZHRva3UgKDE3MTFcdTIw'@; put 'MTMxNzE2KSIsIkt5XHUwMTRkaFx1MDE0ZCAoMTcxNlx1MjAxMzE3MzYpIiwiR2VuYnVuICgxNzM2XHUyMDEzMTc0MSkiLCJLYW5wXHUwMTRkICgxNzQxXHUyMDEzMTc0NCkiLCJFbmt5XHUwMTRkICgxNzQ0XHUyMDEzMTc0OCkiLCJLYW5cdTIwMTllbiAoMTc0OFx1MjAxMzE3NTEpIiwiSFx1'@; put 'MDE0ZHJla2kgKDE3NTFcdTIwMTMxNzY0KSIsIk1laXdhICgxNzY0XHUyMDEzMTc3MikiLCJBblx1MjAxOWVpICgxNzcyXHUyMDEzMTc4MSkiLCJUZW5tZWkgKDE3ODFcdTIwMTMxNzg5KSIsIkthbnNlaSAoMTc4OVx1MjAxMzE4MDEpIiwiS3lcdTAxNGR3YSAoMTgwMVx1MjAxMzE4MDQpIiwi'@; put 'QnVua2EgKDE4MDRcdTIwMTMxODE4KSIsIkJ1bnNlaSAoMTgxOFx1MjAxMzE4MzApIiwiVGVucFx1MDE0ZCAoMTgzMFx1MjAxMzE4NDQpIiwiS1x1MDE0ZGthICgxODQ0XHUyMDEzMTg0OCkiLCJLYWVpICgxODQ4XHUyMDEzMTg1NCkiLCJBbnNlaSAoMTg1NFx1MjAxMzE4NjApIiwiTWFuXHUy'@; put 'MDE5ZW4gKDE4NjBcdTIwMTMxODYxKSIsIkJ1bmt5XHUwMTZiICgxODYxXHUyMDEzMTg2NCkiLCJHZW5qaSAoMTg2NFx1MjAxMzE4NjUpIiwiS2VpXHUwMTRkICgxODY1XHUyMDEzMTg2OCkiLCJNIiwiVCIsIlMiLCJIIl0sInNob3J0IjpbIlRhaWthICg2NDVcdTIwMTM2NTApIiwiSGFrdWNo'@; put 'aSAoNjUwXHUyMDEzNjcxKSIsIkhha3VoXHUwMTRkICg2NzJcdTIwMTM2ODYpIiwiU2h1Y2hcdTAxNGQgKDY4Nlx1MjAxMzcwMSkiLCJUYWloXHUwMTRkICg3MDFcdTIwMTM3MDQpIiwiS2VpdW4gKDcwNFx1MjAxMzcwOCkiLCJXYWRcdTAxNGQgKDcwOFx1MjAxMzcxNSkiLCJSZWlraSAoNzE1'@; put 'XHUyMDEzNzE3KSIsIllcdTAxNGRyXHUwMTRkICg3MTdcdTIwMTM3MjQpIiwiSmlua2kgKDcyNFx1MjAxMzcyOSkiLCJUZW5weVx1MDE0ZCAoNzI5XHUyMDEzNzQ5KSIsIlRlbnB5XHUwMTRkLWthbXBcdTAxNGQgKDc0OS03NDkpIiwiVGVucHlcdTAxNGQtc2hcdTAxNGRoXHUwMTRkICg3NDkt'@; put 'NzU3KSIsIlRlbnB5XHUwMTRkLWhcdTAxNGRqaSAoNzU3LTc2NSkiLCJUZW5weVx1MDE0ZC1qaW5nbyAoNzY1LTc2NykiLCJKaW5nby1rZWl1biAoNzY3LTc3MCkiLCJIXHUwMTRka2kgKDc3MFx1MjAxMzc4MCkiLCJUZW4tXHUwMTRkICg3ODEtNzgyKSIsIkVucnlha3UgKDc4Mlx1MjAxMzgw'@; put 'NikiLCJEYWlkXHUwMTRkICg4MDZcdTIwMTM4MTApIiwiS1x1MDE0ZG5pbiAoODEwXHUyMDEzODI0KSIsIlRlbmNoXHUwMTRkICg4MjRcdTIwMTM4MzQpIiwiSlx1MDE0ZHdhICg4MzRcdTIwMTM4NDgpIiwiS2FqXHUwMTRkICg4NDhcdTIwMTM4NTEpIiwiTmluanUgKDg1MVx1MjAxMzg1NCki'@; put 'LCJTYWlrXHUwMTRkICg4NTRcdTIwMTM4NTcpIiwiVGVuLWFuICg4NTctODU5KSIsIkpcdTAxNGRnYW4gKDg1OVx1MjAxMzg3NykiLCJHYW5neVx1MDE0ZCAoODc3XHUyMDEzODg1KSIsIk5pbm5hICg4ODVcdTIwMTM4ODkpIiwiS2FucHlcdTAxNGQgKDg4OVx1MjAxMzg5OCkiLCJTaFx1MDE0'@; put 'ZHRhaSAoODk4XHUyMDEzOTAxKSIsIkVuZ2kgKDkwMVx1MjAxMzkyMykiLCJFbmNoXHUwMTRkICg5MjNcdTIwMTM5MzEpIiwiSlx1MDE0ZGhlaSAoOTMxXHUyMDEzOTM4KSIsIlRlbmd5XHUwMTRkICg5MzhcdTIwMTM5NDcpIiwiVGVucnlha3UgKDk0N1x1MjAxMzk1NykiLCJUZW50b2t1ICg5'@; put 'NTdcdTIwMTM5NjEpIiwiXHUwMTRjd2EgKDk2MVx1MjAxMzk2NCkiLCJLXHUwMTRkaFx1MDE0ZCAoOTY0XHUyMDEzOTY4KSIsIkFubmEgKDk2OFx1MjAxMzk3MCkiLCJUZW5yb2t1ICg5NzBcdTIwMTM5NzMpIiwiVGVuXHUyMDE5ZW4gKDk3M1x1MjAxMzk3NikiLCJKXHUwMTRkZ2VuICg5NzZc'@; put 'dTIwMTM5NzgpIiwiVGVuZ2VuICg5NzhcdTIwMTM5ODMpIiwiRWlrYW4gKDk4M1x1MjAxMzk4NSkiLCJLYW5uYSAoOTg1XHUyMDEzOTg3KSIsIkVpZW4gKDk4N1x1MjAxMzk4OSkiLCJFaXNvICg5ODlcdTIwMTM5OTApIiwiU2hcdTAxNGRyeWFrdSAoOTkwXHUyMDEzOTk1KSIsIkNoXHUwMTRk'@; put 'dG9rdSAoOTk1XHUyMDEzOTk5KSIsIkNoXHUwMTRkaFx1MDE0ZCAoOTk5XHUyMDEzMTAwNCkiLCJLYW5rXHUwMTRkICgxMDA0XHUyMDEzMTAxMikiLCJDaFx1MDE0ZHdhICgxMDEyXHUyMDEzMTAxNykiLCJLYW5uaW4gKDEwMTdcdTIwMTMxMDIxKSIsIkppYW4gKDEwMjFcdTIwMTMxMDI0KSIs'@; put 'Ik1hbmp1ICgxMDI0XHUyMDEzMTAyOCkiLCJDaFx1MDE0ZGdlbiAoMTAyOFx1MjAxMzEwMzcpIiwiQ2hcdTAxNGRyeWFrdSAoMTAzN1x1MjAxMzEwNDApIiwiQ2hcdTAxNGRreVx1MDE2YiAoMTA0MFx1MjAxMzEwNDQpIiwiS2FudG9rdSAoMTA0NFx1MjAxMzEwNDYpIiwiRWlzaFx1MDE0ZCAo'@; put 'MTA0Nlx1MjAxMzEwNTMpIiwiVGVuZ2kgKDEwNTNcdTIwMTMxMDU4KSIsIktcdTAxNGRoZWkgKDEwNThcdTIwMTMxMDY1KSIsIkppcnlha3UgKDEwNjVcdTIwMTMxMDY5KSIsIkVua3lcdTAxNmIgKDEwNjlcdTIwMTMxMDc0KSIsIlNoXHUwMTRkaG8gKDEwNzRcdTIwMTMxMDc3KSIsIlNoXHUw'@; put 'MTRkcnlha3UgKDEwNzdcdTIwMTMxMDgxKSIsIkVpaFx1MDE0ZCAoMTA4MVx1MjAxMzEwODQpIiwiXHUwMTRjdG9rdSAoMTA4NFx1MjAxMzEwODcpIiwiS2FuamkgKDEwODdcdTIwMTMxMDk0KSIsIkthaFx1MDE0ZCAoMTA5NFx1MjAxMzEwOTYpIiwiRWljaFx1MDE0ZCAoMTA5Nlx1MjAxMzEw'@; put 'OTcpIiwiSlx1MDE0ZHRva3UgKDEwOTdcdTIwMTMxMDk5KSIsIktcdTAxNGR3YSAoMTA5OVx1MjAxMzExMDQpIiwiQ2hcdTAxNGRqaSAoMTEwNFx1MjAxMzExMDYpIiwiS2FzaFx1MDE0ZCAoMTEwNlx1MjAxMzExMDgpIiwiVGVubmluICgxMTA4XHUyMDEzMTExMCkiLCJUZW4tZWkgKDExMTAt'@; put 'MTExMykiLCJFaWt5XHUwMTZiICgxMTEzXHUyMDEzMTExOCkiLCJHZW5cdTIwMTllaSAoMTExOFx1MjAxMzExMjApIiwiSFx1MDE0ZGFuICgxMTIwXHUyMDEzMTEyNCkiLCJUZW5qaSAoMTEyNFx1MjAxMzExMjYpIiwiRGFpamkgKDExMjZcdTIwMTMxMTMxKSIsIlRlbnNoXHUwMTRkICgxMTMx'@; put 'XHUyMDEzMTEzMikiLCJDaFx1MDE0ZHNoXHUwMTRkICgxMTMyXHUyMDEzMTEzNSkiLCJIXHUwMTRkZW4gKDExMzVcdTIwMTMxMTQxKSIsIkVpamkgKDExNDFcdTIwMTMxMTQyKSIsIktcdTAxNGRqaSAoMTE0Mlx1MjAxMzExNDQpIiwiVGVuXHUyMDE5eVx1MDE0ZCAoMTE0NFx1MjAxMzExNDUp'@; put 'IiwiS3lcdTAxNmJhbiAoMTE0NVx1MjAxMzExNTEpIiwiTmlucGVpICgxMTUxXHUyMDEzMTE1NCkiLCJLeVx1MDE2Ymp1ICgxMTU0XHUyMDEzMTE1NikiLCJIXHUwMTRkZ2VuICgxMTU2XHUyMDEzMTE1OSkiLCJIZWlqaSAoMTE1OVx1MjAxMzExNjApIiwiRWlyeWFrdSAoMTE2MFx1MjAxMzEx'@; put 'NjEpIiwiXHUwMTRjaG8gKDExNjFcdTIwMTMxMTYzKSIsIkNoXHUwMTRka2FuICgxMTYzXHUyMDEzMTE2NSkiLCJFaW1hbiAoMTE2NVx1MjAxMzExNjYpIiwiTmluXHUyMDE5YW4gKDExNjZcdTIwMTMxMTY5KSIsIkthXHUwMTRkICgxMTY5XHUyMDEzMTE3MSkiLCJTaFx1MDE0ZGFuICgxMTcx'@; put 'XHUyMDEzMTE3NSkiLCJBbmdlbiAoMTE3NVx1MjAxMzExNzcpIiwiSmlzaFx1MDE0ZCAoMTE3N1x1MjAxMzExODEpIiwiWVx1MDE0ZHdhICgxMTgxXHUyMDEzMTE4MikiLCJKdWVpICgxMTgyXHUyMDEzMTE4NCkiLCJHZW5yeWFrdSAoMTE4NFx1MjAxMzExODUpIiwiQnVuamkgKDExODVcdTIw'@; put 'MTMxMTkwKSIsIktlbmt5XHUwMTZiICgxMTkwXHUyMDEzMTE5OSkiLCJTaFx1MDE0ZGppICgxMTk5XHUyMDEzMTIwMSkiLCJLZW5uaW4gKDEyMDFcdTIwMTMxMjA0KSIsIkdlbmt5XHUwMTZiICgxMjA0XHUyMDEzMTIwNikiLCJLZW5cdTIwMTllaSAoMTIwNlx1MjAxMzEyMDcpIiwiSlx1MDE0'@; put 'ZGdlbiAoMTIwN1x1MjAxMzEyMTEpIiwiS2Vucnlha3UgKDEyMTFcdTIwMTMxMjEzKSIsIktlbnBcdTAxNGQgKDEyMTNcdTIwMTMxMjE5KSIsIkpcdTAxNGRreVx1MDE2YiAoMTIxOVx1MjAxMzEyMjIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTIyMlx1MjAxMzEyMjQpIiwiR2VubmluICgxMjI0XHUy'@; put 'MDEzMTIyNSkiLCJLYXJva3UgKDEyMjVcdTIwMTMxMjI3KSIsIkFudGVpICgxMjI3XHUyMDEzMTIyOSkiLCJLYW5raSAoMTIyOVx1MjAxMzEyMzIpIiwiSlx1MDE0ZGVpICgxMjMyXHUyMDEzMTIzMykiLCJUZW5wdWt1ICgxMjMzXHUyMDEzMTIzNCkiLCJCdW5yeWFrdSAoMTIzNFx1MjAxMzEy'@; put 'MzUpIiwiS2F0ZWkgKDEyMzVcdTIwMTMxMjM4KSIsIlJ5YWt1bmluICgxMjM4XHUyMDEzMTIzOSkiLCJFblx1MjAxOVx1MDE0ZCAoMTIzOVx1MjAxMzEyNDApIiwiTmluamkgKDEyNDBcdTIwMTMxMjQzKSIsIkthbmdlbiAoMTI0M1x1MjAxMzEyNDcpIiwiSFx1MDE0ZGppICgxMjQ3XHUyMDEz'@; put 'MTI0OSkiLCJLZW5jaFx1MDE0ZCAoMTI0OVx1MjAxMzEyNTYpIiwiS1x1MDE0ZGdlbiAoMTI1Nlx1MjAxMzEyNTcpIiwiU2hcdTAxNGRrYSAoMTI1N1x1MjAxMzEyNTkpIiwiU2hcdTAxNGRnZW4gKDEyNTlcdTIwMTMxMjYwKSIsIkJ1blx1MjAxOVx1MDE0ZCAoMTI2MFx1MjAxMzEyNjEpIiwi'@; put 'S1x1MDE0ZGNoXHUwMTRkICgxMjYxXHUyMDEzMTI2NCkiLCJCdW5cdTIwMTllaSAoMTI2NFx1MjAxMzEyNzUpIiwiS2VuamkgKDEyNzVcdTIwMTMxMjc4KSIsIktcdTAxNGRhbiAoMTI3OFx1MjAxMzEyODgpIiwiU2hcdTAxNGRcdTAxNGQgKDEyODhcdTIwMTMxMjkzKSIsIkVpbmluICgxMjkz'@; put 'XHUyMDEzMTI5OSkiLCJTaFx1MDE0ZGFuICgxMjk5XHUyMDEzMTMwMikiLCJLZW5nZW4gKDEzMDJcdTIwMTMxMzAzKSIsIkthZ2VuICgxMzAzXHUyMDEzMTMwNikiLCJUb2t1amkgKDEzMDZcdTIwMTMxMzA4KSIsIkVua3lcdTAxNGQgKDEzMDhcdTIwMTMxMzExKSIsIlx1MDE0Y2NoXHUwMTRk'@; put 'ICgxMzExXHUyMDEzMTMxMikiLCJTaFx1MDE0ZHdhICgxMzEyXHUyMDEzMTMxNykiLCJCdW5wXHUwMTRkICgxMzE3XHUyMDEzMTMxOSkiLCJHZW5cdTAxNGQgKDEzMTlcdTIwMTMxMzIxKSIsIkdlbmtcdTAxNGQgKDEzMjFcdTIwMTMxMzI0KSIsIlNoXHUwMTRkY2hcdTAxNmIgKDEzMjRcdTIw'@; put 'MTMxMzI2KSIsIkthcnlha3UgKDEzMjZcdTIwMTMxMzI5KSIsIkdlbnRva3UgKDEzMjlcdTIwMTMxMzMxKSIsIkdlbmtcdTAxNGQgKDEzMzFcdTIwMTMxMzM0KSIsIktlbm11ICgxMzM0XHUyMDEzMTMzNikiLCJFbmdlbiAoMTMzNlx1MjAxMzEzNDApIiwiS1x1MDE0ZGtva3UgKDEzNDBcdTIw'@; put 'MTMxMzQ2KSIsIlNoXHUwMTRkaGVpICgxMzQ2XHUyMDEzMTM3MCkiLCJLZW50b2t1ICgxMzcwXHUyMDEzMTM3MikiLCJCdW5jaFx1MDE2YiAoMTM3Mlx1MjAxMzEzNzUpIiwiVGVuanUgKDEzNzVcdTIwMTMxMzc5KSIsIktcdTAxNGRyeWFrdSAoMTM3OVx1MjAxMzEzODEpIiwiS1x1MDE0ZHdh'@; put 'ICgxMzgxXHUyMDEzMTM4NCkiLCJHZW5jaFx1MDE2YiAoMTM4NFx1MjAxMzEzOTIpIiwiTWVpdG9rdSAoMTM4NFx1MjAxMzEzODcpIiwiS2FrZWkgKDEzODdcdTIwMTMxMzg5KSIsIktcdTAxNGRcdTAxNGQgKDEzODlcdTIwMTMxMzkwKSIsIk1laXRva3UgKDEzOTBcdTIwMTMxMzk0KSIsIlx1'@; put 'MDE0Y2VpICgxMzk0XHUyMDEzMTQyOCkiLCJTaFx1MDE0ZGNoXHUwMTRkICgxNDI4XHUyMDEzMTQyOSkiLCJFaWt5XHUwMTRkICgxNDI5XHUyMDEzMTQ0MSkiLCJLYWtpdHN1ICgxNDQxXHUyMDEzMTQ0NCkiLCJCdW5cdTIwMTlhbiAoMTQ0NFx1MjAxMzE0NDkpIiwiSFx1MDE0ZHRva3UgKDE0'@; put 'NDlcdTIwMTMxNDUyKSIsIkt5XHUwMTRkdG9rdSAoMTQ1Mlx1MjAxMzE0NTUpIiwiS1x1MDE0ZHNoXHUwMTRkICgxNDU1XHUyMDEzMTQ1NykiLCJDaFx1MDE0ZHJva3UgKDE0NTdcdTIwMTMxNDYwKSIsIkthbnNoXHUwMTRkICgxNDYwXHUyMDEzMTQ2NikiLCJCdW5zaFx1MDE0ZCAoMTQ2Nlx1'@; put 'MjAxMzE0NjcpIiwiXHUwMTRjbmluICgxNDY3XHUyMDEzMTQ2OSkiLCJCdW5tZWkgKDE0NjlcdTIwMTMxNDg3KSIsIkNoXHUwMTRka3lcdTAxNGQgKDE0ODdcdTIwMTMxNDg5KSIsIkVudG9rdSAoMTQ4OVx1MjAxMzE0OTIpIiwiTWVpXHUwMTRkICgxNDkyXHUyMDEzMTUwMSkiLCJCdW5raSAo'@; put 'MTUwMVx1MjAxMzE1MDQpIiwiRWlzaFx1MDE0ZCAoMTUwNFx1MjAxMzE1MjEpIiwiVGFpZWkgKDE1MjFcdTIwMTMxNTI4KSIsIkt5XHUwMTRkcm9rdSAoMTUyOFx1MjAxMzE1MzIpIiwiVGVuYnVuICgxNTMyXHUyMDEzMTU1NSkiLCJLXHUwMTRkamkgKDE1NTVcdTIwMTMxNTU4KSIsIkVpcm9r'@; put 'dSAoMTU1OFx1MjAxMzE1NzApIiwiR2Vua2kgKDE1NzBcdTIwMTMxNTczKSIsIlRlbnNoXHUwMTRkICgxNTczXHUyMDEzMTU5MikiLCJCdW5yb2t1ICgxNTkyXHUyMDEzMTU5NikiLCJLZWljaFx1MDE0ZCAoMTU5Nlx1MjAxMzE2MTUpIiwiR2VubmEgKDE2MTVcdTIwMTMxNjI0KSIsIkthblx1'@; put 'MjAxOWVpICgxNjI0XHUyMDEzMTY0NCkiLCJTaFx1MDE0ZGhvICgxNjQ0XHUyMDEzMTY0OCkiLCJLZWlhbiAoMTY0OFx1MjAxMzE2NTIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTY1Mlx1MjAxMzE2NTUpIiwiTWVpcmVraSAoMTY1NVx1MjAxMzE2NTgpIiwiTWFuamkgKDE2NThcdTIwMTMxNjYxKSIs'@; put 'IkthbmJ1biAoMTY2MVx1MjAxMzE2NzMpIiwiRW5wXHUwMTRkICgxNjczXHUyMDEzMTY4MSkiLCJUZW5uYSAoMTY4MVx1MjAxMzE2ODQpIiwiSlx1MDE0ZGt5XHUwMTRkICgxNjg0XHUyMDEzMTY4OCkiLCJHZW5yb2t1ICgxNjg4XHUyMDEzMTcwNCkiLCJIXHUwMTRkZWkgKDE3MDRcdTIwMTMx'@; put 'NzExKSIsIlNoXHUwMTRkdG9rdSAoMTcxMVx1MjAxMzE3MTYpIiwiS3lcdTAxNGRoXHUwMTRkICgxNzE2XHUyMDEzMTczNikiLCJHZW5idW4gKDE3MzZcdTIwMTMxNzQxKSIsIkthbnBcdTAxNGQgKDE3NDFcdTIwMTMxNzQ0KSIsIkVua3lcdTAxNGQgKDE3NDRcdTIwMTMxNzQ4KSIsIkthblx1'@; put 'MjAxOWVuICgxNzQ4XHUyMDEzMTc1MSkiLCJIXHUwMTRkcmVraSAoMTc1MVx1MjAxMzE3NjQpIiwiTWVpd2EgKDE3NjRcdTIwMTMxNzcyKSIsIkFuXHUyMDE5ZWkgKDE3NzJcdTIwMTMxNzgxKSIsIlRlbm1laSAoMTc4MVx1MjAxMzE3ODkpIiwiS2Fuc2VpICgxNzg5XHUyMDEzMTgwMSkiLCJL'@; put 'eVx1MDE0ZHdhICgxODAxXHUyMDEzMTgwNCkiLCJCdW5rYSAoMTgwNFx1MjAxMzE4MTgpIiwiQnVuc2VpICgxODE4XHUyMDEzMTgzMCkiLCJUZW5wXHUwMTRkICgxODMwXHUyMDEzMTg0NCkiLCJLXHUwMTRka2EgKDE4NDRcdTIwMTMxODQ4KSIsIkthZWkgKDE4NDhcdTIwMTMxODU0KSIsIkFu'@; put 'c2VpICgxODU0XHUyMDEzMTg2MCkiLCJNYW5cdTIwMTllbiAoMTg2MFx1MjAxMzE4NjEpIiwiQnVua3lcdTAxNmIgKDE4NjFcdTIwMTMxODY0KSIsIkdlbmppICgxODY0XHUyMDEzMTg2NSkiLCJLZWlcdTAxNGQgKDE4NjVcdTIwMTMxODY4KSIsIk1laWppIiwiVGFpc2hcdTAxNGQiLCJTaFx1'@; put 'MDE0ZHdhIiwiSGVpc2VpIl0sImxvbmciOlsiVGFpa2EgKDY0NVx1MjAxMzY1MCkiLCJIYWt1Y2hpICg2NTBcdTIwMTM2NzEpIiwiSGFrdWhcdTAxNGQgKDY3Mlx1MjAxMzY4NikiLCJTaHVjaFx1MDE0ZCAoNjg2XHUyMDEzNzAxKSIsIlRhaWhcdTAxNGQgKDcwMVx1MjAxMzcwNCkiLCJLZWl1'@; put 'biAoNzA0XHUyMDEzNzA4KSIsIldhZFx1MDE0ZCAoNzA4XHUyMDEzNzE1KSIsIlJlaWtpICg3MTVcdTIwMTM3MTcpIiwiWVx1MDE0ZHJcdTAxNGQgKDcxN1x1MjAxMzcyNCkiLCJKaW5raSAoNzI0XHUyMDEzNzI5KSIsIlRlbnB5XHUwMTRkICg3MjlcdTIwMTM3NDkpIiwiVGVucHlcdTAxNGQt'@; put 'a2FtcFx1MDE0ZCAoNzQ5LTc0OSkiLCJUZW5weVx1MDE0ZC1zaFx1MDE0ZGhcdTAxNGQgKDc0OS03NTcpIiwiVGVucHlcdTAxNGQtaFx1MDE0ZGppICg3NTctNzY1KSIsIlRlbnB5XHUwMTRkLWppbmdvICg3NjUtNzY3KSIsIkppbmdvLWtlaXVuICg3NjctNzcwKSIsIkhcdTAxNGRraSAoNzcw'@; put 'XHUyMDEzNzgwKSIsIlRlbi1cdTAxNGQgKDc4MS03ODIpIiwiRW5yeWFrdSAoNzgyXHUyMDEzODA2KSIsIkRhaWRcdTAxNGQgKDgwNlx1MjAxMzgxMCkiLCJLXHUwMTRkbmluICg4MTBcdTIwMTM4MjQpIiwiVGVuY2hcdTAxNGQgKDgyNFx1MjAxMzgzNCkiLCJKXHUwMTRkd2EgKDgzNFx1MjAx'@; put 'Mzg0OCkiLCJLYWpcdTAxNGQgKDg0OFx1MjAxMzg1MSkiLCJOaW5qdSAoODUxXHUyMDEzODU0KSIsIlNhaWtcdTAxNGQgKDg1NFx1MjAxMzg1NykiLCJUZW4tYW4gKDg1Ny04NTkpIiwiSlx1MDE0ZGdhbiAoODU5XHUyMDEzODc3KSIsIkdhbmd5XHUwMTRkICg4NzdcdTIwMTM4ODUpIiwiTmlu'@; put 'bmEgKDg4NVx1MjAxMzg4OSkiLCJLYW5weVx1MDE0ZCAoODg5XHUyMDEzODk4KSIsIlNoXHUwMTRkdGFpICg4OThcdTIwMTM5MDEpIiwiRW5naSAoOTAxXHUyMDEzOTIzKSIsIkVuY2hcdTAxNGQgKDkyM1x1MjAxMzkzMSkiLCJKXHUwMTRkaGVpICg5MzFcdTIwMTM5MzgpIiwiVGVuZ3lcdTAx'@; put 'NGQgKDkzOFx1MjAxMzk0NykiLCJUZW5yeWFrdSAoOTQ3XHUyMDEzOTU3KSIsIlRlbnRva3UgKDk1N1x1MjAxMzk2MSkiLCJcdTAxNGN3YSAoOTYxXHUyMDEzOTY0KSIsIktcdTAxNGRoXHUwMTRkICg5NjRcdTIwMTM5NjgpIiwiQW5uYSAoOTY4XHUyMDEzOTcwKSIsIlRlbnJva3UgKDk3MFx1'@; put 'MjAxMzk3MykiLCJUZW5cdTIwMTllbiAoOTczXHUyMDEzOTc2KSIsIkpcdTAxNGRnZW4gKDk3Nlx1MjAxMzk3OCkiLCJUZW5nZW4gKDk3OFx1MjAxMzk4MykiLCJFaWthbiAoOTgzXHUyMDEzOTg1KSIsIkthbm5hICg5ODVcdTIwMTM5ODcpIiwiRWllbiAoOTg3XHUyMDEzOTg5KSIsIkVpc28g'@; put 'KDk4OVx1MjAxMzk5MCkiLCJTaFx1MDE0ZHJ5YWt1ICg5OTBcdTIwMTM5OTUpIiwiQ2hcdTAxNGR0b2t1ICg5OTVcdTIwMTM5OTkpIiwiQ2hcdTAxNGRoXHUwMTRkICg5OTlcdTIwMTMxMDA0KSIsIkthbmtcdTAxNGQgKDEwMDRcdTIwMTMxMDEyKSIsIkNoXHUwMTRkd2EgKDEwMTJcdTIwMTMx'@; put 'MDE3KSIsIkthbm5pbiAoMTAxN1x1MjAxMzEwMjEpIiwiSmlhbiAoMTAyMVx1MjAxMzEwMjQpIiwiTWFuanUgKDEwMjRcdTIwMTMxMDI4KSIsIkNoXHUwMTRkZ2VuICgxMDI4XHUyMDEzMTAzNykiLCJDaFx1MDE0ZHJ5YWt1ICgxMDM3XHUyMDEzMTA0MCkiLCJDaFx1MDE0ZGt5XHUwMTZiICgx'@; put 'MDQwXHUyMDEzMTA0NCkiLCJLYW50b2t1ICgxMDQ0XHUyMDEzMTA0NikiLCJFaXNoXHUwMTRkICgxMDQ2XHUyMDEzMTA1MykiLCJUZW5naSAoMTA1M1x1MjAxMzEwNTgpIiwiS1x1MDE0ZGhlaSAoMTA1OFx1MjAxMzEwNjUpIiwiSmlyeWFrdSAoMTA2NVx1MjAxMzEwNjkpIiwiRW5reVx1MDE2'@; put 'YiAoMTA2OVx1MjAxMzEwNzQpIiwiU2hcdTAxNGRobyAoMTA3NFx1MjAxMzEwNzcpIiwiU2hcdTAxNGRyeWFrdSAoMTA3N1x1MjAxMzEwODEpIiwiRWloXHUwMTRkICgxMDgxXHUyMDEzMTA4NCkiLCJcdTAxNGN0b2t1ICgxMDg0XHUyMDEzMTA4NykiLCJLYW5qaSAoMTA4N1x1MjAxMzEwOTQp'@; put 'IiwiS2FoXHUwMTRkICgxMDk0XHUyMDEzMTA5NikiLCJFaWNoXHUwMTRkICgxMDk2XHUyMDEzMTA5NykiLCJKXHUwMTRkdG9rdSAoMTA5N1x1MjAxMzEwOTkpIiwiS1x1MDE0ZHdhICgxMDk5XHUyMDEzMTEwNCkiLCJDaFx1MDE0ZGppICgxMTA0XHUyMDEzMTEwNikiLCJLYXNoXHUwMTRkICgx'@; put 'MTA2XHUyMDEzMTEwOCkiLCJUZW5uaW4gKDExMDhcdTIwMTMxMTEwKSIsIlRlbi1laSAoMTExMC0xMTEzKSIsIkVpa3lcdTAxNmIgKDExMTNcdTIwMTMxMTE4KSIsIkdlblx1MjAxOWVpICgxMTE4XHUyMDEzMTEyMCkiLCJIXHUwMTRkYW4gKDExMjBcdTIwMTMxMTI0KSIsIlRlbmppICgxMTI0'@; put 'XHUyMDEzMTEyNikiLCJEYWlqaSAoMTEyNlx1MjAxMzExMzEpIiwiVGVuc2hcdTAxNGQgKDExMzFcdTIwMTMxMTMyKSIsIkNoXHUwMTRkc2hcdTAxNGQgKDExMzJcdTIwMTMxMTM1KSIsIkhcdTAxNGRlbiAoMTEzNVx1MjAxMzExNDEpIiwiRWlqaSAoMTE0MVx1MjAxMzExNDIpIiwiS1x1MDE0'@; put 'ZGppICgxMTQyXHUyMDEzMTE0NCkiLCJUZW5cdTIwMTl5XHUwMTRkICgxMTQ0XHUyMDEzMTE0NSkiLCJLeVx1MDE2YmFuICgxMTQ1XHUyMDEzMTE1MSkiLCJOaW5wZWkgKDExNTFcdTIwMTMxMTU0KSIsIkt5XHUwMTZianUgKDExNTRcdTIwMTMxMTU2KSIsIkhcdTAxNGRnZW4gKDExNTZcdTIw'@; put 'MTMxMTU5KSIsIkhlaWppICgxMTU5XHUyMDEzMTE2MCkiLCJFaXJ5YWt1ICgxMTYwXHUyMDEzMTE2MSkiLCJcdTAxNGNobyAoMTE2MVx1MjAxMzExNjMpIiwiQ2hcdTAxNGRrYW4gKDExNjNcdTIwMTMxMTY1KSIsIkVpbWFuICgxMTY1XHUyMDEzMTE2NikiLCJOaW5cdTIwMTlhbiAoMTE2Nlx1'@; put 'MjAxMzExNjkpIiwiS2FcdTAxNGQgKDExNjlcdTIwMTMxMTcxKSIsIlNoXHUwMTRkYW4gKDExNzFcdTIwMTMxMTc1KSIsIkFuZ2VuICgxMTc1XHUyMDEzMTE3NykiLCJKaXNoXHUwMTRkICgxMTc3XHUyMDEzMTE4MSkiLCJZXHUwMTRkd2EgKDExODFcdTIwMTMxMTgyKSIsIkp1ZWkgKDExODJc'@; put 'dTIwMTMxMTg0KSIsIkdlbnJ5YWt1ICgxMTg0XHUyMDEzMTE4NSkiLCJCdW5qaSAoMTE4NVx1MjAxMzExOTApIiwiS2Vua3lcdTAxNmIgKDExOTBcdTIwMTMxMTk5KSIsIlNoXHUwMTRkamkgKDExOTlcdTIwMTMxMjAxKSIsIktlbm5pbiAoMTIwMVx1MjAxMzEyMDQpIiwiR2Vua3lcdTAxNmIg'@; put 'KDEyMDRcdTIwMTMxMjA2KSIsIktlblx1MjAxOWVpICgxMjA2XHUyMDEzMTIwNykiLCJKXHUwMTRkZ2VuICgxMjA3XHUyMDEzMTIxMSkiLCJLZW5yeWFrdSAoMTIxMVx1MjAxMzEyMTMpIiwiS2VucFx1MDE0ZCAoMTIxM1x1MjAxMzEyMTkpIiwiSlx1MDE0ZGt5XHUwMTZiICgxMjE5XHUyMDEz'@; put 'MTIyMikiLCJKXHUwMTRkXHUwMTRkICgxMjIyXHUyMDEzMTIyNCkiLCJHZW5uaW4gKDEyMjRcdTIwMTMxMjI1KSIsIkthcm9rdSAoMTIyNVx1MjAxMzEyMjcpIiwiQW50ZWkgKDEyMjdcdTIwMTMxMjI5KSIsIkthbmtpICgxMjI5XHUyMDEzMTIzMikiLCJKXHUwMTRkZWkgKDEyMzJcdTIwMTMx'@; put 'MjMzKSIsIlRlbnB1a3UgKDEyMzNcdTIwMTMxMjM0KSIsIkJ1bnJ5YWt1ICgxMjM0XHUyMDEzMTIzNSkiLCJLYXRlaSAoMTIzNVx1MjAxMzEyMzgpIiwiUnlha3VuaW4gKDEyMzhcdTIwMTMxMjM5KSIsIkVuXHUyMDE5XHUwMTRkICgxMjM5XHUyMDEzMTI0MCkiLCJOaW5qaSAoMTI0MFx1MjAx'@; put 'MzEyNDMpIiwiS2FuZ2VuICgxMjQzXHUyMDEzMTI0NykiLCJIXHUwMTRkamkgKDEyNDdcdTIwMTMxMjQ5KSIsIktlbmNoXHUwMTRkICgxMjQ5XHUyMDEzMTI1NikiLCJLXHUwMTRkZ2VuICgxMjU2XHUyMDEzMTI1NykiLCJTaFx1MDE0ZGthICgxMjU3XHUyMDEzMTI1OSkiLCJTaFx1MDE0ZGdl'@; put 'biAoMTI1OVx1MjAxMzEyNjApIiwiQnVuXHUyMDE5XHUwMTRkICgxMjYwXHUyMDEzMTI2MSkiLCJLXHUwMTRkY2hcdTAxNGQgKDEyNjFcdTIwMTMxMjY0KSIsIkJ1blx1MjAxOWVpICgxMjY0XHUyMDEzMTI3NSkiLCJLZW5qaSAoMTI3NVx1MjAxMzEyNzgpIiwiS1x1MDE0ZGFuICgxMjc4XHUy'@; put 'MDEzMTI4OCkiLCJTaFx1MDE0ZFx1MDE0ZCAoMTI4OFx1MjAxMzEyOTMpIiwiRWluaW4gKDEyOTNcdTIwMTMxMjk5KSIsIlNoXHUwMTRkYW4gKDEyOTlcdTIwMTMxMzAyKSIsIktlbmdlbiAoMTMwMlx1MjAxMzEzMDMpIiwiS2FnZW4gKDEzMDNcdTIwMTMxMzA2KSIsIlRva3VqaSAoMTMwNlx1'@; put 'MjAxMzEzMDgpIiwiRW5reVx1MDE0ZCAoMTMwOFx1MjAxMzEzMTEpIiwiXHUwMTRjY2hcdTAxNGQgKDEzMTFcdTIwMTMxMzEyKSIsIlNoXHUwMTRkd2EgKDEzMTJcdTIwMTMxMzE3KSIsIkJ1bnBcdTAxNGQgKDEzMTdcdTIwMTMxMzE5KSIsIkdlblx1MDE0ZCAoMTMxOVx1MjAxMzEzMjEpIiwi'@; put 'R2Vua1x1MDE0ZCAoMTMyMVx1MjAxMzEzMjQpIiwiU2hcdTAxNGRjaFx1MDE2YiAoMTMyNFx1MjAxMzEzMjYpIiwiS2FyeWFrdSAoMTMyNlx1MjAxMzEzMjkpIiwiR2VudG9rdSAoMTMyOVx1MjAxMzEzMzEpIiwiR2Vua1x1MDE0ZCAoMTMzMVx1MjAxMzEzMzQpIiwiS2VubXUgKDEzMzRcdTIw'@; put 'MTMxMzM2KSIsIkVuZ2VuICgxMzM2XHUyMDEzMTM0MCkiLCJLXHUwMTRka29rdSAoMTM0MFx1MjAxMzEzNDYpIiwiU2hcdTAxNGRoZWkgKDEzNDZcdTIwMTMxMzcwKSIsIktlbnRva3UgKDEzNzBcdTIwMTMxMzcyKSIsIkJ1bmNoXHUwMTZiICgxMzcyXHUyMDEzMTM3NSkiLCJUZW5qdSAoMTM3'@; put 'NVx1MjAxMzEzNzkpIiwiS1x1MDE0ZHJ5YWt1ICgxMzc5XHUyMDEzMTM4MSkiLCJLXHUwMTRkd2EgKDEzODFcdTIwMTMxMzg0KSIsIkdlbmNoXHUwMTZiICgxMzg0XHUyMDEzMTM5MikiLCJNZWl0b2t1ICgxMzg0XHUyMDEzMTM4NykiLCJLYWtlaSAoMTM4N1x1MjAxMzEzODkpIiwiS1x1MDE0'@; put 'ZFx1MDE0ZCAoMTM4OVx1MjAxMzEzOTApIiwiTWVpdG9rdSAoMTM5MFx1MjAxMzEzOTQpIiwiXHUwMTRjZWkgKDEzOTRcdTIwMTMxNDI4KSIsIlNoXHUwMTRkY2hcdTAxNGQgKDE0MjhcdTIwMTMxNDI5KSIsIkVpa3lcdTAxNGQgKDE0MjlcdTIwMTMxNDQxKSIsIktha2l0c3UgKDE0NDFcdTIw'@; put 'MTMxNDQ0KSIsIkJ1blx1MjAxOWFuICgxNDQ0XHUyMDEzMTQ0OSkiLCJIXHUwMTRkdG9rdSAoMTQ0OVx1MjAxMzE0NTIpIiwiS3lcdTAxNGR0b2t1ICgxNDUyXHUyMDEzMTQ1NSkiLCJLXHUwMTRkc2hcdTAxNGQgKDE0NTVcdTIwMTMxNDU3KSIsIkNoXHUwMTRkcm9rdSAoMTQ1N1x1MjAxMzE0'@; put 'NjApIiwiS2Fuc2hcdTAxNGQgKDE0NjBcdTIwMTMxNDY2KSIsIkJ1bnNoXHUwMTRkICgxNDY2XHUyMDEzMTQ2NykiLCJcdTAxNGNuaW4gKDE0NjdcdTIwMTMxNDY5KSIsIkJ1bm1laSAoMTQ2OVx1MjAxMzE0ODcpIiwiQ2hcdTAxNGRreVx1MDE0ZCAoMTQ4N1x1MjAxMzE0ODkpIiwiRW50b2t1'@; put 'ICgxNDg5XHUyMDEzMTQ5MikiLCJNZWlcdTAxNGQgKDE0OTJcdTIwMTMxNTAxKSIsIkJ1bmtpICgxNTAxXHUyMDEzMTUwNCkiLCJFaXNoXHUwMTRkICgxNTA0XHUyMDEzMTUyMSkiLCJUYWllaSAoMTUyMVx1MjAxMzE1MjgpIiwiS3lcdTAxNGRyb2t1ICgxNTI4XHUyMDEzMTUzMikiLCJUZW5i'@; put 'dW4gKDE1MzJcdTIwMTMxNTU1KSIsIktcdTAxNGRqaSAoMTU1NVx1MjAxMzE1NTgpIiwiRWlyb2t1ICgxNTU4XHUyMDEzMTU3MCkiLCJHZW5raSAoMTU3MFx1MjAxMzE1NzMpIiwiVGVuc2hcdTAxNGQgKDE1NzNcdTIwMTMxNTkyKSIsIkJ1bnJva3UgKDE1OTJcdTIwMTMxNTk2KSIsIktlaWNo'@; put 'XHUwMTRkICgxNTk2XHUyMDEzMTYxNSkiLCJHZW5uYSAoMTYxNVx1MjAxMzE2MjQpIiwiS2FuXHUyMDE5ZWkgKDE2MjRcdTIwMTMxNjQ0KSIsIlNoXHUwMTRkaG8gKDE2NDRcdTIwMTMxNjQ4KSIsIktlaWFuICgxNjQ4XHUyMDEzMTY1MikiLCJKXHUwMTRkXHUwMTRkICgxNjUyXHUyMDEzMTY1'@; put 'NSkiLCJNZWlyZWtpICgxNjU1XHUyMDEzMTY1OCkiLCJNYW5qaSAoMTY1OFx1MjAxMzE2NjEpIiwiS2FuYnVuICgxNjYxXHUyMDEzMTY3MykiLCJFbnBcdTAxNGQgKDE2NzNcdTIwMTMxNjgxKSIsIlRlbm5hICgxNjgxXHUyMDEzMTY4NCkiLCJKXHUwMTRka3lcdTAxNGQgKDE2ODRcdTIwMTMx'@; put 'Njg4KSIsIkdlbnJva3UgKDE2ODhcdTIwMTMxNzA0KSIsIkhcdTAxNGRlaSAoMTcwNFx1MjAxMzE3MTEpIiwiU2hcdTAxNGR0b2t1ICgxNzExXHUyMDEzMTcxNikiLCJLeVx1MDE0ZGhcdTAxNGQgKDE3MTZcdTIwMTMxNzM2KSIsIkdlbmJ1biAoMTczNlx1MjAxMzE3NDEpIiwiS2FucFx1MDE0'@; put 'ZCAoMTc0MVx1MjAxMzE3NDQpIiwiRW5reVx1MDE0ZCAoMTc0NFx1MjAxMzE3NDgpIiwiS2FuXHUyMDE5ZW4gKDE3NDhcdTIwMTMxNzUxKSIsIkhcdTAxNGRyZWtpICgxNzUxXHUyMDEzMTc2NCkiLCJNZWl3YSAoMTc2NFx1MjAxMzE3NzIpIiwiQW5cdTIwMTllaSAoMTc3Mlx1MjAxMzE3ODEp'@; put 'IiwiVGVubWVpICgxNzgxXHUyMDEzMTc4OSkiLCJLYW5zZWkgKDE3ODlcdTIwMTMxODAxKSIsIkt5XHUwMTRkd2EgKDE4MDFcdTIwMTMxODA0KSIsIkJ1bmthICgxODA0XHUyMDEzMTgxOCkiLCJCdW5zZWkgKDE4MThcdTIwMTMxODMwKSIsIlRlbnBcdTAxNGQgKDE4MzBcdTIwMTMxODQ0KSIs'@; put 'IktcdTAxNGRrYSAoMTg0NFx1MjAxMzE4NDgpIiwiS2FlaSAoMTg0OFx1MjAxMzE4NTQpIiwiQW5zZWkgKDE4NTRcdTIwMTMxODYwKSIsIk1hblx1MjAxOWVuICgxODYwXHUyMDEzMTg2MSkiLCJCdW5reVx1MDE2YiAoMTg2MVx1MjAxMzE4NjQpIiwiR2VuamkgKDE4NjRcdTIwMTMxODY1KSIs'@; put 'IktlaVx1MDE0ZCAoMTg2NVx1MjAxMzE4NjgpIiwiTWVpamkiLCJUYWlzaFx1MDE0ZCIsIlNoXHUwMTRkd2EiLCJIZWlzZWkiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sInBlcnNpYW4iOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYi'@; put 'LCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiXSwic2hvcnQiOlsiRmFydmFyZGluIiwiT3JkaWJlaGVzaHQiLCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNmYW5kIl0sImxvbmciOlsiRmFydmFyZGlu'@; put 'IiwiT3JkaWJlaGVzaHQiLCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNmYW5kIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1v'@; put 'biIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJBUCJdLCJzaG9ydCI6WyJBUCJdLCJsb25nIjpbIkFQ'@; put 'Il19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJyb2MiOnsibW9udGhzIjp7Im5hcnJvdyI6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSwic2hvcnQiOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVs'@; put 'IiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sImxvbmciOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0sImRheXMiOnsibmFy'@; put 'cm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXki'@; put 'XX0sImVyYXMiOnsibmFycm93IjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXSwic2hvcnQiOlsiQmVmb3JlIFIuTy5DLiIsIk1pbmd1byJdLCJsb25nIjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX19fSwibnVtYmVyIjp7'@; put 'Im51IjpbImxhdG4iXSwicGF0dGVybnMiOnsiZGVjaW1hbCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfSIsIm5lZ2F0aXZlUGF0dGVybiI6InttaW51c1NpZ259e251bWJlcn0ifSwiY3VycmVuY3kiOnsicG9zaXRpdmVQYXR0ZXJuIjoie2N1cnJlbmN5fXtudW1iZXJ9IiwibmVnYXRp'@; put 'dmVQYXR0ZXJuIjoie21pbnVzU2lnbn17Y3VycmVuY3l9e251bWJlcn0ifSwicGVyY2VudCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfXtwZXJjZW50U2lnbn0iLCJuZWdhdGl2ZVBhdHRlcm4iOiJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNlbnRTaWdufSJ9fSwic3ltYm9scyI6eyJs'@; put 'YXRuIjp7ImRlY2ltYWwiOiIuIiwiZ3JvdXAiOiIsIiwibmFuIjoiTmFOIiwicGx1c1NpZ24iOiIrIiwibWludXNTaWduIjoiLSIsInBlcmNlbnRTaWduIjoiJSIsImluZmluaXR5IjoiXHUyMjFlIn19LCJjdXJyZW5jaWVzIjp7IkFVRCI6IkEkIiwiQlJMIjoiUiQiLCJDQUQiOiJDQSQiLCJD'@; put 'TlkiOiJDTlx4YTUiLCJFVVIiOiJcdTIwYWMiLCJHQlAiOiJceGEzIiwiSEtEIjoiSEskIiwiSUxTIjoiXHUyMGFhIiwiSU5SIjoiXHUyMGI5IiwiSlBZIjoiXHhhNSIsIktSVyI6Ilx1MjBhOSIsIk1YTiI6Ik1YJCIsIk5aRCI6Ik5aJCIsIlRXRCI6Ik5UJCIsIlVTRCI6IiQiLCJWTkQiOiJc'@; put 'dTIwYWIiLCJYQUYiOiJGQ0ZBIiwiWENEIjoiRUMkIiwiWE9GIjoiQ0ZBIiwiWFBGIjoiQ0ZQRiJ9fX0nKX19LGM9Pnt2YXIgbD1uPT5jKGMucz1uKTtsKDU1MzIxKSxsKDQ4MzMyKX1dKTs='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=runtime.c316ac51d5966713.js; filename filecode temp lrecl=32767; data _null_; file filecode; put 'KCgpPT57InVzZSBzdHJpY3QiO3ZhciBlLHM9e30sdj17fTtmdW5jdGlvbiBhKGUpe3ZhciBuPXZbZV07aWYodm9pZCAwIT09bilyZXR1cm4gbi5leHBvcnRzO3ZhciByPXZbZV09e2lkOmUsbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBzW2VdLmNhbGwoci5leHBvcnRzLHIsci5leHBv'@; put 'cnRzLGEpLHIubG9hZGVkPSEwLHIuZXhwb3J0c31hLm09cyxlPVtdLGEuTz0obixyLG8sbCk9PntpZighcil7dmFyIHU9MS8wO2Zvcih0PTA7dDxlLmxlbmd0aDt0Kyspe2Zvcih2YXJbcixvLGxdPWVbdF0sZD0hMCxmPTA7ZjxyLmxlbmd0aDtmKyspKCExJmx8fHU+PWwpJiZPYmplY3Qua2V5'@; put 'cyhhLk8pLmV2ZXJ5KHA9PmEuT1twXShyW2ZdKSk/ci5zcGxpY2UoZi0tLDEpOihkPSExLGw8dSYmKHU9bCkpO2lmKGQpe2Uuc3BsaWNlKHQtLSwxKTt2YXIgYz1vKCk7dm9pZCAwIT09YyYmKG49Yyl9fXJldHVybiBufWw9bHx8MDtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV1bMl0+'@; put 'bDt0LS0pZVt0XT1lW3QtMV07ZVt0XT1bcixvLGxdfSxhLm49ZT0+e3ZhciBuPWUmJmUuX19lc01vZHVsZT8oKT0+ZS5kZWZhdWx0OigpPT5lO3JldHVybiBhLmQobix7YTpufSksbn0sYS5kPShlLG4pPT57Zm9yKHZhciByIGluIG4pYS5vKG4scikmJiFhLm8oZSxyKSYmT2JqZWN0LmRlZmlu'@; put 'ZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6bltyXX0pfSxhLm89KGUsbik9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pLGEucj1lPT57dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUs'@; put 'U3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sYS5ubWQ9ZT0+KGUucGF0aHM9W10sZS5jaGlsZHJlbnx8KGUuY2hpbGRyZW49W10pLGUpLCgoKT0+e3ZhciBlPXs2NjY6MH07YS5PLmo9'@; put 'bz0+MD09PWVbb107dmFyIG49KG8sbCk9Pnt2YXIgZixjLFt0LHUsZF09bCxpPTA7aWYodC5zb21lKF89PjAhPT1lW19dKSl7Zm9yKGYgaW4gdSlhLm8odSxmKSYmKGEubVtmXT11W2ZdKTtpZihkKXZhciBiPWQoYSl9Zm9yKG8mJm8obCk7aTx0Lmxlbmd0aDtpKyspYS5vKGUsYz10W2ldKSYm'@; put 'ZVtjXSYmZVtjXVswXSgpLGVbY109MDtyZXR1cm4gYS5PKGIpfSxyPXNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W107ci5mb3JFYWNoKG4uYmluZChudWxsLDApKSxyLnB1c2g9bi5iaW5kKG51bGwsci5wdXNoLmJpbmQo'@; put 'cikpfSkoKX0pKCk7'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=scripts.89a8947a0266c47a.js; filename filecode temp lrecl=980492; data _null_; file filecode; put 'KGZ1bmN0aW9uKGIsail7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz1qKCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSxqKTtlbHNle3ZhciB6LE09aigpO2Zv'@; put 'cih6IGluIE0pKCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzOmIpW3pdPU1bel19fSkodGhpcyxmdW5jdGlvbigpe3JldHVybiBqPXsiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKiEqXAogICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMgKioqIQogICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihNLGwsdil7'@; put 'InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsLkNsYXJpdHlJY29uc0FwaT12b2lkIDA7dmFyIHA9digKLyohIC4vdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2ZXIgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3No'@; put 'YXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzIiksYT17fTtmdW5jdGlvbiBrKCl7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShrLCJpbnN0YW5jZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBrLnNpbmdsZUluc3RhbmNlPWsuc2luZ2xlSW5zdGFuY2U/ay5zaW5nbGVJbnN0YW5jZTpuZXcga30sZW51'@; put 'bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxrLnByb3RvdHlwZS52YWxpZGF0ZU5hbWU9ZnVuY3Rpb24oUyl7aWYoMD09PVMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiU2hhcGUgbmFtZSBvciBhbGlhcyBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyEiKTtpZigvXHMvLnRlc3QoUykp'@; put 'dGhyb3cgbmV3IEVycm9yKCJTaGFwZSBuYW1lIG9yIGFsaWFzIG11c3Qgbm90IGNvbnRhaW4gYW55IHdoaXRlc3BhY2UgY2hhcmFjdGVycyEiKTtyZXR1cm4hMH0say5wcm90b3R5cGUubm9ybWFsaXplU2hhcGVOYW1lPWZ1bmN0aW9uKFMpe3JldHVybiBTLnRvTG93ZXJDYXNlKCl9LGsucHJv'@; put 'dG90eXBlLnNldEljb25UZW1wbGF0ZT1mdW5jdGlvbihTLEQpe0Q9RC50cmltKCksdGhpcy52YWxpZGF0ZU5hbWUoUykmJihTPXRoaXMubm9ybWFsaXplU2hhcGVOYW1lKFMpLGFbU10mJmRlbGV0ZSBhW1NdLGFbU109RCxwLlNoYXBlVGVtcGxhdGVPYnNlcnZlci5pbnN0YW5jZS5lbWl0Q2hh'@; put 'bmdlcyhTLEQpKX0say5wcm90b3R5cGUuc2V0SWNvbkFsaWFzZXM9ZnVuY3Rpb24oUyxELHgpe2Zvcih2YXIgRz0wLFA9eDtHPFAubGVuZ3RoO0crKyl7dmFyIE89UFtHXTt0aGlzLnZhbGlkYXRlTmFtZShPKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFMsTyx7Z2V0OmZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIFNbRF19LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9fSxrLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oUyl7aWYoIm9iamVjdCIhPXR5cGVvZiBTKXRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBm'@; put 'b2xsb3dpbmcgcGF0dGVybjpcbiAgICAgICAgICAgICAgICB7ICJzaGFwZS1uYW1lIjogInNoYXBlLXRlbXBsYXRlIiB9Jyk7Zm9yKHZhciBEIGluIFMpUy5oYXNPd25Qcm9wZXJ0eShEKSYmdGhpcy5zZXRJY29uVGVtcGxhdGUoRCxTW0RdKX0say5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKFMp'@; put 'e3JldHVybiEhYVt0aGlzLm5vcm1hbGl6ZVNoYXBlTmFtZShTKV19LGsucHJvdG90eXBlLmdldD1mdW5jdGlvbihTKXtpZighUylyZXR1cm4gYTtpZigic3RyaW5nIiE9dHlwZW9mIFMpdGhyb3cgbmV3IFR5cGVFcnJvcigiT25seSBzdHJpbmcgYXJndW1lbnQgaXMgYWxsb3dlZCBpbiB0aGlz'@; put 'IG1ldGhvZC4iKTtyZXR1cm4gYVt0aGlzLm5vcm1hbGl6ZVNoYXBlTmFtZShTKV19LGsucHJvdG90eXBlLmFsaWFzPWZ1bmN0aW9uKFMpe2lmKCJvYmplY3QiIT10eXBlb2YgUyl0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdCBsaXRlcmFsIHBhc3NlZCBp'@; put 'biB0aGUgZm9sbG93aW5nIHBhdHRlcm46XG4gICAgICAgICAgICAgICAgeyAic2hhcGUtbmFtZSI6IFsiYWxpYXMtbmFtZSIsIC4uLl0gfScpO2Zvcih2YXIgRCBpbiBTKWlmKFMuaGFzT3duUHJvcGVydHkoRCkpe2lmKCFhLmhhc093blByb3BlcnR5KEQpKXRocm93IG5ldyBFcnJvcignQW4g'@; put 'aWNvbiAiJytEKyJcIiB5b3UgYXJlIHRyeWluZyB0byBzZXQgYWxpYXNlcyB0byBkb2Vzbid0IGV4aXN0IGluIHRoZSBDbGFyaXR5IEljb25zIHNldHMhIik7dGhpcy5zZXRJY29uQWxpYXNlcyhhLEQsU1tEXSl9fSxsLkNsYXJpdHlJY29uc0FwaT12PWt9LCIuL3Byb2plY3RzL2ljb25zL3Ny'@; put 'Yy9jbHItaWNvbnMtZWxlbWVudC50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50cyAqKiohCiAgICAgIFwqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihNLGwsSCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsLkNsYXJpdHlJY29uRWxlbWVudD12b2lk'@; put 'IDA7dmFyIHA9SCgKLyohIC4vY2xyLWljb25zLWFwaSAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLGE9SCgKLyohIC4vdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2ZXIgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9i'@; put 'c2VydmVyLnRzIiksdj0wLGs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2suY2xhc3NOYW1lPSJpcy1vZmYtc2NyZWVuIjt2YXIgUz1mdW5jdGlvbigpe3JldHVybiBIVE1MRWxlbWVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIEQoKXt2YXIgeD1TLmFwcGx5KHRo'@; put 'aXMsYXJndW1lbnRzKTtyZXR1cm4geC5jbHJJY29uVW5pcUlkPSJfY2xyX2ljb25fIit2LHYrKyx4fSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmKFM9ZnVuY3Rpb24oKXtyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3QoSFRNTEVsZW1lbnQsYXJndW1lbnRzLHRoaXMuY29uc3RydWN0b3IpfSks'@; put 'KGwuQ2xhcml0eUljb25FbGVtZW50PUQpLm9ic2VydmVkQXR0cmlidXRlcz1bInNoYXBlIiwic2l6ZSIsInRpdGxlIl0sKChELnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1'@; put 'ZTpEfX0pKS5jb25zdHJ1Y3Rvcj1EKS5wcm90b3R5cGUuX2FwcGVuZEN1c3RvbVRpdGxlPWZ1bmN0aW9uKCl7dmFyIHg9ay5jbG9uZU5vZGUoITEpO3guaWQ9dGhpcy5jbHJJY29uVW5pcUlkLHgudGV4dENvbnRlbnQ9dGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsLHRoaXMuYXBwZW5kQ2hpbGQo'@; put 'eCl9LEQucHJvdG90eXBlLl9zZXRJY29uU2l6ZT1mdW5jdGlvbih4KXshTnVtYmVyKHgpfHxOdW1iZXIoeCk8MD8odGhpcy5zdHlsZS53aWR0aD1udWxsLHRoaXMuc3R5bGUuaGVpZ2h0PW51bGwpOih0aGlzLnN0eWxlLndpZHRoPXgrInB4Iix0aGlzLnN0eWxlLmhlaWdodD14KyJweCIpfSxE'@; put 'LnByb3RvdHlwZS5fbm9ybWFsaXplU2hhcGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHguc3BsaXQoL1xzLylbMF0udG9Mb3dlckNhc2UoKX0sRC5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXt2YXIgeCxHPXRoaXM7aWYodGhpcy5nZXRBdHRyaWJ1dGUoInJvbGUiKXx8dGhp'@; put 'cy5zZXRBdHRyaWJ1dGUoInJvbGUiLCJub25lIiksdGhpcy5oYXNBdHRyaWJ1dGUoInNpemUiKSYmKHg9dGhpcy5nZXRBdHRyaWJ1dGUoInNpemUiKSx0aGlzLmN1cnJlbnRTaXplQXR0clZhbCE9PXgmJih0aGlzLmN1cnJlbnRTaXplQXR0clZhbD14LHRoaXMuX3NldEljb25TaXplKHgpKSks'@; put 'dGhpcy5oYXNBdHRyaWJ1dGUoInNoYXBlIikpe3ZhciBQPXRoaXMuX25vcm1hbGl6ZVNoYXBlKHRoaXMuZ2V0QXR0cmlidXRlKCJzaGFwZSIpKTtpZih0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uPWEuU2hhcGVUZW1wbGF0ZU9ic2VydmVyLmluc3RhbmNlLnN1YnNjcmliZVRvKFAs'@; put 'ZnVuY3Rpb24oTyl7Ry5faW5qZWN0VGVtcGxhdGUoTyl9KSx0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWw9UCwhcC5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuaGFzKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpcmV0dXJuIHZvaWQgdGhpcy5faW5qZWN0RXJyb3JUZW1wbGF0ZSgpO2lmKChQ'@; put 'PXAuQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpKT09PXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUpcmV0dXJuO3RoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9UH10aGlzLmhhc0F0dHJpYnV0ZSgidGl0bGUiKSYmKFA9dGhpcy5nZXRBdHRy'@; put 'aWJ1dGUoInRpdGxlIiksdGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsIT09UCYmKHRoaXMuY3VycmVudFRpdGxlQXR0clZhbD1QKSwhdGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKXx8dGhpcy5faW5qZWN0VGVtcGxhdGUoKX0sRC5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrPWZ1'@; put 'bmN0aW9uKHgsRyxQKXt2YXIgTz10aGlzO2lmKCJzaXplIj09PXgmJnRoaXMuX3NldEljb25TaXplKFApLCJzaGFwZSI9PT14KXtpZih0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWw9dGhpcy5fbm9ybWFsaXplU2hhcGUoUCksdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmKHRoaXMu'@; put 'X3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24oKSx0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uPWEuU2hhcGVUZW1wbGF0ZU9ic2VydmVyLmluc3RhbmNlLnN1YnNjcmliZVRvKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCxmdW5jdGlvbihUKXtPLl9pbmplY3RUZW1wbGF0ZShUKX0p'@; put 'KSwhcC5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuaGFzKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpcmV0dXJuIHZvaWQgdGhpcy5faW5qZWN0RXJyb3JUZW1wbGF0ZSgpO3RoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9cC5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3Vy'@; put 'cmVudFNoYXBlQXR0clZhbCl9InRpdGxlIj09PXgmJih0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWw9UCwhdGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKXx8dGhpcy5faW5qZWN0VGVtcGxhdGUoKX0sRC5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXt0aGlzLl9zaGFw'@; put 'ZVRlbXBsYXRlU3Vic2NyaXB0aW9uJiZ0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uKCl9LEQucHJvdG90eXBlLl9zZXRBcmlhTGFiZWxsZWRCeT1mdW5jdGlvbigpe3ZhciB4PXRoaXMuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiKSxHPShHPXRoaXMucXVlcnlTZWxlY3Rv'@; put 'cigic3ZnIikpfHx0aGlzO3g/eCYmeC5pbmRleE9mKHRoaXMuY2xySWNvblVuaXFJZCk8MCYmRy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIseCsiICIrdGhpcy5jbHJJY29uVW5pcUlkKTpHLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5Iix0aGlzLmNsckljb25VbmlxSWQp'@; put 'fSxELnByb3RvdHlwZS5faW5qZWN0VGVtcGxhdGU9ZnVuY3Rpb24oeCl7eCYmeCE9PXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUmJih0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPXgpLHRoaXMuaW5uZXJIVE1MPXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUsdGhpcy5jdXJyZW50VGl0bGVB'@; put 'dHRyVmFsJiYodGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkoKSx0aGlzLl9hcHBlbmRDdXN0b21UaXRsZSgpKX0sRC5wcm90b3R5cGUuX2luamVjdEVycm9yVGVtcGxhdGU9ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPXAuQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCgi'@; put 'ZXJyb3IiKSx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1zZngudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNv'@; put 'bnMtc2Z4LnRzICoqKiEKICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oTSxsLEgpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobCwiX19lc01vZHVsZSIs'@; put 'e3ZhbHVlOiEwfSksbC5DbGFyaXR5SWNvbnM9dm9pZCAwO3ZhciBwPUgoCi8qISAuL2luZGV4ICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJDbGFyaXR5SWNvbnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVy'@; put 'biBwLkNsYXJpdHlJY29uc319KSxIPUgoCi8qISAuL3NoYXBlcy9hbGwtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvYWxsLXNoYXBlcy50cyIpLHAuQ2xhcml0eUljb25zLmFkZChILkFsbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyI6Ci8q'@; put 'ISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyAqKiohCiAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9m'@; put 'dW5jdGlvbihNLGwsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsLkNsYXJpdHlJY29ucz12b2lkIDA7dmFyIHY9YSgKLyohIC4vY2xyLWljb25zLWFwaSAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFw'@; put 'aS50cyIpLHA9YSgKLyohIC4vY2xyLWljb25zLWVsZW1lbnQgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1lbGVtZW50LnRzIik7YT1hKAovKiEgLi9zaGFwZXMvY29yZS1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpLChs'@; put 'LkNsYXJpdHlJY29ucz12PXYuQ2xhcml0eUljb25zQXBpLmluc3RhbmNlKS5hZGQoYS5Db3JlU2hhcGVzKSx0eXBlb2Ygd2luZG93PCJ1IiYmKHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIil8fCh3aW5kb3cuQ2xhcml0eUljb25zPXYpLGN1c3RvbUVsZW1lbnRzLmdldCgi'@; put 'Y2xyLWljb24iKXx8Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJjbHItaWNvbiIscC5DbGFyaXR5SWNvbkVsZW1lbnQpKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9hbGwtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KiEqXAogICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9hbGwtc2hhcGVzLnRzICoqKiEKICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKE0sbCxH'@; put 'KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGwuQWxsU2hhcGVzPXZvaWQgMDt2YXIgcD1HKAovKiEgLi9jaGFydC1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jaGFydC1zaGFwZXMudHMiKSxhPUco'@; put 'Ci8qISAuL2NvbW1lcmNlLXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvbW1lcmNlLXNoYXBlcy50cyIpLHY9RygKLyohIC4vY29yZS1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpLGs9RygKLyohIC4vZXNzZW50'@; put 'aWFsLXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2Vzc2VudGlhbC1zaGFwZXMudHMiKSxTPUcoCi8qISAuL21lZGlhLXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyIpLEQ9RygKLyohIC4vc29jaWFsLXNoYXBlcyAq'@; put 'LwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3NvY2lhbC1zaGFwZXMudHMiKSx4PUcoCi8qISAuL3RlY2hub2xvZ3ktc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiKSxQPUcoCi8qISAuL3RleHQtZWRpdC1zaGFwZXMgKi8K'@; put 'Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZXh0LWVkaXQtc2hhcGVzLnRzIiksTz0oRz1HKAovKiEgLi90cmF2ZWwtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyIpLFA9W3YuQ29yZVNoYXBlcyxhLkNvbW1lcmNlU2hhcGVzLGsu'@; put 'RXNzZW50aWFsU2hhcGVzLFMuTWVkaWFTaGFwZXMsRC5Tb2NpYWxTaGFwZXMseC5UZWNobm9sb2d5U2hhcGVzLEcuVHJhdmVsU2hhcGVzLHAuQ2hhcnRTaGFwZXMsUC5UZXh0RWRpdFNoYXBlc10se30pO2wuQWxsU2hhcGVzPU87Zm9yKHZhciBUPTAsdDE9UDtUPHQxLmxlbmd0aDtUKyspe3Zh'@; put 'ciBRLFk9dDFbVF07Zm9yKFEgaW4gWSlZLmhhc093blByb3BlcnR5KFEpJiYoT1tRXT1ZW1FdKX10eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9z'@; put 'aGFwZXMvY2hhcnQtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NoYXJ0LXNoYXBlcy50cyAqKiohCiAgICAgIFwqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKE0sbCxhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGwuQ2hhcnRTaGFwZXM9bC5DbHJT'@; put 'aGFwZUJlbGxDdXJ2ZT1sLkNsclNoYXBlVGlja0NoYXJ0PWwuQ2xyU2hhcGVTY2F0dGVyUGxvdD1sLkNsclNoYXBlUGllQ2hhcnQ9bC5DbHJTaGFwZUxpbmVDaGFydD1sLkNsclNoYXBlSGVhdE1hcD1sLkNsclNoYXBlR3JpZENoYXJ0PWwuQ2xyU2hhcGVDdXJ2ZUNoYXJ0PWwuQ2xyU2hhcGVD'@; put 'bG91ZENoYXJ0PWwuQ2xyU2hhcGVCdWJibGVDaGFydD1sLkNsclNoYXBlQm94UGxvdD1sLkNsclNoYXBlQmFyQ2hhcnQ9bC5DbHJTaGFwZUF4aXNDaGFydD12b2lkIDA7dmFyIHA9YSgKLyohIC4uL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGls'@; put 'cy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGwuQ2xyU2hhcGVBeGlzQ2hhcnQ9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUg'@; put 'MzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAy'@; put 'NS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44'@; put 'OTYgMzQgNyBaIE0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2'@; put 'LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQg'@; put 'Ni42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEy'@; put 'LjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4Ljkx'@; put 'IDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5c'@; put 'biAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn'@; put 'ZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAz'@; put 'MC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0'@; put 'LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4'@; put 'PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAy'@; put 'IDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVk'@; put 'IiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEw'@; put 'LjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEu'@; put 'MDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4w'@; put 'ODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAy'@; put 'OSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5'@; put 'LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAy'@; put 'NC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBk'@; put 'PSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5'@; put 'MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPicpLGwuQ2xyU2hhcGVCYXJDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAg'@; put 'TCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBMIDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYg'@; put 'TCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMyAxNiBMIDI5IDE2IEwgMjkgMjYgTCAyNy40IDI2IEwgMjcuNCAxNy42IEwgMjQuNiAxNy42'@; put 'IEwgMjQuNiAyNiBMIDIzIDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAz'@; put 'MSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAy'@; put 'MyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42'@; put 'NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0'@; put 'IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC00LS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMS45Njkg'@; put 'OS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2'@; put 'IEwgMjkgMTYgTCAyMyAxNiBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwg'@; put 'NCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs'@; put 'ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgx'@; put 'OCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0'@; put 'Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEw'@; put 'NSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcg'@; put 'MTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDcgMjYgTCAxMyAyNiBMIDEzIDEwIEwgNyAxMCBaIE0gMTUgMjYgTCAyMSAyNiBMIDIxIDE5IEwgMTUgMTkgWiBNIDIzIDI2IEwgMjkgMjYgTCAyOSAxNiBMIDIzIDE2IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAx'@; put 'My4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkg'@; put 'MjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxsLkNsclNoYXBlQm94UGxvdD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiww'@; put 'LDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTIgTCAxNyAxMiBMIDE3IDI2IEwgNyAyNiBMIDcgMTIgWiBNIDguNiAyNC40IEwgMTUuNCAyNC40IEwgMTUuNCAxOC44IEwgOC42IDE4LjggTCA4LjYgMjQuNCBaIE0gMTUu'@; put 'NCAxMy42IEwgOC42IDEzLjYgTCA4LjYgMTcuMiBMIDE1LjQgMTcuMiBMIDE1LjQgMTMuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDI0IEwgMjkgMjQgTCAyOSAxMCBMIDE5IDEwIEwgMTkgMjQgWiBNIDIw'@; put 'LjYgMTEuNiBMIDI3LjQgMTEuNiBMIDI3LjQgMTcuMiBMIDIwLjYgMTcuMiBMIDIwLjYgMTEuNiBaIE0gMjcuNCAyMi40IEwgMjAuNiAyMi40IEwgMjAuNiAxOC44IEwgMjcuNCAxOC44IEwgMjcuNCAyMi40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48'@; put 'L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMy'@; put 'IDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAxOSAyNCBMIDI5IDI0IEwgMjkgMTAgTCAxOSAxMCBaIE0gMjEg'@; put 'MTIgTCAyNyAxMiBMIDI3IDE3IEwgMjEgMTcgWiBNIDI3IDIyIEwgMjEgMjIgTCAyMSAxOSBMIDI3IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0'@; put 'IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4x'@; put 'MDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTgu'@; put 'OCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9'@; put 'Ik0gMTkgMTAgTCAyMy43MjggMTAgQyAyNC4xMDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIwLjYgMTEuNiBMIDIwLjYgMTcuMiBMIDI3LjQgMTcuMiBMIDI3LjQgMTIuOTg3IEMgMjcuOTA5IDEzLjE3NyAyOC40NDUgMTMuMzEzIDI5IDEzLjM4NyBMIDI5IDI0IEwgMTkg'@; put 'MjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTguOCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAu'@; put 'MTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMi4zMTIgNi44MTcgMjIuNzMyIDguNTY2IDIzLjYzMyAxMCBMIDE5IDEwIEwgMTkgMjQgTCAyOSAyNCBMIDI5IDEzLjQyNyBD'@; put 'IDI5LjEwMyAxMy40NCAyOS4yMDYgMTMuNDUxIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDcgMjYgTCAxNyAyNiBMIDE3IDEyIEwgNyAxMiBaIE0gOSAxOSBMIDE1IDE5IEwgMTUgMjQgTCA5IDI0IFogTSAxNSAx'@; put 'NyBMIDkgMTcgTCA5IDE0IEwgMTUgMTQgWiBNIDIxIDEyIEwgMjUuNDcyIDEyIEMgMjUuOTQgMTIuMzUyIDI2LjQ1MiAxMi42NSAyNyAxMi44ODUgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAz'@; put 'NCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwv'@; put 'cGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAx'@; put 'NS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAyNCBMIDE5IDI0IEwgMTkgMTUuMzQ1IEMgMTkuMDIxIDE1LjM0OCAyMC42IDE1LjM2IDIwLjYgMTUuMzYgTCAyMC42'@; put 'IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDE1LjM2IEwgMjkgMTUuMzU3IEwgMjkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTguOCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBMIDI3LjQgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'My0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4'@; put 'IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAy'@; put 'OS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg'@; put 'MzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE5LjAyOCAxMCBMIDE5IDEwIEwgMTkgMTAuMDQ4IEwgMTcuNjI1IDEyLjM5NSBDIDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAx'@; put 'OSAyNCBMIDI5IDI0IEwgMjkgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAyNyAxNyBMIDIxIDE3IEwgMjEgMTUuMzU3IEwg'@; put 'MjcgMTUuMzU3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAw'@; put 'NCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgx'@; put 'IDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksbC5DbHJTaGFwZUJ1YmJsZUNoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBN'@; put 'IDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAy'@; put 'OSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAxNi42IDI0LjYgMTcuMjI3IDI0LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDEx'@; put 'Ljc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIxIDIzIEMgMjEgMjQuNjU3IDE5LjY1NyAyNiAxOCAyNiBDIDE2LjM0MyAyNiAxNSAyNC42NTcgMTUgMjMgQyAxNSAyMS4zNDMgMTYuMzQzIDIwIDE4IDIwIEMgMTkuNjU3IDIw'@; put 'IDIxIDIxLjM0MyAyMSAyMyBaIE0gMTggMjEuNiBDIDE3LjIyNyAyMS42IDE2LjYgMjIuMjI3IDE2LjYgMjMgQyAxNi42IDIzLjc3MyAxNy4yMjcgMjQuNCAxOCAyNC40IEMgMTguNzczIDI0LjQgMTkuNCAyMy43NzMgMTkuNCAyMyBDIDE5LjQgMjIuMjI3IDE4Ljc3MyAyMS42IDE4IDIxLjYg'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAy'@; put 'Ljg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkg'@; put 'MTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIw'@; put 'IEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5'@; put 'NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcg'@; put 'MjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIxIDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAxNi42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIy'@; put 'NyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTkuNCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxw'@; put 'YXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQg'@; put 'QyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgcng9'@; put 'IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcg'@; put 'MjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgcng9IjMiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIy'@; put 'LjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIw'@; put 'OSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUg'@; put 'MjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBD'@; put 'IDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5c'@; put 'biAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAxNSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3'@; put 'LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMgMjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMgMTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0yLS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDEx'@; put 'LjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAy'@; put 'MSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAy'@; put 'Ni44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQu'@; put 'ODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3'@; put 'LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNC41NzkgMTUuMzU3IEMgMjMuNjM5IDE1Ljg2MyAyMyAxNi44NTcgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1'@; put 'NyAyOSAxOCBDIDI5IDE2Ljg1NyAyOC4zNjEgMTUuODYzIDI3LjQyMSAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDExIDEwIEMgOC43OTEgMTAgNyAxMS43OTEgNyAxNCBDIDcgMTYuMjA5IDguNzkxIDE4IDExIDE4IEMgMTMuMjA5IDE4IDE1IDE2LjIwOSAxNSAxNCBDIDE1IDExLjc5MSAxMy4y'@; put 'MDkgMTAgMTEgMTAgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2'@; put 'IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1'@; put 'NCAxLjE0NCBaIj48L3BhdGg+JyksbC5DbHJTaGFwZUNsb3VkQ2hhcnQ9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCww'@; put 'LDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1'@; put 'Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEwLjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4z'@; put 'ODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAxNy43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBh'@; put 'dGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjcgMjAuNiAyMy42IDIxLjIyNyAy'@; put 'My42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI3IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNyAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI3Ij48L3Bh'@; put 'dGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUg'@; put 'QyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAx'@; put 'MS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUg'@; put 'MTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAy'@; put 'Mi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4w'@; put 'MjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIwLjk3MSAxMS4yNDMgQyAyMy4zMTQgMTMuNTg2IDIyLjM2NCAxOC4zMzUgMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMxNCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44Nzgg'@; put 'MTAuMzY0IDEzLjM2NCBDIDEzLjg3OSA5Ljg0OSAxOC42MjggOC45IDIwLjk3MSAxMS4yNDMgWiBNIDExLjYzNiAxNC42MzcgQyA4LjgyNCAxNy40NDkgNy44NzUgMjEuMDU4IDkuNTE1IDIyLjY5OCBDIDExLjE1NSAyNC4zMzggMTQuNzY0IDIzLjM4OSAxNy41NzYgMjAuNTc3IEMgMjAuMzg4'@; put 'IDE3Ljc2NSAyMS4zMzggMTQuMTU2IDE5LjY5NyAxMi41MTYgQyAxOC4wNTcgMTAuODc2IDE0LjQ0OCAxMS44MjUgMTEuNjM2IDE0LjYzNyBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAy'@; put 'OCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMg'@; put 'MjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0i'@; put 'NyI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p'@; put 'LXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAx'@; put 'My4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAy'@; put 'MS44NDkgQyAyMi4zNjQgMTguMzM1IDIzLjMxNCAxMy41ODYgMjAuOTcxIDExLjI0MyBDIDE4LjYyOCA4LjkgMTMuODc5IDkuODQ5IDEwLjM2NCAxMy4zNjQgWiBNIDI1IDE5IEMgMjMuMzQzIDE5IDIyIDIwLjM0MyAyMiAyMiBDIDIyIDIzLjY1NyAyMy4zNDMgMjUgMjUgMjUgQyAyNi42NTcg'@; put 'MjUgMjggMjMuNjU3IDI4IDIyIEMgMjggMjAuMzQzIDI2LjY1NyAxOSAyNSAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xl'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUg'@; put 'NSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEu'@; put 'NjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMuMzY0IEMgMTMuMDQ5IDEwLjY3OSAxNi40NTMgOS40OTIgMTguOTU2IDEwLjEyNCBMIDE4LjAwOCAxMS43NDEgQyAxNi4xOCAxMS41MTggMTMuNjk1IDEyLjU3OCAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUx'@; put 'NSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDE5LjIyOCAxOC45MjUgMjAuMjM3IDE2Ljk5OCAyMC40NTYgMTUuMzU3IEwgMjIuMjIgMTUuMzU3IEMgMjIuMDA2IDE3LjQ3NyAyMC44MzggMTkuODYxIDE4Ljg0OSAyMS44NDkgWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAx'@; put 'OSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMg'@; put 'MjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1p'@; put 'LWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUu'@; put 'MzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMTguOTU2IDEwLjEyNCBDIDE2'@; put 'LjQ1MyA5LjQ5MiAxMy4wNDkgMTAuNjc5IDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMC44MzggMTkuODYxIDIyLjAwNiAxNy40NzcgMjIuMjIgMTUuMzU3'@; put 'IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAw'@; put 'NiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44'@; put 'NTQgMS4xNDQgWiI+PC9wYXRoPicpLGwuQ2xyU2hhcGVDdXJ2ZUNoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMw'@; put 'LjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4y'@; put 'IDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQg'@; put 'MTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEg'@; put 'MjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5'@; put 'IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1'@; put 'LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAxNiAxNy43OTkgMTMuODgyIDE3'@; put 'LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkg'@; put 'QyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIg'@; put 'Ni4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAx'@; put 'OC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAx'@; put 'Ni40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1'@; put 'IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMg'@; put 'MjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAx'@; put 'OC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAxNiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNs'@; put 'ZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy'@; put 'dGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAx'@; put 'NS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42'@; put 'MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40'@; put 'NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUu'@; put 'MDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAw'@; put 'NCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1'@; put 'IEwgMTcuNjI1IDEyLjM5NSBDIDE3LjQ3NiAxMi42MTIgMTcuMzc5IDEyLjg0MyAxNy4zMyAxMy4wNzcgQyAxNy4yNjIgMTIuOTQ4IDE3LjE5MiAxMi44MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDEx'@; put 'IEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBMIDEzIDEyIEMgMTQuODE3IDEyIDE1LjY3NCAxMy40OTkgMTcuMDM5IDE4LjI3NSBDIDE3LjgxMyAyMC45ODQgMTguMjAxIDIyLjExOCAxOC44ODIgMjMuMzA5IEMgMTkuODcgMjUuMDM4IDIxLjIwNSAyNiAyMyAyNiBMIDI5IDI2IEMgMjkuNTUy'@; put 'IDI2IDMwIDI1LjU1MiAzMCAyNSBDIDMwIDI0LjQ0OCAyOS41NTIgMjQgMjkgMjQgTCAyMyAyNCBDIDIxLjE4MyAyNCAyMC4zMjYgMjIuNTAxIDE4Ljk2MiAxNy43MjUgQyAxOC42NCAxNi41OTggMTguMzg1IDE1Ljc0NCAxOC4xNDcgMTUuMDQ0IEMgMTguNDA3IDE1LjIxNSAxOC43MTcgMTUu'@; put 'MzI2IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i'@; put 'TSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEg'@; put 'MzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxsLkNsclNoYXBlR3JpZENoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xu'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiwxN0gyMWEyLDIsMCwwLDEtMi0yVjhhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDE3Wk0yMSw4djdIMzJWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJN'@; put 'MzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMTUgMTcgTCA0IDE3IEMgMi44'@; put 'OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBDIDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTIiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDMyIDYgQyAzMy4xMDUgNiAzNCA2Ljg5NSAzNCA4IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBDIDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAxNyAyOCBDIDE3IDI5'@; put 'LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkg'@; put 'QyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS1hbGVydGVkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhB'@; put 'MiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLWFsZXJ0ZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDIwLjAxNCAxNyAx'@; put 'OS4xOTUgMTYuMjg3IDE5LjAzIDE1LjM0OCBDIDE5LjA0MSAxNS4zNDkgMTkuMDUzIDE1LjM1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzMuOTY4IDE1LjM1NyBDIDMzLjggMTYuMjkyIDMyLjk4MyAxNyAzMiAxNyBaIE0gMTkg'@; put 'OCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAyMS4zNzIgNiBMIDE5IDEwLjA0OCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtYWxlcnRlZCIgZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0y'@; put 'SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC1hbGVydGVkIiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0y'@; put 'SDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAx'@; put 'MS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDEx'@; put 'LjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDE1'@; put 'IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYuMTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4zNSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUu'@; put 'MzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAxNS4zNTcgQyAzMy44IDE2LjI5MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy'@; put 'LWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAz'@; put 'MCAxNSAzMCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAz'@; put 'MiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAx'@; put 'LjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEu'@; put 'MTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'LS1iYWRnZWQiIGQ9Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh'@; put 'ZGdlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMTkuODk1IDE3IDE5IDE2LjEwNSAxOSAxNSBMIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjIuNTkgNiBDIDIyLjU5IDYuMDE5IDIyLjU5IDYuMDM3IDIyLjU5IDYuMDU2IEMgMjIuNTkgNi43MjkgMjIuNjggNy4zODEgMjIuODQ4'@; put 'IDggTCAyMSA4IEwgMjEgMTUgTCAzMiAxNSBMIDMyIDEzLjE3NSBDIDMyLjcxNyAxMi45NzIgMzMuMzg5IDEyLjY2NCAzNCAxMi4yNjkgTCAzNCAxNSBDIDM0IDE2LjEwNSAzMy4xMDUgMTcgMzIgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTMyLDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1'@; put 'IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQgNiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQi'@; put 'IGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2LjA1NiBDIDIyLjU5IDEwLjE0MSAyNS45MDEgMTMuNDUyIDI5Ljk4NiAx'@; put 'My40NTIgQyAzMS40NjYgMTMuNDUyIDMyLjg0NCAxMy4wMTggMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0gMTUgMzAgTCA0'@; put 'IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAyOCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTkuODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBD'@; put 'IDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksbC5DbHJTaGFwZUhlYXRNYXA9KDAsYS5jbHJJY29u'@; put 'U1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkg'@; put 'TCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDI4IDEwIEwgMjggMjYgTCA4IDI2IFogTSA5LjYgMjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0'@; put 'LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDI2IDExLjYgTCAyMS45IDExLjYgTCAyMS45IDE3LjIgTCAyNiAxNy4yIFogTSAxNS43IDExLjYgTCAxNS43IDE3LjIgTCAyMC4zIDE3'@; put 'LjIgTCAyMC4zIDExLjYgWiBNIDE1LjcgMjQgTCAyMC4zIDI0IEwgMjAuMyAxOC44IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAy'@; put 'IDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDIzLjcyOCAxMCBDIDI0LjEwNSAx'@; put 'MC41OTYgMjQuNTY0IDExLjEzNSAyNS4wOSAxMS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBMIDI2IDEyLjI4NyBDIDI2LjYxMSAxMi42NzkgMjcuMjg0IDEyLjk4MyAyOCAxMy4xODIgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4Ljgg'@; put 'TCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAxMS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwg'@; put 'MjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1LjcgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0t'@; put 'YmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAz'@; put 'MSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDE5LjAyOCAxMCBM'@; put 'IDE4LjA5MSAxMS42IEwgMTUuNyAxMS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxNS4zNTcgTCAyMS45IDE1LjM1NyBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxNS4zNTcgTCAyOCAxNS4zNTcgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4x'@; put 'IDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIx'@; put 'LjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQu'@; put 'ODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAz'@; put 'NCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gOCAyNiBMIDI4IDI2IEwgMjggMTAgTCA4IDEwIFogTSAxMCAx'@; put 'OSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAyNiAxMiBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBN'@; put 'IDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEwIDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMg'@; put 'Mi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTMuMjMyIEMgMjguNDIxIDEzLjM0NSAyOC44NTkgMTMuNDIyIDI5'@; put 'LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwIDE5IEwgMTQgMTkgTCAxNCAyNCBMIDEwIDI0IFogTSAyMiAyNCBMIDIyIDE5IEwgMjYgMTkgTCAyNiAyNCBaIE0gMjAgMTkgTCAyMCAyNCBMIDE2IDI0IEwgMTYgMTkg'@; put 'WiBNIDI2IDE3IEwgMjIgMTcgTCAyMiAxMiBMIDI1LjU4NCAxMiBDIDI1LjcxOSAxMi4xIDI1Ljg1OCAxMi4xOTYgMjYgMTIuMjg3IFogTSAyMCAxMiBMIDIwIDE3IEwgMTYgMTcgTCAxNiAxMiBaIE0gMTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8Y2lyY2xl'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQi'@; put 'IGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTUuMzU3IEwgMzQgMTUu'@; put 'MzU3IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTUuMzU3IEwgMjYgMTUuMzU3IFogTSAyMCAxNyBMIDE2IDE3'@; put 'IEwgMTYgMTIgTCAxNy44NTYgMTIgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjAgMTUuMzU3IFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAx'@; put 'MCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3'@; put 'IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAx'@; put 'LjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGwuQ2xyU2hhcGVMaW5lQ2hhcnQ9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUg'@; put 'QyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4g'@; put 'IDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUuMjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1LjE0NSIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcG9seWdvbj5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMxIEwgMzIgMzEg'@; put 'QyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk2IDMzLjEwNSA1IDMyIDUgWiBNIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3'@; put 'IEwgMjkuNjUgMTMgTCAzMS4zNSAxNC4yOCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42Njgg'@; put 'MjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMg'@; put 'MzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUuMjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEz'@; put 'LjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BvbHlnb24+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0t'@; put 'YmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzAuMzIgMTMuNDggTCAzMS4zOCAxNC4yOCBMIDIyLjU2IDI1Ljk0IEwgMTUu'@; put 'NDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuMzEgMTMuNDYgQyAyNS4wNSAxMy4xIDIxLjk2OSA5LjIzMyAyMi41NyA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIg'@; put 'MjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgMTIuMzQgQyAzMi44OTUgMTMuMDM2IDMxLjYyNiAxMy40MjkgMzAuMzIgMTMuNDggWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUg'@; put 'MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9'@; put 'Ik0gMTUuNjIgMTUuMjIyIEwgOS42MDIgMjMuOTY4IEwgNS41NSAyMC4zODQgTCA2LjYxIDE5LjE4NiBMIDkuMzA4IDIxLjU3MiBMIDE1LjYzNCAxMi4zOCBMIDIyLjM4NCAyMi4zOTUgTCAyNy43MTcgMTUuMzQ4IEwgMjkuNzI0IDE1LjM0OCBMIDIyLjMwOCAyNS4xNDUgWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEu'@; put 'MTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44'@; put 'MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0'@; put 'ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2'@; put 'NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjcuNDUyIDE1LjM1NyBMIDIyLjM4IDIyLjA2IEwgMTUuNjMgMTIgTCA5LjI4IDIxLjI4IEwgNi43NSAxOS4wNCBMIDUuNDIgMjAuNTMgTCA5LjY1IDI0LjI4IEwgMTUuNjEgMTUuNTYgTCAyMi4y'@; put 'OCAyNS41IEwgMjkuOTU5IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3'@; put 'OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDEx'@; put 'LjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksbC5DbHJTaGFwZVBpZUNoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcg'@; put 'TCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMgMjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40'@; put 'IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMuMjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgQyAzMiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAy'@; put 'Ljg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcg'@; put 'MTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkgOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42'@; put 'NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0'@; put 'IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3'@; put 'IFogTSAyMy4yNDcgMjAuNCBMIDE1LjQgMjAuNCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEw'@; put 'LjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFk'@; put 'Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAz'@; put 'MSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAyNSAxOSBMIDE3IDE5IEwg'@; put 'MTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkgOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAy'@; put 'OSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0'@; put 'aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEyLjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcgMjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAx'@; put 'Mi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAxMC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0t'@; put 'YWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI3IDE3IEwgMTkgMTcgTCAxOSAxNS4zNDUgQyAxOS4wMjEgMTUuMzQ4IDE5LjA0MyAxNS4zNDkgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNi44MzEgMTUuMzU3IEMgMjYu'@; put 'OTQyIDE1Ljg4NyAyNyAxNi40MzcgMjcgMTcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0'@; put 'ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEz'@; put 'LjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIu'@; put 'Mzk1IEMgMTYuODA3IDEzLjU4MyAxNy41NzEgMTUuMTk3IDE5IDE1LjM0NSBMIDE5IDE3IEwgMjcgMTcgQyAyNyAxNi40MzcgMjYuOTQyIDE1Ljg4NyAyNi44MzEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBD'@; put 'IDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIx'@; put 'LjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQu'@; put 'ODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGwuQ2xyU2hhcGVTY2F0dGVyUGxvdD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUg'@; put 'NSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQg'@; put 'TCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4z'@; put 'OTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEw'@; put 'LjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1'@; put 'Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIu'@; put 'MTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDgg'@; put 'QyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEg'@; put 'MjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAy'@; put 'NC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIg'@; put 'MjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1'@; put 'IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0'@; put 'LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEy'@; put 'LjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUu'@; put 'OCBaIE0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42'@; put 'MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1'@; put 'NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYg'@; put 'WiBNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0'@; put 'IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMg'@; put 'QyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxu'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIu'@; put 'NTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIv'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAx'@; put 'Ni4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45Mjkg'@; put 'MTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3'@; put 'IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYu'@; put 'MzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIw'@; put 'LjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1'@; put 'IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEz'@; put 'IDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2'@; put 'Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAz'@; put 'IDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUg'@; put 'MTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2'@; put 'LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAx'@; put 'Mi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcg'@; put 'QyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTku'@; put 'OTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYg'@; put 'MjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2'@; put 'NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3Ljcx'@; put 'NiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1'@; put 'Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAx'@; put 'OS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwg'@; put 'NCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAu'@; put 'MjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAx'@; put 'MS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4'@; put 'IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9'@; put 'Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcg'@; put 'MTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBD'@; put 'IDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIv'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQz'@; put 'IEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMg'@; put 'MjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0'@; put 'LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0'@; put 'IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAx'@; put 'MS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEt'@; put 'LWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1'@; put 'IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2'@; put 'LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAx'@; put 'Mi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcg'@; put 'QyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTku'@; put 'OTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYg'@; put 'MjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2'@; put 'NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3Ljcx'@; put 'NiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1'@; put 'Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAx'@; put 'OS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAy'@; put 'MS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4'@; put 'NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiBmaWxsLW9wYWNpdHk9IjAiLz4nKSxsLkNsclNoYXBlVGlja0NoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0'@; put 'IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBM'@; put 'IDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYgMjguNDgzIDI2LjkzIDI3Ljcy'@; put 'MyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2'@; put 'IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUg'@; put 'MjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44'@; put 'OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAy'@; put 'NSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMx'@; put 'IEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBN'@; put 'IDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIyIEwgMTgg'@; put 'MjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5'@; put 'PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1'@; put 'Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2'@; put 'IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAy'@; put 'NS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYu'@; put 'ODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1'@; put 'NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUu'@; put 'MjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAy'@; put 'NS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4'@; put 'OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4y'@; put 'OTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxsLkNsclNoYXBlQmVsbEN1cnZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywyOUgzQTEsMSwwLDEsMSwzLDI3SDMzQTEsMSwwLDEsMSwzMywyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo'@; put 'IGQ9Ik0zMywyNWgtLjYyYTguMTEsOC4xMSwwLDAsMS04LTYuNjdDMjMuNjIsMTQuNDQsMjEuODksNy45NCwxOCw3Ljk0cy01LjY5LDYuNTEtNi4zOCwxMC4zOWE4LjExLDguMTEsMCwwLDEtOCw2LjY1SDNhMSwxLDAsMSwxLDAtMmguNkE2LjExLDYuMTEsMCwwLDAsOS42LDE4YzEuNDEtNy44'@; put 'OCw0LjMtMTIsOC4zNS0xMnM2LjkzLDQuMTYsOC4zMywxMmE2LjExLDYuMTEsMCwwLDAsNiw1SDMzYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxsLkNoYXJ0U2hhcGVzPXsiYXhpcy1jaGFydCI6bC5DbHJTaGFwZUF4aXND'@; put 'aGFydCwiYmFyLWNoYXJ0IjpsLkNsclNoYXBlQmFyQ2hhcnQsImJ1YmJsZS1jaGFydCI6bC5DbHJTaGFwZUJ1YmJsZUNoYXJ0LCJjbG91ZC1jaGFydCI6bC5DbHJTaGFwZUNsb3VkQ2hhcnQsImN1cnZlLWNoYXJ0IjpsLkNsclNoYXBlQ3VydmVDaGFydCwiZ3JpZC1jaGFydCI6bC5DbHJTaGFw'@; put 'ZUdyaWRDaGFydCwibGluZS1jaGFydCI6bC5DbHJTaGFwZUxpbmVDaGFydCwicGllLWNoYXJ0IjpsLkNsclNoYXBlUGllQ2hhcnQsInRpY2stY2hhcnQiOmwuQ2xyU2hhcGVUaWNrQ2hhcnQsInNjYXR0ZXItcGxvdCI6bC5DbHJTaGFwZVNjYXR0ZXJQbG90LCJib3gtcGxvdCI6bC5DbHJTaGFw'@; put 'ZUJveFBsb3QsImhlYXQtbWFwIjpsLkNsclNoYXBlSGVhdE1hcCwiYmVsbC1jdXJ2ZSI6bC5DbHJTaGFwZUJlbGxDdXJ2ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ2hhcnRTaGFwZXMsImFuYWx5dGljcyIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkNoYXJ0U2hhcGVzWyJsaW5lLWNo'@; put 'YXJ0Il0pKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQobC5DaGFydFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIjoKLyohKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvbW1lcmNlLXNoYXBlcy50cyAqKiohCiAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKE0sbCxhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGwuQ29tbWVyY2VTaGFwZXM9bC5DbHJTaGFwZUZhY3Rvcnk9bC5DbHJTaGFw'@; put 'ZUVtcGxveWVlPWwuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPWwuQ2xyU2hhcGVSdWJsZT1sLkNsclNoYXBlUGVzbz1sLkNsclNoYXBlQ29pbkJhZz1sLkNsclNoYXBlQml0Y29pbj1sLkNsclNoYXBlWWVuPWwuQ2xyU2hhcGVXb249bC5DbHJTaGFwZVJ1cGVlPWwuQ2xyU2hhcGVQb3VuZD1sLkNs'@; put 'clNoYXBlRUNoZWNrPWwuQ2xyU2hhcGVEb2xsYXJCaWxsPWwuQ2xyU2hhcGVCYW5rPWwuQ2xyU2hhcGVDcmVkaXRDYXJkPWwuQ2xyU2hhcGVEb2xsYXI9bC5DbHJTaGFwZUV1cm89bC5DbHJTaGFwZVN0b3JlPWwuQ2xyU2hhcGVXYWxsZXQ9bC5DbHJTaGFwZVNob3BwaW5nQ2FydD1sLkNsclNo'@; put 'YXBlUGlnZ3lCYW5rPWwuQ2xyU2hhcGVTaG9wcGluZ0JhZz1sLkNsclNoYXBlQ2FsY3VsYXRvcj12b2lkIDA7dmFyIHA9YSgKLyohIC4uL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgKLyoh'@; put 'IC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGwuQ2xyU2hhcGVDYWxjdWxhdG9yPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIiBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJaTTgsMzJWNEgyOFYzMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJN'@; put 'MTIsOEgyNS42N1Y2SDExYTEsMSwwLDAsMC0xLDF2NC42N2gyWiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHBvaW50cz0iMTIgMTYgMTAgMTYgMTAgMTggMTQgMTggMTQgMTQgMTIgMTQgMTIgMTYiLz5cbiAgICAg'@; put 'ICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBwb2ludHM9IjI0IDE2IDIyIDE2IDIyIDE4IDI2IDE4IDI2IDE0IDI0IDE0IDI0IDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNSIgcG9pbnRzPSIxOCAxNiAxNiAxNiAxNiAxOCAyMCAxOCAyMCAxNCAxOCAxNCAxOCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHBvaW50cz0iMTIgMjIgMTAgMjIgMTAgMjQgMTQgMjQgMTQg'@; put 'MjAgMTIgMjAgMTIgMjIiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiBwb2ludHM9IjI0IDIyIDIyIDIyIDIyIDI0IDI2IDI0IDI2IDIwIDI0IDIwIDI0IDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgcG9pbnRzPSIxOCAyMiAxNiAyMiAxNiAyNCAyMCAyNCAyMCAyMCAxOCAyMCAxOCAyMiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIHBvaW50cz0iMTIg'@; put 'MjggMTAgMjggMTAgMzAgMTQgMzAgMTQgMjYgMTIgMjYgMTIgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIgcG9pbnRzPSIyNCAyOCAyMiAyOCAyMiAzMCAyNiAzMCAyNiAyNiAyNCAyNiAyNCAyOCIvPlxuICAg'@; put 'ICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiBwb2ludHM9IjE4IDI4IDE2IDI4IDE2IDMwIDIwIDMwIDIwIDI2IDE4IDI2IDE4IDI4Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xIiBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJaTTEyLDI4SDEwVjI2aDJabTAtNkgxMFYyMGgyWm0wLTZIMTBWMTRoMlptNywxMkgxN1YyNmgyWm0wLTZIMTdWMjBoMlptMC02SDE3VjE0aDJa'@; put 'bTcsMTJIMjRWMjZoMlptMC02SDI0VjIwaDJabTAtNkgyNFYxNGgyWm0wLTdIMTBWNUgyNloiLz4nKSxsLkNsclNoYXBlU2hvcHBpbmdCYWc9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNSwxMlY5LjA1YTcs'@; put 'NywwLDEsMC0xNCwwdjdhMSwxLDAsMCwwLDIsMFYxNGg4VjEySDEzVjkuMDVhNSw1LDAsMSwxLDEwLDBWMTZhMSwxLDAsMSwwLDIsMFYxNGg1VjMySDZWMTRIOVYxMkg0VjMyLjA5QTEuOTEsMS45MSwwLDAsMCw1LjkxLDM0SDMwLjA5QTEuOTEsMS45MSwwLDAsMCwzMiwzMi4wOVYxMloiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMyw5LjIyYTUsNSwwLDEsMSwxMCwwVjEyaDJWOS4yMmE3LDcsMCwxLDAtMTQsMFYxMmgyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMiIgZD0iTTI1LDEydjMuMWExLDEsMCwxLDEtMiwwVjEySDEzdjMuMWExLDEsMCwwLDEtMiwwVjEySDRWMzJhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEyWiIvPicpLGwuQ2xyU2hhcGVQaWdneUJhbms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS43MiwxMC40N2ExMS42NSwxMS42NSwwLDAsMC02LjMxLjUyQS44LjgsMCwxLDAsMTQsMTIuNDgsMTAuMTEsMTAuMTEsMCwwLDEsMTkuNDQsMTJhLjguOCwwLDEsMCwuMjgtMS41N1oiLz5cbiAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyNS4zOCIgY3k9IjE2LjcxIiByPSIxLjM2Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTM1LjUxLDE4LjYzYTEsMSwwLDAs'@; put 'MC0uODQtLjQ0LDMuNDIsMy40MiwwLDAsMS0yLjA5LTEuMTIsMTcuMzUsMTcuMzUsMCwwLDEtMi42My0zLjc4bDIuODgtNC41QTEuODksMS44OSwwLDAsMCwzMyw3YTEuNzcsMS43NywwLDAsMC0xLjMzLTEsMTAuMTIsMTAuMTIsMCwwLDAtNS4zOS43NSwxMi43MiwxMi43MiwwLDAsMC0yLjcy'@; put 'LDEuNjMsMTYuOTQsMTYuOTQsMCwwLDAtNS4xNi0xLjM5QzExLjMxLDYuMyw0LjgzLDEwLjksNCwxN0g0YTIuNTYsMi41NiwwLDAsMS0xLjM4LTEuNTMsMS44MSwxLjgxLDAsMCwxLC4xNC0xLjQsMS4xOSwxLjE5LDAsMCwxLC40My0uNDMsMS4wOCwxLjA4LDAsMCwwLTEuMTItMS44NUEzLjMx'@; put 'LDMuMzEsMCwwLDAsLjkxLDEzYTQsNCwwLDAsMC0uMzMsMy4wOEE0Ljc2LDQuNzYsMCwwLDAsMywxOC45NWwuOTIuNDZhMTcuNTgsMTcuNTgsMCwwLDAsMS44Miw3bC4xNy4zOEEyMywyMywwLDAsMCw5LjIsMzEuODhhMSwxLDAsMCwwLC43NS4zNGg0LjUyYTEsMSwwLDAsMCwuOTItMS4zOEwx'@; put 'NSwyOS45NGwxLjE4LjEzYTIwLjMzLDIwLjMzLDAsMCwwLDQsMGMuMzcuNi43NywxLjIsMS4yMSwxLjc5YTEsMSwwLDAsMCwuOC40MWg0LjM0YTEsMSwwLDAsMCwuOTItMS4zOWMtLjE3LS40LS4zNC0uODMtLjQ3LTEuMi0uMTgtLjUzLS4zMi0xLS40My0xLjQ1QTEzLjE4LDEzLjE4LDAsMCww'@; put 'LDI5LjU2LDI2YTEyLjUsMTIuNSwwLDAsMCwzLDAsMSwxLDAsMCwwLC43OC0uNjJsMi4yNi01LjgxQTEsMSwwLDAsMCwzNS41MSwxOC42M1ptLTMuNzgsNS40NGExMS4zNywxMS4zNywwLDAsMS0yLjM1LS4xMWgwYTguMiw4LjIsMCwwLDEtMi41My0uODcsMSwxLDAsMCwwLS45MywxLjc3LDEx'@; put 'LjcyLDExLjcyLDAsMCwwLDEuMjkuNTgsOCw4LDAsMCwxLTEuOCwxLjE2bC0xLjA2LjQ4cy40OSwyLjE5LjgyLDMuMTZIMjIuNzljLS4yNC0uMzQtMS40NS0yLjM2LTEuNDUtMi4zNmwtLjY3LjA5YTE4LjUzLDE4LjUzLDAsMCwxLTQuMjUuMTJjLS42Ni0uMDYtMS43Ni0uMi0yLjYyLS4zNWwt'@; put 'MS41NS0uMjdzLjYzLDIuNDMuNzUsMi43NHYwSDEwLjQyQTIwLjU3LDIwLjU3LDAsMCwxLDcuNzYsMjZsLS4xOC0uMzlBMTQuNjIsMTQuNjIsMCwwLDEsNiwxNy40OGMuNTQtNS4xOSw2LjEyLTkuMTEsMTIuMTktOC41NGExNS40NywxNS40NywwLDAsMSw1LjA4LDEuNDhsLjYyLjI5LjUtLjQ3'@; put 'QTEwLjI5LDEwLjI5LDAsMCwxLDI3LDguNTRhOC4yNSw4LjI1LDAsMCwxLDQtLjY1bC0zLjM4LDUuMjkuMjUuNWgwYTIxLjE2LDIxLjE2LDAsMCwwLDMuMzEsNC44NCw2LjQ5LDYuNDksMCwwLDAsMi4xNCwxLjM5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM1LDE4Ljg3QTUuODMsNS44MywwLDAsMSwzMywxNy42MWEyMS42MywyMS42MywwLDAsMS0zLjI5LTQuODRsMy4zOS01LjI5YS45LjksMCwwLDAtLjU0LTEuMzgsOS42Nyw5LjY3LDAsMCwwLTUuMTMuNzIsMTIsMTIsMCwwLDAtMy4xMywyQTE3LjM3LDE3'@; put 'LjM3LDAsMCwwLDE4LjYsNy4xNUMxMS44LDYuNTIsNS4yNywxMC45LDQuNTQsMTdsLS4xNC0uMDdBMi43NiwyLjc2LDAsMCwxLDIuOSwxNS4yOWEyLDIsMCwwLDEsLjE1LTEuNTUsMS4zMiwxLjMyLDAsMCwxLC40Ny0uNDgsMS4wOCwxLjA4LDAsMSwwLTEuMTItMS44NSwzLjQ1LDMuNDUsMCww'@; put 'LDAtMS4yMywxLjI1QTQuMTYsNC4xNiwwLDAsMCwuODQsMTUuOWE1LDUsMCwwLDAsMi41NywzbDEsLjU0YTE4LjYyLDE4LjYyLDAsMCwwLDIsNy4zLDIzLDIzLDAsMCwwLDMsNC43OSwxLDEsMCwwLDAsLjguMzhoMy42MWEuNTIuNTIsMCwwLDAsLjQtLjc1TDE0LDMwLjM4YTExLDExLDAsMCwx'@; put 'LS4zMy0xLjE4Yy45MS4xNiwyLjA4LjMxLDIuODcuMzhhMjAuMDcsMjAuMDcsMCwwLDAsMy4xMiwwYy4zOS43Ljc5LDEuMzMsMS4xNSwxLjg1YS45My45MywwLDAsMCwuNzcuNDFoMy4xMWEuNjUuNjUsMCwwLDAsLjYxLS44NWMtLjIzLS43NC0uNTMtMS43NS0uNzEtMi4zN2ExNS45LDE1Ljks'@; put 'MCwwLDAsMy43NS0xLjc2Yy4xNi0uMTEuMzItLjI2LjQ4LS4zOWExMy43NywxMy43NywwLDAsMS0yLjQyLTEsLjguOCwwLDAsMSwuNzQtMS40MiwxMS42NCwxMS42NCwwLDAsMCwzLjE4LDEuMSwxMy4zMSwxMy4zMSwwLDAsMCwyLjY4LjEyLDEsMSwwLDAsMCwuOS0uNjZsMS43My00LjQ0QTEs'@; put 'MSwwLDAsMCwzNSwxOC44N1pNMTMuNzksMTEuNTlhLjg2Ljg2LDAsMCwxLS4zLjA1Ljg1Ljg1LDAsMCwxLS4zLTEuNjQsMTIuNDEsMTIuNDEsMCwwLDEsNi42OS0uNTUuODUuODUsMCwxLDEtLjMsMS42N0ExMC43NSwxMC43NSwwLDAsMCwxMy43OSwxMS41OVptMTIuNTIsNi4xMmExLjQ0LDEu'@; put 'NDQsMCwxLDEsMS40NC0xLjQ0QTEuNDQsMS40NCwwLDAsMSwyNi4zMiwxNy43MloiLz4nKSxsLkNsclNoYXBlU2hvcHBpbmdDYXJ0PSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMDgsNS4zN0ExLDEsMCwwLDAsMzIuMzEsNUgxMS40'@; put 'OWwuNjUsMkgzMUwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5'@; put 'YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xM2ExLDEsMCwwLDAsMS0uNzhsMy4xNy0xNEExLDEsMCwwLDAsMzMuMDgsNS4zN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNs'@; put 'ZSBjeD0iMTMuMzMiIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjAuNzEgNyAyMS44NyA1IDExLjQ5IDUgMTIuMTQgNyAyMC43MSA3IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'My0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4xNSwxNS40LDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4xM0EyLjY2LDIuNjYsMCww'@; put 'LDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjA5LTQuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41Nyw3YTcuNTIs'@; put 'Ny41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFIMTEuNDlsLjY1LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWwtLjQyLDBMMjguMzMsMTloLTE1'@; put 'TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42'@; put 'Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDEuNTctNi45MUE3LjUxLDcuNTEsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNi41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEsNi4zOUExLDEsMCwwLDAsMzIuMzEsNkg5'@; put 'LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44'@; put 'NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwzLjItMTNBMSwxLDAsMCwwLDMzLjEsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIgcj0i'@; put 'Mi41IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxl'@; put 'cnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0u'@; put 'MTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMS4xOS00Ljg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUs'@; put 'MS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNi41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNSw3'@; put 'LjUsMCwwLDEsMjIuNSw2SDkuMjFMOC43Niw0LjU3YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWEx'@; put 'LDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuNzEtN0E3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAg'@; put 'ICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksbC5DbHJTaGFwZVdhbGxldD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDE1SDMxVjlhMSwxLDAsMCwwLTEtMUg2YTEsMSwwLDAsMS0xLS44MlY2LjgyQTEsMSwwLDAsMSw2LDZIMjkuNThhMSwxLDAsMCwwLDAtMkg2QTMsMywwLDAsMCwzLDdhMy4wOCwzLjA4LDAsMCwwLDAsLjM2VjI3LjkzQTQuMSw0LjEs'@; put 'MCwwLDAsNy4xMywzMkgzMGExLDEsMCwwLDAsMS0xVjI1aDFhMSwxLDAsMCwwLDEtMVYxNkExLDEsMCwwLDAsMzIsMTVaTTI5LDMwSDcuMTNBMi4xMSwyLjExLDAsMCwxLDUsMjcuOTNWOS44OEEzLjExLDMuMTEsMCwwLDAsNiwxMEgyOXY1SDIyYTUsNSwwLDAsMCwwLDEwaDdabTItN0gyMmEz'@; put 'LDMsMCwwLDEsMC02SDMxWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjIzLjAxIiBjeT0iMjAiIHI9IjEuNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIgZD0iTTMyLjk0LDE0SDMxVjlhMSwxLDAsMCwwLTEtMUg2QTEsMSwwLDAsMSw1LDdINVY3QTEsMSwwLDAsMSw2LDZIMjkuNmExLDEsMCwxLDAsMC0ySDZBMi45NCwyLjk0LDAsMCwwLDMsNi44OHYyMUE0LjEzLDQuMTMsMCwwLDAsNy4xNSwzMkgzMGExLDEsMCwwLDAsMS0xVjI2aDEu'@; put 'OTRhLjkzLjkzLDAsMCwwLDEtLjkxdi0xMEExLjA4LDEuMDgsMCwwLDAsMzIuOTQsMTRaTTMyLDI0bC04LjU4LDBhMy44NywzLjg3LDAsMCwxLTMuNzMtNCwzLjg3LDMuODcsMCwwLDEsMy43My00TDMyLDE2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xy'@; put 'LWktc29saWQtcGF0aC0yIiBjeD0iMjQuMDQiIGN5PSIxOS45MiIgcj0iMS41Ii8+JyksbC5DbHJTaGFwZVN0b3JlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsMzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEy'@; put 'LDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMzLjc5LDEzLjI3LDI5LjcxLDUuMTFBMiwyLDAsMCwwLDI3LjkyLDRIOC4wOEEyLDIsMCwwLDAsNi4y'@; put 'OSw1LjExTDIuMjEsMTMuMjdhMiwyLDAsMCwwLS4yMS45djMuMDhhMiwyLDAsMCwwLC40NiwxLjI4QTQuNjcsNC42NywwLDAsMCw2LDIwLjEzYTQuNzIsNC43MiwwLDAsMCwzLTEuMDcsNC43Myw0LjczLDAsMCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAsMCw2LDAs'@; put 'NC43Miw0LjcyLDAsMCwwLDYuNTMtLjUyQTIsMiwwLDAsMCwzNCwxNy4yNlYxNC4xN0EyLDIsMCwwLDAsMzMuNzksMTMuMjdaTTMwLDE4LjEzQTIuNjgsMi42OCwwLDAsMSwyNy44MiwxN0wyNywxNS44OCwyNi4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDIxLDE1Ljg4LDIwLjE5LDE3'@; put 'YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMMTUsMTUuODgsMTQuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEw5LDE1Ljg4LDguMTgsMTdBMi42OCwyLjY4LDAsMCwxLDYsMTguMTNhMi42NCwyLjY0LDAsMCwxLTItLjg4VjE0LjE3TDguMDgsNkgyNy45MkwzMiwxNC4xNnYuNjdsMCwyLjM5'@; put 'QTIuNjcsMi42NywwLDAsMSwzMCwxOC4xM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOCwzMEgxNlYyMkgxNHY4SDhWMjJINnY4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYyMkgyOFoiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAsMCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwu'@; put 'NDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQuNzIsMCwwLDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdB'@; put 'MiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0xNSwxNC40djEuNTJMMTQuMTgsMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEw5LDE1Ljg4VjE0LjRMMTEuNTksNkgxNlptMTIsMS40OEwyNi4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDIxLDE1Ljg4bDAsMFYxNC40TDIwLDZoNC40NUwyNywx'@; put 'NC40WiIvPicpLGwuQ2xyU2hhcGVFdXJvPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEuNDgsMjguNDlhMSwxLDAsMCwwLTEuMzgtLjMyQTEyLDEyLDAsMCwxLDEyLjQ1LDIySDI0LjE2YTEsMSwwLDAsMCww'@; put 'LTJIMTEuOTNhMTEuMTYsMTEuMTYsMCwwLDEsMC00SDI0LjE2YTEsMSwwLDAsMCwwLTJIMTIuNDVBMTIsMTIsMCwwLDEsMzAuMDYsNy44YTEsMSwwLDAsMCwxLjA2LTEuN0ExNCwxNCwwLDAsMCwxMC4zNCwxNEgzLjU0YTEsMSwwLDEsMCwwLDJIOS45MWExNCwxNCwwLDAsMC0uMTYsMiwxNCwx'@; put 'NCwwLDAsMCwuMTYsMkgzLjU0YTEsMSwwLDEsMCwwLDJoNi44YTE0LDE0LDAsMCwwLDIwLjgzLDcuODdBMSwxLDAsMCwwLDMxLjQ4LDI4LjQ5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAs'@; put 'MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNy40MiwyNS4xNkExMC44OCwxMC44OCwwLDAsMSw5LjIzLDIxSDUuODRhMSwxLDAsMCwxLDAtMmgzYzAtLjM1LS4wNS0uNzEtLjA1LTEuMDdzMC0uNjMsMC0uOTNoLTNhMSwxLDAsMCwxLDAtMkg5LjE5QTEwLjg2LDEwLjg2LDAsMCwxLDI1LjM4LDgu'@; put 'NjlhMS4yNSwxLjI1LDAsMCwxLTEuMzIsMi4xMkE4LjM2LDguMzYsMCwwLDAsMTEuODIsMTVoOS4zNmExLDEsMCwwLDEsMCwySDExLjMzYTcuNzIsNy43MiwwLDAsMCwwLDJoOS44MmExLDEsMCwwLDEsMCwySDExLjg3YTguMzYsOC4zNiwwLDAsMCwxMi4yMiw0LDEuMjUsMS4yNSwwLDEsMSwx'@; put 'LjMzLDIuMTJaIi8+JyksbC5DbHJTaGFwZURvbGxhcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI2LDIxLjE1YTYuOTEsNi45MSwwLDAsMC00LjM4LTMuMzJBMjYsMjYsMCwwLDAsMTksMTcuMTlWOC4xMkEx'@; put 'MC4wNSwxMC4wNSwwLDAsMSwyMy44NiwxMGExLDEsMCwwLDAsMS4zMy0xLjVBMTEuNzUsMTEuNzUsMCwwLDAsMTksNi4xVjNhMSwxLDAsMCwwLTIsMFY2Yy00LjQuMS02LjgzLDIuMjktNy41Nyw0LjE4QTUuNTYsNS41NiwwLDAsMCwxMS42NiwxNywxMy4yLDEzLjIsMCwwLDAsMTcsMTguODRW'@; put 'MjhhMTIuMywxMi4zLDAsMCwxLTcuMTQtMi43NEExLDEsMCwxLDAsOC40OSwyNi43LDE0LjA5LDE0LjA5LDAsMCwwLDE3LDMwdjNhMSwxLDAsMCwwLDIsMFYzMGMyLjgyLS4xOSw2LjA3LTEuMDksNy4zLTQuNzZBNS4zMyw1LjMzLDAsMCwwLDI2LDIxLjE1Wk0xMi43OSwxNS4zMmEzLjU3LDMu'@; put 'NTcsMCwwLDEtMS40OS00LjM5QzExLjQxLDEwLjYzLDEyLjUzLDguMTIsMTcsOHY4LjhBMTAuNywxMC43LDAsMCwxLDEyLjc5LDE1LjMyWk0yNC40LDI0LjU2Yy0uNzIsMi4xNC0yLjMyLDMuMTctNS40LDMuNFYxOS4yM2MuNjQuMTQsMS4zLjMsMiwuNTFhNSw1LDAsMCwxLDMuMTksMi4zMkEz'@; put 'LjM0LDMuMzQsMCwwLDEsMjQuNCwyNC41NloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiXG4gICAgICAgICAgICAgICAgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNy42NSwyMS41OWMtMSwz'@; put 'LTMuNjEsMy44NC01LjksNHYyYTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNy41OUExMS40NywxMS40NywwLDAsMSwxMSwyNWExLjI1LDEuMjUsMCwxLDEsMS43MS0xLjgzLDkuMTEsOS4xMSwwLDAsMCw0LjU1LDEuOTRWMTguODNhOS42Myw5LjYzLDAsMCwxLTMuNzMtMS40MSw0LjgsNC44LDAs'@; put 'MCwxLTEuOTEtNS44NGMuNTktMS41MSwyLjQyLTMuMjMsNS42NC0zLjUxVjYuMjVhMS4yNSwxLjI1LDAsMCwxLDIuNSwwVjguMTFhOS42Nyw5LjY3LDAsMCwxLDQuOSwyQTEuMjUsMS4yNSwwLDAsMSwyMywxMS45NWE3LjE0LDcuMTQsMCwwLDAtMy4yNC0xLjMxdjYuMTNjLjYuMTMsMS4yNC4y'@; put 'NywxLjkxLjQ4YTUuODUsNS44NSwwLDAsMSwzLjY5LDIuODJBNC42NCw0LjY0LDAsMCwxLDI1LjY1LDIzLjU5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjkyLDE5LjY0Yy0uNC0uMTItLjc5LS4yMi0xLjE3LS4z'@; put 'djUuNzZjMi0uMiwzLjA3LS45LDMuNTMtMi4zYTIuMTUsMi4xNSwwLDAsMC0uMTUtMS41OEEzLjQ5LDMuNDksMCwwLDAsMjAuOTIsMTkuNjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMuOTQsMTIuNDhhMi4zMSwy'@; put 'LjMxLDAsMCwwLDEsMi44Nyw2LjUzLDYuNTMsMCwwLDAsMi4zMi45MlYxMC41NUMxNS4xNiwxMC44LDE0LjE5LDExLjg0LDEzLjk0LDEyLjQ4WiIvPicpLGwuQ2xyU2hhcGVDcmVkaXRDYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIs'@; put 'MCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlptMCwyLDAsMTJINEw0LDhaTTQsMjhWMjRIMzJ2NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMyIgd2lkdGg9IjIyIiBo'@; put 'ZWlnaHQ9IjMwIiByeD0iMC45NiIgcnk9IjAuOTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM2KSByb3RhdGUoOTApIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlptMCwxOEg0VjIwSDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4n'@; put 'KSxsLkNsclNoYXBlQmFuaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMy41LDEzLjU2LDE4LDUuMjNsMTQuNSw4LjMzYTEsMSwwLDAsMCwxLTEuNzNMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNCwyNmExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwwLTJIMjhWMTcuNjNIMjZWMjVIMTlWMTcuNjNIMTdWMjVIMTBWMTcuNjNIOFYyNUg1QTEsMSwwLDAsMCw0LDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0iMjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywyOUgzYTEsMSwwLDAsMCwwLDJIMzNhMSwxLDAs'@; put 'MCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMTUsMTEuNThoMy4yMUwxOC42NSw3LjcyYS44LjgsMCwwLDAtLjgsMGwtNi43MiwzLjg2aDMuMjFsMy45LTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNS4wMiIgeT0iMTQiIHdpZHRoPSIyNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywyOUgzYTEsMSwwLDAsMCwwLDJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4aDMuMjFM'@; put 'MTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YzAtLjE2LDAtLjMyLDAtLjQ4TDE4'@; put 'LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMMTgsNS4yMywyMi43Nyw4QTcuNDksNy40OSwwLDAsMSwyMi41LDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwx'@; put 'My4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNCwyNmExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwwLTJIMjhWMTcuNjNIMjZWMjVIMTlWMTcuNjNIMTdWMjVIMTBW'@; put 'MTcuNjNIOFYyNUg1QTEsMSwwLDAsMCw0LDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywyOUgzYTEsMSwwLDAsMCwwLDJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNUEzLjUxLDMuNTEsMCwwLDEsMjAsMTRINXYySDMxVjE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS40Niw5Ljc0bC42OC0xLjE3LTEuNDktLjg1YS44LjgsMCwwLDAtLjgsMGwtNi43MiwzLjg2aDMuMjFsMy45LTIuMjQsMS4xLjYzQzE5LjM5LDkuODksMTkuNDIsOS44MSwxOS40Niw5Ljc0WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4wNSw1LjI1LDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMMTgsNS4yMywyMS4wNSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu'@; put 'ODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy41LDEzLjU2LDUsMTIuNjhWMTZIMzFWMTIuNzFsMS40OC44NWExLDEsMCwwLDAsMS0xLjczTDE4'@; put 'LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaTTE3Ljg1LDcuMTFhLjguOCwwLDAsMSwuOCwwTDI1LjM3LDExSDIyLjE1bC0zLjktMi4yNEwxNC4zNSwxMUgxMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zMi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1'@; put 'LDEuMTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcu'@; put 'NjNIOFYyNUg1LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAsMCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDcsNy40NywwLDAsMSwyNC4zOSwxMUgyMi4xNWwtMy45LTIuMjRMMTQuMzUsMTFIMTEuMTRsNi43Mi0zLjg2YS44LjgsMCwwLDEsLjgsMGw1LDIuODdBNy40NSw3LjQ1LDAsMCwxLDIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwy'@; put 'LjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDUsMTIuNjhWMTZIMzFWMTMuNDJBNy41Myw3LjUzLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjk0LDEz'@; put 'LjI0bC41Ni4zMmExLDEsMCwwLDAsMS40NC0xLjE5QTcuNDUsNy40NSwwLDAsMSwzMS45NCwxMy4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYzSDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3'@; put 'LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4xNSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQi'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDE1YTMuNTEsMy41MSwwLDAsMS0zLTUuMjZsLjE0LS4yNC0xLjM1LS43OEwxNC4zNSwxMUgxMS4xNGw2LjcyLTMuODZhLjguOCwwLDAsMSwuOCwwbDEuNzUsMSwxLjY1LTIuODZMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43'@; put 'M0w1LDEyLjY4VjE2SDMxVjE1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww'@; put 'LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPicpLGwuQ2xyU2hhcGVEb2xsYXJCaWxsPSgwLGEuY2xySWNvblNWRyko'@; put 'JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wm0wLDZhNC4yNSw0LjI1LDAsMCwxLTMuOS00SDMyWm0wLDEuNjJ2'@; put 'NC44M0E1Ljg3LDUuODcsMCwwLDAsMjYuNDksMjZoLTE3QTUuODcsNS44NywwLDAsMCw0LDIwLjQ0VjE1LjZBNS44Nyw1Ljg3LDAsMCwwLDkuNTEsMTBoMTdBNS44Nyw1Ljg3LDAsMCwwLDMyLDE1LjZaTTcuOSwxMEE0LjI1LDQuMjUsMCwwLDEsNCwxNFYxMFpNNCwyMi4wNkE0LjI1LDQuMjUs'@; put 'MCwwLDEsNy45LDI2SDRaTTI4LjEsMjZBNC4yNSw0LjI1LDAsMCwxLDMyLDIyLjA2VjI2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwxMC44NWMtMy40NywwLTYuMywzLjIxLTYuMyw3LjE1czIuODMsNy4x'@; put 'NSw2LjMsNy4xNSw2LjMtMy4yMSw2LjMtNy4xNVMyMS40NywxMC44NSwxOCwxMC44NVptMCwxMi42OWMtMi41OSwwLTQuNy0yLjQ5LTQuNy01LjU1czIuMTEtNS41NSw0LjctNS41NSw0LjcsMi40OSw0LjcsNS41NVMyMC41OSwyMy41NSwxOCwyMy41NVoiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhaTTQsMjZWMjEuMTVBNS4xOCw1LjE4LDAsMCwxLDguNzksMjZaTTQsMTQuODVWMTBI'@; put 'OC43OUE1LjE4LDUuMTgsMCwwLDEsNCwxNC44NVpNMTgsMjUuMTVjLTMuNDcsMC02LjMtMy4yMS02LjMtNy4xNXMyLjgzLTcuMTUsNi4zLTcuMTUsNi4zLDMuMjEsNi4zLDcuMTVTMjEuNDcsMjUuMTUsMTgsMjUuMTVaTTMyLDI2SDI3LjI1QTUuMTgsNS4xOCwwLDAsMSwzMiwyMS4xNVptMC0x'@; put 'MS4xNUE1LjE4LDUuMTgsMCwwLDEsMjcuMjUsMTBIMzJaIi8+XG4gICAgICAgICAgICA8ZWxsaXBzZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBjeD0iMTgiIGN5PSIxOCIgcng9IjQiIHJ5PSI0LjcyIi8+JyksbC5DbHJTaGFwZUVDaGVjaz0oMCxhLmNsckljb25T'@; put 'VkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMTYiIHk9IjE2IiB3aWR0aD0iMTUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjIwIiB5PSIy'@; put 'MSIgd2lkdGg9IjExIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzQsOEgxMi45M2E4LjM1LDguMzUsMCwwLDEsLjc5LDJIMzNWMjZIM1YxOS45YTcuODMsNy44MywwLDAsMS0yLTEuMzRWMjdh'@; put 'MSwxLDAsMCwwLDEsMUgzNGExLDEsMCwwLDAsMS0xVjlBMSwxLDAsMCwwLDM0LDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTYuNTcsMTguNjhhNi4xNyw2LjE3LDAsMCwwLDQuMzItMS41OSwxLjIsMS4yLDAs'@; put 'MCwwLC4zNi0uODQsMS4wOCwxLjA4LDAsMCwwLTEuMDktMS4xMSwxLDEsMCwwLDAtLjcxLjI1LDQuMzIsNC4zMiwwLDAsMS0yLjg0LDEsMy4zNSwzLjM1LDAsMCwxLTMuNDYtM2g3LjUzQTEuMjksMS4yOSwwLDAsMCwxMiwxMi4wNiw1LjY4LDUuNjgsMCwwLDAsNi4yNyw2LjE0LDYsNiwwLDAs'@; put 'MCwuNCwxMi40djBBNiw2LDAsMCwwLDYuNTcsMTguNjhaTTYuMjUsOC4zOWMxLjgyLDAsMi44NywxLjM5LDMsMy4xNkgzLjEzQzMuMzgsOS42OSw0LjU2LDguMzksNi4yNSw4LjM5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg'@; put 'ZD0iTTM0LDhIMTIuOTFhOC42MSw4LjYxLDAsMCwxLDEuMiw0LjM5LDgsOCwwLDAsMS03Ljc4LDguMjdBNy41MSw3LjUxLDAsMCwxLDEsMTguNDFWMjdhMSwxLDAsMCwwLDEsMUgzNGExLDEsMCwwLDAsMS0xVjlBMSwxLDAsMCwwLDM0LDhaTTMxLDIzSDIwVjIxSDMxWm0wLTVIMTZWMTZIMzFa'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNNi41NywxOC42OEE2LDYsMCwwLDEsLjQsMTIuNDR2MEE2LDYsMCwwLDEsNi4yNyw2LjE0LDUuNjgsNS42OCwwLDAsMSwxMiwxMi4wNmExLjI5LDEuMjksMCwwLDEtMS4zLDEu'@; put 'MzJIMy4xNWEzLjM1LDMuMzUsMCwwLDAsMy40NiwzLDQuMzIsNC4zMiwwLDAsMCwyLjg0LTEsMSwxLDAsMCwxLC43MS0uMjUsMS4wOCwxLjA4LDAsMCwxLDEuMDksMS4xMSwxLjIsMS4yLDAsMCwxLS4zNi44NEE2LjE3LDYuMTcsMCwwLDEsNi41NywxOC42OFpNOS4zLDExLjU1Yy0uMTgtMS43'@; put 'Ny0xLjIzLTMuMTYtMy0zLjE2cy0yLjg3LDEuMy0zLjEyLDMuMTZaIi8+JyksbC5DbHJTaGFwZVBvdW5kPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuOSwzMEgxMy40QTguNDUsOC40NSwwLDAsMCwxNSwy'@; put 'NC42NVYyMWg0LjMxYTEsMSwwLDAsMCwwLTJIMTVWMTEuMzFBNS4yNCw1LjI0LDAsMCwxLDIwLjIxLDYsNS4xOSw1LjE5LDAsMCwxLDI0LDcuNzNhMSwxLDAsMCwwLDEuNDgtMS4zNUE3LjE5LDcuMTksMCwwLDAsMTMsMTEuMzFWMTlIOC43MmExLDEsMCwxLDAsMCwySDEzdjMuNjVDMTMsMjku'@; put 'MzgsMTAuMTIsMzAsMTAsMzBhMSwxLDAsMCwwLC4xNywySDI3LjlhMSwxLDAsMSwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTYuNSwy'@; put 'NS45MkgxMS43NGExLjI1LDEuMjUsMCwwLDEtLjIyLTIuNDhjLjE1LDAsMS43Mi0uNDksMS43Mi0zLjU0VjE5aC0yLjVhMSwxLDAsMCwxLDAtMmgyLjVWMTEuODhhNS44NSw1Ljg1LDAsMCwxLDUuNzItNiw1LjYzLDUuNjMsMCwwLDEsNC4yMSwxLjk0QTEuMjUsMS4yNSwwLDEsMSwyMS4zLDku'@; put 'NTEsMy4wOCwzLjA4LDAsMCwwLDE5LDguNDJhMy4zNSwzLjM1LDAsMCwwLTMuMjIsMy40NlYxN2gzYTEsMSwwLDAsMSwwLDJoLTN2Mi45QTcuNjUsNy42NSwwLDAsMSwxNSwyNS40MkgyNC41YTEuMjUsMS4yNSwwLDAsMSwwLDIuNVoiLz4nKSxsLkNsclNoYXBlUnVwZWU9KDAsYS5jbHJJY29u'@; put 'U1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOCw4SDI0LjE0QTcuNTIsNy41MiwwLDAsMCwyMi42LDZIMjhhMSwxLDAsMCwwLDAtMkgxMGExLDEsMCwwLDAsMCwyaDcuNTVhNS40Miw1LjQyLDAsMCwxLDQuMiwySDEwYTEsMSwwLDAs'@; put 'MCwwLDJIMjIuNzlBNS41NCw1LjU0LDAsMCwxLDIzLDExLjUxLDUuNDgsNS40OCwwLDAsMSwxNy41NSwxN0gxMS4xNGExLDEsMCwwLDAtLjc1LDEuNjZMMjIuMDYsMzJhMSwxLDAsMSwwLDEuNS0xLjMyTDEzLjM1LDE5aDQuMjFhNy41MSw3LjUxLDAsMCwwLDcuMy05SDI4YTEsMSwwLDAsMCww'@; put 'LTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm01Ljg4LDlIMjZhMSwxLDAsMCwxLDAsMkgyNC4yNmMwLC4wNiwwLC4xMiwwLC4xOWE2LjA5LDYu'@; put 'MDksMCwwLDEtNiw2LjJoLTJsNi44Miw4LjA2YTEuMjUsMS4yNSwwLDAsMS0xLjkxLDEuNjJMMTIuNjMsMTguOTRhMS4yNSwxLjI1LDAsMCwxLDEtMi4wNmg0LjcxYTMuNTksMy41OSwwLDAsMCwzLjQ4LTMuNjljMC0uMDcsMC0uMTMsMC0uMmgtOWExLDEsMCwwLDEsMC0yaDguMzJhMy40MSwz'@; put 'LjQxLDAsMCwwLTIuNzgtMS41SDEyLjc1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNUgyNmExLDEsMCwwLDEsMCwySDIyLjY4QTYuMjMsNi4yMywwLDAsMSwyMy44OCwxMVoiLz4nKSxsLkNsclNoYXBlV29uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsMThIMjguNzVsLjUtMkgzM2ExLDEsMCwwLDAsMC0ySDI5Ljc0bDIuMTctOC43NkExLDEsMCwwLDAsMzAsNC43NkwyNy42OCwxNEgyMS4zMUwxOSw0Ljc2YTEsMSwwLDAsMC0xLjk0LDBMMTQuNzksMTRIOC40Mkw2LjEzLDQuNzZhMSwxLDAsMCwwLTEu'@; put 'OTQuNDhMNi4zNiwxNEgzYTEsMSwwLDAsMCwwLDJINi44NWwuNSwySDNhMSwxLDAsMCwwLDAsMkg3Ljg0bDIuNzksMTEuMjRhMSwxLDAsMCwwLDEuOTQsMEwxNS4zNiwyMGg1LjM4bDIuNzksMTEuMjRhMSwxLDAsMCwwLDEuOTQsMEwyOC4yNSwyMEgzM2ExLDEsMCwwLDAsMC0yWm0tNS44Mi0y'@; put 'LS41LDJIMjIuM2wtLjUtMlpNMTgsOS4xNiwxOS4yNSwxNGgtMi40Wk04LjkxLDE2aDUuMzhsLS41LDJIOS40MVpNMTEuNiwyNi44NCw5LjkxLDIwSDEzLjNaTTE1Ljg1LDE4bC41LTJoMy4zOWwuNSwyWm04LjY0LDguODRMMjIuOCwyMGgzLjM5WiIvPlxuICAgICAgICAgICAgPHBvbHlnb24g'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgcG9pbnRzPSIxNy43NCAxNiAxNy4yMiAxOCAxOC44NSAxOCAxOC4zMiAxNiAxNy43NCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgcG9pbnRzPSIx'@; put 'MS45NCAxOCAxNC42MyAxOCAxNS4xNiAxNiAxMS40MSAxNiAxMS45NCAxOCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgcG9pbnRzPSIxMy4yOSAyMy4xIDE0LjEgMjAgMTIuNDcgMjAgMTMuMjkgMjMuMSIvPlxuICAgICAg'@; put 'ICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgcG9pbnRzPSIyMS40NCAxOCAyNC4xMyAxOCAyNC42NiAxNiAyMC45MSAxNiAyMS40NCAxOCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtNSIgcG9pbnRzPSIyMi43OCAyMy4xIDIzLjYgMjAgMjEuOTcgMjAgMjIuNzggMjMuMSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjksMjBI'@; put 'MjYuMTlMMjQsMjguMzJhMS4yNSwxLjI1LDAsMCwxLTIuNDIsMEwxOS4zOCwyMEgxNi42OWwtMi4xOSw4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMOS44OCwyMEg3YTEsMSwwLDAsMSwwLTJIOS4zNWwtLjUzLTJIN2ExLDEsMCwwLDEsMC0ySDguM2wtMS0zLjY4YTEuMjUsMS4yNSwwLDAs'@; put 'MSwyLjQyLS42NEwxMC44OCwxNGg0LjhsMS4xNC00LjMyYTEuMjUsMS4yNSwwLDAsMSwyLjQyLDBMMjAuMzgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40Mi42NGwtMSwzLjY4SDI5YTEsMSwwLDAsMSwwLDJIMjcuMjRsLS41MywySDI5YTEsMSwwLDAsMSwwLDJaIi8+Jyks'@; put 'bC5DbHJTaGFwZVllbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI5LjM0LDQuNTVhMSwxLDAsMSwwLTEuNjctMS4xTDE4LDE4LjIzLDguMzMsMy40NWExLDEsMCwwLDAtMS42NywxLjFMMTcsMjAuMzVWMjIu'@; put 'MkgxMmEuOC44LDAsMCwwLDAsMS42aDV2Mi40SDEyYS44LjgsMCwwLDAsMCwxLjZoNVYzMmExLDEsMCwwLDAsMiwwVjI3LjhoNWEuOC44LDAsMCwwLDAtMS42SDE5VjIzLjhoNWEuOC44LDAsMCwwLDAtMS42SDE5VjIwLjM1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOC4wNyw3LjkxTDE5Ljc0LDIwSDIyYTEsMSwwLDAsMSwwLDJIMTkuMjV2MkgyMmExLDEsMCwwLDEsMCwySDE5LjI1djIuNzVhMS4yNSwxLjI1LDAsMCwxLTIuNSwwVjI2'@; put 'SDE0YTEsMSwwLDEsMSwwLTJoMi43NVYyMkgxNGExLDEsMCwxLDEsMC0yaDIuMjZMOS45Myw5LjkxYTEuMjUsMS4yNSwwLDEsMSwyLjEyLTEuMzNMMTgsMTguMDhsNS45NS05LjQ5YTEuMjUsMS4yNSwwLDEsMSwyLjEyLDEuMzNaIi8+JyksbC5DbHJTaGFwZUJpdGNvaW49KDAsYS5jbHJJY29u'@; put 'U1ZHKSgnPHBhdGggZD0iTTI0LjExLDE2Ljg4QTUuNDksNS40OSwwLDAsMCwyMSw3VjRhMSwxLDAsMCwwLTIsMFY3SDE2VjRhMSwxLDAsMCwwLTIsMFY3SDExYTEsMSwwLDAsMC0xLDFWMjhhMSwxLDAsMCwwLDEsMWgzdjNhMSwxLDAsMCwwLDIsMFYyOWgzdjNhMSwxLDAsMCwwLDIsMFYyOWgu'@; put 'MDhBNi4wNyw2LjA3LDAsMCwwLDI3LDIyLjgxdi0uNjJBNi4yNSw2LjI1LDAsMCwwLDI0LjExLDE2Ljg4Wk0xMiw5aDguNjlhMy41OSwzLjU5LDAsMCwxLDMuNDMsMi4zNkEzLjUxLDMuNTEsMCwwLDEsMjAuNzksMTZIMTJaTTI1LDIyLjgxQTQuMDgsNC4wOCwwLDAsMSwyMS4wNiwyN0gxMlYx'@; put 'OGg5LjA2QTQuMDgsNC4wOCwwLDAsMSwyNSwyMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjE4LDE4LjQ3SDE0LjV2Nmg2LjY4YTIuNywyLjcsMCwwLDAsMi42My0yLjc3di0uNDhBMi43MSwyLjcx'@; put 'LDAsMCwwLDIxLjE4LDE4LjQ3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMywxMy43NWEyLjI0LDIuMjQsMCwwLDAtMi4yMy0yLjI1SDE0LjVWMTZoNi4zQTIuMjIsMi4yMiwwLDAsMCwyMywxMy43NVoiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm04LjMxLDE5LjczQTUuMjIsNS4yMiwwLDAsMSwyMS4xOCwyN0gyMXYxLjlhMSwxLDAsMCwxLTIsMFYyN0gxN3Yx'@; put 'LjlhMSwxLDAsMCwxLTIsMFYyN0gxMy4yNUExLjI1LDEuMjUsMCwwLDEsMTIsMjUuNzVWMTcuMjNoMHYtN0ExLjI1LDEuMjUsMCwwLDEsMTMuMjUsOUgxNVY3LjA3YTEsMSwwLDAsMSwyLDBWOWgyVjcuMDdhMSwxLDAsMCwxLDIsMFY5YTQuNzIsNC43MiwwLDAsMSwzLjIsOCw1LjMxLDUuMzEs'@; put 'MCwwLDEsMi4xMSw0LjI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxsLkNsclNoYXBlQ29pbkJhZz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuNiwyOWExLDEsMCwwLDAtMS0xaC02YTEsMSwwLDAsMCwwLDJoNkExLDEsMCwwLDAsMjEuNiwy'@; put 'OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi41NCwyNGgtNmExLDEsMCwwLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMiwzMkgx'@; put 'NmExLDEsMCwwLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi43LDMyaC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMzLjcsMjhoLTdhMSwxLDAsMCwwLDAsMmg3YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNzQsMjZhMjgsMjgsMCwwLDAtMi44Mi0xMC4xMkEyMC4yNCwyMC4yNCww'@; put 'LDAsMCwyNC42LDguNzFMMjcsMy40MmExLDEsMCwwLDAtLjA3LTFBMSwxLDAsMCwwLDI2LjEzLDJIOS44YTEsMSwwLDAsMC0uOTEsMS40MmwyLjQ1LDUuMzFhMjAuMzMsMjAuMzMsMCwwLDAtNi4yOCw3LjE1Yy0yLjE1LDQtMi44Miw4Ljg5LTMsMTIuMjhhMy42LDMuNiwwLDAsMCwxLDIuNzFB'@; put 'My43OSwzLjc5LDAsMCwwLDUuOCwzMS45NEgxMlYzMEg1LjcyYTEuNjgsMS42OCwwLDAsMS0xLjIxLS41MiwxLjYyLDEuNjIsMCwwLDEtLjQ1LTEuMjNjLjE0LTIuNjEuNjktNy41OCwyLjc2LTExLjQ1QTE4LDE4LDAsMCwxLDEzLjA4LDEwaDFhMzAuODEsMzAuODEsMCwwLDAtMS44NywyLjky'@; put 'LDIyLjc4LDIyLjc4LDAsMCwwLTEuNDcsMy4zNGwxLjM3LjkyYTI0LDI0LDAsMCwxLDEuNDktMy40N0EyOS4xLDI5LjEsMCwwLDEsMTYuMDUsMTBoMWEyMS40NSwyMS40NSwwLDAsMSwxLjQxLDUsMjIuNTQsMjIuNTQsMCwwLDEsLjMyLDMuODZsMS41OC0xLjExYTI0LjE1LDI0LjE1LDAsMCww'@; put 'LS4zMi0zQTI0LjgyLDI0LjgyLDAsMCwwLDE4Ljc2LDEwaC43OGwuOTEtMkgxMy4yMUwxMS4zNiw0SDI0LjU3bC0yLjUsNS40N2E5LjkzLDkuOTMsMCwwLDEsMS4yMy43OCwxOC42MywxOC42MywwLDAsMSw1Ljg2LDYuNTdBMjYuNTksMjYuNTksMCwwLDEsMzEuNzMsMjZaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICA8cGF0aCBkPSJNMjQuODksMjZoNy44NmMtLjY2LTguNzEtNC40MS0xNC4xMi05LjIyLTE3LjMyTDI1LjcyLDMuOWExLDEsMCwwLDAtLjkxLTEuNEgxMS4xYTEsMSwwLDAsMC0uOTEsMS40bDEuMiwyLjZIMjEuNTFsLS45'@; put 'LDJIMTguNzZBMjQuOSwyNC45LDAsMCwxLDIwLDEzLjE5YTI0LjQ5LDI0LjQ5LDAsMCwxLC4zMiwzbC0xLjU4LDEuMTFhMjIuNTQsMjIuNTQsMCwwLDAtLjMyLTMuODZBMjEuNzQsMjEuNzQsMCwwLDAsMTcsOC41aC0xYTI4LjIyLDI4LjIyLDAsMCwwLTIuNDgsMy43LDIzLjkxLDIzLjkxLDAs'@; put 'MCwwLTEuNDksMy40NmwtMS4zNy0uOTFhMjIuNzgsMjIuNzgsMCwwLDEsMS40Ny0zLjM0QTMwLjgxLDMwLjgxLDAsMCwxLDE0LjA1LDguNUgxMi4zbC4wOC4xN0M3LjA4LDEyLjIsMy4wNSwxOC40LDMuMDUsMjguNzVBMS42NSwxLjY1LDAsMCwwLDQuNjEsMzAuNWg4QTIuNjcsMi42NywwLDAs'@; put 'MSwxNC4yMSwyNmEyLjY3LDIuNjcsMCwwLDEtLjM3LTEuMzQsMi43LDIuNywwLDAsMSwyLjctMi43aDZhMi43LDIuNywwLDAsMSwyLjcsMi43QTIuNjMsMi42MywwLDAsMSwyNC44OSwyNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLjYs'@; put 'MjguNWExLDEsMCwwLDAtMS0xaC02YTEsMSwwLDAsMCwwLDJoNkExLDEsMCwwLDAsMjEuNiwyOC41WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNTQsMjMuNWgtNmExLDEsMCwwLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTIyLDMxLjVIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMi43LDMxLjVoLTdhMSwxLDAsMCwwLDAsMmg3'@; put 'YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy43LDI3LjVoLTdhMSwxLDAsMCwwLDAsMmg3YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02IiAvPicpLGwuQ2xyU2hh'@; put 'cGVQZXNvPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxMy4ySDI3Ljg5QTYuODEsNi44MSwwLDAsMCwyOCwxMmE3Ljg1LDcuODUsMCwwLDAtLjEtMS4xOWgyLjkzYS44LjgsMCwwLDAsMC0xLjZIMjcuNDZBOC40NCw4LjQ0LDAsMCwwLDE5LjU3LDRIMTFhMSwxLDAsMCwwLTEsMVY5'@; put 'LjJIN2EuOC44LDAsMCwwLDAsMS42aDN2Mi40SDdhLjguOCwwLDAsMCwwLDEuNmgzVjMxYTEsMSwwLDAsMCwyLDBWMjBoNy41N2E4LjQ1LDguNDUsMCwwLDAsNy44OS01LjJIMzFhLjguOCwwLDAsMCwwLTEuNlpNMTIsNmg3LjU3YTYuNTEsNi41MSwwLDAsMSw1LjY4LDMuMkgxMlptMCw0LjhI'@; put 'MjUuODdhNS42LDUuNiwwLDAsMSwwLDIuNEgxMlpNMTkuNTcsMThIMTJWMTQuOEgyNS4yNUE2LjUxLDYuNTEsMCwwLDEsMTkuNTcsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTQuMTgsMTMuOFYxNmg5LjQ1YTUuMjYsNS4yNiww'@; put 'LDAsMCwuMDgtLjg5LDQuNzIsNC43MiwwLDAsMC0uMi0xLjMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTQuMTgsMTkuN2g1LjE5YTQuMjgsNC4yOCwwLDAsMCwzLjUtMS45SDE0LjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzcsMTAuNTFIMTQuMThWMTJoOC4zN0E0LjIxLDQuMjEsMCwwLDAsMTkuMzcsMTAuNTFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNy42NywyYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAs'@; put 'MCwwLDE3LjY3LDJabTEwLjUsMTUuOEgyNS43YTYuODcsNi44NywwLDAsMS02LjMzLDQuNEgxNC4xOHY2LjU0YTEuMjUsMS4yNSwwLDEsMS0yLjUsMFYxNy44SDguNzZhLjkuOSwwLDEsMSwwLTEuOGgyLjkyVjEzLjhIOC43NmEuOS45LDAsMSwxLDAtMS44aDIuOTJWOS4yNkExLjI1LDEuMjUs'@; put 'MCwwLDEsMTIuOTMsOGg2LjQ0YTYuODQsNi44NCwwLDAsMSw2LjE1LDRoMi42NWEuOS45LDAsMCwxLDAsMS44SDI2LjA5YTYuOTEsNi45MSwwLDAsMSwuMTIsMS4zLDYuOCw2LjgsMCwwLDEtLjA2LjloMmEuOS45LDAsMCwxLDAsMS44WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtNCIgLz4nKSxsLkNsclNoYXBlUnVibGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjU3LDIwQTguMjMsOC4yMywwLDAsMCwyOSwxMmE4LjIzLDguMjMsMCwwLDAtOC40My04SDEyYTEsMSwwLDAsMC0xLDFWMThIOWExLDEsMCwwLDAsMCwyaDJ2Mkg5YTEsMSwwLDAsMCww'@; put 'LDJoMnY3YTEsMSwwLDAsMCwyLDBWMjRoOWExLDEsMCwwLDAsMC0ySDEzVjIwWk0xMyw2aDcuNTdBNi4yNCw2LjI0LDAsMCwxLDI3LDEyYTYuMjMsNi4yMywwLDAsMS02LjQzLDZIMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjAu'@; put 'NzUsOS4yNUgxNXY4LjgxaDUuNzlhNC42Niw0LjY2LDAsMCwwLDQuODYtNC40QTQuNjUsNC42NSwwLDAsMCwyMC43NSw5LjI1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwy'@; put 'Wm0yLjc1LDE4LjU2SDE1VjIyaDguMjlhMSwxLDAsMCwxLDAsMkgxNXY1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNEgxMS4yNWExLDEsMCwwLDEsMC0yaDEuMjFWMjAuNTZIMTEuMjVhMS4yNSwxLjI1LDAsMCwxLDAtMi41aDEuMjFWOGExLjI1LDEuMjUsMCwwLDEsMS4yNS0xLjI1aDdhNy4x'@; put 'NCw3LjE0LDAsMCwxLDcuMzYsNi45QTcuMTUsNy4xNSwwLDAsMSwyMC43NSwyMC41NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZUVtcGxveWVlR3JvdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LjQyLDE2LjMxYTUuNyw1'@; put 'LjcsMCwxLDEsNS43Ni01LjdBNS43NCw1Ljc0LDAsMCwxLDE4LjQyLDE2LjMxWm0wLTkuNGEzLjcsMy43LDAsMSwwLDMuNzYsMy43QTMuNzQsMy43NCwwLDAsMCwxOC40Miw2LjkxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4'@; put 'LjQyLDE2LjMxYTUuNyw1LjcsMCwxLDEsNS43Ni01LjdBNS43NCw1Ljc0LDAsMCwxLDE4LjQyLDE2LjMxWm0wLTkuNGEzLjcsMy43LDAsMSwwLDMuNzYsMy43QTMuNzQsMy43NCwwLDAsMCwxOC40Miw2LjkxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5c'@; put 'biAgPHBhdGggZD0iTTIxLjkxLDE3LjY1YTIwLjYsMjAuNiwwLDAsMC0xMywyQTEuNzcsMS43NywwLDAsMCw4LDIxLjI1djMuNTZhMSwxLDAsMCwwLDIsMFYyMS4zOGExOC45MiwxOC45MiwwLDAsMSwxMi0xLjY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi'@; put 'Lz5cbiAgPHBhdGggZD0iTTMzLDIySDI2LjNWMjAuNTJhMSwxLDAsMCwwLTIsMFYyMkgxN2ExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM0ExLDEsMCwwLDAsMzMsMjJaTTMyLDMySDE4VjI0aDYuM3YuNDFhMSwxLDAsMCwwLDIsMFYyNEgzMloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxyZWN0IHg9IjIxLjgxIiB5PSIyNy40MiIgd2lkdGg9IjUuOTYiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNMTAuODQsMTIu'@; put 'MjRhMTgsMTgsMCwwLDAtNy45NSwyQTEuNjcsMS42NywwLDAsMCwyLDE1LjcxdjMuMWExLDEsMCwwLDAsMiwwdi0yLjlhMTYsMTYsMCwwLDEsNy41OC0xLjY3QTcuMjgsNy4yOCwwLDAsMSwxMC44NCwxMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+'@; put 'XG4gIDxwYXRoIGQ9Ik0zMy4xMSwxNC4yM2ExNy44LDE3LjgsMCwwLDAtNy4xMi0yLDcuNDYsNy40NiwwLDAsMS0uNzMsMkExNS44OSwxNS44OSwwLDAsMSwzMiwxNS45MXYyLjlhMSwxLDAsMSwwLDIsMHYtMy4xQTEuNjcsMS42NywwLDAsMCwzMy4xMSwxNC4yM1oiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gIDxwYXRoIGQ9Ik0xMC42NiwxMC42MWMwLS4yMywwLS40NSwwLS42N2EzLjA3LDMuMDcsMCwwLDEsLjU0LTYuMTEsMy4xNSwzLjE1LDAsMCwxLDIuMi44OSw4LjE2LDguMTYsMCwwLDEsMS43LTEuMDgsNS4xMyw1LjEzLDAsMCwwLTks'@; put 'My4yNyw1LjEsNS4xLDAsMCwwLDQuNyw1QTcuNDIsNy40MiwwLDAsMSwxMC42NiwxMC42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxwYXRoIGQ9Ik0yNC43NywxLjgzYTUuMTcsNS4xNywwLDAsMC0zLjY5LDEuNTUsNy44Nyw3Ljg3LDAsMCwx'@; put 'LDEuOSwxLDMuMTQsMy4xNCwwLDAsMSw0LjkzLDIuNTIsMy4wOSwzLjA5LDAsMCwxLTEuNzksMi43Nyw3LjE0LDcuMTQsMCwwLDEsLjA2LjkzLDcuODgsNy44OCwwLDAsMS0uMSwxLjIsNS4xLDUuMSwwLDAsMCwzLjgzLTQuOUE1LjEyLDUuMTIsMCwwLDAsMjQuNzcsMS44M1oiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05Ii8+XG4gIFxuICA8ZWxsaXBzZSBjeD0iMTgiIGN5PSIxMS4yOCIgcng9IjQuNzYiIHJ5PSI0LjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEwLjc4LDExLjc1Yy4xNiwwLC4z'@; put 'MiwwLC40OCwwLDAtLjE1LDAtLjI4LDAtLjQzYTYuNyw2LjcsMCwwLDEsMy43NS02LDQuNjIsNC42MiwwLDEsMC00LjIxLDYuNDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yNC43NiwxMS4yOGMwLC4xNSwwLC4yOCwwLC40My4xNiww'@; put 'LC4zMiwwLC40OCwwQTQuNTgsNC41OCwwLDEsMCwyMSw1LjI5LDYuNyw2LjcsMCwwLDEsMjQuNzYsMTEuMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yMi4yOSwxNi40NWEyMS40NSwyMS40NSwwLDAsMSw1LjcxLDIsMi43MSwyLjcx'@; put 'LDAsMCwxLC42OC41M0gzNFYxNS41NmEuNzIuNzIsMCwwLDAtLjM4LS42NCwxOCwxOCwwLDAsMC04LjQtMi4wNWwtLjY2LDBBNi42Niw2LjY2LDAsMCwxLDIyLjI5LDE2LjQ1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNNi41MywyMC45'@; put 'MkEyLjc2LDIuNzYsMCwwLDEsOCwxOC40N2EyMS40NSwyMS40NSwwLDAsMSw1LjcxLTIsNi42Niw2LjY2LDAsMCwxLTIuMjctMy41NWwtLjY2LDBhMTgsMTgsMCwwLDAtOC40LDIuMDUuNzIuNzIsMCwwLDAtLjM4LjY0VjIySDYuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC01Ii8+XG4gIDxyZWN0IHg9IjIxLjQ2IiB5PSIyNi42OSIgd2lkdGg9IjUuOTYiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gIDxwYXRoIGQ9Ik0zMi44MSwyMS4yNkgyNS45NHYtMWExLDEsMCwwLDAtMiwwdjFIMjJWMTguNDNB'@; put 'MjAuMTcsMjAuMTcsMCwwLDAsMTgsMThhMTkuMjcsMTkuMjcsMCwwLDAtOS4wNiwyLjIyLjc2Ljc2LDAsMCwwLS40MS42OHY1LjYxaDcuMTF2Ni4wOWExLDEsMCwwLDAsMSwxSDMyLjgxYTEsMSwwLDAsMCwxLTFWMjIuMjZBMSwxLDAsMCwwLDMyLjgxLDIxLjI2Wm0tMSwxMC4zNkgxNy42NFYy'@; put 'My4yNmg2LjN2LjkxYTEsMSwwLDAsMCwyLDB2LS45MWg1Ljg3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPicpLGwuQ2xyU2hhcGVFbXBsb3llZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTYuNDMsMTYuNjlhNyw3LDAsMSwxLDctN0E3LDcsMCwwLDEs'@; put 'MTYuNDMsMTYuNjlabTAtMTEuOTJhNSw1LDAsMSwwLDUsNUE1LDUsMCwwLDAsMTYuNDMsNC43N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMiwxNy45QTI1LjQxLDI1LjQxLDAsMCwwLDUuODgsMTkuNTdhNC4wNiw0LjA2LDAs'@; put 'MCwwLTIuMzEsMy42OFYyOS4yYTEsMSwwLDEsMCwyLDBWMjMuMjVhMiwyLDAsMCwxLDEuMTYtMS44NiwyMi45MSwyMi45MSwwLDAsMSw5LjctMi4xMSwyMy41OCwyMy41OCwwLDAsMSw1LjU3LjY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJl'@; put 'Y3QgeD0iMjIuMTQiIHk9IjI3LjQxIiB3aWR0aD0iNi4xNCIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMy4xNywyMS40N0gyOHYyaDQuMTd2OC4zN0gxOFYyMy40N2g2LjN2LjQyYTEsMSwwLDAsMCwyLDBW'@; put 'MjBhMSwxLDAsMCwwLTIsMHYxLjQ3SDE3YTEsMSwwLDAsMC0xLDFWMzIuODRhMSwxLDAsMCwwLDEsMUgzMy4xN2ExLDEsMCwwLDAsMS0xVjIyLjQ3QTEsMSwwLDAsMCwzMy4xNywyMS40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIFxuICA8Y2ly'@; put 'Y2xlIGN4PSIxNi44NiIgY3k9IjkuNzMiIHI9IjYuNDYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgPHJlY3QgeD0iMjEiIHk9IjI4IiB3aWR0aD0iNyIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAg'@; put 'PHBhdGggZD0iTTE1LDMwdjNhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjIzYTEsMSwwLDAsMC0xLTFIMjZWMjAuNTNhMSwxLDAsMCwwLTIsMFYyMkgyMlYxOC40MkEzMi4xMiwzMi4xMiwwLDAsMCwxNi44NiwxOGEyNiwyNiwwLDAsMC0xMSwyLjM5LDMuMjgsMy4yOCwwLDAsMC0x'@; put 'Ljg4LDNWMzBabTE3LDJIMTdWMjRoN3YuNDJhMSwxLDAsMCwwLDIsMFYyNGg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLGwuQ2xyU2hhcGVGYWN0b3J5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40Nyw3LjM3YTEsMSwwLDAsMC0xLC4wNkwy'@; put 'MywxMy43N1Y4LjI2YTEsMSwwLDAsMC0xLjY0LS43N0wxMy40OCwxNEgxMFY0LjYyYTEsMSwwLDAsMC0uNzgtMWwtNC0uOWExLDEsMCwwLDAtLjg1LjJBMSwxLDAsMCwwLDQsMy43M1YxNEgzYTEsMSwwLDAsMC0xLDFWMzFhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjguMjZBMSwx'@; put 'LDAsMCwwLDMzLjQ3LDcuMzdaTTYsNWwyLC40NFYxNEg2Wk0zMiwzMEg0VjE2aDkuODNhMSwxLDAsMCwwLC42NC0uMjNMMjEsMTAuMzd2NS4yOGExLDEsMCwwLDAsMS41Ni44M0wzMiwxMC4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxyZWN0'@; put 'IHg9IjYiIHk9IjE3Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cmVjdCB4PSI2IiB5PSIyMS45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTMiLz5cbiAgPHJlY3QgeD0iNiIgeT0iMjUuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHJlY3QgeD0iMTkiIHk9IjI0Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMTguOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gIDxyZWN0IHg9IjIzIiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjE4Ljk5IiB3'@; put 'aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSIyNyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIvPlxuICBcbiAg'@; put 'PHBhdGggZD0iTTMyLjQ1LDguNDQsMjIsMTUuM1Y5LjUxYTEsMSwwLDAsMC0xLjYzLS43OEwxNC4wNywxNEgxMFY0LjA2TDQsMi43MVYxNEgyVjMxYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY5LjI3QTEsMSwwLDAsMCwzMi40NSw4LjQ0Wk0xNCwyOUg2VjI3aDhabTAtNEg2VjIz'@; put 'aDhabTAtNEg2VjE5aDhabTgsOEgyMFYyNmgyWm0wLTZIMjBWMjBoMlptNCw2SDI0VjI2aDJabTAtNkgyNFYyMGgyWm00LDZIMjhWMjZoMlptMC02SDI4VjIwaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksbC5Db21tZXJjZVNoYXBlcz17Y2FsY3VsYXRv'@; put 'cjpsLkNsclNoYXBlQ2FsY3VsYXRvciwicGlnZ3ktYmFuayI6bC5DbHJTaGFwZVBpZ2d5QmFuaywic2hvcHBpbmctYmFnIjpsLkNsclNoYXBlU2hvcHBpbmdCYWcsInNob3BwaW5nLWNhcnQiOmwuQ2xyU2hhcGVTaG9wcGluZ0NhcnQsd2FsbGV0OmwuQ2xyU2hhcGVXYWxsZXQsc3RvcmU6bC5D'@; put 'bHJTaGFwZVN0b3JlLGV1cm86bC5DbHJTaGFwZUV1cm8sZG9sbGFyOmwuQ2xyU2hhcGVEb2xsYXIscGVzbzpsLkNsclNoYXBlUGVzbywiY3JlZGl0LWNhcmQiOmwuQ2xyU2hhcGVDcmVkaXRDYXJkLGJhbms6bC5DbHJTaGFwZUJhbmssImRvbGxhci1iaWxsIjpsLkNsclNoYXBlRG9sbGFyQmls'@; put 'bCwiZS1jaGVjayI6bC5DbHJTaGFwZUVDaGVjayxwb3VuZDpsLkNsclNoYXBlUG91bmQscnVwZWU6bC5DbHJTaGFwZVJ1cGVlLHdvbjpsLkNsclNoYXBlV29uLHllbjpsLkNsclNoYXBlWWVuLGJpdGNvaW46bC5DbHJTaGFwZUJpdGNvaW4scnVibGU6bC5DbHJTaGFwZVJ1YmxlLCJjb2luLWJh'@; put 'ZyI6bC5DbHJTaGFwZUNvaW5CYWcsImVtcGxveWVlLWdyb3VwIjpsLkNsclNoYXBlRW1wbG95ZWVHcm91cCxlbXBsb3llZTpsLkNsclNoYXBlRW1wbG95ZWUsZmFjdG9yeTpsLkNsclNoYXBlRmFjdG9yeX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ29tbWVyY2VTaGFwZXMsInNhdmluZ3Mi'@; put 'LCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Db21tZXJjZVNoYXBlc1sicGlnZ3ktYmFuayJdKSksdHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGwuQ29tbWVyY2VTaGFwZXMpfSwiLi9wcm9q'@; put 'ZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMgKioqIQogICAgICBcKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKE0sbCxhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGwuQ29yZVNo'@; put 'YXBlcz1sLkNsclNoYXBlQXJyb3c9bC5DbHJTaGFwZVN0ZXBGb3J3YXJkMj1sLkNsclNoYXBlRXllSGlkZT1sLkNsclNoYXBlRXllPWwuQ2xyU2hhcGVFdmVudD1sLkNsclNoYXBlQ2FsZW5kYXI9bC5DbHJTaGFwZUFuZ2xlRG91YmxlPWwuQ2xyU2hhcGVWaWV3Q29sdW1ucz1sLkNsclNoYXBl'@; put 'U2VhcmNoPWwuQ2xyU2hhcGVWbUJ1Zz1sLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT1sLkNsclNoYXBlRmlsdGVyR3JpZD1sLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD1sLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsPWwuQ2xyU2hhcGVDbG91ZD1sLkNsclNoYXBlSW1hZ2U9bC5DbHJT'@; put 'aGFwZUJlbGw9bC5DbHJTaGFwZUZvbGRlck9wZW49bC5DbHJTaGFwZUZvbGRlcj1sLkNsclNoYXBlQW5nbGU9bC5DbHJTaGFwZVVzZXI9bC5DbHJTaGFwZUJhcnM9bC5DbHJTaGFwZUhlbHBJbmZvPWwuQ2xyU2hhcGVXYXJuaW5nU3RhbmRhcmQ9bC5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9bC5D'@; put 'bHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZD1sLkNsclNoYXBlSW5mb1N0YW5kYXJkPWwuQ2xyU2hhcGVJbmZvQ2lyY2xlPWwuQ2xyU2hhcGVDaGVja0NpcmNsZT1sLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9bC5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9bC5DbHJTaGFwZVRpbWVzPWwu'@; put 'Q2xyU2hhcGVDaGVjaz1sLkNsclNoYXBlQ29nPWwuQ2xyU2hhcGVIb21lPWwuQ2xyU2hhcGVVbmtub3duU3RhdHVzPXZvaWQgMDt2YXIgcD1hKAovKiEgLi4vdXRpbHMvZGVzY3JpcHRvci1jb25maWcgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRz'@; put 'Iik7YT1hKAovKiEgLi4vdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksbC5DbHJTaGFwZVVua25vd25TdGF0dXM9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE3LjU4IiBjeT0iMjYuMjMiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjQuNywxM2E1LjE4LDUuMTgsMCwwLDAtMi4xNi0zLjU2LDcuMjYsNy4y'@; put 'NiwwLDAsMC01LjcxLTEuMDlBMTEuMzQsMTEuMzQsMCwwLDAsMTIsMTAuNDQsMSwxLDAsMSwwLDEzLjI2LDEyYTkuMzIsOS4zMiwwLDAsMSwzLjk0LTEuNzIsNS4yOSw1LjI5LDAsMCwxLDQuMTYuNzQsMy4yMSwzLjIxLDAsMCwxLDEuMzUsMi4xOWMuMzMsMi42OS0zLjE5LDMuNzUtNS4zMiw0'@; put 'LjE0bC0uODIuMTV2NC4zNmExLDEsMCwwLDAsMiwwVjE5LjE3QzI0LjYxLDE3Ljc5LDI0Ljg4LDE0LjQxLDI0LjcsMTNaIi8+JyksbC5DbHJTaGFwZUhvbWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy43'@; put 'MSwxNy4yOWwtMTUtMTVhMSwxLDAsMCwwLTEuNDEsMGwtMTUsMTVhMSwxLDAsMCwwLDEuNDEsMS40MUwxOCw0LjQxLDMyLjI5LDE4LjcxYTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTIiIGQ9Ik0yOCwzMmgtNVYyMkgxM1YzMkg4VjE4TDYsMjBWMzJhMiwyLDAsMCwwLDIsMmg3VjI0aDZWMzRoN2EyLDIsMCwwLDAsMi0yVjE5Ljc2bC0yLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLDE5'@; put 'YTEsMSwwLDAsMS0uNzEtLjI5TDE4LDQuNDEsMy43MSwxOC43MWExLDEsMCwwLDEtMS40MS0xLjQxbDE1LTE1YTEsMSwwLDAsMSwxLjQxLDBsMTUsMTVBMSwxLDAsMCwxLDMzLDE5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTIiIGQ9Ik0xOCw3Ljc5LDYsMTkuODNWMzJhMiwyLDAsMCwwLDIsMmg3VjI0aDZWMzRoN2EyLDIsMCwwLDAsMi0yVjE5Ljc2WiIvPicpLGwuQ2xyU2hhcGVDb2c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0x'@; put 'OC4xLDExYy0zLjksMC03LDMuMS03LDdzMy4xLDcsNyw3YzMuOSwwLDctMy4xLDctN1MyMiwxMSwxOC4xLDExeiBNMTguMSwyM2MtMi44LDAtNS0yLjItNS01czIuMi01LDUtNWMyLjgsMCw1LDIuMiw1LDVTMjAuOSwyMywxOC4xLDIzeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIuOCwxNC43TDMwLDEzLjhsLTAuNi0xLjVsMS40LTIuNmMwLjMtMC42LDAuMi0xLjQtMC4zLTEuOWwtMi40LTIuNGMtMC41LTAuNS0xLjMtMC42LTEuOS0wLjNsLTIuNiwxLjRsLTEuNS0wLjZsLTAuOS0yLjhDMjEs'@; put 'Mi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlDNSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYs'@; put 'MS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwyLjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjlj'@; put 'MC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUsMC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEu'@; put 'MS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3ogTTMyLDE5LjRsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwt'@; put 'MC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAu'@; put 'Mi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuNCwwLjUsMi4xLDAuOWwwLjUsMC4zbDMuMy0xLjhsMiwybC0xLjgs'@; put 'My4zbDAuMywwLjVjMC40LDAuNywwLjcsMS40LDAuOSwyLjFsMC4xLDAuNWwzLjYsMS4xVjE5LjR6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTEuMSwxOGMwLDMuOSwzLjEs'@; put 'Nyw3LDdjMy45LDAsNy0zLjEsNy03cy0zLjEtNy03LTdDMTQuMiwxMSwxMS4xLDE0LjEsMTEuMSwxOHogTTIzLjEsMThjMCwyLjgtMi4yLDUtNSw1Yy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01QzIwLjksMTMsMjMuMSwxNS4yLDIzLjEsMTh6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuOCwxNC43TDMwLDEzLjhsLTAuMS0wLjNjLTAuOCwwLTEuNi0wLjItMi40LTAuNGMwLjMsMC42LDAuNiwxLjMsMC44LDEuOWwwLjEsMC41bDMuNiwxLjF2Mi44bC0zLjYsMS4x'@; put 'TDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0w'@; put 'LjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40'@; put 'LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNUwyMSw3LjdjMC43LDAuMiwxLjMsMC41LDEuOSwwLjhjLTAuMy0wLjgtMC40LTEuNi0wLjQtMi41bC0wLjQtMC4ybC0wLjktMi44QzIxLDIuNSwyMC40LDIsMTkuNywyaC0zLjRjLTAuNywwLTEuMywwLjUtMS40LDEu'@; put 'MkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42LDIsMTYuM3YzLjRjMCwwLjcs'@; put 'MC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMuNGMwLjcsMCwxLjMtMC41LDEu'@; put 'NS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNS42LDMzLjUsMTQuOSwzMi44LDE0'@; put 'Ljd6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjcsMTUuNGgtNS4zdjAuMWwzLjYsMS4xdjIuOGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAu'@; put 'NywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTku'@; put 'NHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44bDEuMSwzLjRsMS40LTIuM2wtMC42LTJDMjEsMi40LDIwLjQsMiwxOS43'@; put 'LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlDNSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIu'@; put 'NSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwyLjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4x'@; put 'LDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUsMC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYt'@; put 'My40QzM0LDE2LDMzLjksMTUuNywzMy43LDE1LjR6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xOC4xLDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01YzAuMiwwLDAu'@; put 'NSwwLDAuNywwLjFjLTAuMi0wLjYtMC4zLTEuMy0wLjItMmgtMC41Yy0zLjksMC03LDMuMS03LDdjMCwzLjksMy4xLDcsNyw3YzMuOSwwLDctMy4xLDctN2MwLTAuOS0wLjItMS44LTAuNS0yLjZoLTIuMmMwLjUsMC44LDAuNywxLjYsMC43LDIuNUMyMy4xLDIwLjgsMjAuOSwyMywxOC4xLDIz'@; put 'eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAu'@; put 'OCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTExLjY1LDExLjY1LDAsMCwwLS45NS0yLjMzbDEuNjQtMy4wN2EuNjEuNjEsMCwwLDAtLjExLS43MkwyNy40MSw2LjJhLjYxLjYxLDAsMCwwLS43Mi0uMTFMMjMuNjQsNy43MmExMS42MiwxMS42MiwwLDAsMC0yLjM2LTFsLTEt'@; put 'My4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0xLDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCww'@; put 'LTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAsLjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWEx'@; put 'MS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4zOGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAs'@; put 'LjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAg'@; put 'ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIuNTcsMTUuNzJsLTMuMzUtMWExMi4xMiwxMi4xMiwwLDAsMC0uNDctMS4zMiw3LjQ5LDcuNDksMCwwLDEtNi4xNC02LjE2LDExLjgyLDExLjgyLDAs'@; put 'MCwwLTEuMzMtLjQ4bC0xLTMuMzFBLjYxLjYxLDAsMCwwLDE5LjY5LDNIMTYuMzFhLjYxLjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2Ex'@; put 'MS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCwwLDAtLjQzLjU4djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43'@; put 'Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEsMy4zN2EuNjEuNjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIu'@; put 'MzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDExLjYzLDAsMCwwLC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaTTE4LDIzLjVBNS41LDUuNSwwLDEsMSwyMy41LDE4LDUuNSw1LjUsMCwwLDEs'@; put 'MTgsMjMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMyLjU3LDE1LjcyLDMxLjUsMTUuNEgyMi44NUE1LjUsNS41LDAsMSwxLDE4LDEyLjVhNS41Myw1LjUzLDAsMCwxLC42NSwwQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDIuMDktMy42Mi0uODYtMi44M0EuNjEu'@; put 'NjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0xLDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wt'@; put 'My4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAsLjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42'@; put 'NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4zOGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43Mmwt'@; put 'MS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0'@; put 'aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksbC5DbHJTaGFwZUNoZWNr'@; put 'PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTMuNzIsMjcuNjksMy4yOSwxNy4yN2ExLDEsMCwwLDEsMS40MS0xLjQxbDksOUwzMS4yOSw3LjI5YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+JyksbC5DbHJTaGFw'@; put 'ZVRpbWVzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNDEsMThsOC4yOS04LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksOS43MSw4LjI5QTEsMSwwLDAsMCw4LjI5LDkuNzFMMTYuNTksMTgs'@; put 'OC4yOSwyNi4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDguMjksOC4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPicpLGwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xIiBkPSJNMTgsMjEuMzJhMS4zLDEuMywwLDAsMCwxLjMtMS4zVjE0YTEuMywxLjMsMCwxLDAtMi42LDB2NkExLjMsMS4zLDAsMCwwLDE4LDIxLjMyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4'@; put 'PSIxNy45NSIgY3k9IjI0LjI3IiByPSIxLjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTMwLjMzLDI1LjU0LDIwLjU5LDcuNmEzLDMsMCwwLDAtNS4yNywwTDUuNTcsMjUuNTRBMywzLDAsMCwwLDguMjEs'@; put 'MzBIMjcuNjlhMywzLDAsMCwwLDIuNjQtNC40M1ptLTEuNzgsMS45NGExLDEsMCwwLDEtLjg2LjQ5SDguMjFhMSwxLDAsMCwxLS44OC0xLjQ4TDE3LjA3LDguNTVhMSwxLDAsMCwxLDEuNzYsMGw5Ljc0LDE3Ljk0QTEsMSwwLDAsMSwyOC41NSwyNy40OFoiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWk0xNi40NiwxMi43NGExLjQ5LDEuNDks'@; put 'MCwwLDEsMywwdjYuODlhMS40OSwxLjQ5LDAsMSwxLTMsMFpNMTgsMjYuMjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjYuMjVaIi8+JyksbC5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0wLDIyQTEwLDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjAuMDdhMS4zLDEuMywwLDAsMS0xLjMtMS4zdi02YTEuMywxLjMsMCwxLDEsMi42LDB2NkExLjMsMS4zLDAsMCwxLDE4LDIwLjA3WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMiIGN4PSIxNy45NSIgY3k9IjIzLjAyIiByPSIxLjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMS40OSw2YTEuNDks'@; put 'MS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNS41YTEuNzIsMS43MiwwLDEsMSwxLjcyLTEuNzJBMS43MiwxLjcyLDAsMCwxLDE4LDI1LjVaIi8+JyksbC5DbHJTaGFwZUNoZWNrQ2lyY2xlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0wLDIyQTEwLDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuMzQsMjMuNzRsLTUtNWExLDEsMCwwLDEsMS40MS0xLjQxbDMuNTksMy41OSw2Ljc4LTYuNzhhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'IiBkPSJNMzAsMThBMTIsMTIsMCwxLDEsMTgsNiwxMiwxMiwwLDAsMSwzMCwxOFptLTQuNzctMi4xNmExLjQsMS40LDAsMCwwLTItMmwtNi43Nyw2Ljc3TDEzLDE3LjE2YTEuNCwxLjQsMCwwLDAtMiwybDUuNDUsNS40NVoiLz4nKSxsLkNsclNoYXBlSW5mb0NpcmNsZT0oMCxhLmNsckljb25T'@; put 'VkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAgY3g9IjE3LjkzIiBjeT0iMTEuOSIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiICBkPSJNMjEsMjNI'@; put 'MTlWMTVIMTZhMSwxLDAsMCwwLDAsMmgxdjZIMTVhMSwxLDAsMSwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiICBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiww'@; put 'LDAsMCwxOCw2Wm0wLDIyQTEwLDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0y'@; put 'LDUuMTVhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsMTUuOSwxMS4xNVpNMjMsMjRhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwxLDEsMC0yaDJWMTdIMTZhMSwxLDAsMCwxLDAtMmg0djhoMkExLDEsMCwwLDEsMjMsMjRaIi8+JyksbC5DbHJTaGFwZUluZm9TdGFuZGFyZD0oMCxhLmNsckljb25T'@; put 'VkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuOTciIGN5PSIxMC40NSIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMSwyNUgx'@; put 'OVYxNC4xSDE2YTEsMSwwLDAsMCwwLDJoMVYyNUgxNWExLDEsMCwwLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2'@; put 'LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDIuMWExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOCwy'@; put 'LjFabS0uMSw1LjI4YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDE3LjksNy4zOFptMy42LDIxLjI1aC03YTEuNCwxLjQsMCwxLDEsMC0yLjhoMi4xdi05LjJIMTVhMS40LDEuNCwwLDEsMSwwLTIuOGg0LjR2MTJoMi4xYTEuNCwxLjQsMCwxLDEsMCwyLjhaIi8+JyksbC5DbHJTaGFwZVN1Y2Nl'@; put 'c3NTdGFuZGFyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDEyLjFhMSwxLDAsMCwwLTEuNDEsMEwxNS40OSwyMy4xNWwtNi02QTEsMSwwLDAsMCw4LDE4LjUzTDE1LjQ5LDI2LDI4LDEzLjUyQTEsMSwwLDAsMCwyOCwx'@; put 'Mi4xWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI4LjQ1LDEyLjYzLDE1LjMxLDI1Ljc2LDcuNTUsMThhMS40LDEuNCwwLDAsMSwyLTJs'@; put 'NS43OCw1Ljc4TDI2LjQ3LDEwLjY1YTEuNCwxLjQsMCwxLDEsMiwyWiIvPicpLGwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkPSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxOCIgY3k9IjI2LjA2IiByPSIxLjMz'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMi42MWExLDEsMCwwLDEtMS0xdi0xMmExLDEsMCwxLDEsMiwwdjEyQTEsMSwwLDAsMSwxOCwyMi42MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDIuMWExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOCwyLjFaTTE2LjYsOC44YTEuNCwxLjQsMCwwLDEsMi44LDB2MTJhMS40LDEuNCwwLDAsMS0yLjgsMFpNMTgsMjguNmExLjgsMS44LDAsMSwxLDEuOC0xLjhBMS44'@; put 'LDEuOCwwLDAsMSwxOCwyOC42WiIvPicpLGwuQ2xyU2hhcGVXYXJuaW5nU3RhbmRhcmQ9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEyYTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTUuMDYyMDc4MiwxLjY4MTE5NiBDMTUuNjI5ODgxOSwwLjY0OTI2NjM1NSAxNi43MTA5MDkxLDAuMDEwMjIxOTM5NiAxNy44ODUsMC4wMTAyMjE5Mzk2IEMxOS4wNTkwOTA5LDAuMDEwMjIxOTM5NiAyMC4xNDAxMTgxLDAuNjQ5MjY2MzU1IDIw'@; put 'LjcwODY0MzMsMS42ODI1MjEyOSBMMzQuNTk4NjQ0LDI3LjI0MjUyMjUgQzM1LjE0MDc3NDYsMjguMjQwMTM5NyAzNS4xMTc0MzQ1LDI5LjQ0OTUzNzMgMzQuNTM3MjE2MSwzMC40MjU0OTQzIEMzMy45NTY5OTc3LDMxLjQwMTQ1MTQgMzIuOTA1NjcxLDMxLjk5OTY5ODQgMzEuNzcsMzIgTDQu'@; put 'MDIyMzkzMjMsMzEuOTk5NzQ5MiBDMi44NzQwOTAwOSwzMi4wMjU0Njk5IDEuNzk5MDI4NDMsMzEuNDM3NTc1MyAxLjIwMTA2MzM1LDMwLjQ1NjkxMjYgQzAuNjAzMDk4MjY1LDI5LjQ3NjI0OTkgMC41NzI3Nzc4OTksMjguMjUxMzE3OSAxLjEyMjA3ODE4LDI3LjI0MTE5NiBMMTUuMDYyMDc4'@; put 'MiwxLjY4MTE5NiBaIE0yLjg3ODUwNzY3LDI4LjE5NzcyODIgQzIuNjcwNjA5NjYsMjguNTgwMDM3NiAyLjY4MjA5NzUsMjkuMDQ0MTQyMyAyLjkwODY1NTcsMjkuNDE1Njk3NyBDMy4xMzUyMTM5LDI5Ljc4NzI1MzIgMy41NDI1MzU0LDMwLjAwOTk5NTkgNCwzMCBMMzEuNzY5NzM0NCwzMCBD'@; put 'MzIuMTk5OTE5MSwyOS45OTk4ODU4IDMyLjU5ODI0NzgsMjkuNzczMjIwOCAzMi44MTgwODIxLDI5LjQwMzQ0ODIgQzMzLjAzNzkxNjQsMjkuMDMzNjc1NyAzMy4wNDY3NTk1LDI4LjU3NTQ1NjcgMzIuODQxMzU2NywyOC4xOTc0Nzg3IEwxOC45NTM4NzM5LDIuNjQyMDgxOTUgQzE4LjczOTQy'@; put 'MzYsMi4yNTIzNDQzNiAxOC4zMjk4NDE5LDIuMDEwMjIxOTQgMTcuODg1LDIuMDEwMjIxOTQgQzE3LjQ0MDY4ODksMi4wMTAyMjE5NCAxNy4wMzE1NTM4LDIuMjUxNzY2OTIgMTYuODE2ODk0NiwyLjY0MDY4NzUzIEwyLjg3ODUwNzY3LDI4LjE5NzcyODIgWiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNC42LDI5LjIxLDIwLjcxLDMuNjVhMy4yMiwzLjIyLDAsMCwwLTUuNjYsMEwxLjE3LDI5LjIxQTMuMjIsMy4yMiwwLDAsMCw0LDM0SDMxLjc3YTMuMjIsMy4yMiwwLDAsMCwyLjgzLTQuNzVaTTE2LjYs'@; put 'MTBhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOS44NWExLjgsMS44LDAsMSwxLDEuOC0xLjhBMS44LDEuOCwwLDAsMSwxOCwyOS44NVoiLz4nKSxsLkNsclNoYXBlSGVscEluZm89KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1LjM5LDI1LjQ1'@; put 'YTEsMSwwLDAsMC0xLjM4LjI5Yy0xLjQxLDIuMTYtNCw0LjgxLTYuMzEsNS43cy00LjEyLjU3LTQuODQsMGMtLjMxLS4yNy0xLjEyLTEtLjQzLTMuNDkuNDYtMS42NiwzLjMyLTkuNDgsNC0xMS4zOGwtMi4xOC4yOGMtLjY5LDEuODYtMy4yOSw4Ljg0LTMuNzYsMTAuNTgtLjY4LDIuNDktLjM0'@; put 'LDQuMywxLjA5LDUuNTZBNS41OSw1LjU5LDAsMCwwLDE1LDM0YTkuNTMsOS41MywwLDAsMCwzLjQ1LS43YzIuNzktMS4wOSw1LjcyLTQuMTIsNy4yNi02LjQ3QTEsMSwwLDAsMCwyNS4zOSwyNS40NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTE5LjMsMTFhNC41LDQuNSwwLDEsMC00LjUtNC41QTQuNSw0LjUsMCwwLDAsMTkuMywxMVptMC03YTIuNSwyLjUsMCwxLDEtMi41LDIuNUEyLjUsMi41LDAsMCwxLDE5LjMsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjgxLDE1Yy4wNiwwLDYuMjctLjgyLDcuNzMtMSwuNjUtLjEsMS4xNCwwLDEuMy4xNXMuMjEuOC0uMDcsMS42OGMtLjYxLDEuODYtMy42OSwxMS00LjU5LDEzLjcxYTgsOCwwLDAsMCwxLjI5LS4zOCw3LjMyLDcuMzIsMCwwLDAsMS4xNS0uNkMx'@; put 'OS44NSwyNSwyMi4xNSwxOC4xLDIyLjY3LDE2LjUycy4zOS0yLjc4LS4zLTMuNmEzLjE2LDMuMTYsMCwwLDAtMy4wOC0uODNjLTEuNDMuMTUtNy40Ny45NC03LjczLDFhMSwxLDAsMCwwLC4yNiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGN4PSIyMC43NSIgY3k9IjYiIHI9IjQiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuODQsMjYuMjNhMSwxLDAsMCwwLTEuNC4yOSwxNi42LDE2LjYsMCwwLDEtMy41MSwzLjc3Yy0uMzMu'@; put 'MjUtMS41NiwxLjItMi4wOCwxLS4zNi0uMTEtLjE1LS44Mi0uMDgtMS4xMmwuNTMtMS41N2MuMjItLjY0LDQuMDUtMTIsNC40Ny0xMy4zLjYyLTEuOS4zNS0zLjc3LTIuNDgtMy4zMi0uNzcuMDgtOC41OCwxLjA5LTguNzIsMS4xYTEsMSwwLDAsMCwuMTMsMnMzLS4zOSwzLjMzLS40MmEuODgu'@; put 'ODgsMCwwLDEsLjg1LjQ0LDIuNDcsMi40NywwLDAsMS0uMDcsMS43MWMtLjI2LDEtNC4zNywxMi41OC00LjUsMTMuMjVhMi43OCwyLjc4LDAsMCwwLDEuMTgsMyw1LDUsMCwwLDAsMy4wOC44M2gwYTguNTMsOC41MywwLDAsMCwzLjA5LS42MmMyLjQ5LTEsNS4wOS0zLjY2LDYuNDYtNS43NUEx'@; put 'LDEsMCwwLDAsMjQuODQsMjYuMjNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVCYXJzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMjlINGExLDEs'@; put 'MCwwLDEsMC0ySDMyYTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiwxOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTMyLDlINEExLDEsMCwwLDEsNCw3SDMyYTEsMSwwLDAsMSwwLDJaIi8+JyksbC5DbHJTaGFwZVVzZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDE3YTcsNywwLDEsMC03LTdBNyw3LDAsMCww'@; put 'LDE4LDE3Wk0xOCw1YTUsNSwwLDEsMS01LDVBNSw1LDAsMCwxLDE4LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1'@; put 'Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIy'@; put 'LDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNywwLDAsMCw0LjQ1LTEuNmgtLjIyQTMuNjgsMy42OCwwLDAsMSwyMCwxNC42YTUsNSwwLDEsMSwxLjI0LTgu'@; put 'NDJsMS0xLjc2QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4'@; put 'QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDYuODUtNS41Niw3LjQsNy40LDAsMCwxLTIuMjQtNi42OUE3LDcsMCwxLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUs'@; put 'NUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYt'@; put 'NkExLjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxMCIgcj0iNyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkExLjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNywwLDAsMCw0LjQ1LTEuNmgtLjIyQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDMuMTYtNS40N0E3LDcsMCwxLDAsMTgsMTdaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEu'@; put 'MjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQuNTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUx'@; put 'LDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDYuODUtNS41Niw3LjQsNy40LDAsMCwxLTIuMjQtNi42OUE3LDcsMCwxLDAsMTgsMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9'@; put 'IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGwuQ2xyU2hhcGVBbmdsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMSIgZD0iTTI5LjUyLDIyLjUyLDE4LDEwLjYsNi40OCwyMi41MmExLjcsMS43LDAsMCwwLDIuNDUsMi4zNkwxOCwxNS40OWw5LjA4LDkuMzlhMS43LDEuNywwLDAsMCwyLjQ1LTIuMzZaIi8+JyksbC5DbHJTaGFwZUZvbGRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMCw5Wm0wLDIwSDZWMTNoNy4zMWEy'@; put 'LDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxSDMwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVWMjlINlYxM2g3LjMxYTIs'@; put 'MiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoOC41MWE3LjUsNy41LDAsMCwxLTEuMjktMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJB'@; put 'Ny40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMwLDE1LjRWMjlINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTks'@; put 'OS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAg'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwz'@; put 'MCw5Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4x'@; put 'MSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNNiwxMVY3aDYuNDlsMi43Miw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMy4xMyw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwy'@; put 'LDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVpNNiwxMVY3aDYuNDlsMi43Miw0WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2Ui'@; put 'IGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxsLkNsclNoYXBlRm9sZGVyT3Blbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5'@; put 'LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMmEyLDIsMCwwLDAtMi0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAs'@; put 'MCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0Wk0yOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNEgzMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwu'@; put 'ODEuNDFoOC41MmE3LjQ5LDcuNDksMCwwLDEtMS4yOS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1'@; put 'LjMyLDEzLjc0Wk0yOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNEgzMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9'@; put 'IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNGgtLjNMMjkuNTUsMjlINi45bDMuODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0u'@; put 'MjRoOS40MkEzLjY3LDMuNjcsMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwxLS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEs'@; put 'MTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAs'@; put 'MCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz'@; put 'My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCww'@; put 'LDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdW'@; put 'MjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0t'@; put 'YWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2YTMuNjMsMy42MywwLDAsMS0uMjYtLjU2SDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQx'@; put 'aDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xYTEuNjgsMS42OCwwLDAs'@; put 'MCwuMDctLjMyQTMuNjcsMy42NywwLDAsMSwzMy42OCwxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y'@; put 'OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdl'@; put 'ZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjMxLTJIMTYuNDJM'@; put 'MTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGwuQ2xyU2hhcGVCZWxsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xIiBkPSJNMzIuNTEsMjcuODNBMTQuNCwxNC40LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAsMCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIx'@; put 'LDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFoMjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSwwLDAsMCwzMi41MSwyNy44M1pNNS4xMywyOC45NGExNi4x'@; put 'NywxNi4xNywwLDAsMCwyLjQ0LTMsMTQuMjQsMTQuMjQsMCwwLDAsMS42NS01Ljg1VjE1LjE1YTguNzQsOC43NCwwLDEsMSwxNy40NywwdjQuOTRhMTQuMjQsMTQuMjQsMCwwLDAsMS42NSw1Ljg1LDE2LjE3LDE2LjE3LDAsMCwwLDIuNDQsM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCwwLDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVhMTAuOTIsMTAuOTIsMCwwLDAtLjE2LTEuNzksNy40NCw3LjQ0LDAsMCwxLTIuMjQtLjg0LDguODksOC44OSwwLDAsMSwu'@; put 'NCwyLjY0djQuOTRhMTQuMjQsMTQuMjQsMCwwLDAsMS42NSw1Ljg1LDE2LjE3LDE2LjE3LDAsMCwwLDIuNDQsM0g1LjEzYTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVBOC44LDguOCwwLDAsMSwxOCw2LjMxYTguNjEsOC42MSwwLDAs'@; put 'MSw0Ljc2LDEuNDRBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41OCwxMC41OCwwLDAsMC0zLjMyLTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUu'@; put 'ODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzLDEsMSwwLDAsMC0uMzQuNzV2MS4zNmExLDEsMCwwLDAsMSwxaDI3LjhhMSwxLDAsMCwwLDEtMVYyOC41OEExLDEsMCwwLDAsMzIuNTEsMjcuODNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuODUsMjguMTNsLS4zNC0uM0ExNC4z'@; put 'NywxNC4zNywwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNUExMC44MSwxMC44MSwwLDAsMCwxOS4yMSw0LjRWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAs'@; put 'MCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xNS4zMiwzMmEyLjY1LDIuNjUsMCwwLDAsNS4yNSwwWiIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCwwLDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjg1LDI4LjEzbC0uMzQtLjNBMTQuMzcsMTQuMzcsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVhMTAuOTIsMTAuOTIsMCwwLDAt'@; put 'LjE2LTEuNzlBNy41LDcuNSwwLDAsMSwyMi41LDZjMC0uMjEsMC0uNDIsMC0uNjNhMTAuNTcsMTAuNTcsMCwwLDAtMy4zMi0xVjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0'@; put 'LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45M2wtLjM0LjN2Mi44MkgzMi44NVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+'@; put 'JyksbC5DbHJTaGFwZUltYWdlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywxMSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAs'@; put 'MCwwLDIyLjc4LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAtMywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42'@; put 'LDAsMCwxLDcuMzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zOCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIy'@; put 'LjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMw'@; put 'SDRWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt'@; put 'LWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCww'@; put 'LDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02'@; put 'LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAs'@; put 'MiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1'@; put 'LjQtNS40YTEsMSwwLDAsMSwxLjQxLDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGwuQ2xyU2hhcGVDbG91ZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjE0LDMzSDEwLjYyQzUuNjcsMzMsMSwyOC4xOSwxLDIzLjFh'@; put 'MTAsMTAsMCwwLDEsOC05Ljc1LDEwLjE5LDEwLjE5LDAsMCwxLDIwLjMzLDEuMDZBMTAuMDcsMTAuMDcsMCwwLDEsMjksMTYuNjZhOC4yOSw4LjI5LDAsMCwxLDYsOEMzNSwyOS4xLDMxLjMzLDMzLDI3LjE0LDMzWk0xOS4wOSw2LjIzYTguMjQsOC4yNCwwLDAsMC04LjE5LDhsMCwuODctLjg2'@; put 'LjFBNy45NCw3Ljk0LDAsMCwwLDMsMjMuMWMwLDQsMy43Nyw3LjksNy42Miw3LjlIMjcuMTRDMzAuMjEsMzEsMzMsMjgsMzMsMjQuNjVhNi4zMSw2LjMxLDAsMCwwLTUuMzctNi4yNmwtMS4xOC0uMTguMzktMS4xM0E4LjE4LDguMTgsMCwwLDAsMTkuMDksNi4yM1oiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSwwLTFhNy40NSw3LjQ1LDAsMCwxLTIuMS0uNTQsOCw4LDAsMCwxLS4zLDQu'@; put 'MTZsLS4zOSwxLjEzLDEuMTguMThhNi4zMSw2LjMxLDAsMCwxLDUuMzcsNi4yNkMzMi45NSwyOCwzMC4xNiwzMSwyNy4wOSwzMUgxMC41N2MtMy44NCwwLTcuNjItMy45MS03LjYyLTcuOWE3Ljk0LDcuOTQsMCwwLDEsNy03Ljg5bC44Ni0uMSwwLS44N2E4LjI0LDguMjQsMCwwLDEsOC4xOS04'@; put 'QTguMTMsOC4xMywwLDAsMSwyMi41OCw3YTcuNTMsNy41MywwLDAsMS0uMDgtMSw3LjUxLDcuNTEsMCwwLDEsLjA5LTEuMTJBMTAuMTMsMTAuMTMsMCwwLDAsMTksNC4yMywxMC4yNiwxMC4yNiwwLDAsMCw4LjkxLDEzLjM2YTEwLDEwLDAsMCwwLTgsOS43NWMwLDUuMDksNC42Nyw5LjksOS42'@; put 'Miw5LjlIMjcuMDljNC4xOSwwLDcuODYtMy45LDcuODYtOC4zNUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4'@; put 'PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTI5LDE2LjY2YTEwLjE0LDEwLjE0LDAsMCwwLC4yLTEuM2gtMmE4LjI4LDguMjgsMCwwLDEtLjM3'@; put 'LDEuNzJsLS4zOSwxLjEzLDEuMTguMThhNi4zMSw2LjMxLDAsMCwxLDUuMzcsNi4yNkMzMi45NSwyOCwzMC4xNiwzMSwyNy4wOSwzMUgxMC41N2MtMy44NCwwLTcuNjItMy45MS03LjYyLTcuOWE3Ljk0LDcuOTQsMCwwLDEsNy03Ljg5bC44Ni0uMSwwLS44N0E4LjE2LDguMTYsMCwwLDEsMjEs'@; put 'Ni40N2wxLTEuOEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2YTEwLDEwLDAsMCwwLTgsOS43NWMwLDUuMDksNC42Nyw5LjksOS42Miw5LjlIMjcuMDljNC4xOSwwLDcuODYtMy45LDcuODYtOC4zNUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x'@; put 'NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjksMTYuNjZhMTAuMDcsMTAuMDcsMCwwLDAsLjI1LTIuMjRBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwx'@; put 'MCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjksMTYuNjZhMTAuMDcsMTAuMDcsMCwwLDAsLjI1LTIuMjRjMC0uMzMsMC0uNjUsMC0xYTcuNDQsNy40NCwwLDAsMS02LjYtOC41OEExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEwLjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzYsMTAsMTAsMCwwLDAs'@; put 'MSwyMy4xQzEsMjguMTksNS42MiwzMywxMC41NywzM0gyNy4wOUMzMS4yOCwzMywzNSwyOS4xLDM1LDI0LjY1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0t'@; put 'YmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTI5LDE2LjY2YTEwLjE1LDEwLjE1LDAsMCwwLC4yLTEuMjZoLTdB'@; put 'My42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy01LjIxQTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzYsMTAsMTAsMCwwLDAsMSwyMy4xQzEsMjguMTksNS42MiwzMywxMC41NywzM0gyNy4wOUMzMS4yOCwzMywzNSwyOS4xLDM1LDI0LjY1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0'@; put 'Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksbC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbD0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIzMS4xIiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMS4xIiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i'@; put 'MTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksbC5DbHJTaGFwZUVsbGlwc2lzVmVy'@; put 'dGljYWw9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTgiIGN5PSI0LjkiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSI0LjkiIHI9IjIu'@; put 'OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn'@; put 'ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGwuQ2xyU2hhcGVGaWx0ZXJHcmlkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTUs'@; put 'MjUuODZsMiwxVjIwLjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdMMTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCwwLTEsMXYxYTEuNDYsMS40'@; put 'NiwwLDAsMCwuNDIsMUwxNSwyMC42OFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAs'@; put 'LjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+JyksbC5DbHJTaGFwZUZpbHRlckdyaWRDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEs'@; put 'MSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww'@; put 'LDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAs'@; put 'MzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTgsMTF2MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2'@; put 'Ni44OWEuNS41LDAsMCwwLC4yOC40NWwzLjk1LDEuNDFhLjUuNSwwLDAsMCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAsMCwuMTUtLjM1VjExWiIvPicpLGwuQ2xyU2hhcGVWbUJ1Zz0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB3aWR0aD0i'@; put 'MzYiIGhlaWdodD0iMzYiIHJ4PSIzIiBmaWxsPSIjZmZmZmZmIiBvcGFjaXR5PSIwLjE1IiBzdHlsZT0iaXNvbGF0aW9uOmlzb2xhdGUiLz48cGF0aCBkPSJNMy43OSwxNC44M2ExLjA5LDEuMDksMCwwLDAtMS40Ny0uNTYsMS4wOSwxLjA5LDAsMCwwLS41NCwxLjQ5bDIuNDcsNS40Yy4zOS44'@; put 'NS44LDEuMjksMS41NywxLjI5UzcsMjIsNy4zOSwyMS4xNmwyLjE3LTQuNzdhLjMzLjMzLDAsMCwxLC4zMS0uMi4zNS4zNSwwLDAsMSwuMzUuMzV2NC42MWExLjE1LDEuMTUsMCwwLDAsMS4xNCwxLjMsMS4xNywxLjE3LDAsMCwwLDEuMTctMS4zVjE3LjM4YTEuMTUsMS4xNSwwLDAsMSwxLjIy'@; put 'LTEuMiwxLjEzLDEuMTMsMCwwLDEsMS4xOCwxLjJ2My43N2ExLjE3LDEuMTcsMCwxLDAsMi4zMiwwVjE3LjM4YTEuMTUsMS4xNSwwLDAsMSwxLjIyLTEuMiwxLjEzLDEuMTMsMCwwLDEsMS4xOCwxLjJ2My43N2ExLjE2LDEuMTYsMCwxLDAsMi4zMSwwVjE2Ljg2YTIuNjksMi42OSwwLDAsMC0y'@; put 'Ljc4LTIuNjksMy41NywzLjU3LDAsMCwwLTIuNDcsMS4wNSwyLjc1LDIuNzUsMCwwLDAtMi4zOC0xLjA1QTMuOTMsMy45MywwLDAsMCwxMiwxNS4yMmEyLjgyLDIuODIsMCwwLDAtMi4wOC0xLjA1QTIuNTUsMi41NSwwLDAsMCw3LjQsMTUuODlMNS44MiwxOS42M2wtMi00LjgiIGZpbGw9IiNm'@; put 'ZmZmZmYiLz48cGF0aCBkPSJNMzMsMTQuMThBMS4xNCwxLjE0LDAsMCwwLDMxLjksMTVsLTEuMTksMy43M0wyOS41LDE1LjA1YTEuMTgsMS4xOCwwLDAsMC0xLjE1LS44N2gtLjFhMS4yLDEuMiwwLDAsMC0xLjE1Ljg3bC0xLjE5LDMuNzEtMS4xOC0zLjcxYTEuMTUsMS4xNSwwLDAsMC0xLjEx'@; put 'LS44NywxLjA4LDEuMDgsMCwwLDAtMS4xMiwxLjA3LDEuNjgsMS42OCwwLDAsMCwuMS41NGwyLDUuN2ExLjI3LDEuMjcsMCwwLDAsMS4yNywxLDEuMjQsMS4yNCwwLDAsMCwxLjItLjkzbDEuMi0zLjY0LDEuMiwzLjY0YTEuMjUsMS4yNSwwLDAsMCwxLjI2LjkzQTEuMjcsMS4yNywwLDAsMCwz'@; put 'MiwyMS41TDM0LDE1LjczYTEuNzcsMS43NywwLDAsMCwuMDgtLjQ4QTEuMDcsMS4wNywwLDAsMCwzMywxNC4xOFoiIGZpbGw9IiNmZmZmZmYiLz4nKSxsLkNsclNoYXBlU2VhcmNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIiBkPSJNMTYuMzMsNS4wNUExMC45NSwxMC45NSwwLDEsMSw1LjM5LDE2LDExLDExLDAsMCwxLDE2LjMzLDUuMDVtMC0yLjA1YTEzLDEzLDAsMSwwLDEzLDEzLDEzLDEzLDAsMCwwLTEzLTEzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0yIiBkPSJNMzUsMzMuMjlsLTcuMzctNy40Mi0xLjQyLDEuNDEsNy4zNyw3LjQyQTEsMSwwLDEsMCwzNSwzMy4yOVoiLz4nKSxsLkNsclNoYXBlVmlld0NvbHVtbnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEiIGQ9Ik0zMSw1SDVBMiwyLDAsMCwwLDMsN1YyOWEyLDIsMCwwLDAsMiwySDMxYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzEsNVpNMTMsMjlINVY3aDhabTEwLDBIMTVWN2g4WiIvPicpLGwuQ2xyU2hhcGVBbmdsZURvdWJsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI5LDE5LjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDguODMsNy43MSwxOS4xMmExLDEsMCwwLDEtMS40MS0xLjQxTDE4LDYsMjkuNzEsMTcuNzFBMSwxLDAsMCwxLDI5LDE5LjQxWiIvPlxuICAgICAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjksMzAuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsMTkuODMsNy43MSwzMC4xMmExLDEsMCwwLDEtMS40MS0xLjQxTDE4LDE3LDI5LjcxLDI4LjcxQTEsMSwwLDAsMSwyOSwzMC40MVoiLz4n'@; put 'KSxsLkNsclNoYXBlQ2FsZW5kYXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCww'@; put 'LDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI4IiB5PSIxNCIgd2lkdGg9IjIiIGhl'@; put 'aWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIxNCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAg'@; put 'ICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxNCIg'@; put 'eT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTEiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xMiIgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMTUiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiIHg9IjEzIiB5PSI2IiB3'@; put 'aWR0aD0iMTAiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLDEzLjIyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEu'@; put 'NzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn'@; put 'ZWQiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiB4PSIxNCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIHg9IjIwIiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiB4PSI4IiB5PSIxOSIgd2lk'@; put 'dGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05'@; put 'LS1iYWRnZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+'@; put 'XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTEtLWJhZGdlZCIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWJhZGdlZCIgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWJhZGdlZCIgeD0iMjYi'@; put 'IHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTQtLWJhZGdlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCww'@; put 'LDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiIGQ9Ik0yMi41LDZIMTNWOGg5Ljc4QTcuNDksNy40OSwwLDAsMSwyMi41LDZaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNs'@; put 'ZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDMyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiB4PSI4IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0zLS1hbGVydGVkIiB4PSIxNCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVy'@; put 'dGVkIiB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYWxlcnRlZCIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs'@; put 'ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTEtLWFsZXJ0ZWQiIHg9IjI2'@; put 'IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAs'@; put 'MCwwLDEwLDEwWiIvPjxwb2x5Z29uIHBvaW50cz0iMjEuMjkgNiAxMyA2IDEzIDggMjAuMTQgOCAyMS4yOSA2Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEzLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBk'@; put 'PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjI1LDZoLTRWOWEyLjIsMi4yLDAsMSwxLTQuNCwwVjZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0'@; put 'LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEwSDI2VjI0'@; put 'aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAg'@; put 'ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRn'@; put 'ZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcu'@; put 'NDUsMCwwLDEsMzAsMTMuNVpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAt'@; put 'NUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEu'@; put 'NzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptNiw1SDI2'@; put 'VjI0aDJabTAtNUgyNlYxOWgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0'@; put 'Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksbC5DbHJTaGFwZUV2ZW50PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTYuMTcsMjUuODYsMTAuODEsMjAuNWExLDEs'@; put 'MCwwLDEsMS40MS0xLjQxTDE2LjE3LDIzbDguNjQtOC42NGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIuMjUsNkgyOVY4aDNWMzBINFY4SDdWNkgzLjc1QTEuNzgs'@; put 'MS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMyIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYz'@; put 'YTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjEzIiB5PSI2IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTEwLjgxLDIwLjVsNS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMC0xLjQxLTEuNDFMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPlxuICAgICAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTMyLDEzLjIyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5'@; put 'VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0yMi41LDZIMTNWOGg5Ljc4QTcuNDksNy40OSwwLDAsMSwyMi41LDZaIi8+'@; put 'XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLC4yMy0uNDFIMjMuOEwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHBvaW50cz0iMjEuMjkgNiAxMyA2IDEzIDggMjAuMTQgOCAyMS4yOSA2Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQt'@; put 'LWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDMyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwx'@; put 'LjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC0zIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwwLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUEx'@; put 'Ljc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMjUuOTQsMTYuNThsLTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzhMMjQsMTQuNjZhMS4zNiwxLjM2LDAsMSwxLDEuOTMsMS45M1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjYuM2ExLjM0LDEuMzQsMCwwLDEtLjM2LDEuMThsLTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzgsNy03aC0xQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5'@; put 'QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl'@; put 'cnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCww'@; put 'LDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVabS00LjA2LDMuMDgtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45Mywx'@; put 'LjkzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxsLkNsclNoYXBlRXllPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9'@; put 'Ik0zMy42MiwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwx'@; put 'OGMzLTUuMjksOC4xNy04LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4wOSwxMS4x'@; put 'N0E2Ljg2LDYuODYsMCwxLDAsMjUsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjA5LDExLjE3Wm0wLDExLjcyQTQuODYsNC44NiwwLDEsMSwyMywxOCw0Ljg3LDQuODcsMCwwLDEsMTguMDksMjIuODlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYu'@; put 'NDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4'@; put 'PSIxOC4wOSIgY3k9IjE4LjAzIiByPSI2Ljg2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksbC5DbHJTaGFwZUV5ZUhpZGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1LjE5LDIwLjRBNi43OCw2Ljc4LDAsMCwwLDI1LjYyLDE4YTYuODYsNi44Niww'@; put 'LDAsMC02Ljg2LTYuODYsNi43OSw2Ljc5LDAsMCwwLTIuMzcuNDNMMTgsMTMuMjNhNC43OCw0Ljc4LDAsMCwxLC43NC0uMDZBNC44Nyw0Ljg3LDAsMCwxLDIzLjYyLDE4YTQuNzksNC43OSwwLDAsMS0uMDYuNzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43'@; put 'NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQuODcsNS43OGw0LjQ2LDQuNDZhMTkuNTIsMTkuNTIsMCwwLDAt'@; put 'Ni42OSw3LjI5TDIuMzgsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwYTE2LjkzLDE2LjkzLDAsMCwwLDcuMzctMS42OWw1LDUsMS43NS0xLjUtMjYtMjZabTkuNzUsOS43NSw2LjY1LDYuNjVhNC44MSw0LjgxLDAsMCwxLTIuNS43MkE0Ljg3LDQuODcsMCwwLDEsMTMuOSwx'@; put 'OCw0LjgxLDQuODEsMCwwLDEsMTQuNjIsMTUuNTNabS0xLjQ1LTEuNDVhNi44NSw2Ljg1LDAsMCwwLDkuNTUsOS41NWwxLjYsMS42YTE0LjkxLDE0LjkxLDAsMCwxLTUuODYsMS4yYy01LjYzLDAtMTAuNzUtMy4xNC0xMy44LTguNDNhMTcuMjksMTcuMjksMCwwLDEsNi4xMi02LjNaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjM3LDExLjE3QTYuNzksNi43OSwwLDAsMCwxNiwxMS42bDguOCw4LjhBNi43OCw2Ljc4LDAsMCwwLDI1LjIzLDE4LDYuODYsNi44NiwwLDAsMCwxOC4zNywxMS4xN1oiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwxMGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1'@; put 'LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQyYTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQuODcs'@; put 'NS43OGw0LjQ2LDQuNDZhMTkuNTIsMTkuNTIsMCwwLDAtNi42OSw3LjI5TDIuMzgsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwYTE2LjkzLDE2LjkzLDAsMCwwLDcuMzctMS42OWw1LDUsMS43NS0xLjUtMjYtMjZabTguMyw4LjNhNi44NSw2Ljg1LDAsMCwwLDkuNTUsOS41'@; put 'NWwxLjYsMS42YTE0LjkxLDE0LjkxLDAsMCwxLTUuODYsMS4yYy01LjYzLDAtMTAuNzUtMy4xNC0xMy44LTguNDNhMTcuMjksMTcuMjksMCwwLDEsNi4xMi02LjNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksbC5DbHJTaGFwZVN0ZXBGb3J3YXJkMj0oMCxh'@; put 'LmNsckljb25TVkcpKCc8cGF0aCBkPSJNNy4wOCw2LjUyYTEuNjgsMS42OCwwLDAsMCwwLDIuNEwxNi41MSwxOCw3LjEyLDI3LjA4YTEuNywxLjcsMCwwLDAsMi4zNiwyLjQ0aDBMMjEuNCwxOCw5LjQ4LDYuNDdBMS42OSwxLjY5LDAsMCwwLDcuMDgsNi41MloiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNi40OSw1YTEuNywxLjcsMCwwLDAtMS43LDEuN1YyOS4zYTEuNywxLjcsMCwwLDAsMy40LDBWNi43QTEuNywxLjcsMCwwLDAsMjYuNDksNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAv'@; put 'PicpLGwuQ2xyU2hhcGVBcnJvdz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuNjYsMTUuNjEsMTgsNiw4LjM0LDE1LjYxQTEsMSwwLDEsMCw5Ljc1LDE3TDE3LDkuODFWMjguOTRhMSwxLDAsMSwwLDIsMFY5LjgxTDI2LjI1LDE3YTEsMSwwLDAsMCwxLjQxLTEuNDJaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLGwuQ29yZVNoYXBlcz17InVua25vd24tc3RhdHVzIjpsLkNsclNoYXBlVW5rbm93blN0YXR1cyxob21lOmwuQ2xyU2hhcGVIb21lLGNvZzpsLkNsclNoYXBlQ29nLGNoZWNrOmwuQ2xyU2hhcGVDaGVjayx0aW1lczpsLkNs'@; put 'clNoYXBlVGltZXMsImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIjpsLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZSwiZXhjbGFtYXRpb24tY2lyY2xlIjpsLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGUsImNoZWNrLWNpcmNsZSI6bC5DbHJTaGFwZUNoZWNrQ2lyY2xlLCJpbmZvLWNpcmNsZSI6'@; put 'bC5DbHJTaGFwZUluZm9DaXJjbGUsImluZm8tc3RhbmRhcmQiOmwuQ2xyU2hhcGVJbmZvU3RhbmRhcmQsInN1Y2Nlc3Mtc3RhbmRhcmQiOmwuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQsImVycm9yLXN0YW5kYXJkIjpsLkNsclNoYXBlRXJyb3JTdGFuZGFyZCwid2FybmluZy1zdGFuZGFyZCI6'@; put 'bC5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZCwiaGVscC1pbmZvIjpsLkNsclNoYXBlSGVscEluZm8sYmFyczpsLkNsclNoYXBlQmFycyx1c2VyOmwuQ2xyU2hhcGVVc2VyLGFuZ2xlOmwuQ2xyU2hhcGVBbmdsZSxmb2xkZXI6bC5DbHJTaGFwZUZvbGRlciwiZm9sZGVyLW9wZW4iOmwuQ2xyU2hh'@; put 'cGVGb2xkZXJPcGVuLGJlbGw6bC5DbHJTaGFwZUJlbGwsaW1hZ2U6bC5DbHJTaGFwZUltYWdlLGNsb3VkOmwuQ2xyU2hhcGVDbG91ZCwiZWxsaXBzaXMtaG9yaXpvbnRhbCI6bC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbCwiZWxsaXBzaXMtdmVydGljYWwiOmwuQ2xyU2hhcGVFbGxpcHNp'@; put 'c1ZlcnRpY2FsLCJmaWx0ZXItZ3JpZCI6bC5DbHJTaGFwZUZpbHRlckdyaWQsImZpbHRlci1ncmlkLWNpcmNsZSI6bC5DbHJTaGFwZUZpbHRlckdyaWRDaXJjbGUsInZtLWJ1ZyI6bC5DbHJTaGFwZVZtQnVnLHNlYXJjaDpsLkNsclNoYXBlU2VhcmNoLCJ2aWV3LWNvbHVtbnMiOmwuQ2xyU2hh'@; put 'cGVWaWV3Q29sdW1ucywiYW5nbGUtZG91YmxlIjpsLkNsclNoYXBlQW5nbGVEb3VibGUsY2FsZW5kYXI6bC5DbHJTaGFwZUNhbGVuZGFyLGV2ZW50OmwuQ2xyU2hhcGVFdmVudCxleWU6bC5DbHJTaGFwZUV5ZSwiZXllLWhpZGUiOmwuQ2xyU2hhcGVFeWVIaWRlLCJzdGVwLWZvcndhcmQtMiI6'@; put 'bC5DbHJTaGFwZVN0ZXBGb3J3YXJkMixhcnJvdzpsLkNsclNoYXBlQXJyb3d9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLkNvcmVTaGFwZXMsImhvdXNlIiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuQ29yZVNoYXBlcy5ob21lKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ29yZVNoYXBl'@; put 'cywic2V0dGluZ3MiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Db3JlU2hhcGVzLmNvZykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLkNvcmVTaGFwZXMsInN1Y2Nlc3MiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Db3JlU2hhcGVzLmNoZWNrKSksT2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KGwuQ29yZVNoYXBlcywiY2xvc2UiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Db3JlU2hhcGVzLnRpbWVzKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ29yZVNoYXBlcywid2FybmluZyIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkNvcmVTaGFwZXNbImV4Y2xhbWF0aW9uLXRyaWFu'@; put 'Z2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Db3JlU2hhcGVzLCJlcnJvciIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkNvcmVTaGFwZXNbImV4Y2xhbWF0aW9uLWNpcmNsZSJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ29yZVNoYXBlcywiaW5mbyIsKDAscC5kZXNjcmlw'@; put 'dG9yQ29uZmlnKShsLkNvcmVTaGFwZXNbImluZm8tY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Db3JlU2hhcGVzLCJtZW51IiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuQ29yZVNoYXBlcy5iYXJzKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ29yZVNoYXBlcywiYXZh'@; put 'dGFyIiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuQ29yZVNoYXBlcy51c2VyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ29yZVNoYXBlcywiY2FyZXQiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Db3JlU2hhcGVzLmFuZ2xlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuQ29yZVNo'@; put 'YXBlcywiZGlyZWN0b3J5IiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuQ29yZVNoYXBlcy5mb2xkZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Db3JlU2hhcGVzLCJub3RpZmljYXRpb24iLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Db3JlU2hhcGVzLmJlbGwpKSxPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkobC5Db3JlU2hhcGVzLCJjb2xsYXBzZSIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkNvcmVTaGFwZXNbImFuZ2xlLWRvdWJsZSJdKSl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvZXNzZW50aWFsLXNoYXBlcy50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvZXNzZW50aWFsLXNoYXBlcy50cyAqKiohCiAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'LwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihNLGwsdil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsLkNsclNoYXBlTG9nb3V0PWwuQ2xyU2hhcGVMb2dpbj1sLkNsclNoYXBlSGVscD1sLkNsclNo'@; put 'YXBlQ29weT1sLkNsclNoYXBlQ2hpbGRBcnJvdz1sLkNsclNoYXBlQ2lyY2xlQXJyb3c9bC5DbHJTaGFwZUFsYXJtQ2xvY2s9bC5DbHJTaGFwZUNsb2NrPWwuQ2xyU2hhcGVIaXN0b3J5PWwuQ2xyU2hhcGVUYWdzPWwuQ2xyU2hhcGVUYWc9bC5DbHJTaGFwZVRyYXNoPWwuQ2xyU2hhcGVUaW1l'@; put 'c0NpcmNsZT1sLkNsclNoYXBlQmFuPWwuQ2xyU2hhcGVQbHVzQ2lyY2xlPWwuQ2xyU2hhcGVNaW51c0NpcmNsZT1sLkNsclNoYXBlTWludXM9bC5DbHJTaGFwZVBsdXM9bC5DbHJTaGFwZUZpbGU9bC5DbHJTaGFwZVBpbj1sLkNsclNoYXBlRmlsdGVyPWwuQ2xyU2hhcGVQb3BPdXQ9bC5DbHJT'@; put 'aGFwZVVzZXJzPWwuQ2xyU2hhcGVVbmxvY2s9bC5DbHJTaGFwZUxvY2s9bC5DbHJTaGFwZVVwbG9hZD1sLkNsclNoYXBlRG93bmxvYWQ9bC5DbHJTaGFwZUxpZ2h0YnVsYj1sLkNsclNoYXBlVmlld0NhcmRzPWwuQ2xyU2hhcGVWaWV3TGlzdD1sLkNsclNoYXBlU3luYz1sLkNsclNoYXBlUmVm'@; put 'cmVzaD1sLkNsclNoYXBlTm90ZT1sLkNsclNoYXBlUGVuY2lsPWwuQ2xyU2hhcGVUaGVybW9tZXRlcj1sLkNsclNoYXBlQnVnPWwuQ2xyU2hhcGVTY2lzc29ycz1sLkNsclNoYXBlQXN0ZXJpc2s9bC5DbHJTaGFwZUJvb2s9bC5DbHJTaGFwZU9iamVjdHM9bC5DbHJTaGFwZVJlc2l6ZT1sLkNs'@; put 'clNoYXBlQ3Vyc29ySGFuZENsaWNrPWwuQ2xyU2hhcGVDdXJzb3JIYW5kPWwuQ2xyU2hhcGVDdXJzb3JBcnJvdz1sLkNsclNoYXBlR3JpZFZpZXc9bC5DbHJTaGFwZUJ1YmJsZUV4Y2xhbWF0aW9uPWwuQ2xyU2hhcGVOZXc9bC5DbHJTaGFwZUFsYXJtT2ZmPWwuQ2xyU2hhcGVQaW5ib2FyZD1s'@; put 'LkNsclNoYXBlQWRkVGV4dD12b2lkIDAsbC5DbHJTaGFwZUNsb25lPWwuQ2xyU2hhcGVDdXJzb3JNb3ZlPWwuQ2xyU2hhcGVXYW5kPWwuQ2xyU2hhcGVTdW49bC5DbHJTaGFwZU1vb249bC5DbHJTaGFwZUZpbHRlcjI9bC5DbHJTaGFwZURyYWdIYW5kbGU9bC5DbHJTaGFwZUNvcHlUb0NsaXBi'@; put 'b2FyZD1sLkNsclNoYXBlQ29sb3JQaWNrZXI9bC5DbHJTaGFwZUJyaWVmY2FzZT1sLkNsclNoYXBlRXhwYW5kQ2FyZD1sLkNsclNoYXBlQ29sbGFwc2VDYXJkPWwuQ2xyU2hhcGVTb3J0Qnk9bC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyPWwuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5MT1sLkNsclNo'@; put 'YXBlU2hyaW5rPWwuQ2xyU2hhcGVQYXBlcmNsaXA9bC5DbHJTaGFwZUZpbGVHcm91cD1sLkNsclNoYXBlUmVwZWF0PWwuQ2xyU2hhcGVJZEJhZGdlPWwuQ2xyU2hhcGVCYWxhbmNlPWwuQ2xyU2hhcGVPcmdhbml6YXRpb249bC5DbHJTaGFwZU5vQWNjZXNzPWwuQ2xyU2hhcGVIb3VyZ2xhc3M9'@; put 'bC5DbHJTaGFwZUZsYW1lPWwuQ2xyU2hhcGVUYXJnZXQ9bC5DbHJTaGFwZUJ1bGxzZXllPWwuQ2xyU2hhcGVXcmVuY2g9bC5DbHJTaGFwZUJvbHQ9bC5DbHJTaGFwZUxpYnJhcnk9bC5DbHJTaGFwZUtleT1sLkNsclNoYXBlWm9vbU91dD1sLkNsclNoYXBlWm9vbUluPWwuQ2xyU2hhcGVXaW5k'@; put 'b3dSZXN0b3JlPWwuQ2xyU2hhcGVXaW5kb3dNaW49bC5DbHJTaGFwZVdpbmRvd01heD1sLkNsclNoYXBlV2luZG93Q2xvc2U9bC5DbHJTaGFwZVRvb2xzPWwuQ2xyU2hhcGVTd2l0Y2g9bC5DbHJTaGFwZVR3b1dheUFycm93cz1sLkNsclNoYXBlRmlsZVNldHRpbmdzPWwuQ2xyU2hhcGVTY3Jv'@; put 'bGw9bC5DbHJTaGFwZVVuZG89bC5DbHJTaGFwZVJlZG89bC5DbHJTaGFwZUxpc3Q9bC5DbHJTaGFwZUZpcmV3YWxsPWwuQ2xyU2hhcGVDbGlwYm9hcmQ9bC5DbHJTaGFwZVNsaWRlcj1sLkNsclNoYXBlV29ybGQ9bC5DbHJTaGFwZVByaW50ZXI9dm9pZCAwLGwuRXNzZW50aWFsU2hhcGVzPWwu'@; put 'Q2xyU2hhcGVDb2xvclBhbGV0dGU9bC5DbHJTaGFwZUZpcnN0QWlkPWwuQ2xyU2hhcGVCZXRhPWwuQ2xyU2hhcGVEb3RDaXJjbGU9bC5DbHJTaGFwZUNpcmNsZT1sLkNsclNoYXBlQ3Jvc3NoYWlycz1sLkNsclNoYXBlVm9sdW1lPWwuQ2xyU2hhcGVUYWJsZT1sLkNsclNoYXBlU25vd2ZsYWtl'@; put 'PWwuQ2xyU2hhcGVGdWVsPWwuQ2xyU2hhcGVGb3JtPWwuQ2xyU2hhcGVGaXNoPWwuQ2xyU2hhcGVUcmVlPWwuQ2xyU2hhcGVSZWN5Y2xlPWwuQ2xyU2hhcGVGaWx0ZXJPZmY9bC5DbHJTaGFwZUZpbGVaaXA9bC5DbHJTaGFwZUN1cnNvckhhbmRPcGVuPWwuQ2xyU2hhcGVDdXJzb3JIYW5kR3Jh'@; put 'Yj1sLkNsclNoYXBlVHJlZVZpZXc9bC5DbHJTaGFwZVBvcnRyYWl0PWwuQ2xyU2hhcGVQYXN0ZT1sLkNsclNoYXBlTGFuZHNjYXBlPWwuQ2xyU2hhcGVFcmFzZXI9bC5DbHJTaGFwZURyYWdIYW5kbGVDb3JuZXI9bC5DbHJTaGFwZURldGFpbHM9dm9pZCAwO3ZhciBwPXYoCi8qISAuLi91dGls'@; put 'cy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxhPXYoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTt2'@; put 'PXYoCi8qISAuL2NvcmUtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxsLkNsclNoYXBlQWRkVGV4dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDIx'@; put 'SDEzYTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTIsMTZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDEzQTEsMSwwLDAsMCwxMiwxNloiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjcsMjdIMTNhMSwxLDAsMCwwLDAsMkgyN2ExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTQiIGQ9Ik0xNS44OSw5YTEsMSwwLDAsMC0xLTFIMTBWMy4yMWExLDEsMCwwLDAtMiwwVjhIMi44OWExLDEsMCwwLDAsMCwySDh2NS4yMWExLDEsMCwwLDAsMiwwVjEwaDQuODlBMSwxLDAsMCwwLDE1Ljg5LDlaIi8+JyksbC5DbHJTaGFwZVBpbmJvYXJkPSgwLGEuY2xySWNvblNWRyko'@; put 'JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzAsNiwzMCw2LDZIMjJWNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0SDMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdhMSwxLDAsMCwwLTEuNDEsMS40MWw3LDdhMSwxLDAsMSwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJN'@; put 'MjIuMSwxMS4xOWwuNy41TDI2LjQ2LDgsMjUsNi41NiwyMi41MSw5LjEzYy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTIsMS42OC01LjkzbDIu'@; put 'NTQtMi41N0wyNy44OCw5LjM4LDI0LjIxLDEzLjFsLjQ5LjY5Yy43NiwxLC4yNSwyLjM3LS40MSwzLjMzTDE4Ljc3LDExLjZDMTkuODQsMTAuODYsMjEuMTUsMTAuNSwyMi4xLDExLjE5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgZD0iTTMwLDMwLDYsMzAsNiw2SDIyVjRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdh'@; put 'MSwxLDAsMCwwLTEuNDEsMS40MWwxLjM4LDEuMzgtNCw0Yy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTEsMS42OC01LjkybDQtNCwxLjM4LDEu'@; put 'MzhhMSwxLDAsMSwwLDEuNDEtMS40MVoiLz4nKSxsLkNsclNoYXBlQWxhcm1PZmY9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMS40NywzLjg0YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4w'@; put 'OCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuMzMsMjEuNTRhLjkuOSwwLDAsMC0uNDEtMS4ybC0zLjItMS41NkwyNC44OSwyMkEu'@; put 'ODkuODksMCwwLDAsMjUuMzMsMjEuNTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDguNmEuOS45LDAsMCwwLS45Ljl2NC42bDEuOCwxLjgxVjkuNUEuOS45LDAsMCwwLDE4LDguNloiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTEuNDIsMy40M2E1LjgsNS44LDAsMCwwLTUuODEtLjgxTDguMyw1LjMyQTE2LDE2LDAsMCwxLDExLjQyLDMuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTE4LDRhMTMuOTEsMTMuOTEsMCwwLDAtOC4zLDIuNzVsMS40MiwxLjQzQTEyLDEyLDAsMCwxLDI3LjgyLDI0LjlsMS40MiwxLjQzQTE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTEuNTYsNC4yMSwyLjczLDUuMzhhNS43LDUuNywwLDAsMCwuNjcsNi4xQTE1Ljc4LDE1Ljc4LDAsMCwxLDUuNDYsOC4xMkw2Ljg4LDkuNTVBMTMuOTQsMTMuOTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIu'@; put 'NjYtMi42NmExMy44OSwxMy44OSwwLDAsMCwxNi44LDBsNC4xNCw0LjE1TDMyLDMxLjksMywyLjhaTTI1LDI3LjcyQTExLjg5LDExLjg5LDAsMCwxLDE4LDMwLDEyLDEyLDAsMCwxLDYsMThhMTEuODksMTEuODksMCwwLDEsMi4yOS03WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTExLjQyLDMuNDNhNS44LDUuOCwwLDAsMC01Ljc3LS44Mkw4LjMzLDUuM0ExNiwxNiwwLDAsMSwxMS40MiwzLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI0LjkyLDIx'@; put 'Ljk0bDQuMzQsNC4zNkExNCwxNCwwLDAsMCw5Ljc1LDYuNzNMMTcsMTRWOS42OWExLDEsMCwwLDEsMiwwVjE2bDIuMzMsMi4zNEwyNSwyMC4xYTEsMSwwLDAsMSwuNDcsMS4zM0ExLDEsMCwwLDEsMjQuOTIsMjEuOTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC00IiBkPSJNMS42MSw0LjIxLDIuNzMsNS4zNGE1LjczLDUuNzMsMCwwLDAsLjY3LDYuMTVBMTUuODgsMTUuODgsMCwwLDEsNS40OCw4LjFMNi45MSw5LjUyQTEzLjk0LDEzLjk0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwy'@; put 'LjY2LTIuNjZhMTMuODksMTMuODksMCwwLDAsMTYuODMsMGw0LjE2LDQuMTdMMzIsMzEuOSwzLDIuOFoiLz4nKSxsLkNsclNoYXBlTmV3PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQuNTksMjNsLTQuMDgt'@; put 'NSw0LTQuOWExLjgyLDEuODIsMCwwLDAsLjIzLTEuOTRBMS45MywxLjkzLDAsMCwwLDMyLjk0LDEwaC0zMUExLjkxLDEuOTEsMCwwLDAsMCwxMS44OFYyNC4xM0ExLjkxLDEuOTEsMCwwLDAsMS45NCwyNkgzMy4wNWExLjkzLDEuOTMsMCwwLDAsMS43Ny0xLjA5QTEuODIsMS44MiwwLDAsMCwz'@; put 'NC41OSwyM1pNMiwyNFYxMkgzMi43OGwtNC44NCw1LjkzTDMyLjg1LDI0WiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBwb2ludHM9IjkuMzkgMTkuMzUgNi4xMyAxNSA1IDE1IDUgMjEuMTggNi4xMyAyMS4xOCA2'@; put 'LjEzIDE2Ljg0IDkuMzkgMjEuMTggMTAuNTEgMjEuMTggMTAuNTEgMTUgOS4zOSAxNSA5LjM5IDE5LjM1Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHBvaW50cz0iMTIuMTggMjEuMTggMTYuODQgMjEuMTggMTYu'@; put 'ODQgMjAuMTYgMTMuMzEgMjAuMTYgMTMuMzEgMTguNTUgMTYuNSAxOC41NSAxNi41IDE3LjUyIDEzLjMxIDE3LjUyIDEzLjMxIDE2LjAzIDE2Ljg0IDE2LjAzIDE2Ljg0IDE1IDEyLjE4IDE1IDEyLjE4IDIxLjE4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHBvaW50cz0iMjQuNTIgMTkuNDMgMjMuMDYgMTUgMjEuODQgMTUgMjAuMzcgMTkuNDMgMTkuMDUgMTUgMTcuODIgMTUgMTkuNzggMjEuMTggMjAuODkgMjEuMTggMjIuNDUgMTYuNTkgMjQgMjEuMTggMjUuMTMgMjEuMTggMjcuMDggMTUgMjUuODUg'@; put 'MTUgMjQuNTIgMTkuNDMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNC4xMSwyNC40OWwtMy45Mi02LjYyLDMuODgtNi4zNUExLDEsMCwwLDAsMzMuMjIsMTBIMmEyLDIsMCwwLDAtMiwyVjI0YTIsMiwwLDAsMCwyLDJI'@; put 'MzMuMjVBMSwxLDAsMCwwLDM0LjExLDI0LjQ5Wm0tMjMuNi0zLjMxSDkuMzlMNi4xMywxNi44NHY0LjM1SDVWMTVINi4xM2wzLjI3LDQuMzVWMTVoMS4xMlpNMTYuODQsMTZIMTMuMzF2MS40OWgzLjJ2MWgtMy4ydjEuNjFoMy41M3YxSDEyLjE4VjE1aDQuNjVabTguMjksNS4xNkgyNGwtMS41'@; put 'NS00LjU5TDIwLjksMjEuMThIMTkuNzhsLTItNi4xOEgxOWwxLjMyLDQuNDNMMjEuODQsMTVoMS4yMmwxLjQ2LDQuNDNMMjUuODUsMTVoMS4yM1oiLz4nKSxsLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIu'@; put 'NVpNMjguMjksMjQuNjFhMSwxLDAsMCwwLS4zMi43M2wwLDUuMzQtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExQTE2LDE2LDAsMCwxLDE4LDI4LjVjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4wOCwxMS4wOCwwLDAsMSwyOC4yOSwyNC42'@; put 'MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjAuNjNhMSwxLDAsMCwwLDEtMVY4LjQ4YTEsMSwwLDEsMC0yLDBWMTkuNjFBMSwxLDAsMCwwLDE4LDIwLjYzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE4IiBjeT0iMjQuMDQiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcu'@; put 'MTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMTYuOTMsOS4xM2ExLjQxLDEuNDEsMCwxLDEsMi44MSwwVjE4LjlhMS40MSwxLjQxLDAs'@; put 'MSwxLTIuODEsMFptMS40MSwxNy4zNWExLjg3LDEuODcsMCwxLDEsMS44Ny0xLjg3QTEuODcsMS44NywwLDAsMSwxOC4zNCwyNi40N1oiLz4nKSxsLkNsclNoYXBlR3JpZFZpZXc9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIGQ9Ik0xNCw0SDZBMiwyLDAsMCwwLDQsNnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDE0LDRaTTYsMTRWNmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLDRI'@; put 'MjJhMiwyLDAsMCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTIyLDE0VjZoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNCwyMEg2YTIsMiwwLDAs'@; put 'MC0yLDJ2OGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYyMkEyLDIsMCwwLDAsMTQsMjBaTTYsMzBWMjJoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMCwyMEgyMmEyLDIsMCwwLDAtMiwydjhh'@; put 'MiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMjJBMiwyLDAsMCwwLDMwLDIwWk0yMiwzMFYyMmg4djhaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSI0IiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIy'@; put 'IiByeT0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgeD0iMjAiIHk9IjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0zIiB4PSI0IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHg9IjIwIiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0i'@; put 'MiIgcnk9IjIiLz4nKSxsLkNsclNoYXBlQ3Vyc29yQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNC41OCwzMi4zMWExLDEsMCwwLDEtLjk0LS42NUw0LDUuNjVBMSwxLDAsMCwxLDUuMjUsNC4zN2wy'@; put 'Niw5LjY4YTEsMSwwLDAsMS0uMDUsMS44OWwtOC4zNiwyLjU3LDguMyw4LjNhMSwxLDAsMCwxLDAsMS40MWwtMy4yNiwzLjI2YTEsMSwwLDAsMS0uNzEuMjloMGExLDEsMCwwLDEtLjcxLS4yOWwtOC4zMy04LjMzLTIuNiw4LjQ1YTEsMSwwLDAsMS0uOTMuNzFabTMuMDktMTJhMSwxLDAsMCwx'@; put 'LC43MS4yOWw4Ljc5LDguNzlMMjksMjcuNTFsLTguNzYtOC43NmExLDEsMCwwLDEsLjQxLTEuNjZsNy4xMy0yLjJMNi42LDdsNy44OSwyMS4yTDE2LjcxLDIxYTEsMSwwLDAsMSwuNzEtLjY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIgZD0iTTI5LDEyLjM2LDMuODgsM0ExLDEsMCwwLDAsMi41OSw0LjI4TDEyLDI5LjQ0YTEsMSwwLDAsMCwxLjg5LS4wNWwyLjY5LTguNzUsOS4xMiw4LjlhMSwxLDAsMCwwLDEuNDEsMGwyLjM1LTIuMzVhMSwxLDAsMCwwLDAtMS40MWwtOS4wOS04Ljg2TDI5LDE0LjI1QTEsMSwwLDAs'@; put 'MCwyOSwxMi4zNloiLz4nKSxsLkNsclNoYXBlQ3Vyc29ySGFuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLjc0LDE1LjE5YTEzLjY2LDEzLjY2LDAsMCwwLTYuODctMy44M0EyNiwyNiwwLDAsMCwxOCwx'@; put 'MC41OFY1LjI4QTMuNCwzLjQsMCwwLDAsMTQuNSwyLDMuNCwzLjQsMCwwLDAsMTEsNS4yOHYxMEw5LjQsMTMuN2EzLjc3LDMuNzcsMCwwLDAtNS4yOCwwQTMuNjcsMy42NywwLDAsMCwzLDE2LjMzYTMuNiwzLjYsMCwwLDAsMSwyLjU2bDQuNjYsNS41MmExMS41MywxMS41MywwLDAsMCwxLjQz'@; put 'LDQsMTAuMTIsMTAuMTIsMCwwLDAsMiwyLjU0djEuOTJhMS4wNywxLjA3LDAsMCwwLDEsMS4wOEgyN2ExLjA3LDEuMDcsMCwwLDAsMS0xLjA4di0yLjdhMTIuODEsMTIuODEsMCwwLDAsMy04LjM2di02QTEsMSwwLDAsMCwzMC43NCwxNS4xOVpNMjksMjEuODZhMTAuNzIsMTAuNzIsMCwwLDEt'@; put 'Mi42LDcuMjYsMS4xMSwxLjExLDAsMCwwLS40LjcyVjMySDE0LjE0VjMwLjUyYTEsMSwwLDAsMC0uNDQtLjgzLDcuMjYsNy4yNiwwLDAsMS0xLjgyLTIuMjMsOS4xNCw5LjE0LDAsMCwxLTEuMi0zLjUyLDEsMSwwLDAsMC0uMjMtLjU5TDUuNTMsMTcuNTNhMS43LDEuNywwLDAsMSwwLTIuNDIs'@; put 'MS43NiwxLjc2LDAsMCwxLDIuNDcsMGwzLDN2My4xNGwyLTFWNS4yOEExLjQyLDEuNDIsMCwwLDEsMTQuNSw0LDEuNDIsMS40MiwwLDAsMSwxNiw1LjI4djExLjhsMiwuNDNWMTIuNTlhMjQuMjcsMjQuMjcsMCwwLDEsMi41MS4xOFYxOGwxLjYuMzVWMTNjLjQxLjA4LjgzLjE3LDEuMjYuMjhh'@; put 'MTQuODgsMTQuODgsMCwwLDEsMS41My40OXY1LjE1bDEuNi4zNVYxNC41QTExLjA2LDExLjA2LDAsMCwxLDI5LDE2LjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LjY5LDE0LjMzdjQuODNsLTItLjQzVjEzLjI0'@; put 'YTE2LjE5LDE2LjE5LDAsMCwwLTIuMzMtLjg0djUuODJsLTItLjQzVjEyYy0xLjEtLjE4LTIuMTgtLjMtMy4wOC0uMzZ2NS41MWwtMi0uNDNWMTEuNDhoMFY0LjM0YTIuNTMsMi41MywwLDAsMC0yLjYtMi40MywyLjUzLDIuNTMsMCwwLDAtMi42LDIuNDNWMTcuMjdoMHYyLjU5bC0yLDFWMTUu'@; put 'Nkw3Ljc1LDEzLjIxYTIuODMsMi44MywwLDAsMC00LDAsMi45MywyLjkzLDAsMCwwLDAsNC4wOWw2LDcuMWExMC44MiwxMC44MiwwLDAsMCwxLjM5LDQuMjIsOC40Miw4LjQyLDAsMCwwLDIuMjEsMi43M3YyLjU2SDI3Ljc5VjMwLjYyYTEyLjU0LDEyLjU0LDAsMCwwLDMtOC41di02QTEwLDEw'@; put 'LDAsMCwwLDI4LjY5LDE0LjMzWiIvPicpLGwuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC40LDE3LjZjLTEuOC0xLjktNC4yLTMuMi02LjctMy43Yy0xLjEtMC4z'@; put 'LTIuMi0wLjUtMy4zLTAuNmMyLjgtMy4zLDIuMy04LjMtMS0xMS4xcy04LjMtMi4zLTExLjEsMXMtMi4zLDguMywxLDExLjFcbiAgICAgICAgICAgICAgICAgICAgYzAuNiwwLjUsMS4yLDAuOSwxLjgsMS4xdjIuMmwtMS42LTEuNWMtMS40LTEuNC0zLjctMS40LTUuMiwwYy0xLjQsMS40LTEu'@; put 'NSwzLjYtMC4xLDVsNC42LDUuNGMwLjIsMS40LDAuNywyLjcsMS40LDMuOVxuICAgICAgICAgICAgICAgICAgICBjMC41LDAuOSwxLjIsMS44LDEuOSwyLjV2MS45YzAsMC42LDAuNCwxLDEsMWgxMy42YzAuNSwwLDEtMC41LDEtMXYtMi42YzEuOS0yLjMsMi45LTUuMiwyLjktOC4xdi01Ljhc'@; put 'biAgICAgICAgICAgICAgICAgICAgQzMwLjcsMTcuOSwzMC42LDE3LjcsMzAuNCwxNy42eiBNOC40LDguMmMwLTMuMywyLjctNS45LDYtNS44YzMuMywwLDUuOSwyLjcsNS44LDZjMCwxLjgtMC44LDMuNC0yLjIsNC41VjcuOVxuICAgICAgICAgICAgICAgICAgICBjLTAuMS0xLjgtMS42LTMu'@; put 'Mi0zLjQtMy4yYy0xLjgtMC4xLTMuNCwxLjQtMy40LDMuMnY1LjJDOS41LDEyLjEsOC41LDEwLjIsOC40LDguMkw4LjQsOC4yeiBNMjguNywyNGMwLjEsMi42LTAuOCw1LjEtMi41LDcuMVxuICAgICAgICAgICAgICAgICAgICBjLTAuMiwwLjItMC40LDAuNC0wLjQsMC43djIuMUgxNC4ydi0x'@; put 'LjRjMC0wLjMtMC4yLTAuNi0wLjQtMC44Yy0wLjctMC42LTEuMy0xLjMtMS44LTIuMmMtMC42LTEtMS0yLjItMS4yLTMuNFxuICAgICAgICAgICAgICAgICAgICBjMC0wLjItMC4xLTAuNC0wLjItMC42bC00LjgtNS43Yy0wLjMtMC4zLTAuNS0wLjctMC41LTEuMmMwLTAuNCwwLjItMC45LDAu'@; put 'NS0xLjJjMC43LTAuNiwxLjctMC42LDIuNCwwbDIuOSwyLjl2M2wxLjktMVY3LjlcbiAgICAgICAgICAgICAgICAgICAgYzAuMS0wLjcsMC43LTEuMywxLjUtMS4yYzAuNywwLDEuNCwwLjUsMS40LDEuMnYxMS41bDIsMC40di00LjZjMC4xLTAuMSwwLjItMC4xLDAuMy0wLjJjMC43LDAsMS40'@; put 'LDAuMSwyLjEsMC4ydjUuMWwxLjYsMC4zdi01LjJcbiAgICAgICAgICAgICAgICAgICAgbDEuMiwwLjNjMC41LDAuMSwxLDAuMywxLjUsMC41djVsMS42LDAuM3YtNC42YzAuOSwwLjQsMS43LDEsMi40LDEuN0wyOC43LDI0eiIvPicpLGwuQ2xyU2hhcGVSZXNpemU9KDAsYS5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSw0YTEsMSwwLDAsMCwwLDJoOS41OWwtOS4yNSw5LjI1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzAsNy40MVYxN2ExLDEsMCwwLDAsMiwwVjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwxLDIsMHY5LjU5bDkuMjUtOS4yNWExLDEsMCwxLDEsMS40MSwxLjQxTDcuNDEsMzBIMTdhMSwxLDAsMCwxLDAsMkg0WiIvPicpLGwuQ2xyU2hhcGVPYmplY3RzPSgwLGEuY2xySWNvblNWRyko'@; put 'JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTYuMDgsMTQuOWExMC40MSwxMC40MSwwLDAsMSwxLjg3LS43MWwtNC0xMC43N2EyLDIsMCwwLDAtMy43NSwwTDIsMjUuMjZBMiwyLDAsMCwwLDMuOTIsMjhoNi45NGExMCwxMCwwLDAsMS0uNTIt'@; put 'MkgzLjkyTDEyLjA2LDQuMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDlIMjJhMiwyLDAsMCwwLTIsMnYyLjg1Yy4yMywwLC40NiwwLC42OSwwQTEwLjUxLDEwLjUxLDAsMCwxLDIyLDEzLjlWMTFIMzJW'@; put 'MjFIMzAuNjVhMTAuNDIsMTAuNDIsMCwwLDEsLjQ1LDJIMzJhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzIsOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAuNjksMTUuODFhOC41LDguNSwwLDEsMCw4'@; put 'LjUsOC41QTguNTEsOC41MSwwLDAsMCwyMC42OSwxNS44MVptMCwxNWE2LjUsNi41LDAsMSwxLDYuNS02LjVBNi41MSw2LjUxLDAsMCwxLDIwLjY5LDMwLjgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEwLjY1LDI0'@; put 'LjQ0YTkuNTEsOS41MSwwLDAsMSw3LjA2LTkuMTdMMTMsM2ExLDEsMCwwLDAtMS44NywwTDIuMDcsMjYuNTZBMSwxLDAsMCwwLDMsMjcuOTJoOC4zMkE5LjQ0LDkuNDQsMCwwLDEsMTAuNjUsMjQuNDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0yIiBkPSJNMzIsMTBIMjBhMSwxLDAsMCwwLTEsMXY0YTkuNDMsOS40MywwLDAsMSwxMC42Myw5SDMyYTEsMSwwLDAsMCwxLTFWMTFBMSwxLDAsMCwwLDMyLDEwWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBj'@; put 'eD0iMjAuMTUiIGN5PSIyNC40NCIgcj0iNy41Ii8+JyksbC5DbHJTaGFwZUJvb2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjEwIiB5PSI1LjIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxLjU1Ii8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDhIOS44NkExLjg5LDEuODksMCwwLDEsOCw2LDIsMiwwLDAsMSw5Ljg2LDRIMjlhMSwxLDAsMCwwLDAtMkg5Ljg2QTQsNCwwLDAsMCw2LDZhNC4xNCw0LjE0LDAsMCwwLDAsLjQ5LDEs'@; put 'MSwwLDAsMCwwLC4yNFYzMGE0LDQsMCwwLDAsMy44Niw0SDI5YTEsMSwwLDAsMCwxLTFWOS4yNXMwLS4wNiwwLS4wOSwwLS4wNiwwLS4wOUExLjA3LDEuMDcsMCwwLDAsMjksOFpNMjgsMzJIOS44NkEyLDIsMCwwLDEsOCwzMFY5LjU1QTMuNjMsMy42MywwLDAsMCw5Ljg2LDEwSDI4WiIvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMTAiIHk9IjUuMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEuNTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOSw4'@; put 'SDkuODZBMS44OSwxLjg5LDAsMCwxLDgsNiwyLDIsMCwwLDEsOS44Niw0SDI5YTEsMSwwLDEsMCwwLTJIOS44NkE0LDQsMCwwLDAsNiw2YTQuMTQsNC4xNCwwLDAsMCwwLC40OSwxLDEsMCwwLDAsMCwuMjRWMzBhNCw0LDAsMCwwLDMuODYsNEgyOWExLDEsMCwwLDAsMS0xVjkuMjVzMC0uMDYs'@; put 'MC0uMDksMC0uMDYsMC0uMDlBMS4wNywxLjA3LDAsMCwwLDI5LDhaIi8+JyksbC5DbHJTaGFwZUFzdGVyaXNrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZh'@; put 'My4xMSwzLjExLDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1LDIuOTFMNy4yLDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4x'@; put 'NEwxNSwyMy4yNFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4Wk0yOC4yNCwyNGExLDEsMCwwLDEtMS4zNy4zNkwxOSwxOS43NVYyOWExLDEsMCwwLDEtMiwwVjE5Ljc1TDkuMTMsMjQuMzZhMSwxLDAsMCwxLTEt'@; put 'MS43MkwxNiwxOGwtNy45LTQuNjRhMSwxLDAsMSwxLDEtMS43MkwxNywxNi4yNVY3YTEsMSwwLDAsMSwyLDB2OS4yNWw3Ljg3LTQuNjJhMSwxLDAsMCwxLDEsMS43MkwyMCwxOGw3LjksNC42NEExLDEsMCwwLDEsMjguMjQsMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZhMy4xMSwzLjExLDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1'@; put 'LDIuOTFMNy4yLDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4xNEwxNSwyMy4yNFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4WiIvPicpLGwuQ2xyU2hhcGVTY2lzc29y'@; put 'cz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSJcbiAgICAgICAgICAgIGQ9Ik0yNC4wNiwxOC4xOGw5LjYxLTguNzdhMSwxLDAsMCwwLS4wOS0xLjU1bC0yLjI0LTEuNmEzLjU3LDMuNTcsMCwwLDAtNC4yOC4xMkwxNS44'@; put 'OCwxNS4zbC0zLjI2LTIuNTJhNS40NSw1LjQ1LDAsMSwwLTEsMS43N2wyLjYyLDJMMTAsMjBhNS40OCw1LjQ4LDAsMSwwLDEuNTksMS4yOUwyOC4zLDcuOTRhMS41NywxLjU3LDAsMCwxLDEuODgtLjA1bDEuMjMuODhMMjEuMSwxOC4xOWwxMC4zMSw5LjQtMS4yMy44OGExLjU3LDEuNTcsMCww'@; put 'LDEtMS44OC0uMDVsLTkuODEtNy44NUwxNywyMS45M2wxMC4wNiw4YTMuNTcsMy41NywwLDAsMCw0LjI5LjEybDIuMjQtMS42YTEsMSwwLDAsMCwuMDktMS41NVpNNy40NSwxNC41NGEzLjQ2LDMuNDYsMCwxLDEsMy40NS0zLjQ2QTMuNDYsMy40NiwwLDAsMSw3LjQ1LDE0LjU0Wm0wLDEzLjcy'@; put 'QTMuNDYsMy40NiwwLDEsMSwxMC45LDI0LjgsMy40NiwzLjQ2LDAsMCwxLDcuNDUsMjguMjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMuODEsOC4xMywzMS42Myw2LjQ4YTEuOTIsMS45MiwwLDAsMC0yLjM2LDBM'@; put 'MTAsMjIuMDZhNS40Niw1LjQ2LDAsMSwwLDIsMS44MWwzLjktMy4xMkwyOS4yNywzMS41MmExLjkyLDEuOTIsMCwwLDAsMi4zNiwwbDIuMTgtMS42NEwyMC45NCwxOVpNNy40NSwyOS43NWEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODcsMi44NywwLDAsMSw3LjQ1LDI5Ljc1WiIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE0LjMsMTUuMjQsMTIsMTMuMzhhNS40Niw1LjQ2LDAsMSwwLTIsMS44MUwxMi4xNiwxN1ptLTYuODUtMmEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODYsMi44NiwwLDAsMSw3'@; put 'LjQ1LDEzLjIzWiIvPicpLGwuQ2xyU2hhcGVCdWc9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjIzLjU2IiBjeT0iMTcuNzQiIHI9IjEuOTUiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMi40MiIgY3k9IjI1Ljg4IiByPSIxLjU4Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTIuODYiIGN5PSIxNy43NCIgcj0iMS45NSIvPlxuICAg'@; put 'ICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgY3g9IjEzLjk5IiBjeT0iMjUuODgiIHI9IjEuNTgiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMzAuODMs'@; put 'MjBIMjlhMTkuMjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjY0QTE3LjY1LDE3LjY1LDAsMCwxLDI3LDIwLjcyQzI3LDI3LDIzLjgsMzEuMjMsMTguOCwzMS42MlYxNUgxNy4yVjMxLjYyQzEyLjIyLDMxLjIxLDksMjcsOSwyMC43MmEx'@; put 'Ny43NCwxNy43NCwwLDAsMSwxLjczLTcuMzRMNy43LDExLjcyYTEsMSwwLDAsMC0uOTUsMS43NmwxLjUuOEExOS4zOCwxOS4zOCwwLDAsMCw3LjA3LDIwSDUuMTdhMSwxLDAsMCwwLDAsMkg3LjFhMTQuNjIsMTQuNjIsMCwwLDAsMS42Niw2LjE3TDYuODcsMjkuNDlBMSwxLDAsMSwwLDgsMzEu'@; put 'MTJsMS44NC0xLjI5QTEwLjM4LDEwLjM4LDAsMCwwLDE4LDMzLjY2YTEwLjM4LDEwLjM4LDAsMCwwLDguMTQtMy44MUwyOCwzMS4xMmExLDEsMCwxLDAsMS4xNS0xLjY0bC0xLjg2LTEuM0ExNC42MSwxNC42MSwwLDAsMCwyOC45NCwyMmgxLjg5YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTExLjUxLDUuMzZhMS42NywxLjY3LDAsMCwwLDEuMDctLjUxQTMuMjEsMy4yMSwwLDAsMSwxMy43Niw2YTE2LjM4LDE2LjM4LDAsMCwwLTIuNjUsMi44OSwyLDIsMCwwLDAsMS42MSwzLjE5'@; put 'SDIzLjMyQTIsMiwwLDAsMCwyNS4xLDExYTIsMiwwLDAsMC0uMTctMi4xQTE2LjM0LDE2LjM0LDAsMCwwLDIyLjI1LDZhMy4yMSwzLjIxLDAsMCwxLDEuMTctMS4xMUExLjY4LDEuNjgsMCwxLDAsMjMsMy4yNyw0Ljc3LDQuNzcsMCwwLDAsMjEsNWE1LjgxLDUuODEsMCwwLDAtMi45My0xLDUu'@; put 'ODMsNS44MywwLDAsMC0zLDFBNC43Nyw0Ljc3LDAsMCwwLDEzLDMuMjdhMS42OCwxLjY4LDAsMSwwLTEuNDksMi4wOVpNMTgsNi4wN2MxLjQ1LDAsMy41MywxLjU3LDUuMzEsNGgwbC0xMC42LDBDMTQuNDksNy42MywxNi41Niw2LjA3LDE4LDYuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAuODMsMjBIMjlhMTkuMjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjI4SDEwLjc4TDcuNywxMS43MmExLDEsMCwwLDAtLjk1LDEuNzZsMS41LjhBMTkuMzgs'@; put 'MTkuMzgsMCwwLDAsNy4wNywyMEg1LjE3YTEsMSwwLDAsMCwwLDJINy4xYTE0LjYyLDE0LjYyLDAsMCwwLDEuNjYsNi4xN0w2Ljg3LDI5LjQ5QTEsMSwwLDEsMCw4LDMxLjEybDEuODQtMS4yOUExMC4yOSwxMC4yOSwwLDAsMCwxNywzMy42VjE1aDJWMzMuNmExMC4yOSwxMC4yOSwwLDAsMCw3'@; put 'LjE2LTMuNzVMMjgsMzEuMTJhMSwxLDAsMSwwLDEuMTUtMS42NGwtMS44Ni0xLjNBMTQuNjEsMTQuNjEsMCwwLDAsMjguOTQsMjJoMS44OWExLDEsMCwwLDAsMC0yWk0xMC45MSwxNy43NGExLjk1LDEuOTUsMCwxLDEsMS45NSwxLjk1QTEuOTUsMS45NSwwLDAsMSwxMC45MSwxNy43NFpNMTQs'@; put 'MjcuNDZhMS41OCwxLjU4LDAsMSwxLDEuNTgtMS41OEExLjU4LDEuNTgsMCwwLDEsMTQsMjcuNDZabTguNDMsMEExLjU4LDEuNTgsMCwxLDEsMjQsMjUuODgsMS41OCwxLjU4LDAsMCwxLDIyLjQyLDI3LjQ2Wm0xLjEzLTcuNzdhMS45NSwxLjk1LDAsMSwxLDEuOTUtMS45NUExLjk1LDEuOTUs'@; put 'MCwwLDEsMjMuNTYsMTkuNjlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTEuMjMsNS4yNmExLjY3LDEuNjcsMCwwLDAsLjU0LS4zMiw1LjksNS45LDAsMCwxLC44OS41OCw3LjQ0LDcuNDQsMCwwLDEsLjk1Ljk0QTE4'@; put 'LjQ4LDE4LjQ4LDAsMCwwLDEwLjc5LDkuN2MtLjQuNTcuMDksMS4yOC44NiwxLjI4SDI0LjQ0Yy43NywwLDEuMjYtLjcxLjg2LTEuMjhhMTguMzgsMTguMzgsMCwwLDAtMi44OC0zLjI4LDcuMjgsNy4yOCwwLDAsMSwuOTEtLjksNS45LDUuOSwwLDAsMSwuODktLjU4LDEuNjksMS42OSwwLDEs'@; put 'MC0uNTYtMS41MSw3LjQ5LDcuNDksMCwwLDAtMS4zMi44Myw5LjA2LDkuMDYsMCwwLDAtMS4xOSwxLjE4QTUuODUsNS44NSwwLDAsMCwxOCw0LjNhNS45MSw1LjkxLDAsMCwwLTMuMTcsMS4xOSw5LjIsOS4yLDAsMCwwLTEuMjItMS4yMSw3LjQ5LDcuNDksMCwwLDAtMS4zMi0uODMsMS42OCwx'@; put 'LjY4LDAsMSwwLTEuMTEsMS44M1oiLz4nKSxsLkNsclNoYXBlVGhlcm1vbWV0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSwyMy4xN1YxMS40NkgxN1YyMy4yYTMsMywwLDEsMCwyLDBaIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1YTEsMSwwLDAsMCwwLTJIMjMuOTJWMTFIMjZhMSwxLDAsMCwwLDAtMkgyMy45MlY4YTYsNiwwLDAsMC0xMiwwVjIwLjgxYTgsOCwwLDEsMCwxMi0uMlYxOUgyNmExLDEsMCww'@; put 'LDAsMC0ySDIzLjkyVjE1Wk0yNCwyNmE2LDYsMCwxLDEtMTAuMzYtNC4xMmwuMjctLjI5VjhhNCw0LDAsMCwxLDgsMFYyMS40NGwuMy4yOUE2LDYsMCwwLDEsMjQsMjZaIi8+JyksbC5DbHJTaGFwZVBlbmNpbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjg3LDguMzIsMjgsMi40MmEyLjA3LDIuMDcsMCwwLDAtMi45MiwwTDQuMjcsMjMuMmwtMS45LDguMmEyLjA2LDIuMDYsMCwwLDAsMiwyLjUsMi4xNCwyLjE0LDAsMCwwLC40MywwTDEzLjA5LDMyLDMzLjg3LDExLjI0QTIuMDcsMi4wNywwLDAs'@; put 'MCwzMy44Nyw4LjMyWk0xMi4wOSwzMC4yLDQuMzIsMzEuODNsMS43Ny03LjYyTDIxLjY2LDguN2w2LDZaTTI5LDEzLjI1bC02LTYsMy40OC0zLjQ2LDUuOSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik00LjIy'@; put 'LDIzLjJsLTEuOSw4LjJhMi4wNiwyLjA2LDAsMCwwLDIsMi41LDIuMTQsMi4xNCwwLDAsMCwuNDMsMEwxMywzMiwyOC44NCwxNi4yMiwyMCw3LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMzLjgyLDguMzJs'@; put 'LTUuOS01LjlhMi4wNywyLjA3LDAsMCwwLTIuOTIsMEwyMS43Miw1LjdsOC44Myw4LjgzLDMuMjgtMy4yOEEyLjA3LDIuMDcsMCwwLDAsMzMuODIsOC4zMloiLz4nKSxsLkNsclNoYXBlTm90ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsMzBINlY4SDE5LjIybDItMkg2QTIsMiww'@; put 'LDAsMCw0LDhWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1bC0yLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41Myw1Ljg0LDMwLjE2LDIuNDdhMS42MSwxLjYxLDAsMCwwLTIuMjgs'@; put 'MEwxNC4xNywxNi4yNmwtMS4xMSw0LjgxQTEuNjEsMS42MSwwLDAsMCwxNC42MywyMywxLjY5LDEuNjksMCwwLDAsMTUsMjNsNC44NS0xLjA3TDMzLjUzLDguMTJBMS42MSwxLjYxLDAsMCwwLDMzLjUzLDUuODRaTTE4LjgxLDIwLjA4bC0zLjY2LjgxTDE2LDE3LjI2LDI2LjMyLDYuODdsMi44'@; put 'MiwyLjgyWk0zMC4yNyw4LjU2LDI3LjQ1LDUuNzQsMjksNC4xNiwzMS44NCw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNi40LDI5LjMsMi43YTEuNzEsMS43MSwwLDAsMC0yLjM2LDBMMjMuNjUsNkg2'@; put 'QTIsMiwwLDAsMCw0LDhWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjExLjc2bDMtM0ExLjY3LDEuNjcsMCwwLDAsMzMsNi40Wk0xOC44MywyMC4xM2wtNC4xOS45MywxLTQuMTUsOS41NS05LjU3LDMuMjMsMy4yM1pNMjkuNSw5LjQzLDI2LjI3LDYuMmwxLjg1LTEuODUsMy4y'@; put 'MywzLjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlUmVmcmVzaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIyLjQsMTEuNjVhMS4wOSwxLjA5LDAs'@; put 'MCwwLDEuMDksMS4wOUgzNC40M1YxLjgxYTEuMDksMS4wOSwwLDEsMC0yLjE5LDBWOC45NWExNi40MSwxNi40MSwwLDEsMCwxLjQ3LDE1Ljg2LDEuMTIsMS4xMiwwLDAsMC0yLjA1LS45LDE0LjE4LDE0LjE4LDAsMSwxLTEuMDUtMTMuMzZIMjMuNUExLjA5LDEuMDksMCwwLDAsMjIuNCwxMS42'@; put 'NVoiLz4nKSxsLkNsclNoYXBlU3luYz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjg0LDE1LjcyYTEsMSwwLDEsMC0yLC4yOUExMy4xNSwxMy4xNSwwLDAsMSwzMSwxNy45NCwxMywxMywwLDAsMSw4Ljcs'@; put 'MjdoNS4zNmExLDEsMCwwLDAsMC0yaC05djlhMSwxLDAsMSwwLDIsMFYyOC4yQTE1LDE1LDAsMCwwLDMyLjg0LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuMDYsMUExLjA1LDEuMDUsMCww'@; put 'LDAsMjksMlY3LjgzQTE0Ljk0LDE0Ljk0LDAsMCwwLDMsMTcuOTRhMTUuMTYsMTUuMTYsMCwwLDAsLjIsMi40OCwxLDEsMCwwLDAsMSwuODRoLjE2YTEsMSwwLDAsMCwuODItMS4xNUExMy4yMywxMy4yMywwLDAsMSw1LDE3Ljk0YTEzLDEzLDAsMCwxLDEzLTEzQTEyLjg3LDEyLjg3LDAsMCwx'@; put 'LDI3LjQ0LDlIMjIuMDZhMSwxLDAsMCwwLDAsMkgzMVYyQTEsMSwwLDAsMCwzMC4wNiwxWiIvPicpLGwuQ2xyU2hhcGVWaWV3TGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMiIgeT0iOCIgd2lkdGg9IjIi'@; put 'IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNNywxMEgzMWExLDEsMCwwLDAsMC0ySDdhMSwxLDAsMCwwLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMxLDE0SDdhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCww'@; put 'LDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC02IiBkPSJNMzEsMjBIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjIiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIGQ9Ik0zMSwyNkg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz4nKSxsLkNsclNoYXBlVmlld0NhcmRzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTdIMjFhMiwyLDAsMCwxLTItMlY4YTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwxN1pNMjEsOHY3SDMyVjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz4nKSxsLkNsclNoYXBlTGlnaHRidWxiPSgwLGEuY2xySWNvblNWRykoJzxwYXRo'@; put 'IGQ9Ik0xOCwyLjI1YTExLDExLDAsMCwwLTExLDExLDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDJBMTguMTcsMTguMTcsMCwwLDAsMTMsMjIuNDRhMTguNDYsMTgu'@; put 'NDYsMCwwLDAtMi4yMi0zLjkyLDE1Ljc5LDE1Ljc5LDAsMCwxLTEtMS41NEE4LjY0LDguNjQsMCwwLDEsOSwxMy4yM2E5LDksMCwwLDEsMTguMDcsMEE4LjY0LDguNjQsMCwwLDEsMjYuMjEsMTdhMTUuNzksMTUuNzksMCwwLDEtMSwxLjU0QTE4LjQ2LDE4LjQ2LDAsMCwwLDIzLDIyLjQ0YTE4'@; put 'LjE3LDE4LjE3LDAsMCwwLS43MSw0LjcxaDJhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjY4LDEwLjY4LDAsMCwwLDEtNC42M0ExMSwxMSwwLDAsMCwxOCwyLjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC42MywxNS41MWEuOC44LDAsMCwwLTEuMTMsMGwtMywzLDIuODYsMy4xM3Y1LjU0SDE5VjIxbC0yLjI0LTIuNDUsMS44OS0xLjg5QS44LjgsMCwwLDAsMTguNjMsMTUuNTFaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zMiwxMC44OWwtMi43MywyLjczYS44LjgsMCww'@; put 'LDAsMS4xMywxLjEzTDE4LjQ1LDEyYS44LjgsMCwxLDAtMS4xMy0xLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyNy4xNVYyMWwtMi4yNC0yLjQ1LDEuODktMS44OWEuOC44LDAsMCwwLTEuMTMtMS4x'@; put 'M2wtMywzLDIuODYsMy4xM3Y1LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNzIsMTQuNzUsMTguNDUsMTJhLjguOCwwLDEsMC0xLjEzLTEuMTNsLTIuNzMsMi43M2EuOC44LDAsMCwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LDEyLjg4YzAsLjEyLDAsLjIzLDAsLjM1QTguNjQsOC42NCwwLDAsMSwyNi4yMSwxN2ExNS43OSwxNS43OSwwLDAsMS0xLDEuNTRBMTguNDYsMTguNDYsMCwwLDAsMjMsMjIuNDRhMTguMTcsMTgu'@; put 'MTcsMCwwLDAtLjcxLDQuNzFoMmExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNDUsNy40NSwwLDAsMSwyNywxMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjcxLDI3LjE1QTE4LjE3LDE4LjE3LDAsMCwwLDEzLDIyLjQ0YTE4LjQ2LDE4LjQ2LDAsMCwwLTIuMjItMy45MiwxNS43OSwxNS43OSwwLDAsMS0xLTEuNTRBOC42NCw4LjY0LDAs'@; put 'MCwxLDksMTMuMjMsOSw5LDAsMCwxLDIyLjUzLDUuNDdhNy40NSw3LjQ1LDAsMCwxLC40My0yLDExLDExLDAsMCwwLTE2LDkuOCwxMC42OCwxMC42OCwwLDAsMCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwu'@; put 'NTksNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRn'@; put 'ZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuMjVhMTEsMTEsMCwwLDAtMTEsMTEsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYz'@; put 'LDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42MWwtMi44Ni0zLjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwu'@; put 'NTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjgsMTAuNjgsMCwwLDAsMS00LjYzQTExLDExLDAsMCwwLDE4LDIuMjVaTTE4LjQ1LDEybC0yLjczLDIuNzNhLjguOCwwLDEsMS0xLjEzLTEuMTNsMi43My0yLjczQS44LjgsMCwxLDEsMTguNDUs'@; put 'MTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTIyLjUsNkE3LjQ3LDcuNDcsMCwwLDEsMjMsMy40NGExMSwxMSwwLDAsMC0xNiw5LjgsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42'@; put 'MWwtMi44Ni0zLjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNSw3'@; put 'LjUsMCwwLDEsMjIuNSw2Wm0tNCw2LTIuNzMsMi43M2EuOC44LDAsMSwxLTEuMTMtMS4xM2wyLjczLTIuNzNBLjguOCwwLDEsMSwxOC40NSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4'@; put 'PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksbC5DbHJTaGFwZURvd25sb2FkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0x'@; put 'LjQxTDE5LDI1LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzEsMzFINWEx'@; put 'LDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwy'@; put 'NS42NVY1YTEsMSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmExLDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi'@; put 'IGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSwwLTEu'@; put 'NDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEu'@; put 'MjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGwuQ2xyU2hhcGVVcGxvYWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzMUg1YTEs'@; put 'MSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEu'@; put 'NDEtMS40MUwxOCwzLDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEs'@; put 'MSwxaDI2YzAuNiwwLDEtMC40LDEtMVMzMS42LDMxLDMxLDMxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNOC44LDE1TDE3LDYuOHYyMC42YzAsMC42LDAuNCwxLDEsMXMx'@; put 'LTAuNCwxLTFWNi44TDIwLjEsOGwxLTEuOEwxOCwzTDcuNCwxMy42QzcsMTQsNi45LDE0LjYsNy4yLDE1czEsMC41LDEuNCwwLjFDOC43LDE1LjEsOC44LDE1LjEsOC44LDE1eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0w'@; put 'LjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEs'@; put 'MCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEuNDEt'@; put 'MS40MUwxOCwzLDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxs'@; put 'LkNsclNoYXBlTG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjA5LDIwLjU5QTIuNDEsMi40MSwwLDAsMCwxNywyNS4xNFYyOGgyVjI1LjIzYTIuNDEsMi40MSwwLDAsMC0uOTEtNC42NFoiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1VjEwLjcyYTguMiw4LjIsMCwwLDAtOC04LjM2LDguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDdWMzJhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjE1Wk0x'@; put 'MiwxMC43MmE2LjIsNi4yLDAsMCwxLDYtNi4zNiw2LjIsNi4yLDAsMCwxLDYsNi4zNlYxNUgxMlpNOSwzMlYxN0gyN1YzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMTVWMTAuNzJhOC4yLDguMiwwLDAs'@; put 'MC04LTguMzYsOC4yLDguMiwwLDAsMC04LDguMzZWMTVIN1YzMmEyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMTVaTTE5LDI1LjIzVjI4SDE3VjI1LjE0YTIuNCwyLjQsMCwxLDEsMiwuMDlaTTI0LDE1SDEyVjEwLjcyYTYuMiw2LjIsMCwwLDEsNi02LjM2LDYuMiw2LjIsMCwwLDEs'@; put 'Niw2LjM2WiIvPicpLGwuQ2xyU2hhcGVVbmxvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMiwyNS4xNFYyOGgyVjI1LjIzYTIuNDIsMi40MiwwLDEsMC0yLS4wOVoiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYzMmEyLDIsMCwwLDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2'@; put 'LjM2djYuODNhMSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTIyLDE3VjMySDRWMTdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYz'@; put 'MmEyLDIsMCwwLDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2LjM2djYuODNhMSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTE0LDI1LjIzVjI4SDEyVjI1LjE0YTIuNCwyLjQsMCwxLDEs'@; put 'MiwuMDlaIi8+JyksbC5DbHJTaGFwZVVzZXJzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuOSwxNy4zYzIuNywwLDQuOC0yLjIsNC44LTQuOWMwLTIuNy0yLjItNC44LTQuOS00LjhjLTIuNywwLTQuOCwy'@; put 'LjItNC44LDQuOEMxMywxNS4xLDE1LjIsMTcuMywxNy45LDE3LjN6IE0xNy44LDkuNkMxNy45LDkuNiwxNy45LDkuNiwxNy44LDkuNmMxLjYsMCwyLjksMS4zLDIuOSwyLjlzLTEuMywyLjgtMi45LDIuOGMtMS42LDAtMi44LTEuMy0yLjgtMi44QzE1LDEwLjksMTYuMyw5LjYsMTcuOCw5LjZ6'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi43LDE2LjdjLTEuOS0xLjctNC40LTIuNi03LTIuNWMtMC4zLDAtMC41LDAtMC44LDBjLTAuMiwwLjgtMC41LDEuNS0wLjksMi4xYzAuNi0wLjEsMS4xLTAu'@; put 'MSwxLjctMC4xYzEuOS0wLjEsMy44LDAuNSw1LjMsMS42VjI1aDJ2LThMMzIuNywxNi43eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjMuNCw3LjhjMC41LTEuMiwxLjktMS44LDMuMi0xLjNjMS4yLDAu'@; put 'NSwxLjgsMS45LDEuMywzLjJjLTAuNCwwLjktMS4zLDEuNS0yLjIsMS41Yy0wLjIsMC0wLjUsMC0wLjctMC4xYzAuMSwwLjUsMC4xLDEsMC4xLDEuNGMwLDAuMiwwLDAuNCwwLDAuNmMwLjIsMCwwLjQsMC4xLDAuNiwwLjFjMi41LDAsNC41LTIsNC41LTQuNGMwLTIuNS0yLTQuNS00LjQtNC41'@; put 'Yy0xLjYsMC0zLDAuOC0zLjgsMi4yQzIyLjUsNi44LDIzLDcuMiwyMy40LDcuOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTEyLDE2LjRjLTAuNC0wLjYtMC43LTEuMy0wLjktMi4xYy0wLjMsMC0wLjUs'@; put 'MC0wLjgsMGMtMi42LTAuMS01LjEsMC44LTcsMi40TDMsMTd2OGgydi03LjJjMS42LTEuMSwzLjQtMS43LDUuMy0xLjZDMTAuOSwxNi4yLDExLjUsMTYuMywxMiwxNi40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01'@; put 'IiBkPSJNMTAuMywxMy4xYzAuMiwwLDAuNCwwLDAuNi0wLjFjMC0wLjIsMC0wLjQsMC0wLjZjMC0wLjUsMC0xLDAuMS0xLjRjLTAuMiwwLjEtMC41LDAuMS0wLjcsMC4xYy0xLjMsMC0yLjQtMS4xLTIuNC0yLjRjMC0xLjMsMS4xLTIuNCwyLjQtMi40YzEsMCwxLjksMC42LDIuMywxLjVjMC40'@; put 'LTAuNSwxLTEsMS41LTEuNGMtMS4zLTIuMS00LTIuOC02LjEtMS41Yy0yLjEsMS4zLTIuOCw0LTEuNSw2LjFDNy4zLDEyLjMsOC43LDEzLjEsMTAuMywxMy4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJN'@; put 'MjYuMSwyMi43bC0wLjItMC4zYy0yLTIuMi00LjgtMy41LTcuOC0zLjRjLTMtMC4xLTUuOSwxLjItNy45LDMuNEwxMCwyMi43djcuNmMwLDAuOSwwLjcsMS43LDEuNywxLjdjMCwwLDAsMCwwLDBoMTIuOGMwLjksMCwxLjctMC44LDEuNy0xLjdjMCwwLDAsMCwwLDBWMjIuN3ogTTI0LjEsMzBI'@; put 'MTJ2LTYuNmMxLjYtMS42LDMuOC0yLjQsNi4xLTIuNGMyLjItMC4xLDQuNCwwLjgsNiwyLjRWMzB6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMS4wOSwxNC41N2MuMSww'@; put 'LC4yLDAsLjMxLDBhNi40Myw2LjQzLDAsMCwxLC4wOS0yLDIuMDksMi4wOSwwLDEsMSwxLjQ3LTMsNi41OCw2LjU4LDAsMCwxLDEuNTUtMS4zMSw0LjA5LDQuMDksMCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTMsMTguMTRhNi41Myw2LjUzLDAsMCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRa'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zMS4zNSwxOC40MkE4LjU5LDguNTksMCwwLDAsMjUsMTUuOTFjLS4zMiwwLS42LDAtLjkuMDZhNi41Myw2LjUzLDAsMCwxLTEu'@; put 'MzUsMi4yNUE3LjksNy45LDAsMCwxLDI1LDE3LjkxYTYuOTQsNi45NCwwLDAsMSw0LjY0LDEuNTh2Ni4yN2gyVjE4LjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0xOC4x'@; put 'LDE5LjczQTkuNjksOS42OSwwLDAsMCwxMSwyMi40N2wtLjI1LjI4djcuMzNhMS41NywxLjU3LDAsMCwwLDEuNjEsMS41NEgyMy44M2ExLjU3LDEuNTcsMCwwLDAsMS42MS0xLjU0VjIyLjczbC0uMjUtLjI4QTkuNTgsOS41OCwwLDAsMCwxOC4xLDE5LjczWm01LjMzLDkuODhIMTIuNzNWMjMu'@; put 'NTVhOC4wOCw4LjA4LDAsMCwxLDUuMzctMS44Miw4LDgsMCwwLDEsNS4zMywxLjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yMC4yOCwxNC4yN2EyLjQ2LDIuNDYsMCwx'@; put 'LDEtMi40Mi0yLjg5LDIuNDQsMi40NCwwLDAsMSwxLC4yNCwzLjY3LDMuNjcsMCwwLDEsLjQzLTIsNC40MSw0LjQxLDAsMCwwLTEuNDgtLjI3QTQuNDcsNC40NywwLDEsMCwyMi4xNCwxNSwzLjY5LDMuNjksMCwwLDEsMjAuMjgsMTQuMjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNy4xOC44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDM0YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4zOS44QTEuMjgsMS4yOCww'@; put 'LDAsMCwyNy4xOC44WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjA5LDE0LjU3Yy4xLDAsLjIsMCwuMzEsMGE2LjQzLDYuNDMsMCwwLDEsLjA5LTIsMi4wOSwyLjA5LDAs'@; put 'MSwxLDEuNDctMyw2LjU4LDYuNTgsMCwwLDEsMS41NS0xLjMxLDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTMsMTguMTRhNi41'@; put 'Myw2LjUzLDAsMCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzEuMzUsMTguNDJBOC41OSw4LjU5LDAsMCwwLDI1LDE1LjkxYy0uMzIsMC0uNiwwLS45LjA2YTYuNTMsNi41MywwLDAsMS0xLjM1LDIuMjVBNy45LDcuOSwwLDAsMSwyNSwxNy45MWE2Ljk0LDYuOTQsMCwwLDEsNC42'@; put 'NCwxLjU4djYuMjdoMlYxOC43WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTE3Ljg2LDE4LjNhNC40Nyw0LjQ3LDAsMSwwLTQuNDctNC40N0E0LjQ3LDQuNDcsMCwwLDAsMTcu'@; put 'ODYsMTguM1ptMC02LjkzYTIuNDcsMi40NywwLDEsMS0yLjQ3LDIuNDdBMi40NywyLjQ3LDAsMCwxLDE3Ljg2LDExLjM3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjEs'@; put 'MTkuNzNBOS42OSw5LjY5LDAsMCwwLDExLDIyLjQ3bC0uMjUuMjh2Ny4zM2ExLjU3LDEuNTcsMCwwLDAsMS42MSwxLjU0SDIzLjgzYTEuNTcsMS41NywwLDAsMCwxLjYxLTEuNTRWMjIuNzNsLS4yNS0uMjhBOS41OCw5LjU4LDAsMCwwLDE4LjEsMTkuNzNabTUuMzMsOS44OEgxMi43M1YyMy41'@; put 'NWE4LjA4LDguMDgsMCwwLDEsNS4zNy0xLjgyLDgsOCwwLDAsMSw1LjMzLDEuOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0yNi4zNywxMmEyLDIsMCwwLDEtMi4wOS40Miw2'@; put 'LjUzLDYuNTMsMCwwLDEsLjE1LDEuMzgsNi41OSw2LjU5LDAsMCwxLDAsLjY4LDQsNCwwLDAsMCwuNTcuMDYsNC4wOCw0LjA4LDAsMCwwLDMuMy0xLjdBNy40NSw3LjQ1LDAsMCwxLDI2LjM3LDEyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgZD0iTTIyLjk1LDYuOTNhNC4xNiw0LjE2LDAsMCwwLTEuNDcsMS40NEE2LjU5LDYuNTksMCwwLDEsMjMsOS43N2EyLjEsMi4xLDAsMCwxLC41OS0uODNBNy40NCw3LjQ0LDAsMCwxLDIyLjk1LDYuOTNaIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMC4zMyIgY3k9IjUuNjciIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xIiBkPSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4'@; put 'LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMu'@; put 'NDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMjQuNDMsMTMuNDRhNi41NCw2LjU0LDAsMCwxLDAsLjY5LDQuMDksNC4wOSwwLDAsMCwuNTguMDVoLjE5QTQuMDksNC4wOSwwLDEsMCwyMS40Nyw4LDYu'@; put 'NTMsNi41MywwLDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIGN4PSIxNy44NyIgY3k9IjEzLjQ1IiByPSI0LjQ3Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEs'@; put 'MjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wu'@; put 'NTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3'@; put 'LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s'@; put 'aWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguMTEsMjAuM0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wyNS4yLDIzQTku'@; put 'NTgsOS41OCwwLDAsMCwxOC4xMSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0xNy44NywxNy45MmE0LjQ2LDQuNDYsMCwwLDAsNC0yLjU0QTMuNjcsMy42NywwLDAsMSwx'@; put 'OSw5Ljg5bC4zNS0uNjFBNC40Miw0LjQyLDAsMCwwLDE3Ljg3LDlhNC40Nyw0LjQ3LDAsMSwwLDAsOC45M1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYu'@; put 'ODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2LjU4LDYuNTgsMCwwLDEsMTIsMTYuMTRa'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwx'@; put 'LTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTExLjEsMTQuMTljLjExLDAsLjIs'@; put 'MCwuMzEsMGE2LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgY3g9IjE3Ljg3IiBjeT0iMTMuNDUi'@; put 'IHI9IjQuNDciLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRI'@; put 'MjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWJhZGdlZCIgZD0iTTI0LjQzLDEz'@; put 'LjQ0YTYuNTQsNi41NCwwLDAsMSwwLC42OSw0LjA5LDQuMDksMCwwLDAsLjU4LjA1aC4xOWE0LjA1LDQuMDUsMCwwLDAsMi41Mi0xLDcuNSw3LjUsMCwwLDEtNS4xNC02LjMyQTQuMTMsNC4xMywwLDAsMCwyMS40Nyw4LDYuNTMsNi41MywwLDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksbC5DbHJTaGFwZVBvcE91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LDMzSDVhMiwyLDAsMCwxLTItMlY5QTIsMiwwLDAsMSw1LDdIMTVWOUg1VjMxSDI3VjIxaDJWMzFBMiwyLDAsMCwxLDI3LDMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiBkPSJNMTgsM2ExLDEsMCwwLDAsMCwySDI5LjU5TDE1Ljc0LDE4Ljg1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzEsNi40MVYxOGExLDEsMCwwLDAsMiwwVjNaIi8+JyksbC5DbHJTaGFwZUZpbHRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDRIM0ExLDEsMCwwLDAsMiw1VjYuNjdhMS43OSwxLjc5LDAsMCwwLC41MywxLjI3TDE0LDE5LjU4djEwLjJsMiwuNzZWMTlhMSwxLDAsMCwwLS4yOS0uNzFMNCw2LjU5VjZIMzJ2LjYxTDIwLjMzLDE4LjI5QTEsMSwwLDAsMCwyMCwxOWww'@; put 'LDEzLjIxTDIyLDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEsMCwwLDAsMzQsNi43VjVBMSwxLDAsMCwwLDMzLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIyLDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEs'@; put 'MCwwLDAsMzQsNi43VjVhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDVWNi42N2ExLjc5LDEuNzksMCwwLDAsLjUzLDEuMjdMMTQsMTkuNTh2MTAuMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzMuNDgsNGgtMzFBLjUyLjUyLDAsMCwwLDIsNC41MlY2LjI0YTEuMzMsMS4z'@; put 'MywwLDAsMCwuMzkuOTVsMTIsMTJ2MTBsNy4yNSwzLjYxVjE5LjE3bDEyLTEyQTEuMzUsMS4zNSwwLDAsMCwzNCw2LjI2VjQuNTJBLjUyLjUyLDAsMCwwLDMzLjQ4LDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVQaW49KDAsYS5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywxNi41OWExLDEsMCwwLDEtLjcxLS4yOUwxOS43LDMuNzFhMSwxLDAsMCwxLDEuNDEtMS40MUwzMy43MSwxNC44OUExLDEsMCwwLDEsMzMsMTYuNTlaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOC41MiwxNS41NmwtMS40MS0xLjQxLTcuMiw3LjJhMSwxLDAsMCwwLS4yNSwxLDksOSwwLDAsMS0xLjUzLDguMDlMNS41OCwxNy44N2E5LDksMCwwLDEsOC4wOS0xLjUzLDEsMSwwLDAs'@; put 'MCwxLS4yNWw3LjItNy4yTDIwLjQ0LDcuNDhsLTYuNzksNi43OUExMC45NCwxMC45NCwwLDAsMCwzLjQxLDE3LjExYTEsMSwwLDAsMCwwLDEuNDJsNi4zMyw2LjMzTDIuMjksMzIuMjlhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGEx'@; put 'LDEsMCwwLDAsLjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLDE2LjcxYTEsMSwwLDAsMS0uNzEtLjI5TDE5LjcsMy44MmExLDEsMCwwLDEsMS40MS0xLjQx'@; put 'TDMzLjcxLDE1QTEsMSwwLDAsMSwzMywxNi43MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjAuNDQsNy41OWwtNi43OSw2Ljc5QTEwLjk0LDEwLjk0LDAsMCwwLDMuNDEsMTcuMjJhMSwxLDAsMCwwLDAsMS40'@; put 'Mkw5LjczLDI1LDIuMjksMzIuNDFhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGExLDEsMCwwLDAsLjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRsNi43OS02Ljc5WiIvPicpLGwuQ2xyU2hhcGVGaWxlPSgwLGEuY2xySWNvblNW'@; put 'RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWm0tLjMs'@; put 'Mi40OSw2LDUuOWgtNlpNOCwzMFY2SDIwdjhoOFYzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yMS41OSwxMi4zOVY2LjQ5bDEuMDcsMWE3LjMxLDcuMzEsMCwwLDEsMC0y'@; put 'LjgyTDIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMy41YTcuNDUsNy40NSwwLDAsMS0zLjkxLTEuMTFaTTI4LDMwSDhWNkgyMHY4aDhaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTI4LDE1LjRWMzBIOFY2SDIwVjguMjVsMi4yNS0zLjlMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjE1LjRa'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgs'@; put 'MCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlB'@; put 'MS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWk0yMSwxM1Y1Ljg0TDI4LjMsMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9'@; put 'Ik0yNy4yNSwxM0gyMVY1Ljg0bDEuNjQsMS42YTcuMjUsNy4yNSwwLDAsMSwwLTIuNzRMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjEzLjVBNy40Nyw3LjQ3LDAs'@; put 'MCwxLDI3LjI1LDEzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMiwxNS40Yy0yLDAtMy43LTEuNi0zLjctMy42YzAtMC43LDAuMi0xLjMsMC41LTEuOWwzLjItNS41TDIxLjksNEg3LjhDNi44LDQsNiw0LjksNiw1Ljl2MjQuMmMwLDEsMC44LDEuOSwxLjgsMS45'@; put 'aDIwLjNjMSwwLDEuOC0wLjksMS44LTEuOVYxNS40SDIyLjJ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4y'@; put 'LDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz4nKSxsLkNsclNoYXBlUGx1cz0o'@; put 'MCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDE3SDE5VjZhMSwxLDAsMSwwLTIsMFYxN0g2YTEsMSwwLDAsMC0xLDEsLjkxLjkxLDAsMCwwLDEsLjk0SDE3VjMwYTEsMSwwLDEsMCwyLDBWMTlIMzBhMSwxLDAs'@; put 'MCwwLDEtMUExLDEsMCwwLDAsMzAsMTdaIi8+JyksbC5DbHJTaGFwZU1pbnVzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNiwxN0gxMGExLDEsMCwwLDAsMCwySDI2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxs'@; put 'LkNsclNoYXBlTWludXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDE3SDEyYTEsMSwwLDAsMCwwLDJIMjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs'@; put 'MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNiwxNy41SDEyYTEuNSwxLjUsMCwwLDEsMC0zSDI0YTEuNSwxLjUsMCwwLDEsMCwzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlUGx1c0NpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBk'@; put 'PSJNMjYuMTcsMTdIMTlWOS44M2ExLDEsMCwwLDAtMiwwVjE3SDkuODNhMSwxLDAsMCwwLDAsMkgxN3Y3LjE3YTEsMSwwLDAsMCwyLDBWMTloNy4xN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDE4QTE2'@; put 'LDE2LDAsMSwxLDE4LDIsMTYsMTYsMCwwLDEsMzQsMThabS04LjQxLTEuNUgxOS41VjEwLjQxYTEuNSwxLjUsMCwwLDAtMywwVjE2LjVIMTAuNDFhMS41LDEuNSwwLDAsMCwwLDNIMTYuNXY2LjA5YTEuNSwxLjUsMCwwLDAsMywwVjE5LjVoNi4wOWExLjUsMS41LDAsMCwwLDAtM1oiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxsLkNsclNoYXBlQmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk00'@; put 'LDE4QTEzLjkzLDEzLjkzLDAsMCwxLDcuNDMsOC44NUwyNy4xNSwyOC41N0ExNCwxNCwwLDAsMSw0LDE4Wm0yNC41Nyw5LjE1TDguODUsNy40M0ExNCwxNCwwLDAsMSwyOC41NywyNy4xNVoiLz4nKSxsLkNsclNoYXBlVGltZXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS42MSwxOGw0Ljg2LTQuODZhMSwxLDAsMCwwLTEuNDEtMS40MUwxOC4yLDE2LjU0bC00Ljg5LTQuODlhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi43OCwxOCwxMiwyMi43MmExLDEsMCwxLDAsMS40MSwxLjQxbDQuNzct'@; put 'NC43Nyw0Ljc0LDQuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAs'@; put 'MSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOCwyMi4xYTEuNCwxLjQsMCwwLDEtMiwybC02'@; put 'LTZMMTIsMjYuMTJhMS40LDEuNCwwLDEsMS0yLTJMMTYsMTguMDgsOS44MywxMS44NmExLjQsMS40LDAsMSwxLDItMkwxOCwxNi4xbDYuMTctNi4xN2ExLjQsMS40LDAsMSwxLDIsMkwyMCwxOC4wOFoiLz4nKSxsLkNsclNoYXBlVHJhc2g9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzNEg4Ljg2QTIuOTMsMi45MywwLDAsMSw2LDMxVjExLjIzSDhWMzFhLjkzLjkzLDAsMCwwLC44NiwxSDI3LjE0QS45My45MywwLDAsMCwyOCwzMVYxMS4yM2gyVjMxQTIuOTMsMi45MywwLDAsMSwyNy4xNCwz'@; put 'NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjc4LDlINUExLDEsMCwwLDEsNSw3SDMwLjc4YTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjIxIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMTUiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIxNSIv'@; put 'PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMjMsNS44NkgyMS4xVjRIMTQuOVY1Ljg2SDEzVjRhMiwyLDAsMCwxLDEuOS0yaDYuMkEyLDIsMCwwLDEsMjMsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNiw5VjMxYTIuOTMsMi45MywwLDAsMCwyLjg2LDNIMjcuMDlBMi45MywyLjkzLDAsMCwwLDMwLDMxVjlabTksMjBIMTNWMTRoMlptOCwwSDIxVjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjczLDVIMjNWNEEyLDIsMCwwLDAsMjEsMmgtNi4yQTIsMiwwLDAsMCwxMyw0VjVINUExLDEsMCwxLDAsNSw3SDMwLjczYTEsMSwwLDAsMCwwLTJaIi8+JyksbC5DbHJTaGFwZVRhZz0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xl'@; put 'IGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEy'@; put 'LDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNMjAuNjIsMzAuNTIsNiwxNS45MVY2aDkuOTJsMTQuNiwxNC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjJsLTMuOC0zLjhIMjUuMzFsNS4yMiw1'@; put 'LjIyLTkuOSw5LjlMNiwxNS45MVY2aDkuOTJsMy40MSwzLjQxLDEtMS43OC0zLTNBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4y'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFM'@; put 'MjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQz'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwx'@; put 'LjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTIwLjYyLDMwLjUyLDYsMTUuOTFWNmg5LjkybDE0LjYsMTQuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAg'@; put 'ICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCww'@; put 'LDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDku'@; put 'NjUsMTEuMzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNDYsMTUuNzNIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDEwLjIybDEuNDMtMi40N0wxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiww'@; put 'LDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45YTIsMiwwLDAsMCwwLTIuODNaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjQ3bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjQ3QTEuMjgs'@; put 'MS4yOCwwLDAsMCwyNi44NSwxLjQ3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIs'@; put 'MCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNi4zMyIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4n'@; put 'KSxsLkNsclNoYXBlVGFncz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMs'@; put 'MCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFB'@; put 'MS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk0xNy4yNiwyOS42OSwzLjY5LDE2LjE1VjdoOS4xTDI2LjM3LDIwLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4z'@; put 'MyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5'@; put 'LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNMTcuMjYsMjkuNjksMy42OSwxNi4xNVY3aDkuMUwyNi4zNywyMC40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5'@; put 'LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzQTMuNjUsMy42NSwwLDAsMSwyMSwxNS4xOWw1LjMzLDUuMjktOS4xMSw5LjIxTDMuNjksMTYuMTVWN2g5LjFsNiw1Ljk0YTMuNjgsMy42OCwwLDAsMSwuMS0yLjY5TDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIu'@; put 'ODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl'@; put 'cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjgzLDYuOCwxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDE5Ljc5LDguNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMjkuNDMsMTUuNEgyNi42NWw1LjEsNUwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEu'@; put 'MjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEs'@; put 'NUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3'@; put 'LDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTku'@; put 'MTdaTTYuNjcsMTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwxLjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAs'@; put 'MCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43'@; put 'MywwLDEsMSw4LjQsMTAsMS43MywxLjczLDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4'@; put 'LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8'@; put 'Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuODMsNi44LDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVI'@; put 'MTYuMTJMMTkuNzksOC42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDI5LjQzLDE1LjRIMjYuNjVsNS4xLDVMMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIu'@; put 'NzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzYTMuNjcsMy42NywwLDAsMS0z'@; put 'LjM2LTUuMTVMMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwy'@; put 'Ny43OCwxOS4xN1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu'@; put 'MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBj'@; put 'bHItaS1hbGVydCIvPicpLGwuQ2xyU2hhcGVIaXN0b3J5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw5LjgzYTEsMSwwLDAsMC0xLDF2OC43Mmw1LjksNEExLDEsMCwwLDAsMjQsMjEuODhsLTUtMy4zOVYxMC44M0ExLDEsMCwwLDAsMTgsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNi4wOSwxNi4wOSwwLDAsMCw0LDEwLjI2VjUuMmExLDEsMCwwLDAtMiwwVjE0aDguOGExLDEsMCwwLDAsMC0ySDUuMzVBMTQsMTQsMCwxLDEsOC41OCwyOC4zNWExLDEsMCwwLDAtMS4zNSwx'@; put 'LjQ4QTE2LDE2LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPicpLGwuQ2xyU2hhcGVDbG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0'@; put 'LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxOC40VjEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2WiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE3Ljk0QTkuOTQsOS45NCwwLDAsMSwyMy40MSw5LjU5bC44NS0xLjM2YTExLjU1LDExLjU1LDAsMSwwLTguNTMsMjFMMTYsMjcuN0ExMCwxMCwwLDAsMSw4LDE3Ljk0'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NmwtNS0zLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQ0LDcuNDQsMCwwLDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45'@; put 'Myw5LjkzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNi4zOGExMS41NiwxMS41NiwwLDAsMC0yLjI3LDIyLjg5TDE2LDI3LjdhMTAsMTAsMCwxLDEsNy4zOS0xOC4xaDBhNy40'@; put 'NSw3LjQ1LDAsMCwxLS43OC0yLjIzQTExLjQ1LDExLjQ1LDAsMCwwLDE4LDYuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZsLTUtMy4zOVoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMTUuMzloLTJBMTQsMTQsMCwxLDEsMjIuMDksNC42MWwxLTEuNzZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDhhOS44MSw5LjgxLDAsMCwxLDIsLjIzbC44NS0xLjQ2YTExLjU1LDExLjU1LDAsMSwwLTUuMTMsMjIuNTJMMTYsMjcuN0ExMCwxMCwwLDAs'@; put 'MSwxOCw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu'@; put 'NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwx'@; put 'OCwxNiwxNiwwLDAsMCwxOCwyWm02LjIsMjEuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwyLDBWMTguNGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaTTIzLjg1LDguMjNhMTEuMzksMTEuMzksMCwxLDAtOC41NCwyMC44M0wxNSwzMC42M2ExMywxMyww'@; put 'LDEsMSw5LjctMjMuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFBNy40OCw3LjQ4LDAsMCwxLDIyLjY4LDcuNjMsMTEuMjQsMTEuMjQsMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIu'@; put 'NjksMjIuNDdMMTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44MSwxMi44MSwwLDAsMSw0LjUxLjgyLDcuNDYsNy40NiwwLDAsMSwuNjgtMi45NCwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaTTI0LjIsMjMuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAs'@; put 'MSwyLDBWMTguNGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc3LDE1LjM5SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmMwLS4wOS0uMDktLjE4LS4xMy0uMjdWMTguNGw1LDMuMzlhMSwxLDAsMCwxLTEuMTEsMS42Nmwt'@; put 'NS45LTRWMTAuNzVhMSwxLDAsMCwxLDEuOTEtLjQxQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDIwLjc0LDdBMTEuMTksMTEuMTksMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIuNjksMjIuNDdMMTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44LDEyLjgsMCwwLDEsMy41Ny41'@; put 'MWwxLjUzLTIuNjZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEu'@; put 'MjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+JyksbC5D'@; put 'bHJTaGFwZUFsYXJtQ2xvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40LDQuMDlBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4'@; put 'LDI3Ljc4QTE0LDE0LDAsMCwwLDE2LjQsNC4wOVpNMTkuNTgsMjkuOUExMiwxMiwwLDEsMSwyOS45MiwxOS41NiwxMiwxMiwwLDAsMSwxOS41OCwyOS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC45Miwy'@; put 'MC4zNGwtNi4wNi0zVjkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42'@; put 'NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODYsOS41YS45LjksMCww'@; put 'LDAtMS44LDB2OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYybC02LjA2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCwwLDMx'@; put 'Ljc3LDE1LjRoLTJhMTIuMDcsMTIuMDcsMCwxLDEtOC42Ny05bDEtMS44YTE0LDE0LDAsMCwwLTE0LDIzLjI3TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwx'@; put 'LjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQx'@; put 'LDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCww'@; put 'LDMxLjc3LDE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2TDE5LDEzLjR2My43OEwyNSwyMC4xYTEsMSwwLDEsMS0uODcsMS44TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMFYxMEwxOSw5Ljg5bDMtNS4yOGExNCwxNCwwLDAsMC0xNCwyMy4yN0w1LjU2LDMwLjQzQTEsMSww'@; put 'LDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2'@; put 'Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxl'@; put 'cnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzlBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjExLTEuMjFBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMw'@; put 'LjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWm0tMi41Mi02LjM1YTEsMSwwLDAsMS0xLjMzLjQ3TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMHY3LjVMMjUsMjAuMUExLDEsMCww'@; put 'LDEsMjUuNDksMjEuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJh'@; put 'ZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44Niw5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45LjksMCwxLDAsLjc5LTEuNjJsLTYuMDYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzksNyw3LDAsMCwxLTIuMTEuMDVBMTIsMTIsMCwxLDEsMjIuNTYsNi45LDcuNTQsNy41NCwwLDAsMSwyMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xMS0xLjIx'@; put 'QTE0LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS40NywzLjg0'@; put 'YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43'@; put 'NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDRBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1'@; put 'LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4LDI3Ljc4QTE0LDE0LDAsMCwwLDE4LDRabTcuNDcsMTcuNDNhMSwxLDAsMCwxLTEuMzMuNDdMMTcsMTguNDRWOS42OWEx'@; put 'LDEsMCwwLDEsMiwwdjcuNUwyNSwyMC4xQTEsMSwwLDAsMSwyNS40OSwyMS40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxsLkNsclNoYXBlQ2lyY2xlQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgs'@; put 'MTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDgsOC4yNmwtNy42MSw3LjYxYTEsMSwwLDEsMCwxLjQx'@; put 'LDEuNDFMMTcsMTIuMTh2MTVhMSwxLDAsMCwwLDIsMFYxMmw1LjI4LDUuMjhhMSwxLDAsMSwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww'@; put 'LDAsMCwxOCwyWm04LDE1LjU3YTEuNDMsMS40MywwLDAsMS0yLDBMMTkuNCwxM1YyNy4xNGExLjQsMS40LDAsMCwxLTIuOCwwdi0xNGwtNC40Myw0LjQzYTEuNCwxLjQsMCwwLDEtMi0yTDE4LjA4LDcuNywyNiwxNS41OUExLjQsMS40LDAsMCwxLDI2LDE3LjU3WiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGwuQ2xyU2hhcGVDaGlsZEFycm93PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC44MiwxNS44YTEsMSwwLDAsMC0xLjQxLDAsMSwxLDAsMCwwLDAsMS40MUwyNy4yLDIxSDlWMy43OGExLDEsMCwxLDAtMiwwVjIxYTIsMiwwLDAsMCwy'@; put 'LDJIMjcuMTVsLTMuNzQsMy43NWExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMSwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVDb3B5PSgwLGEuY2xySWNvblNWRykoJzxwYXRo'@; put 'IGQ9Ik0yOS41LDdoLTE5QTEuNSwxLjUsMCwwLDAsOSw4LjV2MjRBMS41LDEuNSwwLDAsMCwxMC41LDM0aDE5QTEuNSwxLjUsMCwwLDAsMzEsMzIuNVY4LjVBMS41LDEuNSwwLDAsMCwyOS41LDdaTTI5LDMySDExVjlIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMuNUExLjUsMS41LDAsMCwwLDI0LjUsMkg1LjVBMS41LDEuNSwwLDAsMCw0LDMuNXYyNEExLjUsMS41LDAsMCwwLDUuNSwyOUg2VjRIMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTI3LDMuNTZBMS41NiwxLjU2LDAsMCwwLDI1LjQzLDJINS41N0ExLjU2LDEuNTYsMCwwLDAsNCwzLjU2VjI4LjQ0QTEuNTYsMS41NiwwLDAsMCw1LjU3LDMwaC41MlY0LjA3SDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iNiIgd2lkdGg9IjIzIiBoZWlnaHQ9IjI4IiByeD0iMS41IiByeT0iMS41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksbC5DbHJTaGFwZUhlbHA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYs'@; put 'MTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMjksOC45MmE3LjM4LDcuMzgs'@; put 'MCwwLDAtNS43MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEuOC44LDAsMCww'@; put 'LS43Ni45MnMwLDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NWMzLS40Miw1LjQzLTIsNS40My01LjI4di0uMDVDMjQuMTgsMTEuMTIsMjEuODQsOC45MiwxOC4yOSw4LjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTIiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljc4IiBjeT0iMjYuMiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xOCwxNC4xN3YtLjA1YzAtMy0yLjM0LTUuMi01Ljg4LTUuMmE3'@; put 'LjM4LDcuMzgsMCwwLDAtNS43MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEu'@; put 'OC44LDAsMCwwLS43Ni45MnMwLDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NUMyMS43NSwxOSwyNC4xOCwxNy40NSwyNC4xOCwxNC4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIv'@; put 'PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTcuNzgiIGN5PSIyNi4yIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQzLDcuNDMsMCwwLDEt'@; put 'MS45MS41OCwxNC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDQsNy40NCwwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj'@; put 'aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40OSw3LjQ5LDAsMCwxLTkuOTMtOS45MywxNi4w'@; put 'NiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNabS0xNS4zNCwxNWExLjY1LDEuNjUsMCwxLDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0'@; put 'LDAtMi43NiwwLTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4zMWMxLjU3LS4xMiw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3'@; put 'Ljc3LDcuNzcsMCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYuMjgsNS42QzI0LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i'@; put 'MzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptLS4yMiwyNS44NWExLjY1'@; put 'LDEuNjUsMCwxLDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0LDAtMi43NiwwLTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4z'@; put 'MWMxLjU3LS4xMiw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3Ljc3LDcuNzcsMCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYu'@; put 'MjgsNS42QzI0LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksbC5DbHJTaGFwZUxvZ2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAsMC0yLDJIMjhWMzBIMTJWMjAu'@; put 'MkgxMFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjEyLDE4LjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFsNS43OS01'@; put 'Ljc5TDE2LjU0LDguMjlhMSwxLDAsMCwwLTEuNDEsMS40MUwxOC41LDEzSDRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxSDE4LjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAs'@; put 'MC0yLDJ2N2g4LjVMMTUuMTIsOS43MWExLDEsMCwwLDEsMS40MS0xLjQxbDUuNzksNS43OS01Ljc5LDUuNzlhMSwxLDAsMCwxLTEuNDEtMS40MUwxOC41LDE1SDEwVjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyOCw0WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCwxM0g0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlTG9nb3V0PSgwLGEuY2xySWNvblNWRyko'@; put 'JzxwYXRoIGQ9Ik03LDZIMjN2OS44aDJWNmEyLDIsMCwwLDAtMi0ySDdBMiwyLDAsMCwwLDUsNlYzMGEyLDIsMCwwLDAsMiwySDIzYTIsMiwwLDAsMCwyLTJIN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgu'@; put 'MTYsMTcuMjhhMSwxLDAsMCwwLTEuNDEsMS40MUwzMC4xMywyMkgxNS42M2ExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoMTQuNWwtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTIzLDRIN0EyLDIsMCwwLDAsNSw2VjMwYTIsMiwwLDAsMCwyLDJIMjNhMiwyLDAsMCwwLDItMlYyNEgxNS42M2ExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLTFIMjVWNkEyLDIsMCwwLDAsMjMsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4xNiwxNy4yOGExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjEzLDIySDI1djJoNS4xM2wtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0y'@; put 'Ii8+JyksbC5DbHJTaGFwZVByaW50ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDlIMjdWNUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVYxM2EyLDIsMCwwLDEsMi0ySDI5YTIsMiwwLDAsMSwyLDJ2OUgyOS4wOFYyNEgzM1YxM0E0LDQsMCwwLDAsMjksOVpN'@; put 'MjUsOUgxMVY3SDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEsMSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEs'@; put 'MSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAyMi4w'@; put 'OSAyOS4wOCAyMi4wOSAyOS4wOCAyNCAzMyAyNCAzMyAxNS40IDMxIDE1LjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxM2EyLDIsMCwwLDEsMi0ySDE4LjY0QTMuNjUsMy42'@; put 'NSwwLDAsMSwxOSw5Ljg5TDE5LjU0LDlIMTFWN2g5LjcxbDEuMTMtMkg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhhMSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAtMlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTIuODhhNy40'@; put 'NSw3LjQ1LDAsMCwxLTIsLjU1djguNjZIMjkuMDhWMjRIMzNWMTNDMzMsMTMsMzMsMTIuOTMsMzMsMTIuODhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEzYTIsMiwwLDAsMSwy'@; put 'LTJIMjQuNDJhNy41LDcuNSwwLDAsMS0xLjI3LTJIMTFWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41NCw3LjU0LDAsMCwxLC4wNy0xSDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDlIMjdW'@; put 'NUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQTQsNCwwLDAsMCwyOSw5Wk0yNSwyNHY2SDExVjE5SDI1Wk0yNSw5SDExVjdIMjVabTQsNkgyN1YxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMTkuNTQsOUgxMVY3aDkuNzFsMS4xMy0ySDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZWMTUuNFpNMjUsMjR2NkgxMVYxOUgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxMi44OGE3LjMsNy4zLDAsMCwxLTQsLjU1VjE1SDI3VjEzaC4zMmE3LjUyLDcuNTIsMCwwLDEtNC4xOC00SDExVjdIMjIuNTdhNy41Miw3'@; put 'LjUyLDAsMCwxLS4wNy0xLDcuNTQsNy41NCwwLDAsMSwuMDctMUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQzMzLDEzLDMzLDEyLjkzLDMzLDEyLjg4Wk0yNSwyNHY2SDExVjE5SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxsLkNsclNoYXBlV29ybGQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGgg'@; put 'ZD0iTTI2LjU0LDE4YTE5LjM4LDE5LjM4LDAsMCwwLS40My00aDMuNmExMi4zLDEyLjMsMCwwLDAtLjY3LTEuNkgyNS42OUExOS43MiwxOS43MiwwLDAsMCwyMi44LDYuNTNhMTIuMywxMi4zLDAsMCwwLTIuNTUtLjc2LDE3LjgzLDE3LjgzLDAsMCwxLDMuODksNi41OUgxOC43NVY1LjZjLS4y'@; put 'NSwwLS41MSwwLS43Nywwcy0uNDksMC0uNzMsMHY2Ljc3SDExLjg2YTE3LjgzLDE3LjgzLDAsMCwxLDMuOS02LjYsMTIuMjgsMTIuMjgsMCwwLDAtMi41NC43NSwxOS43MiwxOS43MiwwLDAsMC0yLjkxLDUuODVINi45NEExMi4zLDEyLjMsMCwwLDAsNi4yNiwxNEg5Ljg5YTE5LjM4LDE5LjM4'@; put 'LDAsMCwwLS40Myw0LDE5LjY3LDE5LjY3LDAsMCwwLC41LDQuMzdINi40MkExMi4zNCwxMi4zNCwwLDAsMCw3LjE2LDI0aDMuMjNhMTkuMzIsMTkuMzIsMCwwLDAsMi42OSw1LjM2LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjEuNzlBMTcuOTEsMTcuOTEsMCwwLDEsMTIsMjRoNS4yNnY2LjM0Yy4y'@; put 'NCwwLC40OSwwLC43Mywwcy41MSwwLC43NywwVjI0SDI0YTE3LjksMTcuOSwwLDAsMS0zLjcsNi4xNSwxMi4yOCwxMi4yOCwwLDAsMCwyLjYyLS44MUExOS4zMiwxOS4zMiwwLDAsMCwyNS42MSwyNGgzLjJhMTIuMzQsMTIuMzQsMCwwLDAsLjc0LTEuNkgyNkExOS42NywxOS42NywwLDAsMCwy'@; put 'Ni41NCwxOFptLTkuMjksNC4zN0gxMS41MWExNy42OSwxNy42OSwwLDAsMS0uMDktOC40aDUuODNabTcuMjQsMEgxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4LDE4LjEyLDE4LjEyLDAsMCwxLDI0LjQ5LDIyLjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40Myw3LjQzLDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjI1LDUuNzdhMTcuODMsMTcuODMsMCwwLDEsMy44OSw2LjU5SDE4Ljc1VjUuNmMtLjI1LDAtLjUxLDAtLjc3LDBzLS40OSwwLS43MywwdjYuNzdIMTEuODZhMTcuODMsMTcuODMs'@; put 'MCwwLDEsMy45LTYuNiwxMi4yOCwxMi4yOCwwLDAsMC0yLjU0Ljc1LDE5LjcyLDE5LjcyLDAsMCwwLTIuOTEsNS44NUg2Ljk0QTEyLjMsMTIuMywwLDAsMCw2LjI2LDE0SDkuODlhMTkuMzgsMTkuMzgsMCwwLDAtLjQzLDQsMTkuNjcsMTkuNjcsMCwwLDAsLjUsNC4zN0g2LjQyQTEyLjM0LDEy'@; put 'LjM0LDAsMCwwLDcuMTYsMjRoMy4yM2ExOS4zMiwxOS4zMiwwLDAsMCwyLjY5LDUuMzYsMTIuMjgsMTIuMjgsMCwwLDAsMi42MS43OUExNy45MSwxNy45MSwwLDAsMSwxMiwyNGg1LjI2djYuMzRjLjI0LDAsLjQ5LDAsLjczLDBzLjUxLDAsLjc3LDBWMjRIMjRhMTcuOSwxNy45LDAsMCwxLTMu'@; put 'Nyw2LjE1LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjItLjgxQTE5LjMyLDE5LjMyLDAsMCwwLDI1LjYxLDI0aDMuMmExMi4zNCwxMi4zNCwwLDAsMCwuNzQtMS42SDI2YTE5LjY3LDE5LjY3LDAsMCwwLC41LTQuMzcsMTkuMzgsMTkuMzgsMCwwLDAtLjQzLTRoMy42Yy0uMDYtLjE3LS4xMi0uMzMt'@; put 'LjE5LS40OWE3LjQ1LDcuNDUsMCwwLDEtMy40Ny0xLjExaC0uMzZjMC0uMTEtLjA4LS4yMS0uMTEtLjMyYTcuNDgsNy40OCwwLDAsMS0zLjA2LTUuNjJBMTIuNDEsMTIuNDEsMCwwLDAsMjAuMjUsNS43N1ptLTMsMTYuNTlIMTEuNTFhMTcuNjksMTcuNjksMCwwLDEtLjA5LTguNGg1LjgzWk0y'@; put 'NSwxOGExOC4xMiwxOC4xMiwwLDAsMS0uNTUsNC4zN0gxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9'@; put 'IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjA1LDE4YTIwLjQ2LDIwLjQ2LDAsMCwwLC42Miw0LjkzaDYuNDhWMTMuNDVIMTAuNThBMjAuNTUs'@; put 'MjAuNTUsMCwwLDAsMTAuMDUsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODUsMTMuNDV2OS40OGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1WiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMzAuMjIsMjQuNzFIMjYuNmEyMS44LDIxLjgsMCwwLDEtMyw2LDEzLjg2LDEzLjg2LDAsMCwxLTMsLjkyLDIw'@; put 'LjIxLDIwLjIxLDAsMCwwLDQuMTgtNi45NEgxOC44NnY3LjE1Yy0uMjksMC0uNTcsMC0uODYsMHMtLjU1LDAtLjgzLDBWMjQuNzFIMTEuMjJhMjAuMjEsMjAuMjEsMCwwLDAsNC4xOCw2Ljk1LDEzLjg2LDEzLjg2LDAsMCwxLTIuOTQtLjksMjEuOCwyMS44LDAsMCwxLTMtNi4wNUg1Ljc4YTEz'@; put 'Ljk0LDEzLjk0LDAsMCwxLS44My0xLjgxaDRBMjIuMiwyMi4yLDAsMCwxLDguMzcsMThhMjEuODgsMjEuODgsMCwwLDEsLjQ4LTQuNTVINC43NmExMy44OCwxMy44OCwwLDAsMSwuNzYtMS44MUg5LjMzQTIyLjI2LDIyLjI2LDAsMCwxLDEyLjYxLDVhMTMuODYsMTMuODYsMCwwLDEsMi44Ny0u'@; put 'ODQsMjAuMTMsMjAuMTMsMCwwLDAtNC40LDcuNDVoNi4wOVY0Yy4yOCwwLC41NSwwLC44Mywwcy41OCwwLC44NiwwdjcuNjRoNi4wOWEyMC4xMywyMC4xMywwLDAsMC00LjM5LTcuNDRBMTMuODksMTMuODksMCwwLDEsMjMuNDMsNWEyMi4yNiwyMi4yNiwwLDAsMSwzLjI3LDYuNTloMy43N2Ex'@; put 'My44OSwxMy44OSwwLDAsMSwuNzYsMS44MUgyNy4xN0EyMS44OCwyMS44OCwwLDAsMSwyNy42NiwxOGEyMi4yLDIyLjIsMCwwLDEtLjU3LDQuOTNoNEExMy45NCwxMy45NCwwLDAsMSwzMC4yMiwyNC43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0xMC4wNSwxOGEyMC40NiwyMC40NiwwLDAsMCwuNjIsNC45M2g2LjQ4VjEzLjQ1SDEwLjU4QTIwLjU1LDIwLjU1LDAsMCwwLDEwLjA1LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0xOC44NSwyMi45NGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1SDE4Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0zMy4xMiwxMi44MWE3LjQ0LDcuNDQsMCwwLDEtMS45LjU4djBIMzFhNi43Nyw2Ljc3LDAsMCwxLTIuMDcsMGgtMS44QTIxLjg4LDIxLjg4LDAsMCwxLDI3LjY2LDE4YTIyLjIsMjIuMiwwLDAsMS0uNTcsNC45M2g0YTEzLjk0LDEzLjk0LDAsMCwxLS44MywxLjgxSDI2LjZhMjEuOCwy'@; put 'MS44LDAsMCwxLTMsNiwxMy44NiwxMy44NiwwLDAsMS0zLC45MiwyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LTYuOTRIMTguODZ2Ny4xNWMtLjI5LDAtLjU3LDAtLjg2LDBzLS41NSwwLS44MywwVjI0LjcxSDExLjIyYTIwLjIxLDIwLjIxLDAsMCwwLDQuMTgsNi45NSwxMy44NiwxMy44NiwwLDAs'@; put 'MS0yLjk0LS45LDIxLjgsMjEuOCwwLDAsMS0zLTYuMDVINS43OGExMy45NCwxMy45NCwwLDAsMS0uODMtMS44MWg0QTIyLjIsMjIuMiwwLDAsMSw4LjM3LDE4YTIxLjg4LDIxLjg4LDAsMCwxLC40OC00LjU1SDQuNzZhMTMuODgsMTMuODgsMCwwLDEsLjc2LTEuODFIOS4zM0EyMi4yNiwyMi4y'@; put 'NiwwLDAsMSwxMi42MSw1YTEzLjg2LDEzLjg2LDAsMCwxLDIuODctLjg0LDIwLjEzLDIwLjEzLDAsMCwwLTQuNCw3LjQ1aDYuMDlWNGMuMjgsMCwuNTUsMCwuODMsMHMuNTgsMCwuODYsMHY3LjY0aDYuMDlsMC0uMTNhNy40Nyw3LjQ3LDAsMCwxLTIuMzYtNC43NiwyMC4zNywyMC4zNywwLDAs'@; put 'MC0yLTIuNTUsMTQuMjMsMTQuMjMsMCwwLDEsMi4wNi41Niw3LjQ0LDcuNDQsMCwwLDEsLjU3LTEuODYsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxsLkNsclNoYXBlU2xpZGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMiwxMi4zN0E0LDQsMCwwLDAsOSw4LjQ4'@; put 'VjVBMSwxLDAsMSwwLDcsNVY4LjQ4YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxNi4yNkE0LDQsMCwwLDAsMTIsMTIuMzdabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsOCwxNC40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxNS44M2E0LDQsMCwwLDAtMy0zLjg5VjVhMSwxLDAsMSwwLTIsMHY2Ljk0YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxOS43MkE0LDQsMCwwLDAsMzIsMTUuODNabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjgsMTcu'@; put 'ODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDI0LjVhNCw0LDAsMCwwLTMtMy44OVY1YTEsMSwwLDEsMC0yLDBWMjAuNjFhNCw0LDAsMCwwLDAsNy43OFYzMWExLDEsMCwxLDAsMiwwVjI4LjM5QTQsNCww'@; put 'LDAsMCwyMiwyNC41Wm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDI2LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LDkuMjlWNUExLDEsMCwxLDAsNyw1VjkuM2EzLjIyLDMuMjIsMCwwLDAs'@; put 'MCw2LjExVjMxYTEsMSwwLDEsMCwyLDBWMTUuNDNBMy4yMiwzLjIyLDAsMCwwLDksOS4yOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyMS40NVY1YTEsMSwwLDEsMC0yLDBWMjEuNDdhMy4yMiwzLjIyLDAsMCww'@; put 'LDAsNi4xMVYzMWExLDEsMCwxLDAsMiwwVjI3LjZhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwxMi43NVY1YTEsMSwwLDEsMC0yLDB2Ny43NmEzLjIyLDMuMjIsMCwwLDAs'@; put 'MCw2LjExVjMxYTEsMSwwLDEsMCwyLDBWMTguODlhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxsLkNsclNoYXBlQ2xpcGJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4yOSw1SDI3VjdoMlYzMkg3'@; put 'VjdIOVY1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTI2LDcuMzNBMi4zNCwyLjM0LDAsMCwwLDIzLjY3LDVIMjEuODdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNlpNMjQsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQs'@; put 'MFY3aDMuNjdhLjMzLjMzLDAsMCwxLC4zMy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE0IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMiIgd2lkdGg9IjE0IiBoZWlnaHQ9'@; put 'IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI2IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8'@; put 'cmVjdCB4PSIxMSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRn'@; put 'ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUgxMlY3LjMzQS4z'@; put 'My4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIz'@; put 'LjEzLDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFB'@; put 'MS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl'@; put 'IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjksNUgyMi4xN2E0LjQ1LDQuNDUsMCwwLDAtNC4xMS0zQTQuNDYsNC40'@; put 'NiwwLDAsMCwxNCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVptLTE4LDNhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzFhMi4zMSwyLjMxLDAs'@; put 'MSwxLDQuNjMsMFY3aDMuNDRhMSwxLDAsMCwxLDEsMXYySDExLjMxWk0yNSwyOEgxMVYyNkgyNVptMC00SDExVjIySDI1Wm0wLTRIMTFWMThIMjVabTAtNEgxMVYxNEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MzAsMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjMuNjYsMTBIMTEuMzFWOGExLDEsMCwwLDEsMS0xaDMuNDRWNi4zMWEyLjMxLDIuMzEsMCwxLDEsNC42MywwVjdoMi4xOWE3LjU0LDcuNTQsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uNGE0LjQ1LDQuNDUsMCwwLDAtNC4xMS0z'@; put 'QTQuNDYsNC40NiwwLDAsMCwxNCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjUsMjhIMTFWMjZIMjVabTAtNEgxMVYyMkgyNVpt'@; put 'MC00SDExVjE4SDI1Wm0wLTRIMTFWMTRIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGwuQ2xyU2hhcGVGaXJld2FsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTQsOEgzMnY1'@; put 'LjA4SDIzLjh2LTRIMjJ2NEgxNHYtNEgxMnY0SDRabTAsN0gzMnY2LjA4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0LjgxSDRaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJ2NS42OEgyOC45MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0VjE1SDIwLjU4YTMuNTgsMy41OCwwLDAsMS0xLjc2'@; put 'LTEuOTJIMTR2LTRIMTJ2NEg0VjhIMjAuMTRsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAs'@; put 'MCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTIuNDUtLjQySDIzLjhWMTAuMjJhNy41LDcu'@; put 'NSwwLDAsMS0uNjMtMS4xNEgyMnY0SDE0di00SDEydjRINFY4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjYuMDhIMjguOTJW'@; put 'MTYuMjdIMjd2NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAv'@; put 'PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4'@; put 'YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xNCwyOEgxMlYyNGgyWm0xMCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNabTAtOEg0VjEyaDhWOGgydjRoOFY4aDJ2NGg4WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOS4zNSwxNEg0VjEyaDhWOGgydjRoNC41N0EzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCww'@; put 'LDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYxNmgydjRoOFYxNmgydjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwxMC40OVYxMmgxLjUxQTcuNTMsNy41MywwLDAsMSwyNCwxMC40OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjE0SDRWMTJoOFY4aDJ2NGg4VjhoLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMlpNMTQs'@; put 'MjhIMTJWMjRoMlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUi'@; put 'ICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxsLkNsclNoYXBlTGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNSIgeT0iOCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTIiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE2IiB3aWR0'@; put 'aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4g'@; put 'ICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjQiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNiIg'@; put 'd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAv'@; put 'PlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgy'@; put 'OGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjEyIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTYiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAg'@; put 'ICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI0IiB3aWR0aD0iOSIgaGVpZ2h0PSIy'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTYiIHdp'@; put 'ZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMTUsOHYyaDguNjZhNy40NSw3LjQ1LDAsMCwxLS44OS0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjRIMjIuNzhhNy40NSw3LjQ1LDAsMCwx'@; put 'LC44OC0ySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAg'@; put 'PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwy'@; put 'SDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlpNMTMsMjZIMTFWMjRoMlptMC00SDExVjIwaDJabTAtNEgxMVYxNmgyWm0wLTRIMTFWMTJoMlptMC00SDExVjhoMlpNMjUsMjZIMTVWMjRIMjVabTAtNEgxNVYyMEgyNVptMC00SDE1VjE2SDI1Wm0wLTRIMTVWMTJIMjVabTAtNEgx'@; put 'NVY4SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy42NiwxMEgxNVY4aDcuNzhhNy40Miw3LjQyLDAsMCwxLC44OS02SDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJW'@; put 'MTMuNUE3LjQ5LDcuNDksMCwwLDEsMjMuNjYsMTBaTTEzLDI2SDExVjI0aDJabTAtNEgxMVYyMGgyWm0wLTRIMTFWMTZoMlptMC00SDExVjEyaDJabTAtNEgxMVY4aDJaTTI1LDI2SDE1VjI0SDI1Wm0wLTRIMTVWMjBIMjVabTAtNEgxNVYxNkgyNVptMC00SDE1VjEySDI1WiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxs'@; put 'LkNsclNoYXBlUmVkbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQsNC4yMmExLDEsMCwwLDAtMS40MSwxLjQybDUuNTYsNS40OWgtMTNBMTEsMTEsMCwwLDAsMTAuMDcsMzIsMSwxLDAsMCwwLDExLDMwLjE4YTksOSwwLDAsMS01LTgsOS4wOCw5LjA4LDAsMCwxLDkuMTMtOWgxM2wt'@; put 'NS41NCw1LjQ4QTEsMSwwLDAsMCwyNCwyMGw4LTcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlVW5kbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuODcsMTEuMTRoLTEzbDUuNTYtNS40OUExLDEsMCwwLDAsMTIs'@; put 'NC4yMkw0LDEyLjEzLDEyLDIwYTEsMSwwLDAsMCwxLjQxLTEuNDJMNy44NiwxMy4xNGgxM2E5LjA4LDkuMDgsMCwwLDEsOS4xMyw5LDksOSwwLDAsMS01LDhBMSwxLDAsMCwwLDI1LjkzLDMyYTExLDExLDAsMCwwLTUuMDYtMjAuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlU2Nyb2xsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZINy4xOVYyNEgydjUuNUE0LjUs'@; put 'NC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTMuMTNoLTJWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0Wm0tNC41LTdBMi41LDIuNSwwLDAsMSwzMiw2'@; put 'LjU4VjkuMTJIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjA4LDE1LjRWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40'@; put 'NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDIuNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQ0LS43NkgxOFY2LjU4YTQuNDgsNC40OCwwLDAsMC0uNzYtMi41SDIyLjRsMS4xNS0ySDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEs'@; put 'MS01LDBWMjZINy4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0'@; put 'LjU0aDguNTRhNy41LDcuNSwwLDAsMS0xLjM1LTJIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNWg1LjUyYTcuNDQsNy40NCwwLDAsMSwuODYtMkgxMy41QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAs'@; put 'MCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2'@; put 'LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjEzLjEzaC0yVjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMDgsMTUuNFYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRoMi42MUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OWw0LjUxLTcuOEgx'@; put 'My41QTQuNSw0LjUsMCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt'@; put 'cGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUs'@; put 'MHY0LjU0aDguNTRhNy40Niw3LjQ2LDAsMCwxLS45Mi05SDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksbC5DbHJTaGFwZUZpbGVTZXR0aW5ncz0oMCxhLmNscklj'@; put 'b25TVkcpKCc8cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzdsLTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43'@; put 'NmE3Ljg0LDcuODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0xLjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGEx'@; put 'LjE2LDEuMTYsMCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4x'@; put 'NiwwLDAsMCwuMjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiwwLDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4y'@; put 'OWwxLjUuNzlhMS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4xMVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwx'@; put 'LjE5bC0uMjEuMzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwtLjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwx'@; put 'LDE4LjE3LDI2TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCwwLDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEy'@; put 'QTYuMjEsNi4yMSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjZ2Ny44OWEzLjIsMy4yLDAsMCwxLDIsMS43MlY1YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYs'@; put 'MCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcxLTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4'@; put 'LS40OC0uMjktLjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCwwLDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAs'@; put 'MCwwLTEuMTEuODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAtLjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSww'@; put 'LDAsMC0uODMsMS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIxbDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5'@; put 'TDIyLDMzLjE4YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEuMTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1'@; put 'cS4xNi0uMzQuMjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEtMS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMu'@; put 'NDJsLS42My0yLjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTgu'@; put 'OSwyMWwtMS0xLjg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwx'@; put 'LjIxbC4xMi40MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNDksMzFINlY1SDIxLjg3TDIzLDNINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJI'@; put 'MTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww'@; put 'LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0uNzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZh'@; put 'Ny44NCw3Ljg0LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSwwLDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4x'@; put 'NiwxLjE2LDAsMCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAsMC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYs'@; put 'MCwwLDAsLjIxLDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcuMjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjls'@; put 'MS41Ljc5YTEuMTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYsMS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4x'@; put 'OWwtLjIxLjM4LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAsMS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwx'@; put 'OC4xNywyNkwxOCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQxYTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2'@; put 'LjIxLDYuMjEsMCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEuODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQuMDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjMuMDhhNi45NCw2Ljk0LDAsMCwxLC42LTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40'@; put 'OSwzMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS4zM1YxMi43MWE3LDcsMCwwLDEtMi0xdjEuODhBMy4yLDMuMiwwLDAsMSwyOCwxNS4zM1oiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjZ2OC43OGEyLjM3LDIuMzcsMCwwLDEsMiwxLjU3VjVhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwx'@; put 'QTcsNywwLDAsMCwyNi42OSwxOGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3'@; put 'LDAsMCwwLS42MSwxLjQ0bC0yLC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3LDAsMCwwLC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCww'@; put 'LDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCww'@; put 'LC41OC0xLjM5bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNywwLDAsMCwzMy41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThs'@; put 'LS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwu'@; put 'NjFhLjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4z'@; put 'NywwLDAsMCwuMzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcu'@; put 'MzcsMCwwLDAsLjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxl'@; put 'cnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjEuODdMMjMsM0g2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk'@; put 'IGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYu'@; put 'NjksMThsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40'@; put 'NGwtMiwuNjFhLjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwy'@; put 'YS4zNy4zNywwLDAsMCwuMzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42'@; put 'MWEuMzcuMzcsMCwwLDAsLjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y'@; put 'LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDIzLjA4YTYuOTQsNi45NCwwLDAsMSwuNi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuMzZWMTIuNzFhNyw3LDAsMCwxLTItMXYyQTIuMzcsMi4zNywwLDAsMSwyOCwxNS4zNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'NC0tYmFkZ2VkIiAvPicpLGwuQ2xyU2hhcGVUd29XYXlBcnJvd3M9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjQzLDE2LjgzQTEsMSwwLDAsMCwyMiwxOC4yNEwyNS43MiwyMkg3LjgzYTEsMSwwLDAsMCwwLDJIMjUuNzJMMjIsMjcuN2ExLDEsMCwxLDAsMS40MiwxLjQxTDI5LjUz'@; put 'LDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuMjQsMTguNDVhMSwxLDAsMCwwLC43MS0xLjcxTDEwLjI0LDEzSDI4LjEyYTEsMSwwLDAsMCwwLTJIMTAuMjRsMy43MS0zLjczYTEsMSwwLDAsMC0xLjQy'@; put 'LTEuNDFMNi40MiwxMmw2LjExLDYuMTRBMSwxLDAsMCwwLDEzLjI0LDE4LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZVN3aXRjaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNS43MSwxNEgyMC45MlYxMkg1LjcxTDku'@; put 'NDIsOC4yN0ExLDEsMCwxLDAsOCw2Ljg2TDEuODksMTMsOCwxOS4xNGExLDEsMCwxLDAsMS40Mi0xLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxMiIgd2lkdGg9IjMiIGhlaWdodD0iMiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyOCIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTI3LjkyLDE3Ljg2YTEsMSwwLDAsMC0xLjQyLDEuNDFMMzAuMjEsMjNIMTV2MkgzMC4yMUwyNi41LDI4Ljc0YTEsMSwwLDEsMCwxLjQyLDEuNEwzNCwyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTAiIHk9'@; put 'IjIzIiB3aWR0aD0iMyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NiIgLz4nKSxsLkNsclNoYXBlVG9vbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLDE0SDE2YTEsMSwwLDAsMC0xLDF2NmExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxNUExLDEsMCwwLDAsMjAsMTRabS0uNCw2LjZIMTYuNFYxNS40aDMuMloiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjcxLDEyLjM4LDI5LjYyLDguMjlBMSwxLDAsMCwwLDI4LjkyLDhoLTVWNi4wNUEyLDIsMCwwLDAsMjIsNEgxMy44NEExLjkyLDEuOTIsMCwwLDAsMTIsNi4wNVY4SDcuMDhhMSwxLDAsMCww'@; put 'LS43MS4yOUwyLjI5LDEyLjM4YTEsMSwwLDAsMC0uMjkuNzFWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEzLjA4QTEsMSwwLDAsMCwzMy43MSwxMi4zOFpNMTQsNmg4VjhIMTRaTTMyLDE3SDIydjEuOTNIMzJWMjhINFYxOC45M0gxNFYxN0g0VjEzLjVMNy41LDEwaDIxTDMy'@; put 'LDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2LjQiIHk9IjE1LjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNS4yIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTIxLDIxYTEsMSwwLDAsMS0xLDFIMTZhMSwxLDAsMCwxLTEtMVYxOUgydjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5SDIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z'@; put 'My43MSwxMi4zOCwyOS42Miw4LjI5QTEsMSwwLDAsMCwyOC45Miw4aC01VjYuMDVBMiwyLDAsMCwwLDIyLDRIMTMuODRBMS45MiwxLjkyLDAsMCwwLDEyLDYuMDVWOEg3LjA4YTEsMSwwLDAsMC0uNzEuMjlMMi4yOSwxMi4zOGExLDEsMCwwLDAtLjI5LjcxVjE3SDE1VjE1YTEsMSwwLDAsMSwx'@; put 'LTFoNGExLDEsMCwwLDEsMSwxdjJIMzRWMTMuMDhBMSwxLDAsMCwwLDMzLjcxLDEyLjM4Wk0yMiw4SDE0VjZoOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksbC5DbHJTaGFwZVdpbmRvd0Nsb3NlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40'@; put 'MSwxOGw3LjI5LTcuMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSwxMC43MSw5LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNTksMTgsOS4yOSwyNS4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDcuMjksNy4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZVdpbmRvd01heD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuODksOWgtMjBhMiwyLDAsMCwwLTIsMlYyNWEyLDIsMCwwLDAsMiwyaDIwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDI3Ljg5'@; put 'LDlabS0yMCwxNlYxMWgyMFYyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVXaW5kb3dNaW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDI3SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDhIMTRhMiwyLDAsMCwwLTIsMnYyaDJWMTBIMjhWMjBIMjZ2MmgyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDI4'@; put 'LDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwxNEg4YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE2QTIsMiwwLDAsMCwyMiwxNFpNOCwyNlYxNkgyMlYyNloi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVab29tSW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LDRBMTIsMTIsMCwxLDAsMjgsMTYsMTIsMTIsMCwwLDAsMTYsNFptMCwyMS45MUExMCwxMCwwLDEsMSwyNiwxNiwxMCwx'@; put 'MCwwLDAsMSwxNiwyNS45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjcxLDI5LjY5bC01LjE3LTUuMTdBMTMuNjgsMTMuNjgsMCwwLDEsMjUuMTUsMjZsNS4xNSw1LjE1YTEsMSwwLDAsMCwxLjQxLTEu'@; put 'NDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSwxNUgxN1YxMWExLDEsMCwwLDAtMiwwdjRIMTFhMSwxLDAsMCwwLDAsMmg0djRhMSwxLDAsMCwwLDIsMFYxN2g0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxsLkNsclNoYXBlWm9vbU91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTYsNEExMiwxMiwwLDEsMCwyOCwxNiwxMiwxMiwwLDAsMCwxNiw0Wm0wLDIxLjkxQTEwLDEwLDAsMSwxLDI2LDE2LDEwLDEwLDAsMCwx'@; put 'LDE2LDI1LjkxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzEsMjkuNjlsLTUuMTctNS4xN0ExMy42OCwxMy42OCwwLDAsMSwyNS4xNSwyNmw1LjE1LDUuMTVhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLDE1SDEyYTEsMSwwLDAsMCwwLDJoOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksbC5DbHJTaGFw'@; put 'ZUtleT0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRM'@; put 'MTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBs'@; put 'NS4yNiw1LjI2YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEiIHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0i'@; put 'MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwxNi44bC42My0uNjNhNSw1LDAsMCww'@; put 'LC42My0uNzdIMjIuMjNsLS4yOSwwTDIwLjUyLDE2LjgsMzIsMjguMjhWMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4yNCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwTDIw'@; put 'LjEsOC4wNmwxLTEuNzlMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0uNEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs'@; put 'MCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0i'@; put 'MSIgcnk9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUs'@; put 'MCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2'@; put 'di0yLjhIMjMuNDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBsNS4yNiw1LjI2YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNkE1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEu'@; put 'NjNMMjgsMzRoNlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFMMTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMu'@; put 'NDF2LTNIMTguOGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNmE1LDUsMCwwLDAsLjYzLS43N0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEs'@; put 'MTksOS44OWwyLjA5LTMuNjJMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcs'@; put 'MTUuNjRhMSwxLDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEsMSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIs'@; put 'MjguMjhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx'@; put 'MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZBNSw1LDAsMCww'@; put 'LDI0LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEs'@; put 'MCwwLDEtMS40MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2Ui'@; put 'IC8+JyksbC5DbHJTaGFwZUxpYnJhcnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjQ4LDI5LjYzLDI2Ljc0LDExLjgyYTIsMiwwLDAsMC0yLjU4LTEuMTZMMjEsMTEuODVWOC45MkExLjkyLDEuOTIsMCwwLDAsMTkuMDgsN0gxNFY0LjkyQTEuOTIsMS45MiwwLDAsMCwxMi4wOCwz'@; put 'SDVBMiwyLDAsMCwwLDMsNVYzMmExLDEsMCwwLDAsMSwxSDIwYTEsMSwwLDAsMCwxLTFWMTkuMjdsNSwxMy4yMWExLDEsMCwwLDAsMS4yOS41OGw1LjYxLTIuMTRhMSwxLDAsMCwwLC41OC0xLjI5Wk0xMiw4LjgzVjMxSDVWNWg3Wk0xOSwzMUgxNFY5aDVabTguNTEtLjI1TDIxLjEzLDEzLjky'@; put 'bDMuNzQtMS40Miw2LjM5LDE2LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuNzUsM0g1LjI1QTEuMTUsMS4xNSwwLDAsMCw0LDRWMzNIMTRWNEExLjE1LDEuMTUsMCwwLDAsMTIuNzUsM1oiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMzEuMDlsLTYuOTQtMTguM2ExLDEsMCwwLDAtMS4yOS0uNThMMjIsMTMuNTlWOWExLDEsMCwwLDAtMS0xSDE2VjMzaDZWMTQuNjlMMjguOTMsMzNaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVCb2x0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC41MiwzNGgtM2ExLDEsMCwwLDEtLjg4LTEuNDRMMTIuNTUsMjFINmExLDEsMCwwLDEtLjg1LTEuNTRsMTAuNjgtMTdBMSwxLDAsMCwxLDE2LjY0LDJIMzAu'@; put 'MDdhMSwxLDAsMCwxLC43NywxLjY5TDIxLjc4LDE0aDUuMzhhMSwxLDAsMCwxLC43MywxLjY2bC0xNi42MywxOEExLDEsMCwwLDEsMTAuNTIsMzRaTTkuMTgsMzJoLjkxTDI0Ljg2LDE2SDE5LjU5YTEsMSwwLDAsMS0uNzctMS42OUwyNy44OCw0SDE3LjE5TDcuNzcsMTlIMTQuMmExLDEsMCww'@; put 'LDEsLjg4LDEuNDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC44LDIuMjlBLjQ5LjQ5LDAsMCwwLDMwLjM1LDJIMTYuNDJhLjUuNSwwLDAsMC0uNDIuMjNsLTEwLjcxLDE3QS40OS40OSwwLDAsMCw1Ljcs'@; put 'MjBoNy42N0w2LjYsMzMuMjVhLjUyLjUyLDAsMCwwLC40Ni43NWgzYS41LjUsMCwwLDAsLjM3LS4xNkwyOCwxNC44NWEuNS41LDAsMCwwLS4zNy0uODVIMjAuODlMMzAuNzIsMi44MkEuNDkuNDksMCwwLDAsMzAuOCwyLjI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgLz4nKSxsLkNsclNoYXBlV3JlbmNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy4xOCwyNi4xMSwyMC4zNSwxMy4yOEE5LjI4LDkuMjgsMCwwLDAsNy41NCwyLjc5bC0xLjM0LjU5LDUuMzgsNS4zOEw4Ljc2LDExLjU5LDMuMzgsNi4yMSwyLjc5LDcuNTRBOS4yNyw5LjI3LDAs'@; put 'MCwwLDEzLjI4LDIwLjM1TDI2LjExLDMzLjE4YTIsMiwwLDAsMCwyLjgzLDBsNC4yNC00LjI0QTIsMiwwLDAsMCwzMy4xOCwyNi4xMVptLTUuNjYsNS42NkwxMy44OCwxOC4xMmwtLjU3LjE2YTcuMjcsNy4yNywwLDAsMS05LjMxLTcsNy4yLDcuMiwwLDAsMSwuMTUtMS40OGw0LjYxLDQuNjEs'@; put 'NS42Ni01LjY2TDkuODEsNC4xNWE3LjI3LDcuMjcsMCwwLDEsOC40Nyw5LjE2bC0uMTYuNTdMMzEuNzcsMjcuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3LjEzIiBjeT0iMjcuMDkiIHI9IjEuMyIg'@; put 'dHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTExLjIxIDI3LjEyKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzMsMjcuNzIsMTkuNjcsMTMuNjZhOC43OSw4Ljc5LDAsMCwwLTEyLTEwLjVM'@; put 'MTMsOC41Myw4LjUzLDEzLDMuMTYsNy42N2E4Ljc5LDguNzksMCwwLDAsMTAuNSwxMkwyNy43MiwzMy43M2ExLjA3LDEuMDcsMCwwLDAsMS41LDBsNC41MS00LjUxQTEuMDcsMS4wNywwLDAsMCwzMy43MywyNy43MlpNMjksMjlhMS4zOCwxLjM4LDAsMSwxLDAtMkExLjM4LDEuMzgsMCwwLDEs'@; put 'MjksMjlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVCdWxsc2V5ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMmExNS45MiwxNS45MiwwLDAsMC00LjI1LjU5bC43NywxLjg2YTE0LjA3LDE0LjA3LDAsMSwxLTEwLDEwbC0x'@; put 'Ljg2LS43OEExNiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNy40NSwxNS43YTEwLjgxLDEwLjgxLDAsMSwwLDguMy04LjI2TDE2LjM3LDlBOS4yNCw5LjI0LDAsMSwxLDksMTYuMzJa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMi4wOWE0LjA4LDQuMDgsMCwwLDEtNC0zLjY4bC0xLjYzLS42OGMwLC4wOSwwLC4xOCwwLC4yN0E1LjY5LDUuNjksMCwxLDAsMTgsMTIuMzFoLS4yNEwxOC40'@; put 'MywxNEE0LjA3LDQuMDcsMCwwLDEsMTgsMjIuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjIsMTMuMzRhLjUuNSwwLDAsMCwuMzUuMTVIMTIuMmw1LjM3LDUuMzdBMSwxLDAsMCwwLDE5LDE3LjQ0TDEz'@; put 'LjUzLDEyVjguNTFhLjUuNSwwLDAsMC0uMTUtLjM1TDcuNzksMi41N2EuNS41LDAsMCwwLS44NS4zNXY0SDNhLjUuNSwwLDAsMC0uMzUuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxOC44NWExLDEs'@; put 'MCwwLDEtMS40MSwwbC0zLTNBNCw0LDAsMCwwLDEzLjkxLDE4LDQuMDksNC4wOSwwLDEsMCwxOCwxMy45MWE0LDQsMCwwLDAtMiwuNTVsMywzQTEsMSwwLDAsMSwxOSwxOC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMTgsMmExNS45MiwxNS45MiwwLDAsMC00LjI1LjU5bDEuNiwzLjg5QTExLjg5LDExLjg5LDAsMSwxLDYuNDksMTUuM0wyLjYxLDEzLjY4QTE2LDE2LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTgsMTUuOTRBMTAuMTcsMTAuMTcsMCwxLDAsMTYsOGwxLjY5LDQuMTEuMzEsMEE1Ljg4LDUuODgsMCwxLDEsMTIuMTIsMThjMC0uMTIsMC0uMjMsMC0uMzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguMiwxMy4z'@; put 'NGEuNS41LDAsMCwwLC4zNS4xNUgxMi4ybDIuMzUsMi4zNUE0LjA5LDQuMDksMCwwLDEsMTYsMTQuNDZMMTMuNTMsMTJWOC41MWEuNS41LDAsMCwwLS4xNS0uMzVMNy43OSwyLjU3YS41LjUsMCwwLDAtLjg1LjM1djRIM2EuNS41LDAsMCwwLS4zNS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTQiIC8+JyksbC5DbHJTaGFwZVRhcmdldD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNy4yQTEwLjgsMTAuOCwwLDEsMCwyOC44LDE4LDEwLjgxLDEwLjgxLDAsMCwwLDE4LDcuMlptMCwyMEE5LjIsOS4yLDAsMSwxLDI3LjIsMTgsOS4yMSw5LjIxLDAsMCwxLDE4LDI3LjJa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMi4zMUE1LjY5LDUuNjksMCwxLDAsMjMuNjksMTgsNS42OSw1LjY5LDAsMCwwLDE4LDEyLjMxWm0wLDkuNzdBNC4wOSw0LjA5LDAsMSwxLDIyLjA5LDE4LDQu'@; put 'MDksNC4wOSwwLDAsMSwxOCwyMi4wOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iNC4wOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0xOCw3LjgzQTEwLjE3LDEwLjE3LDAsMSwwLDI4LjE3LDE4LDEwLjE4LDEwLjE4LDAsMCwwLDE4LDcuODNabTAsMTZBNS44OCw1Ljg4LDAsMSwxLDIzLjg4LDE4LDUuODgsNS44OCwwLDAsMSwxOCwyMy44OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDI3LjgzQTExLjgzLDExLjgzLDAsMSwxLDI5LjgzLDE4LDExLjg1LDExLjg1LDAsMCwxLDE4LDI5LjgzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p'@; put 'LXNvbGlkLXBhdGgtMyIgLz4nKSxsLkNsclNoYXBlRmxhbWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjMsMTYuNjZjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcu'@; put 'NzgsNC40MiwxOS41QTkuMyw5LjMsMCwwLDAsMywyNC42MUMzLDI5LjcyLDUuODYsMzQsMTEuNjcsMzRIMjIuNDhDMjguMjgsMzQsMzMsMjksMzMsMjIuNzhBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi42NlpNMjIuNDgsMzJIMTEuNzdDOC4xMywzMiw1LDI4LjY2LDUsMjQuNjFhNy40Myw3'@; put 'LjQzLDAsMCwxLDEuMTYtNC4xM2MuNzMtMS4yOSw0LjA1LTcuMjEsNS42NS0xMC4wN2wzLDUuMjhhMSwxLDAsMCwwLC44Ny41MWgwYTEsMSwwLDAsMCwuODctLjUxTDIyLjQ5LDVjMS44NiwzLjMzLDYuMTUsMTEsNy4wNywxMi42QTkuMjQsOS4yNCwwLDAsMSwzMSwyMi43OEMzMSwyNy44Nywy'@; put 'Ny4xOCwzMiwyMi40OCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1Ljc1LDIxLjczYy0uNjUtMS4xNi00LjM4LTcuODEtNC4zOC03LjgxYS44LjgsMCwwLDAtMS40LDBsLTQuMiw3LjQ4LTEuNTktMi40'@; put 'OWEuOC44LDAsMCwwLTEuMzUsMEw5LjM3LDI0LjM1YTQuMzUsNC4zNSwwLDAsMC0uODIsMi42LDQuNDksNC40OSwwLDAsMCwuNSwySDExYTMsMywwLDAsMS0uODMtMiwyLjc4LDIuNzgsMCwwLDEsLjU2LTEuNzNsMi44LTQuMzgsMS42NiwyLjZhLjguOCwwLDAsMCwxLjQxLS4xMiw3LjgyLDcu'@; put 'ODIsMCwwLDEsLjQtLjhMMjAuNjcsMTZsMy42OSw2LjU3YTQuODMsNC44MywwLDAsMSwuNzcsMi43MUE1LDUsMCwwLDEsMjMuNDYsMjloMi4xM2E2LjY4LDYuNjgsMCwwLDAsMS4xNC0zLjc0LDYuNDUsNi40NSwwLDAsMC0xLTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjMsMTYuMzJjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcuNDMsNC40MiwxOS4xNUE5LjMsOS4zLDAsMCww'@; put 'LDMsMjQuMjZjMCw1LjExLDMuODgsOS42NSw4LjY3LDkuNzRIMjIuNDhDMjguMjgsMzQsMzMsMjguNjIsMzMsMjIuNDRBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi4zMlpNMjEuNDgsMzJIMTQuNTRBNC42OCw0LjY4LDAsMCwxLDEwLDI3LjQxYTMuOTEsMy45MSwwLDAsMSwuNzUtMi4zNGwz'@; put 'LjM1LTUuMjFhLjUuNSwwLDAsMSwuODQsMGwxLjc4LDIuNzcsMC0uMDhjLjYzLTEuMTEsNC4yMy03LjQ4LDQuMjMtNy40OGEuNS41LDAsMCwxLC44NywwczMuNiw2LjM4LDQuMjMsNy40OEE1LjgzLDUuODMsMCwwLDEsMjcsMjUuNzZDMjcsMzIsMjIuMSwzMiwyMS40OCwzMloiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZUhvdXJnbGFzcz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4y'@; put 'OSwwLDAsMCwxLS42MmwxLjI4LTFBNi42Nyw2LjY3LDAsMCwwLDI2LDExLjA5VjRoM2ExLDEsMCwwLDAsMC0ySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wxLjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYy'@; put 'bC0xLjI4LDFBNi42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWk0xMiwyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMsMSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwx'@; put 'LDAsMCwwLS42NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjR2Ny4wOWE0LjY2LDQuNjYsMCwwLDEtMS44OCwzLjcybC0xLjI4LDFoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRh'@; put 'MSwxLDAsMCwwLC42NS45NCw0LjY3LDQuNjcsMCwwLDEsMS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFh'@; put 'Ni42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42NCw2LjY0LDAsMCwwLDEuMDktMUgyMi4yM2EzLjY0LDMuNjQsMCwwLDEtLjc4LS4wOWwtLjYyLjQ2aDBhNC42Niw0LjY2LDAsMCwx'@; put 'LTEuMTguNjMsMSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwxQTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMlYyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEs'@; put 'MS4xOC0uNjMsMSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjIuNDVMMjMuNiwySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIu'@; put 'NjksNS4zM2wxLjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFBNi42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu'@; put 'MTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiww'@; put 'LDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42OCw2LjY4LDAsMCwwLDIuNTctNC4xNkE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDl2LjYxYTQuNjYsNC42NiwwLDAsMS0xLjg4LDMuNzJsLTEuMjgsMWgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAs'@; put 'MC0uNjUuOTR2MS4zNGExLDEsMCwwLDAsLjY1Ljk0LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJWMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAs'@; put 'MCwuNjUtLjk0VjE3LjMzYTEsMSwwLDAsMC0uNjUtLjk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0xQTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDIyLjc4YTcuNDUsNy40NSwwLDAsMSwuODktMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5'@; put 'LDUuMzNsMS4yOCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4yNywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAsMCwwLDJIMjlhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik02LjY3LDRoMjJhMSwxLDAsMCwwLDAtMmgtMjJhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTUsMTUuNjdBNi4wNyw2LjA3LDAsMCwwLDI1LDExLjEyVjZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2'@; put 'YTExLjQ4LDExLjQ4LDAsMCwwLTIuOTEsMS43Miw2LjA3LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlBMTEuNDgsMTEuNDgsMCwwLDAsMjIuNTUsMTUuNjdaIiBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuNjcsNEgyMi40NUwyMy42LDJINi42N2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi41MSwyMC4yN2E2LjA3'@; put 'LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlhMTEuNDgsMTEuNDgsMCwwLDAsMi45MS0xLjcybC4zLS4yN2gtLjYyQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5'@; put 'LDZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2QTExLjQ4LDExLjQ4LDAsMCwwLDEyLjUxLDIwLjI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh'@; put 'ZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OS0yaC0xN2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjIuNTUsMjAuMjdhMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5YTExLjQ4LDExLjQ4LDAsMCwwLDIuOTEtMS43MkE2LjI1LDYuMjUsMCwwLDAsMjUsMTEuNTUsNy40Nyw3LjQ3LDAsMCwxLDIyLjUsNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQuNTUsMTEu'@; put 'NDgsMTEuNDgsMCwwLDAsMi45MSwxLjcydjEuMTZhMTEuNDgsMTEuNDgsMCwwLDAtMi45MSwxLjcyLDYuMDcsNi4wNywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MkE2LjA3LDYuMDcsMCwwLDAsMjIuNTUsMjAuMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGwuQ2xyU2hhcGVOb0FjY2Vzcz0oMCxhLmNscklj'@; put 'b25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMjcuMTUsMTVIOC44NUExLjg1LDEuODUsMCwwLDAsNywxNi44NXYyLjI5QTEuODUsMS44NSwwLDAsMCw4Ljg1LDIxSDI3LjE1QTEuODUsMS44NSwwLDAsMCwyOSwxOS4xNVYxNi44NUExLjg1LDEuODUsMCwwLDAsMjcuMTUsMTVabS4yNSw0LjE1YS4yNS4yNSwwLDAsMS0uMjUuMjVI'@; put 'OC44NWEuMjUuMjUsMCwwLDEtLjI1LS4yNVYxNi44NWEuMjUuMjUsMCwwLDEsLjI1LS4yNUgyNy4xNWEuMjUuMjUsMCwwLDEsLjI1LjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEs'@; put 'MCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOS4xNSwyMEg2Ljg1QS44NS44NSwwLDAsMSw2LDE5LjE1VjE2Ljg1QS44NS44NSwwLDAsMSw2Ljg1LDE2SDI5LjE1YS44NS44NSwwLDAsMSwuODUuODV2Mi4yOUEuODUuODUsMCwwLDEsMjkuMTUsMjBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy'@; put 'LWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVPcmdhbml6YXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjggMTguOCAyNi4yIDE4LjggMjYuMiAyMS44OCAyNy44IDIxLjg4IDI3LjggMTcuMiAxOC44IDE3LjIgMTguOCAxNCAxNy4yIDE0IDE3LjIgMTcu'@; put 'MiA4LjIgMTcuMiA4LjIgMjEuODggOS44IDIxLjg4IDkuOCAxOC44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyM0g0YTIsMiwwLDAsMC0yLDJ2NmEyLDIsMCwwLDAsMiwySDE0YTIsMiwwLDAsMCwyLTJW'@; put 'MjVBMiwyLDAsMCwwLDE0LDIzWk00LDMxVjI1SDE0djZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwyM0gyMmEyLDIsMCwwLDAtMiwydjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI1QTIs'@; put 'MiwwLDAsMCwzMiwyM1pNMjIsMzFWMjVIMzJ2NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDEzSDIzYTIsMiwwLDAsMCwyLTJWNWEyLDIsMCwwLDAtMi0ySDEzYTIsMiwwLDAsMC0yLDJ2NkEyLDIsMCww'@; put 'LDAsMTMsMTNabTAtOEgyM3Y2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjkuOCAxOC44IDI2LjIgMTguOCAyNi4yIDIxLjg4IDI3LjggMjEuODggMjcuOCAxNy4yIDE4LjggMTcuMiAxOC44'@; put 'IDE0IDE3LjIgMTQgMTcuMiAxNy4yIDguMiAxNy4yIDguMiAyMS44OCA5LjggMjEuODggOS44IDE4LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIyMyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjEwIiByeD0iMiIg'@; put 'cnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMCIgeT0iMjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAg'@; put 'ICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLGwuQ2xyU2hhcGVCYWxhbmNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwzM0gxMmEx'@; put 'LDEsMCwwLDEsMC0ySDI0YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyMi41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw3SDhBMSwxLDAsMCwxLDgsNUgyOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuOTMsMjQuNzlhNy4yMyw3'@; put 'LjIzLDAsMCwxLTUuODEtMi44OWwtLjYtLjgsMS41OS0xLjIxLjYuOGE1LjI4LDUuMjgsMCwwLDAsOC40MiwwbC42LS44LDEuNTksMS4yMS0uNi44QTcuMjMsNy4yMywwLDAsMSwyNi45MywyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTMwLjUxLDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEwyNi45MywxMi4ybC0yLjg1LDYuNTdhLjguOCwwLDAsMS0xLjQ3LS42NEwyNi4yLDkuODdhLjgzLjgzLDAsMCwxLDEuNDcsMGwzLjU4LDguMjZhLjguOCwwLDAsMS0uNzMsMS4xMloiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuNjgsMjQuNzlBNy4yMyw3LjIzLDAsMCwxLDMuODgsMjEuOWwtLjYtLjhMNC44NiwxOS45bC42LjhhNS4yOCw1LjI4LDAsMCwwLDguNDIsMGwuNi0uOCwxLjU5LDEuMjEtLjYuOEE3LjIz'@; put 'LDcuMjMsMCwwLDEsOS42OCwyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI2LDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEw5LjY4LDEyLjIsNi44NCwxOC43N2EuOC44LDAsMCwxLTEuNDctLjY0'@; put 'TDguOTUsOS44N2EuODMuODMsMCwwLDEsMS40NywwTDE0LDE4LjEzYS44LjgsMCwwLDEtLjczLDEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz4nKSxsLkNsclNoYXBlSWRCYWRnZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjJhNC4y'@; put 'Myw0LjIzLDAsMSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTIyLDRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoOFpNMjAsOUgxNlY0aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMFYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYt'@; put 'LjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMzLDAsMCwxLDYuNCwyLjU5VjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsNkgyNFY4aDRWMzJIOFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDI4LDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2'@; put 'LjQsMi41OVYzMEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTE5LDkuODksMTkuNTYsOUgxNlY0aDRWOC4yNGwyLTMuNDZWNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g0LjY0QTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt'@; put 'LWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMkg4VjhoNFY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1h'@; put 'bGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0wLTYuODZhMi42MywyLjYzLDAsMSwxLTIu'@; put 'NjMsMi42M0EyLjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g4Wk0yMCw5'@; put 'SDE2VjRoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlh'@; put 'OC4zMyw4LjMzLDAsMCwxLDYuNCwyLjU5VjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2Vk'@; put 'IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw2SDIzVjhoNVYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjgsNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksOS44OSwyMSw2LjVWNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAg'@; put 'ICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43'@; put 'YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYz'@; put 'Mkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4x'@; put 'MywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1h'@; put 'bGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDRhMiwyLDAsMCwwLTItMkgxN2EyLDIs'@; put 'MCwwLDAtMiwydjZoNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5'@; put 'LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYz'@; put 'MmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIg'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGwuQ2xyU2hhcGVSZXBlYXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik02LDE0'@; put 'LjE1QTMuMTcsMy4xNywwLDAsMSw5LjE3LDExSDI4LjRsLTQuMjgsNC41NGExLDEsMCwxLDAsMS40NiwxLjM3TDMyLjA5LDEwLDI1LjU4LDMuMDlhMSwxLDAsMSwwLTEuNDYsMS4zN0wyOC40LDlIOS4xN0E1LjE3LDUuMTcsMCwwLDAsNCwxNC4xNXY2LjFsMi0yLjEyWiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMCwyMS44NUEzLjE3LDMuMTcsMCwwLDEsMjYuODMsMjVINy42bDQuMjgtNC41NGExLDEsMCwxLDAtMS40Ni0xLjM3TDMuOTEsMjZsNi41MSw2LjkxYTEsMSwwLDEsMCwxLjQ2LTEuMzdMNy42'@; put 'LDI3SDI2LjgzQTUuMTcsNS4xNywwLDAsMCwzMiwyMS44NXYtNi4xbC0yLDIuMTJaIi8+JyksbC5DbHJTaGFwZUZpbGVHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDM0SDEzYTEsMSwwLDAsMS0x'@; put 'LTFWMTFhMSwxLDAsMCwxLDEtMUgzMWExLDEsMCwwLDEsMSwxVjMzQTEsMSwwLDAsMSwzMSwzNFpNMTQsMzJIMzBWMTJIMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTYiIHk9IjE2IiB3aWR0aD0iMTIiIGhl'@; put 'aWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE2IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC00IiB4PSIxNiIgeT0iMjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTYsMjRWNEgyNFYzYTEsMSwwLDAsMC0xLTFINUExLDEsMCwwLDAsNCwzVjI1YTEsMSwwLDAs'@; put 'MCwxLDFINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMSwxMEgxM2ExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDEtMVYxMUExLDEsMCwwLDAsMzEsMTBaTTI4LDI2SDE2VjI0SDI4Wm0wLTRIMTZWMjBIMjhabTAtNEgxNlYxNkgyOFoiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik02LDI0VjRIMjRWM2ExLDEsMCwwLDAtMS0xSDVBMSwxLDAsMCwwLDQsM1YyNWExLDEsMCwwLDAsMSwxSDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz4nKSxsLkNsclNoYXBlUGFwZXJjbGlwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiBkPSJNOC40MiwzMi42QTYuMyw2LjMsMCwwLDEsNCwzMC43OWwtLjEzLS4xM0E2LjIsNi4yLDAsMCwxLDIsMjYuMjIsNi43Nyw2Ljc3LDAsMCwxLDQsMjEuNEwxOS41LDYuMDdhOC42Nyw4LjY3LDAsMCwxLDEyLjE1LS4zNUE4LDgsMCwwLDEsMzQsMTEuNDRhOSw5LDAs'@; put 'MCwxLTIuNyw2LjM2TDE3LjM3LDMxLjZBMSwxLDAsMSwxLDE2LDMwLjE4TDI5Ljg5LDE2LjM4QTcsNywwLDAsMCwzMiwxMS40NGE2LDYsMCwwLDAtMS43Ni00LjMsNi42Nyw2LjY3LDAsMCwwLTkuMzQuMzVMNS40NSwyMi44MkE0Ljc4LDQuNzgsMCwwLDAsNCwyNi4yMmE0LjIxLDQuMjEsMCww'@; put 'LDAsMS4yNCwzbC4xMy4xM2E0LjY0LDQuNjQsMCwwLDAsNi41LS4yMUwyNS4yMiwxNS45NEEyLjcsMi43LDAsMCwwLDI2LDE0YTIuMzUsMi4zNSwwLDAsMC0uNjktMS42OCwyLjYxLDIuNjEsMCwwLDAtMy42Ni4xM2wtOS4yLDkuMTJhMSwxLDAsMSwxLTEuNDEtMS40MkwyMC4yOCwxMWE0LjYy'@; put 'LDQuNjIsMCwwLDEsNi40OC0uMTNBNC4zMyw0LjMzLDAsMCwxLDI4LDE0YTQuNjgsNC42OCwwLDAsMS0xLjQxLDMuMzRMMTMuMjgsMzAuNThBNi45MSw2LjkxLDAsMCwxLDguNDIsMzIuNloiLz4nKSxsLkNsclNoYXBlU2hyaW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTVIMjIuNDFsOS4yNS05LjI1YTEsMSwwLDAsMC0xLjQxLTEuNDFMMjEsMTMuNTlWNGExLDEsMCwwLDAtMiwwVjE3SDMyYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwwLDAsMmg5LjU5TDQuMzMsMzAuMjVhMSwxLDAsMSwwLDEuNDEsMS40MUwxNSwyMi40MVYzMmExLDEsMCwwLDAsMiwwVjE5WiIvPicpLGwuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5MT0oMCxhLmNsckljb25TVkcpKCc8cGF0'@; put 'aCBkPSJNMTQuNDQsMzEuOTRhNy4zMSw3LjMxLDAsMCwxLTUuNy0xMS44OEw3LjMyLDE4LjY0YTkuMyw5LjMsMCwwLDAsMTMuMSwxMy4xMUwxOSwzMC4zM0E3LjI5LDcuMjksMCwwLDEsMTQuNDQsMzEuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4zNiwxLjY3YTQuMTIsNC4xMiwwLDEsMCw0LjExLDQuMTFBNC4xMiw0LjEyLDAsMCwwLDI1LjM2LDEuNjdabTAsNi4yM2EyLjEyLDIuMTIsMCwxLDEsMi4xMS0yLjEyQTIuMTIsMi4xMiwwLDAsMSwyNS4zNiw3LjlaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41NiwxOC4xOGgtNWExLDEsMCwwLDAtLjI0LjA1bDMuMDktMy41NWEyLjgzLDIuODMsMCwwLDAtLjY5LTQuMzNsLTgtNC42YTEsMSwwLDAsMC0xLjEyLjA4TDkuODMsOS41OEExLDEsMCwwLDAs'@; put 'OS42NiwxMWExLDEsMCwwLDAsLjc5LjM4LDEsMSwwLDAsMCwuNjEtLjIxbDQuMjctMy4zNCwzLjExLDEuNzctNS4wOCw1Ljc4aDBhOS4yOCw5LjI4LDAsMCwwLTQuNTMsMS44M2wxLjQzLDEuNDNBNy4zLDcuMywwLDAsMSwyMC40MiwyOC44MWwxLjQyLDEuNDNhOS4yNyw5LjI3LDAsMCwwLC43'@; put 'Ny0xMC4wNmgyLjgybC0uNzcsNi41MWExLDEsMCwwLDAsLjg4LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi41NiwxOC4xOFptLTYuMzctNy41NiwyLjUyLDEuNDZhLjc5Ljc5LDAsMCwxLC40LjU5LjgxLjgxLDAsMCwxLS4y'@; put 'LjY5TDE5Ljc1LDE3QTkuMTcsOS4xNywwLDAsMCwxNiwxNS40NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0Ljc3LDMxLjk0YTcuMzEsNy4zMSwwLDAsMS01LjctMTEuODhMNy42NSwxOC42NGE5LjMsOS4z'@; put 'LDAsMCwwLDEzLjEsMTMuMTFsLTEuNDItMS40MkE3LjI5LDcuMjksMCwwLDEsMTQuNzcsMzEuOTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjY1LDIuMWEzLjEyLDMuMTIsMCwxLDAsMy4xMSwzLjEyQTMuMTIs'@; put 'My4xMiwwLDAsMCwyNi42NSwyLjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjgxLDE4LjE4SDIxLjQ3cS0uMzEtLjMzLS42Ni0uNjNsNC4zOC00Ljg2YTIuMTQsMi4xNCwwLDAsMC0uNTMtMy4yN0wyMC45LDcu'@; put 'MjNsMCwwTDE3LjA1LDUuMDdhMSwxLDAsMCwwLTEuMTEuMDhMMTEuMTUsOC45YTEsMSwwLDAsMCwxLjIzLDEuNThsNC4yNy0zLjM0LDIuODcsMS42M0wxMy42LDE1LjM5YTkuMzMsOS4zMywwLDAsMC00LjQ0LDEuODJsMS40MiwxLjQzQTcuMyw3LjMsMCwwLDEsMjAuNzUsMjguODFsMS40Mywx'@; put 'LjQzQTkuMjcsOS4yNywwLDAsMCwyMywyMC4xOGgyLjc0bC0uNzcsNi41MWExLDEsMCwwLDAsLjg3LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi44MSwxOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTMiIC8+JyksbC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC4wNiwxMWgtMjRhMSwxLDAsMSwwLDAsMkgxNHY5LjY1czAsMCwwLDBsLTMuNzUsMTBhMSwxLDAsMCwwLC41OCwxLjI5LDEuMTMsMS4xMywwLDAsMCwuMzYuMDYsMSwxLDAs'@; put 'MCwwLC45My0uNjVMMTUuNjIsMjRoNC43NmwzLjUyLDkuMzVhMSwxLDAsMCwwLC45My42NSwxLjEzLDEuMTMsMCwwLDAsLjM2LS4wNiwxLDEsMCwwLDAsLjU4LTEuMjlMMjIsMjIuNjhzMCwwLDAsMFYxM2g4LjA2YTEsMSwwLDEsMCwwLTJaTTIwLDIySDE2VjEzaDRaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMGE0LDQsMCwxLDAtNC00QTQsNCwwLDAsMCwxOCwxMFptMC02YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljk2IiBjeT0iNSIgcj0iMyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEg2YTEsMSwwLDAsMCwwLDJoOHY4LjM2czAsMCwwLDBMMTAuMTEsMzMu'@; put 'MTdhMSwxLDAsMCwwLC42NiwxLjI1LDEuNTUsMS41NSwwLDAsMCwuMjksMCwxLDEsMCwwLDAsMS0uNzFsMy4yOS0xMC44NGg1LjM4TDI0LDMzLjc1YTEsMSwwLDAsMCwxLC43MSwxLjU1LDEuNTUsMCwwLDAsLjI5LDAsMSwxLDAsMCwwLC42Ni0xLjI1TDIyLDIwLjRzMCwwLDAsMFYxMmg4YTEs'@; put 'MSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVTb3J0Qnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LjU0LDEzSDcuNDZhMSwxLDAsMCwxLDAtMkgyOC41NGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuMTcsMTlINy40NmExLDEsMCwwLDEsMC0ySDIxLjE3YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0xMy43NCwyNUg3LjQ2YTEsMSwwLDAsMSwwLTJoNi4yOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksbC5DbHJTaGFwZUNvbGxhcHNlQ2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMjFI'@; put 'M2ExLDEsMCwwLDAtMSwxdjZhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjIyQTEsMSwwLDAsMCwzMywyMVptLTEsNkg0VjIzSDMyWiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuMjJsNS42'@; put 'NS01LjY1YS44MS44MSwwLDAsMCwwLTEuMTQuOC44LDAsMCwwLTEuMTMsMEwxOCwxOGwtNC41Mi00LjUyYS44LjgsMCwwLDAtMS4xMywwLC44MS44MSwwLDAsMCwwLDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xOCwxNC4yMmw1LjY1LTUuNjVhLjgxLjgxLDAsMCwwLDAtMS4xNC44LjgsMCwwLDAtMS4xMywwTDE4LDEyLDEzLjQ4LDcuNDNhLjguOCwwLDAsMC0xLjEzLDAsLjgxLjgxLDAsMCwwLDAsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMjIiIHdpZHRoPSIzMiIgaGVpZ2h0PSI4IiByeD0iMSIgcnk9IjEiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuN2wtNS43OS01Ljc5YTEsMSwwLDAsMSwwLTEu'@; put 'NDEsMSwxLDAsMCwxLDEuNDEsMEwxOCwxNy44N2w0LjM4LTQuMzdhMSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC41LDEyLjIxLDguNzFhMSwxLDAs'@; put 'MCwxLDAtMS40MiwxLDEsMCwwLDEsMS40MSwwTDE4LDExLjY3bDQuMzgtNC4zOGExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGwuQ2xyU2hhcGVFeHBhbmRDYXJkPSgwLGEuY2xySWNvblNWRyko'@; put 'JzxwYXRoIGQ9Ik0zMyw2SDNBMSwxLDAsMCwwLDIsN1YyOWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsMzMsNlpNMzIsMjhINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0xMy40OCwxNS44NiwxOCwxMS4zNGw0LjUyLDQuNTJhLjc3Ljc3LDAsMCwwLC41Ni4yNC44MS44MSwwLDAsMCwuNTctMS4zN0wxOCw5LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTEzLjQ4LDIxLjg2LDE4LDE3LjM0bDQuNTIsNC41MmEuNzcuNzcsMCwwLDAsLjU2LjI0LjgxLjgxLDAsMCwwLC41Ny0xLjM3TDE4LDE1LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDZIM0ExLDEsMCwwLDAsMiw3VjI5YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCwzMyw2Wk0yMy43OSwyMS40MWExLDEsMCwwLDEtMS40MSwwTDE4LDE3bC00LjM4LDQuMzhhMSwxLDAsMCwx'@; put 'LTEuNDEsMCwxLDEsMCwwLDEsMC0xLjQyTDE4LDE0LjIsMjMuNzksMjBBMSwxLDAsMCwxLDIzLjc5LDIxLjQxWm0wLTYuMmExLDEsMCwwLDEtMS40MSwwTDE4LDEwLjgzbC00LjM4LDQuMzhhMSwxLDAsMCwxLTEuNDEsMCwxLDEsMCwwLDEsMC0xLjQyTDE4LDhsNS43OSw1Ljc5QTEsMSwwLDAs'@; put 'MSwyMy43OSwxNS4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZUJyaWVmY2FzZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMjhhMCwwLDAsMCwxLDAsMEg0VjIxLjMyYTcuMSw3LjEsMCwwLDEtMi0xLjQzVjI4YTIsMiww'@; put 'LDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS44OWE2Ljc0LDYuNzQsMCwwLDEtMiwxLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjUsMjIuNGExLDEsMCwwLDAsMS0xVjE1Ljk0SDI0VjE4SDE0djJIMjR2MS40QTEsMSww'@; put 'LDAsMCwyNSwyMi40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMzMsNkgyNFY0LjM4QTIuNDIsMi40MiwwLDAsMCwyMS41NSwyaC03LjFBMi40MiwyLjQyLDAsMCwwLDEyLDQuMzhWNkgzQTEsMSwwLDAsMCwyLDd2OGE1LDUsMCww'@; put 'LDAsNSw1aDN2MS40YTEsMSwwLDAsMCwyLDBWMTUuOTRIMTBWMThIN2EzLDMsMCwwLDEtMy0zVjhIMzJ2N2EzLDMsMCwwLDEtMywzSDI4djJoMWE1LDUsMCwwLDAsNS01VjdBMSwxLDAsMCwwLDMzLDZaTTIyLDZIMTRWNC40M0EuNDUuNDUsMCwwLDEsMTQuNDUsNGg3LjExYS40My40MywwLDAs'@; put 'MSwuNDQuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0zMCwxOEE0LjA2LDQuMDYsMCwwLDAsMzQsMTRWNkgyNFY0LjQzQTIuNDQsMi40NCwwLDAsMCwyMS41NSwyaC03LjFBMi40NCwyLjQ0LDAsMCwwLDEyLDQuNDNWNkgydjhB'@; put 'NC4wNiw0LjA2LDAsMCwwLDYuMDUsMThoNFYxNS45MmgydjUuN2ExLDEsMCwxLDEtMiwwVjIwLjA2SDYuMDZBNi4wNiw2LjA2LDAsMCwxLDIsMTguNDl2OS40NWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTguNDlhNiw2LDAsMCwxLTQuMDYsMS41N0gyOFYxOFpNMTQsNC40M0Eu'@; put 'NDUuNDUsMCwwLDEsMTQuNDUsNGg3LjFhLjQ1LjQ1LDAsMCwxLC40NS40M1Y2SDE0Wk0yNiwyMS42MmExLDEsMCwxLDEtMiwwVjIwLjA2SDE0VjE4SDI0VjE1LjkyaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVDb2xvclBpY2tlcj0o'@; put 'MCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMTAuMDVhNS4wNyw1LjA3LDAsMCwwLC4xLTcuMTdBNS4wNiw1LjA2LDAsMCwwLDI2LDNMMjAuNzgsOC4xNWEyLjEzLDIuMTMsMCwwLDEtMywwbC0uNjctLjY3TDE1LjcyLDguOTIsMjcuMDgsMjAuMjhsMS40Mi0xLjQyLS42Ny0uNjdhMi4x'@; put 'MywyLjEzLDAsMCwxLDAtM1pNMjYuNDQsMTMuOGE0LjA3LDQuMDcsMCwwLDAtMS4wOCwxLjkybC01LjA4LTUuMDhBNC4wNyw0LjA3LDAsMCwwLDIyLjIsOS41Nmw1LjE2LTUuMTdhMy4wOSwzLjA5LDAsMCwxLDQuMzUtLjEsMy4wOSwzLjA5LDAsMCwxLS4xLDQuMzVaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik03LjMsMzEuNTFhMiwyLDAsMSwxLTIuODMtMi44M0wxOC41OCwxNC41N2wtMS40Mi0xLjQxTDMuMDUsMjcuMjdhNCw0LDAsMCwwLS42OCw0LjhMLjg5LDMzLjU1QTEsMSwwLDAsMCwuODksMzVhMSwxLDAsMCwwLDEu'@; put 'NDIsMGwxLjQzLTEuNDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjIuODIsMTguODEsMjEuNDEsMTcuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTMzLjczLDIuMTFhNC4wOSw0LjA5'@; put 'LDAsMCwwLTUuNzYuMUwyMi44MSw3LjM4YTMuMTMsMy4xMywwLDAsMS00LjMuMTFMMTcuMDksOC45MSwyNywxOC43OWwxLjQyLTEuNDJBMy4xOCwzLjE4LDAsMCwxLDI4LjQ2LDEzbDUuMTctNS4xN0E0LjA4LDQuMDgsMCwwLDAsMzMuNzMsMi4xMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjIuMTgsMTYuNzksNy40NiwzMS41MWEyLDIsMCwxLDEtMi44Mi0yLjgzTDE5LjM1LDE0bC0xLjQxLTEuNDFMMy4yMiwyNy4yN2E0LDQsMCwwLDAtLjY4LDQuOEwxLjA2LDMzLjU1YTEsMSwwLDAsMCwwLDEuNDEsMSwxLDAsMCwwLDEuNDEs'@; put 'MGwxLjQ0LTEuNDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjMuNiwxOC4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0'@; put 'aCBkPSJNMjIuNiw0SDIxLjU1YTMuODksMy44OSwwLDAsMC03LjMxLDBIMTMuNEEyLjQxLDIuNDEsMCwwLDAsMTEsNi40VjEwSDI1VjYuNEEyLjQxLDIuNDEsMCwwLDAsMjIuNiw0Wk0yMyw4SDEzVjYuMjVBLjI1LjI1LDAsMCwxLDEzLjI1LDZoMi42OWwuMTItMS4xMUExLjI0LDEuMjQsMCww'@; put 'LDEsMTYuNjEsNGEyLDIsMCwwLDEsMy4xNSwxLjE4bC4wOS44NGgyLjlhLjI1LjI1LDAsMCwxLC4yNS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTMzLjI1LDE4LjA2SDIxLjMzbDIuODQtMi44M2ExLDEsMCwxLDAtMS40Mi0x'@; put 'LjQyTDE3LjUsMTkuMDZsNS4yNSw1LjI1YTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43MS0xLjdsLTIuODQtMi44NEgzMy4yNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMjksMTZoMlY2LjY4QTEu'@; put 'NjYsMS42NiwwLDAsMCwyOS4zNSw1SDI3LjA4VjdIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0yOSwzMUg3VjdIOVY1SDYuNjRBMS42NiwxLjY2LDAsMCwwLDUsNi42N1YzMS4zMkExLjY2LDEuNjYsMCwwLDAsNi42NSwzM0gy'@; put 'OS4zNkExLjY2LDEuNjYsMCwwLDAsMzEsMzEuMzNWMjIuMDZIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxsLkNsclNoYXBlRHJhZ0hhbmRsZT0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxLjUiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE1IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMjEiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTUiIC8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxsLkNsclNoYXBlRmlsdGVyMj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMTFIM2ExLDEsMCwwLDAsMCwy'@; put 'SDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yOCwxN0g4YTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxu'@; put 'PHBhdGggZD0iTTIzLDIzSDEzYTEsMSwwLDAsMCwwLDJIMjNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGwuQ2xyU2hhcGVNb29uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyNy4xOWExLDEsMCwwLDAtMS0u'@; put 'NTZjLS4yOCwwLS41NiwwLS44NSwwQTExLDExLDAsMCwxLDI0LjkyLDUuNjFhMSwxLDAsMCwwLC42MS0xLDEsMSwwLDAsMC0uNjctLjkxLDE0LjcsMTQuNywwLDAsMC01LS44NywxNS4xMiwxNS4xMiwwLDAsMCwwLDMwLjI0LDE0Ljc4LDE0Ljc4LDAsMCwwLDExLTQuODFBMSwxLDAsMCwwLDMx'@; put 'LDI3LjE5Wk0xOS44OSwzMS4xMmExMy4xMiwxMy4xMiwwLDAsMSwwLTI2LjI0LDExLjgxLDExLjgxLDAsMCwxLDIsLjE2LDEzLDEzLDAsMCwwLDUuNzIsMjMuNTNBMTIuNzUsMTIuNzUsMCwwLDEsMTkuODksMzEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MSIgLz5cbjxwYXRoIGQ9Ik0yOS4yLDI2LjcyQTEyLjA3LDEyLjA3LDAsMCwxLDIyLjksNC40NCwxMy42OCwxMy42OCwwLDAsMCwxOS40OSw0YTE0LDE0LDAsMCwwLDAsMjgsMTMuODIsMTMuODIsMCwwLDAsMTAuOS01LjM0QTExLjcxLDExLjcxLDAsMCwxLDI5LjIsMjYuNzJaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVTdW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDYuMzFhMSwxLDAsMCwwLDEtMVYxLjkxYTEsMSwwLDAsMC0yLDB2My40QTEsMSwwLDAsMCwxOCw2LjMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMTgsMjkuNjlhMSwxLDAsMCwwLTEsMXYzLjRhMSwxLDAsMCwwLDIsMHYtMy40QTEsMSwwLDAsMCwxOCwyOS42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTguMzIs'@; put 'OS43NEExLDEsMCwwLDAsOSwxMGExLDEsMCwwLDAsLjcxLS4yOSwxLDEsMCwwLDAsMC0xLjQyTDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjY4LDI2LjI2YTEsMSwwLDEsMC0x'@; put 'LjQyLDEuNDJsMi40MSwyLjRhMSwxLDAsMCwwLC43MS4zLDEsMSwwLDAsMCwuNy0uMywxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTYuMzEsMThhMSwxLDAsMCwwLTEtMUgxLjkxYTEsMSwwLDAsMCwwLDJo'@; put 'My40QTEsMSwwLDAsMCw2LjMxLDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTM0LjA5LDE3aC0zLjRhMSwxLDAsMSwwLDAsMmgzLjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC02IiAvPjxwYXRoIGQ9Ik04LjMyLDI2LjI2bC0yLjQsMi40MWExLDEsMCwwLDAsLjcsMS43MSwxLDEsMCwwLDAsLjcxLS4zbDIuNDEtMi40YTEsMSwwLDEsMC0xLjQyLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcsMTBh'@; put 'MSwxLDAsMCwwLC43MS0uMjlsMi40LTIuNDFhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MSwwbC0yLjQxLDIuNGExLDEsMCwwLDAsMCwxLjQyQTEsMSwwLDAsMCwyNywxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxwYXRoIGQ9Ik0xOC4x'@; put 'Myw3Ljc1YTEwLjEzLDEwLjEzLDAsMSwwLDEwLDEwLjEzQTEwLjA4LDEwLjA4LDAsMCwwLDE4LjEzLDcuNzVabTAsMTguMjVhOC4xMyw4LjEzLDAsMSwxLDgtOC4xMkE4LjA4LDguMDgsMCwwLDEsMTguMTMsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIg'@; put 'Lz48cGF0aCBkPSJNMTgsNi40MmExLDEsMCwwLDAsMS0xVjEuOTFhMSwxLDAsMCwwLTIsMFY1LjQyQTEsMSwwLDAsMCwxOCw2LjQyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjkuNThhMSwxLDAsMCwwLTEsMXYzLjUxYTEsMSwwLDAs'@; put 'MCwyLDBWMzAuNThBMSwxLDAsMCwwLDE4LDI5LjU4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNOC40LDkuODFBMSwxLDAsMCwwLDkuODEsOC40TDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMjcuNiwyNi4xOWExLDEsMCwwLDAtMS40MSwxLjQxbDIuNDgsMi40OGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNNi40MiwxOGExLDEsMCwwLDAtMS0x'@; put 'SDEuOTFhMSwxLDAsMCwwLDAsMkg1LjQyQTEsMSwwLDAsMCw2LjQyLDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzQuMDksMTdIMzAuNThhMSwxLDAsMCwwLDAsMmgzLjUxYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC02IiAvPjxwYXRoIGQ9Ik04LjQsMjYuMTksNS45MiwyOC42N2ExLDEsMCwwLDAsMS40MSwxLjQxTDkuODEsMjcuNkExLDEsMCwwLDAsOC40LDI2LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcuNiw5Ljgx'@; put 'bDIuNDgtMi40OGExLDEsMCwwLDAtMS40MS0xLjQxTDI2LjE5LDguNEExLDEsMCwwLDAsMjcuNiw5LjgxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOCIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIxMCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtOSIgLz4nKSxsLkNsclNoYXBlV2FuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LjEsNCwzMS43MSwxLjZhMS44MywxLjgzLDAsMCwwLTEuMzEtLjU0aDBhMi4wNSwyLjA1LDAsMCwwLTEuNDUu'@; put 'NjJMMS43NiwyOS4yM0EyLDIsMCwwLDAsMS42OCwzMmwyLjQsMi40M0ExLjgzLDEuODMsMCwwLDAsNS4zOSwzNWgwYTIuMDUsMi4wNSwwLDAsMCwxLjQ1LS42MkwzNCw2Ljc5QTIsMiwwLDAsMCwzNC4xLDRaTTUuNDIsMzIuOTMsMy4xNiwzMC42NWgwTDI0LjExLDkuNDNsMi4yNSwyLjI4Wk0z'@; put 'Mi42MSw1LjM5bC01LjEyLDUuMThMMjUuMjQsOC4yOWw1LjEzLTUuMiwyLjI1LDIuMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjUzLDIwLjQ3bDIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMtMS4xM2wt'@; put 'Mi4wOSwyLjA5LTIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMsMS4xM2wyLjA5LDIuMDktMi4wOSwyLjA5YS44LjgsMCwwLDAsMS4xMywxLjEzbDIuMDktMi4wOSwyLjA5LDIuMDlhLjguOCwwLDAsMCwxLjEzLTEuMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0Ljc4LDYuNTFhLjguOCwwLDAsMCwxLjEzLDBMMTcuNCw1bDEuNDksMS40OUEuOC44LDAsMCwwLDIwLDUuMzhMMTguNTQsMy44OSwyMCwyLjRhLjguOCwwLDAsMC0xLjEzLTEuMTNMMTcuNCwyLjc2LDE1LjkxLDEuMjdBLjguOCwwLDEsMCwx'@; put 'NC43OCwyLjRsMS40OSwxLjQ5TDE0Ljc4LDUuMzhBLjguOCwwLDAsMCwxNC43OCw2LjUxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik04LjMzLDE1LjI2YS44LjgsMCwwLDAsMS4xMywwbDEuMTYtMS4xNiwxLjE2'@; put 'LDEuMTZhLjguOCwwLDEsMCwxLjEzLTEuMTNMMTEuNzYsMTNsMS4xNi0xLjE2YS44LjgsMCwxLDAtMS4xMy0xLjEzbC0xLjE2LDEuMTZMOS40NiwxMC42OGEuOC44LDAsMSwwLTEuMTMsMS4xM0w5LjQ5LDEzLDguMzMsMTQuMTNBLjguOCwwLDAsMCw4LjMzLDE1LjI2WiIvPicpLGwuQ2xyU2hh'@; put 'cGVDdXJzb3JNb3ZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC44NSwxMi44OWExLDEsMCwwLDAtMS40MiwwLDEsMSwwLDAsMCwwLDEuNDFMMzAuMTQsMTdIMTlWNS44NmwyLjY5LDIuN2ExLDEsMCwwLDAsMS40MSwwLDEsMSwwLDAsMCwwLTEuNDJMMTgsMiwxMi44OSw3LjE1YTEs'@; put 'MSwwLDAsMC0uMjkuNzEsMSwxLDAsMCwwLDEuNzEuN0wxNyw1Ljg2VjE3SDUuODZsMi43LTIuNjlhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MiwwTDIsMThsNS4xNCw1LjExYTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43LTEuNzFMNS44NiwxOUgxN1YzMC4xNGwtMi42OS0y'@; put 'LjdhMSwxLDAsMCwwLTEuNzEuNywxLDEsMCwwLDAsLjI5LjcxTDE4LDM0bDUuMTEtNS4xNGExLDEsMCwwLDAsMC0xLjQyLDEsMSwwLDAsMC0xLjQxLDBMMTksMzAuMTRWMTlIMzAuMTRsLTIuNywyLjY5YTEsMSwwLDAsMCwuNywxLjcxLDEsMSwwLDAsMCwuNzEtLjI5TDM0LDE4WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZUNsb25lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LDZIMjJ2NGgyVjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjIySDZaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTJIMTRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRBMiwyLDAsMCwwLDMwLDEyWm0wLDE4SDE0VjE0SDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMSAyOCAyMyAyOCAyMyAyMyAyOCAyMyAyOCAyMSAyMyAyMSAyMyAxNiAyMSAxNiAyMSAyMSAxNiAyMSAxNiAyMyAyMSAyMyAyMSAyOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGgg'@; put 'ZD0iTTI0LDEwVjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjEyYTIsMiwwLDAsMSwyLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxMkgxNGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAs'@; put 'MCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEEyLDIsMCwwLDAsMzAsMTJaTTI4LDIzSDIzdjVIMjFWMjNIMTZWMjFoNVYxNmgydjVoNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZURldGFpbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGgg'@; put 'ZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDE0SDI3YTEsMSwwLDAsMCww'@; put 'LTJIOWExLDEsMCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTksMThIMjdhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0'@; put 'aCBkPSJNOSwyMkgxOWExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCww'@; put 'LDAsMzIsNlpNMTksMjJIOWExLDEsMCwwLDEsMC0ySDE5YTEsMSwwLDAsMSwwLDJabTgtNEg5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMlptMC00SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg'@; put 'Lz4nKSxsLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMiIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNiIgLz4nKSxsLkNsclNoYXBlRXJhc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNS42MiwxMmEyLjgyLDIuODIsMCwwLDAtLjg0LTJMMjcuNDksMi42NWEyLjksMi45LDAsMCwwLTQsMEwyLjgzLDIzLjI4YTIuODQsMi44NCwwLDAsMCwwLDRMNy41MywzMkgz'@; put 'YTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMkgxNi43NGwxOC0xOEEyLjgyLDIuODIsMCwwLDAsMzUuNjIsMTJaTTEzLjkxLDMySDEwLjM2TDQuMjUsMjUuODlhLjg0Ljg0LDAsMCwxLDAtMS4xOWw1LjUxLTUuNTIsOC40OSw4LjQ4Wk0zMy4zNywxMi41NCwxOS42NiwyNi4yNWwtOC40'@; put 'OC04LjQ5LDEzLjctMTMuN2EuODYuODYsMCwwLDEsMS4xOSwwbDcuMyw3LjI5YS44Ni44NiwwLDAsMSwuMjUuNkEuODIuODIsMCwwLDEsMzMuMzcsMTIuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgsMzJIMTUuMzNMMTksMjgu'@; put 'MzdsLTkuOS05LjlMMy41NCwyNGExLjgzLDEuODMsMCwwLDAsMCwyLjZMOSwzMkgzYTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTM0LjA4LDEwLjY1bC03LjMtNy4zYTEuODMsMS44Myww'@; put 'LDAsMC0yLjYsMEwxMC40NywxNy4wNmw5LjksOS45TDM0LjA4LDEzLjI1QTEuODUsMS44NSwwLDAsMCwzNC4wOCwxMC42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZUxhbmRzY2FwZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJN'@; put 'MzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTksMjJhLjgyLjgyLDAsMCwwLC41NS0u'@; put 'MjEuOC44LDAsMCwwLDAtMS4xM0w3LjgzLDE4LjhIMjguMTdsLTEuNzIsMS44NmEuOC44LDAsMCwwLDAsMS4xM0EuODIuODIsMCwwLDAsMjcsMjJhLjc4Ljc4LDAsMCwwLC41OC0uMjZMMzEuMDksMThsLTMuNDctMy43NGEuNzkuNzksMCwwLDAtMS4xMywwLC44LjgsMCwwLDAsMCwxLjEzbDEu'@; put 'NzIsMS44Nkg3LjgzbDEuNzItMS44NmEuOC44LDAsMCwwLDAtMS4xMy43OS43OSwwLDAsMC0xLjEzLDBMNC45MSwxOGwzLjQ3LDMuNzRBLjc4Ljc4LDAsMCwwLDksMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiww'@; put 'LDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTI3Ljc3LDIxLjg4YTEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjcsMSwxLDAsMCwxLS4wNi0xLjQxTDI3LjcxLDE5SDguMjlMOS43LDIwLjUyYTEsMSwwLDAsMS0uMDYs'@; put 'MS40MUExLDEsMCwwLDEsOSwyMi4yYTEsMSwwLDAsMS0uNzMtLjMyTDQuNjQsMThsMy41OS0zLjg4QTEsMSwwLDAsMSw5LjcsMTUuNDhMOC4yOSwxN0gyNy43MUwyNi4zLDE1LjQ4YTEsMSwwLDAsMSwxLjQ3LTEuMzZMMzEuMzYsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVQYXN0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMTJIMjZ2Mmg0djJoMlYxNEEyLDIsMCwwLDAsMzAsMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRo'@; put 'PSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMEgyOHYyaDJhMiwyLDAsMCwwLDItMlYyNkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwy'@; put 'MlY2YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIsMiwwLDAsMCwyLDJIMjJBMiwyLDAsMCwwLDI0LDIyWk02LDZIMjJWMjJINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjIwIiB5PSIzMCIgd2lkdGg9IjYiIGhlaWdo'@; put 'dD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTMwLDEySDI2djJoNHYy'@; put 'aDJWMTRBMiwyLDAsMCwwLDMwLDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMwSDI4'@; put 'djJoMmEyLDIsMCwwLDAsMi0yVjI2SDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cmVjdCB4PSI0IiB5PSI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48'@; put 'cmVjdCB4PSIyMCIgeT0iMzAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIg'@; put 'Lz4nKSxsLkNsclNoYXBlUG9ydHJhaXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LjM0LDI2LjQ1YS44LjgsMCwwLDAtMS4xMywwLC43OS43OSwwLDAsMCwwLDEuMTNMMTgsMzEuMDlsMy43NC0zLjQ3YS43OS43OSwwLDAsMCwuMDUtMS4xMy44LjgsMCwwLDAtMS4xMywwTDE4Ljgs'@; put 'MjguMTdWNy44M2wxLjg2LDEuNzJhLjguOCwwLDEsMCwxLjA4LTEuMTdMMTgsNC45MSwxNC4yNiw4LjM4YS43OS43OSwwLDAsMCwwLDEuMTMuOC44LDAsMCwwLDEuMTMsMEwxNy4yLDcuODNWMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0'@; put 'aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAs'@; put 'Niw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0yMC41MiwyNi4zYTEsMSwwLDAsMSwxLjM2LDEuNDdMMTgsMzEuMzZsLTMuODgtMy41OWExLDEsMCwwLDEsMS4zNi0xLjQ3TDE3LDI3LjcxVjguMjlMMTUuNDgsOS43YTEsMSwwLDAsMS0xLjM2'@; put 'LTEuNDdMMTgsNC42NGwzLjg4LDMuNTlhMSwxLDAsMCwxLC4wNSwxLjQxLDEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjZMMTksOC4yOVYyNy43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZVRyZWVWaWV3PSgwLGEuY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0xNSwzMkgxMWExLDEsMCwwLDEtMS0xVjI3YTEsMSwwLDAsMSwxLTFoNGExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDE1LDMyWm0tMy0yaDJWMjhIMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJN'@; put 'MTUsMTZIMTFhMSwxLDAsMCwwLTEsMXYxLjJINS44VjEySDdhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCw3LDZIM0ExLDEsMCwwLDAsMiw3djRhMSwxLDAsMCwwLDEsMUg0LjJWMjkuOGg2LjM2YS44LjgsMCwwLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSww'@; put 'LDAsMCwxLTFWMTdBMSwxLDAsMCwwLDE1LDE2Wk00LDhINnYySDRaTTE0LDIwSDEyVjE4aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQsOWExLDEsMCwwLDAtMS0xSDEwdjJIMzNBMSwxLDAsMCwwLDM0LDlaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMThIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMzLDI4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxyZWN0IHg9IjEwIiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxNkgxMWExLDEsMCwwLDAt'@; put 'MSwxdjEuMkg1LjhWMTJIN2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDcsNkgzQTEsMSwwLDAsMCwyLDd2NGExLDEsMCwwLDAsMSwxSDQuMlYyOS44SDExYS44LjgsMCwxLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTdBMSwxLDAsMCww'@; put 'LDE1LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOEgxMHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMywxOEgxOHYySDMzYTEsMSwwLDAsMCww'@; put 'LTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMywyOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGwuQ2xyU2hhcGVDdXJzb3JIYW5kR3JhYj0oMCxhLmNscklj'@; put 'b25TVkcpKCc8cGF0aCBkPSJNMjguMDksOS43NGE0LDQsMCwwLDAtMS4xNi4xOWMtLjE5LTEuMjQtMS41NS0yLjE4LTMuMjctMi4xOEE0LDQsMCwwLDAsMjIuMTMsOCwzLjM3LDMuMzcsMCwwLDAsMTksNi4zYTMuNDUsMy40NSwwLDAsMC0yLjg3LDEuMzIsMy42NSwzLjY1LDAsMCwwLTEuODkt'@; put 'LjUxQTMuMDUsMy4wNSwwLDAsMCwxMSw5Ljg5di45MWMtMS4wNi40LTQuMTEsMS44LTQuOTEsNC44NHMuMzQsOCwyLjY5LDExLjc4YTI1LjIxLDI1LjIxLDAsMCwwLDUuOSw2LjQxLjkuOSwwLDAsMCwuNTMuMTdIMjUuNTVhLjkyLjkyLDAsMCwwLC41NS0uMTksMTMuMTMsMTMuMTMsMCwwLDAs'@; put 'My43NS02LjEzQTI1LjgsMjUuOCwwLDAsMCwzMS40MSwxOHYtNS41QTMuMDgsMy4wOCwwLDAsMCwyOC4wOSw5Ljc0Wk0yOS42MSwxOGEyNCwyNCwwLDAsMS0xLjQ3LDkuMTVBMTIuNDYsMTIuNDYsMCwwLDEsMjUuMiwzMi4ySDE1LjQ3YTIzLjc1LDIzLjc1LDAsMCwxLTUuMi01LjcyYy0yLjM3'@; put 'LTMuODYtMy04LjIzLTIuNDgtMTAuMzlBNS43LDUuNywwLDAsMSwxMSwxMi43NnY3LjY1YS45LjksMCwwLDAsMS44LDBWOS44OWMwLS40Ny41OS0xLDEuNDYtMXMxLjQ5LjUyLDEuNDksMXY1LjcyaDEuOFY4LjgxYzAtLjI4LjU4LS43MSwxLjQ2LS43MXMxLjUzLjQ4LDEuNTMuNzV2Ni44OWgx'@; put 'LjhWMTBsLjE3LS4xMmEyLjEsMi4xLDAsMCwxLDEuMTgtLjMyYy45MywwLDEuNS40NCwxLjUuNjhsMCw2LjVIMjdWMTEuODdhMS45MSwxLjkxLDAsMCwxLDEuMTItLjMzYy44NiwwLDEuNTIuNTEsMS41Mi45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAv'@; put 'PicpLGwuQ2xyU2hhcGVDdXJzb3JIYW5kT3Blbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDYsOC41N0EzLjExLDMuMTEsMCwwLDAsMjcsNS43NWEzLjE5LDMuMTksMCwwLDAtNC42Ni0yLjY0LDMuMjksMy4yOSwwLDAsMC02LjQyLS43NiwzLjIzLDMuMjMsMCwwLDAtMS42Ni0u'@; put 'NDZBMy4yNywzLjI3LDAsMCwwLDExLDUuMThWMTcuODRjLTEuMjgtMS42LTIuNTMtMy4xOC0yLjcyLTMuNDVBMy4xOSwzLjE5LDAsMCwwLDUuNTYsMTIuOWEzLjM3LDMuMzcsMCwwLDAtMy40NywzLjQ4QzIuMTgsMTguMTgsNS42NiwyNC41NCw4LDI4YzMuNTQsNS4yNCw2LjkyLDYsNy4wNyw2'@; put 'bC4xOCwwSDI1LjU5YS45Mi45MiwwLDAsMCwuNTUtLjE5LDEzLjEzLDEzLjEzLDAsMCwwLDMuNzUtNi4xM2MxLTMuMDksMS41My03LjUzLDEuNTgtMTMuNTZaTTI4LjE4LDI3LjEyYTEyLjQ2LDEyLjQ2LDAsMCwxLTIuOTQsNS4wOEgxNS4zM2MtLjQ3LS4xNC0zLjA3LTEuMS01Ljg3LTUuMjVT'@; put 'My45NCwxNy4yNywzLjg5LDE2LjI5YTEuNSwxLjUsMCwwLDEsLjQ1LTEuMTMsMS41MiwxLjUyLDAsMCwxLDEuMTQtLjQ2LDEuNDMsMS40MywwLDAsMSwxLjMyLjcxYy4yOS40MywyLjM2LDMsMy41Nyw0LjUzTDEyLjgsMTguM1Y1LjE4YTEuNDgsMS40OCwwLDEsMSwyLjk1LDBWMTYuMzJoMS44'@; put 'di0xM2ExLjUxLDEuNTEsMCwwLDEsMywwVjE2LjQ1aDEuOFY2YTEuNDMsMS40MywwLDEsMSwyLjg1LDBWMTcuNDRIMjdWOC41NGExLjMzLDEuMzMsMCwwLDEsMi42NSwwdjUuNTVDMjkuNjIsMjAsMjkuMTQsMjQuMjEsMjguMTgsMjcuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlRmlsZVppcD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMzAuMlYxMmwtOC4xLTcuOUg3LjhDNi44LDQuMSw2LDQuOSw2LDZjMCwwLDAsMCwwLDB2MjQuMmMwLDEsMC43LDEuOCwxLjcsMS44YzAsMCwwLjEsMCwwLjEsMGgyMC4z'@; put 'XG5cdFx0YzEsMCwxLjgtMC43LDEuOC0xLjdDMzAsMzAuMywzMCwzMC4yLDMwLDMwLjJ6IE0yMiw2LjZsNS42LDUuNEgyMlY2LjZ6IE0yOCwzMEg3LjlMOCw2aDEydjhoOFYzMHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xMiwyNGMw'@; put 'LDEuNywxLjMsMywzLDNzMy0xLjMsMy0zdi00aC02VjI0eiBNMTMuNCwyNHYtMi42aDMuMlYyNGMwLjEsMC45LTAuNiwxLjctMS41LDEuN2MtMC45LDAuMS0xLjctMC42LTEuNy0xLjVcblx0XHRDMTMuNCwyNC4yLDEzLjQsMjQuMSwxMy40LDI0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LjIsOWMwLTAuNi0wLjQtMS0xLTFIMTV2MmgyLjJDMTcuOCwxMCwxOC4yLDkuNiwxOC4yLDl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTIuNywxMGMtMC42LDAtMSwwLjQt'@; put 'MSwxczAuNCwxLDEsMUgxNXYtMkgxMi43eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTE3LjIsMTRjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMTV2MkgxNy4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTUiIC8+PHBhdGggZD0iTTExLjcsMTVjMCwwLjYsMC40LDEsMSwxSDE1di0yaC0yLjNDMTIuMiwxNCwxMS43LDE0LjQsMTEuNywxNXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNy4yLDE4YzAuNiwwLDEtMC40LDEtMXMtMC40'@; put 'LTEtMS0xSDE1djJIMTcuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0xNSwyNS42YzAuOSwwLDEuNi0wLjcsMS42LTEuNnYtMi42aC0zLjJWMjRDMTMuNCwyNC45LDE0LjEsMjUuNiwxNSwyNS42eiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOSw0SDcuOEM2LjgsNCw2LDQuOSw2LDUuOXYyNC4yYzAsMSwwLjgsMS45LDEuOCwxLjloMjAuM2MxLDAsMS44LTAuOSwxLjgtMS45VjExLjlMMjEuOSw0eiBNMTgsMjRjMCwxLjctMS4zLDMtMywzXG5cdFx0cy0zLTEuMy0zLTN2'@; put 'LTRoNlYyNHogTTE3LjIsMTJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2MmgyLjJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2LTJoLTIuMmMtMC42LDAtMS0wLjQtMS0xXG5cdFx0czAuNC0xLDEtMUgxNXYtMmgtMi4yYy0wLjYsMC0xLTAuNC0xLTFzMC40LTEsMS0xSDE1'@; put 'VjhoMi4yYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1djJIMTcuMnogTTIxLjksMTJWNi41bDUuNyw1LjVIMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZUZpbHRlck9mZj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJN'@; put 'MzQsNi40QzM0LDUuNiwzMy4zLDUsMzIuNSw1SDEwLjNsMiwySDMydjAuNmwtOS42LDkuNmwxLjQsMS40TDMzLjQsOUMzMy44LDguNiwzNCw4LjEsMzQsNy42VjYuNUMzNCw2LjUsMzQsNi40LDM0LDYuNHoiXG5cdFx0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'IiAvPjxwYXRoIGQ9Ik0yLjcsM2wyLDJoLTFDMi45LDQuOSwyLjEsNS41LDIsNi4zdjEuMWMwLDAuNSwwLjIsMSwwLjYsMS40TDE0LDIwLjJ2MTAuM2wxLjksMC44VjE5LjRMNCw3LjVWN2gyLjdMMjAsMjAuM3YxMi45bDIsMC44XG5cdFx0YzAsMCwwLDAsMC0wLjFWMjIuM2wxMC4xLDEwLjFs'@; put 'MS40LTEuNEw0LjEsMS42TDIuNywzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIzLjksMTguNkwxMC4zLDUuMWgyMi4yQzMzLjMsNSwzNCw1LjYsMzQsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LTAuMiwxLTAuNiwxLjRMMjMu'@; put 'OSwxOC42eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMuNSwzMUw0LjEsMS42TDIuNiwzbDIuMSwyLjFIMy41QzIuNyw1LDIsNS42LDIsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LDAuMiwxLDAuNiwxLjRMMTQsMjAuNXYxMC4xbDgs'@; put 'My40VjIyLjRcblx0bDEwLjEsMTAuMUwzMy41LDMxeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlUmVjeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi40LDE3LjRjMC4yLDAuMSwwLjMsMC4xLDAuNSwwLjFjMC4yLDAsMC40'@; put 'LTAuMSwwLjUtMC4xbDctNC4xYzAuMy0wLjIsMC41LTAuNSwwLjUtMC45YzAtMC40LTAuMi0wLjctMC41LTAuOUwxMS45LDEwXG5cdFx0TDE0LDYuMmMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC4zYzAsMCwwLDAsMC4x'@; put 'LDBjMC40LTAuMywwLjUtMC45LDAuMy0xLjNcblx0XHRjLTAuNi0xLTEuNC0xLjktMi40LTIuNGMtMy0xLjYtNi43LTAuNi04LjMsMi40TDkuNiw5LjljLTAuMywwLjUtMC4xLDEuMSwwLjMsMS40bDIsMS4ybC00LDIuNFY4LjJjMC0wLjYtMC40LTEtMS0xXG5cdFx0QzYuNCw3LjMsNiw3Ljcs'@; put 'Niw4LjN2OC4zQzYsMTYuOSw2LjIsMTcuMiw2LjQsMTcuNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4xLDIxbC0zLjUtNi4yYy0wLjEtMC4yLTAuNC0wLjQtMC42LTAuNWMtMC4zLTAuMS0wLjUsMC0wLjgsMC4xbC0yLjIsMS4z'@; put 'VjExbDUuNSwzLjNjMC4xLDAsMC4xLDAuMSwwLjIsMC4xXG5cdFx0YzAuNSwwLjIsMS4xLDAsMS4zLTAuNWMwLjItMC41LDAtMS4xLTAuNS0xLjNsLTctNC4yYy0wLjMtMC4yLTAuNy0wLjItMSwwQzIzLjEsOC41LDIzLDguOCwyMyw5LjJ2OC4zYzAsMC40LDAuMSwwLjgsMC40LDFcblx0XHRj'@; put 'MC4zLDAuMiwwLjcsMC4yLDEsMGwyLjktMS43bDMsNS4zYzAuNywxLjMsMC43LDIuOCwwLDQuMWMtMC42LDEuMi0xLjksMS45LTMuMiwxLjloLTAuOWMtMC41LDAtMS4yLDAuNC0xLjIsMVxuXHRcdGMwLjEsMC42LDAuNiwxLDEuMiwxaDAuOWMyLjEsMCw0LTEuMSw1LTIuOUMzMy4yLDI1LjIs'@; put 'MzMuMiwyMi45LDMyLjEsMjF6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNCwyOC4ybC03LTQuMmMtMC4zLTAuMi0wLjctMC4yLTEsMGMtMC4zLDAuMi0wLjQsMC41LTAuNCwwLjl2My4zSDkuMWMtMS41LTAuMS0yLjktMC45LTMu'@; put 'Ni0yLjNcblx0XHRjLTAuOC0xLjQtMC44LTMuMiwwLTQuNmMwLjMtMC41LDAuMS0xLjEtMC40LTEuNGMtMC41LTAuMy0xLjEtMC4xLTEuNCwwLjRjLTEuMiwyLjEtMS4xLDQuNiwwLjEsNi42QzQuOSwyOC44LDcsMzAsOS4yLDMwSDE1XG5cdFx0YzAuNiwwLDEtMC40LDEtMXYtMi40bDQsMi40'@; put 'bC01LjYsMy4zYy0wLjMsMC4yLTAuNSwwLjUtMC41LDAuOWMwLDAuNiwwLjUsMSwxLDFjMC4yLDAsMC4zLTAuMSwwLjUtMC4ybDctNC4yXG5cdFx0YzAuMi0wLjEsMC4zLTAuMiwwLjQtMC40QzIzLjEsMjksMjIuOSwyOC40LDIyLjQsMjguMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMC44LDMuMWMtMy0xLjYtNi43LTAuNi04LjQsMi40bC0yLjIsMy44bC0yLTEuMUM4LjIsOCw4LDgsNy45LDhDNy40LDgsNyw4LjQsNyw4Ljl2Ny4yYzAsMC4zLDAuMSwwLjYsMC40LDAuOFxuXHRcdGMwLjEsMC4xLDAuMywwLjEsMC40LDAu'@; put 'MWMwLjIsMCwwLjMsMCwwLjQtMC4xbDYuMy0zLjZjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhjMC0wLjMtMC4yLTAuNi0wLjQtMC44TDEyLDEwLjNsMi4yLTMuOFxuXHRcdGMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC40'@; put 'YzAuNS0wLjMsMC42LTAuOSwwLjQtMS40QzIyLjYsNC41LDIxLjgsMy42LDIwLjgsMy4xeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMiwyMS4xbC0zLTUuM2wyLjMtMS4zYzAuMy0wLjIsMC40LTAuNCwwLjQtMC44YzAtMC4zLTAuMi0w'@; put 'LjYtMC40LTAuOGwtNi4yLTMuNmMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFcblx0XHRjLTAuNSwwLTAuOSwwLjQtMC45LDAuOXY3LjJjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMiwwLDAuMy0wLjEsMC40LTAuMWwyLjItMS4zbDMsNS4zXG5cdFx0'@; put 'YzAuNywxLjIsMC43LDIuOCwwLDRjLTAuNywxLjItMS45LDEuOS0zLjIsMS45aC0wLjljLTAuNiwwLTEsMC40LTEsMWMwLDAuNiwwLjQsMSwxLDFoMC45YzIuMSwwLDQtMS4xLDUtM1xuXHRcdEMzMy4yLDI1LjMsMzMuMiwyMywzMi4yLDIxLjF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMS43LDI4LjRsLTYuMi0zLjZjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xYy0wLjUsMC0wLjksMC40LTAuOSwwLjl2Mi42SDkuM2MtMS41LDAtMi45LTAuOC0zLjYtMi4xXG5cdFx0Yy0wLjgtMS40LTAuOC0zLjEsMC00LjVjMC4zLTAuNSwwLjEt'@; put 'MS4xLTAuNC0xLjRjLTAuNS0wLjMtMS4xLTAuMS0xLjQsMC40Yy0xLjIsMi0xLjIsNC41LDAsNi41YzEuMSwxLjksMy4xLDMuMSw1LjQsMy4xaDQuOHYyLjZcblx0XHRjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMSwwLDAuMywwLDAuNC0wLjFsNi4z'@; put 'LTMuNmMwLjMtMC4yLDAuNC0wLjQsMC40LTAuOFxuXHRcdEMyMi4xLDI4LjgsMjEuOSwyOC41LDIxLjcsMjguNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksbC5DbHJTaGFwZVRyZWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjYsMTEuN0My'@; put 'OS4yLDUuOCwyNCwxLjcsMTgsMS43Yy03LjIsMC0xMyw1LjgtMTMsMTNjMCw2LjgsNS4zLDEyLjQsMTIsMTIuOXY1YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTF2LTV2LTJWMjJcblx0YzAsMCwwLDAsMC0wLjF2LTMuNmw0LjctNC43YzAuNC0wLjQsMC40LTEsMC0xLjRjLTAuNC0wLjQtMS0w'@; put 'LjQtMS40LDBMMTksMTUuNnYtM2wtMy4zLTMuM2MtMC40LTAuNC0xLTAuNC0xLjQsMFxuXHRjLTAuNCwwLjQtMC40LDEsMCwxLjRsMi43LDIuN3Y2LjJsLTMuOC0zLjhjLTAuNC0wLjQtMS0wLjQtMS40LDBjLTAuNCwwLjQtMC40LDEsMCwxLjRsNS4yLDUuMnYzLjJjLTUuNi0wLjUtMTAtNS4y'@; put 'LTEwLTEwLjlcblx0YzAtNi4xLDQuOS0xMSwxMS0xMXMxMSw0LjksMTEsMTFjMCw0LjktMy4zLDkuMi04LDEwLjZ2Mi4xQzI4LDI1LjcsMzIuMywxOC43LDMwLjYsMTEuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyQzEwLjgs'@; put 'MS43LDQuOCw3LjMsNC41LDE0LjVDNC4yLDIxLjcsOS44LDI3LjcsMTcsMjh2LTUuMmwtNS4yLTUuMmMtMC40LTAuNC0wLjQtMSwwLTEuNGMwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGwzLjgsMy44di02LjJsLTIuNy0yLjdjLTAuNC0wLjQtMC40LTEsMC0xLjRjMC40LTAu'@; put 'NCwxLTAuNCwxLjQsMGMwLDAsMCwwLDAsMGwzLjMsMy4zdjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGMwLjQsMC40LDAuNCwxLDAsMS40TDE5LDE4LjhWMjhjNy4yLTAuMywxMi44LTYuMywxMi41LTEzLjVTMjUuMiwxLjcsMTgsMnoiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDI4Yy0wLjMsMC0wLjYsMC0xLDB2NWMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi01QzE4LjcsMjgsMTguMywyOCwxOCwyOHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksbC5D'@; put 'bHJTaGFwZUZpc2g9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTEuNDkiIGN5PSIxNy41IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMy40OCw5LjI5YTEsMSwwLDAsMC0xLDBjLTMuMzcsMi01LjkxLDUuODEt'@; put 'Ni45LDcuNDVMMjQuODUsMThzLTEsMS42Mi0xLDEuNjJjLTEuNzYsMi40OS01LjEsNi4zNi04Ljc5LDYuMzYtNC42NSwwLTguNzUtNi4xNS05Ljg0LTcuOTQsMS4wOS0xLjc5LDUuMTgtNy45NCw5Ljg0LTcuOTQsMy41NCwwLDYuNzcsMy41OCw4LjU4LDYuMDdsLjI4LS40OHMuMzYtLjUxLjkz'@; put 'LTEuMjVDMjIuNzIsMTEuNjQsMTkuMTgsOC4wNiwxNSw4LjA2Yy02LjU5LDAtMTEuNjcsOS4wNy0xMS44OCw5LjQ2TDIuODksMThsLjI3LjQ4Yy4yMS4zOSw1LjI5LDkuNDYsMTEuODgsOS40Niw1LjA2LDAsOS4yMi01LjM0LDExLThDMjYsMjAsMjcuMTgsMTgsMjcuMTgsMThoMGwuMDctLjEx'@; put 'YTE4LjA2LDE4LjA2LDAsMCwxLDEuODgtMi43NXMwLDAsMCwwYTIwLjMxLDIwLjMxLDAsMCwxLDIuODYtM1YyMy44OGEyMC45MywyMC45MywwLDAsMS0zLjYxLTRsLS4xNi4yNmgwbC0xLDEuNTlhMTguNzQsMTguNzQsMCwwLDAsNS4yMSw0Ljk1LDEsMSwwLDAsMCwuNS4xNCwxLjEzLDEuMTMs'@; put 'MCwwLDAsLjUtLjEzLDEsMSwwLDAsMCwuNS0uODdWMTAuMTZBMSwxLDAsMCwwLDMzLjQ4LDkuMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlRm9ybT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEsMTJIN2ExLDEsMCww'@; put 'LDEtMS0xVjdBMSwxLDAsMCwxLDcsNkgyMWExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDIxLDEyWk04LDEwSDIwVjcuOTRIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwxNC4wOEg3YTEsMSwwLDAsMC0xLDFWMTlhMSwxLDAs'@; put 'MCwwLDEsMUgxOC4zNkwyMiwxNi4zVjE1LjA4QTEsMSwwLDAsMCwyMSwxNC4wOFpNMjAsMThIOFYxNkgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMS4wNiwzMS41MXYtLjA2bC4zMi0xLjM5SDRWNGgyMFYxNC4yNUwyNiwxMi4z'@; put 'NlYzYTEsMSwwLDAsMC0xLTFIM0ExLDEsMCwwLDAsMiwzVjMxYTEsMSwwLDAsMCwxLDFoOEEzLjQ0LDMuNDQsMCwwLDEsMTEuMDYsMzEuNTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjIsMTkuMTdsLS43OC43OUExLDEsMCwwLDAs'@; put 'MjIsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNNiwyNi45NGExLDEsMCwwLDAsMSwxaDQuODRsLjMtMS4zLjEzLS41NSwwLS4wNUg4VjI0aDYuMzRsMi0ySDdhMSwxLDAsMCwwLTEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy40OSwxNi42NywzMC4xMiwxMy4zYTEuNjEsMS42MSwwLDAsMC0yLjI4LDBoMEwxNC4xMywyNy4wOSwxMywzMS45YTEuNjEsMS42MSwwLDAsMCwxLjI2LDEuOSwxLjU1LDEuNTUsMCwwLDAsLjMxLDAsMS4xNSwxLjE1LDAsMCww'@; put 'LC4zNywwbDQuODUtMS4wN0wzMy40OSwxOWExLjYsMS42LDAsMCwwLDAtMi4yN1pNMTguNzcsMzAuOTFsLTMuNjYuODFMMTYsMjguMDksMjYuMjgsMTcuN2wyLjgyLDIuODJaTTMwLjIzLDE5LjM5bC0yLjgyLTIuODJMMjksMTVsMi44NCwyLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTYiIC8+JyksbC5DbHJTaGFwZUZ1ZWw9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjEyLDM0SDUuOUEyLjgxLDIuODEsMCwwLDEsMywzMS4xOVY0Ljg2QTIuOSwyLjksMCwwLDEsNiwyLjA3SDIwLjIyQTIuNzIsMi43MiwwLDAsMSwyMyw0Ljg2VjMxLjE5'@; put 'QTIuODIsMi44MiwwLDAsMSwyMC4xMiwzNFpNNS45LDRBLjg3Ljg3LDAsMCwwLDUsNC44NlYzMS4xOWEuODcuODcsMCwwLDAsLjg3Ljg3SDIwLjEyYS45NC45NCwwLDAsMCwuOTUtLjg3VjQuODZBLjk0Ljk0LDAsMCwwLDIwLjEyLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjkuNTMsMzRBMy41LDMuNSwwLDAsMSwyNiwzMC41VjIzYTIsMiwwLDAsMC0yLTJIMjIuNTdhMSwxLDAsMCwxLDAtMkgyNGE0LDQsMCwwLDEsNCw0VjMwLjVhMS41LDEuNSwwLDAsMCwzLDBWMTcuM2wtMy4xMy03QTIuMjksMi4yOSwwLDAsMCwyNS44'@; put 'LDloLS43M2ExLDEsMCwxLDEsMC0yaC43M2E0LjMsNC4zLDAsMCwxLDMuOTMsMi41NWwzLjIxLDcuMTZhMSwxLDAsMCwxLC4wOS40MVYzMC41QTMuNSwzLjUsMCwwLDEsMjkuNTMsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgs'@; put 'OUg4QTEsMSwwLDEsMSw4LDdIMThhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwxM0g4QTEsMSwwLDEsMSw4LDExSDE4QTEsMSwwLDEsMSwxOCwxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yNSwxMi4wOGExLDEsMCwwLDEtMS0xdi02YTEsMSwwLDAsMSwyLDB2NkExLDEsMCwwLDEsMjUsMTIuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz4nKSxsLkNsclNoYXBlU25vd2ZsYWtlPSgwLGEuY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0xOC4wNSwzMy42MWExLDEsMCwwLDEtMS0xVjMuMzdhMSwxLDAsMSwxLDEuOTUsMFYzMi42M0ExLDEsMCwwLDEsMTguMDUsMzMuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsMTAuMDcs'@; put 'MTQuNTIsNi41NGExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBsMi4xMywyLjEyLDIuMTItMi4xMmExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAuODUsMzEu'@; put 'MTdhMSwxLDAsMCwxLS43LS4yOUwxOCwyOC43NiwxNS45LDMwLjg4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCwyNS45M2wzLjU0LDMuNTNhMSwxLDAsMCwxLDAsMS40MkExLDEsMCwwLDEsMjAuODUsMzEuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuOTIsMjYuNWExLDEsMCwwLDEtLjUtLjEzbC0yNi0xNUExLDEsMCwwLDEsNC4wNywxMGExLDEsMCwwLDEsMS4zNy0uMzZsMjYsMTVhMSwxLDAsMCwxLS41LDEuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIg'@; put 'Lz48cGF0aCBkPSJNNiwxNS4zN2ExLDEsMCwwLDEtLjI2LTJsMi45LS43OEw3Ljg0LDkuNzNhMSwxLDAsMSwxLDEuOTMtLjUyTDExLjA3LDE0LDYuMjQsMTUuMzNBLjgyLjgyLDAsMCwxLDYsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0'@; put 'aCBkPSJNMjcuMDUsMjcuNTRhMSwxLDAsMCwxLTEtLjc1TDI0LjgsMjJsNC44Mi0xLjNhMSwxLDAsMSwxLC41MiwxLjkzbC0yLjkuNzguNzgsMi45YTEsMSwwLDAsMS0uNzEsMS4yMkEuNzUuNzUsMCwwLDEsMjcuMDUsMjcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtNiIgLz48cGF0aCBkPSJNNC45NCwyNi41YTEsMSwwLDAsMS0uNS0xLjg3bDI2LTE1YTEsMSwwLDAsMSwxLjM2LjM2LDEsMSwwLDAsMS0uMzYsMS4zN2wtMjYsMTVBMSwxLDAsMCwxLDQuOTQsMjYuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAv'@; put 'PjxwYXRoIGQ9Ik04LjgxLDI3LjU0YS43NS43NSwwLDAsMS0uMjYsMCwxLDEsMCwwLDEtLjcxLTEuMjJsLjc4LTIuOS0yLjktLjc4QTEsMSwwLDAsMSw1LDIxLjM4YTEsMSwwLDAsMSwxLjIzLS43MUwxMS4wNywyMmwtMS4zLDQuODJBMSwxLDAsMCwxLDguODEsMjcuNTRaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz48cGF0aCBkPSJNMjkuODgsMTUuMzdhLjgyLjgyLDAsMCwxLS4yNiwwTDI0LjgsMTRsMS4yOS00LjgzQTEsMSwwLDEsMSwyOCw5LjczbC0uNzgsMi44OSwyLjkuNzhhMSwxLDAsMCwxLS4yNiwyWiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIC8+JyksbC5DbHJTaGFwZVRhYmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDM0YTEsMSwwLDAsMS0xLTFWMi45MmExLDEsMCwwLDEsMiwwVjMzQTEsMSwwLDAsMSw4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE3LDMzLjkyYTEsMSwwLDAsMS0xLTFWOS4xYTEsMSwwLDEsMSwyLDBWMzIuOTJBMSwxLDAsMCwxLDE3LDMzLjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI2LDM0YTEsMSwwLDAsMS0xLTFW'@; put 'OWExLDEsMCwwLDEsMiwwVjMzQTEsMSwwLDAsMSwyNiwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy4xMSwxOGgtMjVhMSwxLDAsMSwxLDAtMmgyNWExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMzLjEsMjYuOTRIOC4xQTEsMSwwLDEsMSw4LjEsMjVoMjVhMSwxLDAsMSwxLDAsMS45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMyw4LjkySDNBMSwxLDAsMSwxLDMsN0gzM2Ex'@; put 'LDEsMCwxLDEsMCwxLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksbC5DbHJTaGFwZVZvbHVtZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuODgsMzJIMTJhNCw0LDAsMCwxLTQtNFYxMS40NkwyLjMxLDUuNzdhMSwxLDAsMCwxLS4y'@; put 'Mi0xLjA5QTEsMSwwLDAsMSwzLDQuMDZIMjguODZhMSwxLDAsMCwxLDEsMVYyOEE0LDQsMCwwLDEsMjUuODgsMzJaTTUuNDMsNmw0LjI4LDQuMzRhLjc1Ljc1LDAsMCwxLC4yMS42M3YxN0EyLjEzLDIuMTMsMCwwLDAsMTIsMzBIMjUuODhBMi4xLDIuMSwwLDAsMCwyOCwyOFY2WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDE2YTEsMSwwLDAsMS0xLTFWNkgyOC44NmEuOTIuOTIsMCwwLDEtMS0uOSwxLDEsMCwwLDEsMS0xSDMzYTEsMSwwLDAsMSwxLDFWMTVBMSwxLDAsMCwxLDMzLDE2WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LDExSDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwxNUgyMWExLDEsMCwxLDEsMC0ySDI0YTEsMSww'@; put 'LDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjQsMTlIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTI0'@; put 'LDI3SDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yNCwyM0gyMUExLDEsMCwxLDEsMjEsMjFIMjRBMSwxLDAsMSwxLDI0LDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTciIC8+JyksbC5DbHJTaGFwZUNyb3NzaGFpcnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI5QTExLDExLDAsMSwxLDI5LDE4LDExLDExLDAsMCwxLDE4LDI5Wk0xOCw5YTksOSwwLDEsMCw5LDlBOSw5LDAsMCwwLDE4LDlaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjNhNSw1LDAsMSwxLDUtNUE1LDUsMCwwLDEsMTgsMjNabTAtOGEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCwxOCwxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRo'@; put 'IGQ9Ik0xOCw5YTEsMSwwLDAsMS0xLTFWMi44YTEsMSwwLDAsMSwyLDBWOEExLDEsMCwwLDEsMTgsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwzNGExLDEsMCwwLDEtMS0xVjI4YTEsMSwwLDAsMSwyLDB2NUExLDEsMCwwLDEs'@; put 'MTgsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNOCwxOUgzLjE3YTEsMSwwLDAsMSwwLTJIOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjEs'@; put 'MTlIMjhhMSwxLDAsMCwxLDAtMmg1LjFhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLGwuQ2xyU2hhcGVDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAs'@; put 'MCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVEb3RDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDExYTcsNywwLDEsMS03LDcsNyw3LDAsMCwxLDctNyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGgg'@; put 'ZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlQmV0YT0oMCxhLmNsckljb25T'@; put 'VkcpKCc8cGF0aCBkPSJNNy4yMSwxNC4wN2gzYTEuNjEsMS42MSwwLDAsMSwxLjgxLDEuNSwxLjQ0LDEuNDQsMCwwLDEtLjg0LDEuMzQsMS42NywxLjY3LDAsMCwxLDEuMSwxLjUzLDEuNzUsMS43NSwwLDAsMS0yLDEuNjNINy4yMVptMi43MSwyLjQyYy40OCwwLC44Mi0uMjguODItLjY3cy0u'@; put 'MzQtLjY1LS44Mi0uNjVIOC40OXYxLjMyWm0uMiwyLjQ4YS43NS43NSwwLDEsMCwwLTEuNDdIOC40OVYxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNC41NSwxNS4yM3YxLjJoM3YxLjE2aC0zdjEuMzJoMy4zM3YxLjE2SDEz'@; put 'LjI2di02aDQuNjJ2MS4xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMC40MSwxNS4yM0gxOC41NFYxNC4wN2g1djEuMTZIMjEuN3Y0Ljg0SDIwLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTMiLz5cbiAgPHBhdGggZD0iTTI4LDE5LjEySDI1LjMybC0uMzguOTVIMjMuNWwyLjQ0LTZoMS40NGwyLjQ1LDZIMjguMzhaTTI3LjU1LDE4bC0uODktMi4xOUwyNS43NywxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik04LjA2'@; put 'LDMwYS44NC44NCwwLDAsMS0uMzgtLjA4QTEsMSwwLDAsMSw3LjA2LDI5VjI1aC00YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDEtMWgzMGExLDEsMCwwLDEsMSwxVjI0YTEsMSwwLDAsMS0xLDFIMTMuNDhMOC43NywyOS43MUExLDEsMCwwLDEsOC4wNiwzMFptLTQtN2g0YTEsMSwwLDAs'@; put 'MSwxLDF2Mi41OWwzLjMtMy4zYTEsMSwwLDAsMSwuNy0uMjloMTlWMTFoLTI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cblxuICA8cG9seWdvbiBwb2ludHM9IjI1LjgsMTggMjcuNSwxOCAyNi43LDE1LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEiLz5cblx0PHBhdGggZD0iTTEwLjQsMTcuNWMtMC4xLDAtMC4yLDAtMC4zLDBIOC41VjE5bDEuNiwwYzAuNCwwLjEsMC44LTAuMiwwLjktMC42QzExLjEsMTgsMTAuOCwxNy42LDEwLjQsMTcuNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi'@; put 'Lz5cblx0PHBhdGggZD0iTTEwLjcsMTUuOGMwLTAuNC0wLjMtMC43LTAuOC0wLjdIOC41djEuM2gxLjRDMTAuNCwxNi41LDEwLjcsMTYuMiwxMC43LDE1Ljh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5cdDxwYXRoIGQ9Ik0zMy4xLDloLTMwYy0wLjYsMC0x'@; put 'LDAuNC0xLDF2MTRjMCwwLjYsMC40LDEsMSwxaDR2NGMwLDAuNCwwLjIsMC44LDAuNiwwLjlDNy44LDMwLDcuOSwzMCw4LjEsMzBjMC4zLDAsMC41LTAuMSwwLjctMC4zXG5cdFx0bDQuNy00LjdoMTkuNmMwLjYsMCwxLTAuNCwxLTFWMTBDMzQuMSw5LjQsMzMuNiw5LDMzLjEsOXogTTEwLjQs'@; put 'MjAuMWMtMC4xLDAtMC4xLDAtMC4yLDBINy4ydi02aDNjMC45LTAuMSwxLjcsMC41LDEuOCwxLjRcblx0XHRjMCwwLDAsMC4xLDAsMC4xYzAsMC42LTAuMywxLjEtMC44LDEuM2MwLjYsMC4yLDEuMSwwLjgsMS4xLDEuNUMxMi4yLDE5LjQsMTEuNCwyMC4xLDEwLjQsMjAuMXogTTE3LjksMTUu'@; put 'MmgtMy4zdjEuMmgzdjEuMmgtM3YxLjNcblx0XHRoMy4zdjEuMmgtNC42di02aDQuNlYxNS4yeiBNMjEuNywyMC4xaC0xLjN2LTQuOGgtMS45di0xLjJoNXYxLjJoLTEuOFYyMC4xeiBNMjguNCwyMC4xbC0wLjQtMWgtMi43bC0wLjQsMWgtMS40bDIuNC02aDEuNGwyLjUsNlxuXHRcdEgyOC40'@; put 'eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIvPlxuJyksbC5DbHJTaGFwZUZpcnN0QWlkPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsNkgyMy45MVY0LjVBMi41LDIuNSwwLDAsMCwyMS40MSwyaC03YTIuNSwyLjUsMCwwLDAtMi41LDIuNVY2SDRB'@; put 'MiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTMuOTEsNC41YS41LjUsMCwwLDEsLjUtLjVoN2EuNS41LDAsMCwxLC41LjVWNmgtOFpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIwLjE1LDI1LjJIMTYuNzRhMS4zLDEuMywwLDAsMS0xLjMtMS4zVjIxLjJoLTIuN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjNWMTYuNWExLjMsMS4zLDAsMCwxLDEuMy0xLjNoMi43VjEyLjVhMS4zLDEuMywwLDAsMSwxLjMtMS4zaDMuNDFhMS4zLDEu'@; put 'MywwLDAsMSwxLjI5LDEuM3YyLjdoMi43MWExLjMsMS4zLDAsMCwxLDEuMjksMS4zdjMuNGExLjMsMS4zLDAsMCwxLTEuMjksMS4zSDIxLjQ0djIuN0ExLjMsMS4zLDAsMCwxLDIwLjE1LDI1LjJaTTE3LDIzLjZoMi44MXYtNGg0VjE2LjhoLTR2LTRIMTd2NEgxM3YyLjhoNFptNy4xMS02Ljha'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0zMiw2SDIzLjkxVjQuNUEyLjUsMi41LDAsMCwwLDIxLjQxLDJoLTdhMi41LDIuNSwwLDAsMC0yLjUsMi41VjZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwy'@; put 'LDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xMy45MSw0LjVhLjUuNSwwLDAsMSwuNS0uNWg3YS41LjUsMCwwLDEsLjUuNVY2aC04Wk0yNC42NCwxOS45YS41LjUsMCwwLDEtLjUuNWgtMy41djMuNWEuNS41LDAsMCwxLS41LjVoLTMuNGEuNS41LDAsMCwxLS41LS41VjIwLjRoLTMuNWEu'@; put 'NS41LDAsMCwxLS41LS41VjE2LjVhLjUuNSwwLDAsMSwuNS0uNWgzLjVWMTIuNWEuNS41LDAsMCwxLC41LS41aDMuNGEuNS41LDAsMCwxLC41LjVWMTZoMy41YS41LjUsMCwwLDEsLjUuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksbC5DbHJTaGFw'@; put 'ZUNvbG9yUGFsZXR0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuNTQsMjMuMDVhMy4yMiwzLjIyLDAsMCwxLTMtMS43N0EzLjA1LDMuMDUsMCwwLDEsMTguNSwxOWEzLjc0LDMuNzQsMCwwLDEsMS45NS0yLjA2QTMuNCwzLjQsMCwwLDEsMjUsMTguM2EzLDMsMCwwLDEsLjA4LDIu'@; put 'MzIsMy42OSwzLjY5LDAsMCwxLTIsMi4wN0EzLjg1LDMuODUsMCwwLDEsMjEuNTQsMjMuMDVabS41NC00LjkxYTIuNDEsMi40MSwwLDAsMC0xLC4yMWgwQTIuMTMsMi4xMywwLDAsMCwyMCwxOS41MWExLjM3LDEuMzcsMCwwLDAsMCwxLjA5LDEuODEsMS44MSwwLDAsMCwyLjQ1LjYzLDIuMSwy'@; put 'LjEsMCwwLDAsMS4xMi0xLjE1LDEuNCwxLjQsMCwwLDAsMC0xLjFBMS41OSwxLjU5LDAsMCwwLDIyLjA4LDE4LjE0Wm0tMS4yOS0uNTJoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNi4xOSwzMy44N0ExMy43MiwxMy43Miww'@; put 'LDAsMSw2LjQsMzAsMTMuODYsMTMuODYsMCwwLDEsMiwyMGMwLTQuNCwyLTguODQsNS42OC0xMi41YTE4LjIsMTguMiwwLDAsMSwxMy4xLTUuMzdoLjEyYzMuMzMsMCw2Ljg1LDEuNDksNy4yNCw0LjczLjIxLDEuNzctLjU5LDMuNDctMS4yOSw1LS41NSwxLjE3LTEuMTEsMi4zOS0uNzIsMi44'@; put 'MXMxLC4xMiwyLjA5LS4yYTYuMjcsNi4yNywwLDAsMSwzLjM4LS4zNiwzLDMsMCwwLDEsMS44NywxLjU2Yy45NCwxLjgzLjQ3LDQuNjctLjIzLDYuNTRoMEExNy4zOCwxNy4zOCwwLDAsMSwyOSwyOC43NCwxOS40MywxOS40MywwLDAsMSwxNi4xOSwzMy44N1pNMjAuNzgsNC4xNkExNi4yMiwx'@; put 'Ni4yMiwwLDAsMCw5LjA5LDlDNS43OSwxMi4yMyw0LDE2LjE2LDQsMjBBMTEuOTIsMTEuOTIsMCwwLDAsNy44LDI4LjZjNS4zOCw1LjI1LDE0LjYyLDMuNTUsMTkuODctMS4zM2ExNS41MiwxNS41MiwwLDAsMCwzLjctNS43NWgwYy43LTEuOS44NC0zLjkyLjMyLTQuOTJhMSwxLDAsMCwwLS42'@; put 'MS0uNTUsNC44Niw0Ljg2LDAsMCwwLTIuMjkuMzVjLTEuMzEuMzktMywuODktNC4xMi0uMzUtMS4zMi0xLjQtLjQ2LTMuMjUuMzctNWE3LjkzLDcuOTMsMCwwLDAsMS4xMS0zLjljLS4yNC0yLTIuODEtMi45NS01LjI2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuODcsMjYuNjVBMi41OSwyLjU5LDAsMCwwLDIyLjM1LDI1TDIyLDI0LjlsLS40NiwxLjUzLjE2LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDctMS44OC0uNjZsLTEuNTQuNDNoMGEyLjgzLDIuODMsMCww'@; put 'LDAsMi44NCwxLjkxLDQsNCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMjMuODcsMjYuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTUuMDcsMjUuNTloMGEyLjczLDIuNzMsMCwwLDAtMi4yNC0xLjg0bC0uMjcsMS41OGExLjEy'@; put 'LDEuMTIsMCwwLDEsMSwuN2MuMTcuNTktLjQxLDEuMy0xLjI2LDEuNTRBMS45MiwxLjkyLDAsMCwxLDExLDI3LjUyYTEsMSwwLDAsMS0uNi0uNjFzMC0uMDksMC0uMTNsLTEuNTguMTZhMiwyLDAsMCwwLC4wNi40MUEyLjU5LDIuNTksMCwwLDAsMTAuMzcsMjlhMy4zNiwzLjM2LDAsMCwwLDEu'@; put 'MzEuMjUsMy43LDMuNywwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTUuMDcsMjUuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTAuNzgsMTkuMTdhMi41OSwyLjU5LDAsMCwwLTEuNTItMS42NSwyLjkxLDIuOTEsMCwwLDAtLjUt'@; put 'LjE2bC0uMzcsMS41NmExLjIxLDEuMjEsMCwwLDEsLjI1LjA4LDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDYtMS44OC0uNjZhLjg2Ljg2LDAsMCwxLDAtLjM5bC0xLjU2LS4zNGEyLjQsMi40LDAsMCwwLDAsMS4xNkEyLjgzLDIuODMsMCwwLDAsNy40'@; put 'LDIyLjgzYTQsNCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTAuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNMTMuNDUsMTEuNGEyLjU5LDIuNTksMCwwLDAtMS41Mi0xLjY1LDEuMTcsMS4xNywwLDAsMC0uMi0uMDZs'@; put 'LS41MiwxLjUxYS4zOC4zOCwwLDAsMSwuMSwwLDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NWEyLjA2LDIuMDYsMCwwLDEtMS4yOC0uMDUsMSwxLDAsMCwxLS42LS42MS44NS44NSwwLDAsMSwwLS4zMmwtMS41OC0uMTlhMi4zLDIuMywwLDAsMCwuMDYuOTRBMi41Niwy'@; put 'LjU2LDAsMCwwLDguNzUsMTQuOGEzLjM3LDMuMzcsMCwwLDAsMS4zMS4yNiw0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDEzLjQ1LDExLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMjEsNi43OGEyLjU2LDIuNTYsMCwwLDAt'@; put 'MS41Mi0xLjY1bC0uMy0uMUwxOC43LDYuNTZsLjE1LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMtMS4yNiwxLjU0cy0xLjcxLS4wNi0xLjg4LS42NWEuOS45LDAsMCwxLC4wNi0uNThMMTQuODksNi45YTIuNDcsMi40NywwLDAsMC0uMTIsMS42MywyLjg0LDIuODQsMCwwLDAsMi44'@; put 'NCwxLjkxLDMuNTgsMy41OCwwLDAsMCwxLS4xNUEzLDMsMCwwLDAsMjEsNi43OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG5cbiAgPHBhdGggZD0iTTMyLjIzLDE0Ljg5Yy0yLjEtLjU2LTQuOTMsMS44LTYuMzQuMy0xLjcxLTEuODIsMi4yNy01LjUz'@; put 'LDEuODYtOC45Mi0uMzMtMi43OC0zLjUxLTQuMDgtNi42Ni00LjFBMTguNSwxOC41LDAsMCwwLDcuNzQsNy41OWMtNi42NCw2LjU5LTguMDcsMTYtMS4zNywyMi40OCw2LjIxLDYsMTYuNjEsNC4yMywyMi42Ny0xLjRhMTcuNzMsMTcuNzMsMCwwLDAsNC4yMi02LjU0QzM0LjM0LDE5LjIzLDM0'@; put 'LjQ0LDE1LjQ5LDMyLjIzLDE0Ljg5Wk05LjQsMTAuNTdhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMSwyLjIyLDIuMjIsMCwwLDEtMS44MSwyLjUzQTIuMjIsMi4yMiwwLDAsMSw3LjU5LDEzLjEsMi4yMywyLjIzLDAsMCwxLDkuNCwxMC41N1pNNS4wNywyMC44MmEyLjIyLDIuMjIsMCwwLDEs'@; put 'MS44Mi0yLjUzQTIuMjIsMi4yMiwwLDAsMSw5Ljc1LDE5LjUsMi4yMywyLjIzLDAsMCwxLDcuOTQsMjIsMi4yNCwyLjI0LDAsMCwxLDUuMDcsMjAuODJabTcsOC4zM2EyLjIyLDIuMjIsMCwwLDEtMi44Ny0xLjIxQTIuMjMsMi4yMywwLDAsMSwxMSwyNS40MWEyLjIzLDIuMjMsMCwwLDEsMi44'@; put 'NywxLjIxQTIuMjIsMi4yMiwwLDAsMSwxMiwyOS4xNVpNMTUsOC4yNmEyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODIsMi41M0EyLjIxLDIuMjEsMCwwLDEsMTUsOC4yNlptNS44MiwyMi4xOWEyLjIyLDIuMjIs'@; put 'MCwwLDEtMi44Ny0xLjIxLDIuMjMsMi4yMywwLDAsMSwxLjgxLTIuNTMsMi4yNCwyLjI0LDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMjAuNzgsMzAuNDVabTUtMTAuNDZhMy4yLDMuMiwwLDAsMS0xLjY5LDEuNzYsMy41MywzLjUzLDAsMCwxLTEuNC4zLDIuNzgsMi43OCwwLDAs'@; put 'MS0yLjU2LTEuNSwyLjQ5LDIuNDksMCwwLDEtLjA3LTIsMy4yLDMuMiwwLDAsMSwxLjY5LTEuNzYsMywzLDAsMCwxLDQsMS4yQTIuNTQsMi41NCwwLDAsMSwyNS43OSwyMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxsLkVzc2VudGlhbFNoYXBlcz17ImFk'@; put 'ZC10ZXh0IjpsLkNsclNoYXBlQWRkVGV4dCwiYWxhcm0tb2ZmIjpsLkNsclNoYXBlQWxhcm1PZmYscGluYm9hcmQ6bC5DbHJTaGFwZVBpbmJvYXJkLG5ldzpsLkNsclNoYXBlTmV3LCJidWJibGUtZXhjbGFtYXRpb24iOmwuQ2xyU2hhcGVCdWJibGVFeGNsYW1hdGlvbiwiZ3JpZC12aWV3Ijps'@; put 'LkNsclNoYXBlR3JpZFZpZXcsImN1cnNvci1hcnJvdyI6bC5DbHJTaGFwZUN1cnNvckFycm93LCJjdXJzb3ItaGFuZCI6bC5DbHJTaGFwZUN1cnNvckhhbmQsImN1cnNvci1oYW5kLWNsaWNrIjpsLkNsclNoYXBlQ3Vyc29ySGFuZENsaWNrLCJjdXJzb3ItaGFuZC1ncmFiIjpsLkNsclNoYXBl'@; put 'Q3Vyc29ySGFuZEdyYWIsImN1cnNvci1oYW5kLW9wZW4iOmwuQ2xyU2hhcGVDdXJzb3JIYW5kT3BlbiwiY3Vyc29yLW1vdmUiOmwuQ2xyU2hhcGVDdXJzb3JNb3ZlLCJmaXJzdC1haWQiOmwuQ2xyU2hhcGVGaXJzdEFpZCxyZXNpemU6bC5DbHJTaGFwZVJlc2l6ZSxvYmplY3RzOmwuQ2xyU2hh'@; put 'cGVPYmplY3RzLGJvb2s6bC5DbHJTaGFwZUJvb2ssYXN0ZXJpc2s6bC5DbHJTaGFwZUFzdGVyaXNrLGJ1ZzpsLkNsclNoYXBlQnVnLHNjaXNzb3JzOmwuQ2xyU2hhcGVTY2lzc29ycyx0aGVybW9tZXRlcjpsLkNsclNoYXBlVGhlcm1vbWV0ZXIscGVuY2lsOmwuQ2xyU2hhcGVQZW5jaWwsbm90'@; put 'ZTpsLkNsclNoYXBlTm90ZSxyZWZyZXNoOmwuQ2xyU2hhcGVSZWZyZXNoLHN5bmM6bC5DbHJTaGFwZVN5bmMsInZpZXctbGlzdCI6bC5DbHJTaGFwZVZpZXdMaXN0LCJ2aWV3LWNhcmRzIjpsLkNsclNoYXBlVmlld0NhcmRzLCJ0cmVlLXZpZXciOmwuQ2xyU2hhcGVUcmVlVmlldyxsaWdodGJ1'@; put 'bGI6bC5DbHJTaGFwZUxpZ2h0YnVsYixkb3dubG9hZDpsLkNsclNoYXBlRG93bmxvYWQsdXBsb2FkOmwuQ2xyU2hhcGVVcGxvYWQsbG9jazpsLkNsclNoYXBlTG9jayx1bmxvY2s6bC5DbHJTaGFwZVVubG9jayx1c2VyczpsLkNsclNoYXBlVXNlcnMsInBvcC1vdXQiOmwuQ2xyU2hhcGVQb3BP'@; put 'dXQsZmlsdGVyOmwuQ2xyU2hhcGVGaWx0ZXIscGluOmwuQ2xyU2hhcGVQaW4sZmlsZTpsLkNsclNoYXBlRmlsZSxwbHVzOmwuQ2xyU2hhcGVQbHVzLG1pbnVzOmwuQ2xyU2hhcGVNaW51cywibWludXMtY2lyY2xlIjpsLkNsclNoYXBlTWludXNDaXJjbGUsInBsdXMtY2lyY2xlIjpsLkNsclNo'@; put 'YXBlUGx1c0NpcmNsZSxiYW46bC5DbHJTaGFwZUJhbiwidGltZXMtY2lyY2xlIjpsLkNsclNoYXBlVGltZXNDaXJjbGUsdHJhc2g6bC5DbHJTaGFwZVRyYXNoLGNpcmNsZTpsLkNsclNoYXBlQ2lyY2xlLHRhZzpsLkNsclNoYXBlVGFnLHRhZ3M6bC5DbHJTaGFwZVRhZ3MsaGlzdG9yeTpsLkNs'@; put 'clNoYXBlSGlzdG9yeSxjbG9jazpsLkNsclNoYXBlQ2xvY2ssImFsYXJtLWNsb2NrIjpsLkNsclNoYXBlQWxhcm1DbG9jayxhcnJvdzp2LkNsclNoYXBlQXJyb3csImNpcmNsZS1hcnJvdyI6bC5DbHJTaGFwZUNpcmNsZUFycm93LCJjaGlsZC1hcnJvdyI6bC5DbHJTaGFwZUNoaWxkQXJyb3cs'@; put 'Y29weTpsLkNsclNoYXBlQ29weSxoZWxwOmwuQ2xyU2hhcGVIZWxwLGxvZ2luOmwuQ2xyU2hhcGVMb2dpbixsb2dvdXQ6bC5DbHJTaGFwZUxvZ291dCxwcmludGVyOmwuQ2xyU2hhcGVQcmludGVyLHdvcmxkOmwuQ2xyU2hhcGVXb3JsZCxzbGlkZXI6bC5DbHJTaGFwZVNsaWRlcixjbGlwYm9h'@; put 'cmQ6bC5DbHJTaGFwZUNsaXBib2FyZCxmaXJld2FsbDpsLkNsclNoYXBlRmlyZXdhbGwsbGlzdDpsLkNsclNoYXBlTGlzdCxyZWRvOmwuQ2xyU2hhcGVSZWRvLHVuZG86bC5DbHJTaGFwZVVuZG8sc2Nyb2xsOmwuQ2xyU2hhcGVTY3JvbGwsImZpbGUtc2V0dGluZ3MiOmwuQ2xyU2hhcGVGaWxl'@; put 'U2V0dGluZ3MsInR3by13YXktYXJyb3dzIjpsLkNsclNoYXBlVHdvV2F5QXJyb3dzLHN3aXRjaDpsLkNsclNoYXBlU3dpdGNoLHRvb2xzOmwuQ2xyU2hhcGVUb29scywid2luZG93LWNsb3NlIjpsLkNsclNoYXBlV2luZG93Q2xvc2UsIndpbmRvdy1tYXgiOmwuQ2xyU2hhcGVXaW5kb3dNYXgs'@; put 'IndpbmRvdy1taW4iOmwuQ2xyU2hhcGVXaW5kb3dNaW4sIndpbmRvdy1yZXN0b3JlIjpsLkNsclNoYXBlV2luZG93UmVzdG9yZSwiem9vbS1pbiI6bC5DbHJTaGFwZVpvb21Jbiwiem9vbS1vdXQiOmwuQ2xyU2hhcGVab29tT3V0LGtleTpsLkNsclNoYXBlS2V5LGxpYnJhcnk6bC5DbHJTaGFw'@; put 'ZUxpYnJhcnksYm9sdDpsLkNsclNoYXBlQm9sdCx3cmVuY2g6bC5DbHJTaGFwZVdyZW5jaCxidWxsc2V5ZTpsLkNsclNoYXBlQnVsbHNleWUsdGFyZ2V0OmwuQ2xyU2hhcGVUYXJnZXQsZmxhbWU6bC5DbHJTaGFwZUZsYW1lLGhvdXJnbGFzczpsLkNsclNoYXBlSG91cmdsYXNzLCJuby1hY2Nl'@; put 'c3MiOmwuQ2xyU2hhcGVOb0FjY2Vzcyxvcmdhbml6YXRpb246bC5DbHJTaGFwZU9yZ2FuaXphdGlvbixiYWxhbmNlOmwuQ2xyU2hhcGVCYWxhbmNlLCJpZC1iYWRnZSI6bC5DbHJTaGFwZUlkQmFkZ2UscmVwZWF0OmwuQ2xyU2hhcGVSZXBlYXQsImZpbGUtZ3JvdXAiOmwuQ2xyU2hhcGVGaWxl'@; put 'R3JvdXAscGFwZXJjbGlwOmwuQ2xyU2hhcGVQYXBlcmNsaXAsc2hyaW5rOmwuQ2xyU2hhcGVTaHJpbmssImFjY2Vzc2liaWxpdHktMSI6bC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxLCJhY2Nlc3NpYmlsaXR5LTIiOmwuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Miwic29ydC1ieSI6bC5DbHJTaGFw'@; put 'ZVNvcnRCeSwiY29sbGFwc2UtY2FyZCI6bC5DbHJTaGFwZUNvbGxhcHNlQ2FyZCwiZXhwYW5kLWNhcmQiOmwuQ2xyU2hhcGVFeHBhbmRDYXJkLGJyaWVmY2FzZTpsLkNsclNoYXBlQnJpZWZjYXNlLCJjb2xvci1waWNrZXIiOmwuQ2xyU2hhcGVDb2xvclBpY2tlciwiY29weS10by1jbGlwYm9h'@; put 'cmQiOmwuQ2xyU2hhcGVDb3B5VG9DbGlwYm9hcmQsImZpbHRlci0yIjpsLkNsclNoYXBlRmlsdGVyMiwiZHJhZy1oYW5kbGUiOmwuQ2xyU2hhcGVEcmFnSGFuZGxlLG1vb246bC5DbHJTaGFwZU1vb24sc3VuOmwuQ2xyU2hhcGVTdW4sd2FuZDpsLkNsclNoYXBlV2FuZCxjbG9uZTpsLkNsclNo'@; put 'YXBlQ2xvbmUsZGV0YWlsczpsLkNsclNoYXBlRGV0YWlscywiZHJhZy1oYW5kbGUtY29ybmVyIjpsLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcixlcmFzZXI6bC5DbHJTaGFwZUVyYXNlcixsYW5kc2NhcGU6bC5DbHJTaGFwZUxhbmRzY2FwZSxwYXN0ZTpsLkNsclNoYXBlUGFzdGUscG9ydHJh'@; put 'aXQ6bC5DbHJTaGFwZVBvcnRyYWl0LCJmaWxlLXppcCI6bC5DbHJTaGFwZUZpbGVaaXAsImZpbHRlci1vZmYiOmwuQ2xyU2hhcGVGaWx0ZXJPZmYscmVjeWNsZTpsLkNsclNoYXBlUmVjeWNsZSx0cmVlOmwuQ2xyU2hhcGVUcmVlLGZpc2g6bC5DbHJTaGFwZUZpc2gsZm9ybTpsLkNsclNoYXBl'@; put 'Rm9ybSxmdWVsOmwuQ2xyU2hhcGVGdWVsLHNub3dmbGFrZTpsLkNsclNoYXBlU25vd2ZsYWtlLHRhYmxlOmwuQ2xyU2hhcGVUYWJsZSwiZG90LWNpcmNsZSI6bC5DbHJTaGFwZURvdENpcmNsZSx2b2x1bWU6bC5DbHJTaGFwZVZvbHVtZSxjcm9zc2hhaXJzOmwuQ2xyU2hhcGVDcm9zc2hhaXJz'@; put 'LGJldGE6bC5DbHJTaGFwZUJldGEsImNvbG9yLXBhbGV0dGUiOmwuQ2xyU2hhcGVDb2xvclBhbGV0dGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLkVzc2VudGlhbFNoYXBlcywiZWRpdCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlcy5wZW5jaWwpKSxPYmplY3Qu'@; put 'ZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsIm5vdGUtZWRpdCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlcy5ub3RlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuRXNzZW50aWFsU2hhcGVzLCJncm91cCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShs'@; put 'LkVzc2VudGlhbFNoYXBlcy51c2VycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLkVzc2VudGlhbFNoYXBlcywiZG9jdW1lbnQiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Fc3NlbnRpYWxTaGFwZXMuZmlsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLkVzc2VudGlhbFNoYXBlcywi'@; put 'YWRkIiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuRXNzZW50aWFsU2hhcGVzLnBsdXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsImNhbmNlbCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlcy5iYW4pKSxPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsInJlbW92ZSIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlc1sidGltZXMtY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsInNpZ24taW4iLCgwLHAuZGVzY3JpcHRvckNvbmZpZyko'@; put 'bC5Fc3NlbnRpYWxTaGFwZXMubG9naW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsInNpZ24tb3V0IiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuRXNzZW50aWFsU2hhcGVzLmxvZ291dCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLkVzc2VudGlhbFNoYXBl'@; put 'cywibGlnaHRuaW5nIiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuRXNzZW50aWFsU2hhcGVzLmJvbHQpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsImZsb3ctY2hhcnQiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Fc3NlbnRpYWxTaGFwZXMub3JnYW5pemF0'@; put 'aW9uKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuRXNzZW50aWFsU2hhcGVzLCJhbGVydCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlc1siYnViYmxlLWV4Y2xhbWF0aW9uIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsInBpbm5l'@; put 'ZCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlcy5waW5ib2FyZCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVudCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsImF0dGFjaG1lbnQiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5Fc3NlbnRpYWxTaGFwZXMucGFwZXJjbGlwKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuRXNzZW50aWFsU2hhcGVzLCJyZXNpemUtZG93biIsKDAscC5kZXNj'@; put 'cmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlcy5zaHJpbmspKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS11cCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLkVzc2VudGlhbFNoYXBlcy5yZXNpemUpKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2lu'@; put 'ZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQobC5Fc3NlbnRpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyI6Ci8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKiEqXAogICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9tZWRpYS1zaGFwZXMudHMgKioqIQogICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91'@; put 'bmQgKi9mdW5jdGlvbihNLGwsSCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsLk1lZGlhU2hhcGVzPWwuQ2xyU2hhcGVNaWNyb3Bob25lTXV0ZT1sLkNsclNoYXBlTWljcm9waG9uZT1sLkNsclNoYXBlVmlkZW9HYWxsZXJ5'@; put 'PWwuQ2xyU2hhcGVSZXBsYXlPbmU9bC5DbHJTaGFwZVJlcGxheUFsbD1sLkNsclNoYXBlSW1hZ2VHYWxsZXJ5PWwuQ2xyU2hhcGVNdXNpY05vdGU9bC5DbHJTaGFwZUZpbG1TdHJpcD1sLkNsclNoYXBlSGVhZHBob25lcz1sLkNsclNoYXBlVm9sdW1lTXV0ZT1sLkNsclNoYXBlVm9sdW1lVXA9'@; put 'bC5DbHJTaGFwZVZvbHVtZURvd249bC5DbHJTaGFwZVNodWZmbGU9bC5DbHJTaGFwZVZpZGVvQ2FtZXJhPWwuQ2xyU2hhcGVDYW1lcmE9bC5DbHJTaGFwZUZhc3RGb3J3YXJkPWwuQ2xyU2hhcGVSZXdpbmQ9bC5DbHJTaGFwZVBvd2VyPWwuQ2xyU2hhcGVTdG9wPWwuQ2xyU2hhcGVTdGVwRm9y'@; put 'd2FyZD1sLkNsclNoYXBlUGF1c2U9bC5DbHJTaGFwZVBsYXk9dm9pZCAwLEg9SCgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGwuQ2xyU2hhcGVQbGF5PSgwLEguY2xySWNvblNWRyko'@; put 'JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNOC4wNywzMS42QTIuMDcsMi4wNywwLDAsMSw2LDI5LjUzVjYuMzJBMi4wNywyLjA3LDAsMCwxLDksNC40N0wzMi4yMSwxNi4wOGEyLjA3LDIuMDcsMCwwLDEsMCwzLjdMOSwzMS4zOEEyLjA2LDIu'@; put 'MDYsMCwwLDEsOC4wNywzMS42Wm0wLTI1LjM0TDgsNi4zMlYyOS41M2wuMS4wNkwzMS4zMSwxOGEuMDYuMDYsMCwwLDAsMC0uMDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjE2LDE2LjA4LDguOTQsNC40'@; put 'N0EyLjA3LDIuMDcsMCwwLDAsNiw2LjMyVjI5LjUzYTIuMDYsMi4wNiwwLDAsMCwzLDEuODVMMzIuMTYsMTkuNzdhMi4wNywyLjA3LDAsMCwwLDAtMy43WiIvPicpLGwuQ2xyU2hhcGVQYXVzZT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgZD0iTTEyLjkzLDMySDYuMDdBMi4wNywyLjA3LDAsMCwxLDQsMjkuOTNWNi4wN0EyLjA3LDIuMDcsMCwwLDEsNi4wNyw0aDYuODdBMi4wNywyLjA3LDAsMCwxLDE1LDYuMDdWMjkuOTNBMi4wNywyLjA3LDAsMCwxLDEyLjkzLDMyWk0xMyw2SDZWMzBoN1oiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LjkzLDMySDIzLjA3QTIuMDcsMi4wNywwLDAsMSwyMSwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSwyMy4wNyw0aDYuODdBMi4wNywyLjA3LDAsMCwxLDMyLDYuMDdWMjku'@; put 'OTNBMi4wNywyLjA3LDAsMCwxLDI5LjkzLDMyWk0zMCw2SDIzVjMwaDdaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NSIgeT0iNCIgd2lkdGg9IjExIiBoZWlnaHQ9IjI4IiByeD0iMi4wNyIgcnk9IjIuMDci'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiB4PSIyMC45NSIgeT0iNCIgd2lkdGg9IjExIiBoZWlnaHQ9IjI4IiByeD0iMi4wNyIgcnk9IjIuMDciLz4nKSxsLkNsclNoYXBlU3RlcEZvcndhcmQ9KDAsSC5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik01LDMyLjIzYTIsMiwwLDAsMS0yLTJWNS43N0EyLDIsMCwwLDEsNi4xNyw0LjE0TDIzLjIzLDE2LjM4YTIsMiwwLDAsMSwwLDMuMjVoMEw2LjE3LDMxLjg2QTIsMiwwLDAsMSw1LDMyLjIzWk01'@; put 'LDUuNzdWMzAuMjNMMjIuMDcsMThaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMSwzMkgyOGEyLDIsMCwwLDEtMi0yVjZhMiwyLDAsMCwxLDItMmgzYTIsMiwwLDAsMSwyLDJWMzBBMiwyLDAsMCwxLDMx'@; put 'LDMyWk0yOCw2VjMwaDNWNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNSwzMS45YTIsMiwwLDAsMS0yLTJWNS40NEEyLDIsMCwwLDEsNi4xMiwzLjgxTDIzLjE4LDE2YTIsMiwwLDAsMSwwLDMuMjVoMEw2LjEy'@; put 'LDMxLjUyQTIsMiwwLDAsMSw1LDMxLjlaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgeD0iMjUuOTUiIHk9IjMuNjciIHdpZHRoPSI3IiBoZWlnaHQ9IjI4IiByeD0iMiIgcnk9IjIiLz4nKSxsLkNsclNoYXBlU3RvcD0o'@; put 'MCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDMySDZhMiwyLDAsMCwxLTItMlY2QTIsMiwwLDAsMSw2LDRIMzBhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCwwLDEsMzAsMzJaTTYsNlYzMEgzMFY2WiIvPlxuICAg'@; put 'ICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHg9IjMuOTYiIHk9IjQiIHdpZHRoPSIyNy45OSIgaGVpZ2h0PSIyOCIgcng9IjIiIHJ5PSIyIi8+JyksbC5DbHJTaGFwZVBvd2VyPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEtMVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBk'@; put 'PSJNMTgsMzQuMTVhMTUsMTUsMCwwLDEtNy41Mi0yOCwxLDEsMCwwLDEsMSwxLjczLDEzLDEzLDAsMSwwLDEzLDAsMSwxLDAsMSwxLDEtMS43MywxNSwxNSwwLDAsMS03LjUyLDI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTgsMjFhMSwxLDAsMCwwLDEtMVY0YTEsMSwwLDAsMC0yLDBWMjBBMSwxLDAsMCwwLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1h'@; put 'bGVydGVkIiBkPSJNMzIuNTEsMTUuNEgzMC40NGExMywxMywwLDEsMS0xOS03LjUsMSwxLDAsMCwwLTEtMS43M0ExNSwxNSwwLDEsMCwzMywxOS4xNSwxNC45LDE0LjksMCwwLDAsMzIuNTEsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl'@; put 'cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0'@; put 'WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDIxYTEsMSwwLDAsMS0xLTFWNGExLDEsMCwwLDEsMiwwVjIwQTEsMSwwLDAsMSwxOCwyMVoiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41bC0uMzEsMEExMywxMywwLDEsMSwxMS40OCw3LjlhMSwxLDAsMCwwLTEtMS43MywxNSwxNSwwLDEsMCwyMS4zMSw3LjFBNy40OSw3LjQ5LDAsMCwxLDMw'@; put 'LDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0uMDYsMTcuNjhhMS4yOCwxLjI4LDAsMCwxLTEuMjktMS4yOFY4LjY1YTEuMjksMS4yOSwwLDAsMSwyLjU4LDBWMTguNEExLjI4LDEuMjgsMCwwLDEsMTguMDYsMTku'@; put 'NjhaTTE4LDI3Ljc5QTkuODgsOS44OCwwLDAsMSwxMi4xNyw5Ljg1YTEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4LDAsMSwwLDExLjQzLDUuOCw3LjA3LDcuMDcsMCwwLDAtMy01Ljc2QTEuMzcsMS4zNywwLDAsMSwyMiwxMC4yYTEuNCwx'@; put 'LjQsMCwwLDEsMS45NC0uMjlBOS44OCw5Ljg4LDAsMCwxLDE4LDI3Ljc5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40aC02QTkuNyw5LjcsMCwwLDEsMjgsMTcu'@; put 'ODlhMTAsMTAsMCwxLDEtMTUuODMtOCwxLjQsMS40LDAsMCwxLDEuOTQuMzEsMS4zNywxLjM3LDAsMCwxLS4zMSwxLjkyLDcuMTgsNy4xOCwwLDEsMCwxMS40Myw1LjgsNy4wOCw3LjA4LDAsMCwwLS40NS0yLjQ5SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOS4zNSwxNHY0LjRhMS4yOSwxLjI5'@; put 'LDAsMCwxLTIuNTgsMFY4LjY1YTEuMjksMS4yOSwwLDAsMSwyLjU4LDB2LjcxbDMuNzYtNi41MUExNiwxNiwwLDEsMCwzNCwxOGExNiwxNiwwLDAsMC0uMjMtMi42MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0'@; put 'aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0zLjU3LS45QTkuODMsOS44MywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0xNS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwx'@; put 'LjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4LDAsMSwwLDExLjQzLDUuOCw3LjA3LDcuMDcsMCwwLDAtMy01Ljc2QTEuMzcsMS4zNywwLDAsMSwyMiwxMC4yYTEuMzgsMS4zOCwwLDAsMSwxLjUyLS40OSw3LjQ1LDcuNDUsMCwwLDEtLjMtNi44MywxNi4wNiwxNi4wNiwwLDEsMCw5'@; put 'LjkzLDkuOTNBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE2Ljc3LDguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40YTEuMjksMS4yOSwwLDAsMS0yLjU4LDBaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGwuQ2xyU2hhcGVSZXdpbmQ9KDAsSC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNy4wOSwzMS41OGwtMTUuMzItMTJhMiwy'@; put 'LDAsMCwxLDAtMy4xNWwxNS4zMi0xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMS43NywxLjc3LDAsMCwxLDIwLDZ2Ni43TDMwLjgzLDQuNDJhMS45MywxLjkzLDAsMCwxLDIuMDYtLjIyQTIsMiwwLDAsMSwzNCw2VjMwYTIsMiwwLDAsMS0xLjExLDEuNzksMS45NCwxLjk0LDAsMCwxLTIu'@; put 'MDYtLjIyTDIwLDIzLjMxVjMwYTEuNzcsMS43NywwLDAsMS0uODUsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaTTMyLDMwbC4wNi0yNEwxOCwxNi44VjZMMywxOCwxOCwzMFYxOS4yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIgZD0iTTE2LjkyLDMxLjU4LDEuNiwxOS41N2EyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyQTEuOTMsMS45MywwLDAsMSwxOSw0LjIsMS44OSwxLjg5LDAsMCwxLDIwLDZ2Ni43TDMwLjY2LDQuNDJhMS45MywxLjkzLDAsMCwxLDIuMDYtLjIyQTIsMiwwLDAsMSwzMy44Myw2VjMwYTIs'@; put 'MiwwLDAsMS0xLjExLDEuNzksMS45NCwxLjk0LDAsMCwxLTIuMDYtLjIyTDIwLDIzLjMxVjMwYTEuODksMS44OSwwLDAsMS0xLDEuNzksMS45NCwxLjk0LDAsMCwxLTIuMDYtLjIyWiIvPicpLGwuQ2xyU2hhcGVGYXN0Rm9yd2FyZD0oMCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3Ljc3LDMxLjkyYTIsMiwwLDAsMS0uODYtLjJBMS44MSwxLjgxLDAsMCwxLDE2LDI5Ljkzdi02LjdMNS4yNCwzMS41YTEuOTQsMS45NCwwLDAsMS0yLjA2LjIyLDIsMiwwLDAsMS0xLjExLTEuNzl2LTI0QTIsMiwwLDAsMSwz'@; put 'LjE4LDQuMTJhMS45MywxLjkzLDAsMCwxLDIuMDYuMjJMMTYsMTIuNjFWNS45MWExLjgxLDEuODEsMCwwLDEsLjkxLTEuNzlBMS45MywxLjkzLDAsMCwxLDE5LDQuMzRsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNUwxOSwzMS41QTIsMiwwLDAsMSwxNy43NywzMS45MlptMC0xMi44VjI5Ljkz'@; put 'bDE1LjI2LTEyLTE1LjMyLTEyLC4wNiwxMC44MUw0LDUuOTF2MjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuNzEsMzJhMiwyLDAsMCwxLS44Ni0uMkExLjc3LDEuNzcsMCwwLDEsMTYsMzB2LTYuN0w1LjE3LDMx'@; put 'LjU4YTEuOTQsMS45NCwwLDAsMS0yLjA2LjIyQTIsMiwwLDAsMSwyLDMwVjZBMiwyLDAsMCwxLDMuMTEsNC4yYTEuOTMsMS45MywwLDAsMSwyLjA2LjIyTDE2LDEyLjY5VjZhMS43NywxLjc3LDAsMCwxLC44NS0xLjc5LDEuOTMsMS45MywwLDAsMSwyLjA2LjIybDE1LjMyLDEyYTIsMiwwLDAs'@; put 'MSwwLDMuMTVsLTE1LjMyLDEyQTIsMiwwLDAsMSwxNy43MSwzMloiLz4nKSxsLkNsclNoYXBlQ2FtZXJhPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw4SDI0LjdMMjMuNjQsNS4yOEEyLDIsMCwwLDAsMjEuNzgsNEgxNC4yMmEyLDIsMCwwLDAtMS44NywxLjI4TDExLjMsOEg0YTIs'@; put 'MiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wm0wLDIySDRWMTBoOC42N2wxLjU1LTRoNy41NmwxLjU1LDRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTksMTlhOSw5LDAsMSwwLDktOUE5LDksMCwwLDAsOSwxOVptMTYuNCwwQTcuNCw3LjQsMCwxLDEsMTgsMTEuNiw3LjQxLDcuNDEsMCwwLDEsMjUuNCwxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'OS4zNywxMi44M2EuOC44LDAsMCwwLS44LS44SDYuMTdhLjguOCwwLDAsMCwwLDEuNmgyLjRBLjguOCwwLDAsMCw5LjM3LDEyLjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4zNCwxOWE1LjU3LDUuNTcs'@; put 'MCwwLDAsMy4yNCw1bC44NS0xLjM3YTQsNCwwLDEsMSw0LjExLTYuNjFsLjg2LTEuMzhBNS41Niw1LjU2LDAsMCwwLDEyLjM0LDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw4SDI0LjdMMjMuNjQsNS4y'@; put 'OEEyLDIsMCwwLDAsMjEuNzgsNEgxNC4yMmEyLDIsMCwwLDAtMS44NywxLjI4TDExLjMsOEg0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk02LjE3LDEzLjYzYS44LjgsMCwwLDEsMC0xLjZoMi40YS44LjgsMCwwLDEs'@; put 'MCwxLjZaTTE4LDI4YTksOSwwLDEsMSw5LTlBOSw5LDAsMCwxLDE4LDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjExLDE5LjA2YTcuMDcsNy4wNywwLDAsMCw0LjExLDYuNDFsMS4wOS0xLjc0YTUsNSwwLDEs'@; put 'MSw1LjIyLTguMzlsMS4wOS0xLjc2YTcuMDYsNy4wNiwwLDAsMC0xMS41MSw1LjQ4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLGwuQ2xyU2hhcGVWaWRlb0NhbWVyYT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDEwLjM0YTIuMTEsMi4xMSwwLDAsMC0xLjE2LTEuOSwyLDIsMCwwLDAtMi4xMy4xNUwyNiwxMS42VjhhMiwyLDAsMCwwLTItMkg2YTQsNCwwLDAsMC00LDRWMjZhNCw0LDAsMCwwLDQsNEgyNGEyLDIsMCwwLDAsMi0yVjI0LjRsNC42NCwzYTIuMDcs'@; put 'Mi4wNywwLDAsMCwyLjIuMkEyLjExLDIuMTEsMCwwLDAsMzQsMjUuNjZaTTMxLjkzLDI1Ljc3Yy0uMDYsMC0uMTEsMC0uMTktLjA2TDI0LDIwLjc3VjI4SDZhMiwyLDAsMCwxLTItMlYxMEEyLDIsMCwwLDEsNiw4SDI0djcuMjNsNy44LTVhLjExLjExLDAsMCwxLC4xMywwLC4xMS4xMSwwLDAs'@; put 'MSwuMDcuMTFWMjUuNjZBLjExLjExLDAsMCwxLDMxLjkzLDI1Ljc3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjMsOS4zNSwyNiwxMi45VjhhMiwyLDAsMCwwLTItMkg2YTQsNCwwLDAsMC00LDRWMjZhNCw0LDAs'@; put 'MCwwLDQsNEgyNGEyLDIsMCwwLDAsMi0yVjIzLjA4bDYuMywzLjU1QTEuMSwxLjEsMCwwLDAsMzQsMjUuNzdWMTAuMkExLjEsMS4xLDAsMCwwLDMyLjMsOS4zNVoiLz4nKSxsLkNsclNoYXBlU2h1ZmZsZT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIxLjYxLDExaDguNjJsLTMuMywzLjNhMSwxLDAsMSwwLDEuNDEsMS40MkwzNCwxMC4wOGwtLjcxLS43MWgwTDI4LjM0LDQuNDNhMSwxLDAsMCwwLTEuNDEsMS40MkwzMC4xMSw5SDIxYTEsMSwwLDAsMC0uODYuNUwxNy41LDE0LjA5bDEuMTYsMloiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTEuMDcsMjUuMDdIM2ExLDEsMCwwLDAsMCwyaDguNjVhMSwxLDAsMCwwLC44Ni0uNUwxNS4xOCwyMiwxNCwyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjguMzQsMjAuMTdhMSwxLDAsMCwwLTEuNDEsMS40MmwzLjUsMy41SDIxLjYxTDEyLjUxLDkuNTNhMSwxLDAsMCwwLS44Ni0uNUgzYTEsMSwwLDEsMCwwLDJoOC4wN2w5LjEsMTUuNTVhMSwxLDAsMCwwLC44Ni41SDI5LjlsLTMs'@; put 'M2ExLDEsMCwwLDAsMS40MSwxLjQybDQuOTUtNC45NGgwbC43MS0uNzFaIi8+JyksbC5DbHJTaGFwZVZvbHVtZURvd249KDAsSC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yMy40MSwyNS4xMWExLDEsMCwwLDEtLjU0'@; put 'LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i'@; put 'TTE4LDMyYTIsMiwwLDAsMS0xLjQyLS41OUw5LjE0LDI0SDRhMiwyLDAsMCwxLTItMlYxNGEyLDIsMCwwLDEsMi0ySDkuMjJsNy4zMy03LjQxQTIsMiwwLDAsMSwyMCw2VjMwYTIsMiwwLDAsMS0xLjI0LDEuODVBMiwyLDAsMCwxLDE4LDMyWk00LDE0djhIOS41NmExLDEsMCwwLDEsLjcxLjI4'@; put 'TDE4LDMwVjZsLTcuNjUsNy42OGExLDEsMCwwLDEtLjcxLjNaTTE4LDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMTFhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUs'@; put 'MSwxLDAsMSwxLDEtMS43M0E4LjIxLDguMjEsMCwwLDEsMjMuOTQsMjUsMSwxLDAsMCwxLDIzLjQxLDI1LjExWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LjM0LDMuODcsOSwxMkgzYTEsMSwwLDAsMC0xLDFWMjNh'@; put 'MSwxLDAsMCwwLDEsMUg4LjgzbDkuNTEsOC4zQTEsMSwwLDAsMCwyMCwzMS41NVY0LjYyQTEsMSwwLDAsMCwxOC4zNCwzLjg3WiIvPicpLGwuQ2xyU2hhcGVWb2x1bWVVcD0oMCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'ZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkExLDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjYyLDMxLjE4YTEsMSwwLDAsMS0uNDUtMS44OUExMi40NCwxMi40NCwwLDAsMCwyNSw2Ljg5YTEsMSwwLDEsMSwuODctMS44LDE0LjQ0LDE0LjQ0LDAsMCwxLC4yNCwyNkExLDEsMCwwLDEsMjUuNjIsMzEuMThaIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA2YTIsMiwwLDAsMS0xLjQyLS41OUw5LjE0LDI0SDRhMiwyLDAsMCwxLTItMlYxNGEyLDIsMCwwLDEsMi0ySDkuMjJsNy4zMy03LjM5QTIsMiwwLDAsMSwyMCw2djI0YTIsMiww'@; put 'LDAsMS0xLjI0LDEuODVBMiwyLDAsMCwxLDE4LDMyLjA2Wk00LDE0djhIOS41NmExLDEsMCwwLDEsLjcxLjNMMTgsMzAuMDZWNkwxMC4zNSwxMy43YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEiIGQ9Ik0yMy40MSwyNS4yNWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczLDguMjEsOC4yMSwwLDAsMSwuMjQsMTQuMDZBMSwxLDAsMCwxLDIzLjQxLDI1LjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI1LjYyLDMxLjE4YTEsMSwwLDAsMS0uNDUtMS44OUExMi40NCwxMi40NCwwLDAsMCwyNSw2Ljg5YTEsMSwwLDEsMSwuODctMS44LDE0LjQ0LDE0LjQ0LDAsMCwxLC4yNCwyNkExLDEsMCwwLDEsMjUuNjIsMzEuMThaIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTguMzMsNCw5LjA3LDEyaC02YTEsMSwwLDAsMC0xLDF2OS45MmExLDEsMCwwLDAsMSwxSDguODhsOS40Niw4LjI0QTEsMSwwLDAsMCwyMCwzMS40M1Y0LjcyQTEsMSwwLDAsMCwxOC4zMyw0WiIv'@; put 'PicpLGwuQ2xyU2hhcGVWb2x1bWVNdXRlPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMy42MSw2LjQxLDkuMTksMTJINGEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkg5LjE0bDcuNDEsNy40N0EyLDIs'@; put 'MCwwLDAsMTgsMzJhMiwyLDAsMCwwLC43Ni0uMTVBMiwyLDAsMCwwLDIwLDMwVjIyLjc3bDUuODksNS44OWMtLjI1LjE1LS40OS4yOS0uNzUuNDJhMSwxLDAsMCwwLC45LDEuNzksMTQuNCwxNC40LDAsMCwwLDEuMzEtLjc1bDIuMjgsMi4yOEwzMSwzMSw1LDVaTTE4LDMwbC03LjczLTcuNzdB'@; put 'MSwxLDAsMCwwLDkuNTYsMjJINFYxNEg5LjY0YTEsMSwwLDAsMCwuNzEtLjNsLjI2LS4yNkwxOCwyMC44MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjQuODksNi42OUExMi40MiwxMi40MiwwLDAsMSwyOSwy'@; put 'Ni4xbDEuNDIsMS40MkExNC40MiwxNC40MiwwLDAsMCwyNS43Niw0Ljg4YTEsMSwwLDEsMC0uODcsMS44WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMi42OSwxMi42MkE2LjI3LDYuMjcsMCwwLDEsMjUuOCwx'@; put 'OGE2LjE3LDYuMTcsMCwwLDEtMS4yNCwzLjcxTDI2LDIzLjEzQTguMTUsOC4xNSwwLDAsMCwyNy44LDE4YTguMjgsOC4yOCwwLDAsMC00LjEtNy4xMSwxLDEsMCwxLDAtMSwxLjczWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTQiIGQ9Ik0xOCw2djkuMTVsMiwyVjZhMiwyLDAsMCwwLTMuNDItMS40MUwxMiw5LjE3bDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNC44Nyw2LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI4Ljc1LDI2'@; put 'LjNsMS40MiwxLjQyQTE0LjQzLDE0LjQzLDAsMCwwLDI1Ljc0LDQuODhhMSwxLDAsMCwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjcuMywyNy42N2gwbC0zLjg0LTMuODQtLjU3LS41N2gwTDQuNjMs'@; put 'NSwzLjIxLDYuNDEsOC44LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjIzLjJsNS41OSw1LjU5Yy0uMTcuMS0uMzQuMi0uNTEuMjlhMSwxLDAsMCwwLC45LDEuNzljLjM3LS4xOS43Mi0uNCwxLjA4LS42MmwyLjE0'@; put 'LDIuMTRMMzAuNjEsMzFsLTMuMjUtMy4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yMi42OSwxMi42MkE2LjI3LDYuMjcsMCwwLDEsMjUuOCwxOGE2LjE3LDYuMTcsMCwwLDEtMS40MiwzLjkybDEuNDIsMS40MmE4'@; put 'LjE2LDguMTYsMCwwLDAsMi01LjM0LDguMjgsOC4yOCwwLDAsMC00LjEtNy4xMSwxLDEsMCwxLDAtMSwxLjczWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIwLDQuNjJhMSwxLDAsMCwwLTEuNjYtLjc1bC02LjQyLDUu'@; put 'NkwyMCwxNy41NFoiLz4nKSxsLkNsclNoYXBlSGVhZHBob25lcz0oMCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwxNy41VjMxSDkuMkEyLjc0LDIuNzQsMCwwLDAsMTIs'@; put 'MjguMzNWMjEuNjdBMi43NCwyLjc0LDAsMCwwLDkuMiwxOUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjE5SDI2LjhBMi43NCwyLjc0LDAsMCwwLDI0LDIxLjY3djYuNjdBMi43NCwyLjc0LDAsMCwwLDI2LjgsMzFIMzJWMTcuNUExNC4y'@; put 'NywxNC4yNywwLDAsMCwxOCwzWk05LjIsMjFhLjc1Ljc1LDAsMCwxLC44LjY3djYuNjdhLjc1Ljc1LDAsMCwxLS44LjY3SDZWMjFaTTI2LDI4LjMzVjIxLjY3YS43NS43NSwwLDAsMSwuOC0uNjdIMzB2OEgyNi44QS43NS43NSwwLDAsMSwyNiwyOC4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwzQTE0LjI3LDE0LjI3LDAsMCwwLDQsMTcuNVYzMUg4LjJBMS43NCwxLjc0LDAsMCwwLDEwLDI5LjMzVjIyLjY3QTEuNzQsMS43NCwwLDAsMCw4LjIsMjFINlYxNy41QTEyLjI3LDEyLjI3LDAsMCwxLDE4LDUs'@; put 'MTIuMjcsMTIuMjcsMCwwLDEsMzAsMTcuNVYyMUgyNy44QTEuNzQsMS43NCwwLDAsMCwyNiwyMi42N3Y2LjY3QTEuNzQsMS43NCwwLDAsMCwyNy44LDMxSDMyVjE3LjVBMTQuMjcsMTQuMjcsMCwwLDAsMTgsM1oiLz4nKSxsLkNsclNoYXBlRmlsbVN0cmlwPSgwLEguY2xySWNvblNWRykoJzxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRabTAsMjZINlY2SDMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNC42LDIzLjA3YTEuMjksMS4yOSwwLDAsMCwxLjI0LjA5bDguNzMtNGExLjMsMS4zLDAsMCwwLDAtMi4zN2gwbC04LjczLTRBMS4zLDEuMywwLDAsMCwxNCwxNHY4QTEuMjksMS4yOSwwLDAsMCwxNC42LDIzLjA3Wm0x'@; put 'LTguNkwyMy4zMSwxOCwxNS42LDIxLjUxWiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjgiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxNCIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjIwIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAg'@; put 'ICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iMjYiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSI4IiB5PSIyNiIg'@; put 'd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjE0IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTkiIHg9IjIwIiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSIyNiIgeT0iMjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFpNMjAsN2gydjNIMjBaTTE0LDdoMnYzSDE0Wk0xMCwyOUg4VjI2aDJa'@; put 'bTAtMTlIOFY3aDJabTYsMTlIMTRWMjZoMlptNiwwSDIwVjI2aDJabTMuMTYtMTAuMTZMMTUuMzksMjMuMkExLDEsMCwwLDEsMTQsMjIuMjhWMTMuNTdhMSwxLDAsMCwxLDEuNDEtLjkxTDI1LjE2LDE3QTEsMSwwLDAsMSwyNS4xNiwxOC44NFpNMjgsMjlIMjZWMjZoMlptMC0xOUgyNlY3aDJa'@; put 'Ii8+JyksbC5DbHJTaGFwZU11c2ljTm90ZT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMtMTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4zNGE1'@; put 'Ljg5LDUuODksMCwwLDAtLjgyLS41Niw4LjMzLDguMzMsMCwwLDAtNi41My0uNDFDNy41NywyMi43LDQuOTIsMjYuNSw1Ljc4LDI5Ljg0YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5LjU0LDAsMCwwLDE1LDMzLjU3YzMuNjctMS4xOCw2'@; put 'LjE3LTQuMzMsNi4wNi03LjM2VjkuMzRhMjkuMTQsMjkuMTQsMCwwLDEsNi41NSwxLjQzLDEsMSwwLDEsMCwuNzItMS44N0EzMS4zNywzMS4zNywwLDAsMCwyMSw3LjMzVjQuMTdjMy4zMy4zNiw4LDEuMzgsOC45MiwzLDIsMy40MS0yLjMzLDcuMzYtMi4zNyw3LjRhMSwxLDAsMCwwLDEuMzMs'@; put 'MS40OUMyOS4xNSwxNS44NSwzNC41LDExLDMxLjY4LDYuMTZaTTE0LjM1LDMxLjY3YTYuNDMsNi40MywwLDAsMS01LS4yNiwzLjMxLDMuMzEsMCwwLDEtMS42OS0yLjA3Yy0uNi0yLjMzLDEuNDUtNS4wNSw0LjU4LTYuMDZhNy41Miw3LjUyLDAsMCwxLDIuMy0uMzcsNS41Miw1LjUyLDAsMCwx'@; put 'LDIuNjUuNjIsMy4zMSwzLjMxLDAsMCwxLDEuNjksMi4wN0MxOS41NCwyNy45NCwxNy40OSwzMC42NiwxNC4zNSwzMS42N1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiXG4gICAgICAgICAgICAgICAgZD0iTTMxLjY4LDYuMTZj'@; put 'LTEuOTItMy4zLTEwLjYtNC0xMS41OC00LjA5TDE5LDJWMjIuMjlhNS44OCw1Ljg4LDAsMCwwLS44MS0uNTUsOC4zMyw4LjMzLDAsMCwwLTYuNTMtLjQxYy00LjEyLDEuMzMtNi43Nyw1LjEzLTUuOTEsOC40N2E1LjMzLDUuMzMsMCwwLDAsMi42NiwzLjMyLDcuNDgsNy40OCwwLDAsMCwzLjYx'@; put 'Ljg4QTkuNTQsOS41NCwwLDAsMCwxNSwzMy41MmMzLjctMS4xOSw2LjItNC4zNyw2LjA2LTcuNDIsMCwwLDAsMCwwLDBWOC40OWMxLC4xMiwyLjM3LjMzLDMuODIuNjRhMTEuMTcsMTEuMTcsMCwwLDEsNC4wNiwxLjQ2YzEsLjY2LjM4LDEuOS4zMywyYTExLjgsMTEuOCwwLDAsMS0xLjY2LDIs'@; put 'MSwxLDAsMCwwLDEuMzMsMS40OUMyOS4xNSwxNS44NSwzNC41LDExLDMxLjY4LDYuMTZaIi8+JyksbC5DbHJTaGFwZUltYWdlR2FsbGVyeT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIuMTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwxMS44OFYzMC4xMkExLjg4LDEuODgsMCww'@; put 'LDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk0zMiwzMEg0VjEySDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTguNTYsMTkuNDVhMywzLDAsMSww'@; put 'LTMtM0EzLDMsMCwwLDAsOC41NiwxOS40NVptMC00LjZBMS42LDEuNiwwLDEsMSw3LDE2LjQ1LDEuNiwxLjYsMCwwLDEsOC41NiwxNC44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik03LjksMjhsNi02LDMuMTgsMy4xOEwxNC4yNiwy'@; put 'OGgybDcuNDYtNy40NkwzMCwyNi43N3YtMkwyNC4yLDE5YS43MS43MSwwLDAsMC0xLDBsLTUuMTYsNS4xNkwxNC4zNywyMC41YS43MS43MSwwLDAsMC0xLDBMNS45MiwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBh'@; put 'MSwxLDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0y'@; put 'NmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCww'@; put 'LDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNOC41NiwxMy40NWEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjU2LDEzLjQ1Wk0zMCwyOGgtMjRsNy40Ni03LjQ3YS43MS43MSwwLDAsMSwxLDBsMy42OCwzLjY4TDIzLjIxLDE5YS43MS43MSwwLDAsMSwxLDBMMzAs'@; put 'MjQuNzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGwuQ2xyU2hhcGVSZXBsYXlBbGw9KDAsSC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE3LjQ2LDI2LjIyYTEuNCwxLjQsMCwwLDAsMS0uNDJsNS41OS01LjU2YTEuNDMsMS40MywwLDAsMCwuNDItMSwx'@; put 'LjQ2LDEuNDYsMCwwLDAtLjQyLTFsLTUuNTktNS41NmExLjQzLDEuNDMsMCwwLDAtMi40NCwxVjI0Ljc5YTEuNDEsMS40MSwwLDAsMCwuODgsMS4zMkExLjU0LDEuNTQsMCwwLDAsMTcuNDYsMjYuMjJabS4xNi0xMi4xNiw1LjE5LDUuMTYtNS4xOSw1LjE3WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LjA2LDVoLTYuN2wyLjkyLTIuNjRBMSwxLDAsMCwwLDEyLjk0Ljg4TDcuMzIsNiwxMi45NCwxMWExLDEsMCwwLDAsLjY3LjI2LDEsMSwwLDAsMCwuNzQtLjMzLDEsMSwwLDAsMC0uMDctMS40MkwxMS40Niw3aDYuNkExMS43'@; put 'OCwxMS43OCwwLDEsMSw3LjcxLDI0LjQxLDEsMSwwLDAsMCw2LDI1LjM2LDEzLjc4LDEzLjc4LDAsMSwwLDE4LjA2LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlUmVwbGF5T25lPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9'@; put 'Ik0xOSwyNy4yN2ExLDEsMCwwLDAsMS0xVjE0YTEsMSwwLDAsMC0xLTFIMTlhMy44LDMuOCwwLDAsMC0xLjEuMjNsLTIsLjYyYS45Mi45MiwwLDAsMC0uNzIuODYuODguODgsMCwwLDAsLjg4Ljg2LDEuNDYsMS40NiwwLDAsMCwuNDMtLjA4TDE4LDE1LjA3djExLjJBMSwxLDAsMCwwLDE5LDI3'@; put 'LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LjA2LDVoLTYuN2wyLjkyLTIuNjRBMSwxLDAsMCwwLDEyLjk0Ljg4TDcuMzIsNiwxMi45NCwxMWExLDEsMCwwLDAsLjY3LjI2LDEsMSwwLDAsMCwuNzQtLjMzLDEsMSwwLDAsMC0u'@; put 'MDctMS40MkwxMS40Niw3aDYuNkExMS43OCwxMS43OCwwLDEsMSw3LjcxLDI0LjQxLDEsMSwwLDAsMCw2LDI1LjM2LDEzLjc4LDEzLjc4LDAsMSwwLDE4LjA2LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlVmlkZW9HYWxsZXJ5'@; put 'PSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMw'@; put 'SDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFoMFY0aDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBh'@; put 'dGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0yNmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMi44MiwyNi43OWExLjc0LDEuNzQsMCwwLDAsLjkzLjI4LDEuNjgsMS42OCwwLDAsMCwu'@; put 'NjktLjE1bDkuNzctNC4zNmExLjY5LDEuNjksMCwwLDAsMC0zLjFMMTQuNDQsMTUuMWExLjcsMS43LDAsMCwwLTIuMzksMS41NXY4LjcyQTEuNywxLjcsMCwwLDAsMTIuODIsMjYuNzlabS42My0xMC4xNGEuMjkuMjksMCwwLDEsLjE0LS4yNS4zLjMsMCwwLDEsLjE2LDAsLjI3LjI3LDAsMCwx'@; put 'LC4xMiwwbDkuNzcsNC4zNWEuMjkuMjksMCwwLDEsLjE4LjI4LjI4LjI4LDAsMCwxLS4xOC4yN2wtOS43Nyw0LjM2YS4yOC4yOCwwLDAsMS0uMjgsMCwuMzEuMzEsMCwwLDEtLjE0LS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0z'@; put 'Mi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTI0LjE4LDIxLjgzbC05Ljc3LDQuMzZBMSwxLDAsMCwxLDEz'@; put 'LDI1LjI4VjE2LjU2YTEsMSwwLDAsMSwxLjQxLS45MUwyNC4xOCwyMEExLDEsMCwwLDEsMjQuMTgsMjEuODNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwxLDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRa'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwxLDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGwuQ2xyU2hhcGVNaWNyb3Bo'@; put 'b25lPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHogTTEzLDljMC0yLjgsMi4yLTUsNS01czUsMi4yLDUsNXY4XG5cdFx0YzAsMi44LTIuMiw1LTUsNXMt'@; put 'NS0yLjItNS01Vjl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTdoLTJjMCw1LjUtNC41LDEwLTEwLDEwUzgsMjIuNSw4LDE3SDZjMCw2LjMsNC44LDExLjQsMTEsMTEuOVYzMmgtM2MtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEs'@; put 'MWg4YzAuNiwwLDEtMC40LDEtMVxuXHRcdHMtMC40LTEtMS0xaC0zdi0zLjFDMjUuMiwyOC40LDMwLDIzLjMsMzAsMTd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsMjRjMy45LDAsNy0zLjEsNy03VjljMC0zLjktMy4xLTctNy03'@; put 'cy03LDMuMS03LDd2OEMxMSwyMC45LDE0LjEsMjQsMTgsMjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdINmMwLDYuMyw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYs'@; put 'MC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlPSgwLEgu'@; put 'Y2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCw0YzIuOCwwLDUsMi4yLDUsNXY4'@; put 'YzAsMC40LTAuMSwwLjgtMC4yLDEuMmwxLjYsMS42YzAuNC0wLjksMC42LTEuOCwwLjYtMi44VjljMC0zLjktMy4yLTctNy4xLTYuOVxuXHRcdGMtMi45LDAtNS42LDEuOS02LjUsNC43TDEzLDguM0MxMy41LDUuOSwxNS42LDQuMiwxOCw0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LjIsMjYuNmw2LjksNi45bDEuNC0xLjRMNCwyLjZMMi42LDRsOC40LDguNFYxN2MwLDMuOSwzLjEsNyw3LDdjMS4zLDAsMi41LTAuMywzLjYtMWwyLjIsMi4yQzIyLjEsMjYuNCwyMC4xLDI3LDE4LDI3XG5cdFx0Yy01LjQsMC4yLTkuOC00'@; put 'LjEtMTAtOS40YzAtMC4yLDAtMC40LDAtMC42SDZjMC4xLDYuMiw0LjgsMTEuNCwxMSwxMnYzaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTNDMjEuMiwyOC44LDIzLjQsMjgsMjUuMiwyNi42eiBNMTMuOCwxOS43'@; put 'QzEzLjMsMTguOSwxMywxOCwxMywxN3YtMi42bDcuMSw3LjFDMTcuOSwyMi41LDE1LjIsMjEuOCwxMy44LDE5Ljd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAsMTdoLTJjMCwxLjgtMC41LDMuNS0xLjQsNWwxLjUsMS41QzI5LjMs'@; put 'MjEuNSwyOS45LDE5LjMsMzAsMTd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNSwxN1Y5YzAtMy45LTMuMi03LTcuMS02LjljLTIuOSwwLTUuNiwxLjktNi41LDQuN2wxMywxM0MyNC44LDE4LjksMjUsMTcuOSwyNSwxN3oiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LjIsMjYuNmw2LjksNi45bDEuNC0xLjRMNCwyLjZMMi42LDRsOC40LDguNFYxN2MwLDMuOSwzLjEsNyw3LDdjMS4zLDAsMi41LTAuMywzLjYtMWwyLjIsMi4yQzIyLjEsMjYuNCwyMC4xLDI3LDE4LDI3XG5cdFx0'@; put 'Yy01LjQsMC4yLTkuOC00LjEtMTAtOS40YzAtMC4yLDAtMC40LDAtMC42SDZjMC4xLDYuMiw0LjgsMTEuNCwxMSwxMnYzaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTNDMjEuMiwyOC44LDIzLjQsMjgsMjUuMiwy'@; put 'Ni42eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxsLk1lZGlhU2hhcGVzPXtwbGF5OmwuQ2xyU2hhcGVQbGF5LHBhdXNlOmwuQ2xyU2hhcGVQYXVzZSwic3RlcC1mb3J3YXJkIjpsLkNsclNoYXBlU3RlcEZvcndhcmQsc3RvcDpsLkNsclNoYXBlU3RvcCxw'@; put 'b3dlcjpsLkNsclNoYXBlUG93ZXIscmV3aW5kOmwuQ2xyU2hhcGVSZXdpbmQsImZhc3QtZm9yd2FyZCI6bC5DbHJTaGFwZUZhc3RGb3J3YXJkLGNhbWVyYTpsLkNsclNoYXBlQ2FtZXJhLCJ2aWRlby1jYW1lcmEiOmwuQ2xyU2hhcGVWaWRlb0NhbWVyYSxzaHVmZmxlOmwuQ2xyU2hhcGVTaHVm'@; put 'ZmxlLCJ2b2x1bWUtdXAiOmwuQ2xyU2hhcGVWb2x1bWVVcCwidm9sdW1lLWRvd24iOmwuQ2xyU2hhcGVWb2x1bWVEb3duLCJ2b2x1bWUtbXV0ZSI6bC5DbHJTaGFwZVZvbHVtZU11dGUsaGVhZHBob25lczpsLkNsclNoYXBlSGVhZHBob25lcywiZmlsbS1zdHJpcCI6bC5DbHJTaGFwZUZpbG1T'@; put 'dHJpcCwibXVzaWMtbm90ZSI6bC5DbHJTaGFwZU11c2ljTm90ZSwiaW1hZ2UtZ2FsbGVyeSI6bC5DbHJTaGFwZUltYWdlR2FsbGVyeSwicmVwbGF5LWFsbCI6bC5DbHJTaGFwZVJlcGxheUFsbCwicmVwbGF5LW9uZSI6bC5DbHJTaGFwZVJlcGxheU9uZSwidmlkZW8tZ2FsbGVyeSI6bC5DbHJT'@; put 'aGFwZVZpZGVvR2FsbGVyeSxtaWNyb3Bob25lOmwuQ2xyU2hhcGVNaWNyb3Bob25lLCJtaWNyb3Bob25lLW11dGUiOmwuQ2xyU2hhcGVNaWNyb3Bob25lTXV0ZX0sdHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5'@; put 'SWNvbnMuYWRkKGwuTWVkaWFTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3NvY2lhbC1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMv'@; put 'c2hhcGVzL3NvY2lhbC1zaGFwZXMudHMgKioqIQogICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oTSxsLHYpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkobCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbC5Tb2NpYWxTaGFwZXM9bC5DbHJTaGFwZUhhc2h0YWc9bC5DbHJTaGFwZUNyb3duPWwuQ2xyU2hhcGVUaHVtYnNEb3duPWwuQ2xyU2hhcGVUaHVtYnNVcD1sLkNsclNoYXBlU2FkRmFjZT1sLkNsclNoYXBlTmV1dHJhbEZhY2U9bC5D'@; put 'bHJTaGFwZUhhcHB5RmFjZT1sLkNsclNoYXBlUGljdHVyZT1sLkNsclNoYXBlQ2hhdEJ1YmJsZT1sLkNsclNoYXBlVGFsa0J1YmJsZXM9bC5DbHJTaGFwZUhlYXJ0QnJva2VuPWwuQ2xyU2hhcGVIZWFydD1sLkNsclNoYXBlSW5ib3g9bC5DbHJTaGFwZUZsYWc9bC5DbHJTaGFwZVRhc2tzPWwu'@; put 'Q2xyU2hhcGVFbnZlbG9wZT1sLkNsclNoYXBlQm9va21hcms9bC5DbHJTaGFwZUhhbGZTdGFyPWwuQ2xyU2hhcGVTdGFyPWwuQ2xyU2hhcGVTaGFyZT12b2lkIDA7dmFyIHA9digKLyohIC4uL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9k'@; put 'ZXNjcmlwdG9yLWNvbmZpZy50cyIpLGE9digKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO3Y9digKLyohIC4vY29yZS1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBl'@; put 'cy9jb3JlLXNoYXBlcy50cyIpLGwuQ2xyU2hhcGVTaGFyZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjUzLDI0YTUsNSwwLDAsMC0zLjYsMS41NUwxMS43NCwxOS40NWE0LjQ3LDQuNDcsMCwwLDAsMC0y'@; put 'LjhsMTIuMjEtNi4yMWE1LjEyLDUuMTIsMCwxLDAtMS4wNy0xLjdMMTAuNzksMTQuODlhNSw1LDAsMSwwLDAsNi4zM2wxMi4wNiw2LjA3QTQuOTMsNC45MywwLDAsMCwyMi41NCwyOWE1LDUsMCwxLDAsNS01Wm0wLTIwYTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDI3LjUzLDRaTTcsMjFhMywz'@; put 'LDAsMSwxLDMtM0EzLDMsMCwwLDEsNywyMVpNMjcuNTMsMzJhMywzLDAsMSwxLDMtM0EzLDMsMCwwLDEsMjcuNTMsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI3LjUzLDI0YTUsNSwwLDAsMC0zLjYsMS41'@; put 'NUwxMS43NCwxOS40NWE0LjQ3LDQuNDcsMCwwLDAsMC0yLjhsMTIuMjEtNi4yMWE1LjEyLDUuMTIsMCwxLDAtMS4wNy0xLjdMMTAuNzksMTQuODlhNSw1LDAsMSwwLDAsNi4zM2wxMi4wNiw2LjA3QTQuOTMsNC45MywwLDAsMCwyMi41NCwyOWE1LDUsMCwxLDAsNS01WiIvPicpLGwuQ2xyU2hh'@; put 'cGVTdGFyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTksMzRhMi4yMiwyLjIyLDAsMCwxLTEuMjQtLjM4bC03LjQ2LTVhLjIyLjIyLDAsMCwwLS4yNSwwbC03LjQ2LDVBMi4yMiwyLjIyLDAsMCwxLDcu'@; put 'NCwzMS4yMWwyLjQ1LTguNjRhLjIzLjIzLDAsMCwwLS4wOC0uMjRMMi43MSwxNi43OGEyLjIyLDIuMjIsMCwwLDEsMS4yOS00bDktLjM0YS4yMy4yMywwLDAsMCwuMi0uMTVsMy4xLTguNDNhMi4yMiwyLjIyLDAsMCwxLDQuMTcsMGwzLjEsOC40M2EuMjMuMjMsMCwwLDAsLjIuMTVsOSwuMzRh'@; put 'Mi4yMiwyLjIyLDAsMCwxLDEuMjksNEwyNywyMi4zM2EuMjIuMjIsMCwwLDAtLjA4LjI0bDIuNDUsOC42NEEyLjIzLDIuMjMsMCwwLDEsMjcuMTksMzRabS04LjgyLTcuNDJBMi4yMSwyLjIxLDAsMCwxLDE5LjYsMjdsNy40Niw1YS4yMi4yMiwwLDAsMCwuMzQtLjI1bC0yLjQ1LTguNjRhMi4y'@; put 'MSwyLjIxLDAsMCwxLC43Ny0yLjM1bDcuMDYtNS41NWEuMjIuMjIsMCwwLDAtLjEzLS40bC05LS4zNGEyLjIyLDIuMjIsMCwwLDEtMi0xLjQ2bC0zLjEtOC40M2EuMjIuMjIsMCwwLDAtLjQyLDBMMTUuMDYsMTNhMi4yMiwyLjIyLDAsMCwxLTIsMS40NmwtOSwuMzRhLjIyLjIyLDAsMCwwLS4x'@; put 'My40TDExLDIwLjc2YTIuMjIsMi4yMiwwLDAsMSwuNzcsMi4zNUw5LjMzLDMxLjc1YS4yMS4yMSwwLDAsMCwuMDguMjQuMi4yLDAsMCwwLC4yNiwwbDcuNDYtNUEyLjIyLDIuMjIsMCwwLDEsMTguMzYsMjYuNjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBsLTMuMSw4LjQzYS4yMy4yMywwLDAsMS0uMi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAs'@; put 'MCwwLTEuMjksNGw3LjA2LDUuNTVhLjIzLjIzLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxYTIuMjIsMi4yMiwwLDAsMCwzLjM4LDIuNDVsNy40Ni01YS4yMi4yMiwwLDAsMSwuMjUsMGw3LjQ2LDVhMi4yLDIuMiwwLDAsMCwyLjU1LDAsMi4yLDIuMiwwLDAsMCwuODMtMi40bC0yLjQ1LTguNjRh'@; put 'LjIyLjIyLDAsMCwxLC4wOC0uMjRaIi8+JyksbC5DbHJTaGFwZUhhbGZTdGFyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIyLDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAs'@; put 'MCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41NWEuMjIuMjIsMCwwLDEsLjA4LjI0TDcuMzUsMzEuMjFBMi4yMywyLjIzLDAsMCwwLDkuNDks'@; put 'MzRhMi4yMiwyLjIyLDAsMCwwLDEuMjQtLjM4bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMjIsMi4yMiwwLDAsMCwzLjM4LTIuNDVsLTIuNDUtOC42NGEuMjMuMjMsMCwwLDEsLjA4LS4yNFpNMTguMzMsMjYuNjJoMGEyLjIxLDIuMjEsMCwwLDAtMS4yNC4zOEw5LjYyLDMy'@; put 'YS4yMi4yMiwwLDAsMS0uMzQtLjI1bDIuNDUtOC42NEEyLjIxLDIuMjEsMCwwLDAsMTEsMjAuNzZMMy45LDE1LjIxYS4yMi4yMiwwLDAsMSwuMTMtLjRsOS0uMzRBMi4yMiwyLjIyLDAsMCwwLDE1LDEzbDMuMS04LjQzYS4yLjIsMCwwLDEsLjIxLS4xNWgwWiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIsMCwwLDAtMS4yOS00bC05LS4zNGEuMjMuMjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEt'@; put 'LjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4zNSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAsMy4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIs'@; put 'MCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0Wk0yNC45LDIzLjExbDIuNDUsOC42NEEuMjIuMjIsMCwwLDEsMjcsMzJsLTcuNDYtNWEyLjIxLDIuMjEsMCwwLDAtMS4yNC0uMzhoMFY0LjQ0aDBhLjIuMiwwLDAsMSwuMjEuMTVMMjEuNjIsMTNhMi4yMiwyLjIy'@; put 'LDAsMCwwLDIsMS40Nmw5LC4zNGEuMjIuMjIsMCwwLDEsLjEzLjRsLTcuMDYsNS41NUEyLjIxLDIuMjEsMCwwLDAsMjQuOSwyMy4xMVoiLz4nKSxsLkNsclNoYXBlQm9va21hcms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIGQ9Ik0yNiwzNGEyLDIsMCwwLDEtMS40MS0uNThMMTgsMjYuODJsLTYuNTQsNi41MkEyLDIsMCwwLDEsOCwzMS45M1Y0YTIsMiwwLDAsMSwyLTJIMjZhMiwyLDAsMCwxLDIsMlYzMmEyLDIsMCwwLDEtMiwyWm0wLTJoMFY0SDEwVjMxLjkzTDE4LDI0WiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNiwySDEwQTIsMiwwLDAsMCw4LDRWMzEuOTNhMiwyLDAsMCwwLDMuNDIsMS40MWw2LjU0LTYuNTIsNi42Myw2LjZBMiwyLDAsMCwwLDI4LDMyVjRBMiwyLDAsMCwwLDI2LDJaIi8+JyksbC5DbHJTaGFw'@; put 'ZUVudmVsb3BlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTMwLjQ2LDI4SDUu'@; put 'NjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMEwzMiw5LjIxdjE3LjVsLTcuMzYtNy4zNi0xLjQxLDEuNDFaTTUuMzEsOEgzMC4zOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMiwxMy4wOFYyNi43MWwtNy4zNi03LjM2LTEuNDEsMS40MUwzMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5YTIsMiwwLDAsMCwyLjgyLDBsOC44My04Ljc4'@; put 'YTcuNDQsNy40NCwwLDAsMS0yLS44NWwtOC4yNiw4LjIxTDUuMzEsOEgyMi44MWE3LjQ5LDcuNDksMCwwLDEtLjMxLTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4yQTcuNDUsNy40NSwwLDAsMSwzMiwxMy4wOFoiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuMjZIMzJWMjYuNzFsLTcuMzYtNy4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDYuNjYtNi42M0gyMy4wOGwt'@; put 'NS4yNCw1LjIxTDUuMzEsOEgyMC4wNmwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4yNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0t'@; put 'YWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDFsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDFBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjMzLDZhMiwyLDAsMCwwLS40MSwwaC0yOGEyLDIsMCwwLDAtLjUzLjA4TDE3Ljg0LDIwLjQ3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0z'@; put 'My44MSw3LjM5LDE5LjI1LDIxLjg5YTIsMiwwLDAsMS0yLjgyLDBMMiw3LjVhMiwyLDAsMCwwLS4wNy41VjI4YTIsMiwwLDAsMCwyLDJoMjhhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMy44MSw3LjM5Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSww'@; put 'SDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTI2LDEyLjM0QTcuNDksNy40OSwwLDAsMSwyMi41LDZIMy45MmEyLDIs'@; put 'MCwwLDAtLjUzLjA4TDE3Ljg0LDIwLjQ3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtMi0uMjlsLTguNzEsOC42OGEyLDIsMCwwLDEtMi44'@; put 'MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTIuMzlBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFsLTcuMjktNy4yMywxLjQxLTEuNDEs'@; put 'Ny4yNyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNS43N2wtNi41Miw2LjQ5YTIsMiwwLDAsMS0yLjgyLDBMMiw3LjVhMiwyLDAsMCwwLS4wNy41VjI4YTIsMiwwLDAsMCwyLDJoMjhhMiwyLDAsMCwwLDItMlYxNS4zOFpNNS4zLDI4SDMu'@; put 'OTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTIy'@; put 'Ljk0LDE1LjRoLS43QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMy45MmEyLDIsMCwwLDAtLjUzLjA4TDE3Ljg0LDIwLjQ3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xy'@; put 'LWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxsLkNsclNoYXBlVGFza3M9KDAsYS5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4yOSwzNEg2LjcxQTEuNywxLjcsMCwwLDEsNSwzMi4zMVY2LjY5QTEuNzUsMS43NSwwLDAsMSw3LDVIOVY3SDdWMzJIMjlWN0gyN1Y1aDIuMjVBMS43LDEuNywwLDAsMSwzMSw2LjY5VjMy'@; put 'LjMxQTEuNywxLjcsMCwwLDEsMjkuMjksMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi42NiwyNS43NiwxMS4zLDIwLjRBMSwxLDAsMCwxLDEyLjcyLDE5bDMuOTQsMy45NCw4LjY0LTguNjRhMSwx'@; put 'LDAsMCwxLDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTI2LDExSDEwVjcuMzNBMi4zNCwyLjM0LDAsMCwxLDEyLjMzLDVoMS43OWE0LDQsMCwwLDEsNy43NSwwaDEuNzlBMi4zNCwyLjM0'@; put 'LDAsMCwxLDI2LDcuMzNaTTEyLDlIMjRWNy4zM0EuMzMuMzMsMCwwLDAsMjMuNjcsN0gyMFY2YTIsMiwwLDAsMC00LDBWN0gxMi4zM2EuMzMuMzMsMCwwLDAtLjMzLjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTksOS44OSwxOS41Niw5SDEyVjcuMzNBLjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEsNCwwVjdoLjcxbDEuMTYtMmE0LDQsMCwwLDAtNy43NCwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExaDguNjRBMy42NSwzLjY1'@; put 'LDAsMCwxLDE5LDkuODlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yNC4xOSwxNS40bC03LjUzLDcuNTNMMTIuNzIsMTlBMSwxLDAsMCwwLDExLjMsMjAuNGw1LjM2LDUu'@; put 'MzZMMjYuNzEsMTUuNzFhMSwxLDAsMCwwLC4yLS4zMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTI5LDE1LjRWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYu'@; put 'NjlWMzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIg'@; put 'ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMC0xLjQxLTEuNDFsLTguNjQsOC42NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yMy4xMyw5SDEyVjcuMzNBLjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEsNCwwVjdoMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uN2E0LDQs'@; put 'MCwwLDAtNy43NSwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExSDI0LjQyQTcuNSw3LjUsMCwwLDEsMjMuMTMsOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0z'@; put 'MCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YzMkg3VjdIOVY1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTEiIGQ9Ik0yOS4yOSw0Ljk1aC03LjJhNC4zMSw0LjMxLDAsMCwwLTguMTcsMEg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjRWMzIuMjZhMS43LDEuNywwLDAsMCwxLjcxLDEuNjlIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4yNlY2LjY0QTEuNywxLjcsMCwwLDAsMjkuMjksNC45NVpt'@; put 'LTE4LDNhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzJhMi4zMSwyLjMxLDAsMCwxLDQuNjMsMFY3aDMuNDRhMSwxLDAsMCwxLDEsMVY5LjhIMTEuMjVabTE0LjUyLDkuMjMtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwzLjI2LDMuMjYsNy4xNC03LjE0YTEuNCwxLjQsMCwx'@; put 'LDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yNS44OCwxNS40YTEuMzgsMS4zOCwwLDAsMS0uMTEsMS44MWwtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwx'@; put 'LDItMmwzLjI2LDMuMjYsNy03SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDAtLjA5SDExLjI1VjhhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzJhMi4zMSwyLjMxLDAsMCwxLDQuNjMsMFY3aC40MkwyMiw0Ljc2YTQuMyw0LjMsMCwwLDAtOC4wOS4xOUg3QTEuNzUsMS43NSwwLDAsMCw1'@; put 'LDYuNjRWMzIuMjZhMS43LDEuNywwLDAsMCwxLjcxLDEuNjlIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4yNlYxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQi'@; put 'IGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTYuNDYtMy43SDExLjI1VjhhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzJhMi4zMSwyLjMxLDAsMCwxLDQuNjMsMFY3aDIuMjZhNy41Myw3LjUzLDAsMCwxLS4wNy0xLDcuNTMsNy41'@; put 'MywwLDAsMSwuMDgtMS4wNWgtLjVhNC4zMSw0LjMxLDAsMCwwLTguMTcsMEg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjRWMzIuMjZhMS43LDEuNywwLDAsMCwxLjcxLDEuNjlIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4yNlYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVptLTQuMjMs'@; put 'My43MS05LjEyLDkuMTItNS4yNC01LjI0YTEuNCwxLjQsMCwwLDEsMi0ybDMuMjYsMy4yNiw3LjE0LTcuMTRhMS40LDEuNCwwLDEsMSwyLDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBj'@; put 'bHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGwuQ2xyU2hhcGVGbGFnPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNNiwzNGExLDEsMCwwLDEtMS0xVjNBMSwxLDAsMCwxLDcsM1YzM0ExLDEs'@; put 'MCwwLDEsNiwzNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjU1LDMuODJhMSwxLDAsMCwwLTEsMCwxNC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OSwx'@; put 'Mi43OCwxMi43OCwwLDAsMC01LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwyLjg1VjUuMDhBOC44LDguOCwwLDAsMSwxMy4yNSw0YTExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NkExOC43NSwxOC43NSwwLDAsMCwyOSw2LjEyVjE4Ljk1YTE2LjE2'@; put 'LDE2LjE2LDAsMCwxLTUuNTguOTMsMTMuMTEsMTMuMTEsMCwwLDEtNS4xOC0xLjQ5LDEyLjc4LDEyLjc4LDAsMCwwLTUtMS40NUExMC44NiwxMC44NiwwLDAsMCw5LDE3Ljc5VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0'@; put 'LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEsMCwwLDAsMzAuNTUsMy44MloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNS45MiwyYTEsMSww'@; put 'LDAsMC0xLDFWMzNhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw1LjkyLDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjUsMy44MmExLDEsMCwwLDAtMSwwLDE0LjksMTQuOSwwLDAsMS02LjEzLDEuMTYs'@; put 'MTMuMTEsMTMuMTEsMCwwLDEtNS4xOC0xLjQ5QTEyLjc4LDEyLjc4LDAsMCwwLDEzLjIsMiwxMC44NiwxMC44NiwwLDAsMCw5LDIuODVWMjBhOC44LDguOCwwLDAsMSw0LjI1LTEuMDgsMTEuMjIsMTEuMjIsMCwwLDEsNC4yLDEuMjgsMTQuODQsMTQuODQsMCwwLDAsNiwxLjY2LDE2Ljc5LDE2'@; put 'Ljc5LDAsMCwwLDctMS4zNywxLDEsMCwwLDAsLjU1LS44OVY0LjY3QTEsMSwwLDAsMCwzMC41LDMuODJaIi8+JyksbC5DbHJTaGFwZUluYm94PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAs'@; put 'MC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEsMCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4zOEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjUs'@; put 'NUgyMlY3aDdWMjFIMjMuNjFsLS4xLjg5YTUuNDIsNS40MiwwLDAsMS0xMC43NywwbC0uMS0uODlIN1Y3aDdWNUg2LjVBMS41LDEuNSwwLDAsMCw1LDYuNXYyNUExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjVWNi41QTEuNSwxLjUsMCwwLDAsMjkuNSw1Wk0y'@; put 'OSwzMUg3VjIzaDMuOTFhNy40Miw3LjQyLDAsMCwwLDE0LjQ0LDBIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjIzLDEzLjA5YTEsMSwwLDAsMCwwLDEuNDFMMTgsMjAuM2w1Ljc5LTUuNzlhMSwxLDAs'@; put 'MCwwLTEuNDEtMS40MUwxOSwxNi40N1YyQTEsMSwwLDAsMCwxOCwxYTEsMSwwLDAsMC0xLDF2MTQuNWwtMy4zOC0zLjM4QTEsMSwwLDAsMCwxMi4yMywxMy4wOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTMwLDEzLjVhNy41Miw3LjUyLDAsMCwxLTEtLjA3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAuNzcsMGwtLjEtLjg5SDdWN2g3VjVINi41QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwz'@; put 'MSwzMS41VjEzLjQzQTcuNTIsNy41MiwwLDAsMSwzMCwxMy41Wk0yOSwzMUg3VjIzaDMuOTFhNy40Miw3LjQyLDAsMCwwLDE0LjQ0LDBIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksbC5DbHJTaGFwZUhlYXJ0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwzMi40M2ExLDEsMCwwLDEtLjYxLS4y'@; put 'MUMxMS44MywyNy45LDgsMjQuMTgsNS4zMiwyMC41MSwxLjksMTUuODIsMS4xMiwxMS40OSwzLDcuNjRjMS4zNC0yLjc1LDUuMTktNSw5LjY5LTMuNjlBOS44Nyw5Ljg3LDAsMCwxLDE4LDcuNzJhOS44Nyw5Ljg3LDAsMCwxLDUuMzEtMy43N2M0LjQ5LTEuMjksOC4zNS45NCw5LjY5LDMuNjks'@; put 'MS44OCwzLjg1LDEuMSw4LjE4LTIuMzIsMTIuODdDMjgsMjQuMTgsMjQuMTcsMjcuOSwxOC42MSwzMi4yMkExLDEsMCwwLDEsMTgsMzIuNDNaTTEwLjEzLDUuNThBNS45LDUuOSwwLDAsMCw0LjgsOC41MWMtMS41NSwzLjE4LS44NSw2LjcyLDIuMTQsMTAuODFBNTcuMTMsNTcuMTMsMCwwLDAs'@; put 'MTgsMzAuMTYsNTcuMTMsNTcuMTMsMCwwLDAsMjkuMDYsMTkuMzNjMy00LjEsMy42OS03LjY0LDIuMTQtMTAuODEtMS0yLTQtMy41OS03LjM0LTIuNjVhOCw4LDAsMCwwLTQuOTQsNC4yLDEsMSwwLDAsMS0xLjg1LDAsNy45Myw3LjkzLDAsMCwwLTQuOTQtNC4yQTcuMzEsNy4zMSwwLDAsMCwx'@; put 'MC4xMyw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMyw3LjY0Yy0xLjM0LTIuNzUtNS4yLTUtOS42OS0zLjY5QTkuODcsOS44NywwLDAsMCwxOCw3LjcyYTkuODcsOS44NywwLDAsMC01LjMxLTMuNzdD'@; put 'OC4xOSwyLjY2LDQuMzQsNC44OSwzLDcuNjRjLTEuODgsMy44NS0xLjEsOC4xOCwyLjMyLDEyLjg3QzgsMjQuMTgsMTEuODMsMjcuOSwxNy4zOSwzMi4yMmExLDEsMCwwLDAsMS4yMywwYzUuNTUtNC4zMSw5LjM5LTgsMTIuMDctMTEuNzFDMzQuMSwxNS44MiwzNC44OCwxMS40OSwzMyw3LjY0'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGwuQ2xyU2hhcGVIZWFydEJyb2tlbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMDktNS05LjY5LTMuNjlhOS44Nyw5Ljg3LDAsMCwwLTYsNC44NCwxOC45LDE4Ljks'@; put 'MCwwLDAtMi4yMyw1LjMzbDUuMjgsMi4zNC00LjYsNC4zNywzLjQ5LDQuMSwxLjUyLTEuM0wxOC41NCwyMWw1LjQtNS4xM0wxNy41OCwxM0ExNi4yMywxNi4yMywwLDAsMSwxOS43NSw4LjlhNy42OCw3LjY4LDAsMCwxLDQuMTEtM2MzLjM0LS44OSw2LjM0LjYsNy4zNCwyLjY1LDEuNTUsMy4x'@; put 'OC44NSw2LjcyLTIuMTQsMTAuODFBNTcuMTYsNTcuMTYsMCwwLDEsMTgsMzAuMTYsNTcuMTYsNTcuMTYsMCwwLDEsNi45NCwxOS4zM2MtMy00LjEtMy42OS03LjY0LTIuMTQtMTAuODFhNS45LDUuOSwwLDAsMSw1LjMzLTIuOTMsNy4zMSw3LjMxLDAsMCwxLDIsLjI5LDcuNyw3LjcsMCwwLDEs'@; put 'My4zOCwybC4xNS0uM2ExMC42NiwxMC42NiwwLDAsMSwxLTEuNDEsOS42NCw5LjY0LDAsMCwwLTMuOTQtMi4yMkM4LjIsMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEu'@; put 'MjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjkt'@; put 'My42OUExMS41NSwxMS41NSwwLDAsMCwxOC4xOSw3LjVhMTYuODksMTYuODksMCwwLDAtMi40OCw0LjU2TDIyLjI3LDE1LDE2LjcsMjAuMjYsMTksMjNsLTEuNTcsMS4zNC0zLjYtNC4yMiw0Ljc0LTQuNTEtNS40NC0yLjQxYTE5LjQ5LDE5LjQ5LDAsMCwxLDIuMy01LjUsMTQuNzcsMTQuNzcs'@; put 'MCwwLDEsMS4wNi0xLjU0bC4wNiwwYTkuNjYsOS42NiwwLDAsMC0zLjg5LTIuMThDOC4xOSwyLjY2LDQuMzQsNC44OSwzLDcuNjRjLTEuODgsMy44NS0xLjEsOC4xOCwyLjMyLDEyLjg3QzgsMjQuMTgsMTEuODMsMjcuOSwxNy4zOSwzMi4yMmExLDEsMCwwLDAsMS4yMywwYzUuNTUtNC4zMSw5'@; put 'LjM5LTgsMTIuMDctMTEuNzFDMzQuMSwxNS44MiwzNC44OCwxMS40OSwzMyw3LjY0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGwuQ2xyU2hhcGVUYWxrQnViYmxlcz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMsMjZhMSwxLDAsMCwxLTEsMUg4'@; put 'Yy0uMjIsMC0uNDMuMi0uNjEuMzNMNCwzMFYxNGExLDEsMCwwLDEsMS0xSDguODZWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCwwLDEtLjFMOC43MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMjNaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDRIMTRhMywzLDAsMCwwLTMsM1YxOWEzLDMsMCwwLDAsMywzSDI3LjU1bDQuNzgsMy43MWExLDEsMCwwLDAsMSwuMTEsMSwxLDAsMCwwLC41Ny0uOVY3QTMsMywwLDAsMCwzMSw0Wk0zMiwyMi45'@; put 'NCwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDMxQTEuMSwxLjEsMCwwLDEsMzIsNy4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsMjZh'@; put 'MSwxLDAsMCwxLTEsMUg4Yy0uMjIsMC0uNDMuMi0uNjEuMzNMNCwzMFYxNGExLDEsMCwwLDEsMS0xSDguODZWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCwwLDEtLjFMOC43MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMjNaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMnY5LjcyTDI4LjUsMjAuMjFhMSwxLDAsMCwwLS42MS0uMjFIMTRhMSwxLDAsMCwxLTEtMVY3YTEsMSwwLDAsMSwxLTFIMjIuNWE3'@; put 'LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTRhMywzLDAsMCwwLTMsM1YxOWEzLDMsMCwwLDAsMywzSDI3LjU1bDQuNzgsMy43MWExLDEsMCwwLDAsMSwuMTEsMSwxLDAsMCwwLC41Ny0uOVYxMi4zN0E3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNOCwxOVYxMUg1YTMsMywwLDAsMC0zLDNWMzJhMSwxLDAsMCwwLC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWN0EzLDMsMCwwLDAsMzEsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE5VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDE0QTYsNiwwLDAsMSw4LDE5WiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjEx'@; put 'LDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGwuQ2xyU2hhcGVDaGF0QnViYmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0u'@; put 'NjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjguMjksMjQuNjFhMSwxLDAsMCwwLS4zMi43M2wwLDUuMzQtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExQTE2LDE2LDAsMCwxLDE4LDI4'@; put 'LjVjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4wOCwxMS4wOCwwLDAsMSwyOC4yOSwyNC42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDE1LjVIMTFh'@; put 'MSwxLDAsMCwwLDAsMkgyNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNzUsMjAuNWgtNy41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS4yOCwxMi41SDI0LjcyYTEsMSwwLDAsMCwwLTJIMTEuMjhhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTMzLjM4LDEyLjY5YTcuNDMsNy40MywwLDAsMS0xLjg5LjY2QTEwLjM1LDEwLjM1LDAsMCwxLDMyLDE2LjVhMTEuMDgsMTEuMDgsMCwwLDEtMy43MSw4LjExLDEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAs'@; put 'MSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyYTE2LDE2LDAsMCwxLDQuNTUuNjZBNy40NCw3LjQ0LDAsMCwxLDIzLDMuMjJhMTgsMTgsMCwwLDAtNS0uNzJjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhs'@; put 'NS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QTEyLjMyLDEyLjMyLDAsMCwwLDMzLjM4LDEyLjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTExLDE1LjVhMSwxLDAsMCwwLDAsMkgyNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI1LDIwLjVhMSwxLDAsMCwwLDAsMmg3LjVhMSwx'@; put 'LDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yOCwxMS41YTEsMSwwLDAsMCwxLDFIMjQuNzJhMSwxLDAsMCwwLC44My0uNDdBNy41Myw3LjUzLDAsMCwxLDI0'@; put 'LDEwLjVIMTEuMjhBMSwxLDAsMCwwLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRs'@; put 'MC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVabTgsMTRhMSwxLDAsMCwxLTEsMUgxMWExLDEsMCwwLDEsMC0ySDI1QTEsMSwwLDAsMSwyNiwxNi41Wm0tMy4yNSw1YTEsMSwwLDAsMS0xLDFoLTcuNWExLDEsMCwwLDEsMC0yaDcuNUExLDEsMCwwLDEs'@; put 'MjIuNzUsMjEuNVptLTEyLjQ3LTEwYTEsMSwwLDAsMSwxLTFIMjQuNzJhMSwxLDAsMCwxLDAsMkgxMS4yOEExLDEsMCwwLDEsMTAuMjgsMTEuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuMjVhNy40Niw3'@; put 'LjQ2LDAsMCwxLTQuMzUtMS40LDEsMSwwLDAsMS0uOTMuNjVIMTEuMjhhMSwxLDAsMCwxLDAtMkgyNC4yQTcuNDYsNy40NiwwLDAsMSwyMywzLjJhMTgsMTgsMCwwLDAtNS0uN2MtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMu'@; put 'NTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjcsMTIuMzQsMTIuMzQsMCwwLDAtLjY4LTRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjI1Wk0yMS43NSwyMi41aC03LjVhMSwxLDAsMCwxLDAtMmg3LjVhMSwxLDAsMCwxLDAsMlptMy4yNS01SDExYTEsMSwwLDAs'@; put 'MSwwLTJIMjVhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljc1IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksbC5DbHJTaGFwZVBpY3R1cmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJW'@; put 'MzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQx'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1'@; put 'LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0t'@; put 'NC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEu'@; put 'NDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBM'@; put 'MTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIy'@; put 'Ljc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5'@; put 'LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9'@; put 'IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksbC5DbHJTaGFwZUhhcHB5RmFjZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0w'@; put 'LDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEwLjg5IiBjeT0iMTMuODkiIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4wNSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjEzLDI4LjIxYTguNjcsOC42NywwLDAsMCw4LjI2'@; put 'LTZIOS44N0E4LjY3LDguNjcsMCwwLDAsMTguMTMsMjguMjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNOC44OSwxMy44OWEyLDIsMCwx'@; put 'LDEsMiwyQTIsMiwwLDAsMSw4Ljg5LDEzLjg5Wm05LjI0LDE0LjMyYTguNjcsOC42NywwLDAsMS04LjI2LTZIMjYuMzhBOC42Nyw4LjY3LDAsMCwxLDE4LjEzLDI4LjIxWm02LjkzLTEyLjMyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDI1LjA1LDE1Ljg5WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGwuQ2xyU2hhcGVOZXV0cmFsRmFjZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuMDUsMjIuMDZoLTEyYTEsMSwwLDAsMCwwLDJoMTJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAg'@; put 'ICAgIDxjaXJjbGUgY3g9IjI1LjE2IiBjeT0iMTQuMjgiIHI9IjEuOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjExLjE2IiBjeT0iMTQuMjgiIHI9IjEuOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuMDUsMjEuMDZhMSwxLDAsMCwxLTEsMWgtMTJhMSwxLDAsMCwxLDAtMmgxMkExLDEsMCwwLDEsMjUuMDUsMjMuMDZaTTI3LDE0LjI4YTEuOCwx'@; put 'LjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuOCwxLjhhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTEuMTYsMTYuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksbC5DbHJTaGFwZVNhZEZhY2U9KDAs'@; put 'YS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAg'@; put 'ICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS40MSIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMTYsMjBhOSw5LDAsMCwwLTcuMzMsMy43OCwxLDEsMCwxLDAsMS42MywxLjE2LDcsNywwLDAsMSwxMS4zMS0uMTMsMSwxLDAsMCwwLDEuNi0xLjJBOSw5LDAsMCwwLDE4LjE2LDIwWiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTksMTIuMjhhMS44LDEuOCwwLDEsMS0xLjgtMS44QTEuOCwxLjgsMCwwLDEsMjcsMTQuMjhabS0xNS41NSwxLjhhMS44LDEuOCww'@; put 'LDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTEuNDEsMTYuMDhabTE0LDcuNTNhMSwxLDAsMCwxLTEuNiwxLjIsNyw3LDAsMCwwLTExLjMxLjEzLDEsMSwwLDEsMS0xLjYzLTEuMTYsOSw5LDAsMCwxLDE0LjU0LS4xN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi'@; put 'Lz4nKSxsLkNsclNoYXBlVGh1bWJzVXA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LDI2Yy0yLjkyLDEuODItNy4zLDQtOS4zNyw0aC02YTE2LjY4LDE2LjY4LDAsMCwxLTMuMzEtNi4wOEEyNi43MSwyNi43MSwwLDAsMSw0LDE2aDlWNmEyLjA1LDIuMDUsMCwwLDEsMS4yNi0xLjY5'@; put 'Yy43NywyLDIuNjIsNi41Nyw0LjIzLDguNzJBMTEuMzksMTEuMzksMCwwLDAsMjQsMTYuOTFWMTQuNzhhOS4xMyw5LjEzLDAsMCwxLTMuOTEtM2MtMS44OC0yLjUxLTQuMjktOS4xMS00LjMxLTkuMTdBMSwxLDAsMCwwLDE0LjU5LDJDMTMuMjUsMi4zOCwxMSwzLjYsMTEsNnY4SDNhMSwxLDAs'@; put 'MCwwLTEsMSwyOSwyOSwwLDAsMCwxLjQsOS42MmMxLjg5LDUuNCw0LjEsNy4xNCw0LjIsNy4yMmExLDEsMCwwLDAsLjYxLjIxaDYuNDJjMi40MywwLDYuNTUtMiw5LjM3LTMuNjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0zNCwzMUgyN2ExLDEsMCwwLDEtMS0xVjE0YTEsMSwwLDAsMSwxLTFoN1ptLTYtMmg0VjE1SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNjMsMTIuMTJDMTcuNTEsOS4yOCwxNC44OCwy'@; put 'LDE0Ljg4LDJTMTIsMi44MywxMiw1LjI1VjE1SDIuMjNhMjkuNDYsMjkuNDYsMCwwLDAsMS40NCw5Ljc0QzUuNjEsMzAuMjcsNy44LDMyLDcuOCwzMmg2Ljg2QzE2LjksMzIsMjEsMzAuMDYsMjQsMjguMzFWMTUuNTFBMTAuODQsMTAuODQsMCwwLDEsMTkuNjMsMTIuMTJaIiBjbGFzcz0iY2xy'@; put 'LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LDEzYTEsMSwwLDAsMC0xLDFWMzBhMSwxLDAsMCwwLDEsMWg3VjEzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlVGh1bWJzRG93bj0o'@; put 'MCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIsMTBjMi45Mi0xLjgyLDcuMy00LDkuMzctNGg2YTE2LjY4LDE2LjY4LDAsMCwxLDMuMzEsNi4wOEEyNi43MSwyNi43MSwwLDAsMSwzMiwyMEgyM1YzMGEyLjA1LDIuMDUsMCwwLDEtMS4yNiwxLjY5Yy0uNzctMi0yLjYyLTYuNTctNC4yMy04'@; put 'LjcyQTExLjM5LDExLjM5LDAsMCwwLDEyLDE5LjA5djIuMTNhOS4xMyw5LjEzLDAsMCwxLDMuOTEsM2MxLjg4LDIuNTEsNC4yOSw5LjExLDQuMzEsOS4xN2ExLDEsMCwwLDAsMS4xOS42M0MyMi43NSwzMy42MiwyNSwzMi40LDI1LDMwVjIyaDhhMSwxLDAsMCwwLDEtMSwyOSwyOSwwLDAsMC0x'@; put 'LjQtOS42MmMtMS44OS01LjQtNC4xLTcuMTQtNC4yLTcuMjJBMSwxLDAsMCwwLDI3Ljc5LDRIMjEuMzdDMTguOTQsNCwxNC44Myw2LDEyLDcuNjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yLDVIOWExLDEs'@; put 'MCwwLDEsMSwxVjIyYTEsMSwwLDAsMS0xLDFIMlpNOCw3SDRWMjFIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE2LjM3LDIzLjg0YzIuMTIsMi44NCw0Ljc2LDEwLjA3LDQuNzYsMTAuMDdTMjQsMzMuMTMs'@; put 'MjQsMzAuNzFWMjFoOS43N2EyOS40NiwyOS40NiwwLDAsMC0xLjQ0LTkuNzRDMzAuMzksNS42OCwyOC4yLDQsMjguMiw0SDIxLjM1QzE5LjEsNCwxNSw1LjksMTIsNy42NXYxMi44QTEwLjg0LDEwLjg0LDAsMCwxLDE2LjM3LDIzLjg0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LDIzYTEsMSwwLDAsMCwxLTFWNkExLDEsMCwwLDAsOSw1SDJWMjNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVDcm93bj0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGgg'@; put 'ZD0iTTQsMTMuMzNBMS4zOSwxLjM5LDAsMSwwLDIuNiwxNC43MiwxLjM5LDEuMzksMCwwLDAsNCwxMy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMS44MSwxNS44NGEyMC4zNSwyMC4zNSwwLDAsMC00LjU4LDEuNDMsMjIu'@; put 'NywyMi43LDAsMCwwLTMuNDgsMi4xQTE3LjY5LDE3LjY5LDAsMCwxLDIyLDE2LjU3YTQ3LjY1LDQ3LjY1LDAsMCwxLTIuOC03LjY5LDEsMSwwLDAsMC0xLS43NCwxLDEsMCwwLDAtMSwuNzQsNDYuNzEsNDYuNzEsMCwwLDEtMi44LDcuNjksMTcsMTcsMCwwLDEtMS43NiwyLjgsMjIuNywyMi43'@; put 'LDAsMCwwLTMuNDgtMi4xLDIwLjY2LDIwLjY2LDAsMCwwLTQuNTgtMS40MywxLDEsMCwwLDAtMSwuMzksMSwxLDAsMCwwLS4wOSwxLjA1QTUwLjEzLDUwLjEzLDAsMCwxLDcuODIsMzEuMTdhMSwxLDAsMCwwLDEsLjgzSDI3LjYyYTEsMSwwLDAsMCwxLS44Myw1MC4xNSw1MC4xNSwwLDAsMSw0'@; put 'LjI2LTEzLjg5LDEsMSwwLDAsMC0uMDktMS4wNUExLDEsMCwwLDAsMzEuODEsMTUuODRaTTI2Ljc5LDMwSDkuNjRhNTUuNjYsNTUuNjYsMCwwLDAtMy40LTExLjcxLDE1Ljc1LDE1Ljc1LDAsMCwxLDIuMDkuNzgsMjAsMjAsMCwwLDEsMy44NSwyLjQ1LDEsMSwwLDAsMCwxLjM5LS4wOSwxOS4y'@; put 'OCwxOS4yOCwwLDAsMCwyLjY3LTQsNDMuNDYsNDMuNDYsMCwwLDAsMi00Ljg5LDQxLjc0LDQxLjc0LDAsMCwwLDIsNC44OSwxOS45MiwxOS45MiwwLDAsMCwyLjY2LDQsMSwxLDAsMCwwLDEuNC4wOSwxOS4yMSwxOS4yMSwwLDAsMSwzLjg1LTIuNDUsMTQuNzcsMTQuNzcsMCwwLDEsMi4wOS0u'@; put 'NzhBNTUuMDcsNTUuMDcsMCwwLDAsMjYuNzksMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8ZWxsaXBzZSBjeD0iMzMuODMiIGN5PSIxMy4zMyIgcng9IjEuMzkiIHJ5PSIxLjM5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYuODQsNSwxLjM5LDEuMzksMCwwLDAsMTguMjIsNi4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC4yMywyNi4zNGExLjExLDEu'@; put 'MTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDE4LjIzLDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEyLjU4LDI2LjM0YTEuMTEsMS4xMSwwLDEsMCwxLjEsMS4xQTEuMSwxLjEsMCwwLDAsMTIuNTgsMjYuMzRa'@; put 'Ii8+PHBhdGggZD0iTTIzLjg5LDI2LjM0YTEuMTEsMS4xMSwwLDEsMCwxLjEsMS4xQTEuMSwxLjEsMCwwLDAsMjMuODksMjYuMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuXG4gIDxwYXRoIGQ9Ik0yLjYsMTEuOTNBMS40LDEuNCwwLDEsMCw0LDEz'@; put 'LjMzLDEuNCwxLjQsMCwwLDAsMi42LDExLjkzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8ZWxsaXBzZSBjeD0iMzMuODMiIGN5PSIxMy4zMyIgcng9IjEuMzkiIHJ5PSIxLjM5IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+'@; put 'XG4gIDxwYXRoIGQ9Ik0xOC4yMiw2LjM5QTEuMzksMS4zOSwwLDEsMCwxNi44NCw1LDEuMzksMS4zOSwwLDAsMCwxOC4yMiw2LjM5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzEuNjMsMTYuMUExOC42MSwxOC42MSwwLDAsMCwyOCwx'@; put 'Ny4zNGEyMS41NywyMS41NywwLDAsMC00LDIuNDksMTkuMiwxOS4yLDAsMCwxLTIuMjYtMy40OSw0OC45Miw0OC45MiwwLDAsMS0yLjUyLTYuNTgsMSwxLDAsMCwwLTEtLjcxaDBhMSwxLDAsMCwwLTEsLjcxLDQ4LjQyLDQ4LjQyLDAsMCwxLTIuNTIsNi41OCwxOC42OSwxOC42OSwwLDAsMS0y'@; put 'LjI2LDMuNDgsMjIuODEsMjIuODEsMCwwLDAtNC0yLjQ4QTE4LjgzLDE4LjgzLDAsMCwwLDQuOSwxNi4xYTEsMSwwLDAsMC0xLC4zMywxLDEsMCwwLDAtLjEzLDEuMDcsNTUuOSw1NS45LDAsMCwxLDQsMTMuNSwxLDEsMCwwLDAsMSwuODNoMTlhMSwxLDAsMCwwLDEtLjgzLDU1LjksNTUuOSww'@; put 'LDAsMSw0LTEzLjUsMSwxLDAsMCwwLS4xMy0xLjA3QTEsMSwwLDAsMCwzMS42MywxNi4xWk0xMS4wOCwyOC41NWExLjExLDEuMTEsMCwxLDEsMS4xLTEuMTFBMS4xMSwxLjExLDAsMCwxLDExLjA4LDI4LjU1Wm03LjE1LDBhMS4xMSwxLjExLDAsMCwxLDAtMi4yMSwxLjExLDEuMTEsMCwwLDEs'@; put 'MCwyLjIxWm03LjE2LDBhMS4xMSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwyNS4zOSwyOC41NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgJyksbC5DbHJTaGFwZUhhc2h0YWc9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9'@; put 'Ik0zMiwxMkgyNS4zNGwxLjU1LTcuNzRhMSwxLDAsMCwwLTItLjM5TDIzLjMsMTJIMTUuMTFsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwxMy4wNywxMkg2YTEsMSwwLDAsMCwwLDJoNi42N2wtMS42LDhINGExLDEsMCwwLDAsMCwyaDYuNjZMOS4xMSwzMS43NGExLDEsMCwwLDAsLjc5LDEu'@; put 'MTcuNjguNjgsMCwwLDAsLjIsMCwxLDEsMCwwLDAsMS0uOEwxMi43LDI0aDguMTlsLTEuNTUsNy43NGExLDEsMCwwLDAsLjc5LDEuMTcuNjIuNjIsMCwwLDAsLjE5LDAsMSwxLDAsMCwwLDEtLjhMMjIuOTMsMjRIMzBhMSwxLDAsMCwwLDAtMkgyMy4zM2wxLjYxLThIMzJhMSwxLDAsMCwwLDAt'@; put 'MlpNMjEuMjksMjJIMTMuMWwxLjYxLThIMjIuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG5cbiAgPHBhdGggZD0iTTMxLjg3LDEwSDI2LjMybDEtNC44M0ExLDEsMCwwLDAsMjYuMzUsNGgtMmExLDEsMCwwLDAtMSwuNzhMMjIuMzMsMTBoLTUuNGwx'@; put 'LTQuODNBMSwxLDAsMCwwLDE3LDRIMTVhMSwxLDAsMCwwLTEsLjc4TDEzLDEwSDdhMSwxLDAsMCwwLTEsLjhsLS40MSwyYTEsMSwwLDAsMCwxLDEuMmg1LjU1TDEwLjUsMjJoLTZhMSwxLDAsMCwwLTEsLjhsLS40MSwyYTEsMSwwLDAsMCwxLDEuMkg5LjY4bC0xLDQuODNhMSwxLDAsMCwwLDEs'@; put 'MS4xN2gyYTEsMSwwLDAsMCwuOTUtLjc4TDEzLjY3LDI2aDUuNGwtMSw0LjgzQTEsMSwwLDAsMCwxOSwzMmgyYTEsMSwwLDAsMCwxLS43OEwyMy4wNSwyNmg2YTEsMSwwLDAsMCwxLS44bC40LTJhMSwxLDAsMCwwLTEtMS4ySDIzLjg3bDEuNjMtOGg2YTEsMSwwLDAsMCwxLS44bC40MS0yQTEs'@; put 'MSwwLDAsMCwzMS44NywxMFptLTEyLDEyaC01LjRsMS42NC04aDUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksbC5Tb2NpYWxTaGFwZXM9e2Nyb3duOmwuQ2xyU2hhcGVDcm93bixzaGFyZTpsLkNsclNoYXBlU2hhcmUsc3RhcjpsLkNsclNoYXBl'@; put 'U3RhciwiaGFsZi1zdGFyIjpsLkNsclNoYXBlSGFsZlN0YXIsYm9va21hcms6bC5DbHJTaGFwZUJvb2ttYXJrLGVudmVsb3BlOmwuQ2xyU2hhcGVFbnZlbG9wZSxjYWxlbmRhcjp2LkNsclNoYXBlQ2FsZW5kYXIsZXZlbnQ6di5DbHJTaGFwZUV2ZW50LHRhc2tzOmwuQ2xyU2hhcGVUYXNrcyxm'@; put 'bGFnOmwuQ2xyU2hhcGVGbGFnLGluYm94OmwuQ2xyU2hhcGVJbmJveCxoYXNodGFnOmwuQ2xyU2hhcGVIYXNodGFnLGhlYXJ0OmwuQ2xyU2hhcGVIZWFydCwiaGVhcnQtYnJva2VuIjpsLkNsclNoYXBlSGVhcnRCcm9rZW4sInRhbGstYnViYmxlcyI6bC5DbHJTaGFwZVRhbGtCdWJibGVzLCJj'@; put 'aGF0LWJ1YmJsZSI6bC5DbHJTaGFwZUNoYXRCdWJibGUscGljdHVyZTpsLkNsclNoYXBlUGljdHVyZSwiaGFwcHktZmFjZSI6bC5DbHJTaGFwZUhhcHB5RmFjZSwibmV1dHJhbC1mYWNlIjpsLkNsclNoYXBlTmV1dHJhbEZhY2UsInNhZC1mYWNlIjpsLkNsclNoYXBlU2FkRmFjZSwidGh1bWJz'@; put 'LXVwIjpsLkNsclNoYXBlVGh1bWJzVXAsInRodW1icy1kb3duIjpsLkNsclNoYXBlVGh1bWJzRG93bn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuU29jaWFsU2hhcGVzLCJmYXZvcml0ZSIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLlNvY2lhbFNoYXBlcy5zdGFyKSksT2JqZWN0LmRlZmlu'@; put 'ZVByb3BlcnR5KGwuU29jaWFsU2hhcGVzLCJlbWFpbCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLlNvY2lhbFNoYXBlcy5lbnZlbG9wZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLlNvY2lhbFNoYXBlcywiZGF0ZSIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLlNvY2lhbFNoYXBlcy5j'@; put 'YWxlbmRhcikpLHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChsLlNvY2lhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiOgovKiEq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZWNobm9sb2d5LXNoYXBlcy50cyAqKiohCiAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oTSxsLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbC5DbHJTaGFwZVZNV0FwcD1sLkNsclNoYXBlVk09bC5D'@; put 'bHJTaGFwZVJvdXRlcj1sLkNsclNoYXBlTmV0d29ya1N3aXRjaD1sLkNsclNoYXBlTmV0d29ya1NldHRpbmdzPWwuQ2xyU2hhcGVOZXR3b3JrR2xvYmU9bC5DbHJTaGFwZVRhYmxldD1sLkNsclNoYXBlTW9iaWxlPWwuQ2xyU2hhcGVCYXR0ZXJ5PWwuQ2xyU2hhcGVBcHBsaWNhdGlvbj1sLkNs'@; put 'clNoYXBlQ29kZT1sLkNsclNoYXBlVGVybWluYWw9bC5DbHJTaGFwZURpc3BsYXk9bC5DbHJTaGFwZUNvbXB1dGVyPWwuQ2xyU2hhcGVGbG9wcHk9bC5DbHJTaGFwZVBsdWdpbj1sLkNsclNoYXBlRG93bmxvYWRDbG91ZD1sLkNsclNoYXBlVXBsb2FkQ2xvdWQ9bC5DbHJTaGFwZUV4cG9ydD1s'@; put 'LkNsclNoYXBlSW1wb3J0PWwuQ2xyU2hhcGVTaGllbGRYPWwuQ2xyU2hhcGVTaGllbGQ9bC5DbHJTaGFwZVNoaWVsZENoZWNrPWwuQ2xyU2hhcGVSZXNvdXJjZVBvb2w9bC5DbHJTaGFwZURhdGFDbHVzdGVyPWwuQ2xyU2hhcGVNZW1vcnk9bC5DbHJTaGFwZUNQVT1sLkNsclNoYXBlQnVpbGRp'@; put 'bmc9bC5DbHJTaGFwZUFwcGxpY2F0aW9ucz1sLkNsclNoYXBlQ2x1c3Rlcj1sLkNsclNoYXBlU3RvcmFnZT1sLkNsclNoYXBlSG9zdD1sLkNsclNoYXBlRGFzaGJvYXJkPWwuQ2xyU2hhcGVNb3VzZT1sLkNsclNoYXBlS2V5Ym9hcmQ9bC5DbHJTaGFwZURldmljZXM9bC5DbHJTaGFwZUJhY2t1'@; put 'cD1sLkNsclNoYXBlQmFja3VwUmVzdG9yZT1sLkNsclNoYXBlSGFyZERpc2s9bC5DbHJTaGFwZVJhY2tTZXJ2ZXI9bC5DbHJTaGFwZVdpZmk9bC5DbHJTaGFwZUJ1bmRsZT1sLkNsclNoYXBlQmxvY2tzR3JvdXA9bC5DbHJTaGFwZUJsb2NrPWwuQ2xyU2hhcGVMYXllcnM9bC5DbHJTaGFwZVVu'@; put 'aW5zdGFsbD1sLkNsclNoYXBlSW5zdGFsbD1sLkNsclNoYXBlTm9XaWZpPWwuQ2xyU2hhcGVQaG9uZUhhbmRzZXQ9bC5DbHJTaGFwZVJ1bGVyUGVuY2lsPXZvaWQgMCxsLlRlY2hub2xvZ3lTaGFwZXM9bC5DbHJTaGFwZUZpbGVTaGFyZTI9bC5DbHJTaGFwZUNpQ2Q9bC5DbHJTaGFwZUFuaW1h'@; put 'dGlvbj1sLkNsclNoYXBlVGFwZURyaXZlPWwuQ2xyU2hhcGVNZWRpYUNoYW5nZXI9bC5DbHJDb250cm9sTHVuPWwuQ2xyU2hhcGVQb2Q9bC5DbHJTaGFwZU5vZGU9bC5DbHJTaGFwZU5hbWVzcGFjZT1sLkNsclNoYXBlTm9kZXM9bC5DbHJTaGFwZU5vZGVHcm91cD1sLkNsclNoYXBlU3RvcmFn'@; put 'ZUFkYXB0ZXI9bC5DbHJTaGFwZUhvc3RHcm91cD1sLkNsclNoYXBlU3F1aWQ9bC5DbHJTaGFwZUNhcGFjaXRvcj1sLkNsclNoYXBlUmVzaXN0b3I9bC5DbHJTaGFwZUluZHVjdG9yPWwuQ2xyU2hhcGVSYWRhcj1sLkNsclNoYXBlVXNiPWwuQ2xyU2hhcGVRckNvZGU9bC5DbHJTaGFwZUZpbGVT'@; put 'aGFyZT1sLkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPWwuQ2xyU2hhcGVDb250YWluZXI9bC5DbHJTaGFwZUNkRHZkPWwuQ2xyU2hhcGVCYXJDb2RlPWwuQ2xyU2hhcGVBdG9tPWwuQ2xyU2hhcGVBc3NpZ25Vc2VyPWwuQ2xyU2hhcGVQcm9jZXNzT25WTT1sLkNsclNoYXBlQmx1ZXRvb3RoT2Zm'@; put 'PWwuQ2xyU2hhcGVCbHVldG9vdGg9bC5DbHJTaGFwZVNTRD1sLkNsclNoYXBlTlZNZT1sLkNsclNoYXBlSGFyZERyaXZlRGlza3M9bC5DbHJTaGFwZUhhcmREcml2ZT1sLkNsclNoYXBlQWRtaW5pc3RyYXRvcj1sLkNsclNoYXBlRmxhc2s9bC5DbHJTaGFwZUhlbGl4PWwuQ2xyU2hhcGVEZXBs'@; put 'b3k9bC5DbHJTaGFwZUNsb3VkVHJhZmZpYz1sLkNsclNoYXBlQ2xvdWRTY2FsZT1sLkNsclNoYXBlQ2xvdWROZXR3b3JrPWwuQ2xyU2hhcGVVbmxpbms9bC5DbHJTaGFwZUxpbms9bC5DbHJTaGFwZURpc2Nvbm5lY3Q9bC5DbHJTaGFwZUNvbm5lY3Q9bC5DbHJTaGFwZVVuYXJjaGl2ZT1sLkNs'@; put 'clNoYXBlQXJjaGl2ZT1sLkNsclNoYXBlQ2VydGlmaWNhdGU9dm9pZCAwO3ZhciBwPWEoCi8qISAuLi91dGlscy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKTthPWEoCi8qISAuLi91dGlscy9zdmctdGFnLWdl'@; put 'bmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxsLkNsclNoYXBlUnVsZXJQZW5jaWw9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHBvaW50cz0iOSAx'@; put 'Ny40MSA5IDI3IDE4LjU5IDI3IDE2LjU5IDI1IDExIDI1IDExIDE5LjQxIDkgMTcuNDEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzQuODcsMzIuMjksMzIsMjkuMzhWMzJINFYyNy44NUg2di0xLjZINFYxOS42'@; put 'SDZWMThINFYxMS42SDZWMTBINFY0LjQxTDE5Ljk0LDIwLjI2VjE3LjQ0TDMuNzEsMS4yOUExLDEsMCwwLDAsMiwyVjMzYTEsMSwwLDAsMCwxLDFIMzQuMTZhMSwxLDAsMCwwLC43MS0xLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMiIGQ9Ik0yNCwzMGg0YTIsMiwwLDAsMCwyLTJWOC43TDI3LjcsNC40N2EyLDIsMCwwLDAtMS43Ni0xaDBhMiwyLDAsMCwwLTEuNzYsMS4wOEwyMiw4LjcyVjI4QTIsMiwwLDAsMCwyNCwzMFpNMjQsOS4ybDEuOTQtMy43N0wyOCw5LjIxVjI0SDI0Wm0wLDE2LjQzaDR2Mi40NEgy'@; put 'NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNC44NywzMi4yMSwzMCwyNy4zN1Y4Ljc1TDI3LjcsNC41MmEyLDIsMCwwLDAtMy41NCwwTDIyLDguNzZWMTkuNDFMMy43MSwxLjIxQTEsMSwwLDAsMCwyLDEuOTJWMTBI'@; put 'NC4xN3YxLjZIMlYxOEg0LjE3djEuNkgydjYuNjVINC4xN3YxLjZIMnY1LjA3YTEsMSwwLDAsMCwxLDFIMzQuMTZhMSwxLDAsMCwwLC43MS0xLjcxWk0xMCwyNlYxNi45NEwxOS4wNywyNlptMTgsMi4xMUgyNFYyNS42OGg0Wm0wLTRIMjRWOS4yNWwxLjk0LTMuNzdMMjgsOS4yNloiLz5cbicp'@; put 'LGwuQ2xyU2hhcGVQaG9uZUhhbmRzZXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy43MywzNS40NGE0LjcyLDQuNzIsMCwwLDEtMS0uMTEsMzMuOTEsMzMuOTEsMCwwLDEtMTYuNjItOC43NSwzMi43MSwz'@; put 'Mi43MSwwLDAsMS05LTE2LjI1QTQuNTgsNC41OCwwLDAsMSwyLjQ2LDYuMDVsNC0zLjg1QTIsMiwwLDAsMSw4LDEuNjZhMiwyLDAsMCwxLDEuNDUuODdsNSw3LjM5YTEuNiwxLjYsMCwwLDEtLjExLDEuOWwtMi41MSwzYTE4Ljk0LDE4Ljk0LDAsMCwwLDQuMTcsNS44OWgwYTE5LjI2LDE5LjI2'@; put 'LDAsMCwwLDYuMDcsNC4wOWwzLjExLTIuNDdhMS42NCwxLjY0LDAsMCwxLDEuODYtLjEybDcuNTUsNC44OEEyLDIsMCwwLDEsMzUsMzAuMmwtMy45LDMuODZBNC43NCw0Ljc0LDAsMCwxLDI3LjczLDM1LjQ0Wk03Ljg0LDMuNjRsLTQsMy44NWEyLjU0LDIuNTQsMCwwLDAtLjc1LDIuNCwzMC43'@; put 'LDMwLjcsMCwwLDAsOC40MSwxNS4yNiwzMS45LDMxLjksMCwwLDAsMTUuNjQsOC4yMywyLjc1LDIuNzUsMCwwLDAsMi41LS43NGwzLjktMy44Ni03LjI5LTQuNzEtMy4zNCwyLjY2YTEsMSwwLDAsMS0uOTIuMTcsMjAuMDYsMjAuMDYsMCwwLDEtNy4zNi00Ljc1aDBhMTkuNDksMTkuNDksMCww'@; put 'LDEtNC44Ny03LjJBMSwxLDAsMCwxLDEwLDE0bDIuNy0zLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE1LjIyLDIwLjY0YTIwLjM3LDIwLjM3LDAsMCwwLDcuNCw0Ljc5bDMuNzctM2EuNjcuNjcsMCwwLDEsLjc2'@; put 'LDBsNyw0LjUxYTIsMiwwLDAsMSwuMzMsMy4xOGwtMy4yOCwzLjI0YTQsNCwwLDAsMS0zLjYzLDEuMDcsMzUuMDksMzUuMDksMCwwLDEtMTcuMTUtOUEzMy43OSwzMy43OSwwLDAsMSwxLjE1LDguNmEzLjc4LDMuNzgsMCwwLDEsMS4xLTMuNTVsMy40LTMuMjhhMiwyLDAsMCwxLDMuMTIuMzJM'@; put 'MTMuNDMsOWEuNjMuNjMsMCwwLDEsMCwuNzVsLTMuMDcsMy42OUExOS43NSwxOS43NSwwLDAsMCwxNS4yMiwyMC42NFoiLz5cbicpLGwuQ2xyU2hhcGVOb1dpZmk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0x'@; put 'OCwyNC40MmE0LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNi4yMSwyMS44NWExLDEs'@; put 'MCwwLDAtLjIzLTEuNCwxMy41NiwxMy41NiwwLDAsMC01LTIuMjNsMy44NywzLjg3QTEsMSwwLDAsMCwyNi4yMSwyMS44NVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTguMDUsMTAuNzJhMjAuODgsMjAuODgs'@; put 'MCwwLDAtNC4xNi40M2wxLjc0LDEuNzRhMTksMTksMCwwLDEsMi40Mi0uMTdBMTguNzYsMTguNzYsMCwwLDEsMjguNjQsMTZhMSwxLDAsMCwwLDEuMTItMS42NUEyMC43NSwyMC43NSwwLDAsMCwxOC4wNSwxMC43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzMuNTUsOC4yQTI4LjExLDI4LjExLDAsMCwwLDguMTEsNS4zNkw5LjY5LDYuOTNBMjYsMjYsMCwwLDEsMzIuNDUsOS44N2ExLDEsMCwwLDAsMS4xLTEuNjdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNSIgZD0iTTEuODQsNC43NSw0LjI3LDcuMThjLS42Mi4zNC0xLjIzLjctMS44MywxLjFBMSwxLDAsMSwwLDMuNTYsOS45NEM0LjI2LDkuNDcsNSw5LDUuNzQsOC42NWwzLjg3LDMuODdBMjAuNTksMjAuNTksMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2'@; put 'YTE4LjgyLDE4LjgyLDAsMCwxLDMuNzctMmw0LjE2LDQuMTZBMTMuNTEsMTMuNTEsMCwwLDAsMTAsMjAuNTVhMSwxLDAsMCwwLDEuMTgsMS42MUExMS41MiwxMS41MiwwLDAsMSwxNywyMGwxMC44LDEwLjgsMS40MS0xLjQxLTI2LTI2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI5LjE4LDE3LjcxbC4xMS0uMTdhMS41MSwxLjUxLDAsMCwwLS40Ny0yLjFB'@; put 'MjAuNTcsMjAuNTcsMCwwLDAsMTgsMTIuMzdjLS41NiwwLTEuMTEsMC0xLjY1LjA3bDMuMjEsMy4yMWExNy40MSwxNy40MSwwLDAsMSw3LjYsMi41MkExLjQ5LDEuNDksMCwwLDAsMjkuMTgsMTcuNzFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0zIiBkPSJNMzIuNzYsOS4zOEEyNy45LDI3LjksMCwwLDAsMTAuMTgsNi4yN0wxMi44MSw4LjlBMjQuNjgsMjQuNjgsMCwwLDEsMzEuMSwxMi4xMmExLjQ5LDEuNDksMCwwLDAsMi0uNDZsLjExLS4xN0ExLjUxLDEuNTEsMCwwLDAsMzIuNzYsOS4zOFoiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0zLDQuNzVsMy4xLDMuMUEyNy4yOCwyNy4yOCwwLDAsMCwzLjE4LDkuNDJhMS41MSwxLjUxLDAsMCwwLS40OCwyLjExbC4xMS4xN2ExLjQ5LDEuNDksMCwwLDAsMiwuNDYsMjQuNjksMjQuNjksMCwwLDEs'@; put 'My42Ny0xLjlsMy4xNCwzLjE0YTIwLjYzLDIwLjYzLDAsMCwwLTQuNTMsMi4wOSwxLjUxLDEuNTEsMCwwLDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2QTE3LjQ2LDE3LjQ2LDAsMCwxLDE0LjI1LDE2bDMuNiwzLjZhMTMuMzksMTMuMzksMCwwLDAtNi43OSwxLjkzLDEu'@; put 'NSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMiwxMC4yLDAsMCwxLDktLjdMMjksMzAuNzVsMS40MS0xLjQxLTI2LTI2WiIvPlxuJyksbC5DbHJTaGFwZUluc3RhbGw9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC45Miw4SDI2LjU1YTEsMSwwLDAsMCwwLDJIMzFWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxMEEyLDIsMCwwLDAsMzAu'@; put 'OTIsOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1'@; put 'bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMC4zLDE4Ljg3bDcsNi44OWExLDEsMCwwLDAsMS40LDBsNy02Ljg5YTEsMSwwLDAs'@; put 'MC0xLjQtMS40M0wxOSwyMi42NVY0YTEsMSwwLDAsMC0yLDBWMjIuNjVsLTUuMy01LjIxYTEsMSwwLDAsMC0xLjQsMS40M1oiLz48cGF0aCBkPSJNMzEsMTMuNDNWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjky'@; put 'QTIsMiwwLDAsMCwzMywzMFYxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMC4zLDE4Ljg3bDcsNi44OWExLDEsMCwwLDAsMS40LDBsNy02Ljg5YTEsMSwwLDAsMC0xLjQtMS40M0wxOSwyMi42NVY0YTEsMSwwLDAs'@; put 'MC0yLDBWMjIuNjVsLTUuMy01LjIxYTEsMSwwLDAsMC0xLjQsMS40M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzEsMTUuNFYzMEg1VjEwSDkuMzhhMSwxLDAsMCwwLDAtMkg1'@; put 'LjA4QTIsMiwwLDAsMCwzLDEwVjMwYTIsMiwwLDAsMCwyLjA4LDJIMzAuOTJBMiwyLDAsMCwwLDMzLDMwVjE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i'@; put 'TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuJyksbC5DbHJTaGFwZVVuaW5zdGFsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTExLjI5LDI2LjcyYTEsMSwwLDAsMCwxLjQxLDBMMTgsMjEuNDlsNS4zLDUuMjNBMSwxLDAsMCwwLDI0LjcsMjUuM2wtNS4yOC01LjIxLDUuMjgtNS4yMWExLDEsMCwwLDAtMS40MS0xLjQyTDE4LDE4LjY4'@; put 'bC01LjMtNS4yM2ExLDEsMCwwLDAtMS40MSwxLjQybDUuMjgsNS4yMUwxMS4zLDI1LjNBMSwxLDAsMCwwLDExLjI5LDI2LjcyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC45Miw4SDI2LjU1YTEsMSwwLDAs'@; put 'MCwwLDJIMzFWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxMEEyLDIsMCwwLDAsMzAuOTIsOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjI5LDI2LjcyYTEsMSwwLDAsMCwxLjQxLDBMMTgsMjEuNDlsNS4zLDUuMjNBMSwxLDAsMCwwLDI0LjcsMjUuM2wtNS4yOC01LjIxLDUuMjgtNS4yMWExLDEsMCwwLDAtMS40MS0xLjQyTDE4LDE4LjY4bC01LjMtNS4y'@; put 'M2ExLDEsMCwwLDAtMS40MSwxLjQybDUuMjgsNS4yMUwxMS4zLDI1LjNBMSwxLDAsMCwwLDExLjI5LDI2LjcyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDNWMzBINVYx'@; put 'MEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMS4yOSwyNi43MmEx'@; put 'LDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw0Ljc1LTQuNjlIMjIuMjNhMy42NSwzLjY1LDAsMCwxLS44MS0uMUwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEs'@; put 'MSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzEsMTUuNFYzMEg1VjEwSDkuMzhhMSwxLDAsMCwwLDAtMkg1LjA4QTIsMiwwLDAsMCwzLDEwVjMw'@; put 'YTIsMiwwLDAsMCwyLjA4LDJIMzAuOTJBMiwyLDAsMCwwLDMzLDMwVjE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB'@; put 'MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuJyksbC5DbHJTaGFwZUxheWVycz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIwLjI1YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLDAtMS44MWwxNS03LjA5YTEsMSwwLDAsMSwuODUsMGwxNSw3LjA5YTEsMSwwLDAsMSwwLDEuODFsLTE1LDcuMDlBMSwxLDAsMCwxLDE4LDIwLjI1Wk01LjM0LDEyLjE2'@; put 'bDEyLjY2LDYsMTIuNjYtNkwxOCw2LjE4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyNi4xNmExLDEsMCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYu'@; put 'ODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDdhMSwxLDAsMCwxLS40My0uMWwtMTUtNy4wOWExLDEsMCwwLDEs'@; put 'Ljg1LTEuODFMMTgsMzBsMTQuNTctNi44OWExLDEsMCwxLDEsLjg1LDEuODFMMTguNDMsMzJBMSwxLDAsMCwxLDE4LDMyLjA3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDIwLjI1YTEsMSwwLDAsMS0uNDMtLjFs'@; put 'LTE1LTcuMDlhMSwxLDAsMCwxLDAtMS44MWwxNS03LjA5YTEsMSwwLDAsMSwuODUsMGwxNSw3LjA5YTEsMSwwLDAsMSwwLDEuODFsLTE1LDcuMDlBMSwxLDAsMCwxLDE4LDIwLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIg'@; put 'ZD0iTTE4LDI2LjE2YTEsMSwwLDAsMS0uNDMtLjFMMi41NywxOWExLDEsMCwxLDEsLjg1LTEuODFMMTgsMjQuMDZsMTQuNTctNi44OUExLDEsMCwxLDEsMzMuNDMsMTlsLTE1LDcuMDlBMSwxLDAsMCwxLDE4LDI2LjE2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLC44NS0xLjgxTDE4LDMwbDE0LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbicpLGwuQ2xyU2hhcGVCbG9j'@; put 'az0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIs'@; put 'OS4wOVpNMTgsNS4xLDI4LjYxLDEwLDE4LDE0LjksNy4zOSwxMFpNNiwxMS41NmwxMSw1LjA4djE0LjhMNiwyNi4zNlpNMTksMzEuNDRWMTYuNjRsMTEtNS4wOHYxNC44WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMzAsMTUuNTNWMjYuMzZMMTksMzEuNDRWMTYuNjRsMi41Ny0xLjE5YTMuNjcsMy42NywwLDAsMS0yLjExLTEuMjJMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWwzLjA4LDEuNDIsMS0xLjc0TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSww'@; put 'LDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuNTNaTTE3LDMxLjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTI2Ljg3LDEuMjZsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTJIMzMuN2ExLjI4LDEuMjgsMCwwLDAsMS4xLTEuOTJMMjkuMDgsMS4yNkExLjI4LDEuMjgsMCwwLDAsMjYuODcsMS4yNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMjYuMzZMMTksMzEuNDRWMTYuNjRsOC4wOC0zLjczYTcuNTcsNy41NywwLDAsMS0yLTEuMjdMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWw0LjYxLDIuMTNBNy4x'@; put 'Miw3LjEyLDAsMCwxLDIyLjUsNmE4LDgsMCwwLDEsLjA3LTFMMTguNDIsMy4wOWExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMy4yMkE3LjM3LDcuMzcsMCww'@; put 'LDEsMzAsMTMuNVpNMTcsMzEuNDQsNiwyNi4zNlYxMS41NmwxMSw1LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS40Miw5LjA5bC0xMy02YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEsMCwwLDAsLjU4'@; put 'LjkxbDEzLDZhMSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjEwQTEsMSwwLDAsMCwzMS40Miw5LjA5Wk0xOCwxNC45LDcuMzksMTAsMTgsNS4xLDI4LjYxLDEwWk0zMCwyNi4zNiwxOSwzMS40NFYxNi42NGwxMS01LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxNS4zOHYxMUwxOSwzMS40NFYxNi42NGwyLjc5LTEuMjlhMy42OCwzLjY4LDAsMCwxLTIuMjUtMS4xNkwxOCwxNC45LDcuMzksMTAsMTgsNS4xbDMsMS4zOSwxLTEuNzVMMTguNDIsMy4wOWExLDEsMCwwLDAtLjg0LDBs'@; put 'LTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMjYuODUsMS4xMiwyMS4xMywxMWExLjI3LDEuMjcsMCwwLDAsMS4xLDEuOTFIMzMuNjhBMS4yNywxLjI3LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTJBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt'@; put 'cGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMjYuMzZMMTksMzEuNDRWMTYuNjRsOC4wOC0zLjczYTcuNTcsNy41NywwLDAsMS0yLTEuMjdMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWw0LjYxLDIuMTNBNy4xMiw3LjEyLDAsMCwx'@; put 'LDIyLjUsNmE4LDgsMCwwLDEsLjA3LTFMMTguNDIsMy4wOWExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoi'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRn'@; put 'ZSIgLz4nKSxsLkNsclNoYXBlQmxvY2tzR3JvdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWNi40M0ExLDEsMCwwLDAsMjYsNS41M2wtNy41LTMuNDVhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRMMi42'@; put 'OCwxOC43NmExLDEsMCwwLDAtLjU4LjkxdjkuNzhoMGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MWgwVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43'@; put 'NlptLTIuODEuOTFMMjUuNjEsMjIsMjAuNSwxOS42N2w1LjExLTIuMzVaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptNi41LDExLjQ5LTYuNSwzLTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSww'@; put 'LDAsMCwxMSwyNGw2LjA4LTIuOFpNMTEuNiwxNS41N2gwVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwTDI0LjYsOHY3LjU4aDBsLTYuNSwzWk0zMi4xMSwyOC44MWwtNi41LDMtNi41MS0zVjIxLjIyTDI1LjE5LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdoLTJ2MGwtNi41LDMtNi41LTNWOGw2LjA4LDIuOGExLDEsMCwwLDAsLjg0LDBsLjI0LS4xMWE0LjE3LDQuMTcsMCwwLDEsLjI5LS42NWwxLjMzLTIuMzEtMi4yOCwxTDEzLDYu'@; put 'NDNsNS4xLTIuMzUsMy40NywxLjYsMS0xLjczTDE4LjUsMi4wOGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgt'@; put 'My4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAuNiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAs'@; put 'MCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbjxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N1YxMi43YTcuNTgsNy41OCwwLDAsMS0yLTEuNTF2NC4zOWwtNi41LDMtNi41LTNWOGw2LjA4LDIuOGExLDEsMCww'@; put 'LDAsLjg0LDBMMjMsOC43MmE3LjA1LDcuMDUsMCwwLDEtLjQ3LTJsLTQuNDcsMkwxMyw2LjQzbDUuMS0yLjM1LDQuNDQsMnMwLS4wNiwwLS4wOWE3LjU1LDcuNTUsMCwwLDEsLjI3LTJsLTQuMy0yYTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0bC02Ljks'@; put 'My4xOGExLDEsMCwwLDAtLjU4LjkxdjkuNzhhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFWMTkuNjdBMSwxLDAsMCwwLDMzLjUzLDE4Ljc2Wk0xMC42'@; put 'LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTAsMTQuNDktNi41LTNWMjEuMjNMMTAuMTgsMjRBMSwxLDAsMCwwLDExLDI0bDYuMDgtMi44LDAsNy42Wm0xNS0xNC40OCw1LjExLDIuMzVMMjUuNjEsMjIsMjAuNSwxOS42N1ptMCwxNC40OS02LjUxLTNWMjEuMjJMMjUuMTks'@; put 'MjRBMSwxLDAsMCwwLDI2LDI0bDYuMDgtMi44LDAsNy42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbjxjaXJjbGUgY3g9IjMwLjAzIiBjeT0iNi4wMyIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWNi40M0ExLDEsMCwwLDAsMjYsNS41M2wtNy41LTMuNDVhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRMMi42OCwx'@; put 'OC43NmExLDEsMCwwLDAtLjU4LjkxdjkuNzhoMGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MWgwVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpN'@; put 'MjUuNjEsMjIsMjAuNSwxOS42N2w1LjExLTIuMzUsNS4xMSwyLjM1Wm0tMS02LjQ0LTYuNDQsM1YxMC44N2ExLDEsMCwwLDAsLjM1LS4wOEwyNC42LDh2Ny41OFpNMTguMSw0LjA4bDUuMTEsMi4zNUwxOC4xLDguNzgsMTMsNi40M1pNMTAuNiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5'@; put 'LDE5LjY3Wm02LjUsMTEuNDktNi41LDNoMFYyNC4xMWgwQTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOFptMTUsMC02LjQ2LDNWMjQuMTFBMSwxLDAsMCwwLDI2LDI0bDYuMDgtMi44WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41Mywx'@; put 'OC43NiwyNi42LDE1LjU3djBoLTJ2MGwtNi40MywzVjEwLjg3YTEuMDUsMS4wNSwwLDAsMCwuMzUtLjA4bC4xNC0uMDZBMy4yMywzLjIzLDAsMCwxLDE5LDEwbDEuMjgtMi4yMi0yLjE0LDFMMTMsNi40M2w1LjEtMi4zNSwzLjM5LDEuNTYsMS0xLjczLTQtMS44M2ExLDEsMCwwLDAtLjg0LDBs'@; put 'LTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgt'@; put 'LjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0xMi4xMyw1LjExLTIuMzUsNS4xMSwyLjM1TDI1LjYxLDIyWk0y'@; put 'NS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODksMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4y'@; put 'NywxM0gzMy43MmExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMSwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44OSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbjxwYXRoIGQ9Ik0zMy41Mywx'@; put 'OC43NiwyNi42LDE1LjU3VjEyLjY5YTcuNjYsNy42NiwwLDAsMS0yLTEuNDd2NC4zNGwtNi40MywzVjEwLjg3YTEuMDUsMS4wNSwwLDAsMCwuMzUtLjA4TDIzLDguNzNhNy42NSw3LjY1LDAsMCwxLS40OC0ybC00LjQyLDJMMTMsNi40M2w1LjEtMi4zNSw0LjM4LDJWNmE3LjU1LDcuNTUsMCww'@; put 'LDEsLjI3LTJMMTguNSwyLjA4YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0bC02LjksMy4xOGExLDEsMCwwLDAtLjU4LjkxdjkuNzhhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEs'@; put 'MCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFWMTkuNjdBMSwxLDAsMCwwLDMzLjUzLDE4Ljc2Wm0tMjgsLjkxLDUuMTEtMi4zNiw1LjExLDIuMzVMMTAuNiwyMlpNMTAuNiwzMS44VjI0LjExQTEuMDgsMS4wOCwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptOS45LTEy'@; put 'LjEzLDUuMTEtMi4zNSw1LjExLDIuMzVMMjUuNjEsMjJaTTI1LjY0LDMxLjhWMjQuMTFBLjg5Ljg5LDAsMCwwLDI2LDI0bDYuMDgtMi44LDAsNy42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIyOS45OCIg'@; put 'Y3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGwuQ2xyU2hhcGVCdW5kbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIGQ9Ik0zMi40Myw4LjM1bC0xMy02LjIxYTEsMSwwLDAsMC0uODcsMGwtMTUsNy4yNGExLDEsMCwwLDAtLjU3LjlWMjYuODNhMSwxLDAsMCwwLC42LjkybDEzLDYuMTlhMSwxLDAsMCwwLC44NywwbDE1LTcuMjRhMSwxLDAsMCwwLC41Ny0uOVY5LjI1QTEsMSwwLDAsMCwzMi40Myw4LjM1'@; put 'Wk0xOSw0LjE1LDI5LjkzLDkuMzdsLTUuMDUsMi40NEwxNC4yMSw2LjQ2Wk0xNywxNS42NCw2LDEwLjQxbDUuOS0yLjg1TDIyLjYsMTIuOTFaTTUsMTIuMTMsMTYsMTcuNFYzMS40Nkw1LDI2LjJaTTE4LDMxLjQ1VjE3LjM2bDEzLTYuMjl2MTQuMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi40Myw4LjM1bC0xMy02LjIxYTEsMSwwLDAsMC0uODcsMGwtMTUsNy4yNGExLDEsMCwwLDAtLjU3LjlWMjYuODNhMSwxLDAsMCwwLC42LjkybDEzLDYuMTlhMSwxLDAsMCwwLC44NywwbDE1LTcuMjRhMSwxLDAsMCww'@; put 'LC41Ny0uOVY5LjI1QTEsMSwwLDAsMCwzMi40Myw4LjM1Wk0xOSw0LjE1LDI5LjkzLDkuMzdsLTUuMDUsMi40NEwxNC4yMSw2LjQ2Wk0xNywxNS42NCw2LDEwLjQxbDUuOS0yLjg1TDIyLjYsMTIuOTFabTEsMTUuOFYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4nKSxsLkNsclNoYXBlV2lmaT0o'@; put 'MCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjU1LDguMmEyOC4xLDI4LjEsMCwwLDAtMzEuMTEuMDhBMSwxLDAsMSwwLDMuNTYsOS45NGEyNi4xMSwyNi4xMSwwLDAsMSwyOC44OS0uMDcsMSwxLDAsMCwwLDEu'@; put 'MS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOC4wNSwxMC43MkEyMC43NCwyMC43NCwwLDAsMCw2LjIzLDE0LjQsMSwxLDAsMCwwLDcuMzYsMTYsMTguODUsMTguODUsMCwwLDEsMjguNjQsMTZhMSwx'@; put 'LDAsMCwwLDEuMTItMS42NUEyMC43NSwyMC43NSwwLDAsMCwxOC4wNSwxMC43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTguMDUsMTcuOWExMy41MSwxMy41MSwwLDAsMC04LDIuNjQsMSwxLDAsMCwwLDEu'@; put 'MTgsMS42MSwxMS41NiwxMS41NiwwLDAsMSwxMy42Mi0uMDhBMSwxLDAsMSwwLDI2LDIwLjQ2LDEzLjUyLDEzLjUyLDAsMCwwLDE4LjA1LDE3LjlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDI0LjQyYTQs'@; put 'NCwwLDEsMCw0LDRBNCw0LDAsMCwwLDE4LDI0LjQyWm0wLDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMTgsMzAuNDJaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGN4PSIxOCIgY3k9IjI5LjU0IiByPSIzIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzIuNzYsOS4zOGEyNy44NywyNy44NywwLDAsMC0yOS41NywwLDEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY4LDI0LjY4LDAsMCwx'@; put 'LDI2LjI2LDAsMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjguODIsMTUuNDRhMjAuNTksMjAuNTksMCwwLDAtMjEu'@; put 'NywwLDEuNTEsMS41MSwwLDAsMC0uNDYsMi4xbC4xMS4xN2ExLjQ5LDEuNDksMCwwLDAsMiwuNDYsMTcuNCwxNy40LDAsMCwxLDE4LjM2LDAsMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDI4LjgyLDE1LjQ0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTI0Ljg4LDIxLjQ5YTEzLjQxLDEzLjQxLDAsMCwwLTEzLjgyLDAsMS41LDEuNSwwLDAsMC0uNDYsMi4wOWwuMS4xNmExLjUyLDEuNTIsMCwwLDAsMi4wNi40NCwxMC4yNywxMC4yNywwLDAsMSwxMC40MiwwLDEuNTIsMS41'@; put 'MiwwLDAsMCwyLjA2LS40NWwuMS0uMTZBMS40OSwxLjQ5LDAsMCwwLDI0Ljg4LDIxLjQ5WiIvPlxuJyksbC5DbHJTaGFwZVJhY2tTZXJ2ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQi'@; put 'IHg9IjEwIiB5PSIxNyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAg'@; put 'ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjEwIiB5PSIyNSIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguNjQsMTFBMy42NSwzLjY1LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxMHYyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0zMy42'@; put 'OCwxNS40SDMyVjIxSDRWMTVIMjAuNThBMy42NywzLjY3LDAsMCwxLDE5LDEzLjU2YTMuNjMsMy42MywwLDAsMS0uMjYtLjU2SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFpNNCwyOVYyM0gzMnY2WiIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu'@; put 'NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAg'@; put 'ICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSI2IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIHg9IjYiIHk9IjI1IiB3aWR0aD0iMiIgaGVp'@; put 'Z2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIHg9IjEwIiB5PSIyNSIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgZD0iTTEwLDExSDI0di0uNTFBNy40OCw3LjQ4LDAsMCwxLDIzLjEzLDlIMTBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQi'@; put 'IGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0yLjY4LS41SDRWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDMw'@; put 'LDEzLjVaTTQsMTVIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIxMCIgeT0iOSIgd2lkdGg9'@; put 'IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI2IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQiIHg9IjEwIiB5PSIxNyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCww'@; put 'LDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMnY2SDRabTAsOEgzMnY2SDRaTTQsMjlWMjNIMzJ2NloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjEwIiB5PSIyNSIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEt'@; put 'LWFsZXJ0ZWQiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0x'@; put 'OSw5Ljg5LDE5LjU2LDlIMTBWN0gyMC43MWwxLjczLTNINEEyLDIsMCwwLDAsMiw2djZIMTguNTdBMy42NywzLjY3LDAsMCwxLDE5LDkuODlaTTgsOUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFs'@; put 'ZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOS4zNSwxNEgydjhIMzRWMTUuMzhaTTgsMTlINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0t'@; put 'YWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDE0djhIMzRWMTRabTYsNUg2VjE3SDhabTE2LDBIMTBWMTdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTIt'@; put 'LWJhZGdlZCIgZD0iTTIsMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0SDJabTgtM0gyNHYySDEwWk02LDI3SDh2Mkg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0yMy4x'@; put 'Myw5SDEwVjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNDksNy40OSwwLDAsMSwuMjgtMkg0QTIsMiwwLDAsMCwyLDZ2NkgyNS41MUE3LjUyLDcuNTIsMCwwLDEsMjMuMTMsOVpNOCw5SDZWN0g4WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJh'@; put 'ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIsMjJIMzRWMTRIMlptOC01SDI0djJIMTBaTTYsMTdIOHYy'@; put 'SDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZ2NkgzNFY2QTIsMiwwLDAsMCwzMiw0Wk04LDlINlY3SDhaTTI0LDlIMTBWN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbicpLGwuQ2xyU2hhcGVIYXJkRGlzaz0oMCxhLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRl'@; put 'ZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTM0LDIxLjA4bC0xLjQtNS42OEgzMC41MWwxLjQ5LDZWMjlINFYyMS40'@; put 'NEw3LjA2LDloMTIuNWwxLjE1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAs'@; put 'MCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0z'@; put 'NCwyMS4wOCwzMiwxMy4yMWE3LjQ5LDcuNDksMCwwLDEtMiwuMjlsMiw3Ljk0VjI5SDRWMjEuNDRMNy4wNiw5SDIzLjEzYTcuNDUsNy40NSwwLDAsMS0uNTUtMkg3LjA2QTIsMiwwLDAsMCw1LjEzLDguNDdMMiwyMS4wOGExLDEsMCwwLDAsMCwuMjRWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIs'@; put 'MCwwLDAsMi0yVjIxLjMxQTEsMSwwLDAsMCwzNCwyMS4wOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDIxLjA4LDMwLjg2LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwy'@; put 'LDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaTTQsMjlWMjEuNDRMNy4wNiw5SDI4LjkzTDMyLDIxLjQ0VjI5WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhl'@; put 'aWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjJ2N2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjJabTI4LDVIMjZWMjVoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0z'@; put 'Mi41OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIwLjcxLDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBIMzMuNzFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVk'@; put 'IGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTIsMjJ2N2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjJabTI4LDVIMjZWMjVoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjFBNy40Nyw3LjQ3LDAsMCwxLDIyLjU3LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBIMzMuNzFaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0t'@; put 'YmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAuODYsOC40M0EyLDIsMCwwLDAsMjguOTQsN0g3LjA2QTIsMiwwLDAsMCw1LjEzLDguNDdMMi4yOSwy'@; put 'MEgzMy43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4nKSxsLkNsclNoYXBlQmFja3VwUmVzdG9yZT0oMCxh'@; put 'LmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTEzLDkuOTIsMTcs'@; put 'NlYxOWExLDEsMCwxLDAsMiwwVjZsMS40NywxLjQ2LDEtMS43OUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEu'@; put 'NTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDE1VjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs'@; put 'Mi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4'@; put 'LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2Vk'@; put 'IiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMTlhMSwxLDAsMSwwLDIsMFY2bDQsMy45NWExLDEsMCwwLDAsLjcxLjI5bC4xMSwwYTcuNDYsNy40NiwwLDAsMS0xLjI1LTMuNTJMMTgsMi4x'@; put 'NiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1QTcuNDYsNy40NiwwLDAs'@; put 'MSwyNS41MSwxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJh'@; put 'MiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5c'@; put 'biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIy'@; put 'NiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2'@; put 'LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzAuODQsMTMuMzdBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDIxdjJoNy45NUMzMCwxNi45NCwzMS43MiwyMS42'@; put 'NSwzMiwyMi40OFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDE1VjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEsMzQsMjIsMzAuODQs'@; put 'MTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEzLDkuOTIsMTcsNlYxOGExLDEsMCwxLDAsMiwwVjZsMS40NywxLjQ2LDEtMS43OUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zMS41OCwxNS40SDIyLjIzQTMuNjIsMy42MiwwLDAsMSwyMSwxNS4xNlYxOGEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYs'@; put 'MTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDMzLjkzQzMzLjc5LDIxLjQ5LDMzLjI4LDIwLjA3LDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYu'@; put 'ODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJN'@; put 'MTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIuMTYsMTEuNjEsOC41QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1QTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwy'@; put 'LjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMsMzMuMTUsMTkuNywzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYi'@; put 'IHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzAuODQsMTMuMzdBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDIxdjZhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgzMy45M0MzMy43NywyMS40Mywz'@; put 'My4xNCwxOS42OSwzMC44NCwxMy4zN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDQsMy45NUExLDEsMCwxLDAsMjQuMzgsOC41TDE4LDIuMTYsMTEuNjEsOC41'@; put 'QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuJyksbC5DbHJTaGFwZUJhY2t1cD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+'@; put 'XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjcsMy42NywwLDAsMS0yLS42MUwxOSwxNlY0YTEsMSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0zMS41OCwxNS40SDI5LjQ2YzEsMi44NSwyLjMxLDYuMzcsMi41NCw3LjA4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIOS41OGEzLDMsMCwwLDEtLjE0LTJINy4w'@; put 'N2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjIuMzNDMzQsMjIuMTIsMzQsMjIsMzEuNTgsMTUuNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+'@; put 'XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIyNiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTE4LDE5Ljg0bDYuMzgtNi4z'@; put 'NUExLDEsMCwxLDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTMwLjg3'@; put 'LDEzLjQ1YTcuNTUsNy41NSwwLDAsMS0uODcuMDUsNy40Niw3LjQ2LDAsMCwxLTMuMzUtLjgsMywzLDAsMCwxLS4yNCwxLjNoMi41NEMzMCwxNi45NCwzMS43MiwyMS42NSwzMiwyMi40OFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0y'@; put 'SDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEsMzQsMjIsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0i'@; put 'MiIvPjxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiXG4gICAgICAgICAgICAgICAgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45Mywx'@; put 'MkgyNi41NWEzLDMsMCwwLDEtLjE0LDJoMi41NEMzMCwxNi45NCwzMS43MiwyMS42NSwzMiwyMi40OFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIu'@; put 'MzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEsMzQsMjIsMzAuODQsMTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDE5Ljg0bDYuMzgtNi4zNUExLDEsMCwx'@; put 'LDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNi41OCwyMS4yNiwxMC4y'@; put 'LDE0LjkxQTMsMywwLDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxl'@; put 'cnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOC42NiwyMkgzMy45M2Mt'@; put 'LjE1LS41MS0uNjUtMS45My0yLjM1LTYuNkgyNS4zbC01Ljg5LDUuODZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNMTgsMTkuODRsNC40Ny00LjQ0aC0uMjNhMy42NCwzLjY0LDAsMCwx'@; put 'LTItLjYxTDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4x'@; put 'NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDE5Ljg0bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTYuNTgsMjEuMjYsMTAuMiwxNC45MUEzLDMsMCwwLDEsOS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNEgyNlYyNmg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt'@; put 'c29saWQtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xOC42NiwyMkgzMy45M2MtLjE3LS41Ny0uNzktMi4zLTMuMDYtOC41NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uODYsMi4yMWwtNi4zOCw2LjM1WiIvPlxuICAgICAgICAgICAgPGNp'@; put 'cmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDE5Ljg0'@; put 'bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xOS40MSwyMS4yNmwtLjc0'@; put 'Ljc0SDMzLjkzYy0uMTctLjU3LS43OS0yLjMxLTMuMDktOC42M0ExLjk0LDEuOTQsMCwwLDAsMjguOTMsMTJIMjYuNTVhMywzLDAsMCwxLS43NiwyLjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTE2LjU4LDIxLjI2'@; put 'LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMiwy'@; put 'NHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNEgyNlYyNmg0WiIvPlxuJyksbC5DbHJTaGFwZURldmljZXM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxM0gyNGEyLDIsMCww'@; put 'LDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjE1QTIsMiwwLDAsMCwzMiwxM1ptMCwyVjI2SDI0VjE1Wk0yNCwzMFYyNy42aDhWMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIwLDIy'@; put 'SDRWNkgyOHY1aDJWNmEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsNlYyMmEyLDIsMCwwLDAsMiwySDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMCwyNkg5YTEsMSwwLDAsMCwwLDJIMjBaIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyOEgyNFYxNVoiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOCw0SDRBMiwyLDAsMCwwLDIsNlYyMmEyLDIsMCwwLDAsMiwyaDh2Mkg5LjMyQTEuMiwxLjIsMCwwLDAsOCwyN2ExLjIsMS4yLDAsMCwwLDEuMzIsMUgxOS45MnYtLjM3SDIwVjIySDRWNkgyOHY1aDJW'@; put 'NkEyLDIsMCwwLDAsMjgsNFoiLz5cbicpLGwuQ2xyU2hhcGVLZXlib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww'@; put 'LDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCwxOEg0VjEwSDMyWiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTEiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTUiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0'@; put 'PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTkiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NiIgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgeD0iNyIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiB4PSIxMSIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9'@; put 'IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIgeD0iMTUiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MTEiIHg9IjE5IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMyIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIgeD0iMjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTQiIHg9IjI3IiB5PSIyMiIgd2lkdGg9IjEuOTQi'@; put 'IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiB4PSI3IiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTE2IiB4PSIxMS4xMyIgeT0iMjIiIHdpZHRoPSIxMy43NSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCww'@; put 'LDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk0xOSwxM2gydjJIMTlabTAsNGgydjJIMTlabS00LTRoMnYySDE1Wm0wLDRoMnYySDE1Wm0tNC00aDJ2MkgxMVpNOSwyNEg3VjIySDlabTAtNUg3VjE3SDlabTAtNEg3VjEzSDlabTIsMmgydjJIMTFabTEzLjg4LDdIMTEuMTNWMjJIMjQuODhaTTI1'@; put 'LDE5SDIzVjE3aDJabTAtNEgyM1YxM2gyWm0zLjk0LDlIMjdWMjJoMS45NFpNMjksMTlIMjdWMTdoMlptMC00SDI3VjEzaDJaIi8+XG4nKSxsLkNsclNoYXBlTW91c2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9'@; put 'Ik0xOCwzNEExMCwxMCwwLDAsMSw4LDI0VjEyYTEwLDEwLDAsMCwxLDIwLDBWMjRBMTAsMTAsMCwwLDEsMTgsMzRaTTE4LDRhOCw4LDAsMCwwLTgsOFYyNGE4LDgsMCwwLDAsMTYsMFYxMkE4LDgsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTVhMSwxLDAsMCwxLTEtMVYxMGExLDEsMCwwLDEsMiwwdjRBMSwxLDAsMCwxLDE4LDE1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTAsMTAsMCwwLDAs'@; put 'OCwxMlYyNGExMCwxMCwwLDAsMCwyMCwwVjEyQTEwLDEwLDAsMCwwLDE4LDJabTEuMywxMS40NGExLjMsMS4zLDAsMCwxLTIuNiwwVjEwYTEuMywxLjMsMCwwLDEsMi42LDBaIi8+XG4nKSxsLkNsclNoYXBlRGFzaGJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjUuMTgsMTIuMzJsLTUuOTEsNS44MWEzLDMsMCwxLDAsMS40MSwxLjQybDUuOTItNS44MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDQu'@; put 'MjVBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVBMTYuNDksMTYuNDksMCwwLDAsMTgsNC4yNVptMTEuMzQsMjUuNUg2LjY2YTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUs'@; put 'MS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM2ExNC40NywxNC40NywwLDAsMSwxMy40LDEzLjYxSDI4LjkydjJoMy41M0ExNC40MywxNC40MywwLDAsMSwyOS4zNCwyOS43NVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS44NSwxOC42OWEzLDMsMCwxLDAsNC44My44NWw1LjkyLTUuODEtMS40MS0xLjQxLTUuOTEsNS44MUEzLDMsMCwwLDAsMTUuODUsMTguNjlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40NSw3LjQ1LDAsMCwxLTIuMDYuNDQsMTQuNCwxNC40LDAsMCwxLDEuOTMsNi40M0gyOC45MnYyaDMuNTNhMTQuNDMsMTQuNDMsMCwwLDEtMy4xMSw3Ljg0SDYuNjZh'@; put 'MTQuNDMsMTQuNDMsMCwwLDEtMy4xMS03Ljg0SDd2LTJIMy41NUExNC40MSwxNC40MSwwLDAsMSw3LDExLjI5bDIuNDUsMi40NSwxLjQxLTEuNDFMOC40Myw5Ljg3QTE0LjQxLDE0LjQxLDAsMCwxLDE3LDYuMjl2My41aDJWNi4zQTE0LjQxLDE0LjQxLDAsMCwxLDIyLjU4LDdhNy41Miw3LjUy'@; put 'LDAsMCwxLS4wOC0xLDcuNTIsNy41MiwwLDAsMSwuMDktMS4wOUExNi40OSwxNi40OSwwLDAsMCw1LjQsMzEuNGwuMy4zNUgzMC4zbC4zLS4zNWExNi40NSwxNi40NSwwLDAsMCwyLTE4LjM2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDQuMjVBMTYuNDksMTYuNDksMCwwLDAsNS40LDMx'@; put 'LjRsLjMuMzVIMzAuM2wuMy0uMzVBMTYuNDksMTYuNDksMCwwLDAsMTgsNC4yNVptOC42LDkuNDgtNS45Miw1LjgxYTMsMywwLDEsMS0xLjQxLTEuNDJsNS45MS01LjgxWm0tMjMsNi4xN0g3djJIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3UzMuNTMsMjAuMTgsMy41NSwxOS45Wm00Ljg4'@; put 'LTEwLDIuNDYsMi40Nkw5LjQ3LDEzLjc0LDcsMTEuMjlBMTQuNTcsMTQuNTcsMCwwLDEsOC40Myw5Ljg3Wk0xOSw5Ljc5SDE3VjYuMjljLjMyLDAsLjYzLDAsMSwwcy43LDAsMSwuMDVaTTMyLjQ5LDIwLjc0YzAsLjM5LDAsLjc5LS4wNSwxLjE3SDI4Ljkydi0yaDMuNTNDMzIuNDcsMjAuMTgs'@; put 'MzIuNDksMjAuNDYsMzIuNDksMjAuNzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMi41OCwxM2E3LjQ2LDcuNDYsMCwwLDEtMTAtOC4xMkExNi40OSwxNi40OSwwLDAsMCw1LjQs'@; put 'MzEuNGwuMy4zNUgzMC4zbC4zLS4zNWExNi40NSwxNi40NSwwLDAsMCwyLTE4LjM2Wk0xNyw2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1djMuNUgxN1pNNywyMS45MUgzLjU2YzAtLjM5LS4wNS0uNzctLjA1LTEuMTdzMC0uNTYsMC0uODNIN1ptMi41MS04LjE2TDcsMTEuMjlBMTQu'@; put 'NTcsMTQuNTcsMCwwLDEsOC40Myw5Ljg3bDIuNDYsMi40NlptMTAuNjIsOS4xOWEzLDMsMCwxLDEtLjgyLTQuODFsNS45MS01LjgxLDEuNDEsMS40MS01LjkyLDUuODFBMywzLDAsMCwxLDIwLjA5LDIyLjkzWm0xMi4zNS0xSDI4Ljkydi0yaDMuNTNjMCwuMjgsMCwuNTUsMCwuODNTMzIuNDcs'@; put 'MjEuNTIsMzIuNDQsMjEuOTFaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuJyksbC5DbHJTaGFwZUhvc3Q9KDAsYS5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyNC4zYTIuNDgsMi40OCwwLDEsMCwyLjQ4LDIuNDdBMi40OCwyLjQ4LDAsMCwwLDE4LDI0LjNabTAsMy42YTEuMTMsMS4xMywwLDEsMSwxLjEzLTEuMTJBMS4xMywxLjEzLDAs'@; put 'MCwxLDE4LDI3LjlaIi8+PHJlY3QgeD0iMTMuNSIgeT0iMjAuNyIgd2lkdGg9IjkiIGhlaWdodD0iMS40NCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjUsMy42SDEwLjM1QTEuMzUsMS4zNSwwLDAs'@; put 'MCw5LDQuOTVWMzIuNEgyN1Y0Ljk1QTEuMzUsMS4zNSwwLDAsMCwyNS42NSwzLjZabS0uNDUsMjdIMTAuOFY1LjRIMjUuMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTIuNiIgeT0iNy4yIiB3aWR0aD0i'@; put 'MTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEyLjYiIHk9IjEwLjgiIHdpZHRoPSIxMC44IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE1LjIsMjcuOGMwLDEuNSwxLjIsMi44LDIuOCwyLjhzMi44LTEuMiwyLjgtMi44UzE5LjUsMjUsMTgsMjVTMTUuMiwyNi4yLDE1LjIsMjcuOHogTTE5LjIsMjcuOGMwLDAuNy0wLjYsMS4y'@; put 'LTEuMiwxLjJzLTEuMi0wLjYtMS4yLTEuMnMwLjYtMS4yLDEuMi0xLjJTMTkuMiwyNy4xLDE5LjIsMjcuOHoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iMTMiIHk9IjIxIiB3'@; put 'aWR0aD0iMTAiIGhlaWdodD0iMS42Ii8+XG4gICAgICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHBvaW50cz0iMjEuMyw2IDEyLDYgMTIsNy42IDIwLjQsNy42Ii8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0xMiwxMS42aDYuNmMwLTAuNiwwLjItMS4xLDAuNC0xLjZoLTdWMTEuNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgZD0iTTI2LDE1LjRWMzJIMTBWNGgxMi41bDEuMS0ySDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS40SDI2eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01Ljct'@; put 'OS45Yy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE1LjIsMjcuOGMwLDEuNSwxLjIsMi44'@; put 'LDIuOCwyLjhzMi44LTEuMiwyLjgtMi44UzE5LjUsMjUsMTgsMjVTMTUuMiwyNi4yLDE1LjIsMjcuOHogTTE5LjIsMjcuOGMwLDAuNy0wLjYsMS4yLTEuMiwxLjJzLTEuMi0wLjYtMS4yLTEuMnMwLjYtMS4yLDEuMi0xLjJTMTkuMiwyNy4xLDE5LjIsMjcuOHoiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjEzIiB5PSIyMSIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTI0LDEwLjVjLTAuMS0wLjItMC4yLTAuMy0wLjMtMC41SDEydjEuNmgxMlYxMC41eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0i'@; put 'TTEyLDZ2MS42aDEwLjdjLTAuMS0wLjUtMC4yLTEuMS0wLjItMS42SDEyeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgZD0iTTI2LDEyLjNWMzJIMTBWNGgxMi44YzAuMi0wLjcsMC41'@; put 'LTEuNCwwLjktMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTMuMkMyNy4zLDEzLDI2LjYsMTIuNywyNiwxMi4zeiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJh'@; put 'ZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LjUsMmgtMTdDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMy41QzI4LDIuNywyNy4zLDIsMjYuNSwyeiBNMTgsMzAuNWMt'@; put 'MS41LDAtMi44LTEuMi0yLjgtMi44UzE2LjUsMjUsMTgsMjVzMi44LDEuMiwyLjgsMi44UzE5LjUsMzAuNSwxOCwzMC41eiBNMjMsMjIuNkgxM1YyMWgxMFYyMi42eiBNMjQsMTEuNkgxMlYxMGgxMlYxMS42eiBNMjQsNy42SDEyVjZoMTJWNy42eiIvPlxuICAgICAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMjcuOCIgcj0iMS4yIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIyLjIsMTUuM2Mt'@; put 'MiwwLTMuNy0xLjYtMy43LTMuN0gxMlYxMGg2LjljMC0wLjEsMC4xLTAuMiwwLjEtMC4ybDEuMi0yLjJIMTJWNmg5LjJsMi4zLTRoLTE0QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjE1LjNIMjIuMnogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwx'@; put 'LjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIv'@; put 'PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDFsLTUuNyw5LjljLTAuMywwLjYtMC4xLDEuNCwwLjUsMS43YzAuMiwwLjEsMC40LDAuMiwwLjYsMC4yaDEx'@; put 'LjRjMC43LDAsMS4zLTAuNiwxLjMtMS4zYzAtMC4yLTAuMS0wLjQtMC4yLTAuNkwyOS4xLDFjLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC43LDI3LDAuOCwyNi45LDF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNCwxMC4zdjEuMkgxMlYxMGgxMS44Yy0wLjUtMC43LTAuOC0xLjUtMS0yLjRIMTJWNmgxMC41YzAsMCwwLTAuMSwwLTAuMWMwLTEuNCwwLjQtMi43LDEuMS0zLjlIOS41QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjFDMjYuNCwxMi42LDI1LDEx'@; put 'LjcsMjQsMTAuM3ogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXpNMjMsMjIuNkgxM1YyMWgxMFYyMi42eiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1i'@; put 'YWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9'@; put 'IjUuOSIgcj0iNSIvPlxuJyksbC5DbHJTaGFwZVN0b3JhZ2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMyw2LjY5aDBjLS4xOC0zLjQxLTkuNDctNC4zMy0xNS00LjMzUzMsMy4yOSwzLDYuNzhWMjkuMzdj'@; put 'MCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjYuNzhzMCwwLDAsMFMzMyw2LjcsMzMsNi42OVptLTIsNy41NmMtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUuMzR2Mi4wOEE0My4zMiw0My4zMiwwLDAsMCwxOCwxOC43YzQsMCw5'@; put 'LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMyLDQzLjMyLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUuODYtNS4wOCwyLjQ1LTEzLDIuNDVTNS4zLDMwLjIsNSwyOS4zN1Y2'@; put 'LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmM3Ljc3LDAsMTIuNDYsMS41MywxMywyLjM3LS41Mi44Ny01LjIxLDIuMzktMTMsMi4zOUEzNy42LDM3LjYsMCwwLDEsNyw3Ljc2VjkuODVhNDMuNTMsNDMuNTMsMCwwLDAsMTEsMS4yN2M0LDAsOS45My0uNDgsMTMtMloiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LjUxLDkuMDksMTgsOS4xMUEzNy42LDM3LjYsMCwwLDEsNyw3Ljc2VjkuODVhNDMuNTMsNDMuNTMsMCwwLDAsMTEsMS4yN2guNjFBMy42NiwzLjY2LDAs'@; put 'MCwxLDE5LDkuODlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yOC44MywxNS40QTM4LjM3LDM4LjM3LDAsMCwxLDE4LDE2LjcsMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4z'@; put 'NHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xN2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44'@; put 'Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3VjYuODJDNS4zLDYsMTAsNC4zNiwxOCw0LjM2YzEuNSwwLDIuODkuMDYsNC4xNS4xNmwxLjEtMS45Yy0xLjg2LS4xOC0zLjctLjI2LTUuMjUtLjI2LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4zN2MwLDMuNDksOS40Myw0LjQz'@; put 'LDE1LDQuNDNzMTUtLjkzLDE1LTQuNDN2LTE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCww'@; put 'LDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2Vk'@; put 'IiBkPSJNNyw3Ljc2VjkuODVhNDMuNTMsNDMuNTMsMCwwLDAsMTEsMS4yNyw1NC44Miw1NC44MiwwLDAsMCw2LjItLjM2LDcuNSw3LjUsMCwwLDEtMS4xMy0xLjg4Yy0xLjUuMTUtMy4yLjI0LTUuMDcuMjRBMzcuNiwzNy42LDAsMCwxLDcsNy43NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMSwxMy40M3YuODJjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzMsNDMuMzMsMCwwLDAsMTgsMTguN2M0LDAs'@; put 'OS45My0uNDgsMTMtMnY1LjE3Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMyw0My4zMywwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdW'@; put 'Ni44MkM1LjMsNiwxMCw0LjM2LDE4LDQuMzZjMS43LDAsMy4yNS4wOCw0LjY0LjJhNy40NCw3LjQ0LDAsMCwxLC42Ny0xLjk0Yy0xLjg4LS4xOC0zLjc1LS4yNi01LjMxLS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00'@; put 'LjQzVjEyLjg3QTcuNDUsNy40NSwwLDAsMSwzMSwxMy40M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy45MSwxOC4yOGM4LjA4LDAsMTQuNjYtMS43NCwxNS4wOS0zLjk0VjguNTljLS40MywyLjItNywzLjk0LTE1LjA5LDMuOTRBMzkuNCwzOS40LDAsMCwxLDYuMjUsMTFWOWEzOS40LDM5'@; put 'LjQsMCwwLDAsMTEuNjYsMS41MUMyNiwxMC41MywzMi41Miw4Ljc5LDMzLDYuNjFoMEMzMi44LDMuMiwyMy41MiwyLjI4LDE4LDIuMjhTMywzLjIxLDMsNi43MVYyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcu'@; put 'OTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yQTM5LjQsMzkuNCwwLDAs'@; put 'MCwxNy45MSwxOC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTcuOTEsMjAuMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMTguNzd2LTJhMzkuNCwzOS40LDAsMCwwLDExLjY2'@; put 'LDEuNTFjNi45LDAsMTIuNy0xLjI3LDE0LjUxLTNIMjIuMjNhMy42NywzLjY3LDAsMCwxLTMuNTUtMi43NWgtLjc3QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEuNTFoLjgyQTMuNjQsMy42NCwwLDAsMSwxOSw5Ljc1bDQuMTctNy4yMmMtMS44NS0u'@; put 'MTgtMy42OC0uMjUtNS4yMS0uMjUtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjI5YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1YyNC4wOUMzMi41NywyNi4yOCwyNiwyOCwxNy45MSwyOEEzOS40LDM5LjQsMCwwLDEsNi4yNSwyNi41MnYtMkEzOS40LDM5LjQsMCww'@; put 'LDAsMTcuOTEsMjZDMjYsMjYsMzIuNTcsMjQuMjgsMzMsMjIuMDlWMTYuMzRDMzIuNTcsMTguNTMsMjYsMjAuMjgsMTcuOTEsMjAuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHIt'@; put 'aS1hbGVydCIgZD0iTTI2Ljg1LDFsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDFBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNy45MSwxOC4yOGM4LjA4LDAsMTQuNjYtMS43NCwxNS4wOS0zLjk0di0xLjZhNy40Nyw3LjQ3LDAsMCwxLTcuMzgtLjgsNDguMyw0OC4zLDAsMCwxLTcuNzEuNTlBMzkuNCwzOS40LDAsMCwxLDYuMjUsMTFWOWEzOS40'@; put 'LDM5LjQsMCwwLDAsMTEuNjYsMS41MSw1MSw1MSwwLDAsMCw2LS4zNCw3LjQ2LDcuNDYsMCwwLDEtLjU5LTcuNjVjLTEuODctLjE4LTMuNzMtLjI2LTUuMjgtLjI2LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQu'@; put 'MDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1'@; put 'LDE4Ljc3di0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwxOC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI1Ljg2IiByPSI1Ii8+XG4nKSxs'@; put 'LkNsclNoYXBlQ2x1c3Rlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMzYsOEgyNy41djJIMzFWMzBIMjcuNXYySDMzVjkuNjdBMS42NSwxLjY1LDAsMCwwLDMxLjM2LDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTUsMTBIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3VjMySDguNVYzMEg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz48ZWxsaXBzZSBjeD0iMTguMDEiIGN5PSIyNS45OSIgcng9IjEuOCIgcnk9IjEuNzkiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMzIsNEgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlY1LjY4QTEuNjgsMS42OCwwLDAsMCwyNC4zMiw0Wk0yNCwzMEgxMlY2SDI0WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzLjUiIHk9IjkuMjEiIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDgu'@; put 'NVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDkuODlsLjM5LS42OEgxMy41djEuNmg1LjE3QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwzMEgxMlY2aDkuMjlsMS4xNS0ySDExLjY4QTEuNjgsMS42OCwwLDAsMCwxMCw1LjY4VjMySDI2VjE1LjRIMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40IDMxIDMwIDI3LjUgMzAgMjcuNSAzMiAzMyAzMiAzMyAxNS40IDMxIDE1LjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVk'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTBIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3VjMySDguNVYzMEg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzLjUiIHk9'@; put 'IjkuMjEiIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMTAuNDlWMzBIMTJWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMS42OEEx'@; put 'LjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxMi4zNEE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M1YzMEgyNy41djJI'@; put 'MzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjM2LDhIMjcuNVYzMkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMzIsNEgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42'@; put 'OFYzMkgyNlY1LjY4QTEuNjgsMS42OCwwLDAsMCwyNC4zMiw0Wk0xOCwyNy43OUExLjc5LDEuNzksMCwxLDEsMTkuODEsMjYsMS44LDEuOCwwLDAsMSwxOCwyNy43OVpNMjMsMTAuNkgxM1Y5SDIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy41IiB5PSIxNS40IiB3aWR0aD0iNS41'@; put 'IiBoZWlnaHQ9IjE2LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjMxLTNIMTNWOWg2LjU2bDIuODktNUgxMS42OEExLjY4LDEuNjgsMCww'@; put 'LDAsMTAsNS42OFYzMkgyNlYxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVy'@; put 'dGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMyw5LjY3VjMySDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2Wk0xOCwyNy43OUExLjc5LDEuNzksMCwxLDEsMTkuODEsMjYs'@; put 'MS44LDEuOCwwLDAsMSwxOCwyNy43OVpNMjMsMTAuNkgxM1Y5SDIzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0yLjUtLjQ0VjMySDMzVjEyLjg3'@; put 'QTcuNDcsNy40NywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt'@; put 'cGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZUFwcGxpY2F0aW9ucz0oMCxhLmNsckljb25TVkcpKCc8cG9seWdvbiBwb2ludHM9IjggOCA0IDggNCAxMCAxMCAxMCAxMCA0IDggNCA4IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDggMTUgOCAxNSAxMCAyMSAxMCAyMSA0IDE5IDQgMTkgOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgNCAzMCA4'@; put 'IDI2IDggMjYgMTAgMzIgMTAgMzIgNCAzMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE5IDQgMTkgNCAyMSAxMCAyMSAxMCAxNSA4IDE1IDggMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDE5IDE1IDE5IDE1IDIxIDIxIDIxIDIxIDE1IDE5IDE1IDE5IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9p'@; put 'bnRzPSIzMCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAzMCA0IDMwIDQgMzIgMTAgMzIgMTAgMjYgOCAyNiA4IDMwIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAzMCAxNSAzMCAxNSAzMiAyMSAzMiAyMSAyNiAxOSAyNiAxOSAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgICAg'@; put 'ICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggOCA0IDggNCAxMCAxMCAxMCAxMCA0'@; put 'IDggNCA4IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE5IDQgMTkgNCAyMSAxMCAyMSAxMCAxNSA4IDE1IDggMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxu'@; put 'ICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMw'@; put 'IDE5IDI2IDE5IDI2IDIxIDMyIDIxIDMyIDE1IDMwIDE1IDMwIDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAzMCA0IDMwIDQgMzIgMTAgMzIgMTAgMjYgOCAyNiA4'@; put 'IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAzMCAyNiAzMCAyNiAzMiAzMiAzMiAzMiAyNiAzMCAyNiAzMCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2Vk'@; put 'Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAg'@; put 'MTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE5IDQgMTkgNCAyMSAxMCAyMSAxMCAxNSA4IDE1IDggMTkiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDE5IDE1IDE5IDE1IDIxIDIxIDIxIDIxIDE1IDE5IDE1IDE5IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAxNSAzMCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAxNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxwb2x5Z29uIHBvaW50cz0iOCAzMCA0IDMwIDQgMzIgMTAgMzIgMTAgMjYgOCAyNiA4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAzMCAxNSAzMCAxNSAz'@; put 'MiAyMSAzMiAyMSAyNiAxOSAyNiAxOSAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksOEgxNXYyaDRMMTksOS44OSwyMSw2LjVWNEgxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAg'@; put 'ICAgICAgPHJlY3QgeD0iNCIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSI0'@; put 'IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTgiLz5cbiAgICAg'@; put 'ICAgICAgIDxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVy'@; put 'dGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0'@; put 'IHg9IjQiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAg'@; put 'ICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTctLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMGg0TDE5LDkuODksMjEsNi41VjRIMTVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC04LS1hbGVydGVkIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC05LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSI0IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgeD0iNCIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSI0IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTctLWJhZGdlZCIvPlxuICAgICAgICAg'@; put 'ICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJh'@; put 'ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTktLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxsLkNsclNoYXBlQnVpbGRpbmc9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAs'@; put 'MCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4'@; put 'PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAg'@; put 'ICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdl'@; put 'ZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjE4IiB3aWR0aD0iMiIgaGVp'@; put 'Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMTAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIy'@; put 'MyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1iYWRnZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxyZWN0IHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE3LS1iYWRn'@; put 'ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjIzIiB3aWR0aD0iMiIg'@; put 'aGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzFIMjN2MkgzM1YxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTIxLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAg'@; put 'ICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'My0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdp'@; put 'ZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxy'@; put 'ZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0'@; put 'ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMjMiIHdpZHRoPSIy'@; put 'IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVj'@; put 'dCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCwzMUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMlY4LjI0bDItMy40MUEyLjEyLDIu'@; put 'MTIsMCwwLDAsMTkuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIMjJWMTUuMzhhMy42OCwzLjY4LDAsMCwxLTItLjc0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE3LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdv'@; put 'biBwb2ludHM9IjMxIDE1LjQgMzEgMzEgMjMgMzEgMjMgMzMgMzMgMzMgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTgtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDEx'@; put 'QTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xOS0tYWxlcnRlZCBjbHItaS1h'@; put 'bGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjJWMzNIMzNWMTBBMiwyLDAsMCwwLDMxLDhaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm0wLTVIMjRWMTNoMlptNCwxMEgyOFYyM2gyWm0wLTVIMjhWMThoMlptMC01SDI4VjEzaDJaIiBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVptMC01'@; put 'SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVYxNC42NGEzLjY3LDMuNjcsMCwwLDEtMS00Ljc2bDEtMS42NVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVpt'@; put 'MC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h'@; put 'bGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNGwtLjIzLDBWMzNIMzNWMTUuNFpNMjYsMjVIMjRWMjNoMlptMC01SDI0VjE4aDJabTQsNUgyOFYyM2gyWm0wLTVIMjhWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt'@; put 'LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0g5VjMwaDZ2M2g1VjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE3Ljg4LDNaTTksMjVI'@; put 'N1YyM0g5Wm0wLTVIN1YxOEg5Wm0wLTVIN1YxM0g5Wm0wLTVIN1Y4SDlabTQsMTVIMTFWMjNoMlptMC01SDExVjE4aDJabTAtNUgxMVYxM2gyWm0wLTVIMTFWOGgyWm00LDE1SDE1VjIzaDJabTAtNUgxNVYxOGgyWm0wLTVIMTVWMTNoMlptMC01SDE1VjhoMloiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYxNUgyOFYxMy4yMkE3LjUsNy41LDAsMCwxLDIyLjc4LDhIMjJWMzNIMzNWMTIuODdBNy40Nyw3LjQ3LDAsMCwxLDMwLDEzLjVaTTI2LDI1SDI0VjIzaDJabTAtNUgy'@; put 'NFYxOGgyWm0wLTVIMjRWMTNoMlptNCwxMEgyOFYyM2gyWm0wLTVIMjhWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsOEgyM3YyaDhWMzFIMjN2MkgzM1YxMEEyLDIsMCwwLDAsMzEsOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMTkuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIMjJWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTkuODgsM1pNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEy'@; put 'IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC01Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9'@; put 'IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MTAiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYi'@; put 'IHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTE1Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTciLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE4Ii8+XG4gICAgICAgICAgICA8cmVjdCB4'@; put 'PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMjAiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZUNQVT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMuMDgsMjMuMDdoLTExdjEuNUgyMy44M2EuNzUuNzUsMCwwLDAsLjc1LS43NVYxMS4zM2gtMS41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4LjE1YS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSww'@; put 'LTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4x'@; put 'LDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yOCwyNy45YS4xLjEs'@; put 'MCwwLDEtLjEuMUg4LjFhLjEuMSwwLDAsMS0uMS0uMVY4LjFBLjEuMSwwLDAsMSw4LjEsOEgyNy45YS4xLjEsMCwwLDEsLjEuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1'@; put 'Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVYyMy4wN2gtMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZI'@; put 'MzBWMTMuNWE3LjQ5LDcuNDksMCwwLDEtMi0uMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCww'@; put 'LDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAs'@; put 'MS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1'@; put 'SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWMTUuNEgyOFYyNy45YS4xLjEsMCwwLDEtLjEuMUg4LjFhLjEuMSwwLDAsMS0uMS0uMVY4LjFBLjEuMSwwLDAsMSw4LjEsOGgxMmwxLjE1LTJIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEu'@; put 'NiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYz'@; put 'MGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEt'@; put 'LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4wNiwyNC41N0gyMy44M2EuNzUuNzUsMCwwLDAsLjc1LS43NVYxNS40aC0xLjV2Ny42N2gtMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjE1LjRIMjV2OC40MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTUuNGgtLjc3QTMu'@; put 'NjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2'@; put 'djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45'@; put 'VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEu'@; put 'MjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMu'@; put 'NTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxMy41YTcuNDYsNy40NiwwLDAsMS01LTEuOTJWMjMuODFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjExaDEuNDJBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRW'@; put 'My44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEu'@; put 'OC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMTgu'@; put 'MTVhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjguMUEyLjEsMi4xLDAsMCwwLDI3LjksNkgyNi4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4x'@; put 'QTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4y'@; put 'YS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRaTTI1LDIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgyWiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAnKSxsLkNsclNoYXBlTWVtb3J5PSgwLGEuY2xySWNvblNWRykoJzxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv'@; put 'PlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTMyLDdINEEyLDIsMCwwLDAsMiw5djRINFY5SDMydjRoMlY5QTIsMiwwLDAsMCwzMiw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwyN0gxOXYySDMyYTIsMiwwLDAsMCwyLTJW'@; put 'MTdIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTIiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMzIsMTdWMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIMTZ2OGg0'@; put 'VjE0LjY0QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNCIgeT0iMTUuNCIgd2lkdGg9IjQiIGhlaWdodD0iNC42IiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsOUgxOS41NmwxLjE1LTJINEEyLDIsMCwwLDAsMiw5djRINFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02'@; put 'LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTIiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEt'@; put 'LWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdh'@; put 'MiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdWMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJBNy40Niw3LjQ2LDAsMCwxLDI1LjUxLDEySDI0djhoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINEEyLDIsMCwwLDAsMiw5djRINFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAg'@; put 'ICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxM1Y5YTIsMiwwLDAsMC0yLTJINEEyLDIsMCwwLDAsMiw5'@; put 'djRINHY0SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NUgxOVYyOUgzMmEyLDIsMCwwLDAsMi0yVjE3SDMyVjEzWk0xMiwyMEg4VjEyaDRabTgsMEgxNlYxMmg0Wm04LDBIMjRWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0zMiwxN1YxNS4wN0gyOFYyMEgyNFYxNS4wN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMjAsMTQuMzFWMjBIMTZWMTJoMi42MUEzLjY4LDMuNjgsMCwwLDEsMTksOS41NUwyMC41Miw3SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUu'@; put 'NTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LjhsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4x'@; put 'LDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjA2LjhBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LjhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MzIsMTdWMTMuMjJhNy4zMyw3LjMzLDAsMCwxLTQsMFYyMEgyNFYxMmgxLjUxYTcuNDgsNy40OCwwLDAsMS0yLjk0LTVINEEyLDIsMCwwLDAsMiw5djRINHY0SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NUgxOVYyOUgzMmEyLDIsMCwwLDAsMi0yVjE3Wk0xMiwyMEg4VjEyaDRabTgs'@; put 'MEgxNlYxMmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQg'@; put 'Y2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZURhdGFDbHVzdGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41LDQuMDhDMjIuNzcsNC4wOCwxOSw1LjQsMTksNy45MVY5LjVhMTguNzUsMTguNzUsMCwwLDEsMiwuMlY3LjkxYzAtLjY1LDIuMDktMS44NCw1LjUt'@; put 'MS44NFMzMiw3LjI3LDMyLDcuOTFWMTguMjRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVY3LjkxQzM0LDUuNCwzMC4yMyw0LjA4LDI2LjUsNC4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNNCwxOC4yNFY3LjkxYzAtLjY1LDIuMDktMS44NCw1LjUtMS44NFMxNSw3LjI3LDE1LDcuOTFWOS43YTE4Ljc1LDE4Ljc1LDAsMCwxLDItLjJWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42'@; put 'Nyw3LjksMjJWMjBDNS40NiwxOS42OCw0LDE4Ljc4LDQsMTguMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQu'@; put 'MzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMsMTAuODUsMTgsMTAuODVabTYuNjUsNy42N2MtLjg1LDEtMy40MiwyLTYuNjUsMkExNC40OSwxNC40OSwwLDAsMSwxNCwyMHYxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEy'@; put 'Ljc2LDAsMCwwLDYuNjUtMS41NnYzLjEyYy0uODUsMS0zLjQyLDItNi42NSwyYTE0LjQ5LDE0LjQ5LDAsMCwxLTQtLjUzdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djIuMjljMCwuOTUtMi42NSwyLjM4LTYuNjUsMi4zOHMtNi42NS0x'@; put 'LjQzLTYuNjUtMi4zOFYxNS4yM2MwLS45NSwyLjY1LTIuMzgsNi42NS0yLjM4czYuNjUsMS40Myw2LjY1LDIuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQs'@; put 'NS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC42NSwxOC41MmMtLjg1LDEtMy40MiwyLTYuNjUsMkExNC40OSwxNC40OSwwLDAsMSwxNCwyMHYxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3'@; put 'LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYzLjEyYy0uODUsMS0zLjQyLDItNi42NSwyYTE0LjQ5LDE0LjQ5LDAsMCwxLTQtLjUzdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djIuMjljMCwuOTUtMi42NSwyLjM4LTYuNjUsMi4z'@; put 'OHMtNi42NS0xLjQzLTYuNjUtMi4zOFYxNS4yM2MwLS45NSwyLjY1LTIuMzgsNi42NS0yLjM4bC43NSwwYTMuNjksMy42OSwwLDAsMS0uMDgtMmwtLjY2LDBjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUt'@; put 'NC4zOFYxNS40aC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiw0LjhjLTEuNzUuNjMtMywxLjY4LTMsMy4xMlY5LjVsLjI1LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJ2Mi44NGMwLC41NC0xLjQ2LDEuNDQtMy45LDEuNzN2MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCww'@; put 'LDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNCwxOC4yNFY3LjkxYzAtLjY1LDIuMDktMS44NCw1LjUtMS44NFMxNSw3LjI3LDE1LDcu'@; put 'OTFWOS43YTE4Ljc1LDE4Ljc1LDAsMCwxLDItLjJWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJWMjBDNS40NiwxOS42OCw0LDE4Ljc4LDQsMTguMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIy'@; put 'LjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwx'@; put 'NC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEu'@; put 'NDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsNy45MWMwLS4zMy41NS0uOCwxLjU0LTEuMTgsMC0uMjQsMC0uNDgsMC0uNzNhNy41Miw3LjUyLDAsMCwxLC4x'@; put 'NC0xLjQxQzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMnY1YzAsLjU0LTEu'@; put 'NDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzV2LTUuOUE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMw'@; put 'IiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS40OGM1LjMuMjYsOSwyLjYs'@; put 'OSw1Ljc2djYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVY3LjkxQzM0LDUuNCwzMC4yMyw0LjA4LDI2LjUsNC4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNyw5LjQ4VjcuOTFjMC0yLjUyLTMu'@; put 'NzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyTDgsMjEuOTN2LTYuN0M4LDEyLjA4LDExLjcsOS43NCwxNyw5LjQ4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2'@; put 'LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2ExNi43NywxNi43NywwLDAsMS02LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45Mywx'@; put 'MC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNyw5LjQ4VjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyTDgs'@; put 'MjEuOTN2LTYuN0M4LDEyLjA4LDExLjcsOS43NCwxNyw5LjQ4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDEzLjU2YTMuNjgsMy42OCwwLDAsMS0uMzktMi43bC0uNjYsMGMtNC45'@; put 'MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3'@; put 'LjY1LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaIiBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS40OGwuMjcsMFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDI4djYuNTNsLjA1LjA2YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy'@; put 'LWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4w'@; put 'OCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1'@; put 'LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjIzLDguNjMtMy4yM1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2'@; put 'Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1i'@; put 'YWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xNC0xLjRDMjAuNTUsNS4xOSwxOSw2LjMsMTksNy45MVY5LjQ4YTE1LjMzLDE1LjMzLDAsMCwxLDUsMUE3LjQ2LDcuNDYsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy40OUE3LjQ3LDcuNDcsMCwwLDEsMjcuMzUsMTNhNCw0LDAsMCwxLC43LDIuMjN2Ni43bC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjEyLjMzQTcuNDYsNy40NiwwLDAs'@; put 'MSwzMCwxMy40OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjUuOTkiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFk'@; put 'Z2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVSZXNvdXJjZVBvb2w9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjY4LDE1LjRIMzEuNzNhMTQsMTQsMCwwLDEsLjIyLDEuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuMDksNC42MmwxLTEuNzZB'@; put 'MTYsMTYsMCwxLDAsMzQsMThhMTYsMTYsMCwwLDAtLjIzLTIuNjFaTTE4LDMyYTEzLjkxLDEzLjkxLDAsMCwxLTguMTYtMi42NUwxOC40MywxOUgzMS45NUExNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy'@; put 'dGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNNCwxOGExNCwxNCwwLDAsMSwyNy45NS0xSDE3LjQ5TDguMywyOC4wN0ExNCwx'@; put 'NCwwLDAsMSw0LDE4Wk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjIsMTMuNGExMy45'@; put 'MSwxMy45MSwwLDAsMSwuNzUsMy42SDE3LjQ5TDguMywyOC4wN0ExNCwxNCwwLDAsMSwyMi42MSw0LjhhNy40Myw3LjQzLDAsMCwxLC41OC0xLjkyLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQzLDcuNDMsMCwwLDEsMzEuMiwxMy40Wk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04'@; put 'LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTMzLjk1LDE3QTE2LDE2LDAsMSwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU3LDMwLjlBMTYsMTYsMCwwLDAsMzMuOTUsMTlIMTguNDNaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE1LjkxLDE1LjkxLDAsMCwwLS44NC00LjE4LDcuNDksNy40OSwwLDAsMS05LjkyLTkuOTRBMTYsMTYsMCwwLDAsNywyOS42TDE3LjQ5LDE3WiIg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2Ui'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU3LDMwLjlBMTYsMTYsMCwwLDAsMzMuOTUsMTlIMTguNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTUsMTdhMTYsMTYsMCww'@; put 'LDAtLjE4LTEuNjFIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsNC4wNi03QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44'@; put 'NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0'@; put 'ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZVNoaWVsZENoZWNrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS4yNSw3LjRhNDMuNzksNDMuNzksMCwwLDEtNi42Mi0yLjM1LDQ1LDQ1LDAsMCwxLTYuMDgtMy4yMUwxOCwxLjVsLS41NC4zNWE0NSw0NSwwLDAs'@; put 'MS02LjA4LDMuMjFBNDMuNzksNDMuNzksMCwwLDEsNC43NSw3LjRMNCw3LjU5djguMzRjMCwxMy4zOSwxMy41MywxOC40LDEzLjY2LDE4LjQ1bC4zNC4xMi4zNC0uMTJjLjE0LDAsMTMuNjYtNS4wNSwxMy42Ni0xOC40NVY3LjU5Wk0zMCwxNS45M2MwLDExLTEwLDE1LjYxLTEyLDE2LjQzLTIt'@; put 'LjgyLTEyLTUuNDQtMTItMTYuNDNWOS4xNGE0Ny41NCw0Ny41NCwwLDAsMCw2LjE4LTIuMjUsNDguMjMsNDguMjMsMCwwLDAsNS44Mi0zLDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODIsM0E0Ny41NCw0Ny41NCwwLDAsMCwzMCw5LjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44OCwxNi44N2ExLDEsMCwwLDAtMS40MSwxLjQxbDYsNkwyNi40LDEzLjc3QTEsMSwwLDAsMCwyNSwxMi4zM2wtOS40Nyw5LjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0zMS4yNSw3LjRhNDMuNzksNDMuNzksMCwwLDEtNi42Mi0yLjM1LDQ1LDQ1LDAsMCwxLTYuMDgtMy4yMUwxOCwxLjVsLS41NC4zNWE0NSw0NSwwLDAsMS02LjA4LDMuMjFBNDMuNzksNDMuNzksMCwwLDEsNC43NSw3LjRMNCw3LjU5djguMzRjMCwxMy4zOSwxMy41'@; put 'MywxOC40LDEzLjY2LDE4LjQ1bC4zNC4xMi4zNC0uMTJjLjE0LDAsMTMuNjYtNS4wNSwxMy42Ni0xOC40NVY3LjU5Wm0tNC41Nyw2LjY1TDE1LjUxLDI0LjksOS4xOSwxOC41N2ExLjQsMS40LDAsMCwxLDItMkwxNS41NCwyMSwyNC43MywxMmExLjQsMS40LDAsMSwxLDIsMloiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZVNoaWVsZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVh'@; put 'NDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0x'@; put 'MiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNHYuNTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItM2MxLC42'@; put 'NCwyLjIsMS4yNywzLjQzLDEuODlsMS0xLjc0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQu'@; put 'MTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCww'@; put 'LDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTMwLDEzLjV2Mi40M2MwLDExLTEwLDE1LjYxLTEyLDE2LjQzLTItLjgyLTEyLTUuNDQtMTItMTYuNDNWOS4xNGE0Ny41NCw0Ny41NCwwLDAsMCw2LjE4LTIuMjUsNDguMjMsNDguMjMsMCwwLDAsNS44Mi0zLDQ2LjE5LDQ2LjE5LDAsMCwwLDQuNTEsMi40MmMwLS4x'@; put 'LDAtLjE5LDAtLjI5YTcuNDksNy40OSwwLDAsMSwuMjMtMS44Myw0MS42MSw0MS42MSwwLDAsMS00LjE5LTIuMzNMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42'@; put 'NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAs'@; put 'MS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41'@; put 'OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIyLjQzLDRhNDEuMSw0MS4xLDAsMCwxLTMuODktMi4xOEwxOCwxLjVsLS41NC4zNWE0NSw0NSwwLDAsMS02'@; put 'LjA4LDMuMjFBNDMuNzksNDMuNzksMCwwLDEsNC43NSw3LjRMNCw3LjU5djguMzRjMCwxMy4zOSwxMy41MywxOC40LDEzLjY2LDE4LjQ1bC4zNC4xMi4zNC0uMTJjLjE0LDAsMTMuNjYtNS4wNSwxMy42Ni0xOC40NVYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTcuMjctOS4zMyw0MS42MSw0MS42MSwwLDAsMS00LjE5LTIuMzNMMTgsMS41bC0uNTQu'@; put 'MzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEz'@; put 'LjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1i'@; put 'YWRnZSIvPlxuICAgICAgICAnKSxsLkNsclNoYXBlU2hpZWxkWD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQz'@; put 'Ljc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEy'@; put 'LTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMjIuODEsMTAuNzksMTgsMTUuNjFsLTQuODEtNC44MWExLDEsMCwwLDAtMS40MSwxLjQxTDE2LjU5LDE3bC00LjgxLDQuODFhMSwxLDAsMSwwLDEuNDEsMS40MUwxOCwxOC40M2w0LjgxLDQuODFhMSwxLDAsMCwwLDEuNDEtMS40MUwxOS40MSwxN2w0Ljgx'@; put 'LTQuODFhMSwxLDAsMCwwLTEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0u'@; put 'NTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMjQuNTEsMjEuNTVhMS40LDEu'@; put 'NCwwLDAsMS0yLDJMMTgsMTlsLTQuNTMsNC41M2ExLjQzLDEuNDMsMCwwLDEtMiwwLDEuNCwxLjQsMCwwLDEsMC0yTDE2LDE3bC00LjUzLTQuNTNhMS40LDEuNCwwLDEsMSwyLTJMMTgsMTVsNC41My00LjUzYTEuNCwxLjQsMCwwLDEsMiwyTDIwLDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAnKSxsLkNsclNoYXBlSW1wb3J0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMTVoMlYxMy42MWg3LjYxVjZIMjhWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAs'@; put 'MjgsNFpNMTYsMTJIMTB2LS4zMkwxNS43LDZIMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjk0LDI2LjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTksMjJsLTUuNjgtNS42OGExLDEsMCwwLDAtMS40MSwx'@; put 'LjQxTDE1LjIsMjFIM2ExLDEsMCwxLDAsMCwySDE1LjIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEu'@; put 'NDEsMS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMEg4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCww'@; put 'LDItMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCwxMy42MWg3LjYxVjZoMy42OGwxLjE1LTJIMTQuODdMOCwxMC44NlYxNWgyWm0wLTEuOTJMMTUuNyw2SDE2djZI'@; put 'MTBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx'@; put 'MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40'@; put 'MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEsMS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEz'@; put 'LjIyVjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFo'@; put 'Ny42MVY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2SDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz'@; put 'MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDRIMTQuODdMOCwxMC44NlYyMUgxNS4ybC0zLjI1LTMuMjVhMSwxLDAsMCwxLDEuNDEtMS40MUwxOSwyMmwtNS42OCw1LjY4YTEsMSwwLDAsMS0xLjQxLTEuNDFMMTUuMjMsMjNIOHY3YTIsMiwwLDAsMCwyLDJIMjhhMiwy'@; put 'LDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyOCw0Wk0xNiwxMkgxMHYtLjMyTDE1LjY5LDZIMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMywyMWExLDEsMCwxLDAsMCwySDhWMjFaIiBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40NSw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJs'@; put 'LTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVy'@; put 'dGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0yMi41LDZhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiww'@; put 'LDAsMCwyLTJWMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNlpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZUV4cG9ydD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiwxMy42MWg3LjYxVjZIMjR2OC4zOGgyVjZhMiwyLDAsMCwwLTItMkgx'@; put 'MC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjMyLDE2LjM1YTEsMSwwLDAsMC0x'@; put 'LjQxLDEuNDFMMzAuMTYsMjFIMThhMSwxLDAsMCwwLDAsMkgzMC4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjMyLDE2LjM1YTEsMSww'@; put 'LDAsMC0xLjQxLDEuNDFMMzAuMTYsMjFIMThhMSwxLDAsMCwwLDAsMkgzMC4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTYsMTMuNjFoNy42MVY2aDcuNjhsMS4xNS0ySDEwLjg3TDQsMTAuODdWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0ySDZabTAtMS45MkwxMS42OSw2SDEydjZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVy'@; put 'dGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTYsMjFIMThhMSwxLDAsMCwwLDAsMkgzMC4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwx'@; put 'LjQxLDEuNDFMMzQsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwxMi4zNGE3LjUzLDcuNTMsMCwwLDEtMi0xLjg1djMuODloMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDEwLjg3TDQsMTAuODdWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0ySDZabTAtMS45MkwxMS42'@; put 'OSw2SDEydjZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00'@; put 'LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywyMmExLDEsMCwwLDEsMS0xaDhWNmEyLDIsMCwwLDAtMi0ySDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYt'@; put 'LjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMzIsMTYuMzVhMSwxLDAsMCwwLTEuNDEsMS40MUwzMS4xNiwyMUgyNnYyaDUuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM1'@; put 'LDIyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywyMmExLDEsMCwwLDEsMS0xaDhWMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40NSw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAs'@; put 'MCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYtLjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4x'@; put 'NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNs'@; put 'ci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMzIsMTYuMzVhMSwxLDAsMCwwLTEuNDEsMS40MUwzMS4xNiwyMUgyNnYyaDUuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM1LDIyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywyMmExLDEsMCwwLDEsMS0xaDhWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDIyLjc4LDRIMTAuODdMNCwxMC44NlYzMGEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJWMjNIMThBMSwxLDAsMCwxLDE3LDIyWk0x'@; put 'MiwxMkg2di0uMzJMMTEuNjksNkgxMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVVcGxvYWRDbG91ZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuMzEsMTNjMC0uMSwwLS4yMSwwLS4zMmExMC4yNiwxMC4yNiwwLDAsMC0xMC40NS0xMCwxMC40NywxMC40NywwLDAsMC05LjYs'@; put 'Ni4xQTkuNzQsOS43NCwwLDAsMCwxLjYsMTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42NSw3LjY1LDAsMCwxLDExLDEwLjc0bC42NywwLC4yMy0uNjNhOC40Myw4LjQzLDAsMCwxLDgtNS40LDguMjYsOC4yNiwwLDAsMSw4LjQ1LDgsNy43NSw3Ljc1LDAsMCwx'@; put 'LDAsLjhsLS4wOC43Mi42NS4zQTYsNiwwLDAsMSwyNi4zOCwyNkgyMXYyaDUuMzhhOCw4LDAsMCwwLDMuOTMtMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDIxLjg1QTEsMSwwLDAsMCwyMywyMC4x'@; put 'NGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIu'@; put 'MjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwyLjU3LDIuNTdBMSwxLDAsMCwwLDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjYsMTguMzhBNy43MSw3LjcxLDAsMCwxLDExLDEwLjc0bC42NywwLC4yMy0uNjNhOC40Myw4LjQzLDAsMCwxLDgtNS40LDguODEsOC44MSwwLDAsMSwyLC4yNWwxLTEuOGExMC44LDEwLjgsMCwwLDAtMy4wNy0uNDUs'@; put 'MTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5Ljc0LDkuNzQsMCwwLDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjYsNy42NiwwLDAsMSwzLjYsMTguMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'Mi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjksMTUuNEgzMC4yMUE2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4QTgsOCwwLDAsMCwzMi45LDE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs'@; put 'ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAuMTRsLTUtNS01LDVhMSwxLDAsMCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIu'@; put 'NTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC45MiwxMy40NGE3LjEzLDcuMTMsMCwwLDEtMi42My0uMTRjMCwuMDgsMCwuMTUs'@; put 'MCwuMjNsLS4wOC43Mi42NS4zQTYsNiwwLDAsMSwyNi4zOCwyNkgyMXYyaDUuMzhhOCw4LDAsMCwwLDQuNTQtMTQuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjYsMTguMzhB'@; put 'Ny43MSw3LjcxLDAsMCwxLDExLDEwLjc0bC42NywwLC4yMy0uNjNhOC40Myw4LjQzLDAsMCwxLDgtNS40LDguNzksOC43OSwwLDAsMSwyLjY4LjQyLDcuNDUsNy40NSwwLDAsMSwuNS0xLjk0LDEwLjc5LDEwLjc5LDAsMCwwLTMuMTgtLjQ4LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS43'@; put 'NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2ly'@; put 'Y2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxsLkNsclNoYXBlRG93bmxvYWRDbG91ZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAu'@; put 'MzEsMTNjMC0uMSwwLS4yMSwwLS4zMmExMC4yNiwxMC4yNiwwLDAsMC0xMC40NS0xMCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40Myww'@; put 'LDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAsMSwwLC44bC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDI2LjA3YTEsMSwwLDAsMC0uNzEuMjlMMTksMjguOTRWMTYuNjhhMSwxLDAsMSwwLTIsMFYyOC45NGwtMi41Ny0yLjU3QTEsMSwwLDAsMCwxMywyNy43OGw1LDUsNS01YTEs'@; put 'MSwwLDAsMC0uNzEtMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDct'@; put 'LjQ1LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS42NSw5LjY1LDAsMCwwLDEwLjg5LDI4YTMsMywwLDAsMSwwLTJBNy42NSw3LjY1LDAsMCwxLDExLDEwLjc0bC42NywwLC4yMy0uNjNBOC40Myw4LjQzLDAsMCwxLDE5Ljg3LDQuNjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjksMTUuNEgzMC4yMUE2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4QTgsOCwwLDAsMCwzMi45LDE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl'@; put 'cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwy'@; put 'Ni44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0y'@; put 'LDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS44Nyw0LjY5YTgu'@; put 'NzksOC43OSwwLDAsMSwyLjY4LjQyLDcuNDUsNy40NSwwLDAsMSwuNS0xLjk0LDEwLjc5LDEwLjc5LDAsMCwwLTMuMTgtLjQ4LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS42NSw5LjY1LDAsMCwwLDEwLjg5LDI4YTMsMywwLDAsMSwwLTJBNy42NSw3LjY1LDAsMCwxLDExLDEwLjc0bC42'@; put 'NywwLC4yMy0uNjNBOC40Myw4LjQzLDAsMCwxLDE5Ljg3LDQuNjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC45MiwxMy40NGE3LjEzLDcuMTMsMCwwLDEtMi42My0uMTRjMCwu'@; put 'MDgsMCwuMTUsMCwuMjNsLS4wOC43Mi42NS4zQTYsNiwwLDAsMSwyNi4zOCwyNkgyNS4wOWEzLDMsMCwwLDEsMCwyaDEuMjhhOCw4LDAsMCwwLDQuNTQtMTQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAg'@; put 'ICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVQbHVnaW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5'@; put 'LjgxLDE2SDI5VjguODNhMiwyLDAsMCwwLTItMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwy'@; put 'LDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZabTIuNDEsN0EzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3'@; put 'YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2g4VjE4aDIuODFBMy4xMywzLjEzLDAsMCwxLDMzLDIwLjY5LDMsMywwLDAsMSwzMi4yMiwyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjl2LS42SDI3VjE4aDIuODFBMy4xMywzLjEzLDAsMCwxLDMzLDIwLjY5LDMsMywwLDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwx'@; put 'NUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2guNjZMMjEsNi41OUE1LjEyLDUuMTIsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMs'@; put 'MCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwx'@; put 'LjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOVYxMy40M2E3LjQ1LDcuNDUsMCwwLDEtMi0uNTVWMThoMi44MUEzLjEzLDMuMTMsMCww'@; put 'LDEsMzMsMjAuNjksMywzLDAsMCwxLDMyLjIyLDIzLDMsMywwLDAsMSwzMCwyNEgyN3Y3LjgzSDRWMjVINWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCw0LjgxLDE1SDRWOC44M2g5VjdhMywzLDAsMCwxLDEtMi4yMkEzLDMsMCwwLDEsMTYuMzEsNCwzLjEzLDMuMTMsMCwwLDEs'@; put 'MTksNy4xOVY4LjgzaDQuMDZhNy40NCw3LjQ0LDAsMCwxLS41MS0ySDIxQTUuMTQsNS4xNCwwLDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIz'@; put 'SDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNp'@; put 'cmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOVY4LjgzYTIsMiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0'@; put 'LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAs'@; put 'MCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjgxLDE2SDI5di0uNkgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMSw2LjU5QTUuMTIsNS4xMiww'@; put 'LDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAs'@; put 'NS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42'@; put 'OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44'@; put 'MSwxNkgyOVYxMy40M2E3LjUsNy41LDAsMCwxLTYuNDUtNi41OUgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gy'@; put 'djguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBj'@; put 'eD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxsLkNsclNoYXBlRmxvcHB5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy4zNiw0SDZBMiwyLDAsMCww'@; put 'LDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjUsMzBIMTFWMjJIMjVabTUsMEgyN1YyMmEyLDIsMCwwLDAtMi0ySDExYTIsMiwwLDAsMC0yLDJ2OEg2VjZoNHY2YTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkgxMlY2SDI2LjUxTDMwLDkuNTlaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41aDBWMzBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTEuNjhsLS40'@; put 'My0uM0gxMlY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTI1LDMwSDExVjIySDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTMwLDE1LjRWMzBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwyaDcuMzVhMy41NCwzLjU0LDAsMCwxLS43Ny0ySDEyVjZoOS4yOWwxLjE1LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCww'@; put 'LDItMlYxNS40Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhB'@; put 'MS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3'@; put 'LjM2LDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY4Ljc4Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaTTI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjZBMiwyLDAsMCwx'@; put 'LDI0LDE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40Niw3LjQ2LDAsMCwxLTQtMS4xOEEyLDIsMCwwLDEsMjQsMTRIMTJhMiwyLDAsMCwxLTItMlY2aDJ2NkgyNS41NGE3LjQ1LDcuNDUsMCwwLDEt'@; put 'Mi43Ni04SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTI2LDMwSDEwVjIxLjVBMS41LDEuNSwwLDAsMSwxMS41LDIwaDEzQTEuNSwxLjUsMCwwLDEsMjYsMjEuNVoiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMTJhMiwyLDAsMCwxLTItMlY2aDJ2Nmg2LjU4QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5TDIyLjQ1LDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0y'@; put 'NiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUEx'@; put 'LjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+'@; put 'XG4gICAgICAgICcpLGwuQ2xyU2hhcGVDb21wdXRlcj0oMCxhLmNsckljb25TVkcpKCc8cG9seWdvbiBwb2ludHM9IjkuNiAyMi44OCA5LjYgMTAuNiAyNC40IDEwLjYgMjUuOTggOSA4IDkgOCAyMi44OCA5LjYgMjIuODgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDMwVjIzaDJWNi41QTEuNSwxLjUsMCwwLDAsMzAuNSw1SDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41'@; put 'LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2'@; put 'YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTkuNiwyMi44OFYxMC42aDkuMTRBMy42NCwzLjY0LDAsMCwxLDE5LDkuODlMMTkuNTYsOUg4VjIyLjg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDdIMjAuNzFsMS4x'@; put 'NS0ySDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMzAiIHk9IjE1LjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjcuNiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEEx'@; put 'LjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMSwyNXYzLjRBMi42LDIuNiwwLDAsMCwzLjYsMzFIMzIuMzRhMi42'@; put 'LDIuNiwwLDAsMCwyLjYtMi42VjI1Wm0zMiwzLjRhLjYuNiwwLDAsMS0uNi42SDMuNTZhLjYuNiwwLDAsMS0uNi0uNlYyNi41M2g5Ljk1YTEuNjQsMS42NCwwLDAsMCwxLjUsMWg3LjEzYTEuNjQsMS42NCwwLDAsMCwxLjUtMUgzM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjA3LTFINS41QTEuNSwxLjUsMCwwLDAsNCw2LjVWMjNINlY3SDIyLjU3QTcuNTIsNy41MiwwLDAsMSwyMi41LDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjIzaDJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQi'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xMyw5SDhWMjIuODhIOS42VjEwLjZIMjQuMDhBNy40OSw3LjQ5LDAsMCwxLDIzLjEzLDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODEsMjZjLS4zNS45LS45NCwxLjUtMS42MSwxLjVIMTMuNzRjLS42OCwwLTEu'@; put 'MjYtLjYtMS42MS0xLjVIMXYxLjc1QTIuNDUsMi40NSwwLDAsMCwzLjYsMzBIMzIuNEEyLjQ1LDIuNDUsMCwwLDAsMzUsMjcuNzVWMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNywxMEgyOVYyNGgzVjcuNTdBMS41'@; put 'NCwxLjU0LDAsMCwwLDMwLjUsNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0x'@; put 'LjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjki'@; put 'IHk9IjE1LjQiIHdpZHRoPSIzIiBoZWlnaHQ9IjguNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMTlMMTksOS44OSwyMS4yOSw2SDUuNUExLjU0LDEuNTQsMCwwLDAsNCw3LjU3'@; put 'VjI0SDdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDEx'@; put 'TDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODEsMjZjLS4zNS45LS45NCwxLjUtMS42MSwx'@; put 'LjVIMTMuNzRjLS42OCwwLTEuMjYtLjYtMS42MS0xLjVIMXYxLjc1QTIuNDUsMi40NSwwLDAsMCwzLjYsMzBIMzIuNEEyLjQ1LDIuNDUsMCwwLDAsMzUsMjcuNzVWMjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTcsMTBIMjMuNjZBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwx'@; put 'My4yMmE3LjE0LDcuMTQsMCwwLDEtMywuMlYyNGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt'@; put 'c29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZURpc3BsYXk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjUsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCww'@; put 'LDM0LDI1LjVWNC41QTEuNSwxLjUsMCwwLDAsMzIuNSwzWk0zMiwyNUg0VjVIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgOC43NiAyOC4xMyA4Ljc2IDI5Ljk0IDcuMTYgNi4xIDcuMTYg'@; put 'Ni4xIDIzIDcuNyAyMyA3LjcgOC43NiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMjEuMjRWMjkuNUE0LjIsNC4yLDAsMCwwLDIyLjE3'@; put 'LDMySDEzLjgzYTQuMiw0LjIsMCwwLDAsLjkzLTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMjEuMjRWMjkuNUE0LjIsNC4yLDAsMCwwLDIyLjE3LDMySDEzLjgzYTQuMiw0LjIsMCwwLDAsLjkzLTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYx'@; put 'LDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zMy42OCwxNS40SDMyVjI1SDRWNUgyMS44N0wyMywzSDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcuNyAyMyA3LjcgOC43NiAxOS43IDguNzYgMjAuNjIgNy4xNiA2LjEgNy4xNiA2LjEgMjMgNy43IDIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs'@; put 'ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMjEuMjRWMjkuNUE0LjIsNC4yLDAsMCwwLDIyLjE3LDMySDEzLjgzYTQuMiw0LjIs'@; put 'MCwwLDAsLjkzLTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi4xLDIzSDcuN1Y4Ljc2SDIzYTcuNDQsNy40NCwwLDAsMS0uNDMtMS42SDYuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTMyLDEzLjIyVjI1SDRWNUgyMi41N2E3LjQ1LDcuNDUsMCwwLDEsLjU1LTJIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjUsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWNC41QTEuNSwxLjUsMCwwLDAsMzIuNSwz'@; put 'Wk0zMSwyMS44M0g1VjdIMzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDku'@; put 'OTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxdjYuNDNINVY3SDIw'@; put 'LjcxTDIzLDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjE1LjM4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5Ljk0YTEsMSwwLDEsMCwwLDJIMjYuMDZhLjkyLjkyLDAs'@; put 'MCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzdjguNDFINVY3SDIyLjU3YTcuMjksNy4yOSwwLDAsMSwuNTUtNEgzLjVBMS41LDEuNSww'@; put 'LDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTIuMzRBNy40NCw3LjQ0LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj'@; put 'aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZVRlcm1pbmFsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw1SDRBMiwy'@; put 'LDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCw3SDMyVjkuMkg0Wk00LDI5VjEwLjhIMzJWMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3'@; put 'IiB5PSIyMyIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMTUuNjggMTMuNzkgMTguOCA3IDIxLjkxIDcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAx'@; put 'My40OCA3IDE1LjY4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSIyMyIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEt'@; put 'LWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'Mi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMyVjI5SDRWMTAuOEgxOC42OEEzLjY2LDMuNjYsMCwwLDEsMTksOS44OWwuNC0uNjlINFY3SDIwLjcxbDEuMTUtMkg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y'@; put 'VjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0'@; put 'Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2'@; put 'IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNyAyNC4xMSAxNi42IDE5LjcgMTYuNiAxNy44OSA3IDEzLjQ4IDcgMTUuNjggMTMuNzkgMTguOCA3IDIx'@; put 'LjkxIDcgMjQuMTEiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYyOUg0VjEwLjhIMjQuMjRhNy41MSw3LjUxLDAsMCwxLTEtMS42SDRWN0gyMi41N2E3LjUyLDcuNTIs'@; put 'MCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'My0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDVINEEyLDIs'@; put 'MCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk02LjgsMTUuODFWMTMuMTdsMTAsNC41OXYyLjA4bC0xMCw0LjU5VjIxLjc4bDYuNTEtM1pNMjMuNCwyNS40SDE3VjIzaDYuNFpNNCw5LjJWN0gzMlY5LjJaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt'@; put 'MlYxNS4zOFpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'Mi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS02Ljc4LTQuM0g0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCww'@; put 'LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk0xNi44LDE5LjgzbC0xMCw0LjU5VjIxLjc4bDYuNTEtMy02LjUxLTNWMTMuMTdsMTAsNC41OVptNi42LDUuNTdIMTdWMjNoNi40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZUNvZGU9KDAs'@; put 'YS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEzLjcxLDEyLjU5YTEsMSwwLDAsMC0xLjM5LS4yNkw1Ljc5LDE2Ljc4YTEsMSwwLDAsMCwwLDEuNjVsNi41Myw0LjQ1YTEsMSwwLDEsMCwxLjEzLTEuNjVMOC4xMywxNy42MSwxMy40NSwxNEExLDEsMCwwLDAsMTMuNzEsMTIuNTlaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC4yMSwxNi43OGwtNi41My00LjQ1QTEsMSwwLDEsMCwyMi41NSwxNGw1LjMyLDMuNjMtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCww'@; put 'LTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCw5LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwz'@; put 'LjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjcxLDEyLjU5YTEsMSwwLDAsMC0xLjM5LS4yNkw1Ljc5LDE2Ljc4YTEsMSwwLDAsMCwwLDEuNjVsNi41'@; put 'Myw0LjQ1YTEsMSwwLDEsMCwxLjEzLTEuNjVMOC4xMywxNy42MSwxMy40NSwxNEExLDEsMCwwLDAsMTMuNzEsMTIuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41Niwx'@; put 'MS42MiwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OEwxOS43MywxNC40YTMuNTksMy41OSwwLDAsMS0xLjE2LTIuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC4yMSwxNi43OGwtMi0xLjM4SDI0LjY0bDMuMjQsMi4yMS01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjcxLDEyLjU5YTEsMSwwLDAsMC0xLjM5LS4yNkw1Ljc5LDE2Ljc4YTEsMSwwLDAsMCwwLDEuNjVsNi41Myw0LjQ1YTEsMSww'@; put 'LDEsMCwxLjEzLTEuNjVMOC4xMywxNy42MSwxMy40NSwxNEExLDEsMCwwLDAsMTMuNzEsMTIuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40'@; put 'NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAsMC0xLjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTE5Ljk0LDkuODNhLjkuOSwwLDAsMC0xLjA5LjY2TDE1LjQxLDI0LjI5YS45LjksMCwwLDAsLjY2LDEuMDlsLjIyLDBhLjkuOSwwLDAsMCwuODctLjY4bDMuNDQtMTMuODFBLjkuOSwwLDAsMCwxOS45NCw5LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxsLkNsclNo'@; put 'YXBlQXBwbGljYXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iNSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0'@; put 'PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCw2SDMydjQuMkg0Wk00LDMwVjExLjhIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFptMCw2LjJINFY2SDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0'@; put 'IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0z'@; put 'IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTMiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVCYXR0ZXJ5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOC41OSwx'@; put 'MS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5LDEwLjU5YTEsMSwwLDAsMCwxLjc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LjEy'@; put 'LDRIMjNWMy41OEExLjU4LDEuNTgsMCwwLDAsMjEuNDIsMkgxNC41OEExLjU4LDEuNTgsMCwwLDAsMTMsMy41OFY0SDEwLjg4QTEuODgsMS44OCwwLDAsMCw5LDUuODhWMzIuMTJBMS44OCwxLjg4LDAsMCwwLDEwLjg4LDM0SDI1LjEyQTEuODgsMS44OCwwLDAsMCwyNywzMi4xMlY1Ljg4QTEu'@; put 'ODgsMS44OCwwLDAsMCwyNS4xMiw0Wk0yNSwzMkgxMVY2aDRWNGg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjks'@; put 'MTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0zLjUzLTcuMDgsNi4zOCwxLjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgs'@; put 'MCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMjUsMTUuNFYzMkgxMVY2aDRWNGg2VjZoLjI4bDEuNjQtMi44NUExLjU3LDEuNTcsMCwwLDAsMjEuNDIsMkgxNC41OEExLjU4LDEuNTgsMCwwLDAsMTMsMy41OFY0SDEwLjg4QTEuODgsMS44OCwwLDAsMCw5LDUuODhWMzIuMTJBMS44OCwxLjg4LDAsMCww'@; put 'LDEwLjg4LDM0SDI1LjEyQTEuODgsMS44OCwwLDAsMCwyNywzMi4xMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTksMTEuNzdhMSwxLDAsMCwwLTEuNzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMu'@; put 'NTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUsMTEuNThWMzJIMTFWNmg0VjRoNlY2SDIyLjVBNy40Nyw3LjQ3LDAsMCwxLDIzLDMuMzgsMS41Nywx'@; put 'LjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTIuODdBNy41LDcuNSwwLDAsMSwyNSwx'@; put 'MS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiw0VjIuNjJBLjYuNiwwLDAsMCwyMS40MiwySDE0LjU4YS42LjYsMCwwLDAtLjU4LjYyVjRIMTBBMS4wOSwxLjA5LDAsMCww'@; put 'LDksNS4wN3YyOEExLDEsMCwwLDAsMTAsMzRIMjZhMSwxLDAsMCwwLDEtLjk0di0yOEExLjA5LDEuMDksMCwwLDAsMjYsNFpNMjAuMjYsMjUuNDRhMS4yLDEuMiwwLDAsMS0yLjE1LDEuMDdMMTIuNjUsMTUuNTZsNiwxLTIuMjktNGExLjIsMS4yLDAsMSwxLDIuMDgtMS4ybDQuODMsOC4zN0wx'@; put 'Ni45LDE4LjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEu'@; put 'MjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY2LDMuNjYsMCwwLDEsMjAuNTUsMTVsMi43Niw0'@; put 'Ljc5TDE2LjksMTguN2wzLjM2LDYuNzNhMS4yLDEuMiwwLDAsMS0yLjE1LDEuMDdMMTIuNjUsMTUuNTZsNiwxLTIuMjktNGExLjIsMS4yLDAsMSwxLDIuMDgtMS4ybC4wOS4xNUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwyMi40NSw0SDIyVjIuNjJBLjYuNiwwLDAsMCwyMS40MiwySDE0LjU4'@; put 'YS42LjYsMCwwLDAtLjU4LjYyVjRIMTBBMS4wOSwxLjA5LDAsMCwwLDksNS4wN3YyOEExLDEsMCwwLDAsMTAsMzRIMjZhMSwxLDAsMCwwLDEtLjk0VjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg'@; put 'PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgyMlYyLjYyQS42LjYs'@; put 'MCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxMi44N0E3LjUsNy41LDAsMCwxLDIyLjUsNlpNMjAuMjYsMjUuNDRhMS4yLDEuMiwwLDAsMS0yLjE1LDEu'@; put 'MDdMMTIuNjUsMTUuNTZsNiwxLTIuMjktNGExLjIsMS4yLDAsMSwxLDIuMDgtMS4ybDQuODMsOC4zN0wxNi45LDE4LjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZU1vYmlsZT0oMCxhLmNs'@; put 'ckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEgxMUEyLDIsMCwwLDAsOSw2VjMwYTIsMiwwLDAsMCwyLDJIMjVhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyNSw0Wk0xMSw2SDI1VjI0SDExWm0wLDI0VjI2SDI1djRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSIyNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUsNEgxMUEyLDIsMCwwLDAsOSw2VjMwYTIsMiwwLDAsMCwy'@; put 'LDJIMjVhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyNSw0Wk0xOSwzMEgxN1YyOGgyWm0tOC00VjZIMjVWMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxsLkNsclNoYXBlVGFibGV0PSgwLGEuY2xySWNvblNWRykoJzxyZWN0IHg9'@; put 'IjE3IiB5PSIyOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMkg2QTIsMiwwLDAsMCw0LDRWMzJhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAs'@; put 'MCwwLDMwLDJabTAsMlYyNi4zOEg2VjRaTTYsMzJWMjhIMzB2NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0'@; put 'QTIsMiwwLDAsMCwzMCwyWk0xOSwzMkgxN1YzMGgyWk02LDI4VjRIMzBWMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxsLkNsclNoYXBlTmV0d29ya0dsb2JlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41OCwzMmgtMThh'@; put 'MSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuNzUsMmExNCwxNCwwLDAsMC0xNCwxNGMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwQTE0LDE0LDAsMSww'@; put 'LDE3Ljc1LDJabTAsMmExMiwxMiwwLDAsMSw4LjQ0LDMuNDhjMCwuMzMsMCwuNjYsMCwxQTE4LjUxLDE4LjUxLDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjky'@; put 'LDAsMCwxLDE3Ljc1LDRabS0zLDUuODdBMTcsMTcsMCwwLDEsMjUuOTIsMTBhMTYuOSwxNi45LDAsMCwxLTMuMTEsNywyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzdabS00LTMu'@; put 'NmMwLC4yMS4wNi40My4xLjY0LjA5LjQ0LjIxLjg3LjMzLDEuM2EyLjI4LDIuMjgsMCwwLDAtMS4xLDIuMjVBMTguMzIsMTguMzIsMCwwLDAsNS45LDE0LjIyLDEyLDEyLDAsMCwxLDEwLjc2LDYuMjdabTAsMTUuNzFBMi4zNCwyLjM0LDAsMCwwLDkuMiwyMy43NGwtLjY0LDBBMTEuOTQsMTEu'@; put 'OTQsMCwwLDEsNS44LDE2LjkybC4xMS0uMTlhMTYuOSwxNi45LDAsMCwxLDQuODEtNC44OSwyLjMxLDIuMzEsMCwwLDAsMi4yOC42MywxNy41MywxNy41MywwLDAsMCw1LjM1LDUuNjVjLjQxLjI3LjgzLjUyLDEuMjUuNzZBMi4zMiwyLjMyLDAsMCwwLDE5Ljc4LDIwYTE2Ljk0LDE2Ljk0LDAs'@; put 'MCwxLTYuMiwzLjExQTIuMzQsMi4zNCwwLDAsMCwxMC43NiwyMlptNyw2YTExLjkyLDExLjkyLDAsMCwxLTUuODEtMS41MWwuMjgtLjA2YTIuMzQsMi4zNCwwLDAsMCwxLjU3LTEuNzksMTguNDMsMTguNDMsMCwwLDAsNy0zLjUsMi4yOSwyLjI5LDAsMCwwLDMtLjYyLDE3LjQxLDE3LjQxLDAs'@; put 'MCwwLDQuMzIuNTZsLjUzLDBBMTIsMTIsMCwwLDEsMTcuNzUsMjhabTYuNTEtOC45YTIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC40LDE4LjQsMCwwLDAsMy4zOS03LjM3cS43NS4zNSwxLjQ4Ljc4YTEyLDEyLDAsMCwxLC40Miw4LjJBMTYsMTYsMCwwLDEsMjQuMjcsMTkuMTFaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFs'@; put 'ZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzMsMTUuNGgtMmMwLC4yLDAsLjQsMCwuNjFhMTIsMTIsMCwwLDEtLjUzLDMuNTIsMTYsMTYsMCwwLDEtNS0uNDEsMi4zMywyLjMzLDAsMCwwLS4zMy0xLjE5LDE4Ljg3LDE4Ljg3LDAsMCwwLDEuNjItMi41MkgyMy44M2ExNy4y'@; put 'OSwxNy4yOSwwLDAsMS0xLDEuNTQsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3QTE3LjA4LDE3LjA4LDAsMCwxLDE5LjU2LDlsLjg3LTEuNTFhMTguNTksMTguNTksMCwwLDAt'@; put 'Ni4zOSwxLDIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS44OCwxMS44OCwwLDAsMSwyMiw0Ljc5TDIzLDNBMTQsMTQsMCwwLDAsMy43NSwxNmMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwQTE0LDE0'@; put 'LDAsMCwwLDMxLjc2LDE2QzMxLjc2LDE1LjgsMzEuNzQsMTUuNiwzMS43MywxNS40Wm0tMjEtOS4xM2MwLC4yMS4wNi40My4xLjY0LjA5LjQ0LjIxLjg3LjMzLDEuM2EyLjI4LDIuMjgsMCwwLDAtMS4xLDIuMjVBMTguMzIsMTguMzIsMCwwLDAsNS45LDE0LjIyLDEyLDEyLDAsMCwxLDEwLjc2'@; put 'LDYuMjdabTAsMTUuNzFBMi4zNCwyLjM0LDAsMCwwLDkuMiwyMy43NGwtLjY0LDBBMTEuOTQsMTEuOTQsMCwwLDEsNS44LDE2LjkybC4xMS0uMTlhMTYuOSwxNi45LDAsMCwxLDQuODEtNC44OSwyLjMxLDIuMzEsMCwwLDAsMi4yOC42MywxNy41MywxNy41MywwLDAsMCw1LjM1LDUuNjVjLjQx'@; put 'LjI3LjgzLjUyLDEuMjUuNzZBMi4zMiwyLjMyLDAsMCwwLDE5Ljc4LDIwYTE2Ljk0LDE2Ljk0LDAsMCwxLTYuMiwzLjExQTIuMzQsMi4zNCwwLDAsMCwxMC43NiwyMlptNyw2YTExLjkyLDExLjkyLDAsMCwxLTUuODEtMS41MWwuMjgtLjA2YTIuMzQsMi4zNCwwLDAsMCwxLjU3LTEuNzksMTgu'@; put 'NDMsMTguNDMsMCwwLDAsNy0zLjUsMi4yOSwyLjI5LDAsMCwwLDMtLjYyLDE3LjQxLDE3LjQxLDAsMCwwLDQuMzIuNTZsLjUzLDBBMTIsMTIsMCwwLDEsMTcuNzUsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjUsMTMuMzVhNy41NCw3LjU0LDAsMCwxLTEuNS4xNWwtLjUxLDBhMTEuOTEsMTEuOTEsMCwwLDEtLjI1LDYsMTYsMTYsMCwwLDEtNS0uNDEsMi4zMywyLjMzLDAsMCwwLS4zMy0xLjE5LDE4LjU5LDE4LjU5LDAsMCwwLDIu'@; put 'NzgtNS4xOCw3LjQ5LDcuNDksMCwwLDEtMS4zMS0uODIsMTcsMTcsMCwwLDEtMi42MSw1LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43NywxNywxNywwLDAsMSw4LjUzLS42Miw3'@; put 'LjQzLDcuNDMsMCwwLDEtLjU2LTEuNTlBMTguNTYsMTguNTYsMCwwLDAsMTQsOC41M2EyLjMzLDIuMzMsMCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuOTIsMTEuOTIsMCwwLDEsMjIuNTcsNWE3LjQ1LDcuNDUsMCww'@; put 'LDEsLjUzLTJBMTQsMTQsMCwwLDAsMy43NSwxNmMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwYTE0LDE0LDAsMSwwLDI3LjY4LTRaTTEwLjc2LDYuMjdjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCww'@; put 'LDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcu'@; put 'NTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEy'@; put 'LjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2'@; put 'LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjcyLDkuODdhMi4yNSwyLjI1LDAsMCwxLS40NywxLjc3LDE2LDE2LDAsMCwwLDQuOTMsNS4y'@; put 'M2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE2LjksMTYuOSwwLDAsMCwzLjExLTdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuNzUs'@; put 'MmExNCwxNCwwLDAsMC0xNCwxNGMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwQTE0LDE0LDAsMSwwLDE3Ljc1LDJaTTI4LjEsMjEuMDlhMTcuNDEsMTcuNDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAs'@; put 'MS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYuOTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcu'@; put 'NTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEyLDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQz'@; put 'LS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwxLjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjUxLDE4LjUxLDAsMCwxLDEyLjExLS4wN2MwLS4zMiwwLS42NSwwLTFo'@; put 'MGExMiwxMiwwLDAsMSwyLjYyLDMuODVoMHEtLjczLS40My0xLjQ4LS43OGExOC40LDE4LjQsMCwwLDEtMy4zOSw3LjM3LDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMzEuNzMsMTUuNEgyNS41NmExOC44NywxOC44NywwLDAsMS0xLjYyLDIuNTIsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUzSDI4LjFhMTcuNDEsMTcuNDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAs'@; put 'MCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYuOTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAs'@; put 'MCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEyLDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1'@; put 'LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwxLjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4'@; put 'LjUzYTE4LjU5LDE4LjU5LDAsMCwxLDYuMzktMUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDAsMCwzMS43NiwxNkMzMS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuMjYsMTEuNjRhMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4LDIuMjgsMCwwLDEsMi41OC0uNTcsMTcuMjksMTcuMjksMCwwLDAsMS0xLjU0aC0xLjZBMy42'@; put 'OCwzLjY4LDAsMCwxLDE5LDkuODlMMTkuNTYsOWExNy4wOCwxNy4wOCwwLDAsMC00Ljg0Ljg4LDIuMjUsMi4yNSwwLDAsMS0uNDcsMS43N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0t'@; put 'YWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTUsNy40Niw3LjQ2LDAsMCwxLTMuMjgtLjc2LDE4LjU5LDE4LjU5LDAsMCwxLTIuNzgsNS4xOCwyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNI'@; put 'MjguMWExNy40MSwxNy40MSwwLDAsMS00LjMyLS41NiwyLjI5LDIuMjksMCwwLDEtMywuNjIsMTguNDMsMTguNDMsMCwwLDEtNywzLjUsMi4zNCwyLjM0LDAsMCwxLTEuNTcsMS43OWwtLjI5LjA2YTExLjkzLDExLjkzLDAsMCwxLTMuMzktMi44bC42NiwwYTIuMzMsMi4zMywwLDAsMSw0LjM3'@; put 'LS41OEExNi45NCwxNi45NCwwLDAsMCwxOS43OCwyMGEyLjMyLDIuMzIsMCwwLDEtLjE4LTEuMTdjLS40Mi0uMjQtLjg0LS40OS0xLjI1LS43NkExNy41MywxNy41MywwLDAsMSwxMywxMi40N2EyLjMxLDIuMzEsMCwwLDEtMi4yOC0uNjMsMjcuMzEsMjcuMzEsMCwwLDAtNSw0Ljc0YzAtLjIs'@; put 'MC0uMzksMC0uNTdhMTIsMTIsMCwwLDEsLjE0LTEuNzMsMTguNzUsMTguNzUsMCwwLDEsNC4yLTMuOCwyLjI4LDIuMjgsMCwwLDEsMS4xLTIuMjVjLS4xMi0uNDMtLjI0LS44Ni0uMzMtMS4zLDAtLjE0LDAtLjI5LS4xMS0uNjRhMTIsMTIsMCwwLDEsMS4zNy0uODdjLjEuNTkuMTQuOS4yMSwx'@; put 'LjIxcy4yLjg1LjMyLDEuMjdsLjI1LDBBMi4zMywyLjMzLDAsMCwxLDE0LDguNTNhMTguNTYsMTguNTYsMCwwLDEsOC42NS0uODcsNy40NSw3LjQ1LDAsMCwxLC40MS00LjU5QTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUuMjNjLjM0LjIzLjY5LjQzLDEsLjYzYTIuMjgs'@; put 'Mi4yOCwwLDAsMSwyLjU4LS41NywxNywxNywwLDAsMCwyLjYxLTUsNy41Miw3LjUyLDAsMCwxLTIuMTYtMi42N0ExNywxNywwLDAsMCwxNC43Miw5Ljg3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZU5ldHdvcmtTZXR0aW5ncz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTAuODUs'@; put 'MjcuNDRhMi4yOSwyLjI5LDAsMCwwLDEuNzQtMS42OGMuNTQtLjE0LDEuMDYtLjMyLDEuNTktLjUxdi0xLjJhMi43NywyLjc3LDAsMCwxLC4wNi0uNTEsMTcuNDQsMTcuNDQsMCwwLDEtMS44Mi42MiwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0y'@; put 'Ljg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNDcsNSwyLjc0LDIuNzQsMCwwLDEsLjIxLS4yNGwuOTUtLjkxYTE2LjksMTYuOSwwLDAsMS00LjM1LTQuNzksMi4yNywyLjI3LDAsMCwwLC4zNS0xLjJj'@; put 'MC0uMDcsMC0uMTQsMC0uMjJBMTcuNjksMTcuNjksMCwwLDEsMjUsMTFhMTcuNDksMTcuNDksMCwwLDEtMS4xNSwzLjM0bC4xOSwwaDEuNTZhMTksMTksMCwwLDAsLjkxLTIuNzJjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTQsMTEuOTQsMCwwLDEsMSw0LjA5bDAsMEEyLjc3LDIuNzcsMCww'@; put 'LDEsMzAsMTZhMi43MywyLjczLDAsMCwxLC42OC4xQTE0LDE0LDAsMSwwLDE2LjA4LDMxYTIuNzIsMi43MiwwLDAsMSwwLTJBMTEuOTMsMTEuOTMsMCwwLDEsMTAuODUsMjcuNDRaTTE2Ljc2LDVhMTIsMTIsMCwwLDEsOC42MSwzLjY2YzAsLjI1LDAsLjUxLS4wOC43NmExOS4yMSwxOS4yMSww'@; put 'LDAsMC0xMi4zNS4xMUEyLjI4LDIuMjgsMCwwLDAsMTEuNzQsOWExNywxNywwLDAsMS0uNjEtMi41M0ExMS45MiwxMS45MiwwLDAsMSwxNi43Niw1Wk05LjY2LDcuMzZhMTguNzIsMTguNzIsMCwwLDAsLjQ5LDEuOTIsMi4yOCwyLjI4LDAsMCwwLTEuMDcsMS45M3MwLC4xLDAsLjE1QTE5LjQ1'@; put 'LDE5LjQ1LDAsMCwwLDUsMTQuNzksMTIsMTIsMCwwLDEsOS42Niw3LjM2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUsMjEuMTlBMy44NCwzLjg0LDAsMSwwLDI4Ljg4LDI1LDMuODcsMy44NywwLDAsMCwy'@; put 'NSwyMS4xOVptMCw2LjA4QTIuMjQsMi4yNCwwLDEsMSwyNy4yOCwyNSwyLjI2LDIuMjYsMCwwLDEsMjUsMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNC4xNywyNC4xNGExLjE0LDEuMTQsMCwwLDAt'@; put 'LjctMS4xbC0xLjU2LS40NnEtLjExLS4zMi0uMjYtLjYzbC43Mi0xLjMzYTEuMTQsMS4xNCwwLDAsMC0uMjEtMS4zNGwtMS4zNC0xLjMyYTEuMTQsMS4xNCwwLDAsMC0xLjM0LS4ybC0xLjM0LjcxYTcuMjgsNy4yOCwwLDAsMC0uNjctLjI4TDI3LDE2LjcxYTEuMTQsMS4xNCwwLDAsMC0xLjA4'@; put 'LS43NkgyNGExLjE0LDEuMTQsMCwwLDAtMS4wOC44bC0uNDQsMS40M2E3LjMyLDcuMzIsMCwwLDAtLjY4LjI4bC0xLjMyLS43YTEuMTQsMS4xNCwwLDAsMC0xLjMzLjE5bC0xLjM3LDEuMzFhMS4xNCwxLjE0LDAsMCwwLS4yMSwxLjM1bC43LDEuMjhxLS4xNi4zMi0uMjguNjVMMTYuNTgsMjNh'@; put 'MS4xMywxLjEzLDAsMCwwLS44MSwxLjA5djEuODdBMS4xNCwxLjE0LDAsMCwwLDE2LjU5LDI3bDEuNDcuNDRxLjEyLjMyLjI4LjY0bC0uNzIsMS4zNWExLjE0LDEuMTQsMCwwLDAsLjIsMS4zNWwxLjM0LDEuMzJhMS4xNCwxLjE0LDAsMCwwLDEuMzQuMmwxLjM3LS43MnEuMzEuMTQuNjMuMjZs'@; put 'LjQ0LDEuNDdhMS4xNCwxLjE0LDAsMCwwLDEuMDkuOGgxLjlBMS4xNCwxLjE0LDAsMCwwLDI3LDMzLjMxbC40NC0xLjQ3Yy4yMS0uMDcuNDItLjE2LjYyLS4yNWwxLjM4LjczYTEuMTQsMS4xNCwwLDAsMCwxLjMzLS4ybDEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAsLjIxLTEuMzVsLS43My0x'@; put 'LjM0cS4xNC0uMy4yNS0uNmwxLjUtLjQ0QTEuMTMsMS4xMywwLDAsMCwzNC4xNywyNlptLTEuNiwxLjUtMiwuNTgtLjEyLjQyQTUuNTUsNS41NSwwLDAsMSwzMCwyNy43M2wtLjIxLjM4LDEsMS43OS0uODYuODQtMS44Mi0xLS4zNy4yYTUuNzgsNS43OCwwLDAsMS0xLjEyLjQ2bC0uNDIuMTIt'@; put 'LjU5LDJIMjQuMzhsLS41OS0xLjk1LS40Mi0uMTJBNS44Niw1Ljg2LDAsMCwxLDIyLjI0LDMwbC0uMzctLjItMS44MSwxLS44Ni0uODUsMS0xLjgyLS4yMi0uMzhhNS42LDUuNiwwLDAsMS0uNDktMS4xM2wtLjEzLS40MS0xLjk1LS41OFYyNC40MmwxLjk0LS41OC4xMi0uNDFhNS41Myw1LjUz'@; put 'LDAsMCwxLC40OS0xLjE0bC4yMi0uMzktMS0xLjczLjg3LS44NCwxLjc3Ljk0LjM4LS4yMWE1LjgsNS44LDAsMCwxLDEuMTctLjQ5bC40MS0uMTIuNTktMS45MWgxLjIzbC41OCwxLjkuNDEuMTJhNS43OSw1Ljc5LDAsMCwxLDEuMTYuNDhsLjM4LjIxLDEuOC0uOTUuODYuODUtMSwxLjc3LjIx'@; put 'LjM4YTUuNTMsNS41MywwLDAsMSwuNDcsMS4xM2wuMTIuNDIsMS45My41N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDIzLjYzLDMyLDIzYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3'@; put 'LjM3LDAsMCwwLS4wNy0uNDRMMzAuOSwxNy44NmEuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxYTcsNywwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFMMjAsMTcuOGEuMzcu'@; put 'MzcsMCwwLDAtLjQ0LjA3TDE4LDE5LjMxYS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyQTcsNywwLDAsMCwxOC4zNSwyM2wtMiwuNjFhLjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFBNyw3LDAsMCwwLDE5LDI4LjM3bC0xLDEuOWEuMzcuMzcsMCwwLDAs'@; put 'LjA3LjQ0bDEuNDUsMS40NWEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTJhNyw3LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0'@; put 'LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OEE3LDcsMCwwLDAsMzEuOTUsMjdsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjRBLjM3LjM3LDAsMCwwLDM0LDIzLjYzWm0tOC44Myw0LjcyQTMuMzMsMy4zMywwLDEsMSwyOC41MywyNSwzLjMzLDMuMzMsMCww'@; put 'LDEsMjUuMTksMjguMzRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjg1LDI3LjQ0YTIuMjksMi4yOSwwLDAsMCwxLjc0LTEuNjgsMTkuNzEsMTkuNzEsMCwwLDAsMS44OS0uNlYyMy45NWEyLDIsMCwwLDEsLjA5'@; put 'LS41NSwxNy40MiwxNy40MiwwLDAsMS0yLjE3Ljc4LDIuMjgsMi4yOCwwLDAsMC00LjI4LjYzbC0uNDUsMGgwYTExLjkzLDExLjkzLDAsMCwxLTIuODgtNy4yNywxNy43OSwxNy43OSwwLDAsMSw1LTQuNzIsMi4yMywyLjIzLDAsMCwwLDIuMjkuNTYsMTguNTIsMTguNTIsMCwwLDAsNC42NSw1'@; put 'LjA5LDEuOTMsMS45MywwLDAsMSwuMjMtLjMybC44OS0uODdhMTYuODksMTYuODksMCwwLDEtNC40OS00Ljg5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4yYzAtLjA3LDAtLjE0LDAtLjIyQTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNSwxLjk0LDEu'@; put 'OTQsMCwwLDEsLjMxLS4wNWgxLjQ1YTE5LjA2LDE5LjA2LDAsMCwwLC45LTIuN2MuNDMuMTkuODQuNDEsMS4yNi42NGExMS45MywxMS45MywwLDAsMSwxLDQuNjNsMS0uNTFhMiwyLDAsMCwxLC45Mi0uMjNoLjA4QTE0LDE0LDAsMSwwLDE2LjQ0LDMxYTEuOTQsMS45NCwwLDAsMSwuMTItMS40'@; put 'NmwuMjgtLjUzaC0uMDdBMTEuOTEsMTEuOTEsMCwwLDEsMTAuODUsMjcuNDRaTTE2Ljc2LDVhMTIsMTIsMCwwLDEsOC42MSwzLjY2YzAsLjI1LDAsLjUxLS4wOC43NmExOS4yMSwxOS4yMSwwLDAsMC0xMi4zNS4xMUEyLjI4LDIuMjgsMCwwLDAsMTEuNzQsOWExNywxNywwLDAsMS0uNjEtMi41'@; put 'M0ExMS45MiwxMS45MiwwLDAsMSwxNi43Niw1Wk05LjY2LDcuMzZhMTguNzIsMTguNzIsMCwwLDAsLjQ5LDEuOTIsMi4yOCwyLjI4LDAsMCwwLTEuMDcsMS45M3MwLC4xLDAsLjE1QTE5LjQ1LDE5LjQ1LDAsMCwwLDUsMTQuNzksMTIsMTIsMCwwLDEsOS42Niw3LjM2WiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZU5ldHdvcmtTd2l0Y2g9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDks'@; put 'MTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk0zMiwyN0g0VjE5LjA2TDcuMTMsOUgyOC44N0wzMiwxOS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNy4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMi4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0i'@; put 'MyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAg'@; put 'ICA8cmVjdCB4PSIyMi4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3LjEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNy4x'@; put 'MiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMi4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt'@; put 'LWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMi4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3LjEiIHk9'@; put 'IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMzLDE1LjRIMzAuODZMMzIsMTkuMDZWMjdINFYxOS4wNkw3LjEzLDlIMTkuNTZsMS4xNS0ySDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40'@; put 'MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNy4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3LjExIiB5PSIyMiIgd2lkdGg9IjEu'@; put 'OCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMi4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8'@; put 'cmVjdCB4PSI2LjIzIiB5PSIxOCIgd2lkdGg9IjIzLjY5IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3bC0xLjY1LTUuMzJhNy40OSw3LjQ5'@; put 'LDAsMCwxLTIsLjMzTDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5aDE2YTcuNDUsNy40NSwwLDAsMS0uNTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCww'@; put 'LDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTEsMTguNDcsMzAuNzgsOC40MUEyLDIsMCwwLDAsMjguODcsN0g3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJI'@; put 'MzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaTTguOTIsMjVINy4xMlYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBIMjIuMVYyMmgxLjhabTUsMEgyNy4xVjIyaDEuOFpNMzEsMTkuNEg1VjE4SDMxWiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIwLjcxLDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAs'@; put 'MiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZhMiwyLDAsMCwwLS4wOS0uNTlaTTguOTIsMjVINy4xMlYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBIMjIuMVYyMmgxLjhabTUsMEgyNy4xVjIyaDEuOFpNMzEsMTkuNEg1VjE4SDMxWiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEu'@; put 'MjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEzLjE1QTcuNDksNy40OSwwLDAsMSwyMi41Nyw3SDcuMTNBMiwyLDAs'@; put 'MCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFW'@; put 'MjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1i'@; put 'YWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVSb3V0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDE0Ljg3bDUuMTEtNS4xNGExLDEsMCwxLDAtMS40Mi0xLjQxTDE5LDExVjMuMzNhMSwxLDAsMCww'@; put 'LTIsMFYxMUwxNC4zMSw4LjMyYTEsMSwwLDEsMC0xLjQyLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWExLDEs'@; put 'MCwwLDAsMiwwVjI1bDIuNjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguODUsMTIuODlhMSwxLDAsMCwwLTEuNDEsMS40MkwzMC4xNSwxN0gyMi40NmExLDEs'@; put 'MCwxLDAsMCwyaDcuNjlsLTIuNzEsMi42OWExLDEsMCwwLDAsMS40MSwxLjQyTDM0LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNS44NSwxOWg3LjY5YTEsMSwwLDAsMCwwLTJINS44NWwyLjcxLTIuNjlh'@; put 'MSwxLDAsMSwwLTEuNDEtMS40MkwyLDE4bDUuMTQsNS4xMWExLDEsMCwxLDAsMS40MS0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQx'@; put 'TDE3LDI1djcuNjlhMSwxLDAsMCwwLDIsMFYyNWwyLjY5LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEs'@; put 'MCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTMxLjM4LDE1LjRIMjguNTRMMzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTE4LDE0Ljg3bDEuMTUtMS4xNi0uMS0uMTVBMy42OCwzLjY4LDAsMCwxLDE5LDEwVjMuMzNhMSwxLDAsMCwwLTIsMFYxMUwxNC4zMSw4LjMyYTEsMSwwLDEsMC0xLjQyLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEs'@; put 'OC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40MUwxNywyNXY3LjY5YTEs'@; put 'MSwwLDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguODUsMTIuODlhMSwxLDAsMCwwLTEuNDEsMS40Mkwz'@; put 'MC4xNSwxN0gyMi40NmExLDEsMCwxLDAsMCwyaDcuNjlsLTIuNzEsMi42OWExLDEsMCwwLDAsMS40MSwxLjQyTDM0LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTlo'@; put 'Ny42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAg'@; put 'IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxLjY3YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCww'@; put 'LDE4LDEuNjdaTTEzLjg2LDkuOTJhLjguOCwwLDAsMSwxLjEzLDBsMi4yMSwyLjE5VjUuOTNhLjguOCwwLDAsMSwxLjYsMHY2LjE4TDIxLDkuOTJhLjguOCwwLDEsMSwxLjEzLDEuMTRMMTgsMTUuMTVsLTQuMTQtNC4xQS44LjgsMCwwLDEsMTMuODYsOS45MlpNMTAuMzIsMjEuNzRhLjguOCww'@; put 'LDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEuNkg4LjExbDIuMiwyLjE1QS44LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40'@; put 'YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAsMSwyMi4xNCwyNS40MVptNC42Ny0zLjY2YS44LjgsMCwxLDEtMS4xMi0xLjE0bDIuMi0yLjE1SDIxLjYzYS44LjgsMCwwLDEsMC0xLjZoNi4yN2wt'@; put 'Mi4yLTIuMTRhLjguOCwwLDEsMSwxLjEyLTEuMTRMMzEsMTcuNjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjgyLDE1LjM5SDI4LjY4TDMxLDE3LjY3bC00LjE5LDQuMDlhLjguOCwwLDEsMS0xLjEyLTEuMTRs'@; put 'Mi4yLTIuMTVIMjEuNjNhLjguOCwwLDAsMSwwLTEuNmg2LjI3bC0xLjUtMS40N0gyMi4yM2EzLjY4LDMuNjgsMCwwLDEtMy0xLjUxTDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMSwxLDE1LDkuOTJsMi4yMSwyLjE5VjUuOTNhLjguOCwwLDAsMSwxLjYsMHY0LjQ5QTMuNjUsMy42NSwwLDAs'@; put 'MSwxOSw5Ljg5bDQuMjItNy4zMUExNiwxNiwwLDEsMCwzNCwxNy42NywxNiwxNiwwLDAsMCwzMy44MiwxNS4zOVptLTIzLjUsNi4zNWEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42'@; put 'SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2EuOC44LDAsMCwxLTEuMTMsMEwxOC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwx'@; put 'LDIyLjE0LDI1LjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAs'@; put 'MzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjIyLDEyLjc2QTcuNDksNy40'@; put 'OSwwLDAsMSwyMy4zMiwyLjZhMTYsMTYsMCwxLDAsOS45LDEwLjE3Wk0xMy44Niw5LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwx'@; put 'LDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44LjgsMCwwLDEtMS4xMywwTDUsMTcuNjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44'@; put 'LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjkuNGEuOC44LDAsMCwxLTEuNiwwVjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4x'@; put 'NUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjdsLTIuMi0yLjE0YS44LjgsMCwxLDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi'@; put 'IHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZVZNPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMSw1SDI1VjhoMlY1YTIsMiwwLDAsMC0yLTJIMTFBMiwy'@; put 'LDAsMCwwLDksNXY2Ljg1aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxN3YyaDh2NmgyVjEyaDNWMjZIMjJWMTdhMiwyLDAsMCwwLTItMkg2YTIsMiwwLDAsMC0yLDJWMzFhMiwyLDAsMCwwLDIs'@; put 'MkgyMGEyLDIsMCwwLDAsMi0yVjI4aDhhMiwyLDAsMCwwLDItMlYxMkEyLDIsMCwwLDAsMzAsMTBaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMTEsNUgyMS44N0wyMywzSDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNS4wMSIgeT0iMTUuNCIgd2lkdGg9IjEuOTkiIGhl'@; put 'aWdodD0iMi42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxNS40VjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBh'@; put 'MiwyLDAsMCwwLDItMlYyOGg4YTIsMiwwLDAsMCwyLTJWMTUuNFpNNiwzMVYxN0gyMHY5SDE2VjIwSDE0djZhMiwyLDAsMCwwLDIsMmg0djNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xNywxMHYyaDEuNTdBMy42NywzLjY3LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs'@; put 'MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTEsNUgyMi41N2E3LjQ1LDcuNDUsMCwwLDEsLjU1LTJIMTFBMiwyLDAsMCwwLDksNXY2Ljg1aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMu'@; put 'NWgwVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOGg4YTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJo'@; put 'NHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDEyaDh2NmgyVjEyLjg3QTcuNTIsNy41MiwwLDAsMSwyMy42NiwxMEgxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0xMy41OSwxMmEzLjYsMy42LDAsMCwxLDMuNi0zLjZIMjdWNWEyLDIsMCwwLDAtMi0ySDExQTIsMiwwLDAsMCw5LDV2OC40aDQuNTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEwSDE3LjE5'@; put 'YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCww'@; put 'LDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy41OSwxMmEzLjYsMy42LDAsMCwxLDMuNi0zLjZoMi43MkwyMywzSDExQTIsMiwwLDAsMCw5'@; put 'LDV2OC40aDQuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjE5LDEwYTIsMiwwLDAsMC0yLDJ2MS40SDE5QTMuNjgsMy42OCwwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMjEsMTUuNEEzLjU1LDMuNTUsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwy'@; put 'LDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy41OSwxMmEzLjYsMy42LDAsMCwxLDMuNi0zLjZIMjIuOUE3LjQ1LDcuNDUsMCwwLDEsMjMuMTMsM0gxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1i'@; put 'YWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjMuNjYsMTBIMTcuMTlhMiwyLDAsMCwwLTIsMnYxLjRIMjBBMy42LDMuNiwwLDAsMSwyMy42LDE3djhIMjJWMTdhMiwyLDAsMCwwLTItMkg2'@; put 'YTIsMiwwLDAsMC0yLDJWMzFhMiwyLDAsMCwwLDIsMkgyMGEyLDIsMCwwLDAsMi0yVjI5LjZIMTcuMTlhMy42LDMuNiwwLDAsMS0zLjYtMy42VjIwaDEuNnY2YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAg'@; put 'ICAgICcpLGwuQ2xyU2hhcGVWTVdBcHA9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSIyOCAyMiAzMCAyMiAzMCAzMCAyMiAzMCAyMiAyOCAyMCAyOCAyMCAzMiAzMiAzMiAzMiAyMCAyOCAyMCAyOCAyMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE0IDMwIDYgMzAgNiAyMiA4IDIyIDggMjAgNCAyMCA0IDMyIDE2IDMyIDE2IDI4IDE0IDI4IDE0IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29u'@; put 'IHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwIDQgMjAgOCAyMiA4IDIyIDYgMzAgNiAz'@; put 'MCAxNCAyOCAxNCAyOCAxNiAzMiAxNiAzMiA0IDIwIDQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9'@; put 'IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz5cbiAgICAgICAgICAgIDxw'@; put 'b2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHln'@; put 'b24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9'@; put 'IjggMTQgNiAxNCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVp'@; put 'Z2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTI1LDE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2bDAtLjFWMTdoNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMi40NSA0IDIwIDQgMjAgOCAy'@; put 'MC4xNCA4IDIyLjQ1IDQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjgiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjAuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2'@; put 'Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyOCAyMiAzMCAyMiAzMCAzMCAyMiAzMCAyMiAyOCAyMCAyOCAyMCAzMiAzMiAz'@; put 'MiAzMiAyMCAyOCAyMCAyOCAyMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAy'@; put 'OCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE0IDYgMTQgNiA2IDE0IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIg'@; put 'Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVp'@; put 'Z2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNmguNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjBWOGgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTRIMjh2Mmg0VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4YTcuNTMsNy41MywwLDAsMS0uNTgtLjU4SDE5djZoNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0i'@; put 'NSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVDZXJ0aWZpY2F0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhh'@; put 'MiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEwyMC40MSwyOEg0VjhIMzJsMCw4LjU2YTguNDEsOC40MSwwLDAsMSwyLDEuODFWOEEyLDIsMCwwLDAsMzIsNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0i'@; put 'NyIgeT0iMTIiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMTYiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjQ2LDE3LjIzYTYuMzYsNi4zNiww'@; put 'LDAsMC00LjQsMTFsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdhNi4zNiw2LjM2LDAsMCwwLTQuNC0xMVptMCwxMC42OGE0LjMxLDQuMzEsMCwxLDEsNC4zNy00LjMxQTQuMzUsNC4zNSwwLDAsMSwy'@; put 'Ny40NiwyNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMTYiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjQ2LDE3'@; put 'LjIzYTYuMzYsNi4zNiwwLDAsMC00LjQsMTFsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdhNi4zNiw2LjM2LDAsMCwwLTQuNC0xMVptMCwxMC42OGE0LjMxLDQuMzEsMCwxLDEsNC4zNy00LjMxQTQu'@; put 'MzUsNC4zNSwwLDAsMSwyNy40NiwyNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDEzLjU2QTMuNjYsMy42NiwwLDAsMSwxOC41NywxMkg3djEuNkgxOS4wN1oiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJ2MS4xNmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi0zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNCwyOFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEwyMC40MSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44'@; put 'NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMTIiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAg'@; put 'ICAgICA8cmVjdCB4PSI3IiB5PSIyMyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjQ2LDE3LjIzYTYuMzYsNi4zNiwwLDAsMC00LjQs'@; put 'MTFsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdhNi4zNiw2LjM2LDAsMCwwLTQuNC0xMVptMCwxMC42OGE0LjMxLDQuMzEsMCwxLDEsNC4zNy00LjMxQTQuMzUsNC4zNSwwLDAsMSwyNy40NiwyNy45'@; put 'MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMnYzLjM0YTguNDEsOC40MSwwLDAsMSwyLDEuODF2LTZBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMi43OGE3LjQ5LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAu'@; put 'NDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1i'@; put 'YWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMzBINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjE4LjM3YTguMzQsOC4zNCwwLDAsMC0xMy40OSw5Ljc5bC0uOTMsMS4xNFpNNywxMnYxLjZIMjRWMTJabTAsNS42'@; put 'SDE4VjE2SDdabTAsN0gxN1YyM0g3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2'@; put 'LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCwwLDAsMzMuODMsMjMuNTlabS0xMC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjgzLDIzLjU5YTYuMzcsNi4zNywwLDEsMC0xMC43Nyw0LjU5bC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3QTYuMzQsNi4zNCwwLDAs'@; put 'MCwzMy44MywyMy41OVptLTEwLjc0LDBhNC4zNyw0LjM3LDAsMSwxLDQuMzcsNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjMuMSwyMy41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMu'@; put 'NjgsMTUuNEgyOS4yNWE4LjM2LDguMzYsMCwwLDEsNC43NSwzdi0zWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS4wNywxMy42SDdWMTJIMTguNTdBMy42NywzLjY3LDAsMCwxLDE5'@; put 'LDkuODlMMjEuMjksNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQsMCwwLDEsMjUuNjYsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTkuMDcsMTMuNlpNMTcsMjQuNkg3VjIzSDE3Wm0xLTdIN1YxNkgxOFoiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4y'@; put 'OCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIu'@; put 'MzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjIuNSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0QTguMzQsOC4zNCww'@; put 'LDAsMSwzNCwxOC4zN3YtNkE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTcsMjQuNkg3VjIzSDE3Wm0xLTdIN1YxNkgxOFptNi00SDdWMTJIMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxsLkNsclNoYXBlQXJjaGl2ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMzJIN1YyMkg1VjMy'@; put 'YTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyMkgyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LDI0YTEsMSwwLDAsMCwxLDFoNmExLDEsMCwwLDAsMC0ySDE1QTEsMSwwLDAsMCwxNCwyNFoi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LDE4SDZWMTRoNGEzLDMsMCwwLDEtLjY4LTEuODdzMC0uMDksMC0uMTNINS41QTEuNSwxLjUsMCwwLDAsNCwxMy41VjIwSDE2WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNSwxMkgyNi42NnMwLC4wOSwwLC4xM0EzLDMsMCwwLDEsMjYsMTRoNHY0SDIybC0yLDJIMzJWMTMuNUExLjUsMS41LDAsMCwwLDMwLjUsMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxOS4xOGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDExLjQxbC00LDMuOTVWM2ExLDEsMCwxLDAtMiwwdjEyLjRsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDEsMjAuNiwxOCwyMmwtMS40MS0xLjRMMTYsMjBINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBIMjBaTTIyLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMCwxLDAtMmg2QTEsMSwwLDAs'@; put 'MSwyMiwyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNSwxMkgyNi42NnMwLC4wOSwwLC4xM2EzLDMsMCwwLDEtLjg4LDIuMTJMMjIsMThIMzJWMTMuNUExLjUsMS41LDAsMCwwLDMwLjUsMTJaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjIsMTQuMjVhMywzLDAsMCwxLS44OC0yLjEyczAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYxOEgxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTQiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVVbmFyY2hpdmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxOEg2VjE0aDlW'@; put 'MTJINS41QTEuNSwxLjUsMCwwLDAsNCwxMy41VjIwSDE1Ljc4QTMsMywwLDAsMSwxNSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2Mmg5djRIMjFhMywzLDAsMCwxLS43OCwySDMyVjEz'@; put 'LjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43'@; put 'OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjFhMywzLDAsMCwxLTIuMjItMUg1VjMyYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyMEgy'@; put 'MC4yMUEzLDMsMCwwLDEsMTgsMjFabTQsM2ExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCwwLDEsMjIsMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDEySDUuNUExLjUsMS41LDAsMCww'@; put 'LDQsMTMuNVYxOEgxNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNSwxMkgyMXY2SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIg'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMyw5LjU1LDE3LDUuNlYxOGExLDEsMCwxLDAsMiwwVjUuNmw0LDMuOTVhMSwxLDAsMSwwLDEuNDEtMS40MkwxOCwxLjc4LDExLjYxLDguMTNBMSwxLDAsMCwwLDEzLDkuNTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00'@; put 'IiAvPlxuICAgICAgICAnKSxsLkNsclNoYXBlQ29ubmVjdD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMTdIMjguMjNBNi4yNSw2LjI1LDAsMCwwLDIyLDEySDE0LjE1YTYuMjUsNi4yNSwwLDAsMC02LjIxLDVIMnYySDcuOTNhNi4yMiw2LjIyLDAsMCwwLDYuMjIsNUgyMmE2LjIy'@; put 'LDYuMjIsMCwwLDAsNi4yMi01SDM0Wk0xNy4wOCwyMkgxNC4xNWE0LjE3LDQuMTcsMCwwLDEtNC4zMS00LDQuMTcsNC4xNywwLDAsMSw0LjMxLTRoMi45NFpNMjIsMjJIMTlWMTRoM2E0LjE3LDQuMTcsMCwwLDEsNC4zMSw0QTQuMTcsNC4xNywwLDAsMSwyMiwyMloiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDEySDE0LjE1YTYuMjUsNi4yNSwwLDAsMC02LjIxLDVIMnYySDcuOTNhNi4yMiw2LjIyLDAsMCwwLDYuMjIsNUgxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMjMsMTdBNi4yNSw2LjI1LDAsMCwwLDIyLDEySDE5VjI0aDNhNi4yMiw2LjIyLDAsMCwwLDYuMjItNUgzNFYxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVEaXNj'@; put 'b25uZWN0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMi4xNyw2QTYuMjEsNi4yMSwwLDAsMCw2LDExSDIuMTN2Mkg2YTYuMjMsNi4yMywwLDAsMCw2LjIxLDVIMTdWNlpNMTUuMSwxNkgxMi4xN2E0LjIsNC4yLDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00SDE1LjFa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MiwyM0gzMC4xNGE2LjI1LDYuMjUsMCwwLDAtNi4yMS01SDE5djJIMTRhMSwxLDAsMSwwLDAsMmg1djRIMTRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwx'@; put 'aDV2Mmg0Ljk0YTYuMjMsNi4yMywwLDAsMCw2LjIyLTVoMy43NlptLTEwLDVIMjFWMjBoMi45NGE0LjE3LDQuMTcsMCwwLDEsNC4zMSw0QTQuMTcsNC4xNywwLDAsMSwyMy45NCwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTEyLDZhNi4yMSw2LjIxLDAsMCwwLTYuMjEsNUgydjJINS44M0E2LjIzLDYuMjMsMCwwLDAsMTIsMThIMTdWNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzksMjNIMzAuMTRhNi4yNSw2LjI1'@; put 'LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djRIMTRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDV2Mmg0Ljk0YTYuMjMsNi4yMywwLDAsMCw2LjIyLTVoMy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+'@; put 'XG4gICAgICAgICcpLGwuQ2xyU2hhcGVMaW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNy42LDI0LjMybC0yLjQ2LDIuNDRhNCw0LDAsMCwxLTUuNjIsMCwzLjkyLDMuOTIsMCwwLDEsMC01LjU1bDQuNjktNC42NWE0LDQsMCwwLDEsNS42MiwwLDMuODYsMy44NiwwLDAsMSwxLDEu'@; put 'NzFBMiwyLDAsMCwwLDIxLjEsMThsMS4yOS0xLjI4YTUuODksNS44OSwwLDAsMC0xLjE1LTEuNjIsNiw2LDAsMCwwLTguNDQsMEw4LjEsMTkuNzlhNS45MSw1LjkxLDAsMCwwLDAsOC4zOSw2LDYsMCwwLDAsOC40NCwwbDMuNjUtMy42MmMtLjE3LDAtLjMzLDAtLjUsMEE4LDgsMCwwLDEsMTcu'@; put 'NiwyNC4zMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjYxLDcuODJhNiw2LDAsMCwwLTguNDQsMGwtMy42NSwzLjYyYy4xNywwLC4zMywwLC40OSwwaDBhOCw4LDAsMCwxLDIuMS4yOGwyLjQ2LTIuNDRh'@; put 'NCw0LDAsMCwxLDUuNjIsMCwzLjkyLDMuOTIsMCwwLDEsMCw1LjU1bC00LjY5LDQuNjVhNCw0LDAsMCwxLTUuNjIsMCwzLjg2LDMuODYsMCwwLDEtMS0xLjcxLDIsMiwwLDAsMC0uMjguMjNsLTEuMjksMS4yOGE1Ljg5LDUuODksMCwwLDAsMS4xNSwxLjYyLDYsNiwwLDAsMCw4LjQ0LDBsNC42'@; put 'OS00LjY1YTUuOTIsNS45MiwwLDAsMCwwLTguMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZVVubGluaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSw1LDMuNTksNi40MWw5LDlMOC4xLDE5Ljc5YTUu'@; put 'OTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMEwyMSwyMy43OGw4LjYzLDguNjNMMzEsMzFaTTE1LjEzLDI2Ljc2YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NUwxNCwxNi43OWw1LjU4LDUuNThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS41Myw5LjIyYTQsNCwwLDAsMSw1LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC43OSw0Ljc2TDIzLjc4LDIxbDQuNzktNC43NmE1LjkyLDUuOTIsMCwwLDAsMC04LjM5LDYsNiwwLDAsMC04LjQ0LDBsLTQu'@; put 'NzYsNC43NEwxNi43OCwxNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAnKSxsLkNsclNoYXBlQ2xvdWROZXR3b3JrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC43MSwxNS4xOHYtMUExMS4yOCwxMS4yOCwwLDAsMCwxOS41'@; put 'NiwyLjgzaC0uMTFhMTEuMjgsMTEuMjgsMCwwLDAtMTEsOC45Myw3LjQ3LDcuNDcsMCwwLDAsMCwxNC45NEgyOS4xM2E1Ljg2LDUuODYsMCwwLDAsMS41OC0xMS41MlpNMjkuMTMsMjQuN0g4LjQ2YTUuNDcsNS40NywwLDEsMSwwLTEwLjk0aDEuNjlsLjExLS44N2E5LjI3LDkuMjcsMCwwLDEs'@; put 'MTguNDUsMS4zdjEuMjhjMCwuMDksMCwuMTgsMCwuMjdsLS4wNywxLjE1Ljk0LjExYTMuODYsMy44NiwwLDAsMS0uNDMsNy43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjU4LDMxLjE4SDE4Ljg1di0y'@; put 'LjRoLTJ2Mi40SDYuMDhhMSwxLDAsMCwwLDAsMmgyMy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZUNsb3VkU2NhbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYuMzIsMTEu'@; put 'MTFINy44NEw4LDEwLjI0QTcuMTksNy4xOSwwLDAsMSwxNS4wNyw0aC4wN2E3LjE1LDcuMTUsMCwwLDEsNC43MSwxLjgzLDExLjEsMTEuMSwwLDAsMSwzLjA5LjY0QTkuMTgsOS4xOCwwLDAsMCwxNS4xNiwyaC0uMDlBOS4yLDkuMiwwLDAsMCw2LjEzLDkuMTEsNi4xNSw2LjE1LDAsMCwwLDIu'@; put 'MzMsMTkuOTUsOC4wOSw4LjA5LDAsMCwxLDMsMTcuNzFhNC4xMiw0LjEyLDAsMCwxLS44MS0yLjQ0QTQuMTYsNC4xNiwwLDAsMSw2LjMyLDExLjExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuNCwxNi45'@; put 'MWgxLjUyTDEyLDE2YTcuMTksNy4xOSwwLDAsMSw3LjEyLTYuMjVoLjA3YTcuMTcsNy4xNywwLDAsMSw1LjcsMi45MiwxMS4wNSwxMS4wNSwwLDAsMSwyLjcyLjc3LDkuMiw5LjIsMCwwLDAtOC40LTUuNjloLS4wOWE5LjIsOS4yLDAsMCwwLTguOTQsNy4xMiw2LjE1LDYuMTUsMCwwLDAtMy42'@; put 'NCwxMSw4LjExLDguMTEsMCwwLDEsLjc5LTIsNC4xNCw0LjE0LDAsMCwxLDMtN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjQyLDI0LjQ3di0uNjJhOS4xOCw5LjE4LDAsMCwwLTE4LjEzLTIuMTZBNi4x'@; put 'Niw2LjE2LDAsMCwwLDE0LjQ4LDM0SDMxYTQuODgsNC44OCwwLDAsMCwxLjQ2LTkuNTNaTTMxLDMySDE0LjQ4YTQuMTYsNC4xNiwwLDEsMSwwLTguMzJIMTZsLjExLS44N2E3LjE5LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjIxLDcuMjEsMCwwLDEsNy4xMiw3LjI1djFjMCwuMDcsMCwu'@; put 'MTMsMCwuMmwtLjA3LDEuMTEuOTQuMTFBMi44OCwyLjg4LDAsMCwxLDMxLDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVDbG91ZFRyYWZmaWM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjU0LDIw'@; put 'LjgyYS44OC44OCwwLDAsMC0uODgtLjg4SDIwLjc1bDEuMS0xLjFBLjg4Ljg4LDAsMCwwLDIwLjYsMTcuNmwtMy4yMSwzLjIyTDIwLjYsMjRhLjg4Ljg4LDAsMSwwLDEuMjUtMS4yNEwyMC43NiwyMS43aDQuOUEuODguODgsMCwwLDAsMjYuNTQsMjAuODJaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4yNywyMS43YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMzIuMjEsMjBoLS4wNmEuODUuODUsMCwwLDAtLjg1Ljg4LjkxLjkxLDAsMCwwLC45MS44OC44OC44OCwwLDEsMCwwLTEuNzZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41OSwxMWEu'@; put 'ODguODgsMCwwLDAtMS4yNSwxLjI0bDEuMSwxLjFIMjcuNTNhLjg4Ljg4LDAsMSwwLDAsMS43Nmg0LjlsLTEuMDksMS4wOWEuODguODgsMCwwLDAsMS4yNSwxLjI0bDMuMjEtMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTI0LjUsMTUuMDdhLjg4Ljg4LDAsMSwwLDAtMS43NmgtLjU4YS44OC44OCwwLDEsMCwwLDEuNzZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS45LDE0LjI3YS44NS44NSwwLDAsMC0uODUt'@; put 'Ljg4SDIxYS44OC44OCwwLDEsMCwwLDEuNzZBLjkxLjkxLDAsMCwwLDIxLjksMTQuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC4zNiwyMy42NWMwLC4xMywwLC4yNiwwLC4zOWEzLjc3LDMuNzcsMCww'@; put 'LDEtMy42MiwzLjg5SDcuMjhhNS4zMiw1LjMyLDAsMCwxLTUuMTMtNS40OEE1LjMyLDUuMzIsMCwwLDEsNy4yOCwxN0g4LjkxTDksMTYuMTJhOC45Miw4LjkyLDAsMCwxLDguNjItOGguMDhhOC40OSw4LjQ5LDAsMCwxLDYuNTYsMy4yOWgyLjM3YTEwLjU1LDEwLjU1LDAsMCwwLTguOTEtNS4y'@; put 'NWgtLjExQTEwLjgyLDEwLjgyLDAsMCwwLDcuMjIsMTVhNy4yOCw3LjI4LDAsMCwwLTcsNy40Myw3LjI3LDcuMjcsMCwwLDAsNy4wOCw3LjQzSDI2Ljc3QTUuNzIsNS43MiwwLDAsMCwzMi4zNSwyNGEzLjc3LDMuNzcsMCwwLDAsMC0uMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZURlcGxveT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDJIMjIuMWExLDEsMCwwLDAsMCwyaDguNTNsLTguODIsOWExLDEsMCwxLDAs'@; put 'MS40MywxLjRMMzIsNS40NlYxMy45YTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsMzMsMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTEuNTQsMTAuNzNsLTksNS4xN2ExLDEsMCwwLDAtLjUuODd2MTFhMSwx'@; put 'LDAsMCwwLC41Ljg3bDksNS4xNWExLDEsMCwwLDAsMSwwbDktNS4xNWExLDEsMCwwLDAsLjUtLjg3di0xMWExLDEsMCwwLDAtLjUtLjg3bC05LTUuMTdBMSwxLDAsMCwwLDExLjU0LDEwLjczWk0xMSwzMS4wOGwtNy00VjE4LjQ0bDcsNFpNMTIsMjEsNC44MSwxNi44NywxMiwxMi43OGw3LjIx'@; put 'LDQuMTJabTgsNi4wOS03LDRWMjIuNDRsNy00WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLDJIMjIuMWExLDEsMCwwLDAsMCwyaDguNTNsLTguODIsOWExLDEsMCwxLDAsMS40MywxLjRMMzIsNS40NlYxMy45YTEs'@; put 'MSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsMzMsMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMi40NiwxMC43M2ExLDEsMCwwLDAtMSwwbC04LjY4LDVMMTIsMjFsOS4xOS01LjI2WiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTIsMjcuNzNhMSwxLDAsMCwwLC41Ljg3TDExLDMzLjQ2di0xMUwyLDE3LjI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTEzLDMzLjQ2'@; put 'bDguNS00Ljg2YTEsMSwwLDAsMCwuNS0uODdWMTcuMjlsLTksNS4xNVoiLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZUhlbGl4PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNOC44OCwxMy4wN2EuOS45LDAsMCwx'@; put 'LS40OS0xLjY2bDguOTMtNS43M2EuOS45LDAsMSwxLDEsMS41Mkw5LjM3LDEyLjkyQS45LjksMCwwLDEsOC44OCwxMy4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTMuMjUsMTUuMTFhLjkuOSwwLDAsMS0u'@; put 'NDktMS42NkwxOCwxMC4wOGEuOS45LDAsMSwxLDEsMS41MkwxMy43NCwxNUEuOS45LDAsMCwxLDEzLjI1LDE1LjExWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOS43MiwzMC4yM2EuOS45LDAsMCwxLS40OS0x'@; put 'LjY2bDguOTMtNS43M2EuOS45LDAsMCwxLDEsMS41MkwyMC4yLDMwLjA5QS45LjksMCwwLDEsMTkuNzIsMzAuMjNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LjkyLDI1Ljk0YS45LjksMCwwLDEtLjQ5LTEu'@; put 'NjZsNS4yNS0zLjM3YS45LjksMCwxLDEsMSwxLjUxTDE5LjQsMjUuOEEuODkuODksMCwwLDEsMTguOTIsMjUuOTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTIxLjU2LDUuNjlhMy41OSwzLjU5LDAsMCwxLC4x'@; put 'NSwzLjUzTDE4LjgzLDE1aDIuMjVsMi40My00Ljg3YTUuNjEsNS42MSwwLDAsMC01LTguMTRIMTMuMjZsLTEsMmg2LjIyQTMuNjEsMy42MSwwLDAsMSwyMS41Niw1LjY5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9'@; put 'Ik0zMi45MSwyMC43OEE1LjUzLDUuNTMsMCwwLDAsMjcuNjYsMTdIOS4zMWEzLjU0LDMuNTQsMCwwLDEtMy41Ni0zLjY3LDMuNjEsMy42MSwwLDAsMSwuNDItMS41NGw0LjI2LTguNDlhMSwxLDAsMSwwLTEuNzktLjlMNC40LDEwLjg0QTUuNjcsNS42NywwLDAsMCw0LDE1LjIyLDUuNTMsNS41'@; put 'MywwLDAsMCw5LjI4LDE5aDcuNmwtMy40NCw2Ljg3YTUuNjQsNS42NCwwLDAsMCwxLjUsNi45MkE1LjM4LDUuMzgsMCwwLDAsMTguNDEsMzRoNS4yNWwxLTJIMTguNDNhMy41OCwzLjU4LDAsMCwxLTMuMjItNS4yMUwxOS4xMSwxOWg4LjU0YTMuNDIsMy40MiwwLDAsMSwyLjE1LjcxLDMuNTcs'@; put 'My41NywwLDAsMSwxLDQuNDNsLTQuMTIsOC4yMmExLDEsMCwxLDAsMS43OS45bDQuMDYtOC4xQTUuNjcsNS42NywwLDAsMCwzMi45MSwyMC43OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4xNiwxOS42M0E1LjU1'@; put 'LDUuNTUsMCwwLDAsMjcuNDIsMTdIMTAuMDZhNC4zNiw0LjM2LDAsMCwxLTMuNjctMiw0LjA3LDQuMDcsMCwwLDEtLjE5LTQuMTNsMy42Mi03LDEuNDIsMS42My0yLjc0LDUuMyw4Ljg0LTUuNjZhLjkxLjkxLDAsMCwxLDEsMS41M0w3Ljg0LDEzLjM4YTIuMTMsMi4xMywwLDAsMCwuMjQuNTIs'@; put 'Mi4yOCwyLjI4LDAsMCwwLDEuNjUsMUwxOC4xMSw5LjVhLjkxLjkxLDAsMCwxLDEsMS41MkwxMywxNC45NEgyMC44bDIuNDEtNC44MmE1LjYsNS42LDAsMCwwLTUtOC4xMkg5YTEsMSwwLDAsMC0uOS41NkwzLjg4LDEwLjg5YTUuNiw1LjYsMCwwLDAsNSw4LjEyaDcuNjVsLTMuNDMsNi44N2E1'@; put 'LjYsNS42LDAsMCwwLDUsOC4xMmg5LjI4YTEsMSwwLDAsMCwuOTMtLjY1bDQuMTQtOC4yNEE1LjU4LDUuNTgsMCwwLDAsMzIuMTYsMTkuNjNaTTE3Ljc1LDI1LjU3QS45MS45MSwwLDAsMSwxOCwyNC4zMWw2LTMuODhBLjkxLjkxLDAsMSwxLDI1LDIybC02LDMuODhhLjkxLjkxLDAsMCwxLTEu'@; put 'MjYtLjI3Wk0yOSwyNC4zNGwtOSw1Ljc4YS45MS45MSwwLDEsMS0xLTEuNTNsOS01Ljc4YS45MS45MSwwLDEsMSwxLDEuNTNaIi8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVGbGFzaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDMsMjcuMjgsMjMsMTQuODRWNGgxYTEsMSwwLDAs'@; put 'MCwwLTJIMTJhMSwxLDAsMCwwLDAsMmgxVjE0Ljg0TDQuNTEsMjcuMzZBNC4yOSw0LjI5LDAsMCwwLDUsMzIuOCw0LjM4LDQuMzgsMCwwLDAsOC4xNSwzNEgyOGE0LjI0LDQuMjQsMCwwLDAsMy40Mi02LjcyWk0yOS44NSwzMWEyLjYyLDIuNjIsMCwwLDEtMiwxSDhhMi4yLDIuMiwwLDAsMS0y'@; put 'LjA2LTEuNDEsMi42OCwyLjY4LDAsMCwxLC4yOS0yLjE3bDMtNC40NCwxNCwwLTEuMzEtMkgxMC41N0wxNSwxNS40NlY0aDZWMTUuNDZsOC44NCwxMy4wNUEyLjIzLDIuMjMsMCwwLDEsMjkuODUsMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0zMS40OSwyNy40LDIzLDE0Ljk0VjRoMWExLDEsMCwwLDAsMC0ySDEyLjA4YTEsMSwwLDAsMCwwLDJIMTNWMTQuOTRMNC41OCwyNy4zMWE0LjMxLDQuMzEsMCwwLDAtLjc4LDNBNC4yMyw0LjIzLDAsMCwwLDgsMzRIMjcuODZBNC4zNiw0LjM2LDAsMCwwLDMx'@; put 'LDMyLjgsNC4yMyw0LjIzLDAsMCwwLDMxLjQ5LDI3LjRaTTE1LDE1LjQ5VjRoNlYxNS40OUwyNi4xNSwyM0g5Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZUFkbWluaXN0cmF0b3I9KDAsYS5jbHJJY29uU1ZHKSgn'@; put 'PHBhdGggZD0iTTE0LjY4LDE0LjgxYTYuNzYsNi43NiwwLDEsMSw2Ljc2LTYuNzVBNi43Nyw2Ljc3LDAsMCwxLDE0LjY4LDE0LjgxWm0wLTExLjUxYTQuNzYsNC43NiwwLDEsMCw0Ljc2LDQuNzZBNC43Niw0Ljc2LDAsMCwwLDE0LjY4LDMuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE2LjQyLDMxLjY4QTIuMTQsMi4xNCwwLDAsMSwxNS44LDMwSDRWMjQuMjJhMTQuODEsMTQuODEsMCwwLDEsMTEuMDktNC42OGwuNzIsMGEyLjIsMi4yLDAsMCwxLC42Mi0xLjg1bC4xMi0uMTFjLS40NywwLTEtLjA2'@; put 'LTEuNDYtLjA2QTE2LjQ3LDE2LjQ3LDAsMCwwLDIuMiwyMy4yNmExLDEsMCwwLDAtLjIuNlYzMGEyLDIsMCwwLDAsMiwySDE2LjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NywxNi4yOWEuMzcuMzcs'@; put 'MCwwLDEsLjE1LDAsLjQyLjQyLDAsMCwwLS4xNSwwWiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDIzLjMybC0yLS42MWE3LjIxLDcuMjEsMCwwLDAtLjU4LTEuNDFsMS0xLjg2QS4zOC4zOCwwLDAs'@; put 'MCwzMiwxOWwtMS40NS0xLjQ1YS4zNi4zNiwwLDAsMC0uNDQtLjA3bC0xLjg0LDFhNy4xNSw3LjE1LDAsMCwwLTEuNDMtLjYxbC0uNjEtMmEuMzYuMzYsMCwwLDAtLjM2LS4yNEgyMy44MmEuMzYuMzYsMCwwLDAtLjM1LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42bC0xLjgyLTFhLjM1LjM1'@; put 'LDAsMCwwLS40My4wN0wxNy42OSwxOWEuMzguMzgsMCwwLDAtLjA2LjQ0bDEsMS44MkE2Ljc3LDYuNzcsMCwwLDAsMTgsMjIuNjlsLTIsLjZhLjM2LjM2LDAsMCwwLS4yNi4zNXYyLjA1QS4zNS4zNSwwLDAsMCwxNiwyNmwyLC42MWE3LDcsMCwwLDAsLjYsMS40MWwtMSwxLjkxYS4zNi4zNiww'@; put 'LDAsMCwuMDYuNDNsMS40NSwxLjQ1YS4zOC4zOCwwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMmEuMzguMzgsMCwwLDAsLjM1LjI2aDIuMDVhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTIuMDVhNi45Miw2LjkyLDAsMCwwLDEuMzgtLjU3bDEuODksMWEu'@; put 'MzYuMzYsMCwwLDAsLjQzLS4wN0wzMiwzMC40QS4zNS4zNSwwLDAsMCwzMiwzMGwtMS0xLjg4YTcsNywwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzYuMzYsMCwwLDAsLjI2LS4zNVYyMy42N0EuMzYuMzYsMCwwLDAsMzMuNjgsMjMuMzJaTTI0Ljg1LDI4YTMuMzQsMy4zNCwwLDEsMSwzLjMzLTMu'@; put 'MzNBMy4zNCwzLjM0LDAsMCwxLDI0Ljg1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNC42NyIgY3k9IjguMyIgcj0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40NCwzMS44MmEyLjE1LDIuMTUsMCwwLDEtLjM4LTIuNTVsLjUzLTEtMS4wOS0uMzNBMi4xNCwyLjE0LDAsMCwxLDE0LDI1Ljg0VjIzLjc5YTIuMTYsMi4xNiwwLDAsMSwxLjUzLTIuMDdsMS4wOS0uMzMtLjUyLTFhMi4xNywyLjE3LDAsMCwxLC4z'@; put 'NS0yLjUyLDE4LjkyLDE4LjkyLDAsMCwwLTIuMzItLjE2QTE1LjU4LDE1LjU4LDAsMCwwLDIsMjMuMDd2Ny43NWExLDEsMCwwLDAsMSwxSDE2LjQ0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43LDIzLjQ2bC0y'@; put 'LS42YTYuNzMsNi43MywwLDAsMC0uNTgtMS40MmwxLTEuODZhLjM1LjM1LDAsMCwwLS4wNy0uNDNsLTEuNDUtMS40NmEuMzguMzgsMCwwLDAtLjQzLS4wN2wtMS44NSwxYTcuNzQsNy43NCwwLDAsMC0xLjQzLS42bC0uNjEtMmEuMzguMzgsMCwwLDAtLjM2LS4yNUgyMy44NGEuMzguMzgsMCww'@; put 'LDAtLjM1LjI2bC0uNiwyYTYuODUsNi44NSwwLDAsMC0xLjQ1LjYxbC0xLjgxLTFhLjM4LjM4LDAsMCwwLS40NC4wNmwtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyQTcuMjQsNy4yNCwwLDAsMCwxOCwyMi44M2wtMiwuNjFhLjM2LjM2LDAsMCwwLS4yNi4zNXYyLjA1YS4z'@; put 'Ni4zNiwwLDAsMCwuMjYuMzVsMiwuNjFhNy4yOSw3LjI5LDAsMCwwLC42LDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTkuMTYsMzJhLjM4LjM4LDAsMCwwLC40NC4wNmwxLjg3LTFhNy4wOSw3LjA5LDAsMCwwLDEuNC41N2wuNiwyLjA1YS4zOC4zOCwwLDAsMCwuMzYuMjZoMi4w'@; put 'NWEuMzguMzgsMCwwLDAsLjM1LS4yNmwuNi0yLjA1YTYuNjgsNi42OCwwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM4LjM4LDAsMCwwLC40NC0uMDZMMzIsMzAuNTVhLjM4LjM4LDAsMCwwLC4wNi0uNDRsLTEtMS44OGE2LjkyLDYuOTIsMCwwLDAsLjU3LTEuMzhsMi0uNjFhLjM5LjM5LDAsMCww'@; put 'LC4yNy0uMzVWMjMuODJBLjQuNCwwLDAsMCwzMy43LDIzLjQ2Wm0tOC44Myw0LjcyYTMuMzQsMy4zNCwwLDEsMSwzLjMzLTMuMzRBMy4zNCwzLjM0LDAsMCwxLDI0Ljg3LDI4LjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgJyksbC5DbHJT'@; put 'aGFwZUhhcmREcml2ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsOGEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJaTTMyLDI4SDRWOEgzMlYyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5'@; put 'LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjg4LDE4LjA4YTMuNTksMy41OSwwLDEsMCwzLjU5LTMuNTksMy44NCwzLjg0LDAsMCwwLS45MS4xM0wxNSwxNi4xNmEy'@; put 'LjA4LDIuMDgsMCwwLDEsLjUtLjA3LDIsMiwwLDEsMS0yLDIsMS42NCwxLjY0LDAsMCwxLC4wOC0uNUwxMiwxNy4xNkEzLjUzLDMuNTMsMCwwLDAsMTEuODgsMTguMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0xNS40NywyNS43M2E3LjY2LDcuNjYsMCwwLDEtNy42NS03LjY1LDcuNTUsNy41NSwwLDAsMSwuMjctMkw2LjU0LDE1LjdhOS4yNCw5LjI0LDAsMCwwLDE3LjgsNC45NUgyMi42NkE3LjY0LDcuNjQsMCwwLDEsMTUuNDcsMjUuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4yMiwxNy44M2EuOC44LDAsMCwwLS44LS44SDI0LjY2YTkuMjYsOS4yNiwwLDAsMC05LjE5LTguMiw5LjM2LDkuMzYsMCwwLDAtMi4zOC4zMmwuNDIsMS41NGE3Ljg2LDcuODYsMCwwLDEsMi0uMjZBNy42Niw3LjY2LDAs'@; put 'MCwxLDIzLDE3SDIwLjkyYS44LjgsMCwwLDAsMCwxLjZoNi41QS44LjgsMCwwLDAsMjguMjIsMTcuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAs'@; put 'MiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTIsMTcuMTZsMS41NC40MmExLjY0LDEuNjQsMCwwLDAtLjA4LjUsMiwyLDAsMSwwLDItMiwyLjA4LDIuMDgsMCwwLDAtLjUuMDdsLS40MS0xLjU0YTMuODQsMy44NCwwLDAsMSwuOTEtLjEzLDMuNTksMy41OSwwLDEsMS0z'@; put 'LjU5LDMuNTlBMy41MywzLjUzLDAsMCwxLDEyLDE3LjE2Wk01LjMxLDhBMS4yNSwxLjI1LDAsMSwxLDQuMDYsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4zMSw4Wm0wLDIwLjA2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMzEsMjguMDZabTEwLjE2LS43M0E5'@; put 'LjIyLDkuMjIsMCwwLDEsNi41NCwxNS43bDEuNTUuNDFhNy41NSw3LjU1LDAsMCwwLS4yNywyLDcuNjQsNy42NCwwLDAsMCwxNC44NCwyLjU3aDEuNjhBOS4yNSw5LjI1LDAsMCwxLDE1LjQ3LDI3LjMzWm0xMi04LjdoLTYuNWEuOC44LDAsMCwxLDAtMS42SDIzYTcuNjYsNy42NiwwLDAsMC03'@; put 'LjU3LTYuNiw3Ljg2LDcuODYsMCwwLDAtMiwuMjZsLS40Mi0xLjU0YTkuMzYsOS4zNiwwLDAsMSwyLjM4LS4zMkE5LjI2LDkuMjYsMCwwLDEsMjQuNjYsMTdoMi43NmEuOC44LDAsMCwxLDAsMS42Wm0zLjM5LDkuNDNhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEs'@; put 'MzAuODEsMjguMDZabTAtMTcuNTZhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuODEsMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVIYXJkRHJpdmVEaXNrcz0oMCxhLmNscklj'@; put 'b25TVkcpKCc8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCwwLDMuNzQsMjJINFY2SDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMzAsOS43NEExLjc0LDEuNzQsMCwwLDAsMjguMjYsOEg3Ljc0QTEuNzQsMS43NCwwLDAsMCw2LDkuNzRWMjQuMjZBMS43NCwxLjc0LDAsMCwwLDcuNzQsMjZIOFYxMEgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCwwLDAsMCwzMi4yNiwxMlpNMzIsMjhI'@; put 'MTJWMTRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwyMy42OGEyLjY0LDIuNjQsMCwxLDAtMi43LTIuNjNBMi42NywyLjY3LDAsMCwwLDE5Ljk0LDIzLjY4Wm0wLTMuODdhMS4yNCwxLjI0LDAs'@; put 'MSwxLTEuMjksMS4yNEExLjI3LDEuMjcsMCwwLDEsMTkuOTQsMTkuODFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwxNi4yMmE0LjkzLDQuOTMsMCwwLDEsNC45NSw0LjM1SDIzLjcxVjIyaDQuNDFh'@; put 'LjcuNywwLDAsMCwwLTEuNEgyNi4zMWE2LjMzLDYuMzMsMCwwLDAtNi4zNy01Ljc1LDYuNTgsNi41OCwwLDAsMC0xLjQ4LjE3bC4zNSwxLjM3QTQuNzMsNC43MywwLDAsMSwxOS45NCwxNi4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTE5Ljk0LDI3LjI3YTYuNDIsNi40MiwwLDAsMCw1LjY3LTMuMzVIMjMuOTNhNSw1LDAsMCwxLTQsMS45NSw0LjkxLDQuOTEsMCwwLDEtNS00LjgyLDUuMTYsNS4xNiwwLDAsMSwuMDgtLjc5TDEzLjYzLDIwYTcsNywwLDAsMC0uMDksMUE2LjMyLDYuMzIsMCwwLDAs'@; put 'MTkuOTQsMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiw1Ljc0QTEuNzQsMS43NCwwLDAsMCwyNC4yNiw0SDMuNzRBMS43NCwxLjc0LDAsMCwwLDIsNS43NFYyMC4yNkExLjc0LDEuNzQsMCwwLDAs'@; put 'My43NCwyMkg0VjZIMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3'@; put 'Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYyLDIyLjZBMS41NSwxLjU1LDAsMSwwLDE4LDIxLjA1LDEuNiwxLjYsMCwwLDAsMTkuNjIsMjIuNloiIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMjYsMTJIMTEuNzRBMS43NCwxLjc0LDAsMCwwLDEwLDEzLjc0VjI4LjI2QTEuNzQsMS43NCwwLDAsMCwxMS43NCwzMEgzMi4yNkExLjc0LDEuNzQsMCwwLDAsMzQsMjguMjZWMTMuNzRBMS43NCwxLjc0LDAs'@; put 'MCwwLDMyLjI2LDEyWk0xOS42MiwxNy43NGEzLjMxLDMuMzEsMCwxLDEtMy4zOCwzLjMxQTMuMzUsMy4zNSwwLDAsMSwxOS42MiwxNy43NFptMCwxMS4xM2E3Ljk0LDcuOTQsMCwwLDEtOC03LjgyLDcuODMsNy44MywwLDAsMSwuMTEtMS4yOWwxLjc1LjNhNS4zNiw1LjM2LDAsMCwwLS4xMSwx'@; put 'LDYuMTgsNi4xOCwwLDAsMCw2LjI4LDYuMDYsNi4zNSw2LjM1LDAsMCwwLDUtMi40NmgyLjFBOC4wNiw4LjA2LDAsMCwxLDE5LjYyLDI4Ljg3Wk0yOS44OSwyMi4ySDI0LjM2VjIwLjQ0aDEuNDhBNi4xOSw2LjE5LDAsMCwwLDE5LjYyLDE1YTYuNDgsNi40OCwwLDAsMC0xLjQxLjE2bC0uNDUt'@; put 'MS43YTguMTYsOC4xNiwwLDAsMSwxLjg2LS4yMiw4LDgsMCwwLDEsOCw3LjIxaDIuMjZhLjg4Ljg4LDAsMCwxLDAsMS43NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVOVk1lPSgwLGEuY2xySWNvblNWRykoJzxwYXRo'@; put 'IGQ9Ik0yNywyMlYxNGEyLDIsMCwwLDAtMi0ySDExYTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDI1QTIsMiwwLDAsMCwyNywyMlpNMTEsMTRIMjV2OEgxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0i'@; put 'MTkiIHk9IjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjYiIHdpZHRoPSIxLjk3IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuOCw4SDE2Ljg3VjZoLTExTDcuNzgsNC4wOGExLDEsMCwwLDAsMC0xLjQyLDEsMSwwLDAsMC0xLjQxLDBMMiw3LDYuMzcsMTEuNGExLDEsMCwwLDAsMS40MSwwLDEsMSwwLDAsMCwwLTEuNDFaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS42MSwyNC42OGExLDEsMCwwLDAtMS40MSwwLDEsMSwwLDAsMCwwLDEuNDJMMzAuMSwyOEgxOXYySDMwLjJsLTIsMmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCww'@; put 'LDAsLjcxLS4yOUwzNCwyOS4wNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTMiIHk9IjI4IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIg'@; put 'Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjkiIHk9IjI4IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgJyksbC5DbHJTaGFwZVNTRD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0'@; put 'QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI2LjIxIiBjeT0iMTAu'@; put 'MjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjkuODEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAg'@; put 'ICAgICA8Y2lyY2xlIGN4PSI2LjIxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjkuODEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTguNjJjMS4zMi4zMSwxLjkxLjU0LDEuOTEsMS4yMnMtLjUzLDEuMDktMS41NSwxLjA5YTQsNCwwLDAsMS0yLjcxLTEuMTFsLS44NiwxLjA2YTUsNSwwLDAsMCwzLjUyLDEuMzRjMiwwLDMuMS0xLDMuMS0y'@; put 'LjUycy0xLjE1LTIuMDUtMi44Ny0yLjQ0Yy0xLjMxLS4zLTEuOTItLjU0LTEuOTItMS4yMUExLjI1LDEuMjUsMCwwLDEsMTAsMTVhMy42OCwzLjY4LDAsMCwxLDIuMzcsMWwuODEtMS4xQTQuNTgsNC41OCwwLDAsMCwxMCwxMy42OWMtMS43NCwwLTMsMS4wNS0zLDIuNDlTOC4yNiwxOC4yMiwx'@; put 'MCwxOC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjgzLDIwLjkzYTQsNCwwLDAsMS0yLjcxLTEuMTFsLS44NiwxLjA2YTUsNSwwLDAsMCwzLjUyLDEuMzRjMiwwLDMuMS0xLDMuMS0yLjUyUzE5Ljcz'@; put 'LDE3LjY1LDE4LDE3LjI2Yy0xLjMxLS4zLTEuOTItLjU0LTEuOTItMS4yMUExLjI1LDEuMjUsMCwwLDEsMTcuNDgsMTVhMy42OCwzLjY4LDAsMCwxLDIuMzcsMWwuODEtMS4xYTQuNTYsNC41NiwwLDAsMC0zLjEyLTEuMTVjLTEuNzMsMC0zLDEuMDUtMywyLjQ5czEuMTksMiwyLjg5LDIuNDRj'@; put 'MS4zMi4zMSwxLjkxLjU0LDEuOTEsMS4yMlMxOC44NSwyMC45MywxNy44MywyMC45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjksMThjMC0yLjQxLTEuOTItNC4xMi00LjY0LTQuMTJoLTIuOXY4LjI0'@; put 'aDIuOUMyOCwyMi4wOCwyOS45LDIwLjM3LDI5LjksMThabS02LTIuNzZoMS41NmEyLjc3LDIuNzcsMCwxLDEsMCw1LjUzSDIzLjg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwy'@; put 'LDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTUuMjEsOEExLjI1LDEuMjUsMCwxLDEsNCw5LjI1LDEuMjUsMS4yNSwwLDAsMSw1LjIxLDhabTAsMjBhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsNS4yMSwyOFpt'@; put 'NS4wNi01Ljc4YTUsNSwwLDAsMS0zLjUyLTEuMzRsLjg2LTEuMDZhNCw0LDAsMCwwLDIuNzEsMS4xMWMxLDAsMS41NS0uNSwxLjU1LTEuMDlzLS41OS0uOTEtMS45MS0xLjIyYy0xLjctLjQtMi44OS0uODktMi44OS0yLjQ0czEuMjItMi40OSwzLTIuNDlhNC41OCw0LjU4LDAsMCwxLDMuMTIs'@; put 'MS4xNWwtLjgxLDEuMUEzLjY4LDMuNjgsMCwwLDAsMTAsMTVhMS4yNSwxLjI1LDAsMCwwLTEuMzksMS4wOGMwLC42Ny42MS45MSwxLjkyLDEuMjEsMS43Mi4zOSwyLjg3Ljk0LDIuODcsMi40NFMxMi4yNCwyMi4yMiwxMC4yNywyMi4yMlptNy41MSwwYTUsNSwwLDAsMS0zLjUyLTEuMzRsLjg2'@; put 'LTEuMDZhNCw0LDAsMCwwLDIuNzEsMS4xMWMxLDAsMS41NS0uNSwxLjU1LTEuMDlzLS41OS0uOTEtMS45MS0xLjIyYy0xLjctLjQtMi44OS0uODktMi44OS0yLjQ0czEuMjMtMi40OSwzLTIuNDlhNC41Niw0LjU2LDAsMCwxLDMuMTIsMS4xNWwtLjgxLDEuMWEzLjY4LDMuNjgsMCwwLDAtMi4z'@; put 'Ny0xLDEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTkuNzUsMjIuMjIsMTcuNzgsMjIuMjJabTQuNTgtLjE0VjEzLjg0aDIuOWMyLjcyLDAsNC42NCwxLjcxLDQuNjQsNC4xMlMyOCwyMi4wOCwyNS4yNiwy'@; put 'Mi4wOFpNMzAuNjksMjhhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMjhabTAtMTcuNWExLjI1LDEuMjUsMCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSwzMC42OSwxMC41WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwxNS4yaDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGwuQ2xyU2hhcGVCbHVldG9vdGg9KDAsYS5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggZD0iTTI2LjY0LDI1LjI3LDE5LDE3LjUzLDE5LDMsMjUuMjEsOS40bC01LjY1LDUuNzlMMjEsMTYuNjJsNS42OC01LjgyYTIsMiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIuMDgsMi4wOCwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzVjE1LjM4TDEwLjA1LDguMjdBMSwx'@; put 'LDAsMCwwLDguNjIsOS42NkwxNi43OSwxOCw5LjA2LDI2YTEsMSwwLDAsMCwwLDEuNDEsMSwxLDAsMCwwLC43LjI5LDEsMSwwLDAsMCwuNzItLjMxTDE3LDIwLjY4VjMzYTIuMDcsMi4wNywwLDAsMCwuNzEsMS42MkEyLDIsMCwwLDAsMTksMzVhMS45NCwxLjk0LDAsMCwwLDEuNDItLjZsNi4y'@; put 'My02LjM4QTIsMiwwLDAsMCwyNi42NCwyNS4yN1pNMTksMzMuMDVWMjAuMjlsNi4yMSw2LjM2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gIDxwYXRoIGQ9Ik0yNi41MiwyNC41MmwtNS42NS01LjgzLTEuNDYtMS41di0xMkwyMy43OSw5LjdsLTMu'@; put 'NiwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NCwyLjU0LDAsMCwwLDAtMy41NkwyMC41NywxLjc4QTIuNTQsMi41NCwwLDAsMCwxNi4yLDMuNTVWMTMuODZsLTUuNTMtNS43YTEuNiwxLjYsMCwxLDAtMi4zLDIuMjNMMTUuNzUsMThsLTcsNy4xOWExLjYsMS42LDAsMCwwLDAsMi4yNiwx'@; put 'LjYzLDEuNjMsMCwwLDAsMS4xMi40NSwxLjU4LDEuNTgsMCwwLDAsMS4xNS0uNDlsNS4xMS01LjI3VjMyLjQ1YTIuNTMsMi41MywwLDAsMCwxLjU5LDIuMzYsMi40NCwyLjQ0LDAsMCwwLC45NS4xOSwyLjU2LDIuNTYsMCwwLDAsMS44My0uNzdsNS45NS02LjE1QTIuNTQsMi41NCwwLDAsMCwy'@; put 'Ni41MiwyNC41MlpNMTkuNCwzMC44M1YyMS43N2w0LjM5LDQuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVCbHVldG9vdGhPZmY9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDMsMjUuMjIsOS40bC01LjY2LDUuOEwyMSwx'@; put 'Ni42M2w1LjY4LTUuODNhMiwyLDAsMCwwLDAtMi43OEwyMC40OCwxLjdBMiwyLDAsMCwwLDE4Ljg1LDEsMiwyLDAsMCwwLDE3LDN2MTEuNGwyLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNC43Nyw1LDMuMzYsNi40MiwxNS44OSwx'@; put 'OSw5LjA2LDI2YTEsMSwwLDAsMCwuNzEsMS43LDEsMSwwLDAsMCwuNzItLjMxTDE3LDIwLjY4VjMyLjk0YTIuMDgsMi4wOCwwLDAsMCwuNzEsMS42M0EyLDIsMCwwLDAsMTksMzVhMiwyLDAsMCwwLDEuNDItLjZsNS40MS01LjU0LDMuNTQsMy41M0wzMC43NywzMVpNMTksMzMuMDV2LTExbDUu'@; put 'NDEsNS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOS4zMSw1LjE3LDIzLjcsOS43bC0zLjU5LDMuNzEsMi4yNCwyLjI5LDQuMDktNC4yMmEyLjU2LDIuNTYsMCwwLDAsMC0zLjU2bC02LTYuMTRhMi41MSwyLjUxLDAsMCwwLTIu'@; put 'NzctLjU5LDIuNTQsMi41NCwwLDAsMC0xLjYsMi4zNnYxMGwzLjIxLDMuMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjUsNSwzLjA5LDYuNDIsMTUuMTcsMTguNTEsOC43LDI1LjE5QTEuNiwxLjYsMCwwLDAsOS44NSwyNy45LDEuNTcs'@; put 'MS41NywwLDAsMCwxMSwyNy40MWw1LjExLTUuMjdWMzIuNDVhMi41NCwyLjU0LDAsMCwwLDEuNiwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41NSwyLjU1LDAsMCwwLDEuODItLjc3bDUuMTItNS4yOSwzLjQ5LDMuNDhMMzAuNSwzMVpNMTkuODEsMzAuODNWMjIuNjVsNCw0WiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlUHJvY2Vzc09uVk09KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjQ5LDI2LjI4YTEsMSwwLDAsMC0xLjItLjdsLTIuNDkuNjdhMTQuMjMsMTQuMjMsMCwwLDAsMi40LTYuNzVBMTQuNDgsMTQu'@; put 'NDgsMCwwLDAsMjcuMzcsNy4zNSwxLDEsMCwwLDAsMjYsNy40NGExLDEsMCwwLDAsLjA5LDEuNDEsMTIuNDUsMTIuNDUsMCwwLDEsNC4xNiwxMC40NiwxMi4xOSwxMi4xOSwwLDAsMS0yLDUuNzRMMjgsMjIuNTRhMSwxLDAsMSwwLTEuOTUuMTZsLjUsNi40NCw2LjI1LTEuNjZBMSwxLDAsMCww'@; put 'LDMzLjQ5LDI2LjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuMzEsMTcuMDhhMS4wNiwxLjA2LDAsMCwwLC40NC4xNiwxLDEsMCwwLDAsMS4xMi0uODVBMTIuMjEsMTIuMjEsMCwwLDEsMTguNjksNS44NEwxNi40NSw3LjM3YTEs'@; put 'MSwwLDAsMCwuNDcsMS43OUExLDEsMCwwLDAsMTcuNTYsOWw1LjMzLTMuNjZMMTguMzMuNzZhMSwxLDAsMSwwLTEuMzksMS4zOGwxLjcsMS43QTE0LjIsMTQuMiwwLDAsMCwzLjg5LDE2LjEyLDEsMSwwLDAsMCw0LjMxLDE3LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIxLjczLDI5LjkzYTEyLDEyLDAsMCwxLTQuODQuNTEsMTIuMywxMi4zLDAsMCwxLTkuNTctNi4zbDIuNDkuOTNhMSwxLDAsMCwwLC42OS0xLjg0bC00LjU5LTEuN2gwTDQuNDQsMjEsMy4zMywyNy4zNWExLDEsMCwwLDAsLjc5LDEuMTNsLjE3LDBhMSwx'@; put 'LDAsMCwwLDEtLjgxbC40Mi0yLjRhMTQuMywxNC4zLDAsMCwwLDExLDcuMTQsMTMuOTEsMTMuOTEsMCwwLDAsNS42My0uNiwxLDEsMCwwLDAtLjYtMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIyLDEzSDE0YTEsMSwwLDAsMC0x'@; put 'LDF2OGExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxNEExLDEsMCwwLDAsMjIsMTNabS0xLDhIMTVWMTVoNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGwuQ2xyU2hhcGVBc3NpZ25Vc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9'@; put 'Ik0xOCwxN2E3LjQ2LDcuNDYsMCwxLDAtNy40NS03LjQ2QTcuNDYsNy40NiwwLDAsMCwxOCwxN1pNMTgsNC4wN2E1LjQ2LDUuNDYsMCwxLDEtNS40NSw1LjQ1QTUuNDYsNS40NiwwLDAsMSwxOCw0LjA3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBh'@; put 'dGggZD0iTTYsMzEuODlWMjUuNzdhMTYuMTMsMTYuMTMsMCwwLDEsMTItNSwxNi42MSwxNi42MSwwLDAsMSw4LjcxLDIuMzNsMS4zNS0xLjUxQTE4LjUzLDE4LjUzLDAsMCwwLDE4LDE4Ljc0LDE3LjcsMTcuNywwLDAsMCw0LjIxLDI0LjhhMSwxLDAsMCwwLS4yMS42djYuNDlBMi4wNiwyLjA2'@; put 'LDAsMCwwLDYsMzRIMTguMzlsLTEuOS0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMxLjg5LDMwLDMySDI2Ljg1bC0xLjgsMkgzMGEyLjA2LDIuMDYsMCwwLDAsMi0yLjA3VjI2LjJsLTIsMi4yM1oiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zNC43NiwxOC42MmExLDEsMCwwLDAtMS40MS4wOGwtMTEuNjIsMTMtNS4yLTUuNTlBMSwxLDAsMCwwLDE1LjEyLDI2YTEsMSwwLDAsMC0uMDYsMS40Mmw2LjY5LDcuMkwzNC44NCwyMEExLDEsMCwwLDAsMzQuNzYsMTgu'@; put 'NjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIxNy45OSIgY3k9IjEwLjM2IiByPSI2LjgxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xMiwyNi42NWEyLjgsMi44LDAsMCwxLDQu'@; put 'ODUtMS44TDIwLjcxLDI5bDYuODQtNy42M0ExNi44MSwxNi44MSwwLDAsMCwxOCwxOC41NSwxNi4xMywxNi4xMywwLDAsMCw1LjUsMjRhMSwxLDAsMCwwLS4yLjYxVjMwYTIsMiwwLDAsMCwxLjk0LDJoOC41N2wtMy4wNy0zLjNBMi44MSwyLjgxLDAsMCwxLDEyLDI2LjY1WiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjguNzYsMzJhMiwyLDAsMCwwLDEuOTQtMlYyNi4yNEwyNS41NywzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLjc3LDE4LjYyYTEsMSwwLDAsMC0xLjQyLjA4'@; put 'bC0xMS42MiwxMy01LjItNS41OUExLDEsMCwwLDAsMTQuMTIsMjZhMSwxLDAsMCwwLDAsMS40Mmw2LjY4LDcuMkwzMy44NCwyMEExLDEsMCwwLDAsMzMuNzcsMTguNjJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLGwuQ2xyU2hhcGVBdG9tPSgwLGEuY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC4wNWE0LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwxNC4wNVptMCw2LjQ0YTIuNDIsMi40MiwwLDEsMSwyLjQyLTIuNDJBMi40MiwyLjQyLDAsMCwxLDE4LDIwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LTEuNzJjLjMyLS4xMi42Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIy'@; put 'LDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03LS41My04Ljc4YTUuMjksNS4yOSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43'@; put 'OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTNDMi44NSw2LjQsMi41OCw5LjE3LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQs'@; put 'MCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0LDEzLjM0LDAsMCwwLDQuNjUtMSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAs'@; put 'My42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41My04Ljc3QTMyLjY4LDMyLjY4LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02'@; put 'LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1LDEuMzEsMS4yNXEuOS0uNDYsMS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1'@; put 'LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQsMCwwLDEsMy45My44NCwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2'@; put 'YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1LTQuMTcsMzYuODgsMzYuODgsMCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCww'@; put 'LDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAsMS0zLS43NywyMiwyMiwwLDAsMS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwy'@; put 'Mi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjQuMjMsMTEuNzFhMzkuMTQsMzkuMTQsMCwwLDAtNC41Ny0zLjkyLDIyLjg2LDIyLjg2LDAsMCwxLDMu'@; put 'NDgtMS43MmMuMzItLjEyLjYyLS4yMS45Mi0uM2EyLjI4LDIuMjgsMCwwLDAsMy44MS0uNDYsMy4zMSwzLjMxLDAsMCwxLDEuOTIuODRjMS4xOSwxLjE5LDEuMjIsMy41OS4xLDYuNTguNDkuNjUuOTQsMS4zMSwxLjM1LDIsLjE3LS40LjM1LS43OS40OS0xLjE4LDEuNDctMy44NSwxLjI4LTct'@; put 'LjUzLTguNzhhNS4yOSw1LjI5LDAsMCwwLTMuMzMtMS40NCwyLjI5LDIuMjksMCwwLDAtNC4zMS41NGMtLjM3LjExLS43NC4yMi0xLjEzLjM3YTI1Ljc5LDI1Ljc5LDAsMCwwLTQuNTcsMi4zNUEyNi4yMSwyNi4yMSwwLDAsMCwxMy4yOCw0LjJjLTMuODUtMS40Ni03LTEuMjgtOC43Ny41M0My'@; put 'Ljg1LDYuNCwyLjU4LDkuMTcsMy42OCwxMi41OWEyLjI4LDIuMjgsMCwwLDAsMS41OSwzLjY3Yy4zMi42MS42NywxLjIyLDEuMDYsMS44MkEyNS41NCwyNS41NCwwLDAsMCw0LDIyLjY2Yy0xLjQ3LDMuODQtMS4yOCw3LC41Myw4Ljc3YTUuNjMsNS42MywwLDAsMCw0LjEyLDEuNTEsMTMuMzQs'@; put 'MTMuMzQsMCwwLDAsNC42NS0xLDI2LjIxLDI2LjIxLDAsMCwwLDQuNTgtMi4zNUEyNS43OSwyNS43OSwwLDAsMCwyMi40MywzMmExNC4xNiwxNC4xNiwwLDAsMCwzLjY1LjlBMi4zLDIuMywwLDAsMCwzMC40NiwzMmE0LjU1LDQuNTUsMCwwLDAsLjc0LS41N2MxLjgxLTEuODEsMi00LjkzLjUz'@; put 'LTguNzdBMzIuNjgsMzIuNjgsMCwwLDAsMjQuMjMsMTEuNzFaTTEyLjU3LDMwLjA5Yy0zLDEuMTUtNS40NSwxLjEzLTYuNjUtLjA4cy0xLjIzLTMuNjItLjA3LTYuNjRhMjIuNzcsMjIuNzcsMCwwLDEsMS43MS0zLjQ4LDQwLjE5LDQwLjE5LDAsMCwwLDMuOTIsNC41NmMuNDMuNDMuODcuODUs'@; put 'MS4zMSwxLjI1cS45LS40NiwxLjgzLTEuMDVjLS41OC0uNTItMS4xNi0xLTEuNzItMS42MWEzNCwzNCwwLDAsMS01Ljc0LTcuNDdBMi4yOSwyLjI5LDAsMCwwLDUuNSwxMS42OWgwYy0uNzUtMi41LS42Mi00LjQ5LjQzLTUuNTRhMy43MiwzLjcyLDAsMCwxLDIuNzItLjkyLDExLjQsMTEuNCww'@; put 'LDAsMSwzLjkzLjg0LDIyLjg2LDIyLjg2LDAsMCwxLDMuNDgsMS43MiwzOS4xNCwzOS4xNCwwLDAsMC00LjU3LDMuOTJjLS40NC40NC0uODcuOS0xLjI5LDEuMzZhMjAuMjcsMjAuMjcsMCwwLDAsMSwxLjg1Yy41NC0uNjEsMS4wOS0xLjIxLDEuNjgtMS44YTM2LjMzLDM2LjMzLDAsMCwxLDUt'@; put 'NC4xNywzNi44OCwzNi44OCwwLDAsMSw0Ljk1LDQuMTcsMzYuMjYsMzYuMjYsMCwwLDEsNC4xNyw1LDM3LDM3LDAsMCwxLTQuMTcsNUEzMC42OCwzMC42OCwwLDAsMSwxMi41NywzMC4wOVpNMjkuNzksMzBsLS4xNi4xM2EyLjI3LDIuMjcsMCwwLDAtMy41LjcyLDEyLjU3LDEyLjU3LDAsMCwx'@; put 'LTMtLjc3LDIyLDIyLDAsMCwxLTMuNDgtMS43MiwzOS4xNCwzOS4xNCwwLDAsMCw0LjU3LTMuOTIsMzguMjYsMzguMjYsMCwwLDAsMy45Mi00LjU2LDIyLjg4LDIyLjg4LDAsMCwxLDEuNzIsMy40OEMzMSwyNi4zOSwzMSwyOC44MSwyOS43OSwzMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxOC4wNyIgcj0iMy4zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMi42NiAzLjExKSByb3RhdGUoLTkuMjIpIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVCYXJDb2Rl'@; put 'PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik01LDdBMSwxLDAsMCwwLDQsOFYzMGExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDdBMSwxLDAsMCwwLDgsOFYyNmExLDEsMCww'@; put 'LDAsMiwwVjhBMSwxLDAsMCwwLDksN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxMyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE3LDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDE3LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjEsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAs'@; put 'MCwyLDBWOEExLDEsMCwwLDAsMjEsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0yNSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyNSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTI5LDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDI5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMzMsN2ExLDEsMCwwLDAtMSwxVjMwYTEsMSwwLDAs'@; put 'MCwyLDBWOEExLDEsMCwwLDAsMzMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPicpLGwuQ2xyU2hhcGVDZER2ZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0'@; put 'LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIyLjMzLDE4YTQuNDYsNC40NiwwLDEsMC00LjQ1LDQuNDZBNC40Niw0LjQ2LDAsMCwwLDIyLjMzLDE4Wk0xNy44OCwyMC45QTIu'@; put 'ODYsMi44NiwwLDEsMSwyMC43MywxOCwyLjg2LDIuODYsMCwwLDEsMTcuODgsMjAuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNy44OCw3LjQzSDE4VjUuODRoLS4xMkExMi4yMSwxMi4yMSwwLDAsMCw1LjY4LDE3Ljc1aDEuNkEx'@; put 'MC42MSwxMC42MSwwLDAsMSwxNy44OCw3LjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjA4LDE4SDI4LjQ5djBBMTAuNjEsMTAuNjEsMCwwLDEsMTguMjUsMjguNjN2MS42QTEyLjIyLDEyLjIyLDAsMCwwLDMwLjA5LDE4UzMw'@; put 'LjA4LDE4LDMwLjA4LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTE4LDExVjkuNDRoLS4xMmE4LjYyLDguNjIsMCwwLDAtOC42LDguMzJoMS42YTcsNywwLDAsMSw3LTYuNzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMTguMjUsMjV2MS42QTguNjEsOC42MSwwLDAsMCwyNi40OCwxOHYwaC0xLjZ2MEE3LDcsMCwwLDEsMTguMjUsMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMTguMTcsMS45MmExNiwx'@; put 'NiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOC4xNywxLjkyWk0yNi4yMywxOGgxLjU0YTkuNjEsOS42MSwwLDAsMS05LjYsOS41M0gxOFYyNmguMTdBOC4wNyw4LjA3LDAsMCwwLDI2LjIzLDE4Wk02LjA1LDE4SDQuNDV2LS4wOEExMy43MiwxMy43MiwwLDAsMSwxOCw0LjIxdjEuNkExMi4x'@; put 'MywxMi4xMywwLDAsMCw2LjA1LDE3LjkyWm00LjA1LDBIOC41NnYtLjA4QTkuNjEsOS42MSwwLDAsMSwxOCw4LjMyVjkuODZhOC4wNyw4LjA3LDAsMCwwLTcuOSw4LjA2Wm00LjMyLS4wOGEzLjc1LDMuNzUsMCwxLDEsMy43NSwzLjc1QTMuNzUsMy43NSwwLDAsMSwxNC40MiwxNy45MlptMy43'@; put 'NSwxMy43MUgxOFYzMGguMTdBMTIuMTMsMTIuMTMsMCwwLDAsMzAuMjgsMThoMS42QTEzLjczLDEzLjczLDAsMCwxLDE4LjE3LDMxLjYzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlQ29udGFpbmVyPSgwLGEuY2xySWNvblNWRykoJzxw'@; put 'YXRoIGQ9Ik0zMiwzMEg0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDMyYTIsMiwwLDAsMSwyLDJWMjhBMiwyLDAsMCwxLDMyLDMwWk00LDhWMjhIMzJWOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDI1LjNhLjguOCww'@; put 'LDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDksMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC45MiwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjgu'@; put 'OCwwLDAsMSwxNC45MiwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIxLDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDIxLDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjcsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44LjgsMCwwLDEsMjcsMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMiw2'@; put 'SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNOS42MywyNC4yM2EuNzkuNzksMCwwLDEtLjgxLjc3QS43OS43OSwwLDAsMSw4LDI0LjIzVjExLjc3QS43OS43OSwwLDAsMSw4LjgyLDExYS43OS43OSwwLDAsMSwuODEu'@; put 'NzdabTYsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEsLjgyLjc3Wm02LjIxLDBhLjc5Ljc5LDAsMCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEt'@; put 'Ljc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4xMiwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgxLS43Ny43OS43OSwwLDAsMSwuODIuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwu'@; put 'Q2xyU2hhcGVDb250YWluZXJWb2x1bWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTgsMTcuNThhMzIuMzUsMzIuMzUsMCwwLDAsNi4zLjkyLDQuMTMsNC4xMywwLDAsMSwuOTItMS4zNywzMC45NCwzMC45NCwwLDAsMS03LjIyLTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNiwyOFY4LjE5Yy4zNC0uNzYsNC4zMS0yLjExLDExLTIuMTFzMTAuNjcsMS4zNSwxMSwydi4zYy0uODIuNzktNC41OCwyLjA1LTExLjExLDIuMDVBMzMuNDgsMzMuNDgsMCwwLDEsOCw5LjQ0djEuNDRhMzUuNiwzNS42LDAsMCwwLDguODksMWM0'@; put 'LjI5LDAsOC44LS41OCwxMS4xMS0xLjgydjUuMDdhNS4zLDUuMywwLDAsMS0xLjgxLjg4SDMwVjguMTJjMC0zLjE5LTguMTctNC0xMy00cy0xMywuODUtMTMsNFYyOEM0LDMwLjYzLDkuMzksMzEuNjgsMTQsMzJWMzBDOS4xMywyOS42Niw2LjI4LDI4LjYyLDYsMjhaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNOCwyNC4yOGEzMS4zLDMxLjMsMCwwLDAsNiwuODl2LTEuNGEyOC45MywyOC45MywwLDAsMS02LS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMiwxOEgx'@; put 'OGEyLDIsMCwwLDAtMiwyVjMyYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMEEyLDIsMCwwLDAsMzIsMThaTTE4LDMyVjIwSDMyVjMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDIxLjdhLjcuNywwLDAsMC0uNy43'@; put 'djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0yNSwyMS44MmEuNy43LDAsMCwwLS43LjdWMzBhLjcuNywwLDEsMCwxLjQsMFYyMi41MkEuNy43LDAsMCww'@; put 'LDI1LDIxLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTI5LDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDEsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjksMjEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0zMiwxOEgxOGEyLDIsMCwwLDAtMiwyVjMyYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMEEyLDIsMCwwLDAsMzIsMThaTTE4LDMyVjIwSDMyVjMyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48'@; put 'cGF0aCBkPSJNMjEsMjEuN2EuNy43LDAsMCwwLS43Ljd2Ny40OWEuNy43LDAsMCwwLDEuNCwwVjIyLjRBLjcuNywwLDAsMCwyMSwyMS43WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43Ljcs'@; put 'MCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAsMCwyNSwyMS44MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI5LDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDEsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjksMjEuN1oiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTE4LDE2SDI4VjguMTJjMC0xLjY4LTUuMzgtMy0xMi0zUzQsNi40NCw0LDguMTJWMjhjMCwxLjUsNC4zMywyLjc1LDEwLDNWMjUuMjJhMjkuMTcsMjkuMTcsMCwwLDEtOC0xLjI5VjIyLjQ0bC4yNC4xQTI2'@; put 'LjYzLDI2LjYzLDAsMCwwLDE0LDIzLjgyVjIwYTQsNCwwLDAsMSwuMjktMS40N0EyOS4xOSwyOS4xOSwwLDAsMSw2LDE3LjIzVjE1Ljc1bC4yNC4wOWEyOSwyOSwwLDAsMCw5LDEuMzJoMEE0LDQsMCwwLDEsMTgsMTZaTTYsMTAuNTRWOS4wNWwuMjQuMDlBMzAuMTIsMzAuMTIsMCwwLDAsMTYs'@; put 'MTAuNDcsMjguMzMsMjguMzMsMCwwLDAsMjYsOS4wNXYxLjVhMzIuNTMsMzIuNTMsMCwwLDEtMTAsMS4zMkEzMi40NCwzMi40NCwwLDAsMSw2LDEwLjU0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz4nKSxsLkNsclNoYXBlRmlsZVNoYXJlPSgwLGEuY2xySWNv'@; put 'blNWRykoJzxwYXRoIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVptMCwyMEg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwy'@; put 'LjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS45MSwyMi40OGEyLjA2LDIuMDYsMCwwLDAtMS40NC42MmwtNS43Mi0yLjY2VjIwbDUuNjYtMi42NWEyLjA4LDIuMDgsMCwxLDAsLjA2'@; put 'LTIuOTQsMi4xMiwyLjEyLDAsMCwwLS42NCwxLjQ4di4yM2wtNS42NCwyLjY2YTIuMDgsMi4wOCwwLDEsMC0uMDgsMi45NWwuMDgtLjA4LDUuNjcsMi42NnYuM2EyLjA5LDIuMDksMCwxLDAsMi4wOC0yLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48'@; put 'cGF0aCBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsN2g2LjQ5bDIuNzIsNEg2Wk0yMS45NCwyNi42NGEyLjA5LDIuMDksMCwwLDEt'@; put 'Mi4xMS0yLjA2bDAtLjMtNS42Ny0yLjY2LS4wOC4wOGEyLjA4LDIuMDgsMCwxLDEsLjA4LTIuOTVsNS42NC0yLjY2di0uMjNhMi4wOCwyLjA4LDAsMSwxLC41OCwxLjQ2TDE0Ljc1LDIwdi40N2w1LjcyLDIuNjZhMi4wNywyLjA3LDAsMSwxLDEuNDcsMy41NFoiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZVFyQ29kZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNS42LDRBMS42LDEuNiwwLDAsMCw0LDUuNlYxMmg4VjRaTTEwLDEwSDZWNmg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+'@; put 'PHBhdGggZD0iTTQsMzAuNEExLjYsMS42LDAsMCwwLDUuNiwzMkgxMlYyNEg0Wk02LDI2aDR2NEg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LDMyaDYuNEExLjYsMS42LDAsMCwwLDMyLDMwLjRWMjRIMjRabTItNmg0djRIMjZa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuNCw0SDI0djhoOFY1LjZBMS42LDEuNiwwLDAsMCwzMC40LDRaTTMwLDEwSDI2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwb2x5Z29u'@; put 'IHBvaW50cz0iMjAgMTAgMjAgOCAxNiA4IDE2IDEyIDE4IDEyIDE4IDEwIDIwIDEwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cmVjdCB4PSIxMiIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC02IiAvPjxyZWN0IHg9IjE0IiB5PSIxNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBvbHlnb24gcG9pbnRzPSIyMCA2IDIwIDggMjIgOCAyMiA0IDE0IDQgMTQgOCAxNiA4IDE2IDYgMjAgNiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+PHJlY3QgeD0iNCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPjxwb2x5Z29uIHBvaW50cz0iMTIgMTYgMTIgMTggMTAgMTgg'@; put 'MTAgMTQgOCAxNCA4IDE4IDYgMTggNiAyMCA0IDIwIDQgMjIgOCAyMiA4IDIwIDEwIDIwIDEwIDIyIDEyIDIyIDEyIDIwIDE0IDIwIDE0IDE2IDEyIDE2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCAxNiAyMiAxNiAy'@; put 'MiAxOCAyNCAxOCAyNCAxNiAyNiAxNiAyNiAxNCAyMiAxNCAyMiAxMCAyMCAxMCAyMCAxMiAxOCAxMiAxOCAxNCAyMCAxNCAyMCAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiAvPjxwb2x5Z29uIHBvaW50cz0iMTggMzAgMTQgMzAgMTQgMzIgMjIgMzIg'@; put 'MjIgMzAgMjAgMzAgMjAgMjggMTggMjggMTggMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgLz48cG9seWdvbiBwb2ludHM9IjIyIDIwIDIyIDE4IDIwIDE4IDIwIDE2IDE4IDE2IDE4IDE4IDE2IDE4IDE2IDIwIDE4IDIwIDE4IDIyIDIwIDIyIDIwIDIw'@; put 'IDIyIDIwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIC8+PHJlY3QgeD0iMzAiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTQiIC8+PHJlY3QgeD0iMjIiIHk9IjIwIiB3aWR0'@; put 'aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTUiIC8+PHBvbHlnb24gcG9pbnRzPSIzMCAxNCAyOCAxNCAyOCAxNiAyNiAxNiAyNiAxOCAyOCAxOCAyOCAyMCAzMCAyMCAzMCAxOCAzMiAxOCAzMiAxNiAzMCAxNiAzMCAxNCIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE2IiAvPjxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE3IiAvPjxwb2x5Z29uIHBvaW50cz0iMTQgMjggMTYgMjggMTYgMjYgMTgg'@; put 'MjYgMTggMjQgMTYgMjQgMTYgMjAgMTQgMjAgMTQgMjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIgLz4nKSxsLkNsclNoYXBlVXNiPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC4yOSwxMS40YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxYTIu'@; put 'ODksMi44OSwwLDAsMCwyLjc1LDIuMDksMywzLDAsMCwwLDAtNS45MSwyLjksMi45LDAsMCwwLTIuNjcsMS44MkgxNS41N2EzLjQ5LDMuNDksMCwwLDAtMywxLjY2bC0zLDQuODNoMi4zNlptNS0yLjk0QTEuMzYsMS4zNiwwLDEsMSwxOCw5LjgxLDEuMzIsMS4zMiwwLDAsMSwxOS4zMyw4LjQ2'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTM0LjMsMTcuMzdsLTYuMTEtMy42NmEuNy43LDAsMCwwLS43LDAsLjcxLjcxLDAsMCwwLS4zNi42MVYxN0g2LjkyYTIuMzMsMi4zMywwLDAsMSwuMzIsMS4xNywyLjQ3LDIuNDcsMCwxLDEt'@; put 'Mi40Ny0yLjQ2LDIuMzcsMi4zNywwLDAsMSwxLjE1LjNsLjkzLTEuNzZBNC40NCw0LjQ0LDAsMSwwLDkuMTUsMTloMy41OGw0LjE3LDYuNjVhMy40OSwzLjQ5LDAsMCwwLDMsMS42NmgxLjY2djEuMjhhLjc5Ljc5LDAsMCwwLC44Ljc5aDQuNDlhLjc5Ljc5LDAsMCwwLC44LS43OXYtNC40YS43'@; put 'OS43OSwwLDAsMC0uOC0uOEgyMi4zNGEuOC44LDAsMCwwLS44Ljh2MS4xMkgxOS44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTUuMDksMTloMTJ2Mi42NmEuNjkuNjksMCwwLDAsLjM2LjYxLjY3LjY3LDAsMCwwLC4zNC4wOS42NS42NSwwLDAsMCwuMzYtLjFsNi4xMS0zLjY2YS42OS42'@; put 'OSwwLDAsMCwuMzQtLjZBLjcxLjcxLDAsMCwwLDM0LjMsMTcuMzdaTTIzLjE0LDI1SDI2djIuOEgyMy4xNFptNS4zOS00LjU2VjE1LjU1bDQsMi40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zNC43MiwxNy4zN2wtNS41MS0zLjMx'@; put 'YS43MS43MSwwLDAsMC0xLjA3LjZWMTdIMTEuNzdsMy41Mi01LjZhMS40OSwxLjQ5LDAsMCwxLDEuMjgtLjcyaDEuNjRhMi40MSwyLjQxLDAsMCwwLDIuMjUsMS42MSwyLjQ4LDIuNDgsMCwwLDAsMC00Ljk1LDIuMzgsMi4zOCwwLDAsMC0yLjEzLDEuMzRIMTYuNTdhMy40OSwzLjQ5LDAsMCww'@; put 'LTMsMS42Nkw5LjQxLDE3SDhhMy40NiwzLjQ2LDAsMSwwLC4wOCwyaDUuNjRsNC4xNSw2LjYyYTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMi41OXYuOTJoNC40VjIzLjhoLTQuNHYxLjQ4SDIwLjg4YTEuNTEsMS41MSwwLDAsMS0xLjI4LS43MkwxNi4xMSwxOWgxMnYyLjI4YS43LjcsMCwwLDAs'@; put 'LjM2LjYxLjcyLjcyLDAsMCwwLC4zNC4wOS42NS42NSwwLDAsMCwuMzYtLjFsNS41Mi0zLjMxYS43LjcsMCwwLDAsMC0xLjJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVSYWRhcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIs'@; put 'MThjMCw3LjctNi4zLDE0LTE0LDE0Yy03LjcsMC0xNC02LjMtMTQtMTRDNCwxMC42LDkuNyw0LjUsMTcuMSw0djMuN2MtNS43LDAuNS05LjksNS41LTkuNCwxMS4yczUuNSw5LjksMTEuMiw5LjRcblx0YzUuMy0wLjUsOS40LTQuOSw5LjQtMTAuM2gtMmMwLDQuNi0zLjcsOC4zLTguMyw4LjNz'@; put 'LTguMy0zLjctOC4zLTguM2MwLTQuMiwzLjEtNy44LDcuMy04LjN2NC40Yy0xLjgsMC40LTMuMSwyLTMuMSwzLjlcblx0YzAsMi4yLDEuOCw0LDQsNHM0LTEuOCw0LTRjMC0xLjgtMS4zLTMuNC0zLTMuOFYyLjFDMTguNiwyLDE4LjMsMiwxOCwyQzkuMiwyLDIsOS4yLDIsMThzNy4yLDE2LDE2'@; put 'LDE2czE2LTcuMiwxNi0xNkgzMnogTTIwLDE4XG5cdGMwLDEuMS0wLjksMi0yLDJzLTItMC45LTItMnMwLjktMiwyLTJTMjAsMTYuOSwyMCwxOHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMiwxOGMwLDcuNy02LjIsMTQtMTQsMTRT'@; put 'NCwyNS44LDQsMThjMC03LjQsNS43LTEzLjUsMTMuMS0xNHYzLjdjLTUuNywwLjUtOS44LDUuNS05LjMsMTEuMnM1LjUsOS44LDExLjIsOS4zXG5cdFx0YzUuMy0wLjUsOS4zLTQuOSw5LjMtMTAuMmgtMmMwLDQuNi0zLjcsOC4zLTguMyw4LjNTOS43LDIyLjYsOS43LDE4YzAtNC4yLDMuMi03'@; put 'LjgsNy4zLTguMnY0LjRjLTIuMSwwLjYtMy40LDIuNy0yLjksNC45XG5cdFx0YzAuNiwyLjEsMi43LDMuNCw0LjksMi45YzIuMS0wLjYsMy40LTIuNywyLjktNC45Yy0wLjQtMS40LTEuNS0yLjUtMi45LTIuOVYyYy0wLjQsMC0wLjcsMC0xLjEsMGMtOC44LDAtMTYsNy4yLTE2LDE2XG5cdFx0'@; put 'YzAsOC44LDcuMiwxNiwxNiwxNnMxNi03LjIsMTYtMTZjMCwwLDAsMCwwLDBIMzJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVJbmR1Y3Rvcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuMzEsMjUuODFjLTEuNzUsMC0zLTIu'@; put 'NDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDBBMTIuNzksMTIuNzksMCwwLDEsMjEsMTkuNzZjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuNzksMTIuNzksMCwwLDEsMS43Mi02LjcsMi41NywyLjU3LDAsMCwwLTMuNzksMCwx'@; put 'Mi43OSwxMi43OSwwLDAsMSwxLjcyLDYuN2MwLDMuNTYtMS4yMyw2LTMsNnMtMy0yLjQ5LTMtNmExMi44OCwxMi44OCwwLDAsMSwxLjcxLTYuNywyLjcsMi43LDAsMCwwLTEuODktLjg3QzcuMSwxMi4xOSw1LjY5LDEzLjcsNSwxNmwtLjIzLjdIMmExLDEsMCwwLDEsMC0ySDMuMjljMS4xLTIu'@; put 'ODMsMy4wNi00LjU1LDUuMjQtNC41NWE0LjY3LDQuNjcsMCwwLDEsMy4xNiwxLjMyLDQuNjIsNC42MiwwLDAsMSwzLjE1LTEuMzJBNC42NSw0LjY1LDAsMCwxLDE4LDExLjUxYTQuNDMsNC40MywwLDAsMSw2LjMxLDAsNC42Nyw0LjY3LDAsMCwxLDMuMTYtMS4zMmMyLjE4LDAsNC4xNCwxLjcy'@; put 'LDUuMjQsNC41NUgzNGExLDEsMCwwLDEsMCwySDMxLjI4bC0uMjMtLjdjLS43NC0yLjM0LTIuMTUtMy44NS0zLjU4LTMuODVhMi43LDIuNywwLDAsMC0xLjg5Ljg3LDEyLjg4LDEyLjg4LDAsMCwxLDEuNzEsNi43QzI3LjI5LDIzLjMyLDI2LjA3LDI1LjgxLDI0LjMxLDI1LjgxWk0xOCwxNC45'@; put 'M2ExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwxOCwxNC45M1ptNi4zMSwwYTExLjcxLDExLjcxLDAsMCwwLTEsNC44M2MwLDIuNTQuNjYsMy43NSwxLDQsLjMyLS4yNywxLTEuNDgsMS00QTEx'@; put 'LjcxLDExLjcxLDAsMCwwLDI0LjMxLDE0LjkzWm0tMTIuNjIsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwxMS42OSwxNC45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVSZXNpc3Rvcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuNDMsMjYuMzRoMEExLjQ3LDEuNDcsMCwwLDEsMjgsMjUuMjJMMjQuODYsMTMuMTUsMjEuNzQsMjUuMjJhMS40OSwxLjQ5LDAsMCwxLTEuNDUsMS4xMmgwYTEuNDksMS40OSww'@; put 'LDAsMS0xLjQ2LTEuMTJMMTUuNzEsMTMuMTUsMTIuNiwyNS4yMmExLjUxLDEuNTEsMCwwLDEtMi45MSwwTDYuNTcsMTMuMTUsNS4yMiwxOC4zN0gyYTEsMSwwLDAsMSwwLTJIMy42N2wxLjQ1LTUuNTlBMS40OCwxLjQ4LDAsMCwxLDYuNTcsOS42NmgwQTEuNDcsMS40NywwLDAsMSw4LDEwLjc4'@; put 'bDMuMTIsMTIuMDcsMy4xMi0xMi4wN2ExLjQ5LDEuNDksMCwwLDEsMS40NS0xLjEyaDBhMS40OSwxLjQ5LDAsMCwxLDEuNDYsMS4xMmwzLjEyLDEyLjA3LDMuMTItMTIuMDdhMS41LDEuNSwwLDAsMSwyLjksMGwzLjEyLDEyLjA3LDEuMzUtNS4yMkgzNGExLDEsMCwwLDEsMCwySDMyLjMzbC0x'@; put 'LjQ1LDUuNTlBMS40OCwxLjQ4LDAsMCwxLDI5LjQzLDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZUNhcGFjaXRvcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUsMzQuMDZhMSwxLDAsMCwxLTEtMVYzLjE1YTEs'@; put 'MSwwLDEsMSwyLDBWMzMuMDZBMSwxLDAsMCwxLDE1LDM0LjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWExLDEsMCwxLDEsMiwwVjMzLjA2QTEsMSwwLDAsMSwyMSwzNC4wNloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC40NiwxOUgzYTEsMSwwLDAsMSwwLTJIMTQuNDZhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMywxOUgyMS41'@; put 'NGExLDEsMCwwLDEsMC0ySDMzYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxsLkNsclNoYXBlU3F1aWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDdhMSwxLDAsMCwxLTEtMVYzLjE5YTEsMSwwLDAsMSwyLDBW'@; put 'NkExLDEsMCwwLDEsMTgsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwzNGExLDEsMCwwLDEtMS0xVjMwYTEsMSwwLDAsMSwyLDB2M0ExLDEsMCwwLDEsMTgsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMiIgLz48cGF0aCBkPSJNNy40MSwxOGwxLjc4LTEuNzdhMSwxLDAsMSwwLTEuNDItMS40Mkw2LDE2LjU5LDQuMjMsMTQuODFhMSwxLDAsMSwwLTEuNDIsMS40Mkw0LjU5LDE4LDIuODEsMTkuNzdhMSwxLDAsMCwwLDAsMS40MiwxLDEsMCwwLDAsLjcxLjI5LDEsMSwwLDAsMCwuNzEt'@; put 'LjI5TDYsMTkuNDFsMS43NywxLjc4YTEsMSwwLDAsMCwxLjQyLDAsMSwxLDAsMCwwLDAtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik02LDEzLjc2bC4zNi0uMzZhMywzLDAsMCwxLDIuMTEtLjg4LDExLDExLDAsMCwxLDE5LDAs'@; put 'MywzLDAsMCwxLDIuMTIuODhsLjM2LjM2LjItLjJhMTMsMTMsMCwwLDAtMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMwLDIyLjI0bC0uMzYuMzZhMywzLDAsMCwxLTIuMTIuODgsMTEsMTEsMCwwLDEtMTksMCwzLDMsMCww'@; put 'LDEtMi4xMi0uODhMNiwyMi4yNGwtLjIuMmExMywxMywwLDAsMCwyNC40LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDEsMThsMS43OC0xLjc3YTEsMSwwLDAsMC0xLjQyLTEuNDJMMzAsMTYuNTlsLTEuNzctMS43OGExLDEs'@; put 'MCwxLDAtMS40MiwxLjQyTDI4LjU5LDE4bC0xLjc4LDEuNzdhMSwxLDAsMCwwLDAsMS40MiwxLDEsMCwwLDAsLjcxLjI5LDEsMSwwLDAsMCwuNzEtLjI5TDMwLDE5LjQxbDEuNzcsMS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxsLkNsclNoYXBlSG9zdEdyb3VwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMS4wOCwzNGgtMTRBMS4wOCwxLjA4LDAsMCwxLDYsMzNWMTJhMS4wOCwxLjA4LDAsMCwxLDEuMDgtMS4wOGgxNEExLjA4LDEuMDgsMCwwLDEsMjIuMTYsMTJW'@; put 'MzNBMS4wOCwxLjA4LDAsMCwxLDIxLjA4LDM0Wk04LjE2LDMxLjg4SDIwVjEzSDguMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxyZWN0IHg9IjEwLjA4IiB5PSIxNC45NiIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI2LjEsMjcuODFoLTJWOWgtMTJWN2gxM2ExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG48cGF0aCBkPSJNMzAuMDgsMjNoLTJWNWgtMTFWM2gxMmExLDEsMCww'@; put 'LDEsMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHJlY3QgeD0iMTMuMDgiIHk9IjI3Ljg4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyLjE2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cblxuPHBhdGggY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE1LjA4LDMxIEwxLjA4LDMxIEMwLjUxMzQyNzE5NywzMS4wMDE1NTY0IDAuMDQxOTY2Mzc2NSwzMC41NjUwMTg2IDAsMzAgTDAsOSBDMCw4LjQwMzUzMjQ3IDAuNDgzNTMyNDcsNy45MiAxLjA4LDcuOTIgTDE1LjA4LDcuOTIg'@; put 'QzE1LjY3NjQ2NzUsNy45MiAxNi4xNiw4LjQwMzUzMjQ3IDE2LjE2LDkgTDE2LjE2LDMwIEMxNi4xMTgwMzM2LDMwLjU2NTAxODYgMTUuNjQ2NTcyOCwzMS4wMDE1NTY0IDE1LjA4LDMxIFogTTQuMDgsMTEuOTYgTDQuMDgsMTMuOTYgTDEyLjA4LDEzLjk2IEwxMi4wOCwxMS45NiBMNC4wOCwx'@; put 'MS45NiBaIE03LjA4LDI0Ljg4IEw3LjA4LDI3LjA0IEw5LjA4LDI3LjA0IEw5LjA4LDI0Ljg4IEw3LjA4LDI0Ljg4IFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjAuMSwyNC44MSBMMTguMSwyNC44MSBMMTguMSw2IEw2LjEsNiBMNi4x'@; put 'LDQgTDE5LjEsNCBDMTkuNjUyMjg0Nyw0IDIwLjEsNC40NDc3MTUyNSAyMC4xLDUgTDIwLjEsMjQuODEgWiIgLz5cbjxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNC4wOCwyMCBMMjIuMDgsMjAgTDIyLjA4LDIgTDExLjA4LDIgTDExLjA4LDAgTDIz'@; put 'LjA4LDAgQzIzLjYzMjI4NDcsMCAyNC4wOCwwLjQ0NzcxNTI1IDI0LjA4LDEgTDI0LjA4LDIwIFoiIC8+JyksbC5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjA2LDMwYTEsMSwwLDAsMS0xLTFWOGgtMmExLDEsMCwwLDEsMC0yaDRWMjlBMSwx'@; put 'LDAsMCwxLDYuMDYsMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzAuMDYsMjdoLTI1VjloMjVhMywzLDAsMCwxLDMsM1YyNEEzLDMsMCwwLDEsMzAuMDYsMjdabS0yMy0yaDIzYTEsMSwwLDAsMCwxLTFWMTJhMSwxLDAsMCww'@; put 'LTEtMWgtMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cmVjdCB4PSIyMi4wNiIgeT0iMjAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjIyLjA2'@; put 'IiB5PSIxNCIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTE5LjA2LDIyaC04VjIwaDdWMTRoMnY3QTEsMSwwLDAsMSwxOS4wNiwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC01Ii8+JyksbC5DbHJTaGFwZU5vZGVHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNTMsMjEuNThsLTQuOTQtMi44M1YxMy4wOWExLDEsMCwwLDAtLjUxLS44N0wyMi42NCw5LjFhMSwxLDAsMCwwLTEsMEwxNi4yLDEyLjIyYTEsMSwwLDAsMC0uNTEuODd2NS42'@; put 'NmwtNC45NCwyLjgzYTEsMSwwLDAsMC0uNS44N3Y2LjI0YTEsMSwwLDAsMCwuNS44Nmw1LjQ1LDMuMTJhMSwxLDAsMCwwLDEsMGw0Ljk1LTIuODMsNC45NSwyLjgzYTEsMSwwLDAsMCwuNS4xNCwxLDEsMCwwLDAsLjQ5LS4xNGw1LjQ1LTMuMTJhMSwxLDAsMCwwLC41LS44NlYyMi40NUExLDEs'@; put 'MCwwLDAsMzMuNTMsMjEuNThaTTIyLjE0LDExLjEybDQuNDUsMi41NVYxOWwtNC40NiwyLjU2LTQuNDQtMi42VjEzLjY3Wk0xNi42OSwzMC42NWwtNC40NC0yLjU0VjIzbDQuNjgtMi42OCw0LjQsMi41N1YyOFpNMzIsMjguMTFsLTQuNDQsMi41NEwyMi45MywyOFYyMi45M2w0LjQ2LTIuNTdM'@; put 'MzIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNywyNy40M2ExLDEsMCwwLDEtMS0xVjE5LjlBMSwxLDAsMCwxLDYuNSwxOWw0Ljk1LTIuODNWMTAuNTRhMSwxLDAsMCwxLC41LS44N2w1LjIxLTNhMSwxLDAsMCwxLDEuMzcu'@; put 'MzcsMSwxLDAsMCwxLS4zOCwxLjM3bC00LjcsMi42OHY1LjY2YTEsMSwwLDAsMS0uNTEuODdMOCwyMC40OHY1Ljk1QTEsMSwwLDAsMSw3LDI3LjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMsMjUuMDVhMSwxLDAsMCwxLTEt'@; put 'MVYxNy41M2ExLDEsMCwwLDEsLjUtLjg2bDUtMi44NFY4LjE3QTEsMSwwLDAsMSw4LDcuMzFsNS4yNS0zYTEsMSwwLDAsMSwxLDEuNzRMOS40NSw4Ljc1djUuNjZhMSwxLDAsMCwxLS41MS44N0w0LDE4LjExdjUuOTRBMSwxLDAsMCwxLDMsMjUuMDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLGwuQ2xyU2hhcGVOb2Rlcz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTAuNSwzNC4yOSwyLDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk00LDI4LjIzLDEwLjUsMzIsMTcsMjguMjNWMjAuNzRMMTAuNSwxNyw0LDIwLjc0WiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTI1LjUsMzQuMjksMTcsMjkuMzlWMTkuNThsOC41LTQuOSw4LjUsNC45djkuODFaTTE5LDI4LjIzLDI1LjUsMzIsMzIsMjguMjNWMjAuNzRMMjUuNSwxNywxOSwyMC43NFoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xOCwyMS4zMmwtOC41LTQuOVY2LjYxTDE4LDEuNzFsOC41LDQuOXY5LjgxWm0tNi41LTYuMDZMMTgsMTlsNi41LTMuNzVWNy43N0wxOCw0LDExLjUsNy43N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0zIi8+JyksbC5DbHJTaGFwZU5hbWVzcGFjZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsNC4xOGExLDEsMCwxLDAtMSwxLjczbDYsMy40N1YyNi42MmwtNiwzLjQ3YTEsMSwwLDAsMC0uMzcsMS4zNiwxLDEsMCwwLDAsMS4zNy4zN2w3LTQuMDVWOC4y'@; put 'M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik05LjY4LDI5LjksNCwyNi42MlY5LjM4TDkuNjgsNi4xYTEsMSwwLDEsMC0xLTEuNzNMMiw4LjIzVjI3Ljc3bDYuNjgsMy44NmExLDEsMCwwLDAsMS4zNy0uMzdBMSwxLDAsMCwwLDku'@; put 'NjgsMjkuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMCwxMlYyNGEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJWMTJhMiwyLDAsMCwwLTItMkgxMkEyLDIsMCwwLDAsMTAsMTJabTcsMHY1SDEyVjEyWm0tNSw3aDV2'@; put 'NUgxMlptNyw1VjE5aDV2NVptNS03SDE5VjEyaDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLGwuQ2xyU2hhcGVOb2RlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwzMC42Niw3LDI0LjMzVjExLjY3TDE4LDUuMzRsMTEsNi4zM1YyNC4z'@; put 'M1pNOSwyMy4xOGw5LDUuMTcsOS01LjE3VjEyLjgyTDE4LDcuNjUsOSwxMi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksbC5DbHJTaGFwZVBvZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYsMzJIMTBhNiw2LDAsMCwxLTYtNlYxMGE2'@; put 'LDYsMCwwLDEsNi02SDI2YTYsNiwwLDAsMSw2LDZWMjZBNiw2LDAsMCwxLDI2LDMyWk0xMCw2YTQsNCwwLDAsMC00LDRWMjZhNCw0LDAsMCwwLDQsNEgyNmE0LDQsMCwwLDAsNC00VjEwYTQsNCwwLDAsMC00LTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv'@; put 'PlxuICA8cGF0aCBkPSJNMjYuNTYsMTVIMTUuNDRBMS40MywxLjQzLDAsMCwwLDE0LDE2LjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDE1LjQ0LDI2SDI2LjU2QTEuNDMsMS40MywwLDAsMCwyOCwyNC41NlYxNi40NEExLjQzLDEuNDMsMCwwLDAsMjYuNTYsMTVaTTI2LDI0SDE2VjE3SDI2WiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTEyLjQsMTlIMTBWMTJIMjB2MS40aDJ2LTJBMS40MywxLjQzLDAsMCwwLDIwLjU2LDEwSDkuNDRBMS40MywxLjQzLDAsMCwwLDgsMTEuNDR2OC4xMkExLjQzLDEuNDMsMCwwLDAsOS40NCwy'@; put 'MWgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxsLkNsckNvbnRyb2xMdW49KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik04LDI0LjU5YTI1LjUsMjUuNSwwLDAsMCwyLjc1LjU5bDEuMjEtMS40MWEyNC4xMywyNC4xMywwLDAsMS00LS44'@; put 'M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik02LDI3LjUzVjEwLjNjMi45LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhzOS4xLS40NSwxMi0xLjg4djUuMTFjLS45MS44Mi01LDIuMTMtMTIsMi4xM0EzNC44MSwzNC44MSwwLDAsMSw4'@; put 'LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40NiwwLDkuMTMtLjQ1LDEyLTEuOTF2My4yM2gyVjhoMHMwLDAsMC0uMDdjMC0zLjM1LTguOC00LjI1LTE0LTQuMjVTNCw0LjU4LDQsNy45M3YxOS42YzAsMiwzLjE3LDMuMTQsNi44MywzLjcyTDguMzgsMjguNjhDNywyOC4y'@; put 'OCw2LjEzLDI3Ljg0LDYsMjcuNTNaTTE4LDUuNjhjNy4xNSwwLDExLjUzLDEuNDQsMTIsMi4yNS0uNDYuODEtNC44NCwyLjI1LTEyLDIuMjVTNi4zMSw4LjY5LDYsOEM2LjMxLDcuMTgsMTAuNzEsNS42OCwxOCw1LjY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTIiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAsMCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuXG4gIDxwYXRoIGQ9Ik04LDI0LjU5YTI1LjUsMjUuNSwwLDAsMCwyLjc1'@; put 'LjU5bDEuMjEtMS40MWEyNC4xMywyNC4xMywwLDAsMS00LS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjJIMTUuNDZsLTUuNDEsNi4zMUwxNS40OSwzNGgxNi42YTIsMiwwLDAsMCwy'@; put 'LTJWMjMuOTNBMiwyLDAsMCwwLDMyLjA5LDIyWm0wLDEwSDE2LjM0bC0zLjU5LTMuNzdMMTYuMzgsMjRIMzIuMDl2OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEs'@; put 'MUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE4LDE3LjU0QTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2'@; put 'LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTMuMjJhNy4zMiw3LjMyLDAsMCwxLTIsLjI4djEuOTFDMjkuMDksMTYuMjMsMjUsMTcuNTQsMTgsMTcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHBhdGggZD0i'@; put 'TTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGE0Ny42Niw0Ny42NiwwLDAsMCw3LjA5LS41Miw3LjQ1LDcuNDUsMCwwLDEtMS41MS0xLjgsNDcuNCw0Ny40LDAsMCwxLTUuNTguMzJDMTAuNzEsMTAuMTgsNi4zMSw4LjY5LDYsOGMuMzItLjgsNC43Mi0yLjMsMTItMi4z'@; put 'LDEuNjYsMCwzLjE2LjA4LDQuNTEuMjFhNy41Niw3LjU2LDAsMCwxLC4yOS0yYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4yLDAtMTQsLjktMTQsNC4yNXYxOS42YzAsMiwzLjE3LDMuMTQsNi44MywzLjcyTDguMzgsMjguNjhDNywyOC4yOCw2LjEzLDI3Ljg0LDYsMjcuNTNaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxu'@; put 'ICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIi8+PHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAsMCwzMi4w'@; put 'OSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjda'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4aC41OWEzLjU5LDMuNTksMCwwLDEsLjMyLTJIMThDMTAuNzEsMTAuMTgsNi4zMSw4'@; put 'LjY5LDYsOGMuMzItLjgsNC43Mi0yLjMsMTItMi4zLDEuMjIsMCwyLjM1LjA1LDMuNDEuMTJsMS4xLTEuOTFjLTEuNi0uMTUtMy4xNy0uMjEtNC41MS0uMjEtNS4yLDAtMTQsLjktMTQsNC4yNXYxOS42YzAsMiwzLjE3LDMuMTQsNi44MywzLjcyTDguMzgsMjguNjhDNywyOC4yOCw2LjEzLDI3'@; put 'Ljg0LDYsMjcuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNOCwxNi4zM1YxOGE0MC44Niw0MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlYxNS40SDMw'@; put 'Yy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEsOCwxNi4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCww'@; put 'LDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cblxuICA8cGF0'@; put 'aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAs'@; put 'MSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgyVjEwLjcyYy0yLjIxLDMuMzYtMTAuNDksMy40Ni0xNCwzLjQ2QTQyLjEyLDQyLjEyLDAsMCwxLDgsMTMuMTFWMTFhNDAuNTksNDAuNTksMCwwLDAsMTAsMS4xNGM1LDAsMTMuMjgtLjgz'@; put 'LDE0LTMuODhWNy44M2gwYy0uMTktMy4yNy04Ljg0LTQuMTUtMTQtNC4xNVM0LjIxLDQuNTYsNCw3LjgzSDR2MTkuN2MwLDIuMTYsMy42NCwzLjMsNy42MywzLjg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEy'@; put 'NS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDksMzJhMSwxLDAsMCwxLTEsMUgxNS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0yIi8+XG5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIxSDMyVjE3LjMyYy0xLjks'@; put 'Mi45My0xMC40NiwzLjMtMTQsMy4zQTQyLjQzLDQyLjQzLDAsMCwxLDgsMTkuNTZWMTcuODhBNDAuNTksNDAuNTksMCwwLDAsMTgsMTljNSwwLDEzLjItLjgyLDE0LTMuODJ2LTJhNy4zNCw3LjM0LDAsMCwxLTQuMTIsMCwzOS40NywzOS40NywwLDAsMS05Ljg4LDFBNDIuMTIsNDIuMTIsMCww'@; put 'LDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0LDQ3Ljc2LDQ3Ljc2LDAsMCwwLDcuMDktLjUyQTcuNDUsNy40NSwwLDAsMSwyMi44LDMuOTJjLTEuNy0uMTctMy4zOC0uMjQtNC44LS4yNC01LjE0LDAtMTMuNzkuODgtMTQsNC4xNUg0djE5LjdjMCwyLjE2LDMuNjQsMy4z'@; put 'LDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRhMjUuNzksMjUuNzksMCwwLDAsMy40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAs'@; put 'MS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJh'@; put 'ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5c'@; put 'biAgPHBhdGggZD0iTTMyLjA5LDIxSDMyVjE3LjMyYy0xLjksMi45My0xMC40NiwzLjMtMTQsMy4zQTQyLjQzLDQyLjQzLDAsMCwxLDgsMTkuNTZWMTcuODhBNDAuNTksNDAuNTksMCwwLDAsMTgsMTljNC44NSwwLDEyLjgtLjc5LDEzLjkxLTMuNjJIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTIu'@; put 'NzMtMS4yM0gxOEE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRoLjU5YTMuNjEsMy42MSwwLDAsMSwuNDYtMi4yOWwzLjQ2LTZjLTEuNi0uMTUtMy4xNy0uMjEtNC41MS0uMjEtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4x'@; put 'NiwzLjY0LDMuMyw3LjYzLDMuODRsMi44NCwzLC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwz'@; put 'MmExLDEsMCwwLDEtMSwxSDE1LjkyTDExLjQsMjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEu'@; put 'MjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcp'@; put 'LGwuQ2xyU2hhcGVNZWRpYUNoYW5nZXI9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0yVjZB'@; put 'MiwyLDAsMCwwLDMwLDRaTTYsMzBWNkgzMFYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI0IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMjIiIHdpZHRoPSIyIiBo'@; put 'ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0yNy4yMiwxMEgyMHY0YS44LjgsMCwxLDAsMS41OSwwVjExLjZoNS42M2EuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTUiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE0IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxOCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBo'@; put 'ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjI2IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiLz5cblxuICA8cmVjdCB4PSIy'@; put 'MCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMjIiIHdpZHRo'@; put 'PSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE0IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4'@; put 'LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtOC0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjI2IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTIwLDE0YS44LjgsMCwxLDAsMS41'@; put 'OSwwVjExLjZIMjVBNy43NCw3Ljc0LDAsMCwxLDIzLjY2LDEwSDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDZWNkgyMi41VjZhNy4zNyw3LjM3LDAsMCwxLC4yOC0ySDZB'@; put 'MiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuMzcsNy4zNywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMTEtLWJhZGdlZCIvPlxuICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRo'@; put 'PSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjI0IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMjIiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtNS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0'@; put 'IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtOC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMwLDE1LjRWMzBINlY2SDIx'@; put 'LjI3bDEuMTgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEwLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMy'@; put 'SDMwYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFpNMTcsMjhIOC44MVYyNkgxN1ptMC00SDguODFWMjJIMTdabTAtNEg4LjgxVjE4SDE3Wm0wLTRIOC44MVYxNEgxN1ptMC00SDguODFWMTBIMTdaTTIyLDI0SDIwVjIyaDJabTAtNEgyMFYxOGgyWm00LDRIMjRWMjJoMlptMC00SDI0'@; put 'VjE4aDJabTAtNkgyMFYxMGg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS00LTEuMTZWMTRIMjBWMTBoMy42NkE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YTcuMzcsNy4zNywwLDAsMSwuMjgt'@; put 'Mkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVpNMTcsMjhIOC44MVYyNkgxN1ptMC00SDguODFWMjJI'@; put 'MTdabTAtNEg4LjgxVjE4SDE3Wm0wLTRIOC44MVYxNEgxN1ptMC00SDguODFWMTBIMTdaTTIyLDI0SDIwVjIyaDJabTAtNEgyMFYxOGgyWm00LDRIMjRWMjJoMlptMC00SDI0VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxu'@; put 'ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTIyLjIzLDE1LjRhMy42OCwzLjY4LDAsMCwxLTMuMTgtNS41MUwyMi40NSw0SDZBMiwy'@; put 'LDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRI'@; put 'MTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5'@; put 'LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxl'@; put 'cnQiLz5cbiAgJyksbC5DbHJTaGFwZVRhcGVEcml2ZT0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk00LDI4VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTMuMzMsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTMsNC41MkE0LjUzLDQuNTMsMCwwLDAsMTMuMzMsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45My0yLjkyQTIuOTIsMi45MiwwLDAsMSwxMy4z'@; put 'MywyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMy42MiwxMy4zNWE0LjUyLDQuNTIsMCwxLDAsNC41Miw0LjUyQTQuNTMsNC41MywwLDAsMCwyMy42MiwxMy4zNVptMCw3LjQ0YTIuOTIsMi45MiwwLDEsMSwyLjkyLTIu'@; put 'OTJBMi45MiwyLjkyLDAsMCwxLDIzLjYyLDIwLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyOS4zNFYxMEg3QTEsMSwwLDAsMCw2LDExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4LjgxLDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAsMSwxNi4yNiwxNy44N1oiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMTkuMSwxNy44N2E0LjUyLDQuNTIsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCwxOS4xLDE3Ljg3Wm03LjQ0LDBBMi45MiwyLjkyLDAsMSwxLDIzLjYyLDE1LDIu'@; put 'OTIsMi45MiwwLDAsMSwyNi41NCwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMzIsMTMuMjJWMjhINFY4SDIyLjc4YTcuMzcsNy4zNywwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhh'@; put 'MiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNjUsNy42NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNNiwxMVYyMy41NUg4VjEySDI1LjUxYTcuNjYs'@; put 'Ny42NiwwLDAsMS0xLjg1LTJIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik04LjgxLDE3Ljg3YTQuNTMsNC41MywwLDEsMCw0LjUyLTQuNTJBNC41Myw0LjUzLDAsMCwwLDguODEsMTcuODdabTcuNDUsMEEyLjkzLDIuOTMsMCwxLDEsMTMuMzMsMTUsMi45MywyLjkzLDAsMCwx'@; put 'LDE2LjI2LDE3Ljg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTcsMTBhMSwxLDAsMCwwLTEsMVYyMy41NUg4VjEySDE4LjU3QTMuNywzLjcsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOEg0VjhIMjAuMTRsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjIuMDksMTUuMzlhMy42NSwzLjY1LDAsMCwxLTEuOC0uNTUsNC41MSw0LjUxLDAsMSwwLDcuMTEuNTZIMjUuMTdhMi45MiwyLjkyLDAsMSwxLTMuMDgsMFoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCww'@; put 'LDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cblxuICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhB'@; put 'MiwyLDAsMCwwLDMyLDZaTTMwLDI0SDZWMTJIMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xMi4yMSwyM2E1LDUsMCwxLDAtNS01QTUsNSwwLDAsMCwxMi4yMSwyM1ptMC03YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDEyLjIxLDE2'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTMiLz5cblxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk'@; put 'Ii8+XG4gIDxwYXRoIGQ9Ik0yMy43OSwyM2E1LDUsMCwxLDAtNS01QTUsNSwwLDAsMCwyMy43OSwyM1ptMC03YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGgg'@; put 'ZD0iTTMwLDEzLjVWMjRINlYxMkgyNS41MWE3LjQ5LDcuNDksMCwwLDEtMy02SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTMtLWJhZGdlZCIvPlxuICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTcuMiwxOGE1LDUsMCwxLDAsNS01QTUsNSwwLDAs'@; put 'MCw3LjIsMThabTcsMGEyLDIsMCwxLDEtMi0yQTIsMiwwLDAsMSwxNC4yMiwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE4Ljc4LDE4YTUsNSwwLDEsMCw5LjI3LTIuNkgyMi4yM2EzLjcxLDMuNzEs'@; put 'MCwwLDEtMi4xNy0uNzFBNSw1LDAsMCwwLDE4Ljc4LDE4Wm01LTJhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMwVjI0SDZW'@; put 'MTJIMTguNTdhMy42NSwzLjY1LDAsMCwxLC40OC0yLjExTDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBh'@; put 'dGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt'@; put 'cGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcpLGwuQ2xyU2hhcGVBbmltYXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjE2LDMxLjcxYTQuNCw0LjQsMCwwLDEtNC42NC0xQTQuMzQsNC4zNCwwLDAsMSw0LjIzLDI3LjZhNC40MSw0LjQxLDAsMCwxLC4xOC0x'@; put 'LjIsMTEuNjEsMTEuNjEsMCwwLDEtMS0yLjU2LDYuNCw2LjQsMCwwLDAsOS4zMyw4LjYzQTExLjU1LDExLjU1LDAsMCwxLDEwLjE2LDMxLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjQxLDI3LjY4YTcuNjEsNy42MSww'@; put 'LDAsMS05LjA4LTEuMjYsNy41OCw3LjU4LDAsMCwxLTEuMjctOS4wNiwxNC4yNiwxNC4yNiwwLDAsMS0uMzctMi44NSw5LjU4LDkuNTgsMCwwLDAsLjIyLDEzLjMzLDkuNjMsOS42MywwLDAsMCwxMy4zNS4yMkExNC40NiwxNC40NiwwLDAsMSwxOC40MSwyNy42OFoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS42NiwyNi4yMWExMi4xLDEyLjEsMCwxLDEsOC41Ny0zLjU0aDBBMTIuMTEsMTIuMTEsMCwwLDEsMjEuNjYsMjYuMjFaTTIxLjY2LDRBMTAuMTEsMTAuMTEsMCwwLDAsMTEuNTQsMTQuMTFhMTAsMTAsMCwwLDAs'@; put 'Myw3LjE0LDEwLjEyLDEwLjEyLDAsMCwwLDE0LjMxLDBBMTAuMTEsMTAuMTEsMCwwLDAsMjEuNjYsNFptNy44NiwxOGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zLjUsMjMuNzdhNi40MSw2LjQxLDAsMCwwLDkuMzMs'@; put 'OC42N0ExMS42NSwxMS42NSwwLDAsMSwzLjUsMjMuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik03LjY4LDE0LjUzYTkuNiw5LjYsMCwwLDAsMTMuNCwxMy43QTE0LjExLDE0LjExLDAsMCwxLDcuNjgsMTQuNTNaIiBjbGFzcz0iY2xy'@; put 'LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS43OCwyQTEyLjEyLDEyLjEyLDAsMSwxLDkuNjYsMTQuMTUsMTIuMTIsMTIuMTIsMCwwLDEsMjEuNzgsMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICAnKSxsLkNsclNoYXBl'@; put 'Q2lDZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMuNTMsMTkuODFhNy40NSw3LjQ1LDAsMCwxLTEuNjUtLjE4LDEwLjQ4LDEwLjQ4LDAsMCwxLC43MiwyLjEzYy4zLDAsLjYxLDAsLjkzLDBhOS41Miw5LjUyLDAsMCwwLDMtLjQ5bC0uOTMtMS44MUE3LjY3LDcuNjcsMCwwLDEsMjMu'@; put 'NTMsMTkuODFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTguMzYsMTcuODcsMTgsMTcuNDlhNy40LDcuNCwwLDAsMS0yLjItNS45Miw3LjMxLDcuMzEsMCwwLDEsMS41NC00TDE3LjI2LDlBMSwxLDAsMCwwLDE4LjE3LDEwaC4w'@; put 'OWExLDEsMCwwLDAsMS0uOTFMMTkuNiw1YTEsMSwwLDAsMC0uMjktLjc5QTEsMSwwLDAsMCwxOC41Miw0bC00LjA5LjM1YTEsMSwwLDAsMCwuMTcsMmwxLjI5LS4xMWE5LjQ1LDkuNDUsMCwwLDAtMi4wNSw1LjMyLDkuMjgsOS4yOCwwLDAsMCwyLjY3LDcuMjZsLjMxLjM3YTcuMzMsNy4zMyww'@; put 'LDAsMSwyLjA2LDQuOTEsNy4zOSw3LjM5LDAsMCwxLS4yNiwyLjQ3bDEuOC45MWE4Ljc2LDguNzYsMCwwLDAsLjQ1LTMuNTFBOS4yOCw5LjI4LDAsMCwwLDE4LjM2LDE3Ljg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMyLjQs'@; put 'MTcuOTEsMzEuMTksMThBOS42NSw5LjY1LDAsMCwwLDIzLjUzLDIuNDVhOS4zMyw5LjMzLDAsMCwwLTMsLjQ5bC45MSwxLjhhNy42Nyw3LjY3LDAsMCwxLDkuNzYsNy4zOSw3LjU4LDcuNTgsMCwwLDEtMS42NSw0LjcybC4xLTEuNTRhMSwxLDAsMSwwLTItLjEzbC0uMjgsNC4wOGExLDEsMCww'@; put 'LDAsLjMxLjc4Ljk0Ljk0LDAsMCwwLC42OS4yOGguMWw0LjA4LS40MmExLDEsMCwwLDAsLjktMS4xQTEsMSwwLDAsMCwzMi40LDE3LjkxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTQuMDcsMjAuNDRoLjA4bDQuMDktLjM1YTEs'@; put 'MSwwLDEsMC0uMTctMmwtMS4zOS4xMmE3LjYzLDcuNjMsMCwwLDEsNC41Mi0xLjQ5LDcuOSw3LjksMCwwLDEsMS42My4xOCwxMC4yMywxMC4yMywwLDAsMS0uNzEtMi4xM2MtLjMsMC0uNjEsMC0uOTIsMGE5LjY2LDkuNjYsMCwwLDAtNS45LDJsLjEyLTEuMzFhMSwxLDAsMCwwLS45Mi0xLjA4'@; put 'LDEsMSwwLDAsMC0xLjA4LjkxbC0uMzUsNC4wOGExLDEsMCwwLDAsMSwxLjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTE4LjQyLDI4LjIzbC00LjA5LjI3YTEsMSwwLDAsMCwuMTMsMkwxNiwzMC4zOWE3LjcxLDcuNzEsMCww'@; put 'LDEtMTIuNTQtNiw3LjYsNy42LDAsMCwxLC4yOS0yTDIsMjEuNDZhOS41OSw5LjU5LDAsMCwwLS40NywyLjk1QTkuNyw5LjcsMCwwLDAsMTcuMTksMzJsLS4xMiwxLjE4YTEsMSwwLDAsMCwuODksMS4xaC4xMWExLDEsMCwwLDAsMS0uOWwuNDItNC4wNmExLDEsMCwwLDAtMS4wNi0xLjFaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPicpLGwuQ2xyU2hhcGVGaWxlU2hhcmUyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNSw0SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNS45MVYzMC4wOUExLjg5LDEuODksMCwwLDAsNy44MywzMkgyOC4xN0Ex'@; put 'Ljg3LDEuODcsMCwwLDAsMzAsMzAuMDlWOVpNMjQsNS43OCwyOC4yLDEwSDI0Wk04LDMwVjZIMjJ2Nmg2VjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIyLDIxLjgxYTIuMTEsMi4xMSwwLDAsMC0xLjQ0LjYybC01LjcyLTIu'@; put 'NjZ2LS40NGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4wNi0yLjk0aDBhMi4xNCwyLjE0LDAsMCwwLS42NCwxLjQ4di4yM2wtNS42NCwyLjY2YTIuMDgsMi4wOCwwLDEsMC0uMDgsMi45NWwuMDgtLjA4LDUuNjcsMi42NnYuM0EyLjA5LDIuMDksMCwxLDAsMjIsMjEuODRaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICBcbiAgPHBhdGggZD0iTTI1LDQuMDZINy44M0ExLjg5LDEuODksMCwwLDAsNiw2VjMwLjE1YTEuODksMS44OSwwLDAsMCwxLjgzLDEuOTFIMjguMTdBMS44NywxLjg3LDAsMCwwLDMwLDMwLjE1VjlaTTIyLDI2YTIuMDks'@; put 'Mi4wOSwwLDAsMS0yLjEtMi4wOHYtLjNMMTQuMjcsMjFsLS4wOC4wOGEyLjA4LDIuMDgsMCwxLDEsLjA4LTIuOTVsNS42NC0yLjY2di0uMjNhMi4xNCwyLjE0LDAsMCwxLC42NC0xLjQ4aDBhMi4wOCwyLjA4LDAsMSwxLS4wNiwyLjk0bC01LjY2LDIuNjV2LjQ0bDUuNzIsMi42NkEyLjExLDIu'@; put 'MTEsMCwwLDEsMjIsMjEuODFsMCwwQTIuMDksMi4wOSwwLDAsMSwyMiwyNlptMi0xNlY1Ljg0bDQuMiw0LjIyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGwuVGVjaG5vbG9neVNoYXBlcz17InJ1bGVyLXBlbmNpbCI6bC5DbHJTaGFwZVJ1bGVyUGVuY2ls'@; put 'LCJwaG9uZS1oYW5kc2V0IjpsLkNsclNoYXBlUGhvbmVIYW5kc2V0LCJuby13aWZpIjpsLkNsclNoYXBlTm9XaWZpLGluc3RhbGw6bC5DbHJTaGFwZUluc3RhbGwsdW5pbnN0YWxsOmwuQ2xyU2hhcGVVbmluc3RhbGwsbGF5ZXJzOmwuQ2xyU2hhcGVMYXllcnMsYmxvY2s6bC5DbHJTaGFwZUJs'@; put 'b2NrLCJibG9ja3MtZ3JvdXAiOmwuQ2xyU2hhcGVCbG9ja3NHcm91cCxidW5kbGU6bC5DbHJTaGFwZUJ1bmRsZSx3aWZpOmwuQ2xyU2hhcGVXaWZpLCJyYWNrLXNlcnZlciI6bC5DbHJTaGFwZVJhY2tTZXJ2ZXIsImhhcmQtZGlzayI6bC5DbHJTaGFwZUhhcmREaXNrLCJiYWNrdXAtcmVzdG9y'@; put 'ZSI6bC5DbHJTaGFwZUJhY2t1cFJlc3RvcmUsYmFja3VwOmwuQ2xyU2hhcGVCYWNrdXAsZGV2aWNlczpsLkNsclNoYXBlRGV2aWNlcyxrZXlib2FyZDpsLkNsclNoYXBlS2V5Ym9hcmQsbW91c2U6bC5DbHJTaGFwZU1vdXNlLGRhc2hib2FyZDpsLkNsclNoYXBlRGFzaGJvYXJkLGhvc3Q6bC5D'@; put 'bHJTaGFwZUhvc3Qsc3RvcmFnZTpsLkNsclNoYXBlU3RvcmFnZSxjbHVzdGVyOmwuQ2xyU2hhcGVDbHVzdGVyLGFwcGxpY2F0aW9uczpsLkNsclNoYXBlQXBwbGljYXRpb25zLGJ1aWxkaW5nOmwuQ2xyU2hhcGVCdWlsZGluZyxjcHU6bC5DbHJTaGFwZUNQVSxtZW1vcnk6bC5DbHJTaGFwZU1l'@; put 'bW9yeSwiZGF0YS1jbHVzdGVyIjpsLkNsclNoYXBlRGF0YUNsdXN0ZXIsInJlc291cmNlLXBvb2wiOmwuQ2xyU2hhcGVSZXNvdXJjZVBvb2wsc2hpZWxkOmwuQ2xyU2hhcGVTaGllbGQsInNoaWVsZC1jaGVjayI6bC5DbHJTaGFwZVNoaWVsZENoZWNrLCJzaGllbGQteCI6bC5DbHJTaGFwZVNo'@; put 'aWVsZFgsaW1wb3J0OmwuQ2xyU2hhcGVJbXBvcnQsZXhwb3J0OmwuQ2xyU2hhcGVFeHBvcnQsInVwbG9hZC1jbG91ZCI6bC5DbHJTaGFwZVVwbG9hZENsb3VkLCJkb3dubG9hZC1jbG91ZCI6bC5DbHJTaGFwZURvd25sb2FkQ2xvdWQscGx1Z2luOmwuQ2xyU2hhcGVQbHVnaW4sZmxvcHB5Omwu'@; put 'Q2xyU2hhcGVGbG9wcHksY29tcHV0ZXI6bC5DbHJTaGFwZUNvbXB1dGVyLGRpc3BsYXk6bC5DbHJTaGFwZURpc3BsYXksdGVybWluYWw6bC5DbHJTaGFwZVRlcm1pbmFsLGNvZGU6bC5DbHJTaGFwZUNvZGUsYXBwbGljYXRpb246bC5DbHJTaGFwZUFwcGxpY2F0aW9uLGJhdHRlcnk6bC5DbHJT'@; put 'aGFwZUJhdHRlcnksbW9iaWxlOmwuQ2xyU2hhcGVNb2JpbGUsdGFibGV0OmwuQ2xyU2hhcGVUYWJsZXQsIm5ldHdvcmstZ2xvYmUiOmwuQ2xyU2hhcGVOZXR3b3JrR2xvYmUsIm5ldHdvcmstc2V0dGluZ3MiOmwuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3MsIm5ldHdvcmstc3dpdGNoIjpsLkNs'@; put 'clNoYXBlTmV0d29ya1N3aXRjaCxyb3V0ZXI6bC5DbHJTaGFwZVJvdXRlcix2bTpsLkNsclNoYXBlVk0sInZtdy1hcHAiOmwuQ2xyU2hhcGVWTVdBcHAsY2VydGlmaWNhdGU6bC5DbHJTaGFwZUNlcnRpZmljYXRlLGFyY2hpdmU6bC5DbHJTaGFwZUFyY2hpdmUsdW5hcmNoaXZlOmwuQ2xyU2hh'@; put 'cGVVbmFyY2hpdmUsY29ubmVjdDpsLkNsclNoYXBlQ29ubmVjdCxkaXNjb25uZWN0OmwuQ2xyU2hhcGVEaXNjb25uZWN0LGxpbms6bC5DbHJTaGFwZUxpbmssdW5saW5rOmwuQ2xyU2hhcGVVbmxpbmssImNsb3VkLW5ldHdvcmsiOmwuQ2xyU2hhcGVDbG91ZE5ldHdvcmssImNsb3VkLXNjYWxl'@; put 'IjpsLkNsclNoYXBlQ2xvdWRTY2FsZSwiY2xvdWQtdHJhZmZpYyI6bC5DbHJTaGFwZUNsb3VkVHJhZmZpYywiY29udHJvbC1sdW4iOmwuQ2xyQ29udHJvbEx1bixkZXBsb3k6bC5DbHJTaGFwZURlcGxveSxoZWxpeDpsLkNsclNoYXBlSGVsaXgsZmxhc2s6bC5DbHJTaGFwZUZsYXNrLGFkbWlu'@; put 'aXN0cmF0b3I6bC5DbHJTaGFwZUFkbWluaXN0cmF0b3IsImhhcmQtZHJpdmUiOmwuQ2xyU2hhcGVIYXJkRHJpdmUsImhhcmQtZHJpdmUtZGlza3MiOmwuQ2xyU2hhcGVIYXJkRHJpdmVEaXNrcyxudm1lOmwuQ2xyU2hhcGVOVk1lLHNzZDpsLkNsclNoYXBlU1NELGJsdWV0b290aDpsLkNsclNo'@; put 'YXBlQmx1ZXRvb3RoLCJibHVldG9vdGgtb2ZmIjpsLkNsclNoYXBlQmx1ZXRvb3RoT2ZmLCJwcm9jZXNzLW9uLXZtIjpsLkNsclNoYXBlUHJvY2Vzc09uVk0sImFzc2lnbi11c2VyIjpsLkNsclNoYXBlQXNzaWduVXNlcixhdG9tOmwuQ2xyU2hhcGVBdG9tLCJiYXItY29kZSI6bC5DbHJTaGFw'@; put 'ZUJhckNvZGUsImNkLWR2ZCI6bC5DbHJTaGFwZUNkRHZkLGNvbnRhaW5lcjpsLkNsclNoYXBlQ29udGFpbmVyLCJjb250YWluZXItdm9sdW1lIjpsLkNsclNoYXBlQ29udGFpbmVyVm9sdW1lLCJmaWxlLXNoYXJlIjpsLkNsclNoYXBlRmlsZVNoYXJlLCJxci1jb2RlIjpsLkNsclNoYXBlUXJD'@; put 'b2RlLHVzYjpsLkNsclNoYXBlVXNiLHJhZGFyOmwuQ2xyU2hhcGVSYWRhcixjYXBhY2l0b3I6bC5DbHJTaGFwZUNhcGFjaXRvcixzcXVpZDpsLkNsclNoYXBlU3F1aWQsaW5kdWN0b3I6bC5DbHJTaGFwZUluZHVjdG9yLHJlc2lzdG9yOmwuQ2xyU2hhcGVSZXNpc3RvciwiaG9zdC1ncm91cCI6'@; put 'bC5DbHJTaGFwZUhvc3RHcm91cCwic3RvcmFnZS1hZGFwdGVyIjpsLkNsclNoYXBlU3RvcmFnZUFkYXB0ZXIsIm5vZGUtZ3JvdXAiOmwuQ2xyU2hhcGVOb2RlR3JvdXAsbm9kZXM6bC5DbHJTaGFwZU5vZGVzLG5hbWVzcGFjZTpsLkNsclNoYXBlTmFtZXNwYWNlLG5vZGU6bC5DbHJTaGFwZU5v'@; put 'ZGUscG9kOmwuQ2xyU2hhcGVQb2QsIm1lZGlhLWNoYW5nZXIiOmwuQ2xyU2hhcGVNZWRpYUNoYW5nZXIsInRhcGUtZHJpdmUiOmwuQ2xyU2hhcGVUYXBlRHJpdmUsYW5pbWF0aW9uOmwuQ2xyU2hhcGVBbmltYXRpb24sImNpLWNkIjpsLkNsclNoYXBlQ2lDZCwiZmlsZS1zaGFyZS0yIjpsLkNs'@; put 'clNoYXBlRmlsZVNoYXJlMn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuVGVjaG5vbG9neVNoYXBlcywic2VydmVyIiwoMCxwLmRlc2NyaXB0b3JDb25maWcpKGwuVGVjaG5vbG9neVNoYXBlcy5ob3N0KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuVGVjaG5vbG9neVNoYXBlcywiY29tbWFu'@; put 'ZCIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLlRlY2hub2xvZ3lTaGFwZXMudGVybWluYWwpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5UZWNobm9sb2d5U2hhcGVzLCJtb2JpbGUtcGhvbmUiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5UZWNobm9sb2d5U2hhcGVzLm1vYmlsZSkpLE9i'@; put 'amVjdC5kZWZpbmVQcm9wZXJ0eShsLlRlY2hub2xvZ3lTaGFwZXMsImxpY2Vuc2UiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5UZWNobm9sb2d5U2hhcGVzLmNlcnRpZmljYXRlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuVGVjaG5vbG9neVNoYXBlcywiZGlzY29ubmVjdGVkIiwoMCxw'@; put 'LmRlc2NyaXB0b3JDb25maWcpKGwuVGVjaG5vbG9neVNoYXBlc1sibm8td2lmaSJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuVGVjaG5vbG9neVNoYXBlcywicmVjZWl2ZXIiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5UZWNobm9sb2d5U2hhcGVzWyJwaG9uZS1oYW5kc2V0Il0pKSxP'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkobC5UZWNobm9sb2d5U2hhcGVzLCJkZXNpZ24iLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5UZWNobm9sb2d5U2hhcGVzWyJydWxlci1wZW5jaWwiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLlRlY2hub2xvZ3lTaGFwZXMsImRuYSIsKDAscC5kZXNj'@; put 'cmlwdG9yQ29uZmlnKShsLlRlY2hub2xvZ3lTaGFwZXMuaGVsaXgpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobC5UZWNobm9sb2d5U2hhcGVzLCJmb2xkZXItc2hhcmUiLCgwLHAuZGVzY3JpcHRvckNvbmZpZykobC5UZWNobm9sb2d5U2hhcGVzWyJmaWxlLXNoYXJlIl0pKSx0eXBlb2Ygd2lu'@; put 'ZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQobC5UZWNobm9sb2d5U2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZXh0LWVkaXQtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZXh0LWVkaXQtc2hhcGVzLnRzICoqKiEKICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKE0sbCxIKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGwuVGV4dEVkaXRTaGFwZXM9bC5DbHJTaGFwZVN1cGVyc2NyaXB0PWwuQ2xyU2hhcGVTdWJz'@; put 'Y3JpcHQ9bC5DbHJTaGFwZVN0cmlrZXRocm91Z2g9bC5DbHJTaGFwZUluZGVudD1sLkNsclNoYXBlT3V0ZGVudD1sLkNsclNoYXBlSGlnaGxpZ2h0ZXI9bC5DbHJTaGFwZVRleHRDb2xvcj1sLkNsclNoYXBlTGFuZ3VhZ2U9bC5DbHJTaGFwZUFsaWduVG9wPWwuQ2xyU2hhcGVBbGlnbk1pZGRs'@; put 'ZT1sLkNsclNoYXBlQWxpZ25Cb3R0b209bC5DbHJTaGFwZVVuZGVybGluZT1sLkNsclNoYXBlVGV4dD1sLkNsclNoYXBlQWxpZ25SaWdodFRleHQ9bC5DbHJTaGFwZUJsb2NrUXVvdGU9bC5DbHJTaGFwZVBhaW50Um9sbGVyPWwuQ2xyU2hhcGVOdW1iZXJMaXN0PWwuQ2xyU2hhcGVBbGlnbkxl'@; put 'ZnRUZXh0PWwuQ2xyU2hhcGVKdXN0aWZ5VGV4dD1sLkNsclNoYXBlSXRhbGljPWwuQ2xyU2hhcGVBbGlnblJpZ2h0PWwuQ2xyU2hhcGVBbGlnbkxlZnQ9bC5DbHJTaGFwZUFsaWduQ2VudGVyPWwuQ2xyU2hhcGVGb250U2l6ZT1sLkNsclNoYXBlQ2hlY2tib3hMaXN0PWwuQ2xyU2hhcGVDZW50'@; put 'ZXJUZXh0PWwuQ2xyU2hhcGVCdWxsZXRMaXN0PWwuQ2xyU2hhcGVCb2xkPXZvaWQgMCxIPUgoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxsLkNsclNoYXBlQm9sZD0oMCxILmNscklj'@; put 'b25TVkcpKCc8cGF0aCBkPSJNMjIuNDMsMTcuNTRhNC42Nyw0LjY3LDAsMCwwLDIuOC00LjM3di0uMDZhNC40Myw0LjQzLDAsMCwwLTEuMzEtMy4yNSw3LjA5LDcuMDksMCwwLDAtNS4xMy0xLjczaC03QTEuNzEsMS43MSwwLDAsMCwxMCw5Ljg2VjI2YTEuNzIsMS43MiwwLDAsMCwxLjc0LDEu'@; put 'NzRoNy4zM2M0LjM3LDAsNy4yNS0xLjg4LDcuMjUtNS4zOFYyMi4zQzI2LjMyLDE5LjY0LDI0LjczLDE4LjMyLDIyLjQzLDE3LjU0Wk0xMy42OCwxMS40aDQuNTRjMiwwLDMuMTUuODksMy4xNSwyLjMzdi4wNmMwLDEuNjgtMS4zNiwyLjQ5LTMuMzgsMi40OUgxMy42OFpNMjIuMzcsMjJjMCwx'@; put 'LjU5LTEuMzEsMi40My0zLjQ2LDIuNDNIMTMuNjhWMTkuNjJoNWMyLjQ5LDAsMy42OS44OCwzLjY5LDIuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlQnVsbGV0TGlzdD0oMCxILmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSI1'@; put 'LjIxIiBjeT0iOS4xNyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iNS4yMSIgY3k9IjE3LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48Y2lyY2xlIGN4PSI1LjIxIiBj'@; put 'eT0iMjUuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEsMSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00'@; put 'IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTYiIC8+JyksbC5DbHJTaGFwZUNlbnRlclRleHQ9KDAsSC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjg4LDhINS4xMmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjUuNSwxNi4yYTEuMSwxLjEsMCwxLDAsMC0yLjJoLTE1YTEuMSwxLjEsMCwxLDAsMCwyLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAuMjUsMjBINS43NWExLjEsMS4xLDAsMCwwLDAs'@; put 'Mi4yaDI0LjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNC44OCwyNkgxMS4xMmExLjEsMS4xLDAsMSwwLDAsMi4ySDI0Ljg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxsLkNsclNoYXBlQ2hlY2tib3hMaXN0PSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS40MywxNkgxMHYySDMxLjQzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48'@; put 'cGF0aCBkPSJNMzEuNDMsMjRIMTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE1LjQ1LDEwaDE2YTEsMSwwLDAsMCwwLTJoLTE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE3LjUsMy40MmExLjA5LDEuMDksMCwwLDAtMS41NSwwTDcuODksMTEuNDgsNC41MSw3Ljg0QTEuMSwxLjEsMCwxLDAsMi45LDkuMzRsNC45NCw1LjNMMTcuNSw1QTEuMSwxLjEsMCwwLDAsMTcuNSwzLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTQiIC8+JyksbC5DbHJTaGFwZUZvbnRTaXplPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMSw5LjA4QTEuMTMsMS4xMywwLDAsMCwxOS44Niw4SDQuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTFWMjdhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxMC4xOWg2'@; put 'LjY5QTEuMTQsMS4xNCwwLDAsMCwyMSw5LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLjY3LDE1SDIxLjE1YTEuMSwxLjEsMCwxLDAsMCwyLjE5SDI1VjI2LjVhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxNy4yM2gzLjU0YTEu'@; put 'MSwxLjEsMCwxLDAsMC0yLjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZUFsaWduQ2VudGVyPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyMEgxOVYxNmg2YTEsMSwwLDAsMCwxLTFWN2ExLDEsMCwwLDAtMS0xSDE5'@; put 'VjJhMSwxLDAsMCwwLTIsMFY2SDExYTEsMSwwLDAsMC0xLDF2OGExLDEsMCwwLDAsMSwxaDZ2NEg1YTEsMSwwLDAsMC0xLDF2OGExLDEsMCwwLDAsMSwxSDE3djRhMSwxLDAsMCwwLDIsMFYzMEgzMWExLDEsMCwwLDAsMS0xVjIxQTEsMSwwLDAsMCwzMSwyMFpNMTIsMTRWOEgyNHY2Wk0zMCwy'@; put 'OEg2VjIySDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksbC5DbHJTaGFwZUFsaWduTGVmdD0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSwxQTEsMSwwLDAsMCw0LDJWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCw1LDFaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEsMjBIOFYzMEgzMWExLDEsMCwwLDAsMS0xVjIxQTEsMSwwLDAsMCwzMSwyMFptLTEsOEgxMFYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRo'@; put 'IGQ9Ik0yNCwxNVY3YTEsMSwwLDAsMC0xLTFIOFYxNkgyM0ExLDEsMCwwLDAsMjQsMTVabS0yLTFIMTBWOEgyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGwuQ2xyU2hhcGVBbGlnblJpZ2h0PSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z'@; put 'MSwxYTEsMSwwLDAsMC0xLDFWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCwzMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQsMjF2OGExLDEsMCwwLDAsMSwxSDI4VjIwSDVBMSwxLDAsMCwwLDQsMjFabTIsMUgyNnY2SDZa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTIsN3Y4YTEsMSwwLDAsMCwxLDFIMjhWNkgxM0ExLDEsMCwwLDAsMTIsN1ptMiwxSDI2djZIMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxs'@; put 'LkNsclNoYXBlSXRhbGljPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC40Miw4SDE3LjFhMS4xLDEuMSwwLDEsMCwwLDIuMTloMi4xM0wxMy4xMSwyNS41NUgxMC40N2ExLjEsMS4xLDAsMSwwLDAsMi4xOUgxNy44YTEuMSwxLjEsMCwxLDAsMC0yLjE5SDE1LjUxbDYuMTMtMTUuMzZo'@; put 'Mi43OGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGwuQ2xyU2hhcGVKdXN0aWZ5VGV4dD0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiwxMC4ySDMxLjc1YTEuMSwxLjEsMCwxLDAsMC0yLjJINmExLjEs'@; put 'MS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjc1LDE0SDZhMS4xLDEuMSwwLDEsMCwwLDIuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMxLjEyLDIwSDYuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuNDUsMjUuODNINi42YTEuMSwxLjEsMCww'@; put 'LDAsMCwyLjJIMzAuNDVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGwuQ2xyU2hhcGVBbGlnbkxlZnRUZXh0PSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC4yNSwyNkg2djIuMkgyMC4yNWExLjEsMS4x'@; put 'LDAsMCwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDIwSDZ2Mi4ySDI4QTEuMSwxLjEsMCwwLDAsMjgsMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIu'@; put 'NiwxNS4xQTEuMSwxLjEsMCwwLDAsMjEuNSwxNEg2djIuMkgyMS41QTEuMSwxLjEsMCwwLDAsMjIuNiwxNS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI5LjI1LDhINnYyLjJIMjkuMjVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGwuQ2xyU2hhcGVOdW1iZXJMaXN0PSgwLEguY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iNS40NiA3LjQxIDUuNDYgMTEuNTYgNi42NSAxMS41NiA2LjY1IDYuMDUgNS43IDYuMDUgNC4wNSA3LjE2IDQu'@; put 'NTIgOCA1LjQ2IDcuNDEiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjU3LDE0LjgyYS43Ni43NiwwLDAsMSwuODMuNzNjMCwuMzgtLjIxLjc0LS44NywxLjI3bC0yLDEuNTd2MUg3LjY3VjE4LjI4SDUuMzNsMS0uNzdjMS0uNywxLjI4'@; put 'LTEuMjcsMS4yOC0yYTEuODMsMS44MywwLDAsMC0yLTEuNzYsMi42MywyLjYzLDAsMCwwLTIuMTQsMS4wOGwuNzYuNzNBMS43NSwxLjc1LDAsMCwxLDUuNTcsMTQuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNNi41NiwyNC42NGEx'@; put 'LjMyLDEuMzIsMCwwLDAsMS0xLjI3YzAtLjg3LS43OC0xLjUxLTItMS41MWEyLjYxLDIuNjEsMCwwLDAtMi4xLDFsLjY5LjcyYTEuNzgsMS43OCwwLDAsMSwxLjMtLjY0Yy41NCwwLC45Mi4yNi45Mi42NnMtLjM2LjYyLTEsLjYySDQuNzl2MWguNjRjLjc0LDAsMS4wNy4yMSwxLjA3LjYzcy0u'@; put 'MzUuNjgtMSwuNjhhMiwyLDAsMCwxLTEuNDYtLjY1bC0uNy43OGEyLjg1LDIuODUsMCwwLDAsMi4yMS45M2MxLjI5LDAsMi4xMy0uNjksMi4xMy0xLjY0QTEuMzMsMS4zMywwLDAsMCw2LjU2LDI0LjY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBh'@; put 'dGggZD0iTTMyLjQyLDlhMSwxLDAsMCwwLTEtMUgxMHYySDMxLjQyQTEsMSwwLDAsMCwzMi40Miw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMxLjQyLDE2SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMS40MiwyNEgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxsLkNsclNoYXBlUGFpbnRSb2xsZXI9KDAsSC5jbHJJY29uU1ZHKSgn'@; put 'PHBhdGggZD0iTTMxLDEwVjRhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDR2NmEyLDIsMCwwLDAsMiwySDI5QTIsMiwwLDAsMCwzMSwxMFpNNiw0SDI5djZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjlM'@; put 'MTguNywxNi41NGExLDEsMCwwLDAtLjcsMVYxOUgxNlYzM2EyLDIsMCwwLDAsMiwyaDJhMiwyLDAsMCwwLDItMlYxOUgyMHYtLjczTDMzLjMsMTRhMSwxLDAsMCwwLC43LTFWN0ExLDEsMCwwLDAsMzMsNlpNMjAsMzNIMThWMjFoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiAvPjxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIyNyIgaGVpZ2h0PSIxMCIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjRMMTguNzEsMTYuNDVhMSwxLDAsMCwwLS43MSwxVjE5SDE2'@; put 'VjM0YTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE5SDIwdi0uODJMMzMuMjksMTRBMSwxLDAsMCwwLDM0LDEzVjdBMSwxLDAsMCwwLDMzLDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVCbG9ja1F1b3RlPSgwLEguY2xySWNv'@; put 'blNWRykoJzxwYXRoIGQ9Ik0xMS44NiwxNi41NWE0LjMxLDQuMzEsMCwwLDAtMi4xMS41NiwxNC40NCwxNC40NCwwLDAsMSw0LjM2LTYsMS4xLDEuMSwwLDAsMC0xLjQtMS43Yy00LDMuMjUtNS43OCw3Ljc1LTUuNzgsMTAuNTRBNS4wOCw1LjA4LDAsMCwwLDEwLDI0LjU4YTQuNCw0LjQsMCww'@; put 'LDAsMS44OC40NCw0LjI0LDQuMjQsMCwxLDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIzLDE2LjU1YTQuMjksNC4yOSwwLDAsMC0yLjExLjU2LDE0LjUsMTQuNSwwLDAsMSw0LjM1LTYsMS4xLDEuMSwwLDEsMC0xLjM5'@; put 'LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0YTUuMDgsNS4wOCwwLDAsMCwzLDQuNjFBNC4zNyw0LjM3LDAsMCwwLDIzLDI1YTQuMjQsNC4yNCwwLDEsMCwwLTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxsLkNsclNoYXBlQWxp'@; put 'Z25SaWdodFRleHQ9KDAsSC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjY1LDI3LjFhMS4xLDEuMSwwLDAsMCwxLjEsMS4xSDMwVjI2SDE1Ljc1QTEuMSwxLjEsMCwwLDAsMTQuNjUsMjcuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9'@; put 'Ik02LjksMjEuMUExLjEsMS4xLDAsMCwwLDgsMjIuMkgzMFYyMEg4QTEuMSwxLjEsMCwwLDAsNi45LDIxLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMuNCwxNS4xYTEuMSwxLjEsMCwwLDAsMS4xLDEuMUgzMFYxNEgxNC41QTEu'@; put 'MSwxLjEsMCwwLDAsMTMuNCwxNS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTYuNzUsOGExLjEsMS4xLDAsMSwwLDAsMi4ySDMwVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxsLkNs'@; put 'clNoYXBlVGV4dD0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTksOC44NGExLjQ1LDEuNDUsMCwwLDAtMS40LTFoLS4xMmExLjQ2LDEuNDYsMCwwLDAtMS40MiwxTDEuMTQsMjYuNTZhMS4yOSwxLjI5LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTIsMS4xMiwwLDAsMCwx'@; put 'LjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4LTEuMDgsMS42NCwxLjY0LDAsMCwwLS4xNC0uNTdaTTYuMDgsMjAuNzFsNC41OS0xMC4yMiw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMjQsMTQuNzhBNi4zNSw2LjM1LDAsMCwwLDI3LjYsMTMuMmExMS4zNiwxMS4zNiwwLDAsMC00LjcsMSwxLDEsMCwwLDAtLjU4Ljg5LDEsMSwwLDAsMCwuOTQuOTIsMS4yMywxLjIzLDAsMCwwLC4zOS0uMDgsOC44Nyw4Ljg3LDAsMCwx'@; put 'LDMuNzItLjgxYzIuNywwLDQuMjgsMS4zMyw0LjI4LDMuOTJ2LjVhMTUuMjksMTUuMjksMCwwLDAtNC40Mi0uNjFjLTMuNjQsMC02LjE0LDEuNjEtNi4xNCw0LjY0di4wNWMwLDIuOTUsMi43LDQuNDgsNS4zNyw0LjQ4YTYuMjksNi4yOSwwLDAsMCw1LjE5LTIuNDhWMjYuOWExLDEsMCwwLDAs'@; put 'MSwxLDEsMSwwLDAsMCwxLTEuMDZWMTlBNS43MSw1LjcxLDAsMCwwLDMyLjI0LDE0Ljc4Wm0tLjU2LDcuN2MwLDIuMjgtMi4xNywzLjg5LTQuODEsMy44OS0xLjk0LDAtMy42MS0xLjA2LTMuNjEtMi44NnYtLjA2YzAtMS44LDEuNS0zLDQuMi0zYTE1LjIsMTUuMiwwLDAsMSw0LjIyLjYxWiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksbC5DbHJTaGFwZVVuZGVybGluZT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjguMTdjNS4wOCwwLDguNDgtMy4wOCw4LjQ4LTlWOC41NGExLjE1LDEuMTUsMCwxLDAtMi4zLDB2MTAuOGMwLDQu'@; put 'NDQtMi4zOCw2LjcxLTYuMTMsNi43MXMtNi4yMS0yLjQ3LTYuMjEtNi44NVY4LjU0YTEuMTUsMS4xNSwwLDEsMC0yLjMsMHYxMC44QzkuNTMsMjUuMDksMTMsMjguMTcsMTgsMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEs'@; put 'MzBINWExLjExLDEuMTEsMCwwLDAsMCwyLjIxSDMxQTEuMTEsMS4xMSwwLDAsMCwzMSwzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVBbGlnbkJvdHRvbT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMzBIMmExLDEs'@; put 'MCwwLDAsMCwySDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTYsNWExLDEsMCwwLDAtMS0xSDdBMSwxLDAsMCwwLDYsNVYyOEgxNlpNMTQsMjZIOFY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMTNhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCwwLDAtMSwxVjI4SDMwWk0yOCwyNkgyMlYxNGg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksbC5DbHJTaGFwZUFsaWduTWlkZGxlPSgwLEgu'@; put 'Y2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxN0gzMFYxMWExLDEsMCwwLDAtMS0xSDIxYTEsMSwwLDAsMC0xLDF2NkgxNlY1YTEsMSwwLDAsMC0xLTFIN0ExLDEsMCwwLDAsNiw1VjE3SDJhMSwxLDAsMCwwLDAsMkg2VjMxYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xVjE5aDR2NmEx'@; put 'LDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0YTEsMSwwLDAsMCwwLTJaTTE0LDMwSDhWNmg2Wm0xNC02SDIyVjEyaDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxsLkNsclNoYXBlQWxpZ25Ub3A9KDAsSC5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggZD0iTTM0LDRIMkExLDEsMCwwLDAsMiw2SDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNiwzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDZaTTgsMTBoNlYzMEg4WiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDIzYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xVjhIMjBabTItMTNoNlYyMkgyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGwuQ2xyU2hhcGVMYW5n'@; put 'dWFnZT0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsM0gxNHY1aDJWNWgxNGMwLjYsMCwxLDAuNCwxLDF2MTFjMCwwLjYtMC40LDEtMSwxSDE3djdoLTUuM0w4LDI3LjlWMjVINWMtMC42LDAtMS0wLjQtMS0xVjEzYzAtMC42LDAuNC0xLDEtMWgxM3YtMkg1XG5cdFx0Yy0xLjcsMC0z'@; put 'LDEuMy0zLDN2MTFjMCwxLjcsMS4zLDMsMywzaDF2NS4xbDYuMy01LjFIMTl2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZDMzMsNC4zLDMxLjcsMywzMCwzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYuMiwyMi45aDIuNGwwLjYtMS42'@; put 'aDMuMWwwLjYsMS42aDIuNEwxMS45LDE0SDkuNUw2LjIsMjIuOXogTTEwLjcsMTYuNWwxLDMuMWgtMkwxMC43LDE2LjV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAsMTdjMS4xLDAsMi42LTAuMyw0LTFjMS40LDAuNywzLDEsNCwx'@; put 'di0yYzAsMC0xLDAtMi4xLTAuNGMxLjItMS4yLDIuMS0zLDIuMS01LjZWOGgtM1Y2aC0ydjJoLTN2Mmg1Ljlcblx0XHRjLTAuMiwxLjgtMSwyLjktMS45LDMuNmMtMC42LTAuNS0xLjItMS4yLTEuNi0yLjFoLTIuMWMwLjQsMS4zLDEsMi4zLDEuOCwzLjFDMjEuMSwxNSwyMC4yLDE1LDIwLDE1'@; put 'VjE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBvbHlnb24gcG9pbnRzPSIxMSwxNi41IDEwLDE5LjYgMTIsMTkuNiAxMSwxNi41IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4zLDNoLTE2'@; put 'djVoNHYyaC0xM2MtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xaDYuN3YtN2gxMWMxLjcsMCwzLTEuMywzLTNWNlxuXHRcdEMzMy4zLDQuMywzMiwzLDMwLjMsM3ogTTEzLjEsMjIuOWwtMC41LTEuNkg5LjVsLTAuNiwxLjZINi41TDkuOCwxNGgyLjRs'@; put 'My4zLDguOUwxMy4xLDIyLjl6IE0yOC4zLDE1djJjLTEuMywwLTIuNy0wLjQtMy45LTFcblx0XHRjLTEuMiwwLjYtMi42LDAuOS00LDFsLTAuMS0yYzAuNywwLDEuNC0wLjEsMi4xLTAuM2MtMC45LTAuOS0xLjUtMi0xLjgtMy4yaDIuMWMwLjMsMC45LDAuOSwxLjYsMS42LDIuMmMxLjEtMC45'@; put 'LDEuOC0yLjIsMS45LTMuN1xuXHRcdGgtNlY4aDNWNmgydjJoMy4zbDAuMSwxYzAuMSwyLjEtMC43LDQuMi0yLjIsNS43QzI3LjEsMTQuOSwyNy43LDE1LDI4LjMsMTV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVUZXh0Q29sb3I9KDAs'@; put 'SC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LjQ3LDMuODRhMS40NSwxLjQ1LDAsMCwwLTEuNC0xSDE4YTEuNDUsMS40NSwwLDAsMC0xLjQyLDFMOC40MiwyMS41NmExLjM1LDEuMzUsMCwwLDAtLjE0LjU5LDEsMSwwLDAsMCwxLDEsMS4xMSwxLjExLDAsMCwwLDEuMDgtLjc3bDIuMDgtNC42'@; put 'NWgxMWwyLjA4LDQuNTlhMS4yNCwxLjI0LDAsMCwwLDEuMTIuODMsMS4wOCwxLjA4LDAsMCwwLDEuMDgtMS4wOCwxLjU5LDEuNTksMCwwLDAtLjE0LS41N1pNMTMuMzYsMTUuNzEsMTgsNS40OWw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv'@; put 'PlxuICA8cmVjdCB4PSI0LjA2IiB5PSIyNSIgd2lkdGg9IjI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxsLkNsclNoYXBlSGlnaGxpZ2h0ZXI9KDAsSC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1Ljgy'@; put 'LDI2LjA2YTEsMSwwLDAsMS0uNzEtLjI5TDguNjcsMTkuMzNhMSwxLDAsMCwxLS4yOS0uNzEsMSwxLDAsMCwxLC4yOS0uNzFMMjMsMy41NGE1LjU1LDUuNTUsMCwxLDEsNy44NSw3Ljg2TDE2LjUzLDI1Ljc3QTEsMSwwLDAsMSwxNS44MiwyNi4wNlptLTUtNy40NCw1LDVMMjkuNDgsMTBhMy41'@; put 'NCwzLjU0LDAsMCwwLDAtNSwzLjYzLDMuNjMsMCwwLDAtNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEwLjM4LDI4LjI4QTEsMSwwLDAsMSw5LjY3LDI4TDYuNDUsMjQuNzdhMSwxLDAsMCwxLS4yMi0xLjA5bDIuMjItNS40'@; put 'NGExLDEsMCwwLDEsMS42My0uMzNsNi40NSw2LjQ0QTEsMSwwLDAsMSwxNi4yLDI2bC01LjQ0LDIuMjJBMS4zMywxLjMzLDAsMCwxLDEwLjM4LDI4LjI4Wk04LjMzLDIzLjgybDIuMjksMi4yOCwzLjQzLTEuNEw5Ljc0LDIwLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTguOTQsMzBoLTVhMSwxLDAsMCwxLS44NC0xLjU1bDMuMjItNC45NGExLDEsMCwwLDEsMS41NS0uMTZsMy4yMSwzLjIyYTEsMSwwLDAsMSwuMDYsMS4zNUw5LjcsMjkuNjRBMSwxLDAsMCwxLDguOTQsMzBaTTUuNzgsMjhIOC40N0w5LDI3LjM0bC0x'@; put 'LjctMS43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMy4wNiIgeT0iMzEiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPicpLGwuQ2xyU2hhcGVPdXRkZW50'@; put 'PSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS4wNiw5aC0yNmExLDEsMCwxLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTRoLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwx'@; put 'LDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxOWgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAg'@; put 'PHBhdGggZD0iTTMxLjA2LDI0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjloLTI2YTEsMSwwLDAsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik05LjU2LDIyLjU0YTEsMSwwLDAsMS0uNy0uM0w0LjYxLDE4bDQuMjUtNC4yNGExLDEsMCwwLDEsMS40MSwxLjQxTDcuNDQsMThsMi44MywyLjgzYTEsMSwwLDAsMS0uNzEsMS43MVoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+JyksbC5DbHJTaGFwZUluZGVudD0oMCxILmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwx'@; put 'LDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGgg'@; put 'ZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNNS41NiwyMi41NGExLDEsMCwwLDEtLjctMS43MUw3LjY4LDE4LDQuODYsMTUuMTdhMSwxLDAsMCwx'@; put 'LDAtMS40MSwxLDEsMCwwLDEsMS40MSwwTDEwLjUxLDE4LDYuMjcsMjIuMjRBMSwxLDAsMCwxLDUuNTYsMjIuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLGwuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoPSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9'@; put 'Ik0zMi44OCwxOS45MmgtMzBhMSwxLDAsMSwxLDAtMmgzMGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcuMjcsMTUuODZhMTIuOSwxMi45LDAsMCwxLDEuMjktLjUyQTUuNjksNS42OSwwLDAsMSwxMC4z'@; put 'OSwxNWEzLjE4LDMuMTgsMCwwLDEsMi43NSwxLjExQTQuNDQsNC40NCwwLDAsMSwxNCwxOC44NXYuNDlhMTMuODMsMTMuODMsMCwwLDAtNC4yOS0uNzQsNi4xOSw2LjE5LDAsMCwwLTIuNTkuNTRBNSw1LDAsMCwwLDUuODEsMjBIMTUuODhWMTguODVhNS42Nyw1LjY3LDAsMCwwLTEuMzctNCw1'@; put 'LjE2LDUuMTYsMCwwLDAtNC0xLjQ5LDEwLDEwLDAsMCwwLTMuOTEuODguODcuODcsMCwwLDAtLjQ0LDEuMThBLjg0Ljg0LDAsMCwwLDcuMjcsMTUuODZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEsMjBhNS45NCw1Ljk0LDAs'@; put 'MCwxLC41NC0yLjMxLDQuMzUsNC4zNSwwLDAsMSwxLjU4LTEuODMsNC4yNyw0LjI3LDAsMCwxLDQuNTksMCw0LjQ3LDQuNDcsMCwwLDEsMS41NywxLjgzQTYuMTIsNi4xMiwwLDAsMSwyOS44NSwyMGgyYTcuNzMsNy43MywwLDAsMC0uNzgtMy4xOSw2LDYsMCwwLDAtMi4xOC0yLjQ1LDUuNzQs'@; put 'NS43NCwwLDAsMC0zLjEtLjg4LDUuMzksNS4zOSwwLDAsMC0yLjguNzMsNS41NSw1LjU1LDAsMCwwLTIsMi4wNVYxMGEuODcuODcsMCwwLDAtLjg2LS44NkgyMGEuODcuODcsMCwwLDAtLjg2Ljg2VjIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAg'@; put 'PHBhdGggZD0iTTI5LjY3LDIyYTUuNjEsNS42MSwwLDAsMS0uMzYsMS4wNyw0LjQ3LDQuNDcsMCwwLDEtMS41NywxLjg1LDQuMzIsNC4zMiwwLDAsMS00LjU5LDAsNC4zNSw0LjM1LDAsMCwxLTEuNTgtMS44NUE1LjY0LDUuNjQsMCwwLDEsMjEuMiwyMkgxOS4wOXY0LjEzQS44Ny44NywwLDAs'@; put 'MCwyMCwyN2guMmEuODcuODcsMCwwLDAsLjg2LS44NlYyNC41MWE1LjU4LDUuNTgsMCwwLDAsMiwyLjA2LDUuNDgsNS40OCwwLDAsMCwyLjguNzIsNS42Niw1LjY2LDAsMCwwLDMuMS0uODhBNS44OCw1Ljg4LDAsMCwwLDMxLjA5LDI0LDcuMDksNy4wOSwwLDAsMCwzMS43MywyMloiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xNCwyMnYuNzZhMy4zNCwzLjM0LDAsMCwxLTEuNjIsMiw1LjM0LDUuMzQsMCwwLDEtMi42OS43MiwzLjc4LDMuNzgsMCwwLDEtMi4zNi0uNywyLjI0LDIuMjQsMCwwLDEtLjk0LTEuOSwyLjI5LDIu'@; put 'MjksMCwwLDEsLjItLjkxSDQuNjJhNCw0LDAsMCwwLS4xMywxLDMuODMsMy44MywwLDAsMCwxLjM1LDMuMDZBNS4xNSw1LjE1LDAsMCwwLDkuMzEsMjcuMiw2LDYsMCwwLDAsMTIsMjYuNTdhNC42Miw0LjYyLDAsMCwwLDItMS43NFYyNmEuODYuODYsMCwwLDAsLjg2Ljg2SDE1YS44Ni44Niww'@; put 'LDAsMCwuODYtLjg2VjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxsLkNsclNoYXBlU3Vic2NyaXB0PSgwLEguY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC41NSwxOGw2LjgsOC42YTEuMTcsMS4xNywwLDAsMS0uOTIsMS45aDBhMS4xNywxLjE3'@; put 'LDAsMCwxLS45Mi0uNDRMMTMsMTkuOTEsNi42LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEuMTcsMCwwLDEtLjkyLTEuOUwxMS41NSwxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMTcsMS4xNywwLDAsMSw2LjYzLDhsNi40NCw4LjEzTDE5LjUsOGEx'@; put 'LjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIzLDMxLjgsMjcuNDksMjhhOS45LDkuOSwwLDAsMCwxLjg4LTIuMDVBMy40NCwzLjQ0LDAsMCww'@; put 'LDMwLDI0YTIuMzUsMi4zNSwwLDAsMC0uMzUtMS4yNywyLjQ0LDIuNDQsMCwwLDAtMS0uODQsMi45LDIuOSwwLDAsMC0xLjI2LS4yOCwzLjM2LDMuMzYsMCwwLDAtMS44My41LDUuNjQsNS42NCwwLDAsMC0xLjQ4LDEuNDJsLTEtLjgxYTUuMTEsNS4xMSwwLDAsMSw0LjM2LTIuMzcsNC4zNSw0'@; put 'LjM1LDAsMCwxLDIsLjQ1LDMuNDMsMy40MywwLDAsMSwyLDMuMTgsNC40NSw0LjQ1LDAsMCwxLS42OCwyLjM1LDEwLjksMTAuOSwwLDAsMS0yLjI0LDIuNDZsLTMuMjQsMi44MUgzMS41VjMzSDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxsLkNs'@; put 'clNoYXBlU3VwZXJzY3JpcHQ9KDAsSC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjQzLDE4bDYuNzksOC42YTEuMTcsMS4xNywwLDAsMS0uOTIsMS45aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0uNDRsLTYuNDQtOC4xM0w2LjQ3LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEu'@; put 'MTcsMCwwLDEtLjkyLTEuOUwxMS40MywxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMiwxLjIsMCwwLDEsNi41MSw4bDYuNDMsOC4xM0wxOS4zOCw4YTEuMTcsMS4xNywwLDAsMSwuOTItLjQ0aDBhMS4xNywxLjE3LDAsMCwxLC45MiwxLjlaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIuODUsMTQuNDdsNC41MS0zLjg1YTkuMzcsOS4zNywwLDAsMCwxLjg4LTIsMy40MywzLjQzLDAsMCwwLC41OS0xLjg2LDIuMjcsMi4yNywwLDAsMC0uMzYtMS4yNywyLjM4LDIuMzgsMCwwLDAtLjk1LS44Mywy'@; put 'Ljc3LDIuNzcsMCwwLDAtMS4yNi0uMjksMy4zOSwzLjM5LDAsMCwwLTEuODMuNSw1LjgzLDUuODMsMCwwLDAtMS40OSwxLjQybC0xLS44MWE1LjEyLDUuMTIsMCwwLDEsNC4zNi0yLjM3LDQuMzYsNC4zNiwwLDAsMSwyLC40NSwzLjQ3LDMuNDcsMCwwLDEsMiwzLjE4QTQuNDQsNC40NCwwLDAs'@; put 'MSwzMC41OCw5YTExLjE0LDExLjE0LDAsMCwxLTIuMjQsMi40NkwyNS4xLDE0LjMxaDYuMjh2MS4zM0gyMi44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksbC5UZXh0RWRpdFNoYXBlcz17Ym9sZDpsLkNsclNoYXBlQm9sZCwiYnVsbGV0LWxpc3Qi'@; put 'OmwuQ2xyU2hhcGVCdWxsZXRMaXN0LCJjaGVja2JveC1saXN0IjpsLkNsclNoYXBlQ2hlY2tib3hMaXN0LCJudW1iZXItbGlzdCI6bC5DbHJTaGFwZU51bWJlckxpc3QsImZvbnQtc2l6ZSI6bC5DbHJTaGFwZUZvbnRTaXplLGl0YWxpYzpsLkNsclNoYXBlSXRhbGljLCJqdXN0aWZ5LXRleHQi'@; put 'OmwuQ2xyU2hhcGVKdXN0aWZ5VGV4dCwiY2VudGVyLXRleHQiOmwuQ2xyU2hhcGVDZW50ZXJUZXh0LCJhbGlnbi1sZWZ0LXRleHQiOmwuQ2xyU2hhcGVBbGlnbkxlZnRUZXh0LCJhbGlnbi1yaWdodC10ZXh0IjpsLkNsclNoYXBlQWxpZ25SaWdodFRleHQsInBhaW50LXJvbGxlciI6bC5DbHJT'@; put 'aGFwZVBhaW50Um9sbGVyLCJibG9jay1xdW90ZSI6bC5DbHJTaGFwZUJsb2NrUXVvdGUsdGV4dDpsLkNsclNoYXBlVGV4dCx1bmRlcmxpbmU6bC5DbHJTaGFwZVVuZGVybGluZSwiYWxpZ24tY2VudGVyIjpsLkNsclNoYXBlQWxpZ25DZW50ZXIsImFsaWduLWxlZnQiOmwuQ2xyU2hhcGVBbGln'@; put 'bkxlZnQsImFsaWduLXJpZ2h0IjpsLkNsclNoYXBlQWxpZ25SaWdodCwiYWxpZ24tYm90dG9tIjpsLkNsclNoYXBlQWxpZ25Cb3R0b20sImFsaWduLW1pZGRsZSI6bC5DbHJTaGFwZUFsaWduTWlkZGxlLCJhbGlnbi10b3AiOmwuQ2xyU2hhcGVBbGlnblRvcCxsYW5ndWFnZTpsLkNsclNoYXBl'@; put 'TGFuZ3VhZ2UsInRleHQtY29sb3IiOmwuQ2xyU2hhcGVUZXh0Q29sb3IsaGlnaGxpZ2h0ZXI6bC5DbHJTaGFwZUhpZ2hsaWdodGVyLGluZGVudDpsLkNsclNoYXBlSW5kZW50LG91dGRlbnQ6bC5DbHJTaGFwZU91dGRlbnQsc3RyaWtldGhyb3VnaDpsLkNsclNoYXBlU3RyaWtldGhyb3VnaCxz'@; put 'dWJzY3JpcHQ6bC5DbHJTaGFwZVN1YnNjcmlwdCxzdXBlcnNjcmlwdDpsLkNsclNoYXBlU3VwZXJzY3JpcHR9LHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChsLlRleHRFZGl0U2hhcGVzKX0s'@; put 'Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90cmF2ZWwtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90cmF2ZWwtc2hhcGVzLnRzICoq'@; put 'KiEKICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKE0sbCxhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1'@; put 'ZTohMH0pLGwuVHJhdmVsU2hhcGVzPWwuQ2xyU2hhcGVPbkhvbGlkYXk9bC5DbHJTaGFwZVRyYWlsZXI9bC5DbHJTaGFwZUZlcnJ5PWwuQ2xyU2hhcGVDYXJhdmFuPWwuQ2xyU2hhcGVDYW1wZXJ2YW49bC5DbHJTaGFwZUJvYXQ9bC5DbHJTaGFwZUJpY3ljbGU9bC5DbHJTaGFwZU1hcE1hcmtl'@; put 'cj1sLkNsclNoYXBlQ29tcGFzcz1sLkNsclNoYXBlTWFwPWwuQ2xyU2hhcGVDYXI9bC5DbHJTaGFwZUFpcnBsYW5lPWwuQ2xyU2hhcGVUcnVjaz12b2lkIDA7dmFyIHA9YSgKLyohIC4uL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNj'@; put 'cmlwdG9yLWNvbmZpZy50cyIpO2E9YSgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGwuQ2xyU2hhcGVUcnVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMTkuN2E2LjQ1LDYuNDUsMCwwLDEsMS41Ni0uMmMuMTUsMCwuMjksMCwuNDQsMFYxNGg0YTIsMiwwLDAsMSwyLDJ2MUgy'@; put 'OHYyaDR2NUgyOS42YTQuNTQsNC41NCwwLDAsMC04LjM0LDBIMTQuNDNhNC41LDQuNSwwLDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDksNC40OSwwLDAsMCw4LjkyLDBIMzNhMSwxLDAsMCwwLDEtMVYxNkE0LDQsMCwwLDAsMzAsMTJaTTEwLjI2LDI4YTIu'@; put 'MzgsMi4zOCwwLDEsMSwwLTQuNzUsMi4zOCwyLjM4LDAsMSwxLDAsNC43NVptMTUuMTcsMGEyLjM4LDIuMzgsMCwxLDEsMi41LTIuMzdBMi40NCwyLjQ0LDAsMCwxLDI1LjQzLDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg'@; put 'ZD0iTTMwLDEySDI2VjdhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMjEuNDlBNC40NSw0LjQ1LDAsMCwwLDIxLjI1LDI0SDE0LjQzYTQuNSw0LjUsMCwwLDAtNC4xNy0yLjc2QTQuMzgsNC4zOCwwLDEsMCwxNC43MiwyNkgyMWE0LjQ4LDQu'@; put 'NDgsMCwwLDAsOC45MSwwSDM0VjE2QTQsNCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4zOCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgsMCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDIsMjhaTTMyLDE3SDI2VjE0'@; put 'aDRhMiwyLDAsMCwxLDIsMloiLz4nKSxsLkNsclNoYXBlQWlycGxhbmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS43Nyw4LjE2YTIuNDMsMi40MywwLDAsMC0xLjktMkwyOCw0Ljg3YTQuNSw0LjUsMCww'@; put 'LDAtMy42NS43OUw3LDE4LjMsMi4xNCwxOC4xQTEuODYsMS44NiwwLDAsMCwuOTEsMjEuNDFsNSwzLjkzYy42LjczLDEsLjU5LDEwLjkzLTQuODJsLjkzLDkuNDJhMS4zNiwxLjM2LDAsMCwwLC44NSwxLjE4LDEuNDMsMS40MywwLDAsMCwuNTQuMSwxLjU0LDEuNTQsMCwwLDAsMS0uNDFsMi4z'@; put 'OS0yLjE4YTEuNTIsMS41MiwwLDAsMCwuNDYtLjgzTDI1LjIsMTUuOWMzLjU3LTIsNi45NS0zLjg4LDkuMzYtNS4yNUEyLjQzLDIuNDMsMCwwLDAsMzUuNzcsOC4xNlptLTIuMi43NWMtMi41LDEuNDItNiwzLjQxLTkuNzYsNS40N2wtLjQxLjIzTDIxLjA3LDI3LjI4bC0xLjQ3LDEuMzRMMTgu'@; put 'NSwxNy4zMiwxNy4xNywxOEMxMCwyMiw3LjYxLDIzLjE2LDYuNzksMjMuNTJsLTQuMy0zLjQxLDUuMDguMjIsMTgtMTMuMDZhMi41MSwyLjUxLDAsMCwxLDItLjQ1bDUuODUsMS4yNmEuNDMuNDMsMCwwLDEsLjM1LjM3QS40Mi40MiwwLDAsMSwzMy41Nyw4LjkxWiIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik03LDEyLjU0bDMuNTYsMSwxLjY0LTEuMTktNC0xLjE2TDEwLDEwLjA5bDUuNDctLjE2LDIuMy0xLjY3TDEwLDguNWExLjI1LDEuMjUsMCwwLDAtLjcuMTdMNi42NywxMC4yQTEuMjgsMS4yOCwwLDAs'@; put 'MCw3LDEyLjU0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYuMjUsMTEuNSwxMiwxMy4xNmw2LjMyLTQuNTktOS4wNy4yNkEuNTIuNTIsMCwwLDAsOSw4LjkxTDYuMTMsMTAuNTZBLjUxLjUxLDAsMCwwLDYuMjUsMTEu'@; put 'NVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zNC41Miw2LjM2LDI4LjIyLDVhMy43OCwzLjc4LDAsMCwwLTMuMDcuNjdMNi4xMiwxOS41bC00LjU3LS4yYTEuMjUsMS4yNSwwLDAsMC0uODMsMi4yMmw0LjQ1LDMuNTNh'@; put 'LjU1LjU1LDAsMCwwLC41My4wOWMxLjI3LS40OSw2LTMsMTEuNTktNi4wN2wxLjEyLDExLjUxYS41NS41NSwwLDAsMCwuOS4zN2wyLjUtMi4wOGEuNzYuNzYsMCwwLDAsLjI2LS40NWwyLjM3LTEzLjI5YzQtMi4yMiw3LjgyLTQuMzcsMTAuNTEtNS44OUExLjU1LDEuNTUsMCwwLDAsMzQuNTIs'@; put 'Ni4zNloiLz4nKSxsLkNsclNoYXBlQ2FyPSgwLGEuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LjQ1LDE0LjE3QTIyLjEsMjIuMSwwLDAsMCwxOS4zOCw3YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40Ny0uMTQuOTItLjIsMS4zNkE0LDQsMCwwLDAsMiwxOHY2LjEzYTIsMiwwLDAs'@; put 'MCwyLDJWMjBINFYxOGEyLDIsMCwwLDEsMi0ySDI0LjczQTcuMjgsNy4yOCwwLDAsMSwzMiwyMy4yN1YyNGgtMmE0LjUzLDQuNTMsMCwxLDAsLjMzLDJIMzJhMiwyLDAsMCwwLDItMnYtLjczQTkuMjgsOS4yOCwwLDAsMCwyNi40NSwxNC4xN1pNMTEsMTRINi45M2MwLS4zMS4wOS0uNjMuMTUt'@; put 'MUE2LjUyLDYuNTIsMCwwLDEsMTEsOGgwWm0yLDBWNy41OGE4LjE3LDguMTcsMCwwLDEsNS4zNiwxLjE2QTE5LDE5LDAsMCwxLDIzLjksMTRaTTI1LjgsMjguMzhhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjUuOCwyOC4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0LjE3LDI0YTQuNTMsNC41MywwLDEsMCwuMzMsMmg1LjNjMC0uMDgsMC0uMTcsMC0uMjVBNiw2LDAsMCwxLDIwLDI0Wk0xMCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwx'@; put 'MCwyOC4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYuODcsMTQuMjhBMjIuMzYsMjIuMzYsMCwwLDAsMTkuNjUsNi45YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4w'@; put 'OC40OS0uMTUsMS0uMjEsMS40aC0xQTIuNTksMi41OSwwLDAsMCwyLDE2LjU5djguNTVhLjg2Ljg2LDAsMCwwLC44Ni44Nkg0LjU5YzAtLjEzLDAtLjI2LDAtLjM5YTUuNzcsNS43NywwLDAsMSw3LjcxLTUuNDVsLTEsMWE0LjU2LDQuNTYsMCwwLDAtNC4zNCwxLjU4LDMsMywwLDAsMC0uNjMu'@; put 'OTNBNC41LDQuNSwwLDEsMCwxNC44MiwyNmg1LjQ4YzAtLjEzLDAtLjI2LDAtLjM5QTUuNzcsNS43NywwLDAsMSwyOCwyMC4xNmwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDMwLjUzLDI2aDIuNjFhLjg2Ljg2LDAsMCwwLC44'@; put 'Ni0uODZWMjMuMzZBOS4zOSw5LjM5LDAsMCwwLDI2Ljg3LDE0LjI4Wk0xMiwxNEg4YzAtLjM1LjEtLjcxLjE2LTEuMDdhNi41Miw2LjUyLDAsMCwxLDMuODctNWgwWk0xMC4zNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMC4zNiwyOC4zNlpNMTksMTlIMTZW'@; put 'MTdoM1ptLTYtNVY3LjQ3YTguMTYsOC4xNiwwLDAsMSw1LjQsMS4xNUExOS4xNSwxOS4xNSwwLDAsMSwyNCwxNFpNMjYuMDYsMjguMzZhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjYuMDYsMjguMzZaIi8+JyksbC5DbHJTaGFwZU1hcD0oMCxhLmNsckljb25TVkcpKCc8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjU5LDYuMTlBMSwxLDAsMCwwLDMyLjcsNkwyMy4wOSw5LDEzLjQ2LDQuMTFhMSwxLDAsMCwwLS44NCwwTDIuNjIsOC4yQTEsMSwwLDAsMCwyLDkuMTNWMjkuNjFhMSwxLDAsMCwwLDEuMzguOTJM'@; put 'MTMsMjYuNThsOS41OSw0LjkyYTEsMSwwLDAsMCwuNDYuMTEsMSwxLDAsMCwwLC4zLDBsMTAtMy4xMmExLDEsMCwwLDAsLjctMVY3QTEsMSwwLDAsMCwzMy41OSw2LjE5Wk0zMiwyNi43NWwtOC4zMiwyLjZWMjcuMDZoLTEuNnYybC04LjQtNC4zMVYyMy4wNmgtMS42djEuNzJMNCwyOC4xMVY5'@; put 'Ljc5bDguMDgtMy4zM1Y4LjgxaDEuNlY2LjQ3bDguNCw0LjN2Mi4xaDEuNlYxMUwzMiw4LjM2WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMi4wOCIgeT0iMTUuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0i'@; put 'My44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMi4wOCIgeT0iMjEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi4wOCIgeT0iMTEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMi4wOCIgeT0iMTcuMTMiIHdpZHRoPSIx'@; put 'LjYiIGhlaWdodD0iMy43NSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMy4zMSw3LjM1LDI1LDkuOTRWMTRIMjNWMTAuMjlMMTQsNS42OFY5SDEyVjUuMjdsLTkuNjcsNEEuNTMuNTMsMCwwLDAsMiw5Ljc1VjMw'@; put 'LjQ1YS41My41MywwLDAsMCwuNzQuNDlMMTIsMjcuMTJWMjNoMnY0LjUzbDksNC42MVYyOGgydjMuNzlsOC42My0yLjdhLjUzLjUzLDAsMCwwLC4zNy0uNTFWNy44NkEuNTMuNTMsMCwwLDAsMzMuMzEsNy4zNVpNMTQsMjFIMTJWMTdoMlptMC02SDEyVjExaDJaTTI1LDI2SDIzVjIyaDJabTAt'@; put 'NkgyM1YxNmgyWiIvPicpLGwuQ2xyU2hhcGVDb21wYXNzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC44MiwxNS4zMWgwTDEwLjQ2LDljLS40Ni0uMjYtMS4xMS4zNy0uODYuODRsNi4xNSwxMC41NiwxMC41Niw2LjE1YS42Ni42NiwwLDAsMCwuODQtLjg2Wm0tNCw0LDMtMyw0LjU1'@; put 'LDcuNDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTEsMjkuOTVWMjkuNTNIMTd2Mi40MkExNCwxNCwwLDAsMSw0LjA1LDE5SDYuNDdW'@; put 'MTdINC4wNUExNCwxNCwwLDAsMSwxNyw0LjA1VjYuNDdoMlY0LjA1QTE0LDE0LDAsMCwxLDMxLjk1LDE3SDI5LjUzdjJoMi40MkExNCwxNCwwLDAsMSwxOSwzMS45NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNNi40NywxOUg0LjA1YzAtLjMzLS4wNS0uNjYtLjA1LTFzMC0uNjcuMDUtMUg2LjQ3Wk0xNyw0LjA1Yy4zMywwLC42Ni0uMDUsMS0uMDVzLjY3LDAsMSwuMDVWNi40N0gxN1ptMiwyNy45Yy0uMzMsMC0uNjYuMDUtMSwu'@; put 'MDVzLS42NywwLTEtLjA1VjI5LjUzaDJabTgtNS41OGEuNTkuNTksMCwwLDEtLjY5LjE2TDE1Ljc1LDIwLjM4LDkuNiw5LjgyYy0uMjUtLjQ3LjM5LTEuMS44Ni0uODRsMTAuMzcsNi4zM2gwbDYuMzMsMTAuMzdBLjU5LjU5LDAsMCwxLDI3LDI2LjM3Wk0yOS41MywxOVYxN2gyLjQyYzAsLjMz'@; put 'LjA1LjY2LjA1LDFzMCwuNjctLjA1LDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNi43NyAxOS4zNSAyNC4zNSAyMy43NyAxOS44IDE2LjMzIDE2Ljc3IDE5LjM1IiBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVNYXBNYXJrZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCww'@; put 'LDE4LDYuNzJabTAsOS40NmEzLjczLDMuNzMsMCwxLDEsMy43My0zLjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAs'@; put 'Ni4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAs'@; put 'MCwxOCwyWk0yMy41OSwyNGwtLjM2LjUzYy0xLjcyLDIuNTgtNCw1LjQ3LTUuMjMsNi45LTEuMTgtMS40My0zLjUxLTQuMzItNS4yMy02LjlMMTIuNDIsMjRjLTEuNzctMi42NC00LjItNi4yNS00LjItMTAuMzFhOS43OCw5Ljc4LDAsMSwxLDE5LjU2LDBDMjcuNzgsMTcuNzksMjUuMzYsMjEu'@; put 'NCwyMy41OSwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40'@; put 'NmEzLjczLDMuNzMsMCwxLDEsMy43My0zLjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OWE3LjQ5LDcuNDks'@; put 'MCwwLDEtMi0uMzNjMCwuMTksMCwuMzgsMCwuNTcsMCw0LjA2LTIuNDIsNy42Ny00LjE5LDEwLjMxbC0uMzYuNTNjLTEuNzIsMi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMUE5Ljc3'@; put 'LDkuNzcsMCwwLDEsMjIuNTYsNS4wOWE3LjQ1LDcuNDUsMCwwLDEsLjUyLTJBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCww'@; put 'LDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh'@; put 'ZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTExLjc5LDExLjc5LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDEx'@; put 'LjQzbC4zNS41MmE5OS42MSw5OS42MSwwLDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1LDQuNTMtMTEuNDJBMTEuNzksMTEuNzksMCwwLDAsMTgsMlptMCwxN2E2LjU2LDYuNTYsMCwxLDEsNi41Ni02'@; put 'LjU2QTYuNTYsNi41NiwwLDAsMSwxOCwxOVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk'@; put 'LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzgsMTFhNi41OCw2LjU4LDAsMSwxLTEuNjEtMyw3LjQyLDcuNDIsMCwwLDEsLjMxLTQuODRBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42'@; put 'Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIxMi40NCIgcj0iMy43MyIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxsLkNsclNoYXBlQmljeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOC41LDI5LjY1QTYuNTEsNi41MSwwLDAsMSwyLDIzLjE1YTYuMzksNi4zOSwwLDAsMSw2LjUt'@; put 'Ni4zNkE2LjM5LDYuMzksMCwwLDEsMTUsMjMuMTUsNi41MSw2LjUxLDAsMCwxLDguNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDguNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9'@; put 'Ik0yNy41LDI5LjY1YTYuNTEsNi41MSwwLDAsMS02LjUtNi41LDYuNSw2LjUsMCwwLDEsMTMsMEE2LjUxLDYuNTEsMCwwLDEsMjcuNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDI3LjUsMTguNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTksMjQuNjZIOGExLDEsMCwwLDEtLjg5LTEuNDVsNS0xMCwxLjc4LjlMOS42MiwyMi43M0gxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxyZWN0IHg9IjEzIiB5PSIxMi42OCIgd2lkdGg9IjEx'@; put 'IiBoZWlnaHQ9IjEuOTEiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yOCwyNC42NmExLDEsMCwwLDEtLjk0LS42NkwyMi4yOSwxMC42NkgyMGExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLS45M2gzYS45NC45NCwwLDAsMSwuOTQuNmw1'@; put 'LDE0YTEsMSwwLDAsMS0uNiwxLjI3QTEsMSwwLDAsMSwyOCwyNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMywxNC42NmExLDEsMCwwLDEtLjcxLS4yOWwtMS43LTEuNzFIOGExLDEsMCwwLDEtMS0xLC45NC45NCwwLDAsMSwx'@; put 'LTFoM2ExLjA4LDEuMDgsMCwwLDEsLjc1LjI3bDIsMmExLDEsMCwwLDEsMCwxLjQxQTEsMSwwLDAsMSwxMywxNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNSwyMS45Yy0wLjItMi0xLjItMy44LTIuOS00LjlsLTIuNSw0LjlI'@; put 'MTV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik03LjIsMjMuNGMtMC4yLTAuMy0wLjItMC43LDAtMWwzLjItNi4zYy0wLjYtMC4yLTEuMi0wLjItMS44LTAuMkM1LDE1LjksMiwxOC44LDIsMjIuNGMwLDMuNiwyLjksNi41LDYuNSw2LjVcblx0'@; put 'YzMsMCw1LjYtMi4xLDYuMy01SDhDNy43LDIzLjksNy4zLDIzLjcsNy4yLDIzLjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOSwyMS45aC00YzAsMC4yLDAsMC4zLDAsMC41YzAsMC41LTAuMSwxLTAuMiwxLjVIMTlWMjEuOXoiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjUsMTUuOWMtMC4zLDAtMC42LDAtMC45LDAuMWwyLjQsNi42YzAuMiwwLjUtMC4xLDEuMS0wLjYsMS4zYy0wLjEsMC0wLjIsMC4xLTAuMywwLjFjLTAuNCwwLTAuOC0wLjMtMC45LTAuN2wtMi40LTYuN1xu'@; put 'XHRjLTMuMiwxLjYtNC41LDUuNS0zLDguN2MxLjYsMy4yLDUuNSw0LjUsOC43LDNjMy4yLTEuNiw0LjUtNS41LDMtOC43QzMyLjIsMTcuMywzMCwxNS45LDI3LjUsMTUuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTI0LjcsMTYuN2MwLjYt'@; put 'MC4zLDEuMy0wLjUsMS45LTAuNmwtMi43LTcuNEMyMy44LDguMiwyMy40LDgsMjMsNy45aC0zYy0wLjYsMC0xLDAuNS0xLDEuMWMwLDAuNSwwLjQsMC45LDEsMC45XG5cdGMwLDAsMCwwLDAsMGgyLjNsMC43LDJoLTkuNmwtMS43LTEuN0MxMS41LDEwLjEsMTEuMywxMCwxMSwxMEg4Yy0wLjYs'@; put 'MC0xLDAuNC0xLDFzMC40LDEsMSwxaDIuNmwxLjIsMS4ybC0xLjUsM1xuXHRjMC42LDAuMiwxLjMsMC41LDEuOCwwLjhsMS42LTMuMmgxMEwyNC43LDE2Ljd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGwuQ2xyU2hhcGVCb2F0PSgwLGEuY2xySWNvblNW'@; put 'RykoJzxwYXRoIGQ9Ik0yOS4xLDI3LjFDMjgsMjcsMjYuOSwyNy40LDI2LDI4LjJjLTEuMSwxLjEtMi45LDEuMS00LjEsMGMtMS0wLjctMi4xLTEuMS0zLjMtMS4xYy0xLjItMC4xLTIuNCwwLjMtMy4zLDEuMVxuXHRcdEMxNC43LDI4LjcsMTQsMjksMTMuMiwyOXMtMS41LTAuMy0yLjEtMC44'@; put 'Yy0xLTAuOC0yLjItMS4yLTMuNC0xLjJzLTIuNCwwLjQtMy40LDEuMkMzLjcsMjguNywyLjgsMjksMiwyOXYyXG5cdFx0YzEuMywwLjEsMi42LTAuMywzLjYtMS4yQzYuMiwyOS4zLDcuMSwyOSw3LjksMjljMC43LDAsMS41LDAuMywyLjEsMC44YzEuOCwxLjYsNC42LDEuNiw2LjUsMGMwLjYt'@; put 'MC41LDEuMy0wLjgsMi4xLTAuOFxuXHRcdGMwLjcsMCwxLjQsMC4zLDIsMC44YzEuOSwxLjYsNC42LDEuNiw2LjUsMGMwLjUtMC41LDEuMy0wLjgsMi0wLjhjMC43LDAsMS40LDAuMywxLjksMC44YzAuOSwwLjcsMS45LDEuMSwzLDEuMnYtMlxuXHRcdGMtMSwwLTEuMi0wLjQtMS43LTAuOEMz'@; put 'MS40LDI3LjUsMzAuMywyNy4xLDI5LjEsMjcuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDIzYzAtMC42LDAuNS0xLDEuMS0xSDMybC0zLjUsMy4xaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yYzAu'@; put 'Ny0wLjgsMC42LTIuMS0wLjItMi44XG5cdFx0QzMzLDIwLjIsMzIuNiwyMCwzMi4xLDIwaC0yNWMtMS43LDAtMywxLjMtMywzdjMuMmMwLjUtMC41LDEuMi0wLjgsMS45LTEuMVYyM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik04Ljks'@; put 'MTlIMTV2LTcuOGMwLTAuNi0wLjMtMS4yLTAuOC0xLjZDMTMuMyw4LjksMTIsOS4xLDExLjQsMTBsLTQuMSw1LjljLTAuNCwwLjYtMC40LDEuNC0wLjEsMi4xQzcuNSwxOC42LDguMiwxOSw4LjksMTlcblx0XHR6IE0xMy4xLDExLjJMMTMsMTdIOC45TDEzLjEsMTEuMnoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNiwxOGMwLjQtMC42LDAuNC0xLjQsMC0yTDE5LjcsNS42Yy0wLjQtMC42LTEtMS0xLjctMWMtMS4xLDAtMiwwLjktMiwyVjE5aDguM0MyNSwxOSwyNS43LDE4LjYsMjYsMTh6IE0xNy45LDYuNlxuXHRcdGw2LjQs'@; put 'MTAuNWgtNi40VjYuNnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zNCwzMWMtMS4xLTAuMS0yLjEtMC41LTMtMS4yYy0wLjUtMC41LTEuMi0wLjgtMi0wLjhjLTAuNywwLTEuNSwwLjMtMiwwLjhjLTAuOSwwLjgtMiwxLjEtMy4xLDEu'@; put 'MWMtMS4yLDAtMi40LTAuNC0zLjMtMS4xXG5cdGMtMS4yLTEuMS0zLTEuMS00LjEsMGMtMC45LDAuOC0yLjEsMS4yLTMuNCwxLjJjLTEuMiwwLTIuMy0wLjQtMy4yLTEuMmMtMC42LTAuNS0xLjMtMC44LTItMC44Yy0wLjgsMC0xLjcsMC4zLTIuMywwLjhcblx0Yy0xLDAuOC0yLjMsMS4yLTMu'@; put 'NSwxLjFWMjljMC44LDAsMS43LTAuMywyLjMtMC45YzEtMC44LDIuMi0xLjIsMy40LTEuMWMxLjIsMCwyLjQsMC40LDMuMywxLjJjMS4yLDEuMSwzLDEuMSw0LjIsMFxuXHRjMS45LTEuNiw0LjctMS42LDYuNSwwYzEuMiwxLjEsMywxLjEsNC4xLDBjMC45LTAuOCwyLjEtMS4yLDMuMy0xLjJj'@; put 'MS4xLDAsMi4yLDAuNCwzLDEuMkMzMi44LDI4LjcsMzMsMjksMzQsMjlMMzQsMzF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjEsMjYuMmMwLjYtMC41LDEuMi0wLjgsMS45LTFWMjNjMC0wLjYsMC40LTEuMSwxLTEuMWgyNUwyOC40LDI1'@; put 'aDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yXG5cdGMwLjctMC45LDAuNS0yLjEtMC40LTIuOEMzMi45LDIwLjEsMzIuNCwyMCwzMiwyMEg3Yy0xLjcsMC0zLDEuMy0zLDNMNC4xLDI2LjJMNC4xLDI2LjJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC45LDE4LjlIOC45Yy0xLjEsMC0yLTAuOS0yLTJjMC0wLjQsMC4xLTAuOCwwLjQtMS4ybDQuMS01LjhjMC42LTAuOSwxLjktMS4xLDIuOC0wLjVjMC41LDAuNCwwLjgsMSwwLjgsMS42VjE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNC4zLDE4LjlIMTZWNi40YzAtMS4xLDAuOS0yLDItMmMwLjcsMCwxLjMsMC40LDEuNywxTDI2LDE1LjhjMC42LDEsMC4yLDIuMi0wLjcsMi43QzI1LDE4LjcsMjQuNiwxOC44LDI0LjMsMTguOVxuXHRMMjQuMywxOC45eiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxsLkNsclNoYXBlQ2FtcGVydmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik05LjUsMjRDOS41LDI0LDkuNSwyNCw5LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVjMCwwLDAsMCwwLDBDNiwyOS40LDcuNiwzMSw5LjUsMzFjMS45LDAsMy41'@; put 'LTEuNiwzLjUtMy41XG5cdFx0UzExLjQsMjQsOS41LDI0eiBNOS41LDI5QzguNywyOSw4LDI4LjMsOCwyNy41UzguNywyNiw5LjUsMjZzMS41LDAuNywxLjUsMS41UzEwLjMsMjksOS41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0i'@; put 'TTIzLjUsMjRDMjMuNSwyNCwyMy41LDI0LDIzLjUsMjRjLTEuOSwwLTMuNSwxLjYtMy41LDMuNWMwLDAsMCwwLDAsMGMwLDEuOSwxLjUsMy41LDMuNSwzLjVjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzI1LjQsMjQsMjMuNSwyNHogTTIzLjUsMjljLTAuOCwwLTEuNS0wLjctMS41LTEu'@; put 'NXMwLjctMS41LDEuNS0xLjVzMS41LDAuNywxLjUsMS41UzI0LjMsMjksMjMuNSwyOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMywyMC4xVjIwaC0wLjFsLTMuNS01LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4zVjkuN0MzMiw3LjEs'@; put 'MjkuOSw1LDI3LjMsNWgtOC41Yy0xLjksMC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM1xuXHRcdHYxN2gyVjExYzAtMC42LDAuNC0xLDEtMWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIu'@; put 'Ny0yLjcsMi43SDI0djloNy44XG5cdFx0bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wzMywyMC4xeiBNMjYsMjB2LTVoMS41bDMuMSw1SDI2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3Qg'@; put 'eD0iMTkiIHk9IjkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAsMjIgMjIsMjIgMjIsMTMgMTUsMTMgMTUsMjggMTcsMjggMTcsMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik02LDIwaDd2LTdINlYyMHogTTgsMTVoM3YzSDhWMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOS41LDI0QzcuNiwyNCw2LDI1LjYsNiwyNy41UzcuNiwzMSw5LjUs'@; put 'MzFjMCwwLDAsMCwwLDBjMS45LDAsMy41LTEuNiwzLjUtMy41YzAsMCwwLTAuMSwwLTAuMUMxMywyNS41LDExLjQsMjQsOS41LDI0eiJcblx0XHQgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIyMy41IiBjeT0iMjcuNSIgcj0iMy41IiBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOS41LDE0LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4yVjkuN2MwLDAsMCwwLDAtMC4xQzMyLDcsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjksMC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM3YxN1xu'@; put 'XHRcdGgyVjExYzAtMC42LDAuNC0xLDEtMWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI3aC0zdjloNy44XG5cdFx0bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMx'@; put 'LjcsMCwzLTEuMywzLTN2LTMuM0wyOS41LDE0LjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxyZWN0IHg9IjE5IiB5PSI5IiB3aWR0aD0iNy45IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBvbHlnb24g'@; put 'cG9pbnRzPSIyMCwyMiAyMS45LDIyIDIxLjksMTMgMTUsMTMgMTUsMjggMTYuOSwyOCAxNi45LDE1IDIwLDE1IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxyZWN0IHg9IjYiIHk9IjEzIiB3aWR0aD0iNi45IiBoZWlnaHQ9IjciIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+JyksbC5DbHJTaGFwZUNhcmF2YW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEzLjUsMjFDMTEsMjEsOSwyMyw5LDI1LjVzMiw0LjUsNC41LDQuNWMyLjUsMCw0LjUtMiw0LjUtNC41QzE4LDIzLDE2LDIxLDEzLjUsMjF6IE0xMy41LDI4'@; put 'Yy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVcblx0XHRzMS4xLTIuNSwyLjUtMi41czIuNSwxLjEsMi41LDIuNVMxNC45LDI4LDEzLjUsMjh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQt'@; put 'MS41bC00LjItNy41Yy0wLjUtMS0xLjUtMS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRcdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiwwLjksMC41bDQuMiw3LjVjMC4xLDAuMSww'@; put 'LjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJoLTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRcdGMwLjYsMCwxLTAuNCwxLTFTMzMuNiwyNCwzMywyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxMkg3djZoOVYxMnogTTE0LDE2SDl2'@; put 'LTJoNVYxNnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMy41LDMwQzExLDMwLDksMjgsOSwyNS41czItNC41LDQuNS00LjVzNC41LDIsNC41LDQuNUMxOCwyOCwxNiwzMCwxMy41LDMweiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p'@; put 'LXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUtMS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRjLTAuNiwwLTEtMC40LTEtMVY5YzAtMC42'@; put 'LDAuNC0xLDEtMWgxOC44YzAuNCwwLDAuNywwLjIsMC45LDAuNWw0LjIsNy41YzAuMSwwLjEsMC4xLDAuMywwLjEsMC41VjI0aC00VjEyaC03djhoMnYtNmgzdjEwaC0zdjJoMTNcblx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMTYsMThIN3YtNmg5VjE4eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxsLkNsclNoYXBlRmVycnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDI1LjFjLTEuMiwwLTIuMywwLjQtMy4zLDEuMWMwLDAs'@; put 'MCwwLDAsMGMtMS4xLDEuMS0zLDEuMS00LjEsMGMtMC45LTAuOC0yLjEtMS4yLTMuMy0xLjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMlxuXHRcdGMtMS4yLDEuMS0zLDEuMS00LjIsMEMxMCwyNS40LDguOCwyNSw3LjYsMjVjLTEuMiwwLTIuNCwwLjQtMy40LDEuMUMzLjYsMjYuNywyLjgsMjcs'@; put 'MiwyN3YyYzEuMywwLjEsMi41LTAuNCwzLjQtMS4yXG5cdFx0QzYuMSwyNy4zLDYuOSwyNyw3LjcsMjdjMC44LDAsMS41LDAuMywyLjEsMC44YzEuOSwxLjYsNC43LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhcblx0XHRjMS45LDEuNiw0'@; put 'LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4zLTAuOCwyLTAuOGMwLjcsMCwxLjUsMC4zLDIsMC44YzAuOSwwLjcsMiwxLjEsMy4xLDEuMnYtMS45Yy0wLjcsMC0xLjQtMC4zLTEuOS0wLjlcblx0XHRDMzEuMywyNS40LDMwLjEsMjUsMjksMjUuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjksMjMuMlYyMEgzMmwtMy41LDNoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC41LTAuNiwwLjUtMS40LDAuMi0yLjFjLTAuNC0wLjctMS0xLTEuOC0xaC00LjRcblx0XHRMMjIuNSwxMUgxN2MtMS43LDAt'@; put 'MywxLjMtMywzaC0yVjguMUg2djYuMWMtMS4yLDAuNC0yLDEuNS0yLDIuOHYxLjFWMjB2NC4zbDAuMS0wLjFDNC42LDIzLjcsNS4yLDIzLjQsNS45LDIzLjJ6IE04LDEwaDJ2NEg4VjEwelxuXHRcdCBNNiwxN2MwLTAuNiwwLjQtMSwxLTFoOXYtMmMwLTAuNiwwLjQtMSwxLTFoNWwwLjYsMUgx'@; put 'OHYyaDUuOGwxLjIsMi4xSDZWMTd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjguMiwyNWMtMS4yLDAtMi40LDAuNC0zLjMsMS4yYy0xLjIsMS4xLTMsMS4xLTQuMSwwYy0xLjktMS42LTQuNi0xLjYtNi41LDBjLTEuMiwxLjEtMi45'@; put 'LDEuMS00LjEsMFxuXHRcdGMtMC45LTAuOC0yLTEuMi0zLjItMS4yYy0xLjIsMC0yLjMsMC40LTMuMiwxLjJDMy40LDI2LjcsMi43LDI3LDIsMjd2MmMxLjEtMC4xLDIuMi0wLjUsMy4xLTEuMkM1LjYsMjcuMyw2LjMsMjcsNywyN1xuXHRcdGMwLjcsMCwxLjUsMC4zLDIsMC44YzEuOSwxLjYs'@; put 'NC43LDEuNiw2LjYsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwXG5cdFx0YzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNiwwLjMsMi4xLDAuOGMwLjksMC44LDIuMiwxLjMsMy40LDEuMnYtMmMtMC44'@; put 'LDAtMS42LTAuMy0yLjItMC44QzMwLjcsMjUuNCwyOS41LDI1LDI4LjIsMjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjgsMjMuMnYtMy4zaDI2LjFMMjguNCwyM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4xLTAu'@; put 'MmMwLjctMC45LDAuNS0yLjEtMC40LTIuOGMtMC4zLTAuMy0wLjgtMC40LTEuMi0wLjRcblx0XHRoLTQuMWwtNS40LTdoLTUuNWMtMS43LDAtMywxLjMtMywzaC0yVjhINnY2LjJjLTEuMiwwLjQtMi4xLDEuNS0yLjEsMi44bDAsNy4ybDAuMSwwQzQuNSwyMy43LDUuMSwyMy40LDUuOCwyMy4y'@; put 'eiBNMTcuOSwxNGg0LjJcblx0XHRsMS40LDJoLTUuN1YxNHogTTcuOSwxMGgydjRoLTJWMTB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVUcmFpbGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01Ljgs'@; put 'Mi42LTUuOCw1LjhzMi42LDUuOCw1LjgsNS44czUuOC0yLjYsNS44LTUuOFMxOC4yLDE5LjIsMTUsMTkuMnogTTE1LDI5LjJjLTIuMywwLTQuMi0xLjktNC4yLTQuMlxuXHRcdHMxLjktNC4yLDQuMi00LjJzNC4yLDEuOSw0LjIsNC4yUzE3LjMsMjkuMiwxNSwyOS4yeiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHJlY3QgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOUgydjEzLjFjMCwwLDAsMCwwLDBDMiwyNC4zLDMuNywy'@; put 'Niw1LjksMjZIN3YtMkg1LjljLTEsMC0xLjgtMC44LTEuOS0xLjlWMTVoMjJ2Ny4xYzAsMS0wLjgsMS44LTEuOSwxLjlIMjN2MmgxLjFcblx0XHRjMCwwLDAsMCwwLDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiBNMjYsMTNINHYtMmgy'@; put 'MlYxM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgtMS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEu'@; put 'OUgyM3YyaDEuMVxuXHRjMCwwLDAsMCwwLDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTkuMmMtMy4yLDAtNS44LDIuNi01LjgsNS44'@; put 'czIuNiw1LjgsNS44LDUuOHM1LjgtMi42LDUuOC01LjhsMCwwQzIwLjgsMjEuOCwxOC4yLDE5LjIsMTUsMTkuMnogTTE2LDI2aC0ydi0yaDJWMjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGwuQ2xyU2hhcGVPbkhvbGlkYXk9KDAsYS5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggZD0iTTE4LjA4LDIuMzRjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRBMTcuOTEsMTcuOTEsMCwwLDAsMjMsMjkuNjZsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zLDEsMSwwLDAsMCwuMTYtLjU0VjI1LjYxYTEzLDEzLDAsMCwwLDQtOS4yN0MzNC4wOCw4'@; put 'LjYyLDI2LjksMi4zNCwxOC4wOCwyLjM0Wk0yOC4zNywyNC40NWExLDEsMCwwLDAtLjMyLjczdjUuMzRsLTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMSwxNiwxNiwwLDAsMS00Ljc2LjcyYy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMSwx'@; put 'MS4xLDAsMCwxLDI4LjM3LDI0LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjEsMTUuODIsMzEsMTUuNjcsMjguNSwxMy40NGEzLjI1LDMuMjUsMCwwLDAtMi4zOS0uODRsLTUuMzguMzQtMy41OS0zYS44MS44MSwwLDAs'@; put 'MC0uNTItLjE5SDEzLjU2YS43OC43OCwwLDAsMC0uNjkuNC43Ny43NywwLDAsMCwwLC43OWwxLjM2LDIuNDQtNC43MS4yOSwxLjMxLDEuNTIsMTUuMzktMWExLjY1LDEuNjUsMCwwLDEsMS4yMi40M2wyLjM2LDIuMTNhLjExLjExLDAsMCwxLDAsLjA3YzAsLjA2LS4wOS4wNS0uMS4wNkgyMS44'@; put 'MmwtLjM1LjM3LTUuMTksNS41M0gxNC42NGwyLjczLTUuOUg4LjU0TDcuMTMsMTQuMTYsNi41MSwxM2EuOC44LDAsMCwwLTEtLjJBLjgxLjgxLDAsMCwwLDUuMiwxMy45bDIsMy45NGExLjIxLDEuMjEsMCwwLDAsMS4wOC42NWg2LjU3bC0xLjk0LDQuMThBMS4yLDEuMiwwLDAsMCwxMywyMy44'@; put 'M2ExLjIyLDEuMjIsMCwwLDAsMSwuNTZoMi40M2ExLjE3LDEuMTcsMCwwLDAsLjg4LS4zOWw1LjE4LTUuNTFoNy4xNmExLjY1LDEuNjUsMCwwLDAsMS41Mi0uOTFBMS43NCwxLjc0LDAsMCwwLDMxLjEsMTUuODJaTTE0LjkyLDExLjMxaDEuNDFsMi4wOSwxLjc3TDE2LDEzLjIzWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTcuOTEsMTcuOTEsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zQTEsMSwwLDAsMCwz'@; put 'MCwzMi41VjI1Ljc3YTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI5Ljg0LDE4SDIxLjUxYS40Mi40MiwwLDAsMC0uMy4xM2wtNS4zLDUuNjRhLjM5LjM5LDAsMCwxLS4yOS4xM0gxMy4xOWEuNDEuNDEsMCwwLDEtLjM3LS41OGwyLjQ3LTUuMzJINy40NmEu'@; put 'NDIuNDIsMCwwLDEtLjM2LS4yMmwtMi43LTVINi4yNGEuNTMuNTMsMCwwLDEsLjM5LjE4bDEuNTYsMS42OWEuMzguMzgsMCwwLDAsLjMzLjE0bDYuMTgtLjM4LTItMy41NWgyLjg5YS40Ny40NywwLDAsMSwuMzEuMTFMMTkuNjMsMTRsNi42OS0uMzVhMi40NCwyLjQ0LDAsMCwxLDEuODEuNjNs'@; put 'Mi40NywyLjIzQS45Mi45MiwwLDAsMSwyOS44NCwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksbC5UcmF2ZWxTaGFwZXM9e3RydWNrOmwuQ2xyU2hhcGVUcnVjayxhaXJwbGFuZTpsLkNsclNoYXBlQWlycGxhbmUsY2FyOmwuQ2xyU2hhcGVDYXIs'@; put 'bWFwOmwuQ2xyU2hhcGVNYXAsY29tcGFzczpsLkNsclNoYXBlQ29tcGFzcywibWFwLW1hcmtlciI6bC5DbHJTaGFwZU1hcE1hcmtlcixiaWN5Y2xlOmwuQ2xyU2hhcGVCaWN5Y2xlLGJvYXQ6bC5DbHJTaGFwZUJvYXQsY2FtcGVydmFuOmwuQ2xyU2hhcGVDYW1wZXJ2YW4sY2FyYXZhbjpsLkNs'@; put 'clNoYXBlQ2FyYXZhbixmZXJyeTpsLkNsclNoYXBlRmVycnksdHJhaWxlcjpsLkNsclNoYXBlVHJhaWxlciwib24taG9saWRheSI6bC5DbHJTaGFwZU9uSG9saWRheX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGwuVHJhdmVsU2hhcGVzLCJwbGFuZSIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShs'@; put 'LlRyYXZlbFNoYXBlcy5haXJwbGFuZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLlRyYXZlbFNoYXBlcywiYXV0byIsKDAscC5kZXNjcmlwdG9yQ29uZmlnKShsLlRyYXZlbFNoYXBlcy5jYXIpKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNv'@; put 'bnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQobC5UcmF2ZWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAg'@; put 'ICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMgKioqIQogICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oTSxs'@; put 'LEgpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbC5kZXNjcmlwdG9yQ29uZmlnPXZvaWQgMCxsLmRlc2NyaXB0b3JDb25maWc9ZnVuY3Rpb24ocCl7cmV0dXJue2VudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsY29uZmlndXJh'@; put 'YmxlOiEwLHZhbHVlOnB9fX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAhKioqIC4vcHJvamVjdHMv'@; put 'aWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzICoqKiEKICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKE0sbCxIKXsi'@; put 'dXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGwuU2hhcGVUZW1wbGF0ZU9ic2VydmVyPWwuY2hhbmdlSGFuZGxlckNhbGxiYWNrcz12b2lkIDAsbC5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXt9O3ZhciBwPShPYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHkoYSwiaW5zdGFuY2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5zaW5nbGVJbnN0YW5jZT1hLnNpbmdsZUluc3RhbmNlP2Euc2luZ2xlSW5zdGFuY2U6bmV3IGF9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuc3Vic2NyaWJlVG89ZnVuY3Rp'@; put 'b24odixrKXt2YXIgUz10aGlzO3JldHVybiB0aGlzLmNhbGxiYWNrc1t2XT8tMT09PXRoaXMuY2FsbGJhY2tzW3ZdLmluZGV4T2YoaykmJnRoaXMuY2FsbGJhY2tzW3ZdLnB1c2goayk6dGhpcy5jYWxsYmFja3Nbdl09W2tdLGZ1bmN0aW9uKCl7dmFyIEQ9Uy5jYWxsYmFja3Nbdl0uaW5kZXhP'@; put 'ZihrKTtTLmNhbGxiYWNrc1t2XS5zcGxpY2UoRCwxKSwwPT09Uy5jYWxsYmFja3Nbdl0ubGVuZ3RoJiZkZWxldGUgUy5jYWxsYmFja3Nbdl19fSxhLnByb3RvdHlwZS5lbWl0Q2hhbmdlcz1mdW5jdGlvbih2LGspe3RoaXMuY2FsbGJhY2tzW3ZdJiZ0aGlzLmNhbGxiYWNrc1t2XS5tYXAoZnVu'@; put 'Y3Rpb24oUyl7UyhrKX0pfSxhKTtmdW5jdGlvbiBhKCl7dGhpcy5jYWxsYmFja3M9bC5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzfWwuU2hhcGVUZW1wbGF0ZU9ic2VydmVyPXB9LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyI6Ci8qISoqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyAqKiohCiAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihNLGwsSCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsLmNsckljb25TVkc9dm9pZCAwLGwuY2xySWNvblNWRz1mdW5jdGlvbihwKXt2'@; put 'YXIgYT0iIjtyZXR1cm4tMTxwLmluZGV4T2YoIi0tYmFkZ2VkIikmJihhKz0iY2FuLWJhZGdlICIpLC0xPHAuaW5kZXhPZigiLS1hbGVydGVkIikmJihhKz0iY2FuLWFsZXJ0ICIpLC0xPHAuaW5kZXhPZigiY2xyLWktc29saWQiKSYmKGErPSJoYXMtc29saWQgIiksKGE/JzxzdmcgdmVyc2lv'@; put 'bj0iMS4xIiBjbGFzcz0iJythKyciIHZpZXdCb3g9IjAgMCAzNiAzNiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1'@; put 'c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6JzxzdmcgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3'@; put 'dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIj4nKStwKyI8L3N2Zz4ifX19LHo9e30sYi5tPWosYi5jPXosYi5kPWZ1bmN0aW9uKE0sbCxIKXtiLm8oTSxsKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KE0sbCx7ZW51bWVyYWJsZTohMCxnZXQ6SH0pfSxi'@; put 'LnI9ZnVuY3Rpb24oTSl7dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KE0sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0s'@; put 'Yi50PWZ1bmN0aW9uKE0sbCl7aWYoMSZsJiYoTT1iKE0pKSw4Jmx8fDQmbCYmIm9iamVjdCI9PXR5cGVvZiBNJiZNJiZNLl9fZXNNb2R1bGUpcmV0dXJuIE07dmFyIEg9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihiLnIoSCksT2JqZWN0LmRlZmluZVByb3BlcnR5KEgsImRlZmF1bHQiLHtlbnVt'@; put 'ZXJhYmxlOiEwLHZhbHVlOk19KSwyJmwmJiJzdHJpbmciIT10eXBlb2YgTSlmb3IodmFyIHAgaW4gTSliLmQoSCxwLGZ1bmN0aW9uKGEpe3JldHVybiBNW2FdfS5iaW5kKG51bGwscCkpO3JldHVybiBIfSxiLm49ZnVuY3Rpb24oTSl7dmFyIGw9TSYmTS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7'@; put 'cmV0dXJuIE0uZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gTX07cmV0dXJuIGIuZChsLCJhIixsKSxsfSxiLm89ZnVuY3Rpb24oTSxsKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE0sbCl9LGIucD0iIixiKGIucz0iLi9wcm9qZWN0cy9pY29ucy9zcmMv'@; put 'Y2xyLWljb25zLXNmeC50cyIpO2Z1bmN0aW9uIGIoTSl7aWYoeltNXSlyZXR1cm4geltNXS5leHBvcnRzO3ZhciBsPXpbTV09e2k6TSxsOiExLGV4cG9ydHM6e319O3JldHVybiBqW01dLmNhbGwobC5leHBvcnRzLGwsbC5leHBvcnRzLGIpLGwubD0hMCxsLmV4cG9ydHN9dmFyIGosen0pLGZ1'@; put 'bmN0aW9uKGIsail7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZ0eXBlb2YgbW9kdWxlPCJ1Ij9qKGV4cG9ydHMpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsiZXhwb3J0cyJdLGopOmooKGI9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6'@; put 'Ynx8c2VsZikubWFya2VkPXt9KX0odGhpcyxmdW5jdGlvbihiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaihuLHMpe2Zvcih2YXIgdD0wO3Q8cy5sZW5ndGg7dCsrKXt2YXIgZT1zW3RdO2UuZW51bWVyYWJsZT1lLmVudW1lcmFibGV8fCExLGUuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBl'@; put 'JiYoZS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInN5bWJvbCI9PXR5cGVvZihpPWZ1bmN0aW9uKHIsYyl7aWYoIm9iamVjdCIhPXR5cGVvZiByfHxudWxsPT09cilyZXR1cm4gcjt2YXIgaD1yW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwPT09aClyZXR1cm4g'@; put 'U3RyaW5nKHIpO2lmKCJvYmplY3QiIT10eXBlb2YoaD1oLmNhbGwociwic3RyaW5nIikpKXJldHVybiBoO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9KGk9ZS5rZXkpKT9pOlN0cmluZyhpKSxlKX12YXIgaX1mdW5j'@; put 'dGlvbiB6KCl7cmV0dXJuKHo9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihuKXtmb3IodmFyIHM9MTtzPGFyZ3VtZW50cy5sZW5ndGg7cysrKXt2YXIgdCxlPWFyZ3VtZW50c1tzXTtmb3IodCBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHku'@; put 'Y2FsbChlLHQpJiYoblt0XT1lW3RdKX1yZXR1cm4gbn0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKG4scyl7KG51bGw9PXN8fHM+bi5sZW5ndGgpJiYocz1uLmxlbmd0aCk7Zm9yKHZhciB0PTAsZT1uZXcgQXJyYXkocyk7dDxzO3QrKyllW3RdPW5bdF07cmV0dXJuIGV9ZnVu'@; put 'Y3Rpb24gbChuLHMpe3ZhciB0LGU9dHlwZW9mIFN5bWJvbDwidSImJm5bU3ltYm9sLml0ZXJhdG9yXXx8blsiQEBpdGVyYXRvciJdO2lmKGUpcmV0dXJuKGU9ZS5jYWxsKG4pKS5uZXh0LmJpbmQoZSk7aWYoQXJyYXkuaXNBcnJheShuKXx8KGU9ZnVuY3Rpb24oaSxyKXt2YXIgYztpZihpKXJl'@; put 'dHVybiJzdHJpbmciPT10eXBlb2YgaT9NKGkscik6Ik1hcCI9PT0oYz0iT2JqZWN0Ij09PShjPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpKS5zbGljZSg4LC0xKSkmJmkuY29uc3RydWN0b3I/aS5jb25zdHJ1Y3Rvci5uYW1lOmMpfHwiU2V0Ij09PWM/QXJyYXkuZnJvbShpKToi'@; put 'QXJndW1lbnRzIj09PWN8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGMpP00oaSxyKTp2b2lkIDB9KG4pKXx8cyYmbiYmIm51bWJlciI9PXR5cGVvZiBuLmxlbmd0aClyZXR1cm4gZSYmKG49ZSksdD0wLGZ1bmN0aW9uKCl7cmV0dXJuIHQ+PW4ubGVu'@; put 'Z3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpuW3QrK119fTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEg'@; put 'W1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIEg9MDtmdW5jdGlvbiBwKG4pe3JldHVybiJfX3ByaXZhdGVfIitIKysrIl8iK259ZnVuY3Rpb24gYShuLHMpe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHMpKXJldHVybiBuO3Rocm93IG5ldyBUeXBl'@; put 'RXJyb3IoImF0dGVtcHRlZCB0byB1c2UgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKX1mdW5jdGlvbiB2KCl7cmV0dXJue2FzeW5jOiExLGJhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hs'@; put 'aWdodDpudWxsLGhvb2tzOm51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHho'@; put 'dG1sOiExfX1mdW5jdGlvbiBrKG4pe2IuZGVmYXVsdHM9bn1mdW5jdGlvbiBTKG4pe3JldHVybiBPW25dfWIuZGVmYXVsdHM9e2FzeW5jOiExLGJhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdo'@; put 'dDpudWxsLGhvb2tzOm51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1s'@; put 'OiExfTt2YXIgRD0vWyY8PiInXS8seD1uZXcgUmVnRXhwKEQuc291cmNlLCJnIiksRz0vWzw+IiddfCYoPyEoI1xkezEsN318I1tYeF1bYS1mQS1GMC05XXsxLDZ9fFx3Kyk7KS8sUD1uZXcgUmVnRXhwKEcuc291cmNlLCJnIiksTz17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsi'@; put 'LCciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7In07ZnVuY3Rpb24gVChuLHMpe2lmKHMpe2lmKEQudGVzdChuKSlyZXR1cm4gbi5yZXBsYWNlKHgsUyl9ZWxzZSBpZihHLnRlc3QobikpcmV0dXJuIG4ucmVwbGFjZShQLFMpO3JldHVybiBufXZhciB0MT0vJigjKD86XGQrKXwoPzojeFswLTlBLUZh'@; put 'LWZdKyl8KD86XHcrKSk7Py9naTtmdW5jdGlvbiBRKG4pe3JldHVybiBuLnJlcGxhY2UodDEsZnVuY3Rpb24ocyx0KXtyZXR1cm4iY29sb24iPT09KHQ9dC50b0xvd2VyQ2FzZSgpKT8iOiI6IiMiPT09dC5jaGFyQXQoMCk/IngiPT09dC5jaGFyQXQoMSk/U3RyaW5nLmZyb21DaGFyQ29kZShw'@; put 'YXJzZUludCh0LnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK3Quc3Vic3RyaW5nKDEpKToiIn0pfXZhciBZPS8oXnxbXlxbXSlcXi9nO2Z1bmN0aW9uIHcobixzKXtuPSJzdHJpbmciPT10eXBlb2Ygbj9uOm4uc291cmNlLHM9c3x8IiI7dmFyIHQ9e3JlcGxhY2U6ZnVu'@; put 'Y3Rpb24oZSxpKXtyZXR1cm4gaT0oaT1pLnNvdXJjZXx8aSkucmVwbGFjZShZLCIkMSIpLG49bi5yZXBsYWNlKGUsaSksdH0sZ2V0UmVnZXg6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJlZ0V4cChuLHMpfX07cmV0dXJuIHR9dmFyIEgxPS9bXlx3Ol0vZyxBMT0vXiR8XlthLXpdW2EtejAtOSsu'@; put 'LV0qOnxeWz8jXS9pO2Z1bmN0aW9uIG4xKG4scyx0KXtpZihuKXt0cnl7ZT1kZWNvZGVVUklDb21wb25lbnQoUSh0KSkucmVwbGFjZShIMSwiIikudG9Mb3dlckNhc2UoKX1jYXRjaHtyZXR1cm4gbnVsbH1pZigwPT09ZS5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09ZS5pbmRleE9mKCJ2'@; put 'YnNjcmlwdDoiKXx8MD09PWUuaW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH12YXIgZTtzJiYhQTEudGVzdCh0KSYmKG49dCxlMVsiICIrKGU9cyldfHwoZTFbIiAiK2VdPVYxLnRlc3QoZSk/ZSsiLyI6YzEoZSwiLyIsITApKSxzPS0xPT09KGU9ZTFbIiAiK2VdKS5pbmRleE9mKCI6Iiks'@; put 'dD0iLy8iPT09bi5zdWJzdHJpbmcoMCwyKT9zP246ZS5yZXBsYWNlKFoxLCIkMSIpK246Ii8iPT09bi5jaGFyQXQoMCk/cz9uOmUucmVwbGFjZShDMSwiJDEiKStuOmUrbik7dHJ5e3Q9ZW5jb2RlVVJJKHQpLnJlcGxhY2UoLyUyNS9nLCIlIil9Y2F0Y2h7cmV0dXJuIG51bGx9cmV0dXJuIHR9'@; put 'dmFyIGUxPXt9LFYxPS9eW146XSs6XC8qW14vXSokLyxaMT0vXihbXjpdKzopW1xzXFNdKiQvLEMxPS9eKFteOl0rOlwvKlteL10qKVtcc1xTXSokLyxLPXtleGVjOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gZDEobixzKXt2YXIgdD1uLnJlcGxhY2UoL1x8L2csZnVuY3Rpb24oaSxyLGMpe2Zv'@; put 'cih2YXIgaD0hMSxWPXI7MDw9LS1WJiYiXFwiPT09Y1tWXTspaD0haDtyZXR1cm4gaD8ifCI6IiB8In0pLnNwbGl0KC8gXHwvKSxlPTA7aWYodFswXS50cmltKCl8fHQuc2hpZnQoKSwwPHQubGVuZ3RoJiYhdFt0Lmxlbmd0aC0xXS50cmltKCkmJnQucG9wKCksdC5sZW5ndGg+cyl0LnNwbGlj'@; put 'ZShzKTtlbHNlIGZvcig7dC5sZW5ndGg8czspdC5wdXNoKCIiKTtmb3IoO2U8dC5sZW5ndGg7ZSsrKXRbZV09dFtlXS50cmltKCkucmVwbGFjZSgvXFxcfC9nLCJ8Iik7cmV0dXJuIHR9ZnVuY3Rpb24gYzEobixzLHQpe3ZhciBlPW4ubGVuZ3RoO2lmKDA9PT1lKXJldHVybiIiO2Zvcih2YXIg'@; put 'aT0wO2k8ZTspe3ZhciByPW4uY2hhckF0KGUtaS0xKTtpZigociE9PXN8fHQpJiYocj09PXN8fCF0KSlicmVhaztpKyt9cmV0dXJuIG4uc2xpY2UoMCxlLWkpfWZ1bmN0aW9uIG8xKG4scix0LGUpe3ZhciBpPXIuaHJlZixjPShyPXIudGl0bGU/VChyLnRpdGxlKTpudWxsLG5bMV0ucmVwbGFj'@; put 'ZSgvXFwoW1xbXF1dKS9nLCIkMSIpKTtyZXR1cm4iISIhPT1uWzBdLmNoYXJBdCgwKT8oZS5zdGF0ZS5pbkxpbms9ITAsbj17dHlwZToibGluayIscmF3OnQsaHJlZjppLHRpdGxlOnIsdGV4dDpjLHRva2VuczplLmlubGluZVRva2VucyhjKX0sZS5zdGF0ZS5pbkxpbms9ITEsbik6e3R5cGU6'@; put 'ImltYWdlIixyYXc6dCxocmVmOmksdGl0bGU6cix0ZXh0OlQoYyl9fXZhciBKPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0aGlzLm9wdGlvbnM9dHx8Yi5kZWZhdWx0c312YXIgcz1uLnByb3RvdHlwZTtyZXR1cm4gcy5zcGFjZT1mdW5jdGlvbih0KXtpZigodD10aGlzLnJ1bGVzLmJsb2Nr'@; put 'Lm5ld2xpbmUuZXhlYyh0KSkmJjA8dFswXS5sZW5ndGgpcmV0dXJue3R5cGU6InNwYWNlIixyYXc6dFswXX19LHMuY29kZT1mdW5jdGlvbihpKXt2YXIgZTtpZihpPXRoaXMucnVsZXMuYmxvY2suY29kZS5leGVjKGkpKXJldHVybiBlPWlbMF0ucmVwbGFjZSgvXiB7MSw0fS9nbSwiIikse3R5'@; put 'cGU6ImNvZGUiLHJhdzppWzBdLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsdGV4dDp0aGlzLm9wdGlvbnMucGVkYW50aWM/ZTpjMShlLCJcbiIpfX0scy5mZW5jZXM9ZnVuY3Rpb24oaCl7dmFyIGUsaSxyLGM7aWYoaD10aGlzLnJ1bGVzLmJsb2NrLmZlbmNlcy5leGVjKGgpKXJldHVybiBp'@; put 'PWU9aFswXSxyPWhbM118fCIiLGk9bnVsbD09PShpPWUubWF0Y2goL14oXHMrKSg/OmBgYCkvKSk/cjooYz1pWzFdLHIuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKFYpe3ZhciBDPVYubWF0Y2goL15ccysvKTtyZXR1cm4gbnVsbCE9PUMmJkNbMF0ubGVuZ3RoPj1jLmxlbmd0aD9WLnNsaWNl'@; put 'KGMubGVuZ3RoKTpWfSkuam9pbigiXG4iKSkse3R5cGU6ImNvZGUiLHJhdzplLGxhbmc6aFsyXSYmaFsyXS50cmltKCkucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKSx0ZXh0Oml9fSxzLmhlYWRpbmc9ZnVuY3Rpb24ocil7dmFyIGUsaTtpZihyPXRoaXMucnVsZXMu'@; put 'YmxvY2suaGVhZGluZy5leGVjKHIpKXJldHVybiBlPXJbMl0udHJpbSgpLC8jJC8udGVzdChlKSYmKGk9YzEoZSwiIyIpLCF0aGlzLm9wdGlvbnMucGVkYW50aWMmJmkmJiEvICQvLnRlc3QoaSl8fChlPWkudHJpbSgpKSkse3R5cGU6ImhlYWRpbmciLHJhdzpyWzBdLGRlcHRoOnJbMV0ubGVu'@; put 'Z3RoLHRleHQ6ZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUoZSl9fSxzLmhyPWZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5ydWxlcy5ibG9jay5oci5leGVjKHQpKXJldHVybnt0eXBlOiJociIscmF3OnRbMF19fSxzLmJsb2NrcXVvdGU9ZnVuY3Rpb24oYyl7dmFyIGUsaSxyO2lmKGM9dGhpcy5y'@; put 'dWxlcy5ibG9jay5ibG9ja3F1b3RlLmV4ZWMoYykpcmV0dXJuIGU9Y1swXS5yZXBsYWNlKC9eICo+WyBcdF0/L2dtLCIiKSxpPXRoaXMubGV4ZXIuc3RhdGUudG9wLHRoaXMubGV4ZXIuc3RhdGUudG9wPSEwLHI9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhlKSx0aGlzLmxleGVyLnN0YXRlLnRv'@; put 'cD1pLHt0eXBlOiJibG9ja3F1b3RlIixyYXc6Y1swXSx0b2tlbnM6cix0ZXh0OmV9fSxzLmxpc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5ydWxlcy5ibG9jay5saXN0LmV4ZWModCk7aWYoZSl7dmFyIGkscixjLGgsVixDLHUsZCxMLHksSSxaPTE8KGY9ZVsxXS50cmltKCkpLmxlbmd0aCxv'@; put 'PXt0eXBlOiJsaXN0IixyYXc6IiIsb3JkZXJlZDpaLHN0YXJ0Olo/K2Yuc2xpY2UoMCwtMSk6IiIsbG9vc2U6ITEsaXRlbXM6W119LGY9Wj8iXFxkezEsOX1cXCIrZi5zbGljZSgtMSk6IlxcIitmO3RoaXMub3B0aW9ucy5wZWRhbnRpYyYmKGY9Wj9mOiJbKistXSIpO2Zvcih2YXIgRT1uZXcg'@; put 'UmVnRXhwKCJeKCB7MCwzfSIrZisiKSgoPzpbXHQgXVteXFxuXSopPyg/OlxcbnwkKSkiKTt0JiYoST0hMSxlPUUuZXhlYyh0KSkmJiF0aGlzLnJ1bGVzLmJsb2NrLmhyLnRlc3QodCk7KXtpZih0PXQuc3Vic3RyaW5nKChpPWVbMF0pLmxlbmd0aCksdT1lWzJdLnNwbGl0KCJcbiIsMSlbMF0u'@; put 'cmVwbGFjZSgvXlx0Ky8sZnVuY3Rpb24oaTEpe3JldHVybiIgIi5yZXBlYXQoMyppMS5sZW5ndGgpfSksZD10LnNwbGl0KCJcbiIsMSlbMF0sdGhpcy5vcHRpb25zLnBlZGFudGljPyhoPTIseT11LnRyaW1MZWZ0KCkpOihoPWVbMl0uc2VhcmNoKC9bXiBdLykseT11LnNsaWNlKGg9NDxoPzE6'@; put 'aCksaCs9ZVsxXS5sZW5ndGgpLFY9ITEsIXUmJi9eICokLy50ZXN0KGQpJiYoaSs9ZCsiXG4iLHQ9dC5zdWJzdHJpbmcoZC5sZW5ndGgrMSksST0hMCksIUkpZm9yKHZhciBCPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGgtMSkrIn0oPzpbKistXXxcXGR7MSw5fVsuKV0pKCg/Olsg'@; put 'XHRdW15cXG5dKik/KD86XFxufCQpKSIpLG09bmV3IFJlZ0V4cCgiXiB7MCwiK01hdGgubWluKDMsaC0xKSsifSgoPzotICopezMsfXwoPzpfICopezMsfXwoPzpcXCogKil7Myx9KSg/Olxcbit8JCkiKSxfPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGgtMSkrIn0oPzpgYGB8fn5+'@; put 'KSIpLFI9bmV3IFJlZ0V4cCgiXiB7MCwiK01hdGgubWluKDMsaC0xKSsifSMiKTt0JiYoZD1MPXQuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihkPWQucmVwbGFjZSgvXiB7MSw0fSg/PSggezR9KSpbXiBdKS9nLCIgICIpKSwhXy50ZXN0KGQpKSYmIVIudGVzdChk'@; put 'KSYmIUIudGVzdChkKSYmIW0udGVzdCh0KTspe2lmKGQuc2VhcmNoKC9bXiBdLyk+PWh8fCFkLnRyaW0oKSl5Kz0iXG4iK2Quc2xpY2UoaCk7ZWxzZXtpZihWfHw0PD11LnNlYXJjaCgvW14gXS8pfHxfLnRlc3QodSl8fFIudGVzdCh1KXx8bS50ZXN0KHUpKWJyZWFrO3krPSJcbiIrZH1WfHxk'@; put 'LnRyaW0oKXx8KFY9ITApLGkrPUwrIlxuIix0PXQuc3Vic3RyaW5nKEwubGVuZ3RoKzEpLHU9ZC5zbGljZShoKX1vLmxvb3NlfHwoQz9vLmxvb3NlPSEwOi9cbiAqXG4gKiQvLnRlc3QoaSkmJihDPSEwKSksdGhpcy5vcHRpb25zLmdmbSYmKHI9L15cW1sgeFhdXF0gLy5leGVjKHkpKSYmKGM9'@; put 'IlsgXSAiIT09clswXSx5PXkucmVwbGFjZSgvXlxbWyB4WF1cXSArLywiIikpLG8uaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6aSx0YXNrOiEhcixjaGVja2VkOmMsbG9vc2U6ITEsdGV4dDp5fSksby5yYXcrPWl9by5pdGVtc1tvLml0ZW1zLmxlbmd0aC0xXS5yYXc9aS50cmlt'@; put 'UmlnaHQoKSxvLml0ZW1zW28uaXRlbXMubGVuZ3RoLTFdLnRleHQ9eS50cmltUmlnaHQoKSxvLnJhdz1vLnJhdy50cmltUmlnaHQoKTtmb3IodmFyICQsdTE9by5pdGVtcy5sZW5ndGgsVT0wO1U8dTE7VSsrKXRoaXMubGV4ZXIuc3RhdGUudG9wPSExLG8uaXRlbXNbVV0udG9rZW5zPXRoaXMu'@; put 'bGV4ZXIuYmxvY2tUb2tlbnMoby5pdGVtc1tVXS50ZXh0LFtdKSxvLmxvb3NlfHwoJD0wPCgkPW8uaXRlbXNbVV0udG9rZW5zLmZpbHRlcihmdW5jdGlvbihpMSl7cmV0dXJuInNwYWNlIj09PWkxLnR5cGV9KSkubGVuZ3RoJiYkLnNvbWUoZnVuY3Rpb24oaTEpe3JldHVybi9cbi4qXG4vLnRl'@; put 'c3QoaTEucmF3KX0pLG8ubG9vc2U9JCk7aWYoby5sb29zZSlmb3IoVT0wO1U8dTE7VSsrKW8uaXRlbXNbVV0ubG9vc2U9ITA7cmV0dXJuIG99fSxzLmh0bWw9ZnVuY3Rpb24oaSl7dmFyIGU7aWYoaT10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhpKSlyZXR1cm4gZT17dHlwZToiaHRtbCIs'@; put 'YmxvY2s6ITAscmF3OmlbMF0scHJlOiF0aGlzLm9wdGlvbnMuc2FuaXRpemVyJiYoInByZSI9PT1pWzFdfHwic2NyaXB0Ij09PWlbMV18fCJzdHlsZSI9PT1pWzFdKSx0ZXh0OmlbMF19LHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKGk9dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlv'@; put 'bnMuc2FuaXRpemVyKGlbMF0pOlQoaVswXSksZS50eXBlPSJwYXJhZ3JhcGgiLGUudGV4dD1pLGUudG9rZW5zPXRoaXMubGV4ZXIuaW5saW5lKGkpKSxlfSxzLmRlZj1mdW5jdGlvbihjKXt2YXIgZSxpLHI7aWYoYz10aGlzLnJ1bGVzLmJsb2NrLmRlZi5leGVjKGMpKXJldHVybiBlPWNbMV0u'@; put 'dG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiICIpLGk9Y1syXT9jWzJdLnJlcGxhY2UoL148KC4qKT4kLywiJDEiKS5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpOiIiLHI9Y1szXSYmY1szXS5zdWJzdHJpbmcoMSxjWzNdLmxlbmd0aC0xKS5yZXBsYWNlKHRo'@; put 'aXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpLHt0eXBlOiJkZWYiLHRhZzplLHJhdzpjWzBdLGhyZWY6aSx0aXRsZTpyfX0scy50YWJsZT1mdW5jdGlvbih0KXtpZih0PXRoaXMucnVsZXMuYmxvY2sudGFibGUuZXhlYyh0KSl7dmFyIGU9e3R5cGU6InRhYmxlIixoZWFkZXI6ZDEodFsx'@; put 'XSkubWFwKGZ1bmN0aW9uKEMpe3JldHVybnt0ZXh0OkN9fSksYWxpZ246dFsyXS5yZXBsYWNlKC9eICp8XHwgKiQvZywiIikuc3BsaXQoLyAqXHwgKi8pLHJvd3M6dFszXSYmdFszXS50cmltKCk/dFszXS5yZXBsYWNlKC9cblsgXHRdKiQvLCIiKS5zcGxpdCgiXG4iKTpbXX07aWYoZS5oZWFk'@; put 'ZXIubGVuZ3RoPT09ZS5hbGlnbi5sZW5ndGgpe2UucmF3PXRbMF07Zm9yKHZhciBpLHIsYyxoPWUuYWxpZ24ubGVuZ3RoLFY9MDtWPGg7VisrKWUuYWxpZ25bVl09L14gKi0rOiAqJC8udGVzdChlLmFsaWduW1ZdKT8icmlnaHQiOi9eICo6LSs6ICokLy50ZXN0KGUuYWxpZ25bVl0pPyJjZW50'@; put 'ZXIiOi9eICo6LSsgKiQvLnRlc3QoZS5hbGlnbltWXSk/ImxlZnQiOm51bGw7Zm9yKGg9ZS5yb3dzLmxlbmd0aCxWPTA7VjxoO1YrKyllLnJvd3NbVl09ZDEoZS5yb3dzW1ZdLGUuaGVhZGVyLmxlbmd0aCkubWFwKGZ1bmN0aW9uKEMpe3JldHVybnt0ZXh0OkN9fSk7Zm9yKGg9ZS5oZWFkZXIu'@; put 'bGVuZ3RoLGk9MDtpPGg7aSsrKWUuaGVhZGVyW2ldLnRva2Vucz10aGlzLmxleGVyLmlubGluZShlLmhlYWRlcltpXS50ZXh0KTtmb3IoaD1lLnJvd3MubGVuZ3RoLGk9MDtpPGg7aSsrKWZvcihjPWUucm93c1tpXSxyPTA7cjxjLmxlbmd0aDtyKyspY1tyXS50b2tlbnM9dGhpcy5sZXhlci5p'@; put 'bmxpbmUoY1tyXS50ZXh0KTtyZXR1cm4gZX19fSxzLmxoZWFkaW5nPWZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5ydWxlcy5ibG9jay5saGVhZGluZy5leGVjKHQpKXJldHVybnt0eXBlOiJoZWFkaW5nIixyYXc6dFswXSxkZXB0aDoiPSI9PT10WzJdLmNoYXJBdCgwKT8xOjIsdGV4dDp0WzFdLHRv'@; put 'a2Vuczp0aGlzLmxleGVyLmlubGluZSh0WzFdKX19LHMucGFyYWdyYXBoPWZ1bmN0aW9uKGkpe3ZhciBlO2lmKGk9dGhpcy5ydWxlcy5ibG9jay5wYXJhZ3JhcGguZXhlYyhpKSlyZXR1cm4gZT0iXG4iPT09aVsxXS5jaGFyQXQoaVsxXS5sZW5ndGgtMSk/aVsxXS5zbGljZSgwLC0xKTppWzFd'@; put 'LHt0eXBlOiJwYXJhZ3JhcGgiLHJhdzppWzBdLHRleHQ6ZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUoZSl9fSxzLnRleHQ9ZnVuY3Rpb24odCl7aWYodD10aGlzLnJ1bGVzLmJsb2NrLnRleHQuZXhlYyh0KSlyZXR1cm57dHlwZToidGV4dCIscmF3OnRbMF0sdGV4dDp0WzBdLHRva2Vuczp0'@; put 'aGlzLmxleGVyLmlubGluZSh0WzBdKX19LHMuZXNjYXBlPWZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5ydWxlcy5pbmxpbmUuZXNjYXBlLmV4ZWModCkpcmV0dXJue3R5cGU6ImVzY2FwZSIscmF3OnRbMF0sdGV4dDpUKHRbMV0pfX0scy50YWc9ZnVuY3Rpb24odCl7aWYodD10aGlzLnJ1bGVzLmlu'@; put 'bGluZS50YWcuZXhlYyh0KSlyZXR1cm4hdGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePGEgL2kudGVzdCh0WzBdKT90aGlzLmxleGVyLnN0YXRlLmluTGluaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148XC9hPi9pLnRlc3QodFswXSkmJih0aGlzLmxleGVyLnN0YXRlLmluTGlu'@; put 'az0hMSksIXRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayYmL148KHByZXxjb2RlfGtiZHxzY3JpcHQpKFxzfD4pL2kudGVzdCh0WzBdKT90aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s9ITA6dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjxcLyhwcmV8Y29kZXxrYmR8c2NyaXB0'@; put 'KShcc3w+KS9pLnRlc3QodFswXSkmJih0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s9ITEpLHt0eXBlOnRoaXMub3B0aW9ucy5zYW5pdGl6ZT8idGV4dCI6Imh0bWwiLHJhdzp0WzBdLGluTGluazp0aGlzLmxleGVyLnN0YXRlLmluTGluayxpblJhd0Jsb2NrOnRoaXMubGV4ZXIuc3RhdGUu'@; put 'aW5SYXdCbG9jayxibG9jazohMSx0ZXh0OnRoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIodFswXSk6VCh0WzBdKTp0WzBdfX0scy5saW5rPWZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5ydWxlcy5pbmxpbmUubGluay5leGVj'@; put 'KHQpKXt2YXIgZT10WzJdLnRyaW0oKTtpZighdGhpcy5vcHRpb25zLnBlZGFudGljJiYvXjwvLnRlc3QoZSkpe2lmKCEvPiQvLnRlc3QoZSkpcmV0dXJuO3ZhciByPWMxKGUuc2xpY2UoMCwtMSksIlxcIik7aWYoKGUubGVuZ3RoLXIubGVuZ3RoKSUyPT0wKXJldHVybn1lbHNlLTE8KHI9ZnVu'@; put 'Y3Rpb24oaCxWKXtpZigtMSE9PWguaW5kZXhPZihWWzFdKSlmb3IodmFyIEM9aC5sZW5ndGgsdT0wLGQ9MDtkPEM7ZCsrKWlmKCJcXCI9PT1oW2RdKWQrKztlbHNlIGlmKGhbZF09PT1WWzBdKXUrKztlbHNlIGlmKGhbZF09PT1WWzFdJiYtLXU8MClyZXR1cm4gZDtyZXR1cm4tMX0odFsyXSwi'@; put 'KCkiKSkmJihjPSgwPT09dFswXS5pbmRleE9mKCIhIik/NTo0KSt0WzFdLmxlbmd0aCtyLHRbMl09dFsyXS5zdWJzdHJpbmcoMCxyKSx0WzBdPXRbMF0uc3Vic3RyaW5nKDAsYykudHJpbSgpLHRbM109IiIpO3I9dFsyXTt2YXIgaSxjPSIiO3JldHVybiB0aGlzLm9wdGlvbnMucGVkYW50aWM/'@; put 'KGk9L14oW14nIl0qW15cc10pXHMrKFsnIl0pKC4qKVwyLy5leGVjKHIpKSYmKHI9aVsxXSxjPWlbM10pOmM9dFszXT90WzNdLnNsaWNlKDEsLTEpOiIiLHI9ci50cmltKCksbzEodCx7aHJlZjoocj0vXjwvLnRlc3Qocik/dGhpcy5vcHRpb25zLnBlZGFudGljJiYhLz4kLy50ZXN0KGUpP3Iu'@; put 'c2xpY2UoMSk6ci5zbGljZSgxLC0xKTpyKSYmci5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpLHRpdGxlOmMmJmMucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKX0sdFswXSx0aGlzLmxleGVyKX19LHMucmVmbGluaz1mdW5jdGlvbih0LGUp'@; put 'e3ZhciBpO2lmKGk9KGk9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKHQpKXx8dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWModCkpcmV0dXJuKHQ9ZVsodD0oaVsyXXx8aVsxXSkucmVwbGFjZSgvXHMrL2csIiAiKSkudG9Mb3dlckNhc2UoKV0pP28xKGksdCxpWzBdLHRoaXMu'@; put 'bGV4ZXIpOnt0eXBlOiJ0ZXh0IixyYXc6ZT1pWzBdLmNoYXJBdCgwKSx0ZXh0OmV9fSxzLmVtU3Ryb25nPWZ1bmN0aW9uKHQsZSxpKXt2b2lkIDA9PT1pJiYoaT0iIik7dmFyIHI9dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcubERlbGltLmV4ZWModCk7aWYociYmKCFyWzNdfHwhaS5tYXRj'@; put 'aCgvKD86WzAtOUEtWmEtelx4QUFceEIyXHhCM1x4QjVceEI5XHhCQVx4QkMtXHhCRVx4QzAtXHhENlx4RDgtXHhGNlx4RjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM3Rlx1MDM4'@; put 'Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTJGXHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MC1cdTA1ODhcdTA1RDAtXHUwNUVBXHUwNUVGLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NjAtXHUwNjY5XHUwNjZFXHUw'@; put 'NjZGXHUwNjcxLVx1MDZEM1x1MDZENVx1MDZFNVx1MDZFNlx1MDZFRS1cdTA2RkNcdTA2RkZcdTA3MTBcdTA3MTItXHUwNzJGXHUwNzRELVx1MDdBNVx1MDdCMVx1MDdDMC1cdTA3RUFcdTA3RjRcdTA3RjVcdTA3RkFcdTA4MDAtXHUwODE1XHUwODFBXHUwODI0XHUwODI4XHUwODQwLVx1MDg1'@; put 'OFx1MDg2MC1cdTA4NkFcdTA4NzAtXHUwODg3XHUwODg5LVx1MDg4RVx1MDhBMC1cdTA4QzlcdTA5MDQtXHUwOTM5XHUwOTNEXHUwOTUwXHUwOTU4LVx1MDk2MVx1MDk2Ni1cdTA5NkZcdTA5NzEtXHUwOTgwXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUw'@; put 'OUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RTYtXHUwOUYxXHUwOUY0LVx1MDlGOVx1MDlGQ1x1MEEwNS1cdTBBMEFcdTBBMEZcdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMlx1MEEzM1x1MEEzNVx1MEEz'@; put 'Nlx1MEEzOFx1MEEzOVx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNjYtXHUwQTZGXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXHUwQUU2'@; put 'LVx1MEFFRlx1MEFGOVx1MEIwNS1cdTBCMENcdTBCMEZcdTBCMTBcdTBCMTMtXHUwQjI4XHUwQjJBLVx1MEIzMFx1MEIzMlx1MEIzM1x1MEIzNS1cdTBCMzlcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUYtXHUwQjYxXHUwQjY2LVx1MEI2Rlx1MEI3MS1cdTBCNzdcdTBCODNcdTBCODUtXHUwQjhB'@; put 'XHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEJFNi1cdTBCRjJcdTBDMDUtXHUwQzBDXHUwQzBFLVx1MEMxMFx1MEMxMi1cdTBDMjhcdTBDMkEtXHUwQzM5'@; put 'XHUwQzNEXHUwQzU4LVx1MEM1QVx1MEM1RFx1MEM2MFx1MEM2MVx1MEM2Ni1cdTBDNkZcdTBDNzgtXHUwQzdFXHUwQzgwXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDRERcdTBDREVcdTBDRTBcdTBDRTFc'@; put 'dTBDRTYtXHUwQ0VGXHUwQ0YxXHUwQ0YyXHUwRDA0LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDNBXHUwRDNEXHUwRDRFXHUwRDU0LVx1MEQ1Nlx1MEQ1OC1cdTBENjFcdTBENjYtXHUwRDc4XHUwRDdBLVx1MEQ3Rlx1MEQ4NS1cdTBEOTZcdTBEOUEtXHUwREIxXHUwREIzLVx1MERC'@; put 'Qlx1MERCRFx1MERDMC1cdTBEQzZcdTBERTYtXHUwREVGXHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFNTAtXHUwRTU5XHUwRTgxXHUwRTgyXHUwRTg0XHUwRTg2LVx1MEU4QVx1MEU4Qy1cdTBFQTNcdTBFQTVcdTBFQTctXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUJE'@; put 'XHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEMC1cdTBFRDlcdTBFREMtXHUwRURGXHUwRjAwXHUwRjIwLVx1MEYzM1x1MEY0MC1cdTBGNDdcdTBGNDktXHUwRjZDXHUwRjg4LVx1MEY4Q1x1MTAwMC1cdTEwMkFcdTEwM0YtXHUxMDQ5XHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEwNjFcdTEw'@; put 'NjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTA5MC1cdTEwOTlcdTEwQTAtXHUxMEM1XHUxMEM3XHUxMENEXHUxMEQwLVx1MTBGQVx1MTBGQy1cdTEyNDhcdTEyNEEtXHUxMjREXHUxMjUwLVx1MTI1Nlx1MTI1OFx1MTI1QS1cdTEyNURcdTEyNjAtXHUxMjg4XHUx'@; put 'MjhBLVx1MTI4RFx1MTI5MC1cdTEyQjBcdTEyQjItXHUxMkI1XHUxMkI4LVx1MTJCRVx1MTJDMFx1MTJDMi1cdTEyQzVcdTEyQzgtXHUxMkQ2XHUxMkQ4LVx1MTMxMFx1MTMxMi1cdTEzMTVcdTEzMTgtXHUxMzVBXHUxMzY5LVx1MTM3Q1x1MTM4MC1cdTEzOEZcdTEzQTAtXHUxM0Y1XHUxM0Y4'@; put 'LVx1MTNGRFx1MTQwMS1cdTE2NkNcdTE2NkYtXHUxNjdGXHUxNjgxLVx1MTY5QVx1MTZBMC1cdTE2RUFcdTE2RUUtXHUxNkY4XHUxNzAwLVx1MTcxMVx1MTcxRi1cdTE3MzFcdTE3NDAtXHUxNzUxXHUxNzYwLVx1MTc2Q1x1MTc2RS1cdTE3NzBcdTE3ODAtXHUxN0IzXHUxN0Q3XHUxN0RDXHUx'@; put 'N0UwLVx1MTdFOVx1MTdGMC1cdTE3RjlcdTE4MTAtXHUxODE5XHUxODIwLVx1MTg3OFx1MTg4MC1cdTE4ODRcdTE4ODctXHUxOEE4XHUxOEFBXHUxOEIwLVx1MThGNVx1MTkwMC1cdTE5MUVcdTE5NDYtXHUxOTZEXHUxOTcwLVx1MTk3NFx1MTk4MC1cdTE5QUJcdTE5QjAtXHUxOUM5XHUxOUQw'@; put 'LVx1MTlEQVx1MUEwMC1cdTFBMTZcdTFBMjAtXHUxQTU0XHUxQTgwLVx1MUE4OVx1MUE5MC1cdTFBOTlcdTFBQTdcdTFCMDUtXHUxQjMzXHUxQjQ1LVx1MUI0Q1x1MUI1MC1cdTFCNTlcdTFCODMtXHUxQkEwXHUxQkFFLVx1MUJFNVx1MUMwMC1cdTFDMjNcdTFDNDAtXHUxQzQ5XHUxQzRELVx1'@; put 'MUM3RFx1MUM4MC1cdTFDODhcdTFDOTAtXHUxQ0JBXHUxQ0JELVx1MUNCRlx1MUNFOS1cdTFDRUNcdTFDRUUtXHUxQ0YzXHUxQ0Y1XHUxQ0Y2XHUxQ0ZBXHUxRDAwLVx1MURCRlx1MUUwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3'@; put 'XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMyLVx1MUZDNFx1MUZDNi1cdTFGQ0NcdTFGRDAtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZFMC1cdTFGRUNcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjA3MFx1MjA3'@; put 'MVx1MjA3NC1cdTIwNzlcdTIwN0YtXHUyMDg5XHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0RVx1MjE1'@; put 'MC1cdTIxODlcdTI0NjAtXHUyNDlCXHUyNEVBLVx1MjRGRlx1Mjc3Ni1cdTI3OTNcdTJDMDAtXHUyQ0U0XHUyQ0VCLVx1MkNFRVx1MkNGMlx1MkNGM1x1MkNGRFx1MkQwMC1cdTJEMjVcdTJEMjdcdTJEMkRcdTJEMzAtXHUyRDY3XHUyRDZGXHUyRDgwLVx1MkQ5Nlx1MkRBMC1cdTJEQTZcdTJE'@; put 'QTgtXHUyREFFXHUyREIwLVx1MkRCNlx1MkRCOC1cdTJEQkVcdTJEQzAtXHUyREM2XHUyREM4LVx1MkRDRVx1MkREMC1cdTJERDZcdTJERDgtXHUyRERFXHUyRTJGXHUzMDA1LVx1MzAwN1x1MzAyMS1cdTMwMjlcdTMwMzEtXHUzMDM1XHUzMDM4LVx1MzAzQ1x1MzA0MS1cdTMwOTZcdTMwOUQt'@; put 'XHUzMDlGXHUzMEExLVx1MzBGQVx1MzBGQy1cdTMwRkZcdTMxMDUtXHUzMTJGXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOTVcdTMxQTAtXHUzMUJGXHUzMUYwLVx1MzFGRlx1MzIyMC1cdTMyMjlcdTMyNDgtXHUzMjRGXHUzMjUxLVx1MzI1Rlx1MzI4MC1cdTMyODlcdTMyQjEtXHUzMkJGXHUz'@; put 'NDAwLVx1NERCRlx1NEUwMC1cdUE0OENcdUE0RDAtXHVBNEZEXHVBNTAwLVx1QTYwQ1x1QTYxMC1cdUE2MkJcdUE2NDAtXHVBNjZFXHVBNjdGLVx1QTY5RFx1QTZBMC1cdUE2RUZcdUE3MTctXHVBNzFGXHVBNzIyLVx1QTc4OFx1QTc4Qi1cdUE3Q0FcdUE3RDBcdUE3RDFcdUE3RDNcdUE3RDUt'@; put 'XHVBN0Q5XHVBN0YyLVx1QTgwMVx1QTgwMy1cdUE4MDVcdUE4MDctXHVBODBBXHVBODBDLVx1QTgyMlx1QTgzMC1cdUE4MzVcdUE4NDAtXHVBODczXHVBODgyLVx1QThCM1x1QThEMC1cdUE4RDlcdUE4RjItXHVBOEY3XHVBOEZCXHVBOEZEXHVBOEZFXHVBOTAwLVx1QTkyNVx1QTkzMC1cdUE5'@; put 'NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRi1cdUE5RDlcdUE5RTAtXHVBOUU0XHVBOUU2LVx1QTlGRVx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE1MC1cdUFBNTlcdUFBNjAtXHVBQTc2XHVBQTdBXHVBQTdFLVx1QUFBRlx1QUFCMVx1QUFCNVx1'@; put 'QUFCNlx1QUFCOS1cdUFBQkRcdUFBQzBcdUFBQzJcdUFBREItXHVBQUREXHVBQUUwLVx1QUFFQVx1QUFGMi1cdUFBRjRcdUFCMDEtXHVBQjA2XHVBQjA5LVx1QUIwRVx1QUIxMS1cdUFCMTZcdUFCMjAtXHVBQjI2XHVBQjI4LVx1QUIyRVx1QUIzMC1cdUFCNUFcdUFCNUMtXHVBQjY5XHVBQjcw'@; put 'LVx1QUJFMlx1QUJGMC1cdUFCRjlcdUFDMDAtXHVEN0EzXHVEN0IwLVx1RDdDNlx1RDdDQi1cdUQ3RkJcdUY5MDAtXHVGQTZEXHVGQTcwLVx1RkFEOVx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIyOFx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVG'@; put 'QjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFNzAtXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYxMC1cdUZGMTlcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1cdUZGQkVc'@; put 'dUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXXxcdUQ4MDBbXHVEQzAwLVx1REMwQlx1REMwRC1cdURDMjZcdURDMjgtXHVEQzNBXHVEQzNDXHVEQzNEXHVEQzNGLVx1REM0RFx1REM1MC1cdURDNURcdURDODAtXHVEQ0ZBXHVERDA3LVx1REQzM1x1'@; put 'REQ0MC1cdURENzhcdUREOEFcdUREOEJcdURFODAtXHVERTlDXHVERUEwLVx1REVEMFx1REVFMS1cdURFRkJcdURGMDAtXHVERjIzXHVERjJELVx1REY0QVx1REY1MC1cdURGNzVcdURGODAtXHVERjlEXHVERkEwLVx1REZDM1x1REZDOC1cdURGQ0ZcdURGRDEtXHVERkQ1XXxcdUQ4MDFbXHVE'@; put 'QzAwLVx1REM5RFx1RENBMC1cdURDQTlcdURDQjAtXHVEQ0QzXHVEQ0Q4LVx1RENGQlx1REQwMC1cdUREMjdcdUREMzAtXHVERDYzXHVERDcwLVx1REQ3QVx1REQ3Qy1cdUREOEFcdUREOEMtXHVERDkyXHVERDk0XHVERDk1XHVERDk3LVx1RERBMVx1RERBMy1cdUREQjFcdUREQjMtXHVEREI5'@; put 'XHVEREJCXHVEREJDXHVERTAwLVx1REYzNlx1REY0MC1cdURGNTVcdURGNjAtXHVERjY3XHVERjgwLVx1REY4NVx1REY4Ny1cdURGQjBcdURGQjItXHVERkJBXXxcdUQ4MDJbXHVEQzAwLVx1REMwNVx1REMwOFx1REMwQS1cdURDMzVcdURDMzdcdURDMzhcdURDM0NcdURDM0YtXHVEQzU1XHVE'@; put 'QzU4LVx1REM3Nlx1REM3OS1cdURDOUVcdURDQTctXHVEQ0FGXHVEQ0UwLVx1RENGMlx1RENGNFx1RENGNVx1RENGQi1cdUREMUJcdUREMjAtXHVERDM5XHVERDgwLVx1RERCN1x1RERCQy1cdUREQ0ZcdURERDItXHVERTAwXHVERTEwLVx1REUxM1x1REUxNS1cdURFMTdcdURFMTktXHVERTM1'@; put 'XHVERTQwLVx1REU0OFx1REU2MC1cdURFN0VcdURFODAtXHVERTlGXHVERUMwLVx1REVDN1x1REVDOS1cdURFRTRcdURFRUItXHVERUVGXHVERjAwLVx1REYzNVx1REY0MC1cdURGNTVcdURGNTgtXHVERjcyXHVERjc4LVx1REY5MVx1REZBOS1cdURGQUZdfFx1RDgwM1tcdURDMDAtXHVEQzQ4'@; put 'XHVEQzgwLVx1RENCMlx1RENDMC1cdURDRjJcdURDRkEtXHVERDIzXHVERDMwLVx1REQzOVx1REU2MC1cdURFN0VcdURFODAtXHVERUE5XHVERUIwXHVERUIxXHVERjAwLVx1REYyN1x1REYzMC1cdURGNDVcdURGNTEtXHVERjU0XHVERjcwLVx1REY4MVx1REZCMC1cdURGQ0JcdURGRTAtXHVE'@; put 'RkY2XXxcdUQ4MDRbXHVEQzAzLVx1REMzN1x1REM1Mi1cdURDNkZcdURDNzFcdURDNzJcdURDNzVcdURDODMtXHVEQ0FGXHVEQ0QwLVx1RENFOFx1RENGMC1cdURDRjlcdUREMDMtXHVERDI2XHVERDM2LVx1REQzRlx1REQ0NFx1REQ0N1x1REQ1MC1cdURENzJcdURENzZcdUREODMtXHVEREIy'@; put 'XHVEREMxLVx1RERDNFx1REREMC1cdUREREFcdURERENcdURERTEtXHVEREY0XHVERTAwLVx1REUxMVx1REUxMy1cdURFMkJcdURFM0ZcdURFNDBcdURFODAtXHVERTg2XHVERTg4XHVERThBLVx1REU4RFx1REU4Ri1cdURFOURcdURFOUYtXHVERUE4XHVERUIwLVx1REVERVx1REVGMC1cdURF'@; put 'RjlcdURGMDUtXHVERjBDXHVERjBGXHVERjEwXHVERjEzLVx1REYyOFx1REYyQS1cdURGMzBcdURGMzJcdURGMzNcdURGMzUtXHVERjM5XHVERjNEXHVERjUwXHVERjVELVx1REY2MV18XHVEODA1W1x1REMwMC1cdURDMzRcdURDNDctXHVEQzRBXHVEQzUwLVx1REM1OVx1REM1Ri1cdURDNjFc'@; put 'dURDODAtXHVEQ0FGXHVEQ0M0XHVEQ0M1XHVEQ0M3XHVEQ0QwLVx1RENEOVx1REQ4MC1cdUREQUVcdURERDgtXHVERERCXHVERTAwLVx1REUyRlx1REU0NFx1REU1MC1cdURFNTlcdURFODAtXHVERUFBXHVERUI4XHVERUMwLVx1REVDOVx1REYwMC1cdURGMUFcdURGMzAtXHVERjNCXHVERjQw'@; put 'LVx1REY0Nl18XHVEODA2W1x1REMwMC1cdURDMkJcdURDQTAtXHVEQ0YyXHVEQ0ZGLVx1REQwNlx1REQwOVx1REQwQy1cdUREMTNcdUREMTVcdUREMTZcdUREMTgtXHVERDJGXHVERDNGXHVERDQxXHVERDUwLVx1REQ1OVx1RERBMC1cdUREQTdcdUREQUEtXHVEREQwXHVEREUxXHVEREUzXHVE'@; put 'RTAwXHVERTBCLVx1REUzMlx1REUzQVx1REU1MFx1REU1Qy1cdURFODlcdURFOURcdURFQjAtXHVERUY4XXxcdUQ4MDdbXHVEQzAwLVx1REMwOFx1REMwQS1cdURDMkVcdURDNDBcdURDNTAtXHVEQzZDXHVEQzcyLVx1REM4Rlx1REQwMC1cdUREMDZcdUREMDhcdUREMDlcdUREMEItXHVERDMw'@; put 'XHVERDQ2XHVERDUwLVx1REQ1OVx1REQ2MC1cdURENjVcdURENjdcdURENjhcdURENkEtXHVERDg5XHVERDk4XHVEREEwLVx1RERBOVx1REVFMC1cdURFRjJcdURGMDJcdURGMDQtXHVERjEwXHVERjEyLVx1REYzM1x1REY1MC1cdURGNTlcdURGQjBcdURGQzAtXHVERkQ0XXxcdUQ4MDhbXHVE'@; put 'QzAwLVx1REY5OV18XHVEODA5W1x1REMwMC1cdURDNkVcdURDODAtXHVERDQzXXxcdUQ4MEJbXHVERjkwLVx1REZGMF18W1x1RDgwQ1x1RDgxQy1cdUQ4MjBcdUQ4MjJcdUQ4NDAtXHVEODY4XHVEODZBLVx1RDg2Q1x1RDg2Ri1cdUQ4NzJcdUQ4NzQtXHVEODc5XHVEODgwLVx1RDg4M1x1RDg4'@; put 'NS1cdUQ4ODddW1x1REMwMC1cdURGRkZdfFx1RDgwRFtcdURDMDAtXHVEQzJGXHVEQzQxLVx1REM0Nl18XHVEODExW1x1REMwMC1cdURFNDZdfFx1RDgxQVtcdURDMDAtXHVERTM4XHVERTQwLVx1REU1RVx1REU2MC1cdURFNjlcdURFNzAtXHVERUJFXHVERUMwLVx1REVDOVx1REVEMC1cdURF'@; put 'RURcdURGMDAtXHVERjJGXHVERjQwLVx1REY0M1x1REY1MC1cdURGNTlcdURGNUItXHVERjYxXHVERjYzLVx1REY3N1x1REY3RC1cdURGOEZdfFx1RDgxQltcdURFNDAtXHVERTk2XHVERjAwLVx1REY0QVx1REY1MFx1REY5My1cdURGOUZcdURGRTBcdURGRTFcdURGRTNdfFx1RDgyMVtcdURD'@; put 'MDAtXHVERkY3XXxcdUQ4MjNbXHVEQzAwLVx1RENENVx1REQwMC1cdUREMDhdfFx1RDgyQltcdURGRjAtXHVERkYzXHVERkY1LVx1REZGQlx1REZGRFx1REZGRV18XHVEODJDW1x1REMwMC1cdUREMjJcdUREMzJcdURENTAtXHVERDUyXHVERDU1XHVERDY0LVx1REQ2N1x1REQ3MC1cdURFRkJd'@; put 'fFx1RDgyRltcdURDMDAtXHVEQzZBXHVEQzcwLVx1REM3Q1x1REM4MC1cdURDODhcdURDOTAtXHVEQzk5XXxcdUQ4MzRbXHVERUMwLVx1REVEM1x1REVFMC1cdURFRjNcdURGNjAtXHVERjc4XXxcdUQ4MzVbXHVEQzAwLVx1REM1NFx1REM1Ni1cdURDOUNcdURDOUVcdURDOUZcdURDQTJcdURD'@; put 'QTVcdURDQTZcdURDQTktXHVEQ0FDXHVEQ0FFLVx1RENCOVx1RENCQlx1RENCRC1cdURDQzNcdURDQzUtXHVERDA1XHVERDA3LVx1REQwQVx1REQwRC1cdUREMTRcdUREMTYtXHVERDFDXHVERDFFLVx1REQzOVx1REQzQi1cdUREM0VcdURENDAtXHVERDQ0XHVERDQ2XHVERDRBLVx1REQ1MFx1'@; put 'REQ1Mi1cdURFQTVcdURFQTgtXHVERUMwXHVERUMyLVx1REVEQVx1REVEQy1cdURFRkFcdURFRkMtXHVERjE0XHVERjE2LVx1REYzNFx1REYzNi1cdURGNEVcdURGNTAtXHVERjZFXHVERjcwLVx1REY4OFx1REY4QS1cdURGQThcdURGQUEtXHVERkMyXHVERkM0LVx1REZDQlx1REZDRS1cdURG'@; put 'RkZdfFx1RDgzN1tcdURGMDAtXHVERjFFXHVERjI1LVx1REYyQV18XHVEODM4W1x1REMzMC1cdURDNkRcdUREMDAtXHVERDJDXHVERDM3LVx1REQzRFx1REQ0MC1cdURENDlcdURENEVcdURFOTAtXHVERUFEXHVERUMwLVx1REVFQlx1REVGMC1cdURFRjldfFx1RDgzOVtcdURDRDAtXHVEQ0VC'@; put 'XHVEQ0YwLVx1RENGOVx1REZFMC1cdURGRTZcdURGRTgtXHVERkVCXHVERkVEXHVERkVFXHVERkYwLVx1REZGRV18XHVEODNBW1x1REMwMC1cdURDQzRcdURDQzctXHVEQ0NGXHVERDAwLVx1REQ0M1x1REQ0Qlx1REQ1MC1cdURENTldfFx1RDgzQltcdURDNzEtXHVEQ0FCXHVEQ0FELVx1RENB'@; put 'Rlx1RENCMS1cdURDQjRcdUREMDEtXHVERDJEXHVERDJGLVx1REQzRFx1REUwMC1cdURFMDNcdURFMDUtXHVERTFGXHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQtXHVERTRG'@; put 'XHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1REVBM1x1'@; put 'REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4M0NbXHVERDAwLVx1REQwQ118XHVEODNFW1x1REZGMC1cdURGRjldfFx1RDg2OVtcdURDMDAtXHVERURGXHVERjAwLVx1REZGRl18XHVEODZEW1x1REMwMC1cdURGMzlcdURGNDAtXHVERkZGXXxcdUQ4NkVbXHVEQzAwLVx1REMxRFx1REMy'@; put 'MC1cdURGRkZdfFx1RDg3M1tcdURDMDAtXHVERUExXHVERUIwLVx1REZGRl18XHVEODdBW1x1REMwMC1cdURGRTBdfFx1RDg3RVtcdURDMDAtXHVERTFEXXxcdUQ4ODRbXHVEQzAwLVx1REY0QVx1REY1MC1cdURGRkZdfFx1RDg4OFtcdURDMDAtXHVERkFGXSkvKSkmJighclsxXSYmIXJbMl18'@; put 'fCFpfHx0aGlzLnJ1bGVzLmlubGluZS5wdW5jdHVhdGlvbi5leGVjKGkpKSl7dmFyIGM9clswXS5sZW5ndGgtMSxoPWMsVj0wLEM9IioiPT09clswXVswXT90aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2Zv'@; put 'cihDLmxhc3RJbmRleD0wLGU9ZS5zbGljZSgtMSp0Lmxlbmd0aCtjKTtudWxsIT0ocj1DLmV4ZWMoZSkpOyl7dmFyIHUsZD1yWzFdfHxyWzJdfHxyWzNdfHxyWzRdfHxyWzVdfHxyWzZdO2lmKGQpaWYoZD1kLmxlbmd0aCxyWzNdfHxyWzRdKWgrPWQ7ZWxzZSBpZigocls1XXx8cls2XSkmJmMl'@; put 'MyYmISgoYytkKSUzKSlWKz1kO2Vsc2UgaWYoISgwPChoLT1kKSkpcmV0dXJuIGQ9TWF0aC5taW4oZCxkK2grViksdT10LnNsaWNlKDAsYytyLmluZGV4K2QrMSksTWF0aC5taW4oYyxkKSUyPyhkPXUuc2xpY2UoMSwtMSkse3R5cGU6ImVtIixyYXc6dSx0ZXh0OmQsdG9rZW5zOnRoaXMubGV4'@; put 'ZXIuaW5saW5lVG9rZW5zKGQpfSk6KGQ9dS5zbGljZSgyLC0yKSx7dHlwZToic3Ryb25nIixyYXc6dSx0ZXh0OmQsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKGQpfSl9fX0scy5jb2Rlc3Bhbj1mdW5jdGlvbihjKXt2YXIgZSxpLHI7aWYoYz10aGlzLnJ1bGVzLmlubGluZS5jb2Rl'@; put 'LmV4ZWMoYykpcmV0dXJuIHI9Y1syXS5yZXBsYWNlKC9cbi9nLCIgIiksZT0vW14gXS8udGVzdChyKSxpPS9eIC8udGVzdChyKSYmLyAkLy50ZXN0KHIpLHI9VChyPWUmJmk/ci5zdWJzdHJpbmcoMSxyLmxlbmd0aC0xKTpyLCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzpjWzBdLHRleHQ6cn19'@; put 'LHMuYnI9ZnVuY3Rpb24odCl7aWYodD10aGlzLnJ1bGVzLmlubGluZS5ici5leGVjKHQpKXJldHVybnt0eXBlOiJiciIscmF3OnRbMF19fSxzLmRlbD1mdW5jdGlvbih0KXtpZih0PXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKHQpKXJldHVybnt0eXBlOiJkZWwiLHJhdzp0WzBdLHRleHQ6'@; put 'dFsyXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnModFsyXSl9fSxzLmF1dG9saW5rPWZ1bmN0aW9uKHIsZSl7dmFyIGk7aWYocj10aGlzLnJ1bGVzLmlubGluZS5hdXRvbGluay5leGVjKHIpKXJldHVybiBlPSJAIj09PXJbMl0/Im1haWx0bzoiKyhpPVQodGhpcy5vcHRpb25zLm1h'@; put 'bmdsZT9lKHJbMV0pOnJbMV0pKTppPVQoclsxXSkse3R5cGU6ImxpbmsiLHJhdzpyWzBdLHRleHQ6aSxocmVmOmUsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OmksdGV4dDppfV19fSxzLnVybD1mdW5jdGlvbih0LGUpe3ZhciBpLHIsYyxoO2lmKGk9dGhpcy5ydWxlcy5pbmxpbmUudXJsLmV4'@; put 'ZWModCkpe2lmKCJAIj09PWlbMl0pYz0ibWFpbHRvOiIrKHI9VCh0aGlzLm9wdGlvbnMubWFuZ2xlP2UoaVswXSk6aVswXSkpO2Vsc2V7Zm9yKDtoPWlbMF0saVswXT10aGlzLnJ1bGVzLmlubGluZS5fYmFja3BlZGFsLmV4ZWMoaVswXSlbMF0saCE9PWlbMF07KTtyPVQoaVswXSksYz0id3d3'@; put 'LiI9PT1pWzFdPyJodHRwOi8vIitpWzBdOmlbMF19cmV0dXJue3R5cGU6ImxpbmsiLHJhdzppWzBdLHRleHQ6cixocmVmOmMsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OnIsdGV4dDpyfV19fX0scy5pbmxpbmVUZXh0PWZ1bmN0aW9uKHQsZSl7aWYodD10aGlzLnJ1bGVzLmlubGluZS50ZXh0'@; put 'LmV4ZWModCkpcmV0dXJuIGU9dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIodFswXSk6VCh0WzBdKTp0WzBdOlQodGhpcy5vcHRpb25zLnNtYXJ0eXBhbnRzP2UodFsw'@; put 'XSk6dFswXSkse3R5cGU6InRleHQiLHJhdzp0WzBdLHRleHQ6ZX19LG59KCksZz17bmV3bGluZTovXig/OiAqKD86XG58JCkpKy8sY29kZTovXiggezR9W15cbl0rKD86XG4oPzogKig/OlxufCQpKSopPykrLyxmZW5jZXM6L14gezAsM30oYHszLH0oPz1bXmBcbl0qKD86XG58JCkpfH57Myx9'@; put 'KShbXlxuXSopKD86XG58JCkoPzp8KFtcc1xTXSo/KSg/OlxufCQpKSg/OiB7MCwzfVwxW35gXSogKig/PVxufCQpfCQpLyxocjovXiB7MCwzfSgoPzotW1x0IF0qKXszLH18KD86X1sgXHRdKil7Myx9fCg/OlwqWyBcdF0qKXszLH0pKD86XG4rfCQpLyxoZWFkaW5nOi9eIHswLDN9KCN7MSw2'@; put 'fSkoPz1cc3wkKSguKikoPzpcbit8JCkvLGJsb2NrcXVvdGU6L14oIHswLDN9PiA/KHBhcmFncmFwaHxbXlxuXSopKD86XG58JCkpKy8sbGlzdDovXiggezAsM31idWxsKShbIFx0XVteXG5dKz8pPyg/OlxufCQpLyxodG1sOiJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVh'@; put 'KVtcXHM+XVtcXHNcXFNdKj8oPzo8L1xcMT5bXlxcbl0qXFxuK3wkKXxjb21tZW50W15cXG5dKihcXG4rfCQpfDxcXD9bXFxzXFxTXSo/KD86XFw/Plxcbip8JCl8PCFbQS1aXVtcXHNcXFNdKj8oPzo+XFxuKnwkKXw8IVxcW0NEQVRBXFxbW1xcc1xcU10qPyg/OlxcXVxcXT5cXG4qfCQpfDwv'@; put 'Pyh0YWcpKD86ICt8XFxufC8/PilbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8KD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSkoW2Etel1bXFx3LV0qKSg/OmF0dHJpYnV0ZSkqPyAqLz8+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8'@; put 'Lyg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW2Etel1bXFx3LV0qXFxzKj4oPz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpKSIsZGVmOi9eIHswLDN9XFsobGFiZWwpXF06ICooPzpcbiAqKT8oW148XHNdW15cc10qfDwuKj8+KSg/Oig/OiArKD86'@; put 'XG4gKik/fCAqXG4gKikodGl0bGUpKT8gKig/OlxuK3wkKS8sdGFibGU6SyxsaGVhZGluZzovXigoPzooPyFeYnVsbCApLnxcbig/IVxufGJ1bGwgKSkrPylcbiB7MCwzfSg9K3wtKykgKig/OlxuK3wkKS8sX3BhcmFncmFwaDovXihbXlxuXSsoPzpcbig/IWhyfGhlYWRpbmd8bGhlYWRpbmd8'@; put 'YmxvY2txdW90ZXxmZW5jZXN8bGlzdHxodG1sfHRhYmxlfCArXG4pW15cbl0rKSopLyx0ZXh0Oi9eW15cbl0rLyxfbGFiZWw6Lyg/IVxzKlxdKSg/OlxcLnxbXlxbXF1cXF0pKy8sX3RpdGxlOi8oPzoiKD86XFwiP3xbXiJcXF0pKiJ8J1teJ1xuXSooPzpcblteJ1xuXSspKlxuPyd8XChbXigp'@; put 'XSpcKSkvfSxBPShnLmRlZj13KGcuZGVmKS5yZXBsYWNlKCJsYWJlbCIsZy5fbGFiZWwpLnJlcGxhY2UoInRpdGxlIixnLl90aXRsZSkuZ2V0UmVnZXgoKSxnLmJ1bGxldD0vKD86WyorLV18XGR7MSw5fVsuKV0pLyxnLmxpc3RJdGVtU3RhcnQ9dygvXiggKikoYnVsbCkgKi8pLnJlcGxhY2Uo'@; put 'ImJ1bGwiLGcuYnVsbGV0KS5nZXRSZWdleCgpLGcubGlzdD13KGcubGlzdCkucmVwbGFjZSgvYnVsbC9nLGcuYnVsbGV0KS5yZXBsYWNlKCJociIsIlxcbisoPz1cXDE/KD86KD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpKSIpLnJlcGxhY2UoImRlZiIs'@; put 'IlxcbisoPz0iK2cuZGVmLnNvdXJjZSsiKSIpLmdldFJlZ2V4KCksZy5fdGFnPSJhZGRyZXNzfGFydGljbGV8YXNpZGV8YmFzZXxiYXNlZm9udHxibG9ja3F1b3RlfGJvZHl8Y2FwdGlvbnxjZW50ZXJ8Y29sfGNvbGdyb3VwfGRkfGRldGFpbHN8ZGlhbG9nfGRpcnxkaXZ8ZGx8ZHR8ZmllbGRz'@; put 'ZXR8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGZvcm18ZnJhbWV8ZnJhbWVzZXR8aFsxLTZdfGhlYWR8aGVhZGVyfGhyfGh0bWx8aWZyYW1lfGxlZ2VuZHxsaXxsaW5rfG1haW58bWVudXxtZW51aXRlbXxtZXRhfG5hdnxub2ZyYW1lc3xvbHxvcHRncm91cHxvcHRpb258cHxwYXJhbXxzZWN0'@; put 'aW9ufHNvdXJjZXxzdW1tYXJ5fHRhYmxlfHRib2R5fHRkfHRmb290fHRofHRoZWFkfHRpdGxlfHRyfHRyYWNrfHVsIixnLl9jb21tZW50PS88IS0tKD8hLT8+KVtcc1xTXSo/KD86LS0+fCQpLyxnLmh0bWw9dyhnLmh0bWwsImkiKS5yZXBsYWNlKCJjb21tZW50IixnLl9jb21tZW50KS5yZXBs'@; put 'YWNlKCJ0YWciLGcuX3RhZykucmVwbGFjZSgiYXR0cmlidXRlIiwvICtbYS16QS1aOl9dW1x3LjotXSooPzogKj0gKiJbXiJcbl0qInwgKj0gKidbXidcbl0qJ3wgKj0gKlteXHMiJz08PmBdKyk/LykuZ2V0UmVnZXgoKSxnLmxoZWFkaW5nPXcoZy5saGVhZGluZykucmVwbGFjZSgvYnVsbC9n'@; put 'LGcuYnVsbGV0KS5nZXRSZWdleCgpLGcucGFyYWdyYXBoPXcoZy5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsZy5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5yZXBsYWNlKCJ8bGhlYWRpbmciLCIiKS5yZXBsYWNlKCJ8dGFibGUiLCIiKS5yZXBsYWNlKCJibG9ja3F1'@; put 'b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8'@; put 'PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsZy5fdGFnKS5nZXRSZWdleCgpLGcuYmxvY2txdW90ZT13KGcuYmxvY2txdW90ZSkucmVwbGFjZSgicGFyYWdyYXBoIixnLnBhcmFncmFwaCkuZ2V0UmVnZXgoKSxnLm5vcm1hbD16KHt9LGcpLGcuZ2Zt'@; put 'PXooe30sZy5ub3JtYWwse3RhYmxlOiJeICooW15cXG4gXS4qXFx8LiopXFxuIHswLDN9KD86XFx8ICopPyg6Py0rOj8gKig/OlxcfCAqOj8tKzo/ICopKikoPzpcXHwgKik/KD86XFxuKCg/Oig/ISAqXFxufGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLioo'@; put 'PzpcXG58JCkpKilcXG4qfCQpIn0pLGcuZ2ZtLnRhYmxlPXcoZy5nZm0udGFibGUpLnJlcGxhY2UoImhyIixnLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiY29kZSIsIiB7NH1bXlxcbl0iKS5y'@; put 'ZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0'@; put 'eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLGcuX3RhZykuZ2V0UmVnZXgoKSxnLmdmbS5wYXJhZ3JhcGg9dyhnLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixnLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJl'@; put 'cGxhY2UoInRhYmxlIixnLmdmbS50YWJsZSkucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAi'@; put 'KS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLGcuX3RhZykuZ2V0UmVnZXgoKSxnLnBlZGFudGljPXooe30sZy5ub3JtYWwse2h0bWw6dygiXiAqKD86Y29tbWVudCAqKD86'@; put 'XFxufFxccyokKXw8KHRhZylbXFxzXFxTXSs/PC9cXDE+ICooPzpcXG57Mix9fFxccyokKXw8dGFnKD86XCJbXlwiXSpcInwnW14nXSonfFxcc1teJ1wiLz5cXHNdKikqPy8/PiAqKD86XFxuezIsfXxcXHMqJCkpIikucmVwbGFjZSgiY29tbWVudCIsZy5fY29tbWVudCkucmVwbGFjZSgvdGFn'@; put 'L2csIig/ISg/OmF8ZW18c3Ryb25nfHNtYWxsfHN8Y2l0ZXxxfGRmbnxhYmJyfGRhdGF8dGltZXxjb2RlfHZhcnxzYW1wfGtiZHxzdWJ8c3VwfGl8Ynx1fG1hcmt8cnVieXxydHxycHxiZGl8YmRvfHNwYW58YnJ8d2JyfGluc3xkZWx8aW1nKVxcYilcXHcrKD8hOnxbXlxcd1xcc0BdKkApXFxi'@; put 'IikuZ2V0UmVnZXgoKSxkZWY6L14gKlxbKFteXF1dKylcXTogKjw/KFteXHM+XSspPj8oPzogKyhbIihdW15cbl0rWyIpXSkpPyAqKD86XG4rfCQpLyxoZWFkaW5nOi9eKCN7MSw2fSkoLiopKD86XG4rfCQpLyxmZW5jZXM6SyxsaGVhZGluZzovXiguKz8pXG4gezAsM30oPSt8LSspICooPzpc'@; put 'bit8JCkvLHBhcmFncmFwaDp3KGcubm9ybWFsLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixnLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLGcubGhlYWRpbmcpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFj'@; put 'ZSgifGZlbmNlcyIsIiIpLnJlcGxhY2UoInxsaXN0IiwiIikucmVwbGFjZSgifGh0bWwiLCIiKS5nZXRSZWdleCgpfSkse2VzY2FwZTovXlxcKFshIiMkJSYnKCkqKyxcLS4vOjs8PT4/QFxbXF1cXF5fYHt8fX5dKS8sYXV0b2xpbms6L148KHNjaGVtZTpbXlxzXHgwMC1ceDFmPD5dKnxlbWFp'@; put 'bCk+Lyx1cmw6Syx0YWc6Il5jb21tZW50fF48L1thLXpBLVpdW1xcdzotXSpcXHMqPnxePFthLXpBLVpdW1xcdy1dKig/OmF0dHJpYnV0ZSkqP1xccyovPz58XjxcXD9bXFxzXFxTXSo/XFw/PnxePCFbYS16QS1aXStcXHNbXFxzXFxTXSo/PnxePCFcXFtDREFUQVxcW1tcXHNcXFNdKj9cXF1c'@; put 'XF0+IixsaW5rOi9eIT9cWyhsYWJlbClcXVwoXHMqKGhyZWYpKD86XHMrKHRpdGxlKSk/XHMqXCkvLHJlZmxpbms6L14hP1xbKGxhYmVsKVxdXFsocmVmKVxdLyxub2xpbms6L14hP1xbKHJlZilcXSg/OlxbXF0pPy8scmVmbGlua1NlYXJjaDoicmVmbGlua3xub2xpbmsoPyFcXCgpIixlbVN0'@; put 'cm9uZzp7bERlbGltOi9eKD86XCorKD86KCg/IVwqKVtwdW5jdF0pfFteXHMqXSkpfF5fKyg/OigoPyFfKVtwdW5jdF0pfChbXlxzX10pKS8sckRlbGltQXN0Oi9eW15fKl0qP19fW15fKl0qP1wqW15fKl0qPyg/PV9fKXxbXipdKyg/PVteKl0pfCg/IVwqKVtwdW5jdF0oXCorKSg/PVtcc118'@; put 'JCl8W15wdW5jdFxzXShcKispKD8hXCopKD89W3B1bmN0XHNdfCQpfCg/IVwqKVtwdW5jdFxzXShcKispKD89W15wdW5jdFxzXSl8W1xzXShcKispKD8hXCopKD89W3B1bmN0XSl8KD8hXCopW3B1bmN0XShcKispKD8hXCopKD89W3B1bmN0XSl8W15wdW5jdFxzXShcKispKD89W15wdW5jdFxz'@; put 'XSkvLHJEZWxpbVVuZDovXlteXypdKj9cKlwqW15fKl0qP19bXl8qXSo/KD89XCpcKil8W15fXSsoPz1bXl9dKXwoPyFfKVtwdW5jdF0oXyspKD89W1xzXXwkKXxbXnB1bmN0XHNdKF8rKSg/IV8pKD89W3B1bmN0XHNdfCQpfCg/IV8pW3B1bmN0XHNdKF8rKSg/PVtecHVuY3Rcc10pfFtcc10o'@; put 'XyspKD8hXykoPz1bcHVuY3RdKXwoPyFfKVtwdW5jdF0oXyspKD8hXykoPz1bcHVuY3RdKS99LGNvZGU6L14oYCspKFteYF18W15gXVtcc1xTXSo/W15gXSlcMSg/IWApLyxicjovXiggezIsfXxcXClcbig/IVxzKiQpLyxkZWw6Syx0ZXh0Oi9eKGArfFteYF0pKD86KD89IHsyLH1cbil8W1xz'@; put 'XFNdKj8oPzooPz1bXFw8IVxbYCpfXXxcYl98JCl8W14gXSg/PSB7Mix9XG4pKSkvLHB1bmN0dWF0aW9uOi9eKCg/IVsqX10pW1xzcHVuY3R1YXRpb25dKS99KTtmdW5jdGlvbiBNMShuKXtyZXR1cm4gbi5yZXBsYWNlKC8tLS0vZywiXHUyMDE0IikucmVwbGFjZSgvLS0vZywiXHUyMDEzIiku'@; put 'cmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbeyJcc10pJy9nLCIkMVx1MjAxOCIpLnJlcGxhY2UoLycvZywiXHUyMDE5IikucmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbe1x1MjAxOFxzXSkiL2csIiQxXHUyMDFjIikucmVwbGFjZSgvIi9nLCJcdTIwMWQiKS5yZXBsYWNlKC9cLnszfS9nLCJcdTIw'@; put 'MjYiKX1mdW5jdGlvbiBwMShuKXtmb3IodmFyIHMsdD0iIixlPW4ubGVuZ3RoLGk9MDtpPGU7aSsrKXM9bi5jaGFyQ29kZUF0KGkpLHQrPSImIyIrKHM9LjU8TWF0aC5yYW5kb20oKT8ieCIrcy50b1N0cmluZygxNik6cykrIjsiO3JldHVybiB0fUEuX3B1bmN0dWF0aW9uPSJcXHB7UH0kKzw9'@; put 'PmBefH4iLEEucHVuY3R1YXRpb249dyhBLnB1bmN0dWF0aW9uLCJ1IikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyxBLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxBLmJsb2NrU2tpcD0vXFtbXltcXV0qP1xdXChbXlwoXCldKj9cKXxgW15gXSo/YHw8W148Pl0qPz4vZyxBLmFueVB1bmN0dWF0'@; put 'aW9uPS9cXFtwdW5jdF0vZyxBLl9lc2NhcGVzPS9cXChbcHVuY3RdKS9nLEEuX2NvbW1lbnQ9dyhnLl9jb21tZW50KS5yZXBsYWNlKCIoPzotLVx4M2V8JCkiLCItLVx4M2UiKS5nZXRSZWdleCgpLEEuZW1TdHJvbmcubERlbGltPXcoQS5lbVN0cm9uZy5sRGVsaW0sInUiKS5yZXBsYWNlKC9w'@; put 'dW5jdC9nLEEuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLEEuZW1TdHJvbmcuckRlbGltQXN0PXcoQS5lbVN0cm9uZy5yRGVsaW1Bc3QsImd1IikucmVwbGFjZSgvcHVuY3QvZyxBLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxBLmVtU3Ryb25nLnJEZWxpbVVuZD13KEEuZW1TdHJvbmcuckRl'@; put 'bGltVW5kLCJndSIpLnJlcGxhY2UoL3B1bmN0L2csQS5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksQS5hbnlQdW5jdHVhdGlvbj13KEEuYW55UHVuY3R1YXRpb24sImd1IikucmVwbGFjZSgvcHVuY3QvZyxBLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxBLl9lc2NhcGVzPXcoQS5fZXNjYXBl'@; put 'cywiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLEEuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLEEuX3NjaGVtZT0vW2EtekEtWl1bYS16QS1aMC05Ky4tXXsxLDMxfS8sQS5fZW1haWw9L1thLXpBLVowLTkuISMkJSYnKisvPT9eX2B7fH1+LV0rKEApW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17'@; put 'MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKyg/IVstX10pLyxBLmF1dG9saW5rPXcoQS5hdXRvbGluaykucmVwbGFjZSgic2NoZW1lIixBLl9zY2hlbWUpLnJlcGxhY2UoImVtYWlsIixBLl9lbWFpbCkuZ2V0UmVn'@; put 'ZXgoKSxBLl9hdHRyaWJ1dGU9L1xzK1thLXpBLVo6X11bXHcuOi1dKig/OlxzKj1ccyoiW14iXSoifFxzKj1ccyonW14nXSonfFxzKj1ccypbXlxzIic9PD5gXSspPy8sQS50YWc9dyhBLnRhZykucmVwbGFjZSgiY29tbWVudCIsQS5fY29tbWVudCkucmVwbGFjZSgiYXR0cmlidXRlIixBLl9h'@; put 'dHRyaWJ1dGUpLmdldFJlZ2V4KCksQS5fbGFiZWw9Lyg/OlxbKD86XFwufFteXFtcXVxcXSkqXF18XFwufGBbXmBdKmB8W15cW1xdXFxgXSkqPy8sQS5faHJlZj0vPCg/OlxcLnxbXlxuPD5cXF0pKz58W15cc1x4MDAtXHgxZl0qLyxBLl90aXRsZT0vIig/OlxcIj98W14iXFxdKSoifCcoPzpc'@; put 'XCc/fFteJ1xcXSkqJ3xcKCg/OlxcXCk/fFteKVxcXSkqXCkvLEEubGluaz13KEEubGluaykucmVwbGFjZSgibGFiZWwiLEEuX2xhYmVsKS5yZXBsYWNlKCJocmVmIixBLl9ocmVmKS5yZXBsYWNlKCJ0aXRsZSIsQS5fdGl0bGUpLmdldFJlZ2V4KCksQS5yZWZsaW5rPXcoQS5yZWZsaW5rKS5y'@; put 'ZXBsYWNlKCJsYWJlbCIsQS5fbGFiZWwpLnJlcGxhY2UoInJlZiIsZy5fbGFiZWwpLmdldFJlZ2V4KCksQS5ub2xpbms9dyhBLm5vbGluaykucmVwbGFjZSgicmVmIixnLl9sYWJlbCkuZ2V0UmVnZXgoKSxBLnJlZmxpbmtTZWFyY2g9dyhBLnJlZmxpbmtTZWFyY2gsImciKS5yZXBsYWNlKCJy'@; put 'ZWZsaW5rIixBLnJlZmxpbmspLnJlcGxhY2UoIm5vbGluayIsQS5ub2xpbmspLmdldFJlZ2V4KCksQS5ub3JtYWw9eih7fSxBKSxBLnBlZGFudGljPXooe30sQS5ub3JtYWwse3N0cm9uZzp7c3RhcnQ6L15fX3xcKlwqLyxtaWRkbGU6L15fXyg/PVxTKShbXHNcU10qP1xTKV9fKD8hXyl8Xlwq'@; put 'XCooPz1cUykoW1xzXFNdKj9cUylcKlwqKD8hXCopLyxlbmRBc3Q6L1wqXCooPyFcKikvZyxlbmRVbmQ6L19fKD8hXykvZ30sZW06e3N0YXJ0Oi9eX3xcKi8sbWlkZGxlOi9eKClcKig/PVxTKShbXHNcU10qP1xTKVwqKD8hXCopfF5fKD89XFMpKFtcc1xTXSo/XFMpXyg/IV8pLyxlbmRBc3Q6'@; put 'L1wqKD8hXCopL2csZW5kVW5kOi9fKD8hXykvZ30sbGluazp3KC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixBLl9sYWJlbCkuZ2V0UmVnZXgoKSxyZWZsaW5rOncoL14hP1xbKGxhYmVsKVxdXHMqXFsoW15cXV0qKVxdLykucmVwbGFjZSgibGFiZWwiLEEuX2xh'@; put 'YmVsKS5nZXRSZWdleCgpfSksQS5nZm09eih7fSxBLm5vcm1hbCx7ZXNjYXBlOncoQS5lc2NhcGUpLnJlcGxhY2UoIl0pIiwifnxdKSIpLmdldFJlZ2V4KCksX2V4dGVuZGVkX2VtYWlsOi9bQS1aYS16MC05Ll8rLV0rKEApW2EtekEtWjAtOS1fXSsoPzpcLlthLXpBLVowLTktX10qW2EtekEt'@; put 'WjAtOV0pKyg/IVstX10pLyx1cmw6L14oKD86ZnRwfGh0dHBzPyk6XC9cL3x3d3dcLikoPzpbYS16QS1aMC05XC1dK1wuPykrW15cczxdKnxeZW1haWwvLF9iYWNrcGVkYWw6Lyg/OltePyEuLDo7Kl8nIn4oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7Kl8nIn4p'@; put 'XSsoPyEkKSkrLyxkZWw6L14ofn4/KSg/PVteXHN+XSkoW1xzXFNdKj9bXlxzfl0pXDEoPz1bXn5dfCQpLyx0ZXh0Oi9eKFtgfl0rfFteYH5dKSg/Oig/PSB7Mix9XG4pfCg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApfFtcc1xTXSo/KD86KD89W1xcPCFcW2Aqfl9dfFxi'@; put 'X3xodHRwcz86XC9cL3xmdHA6XC9cL3x3d3dcLnwkKXxbXiBdKD89IHsyLH1cbil8W15hLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dKD89W2EtekEtWjAtOS4hIyQlJicqK1wvPT9fYHtcfH1+LV0rQCkpKS99KSxBLmdmbS51cmw9dyhBLmdmbS51cmwsImkiKS5yZXBsYWNlKCJlbWFp'@; put 'bCIsQS5nZm0uX2V4dGVuZGVkX2VtYWlsKS5nZXRSZWdleCgpLEEuYnJlYWtzPXooe30sQS5nZm0se2JyOncoQS5icikucmVwbGFjZSgiezIsfSIsIioiKS5nZXRSZWdleCgpLHRleHQ6dyhBLmdmbS50ZXh0KS5yZXBsYWNlKCJcXGJfIiwiXFxiX3wgezIsfVxcbiIpLnJlcGxhY2UoL1x7Mixc'@; put 'fS9nLCIqIikuZ2V0UmVnZXgoKX0pO3ZhciBOPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihpKXt0aGlzLnRva2Vucz1bXSx0aGlzLnRva2Vucy5saW5rcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMub3B0aW9ucz1pfHxiLmRlZmF1bHRzLHRoaXMub3B0aW9ucy50b2tlbml6ZXI9dGhpcy5vcHRp'@; put 'b25zLnRva2VuaXplcnx8bmV3IEosdGhpcy50b2tlbml6ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcix0aGlzLnRva2VuaXplci5vcHRpb25zPXRoaXMub3B0aW9ucywodGhpcy50b2tlbml6ZXIubGV4ZXI9dGhpcykuaW5saW5lUXVldWU9W10sdGhpcy5zdGF0ZT17aW5MaW5rOiExLGluUmF3'@; put 'QmxvY2s6ITEsdG9wOiEwfSxpPXtibG9jazpnLm5vcm1hbCxpbmxpbmU6QS5ub3JtYWx9LHRoaXMub3B0aW9ucy5wZWRhbnRpYz8oaS5ibG9jaz1nLnBlZGFudGljLGkuaW5saW5lPUEucGVkYW50aWMpOnRoaXMub3B0aW9ucy5nZm0mJihpLmJsb2NrPWcuZ2ZtLGkuaW5saW5lPXRoaXMub3B0'@; put 'aW9ucy5icmVha3M/QS5icmVha3M6QS5nZm0pLHRoaXMudG9rZW5pemVyLnJ1bGVzPWl9bi5sZXg9ZnVuY3Rpb24oaSxyKXtyZXR1cm4gbmV3IG4ocikubGV4KGkpfSxuLmxleElubGluZT1mdW5jdGlvbihpLHIpe3JldHVybiBuZXcgbihyKS5pbmxpbmVUb2tlbnMoaSl9O3ZhciB0LGU9bi5w'@; put 'cm90b3R5cGU7cmV0dXJuIGUubGV4PWZ1bmN0aW9uKGkpe3ZhciByO2ZvcihpPWkucmVwbGFjZSgvXHJcbnxcci9nLCJcbiIpLHRoaXMuYmxvY2tUb2tlbnMoaSx0aGlzLnRva2Vucyk7cj10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKHIuc3JjLHIudG9rZW5z'@; put 'KTtyZXR1cm4gdGhpcy50b2tlbnN9LGUuYmxvY2tUb2tlbnM9ZnVuY3Rpb24oaSxyKXt2YXIgYyxoLFYsQyx1PXRoaXM7Zm9yKHZvaWQgMD09PXImJihyPVtdKSxpPXRoaXMub3B0aW9ucy5wZWRhbnRpYz9pLnJlcGxhY2UoL1x0L2csIiAgICAiKS5yZXBsYWNlKC9eICskL2dtLCIiKTppLnJl'@; put 'cGxhY2UoL14oICopKFx0KykvZ20sZnVuY3Rpb24oTCx5LEkpe3JldHVybiB5KyIgICAgIi5yZXBlYXQoSS5sZW5ndGgpfSk7aTspe3ZhciBkPWZ1bmN0aW9uKCl7aWYodS5vcHRpb25zLmV4dGVuc2lvbnMmJnUub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrJiZ1Lm9wdGlvbnMuZXh0ZW5zaW9u'@; put 'cy5ibG9jay5zb21lKGZ1bmN0aW9uKG8pe3JldHVybiEhKGM9by5jYWxsKHtsZXhlcjp1fSxpLHIpKSYmKGk9aS5zdWJzdHJpbmcoYy5yYXcubGVuZ3RoKSxyLnB1c2goYyksITApfSkpcmV0dXJuImNvbnRpbnVlIjtpZihjPXUudG9rZW5pemVyLnNwYWNlKGkpKXJldHVybiBpPWkuc3Vic3Ry'@; put 'aW5nKGMucmF3Lmxlbmd0aCksMT09PWMucmF3Lmxlbmd0aCYmMDxyLmxlbmd0aD9yW3IubGVuZ3RoLTFdLnJhdys9IlxuIjpyLnB1c2goYyksImNvbnRpbnVlIjtpZihjPXUudG9rZW5pemVyLmNvZGUoaSkpcmV0dXJuIGk9aS5zdWJzdHJpbmcoYy5yYXcubGVuZ3RoKSwhKGg9cltyLmxlbmd0'@; put 'aC0xXSl8fCJwYXJhZ3JhcGgiIT09aC50eXBlJiYidGV4dCIhPT1oLnR5cGU/ci5wdXNoKGMpOihoLnJhdys9IlxuIitjLnJhdyxoLnRleHQrPSJcbiIrYy50ZXh0LHUuaW5saW5lUXVldWVbdS5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWgudGV4dCksImNvbnRpbnVlIjtpZigoYz11LnRv'@; put 'a2VuaXplci5mZW5jZXMoaSkpfHwoYz11LnRva2VuaXplci5oZWFkaW5nKGkpKXx8KGM9dS50b2tlbml6ZXIuaHIoaSkpfHwoYz11LnRva2VuaXplci5ibG9ja3F1b3RlKGkpKXx8KGM9dS50b2tlbml6ZXIubGlzdChpKSl8fChjPXUudG9rZW5pemVyLmh0bWwoaSkpKXJldHVybiBpPWkuc3Vi'@; put 'c3RyaW5nKGMucmF3Lmxlbmd0aCksci5wdXNoKGMpLCJjb250aW51ZSI7aWYoYz11LnRva2VuaXplci5kZWYoaSkpcmV0dXJuIGk9aS5zdWJzdHJpbmcoYy5yYXcubGVuZ3RoKSwhKGg9cltyLmxlbmd0aC0xXSl8fCJwYXJhZ3JhcGgiIT09aC50eXBlJiYidGV4dCIhPT1oLnR5cGU/dS50b2tl'@; put 'bnMubGlua3NbYy50YWddfHwodS50b2tlbnMubGlua3NbYy50YWddPXtocmVmOmMuaHJlZix0aXRsZTpjLnRpdGxlfSk6KGgucmF3Kz0iXG4iK2MucmF3LGgudGV4dCs9IlxuIitjLnJhdyx1LmlubGluZVF1ZXVlW3UuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1oLnRleHQpLCJjb250aW51'@; put 'ZSI7aWYoKGM9dS50b2tlbml6ZXIudGFibGUoaSkpfHwoYz11LnRva2VuaXplci5saGVhZGluZyhpKSkpcmV0dXJuIGk9aS5zdWJzdHJpbmcoYy5yYXcubGVuZ3RoKSxyLnB1c2goYyksImNvbnRpbnVlIjt2YXIgTCx5LEk7aWYoVj1pLHUub3B0aW9ucy5leHRlbnNpb25zJiZ1Lm9wdGlvbnMu'@; put 'ZXh0ZW5zaW9ucy5zdGFydEJsb2NrJiYoTD0xLzAseT1pLnNsaWNlKDEpLHUub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0QmxvY2suZm9yRWFjaChmdW5jdGlvbihvKXsibnVtYmVyIj09dHlwZW9mKEk9by5jYWxsKHtsZXhlcjp0aGlzfSx5KSkmJjA8PUkmJihMPU1hdGgubWluKEwsSSkpfSks'@; put 'TDwxLzApJiYwPD1MJiYoVj1pLnN1YnN0cmluZygwLEwrMSkpLHUuc3RhdGUudG9wJiYoYz11LnRva2VuaXplci5wYXJhZ3JhcGgoVikpKXJldHVybiBoPXJbci5sZW5ndGgtMV0sQyYmInBhcmFncmFwaCI9PT1oLnR5cGU/KGgucmF3Kz0iXG4iK2MucmF3LGgudGV4dCs9IlxuIitjLnRleHQs'@; put 'dS5pbmxpbmVRdWV1ZS5wb3AoKSx1LmlubGluZVF1ZXVlW3UuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1oLnRleHQpOnIucHVzaChjKSxDPVYubGVuZ3RoIT09aS5sZW5ndGgsaT1pLnN1YnN0cmluZyhjLnJhdy5sZW5ndGgpLCJjb250aW51ZSI7aWYoYz11LnRva2VuaXplci50ZXh0KGkp'@; put 'KXJldHVybiBpPWkuc3Vic3RyaW5nKGMucmF3Lmxlbmd0aCksKGg9cltyLmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PWgudHlwZT8oaC5yYXcrPSJcbiIrYy5yYXcsaC50ZXh0Kz0iXG4iK2MudGV4dCx1LmlubGluZVF1ZXVlLnBvcCgpLHUuaW5saW5lUXVldWVbdS5pbmxpbmVRdWV1ZS5sZW5ndGgt'@; put 'MV0uc3JjPWgudGV4dCk6ci5wdXNoKGMpLCJjb250aW51ZSI7aWYoaSl7dmFyIFo9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitpLmNoYXJDb2RlQXQoMCk7aWYodS5vcHRpb25zLnNpbGVudClyZXR1cm4gY29uc29sZS5lcnJvcihaKSwiYnJlYWsiO3Rocm93IG5ldyBFcnJvcihaKX19KCk7'@; put 'aWYoImNvbnRpbnVlIiE9PWQmJiJicmVhayI9PT1kKWJyZWFrfXJldHVybiB0aGlzLnN0YXRlLnRvcD0hMCxyfSxlLmlubGluZT1mdW5jdGlvbihpLHIpe3JldHVybiB0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzppLHRva2VuczpyPXZvaWQgMD09PXI/W106cn0pLHJ9LGUuaW5saW5lVG9r'@; put 'ZW5zPWZ1bmN0aW9uKGkscil7dmFyIGMsaCxWLEMsdSxkLEw9dGhpcyx5PSh2b2lkIDA9PT1yJiYocj1bXSksaSk7aWYodGhpcy50b2tlbnMubGlua3Mpe3ZhciBJPU9iamVjdC5rZXlzKHRoaXMudG9rZW5zLmxpbmtzKTtpZigwPEkubGVuZ3RoKWZvcig7bnVsbCE9KEM9dGhpcy50b2tlbml6'@; put 'ZXIucnVsZXMuaW5saW5lLnJlZmxpbmtTZWFyY2guZXhlYyh5KSk7KUkuaW5jbHVkZXMoQ1swXS5zbGljZShDWzBdLmxhc3RJbmRleE9mKCJbIikrMSwtMSkpJiYoeT15LnNsaWNlKDAsQy5pbmRleCkrIlsiKyJhIi5yZXBlYXQoQ1swXS5sZW5ndGgtMikrIl0iK3kuc2xpY2UodGhpcy50b2tl'@; put 'bml6ZXIucnVsZXMuaW5saW5lLnJlZmxpbmtTZWFyY2gubGFzdEluZGV4KSl9Zm9yKDtudWxsIT0oQz10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmV4ZWMoeSkpOyl5PXkuc2xpY2UoMCxDLmluZGV4KSsiWyIrImEiLnJlcGVhdChDWzBdLmxlbmd0aC0yKSsiXSIreS5z'@; put 'bGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmxhc3RJbmRleCk7Zm9yKDtudWxsIT0oQz10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYW55UHVuY3R1YXRpb24uZXhlYyh5KSk7KXk9eS5zbGljZSgwLEMuaW5kZXgpKyIrKyIreS5zbGljZSh0aGlzLnRva2Vu'@; put 'aXplci5ydWxlcy5pbmxpbmUuYW55UHVuY3R1YXRpb24ubGFzdEluZGV4KTtmb3IoO2k7KXt2YXIgWj1mdW5jdGlvbigpe2lmKHV8fChkPSIiKSx1PSExLEwub3B0aW9ucy5leHRlbnNpb25zJiZMLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUmJkwub3B0aW9ucy5leHRlbnNpb25zLmlubGlu'@; put 'ZS5zb21lKGZ1bmN0aW9uKG0pe3JldHVybiEhKGM9bS5jYWxsKHtsZXhlcjpMfSxpLHIpKSYmKGk9aS5zdWJzdHJpbmcoYy5yYXcubGVuZ3RoKSxyLnB1c2goYyksITApfSkpcmV0dXJuImNvbnRpbnVlIjtpZihjPUwudG9rZW5pemVyLmVzY2FwZShpKSlyZXR1cm4gaT1pLnN1YnN0cmluZyhj'@; put 'LnJhdy5sZW5ndGgpLHIucHVzaChjKSwiY29udGludWUiO2lmKGM9TC50b2tlbml6ZXIudGFnKGkpKXJldHVybiBpPWkuc3Vic3RyaW5nKGMucmF3Lmxlbmd0aCksKGg9cltyLmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PWMudHlwZSYmInRleHQiPT09aC50eXBlPyhoLnJhdys9Yy5yYXcsaC50ZXh0'@; put 'Kz1jLnRleHQpOnIucHVzaChjKSwiY29udGludWUiO2lmKGM9TC50b2tlbml6ZXIubGluayhpKSlyZXR1cm4gaT1pLnN1YnN0cmluZyhjLnJhdy5sZW5ndGgpLHIucHVzaChjKSwiY29udGludWUiO2lmKGM9TC50b2tlbml6ZXIucmVmbGluayhpLEwudG9rZW5zLmxpbmtzKSlyZXR1cm4gaT1p'@; put 'LnN1YnN0cmluZyhjLnJhdy5sZW5ndGgpLChoPXJbci5sZW5ndGgtMV0pJiYidGV4dCI9PT1jLnR5cGUmJiJ0ZXh0Ij09PWgudHlwZT8oaC5yYXcrPWMucmF3LGgudGV4dCs9Yy50ZXh0KTpyLnB1c2goYyksImNvbnRpbnVlIjtpZigoYz1MLnRva2VuaXplci5lbVN0cm9uZyhpLHksZCkpfHwo'@; put 'Yz1MLnRva2VuaXplci5jb2Rlc3BhbihpKSl8fChjPUwudG9rZW5pemVyLmJyKGkpKXx8KGM9TC50b2tlbml6ZXIuZGVsKGkpKXx8KGM9TC50b2tlbml6ZXIuYXV0b2xpbmsoaSxwMSkpfHwhTC5zdGF0ZS5pbkxpbmsmJihjPUwudG9rZW5pemVyLnVybChpLHAxKSkpcmV0dXJuIGk9aS5zdWJz'@; put 'dHJpbmcoYy5yYXcubGVuZ3RoKSxyLnB1c2goYyksImNvbnRpbnVlIjt2YXIgbyxmLEU7aWYoVj1pLEwub3B0aW9ucy5leHRlbnNpb25zJiZMLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZSYmKG89MS8wLGY9aS5zbGljZSgxKSxMLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGlu'@; put 'ZS5mb3JFYWNoKGZ1bmN0aW9uKG0peyJudW1iZXIiPT10eXBlb2YoRT1tLmNhbGwoe2xleGVyOnRoaXN9LGYpKSYmMDw9RSYmKG89TWF0aC5taW4obyxFKSl9KSxvPDEvMCkmJjA8PW8mJihWPWkuc3Vic3RyaW5nKDAsbysxKSksYz1MLnRva2VuaXplci5pbmxpbmVUZXh0KFYsTTEpKXJldHVy'@; put 'biBpPWkuc3Vic3RyaW5nKGMucmF3Lmxlbmd0aCksIl8iIT09Yy5yYXcuc2xpY2UoLTEpJiYoZD1jLnJhdy5zbGljZSgtMSkpLHU9ITAsKGg9cltyLmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PWgudHlwZT8oaC5yYXcrPWMucmF3LGgudGV4dCs9Yy50ZXh0KTpyLnB1c2goYyksImNvbnRpbnVlIjtp'@; put 'ZihpKXt2YXIgQj0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK2kuY2hhckNvZGVBdCgwKTtpZihMLm9wdGlvbnMuc2lsZW50KXJldHVybiBjb25zb2xlLmVycm9yKEIpLCJicmVhayI7dGhyb3cgbmV3IEVycm9yKEIpfX0oKTtpZigiY29udGludWUiIT09WiYmImJyZWFrIj09PVopYnJlYWt9'@; put 'cmV0dXJuIHJ9LGU9biwodD1be2tleToicnVsZXMiLGdldDpmdW5jdGlvbigpe3JldHVybntibG9jazpnLGlubGluZTpBfX19XSkmJmooZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxufSgpLGwxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0'@; put 'KXt0aGlzLm9wdGlvbnM9dHx8Yi5kZWZhdWx0c312YXIgcz1uLnByb3RvdHlwZTtyZXR1cm4gcy5jb2RlPWZ1bmN0aW9uKHQsYyxpKXt2YXIgcjtyZXR1cm4gYz0oY3x8IiIpLm1hdGNoKC9cUyovKVswXSx0aGlzLm9wdGlvbnMuaGlnaGxpZ2h0JiZudWxsIT0ocj10aGlzLm9wdGlvbnMuaGln'@; put 'aGxpZ2h0KHQsYykpJiZyIT09dCYmKGk9ITAsdD1yKSx0PXQucmVwbGFjZSgvXG4kLywiIikrIlxuIixjPyc8cHJlPjxjb2RlIGNsYXNzPSInK3RoaXMub3B0aW9ucy5sYW5nUHJlZml4K1QoYykrJyI+JysoaT90OlQodCwhMCkpKyI8L2NvZGU+PC9wcmU+XG4iOiI8cHJlPjxjb2RlPiIrKGk/'@; put 'dDpUKHQsITApKSsiPC9jb2RlPjwvcHJlPlxuIn0scy5ibG9ja3F1b3RlPWZ1bmN0aW9uKHQpe3JldHVybiI8YmxvY2txdW90ZT5cbiIrdCsiPC9ibG9ja3F1b3RlPlxuIn0scy5odG1sPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9LHMuaGVhZGluZz1mdW5jdGlvbih0LGUsaSxyKXtyZXR1cm4g'@; put 'dGhpcy5vcHRpb25zLmhlYWRlcklkcz8iPGgiK2UrJyBpZD0iJysodGhpcy5vcHRpb25zLmhlYWRlclByZWZpeCtyLnNsdWcoaSkpKyciPicrdCsiPC9oIitlKyI+XG4iOiI8aCIrZSsiPiIrdCsiPC9oIitlKyI+XG4ifSxzLmhyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy54aHRt'@; put 'bD8iPGhyLz5cbiI6Ijxocj5cbiJ9LHMubGlzdD1mdW5jdGlvbih0LGUsaSl7dmFyIHI9ZT8ib2wiOiJ1bCI7cmV0dXJuIjwiK3IrKGUmJjEhPT1pPycgc3RhcnQ9IicraSsnIic6IiIpKyI+XG4iK3QrIjwvIityKyI+XG4ifSxzLmxpc3RpdGVtPWZ1bmN0aW9uKHQpe3JldHVybiI8bGk+Iit0'@; put 'KyI8L2xpPlxuIn0scy5jaGVja2JveD1mdW5jdGlvbih0KXtyZXR1cm4iPGlucHV0ICIrKHQ/J2NoZWNrZWQ9IiIgJzoiIikrJ2Rpc2FibGVkPSIiIHR5cGU9ImNoZWNrYm94IicrKHRoaXMub3B0aW9ucy54aHRtbD8iIC8iOiIiKSsiPiAifSxzLnBhcmFncmFwaD1mdW5jdGlvbih0KXtyZXR1'@; put 'cm4iPHA+Iit0KyI8L3A+XG4ifSxzLnRhYmxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIjx0YWJsZT5cbjx0aGVhZD5cbiIrdCsiPC90aGVhZD5cbiIrKGU9ZSYmIjx0Ym9keT4iK2UrIjwvdGJvZHk+IikrIjwvdGFibGU+XG4ifSxzLnRhYmxlcm93PWZ1bmN0aW9uKHQpe3JldHVybiI8dHI+XG4i'@; put 'K3QrIjwvdHI+XG4ifSxzLnRhYmxlY2VsbD1mdW5jdGlvbih0LGUpe3ZhciBpPWUuaGVhZGVyPyJ0aCI6InRkIjtyZXR1cm4oZS5hbGlnbj8iPCIraSsnIGFsaWduPSInK2UuYWxpZ24rJyI+JzoiPCIraSsiPiIpK3QrIjwvIitpKyI+XG4ifSxzLnN0cm9uZz1mdW5jdGlvbih0KXtyZXR1cm4i'@; put 'PHN0cm9uZz4iK3QrIjwvc3Ryb25nPiJ9LHMuZW09ZnVuY3Rpb24odCl7cmV0dXJuIjxlbT4iK3QrIjwvZW0+In0scy5jb2Rlc3Bhbj1mdW5jdGlvbih0KXtyZXR1cm4iPGNvZGU+Iit0KyI8L2NvZGU+In0scy5icj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxici8+'@; put 'IjoiPGJyPiJ9LHMuZGVsPWZ1bmN0aW9uKHQpe3JldHVybiI8ZGVsPiIrdCsiPC9kZWw+In0scy5saW5rPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbnVsbD09PSh0PW4xKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCx0KSk/aToodD0nPGEgaHJlZj0iJyt0Kyci'@; put 'JyxlJiYodCs9JyB0aXRsZT0iJytlKyciJyksdCsiPiIraSsiPC9hPiIpfSxzLmltYWdlPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbnVsbD09PSh0PW4xKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCx0KSk/aToodD0nPGltZyBzcmM9IicrdCsnIiBhbHQ9Iicr'@; put 'aSsnIicsZSYmKHQrPScgdGl0bGU9IicrZSsnIicpLHQrKHRoaXMub3B0aW9ucy54aHRtbD8iLz4iOiI+IikpfSxzLnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LG59KCkscjE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7fXZhciBzPW4ucHJvdG90eXBlO3JldHVybiBzLnN0cm9uZz1mdW5j'@; put 'dGlvbih0KXtyZXR1cm4gdH0scy5lbT1mdW5jdGlvbih0KXtyZXR1cm4gdH0scy5jb2Rlc3Bhbj1mdW5jdGlvbih0KXtyZXR1cm4gdH0scy5kZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHMuaHRtbD1mdW5jdGlvbih0KXtyZXR1cm4gdH0scy50ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiB0fSxz'@; put 'Lmxpbms9ZnVuY3Rpb24odCxlLGkpe3JldHVybiIiK2l9LHMuaW1hZ2U9ZnVuY3Rpb24odCxlLGkpe3JldHVybiIiK2l9LHMuYnI9ZnVuY3Rpb24oKXtyZXR1cm4iIn0sbn0oKSxzMT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXt0aGlzLnNlZW49e319dmFyIHM9bi5wcm90b3R5cGU7cmV0dXJu'@; put 'IHMuc2VyaWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRvTG93ZXJDYXNlKCkudHJpbSgpLnJlcGxhY2UoLzxbIVwvYS16XS4qPz4vZ2ksIiIpLnJlcGxhY2UoL1tcdTIwMDAtXHUyMDZGXHUyRTAwLVx1MkU3RlxcJyEiIyQlJigpKissLi86Ozw9Pj9AW1xdXmB7fH1+XS9nLCIiKS5yZXBs'@; put 'YWNlKC9ccy9nLCItIil9LHMuZ2V0TmV4dFNhZmVTbHVnPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dCxyPTA7aWYodGhpcy5zZWVuLmhhc093blByb3BlcnR5KGkpKWZvcihyPXRoaXMuc2Vlblt0XTtpPXQrIi0iKyArK3IsdGhpcy5zZWVuLmhhc093blByb3BlcnR5KGkpOyk7cmV0dXJuIGV8fCh0'@; put 'aGlzLnNlZW5bdF09cix0aGlzLnNlZW5baV09MCksaX0scy5zbHVnPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSx0PXRoaXMuc2VyaWFsaXplKHQpLHRoaXMuZ2V0TmV4dFNhZmVTbHVnKHQsZS5kcnlydW4pfSxufSgpLHE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQp'@; put 'e3RoaXMub3B0aW9ucz10fHxiLmRlZmF1bHRzLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyBsMSx0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRl'@; put 'cmVyPW5ldyByMSx0aGlzLnNsdWdnZXI9bmV3IHMxfW4ucGFyc2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG4oZSkucGFyc2UodCl9LG4ucGFyc2VJbmxpbmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG4oZSkucGFyc2VJbmxpbmUodCl9O3ZhciBzPW4ucHJvdG90eXBlO3JldHVybiBz'@; put 'LnBhcnNlPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9ITApO2Zvcih2YXIgaSxyLGMsaCxWLEMsdSxkLEwseSxJLFosbyxmLEUsQixtPSIiLF89dC5sZW5ndGgsUj0wO1I8XztSKyspaWYoZD10W1JdLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9u'@; put 'cy5yZW5kZXJlcnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tkLnR5cGVdJiYoITEhPT0oQj10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbZC50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sZCkpfHwhWyJzcGFjZSIsImhyIiwiaGVhZGluZyIsImNvZGUiLCJ0'@; put 'YWJsZSIsImJsb2NrcXVvdGUiLCJsaXN0IiwiaHRtbCIsInBhcmFncmFwaCIsInRleHQiXS5pbmNsdWRlcyhkLnR5cGUpKSltKz1CfHwiIjtlbHNlIHN3aXRjaChkLnR5cGUpe2Nhc2Uic3BhY2UiOmNvbnRpbnVlO2Nhc2UiaHIiOm0rPXRoaXMucmVuZGVyZXIuaHIoKTtjb250aW51ZTtjYXNl'@; put 'ImhlYWRpbmciOm0rPXRoaXMucmVuZGVyZXIuaGVhZGluZyh0aGlzLnBhcnNlSW5saW5lKGQudG9rZW5zKSxkLmRlcHRoLFEodGhpcy5wYXJzZUlubGluZShkLnRva2Vucyx0aGlzLnRleHRSZW5kZXJlcikpLHRoaXMuc2x1Z2dlcik7Y29udGludWU7Y2FzZSJjb2RlIjptKz10aGlzLnJlbmRl'@; put 'cmVyLmNvZGUoZC50ZXh0LGQubGFuZyxkLmVzY2FwZWQpO2NvbnRpbnVlO2Nhc2UidGFibGUiOmZvcihDPUw9IiIsYz1kLmhlYWRlci5sZW5ndGgsaT0wO2k8YztpKyspQys9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShkLmhlYWRlcltpXS50b2tlbnMpLHtoZWFk'@; put 'ZXI6ITAsYWxpZ246ZC5hbGlnbltpXX0pO2ZvcihMKz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KEMpLHU9IiIsYz1kLnJvd3MubGVuZ3RoLGk9MDtpPGM7aSsrKXtmb3IoQz0iIixoPShWPWQucm93c1tpXSkubGVuZ3RoLHI9MDtyPGg7cisrKUMrPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRo'@; put 'aXMucGFyc2VJbmxpbmUoVltyXS50b2tlbnMpLHtoZWFkZXI6ITEsYWxpZ246ZC5hbGlnbltyXX0pO3UrPXRoaXMucmVuZGVyZXIudGFibGVyb3coQyl9bSs9dGhpcy5yZW5kZXJlci50YWJsZShMLHUpO2NvbnRpbnVlO2Nhc2UiYmxvY2txdW90ZSI6dT10aGlzLnBhcnNlKGQudG9rZW5zKSxt'@; put 'Kz10aGlzLnJlbmRlcmVyLmJsb2NrcXVvdGUodSk7Y29udGludWU7Y2FzZSJsaXN0Ijpmb3IoTD1kLm9yZGVyZWQsJD1kLnN0YXJ0LHk9ZC5sb29zZSxjPWQuaXRlbXMubGVuZ3RoLHU9IiIsaT0wO2k8YztpKyspbz0oWj1kLml0ZW1zW2ldKS5jaGVja2VkLGY9Wi50YXNrLEk9IiIsWi50YXNr'@; put 'JiYoRT10aGlzLnJlbmRlcmVyLmNoZWNrYm94KG8pLHk/MDxaLnRva2Vucy5sZW5ndGgmJiJwYXJhZ3JhcGgiPT09Wi50b2tlbnNbMF0udHlwZT8oWi50b2tlbnNbMF0udGV4dD1FKyIgIitaLnRva2Vuc1swXS50ZXh0LFoudG9rZW5zWzBdLnRva2VucyYmMDxaLnRva2Vuc1swXS50b2tlbnMu'@; put 'bGVuZ3RoJiYidGV4dCI9PT1aLnRva2Vuc1swXS50b2tlbnNbMF0udHlwZSYmKFoudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0PUUrIiAiK1oudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6Wi50b2tlbnMudW5zaGlmdCh7dHlwZToidGV4dCIsdGV4dDpFfSk6SSs9RSksSSs9dGhpcy5wYXJz'@; put 'ZShaLnRva2Vucyx5KSx1Kz10aGlzLnJlbmRlcmVyLmxpc3RpdGVtKEksZixvKTttKz10aGlzLnJlbmRlcmVyLmxpc3QodSxMLCQpO2NvbnRpbnVlO2Nhc2UiaHRtbCI6bSs9dGhpcy5yZW5kZXJlci5odG1sKGQudGV4dCxkLmJsb2NrKTtjb250aW51ZTtjYXNlInBhcmFncmFwaCI6bSs9dGhp'@; put 'cy5yZW5kZXJlci5wYXJhZ3JhcGgodGhpcy5wYXJzZUlubGluZShkLnRva2VucykpO2NvbnRpbnVlO2Nhc2UidGV4dCI6Zm9yKHU9ZC50b2tlbnM/dGhpcy5wYXJzZUlubGluZShkLnRva2Vucyk6ZC50ZXh0O1IrMTxfJiYidGV4dCI9PT10W1IrMV0udHlwZTspdSs9IlxuIisoKGQ9dFsrK1Jd'@; put 'KS50b2tlbnM/dGhpcy5wYXJzZUlubGluZShkLnRva2Vucyk6ZC50ZXh0KTttKz1lP3RoaXMucmVuZGVyZXIucGFyYWdyYXBoKHUpOnU7Y29udGludWU7ZGVmYXVsdDp2YXIgJD0nVG9rZW4gd2l0aCAiJytkLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNp'@; put 'bGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCQpO3Rocm93IG5ldyBFcnJvcigkKX1yZXR1cm4gbX0scy5wYXJzZUlubGluZT1mdW5jdGlvbih0LGUpe2U9ZXx8dGhpcy5yZW5kZXJlcjtmb3IodmFyIGkscixjPSIiLGg9dC5sZW5ndGgsVj0wO1Y8aDtWKyspaWYoaT10W1ZdLHRoaXMu'@; put 'b3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tpLnR5cGVdJiYoITEhPT0ocj10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbaS50eXBlXS5jYWxsKHtwYXJzZXI6dGhp'@; put 'c30saSkpfHwhWyJlc2NhcGUiLCJodG1sIiwibGluayIsImltYWdlIiwic3Ryb25nIiwiZW0iLCJjb2Rlc3BhbiIsImJyIiwiZGVsIiwidGV4dCJdLmluY2x1ZGVzKGkudHlwZSkpKWMrPXJ8fCIiO2Vsc2Ugc3dpdGNoKGkudHlwZSl7Y2FzZSJlc2NhcGUiOmNhc2UidGV4dCI6Yys9ZS50ZXh0'@; put 'KGkudGV4dCk7YnJlYWs7Y2FzZSJodG1sIjpjKz1lLmh0bWwoaS50ZXh0KTticmVhaztjYXNlImxpbmsiOmMrPWUubGluayhpLmhyZWYsaS50aXRsZSx0aGlzLnBhcnNlSW5saW5lKGkudG9rZW5zLGUpKTticmVhaztjYXNlImltYWdlIjpjKz1lLmltYWdlKGkuaHJlZixpLnRpdGxlLGkudGV4'@; put 'dCk7YnJlYWs7Y2FzZSJzdHJvbmciOmMrPWUuc3Ryb25nKHRoaXMucGFyc2VJbmxpbmUoaS50b2tlbnMsZSkpO2JyZWFrO2Nhc2UiZW0iOmMrPWUuZW0odGhpcy5wYXJzZUlubGluZShpLnRva2VucyxlKSk7YnJlYWs7Y2FzZSJjb2Rlc3BhbiI6Yys9ZS5jb2Rlc3BhbihpLnRleHQpO2JyZWFr'@; put 'O2Nhc2UiYnIiOmMrPWUuYnIoKTticmVhaztjYXNlImRlbCI6Yys9ZS5kZWwodGhpcy5wYXJzZUlubGluZShpLnRva2VucyxlKSk7YnJlYWs7ZGVmYXVsdDp2YXIgQz0nVG9rZW4gd2l0aCAiJytpLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudCly'@; put 'ZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKEMpO3Rocm93IG5ldyBFcnJvcihDKX1yZXR1cm4gY30sbn0oKSxYPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0aGlzLm9wdGlvbnM9dHx8Yi5kZWZhdWx0c312YXIgcz1uLnByb3RvdHlwZTtyZXR1cm4gcy5wcmVwcm9jZXNzPWZ1bmN0aW9uKHQp'@; put 'e3JldHVybiB0fSxzLnBvc3Rwcm9jZXNzPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxufSgpLGExPShYLnBhc3NUaHJvdWdoSG9va3M9bmV3IFNldChbInByZXByb2Nlc3MiLCJwb3N0cHJvY2VzcyJdKSxwKCJwYXJzZU1hcmtkb3duIikpLGgxPXAoIm9uRXJyb3IiKTtmdW5jdGlvbiBnMShuLHMp'@; put 'e3ZhciB0PXRoaXM7cmV0dXJuIGZ1bmN0aW9uKGUsaSxyKXsiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHI9aSxpPW51bGwpO3ZhciBjLGg9eih7fSxpKSxWPShpPXooe30sdC5kZWZhdWx0cyxoKSxhKHQsaDEpW2gxXShpLnNpbGVudCxpLmFzeW5jLHIpKTtpZihudWxsPT1lKXJldHVybiBWKG5l'@; put 'dyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpKTtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIFYobmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n'@; put 'LmNhbGwoZSkrIiwgc3RyaW5nIGV4cGVjdGVkIikpO2lmKGg9ciwoYz1pKSYmIWMuc2lsZW50JiYoaCYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogY2FsbGJhY2sgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3Zl'@; put 'ZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnL3VzaW5nX3BybyNhc3luYyIpLChjLnNhbml0aXplfHxjLnNhbml0aXplcikmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXplIGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVw'@; put 'cmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURWQU5DRUQubWQjb3B0aW9ucyIpLCFjLmhpZ2hsaWdodCYm'@; put 'Imxhbmd1YWdlLSI9PT1jLmxhbmdQcmVmaXh8fGNvbnNvbGUud2FybigibWFya2VkKCk6IGhpZ2hsaWdodCBhbmQgbGFuZ1ByZWZpeCBwYXJhbWV0ZXJzIGFyZSBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGlu'@; put 'IHRoZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1oaWdobGlnaHQuIiksYy5tYW5nbGUmJmNvbnNvbGUud2FybigibWFya2VkKCk6IG1hbmdsZSBwYXJhbWV0ZXIgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgaXMgZGVwcmVjYXRl'@; put 'ZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIFRvIGNsZWFyIHRoaXMgd2FybmluZywgaW5zdGFsbCBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQtbWFuZ2xlLCBvciBkaXNhYmxlIGJ5IHNldHRpbmcgYHttYW5nbGU6'@; put 'IGZhbHNlfWAuIiksYy5iYXNlVXJsJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBiYXNlVXJsIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIEluc3RlYWQgdXNl'@; put 'IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1iYXNlLXVybC4iKSxjLnNtYXJ0eXBhbnRzJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBzbWFydHlwYW50cyBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBzaG91bGQgbm90IGJlIHVzZWQg'@; put 'YW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBJbnN0ZWFkIHVzZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQtc21hcnR5cGFudHMuIiksYy54aHRtbCYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogeGh0bWwgcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQgc2lu'@; put 'Y2UgdmVyc2lvbiA1LjAuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gSW5zdGVhZCB1c2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2VkLXhodG1sLiIpLGMuaGVhZGVySWRzfHxjLmhlYWRlclByZWZpeCkmJmNvbnNv'@; put 'bGUud2FybigibWFya2VkKCk6IGhlYWRlcklkcyBhbmQgaGVhZGVyUHJlZml4IHBhcmFtZXRlcnMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBUbyBjbGVhciB0aGlz'@; put 'IHdhcm5pbmcsIGluc3RhbGwgIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1nZm0taGVhZGluZy1pZCwgb3IgZGlzYWJsZSBieSBzZXR0aW5nIGB7aGVhZGVySWRzOiBmYWxzZX1gLiIpLGkuaG9va3MmJihpLmhvb2tzLm9wdGlvbnM9aSkscil7dmFyIEMsdT1pLmhpZ2hs'@; put 'aWdodDt0cnl7aS5ob29rcyYmKGU9aS5ob29rcy5wcmVwcm9jZXNzKGUpKSxDPW4oZSxpKX1jYXRjaChaKXtyZXR1cm4gVihaKX12YXIgZCxMPWZ1bmN0aW9uKFope3ZhciBvO2lmKCFaKXRyeXtpLndhbGtUb2tlbnMmJnQud2Fsa1Rva2VucyhDLGkud2Fsa1Rva2Vucyksbz1zKEMsaSksaS5o'@; put 'b29rcyYmKG89aS5ob29rcy5wb3N0cHJvY2VzcyhvKSl9Y2F0Y2goZil7Wj1mfXJldHVybiBpLmhpZ2hsaWdodD11LFo/VihaKTpyKG51bGwsbyl9O3JldHVybiF1fHx1Lmxlbmd0aDwzP0woKTooZGVsZXRlIGkuaGlnaGxpZ2h0LEMubGVuZ3RoPyhkPTAsdC53YWxrVG9rZW5zKEMsZnVuY3Rp'@; put 'b24oWil7ImNvZGUiPT09Wi50eXBlJiYoZCsrLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt1KFoudGV4dCxaLmxhbmcsZnVuY3Rpb24obyxmKXtpZihvKXJldHVybiBMKG8pO251bGwhPWYmJmYhPT1aLnRleHQmJihaLnRleHQ9ZixaLmVzY2FwZWQ9ITApLDA9PS0tZCYmTCgpfSl9LDApKX0pLHZv'@; put 'aWQoMD09PWQmJkwoKSkpOkwoKSl9aWYoaS5hc3luYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkuaG9va3M/aS5ob29rcy5wcmVwcm9jZXNzKGUpOmUpLnRoZW4oZnVuY3Rpb24oWil7cmV0dXJuIG4oWixpKX0pLnRoZW4oZnVuY3Rpb24oWil7cmV0dXJuIGkud2Fsa1Rva2Vucz9Qcm9taXNl'@; put 'LmFsbCh0LndhbGtUb2tlbnMoWixpLndhbGtUb2tlbnMpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFp9KTpafSkudGhlbihmdW5jdGlvbihaKXtyZXR1cm4gcyhaLGkpfSkudGhlbihmdW5jdGlvbihaKXtyZXR1cm4gaS5ob29rcz9pLmhvb2tzLnBvc3Rwcm9jZXNzKFopOlp9KS5jYXRjaChW'@; put 'KTt0cnl7aS5ob29rcyYmKGU9aS5ob29rcy5wcmVwcm9jZXNzKGUpKTt2YXIgeT1uKGUsaSksST0oaS53YWxrVG9rZW5zJiZ0LndhbGtUb2tlbnMoeSxpLndhbGtUb2tlbnMpLHMoeSxpKSk7cmV0dXJuIGkuaG9va3M/aS5ob29rcy5wb3N0cHJvY2VzcyhJKTpJfWNhdGNoKFope3JldHVybiBW'@; put 'KFopfX19ZnVuY3Rpb24gTDEobixzLHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgaTtpZihlLm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRwczovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkLiIsbilyZXR1cm4gaT0iPHA+QW4gZXJyb3Igb2NjdXJyZWQ6PC9wPjxw'@; put 'cmU+IitUKGUubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiIscz9Qcm9taXNlLnJlc29sdmUoaSk6dD92b2lkIHQobnVsbCxpKTppO2lmKHMpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO2lmKCF0KXRocm93IGU7dChlKX19Sz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4oKXtPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkodGhpcyxoMSx7dmFsdWU6TDF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxhMSx7dmFsdWU6ZzF9KSx0aGlzLmRlZmF1bHRzPXthc3luYzohMSxiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDoi'@; put 'IixoaWdobGlnaHQ6bnVsbCxob29rczpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50OiExLHNtYXJ0eXBhbnRzOiExLHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6'@; put 'bnVsbCx4aHRtbDohMX0sdGhpcy5vcHRpb25zPXRoaXMuc2V0T3B0aW9ucyx0aGlzLnBhcnNlPWEodGhpcyxhMSlbYTFdKE4ubGV4LHEucGFyc2UpLHRoaXMucGFyc2VJbmxpbmU9YSh0aGlzLGExKVthMV0oTi5sZXhJbmxpbmUscS5wYXJzZUlubGluZSksdGhpcy5QYXJzZXI9cSx0aGlzLnBh'@; put 'cnNlcj1xLnBhcnNlLHRoaXMuUmVuZGVyZXI9bDEsdGhpcy5UZXh0UmVuZGVyZXI9cjEsdGhpcy5MZXhlcj1OLHRoaXMubGV4ZXI9Ti5sZXgsdGhpcy5Ub2tlbml6ZXI9Six0aGlzLlNsdWdnZXI9czEsdGhpcy5Ib29rcz1YLHRoaXMudXNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgcz1u'@; put 'LnByb3RvdHlwZTtyZXR1cm4gcy53YWxrVG9rZW5zPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpLHI9dGhpcyxjPVtdLGg9bCh0KTshKGk9aCgpKS5kb25lOykhZnVuY3Rpb24oKXt2YXIgVj1pLnZhbHVlO3N3aXRjaChjPWMuY29uY2F0KGUuY2FsbChyLFYpKSxWLnR5cGUpe2Nhc2UidGFibGUi'@; put 'OmZvcih2YXIgQz1sKFYuaGVhZGVyKTshKHU9QygpKS5kb25lOyl7dmFyIHU9dS52YWx1ZTtjPWMuY29uY2F0KHIud2Fsa1Rva2Vucyh1LnRva2VucyxlKSl9Zm9yKHZhciBkLEw9bChWLnJvd3MpOyEoZD1MKCkpLmRvbmU7KWZvcih2YXIgeT1sKGQudmFsdWUpOyEoST15KCkpLmRvbmU7KXt2'@; put 'YXIgST1JLnZhbHVlO2M9Yy5jb25jYXQoci53YWxrVG9rZW5zKEkudG9rZW5zLGUpKX1icmVhaztjYXNlImxpc3QiOmM9Yy5jb25jYXQoci53YWxrVG9rZW5zKFYuaXRlbXMsZSkpO2JyZWFrO2RlZmF1bHQ6ci5kZWZhdWx0cy5leHRlbnNpb25zJiZyLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hp'@; put 'bGRUb2tlbnMmJnIuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1tWLnR5cGVdP3IuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1tWLnR5cGVdLmZvckVhY2goZnVuY3Rpb24oWil7Yz1jLmNvbmNhdChyLndhbGtUb2tlbnMoVltaXSxlKSl9KTpWLnRva2VucyYmKGM9Yy5j'@; put 'b25jYXQoci53YWxrVG9rZW5zKFYudG9rZW5zLGUpKSl9fSgpO3JldHVybiBjfSxzLnVzZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLGU9dGhpcy5kZWZhdWx0cy5leHRlbnNpb25zfHx7cmVuZGVyZXJzOnt9LGNoaWxkVG9rZW5zOnt9fSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJy'@; put 'YXkoaSksYz0wO2M8aTtjKyspcltjXT1hcmd1bWVudHNbY107cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgVixDPXooe30saCk7aWYoQy5hc3luYz10LmRlZmF1bHRzLmFzeW5jfHxDLmFzeW5jfHwhMSxoLmV4dGVuc2lvbnMmJihoLmV4dGVuc2lvbnMuZm9yRWFjaChmdW5jdGlv'@; put 'bihvKXtpZighby5uYW1lKXRocm93IG5ldyBFcnJvcigiZXh0ZW5zaW9uIG5hbWUgcmVxdWlyZWQiKTt2YXIgZjtpZihvLnJlbmRlcmVyJiYoZS5yZW5kZXJlcnNbby5uYW1lXT0oZj1lLnJlbmRlcmVyc1tvLm5hbWVdKT9mdW5jdGlvbigpe2Zvcih2YXIgRT1hcmd1bWVudHMubGVuZ3RoLEI9'@; put 'bmV3IEFycmF5KEUpLG09MDttPEU7bSsrKUJbbV09YXJndW1lbnRzW21dO3ZhciBfPW8ucmVuZGVyZXIuYXBwbHkodGhpcyxCKTtyZXR1cm4hMT09PV8/Zi5hcHBseSh0aGlzLEIpOl99Om8ucmVuZGVyZXIpLG8udG9rZW5pemVyKXtpZighby5sZXZlbHx8ImJsb2NrIiE9PW8ubGV2ZWwmJiJp'@; put 'bmxpbmUiIT09by5sZXZlbCl0aHJvdyBuZXcgRXJyb3IoImV4dGVuc2lvbiBsZXZlbCBtdXN0IGJlICdibG9jaycgb3IgJ2lubGluZSciKTtlW28ubGV2ZWxdP2Vbby5sZXZlbF0udW5zaGlmdChvLnRva2VuaXplcik6ZVtvLmxldmVsXT1bby50b2tlbml6ZXJdLG8uc3RhcnQmJigiYmxvY2si'@; put 'PT09by5sZXZlbD9lLnN0YXJ0QmxvY2s/ZS5zdGFydEJsb2NrLnB1c2goby5zdGFydCk6ZS5zdGFydEJsb2NrPVtvLnN0YXJ0XToiaW5saW5lIj09PW8ubGV2ZWwmJihlLnN0YXJ0SW5saW5lP2Uuc3RhcnRJbmxpbmUucHVzaChvLnN0YXJ0KTplLnN0YXJ0SW5saW5lPVtvLnN0YXJ0XSkpfW8u'@; put 'Y2hpbGRUb2tlbnMmJihlLmNoaWxkVG9rZW5zW28ubmFtZV09by5jaGlsZFRva2Vucyl9KSxDLmV4dGVuc2lvbnM9ZSksaC5yZW5kZXJlcil7dmFyIHUsZD10LmRlZmF1bHRzLnJlbmRlcmVyfHxuZXcgbDEodC5kZWZhdWx0cyk7Zm9yKHUgaW4gaC5yZW5kZXJlcikhZnVuY3Rpb24obyl7dmFy'@; put 'IGY9ZFtvXTtkW29dPWZ1bmN0aW9uKCl7Zm9yKHZhciBFPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoRSksbT0wO208RTttKyspQlttXT1hcmd1bWVudHNbbV07dmFyIF89aC5yZW5kZXJlcltvXS5hcHBseShkLEIpO3JldHVybiExPT09Xz9mLmFwcGx5KGQsQik6X319KHUpO0MucmVu'@; put 'ZGVyZXI9ZH1pZihoLnRva2VuaXplcil7dmFyIEwseT10LmRlZmF1bHRzLnRva2VuaXplcnx8bmV3IEoodC5kZWZhdWx0cyk7Zm9yKEwgaW4gaC50b2tlbml6ZXIpIWZ1bmN0aW9uKG8pe3ZhciBmPXlbb107eVtvXT1mdW5jdGlvbigpe2Zvcih2YXIgRT1hcmd1bWVudHMubGVuZ3RoLEI9bmV3'@; put 'IEFycmF5KEUpLG09MDttPEU7bSsrKUJbbV09YXJndW1lbnRzW21dO3ZhciBfPWgudG9rZW5pemVyW29dLmFwcGx5KHksQik7cmV0dXJuITE9PT1fP2YuYXBwbHkoeSxCKTpffX0oTCk7Qy50b2tlbml6ZXI9eX1pZihoLmhvb2tzKXt2YXIgSSxaPXQuZGVmYXVsdHMuaG9va3N8fG5ldyBYO2Zv'@; put 'cihJIGluIGguaG9va3MpIWZ1bmN0aW9uKG8pe3ZhciBmPVpbb107WltvXT1YLnBhc3NUaHJvdWdoSG9va3MuaGFzKG8pP2Z1bmN0aW9uKEUpe3JldHVybiB0LmRlZmF1bHRzLmFzeW5jP1Byb21pc2UucmVzb2x2ZShoLmhvb2tzW29dLmNhbGwoWixFKSkudGhlbihmdW5jdGlvbihCKXtyZXR1'@; put 'cm4gZi5jYWxsKFosQil9KTooRT1oLmhvb2tzW29dLmNhbGwoWixFKSxmLmNhbGwoWixFKSl9OmZ1bmN0aW9uKCl7Zm9yKHZhciBFPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoRSksbT0wO208RTttKyspQlttXT1hcmd1bWVudHNbbV07dmFyIF89aC5ob29rc1tvXS5hcHBseShaLEIp'@; put 'O3JldHVybiExPT09Xz9mLmFwcGx5KFosQik6X319KEkpO0MuaG9va3M9Wn1oLndhbGtUb2tlbnMmJihWPXQuZGVmYXVsdHMud2Fsa1Rva2VucyxDLndhbGtUb2tlbnM9ZnVuY3Rpb24obyl7dmFyIGY9W107cmV0dXJuIGYucHVzaChoLndhbGtUb2tlbnMuY2FsbCh0aGlzLG8pKSxWP2YuY29u'@; put 'Y2F0KFYuY2FsbCh0aGlzLG8pKTpmfSksdC5kZWZhdWx0cz16KHt9LHQuZGVmYXVsdHMsQyl9KSx0aGlzfSxzLnNldE9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGVmYXVsdHM9eih7fSx0aGlzLmRlZmF1bHRzLHQpLHRoaXN9LG59KCk7dmFyIFc9bmV3IEsoYi5kZWZhdWx0cyk7'@; put 'ZnVuY3Rpb24gRihuLHMsdCl7cmV0dXJuIFcucGFyc2UobixzLHQpfUYub3B0aW9ucz1GLnNldE9wdGlvbnM9ZnVuY3Rpb24obil7cmV0dXJuIFcuc2V0T3B0aW9ucyhuKSxrKEYuZGVmYXVsdHM9Vy5kZWZhdWx0cyksRn0sRi5nZXREZWZhdWx0cz12LEYuZGVmYXVsdHM9Yi5kZWZhdWx0cyxG'@; put 'LnVzZT1mdW5jdGlvbigpe3JldHVybiBXLnVzZS5hcHBseShXLGFyZ3VtZW50cyksayhGLmRlZmF1bHRzPVcuZGVmYXVsdHMpLEZ9LEYud2Fsa1Rva2Vucz1mdW5jdGlvbihuLHMpe3JldHVybiBXLndhbGtUb2tlbnMobixzKX0sRi5wYXJzZUlubGluZT1XLnBhcnNlSW5saW5lLEYuUGFyc2Vy'@; put 'PXEsRi5wYXJzZXI9cS5wYXJzZSxGLlJlbmRlcmVyPWwxLEYuVGV4dFJlbmRlcmVyPXIxLEYuTGV4ZXI9TixGLmxleGVyPU4ubGV4LEYuVG9rZW5pemVyPUosRi5TbHVnZ2VyPXMxLEYuSG9va3M9WDt2YXIgYjE9KEYucGFyc2U9Rikub3B0aW9ucyxTMT1GLnNldE9wdGlvbnMsdjE9Ri51c2Us'@; put 'eTE9Ri53YWxrVG9rZW5zLG0xPUYucGFyc2VJbmxpbmUseDE9RixEMT1xLnBhcnNlLGYxPU4ubGV4O2IuSG9va3M9WCxiLkxleGVyPU4sYi5NYXJrZWQ9SyxiLlBhcnNlcj1xLGIuUmVuZGVyZXI9bDEsYi5TbHVnZ2VyPXMxLGIuVGV4dFJlbmRlcmVyPXIxLGIuVG9rZW5pemVyPUosYi5nZXRE'@; put 'ZWZhdWx0cz12LGIubGV4ZXI9ZjEsYi5tYXJrZWQ9RixiLm9wdGlvbnM9YjEsYi5wYXJzZT14MSxiLnBhcnNlSW5saW5lPW0xLGIucGFyc2VyPUQxLGIuc2V0T3B0aW9ucz1TMSxiLnVzZT12MSxiLndhbGtUb2tlbnM9eTF9KTs='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=styles.59dc11947b83143c.css; filename filecode temp lrecl=828788; data _null_; file filecode; put 'LyohCiAqIENvcHlyaWdodCAoYykgSEFORFNPTkNPREUgc3AuIHogby4gby4KICoKICogSEFORFNPTlRBQkxFIGlzIGEgc29mdHdhcmUgZGlzdHJpYnV0ZWQgYnkgSEFORFNPTkNPREUgc3AuIHogby4gby4sIGEgUG9saXNoIGNvcnBvcmF0aW9uIGJhc2VkIGluCiAqIEdkeW5pYSwgUG9sYW5k'@; put 'LCBhdCBBbGVqYSBad3ljaWVzdHdhIDk2LTk4LCByZWdpc3RlcmVkIGJ5IHRoZSBEaXN0cmljdCBDb3VydCBpbiBHZGFuc2sgdW5kZXIgbnVtYmVyCiAqIDUzODY1MSwgRVUgdGF4IElEIG51bWJlcjogUEw1ODYyMjk0MDAyLCBzaGFyZSBjYXBpdGFsOiBQTE4gNjIsODAwLjAwLgogKgogKiBU'@; put 'aGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXdzLCBpbmNsdWRpbmcgaW50ZXJuYXRpb25hbCB0cmVhdGllcywgYW5kIGR1YWwtCiAqIGxpY2Vuc2VkIC0gZGVwZW5kaW5nIG9uIHdoZXRoZXIgeW91ciB1c2UgZm9yIGNvbW1lcmNpYWwgcHVycG9z'@; put 'ZXMsIG1lYW5pbmcgaW50ZW5kZWQgZm9yIG9yCiAqIHJlc3VsdGluZyBpbiBjb21tZXJjaWFsIGFkdmFudGFnZSBvciBtb25ldGFyeSBjb21wZW5zYXRpb24sIG9yIG5vdC4KICoKICogSWYgeW91ciB1c2UgaXMgc3RyaWN0bHkgcGVyc29uYWwgb3Igc29sZWx5IGZvciBldmFsdWF0aW9uIHB1'@; put 'cnBvc2VzLCBtZWFuaW5nIGZvciB0aGUgcHVycG9zZXMgb2YgdGVzdGluZwogKiB0aGUgc3VpdGFiaWxpdHksIHBlcmZvcm1hbmNlLCBhbmQgdXNlZnVsbmVzcyBvZiB0aGlzIHNvZnR3YXJlIG91dHNpZGUgdGhlIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQsCiAqIHlvdSBhZ3JlZSB0byBiZSBi'@; put 'b3VuZCBieSB0aGUgdGVybXMgaW5jbHVkZWQgaW4gdGhlICJoYW5kc29udGFibGUtbm9uLWNvbW1lcmNpYWwtbGljZW5zZS5wZGYiIGZpbGUuCiAqCiAqIFlvdXIgdXNlIG9mIHRoaXMgc29mdHdhcmUgZm9yIGNvbW1lcmNpYWwgcHVycG9zZXMgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgaW5j'@; put 'bHVkZWQgaW4gYW4gYXBwbGljYWJsZQogKiBsaWNlbnNlIGFncmVlbWVudC4KICoKICogSW4gYW55IGNhc2UsIHlvdSBtdXN0IG5vdCBtYWtlIGFueSBzdWNoIHVzZSBvZiB0aGlzIHNvZnR3YXJlIGFzIHRvIGRldmVsb3Agc29mdHdhcmUgd2hpY2ggbWF5IGJlCiAqIGNvbnNpZGVyZWQgY29t'@; put 'cGV0aXRpdmUgd2l0aCB0aGlzIHNvZnR3YXJlLgogKgogKiBVTkxFU1MgRVhQUkVTU0xZIEFHUkVFRCBPVEhFUldJU0UsIEhBTkRTT05DT0RFIFBST1ZJREVTIFRISVMgU09GVFdBUkUgT04gQU4gIkFTIElTIgogKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0Yg'@; put 'QU5ZIEtJTkQsIEFORCBJTiBOTyBFVkVOVCBBTkQgVU5ERVIgTk8KICogTEVHQUwgVEhFT1JZLCBTSEFMTCBIQU5EU09OQ09ERSBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIERJUkVDVCwKICogSU5ESVJFQ1QsIFNQRUNJQUwsIElOQ0lERU5UQUwsIE9SIENP'@; put 'TlNFUVVFTlRJQUwgREFNQUdFUyBPRiBBTlkgQ0hBUkFDVEVSIEFSSVNJTkcgRlJPTQogKiBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSElTIFNPRlRXQVJFLgogKgogKiBWZXJzaW9uOiAxMy4xLjAKICogUmVsZWFzZSBkYXRlOiAzMS8wOC8yMDIzIChidWlsdCBhdCAzMS8wOC8yMDIzIDA4'@; put 'OjIzOjM5KQogKi8uaGFuZHNvbnRhYmxlIC50YWJsZSB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSB0ZHtib3JkZXItdG9wOm5vbmV9LmhhbmRzb250YWJsZSB0cntiYWNrZ3JvdW5kOiNmZmZ9LmhhbmRzb250YWJsZSB0ZHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9LmhhbmRzb250YWJsZSAu'@; put 'dGFibGUgY2FwdGlvbit0aGVhZCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSBjYXB0aW9uK3RoZWFkIHRyOmZpcnN0LWNoaWxkIHRkLC5oYW5kc29udGFibGUgLnRhYmxlIGNvbGdyb3VwK3RoZWFkIHRyOmZpcnN0LWNoaWxkIHRoLC5oYW5kc29udGFibGUgLnRhYmxl'@; put 'IGNvbGdyb3VwK3RoZWFkIHRyOmZpcnN0LWNoaWxkIHRkLC5oYW5kc29udGFibGUgLnRhYmxlIHRoZWFkOmZpcnN0LWNoaWxkIHRyOmZpcnN0LWNoaWxkIHRoLC5oYW5kc29udGFibGUgLnRhYmxlIHRoZWFkOmZpcnN0LWNoaWxkIHRyOmZpcnN0LWNoaWxkIHRke2JvcmRlci10b3A6MXB4IHNv'@; put 'bGlkICNDQ0NDQ0N9LmhhbmRzb250YWJsZSAudGFibGUtYm9yZGVyZWR7Ym9yZGVyOjA7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRoLC5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRke2JvcmRlci1sZWZ0Om5vbmV9LmhhbmRz'@; put 'b250YWJsZSAudGFibGUtYm9yZGVyZWQgdGg6Zmlyc3QtY2hpbGQsLmhhbmRzb250YWJsZSAudGFibGUtYm9yZGVyZWQgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDQ0NDQ0N9LmhhbmRzb250YWJsZSAudGFibGU+dGJvZHk+dHI+dGQsLmhhbmRzb250YWJsZSAudGFi'@; put 'bGU+dGJvZHk+dHI+dGgsLmhhbmRzb250YWJsZSAudGFibGU+dGZvb3Q+dHI+dGQsLmhhbmRzb250YWJsZSAudGFibGU+dGZvb3Q+dHI+dGgsLmhhbmRzb250YWJsZSAudGFibGU+dGhlYWQ+dHI+dGQsLmhhbmRzb250YWJsZSAudGFibGU+dGhlYWQ+dHI+dGh7bGluZS1oZWlnaHQ6MjFweDtw'@; put 'YWRkaW5nOjB9LmNvbC1sZy0xLmhhbmRzb250YWJsZSwuY29sLWxnLTEwLmhhbmRzb250YWJsZSwuY29sLWxnLTExLmhhbmRzb250YWJsZSwuY29sLWxnLTEyLmhhbmRzb250YWJsZSwuY29sLWxnLTIuaGFuZHNvbnRhYmxlLC5jb2wtbGctMy5oYW5kc29udGFibGUsLmNvbC1sZy00LmhhbmRz'@; put 'b250YWJsZSwuY29sLWxnLTUuaGFuZHNvbnRhYmxlLC5jb2wtbGctNi5oYW5kc29udGFibGUsLmNvbC1sZy03LmhhbmRzb250YWJsZSwuY29sLWxnLTguaGFuZHNvbnRhYmxlLC5jb2wtbGctOS5oYW5kc29udGFibGUsLmNvbC1tZC0xLmhhbmRzb250YWJsZSwuY29sLW1kLTEwLmhhbmRzb250'@; put 'YWJsZSwuY29sLW1kLTExLmhhbmRzb250YWJsZSwuY29sLW1kLTEyLmhhbmRzb250YWJsZSwuY29sLW1kLTIuaGFuZHNvbnRhYmxlLC5jb2wtbWQtMy5oYW5kc29udGFibGUsLmNvbC1tZC00LmhhbmRzb250YWJsZSwuY29sLW1kLTUuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNi5oYW5kc29udGFi'@; put 'bGUsLmNvbC1tZC03LmhhbmRzb250YWJsZSwuY29sLW1kLTguaGFuZHNvbnRhYmxlLC5jb2wtbWQtOS5oYW5kc29udGFibGUgLmNvbC1zbS0xLmhhbmRzb250YWJsZSwuY29sLXNtLTEwLmhhbmRzb250YWJsZSwuY29sLXNtLTExLmhhbmRzb250YWJsZSwuY29sLXNtLTEyLmhhbmRzb250YWJs'@; put 'ZSwuY29sLXNtLTIuaGFuZHNvbnRhYmxlLC5jb2wtc20tMy5oYW5kc29udGFibGUsLmNvbC1zbS00LmhhbmRzb250YWJsZSwuY29sLXNtLTUuaGFuZHNvbnRhYmxlLC5jb2wtc20tNi5oYW5kc29udGFibGUsLmNvbC1zbS03LmhhbmRzb250YWJsZSwuY29sLXNtLTguaGFuZHNvbnRhYmxlLC5j'@; put 'b2wtc20tOS5oYW5kc29udGFibGUgLmNvbC14cy0xLmhhbmRzb250YWJsZSwuY29sLXhzLTEwLmhhbmRzb250YWJsZSwuY29sLXhzLTExLmhhbmRzb250YWJsZSwuY29sLXhzLTEyLmhhbmRzb250YWJsZSwuY29sLXhzLTIuaGFuZHNvbnRhYmxlLC5jb2wteHMtMy5oYW5kc29udGFibGUsLmNv'@; put 'bC14cy00LmhhbmRzb250YWJsZSwuY29sLXhzLTUuaGFuZHNvbnRhYmxlLC5jb2wteHMtNi5oYW5kc29udGFibGUsLmNvbC14cy03LmhhbmRzb250YWJsZSwuY29sLXhzLTguaGFuZHNvbnRhYmxlLC5jb2wteHMtOS5oYW5kc29udGFibGV7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDow'@; put 'fS5oYW5kc29udGFibGUgLnRhYmxlLXN0cmlwZWQ+dGJvZHk+dHI6bnRoLW9mLXR5cGUoMm4pe2JhY2tncm91bmQtY29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxle3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLmhpZGV7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLnJlbGF0aXZl'@; put 'e3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLnd0SGlkZXJ7d2lkdGg6MH0uaGFuZHNvbnRhYmxlIC53dFNwcmVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjA7aGVpZ2h0OmF1dG99LmhhbmRzb250YWJsZSB0YWJsZSwuaGFuZHNvbnRhYmxlIHRib2R5LC5oYW5kc29udGFi'@; put 'bGUgdGhlYWQsLmhhbmRzb250YWJsZSB0ZCwuaGFuZHNvbnRhYmxlIHRoLC5oYW5kc29udGFibGUgaW5wdXQsLmhhbmRzb250YWJsZSB0ZXh0YXJlYSwuaGFuZHNvbnRhYmxlIGRpdntib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJv'@; put 'eC1zaXppbmc6Y29udGVudC1ib3h9LmhhbmRzb250YWJsZSBpbnB1dCwuaGFuZHNvbnRhYmxlIHRleHRhcmVhe21pbi1oZWlnaHQ6aW5pdGlhbH0uaGFuZHNvbnRhYmxlIHRhYmxlLmh0Q29yZXtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDttYXJnaW46MDtib3Jk'@; put 'ZXItd2lkdGg6MDt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MDtvdXRsaW5lLXdpZHRoOjA7Y3Vyc29yOmRlZmF1bHQ7bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDpub25lfS5oYW5kc29udGFibGUgY29sLC5oYW5kc29udGFibGUgY29sLnJvd0hlYWRlcnt3aWR0aDo1MHB4fS5oYW5kc29u'@; put 'dGFibGUgdGgsLmhhbmRzb250YWJsZSB0ZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYztoZWlnaHQ6MjJweDtlbXB0eS1jZWxsczpzaG93O2xpbmUtaGVpZ2h0OjIx'@; put 'cHg7cGFkZGluZzowIDRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lLXdpZHRoOjA7d2hpdGUtc3BhY2U6cHJlLXdyYXB9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aCxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRke2Jv'@; put 'cmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5oYW5kc29u'@; put 'dGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY30uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLC5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIpLC5oYW5kc29udGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZXtib3JkZXItbGVm'@; put 'dDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIpLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2N9Lmhh'@; put 'bmRzb250YWJsZSAuaHRfY2xvbmVfdG9wIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odF9jbG9uZV90b3AgdGg6bnRoLWNoaWxkKDIpe2JvcmRlci1yaWdodC13aWR0aDowO2Jv'@; put 'cmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUuaHRSb3dIZWFkZXJzIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlLmh0Um93SGVhZGVycyB0aGVhZCB0ciB0aDpudGgtY2hpbGQoMil7'@; put 'Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjfS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVt'@; put 'cHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9keSB0ciB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yaWdo'@; put 'dC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9keSB0ciB0aCxbZGlyPXJ0bF0uaHRfbWFzdGVyOm5vdCguaW5uZXJCb3Jk'@; put 'ZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0LXdpZHRoOjA7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjfS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRl'@; put 'clRvcCk6bm90KC5pbm5lckJvcmRlckJvdHRvbSkgdGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29udGFibGUgdGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5u'@; put 'ZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pIHRoZWFkIHRyLmxhc3RDaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29udGFibGUgdGhlYWQgdHIubGFzdENoaWxkIHRoe2JvcmRlci1ib3R0b20t'@; put 'd2lkdGg6MH0uaGFuZHNvbnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtjb2xvcjojMjIyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmhhbmRzb250YWJsZSB0aGVhZCB0aHtwYWRkaW5nOjB9LmhhbmRzb250YWJsZSB0aC5h'@; put 'Y3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2NjfS5oYW5kc29udGFibGUgdGhlYWQgdGggLnJlbGF0aXZle3BhZGRpbmc6MnB4IDRweH0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjEuMX0uaGFuZHNvbnRhYmxlIC53dEJvcmRl'@; put 'cntwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5jdXJyZW50e3otaW5kZXg6MTB9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuYXJlYXt6LWluZGV4'@; put 'Ojh9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuZmlsbHt6LWluZGV4OjZ9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuY29ybmVye2ZvbnQtc2l6ZTowO2N1cnNvcjpjcm9zc2hhaXJ9Lmh0X2Nsb25lX21hc3Rlcnt6LWluZGV4OjEwMH0uaHRfY2xvbmVfaW5saW5lX3N0YXJ0e3otaW5kZXg6MTIw'@; put 'fS5odF9jbG9uZV9ib3R0b217ei1pbmRleDoxMzB9Lmh0X2Nsb25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTUwfS5odF9jbG9uZV90b3B7ei1pbmRleDoxNjB9Lmh0X2Nsb25lX3RvcF9pbmxpbmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTgwfS5oYW5kc29udGFibGUg'@; put 'Y29sLmhpZGRlbnt3aWR0aDowIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0ZCwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0aHtkaXNwbGF5Om5vbmV9Lmh0X21hc3RlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odF9jbG9uZV90'@; put 'b3AsLmh0X2Nsb25lX2JvdHRvbXtvdmVyZmxvdzpoaWRkZW59Lmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3c6YXV0b30uaGFuZHNvbnRhYmxlIC5odF9tYXN0ZXIgdGhlYWQsLmhhbmRzb250YWJsZSAuaHRfbWFzdGVyIHRyIHRoLC5oYW5kc29udGFibGUgLmh0X2Nsb25lX2lubGluZV9z'@; put 'dGFydCB0aGVhZHt2aXNpYmlsaXR5OmhpZGRlbn0uaHRfY2xvbmVfdG9wIC53dEhvbGRlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0IC53dEhvbGRlciwuaHRfY2xvbmVfYm90dG9tIC53dEhvbGRlcntvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZXt0b3VjaC1hY3Rpb246bWFuaXB1bGF0'@; put 'aW9uO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxPeHlnZW4sVWJ1bnR1LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMzNzM3Mzd9LmhhbmRzb250'@; put 'YWJsZSBhe2NvbG9yOiMxMDRhY2N9LmhhbmRzb250YWJsZS5odEF1dG9TaXple3Zpc2liaWxpdHk6aGlkZGVuO2xlZnQ6LTk5MDAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTAwMHB4fS5oYW5kc29udGFibGUgdGQuaHRJbnZhbGlke2JhY2tncm91bmQtY29sb3I6I2ZmNGM0MiFpbXBv'@; put 'cnRhbnR9LmhhbmRzb250YWJsZSB0ZC5odE5vV3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9LmhvdC1kaXNwbGF5LWxpY2Vuc2UtaW5mb3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxSb2JvdG8sT3h5Z2VuLFVidW50dSxIZWx2ZXRpY2EgTmV1'@; put 'ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojMzczNzM3O3BhZGRpbmc6NXB4IDAgM3B4O3RleHQtYWxpZ246bGVmdH0uaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIGF7Y29sb3I6IzEwNGFjYztmb250LXNpemU6MTBweH0uaGFuZHNvbnRh'@; put 'YmxlIC5tYW51YWxDb2x1bW5SZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2N1cnNvcjpjb2wtcmVzaXplO3otaW5kZXg6MjEwO3dpZHRoOjVweDtoZWlnaHQ6MjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxSb3dSZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtjdXJzb3I6'@; put 'cm93LXJlc2l6ZTt6LWluZGV4OjIxMDtoZWlnaHQ6NXB4O3dpZHRoOjUwcHh9LmhhbmRzb250YWJsZSAubWFudWFsQ29sdW1uUmVzaXplcjpob3ZlciwuaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyLmFjdGl2ZSwuaGFuZHNvbnRhYmxlIC5tYW51YWxSb3dSZXNpemVyOmhvdmVy'@; put 'LC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXIuYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzM0YTlkYn0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6dW5zZXQ7dG9wOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRi'@; put 'O2Rpc3BsYXk6bm9uZTt3aWR0aDowO2JvcmRlci1yaWdodDoxcHggZGFzaGVkICM3Nzc7Ym9yZGVyLWxlZnQ6bm9uZTttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXJpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLm1hbnVhbENvbHVtblJlc2l6ZXJHdWlkZXtsZWZ0OnVuc2V0O2Jv'@; put 'cmRlci1sZWZ0OjFweCBkYXNoZWQgIzc3Nztib3JkZXItcmlnaHQ6bm9uZTttYXJnaW4tcmlnaHQ6NXB4O21hcmdpbi1sZWZ0OnVuc2V0fS5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xv'@; put 'cjojMzRhOWRiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgIzc3NzttYXJnaW4tdG9wOjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGUuYWN0aXZlLC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZS5hY3Rp'@; put 'dmV7ZGlzcGxheTpibG9jazt6LWluZGV4OjIwOX0uaGFuZHNvbnRhYmxlIC5jb2x1bW5Tb3J0aW5ne3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLmNvbHVtblNvcnRpbmcuc29ydEFjdGlvbjpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5o'@; put 'YW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzpiZWZvcmV7dG9wOjUwJTttYXJnaW4tdG9wOi02cHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTlweDtsZWZ0OnVuc2V0O2NvbnRlbnQ6IiI7aGVpZ2h0OjEw'@; put 'cHg7d2lkdGg6NXB4O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6cmlnaHR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOmJlZm9yZXtwYWRkaW5nLXJpZ2h0'@; put 'OjhweDtwYWRkaW5nLWxlZnQ6MDtsZWZ0Oi05cHg7cmlnaHQ6dW5zZXQ7YmFja2dyb3VuZC1wb3NpdGlvbi14OmxlZnR9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLmFzY2VuZGluZzpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7'@; put 'YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFvQ0FNQUFBREo3eXJwQUFBQUtsQk1WRVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtFODZJQUFBQURYUlNUbE1BQkJFbVJHcHJsSlc3MmU3N3RUa1RLd0FBQUZOSlJF'@; put 'RlVlQUh0emprU2dDQVVCTkhQZ3NveTk3K3VsR1hScUpFNUwreGt4b1l0MlVkc0xiNWJxRklOeithTHV1TG41ckl1MlJrTzNmWnBXRU5pbU5naXc2aUJZUlRQTUxKakdGeFFaMWh4eGIveEJJMXFDOGszOUNkS0FBQUFBRWxGVGtTdVFtQ0MpfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIu'@; put 'Y29sdW1uU29ydGluZy5kZXNjZW5kaW5nOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQW9DQU1BQUFESjd5cnBBQUFBS2xCTVZFVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB'@; put 'QUFBQUFBQUFBQUFBQUFBQUFBQUFBS0U4NklBQUFBRFhSU1RsTUFCQkVtUkdwcmxKVzcyZTc3dFRrVEt3QUFBRkpKUkVGVWVBSHR6amtTZ0NBUVJORm1RWVVaN245ZEtVdnJ1MFRtdlBBbjNicjBRZmdkWjV4eDZ4K3JRbjIzR3FUWW5xMUZEY251elpJTzJXbWVkVnFJUlZ4Z0dLRXlqTmdZUmpL'@; put 'R2taMWhGSVozSTcwTHlNMFZ0VThBQUFBQVNVVk9SSzVDWUlJPSl9Lmh0R2hvc3RUYWJsZSAuaHRDb3JlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6bm90KC5pbmRpY2F0b3JEaXNhYmxlZCk6YWZ0ZXJ7Y29udGVudDoiKiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVs'@; put 'YXRpdmU7cGFkZGluZy1yaWdodDoyMHB4fS5oYW5kc29udGFibGUgdGQuYXJlYSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMywuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNCwuaGFuZHNvbnRhYmxlIHRkLmFyZWEt'@; put 'NSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtN3twb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS0xOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMjpiZWZvcmUsLmhhbmRz'@; put 'b250YWJsZSB0ZC5hcmVhLTM6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS00OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTY6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS03OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0'@; put 'aW9uOmFic29sdXRlO2luc2V0OjA7Ym90dG9tOi0xMDAlIFwJO2JhY2tncm91bmQ6IzAwNWVmZn1AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKXsuaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3JlLC5oYW5kc29u'@; put 'dGFibGUgdGQuYXJlYS0xOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMjpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTM6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS00OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5h'@; put 'cmVhLTY6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS03OmJlZm9yZXtib3R0b206LTEwMCV9fS5oYW5kc29udGFibGUgdGQuYXJlYTpiZWZvcmV7b3BhY2l0eTouMX0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtMTpiZWZvcmV7b3BhY2l0eTouMn0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtMjpi'@; put 'ZWZvcmV7b3BhY2l0eTouMjd9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTM6YmVmb3Jle29wYWNpdHk6LjM1fS5oYW5kc29udGFibGUgdGQuYXJlYS00OmJlZm9yZXtvcGFjaXR5Oi40MX0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNTpiZWZvcmV7b3BhY2l0eTouNDd9LmhhbmRzb250YWJsZSB0ZC5h'@; put 'cmVhLTY6YmVmb3Jle29wYWNpdHk6LjU0fS5oYW5kc29udGFibGUgdGQuYXJlYS03OmJlZm9yZXtvcGFjaXR5Oi41OH0uaGFuZHNvbnRhYmxlIHRib2R5IHRoLmh0X19oaWdobGlnaHQsLmhhbmRzb250YWJsZSB0aGVhZCB0aC5odF9faGlnaGxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2RjZGNk'@; put 'Y30uaGFuZHNvbnRhYmxlIHRib2R5IHRoLmh0X19hY3RpdmVfaGlnaGxpZ2h0LC5oYW5kc29udGFibGUgdGhlYWQgdGguaHRfX2FjdGl2ZV9oaWdobGlnaHR7YmFja2dyb3VuZC1jb2xvcjojOGViMGU3O2NvbG9yOiMwMDB9LmhhbmRzb250YWJsZUlucHV0e2JvcmRlcjpub25lO291dGxpbmUt'@; put 'd2lkdGg6MDttYXJnaW46MDtwYWRkaW5nOjFweCA1cHggMDtmb250LWZhbWlseTppbmhlcml0O2xpbmUtaGVpZ2h0OjIxcHg7Zm9udC1zaXplOmluaGVyaXQ7Ym94LXNoYWRvdzowIDAgMCAycHggIzUyOTJmNyBpbnNldDtyZXNpemU6bm9uZTtkaXNwbGF5OmJsb2NrO2NvbG9yOiMwMDA7Ym9y'@; put 'ZGVyLXJhZGl1czowO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxlSW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lfS5oYW5kc29udGFibGVJbnB1dEhvbGRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9Lmh0U2VsZWN0RWRpdG9yey13ZWJraXQtYXBwZWFyYW5jZTpt'@; put 'ZW51bGlzdC1idXR0b24haW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOmF1dG99Lmh0U2VsZWN0RWRpdG9yOmZvY3Vze291dGxpbmU6bm9uZX0uaGFuZHNvbnRhYmxlIC5odERpbW1lZHtjb2xvcjojNzc3fS5oYW5kc29udGFibGUgLmh0U3VibWVudXtwb3NpdGlvbjpyZWxhdGl2'@; put 'ZX0uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnUgOmFmdGVye2NvbnRlbnQ6IlwyNWI2Ijtjb2xvcjojNzc3O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDtmb250LXNpemU6OXB4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0U3VibWVudSA6YWZ0ZXJ7Y29udGVudDoiIn1bZGlyPXJ0bF0u'@; put 'aGFuZHNvbnRhYmxlIC5odFN1Ym1lbnUgOmJlZm9yZXtjb250ZW50OiJcMjVjMCI7Y29sb3I6Izc3Nztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjVweDtmb250LXNpemU6OXB4fS5oYW5kc29udGFibGUgLmh0TGVmdHt0ZXh0LWFsaWduOmxlZnR9LmhhbmRzb250YWJsZSAuaHRDZW50ZXJ7dGV4'@; put 'dC1hbGlnbjpjZW50ZXJ9LmhhbmRzb250YWJsZSAuaHRSaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5oYW5kc29udGFibGUgLmh0SnVzdGlmeXt0ZXh0LWFsaWduOmp1c3RpZnl9LmhhbmRzb250YWJsZSAuaHRUb3B7dmVydGljYWwtYWxpZ246dG9wfS5oYW5kc29udGFibGUgLmh0TWlkZGxle3Zl'@; put 'cnRpY2FsLWFsaWduOm1pZGRsZX0uaGFuZHNvbnRhYmxlIC5odEJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b219LmhhbmRzb250YWJsZSAuaHRQbGFjZWhvbGRlcntjb2xvcjojOTk5fS5oYW5kc29udGFibGUubGlzdGJveHttYXJnaW46MH0uaGFuZHNvbnRhYmxlLmxpc3Rib3ggLmh0X21h'@; put 'c3RlciB0YWJsZXtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO2JhY2tncm91bmQ6d2hpdGV9LmhhbmRzb250YWJsZS5saXN0Ym94IHRoLC5oYW5kc29udGFibGUubGlzdGJveCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdHI6'@; put 'bGFzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdHI6Zmlyc3QtY2hpbGQgdGQsLmhhbmRzb250YWJsZS5saXN0Ym94IHRke2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCFpbXBvcnRhbnR9LmhhbmRzb250YWJsZS5saXN0Ym94IHRoLC5oYW5kc29udGFibGUubGlzdGJveCB0ZHt3'@; put 'aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaGFuZHNvbnRhYmxlLmxpc3Rib3ggdGQuaHREaW1tZWR7Y3Vyc29yOmRlZmF1bHQ7Y29sb3I6aW5oZXJpdDtmb250LXN0eWxlOmluaGVyaXR9LmhhbmRzb250YWJsZS5saXN0Ym94IC53dEJvcmRlcnt2aXNpYmlsaXR5'@; put 'OmhpZGRlbn0uaGFuZHNvbnRhYmxlLmxpc3Rib3ggdHIgdGQuY3VycmVudCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdHI6aG92ZXIgdGR7YmFja2dyb3VuZDojZWVlfS5odF9lZGl0b3JfaGlkZGVue3otaW5kZXg6LTF9Lmh0X2VkaXRvcl92aXNpYmxle3otaW5kZXg6MjAwfS5oYW5kc29udGFi'@; put 'bGUgdGQuaHRTZWFyY2hSZXN1bHR7YmFja2dyb3VuZDojZmNlZGQ5O2NvbG9yOiM1ODM3MDd9LmhhbmRzb250YWJsZSAuY29sbGFwc2libGVJbmRpY2F0b3J7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtsZWZ0OnVuc2V0O3JpZ2h0OjVweDti'@; put 'b3JkZXI6MXB4IHNvbGlkICNBNkE2QTY7bGluZS1oZWlnaHQ6OHB4O2NvbG9yOiMyMjI7Ym9yZGVyLXJhZGl1czoxMHB4O2ZvbnQtc2l6ZToxMHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7Y3Vyc29yOnBvaW50ZXI7Ym94LXNoYWRvdzowIDAgMCA2cHggI2VlZTtiYWNrZ3JvdW5kOiNlZWU7'@; put 'dGV4dC1hbGlnbjpjZW50ZXJ9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuY29sbGFwc2libGVJbmRpY2F0b3J7cmlnaHQ6dW5zZXQ7bGVmdDo1cHh9LmhhbmRzb250YWJsZS5tb2JpbGUsLmhhbmRzb250YWJsZS5tb2JpbGUgLnd0SG9sZGVyey13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13'@; put 'ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofS5oYW5kc29udGFibGUubW9iaWxlIC5oYW5kc29udGFibGVJbnB1dDpmb2N1c3tib3gt'@; put 'c2hhZG93OjAgMCAwIDJweCAjNTI5MmY3IGluc2V0Oy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5oYW5kc29udGFibGUgLnRvcFNlbGVjdGlvbkhhbmRsZSwuaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSwuaGFuZHNvbnRhYmxlIC5ib3R0b21TZWxlY3Rpb25IYW5k'@; put 'bGUsLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWF7bGVmdDotMTAwMDBweDtyaWdodDp1bnNldDt0b3A6LTEwMDAwcHg7ei1pbmRleDo5OTk5fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLnRvcFNlbGVjdGlvbkhhbmRsZSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxl'@; put 'IC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5ib3R0b21TZWxlY3Rpb25IYW5kbGUsW2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWF7cmlnaHQ6LTEwMDAwcHg7bGVmdDp1bnNldH0uaGFuZHNvbnRh'@; put 'YmxlLmhpZGUtdHdlZW57YW5pbWF0aW9uOm9wYWNpdHktaGlkZSAuM3M7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9LmhhbmRzb250YWJsZS5zaG93LXR3ZWVue2FuaW1hdGlvbjpvcGFjaXR5LXNob3cgLjNzO2FuaW1h'@; put 'dGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfS8qIQogKiBQaWthZGF5CiAqIENvcHlyaWdodCDCqSAyMDE0IERhdmlkIEJ1c2hlbGwgfCBCU0QgJiBNSVQgbGljZW5zZSB8IGh0dHBzOi8vZGJ1c2hlbGwuY29tLwogKi8ucGlrYS1z'@; put 'aW5nbGV7ei1pbmRleDo5OTk5O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y29sb3I6IzMzMztiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1ib3R0b20tY29sb3I6I2JiYjtmb250LWZhbWlseTpIZWx2ZXRpY2EgTmV1ZSxIZWx2ZXRpY2EsQXJp'@; put 'YWwsc2Fucy1zZXJpZn0ucGlrYS1zaW5nbGU6YmVmb3JlLC5waWthLXNpbmdsZTphZnRlcntjb250ZW50OiIgIjtkaXNwbGF5OnRhYmxlfS5waWthLXNpbmdsZTphZnRlcntjbGVhcjpib3RofS5waWthLXNpbmdsZS5pcy1oaWRkZW57ZGlzcGxheTpub25lfS5waWthLXNpbmdsZS5pcy1ib3Vu'@; put 'ZHtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCAjMDAwMDAwODB9LnBpa2EtbGVuZGFye2Zsb2F0OmxlZnQ7d2lkdGg6MjQwcHg7bWFyZ2luOjhweH0ucGlrYS10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcn0ucGlrYS1sYWJlbHtk'@; put 'aXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowO3BhZGRpbmc6NXB4IDNweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnBp'@; put 'a2EtdGl0bGUgc2VsZWN0e2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5ODttYXJnaW46MDtsZWZ0OjA7dG9wOjVweDtvcGFjaXR5OjB9LnBpa2EtcHJldiwucGlrYS1uZXh0e2Rpc3BsYXk6YmxvY2s7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7'@; put 'b3V0bGluZTpub25lO2JvcmRlcjowO3BhZGRpbmc6MDt3aWR0aDoyMHB4O2hlaWdodDozMHB4O3RleHQtaW5kZW50OjIwcHg7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNl'@; put 'bnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjc1JSA3NSU7b3BhY2l0eTouNX0ucGlrYS1wcmV2OmhvdmVyLC5waWthLW5leHQ6aG92ZXJ7b3BhY2l0eToxfS5waWthLXByZXYsLmlzLXJ0bCAucGlrYS1uZXh0e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1p'@; put 'bWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFlQ0FZQUFBQXNFajVyQUFBQVVrbEVRVlI0MnUzVk1Rb0FJQkFEUWY4UGdqK09EOWhHMkN0T05KQjJ5bVFrS2UwSGJ3QVAweHVjRGlRV0FSSVRJREVCRW5NZ01ROFM4K0FxQklsNmtL'@; put 'Z0hpWHFRcUFlSmVwQm8vejM4Si9VMHVBSGxhQmtCbDlJNEd3QUFBQUJKUlU1RXJrSmdnZz09KX0ucGlrYS1uZXh0LC5pcy1ydGwgLnBpa2EtcHJldntmbG9hdDpyaWdodDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FB'@; put 'QUJRQUFBQWVDQVlBQUFBc0VqNXJBQUFBVTBsRVFWUjQydTNWT3dvQU1BZ0UwZHdmQW5OalUyNmJZa0JDRkd3ZmlMOVZWV29PK0JKNEdmM2d0c0VLS29GQk5UQ29DQVlWd2FBaUdOUUdNVUhNa2pHYmdqazJtSU9OdVhvMG5DOFhuQ2YxSlhnQXJWSVpBUWg1VEtZQUFBQUFTVVZPUks1Q1lJST0p'@; put 'fS5waWthLXByZXYuaXMtZGlzYWJsZWQsLnBpa2EtbmV4dC5pcy1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtvcGFjaXR5Oi4yfS5waWthLXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9ja30ucGlrYS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3Bh'@; put 'Y2luZzowO2JvcmRlcjowfS5waWthLXRhYmxlIHRoLC5waWthLXRhYmxlIHRke3dpZHRoOjE0LjI4NTcxNDI4NTclO3BhZGRpbmc6MH0ucGlrYS10YWJsZSB0aHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI1cHg7Zm9udC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2Vu'@; put 'dGVyfS5waWthLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjA7d2lkdGg6MTAwJTtwYWRkaW5nOjVweDtjb2xvcjojNjY2O2ZvbnQt'@; put 'c2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE1cHg7dGV4dC1hbGlnbjpyaWdodDtiYWNrZ3JvdW5kOiNmNWY1ZjU7aGVpZ2h0OmluaXRpYWx9LnBpa2Etd2Vla3tmb250LXNpemU6MTFweDtjb2xvcjojOTk5fS5pcy10b2RheSAucGlrYS1idXR0b257Y29sb3I6IzNhZjtmb250LXdlaWdodDo3MDB9'@; put 'LmlzLXNlbGVjdGVkIC5waWthLWJ1dHRvbiwuaGFzLWV2ZW50IC5waWthLWJ1dHRvbntjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kOiMzM2FhZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzE3OGZlNTtib3JkZXItcmFkaXVzOjNweH0uaGFzLWV2ZW50IC5waWth'@; put 'LWJ1dHRvbntiYWNrZ3JvdW5kOiMwMDVkYTk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzAwNzZjOX0uaXMtZGlzYWJsZWQgLnBpa2EtYnV0dG9uLC5pcy1pbnJhbmdlIC5waWthLWJ1dHRvbntiYWNrZ3JvdW5kOiNENUU5Rjd9LmlzLXN0YXJ0cmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9y'@; put 'OiNmZmY7YmFja2dyb3VuZDojNkNCMzFEO2JveC1zaGFkb3c6bm9uZTtib3JkZXItcmFkaXVzOjNweH0uaXMtZW5kcmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMzNhYWZmO2JveC1zaGFkb3c6bm9uZTtib3JkZXItcmFkaXVzOjNweH0uaXMtZGlzYWJsZWQgLnBp'@; put 'a2EtYnV0dG9ue3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHQ7Y29sb3I6Izk5OTtvcGFjaXR5Oi4zfS5pcy1vdXRzaWRlLWN1cnJlbnQtbW9udGggLnBpa2EtYnV0dG9ue2NvbG9yOiM5OTk7b3BhY2l0eTouM30uaXMtc2VsZWN0aW9uLWRpc2FibGVke3BvaW50ZXItZXZlbnRz'@; put 'Om5vbmU7Y3Vyc29yOmRlZmF1bHR9LnBpa2EtYnV0dG9uOmhvdmVyLC5waWthLXJvdy5waWNrLXdob2xlLXdlZWs6aG92ZXIgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZmY4MDAwO2JveC1zaGFkb3c6bm9uZTtib3JkZXItcmFkaXVzOjNweH0ucGlrYS10YWJsZSBhYmJy'@; put 'e2JvcmRlci1ib3R0b206bm9uZTtjdXJzb3I6aGVscH0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNlZWU7Y3Vyc29yOmRlZmF1bHQ7d2lkdGg6MTZweDt0ZXh0LWFsaWduOmNlbnRlcn1bZGlyPXJ0bF0uaGFuZHNv'@; put 'bnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OmxlZnR9LmhhbmRzb250YWJsZSB0ZCAuaHRBdXRvY29tcGxldGVBcnJvdzpob3Zlcntjb2xvcjojNzc3fS5oYW5kc29udGFibGUgdGQuYXJlYSAuaHRBdXRvY29tcGxldGVBcnJvd3tjb2xvcjojZDNkM2QzfS5oYW5kc29udGFibGUg'@; put 'Lmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0Lm5vVmFsdWV7b3BhY2l0eTouNX0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJMYWJlbHtmb250LXNpemU6aW5oZXJpdDt2ZXJ0'@; put 'aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRzb250YWJsZSAuaHRDaGVja2JveFJlbmRlcmVyTGFiZWwuZnVsbFdpZHRoe3dpZHRoOjEwMCV9LmhhbmRzb250YWJsZSAuaHRDb21tZW50Q2VsbHtwb3NpdGlvbjpyZWxhdGl2ZX0uaGFu'@; put 'ZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItdG9wOjZweCBzb2xpZCBibGFja31b'@; put 'ZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2xlZnQ6MDtyaWdodDp1bnNldDtib3JkZXItcmlnaHQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0Om5vbmV9Lmh0Q29tbWVudHNDb250YWluZXIgLmh0Q29tbWVudHN7ZGlzcGxheTpub25lO3otaW5k'@; put 'ZXg6MTA1OTtwb3NpdGlvbjphYnNvbHV0ZX0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWF7Ym94LXNoYWRvdzojMDAwMDAwMWUgMCAxcHggM3B4LCMwMDAwMDAzZCAwIDFweCAycHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1sZWZ0OjNw'@; put 'eCBzb2xpZCAjY2NjO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjt3aWR0aDoyMTVweDtoZWlnaHQ6OTBweDtmb250LXNpemU6MTJweDtwYWRkaW5nOjVweDtvdXRsaW5lOjBweCFpbXBvcnRhbnQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9W2Rpcj1ydGxdLmh0Q29t'@; put 'bWVudHNDb250YWluZXIgLmh0Q29tbWVudFRleHRBcmVhe2JvcmRlci1yaWdodDozcHggc29saWQgI2NjYztib3JkZXItbGVmdDpub25lfS5odENvbW1lbnRzQ29udGFpbmVyIC5odENvbW1lbnRUZXh0QXJlYTpmb2N1c3tib3gtc2hhZG93OiMwMDAwMDAxZSAwIDFweCAzcHgsIzAwMDAwMDNk'@; put 'IDAgMXB4IDJweCxpbnNldCAwIDAgMCAxcHggIzUyOTJmNztib3JkZXItbGVmdDozcHggc29saWQgIzUyOTJmNztib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWE6Zm9jdXN7Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjNTI5'@; put 'MmY3O2JvcmRlci1sZWZ0Om5vbmV9LyohCiAqIEhhbmRzb250YWJsZSBDb250ZXh0TWVudQogKi8uaHRDb250ZXh0TWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA2MH0uaHRDb250ZXh0TWVudSAuaHRfY2xvbmVfdG9wLC5o'@; put 'dENvbnRleHRNZW51IC5odF9jbG9uZV9ib3R0b20sLmh0Q29udGV4dE1lbnUgLmh0X2Nsb25lX2lubGluZV9zdGFydCwuaHRDb250ZXh0TWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0Q29udGV4dE1lbnUgLmh0X2Nsb25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29y'@; put 'bmVye2Rpc3BsYXk6bm9uZX0uaHRDb250ZXh0TWVudSAuaHRfbWFzdGVyIHRhYmxlLmh0Q29yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRl'@; put 'ci1yaWdodC13aWR0aDoycHh9W2Rpcj1ydGxdLmh0Q29udGV4dE1lbnUgLmh0X21hc3RlciB0YWJsZS5odENvcmV7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDtib3JkZXItbGVmdC13aWR0aDoycHh9Lmh0Q29udGV4dE1lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVufS5odENvbnRleHRN'@; put 'ZW51IHRhYmxlIHRib2R5IHRyIHRke2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLXdpZHRoOjA7cGFkZGluZzo0cHggNnB4IDA7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5odENvbnRleHRNZW51IHRhYmxl'@; put 'IHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MH1bZGlyPXJ0bF0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3Jk'@; put 'ZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGltbWVke2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMzMjMyMzJ9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQuY3VycmVudCwuaHRDb250ZXh0TWVu'@; put 'dSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6I2YzZjNmM30uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2O2hlaWdodDowO3BhZGRpbmc6MDtjdXJzb3I6ZGVm'@; put 'YXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVke2NvbG9yOiM5OTk7Y3Vyc29yOmRlZmF1bHR9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVs'@; put 'dH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ci5odEhpZGRlbntkaXNwbGF5Om5vbmV9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6NnB4fVtkaXI9cnRsXS5odENvbnRleHRNZW51IHRhYmxl'@; put 'IHRib2R5IHRyIHRkIC5odEl0ZW1XcmFwcGVye21hcmdpbi1yaWdodDoxMHB4O21hcmdpbi1sZWZ0OjZweH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZCBkaXYgc3Bhbi5zZWxlY3RlZHttYXJnaW4tdG9wOi0ycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo0cHg7cmlnaHQ6MH1b'@; put 'ZGlyPXJ0bF0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZCBkaXYgc3Bhbi5zZWxlY3RlZHtyaWdodDo0cHg7bGVmdDowfS5odENvbnRleHRNZW51IC5odF9tYXN0ZXIgLnd0SG9sZGVye292ZXJmbG93OmhpZGRlbn10ZXh0YXJlYS5IYW5kc29udGFibGVDb3B5UGFzdGV7cG9zaXRp'@; put 'b246Zml4ZWQhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDtyaWdodDoxMDAlIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW47b3BhY2l0eTowO291dGxpbmU6MCBub25lIWltcG9ydGFudH0vKiEKICogSGFuZHNvbnRhYmxlIERyb3Bkb3duTWVudQogKi8uaGFuZHNvbnRhYmxlIC5jaGFuZ2VU'@; put 'eXBle2JhY2tncm91bmQ6I2VlZTtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNiYmI7Y29sb3I6I2JiYjtmb250LXNpemU6OXB4O2xpbmUtaGVpZ2h0OjlweDtwYWRkaW5nOjJweDttYXJnaW46M3B4IDFweCAwIDVweDtmbG9hdDpyaWdodH1bZGlyPXJ0bF0uaGFuZHNvbnRh'@; put 'YmxlIC5jaGFuZ2VUeXBle2Zsb2F0OmxlZnR9LmhhbmRzb250YWJsZSAuY2hhbmdlVHlwZTpiZWZvcmV7Y29udGVudDoiXDI1YmMgICJ9LmhhbmRzb250YWJsZSAuY2hhbmdlVHlwZTpob3Zlcntib3JkZXI6MXB4IHNvbGlkICM3Nzc7Y29sb3I6Izc3NztjdXJzb3I6cG9pbnRlcn0uaHREcm9w'@; put 'ZG93bk1lbnU6bm90KC5odEdob3N0VGFibGUpe2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwNjB9Lmh0RHJvcGRvd25NZW51IC5odF9jbG9uZV90b3AsLmh0RHJvcGRvd25NZW51IC5odF9jbG9uZV9ib3R0b20sLmh0RHJvcGRvd25NZW51IC5odF9jbG9uZV9pbmxp'@; put 'bmVfc3RhcnQsLmh0RHJvcGRvd25NZW51IC5odF9jbG9uZV90b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciwuaHREcm9wZG93bk1lbnUgLmh0X2Nsb25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye2Rpc3BsYXk6bm9uZX0uaHREcm9wZG93bk1lbnUgdGFibGUuaHRDb3Jle2JvcmRlci1jb2xv'@; put 'cjojY2NjO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOjFweDtib3JkZXItYm90dG9tLXdpZHRoOjJweDtib3JkZXItbGVmdC13aWR0aDoxcHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjJweH1bZGlyPXJ0bF0uaHREcm9wZG93bk1lbnUgdGFibGUuaHRDb3Jle2JvcmRlci1yaWdo'@; put 'dC13aWR0aDoxcHg7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4fS5odERyb3Bkb3duTWVudSAud3RCb3JkZXJ7dmlzaWJpbGl0eTpoaWRkZW59Lmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRke2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLXdpZHRoOjA7cGFkZGluZzo0cHggNnB4IDA7Y3Vy'@; put 'c29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9yZGVyLWJv'@; put 'dHRvbS13aWR0aDowO2JvcmRlci1sZWZ0LXdpZHRoOjB9W2Rpcj1ydGxdLmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0LXdpZHRoOjA7Ym9yZGVyLXJpZ2h0LXdpZHRoOjB9Lmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0'@; put 'RGltbWVke2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMzMjMyMzJ9Lmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkLmN1cnJlbnQsLmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkLnplcm9jbGlwYm9hcmQtaXMtaG92ZXJ7YmFja2dyb3VuZDojZTllOWU5fS5odERyb3Bk'@; put 'b3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2O2hlaWdodDowO3BhZGRpbmc6MDtjdXJzb3I6ZGVmYXVsdH0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZHtjb2xvcjojOTk5fS5odERyb3Bk'@; put 'b3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojOTk5O2N1cnNvcjpkZWZhdWx0fS5odERyb3Bkb3duTWVudTpub3QoLmh0R2hvc3RUYWJsZSkgdGFibGUgdGJvZHkgdHIuaHRIaWRkZW57ZGlzcGxheTpub25lfS5odERyb3Bk'@; put 'b3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZCAuaHRJdGVtV3JhcHBlcnttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4fVtkaXI9cnRsXS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZCAuaHRJdGVtV3JhcHBlcnttYXJnaW4tcmlnaHQ6MTBweDttYXJnaW4tbGVmdDox'@; put 'MHB4fS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZCBkaXYgc3Bhbi5zZWxlY3RlZHttYXJnaW4tdG9wOi0ycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo0cHg7cmlnaHQ6MH1bZGlyPXJ0bF0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0'@; put 'ZWR7cmlnaHQ6NHB4O2xlZnQ6MH0uaHREcm9wZG93bk1lbnUgLmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3c6aGlkZGVufS8qIQogKiBIYW5kc29udGFibGUgRmlsdGVycwogKi8uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnU6bm90KC5odEdob3N0VGFibGUpe2Rpc3BsYXk6bm9uZTtwb3Np'@; put 'dGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwNzB9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IC5odF9jbG9uZV90b3AsLmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IC5odF9jbG9uZV9ib3R0b20sLmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IC5odF9jbG9uZV9pbmxpbmVfc3RhcnQsLmh0RmlsdGVy'@; put 'c0NvbmRpdGlvbnNNZW51IC5odF9jbG9uZV90b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciwuaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye2Rpc3BsYXk6bm9uZX0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUuaHRDb3Jle2Jv'@; put 'cmRlcjoxcHggc29saWQgI2JiYjtib3JkZXItYm90dG9tLXdpZHRoOjJweDtib3JkZXItcmlnaHQtd2lkdGg6MnB4fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSAud3RCb3JkZXJ7dmlzaWJpbGl0eTpoaWRkZW59Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRke2Jh'@; put 'Y2tncm91bmQ6d2hpdGU7Ym9yZGVyLXdpZHRoOjA7cGFkZGluZzo0cHggNnB4IDA7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpm'@; put 'aXJzdC1jaGlsZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2JvcmRlci1sZWZ0LXdpZHRoOjB9W2Rpcj1ydGxdLmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRlci1s'@; put 'ZWZ0LXdpZHRoOjA7Ym9yZGVyLXJpZ2h0LXdpZHRoOjB9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGltbWVke2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMzMjMyMzJ9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLmN1cnJl'@; put 'bnQsLmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLnplcm9jbGlwYm9hcmQtaXMtaG92ZXJ7YmFja2dyb3VuZDojZTllOWU5fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAj'@; put 'ZTZlNmU2O2hlaWdodDowO3BhZGRpbmc6MH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZHtjb2xvcjojOTk5fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6I2Zm'@; put 'Zjtjb2xvcjojOTk5O2N1cnNvcjpkZWZhdWx0fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZCAuaHRJdGVtV3JhcHBlcnttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZCBk'@; put 'aXYgc3Bhbi5zZWxlY3RlZHttYXJnaW4tdG9wOi0ycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo0cHh9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IC5odF9tYXN0ZXIgLnd0SG9sZGVye292ZXJmbG93OmhpZGRlbn0uaGFuZHNvbnRhYmxlIC5odE1lbnVGaWx0ZXJpbmd7Ym9yZGVyLWJvdHRv'@; put 'bToxcHggZG90dGVkICNjY2M7aGVpZ2h0OjEzNXB4O292ZXJmbG93OmhpZGRlbn0uaGFuZHNvbnRhYmxlIC5odF9tYXN0ZXIgdGFibGUgdGQuaHRDdXN0b21NZW51UmVuZGVyZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2N1cnNvcjphdXRvfS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVM'@; put 'YWJlbHtmb250LXNpemU6Ljc1ZW19LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudUFjdGlvbkJhcnt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nLXRvcDoxMHB4O3BhZGRpbmctYm90dG9tOjNweH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51Q29uZGl0aW9uLmJvcmRlcntib3JkZXIt'@; put 'Ym90dG9tOjFweCBkb3R0ZWQgI2NjYyFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiAuaHRVSUlucHV0e3BhZGRpbmc6MCAwIDVweH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51VmFsdWV7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2MhaW1w'@; put 'b3J0YW50fS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVWYWx1ZSAuaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoe3BhZGRpbmc6MH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51Q29uZGl0aW9uIC5odFVJSW5wdXQgaW5wdXQsLmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudVZhbHVl'@; put 'IC5odFVJTXVsdGlwbGVTZWxlY3RTZWFyY2ggaW5wdXR7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6Ljc1ZW07cGFkZGluZzo0cHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9Lmh0VUlNdWx0aXBsZVNlbGVjdCAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdy15'@; put 'OnNjcm9sbH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNBY3RpdmUgLmNoYW5nZVR5cGV7Ym9yZGVyOjFweCBzb2xpZCAjNTA5MjcyO2NvbG9yOiMxODgwNGU7YmFja2dyb3VuZC1jb2xvcjojZDJlMGQ5fS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3RBbGx7bWFyZ2luLWxlZnQ6MDttYXJnaW4t'@; put 'cmlnaHQ6MTBweH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0QWxse21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjEwcHh9LmhhbmRzb250YWJsZSAuaHRVSUNsZWFyQWxsLC5oYW5kc29udGFibGUgLmh0VUlTZWxlY3RBbGx7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRz'@; put 'b250YWJsZSAuaHRVSUNsZWFyQWxsIGEsLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdEFsbCBhe2ZvbnQtc2l6ZTouNzVlbX0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0aW9uQ29udHJvbHN7dGV4dC1hbGlnbjpyaWdodH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0aW9uQ29u'@; put 'dHJvbHN7dGV4dC1hbGlnbjpsZWZ0fS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e21hcmdpbjowIDVweCAwIDA7dmVydGljYWwtYWxpZ246bWlkZGxlO2hlaWdodDoxZW19W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRDaGVja2JveFJlbmRlcmVySW5wdXR7bWFyZ2lu'@; put 'LWxlZnQ6NXB4O21hcmdpbi1yaWdodDowfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dHtwYWRkaW5nOjNweCAwIDdweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcn0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQgaW5wdXR7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBz'@; put 'b2xpZCAjZDJkMWQxfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dCBpbnB1dDpmb2N1c3tvdXRsaW5lOjB9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0SWNvbntwb3NpdGlvbjphYnNvbHV0ZX0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5'@; put 'OmlubGluZS1ibG9ja30uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbiBpbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Y29sb3I6IzAwMDtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjE5'@; put 'cHg7bWluLXdpZHRoOjY0cHh9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b24gaW5wdXQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNiOWI5Yjl9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b25PS3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxMHB4fVtkaXI9cnRs'@; put 'XS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0dG9uT0t7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MTBweH0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9LIGlucHV0e2JhY2tncm91bmQtY29sb3I6IzBmOWQ1ODtib3JkZXItY29sb3I6IzE4ODA0ZTtjb2xv'@; put 'cjojZmZmfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0dG9uT0sgaW5wdXQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMxYTZmNDZ9LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdHtjdXJzb3I6cG9pbnRlcjttYXJnaW4tYm90dG9tOjdweDtwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRh'@; put 'YmxlIC5odFVJU2VsZWN0Q2FwdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBzb2xpZCAjZDJkMWQxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOi43NWVtO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjNweCAyMHB4IDNweCAx'@; put 'MHB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0Q2FwdGlvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyOjFweCBzb2xpZCAjYjliOWI5fS5oYW5kc29udGFibGUg'@; put 'Lmh0VUlTZWxlY3REcm9wZG93bjphZnRlcntjb250ZW50OiJcMjViMiI7Zm9udC1zaXplOjdweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O3RvcDowfS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3REcm9wZG93bjpiZWZvcmV7Y29udGVudDoiXDI1YmMiO2ZvbnQtc2l6ZTo3cHg7cG9z'@; put 'aXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6OHB4fS5oYW5kc29udGFibGUgLmh0VUlNdWx0aXBsZVNlbGVjdCAuaGFuZHNvbnRhYmxlIC5odENvcmV7Ym9yZGVyOm5vbmV9LmhhbmRzb250YWJsZSAuaHRVSU11bHRpcGxlU2VsZWN0IC5oYW5kc29udGFibGUgLmh0Q29yZSB0ZDpob3Zl'@; put 'cntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9LmhhbmRzb250YWJsZSAuaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoIGlucHV0e2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMTtwYWRkaW5nOjNweH0uaGFuZHNvbnRhYmxlIC5odFVJUmFkaW97ZGlzcGxheTppbmxp'@; put 'bmUtYmxvY2s7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6NXB4O2hlaWdodDoxMDAlfVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlSYWRpb3ttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo1cHh9LmhhbmRzb250YWJsZSAuaHRVSVJhZGlvOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0'@; put 'OjB9LmhhbmRzb250YWJsZSAuaHRVSVJhZGlvPmlucHV0W3R5cGU9cmFkaW9de21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi41ZXh9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRVSVJhZGlvPmlucHV0W3R5cGU9cmFkaW9de21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0Oi41ZXh9Lmhh'@; put 'bmRzb250YWJsZSAuaHRVSVJhZGlvIGxhYmVse3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51T3BlcmF0b3Jze3BhZGRpbmctYm90dG9tOjVweH0uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlbkNvbHVtbntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFu'@; put 'ZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlbkNvbHVtbjphZnRlciwuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuQ29sdW1uOmJlZm9yZXtjb2xvcjojYmJiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7Zm9udC1zaXplOjVwdDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0uaGFuZHNv'@; put 'bnRhYmxlIHRoLmFmdGVySGlkZGVuQ29sdW1ue3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuQ29sdW1uOmFmdGVye3JpZ2h0OjFweDtjb250ZW50OiJcMjVjMCJ9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW46YWZ0ZXJ7'@; put 'cmlnaHQ6aW5pdGlhbDtsZWZ0OjFweDtjb250ZW50OiJcMjViNiJ9LmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbjpiZWZvcmV7bGVmdDoxcHg7Y29udGVudDoiXDI1YjYifVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGguYWZ0ZXJIaWRkZW5Db2x1bW46YmVmb3Jle3JpZ2h0OjFw'@; put 'eDtsZWZ0OmluaXRpYWw7Y29udGVudDoiXDI1YzAifS8qIQogKiBIYW5kc29udGFibGUgSGlkZGVuUm93cwogKi8uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlblJvdzpiZWZvcmUsLmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlblJvdzphZnRlcntjb2xvcjojYmJiO2ZvbnQtc2l6ZTo2'@; put 'cHQ7bGluZS1oZWlnaHQ6NnB0O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MnB4fS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuUm93LC5oYW5kc29udGFibGUgdGguYWZ0ZXJIaWRkZW5Sb3d7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Sb3c6YmVm'@; put 'b3Jle2NvbnRlbnQ6IlwyNWIyIjtib3R0b206MnB4fS5oYW5kc29udGFibGUgdGguYWZ0ZXJIaWRkZW5Sb3c6YWZ0ZXJ7Y29udGVudDoiXDI1YmMiO3RvcDoycHh9LmhhbmRzb250YWJsZS5odF9fc2VsZWN0aW9uLS1yb3dzIHRib2R5IHRoLmJlZm9yZUhpZGRlblJvdy5odF9faGlnaGxpZ2h0'@; put 'OmJlZm9yZSwuaGFuZHNvbnRhYmxlLmh0X19zZWxlY3Rpb24tLXJvd3MgdGJvZHkgdGguYWZ0ZXJIaWRkZW5Sb3cuaHRfX2hpZ2hsaWdodDphZnRlcntjb2xvcjojZWVlfS5oYW5kc29udGFibGUgdGQuYWZ0ZXJIaWRkZW5Sb3cuZmlyc3RWaXNpYmxlUm93LC5oYW5kc29udGFibGUgdGguYWZ0'@; put 'ZXJIaWRkZW5Sb3cuZmlyc3RWaXNpYmxlUm93e2JvcmRlci10b3A6MXB4IHNvbGlkICNDQ0N9Lmh0Um93SGVhZGVycyAuaHRfbWFzdGVyLmlubmVyQm9yZGVySW5saW5lU3RhcnR+Lmh0X2Nsb25lX3RvcF9pbmxpbmVfc3RhcnRfY29ybmVyIHRoOm50aC1jaGlsZCgyKSwuaHRSb3dIZWFkZXJz'@; put 'IC5odF9tYXN0ZXIuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaHRfY2xvbmVfaW5saW5lX3N0YXJ0IHRkOmZpcnN0LW9mLXR5cGV7Ym9yZGVyLWxlZnQ6MCBub25lfS5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVtbk1vdmUuYWZ0ZXItc2VsZWN0aW9uLS1jb2x1bW5zIHRoZWFkIHRoLmh0'@; put 'X19oaWdobGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29yOmdyYWJ9LmhhbmRzb250YWJsZS5odF9fbWFudWFsQ29sdW1uTW92ZS5vbi1tb3ZpbmctLWNvbHVtbnMsLmhhbmRzb250YWJsZS5odF9fbWFudWFsQ29sdW1uTW92ZS5vbi1tb3ZpbmctLWNvbHVtbnMgdGhlYWQgdGguaHRfX2hpZ2hsaWdo'@; put 'dHtjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYmJpbmd9LmhhbmRzb250YWJsZS5odF9fbWFudWFsQ29sdW1uTW92ZS5vbi1tb3ZpbmctLWNvbHVtbnMgLm1hbnVhbENvbHVtblJlc2l6ZXJ7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1ndWlkZWxpbmUs'@; put 'LmhhbmRzb250YWJsZSAuaHRfX21hbnVhbENvbHVtbk1vdmUtLWJhY2tsaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSAuaHRfX21hbnVhbENvbHVtbk1vdmUtLWd1aWRlbGluZXtiYWNrZ3JvdW5kOiM3NTc1NzU7d2lkdGg6MnB4'@; put 'O3RvcDowO21hcmdpbi1pbmxpbmUtc3RhcnQ6LTFweDttYXJnaW4taW5saW5lLWVuZDowO3otaW5kZXg6MjA1fS5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1iYWNrbGlnaHR7YmFja2dyb3VuZDojMzQzNDM0O2JhY2tncm91bmQ6cmdiYSg1Miw1Miw1MiwuMjUpO2Rpc3Bs'@; put 'YXk6bm9uZTt6LWluZGV4OjIwNTtwb2ludGVyLWV2ZW50czpub25lfS5oYW5kc29udGFibGUub24tbW92aW5nLS1jb2x1bW5zLnNob3ctdWkgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZS5vbi1tb3ZpbmctLWNvbHVtbnMgLmh0X19tYW51YWxDb2x1bW5N'@; put 'b3ZlLS1iYWNrbGlnaHR7ZGlzcGxheTpibG9ja30uaGFuZHNvbnRhYmxlIC53dEhpZGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUuYWZ0ZXItc2VsZWN0aW9uLS1yb3dzIHRib2R5IHRoLmh0X19oaWdobGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29y'@; put 'OmdyYWJ9LmhhbmRzb250YWJsZS5odF9fbWFudWFsUm93TW92ZS5vbi1tb3ZpbmctLXJvd3MsLmhhbmRzb250YWJsZS5odF9fbWFudWFsUm93TW92ZS5vbi1tb3ZpbmctLXJvd3MgdGJvZHkgdGguaHRfX2hpZ2hsaWdodHtjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYmJpbmd9LmhhbmRzb250YWJs'@; put 'ZS5odF9fbWFudWFsUm93TW92ZS5vbi1tb3ZpbmctLXJvd3MgLm1hbnVhbFJvd1Jlc2l6ZXJ7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLmh0X19tYW51YWxSb3dNb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZSAuaHRfX21hbnVhbFJvd01vdmUtLWJhY2tsaWdodHtwb3NpdGlvbjph'@; put 'YnNvbHV0ZTt3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5le2JhY2tncm91bmQ6Izc1NzU3NTtoZWlnaHQ6MnB4O2xlZnQ6MDttYXJnaW4tdG9wOi0xcHg7ei1pbmRleDoyMDV9LmhhbmRzb250YWJsZSAuaHRfX21hbnVh'@; put 'bFJvd01vdmUtLWJhY2tsaWdodHtiYWNrZ3JvdW5kOiMzNDM0MzQ7YmFja2dyb3VuZDpyZ2JhKDUyLDUyLDUyLC4yNSk7ZGlzcGxheTpub25lO3otaW5kZXg6MjA1O3BvaW50ZXItZXZlbnRzOm5vbmV9LmhhbmRzb250YWJsZS5vbi1tb3ZpbmctLXJvd3Muc2hvdy11aSAuaHRfX21hbnVhbFJv'@; put 'd01vdmUtLWd1aWRlbGluZSwuaGFuZHNvbnRhYmxlLm9uLW1vdmluZy0tcm93cyAuaHRfX21hbnVhbFJvd01vdmUtLWJhY2tsaWdodHtkaXNwbGF5OmJsb2NrfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdOm5vdChbY2xhc3Mq'@; put 'PWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsXSk6YmVmb3Jle29wYWNpdHk6MH0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtbXVsdGlwbGVdOmJlZm9yZXtvcGFjaXR5Oi4x'@; put 'fS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC0wXTpiZWZvcmV7b3BhY2l0eTouMX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFz'@; put 'cyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtMV06YmVmb3Jle29wYWNpdHk6LjJ9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTJdOmJl'@; put 'Zm9yZXtvcGFjaXR5Oi4yN30uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtM106YmVmb3Jle29wYWNpdHk6LjM1fS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1b'@; put 'Y2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC00XTpiZWZvcmV7b3BhY2l0eTouNDF9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0'@; put 'ZWRNZXJnZWRDZWxsLTVdOmJlZm9yZXtvcGFjaXR5Oi40N30uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtNl06YmVmb3Jle29wYWNpdHk6LjU0fS5oYW5kc29udGFibGUg'@; put 'dGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC03XTpiZWZvcmV7b3BhY2l0eTouNTh9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOmFmdGVye3RvcDo1MCU7bWFyZ2lu'@; put 'LXRvcDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0xNXB4O2xlZnQ6dW5zZXQ7cGFkZGluZy1sZWZ0OjVweDtwYWRkaW5nLXJpZ2h0OnVuc2V0O2ZvbnQtc2l6ZTo4cHg7aGVpZ2h0OjhweDtsaW5lLWhlaWdodDoxLjE7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1bZGlyPXJ0bF0u'@; put 'aGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6YWZ0ZXJ7bGVmdDotMTVweDtyaWdodDp1bnNldDtwYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLWxlZnQ6dW5zZXR9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOmFmdGVye3RleHQtZGVj'@; put 'b3JhdGlvbjpub25lfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZ1tjbGFzc149c29ydC1dOmFmdGVyLC5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZ1tjbGFzcyo9IiBzb3J0LSJdOmFmdGVye2NvbnRlbnQ6IisifS5oYW5kc29udGFi'@; put 'bGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTE6YWZ0ZXJ7Y29udGVudDoiMSJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtMjphZnRlcntjb250ZW50OiIyIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRp'@; put 'bmcuc29ydC0zOmFmdGVye2NvbnRlbnQ6IjMifS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTQ6YWZ0ZXJ7Y29udGVudDoiNCJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtNTphZnRlcntjb250ZW50OiI1In0u'@; put 'aGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC02OmFmdGVye2NvbnRlbnQ6IjYifS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTc6YWZ0ZXJ7Y29udGVudDoiNyJ9Lmh0R2hvc3RUYWJsZSB0aCBkaXYgYnV0dG9uLmNo'@; put 'YW5nZVR5cGUrc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzpub3QoLmluZGljYXRvckRpc2FibGVkKXtwYWRkaW5nLXJpZ2h0OjVweH0uaGFuZHNvbnRhYmxlIHRoZWFkIHRoLmhpZGRlbkhlYWRlcjpub3QoOmZpcnN0LW9mLXR5cGUpe2Rpc3BsYXk6bm9uZX1AY2hhcnNldCAiVVRGLTgi'@; put 'Oy5oYW5kc29udGFibGUgdGguaHRfbmVzdGluZ0xldmVsc3t0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZy1sZWZ0OjdweH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoLmh0X25lc3RpbmdMZXZlbHN7dGV4dC1hbGlnbjpyaWdodDtwYWRkaW5nLXJpZ2h0OjdweH0uaGFuZHNvbnRhYmxlIHRoIGRp'@; put 'di5odF9uZXN0aW5nTGV2ZWxze2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTFweDtyaWdodDp1bnNldH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxze3JpZ2h0OjExcHg7bGVmdDp1bnNldH0uaGFuZHNvbnRhYmxlLmlu'@; put 'bmVyQm9yZGVySW5saW5lU3RhcnQgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHMsLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0fi5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7cmlnaHQ6MTBweDtsZWZ0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFibGUu'@; put 'aW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0xldmVscyxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0xldmVsc3tsZWZ0OjEwcHg7cmlnaHQ6dW5zZXR9LmhhbmRzb250YWJs'@; put 'ZSB0aCBzcGFuLmh0X25lc3RpbmdMZXZlbHtkaXNwbGF5OmlubGluZS1ibG9ja30uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVsX2VtcHR5e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwcHg7aGVpZ2h0OjFweDtmbG9hdDpsZWZ0fVtkaXI9cnRsXS5oYW5kc29udGFi'@; put 'bGUgdGggc3Bhbi5odF9uZXN0aW5nTGV2ZWxfZW1wdHl7ZmxvYXQ6cmlnaHR9LmhhbmRzb250YWJsZSB0aCBzcGFuLmh0X25lc3RpbmdMZXZlbDphZnRlcntjb250ZW50OiJcMjUxMCI7Zm9udC1zaXplOjlweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3R0b206'@; put 'M3B4fS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdCdXR0b257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTJweDtsZWZ0OnVuc2V0O2N1cnNvcjpwb2ludGVyfVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdCdXR0b257'@; put 'bGVmdDotMnB4O3JpZ2h0OnVuc2V0fS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdCdXR0b24uaHRfbmVzdGluZ0V4cGFuZDphZnRlcntjb250ZW50OiIrIn0uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9uZXN0aW5nQnV0dG9uLmh0X25lc3RpbmdDb2xsYXBzZTphZnRlcntjb250ZW50'@; put 'OiItIn0uaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnQgdGggZGl2Lmh0X25lc3RpbmdCdXR0b24sLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0fi5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdCdXR0b257cmlnaHQ6MDtsZWZ0OnVuc2V0fVtkaXI9'@; put 'cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbixbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntsZWZ0OjA7cmlnaHQ6dW5z'@; put 'ZXR9OnJvb3R7LS1jZHMtZ2xvYmFsLWJhc2U6MjB9aHRtbHtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xpbmUtaGVpZ2h0OjEuMTU7LW1zLXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5e21hcmdpbjowfWFydGljbGUsYXNpZGUsZGV0YWls'@; put 'cyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLG1haW4sbWVudSxuYXYsc2VjdGlvbixzdW1tYXJ5e2Rpc3BsYXk6YmxvY2t9YXVkaW8sY2FudmFzLHByb2dyZXNzLHZpZGVve2Rpc3BsYXk6aW5saW5lLWJsb2NrfWF1ZGlvOm5vdChbY29udHJvbHNdKXtkaXNwbGF5Om5vbmU7aGVp'@; put 'Z2h0OjB9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9dGVtcGxhdGUsW2hpZGRlbl17ZGlzcGxheTpub25lfWF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOm9iamVjdHN9YTphY3RpdmUsYTpob3ZlcntvdXRsaW5lLXdp'@; put 'ZHRoOjB9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbTpub25lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZH1iLHN0cm9uZ3tmb250LXdlaWdodDppbmhlcml0'@; put 'fWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGRlcn1kZm57Zm9udC1zdHlsZTppdGFsaWN9aDF7Zm9udC1zaXplOjJlbTttYXJnaW46LjY3ZW0gMH1tYXJre2JhY2tncm91bmQtY29sb3I6I2ZmMDtjb2xvcjojMDAwfXNtYWxse2ZvbnQtc2l6ZTo4MCV9c3ViLHN1cHtmb250LXNpemU6NzUlO2xp'@; put 'bmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX1pbWd7Ym9yZGVyLXN0eWxlOm5vbmV9c3ZnOm5vdCg6cm9vdCl7b3ZlcmZsb3c6aGlkZGVufWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFt'@; put 'aWx5Om1vbm9zcGFjZTtmb250LXNpemU6MWVtfWZpZ3VyZXttYXJnaW46MWVtIDQwcHh9aHJ7Ym94LXNpemluZzpjb250ZW50LWJveDtoZWlnaHQ6MDtvdmVyZmxvdzp2aXNpYmxlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udDppbmhlcml0O21hcmdpbjowfXRl'@; put 'eHRhcmVhe2xpbmUtaGVpZ2h0OjEuMTV9b3B0Z3JvdXB7Zm9udC13ZWlnaHQ6NzAwfWJ1dHRvbixpbnB1dHtvdmVyZmxvdzp2aXNpYmxlfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1idXR0b24saHRtbCBbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSxbdHlwZT1zdWJtaXRd'@; put 'ey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b259YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyLXN0eWxlOm5vbmU7'@; put 'cGFkZGluZzowfWJ1dHRvbjotbW96LWZvY3VzcmluZyxbdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFt0eXBlPXJlc2V0XTotbW96LWZvY3VzcmluZyxbdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5ne291dGxpbmU6MXB4IGRvdHRlZCBCdXR0b25UZXh0fWZpZWxkc2V0e2JvcmRlcjox'@; put 'cHggc29saWQgc2lsdmVyO21hcmdpbjowIDJweDtwYWRkaW5nOi4zNWVtIC42MjVlbSAuNzVlbX1sZWdlbmR7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7ZGlzcGxheTp0YWJsZTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm9ybWFsfXRleHRhcmVh'@; put 'e292ZXJmbG93OmF1dG99W3R5cGU9Y2hlY2tib3hdLFt0eXBlPXJhZGlvXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfVt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6'@; put 'YXV0b31bdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH1bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBl'@; put 'YXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH06cm9vdHstLWNsci1jb2xvci1uZXV0cmFsLTA6d2hpdGU7LS1jbHItY29sb3ItbmV1dHJhbC01MDojZmFmYWZhOy0tY2xyLWNvbG9yLW5ldXRyYWwt'@; put 'MTAwOiNmMmYyZjI7LS1jbHItY29sb3ItbmV1dHJhbC0yMDA6I2U4ZThlODstLWNsci1jb2xvci1uZXV0cmFsLTMwMDojZGVkZWRlOy0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwOiNjY2NjY2M7LS1jbHItY29sb3ItbmV1dHJhbC01MDA6I2IzYjNiMzstLWNsci1jb2xvci1uZXV0cmFsLTYwMDoj'@; put 'OGM4YzhjOy0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwOiM2NjY2NjY7LS1jbHItY29sb3ItbmV1dHJhbC04MDA6IzQ1NDU0NTstLWNsci1jb2xvci1uZXV0cmFsLTkwMDojMzMzMzMzOy0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMDpibGFjazstLWNsci1jb2xvci1vbi1uZXV0cmFsLTA6YmxhY2s7'@; put 'LS1jbHItY29sb3Itb24tbmV1dHJhbC01MDpibGFjazstLWNsci1jb2xvci1vbi1uZXV0cmFsLTEwMDpibGFjazstLWNsci1jb2xvci1vbi1uZXV0cmFsLTIwMDpibGFjazstLWNsci1jb2xvci1vbi1uZXV0cmFsLTMwMDpibGFjazstLWNsci1jb2xvci1vbi1uZXV0cmFsLTQwMDpibGFjazst'@; put 'LWNsci1jb2xvci1vbi1uZXV0cmFsLTUwMDpibGFjazstLWNsci1jb2xvci1vbi1uZXV0cmFsLTYwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1uZXV0cmFsLTcwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1uZXV0cmFsLTgwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1uZXV0cmFsLTkwMDp3aGl0ZTst'@; put 'LWNsci1jb2xvci1vbi1uZXV0cmFsLTEwMDA6d2hpdGU7LS1jbHItY29sb3ItYWN0aW9uLTUwOiNlM2Y1ZmM7LS1jbHItY29sb3ItYWN0aW9uLTEwMDojYzhlYWY5Oy0tY2xyLWNvbG9yLWFjdGlvbi0yMDA6IzliZDhmMzstLWNsci1jb2xvci1hY3Rpb24tMzAwOiM3OWM2ZTY7LS1jbHItY29s'@; put 'b3ItYWN0aW9uLTQwMDojNDlhZWRhOy0tY2xyLWNvbG9yLWFjdGlvbi01MDA6IzE3OWJkMzstLWNsci1jb2xvci1hY3Rpb24tNjAwOiMwMDcyYTM7LS1jbHItY29sb3ItYWN0aW9uLTcwMDojMDA2NDhmOy0tY2xyLWNvbG9yLWFjdGlvbi04MDA6IzAwNTY3YTstLWNsci1jb2xvci1hY3Rpb24t'@; put 'OTAwOiMwMDRiNmI7LS1jbHItY29sb3ItYWN0aW9uLTEwMDA6IzAwMzY0ZDstLWNsci1jb2xvci1vbi1hY3Rpb24tNTA6YmxhY2s7LS1jbHItY29sb3Itb24tYWN0aW9uLTEwMDpibGFjazstLWNsci1jb2xvci1vbi1hY3Rpb24tMjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi0zMDA6'@; put 'YmxhY2s7LS1jbHItY29sb3Itb24tYWN0aW9uLTQwMDpibGFjazstLWNsci1jb2xvci1vbi1hY3Rpb24tNTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi02MDA6d2hpdGU7LS1jbHItY29sb3Itb24tYWN0aW9uLTcwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1hY3Rpb24tODAwOndoaXRl'@; put 'Oy0tY2xyLWNvbG9yLW9uLWFjdGlvbi05MDA6d2hpdGU7LS1jbHItY29sb3Itb24tYWN0aW9uLTEwMDA6d2hpdGU7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDojZjdlNmZmOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMTAwOiNlNmNhZjE7LS1jbHItY29sb3Itc2Vjb25k'@; put 'YXJ5LWFjdGlvbi0yMDA6I2QyYWFlNDstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTMwMDojYzA5MGQ1Oy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNDAwOiNhZjczYzk7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDA6IzllNTdiYzstLWNsci1jb2xvci1zZWNvbmRh'@; put 'cnktYWN0aW9uLTYwMDojOGEzOWFjOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNzAwOiM3ODFkOWY7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi04MDA6IzY4MDA5NDstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTkwMDojNGYwMDcwOy0tY2xyLWNvbG9yLXNlY29uZGFy'@; put 'eS1hY3Rpb24tMTAwMDojMzIwMDQ3Oy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNTA6YmxhY2s7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi0yMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc2Vj'@; put 'b25kYXJ5LWFjdGlvbi0zMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi00MDA6YmxhY2s7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi01MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi02MDA6d2hpdGU7LS1jbHItY29sb3Itb24t'@; put 'c2Vjb25kYXJ5LWFjdGlvbi03MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi04MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi05MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi0xMDAwOndoaXRlOy0tY2xyLWNvbG9y'@; put 'LWRhbmdlci01MDojZmZmMmYwOy0tY2xyLWNvbG9yLWRhbmdlci0xMDA6I2ZlZGRkNzstLWNsci1jb2xvci1kYW5nZXItMjAwOiNmY2M1YmI7LS1jbHItY29sb3ItZGFuZ2VyLTMwMDojZjU5ZThmOy0tY2xyLWNvbG9yLWRhbmdlci00MDA6I2YyNzk2MzstLWNsci1jb2xvci1kYW5nZXItNTAw'@; put 'OiNmMzVlNDQ7LS1jbHItY29sb3ItZGFuZ2VyLTYwMDojZjUyZDBhOy0tY2xyLWNvbG9yLWRhbmdlci03MDA6I2RiMjEwMDstLWNsci1jb2xvci1kYW5nZXItODAwOiNjMjFkMDA7LS1jbHItY29sb3ItZGFuZ2VyLTkwMDojOTkxNzAwOy0tY2xyLWNvbG9yLWRhbmdlci0xMDAwOiM2NjBmMDA7'@; put 'LS1jbHItY29sb3Itb24tZGFuZ2VyLTUwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tZGFuZ2VyLTIwMDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItMzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci00MDA6YmxhY2s7LS1jbHIt'@; put 'Y29sb3Itb24tZGFuZ2VyLTUwMDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItNjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci03MDA6d2hpdGU7LS1jbHItY29sb3Itb24tZGFuZ2VyLTgwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1kYW5nZXItOTAwOndoaXRlOy0tY2xyLWNvbG9y'@; put 'LW9uLWRhbmdlci0xMDAwOndoaXRlOy0tY2xyLWNvbG9yLXdhcm5pbmctNTA6I2ZmZmFlNjstLWNsci1jb2xvci13YXJuaW5nLTEwMDojZmZmNGM3Oy0tY2xyLWNvbG9yLXdhcm5pbmctMjAwOiNmZmVlYTg7LS1jbHItY29sb3Itd2FybmluZy0zMDA6I2ZlZTI3MjstLWNsci1jb2xvci13YXJu'@; put 'aW5nLTQwMDojZjhjZjJhOy0tY2xyLWNvbG9yLXdhcm5pbmctNTAwOiNlZmMwMDY7LS1jbHItY29sb3Itd2FybmluZy02MDA6I2U2YjAwMDstLWNsci1jb2xvci13YXJuaW5nLTcwMDojZDY5YTAwOy0tY2xyLWNvbG9yLXdhcm5pbmctODAwOiNhZDc2MDA7LS1jbHItY29sb3Itd2FybmluZy05'@; put 'MDA6IzhmNWEwMDstLWNsci1jb2xvci13YXJuaW5nLTEwMDA6IzYxMzIwMDstLWNsci1jb2xvci1vbi13YXJuaW5nLTUwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctMjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmct'@; put 'MzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctNTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctNjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctNzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmct'@; put 'ODAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctOTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctMTAwMDp3aGl0ZTstLWNsci1jb2xvci1zdWNjZXNzLTUwOiNkZmYwZDA7LS1jbHItY29sb3Itc3VjY2Vzcy0xMDA6I2JjZTQ5YTstLWNsci1jb2xvci1zdWNjZXNzLTIwMDoj'@; put 'NzNkYzFlOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtMzAwOiM2OGM3MWE7LS1jbHItY29sb3Itc3VjY2Vzcy00MDA6IzVlYjcxNTstLWNsci1jb2xvci1zdWNjZXNzLTUwMDojNWFhMjIwOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNjAwOiM0Yjk3MGM7LS1jbHItY29sb3Itc3VjY2Vzcy03MDA6IzNjODUw'@; put 'MDstLWNsci1jb2xvci1zdWNjZXNzLTgwMDojMzA2YjAwOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtOTAwOiMyNTUyMDA7LS1jbHItY29sb3Itc3VjY2Vzcy0xMDAwOiMxZTQyMDA7LS1jbHItY29sb3Itb24tc3VjY2Vzcy01MDpibGFjazstLWNsci1jb2xvci1vbi1zdWNjZXNzLTEwMDpibGFjazst'@; put 'LWNsci1jb2xvci1vbi1zdWNjZXNzLTIwMDpibGFjazstLWNsci1jb2xvci1vbi1zdWNjZXNzLTMwMDpibGFjazstLWNsci1jb2xvci1vbi1zdWNjZXNzLTQwMDpibGFjazstLWNsci1jb2xvci1vbi1zdWNjZXNzLTUwMDpibGFjazstLWNsci1jb2xvci1vbi1zdWNjZXNzLTYwMDpibGFjazst'@; put 'LWNsci1jb2xvci1vbi1zdWNjZXNzLTcwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zdWNjZXNzLTgwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zdWNjZXNzLTkwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zdWNjZXNzLTEwMDA6d2hpdGV9OnJvb3R7LS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1czou'@; put 'MTVyZW07LS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoOi4wNXJlbTstLWNsci1nbG9iYWwtYXBwLWJhY2tncm91bmQ6I2ZhZmFmYTstLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yOiNkOGUzZTk7LS1jbHItZ2xvYmFsLW9uLXNlbGVjdGlvbi1jb2xvcjpibGFjazstLWNsci1nbG9iYWwtaG92'@; put 'ZXItY29sb3I6I2U4ZThlODstLWNsci1nbG9iYWwtY29udGVudC1oZWFkZXItZm9udC1jb2xvcjpibGFjazstLWNsci1nbG9iYWwtZm9udC1jb2xvcjojNjY2NjY2Oy0tY2xyLWdsb2JhbC1zdWNjZXNzLWNvbG9yOiM1YWEyMjA7LS1jbHItZ2xvYmFsLWVycm9yLWNvbG9yOiNjMjFkMDA7LS1j'@; put 'bHItY2xvc2UtY29sb3ItLW5vcm1hbDojOGM4YzhjOy0tY2xyLWNsb3NlLWNvbG9yLS1ub3JtYWwtb3BhY2l0eTouMjstLWNsci1jbG9zZS1jb2xvci0taG92ZXI6YmxhY2s7LS1jbHItY2xvc2UtY29sb3ItLWhvdmVyLW9wYWNpdHk6LjU7LS1jbHItcG9wb3Zlci1ib3gtc2hhZG93LWNvbG9y'@; put 'OnJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KX06cm9vdHstLWNsci1mb250Ok1ldHJvcG9saXMsIEF2ZW5pciBOZXh0LCBIZWx2ZXRpY2EgTmV1ZSwgQXJpYWwsIHNhbnMtc2VyaWY7LS1jbHItZGlzcGxheS1mb250OnZhcigtLWNsci1mb250KTstLWNsci1mb250LXdlaWdodC1saWdodDoyMDA7'@; put 'LS1jbHItZm9udC13ZWlnaHQtcmVndWxhcjo0MDA7LS1jbHItZm9udC13ZWlnaHQtc2VtaWJvbGQ6NTAwOy0tY2xyLWZvbnQtd2VpZ2h0LWJvbGQ6NjAwOy0tY2xyLWZvbnQtd2VpZ2h0LWV4dHJhYm9sZDo2MDA7LS1jbHItaDEtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1jb250ZW50LWhlYWRl'@; put 'ci1mb250LWNvbG9yKTstLWNsci1oMS1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpOy0tY2xyLWgxLWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLWgyLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtY29udGVudC1oZWFkZXItZm9udC1jb2xv'@; put 'cik7LS1jbHItaDItZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1oMi1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oMy1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWNvbnRlbnQtaGVhZGVyLWZvbnQtY29sb3IpOy0tY2xyLWgz'@; put 'LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCk7LS1jbHItaDMtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItaDQtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1jb250ZW50LWhlYWRlci1mb250LWNvbG9yKTstLWNsci1oNC1mb250LXdlaWdo'@; put 'dDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpOy0tY2xyLWg0LWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLWg1LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItaDUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJl'@; put 'Z3VsYXIpOy0tY2xyLWg1LWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLWg2LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItaDYtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTstLWNsci1oNi1mb250LWZh'@; put 'bWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1wMC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXAwLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCk7LS1jbHItcDEtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9y'@; put 'KTstLWNsci1wMS1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtcmVndWxhcik7LS1jbHItcDItY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wMi1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtc2VtaWJvbGQpOy0tY2xyLXAzLWNvbG9y'@; put 'OnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDMtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpOy0tY2xyLXA0LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDQtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2Vp'@; put 'Z2h0LWJvbGQpOy0tY2xyLXA1LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpOy0tY2xyLXA2LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDYtZm9udC13'@; put 'ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWJvbGQpOy0tY2xyLXA3LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDctZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpOy0tY2xyLXA4LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9u'@; put 'dC1jb2xvcik7LS1jbHItcDgtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpfS5jbHItYWxpZ24tYmFzZWxpbmV7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24tdG9we3ZlcnRpY2FsLWFsaWduOnRvcCFpbXBvcnRhbnR9LmNsci1h'@; put 'bGlnbi1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlIWltcG9ydGFudH0uY2xyLWFsaWduLWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b20haW1wb3J0YW50fS5jbHItYWxpZ24tdGV4dC1ib3R0b217dmVydGljYWwtYWxpZ246dGV4dC1ib3R0b20haW1wb3J0YW50fS5jbHItYWxpZ24t'@; put 'dGV4dC10b3B7dmVydGljYWwtYWxpZ246dGV4dC10b3AhaW1wb3J0YW50fS5jbHItY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9LmNsci1kaXNwbGF5LWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jbHItZGlzcGxheS1pbmxpbmUtYmxv'@; put 'Y2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jbHItZGlzcGxheS1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5jbHItZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uY2xyLWZsZXgtY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBv'@; put 'cnRhbnR9LmNsci1mbGV4LXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9y'@; put 'dGFudH0uY2xyLWZsZXgtbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWZpbGx7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LWdyb3ctMHtmbGV4'@; put 'LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNsci1mbGV4LXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5jbHItZmxleC1zaHJpbmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1z'@; put 'dGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5j'@; put 'bHItanVzdGlmeS1jb250ZW50LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXN0YXJ0e2FsaWduLWl0'@; put 'ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtYmFzZWxpbmV7YWxpZ24taXRl'@; put 'bXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtZW5ke2FsaWdu'@; put 'LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250'@; put 'ZW50LWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24t'@; put 'c2VsZi1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWJhc2Vs'@; put 'aW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1zbS1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uY2xyLWZs'@; put 'ZXgtc20tY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtc20tY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2Uh'@; put 'aW1wb3J0YW50fS5jbHItZmxleC1zbS13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtc20tbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC1zbS13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1m'@; put 'bGV4LXNtLWZpbGx7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWdyb3ctMHtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50'@; put 'fS5jbHItZmxleC1zbS1zaHJpbmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1zbS1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc20tZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVu'@; put 'ZCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc20tY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXNtLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250'@; put 'ZW50LXNtLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXNtLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc20tZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFu'@; put 'dH0uY2xyLWFsaWduLWl0ZW1zLXNtLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc20tYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc20tc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNo'@; put 'IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1jZW50ZXJ7YWxp'@; put 'Z24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXNtLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNs'@; put 'ci1hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zbS1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50'@; put 'fS5jbHItYWxpZ24tc2VsZi1zbS1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50'@; put 'fS5jbHItYWxpZ24tc2VsZi1zbS1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtbWQtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpj'@; put 'b2x1bW4haW1wb3J0YW50fS5jbHItZmxleC1tZC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtd3JhcHtm'@; put 'bGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1tZC1maWxse2ZsZXg6MSAxIGF1dG8haW1w'@; put 'b3J0YW50fS5jbHItZmxleC1tZC1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxleC1tZC1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC1tZC1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtc2hyaW5rLTF7ZmxleC1z'@; put 'aHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbWQtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LW1kLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250'@; put 'ZW50LW1kLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1tZC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1tZC1hcm91bmR7anVzdGlmeS1jb250ZW50'@; put 'OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLW1kLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1jZW50ZXJ7'@; put 'YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLW1kLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLW1kLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50'@; put 'LW1kLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1kLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbWQtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0u'@; put 'Y2xyLWFsaWduLWNvbnRlbnQtbWQtYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1zdHJldGNoe2Fs'@; put 'aWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtZW5ke2FsaWdu'@; put 'LXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1tZC1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1tZC1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtc3RyZXRjaHth'@; put 'bGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1mbGV4LWxnLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5jbHItZmxleC1sZy1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uY2xyLWZsZXgtbGct'@; put 'cm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1sZy1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5jbHIt'@; put 'ZmxleC1sZy1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbGctZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uY2xyLWZsZXgtbGctZ3Jvdy0we2Zs'@; put 'ZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgtbGctZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uY2xyLWZsZXgtbGctc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5jbHItanVzdGlm'@; put 'eS1jb250ZW50LWxnLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1sZy1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1sZy1jZW50ZXJ7anVzdGlmeS1jb250ZW50'@; put 'OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHIt'@; put 'YWxpZ24taXRlbXMtbGctc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1sZy1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9'@; put 'LmNsci1hbGlnbi1pdGVtcy1sZy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1sZy1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1zdGFydHthbGlnbi1jb250ZW50OmZsZXgt'@; put 'c3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLWJldHdlZW57'@; put 'YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbGctYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbGctc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50'@; put 'fS5jbHItYWxpZ24tc2VsZi1sZy1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uY2xy'@; put 'LWFsaWduLXNlbGYtbGctY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19'@; put 'QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgteGwtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5jbHItZmxleC14bC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpy'@; put 'b3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgteGwtd3JhcHtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLW5vd3JhcHtmbGV4LXdyYXA6bm93'@; put 'cmFwIWltcG9ydGFudH0uY2xyLWZsZXgteGwtd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC14bC1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5jbHItZmxleC14bC1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxl'@; put 'eC14bC1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC14bC1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uY2xyLWZsZXgteGwtc2hyaW5rLTF7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwtc3RhcnR7anVzdGlmeS1j'@; put 'b250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXhsLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXhsLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3Rp'@; put 'ZnktY29udGVudC14bC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC14bC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1zdGFydHthbGlnbi1p'@; put 'dGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXhsLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXhsLWJhc2VsaW5l'@; put 'e2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXhsLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1j'@; put 'b250ZW50LXhsLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4h'@; put 'aW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXhsLWF1dG97YWxp'@; put 'Z24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1jZW50ZXJ7YWxpZ24t'@; put 'c2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX0uY2xyLWZsZXgteHMtZmlyc3R7b3JkZXI6LTF9'@; put 'LmNsci1mbGV4LXhzLWxhc3R7b3JkZXI6MX0uY2xyLWZsZXgteHMtdW5vcmRlcmVke29yZGVyOjB9LmNsci1mbGV4LWl0ZW1zLXhzLXRvcHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy14cy1taWRkbGV7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy14'@; put 'cy1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9LmNsci1mbGV4LXhzLXRvcHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmNsci1mbGV4LXhzLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgteHMtYm90dG9te2FsaWduLXNlbGY6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLXhz'@; put 'LWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXhzLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jbHItZmxleC1pdGVtcy14cy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLXhzLWFyb3VuZHtqdXN0aWZ5'@; put 'LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy14cy1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtc20tZmlyc3R7b3JkZXI6LTF9LmNsci1mbGV4LXNtLWxhc3R7b3JkZXI6MX0uY2xyLWZs'@; put 'ZXgtc20tdW5vcmRlcmVke29yZGVyOjB9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtaXRlbXMtc20tdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXNtLW1pZGRsZXthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLXNtLWJvdHRv'@; put 'bXthbGlnbi1pdGVtczpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1zbS10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC1zbS1taWRkbGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LXNtLWJvdHRvbXthbGlnbi1zZWxmOmZsZXgtZW5k'@; put 'fX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LWl0ZW1zLXNtLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXNtLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1zbS1yaWdodHtqdXN0aWZ5LWNvbnRl'@; put 'bnQ6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLXNtLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy1zbS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbGV4LW1kLWZp'@; put 'cnN0e29yZGVyOi0xfS5jbHItZmxleC1tZC1sYXN0e29yZGVyOjF9LmNsci1mbGV4LW1kLXVub3JkZXJlZHtvcmRlcjowfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbGV4LWl0ZW1zLW1kLXRvcHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1tZC1taWRk'@; put 'bGV7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1tZC1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtbWQtdG9we2FsaWduLXNlbGY6ZmxleC1zdGFydH0uY2xyLWZsZXgtbWQtbWlkZGxle2FsaWduLXNlbGY6'@; put 'Y2VudGVyfS5jbHItZmxleC1tZC1ib3R0b217YWxpZ24tc2VsZjpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxleC1pdGVtcy1tZC1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1tZC1jZW50ZXJ7anVzdGlmeS1jb250ZW50'@; put 'OmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtbWQtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy1tZC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMtbWQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0'@; put 'd2Vlbn19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1sZy1maXJzdHtvcmRlcjotMX0uY2xyLWZsZXgtbGctbGFzdHtvcmRlcjoxfS5jbHItZmxleC1sZy11bm9yZGVyZWR7b3JkZXI6MH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1pdGVtcy1sZy10b3B7'@; put 'YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtbGctbWlkZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtbGctYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1mbGV4LWxnLXRvcHthbGlnbi1z'@; put 'ZWxmOmZsZXgtc3RhcnR9LmNsci1mbGV4LWxnLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgtbGctYm90dG9te2FsaWduLXNlbGY6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsZXgtaXRlbXMtbGctbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1z'@; put 'dGFydH0uY2xyLWZsZXgtaXRlbXMtbGctY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLWxnLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMtbGctYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1m'@; put 'bGV4LWl0ZW1zLWxnLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbGV4LXhsLWZpcnN0e29yZGVyOi0xfS5jbHItZmxleC14bC1sYXN0e29yZGVyOjF9LmNsci1mbGV4LXhsLXVub3JkZXJlZHtvcmRlcjowfX1A'@; put 'bWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxleC1pdGVtcy14bC10b3B7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMteGwtbWlkZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMteGwtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfX1A'@; put 'bWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxleC14bC10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC14bC1taWRkbGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LXhsLWJvdHRvbXthbGlnbi1zZWxmOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAw'@; put 'cHgpey5jbHItZmxleC1pdGVtcy14bC1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy14bC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMteGwtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1p'@; put 'dGVtcy14bC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMteGwtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn19LmNsci1mbG9hdC14cy1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5jbHItZmxvYXQteHMtcmlnaHR7Zmxv'@; put 'YXQ6cmlnaHQhaW1wb3J0YW50fS5jbHItZmxvYXQteHMtbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbG9hdC1zbS1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5jbHItZmxvYXQtc20tcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50'@; put 'fS5jbHItZmxvYXQtc20tbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxvYXQtbWQtbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LW1kLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZsb2F0LW1kLW5v'@; put 'bmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsb2F0LWxnLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmNsci1mbG9hdC1sZy1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmNsci1mbG9hdC1sZy1ub25le2Zsb2F0Om5vbmUhaW1w'@; put 'b3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxvYXQteGwtbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LXhsLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZsb2F0LXhsLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fS5jbHItaW52'@; put 'aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH0uY2xyLWhpZGRlbi14cy11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSAobWF4LXdpZHRoOjU3NS45OHB4KXsuY2xyLWhpZGRlbi14cy1kb3due2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRo'@; put 'OjU3NnB4KXsuY2xyLWhpZGRlbi1zbS11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo3NjcuOThweCl7LmNsci1oaWRkZW4tc20tZG93bntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1oaWRkZW4tbWQtdXB7'@; put 'ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6OTkxLjk4cHgpey5jbHItaGlkZGVuLW1kLWRvd257ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItaGlkZGVuLWxnLXVwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBt'@; put 'ZWRpYSAobWF4LXdpZHRoOjExOTkuOThweCl7LmNsci1oaWRkZW4tbGctZG93bntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItaGlkZGVuLXhsLXVwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fS5jbHItaGlkZGVuLXhsLWRvd24sLmNsci12'@; put 'aXNpYmxlLXByaW50LWJsb2Nre2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9QG1lZGlhIHByaW50ey5jbHItdmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH19LmNsci12aXNpYmxlLXByaW50LWlubGluZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmlu'@; put 'dHsuY2xyLXZpc2libGUtcHJpbnQtaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH19LmNsci12aXNpYmxlLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmludHsuY2xyLXZpc2libGUtcHJpbnQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5s'@; put 'aW5lLWJsb2NrIWltcG9ydGFudH19QG1lZGlhIHByaW50ey5jbHItaGlkZGVuLXByaW50e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fS5jbHItcm93e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tcmlnaHQ6LS42cmVtO21hcmdpbi1sZWZ0Oi0uNnJlbX0uY2xyLW5vLWd1dHRl'@; put 'cnN7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MH0uY2xyLW5vLWd1dHRlcnM+LmNsci1jb2wsLmNsci1uby1ndXR0ZXJzPltjbGFzcyo9Y2xyLWNvbC1de3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH0uY2xyLWNvbC14bCwuY2xyLWNvbC14bC1hdXRvLC5jbHItY29sLXhsLTEy'@; put 'LC5jbHItY29sLXhsLTExLC5jbHItY29sLXhsLTEwLC5jbHItY29sLXhsLTksLmNsci1jb2wteGwtOCwuY2xyLWNvbC14bC03LC5jbHItY29sLXhsLTYsLmNsci1jb2wteGwtNSwuY2xyLWNvbC14bC00LC5jbHItY29sLXhsLTMsLmNsci1jb2wteGwtMiwuY2xyLWNvbC14bC0xLC5jbHItY29s'@; put 'LWxnLC5jbHItY29sLWxnLWF1dG8sLmNsci1jb2wtbGctMTIsLmNsci1jb2wtbGctMTEsLmNsci1jb2wtbGctMTAsLmNsci1jb2wtbGctOSwuY2xyLWNvbC1sZy04LC5jbHItY29sLWxnLTcsLmNsci1jb2wtbGctNiwuY2xyLWNvbC1sZy01LC5jbHItY29sLWxnLTQsLmNsci1jb2wtbGctMywu'@; put 'Y2xyLWNvbC1sZy0yLC5jbHItY29sLWxnLTEsLmNsci1jb2wtbWQsLmNsci1jb2wtbWQtYXV0bywuY2xyLWNvbC1tZC0xMiwuY2xyLWNvbC1tZC0xMSwuY2xyLWNvbC1tZC0xMCwuY2xyLWNvbC1tZC05LC5jbHItY29sLW1kLTgsLmNsci1jb2wtbWQtNywuY2xyLWNvbC1tZC02LC5jbHItY29s'@; put 'LW1kLTUsLmNsci1jb2wtbWQtNCwuY2xyLWNvbC1tZC0zLC5jbHItY29sLW1kLTIsLmNsci1jb2wtbWQtMSwuY2xyLWNvbC1zbSwuY2xyLWNvbC1zbS1hdXRvLC5jbHItY29sLXNtLTEyLC5jbHItY29sLXNtLTExLC5jbHItY29sLXNtLTEwLC5jbHItY29sLXNtLTksLmNsci1jb2wtc20tOCwu'@; put 'Y2xyLWNvbC1zbS03LC5jbHItY29sLXNtLTYsLmNsci1jb2wtc20tNSwuY2xyLWNvbC1zbS00LC5jbHItY29sLXNtLTMsLmNsci1jb2wtc20tMiwuY2xyLWNvbC1zbS0xLC5jbHItY29sLC5jbHItY29sLWF1dG8sLmNsci1jb2wtMTIsLmNsci1jb2wtMTEsLmNsci1jb2wtMTAsLmNsci1jb2wt'@; put 'OSwuY2xyLWNvbC04LC5jbHItY29sLTcsLmNsci1jb2wtNiwuY2xyLWNvbC01LC5jbHItY29sLTQsLmNsci1jb2wtMywuY2xyLWNvbC0yLC5jbHItY29sLTF7d2lkdGg6MTAwJTttaW4taGVpZ2h0Oi4wNXJlbTtwYWRkaW5nLXJpZ2h0Oi42cmVtO3BhZGRpbmctbGVmdDouNnJlbX0uY2xyLWNv'@; put 'bHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNsci1jb2wtYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wtMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLTJ7'@; put 'ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS5jbHItY29sLTN7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wtNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wtNXtmbGV4OjAg'@; put 'MCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmNsci1jb2wtNntmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC04e2ZsZXg6MCAwIDY2LjY2'@; put 'NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0uY2xyLWNvbC05e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2'@; put 'NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LmNsci1jb2wtMTJ7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLWZpcnN0e29yZGVyOi0xfS5jbHItb3JkZXItbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVyLTB7b3JkZXI6MH0uY2xyLW9yZGVyLTF7b3JkZXI6MX0u'@; put 'Y2xyLW9yZGVyLTJ7b3JkZXI6Mn0uY2xyLW9yZGVyLTN7b3JkZXI6M30uY2xyLW9yZGVyLTR7b3JkZXI6NH0uY2xyLW9yZGVyLTV7b3JkZXI6NX0uY2xyLW9yZGVyLTZ7b3JkZXI6Nn0uY2xyLW9yZGVyLTd7b3JkZXI6N30uY2xyLW9yZGVyLTh7b3JkZXI6OH0uY2xyLW9yZGVyLTl7b3JkZXI6'@; put 'OX0uY2xyLW9yZGVyLTEwe29yZGVyOjEwfS5jbHItb3JkZXItMTF7b3JkZXI6MTF9LmNsci1vcmRlci0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC0z'@; put 'e21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMz'@; put 'MzMzJX0uY2xyLW9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfUBtZWRp'@; put 'YSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWNvbC1zbXtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNsci1jb2wtc20tYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wtc20tMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMl'@; put 'O21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLXNtLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS5jbHItY29sLXNtLTN7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wtc20tNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMz'@; put 'JTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wtc20tNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmNsci1jb2wtc20tNntmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC1zbS03e2ZsZXg6MCAwIDU4LjMzMzMzMzMz'@; put 'MzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1zbS04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0uY2xyLWNvbC1zbS05e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLXNtLTEwe2ZsZXg6MCAwIDgzLjMzMzMz'@; put 'MzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC1zbS0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LmNsci1jb2wtc20tMTJ7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLXNtLWZpcnN0e29yZGVy'@; put 'Oi0xfS5jbHItb3JkZXItc20tbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVyLXNtLTB7b3JkZXI6MH0uY2xyLW9yZGVyLXNtLTF7b3JkZXI6MX0uY2xyLW9yZGVyLXNtLTJ7b3JkZXI6Mn0uY2xyLW9yZGVyLXNtLTN7b3JkZXI6M30uY2xyLW9yZGVyLXNtLTR7b3JkZXI6NH0uY2xyLW9yZGVyLXNt'@; put 'LTV7b3JkZXI6NX0uY2xyLW9yZGVyLXNtLTZ7b3JkZXI6Nn0uY2xyLW9yZGVyLXNtLTd7b3JkZXI6N30uY2xyLW9yZGVyLXNtLTh7b3JkZXI6OH0uY2xyLW9yZGVyLXNtLTl7b3JkZXI6OX0uY2xyLW9yZGVyLXNtLTEwe29yZGVyOjEwfS5jbHItb3JkZXItc20tMTF7b3JkZXI6MTF9LmNsci1v'@; put 'cmRlci1zbS0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC1zbS0we21hcmdpbi1sZWZ0OjB9LmNsci1vZmZzZXQtc20tMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXNtLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtc20tM3ttYXJnaW4tbGVm'@; put 'dDoyNSV9LmNsci1vZmZzZXQtc20tNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1zbS01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXNtLTZ7bWFyZ2luLWxlZnQ6NTAlfS5jbHItb2Zmc2V0LXNtLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMz'@; put 'MzMzMyV9LmNsci1vZmZzZXQtc20tOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1zbS05e21hcmdpbi1sZWZ0Ojc1JX0uY2xyLW9mZnNldC1zbS0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1zbS0xMXttYXJnaW4tbGVmdDo5MS42NjY2'@; put 'NjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItY29sLW1ke2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY2xyLWNvbC1tZC1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNvbC1tZC0xe2ZsZXg6MCAw'@; put 'IDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmNsci1jb2wtbWQtMntmbGV4OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmNsci1jb2wtbWQtM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNvbC1tZC00e2ZsZXg6MCAw'@; put 'IDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0uY2xyLWNvbC1tZC01e2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1tZC02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHItY29sLW1kLTd7ZmxleDow'@; put 'IDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS5jbHItY29sLW1kLTh7ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5jbHItY29sLW1kLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNsci1jb2wtbWQtMTB7Zmxl'@; put 'eDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS5jbHItY29sLW1kLTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1tZC0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5jbHItb3JkZXIt'@; put 'bWQtZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci1tZC1sYXN0e29yZGVyOjEzfS5jbHItb3JkZXItbWQtMHtvcmRlcjowfS5jbHItb3JkZXItbWQtMXtvcmRlcjoxfS5jbHItb3JkZXItbWQtMntvcmRlcjoyfS5jbHItb3JkZXItbWQtM3tvcmRlcjozfS5jbHItb3JkZXItbWQtNHtvcmRlcjo0'@; put 'fS5jbHItb3JkZXItbWQtNXtvcmRlcjo1fS5jbHItb3JkZXItbWQtNntvcmRlcjo2fS5jbHItb3JkZXItbWQtN3tvcmRlcjo3fS5jbHItb3JkZXItbWQtOHtvcmRlcjo4fS5jbHItb3JkZXItbWQtOXtvcmRlcjo5fS5jbHItb3JkZXItbWQtMTB7b3JkZXI6MTB9LmNsci1vcmRlci1tZC0xMXtv'@; put 'cmRlcjoxMX0uY2xyLW9yZGVyLW1kLTEye29yZGVyOjEyfS5jbHItb2Zmc2V0LW1kLTB7bWFyZ2luLWxlZnQ6MH0uY2xyLW9mZnNldC1tZC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbWQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1t'@; put 'ZC0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC1tZC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LW1kLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbWQtNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQtbWQtN3ttYXJnaW4t'@; put 'bGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1tZC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LW1kLTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LW1kLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LW1kLTExe21hcmdp'@; put 'bi1sZWZ0OjkxLjY2NjY2NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1jb2wtbGd7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLWxnLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jbHItY29s'@; put 'LWxnLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1sZy0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC1sZy0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jbHItY29s'@; put 'LWxnLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLWxnLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLWxnLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNsci1j'@; put 'b2wtbGctN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LmNsci1jb2wtbGctOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wtbGctOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY2xy'@; put 'LWNvbC1sZy0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wtbGctMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLWxnLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEw'@; put 'MCV9LmNsci1vcmRlci1sZy1maXJzdHtvcmRlcjotMX0uY2xyLW9yZGVyLWxnLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci1sZy0we29yZGVyOjB9LmNsci1vcmRlci1sZy0xe29yZGVyOjF9LmNsci1vcmRlci1sZy0ye29yZGVyOjJ9LmNsci1vcmRlci1sZy0ze29yZGVyOjN9LmNsci1vcmRl'@; put 'ci1sZy00e29yZGVyOjR9LmNsci1vcmRlci1sZy01e29yZGVyOjV9LmNsci1vcmRlci1sZy02e29yZGVyOjZ9LmNsci1vcmRlci1sZy03e29yZGVyOjd9LmNsci1vcmRlci1sZy04e29yZGVyOjh9LmNsci1vcmRlci1sZy05e29yZGVyOjl9LmNsci1vcmRlci1sZy0xMHtvcmRlcjoxMH0uY2xy'@; put 'LW9yZGVyLWxnLTExe29yZGVyOjExfS5jbHItb3JkZXItbGctMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQtbGctMHttYXJnaW4tbGVmdDowfS5jbHItb2Zmc2V0LWxnLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1sZy0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY2Njcl'@; put 'fS5jbHItb2Zmc2V0LWxnLTN7bWFyZ2luLWxlZnQ6MjUlfS5jbHItb2Zmc2V0LWxnLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbGctNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1sZy02e21hcmdpbi1sZWZ0OjUwJX0uY2xyLW9mZnNl'@; put 'dC1sZy03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LWxnLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbGctOXttYXJnaW4tbGVmdDo3NSV9LmNsci1vZmZzZXQtbGctMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LmNsci1vZmZz'@; put 'ZXQtbGctMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1jb2wteGx7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLXhsLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0'@; put 'aDpub25lfS5jbHItY29sLXhsLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC14bC0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC14bC0ze2ZsZXg6MCAwIDI1JTttYXgtd2lk'@; put 'dGg6MjUlfS5jbHItY29sLXhsLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLXhsLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLXhsLTZ7ZmxleDowIDAgNTAlO21heC13'@; put 'aWR0aDo1MCV9LmNsci1jb2wteGwtN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LmNsci1jb2wteGwtOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wteGwtOXtmbGV4OjAgMCA3NSU7bWF4'@; put 'LXdpZHRoOjc1JX0uY2xyLWNvbC14bC0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wteGwtMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLXhsLTEye2ZsZXg6MCAwIDEw'@; put 'MCU7bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci14bC1maXJzdHtvcmRlcjotMX0uY2xyLW9yZGVyLXhsLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci14bC0we29yZGVyOjB9LmNsci1vcmRlci14bC0xe29yZGVyOjF9LmNsci1vcmRlci14bC0ye29yZGVyOjJ9LmNsci1vcmRlci14bC0ze29y'@; put 'ZGVyOjN9LmNsci1vcmRlci14bC00e29yZGVyOjR9LmNsci1vcmRlci14bC01e29yZGVyOjV9LmNsci1vcmRlci14bC02e29yZGVyOjZ9LmNsci1vcmRlci14bC03e29yZGVyOjd9LmNsci1vcmRlci14bC04e29yZGVyOjh9LmNsci1vcmRlci14bC05e29yZGVyOjl9LmNsci1vcmRlci14bC0x'@; put 'MHtvcmRlcjoxMH0uY2xyLW9yZGVyLXhsLTExe29yZGVyOjExfS5jbHItb3JkZXIteGwtMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQteGwtMHttYXJnaW4tbGVmdDowfS5jbHItb2Zmc2V0LXhsLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC14bC0ye21hcmdpbi1sZWZ0'@; put 'OjE2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXhsLTN7bWFyZ2luLWxlZnQ6MjUlfS5jbHItb2Zmc2V0LXhsLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQteGwtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC14bC02e21hcmdpbi1sZWZ0'@; put 'OjUwJX0uY2xyLW9mZnNldC14bC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXhsLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQteGwtOXttYXJnaW4tbGVmdDo3NSV9LmNsci1vZmZzZXQteGwtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMz'@; put 'MzMzMyV9LmNsci1vZmZzZXQteGwtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9fS5jbHItYnJlYWstcm93e3dpZHRoOjEwMCV9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3h9cHJle21hcmdpbjouNnJlbSAwfXByZXtib3JkZXItY29sb3I6I2NjYztib3JkZXIt'@; put 'Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwLCAjY2NjY2NjKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFk'@; put 'aXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pfXByZSBjb2Rle3doaXRlLXNwYWNlOnByZX1jb2RlLmNsci1jb2Rle2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDAsICNjMjFkMDApO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOjAgMH11'@; put 'bC5saXN0LXVuc3R5bGVkOm5vdChbY2RzLWxpc3RdKXtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tbGVmdDowO2xpc3Qtc3R5bGUtcG9zaXRpb246b3V0c2lkZX11bC5saXN0LXVuc3R5bGVkOm5vdChbY2RzLWxpc3RdKSBsaTo6bWFya2Vye2NvbG9yOnRyYW5zcGFyZW50fXVsOm5vdChbY2RzLWxp'@; put 'c3RdKSxvbDpub3QoW2Nkcy1saXN0XSl7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7bWFyZ2luLWxlZnQ6MDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctbGVmdDowfXVsLmxpc3Q6bm90KFtjZHMtbGlzdF0pLG9sLmxpc3Q6bm90KFtjZHMtbGlzdF0pe2xpc3Qtc3R5'@; put 'bGUtcG9zaXRpb246b3V0c2lkZTttYXJnaW4tbGVmdDoxLjFlbX11bC5saXN0Om5vdChbY2RzLWxpc3RdKS5jb21wYWN0LG9sLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3R7bGluZS1oZWlnaHQ6LjlyZW19dWwubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdD5saSxvbC5saXN0Om5v'@; put 'dChbY2RzLWxpc3RdKS5jb21wYWN0Pmxpe21hcmdpbi1ib3R0b206LjNyZW19dWwubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdD5saTpsYXN0LWNoaWxkLG9sLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3Q+bGk6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9dWw6bm90KC5saXN0'@; put 'LXVuc3R5bGVkKTpub3QoW2Nkcy1saXN0XSk+bGk+dWwubGlzdC11bnN0eWxlZCxvbDpub3QoW2Nkcy1saXN0XSk+bGk+dWwubGlzdC11bnN0eWxlZHttYXJnaW4tbGVmdDoxLjFlbX1saT51bDpub3QoW2Nkcy1saXN0XSl7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjEuMWVtfXVsLmxpc3Qt'@; put 'Z3JvdXA6bm90KFtjZHMtbGlzdF0pe21hcmdpbi10b3A6MH11bDpub3QoW2Nkcy1saXN0XSkubGlzdC1zcGFjZXIsb2w6bm90KFtjZHMtbGlzdF0pLmxpc3Qtc3BhY2Vye21hcmdpbi10b3A6MS4ycmVtfWgxOm5vdChbY2RzLXRleHRdKXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1oMS1j'@; put 'b2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItaDEtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oMS1m'@; put 'b250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjIuNHJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9t'@; put 'OjB9aDI6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWgyLWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMi1mb250LXdlaWdodCwgMjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZl'@; put 'dGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWgyLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNHJlbTtsZXR0ZXItc3BhY2luZzpub3Jt'@; put 'YWw7bGluZS1oZWlnaHQ6Mi40cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1oMzpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItaDMtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgzLWZvbnQt'@; put 'd2VpZ2h0LCAyMDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItaDMtZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFy'@; put 'aWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6MS4xcmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWg0Om5vdChbY2RzLXRleHRdKXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1oNC1jb2xvciwg'@; put 'YmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItaDQtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oNC1mb250LWZh'@; put 'bWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouOXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1oNTpu'@; put 'b3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItaDUtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItaDUtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2Eg'@; put 'TmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oNS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouOHJlbTtsZXR0ZXItc3BhY2luZzouMDFlbTtsaW5l'@; put 'LWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWg2Om5vdChbY2RzLXRleHRdKXtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1oNi1jb2xvciwgIzMzMzMzMyk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNi1mb250LXdlaWdo'@; put 'dCwgNTAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWg2LWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwg'@; put 'c2Fucy1zZXJpZik7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHk6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAxLWNvbG9yLCAjNjY2'@; put 'NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAxLWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi1ib3R0b206MDtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5p'@; put 'ciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWZvbnQsIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTttYXJnaW4tdG9wOjAhaW1wb3J0YW50fWJvZHkgcDpub3Qo'@; put 'W2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDEtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdo'@; put 'dDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnAwOm5vdChbY2RzLXRleHRdKSxib2R5IHAucDA6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAwLWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWln'@; put 'aHQ6dmFyKC0tY2xyLXAwLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtc2l6ZToxcmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnAyOm5vdChbY2RzLXRleHRdKSxib2R5IHAucDI6bm90KFtj'@; put 'ZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAyLWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAyLWZvbnQtd2VpZ2h0LCA1MDApO2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0'@; put 'OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDM6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wMzpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDMtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdo'@; put 'dDp2YXIoLS1jbHItcDMtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi42NXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1ib2R5IC5wNDpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA0Om5vdChb'@; put 'Y2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1wNC1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1wNC1mb250LXdlaWdodCwgNjAwKTtmb250LXNpemU6LjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0'@; put 'OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDU6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wNTpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDUtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdo'@; put 'dDp2YXIoLS1jbHItcDUtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi42cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnA2Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDY6bm90KFtj'@; put 'ZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXA2LWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA2LWZvbnQtd2VpZ2h0LCA2MDApO2ZvbnQtc2l6ZTouNTVyZW07bGV0dGVyLXNwYWNpbmc6LjAzZW07bGluZS1oZWlnaHQ6'@; put 'LjZyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnA3Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDc6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXA3LWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6'@; put 'dmFyKC0tY2xyLXA3LWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6ZTouNTVyZW07bGV0dGVyLXNwYWNpbmc6LjAzZW07bGluZS1oZWlnaHQ6LjZyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnA4Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDg6bm90KFtjZHMt'@; put 'dGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXA4LWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA4LWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6ZTouNXJlbTtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDouNnJl'@; put 'bTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9LnRleHQtbGlnaHR7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCwgMjAwKX0udGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1jZW50ZXJ7dGV4'@; put 'dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0udGV4dC1qdXN0aWZ5e3RleHQtYWxpZ246anVzdGlmeSFpbXBvcnRhbnR9aHRtbDpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQt'@; put 'Y29sb3IsICM2NjY2NjYpO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItZm9udCwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNh'@; put 'bnMtc2VyaWYpO2ZvbnQtc2l6ZToxMjUlfTpyb290ey0tY2xyLWxpbmstYWN0aXZlLWNvbG9yOnZhcigtLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTUwMCk7LS1jbHItbGluay1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItbGluay1ob3Zlci1jb2xvcjp2YXIo'@; put 'LS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItbGluay12aXNpdGVkLWNvbG9yOmhzbCgyMzgsIDQxJSwgNTMlKTstLWNsci1jdXN0b20tbGlua3MtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKX1odG1se2JveC1zaXppbmc6Ym9yZGVyLWJveH0qLDpiZWZvcmUs'@; put 'OmFmdGVye2JveC1zaXppbmc6aW5oZXJpdH1odG1sey1tcy1vdmVyZmxvdy1zdHlsZTpzY3JvbGxiYXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fWltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9W3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn1hLGFyZWEsYnV0'@; put 'dG9uLFtyb2xlPWJ1dHRvbl0saW5wdXQsbGFiZWwsc2VsZWN0LHN1bW1hcnksdGV4dGFyZWF7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn1idXR0b246Zm9jdXN7b3V0bGluZToycHggc29saWQgLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0OjFweH1idXR0b246LW1v'@; put 'ei1mb2N1c3JpbmcsW3R5cGU9YnV0dG9uXTotbW96LWZvY3VzcmluZyxbdHlwZT1yZXNldF06LW1vei1mb2N1c3JpbmcsW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOjJweCBzb2xpZCBIaWdobGlnaHQ7b3V0bGluZS1vZmZzZXQ6MXB4fWlucHV0LGJ1dHRvbixzZWxlY3Qs'@; put 'dGV4dGFyZWF7Ym9yZGVyLXJhZGl1czowfWlucHV0W3R5cGU9cmFkaW9dOmRpc2FibGVkLGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH1pbnB1dFt0eXBlPWRhdGVdLGlucHV0W3R5cGU9dGltZV0saW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0saW5w'@; put 'dXRbdHlwZT1tb250aF17LXdlYmtpdC1hcHBlYXJhbmNlOmxpc3Rib3h9dGV4dGFyZWF7cmVzaXplOnZlcnRpY2FsfWZpZWxkc2V0e21pbi13aWR0aDowO3BhZGRpbmc6MDttYXJnaW46MDtib3JkZXI6MH1sZWdlbmR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6MDtsaW5lLWhl'@; put 'aWdodDppbmhlcml0fWlucHV0W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1baGlkZGVuXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fWRse21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjFyZW19dGFibGV7Ym9yZGVyLXNwYWNpbmc6MH1hOmxpbmt7Y29sb3I6IzAwNzJh'@; put 'Mztjb2xvcjp2YXIoLS1jbHItbGluay1jb2xvciwgIzAwNzJhMyl9YTp2aXNpdGVke2NvbG9yOiM1NjU5Yjg7Y29sb3I6dmFyKC0tY2xyLWxpbmstdmlzaXRlZC1jb2xvciwgIzU2NTliOCl9YTp2aXNpdGVkOmhvdmVye2NvbG9yOiM1NjU5Yjg7Y29sb3I6dmFyKC0tY2xyLWxpbmstdmlzaXRl'@; put 'ZC1jb2xvci1ob3ZlciwgIzU2NTliOCl9YTpob3Zlcntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1saW5rLWhvdmVyLWNvbG9yLCAjMDA3MmEzKX1hOmFjdGl2ZXtjb2xvcjojOWU1N2JjO2NvbG9yOnZhcigtLWNsci1saW5rLWFjdGl2ZS1jb2xvciwgIzllNTdiYyl9LmNsci1zci1v'@; put 'bmx5e3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uYWxlcnQt'@; put 'aWNvbiwuY2xyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246bWlkZGxlfS5hbGVydC1pY29uLmNsci1pY29u'@; put 'LXdhcm5pbmcsLmFsZXJ0LWljb24uaWNvbi13YXJuaW5nLC5jbHItaWNvbi5jbHItaWNvbi13YXJuaW5nLC5jbHItaWNvbi5pY29uLXdhcm5pbmd7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIy'@; put 'JTIwdmlld0JveCUzRCUyMjUlMjA1JTIwMjYlMjAyNiUyMiUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJG'@; put 'JTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUzQ2RlZnMlM0UlM0NzdHlsZSUyMHR5cGUlM0QlMjJ0ZXh0JTJGY3NzJTIyJTNFJTBBJTA5LmNsci1pLW91dGxpbmUlN0JmaWxsLXJ1bGUlM0FldmVub2RkJTNCY2xpcC1ydWxlJTNBZXZlbm9kZCUzQmZpbGwlM0ElMjM3NDc0NzQl'@; put 'M0IlN0QlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0aXRsZSUzRWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWxpbmUlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMSUyMiUyMGQlM0QlMjJNMTglMkMyMS4zMmExLjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxLjMtMS4zVjE0YTEuMyUyQzEuMyUyQzAlMkMxJTJDMC0yLjYlMkMw'@; put 'djZBMS4zJTJDMS4zJTJDMCUyQzAlMkMwJTJDMTglMkMyMS4zMlolMjIlM0UlM0MlMkZwYXRoJTNFJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTIlMjIlMjBjeCUzRCUyMjE3Ljk1JTIyJTIwY3klM0QlMjIyNC4yNyUyMiUyMHIlM0Ql'@; put 'MjIxLjUlMjIlM0UlM0MlMkZjaXJjbGUlM0UlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTMlMjIlMjBkJTNEJTIyTTMwLjMzJTJDMjUuNTQlMkMyMC41OSUyQzcuNmEzJTJDMyUyQzAlMkMwJTJDMC01LjI3JTJDMEw1LjU3JTJDMjUuNTRB'@; put 'MyUyQzMlMkMwJTJDMCUyQzAlMkM4LjIxJTJDMzBIMjcuNjlhMyUyQzMlMkMwJTJDMCUyQzAlMkMyLjY0LTQuNDNabS0xLjc4JTJDMS45NGExJTJDMSUyQzAlMkMwJTJDMS0uODYuNDlIOC4yMWExJTJDMSUyQzAlMkMwJTJDMS0uODgtMS40OEwxNy4wNyUyQzguNTVhMSUyQzElMkMwJTJDMCUy'@; put 'QzElMkMxLjc2JTJDMGw5Ljc0JTJDMTcuOTRBMSUyQzElMkMwJTJDMCUyQzElMkMyOC41NSUyQzI3LjQ4WiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdmclM0UpfS5hbGVydC1pY29uLmNsci1pY29uLXdhcm5pbmctd2hp'@; put 'dGUsLmNsci1pY29uLmNsci1pY29uLXdhcm5pbmctd2hpdGV7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjUlMjA1JTIwMjYlMjAyNiUyMiUyMHByZXNlcnZlQXNw'@; put 'ZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUzQ2RlZnMlM0UlM0Nz'@; put 'dHlsZSUyMHR5cGUlM0QlMjJ0ZXh0JTJGY3NzJTIyJTNFJTBBJTA5LmNsci1pLW91dGxpbmUlN0JmaWxsLXJ1bGUlM0FldmVub2RkJTNCY2xpcC1ydWxlJTNBZXZlbm9kZCUzQmZpbGwlM0F3aGl0ZSUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tdHJpYW5nbGUtbGluZSUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGlu'@; put 'ZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xOCUyQzIxLjMyYTEuMyUyQzEuMyUyQzAlMkMwJTJDMCUyQzEuMy0xLjNWMTRhMS4zJTJDMS4zJTJDMCUyQzElMkMwLTIuNiUyQzB2NkExLjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxOCUyQzIxLjMyWiUyMiUzRSUzQyUyRnBh'@; put 'dGglM0UlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGN4JTNEJTIyMTcuOTUlMjIlMjBjeSUzRCUyMjI0LjI3JTIyJTIwciUzRCUyMjEuNSUyMiUzRSUzQyUyRmNpcmNsZSUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1p'@; put 'LW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMyUyMiUyMGQlM0QlMjJNMzAuMzMlMkMyNS41NCUyQzIwLjU5JTJDNy42YTMlMkMzJTJDMCUyQzAlMkMwLTUuMjclMkMwTDUuNTclMkMyNS41NEEzJTJDMyUyQzAlMkMwJTJDMCUyQzguMjElMkMzMEgyNy42OWEzJTJDMyUyQzAlMkMwJTJD'@; put 'MCUyQzIuNjQtNC40M1ptLTEuNzglMkMxLjk0YTElMkMxJTJDMCUyQzAlMkMxLS44Ni40OUg4LjIxYTElMkMxJTJDMCUyQzAlMkMxLS44OC0xLjQ4TDE3LjA3JTJDOC41NWExJTJDMSUyQzAlMkMwJTJDMSUyQzEuNzYlMkMwbDkuNzQlMkMxNy45NEExJTJDMSUyQzAlMkMwJTJDMSUyQzI4LjU1'@; put 'JTJDMjcuNDhaJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN2ZyUzRSl9LmFsZXJ0LWljb24uY2xyLXZtdy1sb2dvLC5jbHItaWNvbi5jbHItdm13LWxvZ297YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3Zn'@; put 'K3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzYlMjAzNiUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJG'@; put 'JTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFdm0lMjBidWclM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIySGVhZGVycyUyMiUyMHN0'@; put 'cm9rZSUzRCUyMm5vbmUlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIyQ0wtSGVhZGVycy1TcGVjcyUyMiUyMHRyYW5zZm9y'@; put 'bSUzRCUyMnRyYW5zbGF0ZSgtMjYyLjAwMDAwMCUyQyUyMC0xNzUuMDAwMDAwKSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMjAxJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlKDIzOC4wMDAwMDAlMkMlMjAxNjMuMDAwMDAw'@; put 'KSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMnZtLWJ1ZyUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSgyNC43MDMxMjUlMkMlMjAxMi4wMDAwMDApJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGlkJTNEJTIyUmVjdGFuZ2xlLTQyJTIyJTIwZmlsbC1vcGFjaXR5JTNEJTIyMC4yNSUyMiUyMGZpbGwlM0QlMjIlMjNEREREREQlMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIweCUzRCUyMjAlMjIlMjB5'@; put 'JTNEJTIyMCUyMiUyMHdpZHRoJTNEJTIyMzYlMjIlMjBoZWlnaHQlM0QlMjIzNiUyMiUyMHJ4JTNEJTIyMyUyMiUzRSUzQyUyRnJlY3QlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk03LjYz'@; put 'OTQ4Mzc2JTJDMTMuODc2MjQwMiUyMEM3LjMyMjY1MzI0JTJDMTMuMjA5NzA4MiUyMDYuNTM5NzgxNTIlMkMxMi45MDg1MTM5JTIwNS44MDkyMzA0MiUyQzEzLjIxOTkzNCUyMEM1LjA3NzcxMDQzJTJDMTMuNTMyMjgzNyUyMDQuODA5MzI0OTUlMkMxNC4zMTAzNjkxJTIwNS4xMzk3MjAwNyUy'@; put 'QzE0Ljk3NjkwMTElMjBMOC4yMDcyNTk1NCUyQzIxLjM3NDQ5MjMlMjBDOC42ODk3NzIwNyUyQzIyLjM3ODQ3MzUlMjA5LjE5ODQ0NDkxJTJDMjIuOTAzNzA0NCUyMDEwLjE1MjgxMjElMkMyMi45MDM3MDQ0JTIwQzExLjE3MjA5NTUlMkMyMi45MDM3MDQ0JTIwMTEuNjE2ODIwOSUyQzIyLjMz'@; put 'MTA2MzMlMjAxMi4wOTgzNjQ2JTJDMjEuMzc0NDkyMyUyMEMxMi4wOTgzNjQ2JTJDMjEuMzc0NDkyMyUyMDE0Ljc3NDQ2ODIlMkMxNS43ODQ3MzQxJTIwMTQuODAxNTk3NCUyQzE1LjcyNjE2ODUlMjBDMTQuODI4NzI2NiUyQzE1LjY2NjY3MzMlMjAxNC45MTQ5NTg4JTJDMTUuNDg2MzI4NiUy'@; put 'MDE1LjE4NzIxOTklMkMxNS40ODcyNTgyJTIwQzE1LjQxNzgxODIlMkMxNS40OTAwNDclMjAxNS42MTA2Mjk0JTJDMTUuNjY1NzQzNyUyMDE1LjYxMDYyOTQlMkMxNS45MDE4NjUyJTIwTDE1LjYxMDYyOTQlMkMyMS4zNjk4NDQzJTIwQzE1LjYxMDYyOTQlMkMyMi4yMTIwNzMlMjAxNi4wOTc5'@; put 'ODY1JTJDMjIuOTAzNzA0NCUyMDE3LjAzNDkxMzQlMkMyMi45MDM3MDQ0JTIwQzE3Ljk3MTg0MDMlMkMyMi45MDM3MDQ0JTIwMTguNDc4NTc1NCUyQzIyLjIxMjA3MyUyMDE4LjQ3ODU3NTQlMkMyMS4zNjk4NDQzJTIwTDE4LjQ3ODU3NTQlMkMxNi44OTY1NTAzJTIwQzE4LjQ3ODU3NTQlMkMx'@; put 'Ni4wMzM4NzAyJTIwMTkuMTIxOTI1NCUyQzE1LjQ3NDI0MzYlMjAyMC4wMDA3MTgzJTJDMTUuNDc0MjQzNiUyMEMyMC44Nzg1NDIzJTJDMTUuNDc0MjQzNiUyMDIxLjQ2Mzc1ODMlMkMxNi4wNTI0NjI0JTIwMjEuNDYzNzU4MyUyQzE2Ljg5NjU1MDMlMjBMMjEuNDYzNzU4MyUyQzIxLjM2OTg0'@; put 'NDMlMjBDMjEuNDYzNzU4MyUyQzIyLjIxMjA3MyUyMDIxLjk1MjA4NDIlMkMyMi45MDM3MDQ0JTIwMjIuODg4MDQyMyUyQzIyLjkwMzcwNDQlMjBDMjMuODI0MDAwMyUyQzIyLjkwMzcwNDQlMjAyNC4zMzI2NzMxJTJDMjIuMjEyMDczJTIwMjQuMzMyNjczMSUyQzIxLjM2OTg0NDMlMjBMMjQu'@; put 'MzMyNjczMSUyQzE2Ljg5NjU1MDMlMjBDMjQuMzMyNjczMSUyQzE2LjAzMzg3MDIlMjAyNC45NzUwNTQzJTJDMTUuNDc0MjQzNiUyMDI1Ljg1Mzg0NzIlMkMxNS40NzQyNDM2JTIwQzI2LjczMDcwMjMlMkMxNS40NzQyNDM2JTIwMjcuMzE2ODg3MSUyQzE2LjA1MjQ2MjQlMjAyNy4zMTY4ODcx'@; put 'JTJDMTYuODk2NTUwMyUyMEwyNy4zMTY4ODcxJTJDMjEuMzY5ODQ0MyUyMEMyNy4zMTY4ODcxJTJDMjIuMjEyMDczJTIwMjcuODA1MjEzMSUyQzIyLjkwMzcwNDQlMjAyOC43NDIxNCUyQzIyLjkwMzcwNDQlMjBDMjkuNjc3MTI5MSUyQzIyLjkwMzcwNDQlMjAzMC4xODQ4MzMxJTJDMjIuMjEy'@; put 'MDczJTIwMzAuMTg0ODMzMSUyQzIxLjM2OTg0NDMlMjBMMzAuMTg0ODMzMSUyQzE2LjI3ODM1ODIlMjBDMzAuMTg0ODMzMSUyQzE0LjQwNzA0ODglMjAyOC42MTgxMjA3JTJDMTMuMDk2Mjk1NiUyMDI2LjczMDcwMjMlMkMxMy4wOTYyOTU2JTIwQzI0Ljg0NTIyMTYlMkMxMy4wOTYyOTU2JTIw'@; put 'MjMuNjY1MTAwNiUyQzE0LjM0NzU1MzYlMjAyMy42NjUxMDA2JTJDMTQuMzQ3NTUzNiUyMEMyMy4wMzcyNTMlMkMxMy41NjY2NzkzJTIwMjIuMTcyMDI0NyUyQzEzLjA5NzIyNTIlMjAyMC43MDg5ODQ3JTJDMTMuMDk3MjI1MiUyMEMxOS4xNjQ1NTclMkMxMy4wOTcyMjUyJTIwMTcuODEyOTQw'@; put 'NiUyQzE0LjM0NzU1MzYlMjAxNy44MTI5NDA2JTJDMTQuMzQ3NTUzNiUyMEMxNy4xODQxMjQxJTJDMTMuNTY2Njc5MyUyMDE2LjExNTQyNjclMkMxMy4wOTcyMjUyJTIwMTUuMjMwODIwNCUyQzEzLjA5NzIyNTIlMjBDMTMuODYxNzYzOCUyQzEzLjA5NzIyNTIlMjAxMi43NzQ2NTcyJTJDMTMu'@; put 'Njc1NDQ0JTIwMTIuMTExOTI5MiUyQzE1LjEzMDI4NzElMjBMMTAuMTUyODEyMSUyQzE5LjU2MDgxODklMjBMNy42Mzk0ODM3NiUyQzEzLjg3NjI0MDIlMjIlMjBpZCUzRCUyMkZpbGwtNCUyMiUyMGZpbGwlM0QlMjIlMjNGRkZGRkYlMjIlM0UlM0MlMkZwYXRoJTNFJTBBJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUzQyUy'@; put 'RnN2ZyUzRSIpfS5pcy1vZmYtc2NyZWVue3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MXB4IWltcG9ydGFudDtsZWZ0OjAhaW1wb3J0YW50O3RvcDotY29udmVydEJhc2VsaW5lVG9CYXNlMjAoMSkhaW1wb3J0'@; put 'YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7bWFyZ2luOjAgMCAtY29udmVydEJhc2VsaW5lVG9CYXNlMjAoMSkgMCFpbXBvcnRhbnR9LmNsci1wb3BvdmVyLWNvbnRlbnR7cG9zaXRpb246Zml4ZWQ7'@; put 'ei1pbmRleDoxMDUwfTpyb290ey0tY2xyLWJ0bi12ZXJ0aWNhbC1tYXJnaW46LjNyZW07LS1jbHItYnRuLWhvcml6b250YWwtbWFyZ2luOi42cmVtOy0tY2xyLWJ0bi1ob3Jpem9udGFsLXBhZGRpbmc6LjZyZW07LS1jbHItYnRuLXZlcnRpY2FsLXBhZGRpbmc6MDstLWNsci1idG4tcGFkZGlu'@; put 'Zzp2YXIoLS1jbHItYnRuLXZlcnRpY2FsLXBhZGRpbmcpIHZhcigtLWNsci1idG4taG9yaXpvbnRhbC1wYWRkaW5nKTstLWNsci1idG4taGVpZ2h0OjEuOHJlbTstLWNsci1idG4taGVpZ2h0LXNtOjEuMnJlbTstLWNsci1idG4tZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1ib3JkZXItcmFk'@; put 'aXVzOi4xNXJlbTstLWNsci1idG4tYm9yZGVyLXdpZHRoOi4wNXJlbTstLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1saW5lLWhlaWdodDoxLjE1cmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQt'@; put 'c2l6ZTouNTVyZW07LS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWhlaWdodDoxLjJyZW07LS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtcGFkZGluZzowIC42cmVtOy0tY2xyLWJ0bi1hcHBlYXJh'@; put 'bmNlLXN0YW5kYXJkLWljb24tc2l6ZTouNnJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxpbmUtaGVpZ2h0OjEuOHJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxldHRlci1zcGFjaW5nOi4xMmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC1zaXplOi42cmVtOy0t'@; put 'Y2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0taGVpZ2h0OjEuOHJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLXBhZGRpbmc6MCAuNnJlbTstLWNsci1idG4tZGVmYXVsdC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0'@; put 'aW9uLTYwMCk7LS1jbHItYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWRlZmF1bHQtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01'@; put 'MCk7LS1jbHItYnRuLWRlZmF1bHQtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWNvbG9yOnZhcigtLWNs'@; put 'ci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1i'@; put 'dG4tZGVmYXVsdC1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFj'@; put 'dGlvbi02MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJnLWNvbG9yOnZhcigtLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRl'@; put 'ZmF1bHQtb3V0bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6'@; put 'dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1v'@; put 'dXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNs'@; put 'ci1idG4tZGVmYXVsdC1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IpOy0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1wcmltYXJ5LWJnLWNvbG9yOnZhcigtLWNsci1j'@; put 'b2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1idG4tcHJpbWFyeS1ob3Zlci1jb2xv'@; put 'cjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1idG4tcHJpbWFyeS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi1w'@; put 'cmltYXJ5LWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXByaW1hcnktY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1j'@; put 'bHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItYnRuLXByaW1hcnktY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tc3VjY2Vzcy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1j'@; put 'bHItY29sb3Itc3VjY2Vzcy03MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtYmctY29sb3IpOy0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mt'@; put 'aG92ZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTkwMCk7LS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAw'@; put 'KTstLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWNoZWNrZWQtYmct'@; put 'Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy03MDAp'@; put 'Oy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy03MDApOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92'@; put 'ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTApOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtOTAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9y'@; put 'LXN1Y2Nlc3MtNDAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1iZy1jb2xv'@; put 'cik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm9yZGVyLWNvbG9y'@; put 'KTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWRhbmdlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5n'@; put 'ZXItNzAwKTstLWNsci1idG4tZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1jb2xvcjp2YXIoLS1j'@; put 'bHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRhbmdlci1kaXNh'@; put 'YmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5n'@; put 'ZXItODAwKTstLWNsci1idG4tZGFuZ2VyLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTcwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJnLWNvbG9yOnZhcigt'@; put 'LWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTstLWNs'@; put 'ci1idG4tZGFuZ2VyLW91dGxpbmUtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci05MDApOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMjAwKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQt'@; put 'Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWNv'@; put 'bG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXdhcm5pbmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXdhcm5pbmctYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci03MDApOy0tY2xyLWJ0bi13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRu'@; put 'LWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWNvbG9yKTstLWNsci1idG4td2FybmluZy1ib3gtc2hhZG93'@; put 'LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1j'@; put 'bHItYnRuLXdhcm5pbmctZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1jb2xvcjp2YXIo'@; put 'LS1jbHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTcwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi13YXJu'@; put 'aW5nLW91dGxpbmUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigt'@; put 'LWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci0yMDApOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTst'@; put 'LWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJs'@; put 'ZWQtY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1saW5rLWNv'@; put 'bG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tbGluay1iZy1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4tbGluay1ib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstaG92ZXItYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmst'@; put 'aG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstZGlzYWJs'@; put 'ZWQtYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1saW5rLWNoZWNrZWQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYnRuLWludmVyc2UtY29sb3I6dmFyKC0tY2xyLWNv'@; put 'bG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWludmVyc2UtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1pbnZlcnNlLWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWJnLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwg'@; put 'LjE1KTstLWNsci1idG4taW52ZXJzZS1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMCwgMCwgMCwgLjI1KTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3It'@; put 'bmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtYmctY29sb3IpOy0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1j'@; put 'aGVja2VkLWJnLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgLjE1KTstLWNsci1idG4taW52ZXJzZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1pY29uLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xv'@; put 'ciwgIzY2NjY2Nik7LS1jbHItYnRuLWdyb3VwLWZvY3VzLW91dGxpbmU6IzUxY2JlZX0uYnRue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigt'@; put 'LWNsci1idG4tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItYnRuLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7bWluLXdpZHRoOjMuNnJlbTttYXgtd2lkdGg6MThyZW07d2hpdGUtc3BhY2U6'@; put 'bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9y'@; put 'OnZhcigtLWNsci1idG4tZGVmYXVsdC1ib3JkZXItY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNs'@; put 'ci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7bGluZS1oZWlnaHQ6MS44cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxpbmUtaGVpZ2h0LCAxLjhyZW0pO2xldHRlci1zcGFjaW5nOi4xMmVtO2ZvbnQtc2l6ZTouNnJlbTtmb250LXNpemU6dmFyKC0t'@; put 'Y2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC1zaXplLCAuNnJlbSk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWZvbnQtd2VpZ2h0LCA1MDApO2hlaWdodDoxLjhyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1m'@; put 'b3JtLWhlaWdodCwgMS44cmVtKTtwYWRkaW5nOjAgLjZyZW07cGFkZGluZzp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1wYWRkaW5nLCAwIC42cmVtKX0uYnRuOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4gY2RzLWljb24sLmJ0biBjbHItaWNvbntjb2xvcjojMDA3MmEz'@; put 'O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LmJ0bjp2aXNpdGVke2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0uYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2UzZjVmYztiYWNrZ3JvdW5kLWNv'@; put 'bG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ob3Zlci1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1z'@; put 'aGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uZGlzYWJsZWQsLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7'@; put 'Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRlci1jb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjOGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi1ncm91cD4uYnRuIGNsci1pY29uLC5idG4gY2xyLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLS4xcmVtLDApfS5idG4tZ3JvdXA+LmJ0biBjZHMtaWNv'@; put 'biwuYnRuIGNkcy1pY29ue21hcmdpbi10b3A6LS4xNHJlbX0uYnRuLmJ0bi1zZWNvbmRhcnksLmJ0bi5idG4taW5mbywuYnRuLmJ0bi1vdXRsaW5lLC5idG4uYnRuLXByaW1hcnktb3V0bGluZSwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnksLmJ0'@; put 'bi5idG4tb3V0bGluZS1zZWNvbmRhcnksLmJ0bi5idG4taW5mby1vdXRsaW5lLC5idG4tc2Vjb25kYXJ5IC5idG4sLmJ0bi1pbmZvIC5idG4sLmJ0bi1vdXRsaW5lIC5idG4sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0biwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5l'@; put 'LXByaW1hcnkgLmJ0biwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtaW5mbyAuYnRue2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yLCAjMDA3MmEz'@; put 'KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLXNlY29u'@; put 'ZGFyeSBjZHMtaWNvbiwuYnRuLmJ0bi1zZWNvbmRhcnkgY2xyLWljb24sLmJ0bi5idG4taW5mbyBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUg'@; put 'Y2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5l'@; put 'LXByaW1hcnkgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgY2xyLWljb24sLmJ0bi5idG4taW5mby1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLWluZm8tb3V0bGluZSBjbHItaWNvbiwuYnRuLXNlY29uZGFy'@; put 'eSAuYnRuIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1pbmZvIC5idG4gY2RzLWljb24sLmJ0bi1pbmZvIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1wcmltYXJ5LW91dGxp'@; put 'bmUgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRu'@; put 'LW91dGxpbmUtcHJpbWFyeSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNsci1p'@; put 'Y29uLC5idG4tb3V0bGluZS1pbmZvIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0biBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tc2Vjb25kYXJ5OnZpc2l0ZWQsLmJ0bi5idG4taW5m'@; put 'bzp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OnZp'@; put 'c2l0ZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi1zZWNvbmRhcnkgLmJ0bjp2aXNpdGVkLC5idG4taW5mbyAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1zZWNvbmRhcnktb3V0'@; put 'bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjp2aXNpdGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLW91dGxpbmUtaW5mbyAuYnRuOnZpc2l0ZWR7Y29sb3I6IzAwNzJhMztj'@; put 'b2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLXNlY29uZGFyeTpob3ZlciwuYnRuLmJ0bi1pbmZvOmhvdmVyLC5idG4uYnRuLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLXNlY29uZGFyeS1vdXRs'@; put 'aW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6aG92ZXIsLmJ0bi1zZWNvbmRhcnkgLmJ0bjpob3ZlciwuYnRuLWluZm8gLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUgLmJ0'@; put 'bjpob3ZlciwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmhvdmVyLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjpob3ZlciwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmhv'@; put 'dmVyLC5idG4tb3V0bGluZS1pbmZvIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTNmNWZjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojMDA1NjdhO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1o'@; put 'b3Zlci1jb2xvciwgIzAwNTY3YSl9LmJ0bi5idG4tc2Vjb25kYXJ5OmFjdGl2ZSwuYnRuLmJ0bi1pbmZvOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6YWN0aXZlLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0'@; put 'bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmFjdGl2ZSwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlLC5idG4tc2Vjb25kYXJ5IC5idG46YWN0aXZlLC5idG4taW5mbyAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0'@; put 'bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46YWN0aXZlLC5idG4taW5mby1vdXRsaW5lIC5idG46YWN0aXZlLC5i'@; put 'dG4tb3V0bGluZS1pbmZvIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uYnRuLXNlY29uZGFyeS5kaXNhYmxl'@; put 'ZCwuYnRuLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQsLmJ0bi5idG4taW5mby5kaXNhYmxlZCwuYnRuLmJ0bi1pbmZvOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQsLmJ0'@; put 'bi5idG4tcHJpbWFyeS1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlz'@; put 'YWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCwuYnRuLXNlY29uZGFyeSAuYnRuLmRpc2Fi'@; put 'bGVkLC5idG4tc2Vjb25kYXJ5IC5idG46ZGlzYWJsZWQsLmJ0bi1pbmZvIC5idG4uZGlzYWJsZWQsLmJ0bi1pbmZvIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bi5kaXNh'@; put 'YmxlZCwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtcHJp'@; put 'bWFyeSAuYnRuOmRpc2FibGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46ZGlzYWJsZWQsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tb3V0'@; put 'bGluZS1pbmZvIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xv'@; put 'cjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAj'@; put 'OGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tcHJpbWFyeSwuYnRuLXByaW1hcnkgLmJ0bntib3JkZXItY29sb3I6IzAwNzJhMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2Jh'@; put 'Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJnLWNvbG9yLCAjMDA3MmEzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXByaW1hcnkgY2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeSBjbHItaWNvbiwuYnRu'@; put 'LXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0biBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXByaW1hcnk6dmlzaXRlZCwuYnRuLXByaW1hcnkgLmJ0bjp2aXNpdGVke2NvbG9yOiNmZmY7'@; put 'Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tcHJpbWFyeTpob3ZlciwuYnRuLXByaW1hcnkgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDU2N2E7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktaG92ZXItYmctY29s'@; put 'b3IsICMwMDU2N2EpO2NvbG9yOiNlM2Y1ZmM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWNvbG9yLCAjZTNmNWZjKX0uYnRuLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuYnRuLXByaW1hcnkgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMxNzliZDMgaW5zZXQ7Ym94LXNo'@; put 'YWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXByaW1hcnktYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5zZXR9LmJ0bi5idG4tcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1wcmltYXJ5OmRpc2FibGVkLC5idG4tcHJpbWFyeSAuYnRuLmRpc2FibGVkLC5idG4tcHJpbWFyeSAu'@; put 'YnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1h'@; put 'cnktZGlzYWJsZWQtYmctY29sb3IsICNjY2NjY2MpO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tc3VjY2VzcywuYnRuLXN1Y2Nlc3MgLmJ0'@; put 'bntib3JkZXItY29sb3I6IzNjODUwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJvcmRlci1jb2xvciwgIzNjODUwMCk7YmFja2dyb3VuZC1jb2xvcjojM2M4NTAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJnLWNvbG9yLCAjM2M4NTAwKTtj'@; put 'b2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3MgY2RzLWljb24sLmJ0bi5idG4tc3VjY2VzcyBjbHItaWNvbiwuYnRuLXN1Y2Nlc3MgLmJ0biBjZHMtaWNvbiwuYnRuLXN1Y2Nlc3MgLmJ0biBjbHItaWNvbntjb2xvcjoj'@; put 'ZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3M6dmlzaXRlZCwuYnRuLXN1Y2Nlc3MgLmJ0bjp2aXNpdGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tc3VjY2Vz'@; put 'czpob3ZlciwuYnRuLXN1Y2Nlc3MgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzMDZiMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtaG92ZXItYmctY29sb3IsICMzMDZiMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVy'@; put 'LWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tc3VjY2VzczphY3RpdmUsLmJ0bi1zdWNjZXNzIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMjU1MjAwIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJveC1zaGFkb3ctY29sb3IsICMyNTUy'@; put 'MDApIGluc2V0fS5idG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi5idG4tc3VjY2VzczpkaXNhYmxlZCwuYnRuLXN1Y2Nlc3MgLmJ0bi5kaXNhYmxlZCwuYnRuLXN1Y2Nlc3MgLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1j'@; put 'b2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJnLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6'@; put 'dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXdhcm5pbmcsLmJ0bi13YXJuaW5nIC5idG57Ym9yZGVyLWNvbG9yOiNkYjIxMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1ib3Jk'@; put 'ZXItY29sb3IsICNkYjIxMDApO2JhY2tncm91bmQtY29sb3I6I2RiMjEwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1iZy1jb2xvciwgI2RiMjEwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi13'@; put 'YXJuaW5nIGNkcy1pY29uLC5idG4uYnRuLXdhcm5pbmcgY2xyLWljb24sLmJ0bi13YXJuaW5nIC5idG4gY2RzLWljb24sLmJ0bi13YXJuaW5nIC5idG4gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi13YXJuaW5n'@; put 'OnZpc2l0ZWQsLmJ0bi13YXJuaW5nIC5idG46dmlzaXRlZHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXdhcm5pbmc6aG92ZXIsLmJ0bi13YXJuaW5nIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tn'@; put 'cm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWJnLWNvbG9yLCAjYzIxZDAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1ob3Zlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXdhcm5pbmc6YWN0aXZlLC5idG4td2FybmluZyAuYnRuOmFjdGl2'@; put 'ZXtib3gtc2hhZG93OjAgLjFyZW0gIzk5MTcwMCBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4td2FybmluZy1ib3gtc2hhZG93LWNvbG9yLCAjOTkxNzAwKSBpbnNldH0uYnRuLmJ0bi13YXJuaW5nLmRpc2FibGVkLC5idG4uYnRuLXdhcm5pbmc6ZGlzYWJsZWQs'@; put 'LmJ0bi13YXJuaW5nIC5idG4uZGlzYWJsZWQsLmJ0bi13YXJuaW5nIC5idG46ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6'@; put 'I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1iZy1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1ib3JkZXItY29sb3IsICM2NjY2NjYpO2JveC1zaGFk'@; put 'b3c6bm9uZX0uYnRuLmJ0bi1kYW5nZXIsLmJ0bi1kYW5nZXIgLmJ0bntib3JkZXItY29sb3I6I2RiMjEwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItYm9yZGVyLWNvbG9yLCAjZGIyMTAwKTtiYWNrZ3JvdW5kLWNvbG9yOiNkYjIxMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIo'@; put 'LS1jbHItYnRuLWRhbmdlci1iZy1jb2xvciwgI2RiMjEwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWRhbmdlciBjZHMtaWNvbiwuYnRuLmJ0bi1kYW5nZXIgY2xyLWljb24sLmJ0bi1kYW5nZXIgLmJ0biBjZHMtaWNvbiwu'@; put 'YnRuLWRhbmdlciAuYnRuIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1kYW5nZXI6dmlzaXRlZCwuYnRuLWRhbmdlciAuYnRuOnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1j'@; put 'b2xvciwgd2hpdGUpfS5idG4uYnRuLWRhbmdlcjpob3ZlciwuYnRuLWRhbmdlciAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWhvdmVyLWJnLWNvbG9yLCAjYzIxZDAwKTtjb2xvcjojZmZmO2NvbG9yOnZh'@; put 'cigtLWNsci1idG4tZGFuZ2VyLWhvdmVyLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tZGFuZ2VyOmFjdGl2ZSwuYnRuLWRhbmdlciAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gIzk5MTcwMCBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGFuZ2VyLWJv'@; put 'eC1zaGFkb3ctY29sb3IsICM5OTE3MDApIGluc2V0fS5idG4uYnRuLWRhbmdlci5kaXNhYmxlZCwuYnRuLmJ0bi1kYW5nZXI6ZGlzYWJsZWQsLmJ0bi1kYW5nZXIgLmJ0bi5kaXNhYmxlZCwuYnRuLWRhbmdlciAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1k'@; put 'YW5nZXItZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWJnLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItY29sb3I6IzY2'@; put 'Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lIC5idG4sLmJ0bi5idG4taW5mby1vdXRsaW5lLC5idG4taW5mby1vdXRsaW5lIC5i'@; put 'dG4sLmJ0bi5idG4tb3V0bGluZS1pbmZvLC5idG4tb3V0bGluZSAuYnRue2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ib3JkZXItY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dy'@; put 'b3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4t'@; put 'b3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4uYnRuLWluZm8tb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmUgY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBj'@; put 'ZHMtaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mbyBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWluZm8gY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2xyLWljb257Y29sb3I6IzAw'@; put 'NzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTp2aXNpdGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46'@; put 'dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lLWluZm86dmlzaXRlZCwuYnRuLW91dGxpbmUgLmJ0bjp2aXNpdGVke2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tb3V0'@; put 'bGluZSAuYnRuOmhvdmVyLC5idG4uYnRuLWluZm8tb3V0bGluZTpob3ZlciwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtaW5mbzpob3ZlciwuYnRuLW91dGxpbmUgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlM2Y1ZmM7YmFja2dyb3VuZC1jb2xv'@; put 'cjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1jb2xvciwgIzAwNTY3YSl9LmJ0bi5idG4tb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0'@; put 'bGluZSAuYnRuOmFjdGl2ZSwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlLC5idG4taW5mby1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4uYnRuLW91dGxpbmUtaW5mbzphY3RpdmUsLmJ0bi1vdXRsaW5lIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2Jv'@; put 'eC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5zZXR9LmJ0bi5idG4tb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUgLmJ0bi5kaXNhYmxl'@; put 'ZCwuYnRuLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi5i'@; put 'dG4tb3V0bGluZS1pbmZvLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtaW5mbzpkaXNhYmxlZCwuYnRuLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUgLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVk'@; put 'LWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29s'@; put 'b3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjOGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzcywuYnRuLXN1Y2Nlc3Mt'@; put 'b3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG57Ym9yZGVyLWNvbG9yOiMzYzg1MDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJvcmRlci1jb2xvciwgIzNjODUwMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5k'@; put 'LWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzNjODUwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvciwgIzNjODUwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGNkcy1pY29uLC5idG4u'@; put 'YnRuLXN1Y2Nlc3Mtb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGNsci1pY29uLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0biBjbHItaWNv'@; put 'biwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG4gY2xyLWljb257Y29sb3I6IzNjODUwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvciwgIzNjODUwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOnZp'@; put 'c2l0ZWQsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOnZpc2l0ZWQsLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46dmlzaXRlZHtjb2xvcjojM2M4NTAwO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNvbG9yLCAj'@; put 'M2M4NTAwKX0uYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46aG92ZXIsLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkZmYwZDA7YmFja2dy'@; put 'b3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2RmZjBkMCk7Y29sb3I6IzI1NTIwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ob3Zlci1jb2xvciwgIzI1NTIwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOmFj'@; put 'dGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6YWN0aXZlLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjNWViNzE1IGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0t'@; put 'Y2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgIzVlYjcxNSkgaW5zZXR9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi5i'@; put 'dG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46ZGlzYWJs'@; put 'ZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4t'@; put 'c3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7Ym94LXNoYWRvdzpub25lfS5idG4u'@; put 'YnRuLXdhcm5pbmctb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRue2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ib3Jk'@; put 'ZXItY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiNkYjIxMDA7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxp'@; put 'bmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0bi13YXJuaW5nLW91dGxpbmUgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtd2FybmluZyBjbHItaWNvbiwuYnRuLXdhcm5p'@; put 'bmctb3V0bGluZSAuYnRuIGNkcy1pY29uLC5idG4td2FybmluZy1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuIGNsci1pY29ue2NvbG9yOiNkYjIxMDA7Y29sb3I6dmFyKC0tY2xyLWJ0bi13'@; put 'YXJuaW5nLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzp2aXNpdGVkLC5idG4td2FybmluZy1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOnZpc2l0ZWR7'@; put 'Y29sb3I6I2RiMjEwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jb2xvciwgI2RiMjEwMCl9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzpob3ZlciwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOmhvdmVyLC5idG4t'@; put 'b3V0bGluZS13YXJuaW5nIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmVkZGQ3O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtaG92ZXItYmctY29sb3IsICNmZWRkZDcpO2NvbG9yOiM5OTE3MDA7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5n'@; put 'LW91dGxpbmUtaG92ZXItY29sb3IsICM5OTE3MDApfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmFjdGl2ZSwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmFjdGl2ZXtib3gt'@; put 'c2hhZG93OjAgLjFyZW0gI2ZjYzViYiBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3IsICNmY2M1YmIpIGluc2V0fS5idG4uYnRuLXdhcm5pbmctb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi13YXJuaW5n'@; put 'LW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZCwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4td2FybmluZy1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRs'@; put 'aW5lLXdhcm5pbmcgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2Jh'@; put 'Y2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGlu'@; put 'ZS1kaXNhYmxlZC1ib3JkZXItY29sb3IsICM2NjY2NjYpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRue2JvcmRlci1jb2xvcjojYzIx'@; put 'ZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJvcmRlci1jb2xvciwgI2MyMWQwMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYmctY29sb3IsIHRyYW5zcGFyZW50'@; put 'KTtjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGNkcy1pY29u'@; put 'LC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGNsci1pY29uLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0biBjbHIt'@; put 'aWNvbntjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6dmlzaXRlZCwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46dmlzaXRl'@; put 'ZCwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46dmlzaXRlZHtjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyOmhvdmVyLC5idG4t'@; put 'ZGFuZ2VyLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmVkZGQ3O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2ZlZGRkNyk7Y29sb3I6Izk5MTcw'@; put 'MDtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWNvbG9yLCAjOTkxNzAwKX0uYnRuLmJ0bi1kYW5nZXItb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6YWN0aXZlLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi1vdXRsaW5l'@; put 'LWRhbmdlciAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gI2ZjYzViYiBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgI2ZjYzViYikgaW5zZXR9LmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUuZGlz'@; put 'YWJsZWQsLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQsLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjpk'@; put 'aXNhYmxlZCwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2Vk'@; put 'O29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1k'@; put 'YW5nZXItb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3IsICM2NjY2NjYpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1saW5rLC5idG4tbGluayAuYnRue2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJvcmRlci1jb2xvciwgdHJh'@; put 'bnNwYXJlbnQpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tbGlu'@; put 'ayBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rIGNsci1pY29uLC5idG4tbGluayAuYnRuIGNkcy1pY29uLC5idG4tbGluayAuYnRuIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNvbG9yLCAjMDA3MmEzKX0uYnRuLmJ0bi1saW5rOnZpc2l0ZWQsLmJ0bi1s'@; put 'aW5rIC5idG46dmlzaXRlZHtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tbGluazpob3ZlciwuYnRuLWxpbmsgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0t'@; put 'Y2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG4uYnRuLWxpbms6YWN0aXZlLC5idG4tbGluayAuYnRuOmFjdGl2ZXtib3gtc2hhZG93Om5vbmV9LmJ0'@; put 'bi5idG4tbGluay5kaXNhYmxlZCwuYnRuLmJ0bi1saW5rOmRpc2FibGVkLC5idG4tbGluayAuYnRuLmRpc2FibGVkLC5idG4tbGluayAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFs'@; put 'bG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRu'@; put 'LWxpbmstZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLWludmVyc2UsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5idG4taW52ZXJzZSAuYnRue2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1j'@; put 'bHItYnRuLWludmVyc2UtYm9yZGVyLWNvbG9yLCB3aGl0ZSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNl'@; put 'LWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4taW52ZXJzZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24sLmJ0bi5idG4taW52ZXJzZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmJ0bi1pbnZlcnNl'@; put 'IC5idG4gY2RzLWljb24sLmJ0bi1pbnZlcnNlIC5idG4gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1pbnZlcnNlOnZpc2l0ZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOnZpc2l0ZWQsLmJ0'@; put 'bi1pbnZlcnNlIC5idG46dmlzaXRlZHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWludmVyc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyLC5idG4taW52ZXJzZSAuYnRuOmhvdmVye2Jh'@; put 'Y2tncm91bmQtY29sb3I6I2ZmZmZmZjI2O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWJnLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xNSkpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWNvbG9yLCB3aGl0ZSl9'@; put 'LmJ0bi5idG4taW52ZXJzZTphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSwuYnRuLWludmVyc2UgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMwMDAwMDA0MCBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4taW52'@; put 'ZXJzZS1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDAsIDAsIDAsIC4yNSkpIGluc2V0fS5idG4uYnRuLWludmVyc2UuZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLmRpc2FibGVkLC5idG4uYnRuLWludmVyc2U6ZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxl'@; put 'cnQtaXRlbSAuYnRuOmRpc2FibGVkLC5idG4taW52ZXJzZSAuYnRuLmRpc2FibGVkLC5idG4taW52ZXJzZSAuYnRuOmRpc2FibGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWNvbG9yLCB3aGl0ZSk7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6'@; put 'LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQt'@; put 'Ym9yZGVyLWNvbG9yLCB3aGl0ZSk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXNtLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYnRuLXNtIC5idG57bGluZS1oZWlnaHQ6MS4xNXJlbTtsaW5lLWhlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtbGlu'@; put 'ZS1oZWlnaHQsIDEuMTVyZW0pO2xldHRlci1zcGFjaW5nOi4wNzNlbTtmb250LXNpemU6LjU1cmVtO2ZvbnQtc2l6ZTp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtZm9udC1zaXplLCAuNTVyZW0pO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItYnRuLWFw'@; put 'cGVhcmFuY2Utc3RhbmRhcmQtZm9udC13ZWlnaHQsIDUwMCk7aGVpZ2h0OjEuMnJlbTtoZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWhlaWdodCwgMS4ycmVtKTtwYWRkaW5nOjAgLjZyZW07cGFkZGluZzp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQt'@; put 'cGFkZGluZywgMCAuNnJlbSl9LmJ0bi1ibG9ja3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LmJ0bnttYXJnaW4tdG9wOi4zcmVtO21hcmdpbi10b3A6dmFyKC0tY2xyLWJ0bi12ZXJ0aWNhbC1tYXJnaW4sIC4zcmVtKTttYXJnaW4tYm90dG9tOi4zcmVtO21hcmdp'@; put 'bi1ib3R0b206dmFyKC0tY2xyLWJ0bi12ZXJ0aWNhbC1tYXJnaW4sIC4zcmVtKTttYXJnaW4tcmlnaHQ6LjZyZW07bWFyZ2luLXJpZ2h0OnZhcigtLWNsci1idG4taG9yaXpvbnRhbC1tYXJnaW4sIC42cmVtKTttYXJnaW4tbGVmdDowfS5idG4uYnRuLWxpbmt7bWFyZ2luLXJpZ2h0OjB9LmJ0'@; put 'bi5idG4tbGluay5idG4taW52ZXJzZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4uYnRuLWxpbmt7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tc206bm90KC5idG4tbGluaykgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRu'@; put 'LWxpbmspIGNsci1pY29ue3dpZHRoOi42cmVtO3dpZHRoOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTtoZWlnaHQ6LjZyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTt0cmFuc2Zv'@; put 'cm06dHJhbnNsYXRlM2QoMCwtLjA1cmVtLDApfS5idG4tc206bm90KC5idG4tbGluaykgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRuLWxpbmspIGNkcy1pY29ue3dpZHRoOi42cmVtO3dpZHRoOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFu'@; put 'ZGFyZC1pY29uLXNpemUsIC42cmVtKTtoZWlnaHQ6LjZyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTttYXJnaW4tdG9wOi0uMXJlbX0uYnRuLWljb257bWluLXdpZHRoOjB9LmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmRp'@; put 'c2FibGVkIGNsci1pY29uLC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjojY2NjO2NvbG9yOnZhcigtLWNsci1idG4taWNvbi1kaXNhYmxlZC1jb2xvciwgI2NjY2NjYyl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlLC5i'@; put 'dG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZSwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4t'@; put 'cHJpbWFyeS1ib3JkZXItY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1iZy1jb2xvciwgIzAwNzJhMyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRl'@; put 'KX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGUgY2RzLWljb24sLmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlIGNsci1pY29uLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1z'@; put 'dWNjZXNzIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb24sLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbiwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRv'@; put 'Z2dsZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5i'@; put 'dG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1j'@; put 'bHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpob3Zl'@; put 'ciwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDU2N2E7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktaG92ZXItYmctY29sb3IsICMwMDU2N2EpO2NvbG9yOiNlM2Y1ZmM7Y29sb3I6dmFyKC0tY2xy'@; put 'LWJ0bi1wcmltYXJ5LWhvdmVyLWNvbG9yLCAjZTNmNWZjKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9n'@; put 'Z2xlOmFjdGl2ZSwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMxNzliZDMgaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXByaW1hcnktYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5z'@; put 'ZXR9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlLmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4t'@; put 'c3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10'@; put 'b2dnbGUuZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91'@; put 'bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1iZy1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3IsICNjY2NjY2Mp'@; put 'O2JveC1zaGFkb3c6bm9uZX0uYnRuLWdyb3VwLmJ0bi1kYW5nZXIgOmRpc2FibGVke2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS0tLWNsci1jb2xvci1uZXV0cmFsLTQwMCwgI2NjY2NjYyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1j'@; put 'b2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstYmctY29sb3IsIHRyYW5zcGFyZW50KTtj'@; put 'b2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uLC5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9y'@; put 'OnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlOnZpc2l0ZWR7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IsICMwMDcyYTMpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3du'@; put 'LXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstaG92ZXItY29sb3IsICMwMDU2'@; put 'N2EpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Ym94LXNoYWRvdzpub25lfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y29sb3I6IzY2'@; put 'Njtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYmctY29sb3Is'@; put 'IHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1kaXNhYmxlZC1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtib3gtc2hhZG93Om5vbmV9LmJ0bi1ncm91cC5idG4tc20gLmJ0bi1ncm91cC1vdmVyZmxvdz4uZHJv'@; put 'cGRvd24tdG9nZ2xlLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1ncm91cC5idG4gLmJ0bi1ncm91cC1vdmVyZmxvdz4uZHJvcGRvd24tdG9nZ2xle2xpbmUtaGVpZ2h0OjEuMTVyZW07bGluZS1oZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWxpbmUt'@; put 'aGVpZ2h0LCAxLjE1cmVtKTtsZXR0ZXItc3BhY2luZzouMDczZW07Zm9udC1zaXplOi41NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtc2l6ZSwgLjU1cmVtKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBl'@; put 'YXJhbmNlLXN0YW5kYXJkLWZvbnQtd2VpZ2h0LCA1MDApO2hlaWdodDoxLjJyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1oZWlnaHQsIDEuMnJlbSk7cGFkZGluZzowIC42cmVtO3BhZGRpbmc6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLXBh'@; put 'ZGRpbmcsIDAgLjZyZW0pfS5jaGVja2JveC5idG4sLmNoZWNrYm94LWlubGluZS5idG4sLnJhZGlvLmJ0biwucmFkaW8taW5saW5lLmJ0bntwYWRkaW5nOjB9LmNoZWNrYm94LmJ0biBsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0biBsYWJlbCwucmFkaW8uYnRuIGxhYmVsLC5yYWRpby1pbmxp'@; put 'bmUuYnRuIGxhYmVse2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjAgLjZyZW07Y3Vyc29yOnBvaW50ZXJ9LmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmUsLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJl'@; put 'bDphZnRlciwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmUsLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7Y29udGVudDpub25lfS5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6'@; put 'YmVmb3JlLC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YWZ0ZXIsLnJhZGlvLWlubGluZS5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3JlLC5yYWRpby1pbmxpbmUuYnRuIGlucHV0W3R5cGU9cmFkaW9dK2xhYmVsOmFmdGVye2NvbnRlbnQ6bm9uZX0uY2hlY2ti'@; put 'b3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2ti'@; put 'b3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts'@; put 'YWJlbD5jZHMtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7Y29sb3I6I2ZmZn0uY2hlY2tib3guYnRuIGxhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuIGxhYmVse3dpZHRoOjEwMCV9LmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQr'@; put 'bGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5i'@; put 'dG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFi'@; put 'ZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRs'@; put 'aW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hl'@; put 'Y2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06'@; put 'Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+'@; put 'Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94'@; put 'LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5l'@; put 'LXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5l'@; put 'IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNo'@; put 'ZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNo'@; put 'ZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0'@; put 'bi1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8g'@; put 'aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNr'@; put 'ZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5j'@; put 'aGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxp'@; put 'bmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94'@; put 'LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94'@; put 'LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1p'@; put 'bmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNr'@; put 'Ym94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNr'@; put 'Ym94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1p'@; put 'bmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlu'@; put 'bGluZS5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5i'@; put 'dG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2Jv'@; put 'eC5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnkg'@; put 'aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hd'@; put 'OmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2Jv'@; put 'eF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwu'@; put 'Y2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1j'@; put 'b2xvcjojMzA2YjAwO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4td2FybmluZyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXdhcm5pbmcgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gu'@; put 'YnRuLmJ0bi13YXJuaW5nIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXdhcm5pbmcgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4td2FybmluZyBpbnB1'@; put 'dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi13YXJuaW5nIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0'@; put 'bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNo'@; put 'ZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1kYW5nZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwu'@; put 'Y2hlY2tib3gtaW5saW5lLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xh'@; put 'YmVsLC5jaGVja2JveC5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWxp'@; put 'bmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNo'@; put 'ZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojMDA1NjdhfS5jaGVja2JveC5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5jaGVja2JveC5i'@; put 'dG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hl'@; put 'Y2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpj'@; put 'aGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVj'@; put 'a2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2Vk'@; put 'K2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpj'@; put 'aGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjI2O2NvbG9yOiNmZmZ9LnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRu'@; put 'IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0biBsYWJlbHt3aWR0aDoxMDAlfS5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5y'@; put 'YWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1yYWRp'@; put 'b106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5w'@; put 'dXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5i'@; put 'dG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0'@; put 'eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5j'@; put 'bHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxp'@; put 'bmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5'@; put 'cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNk'@; put 'cy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBp'@; put 'bnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1p'@; put 'Y29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwu'@; put 'cmFkaW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztjb2xvcjojZmZmfS5y'@; put 'YWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2Vk'@; put 'K2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzMwNmIwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLXdhcm5pbmcgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi13YXJuaW5nIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xy'@; put 'LWljb24sLnJhZGlvLmJ0bi5idG4td2FybmluZyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRp'@; put 'by5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtjb2xvcjojZmZmfS5yYWRpby5i'@; put 'dG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1dFt0'@; put 'eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1p'@; put 'Y29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzNjODUwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVj'@; put 'a2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4u'@; put 'YnRuLW91dGxpbmUtd2FybmluZyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtd2FybmluZyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtd2FybmluZyBpbnB1dFt0eXBl'@; put 'PXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRb'@; put 'dHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFi'@; put 'ZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2My'@; put 'MWQwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPXJhZGlv'@; put 'XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6IzAwNTY3YX0ucmFkaW8uYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlu'@; put 'cHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVs'@; put 'PmNsci1pY29uLC5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntiYWNrZ3JvdW5k'@; put 'LWNvbG9yOiNmZmZmZmYyNjtjb2xvcjojZmZmfS5idG4tZ3JvdXB7ZGlzcGxheTppbmxpbmUtZmxleDttYXJnaW4tcmlnaHQ6LjZyZW19LmJ0bi1ncm91cCBjbHItZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtib3JkZXItcmFkaXVzOjB9LmJ0bi1ncm91cCBjbHItZHJvcGRvd246bGFzdC1j'@; put 'aGlsZCAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMTVyZW19LmJ0bi1ncm91cCAuYnRue21hcmdpbjowO3ZlcnRpY2FsLWFsaWduOnRvcDtvdmVyZmxvdzpoaWRkZW59LmJ0bi1ncm91cCAuYnRuIGxh'@; put 'YmVse2hlaWdodDoxMDAlfS5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cywuYnRuLWdyb3VwIC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXN7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO29wYWNpdHk6MTt0b3A6MDtoZWlnaHQ6MTAw'@; put 'JTt3aWR0aDoxMDAlO2JveC1zaGFkb3c6MCAwIC4yNXJlbSAjNTFjYmVlO2JveC1zaGFkb3c6MCAwIC4yNXJlbSB2YXIoLS1jbHItYnRuLWdyb3VwLWZvY3VzLW91dGxpbmUsICM1MWNiZWUpO3BhZGRpbmc6LjE1cmVtIDAgLjE1cmVtIC4xNXJlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRl'@; put 'ci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6IzUxY2JlZTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1ncm91cC1mb2N1cy1vdXRsaW5lLCAjNTFjYmVlKX0uYnRuLWdyb3VwIC5idG4gaW5wdXRbdHlwZT1yYWRpb106Zm9jdXM6Oi1tcy1jaGVjaywuYnRuLWdyb3VwIC5idG4gaW5wdXRb'@; put 'dHlwZT1jaGVja2JveF06Zm9jdXM6Oi1tcy1jaGVja3tkaXNwbGF5Om5vbmV9LmJ0bi1ncm91cCAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJ0bi1ncm91cCAuYnRuOm5vdCg6bGFzdC1jaGlsZCl7'@; put 'Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXAgLnRvb2x0aXA6bm90KDpmaXJzdC1jaGlsZCkgLmJ0bntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXAgLnRv'@; put 'b2x0aXA6bm90KDpsYXN0LWNoaWxkKSAuYnRue2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCkgLmJ0biwuYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5idG46'@; put 'bm90KDpsYXN0LWNoaWxkKSwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCkgLmJ0biwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5idG46bm90KDpsYXN0LWNoaWxkKSwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLnRvb2x0aXA6bm90KDpsYXN0LWNoaWxkKSAu'@; put 'YnRuLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAuYnRuOm5vdCg6bGFzdC1jaGlsZCksLmJ0bi1ncm91cC5idG4td2FybmluZyAudG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpIC5idG4sLmJ0bi1ncm91cC5idG4td2FybmluZyAuYnRuOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luOjA7bWFyZ2luLXJp'@; put 'Z2h0Oi4wNXJlbTttYXJnaW4tcmlnaHQ6dmFyKC0tY2xyLWJ0bi1ib3JkZXItd2lkdGgsIC4wNXJlbSl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tbWVudSAuYnRuLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLW1lbnUgLmJ0biwuYnRuLWdyb3VwLmJ0bi1kYW5n'@; put 'ZXIgLmRyb3Bkb3duLW1lbnUgLmJ0biwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi1tZW51IC5idG57bWFyZ2luOjB9LmJ0bi1ncm91cD4uYnRuLWdyb3VwLW92ZXJmbG93e3Bvc2l0aW9uOnJlbGF0aXZlfS5idG4tZ3JvdXA+LmJ0bi1ncm91cC1vdmVyZmxvdzpsYXN0LWNoaWxk'@; put 'Om5vdCg6Zmlyc3QtY2hpbGQpPi5idG46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYnRuLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRu'@; put 'LWdyb3VwPi5idG4tZ3JvdXAtb3ZlcmZsb3c6bGFzdC1jaGlsZDpmaXJzdC1jaGlsZD4uYnRuOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWJ0bi1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5idG4tZ3JvdXAgLmJ0bisuYnRue2JvcmRl'@; put 'ci1sZWZ0Om5vbmV9LmJ0bi1ncm91cCAudG9vbHRpcDpub3QoOmZpcnN0LWNoaWxkKSAuYnRue2JvcmRlci1sZWZ0Om5vbmV9LmJ0bi1ncm91cCAuYnRuKy5idG4tZ3JvdXAtb3ZlcmZsb3cgLmJ0bntib3JkZXItbGVmdDpub25lfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2ds'@; put 'ZSwuYnRuLWdyb3VwLmJ0bi1pY29uLWxpbmsuYnRuLWxpbmsgLmJ0biwuYnRuLWdyb3VwLmJ0bi1pY29uIC5idG57bWluLXdpZHRoOjB9LmJ0bi1ncm91cCAuY2xyLWljb24tdGl0bGV7ZGlzcGxheTpub25lO3RleHQtdHJhbnNmb3JtOm5vbmV9LmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xl'@; put 'e2Rpc3BsYXk6YmxvY2t9LmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSBjZHMtaWNvbiwuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGNsci1pY29ue2Rpc3BsYXk6bm9uZX0uYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IC5jbHItaWNvbi10aXRsZXtkaXNwbGF5OmlubGluZX0uY2hlY2tib3gs'@; put 'LnJhZGlve3Bvc2l0aW9uOnJlbGF0aXZlfS5jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSwuY2hlY2tib3ggaW5wdXRbdHlwZT1yYWRpb10sLnJhZGlvIGlucHV0W3R5cGU9Y2hlY2tib3hdLC5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0'@; put 'OjA7aGVpZ2h0OjA7d2lkdGg6MDtvcGFjaXR5OjB9LmNhcmQtZm9vdGVyIC5jaGVja2JveC5idG4gbGFiZWwsLmNhcmQtZm9vdGVyIC5yYWRpby5idG4gbGFiZWx7bGluZS1oZWlnaHQ6MS4xNXJlbX0uZHJvcGRvd24tbWVudS5jbHItYnV0dG9uLWdyb3VwLW1lbnV7dmlzaWJpbGl0eTp2aXNp'@; put 'YmxlfWJ1dHRvbi5jbG9zZXtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LmNsb3Nle2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxLjhyZW07dHJhbnNpdGlvbjpjb2xvciBsaW5lYXIgLjJzO2ZvbnQtd2VpZ2h0'@; put 'OjIwMDt0ZXh0LXNoYWRvdzpub25lO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY2xvc2UtY29sb3ItLW5vcm1hbCwgIzhjOGM4Yyl9LmNsb3NlIGNkcy1pY29uLC5jbG9zZSBjbHItaWNvbntmaWxsOiM4YzhjOGM7ZmlsbDp2YXIoLS1jbHItY2xv'@; put 'c2UtY29sb3ItLW5vcm1hbCwgIzhjOGM4Yyl9LmNsb3NlOmZvY3VzLC5jbG9zZTpob3ZlciwuY2xvc2U6YWN0aXZle29wYWNpdHk6MTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jbG9zZS1jb2xvci0taG92ZXIsIGJsYWNrKX0uY2xvc2U6Zm9jdXMgY2RzLWljb24sLmNsb3NlOmZvY3Vz'@; put 'IGNsci1pY29uLC5jbG9zZTpob3ZlciBjZHMtaWNvbiwuY2xvc2U6aG92ZXIgY2xyLWljb24sLmNsb3NlOmFjdGl2ZSBjZHMtaWNvbiwuY2xvc2U6YWN0aXZlIGNsci1pY29ue2ZpbGw6IzAwMDtmaWxsOnZhcigtLWNsci1jbG9zZS1jb2xvci0taG92ZXIsIGJsYWNrKX0uY2xvc2U6Zm9jdXN7'@; put 'b3V0bGluZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfTpyb290ey0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWFs'@; put 'ZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tOTAwKTstLWNsci1hbGVydC1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tY29sb3IpOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xy'@; put 'LWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eToxOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eToxOy0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1hcHAt'@; put 'YWxlcnQtY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5Oi44Oy0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6MTstLWNsci1hbGVydC1ib3JkZXJyYWRpdXM6dmFy'@; put 'KC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLWFsZXJ0LWluZm8tYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MCk7LS1jbHItYWxlcnQtaW5mby1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxlcnQtaW5mby1ib3JkZXItY29s'@; put 'b3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWFsZXJ0LWluZm8taWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcik7LS1jbHItYWxlcnQtaW5mby1h'@; put 'Y3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tYWN0aXZlLWNvbG9yKTstLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5OnZhcigt'@; put 'LWNsci1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcik7LS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFs'@; put 'ZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1jbHItYWxlcnQtc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy01MCk7LS1jbHItYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxlcnQtc3VjY2Vz'@; put 'cy1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtODAwKTstLWNsci1hbGVydC1zdWNjZXNzLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtODAwKTstLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWNvbG9y'@; put 'KTstLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYWxlcnQtc3Vj'@; put 'Y2Vzcy1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC1zdWNjZXNzLWNs'@; put 'b3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hbGVydC13YXJuaW5nLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTEwMCk7LS1jbHItYWxlcnQtd2FybmluZy1mb250LWNvbG9yOnZhcigtLWNsci1j'@; put 'b2xvci1uZXV0cmFsLTkwMCk7LS1jbHItYWxlcnQtd2FybmluZy1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctODAwKTstLWNsci1hbGVydC13YXJuaW5nLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctODAwKTstLWNsci1hbGVydC13YXJuaW5nLWFjdGlv'@; put 'bi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWNvbG9yKTstLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxl'@; put 'cnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29u'@; put 'LWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hbGVydC1kYW5nZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci0xMDApOy0tY2xyLWFs'@; put 'ZXJ0LWRhbmdlci1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxlcnQtZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItYWxlcnQtZGFuZ2VyLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci05'@; put 'MDApOy0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcik7LS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9z'@; put 'ZS1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZh'@; put 'cigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWJnLWNvbG9yOnZhcigtLWNsci1j'@; put 'b2xvci1hY3Rpb24tNjAwKTstLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC1pbmZvLWljb24tY29sb3I6dmFyKC0tY2xyLWFw'@; put 'cC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZv'@; put 'bnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkp'@; put 'Oy0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVy'@; put 'LW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWJnLWNvbG9yOmhzbCgyNiwgMTAwJSwgMzglKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1ib3JkZXItY29sb3I6bm9uZTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2Ut'@; put 'aWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcjp2YXIoLS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHIt'@; put 'YXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hcHAt'@; put 'YWxlcnQtd2FybmluZy1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1h'@; put 'cHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWFwcC1hbGVydC1k'@; put 'YW5nZXItYm9yZGVyLWNvbG9yOm5vbmU7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0t'@; put 'Y2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVy'@; put 'dC1kYW5nZXItYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0'@; put 'LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0t'@; put 'Y2xyLWFwcC1hbGVydC1zdWNjZXNzLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTcwMCk7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWlj'@; put 'b24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3I6dmFyKC0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFw'@; put 'cC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcik7LS1jbHItYXBwLWFs'@; put 'ZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1vcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBw'@; put 'LWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wLCB3aGl0ZSk7LS1jbHItYXBwLWFs'@; put 'ZXJ0LWluZm8tcGFnZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDAsICMwMDU2N2EpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTkwMCwgIzhmNWEwMCk7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdl'@; put 'ci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCwgIzk5MTcwMCl9LmFsZXJ0LWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07bWFyZ2luLWxlZnQ6LS4xNXJlbTttYXJnaW4tdG9wOi0uMnJlbX0uYWxlcnQtaWNvbi13cmFwcGVye2ZsZXg6MCAwIDEuMjVyZW07YWxp'@; put 'Z24tc2VsZjpzdGFydDtwYWRkaW5nLXRvcDouMDVyZW07aGVpZ2h0Oi45cmVtfS5hbGVydC1pdGVte2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7bWluLWhlaWdodDouOXJlbTttYXJnaW4tYm90dG9tOi4zcmVtfS5hbGVydC1pdGVtOmxhc3QtY2hpbGR7bWFy'@; put 'Z2luLWJvdHRvbTowfS5hbGVydC1pdGVtc3tmbGV4OjEgMSBhdXRvO2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO3BhZGRpbmc6LjVyZW0gLjU1cmVtO2Rpc3BsYXk6ZmxleH0uYWxlcnQtaXRlbT5zcGFuLC5hbGVydC10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO2ZsZXgt'@; put 'c2hyaW5rOjE7ZmxleC1iYXNpczo5OCU7bWF4LXdpZHRoOjk4JTttYXJnaW4tcmlnaHQ6LjZyZW07dGV4dC1hbGlnbjpsZWZ0fS5hbGVydHtmb250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDouOXJlbTtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5n'@; put 'OmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aWR0aDphdXRvO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWFsZXJ0LWJvcmRlcnJhZGl1cywgLjE1cmVtKTttYXJnaW4tdG9wOi4zcmVtO2JhY2tncm91bmQ6I2UzZjVmYzti'@; put 'YWNrZ3JvdW5kOnZhcigtLWNsci1hbGVydC1pbmZvLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDU2N2E7Ym9yZGVyLWNvbG9yOnZh'@; put 'cigtLWNsci1hbGVydC1pbmZvLWJvcmRlci1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0IC5hbGVydC1pY29ue2NvbG9yOiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8taWNvbi1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0IC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24t'@; put 'dG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmFsZXJ0LWFjdGlvbiwu'@; put 'YWxlcnQgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29s'@; put 'b3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUu'@; put 'YnRuOmZvY3VzLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKX0u'@; put 'YWxlcnQgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNGYwMDcwIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3Is'@; put 'ICM0ZjAwNzApIGluc2V0fS5hbGVydCAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydCAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydCAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQg'@; put 'LmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQgLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwg'@; put 'IzY2NjY2Nik7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5LCAxKX0uYWxlcnQgLmNsb3NlIGNkcy1pY29uLC5hbGVydCAuY2xvc2UgY2xyLWljb257ZmlsbDojNjY2O2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1j'@; put 'b2xvciwgIzY2NjY2Nil9LmFsZXJ0IC5jbG9zZTpmb2N1cywuYWxlcnQgLmNsb3NlOmhvdmVyLC5hbGVydCAuY2xvc2U6YWN0aXZle2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgIzRmMDA3MCk7b3BhY2l0eToxO29wYWNp'@; put 'dHk6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtaW5mb3tiYWNrZ3JvdW5kOiNlM2Y1ZmM7YmFja2dyb3VuZDp2YXIoLS1jbHItYWxlcnQtaW5mby1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1j'@; put 'bHItYWxlcnQtaW5mby1mb250LWNvbG9yLCAjNjY2NjY2KTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojMDA1NjdhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1ib3JkZXItY29sb3IsICMwMDU2N2EpfS5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1pY29ue2Nv'@; put 'bG9yOiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8taWNvbi1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24t'@; put 'Y29sb3IsICM2NjY2NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24sLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjoj'@; put 'NjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigt'@; put 'LWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZl'@; put 'LC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6IzRmMDA3MDtib3JkZXIt'@; put 'Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCl9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVt'@; put 'ICM0ZjAwNzAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCkgaW5zZXR9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9u'@; put 'OmhvdmVyLC5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmFj'@; put 'dGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydC5hbGVydC1pbmZvIC5jbG9zZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IsICM2NjY2NjYp'@; put 'O29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlIGNkcy1pY29uLC5hbGVydC5hbGVydC1pbmZvIC5jbG9zZSBjbHItaWNvbntmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItYWxlcnQtaW5m'@; put 'by1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlOmhvdmVyLC5hbGVydC5hbGVydC1pbmZvIC5jbG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1j'@; put 'bG9zZS1pY29uLWhvdmVyLWNvbG9yLCAjNGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1zdWNjZXNze2JhY2tncm91bmQ6I2RmZjBkMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hbGVy'@; put 'dC1zdWNjZXNzLWJnLWNvbG9yLCAjZGZmMGQwKTtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMzMDZiMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNj'@; put 'ZXNzLWJvcmRlci1jb2xvciwgIzMwNmIwMCl9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWljb257Y29sb3I6IzMwNmIwMDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1pY29uLWNvbG9yLCAjMzA2YjAwKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9ucyAuZHJv'@; put 'cGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9'@; put 'LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQt'@; put 'YWN0aW9uLmJ0biwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9u'@; put 'LmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LXN1'@; put 'Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYw'@; put 'MDcwKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzRmMDA3MCBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1j'@; put 'bHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKSBpbnNldH0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFj'@; put 'dGlvbjphY3RpdmUsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVy'@; put 'dC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApO2NvbG9yOiM0ZjAwNzB9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nik7b3BhY2l0eToxO29wYWNp'@; put 'dHk6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlIGNsci1pY29ue2ZpbGw6IzY2NjtmaWxsOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWNs'@; put 'b3NlLWljb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZTpmb2N1cywuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2U6aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmFjdGl2ZXtjb2xvcjojNGYwMDcwO2NvbG9yOnZhcigtLWNsci1hbGVydC1z'@; put 'dWNjZXNzLWNsb3NlLWljb24taG92ZXItY29sb3IsICM0ZjAwNzApO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmd7YmFja2dyb3VuZDojZmZmNGM3O2JhY2tncm91bmQ6dmFy'@; put 'KC0tY2xyLWFsZXJ0LXdhcm5pbmctYmctY29sb3IsICNmZmY0YzcpO2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvciwgIzMzMzMzMyk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2FkNzYwMDtib3JkZXItY29sb3I6dmFyKC0tY2xy'@; put 'LWFsZXJ0LXdhcm5pbmctYm9yZGVyLWNvbG9yLCAjYWQ3NjAwKX0uYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtaWNvbntjb2xvcjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWljb24tY29sb3IsICM0NTQ1NDUpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1h'@; put 'Y3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9y'@; put 'LCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC13YXJu'@; put 'aW5nIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC13YXJuaW5nIC5h'@; put 'bGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxl'@; put 'cnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjAwNzA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUt'@; put 'Y29sb3IsICM0ZjAwNzApfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNGYwMDcwIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0g'@; put 'MCAwIHZhcigtLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApIGluc2V0fS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpob3ZlciwuYWxlcnQuYWxlcnQtd2Fybmlu'@; put 'ZyAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFy'@; put 'KC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2V7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KTtvcGFj'@; put 'aXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2UgY2xyLWljb257ZmlsbDojNjY2O2ZpbGw6dmFyKC0tY2xyLWFsZXJ0'@; put 'LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZTpob3ZlciwuYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2U6YWN0aXZle2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0t'@; put 'Y2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgIzRmMDA3MCk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6I2ZlZGRkNztiYWNr'@; put 'Z3JvdW5kOnZhcigtLWNsci1hbGVydC1kYW5nZXItYmctY29sb3IsICNmZWRkZDcpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yLCAjNjY2NjY2KTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojOTkxNzAwO2JvcmRlci1jb2xvcjp2'@; put 'YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWJvcmRlci1jb2xvciwgIzk5MTcwMCl9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtaWNvbntjb2xvcjojOTkxNzAwO2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItaWNvbi1jb2xvciwgIzk5MTcwMCl9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxl'@; put 'cnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29s'@; put 'b3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbiwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWRhbmdl'@; put 'ciAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQt'@; put 'YWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0'@; put 'LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6IzRmMDA3MDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYw'@; put 'MDcwKX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM0ZjAwNzAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xy'@; put 'LWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKSBpbnNldH0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbjph'@; put 'Y3RpdmUsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXIt'@; put 'YWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nik7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xy'@; put 'LWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlIGNkcy1pY29uLC5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlIGNsci1pY29ue2ZpbGw6IzY2NjtmaWxsOnZhcigtLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvciwg'@; put 'IzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2U6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2U6aG92ZXIsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2U6YWN0aXZle2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhv'@; put 'dmVyLWNvbG9yLCAjNGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0IC5hbGVydC1pdGVtIC5jbHItaWNvbntoZWlnaHQ6LjlyZW07d2lkdGg6LjlyZW07bWFyZ2luLXJpZ2h0Oi4zcmVtfS5h'@; put 'bGVydCAuYWxlcnQtaXRlbSAuY2xyLWljb24rLmFsZXJ0LXRleHR7cGFkZGluZy1sZWZ0OjB9LmFsZXJ0IC5hbGVydC1pdGVtIC5jbHItaWNvbisuYWxlcnQtdGV4dDpiZWZvcmV7Y29udGVudDpub25lfS5hbGVydCAuYWxlcnQtYWN0aW9uc3tmbGV4OjAgMCBhdXRvO3doaXRlLXNwYWNlOm5v'@; put 'd3JhcH0uYWxlcnQgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0Oi0uMXJlbX0uYWxlcnQgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duLWl0ZW17Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tdGV4dC1jb2xvciwgIzY2NjY2Nik7Zm9u'@; put 'dC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9LmFsZXJ0IC5hbGVydC1hY3Rpb246bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjZyZW19LmFsZXJ0IC5hbGVydC1hY3Rpb24sLmFsZXJ0IC5kcm9wZG93bi10b2dnbGV7dGV4dC1kZWNv'@; put 'cmF0aW9uOnVuZGVybGluZX0uYWxlcnQgLmFsZXJ0LWFjdGlvbiBidXR0b24uZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKXtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQg'@; put 'LmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bil7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjB9LmFsZXJ0IC5jbG9zZXt3aWR0aDoxLjJyZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MS44cmVtO2ZsZXg6MCAwIDEuNHJlbTtvcmRlcjoxMDA7cGFkZGluZy1yaWdo'@; put 'dDouMnJlbX0uYWxlcnQgLmNsb3NlIGNkcy1pY29uLC5hbGVydCAuY2xvc2UgY2xyLWljb257bWFyZ2luLXRvcDotLjE1cmVtO2hlaWdodDoxLjE1cmVtO3dpZHRoOjEuMTVyZW19LmFsZXJ0IC5jbG9zZX4uYWxlcnQtaXRlbT4uYWxlcnQtYWN0aW9uc3twYWRkaW5nLXJpZ2h0Oi42cmVtfS5h'@; put 'bGVydCAuY2xvc2V+LmFsZXJ0LWl0ZW0+LmFsZXJ0LWFjdGlvbnM+LmFsZXJ0LWFjdGlvbjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDouNnJlbX0uYWxlcnQtYXBwLWxldmVse21hcmdpbjowO2JvcmRlci1yYWRpdXM6MDtvdmVyZmxvdy15OmF1dG87YmFja2dyb3VuZDojMDA3MmEzO2JhY2tn'@; put 'cm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWJnLWNvbG9yLCAjMDA3MmEzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOjB9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9y'@; put 'OnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRl'@; put 'KTtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIo'@; put 'LS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0'@; put 'LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2'@; put 'ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1h'@; put 'bGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICNmZmYgaW5zZXQ7Ym94LXNoYWRv'@; put 'dzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKSBpbnNldH0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwg'@; put 'LmFsZXJ0LWFjdGlvbjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxl'@; put 'cnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSk7Y29sb3I6I2ZmZn0uYWxlcnQtYXBwLWxldmVsIC5jbG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eTouODtvcGFjaXR5OnZhcigtLWNs'@; put 'ci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHksIC44KX0uYWxlcnQtYXBwLWxldmVsIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5jbG9zZSBjbHItaWNvbntmaWxsOiNmZmY7ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwg'@; put 'd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmFjdGl2ZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCB3'@; put 'aGl0ZSk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZve2JhY2tncm91bmQ6IzAwNzJhMztiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1iZy1j'@; put 'b2xvciwgIzAwNzJhMyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9udC1jb2xvciwgd2hpdGUpO2JvcmRlcjowfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5m'@; put 'by1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xv'@; put 'cjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtj'@; put 'b2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6I2ZmZjti'@; put 'b3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFs'@; put 'ZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVy'@; put 'dC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5h'@; put 'bGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9u'@; put 'LWFjdGl2ZS1jb2xvciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9u'@; put 'OmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29s'@; put 'b3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2V7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwgd2hp'@; put 'dGUpO29wYWNpdHk6Ljg7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlIGNsci1pY29ue2ZpbGw6'@; put 'I2ZmZjtmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQt'@; put 'aW5mbyAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0u'@; put 'YWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlcntiYWNrZ3JvdW5kOiNjMjFkMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1iZy1jb2xvciwgI2MyMWQwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yLCB3aGl0'@; put 'ZSk7Ym9yZGVyOjB9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbnMgLmRy'@; put 'b3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCB3aGl0'@; put 'ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0'@; put 'LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwg'@; put 'd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmFj'@; put 'dGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xl'@; put 'LmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1s'@; put 'ZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSkgaW5zZXR9LmFs'@; put 'ZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwu'@; put 'YWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFs'@; put 'ZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSk7Y29sb3I6I2ZmZn0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2V7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eTou'@; put 'ODtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tb3BhY2l0eSwgLjgpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2UgY2xyLWljb257ZmlsbDojZmZmO2Zp'@; put 'bGw6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1k'@; put 'YW5nZXIgLmNsb3NlOmFjdGl2ZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHks'@; put 'IDEpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZ3tiYWNrZ3JvdW5kOiNjMjU0MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYmctY29sb3IsICNjMjU0MDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWZvbnQtY29s'@; put 'b3IsIHdoaXRlKTtib3JkZXI6MH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQt'@; put 'YWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlv'@; put 'bi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xv'@; put 'ciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2Fy'@; put 'bmluZy1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2Fybmlu'@; put 'ZyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0'@; put 'LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0'@; put 'aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICNmZmYgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1h'@; put 'Y3RpdmUtY29sb3IsIHdoaXRlKSBpbnNldH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0'@; put 'LWFjdGlvbjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10'@; put 'b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSk7Y29sb3I6I2ZmZn0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3Nle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJu'@; put 'aW5nLWNsb3NlLWljb24tY29sb3IsIHdoaXRlKTtvcGFjaXR5Oi44O29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eSwgLjgpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5h'@; put 'bGVydC13YXJuaW5nIC5jbG9zZSBjbHItaWNvbntmaWxsOiNmZmY7ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13'@; put 'YXJuaW5nIC5jbG9zZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmFjdGl2ZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0t'@; put 'Y2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNze2JhY2tncm91bmQ6IzNjODUwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1iZy1jb2xvciwgIzNjODUwMCk7Y29sb3I6'@; put 'I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvciwgd2hpdGUpO2JvcmRlcjowfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1pY29uLWNvbG9y'@; put 'LCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZm'@; put 'O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2Zm'@; put 'Zjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXIt'@; put 'Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0'@; put 'LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5k'@; put 'cm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3'@; put 'aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAg'@; put 'LjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0'@; put 'aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpo'@; put 'b3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAu'@; put 'Y2xvc2V7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpO29wYWNpdHk6Ljg7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5h'@; put 'bGVydC1zdWNjZXNzIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlIGNsci1pY29ue2ZpbGw6I2ZmZjtmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVy'@; put 'dC1zdWNjZXNzIC5jbG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWlj'@; put 'b24taG92ZXItY29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtc3twYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouM3Jl'@; put 'bX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVte2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6MS4ycmVtfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bnttYXJnaW46MH0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtPnNw'@; put 'YW4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtdGV4dHtmbGV4OjAgMSAxMDAlfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWljb24td3JhcHBlcnttYXJnaW4tdG9wOi4xNXJlbX0uYWxlcnQtYXBwLWxldmVsIC5jbG9zZXtoZWlnaHQ6MS44cmVtO292ZXJmbG93OmhpZGRlbn0uYWxlcnQtYXBw'@; put 'LWxldmVsIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5jbG9zZSBjbHItaWNvbnttYXJnaW4tdG9wOi0uMjVyZW19LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZXt0ZXh0LWRlY29yYXRpb246bm9uZX0uYWxl'@; put 'cnQtc217Zm9udC1zaXplOi41NXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6LjhyZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVtc3twYWRkaW5nOi4xNXJlbSAuMjVyZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVte3BhZGRpbmctdG9wOi4wNXJlbTttYXJnaW4tYm90dG9tOi4y'@; put 'cmVtfS5hbGVydC1zbSAuYWxlcnQtaXRlbTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uYWxlcnQtc20gLmFsZXJ0LWljb24td3JhcHBlcntwYWRkaW5nLXRvcDowO2hlaWdodDouOHJlbX0uYWxlcnQtc20gLmFsZXJ0LWljb257bWFyZ2luLWxlZnQ6LS4ycmVtO21hcmdpbi10b3A6LS4y'@; put 'cmVtfS5hbGVydC1zbSAuYWxlcnQtaXRlbT5zcGFuLC5hbGVydC1zbSAuYWxlcnQtdGV4dHttYXJnaW4tcmlnaHQ6LjNyZW19LmFsZXJ0LXNtIC5jbG9zZXtwYWRkaW5nLXJpZ2h0OjA7ZmxleDowIDAgMS4ycmVtO2hlaWdodDoxLjJyZW07bGluZS1oZWlnaHQ6MS4ycmVtfS5hbGVydC1zbSAu'@; put 'Y2xvc2UgY2RzLWljb24sLmFsZXJ0LXNtIC5jbG9zZSBjbHItaWNvbnttYXJnaW4tdG9wOi0uMjVyZW07bWFyZ2luLXJpZ2h0Oi0uMDVyZW07aGVpZ2h0OjFyZW07d2lkdGg6MXJlbTtsaW5lLWhlaWdodDoxLjA1cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpey5hbGVy'@; put 'dCAuYWxlcnQtaXRlbXtmbGV4LXdyYXA6d3JhcH0uYWxlcnQgLmFsZXJ0LXRleHR7bWFyZ2luLXJpZ2h0OjA7bWF4LXdpZHRoOjkwJTt3aWR0aDo5MCU7ZmxleC1iYXNpczo5MCV9LmFsZXJ0IC5hbGVydC1hY3Rpb25ze2ZsZXg6MSAwIDEwMCU7cGFkZGluZy10b3A6LjE1cmVtO3BhZGRpbmct'@; put 'bGVmdDoxLjJyZW19LmFsZXJ0cy1wYWdlcnttYXJnaW4tdG9wOi4xNXJlbX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb25ze21hcmdpbi1sZWZ0OjIuMjVyZW19fS5hbGVydC1oaWRkZW57ZGlzcGxheTpub25lfS5jYXJkIC5hbGVydHttYXJnaW46LjNyZW0gMH0ubW9kYWwgLmFsZXJ0'@; put 'Ky5tb2RhbC1oZWFkZXIsLm1vZGFsIC5hbGVydCsubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxle21hcmdpbi10b3A6LjZyZW19LmFsZXJ0cy5hbGVydC1pbmZve2JhY2tncm91bmQ6IzAwNTY3YTtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1wYWdlci1iZy1jb2xvciwgIzAw'@; put 'NTY3YSl9LmFsZXJ0cy5hbGVydC1kYW5nZXJ7YmFja2dyb3VuZDojOTkxNzAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItcGFnZXItYmctY29sb3IsICM5OTE3MDApfS5hbGVydHMuYWxlcnQtd2FybmluZ3tiYWNrZ3JvdW5kOiM4ZjVhMDA7YmFja2dyb3VuZDp2YXIo'@; put 'LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctcGFnZXItYmctY29sb3IsICM4ZjVhMDApfS5hbGVydHMuYWxlcnQtc3VjY2Vzc3tiYWNrZ3JvdW5kOiMyNTUyMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy05MDAsICMyNTUyMDApfS5hbGVydHMtcGFnZXJ7Y29sb3I6I2ZmZjtj'@; put 'b2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXBhZ2VyLXRleHQtY29sb3IsIHdoaXRlKTtmb250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtmbG9hdDpsZWZ0O21pbi1oZWlnaHQ6MS44cmVtO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjcuMnJlbX0uYWxlcnQtaW5mbyAuYWxl'@; put 'cnRzLXBhZ2Vye2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtd2FybmluZyAuYWxlcnRzLXBhZ2Vye2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWZvbnQtY29s'@; put 'b3IsIHdoaXRlKX0uYWxlcnQtZGFuZ2VyIC5hbGVydHMtcGFnZXJ7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0cy1wYWdlcntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1h'@; put 'cHAtYWxlcnQtc3VjY2Vzcy1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0cy1wYWdlci1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzow'@; put 'O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXBhZ2VyLXRleHQtY29sb3IsIHdoaXRlKTtjdXJzb3I6cG9pbnRlcn1idXR0b24uYWxlcnRzLXBhZ2VyLWJ1dHRvbntjdXJz'@; put 'b3I6cG9pbnRlcn0uYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjZHMtaWNvbiwuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvciwgd2hpdGUpfS5hbGVydC1pbmZvIC5hbGVydHMtcGFnZXItYnV0dG9u'@; put 'IGNkcy1pY29uLC5hbGVydC1pbmZvIC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtd2FybmluZyAuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjZHMtaWNvbiwu'@; put 'YWxlcnQtd2FybmluZyAuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWRhbmdlciAuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjZHMtaWNvbiwuYWxlcnQt'@; put 'ZGFuZ2VyIC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydC1zdWNjZXNzIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC1zdWNjZXNz'@; put 'IC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnRzLXBhZ2VyLWNvbnRyb2x7ZGlzcGxheTpmbGV4O21hcmdpbi10b3A6LjNyZW07d2hpdGUtc3BhY2U6'@; put 'bm93cmFwfS5hbGVydHMtcGFnZS1kb3due21hcmdpbi1sZWZ0OjEuMnJlbTt3aWR0aDozMy4zMyV9LmFsZXJ0cy1wYWdlLXVwe21hcmdpbi1yaWdodDoxLjJyZW07d2lkdGg6MzMuMzMlfS5hbGVydHMtcGFnZXItdGV4dHt3aWR0aDozMy4zMyV9OnJvb3R7LS1jbHItY2FyZC1iZy1jb2xvcjp2'@; put 'YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1jYXJkLWRpdmlkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMzAwKTstLWNsci1jYXJkLXRpdGxlLWNvbG9yOnZhcigtLWNsci1oNC1jb2xvcik7LS1jbHItY2FyZC10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDQt'@; put 'Zm9udC13ZWlnaHQpOy0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpOy0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItY2FyZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5l'@; put 'dXRyYWwtMzAwKTstLWNsci1jYXJkLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLWNvbG9yKTstLWNsci1jYXJkLWNsaWNrYWJsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWNhcmQtY2xpY2thYmxlLWJveC1zaGFkb3ctY29s'@; put 'b3I6dmFyKC0tY2xyLWNhcmQtY2xpY2thYmxlLWJvcmRlci1jb2xvcil9LmNhcmR7Ym94LXNoYWRvdzowIC4xNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMTVyZW0gMCAwIHZhcigtLWNsci1jYXJkLWJveC1zaGFkb3ctY29sb3IpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRp'@; put 'dXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItY2FyZC1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZGVkZWRlO2JvcmRlci1jb2xvcjp2'@; put 'YXIoLS1jbHItY2FyZC1ib3JkZXItY29sb3IsICNkZWRlZGUpfS5jYXJkLmNsaWNrYWJsZTpob3Zlcntib3gtc2hhZG93OjAgLjE1cmVtICMxNzliZDM7Ym94LXNoYWRvdzowIC4xNXJlbSAwIDAgdmFyKC0tY2xyLWNhcmQtY2xpY2thYmxlLWJveC1zaGFkb3ctY29sb3IpO2JvcmRlci13aWR0'@; put 'aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiMxNzliZDM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jYXJkLWNsaWNrYWJsZS1ib3JkZXItY29sb3IsICMxNzliZDMpO2N1cnNv'@; put 'cjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0uMXJlbSk7dHJhbnNpdGlvbjpib3JkZXIgLjJzIGVhc2UsdHJhbnNmb3JtIC4ycyBlYXNlfS5jYXJkLWJsb2NrIC5jYXJkLWRpdmlkZXIsLmNhcmQgLmNhcmQtdGl0bGUsLmNhcmQgLmNhcmQtdGV4'@; put 'dCwuY2FyZCAuY2FyZC1tZWRpYS1ibG9jaywuY2FyZCAubGlzdCwuY2FyZCAubGlzdC11bnN0eWxlZHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNnJlbX0uY2FyZC1ibG9jayAuY2FyZC1kaXZpZGVyOmxhc3QtY2hpbGQsLmNhcmQgLmNhcmQtdGl0bGU6bGFzdC1jaGlsZCwuY2FyZCAu'@; put 'Y2FyZC10ZXh0Omxhc3QtY2hpbGQsLmNhcmQgLmNhcmQtbWVkaWEtYmxvY2s6bGFzdC1jaGlsZCwuY2FyZCAubGlzdDpsYXN0LWNoaWxkLC5jYXJkIC5saXN0LXVuc3R5bGVkOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jYXJkLmNhcmQtaW1nPmltZywuY2FyZD4uY2FyZC1pbWc6Zmly'@; put 'c3QtY2hpbGQ6bGFzdC1jaGlsZD5pbWcsLmNhcmQtaW1nPmltZ3tkaXNwbGF5OmJsb2NrO2hlaWdodDphdXRvO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xv'@; put 'cjp2YXIoLS1jbHItY2FyZC1iZy1jb2xvciwgd2hpdGUpO3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoxLjJyZW19LmNhcmQgLmJ0bi1saW5re21pbi13aWR0aDowO3BhZGRpbmc6MH0uY2FyZC5jbGlja2FibGV7Y29sb3I6aW5oZXJpdH0uY2FyZD4ubGlzdCwuY2FyZD4ubGlzdC11bnN0eWxlZHtw'@; put 'YWRkaW5nOi42cmVtIC45cmVtfS5jYXJkIC5saXN0LWdyb3Vwe3BhZGRpbmctbGVmdDowO21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9LmNhcmQgLmxpc3QtZ3JvdXAtaXRlbXtwYWRkaW5nOi42cmVtIC45cmVtO2ZvbnQtc2l6ZTouN3JlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7'@; put 'YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY2FyZC1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVy'@; put 'LWJvdHRvbS1jb2xvcjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLWNvbG9yLCAjZGVkZWRlKX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNhcmQgLmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUt'@; put 'YmxvY2s7bWFyZ2luLXRvcDotLjZyZW19fS5jYXJkLWhlYWRlciwuY2FyZC1ibG9jaywuY2FyZC1mb290ZXJ7cGFkZGluZzouNnJlbSAuOXJlbX0uY2FyZC1oZWFkZXIsLmNhcmQtdGl0bGV7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItY2FyZC10aXRsZS1jb2xvciwgYmxhY2spO2ZvbnQt'@; put 'd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItY2FyZC10aXRsZS1mb250LXdlaWdodCwgMjAwKTtmb250LXNpemU6LjlyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsfWgxLmNhcmQtaGVhZGVyLGgxLmNhcmQtdGl0bGUsaDIuY2FyZC1oZWFkZXIsaDIuY2FyZC10aXRsZSxoMy5jYXJk'@; put 'LWhlYWRlcixoMy5jYXJkLXRpdGxlLGg0LmNhcmQtaGVhZGVyLGg0LmNhcmQtdGl0bGUsaDUuY2FyZC1oZWFkZXIsaDUuY2FyZC10aXRsZSxoNi5jYXJkLWhlYWRlcixoNi5jYXJkLXRpdGxle21hcmdpbi10b3A6MH0uY2FyZC10ZXh0e2ZvbnQtc2l6ZTouN3JlbX0uY2FyZC1pbWc6Zmlyc3Qt'@; put 'Y2hpbGQ+aW1ne2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtcmlnaHQt'@; put 'cmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNhcmQtaW1nOmxhc3QtY2hpbGQ+aW1ne2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRl'@; put 'ci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNhcmQuY2FyZC1pbWc+aW1nLC5jYXJkPi5jYXJkLWltZzpmaXJzdC1jaGlsZDps'@; put 'YXN0LWNoaWxkPmltZ3tib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNhcmQtYmxvY2sgLmJ0biwuY2FyZC1ibG9jayAuYnRuLmJ0bi1saW5rLC5jYXJkLWJsb2NrIC5jYXJkLWxpbmssLmNhcmQtZm9vdGVy'@; put 'IC5idG4sLmNhcmQtZm9vdGVyIC5idG4uYnRuLWxpbmssLmNhcmQtZm9vdGVyIC5jYXJkLWxpbmt7bWFyZ2luOjAgLjZyZW0gMCAwfS5jYXJkLWJsb2NrIC5idG4tZ3JvdXAgLmJ0biwuY2FyZC1mb290ZXIgLmJ0bi1ncm91cCAuYnRue21hcmdpbjowfS5jYXJkLWhlYWRlciwuY2FyZC1ibG9j'@; put 'a3tib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6I2RlZGVkZTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigt'@; put 'LWNsci1jYXJkLWJvcmRlci1jb2xvciwgI2RlZGVkZSl9LmNhcmQtaGVhZGVyOmxhc3QtY2hpbGQsLmNhcmQtYmxvY2s6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmV9LmNhcmQtZGl2aWRlcntkaXNwbGF5OmJsb2NrO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0'@; put 'b20td2lkdGg6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWNhcmQtZGl2aWRlci1jb2xvciwgI2RlZGVkZSl9LmNhcmQt'@; put 'YmxvY2sgLmNhcmQtZGl2aWRlcnttYXJnaW4tbGVmdDotLjlyZW07bWFyZ2luLXJpZ2h0Oi0uOXJlbTt3aWR0aDphdXRvfS5jYXJkLWhlYWRlcisuY2FyZC1kaXZpZGVyLC5jYXJkLWJsb2NrKy5jYXJkLWRpdmlkZXJ7ZGlzcGxheTpub25lfS5jYXJkLW1lZGlhLWJsb2Nre2Rpc3BsYXk6Zmxl'@; put 'eH0uY2FyZC1tZWRpYS1ibG9jayAuY2FyZC1tZWRpYS1pbWFnZXtkaXNwbGF5OmlubGluZS1ibG9jaztmbGV4OjAgMCBhdXRvO2hlaWdodDozcmVtO3dpZHRoOjNyZW07bWF4LWhlaWdodDozcmVtO21heC13aWR0aDozcmVtfS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLWRlc2NyaXB0'@; put 'aW9ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjAgMCAwIC42cmVtfS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLXRpdGxlLC5jYXJkLW1lZGlhLWJsb2NrIHNwYW4sLmNhcmQtbWVkaWEtYmxvY2sgLmNhcmQtbWVkaWEtdGV4dHtkaXNwbGF5OmlubGlu'@; put 'ZS1ibG9ja30uY2FyZC1tZWRpYS1ibG9jay53cmFwe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2FyZC1tZWRpYS1ibG9jay53cmFwIC5jYXJkLW1lZGlhLWRlc2NyaXB0aW9ue21hcmdpbjouM3JlbSAwIDB9LmNhcmQtYmxvY2s+Lmxpc3QsLmNhcmQtYmxvY2s+Lmxpc3QtdW5zdHlsZWR7cGFk'@; put 'ZGluZzowfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NTc2cHgpey5jYXJkLWNvbHVtbnN7Y29sdW1uLWNvdW50OjM7Y29sdW1uLWdhcDouNnJlbTticmVhay1pbnNpZGU6YXZvaWQ7Y29sdW1uLWZpbGw6YmFsYW5jZTstd2Via2l0LXBlcnNwZWN0aXZlOjF9LmNhcmQtY29sdW1ucy5j'@; put 'YXJkLWNvbHVtbnMtMntjb2x1bW4tY291bnQ6Mn0uY2FyZC1jb2x1bW5zLmNhcmQtY29sdW1ucy00e2NvbHVtbi1jb3VudDo0fS5jYXJkLWNvbHVtbnMgLmNhcmR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOi4zcmVtfS5jYXJkLWNvbHVtbnMgLmNsaWNrYWJsZXstd2Via2l0LWJhY2tm'@; put 'YWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNhcmQgLmNoZWNrYm94LmJ0biBsYWJlbCwuY2FyZCAuY2hlY2tib3gtaW5saW5lLmJ0biBsYWJlbCwuY2FyZCAucmFkaW8uYnRuIGxhYmVsLC5j'@; put 'YXJkIC5yYWRpby1pbmxpbmUuYnRuIGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfX06cm9vdHstLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1kcm9wZG93bi1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh'@; put 'bC0wKTstLWNsci1kcm9wZG93bi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1kcm9wZG93bi1kaXZpZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItZHJvcGRvd24tZGl2aWRlci1ib3JkZXItd2lkdGg6dmFyKC0tY2xy'@; put 'LWdsb2JhbC1ib3JkZXJ3aWR0aCk7LS1jbHItZHJvcGRvd24tY2hpbGQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItZHJvcGRvd24tYmctaG92ZXItY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ob3Zlci1jb2xvcik7LS1jbHItZHJvcGRvd24tc2VsZWN0'@; put 'aW9uLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci1kcm9wZG93bi1ib3gtc2hhZG93OnZhcigtLWNsci1wb3BvdmVyLWJveC1zaGFkb3ctY29sb3IpOy0tY2xyLWRyb3Bkb3duLXRleHQtY29sb3I6dmFyKC0tY2xyLXAxLWNvbG9yKTstLWNsci1kcm9wZG93'@; put 'bi1oZWFkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNsci1kcm9wZG93bi1oZWFkZXItZm9udC13ZWlnaHQ6NjAwOy0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1kcm9wZG93bi1pdGVtLWZvbnQtd2Vp'@; put 'Z2h0OnZhcigtLWNsci1wMS1mb250LXdlaWdodCl9LmRyb3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8sLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmlt'@; put 'YXJ5LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzcywuZHJvcGRvd24tbWVudSAu'@; put 'YnRuLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWxpbmssLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0sLmRyb3Bkb3duLW1lbnUg'@; put 'LmRyb3Bkb3duLWhlYWRlcntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWFsaWduOmxlZnR9LmRyb3Bkb3due3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2Rpc3BsYXk6aW5saW5lLWZs'@; put 'ZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjA7d2hpdGUtc3BhY2U6bm93cmFwO2N1cnNvcjpwb2ludGVyfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIGNsci1pY29uW3NoYXBlXj1jYXJldF0sLmRyb3Bkb3du'@; put 'IC5kcm9wZG93bi10b2dnbGUgY2xyLWljb25bc2hhcGVePWFuZ2xlXXtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjppbmhlcml0O2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTttaW4taGVpZ2h0Oi41cmVtO21pbi13aWR0aDouNXJlbX0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNv'@; put 'bltzaGFwZV49Y2FyZXRdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uW3NoYXBlXj1hbmdsZV17bWFyZ2luLXRvcDp1bnNldDtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjppbmhlcml0O2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTstLWNkcy1nbG9iYWwtc3BhY2UtNzouNXJl'@; put 'bX0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG57cGFkZGluZy1yaWdodDoxLjJyZW07dGV4dC1vdmVyZmxvdzp1bnNldH0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257dHJhbnNmb3JtOm5vbmV9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUuYnRuIGNkcy1p'@; put 'Y29uW3NoYXBlXj1jYXJldF0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUuYnRuIGNsci1pY29uW3NoYXBlXj1jYXJldF0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUuYnRuIGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUuYnRuIGNsci1pY29u'@; put 'W3NoYXBlXj1hbmdsZV17cmlnaHQ6LjZyZW19LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe3BhZGRpbmc6MCAuNnJlbSAwIDA7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYWN0aXZlLXRleHQtY29sb3IsIGJsYWNrKX0uZHJvcGRvd24gLmRyb3Bkb3du'@; put 'LXRvZ2dsZTpub3QoLmJ0bikgY2RzLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bikgY2xyLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bikgY2RzLWljb25bc2hhcGVePWFuZ2xlXSwuZHJv'@; put 'cGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bikgY2xyLWljb25bc2hhcGVePWFuZ2xlXXtyaWdodDowfS5kcm9wZG93biBidXR0b24uZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKXtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojMDAwO2NvbG9yOnZh'@; put 'cigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5kcm9wZG93bi1tZW51Pip7ZGlzcGxheTpibG9jazt3aGl0ZS1zcGFjZTpub3dyYXB9LmRyb3Bkb3duLW1lbnV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6'@; put 'MTAwJTtsZWZ0OjA7bWluLXdpZHRoOjZyZW07bWF4LXdpZHRoOjE4cmVtO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lk'@; put 'dGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFk'@; put 'aXVzLCAuMTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZHJvcGRvd24tYm94LXNoYWRvdywgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTttYXJnaW4tdG9wOi4xcmVtO3BhZGRpbmc6LjZyZW0g'@; put 'MDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwNTB9LmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlcntjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1oZWFkZXItY29sb3IsICMzMzMzMzMpO2ZvbnQtc2l6ZTouNnJlbTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWln'@; put 'aHQ6dmFyKC0tY2xyLWRyb3Bkb3duLWhlYWRlci1mb250LXdlaWdodCwgNjAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7cGFkZGluZzowIC42cmVtO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowfS5kcm9wZG93bi1tZW51IC5idG4sLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnksLmRy'@; put 'b3Bkb3duLW1lbnUgLmJ0bi1pbmZvLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nLC5kcm9w'@; put 'ZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZywuZHJvcGRvd24tbWVudSAu'@; put 'YnRuLXN1Y2Nlc3MsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVte2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWln'@; put 'aHQ6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46MDt3aWR0'@; put 'aDoxMDAlO3RleHQtdHJhbnNmb3JtOm5vbmV9LmRyb3Bkb3duLW1lbnUgLmJ0bjpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeTpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmhvdmVyLC5kcm9wZG93bi1t'@; put 'ZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlcjpob3ZlciwuZHJvcGRv'@; put 'd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzczpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnk6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzczpo'@; put 'b3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWxpbms6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWJnLWhvdmVyLWNvbG9yLCAjZThlOGU4KTtjb2xvcjoj'@; put 'NjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWNvbG9yLCAjNjY2NjY2KTt0ZXh0LWRlY29yYXRpb246bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmFjdGl2'@; put 'ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5hY3Rp'@; put 'dmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuYWN0aXZlLC5kcm9wZG93'@; put 'bi1tZW51IC5idG4td2FybmluZy5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIo'@; put 'LS1jbHItZHJvcGRvd24tc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5kcm9wZG93bi1tZW51IC5idG46YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmFjdGl2'@; put 'ZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6YWN0aXZlLC5kcm9wZG93'@; put 'bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzczphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6YWN0aXZlLC5kcm9wZG93bi1t'@; put 'ZW51IC5idG4tcHJpbWFyeTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluazphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06YWN0aXZle2Jv'@; put 'eC1zaGFkb3c6bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmU6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRs'@; put 'aW5lLXByaW1hcnk6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4t'@; put 'b3V0bGluZS1zdWNjZXNzOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmZvY3VzLC5kcm9wZG93'@; put 'bi1tZW51IC5idG4tbGluazpmb2N1cywuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpmb2N1c3t6LWluZGV4OmluaGVyaXR9LmRyb3Bkb3duLW1lbnUgLmJ0bi5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmRp'@; put 'c2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmRpc2FibGVkLC5kcm9wZG93bi1tZW51'@; put 'IC5idG4tb3V0bGluZTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkLC5kcm9w'@; put 'ZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdl'@; put 'ci5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4t'@; put 'ZGFuZ2VyLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnk6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmRpc2FibGVkLC5k'@; put 'cm9wZG93bi1tZW51IC5idG4td2FybmluZzpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLWxp'@; put 'bms6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06ZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5Oi40Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5k'@; put 'cm9wZG93bi1tZW51IC5idG4uZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bjpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRv'@; put 'd24tbWVudSAuYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmU6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bk'@; put 'b3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAu'@; put 'YnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGlu'@; put 'ZS1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlcjpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzczpkaXNh'@; put 'YmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5'@; put 'OmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZy5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4t'@; put 'c3VjY2VzczpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5k'@; put 'cm9wZG93bi1pdGVtOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kcm9wZG93bi1tZW51IC5idG4uZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG46ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmRpc2FibGVkOmFjdGl2ZSwuZHJv'@; put 'cGRvd24tbWVudSAuYnRuLXNlY29uZGFyeTpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS5kaXNhYmxlZDphY3Rp'@; put 'dmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51'@; put 'IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRu'@; put 'LW91dGxpbmUtd2FybmluZzpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlci5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlcjpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1'@; put 'Y2Nlc3MuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9w'@; put 'ZG93bi1tZW51IC5idG4tcHJpbWFyeS5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZzpkaXNhYmxlZDph'@; put 'Y3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rOmRpc2Fi'@; put 'bGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06ZGlzYWJsZWQ6YWN0aXZle2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuLmV4cGFuZGFibGUs'@; put 'LmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8uZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5leHBhbmRhYmxlLC5k'@; put 'cm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxp'@; put 'bmUtc3VjY2Vzcy5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNz'@; put 'LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZXhwYW5kYWJsZXttYXJnaW4tcmlnaHQ6MS4ycmVtO3BhZGRpbmctcmlnaHQ6LjZyZW19LmRyb3Bkb3duLW1lbnUgLmJ0bi5leHBhbmRhYmxlOmJlZm9y'@; put 'ZSwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8uZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGlu'@; put 'ZS1wcmltYXJ5LmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5l'@; put 'LWRhbmdlci5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZXhwYW5kYWJsZTpi'@; put 'ZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3du'@; put 'LWl0ZW0uZXhwYW5kYWJsZTpiZWZvcmV7Y29udGVudDoiIjtmbG9hdDpyaWdodDtoZWlnaHQ6LjZyZW07d2lkdGg6LjZyZW07dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMl'@; put 'M0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyMzlh'@; put 'OWE5YSUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0'@; put 'LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250'@; put 'YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tdG9wOi4zcmVtfS5kcm9wZG93bi1tZW51IC5idG4sLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW17cGFkZGluZzouMTVyZW0gMS4ycmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTc2cHgpey5kcm9wZG93bi1tZW51'@; put 'IC5idG4sLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW17cGFkZGluZzouM3JlbSAxLjJyZW19fS5kcm9wZG93bi1tZW51IGEuZHJvcGRvd24taXRlbXt0ZXh0LWRlY29yYXRpb246bm9uZX0uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tZGl2aWRlcntmb250LXNpemU6LjZyZW07Ym9yZGVy'@; put 'LWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItZHJvcGRvd24tZGl2aWRlci1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2'@; put 'YXIoLS1jbHItZHJvcGRvd24tZGl2aWRlci1jb2xvciwgI2U4ZThlOCk7bWFyZ2luOi4zcmVtIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5vcGVuPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC50YWJz'@; put 'LW92ZXJmbG93Lm9wZW4+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5vcGVuPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5vcGVuPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3du'@; put 'LW1lbnV7dmlzaWJpbGl0eTp2aXNpYmxlfS5idG4tZ3JvdXAtb3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLnRh'@; put 'YnMtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24uYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3RvcDoxMDAlO2JvdHRvbTphdXRvO21hcmdpbjouMXJlbSAwIDB9LmJ0bi1ncm91cC1v'@; put 'dmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnV7bGVmdDowO3JpZ2h0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tcmlnaHQ+'@; put 'LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwuYnRuLWdy'@; put 'b3VwLW92ZXJmbG93LnRvcC1yaWdodD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3At'@; put 'cmlnaHQ+LmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87Ym90dG9tOjEwMCU7bWFyZ2luOjAgMCAuMXJlbX0uYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3AtbGVmdD4uZHJv'@; put 'cGRvd24tbWVudXtsZWZ0OjA7cmlnaHQ6YXV0b30uYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1yaWdodD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnRvcC1yaWdodD4uZHJvcGRvd24tbWVudXtyaWdodDowO2xlZnQ6YXV0'@; put 'b30uYnRuLWdyb3VwLW92ZXJmbG93LmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC1ib3R0b20+LmRyb3Bk'@; put 'b3duLW1lbnUsLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudXtyaWdodDoxMDAlO2xlZnQ6YXV0bzttYXJnaW46MCAuMXJlbSAwIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVu'@; put 'dSwudGFicy1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7dG9wOjA7Ym90dG9tOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5sZWZ0LXRv'@; put 'cD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnV7Ym90dG9tOjA7dG9wOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRh'@; put 'YnMtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7bGVmdDoxMDAlO3Jp'@; put 'Z2h0OmF1dG87bWFyZ2luOjAgMCAwIC4xcmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51e3RvcDowO2Jv'@; put 'dHRvbTphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51e2JvdHRvbTowO3RvcDphdXRvfS5idG4tZ3JvdXAtb3ZlcmZs'@; put 'b3cgLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e2JvcmRlci1jb2xvcjojYjNiM2IzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tY2hpbGQtYm9y'@; put 'ZGVyLWNvbG9yLCAjYjNiM2IzKTtwb3NpdGlvbjphYnNvbHV0ZX0uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1t'@; put 'ZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93bi1t'@; put 'ZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXtpbnNldDowIDEwMCUgYXV0byBhdXRvO21hcmdpbi10b3A6LS45NXJlbTttYXJnaW4tcmlnaHQ6LS4ycmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLnJp'@; put 'Z2h0LXRvcD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93'@; put 'IC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93'@; put 'bi1tZW51e2luc2V0OjAgYXV0byBhdXRvIDEwMCU7bWFyZ2luLXRvcDotLjk1cmVtO21hcmdpbi1sZWZ0Oi0uMnJlbX0uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJvdHRv'@; put 'bT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVu'@; put 'dSwuZHJvcGRvd24gLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXtpbnNldDphdXRvIDEwMCUgMCBhdXRvO21hcmdpbi1ib3R0b206LS45NXJlbTtt'@; put 'YXJnaW4tcmlnaHQ6LS4ycmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwudGFicy1v'@; put 'dmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24t'@; put 'bWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e2luc2V0OmF1dG8gYXV0byAwIDEwMCU7bWFyZ2luLWJvdHRvbTotLjk1cmVtO21hcmdpbi1sZWZ0Oi0uMnJlbX06cm9vdHstLWNsci1iYWRnZS1iYWNrZ3Jv'@; put 'dW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItYmFkZ2UtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtNjAwKTstLWNsci1iYWRnZS1pbmZvLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1iYWRnZS1pbmZvLWNvbG9y'@; put 'OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJhZGdlLXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtODAwKTstLWNsci1iYWRnZS1zdWNjZXNzLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJhZGdlLXdhcm5pbmctYmctY29s'@; put 'b3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctMTAwMCk7LS1jbHItYmFkZ2Utd2FybmluZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1iYWRnZS1kYW5nZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci05MDApOy0tY2xyLWJhZGdlLWRhbmdlci1jb2xv'@; put 'cjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1iYWRnZS1ncmF5LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItYmFkZ2UtZ3JheS1jb2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xvci1saWdodCk7LS1jbHItYmFkZ2UtcHVycGxlLWJnLWNv'@; put 'bG9yOnZhcigtLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTUwMCk7LS1jbHItYmFkZ2UtcHVycGxlLWNvbG9yOnZhcigtLWNsci1iYWRnZS1mb250LWNvbG9yLWxpZ2h0KTstLWNsci1iYWRnZS1ibHVlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1iYWRn'@; put 'ZS1ibHVlLWNvbG9yOnZhcigtLWNsci1iYWRnZS1mb250LWNvbG9yLWxpZ2h0KTstLWNsci1iYWRnZS1vcmFuZ2UtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctMTAwMCk7LS1jbHItYmFkZ2Utb3JhbmdlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJh'@; put 'ZGdlLWxpZ2h0LWJsdWUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCl9LmJhZGdle2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO2FsaWduLWl0'@; put 'ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDouNzVyZW07YmFja2dyb3VuZDojOGM4YzhjO2hlaWdodDouNzVyZW07bGluZS1oZWlnaHQ6bm9ybWFsO2JvcmRlci1yYWRpdXM6LjVyZW07Zm9udC1zaXplOi41cmVtO3BhZGRpbmc6MCAuMnJlbTttYXJnaW4tcmln'@; put 'aHQ6LjNyZW07d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWZvbnQtY29sb3ItbGlnaHQsIHdoaXRlKX0uYmFkZ2U6dmlzaXRlZHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1mb250LWNvbG9yLWxp'@; put 'Z2h0LCB3aGl0ZSl9LmJhZGdlLmJhZGdlLWdyYXksLmJhZGdlLmJhZGdlLTF7YmFja2dyb3VuZDojOGM4YzhjO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWdyYXktYmctY29sb3IsICM4YzhjOGMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWdyYXktY29sb3IsIHdoaXRl'@; put 'KX0uYmFkZ2UuYmFkZ2UtcHVycGxlLC5iYWRnZS5iYWRnZS0ye2JhY2tncm91bmQ6IzllNTdiYztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1wdXJwbGUtYmctY29sb3IsICM5ZTU3YmMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLXB1cnBsZS1jb2xvciwgd2hpdGUpfS5i'@; put 'YWRnZS5iYWRnZS1ibHVlLC5iYWRnZS5iYWRnZS0ze2JhY2tncm91bmQ6IzAwNTY3YTtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1ibHVlLWJnLWNvbG9yLCAjMDA1NjdhKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ibHVlLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdl'@; put 'LW9yYW5nZSwuYmFkZ2UuYmFkZ2UtNHtiYWNrZ3JvdW5kOiM2MTMyMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2Utb3JhbmdlLWJnLWNvbG9yLCAjNjEzMjAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1vcmFuZ2UtY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2UtbGln'@; put 'aHQtYmx1ZSwuYmFkZ2UuYmFkZ2UtNXtiYWNrZ3JvdW5kOiMxNzliZDM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtbGlnaHQtYmx1ZS1iZy1jb2xvciwgIzE3OWJkMyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtbGlnaHQtYmx1ZS1jb2xvciwgd2hpdGUpfS5iYWRnZS5i'@; put 'YWRnZS1pbmZve2JhY2tncm91bmQ6IzAwNTY3YTtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1pbmZvLWJnLWNvbG9yLCAjMDA1NjdhKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1pbmZvLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLXN1Y2Nlc3N7YmFja2dyb3VuZDoj'@; put 'MzA2YjAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLXN1Y2Nlc3MtYmctY29sb3IsICMzMDZiMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLXN1Y2Nlc3MtY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2UtZGFuZ2Vye2JhY2tncm91bmQ6Izk5MTcwMDtiYWNrZ3JvdW5k'@; put 'OnZhcigtLWNsci1iYWRnZS1kYW5nZXItYmctY29sb3IsICM5OTE3MDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWRhbmdlci1jb2xvciwgd2hpdGUpfS5iYWRnZS5iYWRnZS13YXJuaW5ne2JhY2tncm91bmQ6IzYxMzIwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS13'@; put 'YXJuaW5nLWJnLWNvbG9yLCAjNjEzMjAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS13YXJuaW5nLWNvbG9yLCB3aGl0ZSl9XzotbXMtaW5wdXQtcGxhY2Vob2xkZXIgLmJhZGdlLDpyb290IC5iYWRnZXtwYWRkaW5nOi4xcmVtIC4xNXJlbSAwfUBzdXBwb3J0cyAoLW1zLWlt'@; put 'ZS1hbGlnbjphdXRvKXsuYmFkZ2V7cGFkZGluZzouMXJlbSAuMTVyZW0gMH19OnJvb3R7LS1jbHItbGFiZWwtZm9udC1jb2xvci1saWdodDp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1sYWJlbC1mb250LWNvbG9yLWRhcms6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAw'@; put 'MCk7LS1jbHItbGFiZWwtZGVmYXVsdC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1sYWJlbC1mb250LXNpemU6LjU1cmVtOy0tY2xyLWxhYmVsLWZvbnQtd2VpZ2h0OjQwMDstLWNsci1sYWJlbC1sZXR0ZXItc3BhY2luZzouMDNlbTstLWNsci1sYWJl'@; put 'bC1ib3JkZXItcmFkaXVzOi42cmVtOy0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItbGFiZWwtZ3JheS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWxhYmVsLWdyYXktY29sb3I6dmFyKC0tY2xy'@; put 'LWxhYmVsLWZvbnQtY29sb3ItbGlnaHQpOy0tY2xyLWxhYmVsLXB1cnBsZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDApOy0tY2xyLWxhYmVsLXB1cnBsZS1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1saWdodCk7LS1jbHItbGFiZWwtYmx1'@; put 'ZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItbGFiZWwtYmx1ZS1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1saWdodCk7LS1jbHItbGFiZWwtb3JhbmdlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTEwMDApOy0tY2xyLWxhYmVs'@; put 'LW9yYW5nZS1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1kYXJrKTstLWNsci1sYWJlbC1saWdodC1ibHVlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1sYWJlbC1saWdodC1ibHVlLWNvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9yLWRh'@; put 'cmspOy0tY2xyLWxhYmVsLWluZm8tYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MCk7LS1jbHItbGFiZWwtaW5mby1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1sYWJlbC1pbmZvLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9u'@; put 'LTgwMCk7LS1jbHItbGFiZWwtc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy01MCk7LS1jbHItbGFiZWwtc3VjY2Vzcy1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHItbGFiZWwtc3VjY2Vzcy1ib3JkZXItY29sb3I6dmFyKC0tY2xy'@; put 'LWNvbG9yLXN1Y2Nlc3MtODAwKTstLWNsci1sYWJlbC13YXJuaW5nLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTEwMCk7LS1jbHItbGFiZWwtd2FybmluZy1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItbGFiZWwtd2FybmluZy1ib3JkZXIt'@; put 'Y29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctODAwKTstLWNsci1sYWJlbC1kYW5nZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci0xMDApOy0tY2xyLWxhYmVsLWRhbmdlci1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1sYWJlbC1kYW5n'@; put 'ZXItYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKX0ubGFiZWwsYS5sYWJlbHtmb250LXNpemU6LjU1cmVtO2ZvbnQtc2l6ZTp2YXIoLS1jbHItbGFiZWwtZm9udC1zaXplLCAuNTVyZW0pO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbGFiZWwt'@; put 'Zm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6LjAzZW07bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLWxhYmVsLWxldHRlci1zcGFjaW5nLCAuMDNlbSk7bGluZS1oZWlnaHQ6LjZyZW07ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1z'@; put 'OmNlbnRlcjtwYWRkaW5nOjAgLjZyZW07Ym9yZGVyLXJhZGl1czouNnJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1sYWJlbC1ib3JkZXItcmFkaXVzLCAuNnJlbSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVs'@; put 'LWRlZmF1bHQtYm9yZGVyLWNvbG9yLCAjOGM4YzhjKTtoZWlnaHQ6MS4wNXJlbTttYXJnaW46MCAuM3JlbSAuMDVyZW0gMDt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1saWdodCwgYmxhY2spfS5sYWJlbDp2aXNpdGVkLGEu'@; put 'bGFiZWw6dmlzaXRlZHtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9yLWxpZ2h0LCBibGFjayl9LmxhYmVsOmZvY3VzLC5sYWJlbDpob3ZlciwubGFiZWw6YWN0aXZlLGEubGFiZWw6Zm9jdXMsYS5sYWJlbDpob3ZlcixhLmxhYmVsOmFjdGl2ZXt0ZXh0LWRlY29y'@; put 'YXRpb246bm9uZX0ubGFiZWwuY2xpY2thYmxlOmhvdmVyLC5sYWJlbC5jbGlja2FibGU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlOmhvdmVyLGEubGFiZWwuY2xpY2thYmxlOmFjdGl2ZXtiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtYmctaG92ZXItY29s'@; put 'b3IsICNlOGU4ZTgpfS5sYWJlbC5jbGlja2FibGU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM4YzhjOGMgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLWdyYXktYmctY29sb3IsICM4YzhjOGMpIGluc2V0'@; put 'O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1ncmF5LC5sYWJlbC5sYWJlbC0xLGEubGFiZWwubGFiZWwtZ3JheSxhLmxhYmVsLmxhYmVsLTF7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVs'@; put 'LWdyYXktYmctY29sb3IsICM4YzhjOGMpfS5sYWJlbC5jbGlja2FibGUubGFiZWwtZ3JheTpob3ZlciwubGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6aG92ZXIsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtZ3JheTphY3RpdmV7'@; put 'dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6YWN0aXZle2Jv'@; put 'eC1zaGFkb3c6MCAuMDVyZW0gIzhjOGM4YyBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItbGFiZWwtZ3JheS1iZy1jb2xvciwgIzhjOGM4YykgaW5zZXQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLjVweCl9LmxhYmVsLmxhYmVsLWdyYXk+LmJhZGdlLGEubGFiZWwubGFi'@; put 'ZWwtZ3JheT4uYmFkZ2V7YmFja2dyb3VuZDojOGM4YzhjO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWdyYXktYmctY29sb3IsICM4YzhjOGMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWdyYXktY29sb3IsIHdoaXRlKX0ubGFiZWwubGFiZWwtcHVycGxlLC5sYWJlbC5s'@; put 'YWJlbC0yLGEubGFiZWwubGFiZWwtcHVycGxlLGEubGFiZWwubGFiZWwtMntib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojOWU1N2JjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtcHVycGxlLWJnLWNvbG9yLCAjOWU1N2JjKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLXB1'@; put 'cnBsZTpob3ZlciwubGFiZWwuY2xpY2thYmxlLmxhYmVsLXB1cnBsZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtcHVycGxlOmhvdmVyLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLXB1cnBsZTphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZDojZThlOGU4O2Jh'@; put 'Y2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLXB1cnBsZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtcHVycGxlOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM5ZTU3YmMgaW5zZXQ7Ym94LXNo'@; put 'YWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLXB1cnBsZS1iZy1jb2xvciwgIzllNTdiYykgaW5zZXQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLjVweCl9LmxhYmVsLmxhYmVsLXB1cnBsZT4uYmFkZ2UsYS5sYWJlbC5sYWJlbC1wdXJwbGU+LmJhZGdle2JhY2tncm91bmQ6IzllNTdi'@; put 'YztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1wdXJwbGUtYmctY29sb3IsICM5ZTU3YmMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLXB1cnBsZS1jb2xvciwgd2hpdGUpfS5sYWJlbC5sYWJlbC1ibHVlLC5sYWJlbC5sYWJlbC0zLGEubGFiZWwubGFiZWwtYmx1ZSxhLmxh'@; put 'YmVsLmxhYmVsLTN7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzAwNTY3YTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLWJsdWUtYmctY29sb3IsICMwMDU2N2EpfS5sYWJlbC5jbGlja2FibGUubGFiZWwtYmx1ZTpob3ZlciwubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJs'@; put 'dWU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJsdWU6aG92ZXIsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtYmx1ZTphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yLCAj'@; put 'ZThlOGU4KX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJsdWU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJsdWU6YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzAwNTY3YSBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItbGFiZWwtYmx1ZS1iZy1jb2xv'@; put 'ciwgIzAwNTY3YSkgaW5zZXQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLjVweCl9LmxhYmVsLmxhYmVsLWJsdWU+LmJhZGdlLGEubGFiZWwubGFiZWwtYmx1ZT4uYmFkZ2V7YmFja2dyb3VuZDojMDA1NjdhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWJsdWUtYmctY29sb3IsICMwMDU2N2Ep'@; put 'O2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWJsdWUtY29sb3IsIHdoaXRlKX0ubGFiZWwubGFiZWwtb3JhbmdlLC5sYWJlbC5sYWJlbC00LGEubGFiZWwubGFiZWwtb3JhbmdlLGEubGFiZWwubGFiZWwtNHtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojNjEzMjAw'@; put 'O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtb3JhbmdlLWJnLWNvbG9yLCAjNjEzMjAwKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTpob3ZlciwubGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtb3JhbmdlOmhvdmVy'@; put 'LGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTphY3Rp'@; put 'dmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtb3JhbmdlOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM2MTMyMDAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLW9yYW5nZS1iZy1jb2xvciwgIzYxMzIwMCkgaW5zZXQ7dHJhbnNmb3JtOnRyYW5zbGF0'@; put 'ZVkoLjVweCl9LmxhYmVsLmxhYmVsLW9yYW5nZT4uYmFkZ2UsYS5sYWJlbC5sYWJlbC1vcmFuZ2U+LmJhZGdle2JhY2tncm91bmQ6IzYxMzIwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1vcmFuZ2UtYmctY29sb3IsICM2MTMyMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJh'@; put 'ZGdlLW9yYW5nZS1jb2xvciwgd2hpdGUpfS5sYWJlbC5sYWJlbC1saWdodC1ibHVlLC5sYWJlbC5sYWJlbC01LGEubGFiZWwubGFiZWwtbGlnaHQtYmx1ZSxhLmxhYmVsLmxhYmVsLTV7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzE3OWJkMztib3JkZXItY29sb3I6dmFyKC0t'@; put 'Y2xyLWxhYmVsLWxpZ2h0LWJsdWUtYmctY29sb3IsICMxNzliZDMpfS5sYWJlbC5jbGlja2FibGUubGFiZWwtbGlnaHQtYmx1ZTpob3ZlciwubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6aG92ZXIsYS5s'@; put 'YWJlbC5jbGlja2FibGUubGFiZWwtbGlnaHQtYmx1ZTphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6'@; put 'YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzE3OWJkMyBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItbGFiZWwtbGlnaHQtYmx1ZS1iZy1jb2xvciwgIzE3OWJkMykgaW5zZXQ7dHJhbnNm'@; put 'b3JtOnRyYW5zbGF0ZVkoLjVweCl9LmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWU+LmJhZGdlLGEubGFiZWwubGFiZWwtbGlnaHQtYmx1ZT4uYmFkZ2V7YmFja2dyb3VuZDojMTc5YmQzO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUtYmctY29sb3IsICMxNzliZDMpO2NvbG9y'@; put 'OiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUtY29sb3IsIHdoaXRlKX0ubGFiZWwubGFiZWwtaW5mbyxhLmxhYmVsLmxhYmVsLWluZm97YmFja2dyb3VuZDojZTNmNWZjO2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWluZm8tYmctY29sb3IsICNlM2Y1ZmMpO2NvbG9y'@; put 'OiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWluZm8tZm9udC1jb2xvciwgIzAwNTY3YSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzAwNTY3YTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLWluZm8tYm9yZGVyLWNvbG9yLCAjMDA1NjdhKX0ubGFiZWwubGFi'@; put 'ZWwtc3VjY2VzcyxhLmxhYmVsLmxhYmVsLXN1Y2Nlc3N7YmFja2dyb3VuZDojZGZmMGQwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLXN1Y2Nlc3MtYmctY29sb3IsICNkZmYwZDApO2NvbG9yOiMzMDZiMDA7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLXN1Y2Nlc3MtZm9udC1jb2xvciwgIzMw'@; put 'NmIwMCk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzMwNmIwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yLCAjMzA2YjAwKX0ubGFiZWwubGFiZWwtd2FybmluZyxhLmxhYmVsLmxhYmVsLXdhcm5pbmd7YmFja2dyb3VuZDojZmZm'@; put 'NGM3O2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLXdhcm5pbmctYmctY29sb3IsICNmZmY0YzcpO2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLXdhcm5pbmctZm9udC1jb2xvciwgIzMzMzMzMyk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2FkNzYwMDtib3Jk'@; put 'ZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLXdhcm5pbmctYm9yZGVyLWNvbG9yLCAjYWQ3NjAwKX0ubGFiZWwubGFiZWwtZGFuZ2VyLGEubGFiZWwubGFiZWwtZGFuZ2Vye2JhY2tncm91bmQ6I2ZlZGRkNztiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1kYW5nZXItYmctY29sb3IsICNmZWRk'@; put 'ZDcpO2NvbG9yOiM5OTE3MDA7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWRhbmdlci1mb250LWNvbG9yLCAjOTkxNzAwKTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojOTkxNzAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZGFuZ2VyLWJvcmRlci1jb2xvciwgIzk5MTcw'@; put 'MCl9LmxhYmVsPi5iYWRnZSxhLmxhYmVsPi5iYWRnZXttYXJnaW46MCAtLjQ1cmVtIDAgLjNyZW19QC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpey5sYWJlbCxhLmxhYmVse3ZlcnRpY2FsLWFsaWduOmJvdHRvbX19OnJvb3R7LS1jbHItbG9naW4tdGl0bGUtY29sb3I6dmFyKC0tY2xyLWgx'@; put 'LWNvbG9yKTstLWNsci1sb2dpbi10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDEtZm9udC13ZWlnaHQpOy0tY2xyLWxvZ2luLXRpdGxlLWZvbnQtZmFtaWx5OnZhcigtLWNsci1oMS1mb250LWZhbWlseSk7LS1jbHItbG9naW4tdHJhZGVtYXJrLWNvbG9yOnZhcigtLWNsci1oMi1jb2xv'@; put 'cik7LS1jbHItbG9naW4tdHJhZGVtYXJrLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMi1mb250LXdlaWdodCk7LS1jbHItbG9naW4tdHJhZGVtYXJrLWZvbnQtZmFtaWx5OnZhcigtLWNsci1oMi1mb250LWZhbWlseSk7LS1jbHItbG9naW4tc3VidGl0bGUtY29sb3I6dmFyKC0tY2xyLWgzLWNv'@; put 'bG9yKTstLWNsci1sb2dpbi1zdWJ0aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDMtZm9udC13ZWlnaHQpOy0tY2xyLWxvZ2luLXN1YnRpdGxlLWZvbnQtZmFtaWx5OnZhcigtLWNsci1oMy1mb250LWZhbWlseSk7LS1jbHItbG9naW4tYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xv'@; put 'YmFsLWFwcC1iYWNrZ3JvdW5kKTstLWNsci1sb2dpbi1iYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQyUzRnhtbCUyMHZlcnNpb24lM0QlMjIxLjAlMjIlMjBlbmNvZGluZyUzRCUyMnV0Zi04JTIyJTNGJTNFJTBEJTBBJTNDJTIxRE9DVFlQRSUyMHN2'@; put 'ZyUyMFBVQkxJQyUyMCUyMi0lMkYlMkZXM0MlMkYlMkZEVEQlMjBTVkclMjAxLjElMkYlMkZFTiUyMiUyMCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGR3JhcGhpY3MlMkZTVkclMkYxLjElMkZEVEQlMkZzdmcxMS5kdGQlMjIlM0UlMEQlMEElM0NzdmclMEQlMEElMjAlMjAlMjAlMjAl'@; put 'MjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwaWQlM0QlMjJuby1hc3BlY3QtcmF0aW8lMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHhtbG5z'@; put 'JTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHglM0QlMjIwcHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB5JTNEJTIyMHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwaGVpZ2h0JTNEJTIyMjA1NS41NXB4'@; put 'JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwd2lkdGglM0QlMjIxNDQwcHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMDU1LjU1JTIwMTQ0MCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWluWU1pbiUyMHNsaWNl'@; put 'JTIyJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZGVzYyUzRUxvZ2luJTIwSW1hZ2UlM0MlMkZkZXNjJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBzdHJva2Utd2lkdGglM0Ql'@; put 'MjIxJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MC4wMDAwMDAlMkMlMjAtNC4wMDAwMDAlMjklMjIlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTNFJTBEJTBBJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzRkFGQUZBJTIyJTIweCUzRCUyMjAlMjIlMjB5JTNEJTIyNCUyMiUzRSUzQyUyRnJlY3Ql'@; put 'M0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBw'@; put 'b2ludHMlM0QlMjIxMTA4LjQzJTIwMTQ0My42MyUyMDExMDkuMDglMjAxNDQzLjYzJTIwNDQzLjQ0JTIwNzc3Ljc0JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIy'@; put 'JTIzOTNEOENBJTIyJTIwb3BhY2l0eSUzRCUyMjAuNiUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBvdmVybGF5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDMzNC45MiUyMDQ0My40NCUyMDc3Ny43NCUyMDAuNzklMjAzMzQuNDklMjIlM0UlM0MlMkZwb2x5Z29uJTNF'@; put 'JTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIwLjc5JTIwMjExLjg4JTIwMC43OSUyMDMyOS42JTIwNTkuNjIlMjAyNzAuNzclMjIlM0UlM0MlMkZwb2x5'@; put 'Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxNjAuNjUlMjAxNjkuNzQlMjAwLjc5JTIwOS43MyUyMDAuNzklMjAyMTEuODglMjA5MC4yNyUy'@; put 'MDMwMS40NiUyMDU5LjYyJTIwMjcwLjc3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIyNTAzLjc3JTIwMTQ0My42'@; put 'MyUyMDY5Ny40NyUyMDE0NDMuNjMlMjA4MDMuNzQlMjAxMzM3LjM2JTIwNzA2LjkzJTIwMTI0MC40MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNF'@; put 'RSUyMiUyMHBvaW50cyUzRCUyMjE1OC4zMyUyMDY5MS4xNSUyMDAuNzklMjA4NDguNzIlMjAwLjc5JTIwMTQyNy40MyUyMDQ0Ny41MiUyMDk4MC43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3Bv'@; put 'bHlnb24lMjBmaWxsJTNEJTIyJTIzQ0VEREUwJTIyJTIwcG9pbnRzJTNEJTIyMjU3LjcxJTIwNTkxLjc1JTIwMC43OSUyMDMzNC40OSUyMDAuNzklMjA1MzMuNDIlMjAxNTguMzMlMjA2OTEuMTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBOUM5RDUlMjIlMjBwb2ludHMlM0QlMjIwLjc5JTIwNTMzLjQyJTIwMC43OSUyMDg0OC43MiUyMDE1OC4zMyUyMDY5MS4xNSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjgwNi40NiUyMDExNDAuODklMjA1NDYuOTQlMjA4ODEuMjglMjA0NDcuNTIlMjA5ODAuNyUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5'@; put 'Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4RkM0REYlMjIlMjBwb2ludHMlM0QlMjI0NDcuNTIlMjA5ODAuNyUyMDAuNzklMjAxNDI3LjQzJTIwMC43OSUyMDE0NDMuNjMlMjA1MDMu'@; put 'NzclMjAxNDQzLjYzJTIwNzA2LjkzJTIwMTI0MC40MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzcwQzBEQyUyMiUyMHBvaW50cyUzRCUyMjYwOC4yMyUy'@; put 'MDgxOS45OSUyMDU0Ni45NCUyMDg4MS4yOCUyMDgwNi40NiUyMDExNDAuODklMjA4NjcuNjQlMjAxMDc5LjclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5'@; put 'NkM3REYlMjIlMjBwb2ludHMlM0QlMjI0MjAuMDUlMjA0MjkuMzklMjAzMTkuMDElMjA1MzAuNDUlMjA2MDguMjMlMjA4MTkuOTklMjA3MDkuMyUyMDcxOC45MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY5QUZENCUyMiUyMHBvaW50cyUzRCUyMjcwOS4zJTIwNzE4LjkxJTIwNjA4LjIzJTIwODE5Ljk5JTIwODY3LjY0JTIwMTA3OS43JTIwOTY4Ljc0JTIwOTc4LjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4RUI1QkMlMjIlMjBwb2ludHMlM0QlMjI2MTkuNTklMjAyMjkuODIlMjAzOTMuNDIlMjAzLjEyJTIwMzI3LjI3JTIwMy4xMiUyMDE2MC42NSUyMDE2OS43NCUyMDQyMC4wNSUyMDQyOS4zOSUy'@; put 'MiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhFQjVCQyUyMiUyMHBvaW50cyUzRCUyMjMxOS4wMSUyMDUzMC40NSUyMDMxOS4wMSUyMDUzMC40NSUyMDkwLjI3'@; put 'JTIwMzAxLjQ2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0NCMEM3JTIyJTIwcG9pbnRzJTNEJTIyMTYwLjY1JTIwMTY5Ljc0JTIwNTkuNjIlMjAyNzAu'@; put 'NzclMjA5MC4yNyUyMDMwMS40NiUyMDMxOS4wMSUyMDUzMC40NSUyMDQyMC4wNSUyMDQyOS4zOSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzg0QzREMiUy'@; put 'MiUyMHBvaW50cyUzRCUyMjU5LjYyJTIwMjcwLjc3JTIwMC43OSUyMDMyOS42JTIwMC43OSUyMDMzNC40OSUyMDI1Ny43MSUyMDU5MS43NSUyMDMxOS4wMSUyMDUzMC40NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzdDQjBDNyUyMiUyMHBvaW50cyUzRCUyMjUzNy41NSUyMDMuMTIlMjAzOTMuNDIlMjAzLjEyJTIwNjE5LjU5JTIwMjI5LjgyJTIwNjkxLjc0JTIwMTU3LjY2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzODdEMURCJTIyJTIwcG9pbnRzJTNEJTIyODQ2LjI1JTIwMy4xMiUyMDUzNy41NSUyMDMuMTIlMjA2OTEuNzQlMjAxNTcuNjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2ludHMlM0QlMjI5MDkuODclMjAxNDQzLjYzJTIwODUwLjE5JTIwMTM4My44NyUyMDc5MC40MyUyMDE0NDMuNjMlMjIlM0UlM0MlMkZwb2x5Z29u'@; put 'JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIzMTkuMDElMjA1MzAuNDUlMjAyNTcuNzElMjA1OTEuNzUlMjA0NDMuNDQlMjA3NzcuNzQlMjA1NDYu'@; put 'OTQlMjA4ODEuMjglMjA2MDguMjMlMjA4MTkuOTklMjA4NjcuNjQlMjAxMDc5LjclMjA4NjcuNjQlMjAxMDc5LjclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIl'@; put 'MjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjI4NjcuNjQlMjAxMDc5LjclMjA4MDYuNDYlMjAxMTQwLjg5JTIwOTAzLjMxJTIwMTIzNy43OCUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMDY1LjU3JTIwMTA3NS41MiUyMDk2OC43NCUyMDk3OC42JTIwODY3LjY0JTIwMTA3OS43JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA4NjcuNjQlMjAxMDc5LjclMjA4NjcuNjQlMjAxMDc5LjclMjA5NjQuNDYlMjAxMTc2LjYzJTIy'@; put 'JTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMjMxLjE2JTIwMTQ0My42MyUyMDEw'@; put 'MTAuOTIlMjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTI0MC4wOCUyMDcwNy4yMiUyMDExNjcu'@; put 'OSUyMDc3OS40JTIwMTI2NC42OCUyMDg3Ni40JTIwMTMzNi44NyUyMDgwNC4yMiUyMDEyNDAuMDglMjA3MDcuMjElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIl'@; put 'MjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjI5ODAuODMlMjA0NDcuMzklMjA2OTEuNzQlMjAxNTcuNjYlMjA2MTkuNTklMjAyMjkuODIlMjA5MDguNjYlMjA1MTkuNTYlMjA5ODAuODMlMjA0NDcuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjI3MDkuMyUyMDcxOC45MSUyMDk2OC43NCUyMDk3OC42JTIwMTE2Ny45MSUyMDc3OS40JTIwOTA4LjY2JTIwNTE5LjU1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUw'@; put 'RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjlBRkQ0JTIyJTIwcG9pbnRzJTNEJTIyOTgwLjgzJTIwNDQ3LjM5JTIwOTA4LjY2JTIwNTE5LjU1JTIwMTE2Ny45MSUyMDc3OS40JTIwMTI0MC4wOCUy'@; put 'MDcwNy4yMSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjEwMzQuNTklMjAzLjEyJTIwODQ2LjI1JTIwMy4xMiUy'@; put 'MDY5MS43NCUyMDE1Ny42NiUyMDk4MC44MyUyMDQ0Ny4zOSUyMDEyMjkuNzUlMjAxOTguNDclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIl'@; put 'MjBwb2ludHMlM0QlMjIxMjQwLjA4JTIwNzA3LjIxJTIwMTMzNi44NyUyMDgwNC4yMiUyMDE1ODYuMDElMjA1NTUuMDglMjAxNDg5LjE0JTIwNDU4LjEyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUz'@; put 'Q3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzBDMERDJTIyJTIwcG9pbnRzJTNEJTIyMTIyOS43NSUyMDE5OC40NyUyMDk4MC44MyUyMDQ0Ny4zOSUyMDEyNDAuMDglMjA3MDcuMjElMjAxNDg5LjE0JTIwNDU4LjEyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTI5Mi4yMiUyMDEzMDIuMzglMjAxNDMzLjMyJTIwMTQ0My42MyUyMDE4MzAuNjElMjAxNDQzLjYzJTIwMTQ5MS4xOCUyMDExMDMuNDIlMjIlM0Ul'@; put 'M0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDk0OS43OCUyMDEyODQuMjclMjAxMTA5LjA4'@; put 'JTIwMTQ0My42MyUyMDExNTAuOTglMjAxNDQzLjYzJTIwMTE5MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3NUI4QzUlMjIlMjBw'@; put 'b2ludHMlM0QlMjIxMTUwLjk4JTIwMTQ0My42MyUyMDEyMzEuMTYlMjAxNDQzLjYzJTIwMTE5MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0Ql'@; put 'MjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMjkyLjIyJTIwMTMwMi4zOCUyMDExMTIuMDMlMjAxMTIyLjAyJTIwMTAxMC45MiUyMDEyMjMuMTMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzZFQTRCQyUyMiUyMHBvaW50cyUzRCUyMjExOTEuMDklMjAxNDAzLjUxJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxNDMzLjMyJTIwMTQ0My42MyUyMDEyOTIuMjIlMjAxMzAyLjM4JTIyJTNFJTNDJTJGcG9seWdvbiUz'@; put 'RSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBtdWx0aXBseSUzQiUyMiUyMHBv'@; put 'aW50cyUzRCUyMjEzODMuMyUyMDg1MC43NSUyMDEzMTEuMTIlMjA5MjIuOTQlMjAxNDkxLjE4JTIwMTEwMy40MiUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3Bv'@; put 'bHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTQ5MS4xOCUyMDExMDMuNDIlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2RUE0QkMlMjIlMjBwb2ludHMlM0QlMjIxNDkxLjE4JTIwMTEwMy40MiUyMDE4MzAuNjElMjAxNDQzLjYzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUz'@; put 'RSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjE4MTIuNjUlMjA3ODEuOTUlMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTM4My4z'@; put 'JTIwODUwLjc1JTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxNTYzLjM3JTIw'@; put 'MTAzMS4yMyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTAyMy45OSUyMDE4MTIuNjUlMjA3ODEuOTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTND'@; put 'cG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3OENBRDQlMjIlMjBwb2ludHMlM0QlMjIxNTYzLjM3JTIwMTAzMS4yMyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTAyMy45OSUyMDE4MTIuNjUlMjA3ODEuOTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNF'@; put 'JTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjI4MDMuNzQlMjAxMzM3LjM2JTIwODUwLjE5JTIwMTM4My44NyUyMDk0OS43OCUyMDEyODQuMjclMjA5MDMu'@; put 'MzElMjAxMjM3Ljc4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwcG9pbnRzJTNEJTIyMTA2NS41NyUyMDEwNzUuNTIlMjAxMTEyLjAz'@; put 'JTIwMTEyMi4wMiUyMDEzMTEuMTIlMjA5MjIuOTQlMjAxMjY0LjY5JTIwODc2LjQlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3N0I4RDklMjIlMjBwb2lu'@; put 'dHMlM0QlMjI2OTcuNDclMjAxNDQzLjYzJTIwNzkwLjQzJTIwMTQ0My42MyUyMDg1MC4xOSUyMDEzODMuODclMjA4MDMuNzQlMjAxMzM3LjM2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHln'@; put 'b24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NDkuNzglMjAxMjg0LjI3JTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM1REI1RDYlMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwOTAzLjMxJTIwMTIzNy43OCUyMDk0OS43OCUyMDEyODQuMjclMjAxMDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBv'@; put 'bHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODEwMzguMjQ3Mjk3JTJDJTIwMTE0OS4yNzU0MjklMjklMjByb3RhdGUl'@; put 'MjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTEwMzguMjQ3Mjk3JTJDJTIwLTExNDkuMjc1NDI5JTI5JTIwJTIyJTIweCUzRCUyMjk2Ni43NTIyOTclMjIlMjB5JTNEJTIyMTExNi40MTA0MyUyMiUyMHdpZHRoJTNEJTIyMTQyLjk5JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0Ul'@; put 'M0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM1N0E4RDAlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMDM4LjI0NzI5NyUyQyUyMDExNDkuMjc1NDI5JTI5JTIwcm90'@; put 'YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMDM4LjI0NzI5NyUyQyUyMC0xMTQ5LjI3NTQyOSUyOSUyMCUyMiUyMHglM0QlMjI5NjYuNzUyMjk3JTIyJTIweSUzRCUyMjExMTYuNDEwNDMlMjIlMjB3aWR0aCUzRCUyMjE0Mi45OSUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIy'@; put 'JTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDk2NC40'@; put 'NiUyMDExNzYuNjMlMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDAwMDAwJTIyJTIwb3BhY2l0eSUzRCUyMjAuNDIlMjIl'@; put 'MjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIlMjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEyNjQuNjklMjA4NzYuNCUyMDEzMTEuMTIl'@; put 'MjA5MjIuOTQlMjAxMzgzLjMlMjA4NTAuNzUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM1N0E4RDAlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0'@; put 'LjIyJTIwMTI2NC42OSUyMDg3Ni40JTIwMTMxMS4xMiUyMDkyMi45NCUyMDEzODMuMyUyMDg1MC43NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkzRDhD'@; put 'QSUyMiUyMG9wYWNpdHklM0QlMjIwLjYlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwb3ZlcmxheSUzQiUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMzgzLjMlMjA4NTAuNzUlMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTU4Ni4wMSUyMDU1NS4wOCUyMiUz'@; put 'RSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzVEQjVENiUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMzgzLjMlMjA4NTAuNzUlMjAxNjMyLjQ2'@; put 'JTIwNjAxLjU5JTIwMTU4Ni4wMSUyMDU1NS4wOCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDNFNiUyMiUyMHBvaW50cyUzRCUyMjIwNTYlMjAwLjEy'@; put 'JTIwMTY0NS40OSUyMDAuMTIlMjAxNjQ4LjQ5JTIwMy4xMiUyMDE5NDQuMDclMjAzLjEyJTIwMTc5Ni4yMiUyMDE1MC45OSUyMDE4OTMuMTIlMjAyNDcuOTclMjAyMDU0LjQ1JTIwODYuNjQlMjAyMDU0LjQ1JTIwMTc5LjYlMjAxOTM5LjU4JTIwMjk0LjQ3JTIwMjA1NiUyMDQxMSUyMiUzRSUz'@; put 'QyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzdBQjlEOSUyMiUyMHBvaW50cyUzRCUyMjE2NDguNDklMjAzLjEyJTIwMTc5Ni4yMiUyMDE1MC45OSUyMDE5NDQuMDclMjAz'@; put 'LjEyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjZBRUQ0JTIyJTIwcG9pbnRzJTNEJTIyMjA1NC40NSUyMDg2LjY0JTIwMTg5My4xMiUyMDI0Ny45NyUy'@; put 'MDE5MzkuNTglMjAyOTQuNDclMjAyMDU0LjQ1JTIwMTc5LjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxODg0'@; put 'LjgyJTIwNzA5Ljc4JTIwMjA1NC40NSUyMDg3OS41NyUyMDIwNTQuNDUlMjA1NDAuMTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBw'@; put 'b2ludHMlM0QlMjIxNDg5LjE0JTIwNDU4LjEyJTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMDEzNzEuMTMlMjAzMzkuOTklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIl'@; put 'MjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjIxNzk2LjIyJTIwMTUwLjk5JTIwMTY0OC40OSUyMDMuMTIlMjAxNDI1LjElMjAzLjEyJTIwMTMwMS45MSUyMDEyNi4zMSUyMDE1NjEuMyUyMDM4NS45NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE3OTguOTU0MDY2JTJDJTIwMzg4Ljc5ODc4MSUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTc5OC45NTQw'@; put 'NjYlMkMlMjAtMzg4Ljc5ODc4MSUyOSUyMCUyMiUyMHglM0QlMjIxNjMyLjgyNDA3JTIyJTIweSUzRCUyMjM1NS45MzM3ODElMjIlMjB3aWR0aCUzRCUyMjMzMi4yNiUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwcG9pbnRzJTNEJTIyMTU4Ni4wMSUyMDU1NS4wOCUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTU4Ni4wMSUyMDU1NS4wOCUyMiUzRSUzQyUyRnBvbHln'@; put 'b24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM0IzRUFFRSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE1NzMuNzExNTc3JTJDJTIwNDcwLjYyMDI2MyUyOSUyMHJvdGF0ZSUyOC00'@; put 'NS4wMDAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTU3My43MTE1NzclMkMlMjAtNDcwLjYyMDI2MyUyOSUyMCUyMiUyMHglM0QlMjIxNTIyLjY4MTU4JTIyJTIweSUzRCUyMjQwMi4wODUyNjMlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjEzNy4wNyUyMiUzRSUzQyUy'@; put 'RnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM0IzRUFFRSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE3NTguNjc2NzU4JTJDJTIwNjU1Ljc2NzEyMCUyOSUyMHJvdGF0ZSUy'@; put 'OC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTc1OC42NzY3NTglMkMlMjAtNjU1Ljc2NzEyMCUyOSUyMCUyMiUyMHglM0QlMjIxNzA3LjY0Njc2JTIyJTIweSUzRCUyMjUyOC4yOTIxMiUyMiUyMHdpZHRoJTNEJTIyMTAyLjA2JTIyJTIwaGVpZ2h0JTNEJTIyMjU0Ljk1JTIyJTNFJTND'@; put 'JTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwcG9pbnRzJTNEJTIyMTMwMS45MSUyMDEyNi4zMSUyMDExNzguODQlMjAzLjEyJTIwMTAzNC41OSUyMDMuMTIl'@; put 'MjAxMjI5Ljc1JTIwMTk4LjQ3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzODNDMEM4JTIyJTIwcG9pbnRzJTNEJTIyMTgxMi42NSUyMDc4MS45NSUyMDIw'@; put 'NTQuNDUlMjAxMDIzLjk5JTIwMjA1NC40NSUyMDg3OS41NyUyMDE4ODQuODIlMjA3MDkuNzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM3REM2REMlMjIlMjB0'@; put 'cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMzk1LjUxNjkwMSUyQyUyMDI5Mi4yMDY1MTklMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTEzOTUuNTE2OTAxJTJDJTIwLTI5Mi4yMDY1MTklMjklMjAlMjIlMjB4JTNEJTIyMTM0NC40OTE5JTIyJTIweSUzRCUy'@; put 'MjEwOC43MDE1MTklMjIlMjB3aWR0aCUzRCUyMjEwMi4wNSUyMiUyMGhlaWdodCUzRCUyMjM2Ny4wMSUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzY4QjhENSUyMiUy'@; put 'MHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE2NDUuMzEzNjE5JTJDJTIwNTQyLjI0OTc2MCUyOSUyMHJvdGF0ZSUyOC00NS4wMDAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTY0NS4zMTM2MTklMkMlMjAtNTQyLjI0OTc2MCUyOSUyMCUyMiUyMHglM0QlMjIxNTk0LjI4MzYyJTIyJTIweSUz'@; put 'RCUyMjUwOS4zODQ3NiUyMiUyMHdpZHRoJTNEJTIyMTAyLjA2JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUzQ2clMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgwLjAwMDAwMCUyQyUyMDMuMDAwMDAwJTI5JTIyJTIwc3Ryb2tlJTNEJTIyJTIzMDAwMDAwJTIyJTIwb3BhY2l0eSUzRCUyMjAuMTUlMjIlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk0wLjk1JTJDMC4xMiUyMEwwLjk1JTJDODQwLjEyJTIyJTIwaWQlM0QlMjJTaGFwZSUyMiUzRSUzQyUyRnBhdGglM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElM0MlMkZzdmclM0UpOy0tY2xyLWxvZ2luLWVycm9yLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWxvZ2luLWVycm9yLWJvcmRlci1yYWRpdXM6'@; put 'dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLWxvZ2luLXBhbmVsLWxpbmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItbG9naW4tcGFuZWwtbGluZS1vcGFjaXR5Oi4xfS5sb2dpbi13cmFwcGVye2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTti'@; put 'YWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQyUzRnhtbCUyMHZlcnNpb24lM0QlMjIxLjAlMjIlMjBlbmNvZGluZyUzRCUyMnV0Zi04JTIyJTNGJTNFJTBEJTBBJTNDJTIxRE9DVFlQRSUyMHN2ZyUyMFBVQkxJQyUyMCUyMi0lMkYlMkZXM0MlMkYlMkZE'@; put 'VEQlMjBTVkclMjAxLjElMkYlMkZFTiUyMiUyMCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGR3JhcGhpY3MlMkZTVkclMkYxLjElMkZEVEQlMkZzdmcxMS5kdGQlMjIlM0UlMEQlMEElM0NzdmclMEQlMEElMjAlMjAlMjAlMjAlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTBEJTBBJTIwJTIw'@; put 'JTIwJTIwJTIwaWQlM0QlMjJuby1hc3BlY3QtcmF0aW8lMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3Lncz'@; put 'Lm9yZyUyRjE5OTklMkZ4bGluayUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHglM0QlMjIwcHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB5JTNEJTIyMHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwaGVpZ2h0JTNEJTIyMjA1NS41NXB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwd2lkdGglM0Ql'@; put 'MjIxNDQwcHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMDU1LjU1JTIwMTQ0MCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWluWU1pbiUyMHNsaWNlJTIyJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTNDZGVzYyUzRUxvZ2luJTIwSW1hZ2UlM0MlMkZkZXNjJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxs'@; put 'LXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MC4wMDAwMDAlMkMlMjAtNC4wMDAwMDAlMjklMjIlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTND'@; put 'ZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzRkFGQUZBJTIyJTIweCUzRCUyMjAlMjIlMjB5JTNEJTIyNCUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBwb2ludHMlM0QlMjIxMTA4LjQzJTIwMTQ0My42MyUyMDEx'@; put 'MDkuMDglMjAxNDQzLjYzJTIwNDQzLjQ0JTIwNzc3Ljc0JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTNEOENBJTIyJTIwb3BhY2l0eSUzRCUyMjAuNiUy'@; put 'MiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBvdmVybGF5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDMzNC45MiUyMDQ0My40NCUyMDc3Ny43NCUyMDAuNzklMjAzMzQuNDklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIwLjc5JTIwMjExLjg4JTIwMC43OSUyMDMyOS42JTIwNTkuNjIlMjAyNzAuNzclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxNjAuNjUlMjAxNjkuNzQlMjAwLjc5JTIwOS43MyUyMDAuNzklMjAyMTEuODglMjA5MC4yNyUyMDMwMS40NiUyMDU5LjYyJTIwMjcwLjc3JTIyJTNFJTND'@; put 'JTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIyNTAzLjc3JTIwMTQ0My42MyUyMDY5Ny40NyUyMDE0NDMuNjMlMjA4MDMuNzQlMjAx'@; put 'MzM3LjM2JTIwNzA2LjkzJTIwMTI0MC40MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNFRSUyMiUyMHBvaW50cyUzRCUyMjE1OC4zMyUyMDY5MS4x'@; put 'NSUyMDAuNzklMjA4NDguNzIlMjAwLjc5JTIwMTQyNy40MyUyMDQ0Ny41MiUyMDk4MC43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0VEREUwJTIyJTIw'@; put 'cG9pbnRzJTNEJTIyMjU3LjcxJTIwNTkxLjc1JTIwMC43OSUyMDMzNC40OSUyMDAuNzklMjA1MzMuNDIlMjAxNTguMzMlMjA2OTEuMTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUy'@; put 'MGZpbGwlM0QlMjIlMjNBOUM5RDUlMjIlMjBwb2ludHMlM0QlMjIwLjc5JTIwNTMzLjQyJTIwMC43OSUyMDg0OC43MiUyMDE1OC4zMyUyMDY5MS4xNSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nw'@; put 'b2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjgwNi40NiUyMDExNDAuODklMjA1NDYuOTQlMjA4ODEuMjglMjA0NDcuNTIlMjA5ODAuNyUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4RkM0REYlMjIlMjBwb2ludHMlM0QlMjI0NDcuNTIlMjA5ODAuNyUyMDAuNzklMjAxNDI3LjQzJTIwMC43OSUyMDE0NDMuNjMlMjA1MDMuNzclMjAxNDQzLjYzJTIwNzA2LjkzJTIwMTI0MC40MyUy'@; put 'MiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzcwQzBEQyUyMiUyMHBvaW50cyUzRCUyMjYwOC4yMyUyMDgxOS45OSUyMDU0Ni45NCUyMDg4MS4yOCUyMDgwNi40'@; put 'NiUyMDExNDAuODklMjA4NjcuNjQlMjAxMDc5LjclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjI0MjAuMDUlMjA0'@; put 'MjkuMzklMjAzMTkuMDElMjA1MzAuNDUlMjA2MDguMjMlMjA4MTkuOTklMjA3MDkuMyUyMDcxOC45MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY5QUZE'@; put 'NCUyMiUyMHBvaW50cyUzRCUyMjcwOS4zJTIwNzE4LjkxJTIwNjA4LjIzJTIwODE5Ljk5JTIwODY3LjY0JTIwMTA3OS43JTIwOTY4Ljc0JTIwOTc4LjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTND'@; put 'cG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4RUI1QkMlMjIlMjBwb2ludHMlM0QlMjI2MTkuNTklMjAyMjkuODIlMjAzOTMuNDIlMjAzLjEyJTIwMzI3LjI3JTIwMy4xMiUyMDE2MC42NSUyMDE2OS43NCUyMDQyMC4wNSUyMDQyOS4zOSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhFQjVCQyUyMiUyMHBvaW50cyUzRCUyMjMxOS4wMSUyMDUzMC40NSUyMDMxOS4wMSUyMDUzMC40NSUyMDkwLjI3JTIwMzAxLjQ2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUw'@; put 'RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0NCMEM3JTIyJTIwcG9pbnRzJTNEJTIyMTYwLjY1JTIwMTY5Ljc0JTIwNTkuNjIlMjAyNzAuNzclMjA5MC4yNyUyMDMwMS40NiUyMDMxOS4wMSUyMDUz'@; put 'MC40NSUyMDQyMC4wNSUyMDQyOS4zOSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzg0QzREMiUyMiUyMHBvaW50cyUzRCUyMjU5LjYyJTIwMjcwLjc3JTIw'@; put 'MC43OSUyMDMyOS42JTIwMC43OSUyMDMzNC40OSUyMDI1Ny43MSUyMDU5MS43NSUyMDMxOS4wMSUyMDUzMC40NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUy'@; put 'MzdDQjBDNyUyMiUyMHBvaW50cyUzRCUyMjUzNy41NSUyMDMuMTIlMjAzOTMuNDIlMjAzLjEyJTIwNjE5LjU5JTIwMjI5LjgyJTIwNjkxLjc0JTIwMTU3LjY2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzODdEMURCJTIyJTIwcG9pbnRzJTNEJTIyODQ2LjI1JTIwMy4xMiUyMDUzNy41NSUyMDMuMTIlMjA2OTEuNzQlMjAxNTcuNjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2ludHMlM0QlMjI5MDkuODclMjAxNDQzLjYzJTIwODUwLjE5JTIwMTM4My44NyUyMDc5MC40MyUyMDE0NDMuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIzMTkuMDElMjA1MzAuNDUlMjAyNTcuNzElMjA1OTEuNzUlMjA0NDMuNDQlMjA3NzcuNzQlMjA1NDYuOTQlMjA4ODEuMjglMjA2MDguMjMlMjA4MTkuOTklMjA4'@; put 'NjcuNjQlMjAxMDc5LjclMjA4NjcuNjQlMjAxMDc5LjclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjI4NjcuNjQl'@; put 'MjAxMDc5LjclMjA4MDYuNDYlMjAxMTQwLjg5JTIwOTAzLjMxJTIwMTIzNy43OCUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIl'@; put 'MjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMDY1LjU3JTIwMTA3NS41MiUyMDk2OC43NCUyMDk3OC42JTIwODY3LjY0JTIwMTA3OS43JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA4NjcuNjQlMjAxMDc5LjclMjA4NjcuNjQlMjAxMDc5LjclMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMjMxLjE2JTIwMTQ0My42MyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9seWdv'@; put 'biUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTI0MC4wOCUyMDcwNy4yMiUyMDExNjcuOSUyMDc3OS40JTIwMTI2NC42OCUyMDg3Ni40JTIwMTMz'@; put 'Ni44NyUyMDgwNC4yMiUyMDEyNDAuMDglMjA3MDcuMjElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjI5ODAuODMl'@; put 'MjA0NDcuMzklMjA2OTEuNzQlMjAxNTcuNjYlMjA2MTkuNTklMjAyMjkuODIlMjA5MDguNjYlMjA1MTkuNTYlMjA5ODAuODMlMjA0NDcuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdv'@; put 'biUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjI3MDkuMyUyMDcxOC45MSUyMDk2OC43NCUyMDk3OC42JTIwMTE2Ny45MSUyMDc3OS40JTIwOTA4LjY2JTIwNTE5LjU1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjlBRkQ0JTIyJTIwcG9pbnRzJTNEJTIyOTgwLjgzJTIwNDQ3LjM5JTIwOTA4LjY2JTIwNTE5LjU1JTIwMTE2Ny45MSUyMDc3OS40JTIwMTI0MC4wOCUyMDcwNy4yMSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQl'@; put 'MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjEwMzQuNTklMjAzLjEyJTIwODQ2LjI1JTIwMy4xMiUyMDY5MS43NCUyMDE1Ny42NiUyMDk4MC44MyUyMDQ0Ny4z'@; put 'OSUyMDEyMjkuNzUlMjAxOTguNDclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxMjQwLjA4JTIwNzA3LjIxJTIw'@; put 'MTMzNi44NyUyMDgwNC4yMiUyMDE1ODYuMDElMjA1NTUuMDglMjAxNDg5LjE0JTIwNDU4LjEyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzBDMERDJTIy'@; put 'JTIwcG9pbnRzJTNEJTIyMTIyOS43NSUyMDE5OC40NyUyMDk4MC44MyUyMDQ0Ny4zOSUyMDEyNDAuMDglMjA3MDcuMjElMjAxNDg5LjE0JTIwNDU4LjEyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUz'@; put 'Q3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTI5Mi4yMiUyMDEzMDIuMzglMjAxNDMzLjMyJTIwMTQ0My42MyUyMDE4MzAuNjElMjAxNDQzLjYzJTIwMTQ5MS4xOCUyMDExMDMuNDIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDk0OS43OCUyMDEyODQuMjclMjAxMTA5LjA4JTIwMTQ0My42MyUyMDExNTAuOTglMjAxNDQzLjYzJTIw'@; put 'MTE5MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3NUI4QzUlMjIlMjBwb2ludHMlM0QlMjIxMTUwLjk4JTIwMTQ0My42MyUyMDEy'@; put 'MzEuMTYlMjAxNDQzLjYzJTIwMTE5MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMjky'@; put 'LjIyJTIwMTMwMi4zOCUyMDExMTIuMDMlMjAxMTIyLjAyJTIwMTAxMC45MiUyMDEyMjMuMTMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmls'@; put 'bCUzRCUyMiUyMzZFQTRCQyUyMiUyMHBvaW50cyUzRCUyMjExOTEuMDklMjAxNDAzLjUxJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxNDMzLjMyJTIwMTQ0My42MyUyMDEyOTIuMjIlMjAxMzAyLjM4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBtdWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUyMjEzODMuMyUyMDg1MC43NSUyMDEzMTEu'@; put 'MTIlMjA5MjIuOTQlMjAxNDkxLjE4JTIwMTEwMy40MiUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIw'@; put 'cG9pbnRzJTNEJTIyMTQ5MS4xOCUyMDExMDMuNDIlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2RUE0QkMlMjIlMjBwb2ludHMlM0QlMjIxNDkxLjE4JTIwMTEwMy40MiUyMDE4MzAuNjElMjAxNDQzLjYzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjE4MTIuNjUlMjA3ODEuOTUlMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTM4My4zJTIwODUwLjc1JTIwMTU2My4zNyUyMDEwMzEuMjMlMjIl'@; put 'M0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxNTYzLjM3JTIwMTAzMS4yMyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMjA1'@; put 'NC40NSUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTAyMy45OSUyMDE4MTIuNjUlMjA3ODEuOTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3OENBRDQlMjIl'@; put 'MjBwb2ludHMlM0QlMjIxNTYzLjM3JTIwMTAzMS4yMyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTAyMy45OSUyMDE4MTIuNjUlMjA3ODEuOTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjI4MDMuNzQlMjAxMzM3LjM2JTIwODUwLjE5JTIwMTM4My44NyUyMDk0OS43OCUyMDEyODQuMjclMjA5MDMuMzElMjAxMjM3Ljc4JTIyJTNFJTNDJTJGcG9seWdvbiUz'@; put 'RSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwcG9pbnRzJTNEJTIyMTA2NS41NyUyMDEwNzUuNTIlMjAxMTEyLjAzJTIwMTEyMi4wMiUyMDEzMTEuMTIlMjA5MjIuOTQlMjAx'@; put 'MjY0LjY5JTIwODc2LjQlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3N0I4RDklMjIlMjBwb2ludHMlM0QlMjI2OTcuNDclMjAxNDQzLjYzJTIwNzkwLjQz'@; put 'JTIwMTQ0My42MyUyMDg1MC4xOSUyMDEzODMuODclMjA4MDMuNzQlMjAxMzM3LjM2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9p'@; put 'bnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NDkuNzglMjAxMjg0LjI3JTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9s'@; put 'eWdvbiUyMGZpbGwlM0QlMjIlMjM1REI1RDYlMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwOTAzLjMxJTIwMTIzNy43OCUyMDk0OS43OCUyMDEyODQuMjclMjAxMDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODEwMzguMjQ3Mjk3JTJDJTIwMTE0OS4yNzU0MjklMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTEw'@; put 'MzguMjQ3Mjk3JTJDJTIwLTExNDkuMjc1NDI5JTI5JTIwJTIyJTIweCUzRCUyMjk2Ni43NTIyOTclMjIlMjB5JTNEJTIyMTExNi40MTA0MyUyMiUyMHdpZHRoJTNEJTIyMTQyLjk5JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM1N0E4RDAlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMDM4LjI0NzI5NyUyQyUyMDExNDkuMjc1NDI5JTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUy'@; put 'OC0xMDM4LjI0NzI5NyUyQyUyMC0xMTQ5LjI3NTQyOSUyOSUyMCUyMiUyMHglM0QlMjI5NjYuNzUyMjk3JTIyJTIweSUzRCUyMjExMTYuNDEwNDMlMjIlMjB3aWR0aCUzRCUyMjE0Mi45OSUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDk2NC40NiUyMDExNzYuNjMlMjA5NjQuNDYlMjAxMTc2LjYzJTIy'@; put 'JTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDAwMDAwJTIyJTIwb3BhY2l0eSUzRCUyMjAuNDIlMjIlMjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUy'@; put 'MDEwMTAuOTIlMjAxMjIzLjEzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIl'@; put 'MjIlMjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEyNjQuNjklMjA4NzYuNCUyMDEzMTEuMTIlMjA5MjIuOTQlMjAxMzgzLjMlMjA4NTAuNzUlMjIlM0Ul'@; put 'M0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM1N0E4RDAlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTI2NC42OSUyMDg3Ni40JTIwMTMxMS4xMiUy'@; put 'MDkyMi45NCUyMDEzODMuMyUyMDg1MC43NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkzRDhDQSUyMiUyMG9wYWNpdHklM0QlMjIwLjYlMjIlMjBzdHls'@; put 'ZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwb3ZlcmxheSUzQiUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMzgzLjMlMjA4NTAuNzUlMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTU4Ni4wMSUyMDU1NS4wOCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzVEQjVENiUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMzgzLjMlMjA4NTAuNzUlMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTU4Ni4wMSUyMDU1NS4wOCUyMiUz'@; put 'RSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDNFNiUyMiUyMHBvaW50cyUzRCUyMjIwNTYlMjAwLjEyJTIwMTY0NS40OSUyMDAuMTIlMjAxNjQ4LjQ5JTIwMy4x'@; put 'MiUyMDE5NDQuMDclMjAzLjEyJTIwMTc5Ni4yMiUyMDE1MC45OSUyMDE4OTMuMTIlMjAyNDcuOTclMjAyMDU0LjQ1JTIwODYuNjQlMjAyMDU0LjQ1JTIwMTc5LjYlMjAxOTM5LjU4JTIwMjk0LjQ3JTIwMjA1NiUyMDQxMSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzdBQjlEOSUyMiUyMHBvaW50cyUzRCUyMjE2NDguNDklMjAzLjEyJTIwMTc5Ni4yMiUyMDE1MC45OSUyMDE5NDQuMDclMjAzLjEyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjZBRUQ0JTIyJTIwcG9pbnRzJTNEJTIyMjA1NC40NSUyMDg2LjY0JTIwMTg5My4xMiUyMDI0Ny45NyUyMDE5MzkuNTglMjAyOTQuNDclMjAyMDU0LjQ1JTIwMTc5'@; put 'LjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxODg0LjgyJTIwNzA5Ljc4JTIwMjA1NC40NSUyMDg3OS41NyUy'@; put 'MDIwNTQuNDUlMjA1NDAuMTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjIxNDg5LjE0JTIwNDU4LjEyJTIwMTQ4'@; put 'OS4xNCUyMDQ1OC4xMiUyMDEzNzEuMTMlMjAzMzkuOTklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjIxNzk2LjIy'@; put 'JTIwMTUwLjk5JTIwMTY0OC40OSUyMDMuMTIlMjAxNDI1LjElMjAzLjEyJTIwMTMwMS45MSUyMDEyNi4zMSUyMDE1NjEuMyUyMDM4NS45NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIw'@; put 'ZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE3OTguOTU0MDY2JTJDJTIwMzg4Ljc5ODc4MSUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTc5OC45NTQwNjYlMkMlMjAtMzg4Ljc5ODc4MSUyOSUyMCUyMiUyMHgl'@; put 'M0QlMjIxNjMyLjgyNDA3JTIyJTIweSUzRCUyMjM1NS45MzM3ODElMjIlMjB3aWR0aCUzRCUyMjMzMi4yNiUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHln'@; put 'b24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwcG9pbnRzJTNEJTIyMTU4Ni4wMSUyMDU1NS4wOCUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTU4Ni4wMSUyMDU1NS4wOCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM0IzRUFFRSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE1NzMuNzExNTc3JTJDJTIwNDcwLjYyMDI2MyUyOSUyMHJvdGF0ZSUyOC00NS4wMDAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTU3My43'@; put 'MTE1NzclMkMlMjAtNDcwLjYyMDI2MyUyOSUyMCUyMiUyMHglM0QlMjIxNTIyLjY4MTU4JTIyJTIweSUzRCUyMjQwMi4wODUyNjMlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjEzNy4wNyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM0IzRUFFRSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE3NTguNjc2NzU4JTJDJTIwNjU1Ljc2NzEyMCUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTc1'@; put 'OC42NzY3NTglMkMlMjAtNjU1Ljc2NzEyMCUyOSUyMCUyMiUyMHglM0QlMjIxNzA3LjY0Njc2JTIyJTIweSUzRCUyMjUyOC4yOTIxMiUyMiUyMHdpZHRoJTNEJTIyMTAyLjA2JTIyJTIwaGVpZ2h0JTNEJTIyMjU0Ljk1JTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwcG9pbnRzJTNEJTIyMTMwMS45MSUyMDEyNi4zMSUyMDExNzguODQlMjAzLjEyJTIwMTAzNC41OSUyMDMuMTIlMjAxMjI5Ljc1JTIwMTk4LjQ3JTIyJTNFJTNDJTJGcG9s'@; put 'eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzODNDMEM4JTIyJTIwcG9pbnRzJTNEJTIyMTgxMi42NSUyMDc4MS45NSUyMDIwNTQuNDUlMjAxMDIzLjk5JTIwMjA1NC40NSUyMDg3OS41'@; put 'NyUyMDE4ODQuODIlMjA3MDkuNzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM3REM2REMlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMzk1LjUx'@; put 'NjkwMSUyQyUyMDI5Mi4yMDY1MTklMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTEzOTUuNTE2OTAxJTJDJTIwLTI5Mi4yMDY1MTklMjklMjAlMjIlMjB4JTNEJTIyMTM0NC40OTE5JTIyJTIweSUzRCUyMjEwOC43MDE1MTklMjIlMjB3aWR0aCUzRCUyMjEwMi4w'@; put 'NSUyMiUyMGhlaWdodCUzRCUyMjM2Ny4wMSUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzY4QjhENSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODE2NDUu'@; put 'MzEzNjE5JTJDJTIwNTQyLjI0OTc2MCUyOSUyMHJvdGF0ZSUyOC00NS4wMDAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTY0NS4zMTM2MTklMkMlMjAtNTQyLjI0OTc2MCUyOSUyMCUyMiUyMHglM0QlMjIxNTk0LjI4MzYyJTIyJTIweSUzRCUyMjUwOS4zODQ3NiUyMiUyMHdpZHRoJTNEJTIyMTAy'@; put 'LjA2JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjB0cmFuc2Zvcm0lM0QlMjJ0cmFu'@; put 'c2xhdGUlMjgwLjAwMDAwMCUyQyUyMDMuMDAwMDAwJTI5JTIyJTIwc3Ryb2tlJTNEJTIyJTIzMDAwMDAwJTIyJTIwb3BhY2l0eSUzRCUyMjAuMTUlMjIlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk0wLjk1'@; put 'JTJDMC4xMiUyMEwwLjk1JTJDODQwLjEyJTIyJTIwaWQlM0QlMjJTaGFwZSUyMiUzRSUzQyUyRnBhdGglM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUy'@; put 'MCUyMCUyMCUzQyUyRmclM0UlMEQlMEElM0MlMkZzdmclM0UpO2JhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtcG9zaXRpb246MjUuMnJlbSAwO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0ubG9naW4td3JhcHBlciAubG9naW57YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91'@; put 'bmQ6dmFyKC0tY2xyLWxvZ2luLWJhY2tncm91bmQtY29sb3IsICNmYWZhZmEpO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEuMnJlbSAzcmVtO2hlaWdodDphdXRvO21pbi1oZWlnaHQ6'@; put 'MTAwdmg7d2lkdGg6MjUuMnJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLnRpdGxle2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXRpdGxlLWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1sb2dpbi10aXRsZS1mb250LXdlaWdodCwg'@; put 'MjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWxvZ2luLXRpdGxlLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBB'@; put 'cmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS44cmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAudGl0bGUgLndlbGNvbWV7bGluZS1oZWlnaHQ6MS44cmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAudGl0bGUgLmhp'@; put 'bnR7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbG9naW4tdGl0bGUtY29sb3IsIGJsYWNrKTttYXJnaW4tdG9wOjEuNXJlbTtmb250LXNpemU6LjdyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC50cmFkZW1hcmt7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbG9naW4tdHJhZGVtYXJr'@; put 'LWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5'@; put 'OnZhcigtLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6MS40cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubG9naW4td3JhcHBlciAubG9naW4g'@; put 'LnN1YnRpdGxle2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbG9naW4tc3VidGl0bGUtZm9udC13ZWlnaHQsIDIwMCk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbG9naW4tc3VidGl0bGUtY29sb3IsIGJsYWNrKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5p'@; put 'ciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWxvZ2luLXN1YnRpdGxlLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEu'@; put 'MXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS44cmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjIuNHJlbSAwIDB9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1n'@; put 'cm91cCAuYXV0aC1zb3VyY2UsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAudXNlcm5hbWUsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAucGFzc3dvcmQsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2hlY2tib3gsLmxvZ2luLXdyYXBw'@; put 'ZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWZvcm0tY29udHJvbCwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY2hlY2tib3gtd3JhcHBlcnttYXJnaW46LjNyZW0gMCAuOXJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJv'@; put 'bC1jb250YWluZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLXNlbGVjdC13cmFwcGVyLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNv'@; put 'bnRhaW5lciAuY2xyLXNlbGVjdHt3aWR0aDoxMDAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXI+LmNsci1pbnB1dHt3aWR0aDoxMDAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAg'@; put 'LmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyPi5jbHItaW5wdXQtZ3JvdXB7bWF4LXdpZHRoOjEwMCU7d2lk'@; put 'dGg6MTAwJTtwYWRkaW5nLXJpZ2h0Oi40OHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyPi5jbHItaW5wdXQtZ3JvdXA+LmNsci1pbnB1dHt3aWR0aDpjYWxjKDEwMCUgLSAxLjJyZW0pfS5sb2dp'@; put 'bi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnRvb2x0aXAtdmFsaWRhdGlvbnttYXJnaW4tdG9wOi4zcmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnRvb2x0aXAtdmFsaWRhdGlvbiAudXNlcm5hbWUsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91'@; put 'cCAudG9vbHRpcC12YWxpZGF0aW9uIC5wYXNzd29yZHt3aWR0aDoxMDAlO21hcmdpbi10b3A6MH0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvcntkaXNwbGF5Om5vbmU7bWFyZ2luOi4zcmVtIDAgMDtwYWRkaW5nOi40NXJlbSAuNnJlbTtiYWNrZ3JvdW5kOiNjMjFk'@; put 'MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItbG9naW4tZXJyb3ItYmFja2dyb3VuZC1jb2xvciwgI2MyMWQwMCk7Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItbG9naW4tYmFja2dyb3VuZC1jb2xvciwgI2ZhZmFmYSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIo'@; put 'LS1jbHItbG9naW4tZXJyb3ItYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtsaW5lLWhlaWdodDouOXJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvcjpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiIjtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdl'@; put 'L3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB2aWV3Qm94JTNEJTIyNSUyMDUlMjAyNiUyMDI2JTIyJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUyMnhNaWRZTWlkJTIwbWVldCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5v'@; put 'cmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTNDZGVmcyUzRSUzQ3N0eWxlJTNFLmNsci1pLW91dGxpbmUlN0JmaWxsJTNBJTIzZmFmYWZhJTNCJTdEJTNDJTJGc3R5bGUlM0UlM0MlMkZk'@; put 'ZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VleGNsYW1hdGlvbi1jaXJjbGUtbGluZSUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUy'@; put 'MGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xOCUyQzZBMTIlMkMxMiUyQzAlMkMxJTJDMCUyQzMwJTJDMTglMkMxMiUyQzEyJTJDMCUyQzAlMkMwJTJDMTglMkM2Wm0wJTJDMjJBMTAlMkMxMCUyQzAlMkMxJTJDMSUyQzI4JTJD'@; put 'MTglMkMxMCUyQzEwJTJDMCUyQzAlMkMxJTJDMTglMkMyOFolMjIlM0UlM0MlMkZwYXRoJTNFJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0yJTIyJTIwZCUzRCUyMk0xOCUyQzIwLjA3YTEuMyUyQzEuMyUyQzAlMkMwJTJDMS0xLjMtMS4z'@; put 'di02YTEuMyUyQzEuMyUyQzAlMkMxJTJDMSUyQzIuNiUyQzB2NkExLjMlMkMxLjMlMkMwJTJDMCUyQzElMkMxOCUyQzIwLjA3WiUyMiUzRSUzQyUyRnBhdGglM0UlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMyUyMiUyMGN4JTNEJTIy'@; put 'MTcuOTUlMjIlMjBjeSUzRCUyMjIzLjAyJTIyJTIwciUzRCUyMjEuNSUyMiUzRSUzQyUyRmNpcmNsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN2ZyUzRSk7bWFyZ2luOi4wNXJlbSAuM3JlbSAwIDA7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtfS5s'@; put 'b2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmVycm9yLmFjdGl2ZXtkaXNwbGF5OmZsZXh9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuZXJyb3IuYWN0aXZlOmJlZm9yZXtmbGV4OjAgMCAuOHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3Vw'@; put 'IC5idG57bWFyZ2luOjMuNnJlbSAwIDA7bWF4LXdpZHRoOm5vbmV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuZXJyb3IrLmJ0bnttYXJnaW46MS4ycmVtIDAgMH0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5zaWdudXB7bWFyZ2luLXRvcDouNnJlbTtm'@; put 'b250LXNpemU6LjdyZW07dGV4dC1hbGlnbjpjZW50ZXJ9LmxvZ2luLXdyYXBwZXIgLmxvZ2luOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jazt3aWR0aDouMDVyZW07aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMDAwO2JhY2tncm91bmQ6dmFyKC0tY2xy'@; put 'LWxvZ2luLXBhbmVsLWxpbmUtY29sb3IsIGJsYWNrKTtvcGFjaXR5Oi4xO29wYWNpdHk6dmFyKC0tY2xyLWxvZ2luLXBhbmVsLWxpbmUtb3BhY2l0eSwgLjEpO3RvcDowO3JpZ2h0Oi0uMXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsubG9naW4td3JhcHBlcntqdXN0'@; put 'aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1sb2dpbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmFmYWZhKX0ubG9naW4td3JhcHBlciAubG9naW57d2lkdGg6MTAwJTttYXJnaW4tbGVmdDowO3BhZGRpbmc6MS4ycmVtIDIwJX0ubG9naW4t'@; put 'd3JhcHBlciAubG9naW46YWZ0ZXJ7Y29udGVudDpub25lfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsubG9naW4td3JhcHBlciAubG9naW57cGFkZGluZzoxLjJyZW0gMTUlfX0ubWFpbi1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjto'@; put 'ZWlnaHQ6MTAwdmg7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWdsb2JhbC1hcHAtYmFja2dyb3VuZCwgI2ZhZmFmYSl9Lm1haW4tY29udGFpbmVyIC5hbGVydC5hbGVydC1hcHAtbGV2ZWx7ZmxleDowIDAgYXV0bztvdmVyZmxvdy14OmhpZGRlbn0ubWFpbi1jb250'@; put 'YWluZXIgaGVhZGVyLC5tYWluLWNvbnRhaW5lciAuaGVhZGVye2ZsZXg6MCAwIDNyZW19Lm1haW4tY29udGFpbmVyIC5zdWItbmF2LC5tYWluLWNvbnRhaW5lciAuc3VibmF2e2ZsZXg6MCAwIDEuOHJlbX0ubWFpbi1jb250YWluZXIgLnUtbWFpbi1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2Zs'@; put 'ZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjEgMSBhdXRvO292ZXJmbG93OmhpZGRlbn0ubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6LjA1cmVtfS5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIg'@; put 'LmNvbnRlbnQtYXJlYXtmbGV4OjEgMSBhdXRvO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtwYWRkaW5nOjEuMnJlbX0ubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5jb250ZW50LWFyZWE+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6'@; put 'MH0ubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5zaWRlbmF2e2ZsZXg6MCAwIGF1dG87b3JkZXI6LTE7b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXZ7ZmxleDowIDAgYXV0bztvcmRlcjotMX1AbWVk'@; put 'aWEgcHJpbnR7Lm1haW4tY29udGFpbmVye2hlaWdodDphdXRvfX1ib2R5Lm5vLXNjcm9sbGluZyxib2R5W2Nkcy1sYXlvdXQ9bm8tc2Nyb2xsaW5nXSxib2R5Lm5vLXNjcm9sbGluZyAubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5jb250ZW50LWFyZWEsYm9keVtjZHMtbGF5'@; put 'b3V0PW5vLXNjcm9sbGluZ10gLm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhe292ZXJmbG93OmhpZGRlbn06cm9vdHstLWNsci1tb2RhbC1jbG9zZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLW1vZGFsLWJnLWNvbG9yOnZh'@; put 'cigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLW1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy1jb2xvcjpyZ2JhKCAwLCAwLCAwLCAuMiApOy0tY2xyLW1vZGFsLWJhY2tkcm9wLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItbW9kYWwtYmFja2Ryb3Atb3BhY2l0'@; put 'eTouODU7LS1jbHItbW9kYWwtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItbW9kYWwtdGl0bGUtY29sb3I6dmFyKC0tY2xyLWgzLWNvbG9yKTstLWNsci1tb2RhbC10aXRsZS1mb250LWZhbWlseTp2YXIoLS1jbHItaDMtZm9udC1mYW1pbHkpOy0t'@; put 'Y2xyLW1vZGFsLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMy1mb250LXdlaWdodCl9Lm1vZGFse3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDoxMDUwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVt'@; put 'czpjZW50ZXI7cGFkZGluZzoyLjRyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7Lm1vZGFse3BhZGRpbmc6LjZyZW19fS5tb2RhbC1kaWFsb2d7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDUwO3dpZHRoOjI4LjhyZW07bWF4LXdpZHRoOjEwMCV9Lm1vZGFsLWRp'@; put 'YWxvZy5tb2RhbC1zbXt3aWR0aDoxNC40cmVtfS5tb2RhbC1kaWFsb2cubW9kYWwtbGd7d2lkdGg6NDMuMnJlbX0ubW9kYWwtZGlhbG9nLm1vZGFsLXhse3dpZHRoOjU3LjZyZW19Lm1vZGFsLWRpYWxvZyAubW9kYWwtY29udGVudHtwYWRkaW5nOjEuMnJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNm'@; put 'ZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbW9kYWwtYmctY29sb3IsIHdoaXRlKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1tb2RhbC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjFyZW0gLjFyZW0gIzAwMDM7'@; put 'Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSB2YXIoLS1jbHItbW9kYWwtY29udGVudC1ib3gtc2hhZG93LWNvbG9yKX0ubW9kYWwtaGVhZGVyLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7Ym9yZGVyLWJvdHRvbTpub25lO3BhZGRpbmc6MCAwIDEuMnJlbX0ubW9kYWwtaGVhZGVy'@; put 'LS1hY2Nlc3NpYmxle2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5tb2RhbC1oZWFkZXIgLm1vZGFsLXRpdGxlLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUgLm1vZGFsLXRpdGxle2NvbG9yOiMwMDA7Y29sb3I6dmFy'@; put 'KC0tY2xyLW1vZGFsLXRpdGxlLWNvbG9yLCBibGFjayk7bWFyZ2luOjA7cGFkZGluZzowIC4xNXJlbX0ubW9kYWwtaGVhZGVyIC5tb2RhbC10aXRsZTpub3QoW2Nkcy10ZXh0XSksLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAubW9kYWwtdGl0bGU6bm90KFtjZHMtdGV4dF0pe2ZvbnQtc2l6'@; put 'ZToxLjFyZW07Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1tb2RhbC10aXRsZS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVl'@; put 'IiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbW9kYWwtdGl0bGUtZm9udC13ZWlnaHQsIDIwMCk7bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbH0ubW9kYWwtaGVhZGVyIC5jbG9zZSwubW9kYWwtaGVhZGVy'@; put 'LS1hY2Nlc3NpYmxlIC5jbG9zZXttYXJnaW4tdG9wOi0uMDVyZW07bWFyZ2luLXJpZ2h0Oi0uMjVyZW07Zm9udC1zaXplOjEuM3JlbTtsaW5lLWhlaWdodDoxLjJyZW19Lm1vZGFsLWhlYWRlciAuY2xvc2UgY2RzLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2UgY2RzLWlj'@; put 'b24sLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2UgY2xyLWljb257ZmlsbDojOGM4YzhjO2ZpbGw6dmFyKC0tY2xyLW1vZGFsLWNsb3NlLWNvbG9yLCAjOGM4YzhjKTtoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbX0ubW9kYWwt'@; put 'dGl0bGUtd3JhcHBlcntmbGV4OjF9Lm1vZGFsLXRpdGxlLXdyYXBwZXIgLm1vZGFsLXRpdGxlPmgze21hcmdpbi10b3A6MH0ubW9kYWwtYm9keS13cmFwcGVye21heC1oZWlnaHQ6NzB2aDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47cGFkZGluZzowIC4xNXJlbX0ubW9kYWwt'@; put 'Ym9keS13cmFwcGVyPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1vZGFsLWJvZHktd3JhcHBlcj46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9Lm1vZGFsLWZvb3RlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MS4ycmVtIDAgMH0ubW9kYWwt'@; put 'Zm9vdGVyIC5idG57bWFyZ2luOjAgMCAwIC42cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsubW9kYWwtYm9keS13cmFwcGVye21heC1oZWlnaHQ6NTV2aH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZw'@; put 'eCl7Lm1vZGFsLWNvbnRlbnR7cGFkZGluZzouNnJlbSAwIC42cmVtIDEuMnJlbX0ubW9kYWwtaGVhZGVyLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7cGFkZGluZzowIDEuMnJlbSAuNnJlbSAwfS5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDo1NXZofS5tb2RhbC1mb290ZXJ7cGFk'@; put 'ZGluZzouNnJlbSAxLjJyZW0gMCAwfX0ubW9kYWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbW9kYWwtYmFja2Ryb3AtY29sb3IsICMzMzMzMzMpO29wYWNpdHk6Ljg1O29wYWNpdHk6dmFy'@; put 'KC0tY2xyLW1vZGFsLWJhY2tkcm9wLW9wYWNpdHksIC44NSk7ei1pbmRleDoxMDQwfS5tb2RhbCAubW9kYWwtbmF2e2Rpc3BsYXk6bm9uZX06cm9vdHstLWNsci1oZWFkZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNsci1oZWFkZXItZGl2aWRlci1vcGFjaXR5'@; put 'Oi4xNTstLWNsci1oZWFkZXItbmF2LW9wYWNpdHk6LjY1Oy0tY2xyLWhlYWRlci1uYXYtaG92ZXItb3BhY2l0eToxOy0tY2xyLWhlYWRlci0yLWJnLWNvbG9yOiM0ODVhNmE7LS1jbHItaGVhZGVyLTMtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMTAwMCk7LS1j'@; put 'bHItaGVhZGVyLTQtYmctY29sb3I6IzI0N2JhZTstLWNsci1oZWFkZXItNS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItaGVhZGVyLTYtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi0xMDAwKTstLWNsci1oZWFkZXItNy1iZy1jb2xvcjojMzA0MjUw'@; put 'Oy0tY2xyLWhlYWRlci04LWJnLWNvbG9yOiMwZjE3MWM7LS1jbHItaGVhZGVyLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLWhlYWRlci10aXRsZS1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IpOy0tY2xyLWhlYWRlci10aXRsZS1mb250LXdl'@; put 'aWdodDp2YXIoLS1jbHItaDUtZm9udC13ZWlnaHQpOy0tY2xyLWhlYWRlci10aXRsZS1mb250LWZhbWlseTp2YXIoLS1jbHItaDUtZm9udC1mYW1pbHkpfWhlYWRlciwuaGVhZGVye2Rpc3BsYXk6ZmxleDtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwg'@; put 'I2ZhZmFmYSk7YmFja2dyb3VuZC1jb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci1iZy1jb2xvciwgIzMzMzMzMyk7aGVpZ2h0OjNyZW07d2hpdGUtc3BhY2U6bm93cmFwfWhlYWRlci5oZWFkZXItMSwuaGVhZGVyLmhlYWRlci0xe2JhY2tncm91bmQtY29sb3I6'@; put 'IzMzMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItYmctY29sb3IsICMzMzMzMzMpfWhlYWRlci5oZWFkZXItMiwuaGVhZGVyLmhlYWRlci0ye2JhY2tncm91bmQtY29sb3I6IzQ4NWE2YTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItMi1iZy1jb2xvciwgIzQ4'@; put 'NWE2YSl9aGVhZGVyLmhlYWRlci0zLC5oZWFkZXIuaGVhZGVyLTN7YmFja2dyb3VuZC1jb2xvcjojMzIwMDQ3O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci0zLWJnLWNvbG9yLCAjMzIwMDQ3KX1oZWFkZXIuaGVhZGVyLTQsLmhlYWRlci5oZWFkZXItNHtiYWNrZ3JvdW5kLWNv'@; put 'bG9yOiMyNDdiYWU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTQtYmctY29sb3IsICMyNDdiYWUpfWhlYWRlci5oZWFkZXItNSwuaGVhZGVyLmhlYWRlci01e2JhY2tncm91bmQtY29sb3I6IzAwNTY3YTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItNS1iZy1j'@; put 'b2xvciwgIzAwNTY3YSl9aGVhZGVyLmhlYWRlci02LC5oZWFkZXIuaGVhZGVyLTZ7YmFja2dyb3VuZC1jb2xvcjojMDAzNjRkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci02LWJnLWNvbG9yLCAjMDAzNjRkKX1oZWFkZXIuaGVhZGVyLTcsLmhlYWRlci5oZWFkZXItN3tiYWNr'@; put 'Z3JvdW5kLWNvbG9yOiMzMDQyNTA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTctYmctY29sb3IsICMzMDQyNTApfWhlYWRlci5oZWFkZXItOCwuaGVhZGVyLmhlYWRlci04e2JhY2tncm91bmQtY29sb3I6IzBmMTcxYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFk'@; put 'ZXItOC1iZy1jb2xvciwgIzBmMTcxYyl9aGVhZGVyIC5icmFuZGluZywuaGVhZGVyIC5icmFuZGluZ3tkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0bzttaW4td2lkdGg6MTAuMnJlbTtwYWRkaW5nOjAgMS4ycmVtO2hlaWdodDozcmVtfWhlYWRlciAuYnJhbmRpbmc+YSxoZWFkZXIgLmJyYW5k'@; put 'aW5nPi5uYXYtbGluaywuaGVhZGVyIC5icmFuZGluZz5hLC5oZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGlua3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6M3JlbTt0ZXh0LWRlY29yYXRpb246bm9uZX1oZWFkZXIgLmJyYW5kaW5nPmE6Zm9jdXMsaGVhZGVy'@; put 'IC5icmFuZGluZz4ubmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuYnJhbmRpbmc+YTpmb2N1cywuaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6Zm9jdXN7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX1oZWFkZXIgLmJyYW5kaW5nIC5jbHItaWNvbixoZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLGhl'@; put 'YWRlciAuYnJhbmRpbmcgY2xyLWljb24sLmhlYWRlciAuYnJhbmRpbmcgLmNsci1pY29uLC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29ue2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07bWFyZ2lu'@; put 'LXJpZ2h0Oi40NXJlbX1oZWFkZXIgLmJyYW5kaW5nIC50aXRsZSwuaGVhZGVyIC5icmFuZGluZyAudGl0bGV7Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLXRpdGxlLWNvbG9yLCAjZmFmYWZhKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWhlYWRl'@; put 'ci10aXRsZS1mb250LXdlaWdodCwgNDAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWhlYWRlci10aXRsZS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0'@; put 'IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouOHJlbTtsZXR0ZXItc3BhY2luZzouMDFlbTtsaW5lLWhlaWdodDozcmVtO3RleHQtZGVjb3JhdGlvbjpub25lfWhlYWRlciAuc2V0dGluZ3MsaGVhZGVyIC5oZWFkZXItbmF2LGhlYWRlciAuaGVhZGVy'@; put 'LWFjdGlvbnMsLmhlYWRlciAuc2V0dGluZ3MsLmhlYWRlciAuaGVhZGVyLW5hdiwuaGVhZGVyIC5oZWFkZXItYWN0aW9uc3toZWlnaHQ6M3JlbX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtdGV4dCxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5h'@; put 'di10ZXh0LC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LXRleHR7Zm9udC13ZWlnaHQ6NTAwfWhlYWRlciAuc2V0dGluZ3MgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IGNsci1p'@; put 'Y29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgY2xyLWljb24sLmhlYWRlciAuc2V0dGluZ3MgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiBjbHItaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyBjbHItaWNvbntjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9u'@; put 'dC1jb2xvciwgI2ZhZmFmYSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtaWNvbiwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24s'@; put 'LmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1pY29ue2hlaWdodDozcmVtO3dpZHRoOjNyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmssaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluaywuaGVhZGVyIC5zZXR0aW5ncyAu'@; put 'bmF2LWxpbmssLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5re3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6LjlyZW0gMS4ycmVtO3RleHQtZGVjb3JhdGlv'@; put 'bjpub25lO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5Oi42NTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LW9wYWNpdHksIC42NSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZW5hYmxlZDpob3ZlcixoZWFk'@; put 'ZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmVuYWJsZWQ6aG92ZXIsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazplbmFibGVk'@; put 'OmhvdmVyLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazplbmFibGVkOmhvdmVye29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHksIDEpfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmRpc2FibGVkLGhlYWRlciAuaGVhZGVyLW5h'@; put 'diAubmF2LWxpbms6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6ZGlzYWJsZWQsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmRpc2FibGVkLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmRpc2FibGVkLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5u'@; put 'YXYtbGluazpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgLmZhLGhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIC5mYSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5r'@; put 'IC5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayAuZmEsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgLm5hdi1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayAuZmEsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbiwuaGVh'@; put 'ZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayAuZmEsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayAuZmEsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5uYXYtaWNvbntmb250LXNpemU6MS4x'@; put 'cmVtfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIGNkcy1pY29uLGhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIGNsci1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgY2RzLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayBjbHItaWNvbixoZWFkZXIgLmhlYWRl'@; put 'ci1hY3Rpb25zIC5uYXYtbGluayBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayBjbHItaWNvbiwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2RzLWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYg'@; put 'Lm5hdi1saW5rIGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayBjZHMtaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgY2xyLWljb257cG9zaXRpb246YWJzb2x1dGU7dG9w'@; put 'OjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbixoZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNs'@; put 'ci1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24saGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNv'@; put 'bixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29uLC5oZWFk'@; put 'ZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2RzLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjbHItaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbiwuaGVhZGVy'@; put 'IC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjbHItaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6YXV0bztsZWZ0OmF1dG87dHJhbnNmb3JtOm5vbmU7bWFyZ2luLWxlZnQ6MS4ycmVtfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5h'@; put 'di10ZXh0LGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5hdi10'@; put 'ZXh0LC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5hdi10ZXh0LC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IC5uYXYtdGV4dHttYXJnaW4tbGVmdDowO3BhZGRpbmctbGVmdDouM3JlbX1oZWFkZXIgLnNldHRpbmdz'@; put 'IC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayAubmF2'@; put 'LWljb24rLm5hdi10ZXh0LC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHR7ZGlzcGxheTpub25lfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLmFjdGl2'@; put 'ZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5hY3RpdmUsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLmFjdGl2ZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5hY3RpdmUsLmhlYWRlciAuaGVhZGVy'@; put 'LWFjdGlvbnMgLm5hdi1saW5rLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE1KTtvcGFjaXR5OjF9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6Zm9jdXMsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmb2N1cyxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYt'@; put 'bGluazpmb2N1cywuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmZvY3Vze291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19aGVhZGVyIC5oZWFkZXItbmF2LC5o'@; put 'ZWFkZXIgLmhlYWRlci1uYXZ7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG99aGVhZGVyIC5oZWFkZXItbmF2Omxhc3QtY2hpbGQ+Lm5hdi1saW5rOmxhc3QtY2hpbGQ6YWZ0ZXIsLmhlYWRlciAuaGVhZGVyLW5hdjpsYXN0LWNoaWxkPi5uYXYtbGluazpsYXN0LWNoaWxkOmFmdGVye2NvbnRl'@; put 'bnQ6bm9uZX1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGUsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpsYXN0LW9mLXR5cGUsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6Zmlyc3Qtb2YtdHlwZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGlu'@; put 'azpsYXN0LW9mLXR5cGV7cG9zaXRpb246cmVsYXRpdmV9aGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJzdC1vZi10eXBlOmJlZm9yZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZTphZnRlciwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJz'@; put 'dC1vZi10eXBlOmJlZm9yZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpsYXN0LW9mLXR5cGU6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItaGVhZGVyLWZv'@; put 'bnQtY29sb3IsICNmYWZhZmEpO29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1kaXZpZGVyLW9wYWNpdHksIC4xNSk7b3BhY2l0eTouMTU7aGVpZ2h0OjJyZW07d2lkdGg6LjA1cmVtO3dpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7dG9wOi41cmVtO2xlZnQ6YXV0'@; put 'b31oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3Jle2xlZnQ6MH1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZTphZnRlciwuaGVhZGVy'@; put 'IC5oZWFkZXItbmF2IC5uYXYtbGluazpsYXN0LW9mLXR5cGU6YWZ0ZXJ7cmlnaHQ6MH1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpmaXJzdC1vZi10eXBlOmJlZm9yZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpsYXN0LW9mLXR5cGU6YWZ0ZXIsLmhl'@; put 'YWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsuYWN0aXZlOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpsYXN0LW9mLXR5cGU6YWZ0ZXJ7Y29udGVudDpub25lfWhlYWRlciAuc2V0dGluZ3MsaGVhZGVyIC5oZWFkZXItYWN0aW9ucywu'@; put 'aGVhZGVyIC5zZXR0aW5ncywuaGVhZGVyIC5oZWFkZXItYWN0aW9uc3tmbGV4OjEgMCBhdXRvO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9w'@; put 'ZG93bj4uZHJvcGRvd24tdG9nZ2xlLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjNyZW07aGVpZ2h0OjNyZW07'@; put 'b3V0bGluZS1vZmZzZXQ6LS4yNXJlbTtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTouNjU7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1vcGFjaXR5LCAuNjUpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5k'@; put 'cm9wZG93bi10b2dnbGU6ZW5hYmxlZDpob3ZlcixoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlOmVuYWJsZWQ6aG92ZXIsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5oZWFk'@; put 'ZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTplbmFibGVkOmhvdmVye29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHksIDEpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsaGVh'@; put 'ZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNh'@; put 'YmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLGhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWlj'@; put 'b246bm90KFtzaGFwZV49YW5nbGVdKSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYt'@; put 'aWNvbiBjbHItaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2'@; put 'LWljb24gY2xyLWljb246bm90KFtzaGFwZV49YW5nbGVdKSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRv'@; put 'd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbTtyaWdodDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRv'@; put 'd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJv'@; put 'cGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24t'@; put 'dG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2ds'@; put 'ZS5uYXYtaWNvbiBjZHMtaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uW3NoYXBlXj1hbmdsZV17cmlnaHQ6LjZyZW07dG9wOjQ0JX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAu'@; put 'ZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRy'@; put 'b3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHR7cGFkZGluZzowIDEuOHJlbSAwIDEuMnJlbX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRy'@; put 'b3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCBjbHItaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2RzLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJv'@; put 'cGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNsci1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2RzLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2ds'@; put 'ZS5uYXYtdGV4dCBjbHItaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dn'@; put 'bGUubmF2LXRleHQgY2xyLWljb25bc2hhcGVePWFuZ2xlXXtyaWdodDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uLC5oZWFk'@; put 'ZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29ue3dpZHRoOjNyZW07cGFkZGluZy1yaWdodDowfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duLmJv'@; put 'dHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSxoZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bi5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4u'@; put 'ZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFj'@; put 'dGlvbnM+LmRyb3Bkb3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnV7dG9wOjg1JX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bjpsYXN0LWNoaWxkLmJvdHRvbS1yaWdodD4u'@; put 'ZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bjpsYXN0LWNoaWxkLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd246bGFzdC1jaGlsZC5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVh'@; put 'ZGVyLWFjdGlvbnM+LmRyb3Bkb3duOmxhc3QtY2hpbGQuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3JpZ2h0Oi4xNXJlbX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSwu'@; put 'aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6LS4ycmVtO2xlZnQ6YXV0bztyaWdodDowfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIDpsYXN0LWNoaWxk'@; put 'LmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gOmxhc3QtY2hpbGQuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gOmxhc3QtY2hpbGQuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gOmxh'@; put 'c3QtY2hpbGQuZHJvcGRvd24tbWVudXttYXJnaW4tcmlnaHQ6LjRyZW19aGVhZGVyIC5zZWFyY2gtYm94LGhlYWRlciAuc2VhcmNoLC5oZWFkZXIgLnNlYXJjaC1ib3gsLmhlYWRlciAuc2VhcmNoe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzttYXgtd2lk'@; put 'dGg6MTQuNHJlbTtwYWRkaW5nOjA7aGVpZ2h0OjNyZW07Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO29wYWNpdHk6LjY1O29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtb3BhY2l0eSwgLjY1KX1oZWFkZXIgLnNlYXJjaC1ib3g6'@; put 'ZW5hYmxlZDpob3ZlcixoZWFkZXIgLnNlYXJjaDplbmFibGVkOmhvdmVyLC5oZWFkZXIgLnNlYXJjaC1ib3g6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5zZWFyY2g6ZW5hYmxlZDpob3ZlcntvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1ob3Zlci1vcGFjaXR5LCAxKX1o'@; put 'ZWFkZXIgLnNlYXJjaC1ib3g6ZGlzYWJsZWQsaGVhZGVyIC5zZWFyY2g6ZGlzYWJsZWQsLmhlYWRlciAuc2VhcmNoLWJveDpkaXNhYmxlZCwuaGVhZGVyIC5zZWFyY2g6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfWhlYWRlciAuc2VhcmNoLWJveD4ubmF2LWljb24saGVhZGVyIC5zZWFy'@; put 'Y2g+Lm5hdi1pY29uLC5oZWFkZXIgLnNlYXJjaC1ib3g+Lm5hdi1pY29uLC5oZWFkZXIgLnNlYXJjaD4ubmF2LWljb257bWFyZ2luOjAgLjNyZW0gLjE1cmVtIDEuMnJlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwsaGVhZGVyIC5zZWFyY2ggbGFiZWwsLmhlYWRlciAuc2VhcmNoLWJveCBs'@; put 'YWJlbCwuaGVhZGVyIC5zZWFyY2ggbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjNyZW07bGluZS1oZWlnaHQ6M3JlbTtwYWRkaW5nLWxlZnQ6MS4ycmVtO3RleHQtYWxpZ246Y2VudGVyfWhlYWRlciAuc2VhcmNoLWJveCBsYWJlbDpiZWZvcmUsaGVhZGVyIC5zZWFyY2ggbGFi'@; put 'ZWw6YmVmb3JlLC5oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWw6YmVmb3JlLC5oZWFkZXIgLnNlYXJjaCBsYWJlbDpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUy'@; put 'MHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzYlMjAzNiUyMiUzRSUzQ2RlZnMlM0UlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjNmZmZmZmYlM0IlN0QlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMl'@; put 'M0UlM0N0aXRsZSUzRVNlYXJjaCUzQyUyRnRpdGxlJTNFJTNDZyUyMGlkJTNEJTIyaWNvbnMlMjIlM0UlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNMTUlMkM0LjA1QTEwLjk1JTJDMTAuOTUlMkMwJTJDMSUyQzElMkM0LjA1JTJDMTUlMkMxMSUyQzExJTJDMCUyQzAl'@; put 'MkMxJTJDMTUlMkM0LjA1TTE1JTJDMkExMyUyQzEzJTJDMCUyQzElMkMwJTJDMjglMkMxNSUyQzEzJTJDMTMlMkMwJTJDMCUyQzAlMkMxNSUyQzJaJTIyJTJGJTNFJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjAlMjBkJTNEJTIyTTMzLjcxJTJDMzIuMjlsLTcuMzctNy40Mi0xLjQy'@; put 'JTJDMS40MSUyQzcuMzclMkM3LjQyYTElMkMxJTJDMCUyQzElMkMwJTJDMS40Mi0xLjQxWiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MXJlbTt3'@; put 'aWR0aDoxcmVtO21hcmdpbjoxcmVtIDAgMDt2ZXJ0aWNhbC1hbGlnbjp0b3B9aGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsIGlucHV0LGhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0LC5oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0e2xp'@; put 'bmUtaGVpZ2h0OjEuMnJlbTttYXJnaW46LjlyZW0gMH1oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XSxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdLC5oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XSwuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10'@; put 'ZXh0XXtib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7cGFkZGluZzowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxoZWFk'@; put 'ZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTphY3RpdmUsaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmFjdGl2ZSwuaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLmhlYWRl'@; put 'ciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOmFjdGl2ZSwuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cywuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTphY3RpdmV7YmFja2dyb3VuZDowIDB9aGVhZGVyIC5icmFuZGluZysuc2VhcmNoLGhlYWRlciAu'@; put 'YnJhbmRpbmcrLnNlYXJjaC1ib3gsLmhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaCwuaGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveHtwb3NpdGlvbjpyZWxhdGl2ZX1oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2g6YWZ0ZXIsaGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveDphZnRlciwuaGVh'@; put 'ZGVyIC5icmFuZGluZysuc2VhcmNoOmFmdGVyLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWhlYWRlci1mb250'@; put 'LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1vcGFjaXR5LCAuMTUpO29wYWNpdHk6LjE1O2hlaWdodDoycmVtO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RvcDouNXJlbTtsZWZ0OjB9QG1l'@; put 'ZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7aGVhZGVyIC5zZWFyY2gtYm94LGhlYWRlciAuc2VhcmNoLC5oZWFkZXIgLnNlYXJjaC1ib3gsLmhlYWRlciAuc2VhcmNoe2ZsZXg6MSAwIGF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21heC13aWR0aDpub25lfWhlYWRlciAu'@; put 'c2VhcmNoLWJveCBsYWJlbCxoZWFkZXIgLnNlYXJjaCBsYWJlbCwuaGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsLC5oZWFkZXIgLnNlYXJjaCBsYWJlbHtwYWRkaW5nOjA7d2lkdGg6M3JlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWw6YmVmb3JlLGhlYWRlciAuc2VhcmNoIGxhYmVsOmJlZm9y'@; put 'ZSwuaGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2ggbGFiZWw6YmVmb3Jle2xlZnQ6MXJlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5wdXQsaGVhZGVyIC5zZWFyY2ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCBpbnB1dCwu'@; put 'aGVhZGVyIC5zZWFyY2ggbGFiZWwgaW5wdXR7ZGlzcGxheTpub25lfWhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaDphZnRlcixoZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94OmFmdGVyLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2g6YWZ0ZXIsLmhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaC1i'@; put 'b3g6YWZ0ZXJ7Y29udGVudDpub25lfWhlYWRlciAuc2VhcmNoLWJveCsuc2V0dGluZ3MsaGVhZGVyIC5zZWFyY2gtYm94Ky5oZWFkZXItYWN0aW9ucyxoZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3MsaGVhZGVyIC5zZWFyY2grLmhlYWRlci1hY3Rpb25zLC5oZWFkZXIgLnNlYXJjaC1ib3grLnNl'@; put 'dHRpbmdzLC5oZWFkZXIgLnNlYXJjaC1ib3grLmhlYWRlci1hY3Rpb25zLC5oZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3MsLmhlYWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9uc3twb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCBhdXRvfWhlYWRlciAuc2VhcmNoLWJveCsuc2V0dGluZ3M6YWZ0'@; put 'ZXIsaGVhZGVyIC5zZWFyY2gtYm94Ky5oZWFkZXItYWN0aW9uczphZnRlcixoZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3M6YWZ0ZXIsaGVhZGVyIC5zZWFyY2grLmhlYWRlci1hY3Rpb25zOmFmdGVyLC5oZWFkZXIgLnNlYXJjaC1ib3grLnNldHRpbmdzOmFmdGVyLC5oZWFkZXIgLnNlYXJjaC1i'@; put 'b3grLmhlYWRlci1hY3Rpb25zOmFmdGVyLC5oZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3M6YWZ0ZXIsLmhlYWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9uczphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2JhY2tncm91bmQ6I2ZhZmFmYTti'@; put 'YWNrZ3JvdW5kOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eSwgLjE1KTtvcGFjaXR5Oi4xNTtoZWlnaHQ6MnJlbTt3aWR0aDouMDVyZW07d2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0'@; put 'aCwgLjA1cmVtKTt0b3A6LjVyZW07bGVmdDowfX1hLmxpbmstbm9ybWFsOmxpbmt7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItbGluay1jb2xvciwgIzAwNzJhMyl9YS5saW5rLWhvdmVyZWQ6bGlua3tjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1saW5rLWhvdmVyLWNvbG9y'@; put 'LCAjMDA3MmEzKX1hLmxpbmstY2xpY2tlZDpsaW5re2NvbG9yOiM5ZTU3YmM7Y29sb3I6dmFyKC0tY2xyLWxpbmstYWN0aXZlLWNvbG9yLCAjOWU1N2JjKX1hLmxpbmstdmlzaXRlZDpsaW5re2NvbG9yOiM1NjU5Yjg7Y29sb3I6dmFyKC0tY2xyLWxpbmstdmlzaXRlZC1jb2xvciwgIzU2NTli'@; put 'OCl9Lm5hdntkaXNwbGF5OmZsZXg7aGVpZ2h0OjEuOHJlbTtsaXN0LXN0eWxlLXR5cGU6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjA7d2lkdGg6MTAwJTt3aGl0ZS1zcGFjZTpub3dyYXA7Ym94LXNoYWRvdzowIC0uMDVyZW0gI2NjYyBpbnNldDtib3gtc2hhZG93OjAgLS4wNXJl'@; put 'bSAwIHZhcigtLWNsci1uYXYtYm94LXNoYWRvdy1jb2xvciwgI2NjY2NjYykgaW5zZXR9Lm5hdiAubmF2LWl0ZW17ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjEuMnJlbX0ubmF2IC5uYXYtaXRlbS5hY3RpdmU+Lm5hdi1saW5re2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xy'@; put 'LW5hdi1saW5rLWFjdGl2ZS1jb2xvciwgYmxhY2spO2JveC1zaGFkb3c6MCAtLjA1cmVtICNjY2MgaW5zZXQ7Ym94LXNoYWRvdzowIC0uMDVyZW0gMCB2YXIoLS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3IsICNjY2NjY2MpIGluc2V0fS5uYXYgLm5hdi1saW5re2NvbG9yOiM2NjY7Y29sb3I6'@; put 'dmFyKC0tY2xyLW5hdi1saW5rLWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjdyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1uYXYtbGluay1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS44cmVtO2Rpc3BsYXk6'@; put 'aW5saW5lLWJsb2NrO3BhZGRpbmc6MCAuMTVyZW07Ym94LXNoYWRvdzpub25lfS5uYXYgLm5hdi1saW5rLmJ0bnt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowO21hcmdpbi1ib3R0b206LS4wNXJlbTtib3JkZXItcmFkaXVzOjB9Lm5hdiAubmF2LWxpbms6aG92ZXIsLm5hdiAubmF2LWxp'@; put 'bms6Zm9jdXMsLm5hdiAubmF2LWxpbms6YWN0aXZle2NvbG9yOmluaGVyaXR9Lm5hdiAubmF2LWxpbms6aG92ZXIsLm5hdiAubmF2LWxpbmsuYWN0aXZle2JveC1zaGFkb3c6MCAtLjE1cmVtICMwMDcyYTMgaW5zZXQ7Ym94LXNoYWRvdzowIC0uMTVyZW0gMCB2YXIoLS1jbHItbmF2LWFjdGl2'@; put 'ZS1ib3gtc2hhZG93LWNvbG9yLCAjMDA3MmEzKSBpbnNldDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGVhc2UtaW59Lm5hdiAubmF2LWxpbms6aG92ZXIsLm5hdiAubmF2LWxpbms6Zm9jdXMsLm5hdiAubmF2LWxpbms6YWN0aXZlLC5uYXYgLm5hdi1saW5rLmFjdGl2ZXt0ZXh0LWRlY29y'@; put 'YXRpb246bm9uZX0ubmF2IC5uYXYtbGluay5hY3RpdmV7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstYWN0aXZlLWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1uYXYtbGluay1hY3RpdmUtZm9udC13ZWlnaHQsIDQwMCl9Lm5h'@; put 'diAubmF2LWxpbmsubmF2LWl0ZW17bWFyZ2luLXJpZ2h0OjEuMnJlbX06cm9vdHstLWNsci1zdWJuYXYtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKX0uc3ViLW5hdiwuc3Vi'@; put 'bmF2e2Rpc3BsYXk6ZmxleDtib3gtc2hhZG93OjAgLS4wNXJlbSAjY2NjIGluc2V0O2JveC1zaGFkb3c6MCAtLjA1cmVtIDAgdmFyKC0tY2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yLCAjY2NjY2NjKSBpbnNldDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50'@; put 'ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXN1Ym5hdi1iZy1jb2xvciwgd2hpdGUpO2hlaWdodDoxLjhyZW19LnN1Yi1uYXYgLm5hdiwuc3VibmF2IC5uYXZ7ZmxleDoxIDEgYXV0bztwYWRkaW5nLWxlZnQ6MS4ycmVtfS5zdWItbmF2IC5uYXYt'@; put 'aXRlbSwuc3ViLW5hdiAubmF2LWl0ZW0gYSwuc3VibmF2IC5uYXYtaXRlbSwuc3VibmF2IC5uYXYtaXRlbSBhe3RleHQtZGVjb3JhdGlvbjpub25lfS5zdWItbmF2IGFzaWRlLC5zdWJuYXYgYXNpZGV7ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdo'@; put 'dDoxLjhyZW07cGFkZGluZzowIDEuMnJlbX0uc3ViLW5hdiBhc2lkZT46bGFzdC1jaGlsZCwuc3VibmF2IGFzaWRlPjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowO3BhZGRpbmctcmlnaHQ6MH06cm9vdHstLWNsci1zaWRlbmF2LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh'@; put 'bC00MDApOy0tY2xyLXNpZGVuYXYtYm9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpOy0tY2xyLXNpZGVuYXYtbGluay1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtY29sb3I6dmFyKC0tY2xy'@; put 'LWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNs'@; put 'ci1zaWRlbmF2LWhlYWRlci1jb2xvcjp2YXIoLS1jbHItaDYtY29sb3IpOy0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNi1mb250LXdlaWdodCk7LS1jbHItc2lkZW5hdi1oZWFkZXItZm9udC1mYW1pbHk6dmFyKC0tY2xyLWg2LWZvbnQtZmFtaWx5KTstLWNs'@; put 'ci1zaWRlbmF2LWNvbG9yOnZhcigtLWNsci1wMS1jb2xvcik7LS1jbHItc2lkZW5hdi1mb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQpfS5zaWRlbmF2e2xpbmUtaGVpZ2h0OjEuMnJlbTttYXgtd2lkdGg6MTUuNnJlbTttaW4td2lkdGg6MTAuOHJlbTt3aWR0aDoxOCU7Ym9y'@; put 'ZGVyLXJpZ2h0Oi4wNXJlbSBzb2xpZCAjY2NjO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnNpZGVuYXYgLnNpZGVuYXYtY29udGVudHtmbGV4OjEgMSBhdXRvO292ZXJmbG93LXg6aGlkZGVuO3BhZGRpbmctYm90dG9tOjEuMnJlbX0uc2lkZW5hdiAuc2lkZW5hdi1jb250'@; put 'ZW50IC5uYXYtbGlua3tib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1'@; put 'cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3dpZHRoOjEwMCV9'@; put 'LnNpZGVuYXYgLnNpZGVuYXYtY29udGVudD4ubmF2LWxpbmt7bWFyZ2luOjEuMnJlbSAwIDAgMS41cmVtO3BhZGRpbmctbGVmdDouNnJlbTtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1jb2xvciwgIzMzMzMzMyk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0'@; put 'OnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1mb250LXdlaWdodCwgNTAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtZmFtaWx5LCBNZXRy'@; put 'b3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9LnNpZGVuYXYgLnNpZGVuYXYtY29udGVudD4ubmF2LWxpbms6aG92ZXJ7YmFja2dy'@; put 'b3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LnNpZGVuYXYgLnNpZGVuYXYtY29udGVudD4ubmF2LWxpbmsuYWN0aXZle2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1zaWRlbmF2LWxpbmst'@; put 'YWN0aXZlLWJnLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWNvbG9yLCBibGFjayl9LnNpZGVuYXYgLm5hdi1ncm91cHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1zaWRlbmF2LWNvbG9yLCAjNjY2NjY2KTtmb250LXdl'@; put 'aWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXNpZGVuYXYtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW4tdG9wOjEuMnJlbTt3aWR0aDoxMDAlfS5zaWRlbmF2IC5uYXYtZ3JvdXAgLm5hdi1saXN0LC5zaWRlbmF2IC5u'@; put 'YXYtZ3JvdXAgbGFiZWx7cGFkZGluZzowIDAgMCAxLjhyZW07Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTttYXJnaW46MCAuM3JlbX0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLXRvcDowfS5zaWRlbmF2'@; put 'IC5uYXYtZ3JvdXAgLm5hdi1saXN0IC5uYXYtbGlua3tsaW5lLWhlaWdodDouOHJlbTtwYWRkaW5nOi4ycmVtIDAgLjJyZW0gLjZyZW19LnNpZGVuYXYgLm5hdi1ncm91cCAubmF2LWxpc3QgLm5hdi1saW5rOmhvdmVye2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1z'@; put 'aWRlbmF2LWxpbmstaG92ZXItY29sb3IsICNlOGU4ZTgpfS5zaWRlbmF2IC5uYXYtZ3JvdXAgLm5hdi1saXN0IC5uYXYtbGluay5hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYmctY29sb3IsICNkOGUzZTkpO2NvbG9y'@; put 'OiMwMDA7Y29sb3I6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtY29sb3IsIGJsYWNrKX0uc2lkZW5hdiAubmF2LWdyb3VwIGxhYmVse2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLXNpZGVuYXYtaGVhZGVyLWNvbG9yLCAjMzMzMzMzKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWln'@; put 'aHQ6dmFyKC0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtd2VpZ2h0LCA1MDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXItZm9udC1mYW1pbHksIE1l'@; put 'dHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbH0uc2lkZW5hdiAubmF2LWdyb3VwIGlucHV0W3R5cGU9Y2hlY2tib3hde3Bvc2l0'@; put 'aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uc2lkZW5hdiAubmF2LWdy'@; put 'b3VwIGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzK2xhYmVse291dGxpbmU6IzNiOTlmYyBhdXRvIC4yNXJlbX0uc2lkZW5hdiAuY29sbGFwc2libGUgbGFiZWx7cGFkZGluZzowIDAgMCAxLjNyZW19LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGxhYmVsOmFmdGVye2NvbnRlbnQ6IiI7ZmxvYXQ6'@; put 'bGVmdDtoZWlnaHQ6LjVyZW07d2lkdGg6LjVyZW07dHJhbnNmb3JtOnRyYW5zbGF0ZSgtLjRyZW0pIHRyYW5zbGF0ZVkoLjM1cmVtKTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3'@; put 'dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjM5YTlhOWElM0IlN0QlM0MlMkZzdHls'@; put 'ZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRUNhcmV0JTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUy'@; put 'QzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJDMSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjpt'@; put 'aWRkbGU7bWFyZ2luOjB9LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWR+Lm5hdi1saXN0LC5zaWRlbmF2IC5jb2xsYXBzaWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkfnVse2hlaWdodDowO2Rpc3BsYXk6bm9uZX0uc2lkZW5hdiAuY29s'@; put 'bGFwc2libGUgaW5wdXRbdHlwZT1jaGVja2JveF1+Lm5hdi1saXN0LC5zaWRlbmF2IC5jb2xsYXBzaWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XX51bHtoZWlnaHQ6YXV0b30uc2lkZW5hdiAuY29sbGFwc2libGUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZH5sYWJlbDphZnRlcnt0cmFu'@; put 'c2Zvcm06cm90YXRlKC05MGRlZykgdHJhbnNsYXRlKC0uMzVyZW0pIHRyYW5zbGF0ZVkoLS40cmVtKX06cm9vdHstLWNsci12ZXJ0aWNhbC1uYXYtZGl2aWRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvcjp2'@; put 'YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItdmVydGljYWwtbmF2LWl0ZW0tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci12ZXJ0aWNh'@; put 'bC1uYXYtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00'@; put 'MDApOy0tY2xyLXZlcnRpY2FsLW5hdi10b2dnbGUtaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZpZGVyLWJvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoKTstLWNsci12ZXJ0aWNhbC1u'@; put 'YXYtdHJpZ2dlci1kaXZpZGVyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLXZlcnRpY2FsLW5hdi1oZWFkZXItZm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA0LWZvbnQtd2VpZ2h0KX0uY2xyLXZlcnRpY2FsLW5hdntkaXNwbGF5OmZsZXg7ZmxleC1kaXJl'@; put 'Y3Rpb246Y29sdW1uO3BhZGRpbmctdG9wOi45cmVtO3dpZHRoOjEycmVtO21pbi13aWR0aDoyLjRyZW07YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1iZy1jb2xvciwgI2U4ZThlOCk7d2lsbC1jaGFuZ2U6d2lkdGg7dHJh'@; put 'bnNpdGlvbjp3aWR0aCAuMnMgZWFzZS1pbi1vdXR9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1kaXZpZGVye2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1zdHls'@; put 'ZTpzb2xpZDtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItd2lkdGgsIC4wNXJlbSk7bWFyZ2luOi42cmVtIDB9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4'@; put 'LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDEgYXV0bztvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cHtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIGF1dG87aGVpZ2h0OmF1dG87bWluLWhlaWdodDoxLjhyZW19LmNsci12ZXJ0aWNh'@; put 'bC1uYXYgLm5hdi1ncm91cC1jb250ZW50e2Rpc3BsYXk6ZmxleDtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1jb2xvciwgIzY2NjY2Nil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50LmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9yOnZhcigt'@; put 'LWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSk7cG9zaXRpb246cmVsYXRpdmV9LmNsci12ZXJ0aWNhbC1u'@; put 'YXYgLm5hdi1ncm91cC1jb250ZW50LmFjdGl2ZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6LjE1cmVtO2JhY2tncm91bmQ6dmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvcil9LmNsci12ZXJ0aWNhbC1u'@; put 'YXYgLm5hdi1ncm91cC1jb250ZW50LmFjdGl2ZSAubmF2LWljb257ZmlsbDojMDA3MmEzO2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvciwgIzAwNzJhMyl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50OmhvdmVye2NvbG9yOiM2NjY7Y29s'@; put 'b3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNs'@; put 'ci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGlua3tmbGV4OjEgMSBhdXRvO3BhZGRpbmctbGVmdDowO21pbi13aWR0aDowfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWljb257bWFyZ2luLWxlZnQ6MS4ycmVtfS5jbHItdmVydGljYWwt'@; put 'bmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LXRleHR7cGFkZGluZy1sZWZ0OjEuMnJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1pY29uKy5uYXYtdGV4dHtwYWRkaW5nLWxlZnQ6MH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5h'@; put 'di1saW5rKy5uYXYtZ3JvdXAtdGV4dHtkaXNwbGF5Om5vbmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jaGlsZHJlbntvdmVyZmxvdy15OmhpZGRlbn0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2Vye2ZsZXg6'@; put 'MCAwIDEuOHJlbTtib3JkZXI6MDtoZWlnaHQ6MS44cmVtO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRv'@; put 'dWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmln'@; put 'Z2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV17Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRvZ2dsZS1pY29uLWNvbG9yLCBibGFjayl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2Vye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVz'@; put 'dGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7aGVpZ2h0OjEuOHJlbTttYXJnaW4tdG9wOi0uOXJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRyaWdnZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87Y29sb3I6aW5oZXJpdDtvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpsZWZ0'@; put 'fS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdHJpZ2dlciAubmF2LWdyb3VwLXRyaWdnZXItaWNvbntmbGV4LXNocmluazowO3dpZHRoOi44cmVtO2FsaWduLXNlbGY6Y2VudGVyO21hcmdpbi1yaWdodDouNXJlbTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXR9LmNsci12ZXJ0'@; put 'aWNhbC1uYXYgLm5hdi10cmlnZ2VyLWljb257bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6LjVyZW07dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlcisubmF2LWNvbnRlbnR7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRl'@; put 'ci10b3AtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmln'@; put 'Z2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoLCAuMDVyZW0pO3BhZGRpbmctdG9wOi42cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdGV4dCwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmt7aGVpZ2h0OjEuOHJlbTtwYWRkaW5nOjAgLjZyZW0gMCAxLjJyZW07bGluZS1oZWlnaHQ6'@; put 'MS44cmVtO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10ZXh0LC5jbHItdmVydGljYWwtbmF2IC5uYXYtdGV4dHtmbGV4OjEgMSBhdXRvO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30u'@; put 'Y2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmt7ZGlzcGxheTpmbGV4O3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiM2'@; put 'NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IsIHdoaXRlKTtwb3NpdGlvbjpyZWxhdGl2ZX0u'@; put 'Y2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsuYWN0aXZlOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDouMTVyZW07YmFja2dyb3VuZDp2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0uY2xyLXZlcnRp'@; put 'Y2FsLW5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tYWN0aXZlLWNvbG9yLCAjMDA3MmEzKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbms6aG92ZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHIt'@; put 'dmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yLCAjY2NjY2NjKTt0ZXh0LWRlY29yYXRpb246bm9uZX0uY2xyLXZlcnRpY2FsLW5h'@; put 'diAubmF2LWhlYWRlcntwYWRkaW5nOjAgLjZyZW0gMCAxLjJyZW07Zm9udC1zaXplOi42cmVtO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhlYWRlci1mb250LXdlaWdodCwgNjAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6'@; put 'MS44cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtaWNvbntmbGV4OjAgMCAuOHJlbTthbGlnbi1zZWxmOmNlbnRlcjtoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07bWluLWhlaWdodDouOHJlbTttaW4td2lkdGg6LjhyZW07bWFyZ2luLXJpZ2h0Oi4zcmVtO3ZlcnRpY2FsLWFsaWduOm1pZGRs'@; put 'ZX0uY2xyLXZlcnRpY2FsLW5hdiBjbHItdmVydGljYWwtbmF2LWdyb3VwLWNoaWxkcmVue2Rpc3BsYXk6YmxvY2t9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1idG57ZmxleDoxIDEgYXV0bztwYWRkaW5nOjA7bWFyZ2luOjA7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7'@; put 'b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX0uY2xyLXZlcnRpY2FsLW5hdj4ubmF2LWxpbmssLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1jb250ZW50Pi5uYXYtbGlua3tmbGV4OjAgMCAxLjhyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rKy5uYXYtZ3JvdXAtdHJpZ2dlcntmbGV4OjAgMCAx'@; put 'LjhyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rKy5uYXYtZ3JvdXAtdHJpZ2dlciAubmF2LWdyb3VwLXRleHR7ZGlzcGxheTpub25lfS5jbHItdmVydGljYWwtbmF2IC5uYXYtaWNvbisubmF2LWdyb3VwLXRleHR7cGFkZGluZy1sZWZ0OjB9LmNsci12ZXJ0aWNhbC1uYXYuaGFzLW5h'@; put 'di1ncm91cHMgLm5hdi1saW5rLC5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYtZ3JvdXBzIC5uYXYtZ3JvdXAgLm5hdi1ncm91cC10ZXh0LC5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYtZ3JvdXBzIC5uYXYtZ3JvdXAgLm5hdi1ncm91cC10cmlnZ2Vye2ZvbnQtd2VpZ2h0OjYwMH0uY2xyLXZl'@; put 'cnRpY2FsLW5hdi5oYXMtbmF2LWdyb3VwcyAubmF2LWdyb3VwLWNoaWxkcmVuIC5uYXYtbGlua3tmb250LXdlaWdodDo0MDB9LmNsci12ZXJ0aWNhbC1uYXYuaGFzLWljb25zIC5uYXYtZ3JvdXAtY2hpbGRyZW4gLm5hdi1saW5re3BhZGRpbmctbGVmdDoyLjNyZW19LmNsci12ZXJ0aWNhbC1u'@; put 'YXYgLm5hdi1ncm91cC5hY3RpdmU6bm90KC5pcy1leHBhbmRlZCkgLm5hdi1ncm91cC1jb250ZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWxlZnQ6LjE1cmVtIHNv'@; put 'bGlkIHZhcigtLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3IpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAuYWN0aXZlOm5vdCguaXMtZXhwYW5kZWQpIC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWljb257ZmlsbDojMDA3MmEzO2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5h'@; put 'di1pY29uLWFjdGl2ZS1jb2xvciwgIzAwNzJhMyl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGluay5hY3RpdmV+Lm5hdi1ncm91cC10cmlnZ2Vye2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYt'@; put 'YWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGluazpob3Zlcn4ubmF2LWdyb3VwLXRyaWdnZXJ7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1i'@; put 'Zy1jb2xvciwgI2NjY2NjYyl9LmNsci12ZXJ0aWNhbC1uYXY6bm90KC5pcy1jb2xsYXBzZWQpIC5uYXYtbGluaysubmF2LWdyb3VwLXRyaWdnZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFz'@; put 'cyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZHt3aWR0aDoyLjRyZW07bWluLXdpZHRoOjIuNHJlbTtjdXJzb3I6cG9pbnRlcn0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Bl'@; put 'bi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LXRyaWdnZXJ7bWFyZ2luLXJpZ2h0Oi4xNXJlbX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0p'@; put 'IC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWljb257bWFyZ2luOjA7bWFyZ2luLWxlZnQ6LjhyZW19Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2Fs'@; put 'LW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGlua3tmbGV4OjAgMCAyLjRyZW19Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5p'@; put 'cy1jb2xsYXBzZWQgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGlua34ubmF2LWdyb3VwLXRyaWdnZXJ7ZmxleDowIDAgLjhyZW07dHJhbnNmb3JtOnRyYW5zbGF0ZSgtLjhyZW0pO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ct'@; put 'bWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkg'@; put 'LmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAtdHJpZ2dlcntwYWRkaW5nOjB9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1j'@; put 'b2xsYXBzZWQgLm5hdi1ncm91cC10cmlnZ2Vye3BhZGRpbmctbGVmdDowfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3Jv'@; put 'dXAtdHJpZ2dlciBjbHItaWNvbi5uYXYtZ3JvdXAtdHJpZ2dlci1pY29ue2hlaWdodDoxLjhyZW07d2lkdGg6LjVyZW07bWFyZ2luLWxlZnQ6LjE1cmVtO21hcmdpbi1yaWdodDowfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1v'@; put 'cGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAtdHJpZ2dlciBjZHMtaWNvbi5uYXYtZ3JvdXAtdHJpZ2dlci1pY29ue3dpZHRoOi41cmVtfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpu'@; put 'b3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAsLm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZl'@; put 'cnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1saW5re2Rpc3BsYXk6bm9uZX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZC5oYXMt'@; put 'aWNvbnMgLm5hdi1ncm91cHtkaXNwbGF5OmJsb2NrfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkLmhhcy1pY29ucyAubmF2LWxpbmt7'@; put 'ZGlzcGxheTpmbGV4fS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkLmhhcy1pY29ucyAubmF2LWdyb3VwLXRleHQsLm1haW4tY29udGFp'@; put 'bmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQuaGFzLWljb25zIC5uYXYtdGV4dHtwb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4'@; put 'KTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtwYWRkaW5nOjA7Ym9yZGVyOjA7aGVpZ2h0OjFweDt3aWR0aDoxcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0b3A6MDtsZWZ0OjB9LmNsci12ZXJ0aWNhbC1uYXYubmF2LXRyaWdnZXItLWJvdHRvbSAubmF2LXRyaWdnZXJ7b3Jk'@; put 'ZXI6MjttYXJnaW4tdG9wOjB9LmNsci12ZXJ0aWNhbC1uYXYubmF2LXRyaWdnZXItLWJvdHRvbSAubmF2LXRyaWdnZXIrLm5hdi1jb250ZW50e2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZpZGVy'@; put 'LWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZpZGVyLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXIt'@; put 'dG9wOm5vbmU7cGFkZGluZy10b3A6MH06cm9vdHstLWNsci1zbGlkaW5nLXBhbmVsLXRleHQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1uYXYtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLXJlc3BvbnNpdmUtbmF2'@; put 'LWhvdmVyLWJnOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtdHJpZ2dlci1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9y'@; put 'ZGVycmFkaXVzKTstLWNsci1yZXNwb25zaXZlLW5hdi1oYW1idXJnZXItYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtdHJpZ2dlci1ib3JkZXItcmFkaXVzKTstLWNsci1yZXNwb25zaXZlLW5hdi1vdmVyZmxvdy1ib3JkZXItcmFkaXVzOi4ycmVtOy0tY2xyLXJlc3Bv'@; put 'bnNpdmUtbmF2LWhlYWRlci1iYWNrZHJvcC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1yZXNwb25zaXZlLW5hdi1oZWFkZXItYmFja2Ryb3Atb3BhY2l0eTouODV9LmNsci1uYXYtY2xvc2V7bWFyZ2luOi43NXJlbTstLWNvbG9yOnZhcigtLWNsci1jb2xv'@; put 'ci1uZXV0cmFsLTUwMCl9LmNsci1uYXYtY2xvc2U6aG92ZXIsLmNsci1uYXYtY2xvc2U6Zm9jdXN7LS1jb2xvcjp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtdHJpZ2dlci1iZy1jb2xvcil9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlciwuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXJ7ZGlzcGxh'@; put 'eTpub25lfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbiwuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YmVmb3JlLC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuLC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3JlLC5jbHIt'@; put 'bmF2LWNsb3NlPnNwYW46YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi4xcmVtO3dpZHRoOjEuMnJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtdHJpZ2dlci1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1yYWRpdXM6LjE1cmVt'@; put 'O2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LWhhbWJ1cmdlci1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbiwuY2xyLW5hdi1jbG9zZT5zcGFue3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0u'@; put 'aGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YmVmb3JlLC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS5o'@; put 'ZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmV7dG9wOi0uMzVyZW19LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7Ym90dG9tOi0uMzVyZW19LmhlYWRlci1oYW1i'@; put 'dXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbiwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbntiYWNrZ3JvdW5kOjAgMH0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLmFjdGl2ZT5zcGFuOmJlZm9yZSwuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLmFjdGl2ZT5zcGFuOmFmdGVyLC5jbHItbmF2'@; put 'LWNsb3NlLmFjdGl2ZT5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjphZnRlcntsZWZ0Oi4xNXJlbTt0cmFuc2Zvcm0tb3JpZ2luOjklO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIuYWN0aXZlPnNwYW46YmVmb3Jl'@; put 'LC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFuOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLmFjdGl2ZT5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFuOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0uaGVh'@; put 'ZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbiwuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjpiZWZvcmUsLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbiwuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZT5zcGFu'@; put 'OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDouMnJlbTt3aWR0aDouMnJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtdHJpZ2dlci1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1yYWRpdXM6LjJyZW07Ym9yZGVyLXJhZGl1czp2'@; put 'YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtb3ZlcmZsb3ctYm9yZGVyLXJhZGl1cywgLjJyZW0pfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFuLC5jbHItbmF2LWNsb3NlPnNwYW57cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5oZWFkZXItb3ZlcmZsb3ctdHJp'@; put 'Z2dlcj5zcGFuOmJlZm9yZSwuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dl'@; put 'cj5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZXt0b3A6LS40cmVtfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7Ym90dG9tOi0uNHJlbX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIuYWN0aXZlPnNwYW4s'@; put 'LmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW57YmFja2dyb3VuZDowIDB9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLmFjdGl2ZT5zcGFuOmJlZm9yZSwuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIuYWN0aXZlPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YmVmb3JlLC5j'@; put 'bHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFuOmFmdGVye2hlaWdodDouMXJlbTt3aWR0aDoxLjJyZW07bGVmdDotLjNyZW07dHJhbnNmb3JtLW9yaWdpbjotMyU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLmFjdGl2ZT5zcGFuOmJlZm9yZSwu'@; put 'Y2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLmFjdGl2ZT5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFuOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX1AbWVkaWEg'@; put 'c2NyZWVuIGFuZCAobWF4LXdpZHRoOjk5MnB4KXsubWFpbi1jb250YWluZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlciwubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlcjowO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpw'@; put 'b2ludGVyO2ZvbnQtc2l6ZToxLjJyZW07aGVpZ2h0OjNyZW07d2lkdGg6M3JlbTtwYWRkaW5nOjAgMCAuMnJlbTt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO29wYWNp'@; put 'dHk6LjY1O29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtb3BhY2l0eSwgLjY1KX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcjpmb2N1cywubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyOmZvY3Vze291dGxpbmUtb2Zmc2V0Oi0uMjVy'@; put 'ZW19Lm1haW4tY29udGFpbmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI6ZW5hYmxlZDpob3ZlciwubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyOmVuYWJsZWQ6aG92ZXJ7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtaG92ZXItb3BhY2l0'@; put 'eSwgMSl9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI6ZGlzYWJsZWQsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcjpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2'@; put 'ZWwtMSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHIt'@; put 'bmF2LWxldmVsLTF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpmaXhlZDtpbnNldDowIGF1dG8gMCAwO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1uYXYtYmFja2dyb3VuZC1jb2xvciwgI2U4ZThlOCk7ei1pbmRleDoxMDM5O2hl'@; put 'aWdodDoxMDB2aDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xOHJlbSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFp'@; put 'bmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpm'@; put 'aXhlZDtpbnNldDowIDAgMCBhdXRvO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1uYXYtYmFja2dyb3VuZC1jb2xvciwgI2U4ZThlOCk7ei1pbmRleDoxMDM5O2hlaWdodDoxMDB2aDt0cmFuc2Zvcm06dHJhbnNsYXRlKDE4cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9y'@; put 'bSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0ye292ZXJmbG93OmluaGVyaXR9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIGFzaWRlLC5tYWlu'@; put 'LWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIGFzaWRlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYt'@; put 'bGV2ZWwtMiBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiBhc2lkZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaH0ubWFpbi1jb250YWluZXIg'@; put 'LnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiBh'@; put 'c2lkZXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCV9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2'@; put 'ZWwtMiAubmF2LC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdntwYWRkaW5nLWxlZnQ6MH0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWl0ZW0sLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwt'@; put 'MSAubmF2IC5uYXYtaXRlbSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWl0ZW0sLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtaXRlbXtoZWlnaHQ6MS44cmVtO21hcmdpbi1yaWdodDowfS5tYWluLWNv'@; put 'bnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluaywubWFpbi1j'@; put 'b250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5re3BhZGRpbmc6MCAuNnJlbSAwIDEuMnJlbTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9w'@; put 'LWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJy'@; put 'YWRpdXMsIC4xNXJlbSk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tY29sb3IsICM2NjY2NjYpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNs'@; put 'ci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZXtjb2xv'@; put 'cjojNjY2O2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSk7cG9zaXRpb246cmVsYXRp'@; put 'dmV9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZTpiZWZvcmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmU6YmVmb3JlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2'@; put 'LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmU6YmVmb3JlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZlOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6'@; put 'MDt3aWR0aDouMTVyZW07YmFja2dyb3VuZDp2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xy'@; put 'LW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5u'@; put 'YXYtbGluay5hY3RpdmUgLm5hdi1pY29ue2ZpbGw6IzAwNzJhMztmaWxsOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3IsICMwMDcyYTMpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250'@; put 'YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1s'@; put 'aW5rOmhvdmVye2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7'@; put 'dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWIt'@; put 'bmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6aG92ZXIs'@; put 'Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIg'@; put 'Lm5hdiAubmF2LWxpbmsuYWN0aXZle2JveC1zaGFkb3c6bm9uZX0ubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFp'@; put 'bmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUt'@; put 'bmF2LWhvdmVyLWJnLCB3aGl0ZSl9Lm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFp'@; put 'bmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMntib3JkZXItcmlnaHQ6bm9uZX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI6YWZ0ZXJ7ZGlz'@; put 'cGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1kaXZpZGVyLW9wYWNpdHksIC4xNSk7b3Bh'@; put 'Y2l0eTouMTU7aGVpZ2h0OjJyZW07d2lkdGg6LjA1cmVtO3dpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7dG9wOi41cmVtO2xlZnQ6MH0ubWFpbi1jb250YWluZXIgLmhlYWRlciAuYnJhbmRpbmd7bWF4LXdpZHRoOjEycmVtO21pbi13aWR0aDowO292ZXJmbG93'@; put 'OmhpZGRlbn0ubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFuZGluZ3twYWRkaW5nLWxlZnQ6MH0ubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFuZGluZyAuY2xyLWljb24sLm1haW4tY29udGFp'@; put 'bmVyIC5oZWFkZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcisuYnJhbmRpbmcgLmxvZ28sLm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcisuYnJhbmRpbmcgY2RzLWljb24sLm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhlYWRlci1oYW1idXJnZXIt'@; put 'dHJpZ2dlcisuYnJhbmRpbmcgY2xyLWljb257ZGlzcGxheTpub25lfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5icmFuZGluZysuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhlYWRlci1uYXYrLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye21hcmdp'@; put 'bi1sZWZ0OmF1dG99Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLWJhY2tkcm9wLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3Vu'@; put 'ZDojMDAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LWhlYWRlci1iYWNrZHJvcC1iZy1jb2xvciwgYmxhY2spO29wYWNpdHk6Ljg1O29wYWNpdHk6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LWhlYWRlci1iYWNrZHJvcC1vcGFjaXR5LCAuODUpO2N1cnNvcjpwb2ludGVy'@; put 'O3otaW5kZXg6MTAzOH0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVs'@; put 'LTIgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIg'@; put 'Lm5hdi1saW5re2ZsZXg6MCAwIGF1dG87b3BhY2l0eToxO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwt'@; put 'MSAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAuZmEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5j'@; put 'bHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLmZhLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAu'@; put 'aGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAuZmEsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVu'@; put 'dSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5mYXtkaXNwbGF5Om5vbmV9Lm1haW4tY29u'@; put 'dGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsg'@; put 'Lm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1s'@; put 'ZXZlbC0yIC5uYXYtbGluayAubmF2LXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc2xpZGluZy1wYW5lbC10ZXh0LWNvbG9yLCAjNjY2NjY2KTtsaW5lLWhlaWdodDoxLjJyZW07cGFkZGluZzouM3JlbSAwIC4zcmVtIDEuMnJlbTt3aGl0ZS1z'@; put 'cGFjZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51'@; put 'IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRl'@; put 'eHQsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVh'@; put 'ZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZs'@; put 'b3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9y'@; put 'OnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSk7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4tY29u'@; put 'dGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZTpiZWZvcmUsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1s'@; put 'aW5rLmFjdGl2ZTpiZWZvcmUsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlOmJlZm9yZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1u'@; put 'YXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOi4xNXJlbTtiYWNrZ3JvdW5kOnZhcigtLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3IpfS5tYWluLWNv'@; put 'bnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5u'@; put 'YXYtbGluay5hY3RpdmUgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVy'@; put 'IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tYWN0aXZlLWNvbG9yLCAjMDA3MmEzKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVh'@; put 'ZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93'@; put 'LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rOmhvdmVye2NvbG9yOiM2NjY7Y29sb3I6dmFy'@; put 'KC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1haW4tY29u'@; put 'dGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZT4ubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5h'@; put 'di1saW5rLmFjdGl2ZT4ubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlPi5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIg'@; put 'LmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmU+Lm5hdi10ZXh0e2NvbG9yOmluaGVyaXR9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93'@; put 'LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2Vye2Rpc3BsYXk6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZ3twb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjE4cmVtO21heC13'@; put 'aWR0aDoxOHJlbTt6LWluZGV4OjEwNDA7cGFkZGluZy1sZWZ0OjEuMnJlbX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbmt7b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFk'@; put 'ZXIgLmJyYW5kaW5nIC5jbHItaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyAubG9nbywubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyBjZHMtaWNvbiwubWFpbi1jb250YWluZXIub3Bl'@; put 'bi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyBjbHItaWNvbntkaXNwbGF5OmlubGluZS1ibG9ja30ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyBjZHMtaWNvbltzaGFwZT12bS1idWddLC5tYWluLWNvbnRhaW5lci5vcGVuLWhh'@; put 'bWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29uW3NoYXBlPXZtLWJ1Z10sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgLmNsci12bXctbG9nb3tiYWNrZ3JvdW5kLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLXJhZGl1czouMTVy'@; put 'ZW19Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgLnRpdGxle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXNsaWRpbmctcGFuZWwtdGV4dC1jb2xvciwgIzY2NjY2Nik7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW59'@; put 'Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2V7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6YXV0bztsZWZ0OjA7ei1pbmRleDoxMDM5O3RyYW5zZm9ybTp0cmFuc2xhdGUoMTguNnJlbSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1h'@; put 'aW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U6YWZ0ZXJ7Y29udGVudDpub25lfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW57YmFja2dyb3VuZDowIDB9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVy'@; put 'Z2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntsZWZ0Oi4xNXJlbTt0cmFuc2Zvcm0tb3JpZ2luOjklO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWlu'@; put 'LWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVk'@; put 'ZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAu'@; put 'c3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtwYWRkaW5nLXRv'@; put 'cDo0LjJyZW07dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLnNpZGVuYXYtY29udGVudCwubWFpbi1jb250YWluZXIub3Blbi1o'@; put 'YW1idXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1t'@; put 'ZW51IC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50e3BhZGRpbmctYm90dG9tOjEuMnJlbX0ubWFpbi1jb250'@; put 'YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1s'@; put 'ZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNp'@; put 'dGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Bl'@; put 'bi1vdmVyZmxvdy1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMntwYWRkaW5nLXRvcDoxLjJyZW19Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2xlZnQ6YXV0bzt6LWluZGV4OjEwMzk7dHJh'@; put 'bnNmb3JtOnRyYW5zbGF0ZSgtMTguNnJlbSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZTphZnRlcntjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xy'@; put 'LW5hdi1jbG9zZT5zcGFue2JhY2tncm91bmQ6MCAwfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2hlaWdodDouMXJl'@; put 'bTt3aWR0aDoxLjJyZW07bGVmdDotLjNyZW07dHJhbnNmb3JtLW9yaWdpbjotMyU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0u'@; put 'bWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIu'@; put 'b3Blbi1oYW1idXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0x'@; put 'LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtvdmVyZmxvdzppbmhlcml0O3dpZHRoOjE4cmVtO21heC13aWR0aDoxOHJlbX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNs'@; put 'ci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1l'@; put 'bnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3dpZHRoOjE4cmVtO21heC13aWR0aDoxOHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7Lm1h'@; put 'aW4tY29udGFpbmVyIC5oZWFkZXIgLmJyYW5kaW5ne21heC13aWR0aDo3LjJyZW07bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWlu'@; put 'LWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe3RyYW5zZm9ybTp0cmFuc2xhdGUoLTE0LjRyZW0pfS5tYWluLWNv'@; put 'bnRhaW5lciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1j'@; put 'b250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3RyYW5zZm9ybTp0cmFuc2xhdGUoMTQuNHJlbSl9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmd7d2lkdGg6MTQuNHJlbTttYXgtd2lkdGg6MTQuNHJlbX0ubWFpbi1j'@; put 'b250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Yi1uYXYuY2xy'@; put 'LW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTF7b3ZlcmZsb3c6aW5oZXJpdDt3aWR0'@; put 'aDoxNC40cmVtO21heC13aWR0aDoxNC40cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3Nle3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OmF1dG87bGVmdDowO3otaW5kZXg6MTAzOTt0cmFuc2Zvcm06dHJhbnNsYXRlKDE1cmVtKTt0cmFuc2l0'@; put 'aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZTphZnRlcntjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29u'@; put 'dGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zaWRlbmF2LmNsci1uYXYtbGV2'@; put 'ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMnt3aWR0aDoxNC40cmVtO21heC13aWR0aDoxNC40cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2V7cG9zaXRpb246'@; put 'Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OmF1dG87ei1pbmRleDoxMDM5O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTE1cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlOmFmdGVye2NvbnRlbnQ6'@; put 'bm9uZX19OnJvb3R7LS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTE6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNDAwKTstLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMjp2YXIoLS1jbHItY29s'@; put 'b3ItZGFuZ2VyLTgwMCk7LS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTM6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yKTstLWNsci1wcm9ncmVzcy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApfS5wcm9ncmVzcywucHJvZ3Jlc3Mtc3RhdGlje2JhY2tncm91bmQt'@; put 'Y29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czowO2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDoyZW07bWFyZ2luOjA7bWF4LWhlaWdodDouN3JlbTttaW4taGVpZ2h0Oi4ycmVtO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9LnByb2dyZXNzPnByb2dyZXNz'@; put 'ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpO2Rpc3BsYXk6YmxvY2s7YmFj'@; put 'a2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWJnLWNvbG9yLCAjZThlOGU4KTtib3JkZXI6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNv'@; put 'bG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LnByb2dyZXNzPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJv'@; put 'Z3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LnByb2dyZXNzPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi1tb3otcHJvZ3Jlc3MtYmFyey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO2Nv'@; put 'bG9yOiNlOGU4ZTg7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWJnLWNvbG9yLCAjZThlOGU4KTttaW4td2lkdGg6Mi40cmVtO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfS5wcm9ncmVzcz5wcm9ncmVzc1t2YWx1ZT0iMCJdOjotd2Via2l0LXBy'@; put 'b2dyZXNzLXZhbHVley13ZWJraXQtdHJhbnNpdGlvbjpub25lO3RyYW5zaXRpb246bm9uZX0ucHJvZ3Jlc3M+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFye2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJv'@; put 'Z3Jlc3MtYmctY29sb3IsICNlOGU4ZTgpfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lfS5wcm9n'@; put 'cmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluO3RyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluO2JvcmRlci1yYWRpdXM6MH0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzc3tjb2xvcjojNWViNzE1O2Nv'@; put 'bG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLnN1Y2Nlc3M+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNWViNzE1O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xv'@; put 'ci0xLCAjNWViNzE1KX0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojNWViNzE1O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xLCAjNWViNzE1KX0ucHJvZ3Jlc3Mud2FybmluZz5wcm9n'@; put 'cmVzc3tjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMywgI2MyMWQwMCl9LnByb2dyZXNzLndhcm5pbmc+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0t'@; put 'Y2xyLXByb2dyZXNzLWFsdC1jb2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3Mud2FybmluZz5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zLCAjYzIxZDAwKX0u'@; put 'cHJvZ3Jlc3MuZGFuZ2VyPnByb2dyZXNze2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MuZGFuZ2VyPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNr'@; put 'Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMiwgI2MyMWQwMCl9LnByb2dyZXNzLmRhbmdlcj5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1j'@; put 'b2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MubGFiZWxlZCwucHJvZ3Jlc3Mtc3RhdGljLmxhYmVsZWR7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDozZW19LnByb2dyZXNzLmxhYmVsZWQ+c3BhbiwucHJvZ3Jlc3Mtc3RhdGljLmxhYmVsZWQ+c3BhbntkaXNwbGF5OmJsb2NrO2Zv'@; put 'bnQtc2l6ZToxZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDowO2xpbmUtaGVpZ2h0OjFlbTttYXJnaW4tdG9wOi0uMzc1ZW19QGtleWZyYW1lcyBjbHItcHJvZ3Jlc3MtZmFkZXswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ucHJvZ3Jlc3MucHJvZ3Jlc3MtZmFkZT5wcm9n'@; put 'cmVzc1t2YWx1ZT0iMTAwIl0sLnByb2dyZXNzLnByb2dyZXNzLWZhZGU+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdK3NwYW57YW5pbWF0aW9uOmNsci1wcm9ncmVzcy1mYWRlIC4zcyBsaW5lYXIgLjVzIGZvcndhcmRzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3MsLnByb2dyZXNzLmZs'@; put 'YXNoPnByb2dyZXNze3RyYW5zaXRpb246Y29sb3IgLjFzIGVhc2Utb3V0IDFzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVley13ZWJraXQtdHJhbnNp'@; put 'dGlvbjp3aWR0aCAuMjNzIGVhc2UtaW4sYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1vdXQgLjNzO3RyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluLGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2Utb3V0IC4zc30ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNzW3ZhbHVlPSIwIl06'@; put 'Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7LXdlYmtpdC10cmFuc2l0aW9uOm5vbmU7dHJhbnNpdGlvbjpub25lfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3M6Oi1tb3otcHJv'@; put 'Z3Jlc3MtYmFyLC5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7LW1vei10cmFuc2l0aW9uOndpZHRoIC4yM3MgZWFzZS1pbixiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlLW91dCAuM3M7dHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW4sYmFja2dyb3VuZC1j'@; put 'b2xvciAuMXMgZWFzZS1vdXQgLjNzfS5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl17Y29sb3I6IzVlYjcxNTtjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl06Oi13ZWJr'@; put 'aXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNWViNzE1O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xLCAjNWViNzE1KX0ucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3Jv'@; put 'dW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5wcm9ncmVzcy1mYWRlLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXSwucHJvZ3Jlc3MucHJvZ3Jlc3MtZmFkZS5mbGFzaD5wcm9ncmVz'@; put 'c1t2YWx1ZT0iMTAwIl0rc3BhbnthbmltYXRpb246Y2xyLXByb2dyZXNzLWZhZGUgLjZzIGxpbmVhciAxcyBmb3J3YXJkc30ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNzW3ZhbHVlPSIxMDAiXXtjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3It'@; put 'MiwgI2MyMWQwMCl9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzc1t2YWx1ZT0iMTAwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0u'@; put 'cHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNzW3ZhbHVlPSIxMDAiXTo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX1Aa2V5ZnJhbWVzIGNsci1wcm9n'@; put 'cmVzcy1sb29wZXJ7MCV7bGVmdDotMTAwJX10b3tsZWZ0OjEwMCV9fS5wcm9ncmVzcy5sb29we3Bvc2l0aW9uOnJlbGF0aXZlfS5wcm9ncmVzcy5sb29wPnByb2dyZXNze292ZXJmbG93OmhpZGRlbjtjb2xvcjp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCwg'@; put 'dHJhbnNwYXJlbnQpfS5wcm9ncmVzcy5sb29wPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCwgdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy5sb29wPnBy'@; put 'b2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsIHRyYW5zcGFyZW50KX0ucHJvZ3Jlc3MubG9vcD5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3Vu'@; put 'ZC1jb2xvcjp0cmFuc3BhcmVudH0ucHJvZ3Jlc3MubG9vcDphZnRlcnthbmltYXRpb246Y2xyLXByb2dyZXNzLWxvb3BlciAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtjb250ZW50OiIgIjt0b3A6MDtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztiYWNr'@; put 'Z3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7d2lkdGg6NzUlfS5wcm9ncmVzcy5sb29wLmRhbmdlcjphZnRlciwucHJvZ3Jlc3MubG9vcC53YXJuaW5nOmFmdGVye2JhY2tncm91bmQtY29sb3I6'@; put 'I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMiwgI2MyMWQwMCl9LnByb2dyZXNzLmxvb3Auc3VjY2VzczphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9y'@; put 'LTEsICM1ZWI3MTUpfS5uYXYtaXRlbSAucHJvZ3Jlc3M6YWZ0ZXJ7dG9wOjB9LnByb2dyZXNzLXN0YXRpY3twb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MDt3aWR0aDoxMDAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVye2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3Jv'@; put 'dW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1iZy1jb2xvciwgI2U4ZThlOCk7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1j'@; put 'b2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MCU7Y29udGVudDoiICJ9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1'@; put 'ZT0iMSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMiXTpiZWZvcmV7d2lkdGg6MiV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0'@; put 'ZXJbZGF0YS12YWx1ZT0iNCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3Mt'@; put 'bWV0ZXJbZGF0YS12YWx1ZT0iNyJdOmJlZm9yZXt3aWR0aDo1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRp'@; put 'Yz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTIiXTpiZWZvcmV7d2lkdGg6MTAl'@; put 'fS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE1Il06'@; put 'YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE3Il06YmVmb3Jle3dpZHRoOjE1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltk'@; put 'YXRhLXZhbHVlPSIxOCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxOSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1t'@; put 'ZXRlcltkYXRhLXZhbHVlPSIyMSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMiJdOmJlZm9yZXt3aWR0aDoyMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjMiXTpiZWZvcmUsLnByb2dyZXNzLXN0'@; put 'YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjYiXTpiZWZvcmUsLnByb2dy'@; put 'ZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjciXTpiZWZvcmV7d2lkdGg6MjUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI5'@; put 'Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFs'@; put 'dWU9IjMyIl06YmVmb3Jle3dpZHRoOjMwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzMyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVz'@; put 'cy1tZXRlcltkYXRhLXZhbHVlPSIzNSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNyJdOmJlZm9yZXt3aWR0aDozNSV9LnByb2dyZXNz'@; put 'LXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDAiXTpiZWZvcmUsLnBy'@; put 'b2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDIiXTpiZWZvcmV7d2lkdGg6NDAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9'@; put 'IjQzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEt'@; put 'dmFsdWU9IjQ2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ3Il06YmVmb3Jle3dpZHRoOjQ1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9n'@; put 'cmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGlj'@; put 'Pi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1MiJdOmJlZm9yZXt3aWR0aDo1MCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTQiXTpiZWZvcmUs'@; put 'LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTciXTpi'@; put 'ZWZvcmV7d2lkdGg6NTUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2Rh'@; put 'dGEtdmFsdWU9IjYwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYyIl06YmVmb3Jle3dpZHRoOjYwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5w'@; put 'cm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3Rh'@; put 'dGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NyJdOmJlZm9yZXt3aWR0aDo2NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjgiXTpiZWZv'@; put 'cmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzEi'@; put 'XTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzIiXTpiZWZvcmV7d2lkdGg6NzAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjczIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVy'@; put 'W2RhdGEtdmFsdWU9Ijc0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNz'@; put 'LW1ldGVyW2RhdGEtdmFsdWU9Ijc3Il06YmVmb3Jle3dpZHRoOjc1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3OSJdOmJlZm9yZSwucHJvZ3Jlc3Mt'@; put 'c3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MiJdOmJlZm9yZXt3aWR0'@; put 'aDo4MCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0i'@; put 'ODUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODciXTpiZWZvcmV7d2lkdGg6ODUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1l'@; put 'dGVyW2RhdGEtdmFsdWU9Ijg4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dy'@; put 'ZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkyIl06YmVmb3Jle3dpZHRoOjkwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5MyJdOmJlZm9yZSwucHJvZ3Jl'@; put 'c3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NiJdOmJlZm9yZXt3'@; put 'aWR0aDo5NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTciXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1'@; put 'ZT0iOTkiXTpiZWZvcmV7d2lkdGg6OTglfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEwMCJdOmJlZm9yZXt3aWR0aDoxMDAlfS5wcm9ncmVzcy1zdGF0aWMubGFiZWxlZD4ucHJvZ3Jlc3MtbWV0ZXJ7cmlnaHQ6M2VtfS5wcm9ncmVzcy1zdGF0aWMuc3Vj'@; put 'Y2Vzcz4ucHJvZ3Jlc3MtbWV0ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzVlYjcxNTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLXN0YXRpYy53YXJuaW5nPi5wcm9ncmVzcy1tZXRlcjpiZWZvcmV7YmFja2dy'@; put 'b3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3Mtc3RhdGljLmRhbmdlcj4ucHJvZ3Jlc3MtbWV0ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9y'@; put 'OnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMiwgI2MyMWQwMCl9LmNhcmQtYmxvY2sgLnByb2dyZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWMsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcywuY2FyZC1mb290ZXIgLnByb2dyZXNzLXN0YXRpY3ttYXJnaW46MDttYXJnaW4tdG9w'@; put 'Oi0uNnJlbTtoZWlnaHQ6LjE4NzVyZW07cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcz5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlciwuY2FyZC1mb290ZXIgLnByb2dyZXNzPnByb2dyZXNzLC5jYXJkLWZv'@; put 'b3RlciAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcntoZWlnaHQ6LjE4NzVyZW07cG9zaXRpb246YWJzb2x1dGV9LmNhcmQtYmxvY2sgLnByb2dyZXNzLnRvcCwuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljLnRvcCwuY2FyZC1mb290ZXIgLnByb2dyZXNzLnRvcCwuY2FyZC1m'@; put 'b290ZXIgLnByb2dyZXNzLXN0YXRpYy50b3B7bWFyZ2luLXRvcDowO3RvcDowfS5uYXYtaXRlbSAucHJvZ3Jlc3MsLm5hdi1pdGVtIC5wcm9ncmVzcy1zdGF0aWN7bWFyZ2luOjA7aGVpZ2h0Oi4yNHJlbTttaW4taGVpZ2h0Oi4yNHJlbTttYXgtaGVpZ2h0Oi4yNHJlbTtsZWZ0OjB9Lm5hdi1p'@; put 'dGVtIC5wcm9ncmVzcz5wcm9ncmVzcywubmF2LWl0ZW0gLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJ7aGVpZ2h0Oi4yNHJlbTttaW4taGVpZ2h0Oi4yNHJlbTttYXgtaGVpZ2h0Oi4yNHJlbTtwb3NpdGlvbjphYnNvbHV0ZX0ucHJvZ3Jlc3MtYmxvY2t7ZGlzcGxheTpmbGV4O3dp'@; put 'ZHRoOjEwMCU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnByb2dyZXNzLWJsb2NrPip7ZmxleDowIDAgYXV0bztwYWRkaW5nLXJpZ2h0Oi42cmVtfS5wcm9ncmVzcy1ibG9jaz46Zmlyc3QtY2hpbGR7cGFkZGluZy1yaWdodDouOXJlbX0ucHJvZ3Jlc3MtYmxv'@; put 'Y2s+Omxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDowfS5wcm9ncmVzcy1ibG9jaz5sYWJlbHtmb250LXdlaWdodDo2MDB9LnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcywucHJvZ3Jlc3MtYmxvY2s+LnByb2dyZXNzLXN0YXRpY3tmbGV4OjAgMSBhdXRvfS5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jl'@; put 'c3MtZ3JvdXB7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDphdXRvO2ZsZXg6MCAxIGF1dG87ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCV9LnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcy1ncm91cCAuY2xyLXJvd3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5wcm9ncmVzcy1ibG9j'@; put 'az4ucHJvZ3Jlc3MtZ3JvdXAgLmNsci1yb3c+W2NsYXNzKj1jbHItY29sLV17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9ja3ttYXJnaW4tYm90dG9tOi42cmVtO3BhZGRpbmc6MH0uY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2s6bGFz'@; put 'dC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrPmxhYmVse21heC13aWR0aDozMyU7bGluZS1oZWlnaHQ6LjlyZW19LmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2sgLnByb2dyZXNz'@; put 'LXN0YXRpY3twb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6LjYzOTVyZW07bWFyZ2luLXRvcDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3M+cHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcz4ucHJvZ3Jlc3MtbWV0ZXIsLmNhcmQtYmxv'@; put 'Y2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWM+cHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVye2hlaWdodDouNjM5NXJlbX1fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAucHJvZ3Jlc3MtYmxvY2s+bGFi'@; put 'ZWwsOnJvb3QgLnByb2dyZXNzLWJsb2NrPmxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zcGlubmVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozLjZyZW07d2lkdGg6My42cmVtO21pbi1oZWlnaHQ6My42cmVtO21pbi13aWR0aDozLjZyZW07YW5p'@; put 'bWF0aW9uOnNwaW4gMXMgbGluZWFyIGluZmluaXRlO21hcmdpbjowO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMGlkJTNEJTIyTGF5ZXJfMiUyMiUyMGRhdGEtbmFtZSUzRCUyMkxheWVyJTIwMiUyMiUyMHhtbG5zJTNE'@; put 'JTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNzIlMjA3MiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZpbGwlM0ElMjBub25lJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW1pdGVybGltaXQlM0ElMjAxMCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS13aWR0aCUzQSUyMDVweCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZSUzQSUyMGJsYWNrJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW9wYWNpdHklM0ElMjAwLjE1JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzMDA3MmEzJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZzJTNFJTBBJTIw'@; put 'JTIwJTIwJTIwJTNDdGl0bGUlM0VQcmVsb2FkZXJfNzJ4MiUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGN4JTNEJTIyMzYlMjIlMjBjeSUzRCUyMjM2JTIyJTIwciUzRCUyMjMzJTIyJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTND'@; put 'cGF0aCUyMGNsYXNzJTNEJTIyY2xzLTIlMjIlMjBkJTNEJTIyTTE0LjMlMkM2MC45QTMzJTJDMzMlMkMwJTJDMCUyQzElMkMzNiUyQzMlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZwYXRoJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTt0ZXh0LWluZGVudDoxMDAlO292ZXJmbG93OmhpZGRlbjt3'@; put 'aGl0ZS1zcGFjZTpub3dyYXB9LnNwaW5uZXIuc3Bpbm5lci1tZHtoZWlnaHQ6MS44cmVtO3dpZHRoOjEuOHJlbTttaW4taGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtfS5zcGlubmVyLnNwaW5uZXItaW5saW5lLC5zcGlubmVyLnNwaW5uZXItc217aGVpZ2h0Oi45cmVtO3dpZHRoOi45'@; put 'cmVtO21pbi1oZWlnaHQ6LjlyZW07bWluLXdpZHRoOi45cmVtfS5zcGlubmVyLnNwaW5uZXItaW5saW5le3ZlcnRpY2FsLWFsaWduOnRleHQtYm90dG9tfS5zcGlubmVyLnNwaW5uZXItaW52ZXJzZXtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2'@; put 'ZyUyMGlkJTNEJTIyTGF5ZXJfMiUyMiUyMGRhdGEtbmFtZSUzRCUyMkxheWVyJTIwMiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNzIlMjA3MiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMl'@; put 'M0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZpbGwlM0ElMjBub25lJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW1pdGVybGltaXQlM0ElMjAxMCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMHN0cm9rZS13aWR0aCUzQSUyMDVweCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMHN0cm9rZSUzQSUyMHdoaXRlJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW9wYWNpdHklM0ElMjAwLjE1JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzNzRjMWUyJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VQcmVsb2FkZXJfNzJ4MiUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGN4JTNE'@; put 'JTIyMzYlMjIlMjBjeSUzRCUyMjM2JTIyJTIwciUzRCUyMjMzJTIyJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTIlMjIlMjBkJTNEJTIyTTE0LjMlMkM2MC45QTMzJTJDMzMlMkMwJTJDMCUyQzElMkMzNiUyQzMlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Ml'@; put 'MkZwYXRoJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKX0uc3Bpbm5lci5zcGlubmVyLW5ldXRyYWwtMHtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMGlkJTNEJTIyTGF5ZXJfMiUyMiUyMGRhdGEtbmFtZSUzRCUyMkxheWVyJTIwMiUyMiUyMHht'@; put 'bG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNzIlMjA3MiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZpbGwlM0ElMjBub25lJTNCJTBBJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW1pdGVybGltaXQlM0ElMjAxMCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS13aWR0aCUzQSUyMDVweCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZSUzQSUyMHRyYW5zcGFyZW50JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW9wYWNpdHklM0ElMjAxJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzZmZmZmZmJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZz'@; put 'JTNFJTBBJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VQcmVsb2FkZXJfNzJ4MiUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGN4JTNEJTIyMzYlMjIlMjBjeSUzRCUyMjM2JTIyJTIwciUzRCUyMjMzJTIyJTJGJTNFJTBBJTIwJTIw'@; put 'JTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTIlMjIlMjBkJTNEJTIyTTE0LjMlMkM2MC45QTMzJTJDMzMlMkMwJTJDMCUyQzElMkMzNiUyQzMlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZwYXRoJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKX0uc3Bpbm5lci5zcGlubmVyLWNoZWNre2Fu'@; put 'aW1hdGlvbjpub25lO2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDM2JTIwMzYlMjIlMjBwcmVzZXJ2ZUFzcGVjdFJhdGlvJTNEJTIyeE1pZFlNaWQlMjBtZWV0'@; put 'JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlMjBmb2N1c2FibGUlM0QlMjJmYWxzZSUyMiUyMGFyaWEtaGlkZGVuJTNEJTIy'@; put 'dHJ1ZSUyMiUyMHJvbGUlM0QlMjJpbWclMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzAwNzJhMyUyMiUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xMy43MiUyQzI3LjY5JTJDMy4yOSUyQzE3LjI3YTElMkMxJTJDMCUy'@; put 'QzAlMkMxJTJDMS40MS0xLjQxbDklMkM5TDMxLjI5JTJDNy4yOWExJTJDMSUyQzAlMkMwJTJDMSUyQzEuNDElMkMxLjQxWiUyMiUzRSUzQyUyRnBhdGglM0UlM0MlMkZzdmclM0UpfS5idG4tc20gLnNwaW5uZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIC5zcGlubmVye2hl'@; put 'aWdodDouNjVyZW07d2lkdGg6LjY1cmVtO21pbi1oZWlnaHQ6LjY1cmVtO21pbi13aWR0aDouNjVyZW19LmJ0bi1pY29uOm5vdCguYnRuLXNtKSAuc3Bpbm5lcntoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07bWluLWhlaWdodDouOHJlbTttaW4td2lkdGg6LjhyZW19OnJvb3R7LS1jbHItdGFi'@; put 'bGUtYmdjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci10aGVhZC1iZ2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwKTstLWNsci10YWJsZS1oZWFkZXItYm9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLXRhYmxl'@; put 'LWZvb3Rlci1ib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItdGFibGUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItdGFibGVyb3ctYm9yZGVyY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTst'@; put 'LWNsci10YWJsZS1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci10YWJsZS1ib3JkZXJ3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoKTstLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzOi4xcmVtOy0tY2xyLXRhYmxlLWZvbnQtY29s'@; put 'b3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci10aGVhZC1jb2xvcjojNjY2NjY2fS50YWJsZXtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3'@; put 'aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdGFibGUtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtiYWNrZ3Jv'@; put 'dW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO21hcmdpbjowO21hcmdpbi10b3A6MS4ycmVtO21heC13aWR0aDoxMDAlO3dpZHRo'@; put 'OjEwMCV9LnRhYmxlIHRoLC50YWJsZSB0ZHtmb250LXNpemU6LjY1cmVtO2xpbmUtaGVpZ2h0Oi43cmVtO2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDouMDVyZW07Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9y'@; put 'ZGVyLXRvcC1jb2xvcjojZThlOGU4O2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXRhYmxlcm93LWJvcmRlcmNvbG9yLCAjZThlOGU4KTtwYWRkaW5nOi41NXJlbSAuNnJlbTt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnRhYmxlIHRoLmxlZnQsLnRhYmxlIHRkLmxl'@; put 'ZnR7dGV4dC1hbGlnbjpsZWZ0fS50YWJsZSB0aC5sZWZ0OmZpcnN0LWNoaWxkLC50YWJsZSB0ZC5sZWZ0OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDouM3JlbX0udGFibGUgdGh7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdGhlYWQtY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouNTVy'@; put 'ZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wM2VtO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10aGVhZC1iZ2NvbG9yLCAjZmFmYWZhKTt2ZXJ0aWNhbC1hbGlnbjpib3R0b207Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDti'@; put 'b3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItYm90dG9tLWNvbG9yOiNjY2M7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2Nj'@; put 'KTtib3JkZXItdG9wOjAgbm9uZX0udGFibGUgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGR7Ym9yZGVyLXRvcDowIG5vbmV9LnRhYmxlIHRib2R5K3Rib2R5e2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDouMDVyZW07Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1jbHItdGFi'@; put 'bGUtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LnRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFk'@; put 'aXVzOi4xcmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUgdGhlYWQgdGg6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1yaWdodC1y'@; put 'YWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xcmVtO2JvcmRlci1ib3R0b20tbGVm'@; put 'dC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4xcmVtO2JvcmRlci1ib3R0b20t'@; put 'cmlnaHQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9LnRhYmxlLWNvbXBhY3QgdGgsLnRhYmxlLWNvbXBhY3QgdGR7cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0aGVhZCB0aHtib3Jk'@; put 'ZXI6MDtib3JkZXItcmFkaXVzOjA7ZGlzcGxheTpub25lfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0aHtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0'@; put 'aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0aHt0ZXh0LWFs'@; put 'aWduOmxlZnQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0ZDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtdmVydGljYWwgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0'@; put 'LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC13aWR0aDouMDVyZW07Ym9yZGVyLXJpZ2h0LXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xv'@; put 'ciwgI2NjY2NjYyk7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO2ZvbnQtd2VpZ2h0OjYwMH0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0aCwu'@; put 'dGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjAgbm9uZX0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtdmVy'@; put 'dGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9'@; put 'LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5OmZpcnN0LW9mLXR5cGUgdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwudGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXIt'@; put 'dG9wLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnRhYmxlLnRh'@; put 'YmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVz'@; put 'LCAuMXJlbSl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVy'@; put 'LWJvdHRvbS1yaWdodC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUudGFibGUtbm9ib3JkZXJ7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kLWNvbG9y'@; put 'OnRyYW5zcGFyZW50O2JvcmRlcjowfS50YWJsZS50YWJsZS1ub2JvcmRlciB0aHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRl'@; put 'ci10b3A6MCBub25lfS50YWJsZS50YWJsZS1ub2JvcmRlciB0aDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MCBub25lfS50YWJsZS50YWJsZS1ub2JvcmRlciB0ZHtib3JkZXItdG9wOjAgbm9uZTtwYWRkaW5nLXRvcDouNnJlbX0udGFibGUudGFibGUtbm9ib3JkZXIgdGQ6Zmlyc3QtY2hp'@; put 'bGR7Ym9yZGVyLXJpZ2h0OjAgbm9uZX0udGFibGUudGFibGUtbm9ib3JkZXIgdGhlYWQgdGg6Zmlyc3QtY2hpbGQsLnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoZWFkIHRoOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowfS50YWJsZS50YWJsZS1ub2JvcmRlciB0aCwudGFibGUudGFibGUtbm9i'@; put 'b3JkZXIgdGR7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudH0udGFibGUudGFibGUtbm9ib3JkZXIgdGg6Zmlyc3QtY2hpbGQsLnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRkOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDowfS50YWJsZS50YWJsZS1jb21wYWN0IHRoLC50YWJsZS50YWJsZS1jb21w'@; put 'YWN0IHRke3BhZGRpbmctdG9wOi4zcmVtO3BhZGRpbmctYm90dG9tOi4yNXJlbX0udGFibGUudGFibGUtY29tcGFjdC50YWJsZS1ub2JvcmRlciB0aCwudGFibGUudGFibGUtY29tcGFjdC50YWJsZS1ub2JvcmRlciB0ZHtwYWRkaW5nLXRvcDouMzVyZW07cGFkZGluZy1ib3R0b206LjNyZW19'@; put 'OnJvb3R7LS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXRvb2x0aXAtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItdG9vbHRpcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1'@; put 'dHJhbC0wKTstLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1wMy1mb250LXdlaWdodCl9LnRvb2x0aXB7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O292ZXJmbG93OnZpc2libGV9LnRvb2x0aXA+LnRvb2x0aXAtY29udGVu'@; put 'dHt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBsaW5lYXI7d2hpdGUtc3BhY2U6bm9ybWFsO3otaW5kZXg6MTA1MH0udG9vbHRpcD4udG9vbHRpcC1jb250ZW50OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2luc2V0Oi0yMHB4O2NvbnRlbnQ6IiJ9'@; put 'LnRvb2x0aXA6aG92ZXI+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcDpmb2N1cz4udG9vbHRpcC1jb250ZW50e3Zpc2liaWxpdHk6dmlzaWJsZTtvcGFjaXR5OjF9LnRvb2x0aXA6aG92ZXI+LnRvb2x0aXAtY29udGVudDplbXB0eSwudG9vbHRpcDpmb2N1cz4udG9vbHRpcC1jb250ZW50OmVt'@; put 'cHR5e3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MH0udG9vbHRpcDpmb2N1c3tvdXRsaW5lOjB9LnRvb2x0aXA6Zm9jdXM+OmZpcnN0LWNoaWxke291dGxpbmUtb2Zmc2V0Oi4wNXJlbTtvdXRsaW5lLXdpZHRoOi4wNXJlbTtvdXRsaW5lLWNvbG9yOiMzYjk5ZmM7b3V0bGluZS1zdHlsZTpz'@; put 'b2xpZH0udG9vbHRpcD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwLnRvb2x0aXAtdG9wLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXRvcC1yaWdodHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0'@; put 'ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJh'@; put 'Y2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07cG9zaXRp'@; put 'b246YWJzb2x1dGU7aW5zZXQ6YXV0byBhdXRvIDEwMCUgNTAlO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDttYXJnaW4tYm90dG9tOi44cmVtfS50b29sdGlwPi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLC50b29sdGlwLnRvb2x0aXAtdG9wLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQ6YmVm'@; put 'b3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtcmlnaHQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotLjQycmVtO2xlZnQ6MDt0b3A6YXV0bztyaWdodDphdXRvO2NvbnRlbnQ6IiI7Ym9yZGVyLWxlZnQ6LjNyZW0gc29saWQgIzAwMDtib3JkZXItbGVm'@; put 'dC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCAjMDAwO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2Jv'@; put 'cmRlci1ib3R0b206LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LnRvb2x0aXAudG9vbHRpcC10b3AtbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtbGVmdHtjb2xvcjojZmZmO2NvbG9yOnZhcigt'@; put 'LWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNv'@; put 'bG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0g'@; put 'LjZyZW07d2lkdGg6MTJyZW07cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6YXV0byA1MCUgMTAwJSBhdXRvO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7bWFyZ2luLWJvdHRvbTouOHJlbX0udG9vbHRpcC50b29sdGlwLXRvcC1sZWZ0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLC50b29s'@; put 'dGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtbGVmdDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uNDJyZW07cmlnaHQ6MDt0b3A6YXV0bztsZWZ0OmF1dG87Y29udGVudDoiIjtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgIzAwMDtib3JkZXItcmlnaHQtY29sb3I6'@; put 'dmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgIzAwMDtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1sZWZ0Oi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0'@; put 'b206LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tcmlnaHQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtYm90dG9tLXJpZ2h0e2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0t'@; put 'Y2xyLXRvb2x0aXAtY29sb3IsIHdoaXRlKTtmb250LXNpemU6LjY1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItdG9vbHRpcC1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29s'@; put 'b3I6dmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgYmxhY2spO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXRvb2x0aXAtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtsaW5lLWhlaWdodDouOXJlbTttYXJnaW46MDtwYWRkaW5nOi40NXJlbSAu'@; put 'NnJlbTt3aWR0aDoxMnJlbTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDoxMDAlIGF1dG8gYXV0byA1MCU7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO21hcmdpbi10b3A6LjhyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAg'@; put 'LnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNDJyZW07bGVmdDowO2JvdHRvbTphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItbGVmdDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZh'@; put 'cigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVy'@; put 'LXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1sZWZ0Pi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0e2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0t'@; put 'Y2xyLXRvb2x0aXAtY29sb3IsIHdoaXRlKTtmb250LXNpemU6LjY1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItdG9vbHRpcC1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29s'@; put 'b3I6dmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgYmxhY2spO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXRvb2x0aXAtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtsaW5lLWhlaWdodDouOXJlbTttYXJnaW46MDtwYWRkaW5nOi40NXJlbSAu'@; put 'NnJlbTt3aWR0aDoxMnJlbTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDoxMDAlIDUwJSBhdXRvIGF1dG87Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDttYXJnaW4tdG9wOi44cmVtfS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAg'@; put 'LnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LS40MnJlbTtyaWdodDowO2JvdHRvbTphdXRvO2xlZnQ6YXV0bztjb250ZW50OiIiO2JvcmRlci1yaWdodDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1yaWdodC1jb2xvcjp2'@; put 'YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCAjMDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLWxlZnQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVy'@; put 'LXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjUwJSBhdXRvIGF1'@; put 'dG8gMTAwJTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tn'@; put 'cm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6'@; put 'LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO21hcmdpbi1sZWZ0Oi44cmVtfS50b29sdGlwLnRvb2x0aXAtcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50'@; put 'b29sdGlwLXJpZ2h0OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi0uNDVyZW07Ym90dG9tOmF1dG87cmlnaHQ6YXV0bztjb250ZW50OiIiO2JvcmRlci10b3A6LjNyZW0gc29saWQgIzAwMDtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQt'@; put 'Y29sb3IpO2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgIzAwMDtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLWJvdHRvbTouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDouMjVyZW0gc29saWQgdHJhbnNwYXJl'@; put 'bnQ7cG9pbnRlci1ldmVudHM6bm9uZX0udG9vbHRpcC50b29sdGlwLWxlZnQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbGVmdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDo1MCUgMTAwJSBhdXRvIGF1dG87Y29sb3I6I2ZmZjtjb2xvcjp2YXIo'@; put 'LS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1j'@; put 'b2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVt'@; put 'IC42cmVtO3dpZHRoOjEycmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7bWFyZ2luLXJpZ2h0Oi44cmVtfS50b29sdGlwLnRvb2x0aXAtbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbGVmdDpiZWZvcmV7cG9zaXRpb246'@; put 'YWJzb2x1dGU7dG9wOjA7cmlnaHQ6LS40NXJlbTtib3R0b206YXV0bztsZWZ0OmF1dG87Y29udGVudDoiIjtib3JkZXItdG9wOi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouMjVyZW0gc29s'@; put 'aWQgIzAwMDtib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItYm90dG9tOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0udG9vbHRp'@; put 'cC50b29sdGlwLXhzPi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXhze3dpZHRoOjMuNnJlbX0udG9vbHRpcC50b29sdGlwLXNtPi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXNte3dpZHRoOjZyZW19'@; put 'LnRvb2x0aXAudG9vbHRpcC1tZD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1tZHt3aWR0aDoxMnJlbX0udG9vbHRpcC50b29sdGlwLWxnPi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWxne3dpZHRo'@; put 'OjE4cmVtfS50b29sdGlwPi5idG4rLnRvb2x0aXAtY29udGVudCwudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodD4uYnRuKy50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAudG9vbHRpcC10b3AtbGVmdD4uYnRuKy50b29sdGlwLWNvbnRlbnR7bWFyZ2luLWJvdHRvbTouNXJlbX0udG9vbHRpcC50'@; put 'b29sdGlwLWJvdHRvbS1yaWdodD4uYnRuKy50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4uYnRuKy50b29sdGlwLWNvbnRlbnR7bWFyZ2luLXRvcDouNXJlbX0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi5idG4rLnRvb2x0aXAtY29udGVudHttYXJnaW4tbGVm'@; put 'dDouMnJlbX0udG9vbHRpcD4uY2xyLWljb257bWFyZ2luLXJpZ2h0OjB9LnRvb2x0aXA+c3Zne3BvaW50ZXItZXZlbnRzOm5vbmV9LnRvb2x0aXAtdHJpZ2dlcjpmb2N1cysudG9vbHRpcC1jb250ZW50e3Zpc2liaWxpdHk6dmlzaWJsZX06cm9vdHstLWNsci1mb3JtLWRpc2FibGVkLWJhY2tn'@; put 'cm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1mb3Jtcy1sYWJlbC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC04MDApOy0tY2xyLWZvcm1zLXRleHQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItZm9ybXMtaW52YWxp'@; put 'ZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItZm9ybXMtdmFsaWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwKTstLWNsci1mb3Jtcy12YWxpZC10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTkwMCk7LS1jbHItZm9ybXMtc3VidGV4'@; put 'dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWZvcm1zLXBsYWNlaG9sZGVyLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yOiM2YTdhODE7LS1jbHItZm9ybXMtZm9jdXNlZC1jb2xv'@; put 'cjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItZm9ybXMtc3VidGV4dC1kaXNhYmxlZC1jb2xvcjojOGM4YzhjOy0tY2xyLWZvcm1zLWJvcmRlci1kaXNhYmxlZC1jb2xvcjojYjNiM2IzOy0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3I6I2IzYjNiMzstLWNsci1mb3Jt'@; put 'cy1sYWJlbC1kaXNhYmxlZC1jb2xvcjojOGM4YzhjOy0tY2xyLWZvcm1zLWxhYmVsLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1ib2xkKTstLWNsci1mb3Jtcy1ibG9jay1sYWJlbC1mb250LXdlaWdodDo0MDA7LS1jbHItZm9ybXMtdGV4dC1mb250LXdlaWdodDo0MDA7LS1j'@; put 'bHItZm9ybXMtdGV4dGFyZWEtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1mb3Jtcy10ZXh0YXJlYS1mb2N1c2VkLW91dGxpbmU6MCAwIC4xcmVtIC4xcmVtICM2OWMwZTI7LS1jbHItZm9ybXMtdGV4dGFyZWEtaW52YWxpZC1mb2N1c2VkLW91dGxp'@; put 'bmU6MCAwIC4xcmVtIC4xcmVtICNmZjc0NWM7LS1jbHItZm9ybXMtc2VsZWN0LWhvdmVyLWJhY2tncm91bmQ6cmdiYSggMjIyLCAyMjIsIDIyMiwgLjUgKTstLWNsci1mb3Jtcy1zZWxlY3QtY2FyZXQtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1mb3Jt'@; put 'cy1zZWxlY3QtY2FyZXQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1mb3Jtcy1zZWxlY3Qtb3B0aW9uLWNvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt'@; put 'Zm9ybXMtdGV4dGFyZWEtYmFja2dyb3VuZC1jb2xvcik7LS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1vcHRpb24tY29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQt'@; put 'Y29sb3IpOy0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1lcnJvci1mb2N1cy1jb2xvcjojZmY3NDVjOy0tY2xyLWZvcm1zLWNoZWNrYm94LWxhYmVsLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1sYWJlbC1jb2xvcik7LS1jbHItZm9ybXMtY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcjp2YXIo'@; put 'LS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItZm9ybXMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLWNoZWNrYm94LW1hcmstY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHIt'@; put 'Zm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKTstLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1tYXJrLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWZvcm1z'@; put 'LWNoZWNrYm94LWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLWZvcm1zLWNoZWNrYm94LWNoZWNrZWQtc2hhZG93Omluc2V0IDAgMCAwIC4zcmVtIHZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yKTstLWNsci1mb3Jtcy1y'@; put 'YWRpby1sYWJlbC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtbGFiZWwtY29sb3IpOy0tY2xyLWZvcm1zLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1mb3Jtcy1yYWRpby1kaXNhYmxlZC1tYXJrLWNvbG9y'@; put 'OnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1tYXJrLWNvbG9yKTstLWNsci1mb3Jtcy1yYWRpby1zZWxlY3RlZC1zaGFkb3c6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWNoZWNrZWQtc2hhZG93KTstLWNsci1mb3Jtcy1yYWRpby1kaXNhYmxlZC1zaGFkb3c6aW5zZXQgMCAw'@; put 'IDAgLjZyZW0gI2U4ZThlODstLWNsci1mb3Jtcy1yYWRpby1mb2N1c2VkLXNoYWRvdzowIDAgLjFyZW0gLjFyZW0gIzY5YzBlMjstLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1mb3Jtcy1yYW5nZS10cmFjay1j'@; put 'b2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApfS5jbHItZGF0ZS1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVye21heC13aWR0aDotbW96LWZpdC1jb250ZW50O21heC13aWR0aDpmaXQtY29udGVudH0uY2xyLWZvcm0tY29udHJvbHttYXJnaW4tdG9wOjEuMnJlbTtkaXNwbGF5'@; put 'OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mb3JtLWNvbnRyb2wgaW5wdXQ6Oi1tcy1yZXZlYWwsLmNsci1mb3JtLWNvbnRyb2wgaW5wdXQ6Oi1tcy1jbGVhcntkaXNwbGF5Om5vbmV9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWR7Y29s'@; put 'b3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgbGFiZWwsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jb250cm9sLWxhYmVse2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFy'@; put 'KC0tY2xyLWZvcm1zLWxhYmVsLWRpc2FibGVkLWNvbG9yLCAjOGM4YzhjKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWlucHV0LC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItdGV4dGFyZWEsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3R7Y29s'@; put 'b3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYjNiM2IzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyl9LmNsci1m'@; put 'b3JtLWNvbnRyb2wtZGlzYWJsZWQgaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1ie2JhY2tncm91bmQtY29sb3I6I2IzYjNiMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpfS5jbHItZm9ybS1jb250'@; put 'cm9sLWRpc2FibGVkIC5jbHItc3VidGV4dHtjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1mb3Jtcy1zdWJ0ZXh0LWRpc2FibGVkLWNvbG9yLCAjOGM4YzhjKX0uY2xyLWZvcm0tY29udHJvbC1tdWx0aXtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOndyYXB9LmNsci1mb3JtLWNv'@; put 'bnRyb2wtbXVsdGkgLmNsci1jb250cm9sLWxhYmVse3dpZHRoOjEwMCV9LmNsci1jb250cm9sLWxhYmVse2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtY29sb3IsICM0NTQ1NDUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NjAw'@; put 'O2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb3Jtcy1sYWJlbC1mb250LXdlaWdodCwgNjAwKTtsaW5lLWhlaWdodDouOXJlbX0uY2xyLWNvbnRyb2wtY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItY29udHJvbC1pbmxpbmV7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2Fs'@; put 'aWduLWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWNvbnRyb2wtaW5saW5lIC5jbHItY29udHJvbC1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6LjZyZW07d2lkdGg6YXV0b30uY2xyLXN1YnRleHR7ZGlzcGxheTpibG9jaztmb250LXNpemU6LjU1cmVtO2xpbmUtaGVp'@; put 'Z2h0Oi42cmVtO2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXN1YnRleHQtY29sb3IsICM4YzhjOGMpO21hcmdpbi10b3A6LjNyZW19LmNsci1zdWJ0ZXh0LXdyYXBwZXJ7ZmxleC1iYXNpczoxMDAlO2Rpc3BsYXk6ZmxleH0uY2xyLXZhbGlkYXRlLWljb257aGVpZ2h0OjEu'@; put 'MnJlbTt3aWR0aDoxLjJyZW07bWluLWhlaWdodDoxLjJyZW07bWluLXdpZHRoOjEuMnJlbTtjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKTtmaWxsOiNjMjFkMDA7ZmlsbDp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2My'@; put 'MWQwMCk7ZGlzcGxheTpub25lO21hcmdpbi1sZWZ0Oi0xLjJyZW19LmNsci1zdWNjZXNzIC5jbHItaW5wdXR7Ym9yZGVyLWJvdHRvbS1jb2xvcjojM2M4NTAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLXZhbGlkLWNvbG9yLCAjM2M4NTAwKX0uY2xyLXN1Y2Nlc3MgLmNs'@; put 'ci12YWxpZGF0ZS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiMzYzg1MDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXZhbGlkLWNvbG9yLCAjM2M4NTAwKTtmaWxsOiMzYzg1MDA7ZmlsbDp2YXIoLS1jbHItZm9ybXMtdmFsaWQtY29sb3IsICMzYzg1MDApO21hcmdpbi1sZWZ0Oi0u'@; put 'MnJlbX0uY2xyLXN1Y2Nlc3MgLmNsci1zdWJ0ZXh0e2NvbG9yOiMyNTUyMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXZhbGlkLXRleHQtY29sb3IsICMyNTUyMDApfS5jbHItZXJyb3IgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0Oi0uMnJlbTtkaXNwbGF5OmlubGluZS1ibG9ja30u'@; put 'Y2xyLWVycm9yIC5jbHItc3VidGV4dHtjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWZvcm0taG9yaXpvbnRhbCAuY2xyLWZvcm0tY29udHJvbD4uY2xyLWNvbnRyb2wtbGFiZWwsLmNsci1mb3JtLWhvcml6b250YWwgLmNs'@; put 'ci1mb3JtLWNvbnRyb2w+LmNsci1mb3JtLWNvbnRyb2wuY2xyLWZvcm0tY29udHJvbC1tdWx0aSAuY2xyLWNvbnRyb2wtbGFiZWx7d2lkdGg6OS42cmVtO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDouMTVyZW19LmNsci1mb3JtLWhvcml6b250YWwuY2xyLXJvdyAuY2xyLWNvbnRyb2wtbGFi'@; put 'ZWx7d2lkdGg6YXV0b30uY2xyLWZvcm0taG9yaXpvbnRhbCAuY2xyLWZvcm0tY29udHJvbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9sPi5jbHItY29udHJvbC1sYWJlbHt3aWR0aDo5LjZyZW07bWluLXdpZHRoOjku'@; put 'NnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZvcm0tY29udHJvbC5jbHItcm93Pi5jbHItY29udHJvbC1sYWJlbHt3aWR0aDphdXRvO21pbi13aWR0aDphdXRvfS5jbHItZm9ybS1jb21wYWN0IC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOi4xNXJlbX0uY2xyLWZvcm0tY29tcGFj'@; put 'dCAuY2xyLWZvcm0tY29udHJvbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21hcmdpbi10b3A6LjZyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jb250cm9sLWNvbnRhaW5lcntkaXNwbGF5OmZsZXh9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5s'@; put 'aW5lLWJsb2NrO21hcmdpbi10b3A6LjNyZW07bWFyZ2luLWxlZnQ6MS4ycmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZXJyb3IgLmNsci1zdWJ0ZXh0LC5jbHItZm9ybS1jb21wYWN0IC5jbHItc3VjY2VzcyAuY2xyLXN1YnRleHQsLmNsci1mb3JtLWNvbXBhY3QgLmNsci1lcnJvciAuY2xy'@; put 'LXZhbGlkYXRlLWljb24sLmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWNjZXNzIC5jbHItdmFsaWRhdGUtaWNvbnttYXJnaW4tbGVmdDowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItc3VidGV4dC13cmFwcGVye2ZsZXgtYmFzaXM6YXV0bztkaXNwbGF5OmlubGluZS1ibG9ja30uY2xyLWZvcm0s'@; put 'LmNsci1mb3JtLWdyb3Vwe3BhZGRpbmc6LjNyZW19LmNsci1yZXF1aXJlZC1tYXJrOmFmdGVye2NvbnRlbnQ6IioiO2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2ZpbGw6I2MyMWQwMDtmaWxsOnZhcigtLWNsci1mb3Jtcy1pbnZh'@; put 'bGlkLWNvbG9yLCAjYzIxZDAwKTtmb250LXNpemU6LjY1cmVtO21hcmdpbi1sZWZ0Oi4zcmVtfS5jbHItY2hlY2tib3gtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXh9LmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHtmb250LXdlaWdodDo0MDA7'@; put 'ZGlzcGxheTpibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1jaGVja2JveC13cmFwcGVyfi5jbHItc3VidGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVs'@; put 'e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDoxLjJyZW07cGFkZGluZy1sZWZ0OjEuMXJlbTttYXJnaW4tdG9wOjA7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS4ycmVtO2NvbG9yOiM0NTQ1NDU7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWxh'@; put 'YmVsLWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF17cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3RvcDouMjVyZW07bGVmdDowO2hlaWdodDouOHJlbTt3aWR0aDouOHJlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlw'@; put 'ZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVsOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjJyZW07bGVmdDowO2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM2'@; put 'YTdhODE7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNsci1jaGVja2JveC13cmFwcGVyIGlu'@; put 'cHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzKy5jbHItY29udHJvbC1sYWJlbDpiZWZvcmV7b3V0bGluZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItY2hlY2tib3gtd3Jh'@; put 'cHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XSsuY2xyLWNvbnRyb2wtbGFiZWw6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0Oi4yNXJlbTt3aWR0aDouNHJlbTtib3JkZXItbGVmdDouMXJlbSBzb2xpZDtib3JkZXItYm90dG9tOi4xcmVtIHNv'@; put 'bGlkO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtbWFyay1jb2xvciwgd2hpdGUpO3RvcDouMnJlbTtsZWZ0Oi4ycmVtO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC4ycmVtKSByb3RhdGUoLTQ1ZGVnKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIg'@; put 'aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCsuY2xyLWNvbnRyb2wtbGFiZWw6YmVmb3Jle2JhY2tncm91bmQ6IzAwNzJhMztiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yLCAjMDA3MmEzKTtib3JkZXI6MH0uY2xyLWNoZWNrYm94LXdyYXBw'@; put 'ZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCsuY2xyLWNvbnRyb2wtbGFiZWw6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdLmNsci1pbmRldGVybWluYXRlKy5jbHItY29udHJvbC1sYWJlbDpiZWZvcmUs'@; put 'LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmluZGV0ZXJtaW5hdGUrLmNsci1jb250cm9sLWxhYmVsOmJlZm9yZXtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtaW5k'@; put 'ZXRlcm1pbmF0ZS1ib3JkZXItY29sb3IsICMwMDcyYTMpfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XS5jbHItaW5kZXRlcm1pbmF0ZSsuY2xyLWNvbnRyb2wtbGFiZWw6YWZ0ZXIsLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmlu'@; put 'ZGV0ZXJtaW5hdGUrLmNsci1jb250cm9sLWxhYmVsOmFmdGVye2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yLCAjMDA3MmEzKTtk'@; put 'aXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2Zvcm06dHJhbnNsYXRlWSguMnJlbSl9LmNsci1jaGVja2JveC13cmFwcGVyLmNsci1jaGVja2JveC1pbmxpbmV7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWNoZWNrYm94LXdyYXBwZXIu'@; put 'Y2xyLWNoZWNrYm94LWlubGluZSAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtO3dpZHRoOmF1dG99LmNsci1lcnJvciAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVsOmJl'@; put 'Zm9yZXtib3JkZXItY29sb3I6I2MyMWQwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItY2hlY2tib3gtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7Y3Vyc29yOm5vdC1hbGxvd2Vk'@; put 'O2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWRpc2FibGVkLWNvbG9yLCAjOGM4YzhjKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVsOmJlZm9yZSwu'@; put 'Y2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCsuY2xyLWNvbnRyb2wtbGFiZWw6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2Jv'@; put 'eC1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLCAjY2NjY2NjKTtib3JkZXI6MH0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCsuY2xyLWNvbnRyb2wtbGFiZWw6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6LjFy'@; put 'ZW0gc29saWQ7Ym9yZGVyLWJvdHRvbTouMXJlbSBzb2xpZDtib3JkZXItbGVmdC1jb2xvcjojMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1tYXJrLWNvbG9yLCBibGFjayk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwO2JvcmRlci1ib3R0'@; put 'b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IsIGJsYWNrKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZC5jbHItaW5kZXRlcm1pbmF0ZSsuY2xyLWNv'@; put 'bnRyb2wtbGFiZWw6YWZ0ZXIsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aW5kZXRlcm1pbmF0ZSsuY2xyLWNvbnRyb2wtbGFiZWw6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6bm9uZX0uY2xyLWZvcm0tY29t'@; put 'cGFjdCAuY2xyLWNoZWNrYm94LXdyYXBwZXJ7bWF4LXdpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydDtoZWlnaHQ6MS4ycmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItY2hlY2tib3gtd3JhcHBlcn4uY2xyLXN1YnRleHR7bWFy'@; put 'Z2luLWxlZnQ6LjNyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6LjZyZW07d2lkdGg6YXV0b30uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWNoZWNrYm94LXdyYXBwZXIg'@; put 'LmNsci1jb250cm9sLWxhYmVse21hcmdpbi10b3A6MH0uY2xyLWZpbGUtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOi4zcmVtfS5jbHItZmlsZS13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHtmb250LXdlaWdodDo0MDA7ZGlzcGxheTpibG9ja30uY2xyLWZpbGUtd3Jh'@; put 'cHBlcn4uY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1maWxlLXdyYXBwZXIgLmJ0bnttYXJnaW46MH0uY2xyLWZpbGV7aGVpZ2h0OjA7d2lkdGg6MDtvcGFjaXR5OjA7b3ZlcmZs'@; put 'b3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6LTF9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1maWxlLXdyYXBwZXJ7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLXRvcDowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVyfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDou'@; put 'M3JlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXZhbGlkYXRlLWljb257bGluZS1oZWlnaHQ6MS4ycmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVyfi5jbHItc3VidGV4dHtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDowfS5jbHIt'@; put 'Zm9ybS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOjA7bGluZS1oZWlnaHQ6MS4wOHJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlciAuYnRue2hlaWdodDoxLjJyZW19LmNsci1pbnB1dC13cmFwcGVye3doaXRlLXNw'@; put 'YWNlOm5vd3JhcDttYXgtaGVpZ2h0OjEuMnJlbX0uY2xyLWlucHV0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVz'@; put 'OjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDoxLjJyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1ib3R0b206LjA1cmVtIHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTtib3JkZXItYm90'@; put 'dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MCAuM3JlbTttYXgtaGVpZ2h0OjEuMnJlbTtmb250LXNpemU6LjY1cmVtfS5jbHItaW5wdXQ6Zm9jdXN7b3V0bGluZTowfS5jbHItaW5wdXRbcmVhZG9u'@; put 'bHlde2JvcmRlcjowfS5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTow'@; put 'IDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1pbnB1dDpub3QoW3JlYWRvbmx5XSk6Zm9jdXMsLmNsci1pbnB1dDpub3QoW3JlYWRvbmx5XSkuY2xyLWZvY3Vze2JvcmRlci1ib3R0b20tY29sb3I6IzAwNzJhMztib3JkZXItYm90dG9tLWNvbG9yOnZhcigt'@; put 'LWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAjMDA3MmEzKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlfS5jbHItaW5wdXQ6ZGlzYWJsZWR7Y29sb3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOm5vdC1hbGxvd2Vk'@; put 'fS5jbHItZXJyb3IgLmNsci1pbnB1dDpub3QoW3JlYWRvbmx5XSl7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0'@; put 'cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1lcnJvciAuY2xyLWlucHV0Om5vdChbcmVhZG9ubHld'@; put 'KTpmb2N1cywuY2xyLWVycm9yIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pLmNsci1mb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCk7YmFja2dyb3VuZC1zaXplOjEwMCUg'@; put 'MTAwJX0uY2xyLWZvcm0tY29udHJvbC5yb3cgLmNsci1pbnB1dC13cmFwcGVye21heC13aWR0aDpjYWxjKDEwMCUgLSAxLjJyZW0pfS5jbHItZm9ybS1jb21wYWN0IC5jbHItaW5wdXR7bWF4LXdpZHRoOjEwMCV9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1pbnB1dH4uY2xyLXN1YnRleHR7bWFy'@; put 'Z2luLWxlZnQ6LjNyZW19LmNsci1mb3JtLWNvbnRyb2wtcmVhZG9ubHkgLmNsci1pbnB1dHtib3JkZXI6MH0uY2xyLWZvcm0tY29udHJvbC1tdWx0aSAuY2xyLWlucHV0e21heC13aWR0aDpjYWxjKDEwMCUgKyAxLjJyZW0pfTo6cGxhY2Vob2xkZXJ7Y29sb3I6IzRmNjE2OTtjb2xvcjp2YXIo'@; put 'LS1jbHItZm9ybXMtcGxhY2Vob2xkZXItY29sb3IsICM0ZjYxNjkpfS5jbHItaW5wdXQtZ3JvdXB7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1ib3R0b206LjA1cmVtIHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTti'@; put 'b3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMw'@; put 'MDcyYTMpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2U7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OjEuMnJlbX0uY2xyLWlucHV0LWdyb3VwOmZvY3VzLC5jbHItaW5wdXQtZ3JvdXAuY2xyLWZvY3Vze2JvcmRl'@; put 'ci1ib3R0b20tY29sb3I6IzAwNzJhMztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAjMDA3MmEzKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlfS5jbHItaW5wdXQtZ3JvdXAuY2xyLWZvY3Vze3dpZHRoOmF1dG99LmNsci1pbnB1dC1ncm91cCAu'@; put 'Y2xyLWlucHV0e2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO21hcmdpbi1yaWdodDowO21heC13aWR0aDoxMDAlfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dDpub3QoW3JlYWRvbmx5XSk6Zm9jdXN7YmFja2dyb3VuZC1zaXplOjA7Ym9yZGVyOjB9LmNsci1pbnB1dC1ncm91cCBzZWxlY3Qs'@; put 'LmNsci1pbnB1dC1ncm91cCAuY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCwuY2xyLWlucHV0LWdyb3VwIC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3R7Ym9yZGVyOjB9LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWFkZG9ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFy'@; put 'KC0tY2xyLWZvcm1zLXN1YnRleHQtY29sb3IsICM4YzhjOGMpfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZHtwYWRkaW5nOjAgMCAwIC40NXJlbX0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZHtwYWRk'@; put 'aW5nOjAgLjQ1cmVtIDAgMH0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzow'@; put 'O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMyk7cGFkZGluZzowIC40NXJlbX1idXR0b24uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5w'@; put 'dXQtZ3JvdXAtaWNvbi1hY3Rpb257Y3Vyc29yOnBvaW50ZXJ9LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9uIGNkcy1pY29uLC5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbiBjbHItaWNvbntoZWlnaHQ6LjlyZW07d2lkdGg6'@; put 'LjlyZW07dHJhbnNmb3JtOnRyYW5zbGF0ZSgtLjA1cmVtLC0uMDVyZW0pfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb257Y29sb3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyk7'@; put 'Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZXJyb3IgLmNsci1pbnB1dC1ncm91cHtib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8g'@; put 'Ym90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCkgOTUlKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjAgMTAwJTt0cmFuc2l0aW9uOmJhY2tncm91bmQtc2l6ZSAuMnMgZWFzZX0uY2xyLWVycm9yIC5jbHItaW5wdXQtZ3JvdXA6'@; put 'Zm9jdXMsLmNsci1lcnJvciAuY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCk7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWZv'@; put 'cm0taG9yaXpvbnRhbCAuY2xyLWlucHV0LWdyb3Vwe21heC13aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MH0uY2xyLXJhZGlvLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLXJhZGlvLXdyYXBwZXIgLmNsci1jb250cm9sLWxh'@; put 'YmVse2ZvbnQtd2VpZ2h0OjQwMDtkaXNwbGF5OmJsb2NrfS5jbHItcmFkaW8td3JhcHBlcn4uY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLXJhZGlvLXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0'@; put 'eXBlPXJhZGlvXXtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dG9wOi4yNXJlbTtsZWZ0OjA7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtfS5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttaW4taGVpZ2h0OjEu'@; put 'MnJlbTtwYWRkaW5nLWxlZnQ6MS4xcmVtO21hcmdpbi10b3A6MDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjJyZW07Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3IsICM0NTQ1NDUpfS5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRy'@; put 'b2wtbGFiZWw6ZW1wdHl7cGFkZGluZy1sZWZ0OjB9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dKy5jbHItY29udHJvbC1sYWJlbDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi4ycmVtO2xlZnQ6MDtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdo'@; put 'dDouOHJlbTt3aWR0aDouOHJlbTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojNmE3YTgxO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yLCAjNmE3YTgxKTtib3JkZXItcmFkaXVzOjUwJX0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRp'@; put 'b106Y2hlY2tlZCsuY2xyLWNvbnRyb2wtbGFiZWw6YmVmb3Jle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgLjNyZW0gIzAwNzJhMztib3gtc2hhZG93OnZhcigtLWNsci1mb3Jtcy1yYWRpby1zZWxlY3RlZC1zaGFkb3csIGluc2V0IDAgMCAwIC4zcmVtICMwMDcyYTMpO2JvcmRlcjowfS5jbHIt'@; put 'cmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cysuY2xyLWNvbnRyb2wtbGFiZWw6YmVmb3Jle291dGxpbmU6SGlnaGxpZ2h0IHNvbGlkIC4xcmVtO291dGxpbmU6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIHNvbGlkIC4xcmVtO291dGxpbmUtb2Zmc2V0Oi4wNXJlbX0uY2xy'@; put 'LXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXM6Y2hlY2tlZCsuY2xyLWNvbnRyb2wtbGFiZWw6YmVmb3Jle291dGxpbmU6SGlnaGxpZ2h0IHNvbGlkIC4xcmVtO291dGxpbmU6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIHNvbGlkIC4xcmVtO291dGxpbmUtb2Zmc2V0Oi4w'@; put 'NXJlbX0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb106ZGlzYWJsZWQrLmNsci1jb250cm9sLWxhYmVsOmJlZm9yZXtib3JkZXI6MDtib3gtc2hhZG93Omluc2V0IDAgMCAwIC42cmVtICNlOGU4ZTg7Ym94LXNoYWRvdzp2YXIoLS1jbHItZm9ybXMtcmFkaW8tZGlzYWJsZWQt'@; put 'c2hhZG93LCBpbnNldCAwIDAgMCAuNnJlbSAjZThlOGU4KX0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpkaXNhYmxlZCsuY2xyLWNvbnRyb2wtbGFiZWw6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzY2NjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1m'@; put 'b3Jtcy1yYWRpby1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yLCAjNjY2NjY2KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIC4zcmVtICNlOGU4ZTg7Ym94LXNoYWRvdzp2YXIoLS1jbHItZm9ybXMtcmFkaW8tY2hlY2tlZC1kaXNhYmxlZC1zaGFkb3csIGluc2V0IDAgMCAwIC4zcmVtICNlOGU4'@; put 'ZTgpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZXJyb3IgLmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dKy5jbHItY29udHJvbC1sYWJlbDpiZWZvcmV7Ym9y'@; put 'ZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWVycm9yIC5jbHItc3VidGV4dHttYXJnaW4tbGVmdDowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlcntt'@; put 'YXgtd2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0O2hlaWdodDoxLjJyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1yYWRpby13cmFwcGVyfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDouM3JlbX0uY2xyLWZvcm0tY29tcGFj'@; put 'dCAuY2xyLXJhZGlvLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouNnJlbTt3aWR0aDphdXRvfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowfS5jbHIt'@; put 'c2VsZWN0LXdyYXBwZXIsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3ot'@; put 'YXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDoxLjJyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIo'@; put 'LS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1ib3R0b206LjA1cmVtIHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2Rpc3BsYXk6aW5saW5lLWJsb2Nr'@; put 'O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAxLjFyZW0gMCAuM3JlbTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjY1cmVtO3otaW5kZXg6Mn0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpmb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmZvY3Vze291dGxpbmU6'@; put 'MH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSksLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtZm9j'@; put 'dXNlZC1jb2xvciwgIzAwNzJhMykgOTUlKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjAgMTAwJTt0cmFuc2l0aW9uOmJhY2tncm91bmQtc2l6ZSAuMnMgZWFzZX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSk6Zm9jdXMsLmNsci1zZWxlY3Qtd3JhcHBlciBz'@; put 'ZWxlY3Q6bm90KFttdWx0aXBsZV0pLmNsci1mb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpmb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjoj'@; put 'MDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3VzLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxl'@; put 'Y3RbbXVsdGlwbGVdOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IGF1dG8gLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byAuMXJlbX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpob3ZlciwuY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDphY3RpdmUsLmNsci1t'@; put 'dWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpob3ZlciwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmFjdGl2ZXtib3JkZXItY29sb3I6I2RlZGVkZTgwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LWhvdmVyLWJhY2tncm91bmQsIHJnYmEoMjIyLCAyMjIsIDIy'@; put 'MiwgLjUpKTtiYWNrZ3JvdW5kOnJnYmEoMjIyLDIyMiwyMjIsLjUpO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1ob3Zlci1iYWNrZ3JvdW5kLCByZ2JhKDIyMiwgMjIyLCAyMjIsIC41KSl9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9uLC5jbHIt'@; put 'bXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9ue2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCBvcHRpb24sLmNs'@; put 'ci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdCBvcHRpb257Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW9wdGlvbi1jb2xvciwgYmxhY2spfS5jbHItc2VsZWN0LXdyYXBwZXIgc2VsZWN0OjotbXMtZXhwYW5kLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxl'@; put 'Y3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTpub25lfS5jbHItc2VsZWN0LXdyYXBwZXJ7bWF4LWhlaWdodDoxLjJyZW07ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2hlaWdodDouNXJlbTt3aWR0aDouNXJl'@; put 'bTt0b3A6LjM1cmVtO3JpZ2h0Oi4zcmVtO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUy'@; put 'MDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyM2IzYjNiMyUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3Rp'@; put 'dGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAl'@; put 'MkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MH0uY2xyLXNlbGVjdC13cmFwcGVyOmhvdmVyOmFmdGVye2JhY2tn'@; put 'cm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVm'@; put 'cyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyMzhjOGM4YyUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUzRSUwQSUy'@; put 'MCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUz'@; put 'QyUyRnN2ZyUzRSUwQSl9LmNsci1lcnJvciAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVyLC5jbHItc3VjY2VzcyAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVye3JpZ2h0OjEuNXJlbX0uY2xyLW11bHRpc2VsZWN0LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5jbHItbXVsdGlzZWxlY3Qtd3JhcHBl'@; put 'ciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH1zZWxlY3RbbXVsdGlwbGVdLHNlbGVjdFtzaXplXXtwYWRkaW5nOjA7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1iYWNrZ3JvdW5kLWNvbG9yLCB3aGl0ZSk7Ym9yZGVy'@; put 'Oi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMs'@; put 'IC4xNXJlbSk7aGVpZ2h0OmF1dG87bWluLXdpZHRoOjZyZW19c2VsZWN0W211bHRpcGxlXTpob3ZlcixzZWxlY3RbbXVsdGlwbGVdOmFjdGl2ZSxzZWxlY3Rbc2l6ZV06aG92ZXIsc2VsZWN0W3NpemVdOmFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZm9ybXMt'@; put 'c2VsZWN0LW11bHRpcGxlLWJhY2tncm91bmQtY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfXNlbGVjdFttdWx0aXBsZV0gb3B0aW9uLHNlbGVjdFtzaXplXSBv'@; put 'cHRpb257cGFkZGluZzouMTVyZW0gLjNyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLW9wdGlvbi1jb2xvciwgYmxhY2spfS5jbHItZXJyb3Igc2VsZWN0Om5vdChbbXVsdGlwbGVdKXtib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDA7Ym9yZGVy'@; put 'LWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1lcnJvciBzZWxlY3RbbXVsdGlwbGVde2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1mb3Jt'@; put 'LWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWR7Y29sb3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0LmRp'@; put 'c2FibGVkOmhvdmVyOmFmdGVye2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1jYXJldC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWQ+c2VsZWN0LC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVk'@; put 'IC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKTtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWQ+c2Vs'@; put 'ZWN0OmhvdmVyLC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSl9LmNsci1m'@; put 'b3JtLWNvbXBhY3QgLmNsci1tdWx0aXNlbGVjdC13cmFwcGVye21hcmdpbi10b3A6MH0uY2xyLXRleHRhcmVhLXdyYXBwZXJ7d2hpdGUtc3BhY2U6bm93cmFwO2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOi4zcmVtfS5jbHItdGV4dGFyZWEtd3JhcHBlciAuY2xyLXZhbGlkYXRlLWljb257bWFy'@; put 'Z2luLWxlZnQ6MH0uY2xyLXRleHRhcmVhe21heC13aWR0aDpjYWxjKDEwMCUgLSAuM3JlbSk7aGVpZ2h0OmF1dG87cmVzaXplOnZlcnRpY2FsO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy10ZXh0YXJlYS1iYWNrZ3JvdW5kLWNvbG9yLCB3aGl0ZSk7Ym9yZGVy'@; put 'Oi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1yYWRpdXM6LjE1cmVtO3BhZGRp'@; put 'bmc6LjRyZW0gLjZyZW07Zm9udC1zaXplOi42NXJlbX0uY2xyLXRleHRhcmVhOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IGF1dG8gLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byAuMXJlbX0uY2xyLXRleHRhcmVhOmRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29s'@; put 'b3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAw'@; put 'KX0uY2xyLWNvbnRyb2wtY29udGFpbmVyIHRleHRhcmVhe3dpZHRoOmF1dG99LmNsci1mb3JtLWNvbnRyb2wucm93IC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gLjNyZW0pfS5jbHItZm9ybS1jb21wYWN0IC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXJnaW4t'@; put 'dG9wOjB9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF7bWF4LXdpZHRoOjEwMCV9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF+LmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0Oi4zcmVtfTpyb290'@; put 'ey0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmY6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci10b2dnbGUtYmctY29sb3Itb246dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTAwKTstLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUw'@; put 'KTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1oYW5kbGUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItdG9nZ2xlLWRpc2FibGVk'@; put 'LW9mZi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtaGFuZGxlLWNvbG9yKTstLWNsci10b2dnbGUtZGlz'@; put 'YWJsZWQtb2ZmLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTst'@; put 'LWNsci10b2dnbGUtZGlzYWJsZWQtb24tYmctY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWhhbmRs'@; put 'ZS1jb2xvcil9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZX0uY2xyLXRvZ2dsZS13cmFwcGVye2hlaWdodDoxLjJy'@; put 'ZW07dmVydGljYWwtYWxpZ246bWlkZGxlO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEu'@; put 'MnJlbTttYXJnaW4tbGVmdDoyLjFyZW07bWFyZ2luLXJpZ2h0OjB9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjNyZW07cmlnaHQ6LjNyZW07aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO29wYWNpdHk6MH0uY2xyLXRvZ2ds'@; put 'ZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouOXJlbTt3aWR0aDoxLjY1cmVtO2JvcmRlcjouMXJlbSBzb2xpZDtib3JkZXItcmFkaXVzOi40NXJlbTtib3Jk'@; put 'ZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmYsICM4YzhjOGMpO2JhY2tncm91bmQtY29sb3I6IzhjOGM4YztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb2ZmLCAjOGM4YzhjKTt0b3A6LjE1cmVtO3Jp'@; put 'Z2h0OjA7bGVmdDotMi4xcmVtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNr'@; put 'Ym94XTpmb2N1cytsYWJlbDpiZWZvcmV7b3V0bGluZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hl'@; put 'Y2tlZCtsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiM1YWEyMjA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb24sICM1YWEyMjApO2JhY2tncm91bmQtY29sb3I6IzVhYTIyMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb24sICM1'@; put 'YWEyMjApO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDph'@; put 'ZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci1jb2xvcjojZmFmYWZhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWhhbmRsZS1iZy1jb2xv'@; put 'ciwgI2ZhZmFmYSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yLCAjZmFmYWZhKTt0b3A6LjI1cmVtO3JpZ2h0OjA7bGVmdDotMnJlbTt0'@; put 'cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OnJpZ2h0LGxlZnR9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye3JpZ2h0Oi0ycmVtO2xl'@; put 'ZnQ6LTEuMjVyZW07dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodCxsZWZ0fS5jbHItdG9nZ2xlLXdyYXBwZXIuZGlzYWJsZWQgbGFiZWx7b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93'@; put 'ZWR9LmNsci10b2dnbGUtd3JhcHBlci5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JhY2tncm91'@; put 'bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLXRv'@; put 'Z2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojY2NjO2JvcmRl'@; put 'ci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFy'@; put 'KC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vZmYtYmctY29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjFyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1oYW5kbGUtYm9yZGVyLWNvbG9yLCAj'@; put 'Y2NjY2NjKTtoZWlnaHQ6LjlyZW07d2lkdGg6LjlyZW07dG9wOi4xNXJlbX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWw6YmVmb3Jle2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRp'@; put 'c2FibGVkLW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1iZy1jb2xvciwgI2NjY2NjYyl9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVj'@; put 'a2VkOmRpc2FibGVkK2xhYmVsOmFmdGVye2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3IsIHdoaXRlKTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07dG9wOi4yNXJlbTtsZWZ0Oi0xLjI1cmVtfS5j'@; put 'bHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgbGFiZWx7bWFyZ2luLWxlZnQ6Mi4xcmVtO21hcmdpbi1yaWdodDowfS5jbHItdG9nZ2xlLXdyYXBwZXIu'@; put 'cmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle3JpZ2h0OjA7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7cmlnaHQ6MDtsZWZ0Oi0ycmVtO3RyYW5zaXRpb24tcHJv'@; put 'cGVydHk6bGVmdH0uY2xyLXRvZ2dsZS13cmFwcGVyLnJpZ2h0LWxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMS4yNXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnR9LmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlz'@; put 'cGxheTpibG9jaztmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4ycmVtfS5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtfS5jbHItdG9nZ2xlLXJpZ2h0IGxh'@; put 'YmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoyLjFyZW07bWFyZ2luLWxlZnQ6MH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmV7bGVmdDp1bnNldDtyaWdodDotMi4xcmVtfS5jbHItdG9nZ2xlLXJpZ2h0IGlucHV0W3R5cGU9'@; put 'Y2hlY2tib3hdK2xhYmVsOmFmdGVye2xlZnQ6dW5zZXQ7cmlnaHQ6LTEuMjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2xlZnQ6dW5zZXQ7cmlnaHQ6LTJyZW07dHJhbnNpdGlv'@; put 'bi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCtsYWJlbDphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xLjNyZW19LmNsci10b2dnbGUtcmlnaHQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbDph'@; put 'ZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0ycmVtfS5jbHItdG9nZ2xlLXJpZ2h0IC5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXJpZ2h0OjIuN3JlbX0uY2xyLXJhbmdlLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlz'@; put 'cGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmNsci1yYW5nZS13cmFwcGVyIC5maWxsLWlucHV0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtkaXNwbGF5OmlubGluZS1ibG9j'@; put 'aztoZWlnaHQ6LjJyZW07cG9pbnRlci1ldmVudHM6bm9uZTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEwO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yLCAjMDA3MmEzKX0uY2xyLXJhbmdl'@; put 'e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbX0uY2xyLXJhbmdlOmRpc2FibGVkLC5jbHItcmFuZ2U6ZGlzYWJsZWQrLmZpbGwtaW5wdXR7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6bm90LWFsbG93ZWR9aW5w'@; put 'dXRbdHlwZT1yYW5nZV17cGFkZGluZzowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yLCAjZThlOGU4KX1pbnB1dFt0eXBl'@; put 'PXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvciwgI2U4ZThlOCl9aW5wdXRbdHlwZT1y'@; put 'YW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xy'@; put 'LWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNre2hlaWdodDouMnJlbTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMt'@; put 'cmFuZ2UtdHJhY2stY29sb3IsICNlOGU4ZTgpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tn'@; put 'cm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5wdXR7ZGlzcGxheTpub25lfS5jbHItcmFuZ2Utd3JhcHBlci5wcm9ncmVz'@; put 'cy1maWxsIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfWlucHV0W3R5cGU9cmFuZ2Vd'@; put 'e2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjdyZW19aW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10cmFja3ttYXJnaW46MDtib3JkZXI6MDtoZWlnaHQ6LjJyZW07Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2Jh'@; put 'Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yLCAjZThlOGU4KX1pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6MDtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1j'@; put 'b2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfX1fOi1tcy1mdWxsc2NyZWVuIC5jbHItcmFuZ2Utd3JhcHBlciAuZmlsbC1pbnB1dCw6cm9vdCAuY2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5w'@; put 'dXR7ZGlzcGxheTpub25lfV86LW1zLWZ1bGxzY3JlZW4gLmNsci1yYW5nZS13cmFwcGVyLnByb2dyZXNzLWZpbGwgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLWxvd2VyLDpyb290IC5jbHItcmFuZ2Utd3JhcHBlci5wcm9ncmVzcy1maWxsIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmls'@; put 'bC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfV86LW1zLWZ1bGxzY3JlZW4gaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10b29sdGlwLDpy'@; put 'b290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdG9vbHRpcHt2aXNpYmlsaXR5OmhpZGRlbn1fOi1tcy1mdWxsc2NyZWVuIGlucHV0W3R5cGU9cmFuZ2VdLDpyb290IGlucHV0W3R5cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWln'@; put 'aHQ6LjdyZW19XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2t7Ym9yZGVyOjA7bWFyZ2luOjA7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNr'@; put 'Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvciwgI2U4ZThlOCl9XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1iLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdGh1bWJ7Ym9yZGVyOjA7bWFyZ2luLXRvcDowO2JvcmRl'@; put 'ci1yYWRpdXM6NTAlO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtcHJvZ3Jlc3MtZmlsbC1jb2xvciwgIzAwNzJhMyl9aW5wdXRbY2xyRGF0YWxpc3RdOjotd2Via2l0LWNhbGVu'@; put 'ZGFyLXBpY2tlci1pbmRpY2F0b3J7ZGlzcGxheTpub25lfWNsci1kYXRhbGlzdC1jb250YWluZXIgLmNsci1pbnB1dC1ncm91cHtwYWRkaW5nLXJpZ2h0OjB9OnJvb3R7LS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1jYWxl'@; put 'bmRhci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1kYXRlcGlja2VyLXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWRhdGVwaWNrZXItdHJpZ2dlci1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9u'@; put 'LTgwMCk7LS1jbHItY2FsZW5kYXItYnRuLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ob3Zlci1jb2xvcik7LS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXNpemU6Ljly'@; put 'ZW07LS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdodDoyMDA7LS1jbHItY2FsZW5kYXItdG9kYXktZGF0ZS1jZWxsLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWNhbGVuZGFyLXRvZGF5LWRhdGUtY2VsbC1mb250LXdlaWdodDo2MDA7LS1jbHIt'@; put 'Y2FsZW5kYXItYWN0aXZlLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItY2FsZW5kYXItYWN0aXZlLWZvY3VzLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItY2Fs'@; put 'ZW5kYXItYWN0aXZlLWNlbGwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItZGF5LWZvbnQtc2l6ZTouNnJlbX0uZGF0ZS1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRlcGlja2Vy'@; put 'LXRyaWdnZXJ7aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0p'@; put 'O2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbX0uZGF0ZXBpY2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdnZXItaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmlnZ2VyLWNvbG9yLCAjMDA3MmEzKX0uZGF0ZXBp'@; put 'Y2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdnZXItaWNvbjpob3ZlcntmaWxsOiMwMDU2N2E7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmlnZ2VyLWhvdmVyLWNvbG9yLCAjMDA1NjdhKX0uZGF0ZXBpY2tlci10cmlnZ2VyOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0uY2xy'@; put 'LWZvcm0tY29udHJvbCAuZGF0ZXBpY2tlci10cmlnZ2Vye2xpbmUtaGVpZ2h0OjEuMXJlbTtoZWlnaHQ6MS4xcmVtfS5kYXRlLWlucHV0e2ZsZXg6MSAxIGF1dG99LmRhdGVwaWNrZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOi42cmVtO21hcmdpbi10b3A6'@; put 'LjNyZW07d2lkdGg6MTMuOXJlbTtoZWlnaHQ6MTUuN3JlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNs'@; put 'ci1jYWxlbmRhci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0g'@; put 'LjE1cmVtIHZhcigtLWNsci1wb3BvdmVyLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MTA1MH0uY2FsZW5kYXItaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1p'@; put 'dGVtczpjZW50ZXJ9LmNhbGVuZGFyLXN3aXRjaGVycywueWVhci1zd2l0Y2hlcnN7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLS4xcmVtKTtkaXNwbGF5OmZsZXh9LnllYXItc3dpdGNoZXJze2ZsZXg6MCAwIGF1dG87d2lkdGg6NS40cmVtO2FsaWduLXNlbGY6Y2VudGVyfS5jYWxlbmRhci10YWJs'@; put 'ZXtmbGV4OjEgMSBhdXRvO3dpZHRoOjEwMCV9LmNhbGVuZGFyLWNlbGwsLmNhbGVuZGFyLXRhYmxlIC5jYWxlbmRhci1jZWxse2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21pbi1oZWlnaHQ6MS44cmVtO21pbi13aWR0aDoxLjhyZW07cGFkZGluZzowO3RleHQtYWxpZ246Y2VudGVyfS5k'@; put 'YXl7ZGlzcGxheTppbmxpbmUtYmxvY2t9LndlZWtkYXlze2ZsZXg6MCAwIDEuOHJlbX0ud2Vla2RheXtmb250LXNpemU6LjZyZW07Zm9udC1zaXplOnZhcigtLWNsci1kYXktZm9udC1zaXplLCAuNnJlbSk7Zm9udC13ZWlnaHQ6NjAwfS5jYWxlbmRhci1idG57aGVpZ2h0OjEuOHJlbTttaW4t'@; put 'd2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2lu'@; put 'dGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXNpemU6LjlyZW07Zm9udC1zaXplOnZhcigtLWNsci1jYWxlbmRhci1waWNrZXItYnRuLWZvbnQtc2l6ZSwgLjlyZW0pO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdo'@; put 'dCwgMjAwKX0uY2FsZW5kYXItYnRuOmhvdmVyLC5jYWxlbmRhci1idG46Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9LmNhbGVuZGFyLWJ0bjpmb2N1c3tvdXRsaW5lOjB9LmRheS1i'@; put 'dG57aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtiYWNrZ3JvdW5kOjAgMDtjdXJz'@; put 'b3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjhyZW07d2lkdGg6MTAwJTtjb2xvcjppbmhlcml0fS5kYXktYnRuOmhvdmVyLC5kYXktYnRuOmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3IsICNlOGU4ZTgp'@; put 'fS5kYXktYnRuOmZvY3Vze291dGxpbmU6MH0uZGF5LWJ0bi5pcy10b2RheXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWNhbGVuZGFyLXRvZGF5LWRh'@; put 'dGUtY2VsbC1mb250LXdlaWdodCwgNjAwKX0uZGF5LWJ0bi5pcy1leGNsdWRlZHtvcGFjaXR5Oi40fS5kYXktYnRuLmlzLWV4Y2x1ZGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXktYnRuLmlzLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxl'@; put 'bmRhci1hY3RpdmUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1jb2xvciwgYmxhY2spfS5kYXktYnRuLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZh'@; put 'cigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0uZGF5LWJ0bi5pcy1kaXNhYmxlZHtvcGFjaXR5Oi40O3BvaW50ZXItZXZlbnRzOm5vbmV9LmRheS1idG4uaXMtZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDowIDB9LmNhbGVuZGFy'@; put 'LXBpY2tlcnN7ZGlzcGxheTpmbGV4fS5zd2l0Y2hlcntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpfS5zd2l0Y2hlciBjZHMtaWNvbiwuc3dpdGNoZXIgY2xyLWljb257aGVpZ2h0Oi45cmVtO3dpZHRoOi45cmVtfS5tb250aHBpY2tl'@; put 'ci10cmlnZ2VyLC55ZWFycGlja2VyLXRyaWdnZXJ7bWluLXdpZHRoOjIuNHJlbTttYXgtd2lkdGg6M3JlbTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxv'@; put 'dzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubW9udGhwaWNrZXIsLnllYXJwaWNrZXJ7bWluLWhlaWdodDoxNC40cmVtfS5tb250aHBpY2tlciwueWVhcnBpY2tlciwueWVhcnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW59Lm1vbnRo'@; put 'cGlja2VyLC55ZWFyc3tmbGV4LXdyYXA6d3JhcH0ubW9udGgsLnllYXJ7aGVpZ2h0OjIuNHJlbTttaW4td2lkdGg6Mi40cmVtO3BhZGRpbmc6MCAuNnJlbTttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVz'@; put 'OnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTt3aWR0aDo2LjNyZW07Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjIwMDtvdXRsaW5lLW9mZnNldDotLjI1cmVtfS5tb250aDpo'@; put 'b3ZlciwubW9udGg6Zm9jdXMsLnllYXI6aG92ZXIsLnllYXI6Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9Lm1vbnRoOmZvY3VzLC55ZWFyOmZvY3Vze291dGxpbmU6MH0ubW9udGgu'@; put 'aXMtZGlzYWJsZWQsLnllYXIuaXMtZGlzYWJsZWR7b3BhY2l0eTouNDtwb2ludGVyLWV2ZW50czpub25lfS5tb250aC5pcy1kaXNhYmxlZDpob3ZlciwueWVhci5pcy1kaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0ubW9udGguaXMtc2VsZWN0ZWQsLnllYXIuaXMtc2VsZWN0ZWR7YmFj'@; put 'a2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWJhY2tncm91bmQtY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWNvbG9yLCBibGFjayl9Lm1vbnRoLmlzLXNlbGVjdGVk'@; put 'OmZvY3VzLC55ZWFyLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0ubW9udGh7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93'@; put 'cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55ZWFye3RleHQtYWxpZ246Y2VudGVyfTpyb290ey0tY2xyLWNvbWJvYm94LXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1jb21ib2JveC1mb250LXNpemU6LjY1cmVtOy0t'@; put 'Y2xyLWNvbWJvYm94LWJvcmRlci1jb2xvcjojZThlOGU4Oy0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQtY29sb3I6I2YyZjJmMjstLWNsci1jb21ib2JveC1waWxsLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1jbHIt'@; put 'Y29tYm9ib3gtcGlsbC1ib3JkZXItY29sb3I6IzY2NjY2NjstLWNsci1jb21ib2JveC1waWxsLWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LXBpbGwtZm9udC1jb2xvcjojNDU0NTQ1Oy0tY2xyLWNvbWJvYm94LWZpbHRlci1oaWdobGlnaHQ6IzQ1NDU0NX0uY2xyLWNvbWJv'@; put 'Ym94LWZvcm0tY29udHJvbHthbGlnbi1pdGVtczpzdHJldGNofS5jbHItY29tYm9ib3gtZm9ybS1jb250cm9sIC5jbHItZXJyb3IgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1mb2N1cy1pbmRpY2F0b3J7YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQt'@; put 'Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO2hlaWdodDouMXJlbTt3aWR0aDowO3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2U7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uMDVyZW07bGVmdDowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVt'@; put 'O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1jb21ib2JveC1ib3JkZXItcmFkaXVzLCAu'@; put 'MTVyZW0pfS5jbHItZm9jdXN7d2lkdGg6MTAwJX0uY2xyLWVycm9yIC5jbHItZm9jdXMtaW5kaWNhdG9ye2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWNvbWJvYm94LXdyYXBwZXJ7'@; put 'cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDEuMnJlbSAwIC4zcmVtO21pbi1oZWlnaHQ6MS4ycmVtO21pbi13aWR0aDo4LjRyZW07Zm9udC1zaXplOi42NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWNvbWJvYm94LWZvbnQtc2l6ZSwgLjY1cmVtKTtjb2xvcjojMDAwO2NvbG9yOnZhcigt'@; put 'LWNsci1mb3Jtcy10ZXh0LWNvbG9yLCBibGFjayk7Ym9yZGVyLWJvdHRvbTouMDVyZW0gc29saWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQtY29sb3IsICNm'@; put 'MmYyZjIpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZThlOGU4O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtYm9yZGVyLWNvbG9yLCAjZThlOGU4KTtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXN0'@; put 'eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXMs'@; put 'IC4xNXJlbSl9LmNsci1jb21ib2JveC13cmFwcGVyLm11bHRpe21pbi13aWR0aDptaW4oMThyZW0sMTAwJSk7cGFkZGluZy1ib3R0b206LjE1cmVtfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWlucHV0LmNsci1jb21ib2JveC1pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOjAgMH0uY2xyLWNv'@; put 'bWJvYm94LXdyYXBwZXIuaW52YWxpZHtib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDB9LmNsci1jb21ib2JveC13cmFwcGVyIC5jbHItY29tYm9ib3gtaW5wdXR7YmFja2dyb3VuZDowIDA7Ym9yZGVyLWJvdHRvbTpub25lfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94LXJl'@; put 'bW92ZS1idG57YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzouMTVyZW07Y29sb3I6IzQ1NDU0NX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGx7bWFyZ2luOi4xNXJlbSAuM3JlbSAwIDA7YmFja2dyb3VuZC1jb2xvcjojZmZm'@; put 'O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFy'@; put 'KC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtwYWRkaW5nOjAgLjFyZW0gMCAuMnJlbX0uY2xyLWNvbWJvYm94LXdyYXBw'@; put 'ZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgLmNsci1jb21ib2JveC1waWxsLWNvbnRlbnR7Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KTtmb250LXNpemU6LjU1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nOjAgLjRyZW0g'@; put 'MCAuMnJlbX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2RzLWljb25bc2hhcGU9d2luZG93LWNsb3NlXSwuY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2xyLWljb25bc2hhcGU9d2luZG93LWNsb3NlXXtjb2xvcjojNDU0NTQ1'@; put 'O2NvbG9yOnZhcigtLWNsci1jb21ib2JveC1waWxsLWZvbnQtY29sb3IsICM0NTQ1NDUpfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94LWlucHV0LXdyYXBwZXJ7Ym9yZGVyOjA7YmFja2dyb3VuZDowIDB9LmNsci1jb21ib2JveC10cmlnZ2Vye3dpZHRoOjEuMnJlbTttYXJn'@; put 'aW46YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOmN1cnJlbnRDb2xvcjtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjB9LmNsci1jb21ib2JveC10cmlnZ2VyOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1i'@; put 'dG4tbGluay1kaXNhYmxlZC1jb2xvciwgIzY2Nik7b3BhY2l0eTouNH0uY2xyLWNvbWJvYm94LXRyaWdnZXIgY2RzLWljb25bc2hhcGU9YW5nbGVdLC5jbHItY29tYm9ib3gtdHJpZ2dlciBjbHItaWNvbltzaGFwZT1hbmdsZV17Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItY29tYm9i'@; put 'b3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNvbWJvYm94LW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7bWluLXdpZHRoOjZyZW07bWF4LXdpZHRoOjE4cmVtO2JhY2tncm91bmQ6I2Zm'@; put 'ZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1j'@; put 'b2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hh'@; put 'ZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZHJvcGRvd24tYm94LXNoYWRvdywgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTttYXJnaW4tdG9wOi4xcmVtO3BhZGRpbmc6LjZyZW0gMDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwNTA7cG9zaXRpb246c3RhdGljO21heC1oZWln'@; put 'aHQ6MTJyZW07b3ZlcmZsb3cteTpzY3JvbGw7dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtbG9hZGluZ3twYWRkaW5nOi4xNXJlbSAxLjJyZW19LmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9ucy1s'@; put 'b2FkaW5nIC5jbHItY29tYm9ib3gtb3B0aW9ucy1sb2FkaW5nLXRleHR7cGFkZGluZy1sZWZ0Oi4zcmVtfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtZW1wdHktdGV4dHtwYWRkaW5nLWxlZnQ6LjZyZW19LmNsci1jb21ib2JveC1vcHRpb257Y29sb3I6IzY2'@; put 'Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3Vu'@; put 'ZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjowO3dpZHRoOjEwMCU7dGV4dC10cmFuc2Zvcm06bm9uZX0uY2xyLWNvbWJvYm94LW9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4'@; put 'ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYmctaG92ZXItY29sb3IsICNlOGU4ZTgpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmFj'@; put 'dGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIoLS1jbHItZHJvcGRvd24tc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5jbHItY29tYm9ib3gtb3B0aW9uOmFj'@; put 'dGl2ZXtib3gtc2hhZG93Om5vbmV9LmNsci1jb21ib2JveC1vcHRpb246Zm9jdXN7ei1pbmRleDppbmhlcml0fS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNDstd2Via2l0LXVz'@; put 'ZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uY2xyLWNvbWJvYm94LW9wdGlvbi5kaXNhYmxlZDpob3ZlciwuY2xyLWNvbWJvYm94LW9wdGlvbjpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uY2xyLWNvbWJvYm94LW9wdGlvbi5kaXNhYmxlZDphY3RpdmUsLmNsci1jb21i'@; put 'b2JveC1vcHRpb246ZGlzYWJsZWQ6YWN0aXZle2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uY2xyLWNvbWJvYm94LW9wdGlvbi5jbHItZm9jdXN7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWJnLWhvdmVyLWNvbG9y'@; put 'LCAjZThlOGU4KX0uY2xyLWNvbWJvYm94LW9wdGlvbnMgLmNsci1jb21ib2JveC1vcHRpb257cGFkZGluZzouMTVyZW0gMS4ycmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTc2cHgpey5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbntwYWRkaW5nOi4z'@; put 'cmVtIDEuMnJlbX19LmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9uOmhvdmVyLC5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbi5hY3RpdmV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1jb2xvciwgIzY2NjY2'@; put 'Nil9LmNsci1jb21ib2JveC1kaXNhYmxlZHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKTtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci1jb21ib2JveC1kaXNhYmxlZCAuY2xyLWNvbWJvYm94LWlucHV0LC5jbHItY29tYm9i'@; put 'b3gtZGlzYWJsZWQgLmNsci1jb21ib2JveC1yZW1vdmUtYnRuLC5jbHItY29tYm9ib3gtZGlzYWJsZWQgLmNsci1jb21ib2JveC10cmlnZ2Vye2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWZpbHRlci1oaWdobGlnaHQgYntmb250LXdlaWdodDo1MDA7Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIo'@; put 'LS1jbHItY29tYm9ib3gtZmlsdGVyLWhpZ2hsaWdodCwgIzQ1NDU0NSl9OnJvb3R7LS1jbHItc3RhY2stdmlldy1ib3JkZXItcmFkaXVzOi4xNXJlbTstLWNsci1zdGFjay12aWV3LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLXN0YWNrLXZpZXctYmct'@; put 'Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbTp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0zMDApOy0tY2xyLXN0YWNrLXZpZXctY29sb3I6IzY2NjY2NjstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2Nr'@; put 'LWxhYmVsLXRleHQtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1zdGFjay12aWV3LWJvcmRlci1ib3gtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMzAwKTstLWNsci1zdGFjay1ibG9jay1jaGFuZ2VkLWJvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLWNv'@; put 'bG9yLWFjdGlvbi02MDApOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stbGFiZWwtYW5kLWNvbnRlbnQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stY2hpbGRyZW4tc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbS1jb2xvcjp2'@; put 'YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stY2hpbGRyZW4tc3RhY2stYmxvY2stbGFiZWwtYW5kLWNvbnRlbnQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC1i'@; put 'Zy1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRhYmxlLWhvdmVyOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jb250ZW50LXRleHQtY29sb3I6'@; put 'aW5oZXJpdDstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGVkLXRleHQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jYXJldC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpfS5zdGFjay1o'@; put 'ZWFkZXJ7Zm9udC13ZWlnaHQ6NDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LWVuZH0uc3RhY2staGVhZGVyIC5zdGFjay10aXRsZXtkaXNwbGF5OmJsb2NrO2ZsZXg6MSAxIGF1dG87cGFkZGluZzouM3JlbSAwfS5zdGFjay1oZWFkZXIgLnN0YWNrLWFjdGlvbnN7ZGlzcGxheTpi'@; put 'bG9jaztmbGV4OjAgMCBhdXRvfS5zdGFjay1oZWFkZXIgLnN0YWNrLWFjdGlvbnMgLnN0YWNrLWFjdGlvbnttYXJnaW46MCAwIC4zcmVtIC42cmVtfS5zdGFjay1oZWFkZXIgLnN0YWNrLWFjdGlvbnMgLnN0YWNrLWFjdGlvbi5idG57bWluLXdpZHRoOjA7cGFkZGluZzowIC42cmVtfS5zdGFj'@; put 'ay1oZWFkZXIgLnN0YWNrLWFjdGlvbnMgLnN0YWNrLWFjdGlvbi5idG4tbGlua3ttYXJnaW4tcmlnaHQ6LS42cmVtfS5zdGFjay12aWV3e2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAw'@; put 'O2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luLXRvcDowO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItY29sb3IsICNjY2Nj'@; put 'Y2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtvdmVyZmxvdy15OmF1dG87YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctYmct'@; put 'Y29sb3IsICNmYWZhZmEpO3dvcmQtd3JhcDpicmVhay13b3JkfS5zdGFjay12aWV3IGRkLC5zdGFjay12aWV3IGR0e21hcmdpbi1pbmxpbmUtc3RhcnQ6MDttYXJnaW4tbGVmdDowfS5zdGFjay12aWV3IC5zdGFjay1ibG9ja3tkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyB3cmFwO2JvcmRl'@; put 'ci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6I2RlZGVkZTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1z'@; put 'dGFjay12aWV3LXN0YWNrLWJsb2NrLWJvcmRlci1ib3R0b20sICNkZWRlZGUpO292ZXJmbG93LXk6aGlkZGVufS5zdGFjay12aWV3Pi5zdGFjay1ibG9jazpsYXN0LWNoaWxkLC5zdGFjay12aWV3PjpsYXN0LWNoaWxkIC5zdGFjay1ibG9jazpsYXN0LW9mLXR5cGV7Ym9yZGVyLWJvdHRvbTpu'@; put 'b25lO2JveC1zaGFkb3c6MCAuMDVyZW0gI2RlZGVkZTtib3gtc2hhZG93OjAgLjA1cmVtIDAgdmFyKC0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLWJveC1jb2xvcil9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNoYW5nZWQ+LnN0YWNrLWJsb2NrLWxhYmVse21hcmdpbi1sZWZ0Oi0uNDVyZW19'@; put 'LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNoYW5nZWQ6YmVmb3Jle2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDowO3dpZHRoOjA7Ym9yZGVyLXRvcDouNDVyZW0gc29saWQ7Ym9yZGVyLXRvcC1jb2xvcjojMDA3MmEzO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXN0'@; put 'YWNrLWJsb2NrLWNoYW5nZWQtYm9yZGVyLXRvcC1jb2xvciwgIzAwNzJhMyk7Ym9yZGVyLXJpZ2h0Oi40NXJlbSBzb2xpZCB0cmFuc3BhcmVudH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stbGFiZWx7cGFkZGluZzouM3JlbSAuNnJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dy'@; put 'b3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvciwgI2ZhZmFmYSl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1j'@; put 'YXJldHthbGlnbi1zZWxmOmNlbnRlcn0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stbGFiZWx7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1sYWJlbC10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjY1cmVtO2ZvbnQtd2VpZ2h0OjUwMDts'@; put 'aW5lLWhlaWdodDoxLjJyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1sYWJlbDpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiIjtmbG9hdDpsZWZ0O2hlaWdodDouN3JlbTt3aWR0'@; put 'aDouN3JlbTttYXJnaW46LjM1cmVtIC4yNHJlbSAwIDA7dGV4dC1hbGlnbjpjZW50ZXJ9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWxhYmVsOmZvY3Vze291dGxpbmU6LjA1cmVtIGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0Oi0uMDVyZW19LnN0YWNrLXZp'@; put 'ZXcgLnN0YWNrLXZpZXcta2V5e2ZsZXg6MCAwIDQwJTttYXgtd2lkdGg6NDAlfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1jYXJldHtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07bWFyZ2luLXJpZ2h0Oi4yNHJlbTtmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1i'@; put 'bG9jay1jYXJldC1jb2xvciwgIzY2NjY2Nil9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnR7Y29sb3I6aW5oZXJpdDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jb250ZW50LXRleHQtY29sb3IsIGluaGVyaXQpO2ZsZXg6MSAxIGF1dG87d2lkdGg6NjAl'@; put 'O21hcmdpbi1ib3R0b206MDtmb250LXdlaWdodDo0MDB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudD46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnN0YWNrLXZpZXcg'@; put 'LnN0YWNrLWNoaWxkcmVue2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2Nre2JvcmRlci1ib3R0b20tY29sb3I6I2U4ZThlODtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWNoaWxkcmVu'@; put 'LXN0YWNrLWJsb2NrLWJvcmRlci1ib3R0b20tY29sb3IsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbj4uc3RhY2stYmxvY2s6bGFzdC1jaGlsZCwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4+Omxhc3QtY2hpbGQgLnN0YWNrLWJsb2NrOmxhc3Qtb2YtdHlwZXtib3Jk'@; put 'ZXItYm90dG9tOm5vbmU7Ym94LXNoYWRvdzowIC4wNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMDVyZW0gMCB2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItYm94LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWxhYmVsLC5zdGFjay12aWV3IC5z'@; put 'dGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2stY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvciwgd2hpdGUpfS5zdGFjay12'@; put 'aWV3IC5zdGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2stbGFiZWx7cGFkZGluZy1sZWZ0OjEuMnJlbX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWx7Y3Vyc29yOnBvaW50ZXJ9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+'@; put 'LnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIl'@; put 'MjAxMiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjM2NjY2NjYlM0IlN0QlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0'@; put 'aXRsZSUzRUNhcmV0JTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUyQzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMw'@; put 'JTJDMSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO2hlaWdodDouNnJlbTt3aWR0aDou'@; put 'NnJlbX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWwsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnR7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCxjb2xv'@; put 'ciAuMnMgZWFzZS1pbi1vdXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU6aG92ZXI6bm90KC5zdGFjay1ibG9jay1leHBhbmRlZCk+LnN0YWNrLWJsb2NrLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12'@; put 'aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGFibGUtaG92ZXIsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stbGFiZWw6YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoMCl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1i'@; put 'bG9jay1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNkOGUzZTk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC1iZy1jb2xvciwgI2Q4ZTNlOSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1l'@; put 'eHBhbmRlZC10ZXh0LWNvbG9yLCBibGFjayl9LnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZXh0XSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPW51bWJlcl0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1lbWFpbF0sLnN0YWNrLXZpZXcgaW5w'@; put 'dXRbdHlwZT11cmxdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9dGVsXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPWRhdGVdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9dGltZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sLnN0YWNrLXZpZXcgLnNlbGVjdHtkaXNwbGF5'@; put 'OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7bWFyZ2luLXJpZ2h0Oi42cmVtO21hcmdpbi1ib3R0b206LS45NXJlbX0uc3RhY2stdmlldyBpbnB1dFt0eXBlPXRleHRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9cGFzc3dvcmRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9bnVtYmVy'@; put 'XSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPWVtYWlsXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPXVybF0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9ZGF0ZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10aW1lXSwuc3RhY2stdmlldyBpbnB1dFt0'@; put 'eXBlPWRhdGV0aW1lLWxvY2FsXSwuc3RhY2stdmlldyAuc2VsZWN0IHNlbGVjdHtoZWlnaHQ6MS4ycmVtfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFu'@; put 'ZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1udW1iZXJdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFj'@; put 'ay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZW1haWxdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBp'@; put 'bnB1dFt0eXBlPXRlbF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1kYXRlXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5z'@; put 'dGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxde3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlLGJvcmRlci1ib3R0b20tY29sb3IgLjJzIGVhc2UtaW4tb3V0fS5zdGFjay12aWV3'@; put 'IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0e3RyYW5zaXRpb246Ym9yZGVyLWJvdHRvbS1jb2xvciAuMnMgZWFzZS1pbi1vdXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQg'@; put 'LnNlbGVjdDphZnRlcnt0cmFuc2l0aW9uOmNvbG9yIC4ycyBlYXNlLWluLW91dH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZXh0XSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2Nr'@; put 'LWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRb'@; put 'dHlwZT1lbWFpbF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3'@; put 'IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRl'@; put 'ZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXXtib3JkZXItYm90dG9tLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRv'@; put 'IGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFu'@; put 'ZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4u'@; put 'c3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRl'@; put 'ZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVk'@; put 'Pi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWVtYWlsXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5z'@; put 'dGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT11cmxdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJs'@; put 'b2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRlbF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29u'@; put 'dGVudCBpbnB1dFt0eXBlPWRhdGVdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQg'@; put 'aW5wdXRbdHlwZT10aW1lXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10aW1lXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0'@; put 'W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29s'@; put 'b3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0e2JvcmRlci1ib3R0b20tY29sb3I6IzhjOGM4Yzti'@; put 'b3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCwgIzhjOGM4Yyl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Q6YWZ0ZXJ7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1'@; put 'dHJhbC02MDAsICM4YzhjOGMpfS5tb2RhbCAuc3RhY2stdmlld3toZWlnaHQ6NTV2aDttYXJnaW4tYm90dG9tOjB9LnN0YWNrLXZpZXcgY2xyLXN0YWNrLWJsb2NrLnN0YWNrLWJsb2NrLWV4cGFuZGFibGUgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtjb250ZW50Om5vbmV9LnN0YWNrLXZp'@; put 'ZXcgLnN0YWNrLWNoaWxkcmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stbGFiZWwsLnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nLWxlZnQ6MS44cmVtfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiBjbHItc3RhY2stYmxvY2sg'@; put 'LnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZSwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5Om5vbmV9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stY29udGVudCwuc3RhY2st'@; put 'dmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWNvbnRlbnR7cGFkZGluZy1sZWZ0Oi4zNnJlbX06cm9vdHstLWNsci10cmVlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yOnZh'@; put 'cigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXRyZWUtbGluay1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY3VzdG9tLWxpbmtzLWhvdmVyLWNvbG9yKTstLWNsci10cmVlLWxpbmstc2VsZWN0aW9uLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci10'@; put 'cmVlLWxpbmstdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MDApfS5jbHItdHJlZS1ub2Rle2Rpc3BsYXk6YmxvY2t9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWlu'@; put 'ZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLXRyZWVub2RlLWNvbnRlbnR7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQt'@; put 'cmFkaXVzOnZhcigtLWNsci10cmVlLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdHJlZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0OjEuNjJyZW19LmNs'@; put 'ci10cmVlbm9kZS1jb250ZW50OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoxLjYycmVtfS5jbHItdHJlZW5vZGUtY29udGVudCBjZHMtaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21hcmdpbi1yaWdodDouM3JlbTt2ZXJ0aWNh'@; put 'bC1hbGlnbjptaWRkbGV9LmNsci10cmVlbm9kZS1jYXJldHtmbGV4OjAgMCAxLjYycmVtO3BhZGRpbmc6MDttYXJnaW46MDtoZWlnaHQ6MS42MnJlbTt3aWR0aDoxLjYycmVtO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1j'@; put 'YXJldC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX0uY2xyLXRyZWVub2RlLWNhcmV0OmhvdmVye2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5v'@; put 'ZGUtY2FyZXQtaWNvbntoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5jbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXJ7aGVpZ2h0OjEuNjJyZW07d2lkdGg6MS42MnJlbTtwYWRkaW5nOi40MXJlbX0uY2xyLXRyZWVub2RlLXNwaW5uZXJ7aGVpZ2h0'@; put 'Oi44cmVtO3dpZHRoOi44cmVtO21pbi1oZWlnaHQ6LjhyZW07bWluLXdpZHRoOi44cmVtfS5jbHItdHJlZW5vZGUtY2hpbGRyZW57bWFyZ2luLWxlZnQ6MS4xN3JlbTt3aWxsLWNoYW5nZTpoZWlnaHQ7b3ZlcmZsb3cteTpoaWRkZW59LmNsci10cmVlbm9kZS1saW5re2Rpc3BsYXk6aW5saW5l'@; put 'LWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzowIDAgMCAuM3JlbTtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10cmVlLWxpbmstdGV4dC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWln'@; put 'aHQ6aW5oZXJpdDt0ZXh0LWFsaWduOmxlZnR9LmNsci10cmVlbm9kZS1saW5rOmxpbmssLmNsci10cmVlbm9kZS1saW5rOnZpc2l0ZWQsLmNsci10cmVlbm9kZS1saW5rOmFjdGl2ZSwuY2xyLXRyZWVub2RlLWxpbms6aG92ZXJ7Y29sb3I6aW5oZXJpdH0uY2xyLXRyZWVub2RlLWxpbms6aG92'@; put 'ZXIsLmNsci10cmVlbm9kZS1saW5rOmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci10cmVlLWxpbmstaG92ZXItY29sb3IsICNlOGU4ZTgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItdHJlZW5vZGUtbGluay5hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5'@; put 'O2JhY2tncm91bmQ6dmFyKC0tY2xyLXRyZWUtbGluay1zZWxlY3Rpb24tY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci1j'@; put 'aGVja2JveC13cmFwcGVye3BhZGRpbmctdG9wOi4yMXJlbTtwYWRkaW5nLWxlZnQ6LjQxcmVtfS5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyPi5jbHItY2hlY2tib3gtd3JhcHBlcjpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDoxLjYycmVtfS5jbHItdHJlZS1ub2RlLWNvbnRlbnQt'@; put 'Y29udGFpbmVyPi5jbHItY2hlY2tib3gtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7Zm9udC1zaXplOi43cmVtfS5jbHItdHJlZW5vZGUtY29udGVudCAubGFiZWx7bWFyZ2luLWxlZnQ6LjNyZW19QHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOmF1dG8pey5jbHItdHJlZW5vZGUtY29udGVu'@; put 'dCAubGFiZWx7bWFyZ2luLWxlZnQ6LjE1cmVtfX1fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAuY2xyLXRyZWVub2RlLWNvbnRlbnQgLmxhYmVsLDpyb290IC5jbHItdHJlZW5vZGUtY29udGVudCAubGFiZWx7bWFyZ2luLWxlZnQ6LjE1cmVtfTpyb290ey0tY2xyLWRhdGFncmlkLWZvbnQtY29s'@; put 'b3I6I2FjYmFjMzstLWNsci1kYXRhZ3JpZC1kZWZhdWx0LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWRhdGFncmlkLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXI6dmFyKC0tY2xy'@; put 'LWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXItZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItZGF0YWdyaWQtcGFnaW5h'@; put 'dGlvbi1idG4tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0bi1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWNvbG9yOnZh'@; put 'cigtLWNsci1kYXRhZ3JpZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItZm9jdXMtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi00MDApOy0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9y'@; put 'LW5ldXRyYWwtMCk7LS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1hY3Rpb24tcG9wb3Zlci1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xy'@; put 'LWRhdGFncmlkLXJvdy1zZWxlY3RlZDp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1kYXRhZ3JpZC1sb2FkaW5nLWJhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMjU1LCAuNik7LS1jbHItZGF0YWdyaWQtcG9wb3ZlcnMtYm94LXNoYWRvdy1jb2xvcjpyZ2JhKDE0MCwgMTQw'@; put 'LCAxNDAsIC4yNSk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MDApOy0tY2xyLWRhdGFncmlkLWNvbHVtbi1zd2l0Y2gtaGVhZGVyLWZvbnQtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02'@; put 'MDApOy0tY2xyLWRhdGFncmlkLWRldGFpbC1jYXJldC1pY29uLW9wZW4tYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWRhdGFncmlkLWRldGFpbC1jYXJldC1pY29uLW9wZW4taWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1kYXRh'@; put 'Z3JpZC1wbGFjZWhvbGRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZTouOHJlbTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0bi1kaXNhYmxlZC1vcGFjaXR5Oi41NjstLWNsci1kYXRhZ3JpZC1jb2x1'@; put 'bW4tdG9nZ2xlLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZmlsbC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10ZXh0LWNvbG9yOnZhcigt'@; put 'LWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1ib3JkZXItaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWZpbGwtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5l'@; put 'dXRyYWwtMCk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10ZXh0LWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtYm9yZGVyLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0t'@; put 'Y2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZmlsbC1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwKTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLXRleHQtYWN0aXZlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCl9LmRhdGFncmlke2JvcmRl'@; put 'ci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNv'@; put 'bG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10YWJsZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1iZ2NvbG9yLCB3aGl0ZSk7Y29sb3I6'@; put 'IzY2Njtjb2xvcjp2YXIoLS1jbHItdGFibGUtZm9udC1jb2xvciwgIzY2NjY2Nik7bWFyZ2luOjA7bWFyZ2luLXRvcDoxLjJyZW07bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbiwuZGF0YWdyaWQgLmRhdGFncmlkLWNlbGx7Zm9udC1zaXplOi42'@; put 'NXJlbTtsaW5lLWhlaWdodDouN3JlbTtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3AtY29sb3I6I2U4ZThlODtib3JkZXItdG9wLWNvbG9y'@; put 'OnZhcigtLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvciwgI2U4ZThlOCk7cGFkZGluZzouNTVyZW0gLjZyZW07dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wfS5kYXRhZ3JpZCAuZGF0YWdyaWQtY29sdW1uLmxlZnQsLmRhdGFncmlkIC5kYXRhZ3JpZC1jZWxsLmxlZnR7dGV4'@; put 'dC1hbGlnbjpsZWZ0fS5kYXRhZ3JpZCAuZGF0YWdyaWQtY29sdW1uLmxlZnQ6Zmlyc3QtY2hpbGQsLmRhdGFncmlkIC5kYXRhZ3JpZC1jZWxsLmxlZnQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0Oi4zcmVtfS5kYXRhZ3JpZCAuZGF0YWdyaWQtY29sdW1ue2NvbG9yOiM2NjY7Y29sb3I6dmFy'@; put 'KC0tY2xyLXRoZWFkLWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjU1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDNlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvciwgI2ZhZmFmYSk7dmVydGlj'@; put 'YWwtYWxpZ246Ym90dG9tO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20t'@; put 'Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXRvcDowIG5vbmV9LmRhdGFncmlkIC5kYXRhZ3JpZC1ib2R5IC5kYXRhZ3JpZC1yb3c6Zmlyc3QtY2hpbGQgLmRhdGFncmlkLWNlbGx7Ym9yZGVyLXRvcDowIG5vbmV9LmRhdGFncmlkIC5kYXRhZ3Jp'@; put 'ZC1ib2R5Ky5kYXRhZ3JpZC1ib2R5e2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDouMDVyZW07Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRlci10b3AtY29sb3I6dmFy'@; put 'KC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmRhdGFncmlkIC5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLWNvbHVtbjpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigt'@; put 'LWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9LmRhdGFncmlkIC5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLWNvbHVtbjpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIo'@; put 'LS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keTpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1yb3c6bGFzdC1jaGlsZCAuZGF0YWdyaWQtY2VsbDpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1'@; put 'czouMXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9LmRhdGFncmlkIC5kYXRhZ3JpZC1ib2R5Omxhc3QtY2hpbGQgLmRhdGFncmlkLXJvdzpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1jZWxsOmxhc3QtY2hpbGR7Ym9y'@; put 'ZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4xcmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNvbHVtbiwuZGF0YWdyaWQtY29tcGFj'@; put 'dCAuZGF0YWdyaWQtY2VsbHtwYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LmRhdGFncmlkLWhvc3R7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO3Bvc2l0aW9uOnJlbGF0aXZlfS5kYXRhZ3JpZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7'@; put 'Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDstbXMtb3ZlcmZsb3ctc3R5bGU6LW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO292ZXJmbG93OmF1dG87ZmxleDoxIDEgYXV0bzttYXJnaW4tdG9wOi42cmVtfS5kYXRhZ3JpZC1jb250YWluZXJ7d2lkdGg6YXV0bztmb250LXNpemU6LjY1cmVt'@; put 'O3BhZGRpbmc6LjU1cmVtIC42cmVtfS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0e3BhZGRpbmc6LjFyZW0gLjJyZW0gLjE1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWJ1dHRvbnstd2Via2l0LWFw'@; put 'cGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjto'@; put 'ZWlnaHQ6MS41cmVtO3dpZHRoOjEuNXJlbX1idXR0b24uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtaWNv'@; put 'bntjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1pY29uLWNvbG9yLCAjOGM4YzhjKTttYXJnaW4tdG9wOi4xNXJlbX0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1pY29uIHN2Z3t0cmFuc2l0aW9uOnRyYW5zZm9ybSAu'@; put 'MnMgZWFzZS1pbi1vdXR9LmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLnNwaW5uZXJ7bWFyZ2luLXRvcDouM3JlbX0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC5kYXRhZ3JpZC1jb2x1bW57cGFkZGluZzouNTVyZW0gLjZyZW19LmRhdGFncmlkLWhlYWRlciwuZGF0YWdyaWQtYm9keSwu'@; put 'ZGF0YWdyaWQtcm93LC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLWNlbGwsLmRhdGFncmlkLWZpeGVkLWNvbHVtbntkaXNwbGF5OmJsb2NrfS5kYXRhZ3JpZC1yb3d7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigt'@; put 'LWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtcm93OmZpcnN0LW9mLXR5cGV7Ym9yZGVyLXRvcDpub25lfS5kYXRhZ3JpZC1y'@; put 'b3c6aG92ZXIsLmRhdGFncmlkLXJvdzpob3ZlciAuZGF0YWdyaWQtcm93LXN0aWNreXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLCAjZThlOGU4KX0uZGF0YWdyaWQtcm93LmRhdGFncmlkLXNlbGVjdGVkLC5k'@; put 'YXRhZ3JpZC1yb3cuZGF0YWdyaWQtc2VsZWN0ZWQgLmRhdGFncmlkLXJvdy1zdGlja3l7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LXNlbGVjdGVkLCBibGFjayk7YmFja2dyb3VuZC1jb2xvcjojZDhlM2U5O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWdsb2Jh'@; put 'bC1zZWxlY3Rpb24tY29sb3IsICNkOGUzZTkpfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOi0uM3JlbTtib3JkZXIt'@; put 'dG9wOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4zcmVtO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0t'@; put 'Y2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9w'@; put 'Oi0uMjVyZW07Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4yNXJlbTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmZmY7Ym9yZGVy'@; put 'LXJpZ2h0LWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3Bv'@; put 'dmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3Jk'@; put 'ZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29s'@; put 'b3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFj'@; put 'dGlvbi1vdmVyZmxvdzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uM3JlbTtib3JkZXItdG9wOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNyZW0gc29saWQg'@; put 'dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4zcmVtO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQt'@; put 'cm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uMjVyZW07Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJv'@; put 'dHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4yNXJlbTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmZmY7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0'@; put 'ZSl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZh'@; put 'cigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tcG9wb3Zlci1ob3Zlci1jb2xvciwgI2U4ZThlOCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5hY3RpdmV7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6'@; put 'dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3ZlciwgI2U4ZThlOCk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwLCBibGFjayl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2Zm'@; put 'ZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRl'@; put 'ci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0t'@; put 'Y2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLWNvbG9yOi4xNXJlbTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwO3doaXRlLXNwYWNl'@; put 'Om5vd3JhcH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjNyZW07Ym9yZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkO2Jv'@; put 'cmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci10b3A6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouM3JlbSBzb2xpZCB0cmFuc3BhcmVudH0u'@; put 'ZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uMjVyZW07Ym9yZGVyLXJpZ2h0Oi4yNXJlbSBzb2xpZCAjZmZmO2JvcmRl'@; put 'ci10b3A6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW17Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tdGV4dC1j'@; put 'b2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuMTVyZW07bWFyZ2luOjA7cGFkZGluZzouMDVyZW0gMS4ycmVtIDA7dGV4dC1h'@; put 'bGlnbjpsZWZ0O3dpZHRoOjEwMCV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tn'@; put 'cm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tcG9wb3Zlci1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5hY3RpdmV7YmFja2dyb3VuZDoj'@; put 'ZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3ZlciwgI2U4ZThlOCk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLWZvbnQtY29sb3IsIGJsYWNrKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFj'@; put 'dGlvbi1pdGVtOmZvY3Vze291dGxpbmU6MH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxv'@; put 'd2VkO29wYWNpdHk6LjQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cg'@; put 'LmFjdGlvbi1pdGVtOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0u'@; put 'ZGlzYWJsZWQ6Zm9jdXMsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpmb2N1c3tiYWNrZ3JvdW5kOjAg'@; put 'MDtib3gtc2hhZG93Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtIGNsci1pY29ue3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt0'@; put 'cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtLjA1cmVtLDApfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXJvdy1kZXRhaWwtd3JhcHBlcntmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctZGV0YWlse3dpZHRoOmF1dG99LmRhdGFncmlkLXJvdyAu'@; put 'ZGF0YWdyaWQtcm93LWRldGFpbCAuZGF0YWdyaWQtY2VsbHtwYWRkaW5nLXRvcDowO2JvcmRlcjowfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNlbGVjdHttaW4td2lkdGg6LjRyZW07YWxpZ24taXRlbXM6Y2VudGVyfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNlbGVjdCAuY2xyLWNoZWNr'@; put 'Ym94LXdyYXBwZXJ7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOi0uM3JlbX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zZWxlY3QsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtc2VsZWN0IGlucHV0e2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNlbGVjdC5jbHItZm9y'@; put 'bS1jb250cm9sLWRpc2FibGVkLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNlbGVjdC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIGlucHV0e2N1cnNvcjpub3QtYWxsb3dlZH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdHttYXJnaW46LS4zNnJl'@; put 'bSAwO2hlaWdodDoxLjIzNnJlbX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdCAuc2lnbnBvc3QtdHJpZ2dlcntoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDoxLjJyZW19LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtcm93LXN0aWNreXt6LWluZGV4'@; put 'OjUwMH0uZGF0YWdyaWQtcm93LXN0aWNreXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO3Bvc2l0aW9uOnN0aWNreTtsZWZ0OjA7ei1pbmRleDo1MDJ9LmRh'@; put 'dGFncmlkLXJvdy1zdGlja3kgLmRhdGFncmlkLWNlbGw6bGFzdC1jaGlsZDphZnRlcntjb250ZW50OiIiO3dpZHRoOi4wNXJlbTtoZWlnaHQ6Y2FsYygxMDAlIC0gLjVyZW0pO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOi4yNXJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dy'@; put 'b3VuZC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtcm93LXNjcm9sbGFibGV7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVtbiBub3dyYXB9LmRhdGFncmlkLXJvdy1zY3JvbGxhYmxlLmlzLXJlcGxhY2Vke2Zs'@; put 'ZXgtZGlyZWN0aW9uOnJvd30uZGF0YWdyaWQtcm93LXNjcm9sbGFibGUuaXMtcmVwbGFjZWQgLmRhdGFncmlkLXNjcm9sbGluZy1jZWxsc3tmbGV4OjAgMCBhdXRvfS5kYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZSAuZGF0YWdyaWQtY29sdW1uOmxhc3QtY2hpbGQgLmRhdGFncmlkLWNvbHVtbi1z'@; put 'ZXBhcmF0b3J7ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctZmxleHtmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3JhcH0uZGF0YWdyaWQtcm93LWZsZXggLmRhdGFncmlkLXJvdy1kZXRhaWx7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwfS5k'@; put 'YXRhZ3JpZC1yb3ctZmxleCAuZGF0YWdyaWQtcm93LWRldGFpbCAuZGF0YWdyaWQtY2VsbHtwYWRkaW5nLXRvcDowfS5kYXRhZ3JpZC1zY3JvbGxpbmctY2VsbHMsLmRhdGFncmlkLXNjcm9sbGluZy1kZXRhaWxze2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2ZsZXgtZmxvdzpyb3cgbm93'@; put 'cmFwfS5kYXRhZ3JpZC1hY3Rpb24tYmFye21hcmdpbi10b3A6MS4ycmVtfS5kYXRhZ3JpZC1hY3Rpb24tYmFyfi5kYXRhZ3JpZC1zcGlubmVye2hlaWdodDpjYWxjKDEwMCUgLSAxLjJyZW0pO3RvcDoxLjJyZW19LmRhdGFncmlkLWhlYWRlcntwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRl'@; put 'eDo1MDE7d2lkdGg6YXV0b30uZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW57Ym9yZGVyLWJvdHRvbTpub25lfS5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvd3tiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xv'@; put 'ciwgI2ZhZmFmYSk7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tY29sb3I6I2NjYzti'@; put 'b3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtcm93LXN0aWNreSwuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3c6aG92ZXIsLmRhdGFncmlkLWhlYWRlciAu'@; put 'ZGF0YWdyaWQtcm93OmhvdmVyIC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10aGVhZC1iZ2NvbG9yLCAjZmFmYWZhKX0uZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZXtmbGV4LWRp'@; put 'cmVjdGlvbjpyb3d9LmRhdGFncmlkLXRhYmxlLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDoxMDAlfS5kYXRhZ3JpZC10YWJsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAxIGF1dG87YWxpZ24tY29udGVudDpmbGV4LXN0'@; put 'YXJ0fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtYm9keXt3aWR0aDphdXRvfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1ue3RleHQtYWxpZ246bGVmdDttaW4td2lkdGg6NC44cmVtO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO3ZlcnRpY2FsLWFsaWduOnRvcDtib3JkZXI6'@; put 'MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbjpmb2N1c3tvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDotLjFyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gY2xyLWRnLWZpbHRlciwuZGF0YWdyaWQt'@; put 'dGFibGUgLmRhdGFncmlkLWNvbHVtbiBjbHItZGctc3RyaW5nLWZpbHRlciwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiBjbHItZGctbnVtZXJpYy1maWx0ZXJ7ZGlzcGxheTpmbGV4O29yZGVyOjk5O21hcmdpbi1sZWZ0OmF1dG87YWxpZ24taXRlbXM6Y2VudGVyfS5kYXRhZ3Jp'@; put 'ZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItaW5wdXQtc3BhY2Vye3dpZHRoOi42cmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1udW1lcmljLWZpbHRlci1pbnB1dHt3aWR0aDozLjlyZW19'@; put 'LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGV7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRl'@; put 'cjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTttYXJnaW4tbGVmdDouM3JlbTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1y'@; put 'ZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW59YnV0dG9uLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGV7Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGUg'@; put 'Y2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGUgY2xyLWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1u'@; put 'IC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlOmhvdmVyIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlOmhvdmVyIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcy'@; put 'YTMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlci1vcGVuIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlci1v'@; put 'cGVuIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlcmVkIGNkcy1pY29uLC5kYXRhZ3JpZC10'@; put 'YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlcmVkIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5k'@; put 'YXRhZ3JpZC1maWx0ZXJ7dG9wOjEwMCU7cmlnaHQ6MDttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRpbmc6LjlyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0'@; put 'aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVy'@; put 'ZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1i'@; put 'b3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXJ7dG9wOjEwMCU7cmlnaHQ6MDttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdy'@; put 'aWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRpbmc6LjlyZW07Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBv'@; put 'cG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItc3R5bGU6c29saWQ7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0'@; put 'MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFn'@; put 'cmlkLWZpbHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIgLmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3Jp'@; put 'ZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbi5kYXRhZ3JpZC1maXhlZC13aWR0aHtmbGV4OjAgMCBhdXRvfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1u'@; put 'IC5kYXRhZ3JpZC1jb2x1bW4tZmxleHtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNl'@; put 'Om5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO3RleHQtYWxpZ246'@; put 'bGVmdDtmbGV4OjEgMSBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtkaXNwbGF5OmZsZXh9YnV0dG9uLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi10aXRsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRh'@; put 'dGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxlIC5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9uLmJ0bntoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLmNsci1j'@; put 'aGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOi0uNDhyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gYnV0dG9uLmRhdGFncmlkLWNvbHVtbi10aXRsZTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5k'@; put 'YXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGJ1dHRvbi5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLnNvcnQtaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKTttYXJnaW4tbGVmdDphdXRvO2hlaWdodDouN3JlbTt3aWR0aDou'@; put 'N3JlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3J7cG9zaXRpb246cmVsYXRpdmU7bGVmdDouNnJlbTtmbGV4OjAgMCBhdXRvO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFs'@; put 'LWJvcmRlcndpZHRoLCAuMDVyZW0pO29yZGVyOjEwMDttYXJnaW4tbGVmdDphdXRvO2hlaWdodDoxMDAlfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OmNh'@; put 'bGMoMTAwJSArIC42cmVtIC0gLjA1cmVtKTt3aWR0aDouMDVyZW07dG9wOi0uMjVyZW07bGVmdDowO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29s'@; put 'dW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6'@; put 'MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOi42NXJlbTtyaWdodDotLjNyZW07dG9wOi0uM3JlbTtjdXJzb3I6Y29sLXJlc2l6ZTtoZWlnaHQ6Y2FsYygxMDAlICsgLjZyZW0gLSAuMDVyZW0pO3otaW5kZXg6'@; put 'NTAxfWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxle2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJh'@; put 'dG9yIC5kYXRhZ3JpZC1jb2x1bW4tcmVzaXplLXRyYWNrZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNnJlbTtkaXNwbGF5Om5vbmU7d2lkdGg6LjA1cmVtO2hlaWdodDowO2JvcmRlci1yaWdodC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiM3OWM2ZTY7Ym9yZGVyLXJpZ2h0'@; put 'LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tMzAwLCAjNzljNmU2KTtib3JkZXItcmlnaHQtd2lkdGg6LjA1cmVtO2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7Y3Vyc29yOmNvbC1yZXNp'@; put 'emV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3IgLmRhdGFncmlkLWNvbHVtbi1yZXNpemUtdHJhY2tlci5vbi1hcnJvdy1rZXktcmVzaXple3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLW91dH0uZGF0YWdyaWQtdGFibGUg'@; put 'LmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciAuZXhjZWVkZWQtbWF4e2JvcmRlci1yaWdodDouMDVyZW0gZG90dGVkIHJnYmEoMjE5LDMzLDAsLjMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5z'@; put 'aWducG9zdHttYXJnaW46LS4zNnJlbSAwO2hlaWdodDoxLjIzNnJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciAuc2lnbnBvc3QgLnNpZ25wb3N0LXRyaWdnZXJ7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6MS4ycmVtfS5k'@; put 'YXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXNlbGVjdCwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbi5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXJvdy1hY3Rpb25ze21heC13'@; put 'aWR0aDoxLjlyZW07bWluLXdpZHRoOjEuOXJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGx7ZmxleDoxIDEgYXV0bzt0ZXh0LWFsaWduOmxlZnQ7bWluLXdpZHRoOjQuOHJlbTtib3JkZXI6MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtd2lk'@; put 'dGh7ZmxleDowIDAgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtY29sdW1ue2ZsZXg6MCAwIDEuOXJlbTttYXgtd2lkdGg6MS45cmVtO21pbi13aWR0aDoxLjlyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLXJvdy1h'@; put 'Y3Rpb25ze2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0e3BhZGRpbmc6LjFyZW0gLjJyZW0gLjE1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbDpmb2N1c3tvdXRs'@; put 'aW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDotLjFyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1t'@; put 'cy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwfWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9u'@; put 'LXRvZ2dsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmRhdGFncmlkLWFjdGlvbi10b2dnbGUgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlIGNsci1pY29ue2NvbG9yOiM4YzhjOGM7'@; put 'Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IsICM4YzhjOGMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZTphY3RpdmUgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24t'@; put 'dG9nZ2xlOmFjdGl2ZSBjbHItaWNvbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlLCAjNjY2NjY2KX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmNsci10b2dnbGUtd3JhcHBlcnttYXJnaW4tdG9wOi0uNjZyZW07cGFkZGluZy10b3A6'@; put 'LjQycmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVye2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xv'@; put 'cjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFjZWhvbGRlcntiYWNrZ3Jv'@; put 'dW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO2Rpc3BsYXk6bm9uZTt3aWR0aDoxMDAlfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXIuZGF0YWdyaWQtZW1wdHl7Ym9yZGVyLXRvcDowO3BhZGRpbmc6LjZyZW07ZGlzcGxheTpm'@; put 'bGV4O2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtmb250LXNpemU6LjhyZW07Zm9udC1zaXplOnZhcigtLWNsci1kYXRhZ3JpZC1wbGFjZWhvbGRlci1mb250LXNpemUsIC44cmVtKTtjb2xvcjojYjNiM2IzO2Nv'@; put 'bG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wbGFjZWhvbGRlci1jb2xvciwgI2IzYjNiMyl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFjZWhvbGRlciAuZGF0YWdyaWQtcGxhY2Vob2xkZXItaW1hZ2V7aGVpZ2h0OjNyZW07d2lkdGg6M3JlbTttYXJnaW4tYm90dG9tOi42cmVtO2JhY2tn'@; put 'cm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDcy'@; put 'JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVm'@; put 'cyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2VsbGlwc2UlMjBpZCUzRCUyMnBhdGgtMSUyMiUyMGN4JTNEJTIyMzAlMjIlMjBjeSUzRCUyMjYxLjc2NjY2NjclMjIlMjByeCUzRCUyMjE1LjQ1MTI5MDQlMjIlMjByeSUzRCUyMjQuNzMzMzMzMzMlMjIlM0UlM0MlMkZlbGxpcHNl'@; put 'JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDbWFzayUyMGlkJTNEJTIybWFzay0yJTIyJTIwbWFza0NvbnRlbnRVbml0cyUzRCUyMnVzZXJTcGFjZU9uVXNlJTIyJTIwbWFza1VuaXRzJTNEJTIyb2JqZWN0Qm91bmRpbmdCb3glMjIlMjB4JTNEJTIyMCUyMiUyMHklM0QlMjIwJTIy'@; put 'JTIwd2lkdGglM0QlMjIzMC45MDI1ODA4JTIyJTIwaGVpZ2h0JTNEJTIyOS40NjY2NjY2NyUyMiUyMGZpbGwlM0QlMjJ3aGl0ZSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCUyMiUyM3BhdGgtMSUyMiUzRSUzQyUy'@; put 'RnVzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRm1hc2slM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIyUGFnZS0xJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjElMjIlMjBm'@; put 'aWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwaWQlM0QlMjJBcnRib2FyZCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3VzZSUyMGlkJTNEJTIyT3ZhbC0x'@; put 'MCUyMiUyMHN0cm9rZSUzRCUyMiUyM0MxREZFRiUyMiUyMG1hc2slM0QlMjJ1cmwoJTIzbWFzay0yKSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjIuOCUyMiUyMHN0cm9rZS1saW5lY2FwJTNEJTIyc3F1YXJlJTIyJTIwc3Ryb2tlLWRhc2hhcnJheSUzRCUyMjMlMkM2JTJDMyUyQzUlMjIlMjB4'@; put 'bGluayUzQWhyZWYlM0QlMjIlMjNwYXRoLTElMjIlM0UlM0MlMkZ1c2UlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk0zOC40NjEzNjQ3JTJDMTguMTY0MjQ1NiUyMEwzMC45ODkwMTM3JTJDMzQuOTE0MTg0NiUyMEwzMSUyQzQ3JTIw'@; put 'TDMyLjU5Nzc3ODMlMkM0Ni41MTY3MjM2JTIwTDMyLjU5Nzc3ODMlMkMzNC45MTQxODQ2JTIwTDUxLjA2NzMyMTglMkMxNS43NTYwNDI1JTIwQzUxLjA2NzMyMTglMkMxNS43NTYwNDI1JTIwNDguNjI5NTE2NiUyQzE2LjY1NDI5NjklMjA0NC45NjI4OTA2JTJDMTcuMzM5MjMzNCUyMEM0MS4y'@; put 'OTYyNjQ2JTJDMTguMDI0MTY5OSUyMDM4LjQ2MTM2NDclMkMxOC4xNjQyNDU2JTIwMzguNDYxMzY0NyUyQzE4LjE2NDI0NTYlMjBaJTIyJTIwaWQlM0QlMjJQYXRoLTE5NSUyMiUyMGZpbGwlM0QlMjIlMjNDMURGRUYlMjIlM0UlM0MlMkZwYXRoJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNNC43NDYzOTIyNiUyQzEyLjU2NjE4NTUlMjBMNC42MjA2NTcyNiUyQzEyLjE2MDUzNDglMjBMNS4zNTE1NDE0JTJDMTEuMTYyNTA0NCUyMEw1Ljc3NjIyMzg1JTJDMTEuMTU5OTM5JTIwTDYuMjA5MzYzMDklMkMxMi41NTczNDgxJTIw'@; put 'TDQuNzQ2MzkyMjYlMkMxMi41NjYxODU1JTIwWiUyME02LjIwOTM2MzA5JTJDMTIuNTU3MzQ4MSUyMEw2LjMyNTQyNjMyJTJDMTIuOTMxNzk1NCUyMEwyOC40OTYzODU1JTJDMzQuODc5NjcxOCUyMEwyOC40OTYzODU1JTJDNDcuODA5NjY5MSUyMEwzMi42JTJDNDYuNDgzNjUxMyUyMEwzMi42'@; put 'JTJDMzQuODk5MjM2NSUyMEw1My45NzM0OTQlMkMxMi43MDM1ODEzJTIwTDUzLjk3MzQ5NCUyQzEyLjI2ODgyMDElMjBMNi4yMDkzNjMwOSUyQzEyLjU1NzM0ODElMjBaJTIwTTU1LjM3MzQ5NCUyQzEwLjg2MDMzNzYlMjBMNTUuMzczNDk0JTJDMTMuMjY4MDY2NCUyMEwzNCUyQzM1LjQ2Mzcy'@; put 'MTYlMjBMMzQlMkM0Ny41MDI1NDAxJTIwTDI3LjA5NjM4NTUlMkM0OS43MzMzMzMzJTIwTDI3LjA5NjM4NTUlMkMzNS40NjM3MjE5JTIwTDUuMDkxNzk2ODglMkMxMy42ODA1NDIlMjBMNC4zMTMyNTMwMSUyQzExLjE2ODc3NjQlMjBMNTUuMzczNDk0JTJDMTAuODYwMzM3NiUyMFolMjIlMjBp'@; put 'ZCUzRCUyMlBhdGgtMTQ5JTIyJTIwZmlsbCUzRCUyMiUyMzdGQkRERCUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NlbGxpcHNlJTIwaWQlM0QlMjJPdmFsLTklMjIlMjBmaWxsJTNEJTIyJTIzRkZGRkZGJTIyJTIwY3glM0QlMjIz'@; put 'MCUyMiUyMGN5JTNEJTIyMTEuNzg1NjU0JTIyJTIwcnglM0QlMjIyNiUyMiUyMHJ5JTNEJTIyNi43ODU2NTQwMSUyMiUzRSUzQyUyRmVsbGlwc2UlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk0zMCUyQzE3LjE3MTMwOCUyMEMzNi44'@; put 'NzcyMTc3JTJDMTcuMTcxMzA4JTIwNDMuMzExMjI4MiUyQzE2LjQ2MTA3MDElMjA0OC4wMzEyMzcxJTJDMTUuMjI5MjEwNiUyMEM1MC4yNzc3NjExJTJDMTQuNjQyODk3NyUyMDUyLjA1MDc2MTklMkMxMy45NTc5Njc3JTIwNTMuMjIxNjIzMSUyQzEzLjIzNTQ5NzMlMjBDNTQuMTkzODU2NSUy'@; put 'QzEyLjYzNTU4ODYlMjA1NC42JTJDMTIuMTE3NTg5MSUyMDU0LjYlMkMxMS43ODU2NTQlMjBDNTQuNiUyQzExLjQ1MzcxODklMjA1NC4xOTM4NTY1JTJDMTAuOTM1NzE5NCUyMDUzLjIyMTYyMzElMkMxMC4zMzU4MTA3JTIwQzUyLjA1MDc2MTklMkM5LjYxMzM0MDMyJTIwNTAuMjc3NzYxMSUy'@; put 'QzguOTI4NDEwMzQlMjA0OC4wMzEyMzcxJTJDOC4zNDIwOTc0NiUyMEM0My4zMTEyMjgyJTJDNy4xMTAyMzc5NSUyMDM2Ljg3NzIxNzclMkM2LjQlMjAzMCUyQzYuNCUyMEMyMy4xMjI3ODIzJTJDNi40JTIwMTYuNjg4NzcxOCUyQzcuMTEwMjM3OTUlMjAxMS45Njg3NjI5JTJDOC4zNDIwOTc0'@; put 'NiUyMEM5LjcyMjIzODg2JTJDOC45Mjg0MTAzNCUyMDcuOTQ5MjM4MTQlMkM5LjYxMzM0MDMyJTIwNi43NzgzNzY4OSUyQzEwLjMzNTgxMDclMjBDNS44MDYxNDM1JTJDMTAuOTM1NzE5NCUyMDUuNCUyQzExLjQ1MzcxODklMjA1LjQlMkMxMS43ODU2NTQlMjBDNS40JTJDMTIuMTE3NTg5MSUy'@; put 'MDUuODA2MTQzNSUyQzEyLjYzNTU4ODYlMjA2Ljc3ODM3Njg5JTJDMTMuMjM1NDk3MyUyMEM3Ljk0OTIzODE0JTJDMTMuOTU3OTY3NyUyMDkuNzIyMjM4ODYlMkMxNC42NDI4OTc3JTIwMTEuOTY4NzYyOSUyQzE1LjIyOTIxMDYlMjBDMTYuNjg4NzcxOCUyQzE2LjQ2MTA3MDElMjAyMy4xMjI3'@; put 'ODIzJTJDMTcuMTcxMzA4JTIwMzAlMkMxNy4xNzEzMDglMjBaJTIwTTMwJTJDMTguNTcxMzA4JTIwQzE1LjY0MDU5NjUlMkMxOC41NzEzMDglMjA0JTJDMTUuNTMzMjY3MiUyMDQlMkMxMS43ODU2NTQlMjBDNCUyQzguMDM4MDQwNzglMjAxNS42NDA1OTY1JTJDNSUyMDMwJTJDNSUyMEM0NC4z'@; put 'NTk0MDM1JTJDNSUyMDU2JTJDOC4wMzgwNDA3OCUyMDU2JTJDMTEuNzg1NjU0JTIwQzU2JTJDMTUuNTMzMjY3MiUyMDQ0LjM1OTQwMzUlMkMxOC41NzEzMDglMjAzMCUyQzE4LjU3MTMwOCUyMFolMjIlMjBpZCUzRCUyMk92YWwtOS1Db3B5JTIyJTIwZmlsbCUzRCUyMiUyMzdGQkRERCUyMiUz'@; put 'RSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk0xOC4yNjA4NjQzJTJDNy4xNDU2Mjk4OCUyMEwyMi43MjczNTYlMkMxNi45MDQ3MjQxJTIwQzIyLjcyNzM1NiUyQzE2LjkwNDcyNDElMjAxNS4zMDA2NTkyJTJDMTYu'@; put 'MzkxMTc0MyUyMDEwLjI3NjAwMSUyQzE0Ljc1MTE1OTclMjBDNS4yNTEzNDI3NyUyQzEzLjExMTE0NSUyMDUuMzgwMzEwMDYlMkMxMS44Mjg0MzAyJTIwNS4zODAzMTAwNiUyQzExLjY4ODI5MzUlMjBDNS4zODAzMTAwNiUyQzEwLjQ4MzI4MzElMjA4LjE2NjMzMTUyJTJDOS40MTg3NzcxNiUy'@; put 'MDExLjExNDU2MyUyQzguNTczMjQyMTklMjBDMTQuNTQ5MzE5JTJDNy41ODgxNzQ5MiUyMDE4LjI2MDg2NDMlMkM3LjE0NTYyOTg4JTIwMTguMjYwODY0MyUyQzcuMTQ1NjI5ODglMjBaJTIyJTIwaWQlM0QlMjJQYXRoLTE5NiUyMiUyMGZpbGwlM0QlMjIlMjNDMURGRUYlMjIlM0UlM0MlMkZw'@; put 'YXRoJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElM0MlMkZzdmclM0UiKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4uZGF0YWdyaWQtY29sdW1uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdy'@; put 'aWQtaGlkZGVuLWNvbHVtbi5kYXRhZ3JpZC1jZWxse2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1zY3JvbGxpbmctY2VsbHMgLmRhdGFncmlkLWNlbGw6bm90KC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0KTpub3QoLmRhdGFncmlkLXJvdy1hY3Rpb25z'@; put 'KTpub3QoLmRhdGFncmlkLXNlbGVjdCl7ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWNlbGx7ZGlzcGxheTpibG9jaztwYWRkaW5nLXRvcDouNTVyZW19LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtcm93'@; put 'LWRldGFpbCAuZGF0YWdyaWQtY2VsbC5kYXRhZ3JpZC1oaWRkZW4tY29sdW1ue2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0e3BhZGRpbmctdG9wOi4xcmVtfS5kYXRhZ3JpZC1yb3ctcmVw'@; put 'bGFjZWQgLmRhdGFncmlkLXJvdy1kZXRhaWwuZGF0YWdyaWQtY29udGFpbmVye2JvcmRlci10b3A6LjA1cmVtIHNvbGlkICNjY2N9LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtcm93LWRldGFpbC5kYXRhZ3JpZC1jb250YWluZXIgLmRhdGFncmlkLWNlbGx7Ym9yZGVyLXRvcDpu'@; put 'b25lfS5kYXRhZ3JpZC1mb290ZXJ7ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyBub3dyYXA7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6c3RyZXRjaDtwYWRkaW5nOjAgLjZyZW07bGluZS1oZWlnaHQ6MS42NXJlbTtmb250LXNpemU6'@; put 'LjU1cmVtO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10aGVhZC1iZ2NvbG9yLCAjZmFmYWZhKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10YWJsZS1mb290ZXItYm9yZGVyLXRv'@; put 'cC1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90'@; put 'dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pfS5kYXRhZ3JpZC1m'@; put 'b290ZXIgLnBhZ2luYXRpb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bGluZS1oZWlnaHQ6MS44cmVtfS5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb24tc2l6ZXtkaXNwbGF5OmJsb2NrO2ZsZXg6MSAx'@; put 'IGF1dG87d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXplIC5jbHItc2VsZWN0LXdyYXBwZXI6YWZ0ZXJ7dG9wOi42cmVtfS5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb24tc2l6ZSAuY2xyLXBhZ2Utc2l6ZS1zZWxl'@; put 'Y3R7Zm9udC1zaXplOjEwMCU7bWFyZ2luLWxlZnQ6LjZyZW07aGVpZ2h0OjEuMnJlbTtsaW5lLWhlaWdodDoxLjJyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb24tc2l6ZSsucGFnaW5hdGlvbi1kZXNjcmlwdGlvbnttYXJnaW4tbGVmdDoxLjJy'@; put 'ZW19LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1kZXNjcmlwdGlvbnt3aGl0ZS1zcGFjZTpub3dyYXB9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1saXN0e21hcmdpbi1sZWZ0OjEuMnJlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5kYXRhZ3JpZC1mb290ZXIg'@; put 'LmNvbHVtbi1zd2l0Y2gtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb257bWluLXdpZHRoOi45cmVt'@; put 'O3BhZGRpbmctbGVmdDouM3JlbTtwYWRkaW5nLXJpZ2h0Oi4zcmVtO3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Ym9yZGVyLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7YmFja2dyb3Vu'@; put 'ZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZmlsbC1jb2xvciwgI2ZhZmFmYSk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10ZXh0LWNvbG9yLCAjNjY2NjY2KX0uZGF0YWdy'@; put 'aWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi10b2dnbGUtLWFjdGlvbjpob3Zlcntib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtYm9yZGVyLWhvdmVyLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5k'@; put 'LWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1maWxsLWhvdmVyLWNvbG9yLCB3aGl0ZSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10ZXh0LWhvdmVyLWNvbG9yLCBibGFjayl9LmRh'@; put 'dGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb246YWN0aXZlLC5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmZvY3Vze2JveC1zaGFkb3c6bm9uZTtib3JkZXItY29sb3I6'@; put 'IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtYm9yZGVyLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZmlsbC1hY3Rp'@; put 'dmUtY29sb3IsICNmMmYyZjIpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtdGV4dC1hY3RpdmUtY29sb3IsICM2NjY2NjYpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaHtib3JkZXItcmFkaXVz'@; put 'Oi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9y'@; put 'ZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4Yzhj'@; put 'NDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7cGFkZGluZzouOXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcDpub25lO3dpZHRoOjEyLjVyZW07'@; put 'ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjEwNTB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVpZ2h0OjE1cmVtO292ZXJmbG93LXk6YXV0bzttaW4taGVpZ2h0OjIu'@; put 'NHJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2h7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3Vu'@; put 'ZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1k'@; put 'YXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3ZlcnMtYm94LXNoYWRvdy1jb2xv'@; put 'ciwgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTtwYWRkaW5nOi45cmVtO3dpZHRoOjEyLjVyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjEwNTB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0'@; put 'Y2gtaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOi44cmVtO3BhZGRpbmctYm90dG9tOi42cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIg'@; put 'LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgYnV0dG9ue21pbi13aWR0aDouOXJlbTttYXJnaW46MDtwYWRkaW5nOjB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGJ1dHRvbiBjZHMtaWNvbntjb2xvcjoj'@; put 'YjNiM2IzO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yLCAjYjNiM2IzKX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgYnV0dG9uIGNkcy1pY29uOmhvdmVy'@; put 'e2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zd2l0Y2gtaGVhZGVyLWZvbnQtaG92ZXItY29sb3IsICMwMDcyYTMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWNvbnRlbnR7bWF4LWhl'@; put 'aWdodDoxNXJlbTtvdmVyZmxvdy15OmF1dG87bWluLWhlaWdodDoxLjI1cmVtfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWNvbnRlbnQgbGl7bGluZS1oZWlnaHQ6MS4ycmVtO3BhZGRpbmctbGVmdDouMXJlbX0uZGF0YWdy'@; put 'aWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1mb290ZXIgLmJ0bnttYXJnaW46MDtwYWRkaW5nOjB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtZm9vdGVyIC5hY3Rpb24t'@; put 'cmlnaHR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZGF0YWdyaWQtZm9vdGVyIC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEwMCV9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmRhdGFn'@; put 'cmlkLWZvb3Rlci1zZWxlY3QuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbHtjdXJzb3I6ZGVmYXVsdDttYXJnaW4tcmlnaHQ6LjQ1cmVtfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5kYXRhZ3JpZC1mb290ZXItc2VsZWN0LmNsci1j'@; put 'aGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzhjOGM4YztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCwgIzhjOGM4Yyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQg'@; put 'LmRhdGFncmlkLWZvb3Rlci1zZWxlY3QuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDphZnRlcntib3JkZXItbGVmdC1jb2xvcjojZmZmO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTAsIHdoaXRlKTtib3Jk'@; put 'ZXItYm90dG9tLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wLCB3aGl0ZSl9LmRhdGFncmlkLXNwaW5uZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVy'@; put 'O3dpZHRoOjEwMCU7dG9wOi42cmVtO2hlaWdodDpjYWxjKDEwMCUgLSAuNnJlbSk7YmFja2dyb3VuZC1jb2xvcjojZmZmOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1sb2FkaW5nLWJhY2tncm91bmQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjYpKTt6LWluZGV4OjU5MH0u'@; put 'ZGF0YWdyaWQtc2VsZWN0IC5jbHItY29udHJvbC1sYWJlbHttaW4taGVpZ2h0Oi42cmVtO21hcmdpbi10b3A6LS4yNHJlbTtwYWRkaW5nLWxlZnQ6LjdyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWhlYWRlcnttaW4taGVpZ2h0OjEuMnJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0'@; put 'YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2hlaWdodDpjYWxjKDEwMCUgKyAuMjVyZW0pO3RvcDpjYWxjKC0uMjUqLjZyZW0gKyAuMDVyZW0pfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jZWxsIGNsci1pY29ue21hcmdpbi10b3A6LS4ycmVtO21h'@; put 'cmdpbi1ib3R0b206LS4xNXJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtLjA1cmVtKX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtY2VsbCBjZHMtaWNvbnttYXJnaW4tdG9wOi0uMnJlbTttYXJnaW4tYm90dG9tOi0uMTVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNlbGwg'@; put 'LmJhZGdle21hcmdpbi10b3A6LS4xNXJlbTttYXJnaW4tYm90dG9tOi0uMDVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXR7dGV4dC1hbGlnbjpjZW50ZXJ9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLnNwaW5uZXJ7'@; put 'bWFyZ2luLXRvcDouMTVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8t'@; put 'YXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDoxLjJyZW07d2lkdGg6MS4ycmVtO291dGxpbmUtb2Zmc2V0Oi0uMnJlbX1idXR0b24uZGF0YWdyaWQtY29tcGFjdCAu'@; put 'ZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtaWNvbnttYXJnaW46MH0uZGF0'@; put 'YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC5kYXRhZ3JpZC1jZWxse3BhZGRpbmc6MH0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC5kYXRhZ3JpZC1jb2x1bW57cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVt'@; put 'fS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdCAuc2lnbnBvc3QtdHJpZ2dlciBjZHMtaWNvbjpub3QoW3NoYXBlPWluZm8tY2lyY2xlXSxbc2hhcGU9ZXhjbGFtYXRpb24tdHJpYW5nbGVdLFtzaGFwZT1leGNsYW1hdGlvbi1jaXJjbGVdLFtz'@; put 'aGFwZT1jaGVjay1jaXJjbGVdLFtzaGFwZT1pbmZvXSxbc2hhcGU9ZXJyb3JdKSwuZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciAuc2lnbnBvc3QgLnNpZ25wb3N0LXRyaWdnZXIgY2xyLWljb246bm90KFtzaGFwZT1pbmZvLWNpcmNsZV0sW3NoYXBlPWV4Y2xh'@; put 'bWF0aW9uLXRyaWFuZ2xlXSxbc2hhcGU9ZXhjbGFtYXRpb24tY2lyY2xlXSxbc2hhcGU9Y2hlY2stY2lyY2xlXSxbc2hhcGU9aW5mb10sW3NoYXBlPWVycm9yXSl7aGVpZ2h0OjEuMDVyZW07d2lkdGg6MS4wNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZm9vdGVye3BhZGRpbmc6'@; put 'MCAuNnJlbTtsaW5lLWhlaWdodDoxLjE1cmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb257bGluZS1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2ds'@; put 'ZS0tYWN0aW9ue21hcmdpbjowO291dGxpbmUtb2Zmc2V0Oi0uMnJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZm9vdGVyIC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5kYXRhZ3JpZC1mb290ZXItc2VsZWN0LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2ti'@; put 'b3hdOmNoZWNrZWQrbGFiZWx7dG9wOjB9LmRhdGFncmlkLWZvb3Rlci1kZXNjcmlwdGlvbntmbGV4OjEgMSBhdXRvO2ZsZXgtd3JhcDpub3dyYXA7d2hpdGUtc3BhY2U6bm93cmFwO2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpyaWdodDttYXJnaW46YXV0byAwfS5wYWdpbmF0aW9uLWxpc3R7'@; put 'bGlzdC1zdHlsZTpub25lO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1jdXJyZW50e2JhY2tncm91bmQ6MCAwO2JhY2tncm91bmQtY29sb3I6I2Zm'@; put 'ZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0YXJlYS1iYWNrZ3JvdW5kLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWlucHV0LWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVy'@; put 'LXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtsaW5lLWhl'@; put 'aWdodDoxLjJyZW07Zm9udC1zaXplOi41NXJlbTttaW4td2lkdGg6MS4ycmVtO3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246bm9uZSFpbXBvcnRhbnR9LnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1jdXJyZW50OmZvY3VzLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tY3Vy'@; put 'cmVudC5jbHItZm9jdXN7YmFja2dyb3VuZDowIDA7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzQ5YWVkYTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWZvY3VzLWNvbG9yLCAjNDlhZWRhKTtib3gtc2hhZG93OjAgMCAu'@; put 'MDVyZW0gIzQ5YWVkYTtib3gtc2hhZG93OjAgMCB2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pIHZhcigtLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWlucHV0LWJvcmRlci1mb2N1cy1jb2xvciwgIzQ5YWVkYSl9LnBhZ2luYXRpb24tbGlzdD4qe3BhZGRpbmc6MCAuMTJy'@; put 'ZW19LnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1maXJzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWxhc3QsLnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1wcmV2aW91cywucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLW5leHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0'@; put 'ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW59LnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1maXJzdDpkaXNhYmxlZCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWxhc3Q6ZGlzYWJsZWQsLnBhZ2luYXRpb24tbGlz'@; put 'dCAucGFnaW5hdGlvbi1wcmV2aW91czpkaXNhYmxlZCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLW5leHQ6ZGlzYWJsZWR7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tZGlzYWJsZWQtY29sb3IsICM4YzhjOGMpO29wYWNpdHk6LjU2'@; put 'O29wYWNpdHk6dmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24tYnRuLWRpc2FibGVkLW9wYWNpdHksIC41Nil9LnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1maXJzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZpb3Vze21hcmdpbi1yaWdodDouNnJlbX0ucGFnaW5h'@; put 'dGlvbi1saXN0IC5wYWdpbmF0aW9uLWxhc3QsLnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1uZXh0e21hcmdpbi1sZWZ0Oi42cmVtfS5wYWdpbmF0aW9uLWxpc3QgYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5v'@; put 'bmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24tYnRuLWNvbG9yLCAjNjY2NjY2KTtj'@; put 'dXJzb3I6cG9pbnRlcn1idXR0b24ucGFnaW5hdGlvbi1saXN0IGJ1dHRvbntjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtY2VsbC13aWR0aC16ZXJve2JvcmRlcjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O3dpZHRoOjA7ZmxleDowIDAgYXV0byFpbXBvcnRhbnQ7bWluLXdpZHRo'@; put 'OjAhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kYXRhZ3JpZC1vdXRlci13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0b30uZGF0YWdyaWQtaW5uZXItd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJl'@; put 'Y3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxO292ZXJmbG93OmF1dG87bWluLXdpZHRoOjEycmVtfS5kYXRhZ3JpZC1kZXRhaWwtb3Blbj4uZGF0YWdyaWQtb3V0ZXItd3JhcHBlcj4uZGF0YWdyaWQtaW5uZXItd3JhcHBlciBkaXYuZGF0YWdyaWQtdGFibGV7bWF4LXdpZHRoOjEwMCU7b3ZlcmZs'@; put 'b3c6aGlkZGVufS5kYXRhZ3JpZC1kZXRhaWwtb3Blbj4uZGF0YWdyaWQtb3V0ZXItd3JhcHBlcj4uZGF0YWdyaWQtaW5uZXItd3JhcHBlciBjbHItZGctY2VsbHt3aWR0aDoxMDAlIWltcG9ydGFudH0uZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91dGVyLXdyYXBwZXI+LmRhdGFn'@; put 'cmlkLWlubmVyLXdyYXBwZXIgY2xyLWRnLWNvbHVtbjpmaXJzdC1jaGlsZHt3aWR0aDphdXRvIWltcG9ydGFudH0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXJpZ2h0Om5vbmV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5k'@; put 'YXRhZ3JpZC1pbm5lci13cmFwcGVye3dpZHRoOjM0JX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbnRhaW5lciwuZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLXJvd3tib3JkZXItcmlnaHQ6LjA1cmVtIHNvbGlkICNjY2N9LmRhdGFncmlkLWRl'@; put 'dGFpbC1vcGVuIC5kYXRhZ3JpZC1mb290ZXJ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLnBhZ2luYXRpb257d2lkdGg6MTAwJX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLnBhZ2luYXRpb24tZGVzY3JpcHRpb24tY29tcGFjdHt0ZXh0LWFsaWdu'@; put 'OmxlZnQ7ZmxleDoxfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAuZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLWxpc3R7bWFyZ2luLXJpZ2h0OjB9LmRhdGFncmlkLXJvdy1kZXRhaWwtb3Blbntwb3NpdGlvbjpyZWxhdGl2ZX0uZGF0YWdyaWQtcm93LWRldGFpbC1vcGVuOmJlZm9yZXtjb250'@; put 'ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlcjouNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNjY2M7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3Jk'@; put 'ZXItY29sb3IsICNjY2NjY2MpO3RvcDouNXJlbTtyaWdodDowfS5kYXRhZ3JpZC1yb3ctZGV0YWlsLW9wZW46YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6LjQ1cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1j'@; put 'b2xvcjojZmZmO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3RvcDouNTVyZW07cmlnaHQ6LS4wNXJlbX0uZGF0YWdyaWQtZGV0YWlsLXBhbmV7bWFyZ2luLXRvcDouNnJlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13'@; put 'aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItbGVmdDpub25lO2JvcmRl'@; put 'ci10b3AtcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWdsb2Jh'@; put 'bC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jaztmbGV4LWdyb3c6Mjt3aWR0aDo2NiV9LmRhdGFncmlkLWRldGFpbC1w'@; put 'YW5lLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzphdXRvO2hlaWdodDoxMDAlfS5kYXRhZ3JpZC1kZXRhaWwtYm9keXtmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MCAxLjJyZW19LmRhdGFncmlkLWRldGFpbC1oZWFkZXJ7ZmxleDowIDAgYXV0bztm'@; put 'b250LXNpemU6LjlyZW07bGluZS1oZWlnaHQ6MS42OHJlbTtwYWRkaW5nLWxlZnQ6MS4ycmVtO21hcmdpbi10b3A6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyIC5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyLXRpdGxle2ZsZXg6MSAxIGF1'@; put 'dG87cGFkZGluZy10b3A6LjhyZW19LmRhdGFncmlkLWRldGFpbC1oZWFkZXIgLmRhdGFncmlkLWRldGFpbC1wYW5lLWNsb3Nle2ZsZXg6MSAxIDEuOHJlbTtwYWRkaW5nOjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZGF0YWdyaWQtZGV0YWlsLWhlYWRlciAuZGF0'@; put 'YWdyaWQtZGV0YWlsLXBhbmUtY2xvc2UgLmJ0bi5idG4tbGlua3ttYXJnaW4tdG9wOi44cmVtO21hcmdpbi1ib3R0b206MDtwYWRkaW5nLXJpZ2h0OjB9LmRhdGFncmlkLWRldGFpbC1oZWFkZXIgLmRhdGFncmlkLWRldGFpbC1wYW5lLWNsb3NlIC5idG4uYnRuLWxpbmsgY2RzLWljb257Y29s'@; put 'b3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItbW9kYWwtY2xvc2UtY29sb3IsICM4YzhjOGMpfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXR7cGFkZGluZzowO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQuZGF0YWdyaWQtY2VsbHtwYWRkaW5nOi4zcmVtIC40NXJlbX0u'@; put 'ZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDti'@; put 'b3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6LjFyZW0gLjJyZW0gLjE1cmVtfWJ1dHRvbi5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b257Y3Vyc29yOnBvaW50ZXJ9LmRh'@; put 'dGFncmlkLWRldGFpbC1jYXJldCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbi5pcy1vcGVue2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtaWNvbi1vcGVuLWJnLWNvbG9yLCAjMDA3MmEzKTtib3Jk'@; put 'ZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b24uaXMtb3BlbiAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb257Y29sb3I6'@; put 'I2ZmZjtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1pY29uLWNvbG9yLCB3aGl0ZSl9LmRhdGFncmlkLWRldGFpbC1jYXJldCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtaWNv'@; put 'bi1jb2xvciwgIzhjOGM4Yyk7bWFyZ2luLXRvcDouMXJlbX0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5zcGlubmVye21hcmdpbi10b3A6LjNyZW19LmRhdGFncmlkLWRldGFpbC1jYXJldC5kYXRhZ3JpZC1jb2x1bW57cGFkZGluZzouNTVyZW0gLjZyZW19LmRhdGFncmlkLWRldGFpbC1vdmVy'@; put 'bGF5LmRhdGFncmlkLWRldGFpbC1vcGVuPi5kYXRhZ3JpZC1vdXRlci13cmFwcGVyPi5kYXRhZ3JpZC1pbm5lci13cmFwcGVye2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtZGV0YWlsLW92ZXJsYXkgLmRhdGFncmlkLWRldGFpbC1wYW5le2JvcmRlci1sZWZ0Oi4wNXJlbSBzb2xpZCAjY2NjO2Jv'@; put 'cmRlci1yYWRpdXM6LjE1cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTc2cHgpey5kYXRhZ3JpZC1kZXRhaWwtb3Blbj4uZGF0YWdyaWQtb3V0ZXItd3JhcHBlcj4uZGF0YWdyaWQtaW5uZXItd3JhcHBlcntkaXNwbGF5Om5vbmV9LmRhdGFncmlkLWRldGFpbC1wYW5le2JvcmRl'@; put 'ci1sZWZ0Oi4wNXJlbSBzb2xpZCAjY2NjO2JvcmRlci1yYWRpdXM6LjE1cmVtfX0uY29sdW1uLXN3aXRjaHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO3BhZGRpbmc6LjlyZW07YmFja2dyb3VuZC1jb2xv'@; put 'cjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXIt'@; put 'Y29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJz'@; put 'LWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7d2lkdGg6MTIuNXJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3otaW5kZXg6MTA1MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50'@; put 'OnNwYWNlLWJldHdlZW47Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZTouOHJlbTtwYWRkaW5nLWJvdHRvbTouNnJlbTtsaW5lLWhlaWdodDoxLjJyZW19LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgaDEsLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgaDIsLmNvbHVtbi1zd2l0'@; put 'Y2ggLnN3aXRjaC1oZWFkZXIgaDMsLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgaDQsLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgaDUsLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgaDZ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDEtY29sb3IsICM2NjY2NjYp'@; put 'O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6LjhyZW07bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbjowfS5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGJ1dHRvbnttaW4td2lkdGg6LjlyZW07bWFyZ2luOjA7cGFkZGluZzowfS5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGJ1'@; put 'dHRvbiBjZHMtaWNvbntjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yLCAjYjNiM2IzKX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b24gY2RzLWljb246aG92ZXJ7Y29sb3I6IzAwNzJhMztjb2xv'@; put 'cjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvciwgIzAwNzJhMyl9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1jb250ZW50e21heC1oZWlnaHQ6MTVyZW07b3ZlcmZsb3cteTphdXRvO21pbi1oZWlnaHQ6MS4yNXJlbX0uY29sdW1uLXN3aXRj'@; put 'aCAuc3dpdGNoLWNvbnRlbnQgbGl7bGluZS1oZWlnaHQ6MS4ycmVtO3BhZGRpbmctbGVmdDouMXJlbX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3BhZGRpbmc6MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYWN0aW9uLXJpZ2h0e2Rpc3BsYXk6'@; put 'ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWZpbHRlcnttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdp'@; put 'ZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO3BhZGRpbmc6LjlyZW07Ym94LXNoYWRv'@; put 'dzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFy'@; put 'KC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIg'@; put 'LmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1w'@; put 'b3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYzti'@; put 'b3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ct'@; put 'Y29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZs'@; put 'b3c6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjNyZW07Ym9yZGVyOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjAgbm9uZTtib3JkZXItcmlnaHQtY29sb3I6I2Nj'@; put 'Yztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0'@; put 'OjA7bWFyZ2luLXRvcDotLjI1cmVtO2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRl'@; put 'bXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4x'@; put 'NXJlbTttYXJnaW46MDtwYWRkaW5nOi4wNXJlbSAxLjJyZW0gMDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3t0ZXh0LWRlY29y'@; put 'YXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLXBvcG92ZXItaG92ZXItY29sb3IsICNlOGU4ZTgpfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5k'@; put 'LWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLCAjZThlOGU4KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXItZm9udC1jb2xvciwgYmxhY2spfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFj'@; put 'dGlvbi1pdGVtOmZvY3Vze291dGxpbmU6MH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZCwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXIt'@; put 'c2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uZGF0YWdyaWQtYWN0'@; put 'aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1hY3Rp'@; put 'b24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmZvY3Vze2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjbHItaWNv'@; put 'bnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTFweCwwKX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZXtkaXNwbGF5OmJsb2NrfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZCwuZGF0YWdy'@; put 'aWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtZm9vdGVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1yb3ctbWFzdGVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1yb3ctY2xp'@; put 'Y2thYmxle2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGV7ZGlzcGxheTp0YWJsZTt0YWJsZS1sYXlvdXQ6YXV0b30uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdy'@; put 'aWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRlcntkaXNwbGF5OnRhYmxlLWhlYWRlci1ncm91cH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLWNhbGN1bGF0aW9u'@; put 'LWhlYWRlciAuZGF0YWdyaWQtY29sdW1ue2Rpc3BsYXk6dGFibGUtY2VsbDttaW4td2lkdGg6NC44cmVtfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1jYWxjdWxhdGlvbi10YWJsZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24taGVhZGVyIC5kYXRhZ3Jp'@; put 'ZC1jb2x1bW57Ym9yZGVyLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvciwgI2U4ZThlOCk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHls'@; put 'ZTpzb2xpZDtwYWRkaW5nOi41NXJlbSAuNnJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3A7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDYtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCwgNjAwKTtmb250LXNpemU6'@; put 'LjU1cmVtO2xldHRlci1zcGFjaW5nOi4wM2VtO2xpbmUtaGVpZ2h0Oi42cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLXJvd3tkaXNw'@; put 'bGF5OnRhYmxlLXJvd30uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGw7bWluLXdpZHRoOjQuOHJlbTtmb250LXNpemU6LjY1cmVtO2xp'@; put 'bmUtaGVpZ2h0Oi43cmVtO3BhZGRpbmc6LjU1cmVtIC42cmVtO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciwuZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0'@; put 'YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57ZGlzcGxheTpub25lfS5mYWRle29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdl'@; put 'Om9wYWNpdHl9LmZhZGUuaW57b3BhY2l0eToxfS5mYWRlRG93bntvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3Jt'@; put 'fS5mYWRlRG93bi5pbntvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0ub2Zmc2NyZWVuLWZvY3VzLXJlYm91bmRlcntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7bGVmdDow'@; put 'IWltcG9ydGFudDt0b3A6LWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEpIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowIDAgLWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEp'@; put 'IDAhaW1wb3J0YW50O3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9OnJvb3R7LS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAp'@; put 'Oy0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLW5hdi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWhvdmVyLWNvbG9yKTstLWNsci1uYXYtbGluay1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh'@; put 'bC03MDApOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1uYXYtbGluay1mb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQpOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1mb250LXdlaWdodDp2YXIoLS1jbHItbmF2'@; put 'LWxpbmstZm9udC13ZWlnaHQpfUBtZWRpYSBzY3JlZW57c2VjdGlvblthcmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9fVtkYXRhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9YnV0dG9uLm5hdi1saW5re2JvcmRlci1yYWRpdXM6MDt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO21p'@; put 'bi13aWR0aDowfS50YWJzLW92ZXJmbG93e3Bvc2l0aW9uOnJlbGF0aXZlfS50YWJzLW92ZXJmbG93IC5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MH0udGFiLWNvbnRlbnR7ZGlzcGxheTppbmxpbmV9XzotbXMtZnVsbHNjcmVlbiAudGFiLWNvbnRlbnQsOnJvb3QgLnRhYi1jb250ZW50e2Rpc3Bs'@; put 'YXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9LnRhYnMtdmVydGljYWx7ZGlzcGxheTpmbGV4fS50YWJzLXZlcnRpY2FsPi5uYXZ7aGVpZ2h0OmF1dG87Ym94LXNoYWRvdzpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO21hcmdpbi1yaWdodDoxLjJyZW07'@; put 'b3ZlcmZsb3c6YXV0bztmbGV4LXNocmluazowO3BhZGRpbmc6LjJyZW07d2lkdGg6MTJyZW07bWluLXdpZHRoOjIuNHJlbX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGlua3t0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzowIC42cmVtO2JvcmRlcjowO21hcmdpbi1ib3R0b206LjA1cmVtO2Zs'@; put 'ZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjA7d2lkdGg6MTAwJX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MH0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5hY3RpdmUsLnRhYnMtdmVydGljYWw+Lm5hdiAubmF2'@; put 'LWxpbms6aG92ZXJ7Ym94LXNoYWRvdzppbnNldCAuMTVyZW0gMCAjMDA3MmEzO2JveC1zaGFkb3c6aW5zZXQgLjE1cmVtIDAgMCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5hY3RpdmV7YmFja2dyb3VuZC1jb2xv'@; put 'cjojZDhlM2U5O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3IsICNkOGUzZTkpfS50YWJzLXZlcnRpY2FsPi5uYXYgLm5hdi1saW5rOm5vdCguYWN0aXZlKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1j'@; put 'bHItbmF2LWhvdmVyLWJnLWNvbG9yLCAjZThlOGU4KX06cm9vdHstLWNsci13aXphcmQtbWFpbi1iZ2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXdpemFyZC1zaWRlbmF2LWJnY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXdpemFyZC1tYWlu'@; put 'LXRleHRDb2xvcjp2YXIoLS1jbHItY29sb3Itb24tbmV1dHJhbC0wKTstLWNsci13aXphcmQtc2lkZW5hdi10ZXh0OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItd2l6YXJkLXNpZGVuYXYtdGV4dC0tYWN0aXZlOnZhcigtLWNsci1nbG9iYWwtb24tc2VsZWN0aW9uLWNvbG9y'@; put 'KTstLWNsci13aXphcmQtdGl0bGUtdGV4dDp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItc2l6ZTouMnJlbTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci13'@; put 'aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3ItLWFjdGl2ZTp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy00MDApOy0tY2xyLXdpemFyZC1zdGVwbmF2LWFjdGl2ZS1iZ2NvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci13aXphcmQtaGVhZGVyLWFjdGlvbi1jb2xv'@; put 'cjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uLWNvbG9yLS1ob3ZlcmVkOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNs'@; put 'ci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMpOy0tY2xyLXdpemFyZC1zdGVwLW5hdi1ib3JkZXItY29sb3I6aHNsKDAsIDAlLCA4OSUpOy0tY2xyLXdpemFyZC1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMCwgMCwgMCwg'@; put 'LjIpfS5jbHItd2l6YXJkIC5tb2RhbC1kaWFsb2d7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSAjMDAwMztib3gtc2hhZG93OjAgLjA1cmVtIC4xcmVtIC4xcmVtIHZhcigtLWNsci13'@; put 'aXphcmQtYm94LXNoYWRvdy1jb2xvcik7aGVpZ2h0OjUwJTttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJk'@; put 'LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci13aXphcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3gtc2hhZG93Om5vbmU7cGFkZGluZzowO2ZsZXg6MiAyIGF1dG87'@; put 'd2lkdGg6NjYlO2hlaWdodDppbml0aWFsO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci13aXphcmQgLm1vZGFsLWhlYWRlciwuY2xyLXdpemFyZCAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxle2Zs'@; put 'ZXg6MCAwIGF1dG87d2lkdGg6MTAwJTtwYWRkaW5nOjEuMnJlbSAuOTVyZW0gLjNyZW0gMS4ycmVtfS5jbHItd2l6YXJkIC5tb2RhbC10aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtdGl0bGUtdGV4dCwgYmxhY2spO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpy'@; put 'b3c7d2lkdGg6MTAwJTtsaW5lLWhlaWdodDoxLjM1NnJlbTttYXJnaW4tdG9wOi0uMTU2cmVtfS5jbHItd2l6YXJkIC5tb2RhbC1ib2R5e2ZsZXg6MSAxIGF1dG87Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLW1haW4tdGV4dENvbG9yLCBibGFjayk7d2lkdGg6MTAwJX0uY2xy'@; put 'LXdpemFyZCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjEuMnJlbTtoZWlnaHQ6NC4ycmVtO21pbi1oZWlnaHQ6NC4ycmVtO21heC1oZWlnaHQ6NC4ycmVtO3dpZHRoOjEwMCU7ZmxleDowIDAgNC4ycmVtfS5jbHItd2l6YXJkIC5jbHItd2l6YXJk'@; put 'LWJ0bnttYXJnaW46MDttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkIC5tb2RhbC10aXRsZS10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXg6MCAxIGF1dG87d2lkdGg6MTAwJTtvdXRsaW5lOjB9LmNsci13aXphcmQgLm1vZGFsLXRpdGxlLXdyYXBwZXJ7d2lk'@; put 'dGg6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtaGVhZGVyLWFjdGlvbnMtd3JhcHBlcntmbGV4OjEgMCBhdXRvO3BhZGRpbmctbGVmdDouNnJlbTtwYWRkaW5nLXJpZ2h0Oi4ycmVtfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJy'@; put 'ZW07cGFkZGluZzowO21hcmdpbjowO21pbi13aWR0aDoxLjJyZW07bGluZS1oZWlnaHQ6MS4ycmVtO2ZvbnQtc2l6ZToxLjNyZW07Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpO3RyYW5zaXRpb246Y29sb3IgbGluZWFy'@; put 'IC4yc30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uIGF7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb246aG92ZXIsLmNsci13aXph'@; put 'cmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbjphY3RpdmUsLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbjpmb2N1c3tjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtaGVhZGVyLWFjdGlvbi1jb2xvci0taG92ZXJlZCwgYmxhY2spfS5jbHItd2l6YXJkIC5j'@; put 'bHItd2l6YXJkLWhlYWRlci1hY3Rpb24gY2RzLWljb24sLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbiBjbHItaWNvbntoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7ZmxleDoxIDEgYXV0bzt3aWR0'@; put 'aDozNCU7bWF4LXdpZHRoOjM0JTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO29yZGVyOi0xO292ZXJmbG93OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87cGFkZGluZy1ib3R0b206MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtib3JkZXItcmlnaHQtd2lkdGg6LjA1cmVtO2Jv'@; put 'cmRlci1yaWdodC13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2UzZTNlMztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1zdGVwLW5hdi1ib3JkZXItY29sb3Is'@; put 'ICNlM2UzZTMpO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi1iZ2NvbG9yLCAjZmFmYWZhKTtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1s'@; put 'ZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNsci13aXphcmQgLmNs'@; put 'ci13aXphcmQtc3RlcG5hdntwYWRkaW5nLWxlZnQ6MS4ycmVtO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi43cmVtO2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC1zaWRlbmF2LXRleHQsICMzMzMzMzMpO3dpZHRoOjEwMCU7ZmxleDoxIDEgYXV0b30uY2xyLXdpemFyZCAuY2xy'@; put 'LXdpemFyZC1zdGVwbmF2LWxpc3R7ZGlzcGxheTpibG9jaztib3gtc2hhZG93Om5vbmU7Y291bnRlci1yZXNldDphO3doaXRlLXNwYWNlOm5vd3JhcDtoZWlnaHQ6YXV0bztsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDt3aWR0aDoxMDAlfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0'@; put 'ZXBuYXYtaXRlbXtkaXNwbGF5OmJsb2NrO2JveC1zaGFkb3c6LjJyZW0gMCAjZThlOGU4IGluc2V0O2JveC1zaGFkb3c6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1zaXplKSAwIDAgdmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1jb2xvcikgaW5zZXQ7bWFyZ2luOjAg'@; put 'MCAtLjA1cmVtO3BhZGRpbmc6LjNyZW0gMCAuM3JlbSAuNHJlbTtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi10ZXh0LCAjMzMzMzMzKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIsIDQwMCl9LmNsci13'@; put 'aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLmFjdGl2ZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi10ZXh0LS1hY3RpdmUsIGJsYWNrKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkLCA1MDAp'@; put 'fS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5hY3RpdmUgLmNsci13aXphcmQtc3RlcG5hdi1saW5re2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYmdjb2xvciwgI2Q4ZTNlOSk7Ym9y'@; put 'ZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6'@; put 'dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5jb21wbGV0ZXtib3gtc2hhZG93Oi4ycmVtIDAgIzVlYjcxNSBpbnNldDtib3gtc2hhZG93OnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItc2l6'@; put 'ZSkgMCAwIHZhcigtLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3ItLWFjdGl2ZSkgaW5zZXQ7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBlYXNlLWlufS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5lcnJvcntib3gtc2hhZG93Oi4ycmVtIDAgI2MyMWQwMCBp'@; put 'bnNldDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGVhc2UtaW59LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLm5vLWNsaWNrIGJ1dHRvbntwb2ludGVyLWV2ZW50czpub25lfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGlua3t3aWR0aDoxMDAlO2Rpc3Bs'@; put 'YXk6ZmxleDtjb2xvcjppbmhlcml0O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgLjE1cmVtIDAgLjVyZW07Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246bGVmdDt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdp'@; put 'bjowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluayAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstc3VmZml4e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoxLjJyZW07cGFkZGluZy1yaWdodDouMzVyZW19LmNsci13aXphcmQgLmNsci13'@; put 'aXphcmQtc3RlcG5hdi1saW5rIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1zdWZmaXggLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLWVycm9yLWljb257dHJhbnNmb3JtOm5vbmU7ZmlsbDojYzIxZDAwfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXRpdGxle2NvbG9yOiMwMDA7Y29sb3I6dmFy'@; put 'KC0tY2xyLXdpemFyZC10aXRsZS10ZXh0LCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMS1mb250LXdlaWdodCwgMjAwKTttYXJnaW4tdG9wOjA7cGFkZGluZzoxLjJyZW0gLjZyZW0gMS4ycmVtIDEuMnJlbTtmbGV4OjAgMCBhdXRvO2ZvbnQtc2l6ZTox'@; put 'LjFyZW07bGluZS1oZWlnaHQ6MS4ycmVtfS5jbHItd2l6YXJkIC5tb2RhbC1jb250ZW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4OjEgMSAxMDAlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jbHItd2l6YXJkIC5tb2RhbC1j'@; put 'b250ZW50LXdyYXBwZXIgLm1vZGFsLW5hdntoZWlnaHQ6YXV0b30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1mb290ZXItYnV0dG9uc3t0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmctcmlnaHQ6MS4ycmVtO21hcmdpbjowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWZvb3Rlci1idXR0b25zLXdy'@; put 'YXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6bm93cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1idG4td3JhcHBlcntmbGV4OjAgMSBhdXRvO21pbi13aWR0aDo0LjJyZW07cGFkZGluZy1sZWZ0Oi42cmVt'@; put 'fS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWJ0bi13cmFwcGVyW2FyaWEtaGlkZGVuPXRydWVde2Rpc3BsYXk6bm9uZX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1idG4uYnRuLWxpbmt7cGFkZGluZzowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWNvbnRlbnR7ZGlzcGxheTpibG9ja30uY2xy'@; put 'LXdpemFyZCAuY2xyLXdpemFyZC1wYWdlOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe3BhZGRpbmc6LjlyZW0gMS4ycmVtIDEuMnJlbTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkIC5tb2RhbC1kaWFsb2d7aGVpZ2h0Ojc1dmh9LmNsci13aXphcmQgLm1vZGFsLWJvZHktd3JhcHBlcnttYXgt'@; put 'aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO3dpZHRoOjEwMCV9LmNsci13aXphcmQud2l6YXJkLW1kIC5tb2RhbC1kaWFsb2d7bWluLWhlaWdodDoyMXJlbTttYXgtaGVpZ2h0OjI1LjJyZW19LmNsci13aXphcmQud2l6YXJkLW1kIC5tb2RhbC1jb250ZW50LC5jbHItd2l6'@; put 'YXJkLndpemFyZC1tZCAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7bWF4LWhlaWdodDoyNS4ycmVtfS5jbHItd2l6YXJkLndpemFyZC1tZCAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7bWluLXdpZHRoOjEwLjhyZW07bWF4LXdpZHRoOjEycmVtfS5jbHItd2l6YXJkLndpemFyZC1s'@; put 'ZyAubW9kYWwtZGlhbG9ne21pbi1oZWlnaHQ6MjFyZW07bWF4LWhlaWdodDozNnJlbX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm1vZGFsLWNvbnRlbnQsLmNsci13aXphcmQud2l6YXJkLWxnIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBlcnttYXgtaGVpZ2h0OjM2cmVtfS5jbHItd2l6YXJk'@; put 'LndpemFyZC1sZyAubmF2LXBhbmVsLC5jbHItd2l6YXJkLndpemFyZC1sZyAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7bWluLXdpZHRoOjEycmVtO21heC13aWR0aDoxNC40cmVtfS5jbHItd2l6YXJkLndpemFyZC14bCAubW9kYWwtZGlhbG9ne2hlaWdodDo3NXZoO21heC1oZWlnaHQ6'@; put 'bm9uZX0uY2xyLXdpemFyZC53aXphcmQteGwgLm5hdi1wYW5lbCwuY2xyLXdpemFyZC53aXphcmQteGwgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDoxMnJlbTttYXgtd2lkdGg6MTUuNnJlbX0uY2xyLXdpemFyZCAuc3Bpbm5lcjpub3QoLnNwaW5uZXItaW5saW5lKTpu'@; put 'b3QoLmNsci10cmVlbm9kZS1zcGlubmVyKXtsZWZ0OmNhbGMoNTAlICsgNS43NXJlbSk7cG9zaXRpb246YWJzb2x1dGU7dG9wOjQwJX0uY2xyLXdpemFyZC1wYWdlPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LmNsci13aXphcmQtcGFnZT46Zmlyc3QtY2hpbGQ+OmZpcnN0LWNoaWxke21h'@; put 'cmdpbi10b3A6MH0uY2xyLXdpemFyZC1wYWdlPmZvcm06Zmlyc3QtY2hpbGR7cGFkZGluZy10b3A6MH0uY2xyLXdpemFyZC1wYWdlPmZvcm06Zmlyc3QtY2hpbGQ+LmZvcm0tYmxvY2s6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5jbHItd2l6YXJkLS1pbmxpbmV7ZGlzcGxheTpibG9jazt3'@; put 'aWR0aDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmU+Y2xyLW1vZGFsPi5tb2RhbDpmb2N1c3tvdXRsaW5lLXN0eWxlOm5vbmU7b3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudH0uY2xyLXdpemFyZC0taW5saW5lIGNsci1tb2RhbHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2t9'@; put 'LmNsci13aXphcmQtLWlubGluZSAubW9kYWx7cGFkZGluZzowO3Bvc2l0aW9uOnN0YXRpYztoZWlnaHQ6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwgLmNvbnRlbnQtY29udGFpbmVye2hlaWdodDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFs'@; put 'IC5jb250ZW50LWNvbnRhaW5lciAubmF2LXBhbmVse2hlaWdodDo5OSU7d2lkdGg6OTklfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsIC5tb2RhbC1jb250ZW50e2JveC1zaGFkb3c6bm9uZX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAubW9kYWwtZGlhbG9ne21pbi1oZWlnaHQ6MTAw'@; put 'JTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3otaW5kZXg6YXV0b30uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1ib2R5LXdyYXBwZXJ7aGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtaGVhZGVyIC5jbG9zZSwuY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1oZWFkZXIt'@; put 'LWFjY2Vzc2libGUgLmNsb3Nle2Rpc3BsYXk6bm9uZX0uY2xyLXdpemFyZC0taW5saW5lIC5uYXYubmF2TGlzdHtwYWRkaW5nLXRvcDowfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsLWRpYWxvZyAubW9kYWwtY29udGVudCAubW9kYWwtYm9keSAuY29udGVudC1hcmVhe292ZXJmbG93LXk6'@; put 'YXV0b30uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1iYWNrZHJvcHtoZWlnaHQ6MDt3aWR0aDowO2Rpc3BsYXk6bm9uZX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1jb250ZW50LXdyYXBwZXJ7YWxpZ24taXRlbXM6c3RyZXRjaDtoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0taW5saW5l'@; put 'IC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBlciwuY2xyLXdpemFyZC0taW5saW5lLmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnR7bWluLWhlaWdodDoxMDAlO2hlaWdodDphdXRvO21heC1oZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0taW5saW5lIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBl'@; put 'ciAuY2xyLXdpemFyZC1zdGVwbmF2LC5jbHItd2l6YXJkLS1pbmxpbmUuY2xyLXdpemFyZCAubW9kYWwtY29udGVudCAuY2xyLXdpemFyZC1zdGVwbmF2e2hlaWdodDoxMDAlfS5jbHItd2l6YXJkLS1uby1zaGFkb3cgLm1vZGFsLWNvbnRlbnQtd3JhcHBlciwuY2xyLXdpemFyZC0tbm8tc2hh'@; put 'ZG93IC5tb2RhbC1kaWFsb2d7Ym94LXNoYWRvdzpub25lfS5jbHItd2l6YXJkLS1uby10aXRsZSAuY2xyLXdpemFyZC10aXRsZXtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLW5vLXRpdGxlIC5jbHItd2l6YXJkLXN0ZXBuYXZ7cGFkZGluZy10b3A6MS4ycmVtfUBtZWRpYSBzY3JlZW57LmNs'@; put 'ci13aXphcmQtcGFnZVthcmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9fUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2xyLXdpemFyZCAuY2xyLXdpemFyZC1oZWFkZXItYWN0aW9ue21hcmdpbi10b3A6LS4xNXJlbX19OnJvb3R7LS1jbHItc2lnbnBvc3QtY29udGVudC1i'@; put 'Zy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1zaWducG9zdC1jb250ZW50LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MDApOy0tY2xyLXNpZ25wb3N0LWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLXNp'@; put 'Z25wb3N0LWFjdGlvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTcwMCk7LS1jbHItc2lnbnBvc3QtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItc2lnbnBvc3QtcG9pbnRlci1ib3JkZXI6dmFyKC0tY2xyLXNpZ25wb3N0LXBv'@; put 'aW50ZXItYm9yZGVyKTstLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXI6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlcik7LS1jbHItc2lnbnBvc3QtcG9pbnRlci1wc3VlZG8tYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBz'@; put 'dWVkby1ib3JkZXIpfS5zaWducG9zdHtkaXNwbGF5OmlubGluZS1ibG9ja30uc2lnbnBvc3Q6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb257bWluLXdpZHRoOjEuMnJlbTttYXJnaW46MDtwYWRkaW5nOjA7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1j'@; put 'bHItc2lnbnBvc3QtYWN0aW9uLWNvbG9yLCAjOGM4YzhjKX0uc2lnbnBvc3QgLnNpZ25wb3N0LWFjdGlvbiBjZHMtaWNvbiwuc2lnbnBvc3QgLnNpZ25wb3N0LWFjdGlvbiBjbHItaWNvbntoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbX0uc2lnbnBvc3QgLnNpZ25wb3N0LWFjdGlvbjpob3Zl'@; put 'ciwuc2lnbnBvc3QgLnNpZ25wb3N0LWFjdGlvbi5hY3RpdmV7Y29sb3I6IzAwNjQ4Zjtjb2xvcjp2YXIoLS1jbHItc2lnbnBvc3QtYWN0aW9uLWhvdmVyLWNvbG9yLCAjMDA2NDhmKX0uc2lnbnBvc3QgLnNpZ25wb3N0LWNvbnRlbnQtaGVhZGVyIGJ1dHRvbiBjZHMtaWNvbiwuc2lnbnBvc3Qg'@; put 'LnNpZ25wb3N0LWNvbnRlbnQtaGVhZGVyIGJ1dHRvbiBjbHItaWNvbntoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW19LnNpZ25wb3N0LXRyaWdnZXJ7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zaWducG9zdC1jb250ZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNw'@; put 'YXJlbnQ7bWluLXdpZHRoOjEwLjhyZW07bWF4LXdpZHRoOjE4cmVtO21pbi1oZWlnaHQ6Mi40cmVtO21heC1oZWlnaHQ6MjUuMnJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwNTB9LnNpZ25wb3N0LWNvbnRlbnQ6aG92ZXJ7Y3Vyc29yOmRlZmF1'@; put 'bHR9LnNpZ25wb3N0LWNvbnRlbnQgLnBvcG92ZXItcG9pbnRlcntoZWlnaHQ6MDt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlfS5zaWducG9zdC1jb250ZW50IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IiI7aGVpZ2h0OjA7d2lkdGg6MDtwb3NpdGlvbjphYnNvbHV0ZX0uc2ln'@; put 'bnBvc3QtY29udGVudC50b3AtbGVmdCAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LnRvcC1taWRkbGUgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC50b3AtcmlnaHQgLnBvcG92ZXItcG9pbnRlcntib3JkZXItdG9wOi42cmVtIHNvbGlkICNiM2IzYjM7Ym9y'@; put 'ZGVyLXRvcDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1ib3JkZXIsIC42cmVtIHNvbGlkICNiM2IzYjMpO2JvdHRvbTotLjZyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQudG9wLW1pZGRsZSAucG9wb3Zl'@; put 'ci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC50b3AtcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCAjZmZmO2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1ZWRvLWJvcmRlciwgLjZyZW0gc29saWQgd2hp'@; put 'dGUpO2JvdHRvbTouMXJlbX0uc2lnbnBvc3QtY29udGVudC50b3AtbGVmdCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWxlZnQ6LjZyZW0gc29saWQgdHJhbnNwYXJl'@; put 'bnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3JpZ2h0Oi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWxlZnQ6LjZy'@; put 'ZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3JpZ2h0Oi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC50b3AtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXJ7Ym9y'@; put 'ZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7bGVmdDo1MCV9LnNpZ25wb3N0LWNvbnRlbnQudG9wLW1pZGRsZSAucG9wb3Zlci1w'@; put 'b2ludGVyOmJlZm9yZXtib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtsZWZ0Oi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC50'@; put 'b3AtcmlnaHQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LnRvcC1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0'@; put 'LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC50b3AtcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdo'@; put 'dDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7bGVmdDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5ib3R0b20tbWlkZGxlIC5w'@; put 'b3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCAjYjNiM2IzO2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyLCAuNnJlbSBzb2xpZCAjYjNiM2Iz'@; put 'KTt0b3A6LS41NXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbGVmdCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5ib3R0b20tbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1w'@; put 'b2ludGVyOmJlZm9yZXtib3JkZXItYm90dG9tOi42cmVtIHNvbGlkICNmZmY7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1wc3VlZG8tYm9yZGVyLCAuNnJlbSBzb2xpZCB3aGl0ZSk7dG9wOi4xcmVtfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5zaWdu'@; put 'cG9zdC13cmFwe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92ZXItcG9pbnRlcntib3JkZXItbGVmdDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2li'@; put 'bGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7cmlnaHQ6LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbGVmdCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItbGVmdDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDp2YXIoLS1jbHItc2ln'@; put 'bnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7cmlnaHQ6LjA1cmVtfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1taWRkbGUgLnBvcG92ZXItcG9pbnRlcntib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJp'@; put 'Z2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtyaWdodDo1MCV9LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItcmlnaHQ6LjZyZW0gc29saWQg'@; put 'dHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtyaWdodDotLjY1cmVtfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItdG9w'@; put 'LWxlZnQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBz'@; put 'b2xpZCB0cmFuc3BhcmVudCk7bGVmdDotLjA1cmVtfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWlu'@; put 'dmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtsZWZ0Oi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQubGVm'@; put 'dC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcntib3JkZXItbGVmdDouNnJlbSBzb2xpZCAjYjNiM2IzO2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlciwgLjZyZW0gc29saWQgI2IzYjNiMyk7cmlnaHQ6LS42cmVtfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9w'@; put 'IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1sZWZ0Oi42cmVtIHNvbGlkICNmZmY7Ym9y'@; put 'ZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1ZWRvLWJvcmRlciwgLjZyZW0gc29saWQgd2hpdGUpfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9wIC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQubGVmdC10'@; put 'b3AgLnBvcG92ZXItcG9pbnRlcntib3JkZXItdG9wOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2JvdHRvbTotLjA1cmVtfS5zaWducG9zdC1jb250'@; put 'ZW50LmxlZnQtdG9wIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci10b3A6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi0uNjVyZW07'@; put 'cmlnaHQ6LjFyZW19LnNpZ25wb3N0LWNvbnRlbnQubGVmdC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcntib3JkZXItYm90dG9tOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29s'@; put 'aWQgdHJhbnNwYXJlbnQpO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnNpZ25wb3N0LWNvbnRlbnQubGVmdC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNs'@; put 'ci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LjA1cmVtO2xlZnQ6LS43cmVtfS5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5zaWducG9zdC13cmFwe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LnNpZ25wb3N0'@; put 'LWNvbnRlbnQubGVmdC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcntib3JkZXItYm90dG9tOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDot'@; put 'LjA1cmVtfS5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBz'@; put 'b2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbTtsZWZ0Oi0uN3JlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC10b3AgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5yaWdodC1taWRkbGUgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5yaWdodC1ib3R0b20g'@; put 'LnBvcG92ZXItcG9pbnRlcntib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgI2IzYjNiMztib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyLCAuNnJlbSBzb2xpZCAjYjNiM2IzKTtsZWZ0Oi0uNnJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC10b3AgLnBvcG92'@; put 'ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnJpZ2h0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgI2ZmZjtib3JkZXIt'@; put 'cmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1ZWRvLWJvcmRlciwgLjZyZW0gc29saWQgd2hpdGUpO2xlZnQ6LjFyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uc2lnbnBvc3QtY29udGVu'@; put 'dC5yaWdodC10b3AgLnBvcG92ZXItcG9pbnRlcntib3JkZXItdG9wOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2JvdHRvbTotLjA1cmVtfS5zaWdu'@; put 'cG9zdC1jb250ZW50LnJpZ2h0LXRvcCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItdG9wOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3Rv'@; put 'cDotLjY1cmVtfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xp'@; put 'ZCB0cmFuc3BhcmVudCk7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNs'@; put 'ci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LjA1cmVtfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LWJvdHRvbSAuc2lnbnBvc3Qtd3JhcHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQucmln'@; put 'aHQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LS4wNXJlbX0uc2ln'@; put 'bnBvc3QtY29udGVudC5yaWdodC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5z'@; put 'cGFyZW50KTt0b3A6LjA1cmVtfS5zaWducG9zdC1jb250ZW50LWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O3RvcDowfS5zaWducG9zdC13cmFwe2JvcmRlci1y'@; put 'YWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXNpZ25wb3N0LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVy'@; put 'LWNvbG9yOiNiM2IzYjM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1zaWducG9zdC1jb250ZW50LWJvcmRlci1jb2xvciwgI2IzYjNiMyk7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWNvbnRlbnQtYmctY29sb3IsIHdoaXRlKTt6LWlu'@; put 'ZGV4OjEwNTA7cG9zaXRpb246cmVsYXRpdmV9LnNpZ25wb3N0LWNvbnRlbnQtYm9keXtwYWRkaW5nOjEuMnJlbTttYXgtaGVpZ2h0OjI0cmVtO292ZXJmbG93LXk6YXV0b30uZHJhZy1oYW5kbGV7Y3Vyc29yOmdyYWJ9LmluLWRyYWd7Y3Vyc29yOmdyYWJiaW5nOy13ZWJraXQtdXNlci1zZWxl'@; put 'Y3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5pbi1kcmFnICp7cG9pbnRlci1ldmVudHM6bm9uZX0uaW4tZHJhZyAuZHJhZ2dhYmxlLmJlaW5nLWRyYWdnZWR7b3BhY2l0eTouNn0uZHJhZ2dhYmxlLWdob3N0e3Bvc2l0aW9uOmZpeGVkO2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTpoaWRkZW47'@; put 'ei1pbmRleDoyMTQ3NDgzNjQ3O3BvaW50ZXItZXZlbnRzOm5vbmU7d2lsbC1jaGFuZ2U6bGVmdCx0b3B9LmRyYWdnYWJsZS1naG9zdD4uZHJhZ2dhYmxle21hcmdpbjowO29wYWNpdHk6MX0uZHJhZ2dhYmxlLWdob3N0LmRyb3BwZWR7b3BhY2l0eTowfS5kcm9wcGFibGUuZHJhZ2dhYmxlLW1h'@; put 'dGNoe2JvcmRlcjouMDVyZW0gZGFzaGVkICNjMDkwZDV9LmRyb3BwYWJsZS5kcmFnZ2FibGUtb3Zlcntib3JkZXI6LjA1cmVtIGRhc2hlZCAjNjgwMDk0fTpyb290ey0tY2xyLWFjY29yZGlvbi10ZXh0LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItYWNjb3JkaW9u'@; put 'LXBhbmVsLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItYWNjb3JkaW9uLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci1hY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLWNvbG9y'@; put 'OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1jbHItYWNjb3JkaW9uLWhlYWRlci1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFs'@; put 'LTIwMCk7LS1jbHItYWNjb3JkaW9uLWhlYWRlci1mb250LXNpemU6LjhyZW07LS1jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24tZm9udC1zaXplOi42cmVtOy0tY2xyLWFjY29yZGlvbi10aXRsZS1mb250LXdlaWdodDo1MDA7LS1jbHItYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTouNjVy'@; put 'ZW07LS1jbHItYWNjb3JkaW9uLWVycm9yLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZXJyb3ItY29sb3IpOy0tY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXN1Y2Nlc3MtY29sb3IpOy0tY2xyLWFjY29yZGlvbi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNv'@; put 'bG9yLW5ldXRyYWwtNDAwKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItYWNjb3JkaW9uLWJvcmRlci1sZWZ0LWNvbG9yOiNlOGU4ZTg7LS1jbHItYWNjb3JkaW9uLWJvcmRlci1sZWZ0LXdpZHRoOi4zcmVtOy0tY2xy'@; put 'LWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvci1jb21wbGV0ZTp2YXIoLS1jbHItYWNjb3JkaW9uLWNvbXBsZXRlLWNvbG9yKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItZXJyb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1lcnJvci1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWhl'@; put 'YWRlci1sZWZ0LWluZGljYXRvcjppbnNldCB2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1sZWZ0LXdpZHRoKSAwIDAgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWNvbXBsZXRlLWluZGljYXRvcjppbnNldCB2YXIo'@; put 'LS1jbHItYWNjb3JkaW9uLWJvcmRlci1sZWZ0LXdpZHRoKSAwIDAgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvci1jb21wbGV0ZSk7LS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWVycm9yLWluZGljYXRvcjppbnNldCB2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1s'@; put 'ZWZ0LXdpZHRoKSAwIDAgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvci1lcnJvcil9LmNsci1hY2NvcmRpb257ZGlzcGxheTpibG9jaztjb3VudGVyLXJlc2V0OmFjY29yZGlvbjttYXJnaW4tYm90dG9tOjEuMnJlbX0uY2xyLWFjY29yZGlvbi1wYW5lbHtkaXNwbGF5OmJs'@; put 'b2NrfS5jbHItYWNjb3JkaW9uLWhlYWRlcntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItY29s'@; put 'b3IsICNjY2NjY2MpO2JveC1zaGFkb3c6aW5zZXQgLjNyZW0gMCAjZThlOGU4O2JveC1zaGFkb3c6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1pbmRpY2F0b3IsIGluc2V0IC4zcmVtIDAgMCAjZThlOGU4KTtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHIt'@; put 'YWNjb3JkaW9uLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZmFmYWZhKTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXQ7Ym9yZGVyLWJvdHRvbTowO3dpZHRoOjEwMCU7Zm9udC1zaXplOi44cmVtO2ZvbnQtc2l6ZTp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1mb250LXNpemUs'@; put 'IC44cmVtKTt0ZXh0LWFsaWduOmxlZnR9LmNsci1hY2NvcmRpb24taGVhZGVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1hY2NvcmRpb24taGVhZGVyLWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNlOGU4ZTgpfS5jbHItYWNjb3Jk'@; put 'aW9uLXBhbmVsOmxhc3QtY2hpbGQgLmNsci1hY2NvcmRpb24tY29udGVudCwuY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20t'@; put 'd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItYm90dG9tLWNvbG9yOiNjY2M7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmNsci1hY2NvcmRpb24tbnVtYmVye3BhZGRpbmc6MCAu'@; put 'OXJlbTtkaXNwbGF5Om5vbmV9LmNsci1hY2NvcmRpb24tbnVtYmVyOmJlZm9yZXtjb250ZW50OmNvdW50ZXIoYWNjb3JkaW9uKSAiLiI7Y291bnRlci1pbmNyZW1lbnQ6YWNjb3JkaW9ufS5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b257ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgd3Jh'@; put 'cDtmbGV4OjEgMSAwJTt3aWR0aDoxMDAlO2JvcmRlcjowO3BhZGRpbmc6LjlyZW07YmFja2dyb3VuZDowIDA7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi10ZXh0LWNvbG9yLCAjNjY2NjY2KX1AbWVkaWEgKG1pbi13'@; put 'aWR0aDo1NzZweCl7LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbntmbGV4LWZsb3c6cm93fX0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uOmRpc2FibGVkIC5jbHItYWNjb3JkaW9u'@; put 'LXRpdGxle2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1wYW5lbC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyl9LmNsci1hY2NvcmRpb24tc3RhdHVze3dpZHRoOjEuOHJlbTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNsci1hY2NvcmRp'@; put 'b24tdGl0bGV7ZGlzcGxheTppbmxpbmUtYmxvY2t9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpe2Nsci1zdGVwLXRpdGxlLmNsci1hY2NvcmRpb24tdGl0bGV7bWluLXdpZHRoOjguNjRyZW19fS5jbHItYWNjb3JkaW9uLWhlYWRlci1oYXMtZGVzY3JpcHRpb24gLmNsci1hY2NvcmRpb24tdGl0'@; put 'bGV7bWF4LXdpZHRoOjEzLjJyZW19LmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjMyLjVyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjEuOHJlbX19LmNsci1h'@; put 'Y2NvcmRpb24tY29udGVudHtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJl'@; put 'bSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWJvdHRvbTowO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOi45cmVtO2Rpc3BsYXk6bm9uZX0uY2xyLWFjY29y'@; put 'ZGlvbi1jb250ZW50IC5jbHItZm9ybSwuY2xyLWFjY29yZGlvbi1jb250ZW50Lm5nLXRyaWdnZXJ7cGFkZGluZzowfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6LjlyZW0gMi43cmVtfX0uY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50'@; put 'e3BhZGRpbmc6LjlyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWlubmVyLWNvbnRlbnR7cGFkZGluZzouOXJlbSAyLjdyZW19fS5jbHItYWNjb3JkaW9uLWFuZ2xle3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluLW91dDt0cmFuc2Zvcm06cm90YXRlKDkwKX0u'@; put 'Y2xyLWFjY29yZGlvbi1lcnJvci1pY29uLC5jbHItYWNjb3JkaW9uLWNvbXBsZXRlLWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07ZGlzcGxheTpub25lO3BhZGRpbmc6MDttYXJnaW46MCAuNnJlbX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5jbHItYWNjb3JkaW9uLWNvbnRl'@; put 'bnQtcmVnaW9uIC5jbHItYWNjb3JkaW9uLWNvbnRlbnR7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlcntiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIoLS1jbHItYWNjb3JkaW9uLWFjdGl2ZS1iYWNrZ3JvdW5kLWNv'@; put 'bG9yLCAjZDhlM2U5KX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlciAuY2xyLWFjY29yZGlvbi1hbmdsZXt2aXNpYmlsaXR5OnZpc2libGU7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5jbHItYWNj'@; put 'b3JkaW9uLWNvbXBsZXRlLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6IzVhYTIyMDtjb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWNvbXBsZXRlLWNvbG9yLCAjNWFhMjIwKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1jb21wbGV0ZSAuY2xyLWFjY29yZGlvbi1hbmdsZXt2aXNpYmls'@; put 'aXR5OnZpc2libGV9LmNsci1hY2NvcmRpb24tcGFuZWwtY29tcGxldGUgLmNsci1hY2NvcmRpb24taGVhZGVye2JveC1zaGFkb3c6aW5zZXQgLjNyZW0gMCAjNWFhMjIwO2JveC1zaGFkb3c6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1jb21wbGV0ZS1pbmRpY2F0b3IsIGluc2V0'@; put 'IC4zcmVtIDAgMCAjNWFhMjIwKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1jb21wbGV0ZSAubmctdHJpZ2dlci5jbHItYWNjb3JkaW9uLWNvbnRlbnR7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1wYW5lbC1lcnJvciAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbTouMDVy'@; put 'ZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItZXJyb3IsICNjMjFkMDApO2JveC1zaGFkb3c6aW5zZXQgLjNyZW0gMCAjYzIxZDAwO2JveC1zaGFkb3c6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFk'@; put 'ZXItbGVmdC1lcnJvci1pbmRpY2F0b3IsIGluc2V0IC4zcmVtIDAgMCAjYzIxZDAwKTtiYWNrZ3JvdW5kLWNvbG9yOiNkOGUzZTk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0uY2xyLWFjY29yZGlvbi1wYW5l'@; put 'bC1lcnJvciAuY2xyLWFjY29yZGlvbi1lcnJvci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1lcnJvci1jb2xvciwgI2MyMWQwMCl9LmNsci1hY2NvcmRpb24tcGFuZWwtZXJyb3IgLmNsci1hY2NvcmRpb24tbnVtYmVy'@; put 'LC5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5jbHItYWNjb3JkaW9uLW51bWJlcntwb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtwYWRkaW5nOjA7Ym9yZGVyOjA7aGVpZ2h0OjFweDt3aWR0aDoxcHg7b3ZlcmZs'@; put 'b3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0b3A6MDtsZWZ0OjB9LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24taGVhZGVye2JveC1zaGFkb3c6bm9uZX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFj'@; put 'Y29yZGlvbi1wYW5lbDpmaXJzdC1jaGlsZCAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLXRvcC1yaWdodC1yYWRp'@; put 'dXM6LjE1cmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWNv'@; put 'bnRlbnQsLmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24tcGFuZWw6bGFzdC1jaGlsZCAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1j'@; put 'bHItYWNjb3JkaW9uLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1z'@; put 'dGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi10aXRsZXtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWFjY29yZGlvbi10aXRsZS1mb250LXdlaWdodCwgNTAwKTtmb250LXNpemU6LjY1cmVtO2ZvbnQtc2l6ZTp2YXIoLS1jbHItYWNjb3JkaW9uLXRpdGxlLWZvbnQt'@; put 'c2l6ZSwgLjY1cmVtKX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9ue2ZvbnQtc2l6ZTouNnJlbTtmb250LXNpemU6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uLWZvbnQtc2l6ZSwgLjZyZW0pO3BhZGRp'@; put 'bmc6LjNyZW0gLjZyZW19LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjB9LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24taW5uZXItY29udGVudHtwYWRkaW5nOi4z'@; put 'cmVtIDEuNzVyZW19LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24tc3RhdHVze3dpZHRoOi45NnJlbX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1zdGF0dXMgY2RzLWljb24sLmNsci1hY2Nv'@; put 'cmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24tc3RhdHVzIGNsci1pY29ue2hlaWdodDouN3JlbTt3aWR0aDouN3JlbX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAhaW1w'@; put 'b3J0YW50O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAhaW1wb3J0YW50O2JvcmRlci1ib3R0b206MCFpbXBvcnRhbnR9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItYWNjb3JkaW9uLXBhbmVsLWluYWN0aXZlIC5jbHItYWNjb3JkaW9uLWFuZ2xle3Zpc2liaWxpdHk6aGlkZGVufS5jbHIt'@; put 'c3RlcHBlci1mb3JtcyAuY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlciAuY2xyLWFjY29yZGlvbi1hbmdsZXt2aXNpYmlsaXR5OnZpc2libGV9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItYWNjb3JkaW9uLXN0YXR1c3ttaW4td2lkdGg6My42cmVtfS5jbHIt'@; put 'c3RlcHBlci1mb3JtcyAuY2xyLWFjY29yZGlvbi1udW1iZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1zdGVwLWJ1dHRvbntkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MS4ycmVtfTpyb290ey0tY2xyLXRpbWVsaW5lLWxpbmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAw'@; put 'KTstLWNsci10aW1lbGluZS1zdGVwLWhlYWRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9uLWNvbG9yOnZh'@; put 'cigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdGltZWxpbmUtaW5jb21wbGV0ZS1zdGVwLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItdGltZWxpbmUtY3VycmVudC1zdGVwLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci10aW1l'@; put 'bGluZS1zdWNjZXNzLXN0ZXAtY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNDAwKTstLWNsci10aW1lbGluZS1lcnJvci1zdGVwLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci10aW1lbGluZS1zdGVwLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1wMi1m'@; put 'b250LXdlaWdodCl9LmNsci10aW1lbGluZXtkaXNwbGF5OmZsZXg7cGFkZGluZzouNnJlbX0uY2xyLXRpbWVsaW5lLXN0ZXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDoxMDAlO21pbi13aWR0aDo4Ljc1cmVtO21hcmdpbi1sZWZ0Oi42cmVtfS5jbHItdGltZWxp'@; put 'bmUtc3RlcCBjZHMtaWNvbiwuY2xyLXRpbWVsaW5lLXN0ZXAgY2xyLWljb257aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07bWluLWhlaWdodDoxLjhyZW07bWluLXdpZHRoOjEuOHJlbX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb25bc2hhcGU9Y2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0'@; put 'ZXAgY2xyLWljb25bc2hhcGU9Y2lyY2xlXXtjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1pbmNvbXBsZXRlLXN0ZXAtY29sb3IsICM4YzhjOGMpfS5jbHItdGltZWxpbmUtc3RlcCBjZHMtaWNvbltzaGFwZT1kb3QtY2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAgY2xy'@; put 'LWljb25bc2hhcGU9ZG90LWNpcmNsZV17Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtY3VycmVudC1zdGVwLWNvbG9yLCAjMDA3MmEzKX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb25bc2hhcGU9c3VjY2Vzcy1zdGFuZGFyZF0sLmNsci10aW1lbGluZS1zdGVwIGNs'@; put 'ci1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3RhbmRhcmRde2NvbG9yOiM1ZWI3MTU7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLXN1Y2Nlc3Mtc3RlcC1jb2xvciwgIzVlYjcxNSl9LmNsci10aW1lbGluZS1zdGVwIGNkcy1pY29uW3NoYXBlPWVycm9yLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0'@; put 'ZXAgY2xyLWljb25bc2hhcGU9ZXJyb3Itc3RhbmRhcmRde2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLWVycm9yLXN0ZXAtY29sb3IsICNjMjFkMDApfS5jbHItdGltZWxpbmUtc3RlcDpub3QoOmxhc3Qtb2YtdHlwZSkgLmNsci10aW1lbGluZS1zdGVwLWJvZHk6YmVm'@; put 'b3Jle2NvbnRlbnQ6IiI7YmFja2dyb3VuZDojYjNiM2IzO2JhY2tncm91bmQ6dmFyKC0tY2xyLXRpbWVsaW5lLWxpbmUtY29sb3IsICNiM2IzYjMpO2hlaWdodDouMXJlbTt3aWR0aDpjYWxjKDEwMCUgLSAxcmVtKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDEuN3JlbSwtLjk1cmVtKX0uY2xyLXRp'@; put 'bWVsaW5lLXN0ZXAtaGVhZGVye2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtaGVhZGVyLWNvbG9yLCAjOGM4YzhjKTtmb250LXNpemU6LjY1cmVtO2xpbmUtaGVpZ2h0Oi45cmVtO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tYm90dG9tOi40cmVtfS5jbHIt'@; put 'dGltZWxpbmUtc3RlcC1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci10aW1lbGluZS1zdGVwLWJvZHkgY2RzLWljb24sLmNsci10aW1lbGluZS1zdGVwLWJvZHkgY2xyLWljb257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21pbi13aWR0aDppbml0aWFsO21p'@; put 'bi1oZWlnaHQ6aW5pdGlhbH0uY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uW3NoYXBlPWRvdC1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3Rh'@; put 'bmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uW3NoYXBlPWVycm9yLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29uW3NoYXBlPWRvdC1jaXJjbGVdLC5jbHIt'@; put 'dGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3RhbmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29uW3NoYXBlPWVycm9yLXN0YW5kYXJkXXtjb2xvcjppbmhlcml0fS5jbHItdGltZWxpbmUtc3RlcC10aXRsZXtjb2xvcjojNjY2O2NvbG9yOnZh'@; put 'cigtLWNsci10aW1lbGluZS1zdGVwLXRpdGxlLWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjY1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItdGltZWxpbmUtc3RlcC10aXRsZS1mb250LXdlaWdodCwgNTAwKTtsaW5lLWhlaWdodDouOXJlbTttYXJnaW4tdG9w'@; put 'Oi40cmVtO21hcmdpbi1ib3R0b206LjNyZW19LmNsci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9ue2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtZGVzY3JpcHRpb24tY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouNTVyZW07bGluZS1oZWlnaHQ6LjhyZW19LmNs'@; put 'ci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9uIGJ1dHRvbntkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LjRyZW19LmNsci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9uIGltZ3t3aWR0aDoxMDAlO21hcmdpbi10b3A6LjRyZW19LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWx7'@; put 'ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDoxNnJlbX0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGluZS12ZXJ0aWNhbCAuY2xyLXRpbWVsaW5lLXN0ZXB7ZmxleC1kaXJlY3Rpb246cm93O21hcmdpbi1sZWZ0OjA7cG9zaXRpb246cmVsYXRpdmV9LmNsci10aW1lbGluZS5jbHItdGlt'@; put 'ZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwOm5vdCg6bGFzdC1vZi10eXBlKXttYXJnaW4tYm90dG9tOjEuOHJlbX0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGluZS12ZXJ0aWNhbCAuY2xyLXRpbWVsaW5lLXN0ZXA6bm90KDpsYXN0LW9mLXR5cGUpIC5jbHItdGltZWxpbmUtc3Rl'@; put 'cC1ib2R5OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDouMXJlbTtoZWlnaHQ6Y2FsYygxMDAlICsgLjJyZW0pO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEuNTVyZW0sMS40cmVtKX0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGluZS12ZXJ0aWNhbCAuY2xyLXRpbWVsaW5lLXN0ZXAtaGVh'@; put 'ZGVye3RleHQtYWxpZ246cmlnaHQ7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aWR0aDozcmVtO21pbi13aWR0aDozcmVtO21hcmdpbi1yaWdodDouNnJlbTttYXJnaW4tdG9wOi4zcmVtO21hcmdpbi1ib3R0b206MH0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGlu'@; put 'ZS12ZXJ0aWNhbCAuY2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGV7bWFyZ2luLXRvcDowfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2FsIC5jbHItdGltZWxpbmUtc3RlcC1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjguOXJlbTttYXJn'@; put 'aW4tbGVmdDouNnJlbTttYXJnaW4tdG9wOi4zcmVtfUBrZXlmcmFtZXMgc3BpbnswJXt0cmFuc2Zvcm06cm90YXRlKDApfXRve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdv'@; put 'ZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUZRZ0FCTUFBQUFBbThBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmTkg1NWtkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY2FBQUFPZGp5K2VqbEhV'@; put 'MVZDQUFBSk1BQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJQUFBbFFBQUFBVFFBQUFHQm9QcXpyWTIxaGNBQUFDYUFBQUFKc0FBQURubmRERDdGamRuUWdBQUFNREFBQUFEQUFBQUE4RVk0QmpHWndaMjBBQUF3OEFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVuZ0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFB'@; put 'QVNnQUFBTm5NQUFHZ1V4RklnTjJobFlXUUFBRWowQUFBQU5nQUFBRFlMWVlnVWFHaGxZUUFBU1N3QUFBQWhBQUFBSkFkMkJESm9iWFI0QUFCSlVBQUFBb2dBQUFUdXVQSS9GR3h2WTJFQUFFdllBQUFDY2dBQUFucUphbkJ3YldGNGNBQUFUa3dBQUFBZ0FBQUFJQUtFQWVsdVlXMWxBQUJPYkFB'@; put 'QUFZSUFBQU5XTGRDRTlYQnZjM1FBQUUvd0FBQURvUUFBQmlHWEZqMktjSEpsY0FBQVU1UUFBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlVHQUFBQUFZQUFBQUc5bmhZbUFBQUFBRUFBQUFBMUZHMWFnQUFBQURUd1oyR0FBQUFBTlMrcHZWNDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZW'@; put 'L3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY0JiRmJWRmY3T3VmZSt2LzBMV0VvTENCMERVaGt4VFdXRVNVVkdpV01Gc1ZQRG1FRUhabHVjWTYxUTdCalppREZLSFpxbDZZekREcEUwcUF5TU5zQlFz'@; put 'U0t5cHF2T09VZGtZNlloWUZ3SHlEWW0wN25GQ1BMMnZmTis2RjlvdC9HRmo4TzU5OTE3enpuZjdibUZBTWhpTWhaQzV0WFdMVVlCUEQySVl6aitJMUM0aG04M3JVVHBpbTgyTmFCOFJjT0tCczRHL2Nsb09pTmh4Kyt5R0kwSm1HSWVod3JVdVk1ME5GcGxxMHJVaW9nZnlmRFYvR0tjK1FKS0ww'@; put 'QlFHN2VTQTJhakJaOGlsbkZRSG9QelpLd2NRUkdHOFdSL2o3dmo3WEZ2ZkJSRC9Jay9HSExrdDRONis3aDMvditQeHo4ZGNvWDNoaHdaK2p4L2pQY09NYkk5N292M0piakkzOHUvdjBrdzJCNXhLN09rbU1oTVQyRzJQa2NvcWdpSHF3aVA2VVRBRjRnSU00a01yaUVLTUlzb1pHNW5zMUpyQ01I'@; put 'OStCRm5Qa2dFWnJ5Ri9oY0l3WXVFNENWQ2NaRHcrQVBoY1pRSStETVI0VGdSNFQwaXdta2lndytJRE00UWhhemVwMXd0SnJKU0xNVW9sQklwSVpkS0tYa2NLNXZsMnRPb2tncCtjeVVoZHU3MHhHb25kblppYnljT21FY1VvSllveEFJaWkwVkVFUnJ4ZmE2UVJCSlpKSkZGRXZBVFBNcjViVVFo'@; put 'Zm9aTm5QOEVmczc1MjRraTdDUXkyRVVVNEJkRUJydUpBanhIWlBBOFVZQTlSQ0U2aVVMc0o3TG9JckxvSnJMb0liSjRsUkQ4bWhETFRvUjNpQ0w4aVVqem9wWVh0Yng0eTB1d3ZBVExpN2U4ZU11TGx6RXlodm02WEM0bkp6a0tYTFdLR1pyQ0dsZXh0dE5aMDVuTXpDeG1wQkdyY0RlYThEMnNa'@; put 'aTN2eHpvMDR3Rm00VUZHdjVNUlBjZEt2c2dLSG1UbGpySml4MW1wMHp6SkdidFp4ZHkzTkxsZmVxL2R3OWVraVhFUHA3cjJVWGV0OGI4R1VhdU5ESFlITG95Y1NqRElsNmVIdkJ1bnppdWU5L3BvM0J3M1h6eVMzcnA0Yzd4NTBKRy8yRGVLY3RPRW1DWVVYeU1jYmlVOGJpTUNsaElSRmZFbzV5'@; put 'UnFFRk9EbWhvVUhVU0VIVVJrbFJhcnRGaWx4U290VmxmRk1jTGhCT0Z3a25BNFN3U2NJeUlaS1NOWjExRXlpbHdtWmVTa29tSVZGUmt2NDdtK29oS1hFVVVZU1F3enBZc3BYVTNwTHFmMCtVUyswcjNGRStYRmt6R2x1NXpTK3pYdUxTcHZVV1VzcXZOS1R6V2VxbnN2TWJTdWsyaTlhVlp6RVNi'@; put 'S2RSWm54dlRyVEwrYWl6bFJzZVlpVDdTc2VmSG5LOXBaRmpJeVRhN2g3c2xQcjFwR3VJajF1cFZ4TFdVa2JZeGtJeDVqTkUvZ1NUeUZyWXhvT3lQWndkdll5ZE4yOFpROVBOMHgxdUFrVDNhT0p4akYzY1p3bC9GY2NZTHBXVEhDT2txSnFhT0V1OVRRRXJOcjJJbU9SQlBJZmN4L3Q2eVhGbmxF'@; put 'TmtxN2JKVm5aSmZza1gzU0xhL0xBVGtraCtWZE9TR241RVA1V002cDE2d1c2Mmd0MThrNlZhdDBoczdTdVZxcmRicElsK2p0ZW9mVzZ5cGRvL2ZvT24xSVczV0RidEl0dWswN2RMZDI2bjd0MFRmMExYMWJqMmlmbnRUMzlTUDl4TUZGYnBncmNXUGRCRmZocm5UVDNOVnV0cnZPTFhBM3VzWHVO'@; put 'dmNOZDZlN3l6VzVIN2g3M1FQdXgrNWgxK1kydXlmZDAyNkhlOTd0ZFYzdU5mZW0rNzNyZGUrNFkrNnY3aC91Mys2c1YxL2dSL2hTUDg1UDlGTjhwWi91cS8wY1A4OHY5RGY3Vy94Uy95Mi8zSy8wcS8xYWY1OWY3MXY4STM2amIvZGIvVE4rbDkvajkvbHUvN28vNEEvNXcvNWRmOEtmOGgvNmov'@; put 'MjU0RU0yRklmUm9UeE1EbE5EVlpnUlpvVzVvVGJVaFVWaFNiZzkzQkhxdzZxd0p0d1Qxb1dIUW12WUVEYUZMV0ZiNkFpN1EyZllIM3JDRytHdDhIWTRFdnJDeWZCKytDaDhFaUdLb21HOEhVMjZrOXhzUE4rNHhuaER3bWcwYmpQUDJuNS9qbTh3cmpTKzFuaGx3bHBtOXZYR2M0d3JsRDlUNVFy'@; put 'anE0eXJFMGE5Y2J1K1RHNHdmNlh4YlBQM0dwOHh6MFRqeDQwbkdVZkdDMXc5K1NuanBzRlpmNVVYWTQzNUwyRjgyWGlMY1dNL3k3STBkclB2TW43VmVNT2xuR2JBN0V2NWV1TUs3ZnBmck04T3lGWFhZSXk1eG84YjEvY3pzOWRsMmZ2dm5PYXphMUNlbE1kTmVXY2VZT2ZWdE5uOFY1Zy8zNTV2'@; put 'T1d3eGUxbGU1dE1vQnRnMm1xb2kzNTltdFRxMWJVNnFtYlE2YWRTcFBuTjJ6cC9NYVRPNzNhMDVyOTZjeGc2YTNaUFl1WnFtR1Z1YlUzSzR5SitlSWMzYkFiUFhXbzBPSmZOZHFzQWJiSzllbTJNM0l0WHRBSCtsMldkeU5kcDVRZFg1L3ZRR1hadW5tYlFpK2ZaV3M3K2UrbTIrM1FzdE03L3BJ'@; put 'YWUwU1huMkhPUElQRVBaZnpQN2JvdXUxdXczemM1ZnVTYitKYmtxM245UnBmSjNyTTdkN3E3L2d3Zk9WSHpXM3FYZ3Uyc3FzNUs4VGoyN2RpVzdZUExDanZCNXZzUXltSUZxOXJDa2M0OWczLzRpZTNyU3VVZmFHN1hFT3Zjby9sNjFrSDJvamlqRFRleHpvOW5wYnVIdlBrdUljdXZsbjJIWFc4'@; put 'YXUxY2kzMjBSN3ZjMWtSMi9uZWx2WStiNWl2ZStyN0g0dnMwTytnZ1A0RGw5MHAvRkRlMVZ1eEQ4bDRERjI0dkhvc0o3YXlmT0tYR2EvbTBXUWVMMnA4RDdjU1Y3UGJsZUVzZHlyZ2hGTnc5VTg5WFU4NVkxWXpORVhUTHUvTXo1c2JIZUdHdTNuZzhiTGpiY1o5eG1mTlM3Q2w3alBjbnhYTWxJ'@; put 'Z2haS1ZJaGt1SXk0OTBYOEF0bEtYV0FBQUFBRUFBQUFLQUJ3QUhnQUJSRVpNVkFBSUFBUUFBQUFBLy84QUFBQUFBQUI0Mm1OZ1pySmduTURBeXNEQzFNVVV3Y0RBNEEyaEdlTVlSQmpOZ0h5Z0ZCeXdNeUNCVU85d1B3WUhCZ1hWUDh6Uy80MFpHSmlQTXFvcU1EQk1Cc2t4c1RLdEIxSUtERXdB'@; put 'eGxjS05nQUFBSGphdFpOWlVJNVJITVovLzdkOUVTb1U5ZmIyYWROR29oUkY5cVhJdnBTczJiS3YyUnJyRUVORlVzaWVKS01aRTFOVHRodnV1RFZqakw3UGxWdnVEQjNIVjB3enpMaHladDV6M25QT25PZWNlWjdmSDNDaDZ3dEJkSTlVNnBrNDU2NVNyTWNsak1PTmdaUndpenJ1MGtnVHpiVFFK'@; put 'aDRTSUlNa1RBWkxuQ1JKcXFSTHBreVZITW1UUWltU0VpUFZlR1c4ZDRreWo1dXQ1aFB6aStWdUJWckJWcWhsczZLc1lWYTZkZC9tSC9sTktYMkh4WTBlMm85cDQ1bjRTbjh4eFNheGtpZ3BraVlaa2lYWmtpc0Zza0UyYSsyWHhsdXRmY2hzTWR2Tno1WmhCVmhCVm9oVGU2aVY5a3RiZlZRdjFI'@; put 'UDFWTFdyVnZWSU5hdUhxa2sxcWdaVnIrclVOVldyYWxTMXFsS1Zxa0tWcVRPcVZKM29mTk9aMVpuMC9aT2ozRkhneUhmRTJBZmEvZXcrZGkrN205M28rTnJ4dWVQd2g1QjN5VjFlL2FmbWJuZzdrK0NQV3dTais4LzRoMGJYU1JkY2RYYnVlT0NKRjk3NDRFc3YvT2hOSC9yaVR3Q0I5S00vQXdn'@; put 'aVdHYzhTS2NlaWttWVRpUWNHNE9KSUpJb29vbGhDTEhFRVU4Q2lReGxHRWtNSjVrUmpDU0ZWRWFSUmpxakdVTUdtWXpWekdReG5nbE1aQktUbWNKVXBqR2RHV1NUdzB4bWtjdHM1akNYZWN4bkFRdFp4R0pOV2g3NUxLV0FaU3huaFg3L0RuYXltMklPY1p6VGxGTkdCZWM1UnlWVlZIT1JHaTV4'@; put 'aGN2VWNwWHIzTlFVL1dUME5nMmFwWHVhcHA5dEZhdTFIZEZzNEd5M04rdFpvL3RkblBqdFZ1RmZITHhBUFp0WjJXTmxMWnNrUm85YjJNNHg3RGdrWFBNWktWRzZBaUs0bzNjZW9HbVdCRjBQOGQxbmlweGh4TEtOdld4bEgzczR3RUZkUy9zNXdsRzlkWmhTVG5HUzE3cWFlckZPdk1SYmZOZ29m'@; put 'cHAvengrUXphcm9lTnBqWU1BQ0hJSFFrc0dTYVQwREE5TnVKbFlHaHY4aHpOTC9qWmwyLy8vQ2RJQko4UCtYLzM0Z1BnRElQUTBpZU5xdFZtbDMwMFlVbGJ4bEl4dFphRkZMeDB5Y3B0SElwQlNDQVFOQml1MUN1amhiSzBGcHBUaEo5d1c2MFgxZjhLOTVjdHB6NkRkK1d1OGIyU2FCaEo3MjFC'@; put 'LzA3c3k3TTIrYmVXTXlsQ0JqM2E4RVFpemROWWFXbHlpM2VzMm5VeGJOQk9HMmFLNzdsQ3BFZi9VYXZVYWpJVGVzZko2TWdBeFBMcllNMC9CQzF5RlRrUWkzSFVvcHNTbm9YcDB5MDlkYU0yYS9WMmxVS0ZmeDg1UXVCQ3ZYL2J6TVcwMWZVTDJPcVlYQUVsUmlWQW9DRVNmc2FKTm1NTlVlQ1pw'@; put 'ai9Sd3o3OVY5QVcrYWthRCt1aDlpUnJDdW45RThvL25RQ29NZ3NNaTBnMENTVWZlM2dzQ2h0QkxZSjFPSTRGbldxL3VVbFM3bHBJczRBakpEaHpKS3dpK3hHV2MzWE1FYTl0aEtQT0F2U0pVR3BXZnpVSHFpS1pvd0VNOWxDd2h5MlEvclZyUVMrRExJQjRJV1ZuM29MQTZ0YmQraHJLSWV6MjRa'@; put 'cVNSVE9ReWxLNUZ4NlVhVTJ0Z21zd0VEbEoxMXFFY0pkblhBYTl6TkdCdUNkNkNGTUdCS3VLaGQ3Vld0bmdIRHE3aXorVzd1KzlUZVd2UW51NWcyWFBBUWR5Z3FUUmx4WFhTK0RJdHpTc0tDa3gwdlVSMFpMU1ltQmc1WVRsTllaVmozUTl1OTZKRFNBYlVHK3RNb3RpWHp3V3plb1VFVnAxSVYy'@; put 'b3dXSFJwU0lBcEJoN3lydkJ4QXVnRU44bWdGbzBHTUhCckdOaU02SlFJWmFNQXVEWG1oYUlhQ2hwQTBoMGJVMHBvZlp6WVhneWthM0pLM0hScFZTOHYrMG1veWFlVXhQNmJuRDZ2WUdQYlcvWGg0R0FXTVhCcTIrY3ppSkx2eElmNE00a1BtSkNxUkx0VDltSk9IYU4wbTZzdG1aL01TeXpyWVN2'@; put 'UzhCRmVCWndKRVVvUC9OY3p1TGRVQkJZd05ZMHdpV3g0WkYxdW1hZXBhalNrak5sS1ZOWitHcFNzcU5JREQxdy9Eb1N0Q21QOXpkTlEwaGd6WGJZYng0WnhOZDJ6ck9OSTBqdGpHYkljbVZHeXluRVNlV1I1UmNacmxZeXJPc0h4Y3hWbVdSMVdjWTJtcHVJZmxFeXJ1WmZta2l2dFlQcU5rSisr'@; put 'VUM1RmhLWXBrM3VBTDR0RHNMdVZrVjNrelVkcTdsTk5kNWExRWVVd1pOR2ovaC9pZVFuekg0SmRBZkN6emlJL2xjY1RIVWlJK2xsT0lqMlVCOGJHY1Jud3NuMFo4TEdjUUgwdWxSRmtmVTBmQjdHZ29QSGJCMDZYRTFWTjhWb3VLSEpzYzNNSVR1QUExY1VBVlpWU1MzQkVmeWJBNCtybHVhYzFK'@; put 'T2pFYlo4MkppbzlHeGdFK3V6c3pENnRQS25GYSsvc2NlR2JsWVNPNG5mc2E1M2xqOGcrRGY0c1haU2srYVU1d2NLZVFBSGk4djhPNEZWSEpvZE9xZUtUczBQdy9VWEdDRzZDZlFVMk15WUlvaWhyZmZPVHlTck5aa3pXMENoOVBCRG9yMnNHOGFVNk1JNlVsdEtoSkdnRXRnNjVaMERUcTgreXRa'@; put 'bEVLVVc1aXY3TjdLYUtZN0VVWnpJQXBLT1Ntc2JEczc2UkVXbGc3cWVuMDBjRGxSdHFMbml3MVcxWnhoYjBINzJQSXpTeDVOMUpldUNrcDdVV2JVS2U4eUFJT3VaRTl1Q2FDVzJqdnNvcGlTbGlvSWo0SWJRWDc3V05FSmkwemd5NkJJbVJ4c3JJUDdZb2RPYUtDZGdMZmV0SXE3OXRDN2M5MThp'@; put 'QXdtNTF1NTBHV2thTHpYUlgxYW4xVjF0Z29WNi9jVFI4SDA4NndzZVlYUlJsUExudmZuaFRzVjZjRXVRSkdWM2EvN2tueDlqdlc3VXBKUHRzWGRubmlkVW9WOGwrQUIwUHVsUGNpR2tXUnMxaWxFYyt2VzNneVJUa294a1Z6SEJmMDBoN3RpbFhmbzEzWWQrMmpWbHhXVkxJZlpkQlZkTlp1d2pj'@; put 'K1h3anFRQ29LV3FRaVZuZzZaRDZiblpyd3NaUzRMRVhjczJUWFJmUWRQQ0VkNHI4NHhMWC82OXh5Rk55aXloSmRhTmNKeVFkdEh5dm9yU1c3azRjcVJtZnR2R3hub2gxSk4rZ2FncDVJTGpqK1h1QXVqeFhwRk83ejh3Zk1YOEYyNXZnWW5RYStxdWdNeEJMbnJZSUVpeXJlMGs2bVhsQjhoR2tK'@; put 'OEVYVlFyTUNlQW5BWlBDeWFwbDZwZzZnWjVhWlV3RllZUTZEVmVZd1dHTU9nM1cxZzY1M0dlZ1ZJRk9qVjlXT21jejVRTWxjd0R5VDBUWG1hWFNkZVJxOXhqeU5ickJORCtCMXRzbmdEYmJKSUdTYkRDTG1WQUUybU1PZ3dSd0dtOHhoc0tYOWNvRzJ0VitNM3RSK01YcEwrOFhvYmUwWG8zZTBY'@; put 'NHplMVg0eGVrLzd4ZWg5NVBoY3Q0QWY2QkZkQlB3d2daY0FQK0trNjlFQ1JqZnhqTFk1dHhMSW5JODF4Mnh6UHNIaTg5MWRQOVVqdmVLekJQS0t6eFBJOU52WXAwMzRJb0ZNK0RLQlRQZ0szSEozdjYvMVNOTy9TU0RUdjAwZzA3L0R5amJoK3dReTRZY0VNdUZIY0M5MDkvdEpqelQ5NXdReS9a'@; put 'Y0VNdjFYckd3VGZrc2dFMzVQSUJQdXFKMitUS3J6WjlXMXFYZUwwbFAxMjUxMzJQa2JaVE82TEFBQUFBRUFBZi8vQUE5NDJyVjlDWGhiVjVub09lZEt1cElsMmI1YUxjdWJyTlhXYW11enZNalhTN3d2Y2J6RlNSeG5jNXkwS1YzU2xpNGhwTFFORkFxVUFXWllocjR1MEtGTVM1SzJkS0h0RkNo'@; put 'UTJxSExERytBZWNNSDVRMHpMRy9ZQmpvd2JYMDkvem4zWGxtMjdLYndmUysxSlB2cXJQLzU5K1VVbGFIRnRTVCtGT2RHSEtwQWR1UkNYdFNFMGlpSHV0QVFjb21PM254bmV6YVRiQTc2NnF1ckhFS2xRVU5RV1NLczlRZ2UzcDYwZSszSnREZWRUUFBzazRkZjFhZjBHZjJrMzhDVHRQcTcwb1ox'@; put 'eUNiVCtGUFNzN2pyUDN0NjcrdnR2ZSsrM2thUHA3ZTM5MGl2NTliN2pqUjZqbmp1dSs4K3o1RWp0dzRNM0hkMG9PRkY3bWQ5SHI4SGZtNDYxamd3NERzSXZ3MTRPbnNiajl6UTVvenZ2UExLQjYrOGNtZDh4UlAzd0E5Q0JFMnYvUjZkSStmWTN2eGlJOElZTFNLRXlrY1JJZHlTQm5PY2t4dlRh'@; put 'RFFWbW5LL1VLbmxuV0Zya3ZNNkF1bFVKdG5xc050MDN2M0Q1b1RHN2JaWnE2dXQ1SnhrZWRGdHM3amRGcHNib2JVMU5JZ2Z4V1BrazVXTnFBeWhTZzdlSDBGMDNpQzhYUWZ6dWxFOXVtSDB2SGZuYmpGVW9TTkl5eEZNRUY0MllvT2hmTFM4MHN6eHZIN1JWRWIwZW1GVWd3bXBJR051TVVBZnND'@; put 'K1JuajlhMms5cHVDRFdJVlJmVjFzRDA3aXJYVlZPV0xCVktQemphOE9ZVC9KZTNwdGxyMnlTdlpJOGUvSDBTL3liekkzbUcyTnRzYnZnZGEzNTJzdzd6ZGNwZjkxZ2Z2aXV6RjM0YTk5TlB3Yi8wdDlOUHc3LzB0OEZTTWJXSGlVUjhnZmtRU0VVUjUxaUx1YjMxZFZXdTV3MnM2bk1ZT2FJRGlP'@; put 'T2pDRENrWnNSUnZnV0NtYTBCSEJ4b3JHbXBxWjRVOXhoRnl4YTNoSDJsV1BBa1hRTUI3TU9weERENlZRZVp3RlpIRTRlbmdsMTJJNGN6blE1ZkdUU3FVQlFJSkhVa1IxaXo4bG9hT2Z4b3dkYTkrYkVLeFpEdnBubzVlK1E5b3M3T2thd2VXWjA2dWE1Tk5mZHkyY2pyVHNyY1dYMXJxSGtiRnJY'@; put 'MldXY2JmVkdlT2xOOSs1SlhKTzIvWjRmYnBXeUk2bVdEb2YwSnF4TmkrSnIvMFgrbFh3Sk1NVUtweFpISGVpRjBmTlZjSEpoSTlhV1lhelQ0aFdrUTNxRFRuOE1hVFJvaVdDS1NXWTRFbTdKeEJPT3ErREczS1BuZzlBbC9wWmRFRFJsL2ZnbEUrWjVKdzlubnR5aUJ5SFFsblpEVy9kYVdCQURp'@; put 'VVJEZzgyR1VLSWowWjVKTmNRYllxR0FyZDVXVjExbHRRaVZzSm55UURsdkQxdGs0Q1piQWFhMmN1ekZTZXkxVUtCNkczVjJteU9KTm4yZngrdmYvZlZBTURRWWlRN0NleFIvcUZOcTdyd20xeDZKdExXSDhkUkFLRGdZbGIrS3RkR0h1UWhlakU3RVczWkdvNU9KbG9rbzNyVTZoVDg0a000TURt'@; put 'VFRBOUx4NkVSTFlpSVduWXkzVEVZVEE1bjBJUDBLOXNlaHByWGZreFBrTVlCOUdQaFBYdXlJUi8xMU5XNlgwNERMT0ZMUGtJcGlQbDRDTW5hTWFvdXdLaEpwYUlpa0k2bUdjRU56dUZFSG1LVU42cnlOZEUvWjRvM0JOODVNMXFuam5ZanV6Q252MHBJTkJPSFBPcHdraWFWOUp6dVA1Tzd4MUVY'@; put 'R0U1SGg4TnhjNXNwSVV5YVJ2RnI2ZEZkdC9VUmZyamswZmpwL3RubW9tVCt3M0xLUXUya2dPdWlMaklUREk4MzVVWi80VHZGQTFmSGhhOGp4OWxoTlY2Z2hHMjd1V2owM2Q4dFkxLzZRNkFWaUFINkJQa0UraVV3b09ucmVBWWhpcEN5Sm5TOEdKS2hFOU05NStCTXZVdElaWDNqRTdpT3dIV3VC'@; put 'STFWZzcyeDVsU0E0eS9rZy9vOUQzc29xcCtBOWxJSFcrYlU1SENOUHdkaTZoMDFhbkFnek5wWjFBdm5ZblB6bkw3bmtzSGR1NFp4MzE0OXZ1T0hIdS8yN3YzN1ZEeTRFWUNLZzV6bGNwL2JUUVQ4bkk3YXNETERZdVlVNTcySG9mTXVGSDF6MWRlakh1dE4rSGZnbTRIMWZRck5JRkx2OEdKUEpI'@; put 'ZDJ4UnBkTnEwZDRGOVlpYm9URFdJT1JGcU1WSGRacXlSSkZhTzBZN0c0V3pRd1BaZEpOd2RvYU4wK3hFMWJhalhuZ0JuQnFRZmdqbStuR3dZRDhXN0xWNmFqSHdTSUlaTExBSnRoenV3MDZWV0NIMDhGK1o3M2hQeWRqM1Y4MkczVGVpb1p5cmNiTWE4cWMwWEFrWmkvVDhHYXR4dExzMHhuTXdL'@; put 'ejB1c3BLTG1UVGFzMDhWeWFFZFJHbkkrd280M2l6VHVNSU9ZdzZ2ZG1BYnpMcmExcWFhOHhWUEdmU2E0eThXUkFzRmlOdjFPaE5YRmxqVFhOTGpkNXMxanRhNDZaeXJzSEltWFJhRTE4bUVHZ2ltSGlUVm1maXloc3MrbmlyUTIrbUI0djYwSEZTVGxMSWlBS0FFeG9PYTJZQmw0RXpZQTR0QTdu'@; put 'VG85ZmdjY2JESzNWOGRSaDdxZlJNVXltYUpPWGZ6RC8zWFA2Yk9QNU4rZ3NkYjNMdE5Ib003VVRseUNrQzZhSkJGYVdBTUh3V2lqMkE4NDNySW8yZkRKcXRJTkdjTmZXaDQ5RUVGVzMrdWxxeGxZN1ZobjZMTzNBTXFMRkt0RE5rbkYxSFJxR1NvYUxIN21uRG5MU0tZMTFzUDhNZ1l6OEg4eHVw'@; put 'dGtDZkFKZkQySW5wUVJ0Um1ZK0RBeTZXcUVjVWFXb3FTRks4OXB1MVIvSEh5VTloWGtFc3A0T0M1TUJYeXhOU1ZvVW5CNlM3QjhoUDMzd1pNZm5hQWJ6aUdIa1MyRnM5aW9oTmdGaHN4ekpYd0NEWTJRSXFnWjRxNnl2cnFoeU1EK3BnSVpyTmZJNmtVekhzYmFSRUFnd0E0M2NQRHI1N2F1cjA0'@; put 'T0RwcWZ6QlRPWmdQbjhva3ptVU4rMjlaMlhsN3IxNzcxNVp1V2R2NTlqWnVkbjNqbzZlblpzN084WmdVQTN2YjRDODF5RzNXQVZIeVFHOFJtU3VqUUUveHdRckF4MGZ6Q1lGNzVPMzFENllFc21CMlphVHExT0k5VytCVGVsaFB5N1VMQWFOWmJBZHdBWkNSaGc0R2J1akNzc2lZakpHY1BxQ0dy'@; put 'NHFuUFZUL2tWWHp3Y0xISzRDdy9tMHdLbjBOdTFvdW1KbkxIcjljT2VoM05qTXQvQkpxYW50WC9LWHBwcDZBNWY3eGY3VVlxN3YxTkNEOGhtR0FKNWFtRCtNdXNWT2R6WE01UU9DaGhYQU1rQ1NRd3NDY29uak5FdUFvTEFZa0pkTGxLYWRqSnpEcU5ubjkvajlQTytDazZhY0k5bktXR3NZcDUy'@; put 'dEdYbU5PajZZVWJtd0F2eFhUa1dpdnFQNXhGajQwTnlPZ2JGOXpjT1J6RUpUZVBIOStTUHRBMjJkVTUyWDlKcDYycHVUV1g5UFU3NjNFL2QzK3ZPK2RDcDBLakdYN3RvbGxNLzJaZmVtR0Q2RTRDMEY4QzlEWmhRVm0wMFlVSEJFcDRWOVlBVDY2bEVBSVJPbEZab3hvOUZvTmdJTkM1Wkt1bDYv'@; put 'SjRpVEF0Vll2V2tCNDl1a3p4dnd6UGlsbDRyU3p4OXN3eTlJdVk0SGY0WnZrTTdLNTlRR2NITENQQTFVNzNFQWV4TXFPYUpCR0U0SzNwR0dBWWtzeXBKN0k1QWFVSDJqWUEyVUFFaytQMHBWZkthQWxqOStWNlM1ZWFVOVBoR0pUQ1FtUjFzTitJUFNRM3pmWE9keVovNUVyNms5R1k4bHcyUFJ5'@; put 'RkFvVzRXWHVsNXZTUi9JOTZ5ME0xaDB3aHI5Y0padTBPTjd4VzRnSW80RXFvaFdRMFowd0dJMFdrNnpnZ3BpbEljRnF0eWlwZ2FobXFhYWtLOFJPbGQ3L1FFOUtNUklXUkxsSUJUTG5IeUFra3N0aGo4czZnYm9rU2J4ZTQ1MmRaM29QWDFtOE5UWU8yWjlvM081L1pucXkzcjlFNUhZUkx6L3NM'@; put 'bHkzeEIrTUhPd08zK3M2OGs3Vi83bXdLN1c0YW5iNTJ6cGJ1bE1mTHc1UHR3MDNyVjdXWVp6QjJ6RXdPaXBYcXdCR1lJWk5WRStoSm51RHRvdmFEY2NMQTk3MGg0N01JaW5wSGZqbDZUdkRKT3J1bHBXMzBQMWlSVEFvWWJCSVF6ajlZczlOaDBCYmp2Q0Z3RkI0UnA2QUFLR3MySmNJeEtoY0lo'@; put 'MFJOcFRyVFhobW1ZWkdoRURaV09VZTJRMnFSUUtmQXF3a0ZtSlUvazdXRTRZWi9uSjVUMnp2WjNEM2NjNk9vOTFqN1gzenZaYzBkYzBFbytNUkVCN2lJK0VXbllsVXRPUnlLNTBZbGVMcVdVKzI3WGY3cGpMcHFaanNabFVidGJtMk4rWm5XL0J0M3R5Zmw5SFkyT0hMNUJySU5JRlh6NFE2dlpp'@; put 'N08wT0JmSSt0Tlg1MTFYQzBSdjBZRDhRMkxvV0NGbExWb0FVT05ndnh6bEdpNlNGZXY2TkRYVEhBYStmbmI5RFBuNVEwU25DZG1INmh3SUJDNFhGT3ZQODNLYVQ3Mkw0c0lPZGZBdkRBdkxreHBPWHNVRTZRMDlleGdGNUQweW00TmRCZnNDeVJzOUhRVk55VXFiT1ZpckkxcHRXdHQ3Y1ZGREJk'@; put 'OENrVm9xZkw0Z1drd2toazlQa3NGUXlRYVJUTkExVkVKRXRoSkpOK2NSMzFsaXBkTExXU0hPcW5BSjdqOGxhL0RyWWV4V3dEaDRKeUlTL2dBd1hNSDRjZitGOE1reHhONHNXc1VTbUFYZDFEK3NJNkZQV3ROOXV4dllzZms2NkFaL0ZYWmxYODA4L25XZjc3RU5mSmVYNFh3QmJlZFFvMWxNY3Ay'@; put 'WWUyRTRjbVZWWVB1R29MbEJKT1Q3bEV2Uy9QdnozVXBxOS9pVi9aeDdtSEVPTHhLck95Y0djMlNoT2ErM2FNWHdXNW54T3luMGFabncxOHlxZDA3MzJlL3d0d0k4cTVFTlpNZVV3R1NtTHhKVE5jekR4NlNLWlF4bStGbXMwVHMyWXkrWHl1YnorS2w5UVJ4ZWl5czExcnM1TXVXSTUvMHo3M3FT'@; put 'dnB5azc3dy92Tzl1K21FcnViZTh4cStDOVdodnM4RFoyK3BMeDVwTXRNOG5JenB6eFBVV21OVjFuWk8xMmJnZTVGM1dqQ1ZqTCtUckFBYUhSUS9SY2c0Vm85SjBkWUdkeUkrNzFad2IxMllMY09HUTBFQTNJQVIzbHlyb3kwQzM1dzBoaGRzQkU5SHB1Q1RZbzZLbk5WZy90bzJCY2E3QmhIcjNk'@; put 'VGszVU5nU1k2UTJjZnVXaW5iV0FxUzFVSm5CSXU3SjlMNTdYelNPZGpsOWkzU2NYd01hckVrV0V4QWx4ZkdnQWdKRVBCSm9DdmtEQXhMdEx0Sm5HUUxDSU9sc2R6cXlUWnlaYzYwYm1sR3hsZG9HWHF0SE16cU9QSFVuY2YvN1lWVis1NHNpRFI1TlRzV2ludm02MkpUN2MzSE84dlhYUVltNHZp'@; put 'NFRxNjlvRGk1L1p1L3pGbGYxMzdjc2Z6bHJhMzlFZjNHTWc3ZW40emtSUDZ1cWpEeDY1L0N0WEh2enMwc1JsR2JCREU1R0paUC9KdnBpM1Y5djZUKzZHUUhpaGQvWmo4eXZubHZkK1pySEc0L1kzdkxZOGFpdEw1ek1McWJZQmR1WU44UFoxNFBzOFNQS3dHREpnQU13SVlDQ2dwQWFrT0JXcllG'@; put 'UlFqVXF2MTVmcHkyUVZ1UXFrT005TTJxQVJrNngwN2VBQWp0T2Z3L2ZmZjg4OTVOenExS3Y0akhRR2dMNGZ4ajhHNDFlQ3B0V0l1c1IyNFB3d2d3Nm9EdVNqZGhuT1ZuRVE4VmpXeE9sYzdtcUw0S212Ym5RM1Zqa0VsOFVWYWRBelJYaWpBUEJncXVxQXptTzNLcjhJKzNGcmRpNlJqTGYzcFJZ'@; put 'N3BLL2hVTWZvZU5kUGZ0TTNOOWYzRzNJdU10R1NIbmRXTDdabDVoTDQxcjUwcXUvWDBxUGpIUjFqMG04cEg2SHk2d05BcDdVb0pvYXJYY1l5aWlRaktydDJiSEJod1lOYVZCUHdCNmdMUzdOKy9uenBtZVBzdlFjTzNMczRjS1lsRXJva04zN0x4TVF0NDdsTFFwR1dNd01tT0xtbGV3OW1XeU5O'@; put 'aWFuM1RrNitieXJSSEcxcGczT2hjSHVFNlZkMlpyVVV3TVFNY2dWTUpxUE5ZclNiN0lFRzZ0dXhxbGdaeGxrRi9TaEVmbjdKZll1TDkxM3k4NS9QM3pZK2Z0djgvZVRjN3I4K2ZQZ3p1enVHMzdOcjEwM0RxODh4K1Q4Sjg4VmdQaU9LaXhHVksxSmRTck1Jb3F1OFdCdG1Wb1pSOW5pQmFtV2wv'@; put 'RkdRWDNmZzY2VDM0VHNsRC80UnVlcTF2Q1Ixa1hOZGhmSFRNTDRCTllrQmRYeks2ZGlvcW9vQlh4aVFnWTdNZUI0YjJjdkdQU1hkMG9QL25RMzZWWFZNZWw1M3dubDVVRnBzQmEwTGNmV0VhTFJNaWRkcUVFTXVaZ003cUNiS1dDeG9HNkFSQnJ5eW1lY1JOaEx2cHNOTGUvRUhzTFhsanVGRmRv'@; put 'RERkOEFCWHQ4bEgyRDZSTk4zOEdIcHYrTTUrUWpiRWxIMUNQMmU4Nml3NTZzWVRJT2lUMUZYbDBGSHB2dWxmcWtLdEJtV21PNFdYa2w0SjFlSjBxSW80bnNwT2VGdXVtM3BKZHdxajRzK3pIeXNWdXJBV0xkNVpITVJESjVKVWFTOXFKMEVzdWNaYUN0UUxHTG1CY05vcGl5VEpRNlF5Y25BTHFC'@; put 'S20xOEQzWXMwWlZnR0piTUhUelpFblh0Ynd2MEJFYXd6VTNjeUhzMUZkcmJpZjVSaWZaZDB3aHo3WUtncjJENGJ4RnFEWGt1WWRNUE04OGJKbmxPcnhTTEwwNlNBa3dhZ0NSQmQrMFI4NmF6MEtrNU5TNys3R3RZcm5RU2Qrem5wL1hqazFFc01mdjB3TG9GeHRWUW5aWXVtb3pFNmtFR25SVnBC'@; put 'b0l2MkE1NGtCVUtrWHJFTFVHNzFRNncvcGFGZnJLK0wzMkpkTmtGZGx3R01FcTlnZ0JQWUwySWQxb21pOUxyME9sMldEZi9INmhRSnNzOS9Wc2Y5UzRiTGRhS2JKNlJrVkV0aFZBekw4c3BqUGc0akR0RmplWUlNd25pRHEwOVEva3R4K0hmL1AreHFtZW5zdi92QWdidjNqOTg4TVhIenVJeTRD'@; put 'c3M1ZU8vUzBtY1BkazY5YjNMeXZWTXkzako1UUhIMklPek5CSHdITEdOWUJaQXFoNm1iWk4yUkQxc3NOOXNzWm51NVhRZzA2S2dUMzFQZ1BYYXZ5cGFGU1Z3OWNHVlB6NVVELzBmRUZmTW5Uc3kvVE02MUhjNkRISk53eDh6ZzRLejBmREVNYkdCVjVzUU05YXRyaVE3TVBPYUI1RENIaDlmTnAy'@; put 'TGZ0dDF1RDltRHNVQ1FNbUdRNUU1K2d6U0dGWkZzTU92Y0pJcko3eUpOWTAwNzQxZDJMYW93V3B1NHB1bTZCbDhCU0xqcTJrUnZZa2NnWEFDVzlQMzhjdUpZOEZDcUdGeEY4Q3FIOVlEOEpOUUJwNXFteTZDS0tPeE5JWGVmenlNSVZzcDdZTFZXYnhCc1lJRkJUcHRVWUVZT1hqYi82TWpEejRr'@; put 'TWRGTHNaUVkyZk12VjVSTDhZK0Q3TklXYzdFZDhqVVRJVXloSTVaWERUdTFpUXJWS0ZWVFV5VnNrcjRJbzRJdjRLS2dvalNzcVNpQ29RbXVkK3ptY0NrNzk4djNwMEpGYjB4Tk5lNDllZlZuSFNzOHRKMExoNDluWVVOT2VvMWRlbVRzeFlzeWxXbzk0TzcyWnJpcjM5SGgyVC9KUWEzUGMyK1Zy'@; put 'YVhPNWQrL01MaVJsUGhnRkdBMHpIVVAyMVJUTVN0bTVvcWphMkF0MnBSZW94ZjByVXZNckVjektMb1dPNXdBL3prSi9PL0tJZFlwREgrUGlyZG1SemVhenFhS1k4cTJOTEF6WG5oa1Vzd3p6eE1FelU2YVJXMmJ3SjZXVnZ1TWRIY2Y3Nkc4enQ0eklhMVgxSVIyZFM4dnNZT0NhQ3NPVXVRNm8v'@; put 'RExYb1h3TStBYjV1dlFQQS9DRFRkaEV1UzY4N2lJSFlDdy9tRWthUmtzd1ZobmwrOEFvYUZpSmlYRzJlZUFVbGtvdGxhSkpONlkvbk5lSXZmNmhiend6K0pXdkQvMjg1eHZmN0lIaG5pTDk3RFZGZHE5K1hsNG55RkJ5TStOdHdCc05PaGdhanA2eW4vSlJMT09heFdJUktGeGhsVENrZ1kyT1Qy'@; put 'SGQ1STkrTklsNTZiOG5mL1RxSko2WDdzYys2UWQ0SHUrR2Q1ODh0Z1hHUGdOajYxR3RXSzNqZ0FnTERFN3hCRmdFNmdsUXhvUWpDMG0vMlBuVG4wOUkvNjhQVitHL2tqNFBveDJYZmtiSGFvZXhSRlh1VTNpdXU5a0t2b1dDbTgwaXNCVm5aUmNEQ1A5Mi9JQzBGNzhoVGVNTHE2OG5TWGRYY3ZX'@; put 'cnN1eWZXdnNnYmlNL2ZKdFdYQklRQzE1VFB6MTM3cWZraDYyclZ1cDdYWHRqN1ZGODF6WStVQTUwVyswQVhwSmRvQmkxd0h4VmhmbGsvOXd5b21vWjlkZlMrZEQ2ZkU1ZyttbDR0Y0IwUCswaHYyeDk4eHdkUG9NL2d4K1VjZXVDN2tpLzZBRHV6cnlXTURQMTRGNnRlRmd1NkZDL05RbnNnZmQr'@; put 'TDNOWCswMDM1MEFLL2VyVlYrbWFwYlYza2wxcjUyRzZCamJHTmo1ak9nUVBBQ1JrWnZXQm5UbjVYTHVKaU40a0wwTmZKK3RyZ3A1RDhNM1ZGaERIOHF4WnA3ZTc5OFlzK1VyRmgyWCsxZ3I2d3krSWdLb0I0M2FLNDFXWTB6aEJJQWlneGRmVmFqbWRWa1BOV0syT2FHVnZKZFhpWFl4V1J2Vllw'@; put 'MU9WTGplWW1PNkEyKytwaDVGY1ByL1hhZ0E0SVljZEFGWHM2bUsyRWJWd0xhQitxZUV3ZlBwRTNuMGl1K3VTekdMN3hOTEF6b0ZwMS80RjF5WGxzNU05dXljNmlIRE5RZWtidXlLdGUwZGFKeUwxOXI1OXNXU3I1TTYzVFZmM3RDYTc1SmcweVlOOHNZQUYwaTEyVnBRUnJZYnh5Y3JSZ2x2R3hY'@; put 'U29EYzQ1cXhVaGE2UFY0M1pCVDJEYm01eHpRWXBUUXJGUFRoVzlIenVSejUvbzdUNWNuOC9YSCs0T3pTUVNNOG4wZEN3Mm5TYkM0STFqWTZjR085UEw1RW5wMzlLZFVrM2JvYzdPZzIzVTdYMHdDMmVVQUhqL0J1Qzl0UTNpMnQ0R2NieWxEZkxiR3dZSGJ4aEtMdnJEN3FGZ2RsODZ2UzhiR25h'@; put 'SC9mdFRwcUYzall5Y0dncjVtbXNiY2djN09nN2xQSFhOL2laNjlobUFtMmNkYmdMSDRFYWh4UURIVkd2bHJIbm16MU1VN0dLNFdRSmVnY0lOS3dlOXZrcUJiSmJMSGdxdVhoVjROekdJSlJuMHlKT3JPNWJUbllPbnhzWnVCT0JoOStwVldRcXhUTnZCenM1RDFGNEN1QkVmd00ySjZxaVZDVHlH'@; put 'STB3UUUwNURsZ3ZMYzQzcWl2U0hxaXFFcXVxcWF0M1Y4SmNEREFPNlVwOE1zV0l0d2xOSGtrVEhlMkN4K01nQmQ3RGgrdmIrNndaM1hMTmo3QjBkMHFnMk01dWF1TFFNWDZzN01CbjExVFo3bzBPbnhrWnZIQnkrZFNFOTM0TC9kbm5uMUJGR2Z5QVA4QlI1QmFUVkhyR3NBdXUwbFJqcHlJanNE'@; put 'S2xCT3AxMkNUU0dLbVp3bzBYUWZtVEhHOHRRcUFabFZ3ZDB0bEw2NVlKWTV2V3kyQlhQdTJWZTU2WDhoem1HbVBOWVozL3MxbHZ6TXpQOXFWU2t3UkdvOWhGdFRrcmhiK2NHMjBjOE1VZXpSNmIxK05vTXFRRVkwbGo4a0xpanJwTG90SW9mRTJnWkdKNk9yRkQ2aG9sQnNhRnVHVmZCbVdsRll3'@; put 'MGdPK1Z3T0l4UUgvRDdmWlRHc2FDUUM3TXFNaHU4bVlBRjZSSXNxT20rY3FqelNsOU53MkxMd3JHNkZiSDMwcTZ1UzN0N2p0YmRPcHRJekthVDAvSDRkSkpvcGRiZWxmWkFmV3V0Wisvay9uUzdlTVhBaml2RVhQcVF0Q2N4bHdYN3ZtVXVEZEJuY0IrSHR6OEFIdHRwcE1JaSs3WVpEb095eHJ4'@; put 'dHJpSnpERlFKd2VhMVVmdVQwanFBVW5IWENBcTU0OHNXV3ZJVCtlaElPSiszTDdZUm9YVlBUbm9FOS9kTUIzcUQwbU5BMTYrRk13eWUzZkQrY2ZJVmtORVYxQUlzdUZPcjZNRUpvNm8xWFZGdU5qRjNxWGFUdTVRSEViTGI1YkpZNEFXOGhGemlzZ2pWMVlMRnRiejZCb3kvOXRUYUJQb0lHOTlO'@; put 'Y2I0QytISTUxc0JwYVl0bTRqaUdKeHJnY2hxTld6UEdYTFJ1VTdYVFlSWFlySHlKazFZNUtxWTg2Ynd6eWdyZUVhMG9NL3NGdHpmZm4xcGZ5cHMvTWZCcExkOVVUektyTDdRTk0zZ0RTd0RxZXhKRzk0b05CZzNRRzZleVc3b2FWVDhSckV6YVl5cm9HQzhGMkZiL1lPTEx5L2s4YnByQ1ZkTFBm'@; put 'blgwZlFET1doeVY1UmM5bnZmRHVLcmRXMWxpOTQ0QmxJQlZ5RzI1SU9DeUY2WEVsb1pxMmU3VmFnVkdYTG9sTUFaMU90ZW9oc2I5NUhQM29rYXZZUFZhdlRZRFVGSFIwZXMyL0pLMHkzZ0w3K1MrNlZoK3FFMmN5Zy9TdDd4MUt0MCtaNi9jMzFtRUVoUDU5VStpSFd1S2Q2WkFKQlZ3VXRpRWs4'@; put 'S2ZnWlAydDRHVDJsbUdrZ3FmSElSNU45bWJyb3ZhbTQ2M3RqZGZPelU4ZkdwdzhNYmg0UnNITTR2WjdHSW1TOSt6cHBGM0RRMmRvaElHNUV5dS9YQXVkNmk5L1ZDdS9WQzd2SjVwNERsNVdFK0piQmFLWmZPNldLWUFzdUtMeW1ZVk1IK1diSlorVFM0c2w4aG1LZzluUUI0S1c4aERvVWdlcm92'@; put 'Q1Vaa3ZiaWNQaFl0eHdyZVFoOXJWU1N5c0M4UmxLYlJCSG1JMERmaTFBR3MxMFN3OE9UcXI0dGU2SmdIQ1E3REpPcmNsazdRWE1PcHZUZ3kwNzAwQ0diN1NrNHRQcDZVZkVlMGwxSTREM2VScEdET3dwYjNwMm14dkJwRGZGeTYyTnpQRjVxWkRrVXpVMmlUczJMNTlWZFN6YnlFOTJEZXdmekkr'@; put 'MVJvLzBGeS9jNlNscjJ0bmRqRGNNcHN5TmZsaXZTMytZTlR1N3NzMDkvcnIzWW1XcUsreHFWcnc1Y0xoL29ETUkveXd4aW55VVpEbmNUSGl4RHEyYjhMZFRGa2lXYVRPVTRDQlRxZHFBRXh1V2h1cDRQVExlcWlnNUgwQVI2SnUvRXdXVDlsYXExUDlNelA1OTd6SFYyMnBOOW9yaFpGMlBKUDcw'@; put 'SWR5MGdPZVpsTVo0MDB3NzM4UnJVelBITTB1R2RFQ2Q2R3pVZjBJVWVKQ2FwS0dIZG05TmkvemNSYnBSWlRkeWxhNWdQK0xrbkdiU3RSdzNHOEFCUU5SNHpIcEtVYlVlRmplTCtqVnhFYTBhaDZFYXFtcHVvRmdZUmFGVlRZdDNUc2VmMnpIcTFrUW5pUDRVU3BETUxBOXhGbWhmNm1OS3J5MWpl'@; put 'cnR2ZTB2TWg5NWYrK0QrUTkrS0E4alR1Q0g2R3YxRFh5L05GK3dwZkVmWVd5V2QxUEdhN0NHc2pscTZjRFlIQ2x5Z0lLdFN2SEVBeGFQTlpoMFpwTzhGWis3OTk3aGIzMWwrTk9mSG43bXVlOS9IK3RYWDN4eFZmb2pIYmR1Yll5NFlGeUJ3dHFvSjdCa2pNRUFWb1l1b0tHYlV6eWJGcHVYb2FH'@; put 'TWhkMllZN3NveC94aGYyV3R0N2FwdlA1Zis1LzVVdCt2cXNheWp3alpDcWVyajVpbEx2enM2cE9kV1N6dkJkZ25mZ25tM01hT0ZkN2FqczNnUHVsWmZJZjBGQjZRanJYZ1QzYTBTQ3NkYk56dzJoNjhsendCSEFWZzVHSnlvQkxqb1VhV1ZRUU41aFdDeFdoU2NGQXhwNG5oTGd6c1AwMTFLWnE5'@; put 'NlN3bmRxY2NGT0ZwR0p6SHBsbC9JdHNXOTgrT2FEdnlMdXp6Qjd6WWxlL1EzaG5xVDM4d0ZXMkpwVzdQOUFmMWNYMU5vdm1PZU5aa3ppUStIRTdVNk9Nd3kyVnJqNks3dDdHSnFZUzlMSlZTa29Lby8ya1Azcy9XSGhMOWVtYkxDbUJSTm1JOHVKNVd0MFJCTlVtelpRbHZDenRCYkFUbGdINld4'@; put 'dXF6ZGFRV0E5YmJHM1h3Q1NjU1l5c09CSHhzeFNPei9uaGJOZ0U3ZVNjc052emhlTlpzeXNidmFLYUwxUWY3TTdlbllpM1IxQWZUL1NIOTJocnF3YzM0TlA2Q3dHUHptaVQ5RWhrdUlQeTQ5RXNXSmFheVp0ZmFIUG9pRVZSOWpLMk9DanpYcUpwRFlpVWwraGpUaWVSa0x0QU9raDlWNHFtK1lY'@; put 'T0NDR3I4ZEhVSC9wVXFYeDhGKzIwYzFRQmxBWmRzcUs5eFZ6bHRWck8yVEZhQzFCUmRXWGxtUEVpb2x0R0Zoc3U5NlJoUmMzTHBXZEtrWEhyR1ByQ1hnRHZqbDJaall2NUlMbmNrTDhhbUc4TlYrVVp2ZDFWWXVtbStyMisrSWNSMTl4ckhydXJ0dldyVUtIWnhRVTl6ZFQwbnpXc2FxcHV2UGlu'@; put 'Z3U0V1RjdTVVRmhZYVlYR3VQbEdFbzZWSkdvaW51WjQ4SHRaaUFreVRKOHpseTVSOG1xM0I4MFZ1OTFwVUs5ajhQdERmcUtya3QzdlNXWll0dDlIOHJNVTB4NGRFSkdOSExnY3lkTWRKVjd4eUlRZWMrc1VYdTdycTYxN00zZDUvb2xOTVJXTnQwYW5rN2JrWE4vaWVITlFUYk1QSWdNSDJRRHpM'@; put 'TmppcXd3VFVGQTNobHN0WVdyYWNYK1N3V3kxcUNuYWxrU1poczNSNHU1ckVCeTlHOFBpMmgxNTU1WlUrZUQzMFIrcXR3djI1UGJucnJvTTNmQ2wxV2JIejZ5ZDc4Qng1Z09WQnRESXZTWkFtQ2dJeU04ZmxrcGFqd01LVFcyUTZVQWRLc1NMZFd2VDd2cW9xb2RKVkpaeFRQc2tlK3VtcXBML0xu'@; put 'NEMvWVpUR1g4Wi9WOW1JdzFwVXllRXdlbEx4Mjh6aWE4alp0K1B6b2ZrSzNUZ2p2VURPdHJ4ZG40K1Q5ejdSZHpaTFhxNDRJL082NE5wTGdNUG40TFJCZjBkVWZDSnltb3JPOTFBeHh0eDJ6RzBiWUZJQkt6cE1CMVZwcVAvVzJMK1NhenZjOWR2MGpXa2NidG1keSsxdVdhMG5YMXpkSmVkaS9n'@; put 'UjlDbmNBME9wRWR4R1hJSlI5VEJZbE1HYUtvTGRZWGMxTWtKKzRyUFRENmxMOFdXc2llbzFtUWFKcjJkNHFuVGJBWmFzQnhKZWU4bWV3ckUxZ1dUZUFPZzN5V0hNRnpiWUFycjJ5emxnUDBHRjJ1a1VQYXdLWWRYcTdOZ3NpelNWMUlaZlY1L05Sd1UxQng2TFJ6TFpWdEJ2cXV3TGhsVW0rRkd3'@; put 'TFZjVXFMYlUrUjUzZGFpdXY5Q1NxTlBxb3Y4WVhxekFIS1JKWWpjSkVEck9haGhTYys3UHMzQ004UGZjSWVsckp4eGpCLzh6NGxRKzFpOW5HS3FkSlErVHdBa0YwclF3aFpRWUcwdWNBVWtTZXordDIyYTBGdkVURkxFeEpqcUp1SVoycWZRS3p3U0dGcjNtMnlDRlo1M1BTbVMyeVNOZ2VtTitj'@; put 'dTc2eUVkWks4M1Q2MEVmUkY1RCtBc0huNVRTZExkb2N4ODV0MnB4VTIyQWVmWEdiTml1Rk5tWjB4elp0NWdwekhVV2ZrOXVRelcyK1VSakhpTDY5c1kyY0g4RTl4R2pCZ2diRmZvSHlJaWIxOVFnREY5TERPZWcxeXdaZ2tMcEYwQ3NWZjdaVzFweVlHV1dwdEVEdkNvVkJHWUZqWWpWaW5xWkpG'@; put 'S0FoZ0NWaFV5UG4wbXY3Ui9EdFJDZDVmcWFFMEdsQ1JaZjBEdndSNlhLa3hMMUZscWVRUWErTDdrdzZHTkR3T2pkZ2FqVU5tYmtxQUkvTE1lRzBDdnBIYUN5S3cxZkFHOUs4US9VeU9VWVI4SFRGcEFMcGR3RFc3U1kweWNaR00zTm9INFExcDk5dUoxcHZFOXZRaVR0MXNWNWllSE1IbWcxRmpt'@; put 'elJENDNSdEJ4andOOE0xR2NGQTZvR3BHVUZWdm5EWmdxVVplaFdybEN5ZUcxUHVVWmZ1NWs4cStZL1ByOVZqa1k4eTNueFJxcHQweC81eko2U3BBMktUeXlIZ3VGM1NLR0I5ek44d2tWNHVibk5jZlR3Tm0xT3FtMkFCbTdjcHMxY1laeWo2Q3E1elRwK3IxRXQ3Y05zcm9pOG5yVTd0aG9IVnhh'@; put 'MU9ZNXNtOXVzL1FMR2VZMnRKeUt2WisxdlM5cjhPN1Q1STF1UFBNN1J0WHMycmdkb3FSbmVYbUN4MGxxYXpidFIwMWpVWXhvb05SU3BHaFVWOEZGYlVjTktyZXpRelF3eXAyemQwR2ZHVTFKUWpYeWdxeVFQNWl0K1RrNTRHUmxSVTE2K2cvK3hrUGFDdS9PNGRmVjJPZm5sRDNsV2lnUndZREY5'@; put 'eGxOYUZKN3lpUkpZc1RnMWcxV3JjcjZQbGZDZHpXMk80OXcyYlU2cWJlQjhYOW1telVxaGpSazl0RTJidWNKY1I5RnptL2dYUnJ2UVgrS3ZFUjBJQTkzRGVwb2JDVXBsRUVna21IVm1uVGh6ZStSMitlZURZVHloL25iNzdXR2s1dlAranVYSSsxQ2MxZ2RGd3JVMUxvZkpvR2MrR3BhMm83ZzlI'@; put 'SEw0UkZjVVB2SDcvWEYvTEdnTldsa0d0cHJWR2dBYkwxdVVMNWZra2NPSkZUSkZja2dhVSsvSE02a0RkKzl2dnpTV0hwNkxaNEEyMjA5RTA4T3pxLzhXOHVOVC92a1kwQ2crY2ZORXlDZmRBbitSbW5mdldQcnN3WUMzNjFETG1SMUFuZlEzNlRzcklmeHdUVDBRcWZUOXFmZE5abzgyU2VNMTlR'@; put 'eDJMS2JNenFsTk9jc25TczU3YzV2ajZQOXUwK2FrMmdiTzhndmJ0SmtyakhNVTNiMlpWbVc5bDgzVnFjejE5TVp4TnVVYXhCajNoSFBRTHV1d0V1VW9GSzJCNUtsdzJDcWNsVTRoNEtuazVRaG9zaWhEdzEvSTBPajU1NUlNalZNc1JhUHRwbWRtQmdkbnBCZGttVFBEY25HZUJScHVFV05HVU1L'@; put 'WkdnSUNoMXRSRXk2Wld4c3Y2dVIwUWF2UDQvZEV2Q3drVVpLN0hjYnA5WUlGbFhGVC8rcE1lbDh1dHkvVkdtbnJTZTNKN2hrSTd3ak45ZTNvNkJpZmJHK2ZGSWs1T1oxSVRDZFRNMVh1L2RuMGZFdUhyenZZTWRveGttNGJIYyt0U2dCSE9WNzVNc0N4SDJRdlFYMlh5L1M5OFRrSDhQMUUwZlBu'@; put 'MWZhWVAxRGMvdW5DYzNOdjhmTUhDdU1mblM5Nnpya0w3WTFVT3dNYWd1ZmNYYUREUlVITDYwSEh4T1VhZ0ozSERVcUNIZXRKRHV2S0RLQjQ4am90RGFPVzZValpDdElqSGEvWExac05STTBHZG8yV0cwMGNGWWJVdHdPMGxVN0hZZ2lsZTlKaVozc3NGVXUySkdDQ2lOWG45Zmw5L2dvQXVSckVr'@; put 'dE5UUzZLcnNnTjdVMmdMMFZ4ek5lWktYcFhqWEgzWGV1dXVHZHA3YVhIb2RmQ0F3M3Q1VDBuc1M3cGxJa3BEc3BQOWNoUnNvS05qWUdGc1BTYmJsYzNraTJOaTBreDROQnFvN21sTmRjbzRsbGdUV2V3emd5Nkk3a1RjMDZEUmF1eFlwMDJCV3E4cnFQV3FYdVBuNFN1Q2RWZWc0aFQ3UWxDS25x'@; put 'TWJxYnBKZ0RYVzZrQnBmc3ZXb3JlMEliVUUwSkZDZXcydEFnWEpCTXZNeUFxSm5xOE9hLzVFUllRVzBXV1MrSENKSXRKemFkZFdrZHJHdVVSNWlRR1IwNDllczZNa2VOc1kwalJpaXBOeVRKVGkvSkJNQ3pmSXVMcnhPYVdGZTR1ZVA2KzJ4L3lseGUwZktJeHo5QkI3dmtaWncyMXNuSmZrOFQ4'@; put 'Z3R4OEZnQm1MbmgrdmtOdi9HM3o4aG8zL2tqeitmZkx6SDhQSDc5ajRjdnVqbjFtdnEyZ2xmdy9hUWhUdEVhMlZ6S3RhQytvQWFBTTJxNlVNRDhsNTV3N1ZCUzFzeUE1eml6YWFwc0Zoc2xMOEdDeTV1cnE2YUYwazRBdjRhZDZzS3BrS2lWQUJLaURwU2RKczdzMWVlZnhQaStLVnc4Tlg5WFNk'@; put 'NkQvV0Z6NTh5bm13UHRzVkRCOXlqbFRNeG1PemJablplR0l1UXl4Zk9MRHo5RUR2dGFQREozdG1adWF6cVhDMXI3ckdHMGw1Vmw5STdtdHYyNU5LN3NtMTcwMEJ2T1JZRU9VMVV6S3ZHVm1IK3lDRDR5NTJUbjNvdlZzK1A0N09GejEvWG5rTzhMMnVlSnluQzgvTmU0cWZQNkErUjBjdmwzbFdI'@; put 'enBOeWtrZDg1TzUwU0c1d0xxR1ZpdFExd3ZTOEZpcjBSN1dxVUZHRnkya2JVUklwNWFFcU8yMFdzMDhrSTEyaVhXWVhCQWR6Q0J5VjFhRGNGS2RiSHBxb1JZSFBjRXVLaTVxd0E3Rk12MHBMYi80amxyTzhEWFZKSjNOWDFpdll1QUs4UzBuV0c3TnJBWUpMUHRRc05ybE5PcTBHajNHV2s0SmhL'@; put 'd25NR3pXWER3ZVQ3T255VzhKV2pab0xzV0tDOU5ibkZpT3dta1VyUVc0WmtOdytNYkI2ZjZHNFc1dmFQalU0SzdCaG1GUk90bUNUYWw4ZGpHTDhXTFc1WlJlUytieHgvZW5odDQxMHVJZkRoeElEWjBhYVEyTVNtL21jWHVnL1ZEdXUrMkhjNEdCR3VrNVA1eVJIRmVnWjcxYnBqR0ZKamMrcHpq'@; put 'd3NhTG56NnZ0TWIrdnVQMERoWEdPVHN2UFpWODZIV2VmTXM3SGkrSnlGOHVaK2JQaWNzS2ZINWZqVnJaSW1pbmF4d1BLUG1CL002akl4azhVL0FESEZMMitXSStXWmZyWmdrdy9ObExjZDIvQlAyQlE5TGJTdmhjS2N0OHdMZk91aHJWcHpncTZtaE5WVS9pNXNJN1RZNEtkSUZHNEVaQXhpQm8v'@; put 'UjVrT3pTNlhHRlcxS0N0TlM2bXFycXIyQ1lMZzhGRFpvbFc4TjltZ1hIUWhTK2pXckpGd1ZtOUx2TU11OUJjcU1Hb2FQYlVOMWgvY2YvOGR0Ym1FczhuMEtWYU4wZWl1YmJEakhhd21nK1owVFpNYzBFZ3ppTEJGY1EvVlNOeVlLaVE4aVVVTm5KN1hZNjIrbVNaQlU2V0UxeE8rVUlucW91dXNB'@; put 'Q3ROcjFkam5Fb3dEZFlkRG9jejRYVEFad1UxSk9RcEF5TzlzUEwwTm1xSVhWQTNFeWhLK0NJNXVpMjNveVRwNi9BSmVYOC9WNU8vNkM3ZFVXUGZ4dXd2bWhER3R2eVJRaGFZYWk5OWdPbllBVVhIL2tPSnJpN25YMUY2R0ZEbzRaTkZmVStxZmJFZVBiTk4zK2VWdmdUckQ2N2Jsbyt3dmtHbDc4'@; put 'MGxlRVJ6cmI1R25vUTJnNnhOQldqeEZtU0FObzl6RnRvSTJpajJNMkRvdTVHYW4zVUlhTFFhdmhrUSt5d2FZdERUYWtzdFRaeldvbVU0bXNwQ0JaWEM1NmpqblBFOUp4bHp1OTNON3FZZ2pZQUd2SXJyM0Z1U3A2VVd3cVBONGVsRFBSdmkwK2ZQNTN2V1VIR1FlblQxUzBWSlczOGI2KzFkZldS'@; put 'RG1Mcmd4MGdVL0JqSFlObGJ3QlgwajdNRi9lUFlMTnJLQjRMTDBQZTI2YXZxTGh5MFVlcGRnQVpvdlVzTjllcFZnb3dRTUszWFZUTkpLWUx6aTRqbkZZY2VaWGNWbzB5WUFRRllXWDF4RGFvUmJGNmEwUzFRWEZmcllMd3FSanRsNU04V0ZjWk15dWhiUTlHN1JucTJVQ1hEa0RVTXVCeXFZY1V0'@; put 'Tkk1MG1PV3owUnRmem9oV3Z3LzRiemtHeFJRMEdoNEVyd2EwWUErdHVVTTZFTFE2elRLTjBhZ0hyVno5d0JJUUdKbGFxWWoycTAwWkFQRGhyWHJRYkxKS2RtVk16T1cxQnZ4ZUx3M3hhRFp1U0ZlU0hDZHJ0THlhSTNkOVlaTUdXOW1tVExrV3NDdHNZdUJ2RktPaHNsYlp1Y05HaXRQbXdJSndl'@; put 'TXZ3OTFqeTNCWStNZjBXUHJITitxdGVrWldzVG9qeDhXYUZqejliMGxmT2ZhTjhmRVRtNHl0S1grblh0TVpJN2d2NFUwR01URWRpN1RucWxJcWhQRG9zSG9qV0V6MWY1YVNHT0syRFIwTkc2aHptOUpvVmc2b29sUVAxNlhRQ2RXc3lOSkxqamt0eTNERWVwKzZ1ZUQ3ZWxVMVh4Q3BpNFNhdnA2'@; put 'YmFicVZ1cnlxVHFpVFJxMVJrdmNqNUorYlZZYmVyeGxzWE1BaE9wK1dYYnl2RmJxK251cm90NmdpSDZPVW5jMjgzM3c3MCtmOE4rRlhHYUZyMkJSNWIrM2lKdi9CbGFLTmxOQzNyL01mdVVISUcxcWJSRDRFdXJUVE9UaVdtVlk2enEyWG9GR1NxdlBHQmZHVHAxcXFVQWQxQ0piNGZVdXlydG9z'@; put 'eXdWRXhVUjB4a2JzVlVjaGs5Tm9iTU5jVExOYm5vVGVxMkcxRXczbXdYTFpmT0RKVldhd29FQWtMRWpmVWdSWGlxREJ2bVVKblZSZmtwT1UvNnBJV3FOVldWVlU1U1pmbWRWdnk5ZkxpMUZpZ1VMWHFnSFhXdCtoNS9NZlZONVNGQWc3U1NzMi9XdmV0QWcvak4vbUdXTTRkMkdMYVFtNmNVSkli'@; put 'TjVyUDB6d1NHRzhmNFBRVklFY2FBWGNaVHVOdnlYWWJQT2NZcms4b3oyOWp6MWtkRnBPYmNVVnVscFhRRDRBRWwzTzNRcHRKcFkwRlBTcTNlVlJ0STlkelBhbU9BK05meFdRY0xwSnhkSnd3YXpPcHRMbHVZeHM1ajVaMEFZNllhUWFieVZobUFNMmUweE8xc20xVGtaZ1ptZTJGSWpFK1RaRWth'@; put 'K2NGMGlYMTd0a2pmdVFqWFYyNExpYkc4SlQweXFnNEtrbW9rS3VMV1E1amcxaHJMT04xVktqcWxlcTVTcVVZeE00dWU4RThhTFhLd0JoUDVjZkg4MVA0UUxQMEFuYUd4QkErSWozWlhPeGp2bDcxTVFPTWZsVUNSOWtXZkZteEJhbitjWmZjRjg3bUw5bVp0U2huODN1NXZmUnJta2VvdG9mbjl4'@; put 'WE5kYkxnejliRGFXdzkxL01GdTFOL0RCWDVsUk1Gdi9JeDlPVVNmVVcyczg0V2JNZGpoOUJXL205Y2p2NnhKTzYyMFg0bHVQeTByRE9uZ0xFK0MrZHFBWXUvWGN3V3FsRDFwRkNHYXFEbGRtcWVEVE0yYXEwMURodExySk1Gc1dzOXZLYXlReHBoVzFkYi9MSW9YdjJIL2ZjY09IRFBmaEtYUER2'@; put 'bGdJOGlqSGQvZXYvUzNmdTdWbDhnMllsYkp5ZmVQYVRZbGR3YkxKODBpZHJSbERqaHhIb2RkZDB4clFFNHZWYXZXVFlaaUU0blYxVzZSbzE4R1VkMWVzVmxsMHI1d0lwSXRhZHkyWXd2Nld1Tk5OT1VVNnN2NFBPYllkRWJIWGJyZkx4SXlEWnM0dWhJbHJaY2greXBHN3FoMGZ1dWtVR1doem44'@; put 'THEvbnVxR0N6SldPRldWazRqTWJjdFhIZTNzbTVCek44VzV4VEJhK3hXbWFhdjY2SW9NUHNyTk5LL2o3VEFsZXlIbUg5R3huWmQvUG1LS3JBZjRlWlBpYlZ2RDBDYms5NE84Q3c5OVo1Ym14YUs2VDZseUF2Ky9kY3E3OURIOW5aZnkxeVhPeHVqaTJ6b3l5enJ0S2NGL09aYVRybkpQWHFjUldZ'@; put 'MnNpcTZrVDBSdWlNOW5hVUsvUjZkMDA2bDVkQ2FLZHBsaHJGUDlqZEdOY0ZmVEZKUkRzRHRrZzB1S3RBNnV4VFlIVmkvZWkzc3Y0NWtEcHhickpRZDh0UXF0YmRKUmpxeVpmeEVkVEc2d1dBNWdCUHRrOXVVMTBGVis4ZXBCRTBrZDJWR3dWYUIyOFByRjlUZUhOODZtU2VHdE8yeFovaXlwRGxw'@; put 'Y3FzcnpVUEp4WlRXdExmWjFHeTIrTWhXdEczS0R4RG04WkVPZDUzUktpeWVCbzNaZHgwWUQ0UlR0dEdSQy9TSzl0QStLbC9aU0F1QzhjZW5zQmNYeXhCRno4OUtHUkxRUGppYVhBdGxtNW83dTBqU1duRmF6ZlBrMjNtRDVQcXZRSnRIMXNHL3A4WHFWUHJNOHF0YVJBbjdTVzFJTWVGdTFWY0xU'@; put 'SWFRYUpZS0tYWjQxNHNFWTk1Q2FFYUlycEZTeEVSVTVSUjVXYW9NRjBPVUx3QVpEa2Jxd2VWalB0b0VIYzZiZlJRd3h1YWt3TEFnaytzcWtQaXhUUTRuNUdXUFNNMkkxVFc1NFF0YnRwK1N1ZXRXNXhDalZsdENZMnRnbldmVVUxc242Z0FacjNIRWZQaWE0bXJPZWE3Y1NnajlvSU1aUkVUaUpJ'@; put 'cTlIZVhJWnBiWS9oQ2hCZUFGNWEyY054bWtXZFhOOVRFa0NKcnZmUkc4anBpM1VDY0c3WlhnbW1GSFhqS0pBczBDMk80aXdiMnduQW9xNkliU0lxdURSRDI4a3dId2RLY0RlU1hjL2FibWp3VjJ3UlFCbE1GbWR5eDZwMGZqa25pOVVzTXh6TktqajZ6aEljcGJubVAyQzY2cnlzcTVLbUVuMVdq'@; put 'djBtQ3JIZlkraGpwYm96ODgyZUxmaG1qdzJnb3JqeE53cXhaU1A2VmtuY21QVmxjVWZaMzJ1OEFXMFZ1d1k5N1BOYjlRV0x2K0JieHVWTFNLbTNubWIxMW43VUliWTVnQ1dWdzhtQzZNUGNpSEo3aFhwSEtuUDdyaHRGME1QdnEvTDZmZkpkRnJMWGZKTTNaRk45TmprN2VHYktyS3NxZUF5cURs'@; put 'eXRWR3FUYzZ3dUcxc2FGQmVCdjlyeHlSUEZkZHNzNzM2YTdBQzdoNjNWQUxhaUhtczVQNmEzRWluSi90UmZXVWkvTDNaWCttaE5UY2hESTlRYi9aUWJjL0hYYlVxeVEzWkxGcWZtNTljTlRIZlVPTEE1U2I5Z3hqRjhvZlhnREtmYTVWd0JQRldDQzNJK1B1VjdlNWcreEtQdkZlVUhuRlR6QStE'@; put 'NXJTVjlaUi80ODZvUEhQT0xxS2p2WENHMzRDZzZWWUlMckU2YjRVdVhvak05VkRLK25BTlA4V1ZSMXBrVVhKUDd6cWw5d1Q3OTdqWjlIMUQ2VWovY25VVjlUeGI2NnRFTjIvUjlYcDBYNjNzWm5yTDZ0MXZoN0N1b3I0Qm01ZEs2QmVZckVOYXZOM0V6eEt4QTVWWjJ2WWx1VTNXYnZxaXE3YUhO'@; put 'cFd4eS9pd2VJYysvelpwdEo2M1ovbHpYc2ZUVXpqUjUvcmJGeGEzSEtOUnBFSFF6ME03VlNwV0dNa1kyeVh1NzB6dW4wc2U2eVBPTGk3Y3BZNHpqdytRQ3ZXMlJqZEZJOHdZMDFORlZta0pyUmlZL1YwaElWdmJMekl2N3grcENqbXh0YmRZUnFoMXJJdU4xZFNHNzAya1AxZGJMYyt4QmR6Qi9T'@; put 'SUROOFpiNXVadXpuZWNWNzhhNk4wT3VnWVIxbXprM3k2ZHVZNlBTWWo2YVVieWl4UnpHM0h5aDhJeDdXMW5WeGZjazM5alpHUTdEcTlybnEzYjUvUzR5THY4ZDdtenl1K1NIY3A3d05GcEZOaVNnZHJhQ3VNclBhS1VrQXlHdGNnRDVQcys0R1VlL21aUXJSM3dPalpKWnJkenRXK1RjdmFIRDYy'@; put 'NHBPSFFmWko0Ym0rTEpsZStkSlYzNERIa2FkdDdMNXMzYUFJWjY1cyt5WWp3RVFwRFZlQkNNVnRqTkJmTnFjVGZoSnBtUzV3QlJxRlVRQTFITlRiMTRsT3JZZEJIMGFndHp2VXR3bUVPbVpqNFJ0TFBmZzJiNk8rbXpXQ3ZLaC9oc3Avb3BuMGMzZnB6bGcvT29tcTJxUWd2WU9FU3QxS3V0bGtJ'@; put 'ZXVaUDMrcFhFY0p6dFBac2hMMWZjOUdHV0lJN1g1cVJmcnoyOGRqOHFSejQyZ3F0OGkyb1ZYMkVzZnVObHVGK1FmWkEyVjQzM0RkbTN5UHlNQmY1NHZjb2ZVUi9PYk1NZlgxYjVJK3BEVHhYeDF2Vyt4L0dYTDlyM09CYUwrczRWK2g3RlF5WDhVZTc3UUtIdlVlcTNaUGNUTHRBNFFuRU00czAx'@; put 'V1FkNGMwM1JBUkpydTZrdlgvWkxzemJmZkZPU1l6dHZTa29iMmIrOVVoakhETHh1YS8vMjB3WC90bmtjYlprNzFyZUZqckV4emt0UTN3bmxmbFgwbjhTQW94ZS9mL2dmcERpT2RxaDl1UGEzMFljamIwcHFuMkg4YlhTQjNBazQwL293b012UXBzdTRYWnN1NDVhcmhoWWVrYkhJcWpxOVpTRjln'@; put 'VjZuWEcybjF5bVRXK2w5eWhhM2ZKOHloU1ArRm5xTWZBcWdVSUdvTEdBMVFHU2tVQU1FNjhBbjJUcHFVZnNqdGVWRVhZcVpGZGF6KytMWllxd2J5ajQ0eHY0V0h2VlYrU3pzUnBHTkszSnV1OEIvM1dhdHJ0SjE0K3ZJcHlxRDhyclorcjhLNjdjVTFrOVJTdDBJdlhQcmNkeU5QLzJuMVZIOHI3'@; put 'NitlTHkzTi82NC9CSHZrL0ZuR1BBcWhIWUNiZ2lBRzE1NC95ckRjUUhmREExNGVrKy9abmZSUGYzZGFCUm0rdy81cnY2V0Nxd3RsNi9SMTJPZENaY1pkV1hGVis5YnpSYk9hT1NXQkVNbHJ5bStzVDk5a1k3czluMjVOMDk3YzhxOS9ia3QrMjF4YzM5Slh6QTBNbU5qb3FqZTREODJQemEzYTZj'@; put 'NEtvNE05Q2U2RS9tMnpKYTMrZHYrak52OEd6Yjk3U3RxMjVENWsyLzZ4OE9Ed2NJZjBoUHF2ZjkzNS83VS93SEFsdjh6Z1BYL0tRQzlWeWlOMXZEZjBkc21IdFppbkFoM1l5ZkFMbkJ2NWhPZnlMeitkZE5qVDVpVk81M1NvR1FyN1RqV0xwaDE4dEZQZkNMOTJjLzJQdkdZNmV2ZllMTGlaOHFk'@; put 'aW5FMEtZN1Z1SWxHQitMUGlPbk51Qm9xQ2pYY3NnR1RNb3lOTkErOGtQbHZ3a2FqNnVsZ3RtRXNFbTV1RWl4K3NQa0VxOTlNZlZTRmV6cUNZQkJTMHdJKzhxU1FiS2VqbVVRQVpDZDgwUGpYaS9LVmkyTzNMVHYyVFhLNlhZZGNSMjRaVmhMK1p6N2t4Y1BTWjNrTlhwTE8xMzkwVDRKZHc5aDdj'@; put 'aWpuZEhycWMzMlhkckpzL3dNVHVWcHZ0UzAzZTBLVzd6aE95dkZsd0FkMUQ0TkNsMkJjVDc0cDlqSjZSeXhUZEVEVjRZQXJld1FQNFZaWDZZdnhvU1RBcFU2cEpkZC95V1UxYTBsaWkwdFNTb3ZDNjk2cUtQeU41VzFyd29ITzVUbEJCdUNFRWx0NGdORy8vUHlDOG53OTlpay9mNzd3bkwrNitQ'@; put 'a0Q2bk4wOU5MaTUrdmo5NEZhdGY3OGJLSDlzZjFJZ2NFMHVReGdRR01GK2k4MWVhMFlZRkJpaXFtUVdMZkRBcHRoY3Bsc2x4VURSckhML3JNSVBvcU5ObGNFSXNVOCs0c05XUW5yYTZaMnRid1hzTDMvb21ndlR4ZGdZcDZUNVNoTisva0l1NXRDeFlXazRKMVdycU9nMzYvTndQZmEwdSsxcTVQ'@; put 'b2Z3QVBmbng1QUFBQkFBQUFBUUFBdENjQXdsOFBQUFVBSHdQb0FBQUFBTlBCbllZQUFBQUExTDZtOWY5Vy91OEVXQVBGQUFBQUNBQUNBQUFBQUFBQWVOcGpZR1JnWUQ3Njd6WURBMHZILzdEL2sxa2lHSUFpeUlEUkdnQ2xoZ2F2QUFBQWVOcU5sRTFvRTFFVWhjKzdrNVVMd1Q4VUJTbHFFbHVi'@; put 'cEsyaERhWTBsQlJiYlVyU2puWVJha1doQ3hkYVlyVzZGdEc2RXhFWFhma0RVdmN1QmJIdVJNZ211TktLK0VNVVdseGtJUzA0bnZ1YXFYWFNnb0hETnpPNWI5Njc1NTE1cG9ZejRNOE1VUWNvQTlmY1I3ODhSRlRPSSs3c1FFSWVvQmtmMFcvRzBFUEZ6UXpTTW95c0FmSm1DaWtzNG9TNTYvMlVK'@; put 'MGliSXZiS1NiUkxEdzdMQkZWQVNzNmhXMDV6VEFGSnZiYjFITXU2TG4wUG1UTTE3SE5LYUpVdmFKSkhHSmM1MXRiSUNkWVZxU3J2WHlHUEJWN3Y0aHczTVNhSDBPY01zSVoxVHBULzMwRGU4aFpydUhhWlJremVZMVRmR1dwR1dKNGhJdmV3WGE3am1MbUFZYTU1aFd3M245RXBCZSszU1NNalhl'@; put 'aVFLM0JsTjlySVRuSFJ4cDdETWtrZnNoaENCUm04OVY3SU5nemlIWExPRkhMNlhLN1plbGZIbUt2MGNCRXhNOGx4V2Y2ZllHOUpISlE5N0cwQSswVlljd2RIekZaY0pPUG1KWHJwKzRpZHMwaFB1RVl6aXo2enhKcm55TmgxalNPS0QvUTh5ZnNsSk9uWHFsY2J5UGxPcW4vcTNUcGh3U3VyZitR'@; put 'UDZwdXpCUzIrZDBISlRveFlxbi9ycGY3UlorbkFLZXZWQm5MS3BQYmkvaXRVdkRmMGI1RDhTbjJTUzh5RjcxMVFtZ3RsMXZyN1YrcWYrcXpVZm5YT0lMVjNuZCtuNW9qN1l2dTl6VDFWUDNSTm0xR3pwdnRkSjcycWNMM3FYUk81UWg3WFBtd0dtUVBOb1daaGpXY1JOaEh1dmM2ci9RVm9mV1Z2'@; put 'YTF4R010VENlWmxielU0RG1XWE5Vd09uNnhuenFmdWpIbTFDL1Fac0RuVVAxYi82dDZCNURGSXp6bXhtckI0ejgyVXlSM1ZUcjVuRFgzd0diOVIvWjVBTm50Ym5aRzdoVkZmUEd5eFRUd0hwUmNxNWpCVFBCSHN1bUhseW5weWx2eVZlODF3S3pTQmhXaEdoWWpMblZXMCtISTR0NGVoL2labUIr'@; put 'd2ViUC9VTWVOcE53bDFJR2dFQUFHRHp2MU5QTy9XNjgrNjZYKzl1ZXVlZGR4RVJFVEpFUWlRa1lrajBFTkZEUkVRUFEwSmt4QWpwSVh5SWlCZ2pJbVNFaEl3WUlTTjZrQmdSd3dlSkhpUWlJaVFpZWhnU01tVHNaUS9qK3d3R3cvSS9lNFp5RDlLemJvd2JUNHdQSm9NSk4xVk5kMmFybVRLL05V'@; put 'K2JEOHcxaTlFeVo5bXhQRnFUMWlYcm95MXAyN0VkMnM1czk3YU9QZFdiNk0zMi9nUWdJQW5rZ0JMUWRsQ09JY2VDWTl2eHpYSG50RG9ubkJ2T2xvdHpyYnAyWFhWWEcyVEFOSmdGRDhCenNBbDIzUVB1VWZjN2Q5VURlcVk4WlUrM0w5Vlg3V3RESExRQ2ZZYU92VWJ2bUxmZ3ZmRnB2aGxmeGZm'@; put 'azUvMEovM3YvdnI4SlcrRUplQjQrZ2svaGwvNVlmN0cvampnUkJCbEMwc2dIcElUYVVSKzZpT2JSSXJxUEhxUG42SFdBQ2p3SC9tQWVqTUVHc1FTV3dSYXhQSGFKM1dBdnVBR0hjQTRmd3Fmd0duNkZ0L0FPQVJBNE1VMVVpTy9FRDZKQjNCSlB4T3ZBSmpsSXhzZ1VtU0hueVJVeVQyNlEyNVNk'@; put 'OGxFVUpWSERWSnhLVXhVYXBoazZRby9RQ1hxU0x0TW45QVY5UmJmb1gweU1PV1hxVEpONVpqb3N3T0lzeHhiWVhiYkVuckExRHVJK2NVZGNsYnZrcnJuNzRFcndZN0FZUE9jUlBzVEgrQlNmNFJmNVBGL2s5L2tHM3hWQUlTRHdnaWJFaGJRd0p5d0xhOEttMEJSbnhHVXhKeGJFTGJFa2ZoVnJZ'@; put 'djNOWVdndHRCWGFDNGZDamZCRCtGV3lTejZKbHpRcExxV2xMMUpYQnVXQUxNbkRjbEtla1Jma25GeVFkK1dTZkMxM0lvRklLcEtOVkNOdFpVeVpWVGFWUGFXc25Db1hTbE5wS1IwVlVIRlZWRWZVeEg5bTFaeGFVYytpUUpTSmprY3owWXcyb2MxcFdlMUJhK3RHZlZRZjE2ZjBXWDFKWDlYWDlZ'@; put 'Witxei9wdndlQnYwdEF2U29BQUFBQkFBQUJQQUJZQUFvQVB3QUVBQUlBS0FBNUFJc0FBQUNEQVJZQUF3QUJlTnFGa3MxT3drQVVoYzhVSklER0tERXVHaGQ5QWZsVEllcFN3MFpRSXdvN0VoQUVJbEF0eFlUWDhDbjBUZng1QWQyNGR1M2FoWWZodHFEQmtFazczOHk1OTl5NTB3S0k0UU1CcUdB'@; put 'RXdDR2ZNU3RZWEkzWndETHF3Z0ZrNEFnSGtjU0Q4QUpNdkFtSG1Qc2xIRVpheFlRak1KWG51WWh0VlJGZVFrbmRDNjlnVFgwS3J5S3F2b1dmc0c2RWhKK1JORGFFWHhBMjhzS3ZpQnJuWTM0UHdEUXFPSUNOR3d4NTRqYWFhTUhseVI3NXBIbnlGRHV4VUtOcU1hNmxZL3JrSXVjdXMvck03U0dP'@; put 'QWhyTWM3U1RqWTVFNVgzSE0rcE5ES2hVR1pWaVJsS1BmVnpnQ0dVY2syWjViRTU1ekt0aC9hbFM0c3BoVEZ1ZjBacXFPcTlTaVhUSjJXYk1xUE1UNWpjNGovTHExS3JrVStwRFhkL2wzdjkzTS9KenVkcERndVB1bDdPdGZidSthNXlhemJXWDA1ZXNKbFdYdXdOK0NTOG13ZG1yMmRWZFRtb21a'@; put 'blk0YTIvU2M1bHFEVmM2My9WdnF5QjNsOU9xeFpIUldwWW5TMkdYN3kzcytQOUtGdGVNYTJoL1IrNDk1enNXY2NzTzJsUWN4blIrQUdpaWd2Y0FBSGphYlpOWGJCeFZGSWEvMzdGMzNUWk83NzFYeDE3M3hDa3VhOGV4WXljdWNlekVTY2E3WTJmeGVoZkd1M0ZzdWdRQ0hrRHd3alBsQ1JDOUNp'@; put 'UjRRS0pYMFhzSDBYbWtCKy9jQ1Y0azdzTjgveG1kODU4ejk5NGhDM2VkRzJBZS83TlVtMzZReFF5eXljR0huMXp5eUtlQVFnTE1wSWhaekdZT2M2ZnE1N09BaFN4aU1VdFl5aktXczRLVnJHSTFhMWpMT3RhemdZMXNZak5iMk1vMnRsUE1Ea29vSlVnWjVWUlFTUlhWMUxDVFhkU3ltejNzWlI5'@; put 'MTFOTkFJeUdhYUdZL0xSeWdsVFlPMGs0SGh6aE1KMTEwMDhNUmVqbEtILzBjNHpnRG5PQWtwN0M0bmF1NG1wdTVnVHQ0bit1NWxxZjVtRHU1amJ0NW5tZTVoMEhDM0VpRUY3RjVqaGQ0bFpkNG1WZjRsaUhlNERWZTUxNkcrWVdiZUpzM2VZdlRmTStQWE1jRlJCbGhsQmh4YmlIQlJWeUl3eGdw'@; put 'a3B4aG5PODR5eVFUWE15bFhNSmozTXJsWE1ZVlhNa1AvTVRqeXRJTVpTdEhQdm41aTc4NUo1U3JQT1ZMS2xDaEFwcXBJczNTYk0zaFYzN1RYTTNUZkMzUVFpM2lkOTdSWWkzUlVpM1RjcTNnYzc3UVNxM1NhcTNSV3EzVGVtM1FSbTNpUHU3WFptM1JWbTNUZGhWcmgwcjRnei81a3E5VXFxREtW'@; put 'SzRLVmFwSzFhclJUdTFTclhacmovWnFIMCtvVHZWcVVDTmY4NDFDdk10bmZNQ0hmTVNudk1jbmFsS3o5cXRGQjlTcU5oMVV1enAwU0lmVnFTNTFxMGRIMU1zRFBNZ2pQTXBEUE13MTNLV2pQTU9UUEtVK2ZsYS9qdW00Qm5SQ0ozVktsZ1lWVmtTMmh2eDFvMWJZU2NUOWxxR3ZidEN4ejlnK3k0'@; put 'Vy9MakdjaU5zamZzdlExeGkyMGtrUmc4YXBDaXZwRDNrV3RtRitLSkpJV3VHd0hVL20yLzlLZjhpenNqMnJrUEd3WFJRMmh4T2pvNVpKTFJ6T0NQd3RubnZVWTR2bkV6VXNiTTJzSE1rSWZHMVdPSlcwZlRHRE50TXZadEJ1WHNaZEZMWm5lc1F6UGRwTmV0eUZ2OE9iSVdFWTZEaWRpZzliVG1v'@; put 'MFpxV1NnVVJtNU9zMEhSelRvVE96ZzVQWm9kTjBjQXk2VE5XWUMzOHFIaTBwclF4NkxQTjFtNlNrbWFiSG15WmxtTlBqUk9QRE9hbjBNOUR6bjhsU21aRy94OXZCbEdGQmJ6anFoRk9qUXpIN2JNRjRodTdMMEJQVDJ0ZHZacHgwa2Q4L2ZkcVQwNmVkbmpoWVZ1V3lMRmpwNngxMnJLbHJOVzdR'@; put 'YXh6R1hlVDFScUsyWTQ5RngvTEd6NnQwWFdtb3Z0cGpqY2NHajQyK1BtTTA0U0w5TmxoU0V2Ulk1ckhjWTRYSFNzTmdVM1lvNVNUY29LS3BJY2NxdG1MSmZNdWR4VWozN3FkbGtUWDkyZWs0WUowZjBDUzYzZE95d1B0OWpEYjdtdFo1VnZvMFRISXlHb3U0eWJuVzJOUWVSV3duTDJKNzZoKzNa'@; put 'YmNoQUFBQWVOcGo4TjdCY0NJb1lpTWpZMS9rQnNhZEhBd2NETWtGR3huWW5UWkpNakpvZ1JpYmVUZ1lPU0FzTVRZd2k4TnBGN01EQXlNREo1RE42YlNMQWNwbVpuRFpxTUxZRVJpeHdhRWpZaU56aXN0R05SQnZGMGNEQXlPTFEwZHlTQVJJU1NRUWJPYmpZT1RSMnNINHYzVURTKzlHSmdhWHph'@; put 'd3BiQXd1TGdEK0hDVmdBQUFBQUFGWW1QWjNBQUE9KSBmb3JtYXQoIndvZmYiKTtmb250LXdlaWdodDoyMDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODti'@; put 'YXNlNjQsZDA5R1JnQUJBQUFBQUZVa0FCTUFBQUFBcFFnQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmTkg1NWtkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY1hBQUFPZGo1OGZFeEhVMVZDQUFBSkxBQUFBQ0FBQUFB'@; put 'Z1JIWk1kVTlUTHpJQUFBbE1BQUFBVFFBQUFHQm9RS3p6WTIxaGNBQUFDWndBQUFKc0FBQURubmRERDdGamRuUWdBQUFNQ0FBQUFEQUFBQUE4RWF3QnBHWndaMjBBQUF3NEFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVuUUFBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNmQUFBTjR3QUFIRzQvN0hH'@; put 'REdobFlXUUFBRW9JQUFBQU5nQUFBRFlMWllnU2FHaGxZUUFBU2tBQUFBQWhBQUFBSkFkNkJDQm9iWFI0QUFCS1pBQUFBb1lBQUFUYXExTStWV3h2WTJFQUFFenNBQUFDY3dBQUFucE43akxtYldGNGNBQUFUMkFBQUFBZ0FBQUFJQUtFQXBGdVlXMWxBQUJQZ0FBQUFYRUFBQU1RSSt4NFlYQnZj'@; put 'M1FBQUZEMEFBQURvUUFBQmlHWEZqMktjSEpsY0FBQVZKZ0FBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlZIQUFBQUFZQUFBQUc5bmRZbUFBQUFBRUFBQUFBMUZHMWFnQUFBQURUd1oyR0FBQUFBTlMrcHZWNDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RG'@; put 'UmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY05iSmJWRlg3T3VmZSszOWV2Z0tXVUg2RWdJVmdiMHhSR21BaXlhUmhVUnlxU2ppa2FadmJqbklQeDEyRXpGdWY0Y1dnV1VoZUhEQWxwRVBreDJnQ2lZa1hHdW9ZeHh6WUN5Z3hoWUZ3'@; put 'SHlCWW0wK2xDUkhuM3ZPZjlzQy9RYnVNSkQ0ZHo3M3Z2UGVjOHQrY1dBcUNBRVpnS21WeFhQd041ZUhvUXgzRDhSNkJ3Yzc3ZE9BOFZjNy9ST0FlVmMrZk1uY1Bab0Q4WlRXY2s3UGhkQVFNd0RGWG1jUmlKZXRlYWprWUxiRldKbWhIeEkrbTlpRjhNTmw5QXhXY1ExTVhONUlDSldJbFBFY3Rn'@; put 'S0kvQmVUSklqcUVVdlhpeWY4UWQ4WmI0U0h3Y1BmeUozKzl4NVBmZGVqdTVkL2IvSitPZjk3akN1ejJPOUh5ZVA4VzdlaGpaRW5mR3V4TmM1ai9Ddjc5TDBOMGVjVE96cEJqT1RGY3hXOWNSaWxyQ1lSVGhNWVlJK0R3UllSeVJ3M2dpandsRUNYTTdrWlZxSWdSTDhSUE9mSlFJelBoSytsOG1C'@; put 'SzhRZ2xjSnhTSEM0MDNDNHpnUjhGY2l3a2tpd3J0RWhMTkVEdThUT1p3blNsaTlUN2xhVEJTa1RNcFFJdVZTVHE2UUN2SmdWcmJBdFVkVEpTUDV6ZldFMkxuVEU2dWQyTm1KdlowNFlES1JSeDFSZ3R1SUFocUlVc3pIZzF3aGlTU3lTQ0tMSk9CeFBNbjVxNGtTL0FKck9mOXBiT0w4TFVRcHRo'@; put 'RTViQ2Z5ZUlISVlRZVJ4NHRFRGk4UmVld2tTdEJHbEdBUFVVQTdVVUFIVWNCZW9vRGZFSUxmRW1MWmlmQTJVWXEvRUdsZTFQS2lsaGR2ZVFtV2wyQjU4WllYYjNueE1sQUdNbDlYeTlYa0pFZUJxOVl5UTFXc2NTMXJPNFkxSGNmTVRHQkc1bU1CRnFJUjM4Y2kxbklwbG1FNUhtRVdIbVgwMnhq'@; put 'Umk2emtLNnpnSVZidU9DdDJrcFU2eTVPY3Q1dFZ4bjBya3Z1bEQ5czkzQ2VOakxzMzFiV2J1bXVPUCtwR3JUYlMzUjM0Yk9STWdtNitQTnZqM1RoelVmRzgxOGZqNWZIeXkwZlNXeGV2aTlkMU8vSTMrMFpSYVpvUTA0VGlxNFREM1lUSFBVVEFMQ0tpSXA3a25FUU5ZbXBRVTRPaWxZaXdsWWlz'@; put 'MG1LVkZxdTBXS1hGNnFvNFFUaWNJaHhPRXc2ZkVBRVhpRWo2U2wvV3RaLzBJL2VYL3VTa29tSVZGUmtpUTdpK29nWlhFYVhvUy9ReXBZc3BYVTNwcnFqMFc0bXMwcjNGRTJYaXlablNYVkhwWFJyM0ZwVzNxSElXMVVXbHB4cFAxYjJMNkZuWFNiVGVOS3ZGQ0JQbE9vc3paL3AxcGw4dHhweW9X'@; put 'SXVSSjFyV1RQeFpSVHZMUWs1R3kzanVudnowcW1PRURhelgzWXhyRmlOWnpValc0Q2xHOHpRMjRCbHNaRVJiR01sVzNzWTJucmFkcDl6TDA1MWdEVTd6WkJkNGduN2NiU0IzR2NJVmg1bWVGWDJzbzVTYk9zcTV5ODIweE95YjJZbU9SY1BJbmN4L2g2eVFsZktFckpFVzJTalB5WGJaS2J1bFEx'@; put 'NlhBM0pZanNvN2Nrck95QWR5VGk2bzE0S1c2UUN0MUJGYXJiVTZWaWZvTFZxbjlkcWdNL1ZldlU5bjZ3SnQwb2QwbVQ2bXpicEsxK3A2M2F5dHVrUGJkSS91MWYxNlVOL1NZOXFwcC9VOS9WQS9kbkNSNitYSzNTQTN6STEwMTd2UjdnWTMwVTF5dDdscGJvYTd4MzNkM2UrKzV4cmREOXpEN2hI'@; put 'M1UvY3p0OXF0Y3h2Y3MyNnJlOG50Y3UxdW4vdURlOE1kY1crN0UrN3Y3cC91Mys0VHJ6N3YrL2dLUDlnUDkxVyt4by94Ti9vditzbCtxcC91Ny9Tei9EZjlBMzZlWCtSLzZKZjRGWDZsZjhLdjhTMStvMy9PYi9jNy9XN2Y0Vi8zQi94aGY5Uy80MC81TS80RGY4NWZDRDRVUWxrWUVDckRpRkFk'@; put 'YXNQWU1DSGNFdXBDZldnSU04Tzk0YjR3T3l3SVRlR2hzQ3c4RnByRHFyQTJyQStiUTJ2WUVkckNuckEzN0E4SHcxdmhXT2dNcDhONzRjUHdjWVFvaW5yeGRpeldiZVFseG5VWlhwVXdtb3hiekxPMHkxL2thY1kxeGpjWlA1aXdEalY3dXZFazQydVZQMU9sMm5pVThaU0VzZEI0azc1R2JqVC9l'@; put 'T09KNXU4MFBtK2U2NHczR0ZjWjU0MGIzR3p5ODhhTHUyZDlNeHVqK2E5Z1RETisxcmlwaStXdU5IYXo1eG52TTE1MUphY1pNUHRLbm01OHJiYi9MOWFObCtTcXZUdkdsNDJmTVY3WXhjeGV1Mlh2djNPYXovWnV1U3JEaXpObnZzVE8xSFNKK2F2Tm43WFRyRDV1OWwyWnpJL3FHcjFvMjJpcWlx'@; put 'dy96ZXFVMUxZNXFXYlM2cVJScC9vczJrVi9NcWZGN0UydTZhSjZpeHA3dyt6OWlWMnNhWnF4Vk51cDlyTCs5QXhwM2c2YS9TT3IwWjlONStkc2ZxcWNUcHRqTnlMVjdTWCtHclBQcDdiTlNWV2Q5YWMzNkthTVp0S0taTzBYelA1VzZyZjVkaTkwcVBrM21EOVZXbFhHbm1TY04wOVA5a2ZwZmJI'@; put 'bzdqRDdzTm5abGV2aVh5WFZpZmRjVnFuc2psT0t0N3Y5LytCTFp5cXVzWGNwK082cVpsYVMxNmxuMTY1aEYweGUyQkUreDVkWURtTnhJM3RZMHJuN3NHOS9nVDA5NmR4OTdZMWFicDI3SDMrdm1zbytWRS8weHgzc2N3UFk2ZTdrN3o0emlVcnI1VVBaOWI3R3JqV2ZiN2ZoOW5vYng0N2V3dlhX'@; put 'cy9QZGJyM3ZLK3grcjdGRC9oSUg4QjIrNk01aXNiMHExK0JmRXZBVU8vRVF0RnBQYmVONVJhNnkzODBpU1B4alUrRVMzRTlld1c1WGlrSGNheVFqR28wYmVPcEpQT1Uwek9Eb3IwMjdmelErYW14M0J2c3lmTWg0cnZGbTQxUlZPYk5MOFNYdTh3QytLem5KUzRrVXBGUjZTNThyVC9RZjZqNmJL'@; put 'UUFBQVFBQUFBb0FIQUFlQUFGRVJreFVBQWdBQkFBQUFBRC8vd0FBQUFBQUFIamFZMkJtY21DY3dNREt3TUxVeFJUQndNRGdEYUVaNHhoRUdNMkFmS0FVSExBeklJRlE3M0EvQmdjR0JkVS96TkwvalJrWW1JOHlxaXN3TUV3R3lUR3hNcTBIVWdvTVRBREpaUXBBQUFBQWVOcTFrMWxRamxFY3hu'@; put 'Ly90MzBSS2hUMTl2WnAwMGFpRkVYMnBjaStsS3pac3EvWkd1c1FRMFZTeUo0a294a1RVMU8yRys2NE5XT012cytWVys0TUhjZFhURFBNdUhKbTNuUGVjODZjNTV4NW50OGZjS0hyQzBGMGoxVHFtVGpucmxLc3h5V013NDJCbEhDTE91N1NTQlBOdE5BbUhoSWdneVJNQmt1Y0pFbXFwRXVtVEpV'@; put 'Y3laTkNLWklTSTlWNFpieDNpVEtQbTYzbUUvT0w1VzRGV3NGV3FHV3pvcXhoVnJwMTMrWWYrVTBwZllmRmpSN2FqMm5qbWZoS2Z6SEZKckdTS0NtU0pobVNKZG1TS3dXeVFUWnI3WmZHVzYxOXlHd3gyODNQbG1FRldFRldpRk43cUpYMlMxdDlWQy9VYy9WVXRhdFc5VWcxcTRlcVNUV3FCbFd2'@; put 'NnRRMVZhdHFWTFdxVXBXcVFwV3BNNnBVbmVoODA1blZtZlQ5azZQY1VlRElkOFRZQjlyOTdENTJMN3ViM2VqNDJ2RzU0L0NIa0hmSlhWNzlwK1p1ZUR1VDRJOWJCS1A3ei9pSFJ0ZEpGMXgxZHU1NDRJa1gzdmpnU3kvODZFMGYrdUpQQUlIMG96OERDQ0pZWnp4SXB4NktTWmhPSkJ3Ymc0a2dr'@; put 'aWlpaVdFSXNjUVJUd0tKREdVWVNRd25tUkdNSklWVVJwRkdPcU1aUXdhWmpOWE1aREdlQ1V4a0VwT1p3bFNtTVowWlpKUERUR2FSeTJ6bU1KZDV6R2NCQzFuRVlrMWFIdmtzcFlCbExHZUZmdjhPZHJLYllnNXhuTk9VVTBZRjV6bEhKVlZVYzVFYUxuR0Z5OVJ5bGV2YzFCVDlaUFEyRFpxbGU1'@; put 'cW1uMjBWcTdVZDBXemdiTGMzNjFtaisxMmMrTzFXNFY4Y3ZFQTltMW5aWTJVdG15UkdqMXZZempIc09DUmM4eGtwVWJvQ0lyaWpkeDZnYVpZRVhRL3gzV2VLbkdIRXNvMjliR1VmZXpqQVFWMUwrem5DVWIxMW1GSk9jWkxYdXBwNnNVNjh4RnQ4MkNoK21uL1BINUROcXVoNDJtTmd3QUw4Z2RD'@; put 'WndabHBQUU1EMDI0bVZnYUcveUhNMHYrTm1YYi8vOEowakVudy81Zi9maUErQU05UERWaDQycTFXYVhmVFJoU1Z2R1VqRzFsb1VVdkhUSnltMGNpa0ZJSUJBMEdLN1VLNk9Gc3JRV21sT0VuM0JiclJmVi93cjNseTJuUG9OMzVhN3h2WkpvR0VudmJVSC9UdXpMc3piNXQ1WXpLVUlHUGRyd1JD'@; put 'TE4wMWhwYVhLTGQ2emFkVEZzMEU0YlpvcnZ1VUtrUi85UnE5UnFNaE42eDhub3lBREU4dXRnelQ4RUxYSVZPUkNMY2RTaW14S2VoZW5UTFQxMW96WnI5WGFWUW9WL0h6bEM0RUs5Zjl2TXhiVFY5UXZZNnBoY0FTVkdKVUNnSVJKK3hvazJZdzFSNEptbVA5SERQdjFYMEJiNXFSb1A2NkgySkdz'@; put 'SzZmMFR5aitkQUtneUN3eUxTRFFKSlI5N2VDd0tHMEV0Z25VNGpnV2Rhcis1U1ZMdVdraXpnQ01rT0hNa3JDTDdFWlp6ZGN3UnIyMkVvODRDOUlsUWFsWi9OUWVxSXBtakFRejJVTENITFpEK3RXdEJMNE1zZ0hnaFpXZmVnc0RxMXQzNkdzb2g3UGJobXBKRk01REtVcmtYSHBScFRhMkNhekFR'@; put 'T1VuWFdvUndsMmRjQnIzTTBZRzRKM29JVXdZRXE0cUYzdFZhMmVBY09ydUxQNWJ1NzcxTjVhOUNlN21EWmM4QkIzS0NwTkdYRmRkTDRNaTNOS3dvS1RIUzlSSFJrdEppWUdEbGhPVTFobFdQZEQyNzNva05JQnRRYjYweWkySmZQQmJONmhRUlduVWhYYWpCWWRHbElnQ2tHSHZLdThIRUM2QVEz'@; put 'eWFBV2pRWXdjR3NZMkl6b2xBaGxvd0M0TmVhRm9ob0tHa0RTSFJ0VFNtaDluTmhlREtScmNrcmNkR2xWTHkvN1NhakpwNVRFL3B1Y1BxOWdZOXRiOWVIZ1lCWXhjR3JiNXpPSWt1L0VoL2d6aVErWWtLcEV1MVAyWWs0ZG8zU2JxeTJabjh4TExPdGhLOUx3RVY0Rm5Ba1JTZy84MXpPNHQxUUVG'@; put 'akExalRDSmJIaGtYVzZacDZscU5LU00yVXBVMW40YWxLeW8wZ01QWEQ4T2hLMEtZLzNOMDFEU0dETmR0aHZIaG5FMTNiT3M0MGpTTzJNWnNoeVpVYkxLY1JKNVpIbEZ4bXVWaktzNndmRnpGV1paSFZaeGphYW00aCtVVEt1NWwrYVNLKzFnK28yUW43NVFMa1dFcGltVGU0QXZpME93dTVXUlhl'@; put 'VE5SMnJ1VTAxM2xyVVI1VEJrMGFQK0grSjVDZk1mZ2wwQjhMUE9JaitWeHhNZFNJajZXVTRpUFpRSHhzWnhHZkN5ZlJud3NaeEFmUzZWRVdSOVRSOEhzYUNnOGRzSFRwY1RWVTN4V2k0b2NteHpjd2hPNEFEVnhRQlZsVkpMY0VSL0pzRGo2dVc1cHpVazZNUnRuelltS2owYkdBVDY3T3pNUHEw'@; put 'OHFjVnI3K3h4NFp1VmhJN2lkK3hybmVXUHlENE4vaXhkbEtUNXBUbkJ3cDVBQWVMeS93N2dWVWNtaDA2cDRwT3pRL0Q5UmNZSWJvSjlCVFl6SmdpaUtHdDk4NVBKS3MxbVROYlFLSDA4RU9pdmF3YnhwVG93anBTVzBxRWthQVMyRHJsblFOT3J6N0sxbVVRcFJibUsvczNzcG9wanNSUm5NZ0Nr'@; put 'bzVLYXhzT3p2cEVSYVdEdXA2ZlRSd09WRzJvdWVMRFZiVm5HRnZRZnZZOGpOTEhrM1VsNjRLU250Ulp0UXA3eklBZzY1a1QyNEpvSmJhTyt5aW1KS1dLZ2lQZ2h0QmZ2dFkwUW1MVE9ETG9FaVpIR3lzZy90aWgwNW9vSjJBdDk2MGlydjIwTHR6M1h5SURDYm5XN25RWmFSb3ZOZEZmVnFmVlhX'@; put 'MkNoWHI5eE5Id2ZUenJDeDVoZEZHVTh1ZTkrZUZPeFhwd1M1QWtaWGRyL3VTZkgyTzlidFNraysyeGQyZWVKMVNoWHlYNEFIUSs2VTl5SWFSWkd6V0tVUno2OWJlREpGT1NqR1JYTWNGL1RTSHUyS1ZkK2pYZGgzN2FOV1hGWlVzaDlsMEZWMDFtN0NOejVmQ09wQUtncGFwQ0pXZURwa1BwdWRt'@; put 'dkN4bExnc1JkeXpaTmRGOUIwOElSM2l2empFdGYvcjNISVUzS0xLRWwxbzF3bkpCMjBmSytpdEpidVRoeXBHWisyOGJHZWlIVWszNkJxQ25rZ3VPUDVlNEM2UEZla1U3dlB6Qjh4ZndYYm0rQmlkQnI2cTZBekVFdWV0Z2dTTEt0N1NUcVplVUh5RWFRbndSZFZDc3dKNENjQms4TEpxbVhxbURx'@; put 'Qm5scGxUQVZoaERvTlY1akJZWXc2RGRiV0RybmNaNkJVZ1U2TlgxWTZaelBsQXlWekFQSlBSTmVacGRKMTVHcjNHUEkxdXNFMFA0SFcyeWVBTnRza2daSnNNSXVaVUFUYVl3NkRCSEFhYnpHR3dwZjF5Z2JhMVg0emUxSDR4ZWt2N3hlaHQ3UmVqZDdSZmpON1ZmakY2VC92RjZIM2srRnkzZ0Iv'@; put 'b0VWMEUvRENCbHdBLzRxVHIwUUpHTi9HTXRqbTNFc2ljanpYSGJITSt3ZUx6M1YwLzFTTzk0ck1FOG9yUEU4ajAyOWluVGZnaWdVejRNb0ZNK0FyY2NuZS9yL1ZJMDc5SklOTy9UU0RUdjhQS051SDdCRExoaHdReTRVZHdMM1QzKzBtUE5QM25CREw5bHdReS9WZXNiQk4rU3lBVGZrOGdFKzZv'@; put 'bmI1TXF2Tm4xYldwZDR2U1UvWGJuWGZZK1J0bE03b3NBQUFBQVFBQi8vOEFEM2phdFgwSmVHUFZlZWc1NTBxNmtqZnRrbVY1MFM3YnNpVGIycnhidHJ4S3R1eXh4K1BaUEo1aHh1TVpHQWlUR1FqTERFc0lKU1NrU1VOQzJnUkNDRHhhYUZrbXdMQk1GZ2hmU2lZTEpDOXRtclJaMnJRcDlBWFN0'@; put 'RWxMK3NEeSs4ODU5MHF5SmM4TStiNEhZOG0rT3V0Ly9uMDVRaFZvYVQyQ1B5dllrWUMweUl4c3lJMWFVQXgxbzM0MGdXeEp5L0JBWDA4aUhtbjFlNXJxYWkxNm5VWkJVRVY3UU9uVU8wVnp4T3cyUjJMdVdDUW1zbmNSZnBXZjBtZjBuWDRDVDJMeTcxSWIxaUVSaWVIUDVsN0cvZjg1TlB6dzhQ'@; put 'REREdys3bk03aDRlRkR3ODdiSHo3a2NoNXlQdnp3dzg1RGgyNGZHM3Y0OEpqanU4SWJLYWZYQ2Y5dVBlSWFHL01jZ04vR25IM0Rya00zZEZuRHM4ZVBQM2I4K0d4NDFSbDJ3aitFQ0pwZi94MzZHbm1DN2MyYmRDR00wUkpDcUNhRENCR1dGVmdRck1LVVFxSFFLbXE4ZXAxU3RBYU1FY0Z0OGNX'@; put 'aThVaW54V3hTdVpmMm1tS0N3MkcxTkRWWnlCTTV3M2NkVnJQRFliWTZFRnBmUitQNE1ieElIdFM1VUFWQ09nRmVuMFowWGorODNBRHoybEVUdWlIelpPZnN6bVN6VmtXUVVpQ1lJTHhTaVRXYW1reU5ybG9RUmZWU1ZRVlJxL1VaQlNaRVM2YnNTUjk5d0Q1RWF2RndhVCtwNGE1a0kwSk5qUTMx'@; put 'TUkyOXpsWnJoUVViOWZuL3hJWUFGaU9pVzNRbjJFOGl3bjRpSXZzUjZZZjR2NkxYYXE4TkRnZnZnWi9qMnVQUjkydFBTSDlkbzMzdW51ZzkrS3V2OWo4Ri8vVy8ydjgwL05mL0trQXl0SDZXaE1uYnFCRjVVUnRxVHdiYkFpNm52YTdXYWpaVVZxakZHa1NVQUdhU0JqQ1EyeEJHK0VNQUVpdWFh'@; put 'dExyQlFDd1J3Vm9FZlA1RXhackxJUmowUUdjQVBTd1dFV2YzOXlJelFnZTE4QmJQQmFGQnlSOC9FajJwcjBkMDNzdjI5KzVzeXQ3MWE3MmlabkwzNWM3M05VYlNXSXltUnEvL0VveE9hemIzVCt0WDdQTlp6dTJ4OFgrL3BxNS90R2EzOVR0bk1mMmR2MVBOVU90dVpHUlVEQm1lZ3NXb2tUaDlm'@; put 'OG1iNUpuQUNPTWNEcGgxSXUrbFhteUZrNG9VSW1WRlJpcmxIZ1ZxWkJhbzFJZlFRb0ZXaWFZWWt3MWdGNVlyaEtKSUdpRktYdm1TVDkwQ1Yrd0M0S21ySis0WElWRjBTckMyVWJLOUNBRTJ0SnVxSHl2WGJ1U3Z2WjJoOE5rUXFpOXQ3MG5IbldFSGFGbW42bkoxRmhYYXpUb2RiQ1pHbCtOYUE0'@; put 'WU9FZ2puUUJLVXcxMjR3aDJHeWdzM1M2VjJXU0pvRTJmRCtEQ1oxK1liRzZaRElYWUsvN29jSzUxK05wNG9yVTEzdFdDWnlkYjhoOEYyTU5FSzE0S1pVTWRNNkhRVExoOUpvam4xcmJodTFPZGtaRlV0RE9WT3hpY2FRL1R6NkJGTUo2S2RJN1FqMkIvQW1wWi94MDVTWjVGRGhRQVBqT1E3QTBI'@; put 'dlUwTjlYVzFGYmhDSUE2TUJKS21HSTZYZ1Z3dEdTVVFLWU1Nb0ZCYm05UFpGbXVMT2dQTzFqYVhTclFFbEg2VjIwWDNGRThVN3d3K3NzWVRWcFZvUmJBMUs5K2xJZUh6QTJyQlRrbHc5OUkxL1FlN3BtY2I2NE96bmNGMFlQdjIvdjN0alVNZG9mZm5QdGNWbitqdjhEVk5uaHp1R1p6dkYvZnNE'@; put 'Ky9zVFIxMHQwejRncE9Cd0dSZ2NObzV2akkrMzNEbDBFbXlPeEtJajliSFc1cmpheTlucjV1MVo4SzlZNER6d0JmUWcrUkJWSU9DbVNkYkFGRXFLZXRoNTRzQkNYU0kvcmtJZitJbFNpSFR1NTYyZUFsc3h4RExzeDdSSkxwMzZ1MUdvMTB2dHVFZmtlT3RScnZkMkhxY0JLREh3UG9PbkNCZlJ0'@; put 'Vkk5VlMxRXJjSEdNdEtXTm4yck9Lang0NnROQzlzMzc3UXZQQ3pXMjc5NlVMcnpoYytjTzI1eFFDZEVPaDNCL2JMZlVYb3k4SGpUM0RBaFZpL0ZSamg1c1Z6MTM3Z2haMnRDeis5OVphZkxiQyt2Zmc2dkVTK0Nqc1pUZzR1VG8wbi9QVldVUTJjS2QyUFVUVWMyaVMwQXVRbk55RWlZQ0tjb2l5'@; put 'V0g2UXdCU01zbzMxenMrMGhsME1wbWdJR3R1WjRRaVhDLzI2WHp3OS9KK0tEMk05L28yZHB0Y0QvUGo4N1lNNlFvUzN0US8raS9FNVVhYkdWL3diWTdLSmQvUllyMjRuNzYxbzFGaFRWdGMxV3BWSlZwVkJVMWdjRGdXQjlwVUpScFZJcHJNMjExUW9CcTdVVkZmbDJDdFdGMnVIcnFqWFdpRXJi'@; put 'cURHNUdPTldWcXQwT3IxZXAxTlZLOVdpS0ZTN1RKcEdyU3BpMVZSZmVrc0cxeFE2U21wSUZGVWlYOUtOWURyRkF1QTlBQklMYUFWWUEwVVRCWjVtZkYybkV1c0MyRTBsYW94SzFnaXBlVEh6SXZ6RExTKyttSDdwSlRyZTlQcU42Q1cwSC9EUG1nUXlSK015K2dFUmVRd1UwNEE4WEFVeEo4NDBW'@; put 'MWxBeXRVN0hjR2pvVEFWZDBGMzQyQVhIYXNML1FyMzRpaFFibTNTekJCM29ZQzRlaDBkek9nME83dXdrRnZEMFVtMm4wbVF1OC9BL0pWVWc2QlBnQ05pYk1VVUJ5cFJoVWNBVmxVc1pZOUtFcllxTDEzeCttL1d6K0tIeU9zd3J6NVpRd2NGWVlKUDhna3BXOE16QzdrSEZzanI3NzZHbU16dEJi'@; put 'NXlMVGtIckxBSnRTVmJnS3V5SFhNT2drSFlzd1hvZ1BaMFRickdXZ3ZqbVNDTUFvck5QSkhFb2lGQUprcE1qVENUNm9PVGt4K2NuNFBYVytmNzlrV2orL3I2OXNWaSsvcXE5bnh4ZGZXQlBYc2VXRjM5NHA2SnlWdm41bTZkbUtDdkhBWjFsQlJBQjFBaGU3SVdqbElBZUtVNWg4ZFlpNmYwUmdZ'@; put 'NjBaK0k2TjFQWCtkNlpEQkxack05SjlhMklkYS9BelpWQ2Z1eG9kYWt2Nm9TdGdQWVFFaWFnWk94UnFyRUxDRW1qL1JXajE4aDFnWUdNU1ZtdW5xVjZJOUx6RkNMNFh3NjNwa1lhaDcyZHUveUpaWSszWGVvTjdQNE5GN0srWVorT0xBYWJlNTNkRVdDSCtyYzJ6ZDZZK2JlTkorL0dlQ3BoL2xi'@; put 'MEdDeXoxWUxjN2t3a0RTc0F3dFV1QU9WNHhXWVhiRU1DQXFMQWRtNnJNSktwVlZKVDdrRk5YczhUbzlYRkcxdzBwUzVSRHFwSEFyZ21OVWlDYVRDQ2tVSjlOKy90VG51UHRRL3NYUGYvR1I2ZlBmaVVIeUhQN3JuRTBPcnZabWUvc1crSzhlcWhtS1JVSFNpdDI5Z0F1T2g3dmhZWnpoOGZYZ2hQ'@; put 'akNucjlrKzByMDd3bkdoR1Y0R0FQWVZ3T1dDeWRZcTRFazRyVkxDSGpBQy9mVXdnSStKWEsxaXFyS3lzcnF5R3VqS29LTnI5VHI5T0tLbkdxdzdwc2Y0enR3akZYaGg5K3BxTnZmN1B4L0NyK1FHeC8vODEvaGc3ajRPb3k2QVVTUE0wNGo2a3QwbWpCWGFHb0VvNE56VENGNlJBb1M4SUpBbEx1'@; put 'RTNBcWdSTmJqMFJxOUhCcEFsMGlrSlk5RlA2VW1NNXhIeVo5Y0hJenN2RDZkYjlrN01qWGRYNEh0eVo4V1JtY0hWL3NIM2pWWDFSTHIzTjQ4Rmh1ZGk5ZmhBK3ZWUTVNQndhclVMWU5BSGE0dkErVFdnVnNxdERYbzRPMzhkVVNwSVdnVnNSYUVVRktzb0wyWkZXSmpNSVJwQnIyeHNiV3p4dXFG'@; put 'enZkZnJVNFBlaHFURlVLNUJpUVhFRENlU0JrQzVpRUZXSkVSS01YY2RIUmk0YXV6Mlc5STNUL2Z0YXdsNEprTHgzVEhIU3I4bjA3eHZmR2lwV3JjNGloK0RoUTRlNmZ2S3ZTdC9jYUMxdWQvdG5ibGptNll6a2Z0SWNNSS9DdHVjTzBEbERaeGpGYU9ocG1TOUFnaUlVUkRsUFpqcDhLQUZnL1pE'@; put 'MVVyc2pEbk53QlNleU4yRnY1LzcwVzZ5a3U1ZHU0dnFHMUdBUXl2QXdRNXc2RUVqeVNHVGlnQ0hUWXRGUUpBNGhScUFnT0dNR0tjSUJPcnJFUXIwQkxvakhmV3Q5UzBlRnd4UjE2YWhyS3VjeGlIQng1QW5RTW85ck5LZi9ockNtTWtiN3g5ZVNBMU1ERjNSUDNERlVLWjNlR0g0eEpobkl0d3lI'@; put 'aGphMVQ3dUJwVXBQdXZ6emNaQnFhcHFYK3dlMkd1dTNkYWRtRzhMemlkNlp5Mld2ZjNkaSszNEU0MXhyeXZlTkJMeHhSdEk3bmxIdDlmZjU4VFkyZWYzZGpzWS9tODZlNGNCanIxQ0F6WUVnVzByZ1hDVlpCWFFYNEM5Q29JbFV5UWQ1TE9IM2NMWis3eGVkdllXNmVnNUhRL2dma3ovbFBadm9K'@; put 'RGc3TklTd1UrVm5Qb2d3NFlVTy9ZT2lnSGszT1pUNTdpUSt3ZzlkbmIrc0FjbVEvQTZ5QXNyNWVlVWY3TkY2cm54cHVUR1cxVVZRbFhXS290Qnh3UUw1ZWVHSXNGQ3lnZ1pxL1NPNzVhbFRlNkEvQnZZZEV4MjRuV3c2YlF3bVlqMFFNYjNJODBaakovRDl6OFpDVkM2VDZDZE9FY1dBUzlWVDZr'@; put 'STZGREdtTmRjamMwSjRCQzM0ZE80cC9jWFk4OC9QODdPSW9YT2tScjhUNENKSW5JbG15aitVbE1PRkNTQkxFZ3NuQWhVdHVzb0I2ZTBULzlQNFcvbll1em5uOUtmVE1PY1UyZ25NY3B6Q2pCbklvaGpTck55Q3ArR09WL0pkZC8vL1BOanYrajlCWjNUdnY0Ny9CcWNmeTN5b0VReWFxbXFwR3dQ'@; put 'VTdZdHdNUTNGY2tReXNDVldLR3dLcVpzTnB2SDV2YldldndxdWhCWkRoYjRkQTBHMjYxWWJqL1hzeWZpSEdpT3pua2plLzlvWUg4MHNxZG5SaStEOTVUUzArVm9Tamc3ZzVFVDdkc2piYk85VmJjVW1jOTBuVzNyZHdtam9DY1BvaXgrSnZOa0JXaktCcWVEcUlYaEpvT2dVUGYxRWtEUU5CaGJW'@; put 'UnMrMFJSOVl0cWlUN25tdTNidDRwTTBWMnFJQW1TQ2luSm9WUVVHcmZJZ2toZ2dNQmExV2xnR3dPalZVOUxVUVRDOEZWaXppQzYxaytrOVR0TDBoMHhDRFlzQUhLaGFJNmhYTDlwWkNZWkhCeFZDQWxLdWJ0MUxGRldBWXlweG1YV2YyVVgvUzlZbWt3Z2xzOG5waVRFNHF3R2ZyOVhyOGZtcVJI'@; put 'dUo4dVNpTmxhUmtBQWpySU5abDUweVg1VFVxazVtcm9BQm11RGFnTVErUnA0ODh2NFhyejcwMk9Ib1hDalVyMjZjNzVoY1NoM3I2UncxVktmMEhrOWpZN2QzNmI0OUs0K3Y3dnZDM29HRENVUFBWU1BOTzlVNEhndG13LzJSazRjZk8vUytGNDhmZUdnNWUyVTgxT3dQNzU4ZU9aRUtlb2FWQzJl'@; put 'dFRlNld4ZUdGVHkydVByR3k1NzZsZXFmZDYxaTdiRXJVUm5xaU96cGlReFFmQVMzSkQwRGVpS0E1QkpMTkdneHdTUU4xQUxrb1FHdWdZbHpBVEh0VHE5VVY2Z3F1anRlQzFpQXlVOXRmaVVsMzd0YlJCUnltLzFidS84Szk5NUluMXJiOUt6NmErd3pBZkIrTWZ4ekcxNEZXNTBMOXlSNlFPRENE'@; put 'Q2pnQ3lHVWxWYWNrQjVXSXVkWlA1N0xYR2ZUT3BqcVgzVlZyMGRzTXRqYUhtaW5kR3dXUEUwc0tsdGtvLzdJUDl5WjJ0SGQwOUExRmwzcHp6Mk4vOStSazk0OS9tZHkyTGZsTDhrUmJ0aU02MXRDNHB5dStveDNmTmREZVB2Q1QzTG54cnE3eEhOTnRxTno4S0pNaG9XU2d6bFpaUVhFa0xZc0t5'@; put 'd1lYR2p4ZzBzSkhYV2g1bE1pckNNVUhqaE1QN3QvLzROTFlMUjB4MzBwaThuUW1jM295c2VLTGRkd3lWZ1hudHZ6Z2dVUm52Q1UwZlZ0bTZvUFpVRXU4ZytveUZHNHZNSDNPekN5a1BKaVlvMEFDVTFXbHlWQnByakw3d0xvRThNZ29HY0FKQ2ZjQ1dML3ZqV09QTEM4L2N1eU5OeFp1ejJSdVgv'@; put 'Z3NlV0xudlFjUDNyZHpmT3pVek15Tlkycy9aM3VmZ2ZuNllMNUtGRTYyeVJ5YjZtNktKUkNiTmNXYU43Tm9Lcm5IRFZRNW8xbmkzM3FuK2ZQNG10eEg4ZWR6UnZ3V1dmbEYrdC9UNUFsSnQ1YkgxNkNXcEU4ZW4zSmhOcXFzMnNBSEdxU2hJek4rekVaMXkrUE84RUZ6ci9CQitYbmREK2ZsUkxG'@; put 'a0o1aEpTR2dpUktGa0JvTlNnUmh5a1dVWTJVSTFYOGIrUWNzeHdxRzV1VW5wMUJjSjlkTERpN254WGRqWWZ2ZkVFanZBaVUrRlk5N3J1dmtCdHEvNnZvRXZ6LzIydlpzZllYZDczTi9PajlEZDhGQmh6N2N3bVBxVEhrazlYZ0dkbk82WCtzdTBhRE1zTWQwdC9FVGdsZHlTelYyUnplSlBVM0xD'@; put 'M1hUYnViL0JiWHhjZEIvejhScXBZNlZnWDNIVEZJeXJtV3lXOXFJMkdjakZ2MmIwQjFqRVRCbUcwVXc1SjhzQ0lKT1ZnVjJIdEVhdkFyb1hUQmRZQmFXeUp6L1ExRzFhRFBkbnM0bURnMVhKenE1QTE5NUovRnF1WStSWUg5L24zdncrSGNrR2pWcEptT1RGekNNb2NNK3QwV0Rnc2o2aXh4RU4w'@; put 'QVNJMWIxWnZIYzE5M01jWGNtOWN3eldtL3NRUHBYN2E4Q2Y1UHRmWmVPT3dMZ2FHRmRKZFdHMmFEb2FKUTBKZEVxazFPdnBvcjJBSnhFOTBlUjZzMm5BdWJYUHNmNlVobjVmV0pkWVpsMG12Ynd1RFJoQmJuMGxuTUMrTEZwSDY5bnMranBkbEJQL2ZHMGJFZG43LzZEOHVBOHhYRzVNMmtWQ1Nr'@; put 'WTE1RWZGc0N3M0d4TS9tczNtZHRCaitUNEp3NGpodGU5VC9rdHgrTGYvUDJ4NHpuVDJQYkIvL3dQN0prK24wNmNuT2VKS0xPZkFnOHZMRHgyWXlINXdLblBiTk1kYnBwOVFuRDBJZTZzQ3ZnTldPS3dDU0ZYQTFDVlRDQ1RBRm11cVRZWnFjNDFaNzNPb2FCREJtZWM5WnJmTWx2VXoyRHAyTXBV'@; put 'Nk9YWStpelVMcTZzTDU4Z1RYU3VEZ3l0ZGIrT2g3TWhJTnZlVFloaVlhQndtMlVrZCswcWlBck5TSU5RMVdqRFpGRVdlVWJQWjNHSnVEdnY4bEFHREVMZUsvbUppcG83MWVNS2ZzRzRTd3VTM3pkN3B6dG53OGY0bEdVQzVWN2U3citpOHFxNGhEeU5jZjNVNDFUUG1EK1JobGZ1WHB2cWxubVhQ'@; put 'WXFnWVhFWHdxb0UxZ2Z3RWdhSEFzaW04QXBxSXhONGtjdmQ0bkhxOWtmSWV1bUszSDJ4dVBZT2NVdllWa0lOSDVyKzA2L0d6V1FhNlhNODVCalo4MndsRDd1MjNHZlErU1FFbitUWC9pNFRKbHdGcUlLOXFyUVFrTnNGRjRLTE81eUo1MVlLYXZVRVBCWmRGdG1xb0Z6UkVTdGdmOXljQ09POTdY'@; put 'MGY0cXBISWhIZnhzc3lCV04vUm9jbHJJdTF0aDJJdEk3NGRCNjg2a2JocXV2TEsvbkRVbVhCRUUxWkRXNlk3dmpzYUNmZTNocHlKcG81SWJkMnU3VjI3bzJ5dFFZRFRKTk16dUc4b2I5SnlaNDVrQ21BMzJMUnVvQmpUNjZUKzlTeVl0R21KbG5jQWpud0srcHVSTTlrb0JSc3dMdDZlR1psTUhw'@; put 'TXNqaW56a3ZZbzhUSHN1bTB5RzEvdTYxdU9aeWR2bTYrYXVtTUgvbVR1cXFIVm5wN1ZJZnJiamp1bU9IM0xPcEdLenFWa05qaHdUb2xwY3M0REpnbm5QSlNYQWU4Z1A4aDlmd0grWVJCcGxQUEN6eGt5QTJONUVWS1lHRDNCV0JXVTl3T3pvS0V0SnNyWjVvRmJHSFJLS2tramRrei9DZTVLN1Bi'@; put 'dS9Pclp4Yk5mM2ZtcjZhKzlPQTNEL1ExcFl6L2J5T1RhczN5ZElFZkozWXkvQVgvVXFHQm9PSDdLZ21veW1PT2J3V0RRVTdqQ0ttRklEUnNkWkpxNC8rLytiaG1MdWY5aDd6dHpmNEZ0dWRmeEl2ejJPcmJ4c1EwdzlzZGdiRFZxU05hcEJLRERQSk9UdkJBR0Z0eVN4b1FqOCtkK2RlQ25QOStY'@; put 'ZTNNTzErTFA1SjdDMDdtanVUZm9XRDB3MXJncyt5azhDMjY5dkY4ajc5WXo2Tm1LRTl5OUFRcEFEK2dUUnduSkhjQVBydjEyZ1BqVEEycy81dkovMi9ySGNELzUyU1ZhbVJGQUxQalo5dWFqajc1SmZ0YTk1dXlHSHV2dnJKL0ZUMnpoY3hWQXYxVXU0R1h1Y3NXb0ErWnJ5TThuK3dPcGFrYjl3'@; put 'M1ErVkpqUENvdy9CajhkTU4yYlBlVG4zZTgrUVllUDQvdncweHkzenFnT2pTUXR3T0dabHhSbXBoN2prNUozNTR3S2pSZ2pScmRmZFArbzk0R2htMjVPZ2l6NjlULzhBMTF6YnYzOVpHNzlHWmpPd2NiWXdrZE5oeEFCZ0lSc1gvdXJUSXFmNnlCSllwRjhEL3BhV2Q4cTZEa0JuNXcwZ0VqbXN5'@; put 'YXM3c0daNjN2SVZ3MmY0RHl1RTNTSTN4QTlzaU0vK2tIU1pNT0NvaGFFZ2g0MCthWkdwYUJTS3RMY3lIUkFZNldLVUdNTGJHeXEwTnN5YXF4U29XVUpIeVhqMGxPbUhTVXQxbGpXMHlTYjh1SmpYdHB3MUtnelUvOVd2Yi9lNTNKUXo1Ykg2elpxNEtpUXhReG5WV1RFV1F2ZVdnT29nWEs0RU45'@; put 'K1JjYStFcCsvUExHVXlPNU9UcmtuQTQySGRsZ08xa3pOOXM1UGRoSDlOUWR5MzlqVzFyRTcwemtUYURBT0x0b3MvWjA1YjNka3h0d1hDaWVRRko4bkV5RHJER0FOUFhkV1cwR1VJQzg0OUJvQWFYV1p2SlBLSm5rbzZUYXRlZEE1TnplaXF0OEdYNllFdDR1TWRna0RVWWlaakVhRWpDNmowMjZE'@; put 'SllQczJ1UVo5Vk9pMHN2dTBHTDk0NzRyQndhdVRQVWZhTXhrR2cvMGUyYmEybVk2TzJmYjJtWTdpWDcweG16MjFHaDM5QUE1bC91M2FIZk9COFphNzk1b2RHOXY3MUtVNDJrNzROemJnSFBsYlRIYjFyYVk1WUsyMkgrZG1wdzhOUjVkOWticlJueVJ4UWo4ODQzWm85NERzYXIwNlltSlUrbG1U'@; put 'NlRla2RnWFR5eDFPUnNqM2xaNlpuRTRzMEQrelBSQzhabFIyREV3TWtPakdNb0ZkSGR1YnNTUVUyU3UxdzI0ZnBIUkxtR2cwak16K054NmVtWllRdkVDZVBSa3MyNFVvRWVWa2cvdUZEdXRUblp5NU56YTZJRm85K2lwYlBaR09EaHNYVHUxK2N3SVBUUGlnVE16bzNwcTZRT1BGd2hUaG9pZ0lD'@; put 'djVaZG95cWlJOXptSUJiYmZlWXJmVlVnbHU4REgzcTRlZlZtR3haaWRkbjBwMHduTHh3YVhha1BNRFhhUFhUWTVlTTNyeTF0d3U5VXBtOGxBRjNxdmVrVTU0NmpvOGJXT25wek9ueHI1NDUvUmwrRE43MHVrOUhLZEFGdVB0d1Bzc2FIZXlRb3RWU2gxR0twTG0yU3IxU0tWU0xvUEdWc3NjSG1o'@; put 'SmdTWFBLOHRRcVFOalF3VmNaclgwdzEzSkNvK2J4U2xGMGM3bGpKdnlmdVkwNUVpb01yOTA4ODJaYmR2R0UvRldyNlplYjNVU1pTbzNnTCtlR3U5Sk94T2FLbTg5MDRPM2t4YUFIODNSK0hheXFsRkhWRXFObXZtd0pmNEtEQTFram9xc1VzMXlXVlFRaVhBWk1JMEYvcHB2UjVraHJKTzJScVZ0'@; put 'VFpjMDVxVU54L2lyQTFRbm5xa0JtMmp5ZWIwZXlsK3h2dGlYSHQvZ1NnYzhqSlhnWWN2UWlYVC8xUjVuNDg3MlhZY0FKVWVQOWZjZkc5Mk1rc3BjNS9CcWo2K3B0OEd4ZldwN2Uyenc2dkh4cXdkaTdidHloMExib3BGdG9kQzJTSFJiaUovOU5DQ29BbWpZVEtOakJoNVhZYlFFQ2p2ekJ0dUtU'@; put 'SEpBUkwzSmJhSStDTXJxNERnbGY1MWU0bmI0aGwwZG1ZbnV3R1JiSm1OZGloTjlaRTlQN2xrOE9EanJHWERubmdXMjluWnJqTkhFSUx4K2tmdzE2R2hhNmdYSSsvUnJLZkxvTTdKSFJWdFRYY1hjK2NwTjdud1JWSWk5RFExbVUwT0R5WmZKa0lPTkp2cXJxWEhmMmpzdy92b3I2MWxwZkR1bE9T'@; put 'M0k1UnBRUVVsYVdUU1RJREJjVmV4WHdVYnRDaDVDc0ZmVldTMUdQWnRWTEFraUZEc0JWUGtWWEJYVVZsVjV0YmFtekhpaXNKUjNmNlVSQjVRcVR3T0pySDIzaCt0bXdKcFlMTFVTdVpNT2pRTG9YV0NtaVk2dlJ0WlA5VWFtN1dHcTZEQlJBckJ0L3NtK3A1WXlHV3pmajJ0emIveHk3NTBBempi'@; put 'Y3lNK1JIczluWUZ6Wjk2RXI4WDFNQVpTQVcvRzJRZ1RveVkzKzlLeWpqcmsrT0IxWktCRXJsOVdpU2xBcTlSa0ZqVFFYMkRXUU9qeWtUVlRRaEtoVXR1SVdwZ3YwdjFCWFNoOTB3VzdrY3V1TmJxUGJwQUZ1VVlSZXFnMi9STXljT09DVlBMazluRWxGQjdMOEpXT2FpZlRzTk92MjloYWhYYWJv'@; put 'blNpbldzSzlrYzYrQXQ1VG52emhaemphY3hBWW1mV2twTlN1bHpGZjJyK1Y0MHNKWVVpYkw5dHp5MDUwMjlVWEl5bnpKWkNVY2g0b2lzdVljZGpQSm4rSjdhTCtFc3VGL1NWY01SaS9jWEx5eHZGT3FoZDBjdTFBVWd2U3B5WW1UcWRUWFV1SitMNEVWdytRcE05dEIzMU9YMTZmbzNKYUJXSVFD'@; put 'TDJnV0ZFZ0dYR3hQcWN2VmRNMk5qUmRmTFJMR09pUzlEbjVPUDRnZlM3M1czTG1RRGw5anVwUTIwR0gwcGZWb1FvN3N4VXBNNWtOSW8ycFB2cE5xdEhtaHFhTGozWUpBMTFRaDlKZlRIWmRRSWRTcnMzZzZvSVNkU0RYV2FyM3pzUExZWUJURmJyK0daN0V3WUdrWjZKV3dKTHVTM1VTRGhpelRI'@; put 'Z0Z4WmgvYUNyZmE0c09zT216ZWhPM3ZRM3hpRGxQbXM5Y1B0NnpKd0xzK0cvNlU3Q0ozTTlwMEFhaklPam5MOEk2ZmFnakdUTERRaTFnYkNOUzhOYlpOcnVmZk1qckNYRDNFMC8raUxNMEFUblR6U3I2NUF5Q1JrSmwwSGVPaC95N2RrUUdYWkhnY3Zid1RIaC9xMmQ2SXRSWEYrMUtqSVN1bUt0'@; put 'cTlpYUcycngxYmxPMWZTZ3hPdDlrNytsbzlvQW1hZEE3dWtOak82aStCMnZjVHU0R2ZTK2NiTE5nRlpQNVJMaU5pa2F5UkFNcEFBZXdKUGR6VFpUcGNFWW5WZUs4TkRzdnBwZlN6VUF3MFhCZVBJRzN0OFlUNDl1MlpXNisyV25WMTJ2TXpuUVBUcWYrK0k5VHViUDEzaW9ObFRuQW53QzVHYjhW'@; put 'YUVLYnpHK0JZVW9DZjdONVlKVS9vc284a3JJSEMwWkIyWjViZGlyd1c3UGI1R1pobENMTm4wcHpIcGpVRTRHeTJTNlo2UUp5dmdNY0ZwZ3Vuc3k5eEpndW5vVDkySUY0YTRsU3p1bVN2VUN5N3FzM01HK0ZrYnV0N052LzZwSHRQNTRBeld3ZVAwYjFFd3ppRGdrTzZGL3EvOUpmMlAvbG5yMzFZ'@; put 'ME1mdTNYMjhmRTdQem9PSXk3akIralAyanY0dnR6QmdwOU9oTEZaRG1HRnFNQUtLdCtvRndYR0ZraFJnTVZnTUZERWMvcEZ0OUVmc1NZaW9oRS84Ymw3ZDM3enhaMmZ1bnZuMTE1NTlWV3NYbnY1NWJYYzcrbTRqZXRUeEFYajZxbXVXS2tHdklZaEFibWxvU2xlNzZkcnR6TzgxaU9kd2VTVzNL'@; put 'b1VUUWF4d0haUmc4VmpYa09kdTg2bGJmeW4rV2YrY3R1YmRWT0pwL1hKYWxOZGtvaTVPZno0Mmt2SmJzejNFb2VYVjJIT0xYeGsrZ3Y3eU9LNEkvZTMrQk81VjNFMGQ2UVgzemJlbXpzOXpzWU5yTy9HZThuendIVUJSamFtQU9nd25uQ3hERWxvc0NneEFveG05QmFxUWlsQ3VCK0RiSTVSUloz'@; put 'bXFsdHJpTm5LZzY0aXBVNFJheGE5d1ZnczZGMmNWdlgzV3JEWDUvTmlhMitmNnZQTkk3R1BkYllsZ3AxM3hWUE42cGltcnEzbEU2RkVkVTBpOVBIV29FMFRnMW11WEQrTEh0bkMzMGExdHl2NytxUUVSK3JmM28yWDJkcWJrMTQxODVQcE1ZSzE0L0ZDT3ZFeUJkVU1yUVlnb2lsZ0JiSHU1NGxL'@; put 'Q2NwZEVvMmtBUVBLbTEwcWVJY1RDZlgxV3ZtS0xiMzlxdW44VG81cmJNSFdqNGNTTmRXSjBDZGEydW8wTVhWektuNVhaekRSMXZteDJFaXplbjBkRGVCV2ZETitWQy9pNnZXMTNGdEljd2JoNTNKdnNRd1pLdVBtMW5lZ3J4SzlyT3V6MVZHRnhKYVJjK0tNcEVUWFovbzJUMHdGclREeWVTbVhK'@; put 'TGpYRkNONk9YZGtiUlQvV3JheHorSzN5VFNxUTA2S0tZME5kVGFyeFdUVVZTdEpGWS90d2F3TFV0a0hxSDkxTE9lU2x5QndUejh0UHFESENMSWVyR3lQeFFvaXpZeC9PQmZLOWgzczdqN1lsdzNPT3FOdEE0T2hhTzdEMmQ3ZXJLdFpPWmlxbmo0K09IaDh1bXFvWCtsdmluUm9jbGRXZGtaT1hX'@; put 'bkVkeGl2VFBIOElFVDZRUyt2UjZsa0VvNlRKcHdoa2VhMWkzaFNpUWt3WDVHd01CSXpIV25tbVNpeWlCSW4wbnBVVDNNRHdSNmdhckhYN0l3bFdMWnZzU3NIanBDbUtaTCt0Zjg3TkRDUU9EZzRlbTF0ZC9XT1JILzJXOTlLcDMyZWM2azdSbzcxU1JIS08xTG5pdjNZRnRTZGpKc3cwdUMwR2hh'@; put 'R0tTYzdyTUlFMUViUVpGY3FXSmtKejQrMG1JMEd1YVJFVjBtTFNsaDVqMWxPUUlZZlJ1RDRzNCsvOXRwcmMvRHorTytvNXh0UHBtWlRKMDdBQ3o1TTNkL2MvaU1MZUE4NXczSzZPcG5IMVUrVG5BRjVXUkJrV1NsUVFPR1pNbGxkMUJsYmJKUjFGdjIrMjA3ejVPM0d4NlIzc21BM0d1cnJEZlIz'@; put 'L2c3NDJvYWkrSWY0UlowTEIxUklKK0FBK283a0E1N0QxNUE3TDhWL1RIT3pCbkU4OXkxeVorSlMvY2RXMGYzY3pCLzNrTzhaYnVLOHpiLytLbDZITTlCU1d4QWhwaWpjUk1YdkI2bmdZaUVBRmdMeU1TbUFKZldxbDJwYk5CWlVNM3FrcCt2Z1lHN2dtZ0hjMHJHenUzdFg1MW9UK2ZPMVhUeEcv'@; put 'RlAwbDNnRWdOYVl0QmR4QlVMWnhVeFI4blc4Q0hxWE5UWmF6STJONXA4Mldpd05EUmFMWkZzT3JpZlIvOUFNYm5RdDI1dk9hZ0k4TnRJc1FqWGx4Mmt1cngxZzRJQmdWMXhOTTh1QVM2OFdHT2wrT3N3c0tKbXNDV0RXVFZ1MTRWTGFobXhHajhkRHBUUUZIYy9pZCtYVkk1WWFDOElxSHZuZi9x'@; put 'NVdXMWhuYkFBTngyUTAxZWljMFZxRkdQUTJlSUs2cWxhcldhODFWdXF6VkpqQXVVZmgzSC9HenIxTnBPZmVocjRyNVo2bDhUOHkvdVJCUGNtRXE5WmFwU0E4WEVrUVhTdERTTTZ3UU5yc1I1S0k4N2p0TnJNeGo1ZW9tR1ZKV1o3VXZhcVNGV1BnTUxoVDRtUE5aZkxsQ253dGQxMlpqRG0yQnhh'@; put 'REUyN1F1V0N0TkNjeGhmNEVQWXJVWndoKzhsSEdjTXUwT1lycnQyaHpRbTZEUmZUVUZtMVc4MjJxMFdlMmFMTW5QOWRoOUZlOERkbmM1aHY1Y1NyUkR6YTI0ZmxXd25sR0N3WTBsa3pwS1h1a2NGY2pERXhJRGNlZ1ZxeG9nRGVxbGtBMWxVSmpTcTRvTWF2V29ETkFaNjNFbnlxQldXSTVBU2RH'@; put 'YzdKQUlRRHJLaUFuNHVSK3YzczN2b3MwNUl3LzVSazVORDBybmJzVjM1eTdsZWZRSkZuT1V4eTlrNnlQeC93K2hhaXFFd0FyYkZyQTN4b01MMms3SVA4a3gzMmFmZ0lNNjJwNFFZcXJaSmVwSllPQW1VdTJKb2k2L2JCcWU5NElDZEkrQ0N0dXV0Uk9idWdVMnRCSk9IV3hYc25BNWc0MDdaTWNL'@; put 'dE9QVzNpVlBtOHJrSjRSREx0NmtJOWFMRE9IemVSWEpqNHVJVHhaK3NCUWpVSnMzRXlidFRzK3VhTmN3bGM0b1hEaGpTVGJyVGwwNzY2U0REREFKWll2eFhDN1djTC8yeGt1NFNLYzNOem1LSHAyaXpZbjVEYUEvN2RzMFdaUGZwekQ2SHJlcG9EYjYxUnkzTWZtYXVQcldmOVl1WEd3bzZqTlVl'@; put 'QnZtOXFzL3p1TXM4N1cwOGJYcy81a1NSc2FORmF3OWZCeERxOC9zbkU5UUVjME1QTnRsbmZSUUNzUk5tb1lTMnBNa3k0MFJTcUdWZ3R2RGRwNlZqWnFobTdWSUc4cUNyNFBaaVZGOUxMZkE0Z3FJb0xReHkvejVMblJVVGw5N2x2NGZENkZEbmVuY2R2YW4vSkV1bCttL3hOZ3dIS0RHQy9wa0hq'@; put 'Si9TVndZdmt1REU2ZDB0aytWc0p2TnJjNWloTmJ0RGtodDRHemZYV0xOcXY1TnRYb1MxdTAyWk9mNnpCNlpSUGZ3bWdPZlJKL200QXBoVlJQcVduK04yaVFmcUFPZjhLYXNPS1JPMkozZkRqMllmb3ZpbWZZRy9zamh1UjZoTit5dWg0M0NtSlJNb2d0V0VFQ3JRMzF0aXFWVXFIQlNKbFBlNllm'@; put 'Q1VVZllXVSs3N2xzcjdJZDhwblB0Y3pWUTlNaUxCbFZtWWlxZytjZlN2NGdDNCtEcWtvRHFsdVBjL0VoS01PcEFXNFQ5TFQ1akg0anF4RXFsQmlJN2tUQm93VGlIbG1zbUR0SEVVL1J3WllJZVRHeS80RjlYWmNISXdzN1F4SGdMdDJYdDhHdmE3L3hPUEFWNDR2QVpQRHUwMm1QSTNmUCtDS3hu'@; put 'UjVaZnVpQXg5V3owbkY2RkxnTC9TMzM5L3Q5K1A0NDhKamN2MlEvT0JYWjc4c2RpQ04yL2l5M2h1RmFsNFNQVDVmZzdPWTJSOUcvYnRIbWhOd0c4UEdKTGRyc3lZOXpHUDNGWmw3RGRYWTJWNTgwMTBzYng5bVVkeFZpekYrcHdNb1ZGWmFpamZuQ1loQ2JXb3RKYTlWWjlUNm5UdVNaSUpHaWJE'@; put 'VnZQbHR0OXBXU2JMWHJlYnJhVGQrVXM5VW9MV3lIdVhYa1pkUkNmVjhWWUVBd0ZZcm1xNjNLdWVjc3ZJT1hWRHgxMnVoMWVwd0JOd3NQNW4zUW9yeUVXTDVPTEY4UVJVTUEyMW11VXV3eWxzcThtS0lwekttRXQ5YzEyZDA5bVNVMTBmbFFhRDU2cEp0bk00L1RMT1p4WjhJUlM0M0cxOWI1dWZL'@; put 'OGplOEJIRWRBY1NBb2RhamNjd0hnZTAvUjgvTnlleXd1RjdmL1N2NTVkYXI0K1puOCtJZDNGajBYN1BuMmxUY2p4Z2ZndWZCbm9IKzJvUWhLb2lQSmxRYUFuYXNlTkJ3enJsQjNZVldGQnBSbVVhV2tWUnNWS2xLeGl0UklKYXBWSzlVYUlsZHQyREkxbFZVQ2xlVVMrVVdqd1NCQzBXUjBzTGM3'@; put 'R0FsMnRvZGhnb0FCcU0zcjhXb0I1SEl3ZVVPZWZsR0tCNCt5Ykl3eEkxcnhJK2Q5a0IveGdQUFFTWS96NU1pK294dlNQMGFYclo3TCt6ZEZvWE4zVHJiUnBKRDBFSTlIRDNiRmh4YXpSVmtoaVk2T1JDRThuVHZTTXRMc00vZUYydU04OXlISmNoL2lXSkdzYnc4N0hRcWxJZ3FtaUpnM1JSUnBN'@; put 'MWJKT2xrUVRHa1ZuTmJWTEVaN2xXeGkyMmljVnJVTUNoQUxBREF2cHozUHpVS3NrMHFrZGN1WDFvdHFaZUdOdmZDcGkzVkx0cFgwb0lZUU9sU21veW9mSTR1anVKbXJaOVFab0hpUGFsa05wc29jUGxLaWxpV1BEWlJML25BdHRtdExiS2x1emZRMXd5WDVJSzRXd2MxdExKN3JRR2xvZ3RQV1Zh'@; put 'ak1jMHBiWHloNmZsNXVqOFdqeGUzUDVNYzVmQmw3dnY0S3ZOM0R4bm1Wai85aDNqNEQwTE1YUFQ5cTR1My9EN3o5WHpiK3Ezejh2K1RQLzVtK3NmRjUrOE1Qb1h5OVhJSjhCN1NuSU5xZE5PcVlxN3FobnQxcVlUSWFLdkJFNXNrNkd1cVUvZm42RGRtMzlxU0pwcitCTkZ3dGZneFdiV05qWTdD'@; put 'eHplZnhlV2xOZ2l6a1pQbG05VkdsZ2QyRmtiQ0ttNE1uK0I4WGt5Y20weWVIK2k1UEhSeHAyWGVEZlUvY1B0WGlPR2dmdDgyMEJXWmpuYk50d1cwUlV2V0Y1Ym1iSjFMWFppYmVuOXcyT3hjZmFHNDJORFhaMndZY2F6OXEzNUdJTG5TR0YyS0p4UTVhMjhiaW41UjNiZU84YTdFQTkzRUd4emtP'@; put 'M3h2TFBhZm45MWpSOC9OeWV5eGVXOXorSy9ubjFidUxuNS9KajMvNGZad0hwdEMxcEliNG1JL1FqaTdqOTNEUTVBL21oa0lLRVNzVnlvTXFPWGh2bzZFOUYwSXE1ckJhTGJSVEtoV0xRRVBLWmRaaFpsZlN3cXhEdTY0T2hKM3NZRlJUYTcwNG1RQ014T0ppTm15VXJQVFhhZG5kOStReXRoZGs4'@; put 'M3c4L1ZTaGVrM0l4MTZ0WU1XMjVQVTRFMmhrZmwrZHpWb0p1cGQ2Z3g0SEh3bEZIeFhyY2VWNmxlMVFSbyt6YmFuSEZjZjFMcTdIMmNycGNSY2NndWx4VHFlenhkbnNOZmdORy9TNFlqV09hbkVLcTVFcmNSYUs1WDRCNUlqTE8zbmorT3hJdzhLd3l3ZWNhR2FzY1NHVnU2bmxuWTQ0c0tKL1g0'@; put 'ejQzd2tuOENmM1JpWk9wME91YWM5eUJCaFEySjE5SjQ1OUx1QkIzK2xhU2d4MzUvN2VDZmpGNDB3VVQzZHkvRDNNOFc3amM0cS9mMXIwL0x6Y0hvc0hpdHVmeVk5eldNSmZIZ09oNCt5Vnh2bE1VYnliNThJTkp2dWtnSGY1WE1PaTJQT2xoSjMxZjNqWVdWZ3RtMGVZMzhjWmFSK3d2MTJveUZj'@; put 'VHlmdHpqa2gyV3JGZHhQV2JPL1A2elpGTWNkL0w4bjRlamFURGx2WjlMcThEYWJaenZ1dFlueGRjekI5dG8vQ3J4U3BCcE5GVHJDUkNXc1FxUkEzWnc4eWVZSmNlWldTTjBvaW1yRmFyeldyejZQVjZzMU10MWdXVTNBdVg4UE5hUEs2c2RDWXFpZUJ5ZDNUMDFZL2s2L0pzemlaN28vN2Y3di9D'@; put 'SnhxNk81dnJQOHRLOUJ3MmU2TVJqN0pDUFNuUGQ1NE1BbjBIVUFKZnpvbXVucXBvOVpocWFDSUpoelNDV2dTeVZBZEErMURKWkY2MmpiTFF4blRSY1M0OFJKNER0TUFhUlRVUlYrVTdHR3hnNHF2VjNHZHBaYUhjalhsd3dkSU9BRTZ0MUF1VmRqSzl0MW5lNHdTVWUramIydG9TYlhHZnh3ajZh'@; put 'Yk96UXF5WGp6R2VpRzJsbjVyMTh0bjZpdEtSeVNBOVpZdStOQ1Y1OVFwKzRMK1NVNVBwc1Z0YnE4WTI1U2JUZkdXR0JaOHU1Q2hML29DUE12dkxKOWxmLzFGaXgvSDhYTW9meGlUKzhHZEZmVS9JZmJFYXZiQkYzL05TWDRMVlhPZmhOWStzcjEvcWUwc0pYZEZjM0IrUmM5Qm1uTFhSQ2w2aEdt'@; put 'bWd6WE5DTlcwRWJTVGZFRkRzelVqTzN6MEdQS3NPUHZuN3N3WUYwYWpsc0x5UGlrK01CQ1ZhZ1lQUzVjdU5iUmthRWVLWHVHanp5VHF0VzdabWtvSjJZWkxEbXZkOVh1cjQ3MlZvaWtZR3U5M2VhbS94MDR3Rm4xc0tVN2xMVW56bEMzUFE1aXlWWTBNYjBsUWVmVFF6bFB0OWNhN0s1TnF6UmZt'@; put 'Ky82c3ptVno3OGdidW12Y2JSdkord3lQb1dMbXpCdjMyenJ4K2UyUUJsZk01NGdyMDR5MzZ5cnF4QUcyK3p1c3FnVS9SV3RKNk5KNGMwWUhLb01mMGpnKzVBb1FTbjdpRVJGSHlubE9ScE0wd1pRbUkwNmlVdzQwbU42M0cwbE1TbEd0WTNUS2RXU1hXV2xUVU9zTnB5a0dKcmk3M2dsemh5dWlu'@; put 'QStqTDI4RHJVbW1NOWlETGc2YTN4ZDJTTkxwZElDTnJNRkdxUUdNV1FkbWc1UkpPV2k2UFZLRElxUlFyTkJaYXNJYjRPV2ZrR3d0WWRwZFhic29BZ0ErVzYwRXprWFUrbjYvTkY2aDFHWHhldDV0WlR4czNwTnFjVk0waU42S2NXbjA2djBXMVdyc2h3VG9FTm5CTDlrSEp3TlhXU2JzMkdYRWgy'@; put 'UnBzM1RZci9pN0x1QzdqZTFhWDhUMXZ0b3ZVa2wzRWFudVpqRzJWWk96TFpmeW9ORitheXRnMGw3RW5wYjY1dDJoZE1POExlS01sQnNrUENlMEZLNnBCSVNBSU1ha1BOaEcxV0d1bERpTjZWdzZhNEV3aFVFa0RNWUphc2FxUjlmQWFHajVRTGxlb2lGTEp3L25MUEp3dmNZWnd1UzRWV0tYUzg0'@; put 'Nm90SnZwdmM3MG5pZWhqTUlSRGxQWGQzZ2czSitJYVVQYVVLREY3YXl2TXh1cEM3eTJTallRS0E1d204RDZIcE8xc2FQZTduTzROY1k2dS9FL0xpbHZlNGV2MFJadHR6Yjc3VWFEZmR1bEpuR0RMVXVMbi9TTTMvQzR3SkgxZTB0aUJ6K0VObFdNMzNCNzk4aG5rSlFITTQvZUJKNWhwRmtUYXRD'@; put 'NGpEeS9ScjVXaDZkWGNUbnQwVnVjcklSTEZzeWdtOHFNNFUxS0d5WmRsak1ESmxlYnE4akRramJGOUNoWXhUeDZrY1g4blNpWjdEZWJpRUp3WW40TlVlR1VKVk5EbXlkZ2xoemlhQVFMM0tLdExwdVdiWlFYWktWbHhmS1M5a2s1QUROMGFVMFdhOGJMRjFmSUNWaXp3enJyMnpVaS9wKzFkNlNG'@; put 'QXAzUXVQMURoVGdMOEZmTkpqOHJ5K05HOXhCbFB0OWFYNUp2bmNsa2FQSVlqTGNYNk80V2tMc3VvQzlHZC9pSDNHY0J6L1dNSHJQUzgwK3o1NnkrbStrWllVblAwSmJRT0lBRU53aC9CRzFtcERZV2RKYTNPU3UzNFhYaTUrUnhZUHk3bUU2QWkzUUNPczRJYXpNanRmbVRqVzE0ZlFqcEJ4eXBw'@; put 'cG5GVlpVVkdqQkNCVFdSSytZM0ZaOVhvMnB6dnZoY2pGRWtTWmhGTStuUDljN1Baei95a1hRYW13T1pBSjdKL1hnOE0vNWJxZjZraHVYRU81SU5sUldpaWtwOHRWU1JyNU9LUzgzc3Nqb3Nna1VrRFlwcjVqSlRVNWs1ZkZscjdwdFk3OC80OFhMdW02MEZuZWtoQnNNT0NUNy9XUUpEN2dQNW51'@; put 'UURvYnJhbzd3dm5NdEQ3THc2SkQ1SmVIdDRyaUI2dVQzQTZvV2l1VTdrWTF0cWRHNkx1YzduL1MzcUU2Z294aFRKeDVpT1NIb2gyU1FMeGhudGNwL0prY3RRdVZnWXJrSG5TMkx2bS93NXVPWmFidE9BR1NoOEg4N1VnQnBvemtQK1pnczF5Vjl0b2FFbC9ISnVIVE5VRzR6MUZoUEwrK1VLZ3Ew'@; put 'UVk1ZFpJUTJ6RjlTcENGY1IxbDdlOThYOSs3KzREM0RBT0R0NU9wTStuZVpLd3VLZjdWdis0djcwMmorVHB1bGJNNW5yVWtqeXB3aEFHY0FsT2xBWDJwYk1XckZhUlYzZ1RKc0JWcTlVSzFhcU5FU2xrdjBWbFdLRlVPU3g2T3gwdVJEcTdPcE14S0t1RGxkN2F6T001VEI0ZkI1dk5TeDZvK083'@; put 'd01NTHd0K3hpWmtqcmdZSWJYS0ZsZHQ3L2VnNFM0MGZ2YzdyT2praUtRTzVxNHRTNVBIMUcydXYrbnJIZWRMOFdFL3ZLRlVMaXJQbTgvVllrbjV3a0oxclRNTGRyNVhnQk0rSHB1ZTZ3UDJkODFKZndOR0RESGRqRW82K3lOdm4zcUw1MDFKNytyeXBhSzRUOGx5QXV4OHVPOWNWREhjWE9PN1c4'@; put 'N2xZblQxYloxeGE1MzBsZU0vem9lazZkL0IxSGtOU0RtT1MxZWdQMC95S1dMU3BVYUVVN1RUcnBrNEhhb2VXNVZmVWI1bGZJWXJNTlc3SmV3RXVKYi9pb3AzSzVsZGNwTmVXK1JXbC9hVDhDbSt3bWVaWEdGaCtCZmZKbDArdzhGM0tiUVFrSEZtWjBKWkx0dmpvWlJlOG8rQ1Bkc1lGOSthc2k4'@; put 'b0RGNzYxZ0o5ZGNEM0pjdHdIVVM3WjFJRkZWV2RUbzZBVU42YkhLQytRSGlQQnh2YUhISi90RHpvKzJ4OTRmTGFTNC9NRW1pOHRQUVpmTkprZnYzaGdxbXllVEhpZmIrc1UvK3lDc2lSYlJ1bHZ1a0RTZjRGV1Q4aTBDblIrZUF0YVBTL1RLbGJIOHVmTjdxaHdvaGVTT2xyaGpxelZJQm1xNkNX'@; put 'Z1V1NGZERUF6eTY5bTBWNXlpdm81cFVRdGpab3daWTRRdkIvRXVSM0xSOVZHdXlpUWNOTWw5VW0yYkdwTzd4a2crRkJKTHdXOUpGc1A2M1lpS3FSb0dxR1JtckxzR3MyeUowWGRBL1IyRGJ4Z0xITVk5ZFgweW8zUUpvaW44bGR3c0hxS0pLdW5DS05Ya3JZV3JCWmF6VVNqRHBvSTBlUWprOHEw'@; put 'VEFsS2hmSzJDa3pyVnpWWGd6QURNTlA2VVVGUUxLbDRGV2xKZERGWTZLUFdrSnN1MWluWldyNjlGR0VzNmlaUVdGRWJNSXpDck1yREN0Q2lMcE10UW91NHRQVER5a2dBdDVYaWNIZWhIc1JiNzlXVlJoTEY4V2h4a1VqQ292YnlHQ0s3RTRYaGFrTEMxV3RLY0pYV3NQeWE2YTJMWEc4bHZTVzZM'@; put 'YytwaU9SektvNmd6NVhxMGN6UGYyZmV6MzlrdWpqMzR4djVuSTFLOUZwSlBnYnJ5K0w1TEtZQWJXNHRseE1DZXRtalpmc0dDbkVLWExNWFNmZTV6TFA3WER5b045bGxCdDVVRFNjTC9CUUxhZW1HTFBsK2VCWkNLQmhJME1QanFYVjdQUHkrTEpaQnNjbHBzK242Ri9LcHlkdm10ZWE4WjhOeTJR'@; put 'ZWtlMkRJRSt6V0YxMkQ1TXh3TmxqdWZWL3hwVEJTelNtc2RRNXNJQzk2bXpzSWFqUmdQS294RnJ5NDZMWkc2YW15OE5SVXB1M21abm52ZHIxVWtFUnJlYlp5YUR1a050VEhuQy82S2VQRHZ2QllGeCtHU29BS0R5M1liR2IxVUJ0ZDFCc0xpUXEyTVpuakR1bml1cUpNa2FIY1dqV3h1Y0lvYjQ0'@; put 'eVhLZDM1VEI2Nk9INVEzaXhCSTk1UFJIbDNic1pMb3JvSjBVNVF5ZmtuQ0Y0L3BHU3Zqd1dkRjZPQldGeFB5cnF1eWVmYjNRWTNWYUN4K3dPRzRici9aSU8rRlRKK0x5R2grTDZFdGNCcjBkRmZmZklmY0hPL3RzdCtwNlIrbEpmNStlSytwN0k5MVdqVTF2MFBTL1BpOVhEREc5WmJUaTEzYlhV'@; put 'NTBHckRHamRGZk41c0NJbXNwOGFGWFpHVkZwVVUrNzZONVZiS0tyNC90TG1NbStwSG1DR25ML0UrMnlzOUQ2YkI4Y085OHhrdThuNU8zZnNLRDlHdnM2TXdFa1FjbEtxTXBQR1NFUkU5MkIzZHFibjhCZzV2MlBIbmRJWTAvZ2dlUTZzY3FuS29vTFFPb3MwbUZQVXoxRmFGMUNOcXJ4Q3ZzcEMy'@; put 'alN6bHg2WmFneWJZblYxTVZPNFlhcUZURGZDbnhZTC9OSEU1bGxBbjJPK0hSK2I1NEkxQjVzck9IYVhWR3RJTlNMVHVGcXdzeHFSTGpacWtENEhEVzFWaVFWZ0hZdjU0bWJoa2lwRmlyL2o0c2ErdmtBQWZtcmQ3bHI2UTZiNTM0RytOdjZnMXMxckgrWXhKWDA5Nm1FckNOZkFaclFVWTlKS1Z1'@; put 'SEJLclVBcG91TUd3djBreGxlL2VheEtLUnFFZWs3R1lxYzZEZjJOVm42ODQ3eng1Z1h5aWk1ek5tNURaRisvRUh5RmRqNU1KczNBYklBYTVodnpvVHhoQm9MckU0TnpuS1YzZXkwS0YvOFFvUVpwcTFhUUpRckplUkE5SXNUQ2xsZCtib0VYTjFrMDF1cVRiV3FrRzdXWFBRN0dUUVl0VFVPai9n'@; put 'QitaMmZ4eUIramRXNGlLaU9yVXFyQkl5Y29GYjNTYU1oWHh0akZkMWVxZGdGRC9HS2w1cy9iampOYUc5YjdxMzFwOVlmUnpYSXcwYXcxWlNwdVBQa3h4STNmam5CNDl5ZldsdHY5NzNML2FUTVo1cm5rVGZJUEJLbGNIUUxIdms5bVVlaUZIcXVpTDhXK2g0Rm0vbGlmWS9pMGFLK2UvSjlEK1Ba'@; put 'RWg3Sis1N0o5ejBNZkk3WjN1dmJhYnltT05iejdqclhZZDVkbDNTWWRwQ3hIbWEzVDBodHZ2NXVqc2YxM3MxSmJYZzhZVFUvVGpVNnRFVTg0U3Y1ZUVMMU5DcWJVNXBDSDk5Q1Bud3ZueXVRV3BIdXZFZHZFZzJPWFB6N0lMNmZDK1BJdU54SDZMbUVQZ0o1TnlmM0djZGZSdWZJQTRBem5VOEJ1'@; put 'a3hrbnJRVWY1R0tiZE1YcWZES3gxMVBjeXd5eWc1OExxaWZwMTl2MFZSTHY5NkMzRTYvMzhMczROOXZRWDEwK0t2b0pmSWdRRUVMVUVueE9rYVN5dGN4d2pyd2JXd2REYWpuNllZYUlpK2xtbDErdzc3cmh5M0d1S0dVVFdEc2I5ZFpUNjNId0c1YzI3Z2k2NVlMZkd1THRkYVhyaHZmU1I3VStm'@; put 'bTYyZnEvQ2VzMzVOZFBVVXJlQ0FZcy9CS2V4QSs4dDlxd0I4YkhPenJHeGpxK3hOODZ4am4rVEFKZWphTDlnQnRnYytuYzhQcE5odU42VEM5SkUrbDNMQ2tPRkgzSDBpREt3R3h2OHZ5dURpMVcxdkN2UUZKalZSV3VxRlJWRkg5dGtySGFJRlJXQ3N0NmpVNVVGSC9iVXV3aUhkazNKL0hlSXUw'@; put 'dFNOKzUxRjIyWDVsdlhTcnBDNHBmZkdvcW1aUy9mV2xxY1dySDNHd3lrMHlQamJRUHRnOTB4Y3QrRTVQcEQvZ21Kc2VtdnoxRmJSM3g5L3d0VFhpaTZJL2NXZms3bSs1L3oxL2VWUGFMbkFwZjZFVHZYWXppQ3VDZFNxUjZDclRyOXNBZ3RnTHNmQStrN3I0NzljNDNkRTgvcTVmdXZJeGl2ZHhP'@; put 'WU8zOENhc1loRllQUERENjdOTzZiN3pDWk1VYjByM1RZVFNUbktxM0V3Vzl2YUlTMDI4dVVJQUFKQXBoUllOSkJjYVZ0TDRsWDlCVWhTc3JaWmNOczIxRGJZSFdGcjNCQ3phcjN1aXRCdnUyY0krV0h3eGFhaHZCMndBcFZOVFNqRUQ2ZlZGTzVnN0czK2JYVW1jK3ZHSmR5aExsdGtOMUIyK2Jr'@; put 'T3FZcGova3dvbmNHWldBNTNJdk9qNHkxOGV1cWs0ZUgwL1ZhZTJPMVBDUlhsYkV0RGlXcW04eW0xTFp5L2ozL09BV1VvTlBBQjlVUFFWS1hUdmpldnltL3hPc1dKa3FPcURxQ01DVm5Yb25FZGJXNkE4cTNMdkc3d3hSUDJNelZpdEplNWw3ek43akhSenZITmp5Q2c0cHY0VFpxN2hkaXBXY3pl'@; put 'ZWRCR2lzbVQwdnhKcjU4L1A1NStMTnhjL1B5TS9SNGV1S254ZkdUNkVQRlQyL005Lyt5Qlh5dlNuejVBYUFBWTE5cUo5cGNSc3h3S0RFSEpNaFViREZmSnRoY2dPM3pZb0JJOWxtLzEwRUg4bE8yMUVFSXNsRXU2YzB0NDZ0bWZvRitGNXdKYnEvYUM5ZnljT2srbUQrYmhQMGVYWjNrNHdMRWIx'@; put 'N1hycXVpWDYrdmgwK1Y1WitybHliUWY4UDJ6K2Mwd0FCQUFBQUFRQUEzNXZtaGw4UFBQVUFId1BvQUFBQUFOUEJuWVlBQUFBQTFMNm05ZjlSL3UwRVlRUEZBQUFBQ0FBQ0FBQUFBQUFBZU5wallHUmdZRDc2N3lZREE4dkUvNEgvVzFnU0dZQWl5SURSRUFDbElBYWhBQUFBZU5wMWxEOU1VMUVV'@; put 'eHI5elhnZWlnOEhCUVNzYURWUXRmNldCS21odEpLTFNwaTNQb0RGYXc4QmswQWdKTGtZUzQ4UkFRdUtpQXlRZERIRXpjWEZ3Y3REQlJDWUhuUWhMYllpU3lBVFI1M2N1TFdKYjJuejV0ZS9kKys0NTMvM2VsWFhjQmorU3BvNVJqZkJsSG9OYVFFVEgwTzZGMGFIek9Ja1NCbVVNNTZsMmVZNCt6'@; put 'ZUdpTkNBdGs0ampONjdJUXJDbXI5RW5vemlvYVhUcFZaelErOVIxeE1sK3ZjRTVlY1RzdHh2UHVSelRhODhoVTdLSlE5NER0T292SE5WWHlPc2l4MjZRazhqb0tQV2QvejhqZzFYK0RuT05aN2lsVVF4NEk4aDdTa1Y0L3lreWpqTWN3enAxQ20xYXdvZzlNM1FHemZvV0xicUEvVHFOczNJUE9k'@; put 'YThTWFpKQ1QyYURmN0lKU1QwSEU3clkvamFoRTZ5UjMxMHloM09mY1RuWnBIR01oSllEajdvRVF4aEJTbHZHaW03cmcvZGVOL215Qk42dUlZMm1lQzhMTzkzczdja2ptdUV2ZVhRcE1veE00aktBWXlUN2ZLT3ZqWmkySzE1bDU2d1JubkJXdmFnVmQ0ZzRlb2FSd1EvTUNCeGR6MUd2N2E4cXFN'@; put 'UVNQUFB2TnNockFhZnpEL3lKMVgwOXVKVXhidHE2V0VNTzVwL08yWCswV2U5Z0d2T3F6cnlQcExXaS8rL3pEZjZOMFNXcUJYVzFML3RYYlVzRjhhczgvZWZ6RC96MldqOTJwclZ0TjV0L1FvdFI5d1g2MWZudUtmbWg5VzBHeTFydHQ5bDBxdHZyUGNMdll1U0FYblorbkFaWkE0c2g1YUZiVEl2'@; put 'MG8xbTg5YjZxNkg1eXQ0cUREVWdGZ3B6WGViV3NsTkRlK2VZcHhwT2xUTldvZTJQZWJRTDdSMXdPYlE5TlAvSzc0TGxzWnEyVnpMTDdKa0t6UHhYTWtVbHFQZEk2ajVlUTVDclBMT2FOWjZXMTVSMXdDdHVuVGZZb0Y0Q21rVGNtMENjWjhLZ08xT1d5Q1d5Z0pzNnk3T0M1MUpvRGgzU2l4YXFU'@; put 'UmVEb3N1SHg3bmMxenBmSC81ZjdSendwQUFBZU5wTndsOUlHbkVBQUdBei81U2VwNlhwZWQ2ZHQvTThyN3ZUenArLzAyTU0yVU5FaU1Ud29jZUlJUkU5UkE4aEVURmloRWhFUkE4UkVqNkVqQkVTTVlhSVJJeUlpT0ZEaE1RSWtSRXloZ3pwUVNTa2g3M3NZWHlmUnFOWi9xZWdPUm5BQnRhMHF2'@; put 'WkUrNkI5SG5RT1hnNjJkVGFkb0V2cTBycVNycVpIOUV2Nmd2NlBZY2F3WW1nYms4YWNNVzg4TTlhTjdhSDRjSGE0YkVKTUtkTzJxV3BxbWFGNTNwd3hmemJYelYyRVJxYVFYZVRHd2xuU2xxcmxBYldoVVRTTjdxTVZ0R1UxV0FscjNEcHYvV0E5dE1WdGR5UFlTR25rWlRRNTJyZEg3UXYyTC9h'@; put 'bXZldklPSnBqM0ZqVk9lTThkblpkSWRlQnEreHFZVFlzZ1dXd0M2enVKdHlTZTg1OTR1N2hVWHdWMzhRTGVBWC81VUU4SzU0Tno1Mm41ZWtSUXdST1NFU2N5SklwTWsxbXlCeVpKMHZrQlhsTFBsSWg2aTJWb3RKVWhzcFJlYXJpelhuejNwTDN3bnZyZmFScGVwWGVwSGZvUTdwSW45SG5yOTR4'@; put 'REJOaVhqTlRUSXFaWTVhWURQT1I2Zm0wUHRTSCt6Z2Y4TVY5Uit4N2RwbGRaN1BzUGx0Z2UzNnQzK0duL2NBZjkrOXdlOXd4ZDhwOTQycGNrM3ZpbmdQRlFEbHdHYWdIZnZJeS81Vy81dS80RnYvRXY0dzN4anZqZlVFV3RvUURvU1JVaEN2aFh2Z3Q5RVZFZkNNdWlHdmlscmduSG9tbllsV3Np'@; put 'VC9FdHRpVEpxVXI2VjU2bERwU1A0Z0VzYUFRaklZY29jNkVaZ0taT0pJbjVWbDVVVjZYcy9LaFhKVEw4bVVZQzlmQ3pYQTcvQUtHQUE0a29JSUVtQVdMWUJWOEFqZWdIYUVpMDVIdHlEVzBRUURuNEFyY2dMc3dEMHV3QXIvREJ1ekF2b0lvMkgrQWtsUTJsVDJsb1hTamVGU0lDakU2Qm1QVHNY'@; put 'THNPbFpYVVJWWE9SV29jVFdoenFwRjlVdzlWMnRxNHk5TU04bWdBQUFCQUFBQlBBQmdBQW9BUUFBRUFBSUFLQUE1QUlzQUFBQ0RBYlVBQXdBQmVOcU5rczFPd2xBUWhjOXQwWUFhNDhLNFlHRzZNTzZFZ2dRaUxqVnNGRFFTd1MwSUFwRmFMY1hFclUvaTF2Y3d4cDhYMEkyUDRETjRlanRVSlkw'@; put 'eE4rVitkODZabWQ0cEFKYndDQk1xa1FLd3l5ZGtoV1dlUWphd2lCTmhFMldjQ1Nld2hqdmhHYVR4SUR6TCtJZHdFbmxsQ0tlUVZnWGhlUlJVVFhnQkRYVXIvSVFWOVNiOERGdDlDcjhnYWF3S3YyTE9XQS81M1VUYXNMRURGNWU0Z1ljQmV1akRoNFY3UG5uWXlLRklhbE8xNk90cno0aGM1KzR3'@; put 'YThUY0MyUlFSWmQ1bnE3a1lxaGRSNHoxTU9hcFJTVkhsNjNYTm82eGh5WnFwTGk4amFuTU9JODE1V253NURFKzBPOWovZWoybnc0TlJrL3Bjc25CVFE5WW84czl5TzFRYTVFUHFRZmFQdmZPSDdNSTV1ZnpWRWFXNi9wWFpWZlhkYUtxR1dvdXo1T2NrV1QxcVBxTWpqbjVpU2ZMZmRMVDBUZjk3'@; put 'cG1OdldXVHNUYi9iNEhEajJaU2xRbFZ0R3B4RmJWV1l1OGN0dmk3aVVMMDlVczRwNitycTNveTNVcFVzWTRydnVPQWlrZlA4QXZjdlhoekFBQUFlTnB0azFkc0hGVVVoci9mc1hmZE5rN3Z2VmZIWHZmRUtTNXJ4N0ZqSnk1eDdNUkp4cnRqWi9GNkY4YTdjV3k2QkFJZVFQRENNK1VKRUwwS0pI'@; put 'aEFvbGZSZXdmUmVhUUg3OXdKWGlUdXczei9HWjN6bnpQMzNpRUxkNTBiWUI3L3MxU2JmcERGRExMSndZZWZYUExJcDRCQ0FzeWtpRm5NWmc1enArcm5zNENGTEdJeFMxaktNcGF6Z3BXc1lqVnJXTXM2MXJPQmpXeGlNMXZZeWphMlU4d09TaWdsU0JubFZGQkpGZFhVc0pOZDFMS2JQZXhsSDNY'@; put 'VTAwQWpJWnBvWmo4dEhLQ1ZOZzdTVGdlSE9Fd25YWFRUd3hGNk9Vb2YvUnpqT0FPYzRDU25zTGlkcTdpYW03bUJPM2lmNjdtV3AvbVlPN21OdTNtZVo3bUhRY0xjU0lRWHNYbU9GM2lWbDNpWlYvaVdJZDdnTlY3blhvYjVoWnQ0bXpkNWk5Tjh6NDljeHdWRUdXR1VHSEZ1SWNGRlhJakRHQ21T'@; put 'bkdHYzd6akxKQk5jektWY3dtUGN5dVZjeGhWY3lRLzh4T1BLMGd4bEswYysrZm1MdnprbmxLczg1VXNxVUtFQ21xa2l6ZEpzemVGWGZ0TmN6ZE44TGRCQ0xlSjMzdEZpTGRGU0xkTnlyZUJ6dnRCS3JkSnFyZEZhcmRONmJkQkdiZUkrN3RkbWJkRldiZE4yRld1SFN2aURQL21TcjFTcW9NcFVy'@; put 'Z3BWcWtyVnF0Rk83Vkt0ZG11UDltb2ZUNmhPOVdwUUkxL3pqVUs4eTJkOHdJZDh4S2U4eHlkcVVyUDJxMFVIMUtvMkhWUzdPblJJaDlXcExuV3JSMGZVeXdNOHlDTTh5a004ekRYY3BhTTh3NU04cFQ1K1ZyK082YmdHZEVJbmRVcVdCaFZXUkxhRy9IV2pWdGhKeFAyV29hOXUwTEhQMkQ3TGhi'@; put 'OHVNWnlJMnlOK3k5RFhHTGJTU1JHRHhxa0tLK2tQZVJhMllYNG9ra2hhNGJBZFQrYmIvMHAveUxPeVBhdVE4YkJkRkRhSEU2T2psa2t0SE00SS9DMmVlOVJqaStjVE5TeHN6YXdjeVFoOGJWWTRsYlI5TVlNMjB5OW0wRzVleGwwVXRtZDZ4RE05MmsxNjNJVy93NXNoWVJqb09KMktEMXRPYWpS'@; put 'bXBaS0JSR2JrNnpRZEhOT2hNN09EazltaDAzUndETHBNMVpnTGZ5b2VMU210REhvczgzV2JwS1NacHNlYkptV1kwK05FNDhNNXFmUXowUE9meVZLWmtiL0gyOEdVWVVGdk9PcUVVNk5ETWZ0c3dYaUc3c3ZRRTlQYTEyOW1uSFNSM3o5OTJwUFRwNTJlT0ZoVzViSXNXT25ySFhhc3FXczFidEJy'@; put 'SE1aZDVQVkdvclpqajBYSDhzYlBxM1JkYWFpKzJtT054d2FQamI0K1l6VGhJdjAyV0ZJUzlGam1zZHhqaGNkS3cyQlRkaWpsSk55Z29xa2h4eXEyWXNsOHk1M0ZTUGZ1cDJXUk5mM1o2VGhnblIvUUpMcmQwN0xBKzMyTU52dWExbmxXK2pSTWNqSWFpN2pKdWRiWTFCNUZiQ2N2WW52cUg3ZGx0'@; put 'eUVBQUFCNDJtUHczc0Z3SWloaUl5TmpYK1FHeHAwY0RCd015UVViR2RpZE5ra3lNbWlCR0p0NU9CZzVJQ3d4TmpDTHcya1hzd01ESXdNbmtNM3B0SXNCeW1abWNObW93dGdSR0xIQm9TTmlJM09LeTBZMUVHOFhSd01ESTR0RFIzSklCRWhKSkJCczV1Tmc1Tkhhd2ZpL2RRTkw3MFltQnBmTnJD'@; put 'bHNEQzR1QVA0Y0pXQUFBQUFBQVZpWTluWUFBQT09KSBmb3JtYXQoIndvZmYiKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODti'@; put 'YXNlNjQsZDA5R1JnQUJBQUFBQUZYd0FCTUFBQUFBb09BQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmS1RiTEVkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY2ZBQUFPZGoraGZYUkhVMVZDQUFBSk5BQUFBQ0FBQUFB'@; put 'Z1JIWk1kVTlUTHpJQUFBbFVBQUFBVGdBQUFHQm9xYTMrWTIxaGNBQUFDYVFBQUFKc0FBQURubmRERDdGamRuUWdBQUFNRUFBQUFEQUFBQUE4RWQ4QnkyWndaMjBBQUF4QUFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVud0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNoQUFBT0RrQUFHMDhzTkd5'@; put 'TldobFlXUUFBRXJBQUFBQU5nQUFBRFlMYTRZSGFHaGxZUUFBU3ZnQUFBQWhBQUFBSkFlRUJDQm9iWFI0QUFCTEhBQUFBb3NBQUFUYXNuZzVQbXh2WTJFQUFFMm9BQUFDYndBQUFucHlWVmZhYldGNGNBQUFVQmdBQUFBZ0FBQUFJQUtSQWg1dVlXMWxBQUJRT0FBQUFZVUFBQU5rTCthR1NuQnZj'@; put 'M1FBQUZIQUFBQURvUUFBQmlHWEZqMktjSEpsY0FBQVZXUUFBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlY2QUFBQUFZQUFBQUc5RzFZbUFBQUFBRUFBQUFBMUNTWXVnQUFBQURUd1oyR0FBQUFBTlMrcE90NDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RG'@; put 'UmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY0xiRlZWRmwzN2ZPNXIzd01zcFh5RVVna2hVQWhXaGpDaUNLTnhtbHBJUnhtc0JBMFlOWTRma005VVpLYkd5R2NVelVqcXhKR0taRUxRTXRwZ0JVVEZxa2hlQ1A2SUlmZ0pFaXdFSzJM'@; put 'OUFTb2FJOHAxM1gwZmNFdjdadXhLVjNmM09mZmNzL2RlNSszeklBRFNHSW9wa01xcW1sb1V3TkdETUlUbEg0R0JuZk9YdW5rb21YdGozUnlVenAwemR3NW5nLzVvTko0UnNlVnphZlJER1lhcngySVlhbXhMUEJvczBGVWxhRURBaDZUblFqNHhVSDBlSmFjaHFBb2J5QjRUc1FLL0lKU0JNTndH'@; put 'NThrQWFVTUdQYml6STJFMmJBNzNodnVSNXlmOEp1L0k3bTY5bjJCQXAvOC9DLytkZDRXT3ZDTnRlVWYyaHRrOEk4M2h3WEJyaExPZjRPL09DRjEyaXZEenNJRlpNaGpDVEE5bnRrWVFCaFdFeFFXRXcxakM0L2RFZ1BGRUNoY1RCWmhBRkRLM0UxbXBSWVJnS2U3bnpBY0l6NHl2b1A5RlF2QVNJ'@; put 'WGlaTUhpWGNIaWZjTmhQZUh4Q0JQaVVDUEFaRWVBb2tjSTNSQW9uaUVKVzd4ZXVGaEpwS1pJaUZFcXhGSk5McElROGtKVk5jKzB4Vk1rd1BqT0tFTjEzdkdPak83YTZZNmM3OXFna0NsQkZGS0thU0dNYWtjRjgzTVVWb2tnQ2pTVFFTRHdleGtyT2J5UUs4UmhXYy80VCtDL25QMDFrc0pGSVlS'@; put 'TlJnT2VJRkRZVEJYaWVTT0VGb2dCYmlFSzBFb1hZUnFTUkpkTFlUcVN4ZzBqamRVTHdKaUdhblFBSGlBdytKdUs4R00yTDBidzR6WXZYdkhqTmk5TzhPTTJMay83U24vazZWODRsUnpueVhMV0NHUnJPR2xld3RtTlowL0hNekFSbVpENFc0SytvdzUxWXlGb3V4VEw4QS9jeEN3OHcrbzJNNkhs'@; put 'VzhpVlc4RjFXYmo4cjlpa3JkWlE3T2FFbnE0anZMWW5PbDdsWHorRWJVc2U0ZTFKZlc2bTdodkQ3YnRTcUk5SDV5RHZ5SlhHc215ZVA1VDBiWCtiKzdndS9EZytFRDRVUG5UMlNPNUZOWWRQcC83NUlqSHl1enhpVXFpWkVOV0Z3RFdGeExlRndIZUV4a3dpb2lKV2NFNmxCVkExRzFXRFFRZ1RZ'@; put 'UUFSYWFkRktpMVphdE5LaWRUVTRSRmdjSml3NkNJdWZDWStUUkNDOXBUZnIya2Y2a1B0S1gzSlVVZEdLaWd5U1FWemZZRFRPSVRMb1RmUlFwWXNxM2FqU2JVN3BWeEJKcFR1TkowakVrMUtsMjV6U3oyamNhVlJPbzBwcFZLZVVIbXM4VnZjclJINWRSOUU2MWF6SlJSZ3AxMnFjS2RXdlZmMmFY'@; put 'TXlSaWswdThrakxKaEYvVXRGV3M1Q1NNWEl4M3g1OWVsVXh3bW1zMTdXTWF5WWphV1FrcS9BNG8za0NUNklKNnhqUjA0eGtBMDlqSzNlYjVTNTNjSGVIV0lNTzd1d2tkOUNIYit2UHR3emlpbVdxWjROZTJsR0t3NlcwaTluZkxxVWxhbC9LVHRRV2xKSGJtZi90c2x4V3lDT3lTdGJJT2xrdm0y'@; put 'U0xiSlh0OHBic2tnOWtueHlVdy9LVmZDcy95a25qVE5vVW1YNm0xQXcxNWFiQ2pETVR6R1dteXRTWWFXYUd1ZDdjYkdhYkJXYVJ1Y2NzTXcrYUJ2T29XVzNXbXFkTWk5bHNXczAyczhQc05Mdk5IdE5tMmsySE9XS09tNThzYkdCNzJHSTd3SmJaWVhhVUhXTXZ0QlB0NWJiYVhtbHI3WFgyQm51'@; put 'THZjUFcyYi9iZSsxOTlwLzJYN2JSL3NjK2FadnRCdnVDZmNWbTdSdjJIZnVlM1dzUDJFUDJDM3ZNL21CL2RzWVZ1RjZ1eEExMFE5eHdOOXFOZFJlNVA3aEtOOFZOZGRQZFRIZVR1ODNOY3d2ZDNXNkpXKzVXdUVmY0tyZkdyWFByM1NhM3hXMTEyOTFiYnBmN3dPMXpCOTFoOTVYNzF2M29UbnJu'@; put 'MDc3STkvT2xmcWd2OXhWK25KL2dML05WdnNaUDh6UDg5ZjVtUDlzdjhJdjhQWDZaZjlBMytFZjlhci9XUCtWYi9HYmY2cmY1SFg2bjMrMzMrRGJmN2p2OEVYL2MveFFnQ0lJZVBCMzFaaU41aVhLbGNyVnlZOFJZck55c25tWEtLeE04VmJsQ2VaTHkzeUkyZzlXdVZhNVNIbUg0bVNybHloWEtr'@; put 'eU5HdmZLejV0VlR0bHlpUEVuOTdjb24xRE5LdVVsNXBISkcrYzkyTnZrWjVmcnVtVlUvRTJPMStyc3dwaXR2Vmw1OGhtVldITHZhODVUZlZGN1psZU1NcU4yVmE1VkhtT3ovWTJvM21hdHNkNHlweWkzSzlXZVkyY3RxOXY0M3gvbk1kc3NqRTF5ZjJITW5PMUhUSmVvdlYzL1NydFFjUHFiMnJF'@; put 'VG00eWc2MlRrVitiUDhqV3BQam0yZEUyc21yazRjZGF6UG5KM3pSM09hMVg3V0xqcWwzcHpHUGxUNy9jak8xVFRPV0t6dFdIdEpmMXpaT0cvdnFiMVlhL1NSNnZ4cm5UOVYzOVd1Yy9SRXhMcnQ1SzlRKzBTdWdodFBxenJwajAvUXBJUm00b29rN2VmVXZqWDI2M3c5RjJhdytwdlVIeXR0Wk1L'@; put 'dVVzNm9KNTk5WE8yN05icXIxTjZqZG5MbDZuQUwrWHpsWktXU2I1eWNPOTNaMzhDZFp4cWNwL2RTOE41VnpxeEV0MVBIcmoyYVhUQzZZUWY0SFc5aUtZekRSZXhoVWVmdXhiNDlpVDA5NnR5OTlZNWFySjI3RC92T0ZQYWhHcUl2cm1LZjY4ZE9ONTNmZldZUXBkckxCN1ByeldMWG1zKzcyeEM5'@; put 'dlkxblIxL0Q5ZGF5OC8xSmU5L1Y3SDZ2c2tPK2hsMjRsVGU2bzZqWFcrVXFmQ2NlajdNVEQwS0w5dFJXN2xma0hQMXVGa0RDV0lWTGNBdDVPYnRkaHQ5MXloamJLTjY5TCtTdUwrY3VyMFF0Ujk5VzdlNVZQcWlzWndhN0U2eVZ3RjNLNjVVLzFxejFWVHVEUC9JOXQrRjJTVW1CRkVwYU10SlRl'@; put 'blhkMGE5OWw1OTBBQUFCQUFBQUNnQWNBQjRBQVVSR1RGUUFDQUFFQUFBQUFQLy9BQUFBQUFBQWVOcGpZR1p5Wi96Q3dNckF3dFRGRk1IQXdPQU5vUm5qR0VRWXpZQjhCallHT0dCblFBS2gzdUYrREE0TUNxcC9tS1gvR3pNd01KOWsxRkZnWUpnTWttTmlaVm9QcEJRWW1BRHdiUXExQUFCNDJy'@; put 'V1RXVkNPVVJ6R2YvKzNmUkVxRlBYMjltblRScUlVUmZhbHlMNlVyTm15cjlrYTZ4QkRSVkxJbmlTakdSTlRVN1liN3JnMVk0eSt6NVZiN2d3ZHgxZE1NOHk0Y21iZWM5NXp6cHpubkhtZTN4OXdvZXNMUVhTUFZPcVpPT2V1VXF6SEpZekRqWUdVY0lzNjd0SklFODIwMENZZUVpQ0RKRXdHUzV3'@; put 'a1NhcWtTNlpNbFJ6SmswSXBraElqMVhobHZIZUpNbyticmVZVDg0dmxiZ1Zhd1Zhb1piT2lyR0ZXdW5YZjVoLzVUU2w5aDhXTkh0cVBhZU9aK0VwL01jVW1zWklvS1pJbUdaSWwyWklyQmJKQk5tdnRsOFpiclgzSWJESGJ6YytXWVFWWVFWYUlVM3VvbGZaTFczMVVMOVJ6OVZTMXExYjFTRFdy'@; put 'aDZwSk5hb0dWYS9xMURWVnEycFV0YXBTbGFwQ2xha3pxbFNkNkh6VG1kV1o5UDJUbzl4UjRNaDN4TmdIMnYzc1BuWXZ1NXZkNlBqYThibmo4SWVRZDhsZFh2Mm41bTU0TzVQZ2oxc0VvL3ZQK0lkRzEwa1hYSFYyN25qZ2lSZmUrT0JMTC96b1RSLzY0azhBZ2ZTalB3TUlJbGhuUEVpbkhvcEpt'@; put 'RTRrSEJ1RGlTQ1NLS0tKWVFpeHhCRlBBb2tNWlJoSkRDZVpFWXdraFZSR2tVWTZveGxEQnBtTTFjeGtNWjRKVEdRU2s1bkNWS1l4blJsa2s4Tk1acEhMYk9Zd2wzbk1ad0VMV2NSaVRWb2UrU3lsZ0dVc1o0VisvdzUyc3B0aURuR2MwNVJUUmdYbk9VY2xWVlJ6a1JvdWNZWEwxSEtWNjl6VUZQ'@; put 'MWs5RFlObXFWN21xYWZiUldydFIzUmJPQnN0emZyV2FQN1haejQ3VmJoWHh5OFFEMmJXZGxqWlMyYkpFYVBXOWpPTWV3NEpGenpHU2xSdWdJaXVLTjNIcUJwbGdSZEQvSGRaNHFjWWNTeWpiMXNaUjk3T01CQlhVdjdPY0pSdlhXWVVrNXhrdGU2bW5xeFRyekVXM3pZS0g2YWY4OGZrTTJxNkhq'@; put 'YVkyREFBcEtCTUl3aGpHazlBd1BUYmlaV0JvYi9JY3pTLzQyWmR2Ly93blNKU2ZEL2wvOStJRDRBMnM4TnNuamFyVlpwZDlOR0ZKVzhaU01iV1doUlM4ZE1uS2JSeUtRVWdnRURRWXJ0UXJvNFd5dEJhYVU0U2ZjRnV0RjlYL0N2ZVhMYWMrZzNmbHJ2RzlrbWdZU2U5dFFmOU83TXV6TnZtM2xq'@; put 'TXBRZ1k5MnZCRUlzM1RXR2xwY290M3JOcDFNV3pRVGh0bWl1KzVRcVJILzFHcjFHb3lFM3JIeWVqSUFNVHk2MkROUHdRdGNoVTVFSXR4MUtLYkVwNkY2ZE10UFhXak5tdjFkcFZDaFg4Zk9VTGdRcjEvMjh6RnROWDFDOWpxbUZ3QkpVWWxRS0FoRW43R2lUWmpEVkhnbWFZLzBjTSsvVmZRRnZt'@; put 'cEdnL3JvZllrYXdycC9SUEtQNTBBcURJTERJdElOQWtsSDN0NExBb2JRUzJDZFRpT0JaMXF2N2xKVXU1YVNMT0FJeVE0Y3lTc0l2c1Jsbk4xekJHdmJZU2p6Z0wwaVZCcVZuODFCNm9pbWFNQkRQWlFzSWN0a1A2MWEwRXZneXlBZUNGbFo5NkN3T3JXM2ZvYXlpSHM5dUdha2tVemtNcFN1UmNl'@; put 'bEdsTnJZSnJNQkE1U2RkYWhIQ1haMXdHdmN6UmdiZ25lZ2hUQmdTcmlvWGUxVnJaNEJ3NnU0cy9sdTd2dlUzbHIwSjd1WU5sendFSGNvS2swWmNWMTB2Z3lMYzByQ2dwTWRMMUVkR1MwbUpnWU9XRTVUV0dWWTkwUGJ2ZWlRMGdHMUJ2clRLTFlsODhGczNxRkJGYWRTRmRxTUZoMGFVaUFLUVll'@; put 'OHE3d2NRTG9CRGZKb0JhTkJqQndheGpZak9pVUNHV2pBTGcxNW9XaUdnb2FRTklkRzFOS2FIMmMyRjRNcEd0eVN0eDBhVlV2TC90SnFNbW5sTVQrbTV3K3IyQmoyMXYxNGVCZ0ZqRndhdHZuTTRpUzc4U0grRE9KRDVpUXFrUzdVL1ppVGgyamRKdXJMWm1mekVzczYyRXIwdkFSWGdXY0NSRktE'@; put 'L3pYTTdpM1ZBUVdNRFdOTUlsc2VHUmRicG1ucVdvMHBJelpTbFRXZmhxVXJLalNBdzljUHc2RXJRcGovYzNUVU5JWU0xMjJHOGVHY1RYZHM2empTTkk3WXhteUhKbFJzc3B4RW5sa2VVWEdhNVdNcXpyQjhYTVZabGtkVm5HTnBxYmlINVJNcTdtWDVwSXI3V0Q2alpDZnZsQXVSWVNtS1pON2dD'@; put 'K0xRN0M3bFpGZDVNMUhhdTVUVFhlV3RSSGxNR1RSby80ZjRua0o4eCtDWFFId3M4NGlQNVhIRXgxSWlQcFpUaUk5bEFmR3huRVo4TEo5R2ZDeG5FQjlMcFVSWkgxTkh3ZXhvS0R4MndkT2x4TlZUZkZhTGloeWJITnpDRTdnQU5YRkFGV1ZVa3R3Ukg4bXdPUHE1Ym1uTlNUb3hHMmZOaVlxUFJz'@; put 'WUJQcnM3TXcrclR5cHhXdnY3SEhobTVXRWp1SjM3R3VkNVkvSVBnMytMRjJVcFBtbE9jSENua0FCNHZML0R1QlZSeWFIVHFuaWs3TkQ4UDFGeGdodWduMEZOak1tQ0tJb2EzM3prOGtxeldaTTF0QW9mVHdRNks5ckJ2R2xPakNPbEpiU29TUm9CTFlPdVdkQTA2dlBzcldaUkNsRnVZcit6ZXlt'@; put 'aW1PeEZHY3lBS1Nqa3ByR3c3TytrUkZwWU82bnA5TkhBNVViYWk1NHNOVnRXY1lXOUIrOWp5TTBzZVRkU1hyZ3BLZTFGbTFDbnZNZ0NEcm1SUGJnbWdsdG83N0tLWWtwWXFDSStDRzBGKysxalJDWXRNNE11Z1NKa2NiS3lEKzJLSFRtaWduWUMzM3JTS3UvYlF1M1BkZklnTUp1ZGJ1ZEJscEdp'@; put 'ODEwVjlXcDlWZGJZS0ZldjNFMGZCOVBPc0xIbUYwVVpUeTU3MzU0VTdGZW5CTGtDUmxkMnYrNUo4Zlk3MXUxS1NUN2JGM1o1NG5WS0ZmSmZnQWREN3BUM0locEZrYk5ZcFJIUHIxdDRNa1U1S01aRmN4d1g5TkllN1lwVjM2TmQySGZ0bzFaY1ZsU3lIMlhRVlhUV2JzSTNQbDhJNmtBcUNscWtJ'@; put 'bFo0T21RK201MmE4TEdVdUN4RjNMTmsxMFgwSFR3aEhlSy9PTVMxLyt2Y2NoVGNvc29TWFdqWENja0hiUjhyNkswbHU1T0hLa1puN2J4c1o2SWRTVGZvR29LZVNDNDQvbDdnTG84VjZSVHU4L01IekYvQmR1YjRHSjBHdnFyb0RNUVM1NjJDQklzcTN0Sk9wbDVRZklScENmQkYxVUt6QW5nSndH'@; put 'VHdzbXFaZXFZT29HZVdtVk1CV0dFT2cxWG1NRmhqRG9OMXRZT3VkeG5vRlNCVG8xZlZqcG5NK1VESlhNQThrOUUxNW1sMG5Ya2F2Y1k4alc2d1RRL2dkYmJKNEEyMnlTQmttd3dpNWxRQk5wakRvTUVjQnB2TVliQ2wvWEtCdHJWZmpON1VmakY2Uy92RjZHM3RGNk4zdEYrTTN0VitNWHBQKzhY'@; put 'b2ZlVDRYTGVBSCtnUlhRVDhNSUdYQUQvaXBPdlJBa1kzOFl5Mk9iY1N5SnlQTmNkc2N6N0I0dlBkWFQvVkk3M2lzd1R5aXM4VHlQVGIyS2ROK0NLQlRQZ3lnVXo0Q3R4eWQ3K3Y5VWpUdjBrZzA3OU5JTk8vdzhvMjRmc0VNdUdIQkRMaFIzQXZkUGY3U1k4MC9lY0VNdjJYQkRMOVY2eHNFMzVM'@; put 'SUJOK1R5QVQ3cWlkdmt5cTgyZlZ0YWwzaTlKVDlkdWRkOWo1RzJVenVpd0FBQUFCQUFILy93QVBlTnExZlFsNFpGV1o2RG5uVnRXdExhblVucVN5MVo2bGt0cFNxZXlwN0V0bDZYUm43ZTRrdlNYcHBxRnA2SVZGUUJBYkJrVlJuSEVieFVFUUIxa2FCRnFVWlJ4R0JaNDlMaU1PT283b20zRkdI'@; put 'YmZuRzBaMEpEZnZQK2ZjVzNXek5UamY5NkNUVk83OXovYWZmei8vZjRLTWFHRTlpVDh1ZUpDQUxNaUpTcEFmMWFBVWFrRWRhQWlWWkZ3OW5lMnQ2YVprYlRoUVdWcnNzaFlaTkFRWlkzVmFyOVVyT3BOT3Z6T1o4cWVTS1pIOUZPR2o4cFErb3ovcEczaVNVajdMTUt4Qk9wbkNINWYrRG5mODMr'@; put 'NmVCM3A2SG5pZ3grZjE5dlQwSE9ueG5udmdpTTk3eFB2QUF3OTRqeHc1TnpEd3dNcEExZDhMUCt2MUJyM3c3NWFqdm9HQndFSDROT0J0Ny9FZHViN1pIZDExMVZXUFhIWFZydWlxTitxRmZ3Z1JOTHIrT3ZvV09jL1dGc3o0RU1ab0FTRlVtRVdFQ0VzYUxBaHVZVlNqMFZnMGhVRnJrVlowMTlt'@; put 'VGd0OFZTalUySlJNdXAwUG5uemxUMHFjTmg4czhvWkNIbkpkOFA2d3VLdzJIUzh1cUVWcGZSMzM0WG53RGViREloNHdJRlFudy9TVkV4dzNBdHh0aFhBK3FSTU9aQVl1T0lLMUFNRUY0MllRTmhzSnNZVkdCSUlyNkJiT1I2UFhXckFZVFlpR2pDRlZXbEpkQkswOXBTYkVieHJkYmMvK0o1WFZZ'@; put 'VElwKzBaOW1YK2trKzBxSzdFdWtML0dic1N2dEp5SzdJdStOVEVRdXR4K1BYV0cvQWo2OUY1NmNzUDNOZTJQdnhSZWV6ejRDLzJXZnp6NEsvMldmUjRDWjBQb0Ywa2JlUUJVb2lDS29QbE1icWZONVBhWEZicWZOWk5TTGhZaG9BVzFrQkphRkNUNEk2M09qMFVxclZRQnNCWFN3eDZsUU9PMXlw'@; put 'eHB3cXJFVHAyR3ZYVzR4RkhaV1lDZUN4NFhZYVd0S05jSUQwbmJtc3FsM0hlakk3ajF5SkxtdmRlckt4ZGIrOFJOWFNaZEhFM1ZOdjg2MFpLNDRLV1o2aXZabGgydy9LcDNlbFp4cEZqczZ6YnRITzYzLzZKbWJ3dTRhNnd1R0ZyODAzMVpkM1dEOUpzeERpeUxydnlOcjVDbllYVHRnT29yYTBQ'@; put 'L0tQbGE4YXk1VFo4SmFJOFk2TFY1Rk9xUTM2UFJIa1VhRGxnaW11MThBZXlBc21VVWlDQlpoMUpOOUxBeE5vcGRzZ2dDVXRST1h6RmdVM2VLb0o1UGNwZ1VoQUV1Ym9lMWJ6YzluUXJGWVZaWERnVkNzTGRiYTFGZ1ZyV3FvRGprcUhSV2x4WGFidFFnV1V4Z3FGSjExTm83UlpBSXc2U2pFZnB6'@; put 'RWZvWkt2MC9uZExpU2FOUDdUcHgvOTZtUm10cVJXQXkrWjZQNHZidWs4TVRwUkRJVWppZERlTzlJTFR6a3I2cmo5R0VpalBjMWpFZmp1eG9hSm1MeGlYbzh0VGFKLzdJakd1M3NpRFYwU3Z2cUorSlIrZzRnNnJ2cDQ4NkdhQ2VpdEJOY2Y1M2NRTDZBdktnZU5hSE9URnM4R3E2cUtQZVVtSWhS'@; put 'SUY2TUJESkNhUnN2QWV1NXNscGdPSVlab0tDR0JwK3ZvYWtoNWF2M1JTSituZWlxMDRiQ09yK1BMcW9wclY0YXZITTNwZDA2MFkzbzJ0eDhuYlkwZ05PbGtxQXZzZTkwMTNKTGRxSzhOTHFuTVRaUlB6RTkxRmRYT1JHTm5aVCtNbGxjMnROVTczY01YTkd4T3BvMitocm5ZblB0dlFmOE5mMmho'@; put 'bXdra3Exdkh3M3NHZWlhREN6M25TSWowWEJwMmxzYUR3Y1NhNjkxWHoyY21tektJSVFwbjZNbnlZUElqT3laSWlwRjJQYmlVV2VBd01SdGVYa2grcWV0WHJmYmE3WEU4SDhzZTkwK245dTdQSXhvSDYzck03aVBQSXNLa082SkFpMk8xVEV4azNZRGc4Q2l4QWV2dkhLMWNXclg1SjdHMlIvZDhx'@; put 'N1g5alJOUDNYcTFGTlRhZGEyRnRvMkttMUZhTXVSRUU1ei9OVHVtWVIycTlERHFlbW5yajcxNUV6VG50ZmVkY3VQOXJDMktYd0NIeURQbzRPb09aUGFPekhVVkYzaDF1bGhFU01DeGhxTXRCaXQ2ckJXUzVhQWVGMWFFRUlBZW1EUDdzNzJXSVBQV3lkU1NvU1pwcHZTT2hIKzkvdkMvRGZnOVFZ'@; put 'Y0R2SGZrZ20zQy81bnYzRlVBQ3hBTlBGWDdOZENEQnRaZ2ZsdnRKc3d0SGU1bVpoOTNtclVFYnVqMnFyVFdRMGFjM0dEd1cwMnV3ME54V2FOc1VpanQxWTc3RVJudEpvTEtKelJaZ2c1R1dBQkE3U1dhcUtPQWdib0RCbHNSZ3BaZ0U5WVRLVUpuN25BN2pNS0Z0RmdFUXN0R3IxV3E5ZFlDdlVX'@; put 'dlZpa01mcnNCV1pmb3RSazRaQmlrZWd6QXlpOFphQ2lBVnZOSE5Uc2c1Y2NsdUcwR3kwVEIybEdKaFRLK0pGR3dKcHBvRzJRRkZoQXk4RCtlQUVCYXNlWTRDN1NpYVYxMkU4MVlJcHF3aVJ4UEx2L21XZjJQNHU5eno0Ny8venp0TCtCOVd2UXQ5RjFxQkM1TThES2FGQ2hNV0NVZ0kzU0dIQ0FU'@; put 'MFZtdTJvTFBLRndtVGNjamgyTHhFRTloVk8xL3VFMDdhc1IvUVMzNDA3Z3p1S01FOUdPcHVtY1lVWUlabFJFTzdON25kNUdySmQranp2M3N2WDBncDU4RWNZM1VZMVBuNERVdzlpTktUR1lrREVnQUJHb3RlSmxza1kwNTdRaFh2L1YrZ1Y4Z2Z3VXhyVm1DbW1udDhMWXAvbUFWSFRoa2N1bCt5'@; put 'NG5QMzJUaW01UUprMGdPMjRoejRDNHEwU1JUQTBRSDFzeGx4SVlsRE9iUUZFUktOYktvb3BpRjVPTG9HL3FOSnZsSGtrMU5tQy9qekpTQll3azNwYk4zalk5ZlM2YlBUZWRub25GWnRMcDJYaDhObTNlOStuVjFYdjM3YnQzZGZYVCt4WjZyeDBkdmFhMzk1clIwV3Q3R1E1ZzNiZ2NkTFlPZVRM'@; put 'RnNKVUM0R3VFUzNHTUxYalVhbWVvRThQcHBOWC9oV3RxbjlxOVF0S2p3KzlZbTBTc2ZSUVdWUXpyS1VhMW1iREpDTXNCYWlCa2hLR1RpVDlxZEN3Z3BuT3M3a0JJSXhiWGRXRkZhb3ZoSmxuY1dUQnNUL1ROdnJiUnBxYVpVTitCajJlT2RZek0zWXVISmZlZWI3VXNScHU2R3hQdDV4cVhPdnF2'@; put 'SGZxelJUYTJIM0JaQVdQWG9LNU1lMGt4ak9QRG1NRG9NQVdtdUJIQnl6Q3laZ21JRXlZQ3VuT0o4cnlic1hzTnFnNEV2SUdnS0piQUxsT2hra3hRUFFPV21qdlJ0SGw2b296MmZ6aFgyeDA0MU5xemEybzhtKzJkM05XZW5BcDFMWHk0LzNqN1NHdkhUT2RWdytaTXFyY3VrV2xNcGZGZTNKeU1k'@; put 'VWJyTzYrTFRUZTE3N1lWN3VsdDNaZmtkT0NIYjFuQXV4R2tHMWdmWmpBeThJaE9DMnZBQ0d6TkZVQWRVNmtXemFqSlpDb3dGUUJQMllyb1hJUGVNRTVhcWJYcFQxa0ZmS3Ywa0FtUFhYdjQ4UEp2NzVuRVg1YUc1dTk1QS9kTHo4RHE0NENmR2hpakRMVm5XbXdnOWdyTUJHdkFuaGxCOEIxcFFJ'@; put 'RUxBbG5nMm5zamNzQWM4MW50QVQ5RERoZzZTUmtqWXBoeWtkaVVJOE8vT05JMXQ5S3paMC92Wk0rZ0VYOVcrcUt1WjZ6emFFZjNxUkh6NVVQN3h0dmFoaE5WZUhYeFlpUjVxS2Z2V0V1T0I3cGczenlvR3ZXRDdRTnJ0d0xSQkl1SlZpT002RUNhYUxTQ1poWGxOS2dJODFJRVExa1p6SzY2TE96'@; put 'M1F2dlNRRENrQjRzTXliT2h3b0x5aUZ2a3JBSENPR25MMFJwbGs0OGU2OHhjUFhqSDdkbHplNjZjYnd6MFJ4cW5FcmpxVUl1N056alQzVEpWV0RqZWpUL2ZlTENuKzdMMjV6NngrdGtERStOZWIvOTEyYnFZOU5IcWJuL0hTRWRpYkpiU0hnZ2Q0bVo4VTVrcEEzMkNHZGRRZVlPWm5RMTJMVmcx'@; put 'MUZyRTNwVFhDWUxncjZTUDRCOUxQenBOSmhkSDF6NUo3WWdvNENIRjhCQUczNk12MCszUUVaQ3FJNklLQTdKMDBBTUdNT3dQa3c3VjFSUUoxYW5xeG1oOVdiZ3M1S3VpcUlnWXFMamF6cENRa2FPeW90ejBNK2loUWtKdGlaK2Y3WnZzYnUvcnZiS3IrOHFld1pidVhmMW5oMUp6ayszdHUyWlR2'@; put 'WHRqd3dIL2NIeHZyemsyMjlxeHoxVzhxN2w1S2xJL2xXN2Q1WEx2YTIrZGkrS1B0c2ZxTzlvYjRtMkM5Sld1aEsrcEF1T0tKbCtpaSs1MUd0YVl5ZTkxUlJIc3NRRzRWRSsxQnF4VUN6eXFKYXRBNlFJc1R4QmNXWlVTVVBhYUx6QVlDTEs5ZHZHdDVod0wycGIrSWkvWVJwZk9aYUlyaWIrNFpa'@; put 'Y3piUGU3MkRiWDB4MG56MnpjWmI3ejBrZm9OclA5cG10Z2VvTG9RQ2U0cWN5bU1wck4wTW9kS2kxM3FNeG1oTXh1czh0V3hKU0hUcllnRk9WQnRsRWtaZkpQZkl1aVVhUlR5aWZ3czVoK0pEcndzMEQvV2tWa0JlbjhQbVI0SE9Pbjhmc2VTOVp4T3B3aGhNd0RIZXFlMEJHd2tleXBvTE1BTzlQ'@; put 'NDY5TDc4Q2tjSC92QnpFTVB6VEsrNjBaUEVBZitCVkNlaUh5WlNrcXYxRGRENEJDUWFWbE1FNEhxN3lJcXBTbW4wLys3OFhla2V2YjFpL25iNW1ITUVSalRxWXdwd0pqcGVwelNPclVqK0JTTStYVXA5Y2hERDgzOFlPd0hkRXozK3V2NE83RC9UckNXMDVsR3UwRlB4UnVtNGxtQWdXOVM2UWtx'@; put 'cUxWWW8zRnJSbDB1bDlkVkZTejJCM1YwSWpJSDU2UXhNTFp6ZzcvNnhPNmpmYzB6QTUyTHQzY2Rhb3JQcFE4NEZNemVxdXVPMUhWTmRWNFZuMm1NVExhYVQvd2c3OHJTK1VYVzd4VDZ5WDJBbXduMG80eTV5a2FNaHM0T0lvS1F6RDdtQndjcEJZYU9RZEFZYmpKam94WWJaNUVXSkxXb3hVZVJh'@; put 'TUo2VVg4WTZYU0szMFA5SzFpRzFVQzlxeHBvbkZRYXcySU5Sc0d3K3BhZDZNRERhc20xUWtnbklOM3F6cTMxZW5FV2dVdTl4THFaQUQrcnBLY0hvWjZKbnZIaFFWaFVKaFFLMjBPQlVLaEFMTnRpUXZoQ1lSWHZKRnp1dEZ2a0VpRkJNYTZ5TGhMTVl2Y3JvbFRtcjk3SFZxLys4c25sUjViVE05'@; put 'Rm9oN0ZpVnpRMld0ZHpXV3U4ejI2ZUx0SzREZDd5OHJSLzN5ZjJMeis2c25EUFlzZHl5dDV5c3RmZUYwekVhZ2RybTZPblZ4NWV2dkxMVngyNGIzSGl5blFrSEtxUDdHcnNQZFZYNSsvU1RialB0SmdxcW1xbXU2WS9PTFA2NlBMK1Qrd3ZyeW9MZUxFeHRpY1JiWXhPMU1mYjJmNlZ3cmZ2Z1J3'@; put 'V1FaUFdaYW9OV0VQd0NGQVJrSlVHdENoVmJXRHdVMHRHcjljYjlVWnVtaGFERmhXWmF4azJZUktSUHQ1K0VvZnB2OE4zd24vay9OcmtUL0dBOUNYQSs2d2MweWhDSmNpSE9qS3RJSWxoQkIxd2psWkR0TlM4a0lNckl1WVdNQjNMVTJxemVpdExmUjVmc2N0YVlpdUpWT21aQWJwUklIc3gwNnAx'@; put 'MkdsWFBzemlnWmI1UkR6ZTBkMTBvRU42Qk5jMzl2UTB2dlJxNi9CdzY2dmtmR1E4M2pqc3FkamIwalFkd3g5TTE5VTFmMVY2cVN1UjZQb1haZy9GUU5iZURieFdqaG95ZGFVbEpxT0dHaFdLUEhWdENQL0FnM0pVRmdxR2FQaEhreWNCY2V1dTQ2YjdEeDI2ZjJubzFzUmdZTEd4OTB4Ly81bmV4'@; put 'c1hBWU9MV0lmUEIrNWVXN2p2WWt1d0xSNGF1SFJpNGJpZ1M3a3Uyd0w1UXZIMloyVGRPNWkzazBNUWNZeGxOWnBQRFpuS2FuYUVxTFVXUFFwaDFPQzBUWUIyMnp2N3F4Q01IRHo1eTRsZi9PWEY5Zi84N3h0OVB6czk5NHZEaFQ4N3R6NXdhSHI0Nkl4blkyc0dBSVgwd25nbEZNeEZGc2xGN1Jy'@; put 'TUF1cVZRYllVeTY5N0V3MHRnM3RpZHNweXplcDJQNDh1bFA4Y2Zra1Q4QnpMNWxjVnZMNUx6aTJoRC93WlVrd2twL1ZOcHhYcFZWRDY4TUNBRDdabkpMZGFyWCtsM2hYYjYwcUwwWGQ0cDM2LzdZYis4S0pWSmdNdUFoRXBDTkZwbVBHczFpQkVYOTArcEpjakVKR2gvTzJ5YW43dFhYdXRHL3Qy'@; put 'MGVTay8vak5jRnZ1TDRhWFBIRHIwbWFXUlA0OE4razgwOWRFTjdJdnM4eitOcjVaK0hXL2pXOWlhNkF2Vjh5MnM4SHdnditZN0dVN0RtWUJzTWk2RGpVclhTK05ERnJRWmw1aXVGcjZTOEozY3VTemRzYnlNcjZIc2hLUFN0OGw1NlRYc2cxNW9xOGRaZkpMR0ZWUytCbmZUd05FWVhWNm1yUURX'@; put 'Q2Zyakc0ei9nSXFZYWM4b21obXNaRWtBWW5JenRCY2hpejJvZ2VaNVV4NW1RYm5zc2V1OWcvWmRkYzJEeXkzTDNlWk1vcjg2dWFjYnRGUzg3L0oydnM0WjZPcERiSjFWbVhLRFhrdVloc0lzQWlid0dLWGRadU02TVduRlNRUDJnMnZvbjFuR2ZiZEkvNDdyMy9sZlIyQzYwc2Z4aXZSMTZUYmNl'@; put 'UHhsM2k4SVl2Q1h6eU10dFJIWnBHbHZpRzQrUjUwV2FhMVdPdWtnMEVuU1NoeFN3OG9pME56YWVkWWVlQWdJSURjdmNadDVPYXpLdkR6Z0ZQaXRKdGlCMmVYZi9uYVpmc0djdXZEZkF2Si9UbjlLYnJsUDhqQ2o0NHFNUnlSa1M0KzJYSThZcHVSbi9lSDNMaTlMWitpV3ZFRU1hNVB3OVFhVnZa'@; put 'UitmLy8vdzVmbEFnZW84dUI5UzcybisvdFA5M0twSTRzYmVMcDAvOEdGb2VzR0JxNGQ0alRMZEFHbDErT3dOalBJSFBCR1lSYkFwZ0ttb1lsOEFCeVdXRmpnc0JVNEM1M1dVSldPQnIrOU9ibmo5Q3NpMlpyRjNpRVk5L1RRczh2WW50MjNML3NvT2QreW1zbXN0dndHancyMHR3OUliNnB4NEtB'@; put 'MmZDWkJBOWhFSzFCSFJxQmh3THdQbzFGRkFaMU9aOWdacWcrRnFmQkZNQWR4Z3lLbU1lUjBPTzF1Mm9BVjh2dVFmN2gxTEhwVis1S0NIdWxYUFlkYWwrdHorTUVWVnpSMDlmV0dhbko0a3Y2UW1PNmI2NTlRSVNxUHAwS1lDK2hNUWdOaWlrdTRqTFJhV2FUSkxBNU9zdFZxcC9LR3p0UWZCci9U'@; put 'eWpDbVRjcTRJc2NQVHB3Ly9kZjNMRE9VU2YyUE1uVGhXMDQ1Ly9DYjN6Q3N2WXNpak5GMGFQMi9TQnQ1RnJ3QjBGRXVKL1ZIQ1ZhaGlRWllWVHFxR29XREVUOUZVOTRMRFRlUWJRU2VXNmFsajUzcVdMNnhiM1JpWWZ4d2M4Y1ZmYVBYcDFvank0M0JkbDlvc092VW1kYXJKa3duc2djNklnMXhw'@; put 'NjFodEsxbGZ5b1JIYTJPbE1jOGxkVWVpMmR1cG0xL2lzNnpCbkEweWV3S0hoZkp1WFk4a0NHYnlOZ1B2cDBmdU1UNHYwbjF2eXlEYTdjbzgrNHVvSXQ3b0QzWXZaa0tPWmlPc1hwcFR1UndCQnlLK3FYQ2l2c3ppdHpDdnR1enkvSDU1dWE1K01yb2JkUG1zVHRtOGZ1bDB4MEhtc0Ewd0hkS1Y4'@; put 'L2VNY2JsakdJRDZlaFlXdWFMZ3FTVWhTU1hOR0NxYzBsam9CRjFEeWJmazc1L0V2N1IvUUdHUHIvMkhWTFArZ0t2UUZQQ2VBajZNbEpaRHdLQ251RXcxYzBXRHhMQ1ZxU2xtcE1LSGZnbitFM1lYM255d1lkUFB2emd5WDlaZnVvTFZGSzhUc3pzYTVMNDEzNklsTDdKcDVnOEEzbG8wRUhYaEla'@; put 'anFZMkdPYTNaYkRZcnhTdk1Fcm8wc043eEo3RHdqcTk5N1Rvc1NHdlhmKzNGNi9DYzlOZFlsUDZBWitIVEg3REkreTZBdmo4R2ZldFJlYVpVUjNrdko5aGtiOXpHem03a1BtSExxcVJmWGYvMzN6b2ovZVlvTHNDZmxwN0hQZEtpOUorMHJ5Ym9hN2VpNnlrKzh5R3RuSCtmQzJuWnJHekdhZTdt'@; put 'ZzhKdnd1K1Qza0dLcEZQNGcydi9Oa0hJNHNTYXhQWDkrUHE3Y1QvNTd0djB2cEpBV1BBMS9zWm5Qdk1HK2U3QVdoc3dFRjcvL2ZvRi9MYzd4QnNGc0dmMWwrTUZIbTdFS0FyamhYUGpLZkV3YW9yUjJDZ2REK1hIYzRPd1Q4Rlg5SUVIZnYvN0p2TFZnVGZQMCs0VCtKUDRDNXkySHRjZDZjdTRR'@; put 'S3F6Q0NHTVRLT2xwK1VveCtNNjFHZFAydjFoMGYvdDRVK09uemt6QnRybjE5LzhKcDJ6dEg0bDJiMytOQXhYeGZyWUlUNUx1eEFCZ1lSTXJUMDhOTXozdFl0a3NKdThBbTNkckswWldsSnBmOW9HUGlBZk5lMzJkeDI0ZG9oODJmSG4zS2VyQjV2aEQ4UUtmQkZDTjJZY3hWalF1RUVSV01GeXJ5'@; put 'alhDanF0Qm53N0I3aG5WUUNzMVJIdEt2TTlxUUZma3RWajZvcko5T2dCdTJjckNPVXFCcWVZWlBNWnA4ZURrQ2ZrQ1hvcllkaVNRTkJ2TndCU2tjc0pXRlVIcG5LT3JBM3NNK1hjQ3Q5KzljR3lwZmpVOGZSU3k4anV6c0hPcWNEUi9iWjVjL2RvYXFRN1FheG5EMGt2RG9ZamU3T0ppYnF5b3Bh'@; put 'eHV1RkdLWjZzNzNjMDFkVEUrWnJIUU41TWd4NnlnWmZ5N0FXTEVUUVFsbGRaRHNSVmxNMUZXRXJrY0JwZEl1Z2k4RlM5QU9UZERFUk5zZzJCTjltbDlTcUhmVHNEQW96cXRXTHViNENaQjAvVlliY2paUGZadlo0U21EYm9tRTJodkRCbEFLc1N3VlBiQjUrN29yUHppdDYycFlwRGh5b1gyOXdq'@; put 'TlRVajBZYmhtcHJoQm1JRkYySDhodjVVZkM5NVJ2cHRMQ1cxUktkVHFhbG9kQ3FWbW81eW1vb0FmVWhBSCtXb01STTNBaDVLVERESlVtQnlJZWN0bGV6c0xia3U2UzI5ZnROSTlzYmhwa09oWG5kM29HRWlHcDJJQm5xS2U4T0htODBqTnc0TjNUQlNHK29zclVoTXh4UFRpVXBQUnpqQzk0L2FF'@; put 'YzI1L2JNSzZ2MmppR1I3dzV3QjlmNVo4dnUzR1lnUnFjakNocHhJbGYyamdJV1hCR1Q3SjcrbDBNeDQyZ2l6ZGY5c0liK1Y3aCtXQ1Q2UEpDdlp0SCtrK1ZERlVsc3YzOFRGeXF2WnprWFpMcEpuMXZyM3hsUDlONHlQdjZNL0ZjT1d0YnMyN3grTjJieE93ckIvTHRpVVRLYUQwSTFqaDY1Z3d4'@; put 'QkJRNVp6TTVYbkx4T2RHeXhnZDdtN3JMUUVtanJCajZMekRmQnRVeHRmWGpwSG5laUZLZU9GYVhlbjc1cm1vZXVIK3M4T2pwOXNrNDRaNTN1NjVzMjR5VENhR2EwcXpnUWlBemVNajc1aklQdWUvVDI3OFJYWnJxNHNwVEV2ZkZzazM0Smg5MmFNUlZpbnRXS2tvekVsdWxsbFNLZlRMb0dsVmN5'@; put 'Q0UyaEJnK1ZvSWlncVQ2WVVIQU1kU0ozVnJTL25NOGFnbjUydmlhS0g2d2cvbGRzOEZNYnBVZWY4MXZYWEh4d2ZIMjB2YTNJRzlPVkZya3FpblpJbThPTlRuWjBURG11UDN1VDNVRHhHMTZkSUkrQ3hFdFdoYXpPV2lpS2kwK1pqczdLSUJEa0hha05IVnFsaHVDUnFpTXp6REtsMkppSnpJRlE4'@; put 'd2t3cElOb0VCaUt5cWdxaHFycXEybEFBUnF3TUJZTUJLaUt4VmVaMjdyVjE0STNFa3lLcXMzL1MySHZOYU5lcFVMaHNOcnBucVhLeHRmZDRSOGZ4M3RhbENxREgvdjY1dVg2aWxSSTlxNjJoeWhGUHhXaHZ0ajdlZFhKdzhHUm5NckpIdW1idndNRDgvTUFBUC91amhyQ1Z4U1ZQUG1WakpoUGZH'@; put 'amRpYkFRbU1ZdEZsaWhXc013OWJ1N3NiMzBOYi9JUFdiUkRmZ09NVXNDdFBhdkQ3NkJoQVNyaFlOZmtRSnBWRm5MNDl2bjR3ZDdHVUUvNDBLSGllZGlXNUw1VzZRdTR1WFhZMit5Vi9nYWsyVnExTE9zNzRQdVQ1Qi9BanJLZ0FUNXRWeTRvWFV3cHhTcmJxWjZNQSt3NVRBMk5WZFhqZVdvNldB'@; put 'b0x6Q3hTcmQwVXFSYkJDampnOTVjVSsvM0ZpY09IeWI1QWNiRS80QzRPekt6OWtZNi8vdEw2dUR4K0tUcVNNVnBBdHhaaURjbFJ0MVkxRjBGZ3BLczVvQVBNZURTTXVoRUFDSWlkUG0xOENUS0ZSZEZMelNVdXB4eEhGN2ZFMFdWSGdKckp1dHhFVDhhTENrcjh4UldIeHpyeUUzN3pQNDM2TWFQ'@; put 'ZlF3SnJyM2J1WXZzK0NBdWdaNFltdFBRRkEzUFNsSjIzY2cxSTU0UTM3TG1WYXp6MUM5aHRjSFlYMks4YjNzelBYN0JaN2N3aXhOUVlZaW9NWE9tdTc1Nzk5SjVEaDlhdXhSN3AzNzQvZFE2MnN3ZnJPUjJpejhGOEJOVE9wMkdpd1F3NUlDSlB3S1NLa1hqWWIwb0FiWDcreVh6UVpPalFJU28r'@; put 'a2JKT29ROTQyMC9sVHluRzJpcU1XRXliTXJXTENoYnRrbDdVQ1ZxdE5hdWhwN1pzV1NCNTRIZjZWZ2R2aVU1WGtuczV6MEkxZnVUelcrMSt1OTloQVBtam9tVGRoZzlKSitkZStFNytaanAyc0NQZVBNQytIVDdzR0lzM3o3cHQrOW9VQ205dEdlcE5TYzhwUDRsMktGemZISXMxSXhXZldzRy9I'@; put 'cnRnTlJQT3FIUU5kdVpPYWFrOHNxcTVrTkhVRnY3a1RPaEFkcGo4WmliVWljcU1aUjVzMnEwN2ZMaDRUczJEblEzUzQwU2JEY2NVL1RNS2M5b1U5eWg1eTdpSDY5SnhqOWR2eklMcE1IVGpDQmdLekhKb2lPNkt3ai9aY0JpNVlRamV6WURkRUo5T2NBTkNzZjJtd1Bhek10dmg2R2JiajJweUhi'@; put 'Z3Z3UHg1QTR4aXlNNDFQWk1LbTIxREZjemJzTk1VOVAyUDdEVHB2OG5qODl2WmFkUW1tZ0tiU0ZuWFJwc292NjRTbFdHU1ZYUVNzM0tzbTJ5bURUQ1hzRitzbTFYUW4yQy9hTmNtc0M1dndNeEwvVnZ0VDNEYjhVbFlsd24xWEREcHFLY3VyOHJLRkNiWU10ejhaTWFBVTZIb3ZGbEs3WUFMSUdX'@; put 'WW1MRTFKWjBLQ2IrODNMUHJtSGo0TVA3SHRwbkpQdW1maVBZd2o3bThqbCtFOFlMVTNuVmdncDNnSGNPd0lQeHlrWmVTelpHWElBb0VhZ1BNM2cycFFpOVlzVFM0VHFaeEYwTEY4c3RuR3FLemM1R201bzZsUGNmMnhBL1hSY1lHcXBQdWhrVHpZUHpFakxrNk9OZ1ZyS2lxc3BiMmRBeE1WNVVO'@; put 'eDd4bGptS0h4VnJaSGh1YW8vWVN6SEdSZkFqc3BXZ200c1k2R3VZRnMrNVdxa3ZJQWowMEFDU0FaM2FBbTNMTUJyTDdxQkVVNU82VlZjNHpBb2xMRDdDYTBualIyVlRXUGpvK2Z2RDY2eXRkUmVYNkVxdGpvaFBIcHQ3Ly9pbnBWWS9mcE9jNVNLOERQclZNdnRoaFFKS1RMeUJhWkkycGNnZmR5'@; put 'bE5aOE9jOVFDNWZRTVg3V2V4ZlpRWlRSY1ZtWkNVV0tsYWFGU0VEeFBKSEVDa2daUEN3OUJJVk1uaEN6c2toZFVTcjVPUW9rUXpGQnJUYW1NZHQ1NkVYMS9GNzd6bitUd3RnK0p6QWQxTUZqY0VxUmtJMXROOGF3N0ZlT29aVHZuek56Vk0zbjExK2ROOE5OKzZESHQrSmI2RmZhMy9FTjBzMzUy'@; put 'Tk5OdWliNVlBWlJRM05KNkdkWXd4OUMwUjFLR0N6MlNqMWVNT2kzeDVPdXROSjBZN3ZlOS83VDN6MXVaUHZQbmZpMmE4Ky96eldyMzMrODI5S2I5QitTOVpIU1QzMGE2WFpNQ1k5Z1NsVEk0SElYVlBpUEVEbjdtSEVhVVZGTm9jNkxOaUZCYmFLUWl3ZXIzV1YrMHA4NXRMWExudmdrNnMvOGV4'@; put 'dWVkSTFXbVJ6cFlsZU9vby91bmF4TDRQNVdrQjg0dS9CbUR2RWVheVhqdk1rc0UvNkNiNUhlZzBIcEwwaitORDhpSFRQUE91M2VuMHZQa0srQ0ZLck9oTXNZY1lsYUdrODVQTVNtdU1HSUxNeVAyTTBZWFZSL1UxRGdHbFFSaWxnc3pCTktIWVhFcWViSHhXS2xNdEViTjVmamVzYlV4RmN2VENo'@; put 'YjJ0MTRsQW9ITVN1bGpiOVBUVURUYmZGNjNycTR1ZlNBOVg2Ym9PN3R2bzlEZW1Dd25UREhkVzF4WVp1R09leTlRdm9DUlkzMmprL0RteUl5NGFIbFZ3MW1uKzVGNit5ZFFCKzlDenVRMCtwaG53WUQ3SXVadVhUZTRRbmFPNDJFUjExYnRCcFlaNkJrcVlaSm1rUUR5S1FQOGdvV0E5c1QyMWJp'@; put 'd3VtSGdwaFoydWJmaGRkRkJXdTFmdDNMUnVLYTZ2dmFFZ1hGcVFiM2xOZDZ6WjA2NnNIMHVmWXdtNUw5OWZvYWU1NUM2N0d0K0ZIclNJdVdGK1hmb2tNanlQOHRQUkxsZzNCYzk5bjBMZVliTFd3VXlzNlFhcVFtVkhPY3AzczlMeG9vL0hMREV1ZWFBaTJUZkpCT1htZzVVd0ptRkJLdnNCYVAz'@; put 'NU44VDh2WUltTUFTOTRLV1lxeWt0TDNDNkh2YWhBUzh6OGZBcEduWmJUN2tIY2w3SWNPcDQxem1QWE5GK2NiaXJvVG5BL0ErQWpnMnJCUDV5S1RuVWNibTA1MGpIVnNOdmJHMmh0Qy9WS2QvYzBOdllFYTdXWlB2UFlWVjFkVjQ0VjlIUnFxNzJkdFNicEwweVJqcHNQMlBHQzdXQWJ6NEZFWkF4'@; put 'c3lUTFVtOG5BVHRGa0lpVFNYR1FSRDJzeEFhRXFFblljd3Z3em1sVWtpdHk1Unp6cHE4eHFEd1pBczFEakx1ajBwdElzZTFNZDdOQ1ZZNXA2UnNiV2ZqcVV5YlNzWkFhdTh3d1dUTVNiaDU1N2JtNnVvZmFod1hOOWw3ZkxwMnkzREQ2a2pzMjZVRXVteVlHUkFZK0FpeWt5dDJSRmh3bVlUV0RH'@; put 'TFJ0WmpRRFBlWE01N1RhbEJxRElSS3NBV0htRlUwa29oUy9HOFBqUmU3N3lsYThjaGE5N1dEUVhEdzVtQjArY2dHLzRLQTNwc3YzcUlwUDRhdkljeTk5SnNDaGltQ2F0QXYyeXdQNlNWcUNJd2hQYlpQRFFBS1BhKzBpb1BpOVdWcnBkVlpYdXg5alBLaGVacEQrOVR2cU0vd1I2clVGSi9IL3cz'@; put 'eFg1Y0owV0ZRbTREcjBxeHpYSDhTM2tycmNURTZWNU9GMjRSM3FlM05YOWRtT2lidEYvNGVBSGhzZ3JEbGx1QjlhL0FYN1BvN0RUL2d6NDRhRHBFTG1KcXRWM1VTM0d3dHJzV0NQRXRBSld6Qjk2bUV2UE53b0hMbXR0WHM3ZzhyR3pZemdRbjI5dDNadFlxeUlmWFRzS2ZYZWlWOUNYUUhXWjZK'@; put 'bWlTakFRS2pJbVZNbTBUU3JzSFFvRVNrdmg2eFg0NGZmRFJ6bmV1OTZKMXFGQk1UckQxbVlCZTBWak41QjhWTUpNb3hKZzNJT3ExcHlrU1VRZ3RGZnpVdlVBTzMwQkM1Q0JBR0hkdEJNTTE5bkZ5RzBQQkFKVVoxUE1zUVFORm81UTVUelNXcE5YcTFzakpUR3JzOXp2OEFCdFdteFY3Y1g2U0tn'@; put 'ODJGQlVFSFU3TElVMm8yMHN6ZXBqWXJEbnYyTjdIdEhSUFkrZzd6RTZESytQNEg5bHNzbUxXalBwU3FmRHJDSDg2STBnT2xGR2pGeFlnZVk1Z0dSMTU2MHFkdG10T1pwRWFuSEZVM0VTYWJkT01WbEJ0dUNrTE1GaW0vT2k4dUpNdW1welpoU2JPenRMRW00cTh0RnFIcXVJZXRHZm9jOGgvZU1F'@; put 'UC9ZNUptUzNnVG1HSFR2QW5GVmdzSWdlM0FIbThoeE1BZnJvRGpDcnViRlcwTDBjaG15R2VUblhqd2w5Y3lNTXp4TVNYZ01aWkFGVGZ6RFRaNlh5aDJsNmNNSkI4dENzTkwxbTJRQUNVYmNBZHFaOHhxUGwxaEp6NVd4Rk5taHRrWVdTQ1NRa1ZqSkhValNaQ0t3Q2NGR3lTZ2FKdExibkRMNlRO'@; put 'RXZpdDNrcXlWMTNrZk9MMG9meE1la2pMUGVqaytYcXBEREpsTmJXQ0VRajZpcUFOTXV4QnBmWmdHNnRtQWhhbWR6cjZkR3NnRS9DTjZRNW9RUVBaZmt0TzJ1ZzNRN0FuRDJFUmcyb0FkdEFHeUdzdWVsdHQ2cWs5VUFiV2drM3ZHV3pUR1J6QzVyWFI0NXMxNURIL1drY0lZVWFnN1hBZGw0blZU'@; put 'VThCbXZCc21qWXpIM2JudmNtOGN1TGdjR0c2M29LOVpXYldkTTljL2ZNNW95bHlVaTRMOXFzOFc3azJHYmprVS9NYmN4Z1FveW1XTDRQby9GcW1RL2V5V2dLcTJoek04d3g5UGdPTUdjVkdPQ0RhM2VBV2MzMXM0Sk9jcGc4amE5ZnBEa3piS3dJbjgvNis3YjBBNklDSjFRd3g1Qm5NOHo2cndI'@; put 'R3h1WVQ0Zk5aUDc4RjV0OEJwb1ROaC9lenN2N1pqZk1CZnFxRmI5OW5PUVRsTkx0OG8zV3hvR2RuREFhVmVXR3h3STl5U3htcjhYTkNzd0xRTmNaOEhJRTVURW1yRWtNQTNrcUtvUER4MTNueTE4REFyNlo1K3RleitKbGNDaGh1V01UK3RVZDRJdGlMaS84QU9HRDVMVXlteEdXWmN1OFdQTEdj'@; put 'RFlhbmhMeTNuOWtpZHpiREhNT3hIV0RPS2pDd3QxL2RBZWJ5SEV3QmVuSUhtTlhjV0N2b3VVM3lpK1pNM1lGZkpRNVFBcm9uZEFqSDZvSmg0SXh3bXVac3V2R0h6NzA3Yys2Mjd0dk9kYjc3M0IzbjN0M0pQbWZlZlE2eGVqVWxSNFZXdWRhamM3Si82OElhVWxkYlhsWmkxdEdVYktRVlJqenNx'@; put 'YUI2aXVIcFBHOVF6SUlwOUxqZWxkVnRPRUVFZzBKOXBPVGlSNEk2OVhGZnBoQ1l2VDRRQ2RuRGRsWnhvV1J4aDhBOVRLc3lVSk1pY3JreEQ0MGpYdTZGWFVueTFlVEIrNWJTcTVHR0kvTU5qY0RhVFVjajlVZm1KRlJaaGtlN3NzRGhPSE82djZKTWVpS1RKY1UzOUMzZGY5QlhtVnFKMzlnSHZP'@; put 'MnRiRnlSZmp6dHd6ZFREcGYrTUhUZFFNTzBYN3E1bnVLZTVXbXdmVzZXYWVIUkxmU3lHZVlZK3ZFT01HY1ZHS0NGeis0QXM1cnJad1Y5YWpPZmMxdVpqZFV1ai9YY3huNDI1ZTgwWk9xQU9yUWFyRjNXWWZuNEsxZUVDWnJMNG5KWTNFVnVhOGhiSlBLc2dxUXEyeW1ZeTNaYWVXWkx0dE9abHRW'@; put 'TTkwckw5ZDhiYUcvdmw5WnlzU3ZpSlY4RFNUWC9sQkhzZGhvdXFRZnFxQUFkQUVwTW9NZEUrWFJUdktERGN0aTZURTVxWE0wQnFsN1BaNHoyZ0RmZ3JmT3pZNjFjakZSVXBwcFNjbzFTaWw2Z2NlYXhsaU9aek9IbWcrMDBXM1ozZTh2d2NFdDdKTm5iMDVqc1hTYm1wdWxvZExycFdMcGlYM1BU'@; put 'ZEd5ZTVzbk9kRWFpN1oxeG1qTUt1T1o1QXE4QXJ2dEF2eFBVdTRpMmVTN0FIbnhBOWZ5aUFvL0ZXVFg4QzdubkJRUHE1OC9sK2wrWlVEMFhLblB3cGhzNW44Sno0VU5nSDBaUUVtVndONi9wTFNzRExIczlZSTA0c1ZIZmpIVkdBeUdpam5wMnVoRzVpSGRIR0JPRnliODJiUE42ZnA2UEV3SENv'@; put 'bFdHcTBpUGRLSmV0MXhnSUVwR2ZrbTIwR1FXcUJiUEp3M1FjWnN1MmNhTWN5MnloZGhrVWdtTXpPYUdLTitNRmc2L1pSZGdSbFExTnRiWEk5U1lhZXhxYTZsUDFpZGlVY0JjblQzZ0R3UURRVXZPckZEUzNMZGtZUER6aVUwSHZpQnpPbkR1dlBGbGZ2cWJPUm4wWHRtN2RFS1ZuakhYdlZBU1dH'@; put 'M2JmQ0lzZmFBM1RMTTJlbHI0MlhCTEl0RXlONVpQMjRqWFJ4S3FrMkxwRG4rYlArQm9xcW1Oc2J5RVRwYVhrRUlQWmNxRFdLdHBEQkdkTmxWS2tLNEVDNmk0RURhNEFMeG1uV3dXQm1oNUFBRmpRUWNjcFdPc3gwcmRlTkxGQVpEQ0hxellkVUVLQzNBM1hSbzQ0OXNDeHdyZ2orVEF0UlQzeGhD'@; put 'ejNoaTNCblIvb3VGR0V5WHdEK2JpbHEyR1czSDM4YTd0c2ljQ2Rac050eGJEMk9tZUxka1VuTDk0ZmdEbDN5SE8xOHZiUGFkOC9SSFY4NHNLUEJZWDFmRFA1ZnBabVdIUDE3L0d6dXhvUDkvZy9kL080V2xRTEtKNmZzeko0WDhHejgycy8yL3cvaC9rejM4TXorMnNmdzYvY2krUEw5R2FxVTd5'@; put 'VFZRR1Z0YmVqTDJJMVFiS2xwUERialBpb2V4anBmUVlUd25lV3pka2w5SkRYd3lhQUpOVjlXTndkOHZMeTJ2TGF3SytVSkRtMnlzcVdORys3aEExS1VMY3BpQnk4cW1PMjlvL24rNDVreDA5Mjl0MnJPZEFiM2pmbWZMSnFvYWwvZ01WUFFWejFjT3hnWGw2OUdINTFOS2VXNFo3ejQ0T1hkVTFQ'@; put 'anJSMkJzb3JneW42M3JMMTM2MmxJMk8xaThPeDhjakZFLzhUSS9LeTBrdUwvZm04VDNLOExlYjQvWDBkcy9wdmoyZ2VuNVJnY2ZpRldyNEYzTFBDL2FybnorWDYzOWxtY3ZkYm5SRXJtdTJnTVhjbGdIdHJGUE96QkVMVFNFTmtQOHNrTDkyU1FTKzFFNHdqOUJUVkFyYVZZa2s2cWxycmo1R0I4'@; put 'ZFFYYU9FcmNHZ3B5UVFLUGtGcmFYNmx2d0wvbEtvdENRWUxDa05kYzAvcjN5RU9TbG5qRzVVaFdweU5wc0RiTFl3UUxsTllKM3BGWnNObmdxcXA5dmFiQ1hiMld6cUE3THRiRGF2MTF2anJRN2F3cllOTnB2YVpLTVdtOFp0NXdhYml4cHNZUUVFWnpnNGN1UFFaRS9aL2g1ZkNCaDZvcjlzZnk4'@; put 'SXU1L1V4S0s3b3Y4OEVmWENKL3pCL1ltaEcwY2lWV09oaFNTd2NyMTMvTGR4YlBJQU4zOFIyTGs5S3IzaFlmdkd6MmpvL3M5eHVqaUl0bmxPNmVKRHF1Y1hGWGdzN2xYRFA1ZnJaMlUzZjg3UEhtZy8rK1YrN2xhZHEvS2NyQS9uejFXM1RaZmJlcmE2UTdyY3RvZXcyNytXTStmb0llemJQSVcx'@; put 'L3M5UFlZWFZyZWx5T2R3OEorTUdjRGFKVkRHWGxseGM1aWo2MkJhL2h0cy9kK1hzbjZPRGFMdVlEamFnKzNab203T2RzR0dTeThiUzlUMkNGMnhmTi9UU2tXa3R3VUI5V0lmSmlCNU1idGhxc3NMS2ZlaTlNMERQU2xtZEhZMFdGeGVYRnBjR2FPekc0YVZCQnkyUG9hWDlZVjRLeGxWK0ltMGln'@; put 'dGVmaUhlNEM5cHpkV0hGRmVVbFpSYnB6anZ2cW1oTkJNdDRpVmlGdTloanhaMnNVRXpPTzkxRGVvQm42VTFDVDNNR0xQT0E2VldLaWVDQXFkVkg5SUplRkRIVzE4Q1VtV1cyM1d1dC9Gcm00UnJvV2RRVGNWV3BaQzhCeDFxdjU1RkN0M3FKbmt6OVZsaFEzQmE1QWRvRVA1K3gxdGJXcG1vYlF3'@; put 'RTdHRTFocjFFc3k2RWx0WVBONUxRcWlBcXBNbGhKRDBWWnlaWWsxcFdyT2VwK3F5U3pVZ1NHeS9vM0pyUFMvRmFHelkvbGsxcGx2L2h1NWd1RlpGL281MXQ4S3A3TFNYbDNRT2JkRDZyYW5sWGFZajE2YkllMkYrVzJCT3ZuT0gyeTJqWFdOaXkzUGIydHovNWI4Z3pBRERJWWk5QUJKcmtCWUo0'@; put 'V01BVUNHRGxHQXBUL3pseU81N1VnVDByaHpXc1hiQnBpMEN1bnpTR3FWakFTdEdnWk5nZ2tpMTR2NTlEUlV4RitNUVZQQ0tMU3AzWkhhQ2JGYVJNbTFkMUVFVU1iV3hSZXNzVUc0RHljVGlmbjhhcUJhVHpQNXZGNGFqMDFZWG9pSC9MTHh6WCtMV21neWtVZ2FITTJ4YldaRGVrVTk5OS9LQ1A5'@; put 'VXAxVDBiLzJqQ29uOUdPdDdlMXJYOStRVlpHTG9iWGtZbWhINGY5dDlodnN1YnR5OXR6UmNiUmQvQTBiMFhkMmFLdllnZ0xBZkpIWHlBSFA5N0U3RmdZemZVV2dpSzJBTzM2R1RMUDdLZU9KQzBnVTVZQXlGZktXTERNa2dESHRXdVhZemVHblZUWld5b0JLUGFKZjRUTzN6SkdxQXNWaHpsVVZU'@; put 'RTVKVHlqVmlveUhtcG1JNGpXRzlLeHloZVhLaGxBOWVtZkdScjJLRUNaYXNCMklBV3dCbWdsZkJ2UlJEZWErUnF2VExOTmdyYkxqOHUwNExHT0dTUSttcllJS0tGcy9QcnhkQzVxb1doUU9oK3ZERVpmUEhtcjBCMW1ZVjl5MEl0Mld0RnZxR3lBNTlmYkgyY0xjSW5XNmdvMHB1TlhnbVVtL2ti'@; put 'MnVVbmVoc25LYkZhdnljY0VIdzJkNFN1NDJzVmo5TnJIWXpiNkFYdllGV0swbW81RmFXV2Q5ZVV0Ym5rOUxhV1NFNjZ4VGNsdnBaN1RPazdjRjJyR1FVc1R2ZndCNHdZOEtVUU5xUmZka0hQV1ZSQzhxNVFvQ3ZRNEVEWEg1VUdlaVJ4U0NYck5xd1BsNlhsSFVMb0VicmRYeTArMGxmcnJ0b1pk'@; put 'NmJZVTJZcDNPeXR1Z1RTM0FtWTVHYVlRMjJocHRTU1V0RFphR3VocS90NnpVYWFlUjJtS3pZdHJTKzZpNE5lditFOUoyY1dWVlZkZ2ZNRGdycTF6Ly9aWVp2Sk4xdnJLMmhwSmdUYVhMVlRYNnR0SjV3WmQ2RFlpeGl2RS9qMWtmWGYvVWxyajI5d0NtbFBFLzk3ZU9mb3pIdE9McmU5RHJ3TU1P'@; put 'bnVkQXNJUG5nU2hYZWZBY0lLNHpBMTZYbDVYTHlDZHdhVm9rcVhEcTY1UlVMZVpsSFdkUHF1c2NnUUx5a0d3cjBOelpkUmpyQlhZVzdhVzU2MDRIMFFoZUpqSjBxbzJWVFhOTGpxTlkwa0pWUldteDIyVXAyRFl2MXE1TXlLMmUwU0g1akhxWXpxekNiVDhjNTFQTG4xV3ZWY0VzeTJNbUhYNTk3'@; put 'WS95TklGbWFmbk5VL2t6QUpCM3hrMXhTSlpqQ242d05sZkhhOTFTeHp0NCtEQk5jb0wrWm9BSFBnUzYwQWUwem5nQS95djNtZUY1QmVPTmNmbjVwOWx6Vmp2TGRIOVUxdjNXTGZ3R0hJcnJoZmNBeklRTTQwSVhPTXdGQlliWDRENmo5QVA5UDh6ME5GYnBhZHJQWVFZekljT2Mzd2pEOC9sSkw5'@; put 'QklBYzM0Tkp1TUJuQzFCRDFScXBFM0ZmWVdvQUpucnJCWFRGRWlTVHRGSittVkduYnRXcm4xMXNWRnNBRVhhdkNJOVBQZWhkNGZ5dlVDWHBhWG5NMFVtSXlpam1wZ2ZUNHYzUVFmaStSNnZseGFjTDdFejhOK1V3NWI1dWVmZExMN3N6RE5DNVRIeDk3SlEyTmpoeWJ4d1JycEphd0xMNFR4blBT'@; put 'RG10eVp5VTNLbVFuZzhSZmI0UnA4OWxka241M2FXZmR6V3duMjcyRzJyM0ZadHZIWTZoQTh0eEtyQWc4NGZTRm5XejNNWkhCY2xzR2YzMkdzaTduNGdQNDRVcDJUdE9UT1NZNmlwN2JZWmR4dnZpdm40eDlkUU51ZDUrREN6V2NzY3R1cGZQd0JGMTRtNTZHQ3NINFY5dDZHeXVtNWZlNTJBVDNK'@; put 'WFM5Z29LWFVTcTRZODlUSzdXVXVCOHNyNVlxOUpIOWNuRXV1Y0dKcjNnenE0NnA5N2ZrRDl4ODhkUDhTNlpIRVlYcDBlYnFQSy9lNWp5OHUzYnUwS0pueGZ3MmNIUmk0a3Q5RkNITVcvaDMwTzExWEM1cktUTHF4WG1jZ3RBQ1poUWVBaGpSYXZXYlpiQ0E2blJJS01JbEdRUlVNU0NiOWZvU1NM'@; put 'Y25tcHBRLzRZL1gxVUIzWG5zZ0ZBZ1d3THczaGxIek1sNmx0aldiYkRwWmhRdGxQSDdhZXpvWVBOTXp6TktiZTA0SEF5ZTdGVFV1WGFQS2M4YlhicWlyNld4S2RmSE01NDdHVkR2VDUwU2QvSXl2cEpwZDF1dkgyZDZtWlByOTRoYTY0RG0zZEcrbmVXd3VLOXQrUUtmSEdmMm1aRHE5eU9HbG45'@; put 'RWNYUm1lUG8vbWJJampqSDVUTXYzZXZPMVlaeGo5VG5QNnRmR3hXTzB6bTJlVFBNK1BiS0Y5bnF0TDV6bkQ1M2tFeVhYVG5heHV1Z3Y5ZDhZVmo1V1hhWFQ2RXF6QnhZVkUwQlNBdWFEWlBsY0F6TThsMFBrdTd2ZHA4ZFpUZjlzMnVRSnYzV3JiWElHM2FyWmpyc0EyRFhtdWdEa1k4ZFAwSEsv'@; put 'VkFGN0ZKVUxOb2JkUkhrN2FycjFpbTZDeiszMnJseW9aUDM1U3R6bjJiRHgweVJKeWViOVl6blVIV2dmakNvdTZXQVhSaXVYQWs2VzA0RkM5YzZLOGM1R05PeWVLdWlWRUt6QlFQaUswSmNtamZ0UEd2V1dqeWkyN0RidndGcTNZRWVOMjI3YTFIZDgxVTZDMm1tMmFIdnlaUzUwUDRMZktMTWN2'@; put 'SGh6ZkxzRWp2aFRlTWQxODE0eDJjNWFITmx5NWMvNjVpamZQS3J3SmZMMjRBMjllVkhnVDYrczRiOVlBYjlLN0FxclFGek1XTnhhUXl3ekt3RVR2SXBTM0ZnQTE3S1NHbm55U0cyaVFUMDR6TXVnSnMvTzJITmhFYUJNTlBZaDVPMjB5Tlp2QTVXT2JMYTAwTkpZSUpoNU10b282N0hTYnFOZnBG'@; put 'WGZZSStySTB6c084RDc3MW4zd09PbTlCNXV5NEhweTF5Q3d2UDVPbHRmZmdMNldLYTdCZXFIV1NReDZCeWFHWEZLZk5rZi9XbzMyVmlPR2lXTERTVkJjZ0dGYVV5Z0ltZ1Vkcnl6a3VYdklneFFzMWVmYjZBM2twcmRxbEtuZEhwNmxCcUlqcW1ZQ3hST1YydzJvbmhVYnVBRlROTEtoMllHU3R4'@; put 'WWd1Q25oNC9nVzJrMjA1MnNTQW1YVlJadXpDSnYxbzJsMW1VS2YyeGhnOU1mdXBHQTBtcFpwOUlvdE5Pb0ZHMFpndHV3c3QyWEp4Qlo3bCtjaHRPVHlFSTV1bzRkNHJQeXVYS3o4NkFoUzVUQzhuTXR6TUtHLzM1TER3TnF5ODIwV2x3ZVltN2ZMb3dBYjdCUGJ0bTNQeC9weDRXNGszNmV4aDky'@; put 'bkVhRG5NMDRRUndXd3JZVkE0c3hObHROUDhuSDF2Tk1FTFFLQlluL1F3ZThuWXRrRW04SVFtNjdmSVBlTTNqYXR0K1ZpRDQ0ajE4bjNjSkR6N05ZTlM2a2NiUEI1M1BlY1ZGL0t3ZWM2QUhPZEE3L0lqMjdpVXRwU3JJZE5FVEVXL0ZpSDZabE5FWHZpWjVGcjRGRThMQWQ3eStSS0YxcFpzazE4'@; put 'dDBwK1RXTzZ1ZXFUalNGZFk0Q1d1SVc5b2lyRXZiVVNKWm1MNHBJNUZrUlMxNlVjenJ1dndiTE5CU3FLa3doN3hlNEtZZlRZeW5OZThOZ1dPdUsxS0ZSbTdtVzBJS0x2cVBKY3ppcDVMdkQ4M1Z2YThyT0hpOHJaQXhibmthcnRhaTVIWmdYZHNJV08yQjBlak5ZNlpGdHJTNTZiWFA5QmFXMkIy'@; put 'MXJ5ZVNOdnU2cTBCZC8zMnp1MGZVNXVTK09CSDFhMVBadHJxMGRuZDJoN1VSa1g2OXNZM2JDNld1cFBGOUk0Qk0xSXB6VTdMQTdCQ21ESUFXcTlleGhSRjZJQ2UwQzU3a3BWRG12SWw4Ritma3Z0SzgwYlAwd3V2czI3UE56MExvL1B6SzcyajQvMWtZdDM3dDY5ZlIrNStpU0NiZ1dlT3kxWEo4'@; put 'bDlwSk9pdjZ0dmJMeC9kWlpjM0wzN1RybVBFWHdGZVE3MlVjN0dOeEthano5aUFCVTV0RjMrZUFFeUI0VmNOcjRjY21KT3ljUGpsWTJPVkdscHl0RllNVkZMUnFvcVVnNlh5NUdxcUdMalRLS0hXS3dseE1hNVpHNzY1a3gvSmJzL0h5bVJhd2xHc0VPb1pMVUV6YXhYZW04T3phWmYxV0lCT0h3'@; put 'MlZ3UXF2SzJLQXZYOTlUZDFkVVVpblowUmVvRTYvU0lqL1BkSVY0SS9jUHQ0anZ3ZVFMb2JXVkVybTBHMEVCWmpvZFF5b21XVkFPeFdHTURwTEpPRUFuMHp3YXVtQWk2TlhGVWczOE91Q2pMZjBGSGg3czhGbGg5aFVTRzNIRkxtZDdtVGRudzdlUUZHN21IanBwM1FzNEZWYVRrd0h0SmpZWkFl'@; put 'bUpOWnFrNkJmbGVWS3pTSU1NR01ReGZvVUsxTUhJaWFmTW9WeS9TR2RLNHkvYmpBVjJ4MW0reHViYnBvMnNrKzI5eTZ0R1dHZE5xc0JRVVZYc003K0UvOURYdy91dkIvc0ZvSUVaWHlpZ0V0SUdlSXVyYW43YlpjRFlWYjlBZmxvZ2ljUGZDQlFmS0s0NVlQT2Q3SitLNVgrdG42ayt0ZkFxWUtz'@; put 'QjVLK0Yza0crdTBBcm0reEkyWGtsL2dnVTFQVlZWNG5RY3RXUUF6Sng5dlV1UWo2c1YxTzhqSFZ4VDVpSHJSNHdodDAvWVlmdm90Mng3RFhhcTJxN20ySzdoL2kzemtiWi9MdFYxQlgrZis3Zm9nUGM5UW40VzgrVHR1UDd6NU85bCtpQUJNbVBuR1F6TE0wd3lHcUdCNHJQM3lYRDhGUUEzYng5'@; put 'cGZ5TVhhQzhiUXRqbVF2ZWk5TytpR1YzTG4wcjBIdU81dFJQOUdUTGpqcmUrQmYxV3F3UjF6U2h1aC9XMjBFZlJ2L2w1cDA0MC9neTZTendMTmxERjZHZHBjRU1mcHhhN0V5M2xzOW9YOEJmYms5ZzAzMkRQYkIzOFdmWnM4Q0N1MkFBWml2TGFOeEhLMWJUQW0vbXMyWmptOTBhbThFT2g4UXlH'@; put 'VHdJUmFvRGhnWXpkSWJSeGJ1K05Vc0c2SGFWV3BQdlA1NFVmSWcwVmhQajgyejMrR2VkcHk4NlJrb2t5WVl2Rmh2QXZXWk5tcExvald4Yk82b0UxMThZKzMrbnp3cjRYK2V4ZytlZW52WHZqQThkUUxkUE5PZEIzc1BUZ3lSWDc0L3MrTWhxM0FJd2prUUdUOWQ1b3pxcitQMGdYVU9JdCt5Zk1j'@; put 'NHhhc0xlUi92a1NQZFdac05PbU02ajk1WWkrd0NTYVRzR1ExRklrYTlWOUtTYjFGUS9aWFQzaHJrYllXNUwrWDBySnR1MjMrWXNxV3R1Q0JOSTJPWmpMS1gwNFpuUjJkMmIwcms4Mk1EUFRGdW1LZHpVM2IvaFVWeC8vZ3I2aFViZm85b0lLdGF2cVQvOElLSHNrcXY0eEVwZlBLMzF2NUsvb2g4'@; put 'YWY4NFpYODU0bUczQjloeWY4eEZneldmUktYNEwrak4rWThBUVp6cks0THV3RjNnZnQyMzMzMzdqZGZ0RDl4d2NGcldRR3VRb0VUR0Z3NDdSWnJQL2pCM1ovKzlPQ0ZKK3d2dnN4MHdTL2tPM1NqYUNJeld1WWhHbnJIZ0lsWjZScFFjT0JiTHhzd01XSnNvclVPdVJvWE0wdE81UkVRK0I1RkRa'@; put 'RzYyaHFyTFFqT29OVWVMS0RCcTl4RlEySHdGRm5tU1NyWlNmS1ZsVFJoREpEczlyS1FLaXR2U2R3Nk5QYWVGZmZNSU5FTTd5OVp2bTFFTG1rWnVOYUxLNldYWUNHdDB2Y3Jic3BPc210M3U2OGU3Qzh1QUNYZWUxazdLMmdaNitvdks3SGIrZ2RtWlpubEpRNThQY2c1M1JPRTFoRFljN2Q3WDAv'@; put 'djlXYUdESmd5QWtoZHI5VkxoTFUxK3BYTFhXaVI3MkxRUDFWaUw5Q1MyRFozUFcyOUs2SGw4Q1h1U3ZqajNoMnZTcEJqOWkxVXh1T1lmT2J3K1Z3c3Y0WHFMdlpjZGM3S25sL01QUmV2UTl2Qm81V3IxTS96L2ZmS2ZpcC9mbGNPL3VneDVUNktQZVJkZ0FNdmlnTU9xbjAyRERqWTdHTXBpTWg3'@; put 'V0lITktIa1g4N2pVYUpFOXJuV2tRZzkzdjlRSWtsMnZlemZuUHJENVVuK2Jyd1A4N1UrcDF2RkNEaDhGUjNNNS9PZzh1M05Hb1lPazFUK20zQjZEYWQ0YnZOZHVmYTlkbTBEL0Q1RDhFaUlBQUFBQUFRQUFBQUVBQUE4Q0creGZEenoxQUI4RDZBQUFBQURUd1oyR0FBQUFBTlMrcE92L1EvN29C'@; put 'SFVEeVFBQUFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdBKytlOEtBd1BMb3YvTy95dFlTaG1BSXNpQTBSQUFwZklHcXdBQUFIamFkWlEvYUpOUkZNWFB2VjhHUlJ5c1dGRnNhekhXSmtTYTF0aHF3Y1kweFZTVFNGdHJnMElYY1ZBUnNhQ3A0dUpTc1E0dTR1UmtFRjBzNnVSVy93emk0SzZUT0VsVVdt'@; put 'Z29XQXIxODl4bklqR0pDWWNmZWZuZWUvZWVkNzRueTVnRVA1S2xXcWtkeU1ockRHa0JRYjJJRGkrTWlEN0VicXhnU0M2aG53ckxmZXpYY1NTa0NVZGtDakZaajZRODh4ZjBKWG9sajJiKzE2V2oyS1hUMUNTNk5ZOWVQWVUrUGN2eFBQcmM4NXlyR1k1eEhmS1lyR0tyTjhXOVN0aXV6NUhUT1VS'@; put 'MWxieUd0SjZuaXZ6OUVXbXNJYU90Mk1LYUpuUWZCcjNUeUhrZUZlTC9zMGc3M3VQenJGMnZJNlFMR0xFMUF3ZlFwdlBVRTJ6VVc2enpDbzZ6NWhXeVM3NmhSMGY4WHpLQnVCN0dYcDFCVm5leWxobXVOWWFJbkVPNzNtVHRPUXhqQ1lldzVML1hUcVJRd3JCM0J5a2JaNTBSTjQ5elpCWlpLYUZE'@; put 'Ym5CZWpuMG0wT3dOb1VVajdHMGMyM1FkZXVRdU9xVUZGOGl3dk1KQjg5M3RPWTJZMVNndldFc2JRanlMdUt2ck5vTDRpUUVaY09OUityWEhlZFZBZ1NiUy9EUHZxb1ExLzRQNVJ5NVNYNzNOQ0ZlOHE1VUdrWEUwLzZwbC90Rm5ubG5XZWRWQTNqeHB2WXo5Sy9yMmp2Nmx5Q0wxUmEveS9DdmUx'@; put 'Y3B5WVRUL3FtWCttYzlHNjlmMnJLWDFidnRYYURuaXVWaS8rcURzeTVqYnB6RXRhM2JlWmRLcno2ejNFNzNySm4zeXFQWGhNc2djV0E0dEMzOTVCdTB5aUhiejF2cXJZOGpWRUtrd3NBSFJ3Q2J1eTl4YWR1cklMRnVlNnNoOHU0eFZhT2RqSHYySDlnNjRITm9abW4vbGQ4SHlXRXZMdUJTWVBk'@; put 'TlR4UEdkUEVFbHFEZm8xekRINENjcmE5YXl6dFB5bnJJTWVNVS85dzFXcWNlQXhoSHpMdk1lYVNyZktZdmtJdmtJSi9VdDd3cmVTNEVDMzhNa2dsUlk1L3dmTGg4ZTUvSmNHM3l6eVA0R2o1Znd0QUI0MmtYQ1hVZ2FjUUFBY0x1dU03OHVNenZQMjNtZmVwOTVudi96N2tFaVFpSkNJcUluaWVI'@; put 'RGlCZ3hZc1NJaUlneHhoNUdSRVFQRVNJUnNZYzlEQW1KRVNFajloQWpJa1JpakpBaEVoSWlNVWFJak5qTFlQeCtOcHR0OForODdXT1hyU3NMVWRBMlZJVEswSDMzWHZkWmR3T0c0REE4REwrRkQrRmF6MmpQVWs4SllaQVVVclJqOWhuN25IM1ZucmNYZStIZXVzUHZXSEFVSEEwbjdrdzV0NTBs'@; put 'WjhXRnVJQnJ4clhtT25EZHVjUHVkZmVweCt2UlBmT2VEYytKcDRHaWFCSjlpaTZoTytneFdrRmJmYy83SHIwVDNtcS8zdi9HWi9ObGZYbmZuNEd4Z1pjREZUL2xuL2VYQjBjR2x3ZlBNUmlid2hheEhIWWVnQUphWUNXd0hiZ0pOSEVLWDhDUDhZZGdJamdhekFaWGdoK0NGNFJHSklrTklrOFVp'@; put 'RE9pUXR3UzdTZWpwSmZreUFRNVRtYklCWEtOM0NUM3lTYjVHUEtHdUZBaU5CN0toSllwbU1Jb2lVcFNrMVNXeXRFUWpkSUVMZENBSHFIVFRKcHBNUjBXWVgwc3hTcXN4YWJZS2JiRWZtT3YyUnJiWWpzY3drMXoxMXlOYTNFZEh1RjkvQTYvengveEpmNkt2d2tyNFhLNEhyNlBRQkUwd2tSQUpC'@; put 'bHBSRG9DSXVCQ1dIZ2xkRVMzaUl1S2FJa3BzU0YySkVRYWxyYWtBK216OUZXNmttclNieG1SY1hsQ2ZpZnZ5b2R5UVQ2VkwrVWZjbE51SzA0RlUrYVVXNld0d3FwWEpWVk5UYXFUYW1aSWovWkdpYWdRTFdxejJndHRYZHZTY3RvbjdVUzcwTDdIdE5oQnJCajdFaXZIcXJGN0hkSlJuZEdIOUJF'@; put 'OXJhL3FPYjJrLzRxVDhXeDhMMTRIQ0FCZ0RFeURaMkFSdkFZYklBOEs0QXhjZ3ArZytaK0JHSXlSTm1hTlBlUElxQm90bzVXb0o5cW0yMXcxMzV1N1p0bXNtbmZtZ3dWWnFFVlk4OWFTdFc1dFd2bS9hbXpBVFFBQUFRQUFBVHdBWWdBS0FEOEFCQUFDQUNnQU9RQ0xBQUFBa0FGQkFBTUFBWGph'@; put 'aFpMTlRzSkFGSVZQQ3hxSWhLQXhMcnBxWExpVHZ5Z1lYR3JjQ0dva2xwMEpTQVZpc2RBV0UxL0ZOekR4UWZ4NUFqYytnMHVYbmc2M0NBWWxrMmErbVh2dXVUTzNBMkFOSDRoQml5Y0JIUEliczRaTnJzYXNJNDFyNFJqMkVBakhVY1NUOEJLTWljOHljNytFRXlocWhuQVNobFlWWHNHT0ZubW1Z'@; put 'R2tQd2htc2E1L0NxMGpwY2VGbmJPZ1o0UmZrOVMzaFZ5UjBTL2dOYWYxeXpPOHhHTHFEQTdnWTRCNGVldWlneTVPYmVPUlhSQjRGbEVndFJrM3F1a3Jqayt1Yys4enltWHVMTEdxd21lY3BKeGVPcU1MZE5ubEU3VG01UTNMUXBLN0FuTHdhKzdqQU1SbzRJYzF6Mlo1eFdWekgvRlhKNHNxanFx'@; put 'ZE9hazVWWGx6TjRueEZqVXRWMklGVE90aFQ5WnJrTThiRFdKVnorNThlaFgwTnVLb2d4M0UzNCt3cTMvN0VOY3VZeTNXVTQwdFdoOUdBdXlQK2tVaVQ0eHpWN0t0Ny90VE16YjNqWDN2UnJSdmtGdDl5NkJCTU9sYVQvaDJwcU1sUlVyRXl6MVpndklKZHZwam8xWlJ4UTUzTkNnUHB2MDF2bjlt'@; put 'UmF4MUQ3dlFZOHhoenZnSEZmWVZqQUFBQWVOcHRrMWRzSEZVVWhyL2ZzWGZkTms3dnZWZkhYdmZFS1M1cng3RmpKeTV4N01SSnhydGpaL0Y2RjhhN2NXeTZCQUllUVBEQ00rVUpFTDBLSkhoQW9sZlJld2ZSZWFRSDc5d0pYaVR1dzN6L0daM3puelAzM2lFTGQ1MGJZQjcvczFTYmZwREZETExK'@; put 'd1llZlhQTElwNEJDQXN5a2lGbk1aZzV6cCtybnM0Q0ZMR0l4UzFqS01wYXpncFdzWWpWcldNczYxck9Cald4aU0xdll5amEyVTh3T1NpZ2xTQm5sVkZCSkZkWFVzSk5kMUxLYlBleGxIM1hVMDBBaklacG9aajh0SEtDVk5nN1NUZ2VIT0V3blhYVFR3eEY2T1VvZi9SempPQU9jNENTbnNMaWRx'@; put 'N2lhbTdtQk8zaWY2N21XcC9tWU83bU51M21lWjdtSFFjTGNTSVFYc1htT0YzaVZsM2laVi9pV0lkN2dOVjduWG9iNWhadDRtemQ1aTlOOHo0OWN4d1ZFR1dHVUdIRnVJY0ZGWElqREdDbVNuR0djN3pqTEpCTmN6S1Zjd21QY3l1VmN4aFZjeVEvOHhPUEswZ3hsSzBjKytmbUx2emtubEtzODVV'@; put 'c3FVS0VDbXFraXpkSnN6ZUZYZnROY3pkTjhMZEJDTGVKMzN0RmlMZEZTTGROeXJlQnp2dEJLcmRKcXJkRmFyZE42YmRCR2JlSSs3dGRtYmRGV2JkTjJGV3VIU3ZpRFAvbVNyMVNxb01wVXJncFZxa3JWcXRGTzdWS3RkbXVQOW1vZlQ2aE85V3BRSTEvempVSzh5MmQ4d0lkOHhLZTh4eWRxVXJQ'@; put 'MnEwVUgxS28ySFZTN09uUkloOVdwTG5XclIwZlV5d004eUNNOHlrTTh6RFhjcGFNOHc1TThwVDUrVnIrTzZiZ0dkRUluZFVxV0JoVldSTGFHL0hXalZ0aEp4UDJXb2E5dTBMSFAyRDdMaGI4dU1aeUkyeU4reTlEWEdMYlNTUkdEeHFrS0sra1BlUmEyWVg0b2traGE0YkFkVCtiYi8wcC95TE95'@; put 'UGF1UThiQmRGRGFIRTZPamxra3RITTRJL0MyZWU5UmppK2NUTlN4c3phd2N5UWg4YlZZNGxiUjlNWU0yMHk5bTBHNWV4bDBVdG1kNnhETTkyazE2M0lXL3c1c2hZUmpvT0oyS0QxdE9halJtcFpLQlJHYms2elFkSE5PaE03T0RrOW1oMDNSd0RMcE0xWmdMZnlvZUxTbXRESG9zODNXYnBLU1pw'@; put 'c2ViSm1XWTArTkU0OE01cWZRejBQT2Z5Vktaa2IvSDI4R1VZVUZ2T09xRVU2TkRNZnRzd1hpRzdzdlFFOVBhMTI5bW5IU1Izejk5MnBQVHA1MmVPRmhXNWJJc1dPbnJIWGFzcVdzMWJ0QnJITVpkNVBWR29yWmpqMFhIOHNiUHEzUmRhYWkrMm1PTnh3YVBqYjQrWXpUaEl2MDJXRklTOUZqbXNk'@; put 'eGpoY2RLdzJCVGRpamxKTnlnb3FraHh5cTJZc2w4eTUzRlNQZnVwMldSTmYzWjZUaGduUi9RSkxyZDA3TEErMzJNTnZ1YTFubFcralJNY2pJYWk3akp1ZGJZMUI1RmJDY3ZZbnZxSDdkbHR5RUFBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkTmtreU1taUJHSnQ1T0Jn'@; put 'NUlDd3hOakNMdzJrWHN3TURJd01ua00zcHRJc0J5bVptY05tb3d0Z1JHTEhCb1NOaUkzT0t5MFkxRUc4WFJ3TURJNHREUjNKSUJFaEpKQkJzNXVOZzVOSGF3ZmkvZFFOTDcwWW1CcGZOckNsc0RDNHVBUDRjSldBQUFBQUFBVmlZOUd3QUFBPT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0'@; put 'OjUwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXM7c3JjOnVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRmFFQUJNQUFBQUFvdUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB'@; put 'QUFBQUFBQkdSbFJOQUFBQnFBQUFBQndBQUFBY2ZOSDU1a2RFUlVZQUFBSEVBQUFBVFFBQUFHSUgxUWY4UjFCUFV3QUFBaFFBQUFjWUFBQU9ka0RDZnBaSFUxVkNBQUFKTEFBQUFDQUFBQUFnUkhaTWRVOVRMeklBQUFsTUFBQUFUUUFBQUdCcEVxOEpZMjFoY0FBQUNad0FBQUpzQUFBRG5uZERE'@; put 'N0ZqZG5RZ0FBQU1DQUFBQURBQUFBQThFaEVCOFdad1oyMEFBQXc0QUFBR09nQUFEUloyWkgxMloyRnpjQUFBRW5RQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBU2ZBQUFPTXdBQUc4a0hkN1lsMmhsWVdRQUFFdElBQUFBTmdBQUFEWUxjNGdSYUdobFlRQUFTNEFBQUFBaEFBQUFKQWVSQkNCb2JY'@; put 'UjRBQUJMcEFBQUFvd0FBQVRhdVk0MEoyeHZZMkVBQUU0d0FBQUNkQUFBQW5yVSs3bjJiV0Y0Y0FBQVVLUUFBQUFnQUFBQUlBS1VBMUJ1WVcxbEFBQlF4QUFBQVk0QUFBTjZNZ2lJV25CdmMzUUFBRkpVQUFBRG9RQUFCaUdYRmoyS2NISmxjQUFBVmZnQUFBQ0JBQUFBalJsUUFoQjNaV0ptQUFC'@; put 'V2ZBQUFBQVlBQUFBRzluaFltQUFBQUFFQUFBQUExRkcxYWdBQUFBRFR3WjJHQUFBQUFOUytwdlY0MmcyTVFRcUVRQkRFRWtmME1MUG9mN3lwTC9Eb2ZYZlYvei9BSWdSQzBUUUNMUjZjZEZSa2pWc283SHpUdjFENEI3bTQwNDhET2xvcE5sdjY0NVNlWFhMVDUxc1h6U2ErVzNBRjNBQUFBSGph'@; put 'alZjTmJKYlZGWDdPdWZlK1gvc1ZhaW5sUitnWUlZUWhhVG9nVEpRZ0drWTYweFJVeGx3MWFMYnBuSU1oakRIQ051Y0tjMkFXQXBzL1hTVUxRKzEwa2dxc0NuYldrWVl3UnR4Q1pCTERvREFHRmFweE1vUXRCcFYzejN2ZUQvdld0dE0rNmRQVGMrOTczM3ZPZWU1MzdnY0JrTWM0MUVMbTFOUXRR'@; put 'QkU4UFloak9QNFJLTnppYnk2L0R4Vkx2cjU4TVNxWExGNnltTE5CZnpLYXpralk4Yms4aG1NTUpwakhZVHpxWEVzNkdpMnpWU1hhZ0lnUHllQVZmR0tVK1FJcVBvS2dKdDVBRHBpSjlmZ1FzWXlDY2h1Y0p5T2xFeVVZeEoyZGpUdmlaK1BEOFRFTThCT2ZHM0RrVUwvZUxsVDIrdit0K0pFQlYz'@; put 'aHp3SkdqQTQvRSt3WVllVFkrSHJjbitKai9NSC8va3FEdjIrUFg0bzN4UnVaMUxETTlnZG42SEtHb0podytUM2hNSlFLK1FFU1lUdVJ3TFZHRUdVUXhjenVUbFZwSkNGYmpaNXk1amdqTStIcjZkeEtDRnduQkh3akZRY0xqTmNMakdCRndpb2p3QmhIaERCSGhMSkhET1NLSDk0bGlWdTlEcmhZ'@; put 'VGVTbVRNaFJMdVpTVEs2U0NQSXFWelhQdHlWVEplRDR6aVJEYmQ3cGp0UjA3MjdHM0hRZk1JWXBRUXhUalJpS1ArVVFKbHVMN1hDR0pKTEpJSW9za1lDTWU0L3hHb2hpL3dpYk9md0svNWZ4bmlCSnNKM0xZUVJUaDkwUU9yVVFSbmlkeWVJRW93aTZpR0cxRU1YWVRlWFFRZWV3aDh0aEw1UEVu'@; put 'UXZCblFpdzdFWTRUSmZnbmtlWkZMUzlxZWZHV2wyQjVDWllYYjNueGxoY3ZJMlFFODNXbFhFbE9jaFM0YWpVek5JRTFybVp0cDdLbTA1bVpHY3pJVWl6RGQ3RWMzOE1LMW5JMTF1Q25lSkJaV01mb3R6T2k1MW5KRjFuQmc2emNNVmJzRFZicUxIZnl2cDJzTXI2M0lqbGYrb0NkdzMyeW5IRVBw'@; put 'cjdhcWJ1TjhYLzZVYXVOOE8rWkFVZmVKQzcwOCtUNVR6cFBjV2Y4ci9nZjhTTTlKeTk3MHVJejhkWjQ2MGYvZFdlZnQyZVVKempSaEpnbUZGOGhIRzRqUEc0bkFoWVNFUlh4R09ja2FoQlRnNW9hRkMxRWhHMUVaSlVXcTdSWXBjVXFMVlpYUlJmaGNKcHc2Q1ljUGlBQ0xoR1JESkVock90UUdV'@; put 'b2VKc1BJU1VYRktpb3lXa1p6ZlVVVnJpQktNSVFZWkVvWFU3cWEwbDFCNlY4aXNrcjNGaytVaVNkblNuY0ZwZmRvM0Z0VTNxTEtXVlNYbFo1cVBGWDNTOFRBdWs2aTlhWlpMVVNZS05kWm5EblRyelA5YWlIbVJNVmFpRHpSc21iaXp5cmFXUlp5TWxtdTVkdVRUNjhhUmppZjlicU5jUzFrSkky'@; put 'TXBBbVBNNW9uOENTZVFqTWplb2FSYk9OcGJPTnVPN2pMdmR4ZEYydlF6WjFkNGc2RzhtMGorSmJSWEhHTTZWbFJhaDJsUFA0SjdYTE13L1cweE96cjJZazZvekhrazh6L0hsa3I2K1ZoYVpMTjBpeGJaWWZza3BkbGoreVhBM0pJanNnSk9TMXZ5N3Z5bmx4U3Iza3QwK0ZhcWVOMG9sYnJOSjJo'@; put 'TjJpTjF1bDhyZGM3OVc1ZHBNdDBwZDZ2YS9RaDNhQ1A2aWJkb2s5cmk3WnFtKzdXdmZxS3ZxcXZhNmVlMUc1OVJ5L29SUWNYdVVHdTNJMTBZOXg0TjhsTmRsZTdtVzYydTlITmN3dmM3ZTVyN2g3M0hiZmNyWElQdUFmZHo5MHZYS1A3dFh2Uy9jNXRjeSs0bDF5SDIrZis2djdtRHJ2anJzdTk1'@; put 'Zjd0L3VzKzhPcUxmS212OEtQOFdEL0JWL21wL2hvL3k4L3h0ZjVtZjZ0ZjZML2g3L1gzK1JYK2g3N0JyL1hyL2NPK3lXLzJ6WDZyMytGMytaZjlIci9mSC9DSC9CRi93cC8yYi90My9YditVdkFoSDhyQzhGQVp4b1dKb1RwTUN6UENEYUVtMUlYNW9UN2NHZTRPaThLeXNETGNIOWFFaDhLRzhH'@; put 'allGTGFFcDBOTGFBMXRZWGZZRzE0SnI0YlhRMmM0R2JyRE8rRkN1QmdoaXFKQlBCMnJkRHU1d1hpMmNhMXhVOEpZWjl4cW5qWEdqUm0reFhpSzhTeGpXNDExU3V6NnpHcVRsSitwY3BWeHRmSGNoTEhhZUtlMmt4dk1mMTBQNDVUeHhjeFR6Y1pWeHFYR3Q3aEY1QmJqVmYyem5zdkVXR3YrUG93'@; put 'N2pOdU4xL1d3M0pYR2J2WVM0LzNHalgwNXpjQUFPNmszbnFRZG44VDZ5MTY1NnVpUDhWWGpuY2FyZTVoNSt6VDhmMVptYm50NFZXYlB2ZXhNVFJ2TWY1WDVzL1pzeStGdnpMNHJrL24wTGIxc0cwM3JtL1UzbVQwM3RXMU9xcG0wT21uVXFUNExkc0dmekdrMWU2ZGJlVm05QlkxMW1uMDBzUXMx'@; put 'VFhPU2Fqdk5UTmJmbUxFUG1kMWdOVHBxT2ovVm8wQnF0ZVB5aVVCZi94U3pMNmEyelVsVm5mV25KMmhXUmpQVm1jeW45ZzZ6RjJXcVlIblRTdk0zbXo5VldsWEdUck5hbXNsOFgvdTgyVCt5Nkc0eSsrOW1aMWV1amJjbEs4ZlBmYXhTMlRmT0xaenVqay9CdldjcVBtdjNVdkRlTlpGWlNXNm5u'@; put 'bDI3aWwwd3VXRkhtTUtiV0E3VGNBMTdXTks1UzltM3IyTlBUenIzRUx1amxsdm5Ic3J2VmJYc1EzWEVNTnpFUGplY25lNVdmdmVwSnlxdGwzK0dYZThPZHEybHZMdU50ZHZiZEhiMHpWeHZDenZmWE90OVgyYjNhMmVIL0NNTzRGdTgwWjNGRCt4VzJZVHpFdkE0Ty9Gb3RGaFBiZU4rUmE2dzcy'@; put 'WVJKRjVoS216QVBlUzE3SFlsR01sM2pXZEVrM0UxZHoyYnU1eUhCUnc5YU5ydE1qNXRiR2NHUnpKODFQakh4czhabjdDc2pUTzdCRi9rZSs3RnR5VW5SVklzZVNtUndWTGFkMGYvQTNJRm9iY0FBUUFBQUFvQUhBQWVBQUZFUmt4VUFBZ0FCQUFBQUFELy93QUFBQUFBQUhqYVkyQm04bVdLWUdC'@; put 'bFlHSHFBdElNRE40UW1qR09RWVRSRE1obllHZUFBeVFtQTBPb2Q3Z2Znd09EZ3VvZlp1bi94Z3dNek9jWURSVVlHQ2FENUpoWW1kWURLUVVHSmdDOGlRb3JBQUFBZU5xMWsxbFFqbEVjeG4vL3QzMFJLaFQxOXZacDAwYWlGRVgycGNpK2xLelpzcS9aR3VzUVEwVlN5SjRrb3hrVFUxTzJHKzY0'@; put 'TldPTXZzK1ZXKzRNSGNkWFREUE11SEptM25QZWM4NmM1NXg1bnQ4ZmNLSHJDMEYwajFUcW1Uam5ybEtzeHlXTXc0MkJsSENMT3U3U1NCUE50TkFtSGhJZ2d5Uk1Ca3VjSkVtcXBFdW1USlVjeVpOQ0taSVNJOVY0WmJ4M2lUS1BtNjNtRS9PTDVXNEZXc0ZXcUdXem9xeGhWcnAxMytZZitVMHBm'@; put 'WWZGalI3YWoybmptZmhLZnpIRkpyR1NLQ21TSmhtU0pkbVNLd1d5UVRacjdaZkdXNjE5eUd3eDI4M1BsbUVGV0VGV2lGTjdxSlgyUzF0OVZDL1VjL1ZVdGF0VzlVZzFxNGVxU1RXcUJsV3Y2dFExVmF0cVZMV3FVcFdxUXBXcE02cFVuZWg4MDVuVm1mVDlrNlBjVWVESWQ4VFlCOXI5N0Q1Mkw3'@; put 'dWIzZWo0MnZHNTQvQ0hrSGZKWFY3OXArWnVlRHVUNEk5YkJLUDd6L2lIUnRkSkYxeDFkdTU0NElrWDN2amdTeS84NkUwZit1SlBBSUgwb3o4RENDSllaenhJcHg2S1NaaE9KQndiZzRrZ2tpaWlpV0VJc2NRUlR3S0pER1VZU1F3bm1SR01KSVZVUnBGR09xTVpRd2Faak5YTVpER2VDVXhrRXBP'@; put 'WndsU21NWjBaWkpQRFRHYVJ5MnptTUpkNXpHY0JDMW5FWWsxYUh2a3NwWUJsTEdlRmZ2OE9kcktiWWc1eG5OT1VVMFlGNXpsSEpWVlVjNUVhTG5HRnk5UnlsZXZjMUJUOVpQUTJEWnFsZTVxbW4yMFZxN1VkMFd6Z2JMYzM2MW1qKzEyYytPMVc0VjhjdkVBOW0xblpZMlV0bXlSR2oxdll6akhz'@; put 'T0NSYzh4a3BVYm9DSXJpamR4NmdhWllFWFEveDNXZUtuR0hFc28yOWJHVWZlempBUVYxTCt6bkNVYjExbUZKT2NaTFh1cHA2c1U2OHhGdDgyQ2grbW4vUEg1RE5xdWg0Mm1OZ3dBTEtnVENESVlOcFBRTUQwMjRtVmdhRy95SE0wditObVhiLy84SjBqMG53LzVmL2ZpQStBT1lMRGdwNDJxMVdh'@; put 'WGZUUmhTVnZHVWpHMWxvVVV2SFRKeW0wY2lrRklJQkEwR0s3VUs2T0ZzclFXbWxPRW4zQmJyUmZWL3dyM2x5Mm5Qb04zNWE3eHZaSm9HRW52YlVIL1R1ekxzemI1dDVZektVSUdQZHJ3UkNMTjAxaHBhWEtMZDZ6YWRURnMwRTRiWm9ydnVVS2tSLzlScTlScU1oTjZ4OG5veUFERTh1dGd6VDhF'@; put 'TFhJVk9SQ0xjZFNpbXhLZWhlblRMVDExb3pacjlYYVZRb1YvSHpsQzRFSzlmOXZNeGJUVjlRdlk2cGhjQVNWR0pVQ2dJUkoreG9rMll3MVI0Sm1tUDlIRFB2MVgwQmI1cVJvUDY2SDJKR3NLNmYwVHlqK2RBS2d5Q3d5TFNEUUpKUjk3ZUN3S0cwRXRnblU0amdXZGFyKzVTVkx1V2tpemdDTWtP'@; put 'SE1rckNMN0VaWnpkY3dScjIyRW84NEM5SWxRYWxaL05RZXFJcG1qQVF6MlVMQ0hMWkQrdFd0Qkw0TXNnSGdoWldmZWdzRHExdDM2R3NvaDdQYmhtcEpGTTVES1Vya1hIcFJwVGEyQ2F6QVFPVW5YV29Sd2wyZGNCcjNNMFlHNEozb0lVd1lFcTRxRjN0VmEyZUFjT3J1TFA1YnU3NzFONWE5Q2U3'@; put 'bURaYzhCQjNLQ3BOR1hGZGRMNE1pM05Ld29LVEhTOVJIUmt0SmlZR0RsaE9VMWhsV1BkRDI3M29rTklCdFFiNjB5aTJKZlBCYk42aFFSV25VaFhhakJZZEdsSWdDa0dIdkt1OEhFQzZBUTN5YUFXalFZd2NHc1kySXpvbEFobG93QzROZWFGb2hvS0drRFNIUnRUU21oOW5OaGVES1JyY2tyY2RH'@; put 'bFZMeS83U2FqSnA1VEUvcHVjUHE5Z1k5dGI5ZUhnWUJZeGNHcmI1ek9Ja3UvRWgvZ3ppUStZa0twRXUxUDJZazRkbzNTYnF5MlpuOHhMTE90aEs5THdFVjRGbkFrUlNnLzgxek80dDFRRUZqQTFqVENKYkhoa1hXNlpwNmxxTktTTTJVcFUxbjRhbEt5bzBnTVBYRDhPaEswS1kvM04wMURTR0RO'@; put 'ZHRodkhobkUxM2JPczQwalNPMk1ac2h5WlViTEtjUko1WkhsRnhtdVZqS3M2d2ZGekZXWlpIVlp4amFhbTRoK1VUS3U1bCthU0srMWcrbzJRbjc1UUxrV0VwaW1UZTRBdmkwT3d1NVdSWGVUTlIycnVVMDEzbHJVUjVUQmswYVArSCtKNUNmTWZnbDBCOExQT0lqK1Z4eE1kU0lqNldVNGlQWlFI'@; put 'eHNaeEdmQ3lmUm53c1p4QWZTNlZFV1I5VFI4SHNhQ2c4ZHNIVHBjVFZVM3hXaTRvY214emN3aE80QURWeFFCVmxWSkxjRVIvSnNEajZ1VzVwelVrNk1SdG56WW1LajBiR0FUNjdPek1QcTA4cWNWcjcreHg0WnVWaEk3aWQreHJuZVdQeUQ0Ti9peGRsS1Q1cFRuQndwNUFBZUx5L3c3Z1ZVY21o'@; put 'MDZwNHBPelEvRDlSY1lJYm9KOUJUWXpKZ2lpS0d0OTg1UEpLczFtVE5iUUtIMDhFT2l2YXdieHBUb3dqcFNXMHFFa2FBUzJEcmxuUU5Pcno3SzFtVVFwUmJtSy9zM3Nwb3Bqc1JSbk1nQ2tvNUtheHNPenZwRVJhV0R1cDZmVFJ3T1ZHMm91ZUxEVmJWbkdGdlFmdlk4ak5MSGszVWw2NEtTbnRS'@; put 'WnRRcDd6SUFnNjVrVDI0Sm9KYmFPK3lpbUpLV0tnaVBnaHRCZnZ0WTBRbUxUT0RMb0VpWkhHeXNnL3RpaDA1b29KMkF0OTYwaXJ2MjBMdHozWHlJRENiblc3blFaYVJvdk5kRmZWcWZWWFcyQ2hYcjl4Tkh3ZlR6ckN4NWhkRkdVOHVlOStlRk94WHB3UzVBa1pYZHIvdVNmSDJPOWJ0U2trKzJ4'@; put 'ZDJlZUoxU2hYeVg0QUhRKzZVOXlJYVJaR3pXS1VSejY5YmVESkZPU2pHUlhNY0YvVFNIdTJLVmQralhkaDM3YU5XWEZaVXNoOWwwRlYwMW03Q056NWZDT3BBS2dwYXBDSldlRHBrUHB1ZG12Q3hsTGdzUmR5elpOZEY5QjA4SVIzaXZ6akV0Zi9yM0hJVTNLTEtFbDFvMXduSkIyMGZLK2l0SmJ1'@; put 'VGh5cEdaKzI4YkdlaUhVazM2QnFDbmtndU9QNWU0QzZQRmVrVTd2UHpCOHhmd1hibStCaWRCcjZxNkF6RUV1ZXRnZ1NMS3Q3U1RxWmVVSHlFYVFud1JkVkNzd0o0Q2NCazhMSnFtWHFtRHFCbmxwbFRBVmhoRG9OVjVqQllZdzZEZGJXRHJuY1o2QlVnVTZOWDFZNlp6UGxBeVZ6QVBKUFJOZVpw'@; put 'ZEoxNUdyM0dQSTF1c0UwUDRIVzJ5ZUFOdHNrZ1pKc01JdVpVQVRhWXc2REJIQWFiekdHd3BmMXlnYmExWDR6ZTFINHhla3Y3eGVodDdSZWpkN1Jmak43VmZqRjZUL3ZGNkgzaytGeTNnQi9vRVYwRS9EQ0Jsd0EvNHFUcjBRSkdOL0dNdGptM0VzaWNqelhIYkhNK3dlTHozVjAvMVNPOTRyTUU4'@; put 'b3JQRThqMDI5aW5UZmdpZ1V6NE1vRk0rQXJjY25lL3IvVkkwNzlKSU5PL1RTRFR2OFBLTnVIN0JETGhod1F5NFVkd0wzVDMrMG1QTlAzbkJETDlsd1F5L1Zlc2JCTitTeUFUZms4Z0UrNm9uYjVNcXZObjFiV3BkNHZTVS9YYm5YZlkrUnRsTTdvc0FBQUFBUUFCLy84QUQzamF0WDBKZEZ6RmxX'@; put 'aFZ2ZTczZWxPcjk1YlUybHE5U2QydDF0SnF0ZlorV216dHEyMWsyUmF5c0MzSjJHQmJack94TWVDUUJRSWhKTTVrZzRTUVl6SWhZSlpBSUNReldTWWh6b0ovZnVZUEp3bVRTZUNmSkgreVRENGhrOG1BbnY2dHF2ZGFyYzA0ODgvWVVxdjd2VnYxcXU1K2I5MnFSaVkwdlp6RUh4ZDhTRUQ1eUkw'@; put 'S1VRQlZvUlJxUnUyb0R4WEtucTZPdHBaMFl6SWFDWllWRlhqc05xT09JRk50VE8rMyt5VjMwaDF3SjFPQlZESWxzYjhTdk5XdTBtdjBMNzBEVjFMYWV4V0dOVWduVS9qanlqZHgreHVkWGVlN3VzNmY3NnJ3Kzd1NnV2WjMrZTg2djcvQ3Y5OS8vdng1Ly83OWQyM2RlbjV1YS9rUGhGOTMrME4r'@; put 'K0xsam9XTHIxdUFzdk52cWIrdXEySCt5eVZzemR1elk0OGVPamRYTSsydjg4SU1RUVZ1WDMwU3Zrd3RzYmlHNUFtR01waEZDMWtGRWlEQ2p3NExnRllaME9sMit6aHF5Mi9TU04rWk1DZ0ZQT05YUW1LejN1RjFpWVBTK2t1MkdSS0tpTEZGZFRpNG85YityOFpjbEVtWCtHb1NXbDFFblBvY2ZK'@; put 'aGRzRmNpRWtFMkExMWNSZlc0RnZOd096L1doTXRRdmI4MFhDZElMQkJPRUQ1aXgwV2dkdE5yeUJFa3lURnRNeEdDd0Qrb3dJZmxrQ0tHeTBwSmlhT1VyS2l6d3d2T2Q5dXcvcVNTR3BhUVVrQUpwOXB0T3N0K2t4SDRsZXBPUStFSHZRblE2ZWlaNmRYUy9aMzk4empNUDc4N0FsWG5QdDg3RXor'@; put 'REhIOThGQ0QyLzYvRmRuNE4vdXg1SGdKbXk1ZWRJTC9rektrRkJGRU1KT1JhTCtzdUxDcjBlbDkxc01raFdSUENBSGlQY0QvUENCTS9DQkwxb3FOUnVGd0JkUVJHSW5BcEgwaDV2S29FQmJXbWd0Y2NyaFNQdVV1eEdjTldLM1k3R1ZBTmNJTDBuRHUxKzk3NitnY241K2NVOXUyKzR1cWRuNE5o'@; put 'eDVWZzRHb3kvMmxqVGRHUlJrcnR0dTZlNm5kLzA3WmdZWHpTM2Qxakc5N1RhdmxLMDh5cnNET2FmTjlhVUtrZnJLL3dSMjlOSWo2cVcvMTJ3a21lQnNrN0FjZzFxUmQ4ZGZMSmdiS2NjTTJPOUNXTlJqK2VSaUF4RzBiQ0FkRG8wUXpDbGZCN2dYNWl4U0VRUThvVWgzK0NURVdoU2M5a21DRUJa'@; put 'TzJuR2dpWEpLdzM1NU9RR0xRZ0JXTm9NYmR4cWFrb08xOWFXbDd0Y0NOVzIxclkwTnBUWGxDY3F3NjR5VjJsUmdkTmh0OEZrckdHcjVJNDVLREk3Y0xJZXNPaXk0Z0JPNGdCRFk2QkNkTHM4U2JUbWZnZGV1ZmVwb1doMHVMWnVPQm9icXNQdjM2T0U5aXdtRW9GZ2RTS0E1NFppY0xGdWlONEtK'@; put 'bW9DQVhweEtqRmFXemVXU0l6QmF6VythbWtjZnpZZGl6ZWxxMk5wWlNJeFdsYzdWbFBESUFiVDhWZ1R2WVVvMy9pWC8wamVSYjZFeWxFY05hSU91YlUyRVM0cktTNHFNQmtGVWc2OExwQUJ5dGQ0QnNUT002Z0hZV09ZQWVhcHJ2YjdxeHVyVS82NFB4YXZFQ1ZQVEI4UkF4V2NnWEpuQnJlOGpX'@; put 'bXZLSGtSblpxWFQ5T1JEa2VBcldDcXBIaGthckZ6dnFWdnRMaWdicktoWVh2TjBMYjZ2cXFTNmJyRTljb25FcDdDdHBwb21Ta3oyUk9MOWRUbGpZL1ZUclYzVHdjck84T0prVVQxY0UzellMaDFxSDBndms4K1RscmlnY0xhMG9KNG9LSjY2UytwM1dNRnpjRzZGb1F3bFhIMExaQmxDM0xLTnFw'@; put 'QkdIbnhrRHRJWU9DT0ZWMGhCYTV5UjN5K0NQQTdmdlZ3MEZkWjZRc2U3a1cwajhibHEvQVkrUXJLUStJemVYcGNHMk1xSnUxbHMvQktuMXRjUEpnWkh4NGV6K3o2K2Rtei96TGV0ZTNDa1NOUGJPdG1iY1BRVnRiYVN0Q1dZeUdTNWdnS1R3d1BUMlFPUWcvejI1NDRjdVRDdHE0eDZPUG5ZNnh0'@; put 'QXUvSCs4amZvWG1VbGh0bWhucWFxZ0NYTUljQkFXTWRSaURXOHlMVzY4a004SzVIRC9vSElPZW1KdVdPdXBxQVB5WlJSb1NCcGh2VG9nVC9BeFhoQ1AvWUNCVGc3eW1sdkI1dktmYXl6eG9xUktrUmJxWHBSeSs3WU1VU0pTYUZkTHZnVTZBQ09ramdDTDhnQmw1MG1VV1NWeEJ3NlkxR20wNXZM'@; put 'WWlXVzYybDFWNnJYbWMzaUFadmhXUTNFOUhzeXJPNlRGZ1U3QzRoNE9DZ0JzbGVyUzl3dXdwcVhaSWhCMW9Rc1FsRVk3L0Q0a3VVNWhzOWZyUE9hRFNZSElhOFBKTW9tdktzQm9kWk1waDAxbkxSWnNndlRmZ3NEb2ZGVmFzcmRPYzVoRElUQlRZYThuV21mQ0lhamFMTm9yTWFEQ1lOM2wyb3Ez'@; put 'VlpIQlRISFdpV0ZKSTJaRVpoT1lCMEF0YnRBRjRIellFRmRBRFVBWjVHZ090aHBzUnRvbFFVd3dGcURWUFVLaVpKNFpldSt4TDg0S0lYWGxqNDhwZHBmNW5sUmZRTDlFRmtSVjRaeG85Nk5aNER3UWs2S00rQlNGVGs0SG84WVNtclRwU0hFOVhKYXhPMU5lWGxpZmJheXUyTnRLODY5TSs0QS9l'@; put 'QnRCYklia1E3MmtINUFrYUVZRVEyMnBuVDcvYlg0VHpsajdqdkVPT1pkckNaUDRIbm02bjFwMWRBQzJMc3haUTd6TWdVRklBcmNpM2tJZFU2V3JLV0VTLy9adms1L0IzeUszaXVYYmJTVHMvQ3MyL2dENlNxREc4NXE1dy9TMzcxOWlYRTdHWGQ4cHZrSHZJaXFMOHlGSmVyZ0J2WmpMbld3R0Nv'@; put 'MlFCc05qQ3laYmJTQWcvVGsyQjZZcnExZXBDa0doTEFYRlN3U3VGSmhydUhoKytlbkh6ZjBORDdKdXRINC9IUit2cXhlSHlzM3JMN00vUHpEKy9lL2ZEOC9HZDJMM1pjdjNYcjllM3Q5TFdENFlBU05nMHlMeUtmWEFDa0ZBQmZBMXlyWTV5UGgreE9oam9wa2s3YUF5L2VsUHo2L2xPa2JIRG4y'@; put 'YVZ4eE5ySFlWSmhtRThCaXNvUnN3bW1BOXhBeUFCREoxT0gxQUdaUnN3RzJiM0JzRTRxaUdXd3BzV2xTS09xLy9JeGtLZDZTVzdjVXB2Y1Zqays5MkRQZFpuK3lmdHhXcEhtdnB2Y0hxdHBxYXNkZkhmak5SMWJidTYrWVpFOXV4UndHWVZuVjZHTTNGWllBTStwd0pqQTAyRUlBOVNHZzBFL0FF'@; put 'L1d6UUJ6d2tBUTBzOVFKZUJsOGwrRktvTkJmekFrU1lWQVphcGtrdlhNN2tpcHBLZHg3ZkFrRmUzL2VIZDhLTFEzM2Q0MzJEODgzTkhYMTFRM0hoclkrOG0rNjl2N1d0cTN5emNNV1RLcGlhcEVVM1dpQmgvR2RmRm9LbDQxZEtKMlIyUGJoTjI2dmJOMWR3UG5nMUo0MlFsNE40RzJxNWFqRnZB'@; put 'MzhJQ29oemxnQkg3bkhLQ09tZGg4M1pEWmJNNHo1NEZNT1d4MHJDRi9CQ2Z0MVBNTUZHSUJuMVlldCtDdDUyWm1UdjNrM0N4K1FSay9kQTVJR0ZGK3pPa1RBeHcxd0hPS0tZNGNvQXZ6TEVTQXpyRWVBWTUwQUtFRHV5NElaSm9iOWRVNEFnK3R3dTRNQmhpT3dQVlJNVlFoUmFnd1NZMVpicnov'@; put 'd01EVTNvN0JvZmFSamgwbS9MenlWUkhlTGJSMzNUSml1WFpxY2t0RFNxNE40dXNXbjRvbXIrbmVlbTBMeDBFdGpHMEE2T2RERWRRbmI3RUJEdXpBUEFWWUo0U3dYcWNiRUVHeDZQU0NiaDVsamFzRVk5TjBSSEV4akRCU0hBNzRvWXVpWUNoc0FEOE5xU09pZW9PcGJJbExpUVFmSEZtMjh5VHhJ'@; put 'd2M3dW03c3YvZmU0WHQySHQvVkh1aU8xUTRsZE9WWE54ZzcvS010ZFlQNUJUZmlMelhzNitvKzFQYVZUeDU4ZEdaNHBxeXNlYUU3VktVOFd0RmNudTVNeGo5TThadUVpUVNZL0pUSnhXQm9NSk1lcW5jdzg3M0Ixd1Z2aHpxUTJKL3l1MEVoUEtBOGpQK2cvTzk3U2Z2aTFVc1hxSDhSQlR4MHFu'@; put 'aElvUjY1MHlVUzBLNERVczcwVlMxaGdPbGpJQkRURXBXVkZBT1ZxY3FHbW1xS2g0cHlpb2U0a2FxdGpUd01GVE01M3BXWHZnZmJaQ1hVeC9qWGsxdUhNODJkV3hhN3VvLzNkRFhKUTcwbkIrdEcraHNiKzBacTI4ZGpYUkN3eE1iYkxUVlRyVzFUM29MUnB1YnQ4ZXJ0VGMyajNnSzRzck1HUDlR'@; put 'WXJVdzNWc1VhQk9WU1U3eTBwb2lRb3BwUzZrUVJWQTl6SEZxaGRTblFGK2l0TjRMQUdnQnJPcGlzSHNSVlQrYUI2UVdZb1NCNEJuUHNnVVpyZnhtZFl5Z1lZclQyY0ZKejRRVXJURCtvYzNhQTVlYmFFV2o5OSt1b0xEUHFOMU15VjFLQ2t4ZFhVNWxUWG5rRXlNeklUZWZBN0FXeGdHM3dVdDFO'@; put 'ZFRVYlhpRVBzdlE4eUxKWUVMSjRMUjZIalJrUlVYVXROQ05DTmpBb0ZlcGZmRVN6TE1wZDJqdUl2WmlkSkJhSXZmSVJza3ZJRG9pNkZSbWZ3dmg1Zk91VHlSamx3elRhVGtTeUcvaFFmRVlrNERzNVV5RjNIbmFuOFNYbGIvQkJISm45MGR5REQ4NHp1ZXRBajVGQy9DZmdQQWwxREQ1WkJtR0JB'@; put 'MUV2VnBqVjRrWTdCcysvZ0hJeWplUVFoQkJraDZySWlUQTg5UnkxOEZTVFV6VkEvM2ZnbnlvaDl2dW5oWk1MTUo0K0dJOVhHNDhBNDBsWDQ1VGVyZS9EQjJFOGw1UzZGeDk4Y081SHN6K2k0M0V1djRsZkFkNXdJejlxbDFzMG5uQUMrd3RVbWdRZEVnN0F5TGp6UnJWaVZrZDVQQjYvcHp6a0RR'@; put 'YVpiblNxQWk1RlZyamV2U3JLZldKb2IwZjljR2QvOVEyOW5mdlQ4K1BIdkJydTc5WTFWNFliK3dhU3JmVTdHN3V2Yyt6NVB5c0JNRUh4NWZjTFc4Z2pTRVlqNkpMczlwZVhDUWFoR3hzTkRxd3p0cmNSRVZpWVIxalZFUGZxc0hFUzFEaEVUVlM3aWlicUV1NURxdVlDdldBd0NET2dkTzBHR3Ba'@; put 'VjBVZ09pR0V3Q29iNWQyeXNCOExVVVRVdElQMzg1cTBrU1p4RW9pak5zT2FqRUpBVmRBSVRkNDUwRHZkdGhWbGt3dUZZS0JnT1d5VGZPdGVpZ2dZZFdRWHE4ZEt3aEF0U1BjVnZqdGRSenp4NzBDZ1ozTEFpYlowWDVoYS9kblQrQy91YmQ5WFZ0bHVLUnhLRDA1MEhXMnE2blpaNWE1N1pXdTRy'@; put 'YnFpWStzVDAzQmZtOWp3NDAzWWc1V28rMXUzdkYzRWlGcEhERGRFYkRueGg3c2pYanUxOWVIcjhXRk1zRW83dEcrcyszbDNsYnpQMGRUU08yb3JMS3JlMzcvakE5cmtuRHV6NXhKNlM4cEtnSDNzbk1yWllmYXkzcXJxUjJ4WW52THdLZWxrQ0N4dVRLNDFZeDRKN0hYQzBEcXdydFhVUUdWQVB4'@; put 'OENjWGU2eUZvQjFsVmdJR2pGalVxcDhzZUVlWEFZL2Q4K2VPSEhxRkxtd05QNXI3RmYrQmRBT1VRZDVIL1NmRDU0UDQxclFYL0FFRWVSRnJ5TjY2bmFvQ1JnSmM4K1lQcXVvMEc0ckx5MzBGL205Ymx1QnZTQldibUNPS2NPOHBwLzltRm5aR0hZN3RUZGplTHgxVDhOc1cxZlQvb3p5R1p4TXRM'@; put 'WW12blF4MmRtWnZFZ3V4RWZyOWplVTdHNXEzRkdMUDFJWEN0YzlydnhUT2haTC93UFZDOVdnZHo4R3NsV0NHdVE2Q09OUm9SbHNhUkdZV1JBdFZYOTVWaVdKNEVJSktnNkh3alJKbEdVTmoyWkhjK21PRzgvdjIzZCs3OEM3azFQbFUzVWRoMlg1Y0VmZGxIOW4vWHNHTExPZm5abDVaTGExWVZz'@; put 'bzFuVkU3anpTRlExUHBGb1piU2p1dnNWOEh6ZUxKTEtvWWtHMGlpcUwyZVV3dXkzdWNMbWVva2hqemhnT3FVd1l3L2F4TjQ0K3VXL2ZrMGZmUU10OVJ6T1pvMzEza2dzN1A3bHYzNE03ajdVZTdPNWVhRldTRkFjUW1ZTHR1UURxdUVhT2F6cU5LaERkTk9nU2E2Nkh5angvTTA5RFVYM2lWdldi'@; put 'M2UvK0I3eFBlUkMvZCtrdG9pZnQ1eGVmV1NRWEZybVBwZlZ2UkZWeVdPc2ZlRTNIZXRYY0FMaGhSRWJhTStVejFyTTlvUFY3bW5iNnhLTHlPdStVMCsxdmdXNSsxQ28zMllCY2R2RE55N0FPbUF3NnBscFJyME9NelZhMEluT1J3Qzl3QXZFQ1BBRHoyM05NNG5vaXBnTDRYVGhVZDI1dzl0Rjkr'@; put 'eDZkSGZwdzNWVDVnV1RtT2xtK0xoTVpLMzhNbjFUK05kbk9TZG1XekpLeXlIdGFtL2RIR1Y0amNsRDFKUStBRDB2blRQTkorV2d0UGpHZE1md200WlY4OUxUeXQ2ZFA0MGtxVmppay9KUmNVSDZOQzZDWGZtajFMWmJMcEhtSW5GaUVoM0VRaVBSellRUllPOWlPZndKWUcrVWs1dnJqQWU1N3dl'@; put 'Qm1CR0FvTDBPOURlVTdRenBvdnVMcXd5aW91RDE1dW1LN295K1M3RHpWdXRCbGtlc25nalg5TGZnbHBhN25jQnVuN3loMGRaN05zMXd1TVJyMEJCeDBQSUJaeGt6ZytVeW53OEh0WWRLT2swWWNnTkF4TUhvYVYzOU0rUjJPZlB6MTZkTXd1U2Z4bVBKRDVYWmN1ZjhmZUwvVXFTaUZmdlhVZDJT'@; put 'RHByMmhxNUdHT2ozUzIrMTAwQ0hnbGFRZEZGTGcxQ0x3M2RJM1dYdVFJOEc2TWk1cGczRzU3TnE0ZkJBMEJPeG1vTURZNmRkZVAzWHE5ZGZvbUtieEk0RDg3OUcvU2tydGszeVI4WEtwN0pNSVdkZWpJOXNqaGlFRldILzQwS2xUeWpuYVh3bCtIZnA3WFNtaGNrNTVXUG52aUhXNTJ0bDcvcHBy'@; put 'enUvdE9KVEpIT3JndWtkVk9yT1B6TXg4ZG5heDYwaW5mS1NMY3l6VE81UmZqN1A4bHB0R3F6QUtFRlVCMDlURlNySWNwbWpOY3pueTNGYTNQVnd1MGtTNVA2dDczSUdzYnU3RnNmNGJ1N3R2N0gvaU5DN3BIQjN0L0RTNTBMTFExYlhROGl1OHE3MmhvZjAxbElzREYvWHQ1WHFhN0NaNmdlaDFv'@; put 'UFFFQ0pPemdZMHVKMnZvZHJzajduQjFPRUpWTU5oeXJ4VEpGV01ZalM0ZFNYc2JWMkdGS01HS0xWMEROVWZiOW1yb1VYN1dNdFcxSjVERkR5NjdOdDQyTEFjcnMzaDZvMnBrZUt5MWV6MmVUZ0NlckRDV3BGeWJSK1dheG9yVWRCNEFSMFNORlVXQk1MR0VJYnZ0UURwazlWTXA5OGI4RVloTjdY'@; put 'N1YvL0txY1hVTTQ5OTg1cTdUREcyN2hyNmdESDZhWWUxWHYySjRHMTRzZUpQampjdEcyZktmU0MvNUNxcEVkWExDQzVGaEFWZ3NSSEl4UmozREhLTlZpU0toNmlERkdCVnhIcXBDYUpNZ3EzUWZpM3BVdHZyOXVaYSsrVnZiZS95ZDdXTnpyWmxqdlNPM04vWlVIMGdtTy90MjNueEwrNDFqNXVi'@; put 'R3FlbUdTSEdnME9xc0h1NW9uV21zcTlrVGlhWkNsVlV1MzlSa3gweUtqVFdveHZLU21rUEpobjg4NmFHNnlqZ0E4VjhBSkFhOVNocGVQUVhoMzZJcXgvM0FJNDlDZS9CLzVWSTFFWTl4N3R6Y3lPVUt1alNEVEJVWEQzZzBIWWI5ZDQrY1Rvd25HOFlUcDRidjNta1p1V2NudmxzNTJiU3J2bjVY'@; put 'RTM2M2N0UE9lMFk0WGwwdzFuOW04U284UzgvaVZkQ2Fxc0xrV2dkY2RxNTFqRFFiNzhQa241VmYzS1A4NHU2Zi9JVHFYUGo5TXpHeXZnb1IwcFV5ZVlLK1RGVHZnN0tnYXovTWxMUEpnN1p3MlBUVWtsSUZCRDlDd0l3RGhlLzcwQ1B2L2N5SDN2ZmowMTk0SEJTNTRzSy9wYitnT1JTRjhIRkM3'@; put 'RUUrejNRYjZFYWpDRjBUbXN1bGZJZTVhWEU0SEhhS1Z4aGxCSHcySWVsTkovRmphUG5Eeno3M0liUzhmTzdaNXg3QU81WFB2ZmttbnNRNzMzd1QralNvZXR5QVN1UWlrY3BmVnJtcGticURMZlVZMlVoQnMrRUM1UThmK3VyWDdsUCs3eG5nd01lVml6aXRiRk1VTGU2ZjFtdyt4ZU5LMmlzYisy'@; put 'ZlRYZzQ3RzJtYXB3REE4Q2Z4cmNyN1FaMi9HNTlaK3FjWi9MUEZHYVdDMi8yQjVWdnhDUGsrajh3OEcwUm10aXVQek1ET3V2MERXUGZ3dzhyYjVQdmJsblpzWTdoZC92Zmw1L0NQTnNsWkN1RDdtczdpWFR4bFNmMlFXM0hkNnZIUWxBVWJEOU1ENm5pMGJCdDE1bWptbFk0SDVZN0hDOFlpQlg1'@; put 'VTljTVBZNTN5ZGoxNWJOdmJGeml0YS9DRCtNdWNKNThTOS9mSUhyQU1MQXNKSTZNWjJSdlVETXBUSXVweEpwMlUzQmNuUDc3NzBLRmR3RHUvLytZMzZaeVU1VU5rWXZsRmVHZzU2Mk9USEREdFFnSUNFTEo5NlF0Ynh2anpNeVNEdytRVmFPdGxiUzJZeHE4STNlREFZSXpZVTlQZVFHYnh4aDNr'@; put 'NjU2UDh2Z2lBakpMaUozbE0yNlh2WVZZMEJXQU1YRkFGRkJXU2tROXNJU29oNGpRQlNnckIzaTlTR2k0SnVobWFEeFFPR2pBb29obVZGYjJnZnUwSG9RS0pJUFQvTG9wMmEybFFYaXFKeGdPT0kyQVcrUnhBM0p6VFlSWERZTWJhUjRrcGEyWDRidHZ1Ymw0S3BIZVdkKzh0Nld2djcycll5UjYv'@; put 'VjdycUtsbFMwSnVqaFA3emZ1VWl4MkJTTlZnWGYxSXZOaGEzeFBaMGFpMEpTSXRycHBnTUs2dU01TlpzR2NPVklwK3hLZG55c2M2d1lTUm5nejR0QStBaG9FcGZydUVNc2xnTnF0VHFLYnc2TlRCMVBrNFYvblhBbEdQYjFXeVR3MlUvZHJhNCthQUFKTnpXNHNvVnNGTVFUenNja0tNNkN4MWxo'@; put 'UjZZVFoydTNOTitqQkM1Y2ZPTWtrcks0NzQrY1B0N1lkN212ZVVuVHhadHFlNWZQdjJUbmxpUWliMkxiZU9qSnphVWxjOVFWNVUvcU82VGhtOHVyOS9lcnEvLzJyZ3IwckFtUjU0NVhJeFdPSG1NWmpuc2pIWUg4OE1EZDArMEh3Z1BPSHVLSS8yUmVISG4vRk1ST2JhTEFPbisvcE9EVlJIK2dx'@; put 'S3E0ZmoxY1BWSllXOVZRbk92M0VZMDFhVmpsK1RUWGFJandWR1FwVm9GSHVNSUN5OHlDVmEvZ3JSMWdJeGpwVllpcEp6ckVZMENtaTlMQ0FqbW5xWFFqTmR0eHBtUGRFYzRZQ2RFZzJ2NFg2UDEwNXlpRWEyQXEyYWVoamxtdmFVVFFEQk9vRnc1TVdsTFdQeDJpMm5Sa1p1M1ZJYngrTFN3MW1p'@; put 'WldVOEJuVHpBREZrdVoxUWdtSG10ZWxBNytySWdlem8xREdyM09YMXdwOFNiM0ZSSVRSMVF6Ukd4eGprNU1wMTR2elVheE1sUHhBVjd4enlEUHR2YVI2NHRYL3JMZjJqaTIzS1NmTnd1bUU0RDl2TTNhbTlwWjZ4UVBYV1V5TkR0MjRkdW5lbXNSdHZhVXNtMjZqdUFrY2JMNUQvQVk4OUk1dHNX'@; put 'TlJEbkNoU0tsSUNGU05SMU0rQXgxYkFraDFvV2dmMHM2dkd6c2RyQ0xJd25vMWc1Q0lJUWtSUVRmUHJid0k1VEtFQVcreVRKQjlZZU9yZDJPbHlIOHUyYWY3V3Y5eDQ0ODJEZ3hOeVNhc25ZUFRsZTBxSS9vQ3lGMy82UUdQbmRvOXp4R2lxS0FKY1I1ZTNrdzdBZFJtS29ZOXdIblNVWXIxZ3cw'@; put 'UmNTUkw3MkVYZDZvdXFuaWtIVlFrbVNDVHpNQmxoUmdLRzV1cUJrY1hKdEd3V2hHcFltQWNGUkd2QVFNdVdseU5VSGl1UGhvTXduckp3S0JTa1doYmJWY1hBNDhkMnZKcmxVcXRZcmdNVVF1ZU5sZFcrcXhKRHU4cDJwN3NPdGJVZDZrcGZYVHcyTnRiUlBqYmFRZlJLZmRkOFM3aHNxckNrcDdV'@; put 'N21zZ2M3ZTA5MmxGYk5heThiNnlqWTNTMG8yTU02QXNlT1NsaDhjUFJaKzEwS1ZzbHJSY3gwWU1yTTNwbUxVaFdOS3ZVMjlhTmJzT2RsWXNzODZMZUFXcm1BUUpjeUdsM0JsdzBSVUZWSVJDVXo0a0c3VzZZS0Q0M1dYZFRlMjNEd01tVEJWY2xpVDI1dTBYNUVxNUxkWGNsbEpkQW9zTFZYSFpv'@; put 'cHVmYjVHZmd2K1dqclh6SW5tekN2SUJ5a0YzMWozMHkrS1J3Q3p5SStaekxVOVExeWJmbVdWZ1dYYjhtaXk2Qk43Ry9xcXFrdUtxcXVPUGtTYkl0V2t6ZkZrZEhsdDZpejEvK3p2S0krbndmMmsrdEVoR3NvT095a3FIUEdZc2dNSmJXN1JVQkt6NGQ0M29FQUFKaVMyT3JiNElPWWhsK242WEk2'@; put 'M0hhMmVpa2RUbiszQnlEbUIzcFlxTTkzK1MzZWtwT2J1dGFHZkxiYjVrTjB6cXhvb2k0bDE3cjJiR1NHNGdCM2MxbzVrdEdGaXhxbExkelUwbkhoVmZSM001TlkrNE5vRFlFM2RQczQ2bzdVMVBQT2V4TzVwVmk2bEF4V3dmKzgxVXYzL2RBLzhtVFA3OGZseXF2dlR4OEIxaXpIWCtpNDZFVkds'@; put 'OGwxTDlxNDhNd1UxOVVUY3lvQXpEbjVHcDg3Sk9Xekp1YSt1Sks4cVliNkFXcWw4OFQrRnZZQVhJZlFGYzlWMTVFc0I2ckZzaERGWTUreGlDSmdsNXZIOVRSbFdVMkpkQkk4Sm5lRmVFdUVjWEM3TTBwbGk0S29Jb0E4REJ3c1JIVTBsb3VYczNPOWJUU0prbCtNRmwzYzFPOFBuTnpVM1dkZlBL'@; put 'a2E2aTJjYkxBdWF0RjQrOVVzck85UnZtbTlwZm90NGJqRFlucUZKOURONU5STzhqT09MV2tXTENBWHRJc3FaT0ZjbnFxamV5NVVzajRhcDE4WGxZSXBUVkNXTnNyVWltc3o1SENwcWp5QXRGdkNURmZqZm9kRXpDdU5mbVh3bmZNdjNndW4zK2hMc2VaZ1FIMkd1Mkx4Y0RwNkkvRitxT3F3ekZ3'@; put 'cXEvdjlNQUMrQnZ4NFdydWVIQ2RzQlYwL0N5TWgvb2NoNW1uU0V5NVBnZnpBRVNCK3RVNTNockZrcE43Q0V3N3JIVWtjMkN1MEtsei83Vk9uVUtlbWxqbDAxSC9hVHY0VDN3dVoxUS9tRHRSbVB2QjhFRVFWdnZCMmVrVjV2ZzFnNXB4WWs2U2ZZM0x0UXJteXQyZjFKVzRQL3FsMGJkWDNKOHha'@; put 'WExGKzhGb0s3eWNJRlM5ZFQ1clpzVUpmQloyWmluQkRlSWVLL01SM0JvenIzaXkxRDE0RGhRTTB6Q094cVJiazdrZnoyYTJ6WjA4aWY5WDI4S3VBZVV0b3QvUFphaDgrVTM4QTNoZUpmV1JQZkJBTDBUbjRDV3pKVUExNVZPNFVjb252aWJsRTk0ZzQxT0t2YVdFS3VadjM1SkliOXNWU3RTbE04'@; put 'UHh1cW5taHJsNE1qaGM0WSs1b3ZHbWdlVFIzWmFxMEk2MmtnS2ZMOThXYkk3WERsVDVTNmE4QllWdW05dVdsMStScVIrWW9qNFhqSFdCZkFoOHJobzU3c1VpVFRtRGEzaVcyaFF5VFJjeEFCc1EzdTNsN2lCemtad1YxRWNLOFhVMXUxb1RCY3hJRjlVYTAzakIwMW9pVHd3TzNuempqU1dlZkor'@; put 'eHhPblozb205Qis2Nzc0RHlIMFVWSmlPekNTRFBQcUxuZXNhWjlVWlZQUU1xUnJXZU9YR2xWN3VxR29DVlVKTHJHVmZBRldEckVUazhSRzBXRzVXZCtLaDZhZEtVRFhETVc2QmFRTm5nZnVVU1ZUYTRWNjBoQXQ5TnI5VVFhVmtWelUrME8xajA3dVRwSDhjZEgvblFuVDg5RHU3UGUvRXQxRml6'@; put 'WEk5UUMrM1g1NUhzbDg4akZadzhmSHp1aGtNbm56aHk1UG9qME9PbjhDejlYWG9MWDZNOHRKTHZBbytUMTZ5WkpCM1cwWlFYelNwQTN3TEpXYVJ3T0J4NmxyeVVBczRJVFNaSlR2eVIyODdjOVkwWDNuM1RUWGU5OEkzSEg4ZUdwWWNmZmx2NU0rdDNlWWcwUWI4MldyMWpOdEFoVTJZbGF0ZVVV'@; put 'ZmZTc2ZzRWRmWEI0Y3hsMUF3VzJDeEU2UVB0M3FKQVdjTGwrZWtkZjNQZmJUOXR2dVdMMXJ5ZHpvb0VNU3EzNFR1WFhybVA4UHBHZUhrZG5yZEp2c20rYWI1Sm92bW1CSFlvYitMSHNmSTc3RkVHcDNEbm9Tbmw3dyt4M09YeUxueVl2SUQ4cUZJT0ZiQjhJRmhxM09jdnAzbGdtc3VjVkFVYm8x'@; put 'RzdoOXB3bW9KTWczWkpnYmhGUU5JZ3JpRnVMMXUrbEtpb1NUaC9Ob3FyRzFKeEhOdTd6ZFRjNU1iRGtUQjJOeldiUGhYdGF6cFRFeDJPMXQ3VzNGZHBHRFo0SStHN0pvdXM2ZXAzaGFzOGhtRk9zN25sNTlEZnNmelU1clY4NEVmTTdkeXAxZFZoaU5WMjRldlpQQUEvQnBZL3N1VVQxT2ZIakVj'@; put 'eG1sUXIwaEFlcFNYblJITEZ2R0RYSWcyTjZUQk1KNEhCWlNNd0FRL1RWVjR3RjFLRURqMFVHYUpETjI2YmplRjRRd1BNYVhiYmxNRlRGWDVYZGRwYU5IbFhPT0tGZVZUMk5kOVdDL09xT2RQVUY1V1dsMUVLUi9COStHbTdoUE1RVVg2RGpFOGgvTHp5RzFhdFFXMWh6L0pWNkJkTXYrYXoxVE02'@; put 'T0dxUW1WUE9FbXRPdW02MTJnRm16aVV2aUFUL0p2bU1XcnJRZTEvSmRtTFhxaFdXdHVDWCtUTXFsNThqZWpLTUNsRTV4VXBKY1dHQngrMTA1RnQwMk1MWHllQ3BPOVRFSWtiRFJhem1Na2pyM0xrT3BTWHVsS0RoaUIyaTF5Q0UxZUFCNEsvdjI5VitvS1ZsZjhldTJ1M2xFeFcxOVlFSjVaUHBl'@; put 'RHhOTEhKUDN2RFJUT2JJY0Y1WGh4aXQ2QXVibEJmTmtkNTNiWGZpbEhON2t0VnAwcnpwaTZnWWRjc3kwSklXT2lHSjFrOUx1RjhQY1IzR0VtRkxNaXd5b3hWUGtzU1RBWWhYcEJYYm5hRWdtQmJxM0lYYy9sU2FWWml1MHZnbG1KYkhrZW1sZnh6dDdtNWQ2TjV5VzhtT3ZQNVlmZGVUVDg3TnBl'@; put 'bytNWGkyNTNDYnV0SjM2K0FuVUU1dTJJT2E1VVlYUmtZOEFOR2x4TUtTT1JFVGNKbkF1Qjh3c1QwTnZDNlA0bExiczJBejAxMExiRHVJV3l0NmhWOG01UGpySDNqaGhSZk9QUC84OC9mOWttYVRjYy9nbHNHREIrRUZINklwWlVhckRCbkM3eU1YV1cxUlBjdENSbWhoTGZBdFcxQ1kwUXNVVVho'@; put 'MGcrb2ltcURNalQ3cWM5N3ZDd2FMQ2tQQm9tZUNJZmFYRE5HLzRZS2lrUFlYZURXQzZva1JmOXRXZ1dNNlpCTndETDJtNWtVSDhMM2szSlhrVkdrZFVBYVBLRStUYzROWG1sUDFTb0V2TGo2d2c3eml1WlBMc0gvNVpkSk9uZ0JLQjJTSXdObUN6MjNVbk41SkxSZExxN1BsbERDekJGanpkK2lD'@; put 'TWwxWHNmWWVhbTJlNjhSdGUyN2VnOHZxZDdXMDdxbGZLaWQzTDkwRWZUZWo3Nkh2NE4yQXRGTFpsNk1RQ0ZVVm96a0Z2NDI1Mkl0R1MwdWkwWkx2UlV0TG8vUlh6UmN2dDRNWk1ZUGR1cEhOTGQrRmljNXBKRHdoSVlCQnR0SjhCRGoyQXNHNm80aXVYUWhrZmtXYjdtVXJyZUR5TVJCZ3JOczJn'@; put 'K0YydWdCNW5jRmdrTnBwaWpsZVIxNFJYbFdRU2ZmRy9MU3FOVkZVYnlzbzhUc0w3WFpIbnF1OHUwQWZENWVFRTdhOEJxOGpQODltY2cybDJYNmVPTkRjeW1nZTExT2F4OUhyZkQvUDhnRCtKZE5MZnRRcGQ1UUI1N3RnWUc3cXpRNGdQU0lDTGRHam1CTTFiY1hLYXlFeVJzaGZYdWgxMmxXTlJZ'@; put 'TmlsS3V4MUJLaWxUUVkzVUtERzFRbDFyeTJNR3RGb3luWHJpM05RbXdPck1aSHVNTldRVmZnN0JMRVliZWp6eVBEVXdRLytYbW1hRGVBT1FqNmVHT1lFeG9NbHRCRG04QWN5OExrb1k5dUFuTTgrNnc1OUdFT1E5YkN2Snp0eHd4OHVRb0dhQUEraS9CSFZsdmtRRnZsYmp0VmpSVGxCb1JCQVJt'@; put 'UWpoaDBCNHlnRjhWcGNEUFZwU1k5ZDVSWU5PZXdPYUJ4dnFxYnpLQW9zVmJJa3FMMVRYNDN0Z3Zra0ZiUXNvd0dQNERmVDdZdHZmVXRYdGx5NTUza3dxTHlHTjZoUE1aclVkcFpEVkVLRzJWL0ZSYjFVVUlnTEFmMVdJSjF1TmdCSEd6SFJCQUhTdW5tS2M3OTFiUWFSTUJINFFYcHJsL0pNVEox'@; put 'cnNac1lPajJ3dGg5TEJmcGdFWUoyZ2hoM1cxWDNLcVVibWxhMVVvNDlZN041UGphRmlCOUF0bS9VVU8rVmtEVENpblVFSXFDRlByZDFQTHdkRzQrVmpYRldtRmNFNE5vaFFzdlRmbDNKazcyV1BWbGF5WFZPL25BanJXbFZIUFI4RVJkaTg2L1dvQ2JUQWMrdm5OMWFSWHdGYXRCWW54ZXFjckND'@; put 'Y1pYT0ljLzE4SWNSSTl0QW5OQ2d3RlpPTG9KelBGc1AzUHduOEdzOFBueTkyZ05EM3RXbkk5bitmM3IrZ0dteGwwNU1BZkJ1cStCV2Y0dHdBVFplT0o4UE11UHI0TUJhNFhqYkR5OG43bmxSMWFQQjJTcUNsNSt5V29hU2xDYjNMemEwNWcyc1BVSlk0NnJrWjhQZjByeWk5bitSRGMweXdPN1kx'@; put 'ckpKYkNBS1dubkplVzBHTTJkbE1ENDR4L3hnclMrdmpkMjhJcTBMK0RIc2xWcE9MQ0lpNWErd1d2VC9uYnhhY0FCcTdkaGVxVk8xU3VmV1ljblZrUEM4RlN2MHZhVDYzVFBXcGlEdUdvVG1CTWFETkQySzV2QUhNdkM1S0huTm9FNW5uM1dISHA2alE2anRXRzNRN3hTQXBaQWZFWkV1RFlXaW9C'@; put 'WVJOTGV0RmZ5NG8vY2VlZkFuV2VIejk0eGNNZWR0NS9OdmorTDJPS3lWalBqQlJzVVJYZXA4YTBMNjBobHhGZmtOWXQ2SFJoYXZURGdZMWVGbktzWXJxcjVsZ0tXU2FFbEE1NUJjZFdTSXpnWHVjdFJIcjZHS09hdUQ4cldpb3FLYUVWVjJCRnhzQjBpMlZKektaQ3RxcWN4SXZKNE1hOTgxVkZP'@; put 'aUdCUGtud3ZlYzM1dmRmdXJqeStNNUVFbVQ1STN5bjVSUVc0cGlrRGtvMHJEMlhxbEI4Mlo0ajMxcDZaejg2MjFzelhuZXFoRWwwenIveDZ1QXhmRXdDeGZxUHJTT2RFcC9KUWdOczZWaVBDNk51azhzQ2o2K1ZwRGN4QjlPTk5ZRTVvTUZsYnR4N21lTFlmelk3bHlEZjNsOW16MnRSbnZiQzZu'@; put 'NXg2SzFwSGxKQmp3QlY2SGRZZkVMRzZmSmJkUEFwbUs5L2p5dmZhdlBhdzN5YXg2akozTXFmcUtwU3R1anAxWWFYcVNoNWpWVmZIV2hjNnV4WmFidnAxUjBORCsrdHFYV0tTZkJka2Z1cFpNL2p0TkhmbEI0NG9CYVV2UU1BeHJ4VlRlL2p5c0lqVmxIV3hXbFk1bndYTXVUMGxtNXhCZjlBZkQ3'@; put 'RFZyblg3S21JNHBSVTZwVFJMUUpOZXZhM1hkbmNmYkUwbVdQWHVjS3ErczdNK1ZWSGQxbEpUMDNxS0dKdDIxdFh0YkdvWUwrUVZ2SWRwNWU1Y1k3aXFvVEd1T0RudGVhM0JLNERySGpEdUJIVlBiWFJkQUJyY2szUDlrZ2FQcGJGYytKZXkxL01HY3E5ZnpQWS90elhudWhETXdwdFBjL21FNjhK'@; put 'OTRDTldvd1lrazBPRFQ1cm9pa3BGTVJEVkIzNkFHNXRJRXhaTjhHRFJLQkFraVFOZ3FjMEFVN1l4RERaTDRFeVlKUXBtdVlLdWJGZldWZWxhTU1NR1lDc1F4bzBocHVnL1BzVVlNb25FTkdtQW1GQ1VpSGdnejBpbzk4c1QrRmF6UmFCT3cwcGRBNTF4Nm5KTkxEamJZTkNLemViY3hwYS8vbm0y'@; put 'LzUvblVXUTFnc3pTNXZNZzNhSmt1T0xXc3J5MklWcHBSdmVGdjJNWERNbHllU3FWU0lDakphY3lyYzJKaGtTeXJoWjRMRTVEbjFBd2xKLzF1dFpzVVBEbWJQbGd5emxyMXRaUll6dk81c0pmNU92c0hZZkQ1WWU3OWg1ZnFZTnB1cnEyZlhkUmFIL0wyc1YzNWZPRHREeW1wWTZ2d3RkWHg1TlRR'@; put 'OW55bU9LaWVGVmxkYzZpdlBJNU9lRjMxUVJEM0E1V2d1OU1hejhhMEdOeVNSRHJkY2tRRWZVTmhVQ2ZBZ3pCY1I1SUdNVEdSRlNqUm9nS1JHRDBvMGdFRFNReVZjWGlLMTdKc2hjc2xROXI5QXBSV0lDNzdmTEFjc1U2T0hhK3dmNHN1SjZ0NVllWmU4dnkxTHEvMHJHbHRTajRLd2Z5MS91MUJa'@; put 'M1haVGFxVDhHbXRXNnRjZmlHcm5YbEtsazlGR042cm8vcnYybTB3WFdxL3o2UWMvMlNCbytsN2Jud0Y3UDl6SEg5dC93dHRyWkorM21aOS85dUR0OE5CR3pMdVg3UXcrRi9DZGRMV2Y4djgvNGY1ZGRmaGV0aDFqK0huM3VRNStIcVdhM04vMlMxWXJ0a3A0MHRwMlFQdm5DWWNCOHZ4ZkJvQ3gz'@; put 'MlZkWEFkSUVjZzhYRVpENzM4cFNjVjF6TWE4SENJYnBIUW5OUnN1NUplTVhseWwwUHdtOXM3N2xsZVBoa1Q4dEMxNTdPOE9TUnN0NkJZNTNUNWEwbDQrT2Q4dmhFSjdFL2RQWDJzd1BkTnczMUhzc01EZmJYOVpjbmF4cWkvYjZsdit6b2txL2ExdGw5bFlZZlVzTHN5VGkzSnlwZCtMb2p4ZHNF'@; put 'eCtmaGphNVRlajJVYy8yU0JvK2xmYm53TDJXdnIrNy9ZcmIvdVNsdWx6clFObEpJK2xsTzFVZjNUUURmYTNVRmlLWHZrQTVZZnBKdElKTkFGdldqTEZ6MjJZckErOUF5clFhYXQ4Z3ROWUNvT1hjSEdjNlB4a3FMbzFVbGY2RDczWDZvZnNCZnBuK2p4YVd4cG9XWHRMY3dKbTBOMWt0enNGbGYx'@; put 'dXNpT2hJSkZ4WHE5RHF6Z2FpK0xMMHFyRnpkMEpjdDNNaVh6VjAxM01pWDlmdjlWZjdLMER2NXNqcXZ1bVhTdzF4WkNkUmxQRHgwWm1CNFM5Rys3b29JdkJ2WldyU3ZSemxYL0hLd010b2YrMDVmelBjRGZ4Ui9jRTk5MyttQmFPbElhRG9KRWh3ckcvMWwvTjg4SU1PUGdoRFh4WDd2cHVmSHNM'@; put 'VXJTdnVkcTJSNDlmVVZHZWJYTDJud1dSbm0xeTltKzFGbFdGMlBvZjNzVWZ1NU4yZk5tZGU1ZlR5M1ZIR1R1c1AxNjg2YjFCMXV1RUM5OFcyMUJKRXVVUDkzbFIwcXd2eWFzc01zVGk2cU9BRmM5ZVhtelRMWlBOVUNlbUJkak1kOXduTlpuM0NoSjdmdDRXeit5b2dlM0tUdE43SitvM0ZVM1pP'@; put 'M3ZFMm9nSGlnQUtTelhXNHB3cEt1QUl1WURCZ2dEQUVTa3ptMkhVdlA5aFd3RlZTMUpLdXdzTkJYNkF2NjdYYTd5MCt6TDNxZVZFd0hJbnk3WHBLanFUNk53ZCt2Q05mWHRidkxHcks3OTdDbjJGZFFZRk4rYytMRWZXVnQ5VUVmM3ozazgzZ0tiRGpOTnZTcDlYN2JTQy9JYWd5bDBRdGM4SHds'@; put 'V0tjdmhoakNndzFDVFlJWURVYU1qVEVzWWZCRU43OEw1bHlWM0tpMlJaTXBIYkM0aFlOMERRSFBpSVRQVWswMHNSS0F4SHBnRm55d0preSt2YmtOcG1SSFBCNVB4eHZEUVdjZ0dBNjQvSFFWSW91YlRRcUNRWXZaTlhTRmM0cURTUy9EbTNsOWdmRGNMUnlCZjlFS2hUa1cxeFlLMCtKaGh0TlBh'@; put 'Z1hEYXE3Z1l5eE9ES3R4NGkvV3hadThQcGJLN2xaVmR1L081aGsreG1KVjFoWWIwUGxOMmw1UzJ4SnNHT1Y4eXZZWXNyWVJ0ZTNDT2o2TlF4eGpKaThDVEMrRHlSZDJrRDhoSThBOFQvNUVnUUJHelJ1QkJKekoxczIrQy9SSkVZenBOZG5rQU1McmdPYmFLbnlZbWhXTUJEMDZBUHhyeSs3MDFh'@; put 'aE9zRll3UmJWUGRGTm90SnJxUkZORHExdFlMOXRpRmZBS25DaXFCZEc1d05UOWR2aDh2ckF2RktMVkN1R0F1cVFWV0Y5Ym9oWXZvTndTazNkMXJLb3hlZWloa3gzS3YydUZKcDFMZjU5VFovditycWFtcFIvbjZpbWVUOHhrODRrTGFQODZPblBmN1Z6V2QxdFFkZG1hWENRMm9SOXMwbGJ6K3dT'@; put 'QWVZcm5xRURlaDluWkdLQ05pckVCczExT2VsSEg5MVdxSjJMUStudUpTU0VnVVJNOXBvdTRObHFST0xwTFZQc2YwRVNNRERPeFVoNGpldVVXbm5IdjRlTEVwWWhjV0tRcGR5WTRUQWN0c0pyakVJcWpNN0tEUmd3aFRQUUdjQUJCdHlDNnlid0krS0FTWEhrZGpQUUF6VlJybEZXUE4yTGxRc3lQ'@; put 'WkZZcHBJR3lPZU45RzdVZ3RIUXVIQTdId3pGUGhUTWNESVJZamx0UzUrRFZWTXJhNm1YcTl5TzFndm0xclJZNnEySTZYWjF0ZFNGekVLSXU1UzlxUUZYc3RUcGhzaG1ZdnNXUlU5UU00UldlWlhYTkcrU2hEUnZrb2RmNitRYlZSMkI3WjVtTmlxbzI2cXZyMnZKNlkycWpCcmlOV2xUYktxL1Rm'@; put 'YmU4TGZCS1B2RWpma1lId0FzMXlJb1NxQVg5bVV1N3R4cEwraktzTTBBb3AvTmlJdWpvRVM2b3o4ZnVpQnZjVWExQ3pFeVhjUVNEYnQ2SVZ6WmhTNUorQnNKb3F2YTFmYjFPa25OdzIvb21KaXlLZHQ0UXJXMG1WeU5rcE9lODRQbHMwOHZBMC9pN3BvYW12V3RhYXBwVHlmeEVmaUpXRmZBWEY3'@; put 'bWROUDFkWU5IOFlub2NBSGVGOVg5RlJUUXVEUVdyUWlGallTQlVpSVYzckk0ZXFndVhkY2FMQTVWMC9icjNDa3FsSWY3Nk9UQjRndWtSdmc2d3NQend1cldDbndCTUpkTWpQRVpiK0FSZjAyMWEzb1lVMEFVdXVqT1VybmpTNDFjSTdzK2U0OElMcXpUcDkvalpuaVpOTHVoT1dFM2dGU2J2dWxP'@; put 'VzFWS3UraHZVaGlCNDFyZlpXcjhmSFpMTmJ1cjIrMEhRcVJFSjBKVmpNWWNwVk84K1B5dXNqTGFsTExSWktWQmVBekJGdDJtVmx4WkJoSm1mdDJHSnNsTmRsazE3YzhjK3I1WUxiS0Z6S1BIbW4yemprMWdwRzFnS3czeEthdlAwK04rVzNsSm5wSzdsb0crdHJNR0Fqald0eVFkck5jVDY3TDV1'@; put 'KzdwOTNiUTBXTC8wRnZRM0NuSjRucDAzbWVCeWlIL1AvWCs0SG1QeU9hSmVmNEpmcDN1cG1aOVJvL29aem5VeXorSjU0VjZBR1ZWaFBPZzVEdk9jQnNQM1pMK285UVA5ZjUvNUJEakhKNkQ5M01sZ1JqZUc0ZnN5U0Ivd1V4NnR2TFdZVFVaUkR4Skl0TjNwYXpaNjU2RTh0N2JST3lXbDByUVky'@; put 'eTI1U1o4U0FQLysxS25GeGJjaVJ5SjRpL0tmbWFNZDM5SDJmVFN3K3ZCQk9jOXNra1JxNlEwSWExWGlabmhyVS9kMFpzdXpWN1o1K3RnbmJiRnJhdXFMYmxiN2d5VXc5K3J6Y2NQNHlhR2hrK040YjVWeThUL0RSOEo0UXZsdEZjcXVXZDJoclZrQkhsL2ZDTmVraFBsMDQ2dGkvVEdnM3hjWlhl'@; put 'dFUvV3JsOEhDOWhOZzFlTURwUmJUeXJCUFo5VEVEK3R3bXo3cVV6VU1ZOXFHY2RhcE1kcDFxQVQyNXpnZms4Zm01YkM1aFlSSnR0SjZHcld2WHVOUzIrMWJ5SE5pcTdoc0N4U3ZRUGJZT29GS0xuTTZlT0dFZzJTTW5qSFJydlZhdnh5TENFbWV4eDhXS2VxbHJZYUlGTHBvemtTMTBjV1A3eW5i'@; put 'dkhlcnkvUXV6ZEIvOExPbGRlcXNyYzBqT0hNN3dSZnlwVDF3OTgrbXJGNVVVL2w3bXNDelBOek03Qm1NV2ZnNytCWjFYTTlvdWozc3hqVVQwT3BwZTF3c0R3RU02dlVGM3dHSWtvcWlsSE15U1NjaEpPaVNUZ1FCQ3llWmtVMk1xVUIrb2kxVkJkMzVuTUJ3TTVjRzRWeWRwVjh4Qmp0K2dXM09P'@; put 'ak9wRENIazhPOXQ1SkJ3NUt2TUM4OHpSU1BDNmpPWklLTGZsMUp2alcxYnRqMnFzcTAzekN2VEdtdG9VY3lsMHVVWG91Sjg2RjZwdmNZTFJOcVh5NzlQcitJTFhQMVBhN3VDNVB6WCs3UVUrUGNINE42WHk2U3NjWG5tZDFrdXI4UFI2UjlZL1BjSDRONlh5NzgwYlB1dDJ4cjg3T1A4YStiUFlI'@; put 'bmcyemtaMW5BK3M0MzFlTjAzSGVSVWY1MjV0LzN3NzJ6L2ZnZDZXUytyQUdha3ZLUmIwVWhIZGZZaDF1TUFLTGtrZUs5cmdlZWY0Nm5vTlNSSm53UFAxREtLVk5NYTZjbzNxTmVVYTc5aW9kRjJOaDNEcW5WcXhkY09OaWpYV3QrTzFHdVpRZFlTV2FkZ05VbkVzS0c2YXliNkNRd0pJNzZuck44'@; put 'aHBleDg0ZUpsekE2NWZGQ3ZXcExZdHM1YzdSa0N0ZjI5bjllOHlYU2VvdzZLK3ZwVG94SklpZ25UZ0xpR2dGeEh5VnE4VDZOZzZnYlpTcWRhdWJMSk9vS05uYU4xMmVXQzZUckFHVGwwbjBNQkZ2dWN2WGduNFphdWdsMEV2TGFoOXA0cDgvSU85b3h2aE4zbE4rSEpsK3RzbXBUV0xCMmt4VW5i'@; put 'WnV2MGNlVHFoeVJQSTR1UW04blJKa3lkc0tPZnlGQVI1b21jOGxLTVg1SHd2VU1SakFZcVk2WG1US2tWaUdrVW82c2dwbWdCVTY3T01Cc0w4czNXRWlXY1JmaVZ0NUtvMTRDcDUxclhTVVRMWllkamxxSndHODFRYVRDQU1mbWtUV3RFZ254NFhnR2VkNjZuaEs2WG5WYXlwSXV6TUhsL0I5a08w'@; put 'cy8wUUNmUnR1YUFLRzRTb214Z05Ma3lNMmFKSWZWYk42SFg2c3lZTUE4WEdvMkJzQU1OME42WWc2S1pGdmllVDF6NGlYM1pac25xbGpjRklibnVuUm5KMFkzaFdXb24yNXpRVEtKN29lUVlKVk0wMmFYZ0JVelRyb2R1RW85ZHYzUEJTQWNDcGRSeWNrbGYyY2dSOGNkdmFLc3kwYWF3NWQzdkhS'@; put 'SUVseFBpUG5TWENlRFN0OHVqNlhFZ0orQjBGelArYzVQNG51V2Fkajhwck9ETFpHbzZGRFd3SHo2V2Z5K2JTdFp3S2IvdHl0a1pFcTFITXJmOWdiVmx0QU12YkE4d2RHOVdnZ045MDM0WnRoMWZXQXJDMUQ2bm5vR3hqNTZBRTZOcU5DN1ErTFJyT28vc3FCdFJUcGJRengxbk9YUXQyMkphL1FM'@; put 'QWdFSFR4TTZab1VMb21jN0htMUJUeTZQRGRrN1pzdXNJeGYwbzlQWVZjWUdlbFdMMXFnc0pmNUgzNFdPNVJLbndmempZeUMzRk1DTjNHdzNrcm1GUUJZbTFkQ0FON0RmaFdYU0RaVlp3U3ZiYkRhK1AwcjUvZjV5bGZiVVZuVGNiWEhQUTdBNjZBeTArdDI3cFU3OHJXbmFROW14TW5zeXdpemMv'@; put 'ZHluTVM1MGFuYXpmMWFKRWQwSXFkOGNMNHNZWFhDK0d1ZFh6RTkrOVFuYm1MOFlLRXZwdFRJM1JDcXhHQzY3ZXRhOHZYS0M1cGF4Ullta0E1Ylk5bjY0dm0wQTNyK0lpZHdjSjRyWDNUZWthK2I0YnkyalQzajQ2Z25MYkh0YlliNWcxNTI0dHFXNW8zL0dCTzJ4UFp0aHZscG5qYlM5cHpzYUdC'@; put 'bjcxQzl5WFRHRGlmN3NpZ0ZmMTBueE1aUU9xbUliS1hldHcreHRUNXlMclJrV1ZpSUQ5bkcvSFRHK3dkcHJYM041TkxWM2llaXBlZXAzSis0ZURZOE5Bb3VYVC82T2pHZldUM2RSRjBGdGp5Qm5WWGw5cEhPaWtGTXFORHcyTUhGOGlsa1pINzFUNTZvWTl2UUhTcjdtZ3dFYnFuWVlDR0duMGIx'@; put 'ZURuSVV0SXlPNW9VQ2ZOZ29rbngvd3Ryb2Fpb2daWFMvbDRqUFQ2eTF0Y1hpOTg4TFBuREtFWFdUNGx6SjV6MmZyK3Ric2x0QjBTS3lrT2RUOUdMd2I5eHZaak5MRmU2U1pXdWlOaEhxUVVZMkV5dTRsV3VLSmRHYm5mVzNCN1oyZDFRcFlUM3ZKeXI4ZnY5NURlemdUOW5PaHM4bnY0UmI3UFlC'@; put 'dldnMDJ6b3hZMmdob3JUQ2FmY2d6OW1vbys5ZVFld09razA0WUN2VU9uYWtlMm9FZW43c3hRejkrdldGR0lwOXBMdk1OYy9FSDdQYzdTT1Q0bThKa3lScmNrYWNQdkp5K0JYSGV4NTZicGZrd2oyOTNteHJqUGdJVmVkaWpSSkRXcHdNUHoydEVsUkJqbHV4V0NJYmJaalQ0ZjBjUHYyVkhhM0FO'@; put 'VWFTb0dzQ1ZRNkhDYkhCNTl4cENzY1dzZjVQemRwTjF1czVoOXBVYTZROGhpTGk0MTNhN1NKRVBYaWRpNXRVVjg1NFVldUxLUGhxVTNPQjNadlNoZUtSQlNONWZnSGNmNERwTy84ZHpCNUs5UmVYMzV1ZVZ2SXlzS3NoNEsrYm56cS9lNUJiTjlDYXNQb1A4S3oxK1doSUpWeWpMUFRiSThKZGNw'@; put 'WEZmZW9lbEsxSTByTnRHVnIyaTZFblVEeEVadEQrSW4zN0h0UWR5UzAvWjR0dTBjYmxxbkszbmJpOW0yYytoclBENWRicUZuVithdW43ejllKzVMdlAxNzFaZUlMRGZUTlFtZVoyY3dGOTcrSFY4bmUvdDNLZ3pQMXgvTDlwT0hydDBrWC85U05sK2ZONEkyckNYdFJ1L1p4RTY4a2wzTDdsYmoz'@; put 'RHIwTTJMQnZlOTg3ajg5bTdqM29OWkdhTCtDTm9MbDdUZTFOaTM0QStoVjhnVHdUVEhqbWI2MW13bzV6emkxMURoUHJuNTM1UXNMeU4ycnZyR0F6aW1ENzBlL0lCZGd4dmswNjhqM0NKTFM3QjVCZUNiK1BudG1DYXFReTBxc3dPdXJOb1VKVExrRkM0SU9kdUxYNm1mck54MEtMdDlrV01HYzkz'@; put 'eDgrSWZBR3hFK1BqYk9QOEE0SGRseE1wZXpWTXZ2anFIemVCSS9EbENiN0xHaTV3dXdQVlpyemhkNHFqMFliQThFMk0vNVlGdVF2NE5MSEUvdHdEZGZSaDhFMmtOUVl3dkE2eDhZRDl2eHp3RkFvdCtQbzdzNzUvdHhNbWdRbnZ4YlhsUlZsNC8xVnY3MU5RWXNXckRKTEpweXYvTEdtZWNRekda'@; put 'aHhtNjBTYnJjYjhwSnZVTkQ5cTAzdkxWRVd3dnE5K1UwYjlodWcyL01XZGNXb3BIR29TRloxcjQ1WjJoeTZLcUpNWGxRSHRqYVU1dXA3V2hxM1BCYmRGei9oVy9SS1Yvek9aZ0RXOTc0VjMvRERoNWtmK2lINFZybGM5cjM3WHdLM2dCczhNcS9lRWQ5UDFhVCt5VThLMS9HZzhIVHI4Y1IvRzE2'@; put 'S3RFemVveHJZeG5zQmR3RkhwbTkvLzdacFl1ZXA1LzE4djNBQUJmVDRBUUdGMGw3cFFoQVBmSkkvN05QZXk1K2o5bUQzNm5uSTllZ0hmS0VENmhXakhVaW9XVWtHSm5wcWZRNk1IY1FiUjh3WW1MQzJFeDNqR1MzQ1ZsWURTdFBQY0ZyRFVyRVk5RXF1eU1FNGFIZEdjcURVSExsMktjSXhJN2NX'@; put 'VTkya0pWY0NDMHZBMVI3L1N3eHluWUkxYjluWU9UZWVlOVlGeEc2ZHhUT3YzZEkzUldVdWE0TWk4clA5UVFIbERkS0Y3dm4ySkhLbmNmN2VqM21Razl2eitGMnRpZW91Nm0zMEdQMjlIWU0wZTlzd1VXa0VOOEp1azU4aHRCOUdNN3NhZTEzMG5QYW1WTURibzBBbXRkdjl4TmhhWW4rNXB3Unhz'@; put 'KzRNRHpyZGVicFNlMS8vYkNKdDhZMlBHeUMxMkhBYzBDMzQxcDFyZUFKclQ0RHJuOUR2YjZ5UnN1dlg4cGVsNDduWHIrb1hVZHpCM092djVLOTNuMHE5L3E1N1BXRmVlMXN0RzNrSHBZalQ4QzhJd0VuaG5sdlhGWURzMC9tVk5QazRPRWVGblJaYzVGeGtqdGRmMUp4d21PdlhLeW9jZGRqYTNG'@; put 'RDQyeU9HNGl6UDUwejlwZXlPTWk3anR0RFdyci9OWFpPajBidnBEMndWVHR4QjlONk9MaXZYMzlmdnpTSy9oL2lFeno2QUFFQUFBQUJBQUJWRXJUK1h3ODg5UUFmQStnQUFBQUEwOEdkaGdBQUFBRFV2cWIxL3piKzR3U0tBODRBQUFBSUFBSUFBQUFBQUFCNDJtTmdaR0JnUHZmdlBBTUR5K2Iv'@; put 'WnY5eldMb1lnQ0xJZ05FUUFLY05CcmdBQUFCNDJuV1V6V3NUVVJURno3MHpGRUVJMkVSUVFvekdZRXhNcWttMTBXb3RhV3BpQld2c1JxeFlGMUlYTGxTNlVFUUZrYTVFUlYyNGMxWHAwb1ZLZDNhaENBWDlDMFJRdXRDQ0NoVktvUzZNNXo0ekVwT2FjRGp6OGQ2OGUzL3Z6TWdTVG9NL09VcEZx'@; put 'UlFxTW8rU1RpR2hFNGg3UmFUMUNiWklCMHB5QlQzVU5ubUFMajJCZ3h6Zkx4ZVJsL1hvazluNlYzM0o0OXZvMUZQSTh2NG12VW1keFE2OWpsMDZpbTQ5and5UEMyNDg1K293aXZZYyttRlpRZGk3eEhtTENPc01hdm9NT1YyaDMwQ1ZkVlQxQzg4L29pb2hER2tjNi9RcGp1a0JsTHd6cUhrK2xl'@; put 'SDllNmc2Zit6bXhMbFdrczhiMGgrSStFVnMxTmZZd0hscjlDNjY1UnFPc09abGVrNFdzRk5yOVY4eXpwcktTT2tkVkRTQjdmU3NqaUFsRTRqcEpHc2Z3NEFJOW92VTU3UkFIb0t5OXdnRHZGN1dxMjU4eGViSWZUSmN3bWFaNUx3eHNxeWgwNnR5N1R3aTdEZWlJWFRKUXlRbGlYUDBsTHpDSG5J'@; put 'ZmRHdmVRdDVxbERuV3NwdjMzcEd4MVRYRlBRRDJTZGxkejVKWGduMkZuUmIvbFova0dzYlAyRFZKUXZXM3hvLytqWnIzb2tnSDdGcWxtUVpMNDljczQwZk9lcEl5VnF2SWUwRzNYc2l1V2VUMnhwalJQMU1mOURJS2Y5bTF5bkpoYnZ5YVpmeU1zN24xYTJ1MnV2VnU2d2R1T2VLK1dML01jdGJ4'@; put 'c0pxYS9YalR1V1hOOXJ2aFpQV0o5YjRudTcyc0g0NGgrM0FaWkE0c2grNDg4SEhFWkFReFkydjl0Ymx4WlcrQit5SGsvQTdXeWR4YWR0cWNXYlk4dFRuejdUSVd1TzJQTWZxUDJ6dmdjbWg3YVB3YTc0TGxzZFV0NHpMRDdEV0VuL1JSYXBDYTVaaER2SVo2VC9ETVZtOWoybGlUZGNOYitQTzk0'@; put 'VE9CYVVEN2tQY3U4TnNSUmEvN0xxeEZMOVV2MCtTMTdMNFY4SjhqTGNQWVNuRi82OTlkUGp6TzViNnU4cStnOGhzcFk5Zk9lTnBGd2wxSTRuQUFBUEMxbHQrdU1wdE85M0grTjZlYk83ZTVOVUY2a2lQaUNCL2lpQWlKSG82SU9PUTRJcUtISXlUaWtCNE9rWkNJT0VJaUl1S0lFTG1Ia09naFlr'@; put 'UVBJUkVSUi9RZ0l0SkR5Q0VSOTNKdy9INFFCR1grMlliMnU2Q3VORXpBMytFaitBcHVkZi9vUHU5dUlSWkVRSkpJRHRsSDZqMGpQY3M5NXliQk5HWTZNYjh4cDgwWjg2cTViRFlzbEtWdDVhekwxalByaTAyMFRkajJiTmUyaHAyd2o5cm43SGw3eFFFNUVvNkNvK1lVbldQT3JIUFBXVU1obEVQ'@; put 'SDBWVjBFelhRVnEramwrdmQ2UnZ1Vyt2MzlzLzNYN3FtWEdWWGUyQmlZSHZnd2kyNmw5elZRVzV3WS9BU1k3RVo3QUF6c0k2SDgweDdjcDVyVDh1cmUwZThTOTVUSE1WVCtEcGV4TXY0RmY3cVkzMXJ2cnl2N3V2NEhYN0tML3VUL2cvK0xTSkRyQkI1b2tTVWlYUGlsbWdTcitSN01rMW15QlV5'@; put 'VDViSU1ubE5UVk9mcVN4Vm9IYXBDdlZNcCtrNWVvRmVvZGZwSWwwS0pBSjNnWHJnR1VEQUFieUFCVElZQm52Z0dGU0JBVzdBSTNoaUVzd0pjOEhVbUFlbXhYVFlKWGFWM1dCMzJHTzJHdXdML2dvYXdadGdJOWptTEp5UEE1ekIzWE1ON2lWa0NZMkhhcUY2NkRsc0NydkNWUGlKaDNtVWY4Y2Y4'@; put 'bFcreGovd0xRRVNYQUlyNk1Lc1VCTEt3cWx3S2R3S1RlRlB4QmJCSXVHSUZzbUtpSWlKUUl5S0NYRk1uQlRueGNXM3FTZ1VkVVdwNklFMExuMlVGcVZ2VWtIYWxZNmtNK2xLWnVWTitVQ3V5QmR5VGE3TEhjV2tlQlZXMFpXa3NxQnNLQldsR2NOaWs3RkM3TGNLcTdLYVZGUHFqUHBKL2FybTFD'@; put 'MzFVSzJxaG5xdk52N1RFSTNTUnJWSnJhajkxTzYwcHRZY2VoaHE2elo5V2MvcFJkM1FiL1JIL1VsL2lWdmk3dmhVZkRiK0paNk41LzhDREJETXlBQUJBQUFCUEFCb0FBb0FRUUFFQUFJQUtBQTVBSXNBQUFDVEFtc0FBd0FCZU5xTmtzdE93a0FVaHY4V05LREdLREhHc09yS0dCTzVxZUJ0WWRT'@; put 'd1VkUkloSzBnRlJyQllpbEdYZm8yYmx6NkRGNmV3STJQNERQNGR6aXROMkxJcEoxdjV2em5Qek9uQlJERE8wTFF3bEVBTzN4NnJHR09xeDdyR0VkVE9JUU4zQXFIc1lKSDRTSEU4U0U4akZrdEloeEJSa3NJUnhIWFRvUkhzYVQ1UG1Nb2FRL0NFNWpTdzhLVGlPa3p3aytZMXVlRm41SFNONFZm'@; put 'RU5IYndxOFkwYTk3L0JaQ1hML0RObXkwY1FNSEZ1cG93SVdCZXo0WnBKQkdsbFJsMUtDdW9UUWRjcEZ6aTFrZDVsNGdnUUpNNWpuS3lXWWZmSlZKbFVYYVVyczFISEduamk2NVFuV2FtU2sxMW5HTVhaU3hUK3JudFJCNCtVNkRWalIrMVN4eDVWQnJxWk1iMzg0d1dOMFMrWlE2bTBxdkt3ZDBN'@; put 'VGw3MlRYR0t1UkR4cjNZSHVmYVAzM3pldTF5dFlZa3g5VVBaMXY1dGdMWEJHTTIxMzVPUjdMcWpMcmM3ZklyK1pva1o3OW1TOTMxcTJheTd6Mzc3ZjN0WlprN1Zad3BIemZvWFVFNm1WZFJneU9yWWptZU1JMVZ2aGV4SFB4UE9aeFRaNm82am55RmZPQll4Q1Z2WWpIaVVOUDhCTGhaaDVjQUFI'@; put 'amFiWk5YYkJ4VkZJYS8zN0YzM1RaTzc3MVh4MTczeENrdWE4ZXhZeWN1Y2V6RVNjYTdZMmZ4ZWhmR3UzRnN1Z1FDSGtEd3dqUGxDUkM5Q2lSNFFLSlgwWHNIMFhta0IrL2NDVjRrN3NOOC94bWQ4NTh6OTk0aEMzZWRHMkFlLzdOVW0zNlF4UXl5eWNHSG4xenl5S2VBUWdMTXBJaFp6R1lPYzZm'@; put 'cTU3T0FoU3hpTVV0WXlqS1dzNEtWckdJMWExakxPdGF6Z1kxc1lqTmIyTW8ydGxQTURrb29KVWdaNVZSUVNSWFYxTENUWGRTeW16M3NaUjkxMU5OQUl5R2FhR1kvTFJ5Z2xUWU8wazRIaHpoTUoxMTAwOE1SZWpsS0gvMGM0emdEbk9Ba3A3QzRuYXU0bXB1NWdUdDRuK3U1bHFmNW1EdTVqYnQ1'@; put 'bm1lNWgwSEMzRWlFRjdGNWpoZDRsWmQ0bVZmNGxpSGU0RFZlNTE2RytZV2JlSnMzZVl2VGZNK1BYTWNGUkJsaGxCaHhiaUhCUlZ5SXd4Z3BrcHhobk84NHl5UVRYTXlsWE1KajNNcmxYTVlWWE1rUC9NVGp5dElNWlN0SFB2bjVpNzg1SjVTclBPVkxLbENoQXBxcElzM1NiTTNoVjM3VFhNM1Rm'@; put 'QzNRUWkzaWQ5N1JZaTNSVWkzVGNxM2djNzdRU3EzU2FxM1JXcTNUZW0zUVJtM2lQdTdYWm0zUlZtM1RkaFZyaDByNGd6LzVrcTlVcXFES1ZLNEtWYXBLMWFyUlR1MVNyWFpyai9acUgwK29UdlZxVUNOZjg0MUN2TXRuZk1DSGZNU252TWNuYWxLejlxdEZCOVNxTmgxVXV6cDBTSWZWcVM1MXEw'@; put 'ZEgxTXNEUE1nalBNcERQTXcxM0tXalBNT1RQS1UrZmxhL2p1bTRCblJDSjNWS2xnWVZWa1MyaHZ4MW8xYllTY1Q5bHFHdmJ0Q3h6OWcreTRXL0xqR2NpTnNqZnN2UTF4aTIwa2tSZzhhcENpdnBEM2tXdG1GK0tKSklXdUd3SFUvbTIvOUtmOGl6c2oycmtQR3dYUlEyaHhPam81WkpMUnpPQ1B3'@; put 'dG5udlVZNHZuRXpVc2JNMnNITWtJZkcxV09KVzBmVEdETnRNdlp0QnVYc1pkRkxabmVzUXpQZHBOZXR5RnY4T2JJV0VZNkRpZGlnOWJUbW8wWnFXU2dVUm01T3MwSFJ6VG9UT3pnNVBab2ROMGNBeTZUTldZQzM4cUhpMHByUXg2TFBOMW02U2ttYWJIbXlabG1OUGpST1BET2FuME05RHpuOGxT'@; put 'bVpHL3g5dkJsR0ZCYnpqcWhGT2pRekg3Yk1GNGh1N0wwQlBUMnRkdlpweDBrZDgvZmRxVDA2ZWRuamhZVnVXeUxGanA2eDEycktsck5XN1FheHpHWGVUMVJxSzJZNDlGeC9MR3o2dDBYV21vdnRwampjY0dqNDIrUG1NMDRTTDlObGhTRXZSWTVySGNZNFhIU3NOZ1UzWW81U1Rjb0tLcEljY3F0'@; put 'bUxKZk11ZHhVajM3cWRsa1RYOTJlazRZSjBmMENTNjNkT3l3UHQ5akRiN210WjVWdm8wVEhJeUdvdTR5Ym5XMk5RZVJXd25MMko3NmgrM1piY2hBQUFBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZblRaSk1qSm9nUmliZVRnWU9TQXNNVFl3aThOcEY3TURBeU1ESjVETjZi'@; put 'U0xBY3BtWm5EWnFNTFlFUml4d2FFallpTnppc3RHTlJCdkYwY0RBeU9MUTBkeVNBUklTU1FRYk9iallPVFIyc0g0djNVRFMrOUdKZ2FYemF3cGJBd3VMZ0QrSENWZ0FBQUFBQUZZbVBaM0FBQT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXN0eWxlOm5vcm1hbH1jbHIt'@; put 'aWNvbntkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MDtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmaWxsOmN1cnJlbnRDb2xvcn1jbHItaWNvbiAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOmN1cnJlbnRDb2xvcn1jbHItaWNvbi5pcy1n'@; put 'cmVlbixjbHItaWNvbi5pcy1zdWNjZXNze2ZpbGw6IzJlODUwMH1jbHItaWNvbi5pcy1ncmVlbiAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtc3VjY2VzcyAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiMyZTg1MDB9Y2xyLWljb24uaXMtcmVkLGNsci1pY29u'@; put 'LmlzLWRhbmdlcixjbHItaWNvbi5pcy1lcnJvcntmaWxsOiNlMDIyMDB9Y2xyLWljb24uaXMtcmVkIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZSxjbHItaWNvbi5pcy1kYW5nZXIgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLWVycm9yIC50cmFuc3BhcmVudC1maWxsLXN0'@; put 'cm9rZXtzdHJva2U6I2UwMjIwMH1jbHItaWNvbi5pcy13YXJuaW5ne2ZpbGw6I2MyN2IwMH1jbHItaWNvbi5pcy13YXJuaW5nIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6I2MyN2IwMH1jbHItaWNvbi5pcy1ibHVlLGNsci1pY29uLmlzLWluZm97ZmlsbDojMDA3N2I4fWNsci1p'@; put 'Y29uLmlzLWJsdWUgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLWluZm8gLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojMDA3N2I4fWNsci1pY29uLmlzLXdoaXRlLGNsci1pY29uLmlzLWludmVyc2V7ZmlsbDojZmZmfWNsci1pY29uLmlzLXdoaXRlIC50cmFu'@; put 'c3BhcmVudC1maWxsLXN0cm9rZSxjbHItaWNvbi5pcy1pbnZlcnNlIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6I2ZmZn1jbHItaWNvbi5pcy1oaWdobGlnaHR7ZmlsbDojMDA3N2I4fWNsci1pY29uLmlzLWhpZ2hsaWdodCAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tl'@; put 'OiMwMDc3Yjh9Y2xyLWljb25bc2hhcGUkPSIgdXAiXSBzdmcsY2xyLWljb25bZGlyPXVwXSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgwKX1jbHItaWNvbltzaGFwZSQ9IiBkb3duIl0gc3ZnLGNsci1pY29uW2Rpcj1kb3duXSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfWNsci1pY29uW3No'@; put 'YXBlJD0iIHJpZ2h0Il0gc3ZnLGNsci1pY29uW2Rpcj1yaWdodF0gc3Zne3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfWNsci1pY29uW3NoYXBlJD0iIGxlZnQiXSBzdmcsY2xyLWljb25bZGlyPWxlZnRdIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9Y2xyLWljb25bZmxpcD1ob3Jpem9u'@; put 'dGFsXSBzdmd7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3RhdGVYKDE4MGRlZyl9Y2xyLWljb25bZmxpcD12ZXJ0aWNhbF0gc3Zne3RyYW5zZm9ybTpzY2FsZSgtMSkgcm90YXRlWSgxODBkZWcpfWNsci1pY29uIC5jbHItaS1iYWRnZXtmaWxsOiNlMDIyMDB9Y2xyLWljb24gLmNsci1pLWJhZGdl'@; put 'IC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6I2UwMjIwMH1jbHItaWNvbj4qe2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lfWNsci1pY29uPnN2Z3t0cmFuc2l0aW9uOmluaGVyaXR9Y2xyLWljb24+c3ZnIHRpdGxle2Rpc3Bs'@; put 'YXk6bm9uZX1jbHItaWNvbiAuY2xyLWktc29saWQsY2xyLWljb24gLmNsci1pLXNvbGlkLS1iYWRnZWQsY2xyLWljb24gLmNsci1pLXNvbGlkLS1hbGVydGVke2Rpc3BsYXk6bm9uZX1jbHItaWNvbiAuY2xyLWktb3V0bGluZS0tYWxlcnRlZDpub3QoLmNsci1pLW91dGxpbmUpLGNsci1pY29u'@; put 'IC5jbHItaS1vdXRsaW5lLS1iYWRnZWQ6bm90KC5jbHItaS1vdXRsaW5lKXtkaXNwbGF5Om5vbmV9Y2xyLWljb25bY2xhc3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydCAuY2xyLWktb3V0bGluZS0tYWxlcnRlZHtkaXNwbGF5OmJsb2NrfWNsci1pY29uW2NsYXNzKj1oYXMtYWxlcnRdIC5jYW4t'@; put 'YWxlcnQgLmNsci1pLW91dGxpbmU6bm90KC5jbHItaS1vdXRsaW5lLS1hbGVydGVkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb25bY2xhc3MqPWhhcy1iYWRnZV0gLmNhbi1iYWRnZSAuY2xyLWktb3V0bGluZS0tYmFkZ2Vke2Rpc3BsYXk6YmxvY2t9Y2xyLWljb25bY2xhc3MqPWhhcy1iYWRnZV0g'@; put 'LmNhbi1iYWRnZSAuY2xyLWktb3V0bGluZTpub3QoLmNsci1pLW91dGxpbmUtLWJhZGdlZCl7ZGlzcGxheTpub25lfWNsci1pY29uLmlzLXNvbGlkIC5oYXMtc29saWQgLmNsci1pLXNvbGlke2Rpc3BsYXk6YmxvY2t9Y2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktb3V0bGlu'@; put 'ZSxjbHItaWNvbi5pcy1zb2xpZCAuaGFzLXNvbGlkIC5jbHItaS1vdXRsaW5lLS1iYWRnZWR7ZGlzcGxheTpub25lfWNsci1pY29uLmlzLXNvbGlkIC5oYXMtc29saWQgLmNsci1pLXNvbGlkLS1hbGVydGVkOm5vdCguY2xyLWktc29saWQpLGNsci1pY29uLmlzLXNvbGlkIC5oYXMtc29saWQg'@; put 'LmNsci1pLXNvbGlkLS1iYWRnZWQ6bm90KC5jbHItaS1zb2xpZCl7ZGlzcGxheTpub25lfWNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UuaGFzLXNvbGlkIC5jbHItaS1zb2xpZC0tYmFkZ2Vke2Rpc3BsYXk6YmxvY2t9Y2xyLWljb24uaXMtc29saWRbY2xh'@; put 'c3MqPWhhcy1iYWRnZV0gLmNhbi1iYWRnZS5oYXMtc29saWQgLmNsci1pLW91dGxpbmUsY2xyLWljb24uaXMtc29saWRbY2xhc3MqPWhhcy1iYWRnZV0gLmNhbi1iYWRnZS5oYXMtc29saWQgLmNsci1pLW91dGxpbmUtLWJhZGdlZCxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdl'@; put 'XSAuY2FuLWJhZGdlLmhhcy1zb2xpZCAuY2xyLWktc29saWQ6bm90KC5jbHItaS1zb2xpZC0tYmFkZ2VkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWRbY2xhc3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydC5oYXMtc29saWQgLmNsci1pLXNvbGlkLS1hbGVydGVke2Rpc3BsYXk6Ymxv'@; put 'Y2t9Y2xyLWljb24uaXMtc29saWRbY2xhc3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydC5oYXMtc29saWQgLmNsci1pLW91dGxpbmUsY2xyLWljb24uaXMtc29saWRbY2xhc3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydC5oYXMtc29saWQgLmNsci1pLW91dGxpbmUtLWFsZXJ0ZWQsY2xyLWljb24u'@; put 'aXMtc29saWRbY2xhc3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydC5oYXMtc29saWQgLmNsci1pLXNvbGlkOm5vdCguY2xyLWktc29saWQtLWFsZXJ0ZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbi5oYXMtYmFkZ2UtLXN1Y2Nlc3MgLmNsci1pLWJhZGdle2ZpbGw6IzJlODUwMH1jbHItaWNvbi5o'@; put 'YXMtYmFkZ2UtLXN1Y2Nlc3MgLmNsci1pLWJhZGdlIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6IzJlODUwMH1jbHItaWNvbi5oYXMtYmFkZ2UtLWVycm9yIC5jbHItaS1iYWRnZXtmaWxsOiNlMDIyMDB9Y2xyLWljb24uaGFzLWJhZGdlLS1lcnJvciAuY2xyLWktYmFkZ2UgLnRy'@; put 'YW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZTAyMjAwfWNsci1pY29uLmhhcy1iYWRnZS0taW5mbyAuY2xyLWktYmFkZ2V7ZmlsbDojMDA3N2I4fWNsci1pY29uLmhhcy1iYWRnZS0taW5mbyAuY2xyLWktYmFkZ2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojMDA3N2I4'@; put 'fWNsci1pY29uLmhhcy1hbGVydCAuY2xyLWktYWxlcnR7ZmlsbDojYzI3YjAwfWNsci1pY29uLmhhcy1hbGVydCAuY2xyLWktYWxlcnQgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojYzI3YjAwfWNsci1pY29uIC5pcy1vZmYtc2NyZWVue3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFu'@; put 'dDtib3JkZXI6MCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MXB4IWltcG9ydGFudDtsZWZ0OjAhaW1wb3J0YW50O3RvcDotMXB4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7bWFyZ2luOjAgMCAtMXB4IWltcG9y'@; put 'dGFudH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnRleHQtc2VjdXJpdHktZGlzYztzcmM6dXJsKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ub3BwYS90ZXh0LXNlY3VyaXR5L21hc3Rlci9kaXN0L3RleHQtc2VjdXJpdHktZGlzYy53b2ZmKX1ib2R5LGh0bWx7Zm9udC13ZWln'@; put 'aHQ6NDAwIWltcG9ydGFudDtwYWRkaW5nOjA7bWFyZ2luOjB9Ym9keS5zaG91bGQtbG9naW4gY2xyLW1vZGFsLGh0bWwuc2hvdWxkLWxvZ2luIGNsci1tb2RhbHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fWJ1dHRvbjpmb2N1c3tvdXRsaW5lOm5vbmV9LnNsaWRlcntwb3NpdGlvbjphYnNvbHV0'@; put 'ZTt3aWR0aDozMjBweDttYXJnaW4tbGVmdDo3NXB4O21hcmdpbi10b3A6NzBweDtoZWlnaHQ6NXB4O292ZXJmbG93LXg6aGlkZGVufS5saW5le3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6LjQ7YmFja2dyb3VuZDojNzNkNTQ0O3dpZHRoOjE1MCU7aGVpZ2h0OjVweH0uc3VibGluZXtwb3Np'@; put 'dGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiM3M2Q1NDQ7aGVpZ2h0OjVweH0uaW5je2FuaW1hdGlvbjppbmNyZWFzZSAycyBpbmZpbml0ZX0uZGVje2FuaW1hdGlvbjpkZWNyZWFzZSAycyAuNXMgaW5maW5pdGV9QGtleWZyYW1lcyBpbmNyZWFzZXswJXtsZWZ0Oi01JTt3aWR0aDo1JX10b3ts'@; put 'ZWZ0OjEzMCU7d2lkdGg6MTAwJX19QGtleWZyYW1lcyBkZWNyZWFzZXswJXtsZWZ0Oi04MCU7d2lkdGg6ODAlfXRve2xlZnQ6MTEwJTt3aWR0aDoxMCV9fS5hcHAtbG9hZGluZ3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEw'@; put 'MHZoO2JhY2tncm91bmQ6IzMxNDM1MTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ei1pbmRleDoyMDAwO3Bvc2l0aW9uOmZpeGVkO2luc2V0OjB9LnNlbGVjdC1ub25ley13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5oLWF1dG97aGVpZ2h0OmF1dG99LmgtdW5zZXQt'@; put 'aXtoZWlnaHQ6dW5zZXQhaW1wb3J0YW50fS5taW4taC01MHZoe21pbi1oZWlnaHQ6NTB2aH0uaC0yNHZoLC5oLTI1dmh7aGVpZ2h0OjI1dmh9LmgtNzB2aHtoZWlnaHQ6NzB2aH0uaC04MHZoe2hlaWdodDo4MHZofS5oLTEwMHtoZWlnaHQ6MTAwJX0udy01MHZ3e3dpZHRoOjUwdnd9LnctMTAw'@; put 'e3dpZHRoOjEwMCV9LnctNDB7d2lkdGg6NDAlfS5taW4tdy0we21pbi13aWR0aDowcHh9Lm14LTV7bWFyZ2luOjAgNXB4fS5teS01e21hcmdpbjo1cHggMH0ubXktMTV7bWFyZ2luOjE1cHggMH0ubXktMTAtbXgtYXV0b3ttYXJnaW46MTBweCBhdXRvfS5tLTB7bWFyZ2luOjAhaW1wb3J0YW50'@; put 'fS5tLTEwe21hcmdpbjoxMHB4fS5tdC0we21hcmdpbi10b3A6MH0ubXQtMC1pe21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm10LTMtbmVnYXRpdmV7bWFyZ2luLXRvcDotM3B4fS5tdC01e21hcmdpbi10b3A6NXB4fS5tdC01LWl7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50fS5tdC0ye21hcmdp'@; put 'bi10b3A6MnB4fS5tdC0yLWl7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50fS5tdC0xMHttYXJnaW4tdG9wOjEwcHh9Lm10LTE1e21hcmdpbi10b3A6MTVweH0ubXQtMTd7bWFyZ2luLXRvcDoxN3B4fS5tdC0yMHttYXJnaW4tdG9wOjIwcHh9Lm1sLTB7bWFyZ2luLWxlZnQ6MH0ubWwtM3ttYXJn'@; put 'aW4tbGVmdDozcHh9Lm1sLTV7bWFyZ2luLWxlZnQ6NXB4fS5tbC0xMHttYXJnaW4tbGVmdDoxMHB4fS5tbC0xNXttYXJnaW4tbGVmdDoxNXB4fS5tbC0yMHttYXJnaW4tbGVmdDoyMHB4fS5tbC0yMC1pe21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50fS5tci0we21hcmdpbi1yaWdodDowfS5t'@; put 'ci01e21hcmdpbi1yaWdodDo1cHh9Lm1yLTEwe21hcmdpbi1yaWdodDoxMHB4fS5tci0xMnttYXJnaW4tcmlnaHQ6MTJweH0ubXItMjB7bWFyZ2luLXJpZ2h0OjIwcHh9Lm1iLTB7bWFyZ2luLWJvdHRvbTowfS5tYi0waXttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5tYi01e21hcmdpbi1i'@; put 'b3R0b206NXB4fS5tYi0xMHttYXJnaW4tYm90dG9tOjEwcHh9Lm1iLTEwLWl7bWFyZ2luLWJvdHRvbToxMHB4IWltcG9ydGFudH0ubWItMjB7bWFyZ2luLWJvdHRvbToyMHB4fS5tYi0zMHttYXJnaW4tYm90dG9tOjMwcHh9LnAtMHtwYWRkaW5nOjB9LnAtMTB7cGFkZGluZzoxMHB4fS5wYi0w'@; put 'e3BhZGRpbmctYm90dG9tOjB9LnBiLTEwe3BhZGRpbmctYm90dG9tOjEwcHh9LnB5LTV7cGFkZGluZzo1cHggMH0ucHktMTB7cGFkZGluZzoxMHB4IDB9LmJhY2tncm91bmQtdHJhbnNwYXJlbnR7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uYmFja2dyb3VuZC10cmFuc3BhcmVudC1pe2JhY2tn'@; put 'cm91bmQ6dHJhbnNwYXJlbnQhaW1wb3J0YW50fS5jb2xvci1ncmF5e2NvbG9yOiM1YTVhNWF9LmNvbG9yLWRhcmstZ3JheXtjb2xvcjojNDk1OTY3fS5jb2xvci1kYXJrZXItZ3JheXtjb2xvcjojMzE0MzUxfS5jb2xvci13aGl0ZXtjb2xvcjojZmZmfS5jb2xvci13aGl0ZS1pe2NvbG9yOiNm'@; put 'ZmYhaW1wb3J0YW50fS5jb2xvci1ncmVlbntjb2xvcjojNGI5ZTRifS5jb2xvci1kYy1ncmVlbntjb2xvcjojODFiNDQwfS5jb2xvci1yZWR7Y29sb3I6I2U0NTQ1NH0uY29sb3Itb3Jhbmdle2NvbG9yOiNlNjdlMjJ9LmNvbG9yLWJsdWV7Y29sb3I6IzNmOGNjM30uY29sb3IteWVsbG93e2Nv'@; put 'bG9yOiNmMWM0MGZ9LmN1cnNvci1wb2ludGVye2N1cnNvcjpwb2ludGVyfS5jdXJzb3ItZGVmdWFsdHtjdXJzb3I6ZGVmYXVsdH0uY3Vyc29yLWRlZmF1bHQtaXtjdXJzb3I6ZGVmYXVsdCFpbXBvcnRhbnR9LmJhY2tncm91bmQtdHJhbnNwYXJlbnR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3Bh'@; put 'cmVudH0ucG9pbnRlci1ldmVudHMtbm9uZXtwb2ludGVyLWV2ZW50czpub25lfS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0uZm9udC1zaXplLTE1e2ZvbnQtc2l6ZToxNXB4fS5mb250LXNpemUtMTh7Zm9udC1zaXplOjE4cHh9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZv'@; put 'bnQtYm9sZC1pe2ZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnR9LmZvbnQtd2VpZ2h0LTMwMHtmb250LXdlaWdodDozMDB9LmZvbnQtd2VpZ2h0LTcwMHtmb250LXdlaWdodDo3MDB9LndvcmQtYnJlYWt7d29yZC1icmVhazpicmVhay13b3JkfS53b3JkLWJyZWFrLWFsbHt3b3JkLWJyZWFrOmJy'@; put 'ZWFrLWFsbH0ucG9zaXRpb24tcmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmV9LnBvc2l0aW9uLWFic29sdXRle3Bvc2l0aW9uOmFic29sdXRlfS5kLW5vbmV7ZGlzcGxheTpub25lfS5kLWJsb2Nre2Rpc3BsYXk6YmxvY2t9LmQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5k'@; put 'LWZsZXh7ZGlzcGxheTpmbGV4fS5kLWNvbnRlbnRze2Rpc3BsYXk6Y29udGVudHN9LmZsZXgtdW5zZXR7ZmxleDp1bnNldH0uYWxpZ24tc2VsZi1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZH0uYWxpZ24tc2VsZi1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmFsaWduLWl0ZW1zLWNlbnRl'@; put 'cnthbGlnbi1pdGVtczpjZW50ZXJ9Lmp1c3RpZnktY29udGVudC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uanVzdGlmeS1jb250ZW50LWNlbnRlci1pe2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7anVzdGlmeS1jb250ZW50'@; put 'OmZsZXgtc3RhcnR9Lmp1c3RpZnktY29udGVudC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uanVzdGlmeS1jb250ZW50LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5k'@; put 'fS5mbGV4LWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci1nYXAtNXtnYXA6NXB4fS5jbHItZ2FwLTB7Z2FwOjB9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30uei1pbmRleC1oaWdoZXN0e3otaW5kZXg6MTAwMDAwMDB9LnZlcnRpY2FsLWFsaWduLW1pZGRsZXt2ZXJ0aWNh'@; put 'bC1hbGlnbjptaWRkbGV9Lmljb24tZGMtZmlsbHtmaWxsOiM4MWI0NDB9LmRhdGFncmlkLWN1c3RvbS1mb290ZXIgLmRhdGFncmlkLW91dGVyLXdyYXBwZXJ7d2lkdGg6MTAwJX0ucHJvZ3Jlc1N0YXRpY3ttYXJnaW4tdG9wOi02cHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9y'@; put 'dGFudDt6LWluZGV4OjEwMDAwIWltcG9ydGFudH0ucHJvZ3Jlc3MsLnByb2dyZXNzLXN0YXRpY3tiYWNrZ3JvdW5kLWNvbG9yOiNmNWY2ZmU7Ym9yZGVyLXJhZGl1czowO2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDo2cHg7bWFyZ2luOjA7bWF4LWhlaWdodDouNTgzMzMzcmVtO21pbi1oZWln'@; put 'aHQ6LjE2NjY2N3JlbTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazt3aWR0aDpjYWxjKDEwMCUgLSA2M3B4KX0ucHJvZ3Jlc3MubG9vcDphZnRlcnthbmltYXRpb246Y2xyLXByb2dyZXNzLWxvb3BlciAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO2NvbnRlbnQ6IiAiO3RvcDouMTY2'@; put 'NjY3cmVtO2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6IzYwYjUxNTt3aWR0aDo3NSV9LmJhZGdlLXdhcm5pbmd7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9LmNvbnRlbnQtY29udGFpbmVyIC5jb250ZW50LWFyZWEgLmNhcmQt'@; put 'aGVhZGVyIGgze21hcmdpbi10b3A6MTBweH0ubW9kYWwtaGVhZGVyIC5jbG9zZSBjbHItaWNvbntkaXNwbGF5Om5vbmV9LnNob3ctY2xvc2UgLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xOHB4O3JpZ2h0'@; put 'Oi0xMHB4fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6I2Q5NGIyZTtjb2xvcjojZmZmO2JvcmRlcjpub25lfS5jYXJkLWhlYWRlcntmb250LXdlaWdodDozMDB9LnNlbGVjdCBzZWxlY3Q6Zm9jdXN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ5NTk2NztiYWNr'@; put 'Z3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdHJhbnNwYXJlbnQgOTUlLCM0OTVhNjcgMCkgbm8tcmVwZWF0fS5jbHItdHJlZW5vZGUtY2hpbGRyZW57bWFyZ2luLWxlZnQ6LjJyZW0haW1wb3J0YW50fS50YWJsZS1hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5IWltcG9ydGFudDtjb2xv'@; put 'cjojMDAwIWltcG9ydGFudH0udGFibGUtYWN0aXZlOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOX1jbHItc2VsZWN0LWNvbnRhaW5lciAuY2xyLWNvbnRyb2wtY29udGFpbmVyLGNsci1zZWxlY3QtY29udGFpbmVyIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1zZWxlY3Qtd3JhcHBlcixj'@; put 'bHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3R7d2lkdGg6MTAwJX10Ym9keXtmb250LXdlaWdodDo0MDB9aDMsaDR7Y29sb3I6IzU4NTg1ODtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjFyZW07bWFyZ2luLXRvcDoxcmVtO21hcmdpbi1ib3R0b206'@; put 'MH1oMSxoMntjb2xvcjojNTg1ODU4O2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MnJlbTttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJvdHRvbTowfWNsci1pY29uLmlzLWluZm97ZmlsbDojODBiNDQxfS5kYXRhZ3JpZC1ob3N0LC5kYXRhZ3JpZC1v'@; put 'dmVybGF5LXdyYXBwZXJ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtYm94IWltcG9ydGFudH0uYnRuLmJ0bi1kYW5nZXIsLmJ0bi5idG4td2FybmluZ3tib3JkZXItY29sb3I6I2VmNGYyZTtiYWNrZ3JvdW5kLWNvbG9yOiNkOTRiMmU7Y29sb3I6I2ZmZn0uZC1ub25le2Rp'@; put 'c3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNsci1mbGV4LTF7ZmxleDoxfS5jbHItZmxleC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jbHItZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5ib3JkZXItMHtib3JkZXI6MH0u'@; put 'Ym94LXNoYWRvdy1ub25le2JveC1zaGFkb3c6bm9uZX0uYm94LXNoYWRvdy1ub25lLWl7Ym94LXNoYWRvdzpub25lIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2NvbG9yOiM4MjgyODJ9LmhhbmRzb250YWJsZS5saXN0Ym94e3BhZGRpbmc6NXB4IDAgNXB4'@; put 'IDVweDtib3gtc2hhZG93OjAgNHB4IDIwcHggIzAwMDAwMDcwfS5oYW5kc29udGFibGUgdGQuaHRJbnZhbGlke2JhY2tncm91bmQ6cmdiYSgyMzAsMzksMCwuNjc4NDMxMzcyNSkhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmVkIWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudH0u'@; put 'bWFyZ2luLXRvcC0yMHttYXJnaW4tdG9wOjIwcHh9LmhpZGRlbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS51bnZpc2libGV7dmlzaWJpbGl0eTpoaWRkZW59QG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KXsuZC1zbS1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtc20taW5saW5le2Rp'@; put 'c3BsYXk6aW5saW5lIWltcG9ydGFudH0uZC1zbS1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5kLXNtLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kLXNtLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLXNtLXRhYmxlLWNlbGx7ZGlz'@; put 'cGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1zbS1mbGV4e2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtc20taW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci1mbGV4LXNtLXJv'@; put 'd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmNsci1nYXAtc20tNXtnYXA6NXB4fS5jbHItZ2FwLXNtLTB7Z2FwOjB9fUBtZWRpYSAobWluLXdpZHRoOiA3NjhweCl7LmQtbWQtbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLW1kLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQt'@; put 'bWQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1tZC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1tZC10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC1tZC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9'@; put 'LmQtbWQtZmxleHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLW1kLWlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS5jbHItZmxleC1tZC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jbHItZmxleC1tZC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5jbHIt'@; put 'Z2FwLW1kLTV7Z2FwOjVweH0uY2xyLWdhcC1tZC0we2dhcDowfX1AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpey5kLWxnLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC1sZy1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLWxnLWlubGluZS1ibG9ja3tkaXNwbGF5Omlu'@; put 'bGluZS1ibG9jayFpbXBvcnRhbnR9LmQtbGctYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQtbGctdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtbGctdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLWxnLWZsZXh7ZGlzcGxheTpmbGV4IWlt'@; put 'cG9ydGFudH0uZC1sZy1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH0uY2xyLWZsZXgtbGctY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2xyLWZsZXgtbGctcm93e2ZsZXgtZGlyZWN0aW9uOnJvd30uY2xyLWdhcC1sZy01e2dhcDo1cHh9LmNsci1nYXAt'@; put 'bGctMHtnYXA6MH19LmRhdGFncmlkLWJvZHl7cGFkZGluZy1ib3R0b206MnJlbSFpbXBvcnRhbnR9LmFib3J0TXNne3doaXRlLXNwYWNlOnByZS13cmFwO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZX0jZ3JhcGggc3Zne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lm5vLXRhYmxlLXNlbGVjdGVke2Rp'@; put 'c3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDp3aGl0ZTt6LWluZGV4OjEwO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjB9LmNvcHlSaWdodHtiYWNr'@; put 'Z3JvdW5kOiM0OTU5NjchaW1wb3J0YW50O2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjVweCAwIDRweDt6LWluZGV4OjEwMH0ubmF2LXRyZWU+Y2xyLXRyZWUtbm9kZS5jbHItZXhwYW5k'@; put 'ZWR7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fWNsci10cmVlLW5vZGV7b3ZlcmZsb3cteTp2aXNpYmxlfWNsci10cmVlLW5vZGU6Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH1jbHItdHJlZS1ub2RlIC5jbHItdHJlZW5vZGUtY2FyZXR7d2lkdGg6YXV0byFpbXBvcnRhbnQ7'@; put 'aGVpZ2h0OmF1dG8haW1wb3J0YW50fWNsci10cmVlLW5vZGUgLmNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lcntwYWRkaW5nOjAgOHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn1jbHItdHJlZS1ub2RlIC5jbHItdHJlZS1ub2Rl'@; put 'LWNvbnRlbnQtY29udGFpbmVyOmZvY3Vze291dGxpbmU6bm9uZSFpbXBvcnRhbnR9LmNsci10cmVlbm9kZS1jb250ZW50IHB7d2hpdGUtc3BhY2U6bm93cmFwfS5zZWFyY2gtbm9kZXttYXJnaW4tYm90dG9tOjVweH0udHJlZS1zZWFyY2gtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNw'@; put 'bGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS50cmVlLXNlYXJjaC13cmFwcGVyIGNsci1pbnB1dC1jb250YWluZXJ7bWFyZ2luOjB9LnRyZWUtc2VhcmNoLXdyYXBwZXIgY2xyLWljb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MDttYXJnaW46NXB4IDAgMDtiYWNrZ3Jv'@; put 'dW5kOndoaXRlO2N1cnNvcjpwb2ludGVyfS5jbHItdHJlZS1ub2Rle292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fS5jb250ZW50LWNvbnRhaW5lcnt3aWR0aDoxMDAlfUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsud3RIb2xkZXJ7d2lkdGg6MTAwJSFpbXBvcnRhbnR9fWlucHV0Ojot'@; put 'bXMtY2xlYXJ7ZGlzcGxheTpub25lfUBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpe2Nsci10cmVlLW5vZGUuY2xyLWV4cGFuZGVke3BhZGRpbmctYm90dG9tOjIwcHg7bWluLWhlaWdodDphdXRvfS5jbHItdHJlZS1u'@; put 'b2Rle21pbi1oZWlnaHQ6MjRweH0uY2xyLXRyZWVub2RlLWNoaWxkcmVue292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257bWluLXdpZHRoOjE2cHg7bWluLWhlaWdodDoxNnB4fS50'@; put 'cmVlLXNlYXJjaC13cmFwcGVyIGNsci1pY29ue2JvdHRvbToycHh9LmNvbnRlbnQtY29udGFpbmVye2hlaWdodDoxMDAlfS5jb250ZW50LWFyZWE+LmNhcmR7bWFyZ2luLWJvdHRvbToyMHB4fS5yZWNvcmQtZWRpdC1tb2RhbCB0ZXh0YXJlYXttaW4taGVpZ2h0OjQycHh9fS5ib3JkZXItYm90'@; put 'dG9tLWRpdmlkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkM30ubG9hZGluZ1NwaW5uZXJ7aGVpZ2h0Ojcwdmg7ZmxleDoxO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9LmRpc2FibGUt'@; put 'cGFzc3dvcmQtbWFuYWdlcnstd2Via2l0LXRleHQtc2VjdXJpdHk6ZGlzYzstbW96LXRleHQtc2VjdXJpdHk6ZGlzYzt0ZXh0LXNlY3VyaXR5OmRpc2M7Zm9udC1mYW1pbHk6dGV4dC1zZWN1cml0eS1kaXNjfS5yZWxhdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZX1oci5saWdodHtib3JkZXI6MDti'@; put 'b3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGVkZWRlfS5zcGlubmVye2JhY2tncm91bmQ6dXJsKC9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGMvc2VydmljZXMvd2ViL2ltYWdlcy9zcGlubmVyLjE2Zjc2M2NlYmM2YjY0ZGYuc3ZnKSFpbXBvcnRhbnR9LmNsci1zZWxlY3Qt'@; put 'd3JhcHBlcjphZnRlcntiYWNrZ3JvdW5kOnVybCgvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjL3NlcnZpY2VzL3dlYi9pbWFnZXMvY2FyZXQuNjVmMWZjMGFjYmU0YzdmZi5zdmcpIWltcG9ydGFudH0udGFibGUtc2VhcmNoLXdyYXBwZXJ7YmFja2dyb3VuZC1jb2xvcjoj'@; put 'ZmZmfS50YWJsZS1zZWFyY2gtd3JhcHBlciAuaW5wdXQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTttaW4td2lkdGg6MTcwcHh9LnRhYmxlLXNlYXJjaC13cmFwcGVyIC5pbnB1dC13cmFwcGVyIGNsci1pY29uLC50YWJsZS1zZWFyY2gtd3JhcHBlciAuaW5wdXQtd3JhcHBlciAuc3Bpbm5l'@; put 'cntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxOXB4O3RvcDowfS50YWJsZS1zZWFyY2gtd3JhcHBlciAuaW5wdXQtd3JhcHBlciBjbHItaWNvbntjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOndoaXRlfS50YWJsZS1zZWFyY2gtd3JhcHBlciBjbHItaW5wdXQtY29udGFpbmVye21hcmdpbi10'@; put 'b3A6LTVweDttYXJnaW4tcmlnaHQ6MH0udGFibGUtc2VhcmNoLXdyYXBwZXIgY2xyLWlucHV0LWNvbnRhaW5lciBsYWJlbHtkaXNwbGF5Om5vbmV9LnRhYmxlLXNlYXJjaC13cmFwcGVyIGNsci1jaGVja2JveC1jb250YWluZXJ7bWFyZ2luLXRvcDowfS50YWJsZS1zZWFyY2gtd3JhcHBlciBp'@; put 'bnB1dHtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCAjOTk5fS50YWJsZS1zZWFyY2gtd3JhcHBlciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwudGFibGUtc2VhcmNoLXdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257LXdlYmtpdC1h'@; put 'cHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LnRhYmxlLXNlYXJjaC13cmFwcGVyIGlucHV0W3R5cGU9bnVtYmVyXXstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkfS5kYy1sb2NrZWQtY29udHJvbHtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZCFpbXBvcnRhbnR9LmxpbmstaXR7Y3Vyc29y'@; put 'OnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let path=services/web/images; %let filename=caret.65f1fc0acbe4c7ff.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=caret.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=datacontroller.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB3aWR0aD0iMTY5MCIgaGVpZ2h0PSIyNDAiIHZpZXdCb3g9IjAgMCAxNjkwIDI0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNV83KSI+CjxwYXRoIGQ9Ik0xMjQuOSA1NS4yMDAxQzEyOC4y'@; put 'IDU1LjYwMDEgMTMxLjQgNTUuOTAwMSAxMzQuNyA1Ni4zMDAxQzE0Mi42IDU3LjQwMDEgMTUwLjMgNTguOTAwMSAxNTcuNSA2Mi42MDAxQzE1OS42IDYzLjcwMDEgMTYxLjYgNjQuOTAwMSAxNjMuMSA2Ni44MDAxQzE2NS41IDY5LjYwMDEgMTY1LjQgNzIuNjAwMSAxNjMgNzUuNDAwMUMxNjAu'@; put 'NSA3OC4yMDAxIDE1Ny4zIDc5LjgwMDEgMTUzLjkgODEuMTAwMUMxNDYgODQuMjAwMSAxMzcuNyA4NS42MDAxIDEyOS4zIDg2LjMwMDFDMTE1LjYgODcuNDAwMSAxMDIuMSA4Ni45MDAxIDg4LjcgODMuNzAwMUM4NC4zIDgyLjcwMDEgODAgODEuMzAwMSA3Ni4xIDc5LjEwMDFDNzQuNiA3OC4z'@; put 'MDAxIDczLjIgNzcuMzAwMSA3MS45IDc2LjEwMDFDNjguMyA3Mi42MDAxIDY4LjMgNjguOTAwMSA3MiA2NS42MDAxQzc2IDYyLjAwMDEgODAuOSA2MC4zMDAxIDg1LjkgNTguOTAwMUM5Mi45IDU2LjkwMDEgMTAwIDU1LjkwMDEgMTA3LjIgNTUuNDAwMUMxMDcuOCA1NS40MDAxIDEwOC41IDU1'@; put 'LjYwMDEgMTA5IDU1LjEwMDFDMTE0LjIgNTUuMjAwMSAxMTkuNiA1NS4yMDAxIDEyNC45IDU1LjIwMDFaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik02OS4yMDAxIDEzNy4zQzc1LjYwMDEgMTQ1LjUgODQuNzAwMSAxNDguNSA5NC4xMDAxIDE1MC41QzExMi43IDE1NC41IDEzMS4zIDE1'@; put 'NCAxNDkuNCAxNDcuNkMxNTUgMTQ1LjYgMTYwLjIgMTQyLjkgMTYzLjkgMTM3LjlDMTY0LjUgMTM3LjEgMTY0LjggMTM3LjUgMTY1LjEgMTM4LjFDMTY1LjcgMTM5LjQgMTY2IDE0MC43IDE2NiAxNDIuMUMxNjYgMTQ3IDE2NiAxNTIgMTY2IDE1Ni45QzE2NiAxNjAuMSAxNjQuNSAxNjIuNiAx'@; put 'NjIuMyAxNjQuOEMxNTcuNyAxNjkuNCAxNTEuOSAxNzEuOSAxNDUuOCAxNzMuOEMxMzMuNSAxNzcuNiAxMjAuOSAxNzguNCAxMDguMiAxNzcuNUM5OC43MDAxIDE3Ni44IDg5LjUgMTc1IDgwLjggMTcxLjFDNzcuMSAxNjkuNCA3My43MDAxIDE2Ny40IDcxLjAwMDEgMTY0LjNDNjguOTAwMSAx'@; put 'NjEuOSA2Ny44IDE1OS4yIDY3LjggMTU2QzY3LjkgMTUxLjUgNjcuOCAxNDcgNjcuOCAxNDIuNUM2Ny44IDE0MC43IDY4LjEwMDEgMTM5IDY5LjIwMDEgMTM3LjNaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik02OS4yOTk5IDEwNi40Qzc0LjU5OTkgMTEzLjUgODEuOTk5OSAxMTYuNSA4'@; put 'OS44OTk5IDExOC42QzEwOC44IDEyMy42IDEyNy43IDEyMy41IDE0Ni40IDExNy45QzE1Mi42IDExNi4xIDE1OC40IDExMy40IDE2Mi45IDEwOC41QzE2My41IDEwNy45IDE2My45IDEwNi41IDE2NC42IDEwNi43QzE2NS42IDEwNyAxNjUuNiAxMDguNCAxNjUuOSAxMDkuNUMxNjYuMyAxMTEu'@; put 'MiAxNjYuMSAxMTIuOSAxNjYuMSAxMTQuNkMxNjYuMSAxMTggMTY2IDEyMS4zIDE2Ni4xIDEyNC43QzE2Ni4zIDEyOC45IDE2NC42IDEzMi4yIDE2MS41IDEzNC45QzE1Ni44IDEzOS4xIDE1MS4xIDE0MS42IDE0NSAxNDMuMkMxMjQuNSAxNDguNyAxMDQuMSAxNDguNiA4My45OTk5IDE0MS42'@; put 'Qzc5LjA5OTkgMTM5LjkgNzQuNTk5OSAxMzcuNSA3MC45OTk5IDEzMy42QzY4Ljc5OTkgMTMxLjIgNjcuNyAxMjguNCA2Ny43IDEyNS4xQzY3LjggMTIwLjcgNjcuNyAxMTYuMiA2Ny43IDExMS44QzY3LjggMTEwIDY4LjA5OTkgMTA4LjIgNjkuMjk5OSAxMDYuNFoiIGZpbGw9IiNFMEUwRTAi'@; put 'Lz4KPHBhdGggZD0iTTY5LjEgNzYuN0M3MC42IDgxLjEgNzQuMiA4My4wOTk5IDc4IDg0Ljg5OTlDODQuOCA4OC4wOTk5IDkyLjEgODkuNiA5OS40IDkwLjVDMTEzLjkgOTIuMyAxMjguNCA5Mi4xIDE0Mi43IDg5LjFDMTQ4LjUgODcuOSAxNTQuMSA4Ni4zIDE1OS4yIDgzLjFDMTYyLjEgODEu'@; put 'MyAxNjMuNiA3OS42IDE2NC42IDc2LjhDMTY1LjYgNzguMiAxNjUuOSA3OS43IDE2NS45IDgxLjJDMTY1LjkgODYuMiAxNjYgOTEuMSAxNjUuOSA5Ni4xQzE2NS44IDEwMC4zIDE2My40IDEwMy4zIDE2MC4zIDEwNS44QzE1NC41IDExMC40IDE0Ny43IDExMi44IDE0MC42IDExNC40QzEyMS44'@; put 'IDExOC41IDEwMy4yIDExOC4yIDg0LjkgMTEyQzgwLjEgMTEwLjQgNzUuNSAxMDguMSA3MS44IDEwNC41QzY5IDEwMS44IDY3LjUgOTguNyA2Ny42IDk0LjdDNjcuNyA5MC40IDY3LjYgODYuMSA2Ny42IDgxLjhDNjcuOCA3OS45IDY4LjEgNzguMyA2OS4xIDc2LjdaIiBmaWxsPSIjOEVDNjNG'@; put 'Ii8+CjxwYXRoIGQ9Ik0xODMuOSAyMTAuOUMyMDAuMiAyMTEuOCAyMDguOSAxOTEuOCAxOTcuMSAxODAuNUMxODQuNyAxNjguNiAxNjQuMyAxNzkuNyAxNjcuNSAxOTYuNUM5My44IDI0My41IC0wLjk5OTk4MSAxNzMuMiAyNiA4Ny44MDAxTDcuODAwMDIgNzUuNjAwMUMtMzMuMSAxODQuMyA5'@; put 'Mi44IDI3Ni4yIDE4My45IDIxMC45Wk0xNzguNyAxODcuNEMxODYuMyAxNzkuNSAxOTguNCAxOTAuNSAxOTEuMyAxOTguOEMxODMuOCAyMDcuNSAxNzAuNiAxOTUuOCAxNzguNyAxODcuNFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTM1LjIgNTAuNzAwMUM0Ni45IDYxLjkwMDEgNjYu'@; put 'MiA1Mi43MDAxIDY1LjEgMzYuNzAwMUMxMzguNyAtMTAuNyAyMzQgNTkuNTAwMSAyMDcgMTQ1LjJMMjI1LjIgMTU3LjRDMjY0LjkgNTEuODAwMSAxNDQuNCAtNDMuMjk5OSA1MS4yIDIwLjYwMDFDMzMuNyAxNy4wMDAxIDIyLjQgMzguNDAwMSAzNS4yIDUwLjcwMDFaTTUzLjYgNDMuODAwMUM0'@; put 'NS44IDUxLjkwMDEgMzMuNSA0MC4xMDAxIDQxLjMgMzIuMDAwMUM0OS4xIDIzLjkwMDEgNjEuNCAzNS43MDAxIDUzLjYgNDMuODAwMVoiIGZpbGw9IiM4RUM2M0YiLz4KPHBhdGggZD0iTTMyMy41NzUgNDcuODg3NEMzMjMuNTc1IDQ2Ljc5MDEgMzIzLjkxNyA0NS44OTg1IDMyNC42MDMgNDUu'@; put 'MjEyN0MzMjUuNDI2IDQ0LjM4OTcgMzI2LjM4NiA0My45NzgyIDMyNy40ODQgNDMuOTc4MkgzNjkuMDQ0QzM3OC45MiA0My45NzgyIDM4OC4wNDEgNDUuNzYxMyAzOTYuNDA4IDQ5LjMyNzZDNDA0LjkxMyA1Mi44OTM4IDQxMi4yNTEgNTcuOTAwMyA0MTguNDIzIDY0LjM0N0M0MjQuNTk2IDcw'@; put 'LjY1NjUgNDI5LjQ2NSA3OC4yMDA1IDQzMy4wMzEgODYuOTc5QzQzNi41OTcgOTUuNzU3NSA0MzguMzggMTA1LjQyOCA0MzguMzggMTE1Ljk4OUM0MzguMzggMTI2LjU1MSA0MzYuNTk3IDEzNi4yMjEgNDMzLjAzMSAxNDQuOTk5QzQyOS40NjUgMTUzLjc3OCA0MjQuNTk2IDE2MS4zOSA0MTgu'@; put 'NDIzIDE2Ny44MzdDNDEyLjI1MSAxNzQuMTQ2IDQwNC45MTMgMTc5LjA4NCAzOTYuNDA4IDE4Mi42NTFDMzg4LjA0MSAxODYuMjE3IDM3OC45MiAxODggMzY5LjA0NCAxODhIMzI3LjQ4NEMzMjYuMzg2IDE4OCAzMjUuNDI2IDE4Ny42NTcgMzI0LjYwMyAxODYuOTcxQzMyMy45MTcgMTg2LjE0'@; put 'OCAzMjMuNTc1IDE4NS4xODggMzIzLjU3NSAxODQuMDkxVjQ3Ljg4NzRaTTM0OS4yOTMgNjkuMjg0OVYxNjIuNjkzSDM2OS42NjJDMzc1LjgzNCAxNjIuNjkzIDM4MS40NTggMTYxLjUyNyAzODYuNTMzIDE1OS4xOTZDMzkxLjYwOCAxNTYuODY0IDM5NS45MjggMTUzLjY0MSAzOTkuNDk1IDE0'@; put 'OS41MjZDNDAzLjE5OCAxNDUuNDExIDQwNi4wMSAxNDAuNTQxIDQwNy45MyAxMzQuOTE4QzQwOS45ODggMTI5LjE1NyA0MTEuMDE2IDEyMi44NDcgNDExLjAxNiAxMTUuOTg5QzQxMS4wMTYgMTA5LjI2OCA0MDkuOTg4IDEwMy4wMjcgNDA3LjkzIDk3LjI2NjNDNDA2LjAxIDkxLjUwNTQgNDAz'@; put 'LjE5OCA4Ni41Njc1IDM5OS40OTUgODIuNDUyNkMzOTUuOTI4IDc4LjMzNzcgMzkxLjYwOCA3NS4xMTQzIDM4Ni41MzMgNzIuNzgyNkMzODEuNDU4IDcwLjQ1MDggMzc1LjgzNCA2OS4yODQ5IDM2OS42NjIgNjkuMjg0OUgzNDkuMjkzWk01MzEuMDkzIDE3Ny45MThDNTI3LjM4OSAxODAuNjYy'@; put 'IDUyMy4xMzcgMTgzLjEzMSA1MTguMzM3IDE4NS4zMjVDNTEzLjUzNiAxODcuMzgzIDUwOC43MzUgMTg4LjQxMSA1MDMuOTM1IDE4OC40MTFDNDk2LjgwMiAxODguNDExIDQ5MC4yMTggMTg3LjEwOCA0ODQuMTgzIDE4NC41MDJDNDc4LjE0OCAxODEuODk2IDQ3Mi45MzYgMTc4LjI2MSA0Njgu'@; put 'NTQ2IDE3My41OThDNDY0LjI5NCAxNjguOTM0IDQ2MC45MzQgMTYzLjQ0OCA0NTguNDY1IDE1Ny4xMzhDNDU1Ljk5NiAxNTAuODI5IDQ1NC43NjEgMTQzLjk3IDQ1NC43NjEgMTM2LjU2NEM0NTQuNzYxIDEyOS40MzEgNDU2LjA2NCAxMjIuNzc5IDQ1OC42NzEgMTE2LjYwNkM0NjEuMjc3IDEx'@; put 'MC4yOTcgNDY0Ljg0MyAxMDQuODEgNDY5LjM2OSAxMDAuMTQ3QzQ3My44OTYgOTUuMzQ2IDQ3OS4xMDggOTEuNTc0IDQ4NS4wMDYgODguODMwN0M0OTEuMDQxIDg2LjA4NzQgNDk3LjQ4OCA4NC43MTU4IDUwNC4zNDYgODQuNzE1OEM1MDkuMTQ3IDg0LjcxNTggNTEzLjg3OSA4NS44MTMxIDUx'@; put 'OC41NDIgODguMDA3N0M1MjMuMjA2IDkwLjA2NTIgNTI3LjM4OSA5Mi40NjU1IDUzMS4wOTMgOTUuMjA4OFY4OS4wMzY1QzUzMS4wOTMgODcuOTM5MSA1MzEuNDM2IDg3LjA0NzYgNTMyLjEyMiA4Ni4zNjE4QzUzMi45NDUgODUuNTM4OCA1MzMuOTA1IDg1LjEyNzMgNTM1LjAwMiA4NS4xMjcz'@; put 'SDU1MS4wNUM1NTMuNjU2IDg1LjEyNzMgNTU0Ljk1OSA4Ni40MzAzIDU1NC45NTkgODkuMDM2NVYxODQuMDkxQzU1NC45NTkgMTg2LjY5NyA1NTMuNjU2IDE4OCA1NTEuMDUgMTg4SDUzNS4wMDJDNTMzLjkwNSAxODggNTMyLjk0NSAxODcuNjU3IDUzMi4xMjIgMTg2Ljk3MUM1MzEuNDM2IDE4'@; put 'Ni4xNDggNTMxLjA5MyAxODUuMTg4IDUzMS4wOTMgMTg0LjA5MVYxNzcuOTE4Wk00NzkuNjU3IDEzNi41NjRDNDc5LjY1NyAxNDAuMjY3IDQ4MC4zNDIgMTQzLjc2NSA0ODEuNzE0IDE0Ny4wNTdDNDgzLjA4NiAxNTAuMjExIDQ4NC45MzcgMTUzLjAyMyA0ODcuMjY5IDE1NS40OTJDNDg5LjYw'@; put 'MSAxNTcuOTYxIDQ5Mi4yNzYgMTU5Ljk1IDQ5NS4yOTMgMTYxLjQ1OUM0OTguNDQ4IDE2Mi44MyA1MDEuNzQgMTYzLjUxNiA1MDUuMTY5IDE2My41MTZDNTA4Ljg3MiAxNjMuNTE2IDUxMi4yMzMgMTYyLjgzIDUxNS4yNTEgMTYxLjQ1OUM1MTguMjY4IDE1OS45NSA1MjAuODc0IDE1Ny45NjEg'@; put 'NTIzLjA2OSAxNTUuNDkyQzUyNS40MDEgMTUzLjAyMyA1MjcuMTg0IDE1MC4yMTEgNTI4LjQxOCAxNDcuMDU3QzUyOS42NTMgMTQzLjc2NSA1MzAuMjcgMTQwLjI2NyA1MzAuMjcgMTM2LjU2NEM1MzAuMjcgMTMyLjg2IDUyOS42NTMgMTI5LjQzMSA1MjguNDE4IDEyNi4yNzZDNTI3LjE4NCAx'@; put 'MjIuOTg0IDUyNS40MDEgMTIwLjEwNCA1MjMuMDY5IDExNy42MzVDNTIwLjg3NCAxMTUuMTY2IDUxOC4yNjggMTEzLjI0NiA1MTUuMjUxIDExMS44NzRDNTEyLjIzMyAxMTAuMzY1IDUwOC44NzIgMTA5LjYxMSA1MDUuMTY5IDEwOS42MTFDNTAxLjc0IDEwOS42MTEgNDk4LjQ0OCAxMTAuMzY1'@; put 'IDQ5NS4yOTMgMTExLjg3NEM0OTIuMjc2IDExMy4yNDYgNDg5LjYwMSAxMTUuMTY2IDQ4Ny4yNjkgMTE3LjYzNUM0ODQuOTM3IDEyMC4xMDQgNDgzLjA4NiAxMjIuOTg0IDQ4MS43MTQgMTI2LjI3NkM0ODAuMzQyIDEyOS40MzEgNDc5LjY1NyAxMzIuODYgNDc5LjY1NyAxMzYuNTY0Wk01NzQu'@; put 'NDA3IDg5LjAzNjVDNTc0LjQwNyA4Ny45MzkxIDU3NC43NSA4Ny4wNDc2IDU3NS40MzYgODYuMzYxOEM1NzYuMTIyIDg1LjUzODggNTc3LjAxMyA4NS4xMjczIDU3OC4xMTEgODUuMTI3M0g1OTMuMzM2VjU4LjE3NDZDNTkzLjMzNiA1Ny4wNzczIDU5My42NzkgNTYuMTg1OCA1OTQuMzY0IDU1'@; put 'LjQ5OTlDNTk1LjE4NyA1NC42NzcgNTk2LjE0OCA1NC4yNjU1IDU5Ny4yNDUgNTQuMjY1NUg2MTMuMjkzQzYxNS44OTkgNTQuMjY1NSA2MTcuMjAyIDU1LjU2ODUgNjE3LjIwMiA1OC4xNzQ2Vjg1LjEyNzNINjM1LjMwOEM2MzYuNDA1IDg1LjEyNzMgNjM3LjI5NyA4NS41Mzg4IDYzNy45ODIg'@; put 'ODYuMzYxOEM2MzguNjY4IDg3LjA0NzYgNjM5LjAxMSA4Ny45MzkxIDYzOS4wMTEgODkuMDM2NVYxMDQuMjYyQzYzOS4wMTEgMTA1LjM1OSA2MzguNjY4IDEwNi4yNSA2MzcuOTgyIDEwNi45MzZDNjM3LjI5NyAxMDcuNjIyIDYzNi40MDUgMTA3Ljk2NSA2MzUuMzA4IDEwNy45NjVINjE3LjIw'@; put 'MlYxODQuMDkxQzYxNy4yMDIgMTg2LjY5NyA2MTUuODk5IDE4OCA2MTMuMjkzIDE4OEg1OTcuMjQ1QzU5Ni4xNDggMTg4IDU5NS4xODcgMTg3LjY1NyA1OTQuMzY0IDE4Ni45NzFDNTkzLjY3OSAxODYuMTQ4IDU5My4zMzYgMTg1LjE4OCA1OTMuMzM2IDE4NC4wOTFWMTA3Ljk2NUg1NzguMTEx'@; put 'QzU3Ny4wMTMgMTA3Ljk2NSA1NzYuMTIyIDEwNy42MjIgNTc1LjQzNiAxMDYuOTM2QzU3NC43NSAxMDYuMjUgNTc0LjQwNyAxMDUuMzU5IDU3NC40MDcgMTA0LjI2MlY4OS4wMzY1Wk03MjkuNjkzIDE3Ny45MThDNzI1Ljk5IDE4MC42NjIgNzIxLjczOCAxODMuMTMxIDcxNi45MzcgMTg1LjMy'@; put 'NUM3MTIuMTM3IDE4Ny4zODMgNzA3LjMzNiAxODguNDExIDcwMi41MzUgMTg4LjQxMUM2OTUuNDAzIDE4OC40MTEgNjg4LjgxOSAxODcuMTA4IDY4Mi43ODQgMTg0LjUwMkM2NzYuNzQ4IDE4MS44OTYgNjcxLjUzNiAxNzguMjYxIDY2Ny4xNDcgMTczLjU5OEM2NjIuODk1IDE2OC45MzQgNjU5'@; put 'LjUzNCAxNjMuNDQ4IDY1Ny4wNjUgMTU3LjEzOEM2NTQuNTk2IDE1MC44MjkgNjUzLjM2MiAxNDMuOTcgNjUzLjM2MiAxMzYuNTY0QzY1My4zNjIgMTI5LjQzMSA2NTQuNjY1IDEyMi43NzkgNjU3LjI3MSAxMTYuNjA2QzY1OS44NzcgMTEwLjI5NyA2NjMuNDQzIDEwNC44MSA2NjcuOTcgMTAw'@; put 'LjE0N0M2NzIuNDk2IDk1LjM0NiA2NzcuNzA4IDkxLjU3NCA2ODMuNjA3IDg4LjgzMDdDNjg5LjY0MiA4Ni4wODc0IDY5Ni4wODggODQuNzE1OCA3MDIuOTQ3IDg0LjcxNThDNzA3Ljc0NyA4NC43MTU4IDcxMi40NzkgODUuODEzMSA3MTcuMTQzIDg4LjAwNzdDNzIxLjgwNyA5MC4wNjUyIDcy'@; put 'NS45OSA5Mi40NjU1IDcyOS42OTMgOTUuMjA4OFY4OS4wMzY1QzcyOS42OTMgODcuOTM5MSA3MzAuMDM2IDg3LjA0NzYgNzMwLjcyMiA4Ni4zNjE4QzczMS41NDUgODUuNTM4OCA3MzIuNTA1IDg1LjEyNzMgNzMzLjYwMyA4NS4xMjczSDc0OS42NTFDNzUyLjI1NyA4NS4xMjczIDc1My41NiA4'@; put 'Ni40MzAzIDc1My41NiA4OS4wMzY1VjE4NC4wOTFDNzUzLjU2IDE4Ni42OTcgNzUyLjI1NyAxODggNzQ5LjY1MSAxODhINzMzLjYwM0M3MzIuNTA1IDE4OCA3MzEuNTQ1IDE4Ny42NTcgNzMwLjcyMiAxODYuOTcxQzczMC4wMzYgMTg2LjE0OCA3MjkuNjkzIDE4NS4xODggNzI5LjY5MyAxODQu'@; put 'MDkxVjE3Ny45MThaTTY3OC4yNTcgMTM2LjU2NEM2NzguMjU3IDE0MC4yNjcgNjc4Ljk0MyAxNDMuNzY1IDY4MC4zMTUgMTQ3LjA1N0M2ODEuNjg2IDE1MC4yMTEgNjgzLjUzOCAxNTMuMDIzIDY4NS44NyAxNTUuNDkyQzY4OC4yMDEgMTU3Ljk2MSA2OTAuODc2IDE1OS45NSA2OTMuODk0IDE2'@; put 'MS40NTlDNjk3LjA0OSAxNjIuODMgNzAwLjM0IDE2My41MTYgNzAzLjc3IDE2My41MTZDNzA3LjQ3MyAxNjMuNTE2IDcxMC44MzMgMTYyLjgzIDcxMy44NTEgMTYxLjQ1OUM3MTYuODY5IDE1OS45NSA3MTkuNDc1IDE1Ny45NjEgNzIxLjY2OSAxNTUuNDkyQzcyNC4wMDEgMTUzLjAyMyA3MjUu'@; put 'Nzg0IDE1MC4yMTEgNzI3LjAxOSAxNDcuMDU3QzcyOC4yNTMgMTQzLjc2NSA3MjguODcgMTQwLjI2NyA3MjguODcgMTM2LjU2NEM3MjguODcgMTMyLjg2IDcyOC4yNTMgMTI5LjQzMSA3MjcuMDE5IDEyNi4yNzZDNzI1Ljc4NCAxMjIuOTg0IDcyNC4wMDEgMTIwLjEwNCA3MjEuNjY5IDExNy42'@; put 'MzVDNzE5LjQ3NSAxMTUuMTY2IDcxNi44NjkgMTEzLjI0NiA3MTMuODUxIDExMS44NzRDNzEwLjgzMyAxMTAuMzY1IDcwNy40NzMgMTA5LjYxMSA3MDMuNzcgMTA5LjYxMUM3MDAuMzQgMTA5LjYxMSA2OTcuMDQ5IDExMC4zNjUgNjkzLjg5NCAxMTEuODc0QzY5MC44NzYgMTEzLjI0NiA2ODgu'@; put 'MjAxIDExNS4xNjYgNjg1Ljg3IDExNy42MzVDNjgzLjUzOCAxMjAuMTA0IDY4MS42ODYgMTIyLjk4NCA2ODAuMzE1IDEyNi4yNzZDNjc4Ljk0MyAxMjkuNDMxIDY3OC4yNTcgMTMyLjg2IDY3OC4yNTcgMTM2LjU2NFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTg3My4yMDYgNzQuMjIy'@; put 'OEM4NzIuNjU3IDc1LjA0NTggODcxLjkwMyA3NS41MjU4IDg3MC45NDMgNzUuNjYzQzg2OS45ODIgNzUuODAwMiA4NjkuMDIyIDc1LjU5NDQgODY4LjA2MiA3NS4wNDU4Qzg2NC45MDcgNzMuMTI1NSA4NjEuMTM1IDcxLjQ3OTUgODU2Ljc0NiA3MC4xMDc5Qzg1Mi4zNTcgNjguNzM2MiA4NDcu'@; put 'ODk5IDY4LjExOSA4NDMuMzczIDY4LjI1NjJDODM3LjQ3NSA2OC4yNTYyIDgzMS45ODggNjkuNTU5MiA4MjYuOTEzIDcyLjE2NTNDODIxLjk3NSA3NC42MzQzIDgxNy42NTQgNzguMDYzNCA4MTMuOTUxIDgyLjQ1MjZDODEwLjI0OCA4Ni43MDQ3IDgwNy4zNjcgOTEuNzExMSA4MDUuMzEgOTcu'@; put 'NDcyQzgwMy4yNTIgMTAzLjIzMyA4MDIuMjkyIDEwOS40MDUgODAyLjQyOSAxMTUuOTg5QzgwMi41NjYgMTIyLjg0NyA4MDMuNTk1IDEyOS4yMjUgODA1LjUxNSAxMzUuMTIzQzgwNy41NzMgMTQwLjg4NCA4MTAuMzg1IDE0NS44OTEgODEzLjk1MSAxNTAuMTQzQzgxNy41MTcgMTU0LjM5NSA4'@; put 'MjEuODM4IDE1Ny43NTUgODI2LjkxMyAxNjAuMjI0QzgzMS45ODggMTYyLjU1NiA4MzcuNjggMTYzLjcyMiA4NDMuOTkgMTYzLjcyMkM4NTAuMDI1IDE2My41ODUgODU1LjUxMiAxNjIuNTU2IDg2MC40NSAxNjAuNjM2Qzg2NS41MjUgMTU4LjcxNiA4NzAuNTMxIDE1NS45NzIgODc1LjQ2OSAx'@; put 'NTIuNDA2Qzg3Ni40MjkgMTUxLjcyIDg3Ny40NTggMTUxLjUxNCA4NzguNTU1IDE1MS43ODlDODc5LjY1MiAxNTEuOTI2IDg4MC41NDQgMTUyLjQ3NSA4ODEuMjMgMTUzLjQzNUw4OTEuMTA2IDE2OC4yNDhDODkyLjM0IDE3MC4xNjkgODkxLjk5NyAxNzEuODgzIDg5MC4wNzcgMTczLjM5MkM4'@; put 'ODIuNTMzIDE3OS4xNTMgODc1LjE5NSAxODMuMzM2IDg2OC4wNjIgMTg1Ljk0M0M4NjAuOTMgMTg4LjU0OSA4NTIuOTc0IDE4OS44NTIgODQ0LjE5NiAxODkuODUyQzgzMy42MzQgMTg5Ljk4OSA4MjQuMTAxIDE4OC4zNDMgODE1LjU5NyAxODQuOTE0QzgwNy4yMyAxODEuMzQ4IDgwMC4wMjkg'@; put 'MTc2LjM0MSA3OTMuOTk0IDE2OS44OTRDNzg4LjA5NiAxNjMuMzExIDc4My41MDEgMTU1LjQ5MiA3ODAuMjA5IDE0Ni40MzlDNzc3LjA1NCAxMzcuMzg3IDc3NS40MDggMTI3LjM3NCA3NzUuMjcxIDExNi40MDFDNzc1LjEzNCAxMDcuMDczIDc3Ni41NzQgOTguMDIwNyA3NzkuNTkyIDg5LjI0'@; put 'MjJDNzgyLjc0NiA4MC4zMjY2IDc4Ny4yMDQgNzIuMzcxMSA3OTIuOTY1IDY1LjM3NTdDNzk4LjcyNiA1OC4zODA0IDgwNS43MjEgNTIuNzU2NyA4MTMuOTUxIDQ4LjUwNDZDODIyLjE4MSA0NC4yNTI1IDgzMS40MzkgNDIuMTI2NSA4NDEuNzI3IDQyLjEyNjVDODQ4LjcyMiA0MS45ODkzIDg1'@; put 'NS41OCA0Mi44MTIzIDg2Mi4zMDEgNDQuNTk1NEM4NjkuMTU5IDQ2LjM3ODYgODc1Ljg4IDQ5LjY3MDUgODgyLjQ2NCA1NC40NzEyQzg4My40MjQgNTUuMTU3IDg4My45NzMgNTYuMDQ4NiA4ODQuMTEgNTcuMTQ1OUM4ODQuMjQ3IDU4LjEwNjEgODgzLjk3MyA1OS4wNjYyIDg4My4yODcgNjAu'@; put 'MDI2M0w4NzMuMjA2IDc0LjIyMjhaTTkwNi4yMTIgMTM2LjU2NEM5MDYuMjEyIDEyOS4yOTQgOTA3LjUxNSAxMjIuNTA0IDkxMC4xMjEgMTE2LjE5NUM5MTIuNzI3IDEwOS44ODUgOTE2LjIyNSAxMDQuMzk5IDkyMC42MTQgOTkuNzM1MkM5MjUuMTQgOTUuMDcxNyA5MzAuNDIxIDkxLjQzNjgg'@; put 'OTM2LjQ1NiA4OC44MzA3Qzk0Mi40OTIgODYuMDg3NCA5NDkuMDA3IDg0LjcxNTggOTU2LjAwMiA4NC43MTU4Qzk2Mi45OTggODQuNzE1OCA5NjkuNDQ0IDg2LjA4NzQgOTc1LjM0MiA4OC44MzA3Qzk4MS4zNzcgOTEuNDM2OCA5ODYuNTkgOTUuMDcxNyA5OTAuOTc5IDk5LjczNTJDOTk1LjUw'@; put 'NSAxMDQuMzk5IDk5OS4wMDMgMTA5Ljg4NSAxMDAxLjQ3IDExNi4xOTVDMTAwNC4wOCAxMjIuNTA0IDEwMDUuMzggMTI5LjI5NCAxMDA1LjM4IDEzNi41NjRDMTAwNS4zOCAxNDMuODMzIDEwMDQuMDggMTUwLjYyMyAxMDAxLjQ3IDE1Ni45MzJDOTk5LjAwMyAxNjMuMjQyIDk5NS41MDUgMTY4'@; put 'LjcyOSA5OTAuOTc5IDE3My4zOTJDOTg2LjU5IDE3OC4wNTYgOTgxLjM3NyAxODEuNzU5IDk3NS4zNDIgMTg0LjUwMkM5NjkuMzA3IDE4Ny4xMDggOTYyLjc5MiAxODguNDExIDk1NS43OTYgMTg4LjQxMUM5NDguODAxIDE4OC40MTEgOTQyLjI4NiAxODcuMTA4IDkzNi4yNTEgMTg0LjUwMkM5'@; put 'MzAuMjE1IDE4MS43NTkgOTI0LjkzNSAxNzguMDU2IDkyMC40MDggMTczLjM5MkM5MTYuMDE5IDE2OC43MjkgOTEyLjUyMSAxNjMuMjQyIDkwOS45MTUgMTU2LjkzMkM5MDcuNDQ2IDE1MC42MjMgOTA2LjIxMiAxNDMuODMzIDkwNi4yMTIgMTM2LjU2NFpNOTMxLjEwNyAxMzYuNTY0QzkzMS4x'@; put 'MDcgMTQwLjQwNCA5MzEuNzI0IDE0NC4wMzkgOTMyLjk1OSAxNDcuNDY4QzkzNC4xOTMgMTUwLjc2IDkzNS45MDggMTUzLjY0MSA5MzguMTAyIDE1Ni4xMDlDOTQwLjI5NyAxNTguNTc4IDk0Mi45MDMgMTYwLjU2NyA5NDUuOTIxIDE2Mi4wNzZDOTQ4LjkzOCAxNjMuNDQ4IDk1Mi4yMyAxNjQu'@; put 'MTM0IDk1NS43OTYgMTY0LjEzNEM5NTkuMzYzIDE2NC4xMzQgOTYyLjY1NSAxNjMuNDQ4IDk2NS42NzIgMTYyLjA3NkM5NjguODI3IDE2MC41NjcgOTcxLjUwMiAxNTguNTc4IDk3My42OTYgMTU2LjEwOUM5NzUuODkxIDE1My42NDEgOTc3LjYwNSAxNTAuNzYgOTc4Ljg0IDE0Ny40NjhDOTgw'@; put 'LjA3NCAxNDQuMDM5IDk4MC42OTIgMTQwLjQwNCA5ODAuNjkyIDEzNi41NjRDOTgwLjY5MiAxMzIuNzIzIDk4MC4wNzQgMTI5LjE1NyA5NzguODQgMTI1Ljg2NUM5NzcuNjA1IDEyMi40MzYgOTc1Ljg5MSAxMTkuNDg3IDk3My42OTYgMTE3LjAxOEM5NzEuNTAyIDExNC41NDkgOTY4LjgyNyAx'@; put 'MTIuNjI5IDk2NS42NzIgMTExLjI1N0M5NjIuNjU1IDEwOS43NDggOTU5LjM2MyAxMDguOTk0IDk1NS43OTYgMTA4Ljk5NEM5NTIuMjMgMTA4Ljk5NCA5NDguOTM4IDEwOS43NDggOTQ1LjkyMSAxMTEuMjU3Qzk0Mi45MDMgMTEyLjYyOSA5NDAuMjk3IDExNC41NDkgOTM4LjEwMiAxMTcuMDE4'@; put 'QzkzNS45MDggMTE5LjQ4NyA5MzQuMTkzIDEyMi40MzYgOTMyLjk1OSAxMjUuODY1QzkzMS43MjQgMTI5LjE1NyA5MzEuMTA3IDEzMi43MjMgOTMxLjEwNyAxMzYuNTY0Wk0xMDUwLjkgMTg0LjA5MUMxMDUwLjkgMTg2LjY5NyAxMDQ5LjU5IDE4OCAxMDQ2Ljk5IDE4OEgxMDMwLjk0QzEwMjku'@; put 'ODQgMTg4IDEwMjguODggMTg3LjY1NyAxMDI4LjA2IDE4Ni45NzFDMTAyNy4zNyAxODYuMTQ4IDEwMjcuMDMgMTg1LjE4OCAxMDI3LjAzIDE4NC4wOTFWODkuMDM2NUMxMDI3LjAzIDg3LjkzOTEgMTAyNy4zNyA4Ny4wNDc2IDEwMjguMDYgODYuMzYxOEMxMDI4Ljg4IDg1LjUzODggMTAyOS44'@; put 'NCA4NS4xMjczIDEwMzAuOTQgODUuMTI3M0gxMDQ2Ljk5QzEwNDkuNTkgODUuMTI3MyAxMDUwLjkgODYuNDMwMyAxMDUwLjkgODkuMDM2NVY5Ni42NDlDMTA1NC44OCA5My4zNTcxIDEwNTkuNDcgOTAuNTQ1MyAxMDY0LjY4IDg4LjIxMzVDMTA2OS44OSA4NS44ODE3IDEwNzUuMDQgODQuNzE1'@; put 'OCAxMDgwLjExIDg0LjcxNThDMTA4NC45MSA4NC43MTU4IDEwODkuMzcgODUuNjA3NCAxMDkzLjQ5IDg3LjM5MDVDMTA5Ny42IDg5LjAzNjUgMTEwMS4xIDkxLjQzNjggMTEwMy45OCA5NC41OTE2QzExMDcgOTcuNjA5MiAxMTA5LjMzIDEwMS4xNzUgMTExMC45OCAxMDUuMjlDMTExMi42MiAx'@; put 'MDkuNDA1IDExMTMuNDQgMTEzLjkzMiAxMTEzLjQ0IDExOC44N1YxODQuMDkxQzExMTMuNDQgMTg2LjY5NyAxMTEyLjE0IDE4OCAxMTA5LjUzIDE4OEgxMDkzLjQ5QzEwOTIuMzkgMTg4IDEwOTEuNDMgMTg3LjY1NyAxMDkwLjYxIDE4Ni45NzFDMTA4OS45MiAxODYuMTQ4IDEwODkuNTggMTg1'@; put 'LjE4OCAxMDg5LjU4IDE4NC4wOTFWMTI2LjY4OEMxMDg5LjU4IDEyMS4wNjQgMTA4OC4yNyAxMTYuNzQ0IDEwODUuNjcgMTEzLjcyNkMxMDgzLjA2IDExMC41NzEgMTA3OS4zNiAxMDguOTk0IDEwNzQuNTYgMTA4Ljk5NEMxMDcxLjU0IDEwOC45OTQgMTA2OC41OSAxMDkuNjExIDEwNjUuNzEg'@; put 'MTEwLjg0NUMxMDYyLjk3IDExMS45NDMgMTA2MC41IDExMy41MiAxMDU4LjMgMTE1LjU3OEMxMDU2LjI1IDExNy40OTggMTA1NC41MyAxMTkuODMgMTA1My4xNiAxMjIuNTczQzEwNTEuOTMgMTI1LjMxNiAxMDUxLjMxIDEyOC4xOTcgMTA1MS4zMSAxMzEuMjE0TDEwNTAuOSAxODQuMDkxWk0x'@; put 'MTI3Ljg3IDg5LjAzNjVDMTEyNy44NyA4Ny45MzkxIDExMjguMjEgODcuMDQ3NiAxMTI4LjkgODYuMzYxOEMxMTI5LjU4IDg1LjUzODggMTEzMC40OCA4NS4xMjczIDExMzEuNTcgODUuMTI3M0gxMTQ2LjhWNTguMTc0NkMxMTQ2LjggNTcuMDc3MyAxMTQ3LjE0IDU2LjE4NTggMTE0Ny44MyA1'@; put 'NS40OTk5QzExNDguNjUgNTQuNjc3IDExNDkuNjEgNTQuMjY1NSAxMTUwLjcxIDU0LjI2NTVIMTE2Ni43NkMxMTY5LjM2IDU0LjI2NTUgMTE3MC42NyA1NS41Njg1IDExNzAuNjcgNTguMTc0NlY4NS4xMjczSDExODguNzdDMTE4OS44NyA4NS4xMjczIDExOTAuNzYgODUuNTM4OCAxMTkxLjQ1'@; put 'IDg2LjM2MThDMTE5Mi4xMyA4Ny4wNDc2IDExOTIuNDcgODcuOTM5MSAxMTkyLjQ3IDg5LjAzNjVWMTA0LjI2MkMxMTkyLjQ3IDEwNS4zNTkgMTE5Mi4xMyAxMDYuMjUgMTE5MS40NSAxMDYuOTM2QzExOTAuNzYgMTA3LjYyMiAxMTg5Ljg3IDEwNy45NjUgMTE4OC43NyAxMDcuOTY1SDExNzAu'@; put 'NjdWMTg0LjA5MUMxMTcwLjY3IDE4Ni42OTcgMTE2OS4zNiAxODggMTE2Ni43NiAxODhIMTE1MC43MUMxMTQ5LjYxIDE4OCAxMTQ4LjY1IDE4Ny42NTcgMTE0Ny44MyAxODYuOTcxQzExNDcuMTQgMTg2LjE0OCAxMTQ2LjggMTg1LjE4OCAxMTQ2LjggMTg0LjA5MVYxMDcuOTY1SDExMzEuNTdD'@; put 'MTEzMC40OCAxMDcuOTY1IDExMjkuNTggMTA3LjYyMiAxMTI4LjkgMTA2LjkzNkMxMTI4LjIxIDEwNi4yNSAxMTI3Ljg3IDEwNS4zNTkgMTEyNy44NyAxMDQuMjYyVjg5LjAzNjVaTTEyNzMuMjggMTA4LjE3MUMxMjcyLjg3IDEwOS4yNjggMTI3Mi4xOCAxMTAuMDIyIDEyNzEuMjIgMTEwLjQz'@; put 'NEMxMjcwLjI2IDExMC44NDUgMTI2OS4yMyAxMTAuNzc3IDEyNjguMTQgMTEwLjIyOEMxMjY3LjA0IDEwOS42OCAxMjY1LjY3IDEwOS4yIDEyNjQuMDIgMTA4Ljc4OEMxMjYyLjUxIDEwOC4zNzcgMTI2MC44NyAxMDguMTcxIDEyNTkuMDggMTA4LjE3MUMxMjU2LjA3IDEwOC4xNzEgMTI1My4x'@; put 'OSAxMDguNzg4IDEyNTAuNDQgMTEwLjAyMkMxMjQ3LjcgMTExLjI1NyAxMjQ1LjIzIDExMi45NzIgMTI0My4wNCAxMTUuMTY2QzEyNDAuOTggMTE3LjIyNCAxMjM5LjMzIDExOS42OTMgMTIzOC4xIDEyMi41NzNDMTIzNi44NiAxMjUuMzE2IDEyMzYuMjUgMTI4LjE5NyAxMjM2LjI1IDEzMS4y'@; put 'MTRMMTIzNS44NCAxODQuMDkxQzEyMzUuODQgMTg1LjE4OCAxMjM1LjQ5IDE4Ni4xNDggMTIzNC44MSAxODYuOTcxQzEyMzQuMTIgMTg3LjY1NyAxMjMzLjIzIDE4OCAxMjMyLjEzIDE4OEgxMjE1Ljg4QzEyMTQuNzggMTg4IDEyMTMuODIgMTg3LjY1NyAxMjEzIDE4Ni45NzFDMTIxMi4zMSAx'@; put 'ODYuMTQ4IDEyMTEuOTcgMTg1LjE4OCAxMjExLjk3IDE4NC4wOTFWODkuMDM2NUMxMjExLjk3IDg3LjkzOTEgMTIxMi4zMSA4Ny4wNDc2IDEyMTMgODYuMzYxOEMxMjEzLjgyIDg1LjUzODggMTIxNC43OCA4NS4xMjczIDEyMTUuODggODUuMTI3M0gxMjMyLjEzQzEyMzMuMjMgODUuMTI3MyAx'@; put 'MjM0LjEyIDg1LjUzODggMTIzNC44MSA4Ni4zNjE4QzEyMzUuNDkgODcuMDQ3NiAxMjM1Ljg0IDg3LjkzOTEgMTIzNS44NCA4OS4wMzY1Vjk0LjU5MTZDMTIzOS44MSA5MS43MTExIDEyNDQuMDcgODkuMzc5NCAxMjQ4LjU5IDg3LjU5NjJDMTI1My4xMiA4NS42NzU5IDEyNTcuOTkgODQuNzE1'@; put 'OCAxMjYzLjIgODQuNzE1OEMxMjY4LjU1IDg0LjcxNTggMTI3My4yMSA4NS43NDQ1IDEyNzcuMTkgODcuODAyQzEyNzkuMTEgODkuMDM2NSAxMjc5LjczIDkwLjYxMzggMTI3OS4wNCA5Mi41MzQxTDEyNzMuMjggMTA4LjE3MVpNMTI4NS4zMyAxMzYuNTY0QzEyODUuMzMgMTI5LjI5NCAxMjg2'@; put 'LjYzIDEyMi41MDQgMTI4OS4yNCAxMTYuMTk1QzEyOTEuODUgMTA5Ljg4NSAxMjk1LjM0IDEwNC4zOTkgMTI5OS43MyA5OS43MzUyQzEzMDQuMjYgOTUuMDcxNyAxMzA5LjU0IDkxLjQzNjggMTMxNS41NyA4OC44MzA3QzEzMjEuNjEgODYuMDg3NCAxMzI4LjEyIDg0LjcxNTggMTMzNS4xMiA4'@; put 'NC43MTU4QzEzNDIuMTIgODQuNzE1OCAxMzQ4LjU2IDg2LjA4NzQgMTM1NC40NiA4OC44MzA3QzEzNjAuNSA5MS40MzY4IDEzNjUuNzEgOTUuMDcxNyAxMzcwLjEgOTkuNzM1MkMxMzc0LjYyIDEwNC4zOTkgMTM3OC4xMiAxMDkuODg1IDEzODAuNTkgMTE2LjE5NUMxMzgzLjIgMTIyLjUwNCAx'@; put 'Mzg0LjUgMTI5LjI5NCAxMzg0LjUgMTM2LjU2NEMxMzg0LjUgMTQzLjgzMyAxMzgzLjIgMTUwLjYyMyAxMzgwLjU5IDE1Ni45MzJDMTM3OC4xMiAxNjMuMjQyIDEzNzQuNjIgMTY4LjcyOSAxMzcwLjEgMTczLjM5MkMxMzY1LjcxIDE3OC4wNTYgMTM2MC41IDE4MS43NTkgMTM1NC40NiAxODQu'@; put 'NTAyQzEzNDguNDMgMTg3LjEwOCAxMzQxLjkxIDE4OC40MTEgMTMzNC45MSAxODguNDExQzEzMjcuOTIgMTg4LjQxMSAxMzIxLjQgMTg3LjEwOCAxMzE1LjM3IDE4NC41MDJDMTMwOS4zMyAxODEuNzU5IDEzMDQuMDUgMTc4LjA1NiAxMjk5LjUzIDE3My4zOTJDMTI5NS4xNCAxNjguNzI5IDEy'@; put 'OTEuNjQgMTYzLjI0MiAxMjg5LjAzIDE1Ni45MzJDMTI4Ni41NiAxNTAuNjIzIDEyODUuMzMgMTQzLjgzMyAxMjg1LjMzIDEzNi41NjRaTTEzMTAuMjMgMTM2LjU2NEMxMzEwLjIzIDE0MC40MDQgMTMxMC44NCAxNDQuMDM5IDEzMTIuMDggMTQ3LjQ2OEMxMzEzLjMxIDE1MC43NiAxMzE1LjAz'@; put 'IDE1My42NDEgMTMxNy4yMiAxNTYuMTA5QzEzMTkuNDIgMTU4LjU3OCAxMzIyLjAyIDE2MC41NjcgMTMyNS4wNCAxNjIuMDc2QzEzMjguMDYgMTYzLjQ0OCAxMzMxLjM1IDE2NC4xMzQgMTMzNC45MSAxNjQuMTM0QzEzMzguNDggMTY0LjEzNCAxMzQxLjc3IDE2My40NDggMTM0NC43OSAxNjIu'@; put 'MDc2QzEzNDcuOTUgMTYwLjU2NyAxMzUwLjYyIDE1OC41NzggMTM1Mi44MSAxNTYuMTA5QzEzNTUuMDEgMTUzLjY0MSAxMzU2LjcyIDE1MC43NiAxMzU3Ljk2IDE0Ny40NjhDMTM1OS4xOSAxNDQuMDM5IDEzNTkuODEgMTQwLjQwNCAxMzU5LjgxIDEzNi41NjRDMTM1OS44MSAxMzIuNzIzIDEz'@; put 'NTkuMTkgMTI5LjE1NyAxMzU3Ljk2IDEyNS44NjVDMTM1Ni43MiAxMjIuNDM2IDEzNTUuMDEgMTE5LjQ4NyAxMzUyLjgxIDExNy4wMThDMTM1MC42MiAxMTQuNTQ5IDEzNDcuOTUgMTEyLjYyOSAxMzQ0Ljc5IDExMS4yNTdDMTM0MS43NyAxMDkuNzQ4IDEzMzguNDggMTA4Ljk5NCAxMzM0Ljkx'@; put 'IDEwOC45OTRDMTMzMS4zNSAxMDguOTk0IDEzMjguMDYgMTA5Ljc0OCAxMzI1LjA0IDExMS4yNTdDMTMyMi4wMiAxMTIuNjI5IDEzMTkuNDIgMTE0LjU0OSAxMzE3LjIyIDExNy4wMThDMTMxNS4wMyAxMTkuNDg3IDEzMTMuMzEgMTIyLjQzNiAxMzEyLjA4IDEyNS44NjVDMTMxMC44NCAxMjku'@; put 'MTU3IDEzMTAuMjMgMTMyLjcyMyAxMzEwLjIzIDEzNi41NjRaTTE0MDguMjEgMzcuMzk0NEMxNDA4LjIxIDM2LjI5NyAxNDA4LjU1IDM1LjQwNTUgMTQwOS4yNCAzNC43MTk3QzE0MTAuMDYgMzQuMDMzOCAxNDExLjAyIDMzLjY5MDkgMTQxMi4xMiAzMy42OTA5SDE0MjguMTZDMTQyOS4yNiAz'@; put 'My42OTA5IDE0MzAuMTUgMzQuMDMzOCAxNDMwLjg0IDM0LjcxOTdDMTQzMS42NiAzNS40MDU1IDE0MzIuMDcgMzYuMjk3IDE0MzIuMDcgMzcuMzk0NFYxODQuMDkxQzE0MzIuMDcgMTg2LjY5NyAxNDMwLjc3IDE4OCAxNDI4LjE2IDE4OEgxNDEyLjEyQzE0MTEuMDIgMTg4IDE0MTAuMDYgMTg3'@; put 'LjY1NyAxNDA5LjI0IDE4Ni45NzFDMTQwOC41NSAxODYuMTQ4IDE0MDguMjEgMTg1LjE4OCAxNDA4LjIxIDE4NC4wOTFWMzcuMzk0NFpNMTQ2MyAzNy4zOTQ0QzE0NjMgMzYuMjk3IDE0NjMuMzUgMzUuNDA1NSAxNDY0LjAzIDM0LjcxOTdDMTQ2NC44NSAzNC4wMzM4IDE0NjUuODEgMzMuNjkw'@; put 'OSAxNDY2LjkxIDMzLjY5MDlIMTQ4Mi45NkMxNDg0LjA2IDMzLjY5MDkgMTQ4NC45NSAzNC4wMzM4IDE0ODUuNjMgMzQuNzE5N0MxNDg2LjQ2IDM1LjQwNTUgMTQ4Ni44NyAzNi4yOTcgMTQ4Ni44NyAzNy4zOTQ0VjE4NC4wOTFDMTQ4Ni44NyAxODYuNjk3IDE0ODUuNTcgMTg4IDE0ODIuOTYg'@; put 'MTg4SDE0NjYuOTFDMTQ2NS44MSAxODggMTQ2NC44NSAxODcuNjU3IDE0NjQuMDMgMTg2Ljk3MUMxNDYzLjM1IDE4Ni4xNDggMTQ2MyAxODUuMTg4IDE0NjMgMTg0LjA5MVYzNy4zOTQ0Wk0xNTM3Ljc2IDE0OC4wODVDMTUzOS42OCAxNTIuODg2IDE1NDIuNTYgMTU2Ljc5NSAxNTQ2LjQgMTU5'@; put 'LjgxM0MxNTUwLjM3IDE2Mi44MyAxNTU0LjkgMTY0LjMzOSAxNTU5Ljk4IDE2NC4zMzlDMTU2My42OCAxNjQuMzM5IDE1NjcuMjUgMTYzLjcyMiAxNTcwLjY3IDE2Mi40ODhDMTU3NC4xIDE2MS4yNTMgMTU3Ni45OCAxNTkuNTM5IDE1NzkuMzIgMTU3LjM0NEMxNTgwLjE0IDE1Ni42NTggMTU4'@; put 'MS4wMyAxNTYuMzg0IDE1ODEuOTkgMTU2LjUyMUMxNTgzLjA5IDE1Ni41MjEgMTU4My45OCAxNTYuODY0IDE1ODQuNjcgMTU3LjU1TDE1OTYuMzkgMTY4LjY2QzE1OTcuMDggMTY5LjM0NiAxNTk3LjQyIDE3MC4yMzcgMTU5Ny40MiAxNzEuMzM1QzE1OTcuNDIgMTcyLjI5NSAxNTk3LjA4IDE3'@; put 'My4xMTggMTU5Ni4zOSAxNzMuODA0QzE1OTEuODcgMTc4LjYwNCAxNTg2LjUyIDE4Mi4yMzkgMTU4MC4zNCAxODQuNzA4QzE1NzQuMTcgMTg3LjE3NyAxNTY3LjM4IDE4OC40MTEgMTU1OS45OCAxODguNDExQzE1NTMuMTIgMTg4LjQxMSAxNTQ2Ljc0IDE4Ny4xNzcgMTU0MC44NCAxODQuNzA4'@; put 'QzE1MzUuMDggMTgyLjIzOSAxNTMwLjAxIDE3OC43NDEgMTUyNS42MiAxNzQuMjE1QzE1MjAuODIgMTY5LjQxNCAxNTE3LjExIDE2My43MjIgMTUxNC41MSAxNTcuMTM4QzE1MTEuOSAxNTAuNTU0IDE1MTAuNiAxNDMuNTU5IDE1MTAuNiAxMzYuMTUyQzE1MTAuNiAxMjkuMDIgMTUxMS45IDEy'@; put 'Mi4zNjcgMTUxNC41MSAxMTYuMTk1QzE1MTcuMTEgMTA5Ljg4NSAxNTIwLjYxIDEwNC4zOTkgMTUyNSA5OS43MzUyQzE1MjkuNTMgOTUuMDcxNyAxNTM0LjgxIDkxLjQzNjggMTU0MC44NCA4OC44MzA3QzE1NDYuODggODYuMDg3NCAxNTUzLjMyIDg0LjcxNTggMTU2MC4xOCA4NC43MTU4QzE1'@; put 'NjYuNDkgODQuNzE1OCAxNTcyLjMyIDg1Ljg4MTcgMTU3Ny42NyA4OC4yMTM1QzE1ODMuMTYgOTAuNTQ1MyAxNTg3Ljk2IDkzLjc2ODYgMTU5Mi4wNyA5Ny44ODM1QzE1OTMuODYgOTkuNTI5NSAxNTk1LjU3IDEwMS40NSAxNTk3LjIyIDEwMy42NDRDMTU5OC44NiAxMDUuODM5IDE2MDAuMyAx'@; put 'MDguMzc3IDE2MDEuNTQgMTExLjI1N0MxNjAyLjc3IDExNC4xMzcgMTYwMy43MyAxMTcuNDk4IDE2MDQuNDIgMTIxLjMzOEMxNjA1LjI0IDEyNS4wNDIgMTYwNS42NSAxMjkuMjk0IDE2MDUuNjUgMTM0LjA5NUMxNjA1LjY1IDEzNy4zODcgMTYwNS40NSAxNDAuOTUzIDE2MDUuMDMgMTQ0Ljc5'@; put 'M0MxNjA0Ljc2IDE0Ni45ODggMTYwMy41MyAxNDguMDg1IDE2MDEuMzMgMTQ4LjA4NUgxNTM3Ljc2Wk0xNTU5LjU2IDEwOC43ODhDMTU1My44IDEwOC43ODggMTU0OS4wNyAxMTAuMzY1IDE1NDUuMzcgMTEzLjUyQzE1NDEuNjYgMTE2LjY3NSAxNTM5LjA2IDEyMC41ODQgMTUzNy41NSAxMjUu'@; put 'MjQ4SDE1ODAuNzZDMTU3OS4yNSAxMjAuODU4IDE1NzYuNzEgMTE3LjAxOCAxNTczLjE0IDExMy43MjZDMTU2OS43MSAxMTAuNDM0IDE1NjUuMTkgMTA4Ljc4OCAxNTU5LjU2IDEwOC43ODhaTTE2ODguNTEgMTA4LjE3MUMxNjg4LjEgMTA5LjI2OCAxNjg3LjQxIDExMC4wMjIgMTY4Ni40NSAx'@; put 'MTAuNDM0QzE2ODUuNDkgMTEwLjg0NSAxNjg0LjQ2IDExMC43NzcgMTY4My4zNyAxMTAuMjI4QzE2ODIuMjcgMTA5LjY4IDE2ODAuOSAxMDkuMiAxNjc5LjI1IDEwOC43ODhDMTY3Ny43NCAxMDguMzc3IDE2NzYuMSAxMDguMTcxIDE2NzQuMzEgMTA4LjE3MUMxNjcxLjI5IDEwOC4xNzEgMTY2'@; put 'OC40MSAxMDguNzg4IDE2NjUuNjcgMTEwLjAyMkMxNjYyLjkzIDExMS4yNTcgMTY2MC40NiAxMTIuOTcyIDE2NTguMjYgMTE1LjE2NkMxNjU2LjIxIDExNy4yMjQgMTY1NC41NiAxMTkuNjkzIDE2NTMuMzMgMTIyLjU3M0MxNjUyLjA5IDEyNS4zMTYgMTY1MS40NyAxMjguMTk3IDE2NTEuNDcg'@; put 'MTMxLjIxNEwxNjUxLjA2IDE4NC4wOTFDMTY1MS4wNiAxODUuMTg4IDE2NTAuNzIgMTg2LjE0OCAxNjUwLjAzIDE4Ni45NzFDMTY0OS4zNSAxODcuNjU3IDE2NDguNDYgMTg4IDE2NDcuMzYgMTg4SDE2MzEuMTFDMTYzMC4wMSAxODggMTYyOS4wNSAxODcuNjU3IDE2MjguMjMgMTg2Ljk3MUMx'@; put 'NjI3LjU0IDE4Ni4xNDggMTYyNy4yIDE4NS4xODggMTYyNy4yIDE4NC4wOTFWODkuMDM2NUMxNjI3LjIgODcuOTM5MSAxNjI3LjU0IDg3LjA0NzYgMTYyOC4yMyA4Ni4zNjE4QzE2MjkuMDUgODUuNTM4OCAxNjMwLjAxIDg1LjEyNzMgMTYzMS4xMSA4NS4xMjczSDE2NDcuMzZDMTY0OC40NiA4'@; put 'NS4xMjczIDE2NDkuMzUgODUuNTM4OCAxNjUwLjAzIDg2LjM2MThDMTY1MC43MiA4Ny4wNDc2IDE2NTEuMDYgODcuOTM5MSAxNjUxLjA2IDg5LjAzNjVWOTQuNTkxNkMxNjU1LjA0IDkxLjcxMTEgMTY1OS4yOSA4OS4zNzk0IDE2NjMuODIgODcuNTk2MkMxNjY4LjM1IDg1LjY3NTkgMTY3My4y'@; put 'MiA4NC43MTU4IDE2NzguNDMgODQuNzE1OEMxNjgzLjc4IDg0LjcxNTggMTY4OC40NCA4NS43NDQ1IDE2OTIuNDIgODcuODAyQzE2OTQuMzQgODkuMDM2NSAxNjk0Ljk2IDkwLjYxMzggMTY5NC4yNyA5Mi41MzQxTDE2ODguNTEgMTA4LjE3MVoiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVm'@; put 'cz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDVfNyI+CjxyZWN0IHdpZHRoPSIxNjg5IiBoZWlnaHQ9IjI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=dc-logo.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHZpZXdCb3g9IjAgMCA3MCA3MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwMV84KSI+CjxwYXRoIGQ9Ik0zNy41OTkzIDE2LjYyMTJDMzguNTkxNiAx'@; put 'Ni43NDE1IDM5LjU1MzggMTYuODMxNyA0MC41NDYxIDE2Ljk1MTlDNDIuOTIxNiAxNy4yODI3IDQ1LjIzNyAxNy43MzM3IDQ3LjQwMiAxOC44NDYzQzQ4LjAzMzQgMTkuMTc3MSA0OC42MzQ4IDE5LjUzNzkgNDkuMDg1OSAyMC4xMDkyQzQ5LjgwNzUgMjAuOTUxMiA0OS43Nzc0IDIxLjg1MzMg'@; put 'NDkuMDU1OCAyMi42OTUyQzQ4LjMwNCAyMy41MzcxIDQ3LjM0MTggMjQuMDE4MyA0Ni4zMTk1IDI0LjQwOTJDNDMuOTQ0IDI1LjM0MTMgNDEuNDQ4MiAyNS43NjIzIDM4LjkyMjQgMjUuOTcyOEMzNC44MDI5IDI2LjMwMzUgMzAuNzQzNSAyNi4xNTMyIDI2LjcxNDIgMjUuMTkxQzI1LjM5MTEg'@; put 'MjQuODkwMyAyNC4wOTgxIDI0LjQ2OTMgMjIuOTI1NCAyMy44MDc4QzIyLjQ3NDQgMjMuNTY3MiAyMi4wNTM0IDIzLjI2NjUgMjEuNjYyNSAyMi45MDU3QzIwLjU4IDIxLjg1MzMgMjAuNTggMjAuNzQwNyAyMS42OTI2IDE5Ljc0ODRDMjIuODk1NCAxOC42NjU5IDI0LjM2ODggMTguMTU0NyAy'@; put 'NS44NzIyIDE3LjczMzdDMjcuOTc3MSAxNy4xMzI0IDMwLjExMiAxNi44MzE3IDMyLjI3NyAxNi42ODEzQzMyLjQ1NzUgMTYuNjgxMyAzMi42Njc5IDE2Ljc0MTUgMzIuODE4MyAxNi41OTExQzM0LjM4MTkgMTYuNjIxMiAzNi4wMDU2IDE2LjYyMTIgMzcuNTk5MyAxNi42MjEyWiIgZmlsbD0i'@; put 'I0UwRTBFMCIvPgo8cGF0aCBkPSJNMjAuODUwNyA0MS4zMDgyQzIyLjc3NTEgNDMuNzczOCAyNS41MTE1IDQ0LjY3NTkgMjguMzM4IDQ1LjI3NzNDMzMuOTMwOSA0Ni40ODAxIDM5LjUyMzggNDYuMzI5NyA0NC45NjYzIDQ0LjQwNTNDNDYuNjUwMiA0My44MDM5IDQ4LjIxMzggNDIuOTkyIDQ5'@; put 'LjMyNjQgNDEuNDg4NkM0OS41MDY4IDQxLjI0OCA0OS41OTcgNDEuMzY4MyA0OS42ODcyIDQxLjU0ODdDNDkuODY3NyA0MS45Mzk2IDQ5Ljk1NzkgNDIuMzMwNSA0OS45NTc5IDQyLjc1MTVDNDkuOTU3OSA0NC4yMjQ5IDQ5Ljk1NzkgNDUuNzI4NCA0OS45NTc5IDQ3LjIwMThDNDkuOTU3OSA0'@; put 'OC4xNjQgNDkuNTA2OCA0OC45MTU3IDQ4Ljg0NTMgNDkuNTc3MkM0Ny40NjIxIDUwLjk2MDQgNDUuNzE4MSA1MS43MTIyIDQzLjg4MzggNTIuMjgzNUM0MC4xODUzIDUzLjQyNjEgMzYuMzk2NiA1My42NjY3IDMyLjU3NzcgNTMuMzk2MUMyOS43MjEyIDUzLjE4NTYgMjYuOTU0OCA1Mi42NDQz'@; put 'IDI0LjMzODcgNTEuNDcxNkMyMy4yMjYxIDUwLjk2MDQgMjIuMjAzOCA1MC4zNTkxIDIxLjM5MTkgNDkuNDI2OUMyMC43NjA1IDQ4LjcwNTIgMjAuNDI5NyA0Ny44OTM0IDIwLjQyOTcgNDYuOTMxMUMyMC40NTk4IDQ1LjU3OCAyMC40Mjk3IDQ0LjIyNDkgMjAuNDI5NyA0Mi44NzE4QzIwLjQy'@; put 'OTcgNDIuMzMwNSAyMC41MTk5IDQxLjgxOTMgMjAuODUwNyA0MS4zMDgyWiIgZmlsbD0iIzhFQzYzRiIvPgo8cGF0aCBkPSJNMjAuODgwNyAzMi4wMTY3QzIyLjQ3NDQgMzQuMTUxNiAyNC42OTk2IDM1LjA1MzcgMjcuMDc1IDM1LjY4NTJDMzIuNzU4MiAzNy4xODg2IDM4LjQ0MTMgMzcuMTU4'@; put 'NiA0NC4wNjQzIDM1LjQ3NDdDNDUuOTI4NiAzNC45MzM0IDQ3LjY3MjYgMzQuMTIxNiA0OS4wMjU4IDMyLjY0ODJDNDkuMjA2MiAzMi40Njc3IDQ5LjMyNjUgMzIuMDQ2OCA0OS41MzY5IDMyLjEwNjlDNDkuODM3NiAzMi4xOTcxIDQ5LjgzNzYgMzIuNjE4MSA0OS45Mjc4IDMyLjk0ODhDNTAu'@; put 'MDQ4MSAzMy40NiA0OS45ODggMzMuOTcxMiA0OS45ODggMzQuNDgyNEM0OS45ODggMzUuNTA0NyA0OS45NTc5IDM2LjQ5NyA0OS45ODggMzcuNTE5NEM1MC4wNDgxIDM4Ljc4MjMgNDkuNTM2OSAzOS43NzQ2IDQ4LjYwNDggNDAuNTg2NUM0Ny4xOTE1IDQxLjg0OTQgNDUuNDc3NiA0Mi42MDEx'@; put 'IDQzLjY0MzMgNDMuMDgyMkMzNy40NzkxIDQ0LjczNjEgMzEuMzQ0OSA0NC43MDYgMjUuMzAwOSA0Mi42MDExQzIzLjgyNzUgNDIuMDkgMjIuNDc0NCA0MS4zNjgzIDIxLjM5MTkgNDAuMTk1NkMyMC43MzA0IDM5LjQ3MzkgMjAuMzk5NyAzOC42MzIgMjAuMzk5NyAzNy42Mzk3QzIwLjQyOTcg'@; put 'MzYuMzE2NiAyMC4zOTk3IDM0Ljk2MzUgMjAuMzk5NyAzMy42NDA0QzIwLjQyOTcgMzMuMDk5MiAyMC41MTk5IDMyLjU1NzkgMjAuODgwNyAzMi4wMTY3WiIgZmlsbD0iI0UwRTBFMCIvPgo8cGF0aCBkPSJNMjAuODIwNyAyMy4wODYxQzIxLjI3MTcgMjQuNDA5MSAyMi4zNTQyIDI1LjAxMDUg'@; put 'MjMuNDk2OSAyNS41NTE3QzI1LjU0MTYgMjYuNTE0IDI3LjczNjYgMjYuOTY1IDI5LjkzMTcgMjcuMjM1N0MzNC4yOTE4IDI3Ljc3NjkgMzguNjUxOSAyNy43MTY4IDQyLjk1MTggMjYuODE0N0M0NC42OTU4IDI2LjQ1MzkgNDYuMzc5NyAyNS45NzI3IDQ3LjkxMzIgMjUuMDEwNUM0OC43ODUz'@; put 'IDI0LjQ2OTMgNDkuMjM2MyAyMy45NTgxIDQ5LjUzNyAyMy4xMTYxQzQ5LjgzNzcgMjMuNTM3MSA0OS45Mjc5IDIzLjk4ODIgNDkuOTI3OSAyNC40MzkyQzQ5LjkyNzkgMjUuOTQyNyA0OS45NTggMjcuNDE2MSA0OS45Mjc5IDI4LjkxOTVDNDkuODk3OCAzMC4xODI1IDQ5LjE3NjIgMzEuMDg0'@; put 'NSA0OC4yNDQgMzEuODM2M0M0Ni41IDMzLjIxOTUgNDQuNDU1MyAzMy45NDExIDQyLjMyMDMgMzQuNDIyM0MzNi42NjczIDM1LjY1NTEgMzEuMDc0NCAzNS41NjQ5IDI1LjU3MTcgMzMuNzAwNkMyNC4xMjgzIDMzLjIxOTUgMjIuNzQ1MSAzMi41Mjc5IDIxLjYzMjYgMzEuNDQ1NEMyMC43OTA2'@; put 'IDMwLjYzMzUgMjAuMzM5NiAyOS43MDE0IDIwLjM2OTYgMjguNDk4NkMyMC4zOTk3IDI3LjIwNTYgMjAuMzY5NiAyNS45MTI2IDIwLjM2OTYgMjQuNjE5NkMyMC40Mjk4IDI0LjA0ODMgMjAuNTIgMjMuNTY3MiAyMC44MjA3IDIzLjA4NjFaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik01'@; put 'NS4zNDAzIDYzLjQzOTNDNjAuMjQxNyA2My43MDk5IDYyLjg1NzcgNTcuNjk2IDU5LjMwOTUgNTQuMjk4MUM1NS41ODA5IDUwLjcxOTkgNDkuNDQ2NyA1NC4wNTc2IDUwLjQwOSA1OS4xMDkzQzI4LjI0NzggNzMuMjQxOSAtMC4yNTgwMzQgNTIuMTAzMSA3Ljg2MDcxIDI2LjQyMzhMMi4zODgw'@; put 'OCAyMi43NTUzQy05LjkxMDMzIDU1LjQ0MDggMjcuOTQ3MSA4My4wNzQ2IDU1LjM0MDMgNjMuNDM5M1pNNTMuNzc2NyA1Ni4zNzI5QzU2LjA2MiA1My45OTc0IDU5LjcwMDQgNTcuMzA1MSA1Ny41NjU1IDU5LjgwMDlDNTUuMzEwMyA2Mi40MTY5IDUxLjM0MTEgNTguODk4OCA1My43NzY3IDU2'@; put 'LjM3MjlaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik0xMC42MjcyIDE1LjI2ODFDMTQuMTQ1MyAxOC42MzU4IDE5Ljk0ODcgMTUuODY5NCAxOS42MTc5IDExLjA1ODNDNDEuNzQ5IC0zLjE5NDYxIDcwLjQwNTIgMTcuOTE0MiA2Mi4yODY1IDQzLjY4MzZMNjcuNzU5MSA0Ny4zNTIxQzc5'@; put 'LjY5NjcgMTUuNTk4OCA0My40NjMgLTEyLjk5NzIgMTUuNDM4MyA2LjIxNzE1QzEwLjE3NjEgNS4xMzQ2NSA2Ljc3ODI3IDExLjU2OTUgMTAuNjI3MiAxNS4yNjgxWk0xNi4xNTk5IDEzLjE5MzNDMTMuODE0NSAxNS42Mjg5IDEwLjExNiAxMi4wODA3IDEyLjQ2MTQgOS42NDUwN0MxNC44MDY4'@; put 'IDcuMjA5NDQgMTguNTA1NCAxMC43NTc2IDE2LjE1OTkgMTMuMTkzM1oiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDFfOCI+CjxyZWN0IHdpZHRoPSI3MCIgaGVpZ2h0PSI3MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8'@; put 'L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=favicon.ico; filename filecode temp lrecl=96132; data _null_; file filecode; put 'iVBORw0KGgoAAAANSUhEUgAAApgAAAJ6CAYAAACMvTJAAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CFOnSe0c62AhJgFAiJAQVO7Ko4FpQEQFR0RUQRdcCyKIidmUR7P1hQWVlXSzYUHmTArq+dt49Z/75cufeO9+d3JkzA4CiNSsnJwtVAiCbnyeICvBmJiQmMUmP'@; put 'AAY0AB0YAiUWW5jjFRkZCqCM9X+XdzcAIu6vWopj/ev4fxVlDlfIBgCJhDiFI2RnQ3wYAFydnSPIA4DQBfUGc/NyxHgIYlUBJAgAERfjNClWF+MUKZ4ksYmJ8oHYEwAylcUSpAGgIObNzGenwTgKYo7WfA6PD3E1xO7sdBYH4nsQT8rOngOxIhli05Tv4qT9LWbKeEwWK20cS3ORCNmXJ8zJYs3/'@; put 'P5fjf0t2lmhsDn3YqOmCwChxznDd6jPnhIgxFeJ2fkp4BMQqEJ/ncST2YnwnXRQYK7MfZAt94JoBBgAo4LB8QyDWgpghyoz1kmFblkDiC+3RcF5eUIwMpwjmRMnio/n8rPBQWZyV6dygMVzDFfpFj9mk8vyDIIaVhh4uSI+Jl/JET+fz4sIhVoC4R5gZHSLzfVCQ7hM+ZiMQRYk5G0L8NlXgHyW1'@; put 'wdSzhWN5YVZslmQuWAuYZ156TKDUF0vgChNCxzhwuL5+Ug4Yh8uPlXHDYHV5R8l8i3OyImX2WA03KyBKus7YAWF+9JjvlTxYYNJ1wB5lsIIjZXO9y8mLjJFyw1EQCnyAL2ACEWwpYA7IALzuwZZB+Es64g9YQADSABdYyjRjHvGSET78RoMC8CdEXCAc9/OWjHJBPtR/GddKv5YgVTKaL/HIBE8h'@; put 'zsY1cXfcFQ+FX0/YbHEn3HnMj6k4NivRj+hLDCT6E83GebAh6yzYBID3b3QhsOfC7MRc+GM5fItHeEroJTwiXCf0EW6DOPBEEkVmNZtXKPiBOROEgT4YzV+WXcr32eHGkLU97o27Qf6QO87ANYElPgVm4oV7wNzsofZ7hqJxbt/W8sf5xKy/z0emVzBXsJexSBn/Z3zGrX6M4vPdGnFgH/KjJbYS'@; put 'O4Sdw05iF7B2rAUwsRNYK9aFHRPj8Up4IqmEsdmiJNwyYRzemI11o/WA9ecf5mbJ5hevlzCPOy9PvBl85uTMF/DS0vOYXvA05jKD+GyrSUxbaxsnAMRnu/ToeMOQnNkI4+I3XW4HAM4lUJn2TccyAODoUwDo777pDF7Dcl8HwLEetkiQL9WJj2NAABSgCHeFBtABBsAU5mMLHIAr8AR+IBhEgBiQ'@; put 'CGbBFU8H2ZDzXLAQLAPFoBSsA5tAJdgGdoJ6sA8cBC2gHZwEZ8El0AOug7uwLvrBCzAE3oERBEFICA2hIxqILmKEWCC2iBPijvghoUgUkogkI2kIHxEhC5HlSClShlQiO5AG5FfkKHISuYD0IreRh8gA8hr5hGIoFVVFtVFjdDLqhHqhIWgMOhNNQ3PRArQIXYNWoLXoXrQZPYleQq+jfegLdBgD'@; put 'mDzGwPQwS8wJ88EisCQsFRNgi7ESrByrxZqwNvg/X8X6sEHsI07E6TgTt4S1GYjH4mw8F1+Mr8Yr8Xq8GT+NX8Uf4kP4VwKNoEWwILgQgggJhDTCXEIxoZywm3CEcAbum37COyKRyCCaEB3hvkwkZhAXEFcTtxL3EzuIvcTHxGESiaRBsiC5kSJILFIeqZi0hbSXdIJ0hdRP+kCWJ+uSbcn+5CQy'@; put 'n1xILifvIR8nXyE/I4/IKckZybnIRchx5ObLrZXbJdcmd1muX26EokwxobhRYigZlGWUCkoT5QzlHuWNvLy8vryz/DR5nvxS+Qr5A/Ln5R/Kf6SqUM2pPtQZVBF1DbWO2kG9TX1Do9GMaZ60JFoebQ2tgXaK9oD2QYGuYKUQpMBRWKJQpdCscEXhpaKcopGil+IsxQLFcsVDipcVB5XklIyVfJRY'@; put 'SouVqpSOKt1UGlamK9soRyhnK69W3qN8Qfm5CknFWMVPhaNSpLJT5ZTKYzpGN6D70Nn05fRd9DP0flWiqolqkGqGaqnqPtVu1SE1FbUpanFq89Sq1I6p9TEwhjEjiJHFWMs4yLjB+DRBe4LXBO6EVROaJlyZ8F59orqnOle9RH2/+nX1TxpMDT+NTI31Gi0a9zVxTXPNaZpzNWs0z2gOTlSd6DqR'@; put 'PbFk4sGJd7RQLXOtKK0FWju1urSGtXW0A7RztLdon9Ie1GHoeOpk6GzUOa4zoEvXddfl6W7UPaH7B1ON6cXMYlYwTzOH9LT0AvVEejv0uvVG9E30Y/UL9ffr3zegGDgZpBpsNOg0GDLUNQwzXGjYaHjHSM7IySjdaLPROaP3xibG8cYrjFuMn5uomwSZFJg0mtwzpZl6mOaa1ppeMyOaOZllmm01'@; put '6zFHze3N082rzC9boBYOFjyLrRa9kwiTnCfxJ9VOumlJtfSyzLdstHxoxbAKtSq0arF6OdlwctLk9ZPPTf5qbW+dZb3L+q6Nik2wTaFNm81rW3Nbtm2V7TU7mp2/3RK7VrtXUyymcKfUTLllT7cPs19h32n/xcHRQeDQ5DDgaOiY7FjteNNJ1SnSabXTeWeCs7fzEud2548uDi55Lgdd/nK1dM10'@; put '3eP6fKrJVO7UXVMfu+m7sdx2uPW5M92T3be793noebA8aj0eeRp4cjx3ez7zMvPK8Nrr9dLb2lvgfcT7vY+LzyKfDl/MN8C3xLfbT8Uv1q/S74G/vn+af6P/UIB9wIKAjkBCYEjg+sCbQdpB7KCGoKFgx+BFwadDqCHRIZUhj0LNQwWhbWFoWHDYhrB74Ubh/PCWCBARFLEh4n6kSWRu5G/TiNMi'@; put 'p1VNexplE7Uw6lw0PXp29J7odzHeMWtj7saaxopiO+MU42bENcS9j/eNL4vvS5icsCjhUqJmIi+xNYmUFJe0O2l4ut/0TdP7Z9jPKJ5xY6bJzHkzL8zSnJU169hsxdms2YeSCcnxyXuSP7MiWLWs4ZSglOqUIbYPezP7BceTs5EzwHXjlnGfpbqllqU+T3NL25A2kO6RXp4+yPPhVfJeZQRmbMt4'@; put 'nxmRWZc5mhWftT+bnJ2cfZSvws/kn56jM2fenN4ci5zinL5cl9xNuUOCEMFuISKcKWzNU4XXnC6Rqegn0cN89/yq/A9z4+Yemqc8jz+va775/FXznxX4F/yyAF/AXtC5UG/hsoUPF3kt2rEYWZyyuHOJwZKiJf1LA5bWL6Msy1z2e6F1YVnh2+Xxy9uKtIuWFj3+KeCnxmKFYkHxzRWuK7atxFfy'@; put 'Vnavslu1ZdXXEk7JxVLr0vLSz6vZqy/+bPNzxc+ja1LXdK91WFuzjriOv+7Geo/19WXKZQVljzeEbWjeyNxYsvHtptmbLpRPKd+2mbJZtLmvIrSidYvhlnVbPlemV16v8q7aX61Vvar6/VbO1is1njVN27S3lW77tJ23/daOgB3Ntca15TuJO/N3Pt0Vt+vcL06/NOzW3F26+0sdv66vPqr+dINj'@; put 'Q8MerT1rG9FGUePA3hl7e/b57mttsmzasZ+xv/QAOCA68Mevyb/eOBhysPOQ06Gmw0aHq4/Qj5Q0I83zm4da0lv6WhNbe48GH+1sc2078pvVb3Xteu1Vx9SOrT1OOV50fPREwYnhjpyOwZNpJx93zu68eyrh1LXT0053nwk5c/6s/9lT57zOnTjvdr79gsuFoxedLrZccrjU3GXfdeR3+9+PdDt0'@; put 'N192vNza49zT1ju19/gVjysnr/pePXst6Nql6+HXe2/E3rh1c8bNvlucW89vZ91+dSf/zsjdpfcI90ruK90vf6D1oPYfZv/Y3+fQd+yh78OuR9GP7j5mP37xRPjkc3/RU9rT8me6zxqe2z5vH/Af6Plj+h/9L3JejAwW/6n8Z/VL05eH//L8q2soYaj/leDV6OvVbzTe1L2d8rZzOHL4wbvsdyPv'@; put 'Sz5ofKj/6PTx3Kf4T89G5n4mfa74Yval7WvI13uj2aOjOSwBS3IVwGBDU1MBeF0HAC0R3h16AKAoSN9eEkGk70UJAv8JS99nEnEAoM4TgNilAITCO0oNbEYQU2EvvnrHeALUzm68yUSYamcrjUWFLxjCh9HRN9oAkNoA+CIYHR3ZOjr6ZRckexuAjlzpm08sRHi/324mRt2XRobAD/JPCotuA2JA'@; put 'n4YAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y'@; put 'Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2NDwvZXhpZjpQaXhlbFhEaW1lbnNp'@; put 'b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MzQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KSHKtHgAAABxpRE9UAAAAAgAAAAAAAAE9AAAAKAAAAT0AAAE9AACKlRxL/UIAAEAASURB'@; put 'VHgB7L0HgNxmeqb5FVChIzuRTTZzzlESRUVSFCUqzIwmjyZnx71zWO96b89h7b31ede+27O9DjOe8eSo0USlURxpGESKYhBzzqFJdrNzqADg3g/FoppUk6zuQlWjUC+kZmXgx/OjUC++GFq25v2OcCEBEiABEiABEiABEiABjwiEKDA9IsnVkAAJkAAJkAAJkAAJuAQoMHkgkAAJkAAJkAAJkAAJ'@; put 'eEqAAtNTnFwZCZAACZAACZAACZAABSaPARIgARIgARIgARIgAU8JUGB6ipMrIwESIAESIAESIAESoMDkMUACJEACJEACJEACJOApAQpMT3FyZSRAAiRAAiRAAiRAAhSYPAZIgARIgARIgARIgAQ8JUCB6SlOrowESIAESIAESIAESIACk8cACZAACZAACZAACZCApwQoMD3FyZWRAAmQAAmQAAmQ'@; put 'AAlQYPIYIAESIAESIAESIAES8JQABaanOLkyEiABEiABEiABEiABCkweAyRAAiRAAiRAAiRAAp4SoMD0FCdXRgIkQAIkQAIkQAIkQIHJY4AESIAESIAESIAESMBTAhSYnuLkykiABEiABEiABEiABCgweQyQAAmQAAmQAAmQAAl4SoAC01OcXBkJkAAJkAAJkAAJkAAFJo8BEiABEiABEiABEiAB'@; put 'TwlQYHqKkysjARIgARIgARIgARKgwOQxQAIkQAIkQAIkQAIk4CkBCkxPcXJlJEACJEACJEACJEACFJg8BkiABAJBwHEcMc2QmGFbwtGQhCM27ockEnMkHBOJRHGL52OVtlRW2VJW5UhZpT7W53G/PCTRCkdC+O+GC162EiL9vY4k4yGJ9+OvRx+HpKcTt90hSeA5Ky6SSuI+3qvvTyUMsZL4DJ6z'@; put 'UrqFm2znhoPgiyRAAiTgbwIUmP6eH46OBEgAOiwCsRgpE4mVO64grKjCfQjDimo8rtDnRaJ4LVrmuILSjAhEo4hpiBhh/BkG/iDp8E9IHLHtNFbbdtw70KaiAhUvZbdgTFgdVog7+r/7l34yvQUR27Lxh1tszMF2kokQBCfEJv5SEKb9EKAJiNI4/vp7DOntdiBUcb/r8nN9+j5DUimIXt0AFxIg'@; put 'ARIoIgIUmEU0WRwqCQSVQCjkSLlaFGFBrKh1ZFSDI1U16fsV+jwEZQRWyDCskZGwIWYEMi6juSAKIeH0H1ckqk7URUXdFb145U76tYL9e3mMeuPeNdJPGHqL/43LAlXHo0N0LAeC0oYYtcVSyyj+etU62mVId4dIT7uBPzwHS2lPZ0iSeN1x0uvUdXAhARIgAb8QoMD0y0xwHCQQeAJqXRRYHW2p'@; put 'qheprrelpt6RStxW1YorLqNwU0diEJBwdeuiVkUHwtG1NEIwXjY8ptVYUHmltSesrek7KkYzQlRFqA2LZjKekr5uQ/p6HAhPU7pbRbouhaSzNS1A1U2fhBv+pu7+oDLkfpEACYw4AQrMEZ8CDoAEgkfAhFtahaRaIkc12lI7xpHqBkuqa+DOhkUyVhZ24yPThkeISFju1PLoCsmRsjYWyzRcNlhe'@; put 'EZ5m2hKq2Ky4Lf39DuJARbph6Wxvgei8gFv86WMVpY59eQXFsr8cJwmQQFESoMAsymnjoEnAHwTUwhhBvGNlLayREJH14yAqxzpSOxqJNDVIoIFFUt3Zqh4zlkiKyDzOnWpHuN3VABxCgpMbD4r7qbiFWE+Izg5HOi4Y0nbelLaLAvEJiydc7bZF0ZnHWeGqSaAkCVBgluS0c6dJYHgEDI2VRGJN'@; put 'TaMjDeNtaWiCoMT9asRLRitMJNVArMAsqRZJ5LjAJElz5PBIe/wpFZwqPDE/IVg89b4FV3tfry29bQ7EpiGtZwy51GxAgGrSEWM7PZ4Bro4ESo4ABWbJTTl3mASyJ2AY6tqGmISQHD0RgnICXN6Imyyv1jJABvQjxCSECvQkxWT2WP3zTgjO8GXRqZbPVMKCGx1WTrjW284ZcvEUROc5uNcvocQS'@; put 'Xev+mTeOhASKgAAFZhFMEodIAoUiYJrpDO6GCbY0TlFBaSMZR7O7w9AfaTe3pdnZapmkcbJQ01K47ailE4LTtXSmIxtgzbSksw1CExbOC8dD0noWVk4kFdmWW6ipcGPjlkiABIqKAAVmUU0XB0sC3hIIwUJZhfjJMRMdaZzqyGgIylGjYaGshB/VdXUjfk/FJF3d3oIvprUNtHIiL70PgrPrkrgu'@; put '9fPHDWk5bbgC1EHNTy4kQAIkkCFAgZkhwVsSKAkC6cLkGj85biqslPirHWMj49uE5QqSEiIhpVXIr9QDKgko3MmhEMBxEtaC9e41iNbptKTjvMgFuNObj4Wk5YyJgvHIVqeFeyhU+V4SCBwBCszATSl3iASuJqBWyuo6WCinODJ+puXGUlbVaXccLVmD0jZaIogWyquh8VH2BNTCibR1vUDRxCHN'@; put 'VG89G5LmI6ach0u9HQlEzFLPHiffSQJBIUCBGZSZ5H6QwAACZlhLBjkybrolTbNsqUctysoaFKeE21sLdWscJWMoBwDjXW8IZGI4VXAiaSgO6+YlZKU3Q2g2HzZh3Uz3aUekpzfb41pIgAR8S4AC07dTw4GRwNAIRNFGsX6CJRNm2tI0A7UoUT6orNx0M73VskQr5dB48t0eEBhg3Uyh/WUnug2p'@; put 'G/2Mis0T6l6H0GSrSw9AcxUk4D8CFJj+mxOOiASyIqBFzmNlIg0oHzRxliXjYamsGYNWi1HUMITrW3ta00qZFUq+qRAEoCU1O91AAXgLsb49bbacg8g8cwCudIhOt8sQxWYhZoLbIIGCEKDALAhmboQEvCNgRhwZo5bKOY4rLGsaL4tKTdDR6uZMrvAONteUNwIG3OgmxKbmlHWh2PuF4yKnDkJs'@; put 'InaztwebpdjMG3uumAQKQYACsxCUuQ0SyJGAgfqUdYipnDQbwnK2dtBBi8YyJOlQVOZIlh/3A4EQxKYmCmlocNclWDaPGXJ6ryHnjpuS6NMRMmbTD/PEMZDAUAhQYA6FFt9LAgUkoIXNq2odCEpLpsyH1XKSjXaMSNWl+7uAs8BNFZpAxrJpIcRDOwqdOWjIyX3oKoRC71aCQrPQ88HtkcBwCVBg'@; put 'DpccP0cCeSDgxlWWizRNs2TyAhtlhWypqjHh9XYQUwnzDssJ5YE6V+lLAtCSrtiEZTMZt6UFpY9O7Ydlc78p7RCejkWx6ct546BI4DIBCkweCiTgAwLqAteC51MX2jJhnpYVciQcNhBTCWnpNvr2wSA5BBIYKQLQkvp9EPzf3+Wg7JHI8V2mnD1sSH+vCk2KzZGaGm6XBK5HgALzemT4PAnkmYBa'@; put 'K8sqHNSpdGTGopQ0ThOpqEIcGuIqLSbr5Jk+V1+sBNxe6UgO0koJHS0O3OchObHHlEvokW7Rqlms08pxB5AABWYAJ5W75G8C2lmnZowjUxdZMnW+JbVjUboF5VtYq9Lf88bR+Y+Aljwy4UKP99pyHiWPju40ELMZln7NQqdV038TxhGVFAEKzJKabu7sSBIIwQ3eiESdOStSMnEmrJfV6SxwWitH'@; put 'cla47UAQ0ILul62a7RccOYEMdHWht51nT/RAzC93oigJUGAW5bRx0MVCwE3agRt84hxbZt1iSeNkR6IxxlYWy/xxnMVHIGPV7O9x5PiekBzZhtqap/RijnGaxTebHHExE6DALObZ49j9S0BLDNU4Mg1u8BnLbNSwRH5CyJBkEgGWLITu33njyAJDQGM1IxFD4nFLLsB9fnir6RZyj/fCeR6i2AzM'@; put 'RHNHfEuAAtO3U8OBFSMBrV1ZN9aWGbfYMm2hJdUNJmIrbbG1xBAXEiCBwhOAlowgA11LfV06J3L4LVOOvRWSng6kpDNOs/DzwS2WDAEKzJKZau5oPglo4s6YyYivvM2SSXNtZIObkoSwZImhfFLnuklgaARc9znEZmeL5cZoHt5uSPsFjdOkRXNoJPluErg5AQrMmzPiO0jgugS0fuW4GZbMXY4W'@; put 'jkjciZWjtV0S9VNYEP26zPgCCYw0AW1NqVbNnk5LTqJT0MHNprSgU5BjU2iO9Nxw+8EhQIEZnLnknhSQgAlhOXGOJXPusKVpqiXhSJjxlQXkz02RgCcEEKcZRZxmX68lZw+FZP8bYTl/3EAtWgpNT/hyJSVNgAKzpKefOz9UAmbYlsnoCz5vhSVjpkBYmhSWQ2XI95OA7whonGYUYS1ICDp7JCQH'@; put 'NoflDLoEUWj6bqY4oCIiQIFZRJPFoY4cgbSwtGXuClvGTnXcLFRN3mFG+MjNCbdMAp4TUKEZMSWVTKEdZVj2bwrJ6QNI1KNF03PUXGHwCVBgBn+OuYc5EDBNWyaiN/j8OwcIS42x5EICJBBcApeFpjZBaD4Wkn2vG3IKQpMWzeBOOffMewIUmN4z5RoDQECTdybOtGT+PbaMmwaLpbZypLAMwMxy'@; put 'F0hgCAQgNMOwaFpWSs4dMmXvJkPOHqbQHAJBvrWECVBglvDkc9ffSUDbOTZNsWXePSlkhdtu8k6KxdHfCYrPkEApEbgsNNV1fvqQIfs3huUckoHYHaiUDgLu61AJUGAOlRjfH0gCBupY1jfZsuDelEyeq+0cEfBPYRnIueZOkcCwCVx2nSeQDHTqQEj2rtfyRrBosrzRsJHyg8ElQIEZ3LnlnmVB'@; put 'QDvGVY+GsLwrJdOWoEB6BepYJtjOMQt0fAsJlC4BnDeiyDrv67FRsF1kz+th6WDB9tI9HrjngxKgwBwUC58MPgFHyqscmYNyQ3NQJL26lgXSgz/n3EMS8JjA5Tqa3SjYfuhNuM5RR7OnHeqTLSg9Bs3VFSMBCsxinDWOOScCkYgjU5elZCEywxuaDLZ0zIkmP0wCJJDpDNR20ZZ9KG10ZFtY+ntD'@; put 'bjkz0iGBUiVAgVmqM1+C+62Z4ePR1nHRKiTyTLPdbo52yilBEtxlEiCBfBAw0ILSRAvKCydt2bXOlFP7kIGeUosmFxIoPQIUmKU35yW3x6GQIzWNtixamZRpC1F2BLFTKY2z5EICJEACeSBgov2kbdtyen9Idr8Wlovoc85EoDyA5ip9TYAC09fTw8HlQsBxHKmoEpm9IiXz7rCkahQTeHLhyc+S'@; put 'AAkMgQAMl9oVqK/PkiNbDdm70ZSuNgMroEVzCBT51iImQIFZxJPHoV+fgBl2ZPI8SxbfZ8no8Yak0JHDsegOvz4xvkICJJAXApcTgdouWrJnvSFHtkckmaDIzAtrrtRXBCgwfTUdHEyuBNQdXj/OlsWrbZk83xIjZCAGiq0dc+XKz5MACeRGQOMz9e/sEZGdvzJZqD03nPx0ERCgwCyCSeIQb05A'@; put '3eFllSJz1R1+J93hNyfGd5AACYwEAY0B10Lth+E2370+LN1tas2kRXMk5oLbzC8BCsz88uXaC0DAzQ5HW8clq1Mybgrd4QVAzk2QAAnkQgChmFHEZ7Zd0GxzuM13hMVKUmTmgpSf9R8BCkz/zQlHlDUBR6rqHJQdSsmspbaYUbjDk3SHZ42PbyQBEhhRAuoy125iJw/Abf5KBG0nQ+I4FJojOinc'@; put 'uGcEKDA9Q8kVFZKAGbZl6mJYLZHEUz/WcF1OwhyeQk4Bt0UCJOARgXAM2eZdlux93ZR9aDuZ6KPI9AgtVzOCBCgwRxA+Nz10Anq1XzPGkqX3Q2AugrUSotJmdvjQQfITJEACviKg3YDCpoHkH1t2vBRmEpCvZoeDGQ4BCszhUONnRoSAiRaPs27RTjwpqalnTcsRmQRulARIIK8EwijSHo/bcvAN'@; put 'Q/agG1BPl8GWk3klzpXniwAFZr7Icr2eEXBLD421ZemDFmpbwmhpO7RaekaXKyIBEvAdgcu1M5vRcnL7iyhpdNTEOY9uc9/NEwd0QwIUmDfEwxe9IKACMYzC52ZYxIg6KMiRPlGqUEyhT6+N7Ekrpd7ud55ATbx/1rIUYi1TSOgJSxLlPbiQAAmQQCkQ0JaTyYQjBzZnrJmaFPTO82QpsOA+Fh8B'@; put 'CszimzMfj9iRylr0/R5tS22j9v9Glne1LVG0aywrg7iEiztk4A/Fz1VLhhBCaaHDTjIBl1CfSH9XSLo6DOlqEem4COGJ1xfcjVjL+bBYYq/ZicfHU8+hkQAJ5IfAZWvmeVgzt72I2Myj6GtOa2Z+WHOtnhKgwPQUZ+mtLFpmy+iJtjTNsGTsFJFRDSh4XoVg9bD23H3bne0meOMf93YAJvdaXPUm'@; put '7hiGxhrph0SSKQslh9DLN3a5E8+1HxywDt4lgaESuMoIdPmBeyzqiq7cuclaBx7PKPR/ZRn4/JUneYcEciOg1sxEwpYDGw3ZtT4i8d5sD9TctstPk8BwCVBgDpdcCX/OMEUap6RkynxbJs52pLpeRAPTNZs7pRndcH3nurg60/0n1zXx80En4P7MwsqjC65R8A9a8qlKTBvK3edV/zn6HyIsbJjG'@; put 'bbQPtS0cs3jBsWEtx3Fr41at5LbWIbzJIaxGeC3w795ie2qZN3S7JuqxYhAGLrBC+J5oOEh6fFilrlPH4W7THVD6q6KPb7I9dyf4DwngGIvgXHv2iCNbnzel5TSOYRy3XEjAjwQoMP04Kz4dU7TclikLLZl9K6yW421YFxETicLmdF37dMICMqy0QIN4U8GoVu6McIQosyAWk8i41RjeOGoHpuIh'@; put '3DrS3yuoJYjQix48j+cSsPYk+/FcHJ9BSEYqhYuhBGJ/ITjVUu4gBsO9LsI67SzCfF2LOwSkKkYznB6bhoBEEGdsRnDBFcNfFBb4Mlj08RetwB/CRGIVCBep1Pvpx5EY4pNjKhqwDl0PVuxqTR2PCmGNDdGteHDRll4T/w0CAW032d9tyVu/NhGfaeJYxpeCCwn4jAAFps8mxI/DiZZZKA9ky5wV'@; put 'ttShqLmNHzsLFqCbWXn8uC8ck38JuJ5qWGhMtQhqhxNXQDoQhRCREId9PRCOiNPt6dA/Q3o7Q9Lbhdjd7hAEZVpAppAwZkNspmMt/Luvhlo8kfgWU6FZrqJTpHwUYpjxV1GTvtX7KkzLIEo1VCQMAeooJFcEqwUWd9L/+3dHObK8EdDviH5XTuwTWDPD0n4RIhPHAxcS8AsBCky/zIQPx6Fuv2mL'@; put 'LVm80paG8WrtUdciz2A+nKqiGlLGZayu5BBEU0ZIxvtTEodY7IFw7LhgSMclke4WU7rbVVymrZBqqfS7ePRqMtRiG47ZUo4kuSokz2kC3Sgk0FXX6WMbVRVgES2DyID1U5lk3P9q7aTL3atZ8P96IugC1H7Rkm0vmHJyH3qaozIHFxLwAwEKTD/Mgu/G4Ej9OFtueTAlk7TuJMZnJyksfTdNRTCg'@; put 'a8WkKp8UEhXUha2WyI6WkLRdCEknqgZ0tqhVEglecYMC6SZzayL+s0ItnhCdtWNQsWEc/hosiE9YPKu1aoOJUAKITjgaUrgwFFg7+Q2+CdQiflljfh3EU+zdZMquX6HtJC7IWM6oiCc0IEOnwAzIRHq1GyHDlnl32LL4viR+wMKIacsiIM2rjXM9RU/AFZSXW95p/VONdezvtaX7kiFtEJGtZwxp'@; put 'P49yVK1wa+NH0GK5FQ/nPO1uV+tmLRoT1EN06m3NaJEKiM4o3OyaAOVgTjR2VWt/UXR6iH+kV4UvXxSxmWeQAPTmLw0kAJm4UKM1c6SnpZS3T4FZyrM/YN/VvlGF2K/lj6ZkxmK1euAZjfHiQgI3IKA/X24smFuWynETbrphheyAiGyBmLx0FsKyGS7ubtNNqLnBqvhSPgjAYhxDfGdVHcJcmhxp'@; put 'QEmxBngnqhs07lNj+C7HVKuVk4IzHzNQ8HVqAlBvpy1bXzLk2A4YCRCXzIUERoIABeZIUPfbNmFpapxky13vs6RhgiZL0Grptynyy3jcn6rLFkoNntQMbo2RbD0bkgsnDdwidhLxk5rRzcWfBExkv1fUWq6Fc8zkdEUIbYxQVmWIaaqrFRZOCk5/Tl6WozLwHdXv5wG4zHfAZd6L5Di6zLOEx7d5'@; put 'RoAC0zOUxbkidWNORj3LOx9LIYsVLkvEx3EhgYEEtCyQCg+9TSEWt6fTkfZzITl33ICoRBzlRRMlgSgoBzIrpvuamF4Jt7paOMdMsWTMZEfqxtjIXtc5h4XTrRnKGM5imlN3rJjXjMt8y7Ome/FHl3nRzWJRD5gCs6inL7fBa5b4zFtTcsejlphRLe9Cl3huRIPxaVcqagZzGDFc+K+/N+VaJZsh'@; put 'KM8fxw/VGS0PRItIMGb7nXuhFk51qY+BV6NpOiycuK2qD0GspJOG1LqpyUNcioOAusy72y2UMorI8d3aGY0Xg8Uxc8U/SgrM4p/DYe2BistZt1ly57tR90UD/xlvOSyOQfmQ/uRkYiltCAi1UraeCsmZo6Y0Hwu55YLQvZNLCRKIlaeThZpm2DJuakrqmxC/WYEsdZg+U3pQMHbT90eFusy1g9Tu'@; put '9cgyfzWM2rIUmb6ftAAMkAIzAJM41F3IWC7veg9+HLR+HmKuuJQegbSoRNwdalFqUldXqy0X4fI+fcB04ym722mlLL2j4sZ7rO0xR9U7Mg6WzfGzYN2cYKM4PDoQIYQilaTYvDG9EX4VhoQIkvGO77Vly7Nh6URlB1TuH+FBcfNBJkCBGeTZHWTfNOZyygJb7v1gUgwUaKblchBIAX7KFZUaUwn3'@; put 't4rKbojKc8cMOX3QkIsn0vXzArz73DVPCaTrcI6basnEOY6MRfxmZQ36sFNsekrZ65VpYfbWs7Zsetp0Q14c9jL3GjHXd5kABWYpHQoQl2MnOXL/J+MoXaLB+7RclsL0uzaKyzGV6v7uaHPkAuIpT+6FqDxJUVkKx0Ah9rGyxpax0yyZNEBsapKQRTd6IfAPaRtmxEAdWlveRPefI1vDaP9LS+aQ'@; put 'APLNWRGgwMwKU/G/SZM1RiFTdM2nU1LXxGzx4p/Rm++BZgebl+tTakzlRZQROr43JM2Iq+zthOLkQgJ5IqDF3sfPdCA2kzJ6CiydVZowph3BkCCUp21ytUMjoDHX2jJr16uGvPVahMk/Q8PHd2dBgAIzC0hBeEsk4sg9H0rI9KUG61wGYUKvsw9qhwjBRWmERRL9trSeFjm535BT6FHc2UpReR1s'@; put 'fDpPBDQkR/unT5pny+R5joxusiVcpt4TaBvNRs/TdrnaLAnghBFBlvnhbSJvPIMLz27GXWdJjm/LggAFZhaQiv0tIdOWBXdZcvu7UMeQrR+LfToHHX/GWmkjYauzzZYz+005tgexVqdZlmRQYHyy4ARMXOSOmaB1d5Myaa4j1Sh9pNnNllo1qTQLPh8DNxhB7/rmo7Zs+ElE2tHSFZepA1/mfRIY'@; put 'FgEKzGFhK6IPwYIwZoIlD34uhStVZowX0czddKjuzwAyQzVZK9HjyPlTgjp3ppsF3oc6lVxIwK8EyqscmTgrJVMWatwm2lmWw6qJJHRaNUduxsJI/ulssWT9T8Ny/miYon/kpiIwW6bADMxUDr4jkZgtqz+eRJYnyojQejk4pCJ7VqWjgSB9/QXoanfkNKyVR3cY0oI2jbZFYVlk01nSwzVwAVyH'@; put 'UkfTITQnzUvJqAaEd+CiyUL3IFo1C39o6MVqsldkMzr/HN1hMvmn8FMQqC1SYAZqOq/eGa13Oef2FHqMj6xr3LW0wRWmrQa1OPOVnrj4BdGOIDZu1bXLgKyr5+/aR2k3eLq8UOsZR47tNOUEMsF72hlbeS0rPi4+AuXVSAqabcm0pZY0TtbYwLTQZCH3ws6lm/yD8/FbSP7ZieQfXrQWln+QtkaB'@; put 'GaTZHLAvmjVejbIhj/xGQirqDHEKXJJIxZDGV2kP6wQsp71d6GHdJRLvgTu3HyIT/0XLbYlWog9ytYi6zGJlKJeB2owpWC8oNtOT6Ypz6EcD2eCJXlvOomblkW2mnD0CS0OcwnLAIc+7ASGgsZpjJ1syY5lmoltSUYMMdD0lqFUzIPvo+93AiScCL8nezSJvPhfmucb3E+bPAVJg+nNech6Vdty4'@; put 'ZU1SlqyBEOlHcFOBFrVShiEq4wjcbzkpcuYQivmi1WBHiymJPtWNKpkGLhCWldodxIbVAnFZs21pQK3OCrSiS+oPCgRnKS5pYQkZDpHe22nLqQMhOYx6dRdP4ce2NJGU4mFQ0vusrQ3rxzkybbElUxdaUtOAbwXc5yx1VKDDQkUm4jKP77Ll9V9EpKdjgPepQEPgZoqbAAVmcc/fdUbvSM0YRx7+'@; put 'Yhw9g2G9VPdznhcVRG7xXojZ0/sMObAFYghFvG1YHoayqFu/fpwtM5ba+FFBTFY9+uZCrMKPPpTVFO17XWEJayXSsdDKzcHJPR0L1XaB1sqinVQOPGcClTXIPl+QkpmwajaMS3tH3OzznNfMFdyMgJthfsyWdU9GkATknqFu9hG+TgIuAQrMAB4Iar1ctiYlS9dI3q2XerpRo6QmnTQfdWT7S2Fp'@; put 'PmbmThXB/zWwas5HeaXpt8KVHkW5HRWaAV2Uo7rBVUZ3XLDlyM6wHNsRkq42D1gGlBl3q/QIxMrh5UAy0Jxb0Ad9CrwlmhCk9TRL4/pzxCZcM8zbmm1Z/yQMB2dwscse5iM2F8W0YQrMYpqtLMaqbqVR9Y489IW4VNZCsOTRxeyKS7hwraQjezaasvs1uLUT3lraQtBX49F+btnaFOKyUCQ+obVM'@; put 'sgBRJG95W1g6cqlZ5Og2Q44ieae3y1uORYKDwySBrAhEoojPnO3I7FuTMm6agXhBB0ITkecBOjdkBaKAbzJxkd+DGrsbfhqRs4fx20KRWUD6xbkpCszinLfrjjoE6+U8ZI7ficzxfMZeqjBy4wO7bdn8VERO7EHrmDwtmrBUhQxTFZmzb0FGvPrdi9yY6fKDxVLFcutZWw4hcefErrD0IQmKCwmQ'@; put 'QHYEwrgAHTsrKfOWO9I0UxNThCWOskM3rHe5ZYz6HNn48wjCdygyhwWxhD5EgRmwydYr+wc/l5CxU/LnUk6LS0O6ECO4Di6TC4i1LMQSiTmy8J6ULL7Pgi7DKIowLvOKsASwtnMQltvVFW5SWBbiAOI2AkvAxClonCs0YdmcEZKwCk26zvMy36EwEq0SjmxGdvmhNzXDnxfFeQEdgJVSYAZgEq/s'@; put 'Ar7nTXAnP/iZZLrTVx7cRa5Aglu865LIaz8KSwuymgu5hCO2zLvDklvWQmSqi6ZIfGLuKRgGyzCslpfOQ1hu1eSdMFzh7iuFRMhtkUBgCajQbJqZkrk4RzRNh9AMo8YuXeeez7dbKxO/L9teNGT3BnT9YYMHzxkHYYUUmEGYxcv7oMk9t61NyKL7EKuYh9JEaZEUkjg6Pbz6A4+SeYbBXy2Zi1al'@; put 'ZMkqxF1pzUyfL1q6yYSw7O2y5ehbpuxFvGp3G2MsfT5tHF4REzAhLLXkmZ4nxkxCTQZciGot4DxccxcxpRyHjgQrFfQ7Xg7JW1qQPcWL5RyJBu7jFJgBmtJYmSUPfTEp9eO1Vpz3p1I9fdhwTb/+c1MOb8tfzGU2UxKrsGXFuyyZdStiTX3aAjPdeQc1QeO2nNwVkj2vh+XSucJafLNhyfeQQFAJ'@; put 'RMscmb4UFs3bbZQ/Q0KihtWoRTOoO1zo/cKPQhgVRHb9GtbMFyIIS6DILPQU+Hl7FJh+np2hjA1lfRon2bIW8ZfaQcfrM6ieNkKwwh14QwUmApxGfEG2fIMjqz8BQT32cku5ER9TegCZLkY2Et5PHxbZs27krL0+QcJhkMCIEiivsmX2cr0gtd2C7W63MDg/KDQ9mBb8OLhdf14X2fJcRFJJikwP'@; put 'qAZiFRSYgZhGzei2ZeGdltz+Hu+zx93TBdwhbRcceenrUent9od7V0MCJs+zZeWH8xdzOpTDw+UEcW+A1cWTtuzeGJaTu7XYPE+4Q+HI95JAvgiMakAMN86TM2DVjKFbmK3dwqgyc8eNU5x2/dm/yZE3nmVrydyBBmMNFJjBmEe4KRy590MJmbbEkJTHLmOVR45hyIYfm3IEGc9+WlxX+buTMusW'@; put 'xJ16vN9D2U+NszTQIrPrki374Qo/iHqWiT5/CPGh7AffSwKlQGDMJEsWrrRkEmppmoj2YSKQN7OuXX8ObxWUMUJN5DjPf95QLd61UGAW79xdNfIyxCQ+8hsJGdWIgHYEs3u1uLY3WOTOHxd58ZuIsUn566QRQmjA2Cm23A9XebgMoy1w6SI3zhLCsr/fkWNvhWT3+jBEpr8YeXUscD0kECQCBs4d'@; put 'k+dbsuDelDSiiYPN+ExPptcVmdsui8x+ngs9gVqkK6HALNKJu3rY6N893pFH0XvcQI0yLwOLXIEJAfX6Tw05uHVkE3uu3ue3H8XKbbnjMe1THCqYFVO5uKU6oDDPHbaRRRlFq0yeTN+eFd4jgeIgEMX5Y/ZtllvaaFQd6gfTbZ7zxKnIPLLNkQ0/o7s8Z5hFvAIKzCKevMzQ1Yo3ZYElqz9uuW0b'@; put 'M8/neqsiyoGA0oLqv/xKFMXA/SmgDJQkmTTHklWPIxazAO3LXHc4Ep60Z7iWHDoM4Z1iiY5cDzd+ngRGlEDNGJQ1WpmSqQttiURRiYP1M3OaD4rMnPAF4sMUmAGYRk12WXhPUpY/Cgueh/Uv01Y6Qw7vcGT9kzHfktIad1V1jqz9VEJqkFGuPwz5WDLZ4cm4yBG4wzU7vJPu8Hyg5jpJYMQITJqL'@; put 'bmGrbGmcorGZ6ba0+TmjjNguFmzDaXe5g8ojYUnQXV4w7n7ZEAWmX2Yih3FoUeHbH0nK/Hu8F5haSXfTz0NyYIs/3eMZbNFyR5aDwdzbvXeTu2ECMN5qEs/FkyHZ/kpIzhz0N48MF96SAAkMnYC6zefekZL5K2wpH4WLVi3STpU5dJD4BEXmsLAF4kMUmAGYxnxlkKuwSsL1++I3TLl4yt+CykQW'@; put '/exbLcRi2ggT8K67jxsmgKDWODLCD2wOyT5kiMd5JR6Abw13gQRuTqBhvCVL70vJxHmGhEIoacQi7TeHNsg7IuUmzp+2bPqF1sn0Z6jVIMPmUzkSoMDMEaAfPq7i6sFPJ9CDFwXHE96IK1dY4Z+eDkH8ZUx6OvUZ/y4hw5GmGYhD/VjKLTviVaKTusW15/mR7SjT9DM/FJj37xxwZCQQRAImQpBm'@; put 'LLPQgjclo+qRbc4koGFNcxiJP26dzKcgMhmzPiyGxfYhCsxim7FBxhuOWvIIWkQ2TEif/AZ5y5CfcuWkFldvRoLPV6OS8HtNMyQ61Y+F0P5sQmKVGL1H5YpcgYn2mEd3hGT9T6JD5sgPkAAJBINAzWhLFt+fkukLQ6ggwd7mQ55VnJbDUVP2rNeOPyhyb9GSOWSGRfYBCswim7DBhhstt+ThL6Bl'@; put 'YlM6Vmiw9wz1ubTAFGk5HYLA1B6zfj8ZaOtIS9Z+JiWV9agF6lGiT8aCeQy9xNc9SYE51OOI7yeBIBHAmUVm3AKhiSLtNag5TGvmEGf3ssjc+Qp6l78chsh0f2mGuBK+vVgIUGAWy0zdYJz5FJitZ0Py3Ff8V2D9nTjSAvOhz6akoo4C8518+AwJkIBXBKrrbVn6QDJtzUR4DmMzh0BWRWbEkG0v'@; put 'iux8LUKROQR0xfZWCsxim7FBxps/gRmSjouOPPuvcJH7PrGFFsxBDg0+RQIkkCcCV6yZqzU2M31Ry0zzLGFDZJpmCH3LDdm7KQyBTktmluSK6m0UmEU1XYMPNl8CU6ty9HVrDGZMutp87iJHDGbDOEce+EweYjA1yectkQ0/8W8t0MGPDD5LAiSQbwJaoP2WB5MyZb6BhECtmwmLZr43GoT1I8Zf'@; put 'az9pjcwj2xGTaVNkBmFaB+4DBeZAGkV6Pxyx5aEvJNx+ul6X6LFwZfnSt01pPubvMkVXssg/jixyExPp0Rk+HYOJ7MctjrzxNGMwi/QrwmGTQF4JaC3iObdrbGZKyqohNFGgndbMmyPXdrsWGrCt+7EpJ/eYbsWOm3+K7ygWAhSYxTJTNxinlim6/xMJmTjHuzJFujm9ngxBrb3xnCN7N/hbXLl1'@; put 'MG9LyZ2PiaQS1g1oDe2ltMA0ZNevUWD9ZZYpGho9vpsESotA42RLbllrSdN0GDJZziiryTfCaI7R68jL3w/LeRgyKMyzwlYUb6LALIppuvEgzbAtd70/JbNvy0MnH/TcPrHbkVe/72/3sHbeWPHuJIqtG5KMeyswbduQN5833CLrN54JvkoCJFDqBMoqHFl8XxIWTUdMXJM62gWo1KHcZP9NJP30'@; put 'tNnyyncj0nIO4VgIS+JS/AQoMIt/DtHC0JFb1iRlyQMQmH0eiiuw0RNjb6fIc/8WlZ52f8Zh6ul7VH06/rKmwdte5GrBTCZM2fjTkBzf4+8wgQAcytwFEggMgelLUrLsAQvnJu1pjrMUVeYN59aMGnLprCO/+m5YOi6hc5LrQ7vhR/iizwlQYPp8grIZnsYfzkKbxHs+6EjKQ+udbjvjJt/8TLpN'@; put 'YjbjKfR7NP5p6iLd/xRin7zduu5/b6/Iq9+NysXT/hTY3u4x10YCJOAVgbqxttz2CFpNzoLItBGX6U2jNa+G57v1hGOmnDtky69+GJH+bp5vfTdBQxwQBeYQgfnx7WplGzvNkgeRQe31VZ8KLMH3XAuuP/81f/aRjVU6svKDCZmEfsGexl9i121kp3deMOSFb0alr8ul4cdDgGMiARLwKYFIzJYl'@; put '91sy73Y77TJnP/MbzlQELSWPbLdlw0+jCHfiOfeGsHz+IgWmzycom+G5LuJaWx75rYSUVyGD0aM2iZlt61fcMQy4iQ05vM1fbmIND5g4x5b7HkcqojvQzKhzv1XhrijPHRZ5+btltD7kjpRrIIGSJTBjqSXLHkxIdQ1a+mopI7rMr3ssqMjc/ZojW55nIfbrQiqCFygwi2CSshmilip68DNJGTfD'@; put '20xy3bar26C22lF0/UXEYvb1+sd1UV5ly6rHUzJ+BrLHk976n1RgOo4m94Rkyy+ZQZ7Nccj3kAAJXJ9Aw3hL7niXJWOm4dzCLPPrg8K5N4wE0zeeDcme11mI/fqg/P0KBaa/5yfr0bmJPmhdtmSNt4k+mQGoyDTwhd+9AVeVz/ojozwctWXeHYhxethGLTVvxaXutwpMK2nKhp8bcmynFtfkQgIk'@; put 'QAK5ESivcuTWB1Poaa4mTC3Mnk6mzG2twft0CIXY1Rv36x+H5cQu1sgsxhmmwCzGWRtkzCHECk6cY8n9n7TcvriDvCXnp1RwpZBEs+7JMIrijqyr3EBi09jplqx+3JJIOU7QiGvyclFB7YBpT1tIXvhWVLpa/WO19XI/uS4SIIHCE9DEzPl3oTA7yhnFyrQwuwY6cbmWgNbI7O9B0s93Y3L+JM7K'@; put 'LF90LSJfP6bA9PX0ZD84BwE9laMcefS34lJZmz5hZf/p7N6poktwVdndgbqYyKpu1XplI7FA+NWORtzlR1NS16SdIPJjvdST2ckDIq99P4pYTHfvR2JvuU0SIIGAEpg8z5LbHk1KTR0MmWrJpMp8x0xr+aL2Zlte/nYU5Ys0jZXn4ndA8ukTFJg+nZjhDEvL9dz5GAr8rvC24PrAsehXOwRvcds5'@; put 'kVd+UHjLnpvQVOPI3R/WuMuQp1njV+0ndtS2UGD9BS3PxPjLgWx4nwRIwDsC9eNtxGUmpXEqXMJsMTkoWC1fdOZAunxRwkc5AIMOlk9eIUCBeQVF8d9RN/mkuSlZrW7yVP72xxWZcF20nhH59RMR6WgplCXTkaoanIzfl5IpKEnkZceed9BS9zgKy7/4rYh0Fmz/3jEKPkECJFACBCqqHVkOkTlt'@; put 'gVox2cd8sCnXzPK9G2wk/kTFStGKORgjvz1Hgem3GclxPLEKWx76XELqx6OjDVqU5WvRr7eB9l7t523Z+POInD+e5yQYCL66RojLxyzXcplPcZnOHg/Jsd0hWfcjf/dgz9f8cr0kQAKFJRCGB2oJkn8WrHDgJWLyzzvo40dHW0puedqQPZuQ9GNRZL6Dkc+eoMD02YTkOhzNJl9wT0pufxQtDvs9'@; put 'bmtzzeD06x0yQxJHp5vtr5hycLOZl1hF3afxsyxZjo4YdY1m3tzimd1TgZlE9vj6Hxlycn+ehXNmo7wlARIoeQIaS6/JP8vWpCQaS2dR589MUHy4NbNcDSevPmHK6f0oX8TYeF9PIgWmr6dn6IPTGMWaelse/iKKro/KT7LPwFG515D40odMQ07stuWtVyJyqdkbl7nuSwVKeiy4OyVz7rQliqtX'@; put 'C7Xj8rm41kts4PzxEILK/dm5KJ/7z3WTAAmMPIGpC1NoMWlJFRI3NfGHyT9vz4lmlne3O27ST1uza+Z4+0Xe8xUBCkxfTYc3g1GL37I1SVmqNTHzbMXMjFi/5uq+6Oly0OZLO/6Y0o4Wi8NZ9Cq+rMKRKYttmb/CkoYmxFuqsPS4Q9FgY1OBaVumbHo6JIe2jmwppsHGx+dIgARKg8DYqZabtFk7'@; put 'BpZMnBMpMt+ed7dn+REk/XwPPct7hvc78/baeC9fBCgw80V2BNebtmI6sGLGC2LFzOxq2poJoYmC7D2djpw7EoJV05ALJw3p6775SSActqWmEYlK82yZutCS+rFoqYazaj5jSTNj19u3rZfIkEcZpmT85mMe+HneJwESIAEvCdQi7vzO9yZk7FT1RjH5ZyBbTfrZ97otm59m0s9ALn66T4Hpp9nw'@; put 'cCxqxVy4MinLHy6cFTMz/IzQDEdM16Xd02FLx0VDLp0LSRcys/s6ULBdswDxv1oqK5EZXoOr9PpxKRk1Wp8Lu20fbY+Lp2fGd71bFZippCGvo3PP0Z20Xl6PE58nARIoHAGtb3zH+xIyeTbiD1Esk5bMy+xxvlZjxuanUEpuM+IxbTzBxVcEKDB9NR3eDqa8yhLtT94wAbGLeShGns1o3a88EoFM'@; put 'xGkauNWAdW3/lWlboaLObQmG522M0RrwWjbr9+o9Og5VvCf2oVPRE7giZoaiV2i5HhIggRwJxModuf3daC+5BP4piswrNPW3I5VAPOZ30pVMKL6voPHFHQpMX0xDfgahdTG1U8R9H0VdTFV0qu64vIOAaktNRuzvFjem5+JpZo6/AxKfIAESGFEC4YgttzyclHnLNXQH53Sez935cDv9nLNQsxiN'@; put 'P+AhY6efET1Mr9o4BeZVOIL3QLv7rHg3Tkp3Ft5VXiw03dhLx0SpJUd2vca6l8UybxwnCZQaAQM9zJfej1qZKx107WWtzMz8azzmke22rPsxvE9J1x2VeYm3I0iAAnME4Rdi05p9WFVrywOfTko9srFHylVeiH0dzjZccYl/zh5Cz3G0vkwmeHIaDkd+hgRIoHAEFt+XlCWrIDKRGCn4n8ZMEc0s'@; put '3/KsyO4NiMdkiFPhDsYbbIkC8wZwgvKSiqix0xCP+cmkGFHtd8vTkc6tKyXhbepsDcmr349I23lmjQflmOd+kEDQCWh94KWrUxBW2FOKTLSWAwa0SH75e2FpPqxF2IN+BPh//ygw/T9HnowwBNfK3Nu1rpqNDG6ejTLiMtlnyIZfaJF4Zo17cqBxJSRAAgUjMHdFSm590JJwGdQUGreVuqbSWszt'@; put 'zZfjMdsQj6nWFS4jRoACc8TQF37DWrrotoeSsmgV4zH1vGPbhux4OSS71kUKPxncIgmQAAl4QGDO7SoyUxIp05Oam87pwVqLdxUaj3l4q8j6n2iZPHqlRnImKTBHkv4IbDuCTMS7PpCSmbeUrshMX9Qasvf1kLz5HFwpaWf5CMwGN0kCJEACuROYudSSWx9NSlk5RabS1MzyTfBM7d9ssj5m7ofX'@; put 'sNdAgTlsdMX7wRiKm9/zwbhMXWRKsg9+lRJaXHEZMuTgmyJbnkGvcS34zoUESIAEipzADIjM2ygy3VkMoeZyot+Wl74ZlYunYcXUOnRcCk6AArPgyEd+g5pZXlntyL0fTMnEBbBklojIzIjLA2868uYzUYrLkT8UOQISIAEPCajIXA6RGaMlU8KwYjYftVGEPSpxxNpzKTwBCszCM/fNFssqtM9t'@; put 'SqYvhciMBzdC3L121fMLYi73bArJjhfRipKWS98chxwICZCAdwRmL08i1t6WSAwpPyWezxkpN2XnKyJbcc63WbrIu4MsyzVRYGYJKqhvi8RsWf4ICrHfYUhS20lqq8YALSouQ2G4S/pCsvNVCMz1iMlhzGWAZpi7QgIkcC2B2Uj8Wb4W2eWlLjLxA6C/Aa+gdNHpAzj301V+7aGS18cUmHnFWxwr'@; put '1+4QC1ehptp9Fgr3hlBLLBgiU13i2v+8sxVXsC+F5fhOtoAsjiOSoyQBEsiVwLw7U3LLAxCZ0dK2ZBooXdRxwZEXvhGWbpYuyvWwGtLnKTCHhCu4b9a+5VPmw5r5rqRUN5iS6i/e5B+9YtWiuyEDMTiHHXkDmeKXmikug3v0cs9IgAQGI7BoJTr+rEZWtVnavcu1dNH+zQ4yyyMoXeT+QgyGi895'@; put 'TIAC02Ogxb06R2pGO67LfMoCwy3IXmxdf9JWS0P6ey3Z97oJl3gY7R8Z4F3cxyVHTwIkMFwCy9YkZNFKXHCjd3nJdrdRTYmfgQ1PhuUoPFmOTZE53ONpKJ+jwBwKrRJ5rxlG158Vliy6NylVdWFJFEECkJ4uNNZS/zt7xJEdr4Tl/HFaLUvkkOVukgAJXIeAeqdueyQl8+/Q0KfSFZka/tVzyZbn'@; put 'vxaTjrb0b8V1kPFpjwhQYHoEMnirgTVzjCOL0et2+gJLzBgyrxP+yzR3hSXiLA0jJK3NNoqnm3JsO7PEg3c8co9IgASGSyAMo8GK9yTRYANrcEpXZKqr/BDK1G34aZhdfoZ7MA3hcxSYQ4BVim/Vq9+maZYsXGlJ0wyRMAKmkz4QmpkEHu01237RQmuwiBzaZkpfN10fpXiccp9JgARuTEArhtzz'@; put 'vqRMXghfsVOiMZn4eTDg2Fr3o4gc22mgXTB/L2581OT2KgVmbvxK5tMqNCfMsmT27ZaMn25LWRWshChrVMiMc/dUAGtlOJyOD209I3J0uylHdyPmsptxliVzMHJHSYAEhkWgrMqWVR+GsQDncG24UYoxma6rvB2u8q/SVT6sg2gIH6LAHAIsvhUEIDRHN9kybYktk+ZYSAoKiQmrppWyxbIQ4+Nx'@; put 'hSO1VGrbL9PUq01HutstaT4CNzhEZfNRCM0khSWPSxIgARLIlsCoBlvuezwpdeP0E6UpMtVVfnCLIxt/Rld5tsfNcN5HgTkcavyMSyBaZsvYqRYsm46MnWbLqDpHohVht7CtWjZtXB6rKMxGdLrWSRWTiKXUP42p1Of6+1LS0x5y+8meOWzKeYjK3i733ZwFEiABEiCBYRAYM9GSe2DJHFWvzTWy'@; put 'OkUPYys+/oj7WyPy6ydMOb4rzALseZoqCsw8gS211ZphW2qRFNQwERbOCZogZEtljQXBaUg0elkwuuLxajKIN0c4kCOWbUsi4UiyV2ClDElHiyGXzhnSciYkXbifiFNUXk2OjwYSMFDzNAwrNy5RUI5FZHRDndy+dKHMnzVDImHt3uSxaX3gxod5Xy+++uNxaWvvlIuX2uVSe4f719HZJV3dvdLb'@; put '1y/JVGqYa+fHSODGBCbMSSEmMyWxKnxncCz67xty4/Hn+mq6ALstL349Kl34zdF4fi7eEqDA9JYn13aFAKyZZSLlVY7EKhGzWRnCYwdJQmqlvPwmCMsEit4m+0TiPSE3QaevN4Qi76GSO9ldwcY7VwhEI2EpLyuTyspyqa6skKqKChlVXSU1+jeqSirdx5VSWV4uFeVlUlYWc+PK9ODR12trRiG0'@; put 'wt+lqvRHTf/S8XC4wEomXdHZB3HZ1dMrnV09V4Rna1uHtLa1u4K0HSK0o6tb+vrj8BLgKo0LCQyDwOzbknLHY9o8N23GLDWRqa7yXevQ6Q3NOCz2Kh/GEXTjj1Bg3pgPXyUBEsgDARVV5RCEVRCOdRCC9bU1Mrq+VhrqavBXi/t1MqqqQioqyt33RSMRicViCJ1IX53orYqyjLjK3Opzum7L0ixZ'@; put 'jS8rrp9MHbsuun96X28z9zP7k0gkICz7pfuyAG3r6JQWWEBbLrXJxdY2aYEIVSGqVlAK0DwcvAFb5a1rE7J4FTzliKMvrm+LBxOhXzdo6xe/G0bXN3WVe7BOruIKAQrMKyh4hwRIwEsCGRFZW1Mto+vqZFxjgzSNHSONcF+Paah3LZGjqiulDMIxIx71MyoWM38qqgaKRy/HV6zrGihC1UKrj/U2'@; put 'I0DjcLurAO3p7RMVn2r5PH+xVc5daHFvVYy2dXTABU/rZ7EeA16O2zRtuftDSZmxBImUSVyYebnyIliXGTXQlMOWl78VlXhfxr1WBAMvgiFSYBbBJHGIJOB3AmWxqGt5HNc4WiY2jXX/xo8bA2FZ67q1K2GJjMAKqWIoIxoHWhn1OS7eEFDGmb+MAM1YfJV5b1+fdHR2w9XeIc0trdJ8oVVOnjmH'@; put '2xbXEtoJ17sm6HEpHQLlFbas/lRSGicjJh4JmqU2+2G4yrc866C1cERsuso9O/ApMD1DyRWRQPAJqHDReMfG0fUyeUKTTJ3YJFMmjod1crTUw9VdVVWJOqXqakq7p1NIUsncp4j0x/Ghc6iCU8Vnxv2uVmIVnl0Qly2weJ5tviAnIDpVeJ7BfbWCJhJJf+wAR5EXAnWNttz/qbhU1cKKV2JJP1q5'@; put 'JN6L2phfj0lbs/rNmfDjxUFGgekFRa6DBAJKQOuPumJyfJPMnj5Fpk+ZKBOaGiEma9z4SBUoKk7UMpZxawcUReB3KyM8M+JTH+sFQndPj7S0tsups81y7NQZOXryNIRnsys6dd65BIfARGSWr/xQSsIxSCyYMUvJkqkJP4e3ObL+J0j4YX1lTw5qCkxPMHIlJBAMAhoPqa7tGRCSc2ZMdW/Hjhnt'@; put 'urnVMqkiUkWH3tIiGYw5v9leqODMiE691Uz3ru4eOXseVs7T52T/4WNy5Php93F/PHGz1fF1nxOYf1dSlj+KQWqinM/H6unw1GgJ4+2vfxCRE3s0iZBWzFz5UmDmSpCfJ4EiJhBBKaAmuLfnzJgmC+bMkOmTJ7iJOFWVle5eqYUqY50s4t3k0D0mkBGc6mbXRa2c5xHLqdbNvYeOysGjJ1yLZzLJ'@; put 'Op4eo8/76mC4lrseS8isFYiXLrGkH+1K13rGkRe/EZG+Hib85HqwUWDmSpCfJ4EiIqDCoHZUtcycOkkWz5sl82ZPlwnjGmGhrHYTQzLWSbVQciGBbAnocaV/auXWpau7G3GcF+UAhObOvQdcwdmK7HUmD2VLdGTfF9Okn4+lZNx0xFKXWNKPusrffF5k12vw2DDhJ6cDkQIzJ3z8MAn4n0AYVqYJ'@; put 'yOxWQblo7iyZOW2SWyZIxQAtlP6fv2Ic4UALpx5jrajRefj4KXkLYvOtvYeQOHQeoRaM3/Tz3NaNtWXNpxNSOQomzRJK+rmS8PNvSPi5oG5yusqHe5xSYA6XHD9HAj4moGWDpk+eKEsXznWF5dRJ49HdZpQbN6lWSv3R50IChSKgrvRM1rq2wjx64rRs27VPtu/e72aqsyVmoWZiaNuZujAl934w'@; put 'JYZGQpRQ0o9aMQ9uEdn4M1OsFF3lQztq3n43BebbLHiPBIqagCbozJo2WW5dPF+WQVhORLZ3BdopDkzMKeod5OADQSDjStcsdY3d1AShzdt3ytad+5AodJEXPz6b5VseTMqS+9DwoJQ6/cBoqVn0L34nLOeOoOwaI4aGdVRSYA4LGz9EAv4gEIGbW62Ty5culOVL5rs1KcvRm1stlGqpZKa3P+aJ'@; put 'oxicQEZs6u0ltLfUBKGNW3a41k3ttc5l5AmEI7bc9/GkTJoFT7lVOkXYw+jwc/awIy9/JyLJOK2YwzkSKTCHQ42fIYERJKCWH+3ZfRsslXctXyrzZk1HT+9KisoRnBNuOncC6kLPlMI6fe68vLF9l6x/Y7scO3lG6ELPnW8ua6hpQDzm5+JSXQOhVULxmNpGcsOThhzcmk5ey4VhKX6WArMUZ537'@; put 'XJQE1Fo5fcoEuXfFrXLHrYtRXmiMux+ZzO+i3CkOmgQGIaBCU/+0beXOvQflVxvfkB1aevCmAABAAElEQVR7DqDbUP8g7+ZThSAwBfGYKy/HY5ZKJ1EjHJL2CyLPfCkKKyaTfYZ6nFFgDpUY308CBSagsZWL5s6UB1beIUsXzHWLnmuxaybqFHgiuLmCE1DXufaw1+P9CLLQX9nwhmx88y25hD7q'@; put 'XApPYPkjSVl4T2nFY2rCz6anRfasixQeeJFvkQKzyCeQww8ugfKyGJJ15snDq+9yywvFIDT1h5Y1KoM759yzwQloWIgKTV1Oo2WlCs3XXn9TzrdcYpzx4Mjy8mwkBlf5JxOoj4ki7CVSHzNkhqS305an/6VM+rpoxRzKgUWBORRafC8JFIBALBqFpXKOvOuBlbJ4/mxR17gKSybsFAA+N+F7Auo6'@; put '13jNc8g4f3n9ZvkVxKYKTV54FWbqRk+w5IFPpSRaoZnWpZH0E4UVc8erIm8+RyvmUI4yCsyh0OJ7SSCPBMJh0+39/dja1XLnbUtEhSaFZR6Bc9VFTWCg0Hz+1Q2u2Gxto+u8EJM6D/3Kby+hfuUh5DYlEf77zJcj0tGSbo9aCM7Fvg0KzGKfQY6/6AmoZXJ0fa08ev+9cIffLXW1NXSFF/2scgcK'@; put 'RSAjNI8cPylPvfCabHhzh/T09hVq8yW5nZDhyH2PJ2XKotLpV65WzL2bHNn402hJzvlwdpoCczjU+BkS8IiAWimXLZwjH3r3Wpk/e4Zbu5LJOx7B5WpKikAU3yX97mzduVd+9PQLbv9ztqPM3yEwCqWLHkQryap6xCWWQOkihAHj+HLkuX+NSus5WjGzObIoMLOhxPeQQB4INNTVymNr75NH7r9H'@; put 'KivKJZFI5GErXCUJlA4BTQZSodmGLPNfvPCq/Oz5X0k8zu9Vvo6AGUstufsDqZKJxYzETDm83ZbXfhjLF9JArZcCM1DTyZ0pBgKaoDAbLR0//eHH3CQetbrQalkMM8cxFguBTN9zzTT/9pNPSfPF1mIZelGNEw5yuefDSZmxVLPKLW1XHuhFrZgw1srzX4vIhRO0Yt5ssikwb0aIr5OAhwQ0kWfV'@; put 'HbfJJz7wLhnXOBrWlbiHa+eqSIAEMgTUmqmlvbR+5pe+9YTsP3xMUriY4+Itgeo6uMo/m5Tqeqy3BFzlasU8tsuSV74DK6YqTi7XJUCBeV00fIEEvCUQi0Vlzd23y+c/9n7R4umaIc6FBEggvwRUZGqf8y9/50nZtHUn207mAfeMZXCVvw+uctgwS8GKCWUJK2ZYmo/Tinmjw4kC80Z0+BoJeERA'@; put 'i6Z/8NEH5MPvWYuL3hBd4h5x5WpIIBsCWqS9vz8uX/nuk/Iq3ObxBC/usuGW7XtUWN77kYRMX2KUhKs8gh7lJ/Y78vI3Y4EX1NkeA4O9jwJzMCp8jgQ8JFBRXiYff/+j8v5H1rhZ4iwI7SFcrooEsiSg5YwS8Bp8+Vs/ktc2UWRmiS3rt2lW+drPJaRyFNzGQS/Ajl1EF1N5/uthOXcknDWjUnsj'@; put 'BWapzTj3t6AEVFx+BFbLjzz2sJslzm48BcXPjZHAVQRUZKol8x++9j26y68i482DOSuScud7oC8R6xp0V3kmFvNlxGKqV4rLOwlQYL6TCZ8hAU8IaI3Lh+67S37jEx9029jRcukJVq6EBHIioO7yVsRk/o9//JocOHJcLNvOaX388NsETBRgX/2JhEyYg+dQMzLIIjOtKRGL+XVTmo/Rivn2UfD2'@; put 'PQrMt1nwHgl4RkDLpGgB9T/+3c+5CT0sQ+QZWq6IBHImoIk/ew8ekb/556/LBfQx5+IdgdETkVX+qYREyrVXOayZ3q3ad2tSK+bRncgo/y6tmINNDgXmYFT4HAnkSGDsmAb5T//uczJ35nSWIsqRJT9OAvkgUF5eLk+i48/3fvqs9Pah0TQXzwgsezApS1c5Ylt2oAUmksk13FR++dWIXDzFjPJr'@; put 'DyAKzGuJ8DEJ5EhAM8Y/gIzxT37w3Yj34g9Xjjj5cRLICwEDWRra5ee//f1XZM+Bw3SVe0g5Vo6En8/HpX4cFBgiEIJuxTy41ZZ1P2J3n2sPIQrMa4nwMQnkQECDvSdPaJK/+KPfltH1dW7WeA6r40dJgATySKCsrEx+jYzyf/za96WrpzePWyq9VU9ZmJKVH7bFgMIMssDUWEwb8abPfDkql5pp'@; put 'xRx4pFNgDqTB+ySQI4EyFFPX/uKf++j7ab3MkSU/TgL5JqAXhFoT8//6/74s+w4dpRXTQ+BaG3PVRxMydVHwa2NGy0zZvcGRTb+Iekiw+FdFgVn8c8g98BGBuppqxF5+Hj3G5zD20kfzwqGQwPUIaCzmD372nDzx1POMxbwepGE+39DkyJrPxKVME36wjqBaMkOoiRnvE3nmX6LS1YYHXFwCFJg8'@; put 'EEjAIwIa0zVz6kS4x39XKivK3dJEHq2aqyEBEsgTgSjKie3ef0j++n99Vdo7u/O0ldJd7S0PJGXJaiT8pILtKlcr5raXHNn2Iq2YmaOdAjNDgrckkCOBCIo43718qfzRb3+GsZc5suTHSaBQBLSkWHtnl/zZ3/yTnDxzDlnBQbWzFYro1dupqHTkQST81DZqsGJwa2MaZkh6Omx56p9i0t9LK6Ye'@; put 'BRSYV38X+IgEhk1AC6u/a8298kUUVo/H48NeDz9IAiRQOAIah5lMpeSvkE2+e/9hSaELDRdvCcy+LSV3vg/p5AEvW6RWzA0/Fdm3KeItwCJdGwVmkU4ch+0/Am6Cz0Or5XOPv48JPv6bHo6IBK5LQK2Y/x2dfd7YsQveBwrM64Ia5gtmxJEHUHy9aTriMAPc4ccMh6TlnC3PfqlMrJRGnZb2QoFZ'@; put '2vPPvfeQQBm6g7z7wZXyeWSQ04LpIViuigTySEAtmPr31//r3+TNnXsoMPPEeuJsC1nlKQmbwXWTK7pw1JCXv2PIiT1sH0mBmacvE1dbegSi6HG86s7b5A9+45OSSCRKDwD3mASKkIAm5/X3x+Wv/kELrh9hqaI8zaHa81Z9NB74skUqME/td+SFb0TdC5c84SyK1VJgFsU0cZDFQMDED9WCOTPk'@; put 'T3//NyUajTBZoBgmjWMseQLqHr/Y2iZ//rf/JGeaL5Q8j3wCGDPJQp9yWDHLkEgV1FwqKGkH4abPfSUqLWdKO9mHAjOf3yauu+QINI6ulz/7g9+UaZMnSjKZLLn95w6TQLERiCG05c0du+X/+fK3pLOLZYryPX93PpaQ2XdgK8ngli1i4fX0UUSBme9vE9dfUgQqysvkU+hB/n70Iu/rQ+VdLiRA'@; put 'Ar4moO0iv/KdJ+WZl9ehqw9DW/I9WTVjbHnoiwkB9sAWXw8ZIenrseVplCzq7SpdKyYFZr6/TVx/SRFQN/nCuTPlT2HF1LqYrKlXUtPPnS0yAmF8R1svtclf/M8vy4nTZ/l9LdD8LX8oKQtXBrv4uloxX/+5yJ6NpVuyiAKzQF8obqZ0CFRXVcjvfPojsvruFSxXVDrTzj0tQgLaJvJHaBH5fbSK'@; put '7O3rL8I9KM4hV9fBivmFuFSMMiSEwvZBDMc0IyG5eNqW576MkkVWaZYsosAszu8nR+1jAgZKnsydNc1N9qmqrMDJhXX1fDxdHFqJEtAWkafPNst/Q4H1U7jlUlgCyx5MytL7gm3F1LqYz3/DlLOHSrNkEQVmYb9T3FqJENCi6+9F0fXPfOS9rIlZInPO3SweApnal//wb9+TdZu3SYIJeQWfvMpa'@; put 'Wx6GFbOyJrhWzEjMlEPbbPn1E7GC8/XDBikw/TALHEMgCdSOqpbf+8LH5a7ly5jwE8gZ5k4VKwFN7PnZcy/Lt3/8NF3jIziJSx9IyLL70KI8oC0kQ8jviSPX8+l/jkh3uzmCpEdm0xSYI8OdWy0BAmolmTCuUf74dz8rM6dNoSWzBOacu+h/Ahp3ueGN7fKPX/++tHV0+n/AAR5hZQ2smF/shxXT'@; put 'DGwsppvs8zSSfdaVXrJPSQnMD73rAdmyY4+cOHMuwF9Z7pqfCGhW+ewZU+SPfuszMh5iky0k/TQ7HEupEVBxuX33Pvm7f/22nG+5VGq778v9dWMxVyEWM6BWTDfZ55TIs/8axT6WVrJPyQjM8WPHyD/+1X+Wvv6EfPvJp+T51zayJIUvTzfBG1QYnULmzZ4uv//FT8j4sRSZwZth7lExEFC3+Ft7'@; put '9ovGXZ670MLzv08mzc0o/3xCKmpQFzOgDX4MeMd/+bWINB8tLTd5yQhMtV5+8RMfcntEa+2z19/cIV//4c/k9Dm2BvPJeSbQw3AtmdOnyP+OmMypkybQkhno2ebO+YmAhqqouNy09S350reekOaLrX4aHscCAssfRl3Me4ObUa5u8r0bHdn482hJzXdJCEztNfs3f/IHKB0z3RWYOsN6wmlta5fv'@; put 'wJr53K82lHxT+pI66vO0sxH0152xJCnHdoYR2P3O7g36Qzd5wjhYMj8pc2dOc49FFmLP02RwtSQAAnru17/nX90Az9XTcqm9Y9BzvXaXKa+25eJJU6xUabkx/XCg1IL/WmSUl5WHAtndxzBD0ttpyy/+MSb9ve/8bfDDHORjDCUhMOfOnCr//f/8A5ffwB90PfGoNXPd5q3yjSd+LufOt+SDMddZ'@; put 'AgQM05GJsyy58wO2rH/ClDOHr+8Kmdg0Vj72vkdk5R23um461sksgQOEu1hwApFIBCFRcbeQ+lMvvubev94glqxOyrRFlrz6g6i0X1CBSZF5PVb5ev6u9yZk1gqsPaA9yrVk0Ws/FDm8vXSSfUpCYH7+8ffKR977yHVLxag1s6X1knznx8/IL3Glq5YmLiQwFAKxCkfu/WBCpi4wZd8blqz/cfSG'@; put 'x9Go6ip5cOUd8oFH1khdbQ2tmUOBzfeSwA0I6Pk7Fou5RdS/8t0fyzYk9aRS1292ECt35IHP9kvT1LDseMWRt16NSDLO34AbIM7LS6MnWbL2UykJwxMUxNY+4aghJ/fa8tK3UBOzRDRG4AWmFrz+u7/8Y5kAq1EqlbruF2OgNfPrP/gZ43SuS4ovXEsghMj0xsmWrPl0SiJRuEK6Q/Lq90y5eOr6'@; put 'VkxdRzhsytwZ0+Tx9z4kSxfMdVd7o2P02u3yMQmQwNUE1GqpHoFNW3fKE2gBefTkmZsm88y9PSnLH4U7PWJLd6sjL34rIh0t6sakyLyabn4fqXdx9ccSMmURuKfswGlM1ZSJhCPP/EtMOltLw00eeIF5y6J58pf/4XdvKC4Hfm20jEXzhYuuNfOldZsGvsT7JDAogUjMkYX3pOSWtTgvxtVSEpKj'@; put 'O0TW/ySKk+TNf6SqqyplzT0r5D1rV0lT4xj3WKXbfFDUfJIEBiWQMRBo68cfP/uSrEedy55eVLi+yVJWKXL/J/pl9ER8a2E4MyKGbPyZATcmYjGTN//u3mT1fHmIBCbOsWTVRy0JG8ETmIrCrYn5FGpiri8NN3ngBea/++zj+OFefV33+GDHv8ZlGqhfqLGZas1kvbTBKPG5DIGySlvu+2hKmmYI'@; put 'fpRs1/uRiBsQmIac2pddD1rtXz5pQpO8a829surO20RFZxLt62zbzmyGtyRAAtcQ0PO09hS/1NYhr76+RZ59ZZ2cbb54U6tlZjWL79N+2BCXhoXPwKuAOLkj20U2/cIcNFEv8zne5oeAiVj2Bz6TkHHTMRm4Vse/gVrCkZCcO+7IL/81lpXxodh3PtACs6qyHO7x/ySNo+tdt8lQJ0utmWebL8Ca'@; put '+bS8suGNoX6c7y8FAjB71DXa8iBOiuXVhjj2ZZsljB8Xz4TkV99DokFX9u6QCC5utDD7u9aslOVLF0hlRQWFZikcR9zHIRFQYanu8O6eXrf80DMvr5MjJ07dMNby2g2MnoALQ7hkK0bhO+uEXDGj2b7tLY689I0oWvtl/729dt18PHwCs29NyR3vx4V6EAuv43fBxm/Ecyi63nr2xiFUwyfon08G'@; put 'WmDeccsi+bM//O0rpYmGg12tmRo0/hqujr/xw1/IxUttw1kNPxNQAiE3e9yW1R9PYA9x9rh8yZ2O4Tbk4JtqDYkM+Wo1Go3Iwjkz5dH775FlCPMoRyIaLZoBPYi4W1kTyLjCu7p75I0du+S5V9bL4WOnJAFr/1AWDWu57/G4NM3UsjiOa710P2+EJNXryAvfjkjrGVwwQnhyKSyBWLm2j0xIbaOq'@; put 'McxNYTef962pm/zN5wUJZcF3kwdaYGrnlEfuv3dI7vHrHV1qzTxx+qzbBUjje7iQgBIwI47Mvg1X3O9xXPf4QCoqMq2UIVtfCsm+jcM7mcSQpDYf9VvXrrpLNJ5Ys89VaDJGcyBp3g8yAb3A1wt9FZda7WPz9l3y8vrNrrBM3iBx83pMVFAufzQpc+9QcZl2jV95r6snHSTpReXUIQjMEmvtd4XD'@; put 'CN9ZtgahC6uhL5GwFTSBaYZD8G7Z8uyXymDNdA+4Eaadv80HVmBWV1W42eNjGobnHh8MuZ7kUjjgX8HJ7Xs/fRaF2jsGexufKyECboLPyqTc8kBIkv1Xl0JxTx34p79fZPPTYTmOAuzDXdR1PnPaJFl91+1yx62LZXR9nRufqVnnA2u7Dnf9/BwJ+I1Axg2ucch6cb9u8zY3eefc+Yti5RCbvOje'@; put 'pCy5X4uwXyMuLwMwIADW/ciU47tZdH2kjgktvP4QCq/HKnARAIUZKJGJ3wS1y/7yKzFUGgl2GEZgBaYX7vHBvlx6Na1B5afOnHM7Q6zfQmvmYJxK5blImQ1xaSGLHPWB3Qzyq/fcFZk4h/ShdNHrPzfl1P7hi0xds7acHNc4Wu5evtT907aTGoumQpNWzavZ81HxERhorezs6pY9Bw7LrzdtRS3L'@; put '/aKPc13m3YlqD2uQpQwXuSB/bjDhYmom+c8NObLNlBQzyXNFPqzP60XzqscTMn0JrMioYTrYPA1rxT75kLrJt73oyLaXgt06MrAC8w/gHn/YI/f4YMdkxpr5MkoZfe+nz7ktyAZ7H58LNoEoijQvfwTuttthwRxEYOreuyIT8dx9+H3c8kxEju3yJri7sqJcFs+b5XYEWjh31lVWTWafB/u4C9re'@; put 'qftbL5QSiYScPnferWP5OnqHHz911vUa5bq/Wqt28aqULFrliBmGsryOuNTtqMDc9DTip7ewVFGu3HP5/CQtWfQxS8xQ8EoWqZu85QxqYn45hjAA9xciF1S+/WwgBab+8P79fx1+9ni2s5WxZh4/dcatm7nxTRQ/5FJSBKIISF/xrhTiMK8vMBWInkJCSCCI9zuy5dmwHNkRfjuxIEdiGavmbUvm'@; put 'y+1LF7lZ6FWVlVdc6BSbOQLmx/NCIJOwo8fnRcRW7oCV8nUUSN8Nq6XWsNTzqxeLdupZtjYps2+FuzWEMJYbiEvdHgWmF9RzX0cYhe8f+kJSGiYgy/8mc5b71gq8Bj20YaV9FuWKWpBMFtQlkALztsXz5S9QXF2TIQqxqDVTg83Vmvn9n/2S1sxCQPfJNrIVmDpc9+cS5xKtkXkAVa/2rotIf583'@; put 'P6IZHBqrOWVik9yK74AmBU2fPFGqUFNTf8TVhU43eoYUbwtNQAXjwLhKTdjZd/g4ROVbsnv/YWnr6HSPUy/HpaWIboWHYfy0ECxFsIRl4WulwPRyBnJb16KVCbl1LdKyApjs42aT/xLZ5L8aXgJobmQL8+lACszf+fRH5L0P3+9J9ni205CxZh5FLTbtab5p285sP8r3FTGBoQjMzG4asGTqD93p'@; put 'QyI70fc4X4HeGbG5ZMEcWTp/jkyfMtHte67HaiZmkwlCmVnhbT4I6LGmF+DuRTgu+NVSue/QMXlz5x5XVLZeakclmixU3xAHZ6B82PRFKVn2kC1V1TBaarmbLDdDgTlE2Hl8+6gGLVkUlzJN9sF2spzCPI7Iu1WbKLp+/pgtz32lDPvlraHBu1HmtqbACcwYEnD+7i//o0wcP879Ec0Nz9A/rXFE'@; put 'ccQRaZvJH8CaqVflXIJLYDgCU2ngd9d1mfd02LL39bAc3prfziFhxLiNbqiTeTOnydKFc2X29CkydkyDVKD8llo3VXDqLQVncI/VQuxZxkqp7m+1Vvb29sq5Cy2umNwOF/jBo8elvbM7r8dZ3ThbFt6bkinz1d0N3+oQO8JQYBbiSMluG3o+uu+jCZmq/ckDVnhdfwOslCNPfykq7Re8icvPjmrh'@; put '3hU4gTl/9nT56//8++4JbKR+LAdaM7/15FPyxvbdhZtRbqmgBIYrMHWQes0aQucQB7XQzp90ZPc6U84eNGHR0Vfyu1SUl8nUieNl7qxpbp1NzUYfXV8rZSjoPtCdPlLfofzuPdfuFYFrBaWGJV1qa5ejJ8+4sZR7Dx51Swz19ce92uR11xOrcGTWLRYS7lJS3aAu8eytlgNXSoE5kMbI35+yICUr'@; put 'P2KLgeDZIFkwlay6yTf+AuFSG4LpJg+cwPzEBx6VT33osYK6x6/3FXStmfGEvPDaRvnhL57HlXvX9d7K54uUQKTMkVsfTMmCuwcvU5TNbumVrLaoS8RD6F0usm+TKRdOGp4lOdxsDCoStID7ZFj9Z02fLLOnTZGpk8ZLQ10N4jer3I9r7KYKT1o5b0Yz2K9nBKW6vNVCqVnfbe0dyPy+ANf3UcRU'@; put 'HpWjJ85IB851+XB9D0YXxlKZNC8lc++0ZNxkvAPfJ0fF5WBvzuI5CswsIBXwLVGUglM3ee1YnBMD1tknHDXk5P50a1LXrVVAroXYVKAEptp9/vbP/73MnTm9YAk+N5ukjDXz8LETbt3MLW/tudlH+HoREUjXwYRL7h7numWKst0dFZpm2EA5IwdFnpEIhDIpl86NTIZheVlMxo8d48Ztzpw62b0d'@; put 'B5e6CtFYLOZ6CCg6s53Z4nxfRkxm3N26Fz09PUhi7HRLCR08clwOHjvpWijbO7pyKn4+HEIGSg81TrNlHoTlxFmOhBHTZqdyt3JRYA5nNvL7mdseTsqiex1P5je/Ix3a2kM4vff3iTzzTzHp7lAFE6wlUAJzEiww/++f/xEKoaP3c7YR3QWaz0yNt2fRO/eJp17wpGhwgYbOzdyAgJcCM7MZTQIK'@; put 'oU5ab7stpw5qPb6wtJ5GweHMG0bgVksh1cOiqaJTrZuanT5p/FjEcY6WqsoKt/mADku/d5nuQmrt5OJ/AiokrxWTOo+9fX2uJbL5QivqUZ6RIydOywk0mGhGTKWWERqpc6y2ehwz2YErPCkT54VEyxDZiGXz6pRPgem/Y7ZxkiUPfDYpEfSpGMnzYD7IRGDF/NX3DTmaQ6e3fIzLi3UGSmA+uuZe'@; put '+b0vfMIX7vHBJidjzTx09IR880e/kG274A/lUtQE8iEwFYhey2rdTG1b19dty2kIzcNbDblwIoxSQ/5ApolDtTXVEJ2NSKobK9MQx6kCtHF0HZ4fJeWI51RXqgqRgcIz89gfe1E6o8iISL3NWCV1LtTN3dvX77q6my+2yqmzzXLyjP6dkwstl6Srp9cNjRhpUobhyNgptsxCjOXEWSJllegknsyu'@; put '9NBQxk6BORRahXmvzv3azyVk7FTIy4DVxNQ4zP2bHVn/k+B19QmUwPyT3/ui3LPiVvR+RvNnHy9qzexH0Pvzl2MzvWiB5uPdDfTQ8iUwB0JzXefoLpLAYX3huCOHUKT9LARn3OMamgO3Odz7Kl40gaihrtYVm01oazmhqdFtbzkG/dNrRlVJGVzs6mbX92bEprrb9T5jPIdHXlnqonGRumQEZOZ5'@; put 'tSr3wSLpCkm4s1U4nm9pdV3dZ5svuI870IqxHzHjflsiMVvGz7JlJhJ4xk8NSaRMs2+9F5aZ/TZhUdryTEj2bcbFHFtFZrCM+O2ilUnUxNT42mC1jtT4+84WR57655gkE8FykwdGYNYgNuzv/usfuz9sxVBMWk/8+iOrcUxf/+HPZMeeAyP+BeYAhk6gEAIzMyrVEBqjaSHQvf2cI0d3m3Jyjykd'@; put 'LSMTp5kZVza3eryXxaJSO6ra/Y5qiaTG0fVuqSTNXq+HxVNd7eUQp2r5VIGUEUeZ5KKMyz1zq4I0yEtm/3UfM8JRb/VPX8u8nrFCqiVSs7XV4qgXrS2oMdlyqc0Vjxdb2+QiHmvyTWd3jy8skjebu+p6W6bMtWTKEktGNxk49vMrLDPjCcdMefM5ZPa+jl7kCf9/tzLjDvpt3Vh09vl8XKLlOBEG'@; put '7KuvrUyf+2oUyZ3BKlcUGIG5fMkC+S9/9Du+Se7J9svuWjPjcXnucmxmF07+XIqHQCEFZoaKXuMaEJp6UurucKT5aMhNCmo+HpaED62amXHf6DaGuOnKigokEVVKHcTmOMR2ahZ7fe0o192uF5DaAlato5qApK73KGreZsTWwHVnrKAZATpQkGaeG/j+wZ4b+PpQ7mdE37WfGSgIM2Ix81zm8cDP'@; put '6Jj1QlnL/miXsP7+hPQn4q4FsqurxxWJrSgHpHV222CRbEPiTXtnp3R190ovPDhxH1oiB+7f9e5HY46MnmzL9IUpWC0dqarViEsk76gr/Hof8vh5V2D+MiR7NxoUmB6zzWV1eiRoHOb4GfCRB9BNvgVdfd4KWFefwAjML3zs/fLh9zzk2/jLG32x9IdGfyw1NpPWzBuR8t9rIyEwMxRcZwoMLOEw'@; put 'LC1wGbZfQJmj/SGUvQhJ+9mwpHwSq5kZby63KsJUhKq4VAtnNdpfVsPiWVUFUYpSSlUQn3rfFaF4PSNEowhH0e9WBIxUlCorXZcmLelt5k+/g3o/I/oGik59buAy8DV9Xh8PFLV6P/Onr6UwESoSUyoY9RaP47ioVGujuqTVbd0HUaiJM92wPnbjtqcHf3Bp62N9Xl+PJ5KucLQCljylZYZqYZ2a'@; put 'NM+SSbNTUjcOc4VwNHWDj4SQoMAceLT76/78u5Ny+yPBc5NruaLThxx54d9w4F9zvvHXDAxtNIEQmJps8D/+5Pdljo/KEw1tGtLvVmumZm4+89Kv5cfPvoQfF9Qv4OJrAmmBaaFM0fDrYHqxg65VE3GayAtC2QtbWs+F5PQ+Q84eNqT9IkoUW1eLJC+26fd1qDDUdpkqKvU2ghRUFZb6PVOxqm54'@; put 'FaDu87hv4P1agSKzpD+f/mzmpG+hm4i6ogfWeFQxmYD40+fSVseUKyRVTCaT6fsqKlVgaiykPqf3rxWqme2Wwi2mREY1WjIB1qjxc2wZPR5JO2gHiOiPglorB2NNgTkYFX88VzvalrVfSCDBCzoMx0qhrNr53ntN6OzvseVpxGH2dAYnLCMQAnPCuEb5n//lPyCmMVr0J233Rw0/egcQm/nNJ34u'@; put 'b+09mO9jm+vPgUAELr0lq5KyZE1Ikv3+MBnqBbDGamoqerzHgtg05MzBkJw7Epa2i5p5W3piM4cp5kc9IqDflfomW5qmOzJ+puVaLcsrTJyzCxNbme1uUGBmS6rw70u7yRNwk2PbASy6/tK3EFe/LzhxmIEQmA+uvEP+/W99xvfZ40P5OqpbT62Z2gHoyadfHMpH+d4CEtAfzcWrUrJ0DSyYPhGY'@; put 'A3dfC/maprp+ITZh2VSBqTGb546giPtZXDX3BudqeeB+8/7IE4CxGDGUSNCZ5EBUWtKI2pVV9WiPF0NNV3i/1Rqst35bKDD9NiNXj2cB3OTLH4X1El6BoFgwdQ+1XNHO1xx549nglCsKhMD8w9/8pKxddXegBKYecGFYMl9EKaO//+p33dgwfY6Lvwj4XWAOpKV2SwNudBWdVkqk+5JaN9EH/Sha'@; put 'U54ypas13a5y4Gd4nwSyJaDHVeUoGzGUtluvcgySdWrHiJRXIeMdFzl2ErGqKiqzXeEIvY8Cc4TAZ7lZtYKv/SyyycuC5Ykx0YnqwklHnv0SOqW5lZCzBOLjtxW9wFS3+N/9xX9EoedxbnyTj1kPeWgaj/S3//w12bRt15A/yw8UhkAxCcyBRNxTM+qvhdWVDh9lf78tXZccaT1jysVTIbdzUOcl'@; put 'uP3jeJ0LCQxCIBKxpbJORMvHjJlkS8MEW0aNTgvKsApKnMDUSjkSiTqDDDfrpygws0Y1Im8Moej6Q59Lyli0CRVEJfn9giVbSOplSiYcNw6z81IwzrtFLzBnTp0kf/Onf+hmgAYpaF5jMc+jq8b/8X//vVuKJNuDlO8rLIFiFZjXUnKtmxCb2jlIY5v6+yzp7RBkpqvgNORSc0g6kKXe14NEjBJM'@; put 'GLqWV6k9Nk0HiRW21DSK1I+33VjKukZHKmsdtGpEghQuVhyrOAXltXNJgXktEf89Xnp/0g1LCpqbPIIarK98PyTH3kLR1wAsRS8w3/3ASvnfPv/xoixPdKPjx0TW67pNW+Vv/+UbN3obXxthAkERmNdi1KvpEESDxm+qjcCCe7OvB3U320XamtPCU0VnF660412oF+iP/KZrd4OPh0HAjDhSUenA'@; put 'GgkX91gISlgoa/Cn1spyFLlWV55mkLkxlBCVmqQTpIUC0/+zOXZKSh74TEq0GkGQDj+Nw9y93pZNT8X8PwlZjLDoBeYf/+5nZfXdKwIXf2mgbMo/ff378sJrr2cxjXzLSBEIqsC8lqdKCoHW1DI/IbVyQlWkIDrjKK3RC4HZAfd6J8ohdeBPYzl7ukIS70bXIQrPa1H65rEBq2SsDFbIOojJBgdi'@; put '0pEaiMpR9RCYNfoa6oWqmMTVhpPCRYbW38T/QfpBH2wyKDAHo+Kv5yJRRx7+YhzxvojvxbkoKMdkJg7zuf+fvesAkKo6u2fq9mVhadKLgKggCAFEaVKEqMRobFEsPxr9TTEaY/1jS6ImakSCYk9ETSxYwQIiUhRQmoICgvTey9Zpb/7zvWUImIXd2ZnZeffufbq8KW/uu/fcO/PO+8r5ns6gI8n+'@; put '1XUW8HH2RmmCKaLLj933ezRv2kS7+EvRwLzzobHYuIXmIrM5FoG6QjArmwD750/4x0FLp1g9o3Svh4KWrcVZVuShm53Ec7cbxXtJPPe6+Jxu9mLGGpW5qRXJUHb5kNlShoDA62WsZEZuFHkFTMKhS1tIZB5JZC6JZQWRpP4nM7tFi0+skTHLpFy1dblwxwOwIZjxoJW+Y08bGUKnXiSXCiSOVRcl'@; put '+b6yYBfjMP38vVQ/DlNpgqlr/KVUFFm6fBXueeTJCqtBdVenOa7WEajLBPNoYNuUkf8cQTxJVSxaM0XKKcj6AeXllEg6IJZOkHSSgPJx7HmAcZ6BUrpgwxWE52jnMa/bxkXGP1rIzAIyKD6dXc9Cdj7lgbjPpUs7u4DPs/leLv8yaYEWFQFexYRISka3JBJC3NwGzEMIGIJ5CApHP2jNcqIDLuJN'@; put 'alQvuSKp6jPtJephLlNfD1Npgnn24H749ejL9Iu/9HjxxqQpeOnNyY7+gpvOAYZgxrcKbIMl/7H1Oe1/SJLYhCTo8TrBKjcspxikXFIp7ISiAPfltHiW0Q1fStIpj4OyLwHCAR7HYyMhciT+CWkSd64OmwzD440yy59/JI9+ksPMbBJJEsUsWiOz+ZdLi2RmHl3ZfD2DsZHiNpQkATevSzaJFFxp'@; put 'JRZhIEnAERZpiGTVq8MQzKoxcsIRObx5GnFNObLzeNMka90JnUpCHyQOc/H0KBZOUV8PU2mCefN1ozC0f1/t4i/FRfXHMU+bKj5J+LKmugkhmKcMDOOUMyusc6k+n+7t2/SQ/0hWslw13EJC+X/sdYtEyWKN6jCJU9gmli6EKe0RJNkM0TIaLHfzMd30tJAG5LVyPqbUUohup3CQf6xiJMdLNSPL'@; put 'kox4WvKoCRqReCe2Lao60YNZ8rYqRXXjoFi3znb3sxmGT9N6K8/lsdQ4j3I8/GNiqNTY9rIapawbL//8GSSG3EsspJe6fhlZFnx8LNZGv7zG432Mg/SQPHp9UkedbUs9UG5CqKOMixQrpC1YLiRdl6tsGhe6IZhpBD/OUw+5IoDmHfghfgl0Wfpiwdy8ysJHz2dU/KbEiYmTDleWYEr9cYm/bNOy'@; put 'uXbxl9t27MKtfx6DomKaaczmaAQqapFbrEUuRMZktNTWZNkU6yDREtIlm9t+zndihFRelAMlN4XMS3JU5B8hZBYJakQIWUTqtHMvx9jvSz3sCqJm8T2JKY0eg2TKRY2foLWRpxViKScUQsm+CMEUUul2W/Zzed8jfeSf/X6MLB68Mh66QNp9kc4c7JP9gP2wXzH/pBoBQzBTjXDy2u/SP4Qew+Sm'@; put 'UB83ufw2lBywMOmJDOUrrSlLMFtSWP3Ru2+GlFTUSf9S5IlmzV2AR556MXnfQtNSyhAwBDNl0Ka04UOe9IMPSPsqyOhhZz10zGGvHevhD62HRzw/+OSI147VmHkvbQgYgpk26OM+cdM2EQweRbkihpJocwNm34O68OFzXmxfz7tShTdlCeaAPj1w269G0w1G35dGm8gTPfvyREyeNkujUek7FEMw'@; put '9Z1bM7K6iYAhmOrMu4SUDL8myJKkZGW8e9OFZEoc5udvA8vnMZ5G4U1ZgnntZefjgrOHaZXgIzFcpWXluPvhJ/D9uo0KL6u603VDMOvOXJuR1g0EDMFUa54HXBxA2y5URtBIrkiS9VYuiGL2RLUTfZQlmA/e8Rt0PbETs0gZua/JJgRz3cbNuOPBsSgr18syq8kU/dcw/FlR/GhECCf0krrdJgbz'@; put 'vwAyLxgEFEPA6/dg/ocuLJ/rsZPCFOt+netu59NC6H22XnGYHhaz2L05iklPZVYk8Ck6q0oSzHp5uXj8/ttQvyCfgfkVwfCK4n9EtyX+8pPZ8/D4c68c8bp54lwE/HTR9D47jI49DcF07iyZnhkEqo+AaIXOm+zGyvkeW22g+p80R6YDgYYtwxh2ZYRqC/q4yEUpIlAaweTxWSzPa0eIpwPahM+p'@; put 'JME8sWM7PHjHjXZyj04JPqY8ZMLrudYbEILZ55wwOvQwBLPWwTcnNAikAAFDMFMAagqbrIjDDDAOk7IMGsVhyjqc+k9KFq2kFIWim5IEU0eB9Vj85f/9dRzWrN+k6HKqe932Z0dxxnkhtGEMUDhoXOR1bwWYEeuGgCGY6s3ogEuCaHMy+61RHKYk+sybBHzzmbqJPkoSzBuvuQzDB52hlcC6ib9U'@; put '70dNemwIpprzZnptEDgaAoZgHg0Z577e5Ywwegyni1wjPUxJ9Fm1MIpZb6ib6KMcwfRQVfmvf7gJndq3ZVk5lvLQZBP3uOhfPvr0BE1GVDeGYRPMn8rds9tYMOvGlJtRao6AIZjqTfBx7cMYfFmElbP0icOURJ+ddGZ+8JSfxR/UjMNUjmAW1q9nJ/jk5eZol+Dz3CsT8d7Umep9u+twjyX+p+95'@; put 'EbTtKqUIjYu8Di8FM3RNEDAEU72JzM5jXfJrA8gpYF1yTeIwJdGnvJgVfcZnoPQA40sV3JQjmCd1bI8H77zRJpc6JfgEgyHc99hTWLZyjYLLqO522ZYpGh7GCb1Zi9zIFNXdhWBGrg0CQjDnvOPG94tNFrkqk0oVTAy5OohmbSm1XvG/Kl0/ej9ptJTQuY+eZ0WfdWpW9FGOYOqY4OOm23/rjp24'@; put '7U9jsL+o+OgLzrzjOAR8GVF0HRhGtzNJMMuNBdNxE2Q6ZBCIEwE3XZOzJ3qwbikJZlhN12ScQ9bicNEjPvmMKKywpVVFn5lvuLBqgZqZ5MoRzBuuvBgjzxqkVQUfIZiLli7D/Y89o1VddS1+taoYhMcfRaeeYfQ517jIq4DKvG0QUAMBcsqZr3qx8TsPrIghmGpMGnB89zBOv4C62Jplki+ZGcWX'@; put 'H6iZ6KMcwdSxgo+XAusTJ0/Fi29Qk8BsSiHgZlB5i44WBl7KilKKBmIrBbjprEEglQiQT4aZOzp9At2SGzy84TcEM5VwJ7PtwuYRnHVVCF41uVilUHj9bmxYbmHahMxK33f6i0oRzLycbIy5/1Y0KmyACOUItNlcbjz61D/x2ZeLtRlSnRmIK4rCJhaGXhWEP4eB2BYDgMxmEDAIKImAy+NCyd4o'@; put 'Ba79OLBbyKUhmKpMpCRcjvhFAPUK+TusSaKPm+tx306WjHwyQ8mqUkoRzLYtm+ORu2+mFIHcWepzIS8pLYMIrK/buEWV77Lp52EIZDGD8czLgmjc0s2YLX1Klx42RPPQIFAnEJAEn62rgRl0kZeXqJm5WycmqpJBCicYdgUTfTryTd7o68AQmOODQAB4/wk/ivaptx6VIpin9+yGu377CwJOxDXZ'@; put 'JEts/aYtuOPBsSgtK9dkVHVrGL5MCz2GRnDSGSbRp27NvBmtbgiIuPXS2cDiaR6qQqh3QddtPuIdT8/hQXTpR36pUaKPWDE/et6DbWvVS/RRimBe+pPhuPLi87RK8PEw/nLO/MV4aNwL8X6XzPEOQUDiMFt3ttDvYgZvGQOmQ2bFdMMgED8C4iKf9ZoH65eZBJ/40Uv/Jzr0CKPvT/VL9Jn5OjPJ'@; put 'FxqCmdIV9rvrRmFI/75alYj0eLx4/b2P8PJb76cUO9N46hAQ10y9BhYGM8C8XqGLmac6OGdSh5dp2SDgRASEXBbtAab904v9eyjYbeIvnThNx+xT41YRDL0yDK9XDxe5DFZqki+eHsXCKeplLyljwRQpn7/e9Vuc0KGdViUiwQSfvz39ImZ/seiYXxzzprMR8GVY1MKMoOsAI7ju7JkyvTMIVI6A'@; put 'jxfyZZ8DC6bSPV5u3OOVo+TsV7Pzo/gxE32y85mexft8HW71JWxj9WILM17LcDb4lfROGYKZn5eLscwgb1C/QKsMcom7/MNfn8CaDSw6ajZlEXDx16xxS1oxR1EmQxQljKtc2bk0Ha+DCDCZwmKEy7SXvdixnu5xy2SPq7gK3O4oho8OoFEr9p6/wToQTEk827HBYk3yTOXGowzBbN3iODx69+9o'@; put '+vZqk0EuCT5bd+zCrX/8G4pKSlX8Pps+H4aAP9tCn7ND6NDDbcpGHoaLeWgQcDoCYiVasySKOW97ESgz1kunz9ex+tf/oiDancLikeGIcoSssnFJkk8RpbMmM5M8oJhlXRmC2bt7F9x98/UIBilorckmcktffbsC9zwyXhvSrMnU1GgYYsVs0pqSRZeH4MvgD5zRxKwRjuZDBoFaRcDNuOkwxdVf'@; put '8WLrGje/t8Z6Wav4J/lk3QeHcMogWi+pla2DBVOkisIh0cIUbVa1apIrQzBHDhuIG666RKsMcjcJ5kfTP8P4Ca8n+StmmksXAiJZdOqQCE6mVIapTZ6uWTDnNQhUHwE79nIukyg+8iFYbshl9ZFz5pHtu1WUjHRZ+tQkFyvmlBc8vAFSK5NcGYJ5/agLcd6IwVoRTJEoeu6ViXhv6kxnflNNr2qA'@; put 'QBT5hYzFvCKEgoZGeL0GAJqPGARqDQG3102rkIXpL/uwb4e4xg3BrDXwU3Sixi0PZpL79Mok//RVMNnHlyLUUtOsMgTznpuvQ+9TT9FKZD1CF+pD457Dgq+XpWZ2TatpQcDWxTw5gv4XhCtcNDr4adKCpDmpQSCFCJBLCp2c/ZYX67/xsAqXIZcpRLvWms6tz0Sfa8qRnVshNKXDz69IFc2fEsXX'@; put '09WSKlKCYEpijyT4tG/TUiuJIikRKRV8Nm7ZVmtfPnOi2kHAli0aEkbXfi6T8FM7kJuzGATiQkASe5bMAr76xFTtiQs4hx/s9Vn48bVBFDQlwdSkJrkQzGVzLcx5Ry2pIiUIZv16+Xjsvt+jQUE9bSSKJIN809btuP2BMSguKXP4V9Z0ryYIZLNG+ek/C6JVJ7mARWrShPmMQcAgkAIEhFyu+9bC'@; put '3Ld9KC02WeMpgDh9TZJUDtWsJrnX78b65VF8MsEQzKQvrNbNKVF07y3wMilGqqbosIlw/JLlK3H3w09qMyYd5iWpY2BWeUFDCwMuCaGwmQfhoCGZScXXNGYQqAECQi63r4tg1kRm5e4St7hxjdcARkd/pO/IIDr0Zhc1qUnu8bqwa4tFqSLRwlRnvSphwTy1S2fcd8sNCIepJaHJJgk+02bNxdjn'@; put '/6XJiMwwKkNApIsatrDQ/8IQ8iXpJ2QU2CvDybxmEKgNBLx+D/ZstTDrDS/2bhODRW2c1ZyjthE4ZVAI3QfrI1UkWeTFey28R6miYJk6UkVKEMxhA07DzdddqVcGOWuQ/+vt9/Hqux/V9nfPnK+WEZDqEo1bR9DvggjyCt3GklnL+JvTGQQEgRi5/OwtD3ZvFnKpjiXIzGB8CBzfPYTTz+fdgyZS'@; put 'RS5qtQbKK8TWi/epE9KhBMH8+U9H4IoLf6IVwXTRRT72uVcw/fMv4/vmmKOVRMAuJdkqgr4kmQWNXIgEjSVTyYk0nVYSAdstznJ7c5gxvne7sVwqOYlxdLpZ+zDOvCwCj0cTqSK5F6LqzPvP+LF7i7FgxrEUqj70N6N/jh8P7q8VwQyFwvjT488wDnNV1QCYI7RAQEhmg+Oi6H9RGPWbMDzIkEwt'@; put '5tUMwsEI8MIs5HLjCgvzJnkZc2m0Lh08W0nrWoPGFoaOLkdGFudbkzAIDzVbP37Rg00rDcFM2kKRhu5lichep3bVSgOzqLgEdz40lpnkO5KKlWnM6QjQXU5LZo/hFpq1ZbUficnU5AfQ6cib/tUtBMSt6GHs2spFUSya4kPJAcrWSN09s2mPQBYVPEZcG0BugVsrqaJP/02x9a/UEVt3vIvcQ1fy'@; put 'o/f8Dse3ba2NBqb8yG3dvhO3PfA4DhQVa/9lNwP8IQKs9tMwiu7UyWzfBRDBfVO3/IcYmecGgZojINYeqd+8ZIYb384RBQd14tZqPmrzyRgCumphzpsUxTefqSO27niCmZuTjTHUwGzcsFArDczvVq+jBfPv2owp9sU2++ojIHfZJ54W5p8Fb4bJMK8+cuZIg8DRERDNwOK9UXw13Y3vF3thRYzV'@; put '8uho6fmOzPiQ/wmgWRu6hyr+V36gIrb+9Ywo5n9oCGbSJrNRYX2bYObm5DAhTI/ECJEomjv/Kzw47vmk4WQaSj8CYm1v0awJ2rZqjhlzFlSrQ76MKFqfFEG3MyOsYe6i1cW4zKsFnDnIIPADBFx0h4tLfOv3Liyc5sbOjW56Bqoml16vB5kZfpSUlhtN4h9gqvLTARcH0LaLC9GIpUUUkhDMFV9E'@; put '8dlbhmAmbV22a9UCD//hJv5w6COy7vX58MG0WRg/4fWk4WQaSj8CebS2//LqS9H1xI544PFn8c1331erU5L8U9jcQrfBEbTsJO5yJgxGTGBmtcAzBxkEiICHVstwuYXl8zx0ibtRVlS9RIiC/Dxcf8WFOOH4tviUih6vT5qKsvKAwVQDBHqfG0LnPvw91URs3cc1vvYbC9NfyVRmdhzvIu92Uif8'@; put '8dZf6SWyTg3MV96ajNfem6LMQjEdPTYCcgN0Conlnb++Bn6/D6vXbcBD417A9l17jv3Bw97NzLHQqVfEdpln5Rlr5mHQmIcGgUoRsBN5pMrJJuDrT1l+d5WXxQyqtlpKYxILf93lP8MIKpR4mBAk1dXGv/gapsycg2AwVOn5zIvqIKCb2LrX58bWtRY+eCZDmWQ1xxPMAX164HZetMvLy9VZ2VX0'@; put 'VFzk41jBZyor+ZhNDwTycrN5sboQg/v1sdeqXKwWLlmGR5+eQNdb9WvNu6nb1riVha5nhtGsHbGhIdNYM/VYI2YUyUVArJahsiizxF1Y9pkXxfuEWFaPXEpPenU7GTdeezmyMyvqO2dkZGD5ytWUj3sWe/cfSG5nTWu1jkCnPmGcdq5YMCNauMilXORuVqGaJOUiFSkS4HiCOXLYANxw1aVaaWBK'@; put '1vDDT/4DXyxeWutfOnPC5CMglpDj27TEPZTTys/LtRO35DVxcn8yex6efmkiQnGWOc3IjuL4U5kA1NdCfn0XPy9M07jNkz97pkXVEHDzQis0cttaF5bMcnPvqbbVMjZWuSEUb8MJHXgXd7BepHxng6EQ7vvbU1ixai3VHfSI+Y+Nua7t23Zl9bQLI3BpUs1HykUe2BXFJJaLDCmiiuB4gjnqgnNw'@; put 'Gf/KyqpvBXL6FykQDOLuh5/EyjXrnd5V079qIJDh97MQQD9ce9kFR2i1ygXL4sXrnQ8/wUtvvh93AoHEZtZrZOFkksy23SIUjBbpFZMEVI0pMYdoiIC4w70kl/sZdbJirgurFnkRKK2+xTIGiZcepNGXnIezBp0BNnnE99LP7/LY517GjLkLEDBu8hhkSu5bdIxgwCVheDWp5uPmYi0psjD5yQyU'@; put 'Fashu+V4gvnLqy7GucMGaUUwi0tKcceDjxuRdSV/tv6702K1vImutt6VFAMQkhlmFuMbk6bUOObW66sQZz/xDAvN20fh8Zn4zP+eBfOKtgjwwuojsSwttrBmCTNp57ntijw1cRN6GSt9+QVn85oykHGXzDI/aL2MYZeZmYm3PpjGGPn3UVqmT1hWbHx1ad+oZQRDrwzDx99PHXw/dj3yAOuRj/Mz'@; put 'HMQQzKSs5VtvuAqDTu+tTQymEI7tO3eTYI7Fnn37k4KRaSS9CDRv2hj33fK/aNKoYaXJaBKPKdaQf7/9Ad7+aHqNOyuSRs07RHBCHwtNGKfpYdC3sWjWGE7zQacjQOuij2s8QJ63aQWwfK4HOze7a6xrGSOXI88aRMslQ1h+QC4FDonDXPj1t3j4qRdNEQynr48q+lef5SKHjQ6wXKSYqas4WIG3'@; put 'uWS59hmDSQvmvp3VU0lI97Acb8G8/5Yb0JPB2IGAHtIRQjA3bN6G2x8YY+6Q0736k3B+uWh16dwBd914LV0xR5fSknkPMdj8dVoyJ07+uNKLW3W748uwKGdkoSMzzpu2isJtiGZ1oTPHqYDAQYtlIGhh80oXvvvCg+3r44+zPHyoonV5+fnnYCQtl+JqrIxcyvHiPhcDwL2PPmk8TIcDqODj3PoW'@; put 'hl8TQHZuRcyu8hyTBJMLFx8+68fOTYZgJrwk5aL88P/dhM4d21M2Iphwe05oQKxZK75fa6r4OGEyktAHv89LC3sv/Gb0ZVWuUZl7SfZ5mfGYk6bOSDiJQCyazWjR7HCqhaZto8jIFHc83UFGQzMJM2uaqG0ERCjdy78A9Sw3r3Tju/nuhImljCGLWeJXXTQSwwaeweQgfj8qsVzGxirXnHAkgj+N'@; put 'eQZLl69K+Dsaa9fsax+B7FxaMK8pR34Djzb1yOXm6KMXvHZiW+0jGv8ZHW3B9FOQXMpEtmrRTJs65EIyFi1dbmcqxj9d5hNOQ0AuXucNPxNXXDiyWmEcMv+lFHKe/PEMWjKn0XWe+I2Tx2ehUXOgffewbdnMLmB8DnOBwhQY1sE15LQ5N/1JLgKSFS4ZsqX7o9hIV/iqhR7s3kKLZVhMNolt9evl'@; put '4xfUuuzbsxuJJSu6HINcxs7k43XnEbrIP/9ycdzqD7E2zD79CPgzoxhOF3lBE1owOe/KWzAJqdfrxscT3Nj4nTf9AFejB44mmLE65EeLbavG+Bx3iGhgzp63AA+Pf9FxfTMdih+B7KxMJg2cg/N/PKTaiWhCMoOhMGbOnW8nE+zdXxT/iSv5hJtZ53mFFlqdGEGbkyw0aFbxg2SsmpWAZV5KLwK0'@; put 'xEhGuFSt2rvTwoZvPFi7xI19u6pX3rE6nZfY6F//z6U4sdPxjF2jFmI1yKW0K3GYT00QwfW5DM1K/AawOn01xyQfAY/HwohfhNDguCgJph732r4MDz55xYV1Sw3BTHjFyN3nY/f+Hg3q17O1BRNu0AENCMGc8unneOKfrzqgN6YLiSKQk52F0Zeeb8sUxSOlJSRTJIwWUYz9pTcnY93GLYl25YjP'@; put '+/xRNG1DsnlSGMd1iCJfrJo0CEWMC/0InMyTWkSA68/jcdNaCQTKLGynjuXapR5sWulBeYn0I3GLZWw0XTt3pFfhXHRq36bSxLvYcZXtJZP8H6+9g/emfIpyQzArg0iJ19zuKM66OojGbcguNXHmSD3yT19zYTUlulTYHG3BbNqoEI/ddyvESmRpInorQeQig/GP195VYX2YPlaBQG5OFq4fddGh'@; put 'Cj5VHH7E2xLvJURz3aYteHniZHz51TdHvJ+MJzwFsvMYo9neQuvOEVYJiiKnHpOR+J8hm8lA2LRRFQLi/pYqJKJ4sG8H6N7zYMO3buzZVvOM8KOdUxLthvY/DRecPQSNGzaokWEiKyuLcdKT8eb7/eqQVQAACklJREFUH5u65EcDWoHX5bdvyNUBNBOCqYkF08vqVQunulgW1afADPCWsfvgnxJ6'@; put 'Z24tmzWlBfMWO7Ovuu4NZ47kP73ysA75y29OYjbx1P+8aB4pi4AQTCkROYQXtZqWM5Wbjn0HiuzEn/c/mR1Xacl4gJM7+uwCSh21i6A5s9AbtSTZzHezri3jNY1lMx4ozbHHQoDrSZIRhFTSM40DuyPYtoakcrkbO9Z5bNkhublK9taEBokLzxmK/n16IjPDXyNyKX0SgvnqOx/aig9GCzPZs1S7'@; put '7Q0eFUCLjjwnq6A5lujEAYkQzK8/BUmmP45Ppe9QRxPMDm1b4S93/da28mhDMEkmnv/Xm3h3yoz0zbo5c9IQSAbBlM54aHkRQfZFS5fh37y4rV63MWl9rKwhqRKUW2DZ7qPmrHjRRMhmfTf7IVpr4krXxKdU2eDNa8lHgHzRS/e3i+tHLJVFrLazbb0bm1eIxJCLLnAhlMknlbGB/KjbSbjkJyNw'@; put 'PK8ZDLZMyOMlLvIXX3+Xv9GfGgtmDGBF9wMvDaL1yew8Ex51IJhy07ZmCTDztQwlZsTRBPNkBmf/+fZfJ/Rj4bRZcPMKPu6Ff+HjWfOc1jXTnxogkCyCKacWq44QzW07dtmC7J/M/iIpWeZVDotkMzsnioYUb2/GSkGN20RQ0BDwM6Bc4kSNK71KBOveAeSKHlopXbzgybotL4ngwE4Xtq0jqfze'@; put 'hV3U6Qva1X1TRyoF9IYNCmxtyyH9ToPUFw9TBizRzcRgJoqgcz7f/6IA2nVlMhlvmHUhmGtJMGcYgpn4Iut+8gm4//e/TMqPRuK9SVIL/DF+7JmXMGvewiQ1aJpJJwLJJJixcdjWTIqyL6Q1U0TZv1u9LvZWyvfiKfDz5rheEwvHtWGiEN3pDZqSgNZjcgbzhKK0bobpbhKXk9nqEALkieL2lnhK'@; put 'qYITCkVQvBfYs9Vtk8rt61gjfIe4xLlIamHz0RPUp0dXnD9iMNq1aZmw1fLwLksW+fP/fgvvT5vNJB89CnwcPr669LjfzwJo300fginfvx0bLXzwdJYS0+hoC2afU7vgDzddX6WAtRJIH+xkhBfmR8b/A/MWLVWp26avR0EgFQRTTiVWIYnN3L13H6ZSLmXKjM+xa8++o/QidS+LKz0730LDFrCz'@; put '0huyvm+9hlFk5njZR8Y1GcKZOvDT2TJ5oodrMGahDAdIKA+4sG8bbOukuL33bmcZx1LpZGqtlD+EoWO71rb27I9Y4U10aEOh0A8PSei5EMzxL76GqbOMTFFCQDrgw6f/JIjje3F98oZdh1tiqUe+b3sU747LdAC6VXfB0QSzX+9Tcedvrq1x8kTVw6/9IyS27YG/P2eLrdf+2c0Zk41AqghmrJ9i'@; put 'zSSTw9oNmyjOPhOfz/8qrSVG3R5qbTaIorA566G3tlDYzEJ+IQlnNqtliIWToZtyExUVC6cOv+ixidB5z+tvzN3NKEqGJEVRXkZCua/CKrlroxs7t7hwYAflhMTtHa1dQhmD/rgmDTGc1XjOPP1HqF9Qz/ZspSI23xDMGOLq7/UkmBYJprFgJrw6B/btidt/dU21BawTPmEtNBAMhvDnsc9iCcuQ'@; put 'mU19BEQH80pW8Rl51qCUrlOpLiJlJpetXE2iOctOBgpwLaV7k8x0qfnboFnUzkovpKhxfkOL9X9JWvwkx5JwIUlDQjjlz2zpReAwy6SQSU4Ps7ojKD0AFO12UTqI8ZMkk/tpnSzex9Km1BlPRcZ3PCA0KqxPUtkLQ/r1QdPGDW3B9Iikp6doMwQzRcCmoVkdCeaebRYmPWEIZsLL6dyhA3DDVZdo'@; put 'ZcGUyhD3/m0865GvSxgf00D6ERCCOepn59ouu3iE1mvS85jbXMSfly5fSbf5HCz6ZjlDSNJPNGPjEbd5JhOG6jVm0hDJZgNaOAv4OKcea6XnuCuqt5DViGtdEojEWmYsnTH0krinkdGOmZREHJJKWTuSrBUoJZlk4ajivR6SSdDl7aE2pcu2VgbL5fzpsU5WNnLRsTyjV3ebWIpknWzJSOKp7FyH'@; put 'v2YI5uFoqP1YO4LJ73HRnijeGmNc5AmvzCt44b7kvBEs16VPoLUEjd/76HgmbqxPGB/TQPoRqE2CGRutkAWxaArR/Pa7VbYigdS3Lym103Zjhzlm76FbPTu/wrJZ0ISkk0lD+SxpmZ3PsnzZJJ5ZjOdkb+08T0M8qz9vBE3WAjkk5YEq9hJOYZFIBmmVDLA6TvEBNy2TJJI7hUhWWClLi2iZtH9S'@; put 'BXXnbVLiUbxX/Xv3QDM+lq02iGUMCUMwY0iov9eNYNozwq/thLsNwUx4dV5+/tn4Of90IZhyMSgpLcVdf3mCpQE3J4yPaSD9CKSDYMZGHSOaYQawr1q7HjPmzMcXi5di526m9zp8q7B0WsirD+QyhrOAiUOSPJRNd3tWLvd5kuQkuoq0wNnedYnrFI97RXyn7Wy3/3H4QBPpnhBHfl4C+2WuxRIp'@; put 'Gdzyori2g4EwiSRd3NSYLGECTvFexknSzX1gF5/TvV28HwiVixtcWnH25vV60LFtawxifGUvJu80LGxgy9PVJrGMIWQIZgwJ9fdaEkxOy4R7DMFMeHVeP+pCnDtsoDZZ5IZgJrwkHNdAOgnm4WCIRVPI19YdO/ElFQpmfbEQq9dvpls0dbFqh58/WY/dZJMZWYzrbGAhpwB2QlEuqw/JX1ZexXte'@; put '/rb6M4SAMsbTdv/y7CSf4nIXd7vtdudLkmh0iIMeepCsntawnQp+KIZGEsWKJzZpFPIozJH/S1ejtEJGKA4dDFh2HKSQyDJaHktJJEuYfFMkfxQzL9vvRlkp3d+2/KM0qtZWkJ+HHl07YwCr73Tu0A45Odl2Vng6SwMbgqnWGjpWb3UkmPLdePm+7GMN2zHvOTqL/LZfXo1+dJMkW4YiXegbgpku'@; put '5FN3XqcQzNgIRdpI6puXlJRiBfUzP/tyERZ/s0IJq2ZsDEfbe9wWvJkuZqxbdpxnZh5Y6lIsnizvl2sxxlNc7i5kZFjw8zi3Nwo3S/b6xBIqBE6EPIWQygliXIxsTnhpbLMpaex5bB978/B97PPc07Z46B2bOMozeUnalsdCfvmogjQKcZQ/un2ZQBMKuEgiKVROklhezOxtksgyurbLikgoiyus'@; put 'k4EyN49hW9Z/ziPNqrpl+P2suNMSfXt2Q8+uJ+I4usE9nBv5nU9FVni8OBmCGS9izj1eN4JpyxTtoEzR340FM+FVd9sNJJh9DMFMGEjTQMoQcBrBjA005j6XC/b2nbuxdMUqzF3wFZYzuexAEZmLphsdwjap9Aqx9FnwMdnSz8fezCh8/E32ZXDPMr4iJu/xR1k5ifGs3FeQUVZSYla820twyAxt'@; put 'PkqSam+yO8jvLBI9SyyGfC4Z8lZIpH1IGENCHGlN5D4UdiMc4D7oIpEkiWR4bDggRNFCJFiRnS1xkHK8fPZQ4/JQw02sza2aH4ceXTrbLvC2rVsgmzW/xcKeDjf4sSA2BPNY6Kj1npYEc7s6MkX/DwAA///r8VITAABAAElEQVTsXQd8FNX2/rZl0xMSSkLovXcBBUSKgNg7dkXF8tRn74o+n/7V'@; put 'J4oFsIMdO4KCFEFA6b33HkpIAklI22z5nzNhNcQkpGyZuXvmR5jd2Zk7937nzsw3p5q6DrrUA50uj919C/r17o6ioiKd9rBq3TKZTMjNy8NTr4zDnv2pVTtY9tYlAlGREbjhigtxybCByM/P12UfLRYLbDYbHHQdHTpyFBu2bMfS1euxbdc+ZGXn6LLPeuqUx/P3LZKvYVkqh4DNakXD+kno2rEN'@; put 'undqh6YNUxAXGwO32w2n04mSuFauxcDsZbfbMX7SZMxeuASFhY7AnFTO4hcEzrrUgVY9TPA4Xfj7KvbLqQLSqMlswvEjbvz0TkRAzlfTk5iEYNYUwsofLwSz8lgZZU8jEMySWFrpoc9/TDaPpKVj07adWLl+M7Zs3430Y8d1+9AvOQb5rF8EIiPC0aRhfXTt0Aad27VGo5QkxMbEaPOKSSWTS70v'@; put 'YWFheOvDz/H74hUodKih3NA75v7q39lXFaJZJyKYLrc6BPMwEcxxQjBrPGdEg1ljCKUBPyNgNIJZEg6vZtPlciE94xh2k1Z93aZt2Eikc//Bw8gvKCy5u3wWBP6BgNlsRp3EWmjVtDE6t2+NNi2aoH69OoiIiADPK/4zAqksOTDW9o/94DMsWLJKexEr+Zt8NhYCqhFMs8WEQzs9mDkx3BCCEA1m'@; put 'AMUkGswAgh2gUxmZYJaEiIkCP1h5yc8vQOrhNGzfvZfM6TvIlL4XR9IzyKzpKnmIfA5RBGKjozTTd8e2LdG2RVM0bZSChFrx4BcWJpRGd2kqJpifE8FcKQTT4HN84PWFaNiaBuH2KKHBtFhN2L0O+P1ruyEko2uC+fg9I9G3ZzfD37C8M0EIphcJddaqEMzSEuGHLBMG1j5l5+QQ4TyKrTt3Y8uO'@; put 'Pdi5dz+Oph9DEZk8ZVEfAZ7jKUl10apZY7Rv3QLNGqeQ1jIBEeHhf/lTGk1LWZHUhGBWhI5xfmMf33NvdCClFfVZIYK5YzWw8DshmDWeiQ/dcQMG9OmlHMF8+tVx2L1PgnxqPEF00ICqBLMktKzdZLLp1VDlnMjFwSNp2LF7P5FOIpx79iMtI1NM6iVBM/Bn1lAmk5mbCWXblqyhbKCZwSPJ7M0v'@; put 'yayhZE2lqosQTDUkazYRwbzFgaSmFN5Drr8qBPlYw8xYPRdYPTvMEELStQbzRorOHXHJeRTJp44vWKHDgefGTNA0QYaYIdLJChEIBYJZGoCShJO1BCeIcGZQgNCeAweJbB7Ajj37cODgERyjCHWViUhpXIz4nSO9E2vFUTBOMmkmG6Bl00ZaYE5iQi1NQ8lj4uAc/guVRQimGpI2W9wYdqsTtRu4'@; put 'QVxTCYJps1uwdAawYX6xO5PeJaVrgnndZcNx3WUXqEUwKe3Fc68LwdT7hVHZ/oUiwSyNDWu1WLvJ0em8sIaL0x8dPpqB/amHsWvfAeyjNWs9s7JPiGm9NIAB+m61WlArNlbTTnKkd/MmDdGI0ghxkA6nD2L58QsDk8lQfjEQghmgCenn01htHgy/vRDxSSYimGr4YIaFWzB3sgm7Vhffa/0MYY2b'@; put '1zXBHHHxMNx45UVKEUwOlPjvm+9jLUXrymJ8BIRgli3DklpO3oOtEGxaT888rkWoc5T6vtRDREIzadsx5FFgkV7zIpY9Qv1uZRyjoyJRKy4WKcl10TC5Hho1SKZ1EmonxFPaoGhwKh5emEjyn0o+lDWVjBDMmiKoj+PDI9wYQgSzVh2zMj6YNjKRz/nCjL0bhGDWeJYN6tsTj9w9UrcJrKszQCfl'@; put '43pl3EdYsXZTdQ6XY3SGgBDMyguEtZys7WRNGa9ZU8YR68ezs8nEnqVFrh+k6PVDaRk4cOgwjmXlaMQzlLVpFaHLGsmoyEjEk/axXp0ELT0Qpwhi/8m6tRO07fw7486LkMmK0Pz7N56f/5swCYtXrBVt+9+wGO5TZCyZyG8rRHS8WRkNJkeRz/7EigPbiq9pvQtF1xrMc87qgcfvuU0pgumBCWPe'@; put 'nYQ/l6/R+9yQ/lUCASGYlQCpgl2YaHq1nbzmPyaeeVTxKic3D8eJZLJ/J6dJOkLazqOUrzPzeJZmgj+Rl48CcjlRlYCaCRu7PQycvDyOkpXXio9BnYQEjUzWq5NI60QkkJYymoJyOKLba+JmDaaXTIpWuILJV85PrMEc894n+HPZGklTVA5GRtgcm1hMMMMjyUROHVYhyMdMlXx+/ciKw3uEYNZ4'@; put 'Dp7ZvTOevn8UHBQYo8piogfo2A+oSsSi5aoMKaTHIQTTP+Jnoukln17iyWdi4sTm9gJKAp9P66ycE5pfJ6+PZ2VrWk/2/8wmczyb5HM1Ekr7ExFl4soWhGCag1mbGGazajlHw4k88vyJJi0jm7TjYqKIRMaRaTuGtI+x2nf2jeR9IohkhlMJQ68WmIkjj4fXPB4hkr6bh2Ii9x2WwWwpIcmNoSML'@; put 'YQsneqkCu2SWTOmWfnk/DBkHhWDWeG717NIBzz54pzJpihgQC5lf3vn4S8yav7jG+EgDwUdACGZwZFCagHrJqJdwMeniYCPO2lBU5NQIJn9mX08Hlf/LLyjQCCoTVS4HWEBklbfzvk4isbzmsAD2mebPbs8/SxxyBLaNyKJ2bpOZ/Bpt8G5j8sg1re20LSLcjgj+TNtY08i/8TZtX/rdTv6QrH3k'@; put 'MXmXkuPwEkghkV50/LsWgulffAPVer0mLgy+wUnXlhoBPmTQoPuRBz+PD0NWuhDMGs+jTu1a4b+P3qOUCYwJ5qTJU/DDjN9qjI80EHwEhGAGXwYV9cBL2pgEekko7+/dXvJzSQLn/exdl3cObpMX77rkZz7We7xXa1p6XXIfrSH5L+gICMEMugh80oGGrV045xonOB+mEgpMMo8X5rkwbUI4co//'@; put '/TLqE7D81IiufTA50e8rT92v3by9N2o/4RCwZi0WKyb/NB1f/kjJrGQxPAJMMDlf68XDBirlK2x4wcgABIFqIlBMMKUWeTXh081hLbq60OcyKgjALiS66VX1O8L+l7nZRDDHhaMgTwhm9ZE8eWRjSq3x+uiHNb8jVQgmm8J+mjkPH375Q43xkQaCjwD7zo0ccQnOG9iP/AILgt8h6YEgIAjUCAFO'@; put '4fQ2uTHN+3OZ5j5Ro8bk4KAh0LZPEXqdR+6X5PKiBMG0mJCV4cbP4+wocgjBrPHESq5XG2Ofe0TzZVKFYLKJfM6CxXjroy9rjI80EHwEoqMicOcNV2FQv95CMIMvDumBIFBjBNh3dsInX2MW3acLKThMFmMi0PXcInTpT0FwFNinAsHkFEUZB4Fp5IPp8RS75uhdMro2kXNSYNZgciSl13dJ74Ce'@; put 'rn9MMBctW42Xx318ul3ldwMgwATzjuuvxOCzzxSCaQB5SRcFgdMhwATzwy++xy+/LdSCxE63v/yuTwTOutiBlj05MkYNDabVZkbqTjd+/dB+is+3PtEv7pWuCSZXnHjjuYeplFmCMoE+HFywZsMWKhf57l8BAHqeINK3ihEQglkxPvKrIGA0BMIp0n/S11M0VyZObyWLMRE4Z0QhGndkgqmGBpPr'@; put 'kO9a78K8L8INIxBdE0zO+zb2+Ueo3Fk9LeebYVCtoKNMMLfv2ovHX3pTS4dSwa7ykwEQEBO5AYQkXRQEqoBAREQEvvjhZ3z/yxwtrVUVDpVddYKAiYziw251oG4TMo5ThjEVTORch3zTYg8WTSku86oTqCvshq4JJnsZjP3Po2jepBHloiuqcCBG+ZHTmaRSObzHXxpLiaDzjNJt6Wc5CMRSFZV7'@; put 'Rl6Dvj27aQnAy9lNNgsCgoBBEGCCOXnKdHwzbZYQTIPIrHQ3w+xEMG8vQHxddcpEMsFcTdkNV86ylR6ubr/rmmAyai89fi86t2+jTDUfJphHMzLx1CvvIC09U7cTQzpWOQRioiM1H0wJ8qkcXrKXIKB3BESDqXcJnb5/UXFEMKkOeVQc5b/lfLSnP0T3ezDBXDwV2PinEEyfCeup+25D317dlQqg'@; put '4GoiTDD37E/1GU7SUHAQ4DRFt15zKYYN6KvUHA0OmnJWQSD4CLAP5kTywZxK6eTEBzP48qhOD5QrE0kgMMGc+6UJu9ZaqwNJUI7RvQbz37ddp+UYzM/PDwpA/jgpl5574c33sX7zdn80L20GEIFIqhF93aXDcfkFQyTRegBxl1MJAv5CwJumaOb8RVr5UH+dR9r1HwIprVwYQFV8LGY1tJeMFKcp'@; put 'mjXJgtTtQjB9NnNuufpiXH3xeWo9vKlu8evvfYKFS1f5DCdpKDgIcF3pi4acg1tGXCoazOCIQM4qCPgUAYvFglfHT8SSleskENOnyAausZbdXDiLq/gokgMTHJDipjrk74ch86Ax6pCztHWvwbxs+CCMojyDKmkwORcm51mbOut3loEsBkbARrLs07MrHr7zJmUC0QwsDum6IFAjBDjLR0FhIZ4f'@; put '8y627txD/IRCkGUxHAJdBjjQZRDFkitSxcdEZSId+S5MHW+cOuQ8aXRPMAf26YlH/zVSKYLJ5SK/+3k2PvmWPHZlMTQCFnogtWnZFM8+cAfsVGJOlYpThhaKdF4QqCYCfG9OPXxEI5iH0tKr2YocFmwE+lxciBY9qZyiIknWzVQmMueYm+qQ2+EoMEaZSJ4DuieYZ3Ruj9EP3aWUdog1mPMXLceY'@; put '9z4N9nUo568hAkwo69VJxHM0RxulJCs1T2sIjRwuCBgOAfa/XLpqHd744HNk55wwXP+lw4QA3ZMH3+hASiv6TGZlFSLI2f/yaKobv5AG06PZy40had0TzJZNG+HVpx/QSiOpoh2Saj7GuDgq28sYiiT/1y3XoP+ZPcQPs7KgyX6CgA4R4Ajyz7//GT9Mn4P8gkId9lC6dDoEbGFunHebA/FJ6qQo'@; put 'soaZsW+TG3M+M04VH5aT7glmct3aeIOq+UTQha9KPXLOhbn3wEGtmo/cxE53u9D/72FhNgzpfxbuvulqSbauf3FJDwWBMhHg+zL7XL7wxntYv2WHMuWJyxyswhuj492UZL0QkdFEMGmcKmgwi6v4uKmKj91QktM9wVSxHrkkWzfUNXLazrI8mzSoj/88cjfiYmPkwXRaxGQHQUB/CISRD/XWnbvx'@; put '0lsfIj3zuP46KD2qFAJ1G7lw7o1OWG1qmMd50Ewwl88A1v5unCTr3G/dE0x2un599ENo1rihUv5tHKk4+rUJ2EZ1yWUxPgJsJueSkWf3FjO58aUpIwhFBMQ8robUm3Z2ot/lbqrg41ZCe8lSYYI5bzKwc7UQTJ/PUtYM9ejcQSnzI/keY8y7n2DRijU+x0saDDwCVsqd17t7Jzxy181aJLkq/sKB'@; put 'R1LOKAgEHgHOfclBPc+9/i527tkv2SACLwKfnVG1FEUMDEeRz/zYgkO7jJNknfutew0md/KBUddj6Dl9lUpVxJHkH335PX6a+TsPURYFEIgn8/hjlFKrc/vWSr0MKSAaGYIgUCECXH/859nztRKRuXnqVI2rcNCK/tj3CkpR1NUMjyIpisgDC04nJVkfH4asdOMkWefpZQiCeeMVF+Lay85XjmBO'@; put '/20B3v30W0Uv89AbFidd70tJ1x8YdYMWkCZazNCbAzJi4yHAWT2YVD5P2svt5LLkpjQ3shgTAbPJg3NHOpDUhGRIOfJVkKSZkqznZrsx9R07CvONkwOTZ5AhCOawAX1w/+03KEUw+aa2ct0m/IciFmVRBwEO8vn3rdfizB5dJGWROmKVkSiMAGsvv5n6Kyb/9Cvy8gsUHqn6Q4uMdmMopSiKSVAn'@; put 'RRHnwEw74MH0CXYizBwXb5zFEARTxWTrTDD37E+VVEXGuVYq1VNvZZ8n770NMdFRElFeKdRkJ0EgOAhw5Piefal46e0PqYJPWnA6IWf1GQKJ9V0YeksRrGE+azLoDdnsFuxc68bvXxkrRREDZwiC2bRRCl575kGwI7ZKZses7Bw88fLbOHTkaNAnsXTAdwiE28Nw0ZBzcPPVl4gvpu9glZYEAZ8i'@; put 'wC/5bA7nYMulq9ajyOn0afvSWOARaNqJIsivUC+CfM1cN1bMFILplxmVEB+Lsc8/ivi4WKU0Qi6XWzORr9u8zS+4SaPBQyAuJhr3UHWffr27K+XaETxE5cyCgG8R4LREP/wyG1/8OF1M476FNmitdR1UhM4DyPfS5VLC/5KB5BRFC74zYdtyY0WQc98NocG0Wi2UC/Nh5XJhmkkj++6n32DG3D9Y'@; put 'FrIohAAnX29Yvx4evfsWbd4WUt5TWQQBQUAfCLDf5bLV6zGWao5nHs/SR6ekFzVGoP8IB5p0oGZIeaNCgA8DYuEURZOsOLjDWBHk3HdDEEzu6OgH70Cvbp2VMjlyEvmfZs7Fh1/+yEOURTEE2B+zXavmeOjOG1EnMQEOh0OxEcpwBAHjIWC327F73wG8Om4i9h08rJTblfGk4bseW60erURkQjIR'@; put 'G2KXKhBMTlFU5OAURXZkZxorgpwlaxiCeecNV+KS8wYpZW5kH6BV6zdr6TF8d5lJS3pCgLXv3Tq0xX0UWc4uHkVFRXrqnvRFEAgpBJhcss/7axMmaVXUuPa4LGogEJdIAT63FSE8kogNDUkFgskJ1rPTPZhGBLPIYawIcp5VhiGYHDRx980jlCKYbEZNPXQEj744VsvDpsZlLqMojQDnx+zZtYPm'@; put 'k8mR5UIySyMk3wUB/yPA5DItPUMzi6/fskMpf37/o6f/MzRs7UL/a12wUAJMFcglI24NMyN1u5uq+ITrXwBl9NAwBJMf0KMfvEs5MyMn+H361XcoZdHBMsQjm1RBgEkml5K8+6arEU11y50SsaqKaGUcBkCAyeVBSkP01kdfYuO2nUIuDSCzqnax09lF6DZEvQCfjYs8WPyTMfMuGYZgNk5Jxmuj'@; put 'HwI/qFVKVQSTmdJkTMIfy1ZX9XqS/Q2GAJvLu3dsh/tuuw5cVlJ8Mg0mQOmuIRHgaPFde/fjzQ+/0OqMi1nckGI8bafPvqoQzTqZKIJcHQ0mR5D/SSEam5fYTjt+Pe5gGIIZEx2ppSriYAkXpSBQZeHcnt9Mm4nPv/9FlSHJOCpAgOV9Vo/OuIVyZNarkygkswKs5CdBoCYIsAsSay5Xk5/7BMrW'@; put 'cYDckZRSTtQEHMWOtdrcOI8q+NRSKMCHRcRVfGZOtFAEufFSFHH/DUMw+Wbx8pP/Roc2LZV6KHOqomWr1uHFtz5kecgSAgiwJrND6xa49ZpL0bxJI20+y4MvBAQvQwwYAvwix0GUs+Yvwmff/aylIuJniCxqIlCrrhtDbimEPYpkrIgDJk9Xx8kI8hwDRpDzTDMMweTO3k+mxaED+ipV45lvevxm'@; put '/ZgE+rCIQ2bhh1+TBvVx/eXnU/qtTppPplsiWkNG/jJQ/yFgs9lQSCnBfp49H19NmYGCQkkP5j+09dFyk44unH2li9ITqWMe5/yXmUc9+GWcnZ4Pxnw5MhTBvHz4YNx+/RVKRZLz5ZlfUIhnKNBn594D+rhapRcBQyAhPg6XDhuA88/tjzB6MEqEecCglxMpiAD7W3Iwz+SfZuDP5WukQo+CMi5r'@; put 'SN2HOdCpH+B2qkMwuQb57vUuzP3CmBHkLCdDEcwzOrfHcw/frZSJXBMCabPe+fhLzFm4tKxrR7YpjkBkRDj5ZXbBiIuHoX5SXTGZKy5vGZ7vEfCaxNnf8vMffsGOPfuV8tX3PWLqtMi6vcE3FyKlOVnH3R5VLORaichVczxYNduYEeQ8wwxFMBsk18WYZx/SHLdV8lnjij5sznnv8+/UuepDcSRU'@; put 'PiIyGrBHeHAsrWpVF7jqT7MmDXHVhUPQm0zmvEgqo1CcRDLmqiLAgTw5J3K1e+jPcxbgWFZ2VZtATIIbucdNcLuNaYqs8oAVOiAixo3htxciKt5MJnJ1CCZrMOd+YSItpjEDfHiKGYpghtvDMPY/jyIlqZ5SD1/2x9uwZTue/d94KqEqlSWMeu8LI2LZY0gREhsAcz+zIje7aiSTx82J2Af17YlL'@; put 'hg2kKPPaWmlUlV6mjCpb6bf+EGCtJf9t3LpTM4nzPdRR5KxyR9v3caLbQDc2Lzdh7TwrigqFZFYZxCAeUL+FCwOvddJcUIdccoCP00n+l+/acbyKyoogiuIfpzYUweTeP/fQXVQVpaNSNck50CfzeBae+L+3cORoxj+EJBv0j4DZ7EG9JnSju8EJm82CPRtclL+MyntV42FlpYdmk4b1cRn5HPfu'@; put '1lHT2EvOTP3PAelhYBDg+yVrLdMzMjF97h+YMXchjmefqNbJG7Zxos9lbkREe5B/woM5E8OQfpie7h4hmdUCNAgHdepPCdbPVSvB+t8lIsOoRGTVFRVBEEOZpzQcwbzl6otx9cXnKRfo4yLfkVfHf4xlqzeUKSjZqG8EwiLc6HVBEVp1N8Pp4DytFmxe5sGK6bZqm93YN5P9ji85byBaNWtC7biV'@; put '0tzrW6LSOz0iEBZGD1yqgrVk5VpM+XUe+Vruo2uienmR4+q4cc7VDsTVI1MeGY6sZJJcORvY8IcVzmq8GOoRL9X7xNadQdc50LAdjdSljgaTS0Tu2+TGnM+MG+DDc89wBLP/mT3w+D23KpWqiAXBpp5vplLCdXJQl8VgCJDvZWKyB+fe5IA9kipJ0MsCmzjcHnJ9WACsmmOj79XTiPANNCE+FoP7'@; put '9cYwStHFQUAcaa5SsQGDSVu6GwQEOPUQL9t27sGUmfOwYu3GGkWIs580V35JbmEq9tuj3IlmqxkZB9zk9xZWLfeWIMAS8qeMiPJg6KgCxNZSy/+SK/gYPcCHJ6fhCGbTRil47ZkHNUKmkm8a+2FyBOTzb7wn1SYMdtu02jxo09uFnsM9J7WXxQNgTulykVznmLDxz5qV+mKCmlS3Ns4lojmQfDTZ'@; put 'P1OIpsEminS3yghwACS/fO/Zn4qZvy/C74uWIyuneuZw78nZV6/XRQ607EYXKOdN9Cbm1r56MO/LMKTuNFPJweq9FHrPI2v/I5DczIVB16vlf8mo2UiDOecLM/ZuMG6AD4/DcAQzItyOt//7OOrWTlRKi8MEIi09A0++/DbSM4+zbGQxCAL2SA/6XlGExm1NpxJM7j+5z7C5bdVvZDJfXPObhZnm'@; put 'SXK9OhQI1EsjmnwdsOlc8mcaZLJINyuFAGss+aV7/8HD+G3hEsz7cznSjx2v8cs32RfQdYgLHfuQTZzs4n+Ry5O94sjdNfM8WPc75aQVM3mlZBXMnTqdTf6XQ9Tyv2TFRFGRGz9PsCM73RJMeGt8bsMRTB7x8w/fhTO6qBXow+MSP0xGwWiLh1KckJnmZgeiEujxRX5AJRdNB8Ik00Ekc45vSCa3'@; put 'z0SzLtUyH3DWGejfuzsaplARXlqYaKqk2dcGJf+FBAL8ks3EkufvvtRDRCqX4ffFK7QXbp/MaWq30wAnugwgbmly/YNcMsgWmxkHd3ow/ysbCvKMG1wRChOG58TgG4rQoDXdcxXKf8n1xzMPE8EcH05KNGNr0Q1JMG+68kJcc+n5ygX6sDno22mz8Ol300Lh/qDEGE0UPZ7cnMw0lCbDxC+bp/JL'@; put 'bYx/k0yQZsSKdQss1fbJLAu0WnGx6EWZFdg/uVWzRoiKitKStYufZlloyTa9IcCaSiaW/HK0ffc+zP1jKRZTEM+xrBzfdZXISEfSdnUeaILFSuSynGxwJirPl5flxsyJrD3iK9fYD3jfAai/liJjPTjvtgIl819uX+XBgm+Mm2DdO1sMSTDP6tEZT99/h1KpilggfKNdv3k7Rr8m+TC9E1Tva4vV'@; put 'jRZdPTjrUhdcZNYob/GSTDf7ZM4in8wlpKkpf/fymqlwu53yxLZp3gRnk0azW8e2mp8mv+Vzwnapc14hdPJjgBFgbaXXvzIrOwfrNm/TzOBrN22tUfBOWcMwUxBex/5OdDqH7rEWijin666M98DiQ+lCdVMqzTmfW5G2x1LtDBBl9UO2+RaBhq1d6H+ti/J1qFMekhHiAJ9FP5mwaVHNXap8i3jV'@; put 'WzMkwUyhSNoxox9COOVC84nppOq4+e2IbHJgf+Llt6ie7lG/nUMa9h0C1jA3OvR1o/sQD/lsnT5diuZfU2imFEaUDmU+JXX2Q44zflFJIK1m907t0Lt7J7Rp0RRxsTHatSJk03eyl5aqjgAH7Hi1lexfuWTlOixasQZ7ySRe3XRDFfXCaiWfy3OL0LY36SLNREQq8VLHOQgXfGulXLZmuA1uoqwI'@; put 'G6P/1p2KWnTq71Gq/jgrzPkZMeNDG9L2Gtv/kueXIQmm1WrB66MfRrPGDdULbqDZNfaDzzB/8UqjX/8h0X+b3Y0ug1zodDb5P1aCYDIoZrNJ863ZtdaDNXMpJUqWpt/0C16sJapfrzbl0+ygEc4WTRsimkzootn0C9zSaBkIMKnkechz7iglR2dt5eIVa7GeKu+cyM0v4wjfbLJTbtqe5zvRvAsH'@; put 'i/8zoKe8s7Af5uKpZmxfaSGrhP+uzfLOL9tPjwAXthhyi4OKW7D/ZQUa6dM3pas9+NnALho/jbejUAEfYEMSTJ4RD4y6HkP691EvHybdiGfO+wPjJn2tq4kvnSkbAVs4lYccWoR2Z5oqTTC5JQ7S8dDfIQooWDXbivRU/7+t2mxWNEiuh64d2qAHJXBv3rgBYmNiNPM5+2uKz2bZMpatVUOAzd9e'@; put 'v0p2zcik6O+tO/dqfpVMKtMzjlFMRrlG6qqdrJy942q7Nc1lk/acl7by5JKbY4K55Gczti0XglkOvEHfXKuuG0NHFiKM8g6TB0T5Lg9B72nVOqAlWN9CFaU+sVftQJ3ubViCef7gs3HvyGuVC/ThmzPnfHvqlXeQm+e/t3udzkfDdUur4HO+C616VF6D6R0kiVozhxyn6qBrfrNhz3qOWg2MxoSt'@; put 'AClJ9dClfSt069AWzZs0REKteC34iIMtmBio5n7ixV3WvkeACaVXU8llTdMzj2Hz9t1YRbl9N2zdoZFKF82pQCz1W7rQdZATtVPoWiqZ57KSJxeCWUmggrhb6zOc6H0xMUt6Mfbvq0pgB8n+lytm0vNgbs3yJge21+WfzbAEs2XTRnj16Qe0B6JqD0IHPeD/QwnXN27dWb7k5BddIFBMMJ1EMKum'@; put 'wfR2numkyWJGYQGwdRkF//xhJdNIYEimtw9c+7x2YjzatWxGwUHtNJ/NOom1wGX5mGiK36YXKVl7EeAXYS+h5G3ZFKiTejgNm7bv0kzg23fto/rgOQF9SbGRP3TrXi6yJrgRGUfc0lm90oFCML1S1u/6bCrx2awjydhFL8L67WaVe8YpimZNsiJ1u/8tWlXuXDUOMCzB5DrNY59/hKqb1FHOtGe1'@; put '2vDlDz/jq59+rYZI5ZBAIlBTguntK/vesH7n8A56e51HEaz7gnODYeIQExWJFvQC16ltK7Rv3RwN69fTTOn8G5NNNqWr9lLnlYOsy0agNKHMy8ujwhCZVAt8PzZs2YEtO3cj9VAanDQ3grEkJLvQ+RwXGrbhSHEK/CiVj7YqfRKCWRW0Ar+vVh7y9kLEUt5hE7laqEIwNf/LEx5MfYdysOYG5/7v'@; put 'a2kalmAyEE/eexv6UUqWggJS/yi0sGZg3aZtkq7IADL1FcHkoWomcyKaudkeqvpjIR8wKxwFgdVmloacTenJ9BLHkegdiGy2ataYqmglIDIyUttVzOmlEVPju9fkzfciXphQHqUKYzuJUG7ZsZt8KvfgwKEjPk8pVFX0wuweNOvGWksX4hIo3oMTbteQcQjBrKoUArt/wzYunHONi4qkqaW9ZP/L'@; put 'A9s9mPUR5b/kh4ECi6EJ5mXDB2HU9Vcq54fJ84r9L5+kdEX7Ug8rMM3UHYIvCSajVGwyJ20mqTMP7TRpSdmP7NbP2yxbDlij2apZE3Ro0wKNqYIQm9O9hNNrTpe8m8aZ86ydZELJkd78mWV3Ijf3Lw0lm7u37dqDg0eOBp1QlkQ1qYkL7fu6kNKyWGvJVbRqyC215oVglkRZf597nU9pp84iWTvV'@; put 'Ipia/+Vsyiwyx/gJ1r2zxtAEsy1pVV5+6n7NXKeayc5MmoP3P/8Ov8xZ4JWVrHWIgK8JpneI/AKrmUxygZ2rKG/mUgtyj+uvdF0x4UzSgoT4emzSsD7qJiYgOjpKIy18XXpJp2rXqFdWRlp7yaRXQ8l9ZwtQ5vEsHEpLx+59qUQm92prNoGzP7jelthE8rXs7USLTh6Ex3Bi9JprLUuOUQhmSTT0'@; put '9Zn9bIfdVoRaSR6loscZZfa//HWiBYd2GD/BunfWGJpgRoTb8eZ/HlXSD5NNU0tXrcOLb33olZWsdYiARjAvoCjy7lWPIq/McLR0RsQrjx/xYAuZzXett1A6JP0RTe9YwsJsqFc7USOazRo1IOLZgPJw1kV8XAyiTprVhXR60fLvmkkkE0rWTPJnxj0/Px9czCGNUgVxvW/2odx74KBW2CEnN0/T'@; put 'Xvq3V9VvPTLGg+bdnGjZ3YXYRHoD46I8NbWHl9EdIZhlgKKTTay1HnorJ74k4ZO62hcaaz0MjZUJuTluTHvHjgIF8l96MTU0weRBPH7PSKrBfIZyfpg8No7CfOKlN3H4KOWxkUWXCIRFUB7MYWSy6VW9KPLKDIrN5mYreRyRf9nh3cCmJfSWu81KmsHKHB3cfZjgcNBQvTqJaNygvkY8G6UkIalO'@; put 'bdSKj0VEePhfSbg5eIjNs/wn2s7KyY3x9f55Tdz8nbXGOSdywWUYj6RnYP/BIxqh5PVh0lTydn+Qs8r1ump7Rca40aQjlWQlX8uEJL4aSGPpI3N4WT0RglkWKvrYxgE+nSkFVQt6ybCRxk/TXuujazXqBftf7t/swexP1ch/6QXD8ATz/EH9cO+t1ynph2kircP4iZMxa8Fir7xkrTMEbOFUJnIw'@; put '+4L5R4NZcrjEGyg1jJmqVwEHd5JGc4mV/DSZePJD1zgLEyA2rdemvJv1k+qgQf0kNKDyr/Xr1aFcnHGIJfM6+3R6A0zKIp6hREC9BJLXjIlXM8kYFBYWIr+gEMezsin35HHNzM3BN4fSjpJWMo1M39na78aZHX/3NCrOgyYdqBJPNzcS6nHcAxMK//vdCcH8WwZ6/dSwjZPK8zqRkMzJ8DmrhV57'@; put 'Wrl+sf/lkp+pfPBCNfJfekdteILJ1Ug4HybfeFV76FjItPXnslV4ZdxEr7xkrTMEmGB2G8z1yCtXi9wX3WeiyfWSnQ4mmiZsW2GmtfGrjjBxioqMQEJ8HFUcqktazkQkE+nkqHXeVkw8I2Cn/Jxcz9q7lNR68j2Av3sXvd4TmCx5Fx43L7z2/nl/Y3LtJZEnKJL7GBHGjGNZWgAOm7bTqPRiJn1n'@; put 'a0dBIU0IBRau0tK0swuNO7gQz6bwABFLL3RCML1I6HsdGU3azMFFaNHVQ1aQk764+u5y2b3jKU5a+V8+CEP6fv0EdJbd2aptNTzBDKPyd2889ygaNUjWzEJVG76+9+aH0DHSTIiZXL9yCgbB9KLBHMVCpvMiCnJI28vBQFbs32pSooatd4zetY3SJcWQZjMuNgbx9JdIms7aCbU04plApva4mGiq'@; put 'sR6paUbt9jCNhPJLJ5uNy3r59JJQ75rPw2S0NCEt/d3bn5IEkbfxd++2kp+95LHkcUwavflEC6nqDRPD/PwCMIHMzsklbWSOdt0zkeTgG/7LIr/JE+QjydrK8vrkPYcR11abB3WbuNG8E0eFU6L0WNLMk1YqGJHCQjCNNYMatXORNpMCf+oZU5vJyoKsdPK/HGeHs0i//vXVmRWGJ5g86H/dfDUu'@; put 'HDJASTM5R5OPm/gVZs0XM3l1Jri/jwkmwfSOzUs02Ucz85AHezZasWeDGdnpat2svOMta82kjgOMIux2RETYERURoRFSJp2sFY0mk3tUZLj2OZyCA8PD7LDbbRoRDSNtKNdp54pGxSZoYu6kU7CSO4LJVBwcU/qcHipB6C196KJqIpxgnMkqE8aiIqdGGjkC2+Eo0ohhHkVq5xGJ5PRjubn5Gplk'@; put 'H8lcCrrJzy/U9udjVSSPpbHzfuexxtYGGrV2olEHN+o0AKw2E1xkBueqA8GyegrB9ErIOOsICgDrOqgIzbu66aXSWL6ZbB7fstSDP35QJz2Rd+YoQTD79eqGJyjpOpuSVFtYA7J8zQYtmjyUHj5GkaMeCKYXK6ZFHAxkMnm0ZO0HdwB7N9hweI856AnbvX3U41ozS5/UQHJiea8Gkgkn/8YE3ruw'@; put 'rxd/dxKpZELJf05nMbnk65MDZ+Q69aJV9poDNeo2pcCd9i4kkdYyKo4NhEQKivzvX1l2j07dKgTzVDyM9I3dKrqR2TwhyQJnoTHqlNvsFvw+2YSda9RJT+SdM0oQTA4WGEvpitiEVtLk5R2k0des6eCk6weoFJss+kJATwTTi4zGh0h5yWTJSdqgY4c9ZDrnKEULfSYzUnCq+Xm7J+sQRMBO2RZq'@; put 'N3ShUVsXkpt6EFObEruzHzGR82BqK8sShRDMslAxzrbIWNJmDihCs+7km0kujXqONOeXVUcBmcfH23HiuFr+lzxjlCCYPJD/PnoPunZsSyYpNRzdeUzehYN9Pv7yB0yZOc+7SdY6QUCPBLMkNEw2zTYKHqEPBfkeZBwksrnFgoM7zMhKM14EesmxyWd9I2CPcCMxxU31wd1IIlIZVxfkisAmcDJ/'@; put 'kwY4WCbw06EmBPN0CBnjd9aQdzuXk7LrV5tppXtz6g43Zn4cbgxQq9hLZQjm5cMH4XZFy0aymW795u0YPWYCaZ9E/VTFOe7X3fVOMEsOnt+WOSiI1/m5bvLXBFIp+vwwpTo6dpi0SYo5mJccu3wODAIRFNlbhzSV9VuRprIxaSrrkC8rkUoPkUq3jkllSXSEYJZEw9ifo0ib2UWLNGfXFv/mT60O'@; put 'Uux/uWw6sG7+31kxqtOOXo9RhmC2aNJQS1fEZExFHyiONH1uzHhs3blXr3MpJPtlJIJZUkAUu0IBLcVks7DAQ9pMN47s4zJlZqQftCA/m/ZmJiqLIFABAmZ6aEcnUIBOIw9SWri0dXQtrh5E2nHKbmAUUllyiEIwS6KhxuemlJ2g60AH4pOscOnFN5Nur8xVZnB6ogPqmcd55ihDMNkhf8zoh9GM'@; put '8mJyChDVFk638t3Ps/HJt1NVG5qhx2NUglkSdKaRHBzE6TI4gvdElgfHDgKHiXCm7aUUGkctcOQL2SyJWSh/DrNT4vPk4rRCyRSsUyuJ0grF0MsKvdyzzy/8WGUnELgLwQwEyoE/Byfu7zLIQXkzi9+d/VkNqjKj49rjmQfd+PldO1km1cz4oQzBZIHeft1luPz8IUqmK+LIVq7Q8diLY7VUJ5WZ'@; put 'wLKP/xFQgWCWREmjkScDhEDaqaJCIpzHgczDZqRRNPpRIp45aRby5xTCWRI3lT9brGTqTiBC2chNuSpJS9mAtJbxQFg4WYuYT5LpW2+BOjWRhxDMmqCn/2ObdXGSNpOS+NelF6IgajPZPL5uoQfLflYvPZF3FihFMLt2aIP/PPIvJTWYLDBO5THm3Un4c/kar/xkHWQEVCOYpeFkGmkizSb7bvIM'@; put '1Agnmc+z0kxITyXfTfrLPEI+nTkSnV4aO6N+t1DS8xgikAn1XahHhDKhvgfxtT2wRxancOJyjW6Daykrko0QzIrQUeO36HjOm+lAsy5cICE4vpmswZz1iQWp29RLT+SdJUoRTK5vPPb5R5BUt46SwTBSOtI7bfWzVp1glkZa01sS4SxOQu6hlzkPCvJIy5lJVaeOmJBxqDhgiJO8F+ZSbkOPaDpL'@; put 'Y6i372GUQiiW/CgTUzxIbOBCYhJpKBPdlLDeqr1c/OVLqdewbx8DKgTTx4DqtDn2f+TE7F0GOlErwNpMdkfKyXRReqJwSlOkpnmcxa4UweQB3XfrtRg+6GwlzeQ8vmzKifn0K+9g/8HD/FWWICMQagSzNNwafaT7o4UTktMbOXmta1rO/FwP+XJyKiQyrx+yaBrP7Ayg8ASlDJFECKVhDNh3WxgR'@; put 'R4qsja9DZDKZfCmJVMbVoWTnsVQJyU6CpHxWXkLJeYRChFOegr8QzFPgUP5LTLwbXSmdUdPOpM2kGR8I30xOrr51uRt/fG9XGl/lCGbvbp3wzAN3KJkPk2eixWLFVz/+gq9++lXpiWmUwYU6wSxLTsVaTpqrFKruJZ1OqtLCpDM/x4wcIprHj5roz4wT6SbkZpnIp7PYn6+s9mRb1RFgGYRFeqim'@; put 'txtxiUQoiUzWqgf67CKCaUJ4JLk9aBk3in0oA/FQrfoognOEEMzg4B7Ms7I2s0U3NzqfQ5HmdSnS3OHfKkC2MDN++9xCZX3VjB73ylI5ghkbE423qKpPAlX3UTFnJKdh2rX3AJ5+9R0J9vHO4iCuhWBWDnyNdNJ/mj/nyfRIXDvdUeBCYR75cJ4gjecxC9VPNyE7kzSeR4E88vUszJP8nBUhzJmk'@; put '7EQkwyn/ZEwtN9X2Jo0k/XFQTjRpZsKjiWhGUI112pG1kRyQw2QyVLWTFWHp/U0IpheJ0FvzNcR5M5uTNpMvEn+8eJnJSpCbQ9Hj4+z00q2ueZxnj3IEkwf14KgbcG7/s1BQUMBflVs42Oe18ROxaOVa5cZmtAEJwayZxDTiSf5IXGnIfJJ4sjahiKI7CylSvZh8msjcToTzGK/NRDxNyMuh30gj'@; put '6ijg1Eqc+7Zm/dDz0VarmyK2vRpJUO1uIo/0IGQzd2QcmbxjSCNJfpQ2ikq1EJDs9soPRibwHv5TGBt/yE0Ipj9QNU6bfP9p1d2FzuSbGZtIwYs+1mayeXz7ag8WfK1u9LhX2koSzL49u+LJ+25HYWGhd5xKrS2U83PZ6vV48a0PtUStSg3OYIMRgukfgWnEk8gSE08T/ceaT20b3fxdFFjkKKIA'@; put 'o0JaEwktIC1nYS4R0BO8JvJJnwv5cz7V+c2jYCN6z3QXAUVURZbJqJuy6gR7sVg84GhtK7lg2aiIhz2SNY2kcYwCIqI8RBpZKwnKL0mfo9ywhpOPZDiRSDKtWdnXlTWSRBw5kTlxSPogRNJXMhWC6Sskjd1OLAW6dSVtZpOOxb6ZnDnBFwtfw3O/NGP3enWjx704KUkwVTeTc07M/IJCPENm8h17'@; put '9ntlKesgICAEMwig0ynZNMz/kccIrTk2hQNUtI9ah1hz52QtHqXUcRK5dDrY1E5rqsHgJKLppHdPRyFpP3k7fS+i7S6NgNJvRRTo4mLNKFei0WgtkTn6TqTW42Zyx6cgOwKd30JKiGLjs4c0sNDIn4nyRtro2WGmtSXMQ8EznOaJCCSRSSsF2dh4bad9iFjy8RZaM2nkVFCsgSxun87ABJLZsLbm'@; put 'UwqJ1ITr5/+EYPoZYEM1z76ZLnQf4iKXE7NmWalJ90PJPM44KUkweWD333Ydhg7oq6yZnCv7TJ05Dx98+QMPV5YgISAEM0jAV/K0XiLKuzN385I3vtFrX0qQUt6n3OUkuWPS99dCTZj5BNzUaRbtMI0rMkktboSTlGufuNHif6dpRX4OBAJCMAOBsrHOEVvbhZ7nFaFRe28J1OJruKqj0Mzjq8g8'@; put '/o365nHGRlmC2bNLB4x+6C5lo8lZe3I0IxNP/N9bSM+kUiuyBAUBJpjdB7vQvi9pwchvUBZBQBAwNgJCMI0tP3/1ni0VrXq5tLyZ0XGWat3vrSfN43tCwDzOclCWYEaE2/EmRZOrmnSdhWcmm9ykb6bgxxlz+assQUCA/eJ60Jtt216mat1wgtBlOaUgIAhUgIAQzArAkZ8oUwNpM4cVoXEHCgA6'@; put 'WdWqMrBo5vFsF6a+E07+4ezbo/6iLMFk0Y26/nJcNvxcZZOuF6cs2o+nKPF6Xr6aEfN6vwQ5MKPXBS6KOhQNpt5lJf0TBCqDgBDMyqAU2vuwNrPNmS50HcB5ZSvnm8m1x7cspeTqP6idXL3kzFCaYHZo3QIvPn4v+cazc3z1fCZKgqXLz2Qqf/ujLzH3z2W67J7qndII5vlOtOohGkzVZS3jCw0E'@; put 'hGCGhpx9Mcr4ui6yYDnRuK2ZggApo8NJ/+qy2uZ5NfsTEw5spai+EFmUJphWSuczZvRDaN6kEYqKKIRUwYVTFq3btA3PjZlAUbPiAxhoEQvBDDTicj5BwL8ICMH0L76qte7VZnYZ6KK0YmVrM7n2+PEMN34ZF07p0ioRFagISEoTTJbR1RcNxS0jLlXWTM5jdNFb0yvvfITlazfyV1kCiIAQzACC'@; put 'LacSBAKAgBDMAICs4Clq1SvWZjZq809tJpvH1/7uxvIZoWMeZxErTzAb1k/StJhhlHROVTM5+2IuX7MBL739UXHePAUvXr0OSQimXiUj/RIEqoeAEMzq4SZHEaEyedD2TCdVAXIjMvqkNvOkwvLXD2xI26927fHSc0B5gskDfo7SFfXs2lHZyj48Rgdlin7xzQ+wbvM2/ipLgBAQghkgoOU0gkCA'@; put 'EBCCGSCgFT5NfD0neg53oSFpMznH7eE9Tkx/P7y4UIPC4y49tJAgmOec2QOP3XOrsknXWahW0tDOX7Qcr737SWkZy3c/IhBGNaB7Dneg9Rll+9748dTStCAgCPgBASGYfgA1BJs0m0mb2ceJHkM8WDXHhPXzQye4xyvukCCYMVGRGEs5MeskJsClaCAMJ14vKHRQsM94bNmxxytfWfsZAZud69W6'@; put '0LGfpCnyM9TSvCAQEASYYC6aYsbO1RatbGhATionURaBhCQXCnJNyMsJjdyXJQUZEgSTBzzqOsqJeb66OTF5jBYqH7lwyQr8b4JoMRmPQCxcW7rdWW70GEa1r6WSTyAgl3MIAn5FgCN+F3xnwd71lEj7ZC16v55QGhcEFEUgZAhm6+aN8fKT95MTLiUVUDQnJo8tv6AQz78+QbSYAbpgLVYPmnZy'@; put 'oe/lLridiuZaDRCWchpBIOgIcECGy4PfvrLh4A5LyPnMBR1/6YBSCIQMweT7xouP34fO7VsrW5+cZ6ZoMQN7fXLUYFITFwbd4ITZSucWjhlYAcjZBAFfImA2wZHrwZxPwpB+mJ4aHn5yyCIICALVQSBkCCaDc+7ZvfHgHTcpHewjWszqXAbVP4a14XGJHgy6yYHYRNKOk/ZDFkFAEDAmAmwezzxC'@; put 'GsxJYcgNQZ85Y0pNeq1XBEKKYMZER2Hs848oHezDE421mH8sXan5YqrqDqCnC8oe6cZZlzrRtIMJTodUU9KTbKQvgkBVELDZLdi+0oMlv1jhyAu9oIyqYCX7CgKnQyCkCCaDMfLqi3HVxecpXdmHx+mg0pj/pbyY6zdv56+y+BEBi82DNj1d6HWhBPr4EWZpWhDwOwKWMDMWUwT59lUU4FMk5nG/'@; put 'Ay4nUBqBkCOYjRsk47VnHoLNZlU22IdnLNcoX0GlIzn5usvtVnoSB3twFFuFhBQXhtzogC2CtB5UulMWQUAQMBgC5H9ZmOsm/0s7MsT/0mDCk+7qEYGQI5gshGfuH4Uze3RRurIPj5NrlL82YSKWrFrPX2XxIwL2SA/6XuZA4/ZmMZP7EWdpWhDwFwJWMo/vWushDaYVhfliHvcXztJu6CAQkgTz'@; put 'jC7tMfrBu1BEZmSVF9Zibtq2E6PHTCAy7VB5qEEfm8XiQeOObvS7oogCfYLeHemAICAIVBUBskTM/9qK/VstlHJMzONVhU/2FwRKIxCSBNNGQTD/e+YBtGjaWHmSSYk/MX7SZMxesKS07OW7jxGIjHVj4DUO1GlsJv8tcUvwMbzSnCDgNwSsYRak7nBj4WQb8nJFe+k3oKXhkEIgJAkmS/j8Qf1w'@; put '763XKR/sYzabsS/1MJ58+S3knMgNqckd6MFarG406+JGn0vccLuEYAYafzmfIFAtBEhZyfrKBd9YsXczaS+lek+1YJSDBIHSCIQswYyNicYbzz2sfMoiFrjVasNn303FN9NmlZa/fPcxAhFRbpx9VRFSWokvpo+hleYEAb8gwKmJdorvpV+wlUZDG4GQJZgs9puuvBDXXHq+8lpMTr6ecSwLz7z6'@; put 'Dg4eORraM97PozebqbJPMzcGjHDCaqdCIBJR7mfEpXlBoPoImCixegFV7vntUxsyDpops4j4XlYfTTlSEDgVgZAmmMn1auP10Q8jMiICbsVT+VhtNsya9yfenvjVqTNAvvkcAZvdg479i9B1oAlFhRLx43OApUFBwBcIEJdkF6Jl083YulzyXvoCUmlDECiJQEgTTAbivpHXYPjg/iGhxSygSPKX'@; put '3voQ6zZvKzkH5LMfEIiIJlP5lU40aC0k0w/wSpOCQI0RsIVbsHWZmwimDQ5JS1RjPKUBQaA0AiFPMFs0aYhXnn4AFnqTVb2sIqctWrtxK14Y+75W6af0ZJDvvkNAS76e7EL/EUVUq5yiyp0S9OM7dKUlQaBmCHDOy8O73FhAaYlysswU5COm8ZohKkcLAv9EIOQJJkPyxL234uzePVBQUPBPhBTb'@; put 'YiIizWmLZs1frNjI9Dcck8WNBi0oAfvlRbBHmig6VSr86E9K0qNQQ8BqM+NYugfzJ1tx7JCFFAuhhoCMVxAIDAJCMAnnTm1b4oVH79E0mKprMTng58jRDDxNAT9HM44FZpaF8FksVg+atHfiTEpdZLFR0I+QzBCeDTL0YCNgIXJ54hhpLr+x4eh+M/nei+Yy2DKR86uLgBBMki2Trucfugs9unRQ'@; put 'vnwkT2ULJZr/Zc4CvPfZt+rObB2NzGLzoHlnJ3qeLyRTR2KRroQYAkwuc7Pc+PMHGw7uJJcoIZchNgNkuIFGQAjmScTP6EzlI4lkql4+kofLhJoDfl586wOs37w90HMuJM/HJLMFkcwzLnBTXlKIuTwkZ4EMOlgIcKWe7AyXRi4P7xFyGSw5yHlDCwEhmCflzUE+/33sHnRu3yY0tJgn65Q///q7'@; put 'yC8oDK1ZH6TRcqWf5p3d6HkB5cgkbYpU+wmSIOS0IYUAJ1LPPOzBoh8sSCOzuOS6DCnxy2CDiIAQzBLg9+7WEc88cCccDkeJrep+tFismPTNFPww/Td1B6mzkZktHrTs7kS3QW6Ex5ikZrnO5CPdUQsBTkV0aJcHi6dYcDxNAnrUkq6MRu8ICMEsISGr1YIXH7sXHdq0DAmSyabyrJwTGP2/8dhz'@; put '4GAJJOSjPxFgc3mDVk50H+ZBfG3A6ZAURv7EW9oOQQTMXCLXjN0bgGU/W8n3koN5JKAnBGeCDDmICAjBLAV+nzO64Mn7bg8JgslDt5JD4OIVa/DK+ElwuaTqTKnp4LevXFIyMcWF7kPdSGkOFHGeTOGZfsNbGg4dBMxU/pErs21facWKmRYUFRDblEUQEAQCjoAQzFKQh5oWk4cvuTFLTYIAfo2O'@; put 'd1NZSSdadKfgH4skZA8g9HIqBRGwhJlReAJY+7sZO1bRZ6nQo6CUZUhGQUAIZhmSCqWIch4+1+NNS8/E6DHjcfDw0TIQkU3+RMAW7kbTjm50PseF2AQqLVlEqkxJ/uxPyKVt1RAwm8gaY0LaXmD1b1SlZze/rIlJXDUxy3iMhYAQzDLkxRHlLzz6L3Tp0DYkIsoZAqvNhoVLVmDMu5/CReYlWQKL'@; put 'AJvMayW50GWACw3aerRUUm6nsMzASkHOZkQEOL+lk17Ktq0wY9NCK7KPc+FHIZdGlKX0WS0EhGCWI89uHdviOcqLGUp+iZqpfCKVkVwgZSTLmRZ+32yPcKNZFxfa9/EgjgKAioqIZLqFaPodeDmB4RAwkdbSQlrLzEMerJ1nwf6tRDQd4m9pOEFKh5VFQAhmOaLlCOvRD9yBXt07h0SNcoaBTeVc'@; put 'PnL0a+ORejitHGRks78RMJkouryeG+37utCknRu2CDL3idnc37BL+0ZBgJSTNtJaFuR5yM8S2LTIhpxjrLEUraVRRCj9DA0EhGBWIOd2rZrhxcfv025bqtco98LApvIlWlT5RDidElXuxSUYa05nVL+5Cx36uFGvKZnNSWOjEc1gdEbOKQjoAAE2h7sp2wWXetz4hw1H9oB8LUVrqQPRSBcEgX8g'@; put 'IATzH5CcuuGRu27GzJmaHAAAQABJREFUwL69QkaLyaM3U5Wfj778HlNnzT8VDPkWFATCIjxo0tGFNj1dqF3fRJVI+KEqfrJBEYacNCgImMkUbqYXrIyDbmxabMXeDRY4CkRjGRRhyEkFgUoiIATzNEA1bpCM/z3zIOxhYVputdPsrsTP7B5wIjcPXEZy++59SozJ6INgDXpUjAdNO7nQsqcbCfWI'@; put 'aBLHFKJpdMlK/ytCgHNaMrnMJo+drStN2LnKgtxsCuGhe5QsgoAgoG8EhGBWQj533nAlLjlvEPLz8yuxtxq7WEiLuXHrTrww9j3k5ReoMSglRuFBRAzQrFNx7syEJB4Umc5ZoymxQEpIWAYBCt4xw2QBso+Sn+VqM3autiCHosPhEWIp80MQMAoCQjArIanaCfF447lHERcbHVJR5Vzl5/tfZlO9'@; put '8qmVQEl2CSQCHmKTkdFAo/YutOjGpnOP9lB2cmojiToPpCjkXL5CgLgjl3fk96TjR4hYrjFhzzoK4DlOG4RY+gplaUcQCBgCQjArCfWVF5yLW6+9PKS0mGyGKipy4vX3P8PilWsriZTsFmgErHY3GrR0o0VXCgZq5kF4uAlOF1FQ+pNFENA7Ahy8xknSucBAxgFg51rysdxoQT5V5JHIcL1LT/on'@; put 'CJSPgBDM8rE55ZeoyAi8Pvph1E+qS9HVzlN+U/kLpy46cjQDz1LqosNp6SoP1fBjs1jdVN/cg+aURzOltQextdikCJqvYj43vHBVGwBrK6k0KsgMXpDjQepOE3atMVMFHqodXihmcNXELeMJTQSEYFZB7sMG9MF9t14XMtV9vNCwqXzZ6vV4ZdxEOIqKvJtlrVMEOI9mVJwbjdpRUFAHJ5FOyhto'@; put '59J5HkrxIlpNnYotJLploqAdK/3xS8+xI8C+TRbs3WTG8aNkGncJsQyJSSCDDBkEhGBWQdSsxXzm/jvQqV2rkCOZFosVX02ZTn8zqoCY7BpsBDiXZr1GLjSmWucpLUirSbXOObErk02P+GoGWzwhcX4mlRb6Y2169nEPDpO2cs96M9UNp1RDoq0MiTkggwxNBIRgVkHubC7mEpJP/fv2kEq+zhCx'@; put 'P2aho4hqlX+CZWs2VAE12VUXCJBWMzIKSGnlQsN2LiQ14mh0Cz3zPaRNoie/kE1diEmVTvxFKulOmZvlwtH9ZuzbbMYhSpCel03aSlGkqyJqGYcgUC4CQjDLhabsH8JsVvzr5hEYOqBvSAX8MBqcuoj9MJ8bMwEHjxwtGyDZqnsETGb2z3Sjfis3GrYmv80GoIh0fuh7RLOpe+nptIOkoORE6Fwb'@; put 'nPOz5ma7SUNpxoHt5Fe5g/LqZvH8op1kEQQEgZBBQAhmNUTdKCUJLz52X8ilLWKo2B9z5bpN5I/5MfILCquBnhyiJwTMFjabE9lsSWUpW7hQpwFpOkmzCdJ4aj6brNkUbZOeRKafvnD0N5m+TRSrwyVMsylPZdpe4OAOC47sNp3UVAqp1I/ApCeCQGAREIJZDbytVgsuGz4YI0dcGnJaTIaLSeZP'@; put 'M+fhgy++l4oa1Zg/ej2ENZvRpNms19iDlJaUW5PIZkw8aaVsxVopTn0kpnS9Si8A/SKuaCFSyZV12JG3MNeJYxScc2SviUilGZmpFhTkcT+EVAZAGnIKQUD3CAjBrKaI4mNjMPrBO9GqeRM4HI5qtmLMw9gfk5VaEyZNxqwFS4w5COl1xQiQBjM8Akio70Jy8+JAobh6QEQUVVgh/uBxUfoj1m6K'@; put '72bFOBr5V5Izm721co3sg13gQm4O56okUrnHqhHLLCKYbon+NrKUpe+CgN8QEIJZTWjNdMPt1a0THvvXLVoL7L8WSguTzByqV/7yOx9pJSVDaeyhOFY2pcfU8mh5Nus1cSGxvhuxtSlQKNKqmdO1uuic3J2vg9C6FNSZDkQoWUNpIg0lX9/OQiKUWR5kHjHj6D6O+jbheJoZhfm0o2gp1ZG7jEQQ'@; put '8BMCQjBrACwH/Nw78lqc2/+skDSVc9DP/oOH8Z833tOSsdcASjnUYAhY2Jye6CENp5v8NilQiEpVxhHhDI8ivzwbabWIaHIlIRcFfIiWU4fC9WonmVCSDyWXYszPd5LfpAnHDpmQTlrK9FQzsohcFhQU/67DUYR8l2z0DLKH2RAVGYnwsDDY6LM3RJ/f85xUia2ALGx5efnII0G6tAsy5GETAAKE'@; put 'gBDMGgLdILkeBfzcg4Ra8SFV4ccLG/tjrli7Aa+OnyRBP15QQnBtJpN6RCyRzLpEOpPcSEj2IJ4+R9E2O5nVuRQgazfZtM7k0y3BQ4GbJV7NJAXkEJ8kBTOVZSTtZP4JD7IzyHfysBkZRCozD1JKoWNmFGkeP6yllEVPCERGhCO5Xh00bVgfjVOStapyibXiEBsTjXA7kUubjYKuLKf4xTtdLi1n'@; put 'M6eYyzmRi6MZx5B6OA17DxzCngMHkXoojdLPhZaLl55kqnpfhGDWUMKsxbtgcD/ceePV9KbPr/qht1jpxjZ9zgK8+9m3xSbS0INARlwGAnRpIDKWTOl1PKhFZDO+jovM6rQt3kWaTjPCqLoQ+/hpxJMt66zxZLWLmNnLQPM0m5gPklmb85lzDkr6qBENFwFamOdEfq4ZJ46xiZs0lEQos2idTd8d'@; put 'eZKT8jTIBvXnlKQ66NS2FTrSX/PGDVA7IR6RpK3U/ODpOuGyxcXXT7F7Cn/m30ou/J3/OI+z94/3O0GEMy0jE1t27Maq9ZuxadtOHMvKKXmofBYEaoSAEMwawVd8MFf4efLe29CVkrAXFoZm6h6z2YJJ30zBjzPm+gBRaUJVBLiMpT2CUiGRZpPJZkxtIqAUuR5di4hnHJnYIz2w2oGwMCs9FAkF'@; put 'IpyauZ3LqdNDkasPMQcNOT/Pk5yBrdmshmRizqZtjWjQJlehm4Jw3CjIp0TmWUBOOnCctJM5FISTfYzzUrJPJTdyKvng5mTRFwJ1EmuhZ5cO6Nm1I1o0aYha8XGanIuoTK/b7dauA1/0mOcOK0hY8+kiTWdaegY2bNmBhUtXYc2mrRS8KmWBfYFzKLchBNMH0ucLtW2Lpnj+4bvpwWjTbgI+aNZQ'@; put 'TTAGRU6XVulnyap1huq7dFYPCHioXjpgJ4IZGcPkk9ZUTz2GSGcEE0+qQsS/hdE+VkqbZAujaHZW19GiEVEioExENULqjWw/SUY1Qso7/vWBv+hgOcn1NNqnMcdi4sg9I2WTRiR5SNqYyHeuyEF/RBId+R7SSBKJzLTgxHHgRCYlMifTdl6OCQW5bP7mFoRIMgpGWfjlqW3LZhjS/0x07dAGdWsn'@; put 'aqSSM5Twb4FYmGyGkR8nE9mde/bhtz+WYQGRzeNZ2VpfAtEHOYdaCAjB9JE8beSLOOKSYbjusgtCMuCHYWTzy5GjGXiNyklu27XXR8hKM4IA0SUKKgqz0194MdEMjy4OKIqIdmvEMyKKfqO/cCagtI+VYh2sNjcsYTwvKfDISuZBzh+vqf0IUeJff1Ew/nCSyBWv6H/vM927Pp0QvI1p7RZ/0f7X'@; put 'iGNx+381xc0T+eWAC05m73KaKFE5iEB6UFRABJL+ColA5hFZzD9Bf2S1zM+hYBtaF1AEtyOfgze49eLznK5r8rt+EeAX887tWmH4oH4aseRgHTZ7s0YxmAsTTSace/enYubvizB74RLNhzOYfZJzGw8BIZg+lBnnxnz2wTvQunnTkMuN6YWRSebOPfvx2nuf4OBhKSfpxUXWgUKATOyUUslMWk6L'@; put '1Wtu98BC5NQWRppPIp62cLdmhrfa6Hfaj9dc4pD3N1PWJYvVreV+5Ie/2UwklROLk2n/L9JZciisPiUNk5MIosftLbdJJmviBy4igW4nkUH6c1EchYO0j07vmrSMHFtRVGAm0zURy0Iz7c8+deyTKsSxJMSqfm7VrDEuHjqA0t11RGREhPbMCJS2srKYchAnm9B37d2Pb6fNwvwlK0PSQldZvGS/'@; put 'UxEQgnkqHjX6xuSqS/vWeOb+UZpJQW83ixoNrgoHm+nNd82GLXjj/c9wPFucxqsAnewqCAgCiiOQQD6VlwwbgHPPPlOLAGeTtN6fFUwyeVm+ZgM++24adu8/qPs+Kz6NDDE8IZg+FhObym+66kJcccHQkDWVs+aHTZELl67EOxO/QkGhpMHw8TST5gQBQcCACPTs0h7XX34hmlFEOJvBOWjHSEsE'@; put 'aVozMo/h66kz8ctvCzQ3DyP1X/oaWASEYPoBb35Dff7hu+gm0jBkTeVMMjnWYua8P/DR5B/J9BdcnyI/iFmaFAQEAUGgUgjEREXi6ouHYSgV5QgnR2H2szTqwr6Z/Dd/8Qp8TPf29EyKNJNFECgDASGYZYBS001cRrJbp7Z46r7bQ9pUziTTRSzzh+mz8cUP02sKqxwvCAgCgoDhEGhCidFvu/Yy'@; put 'dGrXmvx03YbTWpYHOOfj3LZzN97++Cts371PTOblARXC24Vg+kn4xabyi8hUPiRkTeUMLfulchWJz7+fhqmz5vsJbWlWEBAEBAH9IdCzaweMvPoSpFDFNyNrLctD1m63I/PYcYz/5GssXbWeFArGMvmXNy7Z7hsEhGD6BscyW0mIj6WAH4oqb9E0ZBOwMzCsyWQ/zI+/+hGzFiwuEyvZKAgIAoKA'@; put 'SggMpZyWN1x5EeKolKOK5NIrK44053KT73/+nZY7M9gplrz9knXwERCC6UcZsPauU9uWeJqiylmjaTSHbl9Cw1icyM3TyklypQhZBAFBQBBQFYFLKP3QNZcO12qEh8J9n30yWXv5yTc/YdpsDv4Rn3tV53ZVxiUEsypoVWNfq9WCERcNw/VXXBjSpnKGjknm8ewTGEeR5cso3YUsgoAgIAiohsDl'@; put 'wwdT0Y3zEGYLLaUC39/ZWvXBF99j+tw/hGSqNrGrMR4hmNUAraqHRHOt8vu4Vnk7FBQUVPVwpfbnmxBHHY6bNBmr1m9WamwyGEFAEAhtBM6nijw3XXWxRi71ntvSH5Li+zuXbB1P9/d5fy6HUzSZ/oDZMG0KwQyAqPitrkWThnjuobsQEx0V8m92bE5JS8/E2A8+x4atOwIgATmFICAICAL+RaBf'@; put 'r26468arqCpPeEhHVPP93UGBnS+P+wir1m3WCKd/kZfW9YqAEMwASYYvuvMG9MFdN10NI1Ru8Dcs/KZ7mOqWv/3Rl0Iy/Q22tC8ICAJ+RaBdq2Z4cNSNqJNYK6R97b0gc+WfoxmZ+M/r72HPAan648Ul1NZCMAMocbs9DPfecg0GU4mw/Pz8AJ5Zn6cSkqlPuUivBAFBoPII1E1MwKP/uhktmzYW'@; put 'clkCtvDwcGzYvA0vvvWhlAwugUsofRSCGWBp162dgP88fDcapiSHbJWfkpALySyJhnwWBAQBIyHAQZysNDj7zB4wUcdD0e+yInlxMvYfZ8yhFHVT4KCa67KEFgJCMAMsbyZUXdq31oJ+Qj11kRd6L8l8hypCrN+y3btZ1oKAICAI6BqB4QP74pYRl1IaOouQyzIkxfEH/Pfau59g0fI1koi9DIxU'@; put '3iQEMwjS5bdeTmVxM1V4CPWoci/8TDKPUODP2x99QSRTAn+8uMhaEBAE9IlAY7JCPUHZQZLqJAq5rEBE7I+ZevgInnl1nBbcWcGu8pNiCAjBDJJAOdLw4TtvwllndBV/zJMy8EaXc9kxSWEUpIkppxUEBIHTImCloM37br1WM41zffFgLawd5Psm//HCL+q8eE31XEGIk557v2s/BuE/MZUHAXQd'@; put 'nFIIZhCFkJJUF6MfvBP1ac2R5bJAu1FmUG3bdz/9FktXrxdIBAFBQBDQHQK9u3XCv2+7nir12ALeNyaVYWFh2nlzc3ORcSxLyy3M981cDh71gPplR1xsNNjnPyEuFvHxcZqp2ks4A91p7jPnxHxuzARs3Loz6IQ30OMP1fMJwQyi5M100XXr1BZP3Hsb+I04FEqKVQZufhs/np2jVYSQspKVQUz2'@; put 'EQQEgUAhEBFux1P/vh0d2rREILWXrJ1kYpmbl4ct23dr1dA2Uh7hQ2npyMsvu4BHGJmnE2rFUYR7I3Tt0Aad27VGUt3aGsELtFKDo8qXrFyLl9/5WKtdHih5yXmCh4AQzOBhr52Z/TEvO2+Q5igu/ph/C4Nvply7/NNvp2Hm/EV//yCfBAFBQBAIIgID+5yBO2+8OqDVeuykkTxB2so/l63Gr78v'@; put 'ws49+6tVJacWaTP7nNGFUuX1RvMmjTSCHKi64azF5OW/b74vCdiDOH8DeWohmIFEu5xzhVN+TPbnGdi3t/hjlsCISWZ+QSG+mjIdP838vcQv8lEQEAQEgcAjwNrLp/89Cu1aN2dHR793wOtfuYzchb6dNgvbdu2tFrEs3dEoKl88qG9PXDx0IJLr1UFhYWHpXfzyXbSYfoFVt40KwdSJaGonxGul'@; put 'JJs1bhiwi10nQ6+wG0wyi5wuTPn1NyKav4Z8mc0KwZIfBQFBwK8IsPbvnluuRUR4mN/9CNkczlacyT/NwIy5f6LADySQ4wBGjrgEvbp3hpPiAPwdDMRaTK5V/ixFlG/cJr6Yfp2sOmhcCKYOhMBd4AuvXctmmm8P1ytnZ2xZihFgkukmZcHM3//AJ99M1bSago0gIAgIAoFEwEL3oYfvugm9u3Wm'@; put '0/pXe8km8dRDR/DuZ99g7aZt9Dxw+W2o7P9/1UVDtdR57LLl71iAiIgITJs1j3zsf5Dk636Tqj4aFoKpDzloveAb2MC+vXDvyGu0i9zfb5M6Gvppu8IE3ET4LFq+Gu999p2UHjstYrKDICAI+BKBZo0a4On7b0cCRWT7897M5HL3vgMY+8Hnmq8la/wCsZxLfpm3XnMZRaD7VzvLZv9Minh/7KU3'@; put 'ceRoRiCGJucIEgJCMIMEfHmn5eo+119+Pq6++DzxxywFEpNMM92c1m7coqUxSj2cVmoP+SoICAKCgH8QuPLCIRhB92WL2eQ3gllMLlPx+vufEslM9bs2sTRS/Xp1IxeAEVqaI39qMnmcbxKB/u2PpT7xKS09DvmuDwSEYOpDDqf0gh3JOQl7n57dhGSegkzxFyuR8J1792MCJWTfunNvGXvIJkFA'@; put 'EBAEfIcAp/th7WXHtq38FtzDFW/SqJrZa+9OwtYde4JWVvG8AX1w+/VXgNPo+UtTy8E+fyxdqZWQLHRIDmjfzVR9tSQEU1/y+Ks3nCD32QfugAT9/AXJKR+YZPLN+IMvvseSVetO+U2+CAKCgCDgSwSaNUohgnkHmcdj/UK6ioMZnZpZfOmq9RTYGFwf/Fsp8OcSSp/nr1gANpMfy8rGoy+8rpUI'@; put '9qWspC39ICAEUz+yOKUnbA5u3byJFvQTHxvjtwv9lJMa7AvfpHLz8im6fAamzZ7vlxu/wSCR7goCgoAfEBg+qB9uufoS2CgIxh9aPTYZfzN1Jr6ZNrPcpOl+GFa5TXIp46dPJpP3V55M1tj+39sfUvL1dUHT1pYLgPzgEwSEYPoERv80wkE/Z/borJnLmXD60yfGPyPwf6v85u9yufHLbwvw5Y/T'@; put 'JcLc/5DLGQSBkEPg/tuvR/8ze/jFPM7kchOl7HmFKtwczTymG2zbtmiKZ6mUMbts+YNUc33yb6b+qhXTCLbGVjegK9YRIZg6FyinjbhoyDm47drL4XA4/HKh6xyC03ZPizA3mbF8zQa89/m3OJqhn5v0aTsvOwgCgoCuEeCk5Oyu1KpZY5/3k+9dHCM+5t1PNFcff6Yjqk7n77zxSgwfdDZcfjDZ'@; put 'M7Feu3Ernn99AuX4dFSne3KMzhEQgqlzAXH32MH81msuxcXDBkrQTzny4hs1m8x37NmH9ymN0eYdu8vZUzYLAoKAIFB5BBqlJBHBvBOJVNPb1wuTrKXkQ/4GRVRn55zwdfM1bq9Bcl28+Ph9iIuJ9rlyg+/XGZSu6NEX3tCV5rbGoEkDfyEgBPMvKPT9gd+iH7rjRpx1RlchmRWIioN/+KbFCdnn'@; put 'LVpewZ7ykyAgCAgCp0egZ9cOuP/2GxDpY1NxseXFhP9NmEQkM/iBPeUh8a+br8bQAX19rsXk8bvcbjz18ltaNhB/mOHLG5NsDwwCQjADg7NPzlInoRaevO82tKGKPwUFBT5pU8VG+M24kNwJps76nXx8ZmmfVRynjEkQEAT8j8CF5/bHTVddDKvF7FMtHge57KJ0ay+88b6uNXidKDXTMw+MovFb'@; put 'fA42l8N8+Z2PqIDGGgn08Tm6wW9QCGbwZVDpHvAbX+MGyRTdNwrJ9epoPpmVPjjEduTgHyrAiaWr12Hi5Ck4lJYeYgjIcAUBQcAXCNxM5JJJpsXHBJNLJn7/y2x88cMvuogcLw8rDvJ5iczkzRo38HmgKWPwwRff4aeZ8/xaDrO8scl2/yIgBNO/+Pq8dSZOHdq0wBP33IroqEhJX1QBwl6/zL0H'@; put 'DuKjr37E6g1bKthbfhIEBAFB4J8I+COC3Gsef21CcXCP3qOo777pKgwb2M/nZnKOJP/u51mY9PVPQc/9+U/Jy5aaIiAEs6YIBuF4b/qiB0fdCI4y91eesiAMzS+nZL/ME7l5Wo45NptzWiNZBAFBQBA4HQJMBB/71y3o1bXj6Xat0u+sKOCgnudff5eqkh3wqem9Sh2p5M5D+5+Ju2+5Bm6Xq5JH'@; put 'VG431mDOnPcHxk2aDEdRcJPLV67HsldVEBCCWRW0dLQv+xlySa9RVNKL82OKg3TFwuEbOqcDWUjlyT79dpqkMqoYLvlVEBAECAF+gX/qvtvRuX1rcrjx3cL+l3v3H8Tzb7yrVSTzXcv+aalD6xZaqiabzerTE3DJyAWLV2i116VkpE+h1UVjQjB1IYbqdYJvflddOBTXX36B5MisBIQlTeYfk1/m'@; put 'qvWbK3GU7CIICAKhioA9jGuQjyK3pJY+TbLO6Yk2bNmOl976EMezc3QPb0pSXfzfE/chJjrKp31lHJavXo+XKNCnUHJh+hRbPTQmBFMPUqhBH2xk/h1JdWMvHT5Y0hdVEkc2meecyNWizH+cMVeizCuJm+wmCIQaAlwycTRVs/F1knUmVivXbaQURZ/oMv9laTnXrZ2AFx+7B3USE3xqLWMcVq3b'@; put 'hBfefF8IZmnQFfguBFMBIfJb9j0jr8G5Z58lJLOS8mSTOWs0V6zdiE/IZM6BQLIIAoKAIFASAbs9DKMpyXqblk19aiL3Eqv/UQWfLANoMGsnxGsaTH8QzOVrSIP5tmgwS847VT4LwVREkjEUUf7AqBskEXsV5cm+UEeOZuCrKTPw28Ilmp9mFZuQ3QUBQUBRBNhC9PT9t6Mj5YL0pQ8m53/cvH0X'@; put '/jv2fUOYyJPqJGoEs1Z8nE81mJoP5hLywXzvU7IkFSk6i0J3WEIwFZJ9QnwsHqRqPz06dxBNZhXkyiZzThOycMlKfE456aSWeRXAk10FAYURYEvHE/eMpHtqe5+Oku85Bw+n4bkxEwyRo7c55cB84dF7wDkxfblwFPnsBYvw9kdfShS5L4HVSVtCMHUiCF91oy75yDxKaTXaU9SfVPupPKolA4C+'@; put '/HEGFq1YU/mDZU9BQBBQFgEu0duvV3fS3PkuvRkT1/yCQox+bTy279oLt4dzXOh36d2tIx65eyTMvlTj0nA5D+aUGb/hwy9/kDyY+hV/tXsmBLPa0On3wOR6temt+za0bNZYSGYVxcSaBQeZamaTufzrn37FsazsKrYguwsCgoBKCIy67nKtFreF2JUv08GxmfzNDz/H74tWkPZO3+bhay4ehmsu'@; put 'PZ9yCPs2VyVrMCdO/hHfT58jlXxUumhOjkUIpoJC5SE1rJ9ECYJHonmThkIyqyhj1mYy0dxFCZC//PEXLFm1vootyO6CgCCgCgJXnD8YIy4Z7vNa5Ox/OGPuQnDKNC4EodeF74fPUi3ybh3b+bxUJGMwhgKd5v25TGqR63UC1KBfQjBrAJ6eD+WbQtOG9TWS2TAlmVJAFOq5u7rsG5NMdjyf9+dS'@; put 'qgI0S3wzdSkl6ZQg4F8EzjmzB+666Wpwtg5fajD5/nLoyFGMHjOe1un+HUQNWq9fr44W4BMbE12DVv55KD+jGM/nxryL9ZQTlAuGyKIWAkIw1ZLnKaPhC5idsx+5+xZNoykk8xR4KvWFfaX478DBI/h66q+YT1Un9O0tValhyU6CgCBQSQRaNG2Ep/99O+J8TLD49Gwmf4vN5HRf0WsU9aXnDcTN'@; put 'V1/i8zKRfF/lfMSPvTgWqRTwJIt6CAjBVE+mp4yISWbLpg3x+D23ol6d2lrFn1N2kC+VQoBLc7roDXvR8jVaTfO9Bw5V6jjZSRAQBIyLQDSlf7vsvEE4b2BfhFNOTF8vnA9z3aateGXcRF36e3Oi+f9S9Di7Wvlaw8gp4rbt2oOnXn5bC3jyNbbSXvAREIIZfBn4vQdMMts0b0KazJuFZNYQbb4p'@; put 'pqVnYurMeZg5f5HcGGuIpxwuCOgVgTMoNdHVFNzSiu6dbpfLp+bxkmPml9e3KE3PAkqTprdgn6HnnIW7bx7hc+0lj58DfGb9/ifemThZd+MuKR/5XH0EhGBWHztDHamRzBZEMu+6GUl164hPZg2kxw8EKgOETVt3kNl8JlZv2FKD1uRQQUAQ0BMCyeRzePnwQeh/5hla3sciP0d480vr7n2pePGt'@; put 'D3A4TT++mLXiYvDfx+5Fg+R6Ptdesrw5wOftj76gF/XFFJ3u0tMUkL74CAEhmD4C0gjNFJPMpnjozhtRv15dIZk1FBo/GPLyC8gvczl+/HUuJU4+WsMW5XBBQBAIFgJsAh/crzcuGnIO6ifV1UiPr83C5Y2NydZPZBX57LtpyM3LL2+3gG6/44Yrcf7gs+GiIhS+XvhZxOngnnz5LeykbB2+DJ7y'@; put 'dV+lveojIASz+tgZ8ki+sDm6/FFKYdRIostrLEN2VOdoUNY88APitz+W6uYBUePBSQOCQIgg0LVDG1x5wRB0aNtSKwnp9AOpqghKvi9z8OA4MhfrwVTet2dXPHD7DbBYzH4hf/xyvp38L59+dZzcLyuaGAb/TQimwQVYne4Xk8wUPEo+mY0bpkiezOqAWOoYNpubiGxuofrC3/08G8vWbPDLjbnU'@; put 'aeWrICAI1ACBFNJUXkbmcK7UExUZEdQgSH5Rzco5gf+Nn4gNW3cGzWzcjDKPcNR8Yq14v5jGWVzsfzl5ynR88cN0qeBTg/mr90OFYOpdQn7sH2swH77zJs2JPT9fH2YZPw43IE3zmzk76i9ZuQ5TyGy+jcrAySIICAL6QoBzOg45u7dmAq5D5XXZBzBQ5vCKkOC0RVyj/PX3PtXuHZy5IpBLUt3a'@; put 'ePLeW9G0UQOqrON70ziPxautfZa0lxvIj13M44GUcGDPJQQzsHjr7mwNkutqppD2bVpCSKbvxMMPimzSRsylChU/z1mgJVT2XevSkiAgCFQHgTCbVdNWXjz0HDRrXJx6R28BJpy6KPXQEYybNJkSkO8ImCYzqU4i+effhDYtmvqNXLLM+N64eftOqsM+Qczj1ZnEBjpGCKaBhOWvrtatnYB/33Yd'@; put 'undqLyTThyB7/TPT0jMwY96flJJjEY5n5/jwDNKUICAIVAYB1pp169hWy2nZoU0L8i20wN/R4ZXpV3n7MAk7npWtlZFcuHSV39P4cEGO+269Tst36W9c2Dz+3qffYBq9ePtLS1oerrI9sAgIwQws3ro8G5so2N/m3pHX4KwzuiIvT791cXUJ4Gk6xQ8zJpv7KDn7dKo9zFpNjj6XRRAQBPyPAGvk'@; put 'WGPZs2tHSpZuD6qfZVVGyz6ZTjLd/zr3D3z3yxxkHDtelcMrvW+fM7rgtmsvA7sK+Jtc8r2QX7Ife/ENXZfHrDR4smOFCAjBrBCe0PoxNjoKo66/AoPPPlML/BHfGN/Knx8YnD9z/aZtmtl85bpNVB7O4duTSGuCgCCgIcABPJefPxhMoGKiow2Zlo01r2wy37V3P76dNguLVqz1mTYzsVacptEd'@; put 'RlWKbHRvCoSrQGRkJH6cPgcfffWjBPeEwHUqBDMEhFyVIUaE23HzVRfjQsoF5yDyIySzKuhVbl8OBOK6wxu2bMMvcxZizcatPntoVK4HspcgoC4C7EvI+SwH9OlJRSVqa2ZYPQTw1ARxNpmzOZmDYmaQRnPV+s3VtoJwAvVzzjoDwwb0BZNwbjcQ93m24uQXFODJ/3sbu/enBuScNcFcjq05AkIw'@; put 'a46hci3w2+wIKpF21UVDtchKo9+c9Sgg1kywRrOw0IF1m7dppvO1G7cJ0dSjsKRPhkCAfckHEakcROSSiSXftwKhlQsUOHzP8BLNfamHsHzNRo1o7j1wENkncivsRgxZp5pRZPgZXdqhV7dOSKZqbkwqA+kDydrLKTNYezlF7nMVSkudH4VgqiNLn46EfWXOH9QPI0dcojnEB/JG5NOB6LyxkkRz'@; put '/Zbt+HXeH1R6cquYznUuN+mefhDg0o79e3fXtHKskeNF9fsVW0H4Hl1YWIj0zGOaP+Pho+nIPJ5N7k2FGgZ2qkwUHxuDFMoUUp8wYj97NrczNoHGh/vKWTWefPltMDmWJTQQEIIZGnKu1igtZNLoRzfuO6lkWHRUpN8dwKvVSUUOYqJZbDp3YPO2XZj5+59YSWYwvZSNUwRmGYZCCDCZPOesHhqx'@; put 'DIZGTg9Q8n3Dm63C+9lr7ubv/Jk1uUwog6nN5cjxT7+dim+mzaS+SN1xPcydQPRBCGYgUDbwOfjm1ZHSejww6gbUrZ1oSEd5I8HPDwU2nbtcbkq0vAe/LVyCxZS0nSt8yCIICAJAEyp1O6hvL3A5Q458DrSpV2RQNQTYrM9BSs/+bzyOUeolWUIHASGYoSPrao+USQ+XD7v/tuvRslljyZVZbST/'@; put 'v73zfI7qStP4u2NQzhEhDBJCEogcTDAGG9tg43EoxxnP7Hpqy7sftnb/jN2q/bjhw1ZN7Uxt7YTd8YzHM2MccMAYE2whkEgiCOWcc8Sw+z6HObjBwghJ3X3vPc+tajrQ995zfu9t9dPvecPMd7RC84Z6IBqaWgW18L746pR0dPfO/CB8JwkEhABWU0qKlpnkna0b1kqGZkDDIxdNr1xA0IZ1GsaL'@; put 'qmf453//mcaMnhf8PePmDgEKTHdsPeeZ5moQ/d//9eumntyEZgPapZg5H5gH+E4CWDrHhoLtKFNy+ESFegRaPNHa7jsHzv8kgTkSQFWLdatKNHFnm7lHi0fUamTi4RzBRmh3LI2jLNHP//cPLEsUIeZeOg0Fppes4YOxJCclyJs/fFH2PbaTf+gjbC8EyuM2qIWKkXn+2bGT2kquZtblSiI8fJ6O'@; put 'BGZMICMtVbZvXmeSd0qKCiRGf2RBWPJH7YwRRv2NSCiq1rJK//Rv/8ml8ahbIzoDoMCMDndfn3WBipwfaAmjV5/bxwzzKFgScbEmIUhLHNVqbBOWz788fVY6uXweBWvwlPNFANf1siV5snvbJtNRDJnPWGJFggqF5XxRjsxxEEeOH8L/+K8/lcu1jbRfZLB77iwUmJ4ziT8GhJioPTsf0hZjL2uX'@; put 'jETftF/zB92ZjzJ0+RzFl7/4qlIuXq1Te1yb+UH4ThKIIoHEhHiz/L17+yZzn67eS8RWRrqUThQRBOrU+KGASMt/+ekvzI/f65rFzs1NAhSYbtp9XmaNPyRlxcvlH7SH+bIli017yXk5MA9y3wSsVxOdMmrqGk2sZnnlOSYF3TdJ7hAJArhel2h9xh2b18vDWzYYzyWyjRlfGQn64TsHPM740ftf'@; put 'v/mDvPPhIZYkCh9qXxyZAtMXZvL2IFGP7u/eeE22bFjDHuZRNpXNPscwenr75Iz2PT92ssp4NYdHxqI8Op7edQKpmqSzrqxEdm3dJKtLiwTeSiTsQFhy8zcB/O3Bj4Tfaq3LX779HpN6/G3OeRk9Bea8YORBUIj9J68+L89o9x+WD/HG9QAvEf7gT2pP+aaWdm0rV21iNeubWk0vdG+MkqMIOoFY'@; put 'vQaLly+V7dqicMv61bJYf5AijpveyuBYHuISST1/PHhIfs5WkMEx7BxnQoE5R4Dc/RsCyHB+af/j2sP8aUF5EXolvmET7UdYtoJ9RkZHTYmjijMXpOJstbZt62AtwWgbJ4Dnx7W2dPEi7X29Wm9rTB3d+Lg4xlYG0NY2POft9z5Wz+UB/ngNoI1nOyUKzNmS437TElio2YPwUrz5oxclf1Eu4zKn'@; put 'pRS9F+0SOr4UhjTLs1braZZrAeTK85ektaOLYjN6pvH9mSEqES6zcc1K2bZxrRRpc4ZkXRK3rQqZCe57E39rAsgWh31//c778rbWu2QbyG8hcvoFCkynzR+eyUO8oNzI32qG+ca1q0x7SX65hIf1XI4KO+ELAqJzcGhI6nTpHJnolXprae+SKcbFzQWvE/suWABRmWtE5ZZ1ZVJUsERSU1JMWRpk'@; put 'gbMgenAvAyyJoxTRz/7nHa3JWy7MFg+urWc7MwrM2ZLjfvckkJaSLD984WnZ//gjAjHDsiP3RBa1N4SKTSyjN2rM5pnqy3K2ukaFZ4surTNBKGrG8diJEf6CqhEbVpeaskLLl+ZLin7W8SOSotJjxgrDcPCDFB16rtQ2yH/892/kYk0961yGgXMQDkmBGQQrengOsTELtV7mVvmrV56T9NQU4830'@; put '8HA5NCVgl9Gx5DkxOSntunR+8Wq9VOkyek19k3T39tNb4diVgs46JZqos76s1GR/L87NkURN7LMJffRUunFBIJYbtv74yAn51e/fk76BITcmzlnOigAF5qywcaf7IYCi7KXa7u1vfvyyrNK6mZMqWrhkfj8Eo/temyAEMdE/MGgSg85pq8pqFZ0NzW0yNDwS3QHy7PNOICE+TutU5srKFYXqpSw2'@; put 'STpZGemmxiGuAybwzTtyTx8QPzZRkaJOO4f9SksQoXMYl8Q9bTJPDI4C0xNmcGMQGWkp8uOXvi97d++41QLOjZkHZ5Z2KR33KH/Uo97MOk0UunClVi6p4Gxp75TRsfHgTNiRmcTGxkhuVoZ6KZfJ6pIiLSu0TPJyssxSKBBg6RvCkptbBPA5R6xlX/+AfHj4mLz70efqtRw0f7/dIsHZzoYABeZs'@; put 'qHGfWROI0SXzx3XJ/A1dMk/jkvmsOXplR3g2kCiEDV2E+voHpb65VfsPN5iOQk2t7TI4PEqPtVcM9udxwEOZl5NtknJWFhWqhzJf8rT3d3JSkhEP9FJ6zGARHo71WGLF4mj5aTnw8RFpauvg5zjCdvD76Sgw/W5BH44fS+YrCpfKm6+/KGtXlZg+5ozh8qEhpxmyFZyI40QoBL6g2rp65KrGbiJL'@; put 'vUFv3X39MjY+Mc3efCkcBFA6LC012Sx5o3QQPntL8/MkOyNN4ygTbwlKeCkZuhIOC/jjmPBWIhwGn93O7h45Vl6psZZfSqP+SOR14Q8bem2UFJhes4hD40HbuFef2yfPPrnb/GGb0iVXbsEiAMFpb/CKjY6NSa96OVvUG4JMdXg72zp7pKun14hOfpHNzf5IqkvRz9Vi9UYi03u5CkoUPM9SMYkV'@; put 'AwgIbHbJm7znxtvPe0NIhopK1MW9VFsvxyvOyFenz0n/IBN4/GxfL4ydAtMLVnB4DPCubN+8Tt7QNpMP6hfhhC6z8ksvuBcEvtSs4MSXG0TnmIrOAf1y69J4zpa2TmlW8Qnh2dM3IAODwybWM7hEZjczMExNTpTM9DRT3BwFzvH5yc/LEZQHS9UbkjLwWQJj3LhKMDvWft4LnzdsVkziusFj3PC3'@; put 'Fj/2EENddeGS3i7rj71u/v31s8E9NnYKTI8ZxMXh4I/d4twsLWX0vDyydaP5AwcPCzc3CIR++UF0YsPyOmpvDmqGeo8uqXd290q7LrV39fSZ5/0qPPH/ExOTckNFVBA3FDFP0HqDKUk3hWROVros0sSb3KxMyc3OlJzMdI2ZTDRJGBAOEJP43EBIUkwG8YqYfk74/MAzjR8ReGw3++Niauqaad84'@; put 'rPVtkaCDzxKqP9Q2NEurCkoUSw/dz+7PexKYKwEKzLkS5P7zRgCZrHt3bTfF2TPUMwORwc1dAhCbuEE8WeGJL1FcF4jhHFHP59DQiC7lDZsvzl7NdMVjLO2hdBIE6PjklHk/vmS9IkQhHGNUEMSqhzEx4aaATE1JUs9jinokU029WNwjbhLL3YkqMuM1KcfGx1nhYIUknnNzkwCuCfyo+Ojz43Li'@; put 'lJYOun7jz2IRnusbxvs/rj/CEJoyqp8ZfA64kUCkCFBgRoo0zzMjAkgAQtzYT157QTZpm0kbKzajnfkmZwhAcMLrYsUnnkNoWfEFETqpX6ao14iySRMqNEfHx81jPMeXLrLecQ8vKEouTU5eM+0xv1YRaz2B+JK+doc3HefAeRcuXCDf+4ub48DjGL3hCx/38XFxEqcdb+JURCYkxBmRiMxteCQT'@; put '9Tn+Hx1xIDLNvnqPY2Kz8wgVkPRIOnNpz2iiuPZRPqi1o9MUPD9WXsXWrjMixzdFkgAFZiRp81wzJgDPzvef2CUv7n/CxJPRmzljdHyjEsAXsF32s2IUz60n1ApSC8uKOjy3wi70Mf4/dMOxIAjtOUIf4zX7OvbBYysQ7zx26HlDj8/HJHA3AigLhmvq2MlKFZfvm5jlO6/Pu+3L10kgkgQoMCNJ'@; put 'm+e6LwK2A9BfvvKs9j1eSW/mfdHjm+eLQKhYDD0mv9RDafBxJAjEqee7V2OS33r3Izl4+LjxvEfivDwHCcyGAAXmbKhxn4gSSNKex888/oi89MyTJiaN3syI4ufJSIAEokwAHnJ4Lk9WnZNf/O6A1De1slVjlG3C09+bAAXmvRnxHR4gcMub+bJ6M9esNBmTiJPjRgIkQAJBJoBYSzQseOeDQ/Le'@; put 'p0dM3HCQ58u5BYcABWZwbOnETJAosV+9mS+rNzM9LdVkCHOp0gnTc5Ik4BQBeCzhuTx19oL88u0D2g2rmV5Lp64A/0+WAtP/NnRuBt/TAPdCzTR//YX9pkg7ACBbmBsJkAAJ+J0AYn7htUSs5e8/+FQ+OHSUXku/G9XR8VNgOmr4IEwbbfEe2/GQaTe5RLuYIDbTZusGYX6cAwmQgFsEUOYKW3nl'@; put 'OVN+CAXRr2vhfG4k4EcCFJh+tBrHfIsAfu0v0q4mLz3zhOx5eKvWHIw3QvPWG/iABEiABDxOwHotO7Rb1VvvHpRPj37FougetxmHd28CFJj3ZsR3+IAAuqOsLyuRHzz/tKxZWcwkIB/YjEMkARIQ0zN+SkN8Dh8/KW+/94kWT+8yxfbJhgT8ToAC0+8W5PhvI4CSRvse3SEvPLVHcrRnM5bNmQR0'@; put 'GyI+IQES8AABJPBgSbymrkF+/c4HmsxT/a2uUR4YJodAArMmQIE5a3Tc0asE0KUlf1GOvPLsXtm1daO27IvjsrlXjcVxkYBjBOxy+ODQsBz4+HN5V2+DwyOOUeB0XSBAgemClR2d481l81J57bl9Ztkcnkxmmzt6MXDaJOABAjHacx71e8urzstbfzoodY0tTOLxgF04hPAQoMAMD1ce1UME4uNi'@; put 'Zc/OrfLi048Lss0hMq9fv+6hEXIoJEACQSZgl8PrGpvlt9rm8XjFGUHcJTcSCDIBCswgW5dzu0UAy1JZGWny3N5HNUbzYUlNSWZ85i06fEACJBAOAnY5HJ14Dnzyuda0PCb9g0PhOBWPSQKeI0CB6TmTcEDhJICWkwVL8403c+dDG0xB46mpKSYChRM6j00CDhJAsXQkGR4trzQF0xu1puUNDdPh'@; put 'RgKuEKDAdMXSnOdtBBCfuVbLGaF+5vqyUtOSDUKTGwmQAAnMhYAtln7uUo387sBHcqb6isZdMiRnLky5rz8JUGD6024c9TwRiNEyIfBkPv/UY1JaVGg6ATERaJ7g8jAk4BAB2zsc3Xf++OEh+fzLCpmY5I9Why4BTvUOAhSYdwDhUzcJoH7mozu2yLNP7pZlSxazULublwFnTQL3TcAm8KALz4ef'@; put 'HZWDh4/LgJYg4kYCrhOgwHT9CuD8byOQnpoiTzyyTZ7es1Py83JNSRGUFeFGAiRAAqEEUG8XZYcGNGnnM+3CgySe9s4exnOHQuJjpwlQYDptfk5+OgI243yfdgTau3uH5GZnUWhOB4qvkYCDBGxm+MjomCbwnJZ3PzosjS3trGfp4LXAKX83AQrM7+bD/3WYAL5IcjLTZa8KTXg1F+VkU2g6fD1w'@; put '6m4TwN8DeCzHxyfkq8pzRljW1DfJ16yp6/aFwdnflQAF5l3R8D9I4CYBKzSf3L1dnty1nUKTFwYJOETACstJrTJx6swF+ZN6LC9cqWOzBoeuAU51dgQoMGfHjXs5SOAboQmP5lYjNNERiDGaDl4MnHLgCYQKy9NnqzXG8oig9BBLDgXe9JzgPBGgwJwnkDyMOwTwxZOVniZ7VGTCo7lEk4HQ55x1'@; put 'NN25BjjT4BLA5xtF0ie0SDo8lhCW5y9fpbAMrsk5szARoMAME1ge1g0CyDrftW2jaT9Z8GC+ILOUnYHcsD1nGSwCNit8VJN3KtRj+f6nX0h1TS2FZbDMzNlEkAAFZgRh81TBJADvJepoPrxlvXo0d8jKFQWCbh4o2H7jxo1gTpqzIoGAELB1LIeGRzR556wc/Oy4XKptYIxlQOzLaUSPAAVm9Njz'@; put 'zAEkgM5A68qKZf+eXeY+KTHRCE3EanIjARLwDgF03sGtp7dPjlWckU+OnJD6plaWG/KOiTgSnxOgwPS5ATl8bxJY8MADUlTwoInR3L5prWRlZhiPCNtQetNeHJUbBBBfidUF3Le0dcjhExV6OykdXb1cbXDjEuAsI0iAAjOCsHkq9wjgiyw3O1N2b98sj27fIgUPLjYQIDSxtM6NBEgg/AQQXwlh'@; put 'iZWEK3UNcuhouRyvqJL+QbZ0DD99nsFVAhSYrlqe8444gcSEeNm8dpU8pW0oVxYVSEJCApfPI24FntAlAnYZfHhkVM5drJFPvvhSKs9fMhniLnHgXEkgGgQoMKNBned0mkBsbIwKzEL1am6SzevKJCcr03gz6dV0+rLg5OeJAFYNICzhtezo6jaeyiNfnpbahmbGV84TYx6GBGZCgAJzJpT4HhII'@; put 'A4Hv6Rdhji6fb9u4VnY+tEGKC5dKXFwcvZphYM1DBp8AssEhLPFDrb6pRfuEV8mhY+W6DD7EcJTgm58z9CABCkwPGoVDco9AnBZ2XlVcaEodbVm/2ng1QQFdgljqyL3rgTOeGYHQpJ3+gSE5e/GyHD5+UjvuXJUx7RnOjQRIIHoEKDCjx55nJoFvEcCyXmZ6qmzSWM1Htm6UUo3VTE5KMskJEJtM'@; put 'DPoWMr7gIAFbuxL9wesbW8wy+IlTZ6W9q4f1Kx28HjhlbxKgwPSmXTgqEpCFutyHrHMsoW9ZXybLtFMQPJ0QmsiGpdjkReISAfz4whI4tq6eXjl97qIcO1kl1VdqNWlnyiUUnCsJ+IIABaYvzMRBuk4gThODykqKZOvGNbJpzSrJy82+FW/GIu6uXx3Bnb8VlVgKHxwalktX61VUVkrV+cvSp7GV'@; put 'DB8Jru05M/8ToMD0vw05A4cI4Is2JSnRiE0UcF+7qtjEa2LJEMkNFJsOXQwBnarNAsc1PTI6KnWNrVJedU4qqi5Ia2cXe4MH1O6cVvAIUGAGz6ackSME4N1JS0mSNSuLZeuGNbK6dIVkZ6aLFZvw7nAZ3ZGLwefTDBWV45qc09jSJhVnL0jFmQuaEd4mU/rjiRsJkIC/CFBg+steHC0JTEsAYjM9'@; put 'NUU9m8tNbc3VupyODkIxMTEmZpMJQtNi44tRJGCXv3E/Nj4uTS3tJq7y1NlqqW1slskpisoomoenJoE5E6DAnDNCHoAEvEXALqOXriiQDWWluoxeIvmLsiU+Pt7ErLH0kbfs5dJo4F3HDaJyeGREvZOtGk95SSovXDa1KykqXboaONegE6DADLqFOT/nCSTEx0nh0nxZp0JzfVmJLM3PkzT1dkKI'@; put 'MiPd+csjrABwjUFQIvsb8cEoen61vkmqLlySM9VXpLW9S65pVQRuJEACwSNAgRk8m3JGJHBXAviyz8vJMvU1N6wplZLCZZoklGG8mxAAuDF28674+B8zIGC9lLjH0nen1qa8VNtglr+v1DVKT28/WzbOgCPfQgJ+J0CB6XcLcvwkMAcCSYkJUrBksSYIFZlbgdbaRCwnPE4QmlZ0zuEU3DXgBEJj'@; put 'KXG99PYPmCSdcxdrtEZlndQ3t7KrTsCvAU6PBKYjQIE5HRW+RgIOEnhA4+Iy0lJl+bIlJlmoWL2bDy7OlXR9Dd4oKzjp4XTw4giZMq4FKyohKFGfsqW9Uy6rlxJFz6/WN0vfwCC9lCHM+JAEXCRAgemi1TlnEpgBAQjOLC17VKjdhFYVL5cVBUuN4ExNSZZY7SgUKjjxmFvwCCCG0opJ3CNmF4Ky'@; put 'raNLrmgsJQqfI+O7s7uPNViDZ37OiATmRIACc074uDMJuEMAghPicmn+IikuXGo8nVhSz8pIk8SEBJM0hLqbNkudNTj9dW1YMQkhCS8ltomJCeONhIfyakOz1NQ1mWzvnn71UKr3khsJkAAJ3I0ABebdyPB1EiCBexJAhnp2ZoYs1yx1LK0jnjMvN0sLwCdLgopOiBV4NyE6ITjp6bwn0oi84U4x'@; put 'ieeTk5MyNDyifb77pKm1QwVlk/FOtnV0y8jYOG0XEcvwJCQQHAIUmMGxJWdCAlEnAKGSlBhv2lcuW5JnBCc8nrlZmaY0UrK2uUQCEcSm9XZSeIbPbLCHFZM2dhK8xzW7e3h0zIjJ5rYOaWhuM4k5EJMoJfQ1vZPhMwqPTAKOEKDAdMTQnCYJRJNAfFysZKanaomkbI3jXCRL8nLU05ltWlumJCdJ'@; put 'ghaBh/DEFhrbCTGEzd6bJ/znNgJWROLeikg8BjN4JYdHRmVA4yY7u3tNMg4EZasKSTyHx/I642dv48knJEAC80OAAnN+OPIoJEAC90kAIigxId6URUJbS9wW6/I6vJ2LsrM03jNJ63PGSZwmFEE4WdEEAYobBJRdcg+qAMWc7YZwg9AbXrcicnxiUkbHxjRecsh4Jds6u6S9s0c6e3qlW+tODg6N'@; put 'sJ+3Bcl7EiCBiBCgwIwIZp6EBEjgfgjEag/1m+IzWT2faZKtxeCzNZkIZZTS01KMKE1U8QkBivei5zrEV6ggs0IU57VC1N7bsURSmIaODefHeO09/g83+xpex9gQu3rt2jX1RE7JmIpItFccGBzWWpOD0t7VLT19A0ZEwkMJEQmhGck5mQnwHxIgARKYhgAF5jRQ+BIJkIC3CSzU5XQkGOGGzPZU'@; put 'XWZPSU785rHGeiLeEyIV74EXFPvExcbIAwu0daF6RO1ysvUKWvEZej+dWMP/W0FoKVnxaAUi7u178H57g2DEkvS1qWvGo4je2xMqHkc1iQZdbxAXiWVrCEbcQzTi8Yi+Pqr/Pz4xZUSnPS/vSYAESMCrBCgwvWoZjosESGBeCCxcuMCIy9iYhcbTiXsIzjiNC41diNcW3hSqRqQmmQx4/D/EaXJS'@; put 'wm1jwGspKlzhKYQAvKFeRgjJGzf+T8Xh6E2hqGJxSOMecYNAnND3jmu5nyn1REJM4jY5NSVTt0TmlJb8YR3R20DzCQmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQ'@; put 'AAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfs'@; put 'wdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4i+ZHtw4AAADdSURBVAAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAF'@; put 'prfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8J/D97oVzdCcK8fgAAAABJRU5ErkJggg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=spinner.16f763cebc6b64df.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg'@; put 'ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw'@; put 'OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl'@; put 'bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=spinner.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg'@; put 'ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw'@; put 'OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl'@; put 'bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; * BuildTerm start; /** @file buildviyaterm.sas @brief build term script - prepare to call service @details services have been built, now to build the DB.

SAS Macros

@li mx_testservice.sas @version 3.5 @author 4GL Apps Ltd @copyright 4GL Apps Ltd. This code may only be used within Data Controller and may not be re-distributed or re-sold without the express permission of 4GL Apps Ltd. **/ /* launch makedata with provided params */ %global dcpath adminGroup; data work.params; length name $6; name='ADMIN'; value=coalescec("&adminGroup","SASAdministrators"); output; name='DCPATH'; value=coalescec("&dcpath","/tmp/dc"); output; run; %mx_testservice(&appLoc/services/admin/makedata, inputparams=work.params, outlib=webout, debug=log ) data _null_; if symexist('_baseurl') then do; url=symget('_baseurl'); if subpad(url,length(url)-9,9)='SASStudio' then url=substr(url,1,length(url)-11); else url="&systcpiphostname"; end; else url="&systcpiphostname"; call symputx('url',url); run; %put now call configurator:; %put x; %put x; %put x http://&url/SASJobExecution?_program=&appLoc/services/clickme; %put x; %put x; * BuildTerm end; /** * The streamService we just deployed (as a _FILE) had the compile-time appLoc * In this section we replace with the deploy-time appLoc */ filename _homein filesrvc folderPath="&apploc/services" filename="clickme.html" recfm=v lrecl=1048544; %let local_file=%sysfunc(pathname(work))/service.html; filename _homeout "&local_file"; data _null_; rc=fcopy('_homein','_homeout'); put rc=; run; %mp_replace(infile="&local_file", findvar=compiled_apploc, replacevar=apploc) data _null_; rc=fcopy('_homeout','_homein'); put rc=; run; /* Tell the user where the app was deployed so they can open it */ options notes; data _null_; if symexist('_baseurl') then do; url=symget('_baseurl'); if subpad(url,length(url)-9,9)='SASStudio' then url=substr(url,1,length(url)-11); else url="&systcpiphostname"; end; else url="&systcpiphostname"; url=cats(url,"/SASJobExecution?_FILE=&appLoc/services/"); urlEscaped = tranwrd(trim(url)," ","%20"); putlog "NOTE: SASjs Streaming App Created! Check it out here:" ; putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; putlog "NOTE- " urlEscaped +(-1) 'clickme.html&_debug=2' ; putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; run;